ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDIwMzBjN2EuLjcwNTgwYmQgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMzIsOSArMzIsOSBAQAogKi5sem8KICoubW9kCiAqLm1vZC5jCisqLm5zX2RlcHMKICoubwogKi5vLioKLSoub3JkZXIKICoucGF0Y2gKICoucwogKi5zbwpAQCAtNDYsNiArNDYsNyBAQAogKi54egogTW9kdWxlLnN5bXZlcnMKIG1vZHVsZXMuYnVpbHRpbgorbW9kdWxlcy5vcmRlcgogCiAjCiAjIFRvcC1sZXZlbCBnZW5lcmljIGZpbGVzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2Rldi1rbXNnIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZXYta21zZwppbmRleCBmZmY4MTdlLi5mMzA3NTA2ZSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZXYta21zZworKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2Rldi1rbXNnCkBAIC0xMiw3ICsxMiw3IEBACiAJCVRoZSBsb2dnZWQgbGluZSBjYW4gYmUgcHJlZml4ZWQgd2l0aCBhIDxOPiBzeXNsb2cgcHJlZml4LCB3aGljaAogCQljYXJyaWVzIHRoZSBzeXNsb2cgcHJpb3JpdHkgYW5kIGZhY2lsaXR5LiBUaGUgc2luZ2xlIGRlY2ltYWwKIAkJcHJlZml4IG51bWJlciBpcyBjb21wb3NlZCBvZiB0aGUgMyBsb3dlc3QgYml0cyBiZWluZyB0aGUgc3lzbG9nCi0JCXByaW9yaXR5IGFuZCB0aGUgaGlnaGVyIGJpdHMgdGhlIHN5c2xvZyBmYWNpbGl0eSBudW1iZXIuCisJCXByaW9yaXR5IGFuZCB0aGUgbmV4dCA4IGJpdHMgdGhlIHN5c2xvZyBmYWNpbGl0eSBudW1iZXIuCiAKIAkJSWYgbm8gcHJlZml4IGlzIGdpdmVuLCB0aGUgcHJpb3JpdHkgbnVtYmVyIGlzIHRoZSBkZWZhdWx0IGtlcm5lbAogCQlsb2cgcHJpb3JpdHkgYW5kIHRoZSBmYWNpbGl0eSBudW1iZXIgaXMgc2V0IHRvIExPR19VU0VSICgxKS4gSXQKQEAgLTkwLDEzICs5MCwxMiBAQAogCQkgICtzb3VuZDpjYXJkMCAtIHN1YnN5c3RlbTpkZXZuYW1lCiAKIAkJVGhlIGZsYWdzIGZpZWxkIGNhcnJpZXMgJy0nIGJ5IGRlZmF1bHQuIEEgJ2MnIGluZGljYXRlcyBhCi0JCWZyYWdtZW50IG9mIGEgbGluZS4gQWxsIGZvbGxvd2luZyBmcmFnbWVudHMgYXJlIGZsYWdnZWQgd2l0aAotCQknKycuIE5vdGUsIHRoYXQgdGhlc2UgaGludHMgYWJvdXQgY29udGludWF0aW9uIGxpbmVzIGFyZSBub3QKLQkJbmVjZXNzYXJpbHkgY29ycmVjdCwgYW5kIHRoZSBzdHJlYW0gY291bGQgYmUgaW50ZXJsZWF2ZWQgd2l0aAotCQl1bnJlbGF0ZWQgbWVzc2FnZXMsIGJ1dCBtZXJnaW5nIHRoZSBsaW5lcyBpbiB0aGUgb3V0cHV0Ci0JCXVzdWFsbHkgcHJvZHVjZXMgYmV0dGVyIGh1bWFuIHJlYWRhYmxlIHJlc3VsdHMuIEEgc2ltaWxhcgotCQlsb2dpYyBpcyB1c2VkIGludGVybmFsbHkgd2hlbiBtZXNzYWdlcyBhcmUgcHJpbnRlZCB0byB0aGUKLQkJY29uc29sZSwgL3Byb2Mva21zZyBvciB0aGUgc3lzbG9nKCkgc3lzY2FsbC4KKwkJZnJhZ21lbnQgb2YgYSBsaW5lLiBOb3RlLCB0aGF0IHRoZXNlIGhpbnRzIGFib3V0IGNvbnRpbnVhdGlvbgorCQlsaW5lcyBhcmUgbm90IG5lY2Vzc2FyaWx5IGNvcnJlY3QsIGFuZCB0aGUgc3RyZWFtIGNvdWxkIGJlCisJCWludGVybGVhdmVkIHdpdGggdW5yZWxhdGVkIG1lc3NhZ2VzLCBidXQgbWVyZ2luZyB0aGUgbGluZXMgaW4KKwkJdGhlIG91dHB1dCB1c3VhbGx5IHByb2R1Y2VzIGJldHRlciBodW1hbiByZWFkYWJsZSByZXN1bHRzLiBBCisJCXNpbWlsYXIgbG9naWMgaXMgdXNlZCBpbnRlcm5hbGx5IHdoZW4gbWVzc2FnZXMgYXJlIHByaW50ZWQgdG8KKwkJdGhlIGNvbnNvbGUsIC9wcm9jL2ttc2cgb3IgdGhlIHN5c2xvZygpIHN5c2NhbGwuCiAKIAkJQnkgZGVmYXVsdCwga2VybmVsIHRyaWVzIHRvIGF2b2lkIGZyYWdtZW50cyBieSBjb25jYXRlbmF0aW5nCiAJCXdoZW4gaXQgY2FuIGFuZCBmcmFnbWVudHMgYXJlIHJhcmU7IGhvd2V2ZXIsIHdoZW4gZXh0ZW5kZWQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvaW1hX3BvbGljeSBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvaW1hX3BvbGljeQppbmRleCBmYzM3NmEzLi4yOWViZTlhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2ltYV9wb2xpY3kKKysrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9pbWFfcG9saWN5CkBAIC0zNyw3ICszNyw3IEBACiAJCQlldWlkOj0gZGVjaW1hbCB2YWx1ZQogCQkJZm93bmVyOj0gZGVjaW1hbCB2YWx1ZQogCQlsc206ICAJYXJlIExTTSBzcGVjaWZpYwotCQlvcHRpb246CWFwcHJhaXNlX3R5cGU6PSBbaW1hc2lnXQorCQlvcHRpb246CWFwcHJhaXNlX3R5cGU6PSBbaW1hc2lnXSBbaW1hc2lnfG1vZHNpZ10KIAkJCXRlbXBsYXRlOj0gbmFtZSBvZiBhIGRlZmluZWQgSU1BIHRlbXBsYXRlIHR5cGUKIAkJCShlZywgaW1hLW5nKS4gT25seSB2YWxpZCB3aGVuIGFjdGlvbiBpcyAibWVhc3VyZSIuCiAJCQlwY3I6PSBkZWNpbWFsIHZhbHVlCkBAIC0xMDUsMyArMTA1LDcgQEAKIAogCQkJbWVhc3VyZSBmdW5jPUtFWEVDX0tFUk5FTF9DSEVDSyBwY3I9NAogCQkJbWVhc3VyZSBmdW5jPUtFWEVDX0lOSVRSQU1GU19DSEVDSyBwY3I9NQorCisJCUV4YW1wbGUgb2YgYXBwcmFpc2UgcnVsZSBhbGxvd2luZyBtb2RzaWcgYXBwZW5kZWQgc2lnbmF0dXJlczoKKworCQkJYXBwcmFpc2UgZnVuYz1LRVhFQ19LRVJORUxfQ0hFQ0sgYXBwcmFpc2VfdHlwZT1pbWFzaWd8bW9kc2lnCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLWJhY2tsaWdodCBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtYmFja2xpZ2h0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhYjE3NWEKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLWJhY2tsaWdodApAQCAtMCwwICsxLDI2IEBACitXaGF0OgkJL3N5cy9jbGFzcy9iYWNrbGlnaHQvPGJhY2tsaWdodD4vc2NhbGUKK0RhdGU6CQlKdWx5IDIwMTkKK0tlcm5lbFZlcnNpb246CTUuNAorQ29udGFjdDoJRGFuaWVsIFRob21wc29uIDxkYW5pZWwudGhvbXBzb25AbGluYXJvLm9yZz4KK0Rlc2NyaXB0aW9uOgorCQlEZXNjcmlwdGlvbiBvZiB0aGUgc2NhbGUgb2YgdGhlIGJyaWdodG5lc3MgY3VydmUuCisKKwkJVGhlIGh1bWFuIGV5ZSBzZW5zZXMgYnJpZ2h0bmVzcyBhcHByb3hpbWF0ZWx5IGxvZ2FyaXRobWljYWxseSwKKwkJaGVuY2UgbGluZWFyIGNoYW5nZXMgaW4gYnJpZ2h0bmVzcyBhcmUgcGVyY2VpdmVkIGFzIGJlaW5nCisJCW5vbi1saW5lYXIuIFRvIGFjaGlldmUgYSBsaW5lYXIgcGVyY2VwdGlvbiBvZiBicmlnaHRuZXNzIGNoYW5nZXMKKwkJY29udHJvbHMgbGlrZSBzbGlkZXJzIG5lZWQgdG8gYXBwbHkgYSBsb2dhcml0aG1pYyBtYXBwaW5nIGZvcgorCQliYWNrbGlnaHRzIHdpdGggYSBsaW5lYXIgYnJpZ2h0bmVzcyBjdXJ2ZS4KKworCQlQb3NzaWJsZSB2YWx1ZXMgb2YgdGhlIGF0dHJpYnV0ZSBhcmU6CisKKwkJdW5rbm93bgorCQkgIFRoZSBzY2FsZSBvZiB0aGUgYnJpZ2h0bmVzcyBjdXJ2ZSBpcyB1bmtub3duLgorCisJCWxpbmVhcgorCQkgIFRoZSBicmlnaHRuZXNzIGNoYW5nZXMgbGluZWFybHkgd2l0aCBlYWNoIHN0ZXAuIEJyaWdodG5lc3MKKwkJICBjb250cm9scyBzaG91bGQgYXBwbHkgYSBsb2dhcml0aG1pYyBtYXBwaW5nIGZvciBhIGxpbmVhcgorCQkgIHBlcmNlcHRpb24uCisKKwkJbm9uLWxpbmVhcgorCQkgIFRoZSBicmlnaHRuZXNzIGNoYW5nZXMgbm9uLWxpbmVhcmx5IHdpdGggZWFjaCBzdGVwLiBCcmlnaHRuZXNzCisJCSAgY29udHJvbHMgc2hvdWxkIHVzZSBhIGxpbmVhciBtYXBwaW5nIGZvciBhIGxpbmVhciBwZXJjZXB0aW9uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1yZW1vdGVwcm9jIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1yZW1vdGVwcm9jCmluZGV4IGMzYWZlOWYuLjM2MDk0ZmIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcmVtb3RlcHJvYworKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXJlbW90ZXByb2MKQEAgLTQ4LDMgKzQ4LDEzIEBACiAKIAkJV3JpdGluZyAic3RvcCIgd2lsbCBhdHRlbXB0IHRvIGhhbHQgdGhlIHJlbW90ZSBwcm9jZXNzb3IgYW5kCiAJCXJldHVybiBpdCB0byB0aGUgIm9mZmxpbmUiIHN0YXRlLgorCitXaGF0OgkJL3N5cy9jbGFzcy9yZW1vdGVwcm9jLy4uLi9uYW1lCitEYXRlOgkJQXVndXN0IDIwMTkKK0tlcm5lbFZlcnNpb246CTUuNAorQ29udGFjdDoJU3VtYW4gQW5uYSA8cy1hbm5hQHRpLmNvbT4KK0Rlc2NyaXB0aW9uOglSZW1vdGUgcHJvY2Vzc29yIG5hbWUKKworCQlSZXBvcnRzIHRoZSBuYW1lIG9mIHRoZSByZW1vdGUgcHJvY2Vzc29yLiBUaGlzIGNhbiBiZSB1c2VkIGJ5CisJCXVzZXJzcGFjZSBpbiBleGFjdGx5IGlkZW50aWZ5aW5nIGEgcmVtb3RlIHByb2Nlc3NvciBhbmQgZWFzZQorCQl1cCB0aGUgdXNhZ2UgaW4gbW9kaWZ5aW5nIHRoZSAnZmlybXdhcmUnIG9yICdzdGF0ZScgZmlsZXMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXdhdGNoZG9nIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy13YXRjaGRvZwppbmRleCA2MzE3YWRlLi42NzVmOWI1IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXdhdGNoZG9nCisrKyBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3Mtd2F0Y2hkb2cKQEAgLTcyLDMgKzcyLDM3IEBACiAJCUl0IGlzIGEgcmVhZC93cml0ZSBmaWxlLiBXaGVuIHJlYWQsIHRoZSBjdXJyZW50bHkgYXNzaWduZWQKIAkJcHJldGltZW91dCBnb3Zlcm5vciBpcyByZXR1cm5lZC4gIFdoZW4gd3JpdHRlbiwgaXQgc2V0cwogCQl0aGUgcHJldGltZW91dCBnb3Zlcm5vci4KKworV2hhdDoJCS9zeXMvY2xhc3Mvd2F0Y2hkb2cvd2F0Y2hkb2cxL2FjY2Vzc19jczAKK0RhdGU6CQlBdWd1c3QgMjAxOQorQ29udGFjdDoJSXZhbiBNaWtoYXlsb3YgPGkubWlraGF5bG92QHlhZHJvLmNvbT4sCisJCUFsZXhhbmRlciBBbWVsa2luIDxhLmFtZWxraW5AeWFkcm8uY29tPgorRGVzY3JpcHRpb246CisJCUl0IGlzIGEgcmVhZC93cml0ZSBmaWxlLiBUaGlzIGF0dHJpYnV0ZSBleGlzdHMgb25seSBpZiB0aGUKKwkJc3lzdGVtIGhhcyBib290ZWQgZnJvbSB0aGUgYWx0ZXJuYXRlIGZsYXNoIGNoaXAgZHVlIHRvCisJCWV4cGlyYXRpb24gb2YgYSB3YXRjaGRvZyB0aW1lciBvZiBBU1QyNDAwL0FTVDI1MDAgd2hlbgorCQlhbHRlcm5hdGUgYm9vdCBmdW5jdGlvbiB3YXMgZW5hYmxlZCB3aXRoICdhc3BlZWQsYWx0LWJvb3QnCisJCWRldmljZXRyZWUgb3B0aW9uIGZvciB0aGF0IHdhdGNoZG9nIG9yIHdpdGggYW4gYXBwcm9wcmlhdGUKKwkJaC93IHN0cmFwcGluZyAoZm9yIFdEVDIgb25seSkuCisKKwkJQXQgYWx0ZXJuYXRlIGZsYXNoIHRoZSAnYWNjZXNzX2NzMCcgc3lzZnMgbm9kZSBwcm92aWRlczoKKwkJCWFzdDI0MDA6IGEgd2F5IHRvIGdldCBhY2Nlc3MgdG8gdGhlIHByaW1hcnkgU1BJIGZsYXNoCisJCQkJY2hpcCBhdCBDUzAgYWZ0ZXIgYm9vdGluZyBmcm9tIHRoZSBhbHRlcm5hdGUKKwkJCQljaGlwIGF0IENTMS4KKwkJCWFzdDI1MDA6IGEgd2F5IHRvIHJlc3RvcmUgdGhlIG5vcm1hbCBhZGRyZXNzIG1hcHBpbmcKKwkJCQlmcm9tIChDUzAtPkNTMSwgQ1MxLT5DUzApIHRvIChDUzAtPkNTMCwKKwkJCQlDUzEtPkNTMSkuCisKKwkJQ2xlYXJpbmcgdGhlIGJvb3QgY29kZSBzZWxlY3Rpb24gYW5kIHRpbWVvdXQgY291bnRlciBhbHNvCisJCXJlc2V0cyB0byB0aGUgaW5pdGlhbCBzdGF0ZSB0aGUgY2hpcCBzZWxlY3QgbGluZSBtYXBwaW5nLiBXaGVuCisJCXRoZSBTb0MgaXMgaW4gbm9ybWFsIG1hcHBpbmcgc3RhdGUgKGkuZS4gYm9vdGVkIGZyb20gQ1MwKSwKKwkJY2xlYXJpbmcgdGhvc2UgYml0cyBkb2VzIG5vdGhpbmcgZm9yIGJvdGggdmVyc2lvbnMgb2YgdGhlIFNvQy4KKwkJRm9yIGFsdGVybmF0ZSBib290IG1vZGUgKGJvb3RlZCBmcm9tIENTMSBkdWUgdG8gd2R0MgorCQlleHBpcmF0aW9uKSB0aGUgYmVoYXZpb3IgZGlmZmVycyBhcyBkZXNjcmliZWQgYWJvdmUuCisKKwkJVGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgd2l0aCB3ZHQyICh3YXRjaGRvZzEpIG9ubHkuCisKKwkJV2hlbiByZWFkLCB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGJvb3QgY29kZSBzZWxlY3Rpb24gaXMKKwkJc2hvd24uIFdoZW4gd3JpdHRlbiB3aXRoIGFueSBub24temVybyB2YWx1ZSwgaXQgY2xlYXJzCisJCXRoZSBib290IGNvZGUgc2VsZWN0aW9uIGFuZCB0aGUgdGltZW91dCBjb3VudGVyLCB3aGljaCByZXN1bHRzCisJCWluIGNoaXBzZWxlY3QgcmVzZXQgZm9yIEFTVDI0MDAvQVNUMjUwMC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtZGV2aWNlcy1zeXN0ZW0tY3B1IGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1kZXZpY2VzLXN5c3RlbS1jcHUKaW5kZXggNWY3ZDdiMS4uMDZkMDkzMSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1kZXZpY2VzLXN5c3RlbS1jcHUKKysrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1kZXZpY2VzLXN5c3RlbS1jcHUKQEAgLTU2MiwzICs1NjIsMTMgQEAKIAkJCSAgb3IgQzAuMiBzdGF0ZS4gVGhlIHRpbWUgaXMgYW4gdW5zaWduZWQgMzItYml0IG51bWJlci4KIAkJCSAgTm90ZSB0aGF0IGEgdmFsdWUgb2YgemVybyBtZWFucyB0aGVyZSBpcyBubyBsaW1pdC4KIAkJCSAgTG93IG9yZGVyIHR3byBiaXRzIG11c3QgYmUgemVyby4KKworV2hhdDoJCS9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L3N2bQorRGF0ZToJCUF1Z3VzdCAyMDE5CitDb250YWN0OglMaW51eCBrZXJuZWwgbWFpbGluZyBsaXN0IDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPgorCQlMaW51eCBmb3IgUG93ZXJQQyBtYWlsaW5nIGxpc3QgPGxpbnV4cHBjLWRldkBvemxhYnMub3JnPgorRGVzY3JpcHRpb246CVNlY3VyZSBWaXJ0dWFsIE1hY2hpbmUKKworCQlJZiAxLCBpdCBtZWFucyB0aGUgc3lzdGVtIGlzIHVzaW5nIHRoZSBQcm90ZWN0ZWQgRXhlY3V0aW9uCisJCUZhY2lsaXR5IGluIFBPV0VSOSBhbmQgbmV3ZXIgcHJvY2Vzc29ycy4gaS5lLiwgaXQgaXMgYSBTZWN1cmUKKwkJVmlydHVhbCBNYWNoaW5lLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1mcy1mMmZzIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1mcy1mMmZzCmluZGV4IGRjYTMyNmUuLjdhYjJiMWIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtZnMtZjJmcworKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWZzLWYyZnMKQEAgLTI1MSwzICsyNTEsMTAgQEAKIAkJSWYgY2hlY2twb2ludD1kaXNhYmxlLCBpdCBkaXNwbGF5cyB0aGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IGFyZSB1bnVzYWJsZS4KICAgICAgICAgICAgICAgICBJZiBjaGVja3BvaW50PWVuYWJsZSBpdCBkaXNwbGF5cyB0aGUgZW51bWJlciBvZiBibG9ja3MgdGhhdCB3b3VsZCBiZSB1bnVzYWJsZQogICAgICAgICAgICAgICAgIGlmIGNoZWNrcG9pbnQ9ZGlzYWJsZSB3ZXJlIHRvIGJlIHNldC4KKworV2hhdDoJCS9zeXMvZnMvZjJmcy88ZGlzaz4vZW5jb2RpbmcKK0RhdGUJCUp1bHkgMjAxOQorQ29udGFjdDoJIkRhbmllbCBSb3NlbmJlcmciIDxkcm9zZW5AZ29vZ2xlLmNvbT4KK0Rlc2NyaXB0aW9uOgorCQlEaXNwbGF5cyBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoZSBlbmNvZGluZyBzZXQgZm9yIHRoZSBmaWxlc3lzdGVtLgorICAgICAgICAgICAgICAgIElmIG5vIGVuY29kaW5nIGlzIHNldCwgZGlzcGxheXMgKG5vbmUpCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWtlcm5lbC1zbGFiIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1rZXJuZWwtc2xhYgppbmRleCAyOTYwMWQ5Li5lZDM1ODMzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWtlcm5lbC1zbGFiCisrKyBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMta2VybmVsLXNsYWIKQEAgLTQyOSwxMCArNDI5LDE1IEBACiBDb250YWN0OglQZWtrYSBFbmJlcmcgPHBlbmJlcmdAY3MuaGVsc2lua2kuZmk+LAogCQlDaHJpc3RvcGggTGFtZXRlciA8Y2xAbGludXgtZm91bmRhdGlvbi5vcmc+CiBEZXNjcmlwdGlvbjoKLQkJVGhlIHNocmluayBmaWxlIGlzIHdyaXR0ZW4gd2hlbiBtZW1vcnkgc2hvdWxkIGJlIHJlY2xhaW1lZCBmcm9tCi0JCWEgY2FjaGUuICBFbXB0eSBwYXJ0aWFsIHNsYWJzIGFyZSBmcmVlZCBhbmQgdGhlIHBhcnRpYWwgbGlzdCBpcwotCQlzb3J0ZWQgc28gdGhlIHNsYWJzIHdpdGggdGhlIGZld2VzdCBhdmFpbGFibGUgb2JqZWN0cyBhcmUgdXNlZAotCQlmaXJzdC4KKwkJVGhlIHNocmluayBmaWxlIGlzIHVzZWQgdG8gcmVjbGFpbSB1bnVzZWQgc2xhYiBjYWNoZQorCQltZW1vcnkgZnJvbSBhIGNhY2hlLiAgRW1wdHkgcGVyLWNwdSBvciBwYXJ0aWFsIHNsYWJzCisJCWFyZSBmcmVlZCBhbmQgdGhlIHBhcnRpYWwgbGlzdCBpcyBzb3J0ZWQgc28gdGhlIHNsYWJzCisJCXdpdGggdGhlIGZld2VzdCBhdmFpbGFibGUgb2JqZWN0cyBhcmUgdXNlZCBmaXJzdC4KKwkJSXQgb25seSBhY2NlcHRzIGEgdmFsdWUgb2YgIjEiIG9uIHdyaXRlIGZvciBzaHJpbmtpbmcKKwkJdGhlIGNhY2hlLiBPdGhlciBpbnB1dCB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgaW52YWxpZC4KKwkJU2hyaW5raW5nIHNsYWIgY2FjaGVzIG1pZ2h0IGJlIGV4cGVuc2l2ZSBhbmQgY2FuCisJCWFkdmVyc2VseSBpbXBhY3Qgb3RoZXIgcnVubmluZyBhcHBsaWNhdGlvbnMuICBTbyBpdAorCQlzaG91bGQgYmUgdXNlZCB3aXRoIGNhcmUuCiAKIFdoYXQ6CQkvc3lzL2tlcm5lbC9zbGFiL2NhY2hlL3NsYWJfc2l6ZQogRGF0ZToJCU1heSAyMDA3CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0RNQS1BUEkudHh0IGIvRG9jdW1lbnRhdGlvbi9ETUEtQVBJLnR4dAppbmRleCBlNDdjNjNiLi4yZDhkMmZlIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0RNQS1BUEkudHh0CisrKyBiL0RvY3VtZW50YXRpb24vRE1BLUFQSS50eHQKQEAgLTIwNCw2ICsyMDQsMTQgQEAKIG9mIHRoZSBtYXBwaW5nIGZ1bmN0aW9ucyBsaWtlIGRtYV9tYXBfc2luZ2xlKCksIGRtYV9tYXBfcGFnZSgpIGFuZAogb3RoZXJzIHNob3VsZCBub3QgYmUgbGFyZ2VyIHRoYW4gdGhlIHJldHVybmVkIHZhbHVlLgogCis6OgorCisJdW5zaWduZWQgbG9uZworCWRtYV9nZXRfbWVyZ2VfYm91bmRhcnkoc3RydWN0IGRldmljZSAqZGV2KTsKKworUmV0dXJucyB0aGUgRE1BIG1lcmdlIGJvdW5kYXJ5LiBJZiB0aGUgZGV2aWNlIGNhbm5vdCBtZXJnZSBhbnkgdGhlIERNQSBhZGRyZXNzCitzZWdtZW50cywgdGhlIGZ1bmN0aW9uIHJldHVybnMgMC4KKwogUGFydCBJZCAtIFN0cmVhbWluZyBETUEgbWFwcGluZ3MKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTU5NSwxNyArNjAzLDYgQEAKIHJlZ2lvbiBvbmx5IGF0IHRoZSBncmFudWxhcml0eSBvZiBhIHBhZ2UuICBGb3Igc21hbGxlciBhbGxvY2F0aW9ucywKIHlvdSBzaG91bGQgdXNlIHRoZSBkbWFfcG9vbCgpIEFQSS4KIAotOjoKLQotCXZvaWQKLQlkbWFfcmVsZWFzZV9kZWNsYXJlZF9tZW1vcnkoc3RydWN0IGRldmljZSAqZGV2KQotCi1SZW1vdmUgdGhlIG1lbW9yeSByZWdpb24gcHJldmlvdXNseSBkZWNsYXJlZCBmcm9tIHRoZSBzeXN0ZW0uICBUaGlzCi1BUEkgcGVyZm9ybXMgKm5vKiBpbi11c2UgY2hlY2tpbmcgZm9yIHRoaXMgcmVnaW9uIGFuZCB3aWxsIHJldHVybgotdW5jb25kaXRpb25hbGx5IGhhdmluZyByZW1vdmVkIGFsbCB0aGUgcmVxdWlyZWQgc3RydWN0dXJlcy4gIEl0IGlzIHRoZQotZHJpdmVyJ3Mgam9iIHRvIGVuc3VyZSB0aGF0IG5vIHBhcnRzIG9mIHRoaXMgbWVtb3J5IHJlZ2lvbiBhcmUKLWN1cnJlbnRseSBpbiB1c2UuCi0KIFBhcnQgSUlJIC0gRGVidWcgZHJpdmVycyB1c2Ugb2YgdGhlIERNQS1BUEkKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9jZ3JvdXAtdjEvbWVtb3J5LnJzdCBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dyb3VwLXYxL21lbW9yeS5yc3QKaW5kZXggNDFiZGMwMy4uMGFlNGY1NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9jZ3JvdXAtdjEvbWVtb3J5LnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2Nncm91cC12MS9tZW1vcnkucnN0CkBAIC04NSw4ICs4NSwxMCBAQAogIG1lbW9yeS5vb21fY29udHJvbAkJICAgICBzZXQvc2hvdyBvb20gY29udHJvbHMuCiAgbWVtb3J5Lm51bWFfc3RhdAkJICAgICBzaG93IHRoZSBudW1iZXIgb2YgbWVtb3J5IHVzYWdlIHBlciBudW1hCiAJCQkJICAgICBub2RlCi0KICBtZW1vcnkua21lbS5saW1pdF9pbl9ieXRlcyAgICAgICAgICBzZXQvc2hvdyBoYXJkIGxpbWl0IGZvciBrZXJuZWwgbWVtb3J5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBrbm9iIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZG4ndCBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZWQuIEl0IGlzIHBsYW5uZWQgdGhhdCB0aGlzIGJlIHJlbW92ZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZm9yZXNlZWFibGUgZnV0dXJlLgogIG1lbW9yeS5rbWVtLnVzYWdlX2luX2J5dGVzICAgICAgICAgIHNob3cgY3VycmVudCBrZXJuZWwgbWVtb3J5IGFsbG9jYXRpb24KICBtZW1vcnkua21lbS5mYWlsY250ICAgICAgICAgICAgICAgICBzaG93IHRoZSBudW1iZXIgb2Yga2VybmVsIG1lbW9yeSB1c2FnZQogCQkJCSAgICAgaGl0cyBsaW1pdHMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvZGV2aWNlLW1hcHBlci9kbS1jbG9uZS5yc3QgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2RldmljZS1tYXBwZXIvZG0tY2xvbmUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0M2EzNGMKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2RldmljZS1tYXBwZXIvZG0tY2xvbmUucnN0CkBAIC0wLDAgKzEsMzMzIEBACisuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisKKz09PT09PT09CitkbS1jbG9uZQorPT09PT09PT0KKworSW50cm9kdWN0aW9uCis9PT09PT09PT09PT0KKworZG0tY2xvbmUgaXMgYSBkZXZpY2UgbWFwcGVyIHRhcmdldCB3aGljaCBwcm9kdWNlcyBhIG9uZS10by1vbmUgY29weSBvZiBhbgorZXhpc3RpbmcsIHJlYWQtb25seSBzb3VyY2UgZGV2aWNlIGludG8gYSB3cml0YWJsZSBkZXN0aW5hdGlvbiBkZXZpY2U6IEl0CitwcmVzZW50cyBhIHZpcnR1YWwgYmxvY2sgZGV2aWNlIHdoaWNoIG1ha2VzIGFsbCBkYXRhIGFwcGVhciBpbW1lZGlhdGVseSwgYW5kCityZWRpcmVjdHMgcmVhZHMgYW5kIHdyaXRlcyBhY2NvcmRpbmdseS4KKworVGhlIG1haW4gdXNlIGNhc2Ugb2YgZG0tY2xvbmUgaXMgdG8gY2xvbmUgYSBwb3RlbnRpYWxseSByZW1vdGUsIGhpZ2gtbGF0ZW5jeSwKK3JlYWQtb25seSwgYXJjaGl2YWwtdHlwZSBibG9jayBkZXZpY2UgaW50byBhIHdyaXRhYmxlLCBmYXN0LCBwcmltYXJ5LXR5cGUgZGV2aWNlCitmb3IgZmFzdCwgbG93LWxhdGVuY3kgSS9PLiBUaGUgY2xvbmVkIGRldmljZSBpcyB2aXNpYmxlL21vdW50YWJsZSBpbW1lZGlhdGVseQorYW5kIHRoZSBjb3B5IG9mIHRoZSBzb3VyY2UgZGV2aWNlIHRvIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UgaGFwcGVucyBpbiB0aGUKK2JhY2tncm91bmQsIGluIHBhcmFsbGVsIHdpdGggdXNlciBJL08uCisKK0ZvciBleGFtcGxlLCBvbmUgY291bGQgcmVzdG9yZSBhbiBhcHBsaWNhdGlvbiBiYWNrdXAgZnJvbSBhIHJlYWQtb25seSBjb3B5LAorYWNjZXNzaWJsZSB0aHJvdWdoIGEgbmV0d29yayBzdG9yYWdlIHByb3RvY29sIChOQkQsIEZpYnJlIENoYW5uZWwsIGlTQ1NJLCBBb0UsCitldGMuKSwgaW50byBhIGxvY2FsIFNTRCBvciBOVk1lIGRldmljZSwgYW5kIHN0YXJ0IHVzaW5nIHRoZSBkZXZpY2UgaW1tZWRpYXRlbHksCit3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSByZXN0b3JlIHRvIGNvbXBsZXRlLgorCitXaGVuIHRoZSBjbG9uaW5nIGNvbXBsZXRlcywgdGhlIGRtLWNsb25lIHRhYmxlIGNhbiBiZSByZW1vdmVkIGFsdG9nZXRoZXIgYW5kIGJlCityZXBsYWNlZCwgZS5nLiwgYnkgYSBsaW5lYXIgdGFibGUsIG1hcHBpbmcgZGlyZWN0bHkgdG8gdGhlIGRlc3RpbmF0aW9uIGRldmljZS4KKworVGhlIGRtLWNsb25lIHRhcmdldCByZXVzZXMgdGhlIG1ldGFkYXRhIGxpYnJhcnkgdXNlZCBieSB0aGUgdGhpbi1wcm92aXNpb25pbmcKK3RhcmdldC4KKworR2xvc3NhcnkKKz09PT09PT09CisKKyAgIEh5ZHJhdGlvbgorICAgICBUaGUgcHJvY2VzcyBvZiBmaWxsaW5nIGEgcmVnaW9uIG9mIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2Ugd2l0aCBkYXRhIGZyb20KKyAgICAgdGhlIHNhbWUgcmVnaW9uIG9mIHRoZSBzb3VyY2UgZGV2aWNlLCBpLmUuLCBjb3B5aW5nIHRoZSByZWdpb24gZnJvbSB0aGUKKyAgICAgc291cmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UuCisKK09uY2UgYSByZWdpb24gZ2V0cyBoeWRyYXRlZCB3ZSByZWRpcmVjdCBhbGwgSS9PIHJlZ2FyZGluZyBpdCB0byB0aGUgZGVzdGluYXRpb24KK2RldmljZS4KKworRGVzaWduCis9PT09PT0KKworU3ViLWRldmljZXMKKy0tLS0tLS0tLS0tCisKK1RoZSB0YXJnZXQgaXMgY29uc3RydWN0ZWQgYnkgcGFzc2luZyB0aHJlZSBkZXZpY2VzIHRvIGl0IChhbG9uZyB3aXRoIG90aGVyCitwYXJhbWV0ZXJzIGRldGFpbGVkIGxhdGVyKToKKworMS4gQSBzb3VyY2UgZGV2aWNlIC0gdGhlIHJlYWQtb25seSBkZXZpY2UgdGhhdCBnZXRzIGNsb25lZCBhbmQgc291cmNlIG9mIHRoZQorICAgaHlkcmF0aW9uLgorCisyLiBBIGRlc3RpbmF0aW9uIGRldmljZSAtIHRoZSBkZXN0aW5hdGlvbiBvZiB0aGUgaHlkcmF0aW9uLCB3aGljaCB3aWxsIGJlY29tZSBhCisgICBjbG9uZSBvZiB0aGUgc291cmNlIGRldmljZS4KKworMy4gQSBzbWFsbCBtZXRhZGF0YSBkZXZpY2UgLSBpdCByZWNvcmRzIHdoaWNoIHJlZ2lvbnMgYXJlIGFscmVhZHkgdmFsaWQgaW4gdGhlCisgICBkZXN0aW5hdGlvbiBkZXZpY2UsIGkuZS4sIHdoaWNoIHJlZ2lvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gaHlkcmF0ZWQsIG9yIGhhdmUKKyAgIGJlZW4gd3JpdHRlbiB0byBkaXJlY3RseSwgdmlhIHVzZXIgSS9PLgorCitUaGUgc2l6ZSBvZiB0aGUgZGVzdGluYXRpb24gZGV2aWNlIG11c3QgYmUgYXQgbGVhc3QgZXF1YWwgdG8gdGhlIHNpemUgb2YgdGhlCitzb3VyY2UgZGV2aWNlLgorCitSZWdpb25zCistLS0tLS0tCisKK2RtLWNsb25lIGRpdmlkZXMgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZGV2aWNlcyBpbiBmaXhlZCBzaXplZCByZWdpb25zLgorUmVnaW9ucyBhcmUgdGhlIHVuaXQgb2YgaHlkcmF0aW9uLCBpLmUuLCB0aGUgbWluaW11bSBhbW91bnQgb2YgZGF0YSBjb3BpZWQgZnJvbQordGhlIHNvdXJjZSB0byB0aGUgZGVzdGluYXRpb24gZGV2aWNlLgorCitUaGUgcmVnaW9uIHNpemUgaXMgY29uZmlndXJhYmxlIHdoZW4geW91IGZpcnN0IGNyZWF0ZSB0aGUgZG0tY2xvbmUgZGV2aWNlLiBUaGUKK3JlY29tbWVuZGVkIHJlZ2lvbiBzaXplIGlzIHRoZSBzYW1lIGFzIHRoZSBmaWxlIHN5c3RlbSBibG9jayBzaXplLCB3aGljaCB1c3VhbGx5CitpcyA0S0IuIFRoZSByZWdpb24gc2l6ZSBtdXN0IGJlIGJldHdlZW4gOCBzZWN0b3JzICg0S0IpIGFuZCAyMDk3MTUyIHNlY3RvcnMKKygxR0IpIGFuZCBhIHBvd2VyIG9mIHR3by4KKworUmVhZHMgYW5kIHdyaXRlcyBmcm9tL3RvIGh5ZHJhdGVkIHJlZ2lvbnMgYXJlIHNlcnZpY2VkIGZyb20gdGhlIGRlc3RpbmF0aW9uCitkZXZpY2UuCisKK0EgcmVhZCB0byBhIG5vdCB5ZXQgaHlkcmF0ZWQgcmVnaW9uIGlzIHNlcnZpY2VkIGRpcmVjdGx5IGZyb20gdGhlIHNvdXJjZSBkZXZpY2UuCisKK0Egd3JpdGUgdG8gYSBub3QgeWV0IGh5ZHJhdGVkIHJlZ2lvbiB3aWxsIGJlIGRlbGF5ZWQgdW50aWwgdGhlIGNvcnJlc3BvbmRpbmcKK3JlZ2lvbiBoYXMgYmVlbiBoeWRyYXRlZCBhbmQgdGhlIGh5ZHJhdGlvbiBvZiB0aGUgcmVnaW9uIHN0YXJ0cyBpbW1lZGlhdGVseS4KKworTm90ZSB0aGF0IGEgd3JpdGUgcmVxdWVzdCB3aXRoIHNpemUgZXF1YWwgdG8gcmVnaW9uIHNpemUgd2lsbCBza2lwIGNvcHlpbmcgb2YKK3RoZSBjb3JyZXNwb25kaW5nIHJlZ2lvbiBmcm9tIHRoZSBzb3VyY2UgZGV2aWNlIGFuZCBvdmVyd3JpdGUgdGhlIHJlZ2lvbiBvZiB0aGUKK2Rlc3RpbmF0aW9uIGRldmljZSBkaXJlY3RseS4KKworRGlzY2FyZHMKKy0tLS0tLS0tCisKK2RtLWNsb25lIGludGVycHJldHMgYSBkaXNjYXJkIHJlcXVlc3QgdG8gYSByYW5nZSB0aGF0IGhhc24ndCBiZWVuIGh5ZHJhdGVkIHlldAorYXMgYSBoaW50IHRvIHNraXAgaHlkcmF0aW9uIG9mIHRoZSByZWdpb25zIGNvdmVyZWQgYnkgdGhlIHJlcXVlc3QsIGkuZS4sIGl0Citza2lwcyBjb3B5aW5nIHRoZSByZWdpb24ncyBkYXRhIGZyb20gdGhlIHNvdXJjZSB0byB0aGUgZGVzdGluYXRpb24gZGV2aWNlLCBhbmQKK29ubHkgdXBkYXRlcyBpdHMgbWV0YWRhdGEuCisKK0lmIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2Ugc3VwcG9ydHMgZGlzY2FyZHMsIHRoZW4gYnkgZGVmYXVsdCBkbS1jbG9uZSB3aWxsIHBhc3MKK2Rvd24gZGlzY2FyZCByZXF1ZXN0cyB0byBpdC4KKworQmFja2dyb3VuZCBIeWRyYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RtLWNsb25lIGNvcGllcyBjb250aW51b3VzbHkgZnJvbSB0aGUgc291cmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UsIHVudGlsCithbGwgb2YgdGhlIGRldmljZSBoYXMgYmVlbiBjb3BpZWQuCisKK0NvcHlpbmcgZGF0YSBmcm9tIHRoZSBzb3VyY2UgdG8gdGhlIGRlc3RpbmF0aW9uIGRldmljZSB1c2VzIGJhbmR3aWR0aC4gVGhlIHVzZXIKK2NhbiBzZXQgYSB0aHJvdHRsZSB0byBwcmV2ZW50IG1vcmUgdGhhbiBhIGNlcnRhaW4gYW1vdW50IG9mIGNvcHlpbmcgb2NjdXJyaW5nIGF0Cithbnkgb25lIHRpbWUuIE1vcmVvdmVyLCBkbS1jbG9uZSB0YWtlcyBpbnRvIGFjY291bnQgdXNlciBJL08gdHJhZmZpYyBnb2luZyB0bwordGhlIGRldmljZXMgYW5kIHBhdXNlcyB0aGUgYmFja2dyb3VuZCBoeWRyYXRpb24gd2hlbiB0aGVyZSBpcyBJL08gaW4tZmxpZ2h0LgorCitBIG1lc3NhZ2UgYGh5ZHJhdGlvbl90aHJlc2hvbGQgPCNyZWdpb25zPmAgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBtYXhpbXVtIG51bWJlcgorb2YgcmVnaW9ucyBiZWluZyBjb3BpZWQsIHRoZSBkZWZhdWx0IGJlaW5nIDEgcmVnaW9uLgorCitkbS1jbG9uZSBlbXBsb3lzIGRtLWtjb3B5ZCBmb3IgY29weWluZyBwb3J0aW9ucyBvZiB0aGUgc291cmNlIGRldmljZSB0byB0aGUKK2Rlc3RpbmF0aW9uIGRldmljZS4gQnkgZGVmYXVsdCwgd2UgaXNzdWUgY29weSByZXF1ZXN0cyBvZiBzaXplIGVxdWFsIHRvIHRoZQorcmVnaW9uIHNpemUuIEEgbWVzc2FnZSBgaHlkcmF0aW9uX2JhdGNoX3NpemUgPCNyZWdpb25zPmAgY2FuIGJlIHVzZWQgdG8gdHVuZSB0aGUKK3NpemUgb2YgdGhlc2UgY29weSByZXF1ZXN0cy4gSW5jcmVhc2luZyB0aGUgaHlkcmF0aW9uIGJhdGNoIHNpemUgcmVzdWx0cyBpbgorZG0tY2xvbmUgdHJ5aW5nIHRvIGJhdGNoIHRvZ2V0aGVyIGNvbnRpZ3VvdXMgcmVnaW9ucywgc28gd2UgY29weSB0aGUgZGF0YSBpbgorYmF0Y2hlcyBvZiB0aGlzIG1hbnkgcmVnaW9ucy4KKworV2hlbiB0aGUgaHlkcmF0aW9uIG9mIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UgZmluaXNoZXMsIGEgZG0gZXZlbnQgd2lsbCBiZSBzZW50Cit0byB1c2VyIHNwYWNlLgorCitVcGRhdGluZyBvbi1kaXNrIG1ldGFkYXRhCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK09uLWRpc2sgbWV0YWRhdGEgaXMgY29tbWl0dGVkIGV2ZXJ5IHRpbWUgYSBGTFVTSCBvciBGVUEgYmlvIGlzIHdyaXR0ZW4uIElmIG5vCitzdWNoIHJlcXVlc3RzIGFyZSBtYWRlIHRoZW4gY29tbWl0cyB3aWxsIG9jY3VyIGV2ZXJ5IHNlY29uZC4gVGhpcyBtZWFucyB0aGUKK2RtLWNsb25lIGRldmljZSBiZWhhdmVzIGxpa2UgYSBwaHlzaWNhbCBkaXNrIHRoYXQgaGFzIGEgdm9sYXRpbGUgd3JpdGUgY2FjaGUuIElmCitwb3dlciBpcyBsb3N0IHlvdSBtYXkgbG9zZSBzb21lIHJlY2VudCB3cml0ZXMuIFRoZSBtZXRhZGF0YSBzaG91bGQgYWx3YXlzIGJlCitjb25zaXN0ZW50IGluIHNwaXRlIG9mIGFueSBjcmFzaC4KKworVGFyZ2V0IEludGVyZmFjZQorPT09PT09PT09PT09PT09PQorCitDb25zdHJ1Y3RvcgorLS0tLS0tLS0tLS0KKworICA6OgorCisgICBjbG9uZSA8bWV0YWRhdGEgZGV2PiA8ZGVzdGluYXRpb24gZGV2PiA8c291cmNlIGRldj4gPHJlZ2lvbiBzaXplPgorICAgICAgICAgWzwjZmVhdHVyZSBhcmdzPiBbPGZlYXR1cmUgYXJnPl0qIFs8I2NvcmUgYXJncz4gWzxjb3JlIGFyZz5dKl1dCisKKyA9PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgbWV0YWRhdGEgZGV2ICAgICBGYXN0IGRldmljZSBob2xkaW5nIHRoZSBwZXJzaXN0ZW50IG1ldGFkYXRhCisgZGVzdGluYXRpb24gZGV2ICBUaGUgZGVzdGluYXRpb24gZGV2aWNlLCB3aGVyZSB0aGUgc291cmNlIHdpbGwgYmUgY2xvbmVkCisgc291cmNlIGRldiAgICAgICBSZWFkIG9ubHkgZGV2aWNlIGNvbnRhaW5pbmcgdGhlIGRhdGEgdGhhdCBnZXRzIGNsb25lZAorIHJlZ2lvbiBzaXplICAgICAgVGhlIHNpemUgb2YgYSByZWdpb24gaW4gc2VjdG9ycworCisgI2ZlYXR1cmUgYXJncyAgICBOdW1iZXIgb2YgZmVhdHVyZSBhcmd1bWVudHMgcGFzc2VkCisgZmVhdHVyZSBhcmdzICAgICBub19oeWRyYXRpb24gb3Igbm9fZGlzY2FyZF9wYXNzZG93bgorCisgI2NvcmUgYXJncyAgICAgICBBbiBldmVuIG51bWJlciBvZiBhcmd1bWVudHMgY29ycmVzcG9uZGluZyB0byBrZXkvdmFsdWUgcGFpcnMKKyAgICAgICAgICAgICAgICAgIHBhc3NlZCB0byBkbS1jbG9uZQorIGNvcmUgYXJncyAgICAgICAgS2V5L3ZhbHVlIHBhaXJzIHBhc3NlZCB0byBkbS1jbG9uZSwgZS5nLiBgaHlkcmF0aW9uX3RocmVzaG9sZAorICAgICAgICAgICAgICAgICAgMjU2YAorID09PT09PT09PT09PT09PT0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworT3B0aW9uYWwgZmVhdHVyZSBhcmd1bWVudHMgYXJlOgorCisgPT09PT09PT09PT09PT09PT09PT0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisgbm9faHlkcmF0aW9uICAgICAgICAgQ3JlYXRlIGEgZG0tY2xvbmUgaW5zdGFuY2Ugd2l0aCBiYWNrZ3JvdW5kIGh5ZHJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkCisgbm9fZGlzY2FyZF9wYXNzZG93biAgRGlzYWJsZSBwYXNzaW5nIGRvd24gZGlzY2FyZHMgdG8gdGhlIGRlc3RpbmF0aW9uIGRldmljZQorID09PT09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitPcHRpb25hbCBjb3JlIGFyZ3VtZW50cyBhcmU6CisKKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgaHlkcmF0aW9uX3RocmVzaG9sZCA8I3JlZ2lvbnM+ICAgTWF4aW11bSBudW1iZXIgb2YgcmVnaW9ucyBiZWluZyBjb3BpZWQgZnJvbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzb3VyY2UgdG8gdGhlIGRlc3RpbmF0aW9uIGRldmljZSBhdCBhbnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmUgdGltZSwgZHVyaW5nIGJhY2tncm91bmQgaHlkcmF0aW9uLgorIGh5ZHJhdGlvbl9iYXRjaF9zaXplIDwjcmVnaW9ucz4gIER1cmluZyBiYWNrZ3JvdW5kIGh5ZHJhdGlvbiwgdHJ5IHRvIGJhdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZXRoZXIgY29udGlndW91cyByZWdpb25zLCBzbyB3ZSBjb3B5IGRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZSBzb3VyY2UgdG8gdGhlIGRlc3RpbmF0aW9uIGRldmljZSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhdGNoZXMgb2YgdGhpcyBtYW55IHJlZ2lvbnMuCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitTdGF0dXMKKy0tLS0tLQorCisgIDo6CisKKyAgIDxtZXRhZGF0YSBibG9jayBzaXplPiA8I3VzZWQgbWV0YWRhdGEgYmxvY2tzPi88I3RvdGFsIG1ldGFkYXRhIGJsb2Nrcz4KKyAgIDxyZWdpb24gc2l6ZT4gPCNoeWRyYXRlZCByZWdpb25zPi88I3RvdGFsIHJlZ2lvbnM+IDwjaHlkcmF0aW5nIHJlZ2lvbnM+CisgICA8I2ZlYXR1cmUgYXJncz4gPGZlYXR1cmUgYXJncz4qIDwjY29yZSBhcmdzPiA8Y29yZSBhcmdzPioKKyAgIDxjbG9uZSBtZXRhZGF0YSBtb2RlPgorCisgPT09PT09PT09PT09PT09PT09PT09PT0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIG1ldGFkYXRhIGJsb2NrIHNpemUgICAgIEZpeGVkIGJsb2NrIHNpemUgZm9yIGVhY2ggbWV0YWRhdGEgYmxvY2sgaW4gc2VjdG9ycworICN1c2VkIG1ldGFkYXRhIGJsb2NrcyAgIE51bWJlciBvZiBtZXRhZGF0YSBibG9ja3MgdXNlZAorICN0b3RhbCBtZXRhZGF0YSBibG9ja3MgIFRvdGFsIG51bWJlciBvZiBtZXRhZGF0YSBibG9ja3MKKyByZWdpb24gc2l6ZSAgICAgICAgICAgICBDb25maWd1cmFibGUgcmVnaW9uIHNpemUgZm9yIHRoZSBkZXZpY2UgaW4gc2VjdG9ycworICNoeWRyYXRlZCByZWdpb25zICAgICAgIE51bWJlciBvZiByZWdpb25zIHRoYXQgaGF2ZSBmaW5pc2hlZCBoeWRyYXRpbmcKKyAjdG90YWwgcmVnaW9ucyAgICAgICAgICBUb3RhbCBudW1iZXIgb2YgcmVnaW9ucyB0byBoeWRyYXRlCisgI2h5ZHJhdGluZyByZWdpb25zICAgICAgTnVtYmVyIG9mIHJlZ2lvbnMgY3VycmVudGx5IGh5ZHJhdGluZworICNmZWF0dXJlIGFyZ3MgICAgICAgICAgIE51bWJlciBvZiBmZWF0dXJlIGFyZ3VtZW50cyB0byBmb2xsb3cKKyBmZWF0dXJlIGFyZ3MgICAgICAgICAgICBGZWF0dXJlIGFyZ3VtZW50cywgZS5nLiBgbm9faHlkcmF0aW9uYAorICNjb3JlIGFyZ3MgICAgICAgICAgICAgIEV2ZW4gbnVtYmVyIG9mIGNvcmUgYXJndW1lbnRzIHRvIGZvbGxvdworIGNvcmUgYXJncyAgICAgICAgICAgICAgIEtleS92YWx1ZSBwYWlycyBmb3IgdHVuaW5nIHRoZSBjb3JlLCBlLmcuCisgICAgICAgICAgICAgICAgICAgICAgICAgYGh5ZHJhdGlvbl90aHJlc2hvbGQgMjU2YAorIGNsb25lIG1ldGFkYXRhIG1vZGUgICAgIHJvIGlmIHJlYWQtb25seSwgcncgaWYgcmVhZC13cml0ZQorCisgICAgICAgICAgICAgICAgICAgICAgICAgSW4gc2VyaW91cyBjYXNlcyB3aGVyZSBldmVuIGEgcmVhZC1vbmx5IG1vZGUgaXMgZGVlbWVkCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIG5vIGZ1cnRoZXIgSS9PIHdpbGwgYmUgcGVybWl0dGVkIGFuZCB0aGUgc3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBqdXN0IGNvbnRhaW4gdGhlIHN0cmluZyAnRmFpbCcuIElmIHRoZSBtZXRhZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgY2hhbmdlcywgYSBkbSBldmVudCB3aWxsIGJlIHNlbnQgdG8gdXNlciBzcGFjZS4KKyA9PT09PT09PT09PT09PT09PT09PT09PSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK01lc3NhZ2VzCistLS0tLS0tLQorCisgIGBkaXNhYmxlX2h5ZHJhdGlvbmAKKyAgICAgIERpc2FibGUgdGhlIGJhY2tncm91bmQgaHlkcmF0aW9uIG9mIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UuCisKKyAgYGVuYWJsZV9oeWRyYXRpb25gCisgICAgICBFbmFibGUgdGhlIGJhY2tncm91bmQgaHlkcmF0aW9uIG9mIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UuCisKKyAgYGh5ZHJhdGlvbl90aHJlc2hvbGQgPCNyZWdpb25zPmAKKyAgICAgIFNldCBiYWNrZ3JvdW5kIGh5ZHJhdGlvbiB0aHJlc2hvbGQuCisKKyAgYGh5ZHJhdGlvbl9iYXRjaF9zaXplIDwjcmVnaW9ucz5gCisgICAgICBTZXQgYmFja2dyb3VuZCBoeWRyYXRpb24gYmF0Y2ggc2l6ZS4KKworRXhhbXBsZXMKKz09PT09PT09CisKK0Nsb25lIGEgZGV2aWNlIGNvbnRhaW5pbmcgYSBmaWxlIHN5c3RlbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKzEuIENyZWF0ZSB0aGUgZG0tY2xvbmUgZGV2aWNlLgorCisgICA6OgorCisgICAgZG1zZXR1cCBjcmVhdGUgY2xvbmUgLS10YWJsZSAiMCAxMDQ4NTc2MDAwIGNsb25lICRtZXRhZGF0YV9kZXYgJGRlc3RfZGV2IFwKKyAgICAgICRzb3VyY2VfZGV2IDggMSBub19oeWRyYXRpb24iCisKKzIuIE1vdW50IHRoZSBkZXZpY2UgYW5kIHRyaW0gdGhlIGZpbGUgc3lzdGVtLiBkbS1jbG9uZSBpbnRlcnByZXRzIHRoZSBkaXNjYXJkcworICAgc2VudCBieSB0aGUgZmlsZSBzeXN0ZW0gYW5kIGl0IHdpbGwgbm90IGh5ZHJhdGUgdGhlIHVudXNlZCBzcGFjZS4KKworICAgOjoKKworICAgIG1vdW50IC9kZXYvbWFwcGVyL2Nsb25lIC9tbnQvY2xvbmVkLWZzCisgICAgZnN0cmltIC9tbnQvY2xvbmVkLWZzCisKKzMuIEVuYWJsZSBiYWNrZ3JvdW5kIGh5ZHJhdGlvbiBvZiB0aGUgZGVzdGluYXRpb24gZGV2aWNlLgorCisgICA6OgorCisgICAgZG1zZXR1cCBtZXNzYWdlIGNsb25lIDAgZW5hYmxlX2h5ZHJhdGlvbgorCis0LiBXaGVuIHRoZSBoeWRyYXRpb24gZmluaXNoZXMsIHdlIGNhbiByZXBsYWNlIHRoZSBkbS1jbG9uZSB0YWJsZSB3aXRoIGEgbGluZWFyCisgICB0YWJsZS4KKworICAgOjoKKworICAgIGRtc2V0dXAgc3VzcGVuZCBjbG9uZQorICAgIGRtc2V0dXAgbG9hZCBjbG9uZSAtLXRhYmxlICIwIDEwNDg1NzYwMDAgbGluZWFyICRkZXN0X2RldiAwIgorICAgIGRtc2V0dXAgcmVzdW1lIGNsb25lCisKKyAgIFRoZSBtZXRhZGF0YSBkZXZpY2UgaXMgbm8gbG9uZ2VyIG5lZWRlZCBhbmQgY2FuIGJlIHNhZmVseSBkaXNjYXJkZWQgb3IgcmV1c2VkCisgICBmb3Igb3RoZXIgcHVycG9zZXMuCisKK0tub3duIGlzc3VlcworPT09PT09PT09PT09CisKKzEuIFdlIHJlZGlyZWN0IHJlYWRzLCB0byBub3QteWV0LWh5ZHJhdGVkIHJlZ2lvbnMsIHRvIHRoZSBzb3VyY2UgZGV2aWNlLiBJZgorICAgcmVhZGluZyB0aGUgc291cmNlIGRldmljZSBoYXMgaGlnaCBsYXRlbmN5IGFuZCB0aGUgdXNlciByZXBlYXRlZGx5IHJlYWRzIGZyb20KKyAgIHRoZSBzYW1lIHJlZ2lvbnMsIHRoaXMgYmVoYXZpb3VyIGNvdWxkIGRlZ3JhZGUgcGVyZm9ybWFuY2UuIFdlIHNob3VsZCB1c2UKKyAgIHRoZXNlIHJlYWRzIGFzIGhpbnRzIHRvIGh5ZHJhdGUgdGhlIHJlbGV2YW50IHJlZ2lvbnMgc29vbmVyLiBDdXJyZW50bHksIHdlCisgICByZWx5IG9uIHRoZSBwYWdlIGNhY2hlIHRvIGNhY2hlIHRoZXNlIHJlZ2lvbnMsIHNvIHdlIGhvcGVmdWxseSBkb24ndCBlbmQgdXAKKyAgIHJlYWRpbmcgdGhlbSBtdWx0aXBsZSB0aW1lcyBmcm9tIHRoZSBzb3VyY2UgZGV2aWNlLgorCisyLiBSZWxlYXNlIGluLWNvcmUgcmVzb3VyY2VzLCBpLmUuLCB0aGUgYml0bWFwcyB0cmFja2luZyB3aGljaCByZWdpb25zIGFyZQorICAgaHlkcmF0ZWQsIGFmdGVyIHRoZSBoeWRyYXRpb24gaGFzIGZpbmlzaGVkLgorCiszLiBEdXJpbmcgYmFja2dyb3VuZCBoeWRyYXRpb24sIGlmIHdlIGZhaWwgdG8gcmVhZCB0aGUgc291cmNlIG9yIHdyaXRlIHRvIHRoZQorICAgZGVzdGluYXRpb24gZGV2aWNlLCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlLCBidXQgdGhlIGh5ZHJhdGlvbiBwcm9jZXNzCisgICBjb250aW51ZXMgaW5kZWZpbml0ZWx5LCB1bnRpbCBpdCBzdWNjZWVkcy4gV2Ugc2hvdWxkIHN0b3AgdGhlIGJhY2tncm91bmQKKyAgIGh5ZHJhdGlvbiBhZnRlciBhIG51bWJlciBvZiBmYWlsdXJlcyBhbmQgZW1pdCBhIGRtIGV2ZW50IGZvciB1c2VyIHNwYWNlIHRvCisgICBub3RpY2UuCisKK1doeSBub3QuLi4/Cis9PT09PT09PT09PQorCitXZSBleHBsb3JlZCB0aGUgZm9sbG93aW5nIGFsdGVybmF0aXZlcyBiZWZvcmUgaW1wbGVtZW50aW5nIGRtLWNsb25lOgorCisxLiBVc2UgZG0tY2FjaGUgd2l0aCBjYWNoZSBzaXplIGVxdWFsIHRvIHRoZSBzb3VyY2UgZGV2aWNlIGFuZCBpbXBsZW1lbnQgYSBuZXcKKyAgIGNsb25pbmcgcG9saWN5OgorCisgICAqIFRoZSByZXN1bHRpbmcgY2FjaGUgZGV2aWNlIGlzIG5vdCBhIG9uZS10by1vbmUgbWlycm9yIG9mIHRoZSBzb3VyY2UgZGV2aWNlCisgICAgIGFuZCB0aHVzIHdlIGNhbm5vdCByZW1vdmUgdGhlIGNhY2hlIGRldmljZSBvbmNlIGNsb25pbmcgY29tcGxldGVzLgorCisgICAqIGRtLWNhY2hlIHdyaXRlcyB0byB0aGUgc291cmNlIGRldmljZSwgd2hpY2ggdmlvbGF0ZXMgb3VyIHJlcXVpcmVtZW50IHRoYXQKKyAgICAgdGhlIHNvdXJjZSBkZXZpY2UgbXVzdCBiZSB0cmVhdGVkIGFzIHJlYWQtb25seS4KKworICAgKiBDYWNoaW5nIGlzIHNlbWFudGljYWxseSBkaWZmZXJlbnQgZnJvbSBjbG9uaW5nLgorCisyLiBVc2UgZG0tc25hcHNob3Qgd2l0aCBhIENPVyBkZXZpY2UgZXF1YWwgdG8gdGhlIHNvdXJjZSBkZXZpY2U6CisKKyAgICogZG0tc25hcHNob3Qgc3RvcmVzIGl0cyBtZXRhZGF0YSBpbiB0aGUgQ09XIGRldmljZSwgc28gdGhlIHJlc3VsdGluZyBkZXZpY2UKKyAgICAgaXMgbm90IGEgb25lLXRvLW9uZSBtaXJyb3Igb2YgdGhlIHNvdXJjZSBkZXZpY2UuCisKKyAgICogTm8gYmFja2dyb3VuZCBjb3B5aW5nIG1lY2hhbmlzbS4KKworICAgKiBkbS1zbmFwc2hvdCBuZWVkcyB0byBjb21taXQgaXRzIG1ldGFkYXRhIHdoZW5ldmVyIGEgcGVuZGluZyBleGNlcHRpb24KKyAgICAgY29tcGxldGVzLCB0byBlbnN1cmUgc25hcHNob3QgY29uc2lzdGVuY3kuIEluIHRoZSBjYXNlIG9mIGNsb25pbmcsIHdlIGRvbid0CisgICAgIG5lZWQgdG8gYmUgc28gc3RyaWN0IGFuZCBjYW4gcmVseSBvbiBjb21taXR0aW5nIG1ldGFkYXRhIGV2ZXJ5IHRpbWUgYSBGTFVTSAorICAgICBvciBGVUEgYmlvIGlzIHdyaXR0ZW4sIG9yIHBlcmlvZGljYWxseSwgbGlrZSBkbS10aGluIGFuZCBkbS1jYWNoZSBkby4gVGhpcworICAgICBpbXByb3ZlcyB0aGUgcGVyZm9ybWFuY2Ugc2lnbmlmaWNhbnRseS4KKworMy4gVXNlIGRtLW1pcnJvcjogVGhlIG1pcnJvciB0YXJnZXQgaGFzIGEgYmFja2dyb3VuZCBjb3B5aW5nL21pcnJvcmluZworICAgbWVjaGFuaXNtLCBidXQgaXQgd3JpdGVzIHRvIGFsbCBtaXJyb3JzLCB0aHVzIHZpb2xhdGluZyBvdXIgcmVxdWlyZW1lbnQgdGhhdAorICAgdGhlIHNvdXJjZSBkZXZpY2UgbXVzdCBiZSB0cmVhdGVkIGFzIHJlYWQtb25seS4KKworNC4gVXNlIGRtLXRoaW4ncyBleHRlcm5hbCBzbmFwc2hvdCBmdW5jdGlvbmFsaXR5LiBUaGlzIGFwcHJvYWNoIGlzIHRoZSBtb3N0CisgICBwcm9taXNpbmcgYW1vbmcgYWxsIGFsdGVybmF0aXZlcywgYXMgdGhlIHRoaW5seS1wcm92aXNpb25lZCB2b2x1bWUgaXMgYQorICAgb25lLXRvLW9uZSBtaXJyb3Igb2YgdGhlIHNvdXJjZSBkZXZpY2UgYW5kIGhhbmRsZXMgcmVhZHMgYW5kIHdyaXRlcyB0bworICAgdW4tcHJvdmlzaW9uZWQvbm90LXlldC1jbG9uZWQgYXJlYXMgdGhlIHNhbWUgd2F5IGFzIGRtLWNsb25lIGRvZXMuCisKKyAgIFN0aWxsOgorCisgICAqIFRoZXJlIGlzIG5vIGJhY2tncm91bmQgY29weWluZyBtZWNoYW5pc20sIHRob3VnaCBvbmUgY291bGQgYmUgaW1wbGVtZW50ZWQuCisKKyAgICogTW9zdCBpbXBvcnRhbnRseSwgd2Ugd2FudCB0byBzdXBwb3J0IGFyYml0cmFyeSBibG9jayBkZXZpY2VzIGFzIHRoZQorICAgICBkZXN0aW5hdGlvbiBvZiB0aGUgY2xvbmluZyBwcm9jZXNzIGFuZCBub3QgcmVzdHJpY3Qgb3Vyc2VsdmVzIHRvCisgICAgIHRoaW5seS1wcm92aXNpb25lZCB2b2x1bWVzLiBUaGluLXByb3Zpc2lvbmluZyBoYXMgYW4gaW5oZXJlbnQgbWV0YWRhdGEKKyAgICAgb3ZlcmhlYWQsIGZvciBtYWludGFpbmluZyB0aGUgdGhpbiB2b2x1bWUgbWFwcGluZ3MsIHdoaWNoIHNpZ25pZmljYW50bHkKKyAgICAgZGVncmFkZXMgcGVyZm9ybWFuY2UuCisKKyAgIE1vcmVvdmVyLCBjbG9uaW5nIGEgZGV2aWNlIHNob3VsZG4ndCBmb3JjZSB0aGUgdXNlIG9mIHRoaW4tcHJvdmlzaW9uaW5nLiBPbgorICAgdGhlIG90aGVyIGhhbmQsIGlmIHdlIHdpc2ggdG8gdXNlIHRoaW4gcHJvdmlzaW9uaW5nLCB3ZSBjYW4ganVzdCB1c2UgYSB0aGluCisgICBMViBhcyBkbS1jbG9uZSdzIGRlc3RpbmF0aW9uIGRldmljZS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvZGV2aWNlLW1hcHBlci92ZXJpdHkucnN0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9kZXZpY2UtbWFwcGVyL3Zlcml0eS5yc3QKaW5kZXggYTRkMWMxNC4uYmIwMmNhYSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9kZXZpY2UtbWFwcGVyL3Zlcml0eS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9kZXZpY2UtbWFwcGVyL3Zlcml0eS5yc3QKQEAgLTEyNSw2ICsxMjUsMTMgQEAKICAgICBibG9ja3MsIGFuZCBhIGhhc2ggYmxvY2sgd2lsbCBub3QgYmUgdmVyaWZpZWQgYW55IG1vcmUgYWZ0ZXIgYWxsIHRoZSBkYXRhCiAgICAgYmxvY2tzIGl0IGNvdmVycyBoYXZlIGJlZW4gdmVyaWZpZWQgYW55d2F5LgogCityb290X2hhc2hfc2lnX2tleV9kZXNjIDxrZXlfZGVzY3JpcHRpb24+CisgICAgVGhpcyBpcyB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIFVTRVJfS0VZIHRoYXQgdGhlIGtlcm5lbCB3aWxsIGxvb2t1cCB0byBnZXQKKyAgICB0aGUgcGtjczcgc2lnbmF0dXJlIG9mIHRoZSByb290aGFzaC4gVGhlIHBrY3M3IHNpZ25hdHVyZSBpcyB1c2VkIHRvIHZhbGlkYXRlCisgICAgdGhlIHJvb3QgaGFzaCBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIHRoZSBkZXZpY2UgbWFwcGVyIGJsb2NrIGRldmljZS4KKyAgICBWZXJpZmljYXRpb24gb2Ygcm9vdGhhc2ggZGVwZW5kcyBvbiB0aGUgY29uZmlnIERNX1ZFUklUWV9WRVJJRllfUk9PVEhBU0hfU0lHCisgICAgYmVpbmcgc2V0IGluIHRoZSBrZXJuZWwuCisKIFRoZW9yeSBvZiBvcGVyYXRpb24KID09PT09PT09PT09PT09PT09PT0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAppbmRleCA3ODJlOTA3Li5jN2FjMmYzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dApAQCAtODA5LDYgKzgwOSw4IEBACiAJCQllbmFibGVzIHRoZSBmZWF0dXJlIGF0IGJvb3QgdGltZS4gQnkgZGVmYXVsdCwgaXQgaXMKIAkJCWRpc2FibGVkIGFuZCB0aGUgc3lzdGVtIHdpbGwgd29yayBtb3N0bHkgdGhlIHNhbWUgYXMgYQogCQkJa2VybmVsIGJ1aWx0IHdpdGhvdXQgQ09ORklHX0RFQlVHX1BBR0VBTExPQy4KKwkJCU5vdGU6IHRvIGdldCBtb3N0IG9mIGRlYnVnX3BhZ2VhbGxvYyBlcnJvciByZXBvcnRzLCBpdCdzCisJCQl1c2VmdWwgdG8gYWxzbyBlbmFibGUgdGhlIHBhZ2Vfb3duZXIgZnVuY3Rpb25hbGl0eS4KIAkJCW9uOiBlbmFibGUgdGhlIGZlYXR1cmUKIAogCWRlYnVncGF0CVtYODZdIEVuYWJsZSBQQVQgZGVidWdnaW5nCkBAIC04NjAsNiArODYyLDEwIEBACiAJZGlzYWJsZV9yYWRpeAlbUFBDXQogCQkJRGlzYWJsZSBSQURJWCBNTVUgbW9kZSBvbiBQT1dFUjkKIAorCWRpc2FibGVfdGxiaWUJW1BQQ10KKwkJCURpc2FibGUgVExCSUUgaW5zdHJ1Y3Rpb24uIEN1cnJlbnRseSBkb2VzIG5vdCB3b3JrCisJCQl3aXRoIEtWTSwgd2l0aCBIQVNIIE1NVSwgb3Igd2l0aCBjb2hlcmVudCBhY2NlbGVyYXRvcnMuCisKIAlkaXNhYmxlX2NwdV9hcGljaWQ9IFtYODYsQVBJQyxTTVBdCiAJCQlGb3JtYXQ6IDxpbnQ+CiAJCQlUaGUgbnVtYmVyIG9mIGluaXRpYWwgQVBJQyBJRCBmb3IgdGhlCkBAIC0yMjcwLDYgKzIyNzYsMTUgQEAKIAlsb2NrZC5ubG1fdWRwcG9ydD1NCVtORlNdIEFzc2lnbiBVRFAgcG9ydC4KIAkJCUZvcm1hdDogPGludGVnZXI+CiAKKwlsb2NrZG93bj0JW1NFQ1VSSVRZXQorCQkJeyBpbnRlZ3JpdHkgfCBjb25maWRlbnRpYWxpdHkgfQorCQkJRW5hYmxlIHRoZSBrZXJuZWwgbG9ja2Rvd24gZmVhdHVyZS4gSWYgc2V0IHRvCisJCQlpbnRlZ3JpdHksIGtlcm5lbCBmZWF0dXJlcyB0aGF0IGFsbG93IHVzZXJsYW5kIHRvCisJCQltb2RpZnkgdGhlIHJ1bm5pbmcga2VybmVsIGFyZSBkaXNhYmxlZC4gSWYgc2V0IHRvCisJCQljb25maWRlbnRpYWxpdHksIGtlcm5lbCBmZWF0dXJlcyB0aGF0IGFsbG93IHVzZXJsYW5kCisJCQl0byBleHRyYWN0IGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBrZXJuZWwKKwkJCWFyZSBhbHNvIGRpc2FibGVkLgorCiAJbG9ja3RvcnR1cmUubnJlYWRlcnNfc3RyZXNzPSBbS05MXQogCQkJU2V0IHRoZSBudW1iZXIgb2YgbG9ja2luZyByZWFkLWFjcXVpc2l0aW9uIGt0aHJlYWRzLgogCQkJRGVmYXVsdHMgdG8gYmVpbmcgYXV0b21hdGljYWxseSBzZXQgYmFzZWQgb24gdGhlCkBAIC0zNDYxLDEyICszNDc2LDEzIEBACiAJCQkJc3BlY2lmeSB0aGUgZGV2aWNlIGlzIGRlc2NyaWJlZCBhYm92ZS4KIAkJCQlJZiA8b3JkZXIgb2YgYWxpZ24+IGlzIG5vdCBzcGVjaWZpZWQsCiAJCQkJUEFHRV9TSVpFIGlzIHVzZWQgYXMgYWxpZ25tZW50LgotCQkJCVBDSS1QQ0kgYnJpZGdlIGNhbiBiZSBzcGVjaWZpZWQsIGlmIHJlc291cmNlCisJCQkJQSBQQ0ktUENJIGJyaWRnZSBjYW4gYmUgc3BlY2lmaWVkIGlmIHJlc291cmNlCiAJCQkJd2luZG93cyBuZWVkIHRvIGJlIGV4cGFuZGVkLgogCQkJCVRvIHNwZWNpZnkgdGhlIGFsaWdubWVudCBmb3Igc2V2ZXJhbAogCQkJCWluc3RhbmNlcyBvZiBhIGRldmljZSwgdGhlIFBDSSB2ZW5kb3IsCiAJCQkJZGV2aWNlLCBzdWJ2ZW5kb3IsIGFuZCBzdWJkZXZpY2UgbWF5IGJlCi0JCQkJc3BlY2lmaWVkLCBlLmcuLCA0MDk2QHBjaTo4MDg2OjljMjI6MTAzYzoxOThmCisJCQkJc3BlY2lmaWVkLCBlLmcuLCAxMkBwY2k6ODA4Njo5YzIyOjEwM2M6MTk4ZgorCQkJCWZvciA0MDk2LWJ5dGUgYWxpZ25tZW50LgogCQllY3JjPQkJRW5hYmxlL2Rpc2FibGUgUENJZSBFQ1JDICh0cmFuc2FjdGlvbiBsYXllcgogCQkJCWVuZC10by1lbmQgQ1JDIGNoZWNraW5nKS4KIAkJCQliaW9zOiBVc2UgQklPUy9maXJtd2FyZSBzZXR0aW5ncy4gVGhpcyBpcyB0aGUKQEAgLTQ2NDEsNiArNDY1NywxMSBAQAogCQkJL3N5cy9wb3dlci9wbV90ZXN0KS4gT25seSBhdmFpbGFibGUgd2hlbiBDT05GSUdfUE1fREVCVUcKIAkJCWlzIHNldC4gRGVmYXVsdCB2YWx1ZSBpcyA1LgogCisJc3ZtPQkJW1BQQ10KKwkJCUZvcm1hdDogeyBvbiB8IG9mZiB8IHkgfCBuIHwgMSB8IDAgfQorCQkJVGhpcyBwYXJhbWV0ZXIgY29udHJvbHMgdXNlIG9mIHRoZSBQcm90ZWN0ZWQKKwkJCUV4ZWN1dGlvbiBGYWNpbGl0eSBvbiBwU2VyaWVzLgorCiAJc3dhcGFjY291bnQ9WzB8MV0KIAkJCVtLTkxdIEVuYWJsZSBhY2NvdW50aW5nIG9mIHN3YXAgaW4gbWVtb3J5IHJlc291cmNlCiAJCQljb250cm9sbGVyIGlmIG5vIHBhcmFtZXRlciBvciAxIGlzIGdpdmVuIG9yIGRpc2FibGUKQEAgLTUzMjYsMyArNTM0NywyMiBAQAogCQkJQSBoZXggdmFsdWUgc3BlY2lmeWluZyBiaXRtYXNrIHdpdGggc3VwcGxlbWVudGFsIHhoY2kKIAkJCWhvc3QgY29udHJvbGxlciBxdWlya3MuIE1lYW5pbmcgb2YgZWFjaCBiaXQgY2FuIGJlCiAJCQljb25zdWx0ZWQgaW4gaGVhZGVyIGRyaXZlcnMvdXNiL2hvc3QveGhjaS5oLgorCisJeG1vbgkJW1BQQ10KKwkJCUZvcm1hdDogeyBlYXJseSB8IG9uIHwgcncgfCBybyB8IG9mZiB9CisJCQlDb250cm9scyBpZiB4bW9uIGRlYnVnZ2VyIGlzIGVuYWJsZWQuIERlZmF1bHQgaXMgb2ZmLgorCQkJUGFzc2luZyBvbmx5ICJ4bW9uIiBpcyBlcXVpdmFsZW50IHRvICJ4bW9uPWVhcmx5Ii4KKwkJCWVhcmx5CUNhbGwgeG1vbiBhcyBlYXJseSBhcyBwb3NzaWJsZSBvbiBib290OyB4bW9uCisJCQkJZGVidWdnZXIgaXMgY2FsbGVkIGZyb20gc2V0dXBfYXJjaCgpLgorCQkJb24JeG1vbiBkZWJ1Z2dlciBob29rcyB3aWxsIGJlIGluc3RhbGxlZCBzbyB4bW9uCisJCQkJaXMgb25seSBjYWxsZWQgb24gYSBrZXJuZWwgY3Jhc2guIERlZmF1bHQgbW9kZSwKKwkJCQlpLmUuIGVpdGhlciAicm8iIG9yICJydyIgbW9kZSwgaXMgY29udHJvbGxlZAorCQkJCXdpdGggQ09ORklHX1hNT05fREVGQVVMVF9ST19NT0RFLgorCQkJcncJeG1vbiBkZWJ1Z2dlciBob29rcyB3aWxsIGJlIGluc3RhbGxlZCBzbyB4bW9uCisJCQkJaXMgY2FsbGVkIG9ubHkgb24gYSBrZXJuZWwgY3Jhc2gsIG1vZGUgaXMgd3JpdGUsCisJCQkJbWVhbmluZyBTUFIgcmVnaXN0ZXJzLCBtZW1vcnkgYW5kLCBvdGhlciBkYXRhCisJCQkJY2FuIGJlIHdyaXR0ZW4gdXNpbmcgeG1vbiBjb21tYW5kcy4KKwkJCXJvIAlzYW1lIGFzICJydyIgb3B0aW9uIGFib3ZlIGJ1dCBTUFIgcmVnaXN0ZXJzLAorCQkJCW1lbW9yeSwgYW5kIG90aGVyIGRhdGEgY2FuJ3QgYmUgd3JpdHRlbiB1c2luZworCQkJCXhtb24gY29tbWFuZHMuCisJCQlvZmYJeG1vbiBpcyBkaXNhYmxlZC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY29yZS1hcGkva2VybmVsLWFwaS5yc3QgYi9Eb2N1bWVudGF0aW9uL2NvcmUtYXBpL2tlcm5lbC1hcGkucnN0CmluZGV4IDA4YWY1Y2EuLmY3N2RlNDkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vY29yZS1hcGkva2VybmVsLWFwaS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9jb3JlLWFwaS9rZXJuZWwtYXBpLnJzdApAQCAtNDIsNiArNDIsOSBAQAogLi4ga2VybmVsLWRvYzo6IGxpYi9zdHJpbmcuYwogICAgOmV4cG9ydDoKIAorLi4ga2VybmVsLWRvYzo6IGluY2x1ZGUvbGludXgvc3RyaW5nLmgKKyAgIDppbnRlcm5hbDoKKwogLi4ga2VybmVsLWRvYzo6IG1tL3V0aWwuYwogICAgOmZ1bmN0aW9uczoga3N0cmR1cCBrc3RyZHVwX2NvbnN0IGtzdHJuZHVwIGttZW1kdXAga21lbWR1cF9udWwgbWVtZHVwX3VzZXIKICAgICAgICAgICAgICAgIHZtZW1kdXBfdXNlciBzdHJuZHVwX3VzZXIgbWVtZHVwX3VzZXJfbnVsCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FjdGlvbnMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hY3Rpb25zLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU0ZjMzYy4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FjdGlvbnMudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotQWN0aW9ucyBTZW1pIHBsYXRmb3JtcyBkZXZpY2UgdHJlZSBiaW5kaW5ncwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLVM1MDAgU29DCi09PT09PT09PQotCi1SZXF1aXJlZCByb290IG5vZGUgcHJvcGVydGllczoKLQotIC0gY29tcGF0aWJsZSA6ICBtdXN0IGNvbnRhaW4gImFjdGlvbnMsczUwMCIKLQotCi1Nb2R1bGVzOgotCi1Sb290IG5vZGUgcHJvcGVydHkgY29tcGF0aWJsZSBtdXN0IGNvbnRhaW4sIGRlcGVuZGluZyBvbiBtb2R1bGU6Ci0KLSAtIExlTWFrZXIgR3VpdGFyOiAibGVtYWtlcixndWl0YXIiCi0KLQotQm9hcmRzOgotCi1Sb290IG5vZGUgcHJvcGVydHkgY29tcGF0aWJsZSBtdXN0IGNvbnRhaW4sIGRlcGVuZGluZyBvbiBib2FyZDoKLQotIC0gQWxsby5jb20gU3Bhcmt5OiAiYWxsbyxzcGFya3kiCi0gLSBDdWJpZXRlY2ggQ3ViaWVCb2FyZDY6ICJjdWJpZXRlY2gsY3ViaWVib2FyZDYiCi0gLSBMZU1ha2VyIEd1aXRhciBCYXNlIEJvYXJkIHJldi4gQjogImxlbWFrZXIsZ3VpdGFyLWJiLXJldi1iIiwgImxlbWFrZXIsZ3VpdGFyIgotCi0KLVM3MDAgU29DCi09PT09PT09PQotCi1SZXF1aXJlZCByb290IG5vZGUgcHJvcGVydGllczoKLQotLSBjb21wYXRpYmxlIDogIG11c3QgY29udGFpbiAiYWN0aW9ucyxzNzAwIgotCi0KLUJvYXJkczoKLQotUm9vdCBub2RlIHByb3BlcnR5IGNvbXBhdGlibGUgbXVzdCBjb250YWluLCBkZXBlbmRpbmcgb24gYm9hcmQ6Ci0KLSAtIEN1YmlldGVjaCBDdWJpZUJvYXJkNzogImN1YmlldGVjaCxjdWJpZWJvYXJkNyIKLQotCi1TOTAwIFNvQwotPT09PT09PT0KLQotUmVxdWlyZWQgcm9vdCBub2RlIHByb3BlcnRpZXM6Ci0KLS0gY29tcGF0aWJsZSA6ICBtdXN0IGNvbnRhaW4gImFjdGlvbnMsczkwMCIKLQotCi1Cb2FyZHM6Ci0KLVJvb3Qgbm9kZSBwcm9wZXJ0eSBjb21wYXRpYmxlIG11c3QgY29udGFpbiwgZGVwZW5kaW5nIG9uIGJvYXJkOgotCi0gLSB1Q1JvYm90aWNzIEJ1YmJsZWd1bS05NjogInVjcm9ib3RpY3MsYnViYmxlZ3VtLTk2IgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hY3Rpb25zLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FjdGlvbnMueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2UzZmRhCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hY3Rpb25zLnlhbWwKQEAgLTAsMCArMSwzOCBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlciBPUiBCU0QtMi1DbGF1c2UKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2FybS9hY3Rpb25zLnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IEFjdGlvbnMgU2VtaSBwbGF0Zm9ybXMgZGV2aWNlIHRyZWUgYmluZGluZ3MKKworbWFpbnRhaW5lcnM6CisgIC0gQW5kcmVhcyBGw6RyYmVyIDxhZmFlcmJlckBzdXNlLmRlPgorICAtIE1hbml2YW5uYW4gU2FkaGFzaXZhbSA8bWFuaXZhbm5hbi5zYWRoYXNpdmFtQGxpbmFyby5vcmc+CisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgb25lT2Y6CisgICAgICAjIFRoZSBBY3Rpb25zIFNlbWkgUzUwMCBpcyBhIHF1YWQtY29yZSBBUk0gQ29ydGV4LUE5IFNvQy4KKyAgICAgIC0gaXRlbXM6CisgICAgICAgICAgLSBlbnVtOgorICAgICAgICAgICAgICAtIGFsbG8sc3Bhcmt5ICMgQWxsby5jb20gU3Bhcmt5CisgICAgICAgICAgICAgIC0gY3ViaWV0ZWNoLGN1YmllYm9hcmQ2ICMgQ3ViaWV0ZWNoIEN1YmllQm9hcmQ2CisgICAgICAgICAgLSBjb25zdDogYWN0aW9ucyxzNTAwCisgICAgICAtIGl0ZW1zOgorICAgICAgICAgIC0gZW51bToKKyAgICAgICAgICAgICAgLSBsZW1ha2VyLGd1aXRhci1iYi1yZXYtYiAjIExlTWFrZXIgR3VpdGFyIEJhc2UgQm9hcmQgcmV2LiBCCisgICAgICAgICAgLSBjb25zdDogbGVtYWtlcixndWl0YXIKKyAgICAgICAgICAtIGNvbnN0OiBhY3Rpb25zLHM1MDAKKworICAgICAgIyBUaGUgQWN0aW9ucyBTZW1pIFM3MDAgaXMgYSBxdWFkLWNvcmUgQVJNIENvcnRleC1BNTMgU29DLgorICAgICAgLSBpdGVtczoKKyAgICAgICAgICAtIGVudW06CisgICAgICAgICAgICAgIC0gY3ViaWV0ZWNoLGN1YmllYm9hcmQ3ICMgQ3ViaWV0ZWNoIEN1YmllQm9hcmQ3CisgICAgICAgICAgLSBjb25zdDogYWN0aW9ucyxzNzAwCisKKyAgICAgICMgVGhlIEFjdGlvbnMgU2VtaSBTOTAwIGlzIGEgcXVhZC1jb3JlIEFSTSBDb3J0ZXgtQTUzIFNvQy4KKyAgICAgIC0gaXRlbXM6CisgICAgICAgICAgLSBlbnVtOgorICAgICAgICAgICAgICAtIHVjcm9ib3RpY3MsYnViYmxlZ3VtLTk2ICMgdUNSb2JvdGljcyBCdWJibGVndW0tOTYKKyAgICAgICAgICAtIGNvbnN0OiBhY3Rpb25zLHM5MDAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYW1sb2dpYy9hbWxvZ2ljLG1lc29uLWd4LWFvLXNlY3VyZS50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FtbG9naWMvYW1sb2dpYyxtZXNvbi1neC1hby1zZWN1cmUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjdkOWY0Li4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYW1sb2dpYy9hbWxvZ2ljLG1lc29uLWd4LWFvLXNlY3VyZS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1BbWxvZ2ljIE1lc29uIEZpcm13YXJlIHJlZ2lzdGVycyBJbnRlcmZhY2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgTWVzb24gU29DcyBoYXZlIGEgcmVnaXN0ZXIgYmFuayB3aXRoIHN0YXR1cyBhbmQgZGF0YSBzaGFyZWQgd2l0aCB0aGUKLXNlY3VyZSBmaXJtd2FyZS4KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLSAtIGNvbXBhdGlibGU6IEZvciBNZXNvbiBHWCBTb0NzLCBtdXN0IGJlICJhbWxvZ2ljLG1lc29uLWd4LWFvLXNlY3VyZSIsICJzeXNjb24iCi0KLVByb3BlcnRpZXMgc2hvdWxkIGluZGVudGlmeSBjb21wb25lbnRzIG9mIHRoaXMgcmVnaXN0ZXIgaW50ZXJmYWNlIDoKLQotTWVzb24gR1ggU29DIEluZm9ybWF0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUEgZmlybXdhcmUgcmVnaXN0ZXIgZW5jb2RlcyB0aGUgU29DIHR5cGUsIHBhY2thZ2UgYW5kIHJldmlzaW9uIGluZm9ybWF0aW9uIG9uCi10aGUgTWVzb24gR1ggU29Dcy4KLUlmIHByZXNlbnQsIHRoZSBmb2xsb3dpbmcgcHJvcGVydHkgc2hvdWxkIGJlIGFkZGVkIDoKLQotT3B0aW9uYWwgcHJvcGVydGllczoKLSAgLSBhbWxvZ2ljLGhhcy1jaGlwLWlkOiBJZiBwcmVzZW50LCB0aGUgaW50ZXJmYWNlIGdpdmVzIHRoZSBjdXJyZW50IFNvQyB2ZXJzaW9uLgotCi1FeGFtcGxlCi0tLS0tLS0tCi0KLWFvLXNlY3VyZUAxNDAgewotCWNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neC1hby1zZWN1cmUiLCAic3lzY29uIjsKLQlyZWcgPSA8MHgwIDB4MTQwIDB4MCAweDE0MD47Ci0JYW1sb2dpYyxoYXMtY2hpcC1pZDsKLX07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FtbG9naWMvYW1sb2dpYyxtZXNvbi1neC1hby1zZWN1cmUueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYW1sb2dpYy9hbWxvZ2ljLG1lc29uLWd4LWFvLXNlY3VyZS55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1M2Q3ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FtbG9naWMvYW1sb2dpYyxtZXNvbi1neC1hby1zZWN1cmUueWFtbApAQCAtMCwwICsxLDUyIEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMCBPUiBCU0QtMi1DbGF1c2UpCisjIENvcHlyaWdodCAyMDE5IEJheUxpYnJlLCBTQVMKKyVZQU1MIDEuMgorLS0tCiskaWQ6ICJodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9hcm0vYW1sb2dpYy9hbWxvZ2ljLG1lc29uLWd4LWFvLXNlY3VyZS55YW1sIyIKKyRzY2hlbWE6ICJodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMiCisKK3RpdGxlOiBBbWxvZ2ljIE1lc29uIEZpcm13YXJlIHJlZ2lzdGVycyBJbnRlcmZhY2UKKworbWFpbnRhaW5lcnM6CisgIC0gTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgorCitkZXNjcmlwdGlvbjogfAorICBUaGUgTWVzb24gU29DcyBoYXZlIGEgcmVnaXN0ZXIgYmFuayB3aXRoIHN0YXR1cyBhbmQgZGF0YSBzaGFyZWQgd2l0aCB0aGUKKyAgc2VjdXJlIGZpcm13YXJlLgorCisjIFdlIG5lZWQgYSBzZWxlY3QgaGVyZSBzbyB3ZSBkb24ndCBtYXRjaCBhbGwgbm9kZXMgd2l0aCAnc3lzY29uJworc2VsZWN0OgorICBwcm9wZXJ0aWVzOgorICAgIGNvbXBhdGlibGU6CisgICAgICBjb250YWluczoKKyAgICAgICAgY29uc3Q6IGFtbG9naWMsbWVzb24tZ3gtYW8tc2VjdXJlCisgIHJlcXVpcmVkOgorICAgIC0gY29tcGF0aWJsZQorCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgaXRlbXM6CisgICAgICAtIGNvbnN0OiBhbWxvZ2ljLG1lc29uLWd4LWFvLXNlY3VyZQorICAgICAgLSBjb25zdDogc3lzY29uCisKKyAgcmVnOgorICAgIG1heEl0ZW1zOiAxCisKKyAgYW1sb2dpYyxoYXMtY2hpcC1pZDoKKyAgICBkZXNjcmlwdGlvbjogfAorICAgICAgQSBmaXJtd2FyZSByZWdpc3RlciBlbmNvZGVzIHRoZSBTb0MgdHlwZSwgcGFja2FnZSBhbmQgcmV2aXNpb24KKyAgICAgIGluZm9ybWF0aW9uIG9uIHRoZSBNZXNvbiBHWCBTb0NzLiBJZiBwcmVzZW50LCB0aGUgaW50ZXJmYWNlIGdpdmVzCisgICAgICB0aGUgY3VycmVudCBTb0MgdmVyc2lvbi4KKyAgICB0eXBlOiBib29sZWFuCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSByZWcKKworZXhhbXBsZXM6CisgIC0gfAorICAgIGFvLXNlY3VyZUAxNDAgeworICAgICAgICAgIGNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neC1hby1zZWN1cmUiLCAic3lzY29uIjsKKyAgICAgICAgICByZWcgPSA8MHgxNDAgMHgxNDA+OworICAgICAgICAgIGFtbG9naWMsaGFzLWNoaXAtaWQ7CisgICAgfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYXJtLWJvYXJkcyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYXJtLWJvYXJkcwppbmRleCA2NzU4ZWNlLi5iMmE5ZjlmIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FybS1ib2FyZHMKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hcm0tYm9hcmRzCkBAIC0xOTksNyArMTk5LDcgQEAKICAgICAgQSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgYmluZGluZ3MgdXNlZCBmb3IgInBzY2kiIG5vZGVzIGlzIHByZXNlbnQKICAgICAgaW4gdGhlIHBzY2kueWFtbCBmaWxlLgogICAgLSBhICJjcHVzIiBub2RlIGRlc2NyaWJpbmcgdGhlIGF2YWlsYWJsZSBjb3JlcyBhbmQgdGhlaXIgYXNzb2NpYXRlZAotICAgICAiZW5hYmxlLW1ldGhvZCJzLiBGb3IgbW9yZSBkZXRhaWxzIHNlZSBjcHVzLnR4dCBmaWxlLgorICAgICAiZW5hYmxlLW1ldGhvZCJzLiBGb3IgbW9yZSBkZXRhaWxzIHNlZSBjcHVzLnlhbWwgZmlsZS4KIAogRXhhbXBsZToKIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9jcHVzLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2NwdXMueWFtbAppbmRleCA3MjdlMGZmLi5jYjMwODk1IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2NwdXMueWFtbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2NwdXMueWFtbApAQCAtMTI0LDYgKzEyNCw3IEBACiAgICAgICAtIGFybSxjb3J0ZXgtYTE1CiAgICAgICAtIGFybSxjb3J0ZXgtYTE3CiAgICAgICAtIGFybSxjb3J0ZXgtYTUzCisgICAgICAtIGFybSxjb3J0ZXgtYTU1CiAgICAgICAtIGFybSxjb3J0ZXgtYTU3CiAgICAgICAtIGFybSxjb3J0ZXgtYTcyCiAgICAgICAtIGFybSxjb3J0ZXgtYTczCkBAIC0xNTUsNiArMTU2LDcgQEAKICAgICAgIC0gcWNvbSxrcmFpdAogICAgICAgLSBxY29tLGtyeW8KICAgICAgIC0gcWNvbSxrcnlvMzg1CisgICAgICAtIHFjb20sa3J5bzQ4NQogICAgICAgLSBxY29tLHNjb3JwaW9uCiAKICAgZW5hYmxlLW1ldGhvZDoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vaWRsZS1zdGF0ZXMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9pZGxlLXN0YXRlcy50eHQKaW5kZXggMmQzMjViZS4uNzcxZjVkMiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9pZGxlLXN0YXRlcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9pZGxlLXN0YXRlcy50eHQKQEAgLTI4LDcgKzI4LDcgQEAKIHN0YXRlcyBsaXN0ZWQgYWJvdmU7ICJvZmYiIHN0YXRlIGlzIG5vdCBhbiBpZGxlIHN0YXRlIHNpbmNlIGl0IGRvZXMgbm90IGhhdmUKIHdha2UtdXAgY2FwYWJpbGl0aWVzLCBoZW5jZSBpdCBpcyBub3QgY29uc2lkZXJlZCBpbiB0aGlzIGRvY3VtZW50KS4KIAotSWRsZSBzdGF0ZSBwYXJhbWV0ZXJzIChlZyBlbnRyeSBsYXRlbmN5KSBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgYW5kIG5lZWQgdG8gYmUKK0lkbGUgc3RhdGUgcGFyYW1ldGVycyAoZS5nLiBlbnRyeSBsYXRlbmN5KSBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgYW5kIG5lZWQgdG8gYmUKIGNoYXJhY3Rlcml6ZWQgd2l0aCBiaW5kaW5ncyB0aGF0IHByb3ZpZGUgdGhlIHJlcXVpcmVkIGluZm9ybWF0aW9uIHRvIE9TIFBNCiBjb2RlIHNvIHRoYXQgaXQgY2FuIGJ1aWxkIHRoZSByZXF1aXJlZCB0YWJsZXMgYW5kIHVzZSB0aGVtIGF0IHJ1bnRpbWUuCiAKQEAgLTkwLDI0ICs5MCwyNCBAQAogCiBBbiBpZGxlIENQVSByZXF1aXJlcyB0aGUgZXhwZWN0ZWQgbWluLXJlc2lkZW5jeSB0aW1lIHRvIHNlbGVjdCB0aGUgbW9zdAogYXBwcm9wcmlhdGUgaWRsZSBzdGF0ZSBiYXNlZCBvbiB0aGUgZXhwZWN0ZWQgZXhwaXJ5IHRpbWUgb2YgdGhlIG5leHQgSVJRCi0oaWUgd2FrZS11cCkgdGhhdCBjYXVzZXMgdGhlIENQVSB0byByZXR1cm4gdG8gdGhlIEVYRUMgcGhhc2UuCisoaS5lLiB3YWtlLXVwKSB0aGF0IGNhdXNlcyB0aGUgQ1BVIHRvIHJldHVybiB0byB0aGUgRVhFQyBwaGFzZS4KIAogQW4gb3BlcmF0aW5nIHN5c3RlbSBzY2hlZHVsZXIgbWF5IG5lZWQgdG8gY29tcHV0ZSB0aGUgc2hvcnRlc3Qgd2FrZS11cCBkZWxheQogZm9yIENQVXMgaW4gdGhlIHN5c3RlbSBieSBkZXRlY3RpbmcgaG93IGxvbmcgd2lsbCBpdCB0YWtlIHRvIGdldCBhIENQVSBvdXQKLW9mIGFuIGlkbGUgc3RhdGUsIGVnOgorb2YgYW4gaWRsZSBzdGF0ZSwgZS5nLjoKIAogd2FrZXVwLWRlbGF5ID0gZXhpdC1sYXRlbmN5ICsgbWF4KGVudHJ5LWxhdGVuY3kgLSAobm93IC0gZW50cnktdGltZXN0YW1wKSwgMCkKIAogSW4gb3RoZXIgd29yZHMsIHRoZSBzY2hlZHVsZXIgY2FuIG1ha2UgaXRzIHNjaGVkdWxpbmcgZGVjaXNpb24gYnkgc2VsZWN0aW5nCi0oZWcgd2FraW5nLXVwKSB0aGUgQ1BVIHdpdGggdGhlIHNob3J0ZXN0IHdha2UtdXAgbGF0ZW5jeS4KLVRoZSB3YWtlLXVwIGxhdGVuY3kgbXVzdCB0YWtlIGludG8gYWNjb3VudCB0aGUgZW50cnkgbGF0ZW5jeSBpZiB0aGF0IHBlcmlvZAorKGUuZy4gd2FraW5nLXVwKSB0aGUgQ1BVIHdpdGggdGhlIHNob3J0ZXN0IHdha2UtdXAgZGVsYXkuCitUaGUgd2FrZS11cCBkZWxheSBtdXN0IHRha2UgaW50byBhY2NvdW50IHRoZSBlbnRyeSBsYXRlbmN5IGlmIHRoYXQgcGVyaW9kCiBoYXMgbm90IGV4cGlyZWQuIFRoZSBhYm9ydGFibGUgbmF0dXJlIG9mIHRoZSBQUkVQIHBlcmlvZCBjYW4gYmUgaWdub3JlZAogaWYgaXQgY2Fubm90IGJlIHJlbGllZCB1cG9uIChlLmcuIHRoZSBQUkVQIGRlYWRsaW5lIG1heSBvY2N1ciBtdWNoIHNvb25lciB0aGFuCi10aGUgd29yc3QgY2FzZSBzaW5jZSBpdCBkZXBlbmRzIG9uIHRoZSBDUFUgb3BlcmF0aW5nIGNvbmRpdGlvbnMsIGllIGNhY2hlcwordGhlIHdvcnN0IGNhc2Ugc2luY2UgaXQgZGVwZW5kcyBvbiB0aGUgQ1BVIG9wZXJhdGluZyBjb25kaXRpb25zLCBpLmUuIGNhY2hlcwogc3RhdGUpLgogCiBBbiBPUyBoYXMgdG8gcmVsaWFibHkgcHJvYmUgdGhlIHdha2V1cC1sYXRlbmN5IHNpbmNlIHNvbWUgZGV2aWNlcyBjYW4gZW5mb3JjZQotbGF0ZW5jeSBjb25zdHJhaW50cyBndWFyYW50ZWVzIHRvIHdvcmsgcHJvcGVybHksIHNvIHRoZSBPUyBoYXMgdG8gZGV0ZWN0IHRoZQorbGF0ZW5jeSBjb25zdHJhaW50IGd1YXJhbnRlZXMgdG8gd29yayBwcm9wZXJseSwgc28gdGhlIE9TIGhhcyB0byBkZXRlY3QgdGhlCiB3b3JzdCBjYXNlIHdha2UtdXAgbGF0ZW5jeSBpdCBjYW4gaW5jdXIgaWYgYSBDUFUgaXMgYWxsb3dlZCB0byBlbnRlciBhbgogaWRsZSBzdGF0ZSwgYW5kIHBvc3NpYmx5IHRvIHByZXZlbnQgdGhhdCB0byBndWFyYW50ZWUgcmVsaWFibGUgZGV2aWNlCiBmdW5jdGlvbmluZy4KQEAgLTE4MywxNSArMTgzLDE1IEBACiAJCUdyYXBoIDI6IGlkbGUgc3RhdGVzIG1pbi1yZXNpZGVuY3kgZXhhbXBsZQogCiBJbiBncmFwaCAyIGFib3ZlLCB0aGF0IHRha2VzIGludG8gYWNjb3VudCBpZGxlIHN0YXRlcyBlbnRyeS9leGl0IGVuZXJneQotY29zdHMsIGl0IGlzIGNsZWFyIHRoYXQgaWYgdGhlIGlkbGUgc3RhdGUgcmVzaWRlbmN5IHRpbWUgKGllIHRpbWUgdGlsbCBuZXh0Citjb3N0cywgaXQgaXMgY2xlYXIgdGhhdCBpZiB0aGUgaWRsZSBzdGF0ZSByZXNpZGVuY3kgdGltZSAoaS5lLiB0aW1lIHRpbGwgbmV4dAogd2FrZS11cCBJUlEpIGlzIGxlc3MgdGhhbiBJRExFMi1taW4tcmVzaWRlbmN5LCBJRExFMSBpcyB0aGUgYmV0dGVyIGlkbGUgc3RhdGUKIGNob2ljZSBlbmVyZ3l3aXNlLgogCiBUaGlzIGlzIG1haW5seSBkb3duIHRvIHRoZSBmYWN0IHRoYXQgSURMRTEgZW50cnkvZXhpdCBlbmVyZ3kgY29zdHMgYXJlIGxvd2VyCiB0aGFuIElETEUyLgogCi1Ib3dldmVyLCB0aGUgbG93ZXIgcG93ZXIgY29uc3VtcHRpb24gKGllIHNoYWxsb3dlciBlbmVyZ3kgY3VydmUgc2xvcGUpIG9mIGlkbGUKLXN0YXRlIElETEUyIGltcGxpZXMgdGhhdCBhZnRlciBhIHN1aXRhYmxlIHRpbWUsIElETEUyIGJlY29tZXMgbW9yZSBlbmVyZ3kKK0hvd2V2ZXIsIHRoZSBsb3dlciBwb3dlciBjb25zdW1wdGlvbiAoaS5lLiBzaGFsbG93ZXIgZW5lcmd5IGN1cnZlIHNsb3BlKSBvZgoraWRsZSBzdGF0ZSBJRExFMiBpbXBsaWVzIHRoYXQgYWZ0ZXIgYSBzdWl0YWJsZSB0aW1lLCBJRExFMiBiZWNvbWVzIG1vcmUgZW5lcmd5CiBlZmZpY2llbnQuCiAKIFRoZSB0aW1lIGF0IHdoaWNoIElETEUyIGJlY29tZXMgbW9yZSBlbmVyZ3kgZWZmaWNpZW50IHRoYW4gSURMRTEgKGFuZCBvdGhlcgpAQCAtMjE0LDggKzIxNCw4IEBACiAKIAlVc2FnZTogT3B0aW9uYWwgLSBPbiBBUk0gc3lzdGVtcywgaXQgaXMgYSBjb250YWluZXIgb2YgcHJvY2Vzc29yIGlkbGUKIAkJCSAgc3RhdGVzIG5vZGVzLiBJZiB0aGUgc3lzdGVtIGRvZXMgbm90IHByb3ZpZGUgQ1BVCi0JCQkgIHBvd2VyIG1hbmFnZW1lbnQgY2FwYWJpbGl0aWVzIG9yIHRoZSBwcm9jZXNzb3IganVzdAotCQkJICBzdXBwb3J0cyBpZGxlX3N0YW5kYnkgYW4gaWRsZS1zdGF0ZXMgbm9kZSBpcyBub3QKKwkJCSAgcG93ZXIgbWFuYWdlbWVudCBjYXBhYmlsaXRpZXMsIG9yIHRoZSBwcm9jZXNzb3IganVzdAorCQkJICBzdXBwb3J0cyBpZGxlX3N0YW5kYnksIGFuIGlkbGUtc3RhdGVzIG5vZGUgaXMgbm90CiAJCQkgIHJlcXVpcmVkLgogCiAJRGVzY3JpcHRpb246IGlkbGUtc3RhdGVzIG5vZGUgaXMgYSBjb250YWluZXIgbm9kZSwgd2hlcmUgaXRzCkBAIC0yODcsMTQgKzI4NywxNCBAQAogCQlWYWx1ZSB0eXBlOiA8cHJvcC1lbmNvZGVkLWFycmF5PgogCQlEZWZpbml0aW9uOiB1MzIgdmFsdWUgcmVwcmVzZW50aW5nIHdvcnN0IGNhc2UgbGF0ZW5jeSBpbgogCQkJICAgIG1pY3Jvc2Vjb25kcyByZXF1aXJlZCB0byBlbnRlciB0aGUgaWRsZSBzdGF0ZS4KLQkJCSAgICBUaGUgZXhpdC1sYXRlbmN5LXVzIGR1cmF0aW9uIG1heSBiZSBndWFyYW50ZWVkCi0JCQkgICAgb25seSBhZnRlciBlbnRyeS1sYXRlbmN5LXVzIGhhcyBwYXNzZWQuCiAKIAktIGV4aXQtbGF0ZW5jeS11cwogCQlVc2FnZTogUmVxdWlyZWQKIAkJVmFsdWUgdHlwZTogPHByb3AtZW5jb2RlZC1hcnJheT4KIAkJRGVmaW5pdGlvbjogdTMyIHZhbHVlIHJlcHJlc2VudGluZyB3b3JzdCBjYXNlIGxhdGVuY3kKIAkJCSAgICBpbiBtaWNyb3NlY29uZHMgcmVxdWlyZWQgdG8gZXhpdCB0aGUgaWRsZSBzdGF0ZS4KKwkJCSAgICBUaGUgZXhpdC1sYXRlbmN5LXVzIGR1cmF0aW9uIG1heSBiZSBndWFyYW50ZWVkCisJCQkgICAgb25seSBhZnRlciBlbnRyeS1sYXRlbmN5LXVzIGhhcyBwYXNzZWQuCiAKIAktIG1pbi1yZXNpZGVuY3ktdXMKIAkJVXNhZ2U6IFJlcXVpcmVkCkBAIC0zNDIsOCArMzQyLDggQEAKIAkJCSAgICBzdGF0ZS4KIAogCUluIGFkZGl0aW9uIHRvIHRoZSBwcm9wZXJ0aWVzIGxpc3RlZCBhYm92ZSwgYSBzdGF0ZSBub2RlIG1heSByZXF1aXJlCi0JYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHNwZWNpZmljcyB0byB0aGUgZW50cnktbWV0aG9kIGRlZmluZWQgaW4gdGhlCi0JaWRsZS1zdGF0ZXMgbm9kZSwgcGxlYXNlIHJlZmVyIHRvIHRoZSBlbnRyeS1tZXRob2QgYmluZGluZ3MKKwlhZGRpdGlvbmFsIHByb3BlcnRpZXMgc3BlY2lmaWMgdG8gdGhlIGVudHJ5LW1ldGhvZCBkZWZpbmVkIGluIHRoZQorCWlkbGUtc3RhdGVzIG5vZGUuIFBsZWFzZSByZWZlciB0byB0aGUgZW50cnktbWV0aG9kIGJpbmRpbmdzCiAJZG9jdW1lbnRhdGlvbiBmb3IgcHJvcGVydGllcyBkZWZpbml0aW9ucy4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9sMmMyeDAueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbDJjMngwLnlhbWwKaW5kZXggYmZjNWMxOC4uOTEzYThjZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9sMmMyeDAueWFtbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2wyYzJ4MC55YW1sCkBAIC0xNzYsNiArMTc2LDEwIEBACiAgICAgZGVzY3JpcHRpb246IGRpc2FibGUgcGFyaXR5IGNoZWNraW5nIG9uIHRoZSBMMiBjYWNoZSAoTDIyMCBvciBQTDMxMCkuCiAgICAgdHlwZTogYm9vbGVhbgogCisgIG1hcnZlbGwsZWNjLWVuYWJsZToKKyAgICBkZXNjcmlwdGlvbjogZW5hYmxlIEVDQyBwcm90ZWN0aW9uIG9uIHRoZSBMMiBjYWNoZQorICAgIHR5cGU6IGJvb2xlYW4KKwogICBhcm0sb3V0ZXItc3luYy1kaXNhYmxlOgogICAgIGRlc2NyaXB0aW9uOiBkaXNhYmxlIHRoZSBvdXRlciBzeW5jIG9wZXJhdGlvbiBvbiB0aGUgTDIgY2FjaGUuCiAgICAgICBTb21lIGNvcmUgdGlsZXMsIGVzcGVjaWFsbHkgQVJNIFBCMTFNUENvcmUgaGF2ZSBhIGZhdWx0eSBMMjIwIGNhY2hlIHRoYXQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWFydmVsbC9hcDgwNi1zeXN0ZW0tY29udHJvbGxlci50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21hcnZlbGwvYXA4MDYtc3lzdGVtLWNvbnRyb2xsZXIudHh0CmluZGV4IDdiOGI4ZWIuLjI2NDEwZmIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWFydmVsbC9hcDgwNi1zeXN0ZW0tY29udHJvbGxlci50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tYXJ2ZWxsL2FwODA2LXN5c3RlbS1jb250cm9sbGVyLnR4dApAQCAtMTgsMTcgKzE4LDE5IEBACiAtLS0tLS0tCiAKIAotVGhlIERldmljZSBUcmVlIG5vZGUgcmVwcmVzZW50aW5nIHRoZSBBUDgwNiBzeXN0ZW0gY29udHJvbGxlciBwcm92aWRlcwotYSBudW1iZXIgb2YgY2xvY2tzOgorVGhlIERldmljZSBUcmVlIG5vZGUgcmVwcmVzZW50aW5nIHRoZSBBUDgwNi9BUDgwNyBzeXN0ZW0gY29udHJvbGxlcgorcHJvdmlkZXMgYSBudW1iZXIgb2YgY2xvY2tzOgogCi0gLSAwOiBjbG9jayBvZiBDUFUgY2x1c3RlciAwCi0gLSAxOiBjbG9jayBvZiBDUFUgY2x1c3RlciAxCisgLSAwOiByZWZlcmVuY2UgY2xvY2sgb2YgQ1BVIGNsdXN0ZXIgMAorIC0gMTogcmVmZXJlbmNlIGNsb2NrIG9mIENQVSBjbHVzdGVyIDEKICAtIDI6IGZpeGVkIFBMTCBhdCAxMjAwIE1oegogIC0gMzogTVNTIGNsb2NrLCBkZXJpdmVkIGZyb20gdGhlIGZpeGVkIFBMTAogCiBSZXF1aXJlZCBwcm9wZXJ0aWVzOgogCi0gLSBjb21wYXRpYmxlOiBtdXN0IGJlOiAibWFydmVsbCxhcDgwNi1jbG9jayIKKyAtIGNvbXBhdGlibGU6IG11c3QgYmUgb25lIG9mOgorICAgKiAibWFydmVsbCxhcDgwNi1jbG9jayIKKyAgICogIm1hcnZlbGwsYXA4MDctY2xvY2siCiAgLSAjY2xvY2stY2VsbHM6IG11c3QgYmUgc2V0IHRvIDEKIAogUGluY3RybDoKQEAgLTE0MywzICsxNDUsMzMgQEAKIAkJI3RoZXJtYWwtc2Vuc29yLWNlbGxzID0gPDE+OwogCX07CiB9OworCitDbHVzdGVyIGNsb2NrczoKKy0tLS0tLS0tLS0tLS0tLQorCitEZXZpY2UgVHJlZSBDbG9jayBiaW5kaW5ncyBmb3IgY2x1c3RlciBjbG9jayBvZiBNYXJ2ZWxsCitBUDgwNi9BUDgwNy4gRWFjaCBjbHVzdGVyIGNvbnRhaW4gdXAgdG8gMiBDUFVzIHJ1bm5pbmcgYXQgdGhlIHNhbWUKK2ZyZXF1ZW5jeS4KKworUmVxdWlyZWQgcHJvcGVydGllczoKKyAtIGNvbXBhdGlibGU6IG11c3QgYmUgb25lIG9mOgorICAgKiAibWFydmVsbCxhcDgwNi1jcHUtY2xvY2siCisgICAqICJtYXJ2ZWxsLGFwODA3LWNwdS1jbG9jayIKKy0gI2Nsb2NrLWNlbGxzIDogc2hvdWxkIGJlIHNldCB0byAxLgorCistIGNsb2NrcyA6IHNoYWxsIGJlIHRoZSBpbnB1dCBwYXJlbnQgY2xvY2socykgcGhhbmRsZSBmb3IgdGhlIGNsb2NrCisgICAgICAgICAgIChvbmUgcGVyIGNsdXN0ZXIpCisKKy0gcmVnOiByZWdpc3RlciByYW5nZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNsdXN0ZXIgY2xvY2tzCisKK2FwX3N5c2NvbjE6IHN5c3RlbS1jb250cm9sbGVyQDZmODAwMCB7CisJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS1hcDgwNi1zeXNjb24xIiwgInN5c2NvbiIsICJzaW1wbGUtbWZkIjsKKwlyZWcgPSA8MHg2ZjgwMDAgMHgxMDAwPjsKKworCWNwdV9jbGs6IGNsb2NrLWNwdUAyNzggeworCQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXA4MDYtY3B1LWNsb2NrIjsKKwkJY2xvY2tzID0gPCZhcF9jbGsgMD4sIDwmYXBfY2xrIDE+OworCQkjY2xvY2stY2VsbHMgPSA8MT47CisJCXJlZyA9IDwweDI3OCAweGEzMD47CisJfTsKK307CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21hcnZlbGwvYXJtYWRhLTM3eHgudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tYXJ2ZWxsL2FybWFkYS0zN3h4LnR4dAppbmRleCBlZGRkZTRmLi5mNmQ2NjQyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21hcnZlbGwvYXJtYWRhLTM3eHgudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWFydmVsbC9hcm1hZGEtMzd4eC50eHQKQEAgLTQ4LDMgKzQ4LDExIEBACiAJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS0zNzAwLWF2cyIsICJzeXNjb24iOwogCXJlZyA9IDwweDExNTAwIDB4NDA+OwogfQorCisKK0NaLk5JQydzIFR1cnJpcyBNb3ggU09ITyByb3V0ZXIgRGV2aWNlIFRyZWUgQmluZGluZ3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVxdWlyZWQgcm9vdCBub2RlIHByb3BlcnR5OgorCisgLSBjb21wYXRpYmxlOiBtdXN0IGNvbnRhaW4gImN6bmljLHR1cnJpcy1tb3giCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21hcnZlbGwvY3AxMTAtc3lzdGVtLWNvbnRyb2xsZXIudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tYXJ2ZWxsL2NwMTEwLXN5c3RlbS1jb250cm9sbGVyLnR4dAppbmRleCA0ZGI0MTE5Li5mOTgyYThlIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21hcnZlbGwvY3AxMTAtc3lzdGVtLWNvbnRyb2xsZXIudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWFydmVsbC9jcDExMC1zeXN0ZW0tY29udHJvbGxlci50eHQKQEAgLTc4LDggKzc4LDggQEAKIAogUmVxdWlyZWQgcHJvcGVydGllczoKIAotLSBjb21wYXRpYmxlOiAibWFydmVsbCxhcm1hZGEtN2stcGluY3RybCIsCi0gICJtYXJ2ZWxsLGFybWFkYS04ay1jcG0tcGluY3RybCIgb3IgIm1hcnZlbGwsYXJtYWRhLThrLWNwcy1waW5jdHJsIgorLSBjb21wYXRpYmxlOiAibWFydmVsbCxhcm1hZGEtN2stcGluY3RybCIsICJtYXJ2ZWxsLGFybWFkYS04ay1jcG0tcGluY3RybCIsCisgICJtYXJ2ZWxsLGFybWFkYS04ay1jcHMtcGluY3RybCIgb3IgIm1hcnZlbGwsY3AxMTUtc3RhbmRhbG9uZS1waW5jdHJsIgogICBkZXBlbmRpbmcgb24gdGhlIHNwZWNpZmljIHZhcmlhbnQgb2YgdGhlIFNvQyBiZWluZyB1c2VkLgogCiBBdmFpbGFibGUgbXBwIHBpbnMvZ3JvdXBzIGFuZCBmdW5jdGlvbnM6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLGFwbWl4ZWRzeXMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxhcG1peGVkc3lzLnR4dAppbmRleCAxNjFlNjNhLi5mZjAwMGNjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLGFwbWl4ZWRzeXMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssYXBtaXhlZHN5cy50eHQKQEAgLTgsNiArOCw3IEBACiAtIGNvbXBhdGlibGU6IFNob3VsZCBiZSBvbmUgb2Y6CiAJLSAibWVkaWF0ZWssbXQyNzAxLWFwbWl4ZWRzeXMiCiAJLSAibWVkaWF0ZWssbXQyNzEyLWFwbWl4ZWRzeXMiLCAic3lzY29uIgorCS0gIm1lZGlhdGVrLG10Njc3OS1hcG1peGVkc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDY3OTctYXBtaXhlZHN5cyIKIAktICJtZWRpYXRlayxtdDc2MjItYXBtaXhlZHN5cyIKIAktICJtZWRpYXRlayxtdDc2MjMtYXBtaXhlZHN5cyIsICJtZWRpYXRlayxtdDI3MDEtYXBtaXhlZHN5cyIKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssYXVkc3lzLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssYXVkc3lzLnR4dAppbmRleCAwN2M5ZDgxLi5lNGNhN2I3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLGF1ZHN5cy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxhdWRzeXMudHh0CkBAIC03LDYgKzcsNyBAQAogCiAtIGNvbXBhdGlibGU6IFNob3VsZCBiZSBvbmUgb2Y6CiAJLSAibWVkaWF0ZWssbXQyNzAxLWF1ZHN5cyIsICJzeXNjb24iCisJLSAibWVkaWF0ZWssbXQ2Nzc5LWF1ZGlvIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDc2MjItYXVkc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDc2MjMtYXVkc3lzIiwgIm1lZGlhdGVrLG10MjcwMS1hdWRzeXMiLCAic3lzY29uIgogCS0gIm1lZGlhdGVrLG10ODE4My1hdWRpb3N5cyIsICJzeXNjb24iCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLGNhbXN5cy50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLGNhbXN5cy50eHQKaW5kZXggZDg5MzBmNi4uMWY0YWFhMSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxjYW1zeXMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssY2Ftc3lzLnR4dApAQCAtNiw2ICs2LDcgQEAKIFJlcXVpcmVkIFByb3BlcnRpZXM6CiAKIC0gY29tcGF0aWJsZTogU2hvdWxkIGJlIG9uZSBvZjoKKwktICJtZWRpYXRlayxtdDY3NzktY2Ftc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDgxODMtY2Ftc3lzIiwgInN5c2NvbiIKIC0gI2Nsb2NrLWNlbGxzOiBNdXN0IGJlIDEKIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxpbWdzeXMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxpbWdzeXMudHh0CmluZGV4IGUzYmM0YTEuLjJiNjkzZTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssaW1nc3lzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLGltZ3N5cy50eHQKQEAgLTgsNiArOCw3IEBACiAtIGNvbXBhdGlibGU6IFNob3VsZCBiZSBvbmUgb2Y6CiAJLSAibWVkaWF0ZWssbXQyNzAxLWltZ3N5cyIsICJzeXNjb24iCiAJLSAibWVkaWF0ZWssbXQyNzEyLWltZ3N5cyIsICJzeXNjb24iCisJLSAibWVkaWF0ZWssbXQ2Nzc5LWltZ3N5cyIsICJzeXNjb24iCiAJLSAibWVkaWF0ZWssbXQ2Nzk3LWltZ3N5cyIsICJzeXNjb24iCiAJLSAibWVkaWF0ZWssbXQ3NjIzLWltZ3N5cyIsICJtZWRpYXRlayxtdDI3MDEtaW1nc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDgxNzMtaW1nc3lzIiwgInN5c2NvbiIKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssaW5mcmFjZmcudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxpbmZyYWNmZy50eHQKaW5kZXggYTkwOTEzOS4uZGIyZjRmZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxpbmZyYWNmZy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxpbmZyYWNmZy50eHQKQEAgLTksNiArOSw3IEBACiAtIGNvbXBhdGlibGU6IFNob3VsZCBiZSBvbmUgb2Y6CiAJLSAibWVkaWF0ZWssbXQyNzAxLWluZnJhY2ZnIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDI3MTItaW5mcmFjZmciLCAic3lzY29uIgorCS0gIm1lZGlhdGVrLG10Njc3OS1pbmZyYWNmZ19hbyIsICJzeXNjb24iCiAJLSAibWVkaWF0ZWssbXQ2Nzk3LWluZnJhY2ZnIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDc2MjItaW5mcmFjZmciLCAic3lzY29uIgogCS0gIm1lZGlhdGVrLG10NzYyMy1pbmZyYWNmZyIsICJtZWRpYXRlayxtdDI3MDEtaW5mcmFjZmciLCAic3lzY29uIgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxpcGVzeXMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxpcGVzeXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjZTg4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLGlwZXN5cy50eHQKQEAgLTAsMCArMSwyMiBAQAorTWVkaWF0ZWsgaXBlc3lzIGNvbnRyb2xsZXIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlIE1lZGlhdGVrIGlwZXN5cyBjb250cm9sbGVyIHByb3ZpZGVzIHZhcmlvdXMgY2xvY2tzIHRvIHRoZSBzeXN0ZW0uCisKK1JlcXVpcmVkIFByb3BlcnRpZXM6CisKKy0gY29tcGF0aWJsZTogU2hvdWxkIGJlIG9uZSBvZjoKKwktICJtZWRpYXRlayxtdDY3NzktaXBlc3lzIiwgInN5c2NvbiIKKy0gI2Nsb2NrLWNlbGxzOiBNdXN0IGJlIDEKKworVGhlIGlwZXN5cyBjb250cm9sbGVyIHVzZXMgdGhlIGNvbW1vbiBjbGsgYmluZGluZyBmcm9tCitEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svY2xvY2stYmluZGluZ3MudHh0CitUaGUgYXZhaWxhYmxlIGNsb2NrcyBhcmUgZGVmaW5lZCBpbiBkdC1iaW5kaW5ncy9jbG9jay9tdCotY2xrLmguCisKK0V4YW1wbGU6CisKK2lwZXN5czogY2xvY2stY29udHJvbGxlckAxYjAwMDAwMCB7CisJY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDY3NzktaXBlc3lzIiwgInN5c2NvbiI7CisJcmVnID0gPDAgMHgxYjAwMDAwMCAwIDB4MTAwMD47CisJI2Nsb2NrLWNlbGxzID0gPDE+OworfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssbWZnY2ZnLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssbWZnY2ZnLnR4dAppbmRleCA3Mjc4N2U3Li5hZDVmOWQyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLG1mZ2NmZy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxtZmdjZmcudHh0CkBAIC03LDYgKzcsNyBAQAogCiAtIGNvbXBhdGlibGU6IFNob3VsZCBiZSBvbmUgb2Y6CiAJLSAibWVkaWF0ZWssbXQyNzEyLW1mZ2NmZyIsICJzeXNjb24iCisJLSAibWVkaWF0ZWssbXQ2Nzc5LW1mZ2NmZyIsICJzeXNjb24iCiAJLSAibWVkaWF0ZWssbXQ4MTgzLW1mZ2NmZyIsICJzeXNjb24iCiAtICNjbG9jay1jZWxsczogTXVzdCBiZSAxCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssbW1zeXMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxtbXN5cy50eHQKaW5kZXggNTQ1ZWFiNy4uMzAxZWVmYiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxtbXN5cy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxtbXN5cy50eHQKQEAgLTgsNiArOCw3IEBACiAtIGNvbXBhdGlibGU6IFNob3VsZCBiZSBvbmUgb2Y6CiAJLSAibWVkaWF0ZWssbXQyNzAxLW1tc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDI3MTItbW1zeXMiLCAic3lzY29uIgorCS0gIm1lZGlhdGVrLG10Njc3OS1tbXN5cyIsICJzeXNjb24iCiAJLSAibWVkaWF0ZWssbXQ2Nzk3LW1tc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDc2MjMtbW1zeXMiLCAibWVkaWF0ZWssbXQyNzAxLW1tc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDgxNzMtbW1zeXMiLCAic3lzY29uIgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxwZXJpY2ZnLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWsscGVyaWNmZy50eHQKaW5kZXggNGM3ZTQ3OC4uZWNmMDI3YSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxwZXJpY2ZnLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLHBlcmljZmcudHh0CkBAIC0xNCw2ICsxNCw3IEBACiAJLSAibWVkaWF0ZWssbXQ3NjI5LXBlcmljZmciLCAic3lzY29uIgogCS0gIm1lZGlhdGVrLG10ODEzNS1wZXJpY2ZnIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDgxNzMtcGVyaWNmZyIsICJzeXNjb24iCisJLSAibWVkaWF0ZWssbXQ4MTgzLXBlcmljZmciLCAic3lzY29uIgogLSAjY2xvY2stY2VsbHM6IE11c3QgYmUgMQogLSAjcmVzZXQtY2VsbHM6IE11c3QgYmUgMQogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLHRvcGNrZ2VuLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssdG9wY2tnZW4udHh0CmluZGV4IGEwMjNiODMuLjAyOTNkNjkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssdG9wY2tnZW4udHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssdG9wY2tnZW4udHh0CkBAIC04LDYgKzgsNyBAQAogLSBjb21wYXRpYmxlOiBTaG91bGQgYmUgb25lIG9mOgogCS0gIm1lZGlhdGVrLG10MjcwMS10b3Bja2dlbiIKIAktICJtZWRpYXRlayxtdDI3MTItdG9wY2tnZW4iLCAic3lzY29uIgorCS0gIm1lZGlhdGVrLG10Njc3OS10b3Bja2dlbiIsICJzeXNjb24iCiAJLSAibWVkaWF0ZWssbXQ2Nzk3LXRvcGNrZ2VuIgogCS0gIm1lZGlhdGVrLG10NzYyMi10b3Bja2dlbiIKIAktICJtZWRpYXRlayxtdDc2MjMtdG9wY2tnZW4iLCAibWVkaWF0ZWssbXQyNzAxLXRvcGNrZ2VuIgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayx2ZGVjc3lzLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssdmRlY3N5cy50eHQKaW5kZXggNTcxNzZiYi4uNzg5NDU1OCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayx2ZGVjc3lzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLHZkZWNzeXMudHh0CkBAIC04LDYgKzgsNyBAQAogLSBjb21wYXRpYmxlOiBTaG91bGQgYmUgb25lIG9mOgogCS0gIm1lZGlhdGVrLG10MjcwMS12ZGVjc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDI3MTItdmRlY3N5cyIsICJzeXNjb24iCisJLSAibWVkaWF0ZWssbXQ2Nzc5LXZkZWNzeXMiLCAic3lzY29uIgogCS0gIm1lZGlhdGVrLG10Njc5Ny12ZGVjc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDc2MjMtdmRlY3N5cyIsICJtZWRpYXRlayxtdDI3MDEtdmRlY3N5cyIsICJzeXNjb24iCiAJLSAibWVkaWF0ZWssbXQ4MTczLXZkZWNzeXMiLCAic3lzY29uIgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayx2ZW5jc3lzLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssdmVuY3N5cy50eHQKaW5kZXggYzlmYWE2Mi4uNmE2YTE0ZSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayx2ZW5jc3lzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLHZlbmNzeXMudHh0CkBAIC03LDYgKzcsNyBAQAogCiAtIGNvbXBhdGlibGU6IFNob3VsZCBiZSBvbmUgb2Y6CiAJLSAibWVkaWF0ZWssbXQyNzEyLXZlbmNzeXMiLCAic3lzY29uIgorCS0gIm1lZGlhdGVrLG10Njc3OS12ZW5jc3lzIiwgInN5c2NvbiIKIAktICJtZWRpYXRlayxtdDY3OTctdmVuY3N5cyIsICJzeXNjb24iCiAJLSAibWVkaWF0ZWssbXQ4MTczLXZlbmNzeXMiLCAic3lzY29uIgogCS0gIm1lZGlhdGVrLG10ODE4My12ZW5jc3lzIiwgInN5c2NvbiIKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vcmVhbHRlay50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3JlYWx0ZWsudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTgzOWUxLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vcmVhbHRlay50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1SZWFsdGVrIHBsYXRmb3JtcyBkZXZpY2UgdHJlZSBiaW5kaW5ncwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1SVEQxMjk1IFNvQwotPT09PT09PT09PT0KLQotUmVxdWlyZWQgcm9vdCBub2RlIHByb3BlcnRpZXM6Ci0KLSAtIGNvbXBhdGlibGUgOiAgbXVzdCBjb250YWluICJyZWFsdGVrLHJ0ZDEyOTUiCi0KLQotUm9vdCBub2RlIHByb3BlcnR5IGNvbXBhdGlibGUgbXVzdCBjb250YWluLCBkZXBlbmRpbmcgb24gYm9hcmQ6Ci0KLSAtIE1lTEUgVjk6ICJtZWxlLHY5IgotIC0gUHJvQm94MiBBVkE6ICJwcm9ib3gyLGF2YSIKLSAtIFppZG9vIFg5UzogInppZG9vLHg5cyIKLQotCi1FeGFtcGxlOgotCi0gICAgY29tcGF0aWJsZSA9ICJ6aWRvbyx4OXMiLCAicmVhbHRlayxydGQxMjk1IjsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vcmVhbHRlay55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9yZWFsdGVrLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzUyOGI2MQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vcmVhbHRlay55YW1sCkBAIC0wLDAgKzEsMjMgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgT1IgQlNELTItQ2xhdXNlCislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9hcm0vcmVhbHRlay55YW1sIworJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisKK3RpdGxlOiBSZWFsdGVrIHBsYXRmb3JtcyBkZXZpY2UgdHJlZSBiaW5kaW5ncworCittYWludGFpbmVyczoKKyAgLSBBbmRyZWFzIEbDpHJiZXIgPGFmYWVyYmVyQHN1c2UuZGU+CisKK3Byb3BlcnRpZXM6CisgICRub2RlbmFtZToKKyAgICBjb25zdDogJy8nCisgIGNvbXBhdGlibGU6CisgICAgIyBSVEQxMjk1IFNvQyBiYXNlZCBib2FyZHMKKyAgICBpdGVtczoKKyAgICAgIC0gZW51bToKKyAgICAgICAgICAtIG1lbGUsdjkKKyAgICAgICAgICAtIHByb2JveDIsYXZhCisgICAgICAgICAgLSB6aWRvbyx4OXMKKyAgICAgIC0gY29uc3Q6IHJlYWx0ZWsscnRkMTI5NQorLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXRhL2FoY2ktcGxhdGZvcm0udHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2F0YS9haGNpLXBsYXRmb3JtLnR4dAppbmRleCBlMzBmZDEwLi41NWM2ZmFiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXRhL2FoY2ktcGxhdGZvcm0udHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hdGEvYWhjaS1wbGF0Zm9ybS50eHQKQEAgLTQ1LDcgKzQ1LDcgQEAKIC0gI2FkZHJlc3MtY2VsbHMgICAgOiBudW1iZXIgb2YgY2VsbHMgdG8gZW5jb2RlIGFuIGFkZHJlc3MKIC0gI3NpemUtY2VsbHMgICAgICAgOiBudW1iZXIgb2YgY2VsbHMgcmVwcmVzZW50aW5nIHRoZSBzaXplIG9mIGFuIGFkZHJlc3MKIAotRm9yIGFsbHdpbm5lcixzdW44aS1yNDAtYWhjaSwgdGhlIHJlc2V0IHByb3BlcnRpZSBtdXN0IGJlIHByZXNlbnQuCitGb3IgYWxsd2lubmVyLHN1bjhpLXI0MC1haGNpLCB0aGUgcmVzZXQgcHJvcGVydHkgbXVzdCBiZSBwcmVzZW50LgogCiBTdWItbm9kZXMgcmVxdWlyZWQgcHJvcGVydGllczoKIC0gcmVnCQkgICAgOiB0aGUgcG9ydCBudW1iZXIKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvYWxsd2lubmVyLHN1bjUwaS1hNjQtZGUyLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL2FsbHdpbm5lcixzdW41MGktYTY0LWRlMi55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyYTg3MjIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL2FsbHdpbm5lcixzdW41MGktYTY0LWRlMi55YW1sCkBAIC0wLDAgKzEsODUgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2J1cy9hbGx3aW5uZXIsc3VuNTBpLWE2NC1kZTIueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogQWxsd2lubmVyIEE2NCBEaXNwbGF5IEVuZ2luZSBCdXMgRGV2aWNlIFRyZWUgQmluZGluZ3MKKworbWFpbnRhaW5lcnM6CisgIC0gQ2hlbi1ZdSBUc2FpIDx3ZW5zQGNzaWUub3JnPgorICAtIE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAYm9vdGxpbi5jb20+CisKK3Byb3BlcnRpZXM6CisgICRub2RlbmFtZToKKyAgICBwYXR0ZXJuOiAiXmJ1cyhAWzAtOWEtZl0rKT8kIgorCisgICIjYWRkcmVzcy1jZWxscyI6CisgICAgY29uc3Q6IDEKKworICAiI3NpemUtY2VsbHMiOgorICAgIGNvbnN0OiAxCisKKyAgY29tcGF0aWJsZToKKyAgICBvbmVPZjoKKyAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW41MGktYTY0LWRlMgorICAgICAgLSBpdGVtczoKKyAgICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNTBpLWg2LWRlMworICAgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW41MGktYTY0LWRlMgorCisgIHJlZzoKKyAgICBtYXhJdGVtczogMQorCisgIGFsbHdpbm5lcixzcmFtOgorICAgIGFsbE9mOgorICAgICAgLSAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sI2RlZmluaXRpb25zL3BoYW5kbGUtYXJyYXkKKyAgICAgIC0gbWF4SXRlbXM6IDEKKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgIFRoZSBTUkFNIHRoYXQgbmVlZHMgdG8gYmUgY2xhaW1lZCB0byBhY2Nlc3MgdGhlIGRpc3BsYXkgZW5naW5lCisgICAgICBidXMuCisKKyAgcmFuZ2VzOiB0cnVlCisKK3BhdHRlcm5Qcm9wZXJ0aWVzOgorICAjIEFsbCBvdGhlciBwcm9wZXJ0aWVzIHNob3VsZCBiZSBjaGlsZCBub2RlcyB3aXRoIHVuaXQtYWRkcmVzcyBhbmQgJ3JlZycKKyAgIl5bYS16QS1aXVthLXpBLVowLTksK1xcLS5fXXswLDYzfUBbMC05YS1mQS1GXSskIjoKKyAgICB0eXBlOiBvYmplY3QKKyAgICBwcm9wZXJ0aWVzOgorICAgICAgcmVnOgorICAgICAgICBtYXhJdGVtczogMQorCisgICAgcmVxdWlyZWQ6CisgICAgICAtIHJlZworCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisgIC0gcmVnCisgIC0gIiNhZGRyZXNzLWNlbGxzIgorICAtICIjc2l6ZS1jZWxscyIKKyAgLSByYW5nZXMKKyAgLSBhbGx3aW5uZXIsc3JhbQorCithZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKworZXhhbXBsZXM6CisgIC0gfAorICAgIGJ1c0AxMDAwMDAwIHsKKyAgICAgICAgY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuNTBpLWE2NC1kZTIiOworICAgICAgICByZWcgPSA8MHgxMDAwMDAwIDB4NDAwMDAwPjsKKyAgICAgICAgYWxsd2lubmVyLHNyYW0gPSA8JmRlMl9zcmFtIDE+OworICAgICAgICAjYWRkcmVzcy1jZWxscyA9IDwxPjsKKyAgICAgICAgI3NpemUtY2VsbHMgPSA8MT47CisgICAgICAgIHJhbmdlcyA9IDwwIDB4MTAwMDAwMCAweDQwMDAwMD47CisKKyAgICAgICAgZGlzcGxheV9jbG9ja3M6IGNsb2NrQDAgeworICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuNTBpLWE2NC1kZTItY2xrIjsKKyAgICAgICAgICAgIHJlZyA9IDwweDAgMHgxMDAwMDA+OworICAgICAgICAgICAgY2xvY2tzID0gPCZjY3UgNTI+LCA8JmNjdSA5OT47CisgICAgICAgICAgICBjbG9jay1uYW1lcyA9ICJidXMiLCAibW9kIjsKKyAgICAgICAgICAgIHJlc2V0cyA9IDwmY2N1IDMwPjsKKyAgICAgICAgICAgICNjbG9jay1jZWxscyA9IDwxPjsKKyAgICAgICAgICAgICNyZXNldC1jZWxscyA9IDwxPjsKKyAgICAgICAgfTsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvcWNvbSxlYmkyLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvcWNvbSxlYmkyLnR4dAppbmRleCA1YTdkNTY3Li41MDU4YWEyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL3Fjb20sZWJpMi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2J1cy9xY29tLGViaTIudHh0CkBAIC03MSw3ICs3MSw3IEBACiAKIFRoZSBmb2xsb3dpbmcgb3B0aW9uYWwgcHJvcGVydGllcyBhcmUgcHJvcGVydGllcyB0aGF0IGNhbiBiZSB0YWdnZWQgb250bwogYW55IGRldmljZSBzdWJub2RlLiBXZSBhcmUgYXNzdW1pbmcgdGhhdCB0aGVyZSBjYW4gYmUgb25seSBPTkUgZGV2aWNlIHBlcgotY2hpcHNlbGVjdCBzdWJub2RlLCBlbHNlIHRoZSBwcm9wZXJ0aWVzIHdpbGwgYmVjb21lIGFtYmlnb3VzLgorY2hpcHNlbGVjdCBzdWJub2RlLCBlbHNlIHRoZSBwcm9wZXJ0aWVzIHdpbGwgYmVjb21lIGFtYmlndW91cy4KIAogT3B0aW9uYWwgcHJvcGVydGllcyBhcnJheXMgZm9yIFNMT1cgY2hpcCBzZWxlY3RzOgogLSBxY29tLHhtZW0tcmVjb3ZlcnktY3ljbGVzOiByZWNvdmVyeSBjeWNsZXMgaXMgdGhlIHRpbWUgdGhlIG1lbW9yeSBjb250aW51ZXMgdG8KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvc3VuNTBpLWRlMi1idXMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2J1cy9zdW41MGktZGUyLWJ1cy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ZDUzMzcuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2J1cy9zdW41MGktZGUyLWJ1cy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi1EZXZpY2UgdHJlZSBiaW5kaW5ncyBmb3IgQWxsd2lubmVyIERFMi8zIGJ1cwotCi1UaGUgQWxsd2lubmVyIEE2NCBERTIgaXMgb24gYSBzcGVjaWFsIGJ1cywgd2hpY2ggbmVlZHMgYSBTUkFNIHJlZ2lvbiAoU1JBTSBDKQotdG8gYmUgY2xhaW1lZCBmb3IgZW5hYmxpbmcgdGhlIGFjY2Vzcy4gVGhlIERFMyBvbiBBbGx3aW5uZXIgSDYgaXMgYXQgdGhlIHNhbWUKLXNpdHVhdGlvbiwgYW5kIHRoZSBiaW5kaW5nIGFsc28gYXBwbGllcy4KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLQotIC0gY29tcGF0aWJsZToJCVNob3VsZCBiZSBvbmUgb2Y6Ci0JCQkJLSAiYWxsd2lubmVyLHN1bjUwaS1hNjQtZGUyIgotCQkJCS0gImFsbHdpbm5lcixzdW41MGktaDYtZGUzIiwgImFsbHdpbm5lcixzdW41MGktYTY0LWRlMiIKLSAtIHJlZzoJCQlBIHJlc291cmNlIHNwZWNpZmllciBmb3IgdGhlIHJlZ2lzdGVyIHNwYWNlCi0gLSAjYWRkcmVzcy1jZWxsczoJTXVzdCBiZSBzZXQgdG8gMQotIC0gI3NpemUtY2VsbHM6CQlNdXN0IGJlIHNldCB0byAxCi0gLSByYW5nZXM6CQlNdXN0IGJlIHNldCB1cCB0byBtYXAgdGhlIGFkZHJlc3Mgc3BhY2UgaW5zaWRlIHRoZQotCQkJREUyLCBmb3IgdGhlIHN1Yi1ibG9ja3Mgb2YgREUyLgotIC0gYWxsd2lubmVyLHNyYW06CXRoZSBTUkFNIHRoYXQgbmVlZHMgdG8gYmUgY2xhaW1lZAotCi1FeGFtcGxlOgotCi0JZGUyQDEwMDAwMDAgewotCQljb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW41MGktYTY0LWRlMiI7Ci0JCXJlZyA9IDwweDEwMDAwMDAgMHg0MDAwMDA+OwotCQlhbGx3aW5uZXIsc3JhbSA9IDwmZGUyX3NyYW0gMT47Ci0JCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkjc2l6ZS1jZWxscyA9IDwxPjsKLQkJcmFuZ2VzID0gPDAgMHgxMDAwMDAwIDB4NDAwMDAwPjsKLQotCQlkaXNwbGF5X2Nsb2NrczogY2xvY2tAMCB7Ci0JCQljb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW41MGktYTY0LWRlMi1jbGsiOwotCQkJcmVnID0gPDB4MCAweDEwMDAwMD47Ci0JCQljbG9ja3MgPSA8JmNjdSBDTEtfREU+LAotCQkJCSA8JmNjdSBDTEtfQlVTX0RFPjsKLQkJCWNsb2NrLW5hbWVzID0gIm1vZCIsCi0JCQkJICAgICAgImJ1cyI7Ci0JCQlyZXNldHMgPSA8JmNjdSBSU1RfQlVTX0RFPjsKLQkJCSNjbG9jay1jZWxscyA9IDwxPjsKLQkJCSNyZXNldC1jZWxscyA9IDwxPjsKLQkJfTsKLQl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL2FsbHdpbm5lcixzdW40aS1hMTAtY2N1LnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svYWxsd2lubmVyLHN1bjRpLWExMC1jY3UueWFtbAppbmRleCBmYTRkMTQzLi42NDkzOGZkIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svYWxsd2lubmVyLHN1bjRpLWExMC1jY3UueWFtbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svYWxsd2lubmVyLHN1bjRpLWExMC1jY3UueWFtbApAQCAtMzEsNiArMzEsNyBAQAogICAgICAgLSBhbGx3aW5uZXIsc3VuOGktaDMtY2N1CiAgICAgICAtIGFsbHdpbm5lcixzdW44aS1oMy1yLWNjdQogICAgICAgLSBhbGx3aW5uZXIsc3VuOGktcjQwLWNjdQorICAgICAgLSBhbGx3aW5uZXIsc3VuOGktdjMtY2N1CiAgICAgICAtIGFsbHdpbm5lcixzdW44aS12M3MtY2N1CiAgICAgICAtIGFsbHdpbm5lcixzdW45aS1hODAtY2N1CiAgICAgICAtIGFsbHdpbm5lcixzdW41MGktYTY0LWNjdQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL2JyY20sYmNtMjgzNS1jcHJtYW4udHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL2JyY20sYmNtMjgzNS1jcHJtYW4udHh0CmluZGV4IGRkOTA2ZGIuLjllMGIwM2EgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9icmNtLGJjbTI4MzUtY3BybWFuLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svYnJjbSxiY20yODM1LWNwcm1hbi50eHQKQEAgLTEyLDcgKzEyLDkgQEAKIHRoZSBQTEwgZGl2aWRlcnMgZGlyZWN0bHkuCiAKIFJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIGNvbXBhdGlibGU6CVNob3VsZCBiZSAiYnJjbSxiY20yODM1LWNwcm1hbiIKKy0gY29tcGF0aWJsZToJc2hvdWxkIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nLAorCSJicmNtLGJjbTI3MTEtY3BybWFuIgorCSJicmNtLGJjbTI4MzUtY3BybWFuIgogLSAjY2xvY2stY2VsbHM6CVNob3VsZCBiZSA8MT4uIFRoZSBwZXJtaXR0ZWQgY2xvY2stc3BlY2lmaWVyIHZhbHVlcyBjYW4gYmUKIAkJICBmb3VuZCBpbiBpbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2JjbTI4MzUuaAogLSByZWc6CQlTcGVjaWZpZXMgYmFzZSBwaHlzaWNhbCBhZGRyZXNzIGFuZCBzaXplIG9mIHRoZSByZWdpc3RlcnMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLGdjYy50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxnY2MudHh0CmluZGV4IDg2NjFjM2MuLmQxNDM2MmEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLGdjYy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20sZ2NjLnR4dApAQCAtMjMsNiArMjMsNyBAQAogCQkJInFjb20sZ2NjLXNkbTYzMCIKIAkJCSJxY29tLGdjYy1zZG02NjAiCiAJCQkicWNvbSxnY2Mtc2RtODQ1IgorCQkJInFjb20sZ2NjLXNtODE1MCIKIAogLSByZWcgOiBzaGFsbCBjb250YWluIGJhc2UgcmVnaXN0ZXIgbG9jYXRpb24gYW5kIGxlbmd0aAogLSAjY2xvY2stY2VsbHMgOiBzaGFsbCBjb250YWluIDEKQEAgLTM4LDYgKzM5LDEzIEBACiAtIHByb3RlY3RlZC1jbG9ja3MgOiBQcm90ZWN0ZWQgY2xvY2sgc3BlY2lmaWVyIGxpc3QgYXMgcGVyIGNvbW1vbiBjbG9jawogIGJpbmRpbmcuCiAKK0ZvciBTTTgxNTAgb25seToKKyAgICAgICAtIGNsb2NrczogYSBsaXN0IG9mIHBoYW5kbGVzIGFuZCBjbG9jay1zcGVjaWZpZXIgcGFpcnMsCisgICAgICAgICAgICAgICAgIG9uZSBmb3IgZWFjaCBlbnRyeSBpbiBjbG9jay1uYW1lcy4KKyAgICAgICAtIGNsb2NrLW5hbWVzOiAiYmlfdGN4byIgKHJlcXVpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICJzbGVlcF9jbGsiIChvcHRpb25hbCkKKyAgICAgICAgICAgICAgICAgICAgICAiYXVkX3JlZl9jbG9jayIgKG9wdGlvbmFsKQorCiBFeGFtcGxlOgogCWNsb2NrLWNvbnRyb2xsZXJAOTAwMDAwIHsKIAkJY29tcGF0aWJsZSA9ICJxY29tLGdjYy1tc204OTYwIjsKQEAgLTcxLDMgKzc5LDE2IEBACiAJCQkJICAgPEdDQ19MUEFTU19RNl9BWElfQ0xLPiwKIAkJCQkgICA8R0NDX0xQQVNTX1NXQVlfQ0xLPjsKIAl9OworCitFeGFtcGxlIG9mIEdDQyB3aXRoIGNsb2NrcworCWdjYzogY2xvY2stY29udHJvbGxlckAxMDAwMDAgeworCQljb21wYXRpYmxlID0gInFjb20sZ2NjLXNtODE1MCI7CisJCXJlZyA9IDwweDAwMTAwMDAwIDB4MWYwMDAwPjsKKwkJI2Nsb2NrLWNlbGxzID0gPDE+OworCQkjcmVzZXQtY2VsbHMgPSA8MT47CisJCSNwb3dlci1kb21haW4tY2VsbHMgPSA8MT47CisJCWNsb2NrLW5hbWVzID0gImJpX3RjeG8iLAorCQkgICAgICAgICAgICAgICJzbGVlcF9jbGsiOworCQljbG9ja3MgPSA8JnJwbWNjIFJQTV9TTURfWE9fQ0xLX1NSQz4sCisJCQkgPCZzbGVlcF9jbGs+OworCX07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxycG1oLWNsay50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxycG1oLWNsay50eHQKaW5kZXggM2MwMDc2NS4uMzY1YmJkZSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scnBtaC1jbGsudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHJwbWgtY2xrLnR4dApAQCAtNiw5ICs2LDE0IEBACiBvdGhlciBoYXJkd2FyZSBzdWJzeXN0ZW1zIHZpYSBSU0MgdG8gY29udHJvbCBjbG9ja3MuCiAKIFJlcXVpcmVkIHByb3BlcnRpZXMgOgotLSBjb21wYXRpYmxlIDogc2hhbGwgY29udGFpbiAicWNvbSxzZG04NDUtcnBtaC1jbGsiCistIGNvbXBhdGlibGUgOiBtdXN0IGJlIG9uZSBvZjoKKwkgICAgICAgInFjb20sc2RtODQ1LXJwbWgtY2xrIgorCSAgICAgICAicWNvbSxzbTgxNTAtcnBtaC1jbGsiCiAKIC0gI2Nsb2NrLWNlbGxzIDogbXVzdCBjb250YWluIDEKKy0gY2xvY2tzOiBhIGxpc3Qgb2YgcGhhbmRsZXMgYW5kIGNsb2NrLXNwZWNpZmllciBwYWlycywKKwkgIG9uZSBmb3IgZWFjaCBlbnRyeSBpbiBjbG9jay1uYW1lcy4KKy0gY2xvY2stbmFtZXM6IFBhcmVudCBib2FyZCBjbG9jazogInhvIi4KIAogRXhhbXBsZSA6CiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9lbWV2Mi1jbG9jay50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcmVuZXNhcyxlbWV2Mi1zbXUudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svZW1ldjItY2xvY2sudHh0CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcmVuZXNhcyxlbWV2Mi1zbXUudHh0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcm9ja2NoaXAscmszMzA4LWNydS50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcm9ja2NoaXAscmszMzA4LWNydS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIxNTFjNQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9yb2NrY2hpcCxyazMzMDgtY3J1LnR4dApAQCAtMCwwICsxLDYwIEBACisqIFJvY2tjaGlwIFJLMzMwOCBDbG9jayBhbmQgUmVzZXQgVW5pdAorCitUaGUgUkszMzA4IGNsb2NrIGNvbnRyb2xsZXIgZ2VuZXJhdGVzIGFuZCBzdXBwbGllcyBjbG9jayB0byB2YXJpb3VzCitjb250cm9sbGVycyB3aXRoaW4gdGhlIFNvQyBhbmQgYWxzbyBpbXBsZW1lbnRzIGEgcmVzZXQgY29udHJvbGxlciBmb3IgU29DCitwZXJpcGhlcmFscy4KKworUmVxdWlyZWQgUHJvcGVydGllczoKKworLSBjb21wYXRpYmxlOiBDUlUgc2hvdWxkIGJlICJyb2NrY2hpcCxyazMzMDgtY3J1IgorLSByZWc6IHBoeXNpY2FsIGJhc2UgYWRkcmVzcyBvZiB0aGUgY29udHJvbGxlciBhbmQgbGVuZ3RoIG9mIG1lbW9yeSBtYXBwZWQKKyAgcmVnaW9uLgorLSAjY2xvY2stY2VsbHM6IHNob3VsZCBiZSAxLgorLSAjcmVzZXQtY2VsbHM6IHNob3VsZCBiZSAxLgorCitPcHRpb25hbCBQcm9wZXJ0aWVzOgorCistIHJvY2tjaGlwLGdyZjogcGhhbmRsZSB0byB0aGUgc3lzY29uIG1hbmFnaW5nIHRoZSAiZ2VuZXJhbCByZWdpc3RlciBmaWxlcyIKKyAgSWYgbWlzc2luZywgcGxsIHJhdGVzIGFyZSBub3QgY2hhbmdlYWJsZSwgZHVlIHRvIHRoZSBtaXNzaW5nIHBsbCBsb2NrIHN0YXR1cy4KKworRWFjaCBjbG9jayBpcyBhc3NpZ25lZCBhbiBpZGVudGlmaWVyIGFuZCBjbGllbnQgbm9kZXMgY2FuIHVzZSB0aGlzIGlkZW50aWZpZXIKK3RvIHNwZWNpZnkgdGhlIGNsb2NrIHdoaWNoIHRoZXkgY29uc3VtZS4gQWxsIGF2YWlsYWJsZSBjbG9ja3MgYXJlIGRlZmluZWQgYXMKK3ByZXByb2Nlc3NvciBtYWNyb3MgaW4gdGhlIGR0LWJpbmRpbmdzL2Nsb2NrL3JrMzMwOC1jcnUuaCBoZWFkZXJzIGFuZCBjYW4gYmUKK3VzZWQgaW4gZGV2aWNlIHRyZWUgc291cmNlcy4gU2ltaWxhciBtYWNyb3MgZXhpc3QgZm9yIHRoZSByZXNldCBzb3VyY2VzIGluCit0aGVzZSBmaWxlcy4KKworRXh0ZXJuYWwgY2xvY2tzOgorCitUaGVyZSBhcmUgc2V2ZXJhbCBjbG9ja3MgdGhhdCBhcmUgZ2VuZXJhdGVkIG91dHNpZGUgdGhlIFNvQy4gSXQgaXMgZXhwZWN0ZWQKK3RoYXQgdGhleSBhcmUgZGVmaW5lZCB1c2luZyBzdGFuZGFyZCBjbG9jayBiaW5kaW5ncyB3aXRoIGZvbGxvd2luZworY2xvY2stb3V0cHV0LW5hbWVzOgorIC0gInhpbjI0bSIgLSBjcnlzdGFsIGlucHV0IC0gcmVxdWlyZWQsCisgLSAieGluMzJrIiAtIHJ0YyBjbG9jayAtIG9wdGlvbmFsLAorIC0gIm1jbGtfaTJzMF84Y2hfaW4iLCAibWNsa19pMnMxXzhjaF9pbiIsICJtY2xrX2kyczJfOGNoX2luIiwKKyAgICJtY2xrX2kyczNfOGNoX2luIiwgIm1jbGtfaTJzMF8yY2hfaW4iLAorICAgIm1jbGtfaTJzMV8yY2hfaW4iIC0gZXh0ZXJuYWwgSTJTIG9yIFNQRElGIGNsb2NrIC0gb3B0aW9uYWwsCisgLSAibWFjX2Nsa2luIiAtIGV4dGVybmFsIE1BQyBjbG9jayAtIG9wdGlvbmFsCisKK0V4YW1wbGU6IENsb2NrIGNvbnRyb2xsZXIgbm9kZToKKworCWNydTogY2xvY2stY29udHJvbGxlckBmZjUwMDAwMCB7CisJCWNvbXBhdGlibGUgPSAicm9ja2NoaXAscmszMzA4LWNydSI7CisJCXJlZyA9IDwweDAgMHhmZjUwMDAwMCAweDAgMHgxMDAwPjsKKwkJcm9ja2NoaXAsZ3JmID0gPCZncmY+OworCQkjY2xvY2stY2VsbHMgPSA8MT47CisJCSNyZXNldC1jZWxscyA9IDwxPjsKKwl9OworCitFeGFtcGxlOiBVQVJUIGNvbnRyb2xsZXIgbm9kZSB0aGF0IGNvbnN1bWVzIHRoZSBjbG9jayBnZW5lcmF0ZWQgYnkgdGhlIGNsb2NrCisgIGNvbnRyb2xsZXI6CisKKwl1YXJ0MDogc2VyaWFsQGZmMGEwMDAwIHsKKwkJY29tcGF0aWJsZSA9ICJyb2NrY2hpcCxyazMzMDgtdWFydCIsICJzbnBzLGR3LWFwYi11YXJ0IjsKKwkJcmVnID0gPDB4MCAweGZmMGEwMDAwIDB4MCAweDEwMD47CisJCWludGVycnVwdHMgPSA8R0lDX1NQSSAxOCBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKKwkJY2xvY2tzID0gPCZjcnUgU0NMS19VQVJUMD4sIDwmY3J1IFBDTEtfVUFSVDA+OworCQljbG9jay1uYW1lcyA9ICJiYXVkY2xrIiwgImFwYl9wY2xrIjsKKwkJcmVnLXNoaWZ0ID0gPDI+OworCQlyZWctaW8td2lkdGggPSA8ND47CisJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay90aSxjZGNlOTI1LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay90aSxjZGNlOTI1LnR4dAppbmRleCAwZDAxZjJkLi4yNjU0NGM4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svdGksY2RjZTkyNS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3RpLGNkY2U5MjUudHh0CkBAIC0yNCw2ICsyNCw4IEBACiBPcHRpb25hbCBwcm9wZXJ0aWVzOgogIC0geHRhbC1sb2FkLXBmOiBDcnlzdGFsIGxvYWQtY2FwYWNpdG9yIHZhbHVlIHRvIGZpbmUtdHVuZSBwZXJmb3JtYW5jZSBvbiBhCiAgICAgICAgICAgICAgICAgIGJvYXJkLCBvciB0byBjb21wZW5zYXRlIGZvciBleHRlcm5hbCBpbmZsdWVuY2VzLgorLSB2ZGQtc3VwcGx5OiBBIHJlZ3VsYXRvciBub2RlIGZvciBWZGQKKy0gdmRkb3V0LXN1cHBseTogQSByZWd1bGF0b3Igbm9kZSBmb3IgVmRkb3V0CiAKIEZvciBhbGwgUExMMSwgUExMMiwgLi4uIGFuIG9wdGlvbmFsIGNoaWxkIG5vZGUgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBzcHJlYWQKIHNwZWN0cnVtIGNsb2NraW5nIHBhcmFtZXRlcnMgZm9yIGEgYm9hcmQuCkBAIC00MSw2ICs0Myw4IEBACiAJCWNsb2NrcyA9IDwmeHRhbF8yN01oej47CiAJCSNjbG9jay1jZWxscyA9IDwxPjsKIAkJeHRhbC1sb2FkLXBmID0gPDU+OworCQl2ZGQtc3VwcGx5ID0gPCYxdjgtcmVnPjsKKwkJdmRkb3V0LXN1cHBseSA9IDwmM3YzLXJlZz47CiAJCS8qIFBMTCBvcHRpb25zIHRvIGdldCBTU0MgMSUgY2VudGVyZWQgKi8KIAkJUExMMiB7CiAJCQlzcHJlYWQtc3BlY3RydW0gPSA8ND47CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY3J5cHRvL2FsbHdpbm5lcixzdW40aS1hMTAtY3J5cHRvLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY3J5cHRvL2FsbHdpbm5lcixzdW40aS1hMTAtY3J5cHRvLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBiM2U3MwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jcnlwdG8vYWxsd2lubmVyLHN1bjRpLWExMC1jcnlwdG8ueWFtbApAQCAtMCwwICsxLDc5IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9jcnlwdG8vYWxsd2lubmVyLHN1bjRpLWExMC1jcnlwdG8ueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogQWxsd2lubmVyIEExMCBTZWN1cml0eSBTeXN0ZW0gRGV2aWNlIFRyZWUgQmluZGluZ3MKKworbWFpbnRhaW5lcnM6CisgIC0gQ2hlbi1ZdSBUc2FpIDx3ZW5zQGNzaWUub3JnPgorICAtIE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAYm9vdGxpbi5jb20+CisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgb25lT2Y6CisgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNGktYTEwLWNyeXB0bworICAgICAgLSBpdGVtczoKKyAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjVpLWExMy1jcnlwdG8KKyAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjRpLWExMC1jcnlwdG8KKyAgICAgIC0gaXRlbXM6CisgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW42aS1hMzEtY3J5cHRvCisgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW40aS1hMTAtY3J5cHRvCisgICAgICAtIGl0ZW1zOgorICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuN2ktYTIwLWNyeXB0bworICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNGktYTEwLWNyeXB0bworCisgIHJlZzoKKyAgICBtYXhJdGVtczogMQorCisgIGludGVycnVwdHM6CisgICAgbWF4SXRlbXM6IDEKKworICBjbG9ja3M6CisgICAgaXRlbXM6CisgICAgICAtIGRlc2NyaXB0aW9uOiBCdXMgQ2xvY2sKKyAgICAgIC0gZGVzY3JpcHRpb246IE1vZHVsZSBDbG9jaworCisgIGNsb2NrLW5hbWVzOgorICAgIGl0ZW1zOgorICAgICAgLSBjb25zdDogYWhiCisgICAgICAtIGNvbnN0OiBtb2QKKworICByZXNldHM6CisgICAgbWF4SXRlbXM6IDEKKworICByZXNldC1uYW1lczoKKyAgICBjb25zdDogYWhiCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSByZWcKKyAgLSBpbnRlcnJ1cHRzCisgIC0gY2xvY2tzCisgIC0gY2xvY2stbmFtZXMKKworaWY6CisgIHByb3BlcnRpZXM6CisgICAgY29tcGF0aWJsZToKKyAgICAgIGNvbnRhaW5zOgorICAgICAgICBjb25zdDogYWxsd2lubmVyLHN1bjZpLWEzMS1jcnlwdG8KKwordGhlbjoKKyAgcmVxdWlyZWQ6CisgICAgLSByZXNldHMKKyAgICAtIHJlc2V0LW5hbWVzCisKK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorCitleGFtcGxlczoKKyAgLSB8CisgICAgY3J5cHRvOiBjcnlwdG8tZW5naW5lQDFjMTUwMDAgeworICAgICAgY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuNGktYTEwLWNyeXB0byI7CisgICAgICByZWcgPSA8MHgwMWMxNTAwMCAweDEwMDA+OworICAgICAgaW50ZXJydXB0cyA9IDw4Nj47CisgICAgICBjbG9ja3MgPSA8JmFoYl9nYXRlcyA1PiwgPCZzc19jbGs+OworICAgICAgY2xvY2stbmFtZXMgPSAiYWhiIiwgIm1vZCI7CisgICAgfTsKKworLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY3J5cHRvL3N1bjRpLXNzLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jcnlwdG8vc3VuNGktc3MudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMmRjM2Q5Li4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jcnlwdG8vc3VuNGktc3MudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotKiBBbGx3aW5uZXIgU2VjdXJpdHkgU3lzdGVtIGZvdW5kIG9uIEEyMCBTb0MKLQotUmVxdWlyZWQgcHJvcGVydGllczoKLS0gY29tcGF0aWJsZSA6IFNob3VsZCBiZSAiYWxsd2lubmVyLHN1bjRpLWExMC1jcnlwdG8iLgotLSByZWc6IFNob3VsZCBjb250YWluIHRoZSBTZWN1cml0eSBTeXN0ZW0gcmVnaXN0ZXIgbG9jYXRpb24gYW5kIGxlbmd0aC4KLS0gaW50ZXJydXB0czogU2hvdWxkIGNvbnRhaW4gdGhlIElSUSBsaW5lIGZvciB0aGUgU2VjdXJpdHkgU3lzdGVtLgotLSBjbG9ja3MgOiBMaXN0IG9mIGNsb2NrIHNwZWNpZmllcnMsIGNvcnJlc3BvbmRpbmcgdG8gYWhiIGFuZCBzcy4KLS0gY2xvY2stbmFtZXMgOiBOYW1lIG9mIHRoZSBmdW5jdGlvbmFsIGNsb2NrLCBzaG91bGQgYmUKLQkqICJhaGIiIDogQUhCIGdhdGluZyBjbG9jawotCSogIm1vZCIgOiBTUyBjb250cm9sbGVyIGNsb2NrCi0KLU9wdGlvbmFsIHByb3BlcnRpZXM6Ci0gLSByZXNldHMgOiBwaGFuZGxlICsgcmVzZXQgc3BlY2lmaWVyIHBhaXIKLSAtIHJlc2V0LW5hbWVzIDogbXVzdCBjb250YWluICJhaGIiCi0KLUV4YW1wbGU6Ci0JY3J5cHRvOiBjcnlwdG8tZW5naW5lQDFjMTUwMDAgewotCQljb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW40aS1hMTAtY3J5cHRvIjsKLQkJcmVnID0gPDB4MDFjMTUwMDAgMHgxMDAwPjsKLQkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDg2IElSUV9UWVBFX0xFVkVMX0hJR0g+OwotCQljbG9ja3MgPSA8JmFoYl9nYXRlcyA1PiwgPCZzc19jbGs+OwotCQljbG9jay1uYW1lcyA9ICJhaGIiLCAibW9kIjsKLQl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYW1sb2dpYyxtZXNvbi1kdy1oZG1pLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2FtbG9naWMsbWVzb24tZHctaGRtaS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhNTBhNzguLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYW1sb2dpYyxtZXNvbi1kdy1oZG1pLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCwwIEBACi1BbWxvZ2ljIHNwZWNpZmljIGV4dGVuc2lvbnMgdG8gdGhlIFN5bm9wc3lzIERlc2lnbndhcmUgSERNSSBDb250cm9sbGVyCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVRoZSBBbWxvZ2ljIE1lc29uIFN5bm9wc3lzIERlc2lnbndhcmUgSW50ZWdyYXRpb24gaXMgY29tcG9zZWQgb2YgOgotLSBBIFN5bm9wc3lzIERlc2lnbldhcmUgSERNSSBDb250cm9sbGVyIElQCi0tIEEgVE9QIGNvbnRyb2wgYmxvY2sgY29udHJvbGxpbmcgdGhlIENsb2NrcyBhbmQgUEhZCi0tIEEgY3VzdG9tIEhETUkgUEhZIGluIG9yZGVyIHRvIGNvbnZlcnQgdmlkZW8gdG8gVE1EUyBzaWduYWwKLSBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwotfCAgICAgICAgICAgIEhETUkgVE9QICAgICAgICAgICAgICAgfDw9IEhQRAotfF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19ffAotfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfAotfCAgU3lub3BzeXMgSERNSSAgIHwgICBIRE1JIFBIWSAgICAgfD0+IFRNRFMKLXwgICAgQ29udHJvbGxlciAgICB8X19fX19fX19fX19fX19fX3wKLXxfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3w8PT4gRERDCi0KLVRoZSBIRE1JIFRPUCBibG9jayBvbmx5IHN1cHBvcnRzIEhQRCBzZW5zaW5nLgotVGhlIFN5bm9wc3lzIEhETUkgQ29udHJvbGxlciBpbnRlcnJ1cHQgaXMgcm91dGVkIHRocm91Z2ggdGhlCi1UT1AgQmxvY2sgaW50ZXJydXB0LgotQ29tbXVuaWNhdGlvbiB0byB0aGUgVE9QIEJsb2NrIGFuZCB0aGUgU3lub3BzeXMgSERNSSBDb250cm9sbGVyIGlzIGRvbmUKLXZpYSBhIHBhaXIgb2YgZGVkaWNhdGVkIGFkZHIrcmVhZC93cml0ZSByZWdpc3RlcnMuCi1UaGUgSERNSSBQSFkgaXMgY29uZmlndXJlZCBieSByZWdpc3RlcnMgaW4gdGhlIEhISSByZWdpc3RlciBibG9jay4KLQotUGl4ZWwgZGF0YSBhcnJpdmVzIGluIDQ6NDo0IGZvcm1hdCBmcm9tIHRoZSBWRU5DIGJsb2NrIGFuZCB0aGUgVlBVIEhETUkgbXV4Ci1zZWxlY3RzIGVpdGhlciB0aGUgRU5DSSBlbmNvZGVyIGZvciB0aGUgNTc2aSBvciA0ODBpIGZvcm1hdHMgb3IgdGhlIEVOQ1AKLWVuY29kZXIgZm9yIGFsbCB0aGUgb3RoZXIgZm9ybWF0cyBpbmNsdWRpbmcgaW50ZXJsYWNlZCBIRCBmb3JtYXRzLgotCi1UaGUgVkVOQyB1c2VzIGEgRFZJIGVuY29kZXIgb24gdG9wIG9mIHRoZSBFTkNJIG9yIEVOQ1AgZW5jb2RlcnMgdG8gZ2VuZXJhdGUKLURWSSB0aW1pbmdzIGZvciB0aGUgSERNSSBjb250cm9sbGVyLgotCi1BbWxvZ2ljIE1lc29uIEdYQkIsIEdYTCBhbmQgR1hNIFNvQ3MgZmFtaWxpZXMgZW1iZWRzIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlCi1IRE1JIFRYIElQIHZlcnNpb24gMi4wMWEgd2l0aCBIRENQIGFuZCBJMkMgJiBTL1BESUYKLWF1ZGlvIHNvdXJjZSBpbnRlcmZhY2VzLgotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotLSBjb21wYXRpYmxlOiB2YWx1ZSBzaG91bGQgYmUgZGlmZmVyZW50IGZvciBlYWNoIFNvQyBmYW1pbHkgYXMgOgotCS0gR1hCQiAoUzkwNSkgOiAiYW1sb2dpYyxtZXNvbi1neGJiLWR3LWhkbWkiCi0JLSBHWEwgKFM5MDVYLCBTOTA1RCkgOiAiYW1sb2dpYyxtZXNvbi1neGwtZHctaGRtaSIKLQktIEdYTSAoUzkxMikgOiAiYW1sb2dpYyxtZXNvbi1neG0tZHctaGRtaSIKLQlmb2xsb3dlZCBieSB0aGUgY29tbW9uICJhbWxvZ2ljLG1lc29uLWd4LWR3LWhkbWkiCi0JLSBHMTJBIChTOTA1WDIsIFM5MDVZMiwgUzkwNUQyKSA6ICJhbWxvZ2ljLG1lc29uLWcxMmEtZHctaGRtaSIKLS0gcmVnOiBQaHlzaWNhbCBiYXNlIGFkZHJlc3MgYW5kIGxlbmd0aCBvZiB0aGUgY29udHJvbGxlcidzIHJlZ2lzdGVycy4KLS0gaW50ZXJydXB0czogVGhlIEhETUkgaW50ZXJydXB0IG51bWJlcgotLSBjbG9ja3MsIGNsb2NrLW5hbWVzIDogbXVzdCBoYXZlIHRoZSBwaGFuZGxlcyB0byB0aGUgSERNSSBpYWhiIGFuZCBpc2ZyIGNsb2NrcywKLSAgYW5kIHRoZSBBbWxvZ2ljIE1lc29uIHZlbmNpIGNsb2NrcyBhcyBkZXNjcmliZWQgaW4KLSAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL2Nsb2NrLWJpbmRpbmdzLnR4dCwKLSAgdGhlIGNsb2NrcyBhcmUgc29jIHNwZWNpZmljLCB0aGUgY2xvY2stbmFtZXMgc2hvdWxkIGJlICJpYWhiIiwgImlzZnIiLCAidmVuY2kiCi0tIHJlc2V0cywgcmVzZXRzLW5hbWVzOiBtdXN0IGhhdmUgdGhlIHBoYW5kbGVzIHRvIHRoZSBIRE1JIGFwYiwgZ2x1ZSBhbmQgcGh5Ci0gIHJlc2V0cyBhcyBkZXNjcmliZWQgaW4gOgotICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvcmVzZXQudHh0LAotICB0aGUgcmVzZXQtbmFtZXMgc2hvdWxkIGJlICJoZG1pdHhfYXBiIiwgImhkbWl0eCIsICJoZG1pdHhfcGh5IgotCi1PcHRpb25hbCBwcm9wZXJ0aWVzOgotLSBoZG1pLXN1cHBseTogT3B0aW9uYWwgcGhhbmRsZSB0byBhbiBleHRlcm5hbCA1ViByZWd1bGF0b3IgdG8gcG93ZXIgdGhlIEhETUkKLSAgbG9naWMsIGFzIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSAuLi9yZWd1bGF0b3IvcmVndWxhdG9yLnR4dAotCi1SZXF1aXJlZCBub2RlczoKLQotVGhlIGNvbm5lY3Rpb25zIHRvIHRoZSBIRE1JIHBvcnRzIGFyZSBtb2RlbGVkIHVzaW5nIHRoZSBPRiBncmFwaAotYmluZGluZ3Mgc3BlY2lmaWVkIGluIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncmFwaC50eHQuCi0KLVRoZSBmb2xsb3dpbmcgdGFibGUgbGlzdHMgZm9yIGVhY2ggc3VwcG9ydGVkIG1vZGVsIHRoZSBwb3J0IG51bWJlcgotY29ycmVzcG9uZGluZyB0byBlYWNoIEhETUkgb3V0cHV0IGFuZCBpbnB1dC4KLQotCQlQb3J0IDAJCVBvcnQgMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTOTA1IChHWEJCKQlWRU5DIElucHV0CVRNRFMgT3V0cHV0Ci0gUzkwNVggKEdYTCkJVkVOQyBJbnB1dAlUTURTIE91dHB1dAotIFM5MDVEIChHWEwpCVZFTkMgSW5wdXQJVE1EUyBPdXRwdXQKLSBTOTEyIChHWE0pCVZFTkMgSW5wdXQJVE1EUyBPdXRwdXQKLSBTOTA1WDIgKEcxMkEpCVZFTkMgSW5wdXQJVE1EUyBPdXRwdXQKLSBTOTA1WTIgKEcxMkEpCVZFTkMgSW5wdXQJVE1EUyBPdXRwdXQKLSBTOTA1RDIgKEcxMkEpCVZFTkMgSW5wdXQJVE1EUyBPdXRwdXQKLQotRXhhbXBsZToKLQotaGRtaS1jb25uZWN0b3IgewotCWNvbXBhdGlibGUgPSAiaGRtaS1jb25uZWN0b3IiOwotCXR5cGUgPSAiYSI7Ci0KLQlwb3J0IHsKLQkJaGRtaV9jb25uZWN0b3JfaW46IGVuZHBvaW50IHsKLQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmaGRtaV90eF90bWRzX291dD47Ci0JCX07Ci0JfTsKLX07Ci0KLWhkbWlfdHg6IGhkbWktdHhAYzg4M2EwMDAgewotCWNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neGJiLWR3LWhkbWkiLCAiYW1sb2dpYyxtZXNvbi1neC1kdy1oZG1pIjsKLQlyZWcgPSA8MHgwIDB4Yzg4M2EwMDAgMHgwIDB4MWM+OwotCWludGVycnVwdHMgPSA8R0lDX1NQSSA1NyBJUlFfVFlQRV9FREdFX1JJU0lORz47Ci0JcmVzZXRzID0gPCZyZXNldCBSRVNFVF9IRE1JVFhfQ0FQQjM+LAotCQkgPCZyZXNldCBSRVNFVF9IRE1JX1NZU1RFTV9SRVNFVD4sCi0JCSA8JnJlc2V0IFJFU0VUX0hETUlfVFg+OwotCXJlc2V0LW5hbWVzID0gImhkbWl0eF9hcGIiLCAiaGRtaXR4IiwgImhkbWl0eF9waHkiOwotCWNsb2NrcyA9IDwmY2xrYyBDTEtJRF9IRE1JX1BDTEs+LAotCQkgPCZjbGtjIENMS0lEX0NMSzgxPiwKLQkJIDwmY2xrYyBDTEtJRF9HQ0xLX1ZFTkNJX0lOVDA+OwotCWNsb2NrLW5hbWVzID0gImlzZnIiLCAiaWFoYiIsICJ2ZW5jaSI7Ci0JI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JI3NpemUtY2VsbHMgPSA8MD47Ci0KLQkvKiBWUFUgVkVOQyBJbnB1dCAqLwotCWhkbWlfdHhfdmVuY19wb3J0OiBwb3J0QDAgewotCQlyZWcgPSA8MD47Ci0KLQkJaGRtaV90eF9pbjogZW5kcG9pbnQgewotCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZoZG1pX3R4X291dD47Ci0JCX07Ci0JfTsKLQotCS8qIFRNRFMgT3V0cHV0ICovCi0JaGRtaV90eF90bWRzX3BvcnQ6IHBvcnRAMSB7Ci0JCXJlZyA9IDwxPjsKLQotCQloZG1pX3R4X3RtZHNfb3V0OiBlbmRwb2ludCB7Ci0JCQlyZW1vdGUtZW5kcG9pbnQgPSA8JmhkbWlfY29ubmVjdG9yX2luPjsKLQkJfTsKLQl9OwotfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2FtbG9naWMsbWVzb24tZHctaGRtaS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYW1sb2dpYyxtZXNvbi1kdy1oZG1pLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI3NDc2OAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2FtbG9naWMsbWVzb24tZHctaGRtaS55YW1sCkBAIC0wLDAgKzEsMTUwIEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMCBPUiBCU0QtMi1DbGF1c2UpCisjIENvcHlyaWdodCAyMDE5IEJheUxpYnJlLCBTQVMKKyVZQU1MIDEuMgorLS0tCiskaWQ6ICJodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9kaXNwbGF5L2FtbG9naWMsbWVzb24tZHctaGRtaS55YW1sIyIKKyRzY2hlbWE6ICJodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMiCisKK3RpdGxlOiBBbWxvZ2ljIHNwZWNpZmljIGV4dGVuc2lvbnMgdG8gdGhlIFN5bm9wc3lzIERlc2lnbndhcmUgSERNSSBDb250cm9sbGVyCisKK21haW50YWluZXJzOgorICAtIE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT4KKworZGVzY3JpcHRpb246IHwKKyAgVGhlIEFtbG9naWMgTWVzb24gU3lub3BzeXMgRGVzaWdud2FyZSBJbnRlZ3JhdGlvbiBpcyBjb21wb3NlZCBvZgorICAtIEEgU3lub3BzeXMgRGVzaWduV2FyZSBIRE1JIENvbnRyb2xsZXIgSVAKKyAgLSBBIFRPUCBjb250cm9sIGJsb2NrIGNvbnRyb2xsaW5nIHRoZSBDbG9ja3MgYW5kIFBIWQorICAtIEEgY3VzdG9tIEhETUkgUEhZIGluIG9yZGVyIHRvIGNvbnZlcnQgdmlkZW8gdG8gVE1EUyBzaWduYWwKKyAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgIHwgICAgICAgICAgICBIRE1JIFRPUCAgICAgICAgICAgICAgIHw8PSBIUEQKKyAgfF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19ffAorICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8CisgIHwgIFN5bm9wc3lzIEhETUkgICB8ICAgSERNSSBQSFkgICAgIHw9PiBUTURTCisgIHwgICAgQ29udHJvbGxlciAgICB8X19fX19fX19fX19fX19fX3wKKyAgfF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19ffDw9PiBEREMKKworICBUaGUgSERNSSBUT1AgYmxvY2sgb25seSBzdXBwb3J0cyBIUEQgc2Vuc2luZy4KKyAgVGhlIFN5bm9wc3lzIEhETUkgQ29udHJvbGxlciBpbnRlcnJ1cHQgaXMgcm91dGVkIHRocm91Z2ggdGhlCisgIFRPUCBCbG9jayBpbnRlcnJ1cHQuCisgIENvbW11bmljYXRpb24gdG8gdGhlIFRPUCBCbG9jayBhbmQgdGhlIFN5bm9wc3lzIEhETUkgQ29udHJvbGxlciBpcyBkb25lCisgIHZpYSBhIHBhaXIgb2YgZGVkaWNhdGVkIGFkZHIrcmVhZC93cml0ZSByZWdpc3RlcnMuCisgIFRoZSBIRE1JIFBIWSBpcyBjb25maWd1cmVkIGJ5IHJlZ2lzdGVycyBpbiB0aGUgSEhJIHJlZ2lzdGVyIGJsb2NrLgorCisgIFBpeGVsIGRhdGEgYXJyaXZlcyBpbiAiNDo0OjQiIGZvcm1hdCBmcm9tIHRoZSBWRU5DIGJsb2NrIGFuZCB0aGUgVlBVIEhETUkgbXV4CisgIHNlbGVjdHMgZWl0aGVyIHRoZSBFTkNJIGVuY29kZXIgZm9yIHRoZSA1NzZpIG9yIDQ4MGkgZm9ybWF0cyBvciB0aGUgRU5DUAorICBlbmNvZGVyIGZvciBhbGwgdGhlIG90aGVyIGZvcm1hdHMgaW5jbHVkaW5nIGludGVybGFjZWQgSEQgZm9ybWF0cy4KKworICBUaGUgVkVOQyB1c2VzIGEgRFZJIGVuY29kZXIgb24gdG9wIG9mIHRoZSBFTkNJIG9yIEVOQ1AgZW5jb2RlcnMgdG8gZ2VuZXJhdGUKKyAgRFZJIHRpbWluZ3MgZm9yIHRoZSBIRE1JIGNvbnRyb2xsZXIuCisKKyAgQW1sb2dpYyBNZXNvbiBHWEJCLCBHWEwgYW5kIEdYTSBTb0NzIGZhbWlsaWVzIGVtYmVkcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZQorICBIRE1JIFRYIElQIHZlcnNpb24gMi4wMWEgd2l0aCBIRENQIGFuZCBJMkMgJiBTL1BESUYKKyAgYXVkaW8gc291cmNlIGludGVyZmFjZXMuCisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgb25lT2Y6CisgICAgICAtIGl0ZW1zOgorICAgICAgICAgIC0gZW51bToKKyAgICAgICAgICAgICAgLSBhbWxvZ2ljLG1lc29uLWd4YmItZHctaGRtaSAjIEdYQkIgKFM5MDUpCisgICAgICAgICAgICAgIC0gYW1sb2dpYyxtZXNvbi1neGwtZHctaGRtaSAjIEdYTCAoUzkwNVgsIFM5MDVEKQorICAgICAgICAgICAgICAtIGFtbG9naWMsbWVzb24tZ3htLWR3LWhkbWkgIyBHWE0gKFM5MTIpCisgICAgICAgICAgLSBjb25zdDogYW1sb2dpYyxtZXNvbi1neC1kdy1oZG1pCisgICAgICAtIGVudW06CisgICAgICAgICAgLSBhbWxvZ2ljLG1lc29uLWcxMmEtZHctaGRtaSAjIEcxMkEgKFM5MDVYMiwgUzkwNVkyLCBTOTA1RDIpCisKKyAgcmVnOgorICAgIG1heEl0ZW1zOiAxCisKKyAgaW50ZXJydXB0czoKKyAgICBtYXhJdGVtczogMQorCisgIGNsb2NrczoKKyAgICBtaW5JdGVtczogMworCisgIGNsb2NrLW5hbWVzOgorICAgIGl0ZW1zOgorICAgICAgLSBjb25zdDogaXNmcgorICAgICAgLSBjb25zdDogaWFoYgorICAgICAgLSBjb25zdDogdmVuY2kKKworICByZXNldHM6CisgICAgbWluSXRlbXM6IDMKKworICByZXNldC1uYW1lczoKKyAgICBpdGVtczoKKyAgICAgIC0gY29uc3Q6IGhkbWl0eF9hcGIKKyAgICAgIC0gY29uc3Q6IGhkbWl0eAorICAgICAgLSBjb25zdDogaGRtaXR4X3BoeQorCisgIGhkbWktc3VwcGx5OgorICAgIGRlc2NyaXB0aW9uOiBwaGFuZGxlIHRvIGFuIGV4dGVybmFsIDVWIHJlZ3VsYXRvciB0byBwb3dlciB0aGUgSERNSSBsb2dpYworICAgIGFsbE9mOgorICAgICAgLSAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9waGFuZGxlCisKKyAgcG9ydEAwOgorICAgIHR5cGU6IG9iamVjdAorICAgIGRlc2NyaXB0aW9uOgorICAgICAgQSBwb3J0IG5vZGUgcG9pbnRpbmcgdG8gdGhlIFZFTkMgSW5wdXQgcG9ydCBub2RlLgorCisgIHBvcnRAMToKKyAgICB0eXBlOiBvYmplY3QKKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgIEEgcG9ydCBub2RlIHBvaW50aW5nIHRvIHRoZSBUTURTIE91dHB1dCBwb3J0IG5vZGUuCisKKyAgIiNhZGRyZXNzLWNlbGxzIjoKKyAgICBjb25zdDogMQorCisgICIjc2l6ZS1jZWxscyI6CisgICAgY29uc3Q6IDAKKworICAiI3NvdW5kLWRhaS1jZWxscyI6CisgICAgY29uc3Q6IDAKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtIGludGVycnVwdHMKKyAgLSBjbG9ja3MKKyAgLSBjbG9jay1uYW1lcworICAtIHJlc2V0cworICAtIHJlc2V0LW5hbWVzCisgIC0gcG9ydEAwCisgIC0gcG9ydEAxCisgIC0gIiNhZGRyZXNzLWNlbGxzIgorICAtICIjc2l6ZS1jZWxscyIKKworYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisKK2V4YW1wbGVzOgorICAtIHwKKyAgICBoZG1pX3R4OiBoZG1pLXR4QGM4ODNhMDAwIHsKKyAgICAgICAgY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLWd4YmItZHctaGRtaSIsICJhbWxvZ2ljLG1lc29uLWd4LWR3LWhkbWkiOworICAgICAgICByZWcgPSA8MHhjODgzYTAwMCAweDFjPjsKKyAgICAgICAgaW50ZXJydXB0cyA9IDw1Nz47CisgICAgICAgIHJlc2V0cyA9IDwmcmVzZXRfYXBiPiwgPCZyZXNldF9oZG1pdHg+LCA8JnJlc2V0X2hkbWl0eF9waHk+OworICAgICAgICByZXNldC1uYW1lcyA9ICJoZG1pdHhfYXBiIiwgImhkbWl0eCIsICJoZG1pdHhfcGh5IjsKKyAgICAgICAgY2xvY2tzID0gPCZjbGtfaXNmcj4sIDwmY2xrX2lhaGI+LCA8JmNsa192ZW5jaT47CisgICAgICAgIGNsb2NrLW5hbWVzID0gImlzZnIiLCAiaWFoYiIsICJ2ZW5jaSI7CisgICAgICAgICNhZGRyZXNzLWNlbGxzID0gPDE+OworICAgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKKworICAgICAgICAvKiBWUFUgVkVOQyBJbnB1dCAqLworICAgICAgICBoZG1pX3R4X3ZlbmNfcG9ydDogcG9ydEAwIHsKKyAgICAgICAgICAgIHJlZyA9IDwwPjsKKworICAgICAgICAgICAgaGRtaV90eF9pbjogZW5kcG9pbnQgeworICAgICAgICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmaGRtaV90eF9vdXQ+OworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICAvKiBUTURTIE91dHB1dCAqLworICAgICAgICBoZG1pX3R4X3RtZHNfcG9ydDogcG9ydEAxIHsKKyAgICAgICAgICAgICByZWcgPSA8MT47CisKKyAgICAgICAgICAgICBoZG1pX3R4X3RtZHNfb3V0OiBlbmRwb2ludCB7CisgICAgICAgICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmaGRtaV9jb25uZWN0b3JfaW4+OworICAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfTsKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYW1sb2dpYyxtZXNvbi12cHUudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYW1sb2dpYyxtZXNvbi12cHUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTQwYTc4Li4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2FtbG9naWMsbWVzb24tdnB1LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi1BbWxvZ2ljIE1lc29uIERpc3BsYXkgQ29udHJvbGxlcgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVGhlIEFtbG9naWMgTWVzb24gRGlzcGxheSBjb250cm9sbGVyIGlzIGNvbXBvc2VkIG9mIHNldmVyYWwgY29tcG9uZW50cwotdGhhdCBhcmUgZ29pbmcgdG8gYmUgZG9jdW1lbnRlZCBiZWxvdzoKLQotRE1DfC0tLS0tLS0tLS0tLS0tLVZQVSAoVmlkZW8gUHJvY2Vzc2luZyBVbml0KS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tSEhJLS0tLS0tfAotICAgfCB2ZDEgICBfX19fX19fICAgICBfX19fX19fX19fX19fICAgIF9fX19fX19fX19fX19fX19fICAgICB8ICAgICAgICAgICAgICAgfAotRCAgfC0tLS0tLS18ICAgICAgfC0tLS18ICAgICAgICAgICAgfCAgIHwgICAgICAgICAgICAgICAgfCAgICB8ICAgSERNSSBQTEwgICAgfAotRCAgfCB2ZDIgICB8IFZJVSAgfCAgICB8IFZpZGVvIFBvc3QgfCAgIHwgVmlkZW8gRW5jb2RlcnMgfDwtLS18LS0tLS1WQ0xLICAgICAgfAotUiAgfC0tLS0tLS18ICAgICAgfC0tLS18IFByb2Nlc3NpbmcgfCAgIHwgICAgICAgICAgICAgICAgfCAgICB8ICAgICAgICAgICAgICAgfAotICAgfCBvc2QyICB8ICAgICAgfCAgICB8ICAgICAgICAgICAgfC0tLXwgRW5jaSAtLS0tLS0tLS0tfC0tLS18LS0tLS1WREFDLS0tLS0tfAotUiAgfC0tLS0tLS18IENTQyAgfC0tLS18IFNjYWxlcnMgICAgfCAgIHwgRW5jcCAtLS0tLS0tLS0tfC0tLS18LS0tLUhETUktVFgtLS0tfAotQSAgfCBvc2QxICB8ICAgICAgfCAgICB8IEJsZW5kZXJzICAgfCAgIHwgRW5jbCAtLS0tLS0tLS0tfC0tLS18LS0tLS0tLS0tLS0tLS0tfAotTSAgfC0tLS0tLS18X19fX19ffC0tLS18X19fX19fX19fX19ffCAgIHxfX19fX19fX19fX19fX19ffCAgICB8ICAgICAgICAgICAgICAgfAotX19ffF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX198X19fX19fX19fX19fX19ffAotCi0KLVZJVTogVmlkZW8gSW5wdXQgVW5pdAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBWaWRlbyBJbnB1dCBVbml0IGlzIGluIGNoYXJnZSBvZiB0aGUgcGl4ZWwgc2Nhbm91dCBmcm9tIHRoZSBERFIgbWVtb3J5LgotSXQgZmV0Y2hlcyB0aGUgZnJhbWVzIGFkZHJlc3Nlcywgc3RyaWRlIGFuZCBwYXJhbWV0ZXJzIGZyb20gdGhlICJDYW52YXMiIG1lbW9yeS4KLVRoaXMgcGFydCBpcyBhbHNvIGluIGNoYXJnZSBvZiB0aGUgQ1NDIChDb2xvcnNwYWNlIENvbnZlcnNpb24pLgotSXQgY2FuIGhhbmRsZSAyIE9TRCBQbGFuZXMgYW5kIDIgVmlkZW8gUGxhbmVzLgotCi1WUFA6IFZpZGVvIFBvc3QgUHJvY2Vzc2luZwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIFZpZGVvIFBvc3QgUHJvY2Vzc2luZyBpcyBpbiBjaGFyZ2Ugb2YgdGhlIHNjYWxpbmcgYW5kIGJsZW5kaW5nIG9mIHRoZQotdmFyaW91cyBwbGFuZXMgaW50byBhIHNpbmdsZSBwaXhlbCBzdHJlYW0uCi1UaGVyZSBpcyBhIHNwZWNpYWwgInByZS1ibGVuZGluZyIgdXNlZCBieSB0aGUgdmlkZW8gcGxhbmVzIHdpdGggYSBkZWRpY2F0ZWQKLXNjYWxlciBhbmQgYSAicG9zdC1ibGVuZGluZyIgdG8gbWVyZ2Ugd2l0aCB0aGUgT1NEIFBsYW5lcy4KLVRoZSBPU0QgcGxhbmVzIGFsc28gaGF2ZSBhIGRlZGljYXRlZCBzY2FsZXIgZm9yIG9uZSBvZiB0aGUgT1NELgotCi1WRU5DOiBWaWRlbyBFbmNvZGVycwotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIFZFTkMgaXMgY29tcG9zZWQgb2YgdGhlIG11bHRpcGxlIHBpeGVsIGVuY29kZXJzIDoKLSAtIEVOQ0kgOiBJbnRlcmxhY2UgVmlkZW8gZW5jb2RlciBmb3IgQ1ZCUyBhbmQgSW50ZXJsYWNlIEhETUkKLSAtIEVOQ1AgOiBQcm9ncmVzc2l2ZSBWaWRlbyBFbmNvZGVyIGZvciBIRE1JCi0gLSBFTkNMIDogTENEIExWRFMgRW5jb2RlcgotVGhlIFZFTkMgVW5pdCBnZXRzIGEgUGl4ZWwgQ2xvY2tzIChWQ0xLKSBmcm9tIGEgZGVkaWNhdGVkIEhETUkgUExMIGFuZCBjbG9jawotdHJlZSBhbmQgcHJvdmlkZXMgdGhlIHNjYW5vdXQgY2xvY2sgdG8gdGhlIFZQUCBhbmQgVklVLgotVGhlIEVOQ0kgaXMgY29ubmVjdGVkIHRvIGEgc2luZ2xlIFZEQUMgZm9yIENvbXBvc2l0ZSBPdXRwdXQuCi1UaGUgRU5DSSBhbmQgRU5DUCBhcmUgY29ubmVjdGVkIHRvIGFuIG9uLWNoaXAgSERNSSBUcmFuc2NlaXZlci4KLQotRGV2aWNlIFRyZWUgQmluZGluZ3M6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVlBVOiBWaWRlbyBQcm9jZXNzaW5nIFVuaXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIGNvbXBhdGlibGU6IHZhbHVlIHNob3VsZCBiZSBkaWZmZXJlbnQgZm9yIGVhY2ggU29DIGZhbWlseSBhcyA6Ci0JLSBHWEJCIChTOTA1KSA6ICJhbWxvZ2ljLG1lc29uLWd4YmItdnB1IgotCS0gR1hMIChTOTA1WCwgUzkwNUQpIDogImFtbG9naWMsbWVzb24tZ3hsLXZwdSIKLQktIEdYTSAoUzkxMikgOiAiYW1sb2dpYyxtZXNvbi1neG0tdnB1IgotCWZvbGxvd2VkIGJ5IHRoZSBjb21tb24gImFtbG9naWMsbWVzb24tZ3gtdnB1IgotCS0gRzEyQSAoUzkwNVgyLCBTOTA1WTIsIFM5MDVEMikgOiAiYW1sb2dpYyxtZXNvbi1nMTJhLXZwdSIKLS0gcmVnOiBiYXNlIGFkZHJlc3MgYW5kIHNpemUgb2YgaGUgZm9sbG93aW5nIG1lbW9yeS1tYXBwZWQgcmVnaW9ucyA6Ci0JLSB2cHUKLQktIGhoaQotLSByZWctbmFtZXM6IHNob3VsZCBjb250YWluIHRoZSBuYW1lcyBvZiB0aGUgcHJldmlvdXMgbWVtb3J5IHJlZ2lvbnMKLS0gaW50ZXJydXB0czogc2hvdWxkIGNvbnRhaW4gdGhlIFZFTkMgVnN5bmMgaW50ZXJydXB0IG51bWJlcgotLSBhbWxvZ2ljLGNhbnZhczogcGhhbmRsZSB0byBjYW52YXMgcHJvdmlkZXIgbm9kZSBhcyBkZXNjcmliZWQgaW4gdGhlIGZpbGUKLQkuLi9zb2MvYW1sb2dpYy9hbWxvZ2ljLGNhbnZhcy50eHQKLQotT3B0aW9uYWwgcHJvcGVydGllczoKLS0gcG93ZXItZG9tYWluczogT3B0aW9uYWwgcGhhbmRsZSB0byBhc3NvY2lhdGVkIHBvd2VyIGRvbWFpbiBhcyBkZXNjcmliZWQgaW4KLQl0aGUgZmlsZSAuLi9wb3dlci9wb3dlcl9kb21haW4udHh0Ci0KLVJlcXVpcmVkIG5vZGVzOgotCi1UaGUgY29ubmVjdGlvbnMgdG8gdGhlIFZQVSBvdXRwdXQgdmlkZW8gcG9ydHMgYXJlIG1vZGVsZWQgdXNpbmcgdGhlIE9GIGdyYXBoCi1iaW5kaW5ncyBzcGVjaWZpZWQgaW4gRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dyYXBoLnR4dC4KLQotVGhlIGZvbGxvd2luZyB0YWJsZSBsaXN0cyBmb3IgZWFjaCBzdXBwb3J0ZWQgbW9kZWwgdGhlIHBvcnQgbnVtYmVyCi1jb3JyZXNwb25kaW5nIHRvIGVhY2ggVlBVIG91dHB1dC4KLQotCQlQb3J0IDAJCVBvcnQgMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTOTA1IChHWEJCKQlDVkJTIFZEQUMJSERNSS1UWAotIFM5MDVYIChHWEwpCUNWQlMgVkRBQwlIRE1JLVRYCi0gUzkwNUQgKEdYTCkJQ1ZCUyBWREFDCUhETUktVFgKLSBTOTEyIChHWE0pCUNWQlMgVkRBQwlIRE1JLVRYCi0gUzkwNVgyIChHMTJBKQlDVkJTIFZEQUMJSERNSS1UWAotIFM5MDVZMiAoRzEyQSkJQ1ZCUyBWREFDCUhETUktVFgKLSBTOTA1RDIgKEcxMkEpCUNWQlMgVkRBQwlIRE1JLVRYCi0KLUV4YW1wbGU6Ci0KLXR2LWNvbm5lY3RvciB7Ci0JY29tcGF0aWJsZSA9ICJjb21wb3NpdGUtdmlkZW8tY29ubmVjdG9yIjsKLQotCXBvcnQgewotCQl0dl9jb25uZWN0b3JfaW46IGVuZHBvaW50IHsKLQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmY3Zic192ZGFjX291dD47Ci0JCX07Ci0JfTsKLX07Ci0KLXZwdTogdnB1QGQwMTAwMDAwIHsKLQljb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZ3hiYi12cHUiOwotCXJlZyA9IDwweDAgMHhkMDEwMDAwMCAweDAgMHgxMDAwMDA+LAotCSAgICAgIDwweDAgMHhjODgzYzAwMCAweDAgMHgxMDAwPiwKLQkgICAgICA8MHgwIDB4Yzg4MzgwMDAgMHgwIDB4MTAwMD47Ci0JcmVnLW5hbWVzID0gInZwdSIsICJoaGkiLCAiZG1jIjsKLQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMyBJUlFfVFlQRV9FREdFX1JJU0lORz47Ci0JI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JI3NpemUtY2VsbHMgPSA8MD47Ci0KLQkvKiBDVkJTIFZEQUMgb3V0cHV0IHBvcnQgKi8KLQlwb3J0QDAgewotCQlyZWcgPSA8MD47Ci0KLQkJY3Zic192ZGFjX291dDogZW5kcG9pbnQgewotCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZ0dl9jb25uZWN0b3JfaW4+OwotCQl9OwotCX07Ci19OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYW1sb2dpYyxtZXNvbi12cHUueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2FtbG9naWMsbWVzb24tdnB1LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEyMDVhNgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2FtbG9naWMsbWVzb24tdnB1LnlhbWwKQEAgLTAsMCArMSwxMzcgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wIE9SIEJTRC0yLUNsYXVzZSkKKyMgQ29weXJpZ2h0IDIwMTkgQmF5TGlicmUsIFNBUworJVlBTUwgMS4yCistLS0KKyRpZDogImh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Rpc3BsYXkvYW1sb2dpYyxtZXNvbi12cHUueWFtbCMiCiskc2NoZW1hOiAiaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjIgorCit0aXRsZTogQW1sb2dpYyBNZXNvbiBEaXNwbGF5IENvbnRyb2xsZXIKKworbWFpbnRhaW5lcnM6CisgIC0gTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgorCitkZXNjcmlwdGlvbjogfAorICBUaGUgQW1sb2dpYyBNZXNvbiBEaXNwbGF5IGNvbnRyb2xsZXIgaXMgY29tcG9zZWQgb2Ygc2V2ZXJhbCBjb21wb25lbnRzCisgIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGRvY3VtZW50ZWQgYmVsb3cKKworICBETUN8LS0tLS0tLS0tLS0tLS0tVlBVIChWaWRlbyBQcm9jZXNzaW5nIFVuaXQpLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS1ISEktLS0tLS18CisgICAgIHwgdmQxICAgX19fX19fXyAgICAgX19fX19fX19fX19fXyAgICBfX19fX19fX19fX19fX19fXyAgICAgfCAgICAgICAgICAgICAgIHwKKyAgRCAgfC0tLS0tLS18ICAgICAgfC0tLS18ICAgICAgICAgICAgfCAgIHwgICAgICAgICAgICAgICAgfCAgICB8ICAgSERNSSBQTEwgICAgfAorICBEICB8IHZkMiAgIHwgVklVICB8ICAgIHwgVmlkZW8gUG9zdCB8ICAgfCBWaWRlbyBFbmNvZGVycyB8PC0tLXwtLS0tLVZDTEsgICAgICB8CisgIFIgIHwtLS0tLS0tfCAgICAgIHwtLS0tfCBQcm9jZXNzaW5nIHwgICB8ICAgICAgICAgICAgICAgIHwgICAgfCAgICAgICAgICAgICAgIHwKKyAgICAgfCBvc2QyICB8ICAgICAgfCAgICB8ICAgICAgICAgICAgfC0tLXwgRW5jaSAtLS0tLS0tLS0tfC0tLS18LS0tLS1WREFDLS0tLS0tfAorICBSICB8LS0tLS0tLXwgQ1NDICB8LS0tLXwgU2NhbGVycyAgICB8ICAgfCBFbmNwIC0tLS0tLS0tLS18LS0tLXwtLS0tSERNSS1UWC0tLS18CisgIEEgIHwgb3NkMSAgfCAgICAgIHwgICAgfCBCbGVuZGVycyAgIHwgICB8IEVuY2wgLS0tLS0tLS0tLXwtLS0tfC0tLS0tLS0tLS0tLS0tLXwKKyAgTSAgfC0tLS0tLS18X19fX19ffC0tLS18X19fX19fX19fX19ffCAgIHxfX19fX19fX19fX19fX19ffCAgICB8ICAgICAgICAgICAgICAgfAorICBfX198X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3xfX19fX19fX19fX19fX198CisKKworICBWSVU6IFZpZGVvIElucHV0IFVuaXQKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgVGhlIFZpZGVvIElucHV0IFVuaXQgaXMgaW4gY2hhcmdlIG9mIHRoZSBwaXhlbCBzY2Fub3V0IGZyb20gdGhlIEREUiBtZW1vcnkuCisgIEl0IGZldGNoZXMgdGhlIGZyYW1lcyBhZGRyZXNzZXMsIHN0cmlkZSBhbmQgcGFyYW1ldGVycyBmcm9tIHRoZSAiQ2FudmFzIiBtZW1vcnkuCisgIFRoaXMgcGFydCBpcyBhbHNvIGluIGNoYXJnZSBvZiB0aGUgQ1NDIChDb2xvcnNwYWNlIENvbnZlcnNpb24pLgorICBJdCBjYW4gaGFuZGxlIDIgT1NEIFBsYW5lcyBhbmQgMiBWaWRlbyBQbGFuZXMuCisKKyAgVlBQOiBWaWRlbyBQb3N0IFByb2Nlc3NpbmcKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBUaGUgVmlkZW8gUG9zdCBQcm9jZXNzaW5nIGlzIGluIGNoYXJnZSBvZiB0aGUgc2NhbGluZyBhbmQgYmxlbmRpbmcgb2YgdGhlCisgIHZhcmlvdXMgcGxhbmVzIGludG8gYSBzaW5nbGUgcGl4ZWwgc3RyZWFtLgorICBUaGVyZSBpcyBhIHNwZWNpYWwgInByZS1ibGVuZGluZyIgdXNlZCBieSB0aGUgdmlkZW8gcGxhbmVzIHdpdGggYSBkZWRpY2F0ZWQKKyAgc2NhbGVyIGFuZCBhICJwb3N0LWJsZW5kaW5nIiB0byBtZXJnZSB3aXRoIHRoZSBPU0QgUGxhbmVzLgorICBUaGUgT1NEIHBsYW5lcyBhbHNvIGhhdmUgYSBkZWRpY2F0ZWQgc2NhbGVyIGZvciBvbmUgb2YgdGhlIE9TRC4KKworICBWRU5DOiBWaWRlbyBFbmNvZGVycworICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgIFRoZSBWRU5DIGlzIGNvbXBvc2VkIG9mIHRoZSBtdWx0aXBsZSBwaXhlbCBlbmNvZGVycworICAgLSBFTkNJIDogSW50ZXJsYWNlIFZpZGVvIGVuY29kZXIgZm9yIENWQlMgYW5kIEludGVybGFjZSBIRE1JCisgICAtIEVOQ1AgOiBQcm9ncmVzc2l2ZSBWaWRlbyBFbmNvZGVyIGZvciBIRE1JCisgICAtIEVOQ0wgOiBMQ0QgTFZEUyBFbmNvZGVyCisgIFRoZSBWRU5DIFVuaXQgZ2V0cyBhIFBpeGVsIENsb2NrcyAoVkNMSykgZnJvbSBhIGRlZGljYXRlZCBIRE1JIFBMTCBhbmQgY2xvY2sKKyAgdHJlZSBhbmQgcHJvdmlkZXMgdGhlIHNjYW5vdXQgY2xvY2sgdG8gdGhlIFZQUCBhbmQgVklVLgorICBUaGUgRU5DSSBpcyBjb25uZWN0ZWQgdG8gYSBzaW5nbGUgVkRBQyBmb3IgQ29tcG9zaXRlIE91dHB1dC4KKyAgVGhlIEVOQ0kgYW5kIEVOQ1AgYXJlIGNvbm5lY3RlZCB0byBhbiBvbi1jaGlwIEhETUkgVHJhbnNjZWl2ZXIuCisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgb25lT2Y6CisgICAgICAtIGl0ZW1zOgorICAgICAgICAgIC0gZW51bToKKyAgICAgICAgICAgICAgLSBhbWxvZ2ljLG1lc29uLWd4YmItdnB1ICMgR1hCQiAoUzkwNSkKKyAgICAgICAgICAgICAgLSBhbWxvZ2ljLG1lc29uLWd4bC12cHUgIyBHWEwgKFM5MDVYLCBTOTA1RCkKKyAgICAgICAgICAgICAgLSBhbWxvZ2ljLG1lc29uLWd4bS12cHUgIyBHWE0gKFM5MTIpCisgICAgICAgICAgLSBjb25zdDogYW1sb2dpYyxtZXNvbi1neC12cHUKKyAgICAgIC0gZW51bToKKyAgICAgICAgICAtIGFtbG9naWMsbWVzb24tZzEyYS12cHUgIyBHMTJBIChTOTA1WDIsIFM5MDVZMiwgUzkwNUQyKQorCisgIHJlZzoKKyAgICBtYXhJdGVtczogMgorCisgIHJlZy1uYW1lczoKKyAgIGl0ZW1zOgorICAgICAtIGNvbnN0OiB2cHUKKyAgICAgLSBjb25zdDogaGhpCisKKyAgaW50ZXJydXB0czoKKyAgICBtYXhJdGVtczogMQorCisgIHBvd2VyLWRvbWFpbnM6CisgICAgbWF4SXRlbXM6IDEKKyAgICBkZXNjcmlwdGlvbjogcGhhbmRsZSB0byB0aGUgYXNzb2NpYXRlZCBwb3dlciBkb21haW4KKworICBwb3J0QDA6CisgICAgdHlwZTogb2JqZWN0CisgICAgZGVzY3JpcHRpb246CisgICAgICBBIHBvcnQgbm9kZSBwb2ludGluZyB0byB0aGUgQ1ZCUyBWREFDIHBvcnQgbm9kZS4KKworICBwb3J0QDE6CisgICAgdHlwZTogb2JqZWN0CisgICAgZGVzY3JpcHRpb246CisgICAgICBBIHBvcnQgbm9kZSBwb2ludGluZyB0byB0aGUgSERNSS1UWCBwb3J0IG5vZGUuCisKKyAgIiNhZGRyZXNzLWNlbGxzIjoKKyAgICBjb25zdDogMQorCisgICIjc2l6ZS1jZWxscyI6CisgICAgY29uc3Q6IDAKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtIGludGVycnVwdHMKKyAgLSBwb3J0QDAKKyAgLSBwb3J0QDEKKyAgLSAiI2FkZHJlc3MtY2VsbHMiCisgIC0gIiNzaXplLWNlbGxzIgorCitleGFtcGxlczoKKyAgLSB8CisgICAgdnB1OiB2cHVAZDAxMDAwMDAgeworICAgICAgICBjb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZ3hiYi12cHUiLCAiYW1sb2dpYyxtZXNvbi1neC12cHUiOworICAgICAgICByZWcgPSA8MHhkMDEwMDAwMCAweDEwMDAwMD4sIDwweGM4ODNjMDAwIDB4MTAwMD47CisgICAgICAgIHJlZy1uYW1lcyA9ICJ2cHUiLCAiaGhpIjsKKyAgICAgICAgaW50ZXJydXB0cyA9IDwzPjsKKyAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47CisgICAgICAgICNzaXplLWNlbGxzID0gPDA+OworCisgICAgICAgIC8qIENWQlMgVkRBQyBvdXRwdXQgcG9ydCAqLworICAgICAgICBwb3J0QDAgeworICAgICAgICAgICAgcmVnID0gPDA+OworCisgICAgICAgICAgICBjdmJzX3ZkYWNfb3V0OiBlbmRwb2ludCB7CisgICAgICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZ0dl9jb25uZWN0b3JfaW4+OworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICAvKiBIRE1JIFRYIG91dHB1dCBwb3J0ICovCisgICAgICAgIHBvcnRAMSB7CisgICAgICAgICAgICByZWcgPSA8MT47CisKKyAgICAgICAgICAgIGhkbWlfdHhfb3V0OiBlbmRwb2ludCB7CisgICAgICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZoZG1pX3R4X2luPjsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2FybSxwbDExeC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9hcm0scGwxMXgudHh0CmluZGV4IDU3MmZhMjcuLjNmOTc3ZTcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2FybSxwbDExeC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYXJtLHBsMTF4LnR4dApAQCAtMzksOSArMzksMTEgQEAKIAogLSBwb3J0OiBkZXNjcmliZXMgTENEIHBhbmVsIHNpZ25hbHMsIGZvbGxvd2luZyB0aGUgY29tbW9uIGJpbmRpbmcKIAlmb3IgdmlkZW8gdHJhbnNtaXR0ZXIgaW50ZXJmYWNlczsgc2VlCi0JRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lZGlhL3ZpZGVvLWludGVyZmFjZXMudHh0OwotCXdoZW4gaXQgaXMgYSBURlQgcGFuZWwsIHRoZSBwb3J0J3MgZW5kcG9pbnQgbXVzdCBkZWZpbmUgdGhlCi0JZm9sbG93aW5nIHByb3BlcnR5OgorCURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS92aWRlby1pbnRlcmZhY2VzLnR4dAorCitEZXByZWNhdGVkIHByb3BlcnRpZXM6CisJVGhlIHBvcnQncyBlbmRicG9pbnQgc3Vibm9kZSBoYWQgdGhpcywgbm93IGRlcHJlY2F0ZWQgcHJvcGVydHkKKwlpbiB0aGUgcGFzdC4gRHJpdmVycyBzaG91bGQgYmUgYWJsZSB0byBzdXJ2aXZlIHdpdGhvdXQgaXQ6CiAKIAktIGFybSxwbDExeCx0ZnQtcjBnMGIwLXBhZHM6IGFuIGFycmF5IG9mIHRocmVlIDMyLWJpdCB2YWx1ZXMsCiAJCWRlZmluaW5nIHRoZSB3YXkgQ0xEIHBhZHMgYXJlIHdpcmVkIHVwOyBmaXJzdCB2YWx1ZQpAQCAtODAsNyArODIsNiBAQAogCQlwb3J0IHsKIAkJCWNsY2RfcGFkczogZW5kcG9pbnQgewogCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmY2xjZF9wYW5lbD47Ci0JCQkJYXJtLHBsMTF4LHRmdC1yMGcwYjAtcGFkcyA9IDwwIDggMTY+OwogCQkJfTsKIAkJfTsKIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdlL3NpaTkwMngudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdlL3NpaTkwMngudHh0CmluZGV4IDJkZjQ0YjcuLjZlMTRlMDggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2JyaWRnZS9zaWk5MDJ4LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9icmlkZ2Uvc2lpOTAyeC50eHQKQEAgLTI2LDkgKzI2LDggQEAKIAktIGNsb2NrczogcGhhbmRsZSBhbmQgY2xvY2sgc3BlY2lmaWVyIGZvciBlYWNoIGNsb2NrIGxpc3RlZCBpbgogICAgICAgICAgICB0aGUgY2xvY2stbmFtZXMgcHJvcGVydHkKIAktIGNsb2NrLW5hbWVzOiAibWNsayIKLQkgICBEZXNjcmliZXMgU0lJOTAyeCBNQ0xLIGlucHV0LiBNQ0xLIGlzIHVzZWQgdG8gcHJvZHVjZQotCSAgIEhETUkgYXVkaW8gQ1RTIHZhbHVlcy4gVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCBpZgotCSAgICIjc291bmQtZGFpLWNlbGxzIi1wcm9wZXJ0eSBpcyBwcmVzZW50LiBUaGlzIHByb3BlcnR5IGZvbGxvd3MKKwkgICBEZXNjcmliZXMgU0lJOTAyeCBNQ0xLIGlucHV0LiBNQ0xLIGNhbiBiZSB1c2VkIHRvIHByb2R1Y2UKKwkgICBIRE1JIGF1ZGlvIENUUyB2YWx1ZXMuIFRoaXMgcHJvcGVydHkgZm9sbG93cwogCSAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9jbG9jay1iaW5kaW5ncy50eHQKIAkgICBjb25zdW1lciBiaW5kaW5nLgogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9jb25uZWN0b3IvaGRtaS1jb25uZWN0b3IudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvY29ubmVjdG9yL2hkbWktY29ubmVjdG9yLnR4dAppbmRleCA1MDhhZWU0Li5hZWIwN2M0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9jb25uZWN0b3IvaGRtaS1jb25uZWN0b3IudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2Nvbm5lY3Rvci9oZG1pLWNvbm5lY3Rvci50eHQKQEAgLTksNiArOSw3IEBACiAtIGxhYmVsOiBhIHN5bWJvbGljIG5hbWUgZm9yIHRoZSBjb25uZWN0b3IKIC0gaHBkLWdwaW9zOiBIUEQgR1BJTyBudW1iZXIKIC0gZGRjLWkyYy1idXM6IHBoYW5kbGUgbGluayB0byB0aGUgSTJDIGNvbnRyb2xsZXIgdXNlZCBmb3IgRERDIEVESUQgcHJvYmluZworLSBkZGMtZW4tZ3Bpb3M6IHNpZ25hbCB0byBlbmFibGUgRERDIGJ1cwogCiBSZXF1aXJlZCBub2RlczoKIC0gVmlkZW8gcG9ydCBmb3IgSERNSSBpbnB1dApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYW1waXJlLGFtLTQ4MDI3MmgzdG1xdy10MDFoLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2FtcGlyZSxhbS00ODAyNzJoM3RtcXctdDAxaC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4MTIyODAuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYW1waXJlLGFtLTQ4MDI3MmgzdG1xdy10MDFoLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLUFtcGlyZSBBTS00ODAyNzJIM1RNUVctVDAxSCA0LjMiIFdRVkdBIFRGVCBMQ0QgcGFuZWwKLQotVGhpcyBiaW5kaW5nIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgc2ltcGxlLXBhbmVsIGJpbmRpbmcsIHdoaWNoIGlzIHNwZWNpZmllZAotaW4gc2ltcGxlLXBhbmVsLnR4dCBpbiB0aGlzIGRpcmVjdG9yeS4KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLS0gY29tcGF0aWJsZTogc2hvdWxkIGJlICJhbXBpcmUsYW0tNDgwMjcyaDN0bXF3LXQwMWgiCi0KLU9wdGlvbmFsIHByb3BlcnRpZXM6Ci0tIHBvd2VyLXN1cHBseTogcmVndWxhdG9yIHRvIHByb3ZpZGUgdGhlIHN1cHBseSB2b2x0YWdlCi0tIGVuYWJsZS1ncGlvczogR1BJTyBwaW4gdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIHBhbmVsCi0tIGJhY2tsaWdodDogcGhhbmRsZSBvZiB0aGUgYmFja2xpZ2h0IGRldmljZSBhdHRhY2hlZCB0byB0aGUgcGFuZWwKLQotT3B0aW9uYWwgbm9kZXM6Ci0tIFZpZGVvIHBvcnQgZm9yIFJHQiBpbnB1dC4KLQotRXhhbXBsZToKLQlwYW5lbF9yZ2I6IHBhbmVsLXJnYiB7Ci0JCWNvbXBhdGlibGUgPSAiYW1waXJlLGFtLTQ4MDI3MmgzdG1xdy10MDFoIjsKLQkJZW5hYmxlLWdwaW9zID0gPCZncGlvYSA4IDE+OwotCQlwb3J0IHsKLQkJCXBhbmVsX2luX3JnYjogZW5kcG9pbnQgewotCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmY29udHJvbGxlcl9vdXRfcmdiPjsKLQkJCX07Ci0JCX07Ci0JfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2FtcGlyZSxhbS00ODAyNzJoM3RtcXctdDAxaC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYW1waXJlLGFtLTQ4MDI3MmgzdG1xdy10MDFoLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZlMzNlNwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2FtcGlyZSxhbS00ODAyNzJoM3RtcXctdDAxaC55YW1sCkBAIC0wLDAgKzEsNDIgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Rpc3BsYXkvcGFuZWwvYW1waXJlLGFtLTQ4MDI3MmgzdG1xdy10MDFoLnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IEFtcGlyZSBBTS00ODAyNzJIM1RNUVctVDAxSCA0LjMiIFdRVkdBIFRGVCBMQ0QgcGFuZWwKKworbWFpbnRhaW5lcnM6CisgIC0gWWFubmljayBGZXJ0cmUgPHlhbm5pY2suZmVydHJlQHN0LmNvbT4KKyAgLSBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgorCithbGxPZjoKKyAgLSAkcmVmOiBwYW5lbC1jb21tb24ueWFtbCMKKworcHJvcGVydGllczoKKyAgY29tcGF0aWJsZToKKyAgICBjb25zdDogYW1waXJlLGFtLTQ4MDI3MmgzdG1xdy10MDFoCisKKyAgcG93ZXItc3VwcGx5OiB0cnVlCisgIGVuYWJsZS1ncGlvczogdHJ1ZQorICBiYWNrbGlnaHQ6IHRydWUKKyAgcG9ydDogdHJ1ZQorCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisKK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorCitleGFtcGxlczoKKyAgLSB8CisgICAgcGFuZWxfcmdiOiBwYW5lbCB7CisgICAgICBjb21wYXRpYmxlID0gImFtcGlyZSxhbS00ODAyNzJoM3RtcXctdDAxaCI7CisgICAgICBlbmFibGUtZ3Bpb3MgPSA8JmdwaW9hIDggMT47CisgICAgICBwb3J0IHsKKyAgICAgICAgcGFuZWxfaW5fcmdiOiBlbmRwb2ludCB7CisgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZjb250cm9sbGVyX291dF9yZ2I+OworICAgICAgICB9OworICAgICAgfTsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2FybSx2ZXJzYXRpbGUtdGZ0LXBhbmVsLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2FybSx2ZXJzYXRpbGUtdGZ0LXBhbmVsLnR4dAppbmRleCAyNDgxNDFjLi4wNjAxYTllIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9hcm0sdmVyc2F0aWxlLXRmdC1wYW5lbC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYXJtLHZlcnNhdGlsZS10ZnQtcGFuZWwudHh0CkBAIC0xMCw3ICsxMCw3IEBACiAtIGNvbXBhdGlibGU6IHNob3VsZCBiZSAiYXJtLHZlcnNhdGlsZS10ZnQtcGFuZWwiCiAKIFJlcXVpcmVkIHN1Ym5vZGVzOgotLSBwb3J0OiBzZWUgZGlzcGxheS9wYW5lbC9wYW5lbC1jb21tb24udHh0LCBncmFwaC50eHQKKy0gcG9ydDogc2VlIGRpc3BsYXkvcGFuZWwvcGFuZWwtY29tbW9uLnlhbWwsIGdyYXBoLnR4dAogCiAKIEV4YW1wbGU6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9hcm1hZGV1cyxzdDA3MDAtYWRhcHQudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYXJtYWRldXMsc3QwNzAwLWFkYXB0LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTMwZDYzZC4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9hcm1hZGV1cyxzdDA3MDAtYWRhcHQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1Bcm1hZGV1cyBTVDA3MDAgQWRhcHQuIEEgU2FudGVrIFNUMDcwMEk1WS1SQlNMVyA3LjAiIFdWR0EgKDgwMHg0ODApIFRGVCB3aXRoCi1hbiBhZGFwdGVyIGJvYXJkLgotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotLSBjb21wYXRpYmxlOiAiYXJtYWRldXMsc3QwNzAwLWFkYXB0IgotLSBwb3dlci1zdXBwbHk6IHNlZSBwYW5lbC1jb21tb24udHh0Ci0KLU9wdGlvbmFsIHByb3BlcnRpZXM6Ci0tIGJhY2tsaWdodDogc2VlIHBhbmVsLWNvbW1vbi50eHQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2FybWFkZXVzLHN0MDcwMC1hZGFwdC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYXJtYWRldXMsc3QwNzAwLWFkYXB0LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhZGU0NwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2FybWFkZXVzLHN0MDcwMC1hZGFwdC55YW1sCkBAIC0wLDAgKzEsMzMgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Rpc3BsYXkvcGFuZWwvYXJtYWRldXMsc3QwNzAwLWFkYXB0LnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IEFybWFkZXVzIFNUMDcwMCBBZGFwdGVyCisKK2Rlc2NyaXB0aW9uOgorICBBIFNhbnRlayBTVDA3MDBJNVktUkJTTFcgNy4wIiBXVkdBICg4MDB4NDgwKSBURlQgd2l0aCBhbiBhZGFwdGVyIGJvYXJkLgorCittYWludGFpbmVyczoKKyAgLSAnIlPDqWJhc3RpZW4gU3p5bWFuc2tpIiA8c2ViYXN0aWVuLnN6eW1hbnNraUBhcm1hZGV1cy5jb20+JworICAtIFRoaWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+CisKK2FsbE9mOgorICAtICRyZWY6IHBhbmVsLWNvbW1vbi55YW1sIworCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGNvbnN0OiBhcm1hZGV1cyxzdDA3MDAtYWRhcHQKKworICBwb3dlci1zdXBwbHk6IHRydWUKKyAgYmFja2xpZ2h0OiB0cnVlCisgIHBvcnQ6IHRydWUKKworYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSBwb3dlci1zdXBwbHkKKworLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9iYW5hbmFwaSxzMDcwd3YyMC1jdDE2LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2JhbmFuYXBpLHMwNzB3djIwLWN0MTYudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNWJjMGM4Li4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2JhbmFuYXBpLHMwNzB3djIwLWN0MTYudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotQmFuYW5hIFBpIDciIChTMDcwV1YyMC1DVDE2KSBURlQgTENEIFBhbmVsCi0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIGNvbXBhdGlibGU6IHNob3VsZCBiZSAiYmFuYW5hcGksczA3MHd2MjAtY3QxNiIKLS0gcG93ZXItc3VwcGx5OiBzZWUgLi9wYW5lbC1jb21tb24udHh0Ci0KLU9wdGlvbmFsIHByb3BlcnRpZXM6Ci0tIGVuYWJsZS1ncGlvczogc2VlIC4vc2ltcGxlLXBhbmVsLnR4dAotLSBiYWNrbGlnaHQ6IHNlZSAuL3NpbXBsZS1wYW5lbC50eHQKLQotVGhpcyBiaW5kaW5nIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgc2ltcGxlLXBhbmVsIGJpbmRpbmcsIHdoaWNoIGlzIHNwZWNpZmllZAotaW4gLi9zaW1wbGUtcGFuZWwudHh0LgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYmFuYW5hcGksczA3MHd2MjAtY3QxNi55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYmFuYW5hcGksczA3MHd2MjAtY3QxNi55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiZjEyN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9iYW5hbmFwaSxzMDcwd3YyMC1jdDE2LnlhbWwKQEAgLTAsMCArMSwzMSBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZGlzcGxheS9wYW5lbC9iYW5hbmFwaSxzMDcwd3YyMC1jdDE2LnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IEJhbmFuYSBQaSA3IiAoUzA3MFdWMjAtQ1QxNikgVEZUIExDRCBQYW5lbAorCittYWludGFpbmVyczoKKyAgLSBDaGVuLVl1IFRzYWkgPHdlbnNAY3NpZS5vcmc+CisgIC0gVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGdtYWlsLmNvbT4KKworYWxsT2Y6CisgIC0gJHJlZjogcGFuZWwtY29tbW9uLnlhbWwjCisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgY29uc3Q6IGJhbmFuYXBpLHMwNzB3djIwLWN0MTYKKworICBwb3dlci1zdXBwbHk6IHRydWUKKyAgYmFja2xpZ2h0OiB0cnVlCisgIGVuYWJsZS1ncGlvczogdHJ1ZQorICBwb3J0OiB0cnVlCisKK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisgIC0gcG93ZXItc3VwcGx5CisKKy4uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYm9lLGhpbWF4ODI3OWQudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvYm9lLGhpbWF4ODI3OWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjYWVhMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9ib2UsaGltYXg4Mjc5ZC50eHQKQEAgLTAsMCArMSwyNCBAQAorQm9lIEhpbWF4ODI3OWQgMTIwMHgxOTIwIFRGVCBMQ0QgcGFuZWwKKworUmVxdWlyZWQgcHJvcGVydGllczoKKy0gY29tcGF0aWJsZTogc2hvdWxkIGJlICJib2UsaGltYXg4Mjc5ZDhwIiBhbmQgb25lIG9mOiAiYm9lLGhpbWF4ODI3OWQxMHAiCistIHJlZzogRFNJIHZpcnR1YWwgY2hhbm5lbCBvZiB0aGUgcGVyaXBoZXJhbAorLSBlbmFibGUtZ3Bpb3M6IHBhbmVsIGVuYWJsZSBncGlvCistIHBwMzMtZ3Bpb3M6IGEgR1BJTyBwaGFuZGxlIGZvciB0aGUgMy4zdiBwaW4gdGhhdCBwcm92aWRlcyB0aGUgc3VwcGx5IHZvbHRhZ2UKKy0gcHAxOC1ncGlvczogYSBHUElPIHBoYW5kbGUgZm9yIHRoZSAxLjh2IHBpbiB0aGF0IHByb3ZpZGVzIHRoZSBzdXBwbHkgdm9sdGFnZQorCitPcHRpb25hbCBwcm9wZXJ0aWVzOgorLSBiYWNrbGlnaHQ6IHBoYW5kbGUgb2YgdGhlIGJhY2tsaWdodCBkZXZpY2UgYXR0YWNoZWQgdG8gdGhlIHBhbmVsCisKK0V4YW1wbGU6CisKKwkmbWlwaV9kc2kgeworCQlwYW5lbCB7CisJCQljb21wYXRpYmxlID0gImJvZSxoaW1heDgyNzlkOHAiLCAiYm9lLGhpbWF4ODI3OWQxMHAiOworCQkJcmVnID0gPDA+OworCQkJYmFja2xpZ2h0ID0gPCZiYWNrbGlnaHQ+OworCQkJZW5hYmxlLWdwaW9zID0gPCZncGlvIDQ1IEdQSU9fQUNUSVZFX0hJR0g+OworCQkJcHAzMy1ncGlvcyA9IDwmZ3BpbyAzNSBHUElPX0FDVElWRV9ISUdIPjsKKwkJCXBwMTgtZ3Bpb3MgPSA8JmdwaW8gMzYgR1BJT19BQ1RJVkVfSElHSD47CisJCX07CisJfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2RsYyxkbGMwNzAweXpnLTEudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvZGxjLGRsYzA3MDB5emctMS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmMDZiYjAuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvZGxjLGRsYzA3MDB5emctMS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1ETEMgRGlzcGxheSBDby4gRExDMDcwMFlaRy0xIDcuMCIgV1NWR0EgVEZUIExDRCBwYW5lbAotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotLSBjb21wYXRpYmxlOiBzaG91bGQgYmUgImRsYyxkbGMwNzAweXpnLTEiCi0tIHBvd2VyLXN1cHBseTogU2VlIHNpbXBsZS1wYW5lbC50eHQKLQotT3B0aW9uYWwgcHJvcGVydGllczoKLS0gcmVzZXQtZ3Bpb3M6IFNlZSBwYW5lbC1jb21tb24udHh0Ci0tIGVuYWJsZS1ncGlvczogU2VlIHNpbXBsZS1wYW5lbC50eHQKLS0gYmFja2xpZ2h0OiBTZWUgc2ltcGxlLXBhbmVsLnR4dAotCi1UaGlzIGJpbmRpbmcgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBzaW1wbGUtcGFuZWwgYmluZGluZywgd2hpY2ggaXMgc3BlY2lmaWVkCi1pbiBzaW1wbGUtcGFuZWwudHh0IGluIHRoaXMgZGlyZWN0b3J5LgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvZGxjLGRsYzA3MDB5emctMS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvZGxjLGRsYzA3MDB5emctMS55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4N2UyZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9kbGMsZGxjMDcwMHl6Zy0xLnlhbWwKQEAgLTAsMCArMSwzMSBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZGlzcGxheS9wYW5lbC9kbGMsZGxjMDcwMHl6Zy0xLnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IERMQyBEaXNwbGF5IENvLiBETEMwNzAwWVpHLTEgNy4wIiBXU1ZHQSBURlQgTENEIHBhbmVsCisKK21haW50YWluZXJzOgorICAtIFBoaWxpcHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0cm9uaXguZGU+CisgIC0gVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGdtYWlsLmNvbT4KKworYWxsT2Y6CisgIC0gJHJlZjogcGFuZWwtY29tbW9uLnlhbWwjCisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgY29uc3Q6IGRsYyxkbGMwNzAweXpnLTEKKworICByZXNldC1ncGlvczogdHJ1ZQorICBlbmFibGUtZ3Bpb3M6IHRydWUKKyAgYmFja2xpZ2h0OiB0cnVlCisgIHBvcnQ6IHRydWUKKworYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSBwb3dlci1zdXBwbHkKKworLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9lZHQsZXQtc2VyaWVzLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2VkdCxldC1zZXJpZXMudHh0CmluZGV4IGJlODY4NDMuLmI3YWMxYzcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2VkdCxldC1zZXJpZXMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2VkdCxldC1zZXJpZXMudHh0CkBAIC00MCw3ICs0MCw3IEBACiB8IElkZW50aWZpZXIgICAgICB8IGNvbXBhdGJpbGUgICAgICAgICAgfCBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICB8CiArPT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCiB8IEVUTTA3MDBHMERINiAgICB8IGVkdCxldG0wNzAwODBkaDYgICAgfCBXVkdBIFRGVCBEaXNwbGF5IHdpdGggY2FwYWNpdGl2ZSAgICB8Ci18ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBUb3VjaHNjcmVlbiAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgICAgICB8IGVkdCxldG0wNzAwZzBkaDYgICAgfCBUb3VjaHNjcmVlbiAgICAgICAgICAgICAgICAgICAgICAgICB8CiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiB8IEVUTTA3MDBHMEJESDYgICB8IGVkdCxldG0wNzAwODBiZGg2ICAgfCBTYW1lIGFzIEVUTTA3MDBHMERINiBidXQgd2l0aCAgICAgICB8CiB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBpbnZlcnRlZCBwaXhlbCBjbG9jay4gICAgICAgICAgICAgICB8CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9naWFudHBsdXMsZ3BtOTQwYjAudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvZ2lhbnRwbHVzLGdwbTk0MGIwLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGFiNTJmCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvZ2lhbnRwbHVzLGdwbTk0MGIwLnR4dApAQCAtMCwwICsxLDEyIEBACitHaWFudFBsdXMgMy4wIiAoMzIweDI0MCBwaXhlbHMpIDI0LWJpdCBURlQgTENEIHBhbmVsCisKK1JlcXVpcmVkIHByb3BlcnRpZXM6CistIGNvbXBhdGlibGU6IHNob3VsZCBiZSAiZ2lhbnRwbHVzLGdwbTk0MGIwIgorLSBwb3dlci1zdXBwbHk6IGFzIHNwZWNpZmllZCBpbiB0aGUgYmFzZSBiaW5kaW5nCisKK09wdGlvbmFsIHByb3BlcnRpZXM6CistIGJhY2tsaWdodDogYXMgc3BlY2lmaWVkIGluIHRoZSBiYXNlIGJpbmRpbmcKKy0gZW5hYmxlLWdwaW9zOiBhcyBzcGVjaWZpZWQgaW4gdGhlIGJhc2UgYmluZGluZworCitUaGlzIGJpbmRpbmcgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBzaW1wbGUtcGFuZWwgYmluZGluZywgd2hpY2ggaXMgc3BlY2lmaWVkCitpbiBzaW1wbGUtcGFuZWwudHh0IGluIHRoaXMgZGlyZWN0b3J5LgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvaW5ub2x1eCxlZTEwMWlhLTAxZC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9pbm5vbHV4LGVlMTAxaWEtMDFkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTVjYTRjYy4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9pbm5vbHV4LGVlMTAxaWEtMDFkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotSW5ub2x1eCBDb3Jwb3JhdGlvbiAxMC4xIiBFRTEwMUlBLTAxRCBXWEdBICgxMjgweDgwMCkgTFZEUyBwYW5lbAotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotLSBjb21wYXRpYmxlOiBzaG91bGQgYmUgImlubm9sdXgsZWUxMDFpYS0wMWQiCi0KLVRoaXMgYmluZGluZyBpcyBjb21wYXRpYmxlIHdpdGggdGhlIGx2ZHMtcGFuZWwgYmluZGluZywgd2hpY2ggaXMgc3BlY2lmaWVkCi1pbiBwYW5lbC1sdmRzLnR4dCBpbiB0aGlzIGRpcmVjdG9yeS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2lubm9sdXgsZWUxMDFpYS0wMWQueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2lubm9sdXgsZWUxMDFpYS0wMWQueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjk2ODFlCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvaW5ub2x1eCxlZTEwMWlhLTAxZC55YW1sCkBAIC0wLDAgKzEsMzEgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Rpc3BsYXkvcGFuZWwvaW5ub2x1eCxlZTEwMWlhLTAxZC55YW1sIworJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisKK3RpdGxlOiBJbm5vbHV4IENvcnBvcmF0aW9uIDEwLjEiIEVFMTAxSUEtMDFEIFdYR0EgKDEyODB4ODAwKSBMVkRTIHBhbmVsCisKK21haW50YWluZXJzOgorICAtIEhlaWtvIFN0dWVibmVyIDxoZWlrby5zdHVlYm5lckBicS5jb20+CisgIC0gVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGdtYWlsLmNvbT4KKworYWxsT2Y6CisgIC0gJHJlZjogbHZkcy55YW1sIworCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGl0ZW1zOgorICAgICAgLSBjb25zdDogaW5ub2x1eCxlZTEwMWlhLTAxZAorICAgICAgLSB7fSAjIHBhbmVsLWx2ZHMsIGJ1dCBub3QgbGlzdGVkIGhlcmUgdG8gYXZvaWQgZmFsc2Ugc2VsZWN0CisKKyAgYmFja2xpZ2h0OiB0cnVlCisgIGVuYWJsZS1ncGlvczogdHJ1ZQorICBwb3dlci1zdXBwbHk6IHRydWUKKyAgd2lkdGgtbW06IHRydWUKKyAgaGVpZ2h0LW1tOiB0cnVlCisgIHBhbmVsLXRpbWluZzogdHJ1ZQorICBwb3J0OiB0cnVlCisKK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9raW5nZGlzcGxheSxrZDAzNWc2LTU0bnQudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwva2luZ2Rpc3BsYXksa2QwMzVnNi01NG50LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTk1OTYwCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwva2luZ2Rpc3BsYXksa2QwMzVnNi01NG50LnR4dApAQCAtMCwwICsxLDQyIEBACitLaW5nIERpc3BsYXkgS0QwMzVHNi01NE5UIDMuNSIgKDMyMHgyNDAgcGl4ZWxzKSAyNC1iaXQgVEZUIExDRCBwYW5lbAorCitSZXF1aXJlZCBwcm9wZXJ0aWVzOgorLSBjb21wYXRpYmxlOiBzaG91bGQgYmUgImtpbmdkaXNwbGF5LGtkMDM1ZzYtNTRudCIKKy0gcG93ZXItc3VwcGx5OiBTZWUgcGFuZWwtY29tbW9uLnR4dAorLSByZXNldC1ncGlvczogU2VlIHBhbmVsLWNvbW1vbi50eHQKKworT3B0aW9uYWwgcHJvcGVydGllczoKKy0gYmFja2xpZ2h0OiBzZWUgcGFuZWwtY29tbW9uLnR4dAorCitUaGUgZ2VuZXJpYyBiaW5kaW5ncyBmb3IgdGhlIFNQSSBzbGF2ZXMgZG9jdW1lbnRlZCBpbiBbMV0gYWxzbyBhcHBseS4KKworVGhlIGRldmljZSBub2RlIGNhbiBjb250YWluIG9uZSAncG9ydCcgY2hpbGQgbm9kZSB3aXRoIG9uZSBjaGlsZAorJ2VuZHBvaW50JyBub2RlLCBhY2NvcmRpbmcgdG8gdGhlIGJpbmRpbmdzIGRlZmluZWQgaW4gWzJdLiBUaGlzCitub2RlIHNob3VsZCBkZXNjcmliZSBwYW5lbCdzIHZpZGVvIGJ1cy4KKworWzFdOiBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc3BpL3NwaS1idXMudHh0CitbMl06IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncmFwaC50eHQKKworRXhhbXBsZToKKworJnNwaSB7CisJcGFuZWxAMCB7CisJCWNvbXBhdGlibGUgPSAia2luZ2Rpc3BsYXksa2QwMzVnNi01NG50IjsKKwkJcmVnID0gPDA+OworCisJCXNwaS1tYXgtZnJlcXVlbmN5ID0gPDMxMjUwMDA+OworCQlzcGktM3dpcmU7CisJCXNwaS1jcy1oaWdoOworCisJCXJlc2V0LWdwaW9zID0gPCZncGUgMiBHUElPX0FDVElWRV9MT1c+OworCisJCWJhY2tsaWdodCA9IDwmYmFja2xpZ2h0PjsKKwkJcG93ZXItc3VwcGx5ID0gPCZsZG82PjsKKworCQlwb3J0IHsKKwkJCXBhbmVsX2lucHV0OiBlbmRwb2ludCB7CisJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZwYW5lbF9vdXRwdXQ+OworCQkJfTsKKwkJfTsKKwl9OworfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2x2ZHMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2x2ZHMueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDA4MzMwCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvbHZkcy55YW1sCkBAIC0wLDAgKzEsMTA3IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9kaXNwbGF5L3BhbmVsL2x2ZHMueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogTFZEUyBEaXNwbGF5IFBhbmVsCisKK21haW50YWluZXJzOgorICAtIExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnQrcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgorICAtIFRoaWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+CisKK2Rlc2NyaXB0aW9uOiB8KworICBMVkRTIGlzIGEgcGh5c2ljYWwgbGF5ZXIgc3BlY2lmaWNhdGlvbiBkZWZpbmVkIGluIEFOU0kvVElBL0VJQS02NDQtQS4gTXVsdGlwbGUKKyAgaW5jb21wYXRpYmxlIGRhdGEgbGluayBsYXllcnMgaGF2ZSBiZWVuIHVzZWQgb3ZlciB0aW1lIHRvIHRyYW5zbWl0IGltYWdlIGRhdGEKKyAgdG8gTFZEUyBwYW5lbHMuIFRoaXMgYmluZGluZ3Mgc3VwcG9ydHMgZGlzcGxheSBwYW5lbHMgY29tcGF0aWJsZSB3aXRoIHRoZQorICBmb2xsb3dpbmcgc3BlY2lmaWNhdGlvbnMuCisKKyAgW0pFSURBXSAiRGlnaXRhbCBJbnRlcmZhY2UgU3RhbmRhcmRzIGZvciBNb25pdG9yIiwgSkVJREEtNTktMTk5OSwgRmVicnVhcnkKKyAgMTk5OSAoVmVyc2lvbiAxLjApLCBKYXBhbiBFbGVjdHJvbmljIEluZHVzdHJ5IERldmVsb3BtZW50IEFzc29jaWF0aW9uIChKRUlEQSkKKyAgW0xESV0gIk9wZW4gTFZEUyBEaXNwbGF5IEludGVyZmFjZSIsIE1heSAxOTk5IChWZXJzaW9uIDAuOTUpLCBOYXRpb25hbAorICBTZW1pY29uZHVjdG9yCisgIFtWRVNBXSAiVkVTQSBOb3RlYm9vayBQYW5lbCBTdGFuZGFyZCIsIE9jdG9iZXIgMjAwNyAoVmVyc2lvbiAxLjApLCBWaWRlbworICBFbGVjdHJvbmljcyBTdGFuZGFyZHMgQXNzb2NpYXRpb24gKFZFU0EpCisKKyAgRGV2aWNlIGNvbXBhdGlibGUgd2l0aCB0aG9zZSBzcGVjaWZpY2F0aW9ucyBoYXZlIGJlZW4gbWFya2V0ZWQgdW5kZXIgdGhlCisgIEZQRC1MaW5rIGFuZCBGbGF0TGluayBicmFuZHMuCisKK2FsbE9mOgorICAtICRyZWY6IHBhbmVsLWNvbW1vbi55YW1sIworCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGNvbnRhaW5zOgorICAgICAgY29uc3Q6IHBhbmVsLWx2ZHMKKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgIFNoYWxsIGNvbnRhaW4gInBhbmVsLWx2ZHMiIGluIGFkZGl0aW9uIHRvIGEgbWFuZGF0b3J5IHBhbmVsLXNwZWNpZmljCisgICAgICBjb21wYXRpYmxlIHN0cmluZyBkZWZpbmVkIGluIGluZGl2aWR1YWwgcGFuZWwgYmluZGluZ3MuIFRoZSAicGFuZWwtbHZkcyIKKyAgICAgIHZhbHVlIHNoYWxsIG5ldmVyIGJlIHVzZWQgb24gaXRzIG93bi4KKworICBkYXRhLW1hcHBpbmc6CisgICAgZW51bToKKyAgICAgIC0gamVpZGEtMTgKKyAgICAgIC0gamVpZGEtMjQKKyAgICAgIC0gdmVzYS0yNAorICAgIGRlc2NyaXB0aW9uOiB8CisgICAgICBUaGUgY29sb3Igc2lnbmFscyBtYXBwaW5nIG9yZGVyLgorCisgICAgICBMVkRTIGRhdGEgbWFwcGluZ3MgYXJlIGRlZmluZWQgYXMgZm9sbG93cy4KKworICAgICAgLSAiamVpZGEtMTgiIC0gMTgtYml0IGRhdGEgbWFwcGluZyBjb21wYXRpYmxlIHdpdGggdGhlIFtKRUlEQV0sIFtMREldIGFuZAorICAgICAgICBbVkVTQV0gc3BlY2lmaWNhdGlvbnMuIERhdGEgYXJlIHRyYW5zZmVycmVkIGFzIGZvbGxvd3Mgb24gMyBMVkRTIGxhbmVzLgorCisgICAgICBTbG90CSAgICAwICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgIDQgICAgICAgNSAgICAgICA2CisgICAgICAgICAgICBfX19fX19fX19fX19fX19fICAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX19fCisgICAgICBDbG9jawkgICAgICAgICAgICAgICAgXF9fX19fX19fX19fX19fX19fX19fX19fLworICAgICAgICAgICAgICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18KKyAgICAgIERBVEEwCT48X19HMF9fPjxfX1I1X18+PF9fUjRfXz48X19SM19fPjxfX1IyX18+PF9fUjFfXz48X19SMF9fPjwKKyAgICAgIERBVEExCT48X19CMV9fPjxfX0IwX18+PF9fRzVfXz48X19HNF9fPjxfX0czX18+PF9fRzJfXz48X19HMV9fPjwKKyAgICAgIERBVEEyCT48X0NUTDJfPjxfQ1RMMV8+PF9DVEwwXz48X19CNV9fPjxfX0I0X18+PF9fQjNfXz48X19CMl9fPjwKKworICAgICAgLSAiamVpZGEtMjQiIC0gMjQtYml0IGRhdGEgbWFwcGluZyBjb21wYXRpYmxlIHdpdGggdGhlIFtEU0lNXSBhbmQgW0xESV0KKyAgICAgICAgc3BlY2lmaWNhdGlvbnMuIERhdGEgYXJlIHRyYW5zZmVycmVkIGFzIGZvbGxvd3Mgb24gNCBMVkRTIGxhbmVzLgorCisgICAgICBTbG90CSAgICAwICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgIDQgICAgICAgNSAgICAgICA2CisgICAgICAgICAgICBfX19fX19fX19fX19fX19fICAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX19fCisgICAgICBDbG9jawkgICAgICAgICAgICAgICAgXF9fX19fX19fX19fX19fX19fX19fX19fLworICAgICAgICAgICAgICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18KKyAgICAgIERBVEEwCT48X19HMl9fPjxfX1I3X18+PF9fUjZfXz48X19SNV9fPjxfX1I0X18+PF9fUjNfXz48X19SMl9fPjwKKyAgICAgIERBVEExCT48X19CM19fPjxfX0IyX18+PF9fRzdfXz48X19HNl9fPjxfX0c1X18+PF9fRzRfXz48X19HM19fPjwKKyAgICAgIERBVEEyCT48X0NUTDJfPjxfQ1RMMV8+PF9DVEwwXz48X19CN19fPjxfX0I2X18+PF9fQjVfXz48X19CNF9fPjwKKyAgICAgIERBVEEzCT48X0NUTDNfPjxfX0IxX18+PF9fQjBfXz48X19HMV9fPjxfX0cwX18+PF9fUjFfXz48X19SMF9fPjwKKworICAgICAgLSAidmVzYS0yNCIgLSAyNC1iaXQgZGF0YSBtYXBwaW5nIGNvbXBhdGlibGUgd2l0aCB0aGUgW1ZFU0FdIHNwZWNpZmljYXRpb24uCisgICAgICAgIERhdGEgYXJlIHRyYW5zZmVycmVkIGFzIGZvbGxvd3Mgb24gNCBMVkRTIGxhbmVzLgorCisgICAgICBTbG90CSAgICAwICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgIDQgICAgICAgNSAgICAgICA2CisgICAgICAgICAgICBfX19fX19fX19fX19fX19fICAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX19fCisgICAgICBDbG9jawkgICAgICAgICAgICAgICAgXF9fX19fX19fX19fX19fX19fX19fX19fLworICAgICAgICAgICAgICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18KKyAgICAgIERBVEEwCT48X19HMF9fPjxfX1I1X18+PF9fUjRfXz48X19SM19fPjxfX1IyX18+PF9fUjFfXz48X19SMF9fPjwKKyAgICAgIERBVEExCT48X19CMV9fPjxfX0IwX18+PF9fRzVfXz48X19HNF9fPjxfX0czX18+PF9fRzJfXz48X19HMV9fPjwKKyAgICAgIERBVEEyCT48X0NUTDJfPjxfQ1RMMV8+PF9DVEwwXz48X19CNV9fPjxfX0I0X18+PF9fQjNfXz48X19CMl9fPjwKKyAgICAgIERBVEEzCT48X0NUTDNfPjxfX0I3X18+PF9fQjZfXz48X19HN19fPjxfX0c2X18+PF9fUjdfXz48X19SNl9fPjwKKworICAgICAgQ29udHJvbCBzaWduYWxzIGFyZSBtYXBwZWQgYXMgZm9sbG93cy4KKworICAgICAgQ1RMMDogSFN5bmMKKyAgICAgIENUTDE6IFZTeW5jCisgICAgICBDVEwyOiBEYXRhIEVuYWJsZQorICAgICAgQ1RMMzogMAorCisgIGRhdGEtbWlycm9yOgorICAgIHR5cGU6IGJvb2xlYW4KKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgIElmIHNldCwgcmV2ZXJzZSB0aGUgYml0IG9yZGVyIGRlc2NyaWJlZCBpbiB0aGUgZGF0YSBtYXBwaW5ncyBiZWxvdyBvbiBhbGwKKyAgICAgIGRhdGEgbGFuZXMsIHRyYW5zbWl0dGluZyBiaXRzIGZvciBzbG90cyA2IHRvIDAgaW5zdGVhZCBvZiAwIHRvIDYuCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSBkYXRhLW1hcHBpbmcKKyAgLSB3aWR0aC1tbQorICAtIGhlaWdodC1tbQorICAtIHBhbmVsLXRpbWluZworICAtIHBvcnQKKworLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9taXRzdWJpc2hpLGFhMTA0eGQxMi50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9taXRzdWJpc2hpLGFhMTA0eGQxMi50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlZDAxMjEuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvbWl0c3ViaXNoaSxhYTEwNHhkMTIudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotTWl0c3ViaXNoaSBBQTIwNFhEMTIgTFZEUyBEaXNwbGF5IFBhbmVsCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVGhlIEFBMTA0WEQxMiBpcyBhIDEwLjQiIFhHQSBURlQtTENEIGRpc3BsYXkgcGFuZWwuCi0KLVRoZXNlIERUIGJpbmRpbmdzIGZvbGxvdyB0aGUgTFZEUyBwYW5lbCBiaW5kaW5ncyBkZWZpbmVkIGluIHBhbmVsLWx2ZHMudHh0Ci13aXRoIHRoZSBmb2xsb3dpbmcgZGV2aWNlLXNwZWNpZmljIHByb3BlcnRpZXMuCi0KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLQotLSBjb21wYXRpYmxlOiBTaGFsbCBjb250YWluICJtaXRzdWJpc2hpLGFhMTIxdGQwMSIgYW5kICJwYW5lbC1sdmRzIiwgaW4gdGhhdAotICBvcmRlci4KLS0gdmNjLXN1cHBseTogUmVmZXJlbmNlIHRvIHRoZSByZWd1bGF0b3IgcG93ZXJpbmcgdGhlIHBhbmVsIFZDQyBwaW5zLgotCi0KLUV4YW1wbGUKLS0tLS0tLS0KLQotcGFuZWwgewotCWNvbXBhdGlibGUgPSAibWl0c3ViaXNoaSxhYTEwNHhkMTIiLCAicGFuZWwtbHZkcyI7Ci0JdmNjLXN1cHBseSA9IDwmdmNjXzN2Mz47Ci0KLQl3aWR0aC1tbSA9IDwyMTA+OwotCWhlaWdodC1tbSA9IDwxNTg+OwotCi0JZGF0YS1tYXBwaW5nID0gImplaWRhLTI0IjsKLQotCXBhbmVsLXRpbWluZyB7Ci0JCS8qIDEwMjR4NzY4IEA2NUh6ICovCi0JCWNsb2NrLWZyZXF1ZW5jeSA9IDw2NTAwMDAwMD47Ci0JCWhhY3RpdmUgPSA8MTAyND47Ci0JCXZhY3RpdmUgPSA8NzY4PjsKLQkJaHN5bmMtbGVuID0gPDEzNj47Ci0JCWhmcm9udC1wb3JjaCA9IDwyMD47Ci0JCWhiYWNrLXBvcmNoID0gPDE2MD47Ci0JCXZmcm9udC1wb3JjaCA9IDwzPjsKLQkJdmJhY2stcG9yY2ggPSA8Mjk+OwotCQl2c3luYy1sZW4gPSA8Nj47Ci0JfTsKLQotCXBvcnQgewotCQlwYW5lbF9pbjogZW5kcG9pbnQgewotCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZsdmRzX2VuY29kZXI+OwotCQl9OwotCX07Ci19OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvbWl0c3ViaXNoaSxhYTEwNHhkMTIueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL21pdHN1YmlzaGksYWExMDR4ZDEyLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVlN2VlMgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL21pdHN1YmlzaGksYWExMDR4ZDEyLnlhbWwKQEAgLTAsMCArMSw3NSBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZGlzcGxheS9wYW5lbC9taXRzdWJpc2hpLGFhMTA0eGQxMi55YW1sIworJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisKK3RpdGxlOiBNaXRzdWJpc2hpIEFBMTA0WEQxMiAxMC40IiBYR0EgTFZEUyBEaXNwbGF5IFBhbmVsCisKK21haW50YWluZXJzOgorICAtIExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KKyAgLSBUaGllcnJ5IFJlZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgorCithbGxPZjoKKyAgLSAkcmVmOiBsdmRzLnlhbWwjCisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgaXRlbXM6CisgICAgICAtIGNvbnN0OiBtaXRzdWJpc2hpLGFhMTA0eGQxMgorICAgICAgLSB7fSAjIHBhbmVsLWx2ZHMsIGJ1dCBub3QgbGlzdGVkIGhlcmUgdG8gYXZvaWQgZmFsc2Ugc2VsZWN0CisKKyAgdmNjLXN1cHBseToKKyAgICBkZXNjcmlwdGlvbjogUmVmZXJlbmNlIHRvIHRoZSByZWd1bGF0b3IgcG93ZXJpbmcgdGhlIHBhbmVsIFZDQyBwaW5zLgorCisgIGRhdGEtbWFwcGluZzoKKyAgICBjb25zdDogamVpZGEtMjQKKworICB3aWR0aC1tbToKKyAgICBjb25zdDogMjEwCisKKyAgaGVpZ2h0LW1tOgorICAgIGNvbnN0OiAxNTgKKworICBwYW5lbC10aW1pbmc6IHRydWUKKyAgcG9ydDogdHJ1ZQorCithZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHZjYy1zdXBwbHkKKworZXhhbXBsZXM6CisgIC0gfCsKKworICAgIHBhbmVsIHsKKyAgICAgIGNvbXBhdGlibGUgPSAibWl0c3ViaXNoaSxhYTEwNHhkMTIiLCAicGFuZWwtbHZkcyI7CisgICAgICB2Y2Mtc3VwcGx5ID0gPCZ2Y2NfM3YzPjsKKworICAgICAgd2lkdGgtbW0gPSA8MjEwPjsKKyAgICAgIGhlaWdodC1tbSA9IDwxNTg+OworCisgICAgICBkYXRhLW1hcHBpbmcgPSAiamVpZGEtMjQiOworCisgICAgICBwYW5lbC10aW1pbmcgeworICAgICAgICAvKiAxMDI0eDc2OCBANjVIeiAqLworICAgICAgICBjbG9jay1mcmVxdWVuY3kgPSA8NjUwMDAwMDA+OworICAgICAgICBoYWN0aXZlID0gPDEwMjQ+OworICAgICAgICB2YWN0aXZlID0gPDc2OD47CisgICAgICAgIGhzeW5jLWxlbiA9IDwxMzY+OworICAgICAgICBoZnJvbnQtcG9yY2ggPSA8MjA+OworICAgICAgICBoYmFjay1wb3JjaCA9IDwxNjA+OworICAgICAgICB2ZnJvbnQtcG9yY2ggPSA8Mz47CisgICAgICAgIHZiYWNrLXBvcmNoID0gPDI5PjsKKyAgICAgICAgdnN5bmMtbGVuID0gPDY+OworICAgICAgfTsKKworICAgICAgcG9ydCB7CisgICAgICAgIHBhbmVsX2luOiBlbmRwb2ludCB7CisgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZsdmRzX2VuY29kZXI+OworICAgICAgICB9OworICAgICAgfTsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL21pdHN1YmlzaGksYWExMjF0ZDAxLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL21pdHN1YmlzaGksYWExMjF0ZDAxLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDZlMTA5Ny4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9taXRzdWJpc2hpLGFhMTIxdGQwMS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi1NaXRzdWJpc2hpIEFBMTIxVEQwMSBMVkRTIERpc3BsYXkgUGFuZWwKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1UaGUgQUExMjFURDAxIGlzIGEgMTIuMSIgV1hHQSBURlQtTENEIGRpc3BsYXkgcGFuZWwuCi0KLVRoZXNlIERUIGJpbmRpbmdzIGZvbGxvdyB0aGUgTFZEUyBwYW5lbCBiaW5kaW5ncyBkZWZpbmVkIGluIHBhbmVsLWx2ZHMudHh0Ci13aXRoIHRoZSBmb2xsb3dpbmcgZGV2aWNlLXNwZWNpZmljIHByb3BlcnRpZXMuCi0KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLQotLSBjb21wYXRpYmxlOiBTaGFsbCBjb250YWluICJtaXRzdWJpc2hpLGFhMTIxdGQwMSIgYW5kICJwYW5lbC1sdmRzIiwgaW4gdGhhdAotICBvcmRlci4KLS0gdmNjLXN1cHBseTogUmVmZXJlbmNlIHRvIHRoZSByZWd1bGF0b3IgcG93ZXJpbmcgdGhlIHBhbmVsIFZDQyBwaW5zLgotCi0KLUV4YW1wbGUKLS0tLS0tLS0KLQotcGFuZWwgewotCWNvbXBhdGlibGUgPSAibWl0c3ViaXNoaSxhYTEyMXRkMDEiLCAicGFuZWwtbHZkcyI7Ci0JdmNjLXN1cHBseSA9IDwmdmNjXzN2Mz47Ci0KLQl3aWR0aC1tbSA9IDwyNjE+OwotCWhlaWdodC1tbSA9IDwxNjM+OwotCi0JZGF0YS1tYXBwaW5nID0gImplaWRhLTI0IjsKLQotCXBhbmVsLXRpbWluZyB7Ci0JCS8qIDEyODB4ODAwIEA2MEh6ICovCi0JCWNsb2NrLWZyZXF1ZW5jeSA9IDw3MTAwMDAwMD47Ci0JCWhhY3RpdmUgPSA8MTI4MD47Ci0JCXZhY3RpdmUgPSA8ODAwPjsKLQkJaHN5bmMtbGVuID0gPDcwPjsKLQkJaGZyb250LXBvcmNoID0gPDIwPjsKLQkJaGJhY2stcG9yY2ggPSA8NzA+OwotCQl2c3luYy1sZW4gPSA8NT47Ci0JCXZmcm9udC1wb3JjaCA9IDwzPjsKLQkJdmJhY2stcG9yY2ggPSA8MTU+OwotCX07Ci0KLQlwb3J0IHsKLQkJcGFuZWxfaW46IGVuZHBvaW50IHsKLQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmbHZkc19lbmNvZGVyPjsKLQkJfTsKLQl9OwotfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL21pdHN1YmlzaGksYWExMjF0ZDAxLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9taXRzdWJpc2hpLGFhMTIxdGQwMS55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3N2M1MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9taXRzdWJpc2hpLGFhMTIxdGQwMS55YW1sCkBAIC0wLDAgKzEsNzQgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Rpc3BsYXkvcGFuZWwvbWl0c3ViaXNoaSxhYTEyMXRkMDEueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogTWl0c3ViaXNoaSBBQTEyMVREMDEgMTIuMSIgV1hHQSBMVkRTIERpc3BsYXkgUGFuZWwKKworbWFpbnRhaW5lcnM6CisgIC0gTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgorICAtIFRoaWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+CisKK2FsbE9mOgorICAtICRyZWY6IGx2ZHMueWFtbCMKKworcHJvcGVydGllczoKKyAgY29tcGF0aWJsZToKKyAgICBpdGVtczoKKyAgICAgIC0gY29uc3Q6IG1pdHN1YmlzaGksYWExMjF0ZDAxCisgICAgICAtIHt9ICMgcGFuZWwtbHZkcywgYnV0IG5vdCBsaXN0ZWQgaGVyZSB0byBhdm9pZCBmYWxzZSBzZWxlY3QKKworICB2Y2Mtc3VwcGx5OgorICAgIGRlc2NyaXB0aW9uOiBSZWZlcmVuY2UgdG8gdGhlIHJlZ3VsYXRvciBwb3dlcmluZyB0aGUgcGFuZWwgVkNDIHBpbnMuCisKKyAgZGF0YS1tYXBwaW5nOgorICAgIGNvbnN0OiBqZWlkYS0yNAorCisgIHdpZHRoLW1tOgorICAgIGNvbnN0OiAyNjEKKworICBoZWlnaHQtbW06CisgICAgY29uc3Q6IDE2MworCisgIHBhbmVsLXRpbWluZzogdHJ1ZQorICBwb3J0OiB0cnVlCisKK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisgIC0gdmNjLXN1cHBseQorCitleGFtcGxlczoKKyAgLSB8KworICAgIHBhbmVsIHsKKyAgICAgIGNvbXBhdGlibGUgPSAibWl0c3ViaXNoaSxhYTEyMXRkMDEiLCAicGFuZWwtbHZkcyI7CisgICAgICB2Y2Mtc3VwcGx5ID0gPCZ2Y2NfM3YzPjsKKworICAgICAgd2lkdGgtbW0gPSA8MjYxPjsKKyAgICAgIGhlaWdodC1tbSA9IDwxNjM+OworCisgICAgICBkYXRhLW1hcHBpbmcgPSAiamVpZGEtMjQiOworCisgICAgICBwYW5lbC10aW1pbmcgeworICAgICAgICAvKiAxMjgweDgwMCBANjBIeiAqLworICAgICAgICBjbG9jay1mcmVxdWVuY3kgPSA8NzEwMDAwMDA+OworICAgICAgICBoYWN0aXZlID0gPDEyODA+OworICAgICAgICB2YWN0aXZlID0gPDgwMD47CisgICAgICAgIGhzeW5jLWxlbiA9IDw3MD47CisgICAgICAgIGhmcm9udC1wb3JjaCA9IDwyMD47CisgICAgICAgIGhiYWNrLXBvcmNoID0gPDcwPjsKKyAgICAgICAgdnN5bmMtbGVuID0gPDU+OworICAgICAgICB2ZnJvbnQtcG9yY2ggPSA8Mz47CisgICAgICAgIHZiYWNrLXBvcmNoID0gPDE1PjsKKyAgICAgIH07CisKKyAgICAgIHBvcnQgeworICAgICAgICBwYW5lbF9pbjogZW5kcG9pbnQgeworICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmbHZkc19lbmNvZGVyPjsKKyAgICAgICAgfTsKKyAgICAgIH07CisgICAgfTsKKworLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9uZWMsbmw4MDQ4aGwxMS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvbmVjLG5sODA0OGhsMTEueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTc4OGVhCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvbmVjLG5sODA0OGhsMTEueWFtbApAQCAtMCwwICsxLDYyIEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9kaXNwbGF5L3BhbmVsL25lYyxubDgwNDhobDExLnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IE5FQyBOTDgwNDhITDExIDQuMSIgV1ZHQSBURlQgTENEIHBhbmVsCisKK2Rlc2NyaXB0aW9uOgorICBUaGUgTkVDIE5MODA0OEhMMTEgaXMgYSA0LjEiIFdWR0EgVEZUIExDRCBwYW5lbCB3aXRoIGEgMjQtYml0IFJHQiBwYXJhbGxlbAorICBkYXRhIGludGVyZmFjZSBhbmQgYW4gU1BJIGNvbnRyb2wgaW50ZXJmYWNlLgorCittYWludGFpbmVyczoKKyAgLSBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+CisKK2FsbE9mOgorICAtICRyZWY6IHBhbmVsLWNvbW1vbi55YW1sIworCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGNvbnN0OiBuZWMsbmw4MDQ4aGwxMQorCisgIGxhYmVsOiB0cnVlCisgIHBvcnQ6IHRydWUKKyAgcmVnOiB0cnVlCisgIHJlc2V0LWdwaW9zOiB0cnVlCisKKyAgc3BpLW1heC1mcmVxdWVuY3k6CisgICAgbWF4aW11bTogMTAwMDAwMDAKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtIHJlc2V0LWdwaW9zCisgIC0gcG9ydAorCithZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKworZXhhbXBsZXM6CisgIC0gfAorICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9ncGlvL2dwaW8uaD4KKworICAgIHNwaTAgeworICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47CisgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKKworICAgICAgbGNkX3BhbmVsOiBwYW5lbEAwIHsKKyAgICAgICAgY29tcGF0aWJsZSA9ICJuZWMsbmw4MDQ4aGwxMSI7CisgICAgICAgIHJlZyA9IDwwPjsKKyAgICAgICAgc3BpLW1heC1mcmVxdWVuY3kgPSA8MTAwMDAwMDA+OworCisgICAgICAgIHJlc2V0LWdwaW9zID0gPCZncGlvNyA3IEdQSU9fQUNUSVZFX0xPVz47CisKKyAgICAgICAgcG9ydCB7CisgICAgICAgICAgbGNkX2luOiBlbmRwb2ludCB7CisgICAgICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8JmRwaV9vdXQ+OworICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICB9OworICAgIH07CisKKy4uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvb3J0dXN0ZWNoLGNvbTM3aDNtMDVkdGMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvb3J0dXN0ZWNoLGNvbTM3aDNtMDVkdGMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxNjkwN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9vcnR1c3RlY2gsY29tMzdoM20wNWR0Yy50eHQKQEAgLTAsMCArMSwxMiBAQAorT3J0dXNUZWNoIENPTTM3SDNNMDVEVEMgQmxhbnZpZXcgMy43IiBWR0EgcG9ydHJhaXQgVEZULUxDRCBwYW5lbAorCitSZXF1aXJlZCBwcm9wZXJ0aWVzOgorLSBjb21wYXRpYmxlOiBzaG91bGQgYmUgIm9ydHVzdGVjaCxjb20zN2gzbTA1ZHRjIgorCitPcHRpb25hbCBwcm9wZXJ0aWVzOgorLSBlbmFibGUtZ3Bpb3M6IEdQSU8gcGluIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBwYW5lbAorLSBiYWNrbGlnaHQ6IHBoYW5kbGUgb2YgdGhlIGJhY2tsaWdodCBkZXZpY2UgYXR0YWNoZWQgdG8gdGhlIHBhbmVsCistIHBvd2VyLXN1cHBseTogcGhhbmRsZSBvZiB0aGUgcmVndWxhdG9yIHRoYXQgcHJvdmlkZXMgdGhlIHN1cHBseSB2b2x0YWdlCisKK1RoaXMgYmluZGluZyBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHNpbXBsZS1wYW5lbCBiaW5kaW5nLCB3aGljaCBpcyBzcGVjaWZpZWQKK2luIHNpbXBsZS1wYW5lbC50eHQgaW4gdGhpcyBkaXJlY3RvcnkuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9vcnR1c3RlY2gsY29tMzdoM205OWR0Yy50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9vcnR1c3RlY2gsY29tMzdoM205OWR0Yy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZhNzNjMwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL29ydHVzdGVjaCxjb20zN2gzbTk5ZHRjLnR4dApAQCAtMCwwICsxLDEyIEBACitPcnR1c1RlY2ggQ09NMzdIM005OURUQyBCbGFudmlldyAzLjciIFZHQSBwb3J0cmFpdCBURlQtTENEIHBhbmVsCisKK1JlcXVpcmVkIHByb3BlcnRpZXM6CistIGNvbXBhdGlibGU6IHNob3VsZCBiZSAib3J0dXN0ZWNoLGNvbTM3aDNtOTlkdGMiCisKK09wdGlvbmFsIHByb3BlcnRpZXM6CistIGVuYWJsZS1ncGlvczogR1BJTyBwaW4gdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIHBhbmVsCistIGJhY2tsaWdodDogcGhhbmRsZSBvZiB0aGUgYmFja2xpZ2h0IGRldmljZSBhdHRhY2hlZCB0byB0aGUgcGFuZWwKKy0gcG93ZXItc3VwcGx5OiBwaGFuZGxlIG9mIHRoZSByZWd1bGF0b3IgdGhhdCBwcm92aWRlcyB0aGUgc3VwcGx5IHZvbHRhZ2UKKworVGhpcyBiaW5kaW5nIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgc2ltcGxlLXBhbmVsIGJpbmRpbmcsIHdoaWNoIGlzIHNwZWNpZmllZAoraW4gc2ltcGxlLXBhbmVsLnR4dCBpbiB0aGlzIGRpcmVjdG9yeS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3BhbmVsLWNvbW1vbi50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9wYW5lbC1jb21tb24udHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDI1MTlhLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3BhbmVsLWNvbW1vbi50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMDEgKzAsMCBAQAotQ29tbW9uIFByb3BlcnRpZXMgZm9yIERpc3BsYXkgUGFuZWwKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVRoaXMgZG9jdW1lbnQgZGVmaW5lcyBkZXZpY2UgdHJlZSBwcm9wZXJ0aWVzIGNvbW1vbiB0byBzZXZlcmFsIGNsYXNzZXMgb2YKLWRpc3BsYXkgcGFuZWxzLiBJdCBkb2Vzbid0IGNvbnN0aXR1ZSBhIGRldmljZSB0cmVlIGJpbmRpbmcgc3BlY2lmaWNhdGlvbiBieQotaXRzZWxmIGJ1dCBpcyBtZWFudCB0byBiZSByZWZlcmVuY2VkIGJ5IGRldmljZSB0cmVlIGJpbmRpbmdzLgotCi1XaGVuIHJlZmVyZW5jZWQgZnJvbSBwYW5lbCBkZXZpY2UgdHJlZSBiaW5kaW5ncyB0aGUgcHJvcGVydGllcyBkZWZpbmVkIGluIHRoaXMKLWRvY3VtZW50IGFyZSBkZWZpbmVkIGFzIGZvbGxvd3MuIFRoZSBwYW5lbCBkZXZpY2UgdHJlZSBiaW5kaW5ncyBhcmUKLXJlc3BvbnNpYmxlIGZvciBkZWZpbmluZyB3aGV0aGVyIGVhY2ggcHJvcGVydHkgaXMgcmVxdWlyZWQgb3Igb3B0aW9uYWwuCi0KLQotRGVzY3JpcHRpdmUgUHJvcGVydGllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tIHdpZHRoLW1tLAotLSBoZWlnaHQtbW06IFRoZSB3aWR0aC1tbSBhbmQgaGVpZ2h0LW1tIHNwZWNpZnkgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlCi0gIHBoeXNpY2FsIGFyZWEgd2hlcmUgaW1hZ2VzIGFyZSBkaXNwbGF5ZWQuIFRoZXNlIHByb3BlcnRpZXMgYXJlIGV4cHJlc3NlZCBpbgotICBtaWxsaW1ldGVycyBhbmQgcm91bmRlZCB0byB0aGUgY2xvc2VzdCB1bml0LgotCi0tIGxhYmVsOiBUaGUgbGFiZWwgcHJvcGVydHkgc3BlY2lmaWVzIGEgc3ltYm9saWMgbmFtZSBmb3IgdGhlIHBhbmVsIGFzIGEKLSAgc3RyaW5nIHN1aXRhYmxlIGZvciB1c2UgYnkgaHVtYW5zLiBJdCB0eXBpY2FsbHkgY29udGFpbnMgYSBuYW1lIGluc2NyaWJlZCBvbgotICB0aGUgc3lzdGVtIChlLmcuIGFzIGFuIGFmZml4ZWQgbGFiZWwpIG9yIHNwZWNpZmllZCBpbiB0aGUgc3lzdGVtJ3MKLSAgZG9jdW1lbnRhdGlvbiAoZS5nLiBpbiB0aGUgdXNlcidzIG1hbnVhbCkuCi0KLSAgSWYgbm8gc3VjaCBuYW1lIGV4aXN0cywgYW5kIHVubGVzcyB0aGUgcHJvcGVydHkgaXMgbWFuZGF0b3J5IGFjY29yZGluZyB0bwotICBkZXZpY2UgdHJlZSBiaW5kaW5ncywgaXQgc2hhbGwgcmF0aGVyIGJlIG9taXR0ZWQgdGhhbiBjb25zdHJ1Y3RlZCBvZgotICBub24tZGVzY3JpcHRpdmUgaW5mb3JtYXRpb24uIEZvciBpbnN0YW5jZSBhbiBMQ0QgcGFuZWwgaW4gYSBzeXN0ZW0gdGhhdAotICBjb250YWlucyBhIHNpbmdsZSBwYW5lbCBzaGFsbCBub3QgYmUgbGFiZWxsZWQgIkxDRCIgaWYgdGhhdCBuYW1lIGlzIG5vdAotICBpbnNjcmliZWQgb24gdGhlIHN5c3RlbSBvciB1c2VkIGluIGEgZGVzY3JpcHRpdmUgZmFzaGlvbiBpbiBzeXN0ZW0KLSAgZG9jdW1lbnRhdGlvbi4KLQotCi1EaXNwbGF5IFRpbWluZ3MKLS0tLS0tLS0tLS0tLS0tLQotCi0tIHBhbmVsLXRpbWluZzogTW9zdCBkaXNwbGF5IHBhbmVscyBhcmUgcmVzdHJpY3RlZCB0byBhIHNpbmdsZSByZXNvbHV0aW9uIGFuZAotICByZXF1aXJlIHNwZWNpZmljIGRpc3BsYXkgdGltaW5ncy4gVGhlIHBhbmVsLXRpbWluZyBzdWJub2RlIGV4cHJlc3NlcyB0aG9zZQotICB0aW1pbmdzIGFzIHNwZWNpZmllZCBpbiB0aGUgdGltaW5nIHN1Ym5vZGUgc2VjdGlvbiBvZiB0aGUgZGlzcGxheSB0aW1pbmcKLSAgYmluZGluZ3MgZGVmaW5lZCBpbgotICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9kaXNwbGF5LXRpbWluZy50eHQuCi0KLQotQ29ubmVjdGl2aXR5Ci0tLS0tLS0tLS0tLS0KLQotLSBwb3J0czogUGFuZWxzIHJlY2VpdmUgdmlkZW8gZGF0YSB0aHJvdWdoIG9uZSBvciBtdWx0aXBsZSBjb25uZWN0aW9ucy4gV2hpbGUKLSAgdGhlIG5hdHVyZSBvZiB0aG9zZSBjb25uZWN0aW9ucyBpcyBzcGVjaWZpYyB0byB0aGUgcGFuZWwgdHlwZSwgdGhlCi0gIGNvbm5lY3Rpdml0eSBpcyBleHByZXNzZWQgaW4gYSBzdGFuZGFyZCBmYXNoaW9uIHVzaW5nIHBvcnRzIGFzIHNwZWNpZmllZCBpbgotICB0aGUgZGV2aWNlIGdyYXBoIGJpbmRpbmdzIGRlZmluZWQgaW4KLSAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dyYXBoLnR4dC4KLQotLSBkZGMtaTJjLWJ1czogU29tZSBwYW5lbHMgZXhwb3NlIEVESUQgaW5mb3JtYXRpb24gdGhyb3VnaCBhbiBJMkMtY29tcGF0aWJsZQotICBidXMgc3VjaCBhcyBEREMyIG9yIEUtRERDLiBGb3Igc3VjaCBwYW5lbHMgdGhlIGRkYy1pMmMtYnVzIGNvbnRhaW5zIGEKLSAgcGhhbmRsZSB0byB0aGUgc3lzdGVtIEkyQyBjb250cm9sbGVyIGNvbm5lY3RlZCB0byB0aGF0IGJ1cy4KLQotCi1Db250cm9sIEkvT3MKLS0tLS0tLS0tLS0tLQotCi1NYW55IGRpc3BsYXkgcGFuZWxzIGNhbiBiZSBjb250cm9sbGVkIHRocm91Z2ggcGlucyBkcml2ZW4gYnkgR1BJT3MuIFRoZSBuYXR1cmUKLWFuZCB0aW1pbmcgb2YgdGhvc2UgY29udHJvbCBzaWduYWxzIGFyZSBkZXZpY2Utc3BlY2lmaWMgYW5kIGxlZnQgZm9yIHBhbmVsCi1kZXZpY2UgdHJlZSBiaW5kaW5ncyB0byBzcGVjaWZ5LiBUaGUgZm9sbG93aW5nIEdQSU8gc3BlY2lmaWVycyBjYW4gaG93ZXZlciBiZQotdXNlZCBmb3IgcGFuZWxzIHRoYXQgaW1wbGVtZW50IGNvbXBhdGlibGUgY29udHJvbCBzaWduYWxzLgotCi0tIGVuYWJsZS1ncGlvczogU3BlY2lmaWVyIGZvciBhIEdQSU8gY29ubmVjdGVkIHRvIHRoZSBwYW5lbCBlbmFibGUgY29udHJvbAotICBzaWduYWwuIFRoZSBlbmFibGUgc2lnbmFsIGlzIGFjdGl2ZSBoaWdoIGFuZCBlbmFibGVzIG9wZXJhdGlvbiBvZiB0aGUgcGFuZWwuCi0gIFRoaXMgcHJvcGVydHkgY2FuIGFsc28gYmUgdXNlZCBmb3IgcGFuZWxzIGltcGxlbWVudGluZyBhbiBhY3RpdmUgbG93IHBvd2VyCi0gIGRvd24gc2lnbmFsLCB3aGljaCBpcyBhIG5lZ2F0ZWQgdmVyc2lvbiBvZiB0aGUgZW5hYmxlIHNpZ25hbC4gQWN0aXZlIGxvdwotICBlbmFibGUgc2lnbmFscyAob3IgYWN0aXZlIGhpZ2ggcG93ZXIgZG93biBzaWduYWxzKSBjYW4gYmUgc3VwcG9ydGVkIGJ5Ci0gIGludmVydGluZyB0aGUgR1BJTyBzcGVjaWZpZXIgcG9sYXJpdHkgZmxhZy4KLQotICBOb3RlIHRoYXQgdGhlIGVuYWJsZSBzaWduYWwgY29udHJvbCBwYW5lbCBvcGVyYXRpb24gb25seSBhbmQgbXVzdCBub3QgYmUKLSAgY29uZnVzZWQgd2l0aCBhIGJhY2tsaWdodCBlbmFibGUgc2lnbmFsLgotCi0tIHJlc2V0LWdwaW9zOiBTcGVjaWZpZXIgZm9yIGEgR1BJTyBjb29ubmVjdGVkIHRvIHRoZSBwYW5lbCByZXNldCBjb250cm9sCi0gIHNpZ25hbC4gVGhlIHJlc2V0IHNpZ25hbCBpcyBhY3RpdmUgbG93IGFuZCByZXNldHMgdGhlIHBhbmVsIGludGVybmFsIGxvZ2ljCi0gIHdoaWxlIGFjdGl2ZS4gQWN0aXZlIGhpZ2ggcmVzZXQgc2lnbmFscyBjYW4gYmUgc3VwcG9ydGVkIGJ5IGludmVydGluZyB0aGUKLSAgR1BJTyBzcGVjaWZpZXIgcG9sYXJpdHkgZmxhZy4KLQotUG93ZXIKLS0tLS0tCi0KLS0gcG93ZXItc3VwcGx5OiBkaXNwbGF5IHBhbmVscyByZXF1aXJlIHBvd2VyIHRvIGJlIHN1cHBsaWVkLiBXaGlsZSBzZXZlcmFsCi0gIHBhbmVscyBuZWVkIG1vcmUgdGhhbiBvbmUgcG93ZXIgc3VwcGx5IHdpdGggcGFuZWwtc3BlY2lmaWMgY29uc3RyYWludHMKLSAgZ292ZXJuaW5nIHRoZSBvcmRlciBhbmQgdGltaW5ncyBvZiB0aGUgcG93ZXIgc3VwcGxpZXMsIGluIG1hbnkgY2FzZXMgYSBzaW5nbGUKLSAgcG93ZXIgc3VwcGx5IGlzIHN1ZmZpY2llbnQsIGVpdGhlciBiZWNhdXNlIHRoZSBwYW5lbCBoYXMgYSBzaW5nbGUgcG93ZXIgcmFpbCwKLSAgb3IgYmVjYXVzZSBhbGwgaXRzIHBvd2VyIHJhaWxzIGNhbiBiZSBkcml2ZW4gYnkgdGhlIHNhbWUgc3VwcGx5LiBJbiB0aGF0IGNhc2UKLSAgdGhlIHBvd2VyLXN1cHBseSBwcm9wZXJ0eSBzcGVjaWZpZXMgdGhlIHN1cHBseSBwb3dlcmluZyB0aGUgcGFuZWwgYXMgYSBwaGFuZGxlCi0gIHRvIGEgcmVndWxhdG9yLgotCi1CYWNrbGlnaHQKLS0tLS0tLS0tLQotCi1Nb3N0IGRpc3BsYXkgcGFuZWxzIGluY2x1ZGUgYSBiYWNrbGlnaHQuIFNvbWUgb2YgdGhlbSBhbHNvIGluY2x1ZGUgYSBiYWNrbGlnaHQKLWNvbnRyb2xsZXIgZXhwb3NlZCB0aHJvdWdoIGEgY29udHJvbCBidXMgc3VjaCBhcyBJMkMgb3IgRFNJLiBPdGhlcnMgZXhwb3NlCi1iYWNrbGlnaHQgY29udHJvbCB0aHJvdWdoIEdQSU8sIFBXTSBvciBvdGhlciBzaWduYWxzIGNvbm5lY3RlZCB0byBhbiBleHRlcm5hbAotYmFja2xpZ2h0IGNvbnRyb2xsZXIuCi0KLS0gYmFja2xpZ2h0OiBGb3IgcGFuZWxzIHdob3NlIGJhY2tsaWdodCBpcyBjb250cm9sbGVkIGJ5IGFuIGV4dGVybmFsIGJhY2tsaWdodAotICBjb250cm9sbGVyLCB0aGlzIHByb3BlcnR5IGNvbnRhaW5zIGEgcGhhbmRsZSB0aGF0IHJlZmVyZW5jZXMgdGhlIGNvbnRyb2xsZXIuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9wYW5lbC1jb21tb24ueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3BhbmVsLWNvbW1vbi55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmOGQ4Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9wYW5lbC1jb21tb24ueWFtbApAQCAtMCwwICsxLDE0OSBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZGlzcGxheS9wYW5lbC9wYW5lbC1jb21tb24ueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogQ29tbW9uIFByb3BlcnRpZXMgZm9yIERpc3BsYXkgUGFuZWxzCisKK21haW50YWluZXJzOgorICAtIFRoaWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+CisgIC0gTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydCtyZW5lc2FzQGlkZWFzb25ib2FyZC5jb20+CisKK2Rlc2NyaXB0aW9uOiB8CisgIFRoaXMgZG9jdW1lbnQgZGVmaW5lcyBkZXZpY2UgdHJlZSBwcm9wZXJ0aWVzIGNvbW1vbiB0byBzZXZlcmFsIGNsYXNzZXMgb2YKKyAgZGlzcGxheSBwYW5lbHMuIEl0IGRvZXNuJ3QgY29uc3RpdHVlIGEgZGV2aWNlIHRyZWUgYmluZGluZyBzcGVjaWZpY2F0aW9uIGJ5CisgIGl0c2VsZiBidXQgaXMgbWVhbnQgdG8gYmUgcmVmZXJlbmNlZCBieSBkZXZpY2UgdHJlZSBiaW5kaW5ncy4KKworICBXaGVuIHJlZmVyZW5jZWQgZnJvbSBwYW5lbCBkZXZpY2UgdHJlZSBiaW5kaW5ncyB0aGUgcHJvcGVydGllcyBkZWZpbmVkIGluIHRoaXMKKyAgZG9jdW1lbnQgYXJlIGRlZmluZWQgYXMgZm9sbG93cy4gVGhlIHBhbmVsIGRldmljZSB0cmVlIGJpbmRpbmdzIGFyZQorICByZXNwb25zaWJsZSBmb3IgZGVmaW5pbmcgd2hldGhlciBlYWNoIHByb3BlcnR5IGlzIHJlcXVpcmVkIG9yIG9wdGlvbmFsLgorCitwcm9wZXJ0aWVzOgorICAjIERlc2NyaXB0aXZlIFByb3BlcnRpZXMKKyAgd2lkdGgtbW06CisgICAgZGVzY3JpcHRpb246CisgICAgICBTcGVjaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBwaHlzaWNhbCBhcmVhIHdoZXJlIGltYWdlcyBhcmUgZGlzcGxheWVkLiBUaGlzCisgICAgICBwcm9wZXJ0eSBpcyBleHByZXNzZWQgaW4gbWlsbGltZXRlcnMgYW5kIHJvdW5kZWQgdG8gdGhlIGNsb3Nlc3QgdW5pdC4KKworICBoZWlnaHQtbW06CisgICAgZGVzY3JpcHRpb246CisgICAgICBTcGVjaWZpZXMgdGhlIGhlaWdodCBvZiB0aGUgcGh5c2ljYWwgYXJlYSB3aGVyZSBpbWFnZXMgYXJlIGRpc3BsYXllZC4gVGhpcworICAgICAgcHJvcGVydHkgaXMgZXhwcmVzc2VkIGluIG1pbGxpbWV0ZXJzIGFuZCByb3VuZGVkIHRvIHRoZSBjbG9zZXN0IHVuaXQuCisKKyAgbGFiZWw6CisgICAgZGVzY3JpcHRpb246IHwKKyAgICAgIFRoZSBsYWJlbCBwcm9wZXJ0eSBzcGVjaWZpZXMgYSBzeW1ib2xpYyBuYW1lIGZvciB0aGUgcGFuZWwgYXMgYQorICAgICAgc3RyaW5nIHN1aXRhYmxlIGZvciB1c2UgYnkgaHVtYW5zLiBJdCB0eXBpY2FsbHkgY29udGFpbnMgYSBuYW1lIGluc2NyaWJlZAorICAgICAgb24gdGhlIHN5c3RlbSAoZS5nLiBhcyBhbiBhZmZpeGVkIGxhYmVsKSBvciBzcGVjaWZpZWQgaW4gdGhlIHN5c3RlbSdzCisgICAgICBkb2N1bWVudGF0aW9uIChlLmcuIGluIHRoZSB1c2VyJ3MgbWFudWFsKS4KKworICAgICAgSWYgbm8gc3VjaCBuYW1lIGV4aXN0cywgYW5kIHVubGVzcyB0aGUgcHJvcGVydHkgaXMgbWFuZGF0b3J5IGFjY29yZGluZyB0bworICAgICAgZGV2aWNlIHRyZWUgYmluZGluZ3MsIGl0IHNoYWxsIHJhdGhlciBiZSBvbWl0dGVkIHRoYW4gY29uc3RydWN0ZWQgb2YKKyAgICAgIG5vbi1kZXNjcmlwdGl2ZSBpbmZvcm1hdGlvbi4gRm9yIGluc3RhbmNlIGFuIExDRCBwYW5lbCBpbiBhIHN5c3RlbSB0aGF0CisgICAgICBjb250YWlucyBhIHNpbmdsZSBwYW5lbCBzaGFsbCBub3QgYmUgbGFiZWxsZWQgIkxDRCIgaWYgdGhhdCBuYW1lIGlzIG5vdAorICAgICAgaW5zY3JpYmVkIG9uIHRoZSBzeXN0ZW0gb3IgdXNlZCBpbiBhIGRlc2NyaXB0aXZlIGZhc2hpb24gaW4gc3lzdGVtCisgICAgICBkb2N1bWVudGF0aW9uLgorCisgIHJvdGF0aW9uOgorICAgIGRlc2NyaXB0aW9uOgorICAgICAgRGlzcGxheSByb3RhdGlvbiBpbiBkZWdyZWVzIGNvdW50ZXIgY2xvY2t3aXNlICgwLDkwLDE4MCwyNzApCisgICAgYWxsT2Y6CisgICAgICAtICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3VpbnQzMgorICAgICAgLSBlbnVtOiBbIDAsIDkwLCAxODAsIDI3MCBdCisKKyAgIyBEaXNwbGF5IFRpbWluZ3MKKyAgcGFuZWwtdGltaW5nOgorICAgIHR5cGU6IG9iamVjdAorICAgIGRlc2NyaXB0aW9uOgorICAgICAgTW9zdCBkaXNwbGF5IHBhbmVscyBhcmUgcmVzdHJpY3RlZCB0byBhIHNpbmdsZSByZXNvbHV0aW9uIGFuZAorICAgICAgcmVxdWlyZSBzcGVjaWZpYyBkaXNwbGF5IHRpbWluZ3MuIFRoZSBwYW5lbC10aW1pbmcgc3Vibm9kZSBleHByZXNzZXMgdGhvc2UKKyAgICAgIHRpbWluZ3MgYXMgc3BlY2lmaWVkIGluIHRoZSB0aW1pbmcgc3Vibm9kZSBzZWN0aW9uIG9mIHRoZSBkaXNwbGF5IHRpbWluZworICAgICAgYmluZGluZ3MgZGVmaW5lZCBpbgorICAgICAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvZGlzcGxheS10aW1pbmcudHh0LgorCisgICMgQ29ubmVjdGl2aXR5CisgIHBvcnQ6CisgICAgdHlwZTogb2JqZWN0CisKKyAgcG9ydHM6CisgICAgdHlwZTogb2JqZWN0CisgICAgZGVzY3JpcHRpb246CisgICAgICBQYW5lbHMgcmVjZWl2ZSB2aWRlbyBkYXRhIHRocm91Z2ggb25lIG9yIG11bHRpcGxlIGNvbm5lY3Rpb25zLiBXaGlsZQorICAgICAgdGhlIG5hdHVyZSBvZiB0aG9zZSBjb25uZWN0aW9ucyBpcyBzcGVjaWZpYyB0byB0aGUgcGFuZWwgdHlwZSwgdGhlCisgICAgICBjb25uZWN0aXZpdHkgaXMgZXhwcmVzc2VkIGluIGEgc3RhbmRhcmQgZmFzaGlvbiB1c2luZyBwb3J0cyBhcyBzcGVjaWZpZWQKKyAgICAgIGluIHRoZSBkZXZpY2UgZ3JhcGggYmluZGluZ3MgZGVmaW5lZCBpbgorICAgICAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dyYXBoLnR4dC4KKworICBkZGMtaTJjLWJ1czoKKyAgICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9waGFuZGxlCisgICAgZGVzY3JpcHRpb246CisgICAgICBTb21lIHBhbmVscyBleHBvc2UgRURJRCBpbmZvcm1hdGlvbiB0aHJvdWdoIGFuIEkyQy1jb21wYXRpYmxlCisgICAgICBidXMgc3VjaCBhcyBEREMyIG9yIEUtRERDLiBGb3Igc3VjaCBwYW5lbHMgdGhlIGRkYy1pMmMtYnVzIGNvbnRhaW5zIGEKKyAgICAgIHBoYW5kbGUgdG8gdGhlIHN5c3RlbSBJMkMgY29udHJvbGxlciBjb25uZWN0ZWQgdG8gdGhhdCBidXMuCisKKyAgbm8taHBkOgorICAgIHR5cGU6IGJvb2xlYW4KKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgIFRoaXMgcGFuZWwgaXMgc3VwcG9zZWQgdG8gY29tbXVuaWNhdGUgdGhhdCBpdCdzIHJlYWR5IHZpYSBIUEQKKyAgICAgIChob3QgcGx1ZyBkZXRlY3QpIHNpZ25hbCwgYnV0IHRoZSBzaWduYWwgaXNuJ3QgaG9va2VkIHVwIHNvIHdlIHNob3VsZAorICAgICAgaGFyZGNvZGUgdGhlIG1heCBkZWxheSBmcm9tIHRoZSBwYW5lbCBzcGVjIHdoZW4gcG93ZXJpbmcgdXAgdGhlIHBhbmVsLgorCisgICMgQ29udHJvbCBJL09zCisKKyAgIyBNYW55IGRpc3BsYXkgcGFuZWxzIGNhbiBiZSBjb250cm9sbGVkIHRocm91Z2ggcGlucyBkcml2ZW4gYnkgR1BJT3MuIFRoZSBuYXR1cmUKKyAgIyBhbmQgdGltaW5nIG9mIHRob3NlIGNvbnRyb2wgc2lnbmFscyBhcmUgZGV2aWNlLXNwZWNpZmljIGFuZCBsZWZ0IGZvciBwYW5lbAorICAjIGRldmljZSB0cmVlIGJpbmRpbmdzIHRvIHNwZWNpZnkuIFRoZSBmb2xsb3dpbmcgR1BJTyBzcGVjaWZpZXJzIGNhbiBob3dldmVyIGJlCisgICMgdXNlZCBmb3IgcGFuZWxzIHRoYXQgaW1wbGVtZW50IGNvbXBhdGlibGUgY29udHJvbCBzaWduYWxzLgorCisgIGVuYWJsZS1ncGlvczoKKyAgICBtYXhJdGVtczogMQorICAgIGRlc2NyaXB0aW9uOiB8CisgICAgICBTcGVjaWZpZXIgZm9yIGEgR1BJTyBjb25uZWN0ZWQgdG8gdGhlIHBhbmVsIGVuYWJsZSBjb250cm9sIHNpZ25hbC4gVGhlCisgICAgICBlbmFibGUgc2lnbmFsIGlzIGFjdGl2ZSBoaWdoIGFuZCBlbmFibGVzIG9wZXJhdGlvbiBvZiB0aGUgcGFuZWwuIFRoaXMKKyAgICAgIHByb3BlcnR5IGNhbiBhbHNvIGJlIHVzZWQgZm9yIHBhbmVscyBpbXBsZW1lbnRpbmcgYW4gYWN0aXZlIGxvdyBwb3dlciBkb3duCisgICAgICBzaWduYWwsIHdoaWNoIGlzIGEgbmVnYXRlZCB2ZXJzaW9uIG9mIHRoZSBlbmFibGUgc2lnbmFsLiBBY3RpdmUgbG93IGVuYWJsZQorICAgICAgc2lnbmFscyAob3IgYWN0aXZlIGhpZ2ggcG93ZXIgZG93biBzaWduYWxzKSBjYW4gYmUgc3VwcG9ydGVkIGJ5IGludmVydGluZworICAgICAgdGhlIEdQSU8gc3BlY2lmaWVyIHBvbGFyaXR5IGZsYWcuCisKKyAgICAgIE5vdGUgdGhhdCB0aGUgZW5hYmxlIHNpZ25hbCBjb250cm9sIHBhbmVsIG9wZXJhdGlvbiBvbmx5IGFuZCBtdXN0IG5vdCBiZQorICAgICAgY29uZnVzZWQgd2l0aCBhIGJhY2tsaWdodCBlbmFibGUgc2lnbmFsLgorCisgIHJlc2V0LWdwaW9zOgorICAgIG1heEl0ZW1zOiAxCisgICAgZGVzY3JpcHRpb246CisgICAgICBTcGVjaWZpZXIgZm9yIGEgR1BJTyBjb25uZWN0ZWQgdG8gdGhlIHBhbmVsIHJlc2V0IGNvbnRyb2wgc2lnbmFsLgorICAgICAgVGhlIHJlc2V0IHNpZ25hbCBpcyBhY3RpdmUgbG93IGFuZCByZXNldHMgdGhlIHBhbmVsIGludGVybmFsIGxvZ2ljCisgICAgICB3aGlsZSBhY3RpdmUuIEFjdGl2ZSBoaWdoIHJlc2V0IHNpZ25hbHMgY2FuIGJlIHN1cHBvcnRlZCBieSBpbnZlcnRpbmcgdGhlCisgICAgICBHUElPIHNwZWNpZmllciBwb2xhcml0eSBmbGFnLgorCisgICMgUG93ZXIKKyAgcG93ZXItc3VwcGx5OgorICAgIGRlc2NyaXB0aW9uOgorICAgICAgRGlzcGxheSBwYW5lbHMgcmVxdWlyZSBwb3dlciB0byBiZSBzdXBwbGllZC4gV2hpbGUgc2V2ZXJhbCBwYW5lbHMgbmVlZAorICAgICAgbW9yZSB0aGFuIG9uZSBwb3dlciBzdXBwbHkgd2l0aCBwYW5lbC1zcGVjaWZpYyBjb25zdHJhaW50cyBnb3Zlcm5pbmcgdGhlCisgICAgICBvcmRlciBhbmQgdGltaW5ncyBvZiB0aGUgcG93ZXIgc3VwcGxpZXMsIGluIG1hbnkgY2FzZXMgYSBzaW5nbGUgcG93ZXIKKyAgICAgIHN1cHBseSBpcyBzdWZmaWNpZW50LCBlaXRoZXIgYmVjYXVzZSB0aGUgcGFuZWwgaGFzIGEgc2luZ2xlIHBvd2VyIHJhaWwsIG9yCisgICAgICBiZWNhdXNlIGFsbCBpdHMgcG93ZXIgcmFpbHMgY2FuIGJlIGRyaXZlbiBieSB0aGUgc2FtZSBzdXBwbHkuIEluIHRoYXQgY2FzZQorICAgICAgdGhlIHBvd2VyLXN1cHBseSBwcm9wZXJ0eSBzcGVjaWZpZXMgdGhlIHN1cHBseSBwb3dlcmluZyB0aGUgcGFuZWwgYXMgYQorICAgICAgcGhhbmRsZSB0byBhIHJlZ3VsYXRvci4KKworICAjIEJhY2tsaWdodAorCisgICMgTW9zdCBkaXNwbGF5IHBhbmVscyBpbmNsdWRlIGEgYmFja2xpZ2h0LiBTb21lIG9mIHRoZW0gYWxzbyBpbmNsdWRlIGEgYmFja2xpZ2h0CisgICMgY29udHJvbGxlciBleHBvc2VkIHRocm91Z2ggYSBjb250cm9sIGJ1cyBzdWNoIGFzIEkyQyBvciBEU0kuIE90aGVycyBleHBvc2UKKyAgIyBiYWNrbGlnaHQgY29udHJvbCB0aHJvdWdoIEdQSU8sIFBXTSBvciBvdGhlciBzaWduYWxzIGNvbm5lY3RlZCB0byBhbiBleHRlcm5hbAorICAjIGJhY2tsaWdodCBjb250cm9sbGVyLgorCisgIGJhY2tsaWdodDoKKyAgICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9waGFuZGxlCisgICAgZGVzY3JpcHRpb246CisgICAgICBGb3IgcGFuZWxzIHdob3NlIGJhY2tsaWdodCBpcyBjb250cm9sbGVkIGJ5IGFuIGV4dGVybmFsIGJhY2tsaWdodAorICAgICAgY29udHJvbGxlciwgdGhpcyBwcm9wZXJ0eSBjb250YWlucyBhIHBoYW5kbGUgdGhhdCByZWZlcmVuY2VzIHRoZQorICAgICAgY29udHJvbGxlci4KKworZGVwZW5kZW5jaWVzOgorICB3aWR0aC1tbTogWyBoZWlnaHQtbW0gXQorICBoZWlnaHQtbW06IFsgd2lkdGgtbW0gXQorCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3BhbmVsLWx2ZHMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcGFuZWwtbHZkcy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1MDg1MGEuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcGFuZWwtbHZkcy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotTFZEUyBEaXNwbGF5IFBhbmVsCi09PT09PT09PT09PT09PT09PT0KLQotTFZEUyBpcyBhIHBoeXNpY2FsIGxheWVyIHNwZWNpZmljYXRpb24gZGVmaW5lZCBpbiBBTlNJL1RJQS9FSUEtNjQ0LUEuIE11bHRpcGxlCi1pbmNvbXBhdGlibGUgZGF0YSBsaW5rIGxheWVycyBoYXZlIGJlZW4gdXNlZCBvdmVyIHRpbWUgdG8gdHJhbnNtaXQgaW1hZ2UgZGF0YQotdG8gTFZEUyBwYW5lbHMuIFRoaXMgYmluZGluZ3Mgc3VwcG9ydHMgZGlzcGxheSBwYW5lbHMgY29tcGF0aWJsZSB3aXRoIHRoZQotZm9sbG93aW5nIHNwZWNpZmljYXRpb25zLgotCi1bSkVJREFdICJEaWdpdGFsIEludGVyZmFjZSBTdGFuZGFyZHMgZm9yIE1vbml0b3IiLCBKRUlEQS01OS0xOTk5LCBGZWJydWFyeQotMTk5OSAoVmVyc2lvbiAxLjApLCBKYXBhbiBFbGVjdHJvbmljIEluZHVzdHJ5IERldmVsb3BtZW50IEFzc29jaWF0aW9uIChKRUlEQSkKLVtMREldICJPcGVuIExWRFMgRGlzcGxheSBJbnRlcmZhY2UiLCBNYXkgMTk5OSAoVmVyc2lvbiAwLjk1KSwgTmF0aW9uYWwKLVNlbWljb25kdWN0b3IKLVtWRVNBXSAiVkVTQSBOb3RlYm9vayBQYW5lbCBTdGFuZGFyZCIsIE9jdG9iZXIgMjAwNyAoVmVyc2lvbiAxLjApLCBWaWRlbwotRWxlY3Ryb25pY3MgU3RhbmRhcmRzIEFzc29jaWF0aW9uIChWRVNBKQotCi1EZXZpY2UgY29tcGF0aWJsZSB3aXRoIHRob3NlIHNwZWNpZmljYXRpb25zIGhhdmUgYmVlbiBtYXJrZXRlZCB1bmRlciB0aGUKLUZQRC1MaW5rIGFuZCBGbGF0TGluayBicmFuZHMuCi0KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLQotLSBjb21wYXRpYmxlOiBTaGFsbCBjb250YWluICJwYW5lbC1sdmRzIiBpbiBhZGRpdGlvbiB0byBhIG1hbmRhdG9yeQotICBwYW5lbC1zcGVjaWZpYyBjb21wYXRpYmxlIHN0cmluZyBkZWZpbmVkIGluIGluZGl2aWR1YWwgcGFuZWwgYmluZGluZ3MuIFRoZQotICAicGFuZWwtbHZkcyIgdmFsdWUgc2hhbGwgbmV2ZXIgYmUgdXNlZCBvbiBpdHMgb3duLgotLSB3aWR0aC1tbTogU2VlIHBhbmVsLWNvbW1vbi50eHQuCi0tIGhlaWdodC1tbTogU2VlIHBhbmVsLWNvbW1vbi50eHQuCi0tIGRhdGEtbWFwcGluZzogVGhlIGNvbG9yIHNpZ25hbHMgbWFwcGluZyBvcmRlciwgImplaWRhLTE4IiwgImplaWRhLTI0IgotICBvciAidmVzYS0yNCIuCi0KLU9wdGlvbmFsIHByb3BlcnRpZXM6Ci0KLS0gbGFiZWw6IFNlZSBwYW5lbC1jb21tb24udHh0LgotLSBncGlvczogU2VlIHBhbmVsLWNvbW1vbi50eHQuCi0tIGJhY2tsaWdodDogU2VlIHBhbmVsLWNvbW1vbi50eHQuCi0tIHBvd2VyLXN1cHBseTogU2VlIHBhbmVsLWNvbW1vbi50eHQuCi0tIGRhdGEtbWlycm9yOiBJZiBzZXQsIHJldmVyc2UgdGhlIGJpdCBvcmRlciBkZXNjcmliZWQgaW4gdGhlIGRhdGEgbWFwcGluZ3MKLSAgYmVsb3cgb24gYWxsIGRhdGEgbGFuZXMsIHRyYW5zbWl0dGluZyBiaXRzIGZvciBzbG90cyA2IHRvIDAgaW5zdGVhZCBvZgotICAwIHRvIDYuCi0KLVJlcXVpcmVkIG5vZGVzOgotCi0tIHBhbmVsLXRpbWluZzogU2VlIHBhbmVsLWNvbW1vbi50eHQuCi0tIHBvcnRzOiBTZWUgcGFuZWwtY29tbW9uLnR4dC4gVGhlc2UgYmluZGluZ3MgcmVxdWlyZSBhIHNpbmdsZSBwb3J0IHN1Ym5vZGUKLSAgY29ycmVzcG9uZGluZyB0byB0aGUgcGFuZWwgTFZEUyBpbnB1dC4KLQotCi1MVkRTIGRhdGEgbWFwcGluZ3MgYXJlIGRlZmluZWQgYXMgZm9sbG93cy4KLQotLSAiamVpZGEtMTgiIC0gMTgtYml0IGRhdGEgbWFwcGluZyBjb21wYXRpYmxlIHdpdGggdGhlIFtKRUlEQV0sIFtMREldIGFuZAotICBbVkVTQV0gc3BlY2lmaWNhdGlvbnMuIERhdGEgYXJlIHRyYW5zZmVycmVkIGFzIGZvbGxvd3Mgb24gMyBMVkRTIGxhbmVzLgotCi1TbG90CSAgICAwICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgIDQgICAgICAgNSAgICAgICA2Ci0JX19fX19fX19fX19fX19fXyAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fX19fX19fX19fXwotQ2xvY2sJICAgICAgICAgICAgICAgIFxfX19fX19fX19fX19fX19fX19fX19fXy8KLQkgIF9fX19fXyAgX19fX19fICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18gIF9fX19fXwotREFUQTAJPjxfX0cwX18+PF9fUjVfXz48X19SNF9fPjxfX1IzX18+PF9fUjJfXz48X19SMV9fPjxfX1IwX18+PAotREFUQTEJPjxfX0IxX18+PF9fQjBfXz48X19HNV9fPjxfX0c0X18+PF9fRzNfXz48X19HMl9fPjxfX0cxX18+PAotREFUQTIJPjxfQ1RMMl8+PF9DVEwxXz48X0NUTDBfPjxfX0I1X18+PF9fQjRfXz48X19CM19fPjxfX0IyX18+PAotCi0tICJqZWlkYS0yNCIgLSAyNC1iaXQgZGF0YSBtYXBwaW5nIGNvbXBhdGlibGUgd2l0aCB0aGUgW0RTSU1dIGFuZCBbTERJXQotICBzcGVjaWZpY2F0aW9ucy4gRGF0YSBhcmUgdHJhbnNmZXJyZWQgYXMgZm9sbG93cyBvbiA0IExWRFMgbGFuZXMuCi0KLVNsb3QJICAgIDAgICAgICAgMSAgICAgICAyICAgICAgIDMgICAgICAgNCAgICAgICA1ICAgICAgIDYKLQlfX19fX19fX19fX19fX19fICAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX19fCi1DbG9jawkgICAgICAgICAgICAgICAgXF9fX19fX19fX19fX19fX19fX19fX19fLwotCSAgX19fX19fICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18gIF9fX19fXyAgX19fX19fCi1EQVRBMAk+PF9fRzJfXz48X19SN19fPjxfX1I2X18+PF9fUjVfXz48X19SNF9fPjxfX1IzX18+PF9fUjJfXz48Ci1EQVRBMQk+PF9fQjNfXz48X19CMl9fPjxfX0c3X18+PF9fRzZfXz48X19HNV9fPjxfX0c0X18+PF9fRzNfXz48Ci1EQVRBMgk+PF9DVEwyXz48X0NUTDFfPjxfQ1RMMF8+PF9fQjdfXz48X19CNl9fPjxfX0I1X18+PF9fQjRfXz48Ci1EQVRBMwk+PF9DVEwzXz48X19CMV9fPjxfX0IwX18+PF9fRzFfXz48X19HMF9fPjxfX1IxX18+PF9fUjBfXz48Ci0KLS0gInZlc2EtMjQiIC0gMjQtYml0IGRhdGEgbWFwcGluZyBjb21wYXRpYmxlIHdpdGggdGhlIFtWRVNBXSBzcGVjaWZpY2F0aW9uLgotICBEYXRhIGFyZSB0cmFuc2ZlcnJlZCBhcyBmb2xsb3dzIG9uIDQgTFZEUyBsYW5lcy4KLQotU2xvdAkgICAgMCAgICAgICAxICAgICAgIDIgICAgICAgMyAgICAgICA0ICAgICAgIDUgICAgICAgNgotCV9fX19fX19fX19fX19fX18gICAgICAgICAgICAgICAgICAgICAgICAgX19fX19fX19fX19fX19fX18KLUNsb2NrCSAgICAgICAgICAgICAgICBcX19fX19fX19fX19fX19fX19fX19fX18vCi0JICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18gIF9fX19fXyAgX19fX19fICBfX19fX18KLURBVEEwCT48X19HMF9fPjxfX1I1X18+PF9fUjRfXz48X19SM19fPjxfX1IyX18+PF9fUjFfXz48X19SMF9fPjwKLURBVEExCT48X19CMV9fPjxfX0IwX18+PF9fRzVfXz48X19HNF9fPjxfX0czX18+PF9fRzJfXz48X19HMV9fPjwKLURBVEEyCT48X0NUTDJfPjxfQ1RMMV8+PF9DVEwwXz48X19CNV9fPjxfX0I0X18+PF9fQjNfXz48X19CMl9fPjwKLURBVEEzCT48X0NUTDNfPjxfX0I3X18+PF9fQjZfXz48X19HN19fPjxfX0c2X18+PF9fUjdfXz48X19SNl9fPjwKLQotQ29udHJvbCBzaWduYWxzIGFyZSBtYXBwZWQgYXMgZm9sbG93cy4KLQotQ1RMMDogSFN5bmMKLUNUTDE6IFZTeW5jCi1DVEwyOiBEYXRhIEVuYWJsZQotQ1RMMzogMAotCi0KLUV4YW1wbGUKLS0tLS0tLS0KLQotcGFuZWwgewotCWNvbXBhdGlibGUgPSAibWl0c3ViaXNoaSxhYTEyMXRkMDEiLCAicGFuZWwtbHZkcyI7Ci0KLQl3aWR0aC1tbSA9IDwyNjE+OwotCWhlaWdodC1tbSA9IDwxNjM+OwotCi0JZGF0YS1tYXBwaW5nID0gImplaWRhLTI0IjsKLQotCXBhbmVsLXRpbWluZyB7Ci0JCS8qIDEyODB4ODAwIEA2MEh6ICovCi0JCWNsb2NrLWZyZXF1ZW5jeSA9IDw3MTAwMDAwMD47Ci0JCWhhY3RpdmUgPSA8MTI4MD47Ci0JCXZhY3RpdmUgPSA8ODAwPjsKLQkJaHN5bmMtbGVuID0gPDcwPjsKLQkJaGZyb250LXBvcmNoID0gPDIwPjsKLQkJaGJhY2stcG9yY2ggPSA8NzA+OwotCQl2c3luYy1sZW4gPSA8NT47Ci0JCXZmcm9udC1wb3JjaCA9IDwzPjsKLQkJdmJhY2stcG9yY2ggPSA8MTU+OwotCX07Ci0KLQlwb3J0IHsKLQkJcGFuZWxfaW46IGVuZHBvaW50IHsKLQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmbHZkc19lbmNvZGVyPjsKLQkJfTsKLQl9OwotfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3BhbmVsLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3BhbmVsLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTJlNjg2Ny4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9wYW5lbC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLUNvbW1vbiBkaXNwbGF5IHByb3BlcnRpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLSByb3RhdGlvbjoJRGlzcGxheSByb3RhdGlvbiBpbiBkZWdyZWVzIGNvdW50ZXIgY2xvY2t3aXNlICgwLDkwLDE4MCwyNzApCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9wZGEsOTEtMDAxNTYtYTAudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcGRhLDkxLTAwMTU2LWEwLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTYzOWZiMS4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9wZGEsOTEtMDAxNTYtYTAudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotUERBIDkxLTAwMTU2LUEwIDUuMCIgV1ZHQSBURlQgTENEIHBhbmVsCi0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIGNvbXBhdGlibGU6IHNob3VsZCBiZSAicGRhLDkxLTAwMTU2LWEwIgotLSBwb3dlci1zdXBwbHk6IHRoaXMgcGFuZWwgcmVxdWlyZXMgYSBzaW5nbGUgcG93ZXIgc3VwcGx5LiBBIHBoYW5kbGUgdG8gYQotcmVndWxhdG9yIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBoZXJlLiBDb21wYXRpYmxlIHdpdGggcGFuZWwtY29tbW9uIGJpbmRpbmcgd2hpY2gKLWlzIHNwZWNpZmllZCBpbiB0aGUgcGFuZWwtY29tbW9uLnR4dCBpbiB0aGlzIGRpcmVjdG9yeS4KLS0gYmFja2xpZ2h0OiB0aGlzIHBhbmVsJ3MgYmFja2xpZ2h0IGlzIGNvbnRyb2xsZWQgYnkgYW4gZXh0ZXJuYWwgYmFja2xpZ2h0Ci1jb250cm9sbGVyLiBBIHBoYW5kbGUgdG8gdGhpcyBjb250cm9sbGVyIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBoZXJlLgotQ29tcGF0aWJsZSB3aXRoIHBhbmVsLWNvbW1vbiBiaW5kaW5nIHdoaWNoIGlzIHNwZWNpZmllZCBpbiB0aGUgcGFuZWwtY29tbW9uLnR4dAotaW4gdGhpcyBkaXJlY3RvcnkuCi0KLVRoaXMgYmluZGluZyBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHNpbXBsZS1wYW5lbCBiaW5kaW5nLCB3aGljaCBpcyBzcGVjaWZpZWQKLWluIHNpbXBsZS1wYW5lbC50eHQgaW4gdGhpcyBkaXJlY3RvcnkuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9wZGEsOTEtMDAxNTYtYTAueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3BkYSw5MS0wMDE1Ni1hMC55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjZDM2MjNiCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcGRhLDkxLTAwMTU2LWEwLnlhbWwKQEAgLTAsMCArMSwzMSBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZGlzcGxheS9wYW5lbC9wZGEsOTEtMDAxNTYtYTAueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogUERBIDkxLTAwMTU2LUEwIDUuMCIgV1ZHQSBURlQgTENEIHBhbmVsCisKK21haW50YWluZXJzOgorICAtIENyaXN0aWFuIEJpcnNhbiA8Y3Jpc3RpYW4uYmlyc2FuQG1pY3JvY2hpcC5jb20+CisgIC0gVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGdtYWlsLmNvbT4KKworYWxsT2Y6CisgIC0gJHJlZjogcGFuZWwtY29tbW9uLnlhbWwjCisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgY29uc3Q6IHBkYSw5MS0wMDE1Ni1hMAorCisgIHBvd2VyLXN1cHBseTogdHJ1ZQorICBiYWNrbGlnaHQ6IHRydWUKKyAgcG9ydDogdHJ1ZQorCithZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHBvd2VyLXN1cHBseQorICAtIGJhY2tsaWdodAorCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3Jhc3BiZXJyeXBpLDdpbmNoLXRvdWNoc2NyZWVuLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3Jhc3BiZXJyeXBpLDdpbmNoLXRvdWNoc2NyZWVuLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTllMTljMC4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9yYXNwYmVycnlwaSw3aW5jaC10b3VjaHNjcmVlbi50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1UaGlzIGJpbmRpbmcgY292ZXJzIHRoZSBvZmZpY2lhbCA3IiAoODAweDQ4MCkgUmFzcGJlcnJ5IFBpIHRvdWNoc2NyZWVuCi1wYW5lbC4KLQotVGhpcyBEU0kgcGFuZWwgY29udGFpbnM6Ci0KLS0gVEMzNTg3NjIgRFNJLT5EUEkgYnJpZGdlCi0tIEF0bWVsIG1pY3JvY29udHJvbGxlciBvbiBJMkMgZm9yIHBvd2VyIHNlcXVlbmNpbmcgdGhlIERTSSBicmlkZ2UgYW5kCi0gIGNvbnRyb2xsaW5nIGJhY2tsaWdodAotLSBUb3VjaHNjcmVlbiBjb250cm9sbGVyIG9uIEkyQyBmb3IgdG91Y2ggaW5wdXQKLQotYW5kIHRoaXMgYmluZGluZyBjb3ZlcnMgdGhlIERTSSBkaXNwbGF5IHBhcnRzIGJ1dCBub3QgaXRzIHRvdWNoIGlucHV0LgotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotLSBjb21wYXRpYmxlOglNdXN0IGJlICJyYXNwYmVycnlwaSw3aW5jaC10b3VjaHNjcmVlbi1wYW5lbCIKLS0gcmVnOgkJTXVzdCBiZSAiNDUiCi0tIHBvcnQ6CQlTZWUgcGFuZWwtY29tbW9uLnR4dAotCi1FeGFtcGxlOgotCi1kc2kxOiBkc2lAN2U3MDAwMDAgewotCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCSNzaXplLWNlbGxzID0gPDA+OwotCTwuLi4+Ci0KLQlwb3J0IHsKLQkJZHNpX291dF9wb3J0OiBlbmRwb2ludCB7Ci0JCQlyZW1vdGUtZW5kcG9pbnQgPSA8JnBhbmVsX2RzaV9wb3J0PjsKLQkJfTsKLQl9OwotfTsKLQotaTJjX2RzaTogaTJjIHsKLQljb21wYXRpYmxlID0gImkyYy1ncGlvIjsKLQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkjc2l6ZS1jZWxscyA9IDwwPjsKLQlncGlvcyA9IDwmZ3BpbyAyOCAwCi0JCSAmZ3BpbyAyOSAwPjsKLQotCWxjZEA0NSB7Ci0JCWNvbXBhdGlibGUgPSAicmFzcGJlcnJ5cGksN2luY2gtdG91Y2hzY3JlZW4tcGFuZWwiOwotCQlyZWcgPSA8MHg0NT47Ci0KLQkJcG9ydCB7Ci0JCQlwYW5lbF9kc2lfcG9ydDogZW5kcG9pbnQgewotCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmZHNpX291dF9wb3J0PjsKLQkJCX07Ci0JCX07Ci0JfTsKLX07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9yYXNwYmVycnlwaSw3aW5jaC10b3VjaHNjcmVlbi55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcmFzcGJlcnJ5cGksN2luY2gtdG91Y2hzY3JlZW4ueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmEwODNmCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcmFzcGJlcnJ5cGksN2luY2gtdG91Y2hzY3JlZW4ueWFtbApAQCAtMCwwICsxLDcxIEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9kaXNwbGF5L3BhbmVsL3Jhc3BiZXJyeXBpLDdpbmNoLXRvdWNoc2NyZWVuLnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IFRoZSBvZmZpY2lhbCA3IiAoODAweDQ4MCkgUmFzcGJlcnJ5IFBpIHRvdWNoc2NyZWVuCisKK21haW50YWluZXJzOgorICAtIEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+CisgIC0gVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGdtYWlsLmNvbT4KKworZGVzY3JpcHRpb246IHwrCisgIFRoaXMgRFNJIHBhbmVsIGNvbnRhaW5zOgorCisgIC0gVEMzNTg3NjIgRFNJLT5EUEkgYnJpZGdlCisgIC0gQXRtZWwgbWljcm9jb250cm9sbGVyIG9uIEkyQyBmb3IgcG93ZXIgc2VxdWVuY2luZyB0aGUgRFNJIGJyaWRnZSBhbmQKKyAgICBjb250cm9sbGluZyBiYWNrbGlnaHQKKyAgLSBUb3VjaHNjcmVlbiBjb250cm9sbGVyIG9uIEkyQyBmb3IgdG91Y2ggaW5wdXQKKworICBhbmQgdGhpcyBiaW5kaW5nIGNvdmVycyB0aGUgRFNJIGRpc3BsYXkgcGFydHMgYnV0IG5vdCBpdHMgdG91Y2ggaW5wdXQuCisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgY29uc3Q6IHJhc3BiZXJyeXBpLDdpbmNoLXRvdWNoc2NyZWVuLXBhbmVsCisKKyAgcmVnOgorICAgIGNvbnN0OiAweDQ1CisKKyAgcG9ydDogdHJ1ZQorCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisgIC0gcmVnCisgIC0gcG9ydAorCithZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKworZXhhbXBsZXM6CisgIC0gfCsKKyAgICBkc2kxOiBkc2kgeworICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47CisgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKKworICAgICAgcG9ydCB7CisgICAgICAgIGRzaV9vdXRfcG9ydDogZW5kcG9pbnQgeworICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmcGFuZWxfZHNpX3BvcnQ+OworICAgICAgICB9OworICAgICAgfTsKKyAgICB9OworCisgICAgaTJjX2RzaTogaTJjIHsKKyAgICAgIGNvbXBhdGlibGUgPSAiaTJjLWdwaW8iOworICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47CisgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKKyAgICAgIHNjbC1ncGlvcyA9IDwmZ3BpbyAyOCAwPjsKKyAgICAgIHNkYS1ncGlvcyA9IDwmZ3BpbyAyOSAwPjsKKworICAgICAgbGNkQDQ1IHsKKyAgICAgICAgY29tcGF0aWJsZSA9ICJyYXNwYmVycnlwaSw3aW5jaC10b3VjaHNjcmVlbi1wYW5lbCI7CisgICAgICAgIHJlZyA9IDwweDQ1PjsKKworICAgICAgICBwb3J0IHsKKyAgICAgICAgICBwYW5lbF9kc2lfcG9ydDogZW5kcG9pbnQgeworICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZkc2lfb3V0X3BvcnQ+OworICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICB9OworICAgIH07CisKKy4uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcmF5ZGl1bSxybTY3MTkxLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3JheWRpdW0scm02NzE5MS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA0MjQ2OQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3JheWRpdW0scm02NzE5MS50eHQKQEAgLTAsMCArMSw0MSBAQAorUmF5ZGl1bSBSTTY3MTcxIE9MRUQgTENEIHBhbmVsIHdpdGggTUlQSS1EU0kgcHJvdG9jb2wKKworUmVxdWlyZWQgcHJvcGVydGllczoKKy0gY29tcGF0aWJsZTogCQkicmF5ZGl1bSxybTY3MTkxIgorLSByZWc6CQkJdmlydHVhbCBjaGFubmVsIGZvciBNSVBJLURTSSBwcm90b2NvbAorCQkJbXVzdCBiZSA8MD4KKy0gZHNpLWxhbmVzOgkJbnVtYmVyIG9mIERTSSBsYW5lcyB0byBiZSB1c2VkCisJCQltdXN0IGJlIDwzPiBvciA8ND4KKy0gcG9ydDogCQlpbnB1dCBwb3J0IG5vZGUgd2l0aCBlbmRwb2ludCBkZWZpbml0aW9uIGFzCisJCQlkZWZpbmVkIGluIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncmFwaC50eHQ7CisJCQl0aGUgaW5wdXQgcG9ydCBzaG91bGQgYmUgY29ubmVjdGVkIHRvIGEgTUlQSS1EU0kgZGV2aWNlCisJCQlkcml2ZXIKKworT3B0aW9uYWwgcHJvcGVydGllczoKKy0gcmVzZXQtZ3Bpb3M6CQlhIEdQSU8gc3BlYyBmb3IgdGhlIFJTVF9CIEdQSU8gcGluCistIHYzcDMtc3VwcGx5OgkJcGhhbmRsZSB0byAzLjNWIHJlZ3VsYXRvciB0aGF0IHBvd2VycyB0aGUgVkREXzNWMyBwaW4KKy0gdjFwOC1zdXBwbHk6CQlwaGFuZGxlIHRvIDEuOFYgcmVndWxhdG9yIHRoYXQgcG93ZXJzIHRoZSBWRERfMVY4IHBpbgorLSB3aWR0aC1tbToJCXNlZSBwYW5lbC1jb21tb24udHh0CistIGhlaWdodC1tbToJCXNlZSBwYW5lbC1jb21tb24udHh0CistIHZpZGVvLW1vZGU6CQkwIC0gYnVyc3QtbW9kZQorCQkJMSAtIG5vbi1idXJzdCB3aXRoIHN5bmMgZXZlbnQKKwkJCTIgLSBub24tYnVyc3Qgd2l0aCBzeW5jIHB1bHNlCisKK0V4YW1wbGU6CisKKwlwYW5lbEAwIHsKKwkJY29tcGF0aWJsZSA9ICJyYXlkaXVtLHJtNjcxOTEiOworCQlyZWcgPSA8MD47CisJCXBpbmN0cmwtMCA9IDwmcGluY3RybF9taXBpX2RzaV8wXzFfZW4+OworCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCQlyZXNldC1ncGlvcyA9IDwmZ3BpbzEgNyBHUElPX0FDVElWRV9MT1c+OworCQlkc2ktbGFuZXMgPSA8ND47CisJCXdpZHRoLW1tID0gPDY4PjsKKwkJaGVpZ2h0LW1tID0gPDEyMT47CisKKwkJcG9ydCB7CisJCQlwYW5lbF9pbjogZW5kcG9pbnQgeworCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmbWlwaV9vdXQ+OworCQkJfTsKKwkJfTsKKwl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcm9ja3RlY2gsamgwNTduMDA5MDAudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcm9ja3RlY2gsamgwNTduMDA5MDAudHh0CmluZGV4IDFiNTc2MzIuLmEzNzJjNWQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3JvY2t0ZWNoLGpoMDU3bjAwOTAwLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9yb2NrdGVjaCxqaDA1N24wMDkwMC50eHQKQEAgLTUsNiArNSw5IEBACiAtIHJlZzogRFNJIHZpcnR1YWwgY2hhbm5lbCBvZiB0aGUgcGVyaXBoZXJhbAogLSByZXNldC1ncGlvczogcGFuZWwgcmVzZXQgZ3BpbwogLSBiYWNrbGlnaHQ6IHBoYW5kbGUgb2YgdGhlIGJhY2tsaWdodCBkZXZpY2UgYXR0YWNoZWQgdG8gdGhlIHBhbmVsCistIHZjYy1zdXBwbHk6IHBoYW5kbGUgb2YgdGhlIHJlZ3VsYXRvciB0aGF0IHByb3ZpZGVzIHRoZSB2Y2Mgc3VwcGx5IHZvbHRhZ2UuCistIGlvdmNjLXN1cHBseTogcGhhbmRsZSBvZiB0aGUgcmVndWxhdG9yIHRoYXQgcHJvdmlkZXMgdGhlIGlvdmNjIHN1cHBseQorICB2b2x0YWdlLgogCiBFeGFtcGxlOgogCkBAIC0xNCw1ICsxNyw3IEBACiAJCQlyZWcgPSA8MD47CiAJCQliYWNrbGlnaHQgPSA8JmJhY2tsaWdodD47CiAJCQlyZXNldC1ncGlvcyA9IDwmZ3BpbzMgMTMgR1BJT19BQ1RJVkVfTE9XPjsKKwkJCXZjYy1zdXBwbHkgPSA8JnJlZ18ydjhfcD47CisJCQlpb3ZjYy1zdXBwbHkgPSA8JnJlZ18xdjhfcD47CiAJCX07CiAJfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3NnZCxna3R3NzBzZGFlNHNlLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3NnZCxna3R3NzBzZGFlNHNlLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDA2NjQ0Yi4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9zZ2QsZ2t0dzcwc2RhZTRzZS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1Tb2xvbW9uIEdvbGRlbnRlayBEaXNwbGF5IEdLVFc3MFNEQUU0U0UgTFZEUyBEaXNwbGF5IFBhbmVsCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVRoZSBHS1RXNzBTREFFNFNFIGlzIGEgNyIgV1ZHQSBURlQtTENEIGRpc3BsYXkgcGFuZWwuCi0KLVRoZXNlIERUIGJpbmRpbmdzIGZvbGxvdyB0aGUgTFZEUyBwYW5lbCBiaW5kaW5ncyBkZWZpbmVkIGluIHBhbmVsLWx2ZHMudHh0Ci13aXRoIHRoZSBmb2xsb3dpbmcgZGV2aWNlLXNwZWNpZmljIHByb3BlcnRpZXMuCi0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci0KLS0gY29tcGF0aWJsZTogU2hhbGwgY29udGFpbiAic2dkLGdrdHc3MHNkYWU0c2UiIGFuZCAicGFuZWwtbHZkcyIsIGluIHRoYXQgb3JkZXIuCi0KLUV4YW1wbGUKLS0tLS0tLS0KLQotcGFuZWwgewotCWNvbXBhdGlibGUgPSAic2dkLGdrdHc3MHNkYWU0c2UiLCAicGFuZWwtbHZkcyI7Ci0KLQl3aWR0aC1tbSA9IDwxNTM+OwotCWhlaWdodC1tbSA9IDw4Nj47Ci0KLQlkYXRhLW1hcHBpbmcgPSAiamVpZGEtMTgiOwotCi0JcGFuZWwtdGltaW5nIHsKLQkJY2xvY2stZnJlcXVlbmN5ID0gPDMyMDAwMDAwPjsKLQkJaGFjdGl2ZSA9IDw4MDA+OwotCQl2YWN0aXZlID0gPDQ4MD47Ci0JCWhiYWNrLXBvcmNoID0gPDM5PjsKLQkJaGZyb250LXBvcmNoID0gPDM5PjsKLQkJdmJhY2stcG9yY2ggPSA8Mjk+OwotCQl2ZnJvbnQtcG9yY2ggPSA8MTM+OwotCQloc3luYy1sZW4gPSA8NDc+OwotCQl2c3luYy1sZW4gPSA8Mj47Ci0JfTsKLQotCXBvcnQgewotCQlwYW5lbF9pbjogZW5kcG9pbnQgewotCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZsdmRzX2VuY29kZXI+OwotCQl9OwotCX07Ci19OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvc2dkLGdrdHc3MHNkYWU0c2UueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3NnZCxna3R3NzBzZGFlNHNlLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYzYTU3MAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3NnZCxna3R3NzBzZGFlNHNlLnlhbWwKQEAgLTAsMCArMSw2OCBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZGlzcGxheS9wYW5lbC9zZ2QsZ2t0dzcwc2RhZTRzZS55YW1sIworJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisKK3RpdGxlOiBTb2xvbW9uIEdvbGRlbnRlayBEaXNwbGF5IEdLVFc3MFNEQUU0U0UgNyIgV1ZHQSBMVkRTIERpc3BsYXkgUGFuZWwKKworbWFpbnRhaW5lcnM6CisgIC0gTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgorICAtIFRoaWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+CisKK2FsbE9mOgorICAtICRyZWY6IGx2ZHMueWFtbCMKKworcHJvcGVydGllczoKKyAgY29tcGF0aWJsZToKKyAgICBpdGVtczoKKyAgICAgIC0gY29uc3Q6IHNnZCxna3R3NzBzZGFlNHNlCisgICAgICAtIHt9ICMgcGFuZWwtbHZkcywgYnV0IG5vdCBsaXN0ZWQgaGVyZSB0byBhdm9pZCBmYWxzZSBzZWxlY3QKKworICBkYXRhLW1hcHBpbmc6CisgICAgY29uc3Q6IGplaWRhLTE4CisKKyAgd2lkdGgtbW06CisgICAgY29uc3Q6IDE1MworCisgIGhlaWdodC1tbToKKyAgICBjb25zdDogODYKKworICBwYW5lbC10aW1pbmc6IHRydWUKKyAgcG9ydDogdHJ1ZQorCithZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorCitleGFtcGxlczoKKyAgLSB8KworICAgIHBhbmVsIHsKKyAgICAgIGNvbXBhdGlibGUgPSAic2dkLGdrdHc3MHNkYWU0c2UiLCAicGFuZWwtbHZkcyI7CisKKyAgICAgIHdpZHRoLW1tID0gPDE1Mz47CisgICAgICBoZWlnaHQtbW0gPSA8ODY+OworCisgICAgICBkYXRhLW1hcHBpbmcgPSAiamVpZGEtMTgiOworCisgICAgICBwYW5lbC10aW1pbmcgeworICAgICAgICBjbG9jay1mcmVxdWVuY3kgPSA8MzIwMDAwMDA+OworICAgICAgICBoYWN0aXZlID0gPDgwMD47CisgICAgICAgIHZhY3RpdmUgPSA8NDgwPjsKKyAgICAgICAgaGJhY2stcG9yY2ggPSA8Mzk+OworICAgICAgICBoZnJvbnQtcG9yY2ggPSA8Mzk+OworICAgICAgICB2YmFjay1wb3JjaCA9IDwyOT47CisgICAgICAgIHZmcm9udC1wb3JjaCA9IDwxMz47CisgICAgICAgIGhzeW5jLWxlbiA9IDw0Nz47CisgICAgICAgIHZzeW5jLWxlbiA9IDwyPjsKKyAgICAgIH07CisKKyAgICAgIHBvcnQgeworICAgICAgICBwYW5lbF9pbjogZW5kcG9pbnQgeworICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmbHZkc19lbmNvZGVyPjsKKyAgICAgICAgfTsKKyAgICAgIH07CisgICAgfTsKKworLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9zaGFycCxsZC1kNTExNnowMWIudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvc2hhcnAsbGQtZDUxMTZ6MDFiLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDljZjM5Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvc2hhcnAsbGQtZDUxMTZ6MDFiLnR4dApAQCAtMCwwICsxLDI2IEBACitTaGFycCBMRC1ENTExNlowMUIgMTIuMyIgV1VYR0ErIGVEUCBwYW5lbAorCitSZXF1aXJlZCBwcm9wZXJ0aWVzOgorLSBjb21wYXRpYmxlOiBzaG91bGQgYmUgInNoYXJwLGxkLWQ1MTE2ejAxYiIKKy0gcG93ZXItc3VwcGx5OiByZWd1bGF0b3IgdG8gcHJvdmlkZSB0aGUgVkNDIHN1cHBseSB2b2x0YWdlICgzLjMgdm9sdHMpCisKK1RoaXMgYmluZGluZyBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHNpbXBsZS1wYW5lbCBiaW5kaW5nLgorCitUaGUgZGV2aWNlIG5vZGUgY2FuIGNvbnRhaW4gb25lICdwb3J0JyBjaGlsZCBub2RlIHdpdGggb25lIGNoaWxkCisnZW5kcG9pbnQnIG5vZGUsIGFjY29yZGluZyB0byB0aGUgYmluZGluZ3MgZGVmaW5lZCBpbiBbMV0uIFRoaXMKK25vZGUgc2hvdWxkIGRlc2NyaWJlIHBhbmVsJ3MgdmlkZW8gYnVzLgorCitbMV06IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS92aWRlby1pbnRlcmZhY2VzLnR4dAorCitFeGFtcGxlOgorCisJcGFuZWw6IHBhbmVsIHsKKwkJY29tcGF0aWJsZSA9ICJzaGFycCxsZC1kNTExNnowMWIiOworCQlwb3dlci1zdXBwbHkgPSA8JnZsY2RfM3YzPjsKKworCQlwb3J0IHsKKwkJCXBhbmVsX2VwOiBlbmRwb2ludCB7CisJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZicmlkZ2Vfb3V0X2VwPjsKKwkJCX07CisJCX07CisJfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3NoYXJwLGxxMDcweTNkZzNiLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3NoYXJwLGxxMDcweTNkZzNiLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTUzNGI1Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvc2hhcnAsbHEwNzB5M2RnM2IudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1NoYXJwIExRMDcwWTNERzNCIDcuMCIgV1ZHQSBsYW5kc2NhcGUgVEZUIExDRCBwYW5lbAorCitSZXF1aXJlZCBwcm9wZXJ0aWVzOgorLSBjb21wYXRpYmxlOiBzaG91bGQgYmUgInNoYXJwLGxxMDcweTNkZzNiIgorCitPcHRpb25hbCBwcm9wZXJ0aWVzOgorLSBlbmFibGUtZ3Bpb3M6IEdQSU8gcGluIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBwYW5lbAorLSBiYWNrbGlnaHQ6IHBoYW5kbGUgb2YgdGhlIGJhY2tsaWdodCBkZXZpY2UgYXR0YWNoZWQgdG8gdGhlIHBhbmVsCistIHBvd2VyLXN1cHBseTogcGhhbmRsZSBvZiB0aGUgcmVndWxhdG9yIHRoYXQgcHJvdmlkZXMgdGhlIHN1cHBseSB2b2x0YWdlCisKK1RoaXMgYmluZGluZyBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHNpbXBsZS1wYW5lbCBiaW5kaW5nLCB3aGljaCBpcyBzcGVjaWZpZWQKK2luIHNpbXBsZS1wYW5lbC50eHQgaW4gdGhpcyBkaXJlY3RvcnkuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9zaGFycCxsczAyMGIxZGQwMWQudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvc2hhcnAsbHMwMjBiMWRkMDFkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDVlZGJjCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvc2hhcnAsbHMwMjBiMWRkMDFkLnR4dApAQCAtMCwwICsxLDEyIEBACitTaGFycCAyLjAiICgyNDB4MTYwIHBpeGVscykgMTYtYml0IFRGVCBMQ0QgcGFuZWwKKworUmVxdWlyZWQgcHJvcGVydGllczoKKy0gY29tcGF0aWJsZTogc2hvdWxkIGJlICJzaGFycCxsczAyMGIxZGQwMWQiCistIHBvd2VyLXN1cHBseTogYXMgc3BlY2lmaWVkIGluIHRoZSBiYXNlIGJpbmRpbmcKKworT3B0aW9uYWwgcHJvcGVydGllczoKKy0gYmFja2xpZ2h0OiBhcyBzcGVjaWZpZWQgaW4gdGhlIGJhc2UgYmluZGluZworLSBlbmFibGUtZ3Bpb3M6IGFzIHNwZWNpZmllZCBpbiB0aGUgYmFzZSBiaW5kaW5nCisKK1RoaXMgYmluZGluZyBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHNpbXBsZS1wYW5lbCBiaW5kaW5nLCB3aGljaCBpcyBzcGVjaWZpZWQKK2luIHNpbXBsZS1wYW5lbC50eHQgaW4gdGhpcyBkaXJlY3RvcnkuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9zaW1wbGUtcGFuZWwudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvc2ltcGxlLXBhbmVsLnR4dAppbmRleCBiMmI4NzJjLi5lMTEyMDhmIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9zaW1wbGUtcGFuZWwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3NpbXBsZS1wYW5lbC50eHQKQEAgLTEsMjggKzEgQEAKLVNpbXBsZSBkaXNwbGF5IHBhbmVsCi09PT09PT09PT09PT09PT09PT09PQotCi1wYW5lbCBub2RlCi0tLS0tLS0tLS0tCi0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIHBvd2VyLXN1cHBseTogU2VlIHBhbmVsLWNvbW1vbi50eHQKLQotT3B0aW9uYWwgcHJvcGVydGllczoKLS0gZGRjLWkyYy1idXM6IHBoYW5kbGUgb2YgYW4gSTJDIGNvbnRyb2xsZXIgdXNlZCBmb3IgRERDIEVESUQgcHJvYmluZwotLSBlbmFibGUtZ3Bpb3M6IEdQSU8gcGluIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBwYW5lbAotLSBiYWNrbGlnaHQ6IHBoYW5kbGUgb2YgdGhlIGJhY2tsaWdodCBkZXZpY2UgYXR0YWNoZWQgdG8gdGhlIHBhbmVsCi0tIG5vLWhwZDogVGhpcyBwYW5lbCBpcyBzdXBwb3NlZCB0byBjb21tdW5pY2F0ZSB0aGF0IGl0J3MgcmVhZHkgdmlhIEhQRAotICAoaG90IHBsdWcgZGV0ZWN0KSBzaWduYWwsIGJ1dCB0aGUgc2lnbmFsIGlzbid0IGhvb2tlZCB1cCBzbyB3ZSBzaG91bGQKLSAgaGFyZGNvZGUgdGhlIG1heCBkZWxheSBmcm9tIHRoZSBwYW5lbCBzcGVjIHdoZW4gcG93ZXJpbmcgdXAgdGhlIHBhbmVsLgotCi1FeGFtcGxlOgotCi0JcGFuZWw6IHBhbmVsIHsKLQkJY29tcGF0aWJsZSA9ICJjcHR0LGNsYWExMDF3YjAxIjsKLQkJZGRjLWkyYy1idXMgPSA8JnBhbmVsZGRjPjsKLQotCQlwb3dlci1zdXBwbHkgPSA8JnZkZF9wbmxfcmVnPjsKLQkJZW5hYmxlLWdwaW9zID0gPCZncGlvIDkwIDA+OwotCi0JCWJhY2tsaWdodCA9IDwmYmFja2xpZ2h0PjsKLQl9OworU2VlIHBhbmVsLWNvbW1vbi55YW1sIGluIHRoaXMgZGlyZWN0b3J5LgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvdGZjLHM5NzAwcnR3djQzdHItMDFiLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3RmYyxzOTcwMHJ0d3Y0M3RyLTAxYi50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmYjU3MmYuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvdGZjLHM5NzAwcnR3djQzdHItMDFiLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVRGQyBTOTcwMFJUV1Y0M1RSLTAxQiA3IiBUaHJlZSBGaXZlIENvcnAgODAweDQ4MCBMQ0QgcGFuZWwgd2l0aAotcmVzaXN0aXZlIHRvdWNoCi0KLVRoZSBwYW5lbCBpcyBmb3VuZCBvbiBUSSBBTTMzNXgtZXZtLgotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotLSBjb21wYXRpYmxlOiBzaG91bGQgYmUgInRmYyxzOTcwMHJ0d3Y0M3RyLTAxYiIKLS0gcG93ZXItc3VwcGx5OiBTZWUgcGFuZWwtY29tbW9uLnR4dAotCi1PcHRpb25hbCBwcm9wZXJ0aWVzOgotLSBlbmFibGUtZ3Bpb3M6IEdQSU8gcGluIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBwYW5lbCwgaWYgdGhlcmUgaXMgb25lCi0tIGJhY2tsaWdodDogcGhhbmRsZSBvZiB0aGUgYmFja2xpZ2h0IGRldmljZSBhdHRhY2hlZCB0byB0aGUgcGFuZWwKLQotVGhpcyBiaW5kaW5nIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgc2ltcGxlLXBhbmVsIGJpbmRpbmcsIHdoaWNoIGlzIHNwZWNpZmllZAotaW4gc2ltcGxlLXBhbmVsLnR4dCBpbiB0aGlzIGRpcmVjdG9yeS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3RmYyxzOTcwMHJ0d3Y0M3RyLTAxYi55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvdGZjLHM5NzAwcnR3djQzdHItMDFiLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU1OTk0NAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3RmYyxzOTcwMHJ0d3Y0M3RyLTAxYi55YW1sCkBAIC0wLDAgKzEsMzMgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Rpc3BsYXkvcGFuZWwvdGZjLHM5NzAwcnR3djQzdHItMDFiLnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IFRGQyBTOTcwMFJUV1Y0M1RSLTAxQiA3IiBUaHJlZSBGaXZlIENvcnAgODAweDQ4MCBMQ0QgcGFuZWwgd2l0aCByZXNpc3RpdmUgdG91Y2gKKworbWFpbnRhaW5lcnM6CisgIC0gSnlyaSBTYXJoYSA8anNhcmhhQHRpLmNvbT4KKyAgLSBUaGllcnJ5IFJlZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgorCitkZXNjcmlwdGlvbjogfCsKKyAgVGhlIHBhbmVsIGlzIGZvdW5kIG9uIFRJIEFNMzM1eC1ldm0uCisKK2FsbE9mOgorICAtICRyZWY6IHBhbmVsLWNvbW1vbi55YW1sIworCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGNvbnN0OiB0ZmMsczk3MDBydHd2NDN0ci0wMWIKKworICBlbmFibGUtZ3Bpb3M6IHRydWUKKyAgYmFja2xpZ2h0OiB0cnVlCisgIHBvcnQ6IHRydWUKKworYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSBwb3dlci1zdXBwbHkKKworLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC90aSxuc3BpcmUueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3RpLG5zcGlyZS55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNWEzYjUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC90aSxuc3BpcmUueWFtbApAQCAtMCwwICsxLDM2IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMC1vbmx5IE9SIEJTRC0yLUNsYXVzZSkKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Rpc3BsYXkvcGFuZWwvdGksbnNwaXJlLnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IFRleGFzIEluc3RydW1lbnRzIE5TUElSRSBEaXNwbGF5IFBhbmVscworCittYWludGFpbmVyczoKKyAgLSBMaW51cyBXYWxsZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+CisKK2FsbE9mOgorICAtICRyZWY6IHBhbmVsLWNvbW1vbi55YW1sIworCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGVudW06CisgICAgICAtIHRpLG5zcGlyZS1jeC1sY2QtcGFuZWwKKyAgICAgIC0gdGksbnNwaXJlLWNsYXNzaWMtbGNkLXBhbmVsCisgIHBvcnQ6IHRydWUKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorCithZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKworZXhhbXBsZXM6CisgIC0gfAorICAgIHBhbmVsIHsKKyAgICAgICAgY29tcGF0aWJsZSA9ICJ0aSxuc3BpcmUtY3gtbGNkLXBhbmVsIjsKKyAgICAgICAgcG9ydCB7CisgICAgICAgICAgICBwYW5lbF9pbjogZW5kcG9pbnQgeworICAgICAgICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmcGFkcz47CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC90cG8sdHBnMTEwLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3Rwbyx0cGcxMTAudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGYzZDdjLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3Rwbyx0cGcxMTAudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotVFBPIFRQRzExMCBQYW5lbAotPT09PT09PT09PT09PT09PQotCi1UaGlzIHBhbmVsIGRyaXZlciBpcyBhIGNvbXBvbmVudCB0aGF0IGFjdHMgYXMgYW4gaW50ZXJtZWRpYXJ5Ci1iZXR3ZWVuIGFuIFJHQiBvdXRwdXQgYW5kIGEgdmFyaWV0eSBvZiBwYW5lbHMuIFRoZSBwYW5lbAotZHJpdmVyIGlzIHN0cmFwcGVkIHVwIGluIGVsZWN0cm9uaWNzIHRvIHRoZSBkZXNpcmVkIHJlc29sdXRpb24KLWFuZCBvdGhlciBwcm9wZXJ0aWVzLCBhbmQgaGFzIGEgY29udHJvbCBpbnRlcmZhY2Ugb3ZlciAzV0lSRQotU1BJLiBCeSB0YWxraW5nIHRvIHRoZSBUUEcxMTAgb3ZlciBTUEksIHRoZSBzdHJhcHBlZCBwcm9wZXJ0aWVzCi1jYW4gYmUgZGlzY292ZXJlZCBhbmQgdGhlIGhhcmR3YXJlIGlzIHRoZXJlZm9yZSBtb3N0bHkKLXNlbGYtZGVzY3JpYmluZy4KLQotICAgICAgICstLS0tLS0tLSsKLVNQSSAtPiB8ICBUUE8gICB8IC0+IHBoeXNpY2FsIGRpc3BsYXkKLVJHQiAtPiB8IFRQRzExMCB8Ci0gICAgICAgKy0tLS0tLS0tKwotCi1JZiBzb21lIGVsZWN0cmljYWwgc3RyYXAgb3IgYWx0ZXJuYXRlIHJlc29sdXRpb24gaXMgZGVzaXJlZCwKLXRoaXMgY2FuIGJlIHNldCB1cCBieSB0YWtpbmcgc29mdHdhcmUgY29udHJvbCBvZiB0aGUgZGlzcGxheQotb3ZlciB0aGUgU1BJIGludGVyZmFjZS4gVGhlIGludGVyZmFjZSBjYW4gYWxzbyBhZGp1c3QKLWZvciBwcm9wZXJ0aWVzIG9mIHRoZSBkaXNwbGF5IHN1Y2ggYXMgZ2FtbWEgY29ycmVjdGlvbiBhbmQKLWNlcnRhaW4gZWxlY3RyaWNhbCBkcml2aW5nIGxldmVscy4KLQotVGhlIFRQRzExMCBkb2VzIG5vdCBrbm93IHRoZSBwaHlzaWNhbCBkaW1lbnNpb25zIG9mIHRoZSBwYW5lbAotY29ubmVjdGVkLCBzbyB0aGlzIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBpbiB0aGUgZGV2aWNlIHRyZWUuCi0KLUl0IHJlcXVpcmVzIGEgR1BJTyBsaW5lIGZvciBjb250cm9sIG9mIGl0cyByZXNldCBsaW5lLgotCi1UaGUgc2VyaWFsIHByb3RvY29sIGhhcyBsaW5lIG5hbWVzIHRoYXQgcmVzZW1ibGUgSTJDIGJ1dCB0aGUKLXByb3RvY29sIGlzIG5vdCBJMkMgYnV0IDNXSVJFIFNQSS4KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLS0gY29tcGF0aWJsZSA6IG9uZSBvZjoKLSAgInN0ZSxub21hZGlrLW5oazE1LWRpc3BsYXkiLCAidHBvLHRwZzExMCIKLSAgInRwbyx0cGcxMTAiCi0tIGdyZXN0Yi1ncGlvcyA6IHBhbmVsIHJlc2V0IEdQSU8KLS0gd2lkdGgtbW0gOiBzZWUgZGlzcGxheS9wYW5lbC9wYW5lbC1jb21tb24udHh0Ci0tIGhlaWdodC1tbSA6IHNlZSBkaXNwbGF5L3BhbmVsL3BhbmVsLWNvbW1vbi50eHQKLQotVGhlIGRldmljZSBuZWVkcyB0byBiZSBhIGNoaWxkIG9mIGFuIFNQSSBidXMsIHNlZQotc3BpL3NwaS1idXMudHh0LiBUaGUgU1BJIGNoaWxkIG11c3Qgc2V0IHRoZSBmb2xsb3dpbmcKLXByb3BlcnRpZXM6Ci0tIHNwaS0zd2lyZQotLSBzcGktbWF4LWZyZXF1ZW5jeSA9IDwzMDAwMDAwPjsKLWFzIHRoZXNlIGFyZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhpcyBkZXZpY2UuCi0KLVRoZSBkZXZpY2Ugbm9kZSBjYW4gY29udGFpbiBvbmUgJ3BvcnQnIGNoaWxkIG5vZGUgd2l0aCBvbmUgY2hpbGQKLSdlbmRwb2ludCcgbm9kZSwgYWNjb3JkaW5nIHRvIHRoZSBiaW5kaW5ncyBkZWZpbmVkIGluCi1tZWRpYS92aWRlby1pbnRlcmZhY2VzLnR4dC4gVGhpcyBub2RlIHNob3VsZCBkZXNjcmliZSBwYW5lbCdzIHZpZGVvIGJ1cy4KLQotRXhhbXBsZQotLS0tLS0tLQotCi1wYW5lbDogZGlzcGxheUAwIHsKLQljb21wYXRpYmxlID0gInRwbyx0cGcxMTAiOwotCXJlZyA9IDwwPjsKLQlzcGktM3dpcmU7Ci0JLyogMzIwIG5zIG1pbiBwZXJpb2Qgfj0gMyBNSHogKi8KLQlzcGktbWF4LWZyZXF1ZW5jeSA9IDwzMDAwMDAwPjsKLQkvKiBXaWR0aCBhbmQgaGVpZ2h0IGZyb20gZGF0YSBzaGVldCAqLwotCXdpZHRoLW1tID0gPDExNj47Ci0JaGVpZ2h0LW1tID0gPDg3PjsKLQlncmVzdGItZ3Bpb3MgPSA8JmZvb19ncGlvIDUgR1BJT19BQ1RJVkVfTE9XPjsKLQliYWNrbGlnaHQgPSA8JmJsPjsKLQotCXBvcnQgewotCQlub21hZGlrX2NsY2RfcGFuZWw6IGVuZHBvaW50IHsKLQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmZm9vPjsKLQkJfTsKLQl9OwotfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3Rwbyx0cGcxMTAueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3Rwbyx0cGcxMTAueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTE2NjBiCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvdHBvLHRwZzExMC55YW1sCkBAIC0wLDAgKzEsMTAxIEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9kaXNwbGF5L3BhbmVsL3Rwbyx0cGcxMTAueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogVFBPIFRQRzExMCBQYW5lbAorCittYWludGFpbmVyczoKKyAgLSBMaW51cyBXYWxsZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+CisgIC0gVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGdtYWlsLmNvbT4KKworZGVzY3JpcHRpb246IHwrCisgIFRoaXMgcGFuZWwgZHJpdmVyIGlzIGEgY29tcG9uZW50IHRoYXQgYWN0cyBhcyBhbiBpbnRlcm1lZGlhcnkKKyAgYmV0d2VlbiBhbiBSR0Igb3V0cHV0IGFuZCBhIHZhcmlldHkgb2YgcGFuZWxzLiBUaGUgcGFuZWwKKyAgZHJpdmVyIGlzIHN0cmFwcGVkIHVwIGluIGVsZWN0cm9uaWNzIHRvIHRoZSBkZXNpcmVkIHJlc29sdXRpb24KKyAgYW5kIG90aGVyIHByb3BlcnRpZXMsIGFuZCBoYXMgYSBjb250cm9sIGludGVyZmFjZSBvdmVyIDNXSVJFCisgIFNQSS4gQnkgdGFsa2luZyB0byB0aGUgVFBHMTEwIG92ZXIgU1BJLCB0aGUgc3RyYXBwZWQgcHJvcGVydGllcworICBjYW4gYmUgZGlzY292ZXJlZCBhbmQgdGhlIGhhcmR3YXJlIGlzIHRoZXJlZm9yZSBtb3N0bHkKKyAgc2VsZi1kZXNjcmliaW5nLgorCisgICAgICAgICArLS0tLS0tLS0rCisgIFNQSSAtPiB8ICBUUE8gICB8IC0+IHBoeXNpY2FsIGRpc3BsYXkKKyAgUkdCIC0+IHwgVFBHMTEwIHwKKyAgICAgICAgICstLS0tLS0tLSsKKworICBJZiBzb21lIGVsZWN0cmljYWwgc3RyYXAgb3IgYWx0ZXJuYXRlIHJlc29sdXRpb24gaXMgZGVzaXJlZCwKKyAgdGhpcyBjYW4gYmUgc2V0IHVwIGJ5IHRha2luZyBzb2Z0d2FyZSBjb250cm9sIG9mIHRoZSBkaXNwbGF5CisgIG92ZXIgdGhlIFNQSSBpbnRlcmZhY2UuIFRoZSBpbnRlcmZhY2UgY2FuIGFsc28gYWRqdXN0CisgIGZvciBwcm9wZXJ0aWVzIG9mIHRoZSBkaXNwbGF5IHN1Y2ggYXMgZ2FtbWEgY29ycmVjdGlvbiBhbmQKKyAgY2VydGFpbiBlbGVjdHJpY2FsIGRyaXZpbmcgbGV2ZWxzLgorCisgIFRoZSBUUEcxMTAgZG9lcyBub3Qga25vdyB0aGUgcGh5c2ljYWwgZGltZW5zaW9ucyBvZiB0aGUgcGFuZWwKKyAgY29ubmVjdGVkLCBzbyB0aGlzIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBpbiB0aGUgZGV2aWNlIHRyZWUuCisKKyAgSXQgcmVxdWlyZXMgYSBHUElPIGxpbmUgZm9yIGNvbnRyb2wgb2YgaXRzIHJlc2V0IGxpbmUuCisKKyAgVGhlIHNlcmlhbCBwcm90b2NvbCBoYXMgbGluZSBuYW1lcyB0aGF0IHJlc2VtYmxlIEkyQyBidXQgdGhlCisgIHByb3RvY29sIGlzIG5vdCBJMkMgYnV0IDNXSVJFIFNQSS4KKworCithbGxPZjoKKyAgLSAkcmVmOiBwYW5lbC1jb21tb24ueWFtbCMKKworcHJvcGVydGllczoKKyAgY29tcGF0aWJsZToKKyAgICBvbmVPZjoKKyAgICAgIC0gaXRlbXM6CisgICAgICAgICAgLSBlbnVtOgorICAgICAgICAgICAgICAtIHN0ZSxub21hZGlrLW5oazE1LWRpc3BsYXkKKyAgICAgICAgICAtIGNvbnN0OiB0cG8sdHBnMTEwCisgICAgICAtIGNvbnN0OiB0cG8sdHBnMTEwCisKKyAgcmVnOiB0cnVlCisKKyAgZ3Jlc3RiLWdwaW9zOgorICAgIG1heEl0ZW1zOiAxCisgICAgZGVzY3JpcHRpb246IHBhbmVsIHJlc2V0IEdQSU8KKworICBzcGktM3dpcmU6IHRydWUKKworICBzcGktbWF4LWZyZXF1ZW5jeToKKyAgICBjb25zdDogMzAwMDAwMAorCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisgIC0gcmVnCisgIC0gZ3Jlc3RiLWdwaW9zCisgIC0gd2lkdGgtbW0KKyAgLSBoZWlnaHQtbW0KKyAgLSBzcGktM3dpcmUKKyAgLSBzcGktbWF4LWZyZXF1ZW5jeQorICAtIHBvcnQKKworZXhhbXBsZXM6CisgIC0gfCsKKyAgICBzcGkgeworICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47CisgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKKworICAgICAgcGFuZWw6IGRpc3BsYXlAMCB7CisgICAgICAgIGNvbXBhdGlibGUgPSAidHBvLHRwZzExMCI7CisgICAgICAgIHJlZyA9IDwwPjsKKyAgICAgICAgc3BpLTN3aXJlOworICAgICAgICAvKiAzMjAgbnMgbWluIHBlcmlvZCB+PSAzIE1IeiAqLworICAgICAgICBzcGktbWF4LWZyZXF1ZW5jeSA9IDwzMDAwMDAwPjsKKyAgICAgICAgLyogV2lkdGggYW5kIGhlaWdodCBmcm9tIGRhdGEgc2hlZXQgKi8KKyAgICAgICAgd2lkdGgtbW0gPSA8MTE2PjsKKyAgICAgICAgaGVpZ2h0LW1tID0gPDg3PjsKKyAgICAgICAgZ3Jlc3RiLWdwaW9zID0gPCZmb29fZ3BpbyA1IDE+OworICAgICAgICBiYWNrbGlnaHQgPSA8JmJsPjsKKworICAgICAgICBwb3J0IHsKKyAgICAgICAgICBub21hZGlrX2NsY2RfcGFuZWw6IGVuZHBvaW50IHsKKyAgICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmZm9vPjsKKyAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgfTsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3JvY2tjaGlwL2R3X21pcGlfZHNpX3JvY2tjaGlwLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3JvY2tjaGlwL2R3X21pcGlfZHNpX3JvY2tjaGlwLnR4dAppbmRleCA2YmI1OWFiLi5jZTRjMWZjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9yb2NrY2hpcC9kd19taXBpX2RzaV9yb2NrY2hpcC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcm9ja2NoaXAvZHdfbWlwaV9kc2lfcm9ja2NoaXAudHh0CkBAIC0xNCw2ICsxNCw4IEBACiAtIHJvY2tjaGlwLGdyZjogdGhpcyBzb2Mgc2hvdWxkIHNldCBHUkYgcmVncyB0byBtdXggdm9wbC92b3BiLgogLSBwb3J0czogY29udGFpbiBhIHBvcnQgbm9kZSB3aXRoIGVuZHBvaW50IGRlZmluaXRpb25zIGFzIGRlZmluZWQgaW4gWzJdLgogICBGb3Igdm9wYixzZXQgdGhlIHJlZyA9IDwwPiBhbmQgc2V0IHRoZSByZWcgPSA8MT4gZm9yIHZvcGwuCistIHZpZGVvIHBvcnQgMCBmb3IgdGhlIFZPUCBpbnB1dCwgdGhlIHJlbW90ZSBlbmRwb2ludCBtYXliZSB2b3BiIG9yIHZvcGwKKy0gdmlkZW8gcG9ydCAxIGZvciBlaXRoZXIgYSBwYW5lbCBvciBzdWJzZXF1ZW50IGVuY29kZXIKIAogT3B0aW9uYWwgcHJvcGVydGllczoKIC0gcG93ZXItZG9tYWluczogYSBwaGFuZGxlIHRvIG1pcGkgZHNpIHBvd2VyIGRvbWFpbiBub2RlLgpAQCAtNDAsMTEgKzQyLDEyIEBACiAJCXBvcnRzIHsKIAkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkJI3NpemUtY2VsbHMgPSA8MD47Ci0JCQlyZWcgPSA8MT47CiAKLQkJCW1pcGlfaW46IHBvcnQgeworCQkJbWlwaV9pbjogcG9ydEAwIHsKKwkJCQlyZWcgPSA8MD47CiAJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CiAJCQkJI3NpemUtY2VsbHMgPSA8MD47CisKIAkJCQltaXBpX2luX3ZvcGI6IGVuZHBvaW50QDAgewogCQkJCQlyZWcgPSA8MD47CiAJCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmdm9wYl9vdXRfbWlwaT47CkBAIC01NCw2ICs1NywxNiBAQAogCQkJCQlyZW1vdGUtZW5kcG9pbnQgPSA8JnZvcGxfb3V0X21pcGk+OwogCQkJCX07CiAJCQl9OworCisJCQltaXBpX291dDogcG9ydEAxIHsKKwkJCQlyZWcgPSA8MT47CisJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkJI3NpemUtY2VsbHMgPSA8MD47CisKKwkJCQltaXBpX291dF9wYW5lbDogZW5kcG9pbnQgeworCQkJCQlyZW1vdGUtZW5kcG9pbnQgPSA8JnBhbmVsX2luX21pcGk+OworCQkJCX07CisJCQl9OwogCQl9OwogCiAJCXBhbmVsIHsKQEAgLTY0LDUgKzc3LDExIEBACiAJCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwogCQkJcGluY3RybC0wID0gPCZsY2RfZW4+OwogCQkJYmFja2xpZ2h0ID0gPCZiYWNrbGlnaHQ+OworCisJCQlwb3J0IHsKKwkJCQlwYW5lbF9pbl9taXBpOiBlbmRwb2ludCB7CisJCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmbWlwaV9vdXRfcGFuZWw+OworCQkJCX07CisJCQl9OwogCQl9OwogCX07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9yb2NrY2hpcC9yb2NrY2hpcC1sdmRzLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3JvY2tjaGlwL3JvY2tjaGlwLWx2ZHMudHh0CmluZGV4IGRhNjkzOWUuLjc4NDlmZjAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3JvY2tjaGlwL3JvY2tjaGlwLWx2ZHMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3JvY2tjaGlwL3JvY2tjaGlwLWx2ZHMudHh0CkBAIC0zMiwxNyArMzIsNiBAQAogLSB2aWRlbyBwb3J0IDAgZm9yIHRoZSBWT1AgaW5wdXQsIHRoZSByZW1vdGUgZW5kcG9pbnQgbWF5YmUgdm9wYiBvciB2b3BsCiAtIHZpZGVvIHBvcnQgMSBmb3IgZWl0aGVyIGEgcGFuZWwgb3Igc3Vic2VxdWVudCBlbmNvZGVyCiAKLXRoZSBsdmRzIHBhbmVsIGRlc2NyaWJlZCBieQotCURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3NpbXBsZS1wYW5lbC50eHQKLQotUGFuZWwgcmVxdWlyZWQgcHJvcGVydGllczoKLS0gcG9ydHMgZm9yIHJlbW90ZSBMVkRTIG91dHB1dAotCi1QYW5lbCBvcHRpb25hbCBwcm9wZXJ0aWVzOgotLSBkYXRhLW1hcHBpbmc6IHNob3VsZCBiZSAidmVzYS0yNCIsImplaWRhLTI0IiBvciAiamVpZGEtMTgiLgotVGhpcyBkZXNjcmliZXMgZGVjcmliZWQgYnk6Ci0JRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcGFuZWwtbHZkcy50eHQKLQogRXhhbXBsZToKIAogbHZkc19wYW5lbDogbHZkcy1wYW5lbCB7CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9zc2QxMzA3ZmIudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvc3NkMTMwN2ZiLnR4dAppbmRleCBiNjdmOGNhLi4yNzMzM2I5IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9zc2QxMzA3ZmIudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3NzZDEzMDdmYi50eHQKQEAgLTI3LDYgKzI3LDE1IEBACiAgIC0gc29sb21vbixwcmVjaGFyZ2VwMjogTGVuZ3RoIG9mIHByZWNoYXJnZSBwZXJpb2QgKHBoYXNlIDIpIGluIGNsb2NrIGN5Y2xlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG5lZWRzIHRvIGJlIHRoZSBoaWdoZXIsIHRoZSBoaWdoZXIgdGhlIGNhcGFjaXRhbmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgdGhlIE9MRUQncyBwaXhlbHMgaXMKKyAgLSBzb2xvbW9uLGRjbGstZGl2OiBDbG9jayBkaXZpc29yIDEgdG8gMTYKKyAgLSBzb2xvbW9uLGRjbGstZnJxOiBDbG9jayBmcmVxdWVuY3kgMCB0byAxNSwgaGlnaGVyIHZhbHVlIG1lYW5zIGhpZ2hlcgorICAgICAgICAgICAgICAgICAgICAgIGZyZXF1ZW5jeQorICAtIHNvbG9tb24sbG9va3VwLXRhYmxlOiA4IGJpdCB2YWx1ZSBhcnJheSBvZiBjdXJyZW50IGRyaXZlIHB1bHNlIHdpZHRocyBmb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQkFOSzAsIGFuZCBjb2xvcnMgQSwgQiwgYW5kIEMuIEVhY2ggdmFsdWUgaW4gcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgMzEgdG8gNjMgZm9yIHB1bHNlIHdpZHRocyBvZiAzMiB0byA2NC4gQ29sb3IgRAorICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBhbHdheXMgd2lkdGggNjQuCisgIC0gc29sb21vbixhcmVhLWNvbG9yLWVuYWJsZTogRGlzcGxheSB1c2VzIGNvbG9yIG1vZGUKKyAgLSBzb2xvbW9uLGxvdy1wb3dlci4gRGlzcGxheSBydW5zIGluIGxvdyBwb3dlciBtb2RlCiAKIFswXTogRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS9wd20udHh0CiAKQEAgLTQ2LDQgKzU1LDUgQEAKICAgICAgICAgc29sb21vbixjb20tbHJyZW1hcDsKICAgICAgICAgc29sb21vbixjb20taW52ZGlyOwogICAgICAgICBzb2xvbW9uLGNvbS1vZmZzZXQgPSA8MzI+OworICAgICAgICBzb2xvbW9uLGxvb2t1cC10YWJsZSA9IC9iaXRzLyA4IDwweDNmIDB4M2YgMHgzZiAweDNmPjsKIH07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZXhhbXBsZS1zY2hlbWEueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9leGFtcGxlLXNjaGVtYS55YW1sCmluZGV4IDkxNzVkNjcuLmM0MzgxOWMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9leGFtcGxlLXNjaGVtYS55YW1sCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9leGFtcGxlLXNjaGVtYS55YW1sCkBAIC01LDcgKzUsNyBAQAogIyBBbGwgdGhlIHRvcC1sZXZlbCBrZXlzIGFyZSBzdGFuZGFyZCBqc29uLXNjaGVtYSBrZXl3b3JkcyBleGNlcHQgZm9yCiAjICdtYWludGFpbmVycycgYW5kICdzZWxlY3QnCiAKLSMgJGlkIGlzIGEgdW5pcXVlIGlkZW5pZmllciBiYXNlZCBvbiB0aGUgZmlsZW5hbWUuIFRoZXJlIG1heSBvciBtYXkgbm90IGJlIGEKKyMgJGlkIGlzIGEgdW5pcXVlIGlkZW50aWZpZXIgYmFzZWQgb24gdGhlIGZpbGVuYW1lLiBUaGVyZSBtYXkgb3IgbWF5IG5vdCBiZSBhCiAjIGZpbGUgcHJlc2VudCBhdCB0aGUgVVJMLgogJGlkOiAiaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZXhhbXBsZS1zY2hlbWEueWFtbCMiCiAjICRzY2hlbWEgaXMgdGhlIG1ldGEtc2NoZW1hIHRoaXMgc2NoZW1hIHNob3VsZCBiZSB2YWxpZGF0ZWQgd2l0aC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncHUvYXJtLG1hbGktYmlmcm9zdC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3B1L2FybSxtYWxpLWJpZnJvc3QudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOGJlOWRiLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncHUvYXJtLG1hbGktYmlmcm9zdC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi1BUk0gTWFsaSBCaWZyb3N0IEdQVQotPT09PT09PT09PT09PT09PT09PT0KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLQotLSBjb21wYXRpYmxlIDoKLSAgKiBTaW5jZSBNYWxpIEJpZnJvc3QgR1BVIG1vZGVsL3JldmlzaW9uIGlzIGZ1bGx5IGRpc2NvdmVyYWJsZSBieSByZWFkaW5nCi0gICAgc29tZSBkZXRlcm1pbmVkIHJlZ2lzdGVycywgbXVzdCBjb250YWluIHRoZSBmb2xsb3dpbmc6Ci0gICAgKyAiYXJtLG1hbGktYmlmcm9zdCIKLSAgKiB3aGljaCBtdXN0IGJlIHByZWNlZGVkIGJ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHZlbmRvciBzcGVjaWZpY3M6Ci0gICAgKyAiYW1sb2dpYyxtZXNvbi1nMTJhLW1hbGkiCi0KLS0gcmVnIDogUGh5c2ljYWwgYmFzZSBhZGRyZXNzIG9mIHRoZSBkZXZpY2UgYW5kIGxlbmd0aCBvZiB0aGUgcmVnaXN0ZXIgYXJlYS4KLQotLSBpbnRlcnJ1cHRzIDogQ29udGFpbnMgdGhlIHRocmVlIElSUSBsaW5lcyByZXF1aXJlZCBieSBNYWxpIEJpZnJvc3QgZGV2aWNlcywKLSAgaW4gdGhlIGZvbGxvd2luZyBkZWZpbmVkIG9yZGVyLgotCi0tIGludGVycnVwdC1uYW1lcyA6IENvbnRhaW5zIHRoZSBuYW1lcyBvZiBJUlEgcmVzb3VyY2VzIGluIHRoaXMgZXhhY3QgZGVmaW5lZAotICBvcmRlcjogImpvYiIsICJtbXUiLCAiZ3B1Ii4KLQotT3B0aW9uYWwgcHJvcGVydGllczoKLQotLSBjbG9ja3MgOiBQaGFuZGxlIHRvIGNsb2NrIGZvciB0aGUgTWFsaSBCaWZyb3N0IGRldmljZS4KLQotLSBtYWxpLXN1cHBseSA6IFBoYW5kbGUgdG8gcmVndWxhdG9yIGZvciB0aGUgTWFsaSBkZXZpY2UuIFJlZmVyIHRvCi0gIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZWd1bGF0b3IvcmVndWxhdG9yLnR4dCBmb3IgZGV0YWlscy4KLQotLSBvcGVyYXRpbmctcG9pbnRzLXYyIDogUmVmZXIgdG8gRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL29wcC9vcHAudHh0Ci0gIGZvciBkZXRhaWxzLgotCi0tIHJlc2V0cyA6IFBoYW5kbGUgb2YgdGhlIEdQVSByZXNldCBsaW5lLgotCi1WZW5kb3Itc3BlY2lmaWMgYmluZGluZ3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgTWFsaSBHUFUgaXMgaW50ZWdyYXRlZCB2ZXJ5IGRpZmZlcmVudGx5IGZyb20gb25lIFNvQyB0bwotYW5vdGhlci4gSW4gb3JkZXIgdG8gYWNjb21tb2RhdGUgdGhvc2UgZGlmZmVyZW5jZXMsIHlvdSBoYXZlIHRoZSBvcHRpb24KLXRvIHNwZWNpZnkgb25lIG1vcmUgdmVuZG9yLXNwZWNpZmljIGNvbXBhdGlibGUsIGFtb25nOgotCi0tICJhbWxvZ2ljLG1lc29uLWcxMmEtbWFsaSIKLSAgUmVxdWlyZWQgcHJvcGVydGllczoKLSAgLSByZXNldHMgOiBTaG91bGQgY29udGFpbiBwaGFuZGxlcyBvZiA6Ci0gICAgKyBHUFUgcmVzZXQgbGluZQotICAgICsgR1BVIEFQQiBnbHVlIHJlc2V0IGxpbmUKLQotRXhhbXBsZSBmb3IgYSBNYWxpLUczMToKLQotZ3B1QGZmYTMwMDAwIHsKLQljb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZzEyYS1tYWxpIiwgImFybSxtYWxpLWJpZnJvc3QiOwotCXJlZyA9IDwweGZmZTQwMDAwIDB4MTAwMDA+OwotCWludGVycnVwdHMgPSA8R0lDX1NQSSAxNjAgSVJRX1RZUEVfTEVWRUxfSElHSD4sCi0JCSAgICAgPEdJQ19TUEkgMTYxIElSUV9UWVBFX0xFVkVMX0hJR0g+LAotCQkgICAgIDxHSUNfU1BJIDE2MiBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKLQlpbnRlcnJ1cHQtbmFtZXMgPSAiam9iIiwgIm1tdSIsICJncHUiOwotCWNsb2NrcyA9IDwmY2xrIENMS0lEX01BTEk+OwotCW1hbGktc3VwcGx5ID0gPCZ2ZGRfZ3B1PjsKLQlvcGVyYXRpbmctcG9pbnRzLXYyID0gPCZncHVfb3BwX3RhYmxlPjsKLQlyZXNldHMgPSA8JnJlc2V0IFJFU0VUX0RWQUxJTl9DQVBCMz4sIDwmcmVzZXQgUkVTRVRfRFZBTElOPjsKLX07Ci0KLWdwdV9vcHBfdGFibGU6IG9wcF90YWJsZTAgewotCWNvbXBhdGlibGUgPSAib3BlcmF0aW5nLXBvaW50cy12MiI7Ci0KLQlvcHBANTMzMDAwMDAwIHsKLQkJb3BwLWh6ID0gL2JpdHMvIDY0IDw1MzMwMDAwMDA+OwotCQlvcHAtbWljcm92b2x0ID0gPDEyNTAwMDA+OwotCX07Ci0Jb3BwQDQ1MDAwMDAwMCB7Ci0JCW9wcC1oeiA9IC9iaXRzLyA2NCA8NDUwMDAwMDAwPjsKLQkJb3BwLW1pY3Jvdm9sdCA9IDwxMTUwMDAwPjsKLQl9OwotCW9wcEA0MDAwMDAwMDAgewotCQlvcHAtaHogPSAvYml0cy8gNjQgPDQwMDAwMDAwMD47Ci0JCW9wcC1taWNyb3ZvbHQgPSA8MTEyNTAwMD47Ci0JfTsKLQlvcHBAMzUwMDAwMDAwIHsKLQkJb3BwLWh6ID0gL2JpdHMvIDY0IDwzNTAwMDAwMDA+OwotCQlvcHAtbWljcm92b2x0ID0gPDEwNzUwMDA+OwotCX07Ci0Jb3BwQDI2NjAwMDAwMCB7Ci0JCW9wcC1oeiA9IC9iaXRzLyA2NCA8MjY2MDAwMDAwPjsKLQkJb3BwLW1pY3Jvdm9sdCA9IDwxMDI1MDAwPjsKLQl9OwotCW9wcEAxNjAwMDAwMDAgewotCQlvcHAtaHogPSAvYml0cy8gNjQgPDE2MDAwMDAwMD47Ci0JCW9wcC1taWNyb3ZvbHQgPSA8OTI1MDAwPjsKLQl9OwotCW9wcEAxMDAwMDAwMDAgewotCQlvcHAtaHogPSAvYml0cy8gNjQgPDEwMDAwMDAwMD47Ci0JCW9wcC1taWNyb3ZvbHQgPSA8OTEyNTAwPjsKLQl9OwotfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncHUvYXJtLG1hbGktYmlmcm9zdC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwdS9hcm0sbWFsaS1iaWZyb3N0LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWYxZmQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncHUvYXJtLG1hbGktYmlmcm9zdC55YW1sCkBAIC0wLDAgKzEsMTE2IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2dwdS9hcm0sbWFsaS1iaWZyb3N0LnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IEFSTSBNYWxpIEJpZnJvc3QgR1BVCisKK21haW50YWluZXJzOgorICAtIFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+CisKK3Byb3BlcnRpZXM6CisgICRub2RlbmFtZToKKyAgICBwYXR0ZXJuOiAnXmdwdUBbYS1mMC05XSskJworCisgIGNvbXBhdGlibGU6CisgICAgaXRlbXM6CisgICAgICAtIGVudW06CisgICAgICAgICAgLSBhbWxvZ2ljLG1lc29uLWcxMmEtbWFsaQorICAgICAgLSBjb25zdDogYXJtLG1hbGktYmlmcm9zdCAjIE1hbGkgQmlmcm9zdCBHUFUgbW9kZWwvcmV2aXNpb24gaXMgZnVsbHkgZGlzY292ZXJhYmxlCisKKyAgcmVnOgorICAgIG1heEl0ZW1zOiAxCisKKyAgaW50ZXJydXB0czoKKyAgICBpdGVtczoKKyAgICAgIC0gZGVzY3JpcHRpb246IEpvYiBpbnRlcnJ1cHQKKyAgICAgIC0gZGVzY3JpcHRpb246IE1NVSBpbnRlcnJ1cHQKKyAgICAgIC0gZGVzY3JpcHRpb246IEdQVSBpbnRlcnJ1cHQKKworICBpbnRlcnJ1cHQtbmFtZXM6CisgICAgaXRlbXM6CisgICAgICAtIGNvbnN0OiBqb2IKKyAgICAgIC0gY29uc3Q6IG1tdQorICAgICAgLSBjb25zdDogZ3B1CisKKyAgY2xvY2tzOgorICAgIG1heEl0ZW1zOiAxCisKKyAgbWFsaS1zdXBwbHk6CisgICAgbWF4SXRlbXM6IDEKKworICBvcGVyYXRpbmctcG9pbnRzLXYyOiB0cnVlCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSByZWcKKyAgLSBpbnRlcnJ1cHRzCisgIC0gaW50ZXJydXB0LW5hbWVzCisgIC0gY2xvY2tzCisKK2FsbE9mOgorICAtIGlmOgorICAgICAgcHJvcGVydGllczoKKyAgICAgICAgY29tcGF0aWJsZToKKyAgICAgICAgICBjb250YWluczoKKyAgICAgICAgICAgIGNvbnN0OiBhbWxvZ2ljLG1lc29uLWcxMmEtbWFsaQorICAgIHRoZW46CisgICAgICBwcm9wZXJ0aWVzOgorICAgICAgICByZXNldHM6CisgICAgICAgICAgbWluSXRlbXM6IDIKKyAgICAgIHJlcXVpcmVkOgorICAgICAgICAtIHJlc2V0cworCitleGFtcGxlczoKKyAgLSB8CisgICAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2lycS5oPgorICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hcm0tZ2ljLmg+CisKKyAgICBncHVAZmZlNDAwMDAgeworICAgICAgY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLWcxMmEtbWFsaSIsICJhcm0sbWFsaS1iaWZyb3N0IjsKKyAgICAgIHJlZyA9IDwweGZmZTQwMDAwIDB4MTAwMDA+OworICAgICAgaW50ZXJydXB0cyA9IDxHSUNfU1BJIDE2MCBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKKyAgICAgICAgICAgICA8R0lDX1NQSSAxNjEgSVJRX1RZUEVfTEVWRUxfSElHSD4sCisgICAgICAgICAgICAgPEdJQ19TUEkgMTYyIElSUV9UWVBFX0xFVkVMX0hJR0g+OworICAgICAgaW50ZXJydXB0LW5hbWVzID0gImpvYiIsICJtbXUiLCAiZ3B1IjsKKyAgICAgIGNsb2NrcyA9IDwmY2xrIDE+OworICAgICAgbWFsaS1zdXBwbHkgPSA8JnZkZF9ncHU+OworICAgICAgb3BlcmF0aW5nLXBvaW50cy12MiA9IDwmZ3B1X29wcF90YWJsZT47CisgICAgICByZXNldHMgPSA8JnJlc2V0IDA+LCA8JnJlc2V0IDE+OworICAgIH07CisKKyAgICBncHVfb3BwX3RhYmxlOiBvcHBfdGFibGUwIHsKKyAgICAgIGNvbXBhdGlibGUgPSAib3BlcmF0aW5nLXBvaW50cy12MiI7CisKKyAgICAgIG9wcEA1MzMwMDAwMDAgeworICAgICAgICBvcHAtaHogPSAvYml0cy8gNjQgPDUzMzAwMDAwMD47CisgICAgICAgIG9wcC1taWNyb3ZvbHQgPSA8MTI1MDAwMD47CisgICAgICB9OworICAgICAgb3BwQDQ1MDAwMDAwMCB7CisgICAgICAgIG9wcC1oeiA9IC9iaXRzLyA2NCA8NDUwMDAwMDAwPjsKKyAgICAgICAgb3BwLW1pY3Jvdm9sdCA9IDwxMTUwMDAwPjsKKyAgICAgIH07CisgICAgICBvcHBANDAwMDAwMDAwIHsKKyAgICAgICAgb3BwLWh6ID0gL2JpdHMvIDY0IDw0MDAwMDAwMDA+OworICAgICAgICBvcHAtbWljcm92b2x0ID0gPDExMjUwMDA+OworICAgICAgfTsKKyAgICAgIG9wcEAzNTAwMDAwMDAgeworICAgICAgICBvcHAtaHogPSAvYml0cy8gNjQgPDM1MDAwMDAwMD47CisgICAgICAgIG9wcC1taWNyb3ZvbHQgPSA8MTA3NTAwMD47CisgICAgICB9OworICAgICAgb3BwQDI2NjAwMDAwMCB7CisgICAgICAgIG9wcC1oeiA9IC9iaXRzLyA2NCA8MjY2MDAwMDAwPjsKKyAgICAgICAgb3BwLW1pY3Jvdm9sdCA9IDwxMDI1MDAwPjsKKyAgICAgIH07CisgICAgICBvcHBAMTYwMDAwMDAwIHsKKyAgICAgICAgb3BwLWh6ID0gL2JpdHMvIDY0IDwxNjAwMDAwMDA+OworICAgICAgICBvcHAtbWljcm92b2x0ID0gPDkyNTAwMD47CisgICAgICB9OworICAgICAgb3BwQDEwMDAwMDAwMCB7CisgICAgICAgIG9wcC1oeiA9IC9iaXRzLyA2NCA8MTAwMDAwMDAwPjsKKyAgICAgICAgb3BwLW1pY3Jvdm9sdCA9IDw5MTI1MDA+OworICAgICAgfTsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncHUvYXJtLG1hbGktbWlkZ2FyZC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3B1L2FybSxtYWxpLW1pZGdhcmQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjI5OGVkLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncHUvYXJtLG1hbGktbWlkZ2FyZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotQVJNIE1hbGkgTWlkZ2FyZCBHUFUKLT09PT09PT09PT09PT09PT09PT09Ci0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci0KLS0gY29tcGF0aWJsZSA6Ci0gICogTXVzdCBjb250YWluIG9uZSBvZiB0aGUgZm9sbG93aW5nOgotICAgICsgImFybSxtYWxpLXQ2MDQiCi0gICAgKyAiYXJtLG1hbGktdDYyNCIKLSAgICArICJhcm0sbWFsaS10NjI4IgotICAgICsgImFybSxtYWxpLXQ3MjAiCi0gICAgKyAiYXJtLG1hbGktdDc2MCIKLSAgICArICJhcm0sbWFsaS10ODIwIgotICAgICsgImFybSxtYWxpLXQ4MzAiCi0gICAgKyAiYXJtLG1hbGktdDg2MCIKLSAgICArICJhcm0sbWFsaS10ODgwIgotICAqIHdoaWNoIG11c3QgYmUgcHJlY2VkZWQgYnkgb25lIG9mIHRoZSBmb2xsb3dpbmcgdmVuZG9yIHNwZWNpZmljczoKLSAgICArICJhbGx3aW5uZXIsc3VuNTBpLWg2LW1hbGkiCi0gICAgKyAiYW1sb2dpYyxtZXNvbi1neG0tbWFsaSIKLSAgICArICJzYW1zdW5nLGV4eW5vczU0MzMtbWFsaSIKLSAgICArICJyb2NrY2hpcCxyazMyODgtbWFsaSIKLSAgICArICJyb2NrY2hpcCxyazMzOTktbWFsaSIKLQotLSByZWcgOiBQaHlzaWNhbCBiYXNlIGFkZHJlc3Mgb2YgdGhlIGRldmljZSBhbmQgbGVuZ3RoIG9mIHRoZSByZWdpc3RlciBhcmVhLgotCi0tIGludGVycnVwdHMgOiBDb250YWlucyB0aGUgdGhyZWUgSVJRIGxpbmVzIHJlcXVpcmVkIGJ5IE1hbGkgTWlkZ2FyZCBkZXZpY2VzLgotCi0tIGludGVycnVwdC1uYW1lcyA6IENvbnRhaW5zIHRoZSBuYW1lcyBvZiBJUlEgcmVzb3VyY2VzIGluIHRoZSBvcmRlciB0aGV5IHdlcmUKLSAgcHJvdmlkZWQgaW4gdGhlIGludGVycnVwdHMgcHJvcGVydHkuIE11c3QgY29udGFpbjogImpvYiIsICJtbXUiLCAiZ3B1Ii4KLQotCi1PcHRpb25hbCBwcm9wZXJ0aWVzOgotCi0tIGNsb2NrcyA6IFBoYW5kbGUgdG8gY2xvY2sgZm9yIHRoZSBNYWxpIE1pZGdhcmQgZGV2aWNlLgotCi0tIGNsb2NrLW5hbWVzIDogU3BlY2lmeSB0aGUgbmFtZXMgb2YgdGhlIGNsb2NrcyBzcGVjaWZpZWQgaW4gY2xvY2tzCi0gIHdoZW4gbXVsdGlwbGUgY2xvY2tzIGFyZSBwcmVzZW50LgotICAgICogY29yZTogY2xvY2sgZHJpdmluZyB0aGUgR1BVIGl0c2VsZiAoV2hlbiBvbmx5IG9uZSBjbG9jayBpcyBwcmVzZW50LAotICAgICAgYXNzdW1lIGl0J3MgdGhpcyBjbG9jay4pCi0gICAgKiBidXM6IGJ1cyBjbG9jayBmb3IgdGhlIEdQVQotCi0tIG1hbGktc3VwcGx5IDogUGhhbmRsZSB0byByZWd1bGF0b3IgZm9yIHRoZSBNYWxpIGRldmljZS4gUmVmZXIgdG8KLSAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3JlZ3VsYXRvci9yZWd1bGF0b3IudHh0IGZvciBkZXRhaWxzLgotCi0tIG9wZXJhdGluZy1wb2ludHMtdjIgOiBSZWZlciB0byBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvb3BwL29wcC50eHQKLSAgZm9yIGRldGFpbHMuCi0KLS0gI2Nvb2xpbmctY2VsbHM6IFJlZmVyIHRvIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90aGVybWFsL3RoZXJtYWwudHh0Ci0gIGZvciBkZXRhaWxzLgotCi0tIHJlc2V0cyA6IFBoYW5kbGUgb2YgdGhlIEdQVSByZXNldCBsaW5lLgotCi1WZW5kb3Itc3BlY2lmaWMgYmluZGluZ3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgTWFsaSBHUFUgaXMgaW50ZWdyYXRlZCB2ZXJ5IGRpZmZlcmVudGx5IGZyb20gb25lIFNvQyB0bwotYW5vdGhlci4gSW4gb3JkZXIgdG8gYWNjb21tb2RhdGUgdGhvc2UgZGlmZmVyZW5jZXMsIHlvdSBoYXZlIHRoZSBvcHRpb24KLXRvIHNwZWNpZnkgb25lIG1vcmUgdmVuZG9yLXNwZWNpZmljIGNvbXBhdGlibGUsIGFtb25nOgotCi0tICJhbGx3aW5uZXIsc3VuNTBpLWg2LW1hbGkiCi0gIFJlcXVpcmVkIHByb3BlcnRpZXM6Ci0gIC0gY2xvY2tzIDogcGhhbmRsZXMgdG8gY29yZSBhbmQgYnVzIGNsb2NrcwotICAtIGNsb2NrLW5hbWVzIDogbXVzdCBjb250YWluICJjb3JlIiBhbmQgImJ1cyIKLSAgLSByZXNldHM6IHBoYW5kbGUgdG8gR1BVIHJlc2V0IGxpbmUKLQotLSAiYW1sb2dpYyxtZXNvbi1neG0tbWFsaSIKLSAgUmVxdWlyZWQgcHJvcGVydGllczoKLSAgLSByZXNldHMgOiBTaG91bGQgY29udGFpbiBwaGFuZGxlcyBvZiA6Ci0gICAgKyBHUFUgcmVzZXQgbGluZQotICAgICsgR1BVIEFQQiBnbHVlIHJlc2V0IGxpbmUKLQotRXhhbXBsZSBmb3IgYSBNYWxpLVQ3NjA6Ci0KLWdwdUBmZmEzMDAwMCB7Ci0JY29tcGF0aWJsZSA9ICJyb2NrY2hpcCxyazMyODgtbWFsaSIsICJhcm0sbWFsaS10NzYwIjsKLQlyZWcgPSA8MHhmZmEzMDAwMCAweDEwMDAwPjsKLQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgNiBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKLQkJICAgICA8R0lDX1NQSSA3IElSUV9UWVBFX0xFVkVMX0hJR0g+LAotCQkgICAgIDxHSUNfU1BJIDggSVJRX1RZUEVfTEVWRUxfSElHSD47Ci0JaW50ZXJydXB0LW5hbWVzID0gImpvYiIsICJtbXUiLCAiZ3B1IjsKLQljbG9ja3MgPSA8JmNydSBBQ0xLX0dQVT47Ci0JbWFsaS1zdXBwbHkgPSA8JnZkZF9ncHU+OwotCW9wZXJhdGluZy1wb2ludHMtdjIgPSA8JmdwdV9vcHBfdGFibGU+OwotCXBvd2VyLWRvbWFpbnMgPSA8JnBvd2VyIFJLMzI4OF9QRF9HUFU+OwotCSNjb29saW5nLWNlbGxzID0gPDI+OwotfTsKLQotZ3B1X29wcF90YWJsZTogb3BwX3RhYmxlMCB7Ci0JY29tcGF0aWJsZSA9ICJvcGVyYXRpbmctcG9pbnRzLXYyIjsKLQotCW9wcEA1MzMwMDAwMDAgewotCQlvcHAtaHogPSAvYml0cy8gNjQgPDUzMzAwMDAwMD47Ci0JCW9wcC1taWNyb3ZvbHQgPSA8MTI1MDAwMD47Ci0JfTsKLQlvcHBANDUwMDAwMDAwIHsKLQkJb3BwLWh6ID0gL2JpdHMvIDY0IDw0NTAwMDAwMDA+OwotCQlvcHAtbWljcm92b2x0ID0gPDExNTAwMDA+OwotCX07Ci0Jb3BwQDQwMDAwMDAwMCB7Ci0JCW9wcC1oeiA9IC9iaXRzLyA2NCA8NDAwMDAwMDAwPjsKLQkJb3BwLW1pY3Jvdm9sdCA9IDwxMTI1MDAwPjsKLQl9OwotCW9wcEAzNTAwMDAwMDAgewotCQlvcHAtaHogPSAvYml0cy8gNjQgPDM1MDAwMDAwMD47Ci0JCW9wcC1taWNyb3ZvbHQgPSA8MTA3NTAwMD47Ci0JfTsKLQlvcHBAMjY2MDAwMDAwIHsKLQkJb3BwLWh6ID0gL2JpdHMvIDY0IDwyNjYwMDAwMDA+OwotCQlvcHAtbWljcm92b2x0ID0gPDEwMjUwMDA+OwotCX07Ci0Jb3BwQDE2MDAwMDAwMCB7Ci0JCW9wcC1oeiA9IC9iaXRzLyA2NCA8MTYwMDAwMDAwPjsKLQkJb3BwLW1pY3Jvdm9sdCA9IDw5MjUwMDA+OwotCX07Ci0Jb3BwQDEwMDAwMDAwMCB7Ci0JCW9wcC1oeiA9IC9iaXRzLyA2NCA8MTAwMDAwMDAwPjsKLQkJb3BwLW1pY3Jvdm9sdCA9IDw5MTI1MDA+OwotCX07Ci19OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwdS9hcm0sbWFsaS1taWRnYXJkLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3B1L2FybSxtYWxpLW1pZGdhcmQueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2JjMWFjCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwdS9hcm0sbWFsaS1taWRnYXJkLnlhbWwKQEAgLTAsMCArMSwxNjggQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZ3B1L2FybSxtYWxpLW1pZGdhcmQueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogQVJNIE1hbGkgTWlkZ2FyZCBHUFUKKworbWFpbnRhaW5lcnM6CisgIC0gUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KKworcHJvcGVydGllczoKKyAgJG5vZGVuYW1lOgorICAgIHBhdHRlcm46ICdeZ3B1QFthLWYwLTldKyQnCisgIGNvbXBhdGlibGU6CisgICAgb25lT2Y6CisgICAgICAtIGl0ZW1zOgorICAgICAgICAgIC0gZW51bToKKyAgICAgICAgICAgICAtIGFsbHdpbm5lcixzdW41MGktaDYtbWFsaQorICAgICAgICAgIC0gY29uc3Q6IGFybSxtYWxpLXQ3MjAKKyAgICAgIC0gaXRlbXM6CisgICAgICAgICAgLSBlbnVtOgorICAgICAgICAgICAgIC0gYW1sb2dpYyxtZXNvbi1neG0tbWFsaQorICAgICAgICAgIC0gY29uc3Q6IGFybSxtYWxpLXQ4MjAKKyAgICAgIC0gaXRlbXM6CisgICAgICAgICAgLSBlbnVtOgorICAgICAgICAgICAgIC0gcm9ja2NoaXAscmszMjg4LW1hbGkKKyAgICAgICAgICAtIGNvbnN0OiBhcm0sbWFsaS10NzYwCisgICAgICAtIGl0ZW1zOgorICAgICAgICAgIC0gZW51bToKKyAgICAgICAgICAgICAtIHJvY2tjaGlwLHJrMzM5OS1tYWxpCisgICAgICAgICAgLSBjb25zdDogYXJtLG1hbGktdDg2MAorICAgICAgLSBpdGVtczoKKyAgICAgICAgICAtIGVudW06CisgICAgICAgICAgICAgLSBzYW1zdW5nLGV4eW5vczUyNTAtbWFsaQorICAgICAgICAgIC0gY29uc3Q6IGFybSxtYWxpLXQ2MDQKKyAgICAgIC0gaXRlbXM6CisgICAgICAgICAgLSBlbnVtOgorICAgICAgICAgICAgIC0gc2Ftc3VuZyxleHlub3M1NDMzLW1hbGkKKyAgICAgICAgICAtIGNvbnN0OiBhcm0sbWFsaS10NzYwCisKKyAgICAgICAgICAjICJhcm0sbWFsaS10NjI0IgorICAgICAgICAgICMgImFybSxtYWxpLXQ2MjgiCisgICAgICAgICAgIyAiYXJtLG1hbGktdDgzMCIKKyAgICAgICAgICAjICJhcm0sbWFsaS10ODgwIgorCisgIHJlZzoKKyAgICBtYXhJdGVtczogMQorCisgIGludGVycnVwdHM6CisgICAgaXRlbXM6CisgICAgICAtIGRlc2NyaXB0aW9uOiBKb2IgaW50ZXJydXB0CisgICAgICAtIGRlc2NyaXB0aW9uOiBNTVUgaW50ZXJydXB0CisgICAgICAtIGRlc2NyaXB0aW9uOiBHUFUgaW50ZXJydXB0CisKKyAgaW50ZXJydXB0LW5hbWVzOgorICAgIGl0ZW1zOgorICAgICAgLSBjb25zdDogam9iCisgICAgICAtIGNvbnN0OiBtbXUKKyAgICAgIC0gY29uc3Q6IGdwdQorCisgIGNsb2NrczoKKyAgICBtaW5JdGVtczogMQorICAgIG1heEl0ZW1zOiAyCisKKyAgY2xvY2stbmFtZXM6CisgICAgbWluSXRlbXM6IDEKKyAgICBpdGVtczoKKyAgICAgIC0gY29uc3Q6IGNvcmUKKyAgICAgIC0gY29uc3Q6IGJ1cworCisgIG1hbGktc3VwcGx5OgorICAgIG1heEl0ZW1zOiAxCisKKyAgcmVzZXRzOgorICAgIG1pbkl0ZW1zOiAxCisgICAgbWF4SXRlbXM6IDIKKworICBvcGVyYXRpbmctcG9pbnRzLXYyOiB0cnVlCisKKyAgIiNjb29saW5nLWNlbGxzIjoKKyAgICBjb25zdDogMgorCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisgIC0gcmVnCisgIC0gaW50ZXJydXB0cworICAtIGludGVycnVwdC1uYW1lcworICAtIGNsb2NrcworCithbGxPZjoKKyAgLSBpZjoKKyAgICAgIHByb3BlcnRpZXM6CisgICAgICAgIGNvbXBhdGlibGU6CisgICAgICAgICAgY29udGFpbnM6CisgICAgICAgICAgICBjb25zdDogYWxsd2lubmVyLHN1bjUwaS1oNi1tYWxpCisgICAgdGhlbjoKKyAgICAgIHByb3BlcnRpZXM6CisgICAgICAgIGNsb2NrczoKKyAgICAgICAgICBtaW5JdGVtczogMgorICAgICAgcmVxdWlyZWQ6CisgICAgICAgIC0gY2xvY2stbmFtZXMKKyAgICAgICAgLSByZXNldHMKKyAgLSBpZjoKKyAgICAgIHByb3BlcnRpZXM6CisgICAgICAgIGNvbXBhdGlibGU6CisgICAgICAgICAgY29udGFpbnM6CisgICAgICAgICAgICBjb25zdDogYW1sb2dpYyxtZXNvbi1neG0tbWFsaQorICAgIHRoZW46CisgICAgICBwcm9wZXJ0aWVzOgorICAgICAgICByZXNldHM6CisgICAgICAgICAgbWluSXRlbXM6IDIKKyAgICAgIHJlcXVpcmVkOgorICAgICAgICAtIHJlc2V0cworCitleGFtcGxlczoKKyAgLSB8CisgICAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2lycS5oPgorICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hcm0tZ2ljLmg+CisKKyAgICBncHVAZmZhMzAwMDAgeworICAgICAgY29tcGF0aWJsZSA9ICJyb2NrY2hpcCxyazMyODgtbWFsaSIsICJhcm0sbWFsaS10NzYwIjsKKyAgICAgIHJlZyA9IDwweGZmYTMwMDAwIDB4MTAwMDA+OworICAgICAgaW50ZXJydXB0cyA9IDxHSUNfU1BJIDYgSVJRX1RZUEVfTEVWRUxfSElHSD4sCisgICAgICAgICAgICAgPEdJQ19TUEkgNyBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKKyAgICAgICAgICAgICA8R0lDX1NQSSA4IElSUV9UWVBFX0xFVkVMX0hJR0g+OworICAgICAgaW50ZXJydXB0LW5hbWVzID0gImpvYiIsICJtbXUiLCAiZ3B1IjsKKyAgICAgIGNsb2NrcyA9IDwmY3J1IDA+OworICAgICAgbWFsaS1zdXBwbHkgPSA8JnZkZF9ncHU+OworICAgICAgb3BlcmF0aW5nLXBvaW50cy12MiA9IDwmZ3B1X29wcF90YWJsZT47CisgICAgICBwb3dlci1kb21haW5zID0gPCZwb3dlciAwPjsKKyAgICAgICNjb29saW5nLWNlbGxzID0gPDI+OworICAgIH07CisKKyAgICBncHVfb3BwX3RhYmxlOiBvcHBfdGFibGUwIHsKKyAgICAgIGNvbXBhdGlibGUgPSAib3BlcmF0aW5nLXBvaW50cy12MiI7CisKKyAgICAgIG9wcEA1MzMwMDAwMDAgeworICAgICAgICBvcHAtaHogPSAvYml0cy8gNjQgPDUzMzAwMDAwMD47CisgICAgICAgIG9wcC1taWNyb3ZvbHQgPSA8MTI1MDAwMD47CisgICAgICB9OworICAgICAgb3BwQDQ1MDAwMDAwMCB7CisgICAgICAgIG9wcC1oeiA9IC9iaXRzLyA2NCA8NDUwMDAwMDAwPjsKKyAgICAgICAgb3BwLW1pY3Jvdm9sdCA9IDwxMTUwMDAwPjsKKyAgICAgIH07CisgICAgICBvcHBANDAwMDAwMDAwIHsKKyAgICAgICAgb3BwLWh6ID0gL2JpdHMvIDY0IDw0MDAwMDAwMDA+OworICAgICAgICBvcHAtbWljcm92b2x0ID0gPDExMjUwMDA+OworICAgICAgfTsKKyAgICAgIG9wcEAzNTAwMDAwMDAgeworICAgICAgICBvcHAtaHogPSAvYml0cy8gNjQgPDM1MDAwMDAwMD47CisgICAgICAgIG9wcC1taWNyb3ZvbHQgPSA8MTA3NTAwMD47CisgICAgICB9OworICAgICAgb3BwQDI2NjAwMDAwMCB7CisgICAgICAgIG9wcC1oeiA9IC9iaXRzLyA2NCA8MjY2MDAwMDAwPjsKKyAgICAgICAgb3BwLW1pY3Jvdm9sdCA9IDwxMDI1MDAwPjsKKyAgICAgIH07CisgICAgICBvcHBAMTYwMDAwMDAwIHsKKyAgICAgICAgb3BwLWh6ID0gL2JpdHMvIDY0IDwxNjAwMDAwMDA+OworICAgICAgICBvcHAtbWljcm92b2x0ID0gPDkyNTAwMD47CisgICAgICB9OworICAgICAgb3BwQDEwMDAwMDAwMCB7CisgICAgICAgIG9wcC1oeiA9IC9iaXRzLyA2NCA8MTAwMDAwMDAwPjsKKyAgICAgICAgb3BwLW1pY3Jvdm9sdCA9IDw5MTI1MDA+OworICAgICAgfTsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncHUvYXJtLG1hbGktdXRnYXJkLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncHUvYXJtLG1hbGktdXRnYXJkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjM1MmE2OC4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3B1L2FybSxtYWxpLXV0Z2FyZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotQVJNIE1hbGkgVXRnYXJkIEdQVQotPT09PT09PT09PT09PT09PT09PQotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotICAtIGNvbXBhdGlibGUKLSAgICAqIE11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6Ci0gICAgICArICJhcm0sbWFsaS0zMDAiCi0gICAgICArICJhcm0sbWFsaS00MDAiCi0gICAgICArICJhcm0sbWFsaS00NTAiCi0gICAgKiBBbmQsIG9wdGlvbmFsbHksIG9uZSBvZiB0aGUgdmVuZG9yIHNwZWNpZmljIGNvbXBhdGlibGU6Ci0gICAgICArIGFsbHdpbm5lcixzdW40aS1hMTAtbWFsaQotICAgICAgKyBhbGx3aW5uZXIsc3VuN2ktYTIwLW1hbGkKLSAgICAgICsgYWxsd2lubmVyLHN1bjhpLWgzLW1hbGkKLSAgICAgICsgYWxsd2lubmVyLHN1bjUwaS1hNjQtbWFsaQotICAgICAgKyBhbGx3aW5uZXIsc3VuNTBpLWg1LW1hbGkKLSAgICAgICsgYW1sb2dpYyxtZXNvbjgtbWFsaQotICAgICAgKyBhbWxvZ2ljLG1lc29uOGItbWFsaQotICAgICAgKyBhbWxvZ2ljLG1lc29uLWd4YmItbWFsaQotICAgICAgKyBhbWxvZ2ljLG1lc29uLWd4bC1tYWxpCi0gICAgICArIHNhbXN1bmcsZXh5bm9zNDIxMC1tYWxpCi0gICAgICArIHJvY2tjaGlwLHJrMzAzNi1tYWxpCi0gICAgICArIHJvY2tjaGlwLHJrMzA2Ni1tYWxpCi0gICAgICArIHJvY2tjaGlwLHJrMzE4OC1tYWxpCi0gICAgICArIHJvY2tjaGlwLHJrMzIyOC1tYWxpCi0gICAgICArIHJvY2tjaGlwLHJrMzMyOC1tYWxpCi0gICAgICArIHN0ZXJpY3Nzb24sZGI4NTAwLW1hbGkKLQotICAtIHJlZzogUGh5c2ljYWwgYmFzZSBhZGRyZXNzIGFuZCBsZW5ndGggb2YgdGhlIEdQVSByZWdpc3RlcnMKLQotICAtIGludGVycnVwdHM6IGFuIGVudHJ5IGZvciBlYWNoIGVudHJ5IGluIGludGVycnVwdC1uYW1lcy4KLSAgICBTZWUgLi4vaW50ZXJydXB0LWNvbnRyb2xsZXIvaW50ZXJydXB0cy50eHQgZm9yIGRldGFpbHMuCi0KLSAgLSBpbnRlcnJ1cHQtbmFtZXM6Ci0gICAgKiBwcFg6IFBpeGVsIFByb2Nlc3NvciBYIGludGVycnVwdCAoWCBmcm9tIDAgdG8gNykKLSAgICAqIHBwbW11WDogUGl4ZWwgUHJvY2Vzc29yIFggTU1VIGludGVycnVwdCAoWCBmcm9tIDAgdG8gNykKLSAgICAqIHBwOiBQaXhlbCBQcm9jZXNzb3IgYnJvYWRjYXN0IGludGVycnVwdCAobWFsaS00NTAgb25seSkKLSAgICAqIGdwOiBHZW9tZXRyeSBQcm9jZXNzb3IgaW50ZXJydXB0Ci0gICAgKiBncG1tdTogR2VvbWV0cnkgUHJvY2Vzc29yIE1NVSBpbnRlcnJ1cHQKLQotICAtIGNsb2NrczogYW4gZW50cnkgZm9yIGVhY2ggZW50cnkgaW4gY2xvY2stbmFtZXMKLSAgLSBjbG9jay1uYW1lczoKLSAgICAqIGJ1czogYnVzIGNsb2NrIGZvciB0aGUgR1BVCi0gICAgKiBjb3JlOiBjbG9jayBkcml2aW5nIHRoZSBHUFUgaXRzZWxmCi0KLU9wdGlvbmFsIHByb3BlcnRpZXM6Ci0gIC0gaW50ZXJydXB0LW5hbWVzIGFuZCBpbnRlcnJ1cHRzOgotICAgICogcG11OiBQb3dlciBNYW5hZ2VtZW50IFVuaXQgaW50ZXJydXB0LCBpZiBpbXBsZW1lbnRlZCBpbiBoYXJkd2FyZQotCi0gIC0gbWVtb3J5LXJlZ2lvbjoKLSAgICBNZW1vcnkgcmVnaW9uIHRvIGFsbG9jYXRlIGZyb20sIGFzIGRlZmluZWQgaW4KLSAgICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXJ2ZWQtbWVtb3J5L3Jlc2VydmVkLW1lbW9yeS50eHQKLQotICAtIG1hbGktc3VwcGx5OgotICAgIFBoYW5kbGUgdG8gcmVndWxhdG9yIGZvciB0aGUgTWFsaSBkZXZpY2UsIGFzIGRlZmluZWQgaW4KLSAgICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVndWxhdG9yL3JlZ3VsYXRvci50eHQgZm9yIGRldGFpbHMuCi0KLSAgLSBvcGVyYXRpbmctcG9pbnRzLXYyOgotICAgIE9wZXJhdGluZyBQb2ludHMgZm9yIHRoZSBHUFUsIGFzIGRlZmluZWQgaW4KLSAgICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvb3BwL29wcC50eHQKLQotICAtIHBvd2VyLWRvbWFpbnM6Ci0gICAgQSBwb3dlciBkb21haW4gY29uc3VtZXIgc3BlY2lmaWVyIGFzIGRlZmluZWQgaW4KLSAgICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcG93ZXIvcG93ZXJfZG9tYWluLnR4dAotCi1WZW5kb3Itc3BlY2lmaWMgYmluZGluZ3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgTWFsaSBHUFUgaXMgaW50ZWdyYXRlZCB2ZXJ5IGRpZmZlcmVudGx5IGZyb20gb25lIFNvQyB0bwotYW5vdGhlci4gSW4gb3JkZXIgdG8gYWNjb21vZGF0ZSB0aG9zZSBkaWZmZXJlbmNlcywgeW91IGhhdmUgdGhlIG9wdGlvbgotdG8gc3BlY2lmeSBvbmUgbW9yZSB2ZW5kb3Itc3BlY2lmaWMgY29tcGF0aWJsZSwgYW1vbmc6Ci0KLSAgLSBhbGx3aW5uZXIsc3VuNGktYTEwLW1hbGkKLSAgICBSZXF1aXJlZCBwcm9wZXJ0aWVzOgotICAgICAgKiByZXNldHM6IHBoYW5kbGUgdG8gdGhlIHJlc2V0IGxpbmUgZm9yIHRoZSBHUFUKLQotICAtIGFsbHdpbm5lcixzdW43aS1hMjAtbWFsaQotICAgIFJlcXVpcmVkIHByb3BlcnRpZXM6Ci0gICAgICAqIHJlc2V0czogcGhhbmRsZSB0byB0aGUgcmVzZXQgbGluZSBmb3IgdGhlIEdQVQotCi0gIC0gYWxsd2lubmVyLHN1bjUwaS1hNjQtbWFsaQotICAgIFJlcXVpcmVkIHByb3BlcnRpZXM6Ci0gICAgICAqIHJlc2V0czogcGhhbmRsZSB0byB0aGUgcmVzZXQgbGluZSBmb3IgdGhlIEdQVQotCi0gIC0gYWxsd2lubmVyLHN1bjUwaS1oNS1tYWxpCi0gICAgUmVxdWlyZWQgcHJvcGVydGllczoKLSAgICAgICogcmVzZXRzOiBwaGFuZGxlIHRvIHRoZSByZXNldCBsaW5lIGZvciB0aGUgR1BVCi0KLSAgLSBhbWxvZ2ljLG1lc29uOC1tYWxpIGFuZCBhbWxvZ2ljLG1lc29uOGItbWFsaQotICAgIFJlcXVpcmVkIHByb3BlcnRpZXM6Ci0gICAgICAqIHJlc2V0czogcGhhbmRsZSB0byB0aGUgcmVzZXQgbGluZSBmb3IgdGhlIEdQVQotCi0gIC0gUm9ja2NoaXAgdmFyaWFudHM6Ci0gICAgUmVxdWlyZWQgcHJvcGVydGllczoKLSAgICAgICogcmVzZXRzOiBwaGFuZGxlIHRvIHRoZSByZXNldCBsaW5lIGZvciB0aGUgR1BVCi0KLSAgLSBzdGVyaWNzc29uLGRiODUwMC1tYWxpCi0gICAgUmVxdWlyZWQgcHJvcGVydGllczoKLSAgICAgICogaW50ZXJydXB0LW5hbWVzIGFuZCBpbnRlcnJ1cHRzOgotICAgICAgICArIGNvbWJpbmVkOiBjb21iaW5lZCBpbnRlcnJ1cHQgb2YgYWxsIG9mIHRoZSBhYm92ZSBsaW5lcwotCi1FeGFtcGxlOgotCi1tYWxpOiBncHVAMWM0MDAwMCB7Ci0JY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuN2ktYTIwLW1hbGkiLCAiYXJtLG1hbGktNDAwIjsKLQlyZWcgPSA8MHgwMWM0MDAwMCAweDEwMDAwPjsKLQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgOTcgSVJRX1RZUEVfTEVWRUxfSElHSD4sCi0JCSAgICAgPEdJQ19TUEkgOTggSVJRX1RZUEVfTEVWRUxfSElHSD4sCi0JCSAgICAgPEdJQ19TUEkgOTkgSVJRX1RZUEVfTEVWRUxfSElHSD4sCi0JCSAgICAgPEdJQ19TUEkgMTAwIElSUV9UWVBFX0xFVkVMX0hJR0g+LAotCQkgICAgIDxHSUNfU1BJIDEwMiBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKLQkJICAgICA8R0lDX1NQSSAxMDMgSVJRX1RZUEVfTEVWRUxfSElHSD4sCi0JCSAgICAgPEdJQ19TUEkgMTAxIElSUV9UWVBFX0xFVkVMX0hJR0g+OwotCWludGVycnVwdC1uYW1lcyA9ICJncCIsCi0JCQkgICJncG1tdSIsCi0JCQkgICJwcDAiLAotCQkJICAicHBtbXUwIiwKLQkJCSAgInBwMSIsCi0JCQkgICJwcG1tdTEiLAotCQkJICAicG11IjsKLQljbG9ja3MgPSA8JmNjdSBDTEtfQlVTX0dQVT4sIDwmY2N1IENMS19HUFU+OwotCWNsb2NrLW5hbWVzID0gImJ1cyIsICJjb3JlIjsKLQlyZXNldHMgPSA8JmNjdSBSU1RfQlVTX0dQVT47Ci19OwotCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3B1L2FybSxtYWxpLXV0Z2FyZC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwdS9hcm0sbWFsaS11dGdhcmQueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWQ5M2M1Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwdS9hcm0sbWFsaS11dGdhcmQueWFtbApAQCAtMCwwICsxLDE2OCBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9ncHUvYXJtLG1hbGktdXRnYXJkLnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IEFSTSBNYWxpIFV0Z2FyZCBHUFUKKworbWFpbnRhaW5lcnM6CisgIC0gUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KKyAgLSBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGZyZWUtZWxlY3Ryb25zLmNvbT4KKyAgLSBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPgorCitwcm9wZXJ0aWVzOgorICAkbm9kZW5hbWU6CisgICAgcGF0dGVybjogJ15ncHVAW2EtZjAtOV0rJCcKKyAgY29tcGF0aWJsZToKKyAgICBvbmVPZjoKKyAgICAgIC0gaXRlbXM6CisgICAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjhpLWEyMy1tYWxpCisgICAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjdpLWEyMC1tYWxpCisgICAgICAgICAgLSBjb25zdDogYXJtLG1hbGktNDAwCisgICAgICAtIGl0ZW1zOgorICAgICAgICAgIC0gZW51bToKKyAgICAgICAgICAgICAgLSBhbGx3aW5uZXIsc3VuNGktYTEwLW1hbGkKKyAgICAgICAgICAgICAgLSBhbGx3aW5uZXIsc3VuN2ktYTIwLW1hbGkKKyAgICAgICAgICAgICAgLSBhbGx3aW5uZXIsc3VuOGktaDMtbWFsaQorICAgICAgICAgICAgICAtIGFsbHdpbm5lcixzdW41MGktYTY0LW1hbGkKKyAgICAgICAgICAgICAgLSByb2NrY2hpcCxyazMwMzYtbWFsaQorICAgICAgICAgICAgICAtIHJvY2tjaGlwLHJrMzA2Ni1tYWxpCisgICAgICAgICAgICAgIC0gcm9ja2NoaXAscmszMTg4LW1hbGkKKyAgICAgICAgICAgICAgLSByb2NrY2hpcCxyazMyMjgtbWFsaQorICAgICAgICAgICAgICAtIHNhbXN1bmcsZXh5bm9zNDIxMC1tYWxpCisgICAgICAgICAgICAgIC0gc3Rlcmljc3NvbixkYjg1MDAtbWFsaQorICAgICAgICAgIC0gY29uc3Q6IGFybSxtYWxpLTQwMAorICAgICAgLSBpdGVtczoKKyAgICAgICAgICAtIGVudW06CisgICAgICAgICAgICAgIC0gYWxsd2lubmVyLHN1bjUwaS1oNS1tYWxpCisgICAgICAgICAgICAgIC0gYW1sb2dpYyxtZXNvbjgtbWFsaQorICAgICAgICAgICAgICAtIGFtbG9naWMsbWVzb244Yi1tYWxpCisgICAgICAgICAgICAgIC0gYW1sb2dpYyxtZXNvbi1neGJiLW1hbGkKKyAgICAgICAgICAgICAgLSBhbWxvZ2ljLG1lc29uLWd4bC1tYWxpCisgICAgICAgICAgICAgIC0gaGlzaWxpY29uLGhpNjIyMC1tYWxpCisgICAgICAgICAgICAgIC0gcm9ja2NoaXAscmszMzI4LW1hbGkKKyAgICAgICAgICAtIGNvbnN0OiBhcm0sbWFsaS00NTAKKworICAgICAgIyAiYXJtLG1hbGktMzAwIgorCisgIHJlZzoKKyAgICBtYXhJdGVtczogMQorCisgIGludGVycnVwdHM6CisgICAgbWluSXRlbXM6IDQKKyAgICBtYXhJdGVtczogMjAKKworICBpbnRlcnJ1cHQtbmFtZXM6CisgICAgYWxsT2Y6CisgICAgICAtIGFkZGl0aW9uYWxJdGVtczogdHJ1ZQorICAgICAgICBtaW5JdGVtczogNAorICAgICAgICBtYXhJdGVtczogMjAKKyAgICAgICAgaXRlbXM6CisgICAgICAgICAgIyBBdCBsZWFzdCBlbmZvcmNlIHRoZSBmaXJzdCAyIGludGVycnVwdHMKKyAgICAgICAgICAtIGNvbnN0OiBncAorICAgICAgICAgIC0gY29uc3Q6IGdwbW11CisgICAgICAtIGl0ZW1zOgorICAgICAgICAgICMgTm90IGlkZWFsIGFzIGFueSBvcmRlciBhbmQgY29tYmluYXRpb24gYXJlIGFsbG93ZWQKKyAgICAgICAgICBlbnVtOgorICAgICAgICAgICAgLSBncCAgICAgICAgIyBHZW9tZXRyeSBQcm9jZXNzb3IgaW50ZXJydXB0CisgICAgICAgICAgICAtIGdwbW11ICAgICAjIEdlb21ldHJ5IFByb2Nlc3NvciBNTVUgaW50ZXJydXB0CisgICAgICAgICAgICAtIHBwICAgICAgICAjIFBpeGVsIFByb2Nlc3NvciBicm9hZGNhc3QgaW50ZXJydXB0IChtYWxpLTQ1MCBvbmx5KQorICAgICAgICAgICAgLSBwcDAgICAgICAgIyBQaXhlbCBQcm9jZXNzb3IgWCBpbnRlcnJ1cHQgKFggZnJvbSAwIHRvIDcpCisgICAgICAgICAgICAtIHBwbW11MCAgICAjIFBpeGVsIFByb2Nlc3NvciBYIE1NVSBpbnRlcnJ1cHQgKFggZnJvbSAwIHRvIDcpCisgICAgICAgICAgICAtIHBwMQorICAgICAgICAgICAgLSBwcG1tdTEKKyAgICAgICAgICAgIC0gcHAyCisgICAgICAgICAgICAtIHBwbW11MgorICAgICAgICAgICAgLSBwcDMKKyAgICAgICAgICAgIC0gcHBtbXUzCisgICAgICAgICAgICAtIHBwNAorICAgICAgICAgICAgLSBwcG1tdTQKKyAgICAgICAgICAgIC0gcHA1CisgICAgICAgICAgICAtIHBwbW11NQorICAgICAgICAgICAgLSBwcDYKKyAgICAgICAgICAgIC0gcHBtbXU2CisgICAgICAgICAgICAtIHBwNworICAgICAgICAgICAgLSBwcG1tdTcKKyAgICAgICAgICAgIC0gcG11ICAgICAgICMgUG93ZXIgTWFuYWdlbWVudCBVbml0IGludGVycnVwdCAob3B0aW9uYWwpCisgICAgICAgICAgICAtIGNvbWJpbmVkICAjIHN0ZXJpY3Nzb24sZGI4NTAwLW1hbGkgb25seQorCisgIGNsb2NrczoKKyAgICBtYXhJdGVtczogMgorCisgIGNsb2NrLW5hbWVzOgorICAgIGl0ZW1zOgorICAgICAgLSBjb25zdDogYnVzCisgICAgICAtIGNvbnN0OiBjb3JlCisKKyAgbWVtb3J5LXJlZ2lvbjogdHJ1ZQorCisgIG1hbGktc3VwcGx5OgorICAgIG1heEl0ZW1zOiAxCisKKyAgcG93ZXItZG9tYWluczoKKyAgICBtYXhJdGVtczogMQorCisgIHJlc2V0czoKKyAgICBtYXhJdGVtczogMQorCisgIG9wZXJhdGluZy1wb2ludHMtdjI6IHRydWUKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtIGludGVycnVwdHMKKyAgLSBpbnRlcnJ1cHQtbmFtZXMKKyAgLSBjbG9ja3MKKyAgLSBjbG9jay1uYW1lcworCithbGxPZjoKKyAgLSBpZjoKKyAgICAgIHByb3BlcnRpZXM6CisgICAgICAgIGNvbXBhdGlibGU6CisgICAgICAgICAgY29udGFpbnM6CisgICAgICAgICAgICBlbnVtOgorICAgICAgICAgICAgICAtIGFsbHdpbm5lcixzdW40aS1hMTAtbWFsaQorICAgICAgICAgICAgICAtIGFsbHdpbm5lcixzdW43aS1hMjAtbWFsaQorICAgICAgICAgICAgICAtIGFsbHdpbm5lcixzdW41MGktYTY0LW1hbGkKKyAgICAgICAgICAgICAgLSBhbGx3aW5uZXIsc3VuNTBpLWg1LW1hbGkKKyAgICAgICAgICAgICAgLSBhbWxvZ2ljLG1lc29uOC1tYWxpCisgICAgICAgICAgICAgIC0gYW1sb2dpYyxtZXNvbjhiLW1hbGkKKyAgICAgICAgICAgICAgLSBoaXNpbGljb24saGk2MjIwLW1hbGkKKyAgICAgICAgICAgICAgLSByb2NrY2hpcCxyazMwMzYtbWFsaQorICAgICAgICAgICAgICAtIHJvY2tjaGlwLHJrMzA2Ni1tYWxpCisgICAgICAgICAgICAgIC0gcm9ja2NoaXAscmszMTg4LW1hbGkKKyAgICAgICAgICAgICAgLSByb2NrY2hpcCxyazMyMjgtbWFsaQorICAgICAgICAgICAgICAtIHJvY2tjaGlwLHJrMzMyOC1tYWxpCisgICAgdGhlbjoKKyAgICAgIHJlcXVpcmVkOgorICAgICAgICAtIHJlc2V0cworCitleGFtcGxlczoKKyAgLSB8CisgICAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2lycS5oPgorICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hcm0tZ2ljLmg+CisKKyAgICBtYWxpOiBncHVAMWM0MDAwMCB7CisgICAgICBjb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW43aS1hMjAtbWFsaSIsICJhcm0sbWFsaS00MDAiOworICAgICAgcmVnID0gPDB4MDFjNDAwMDAgMHgxMDAwMD47CisgICAgICBpbnRlcnJ1cHRzID0gPEdJQ19TUEkgOTcgSVJRX1RZUEVfTEVWRUxfSElHSD4sCisgICAgICAgICAgICAgPEdJQ19TUEkgOTggSVJRX1RZUEVfTEVWRUxfSElHSD4sCisgICAgICAgICAgICAgPEdJQ19TUEkgOTkgSVJRX1RZUEVfTEVWRUxfSElHSD4sCisgICAgICAgICAgICAgPEdJQ19TUEkgMTAwIElSUV9UWVBFX0xFVkVMX0hJR0g+LAorICAgICAgICAgICAgIDxHSUNfU1BJIDEwMiBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKKyAgICAgICAgICAgICA8R0lDX1NQSSAxMDMgSVJRX1RZUEVfTEVWRUxfSElHSD4sCisgICAgICAgICAgICAgPEdJQ19TUEkgMTAxIElSUV9UWVBFX0xFVkVMX0hJR0g+OworICAgICAgaW50ZXJydXB0LW5hbWVzID0gImdwIiwKKyAgICAgICAgICAgICJncG1tdSIsCisgICAgICAgICAgICAicHAwIiwKKyAgICAgICAgICAgICJwcG1tdTAiLAorICAgICAgICAgICAgInBwMSIsCisgICAgICAgICAgICAicHBtbXUxIiwKKyAgICAgICAgICAgICJwbXUiOworICAgICAgY2xvY2tzID0gPCZjY3UgMT4sIDwmY2N1IDI+OworICAgICAgY2xvY2stbmFtZXMgPSAiYnVzIiwgImNvcmUiOworICAgICAgcmVzZXRzID0gPCZjY3UgMT47CisgICAgfTsKKworLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL2JyY20sYmNtMjgzNS1pMmMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9icmNtLGJjbTI4MzUtaTJjLnR4dAppbmRleCBlOWRlMzc1Li5jOWE2NTg3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL2JyY20sYmNtMjgzNS1pMmMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvYnJjbSxiY20yODM1LWkyYy50eHQKQEAgLTEsNyArMSw5IEBACiBCcm9hZGNvbSBCQ00yODM1IEkyQyBjb250cm9sbGVyCiAKIFJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIGNvbXBhdGlibGUgOiBTaG91bGQgYmUgImJyY20sYmNtMjgzNS1pMmMiLgorLSBjb21wYXRpYmxlIDogU2hvdWxkIGJlIG9uZSBvZjoKKwkiYnJjbSxiY20yNzExLWkyYyIKKwkiYnJjbSxiY20yODM1LWkyYyIKIC0gcmVnOiBTaG91bGQgY29udGFpbiByZWdpc3RlciBsb2NhdGlvbiBhbmQgbGVuZ3RoLgogLSBpbnRlcnJ1cHRzOiBTaG91bGQgY29udGFpbiBpbnRlcnJ1cHQuCiAtIGNsb2NrcyA6IFRoZSBjbG9jayBmZWVkaW5nIHRoZSBJMkMgY29udHJvbGxlci4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvaTJjLXJjYXIudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9yZW5lc2FzLGkyYy50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvaTJjLXJjYXIudHh0CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL3JlbmVzYXMsaTJjLnR4dApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9pMmMtZW1ldjIudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9yZW5lc2FzLGlpYy1lbWV2Mi50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvaTJjLWVtZXYyLnR4dApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9yZW5lc2FzLGlpYy1lbWV2Mi50eHQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvaTJjLXNoX21vYmlsZS50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL3JlbmVzYXMsaWljLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9pMmMtc2hfbW9iaWxlLnR4dApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9yZW5lc2FzLGlpYy50eHQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvaTJjLXJpaWMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9yZW5lc2FzLHJpaWMudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL2kyYy1yaWljLnR4dApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9yZW5lc2FzLHJpaWMudHh0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5wdXQvYWxsd2lubmVyLHN1bjRpLWExMC1scmFkYy1rZXlzLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5wdXQvYWxsd2lubmVyLHN1bjRpLWExMC1scmFkYy1rZXlzLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNiZDhlZgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnB1dC9hbGx3aW5uZXIsc3VuNGktYTEwLWxyYWRjLWtleXMueWFtbApAQCAtMCwwICsxLDk1IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9pbnB1dC9hbGx3aW5uZXIsc3VuNGktYTEwLWxyYWRjLWtleXMueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogQWxsd2lubmVyIEExMCBMUkFEQyBEZXZpY2UgVHJlZSBCaW5kaW5ncworCittYWludGFpbmVyczoKKyAgLSBDaGVuLVl1IFRzYWkgPHdlbnNAY3NpZS5vcmc+CisgIC0gTWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBib290bGluLmNvbT4KKworcHJvcGVydGllczoKKyAgY29tcGF0aWJsZToKKyAgICBvbmVPZjoKKyAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW40aS1hMTAtbHJhZGMta2V5cworICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjhpLWE4M3Qtci1scmFkYworICAgICAgLSBpdGVtczoKKyAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjUwaS1hNjQtbHJhZGMKKyAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjhpLWE4M3Qtci1scmFkYworCisgIHJlZzoKKyAgICBtYXhJdGVtczogMQorCisgIGludGVycnVwdHM6CisgICAgbWF4SXRlbXM6IDEKKworICB2cmVmLXN1cHBseToKKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgIFJlZ3VsYXRvciBmb3IgdGhlIExSQURDIHJlZmVyZW5jZSB2b2x0YWdlCisKK3BhdHRlcm5Qcm9wZXJ0aWVzOgorICAiXmJ1dHRvbi1bMC05XSskIjoKKyAgICB0eXBlOiBvYmplY3QKKyAgICBwcm9wZXJ0aWVzOgorICAgICAgbGFiZWw6CisgICAgICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3N0cmluZworICAgICAgICBkZXNjcmlwdGlvbjogRGVzY3JpcHRpdmUgbmFtZSBvZiB0aGUga2V5CisKKyAgICAgIGxpbnV4LGNvZGU6CisgICAgICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3VpbnQzMgorICAgICAgICBkZXNjcmlwdGlvbjogS2V5Y29kZSB0byBlbWl0CisKKyAgICAgIGNoYW5uZWw6CisgICAgICAgIGFsbE9mOgorICAgICAgICAgIC0gJHJlZjogL3NjaGVtYXMvdHlwZXMueWFtbCMvZGVmaW5pdGlvbnMvdWludDMyCisgICAgICAgICAgLSBlbnVtOiBbMCwgMV0KKyAgICAgICAgZGVzY3JpcHRpb246IEFEQyBDaGFubmVsIHRoaXMga2V5IGlzIGF0dGFjaGVkIHRvCisKKyAgICAgIHZvbHRhZ2U6CisgICAgICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3VpbnQzMgorICAgICAgICBkZXNjcmlwdGlvbjoKKyAgICAgICAgICBWb2x0YWdlIGluIG1pY3Jvdm9sdHMgYXQgTFJBREMgaW5wdXQgd2hlbiB0aGlzIGtleSBpcworICAgICAgICAgIHByZXNzZWQKKworICAgIHJlcXVpcmVkOgorICAgICAgLSBsYWJlbAorICAgICAgLSBsaW51eCxjb2RlCisgICAgICAtIGNoYW5uZWwKKyAgICAgIC0gdm9sdGFnZQorCisgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSByZWcKKyAgLSBpbnRlcnJ1cHRzCisgIC0gdnJlZi1zdXBwbHkKKworYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisKK2V4YW1wbGVzOgorICAtIHwKKyAgICBscmFkYzogbHJhZGNAMWMyMjgwMCB7CisgICAgICAgIGNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1bjRpLWExMC1scmFkYy1rZXlzIjsKKyAgICAgICAgcmVnID0gPDB4MDFjMjI4MDAgMHgxMDA+OworICAgICAgICBpbnRlcnJ1cHRzID0gPDMxPjsKKyAgICAgICAgdnJlZi1zdXBwbHkgPSA8JnJlZ192Y2MzdjA+OworCisgICAgICAgIGJ1dHRvbi0xOTEgeworICAgICAgICAgICAgbGFiZWwgPSAiVm9sdW1lIFVwIjsKKyAgICAgICAgICAgIGxpbnV4LGNvZGUgPSA8MTE1PjsKKyAgICAgICAgICAgIGNoYW5uZWwgPSA8MD47CisgICAgICAgICAgICB2b2x0YWdlID0gPDE5MTI3ND47CisgICAgICAgIH07CisKKyAgICAgICAgYnV0dG9uLTM5MiB7CisgICAgICAgICAgICBsYWJlbCA9ICJWb2x1bWUgRG93biI7CisgICAgICAgICAgICBsaW51eCxjb2RlID0gPDExND47CisgICAgICAgICAgICBjaGFubmVsID0gPDA+OworICAgICAgICAgICAgdm9sdGFnZSA9IDwzOTI2NDQ+OworICAgICAgICB9OworICAgIH07CisKKy4uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2lucHV0L3N1bjRpLWxyYWRjLWtleXMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2lucHV0L3N1bjRpLWxyYWRjLWtleXMudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDdiNzM3Li4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnB1dC9zdW40aS1scmFkYy1rZXlzLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLUFsbHdpbm5lciBzdW40aSBsb3cgcmVzIGFkYyBhdHRhY2hlZCB0YWJsZXQga2V5cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci0gLSBjb21wYXRpYmxlOiBzaG91bGQgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcgc3RyaW5nOgotCQkiYWxsd2lubmVyLHN1bjRpLWExMC1scmFkYy1rZXlzIgotCQkiYWxsd2lubmVyLHN1bjhpLWE4M3Qtci1scmFkYyIKLQkJImFsbHdpbm5lcixzdW41MGktYTY0LWxyYWRjIiwgImFsbHdpbm5lcixzdW44aS1hODN0LXItbHJhZGMiCi0gLSByZWc6IG1taW8gYWRkcmVzcyByYW5nZSBvZiB0aGUgY2hpcAotIC0gaW50ZXJydXB0czogaW50ZXJydXB0IHRvIHdoaWNoIHRoZSBjaGlwIGlzIGNvbm5lY3RlZAotIC0gdnJlZi1zdXBwbHk6IHBvd2Vyc3VwcGx5IGZvciB0aGUgbHJhZGMgcmVmZXJlbmNlIHZvbHRhZ2UKLQotRWFjaCBrZXkgaXMgcmVwcmVzZW50ZWQgYXMgYSBzdWItbm9kZSBvZiB0aGUgY29tcGF0aWJsZSBtZW50aW9uZWQgYWJvdmU6Ci0KLVJlcXVpcmVkIHN1Ym5vZGUtcHJvcGVydGllczoKLQktIGxhYmVsOiBEZXNjcmlwdGl2ZSBuYW1lIG9mIHRoZSBrZXkuCi0JLSBsaW51eCxjb2RlOiBLZXljb2RlIHRvIGVtaXQuCi0JLSBjaGFubmVsOiBDaGFubmVsIHRoaXMga2V5IGlzIGF0dGFjaGVkIHRvLCBtdXN0IGJlIDAgb3IgMS4KLQktIHZvbHRhZ2U6IFZvbHRhZ2UgaW4gwrVWIGF0IGxyYWRjIGlucHV0IHdoZW4gdGhpcyBrZXkgaXMgcHJlc3NlZC4KLQotRXhhbXBsZToKLQotI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2lucHV0L2lucHV0Lmg+Ci0KLQlscmFkYzogbHJhZGNAMWMyMjgwMCB7Ci0JCWNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1bjRpLWExMC1scmFkYy1rZXlzIjsKLQkJcmVnID0gPDB4MDFjMjI4MDAgMHgxMDA+OwotCQlpbnRlcnJ1cHRzID0gPDMxPjsKLQkJdnJlZi1zdXBwbHkgPSA8JnJlZ192Y2MzdjA+OwotCi0JCWJ1dHRvbkAxOTEgewotCQkJbGFiZWwgPSAiVm9sdW1lIFVwIjsKLQkJCWxpbnV4LGNvZGUgPSA8S0VZX1ZPTFVNRVVQPjsKLQkJCWNoYW5uZWwgPSA8MD47Ci0JCQl2b2x0YWdlID0gPDE5MTI3ND47Ci0JCX07Ci0KLQkJYnV0dG9uQDM5MiB7Ci0JCQlsYWJlbCA9ICJWb2x1bWUgRG93biI7Ci0JCQlsaW51eCxjb2RlID0gPEtFWV9WT0xVTUVET1dOPjsKLQkJCWNoYW5uZWwgPSA8MD47Ci0JCQl2b2x0YWdlID0gPDM5MjY0ND47Ci0JCX07Ci0KLQkJYnV0dG9uQDYwMSB7Ci0JCQlsYWJlbCA9ICJNZW51IjsKLQkJCWxpbnV4LGNvZGUgPSA8S0VZX01FTlU+OwotCQkJY2hhbm5lbCA9IDwwPjsKLQkJCXZvbHRhZ2UgPSA8NjAxMTUxPjsKLQkJfTsKLQotCQlidXR0b25ANzk1IHsKLQkJCWxhYmVsID0gIkVudGVyIjsKLQkJCWxpbnV4LGNvZGUgPSA8S0VZX0VOVEVSPjsKLQkJCWNoYW5uZWwgPSA8MD47Ci0JCQl2b2x0YWdlID0gPDc5NTA5MD47Ci0JCX07Ci0KLQkJYnV0dG9uQDk4NyB7Ci0JCQlsYWJlbCA9ICJIb21lIjsKLQkJCWxpbnV4LGNvZGUgPSA8S0VZX0hPTUVQQUdFPjsKLQkJCWNoYW5uZWwgPSA8MD47Ci0JCQl2b2x0YWdlID0gPDk4NzM4Nz47Ci0JCX07Ci0JfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnB1dC90b3VjaHNjcmVlbi9hZHM3ODQ2LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnB1dC90b3VjaHNjcmVlbi9hZHM3ODQ2LnR4dAppbmRleCAwNDQxM2RhLi44MWY2YmRhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5wdXQvdG91Y2hzY3JlZW4vYWRzNzg0Ni50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2lucHV0L3RvdWNoc2NyZWVuL2Fkczc4NDYudHh0CkBAIC0zMiw3ICszMiw2IEBACiAJCQkJCShBRFM3ODQ2KS4KIAl0aSxrZWVwLXZyZWYtb24JCQlzZXQgdG8ga2VlcCB2cmVmIG9uIGZvciBkaWZmZXJlbnRpYWwKIAkJCQkJbWVhc3VyZW1lbnRzIGFzIHdlbGwKLQl0aSxzd2FwLXh5CQkJc3dhcCB4IGFuZCB5IGF4aXMKIAl0aSxzZXR0bGUtZGVsYXktdXNlYwkJU2V0dGxpbmcgdGltZSBvZiB0aGUgYW5hbG9nIHNpZ25hbHM7CiAJCQkJCWEgZnVuY3Rpb24gb2YgVmNjIGFuZCB0aGUgY2FwYWNpdGFuY2UKIAkJCQkJb24gdGhlIFgvWSBkcml2ZXJzLiAgSWYgc2V0IHRvIG5vbi16ZXJvLApAQCAtNTEsMTMgKzUwLDYgQEAKIAkJCQkJaW4gT2htcyAodTE2KS4KIAl0aSx4LW1pbgkJCU1pbmltdW0gdmFsdWUgb24gdGhlIFggYXhpcyAodTE2KS4KIAl0aSx5LW1pbgkJCU1pbmltdW0gdmFsdWUgb24gdGhlIFkgYXhpcyAodTE2KS4KLQl0aSx4LW1heAkJCU1heGltdW0gdmFsdWUgb24gdGhlIFggYXhpcyAodTE2KS4KLQl0aSx5LW1heAkJCU1pbmltdW0gdmFsdWUgb24gdGhlIFkgYXhpcyAodTE2KS4KLQl0aSxwcmVzc3VyZS1taW4JCQlNaW5pbXVtIHJlcG9ydGVkIHByZXNzdXJlIHZhbHVlCi0JCQkJCSh0aHJlc2hvbGQpIC0gdTE2LgotCXRpLHByZXNzdXJlLW1heAkJCU1heGltdW0gcmVwb3J0ZWQgcHJlc3N1cmUgdmFsdWUgKHUxNikuCi0JdGksZGVib3VuY2UtbWF4CQkJTWF4IG51bWJlciBvZiBhZGRpdGlvbmFsIHJlYWRpbmdzIHBlcgotCQkJCQlzYW1wbGUgKHUxNikuCiAJdGksZGVib3VuY2UtdG9sCQkJVG9sZXJhbmNlIHVzZWQgZm9yIGZpbHRlcmluZyAodTE2KS4KIAl0aSxkZWJvdW5jZS1yZXAJCQlBZGRpdGlvbmFsIGNvbnNlY3V0aXZlIGdvb2QgcmVhZGluZ3MKIAkJCQkJcmVxdWlyZWQgYWZ0ZXIgdGhlIGZpcnN0IHR3byAodTE2KS4KQEAgLTY3LDcgKzU5LDI4IEBACiAJCQkJCWxpbmUgaXMgY29ubmVjdGVkIHRvLgogCXdha2V1cC1zb3VyY2UJCQl1c2UgYW55IGV2ZW50IG9uIHRvdWNoc2NyZWVuIGFzIHdha2V1cCBldmVudC4KIAkJCQkJKExlZ2FjeSBwcm9wZXJ0eSBzdXBwb3J0OiAibGludXgsd2FrZXVwIikKKwl0b3VjaHNjcmVlbi1zaXplLXgJCUdlbmVyYWwgdG91Y2hzY3JlZW4gYmluZGluZywgc2VlIFsxXS4KKwl0b3VjaHNjcmVlbi1zaXplLXkJCUdlbmVyYWwgdG91Y2hzY3JlZW4gYmluZGluZywgc2VlIFsxXS4KKwl0b3VjaHNjcmVlbi1tYXgtcHJlc3N1cmUJR2VuZXJhbCB0b3VjaHNjcmVlbiBiaW5kaW5nLCBzZWUgWzFdLgorCXRvdWNoc2NyZWVuLW1pbi1wcmVzc3VyZQlHZW5lcmFsIHRvdWNoc2NyZWVuIGJpbmRpbmcsIHNlZSBbMV0uCisJdG91Y2hzY3JlZW4tYXZlcmFnZS1zYW1wbGVzCUdlbmVyYWwgdG91Y2hzY3JlZW4gYmluZGluZywgc2VlIFsxXS4KKwl0b3VjaHNjcmVlbi1pbnZlcnRlZC14CQlHZW5lcmFsIHRvdWNoc2NyZWVuIGJpbmRpbmcsIHNlZSBbMV0uCisJdG91Y2hzY3JlZW4taW52ZXJ0ZWQteQkJR2VuZXJhbCB0b3VjaHNjcmVlbiBiaW5kaW5nLCBzZWUgWzFdLgorCXRvdWNoc2NyZWVuLXN3YXBwZWQteC15CQlHZW5lcmFsIHRvdWNoc2NyZWVuIGJpbmRpbmcsIHNlZSBbMV0uCiAKK1sxXSBBbGwgZ2VuZXJhbCB0b3VjaHNjcmVlbiBwcm9wZXJ0aWVzIGFyZSBkZXNjcmliZWQgaW4KKyAgICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5wdXQvdG91Y2hzY3JlZW4vdG91Y2hzY3JlZW4udHh0LgorCitEZXByZWNhdGVkIHByb3BlcnRpZXM6CisKKwl0aSxzd2FwLXh5CQkJc3dhcCB4IGFuZCB5IGF4aXMKKwl0aSx4LW1heAkJCU1heGltdW0gdmFsdWUgb24gdGhlIFggYXhpcyAodTE2KS4KKwl0aSx5LW1heAkJCU1heGltdW0gdmFsdWUgb24gdGhlIFkgYXhpcyAodTE2KS4KKwl0aSxwcmVzc3VyZS1taW4JCQlNaW5pbXVtIHJlcG9ydGVkIHByZXNzdXJlIHZhbHVlCisJCQkJCSh0aHJlc2hvbGQpIC0gdTE2LgorCXRpLHByZXNzdXJlLW1heAkJCU1heGltdW0gcmVwb3J0ZWQgcHJlc3N1cmUgdmFsdWUgKHUxNikuCisJdGksZGVib3VuY2UtbWF4CQkJTWF4IG51bWJlciBvZiBhZGRpdGlvbmFsIHJlYWRpbmdzIHBlcgorCQkJCQlzYW1wbGUgKHUxNikuCiAKIEV4YW1wbGUgZm9yIGEgVFNDMjA0NiBjaGlwIGNvbm5lY3RlZCB0byBhbiBNY1NQSSBjb250cm9sbGVyIG9mIGFuIE9NQVAgU29DOjoKIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2lucHV0L3RvdWNoc2NyZWVuL2J1MjEwMTMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2lucHV0L3RvdWNoc2NyZWVuL2J1MjEwMTMudHh0CmluZGV4IDU2ZDgzNTI0Mi4uZGE0YzlkOCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2lucHV0L3RvdWNoc2NyZWVuL2J1MjEwMTMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnB1dC90b3VjaHNjcmVlbi9idTIxMDEzLnR4dApAQCAtMiwxMSArMiwyNCBAQAogCiBSZXF1aXJlZCBwcm9wZXJ0aWVzOgogIC0gY29tcGF0aWJsZSAgICAgICAgICAgICAgOiAicm9obSxidTIxMDEzX3RwIgotIC0gcmVnICAgICAgICAgICAgICAgICAgICAgOiAgSTJDIGRldmljZSBhZGRyZXNzCisgLSByZWcgICAgICAgICAgICAgICAgICAgICA6IEkyQyBkZXZpY2UgYWRkcmVzcworIC0gcmVzZXQtZ3Bpb3MgICAgICAgICAgICAgOiBHUElPIHBpbiBlbmFibGluZyAoc2VsZWN0aW5nKSBjaGlwIChDUykKKyAtIGludGVycnVwdC1wYXJlbnQgICAgICAgIDogdGhlIHBoYW5kbGUgZm9yIHRoZSBncGlvIGNvbnRyb2xsZXIKKyAtIGludGVycnVwdHMgICAgICAgICAgICAgIDogKGdwaW8pIGludGVycnVwdCB0byB3aGljaCB0aGUgY2hpcCBpcyBjb25uZWN0ZWQKIAogT3B0aW9uYWwgcHJvcGVydGllczoKLSAtIHRvdWNoLWdwaW8gICAgICAgICAgICAgIDogR1BJTyBwaW4gcmVnaXN0ZXJpbmcgYSB0b3VjaCBldmVudAorIC0gdG91Y2gtZ3Bpb3MgICAgICAgICAgICAgOiBHUElPIHBpbiByZWdpc3RlcmluZyBhIHRvdWNoIGV2ZW50CiAgLSA8c3VwcGx5X25hbWU+LXN1cHBseSAgICA6IFBoYW5kbGUgdG8gYSByZWd1bGF0b3Igc3VwcGx5CisgLSB0b3VjaHNjcmVlbi1zaXplLXggICAgICA6IEdlbmVyYWwgdG91Y2hzY3JlZW4gYmluZGluZywgc2VlIFsxXS4KKyAtIHRvdWNoc2NyZWVuLXNpemUteSAgICAgIDogR2VuZXJhbCB0b3VjaHNjcmVlbiBiaW5kaW5nLCBzZWUgWzFdLgorIC0gdG91Y2hzY3JlZW4taW52ZXJ0ZWQteCAgOiBHZW5lcmFsIHRvdWNoc2NyZWVuIGJpbmRpbmcsIHNlZSBbMV0uCisgLSB0b3VjaHNjcmVlbi1pbnZlcnRlZC15ICA6IEdlbmVyYWwgdG91Y2hzY3JlZW4gYmluZGluZywgc2VlIFsxXS4KKyAtIHRvdWNoc2NyZWVuLXN3YXBwZWQteC15IDogR2VuZXJhbCB0b3VjaHNjcmVlbiBiaW5kaW5nLCBzZWUgWzFdLgorCitbMV0gQWxsIGdlbmVyYWwgdG91Y2hzY3JlZW4gcHJvcGVydGllcyBhcmUgZGVzY3JpYmVkIGluCisgICAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2lucHV0L3RvdWNoc2NyZWVuL3RvdWNoc2NyZWVuLnR4dC4KKworRGVwcmVjYXRlZCBwcm9wZXJ0aWVzOgogIC0gcm9obSx0b3VjaC1tYXgteCAgICAgICAgOiBNYXhpbXVtIG91dHdhcmQgcGVybWl0dGVkIGxpbWl0IGluIHRoZSBYIGF4aXMKICAtIHJvaG0sdG91Y2gtbWF4LXkgICAgICAgIDogTWF4aW11bSBvdXR3YXJkIHBlcm1pdHRlZCBsaW1pdCBpbiB0aGUgWSBheGlzCiAgLSByb2htLGZsaXAteCAgICAgICAgICAgICA6IEZsaXAgdG91Y2ggY29vcmRpbmF0ZXMgb24gdGhlIFggYXhpcwpAQCAtMTgsMTEgKzMxLDEzIEBACiAJCWJ1MjEwMTNfdHBANWMgewogCQkJY29tcGF0aWJsZSA9ICJyb2htLGJ1MjEwMTNfdHAiOwogCQkJcmVnID0gPDB4NWM+OwotCQkJdG91Y2gtZ3BpbyA9IDwmZ3BpbzIgMjAgMHg0PjsKKwkJCWludGVycnVwdC1wYXJlbnQgPSA8JmdwaW8yPjsKKwkJCWludGVycnVwdHMgPCYyMCBJUlFfVFlQRV9MRVZFTF9MT1c+OworCQkJdG91Y2gtZ3BpbyA9IDwmZ3BpbzIgMjAgR1BJT19BQ1RJVkVfTE9XPjsKIAkJCWF2ZGQtc3VwcGx5ID0gPCZhYjg1MDBfbGRvX2F1eDFfcmVnPjsKIAotCQkJcm9obSx0b3VjaC1tYXgteCA9IDwzODQ+OwotCQkJcm9obSx0b3VjaC1tYXgteSA9IDw3MDQ+OwotCQkJcm9obSxmbGlwLXk7CisJCQl0b3VjaHNjcmVlbi1zaXplLXggPSA8Mzg0PjsKKwkJCXRvdWNoc2NyZWVuLXNpemUteSA9IDw3MDQ+OworCQkJdG91Y2hzY3JlZW4taW52ZXJ0ZWQteTsKIAkJfTsKIAl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2FsbHdpbm5lcixzdW40aS1hMTAtaWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hbGx3aW5uZXIsc3VuNGktYTEwLWljLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNhMjAyZAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hbGx3aW5uZXIsc3VuNGktYTEwLWljLnlhbWwKQEAgLTAsMCArMSw0NyBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvaW50ZXJydXB0LWNvbnRyb2xsZXIvYWxsd2lubmVyLHN1bjRpLWExMC1pYy55YW1sIworJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisKK3RpdGxlOiBBbGx3aW5uZXIgQTEwIEludGVycnVwdCBDb250cm9sbGVyIERldmljZSBUcmVlIEJpbmRpbmdzCisKK21haW50YWluZXJzOgorICAtIENoZW4tWXUgVHNhaSA8d2Vuc0Bjc2llLm9yZz4KKyAgLSBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4uY29tPgorCithbGxPZjoKKyAgLSAkcmVmOiAvc2NoZW1hcy9pbnRlcnJ1cHQtY29udHJvbGxlci55YW1sIworCitwcm9wZXJ0aWVzOgorICAiI2ludGVycnVwdC1jZWxscyI6CisgICAgY29uc3Q6IDEKKworICBjb21wYXRpYmxlOgorICAgIGVudW06CisgICAgICAtIGFsbHdpbm5lcixzdW40aS1hMTAtaWMKKyAgICAgIC0gYWxsd2lubmVyLHN1bml2LWYxYzEwMHMtaWMKKworICByZWc6CisgICAgbWF4SXRlbXM6IDEKKworICBpbnRlcnJ1cHQtY29udHJvbGxlcjogdHJ1ZQorCityZXF1aXJlZDoKKyAgLSAiI2ludGVycnVwdC1jZWxscyIKKyAgLSBjb21wYXRpYmxlCisgIC0gcmVnCisgIC0gaW50ZXJydXB0LWNvbnRyb2xsZXIKKworYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisKK2V4YW1wbGVzOgorICAtIHwKKyAgICBpbnRjOiBpbnRlcnJ1cHQtY29udHJvbGxlckAxYzIwNDAwIHsKKyAgICAgICAgY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuNGktYTEwLWljIjsKKyAgICAgICAgcmVnID0gPDB4MDFjMjA0MDAgMHg0MDA+OworICAgICAgICBpbnRlcnJ1cHQtY29udHJvbGxlcjsKKyAgICAgICAgI2ludGVycnVwdC1jZWxscyA9IDwxPjsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hbGx3aW5uZXIsc3VuNGktaWMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2FsbHdpbm5lcixzdW40aS1pYy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwNDM1MjUuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2FsbHdpbm5lcixzdW40aS1pYy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1BbGx3aW5uZXIgU3VueGkgSW50ZXJydXB0IENvbnRyb2xsZXIKLQotUmVxdWlyZWQgcHJvcGVydGllczoKLQotLSBjb21wYXRpYmxlIDogc2hvdWxkIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgotICAgICAgICAgICAgICAiYWxsd2lubmVyLHN1bjRpLWExMC1pYyIKLSAgICAgICAgICAgICAgImFsbHdpbm5lcixzdW5pdi1mMWMxMDBzLWljIgotLSByZWcgOiBTcGVjaWZpZXMgYmFzZSBwaHlzaWNhbCBhZGRyZXNzIGFuZCBzaXplIG9mIHRoZSByZWdpc3RlcnMuCi0tIGludGVycnVwdC1jb250cm9sbGVyIDogSWRlbnRpZmllcyB0aGUgbm9kZSBhcyBhbiBpbnRlcnJ1cHQgY29udHJvbGxlcgotLSAjaW50ZXJydXB0LWNlbGxzIDogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY2VsbHMgbmVlZGVkIHRvIGVuY29kZSBhbgotICBpbnRlcnJ1cHQgc291cmNlLiBUaGUgdmFsdWUgc2hhbGwgYmUgMS4KLQotRXhhbXBsZToKLQotaW50YzogaW50ZXJydXB0LWNvbnRyb2xsZXIgewotCWNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1bjRpLWExMC1pYyI7Ci0JcmVnID0gPDB4MDFjMjA0MDAgMHg0MDA+OwotCWludGVycnVwdC1jb250cm9sbGVyOwotCSNpbnRlcnJ1cHQtY2VsbHMgPSA8MT47Ci19OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2FsbHdpbm5lcixzdW43aS1hMjAtc2Mtbm1pLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvYWxsd2lubmVyLHN1bjdpLWEyMC1zYy1ubWkueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWNjZjU1Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2FsbHdpbm5lcixzdW43aS1hMjAtc2Mtbm1pLnlhbWwKQEAgLTAsMCArMSw3MCBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvaW50ZXJydXB0LWNvbnRyb2xsZXIvYWxsd2lubmVyLHN1bjdpLWEyMC1zYy1ubWkueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogQWxsd2lubmVyIEEyMCBOb24tTWFza2FibGUgSW50ZXJydXB0IENvbnRyb2xsZXIgRGV2aWNlIFRyZWUgQmluZGluZ3MKKworbWFpbnRhaW5lcnM6CisgIC0gQ2hlbi1ZdSBUc2FpIDx3ZW5zQGNzaWUub3JnPgorICAtIE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAYm9vdGxpbi5jb20+CisKK2FsbE9mOgorICAtICRyZWY6IC9zY2hlbWFzL2ludGVycnVwdC1jb250cm9sbGVyLnlhbWwjCisKK3Byb3BlcnRpZXM6CisgICIjaW50ZXJydXB0LWNlbGxzIjoKKyAgICBjb25zdDogMgorICAgIGRlc2NyaXB0aW9uOgorICAgICAgVGhlIGZpcnN0IGNlbGwgaXMgdGhlIElSUSBudW1iZXIsIHRoZSBzZWNvbmQgY2VsbCB0aGUgdHJpZ2dlcgorICAgICAgdHlwZSBhcyBkZWZpbmVkIGluIGludGVycnVwdC50eHQgaW4gdGhpcyBkaXJlY3RvcnkuCisKKyAgY29tcGF0aWJsZToKKyAgICBvbmVPZjoKKyAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW42aS1hMzEtci1pbnRjCisgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNmktYTMxLXNjLW5taQorICAgICAgICBkZXByZWNhdGVkOiB0cnVlCisgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuN2ktYTIwLXNjLW5taQorICAgICAgLSBpdGVtczoKKyAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjhpLWE4M3Qtci1pbnRjCisgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW42aS1hMzEtci1pbnRjCisgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuOWktYTgwLXNjLW5taQorICAgICAgLSBpdGVtczoKKyAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjUwaS1hNjQtci1pbnRjCisgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW42aS1hMzEtci1pbnRjCisgICAgICAtIGl0ZW1zOgorICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNTBpLWg2LXItaW50YworICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNmktYTMxLXItaW50YworCisgIHJlZzoKKyAgICBtYXhJdGVtczogMQorCisgIGludGVycnVwdHM6CisgICAgbWF4SXRlbXM6IDEKKworICBpbnRlcnJ1cHQtY29udHJvbGxlcjogdHJ1ZQorCityZXF1aXJlZDoKKyAgLSAiI2ludGVycnVwdC1jZWxscyIKKyAgLSBjb21wYXRpYmxlCisgIC0gcmVnCisgIC0gaW50ZXJydXB0cworICAtIGludGVycnVwdC1jb250cm9sbGVyCisKKyMgRklYTUU6IFdlIHNob3VsZCBzZXQgaXQsIGJ1dCBpdCB3b3VsZCByZXBvcnQgYWxsIHRoZSBnZW5lcmljCisjIHByb3BlcnRpZXMgYXMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLgorIyBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKworZXhhbXBsZXM6CisgIC0gfAorICAgIGludGVycnVwdC1jb250cm9sbGVyQDFjMDAwMzAgeworICAgICAgICBjb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW43aS1hMjAtc2Mtbm1pIjsKKyAgICAgICAgaW50ZXJydXB0LWNvbnRyb2xsZXI7CisgICAgICAgICNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47CisgICAgICAgIHJlZyA9IDwweDAxYzAwMDMwIDB4MGM+OworICAgICAgICBpbnRlcnJ1cHQtcGFyZW50ID0gPCZnaWM+OworICAgICAgICBpbnRlcnJ1cHRzID0gPDAgMCA0PjsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hbGx3aW5uZXIsc3VueGktbm1pLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hbGx3aW5uZXIsc3VueGktbm1pLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRiZWFkZi4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvYWxsd2lubmVyLHN1bnhpLW5taS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1BbGx3aW5uZXIgU3VueGkgTk1JIENvbnRyb2xsZXIKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotCi0tIGNvbXBhdGlibGUgOiBzaG91bGQgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6Ci0gIC0gImFsbHdpbm5lcixzdW43aS1hMjAtc2Mtbm1pIgotICAtICJhbGx3aW5uZXIsc3VuNmktYTMxLXNjLW5taSIgKGRlcHJlY2F0ZWQpCi0gIC0gImFsbHdpbm5lcixzdW42aS1hMzEtci1pbnRjIgotICAtICJhbGx3aW5uZXIsc3VuOWktYTgwLW5taSIKLS0gcmVnIDogU3BlY2lmaWVzIGJhc2UgcGh5c2ljYWwgYWRkcmVzcyBhbmQgc2l6ZSBvZiB0aGUgcmVnaXN0ZXJzLgotLSBpbnRlcnJ1cHQtY29udHJvbGxlciA6IElkZW50aWZpZXMgdGhlIG5vZGUgYXMgYW4gaW50ZXJydXB0IGNvbnRyb2xsZXIKLS0gI2ludGVycnVwdC1jZWxscyA6IFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNlbGxzIG5lZWRlZCB0byBlbmNvZGUgYW4KLSAgaW50ZXJydXB0IHNvdXJjZS4gVGhlIHZhbHVlIHNoYWxsIGJlIDIuIFRoZSBmaXJzdCBjZWxsIGlzIHRoZSBJUlEgbnVtYmVyLCB0aGUKLSAgc2Vjb25kIGNlbGwgdGhlIHRyaWdnZXIgdHlwZSBhcyBkZWZpbmVkIGluIGludGVycnVwdC50eHQgaW4gdGhpcyBkaXJlY3RvcnkuCi0tIGludGVycnVwdHM6IFNwZWNpZmllcyB0aGUgaW50ZXJydXB0IGxpbmUgKE5NSSkgd2hpY2ggaXMgaGFuZGxlZCBieQotICB0aGUgaW50ZXJydXB0IGNvbnRyb2xsZXIgaW4gdGhlIHBhcmVudCBjb250cm9sbGVyJ3Mgbm90YXRpb24uIFRoaXMgdmFsdWUKLSAgc2hhbGwgYmUgdGhlIE5NSS4KLQotRXhhbXBsZToKLQotc2Mtbm1pLWludGNAMWMwMDAzMCB7Ci0JY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuN2ktYTIwLXNjLW5taSI7Ci0JaW50ZXJydXB0LWNvbnRyb2xsZXI7Ci0JI2ludGVycnVwdC1jZWxscyA9IDwyPjsKLQlyZWcgPSA8MHgwMWMwMDAzMCAweDBjPjsKLQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZnaWM+OwotCWludGVycnVwdHMgPSA8MCAwIDQ+OwotfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9pbnRlcnJ1cHRzLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9pbnRlcnJ1cHRzLnR4dAppbmRleCA4YTNjNDA4Li40YTNlZTI1IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvaW50ZXJydXB0cy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2ludGVycnVwdHMudHh0CkBAIC0yMiwxMCArMjIsMTAgQEAKIGludGVycnVwdCBjbGllbnQgbm9kZSBvciBpbiBhbnkgb2YgaXRzIHBhcmVudCBub2Rlcy4gSW50ZXJydXB0cyBsaXN0ZWQgaW4gdGhlCiAiaW50ZXJydXB0cyIgcHJvcGVydHkgYXJlIGFsd2F5cyBpbiByZWZlcmVuY2UgdG8gdGhlIG5vZGUncyBpbnRlcnJ1cHQgcGFyZW50LgogCi1UaGUgImludGVycnVwdHMtZXh0ZW5kZWQiIHByb3BlcnR5IGlzIGEgc3BlY2lhbCBmb3JtIGZvciB1c2Ugd2hlbiBhIG5vZGUgbmVlZHMKLXRvIHJlZmVyZW5jZSBtdWx0aXBsZSBpbnRlcnJ1cHQgcGFyZW50cy4gRWFjaCBlbnRyeSBpbiB0aGlzIHByb3BlcnR5IGNvbnRhaW5zCi1ib3RoIHRoZSBwYXJlbnQgcGhhbmRsZSBhbmQgdGhlIGludGVycnVwdCBzcGVjaWZpZXIuICJpbnRlcnJ1cHRzLWV4dGVuZGVkIgotc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIGEgZGV2aWNlIGhhcyBtdWx0aXBsZSBpbnRlcnJ1cHQgcGFyZW50cy4KK1RoZSAiaW50ZXJydXB0cy1leHRlbmRlZCIgcHJvcGVydHkgaXMgYSBzcGVjaWFsIGZvcm07IHVzZWZ1bCB3aGVuIGEgbm9kZSBuZWVkcwordG8gcmVmZXJlbmNlIG11bHRpcGxlIGludGVycnVwdCBwYXJlbnRzIG9yIGEgZGlmZmVyZW50IGludGVycnVwdCBwYXJlbnQgdGhhbgordGhlIGluaGVyaXRlZCBvbmUuIEVhY2ggZW50cnkgaW4gdGhpcyBwcm9wZXJ0eSBjb250YWlucyBib3RoIHRoZSBwYXJlbnQgcGhhbmRsZQorYW5kIHRoZSBpbnRlcnJ1cHQgc3BlY2lmaWVyLgogCiAgIEV4YW1wbGU6CiAJaW50ZXJydXB0cy1leHRlbmRlZCA9IDwmaW50YzEgNSAxPiwgPCZpbnRjMiAxIDA+OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21haWxib3gvYW1sb2dpYyxtZXNvbi1neGJiLW1odS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21haWxib3gvYW1sb2dpYyxtZXNvbi1neGJiLW1odS55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxOTI4MDUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC9hbWxvZ2ljLG1lc29uLWd4YmItbWh1LnlhbWwKQEAgLTAsMCArMSw1MiBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAgT1IgQlNELTItQ2xhdXNlKQorIyBDb3B5cmlnaHQgMjAxOSBCYXlMaWJyZSwgU0FTCislWUFNTCAxLjIKKy0tLQorJGlkOiAiaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbWFpbGJveC9hbWxvZ2ljLG1lc29uLWd4YmItbWh1LnlhbWwjIgorJHNjaGVtYTogImh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIyIKKwordGl0bGU6IEFtbG9naWMgTWVzb24gTWVzc2FnZS1IYW5kbGluZy1Vbml0IENvbnRyb2xsZXIKKworbWFpbnRhaW5lcnM6CisgIC0gTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgorCitkZXNjcmlwdGlvbjogfAorICBUaGUgQW1sb2dpYydzIE1lc29uIFNvQ3MgTWVzc2FnZS1IYW5kbGluZy1Vbml0IChNSFUpIGlzIGEgbWFpbGJveCBjb250cm9sbGVyCisgIHRoYXQgaGFzIDMgaW5kZXBlbmRlbnQgY2hhbm5lbHMvbGlua3MgdG8gY29tbXVuaWNhdGUgd2l0aCByZW1vdGUgcHJvY2Vzc29yKHMpLgorICBNSFUgbGlua3MgYXJlIGhhcmR3aXJlZCBvbiBhIHBsYXRmb3JtLiBBIGxpbmsgcmFpc2VzIGludGVycnVwdCBmb3IgYW55CisgIHJlY2VpdmVkIGRhdGEuIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIHNwZWNpZmllZCB3YXkgb2Yga25vd2luZyBpZiB0aGUgc2VudAorICBkYXRhIGhhcyBiZWVuIHJlYWQgYnkgdGhlIHJlbW90ZS4gVGhpcyBkcml2ZXIgYXNzdW1lcyB0aGUgc2VuZGVyIHBvbGxzCisgIFNUQVQgcmVnaXN0ZXIgYW5kIHRoZSByZW1vdGUgY2xlYXJzIGl0IGFmdGVyIGhhdmluZyByZWFkIHRoZSBkYXRhLgorCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGVudW06CisgICAgICAtIGFtbG9naWMsbWVzb24tZ3hiYi1taHUKKworICByZWc6CisgICAgbWF4SXRlbXM6IDEKKworICBpbnRlcnJ1cHRzOgorICAgIG1pbkl0ZW1zOiAzCisgICAgZGVzY3JpcHRpb246CisgICAgICBDb250YWlucyB0aGUgaW50ZXJydXB0IGluZm9ybWF0aW9uIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBvZiB0aGUgMyBsaW5rcworICAgICAgb2YgTUhVLgorCisgICIjbWJveC1jZWxscyI6CisgICAgY29uc3Q6IDEKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtIGludGVycnVwdHMKKyAgLSAiI21ib3gtY2VsbHMiCisKK2V4YW1wbGVzOgorICAtIHwKKyAgICBtYWlsYm94QGM4ODNjNDA0IHsKKyAgICAgICAgICBjb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZ3hiYi1taHUiOworICAgICAgICAgIHJlZyA9IDwweGM4ODNjNDA0IDB4NGM+OworICAgICAgICAgIGludGVycnVwdHMgPSA8MjA4PiwgPDIwOT4sIDwyMTA+OworICAgICAgICAgICNtYm94LWNlbGxzID0gPDE+OworICAgIH07CisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tYWlsYm94L21lc29uLW1odS50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC9tZXNvbi1taHUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTMwMzEwLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tYWlsYm94L21lc29uLW1odS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1BbWxvZ2ljIE1lc29uIE1IVSBNYWlsYm94IERyaXZlcgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVGhlIEFtbG9naWMncyBNZXNvbiBTb0NzIE1lc3NhZ2UtSGFuZGxpbmctVW5pdCAoTUhVKSBpcyBhIG1haWxib3ggY29udHJvbGxlcgotdGhhdCBoYXMgMyBpbmRlcGVuZGVudCBjaGFubmVscy9saW5rcyB0byBjb21tdW5pY2F0ZSB3aXRoIHJlbW90ZSBwcm9jZXNzb3IocykuCi1NSFUgbGlua3MgYXJlIGhhcmR3aXJlZCBvbiBhIHBsYXRmb3JtLiBBIGxpbmsgcmFpc2VzIGludGVycnVwdCBmb3IgYW55Ci1yZWNlaXZlZCBkYXRhLiBIb3dldmVyLCB0aGVyZSBpcyBubyBzcGVjaWZpZWQgd2F5IG9mIGtub3dpbmcgaWYgdGhlIHNlbnQKLWRhdGEgaGFzIGJlZW4gcmVhZCBieSB0aGUgcmVtb3RlLiBUaGlzIGRyaXZlciBhc3N1bWVzIHRoZSBzZW5kZXIgcG9sbHMKLVNUQVQgcmVnaXN0ZXIgYW5kIHRoZSByZW1vdGUgY2xlYXJzIGl0IGFmdGVyIGhhdmluZyByZWFkIHRoZSBkYXRhLgotCi1NYWlsYm94IERldmljZSBOb2RlOgotPT09PT09PT09PT09PT09PT09PT0KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGNvbXBhdGlibGU6CQlTaGFsbCBiZSAiYW1sb2dpYyxtZXNvbi1neGJiLW1odSIKLS0gcmVnOgkJCUNvbnRhaW5zIHRoZSBtYWlsYm94IHJlZ2lzdGVyIGFkZHJlc3MgcmFuZ2UgKGJhc2UKLQkJCWFkZHJlc3MgYW5kIGxlbmd0aCkKLS0gI21ib3gtY2VsbHMJCVNoYWxsIGJlIDEgLSB0aGUgaW5kZXggb2YgdGhlIGNoYW5uZWwgbmVlZGVkLgotLSBpbnRlcnJ1cHRzOgkJQ29udGFpbnMgdGhlIGludGVycnVwdCBpbmZvcm1hdGlvbiBjb3JyZXNwb25kaW5nIHRvCi0JCQllYWNoIG9mIHRoZSAyIGxpbmtzIG9mIE1IVS4KLQotRXhhbXBsZToKLS0tLS0tLS0tCi0KLQltYWlsYm94OiBtYWlsYm94QGM4ODNjNDA0IHsKLQkJI21ib3gtY2VsbHMgPSA8MT47Ci0JCWNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neGJiLW1odSI7Ci0JCXJlZyA9IDwwIDB4Yzg4M2M0MDQgMCAweDRjPjsKLQkJaW50ZXJydXB0cyA9IDwwIDIwOCBJUlFfVFlQRV9FREdFX1JJU0lORz4sCi0JCQkgICAgIDwwIDIwOSBJUlFfVFlQRV9FREdFX1JJU0lORz4sCi0JCQkgICAgIDwwIDIxMCBJUlFfVFlQRV9FREdFX1JJU0lORz47Ci0JCSNtYm94LWNlbGxzID0gPDE+OwotCX07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC9tdGstZ2NlLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tYWlsYm94L210ay1nY2UudHh0CmluZGV4IDdkNzJiMjEuLjdiMTM3ODcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tYWlsYm94L210ay1nY2UudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tYWlsYm94L210ay1nY2UudHh0CkBAIC05LDcgKzksNyBAQAogbWFpbGJveC50eHQgZm9yIGdlbmVyaWMgaW5mb3JtYXRpb24gYWJvdXQgbWFpbGJveCBkZXZpY2UtdHJlZSBiaW5kaW5ncy4KIAogUmVxdWlyZWQgcHJvcGVydGllczoKLS0gY29tcGF0aWJsZTogTXVzdCBiZSAibWVkaWF0ZWssbXQ4MTczLWdjZSIKKy0gY29tcGF0aWJsZTogY2FuIGJlICJtZWRpYXRlayxtdDgxNzMtZ2NlIiBvciAibWVkaWF0ZWssbXQ4MTgzLWdjZSIKIC0gcmVnOiBBZGRyZXNzIHJhbmdlIG9mIHRoZSBHQ0UgdW5pdAogLSBpbnRlcnJ1cHRzOiBUaGUgaW50ZXJydXB0IHNpZ25hbCBmcm9tIHRoZSBHQ0UgYmxvY2sKIC0gY2xvY2s6IENsb2NrcyBhY2NvcmRpbmcgdG8gdGhlIGNvbW1vbiBjbG9jayBiaW5kaW5nCkBAIC0yNSwxMSArMjUsMTkgQEAKIFJlcXVpcmVkIHByb3BlcnRpZXMgZm9yIGEgY2xpZW50IGRldmljZToKIC0gbWJveGVzOiBDbGllbnQgdXNlIG1haWxib3ggdG8gY29tbXVuaWNhdGUgd2l0aCBHQ0UsIGl0IHNob3VsZCBoYXZlIHRoaXMKICAgcHJvcGVydHkgYW5kIGxpc3Qgb2YgcGhhbmRsZSwgbWFpbGJveCBzcGVjaWZpZXJzLgotLSBtZWRpYXRlayxnY2Utc3Vic3lzOiB1MzIsIHNwZWNpZnkgdGhlIHN1Yi1zeXN0ZW0gaWQgd2hpY2ggaXMgY29ycmVzcG9uZGluZwotICB0byB0aGUgcmVnaXN0ZXIgYWRkcmVzcy4KK09wdGlvbmFsIHByb3BlcnRpZXMgZm9yIGEgY2xpZW50IGRldmljZToKKy0gbWVkaWF0ZWssZ2NlLWNsaWVudC1yZWc6IFNwZWNpZnkgdGhlIHN1Yi1zeXN0ZW0gaWQgd2hpY2ggaXMgY29ycmVzcG9uZGluZworICB0byB0aGUgcmVnaXN0ZXIgYWRkcmVzcywgaXQgc2hvdWxkIGhhdmUgdGhpcyBwcm9wZXJ0eSBhbmQgbGlzdCBvZiBwaGFuZGxlLAorICBzdWItc3lzdGVtIHNwZWNpZmllcnMuCisgIDwmcGhhbmRsZSBzdWJzeXNfbnVtYmVyIHN0YXJ0X29mZnNldCBzaXplPgorICBwaGFuZGxlOiBMYWJlbCBuYW1lIG9mIGEgZ2NlIG5vZGUuCisgIHN1YnN5c19udW1iZXI6IHNwZWNpZnkgdGhlIHN1Yi1zeXN0ZW0gaWQgd2hpY2ggaXMgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICB0byB0aGUgcmVnaXN0ZXIgYWRkcmVzcy4KKyAgc3RhcnRfb2Zmc2V0OiB0aGUgc3RhcnQgb2Zmc2V0IG9mIHJlZ2lzdGVyIGFkZHJlc3MgdGhhdCBHQ0UgY2FuIGFjY2Vzcy4KKyAgc2l6ZTogdGhlIHRvdGFsIHNpemUgb2YgcmVnaXN0ZXIgYWRkcmVzcyB0aGF0IEdDRSBjYW4gYWNjZXNzLgogCi1Tb21lIHZhdWxlcyBvZiBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGluICdkdC1iaW5kaW5ncy9nY2UvbXQ4MTczLWdjZS5oJy4gU3VjaCBhcwotc3ViLXN5c3RlbSBpZHMsIHRocmVhZCBwcmlvcml0eSwgZXZlbnQgaWRzLgorU29tZSB2YXVsZXMgb2YgcHJvcGVydGllcyBhcmUgZGVmaW5lZCBpbiAnZHQtYmluZGluZ3MvZ2NlL210ODE3My1nY2UuaCcKK29yICdkdC1iaW5kaW5nL2djZS9tdDgxODMtZ2NlLmgnLiBTdWNoIGFzIHN1Yi1zeXN0ZW0gaWRzLCB0aHJlYWQgcHJpb3JpdHksIGV2ZW50IGlkcy4KIAogRXhhbXBsZToKIApAQCAtMzksNyArNDcsNiBAQAogCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTM1IElSUV9UWVBFX0xFVkVMX0xPVz47CiAJCWNsb2NrcyA9IDwmaW5mcmFjZmcgQ0xLX0lORlJBX0dDRT47CiAJCWNsb2NrLW5hbWVzID0gImdjZSI7Ci0JCXRocmVhZC1udW0gPSBDTURRX1RIUl9NQVhfQ09VTlQ7CiAJCSNtYm94LWNlbGxzID0gPDM+OwogCX07CiAKQEAgLTQ5LDkgKzU2LDkgQEAKIAkJY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtbW1zeXMiOwogCQltYm94ZXMgPSA8JmdjZSAwIENNRFFfVEhSX1BSSU9fTE9XRVNUIDE+LAogCQkJIDwmZ2NlIDEgQ01EUV9USFJfUFJJT19MT1dFU1QgMT47Ci0JCW1lZGlhdGVrLGdjZS1zdWJzeXMgPSA8U1VCU1lTXzE0MDBYWFhYPjsKIAkJbXV0ZXgtZXZlbnQtZW9mID0gPENNRFFfRVZFTlRfTVVURVgwX1NUUkVBTV9FT0YKIAkJCQlDTURRX0VWRU5UX01VVEVYMV9TVFJFQU1fRU9GPjsKLQorCQltZWRpYXRlayxnY2UtY2xpZW50LXJlZyA9IDwmZ2NlIFNVQlNZU18xNDAwWFhYWCAweDMwMDAgMHgxMDAwPiwKKwkJCQkJICA8JmdjZSBTVUJTWVNfMTQwMVhYWFggMHgyMDAwIDB4MTAwPjsKIAkJLi4uCiAJfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tYWlsYm94L3Fjb20sYXBjcy1rcHNzLWdsb2JhbC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC9xY29tLGFwY3Mta3Bzcy1nbG9iYWwudHh0CmluZGV4IDEyMzJmYzkuLjAyNzg0ODIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tYWlsYm94L3Fjb20sYXBjcy1rcHNzLWdsb2JhbC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21haWxib3gvcWNvbSxhcGNzLWtwc3MtZ2xvYmFsLnR4dApAQCAtMTIsNyArMTIsMTAgQEAKIAkJICAgICJxY29tLG1zbTg5OTYtYXBjcy1obXNzLWdsb2JhbCIKIAkJICAgICJxY29tLG1zbTg5OTgtYXBjcy1obXNzLWdsb2JhbCIKIAkJICAgICJxY29tLHFjczQwNC1hcGNzLWFwcHMtZ2xvYmFsIgorCQkgICAgInFjb20sc2M3MTgwLWFwc3Mtc2hhcmVkIgogCQkgICAgInFjb20sc2RtODQ1LWFwc3Mtc2hhcmVkIgorCQkgICAgInFjb20sc204MTUwLWFwc3Mtc2hhcmVkIgorCQkgICAgInFjb20saXBxODA3NC1hcGNzLWFwcHMtZ2xvYmFsIgogCiAtIHJlZzoKIAlVc2FnZTogcmVxdWlyZWQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS9pMmMvbm9raWEsc21pYS50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVkaWEvaTJjL25va2lhLHNtaWEudHh0CmluZGV4IDhlZTdjNzkuLmMzYzM0NzkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS9pMmMvbm9raWEsc21pYS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lZGlhL2kyYy9ub2tpYSxzbWlhLnR4dApAQCAtNyw2ICs3LDkgQEAKIE1vcmUgZGV0YWlsZWQgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgaW4KIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS92aWRlby1pbnRlcmZhY2VzLnR4dCAuCiAKK1RoZSBkZXZpY2Ugbm9kZSBzaG91bGQgY29udGFpbiBhICJwb3J0IiBub2RlIHdoaWNoIG1heSBjb250YWluIG9uZSBvciBtb3JlCitlbmRwb2ludCBub2RlcywgaW4gYWNjb3JkYW5jZSB3aXRoIHZpZGVvIGludGVyZmFjZSBiaW5kaW5ncyBkZWZpbmVkIGluCitEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVkaWEvdmlkZW8taW50ZXJmYWNlcy50eHQgLgogCiBNYW5kYXRvcnkgcHJvcGVydGllcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM3LDkgKzQwLDcgQEAKIEVuZHBvaW50IG5vZGUgbWFuZGF0b3J5IHByb3BlcnRpZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLSBjbG9jay1sYW5lczogPDA+CiAtIGRhdGEtbGFuZXM6IDwxLi5uPgotLSByZW1vdGUtZW5kcG9pbnQ6IEEgcGhhbmRsZSB0byB0aGUgYnVzIHJlY2VpdmVyJ3MgZW5kcG9pbnQgbm9kZS4KIAogCiBFeGFtcGxlCkBAIC00OCw3ICs0OSw3IEBACiAmaTJjMiB7CiAJY2xvY2stZnJlcXVlbmN5ID0gPDQwMDAwMD47CiAKLQlzbWlhcHBfMTogY2FtZXJhQDEwIHsKKwljYW1lcmEtc2Vuc29yQDEwIHsKIAkJY29tcGF0aWJsZSA9ICJub2tpYSxzbWlhIjsKIAkJcmVnID0gPDB4MTA+OwogCQlyZXNldC1ncGlvcyA9IDwmZ3BpbzMgMjAgMD47CkBAIC01OCw4ICs1OSw3IEBACiAJCW5va2lhLG52bS1zaXplID0gPDUxMj47IC8qIDggKiA2NCAqLwogCQlsaW5rLWZyZXF1ZW5jaWVzID0gL2JpdHMvIDY0IDwxOTkyMDAwMDAgMjEwMDAwMDAwIDQ5OTIwMDAwMD47CiAJCXBvcnQgewotCQkJc21pYXBwXzFfMTogZW5kcG9pbnQgewotCQkJCWNsb2NrLWxhbmVzID0gPDA+OworCQkJc21pYXBwX2VwOiBlbmRwb2ludCB7CiAJCQkJZGF0YS1sYW5lcyA9IDwxIDI+OwogCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmY3NpMmFfZXA+OwogCQkJfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvYXNwZWVkLXNjdS50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWZkL2FzcGVlZC1zY3UudHh0CmluZGV4IGNlOGNmMGUuLjRkOTJjMGIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvYXNwZWVkLXNjdS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9hc3BlZWQtc2N1LnR4dApAQCAtNCw5ICs0LDcgQEAKIFJlcXVpcmVkIHByb3BlcnRpZXM6CiAtIGNvbXBhdGlibGU6CU9uZSBvZjoKIAkJImFzcGVlZCxhc3QyNDAwLXNjdSIsICJzeXNjb24iLCAic2ltcGxlLW1mZCIKLQkJImFzcGVlZCxnNC1zY3UiLCAic3lzY29uIiwgInNpbXBsZS1tZmQiCiAJCSJhc3BlZWQsYXN0MjUwMC1zY3UiLCAic3lzY29uIiwgInNpbXBsZS1tZmQiCi0JCSJhc3BlZWQsZzUtc2N1IiwgInN5c2NvbiIsICJzaW1wbGUtbWZkIgogCiAtIHJlZzoJCWNvbnRhaW5zIHRoZSBvZmZzZXQgYW5kIGxlbmd0aCBvZiB0aGUgU0NVIG1lbW9yeSByZWdpb24KIC0gI2Nsb2NrLWNlbGxzOiBzaG91bGQgYmUgc2V0IHRvIDwxPiAtIHRoZSBzeXN0ZW0gY29udHJvbGxlciBpcyBhbHNvIGEKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvbXQ2Mzk3LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvbXQ2Mzk3LnR4dAppbmRleCAwZWJkMDhhLi5hOWIxMDVhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWZkL210NjM5Ny50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9tdDYzOTcudHh0CkBAIC04LDExICs4LDEyIEBACiAtIENsb2NrCiAtIExFRAogLSBLZXlzCistIFBvd2VyIGNvbnRyb2xsZXIKIAogSXQgaXMgaW50ZXJmYWNlZCB0byBob3N0IGNvbnRyb2xsZXIgdXNpbmcgU1BJIGludGVyZmFjZSBieSBhIHByb3ByaWV0YXJ5IGhhcmR3YXJlCiBjYWxsZWQgUE1JQyB3cmFwcGVyIG9yIHB3cmFwLiBNVDYzOTcvTVQ2MzIzIE1GRCBpcyBhIGNoaWxkIGRldmljZSBvZiBwd3JhcC4KIFNlZSB0aGUgZm9sbG93aW5nIGZvciBwd2FycCBub2RlIGRlZmluaXRpb25zOgotRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvYy9tZWRpYXRlay9wd3JhcC50eHQKKy4uL3NvYy9tZWRpYXRlay9wd3JhcC50eHQKIAogVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIGJpbmRpbmcgZm9yIE1GRCBkZXZpY2UgYW5kIGl0cyBzdWIgbW9kdWxlLgogCkBAIC0yMiwxNCArMjMsMTYgQEAKIE9wdGlvbmFsIHN1Ym5vZGVzOgogCiAtIHJ0YwotCVJlcXVpcmVkIHByb3BlcnRpZXM6CisJUmVxdWlyZWQgcHJvcGVydGllczogU2hvdWxkIGJlIG9uZSBvZiBmb2xsb3dzCisJCS0gY29tcGF0aWJsZTogIm1lZGlhdGVrLG10NjMyMy1ydGMiCiAJCS0gY29tcGF0aWJsZTogIm1lZGlhdGVrLG10NjM5Ny1ydGMiCisJRm9yIGRldGFpbHMsIHNlZSAuLi9ydGMvcnRjLW10NjM5Ny50eHQKIC0gcmVndWxhdG9ycwogCVJlcXVpcmVkIHByb3BlcnRpZXM6CiAJCS0gY29tcGF0aWJsZTogIm1lZGlhdGVrLG10NjM5Ny1yZWd1bGF0b3IiCi0Jc2VlIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZWd1bGF0b3IvbXQ2Mzk3LXJlZ3VsYXRvci50eHQKKwlzZWUgLi4vcmVndWxhdG9yL210NjM5Ny1yZWd1bGF0b3IudHh0CiAJCS0gY29tcGF0aWJsZTogIm1lZGlhdGVrLG10NjMyMy1yZWd1bGF0b3IiCi0Jc2VlIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZWd1bGF0b3IvbXQ2MzIzLXJlZ3VsYXRvci50eHQKKwlzZWUgLi4vcmVndWxhdG9yL210NjMyMy1yZWd1bGF0b3IudHh0CiAtIGNvZGVjCiAJUmVxdWlyZWQgcHJvcGVydGllczoKIAkJLSBjb21wYXRpYmxlOiAibWVkaWF0ZWssbXQ2Mzk3LWNvZGVjIgpAQCAtMzksMTIgKzQyLDE3IEBACiAtIGxlZAogCVJlcXVpcmVkIHByb3BlcnRpZXM6CiAJCS0gY29tcGF0aWJsZTogIm1lZGlhdGVrLG10NjMyMy1sZWQiCi0Jc2VlIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9sZWRzL2xlZHMtbXQ2MzIzLnR4dAorCXNlZSAuLi9sZWRzL2xlZHMtbXQ2MzIzLnR4dAogCiAtIGtleXMKIAlSZXF1aXJlZCBwcm9wZXJ0aWVzOgogCQktIGNvbXBhdGlibGU6ICJtZWRpYXRlayxtdDYzOTcta2V5cyIgb3IgIm1lZGlhdGVrLG10NjMyMy1rZXlzIgotCXNlZSBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5wdXQvbXRrLXBtaWMta2V5cy50eHQKKwlzZWUgLi4vaW5wdXQvbXRrLXBtaWMta2V5cy50eHQKKworLSBwb3dlci1jb250cm9sbGVyCisJUmVxdWlyZWQgcHJvcGVydGllczoKKwkJLSBjb21wYXRpYmxlOiAibWVkaWF0ZWssbXQ2MzIzLXB3cmMiCisJRm9yIGRldGFpbHMsIHNlZSAuLi9wb3dlci9yZXNldC9tdDYzMjMtcG93ZXJvZmYudHh0CiAKIEV4YW1wbGU6CiAJcHdyYXA6IHB3cmFwQDEwMDBmMDAwIHsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvcm41dDYxOC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWZkL3JuNXQ2MTgudHh0CmluZGV4IDY1YzIzMjYuLmI3NGU1ZTkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvcm41dDYxOC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9ybjV0NjE4LnR4dApAQCAtMTQsNiArMTQsMTAgQEAKIAkJInJpY29oLHJjNXQ2MTkiCiAgLSByZWc6IHRoZSBJMkMgc2xhdmUgYWRkcmVzcyBvZiB0aGUgZGV2aWNlCiAKK09wdGlvbmFsIHByb3BlcnRpZXM6CisgLSBzeXN0ZW0tcG93ZXItY29udHJvbGxlcjoKKyAgIFNlZSBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcG93ZXIvcG93ZXItY29udHJvbGxlci50eHQKKwogU3ViLW5vZGVzOgogIC0gcmVndWxhdG9yczogdGhlIG5vZGUgaXMgcmVxdWlyZWQgaWYgdGhlIHJlZ3VsYXRvciBmdW5jdGlvbmFsaXR5IGlzCiAgICBuZWVkZWQuIFRoZSB2YWxpZCByZWd1bGF0b3IgbmFtZXMgYXJlOiBEQ0RDMSwgRENEQzIsIERDREMzLCBEQ0RDNApAQCAtMjgsNiArMzIsNyBAQAogCXBtaWNAMzIgewogCQljb21wYXRpYmxlID0gInJpY29oLHJuNXQ2MTgiOwogCQlyZWcgPSA8MHgzMj47CisJCXN5c3RlbS1wb3dlci1jb250cm9sbGVyOwogCiAJCXJlZ3VsYXRvcnMgewogCQkJRENEQzEgewpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21pc2MvYXNwZWVkLXAyYS1jdHJsLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9taXNjL2FzcGVlZC1wMmEtY3RybC50eHQKaW5kZXggODU0YmQ2Ny4uMGUxZmE1YiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21pc2MvYXNwZWVkLXAyYS1jdHJsLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWlzYy9hc3BlZWQtcDJhLWN0cmwudHh0CkBAIC0yNiw5ICsyNiw3IEBACiAKIC0gY29tcGF0aWJsZSA6IFNob3VsZCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKIAkJImFzcGVlZCxhc3QyNDAwLXNjdSIsICJzeXNjb24iLCAic2ltcGxlLW1mZCIKLQkJImFzcGVlZCxnNC1zY3UiLCAic3lzY29uIiwgInNpbXBsZS1tZmQiCiAJCSJhc3BlZWQsYXN0MjUwMC1zY3UiLCAic3lzY29uIiwgInNpbXBsZS1tZmQiCi0JCSJhc3BlZWQsZzUtc2N1IiwgInN5c2NvbiIsICJzaW1wbGUtbWZkIgogCiBFeGFtcGxlCiA9PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbXRkL214aWMtbmFuZC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbXRkL214aWMtbmFuZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZjNTUyOQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tdGQvbXhpYy1uYW5kLnR4dApAQCAtMCwwICsxLDM2IEBACitNYWNyb25peCBSYXcgTkFORCBDb250cm9sbGVyIERldmljZSBUcmVlIEJpbmRpbmdzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1JlcXVpcmVkIHByb3BlcnRpZXM6CistIGNvbXBhdGlibGU6IHNob3VsZCBiZSAibXhpYyxtdWx0aS1pdGZjLXYwMDktbmFuZC1jb250cm9sbGVyIgorLSByZWc6IHNob3VsZCBjb250YWluIDEgZW50cnkgZm9yIHRoZSByZWdpc3RlcnMKKy0gI2FkZHJlc3MtY2VsbHM6IHNob3VsZCBiZSBzZXQgdG8gMQorLSAjc2l6ZS1jZWxsczogc2hvdWxkIGJlIHNldCB0byAwCistIGludGVycnVwdHM6IGludGVycnVwdCBsaW5lIGNvbm5lY3RlZCB0byB0aGlzIHJhdyBOQU5EIGNvbnRyb2xsZXIKKy0gY2xvY2stbmFtZXM6IHNob3VsZCBjb250YWluICJwcyIsICJzZW5kIiBhbmQgInNlbmRfZGx5IgorLSBjbG9ja3M6IHNob3VsZCBjb250YWluIDMgcGhhbmRsZXMgZm9yIHRoZSAicHMiLCAic2VuZCIgYW5kCisJICJzZW5kX2RseSIgY2xvY2tzCisKK0NoaWxkcmVuIG5vZGVzOgorLSBjaGlsZHJlbiBub2RlcyByZXByZXNlbnQgdGhlIGF2YWlsYWJsZSBOQU5EIGNoaXBzLgorCitTZWUgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL210ZC9uYW5kLWNvbnRyb2xsZXIueWFtbAorZm9yIG1vcmUgZGV0YWlscyBvbiBnZW5lcmljIGJpbmRpbmdzLgorCitFeGFtcGxlOgorCisJbmFuZDogbmFuZC1jb250cm9sbGVyQDQzYzMwMDAwIHsKKwkJY29tcGF0aWJsZSA9ICJteGljLG11bHRpLWl0ZmMtdjAwOS1uYW5kLWNvbnRyb2xsZXIiOworCQlyZWcgPSA8MHg0M2MzMDAwMCAweDEwMDAwPjsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMHgxZCBJUlFfVFlQRV9FREdFX1JJU0lORz47CisJCWNsb2NrcyA9IDwmY2xrd2l6YXJkIDA+LCA8JmNsa3dpemFyZCAxPiwgPCZjbGtjIDE1PjsKKwkJY2xvY2stbmFtZXMgPSAic2VuZCIsICJzZW5kX2RseSIsICJwcyI7CisKKwkJbmFuZEAwIHsKKwkJCXJlZyA9IDwwPjsKKwkJCW5hbmQtZWNjLW1vZGUgPSAic29mdCI7CisJCQluYW5kLWVjYy1hbGdvID0gImJjaCI7CisJCX07CisJfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvZGVzaWdud2FyZS1wY2llLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvZGVzaWdud2FyZS1wY2llLnR4dAppbmRleCA1NTYxYTFjLi43ODQ5NGM0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL2Rlc2lnbndhcmUtcGNpZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9kZXNpZ253YXJlLXBjaWUudHh0CkBAIC0xMSw3ICsxMSw2IEBACiAJICAgICB0aGUgQVRVIGFkZHJlc3Mgc3BhY2UuCiAgICAgKFRoZSBvbGQgd2F5IG9mIGdldHRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gYWRkcmVzcyBzcGFjZSBmcm9tICJyYW5nZXMiCiAgICAgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIGJlIGF2b2lkZWQuKQotLSBudW0tbGFuZXM6IG51bWJlciBvZiBsYW5lcyB0byB1c2UKIFJDIG1vZGU6CiAtICNhZGRyZXNzLWNlbGxzOiBzZXQgdG8gPDM+CiAtICNzaXplLWNlbGxzOiBzZXQgdG8gPDI+CkBAIC0zNCw2ICszMywxMSBAQAogLSBjbG9jay1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczoKIAktICJwY2llIgogCS0gInBjaWVfYnVzIgorLSBzbnBzLGVuYWJsZS1jZG0tY2hlY2s6IFRoaXMgaXMgYSBib29sZWFuIHByb3BlcnR5IGFuZCBpZiBwcmVzZW50IGVuYWJsZXMKKyAgIGF1dG9tYXRpYyBjaGVja2luZyBvZiBDRE0gKENvbmZpZ3VyYXRpb24gRGVwZW5kZW50IE1vZHVsZSkgcmVnaXN0ZXJzCisgICBmb3IgZGF0YSBjb3JydXB0aW9uLiBDRE0gcmVnaXN0ZXJzIGluY2x1ZGUgc3RhbmRhcmQgUENJZSBjb25maWd1cmF0aW9uCisgICBzcGFjZSByZWdpc3RlcnMsIFBvcnQgTG9naWMgcmVnaXN0ZXJzLCBETUEgYW5kIGlBVFUgKGludGVybmFsIEFkZHJlc3MKKyAgIFRyYW5zbGF0aW9uIFVuaXQpIHJlZ2lzdGVycy4KIFJDIG1vZGU6CiAtIG51bS12aWV3cG9ydDogbnVtYmVyIG9mIHZpZXcgcG9ydHMgY29uZmlndXJlZCBpbiBoYXJkd2FyZS4gSWYgYSBwbGF0Zm9ybQogICBkb2VzIG5vdCBzcGVjaWZ5IGl0LCB0aGUgZHJpdmVyIGFzc3VtZXMgMi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvZnNsLGlteDZxLXBjaWUudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9mc2wsaW14NnEtcGNpZS50eHQKaW5kZXggYTdmNWY1YS4uZGU0YjJiYSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9mc2wsaW14NnEtcGNpZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9mc2wsaW14NnEtcGNpZS50eHQKQEAgLTUwLDcgKzUwLDcgQEAKIC0gcG93ZXItZG9tYWluczogTXVzdCBiZSBzZXQgdG8gYSBwaGFuZGxlIHBvaW50aW5nIHRvIFBDSUVfUEhZIHBvd2VyIGRvbWFpbgogLSByZXNldHM6IE11c3QgY29udGFpbiBwaGFuZGxlcyB0byBQQ0llLXJlbGF0ZWQgcmVzZXQgbGluZXMgZXhwb3NlZCBieSBTUkMKICAgSVAgYmxvY2sKLS0gcmVzZXQtbmFtZXM6IE11c3QgY29udGFpbiB0aGUgZm9sbG93aW5nIGVudGlyZXM6CistIHJlc2V0LW5hbWVzOiBNdXN0IGNvbnRhaW4gdGhlIGZvbGxvd2luZyBlbnRyaWVzOgogCSAgICAgICAtICJwY2llcGh5IgogCSAgICAgICAtICJhcHBzIgogCSAgICAgICAtICJ0dXJub2ZmIgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlay1wY2llLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWstcGNpZS50eHQKaW5kZXggOTI0MzdhMy4uNzQ2OGQ2NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlay1wY2llLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL21lZGlhdGVrLXBjaWUudHh0CkBAIC02LDYgKzYsNyBAQAogCSJtZWRpYXRlayxtdDI3MTItcGNpZSIKIAkibWVkaWF0ZWssbXQ3NjIyLXBjaWUiCiAJIm1lZGlhdGVrLG10NzYyMy1wY2llIgorCSJtZWRpYXRlayxtdDc2MjktcGNpZSIKIC0gZGV2aWNlX3R5cGU6IE11c3QgYmUgInBjaSIKIC0gcmVnOiBCYXNlIGFkZHJlc3NlcyBhbmQgbGVuZ3RocyBvZiB0aGUgUENJZSBzdWJzeXMgYW5kIHJvb3QgcG9ydHMuCiAtIHJlZy1uYW1lczogTmFtZXMgb2YgdGhlIGFib3ZlIGFyZWFzIHRvIHVzZSBkdXJpbmcgcmVzb3VyY2UgbG9va3VwLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9udmlkaWEsdGVncmExOTQtcGNpZS50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL252aWRpYSx0ZWdyYTE5NC1wY2llLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzM5ZjkyCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9udmlkaWEsdGVncmExOTQtcGNpZS50eHQKQEAgLTAsMCArMSwxNzEgQEAKK05WSURJQSBUZWdyYSBQQ0llIGNvbnRyb2xsZXIgKFN5bm9wc3lzIERlc2lnbldhcmUgQ29yZSBiYXNlZCkKKworVGhpcyBQQ0llIGhvc3QgY29udHJvbGxlciBpcyBiYXNlZCBvbiB0aGUgU3lub3BzaXMgRGVzaWdud2FyZSBQQ0llIElQCithbmQgdGh1cyBpbmhlcml0cyBhbGwgdGhlIGNvbW1vbiBwcm9wZXJ0aWVzIGRlZmluZWQgaW4gZGVzaWdud2FyZS1wY2llLnR4dC4KKworUmVxdWlyZWQgcHJvcGVydGllczoKKy0gY29tcGF0aWJsZTogRm9yIFRlZ3JhMTl4LCBtdXN0IGNvbnRhaW4gIm52aWRpYSx0ZWdyYTE5NC1wY2llIi4KKy0gZGV2aWNlX3R5cGU6IE11c3QgYmUgInBjaSIKKy0gcG93ZXItZG9tYWluczogQSBwaGFuZGxlIHRvIHRoZSBub2RlIHRoYXQgY29udHJvbHMgcG93ZXIgdG8gdGhlIHJlc3BlY3RpdmUKKyAgUENJZSBjb250cm9sbGVyIGFuZCBhIHNwZWNpZmllciBuYW1lIGZvciB0aGUgUENJZSBjb250cm9sbGVyLiBGb2xsb3dpbmcgYXJlCisgIHRoZSBzcGVjaWZpZXJzIGZvciB0aGUgZGlmZmVyZW50IFBDSWUgY29udHJvbGxlcnMKKyAgICBURUdSQTE5NF9QT1dFUl9ET01BSU5fUENJRVg4QjogQzAKKyAgICBURUdSQTE5NF9QT1dFUl9ET01BSU5fUENJRVgxQTogQzEKKyAgICBURUdSQTE5NF9QT1dFUl9ET01BSU5fUENJRVgxQTogQzIKKyAgICBURUdSQTE5NF9QT1dFUl9ET01BSU5fUENJRVgxQTogQzMKKyAgICBURUdSQTE5NF9QT1dFUl9ET01BSU5fUENJRVg0QTogQzQKKyAgICBURUdSQTE5NF9QT1dFUl9ET01BSU5fUENJRVg4QTogQzUKKyAgdGhlc2Ugc3BlY2lmaWVycyBhcmUgZGVmaW5lZCBpbgorICAiaW5jbHVkZS9kdC1iaW5kaW5ncy9wb3dlci90ZWdyYTE5NC1wb3dlcmdhdGUuaCIgZmlsZS4KKy0gcmVnOiBBIGxpc3Qgb2YgcGh5c2ljYWwgYmFzZSBhZGRyZXNzIGFuZCBsZW5ndGggcGFpcnMgZm9yIGVhY2ggc2V0IG9mCisgIGNvbnRyb2xsZXIgcmVnaXN0ZXJzLiBNdXN0IGNvbnRhaW4gYW4gZW50cnkgZm9yIGVhY2ggZW50cnkgaW4gdGhlIHJlZy1uYW1lcworICBwcm9wZXJ0eS4KKy0gcmVnLW5hbWVzOiBNdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBlbnRyaWVzOgorICAiYXBwbCI6IENvbnRyb2xsZXIncyBhcHBsaWNhdGlvbiBsb2dpYyByZWdpc3RlcnMKKyAgImNvbmZpZyI6IEFzIHBlciB0aGUgZGVmaW5pdGlvbiBpbiBkZXNpZ253YXJlLXBjaWUudHh0CisgICJhdHVfZG1hIjogaUFUVSBhbmQgRE1BIHJlZ2lzdGVycy4gVGhpcyBpcyB3aGVyZSB0aGUgaUFUVSAoaW50ZXJuYWwgQWRkcmVzcworICAgICAgICAgICAgIFRyYW5zbGF0aW9uIFVuaXQpIHJlZ2lzdGVycyBvZiB0aGUgUENJZSBjb3JlIGFyZSBtYWRlIGF2YWlsYWJsZQorICAgICAgICAgICAgIGZvciBTVyBhY2Nlc3MuCisgICJkYmkiOiBUaGUgYXBlcnR1cmUgd2hlcmUgcm9vdCBwb3J0J3Mgb3duIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzIGFyZQorICAgICAgICAgYXZhaWxhYmxlCistIGludGVycnVwdHM6IEEgbGlzdCBvZiBpbnRlcnJ1cHQgb3V0cHV0cyBvZiB0aGUgY29udHJvbGxlci4gTXVzdCBjb250YWluIGFuCisgIGVudHJ5IGZvciBlYWNoIGVudHJ5IGluIHRoZSBpbnRlcnJ1cHQtbmFtZXMgcHJvcGVydHkuCistIGludGVycnVwdC1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczoKKyAgImludHIiOiBUaGUgVGVncmEgaW50ZXJydXB0IHRoYXQgaXMgYXNzZXJ0ZWQgZm9yIGNvbnRyb2xsZXIgaW50ZXJydXB0cworICAibXNpIjogVGhlIFRlZ3JhIGludGVycnVwdCB0aGF0IGlzIGFzc2VydGVkIHdoZW4gYW4gTVNJIGlzIHJlY2VpdmVkCistIGJ1cy1yYW5nZTogUmFuZ2Ugb2YgYnVzIG51bWJlcnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29udHJvbGxlcgorLSAjYWRkcmVzcy1jZWxsczogQWRkcmVzcyByZXByZXNlbnRhdGlvbiBmb3Igcm9vdCBwb3J0cyAobXVzdCBiZSAzKQorICAtIGNlbGwgMCBzcGVjaWZpZXMgdGhlIGJ1cyBhbmQgZGV2aWNlIG51bWJlcnMgb2YgdGhlIHJvb3QgcG9ydDoKKyAgICBbMjM6MTZdOiBidXMgbnVtYmVyCisgICAgWzE1OjExXTogZGV2aWNlIG51bWJlcgorICAtIGNlbGwgMSBkZW5vdGVzIHRoZSB1cHBlciAzMiBhZGRyZXNzIGJpdHMgYW5kIHNob3VsZCBiZSAwCisgIC0gY2VsbCAyIGNvbnRhaW5zIHRoZSBsb3dlciAzMiBhZGRyZXNzIGJpdHMgYW5kIGlzIHVzZWQgdG8gdHJhbnNsYXRlIHRvIHRoZQorICAgIENQVSBhZGRyZXNzIHNwYWNlCistICNzaXplLWNlbGxzOiBTaXplIHJlcHJlc2VudGF0aW9uIGZvciByb290IHBvcnRzIChtdXN0IGJlIDIpCistIHJhbmdlczogRGVzY3JpYmVzIHRoZSB0cmFuc2xhdGlvbiBvZiBhZGRyZXNzZXMgZm9yIHJvb3QgcG9ydHMgYW5kIHN0YW5kYXJkCisgIFBDSSByZWdpb25zLiBUaGUgZW50cmllcyBtdXN0IGJlIDcgY2VsbHMgZWFjaCwgd2hlcmUgdGhlIGZpcnN0IHRocmVlIGNlbGxzCisgIGNvcnJlc3BvbmQgdG8gdGhlIGFkZHJlc3MgYXMgZGVzY3JpYmVkIGZvciB0aGUgI2FkZHJlc3MtY2VsbHMgcHJvcGVydHkKKyAgYWJvdmUsIHRoZSBmb3VydGggYW5kIGZpZnRoIGNlbGxzIGFyZSBmb3IgdGhlIHBoeXNpY2FsIENQVSBhZGRyZXNzIHRvCisgIHRyYW5zbGF0ZSB0byBhbmQgdGhlIHNpeHRoIGFuZCBzZXZlbnRoIGNlbGxzIGFyZSBhcyBkZXNjcmliZWQgZm9yIHRoZQorICAjc2l6ZS1jZWxscyBwcm9wZXJ0eSBhYm92ZS4KKyAgLSBFbnRyaWVzIHNldHVwIHRoZSBtYXBwaW5nIGZvciB0aGUgc3RhbmRhcmQgSS9PLCBtZW1vcnkgYW5kCisgICAgcHJlZmV0Y2hhYmxlIFBDSSByZWdpb25zLiBUaGUgZmlyc3QgY2VsbCBkZXRlcm1pbmVzIHRoZSB0eXBlIG9mIHJlZ2lvbgorICAgIHRoYXQgaXMgc2V0dXA6CisgICAgLSAweDgxMDAwMDAwOiBJL08gbWVtb3J5IHJlZ2lvbgorICAgIC0gMHg4MjAwMDAwMDogbm9uLXByZWZldGNoYWJsZSBtZW1vcnkgcmVnaW9uCisgICAgLSAweGMyMDAwMDAwOiBwcmVmZXRjaGFibGUgbWVtb3J5IHJlZ2lvbgorICBQbGVhc2UgcmVmZXIgdG8gdGhlIHN0YW5kYXJkIFBDSSBidXMgYmluZGluZyBkb2N1bWVudCBmb3IgYSBtb3JlIGRldGFpbGVkCisgIGV4cGxhbmF0aW9uLgorLSAjaW50ZXJydXB0LWNlbGxzOiBTaXplIHJlcHJlc2VudGF0aW9uIGZvciBpbnRlcnJ1cHRzIChtdXN0IGJlIDEpCistIGludGVycnVwdC1tYXAtbWFzayBhbmQgaW50ZXJydXB0LW1hcDogU3RhbmRhcmQgUENJIElSUSBtYXBwaW5nIHByb3BlcnRpZXMKKyAgUGxlYXNlIHJlZmVyIHRvIHRoZSBzdGFuZGFyZCBQQ0kgYnVzIGJpbmRpbmcgZG9jdW1lbnQgZm9yIGEgbW9yZSBkZXRhaWxlZAorICBleHBsYW5hdGlvbi4KKy0gY2xvY2tzOiBNdXN0IGNvbnRhaW4gYW4gZW50cnkgZm9yIGVhY2ggZW50cnkgaW4gY2xvY2stbmFtZXMuCisgIFNlZSAuLi9jbG9ja3MvY2xvY2stYmluZGluZ3MudHh0IGZvciBkZXRhaWxzLgorLSBjbG9jay1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczoKKyAgLSBjb3JlCistIHJlc2V0czogTXVzdCBjb250YWluIGFuIGVudHJ5IGZvciBlYWNoIGVudHJ5IGluIHJlc2V0LW5hbWVzLgorICBTZWUgLi4vcmVzZXQvcmVzZXQudHh0IGZvciBkZXRhaWxzLgorLSByZXNldC1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczoKKyAgLSBhcGIKKyAgLSBjb3JlCistIHBoeXM6IE11c3QgY29udGFpbiBhIHBoYW5kbGUgdG8gUDJVIFBIWSBmb3IgZWFjaCBlbnRyeSBpbiBwaHktbmFtZXMuCistIHBoeS1uYW1lczogTXVzdCBpbmNsdWRlIGFuIGVudHJ5IGZvciBlYWNoIGFjdGl2ZSBsYW5lLgorICAicDJ1LU4iOiB3aGVyZSBOIHJhbmdlcyBmcm9tIDAgdG8gb25lIGxlc3MgdGhhbiB0aGUgdG90YWwgbnVtYmVyIG9mIGxhbmVzCistIG52aWRpYSxicG1wOiBNdXN0IGNvbnRhaW4gYSBwYWlyIG9mIHBoYW5kbGUgdG8gQlBNUCBjb250cm9sbGVyIG5vZGUgZm9sbG93ZWQKKyAgYnkgY29udHJvbGxlci1pZC4gRm9sbG93aW5nIGFyZSB0aGUgY29udHJvbGxlciBpZHMgZm9yIGVhY2ggY29udHJvbGxlci4KKyAgICAwOiBDMAorICAgIDE6IEMxCisgICAgMjogQzIKKyAgICAzOiBDMworICAgIDQ6IEM0CisgICAgNTogQzUKKy0gdmRkaW8tcGV4LWN0bC1zdXBwbHk6IFJlZ3VsYXRvciBzdXBwbHkgZm9yIFBDSWUgc2lkZSBiYW5kIHNpZ25hbHMKKworT3B0aW9uYWwgcHJvcGVydGllczoKKy0gcGluY3RybC1uYW1lczogQSBsaXN0IG9mIHBpbmN0cmwgc3RhdGUgbmFtZXMuCisgIEl0IGlzIG1hbmRhdG9yeSBmb3IgQzUgY29udHJvbGxlciBhbmQgb3B0aW9uYWwgZm9yIG90aGVyIGNvbnRyb2xsZXJzLgorICAtICJkZWZhdWx0IjogQ29uZmlndXJlcyBQQ0llIEkvTyBmb3IgcHJvcGVyIG9wZXJhdGlvbi4KKy0gcGluY3RybC0wOiBwaGFuZGxlIGZvciB0aGUgJ2RlZmF1bHQnIHN0YXRlIG9mIHBpbiBjb25maWd1cmF0aW9uLgorICBJdCBpcyBtYW5kYXRvcnkgZm9yIEM1IGNvbnRyb2xsZXIgYW5kIG9wdGlvbmFsIGZvciBvdGhlciBjb250cm9sbGVycy4KKy0gc3VwcG9ydHMtY2xrcmVxOiBSZWZlciB0byBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL3BjaS50eHQKKy0gbnZpZGlhLHVwZGF0ZS1mYy1maXh1cDogVGhpcyBpcyBhIGJvb2xlYW4gcHJvcGVydHkgYW5kIG5lZWRzIHRvIGJlIHByZXNlbnQgdG8KKyAgICBpbXByb3ZlIHBlcmZvcm1hbmNlIHdoZW4gYSBwbGF0Zm9ybSBpcyBkZXNpZ25lZCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQKKyAgICBzYXRpc2ZpZXMgYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyB0aGVyZWJ5IGVuYWJsaW5nIHJvb3QKKyAgICBwb3J0IHRvIGV4Y2hhbmdlIG9wdGltdW0gbnVtYmVyIG9mIEZDIChGbG93IENvbnRyb2wpIGNyZWRpdHMgd2l0aAorICAgIGRvd25zdHJlYW0gZGV2aWNlcworICAgIDEuIElmIEMwL0M0L0M1IHJ1biBhdCB4MS94MiBsaW5rIHdpZHRocyAoaXJyZXNwZWN0aXZlIG9mIHNwZWVkIGFuZCBNUFMpCisgICAgMi4gSWYgQzAvQzEvQzIvQzMvQzQvQzUgb3BlcmF0ZSBhdCB0aGVpciByZXNwZWN0aXZlIG1heCBsaW5rIHdpZHRocyBhbmQKKyAgICAgICBhKSBzcGVlZCBpcyBHZW4tMiBhbmQgTVBTIGlzIDI1NkIKKyAgICAgICBiKSBzcGVlZCBpcyA+PSBHZW4tMyB3aXRoIGFueSBNUFMKKy0gbnZpZGlhLGFzcG0tY21ydC11czogQ29tbW9uIE1vZGUgUmVzdG9yZSBUaW1lIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIEFTUE0KKyAgIHRvIGJlIHNwZWNpZmllZCBpbiBtaWNyb3NlY29uZHMKKy0gbnZpZGlhLGFzcG0tcHdyLW9uLXQtdXM6IFBvd2VyIE9uIHRpbWUgZm9yIHByb3BlciBvcGVyYXRpb24gb2YgQVNQTSB0byBiZQorICAgc3BlY2lmaWVkIGluIG1pY3Jvc2Vjb25kcworLSBudmlkaWEsYXNwbS1sMHMtZW50cmFuY2UtbGF0ZW5jeS11czogQVNQTSBMMHMgZW50cmFuY2UgbGF0ZW5jeSB0byBiZQorICAgc3BlY2lmaWVkIGluIG1pY3Jvc2Vjb25kcworLSB2cGNpZTN2My1zdXBwbHk6IEEgcGhhbmRsZSB0byB0aGUgcmVndWxhdG9yIG5vZGUgdGhhdCBzdXBwbGllcyAzLjNWIHRvIHRoZSBzbG90CisgIGlmIHRoZSBwbGF0Zm9ybSBoYXMgb25lIHN1Y2ggc2xvdC4gKEV4Oi0geDE2IHNsb3Qgb3duZWQgYnkgQzUgY29udHJvbGxlcgorICBpbiBwMjk3Mi0wMDAwIHBsYXRmb3JtKS4KKy0gdnBjaWUxMnYtc3VwcGx5OiBBIHBoYW5kbGUgdG8gdGhlIHJlZ3VsYXRvciBub2RlIHRoYXQgc3VwcGxpZXMgMTJWIHRvIHRoZSBzbG90CisgIGlmIHRoZSBwbGF0Zm9ybSBoYXMgb25lIHN1Y2ggc2xvdC4gKEV4Oi0geDE2IHNsb3Qgb3duZWQgYnkgQzUgY29udHJvbGxlcgorICBpbiBwMjk3Mi0wMDAwIHBsYXRmb3JtKS4KKworRXhhbXBsZXM6Cis9PT09PT09PT0KKworVGVncmExOTQ6CistLS0tLS0tLQorCisJcGNpZUAxNDE4MDAwMCB7CisJCWNvbXBhdGlibGUgPSAibnZpZGlhLHRlZ3JhMTk0LXBjaWUiLCAic25wcyxkdy1wY2llIjsKKwkJcG93ZXItZG9tYWlucyA9IDwmYnBtcCBURUdSQTE5NF9QT1dFUl9ET01BSU5fUENJRVg4Qj47CisJCXJlZyA9IDwweDAwIDB4MTQxODAwMDAgMHgwIDB4MDAwMjAwMDAgICAvKiBhcHBsIHJlZ2lzdGVycyAoMTI4SykgICAgICAqLworCQkgICAgICAgMHgwMCAweDM4MDAwMDAwIDB4MCAweDAwMDQwMDAwICAgLyogY29uZmlndXJhdGlvbiBzcGFjZSAoMjU2SykgKi8KKwkJICAgICAgIDB4MDAgMHgzODA0MDAwMCAweDAgMHgwMDA0MDAwMD47IC8qIGlBVFVfRE1BIHJlZyBzcGFjZSAoMjU2SykgICovCisJCXJlZy1uYW1lcyA9ICJhcHBsIiwgImNvbmZpZyIsICJhdHVfZG1hIjsKKworCQkjYWRkcmVzcy1jZWxscyA9IDwzPjsKKwkJI3NpemUtY2VsbHMgPSA8Mj47CisJCWRldmljZV90eXBlID0gInBjaSI7CisJCW51bS1sYW5lcyA9IDw4PjsKKwkJbGludXgscGNpLWRvbWFpbiA9IDwwPjsKKworCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCQlwaW5jdHJsLTAgPSA8JnBleF9yc3RfYzVfb3V0X3N0YXRlPiwgPCZjbGtyZXFfYzVfYmlfZGlyX3N0YXRlPjsKKworCQljbG9ja3MgPSA8JmJwbXAgVEVHUkExOTRfQ0xLX1BFWDBfQ09SRV8wPjsKKwkJY2xvY2stbmFtZXMgPSAiY29yZSI7CisKKwkJcmVzZXRzID0gPCZicG1wIFRFR1JBMTk0X1JFU0VUX1BFWDBfQ09SRV8wX0FQQj4sCisJCQkgPCZicG1wIFRFR1JBMTk0X1JFU0VUX1BFWDBfQ09SRV8wPjsKKwkJcmVzZXQtbmFtZXMgPSAiYXBiIiwgImNvcmUiOworCisJCWludGVycnVwdHMgPSA8R0lDX1NQSSA3MiBJUlFfVFlQRV9MRVZFTF9ISUdIPiwJLyogY29udHJvbGxlciBpbnRlcnJ1cHQgKi8KKwkJCSAgICAgPEdJQ19TUEkgNzMgSVJRX1RZUEVfTEVWRUxfSElHSD47CS8qIE1TSSBpbnRlcnJ1cHQgKi8KKwkJaW50ZXJydXB0LW5hbWVzID0gImludHIiLCAibXNpIjsKKworCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+OworCQlpbnRlcnJ1cHQtbWFwLW1hc2sgPSA8MCAwIDAgMD47CisJCWludGVycnVwdC1tYXAgPSA8MCAwIDAgMCAmZ2ljIEdJQ19TUEkgNzIgSVJRX1RZUEVfTEVWRUxfSElHSD47CisKKwkJbnZpZGlhLGJwbXAgPSA8JmJwbXAgMD47CisKKwkJc3VwcG9ydHMtY2xrcmVxOworCQludmlkaWEsYXNwbS1jbXJ0LXVzID0gPDYwPjsKKwkJbnZpZGlhLGFzcG0tcHdyLW9uLXQtdXMgPSA8MjA+OworCQludmlkaWEsYXNwbS1sMHMtZW50cmFuY2UtbGF0ZW5jeS11cyA9IDwzPjsKKworCQlidXMtcmFuZ2UgPSA8MHgwIDB4ZmY+OworCQlyYW5nZXMgPSA8MHg4MTAwMDAwMCAweDAgIDB4MzgxMDAwMDAgMHgwICAweDM4MTAwMDAwIDB4MCAweDAwMTAwMDAwICAgIC8qIGRvd25zdHJlYW0gSS9PICgxTUIpICovCisJCQkgIDB4ODIwMDAwMDAgMHgwICAweDM4MjAwMDAwIDB4MCAgMHgzODIwMDAwMCAweDAgMHgwMUUwMDAwMCAgICAvKiBub24tcHJlZmV0Y2hhYmxlIG1lbW9yeSAoMzBNQikgKi8KKwkJCSAgMHhjMjAwMDAwMCAweDE4IDB4MDAwMDAwMDAgMHgxOCAweDAwMDAwMDAwIDB4NCAweDAwMDAwMDAwPjsgIC8qIHByZWZldGNoYWJsZSBtZW1vcnkgKDE2R0IpICovCisKKwkJdmRkaW8tcGV4LWN0bC1zdXBwbHkgPSA8JnZkZF8xdjhhbz47CisJCXZwY2llM3YzLXN1cHBseSA9IDwmdmRkXzN2M19wY2llPjsKKwkJdnBjaWUxMnYtc3VwcGx5ID0gPCZ2ZGRfMTJ2X3BjaWU+OworCisJCXBoeXMgPSA8JnAydV9oc2lvXzI+LCA8JnAydV9oc2lvXzM+LCA8JnAydV9oc2lvXzQ+LAorCQkgICAgICAgPCZwMnVfaHNpb181PjsKKwkJcGh5LW5hbWVzID0gInAydS0wIiwgInAydS0xIiwgInAydS0yIiwgInAydS0zIjsKKwl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9wY2ktYXJtYWRhOGsudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9wY2ktYXJtYWRhOGsudHh0CmluZGV4IDgzMjRhNGUuLjdhODEzZDAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvcGNpLWFybWFkYThrLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL3BjaS1hcm1hZGE4ay50eHQKQEAgLTExLDcgKzExLDcgQEAKIC0gcmVnLW5hbWVzOgogICAgLSAiY3RybCIgZm9yIHRoZSBjb250cm9sIHJlZ2lzdGVyIHJlZ2lvbgogICAgLSAiY29uZmlnIiBmb3IgdGhlIGNvbmZpZyBzcGFjZSByZWdpb24KLS0gaW50ZXJydXB0czogSW50ZXJydXB0IHNwZWNpZmllciBmb3IgdGhlIFBDSWUgY29udHJvbGVyCistIGludGVycnVwdHM6IEludGVycnVwdCBzcGVjaWZpZXIgZm9yIHRoZSBQQ0llIGNvbnRyb2xsZXIKIC0gY2xvY2tzOiByZWZlcmVuY2UgdG8gdGhlIFBDSWUgY29udHJvbGxlciBjbG9ja3MKIC0gY2xvY2stbmFtZXM6IG1hbmRhdG9yeSBpZiB0aGVyZSBpcyBhIHNlY29uZCBjbG9jaywgaW4gdGhpcyBjYXNlIHRoZQogICAgbmFtZSBtdXN0IGJlICJjb3JlIiBmb3IgdGhlIGZpcnN0IGNsb2NrIGFuZCAicmVnIiBmb3IgdGhlIHNlY29uZApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9wY2ktbXNpLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvcGNpLW1zaS50eHQKaW5kZXggOWIzY2M4MS4uYjczZDgzOSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9wY2ktbXNpLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL3BjaS1tc2kudHh0CkBAIC0yMDEsNyArMjAxLDcgQEAKIAkJI21zaS1jZWxscyA9IDwxPjsKIAl9OwogCi0JcGNpOiBwY2lAYyB7CisJcGNpOiBwY2lAZiB7CiAJCXJlZyA9IDwweGYgMHgxPjsKIAkJY29tcGF0aWJsZSA9ICJ2ZW5kb3IscGNpZS1yb290LWNvbXBsZXgiOwogCQlkZXZpY2VfdHlwZSA9ICJwY2kiOwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9wY2kudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9wY2kudHh0CmluZGV4IDJhNWQ5MTAuLjI5YmNiZDggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvcGNpLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL3BjaS50eHQKQEAgLTI3LDYgKzI3LDExIEBACiAtIHJlc2V0LWdwaW9zOgogICAgSWYgcHJlc2VudCB0aGlzIHByb3BlcnR5IHNwZWNpZmllcyBQRVJTVCMgR1BJTy4gSG9zdCBkcml2ZXJzIGNhbiBwYXJzZSB0aGUKICAgIEdQSU8gYW5kIGFwcGx5IGZ1bmRhbWVudGFsIHJlc2V0IHRvIGVuZHBvaW50cy4KKy0gc3VwcG9ydHMtY2xrcmVxOgorICAgSWYgcHJlc2VudCB0aGlzIHByb3BlcnR5IHNwZWNpZmllcyB0aGF0IENMS1JFUSBzaWduYWwgcm91dGluZyBleGlzdHMgZnJvbQorICAgcm9vdCBwb3J0IHRvIGRvd25zdHJlYW0gZGV2aWNlIGFuZCBob3N0IGJyaWRnZSBkcml2ZXJzIGNhbiBkbyBwcm9ncmFtbWluZworICAgd2hpY2ggZGVwZW5kcyBvbiBDTEtSRVEgc2lnbmFsIGV4aXN0ZW5jZS4gRm9yIGV4YW1wbGUsIHByb2dyYW1taW5nIHJvb3QgcG9ydAorICAgbm90IHRvIGFkdmVydGlzZSBBU1BNIEwxIFN1Yi1TdGF0ZXMgc3VwcG9ydCBpZiB0aGVyZSBpcyBubyBDTEtSRVEgc2lnbmFsLgogCiBQQ0ktUENJIEJyaWRnZSBwcm9wZXJ0aWVzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL3BjaWUtYWwudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9wY2llLWFsLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTdhNTA4Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9wY2llLWFsLnR4dApAQCAtMCwwICsxLDQ2IEBACisqIEFtYXpvbiBBbm5hcHVybmEgTGFicyBQQ0llIGhvc3QgYnJpZGdlCisKK0FtYXpvbidzIEFubmFwdXJuYSBMYWJzIFBDSWUgSG9zdCBDb250cm9sbGVyIGlzIGJhc2VkIG9uIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlCitQQ0kgY29yZS4gSXQgaW5oZXJpdHMgY29tbW9uIHByb3BlcnRpZXMgZGVmaW5lZCBpbgorRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9kZXNpZ253YXJlLXBjaWUudHh0LgorCitQcm9wZXJ0aWVzIG9mIHRoZSBob3N0IGNvbnRyb2xsZXIgbm9kZSB0aGF0IGRpZmZlciBmcm9tIGl0IGFyZToKKworLSBjb21wYXRpYmxlOgorCVVzYWdlOiByZXF1aXJlZAorCVZhbHVlIHR5cGU6IDxzdHJpbmdsaXN0PgorCURlZmluaXRpb246IFZhbHVlIHNob3VsZCBjb250YWluCisJCQktICJhbWF6b24sYWwtYWxwaW5lLXYyLXBjaWUiIGZvciBhbHBpbmVfdjIKKwkJCS0gImFtYXpvbixhbC1hbHBpbmUtdjMtcGNpZSIgZm9yIGFscGluZV92MworCistIHJlZzoKKwlVc2FnZTogcmVxdWlyZWQKKwlWYWx1ZSB0eXBlOiA8cHJvcC1lbmNvZGVkLWFycmF5PgorCURlZmluaXRpb246IFJlZ2lzdGVyIHJhbmdlcyBhcyBsaXN0ZWQgaW4gdGhlIHJlZy1uYW1lcyBwcm9wZXJ0eQorCistIHJlZy1uYW1lczoKKwlVc2FnZTogcmVxdWlyZWQKKwlWYWx1ZSB0eXBlOiA8c3RyaW5nbGlzdD4KKwlEZWZpbml0aW9uOiBNdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBlbnRyaWVzCisJCQktICJjb25maWciCVBDSWUgRUNBTSBzcGFjZQorCQkJLSAiY29udHJvbGxlciIJQUwgcHJvcHJpZXRhcnkgcmVnaXN0ZXJzCisJCQktICJkYmkiCQlEZXNpZ253YXJlIFBDSWUgcmVnaXN0ZXJzCisKK0V4YW1wbGU6CisKKwlwY2llLWV4dGVybmFsMDogcGNpZUBmYjYwMDAwMCB7CisJCWNvbXBhdGlibGUgPSAiYW1hem9uLGFsLWFscGluZS12My1wY2llIjsKKwkJcmVnID0gPDB4MCAweGZiNjAwMDAwIDB4MCAweDAwMTAwMDAwCisJCSAgICAgICAweDAgMHhmZDgwMDAwMCAweDAgMHgwMDAxMDAwMAorCQkgICAgICAgMHgwIDB4ZmQ4MTAwMDAgMHgwIDB4MDAwMDEwMDA+OworCQlyZWctbmFtZXMgPSAiY29uZmlnIiwgImNvbnRyb2xsZXIiLCAiZGJpIjsKKwkJYnVzLXJhbmdlID0gPDAgMjU1PjsKKwkJZGV2aWNlX3R5cGUgPSAicGNpIjsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8Mz47CisJCSNzaXplLWNlbGxzID0gPDI+OworCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+OworCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgNDkgSVJRX1RZUEVfTEVWRUxfSElHSD47CisJCWludGVycnVwdC1tYXAtbWFzayA9IDwweDAwIDAgMCA3PjsKKwkJaW50ZXJydXB0LW1hcCA9IDwweDAwMDAgMCAwIDEgJmdpYyBHSUNfU1BJIDQxIElSUV9UWVBFX0xFVkVMX0hJR0g+OyAvKiBJTlRhICovCisJCXJhbmdlcyA9IDwweDAyMDAwMDAwIDB4MCAweGMwMDEwMDAwIDB4MCAweGMwMDEwMDAwIDB4MCAweDA3ZmYwMDAwPjsKKwl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9hbWxvZ2ljLG1lc29uLWcxMmEtdXNiMi1waHkueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvYW1sb2dpYyxtZXNvbi1nMTJhLXVzYjItcGh5LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEyNTRiNAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvYW1sb2dpYyxtZXNvbi1nMTJhLXVzYjItcGh5LnlhbWwKQEAgLTAsMCArMSw2MyBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAgT1IgQlNELTItQ2xhdXNlKQorIyBDb3B5cmlnaHQgMjAxOSBCYXlMaWJyZSwgU0FTCislWUFNTCAxLjIKKy0tLQorJGlkOiAiaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvcGh5L2FtbG9naWMsbWVzb24tZzEyYS11c2IyLXBoeS55YW1sIyIKKyRzY2hlbWE6ICJodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMiCisKK3RpdGxlOiBBbWxvZ2ljIEcxMkEgVVNCMiBQSFkKKworbWFpbnRhaW5lcnM6CisgIC0gTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgorCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGVudW06CisgICAgICAtIGFtbG9naWMsbWVzb24tZzEyYS11c2IyLXBoeQorCisgIHJlZzoKKyAgICBtYXhJdGVtczogMQorCisgIGNsb2NrczoKKyAgICBtYXhJdGVtczogMQorCisgIGNsb2NrLW5hbWVzOgorICAgIGl0ZW1zOgorICAgICAgLSBjb25zdDogeHRhbAorCisgIHJlc2V0czoKKyAgICBtYXhJdGVtczogMQorCisgIHJlc2V0LW5hbWVzOgorICAgIGl0ZW1zOgorICAgICAgLSBjb25zdDogcGh5CisKKyAgIiNwaHktY2VsbHMiOgorICAgIGNvbnN0OiAwCisKKyAgcGh5LXN1cHBseToKKyAgICAgbWF4SXRlbXM6IDEKKyAgICAgZGVzY3JpcHRpb246CisgICAgICAgUGhhbmRsZSB0byBhIHJlZ3VsYXRvciB0aGF0IHByb3ZpZGVzIHBvd2VyIHRvIHRoZSBQSFkuIFRoaXMKKyAgICAgICByZWd1bGF0b3Igd2lsbCBiZSBtYW5hZ2VkIGR1cmluZyB0aGUgUEhZIHBvd2VyIG9uL29mZiBzZXF1ZW5jZS4KKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtIGNsb2NrcworICAtIGNsb2NrLW5hbWVzCisgIC0gcmVzZXRzCisgIC0gcmVzZXQtbmFtZXMKKyAgLSAiI3BoeS1jZWxscyIKKworZXhhbXBsZXM6CisgIC0gfAorICAgIHBoeUAzNjAwMCB7CisgICAgICAgICAgY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLWcxMmEtdXNiMi1waHkiOworICAgICAgICAgIHJlZyA9IDwweDM2MDAwIDB4MjAwMD47CisgICAgICAgICAgY2xvY2tzID0gPCZ4dGFsPjsKKyAgICAgICAgICBjbG9jay1uYW1lcyA9ICJ4dGFsIjsKKyAgICAgICAgICByZXNldHMgPSA8JnBoeV9yZXNldD47CisgICAgICAgICAgcmVzZXQtbmFtZXMgPSAicGh5IjsKKyAgICAgICAgICAjcGh5LWNlbGxzID0gPDA+OworICAgIH07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2FtbG9naWMsbWVzb24tZzEyYS11c2IzLXBjaWUtcGh5LnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2FtbG9naWMsbWVzb24tZzEyYS11c2IzLXBjaWUtcGh5LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ2ZjljMwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvYW1sb2dpYyxtZXNvbi1nMTJhLXVzYjMtcGNpZS1waHkueWFtbApAQCAtMCwwICsxLDU3IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMCBPUiBCU0QtMi1DbGF1c2UpCisjIENvcHlyaWdodCAyMDE5IEJheUxpYnJlLCBTQVMKKyVZQU1MIDEuMgorLS0tCiskaWQ6ICJodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9waHkvYW1sb2dpYyxtZXNvbi1nMTJhLXVzYjMtcGNpZS1waHkueWFtbCMiCiskc2NoZW1hOiAiaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjIgorCit0aXRsZTogQW1sb2dpYyBHMTJBIFVTQjMgKyBQQ0lFIENvbWJvIFBIWQorCittYWludGFpbmVyczoKKyAgLSBOZWlsIEFybXN0cm9uZyA8bmFybXN0cm9uZ0BiYXlsaWJyZS5jb20+CisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgZW51bToKKyAgICAgIC0gYW1sb2dpYyxtZXNvbi1nMTJhLXVzYjMtcGNpZS1waHkKKworICByZWc6CisgICAgbWF4SXRlbXM6IDEKKworICBjbG9ja3M6CisgICAgbWF4SXRlbXM6IDEKKworICBjbG9jay1uYW1lczoKKyAgICBpdGVtczoKKyAgICAgIC0gY29uc3Q6IHJlZl9jbGsKKworICByZXNldHM6CisgICAgbWF4SXRlbXM6IDEKKworICByZXNldC1uYW1lczoKKyAgICBpdGVtczoKKyAgICAgIC0gY29uc3Q6IHBoeQorCisgICIjcGh5LWNlbGxzIjoKKyAgICBjb25zdDogMQorCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisgIC0gcmVnCisgIC0gY2xvY2tzCisgIC0gY2xvY2stbmFtZXMKKyAgLSByZXNldHMKKyAgLSByZXNldC1uYW1lcworICAtICIjcGh5LWNlbGxzIgorCitleGFtcGxlczoKKyAgLSB8CisgICAgcGh5QDQ2MDAwIHsKKyAgICAgICAgICBjb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZzEyYS11c2IzLXBjaWUtcGh5IjsKKyAgICAgICAgICByZWcgPSA8MHg0NjAwMCAweDIwMDA+OworICAgICAgICAgIGNsb2NrcyA9IDwmcmVmX2Nsaz47CisgICAgICAgICAgY2xvY2stbmFtZXMgPSAicmVmX2NsayI7CisgICAgICAgICAgcmVzZXRzID0gPCZwaHlfcmVzZXQ+OworICAgICAgICAgIHJlc2V0LW5hbWVzID0gInBoeSI7CisgICAgICAgICAgI3BoeS1jZWxscyA9IDwxPjsKKyAgICB9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZXNvbi1nMTJhLXVzYjItcGh5LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVzb24tZzEyYS11c2IyLXBoeS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ZWJjM2QuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZXNvbi1nMTJhLXVzYjItcGh5LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSogQW1sb2dpYyBHMTJBIFVTQjIgUEhZIGJpbmRpbmcKLQotUmVxdWlyZWQgcHJvcGVydGllczoKLS0gY29tcGF0aWJsZToJU2hvdWxkIGJlICJhbWxvZ2ljLG1lc29uLWcxMmEtdXNiMi1waHkiCi0tIHJlZzoJCVRoZSBiYXNlIGFkZHJlc3MgYW5kIGxlbmd0aCBvZiB0aGUgcmVnaXN0ZXJzCi0tICNwaHlzLWNlbGxzOgltdXN0IGJlIDAgKHNlZSBwaHktYmluZGluZ3MudHh0IGluIHRoaXMgZGlyZWN0b3J5KQotLSBjbG9ja3M6CWEgcGhhbmRsZSB0byB0aGUgY2xvY2sgb2YgdGhpcyBQSFkKLS0gY2xvY2stbmFtZXM6CW11c3QgYmUgInh0YWwiCi0tIHJlc2V0czoJYSBwaGFuZGxlIHRvIHRoZSByZXNldCBsaW5lIG9mIHRoaXMgUEhZCi0tIHJlc2V0LW5hbWVzOgltdXN0IGJlICJwaHkiCi0tIHBoeS1zdXBwbHk6CXNlZSBwaHktYmluZGluZ3MudHh0IGluIHRoaXMgZGlyZWN0b3J5Ci0KLUV4YW1wbGU6Ci0JdXNiMl9waHkwOiBwaHlAMzYwMDAgewotCQljb21wYXRpYmxlID0gImFtbG9naWMsZzEyYS11c2IyLXBoeSI7Ci0JCXJlZyA9IDwweDAgMHgzNjAwMCAweDAgMHgyMDAwPjsKLQkJY2xvY2tzID0gPCZ4dGFsPjsKLQkJY2xvY2stbmFtZXMgPSAieHRhbCI7Ci0JCXJlc2V0cyA9IDwmcmVzZXQgUkVTRVRfVVNCX1BIWTIxPjsKLQkJcmVzZXQtbmFtZXMgPSAicGh5IjsKLQkJI3BoeS1jZWxscyA9IDwwPjsKLQl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZXNvbi1nMTJhLXVzYjMtcGNpZS1waHkudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZXNvbi1nMTJhLXVzYjMtcGNpZS1waHkudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Y2ZjMTdlLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVzb24tZzEyYS11c2IzLXBjaWUtcGh5LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSogQW1sb2dpYyBHMTJBIFVTQjMgKyBQQ0lFIENvbWJvIFBIWSBiaW5kaW5nCi0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIGNvbXBhdGlibGU6CVNob3VsZCBiZSAiYW1sb2dpYyxtZXNvbi1nMTJhLXVzYjMtcGNpZS1waHkiCi0tICNwaHlzLWNlbGxzOgltdXN0IGJlIDEuIFRoZSBjZWxsIG51bWJlciBpcyB1c2VkIHRvIHNlbGVjdCB0aGUgcGh5IG1vZGUKLSAgYXMgZGVmaW5lZCBpbiA8ZHQtYmluZGluZ3MvcGh5L3BoeS5oPiBiZXR3ZWVuIFBIWV9UWVBFX1VTQjMgYW5kIFBIWV9UWVBFX1BDSUUKLS0gcmVnOgkJVGhlIGJhc2UgYWRkcmVzcyBhbmQgbGVuZ3RoIG9mIHRoZSByZWdpc3RlcnMKLS0gY2xvY2tzOglhIHBoYW5kbGUgdG8gdGhlIDEwME1IeiByZWZlcmVuY2UgY2xvY2sgb2YgdGhpcyBQSFkKLS0gY2xvY2stbmFtZXM6CW11c3QgYmUgInJlZl9jbGsiCi0tIHJlc2V0czoJcGhhbmRsZSB0byB0aGUgcmVzZXQgbGluZXMgZm9yIHRoZSBQSFkgY29udHJvbAotLSByZXNldC1uYW1lczoJbXVzdCBiZSAicGh5IgotCi1FeGFtcGxlOgotCXVzYjNfcGNpZV9waHk6IHBoeUA0NjAwMCB7Ci0JCWNvbXBhdGlibGUgPSAiYW1sb2dpYyxnMTJhLXVzYjMtcGNpZS1waHkiOwotCQlyZWcgPSA8MHgwIDB4NDYwMDAgMHgwIDB4MjAwMD47Ci0JCWNsb2NrcyA9IDwmY2xrYyBDTEtJRF9QQ0lFX1BMTD47Ci0JCWNsb2NrLW5hbWVzID0gInJlZl9jbGsiOwotCQlyZXNldHMgPSA8JnJlc2V0IFJFU0VUX1BDSUVfUEhZPjsKLQkJcmVzZXQtbmFtZXMgPSAicGh5IjsKLQkJI3BoeS1jZWxscyA9IDwxPjsKLQl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9waHktdGVncmExOTQtcDJ1LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvcGh5LXRlZ3JhMTk0LXAydS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIzZmY5MAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvcGh5LXRlZ3JhMTk0LXAydS50eHQKQEAgLTAsMCArMSwyOCBAQAorTlZJRElBIFRlZ3JhMTk0IFAyVSBiaW5kaW5nCisKK1RlZ3JhMTk0IGhhcyB0d28gUEhZIGJyaWNrcyBuYW1lbHkgSFNJTyAoSGlnaCBTcGVlZCBJTykgYW5kIE5WSFMgKE5WSURJQSBIaWdoCitTcGVlZCkgZWFjaCBpbnRlcmZhY2luZyB3aXRoIDEyIGFuZCA4IFAyVSBpbnN0YW5jZXMgcmVzcGVjdGl2ZWx5LgorQSBQMlUgaW5zdGFuY2UgaXMgYSBnbHVlIGxvZ2ljIGJldHdlZW4gU3lub3BzeXMgRGVzaWduV2FyZSBDb3JlIFBDSWUgSVAncyBQSVBFCitpbnRlcmZhY2UgYW5kIFBIWSBvZiBIU0lPL05WSFMgYnJpY2tzLiBFYWNoIFAyVSBpbnN0YW5jZSByZXByZXNlbnRzIG9uZSBQQ0llCitsYW5lLgorCitSZXF1aXJlZCBwcm9wZXJ0aWVzOgorLSBjb21wYXRpYmxlOiBGb3IgVGVncmExOXgsIG11c3QgY29udGFpbiAibnZpZGlhLHRlZ3JhMTk0LXAydSIuCistIHJlZzogU2hvdWxkIGJlIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlIGFuZCBsZW5ndGggb2YgcmVzcGVjdGl2ZSBlYWNoIFAyVQorICAgICAgIGluc3RhbmNlLgorLSByZWctbmFtZXM6IE11c3QgaW5jbHVkZSB0aGUgZW50cnkgImN0bCIuCisKK1JlcXVpcmVkIHByb3BlcnRpZXMgZm9yIFBIWSBwb3J0IG5vZGU6CistICNwaHktY2VsbHM6IERlZmluZWQgYnkgZ2VuZXJpYyBQSFkgYmluZGluZ3MuICBNdXN0IGJlIDAuCisKK1JlZmVyIHRvIHBoeS9waHktYmluZGluZ3MudHh0IGZvciB0aGUgZ2VuZXJpYyBQSFkgYmluZGluZyBwcm9wZXJ0aWVzLgorCitFeGFtcGxlOgorCitwMnVfaHNpb18wOiBwaHlAM2UxMDAwMCB7CisJY29tcGF0aWJsZSA9ICJudmlkaWEsdGVncmExOTQtcDJ1IjsKKwlyZWcgPSA8MHgwM2UxMDAwMCAweDEwMDAwPjsKKwlyZWctbmFtZXMgPSAiY3RsIjsKKworCSNwaHktY2VsbHMgPSA8MD47Cit9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvYXNwZWVkLGFzdDI0MDAtcGluY3RybC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvYXNwZWVkLGFzdDI0MDAtcGluY3RybC55YW1sCmluZGV4IDEyNTU5OWEuLjM5YWQ4NjUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL2FzcGVlZCxhc3QyNDAwLXBpbmN0cmwueWFtbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9hc3BlZWQsYXN0MjQwMC1waW5jdHJsLnlhbWwKQEAgLTE1LDE2ICsxNSwxMyBAQAogCiAgIC0gY29tcGF0aWJsZTogICAgIFNob3VsZCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKICAgICAgICAgICAgICAgICAgICAgImFzcGVlZCxhc3QyNDAwLXNjdSIsICJzeXNjb24iLCAic2ltcGxlLW1mZCIKLSAgICAgICAgICAgICAgICAgICAgImFzcGVlZCxnNC1zY3UiLCAic3lzY29uIiwgInNpbXBsZS1tZmQiCiAKICAgUmVmZXIgdG8gdGhlIHRoZSBiaW5kaW5ncyBkZXNjcmliZWQgaW4KICAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9zeXNjb24udHh0CiAKIHByb3BlcnRpZXM6CiAgIGNvbXBhdGlibGU6Ci0gICAgZW51bToKLSAgICAgIC0gYXNwZWVkLGFzdDI0MDAtcGluY3RybAotICAgICAgLSBhc3BlZWQsZzQtcGluY3RybAorICAgIGNvbnN0OiBhc3BlZWQsYXN0MjQwMC1waW5jdHJsCiAKIHBhdHRlcm5Qcm9wZXJ0aWVzOgogICAnXi4qJCc6CkBAIC0zNSwyOCArMzIsMjQgQEAKICAgICAgICAgIl5mdW5jdGlvbnxncm91cHMkIjoKICAgICAgICAgICBhbGxPZjoKICAgICAgICAgICAgIC0gJHJlZjogIi9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3N0cmluZyIKLSAgICAgICAgICAgIC0gZW51bTogWyAiQUNQSSIsICJBREMwIiwgIkFEQzEiLCAiQURDMTAiLCAiQURDMTEiLCAiQURDMTIiLCAiQURDMTMiLAotICAgICAgICAgICAgICAiQURDMTQiLCAiQURDMTUiLCAiQURDMiIsICJBREMzIiwgIkFEQzQiLCAiQURDNSIsICJBREM2IiwgIkFEQzciLAotICAgICAgICAgICAgICAiQURDOCIsICJBREM5IiwgIkJNQ0lOVCIsICJERENDTEsiLCAiRERDREFUIiwgIkVYVFJTVCIsICJGTEFDSyIsCi0gICAgICAgICAgICAgICJGTEJVU1kiLCAiRkxXUCIsICJHUElEIiwgIkdQSUQwIiwgIkdQSUQyIiwgIkdQSUQ0IiwgIkdQSUQ2IiwKLSAgICAgICAgICAgICAgIkdQSUUwIiwgIkdQSUUyIiwgIkdQSUU0IiwgIkdQSUU2IiwgIkkyQzEwIiwgIkkyQzExIiwgIkkyQzEyIiwKLSAgICAgICAgICAgICAgIkkyQzEzIiwgIkkyQzE0IiwgIkkyQzMiLCAiSTJDNCIsICJJMkM1IiwgIkkyQzYiLCAiSTJDNyIsICJJMkM4IiwKLSAgICAgICAgICAgICAgIkkyQzkiLCAiTFBDUEQiLCAiTFBDUE1FIiwgIkxQQ1JTVCIsICJMUENTTUkiLCAiTUFDMUxJTksiLAotICAgICAgICAgICAgICAiTUFDMkxJTksiLCAiTURJTzEiLCAiTURJTzIiLCAiTkNUUzEiLCAiTkNUUzIiLCAiTkNUUzMiLCAiTkNUUzQiLAotICAgICAgICAgICAgICAiTkRDRDEiLCAiTkRDRDIiLCAiTkRDRDMiLCAiTkRDRDQiLCAiTkRTUjEiLCAiTkRTUjIiLCAiTkRTUjMiLAotICAgICAgICAgICAgICAiTkRTUjQiLCAiTkRUUjEiLCAiTkRUUjIiLCAiTkRUUjMiLCAiTkRUUjQiLCAiTkRUUzQiLCAiTlJJMSIsCi0gICAgICAgICAgICAgICJOUkkyIiwgIk5SSTMiLCAiTlJJNCIsICJOUlRTMSIsICJOUlRTMiIsICJOUlRTMyIsICJPU0NDTEsiLAotICAgICAgICAgICAgICAiUFdNMCIsICJQV00xIiwgIlBXTTIiLCAiUFdNMyIsICJQV000IiwgIlBXTTUiLCAiUFdNNiIsICJQV003IiwKLSAgICAgICAgICAgICAgIlJHTUlJMSIsICJSR01JSTIiLCAiUk1JSTEiLCAiUk1JSTIiLCAiUk9NMTYiLCAiUk9NOCIsICJST01DUzEiLAotICAgICAgICAgICAgICAiUk9NQ1MyIiwgIlJPTUNTMyIsICJST01DUzQiLCAiUlhEMSIsICJSWEQyIiwgIlJYRDMiLCAiUlhENCIsCi0gICAgICAgICAgICAgICJTQUxUMSIsICJTQUxUMiIsICJTQUxUMyIsICJTQUxUNCIsICJTRDEiLCAiU0QyIiwgIlNHUE1DSyIsCi0gICAgICAgICAgICAgICJTR1BNSSIsICJTR1BNTEQiLCAiU0dQTU8iLCAiU0dQU0NLIiwgIlNHUFNJMCIsICJTR1BTSTEiLCAiU0dQU0xEIiwKLSAgICAgICAgICAgICAgIlNJT09OQ1RSTCIsICJTSU9QQkkiLCAiU0lPUEJPIiwgIlNJT1BXUkVRIiwgIlNJT1BXUkdEIiwgIlNJT1MzIiwKLSAgICAgICAgICAgICAgIlNJT1M1IiwgIlNJT1NDSSIsICJTUEkxIiwgIlNQSTFERUJVRyIsICJTUEkxUEFTU1RIUlUiLCAiU1BJQ1MxIiwKLSAgICAgICAgICAgICAgIlRJTUVSMyIsICJUSU1FUjQiLCAiVElNRVI1IiwgIlRJTUVSNiIsICJUSU1FUjciLCAiVElNRVI4IiwgIlRYRDEiLAotICAgICAgICAgICAgICAiVFhEMiIsICJUWEQzIiwgIlRYRDQiLCAiVUFSVDYiLCAiVVNCMTFEMSIsICJVU0IxMUgyIiwgIlVTQjJEMSIsCi0gICAgICAgICAgICAgICJVU0IySDEiLCAiVVNCQ0tJIiwgIlZHQUJJT1NfUk9NIiwgIlZHQUhTIiwgIlZHQVZTIiwgIlZQSTE4IiwKLSAgICAgICAgICAgICAgIlZQSTI0IiwgIlZQSTMwIiwgIlZQTzEyIiwgIlZQTzI0IiwgIldEVFJTVDEiLCAiV0RUUlNUMiIgXQorICAgICAgICAgICAgLSBlbnVtOiBbIEFDUEksIEFEQzAsIEFEQzEsIEFEQzEwLCBBREMxMSwgQURDMTIsIEFEQzEzLCBBREMxNCwKKyAgICAgICAgICAgICAgQURDMTUsIEFEQzIsIEFEQzMsIEFEQzQsIEFEQzUsIEFEQzYsIEFEQzcsIEFEQzgsIEFEQzksIEJNQ0lOVCwKKyAgICAgICAgICAgICAgRERDQ0xLLCBERENEQVQsIEVYVFJTVCwgRkxBQ0ssIEZMQlVTWSwgRkxXUCwgR1BJRCwgR1BJRDAsIEdQSUQyLAorICAgICAgICAgICAgICBHUElENCwgR1BJRDYsIEdQSUUwLCBHUElFMiwgR1BJRTQsIEdQSUU2LCBJMkMxMCwgSTJDMTEsIEkyQzEyLAorICAgICAgICAgICAgICBJMkMxMywgSTJDMTQsIEkyQzMsIEkyQzQsIEkyQzUsIEkyQzYsIEkyQzcsIEkyQzgsIEkyQzksIExQQ1BELAorICAgICAgICAgICAgICBMUENQTUUsIExQQ1JTVCwgTFBDU01JLCBNQUMxTElOSywgTUFDMkxJTkssIE1ESU8xLCBNRElPMiwgTkNUUzEsCisgICAgICAgICAgICAgIE5DVFMyLCBOQ1RTMywgTkNUUzQsIE5EQ0QxLCBORENEMiwgTkRDRDMsIE5EQ0Q0LCBORFNSMSwgTkRTUjIsCisgICAgICAgICAgICAgIE5EU1IzLCBORFNSNCwgTkRUUjEsIE5EVFIyLCBORFRSMywgTkRUUjQsIE5EVFM0LCBOUkkxLCBOUkkyLAorICAgICAgICAgICAgICBOUkkzLCBOUkk0LCBOUlRTMSwgTlJUUzIsIE5SVFMzLCBPU0NDTEssIFBXTTAsIFBXTTEsIFBXTTIsIFBXTTMsCisgICAgICAgICAgICAgIFBXTTQsIFBXTTUsIFBXTTYsIFBXTTcsIFJHTUlJMSwgUkdNSUkyLCBSTUlJMSwgUk1JSTIsIFJPTTE2LAorICAgICAgICAgICAgICBST004LCBST01DUzEsIFJPTUNTMiwgUk9NQ1MzLCBST01DUzQsIFJYRDEsIFJYRDIsIFJYRDMsIFJYRDQsCisgICAgICAgICAgICAgIFNBTFQxLCBTQUxUMiwgU0FMVDMsIFNBTFQ0LCBTRDEsIFNEMiwgU0dQTUNLLCBTR1BNSSwgU0dQTUxELAorICAgICAgICAgICAgICBTR1BNTywgU0dQU0NLLCBTR1BTSTAsIFNHUFNJMSwgU0dQU0xELCBTSU9PTkNUUkwsIFNJT1BCSSwgU0lPUEJPLAorICAgICAgICAgICAgICBTSU9QV1JFUSwgU0lPUFdSR0QsIFNJT1MzLCBTSU9TNSwgU0lPU0NJLCBTUEkxLCBTUEkxREVCVUcsCisgICAgICAgICAgICAgIFNQSTFQQVNTVEhSVSwgU1BJQ1MxLCBUSU1FUjMsIFRJTUVSNCwgVElNRVI1LCBUSU1FUjYsIFRJTUVSNywKKyAgICAgICAgICAgICAgVElNRVI4LCBUWEQxLCBUWEQyLCBUWEQzLCBUWEQ0LCBVQVJUNiwgVVNCMTFEMSwgVVNCMTFIMiwgVVNCMkQxLAorICAgICAgICAgICAgICBVU0IySDEsIFVTQkNLSSwgVkdBQklPU19ST00sIFZHQUhTLCBWR0FWUywgVlBJMTgsIFZQSTI0LCBWUEkzMCwKKyAgICAgICAgICAgICAgVlBPMTIsIFZQTzI0LCBXRFRSU1QxLCBXRFRSU1QyIF0KIAogcmVxdWlyZWQ6CiAgIC0gY29tcGF0aWJsZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvYXNwZWVkLGFzdDI1MDAtcGluY3RybC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvYXNwZWVkLGFzdDI1MDAtcGluY3RybC55YW1sCmluZGV4IDNlNmQ4NTMuLjNjNjQwNWIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL2FzcGVlZCxhc3QyNTAwLXBpbmN0cmwueWFtbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9hc3BlZWQsYXN0MjUwMC1waW5jdHJsLnlhbWwKQEAgLTIyLDkgKzIyLDcgQEAKIAogcHJvcGVydGllczoKICAgY29tcGF0aWJsZToKLSAgICBlbnVtOgotICAgICAgLSBhc3BlZWQsYXN0MjUwMC1waW5jdHJsCi0gICAgICAtIGFzcGVlZCxnNS1waW5jdHJsCisgICAgY29uc3Q6IGFzcGVlZCxhc3QyNTAwLXBpbmN0cmwKICAgYXNwZWVkLGV4dGVybmFsLW5vZGVzOgogICAgIG1pbkl0ZW1zOiAyCiAgICAgbWF4SXRlbXM6IDIKQEAgLTQ0LDMxICs0MiwyNiBAQAogICAgICAgICAiXmZ1bmN0aW9ufGdyb3VwcyQiOgogICAgICAgICAgIGFsbE9mOgogICAgICAgICAgICAgLSAkcmVmOiAiL3NjaGVtYXMvdHlwZXMueWFtbCMvZGVmaW5pdGlvbnMvc3RyaW5nIgotICAgICAgICAgICAgLSBlbnVtOiBbICJBQ1BJIiwgIkFEQzAiLCAiQURDMSIsICJBREMxMCIsICJBREMxMSIsICJBREMxMiIsICJBREMxMyIsCi0gICAgICAgICAgICAgICJBREMxNCIsICJBREMxNSIsICJBREMyIiwgIkFEQzMiLCAiQURDNCIsICJBREM1IiwgIkFEQzYiLCAiQURDNyIsCi0gICAgICAgICAgICAgICJBREM4IiwgIkFEQzkiLCAiQk1DSU5UIiwgIkREQ0NMSyIsICJERENEQVQiLCAiRVNQSSIsICJGV1NQSUNTMSIsCi0gICAgICAgICAgICAgICJGV1NQSUNTMiIsICJHUElEMCIsICJHUElEMiIsICJHUElENCIsICJHUElENiIsICJHUElFMCIsICJHUElFMiIsCi0gICAgICAgICAgICAgICJHUElFNCIsICJHUElFNiIsICJJMkMxMCIsICJJMkMxMSIsICJJMkMxMiIsICJJMkMxMyIsICJJMkMxNCIsCi0gICAgICAgICAgICAgICJJMkMzIiwgIkkyQzQiLCAiSTJDNSIsICJJMkM2IiwgIkkyQzciLCAiSTJDOCIsICJJMkM5IiwgIkxBRDAiLAotICAgICAgICAgICAgICAiTEFEMSIsICJMQUQyIiwgIkxBRDMiLCAiTENMSyIsICJMRlJBTUUiLCAiTFBDSEMiLCAiTFBDUEQiLAotICAgICAgICAgICAgICAiTFBDUExVUyIsICJMUENQTUUiLCAiTFBDUlNUIiwgIkxQQ1NNSSIsICJMU0lSUSIsICJNQUMxTElOSyIsCi0gICAgICAgICAgICAgICJNQUMyTElOSyIsICJNRElPMSIsICJNRElPMiIsICJOQ1RTMSIsICJOQ1RTMiIsICJOQ1RTMyIsICJOQ1RTNCIsCi0gICAgICAgICAgICAgICJORENEMSIsICJORENEMiIsICJORENEMyIsICJORENENCIsICJORFNSMSIsICJORFNSMiIsICJORFNSMyIsCi0gICAgICAgICAgICAgICJORFNSNCIsICJORFRSMSIsICJORFRSMiIsICJORFRSMyIsICJORFRSNCIsICJOUkkxIiwgIk5SSTIiLAotICAgICAgICAgICAgICAiTlJJMyIsICJOUkk0IiwgIk5SVFMxIiwgIk5SVFMyIiwgIk5SVFMzIiwgIk5SVFM0IiwgIk9TQ0NMSyIsCi0gICAgICAgICAgICAgICJQRVdBS0UiLCAiUE5PUiIsICJQV00wIiwgIlBXTTEiLCAiUFdNMiIsICJQV00zIiwgIlBXTTQiLCAiUFdNNSIsCi0gICAgICAgICAgICAgICJQV002IiwgIlBXTTciLCAiUkdNSUkxIiwgIlJHTUlJMiIsICJSTUlJMSIsICJSTUlJMiIsICJSWEQxIiwKLSAgICAgICAgICAgICAgIlJYRDIiLCAiUlhEMyIsICJSWEQ0IiwgIlNBTFQxIiwgIlNBTFQxMCIsICJTQUxUMTEiLCAiU0FMVDEyIiwKLSAgICAgICAgICAgICAgIlNBTFQxMyIsICJTQUxUMTQiLCAiU0FMVDIiLCAiU0FMVDMiLCAiU0FMVDQiLCAiU0FMVDUiLCAiU0FMVDYiLAotICAgICAgICAgICAgICAiU0FMVDciLCAiU0FMVDgiLCAiU0FMVDkiLCAiU0NMMSIsICJTQ0wyIiwgIlNEMSIsICJTRDIiLCAiU0RBMSIsCi0gICAgICAgICAgICAgICJTREEyIiwgIlNHUFMxIiwgIlNHUFMyIiwgIlNJT09OQ1RSTCIsICJTSU9QQkkiLCAiU0lPUEJPIiwKLSAgICAgICAgICAgICAgIlNJT1BXUkVRIiwgIlNJT1BXUkdEIiwgIlNJT1MzIiwgIlNJT1M1IiwgIlNJT1NDSSIsICJTUEkxIiwKLSAgICAgICAgICAgICAgIlNQSTFDUzEiLCAiU1BJMURFQlVHIiwgIlNQSTFQQVNTVEhSVSIsICJTUEkyQ0siLCAiU1BJMkNTMCIsCi0gICAgICAgICAgICAgICJTUEkyQ1MxIiwgIlNQSTJNSVNPIiwgIlNQSTJNT1NJIiwgIlRJTUVSMyIsICJUSU1FUjQiLCAiVElNRVI1IiwKLSAgICAgICAgICAgICAgIlRJTUVSNiIsICJUSU1FUjciLCAiVElNRVI4IiwgIlRYRDEiLCAiVFhEMiIsICJUWEQzIiwgIlRYRDQiLAotICAgICAgICAgICAgICAiVUFSVDYiLCAiVVNCMTFCSElEIiwgIlVTQjJBRCIsICJVU0IyQUgiLCAiVVNCMkJEIiwgIlVTQjJCSCIsCi0gICAgICAgICAgICAgICJVU0JDS0kiLCAiVkdBQklPU1JPTSIsICJWR0FIUyIsICJWR0FWUyIsICJWUEkyNCIsICJWUE8iLAotICAgICAgICAgICAgICAiV0RUUlNUMSIsICJXRFRSU1QyIiwgXQorICAgICAgICAgICAgLSBlbnVtOiBbIEFDUEksIEFEQzAsIEFEQzEsIEFEQzEwLCBBREMxMSwgQURDMTIsIEFEQzEzLCBBREMxNCwKKyAgICAgICAgICAgICAgQURDMTUsIEFEQzIsIEFEQzMsIEFEQzQsIEFEQzUsIEFEQzYsIEFEQzcsIEFEQzgsIEFEQzksIEJNQ0lOVCwKKyAgICAgICAgICAgICAgRERDQ0xLLCBERENEQVQsIEVTUEksIEZXU1BJQ1MxLCBGV1NQSUNTMiwgR1BJRDAsIEdQSUQyLCBHUElENCwKKyAgICAgICAgICAgICAgR1BJRDYsIEdQSUUwLCBHUElFMiwgR1BJRTQsIEdQSUU2LCBJMkMxMCwgSTJDMTEsIEkyQzEyLCBJMkMxMywKKyAgICAgICAgICAgICAgSTJDMTQsIEkyQzMsIEkyQzQsIEkyQzUsIEkyQzYsIEkyQzcsIEkyQzgsIEkyQzksIExBRDAsIExBRDEsCisgICAgICAgICAgICAgIExBRDIsIExBRDMsIExDTEssIExGUkFNRSwgTFBDSEMsIExQQ1BELCBMUENQTFVTLCBMUENQTUUsIExQQ1JTVCwKKyAgICAgICAgICAgICAgTFBDU01JLCBMU0lSUSwgTUFDMUxJTkssIE1BQzJMSU5LLCBNRElPMSwgTURJTzIsIE5DVFMxLCBOQ1RTMiwKKyAgICAgICAgICAgICAgTkNUUzMsIE5DVFM0LCBORENEMSwgTkRDRDIsIE5EQ0QzLCBORENENCwgTkRTUjEsIE5EU1IyLCBORFNSMywKKyAgICAgICAgICAgICAgTkRTUjQsIE5EVFIxLCBORFRSMiwgTkRUUjMsIE5EVFI0LCBOUkkxLCBOUkkyLCBOUkkzLCBOUkk0LCBOUlRTMSwKKyAgICAgICAgICAgICAgTlJUUzIsIE5SVFMzLCBOUlRTNCwgT1NDQ0xLLCBQRVdBS0UsIFBOT1IsIFBXTTAsIFBXTTEsIFBXTTIsCisgICAgICAgICAgICAgIFBXTTMsIFBXTTQsIFBXTTUsIFBXTTYsIFBXTTcsIFJHTUlJMSwgUkdNSUkyLCBSTUlJMSwgUk1JSTIsIFJYRDEsCisgICAgICAgICAgICAgIFJYRDIsIFJYRDMsIFJYRDQsIFNBTFQxLCBTQUxUMTAsIFNBTFQxMSwgU0FMVDEyLCBTQUxUMTMsIFNBTFQxNCwKKyAgICAgICAgICAgICAgU0FMVDIsIFNBTFQzLCBTQUxUNCwgU0FMVDUsIFNBTFQ2LCBTQUxUNywgU0FMVDgsIFNBTFQ5LCBTQ0wxLAorICAgICAgICAgICAgICBTQ0wyLCBTRDEsIFNEMiwgU0RBMSwgU0RBMiwgU0dQUzEsIFNHUFMyLCBTSU9PTkNUUkwsIFNJT1BCSSwKKyAgICAgICAgICAgICAgU0lPUEJPLCBTSU9QV1JFUSwgU0lPUFdSR0QsIFNJT1MzLCBTSU9TNSwgU0lPU0NJLCBTUEkxLCBTUEkxQ1MxLAorICAgICAgICAgICAgICBTUEkxREVCVUcsIFNQSTFQQVNTVEhSVSwgU1BJMkNLLCBTUEkyQ1MwLCBTUEkyQ1MxLCBTUEkyTUlTTywKKyAgICAgICAgICAgICAgU1BJMk1PU0ksIFRJTUVSMywgVElNRVI0LCBUSU1FUjUsIFRJTUVSNiwgVElNRVI3LCBUSU1FUjgsIFRYRDEsCisgICAgICAgICAgICAgIFRYRDIsIFRYRDMsIFRYRDQsIFVBUlQ2LCBVU0IxMUJISUQsIFVTQjJBRCwgVVNCMkFILCBVU0IyQkQsCisgICAgICAgICAgICAgIFVTQjJCSCwgVVNCQ0tJLCBWR0FCSU9TUk9NLCBWR0FIUywgVkdBVlMsIFZQSTI0LCBWUE8sIFdEVFJTVDEsCisgICAgICAgICAgICAgIFdEVFJTVDIsIF0KIAogcmVxdWlyZWQ6CiAgIC0gY29tcGF0aWJsZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvYXNwZWVkLGFzdDI2MDAtcGluY3RybC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvYXNwZWVkLGFzdDI2MDAtcGluY3RybC55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4M2Q4ODgKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9hc3BlZWQsYXN0MjYwMC1waW5jdHJsLnlhbWwKQEAgLTAsMCArMSwxMTUgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9waW5jdHJsL2FzcGVlZCxhc3QyNjAwLXBpbmN0cmwueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogQVNQRUVEIEFTVDI2MDAgUGluIENvbnRyb2xsZXIKKworbWFpbnRhaW5lcnM6CisgIC0gQW5kcmV3IEplZmZlcnkgPGFuZHJld0Bhai5pZC5hdT4KKworZGVzY3JpcHRpb246IHwrCisgIFRoZSBwaW4gY29udHJvbGxlciBub2RlIHNob3VsZCBiZSB0aGUgY2hpbGQgb2YgYSBzeXNjb24gbm9kZSB3aXRoIHRoZQorICByZXF1aXJlZCBwcm9wZXJ0eToKKworICAtIGNvbXBhdGlibGU6IFNob3VsZCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgICAgICAgICAiYXNwZWVkLGFzdDI2MDAtc2N1IiwgInN5c2NvbiIsICJzaW1wbGUtbWZkIgorCisgIFJlZmVyIHRvIHRoZSB0aGUgYmluZGluZ3MgZGVzY3JpYmVkIGluCisgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvc3lzY29uLnR4dAorCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGNvbnN0OiBhc3BlZWQsYXN0MjYwMC1waW5jdHJsCisKK3BhdHRlcm5Qcm9wZXJ0aWVzOgorICAnXi4qJCc6CisgICAgaWY6CisgICAgICB0eXBlOiBvYmplY3QKKyAgICB0aGVuOgorICAgICAgcHJvcGVydGllczoKKyAgICAgICAgZnVuY3Rpb246CisgICAgICAgICAgYWxsT2Y6CisgICAgICAgICAgICAtICRyZWY6ICIvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9zdHJpbmciCisgICAgICAgICAgICAtIGVudW06IFsgQURDMCwgQURDMSwgQURDMTAsIEFEQzExLCBBREMxMiwgQURDMTMsIEFEQzE0LCBBREMxNSwKKyAgICAgICAgICAgICAgQURDMiwgQURDMywgQURDNCwgQURDNSwgQURDNiwgQURDNywgQURDOCwgQURDOSwgQk1DSU5ULCBFU1BJLAorICAgICAgICAgICAgICBFU1BJQUxULCBGU0kxLCBGU0kyLCBGV1NQSUFCUiwgRldTUElELCBGV1NQSVdQLCBHUElUMCwgR1BJVDEsCisgICAgICAgICAgICAgIEdQSVQyLCBHUElUMywgR1BJVDQsIEdQSVQ1LCBHUElUNiwgR1BJVDcsIEdQSVUwLCBHUElVMSwgR1BJVTIsCisgICAgICAgICAgICAgIEdQSVUzLCBHUElVNCwgR1BJVTUsIEdQSVU2LCBHUElVNywgSTJDMSwgSTJDMTAsIEkyQzExLCBJMkMxMiwKKyAgICAgICAgICAgICAgSTJDMTMsIEkyQzE0LCBJMkMxNSwgSTJDMTYsIEkyQzIsIEkyQzMsIEkyQzQsIEkyQzUsIEkyQzYsIEkyQzcsCisgICAgICAgICAgICAgIEkyQzgsIEkyQzksIEkzQzMsIEkzQzQsIEkzQzUsIEkzQzYsIEpUQUdNLCBMSFBELCBMSFNJUlEsIExQQywKKyAgICAgICAgICAgICAgTFBDSEMsIExQQ1BELCBMUENQTUUsIExQQ1NNSSwgTFNJUlEsIE1BQ0xJTksxLCBNQUNMSU5LMiwKKyAgICAgICAgICAgICAgTUFDTElOSzMsIE1BQ0xJTks0LCBNRElPMSwgTURJTzIsIE1ESU8zLCBNRElPNCwgTkNUUzEsIE5DVFMyLAorICAgICAgICAgICAgICBOQ1RTMywgTkNUUzQsIE5EQ0QxLCBORENEMiwgTkRDRDMsIE5EQ0Q0LCBORFNSMSwgTkRTUjIsIE5EU1IzLAorICAgICAgICAgICAgICBORFNSNCwgTkRUUjEsIE5EVFIyLCBORFRSMywgTkRUUjQsIE5SSTEsIE5SSTIsIE5SSTMsIE5SSTQsIE5SVFMxLAorICAgICAgICAgICAgICBOUlRTMiwgTlJUUzMsIE5SVFM0LCBPU0NDTEssIFBFV0FLRSwgUFdNMCwgUFdNMSwgUFdNMTAsIFBXTTExLAorICAgICAgICAgICAgICBQV00xMiwgUFdNMTMsIFBXTTE0LCBQV00xNSwgUFdNMiwgUFdNMywgUFdNNCwgUFdNNSwgUFdNNiwgUFdNNywKKyAgICAgICAgICAgICAgUFdNOCwgUFdNOSwgUkdNSUkxLCBSR01JSTIsIFJHTUlJMywgUkdNSUk0LCBSTUlJMSwgUk1JSTIsIFJNSUkzLAorICAgICAgICAgICAgICBSTUlJNCwgUlhEMSwgUlhEMiwgUlhEMywgUlhENCwgU0FMVDEsIFNBTFQxMCwgU0FMVDExLCBTQUxUMTIsCisgICAgICAgICAgICAgIFNBTFQxMywgU0FMVDE0LCBTQUxUMTUsIFNBTFQxNiwgU0FMVDIsIFNBTFQzLCBTQUxUNCwgU0FMVDUsCisgICAgICAgICAgICAgIFNBTFQ2LCBTQUxUNywgU0FMVDgsIFNBTFQ5LCBTRDEsIFNEMiwgU0QzLCBTRDNEQVQ0LCBTRDNEQVQ1LAorICAgICAgICAgICAgICBTRDNEQVQ2LCBTRDNEQVQ3LCBTR1BNMSwgU0dQUzEsIFNJT09OQ1RSTCwgU0lPUEJJLCBTSU9QQk8sCisgICAgICAgICAgICAgIFNJT1BXUkVRLCBTSU9QV1JHRCwgU0lPUzMsIFNJT1M1LCBTSU9TQ0ksIFNQSTEsIFNQSTFBQlIsIFNQSTFDUzEsCisgICAgICAgICAgICAgIFNQSTFXUCwgU1BJMiwgU1BJMkNTMSwgU1BJMkNTMiwgVEFDSDAsIFRBQ0gxLCBUQUNIMTAsIFRBQ0gxMSwKKyAgICAgICAgICAgICAgVEFDSDEyLCBUQUNIMTMsIFRBQ0gxNCwgVEFDSDE1LCBUQUNIMiwgVEFDSDMsIFRBQ0g0LCBUQUNINSwKKyAgICAgICAgICAgICAgVEFDSDYsIFRBQ0g3LCBUQUNIOCwgVEFDSDksIFRIUlUwLCBUSFJVMSwgVEhSVTIsIFRIUlUzLCBUWEQxLAorICAgICAgICAgICAgICBUWEQyLCBUWEQzLCBUWEQ0LCBVQVJUMTAsIFVBUlQxMSwgVUFSVDEyLCBVQVJUMTMsIFVBUlQ2LCBVQVJUNywKKyAgICAgICAgICAgICAgVUFSVDgsIFVBUlQ5LCBWQiwgVkdBSFMsIFZHQVZTLCBXRFRSU1QxLCBXRFRSU1QyLCBXRFRSU1QzLAorICAgICAgICAgICAgICBXRFRSU1Q0LCBdCisgICAgICAgIGdyb3VwczoKKyAgICAgICAgICBhbGxPZjoKKyAgICAgICAgICAgIC0gJHJlZjogIi9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3N0cmluZyIKKyAgICAgICAgICAgIC0gZW51bTogWyBBREMwLCBBREMxLCBBREMxMCwgQURDMTEsIEFEQzEyLCBBREMxMywgQURDMTQsIEFEQzE1LAorICAgICAgICAgICAgICBBREMyLCBBREMzLCBBREM0LCBBREM1LCBBREM2LCBBREM3LCBBREM4LCBBREM5LCBCTUNJTlQsIEVTUEksCisgICAgICAgICAgICAgIEVTUElBTFQsIEZTSTEsIEZTSTIsIEZXU1BJQUJSLCBGV1NQSUQsIEZXUVNQSUQsIEZXU1BJV1AsIEdQSVQwLAorICAgICAgICAgICAgICBHUElUMSwgR1BJVDIsIEdQSVQzLCBHUElUNCwgR1BJVDUsIEdQSVQ2LCBHUElUNywgR1BJVTAsIEdQSVUxLAorICAgICAgICAgICAgICBHUElVMiwgR1BJVTMsIEdQSVU0LCBHUElVNSwgR1BJVTYsIEdQSVU3LCBIVkkzQzMsIEhWSTNDNCwgSTJDMSwKKyAgICAgICAgICAgICAgSTJDMTAsIEkyQzExLCBJMkMxMiwgSTJDMTMsIEkyQzE0LCBJMkMxNSwgSTJDMTYsIEkyQzIsIEkyQzMsCisgICAgICAgICAgICAgIEkyQzQsIEkyQzUsIEkyQzYsIEkyQzcsIEkyQzgsIEkyQzksIEkzQzMsIEkzQzQsIEkzQzUsIEkzQzYsCisgICAgICAgICAgICAgIEpUQUdNLCBMSFBELCBMSFNJUlEsIExQQywgTFBDSEMsIExQQ1BELCBMUENQTUUsIExQQ1NNSSwgTFNJUlEsCisgICAgICAgICAgICAgIE1BQ0xJTksxLCBNQUNMSU5LMiwgTUFDTElOSzMsIE1BQ0xJTks0LCBNRElPMSwgTURJTzIsIE1ESU8zLAorICAgICAgICAgICAgICBNRElPNCwgTkNUUzEsIE5DVFMyLCBOQ1RTMywgTkNUUzQsIE5EQ0QxLCBORENEMiwgTkRDRDMsIE5EQ0Q0LAorICAgICAgICAgICAgICBORFNSMSwgTkRTUjIsIE5EU1IzLCBORFNSNCwgTkRUUjEsIE5EVFIyLCBORFRSMywgTkRUUjQsIE5SSTEsCisgICAgICAgICAgICAgIE5SSTIsIE5SSTMsIE5SSTQsIE5SVFMxLCBOUlRTMiwgTlJUUzMsIE5SVFM0LCBPU0NDTEssIFBFV0FLRSwKKyAgICAgICAgICAgICAgUFdNMCwgUFdNMSwgUFdNMTBHMCwgUFdNMTBHMSwgUFdNMTFHMCwgUFdNMTFHMSwgUFdNMTJHMCwgUFdNMTJHMSwKKyAgICAgICAgICAgICAgUFdNMTNHMCwgUFdNMTNHMSwgUFdNMTRHMCwgUFdNMTRHMSwgUFdNMTVHMCwgUFdNMTVHMSwgUFdNMiwgUFdNMywKKyAgICAgICAgICAgICAgUFdNNCwgUFdNNSwgUFdNNiwgUFdNNywgUFdNOEcwLCBQV004RzEsIFBXTTlHMCwgUFdNOUcxLCBRU1BJMSwKKyAgICAgICAgICAgICAgUVNQSTIsIFJHTUlJMSwgUkdNSUkyLCBSR01JSTMsIFJHTUlJNCwgUk1JSTEsIFJNSUkyLCBSTUlJMywKKyAgICAgICAgICAgICAgUk1JSTQsIFJYRDEsIFJYRDIsIFJYRDMsIFJYRDQsIFNBTFQxLCBTQUxUMTBHMCwgU0FMVDEwRzEsCisgICAgICAgICAgICAgIFNBTFQxMUcwLCBTQUxUMTFHMSwgU0FMVDEyRzAsIFNBTFQxMkcxLCBTQUxUMTNHMCwgU0FMVDEzRzEsCisgICAgICAgICAgICAgIFNBTFQxNEcwLCBTQUxUMTRHMSwgU0FMVDE1RzAsIFNBTFQxNUcxLCBTQUxUMTZHMCwgU0FMVDE2RzEsCisgICAgICAgICAgICAgIFNBTFQyLCBTQUxUMywgU0FMVDQsIFNBTFQ1LCBTQUxUNiwgU0FMVDcsIFNBTFQ4LCBTQUxUOUcwLAorICAgICAgICAgICAgICBTQUxUOUcxLCBTRDEsIFNEMiwgU0QzLCBTRDNEQVQ0LCBTRDNEQVQ1LCBTRDNEQVQ2LCBTRDNEQVQ3LAorICAgICAgICAgICAgICBTR1BNMSwgU0dQUzEsIFNJT09OQ1RSTCwgU0lPUEJJLCBTSU9QQk8sIFNJT1BXUkVRLCBTSU9QV1JHRCwKKyAgICAgICAgICAgICAgU0lPUzMsIFNJT1M1LCBTSU9TQ0ksIFNQSTEsIFNQSTFBQlIsIFNQSTFDUzEsIFNQSTFXUCwgU1BJMiwKKyAgICAgICAgICAgICAgU1BJMkNTMSwgU1BJMkNTMiwgVEFDSDAsIFRBQ0gxLCBUQUNIMTAsIFRBQ0gxMSwgVEFDSDEyLCBUQUNIMTMsCisgICAgICAgICAgICAgIFRBQ0gxNCwgVEFDSDE1LCBUQUNIMiwgVEFDSDMsIFRBQ0g0LCBUQUNINSwgVEFDSDYsIFRBQ0g3LCBUQUNIOCwKKyAgICAgICAgICAgICAgVEFDSDksIFRIUlUwLCBUSFJVMSwgVEhSVTIsIFRIUlUzLCBUWEQxLCBUWEQyLCBUWEQzLCBUWEQ0LAorICAgICAgICAgICAgICBVQVJUMTAsIFVBUlQxMSwgVUFSVDEyRzAsIFVBUlQxMkcxLCBVQVJUMTNHMCwgVUFSVDEzRzEsIFVBUlQ2LAorICAgICAgICAgICAgICBVQVJUNywgVUFSVDgsIFVBUlQ5LCBWQiwgVkdBSFMsIFZHQVZTLCBXRFRSU1QxLCBXRFRSU1QyLCBXRFRSU1QzLAorICAgICAgICAgICAgICBXRFRSU1Q0LCBdCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKworZXhhbXBsZXM6CisgIC0gfAorICAgIHN5c2Nvbjogc2N1QDFlNmUyMDAwIHsKKyAgICAgICAgY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjYwMC1zY3UiLCAic3lzY29uIiwgInNpbXBsZS1tZmQiOworICAgICAgICByZWcgPSA8MHgxZTZlMjAwMCAweGY2Yz47CisKKyAgICAgICAgcGluY3RybDogcGluY3RybCB7CisgICAgICAgICAgICBjb21wYXRpYmxlID0gImFzcGVlZCxnNi1waW5jdHJsIjsKKworICAgICAgICAgICAgcGluY3RybF9wd20xMGcxX2RlZmF1bHQ6IHB3bTEwZzFfZGVmYXVsdCB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gPSAiUFdNMTAiOworICAgICAgICAgICAgICAgIGdyb3VwcyA9ICJQV00xMEcxIjsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHBpbmN0cmxfZ3Bpb2gwX3VuYmlhc2VkX2RlZmF1bHQ6IGdwaW9oMCB7CisgICAgICAgICAgICAgICAgcGlucyA9ICJBMTgiOworICAgICAgICAgICAgICAgIGJpYXMtZGlzYWJsZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL2JyY20sYmNtMjgzNS1ncGlvLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL2JyY20sYmNtMjgzNS1ncGlvLnR4dAppbmRleCBhYzZkNjE0Li4zY2FiNzMzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9icmNtLGJjbTI4MzUtZ3Bpby50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvYnJjbSxiY20yODM1LWdwaW8udHh0CkBAIC04LDYgKzgsNyBAQAogLSBjb21wYXRpYmxlOiBzaG91bGQgYmUgb25lIG9mOgogICAiYnJjbSxiY20yODM1LWdwaW8iIC0gQkNNMjgzNSBjb21wYXRpYmxlIHBpbmN0cmwKICAgImJyY20sYmNtNzIxMS1ncGlvIiAtIEJDTTcyMTEgY29tcGF0aWJsZSBwaW5jdHJsCisgICJicmNtLGJjbTI3MTEtZ3BpbyIgLSBCQ00yNzExIGNvbXBhdGlibGUgcGluY3RybAogLSByZWc6IFNob3VsZCBjb250YWluIHRoZSBwaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBHUElPIG1vZHVsZSdzIHJlZ2lzdGVycy4KIC0gZ3Bpby1jb250cm9sbGVyOiBNYXJrcyB0aGUgZGV2aWNlIG5vZGUgYXMgYSBHUElPIGNvbnRyb2xsZXIuCiAtICNncGlvLWNlbGxzIDogU2hvdWxkIGJlIHR3by4gVGhlIGZpcnN0IGNlbGwgaXMgdGhlIHBpbiBudW1iZXIgYW5kIHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvaW5nZW5pYyxwaW5jdHJsLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL2luZ2VuaWMscGluY3RybC50eHQKaW5kZXggYWYyMGIwZS4uMDAxNGQ5OCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvaW5nZW5pYyxwaW5jdHJsLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9pbmdlbmljLHBpbmN0cmwudHh0CkBAIC0xLDE4ICsxLDE4IEBACi1JbmdlbmljIGp6NDd4eCBwaW4gY29udHJvbGxlcgorSW5nZW5pYyBYQnVyc3QgcGluIGNvbnRyb2xsZXIKIAogUGxlYXNlIHJlZmVyIHRvIHBpbmN0cmwtYmluZGluZ3MudHh0IGluIHRoaXMgZGlyZWN0b3J5IGZvciBkZXRhaWxzIG9mIHRoZQogY29tbW9uIHBpbmN0cmwgYmluZGluZ3MgdXNlZCBieSBjbGllbnQgZGV2aWNlcywgaW5jbHVkaW5nIHRoZSBtZWFuaW5nIG9mIHRoZQogcGhyYXNlICJwaW4gY29uZmlndXJhdGlvbiBub2RlIi4KIAotRm9yIHRoZSBqejQ3eHggU29DcywgcGluIGNvbnRyb2wgaXMgdGlnaHRseSBib3VuZCB3aXRoIEdQSU8gcG9ydHMuIEFsbCBwaW5zIG1heQorRm9yIHRoZSBYQnVyc3QgU29DcywgcGluIGNvbnRyb2wgaXMgdGlnaHRseSBib3VuZCB3aXRoIEdQSU8gcG9ydHMuIEFsbCBwaW5zIG1heQogYmUgdXNlZCBhcyBHUElPcywgbXVsdGlwbGV4ZWQgZGV2aWNlIGZ1bmN0aW9ucyBhcmUgY29uZmlndXJlZCB3aXRoaW4gdGhlCiBHUElPIHBvcnQgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgYW5kIGl0IGlzIHR5cGljYWwgdG8gcmVmZXIgdG8gcGlucyB1c2luZyB0aGUKIG5hbWluZyBzY2hlbWUgIlB4TiIgd2hlcmUgeCBpcyBhIGNoYXJhY3RlciBpZGVudGlmeWluZyB0aGUgR1BJTyBwb3J0IHdpdGgKIHdoaWNoIHRoZSBwaW4gaXMgYXNzb2NpYXRlZCBhbmQgTiBpcyBhbiBpbnRlZ2VyIGZyb20gMCB0byAzMSBpZGVudGlmeWluZyB0aGUKIHBpbiB3aXRoaW4gdGhhdCBHUElPIHBvcnQuIEZvciBleGFtcGxlIFBBMCBpcyB0aGUgZmlyc3QgcGluIGluIEdQSU8gcG9ydCBBLCBhbmQKLVBCMzEgaXMgdGhlIGxhc3QgcGluIGluIEdQSU8gcG9ydCBCLiBUaGUgano0NzQwIGNvbnRhaW5zIDQgR1BJTyBwb3J0cywgUEEgdG8KLVBELCBmb3IgYSB0b3RhbCBvZiAxMjggcGlucy4gVGhlIGp6NDc4MCBjb250YWlucyA2IEdQSU8gcG9ydHMsIFBBIHRvIFBGLCBmb3IgYQotdG90YWwgb2YgMTkyIHBpbnMuCitQQjMxIGlzIHRoZSBsYXN0IHBpbiBpbiBHUElPIHBvcnQgQi4gVGhlIGp6NDc0MCBhbmQgdGhlIHgxMDAwIGNvbnRhaW5zIDQgR1BJTworcG9ydHMsIFBBIHRvIFBELCBmb3IgYSB0b3RhbCBvZiAxMjggcGlucy4gVGhlIGp6NDc2MCwgdGhlIGp6NDc3MCBhbmQgdGhlIGp6NDc4MAorY29udGFpbnMgNiBHUElPIHBvcnRzLCBQQSB0byBQRiwgZm9yIGEgdG90YWwgb2YgMTkyIHBpbnMuCiAKIAogUmVxdWlyZWQgcHJvcGVydGllczoKQEAgLTIxLDggKzIxLDEzIEBACiAgLSBjb21wYXRpYmxlOiBPbmUgb2Y6CiAgICAgLSAiaW5nZW5pYyxqejQ3NDAtcGluY3RybCIKICAgICAtICJpbmdlbmljLGp6NDcyNWItcGluY3RybCIKKyAgICAtICJpbmdlbmljLGp6NDc2MC1waW5jdHJsIgorICAgIC0gImluZ2VuaWMsano0NzYwYi1waW5jdHJsIgogICAgIC0gImluZ2VuaWMsano0NzcwLXBpbmN0cmwiCiAgICAgLSAiaW5nZW5pYyxqejQ3ODAtcGluY3RybCIKKyAgICAtICJpbmdlbmljLHgxMDAwLXBpbmN0cmwiCisgICAgLSAiaW5nZW5pYyx4MTAwMGUtcGluY3RybCIKKyAgICAtICJpbmdlbmljLHgxNTAwLXBpbmN0cmwiCiAgLSByZWc6IEFkZHJlc3MgcmFuZ2Ugb2YgdGhlIHBpbmN0cmwgcmVnaXN0ZXJzLgogCiAKQEAgLTMxLDggKzM2LDEwIEBACiAKICAtIGNvbXBhdGlibGU6IE11c3QgY29udGFpbiBvbmUgb2Y6CiAgICAgLSAiaW5nZW5pYyxqejQ3NDAtZ3BpbyIKKyAgICAtICJpbmdlbmljLGp6NDc2MC1ncGlvIgogICAgIC0gImluZ2VuaWMsano0NzcwLWdwaW8iCiAgICAgLSAiaW5nZW5pYyxqejQ3ODAtZ3BpbyIKKyAgICAtICJpbmdlbmljLHgxMDAwLWdwaW8iCiAgLSByZWc6IFRoZSBHUElPIGJhbmsgbnVtYmVyLgogIC0gaW50ZXJydXB0LWNvbnRyb2xsZXI6IE1hcmtzIHRoZSBkZXZpY2Ugbm9kZSBhcyBhbiBpbnRlcnJ1cHQgY29udHJvbGxlci4KICAtIGludGVycnVwdHM6IEludGVycnVwdCBzcGVjaWZpZXIgZm9yIHRoZSBjb250cm9sbGVycyBpbnRlcnJ1cHQuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9waW5jdHJsLW1jcDIzczA4LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL3BpbmN0cmwtbWNwMjNzMDgudHh0CmluZGV4IDYyNWEyMmUuLjhiOTRhYTggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL3BpbmN0cmwtbWNwMjNzMDgudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL3BpbmN0cmwtbWNwMjNzMDgudHh0CkBAIC04Miw3ICs4Miw3IEBACiAgICAgICAgIGNvbXBhdGlibGUgPSAibWljcm9jaGlwLG1jcDIzczE3IjsKICAgICAgICAgZ3Bpby1jb250cm9sbGVyOwogICAgICAgICAjZ3Bpby1jZWxscyA9IDwyPjsKLSAgICAgICAgc3BpLXByZXNlbnQtbWFzayA9IDwweDAxPjsKKyAgICAgICAgbWljcm9jaGlwLHNwaS1wcmVzZW50LW1hc2sgPSA8MHgwMT47CiAgICAgICAgIHJlZyA9IDwwPjsKICAgICAgICAgc3BpLW1heC1mcmVxdWVuY3kgPSA8MTAwMDAwMD47CiB9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvcWNvbSxtc204OTk4LXBpbmN0cmwudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvcWNvbSxtc204OTk4LXBpbmN0cmwudHh0CmluZGV4IGNkZWMxZWUuLmM0ZGU5MzAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL3Fjb20sbXNtODk5OC1waW5jdHJsLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9xY29tLG1zbTg5OTgtcGluY3RybC50eHQKQEAgLTEzMiw5ICsxMzIsOCBAQAogCQkgICAgcWxpbmtfcmVxdWVzdCwgcXVhX21pMnMsIHNkX2NhcmQsIHNkX3dyaXRlLCBzZGM0MCwgc2RjNDEsCiAJCSAgICBzZGM0Miwgc2RjNDMsIHNkYzRfY2xrLCBzZGM0X2NtZCwgc2VjX21pMnMsIHNwX2NtdSwKIAkJICAgIHNwa3JfaTJzLCBzc2JpMSwgc3NjX2lycSwgdGVyX21pMnMsIHRndV9jaDAsIHRndV9jaDEsCi0JCSAgICB0c2Vuc2VfcHdtMSwgdHNlbnNlX3B3bTIsIHRzaWYxX2NsaywgdHNpZjFfZGF0YSwgdHNpZjFfZW4sCi0JCSAgICB0c2lmMV9lcnJvciwgdHNpZjFfc3luYywgdHNpZjJfY2xrLCB0c2lmMl9kYXRhLCB0c2lmMl9lbiwKLQkJICAgIHRzaWYyX2Vycm9yLCB0c2lmMl9zeW5jLCB1aW0xX2NsaywgdWltMV9kYXRhLCB1aW0xX3ByZXNlbnQsCisJCSAgICB0c2Vuc2VfcHdtMSwgdHNlbnNlX3B3bTIsIHRzaWYwLCB0c2lmMSwKKwkJICAgIHVpbTFfY2xrLCB1aW0xX2RhdGEsIHVpbTFfcHJlc2VudCwKIAkJICAgIHVpbTFfcmVzZXQsIHVpbTJfY2xrLCB1aW0yX2RhdGEsIHVpbTJfcHJlc2VudCwgdWltMl9yZXNldCwKIAkJICAgIHVpbV9iYXR0LCB1c2JfcGh5LCB2ZnJfMSwgdnNlbnNlX2Nsa291dCwgdnNlbnNlX2RhdGEwLAogCQkgICAgdnNlbnNlX2RhdGExLCB2c2Vuc2VfbW9kZSwgd2xhbjFfYWRjMCwgd2xhbjFfYWRjMSwKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL3Fjb20scG1pYy1ncGlvLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL3Fjb20scG1pYy1ncGlvLnR4dAppbmRleCA3ZjY0YTdlLi5jMzJiZjMyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9xY29tLHBtaWMtZ3Bpby50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvcWNvbSxwbWljLWdwaW8udHh0CkBAIC0yMSw2ICsyMSw4IEBACiAJCSAgICAicWNvbSxwbWk4OTk0LWdwaW8iCiAJCSAgICAicWNvbSxwbWk4OTk4LWdwaW8iCiAJCSAgICAicWNvbSxwbXM0MDUtZ3BpbyIKKwkJICAgICJxY29tLHBtODE1MC1ncGlvIgorCQkgICAgInFjb20scG04MTUwYi1ncGlvIgogCiAJCSAgICBBbmQgbXVzdCBjb250YWluIGVpdGhlciAicWNvbSxzcG1pLWdwaW8iIG9yICJxY29tLHNzYmktZ3BpbyIKIAkJICAgIGlmIHRoZSBkZXZpY2UgaXMgb24gYW4gc3BtaSBidXMgb3IgYW4gc3NiaSBidXMgcmVzcGVjdGl2ZWx5CkBAIC05NCw2ICs5NiwxMCBAQAogCQkgICAgZ3BpbzEtZ3BpbzIyIGZvciBwbWE4MDg0CiAJCSAgICBncGlvMS1ncGlvMTAgZm9yIHBtaTg5OTQKIAkJICAgIGdwaW8xLWdwaW8xMiBmb3IgcG1zNDA1IChob2xlcyBvbiBncGlvMSwgZ3BpbzkgYW5kIGdwaW8xMCkKKwkJICAgIGdwaW8xLWdwaW8xMCBmb3IgcG04MTUwIChob2xlcyBvbiBncGlvMiwgZ3BpbzUsIGdwaW83CisJCQkJCSAgICAgYW5kIGdwaW84KQorCQkgICAgZ3BpbzEtZ3BpbzEyIGZvciBwbTgxNTBiIChob2xlcyBvbiBncGlvMywgZ3BpbzQsIGdwaW83KQorCQkgICAgZ3BpbzEtZ3BpbzEyIGZvciBwbTgxNTBsIChob2xlIG9uIGdwaW83KQogCiAtIGZ1bmN0aW9uOgogCVVzYWdlOiByZXF1aXJlZApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvcWNvbSxzYzcxODAtcGluY3RybC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9xY29tLHNjNzE4MC1waW5jdHJsLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTc2N2VlCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvcWNvbSxzYzcxODAtcGluY3RybC50eHQKQEAgLTAsMCArMSwxODYgQEAKK1F1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLiBTQzcxODAgVExNTSBibG9jaworCitUaGlzIGJpbmRpbmcgZGVzY3JpYmVzIHRoZSBUb3AgTGV2ZWwgTW9kZSBNdWx0aXBsZXhlciBibG9jayBmb3VuZCBpbiB0aGUKK1NDNzE4MCBwbGF0Zm9ybS4KKworLSBjb21wYXRpYmxlOgorCVVzYWdlOiByZXF1aXJlZAorCVZhbHVlIHR5cGU6IDxzdHJpbmc+CisJRGVmaW5pdGlvbjogbXVzdCBiZSAicWNvbSxzYzcxODAtcGluY3RybCIKKworLSByZWc6CisJVXNhZ2U6IHJlcXVpcmVkCisJVmFsdWUgdHlwZTogPHByb3AtZW5jb2RlZC1hcnJheT4KKwlEZWZpbml0aW9uOiB0aGUgYmFzZSBhZGRyZXNzIGFuZCBzaXplIG9mIHRoZSBub3J0aCwgc291dGggYW5kIHdlc3QKKwkJICAgIFRMTU0gdGlsZXMKKworLSByZWctbmFtZXM6CisJVXNhZ2U6IHJlcXVpcmVkCisJVmFsdWUgdHlwZTogPHByb3AtZW5jb2RlZC1hcnJheT4KKwlEZWZpbml0aW9uOiBuYW1lcyBmb3IgdGhlIGNlbGxzIG9mIHJlZywgbXVzdCBjb250YWluICJub3J0aCIsICJzb3V0aCIKKwkJICAgIGFuZCAid2VzdCIuCisKKy0gaW50ZXJydXB0czoKKwlVc2FnZTogcmVxdWlyZWQKKwlWYWx1ZSB0eXBlOiA8cHJvcC1lbmNvZGVkLWFycmF5PgorCURlZmluaXRpb246IHNob3VsZCBzcGVjaWZ5IHRoZSBUTE1NIHN1bW1hcnkgSVJRLgorCistIGludGVycnVwdC1jb250cm9sbGVyOgorCVVzYWdlOiByZXF1aXJlZAorCVZhbHVlIHR5cGU6IDxub25lPgorCURlZmluaXRpb246IGlkZW50aWZpZXMgdGhpcyBub2RlIGFzIGFuIGludGVycnVwdCBjb250cm9sbGVyCisKKy0gI2ludGVycnVwdC1jZWxsczoKKwlVc2FnZTogcmVxdWlyZWQKKwlWYWx1ZSB0eXBlOiA8dTMyPgorCURlZmluaXRpb246IG11c3QgYmUgMi4gU3BlY2lmeWluZyB0aGUgcGluIG51bWJlciBhbmQgZmxhZ3MsIGFzIGRlZmluZWQKKwkJICAgIGluIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9pcnEuaD4KKworLSBncGlvLWNvbnRyb2xsZXI6CisJVXNhZ2U6IHJlcXVpcmVkCisJVmFsdWUgdHlwZTogPG5vbmU+CisJRGVmaW5pdGlvbjogaWRlbnRpZmllcyB0aGlzIG5vZGUgYXMgYSBncGlvIGNvbnRyb2xsZXIKKworLSAjZ3Bpby1jZWxsczoKKwlVc2FnZTogcmVxdWlyZWQKKwlWYWx1ZSB0eXBlOiA8dTMyPgorCURlZmluaXRpb246IG11c3QgYmUgMi4gU3BlY2lmeWluZyB0aGUgcGluIG51bWJlciBhbmQgZmxhZ3MsIGFzIGRlZmluZWQKKwkJICAgIGluIDxkdC1iaW5kaW5ncy9ncGlvL2dwaW8uaD4KKworLSBncGlvLXJhbmdlczoKKwlVc2FnZTogcmVxdWlyZWQKKwlWYWx1ZSB0eXBlOiA8cHJvcC1lbmNvZGVkLWFycmF5PgorCURlZmluaXRpb246ICBzZWUgLi4vZ3Bpby9ncGlvLnR4dAorCistIGdwaW8tcmVzZXJ2ZWQtcmFuZ2VzOgorCVVzYWdlOiBvcHRpb25hbAorCVZhbHVlIHR5cGU6IDxwcm9wLWVuY29kZWQtYXJyYXk+CisJRGVmaW5pdGlvbjogc2VlIC4uL2dwaW8vZ3Bpby50eHQKKworUGxlYXNlIHJlZmVyIHRvIC4uL2dwaW8vZ3Bpby50eHQgYW5kIC4uL2ludGVycnVwdC1jb250cm9sbGVyL2ludGVycnVwdHMudHh0IGZvcgorYSBnZW5lcmFsIGRlc2NyaXB0aW9uIG9mIEdQSU8gYW5kIGludGVycnVwdCBiaW5kaW5ncy4KKworUGxlYXNlIHJlZmVyIHRvIHBpbmN0cmwtYmluZGluZ3MudHh0IGluIHRoaXMgZGlyZWN0b3J5IGZvciBkZXRhaWxzIG9mIHRoZQorY29tbW9uIHBpbmN0cmwgYmluZGluZ3MgdXNlZCBieSBjbGllbnQgZGV2aWNlcywgaW5jbHVkaW5nIHRoZSBtZWFuaW5nIG9mIHRoZQorcGhyYXNlICJwaW4gY29uZmlndXJhdGlvbiBub2RlIi4KKworVGhlIHBpbiBjb25maWd1cmF0aW9uIG5vZGVzIGFjdCBhcyBhIGNvbnRhaW5lciBmb3IgYW4gYXJiaXRyYXJ5IG51bWJlciBvZgorc3Vibm9kZXMuIEVhY2ggb2YgdGhlc2Ugc3Vibm9kZXMgcmVwcmVzZW50cyBzb21lIGRlc2lyZWQgY29uZmlndXJhdGlvbiBmb3IgYQorcGluLCBhIGdyb3VwLCBvciBhIGxpc3Qgb2YgcGlucyBvciBncm91cHMuIFRoaXMgY29uZmlndXJhdGlvbiBjYW4gaW5jbHVkZSB0aGUKK211eCBmdW5jdGlvbiB0byBzZWxlY3Qgb24gdGhvc2UgcGluKHMpL2dyb3VwKHMpLCBhbmQgdmFyaW91cyBwaW4gY29uZmlndXJhdGlvbgorcGFyYW1ldGVycywgc3VjaCBhcyBwdWxsLXVwLCBkcml2ZSBzdHJlbmd0aCwgZXRjLgorCisKK1BJTiBDT05GSUdVUkFUSU9OIE5PREVTOgorCitUaGUgbmFtZSBvZiBlYWNoIHN1Ym5vZGUgaXMgbm90IGltcG9ydGFudDsgYWxsIHN1Ym5vZGVzIHNob3VsZCBiZSBlbnVtZXJhdGVkCithbmQgcHJvY2Vzc2VkIHB1cmVseSBiYXNlZCBvbiB0aGVpciBjb250ZW50LgorCitFYWNoIHN1Ym5vZGUgb25seSBhZmZlY3RzIHRob3NlIHBhcmFtZXRlcnMgdGhhdCBhcmUgZXhwbGljaXRseSBsaXN0ZWQuIEluCitvdGhlciB3b3JkcywgYSBzdWJub2RlIHRoYXQgbGlzdHMgYSBtdXggZnVuY3Rpb24gYnV0IG5vIHBpbiBjb25maWd1cmF0aW9uCitwYXJhbWV0ZXJzIGltcGxpZXMgbm8gaW5mb3JtYXRpb24gYWJvdXQgYW55IHBpbiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuCitTaW1pbGFybHksIGEgcGluIHN1Ym5vZGUgdGhhdCBkZXNjcmliZXMgYSBwdWxsdXAgcGFyYW1ldGVyIGltcGxpZXMgbm8KK2luZm9ybWF0aW9uIGFib3V0IGUuZy4gdGhlIG11eCBmdW5jdGlvbi4KKworCitUaGUgZm9sbG93aW5nIGdlbmVyaWMgcHJvcGVydGllcyBhcyBkZWZpbmVkIGluIHBpbmN0cmwtYmluZGluZ3MudHh0IGFyZSB2YWxpZAordG8gc3BlY2lmeSBpbiBhIHBpbiBjb25maWd1cmF0aW9uIHN1Ym5vZGU6CisKKy0gcGluczoKKwlVc2FnZTogcmVxdWlyZWQKKwlWYWx1ZSB0eXBlOiA8c3RyaW5nLWFycmF5PgorCURlZmluaXRpb246IExpc3Qgb2YgZ3BpbyBwaW5zIGFmZmVjdGVkIGJ5IHRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCBpbgorCQkgICAgdGhpcyBzdWJub2RlLgorCisJCSAgICBWYWxpZCBwaW5zIGFyZToKKwkJICAgICAgZ3BpbzAtZ3BpbzExOAorCQkgICAgICAgIFN1cHBvcnRzIG11eCwgYmlhcyBhbmQgZHJpdmUtc3RyZW5ndGgKKworCQkgICAgICBzZGMxX2Nsaywgc2RjMV9jbWQsIHNkYzFfZGF0YSBzZGMyX2Nsaywgc2RjMl9jbWQsCisJCSAgICAgIHNkYzJfZGF0YSBzZGMxX3JjbGsKKwkJICAgICAgICBTdXBwb3J0cyBiaWFzIGFuZCBkcml2ZS1zdHJlbmd0aAorCisJCSAgICAgIHVmc19yZXNldAorCQkJU3VwcG9ydHMgYmlhcyBhbmQgZHJpdmUtc3RyZW5ndGgKKworLSBmdW5jdGlvbjoKKwlVc2FnZTogcmVxdWlyZWQKKwlWYWx1ZSB0eXBlOiA8c3RyaW5nPgorCURlZmluaXRpb246IFNwZWNpZnkgdGhlIGFsdGVybmF0aXZlIGZ1bmN0aW9uIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIHRoZQorCQkgICAgc3BlY2lmaWVkIHBpbnMuIEZ1bmN0aW9ucyBhcmUgb25seSB2YWxpZCBmb3IgZ3BpbyBwaW5zLgorCQkgICAgVmFsaWQgdmFsdWVzIGFyZToKKworCQkgICAgYWRzcF9leHQsIGFnZXJhX3BsbCwgYW9zc19jdGksIGF0ZXN0X2NoYXIsIGF0ZXN0X2NoYXIwLAorCQkgICAgYXRlc3RfY2hhcjEsIGF0ZXN0X2NoYXIyLCBhdGVzdF9jaGFyMywgYXRlc3RfdHNlbnMsCisJCSAgICBhdGVzdF90c2VuczIsIGF0ZXN0X3VzYjEsIGF0ZXN0X3VzYjEwLCBhdGVzdF91c2IxMSwKKwkJICAgIGF0ZXN0X3VzYjEyLCBhdGVzdF91c2IxMywgYXRlc3RfdXNiMiwgYXRlc3RfdXNiMjAsCisJCSAgICBhdGVzdF91c2IyMSwgYXRlc3RfdXNiMjIsIGF0ZXN0X3VzYjIzLCBhdWRpb19yZWYsCisJCSAgICBidGZtX3NsaW1idXMsIGNhbV9tY2xrLCBjY2lfYXN5bmMsIGNjaV9pMmMsIGNjaV90aW1lcjAsCisJCSAgICBjY2lfdGltZXIxLCBjY2lfdGltZXIyLCBjY2lfdGltZXIzLCBjY2lfdGltZXI0LAorCQkgICAgY3JpX3RybmcsIGRiZ19vdXQsIGRkcl9iaXN0LCBkZHJfcHhpMCwgZGRyX3B4aTEsCisJCSAgICBkZHJfcHhpMiwgZGRyX3B4aTMsIGRwX2hvdCwgZWRwX2xjZCwgZ2NjX2dwMSwgZ2NjX2dwMiwKKwkJICAgIGdjY19ncDMsIGdwaW8sIGdwX3BkbTAsIGdwX3BkbTEsIGdwX3BkbTIsIGdwc190eCwKKwkJICAgIGppdHRlcl9iaXN0LCBsZG9fZW4sIGxkb191cGRhdGUsIGxwYXNzX2V4dCwgbWRwX3ZzeW5jLAorCQkgICAgbWRwX3ZzeW5jMCwgbWRwX3ZzeW5jMSwgbWRwX3ZzeW5jMiwgbWRwX3ZzeW5jMywgbWkyc18wLAorCQkgICAgbWkyc18xLCBtaTJzXzIsIG1zc19sdGUsIG1fdm9jLCBwYV9pbmRpY2F0b3IsIHBoYXNlX2ZsYWcsCisJCSAgICBQTExfQklTVCwgcGxsX2J5cGFzc25sLCBwbGxfcmVzZXQsIHBybmdfcm9zYywgcWRzcywKKwkJICAgIHFkc3NfY3RpLCBxbGlua19lbmFibGUsIHFsaW5rX3JlcXVlc3QsIHFzcGlfY2xrLCBxc3BpX2NzLAorCQkgICAgcXNwaV9kYXRhLCBxdXAwMCwgcXVwMDEsIHF1cDAyLCBxdXAwMywgcXVwMDQsIHF1cDA1LAorCQkgICAgcXVwMTAsIHF1cDExLCBxdXAxMiwgcXVwMTMsIHF1cDE0LCBxdXAxNSwgc2RjMV90YiwKKwkJICAgIHNkYzJfdGIsIHNkX3dyaXRlLCBzcF9jbXUsIHRndV9jaDAsIHRndV9jaDEsIHRndV9jaDIsCisJCSAgICB0Z3VfY2gzLCB0c2Vuc2VfcHdtMSwgdHNlbnNlX3B3bTIsIHVpbTEsIHVpbTIsIHVpbV9iYXR0LAorCQkgICAgdXNiX3BoeSwgdmZyXzEsIF9WX0dQSU8sIF9WX1BQU19JTiwgX1ZfUFBTX09VVCwKKwkJICAgIHZzZW5zZV90cmlnZ2VyLCB3bGFuMV9hZGMwLCB3bGFuMV9hZGMxLCB3bGFuMl9hZGMwLAorCQkgICAgd2xhbjJfYWRjMSwKKworLSBiaWFzLWRpc2FibGU6CisJVXNhZ2U6IG9wdGlvbmFsCisJVmFsdWUgdHlwZTogPG5vbmU+CisJRGVmaW5pdGlvbjogVGhlIHNwZWNpZmllZCBwaW5zIHNob3VsZCBiZSBjb25maWd1cmVkIGFzIG5vIHB1bGwuCisKKy0gYmlhcy1wdWxsLWRvd246CisJVXNhZ2U6IG9wdGlvbmFsCisJVmFsdWUgdHlwZTogPG5vbmU+CisJRGVmaW5pdGlvbjogVGhlIHNwZWNpZmllZCBwaW5zIHNob3VsZCBiZSBjb25maWd1cmVkIGFzIHB1bGwgZG93bi4KKworLSBiaWFzLXB1bGwtdXA6CisJVXNhZ2U6IG9wdGlvbmFsCisJVmFsdWUgdHlwZTogPG5vbmU+CisJRGVmaW5pdGlvbjogVGhlIHNwZWNpZmllZCBwaW5zIHNob3VsZCBiZSBjb25maWd1cmVkIGFzIHB1bGwgdXAuCisKKy0gb3V0cHV0LWhpZ2g6CisJVXNhZ2U6IG9wdGlvbmFsCisJVmFsdWUgdHlwZTogPG5vbmU+CisJRGVmaW5pdGlvbjogVGhlIHNwZWNpZmllZCBwaW5zIGFyZSBjb25maWd1cmVkIGluIG91dHB1dCBtb2RlLCBkcml2ZW4KKwkJICAgIGhpZ2guCisJCSAgICBOb3QgdmFsaWQgZm9yIHNkYyBwaW5zLgorCistIG91dHB1dC1sb3c6CisJVXNhZ2U6IG9wdGlvbmFsCisJVmFsdWUgdHlwZTogPG5vbmU+CisJRGVmaW5pdGlvbjogVGhlIHNwZWNpZmllZCBwaW5zIGFyZSBjb25maWd1cmVkIGluIG91dHB1dCBtb2RlLCBkcml2ZW4KKwkJICAgIGxvdy4KKwkJICAgIE5vdCB2YWxpZCBmb3Igc2RjIHBpbnMuCisKKy0gZHJpdmUtc3RyZW5ndGg6CisJVXNhZ2U6IG9wdGlvbmFsCisJVmFsdWUgdHlwZTogPHUzMj4KKwlEZWZpbml0aW9uOiBTZWxlY3RzIHRoZSBkcml2ZSBzdHJlbmd0aCBmb3IgdGhlIHNwZWNpZmllZCBwaW5zLCBpbiBtQS4KKwkJICAgIFZhbGlkIHZhbHVlcyBhcmU6IDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQgYW5kIDE2CisKK0V4YW1wbGU6CisKKwl0bG1tOiBwaW5jdHJsQDM1MDAwMDAgeworCQljb21wYXRpYmxlID0gInFjb20sc2M3MTgwLXBpbmN0cmwiOworCQlyZWcgPSA8MHgzNTAwMDAwIDB4MzAwMDAwPiwKKwkJICAgICAgPDB4MzkwMDAwMCAweDMwMDAwMD4sCisJCSAgICAgIDwweDNEMDAwMDAgMHgzMDAwMDA+OworCQlyZWctbmFtZXMgPSAid2VzdCIsICJub3J0aCIsICJzb3V0aCI7CisJCWludGVycnVwdHMgPSA8R0lDX1NQSSAyMDggSVJRX1RZUEVfTEVWRUxfSElHSD47CisJCWdwaW8tY29udHJvbGxlcjsKKwkJI2dwaW8tY2VsbHMgPSA8Mj47CisJCWdwaW8tcmFuZ2VzID0gPCZ0bG1tIDAgMCAxMTk+OworCQlncGlvLXJlc2VydmVkLXJhbmdlcyA9IDwwIDQ+LCA8MTA2IDQ+OworCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKKwkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKKwl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Bvd2VyL3Jlc2V0L210NjMyMy1wb3dlcm9mZi50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcG93ZXIvcmVzZXQvbXQ2MzIzLXBvd2Vyb2ZmLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzNmMGM0Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Bvd2VyL3Jlc2V0L210NjMyMy1wb3dlcm9mZi50eHQKQEAgLTAsMCArMSwyMCBAQAorRGV2aWNlIFRyZWUgQmluZGluZ3MgZm9yIFBvd2VyIENvbnRyb2xsZXIgb24gTWVkaWFUZWsgUE1JQworCitUaGUgcG93ZXIgY29udHJvbGxlciB3aGljaCBjb3VsZCBiZSBmb3VuZCBvbiBQTUlDIGlzIHJlc3BvbnNpYmxlIGZvciBleHRlcm5hbGx5Citwb3dlcmluZyBvZmYgb3Igb24gdGhlIHJlbW90ZSBNZWRpYVRlayBTb0MgdGhyb3VnaCB0aGUgY2lyY3VpdCBCQlBVLgorCitSZXF1aXJlZCBwcm9wZXJ0aWVzOgorLSBjb21wYXRpYmxlOiBTaG91bGQgYmUgb25lIG9mIGZvbGxvd3MKKyAgICAgICAibWVkaWF0ZWssbXQ2MzIzLXB3cmMiOiBmb3IgTVQ2MzIzIFBNSUMKKworRXhhbXBsZToKKworICAgICAgIHBtaWMgeworICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDYzMjMiOworCisgICAgICAgICAgICAgICAuLi4KKworICAgICAgICAgICAgICAgcG93ZXItY29udHJvbGxlciB7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2MzIzLXB3cmMiOworICAgICAgICAgICAgICAgfTsKKyAgICAgICB9CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdtL2luZ2VuaWMsano0N3h4LXB3bS50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdtL2luZ2VuaWMsano0N3h4LXB3bS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5M2JlYzguLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS9pbmdlbmljLGp6NDd4eC1wd20udHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotSW5nZW5pYyBKWjQ3eHggUFdNIENvbnRyb2xsZXIKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIGNvbXBhdGlibGU6IFNob3VsZCBiZSAiaW5nZW5pYyxqejQ3NDAtcHdtIgotLSAjcHdtLWNlbGxzOiBTaG91bGQgYmUgMy4gU2VlIHB3bS50eHQgaW4gdGhpcyBkaXJlY3RvcnkgZm9yIGEgZGVzY3JpcHRpb24KLSAgb2YgdGhlIGNlbGxzIGZvcm1hdC4KLS0gY2xvY2tzIDogcGhhbmRsZSB0byB0aGUgZXh0ZXJuYWwgY2xvY2suCi0tIGNsb2NrLW5hbWVzIDogU2hvdWxkIGJlICJleHQiLgotCi0KLUV4YW1wbGU6Ci0KLQlwd206IHB3bUAxMDAwMjAwMCB7Ci0JCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtcHdtIjsKLQkJcmVnID0gPDB4MTAwMDIwMDAgMHgxMDAwPjsKLQotCQkjcHdtLWNlbGxzID0gPDM+OwotCi0JCWNsb2NrcyA9IDwmZXh0PjsKLQkJY2xvY2stbmFtZXMgPSAiZXh0IjsKLQl9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS9wd20tbWVkaWF0ZWsudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS9wd20tbWVkaWF0ZWsudHh0CmluZGV4IDk5MTcyOGMuLmM4NTAxNTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wd20vcHdtLW1lZGlhdGVrLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdtL3B3bS1tZWRpYXRlay50eHQKQEAgLTYsNiArNiw4IEBACiAgICAtICJtZWRpYXRlayxtdDc2MjItcHdtIjogZm91bmQgb24gbXQ3NjIyIFNvQy4KICAgIC0gIm1lZGlhdGVrLG10NzYyMy1wd20iOiBmb3VuZCBvbiBtdDc2MjMgU29DLgogICAgLSAibWVkaWF0ZWssbXQ3NjI4LXB3bSI6IGZvdW5kIG9uIG10NzYyOCBTb0MuCisgICAtICJtZWRpYXRlayxtdDc2MjktcHdtIiwgIm1lZGlhdGVrLG10NzYyMi1wd20iOiBmb3VuZCBvbiBtdDc2MjkgU29DLgorICAgLSAibWVkaWF0ZWssbXQ4NTE2LXB3bSI6IGZvdW5kIG9uIG10ODUxNiBTb0MuCiAgLSByZWc6IHBoeXNpY2FsIGJhc2UgYWRkcmVzcyBhbmQgbGVuZ3RoIG9mIHRoZSBjb250cm9sbGVyJ3MgcmVnaXN0ZXJzLgogIC0gI3B3bS1jZWxsczogbXVzdCBiZSAyLiBTZWUgcHdtLnR4dCBpbiB0aGlzIGRpcmVjdG9yeSBmb3IgYSBkZXNjcmlwdGlvbiBvZgogICAgdGhlIGNlbGwgZm9ybWF0LgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS9wd20tc3ByZC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdtL3B3bS1zcHJkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmZhNWEwCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS9wd20tc3ByZC50eHQKQEAgLTAsMCArMSw0MCBAQAorU3ByZWFkdHJ1bSBQV00gY29udHJvbGxlcgorCitTcHJlYWR0cnVtIFNvQ3MgUFdNIGNvbnRyb2xsZXIgcHJvdmlkZXMgNCBQV00gY2hhbm5lbHMuCisKK1JlcXVpcmVkIHByb3BlcnRpZXM6CistIGNvbXBhdGlibGUgOiBTaG91bGQgYmUgInNwcmQsdW1zNTEyLXB3bSIuCistIHJlZzogUGh5c2ljYWwgYmFzZSBhZGRyZXNzIGFuZCBsZW5ndGggb2YgdGhlIGNvbnRyb2xsZXIncyByZWdpc3RlcnMuCistIGNsb2NrczogVGhlIHBoYW5kbGUgYW5kIHNwZWNpZmllciByZWZlcmVuY2luZyB0aGUgY29udHJvbGxlcidzIGNsb2Nrcy4KKy0gY2xvY2stbmFtZXM6IFNob3VsZCBjb250YWluIGZvbGxvd2luZyBlbnRyaWVzOgorICAicHdtbiI6IHVzZWQgdG8gZGVyaXZlIHRoZSBmdW5jdGlvbmFsIGNsb2NrIGZvciBQV00gY2hhbm5lbCBuIChuIHJhbmdlOiAwIH4gMykuCisgICJlbmFibGVuIjogZm9yIFBXTSBjaGFubmVsIG4gZW5hYmxlIGNsb2NrIChuIHJhbmdlOiAwIH4gMykuCistICNwd20tY2VsbHM6IFNob3VsZCBiZSAyLiBTZWUgcHdtLnR4dCBpbiB0aGlzIGRpcmVjdG9yeSBmb3IgYSBkZXNjcmlwdGlvbiBvZgorICB0aGUgY2VsbHMgZm9ybWF0LgorCitPcHRpb25hbCBwcm9wZXJ0aWVzOgorLSBhc3NpZ25lZC1jbG9ja3M6IFJlZmVyZW5jZSB0byB0aGUgUFdNIGNsb2NrIGVudHJpZXMuCistIGFzc2lnbmVkLWNsb2NrLXBhcmVudHM6IFRoZSBwaGFuZGxlIG9mIHRoZSBwYXJlbnQgY2xvY2sgb2YgUFdNIGNsb2NrLgorCitFeGFtcGxlOgorCXB3bXM6IHB3bUAzMjI2MDAwMCB7CisJCWNvbXBhdGlibGUgPSAic3ByZCx1bXM1MTItcHdtIjsKKwkJcmVnID0gPDAgMHgzMjI2MDAwMCAwIDB4MTAwMDA+OworCQljbG9jay1uYW1lcyA9ICJwd20wIiwgImVuYWJsZTAiLAorCQkJInB3bTEiLCAiZW5hYmxlMSIsCisJCQkicHdtMiIsICJlbmFibGUyIiwKKwkJCSJwd20zIiwgImVuYWJsZTMiOworCQljbG9ja3MgPSA8JmFvbl9jbGsgQ0xLX1BXTTA+LCA8JmFvbmFwYl9nYXRlIENMS19QV00wX0VCPiwKKwkJICAgICAgIDwmYW9uX2NsayBDTEtfUFdNMT4sIDwmYW9uYXBiX2dhdGUgQ0xLX1BXTTFfRUI+LAorCQkgICAgICAgPCZhb25fY2xrIENMS19QV00yPiwgPCZhb25hcGJfZ2F0ZSBDTEtfUFdNMl9FQj4sCisJCSAgICAgICA8JmFvbl9jbGsgQ0xLX1BXTTM+LCA8JmFvbmFwYl9nYXRlIENMS19QV00zX0VCPjsKKwkJYXNzaWduZWQtY2xvY2tzID0gPCZhb25fY2xrIENMS19QV00wPiwKKwkJCTwmYW9uX2NsayBDTEtfUFdNMT4sCisJCQk8JmFvbl9jbGsgQ0xLX1BXTTI+LAorCQkJPCZhb25fY2xrIENMS19QV00zPjsKKwkJYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmZXh0XzI2bT4sCisJCQk8JmV4dF8yNm0+LAorCQkJPCZleHRfMjZtPiwKKwkJCTwmZXh0XzI2bT47CisJCSNwd20tY2VsbHMgPSA8Mj47CisJfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC9hbWxvZ2ljLG1lc29uLXJlc2V0LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC9hbWxvZ2ljLG1lc29uLXJlc2V0LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhlZjZjMi4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvYW1sb2dpYyxtZXNvbi1yZXNldC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1BbWxvZ2ljIE1lc29uIFNvQyBSZXNldCBDb250cm9sbGVyCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotUGxlYXNlIGFsc28gcmVmZXIgdG8gcmVzZXQudHh0IGluIHRoaXMgZGlyZWN0b3J5IGZvciBjb21tb24gcmVzZXQKLWNvbnRyb2xsZXIgYmluZGluZyB1c2FnZS4KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLS0gY29tcGF0aWJsZTogU2hvdWxkIGJlICJhbWxvZ2ljLG1lc29uOGItcmVzZXQiLCAiYW1sb2dpYyxtZXNvbi1neGJiLXJlc2V0IiBvcgotCSJhbWxvZ2ljLG1lc29uLWF4Zy1yZXNldCIuCi0tIHJlZzogc2hvdWxkIGNvbnRhaW4gdGhlIHJlZ2lzdGVyIGFkZHJlc3MgYmFzZQotLSAjcmVzZXQtY2VsbHM6IDEsIHNlZSBiZWxvdwotCi1leGFtcGxlOgotCi1yZXNldDogcmVzZXQtY29udHJvbGxlciB7Ci0JY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLWd4YmItcmVzZXQiOwotCXJlZyA9IDwweDAgMHgwNDQwNCAweDAgMHgyMD47Ci0JI3Jlc2V0LWNlbGxzID0gPDE+OwotfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC9hbWxvZ2ljLG1lc29uLXJlc2V0LnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvYW1sb2dpYyxtZXNvbi1yZXNldC55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwOTE3ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvYW1sb2dpYyxtZXNvbi1yZXNldC55YW1sCkBAIC0wLDAgKzEsMzcgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wIE9SIEJTRC0yLUNsYXVzZSkKKyMgQ29weXJpZ2h0IDIwMTkgQmF5TGlicmUsIFNBUworJVlBTUwgMS4yCistLS0KKyRpZDogImh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3Jlc2V0L2FtbG9naWMsbWVzb24tcmVzZXQueWFtbCMiCiskc2NoZW1hOiAiaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjIgorCit0aXRsZTogQW1sb2dpYyBNZXNvbiBTb0MgUmVzZXQgQ29udHJvbGxlcgorCittYWludGFpbmVyczoKKyAgLSBOZWlsIEFybXN0cm9uZyA8bmFybXN0cm9uZ0BiYXlsaWJyZS5jb20+CisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgZW51bToKKyAgICAgIC0gYW1sb2dpYyxtZXNvbjhiLXJlc2V0ICMgUmVzZXQgQ29udHJvbGxlciBvbiBNZXNvbjhiIGFuZCBjb21wYXRpYmxlIFNvQ3MKKyAgICAgIC0gYW1sb2dpYyxtZXNvbi1neGJiLXJlc2V0ICMgUmVzZXQgQ29udHJvbGxlciBvbiBHWEJCIGFuZCBjb21wYXRpYmxlIFNvQ3MKKyAgICAgIC0gYW1sb2dpYyxtZXNvbi1heGctcmVzZXQgIyBSZXNldCBDb250cm9sbGVyIG9uIEFYRyBhbmQgY29tcGF0aWJsZSBTb0NzCisKKyAgcmVnOgorICAgIG1heEl0ZW1zOiAxCisKKyAgIiNyZXNldC1jZWxscyI6CisgICAgY29uc3Q6IDEKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtICIjcmVzZXQtY2VsbHMiCisKK2V4YW1wbGVzOgorICAtIHwKKyAgICByZXNldC1jb250cm9sbGVyQGM4ODQ0MDQgeworICAgICAgICAgIGNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neGJiLXJlc2V0IjsKKyAgICAgICAgICByZWcgPSA8MHhjODg0NDA0IDB4MjA+OworICAgICAgICAgICNyZXNldC1jZWxscyA9IDwxPjsKKyAgICB9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L2hpc2lsaWNvbixoaTYyMjAtcmVzZXQudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L2hpc2lsaWNvbixoaTYyMjAtcmVzZXQudHh0CmluZGV4IGMyNWRhMzkuLmVhMGE2YTkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC9oaXNpbGljb24saGk2MjIwLXJlc2V0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvaGlzaWxpY29uLGhpNjIyMC1yZXNldC50eHQKQEAgLTExLDYgKzExLDcgQEAKIC0gY29tcGF0aWJsZTogc2hvdWxkIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgogICAtICJoaXNpbGljb24saGk2MjIwLXN5c2N0cmwiLCAic3lzY29uIiA6IEZvciBwZXJpcGhlcmFsIHJlc2V0IGNvbnRyb2xsZXIuCiAgIC0gImhpc2lsaWNvbixoaTYyMjAtbWVkaWFjdHJsIiwgInN5c2NvbiIgOiBGb3IgbWVkaWEgcmVzZXQgY29udHJvbGxlci4KKyAgLSAiaGlzaWxpY29uLGhpNjIyMC1hb2N0cmwiLCAic3lzY29uIiA6IEZvciBhbyByZXNldCBjb250cm9sbGVyLgogLSByZWc6IHNob3VsZCBiZSByZWdpc3RlciBiYXNlIGFuZCBsZW5ndGggYXMgZG9jdW1lbnRlZCBpbiB0aGUKICAgZGF0YXNoZWV0CiAtICNyZXNldC1jZWxsczogMSwgc2VlIGJlbG93CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvcm5nL2FtbG9naWMsbWVzb24tcm5nLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ybmcvYW1sb2dpYyxtZXNvbi1ybmcudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDQwMzY0Li4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ybmcvYW1sb2dpYyxtZXNvbi1ybmcudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotQW1sb2dpYyBNZXNvbiBSYW5kb20gbnVtYmVyIGdlbmVyYXRvcgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotCi0tIGNvbXBhdGlibGUgOiBzaG91bGQgYmUgImFtbG9naWMsbWVzb24tcm5nIgotLSByZWcgOiBTcGVjaWZpZXMgYmFzZSBwaHlzaWNhbCBhZGRyZXNzIGFuZCBzaXplIG9mIHRoZSByZWdpc3RlcnMuCi0KLU9wdGlvbmFsIHByb3BlcnRpZXM6Ci0KLS0gY2xvY2tzIDogcGhhbmRsZSB0byB0aGUgZm9sbG93aW5nIG5hbWVkIGNsb2NrcwotLSBjbG9jay1uYW1lczogTmFtZSBvZiBjb3JlIGNsb2NrLCBtdXN0IGJlICJjb3JlIgotCi1FeGFtcGxlOgotCi1ybmcgewotCWNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1ybmciOwotCXJlZyA9IDwweDAgMHhjODgzNDAwMCAweDAgMHg0PjsKLQljbG9ja3MgPSA8JmNsa2MgQ0xLSURfUk5HMD47Ci0JY2xvY2stbmFtZXMgPSAiY29yZSI7Ci19OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3JuZy9hbWxvZ2ljLG1lc29uLXJuZy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3JuZy9hbWxvZ2ljLG1lc29uLXJuZy55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZmYzY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvcm5nL2FtbG9naWMsbWVzb24tcm5nLnlhbWwKQEAgLTAsMCArMSwzNyBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAgT1IgQlNELTItQ2xhdXNlKQorIyBDb3B5cmlnaHQgMjAxOSBCYXlMaWJyZSwgU0FTCislWUFNTCAxLjIKKy0tLQorJGlkOiAiaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvcm5nL2FtbG9naWMsbWVzb24tcm5nLnlhbWwjIgorJHNjaGVtYTogImh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIyIKKwordGl0bGU6IEFtbG9naWMgTWVzb24gUmFuZG9tIG51bWJlciBnZW5lcmF0b3IKKworbWFpbnRhaW5lcnM6CisgIC0gTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgorCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgorICAgIGVudW06CisgICAgICAtIGFtbG9naWMsbWVzb24tcm5nCisKKyAgcmVnOgorICAgIG1heEl0ZW1zOiAxCisKKyAgY2xvY2tzOgorICAgIG1heEl0ZW1zOiAxCisKKyAgY2xvY2stbmFtZXM6CisgICAgaXRlbXM6CisgICAgICAtIGNvbnN0OiBjb3JlCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSByZWcKKworZXhhbXBsZXM6CisgIC0gfAorICAgIHJuZ0BjODgzNDAwMCB7CisgICAgICAgICAgY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLXJuZyI7CisgICAgICAgICAgcmVnID0gPDB4Yzg4MzQwMDAgMHg0PjsKKyAgICB9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3JuZy9tdGstcm5nLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ybmcvbXRrLXJuZy50eHQKaW5kZXggMmJjODlmMS4uZGZkY2I1YyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3JuZy9tdGstcm5nLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvcm5nL210ay1ybmcudHh0CkBAIC02LDYgKzYsNyBAQAogCQkJIm1lZGlhdGVrLG10NzYyMi1ybmciLCAJIm1lZGlhdGVrLG10NzYyMy1ybmciIDogZm9yIE1UNzYyMgogCQkJIm1lZGlhdGVrLG10NzYyOS1ybmciLCAgIm1lZGlhdGVrLG10NzYyMy1ybmciIDogZm9yIE1UNzYyOQogCQkJIm1lZGlhdGVrLG10NzYyMy1ybmciIDogZm9yIE1UNzYyMworCQkJIm1lZGlhdGVrLG10ODUxNi1ybmciLCAibWVkaWF0ZWssbXQ3NjIzLXJuZyIgOiBmb3IgTVQ4NTE2CiAtIGNsb2NrcwkgICAgOiBsaXN0IG9mIGNsb2NrIHNwZWNpZmllcnMsIGNvcnJlc3BvbmRpbmcgdG8KIAkJICAgICAgZW50cmllcyBpbiBjbG9jay1uYW1lcyBwcm9wZXJ0eTsKIC0gY2xvY2stbmFtZXMJICAgIDogU2hvdWxkIGNvbnRhaW4gInJuZyIgZW50cmllczsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvYWxsd2lubmVyLHN1bjZpLWEzMS1ydGMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvYWxsd2lubmVyLHN1bjZpLWEzMS1ydGMueWFtbAppbmRleCA5MjQ2MjJmLi5kN2E1N2VjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL2FsbHdpbm5lcixzdW42aS1hMzEtcnRjLnlhbWwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9hbGx3aW5uZXIsc3VuNmktYTMxLXJ0Yy55YW1sCkBAIC0yNSw2ICsyNSw3IEBACiAgICAgICAtIGl0ZW1zOgogICAgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW41MGktYTY0LXJ0YwogICAgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW44aS1oMy1ydGMKKyAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW41MGktaDYtcnRjCiAKICAgcmVnOgogICAgIG1heEl0ZW1zOiAxCkBAIC05Niw2ICs5NywxOCBAQAogICAgICAgcHJvcGVydGllczoKICAgICAgICAgY29tcGF0aWJsZToKICAgICAgICAgICBjb250YWluczoKKyAgICAgICAgICAgIGNvbnN0OiBhbGx3aW5uZXIsc3VuNTBpLWg2LXJ0YworCisgICAgdGhlbjoKKyAgICAgIHByb3BlcnRpZXM6CisgICAgICAgIGNsb2NrLW91dHB1dC1uYW1lczoKKyAgICAgICAgICBtaW5JdGVtczogMworICAgICAgICAgIG1heEl0ZW1zOiAzCisKKyAgLSBpZjoKKyAgICAgIHByb3BlcnRpZXM6CisgICAgICAgIGNvbXBhdGlibGU6CisgICAgICAgICAgY29udGFpbnM6CiAgICAgICAgICAgICBjb25zdDogYWxsd2lubmVyLHN1bjhpLXI0MC1ydGMKIAogICAgIHRoZW46CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL254cCxydGMtMjEyMy50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL254cCxydGMtMjEyMy50eHQKaW5kZXggMTk5NGY2MC4uNzM3MWY1MiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9ueHAscnRjLTIxMjMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvbnhwLHJ0Yy0yMTIzLnR4dApAQCAtMSw3ICsxLDcgQEAKIE5YUCBQQ0YyMTIzIFNQSSBSZWFsIFRpbWUgQ2xvY2sKIAogUmVxdWlyZWQgcHJvcGVydGllczoKLS0gY29tcGF0aWJsZTogc2hvdWxkIGJlOiAibnhwLHJ0Yy1wY2YyMTIzIgorLSBjb21wYXRpYmxlOiBzaG91bGQgYmU6ICJueHAscGNmMjEyMyIKICAgICAgICAgICAgICAgICAgICAgICBvciAibWljcm9jcnlzdGFsLHJ2MjEyMyIKIC0gcmVnOiBzaG91bGQgYmUgdGhlIFNQSSBzbGF2ZSBjaGlwc2VsZWN0IGFkZHJlc3MKIApAQCAtMTEsNyArMTEsNyBAQAogRXhhbXBsZToKIAogcGNmMjEyMzogcnRjQDMgewotCWNvbXBhdGlibGUgPSAibnhwLHJ0Yy1wY2YyMTIzIgorCWNvbXBhdGlibGUgPSAibnhwLHBjZjIxMjMiCiAJcmVnID0gPDM+CiAJc3BpLWNzLWhpZ2g7CiB9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9wY2Y4NTYzLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvcGNmODU2My50eHQKaW5kZXggMzY5ODRhYy4uNjA3NmZlNyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9wY2Y4NTYzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL3BjZjg1NjMudHh0CkBAIC0zLDcgKzMsOSBAQAogUGhpbGlwcyBQQ0Y4NTYzL0Vwc29uIFJUQzg1NjQgUmVhbCBUaW1lIENsb2NrCiAKIFJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIGNvbXBhdGlibGU6IFNob3VsZCBjb250YWluICJueHAscGNmODU2MyIuCistIGNvbXBhdGlibGU6IFNob3VsZCBjb250YWluICJueHAscGNmODU2MyIsCisJImVwc29uLHJ0Yzg1NjQiIG9yCisJIm1pY3JvY3J5c3RhbCxydjg1NjQiCiAtIHJlZzogSTJDIGFkZHJlc3MgZm9yIGNoaXAuCiAKIE9wdGlvbmFsIHByb3BlcnR5OgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9ydGMtZHMxMzA3LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvcnRjLWRzMTMwNy50eHQKaW5kZXggZWFlZTE5Yi4uNjZmMGEzMSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9ydGMtZHMxMzA3LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL3J0Yy1kczEzMDcudHh0CkBAIC0xOSw2ICsxOSw3IEBACiAJInBlcmljb20scHQ3YzQzMzgiLAogCSJlcHNvbixyeDgwMjUiLAogCSJpc2lsLGlzbDEyMDU3IgorCSJlcHNvbixyeDgxMzAiCiAtIHJlZzogSTJDIGJ1cyBhZGRyZXNzIG9mIHRoZSBkZXZpY2UKIAogT3B0aW9uYWwgcHJvcGVydGllczoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvcnRjLWZzbC1mdG0tYWxhcm0udHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9ydGMtZnNsLWZ0bS1hbGFybS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZmYWM3NAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvcnRjLWZzbC1mdG0tYWxhcm0udHh0CkBAIC0wLDAgKzEsMzYgQEAKK0ZyZWVzY2FsZSBGbGV4VGltZXIgTW9kdWxlIChGVE0pIEFsYXJtCisKK1JlcXVpcmVkIHByb3BlcnRpZXM6CistIGNvbXBhdGlibGUgOiBTaG91bGQgYmUgImZzbCw8Y2hpcD4tZnRtLWFsYXJtIiwgdGhlCisJICAgICAgIHN1cHBvcnRlZCBjaGlwcyBpbmNsdWRlCisJICAgICAgICJmc2wsbHMxMDEyYS1mdG0tYWxhcm0iCisJICAgICAgICJmc2wsbHMxMDIxYS1mdG0tYWxhcm0iCisJICAgICAgICJmc2wsbHMxMDI4YS1mdG0tYWxhcm0iCisJICAgICAgICJmc2wsbHMxMDQzYS1mdG0tYWxhcm0iCisJICAgICAgICJmc2wsbHMxMDQ2YS1mdG0tYWxhcm0iCisJICAgICAgICJmc2wsbHMxMDg4YS1mdG0tYWxhcm0iCisJICAgICAgICJmc2wsbHMyMDh4YS1mdG0tYWxhcm0iCisJICAgICAgICJmc2wsbHgyMTYwYS1mdG0tYWxhcm0iCistIHJlZyA6IFNwZWNpZmllcyBiYXNlIHBoeXNpY2FsIGFkZHJlc3MgYW5kIHNpemUgb2YgdGhlIHJlZ2lzdGVyIHNldHMgZm9yIHRoZQorICBGbGV4VGltZXIgTW9kdWxlLgorLSBpbnRlcnJ1cHRzIDogU2hvdWxkIGJlIHRoZSBGbGV4VGltZXIgTW9kdWxlIGludGVycnVwdC4KKy0gZnNsLHJjcG0td2FrZXVwIHByb3BlcnR5IGFuZCByY3BtIG5vZGUgOiBQbGVhc2UgcmVmZXIKKwlEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc29jL2ZzbC9yY3BtLnR4dAorCitPcHRpb25hbCBwcm9wZXJ0aWVzOgorLSBiaWctZW5kaWFuOiBJZiB0aGUgaG9zdCBjb250cm9sbGVyIGlzIGJpZy1lbmRpYW4gbW9kZSwgc3BlY2lmeSB0aGlzIHByb3BlcnR5LgorICBUaGUgZGVmYXVsdCBlbmRpYW4gbW9kZSBpcyBsaXR0bGUtZW5kaWFuLgorCitFeGFtcGxlOgorcmNwbTogcmNwbUAxZTM0MDQwIHsKKwljb21wYXRpYmxlID0gImZzbCxsczEwODhhLXJjcG0iLCAiZnNsLHFvcmlxLXJjcG0tMi4xKyI7CisJcmVnID0gPDB4MCAweDFlMzQwNDAgMHgwIDB4MTg+OworCSNmc2wscmNwbS13YWtldXAtY2VsbHMgPSA8Nj47Cit9OworCitmdG1fYWxhcm0wOiB0aW1lckAyODAwMDAwIHsKKwljb21wYXRpYmxlID0gImZzbCxsczEwODhhLWZ0bS1hbGFybSI7CisJcmVnID0gPDB4MCAweDI4MDAwMDAgMHgwIDB4MTAwMDA+OworCWZzbCxyY3BtLXdha2V1cCA9IDwmcmNwbSAweDAgMHgwIDB4MCAweDAgMHg0MDAwIDB4MD47CisJaW50ZXJydXB0cyA9IDwwIDQ0IDQ+OworfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvcnRjLW1lc29uLXZydGMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9ydGMtbWVzb24tdnJ0Yy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAxNGY1NAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvcnRjLW1lc29uLXZydGMudHh0CkBAIC0wLDAgKzEsMjIgQEAKKyogQW1sb2dpYyBWaXJ0dWFsIFJUQyAoVlJUQykKKworVGhpcyBpcyBhIExpbnV4IGludGVyZmFjZSB0byBhbiBSVEMgbWFuYWdlZCBieSBmaXJtd2FyZSwgaGVuY2UgaXQncwordmlydHVhbCBmcm9tIGEgTGludXggcGVyc3BlY3RpdmUuICBUaGUgaW50ZXJmYWNlIGlzIDEgcmVnaXN0ZXIgd2hlcmUKK2FuIGFsYXJtIHRpbWUgKGluIHNlY29uZHMpIGlzIHRvIGJlIHdyaXR0ZW4uCisKK1JlcXVpcmVkIHByb3BlcnRpZXM6CistIGNvbXBhdGlibGU6IHNob3VsZCBiZSAiYW1sb2dpYyxtZXNvbi12cnRjIgorLSByZWc6IHBoeXNpY2FsIGFkZHJlc3MgZm9yIHRoZSBhbGFybSByZWdpc3RlcgorCitUaGUgYWxhcm0gcmVnaXN0ZXIgaXMgYSBzaW1wbGUgc2NyYXRjaCByZWdpc3RlciBzaGFyZWQgYmV0d2VlbiB0aGUKK2FwcGxpY2F0aW9uIHByb2Nlc3NvcnMgKEFQKSBhbmQgdGhlIHNlY3VyZSBjby1wcm9jZXNzb3IgKFNDUC4pICBXaGVuCit0aGUgQVAgc3VzcGVuZHMsIHRoZSBTQ1Agd2lsbCB1c2UgdGhlIHZhbHVlIG9mIHRoaXMgcmVnaXN0ZXIgdG8KK3Byb2dyYW0gYW4gYWx3YXlzLW9uIHRpbWVyIGJlZm9yZSBnb2luZyBzbGVlcC4gV2hlbiB0aGUgdGltZXIgZXhwaXJlcywKK3RoZSBTQ1Agd2lsbCB3YWtlIHVwIGFuZCB3aWxsIHRoZW4gd2FrZSB0aGUgQVAuCisKK0V4YW1wbGU6CisKKwl2cnRjOiBydGNAMGE4IHsKKwkJY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLXZydGMiOworCQlyZWcgPSA8MHgwIDB4MDAwYTggMHgwIDB4ND47CisJfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvdHJpdmlhbC1ydGMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvdHJpdmlhbC1ydGMueWFtbAppbmRleCAwYzEyY2U5Li4xOGNiNDU2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL3RyaXZpYWwtcnRjLnlhbWwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy90cml2aWFsLXJ0Yy55YW1sCkBAIC01Miw4ICs1Miw2IEBACiAgICAgICAtIG54cCxwY2YyMTI3CiAgICAgICAjIFJlYWwtdGltZSBjbG9jawogICAgICAgLSBueHAscGNmMjEyOQotICAgICAgIyBSZWFsLXRpbWUgY2xvY2svY2FsZW5kYXIKLSAgICAgIC0gbnhwLHBjZjg1NjMKICAgICAgICMgUmVhbC10aW1lIENsb2NrIE1vZHVsZQogICAgICAgLSBwZXJpY29tLHB0N2M0MzM4CiAgICAgICAjIEkyQyBidXMgU0VSSUFMIElOVEVSRkFDRSBSRUFMLVRJTUUgQ0xPQ0sgSUMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zZXJpYWwvYW1sb2dpYyxtZXNvbi11YXJ0LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zZXJpYWwvYW1sb2dpYyxtZXNvbi11YXJ0LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA2YzA0NS4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc2VyaWFsL2FtbG9naWMsbWVzb24tdWFydC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1BbWxvZ2ljIE1lc29uIFNvQyBVQVJUIFNlcmlhbCBJbnRlcmZhY2UKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1UaGUgQW1sb2dpYyBNZXNvbiBTb0MgVUFSVCBTZXJpYWwgSW50ZXJmYWNlIGlzIHByZXNlbnQgb24gYSBsYXJnZSByYW5nZQotb2YgU29DcywgYW5kIGNhbiBiZSBwcmVzZW50IGVpdGhlciBpbiB0aGUgIkFsd2F5cy1PbiIgcG93ZXIgZG9tYWluIG9yIHRoZQotIkV2ZXJ5dGhpbmctRWxzZSIgcG93ZXIgZG9tYWluLgotCi1UaGUgcGFydGljdWxhcml0eSBvZiB0aGUgIkFsd2F5cy1PbiIgU2VyaWFsIEludGVyZmFjZSBpcyB0aGF0IHRoZSBoYXJkd2FyZQotaXMgYWN0aXZlIHNpbmNlIHBvd2VyLW9uIGFuZCBkb2VzIG5vdCBuZWVkIGFueSBjbG9jayBnYXRpbmcgYW5kIGlzIHVzYWJsZQotYXMgdmVyeSBlYXJseSBzZXJpYWwgY29uc29sZS4KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLS0gY29tcGF0aWJsZSA6IGNvbXBhdGlibGU6IHZhbHVlIHNob3VsZCBiZSBkaWZmZXJlbnQgZm9yIGVhY2ggU29DIGZhbWlseSBhcyA6Ci0JLSBNZXNvbjYgOiAiYW1sb2dpYyxtZXNvbjYtdWFydCIKLQktIE1lc29uOCA6ICJhbWxvZ2ljLG1lc29uOC11YXJ0IgotCS0gTWVzb244YiA6ICJhbWxvZ2ljLG1lc29uOGItdWFydCIKLQktIEdYIChHWEJCLCBHWEwsIEdYTSkgOiAiYW1sb2dpYyxtZXNvbi1neC11YXJ0IgotCWV2ZW50dWFsbHkgZm9sbG93ZWQgYnkgOiAiYW1sb2dpYyxtZXNvbi1hby11YXJ0IiBpZiB0aGlzIFVBUlQgaW50ZXJmYWNlCi0JaXMgaW4gdGhlICJBbHdheXMtT24iIHBvd2VyIGRvbWFpbi4KLS0gcmVnIDogb2Zmc2V0IGFuZCBsZW5ndGggb2YgdGhlIHJlZ2lzdGVyIHNldCBmb3IgdGhlIGRldmljZS4KLS0gaW50ZXJydXB0cyA6IGlkZW50aWZpZXIgdG8gdGhlIGRldmljZSBpbnRlcnJ1cHQKLS0gY2xvY2tzIDogYSBsaXN0IG9mIHBoYW5kbGUgKyBjbG9jay1zcGVjaWZpZXIgcGFpcnMsIG9uZSBmb3IgZWFjaAotCSAgIGVudHJ5IGluIGNsb2NrIG5hbWVzLgotLSBjbG9jay1uYW1lcyA6Ci0gICAqICJ4dGFsIiBmb3IgZXh0ZXJuYWwgeHRhbCBjbG9jayBpZGVudGlmaWVyCi0gICAqICJwY2xrIiBmb3IgdGhlIGJ1cyBjb3JlIGNsb2NrLCBlaXRoZXIgdGhlIGNsazgxIGNsb2NrIG9yIHRoZSBnYXRlIGNsb2NrCi0gICAqICJiYXVkIiBmb3IgdGhlIHNvdXJjZSBvZiB0aGUgYmF1ZHJhdGUgZ2VuZXJhdG9yLCBjYW4gYmUgZWl0aGVyIHRoZSB4dGFsCi0Jb3IgdGhlIHBjbGsuCi0KLWUuZy4KLXVhcnRfQTogc2VyaWFsQDg0YzAgewotCWNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neC11YXJ0IjsKLQlyZWcgPSA8MHgwIDB4ODRjMCAweDAgMHgxND47Ci0JaW50ZXJydXB0cyA9IDxHSUNfU1BJIDI2IElSUV9UWVBFX0VER0VfUklTSU5HPjsKLQkvKiBVc2UgeHRhbCBhcyBiYXVkIHJhdGUgY2xvY2sgc291cmNlICovCi0JY2xvY2tzID0gPCZ4dGFsPiwgPCZjbGtjIENMS0lEX1VBUlQwPiwgPCZ4dGFsPjsKLQljbG9jay1uYW1lcyA9ICJ4dGFsIiwgInBjbGsiLCAiYmF1ZCI7Ci19OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NlcmlhbC9hbWxvZ2ljLG1lc29uLXVhcnQueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zZXJpYWwvYW1sb2dpYyxtZXNvbi11YXJ0LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE0ZmU4YgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zZXJpYWwvYW1sb2dpYyxtZXNvbi11YXJ0LnlhbWwKQEAgLTAsMCArMSw3MyBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAgT1IgQlNELTItQ2xhdXNlKQorIyBDb3B5cmlnaHQgMjAxOSBCYXlMaWJyZSwgU0FTCislWUFNTCAxLjIKKy0tLQorJGlkOiAiaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvc2VyaWFsL2FtbG9naWMsbWVzb24tdWFydC55YW1sIyIKKyRzY2hlbWE6ICJodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMiCisKK3RpdGxlOiBBbWxvZ2ljIE1lc29uIFNvQyBVQVJUIFNlcmlhbCBJbnRlcmZhY2UKKworbWFpbnRhaW5lcnM6CisgIC0gTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgorCitkZXNjcmlwdGlvbjogfAorICBUaGUgQW1sb2dpYyBNZXNvbiBTb0MgVUFSVCBTZXJpYWwgSW50ZXJmYWNlIGlzIHByZXNlbnQgb24gYSBsYXJnZSByYW5nZQorICBvZiBTb0NzLCBhbmQgY2FuIGJlIHByZXNlbnQgZWl0aGVyIGluIHRoZSAiQWx3YXlzLU9uIiBwb3dlciBkb21haW4gb3IgdGhlCisgICJFdmVyeXRoaW5nLUVsc2UiIHBvd2VyIGRvbWFpbi4KKworICBUaGUgcGFydGljdWxhcml0eSBvZiB0aGUgIkFsd2F5cy1PbiIgU2VyaWFsIEludGVyZmFjZSBpcyB0aGF0IHRoZSBoYXJkd2FyZQorICBpcyBhY3RpdmUgc2luY2UgcG93ZXItb24gYW5kIGRvZXMgbm90IG5lZWQgYW55IGNsb2NrIGdhdGluZyBhbmQgaXMgdXNhYmxlCisgIGFzIHZlcnkgZWFybHkgc2VyaWFsIGNvbnNvbGUuCisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgb25lT2Y6CisgICAgICAtIGRlc2NyaXB0aW9uOiBBbHdheXMtb24gcG93ZXIgZG9tYWluIFVBUlQgY29udHJvbGxlcgorICAgICAgICBpdGVtczoKKyAgICAgICAgLSBlbnVtOgorICAgICAgICAgIC0gYW1sb2dpYyxtZXNvbjYtdWFydAorICAgICAgICAgIC0gYW1sb2dpYyxtZXNvbjgtdWFydAorICAgICAgICAgIC0gYW1sb2dpYyxtZXNvbjhiLXVhcnQKKyAgICAgICAgICAtIGFtbG9naWMsbWVzb24tZ3gtdWFydAorICAgICAgICAtIGNvbnN0OiBhbWxvZ2ljLG1lc29uLWFvLXVhcnQKKyAgICAgIC0gZGVzY3JpcHRpb246IEV2ZXJ5dGhpbmctRWxzZSBwb3dlciBkb21haW4gVUFSVCBjb250cm9sbGVyCisgICAgICAgIGVudW06CisgICAgICAgIC0gYW1sb2dpYyxtZXNvbjYtdWFydAorICAgICAgICAtIGFtbG9naWMsbWVzb244LXVhcnQKKyAgICAgICAgLSBhbWxvZ2ljLG1lc29uOGItdWFydAorICAgICAgICAtIGFtbG9naWMsbWVzb24tZ3gtdWFydAorCisgIHJlZzoKKyAgICBtYXhJdGVtczogMQorCisgIGludGVycnVwdHM6CisgICAgbWF4SXRlbXM6IDEKKworICBjbG9ja3M6CisgICAgaXRlbXM6CisgICAgICAtIGRlc2NyaXB0aW9uOiBleHRlcm5hbCB4dGFsIGNsb2NrIGlkZW50aWZpZXIKKyAgICAgIC0gZGVzY3JpcHRpb246IHRoZSBidXMgY29yZSBjbG9jaywgZWl0aGVyIHRoZSBjbGs4MSBjbG9jayBvciB0aGUgZ2F0ZSBjbG9jaworICAgICAgLSBkZXNjcmlwdGlvbjogdGhlIHNvdXJjZSBvZiB0aGUgYmF1ZHJhdGUgZ2VuZXJhdG9yLCBjYW4gYmUgZWl0aGVyIHRoZSB4dGFsIG9yIHRoZSBwY2xrCisKKyAgY2xvY2stbmFtZXM6CisgICAgaXRlbXM6CisgICAgICAtIGNvbnN0OiB4dGFsCisgICAgICAtIGNvbnN0OiBwY2xrCisgICAgICAtIGNvbnN0OiBiYXVkCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSByZWcKKyAgLSBpbnRlcnJ1cHRzCisgIC0gY2xvY2tzCisgIC0gY2xvY2stbmFtZXMKKworZXhhbXBsZXM6CisgIC0gfAorICAgIHNlcmlhbEA4NGMwIHsKKyAgICAgICAgICBjb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZ3gtdWFydCI7CisgICAgICAgICAgcmVnID0gPDB4ODRjMCAweDE0PjsKKyAgICAgICAgICBpbnRlcnJ1cHRzID0gPDI2PjsKKyAgICAgICAgICBjbG9ja3MgPSA8Jnh0YWw+LCA8JnBjbGs+LCA8Jnh0YWw+OworICAgICAgICAgIGNsb2NrLW5hbWVzID0gInh0YWwiLCAicGNsayIsICJiYXVkIjsKKyAgICB9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvdW5kd2lyZS9zb3VuZHdpcmUtY29udHJvbGxlci55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvdW5kd2lyZS9zb3VuZHdpcmUtY29udHJvbGxlci55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiNDM5OTMKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291bmR3aXJlL3NvdW5kd2lyZS1jb250cm9sbGVyLnlhbWwKQEAgLTAsMCArMSw4MiBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCislWUFNTCAxLjIKKy0tLQorJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9zb3VuZHdpcmUvc291bmR3aXJlLWNvbnRyb2xsZXIueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogU291bmRXaXJlIENvbnRyb2xsZXIgR2VuZXJpYyBCaW5kaW5nCisKK21haW50YWluZXJzOgorICAtIFNyaW5pdmFzIEthbmRhZ2F0bGEgPHNyaW5pdmFzLmthbmRhZ2F0bGFAbGluYXJvLm9yZz4KKyAgLSBWaW5vZCBLb3VsIDx2a291bEBrZXJuZWwub3JnPgorCitkZXNjcmlwdGlvbjogfAorICBTb3VuZFdpcmUgYnVzc2VzIGNhbiBiZSBkZXNjcmliZWQgd2l0aCBhIG5vZGUgZm9yIHRoZSBTb3VuZFdpcmUgY29udHJvbGxlcgorICBkZXZpY2UgYW5kIGEgc2V0IG9mIGNoaWxkIG5vZGVzIGZvciBlYWNoIFNvdW5kV2lyZSBzbGF2ZSBvbiB0aGUgYnVzLgorCitwcm9wZXJ0aWVzOgorICAkbm9kZW5hbWU6CisgICAgcGF0dGVybjogIl5zb3VuZHdpcmUoQC4qKT8kIgorCisgICIjYWRkcmVzcy1jZWxscyI6CisgICAgY29uc3Q6IDIKKworICAiI3NpemUtY2VsbHMiOgorICAgIGNvbnN0OiAwCisKK3BhdHRlcm5Qcm9wZXJ0aWVzOgorICAiXi4qQFswLTlhLWZdLFswLTlhLWZdJCI6CisgICAgdHlwZTogb2JqZWN0CisKKyAgICBwcm9wZXJ0aWVzOgorICAgICAgY29tcGF0aWJsZToKKyAgICAgICAgcGF0dGVybjogIl5zZHdbMC05YS1mXXsxfVswLTlhLWZdezR9WzAtOWEtZl17NH1bMC05YS1mXXsyfSQiCisgICAgICAgIGRlc2NyaXB0aW9uOiBJcyB0aGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiBTb3VuZFdpcmUgRW51bWVyYXRpb24KKyAgICAgICAgICBhZGRyZXNzLiBjb21wYXRpYmxlIHN0cmluZyBzaG91bGQgY29udGFpbiBTb3VuZFdpcmUgVmVyc2lvbiBJRCwKKyAgICAgICAgICBNYW51ZmFjdHVyZXIgSUQsIFBhcnQgSUQgYW5kIENsYXNzIElEIGluIG9yZGVyIGFuZCBzaGFsbCBiZSBpbgorICAgICAgICAgIGxvd2VyLWNhc2UgaGV4YWRlY2ltYWwgd2l0aCBsZWFkaW5nIHplcm9lcy4KKyAgICAgICAgICBWYWxpZCBzaXplcyBvZiB0aGVzZSBmaWVsZHMgYXJlCisgICAgICAgICAgVmVyc2lvbiBJRCBpcyAxIG5pYmJsZSwgbnVtYmVyICcweDEnIHJlcHJlc2VudHMgU291bmRXaXJlIDEuMAorICAgICAgICAgIGFuZCAnMHgyJyByZXByZXNlbnRzIFNvdW5kV2lyZSAxLjEgYW5kIHNvIG9uLgorICAgICAgICAgIE1GRCBpcyA0IG5pYmJsZXMKKyAgICAgICAgICBQSUQgaXMgNCBuaWJibGVzCisgICAgICAgICAgQ0lEIGlzIDIgbmliYmxlcworICAgICAgICAgIE1vcmUgSW5mb3JtYXRpb24gb24gZGV0YWlsIG9mIGVuY29kaW5nIG9mIHRoZXNlIGZpZWxkcyBjYW4gYmUKKyAgICAgICAgICBmb3VuZCBpbiBNSVBJIEFsbGlhbmNlIERpc0NvICYgU291bmRXaXJlIDEuMCBTcGVjaWZpY2F0aW9ucy4KKworICAgICAgcmVnOgorICAgICAgICBtYXhJdGVtczogMQorICAgICAgICBkZXNjcmlwdGlvbjoKKyAgICAgICAgICBMaW5rIElEIGZvbGxvd2VkIGJ5IEluc3RhbmNlIElEIG9mIFNvdW5kV2lyZSBEZXZpY2UgQWRkcmVzcy4KKworICAgIHJlcXVpcmVkOgorICAgICAgLSBjb21wYXRpYmxlCisgICAgICAtIHJlZworCityZXF1aXJlZDoKKyAgLSAiI2FkZHJlc3MtY2VsbHMiCisgIC0gIiNzaXplLWNlbGxzIgorCitleGFtcGxlczoKKyAgLSB8CisgICAgc291bmR3aXJlQGMyZDAwMDAgeworICAgICAgICAjYWRkcmVzcy1jZWxscyA9IDwyPjsKKyAgICAgICAgI3NpemUtY2VsbHMgPSA8MD47CisgICAgICAgIHJlZyA9IDwweDBjMmQwMDAwIDB4MjAwMD47CisKKyAgICAgICAgc3BlYWtlckAwLDEgeworICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJzZHcxMDIxNzIwMTAwMCI7CisgICAgICAgICAgICByZWcgPSA8MCAxPjsKKyAgICAgICAgICAgIHBvd2VyZG93bi1ncGlvcyA9IDwmd2NkcGluY3RybCAyIDA+OworICAgICAgICAgICAgI3RoZXJtYWwtc2Vuc29yLWNlbGxzID0gPDA+OworICAgICAgICB9OworCisgICAgICAgIHNwZWFrZXJAMCwyIHsKKyAgICAgICAgICAgIGNvbXBhdGlibGUgPSAic2R3MTAyMTcyMDEwMDAiOworICAgICAgICAgICAgcmVnID0gPDAgMj47CisgICAgICAgICAgICBwb3dlcmRvd24tZ3Bpb3MgPSA8JndjZHBpbmN0cmwgMiAwPjsKKyAgICAgICAgICAgICN0aGVybWFsLXNlbnNvci1jZWxscyA9IDwwPjsKKyAgICAgICAgfTsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zcGkvYW1sb2dpYyxtZXNvbi1neC1zcGljYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NwaS9hbWxvZ2ljLG1lc29uLWd4LXNwaWNjLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDliNjE3YwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zcGkvYW1sb2dpYyxtZXNvbi1neC1zcGljYy55YW1sCkBAIC0wLDAgKzEsNjcgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wIE9SIEJTRC0yLUNsYXVzZSkKKyMgQ29weXJpZ2h0IDIwMTkgQmF5TGlicmUsIFNBUworJVlBTUwgMS4yCistLS0KKyRpZDogImh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3NwaS9hbWxvZ2ljLG1lc29uLWd4LXNwaWNjLnlhbWwjIgorJHNjaGVtYTogImh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIyIKKwordGl0bGU6IEFtbG9naWMgTWVzb24gU1BJIENvbW11bmljYXRpb24gQ29udHJvbGxlcgorCittYWludGFpbmVyczoKKyAgLSBOZWlsIEFybXN0cm9uZyA8bmFybXN0cm9uZ0BiYXlsaWJyZS5jb20+CisKK2FsbE9mOgorICAtICRyZWY6ICJzcGktY29udHJvbGxlci55YW1sIyIKKworZGVzY3JpcHRpb246IHwKKyAgVGhlIE1lc29uIFNQSUNDIGlzIGEgZ2VuZXJpYyBTUEkgY29udHJvbGxlciBmb3IgZ2VuZXJhbCBwdXJwb3NlIEZ1bGwtRHVwbGV4CisgIGNvbW11bmljYXRpb25zIHdpdGggZGVkaWNhdGVkIDE2IHdvcmRzIFJYL1RYIFBJTyBGSUZPcy4KKworcHJvcGVydGllczoKKyAgY29tcGF0aWJsZToKKyAgICBlbnVtOgorICAgICAgLSBhbWxvZ2ljLG1lc29uLWd4LXNwaWNjICMgU1BJQ0MgY29udHJvbGxlciBvbiBBbWxvZ2ljIEdYIGFuZCBjb21wYXRpYmxlIFNvQ3MKKyAgICAgIC0gYW1sb2dpYyxtZXNvbi1heGctc3BpY2MgIyBTUElDQyBjb250cm9sbGVyIG9uIEFtbG9naWMgQVhHIGFuZCBjb21wYXRpYmxlIFNvQ3MKKworICBpbnRlcnJ1cHRzOgorICAgIG1heEl0ZW1zOiAxCisKKyAgcmVnOgorICAgIG1heEl0ZW1zOiAxCisKKyAgcmVzZXRzOgorICAgIG1heEl0ZW1zOiAxCisKKyAgY2xvY2tzOgorICAgIG1heEl0ZW1zOiAxCisKKyAgY2xvY2stbmFtZXM6CisgICAgZGVzY3JpcHRpb246IGlucHV0IGNsb2NrIGZvciB0aGUgYmF1ZCByYXRlIGdlbmVyYXRvcgorICAgIGl0ZW1zOgorICAgICAgLSBjb25zdDogY29yZQorCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisgIC0gcmVnCisgIC0gaW50ZXJydXB0cworICAtIGNsb2NrcworICAtIGNsb2NrLW5hbWVzCisKK2V4YW1wbGVzOgorICAtIHwKKyAgICBzcGlAYzExMDhkODAgeworICAgICAgICAgIGNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neC1zcGljYyI7CisgICAgICAgICAgcmVnID0gPDB4YzExMDhkODAgMHg4MD47CisgICAgICAgICAgaW50ZXJydXB0cyA9IDwxMTI+OworICAgICAgICAgIGNsb2NrcyA9IDwmY2xrODE+OworICAgICAgICAgIGNsb2NrLW5hbWVzID0gImNvcmUiOworICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gPDE+OworICAgICAgICAgICNzaXplLWNlbGxzID0gPDA+OworCisgICAgICAgICAgZXRoZXJuZXQtc3dpdGNoQDAgeworICAgICAgICAgICAgICBjb21wYXRpYmxlID0gIm1pY3JlbCxrczg5OTVtIjsKKyAgICAgICAgICAgICAgc3BpLW1heC1mcmVxdWVuY3kgPSA8MTAwMDAwMD47CisgICAgICAgICAgICAgIHJlZyA9IDwwPjsKKyAgICAgICAgICB9OworICAgIH07CisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zcGkvYW1sb2dpYyxtZXNvbjYtc3BpZmMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zcGkvYW1sb2dpYyxtZXNvbjYtc3BpZmMueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjMzYzM5Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NwaS9hbWxvZ2ljLG1lc29uNi1zcGlmYy55YW1sCkBAIC0wLDAgKzEsNTMgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wIE9SIEJTRC0yLUNsYXVzZSkKKyMgQ29weXJpZ2h0IDIwMTkgQmF5TGlicmUsIFNBUworJVlBTUwgMS4yCistLS0KKyRpZDogImh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3NwaS9hbWxvZ2ljLG1lc29uNi1zcGlmYy55YW1sIyIKKyRzY2hlbWE6ICJodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMiCisKK3RpdGxlOiBBbWxvZ2ljIE1lc29uIFNQSSBGbGFzaCBDb250cm9sbGVyCisKK21haW50YWluZXJzOgorICAtIE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT4KKworYWxsT2Y6CisgIC0gJHJlZjogInNwaS1jb250cm9sbGVyLnlhbWwjIgorCitkZXNjcmlwdGlvbjogfAorICBUaGUgTWVzb24gU1BJRkMgaXMgYSBjb250cm9sbGVyIG9wdGltaXplZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIFNQSQorICBOT1IgbWVtb3JpZXMsIHdpdGhvdXQgRE1BIHN1cHBvcnQgYW5kIGEgNjQtYnl0ZSB1bmlmaWVkIHRyYW5zbWl0IC8KKyAgcmVjZWl2ZSBidWZmZXIuCisKK3Byb3BlcnRpZXM6CisgIGNvbXBhdGlibGU6CisgICAgZW51bToKKyAgICAgIC0gYW1sb2dpYyxtZXNvbjYtc3BpZmMgIyBTUEkgRmxhc2ggQ29udHJvbGxlciBvbiBNZXNvbjYgYW5kIGNvbXBhdGlibGUgU29DcworICAgICAgLSBhbWxvZ2ljLG1lc29uLWd4YmItc3BpZmMgIyBTUEkgRmxhc2ggQ29udHJvbGxlciBvbiBHWEJCIGFuZCBjb21wYXRpYmxlIFNvQ3MKKworICByZWc6CisgICAgbWF4SXRlbXM6IDEKKworICBjbG9ja3M6CisgICAgbWF4SXRlbXM6IDEKKworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtIGNsb2NrcworCitleGFtcGxlczoKKyAgLSB8CisgICAgc3BpQGMxMTA4YzgwIHsKKyAgICAgICAgICBjb21wYXRpYmxlID0gImFtbG9naWMsbWVzb242LXNwaWZjIjsKKyAgICAgICAgICByZWcgPSA8MHhjMTEwOGM4MCAweDgwPjsKKyAgICAgICAgICBjbG9ja3MgPSA8JmNsazgxPjsKKyAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IDwxPjsKKyAgICAgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKKworICAgICAgICAgIGZsYXNoOiBmbGFzaEAwIHsKKyAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJzcGFuc2lvbixtMjVwODAiLCAiamVkZWMsc3BpLW5vciI7CisgICAgICAgICAgICAgIHJlZyA9IDwwPjsKKyAgICAgICAgICAgICAgc3BpLW1heC1mcmVxdWVuY3kgPSA8NDAwMDAwMDA+OworICAgICAgICAgIH07CisgICAgfTsKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NwaS9zcGktbWVzb24udHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NwaS9zcGktbWVzb24udHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2Y1ZTg2Li4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zcGkvc3BpLW1lc29uLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLUFtbG9naWMgTWVzb24gU1BJIGNvbnRyb2xsZXJzCi0KLSogU1BJRkMgKFNQSSBGbGFzaCBDb250cm9sbGVyKQotCi1UaGUgTWVzb24gU1BJRkMgaXMgYSBjb250cm9sbGVyIG9wdGltaXplZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIFNQSQotTk9SIG1lbW9yaWVzLCB3aXRob3V0IERNQSBzdXBwb3J0IGFuZCBhIDY0LWJ5dGUgdW5pZmllZCB0cmFuc21pdCAvCi1yZWNlaXZlIGJ1ZmZlci4KLQotUmVxdWlyZWQgcHJvcGVydGllczoKLSAtIGNvbXBhdGlibGU6IHNob3VsZCBiZSAiYW1sb2dpYyxtZXNvbjYtc3BpZmMiIG9yICJhbWxvZ2ljLG1lc29uLWd4YmItc3BpZmMiCi0gLSByZWc6IHBoeXNpY2FsIGJhc2UgYWRkcmVzcyBhbmQgbGVuZ3RoIG9mIHRoZSBjb250cm9sbGVyIHJlZ2lzdGVycwotIC0gY2xvY2tzOiBwaGFuZGxlIG9mIHRoZSBpbnB1dCBjbG9jayBmb3IgdGhlIGJhdWQgcmF0ZSBnZW5lcmF0b3IKLSAtICNhZGRyZXNzLWNlbGxzOiBzaG91bGQgYmUgMQotIC0gI3NpemUtY2VsbHM6IHNob3VsZCBiZSAwCi0KLQlzcGlAYzExMDhjODAgewotCQljb21wYXRpYmxlID0gImFtbG9naWMsbWVzb242LXNwaWZjIjsKLQkJcmVnID0gPDB4YzExMDhjODAgMHg4MD47Ci0JCWNsb2NrcyA9IDwmY2xrODE+OwotCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJI3NpemUtY2VsbHMgPSA8MD47Ci0JfTsKLQotKiBTUElDQyAoU1BJIENvbW11bmljYXRpb24gQ29udHJvbGxlcikKLQotVGhlIE1lc29uIFNQSUNDIGlzIGdlbmVyaWMgU1BJIGNvbnRyb2xsZXIgZm9yIGdlbmVyYWwgcHVycG9zZSBGdWxsLUR1cGxleAotY29tbXVuaWNhdGlvbnMgd2l0aCBkZWRpY2F0ZWQgMTYgd29yZHMgUlgvVFggUElPIEZJRk9zLgotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotIC0gY29tcGF0aWJsZTogc2hvdWxkIGJlOgotCSJhbWxvZ2ljLG1lc29uLWd4LXNwaWNjIiBvbiBBbWxvZ2ljIEdYIGFuZCBjb21wYXRpYmxlIFNvQ3MuCi0JImFtbG9naWMsbWVzb24tYXhnLXNwaWNjIiBvbiBBbWxvZ2ljIEFYRyBhbmQgY29tcGF0aWJsZSBTb0NzCi0gLSByZWc6IHBoeXNpY2FsIGJhc2UgYWRkcmVzcyBhbmQgbGVuZ3RoIG9mIHRoZSBjb250cm9sbGVyIHJlZ2lzdGVycwotIC0gaW50ZXJydXB0czogVGhlIGludGVycnVwdCBzcGVjaWZpZXIKLSAtIGNsb2NrLW5hbWVzOiBNdXN0IGNvbnRhaW4gImNvcmUiCi0gLSBjbG9ja3M6IHBoYW5kbGUgb2YgdGhlIGlucHV0IGNsb2NrIGZvciB0aGUgYmF1ZCByYXRlIGdlbmVyYXRvcgotIC0gI2FkZHJlc3MtY2VsbHM6IHNob3VsZCBiZSAxCi0gLSAjc2l6ZS1jZWxsczogc2hvdWxkIGJlIDAKLQotT3B0aW9uYWwgcHJvcGVydGllczoKLSAtIHJlc2V0czogcGhhbmRsZSBvZiB0aGUgaW50ZXJuYWwgcmVzZXQgbGluZQotCi1TZWUgLi4vc3BpL3NwaS1idXMudHh0IGZvciBtb3JlIGRldGFpbHMgb24gU1BJIGJ1cyBtYXN0ZXIgYW5kIHNsYXZlIGRldmljZXMKLXJlcXVpcmVkIGFuZCBvcHRpb25hbCBwcm9wZXJ0aWVzLgotCi1FeGFtcGxlIDoKLQlzcGlAYzExMDhkODAgewotCQljb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZ3gtc3BpY2MiOwotCQlyZWcgPSA8MHhjMTEwOGQ4MCAweDgwPjsKLQkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDExMiBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKLQkJY2xvY2stbmFtZXMgPSAiY29yZSI7Ci0JCWNsb2NrcyA9IDwmY2xrODE+OwotCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJI3NpemUtY2VsbHMgPSA8MD47Ci0JfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90aGVybWFsL3FvcmlxLXRoZXJtYWwudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RoZXJtYWwvcW9yaXEtdGhlcm1hbC50eHQKaW5kZXggMDRjYmI5MC4uMjhmMmNiYSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RoZXJtYWwvcW9yaXEtdGhlcm1hbC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RoZXJtYWwvcW9yaXEtdGhlcm1hbC50eHQKQEAgLTIzLDYgKzIzLDcgQEAKIE9wdGlvbmFsIHByb3BlcnR5OgogLSBsaXR0bGUtZW5kaWFuIDogSWYgcHJlc2VudCwgdGhlIFRNVSByZWdpc3RlcnMgYXJlIGxpdHRsZSBlbmRpYW4uIElmIGFic2VudCwKIAl0aGUgZGVmYXVsdCBpcyBiaWcgZW5kaWFuLgorLSBjbG9ja3MgOiB0aGUgY2xvY2sgZm9yIGNsb2NraW5nIHRoZSBUTVUgc2lsaWNvbi4KIAogRXhhbXBsZToKIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RpbWVyL2luZ2VuaWMsdGN1LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90aW1lci9pbmdlbmljLHRjdS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE0YjlkZAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90aW1lci9pbmdlbmljLHRjdS50eHQKQEAgLTAsMCArMSwxMzcgQEAKK0luZ2VuaWMgSlo0N3h4IFNvQ3MgVGltZXIvQ291bnRlciBVbml0IGRldmljZXRyZWUgYmluZGluZ3MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIFRDVSBoYXJkd2FyZSBhbmQgZHJpdmVycywgaGF2ZSBhIGxvb2sgYXQKK0RvY3VtZW50YXRpb24vbWlwcy9pbmdlbmljLXRjdS50eHQuCisKK1JlcXVpcmVkIHByb3BlcnRpZXM6CisKKy0gY29tcGF0aWJsZTogTXVzdCBiZSBvbmUgb2Y6CisgICogaW5nZW5pYyxqejQ3NDAtdGN1CisgICogaW5nZW5pYyxqejQ3MjViLXRjdQorICAqIGluZ2VuaWMsano0NzcwLXRjdQorICBmb2xsb3dlZCBieSAic2ltcGxlLW1mZCIuCistIHJlZzogU2hvdWxkIGJlIHRoZSBvZmZzZXQvbGVuZ3RoIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIFRDVSByZWdpc3RlcnMKKy0gY2xvY2tzOiBMaXN0IG9mIHBoYW5kbGUgJiBjbG9jayBzcGVjaWZpZXJzIGZvciBjbG9ja3MgZXh0ZXJuYWwgdG8gdGhlIFRDVS4KKyAgVGhlICJwY2xrIiwgInJ0YyIgYW5kICJleHQiIGNsb2NrcyBzaG91bGQgYmUgcHJvdmlkZWQuIFRoZSAidGN1IiBjbG9jaworICBzaG91bGQgYmUgcHJvdmlkZWQgaWYgdGhlIFNvQyBoYXMgaXQuCistIGNsb2NrLW5hbWVzOiBMaXN0IG9mIG5hbWUgc3RyaW5ncyBmb3IgdGhlIGV4dGVybmFsIGNsb2Nrcy4KKy0gI2Nsb2NrLWNlbGxzOiBTaG91bGQgYmUgPDE+OworICBDbG9jayBjb25zdW1lcnMgc3BlY2lmeSB0aGlzIGFyZ3VtZW50IHRvIGlkZW50aWZ5IGEgY2xvY2suIFRoZSB2YWxpZCB2YWx1ZXMKKyAgbWF5IGJlIGZvdW5kIGluIDxkdC1iaW5kaW5ncy9jbG9jay9pbmdlbmljLHRjdS5oPi4KKy0gaW50ZXJydXB0LWNvbnRyb2xsZXIgOiBJZGVudGlmaWVzIHRoZSBub2RlIGFzIGFuIGludGVycnVwdCBjb250cm9sbGVyCistICNpbnRlcnJ1cHQtY2VsbHMgOiBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBjZWxscyBuZWVkZWQgdG8gZW5jb2RlIGFuCisgIGludGVycnVwdCBzb3VyY2UuIFRoZSB2YWx1ZSBzaG91bGQgYmUgMS4KKy0gaW50ZXJydXB0cyA6IFNwZWNpZmllcyB0aGUgaW50ZXJydXB0IHRoZSBjb250cm9sbGVyIGlzIGNvbm5lY3RlZCB0by4KKworT3B0aW9uYWwgcHJvcGVydGllczoKKworLSBpbmdlbmljLHB3bS1jaGFubmVscy1tYXNrOiBCaXRtYXNrIG9mIFRDVSBjaGFubmVscyByZXNlcnZlZCBmb3IgUFdNIHVzZS4KKyAgRGVmYXVsdCB2YWx1ZSBpcyAweGZjLgorCisKK0NoaWxkcmVuIG5vZGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKworUFdNIG5vZGU6CistLS0tLS0tLS0KKworUmVxdWlyZWQgcHJvcGVydGllczoKKworLSBjb21wYXRpYmxlOiBNdXN0IGJlIG9uZSBvZjoKKyAgKiBpbmdlbmljLGp6NDc0MC1wd20KKyAgKiBpbmdlbmljLGp6NDcyNWItcHdtCistICNwd20tY2VsbHM6IFNob3VsZCBiZSAzLiBTZWUgLi4vcHdtL3B3bS50eHQgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGNlbGwKKyAgZm9ybWF0LgorLSBjbG9ja3M6IExpc3Qgb2YgcGhhbmRsZSAmIGNsb2NrIHNwZWNpZmllcnMgZm9yIHRoZSBUQ1UgY2xvY2tzLgorLSBjbG9jay1uYW1lczogTGlzdCBvZiBuYW1lIHN0cmluZ3MgZm9yIHRoZSBUQ1UgY2xvY2tzLgorCisKK1dhdGNoZG9nIG5vZGU6CistLS0tLS0tLS0tLS0tLQorCitSZXF1aXJlZCBwcm9wZXJ0aWVzOgorCistIGNvbXBhdGlibGU6IE11c3QgYmUgImluZ2VuaWMsano0NzQwLXdhdGNoZG9nIgorLSBjbG9ja3M6IHBoYW5kbGUgdG8gdGhlIFdEVCBjbG9jaworLSBjbG9jay1uYW1lczogc2hvdWxkIGJlICJ3ZHQiCisKKworT1MgVGltZXIgbm9kZToKKy0tLS0tLS0tLQorCitSZXF1aXJlZCBwcm9wZXJ0aWVzOgorCistIGNvbXBhdGlibGU6IE11c3QgYmUgb25lIG9mOgorICAqIGluZ2VuaWMsano0NzI1Yi1vc3QKKyAgKiBpbmdlbmljLGp6NDc3MC1vc3QKKy0gY2xvY2tzOiBwaGFuZGxlIHRvIHRoZSBPU1QgY2xvY2sKKy0gY2xvY2stbmFtZXM6IHNob3VsZCBiZSAib3N0IgorLSBpbnRlcnJ1cHRzIDogU3BlY2lmaWVzIHRoZSBpbnRlcnJ1cHQgdGhlIE9TVCBpcyBjb25uZWN0ZWQgdG8uCisKKworRXhhbXBsZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svano0NzcwLWNndS5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL2luZ2VuaWMsdGN1Lmg+CisKKy8geworCXRjdTogdGltZXJAMTAwMDIwMDAgeworCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzcwLXRjdSIsICJzaW1wbGUtbWZkIjsKKwkJcmVnID0gPDB4MTAwMDIwMDAgMHgxMDAwPjsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDE+OworCQlyYW5nZXMgPSA8MHgwIDB4MTAwMDIwMDAgMHgxMDAwPjsKKworCQkjY2xvY2stY2VsbHMgPSA8MT47CisKKwkJY2xvY2tzID0gPCZjZ3UgSlo0NzcwX0NMS19SVEMKKwkJCSAgJmNndSBKWjQ3NzBfQ0xLX0VYVAorCQkJICAmY2d1IEpaNDc3MF9DTEtfUENMSz47CisJCWNsb2NrLW5hbWVzID0gInJ0YyIsICJleHQiLCAicGNsayI7CisKKwkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CisJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8MT47CisKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmaW50Yz47CisJCWludGVycnVwdHMgPSA8MjcgMjYgMjU+OworCisJCXdhdGNoZG9nOiB3YXRjaGRvZ0AwIHsKKwkJCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtd2F0Y2hkb2ciOworCQkJcmVnID0gPDB4MCAweGM+OworCisJCQljbG9ja3MgPSA8JnRjdSBUQ1VfQ0xLX1dEVD47CisJCQljbG9jay1uYW1lcyA9ICJ3ZHQiOworCQl9OworCisJCXB3bTogcHdtQDQwIHsKKwkJCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtcHdtIjsKKwkJCXJlZyA9IDwweDQwIDB4ODA+OworCisJCQkjcHdtLWNlbGxzID0gPDM+OworCisJCQljbG9ja3MgPSA8JnRjdSBUQ1VfQ0xLX1RJTUVSMAorCQkJCSAgJnRjdSBUQ1VfQ0xLX1RJTUVSMQorCQkJCSAgJnRjdSBUQ1VfQ0xLX1RJTUVSMgorCQkJCSAgJnRjdSBUQ1VfQ0xLX1RJTUVSMworCQkJCSAgJnRjdSBUQ1VfQ0xLX1RJTUVSNAorCQkJCSAgJnRjdSBUQ1VfQ0xLX1RJTUVSNQorCQkJCSAgJnRjdSBUQ1VfQ0xLX1RJTUVSNgorCQkJCSAgJnRjdSBUQ1VfQ0xLX1RJTUVSNz47CisJCQljbG9jay1uYW1lcyA9ICJ0aW1lcjAiLCAidGltZXIxIiwgInRpbWVyMiIsICJ0aW1lcjMiLAorCQkJCSAgICAgICJ0aW1lcjQiLCAidGltZXI1IiwgInRpbWVyNiIsICJ0aW1lcjciOworCQl9OworCisJCW9zdDogdGltZXJAZTAgeworCQkJY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDc3MC1vc3QiOworCQkJcmVnID0gPDB4ZTAgMHgyMD47CisKKwkJCWNsb2NrcyA9IDwmdGN1IFRDVV9DTEtfT1NUPjsKKwkJCWNsb2NrLW5hbWVzID0gIm9zdCI7CisKKwkJCWludGVycnVwdHMgPSA8MTU+OworCQl9OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Vmcy91ZnNoY2QtcGx0ZnJtLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy91ZnMvdWZzaGNkLXBsdGZybS50eHQKaW5kZXggYTc0NzIwNC4uZDc4ZWY2MyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Vmcy91ZnNoY2QtcGx0ZnJtLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdWZzL3Vmc2hjZC1wbHRmcm0udHh0CkBAIC01NCw2ICs1NCw4IEBACiAJCQkgIFBIWSByZXNldCBmcm9tIHRoZSBVRlMgY29udHJvbGxlci4KIC0gcmVzZXRzICAgICAgICAgICAgOiByZXNldCBub2RlIHJlZ2lzdGVyCiAtIHJlc2V0LW5hbWVzICAgICAgIDogZGVzY3JpYmUgcmVzZXQgbm9kZSByZWdpc3RlciwgdGhlICJyc3QiIGNvcnJlc3BvbmRzIHRvIHJlc2V0IHRoZSB3aG9sZSBVRlMgSVAuCistIHJlc2V0LWdwaW9zICAgICAgIDogQSBwaGFuZGxlIGFuZCBncGlvIHNwZWNpZmllciBkZW5vdGluZyB0aGUgR1BJTyBjb25uZWN0ZWQKKwkJICAgICAgdG8gdGhlIFJFU0VUIHBpbiBvZiB0aGUgVUZTIG1lbW9yeSBkZXZpY2UuCiAKIE5vdGU6IElmIGFib3ZlIHByb3BlcnRpZXMgYXJlIG5vdCBkZWZpbmVkIGl0IGNhbiBiZSBhc3N1bWVkIHRoYXQgdGhlIHN1cHBseQogcmVndWxhdG9ycyBvciBjbG9ja3MgYXJlIGFsd2F5cyBvbi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy92ZW5kb3ItcHJlZml4ZXMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy92ZW5kb3ItcHJlZml4ZXMueWFtbAppbmRleCAzMjliNjY4Li45NjdlNzhjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmVuZG9yLXByZWZpeGVzLnlhbWwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3ZlbmRvci1wcmVmaXhlcy55YW1sCkBAIC00NDMsNiArNDQzLDggQEAKICAgICBkZXNjcmlwdGlvbjogSW5ub2x1eCBDb3Jwb3JhdGlvbgogICAiXmluc2lkZS1zZWN1cmUsLioiOgogICAgIGRlc2NyaXB0aW9uOiBJTlNJREUgU2VjdXJlCisgICJeaW5zcHVyLC4qIjoKKyAgICBkZXNjcmlwdGlvbjogSW5zcHVyIENvcnBvcmF0aW9uCiAgICJeaW50ZWwsLioiOgogICAgIGRlc2NyaXB0aW9uOiBJbnRlbCBDb3Jwb3JhdGlvbgogICAiXmludGVyY29udHJvbCwuKiI6CkBAIC01MTksNiArNTIxLDggQEAKICAgICBkZXNjcmlwdGlvbjogTGVub3ZvIEdyb3VwIEx0ZC4KICAgIl5sZywuKiI6CiAgICAgZGVzY3JpcHRpb246IExHIENvcnBvcmF0aW9uCisgICJebGdwaGlsaXBzLC4qIjoKKyAgICBkZXNjcmlwdGlvbjogTEcgRGlzcGxheQogICAiXmxpYnJldGVjaCwuKiI6CiAgICAgZGVzY3JpcHRpb246IFNoZW56aGVuIExpYnJlIFRlY2hub2xvZ3kgQ28uLCBMdGQKICAgIl5saWNoZWVwaSwuKiI6CkBAIC05NDksNiArOTUzLDkgQEAKICAgICBkZXNjcmlwdGlvbjogVGVjb24gTWljcm9wcm9jZXNzb3IgVGVjaG5vbG9naWVzLCBMTEMuCiAgICJedG9wZWV0LC4qIjoKICAgICBkZXNjcmlwdGlvbjogVG9wZWV0CisgICJedG9wcG9seSwuKiI6CisgICAgZGVzY3JpcHRpb246IFRQTyAoZGVwcmVjYXRlZCwgdXNlIHRwbykKKyAgICBkZXByZWNhdGVkOiB0cnVlCiAgICJedG9yYWRleCwuKiI6CiAgICAgZGVzY3JpcHRpb246IFRvcmFkZXggQUcKICAgIl50b3NoaWJhLC4qIjoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9hbGx3aW5uZXIsc3VuNGktYTEwLXdkdC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL2FsbHdpbm5lcixzdW40aS1hMTAtd2R0LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E1NGY1OAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9hbGx3aW5uZXIsc3VuNGktYTEwLXdkdC55YW1sCkBAIC0wLDAgKzEsNTggQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3dhdGNoZG9nL2FsbHdpbm5lcixzdW40aS1hMTAtd2R0LnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IEFsbHdpbm5lciBBMTAgV2F0Y2hkb2cgRGV2aWNlIFRyZWUgQmluZGluZ3MKKworYWxsT2Y6CisgIC0gJHJlZjogIndhdGNoZG9nLnlhbWwjIgorCittYWludGFpbmVyczoKKyAgLSBDaGVuLVl1IFRzYWkgPHdlbnNAY3NpZS5vcmc+CisgIC0gTWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBib290bGluLmNvbT4KKworcHJvcGVydGllczoKKyAgY29tcGF0aWJsZToKKyAgICBvbmVPZjoKKyAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW40aS1hMTAtd2R0CisgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNmktYTMxLXdkdAorICAgICAgLSBpdGVtczoKKyAgICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNTBpLWE2NC13ZHQKKyAgICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNmktYTMxLXdkdAorICAgICAgLSBpdGVtczoKKyAgICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNTBpLWg2LXdkdAorICAgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW42aS1hMzEtd2R0CisgICAgICAtIGl0ZW1zOgorICAgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW5pdi1mMWMxMDBzLXdkdAorICAgICAgICAgIC0gY29uc3Q6IGFsbHdpbm5lcixzdW40aS1hMTAtd2R0CisKKyAgcmVnOgorICAgIG1heEl0ZW1zOiAxCisKKyAgY2xvY2tzOgorICAgIG1heEl0ZW1zOiAxCisKKyAgaW50ZXJydXB0czoKKyAgICBtYXhJdGVtczogMQorCityZXF1aXJlZDoKKyAgLSBjb21wYXRpYmxlCisgIC0gcmVnCisgIC0gY2xvY2tzCisgIC0gaW50ZXJydXB0cworCit1bmV2YWx1YXRlZFByb3BlcnRpZXM6IGZhbHNlCisKK2V4YW1wbGVzOgorICAtIHwKKyAgICB3ZHQ6IHdhdGNoZG9nQDFjMjBjOTAgeworICAgICAgICBjb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW40aS1hMTAtd2R0IjsKKyAgICAgICAgcmVnID0gPDB4MDFjMjBjOTAgMHgxMD47CisgICAgICAgIGludGVycnVwdHMgPSA8MjQ+OworICAgICAgICBjbG9ja3MgPSA8Jm9zYzI0TT47CisgICAgICAgIHRpbWVvdXQtc2VjID0gPDEwPjsKKyAgICB9OworCisuLi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9hbWxvZ2ljLG1lc29uLWd4YmItd2R0LnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvYW1sb2dpYyxtZXNvbi1neGJiLXdkdC55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MzUyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvYW1sb2dpYyxtZXNvbi1neGJiLXdkdC55YW1sCkBAIC0wLDAgKzEsMzcgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wIE9SIEJTRC0yLUNsYXVzZSkKKyMgQ29weXJpZ2h0IDIwMTkgQmF5TGlicmUsIFNBUworJVlBTUwgMS4yCistLS0KKyRpZDogImh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3dhdGNoZG9nL2FtbG9naWMsbWVzb24tZ3hiYi13ZHQueWFtbCMiCiskc2NoZW1hOiAiaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjIgorCit0aXRsZTogTWVzb24gR1hCQiBTb0NzIFdhdGNoZG9nIHRpbWVyCisKK21haW50YWluZXJzOgorICAtIE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT4KKworcHJvcGVydGllczoKKyAgY29tcGF0aWJsZToKKyAgICBlbnVtOgorICAgICAgLSBhbWxvZ2ljLG1lc29uLWd4YmItd2R0CisKKyAgcmVnOgorICAgIG1heEl0ZW1zOiAxCisKKyAgY2xvY2tzOgorICAgIG1heEl0ZW1zOiAxCisgICAgZGVzY3JpcHRpb246CisgICAgICBBIHBoYW5kbGUgdG8gdGhlIGNsb2NrIG9mIHRoaXMgUEhZCisKK3JlcXVpcmVkOgorICAtIGNvbXBhdGlibGUKKyAgLSByZWcKKyAgLSBjbG9ja3MKKworZXhhbXBsZXM6CisgIC0gfAorICAgIHdhdGNoZG9nQDk4ZDAgeworICAgICAgICAgIGNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neGJiLXdkdCI7CisgICAgICAgICAgcmVnID0gPDB4OThkMCAweDEwPjsKKyAgICAgICAgICBjbG9ja3MgPSA8Jnh0YWw+OworICAgIH07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvYXNwZWVkLXdkdC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvYXNwZWVkLXdkdC50eHQKaW5kZXggYzUwNzdhMS4uZDc4ZDRhOGYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9hc3BlZWQtd2R0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvYXNwZWVkLXdkdC50eHQKQEAgLTQsNiArNCw3IEBACiAgLSBjb21wYXRpYmxlOiBtdXN0IGJlIG9uZSBvZjoKIAktICJhc3BlZWQsYXN0MjQwMC13ZHQiCiAJLSAiYXNwZWVkLGFzdDI1MDAtd2R0IgorCS0gImFzcGVlZCxhc3QyNjAwLXdkdCIKIAogIC0gcmVnOiBwaHlzaWNhbCBiYXNlIGFkZHJlc3Mgb2YgdGhlIGNvbnRyb2xsZXIgYW5kIGxlbmd0aCBvZiBtZW1vcnkgbWFwcGVkCiAgICByZWdpb24KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9mc2wtaW14N3VscC13ZHQudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL2ZzbC1pbXg3dWxwLXdkdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjkwMjUwOAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9mc2wtaW14N3VscC13ZHQudHh0CkBAIC0wLDAgKzEsMjIgQEAKKyogRnJlZXNjYWxlIGkuTVg3VUxQIFdhdGNoZG9nIFRpbWVyIChXRFQpIENvbnRyb2xsZXIKKworUmVxdWlyZWQgcHJvcGVydGllczoKKy0gY29tcGF0aWJsZSA6IFNob3VsZCBiZSAiZnNsLGlteDd1bHAtd2R0IgorLSByZWcgOiBTaG91bGQgY29udGFpbiBXRFQgcmVnaXN0ZXJzIGxvY2F0aW9uIGFuZCBsZW5ndGgKKy0gaW50ZXJydXB0cyA6IFNob3VsZCBjb250YWluIFdEVCBpbnRlcnJ1cHQKKy0gY2xvY2tzOiBTaG91bGQgY29udGFpbiBhIHBoYW5kbGUgcG9pbnRpbmcgdG8gdGhlIGdhdGVkIHBlcmlwaGVyYWwgY2xvY2suCisKK09wdGlvbmFsIHByb3BlcnRpZXM6CistIHRpbWVvdXQtc2VjIDogQ29udGFpbnMgdGhlIHdhdGNoZG9nIHRpbWVvdXQgaW4gc2Vjb25kcworCitFeGFtcGxlczoKKword2RvZzE6IHdhdGNoZG9nQDQwM2QwMDAwIHsKKwljb21wYXRpYmxlID0gImZzbCxpbXg3dWxwLXdkdCI7CisJcmVnID0gPDB4NDAzZDAwMDAgMHgxMDAwMD47CisJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDU1IElSUV9UWVBFX0xFVkVMX0hJR0g+OworCWNsb2NrcyA9IDwmcGNjMiBJTVg3VUxQX0NMS19XREcxPjsKKwlhc3NpZ25lZC1jbG9ja3MgPSA8JnBjYzIgSU1YN1VMUF9DTEtfV0RHMT47CisJYXNzaWduZWQtY2xvY2tzLXBhcmVudHMgPSA8JnNjZzEgSU1YN1VMUF9DTEtfRklSQ19CVVNfQ0xLPjsKKwl0aW1lb3V0LXNlYyA9IDw0MD47Cit9OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL2luZ2VuaWMsano0NzQwLXdkdC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvaW5nZW5pYyxqejQ3NDAtd2R0LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2UxY2I3Mi4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvaW5nZW5pYyxqejQ3NDAtd2R0LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLUluZ2VuaWMgV2F0Y2hkb2cgVGltZXIgKFdEVCkgQ29udHJvbGxlciBmb3IgSlo0NzQwICYgSlo0NzgwCi0KLVJlcXVpcmVkIHByb3BlcnRpZXM6Ci1jb21wYXRpYmxlOiAiaW5nZW5pYyxqejQ3NDAtd2F0Y2hkb2ciIG9yICJpbmdlbmljLGp6NDc4MC13YXRjaGRvZyIKLXJlZzogUmVnaXN0ZXIgYWRkcmVzcyBhbmQgbGVuZ3RoIGZvciB3YXRjaGRvZyByZWdpc3RlcnMKLWNsb2NrczogcGhhbmRsZSB0byB0aGUgUlRDIGNsb2NrCi1jbG9jay1uYW1lczogc2hvdWxkIGJlICJydGMiCi0KLUV4YW1wbGU6Ci0KLXdhdGNoZG9nOiBqejQ3NDAtd2F0Y2hkb2dAMTAwMDIwMDAgewotCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtd2F0Y2hkb2ciOwotCXJlZyA9IDwweDEwMDAyMDAwIDB4MTA+OwotCi0JY2xvY2tzID0gPCZjZ3UgSlo0NzQwX0NMS19SVEM+OwotCWNsb2NrLW5hbWVzID0gInJ0YyI7Ci19OwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL21lc29uLWd4YmItd2R0LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZXNvbi1neGJiLXdkdC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3ZmUzNmYuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL21lc29uLWd4YmItd2R0LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLU1lc29uIEdYQkIgU29DcyBXYXRjaGRvZyB0aW1lcgotCi1SZXF1aXJlZCBwcm9wZXJ0aWVzOgotCi0tIGNvbXBhdGlibGUgOiBzaG91bGQgYmUgImFtbG9naWMsbWVzb24tZ3hiYi13ZHQiCi0tIHJlZyA6IFNwZWNpZmllcyBiYXNlIHBoeXNpY2FsIGFkZHJlc3MgYW5kIHNpemUgb2YgdGhlIHJlZ2lzdGVycy4KLS0gY2xvY2tzIDogU2hvdWxkIGJlIGEgcGhhbmRsZSB0byB0aGUgV2F0Y2hkb2cgY2xvY2sgc291cmNlLCBmb3IgR1hCQiB0aGUgeHRhbAotCSAgIGlzIHRoZSBkZWZhdWx0IGNsb2NrIHNvdXJjZS4KLQotRXhhbXBsZToKLQotd2R0OiB3YXRjaGRvZ0A5OGQwIHsKLQljb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZ3hiYi13ZHQiOwotCXJlZyA9IDwwIDB4OThkMCAweDAgMHgxMD47Ci0JY2xvY2tzID0gPCZ4dGFsPjsKLX07CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvc3VueGktd2R0LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9zdW54aS13ZHQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjUxOThkLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9zdW54aS13ZHQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotQWxsd2lubmVyIFNvQ3MgV2F0Y2hkb2cgdGltZXIKLQotUmVxdWlyZWQgcHJvcGVydGllczoKLQotLSBjb21wYXRpYmxlIDogc2hvdWxkIGJlIG9uZSBvZgotCSJhbGx3aW5uZXIsc3VuNGktYTEwLXdkdCIKLQkiYWxsd2lubmVyLHN1bjZpLWEzMS13ZHQiCi0JImFsbHdpbm5lcixzdW41MGktYTY0LXdkdCIsImFsbHdpbm5lcixzdW42aS1hMzEtd2R0IgotCSJhbGx3aW5uZXIsc3VuNTBpLWg2LXdkdCIsImFsbHdpbm5lcixzdW42aS1hMzEtd2R0IgotCSJhbGx3aW5uZXIsc3VuaXYtZjFjMTAwcy13ZHQiLCAiYWxsd2lubmVyLHN1bjRpLWExMC13ZHQiCi0tIHJlZyA6IFNwZWNpZmllcyBiYXNlIHBoeXNpY2FsIGFkZHJlc3MgYW5kIHNpemUgb2YgdGhlIHJlZ2lzdGVycy4KLQotT3B0aW9uYWwgcHJvcGVydGllczoKLS0gdGltZW91dC1zZWMgOiBDb250YWlucyB0aGUgd2F0Y2hkb2cgdGltZW91dCBpbiBzZWNvbmRzCi0KLUV4YW1wbGU6Ci0KLXdkdDogd2F0Y2hkb2dAMWMyMGM5MCB7Ci0JY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuNGktYTEwLXdkdCI7Ci0JcmVnID0gPDB4MDFjMjBjOTAgMHgxMD47Ci0JdGltZW91dC1zZWMgPSA8MTA+OwotfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy93YXRjaGRvZy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL3dhdGNoZG9nLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg3YmY2YwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy93YXRjaGRvZy55YW1sCkBAIC0wLDAgKzEsMjYgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3dhdGNoZG9nL3dhdGNoZG9nLnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IFdhdGNoZG9nIEdlbmVyaWMgQmluZGluZ3MKKworbWFpbnRhaW5lcnM6CisgIC0gR3VlbnRlciBSb2VjayA8bGludXhAcm9lY2stdXMubmV0PgorICAtIFdpbSBWYW4gU2Vicm9lY2sgPHdpbUBsaW51eC13YXRjaGRvZy5vcmc+CisKK2Rlc2NyaXB0aW9uOiB8CisgIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGdlbmVyaWMgYmluZGluZ3Mgd2hpY2ggY2FuIGJlIHVzZWQgdG8KKyAgZGVzY3JpYmUgd2F0Y2hkb2cgZGV2aWNlcyBpbiBhIGRldmljZSB0cmVlLgorCitwcm9wZXJ0aWVzOgorICAkbm9kZW5hbWU6CisgICAgcGF0dGVybjogIl53YXRjaGRvZyhALip8LVswLTlhLWZdKT8kIgorCisgIHRpbWVvdXQtc2VjOgorICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3VpbnQzMgorICAgIGRlc2NyaXB0aW9uOgorICAgICAgQ29udGFpbnMgdGhlIHdhdGNoZG9nIHRpbWVvdXQgaW4gc2Vjb25kcy4KKworLi4uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvd3JpdGluZy1zY2hlbWEucnN0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL3dyaXRpbmctc2NoZW1hLnJzdAppbmRleCA4ZjcxZDFlLi5mNGE2MzgwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvd3JpdGluZy1zY2hlbWEucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS93cml0aW5nLXNjaGVtYS5yc3QKQEAgLTE0MSw2ICsxNDEsNyBAQAogCiA6OgogCisgICAgbWFrZSBkdF9iaW5kaW5nX2NoZWNrIERUX1NDSEVNQV9GSUxFUz1Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdHJpdmlhbC1kZXZpY2VzLnlhbWwKICAgICBtYWtlIGR0YnNfY2hlY2sgRFRfU0NIRU1BX0ZJTEVTPURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90cml2aWFsLWRldmljZXMueWFtbAogCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9waW5jdGwucnN0IGIvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL3BpbmN0bC5yc3QKaW5kZXggMmJiMWJjNC4uM2QyZGVhZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL3BpbmN0bC5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL3BpbmN0bC5yc3QKQEAgLTYzOCw4ICs2MzgsOCBAQAogCX0KIAogCXN0YXRpYyBpbnQgZm9vX2dldF9ncm91cF9waW5zKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWduZWQgc2VsZWN0b3IsCi0JCQkJdW5zaWduZWQgKiogY29uc3QgcGlucywKLQkJCQl1bnNpZ25lZCAqIGNvbnN0IG51bV9waW5zKQorCQkJCWNvbnN0IHVuc2lnbmVkICoqIHBpbnMsCisJCQkJdW5zaWduZWQgKiBudW1fcGlucykKIAl7CiAJCSpwaW5zID0gKHVuc2lnbmVkICopIGZvb19ncm91cHNbc2VsZWN0b3JdLnBpbnM7CiAJCSpudW1fcGlucyA9IGZvb19ncm91cHNbc2VsZWN0b3JdLm51bV9waW5zOwpAQCAtNzA1LDcgKzcwNSw3IEBACiAJewogCQl1OCByZWdiaXQgPSAoMSA8PCBzZWxlY3RvciArIGdyb3VwKTsKIAotCQl3cml0ZWIoKHJlYWRiKE1VWCl8cmVnYml0KSwgTVVYKQorCQl3cml0ZWIoKHJlYWRiKE1VWCl8cmVnYml0KSwgTVVYKTsKIAkJcmV0dXJuIDA7CiAJfQogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2NlcGgudHh0IGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9jZXBoLnR4dAppbmRleCBkMmM2YTVjLi5iMTliNmEwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2NlcGgudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvY2VwaC50eHQKQEAgLTE1OCw2ICsxNTgsMjAgQEAKICAgICAgICAgY29waWVzLiAgQ3VycmVudGx5LCBpdCdzIG9ubHkgdXNlZCBpbiBjb3B5X2ZpbGVfcmFuZ2UsIHdoaWNoIHdpbGwgcmV2ZXJ0CiAgICAgICAgIHRvIHRoZSBkZWZhdWx0IFZGUyBpbXBsZW1lbnRhdGlvbiBpZiB0aGlzIG9wdGlvbiBpcyB1c2VkLgogCisgIHJlY292ZXJfc2Vzc2lvbj08bm98Y2xlYW4+CisJU2V0IGF1dG8gcmVjb25uZWN0IG1vZGUgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGNsaWVudCBpcyBibGFja2xpc3RlZC4gVGhlCisJYXZhaWxhYmxlIG1vZGVzIGFyZSAibm8iIGFuZCAiY2xlYW4iLiBUaGUgZGVmYXVsdCBpcyAibm8iLgorCisJKiBubzogbmV2ZXIgYXR0ZW1wdCB0byByZWNvbm5lY3Qgd2hlbiBjbGllbnQgZGV0ZWN0cyB0aGF0IGl0IGhhcyBiZWVuCisJYmxhY2tsaXN0ZWQuIE9wZXJhdGlvbnMgd2lsbCBnZW5lcmFsbHkgZmFpbCBhZnRlciBiZWluZyBibGFja2xpc3RlZC4KKworCSogY2xlYW46IGNsaWVudCByZWNvbm5lY3RzIHRvIHRoZSBjZXBoIGNsdXN0ZXIgYXV0b21hdGljYWxseSB3aGVuIGl0CisJZGV0ZWN0cyB0aGF0IGl0IGhhcyBiZWVuIGJsYWNrbGlzdGVkLiBEdXJpbmcgcmVjb25uZWN0LCBjbGllbnQgZHJvcHMKKwlkaXJ0eSBkYXRhL21ldGFkYXRhLCBpbnZhbGlkYXRlcyBwYWdlIGNhY2hlcyBhbmQgd3JpdGFibGUgZmlsZSBoYW5kbGVzLgorCUFmdGVyIHJlY29ubmVjdCwgZmlsZSBsb2NrcyBiZWNvbWUgc3RhbGUgYmVjYXVzZSB0aGUgTURTIGxvc2VzIHRyYWNrCisJb2YgdGhlbS4gSWYgYW4gaW5vZGUgY29udGFpbnMgYW55IHN0YWxlIGZpbGUgbG9ja3MsIHJlYWQvd3JpdGUgb24gdGhlCisJaW5vZGUgaXMgbm90IGFsbG93ZWQgdW50aWwgYXBwbGljYXRpb25zIHJlbGVhc2UgYWxsIHN0YWxlIGZpbGUgbG9ja3MuCisKIE1vcmUgSW5mb3JtYXRpb24KID09PT09PT09PT09PT09PT0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9jaWZzL2NpZnNyb290LnR4dCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvY2lmcy9jaWZzcm9vdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZhMWEyYwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvY2lmcy9jaWZzcm9vdC50eHQKQEAgLTAsMCArMSw5NyBAQAorTW91bnRpbmcgcm9vdCBmaWxlIHN5c3RlbSB2aWEgU01CIChjaWZzLmtvKQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitXcml0dGVuIDIwMTkgYnkgUGF1bG8gQWxjYW50YXJhIDxwYWxjYW50YXJhQHN1c2UuZGU+CitXcml0dGVuIDIwMTkgYnkgQXVyZWxpZW4gQXB0ZWwgPGFhcHRlbEBzdXNlLmNvbT4KKworVGhlIENPTkZJR19DSUZTX1JPT1Qgb3B0aW9uIGVuYWJsZXMgZXhwZXJpbWVudGFsIHJvb3QgZmlsZSBzeXN0ZW0KK3N1cHBvcnQgb3ZlciB0aGUgU01CIHByb3RvY29sIHZpYSBjaWZzLmtvLgorCitJdCBpbnRyb2R1Y2VzIGEgbmV3IGtlcm5lbCBjb21tYW5kLWxpbmUgb3B0aW9uIGNhbGxlZCAnY2lmc3Jvb3Q9Jword2hpY2ggd2lsbCB0ZWxsIHRoZSBrZXJuZWwgdG8gbW91bnQgdGhlIHJvb3QgZmlsZSBzeXN0ZW0gb3ZlciB0aGUKK25ldHdvcmsgYnkgdXRpbGl6aW5nIFNNQiBvciBDSUZTIHByb3RvY29sLgorCitJbiBvcmRlciB0byBtb3VudCwgdGhlIG5ldHdvcmsgc3RhY2sgd2lsbCBhbHNvIG5lZWQgdG8gYmUgc2V0IHVwIGJ5Cit1c2luZyAnaXA9JyBjb25maWcgb3B0aW9uLiBGb3IgbW9yZSBkZXRhaWxzLCBzZWUKK0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbmZzL25mc3Jvb3QudHh0LgorCitBIENJRlMgcm9vdCBtb3VudCBjdXJyZW50bHkgcmVxdWlyZXMgdGhlIHVzZSBvZiBTTUIxK1VOSVggRXh0ZW5zaW9ucword2hpY2ggaXMgb25seSBzdXBwb3J0ZWQgYnkgdGhlIFNhbWJhIHNlcnZlci4gU01CMSBpcyB0aGUgb2xkZXIKK2RlcHJlY2F0ZWQgdmVyc2lvbiBvZiB0aGUgcHJvdG9jb2wgYnV0IGl0IGhhcyBiZWVuIGV4dGVuZGVkIHRvIHN1cHBvcnQKK1BPU0lYIGZlYXR1cmVzIChTZWUgWzFdKS4gVGhlIGVxdWl2YWxlbnQgZXh0ZW5zaW9ucyBmb3IgdGhlIG5ld2VyCityZWNvbW1lbmRlZCB2ZXJzaW9uIG9mIHRoZSBwcm90b2NvbCAoU01CMykgaGF2ZSBub3QgYmVlbiBmdWxseQoraW1wbGVtZW50ZWQgeWV0IHdoaWNoIG1lYW5zIFNNQjMgZG9lc24ndCBzdXBwb3J0IHNvbWUgcmVxdWlyZWQgUE9TSVgKK2ZpbGUgc3lzdGVtIG9iamVjdHMgKGUuZy4gYmxvY2sgZGV2aWNlcywgcGlwZXMsIHNvY2tldHMpLgorCitBcyBhIHJlc3VsdCwgYSBDSUZTIHJvb3Qgd2lsbCBkZWZhdWx0IHRvIFNNQjEgZm9yIG5vdyBidXQgdGhlIHZlcnNpb24KK3RvIHVzZSBjYW4gbm9uZXRoZWxlc3MgYmUgY2hhbmdlZCB2aWEgdGhlICd2ZXJzPScgbW91bnQgb3B0aW9uLiAgVGhpcworZGVmYXVsdCB3aWxsIGNoYW5nZSBvbmNlIHRoZSBTTUIzIFBPU0lYIGV4dGVuc2lvbnMgYXJlIGZ1bGx5CitpbXBsZW1lbnRlZC4KKworU2VydmVyIGNvbmZpZ3VyYXRpb24KKz09PT09PT09PT09PT09PT09PT09CisKK1RvIGVuYWJsZSBTTUIxK1VOSVggZXh0ZW5zaW9ucyB5b3Ugd2lsbCBuZWVkIHRvIHNldCB0aGVzZSBnbG9iYWwKK3NldHRpbmdzIGluIFNhbWJhIHNtYi5jb25mOgorCisgICAgW2dsb2JhbF0KKyAgICBzZXJ2ZXIgbWluIHByb3RvY29sID0gTlQxCisgICAgdW5peCBleHRlbnNpb24gPSB5ZXMgICAgICAgICMgZGVmYXVsdAorCitLZXJuZWwgY29tbWFuZCBsaW5lCis9PT09PT09PT09PT09PT09PT09CisKK3Jvb3Q9L2Rldi9jaWZzCisKK1RoaXMgaXMganVzdCBhIHZpcnR1YWwgZGV2aWNlIHRoYXQgYmFzaWNhbGx5IHRlbGxzIHRoZSBrZXJuZWwgdG8gbW91bnQKK3RoZSByb290IGZpbGUgc3lzdGVtIHZpYSBTTUIgcHJvdG9jb2wuCisKK2NpZnNyb290PS8vPHNlcnZlci1pcD4vPHNoYXJlPlssb3B0aW9uc10KKworRW5hYmxlcyB0aGUga2VybmVsIHRvIG1vdW50IHRoZSByb290IGZpbGUgc3lzdGVtIHZpYSBTTUIgdGhhdCBhcmUKK2xvY2F0ZWQgaW4gdGhlIDxzZXJ2ZXItaXA+IGFuZCA8c2hhcmU+IHNwZWNpZmllZCBpbiB0aGlzIG9wdGlvbi4KKworVGhlIGRlZmF1bHQgbW91bnQgb3B0aW9ucyBhcmUgc2V0IGluIGZzL2NpZnMvY2lmc3Jvb3QuYy4KKworc2VydmVyLWlwCisJSVB2NCBhZGRyZXNzIG9mIHRoZSBzZXJ2ZXIuCisKK3NoYXJlCisJUGF0aCB0byBTTUIgc2hhcmUgKHJvb3RmcykuCisKK29wdGlvbnMKKwlPcHRpb25hbCBtb3VudCBvcHRpb25zLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIG1vdW50LmNpZnMoOCkuCisKK0V4YW1wbGVzCis9PT09PT09PQorCitFeHBvcnQgcm9vdCBmaWxlIHN5c3RlbSBhcyBhIFNhbWJhIHNoYXJlIGluIHNtYi5jb25mIGZpbGUuCisKKy4uLgorW2xpbnV4XQorCXBhdGggPSAvcGF0aC90by9yb290ZnMKKwlyZWFkIG9ubHkgPSBubworCWd1ZXN0IG9rID0geWVzCisJZm9yY2UgdXNlciA9IHJvb3QKKwlmb3JjZSBncm91cCA9IHJvb3QKKwlicm93c2VhYmxlID0geWVzCisJd3JpdGVhYmxlID0geWVzCisJYWRtaW4gdXNlcnMgPSByb290CisJcHVibGljID0geWVzCisJY3JlYXRlIG1hc2sgPSAwNzc3CisJZGlyZWN0b3J5IG1hc2sgPSAwNzc3CisuLi4KKworUmVzdGFydCBzbWIgc2VydmljZS4KKworIyBzeXN0ZW1jdGwgcmVzdGFydCBzbWIKKworVGVzdCBpdCB1bmRlciBRRU1VIG9uIGEga2VybmVsIGJ1aWx0IHdpdGggQ09ORklHX0NJRlNfUk9PVCBhbmQKK0NPTkZJR19JUF9QTlAgb3B0aW9ucyBlbmFibGVkLgorCisjIHFlbXUtc3lzdGVtLXg4Nl82NCAtZW5hYmxlLWt2bSAtY3B1IGhvc3QgLW0gMTAyNCBcCisgIC1rZXJuZWwgL3BhdGgvdG8vbGludXgvYXJjaC94ODYvYm9vdC9iekltYWdlIC1ub2dyYXBoaWMgXAorICAtYXBwZW5kICJyb290PS9kZXYvY2lmcyBydyBpcD1kaGNwIGNpZnNyb290PS8vMTAuMC4yLjIvbGludXgsdXNlcm5hbWU9Zm9vLHBhc3N3b3JkPWJhciBjb25zb2xlPXR0eVMwIDMiCisKKworMTogaHR0cHM6Ly93aWtpLnNhbWJhLm9yZy9pbmRleC5waHAvVU5JWF9FeHRlbnNpb25zCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2V4dDQvYmlnYWxsb2MucnN0IGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2JpZ2FsbG9jLnJzdAppbmRleCBjNmQ4ODU1Li43MjA3NWFhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2V4dDQvYmlnYWxsb2MucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC9iaWdhbGxvYy5yc3QKQEAgLTksMTQgKzksMjYgQEAKIGV4Y2VlZHMgdGhlIHBhZ2Ugc2l6ZS4gSG93ZXZlciwgZm9yIGEgZmlsZXN5c3RlbSBvZiBtb3N0bHkgaHVnZSBmaWxlcywKIGl0IGlzIGRlc2lyYWJsZSB0byBiZSBhYmxlIHRvIGFsbG9jYXRlIGRpc2sgYmxvY2tzIGluIHVuaXRzIG9mIG11bHRpcGxlCiBibG9ja3MgdG8gcmVkdWNlIGJvdGggZnJhZ21lbnRhdGlvbiBhbmQgbWV0YWRhdGEgb3ZlcmhlYWQuIFRoZQotYGJpZ2FsbG9jIDxCaWdhbGxvYz5gX18gZmVhdHVyZSBwcm92aWRlcyBleGFjdGx5IHRoaXMgYWJpbGl0eS4gVGhlCi1hZG1pbmlzdHJhdG9yIGNhbiBzZXQgYSBibG9jayBjbHVzdGVyIHNpemUgYXQgbWtmcyB0aW1lICh3aGljaCBpcyBzdG9yZWQKLWluIHRoZSBzXF9sb2dcX2NsdXN0ZXJcX3NpemUgZmllbGQgaW4gdGhlIHN1cGVyYmxvY2spOyBmcm9tIHRoZW4gb24sIHRoZQotYmxvY2sgYml0bWFwcyB0cmFjayBjbHVzdGVycywgbm90IGluZGl2aWR1YWwgYmxvY2tzLiBUaGlzIG1lYW5zIHRoYXQKLWJsb2NrIGdyb3VwcyBjYW4gYmUgc2V2ZXJhbCBnaWdhYnl0ZXMgaW4gc2l6ZSAoaW5zdGVhZCBvZiBqdXN0IDEyOE1pQik7Ci1ob3dldmVyLCB0aGUgbWluaW11bSBhbGxvY2F0aW9uIHVuaXQgYmVjb21lcyBhIGNsdXN0ZXIsIG5vdCBhIGJsb2NrLAotZXZlbiBmb3IgZGlyZWN0b3JpZXMuIFRhb0JhbyBoYWQgYSBwYXRjaHNldCB0byBleHRlbmQgdGhlIOKAnHVzZSB1bml0cyBvZgotY2x1c3RlcnMgaW5zdGVhZCBvZiBibG9ja3PigJ0gdG8gdGhlIGV4dGVudCB0cmVlLCB0aG91Z2ggaXQgaXMgbm90IGNsZWFyCi13aGVyZSB0aG9zZSBwYXRjaGVzIHdlbnQtLSB0aGV5IGV2ZW50dWFsbHkgbW9ycGhlZCBpbnRvIOKAnGV4dGVudCB0cmVlIHYy4oCdCi1idXQgdGhhdCBjb2RlIGhhcyBub3QgbGFuZGVkIGFzIG9mIE1heSAyMDE1LgorYmlnYWxsb2MgZmVhdHVyZSBwcm92aWRlcyBleGFjdGx5IHRoaXMgYWJpbGl0eS4KKworVGhlIGJpZ2FsbG9jIGZlYXR1cmUgKEVYVDRfRkVBVFVSRV9ST19DT01QQVRfQklHQUxMT0MpIGNoYW5nZXMgZXh0NCB0bwordXNlIGNsdXN0ZXJlZCBhbGxvY2F0aW9uLCBzbyB0aGF0IGVhY2ggYml0IGluIHRoZSBleHQ0IGJsb2NrIGFsbG9jYXRpb24KK2JpdG1hcCBhZGRyZXNzZXMgYSBwb3dlciBvZiB0d28gbnVtYmVyIG9mIGJsb2Nrcy4gRm9yIGV4YW1wbGUsIGlmIHRoZQorZmlsZSBzeXN0ZW0gaXMgbWFpbmx5IGdvaW5nIHRvIGJlIHN0b3JpbmcgbGFyZ2UgZmlsZXMgaW4gdGhlIDQtMzIKK21lZ2FieXRlIHJhbmdlLCBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIHNldCBhIGNsdXN0ZXIgc2l6ZSBvZiAxIG1lZ2FieXRlLgorVGhpcyBtZWFucyB0aGF0IGVhY2ggYml0IGluIHRoZSBibG9jayBhbGxvY2F0aW9uIGJpdG1hcCBub3cgYWRkcmVzc2VzCisyNTYgNGsgYmxvY2tzLiBUaGlzIHNocmlua3MgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGJsb2NrIGFsbG9jYXRpb24KK2JpdG1hcHMgZm9yIGEgMlQgZmlsZSBzeXN0ZW0gZnJvbSA2NCBtZWdhYnl0ZXMgdG8gMjU2IGtpbG9ieXRlcy4gSXQgYWxzbworbWVhbnMgdGhhdCBhIGJsb2NrIGdyb3VwIGFkZHJlc3NlcyAzMiBnaWdhYnl0ZXMgaW5zdGVhZCBvZiAxMjggbWVnYWJ5dGVzLAorYWxzbyBzaHJpbmtpbmcgdGhlIGFtb3VudCBvZiBmaWxlIHN5c3RlbSBvdmVyaGVhZCBmb3IgbWV0YWRhdGEuCisKK1RoZSBhZG1pbmlzdHJhdG9yIGNhbiBzZXQgYSBibG9jayBjbHVzdGVyIHNpemUgYXQgbWtmcyB0aW1lICh3aGljaCBpcworc3RvcmVkIGluIHRoZSBzXF9sb2dcX2NsdXN0ZXJcX3NpemUgZmllbGQgaW4gdGhlIHN1cGVyYmxvY2spOyBmcm9tIHRoZW4KK29uLCB0aGUgYmxvY2sgYml0bWFwcyB0cmFjayBjbHVzdGVycywgbm90IGluZGl2aWR1YWwgYmxvY2tzLiBUaGlzIG1lYW5zCit0aGF0IGJsb2NrIGdyb3VwcyBjYW4gYmUgc2V2ZXJhbCBnaWdhYnl0ZXMgaW4gc2l6ZSAoaW5zdGVhZCBvZiBqdXN0CisxMjhNaUIpOyBob3dldmVyLCB0aGUgbWluaW11bSBhbGxvY2F0aW9uIHVuaXQgYmVjb21lcyBhIGNsdXN0ZXIsIG5vdCBhCitibG9jaywgZXZlbiBmb3IgZGlyZWN0b3JpZXMuIFRhb0JhbyBoYWQgYSBwYXRjaHNldCB0byBleHRlbmQgdGhlIOKAnHVzZQordW5pdHMgb2YgY2x1c3RlcnMgaW5zdGVhZCBvZiBibG9ja3PigJ0gdG8gdGhlIGV4dGVudCB0cmVlLCB0aG91Z2ggaXQgaXMKK25vdCBjbGVhciB3aGVyZSB0aG9zZSBwYXRjaGVzIHdlbnQtLSB0aGV5IGV2ZW50dWFsbHkgbW9ycGhlZCBpbnRvCivigJxleHRlbnQgdHJlZSB2MuKAnSBidXQgdGhhdCBjb2RlIGhhcyBub3QgbGFuZGVkIGFzIG9mIE1heSAyMDE1LgogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2V4dDQvYmxvY2tncm91cC5yc3QgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2V4dDQvYmxvY2tncm91cC5yc3QKaW5kZXggYmFmODg4ZS4uM2RhMTU2NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2Jsb2NrZ3JvdXAucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC9ibG9ja2dyb3VwLnJzdApAQCAtNzEsMTEgKzcxLDExIEBACiBzdXBlcmJsb2NrLCBncm91cCBkZXNjcmlwdG9ycywgZGF0YSBibG9jayBiaXRtYXBzIGZvciBncm91cHMgMC0zLCBpbm9kZQogYml0bWFwcyBmb3IgZ3JvdXBzIDAtMywgaW5vZGUgdGFibGVzIGZvciBncm91cHMgMC0zLCBhbmQgdGhlIHJlbWFpbmluZwogc3BhY2UgaW4gZ3JvdXAgMCBpcyBmb3IgZmlsZSBkYXRhLiBUaGUgZWZmZWN0IG9mIHRoaXMgaXMgdG8gZ3JvdXAgdGhlCi1ibG9jayBtZXRhZGF0YSBjbG9zZSB0b2dldGhlciBmb3IgZmFzdGVyIGxvYWRpbmcsIGFuZCB0byBlbmFibGUgbGFyZ2UKLWZpbGVzIHRvIGJlIGNvbnRpbnVvdXMgb24gZGlzay4gQmFja3VwIGNvcGllcyBvZiB0aGUgc3VwZXJibG9jayBhbmQKLWdyb3VwIGRlc2NyaXB0b3JzIGFyZSBhbHdheXMgYXQgdGhlIGJlZ2lubmluZyBvZiBibG9jayBncm91cHMsIGV2ZW4gaWYKLWZsZXhcX2JnIGlzIGVuYWJsZWQuIFRoZSBudW1iZXIgb2YgYmxvY2sgZ3JvdXBzIHRoYXQgbWFrZSB1cCBhIGZsZXhcX2JnCi1pcyBnaXZlbiBieSAyIF4gYGBzYi5zX2xvZ19ncm91cHNfcGVyX2ZsZXhgYC4KK2Jsb2NrIGdyb3VwIG1ldGFkYXRhIGNsb3NlIHRvZ2V0aGVyIGZvciBmYXN0ZXIgbG9hZGluZywgYW5kIHRvIGVuYWJsZQorbGFyZ2UgZmlsZXMgdG8gYmUgY29udGludW91cyBvbiBkaXNrLiBCYWNrdXAgY29waWVzIG9mIHRoZSBzdXBlcmJsb2NrCithbmQgZ3JvdXAgZGVzY3JpcHRvcnMgYXJlIGFsd2F5cyBhdCB0aGUgYmVnaW5uaW5nIG9mIGJsb2NrIGdyb3VwcywgZXZlbgoraWYgZmxleFxfYmcgaXMgZW5hYmxlZC4gVGhlIG51bWJlciBvZiBibG9jayBncm91cHMgdGhhdCBtYWtlIHVwIGEKK2ZsZXhcX2JnIGlzIGdpdmVuIGJ5IDIgXiBgYHNiLnNfbG9nX2dyb3Vwc19wZXJfZmxleGBgLgogCiBNZXRhIEJsb2NrIEdyb3VwcwogLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC9ibG9ja3MucnN0IGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2Jsb2Nrcy5yc3QKaW5kZXggNzNkNGRjMC4uYmQ3MjJlYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2Jsb2Nrcy5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2Jsb2Nrcy5yc3QKQEAgLTEwLDcgKzEwLDkgQEAKIDRLaUIuIFlvdSBtYXkgZXhwZXJpZW5jZSBtb3VudGluZyBwcm9ibGVtcyBpZiBibG9jayBzaXplIGlzIGdyZWF0ZXIgdGhhbgogcGFnZSBzaXplIChpLmUuIDY0S2lCIGJsb2NrcyBvbiBhIGkzODYgd2hpY2ggb25seSBoYXMgNEtpQiBtZW1vcnkKIHBhZ2VzKS4gQnkgZGVmYXVsdCBhIGZpbGVzeXN0ZW0gY2FuIGNvbnRhaW4gMl4zMiBibG9ja3M7IGlmIHRoZSAnNjRiaXQnCi1mZWF0dXJlIGlzIGVuYWJsZWQsIHRoZW4gYSBmaWxlc3lzdGVtIGNhbiBoYXZlIDJeNjQgYmxvY2tzLgorZmVhdHVyZSBpcyBlbmFibGVkLCB0aGVuIGEgZmlsZXN5c3RlbSBjYW4gaGF2ZSAyXjY0IGJsb2Nrcy4gVGhlIGxvY2F0aW9uCitvZiBzdHJ1Y3R1cmVzIGlzIHN0b3JlZCBpbiB0ZXJtcyBvZiB0aGUgYmxvY2sgbnVtYmVyIHRoZSBzdHJ1Y3R1cmUgbGl2ZXMKK2luIGFuZCBub3QgdGhlIGFic29sdXRlIG9mZnNldCBvbiBkaXNrLgogCiBGb3IgMzItYml0IGZpbGVzeXN0ZW1zLCBsaW1pdHMgYXJlIGFzIGZvbGxvd3M6CiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC9kaXJlY3RvcnkucnN0IGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2RpcmVjdG9yeS5yc3QKaW5kZXggNjE0MDM0ZS4uMDczOTQwYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2RpcmVjdG9yeS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2RpcmVjdG9yeS5yc3QKQEAgLTU5LDcgKzU5LDcgQEAKICAgICAgLSBGaWxlIG5hbWUuCiAKIFNpbmNlIGZpbGUgbmFtZXMgY2Fubm90IGJlIGxvbmdlciB0aGFuIDI1NSBieXRlcywgdGhlIG5ldyBkaXJlY3RvcnkKLWVudHJ5IGZvcm1hdCBzaG9ydGVucyB0aGUgcmVjXF9sZW4gZmllbGQgYW5kIHVzZXMgdGhlIHNwYWNlIGZvciBhIGZpbGUKK2VudHJ5IGZvcm1hdCBzaG9ydGVucyB0aGUgbmFtZVxfbGVuIGZpZWxkIGFuZCB1c2VzIHRoZSBzcGFjZSBmb3IgYSBmaWxlCiB0eXBlIGZsYWcsIHByb2JhYmx5IHRvIGF2b2lkIGhhdmluZyB0byBsb2FkIGV2ZXJ5IGlub2RlIGR1cmluZyBkaXJlY3RvcnkKIHRyZWUgdHJhdmVyc2FsLiBUaGlzIGZvcm1hdCBpcyBgYGV4dDRfZGlyX2VudHJ5XzJgYCwgd2hpY2ggaXMgYXQgbW9zdAogMjYzIGJ5dGVzIGxvbmcsIHRob3VnaCBvbiBkaXNrIHlvdSdsbCBuZWVkIHRvIHJlZmVyZW5jZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2dyb3VwX2Rlc2NyLnJzdCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC9ncm91cF9kZXNjci5yc3QKaW5kZXggMGY3ODNlZC4uN2JhNjExNCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L2dyb3VwX2Rlc2NyLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2V4dDQvZ3JvdXBfZGVzY3IucnN0CkBAIC05OSw5ICs5OSwxMiBAQAogICAgKiAtIDB4MUUKICAgICAgLSBcX1xfbGUxNgogICAgICAtIGJnXF9jaGVja3N1bQotICAgICAtIEdyb3VwIGRlc2NyaXB0b3IgY2hlY2tzdW07IGNyYzE2KHNiXF91dWlkK2dyb3VwK2Rlc2MpIGlmIHRoZQotICAgICAgIFJPXF9DT01QQVRcX0dEVFxfQ1NVTSBmZWF0dXJlIGlzIHNldCwgb3IgY3JjMzJjKHNiXF91dWlkK2dyb3VwXF9kZXNjKSAmCi0gICAgICAgMHhGRkZGIGlmIHRoZSBST1xfQ09NUEFUXF9NRVRBREFUQVxfQ1NVTSBmZWF0dXJlIGlzIHNldC4KKyAgICAgLSBHcm91cCBkZXNjcmlwdG9yIGNoZWNrc3VtOyBjcmMxNihzYlxfdXVpZCtncm91cFxfbnVtK2JnXF9kZXNjKSBpZiB0aGUKKyAgICAgICBST1xfQ09NUEFUXF9HRFRcX0NTVU0gZmVhdHVyZSBpcyBzZXQsIG9yCisgICAgICAgY3JjMzJjKHNiXF91dWlkK2dyb3VwXF9udW0rYmdcX2Rlc2MpICYgMHhGRkZGIGlmIHRoZQorICAgICAgIFJPXF9DT01QQVRcX01FVEFEQVRBXF9DU1VNIGZlYXR1cmUgaXMgc2V0LiAgVGhlIGJnXF9jaGVja3N1bQorICAgICAgIGZpZWxkIGluIGJnXF9kZXNjIGlzIHNraXBwZWQgd2hlbiBjYWxjdWxhdGluZyBjcmMxNiBjaGVja3N1bSwKKyAgICAgICBhbmQgc2V0IHRvIHplcm8gaWYgY3JjMzJjIGNoZWNrc3VtIGlzIHVzZWQuCiAgICAqIC0KICAgICAgLQogICAgICAtCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2V4dDQvaW5vZGVzLnJzdCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC9pbm9kZXMucnN0CmluZGV4IGU4NTFlNmMuLmE2NWJhZmYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC9pbm9kZXMucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC9pbm9kZXMucnN0CkBAIC00NzIsOCArNDcyLDggQEAKIGhhdmluZyB0byB1cGdyYWRlIGFsbCBvZiB0aGUgb24tZGlzayBpbm9kZXMuIEFjY2VzcyB0byBmaWVsZHMgYmV5b25kCiBFWFQyXF9HT09EXF9PTERcX0lOT0RFXF9TSVpFIHNob3VsZCBiZSB2ZXJpZmllZCB0byBiZSB3aXRoaW4KIGBgaV9leHRyYV9pc2l6ZWBgLiBCeSBkZWZhdWx0LCBleHQ0IGlub2RlIHJlY29yZHMgYXJlIDI1NiBieXRlcywgYW5kIChhcwotb2YgT2N0b2JlciAyMDEzKSB0aGUgaW5vZGUgc3RydWN0dXJlIGlzIDE1NiBieXRlcwotKGBgaV9leHRyYV9pc2l6ZSA9IDI4YGApLiBUaGUgZXh0cmEgc3BhY2UgYmV0d2VlbiB0aGUgZW5kIG9mIHRoZSBpbm9kZQorb2YgQXVndXN0IDIwMTkpIHRoZSBpbm9kZSBzdHJ1Y3R1cmUgaXMgMTYwIGJ5dGVzCisoYGBpX2V4dHJhX2lzaXplID0gMzJgYCkuIFRoZSBleHRyYSBzcGFjZSBiZXR3ZWVuIHRoZSBlbmQgb2YgdGhlIGlub2RlCiBzdHJ1Y3R1cmUgYW5kIHRoZSBlbmQgb2YgdGhlIGlub2RlIHJlY29yZCBjYW4gYmUgdXNlZCB0byBzdG9yZSBleHRlbmRlZAogYXR0cmlidXRlcy4gRWFjaCBpbm9kZSByZWNvcmQgY2FuIGJlIGFzIGxhcmdlIGFzIHRoZSBmaWxlc3lzdGVtIGJsb2NrCiBzaXplLCB0aG91Z2ggdGhpcyBpcyBub3QgdGVycmlibHkgZWZmaWNpZW50LgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L3N1cGVyLnJzdCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC9zdXBlci5yc3QKaW5kZXggNmVhZTkyMC4uOTNlNTVkNyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0L3N1cGVyLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2V4dDQvc3VwZXIucnN0CkBAIC01OCw3ICs1OCw3IEBACiAgICAqIC0gMHgxQwogICAgICAtIFxfXF9sZTMyCiAgICAgIC0gc1xfbG9nXF9jbHVzdGVyXF9zaXplCi0gICAgIC0gQ2x1c3RlciBzaXplIGlzICgyIF4gc1xfbG9nXF9jbHVzdGVyXF9zaXplKSBibG9ja3MgaWYgYmlnYWxsb2MgaXMKKyAgICAgLSBDbHVzdGVyIHNpemUgaXMgMiBeICgxMCArIHNcX2xvZ1xfY2x1c3Rlclxfc2l6ZSkgYmxvY2tzIGlmIGJpZ2FsbG9jIGlzCiAgICAgICAgZW5hYmxlZC4gT3RoZXJ3aXNlIHNcX2xvZ1xfY2x1c3Rlclxfc2l6ZSBtdXN0IGVxdWFsIHNcX2xvZ1xfYmxvY2tcX3NpemUuCiAgICAqIC0gMHgyMAogICAgICAtIFxfXF9sZTMyCkBAIC00NDcsNyArNDQ3LDcgQEAKICAgICAgLSBVcHBlciA4IGJpdHMgb2YgdGhlIHNfd3RpbWUgZmllbGQuCiAgICAqIC0gMHgyNzUKICAgICAgLSBcX1xfdTgKLSAgICAgLSBzXF93dGltZV9oaQorICAgICAtIHNcX210aW1lX2hpCiAgICAgIC0gVXBwZXIgOCBiaXRzIG9mIHRoZSBzX210aW1lIGZpZWxkLgogICAgKiAtIDB4Mjc2CiAgICAgIC0gXF9cX3U4CkBAIC00NjYsMTIgKzQ2NiwyMCBAQAogICAgICAtIHNcX2xhc3RfZXJyb3JfdGltZV9oaQogICAgICAtIFVwcGVyIDggYml0cyBvZiB0aGUgc19sYXN0X2Vycm9yX3RpbWVfaGkgZmllbGQuCiAgICAqIC0gMHgyN0EKLSAgICAgLSBcX1xfdThbMl0KLSAgICAgLSBzXF9wYWQKKyAgICAgLSBcX1xfdTgKKyAgICAgLSBzXF9wYWRbMl0KICAgICAgLSBaZXJvIHBhZGRpbmcuCiAgICAqIC0gMHgyN0MKKyAgICAgLSBcX1xfbGUxNgorICAgICAtIHNcX2VuY29kaW5nCisgICAgIC0gRmlsZW5hbWUgY2hhcnNldCBlbmNvZGluZy4KKyAgICogLSAweDI3RQorICAgICAtIFxfXF9sZTE2CisgICAgIC0gc1xfZW5jb2RpbmdfZmxhZ3MKKyAgICAgLSBGaWxlbmFtZSBjaGFyc2V0IGVuY29kaW5nIGZsYWdzLgorICAgKiAtIDB4MjgwCiAgICAgIC0gXF9cX2xlMzIKLSAgICAgLSBzXF9yZXNlcnZlZFs5Nl0KKyAgICAgLSBzXF9yZXNlcnZlZFs5NV0KICAgICAgLSBQYWRkaW5nIHRvIHRoZSBlbmQgb2YgdGhlIGJsb2NrLgogICAgKiAtIDB4M0ZDCiAgICAgIC0gXF9cX2xlMzIKQEAgLTYxNyw3ICs2MjUsNyBAQAogICAgKiAtIDB4ODAKICAgICAgLSBFbmFibGUgYSBmaWxlc3lzdGVtIHNpemUgb2YgMl42NCBibG9ja3MgKElOQ09NUEFUXF82NEJJVCkuCiAgICAqIC0gMHgxMDAKLSAgICAgLSBNdWx0aXBsZSBtb3VudCBwcm90ZWN0aW9uLiBOb3QgaW1wbGVtZW50ZWQgKElOQ09NUEFUXF9NTVApLgorICAgICAtIE11bHRpcGxlIG1vdW50IHByb3RlY3Rpb24gKElOQ09NUEFUXF9NTVApLgogICAgKiAtIDB4MjAwCiAgICAgIC0gRmxleGlibGUgYmxvY2sgZ3JvdXBzLiBTZWUgdGhlIGVhcmxpZXIgZGlzY3Vzc2lvbiBvZiB0aGlzIGZlYXR1cmUKICAgICAgICAoSU5DT01QQVRcX0ZMRVhcX0JHKS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJmcy50eHQgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMudHh0CmluZGV4IDQ5NmZhMjguLjdlMTk5MTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJmcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9mMmZzLnR4dApAQCAtMTU3LDYgKzE1NywxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkIGJ5IGRlZmF1bHQuCiBkYXRhX2ZsdXNoICAgICAgICAgICAgIEVuYWJsZSBkYXRhIGZsdXNoaW5nIGJlZm9yZSBjaGVja3BvaW50IGluIG9yZGVyIHRvCiAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNpc3QgZGF0YSBvZiByZWd1bGFyIGFuZCBzeW1saW5rLgorcmVzZXJ2ZV9yb290PSVkICAgICAgICBTdXBwb3J0IGNvbmZpZ3VyaW5nIHJlc2VydmVkIHNwYWNlIHdoaWNoIGlzIHVzZWQgZm9yCisgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb24gZnJvbSBhIHByaXZpbGVnZWQgdXNlciB3aXRoIHNwZWNpZmllZCB1aWQgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgZ2lkLCB1bml0OiA0S0IsIHRoZSBkZWZhdWx0IGxpbWl0IGlzIDAuMiUgb2YgdXNlciBibG9ja3MuCityZXN1aWQ9JWQgICAgICAgICAgICAgIFRoZSB1c2VyIElEIHdoaWNoIG1heSB1c2UgdGhlIHJlc2VydmVkIGJsb2Nrcy4KK3Jlc2dpZD0lZCAgICAgICAgICAgICAgVGhlIGdyb3VwIElEIHdoaWNoIG1heSB1c2UgdGhlIHJlc2VydmVkIGJsb2Nrcy4KIGZhdWx0X2luamVjdGlvbj0lZCAgICAgRW5hYmxlIGZhdWx0IGluamVjdGlvbiBpbiBhbGwgc3VwcG9ydGVkIHR5cGVzIHdpdGgKICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkIGluamVjdGlvbiByYXRlLgogZmF1bHRfdHlwZT0lZCAgICAgICAgICBTdXBwb3J0IGNvbmZpZ3VyaW5nIGZhdWx0IGluamVjdGlvbiB0eXBlLCBzaG91bGQgYmUKQEAgLTQxMyw2ICs0MTgsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCB3b3VsZCBiZSB1bnVzYWJsZSBpZiBjaGVja3BvaW50PWRpc2FibGUgd2VyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gYmUgc2V0LgogCitlbmNvZGluZyAJICAgICAgICAgICAgICBUaGlzIHNob3dzIHRoZSBlbmNvZGluZyB1c2VkIGZvciBjYXNlZm9sZGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIGNhc2Vmb2xkaW5nIGlzIG5vdCBlbmFibGVkLCByZXR1cm5zIChub25lKQorCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogVVNBR0UKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2luZGV4LnJzdCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvaW5kZXgucnN0CmluZGV4IGZkMmJjZjkuLjJjM2E5Zjc2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2luZGV4LnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2luZGV4LnJzdApAQCAtMzcsMyArMzcsMTMgQEAKICAgIGpvdXJuYWxsaW5nCiAgICBmc2NyeXB0CiAgICBmc3Zlcml0eQorCitGaWxlc3lzdGVtcworPT09PT09PT09PT0KKworRG9jdW1lbnRhdGlvbiBmb3IgZmlsZXN5c3RlbSBpbXBsZW1lbnRhdGlvbnMuCisKKy4uIHRvY3RyZWU6OgorICAgOm1heGRlcHRoOiAyCisKKyAgIHZpcnRpb2ZzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3ZpcnRpb2ZzLnJzdCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvdmlydGlvZnMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmMzM4ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3ZpcnRpb2ZzLnJzdApAQCAtMCwwICsxLDYwIEBACisuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK3ZpcnRpb2ZzOiB2aXJ0aW8tZnMgaG9zdDwtPmd1ZXN0IHNoYXJlZCBmaWxlIHN5c3RlbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gQ29weXJpZ2h0IChDKSAyMDE5IFJlZCBIYXQsIEluYy4KKworSW50cm9kdWN0aW9uCis9PT09PT09PT09PT0KK1RoZSB2aXJ0aW9mcyBmaWxlIHN5c3RlbSBmb3IgTGludXggaW1wbGVtZW50cyBhIGRyaXZlciBmb3IgdGhlIHBhcmF2aXJ0dWFsaXplZAorVklSVElPICJ2aXJ0aW8tZnMiIGRldmljZSBmb3IgZ3Vlc3Q8LT5ob3N0IGZpbGUgc3lzdGVtIHNoYXJpbmcuICBJdCBhbGxvd3MgYQorZ3Vlc3QgdG8gbW91bnQgYSBkaXJlY3RvcnkgdGhhdCBoYXMgYmVlbiBleHBvcnRlZCBvbiB0aGUgaG9zdC4KKworR3Vlc3RzIG9mdGVuIHJlcXVpcmUgYWNjZXNzIHRvIGZpbGVzIHJlc2lkaW5nIG9uIHRoZSBob3N0IG9yIHJlbW90ZSBzeXN0ZW1zLgorVXNlIGNhc2VzIGluY2x1ZGUgbWFraW5nIGZpbGVzIGF2YWlsYWJsZSB0byBuZXcgZ3Vlc3RzIGR1cmluZyBpbnN0YWxsYXRpb24sCitib290aW5nIGZyb20gYSByb290IGZpbGUgc3lzdGVtIGxvY2F0ZWQgb24gdGhlIGhvc3QsIHBlcnNpc3RlbnQgc3RvcmFnZSBmb3IKK3N0YXRlbGVzcyBvciBlcGhlbWVyYWwgZ3Vlc3RzLCBhbmQgc2hhcmluZyBhIGRpcmVjdG9yeSBiZXR3ZWVuIGd1ZXN0cy4KKworQWx0aG91Z2ggaXQgaXMgcG9zc2libGUgdG8gdXNlIGV4aXN0aW5nIG5ldHdvcmsgZmlsZSBzeXN0ZW1zIGZvciBzb21lIG9mIHRoZXNlCit0YXNrcywgdGhleSByZXF1aXJlIGNvbmZpZ3VyYXRpb24gc3RlcHMgdGhhdCBhcmUgaGFyZCB0byBhdXRvbWF0ZSBhbmQgdGhleQorZXhwb3NlIHRoZSBzdG9yYWdlIG5ldHdvcmsgdG8gdGhlIGd1ZXN0LiAgVGhlIHZpcnRpby1mcyBkZXZpY2Ugd2FzIGRlc2lnbmVkIHRvCitzb2x2ZSB0aGVzZSBwcm9ibGVtcyBieSBwcm92aWRpbmcgZmlsZSBzeXN0ZW0gYWNjZXNzIHdpdGhvdXQgbmV0d29ya2luZy4KKworRnVydGhlcm1vcmUgdGhlIHZpcnRpby1mcyBkZXZpY2UgdGFrZXMgYWR2YW50YWdlIG9mIHRoZSBjby1sb2NhdGlvbiBvZiB0aGUKK2d1ZXN0IGFuZCBob3N0IHRvIGluY3JlYXNlIHBlcmZvcm1hbmNlIGFuZCBwcm92aWRlIHNlbWFudGljcyB0aGF0IGFyZSBub3QKK3Bvc3NpYmxlIHdpdGggbmV0d29yayBmaWxlIHN5c3RlbXMuCisKK1VzYWdlCis9PT09PQorTW91bnQgZmlsZSBzeXN0ZW0gd2l0aCB0YWcgYGBteWZzYGAgb24gYGAvbW50YGA6CisKKy4uIGNvZGUtYmxvY2s6OiBzaAorCisgIGd1ZXN0IyBtb3VudCAtdCB2aXJ0aW9mcyBteWZzIC9tbnQKKworUGxlYXNlIHNlZSBodHRwczovL3ZpcnRpby1mcy5naXRsYWIuaW8vIGZvciBkZXRhaWxzIG9uIGhvdyB0byBjb25maWd1cmUgUUVNVQorYW5kIHRoZSB2aXJ0aW9mc2QgZGFlbW9uLgorCitJbnRlcm5hbHMKKz09PT09PT09PQorU2luY2UgdGhlIHZpcnRpby1mcyBkZXZpY2UgdXNlcyB0aGUgRlVTRSBwcm90b2NvbCBmb3IgZmlsZSBzeXN0ZW0gcmVxdWVzdHMsIHRoZQordmlydGlvZnMgZmlsZSBzeXN0ZW0gZm9yIExpbnV4IGlzIGludGVncmF0ZWQgY2xvc2VseSB3aXRoIHRoZSBGVVNFIGZpbGUgc3lzdGVtCitjbGllbnQuICBUaGUgZ3Vlc3QgYWN0cyBhcyB0aGUgRlVTRSBjbGllbnQgd2hpbGUgdGhlIGhvc3QgYWN0cyBhcyB0aGUgRlVTRQorc2VydmVyLiAgVGhlIC9kZXYvZnVzZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUga2VybmVsIGFuZCB1c2Vyc3BhY2UgaXMgcmVwbGFjZWQKK3dpdGggdGhlIHZpcnRpby1mcyBkZXZpY2UgaW50ZXJmYWNlLgorCitGVVNFIHJlcXVlc3RzIGFyZSBwbGFjZWQgaW50byBhIHZpcnRxdWV1ZSBhbmQgcHJvY2Vzc2VkIGJ5IHRoZSBob3N0LiAgVGhlCityZXNwb25zZSBwb3J0aW9uIG9mIHRoZSBidWZmZXIgaXMgZmlsbGVkIGluIGJ5IHRoZSBob3N0IGFuZCB0aGUgZ3Vlc3QgaGFuZGxlcwordGhlIHJlcXVlc3QgY29tcGxldGlvbi4KKworTWFwcGluZyAvZGV2L2Z1c2UgdG8gdmlydHF1ZXVlcyByZXF1aXJlcyBzb2x2aW5nIGRpZmZlcmVuY2VzIGluIHNlbWFudGljcworYmV0d2VlbiAvZGV2L2Z1c2UgYW5kIHZpcnRxdWV1ZXMuICBFYWNoIHRpbWUgdGhlIC9kZXYvZnVzZSBkZXZpY2UgaXMgcmVhZCwgdGhlCitGVVNFIGNsaWVudCBtYXkgY2hvb3NlIHdoaWNoIHJlcXVlc3QgdG8gdHJhbnNmZXIsIG1ha2luZyBpdCBwb3NzaWJsZSB0bworcHJpb3JpdGl6ZSBjZXJ0YWluIHJlcXVlc3RzIG92ZXIgb3RoZXJzLiAgVmlydHF1ZXVlcyBoYXZlIHF1ZXVlIHNlbWFudGljcyBhbmQKK2l0IGlzIG5vdCBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIG9yZGVyIG9mIHJlcXVlc3RzIHRoYXQgaGF2ZSBiZWVuIGVucXVldWVkLgorVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBpZiB0aGUgdmlydHF1ZXVlIGJlY29tZXMgZnVsbCBzaW5jZSBpdCBpcyB0aGVuCitpbXBvc3NpYmxlIHRvIGFkZCBoaWdoIHByaW9yaXR5IHJlcXVlc3RzLiAgSW4gb3JkZXIgdG8gYWRkcmVzcyB0aGlzIGRpZmZlcmVuY2UsCit0aGUgdmlydGlvLWZzIGRldmljZSB1c2VzIGEgImhpcHJpbyIgdmlydHF1ZXVlIHNwZWNpZmljYWxseSBmb3IgcmVxdWVzdHMgdGhhdAoraGF2ZSBwcmlvcml0eSBvdmVyIG5vcm1hbCByZXF1ZXN0cy4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L2RyaXZlcnMucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJpdmVycy5yc3QKaW5kZXggNGJmYjcwNi4uYjRhMGVkMyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJpdmVycy5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJpdmVycy5yc3QKQEAgLTExLDcgKzExLDYgQEAKICAgIG1lc29uCiAgICBwbDExMQogICAgdGVncmEKLSAgIHRpbnlkcm0KICAgIHR2ZTIwMAogICAgdjNkCiAgICB2YzQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0CmluZGV4IGIzMjdiYmMuLjM4NjgwMDggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdApAQCAtMjYzLDYgKzI2MywxOCBAQAogICAgICAgICAgICAgICAgZHJtX2RwX21zdF90b3BvbG9neV9wdXRfcG9ydAogICAgICAgICAgICAgICAgZHJtX2RwX21zdF9nZXRfbXN0Yl9tYWxsb2MgZHJtX2RwX21zdF9wdXRfbXN0Yl9tYWxsb2MKIAorTUlQSSBEQkkgSGVscGVyIEZ1bmN0aW9ucyBSZWZlcmVuY2UKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX21pcGlfZGJpLmMKKyAgIDpkb2M6IG92ZXJ2aWV3CisKKy4uIGtlcm5lbC1kb2M6OiBpbmNsdWRlL2RybS9kcm1fbWlwaV9kYmkuaAorICAgOmludGVybmFsOgorCisuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9taXBpX2RiaS5jCisgICA6ZXhwb3J0OgorCiBNSVBJIERTSSBIZWxwZXIgRnVuY3Rpb25zIFJlZmVyZW5jZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1tLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tbS5yc3QKaW5kZXggYzhlYmQ0Zi4uYjY2NGYwNSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1tLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tbW0ucnN0CkBAIC00MzMsNDMgKzQzMywxMSBAQAogY3JlYXRlZCBmb3IgdGhlIE9QVElNVVMgcmFuZ2Ugb2YgbXVsdGktZ3B1IHBsYXRmb3Jtcy4gVG8gdXNlcnNwYWNlIFBSSU1FCiBidWZmZXJzIGFyZSBkbWEtYnVmIGJhc2VkIGZpbGUgZGVzY3JpcHRvcnMuCiAKLU92ZXJ2aWV3IGFuZCBEcml2ZXIgSW50ZXJmYWNlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorT3ZlcnZpZXcgYW5kIExpZmV0aW1lIFJ1bGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotU2ltaWxhciB0byBHRU0gZ2xvYmFsIG5hbWVzLCBQUklNRSBmaWxlIGRlc2NyaXB0b3JzIGFyZSBhbHNvIHVzZWQgdG8KLXNoYXJlIGJ1ZmZlciBvYmplY3RzIGFjcm9zcyBwcm9jZXNzZXMuIFRoZXkgb2ZmZXIgYWRkaXRpb25hbCBzZWN1cml0eToKLWFzIGZpbGUgZGVzY3JpcHRvcnMgbXVzdCBiZSBleHBsaWNpdGx5IHNlbnQgb3ZlciBVTklYIGRvbWFpbiBzb2NrZXRzIHRvCi1iZSBzaGFyZWQgYmV0d2VlbiBhcHBsaWNhdGlvbnMsIHRoZXkgY2FuJ3QgYmUgZ3Vlc3NlZCBsaWtlIHRoZSBnbG9iYWxseQotdW5pcXVlIEdFTSBuYW1lcy4KLQotRHJpdmVycyB0aGF0IHN1cHBvcnQgdGhlIFBSSU1FIEFQSSBtdXN0IHNldCB0aGUgRFJJVkVSX1BSSU1FIGJpdCBpbiB0aGUKLXN0cnVjdCA6Yzp0eXBlOmBzdHJ1Y3QgZHJtX2RyaXZlciA8ZHJtX2RyaXZlcj5gCi1kcml2ZXJfZmVhdHVyZXMgZmllbGQsIGFuZCBpbXBsZW1lbnQgdGhlIHByaW1lX2hhbmRsZV90b19mZCBhbmQKLXByaW1lX2ZkX3RvX2hhbmRsZSBvcGVyYXRpb25zLgotCi1pbnQgKFwqcHJpbWVfaGFuZGxlX3RvX2ZkKShzdHJ1Y3QgZHJtX2RldmljZSBcKmRldiwgc3RydWN0IGRybV9maWxlCi1cKmZpbGVfcHJpdiwgdWludDMyX3QgaGFuZGxlLCB1aW50MzJfdCBmbGFncywgaW50IFwqcHJpbWVfZmQpOyBpbnQKLShcKnByaW1lX2ZkX3RvX2hhbmRsZSkoc3RydWN0IGRybV9kZXZpY2UgXCpkZXYsIHN0cnVjdCBkcm1fZmlsZQotXCpmaWxlX3ByaXYsIGludCBwcmltZV9mZCwgdWludDMyX3QgXCpoYW5kbGUpOyBUaG9zZSB0d28gb3BlcmF0aW9ucwotY29udmVydCBhIGhhbmRsZSB0byBhIFBSSU1FIGZpbGUgZGVzY3JpcHRvciBhbmQgdmljZSB2ZXJzYS4gRHJpdmVycyBtdXN0Ci11c2UgdGhlIGtlcm5lbCBkbWEtYnVmIGJ1ZmZlciBzaGFyaW5nIGZyYW1ld29yayB0byBtYW5hZ2UgdGhlIFBSSU1FIGZpbGUKLWRlc2NyaXB0b3JzLiBTaW1pbGFyIHRvIHRoZSBtb2RlIHNldHRpbmcgQVBJIFBSSU1FIGlzIGFnbm9zdGljIHRvIHRoZQotdW5kZXJseWluZyBidWZmZXIgb2JqZWN0IG1hbmFnZXIsIGFzIGxvbmcgYXMgaGFuZGxlcyBhcmUgMzJiaXQgdW5zaWduZWQKLWludGVnZXJzLgotCi1XaGlsZSBub24tR0VNIGRyaXZlcnMgbXVzdCBpbXBsZW1lbnQgdGhlIG9wZXJhdGlvbnMgdGhlbXNlbHZlcywgR0VNCi1kcml2ZXJzIG11c3QgdXNlIHRoZSA6YzpmdW5jOmBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCgpYCBhbmQKLTpjOmZ1bmM6YGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKClgIGhlbHBlciBmdW5jdGlvbnMuIFRob3NlCi1oZWxwZXJzIHJlbHkgb24gdGhlIGRyaXZlciBnZW1fcHJpbWVfZXhwb3J0IGFuZCBnZW1fcHJpbWVfaW1wb3J0Ci1vcGVyYXRpb25zIHRvIGNyZWF0ZSBhIGRtYS1idWYgaW5zdGFuY2UgZnJvbSBhIEdFTSBvYmplY3QgKGRtYS1idWYKLWV4cG9ydGVyIHJvbGUpIGFuZCB0byBjcmVhdGUgYSBHRU0gb2JqZWN0IGZyb20gYSBkbWEtYnVmIGluc3RhbmNlCi0oZG1hLWJ1ZiBpbXBvcnRlciByb2xlKS4KLQotc3RydWN0IGRtYV9idWYgXCogKFwqZ2VtX3ByaW1lX2V4cG9ydCkoc3RydWN0IGRybV9kZXZpY2UgXCpkZXYsCi1zdHJ1Y3QgZHJtX2dlbV9vYmplY3QgXCpvYmosIGludCBmbGFncyk7IHN0cnVjdCBkcm1fZ2VtX29iamVjdCBcKgotKFwqZ2VtX3ByaW1lX2ltcG9ydCkoc3RydWN0IGRybV9kZXZpY2UgXCpkZXYsIHN0cnVjdCBkbWFfYnVmCi1cKmRtYV9idWYpOyBUaGVzZSB0d28gb3BlcmF0aW9ucyBhcmUgbWFuZGF0b3J5IGZvciBHRU0gZHJpdmVycyB0aGF0Ci1zdXBwb3J0IFBSSU1FLgorLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYworICAgOmRvYzogb3ZlcnZpZXcgYW5kIGxpZmV0aW1lIHJ1bGVzCiAKIFBSSU1FIEhlbHBlciBGdW5jdGlvbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L2k5MTUucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvaTkxNS5yc3QKaW5kZXggYzM4ZWYwZC4uMzQxNTI1NSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvaTkxNS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUvaTkxNS5yc3QKQEAgLTkxLDkgKzkxLDYgQEAKIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmMKICAgIDppbnRlcm5hbDoKIAotLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKLSAgIDpmdW5jdGlvbnM6IGk5MTVfZ2VtX3RyYWNrX2ZiCi0KIERpc3BsYXkgRklGTyBVbmRlcnJ1biBSZXBvcnRpbmcKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtNDMwLDMxICs0MjcsMzEgQEAKIEd1QwogPT09CiAKK0Zpcm13YXJlIExheW91dAorLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZndfYWJpLmgKKyAgIDpkb2M6IEZpcm13YXJlIExheW91dAorCiBHdUMtc3BlY2lmaWMgZmlybXdhcmUgbG9hZGVyCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZncuYworLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19mdy5jCiAgICA6aW50ZXJuYWw6CiAKIEd1Qy1iYXNlZCBjb21tYW5kIHN1Ym1pc3Npb24KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCiAgICA6ZG9jOiBHdUMtYmFzZWQgY29tbWFuZCBzdWJtaXNzaW9uCiAKLS4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCisuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwogICAgOmludGVybmFsOgogCi1HdUMgRmlybXdhcmUgTGF5b3V0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCi0gICA6ZG9jOiBHdUMgRmlybXdhcmUgTGF5b3V0Ci0KIEd1QyBBZGRyZXNzIFNwYWNlCiAtLS0tLS0tLS0tLS0tLS0tLQogCi0uLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmMKKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuYwogICAgOmRvYzogR3VDIEFkZHJlc3MgU3BhY2UKIAogVHJhY2luZwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvaW50cm9kdWN0aW9uLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2ludHJvZHVjdGlvbi5yc3QKaW5kZXggZmNjYmUzNy4uMjVhNTZlOSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvaW50cm9kdWN0aW9uLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9pbnRyb2R1Y3Rpb24ucnN0CkBAIC01MSw2ICs1MSwyMiBAQAogCiBBbHNvIHJlYWQgdGhlIDpyZWY6YGd1aWRlbGluZXMgZm9yIHRoZSBrZXJuZWwgZG9jdW1lbnRhdGlvbiBhdCBsYXJnZSA8ZG9jX2d1aWRlPmAuCiAKK0RvY3VtZW50YXRpb24gUmVxdWlyZW1lbnRzIGZvciBrQVBJCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBbGwga2VybmVsIEFQSXMgZXhwb3J0ZWQgdG8gb3RoZXIgbW9kdWxlcyBtdXN0IGJlIGRvY3VtZW50ZWQsIGluY2x1ZGluZyB0aGVpcgorZGF0YXN0cnVjdHVyZXMgYW5kIGF0IGxlYXN0IGEgc2hvcnQgaW50cm9kdWN0b3J5IHNlY3Rpb24gZXhwbGFpbmluZyB0aGUgb3ZlcmFsbAorY29uY2VwdHMuIERvY3VtZW50YXRpb24gc2hvdWxkIGJlIHB1dCBpbnRvIHRoZSBjb2RlIGl0c2VsZiBhcyBrZXJuZWxkb2MgY29tbWVudHMKK2FzIG11Y2ggYXMgcmVhc29uYWJsZS4KKworRG8gbm90IGJsaW5kbHkgZG9jdW1lbnQgZXZlcnl0aGluZywgYnV0IGRvY3VtZW50IG9ubHkgd2hhdCdzIHJlbGV2YW50IGZvciBkcml2ZXIKK2F1dGhvcnM6IEludGVybmFsIGZ1bmN0aW9ucyBvZiBkcm0ua28gYW5kIGRlZmluaXRlbHkgc3RhdGljIGZ1bmN0aW9ucyBzaG91bGQgbm90CitoYXZlIGZvcm1hbCBrZXJuZWxkb2MgY29tbWVudHMuIFVzZSBub3JtYWwgQyBjb21tZW50cyBpZiB5b3UgZmVlbCBsaWtlIGEgY29tbWVudAoraXMgd2FycmFudGVkLiBZb3UgbWF5IHVzZSBrZXJuZWxkb2Mgc3ludGF4IGluIHRoZSBjb21tZW50LCBidXQgaXQgc2hhbGwgbm90CitzdGFydCB3aXRoIGEgLyoqIGtlcm5lbGRvYyBtYXJrZXIuIFNpbWlsYXIgZm9yIGRhdGEgc3RydWN0dXJlcywgYW5ub3RhdGUKK2FueXRoaW5nIGVudGlyZWx5IHByaXZhdGUgd2l0aCBgYC8qIHByaXZhdGU6ICovYGAgY29tbWVudHMgYXMgcGVyIHRoZQorZG9jdW1lbnRhdGlvbiBndWlkZS4KKwogR2V0dGluZyBTdGFydGVkCiA9PT09PT09PT09PT09PT0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvdGlueWRybS5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS90aW55ZHJtLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNhNDE1NC4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS90aW55ZHJtLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLWRybS90aW55ZHJtIFRpbnkgRFJNIGRyaXZlcnMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotdGlueWRybSBpcyBhIGNvbGxlY3Rpb24gb2YgRFJNIGRyaXZlcnMgdGhhdCBhcmUgc28gc21hbGwgdGhleSBjYW4gZml0IGluIGEKLXNpbmdsZSBzb3VyY2UgZmlsZS4KLQotSGVscGVycwotPT09PT09PQotCi0uLiBrZXJuZWwtZG9jOjogaW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaAotICAgOmludGVybmFsOgotCi0uLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYwotICAgOmV4cG9ydDoKLQotLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1waXBlLmMKLSAgIDpleHBvcnQ6Ci0KLU1JUEkgREJJIENvbXBhdGlibGUgQ29udHJvbGxlcnMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pcGktZGJpLmMKLSAgIDpkb2M6IG92ZXJ2aWV3Ci0KLS4uIGtlcm5lbC1kb2M6OiBpbmNsdWRlL2RybS90aW55ZHJtL21pcGktZGJpLmgKLSAgIDppbnRlcm5hbDoKLQotLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pcGktZGJpLmMKLSAgIDpleHBvcnQ6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS90b2RvLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L3RvZG8ucnN0CmluZGV4IDBhNDljNWEuLjMyNzg3YWMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L3RvZG8ucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L3RvZG8ucnN0CkBAIC0xNjIsNyArMTYyLDcgQEAKIAogQSBsb3Qgb2YgZHJpdmVycyBmb3J3YXJkIGdlbSBtbWFwIGNhbGxzIHRvIGRtYS1idWYgbW1hcCBmb3IgaW1wb3J0ZWQgYnVmZmVycy4KIEFuZCBhbHNvIGEgbG90IG9mIHRoZW0gZm9yd2FyZCBkbWEtYnVmIG1tYXAgdG8gdGhlIGdlbSBtbWFwIGltcGxlbWVudGF0aW9ucy4KLVdvdWxkIGJlIGdyZWF0IHRvIHJlZmFjdG9yIHRoaXMgYWxsIGludG8gYSBzZXQgb2Ygc21hbGwgY29tbW9uIGhlbHBlcnMuCitUaGVyZSdzIGRybV9nZW1fcHJpbWVfbW1hcCgpIGZvciB0aGlzIG5vdywgYnV0IHN0aWxsIG5lZWRzIHRvIGJlIHJvbGxlZCBvdXQuCiAKIENvbnRhY3Q6IERhbmllbCBWZXR0ZXIKIApAQCAtMTk2LDE1ICsxOTYsNiBAQAogCiBDb250YWN0OiBEYW5pZWwgVmV0dGVyLCBOb3JhbGYgVHJvbm5lcwogCi1SZW1vdmUgdGhlIC0+Z2VtX3ByaW1lX3Jlc19vYmogY2FsbGJhY2sKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSAtPmdlbV9wcmltZV9yZXNfb2JqIGNhbGxiYWNrIGNhbiBiZSByZW1vdmVkIGZyb20gZHJpdmVycyBieSB1c2luZyB0aGUKLXJlc2VydmF0aW9uX29iamVjdCBpbiB0aGUgZHJtX2dlbV9vYmplY3QuIEl0IG1heSBhbHNvIGJlIHBvc3NpYmxlIHRvIHVzZSB0aGUKLWdlbmVyaWMgZHJtX2dlbV9yZXNlcnZhdGlvbl9vYmplY3Rfd2FpdCBoZWxwZXIgZm9yIHdhaXRpbmcgZm9yIGEgYm8uCi0KLUNvbnRhY3Q6IERhbmllbCBWZXR0ZXIKLQogaWRyX2luaXRfYmFzZSgpCiAtLS0tLS0tLS0tLS0tLS0KIApAQCAtMjE1LDIyICsyMDYsMTMgQEAKIAogQ29udGFjdDogRGFuaWVsIFZldHRlcgogCi1EZWZhdWx0cyBmb3IgLmdlbV9wcmltZV9pbXBvcnQgYW5kIGV4cG9ydAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotTW9zdCBkcml2ZXJzIGRvbid0IG5lZWQgdG8gc2V0IGRybV9kcml2ZXItPmdlbV9wcmltZV9pbXBvcnQgYW5kCi0tPmdlbV9wcmltZV9leHBvcnQgbm93IHRoYXQgZHJtX2dlbV9wcmltZV9pbXBvcnQoKSBhbmQgZHJtX2dlbV9wcmltZV9leHBvcnQoKQotYXJlIHRoZSBkZWZhdWx0LgotCiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBHRU0gb2JqZWN0cyBjYW4gbm93IGhhdmUgYSBmdW5jdGlvbiB0YWJsZSBpbnN0ZWFkIG9mIGhhdmluZyB0aGUgY2FsbGJhY2tzIG9uIHRoZQogRFJNIGRyaXZlciBzdHJ1Y3QuIFRoaXMgaXMgbm93IHRoZSBwcmVmZXJyZWQgd2F5IGFuZCBkcml2ZXJzIGNhbiBiZSBtb3ZlZCBvdmVyLgogCi1EUk1fR0VNX0NNQV9WTUFQX0RSSVZFUl9PUFMsIERSTV9HRU1fU0hNRU1fRFJJVkVSX09QUyBhbHJlYWR5IHN1cHBvcnQgdGhpcywgYnV0Ci1EUk1fR0VNX1ZSQU1fRFJJVkVSX1BSSU1FIGRvZXMgbm90IHlldCBhbmQgbmVlZHMgdG8gYmUgYWxpZ25lZCB3aXRoIHRoZSBwcmV2aW91cwotdHdvLiBXZSBhbHNvIG5lZWQgYSAybmQgdmVyc2lvbiBvZiB0aGUgQ01BIGRlZmluZSB0aGF0IGRvZXNuJ3QgcmVxdWlyZSB0aGUKK1dlIGFsc28gbmVlZCBhIDJuZCB2ZXJzaW9uIG9mIHRoZSBDTUEgZGVmaW5lIHRoYXQgZG9lc24ndCByZXF1aXJlIHRoZQogdm1hcHBpbmcgdG8gYmUgcHJlc2VudCAoZGlmZmVyZW50IGhvb2sgZm9yIHByaW1lIGltcG9ydGluZykuIFBsdXMgdGhpcyBuZWVkcyB0bwogYmUgcm9sbGVkIG91dCB0byBhbGwgZHJpdmVycyB1c2luZyB0aGVpciBvd24gaW1wbGVtZW50YXRpb25zLCB0b28uCiAKQEAgLTMxNywxOSArMjk5LDYgQEAKIAogQ29udGFjdDogRGFuaWVsIFZldHRlcgogCi1BZGQgbWlzc2luZyBrZXJuZWxkb2MgZm9yIGV4cG9ydGVkIGZ1bmN0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIERSTSByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbiBpcyBzdGlsbCBsYWNraW5nIGtlcm5lbGRvYyBpbiBhIGZldyBhcmVhcy4gVGhlCi10YXNrIHdvdWxkIGJlIHRvIGNsZWFuIHVwIGludGVyZmFjZXMgbGlrZSBtb3ZpbmcgZnVuY3Rpb25zIGFyb3VuZCBiZXR3ZWVuCi1maWxlcyB0byBiZXR0ZXIgZ3JvdXAgdGhlbSBhbmQgaW1wcm92aW5nIHRoZSBpbnRlcmZhY2VzIGxpa2UgZHJvcHBpbmcgcmV0dXJuCi12YWx1ZXMgZm9yIGZ1bmN0aW9ucyB0aGF0IG5ldmVyIGZhaWwuIFRoZW4gd3JpdGUga2VybmVsZG9jIGZvciBhbGwgZXhwb3J0ZWQKLWZ1bmN0aW9ucyBhbmQgYW4gb3ZlcnZpZXcgc2VjdGlvbiBhbmQgaW50ZWdyYXRlIGl0IGFsbCBpbnRvIHRoZSBkcm0gYm9vay4KLQotU2VlIGh0dHBzOi8vZHJpLmZyZWVkZXNrdG9wLm9yZy9kb2NzL2RybS8gZm9yIHdoYXQncyB0aGVyZSBhbHJlYWR5LgotCi1Db250YWN0OiBEYW5pZWwgVmV0dGVyCi0KIE1ha2UgcGFuaWMgaGFuZGxpbmcgd29yawogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTM5Myw2ICszNjIsOSBAQAogICB0aGlzICh0b2dldGhlciB3aXRoIHRoZSBkcm1fbWlub3ItPmRybV9kZXZpY2UgbW92ZSkgd291bGQgYWxsb3cgdXMgdG8gcmVtb3ZlCiAgIGRlYnVnZnNfaW5pdC4KIAorLSBEcm9wIHRoZSByZXR1cm4gY29kZSBhbmQgZXJyb3IgY2hlY2tpbmcgZnJvbSBhbGwgZGVidWdmcyBmdW5jdGlvbnMuIEdyZWcgS0ggaXMKKyAgd29ya2luZyBvbiB0aGlzIGFscmVhZHkuCisKIENvbnRhY3Q6IERhbmllbCBWZXR0ZXIKIAogS01TIGNsZWFudXBzCkBAIC00NDAsMzkgKzQxMiwyMiBAQAogCiBDb250YWN0OiBEYW5pZWwgVmV0dGVyCiAKK0JhY2tsaWdodCBSZWZhY3RvcmluZworLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0JhY2tsaWdodCBkcml2ZXJzIGhhdmUgYSB0cmlwbGUgZW5hYmxlL2Rpc2FibGUgc3RhdGUsIHdoaWNoIGlzIGEgYml0IG92ZXJraWxsLgorUGxhbiB0byBmaXggdGhpczoKKworMS4gUm9sbCBvdXQgYmFja2xpZ2h0X2VuYWJsZSgpIGFuZCBiYWNrbGlnaHRfZGlzYWJsZSgpIGhlbHBlcnMgZXZlcnl3aGVyZS4gVGhpcworICAgaGFzIHN0YXJ0ZWQgYWxyZWFkeS4KKzIuIEluIGFsbCwgb25seSBsb29rIGF0IG9uZSBvZiB0aGUgdGhyZWUgc3RhdHVzIGJpdHMgc2V0IGJ5IHRoZSBhYm92ZSBoZWxwZXJzLgorMy4gUmVtb3ZlIHRoZSBvdGhlciB0d28gc3RhdHVzIGJpdHMuCisKK0NvbnRhY3Q6IERhbmllbCBWZXR0ZXIKKwogRHJpdmVyIFNwZWNpZmljCiA9PT09PT09PT09PT09PT0KIAotdGlueWRybQotLS0tLS0tLQotCi1UaW55ZHJtIGlzIHRoZSBoZWxwZXIgZHJpdmVyIGZvciByZWFsbHkgc2ltcGxlIGZiIGRyaXZlcnMuIFRoZSBnb2FsIGlzIHRvIG1ha2UKLXRob3NlIGRyaXZlcnMgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLCBzbyBsb3RzIG9mIHJvb20gZm9yIHJlZmFjdG9yaW5nOgotCi0tIGJhY2tsaWdodCBoZWxwZXJzLCBwcm9iYWJseSBiZXN0IHRvIHB1dCB0aGVtIGludG8gYSBuZXcgZHJtX2JhY2tsaWdodC5jLgotICBUaGlzIGlzIGJlY2F1c2UgZHJpdmVycy92aWRlbyBpcyBkZS1mYWN0byB1bm1haW50YWluZWQuIFdlIGNvdWxkIGFsc28KLSAgbW92ZSBkcml2ZXJzL3ZpZGVvL2JhY2tsaWdodCB0byBkcml2ZXJzL2dwdS9iYWNrbGlnaHQgYW5kIHRha2UgaXQgYWxsCi0gIG92ZXIgd2l0aGluIGRybS1taXNjLCBidXQgdGhhdCdzIG1vcmUgd29yay4gQmFja2xpZ2h0IGhlbHBlcnMgcmVxdWlyZSBhIGZhaXIKLSAgYml0IG9mIHJld29ya2luZyBhbmQgcmVmYWN0b3JpbmcuIEEgc2ltcGxlIGV4YW1wbGUgaXMgdGhlIGVuYWJsaW5nIG9mIGEgYmFja2xpZ2h0LgotICBUaW55ZHJtIGhhcyBoZWxwZXJzIGZvciB0aGlzLiBJdCB3b3VsZCBiZSBnb29kIGlmIG90aGVyIGRyaXZlcnMgY2FuIGFsc28gdXNlIHRoZQotICBoZWxwZXIuIEhvd2V2ZXIsIHRoZXJlIGFyZSB2YXJpb3VzIGNhc2VzIHdlIG5lZWQgdG8gY29uc2lkZXIgaS5lIGRpZmZlcmVudAotICBkcml2ZXJzIHNlZW0gdG8gaGF2ZSBkaWZmZXJlbnQgd2F5cyBvZiBlbmFibGluZy9kaXNhYmxpbmcgYSBiYWNrbGlnaHQuCi0gIFdlIGFsc28gbmVlZCB0byBjb25zaWRlciB0aGUgYmFja2xpZ2h0IGRyaXZlcnMgKGxpa2UgZ3Bpb19iYWNrbGlnaHQpLiBUaGUgc2l0dWF0aW9uCi0gIGlzIGZ1cnRoZXIgY29tcGxpY2F0ZWQgYnkgdGhlIGZhY3QgdGhhdCB0aGUgYmFja2xpZ2h0IGlzIHRpZWQgdG8gZmJkZXYKLSAgdmlhIGZiX25vdGlmaWVyX2NhbGxiYWNrKCkgd2hpY2ggaGFzIGNvbXBsaWNhdGVkIGxvZ2ljLiBGb3IgZnVydGhlciBkZXRhaWxzLCByZWZlcgotICB0byB0aGUgZm9sbG93aW5nIGRpc2N1c3Npb24gdGhyZWFkOgotICBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2ZvcnVtLyMhdG9waWMvb3V0cmVhY2h5LWtlcm5lbC84ckJlMzBsd3RkQQotCi0tIHNwaSBoZWxwZXJzLCBwcm9iYWJseSBiZXN0IHB1dCBpbnRvIHNwaSBjb3JlL2hlbHBlciBjb2RlLiBUaGllcnJ5IHNhaWQKLSAgdGhlIHNwaSBtYWludGFpbmVyIGlzIGZhc3QmcmVhY3RpdmUsIHNvIHNob3VsZG4ndCBiZSBhIGJpZyBpc3N1ZS4KLQotLSBleHRyYWN0IHRoZSBtaXBpLWRiaSBoZWxwZXIgKHdlbGwsIHRoZSBub24tdGlueWRybSBzcGVjaWZpYyBwYXJ0cyBhdAotICBsZWFzdCkgaW50byBhIHNlcGFyYXRlIGhlbHBlciwgbGlrZSB3ZSBoYXZlIGZvciBtaXBpLWRzaSBhbHJlYWR5LiBPciBmb2xsb3cKLSAgb25lIG9mIHRoZSBpZGVhcyBmb3IgaGF2aW5nIGEgc2hhcmVkIGRzaS9kYmkgaGVscGVyLCBhYnN0cmFjdGluZyBhd2F5IHRoZQotICB0cmFuc3BvcnQgZGV0YWlscyBtb3JlLgotCi1Db250YWN0OiBOb3JhbGYgVHLDuG5uZXMsIERhbmllbCBWZXR0ZXIKLQogQU1EIERDIERpc3BsYXkgRHJpdmVyCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pbmRleC5yc3QgYi9Eb2N1bWVudGF0aW9uL2luZGV4LnJzdAppbmRleCBiNWZkODdlLi5iODQzZTMxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2luZGV4LnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2luZGV4LnJzdApAQCAtMTQ0LDE2ICsxNDQsMTUgQEAKIC4uIHRvY3RyZWU6OgogICAgOm1heGRlcHRoOiAyCiAKLSAgIHNoL2luZGV4CiAgICBhcm0vaW5kZXgKICAgIGFybTY0L2luZGV4CiAgICBpYTY0L2luZGV4CiAgICBtNjhrL2luZGV4Ci0gICBwb3dlcnBjL2luZGV4CiAgICBtaXBzL2luZGV4CiAgICBuaW9zMi9uaW9zMgogICAgb3BlbnJpc2MvaW5kZXgKICAgIHBhcmlzYy9pbmRleAorICAgcG93ZXJwYy9pbmRleAogICAgcmlzY3YvaW5kZXgKICAgIHMzOTAvaW5kZXgKICAgIHNoL2luZGV4CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2luZmluaWJhbmQvY29yZV9sb2NraW5nLnJzdCBiL0RvY3VtZW50YXRpb24vaW5maW5pYmFuZC9jb3JlX2xvY2tpbmcucnN0CmluZGV4IGYzNDY2OWIuLjhmNzZhOGEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vaW5maW5pYmFuZC9jb3JlX2xvY2tpbmcucnN0CisrKyBiL0RvY3VtZW50YXRpb24vaW5maW5pYmFuZC9jb3JlX2xvY2tpbmcucnN0CkBAIC0yOSwxMCArMjksMTAgQEAKICAgVGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIGV4cG9ydGVkIHRvIHVwcGVyIGxldmVsIHByb3RvY29sCiAgIGNvbnN1bWVyczoKIAotICAgIC0gaWJfY3JlYXRlX2FoCi0gICAgLSBpYl9tb2RpZnlfYWgKLSAgICAtIGliX3F1ZXJ5X2FoCi0gICAgLSBpYl9kZXN0cm95X2FoCisgICAgLSByZG1hX2NyZWF0ZV9haAorICAgIC0gcmRtYV9tb2RpZnlfYWgKKyAgICAtIHJkbWFfcXVlcnlfYWgKKyAgICAtIHJkbWFfZGVzdHJveV9haAogICAgIC0gaWJfcG9zdF9zZW5kCiAgICAgLSBpYl9wb3N0X3JlY3YKICAgICAtIGliX3JlcV9ub3RpZnlfY3EKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24va2J1aWxkL2tidWlsZC5yc3QgYi9Eb2N1bWVudGF0aW9uL2tidWlsZC9rYnVpbGQucnN0CmluZGV4IDYxYjIxODEuLmYxZTVkY2UgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24va2J1aWxkL2tidWlsZC5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9rYnVpbGQva2J1aWxkLnJzdApAQCAtMTA1LDYgKzEwNSwxNSBAQAogCiBTZXR0aW5nICJPPS4uLiIgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIEtCVUlMRF9PVVRQVVQuCiAKK0tCVUlMRF9FWFRSQV9XQVJOCistLS0tLS0tLS0tLS0tLS0tLQorU3BlY2lmeSB0aGUgZXh0cmEgYnVpbGQgY2hlY2tzLiBUaGUgc2FtZSB2YWx1ZSBjYW4gYmUgYXNzaWduZWQgYnkgcGFzc2luZworVz0uLi4gZnJvbSB0aGUgY29tbWFuZCBsaW5lLgorCitTZWUgYG1ha2UgaGVscGAgZm9yIHRoZSBsaXN0IG9mIHRoZSBzdXBwb3J0ZWQgdmFsdWVzLgorCitTZXR0aW5nICJXPS4uLiIgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIEtCVUlMRF9FWFRSQV9XQVJOLgorCiBLQlVJTERfREVCQVJDSAogLS0tLS0tLS0tLS0tLS0KIEZvciB0aGUgZGViLXBrZyB0YXJnZXQsIGFsbG93cyBvdmVycmlkaW5nIHRoZSBub3JtYWwgaGV1cmlzdGljcyBkZXBsb3llZCBieQpAQCAtMjQxLDExICsyNTAsNiBAQAogCiAgICAgJCBtYWtlIEFMTFNPVVJDRV9BUkNIUz1hbGwgdGFncwogCi1LQlVJTERfRU5BQkxFX0VYVFJBX0dDQ19DSEVDS1MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSWYgZW5hYmxlZCBvdmVyIHRoZSBtYWtlIGNvbW1hbmQgbGluZSB3aXRoICJXPTEiLCBpdCB0dXJucyBvbiBhZGRpdGlvbmFsCi1nY2MgLVcuLi4gb3B0aW9ucyBmb3IgbW9yZSBleHRlbnNpdmUgYnVpbGQtdGltZSBjaGVja2luZy4KLQogS0JVSUxEX0JVSUxEX1RJTUVTVEFNUAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU2V0dGluZyB0aGlzIHRvIGEgZGF0ZSBzdHJpbmcgb3ZlcnJpZGVzIHRoZSB0aW1lc3RhbXAgdXNlZCBpbiB0aGUKQEAgLTI1OCwxNyArMjYyLDMgQEAKIFRoZXNlIHR3byB2YXJpYWJsZXMgYWxsb3cgdG8gb3ZlcnJpZGUgdGhlIHVzZXJAaG9zdCBzdHJpbmcgZGlzcGxheWVkIGR1cmluZwogYm9vdCBhbmQgaW4gL3Byb2MvdmVyc2lvbi4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZHMKIHdob2FtaSBhbmQgaG9zdCwgcmVzcGVjdGl2ZWx5LgotCi1LQlVJTERfTERTCi0tLS0tLS0tLS0tCi1UaGUgbGlua2VyIHNjcmlwdCB3aXRoIGZ1bGwgcGF0aC4gQXNzaWduZWQgYnkgdGhlIHRvcC1sZXZlbCBNYWtlZmlsZS4KLQotS0JVSUxEX1ZNTElOVVhfT0JKUwotLS0tLS0tLS0tLS0tLS0tLS0tLQotQWxsIG9iamVjdCBmaWxlcyBmb3Igdm1saW51eC4gVGhleSBhcmUgbGlua2VkIHRvIHZtbGludXggaW4gdGhlIHNhbWUKLW9yZGVyIGFzIGxpc3RlZCBpbiBLQlVJTERfVk1MSU5VWF9PQkpTLgotCi1LQlVJTERfVk1MSU5VWF9MSUJTCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi1BbGwgLmEgImxpYiIgZmlsZXMgZm9yIHZtbGludXguIEtCVUlMRF9WTUxJTlVYX09CSlMgYW5kIEtCVUlMRF9WTUxJTlVYX0xJQlMKLXRvZ2V0aGVyIHNwZWNpZnkgYWxsIHRoZSBvYmplY3QgZmlsZXMgdXNlZCB0byBsaW5rIHZtbGludXguCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2tidWlsZC9tYWtlZmlsZXMucnN0IGIvRG9jdW1lbnRhdGlvbi9rYnVpbGQvbWFrZWZpbGVzLnJzdAppbmRleCBmNGYwZjdmLi42YmE5ZDUzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2tidWlsZC9tYWtlZmlsZXMucnN0CisrKyBiL0RvY3VtZW50YXRpb24va2J1aWxkL21ha2VmaWxlcy5yc3QKQEAgLTQ3MSwyMSArNDcxLDYgQEAKIAlUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBhbmQgaWYgc3VwcGxpZWQgd2lsbCBiZSB1c2VkCiAJaWYgZmlyc3QgYXJndW1lbnQgaXMgbm90IHN1cHBvcnRlZC4KIAotICAgIGNjLWxkb3B0aW9uCi0JY2MtbGRvcHRpb24gaXMgdXNlZCB0byBjaGVjayBpZiAkKENDKSB3aGVuIHVzZWQgdG8gbGluayBvYmplY3QgZmlsZXMKLQlzdXBwb3J0cyB0aGUgZ2l2ZW4gb3B0aW9uLiAgQW4gb3B0aW9uYWwgc2Vjb25kIG9wdGlvbiBtYXkgYmUKLQlzcGVjaWZpZWQgaWYgZmlyc3Qgb3B0aW9uIGFyZSBub3Qgc3VwcG9ydGVkLgotCi0JRXhhbXBsZTo6Ci0KLQkJI2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZQotCQl2c3lzY2FsbC1mbGFncyArPSAkKGNhbGwgY2MtbGRvcHRpb24sIC1XbCQoY29tbWEpLS1oYXNoLXN0eWxlPXN5c3YpCi0KLQlJbiB0aGUgYWJvdmUgZXhhbXBsZSwgdnN5c2NhbGwtZmxhZ3Mgd2lsbCBiZSBhc3NpZ25lZCB0aGUgb3B0aW9uCi0JLVdsJChjb21tYSktLWhhc2gtc3R5bGU9c3lzdiBpZiBpdCBpcyBzdXBwb3J0ZWQgYnkgJChDQykuCi0JVGhlIHNlY29uZCBhcmd1bWVudCBpcyBvcHRpb25hbCwgYW5kIGlmIHN1cHBsaWVkIHdpbGwgYmUgdXNlZAotCWlmIGZpcnN0IGFyZ3VtZW50IGlzIG5vdCBzdXBwb3J0ZWQuCi0KICAgICBhcy1pbnN0cgogCWFzLWluc3RyIGNoZWNrcyBpZiB0aGUgYXNzZW1ibGVyIHJlcG9ydHMgYSBzcGVjaWZpYyBpbnN0cnVjdGlvbgogCWFuZCB0aGVuIG91dHB1dHMgZWl0aGVyIG9wdGlvbjEgb3Igb3B0aW9uMgpAQCAtNzY1LDcgKzc1MCw4IEBACiBnZW5lcmF0ZWQgYnkga2J1aWxkIGFyZSBkZWxldGVkIGFsbCBvdmVyIHRoZSBrZXJuZWwgc3JjIHRyZWUgd2hlbgogIm1ha2UgY2xlYW4iIGlzIGV4ZWN1dGVkLgogCi1BZGRpdGlvbmFsIGZpbGVzIGNhbiBiZSBzcGVjaWZpZWQgaW4ga2J1aWxkIG1ha2VmaWxlcyBieSB1c2Ugb2YgJChjbGVhbi1maWxlcykuCitBZGRpdGlvbmFsIGZpbGVzIG9yIGRpcmVjdG9yaWVzIGNhbiBiZSBzcGVjaWZpZWQgaW4ga2J1aWxkIG1ha2VmaWxlcyBieSB1c2Ugb2YKKyQoY2xlYW4tZmlsZXMpLgogCiAJRXhhbXBsZTo6CiAKQEAgLTc3NiwyMyArNzYyLDggQEAKIEtidWlsZCB3aWxsIGFzc3VtZSBmaWxlcyB0byBiZSBpbiB0aGUgc2FtZSByZWxhdGl2ZSBkaXJlY3RvcnkgYXMgdGhlCiBNYWtlZmlsZSwgZXhjZXB0IGlmIHByZWZpeGVkIHdpdGggJChvYmp0cmVlKS4KIAotVG8gZGVsZXRlIGEgZGlyZWN0b3J5IGhpZXJhcmNoeSB1c2U6Ci0KLQlFeGFtcGxlOjoKLQotCQkjc2NyaXB0cy9wYWNrYWdlL01ha2VmaWxlCi0JCWNsZWFuLWRpcnMgOj0gJChvYmp0cmVlKS9kZWJpYW4vCi0KLVRoaXMgd2lsbCBkZWxldGUgdGhlIGRpcmVjdG9yeSBkZWJpYW4gaW4gdGhlIHRvcGxldmVsIGRpcmVjdG9yeSwgaW5jbHVkaW5nIGFsbAotc3ViZGlyZWN0b3JpZXMuCi0KLVRvIGV4Y2x1ZGUgY2VydGFpbiBmaWxlcyBmcm9tIG1ha2UgY2xlYW4sIHVzZSB0aGUgJChuby1jbGVhbi1maWxlcykgdmFyaWFibGUuCi1UaGlzIGlzIG9ubHkgYSBzcGVjaWFsIGNhc2UgdXNlZCBpbiB0aGUgdG9wIGxldmVsIEtidWlsZCBmaWxlOgotCi0JRXhhbXBsZTo6Ci0KLQkJI0tidWlsZAotCQluby1jbGVhbi1maWxlcyA6PSAkKGJvdW5kcy1maWxlKSAkKG9mZnNldHMtZmlsZSkKK1RvIGV4Y2x1ZGUgY2VydGFpbiBmaWxlcyBvciBkaXJlY3RvcmllcyBmcm9tIG1ha2UgY2xlYW4sIHVzZSB0aGUKKyQobm8tY2xlYW4tZmlsZXMpIHZhcmlhYmxlLgogCiBVc3VhbGx5IGtidWlsZCBkZXNjZW5kcyBkb3duIGluIHN1YmRpcmVjdG9yaWVzIGR1ZSB0byAib2JqLSogOj0gZGlyLyIsCiBidXQgaW4gdGhlIGFyY2hpdGVjdHVyZSBtYWtlZmlsZXMgd2hlcmUgdGhlIGtidWlsZCBpbmZyYXN0cnVjdHVyZQpAQCAtOTg4LDEzICs5NTksMjUgQEAKIAkkKEtCVUlMRF9BUkZMQUdTKSBzZXQgYnkgdGhlIHRvcCBsZXZlbCBNYWtlZmlsZSB0byAiRCIgKGRldGVybWluaXN0aWMKIAltb2RlKSBpZiB0aGlzIG9wdGlvbiBpcyBzdXBwb3J0ZWQgYnkgJChBUikuCiAKLSAgICBBUkNIX0NQUEZMQUdTLCBBUkNIX0FGTEFHUywgQVJDSF9DRkxBR1MgICBPdmVycmlkZXMgdGhlIGtidWlsZCBkZWZhdWx0cworICAgIEtCVUlMRF9MRFMKIAotCVRoZXNlIHZhcmlhYmxlcyBhcmUgYXBwZW5kZWQgdG8gdGhlIEtCVUlMRF9DUFBGTEFHUywKLQlLQlVJTERfQUZMQUdTLCBhbmQgS0JVSUxEX0NGTEFHUywgcmVzcGVjdGl2ZWx5LCBhZnRlciB0aGUKLQl0b3AtbGV2ZWwgTWFrZWZpbGUgaGFzIHNldCBhbnkgb3RoZXIgZmxhZ3MuIFRoaXMgcHJvdmlkZXMgYQotCW1lYW5zIGZvciBhbiBhcmNoaXRlY3R1cmUgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHRzLgorCVRoZSBsaW5rZXIgc2NyaXB0IHdpdGggZnVsbCBwYXRoLiBBc3NpZ25lZCBieSB0aGUgdG9wLWxldmVsIE1ha2VmaWxlLgogCisgICAgS0JVSUxEX0xEU19NT0RVTEUKKworCVRoZSBtb2R1bGUgbGlua2VyIHNjcmlwdCB3aXRoIGZ1bGwgcGF0aC4gQXNzaWduZWQgYnkgdGhlIHRvcC1sZXZlbAorCU1ha2VmaWxlIGFuZCBhZGRpdGlvbmFsbHkgYnkgdGhlIGFyY2ggTWFrZWZpbGUuCisKKyAgICBLQlVJTERfVk1MSU5VWF9PQkpTCisKKwlBbGwgb2JqZWN0IGZpbGVzIGZvciB2bWxpbnV4LiBUaGV5IGFyZSBsaW5rZWQgdG8gdm1saW51eCBpbiB0aGUgc2FtZQorCW9yZGVyIGFzIGxpc3RlZCBpbiBLQlVJTERfVk1MSU5VWF9PQkpTLgorCisgICAgS0JVSUxEX1ZNTElOVVhfTElCUworCisJQWxsIC5hICJsaWIiIGZpbGVzIGZvciB2bWxpbnV4LiBLQlVJTERfVk1MSU5VWF9PQkpTIGFuZAorCUtCVUlMRF9WTUxJTlVYX0xJQlMgdG9nZXRoZXIgc3BlY2lmeSBhbGwgdGhlIG9iamVjdCBmaWxlcyB1c2VkIHRvCisJbGluayB2bWxpbnV4LgogCiA2LjIgQWRkIHByZXJlcXVpc2l0ZXMgdG8gYXJjaGhlYWRlcnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTEzOSw3ICsxMTIyLDcgQEAKIAogICAgIGhlYWRlci10ZXN0LXkKIAotCWhlYWRlci10ZXN0LXkgc3BlY2lmaWVzIGhlYWRlcnMgKCouaCkgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRoYXQKKwloZWFkZXItdGVzdC15IHNwZWNpZmllcyBoZWFkZXJzIChgKi5oYCkgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRoYXQKIAlzaG91bGQgYmUgY29tcGlsZSB0ZXN0ZWQgdG8gZW5zdXJlIHRoZXkgYXJlIHNlbGYtY29udGFpbmVkLAogCWkuZS4gY29tcGlsYWJsZSBhcyBzdGFuZGFsb25lIHVuaXRzLiBJZiBDT05GSUdfSEVBREVSX1RFU1QgaXMgZW5hYmxlZCwKIAl0aGlzIGJ1aWxkcyB0aGVtIGFzIHBhcnQgb2YgZXh0cmEteS4KQEAgLTExNDcsMTEgKzExMzAsMTEgQEAKICAgICBoZWFkZXItdGVzdC1wYXR0ZXJuLXkKIAogCVRoaXMgd29ya3MgYXMgYSB3ZWFrZXIgdmVyc2lvbiBvZiBoZWFkZXItdGVzdC15LCBhbmQgYWNjZXB0cyB3aWxkY2FyZAotCXBhdHRlcm5zLiBUaGUgdHlwaWNhbCB1c2FnZSBpczoKKwlwYXR0ZXJucy4gVGhlIHR5cGljYWwgdXNhZ2UgaXM6OgogCi0JCSAgaGVhZGVyLXRlc3QtcGF0dGVybi15ICs9ICouaAorCQloZWFkZXItdGVzdC1wYXR0ZXJuLXkgKz0gKi5oCiAKLQlUaGlzIHNwZWNpZmllcyBhbGwgdGhlIGZpbGVzIHRoYXQgbWF0Y2hlcyB0byAnKi5oJyBpbiB0aGUgY3VycmVudAorCVRoaXMgc3BlY2lmaWVzIGFsbCB0aGUgZmlsZXMgdGhhdCBtYXRjaGVzIHRvIGAqLmhgIGluIHRoZSBjdXJyZW50CiAJZGlyZWN0b3J5LCBidXQgdGhlIGZpbGVzIGluICdoZWFkZXItdGVzdC0nIGFyZSBleGNsdWRlZC4KIAogNi43IENvbW1hbmRzIHVzZWZ1bCBmb3IgYnVpbGRpbmcgYSBib290IGltYWdlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2tidWlsZC9tb2R1bGVzLnJzdCBiL0RvY3VtZW50YXRpb24va2J1aWxkL21vZHVsZXMucnN0CmluZGV4IDI0ZTc2MzQuLmQyYWU3OTkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24va2J1aWxkL21vZHVsZXMucnN0CisrKyBiL0RvY3VtZW50YXRpb24va2J1aWxkL21vZHVsZXMucnN0CkBAIC00NzAsOSArNDcwLDEyIEBACiAKIAlUaGUgc3ludGF4IG9mIHRoZSBNb2R1bGUuc3ltdmVycyBmaWxlIGlzOjoKIAotCQk8Q1JDPgkgICAgPFN5bWJvbD4JICAgICAgIDxtb2R1bGU+CisJPENSQz4gICAgICAgPFN5bWJvbD4gICAgICAgICAgPE5hbWVzcGFjZT4gIDxNb2R1bGU+ICAgICAgICAgICAgICAgICAgICAgICAgIDxFeHBvcnQgVHlwZT4KIAotCQkweDJkMDM2ODM0ICBzY3NpX3JlbW92ZV9ob3N0ICAgZHJpdmVycy9zY3NpL3Njc2lfbW9kCisJMHhlMWNjMmEwNSAgdXNiX3N0b3Jfc3VzcGVuZCAgVVNCX1NUT1JBR0UgIGRyaXZlcnMvdXNiL3N0b3JhZ2UvdXNiLXN0b3JhZ2UgIEVYUE9SVF9TWU1CT0xfR1BMCisKKwlUaGUgZmllbGRzIGFyZSBzZXBhcmF0ZWQgYnkgdGFicyBhbmQgdmFsdWVzIG1heSBiZSBlbXB0eSAoZS5nLgorCWlmIG5vIG5hbWVzcGFjZSBpcyBkZWZpbmVkIGZvciBhbiBleHBvcnRlZCBzeW1ib2wpLgogCiAJRm9yIGEga2VybmVsIGJ1aWxkIHdpdGhvdXQgQ09ORklHX01PRFZFUlNJT05TIGVuYWJsZWQsIHRoZSBDUkMKIAl3b3VsZCByZWFkIDB4MDAwMDAwMDAuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2tidWlsZC9uYW1lc3BhY2VzLnJzdCBiL0RvY3VtZW50YXRpb24va2J1aWxkL25hbWVzcGFjZXMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4MmVkN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2tidWlsZC9uYW1lc3BhY2VzLnJzdApAQCAtMCwwICsxLDE1NCBAQAorPT09PT09PT09PT09PT09PT0KK1N5bWJvbCBOYW1lc3BhY2VzCis9PT09PT09PT09PT09PT09PQorCitUaGUgZm9sbG93aW5nIGRvY3VtZW50IGRlc2NyaWJlcyBob3cgdG8gdXNlIFN5bWJvbCBOYW1lc3BhY2VzIHRvIHN0cnVjdHVyZSB0aGUKK2V4cG9ydCBzdXJmYWNlIG9mIGluLWtlcm5lbCBzeW1ib2xzIGV4cG9ydGVkIHRocm91Z2ggdGhlIGZhbWlseSBvZgorRVhQT1JUX1NZTUJPTCgpIG1hY3Jvcy4KKworLi4gVGFibGUgb2YgQ29udGVudHMKKworCT09PSAxIEludHJvZHVjdGlvbgorCT09PSAyIEhvdyB0byBkZWZpbmUgU3ltYm9sIE5hbWVzcGFjZXMKKwkgICAtLS0gMi4xIFVzaW5nIHRoZSBFWFBPUlRfU1lNQk9MIG1hY3JvcworCSAgIC0tLSAyLjIgVXNpbmcgdGhlIERFRkFVTFRfU1lNQk9MX05BTUVTUEFDRSBkZWZpbmUKKwk9PT0gMyBIb3cgdG8gdXNlIFN5bWJvbHMgZXhwb3J0ZWQgaW4gTmFtZXNwYWNlcworCT09PSA0IExvYWRpbmcgTW9kdWxlcyB0aGF0IHVzZSBuYW1lc3BhY2VkIFN5bWJvbHMKKwk9PT0gNSBBdXRvbWF0aWNhbGx5IGNyZWF0aW5nIE1PRFVMRV9JTVBPUlRfTlMgc3RhdGVtZW50cworCisxLiBJbnRyb2R1Y3Rpb24KKz09PT09PT09PT09PT09PQorCitTeW1ib2wgTmFtZXNwYWNlcyBoYXZlIGJlZW4gaW50cm9kdWNlZCBhcyBhIG1lYW5zIHRvIHN0cnVjdHVyZSB0aGUgZXhwb3J0CitzdXJmYWNlIG9mIHRoZSBpbi1rZXJuZWwgQVBJLiBJdCBhbGxvd3Mgc3Vic3lzdGVtIG1haW50YWluZXJzIHRvIHBhcnRpdGlvbgordGhlaXIgZXhwb3J0ZWQgc3ltYm9scyBpbnRvIHNlcGFyYXRlIG5hbWVzcGFjZXMuIFRoYXQgaXMgdXNlZnVsIGZvcgorZG9jdW1lbnRhdGlvbiBwdXJwb3NlcyAodGhpbmsgb2YgdGhlIFNVQlNZU1RFTV9ERUJVRyBuYW1lc3BhY2UpIGFzIHdlbGwgYXMgZm9yCitsaW1pdGluZyB0aGUgYXZhaWxhYmlsaXR5IG9mIGEgc2V0IG9mIHN5bWJvbHMgZm9yIHVzZSBpbiBvdGhlciBwYXJ0cyBvZiB0aGUKK2tlcm5lbC4gQXMgb2YgdG9kYXksIG1vZHVsZXMgdGhhdCBtYWtlIHVzZSBvZiBzeW1ib2xzIGV4cG9ydGVkIGludG8gbmFtZXNwYWNlcywKK2FyZSByZXF1aXJlZCB0byBpbXBvcnQgdGhlIG5hbWVzcGFjZS4gT3RoZXJ3aXNlIHRoZSBrZXJuZWwgd2lsbCwgZGVwZW5kaW5nIG9uCitpdHMgY29uZmlndXJhdGlvbiwgcmVqZWN0IGxvYWRpbmcgdGhlIG1vZHVsZSBvciB3YXJuIGFib3V0IGEgbWlzc2luZyBpbXBvcnQuCisKKzIuIEhvdyB0byBkZWZpbmUgU3ltYm9sIE5hbWVzcGFjZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworU3ltYm9scyBjYW4gYmUgZXhwb3J0ZWQgaW50byBuYW1lc3BhY2UgdXNpbmcgZGlmZmVyZW50IG1ldGhvZHMuIEFsbCBvZiB0aGVtIGFyZQorY2hhbmdpbmcgdGhlIHdheSBFWFBPUlRfU1lNQk9MIGFuZCBmcmllbmRzIGFyZSBpbnN0cnVtZW50ZWQgdG8gY3JlYXRlIGtzeW10YWIKK2VudHJpZXMuCisKKzIuMSBVc2luZyB0aGUgRVhQT1JUX1NZTUJPTCBtYWNyb3MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSW4gYWRkaXRpb24gdG8gdGhlIG1hY3JvcyBFWFBPUlRfU1lNQk9MKCkgYW5kIEVYUE9SVF9TWU1CT0xfR1BMKCksIHRoYXQgYWxsb3cKK2V4cG9ydGluZyBvZiBrZXJuZWwgc3ltYm9scyB0byB0aGUga2VybmVsIHN5bWJvbCB0YWJsZSwgdmFyaWFudHMgb2YgdGhlc2UgYXJlCithdmFpbGFibGUgdG8gZXhwb3J0IHN5bWJvbHMgaW50byBhIGNlcnRhaW4gbmFtZXNwYWNlOiBFWFBPUlRfU1lNQk9MX05TKCkgYW5kCitFWFBPUlRfU1lNQk9MX05TX0dQTCgpLiBUaGV5IHRha2Ugb25lIGFkZGl0aW9uYWwgYXJndW1lbnQ6IHRoZSBuYW1lc3BhY2UuCitQbGVhc2Ugbm90ZSB0aGF0IGR1ZSB0byBtYWNybyBleHBhbnNpb24gdGhhdCBhcmd1bWVudCBuZWVkcyB0byBiZSBhCitwcmVwcm9jZXNzb3Igc3ltYm9sLiBFLmcuIHRvIGV4cG9ydCB0aGUgc3ltYm9sIGB1c2Jfc3Rvcl9zdXNwZW5kYCBpbnRvIHRoZQorbmFtZXNwYWNlIGBVU0JfU1RPUkFHRWAsIHVzZTo6CisKKwlFWFBPUlRfU1lNQk9MX05TKHVzYl9zdG9yX3N1c3BlbmQsIFVTQl9TVE9SQUdFKTsKKworVGhlIGNvcnJlc3BvbmRpbmcga3N5bXRhYiBlbnRyeSBzdHJ1Y3QgYGtlcm5lbF9zeW1ib2xgIHdpbGwgaGF2ZSB0aGUgbWVtYmVyCitgbmFtZXNwYWNlYCBzZXQgYWNjb3JkaW5nbHkuIEEgc3ltYm9sIHRoYXQgaXMgZXhwb3J0ZWQgd2l0aG91dCBhIG5hbWVzcGFjZSB3aWxsCityZWZlciB0byBgTlVMTGAuIFRoZXJlIGlzIG5vIGRlZmF1bHQgbmFtZXNwYWNlIGlmIG5vbmUgaXMgZGVmaW5lZC4gYG1vZHBvc3RgCithbmQga2VybmVsL21vZHVsZS5jIG1ha2UgdXNlIHRoZSBuYW1lc3BhY2UgYXQgYnVpbGQgdGltZSBvciBtb2R1bGUgbG9hZCB0aW1lLAorcmVzcGVjdGl2ZWx5LgorCisyLjIgVXNpbmcgdGhlIERFRkFVTFRfU1lNQk9MX05BTUVTUEFDRSBkZWZpbmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitEZWZpbmluZyBuYW1lc3BhY2VzIGZvciBhbGwgc3ltYm9scyBvZiBhIHN1YnN5c3RlbSBjYW4gYmUgdmVyeSB2ZXJib3NlIGFuZCBtYXkKK2JlY29tZSBoYXJkIHRvIG1haW50YWluLiBUaGVyZWZvcmUgYSBkZWZhdWx0IGRlZmluZSAoREVGQVVMVF9TWU1CT0xfTkFNRVNQQUNFKQoraXMgYmVlbiBwcm92aWRlZCwgdGhhdCwgaWYgc2V0LCB3aWxsIGJlY29tZSB0aGUgZGVmYXVsdCBmb3IgYWxsIEVYUE9SVF9TWU1CT0woKQorYW5kIEVYUE9SVF9TWU1CT0xfR1BMKCkgbWFjcm8gZXhwYW5zaW9ucyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEgbmFtZXNwYWNlLgorCitUaGVyZSBhcmUgbXVsdGlwbGUgd2F5cyBvZiBzcGVjaWZ5aW5nIHRoaXMgZGVmaW5lIGFuZCBpdCBkZXBlbmRzIG9uIHRoZQorc3Vic3lzdGVtIGFuZCB0aGUgbWFpbnRhaW5lcidzIHByZWZlcmVuY2UsIHdoaWNoIG9uZSB0byB1c2UuIFRoZSBmaXJzdCBvcHRpb24KK2lzIHRvIGRlZmluZSB0aGUgZGVmYXVsdCBuYW1lc3BhY2UgaW4gdGhlIGBNYWtlZmlsZWAgb2YgdGhlIHN1YnN5c3RlbS4gRS5nLiB0bworZXhwb3J0IGFsbCBzeW1ib2xzIGRlZmluZWQgaW4gdXNiLWNvbW1vbiBpbnRvIHRoZSBuYW1lc3BhY2UgVVNCX0NPTU1PTiwgYWRkIGEKK2xpbmUgbGlrZSB0aGlzIHRvIGRyaXZlcnMvdXNiL2NvbW1vbi9NYWtlZmlsZTo6CisKKwljY2ZsYWdzLXkgKz0gLURERUZBVUxUX1NZTUJPTF9OQU1FU1BBQ0U9VVNCX0NPTU1PTgorCitUaGF0IHdpbGwgYWZmZWN0IGFsbCBFWFBPUlRfU1lNQk9MKCkgYW5kIEVYUE9SVF9TWU1CT0xfR1BMKCkgc3RhdGVtZW50cy4gQQorc3ltYm9sIGV4cG9ydGVkIHdpdGggRVhQT1JUX1NZTUJPTF9OUygpIHdoaWxlIHRoaXMgZGVmaW5pdGlvbiBpcyBwcmVzZW50LCB3aWxsCitzdGlsbCBiZSBleHBvcnRlZCBpbnRvIHRoZSBuYW1lc3BhY2UgdGhhdCBpcyBwYXNzZWQgYXMgdGhlIG5hbWVzcGFjZSBhcmd1bWVudAorYXMgdGhpcyBhcmd1bWVudCBoYXMgcHJlZmVyZW5jZSBvdmVyIGEgZGVmYXVsdCBzeW1ib2wgbmFtZXNwYWNlLgorCitBIHNlY29uZCBvcHRpb24gdG8gZGVmaW5lIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBpcyBkaXJlY3RseSBpbiB0aGUgY29tcGlsYXRpb24KK3VuaXQgYXMgcHJlcHJvY2Vzc29yIHN0YXRlbWVudC4gVGhlIGFib3ZlIGV4YW1wbGUgd291bGQgdGhlbiByZWFkOjoKKworCSN1bmRlZiAgREVGQVVMVF9TWU1CT0xfTkFNRVNQQUNFCisJI2RlZmluZSBERUZBVUxUX1NZTUJPTF9OQU1FU1BBQ0UgVVNCX0NPTU1PTgorCit3aXRoaW4gdGhlIGNvcnJlc3BvbmRpbmcgY29tcGlsYXRpb24gdW5pdCBiZWZvcmUgYW55IEVYUE9SVF9TWU1CT0wgbWFjcm8gaXMKK3VzZWQuCisKKzMuIEhvdyB0byB1c2UgU3ltYm9scyBleHBvcnRlZCBpbiBOYW1lc3BhY2VzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJbiBvcmRlciB0byB1c2Ugc3ltYm9scyB0aGF0IGFyZSBleHBvcnRlZCBpbnRvIG5hbWVzcGFjZXMsIGtlcm5lbCBtb2R1bGVzIG5lZWQKK3RvIGV4cGxpY2l0bHkgaW1wb3J0IHRoZXNlIG5hbWVzcGFjZXMuIE90aGVyd2lzZSB0aGUga2VybmVsIG1pZ2h0IHJlamVjdCB0bworbG9hZCB0aGUgbW9kdWxlLiBUaGUgbW9kdWxlIGNvZGUgaXMgcmVxdWlyZWQgdG8gdXNlIHRoZSBtYWNybyBNT0RVTEVfSU1QT1JUX05TCitmb3IgdGhlIG5hbWVzcGFjZXMgaXQgdXNlcyBzeW1ib2xzIGZyb20uIEUuZy4gYSBtb2R1bGUgdXNpbmcgdGhlCit1c2Jfc3Rvcl9zdXNwZW5kIHN5bWJvbCBmcm9tIGFib3ZlLCBuZWVkcyB0byBpbXBvcnQgdGhlIG5hbWVzcGFjZSBVU0JfU1RPUkFHRQordXNpbmcgYSBzdGF0ZW1lbnQgbGlrZTo6CisKKwlNT0RVTEVfSU1QT1JUX05TKFVTQl9TVE9SQUdFKTsKKworVGhpcyB3aWxsIGNyZWF0ZSBhIGBtb2RpbmZvYCB0YWcgaW4gdGhlIG1vZHVsZSBmb3IgZWFjaCBpbXBvcnRlZCBuYW1lc3BhY2UuCitUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3QsIHRoYXQgdGhlIGltcG9ydGVkIG5hbWVzcGFjZXMgb2YgYSBtb2R1bGUgY2FuIGJlCitpbnNwZWN0ZWQgd2l0aCBtb2RpbmZvOjoKKworCSQgbW9kaW5mbyBkcml2ZXJzL3VzYi9zdG9yYWdlL3Vtcy1rYXJtYS5rbworCVsuLi5dCisJaW1wb3J0X25zOiAgICAgIFVTQl9TVE9SQUdFCisJWy4uLl0KKworCitJdCBpcyBhZHZpc2FibGUgdG8gYWRkIHRoZSBNT0RVTEVfSU1QT1JUX05TKCkgc3RhdGVtZW50IGNsb3NlIHRvIG90aGVyIG1vZHVsZQorbWV0YWRhdGEgZGVmaW5pdGlvbnMgbGlrZSBNT0RVTEVfQVVUSE9SKCkgb3IgTU9EVUxFX0xJQ0VOU0UoKS4gUmVmZXIgdG8gc2VjdGlvbgorNS4gZm9yIGEgd2F5IHRvIGNyZWF0ZSBtaXNzaW5nIGltcG9ydCBzdGF0ZW1lbnRzIGF1dG9tYXRpY2FsbHkuCisKKzQuIExvYWRpbmcgTW9kdWxlcyB0aGF0IHVzZSBuYW1lc3BhY2VkIFN5bWJvbHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQXQgbW9kdWxlIGxvYWRpbmcgdGltZSAoZS5nLiBgaW5zbW9kYCksIHRoZSBrZXJuZWwgd2lsbCBjaGVjayBlYWNoIHN5bWJvbAorcmVmZXJlbmNlZCBmcm9tIHRoZSBtb2R1bGUgZm9yIGl0cyBhdmFpbGFiaWxpdHkgYW5kIHdoZXRoZXIgdGhlIG5hbWVzcGFjZSBpdAorbWlnaHQgYmUgZXhwb3J0ZWQgdG8gaGFzIGJlZW4gaW1wb3J0ZWQgYnkgdGhlIG1vZHVsZS4gVGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mCit0aGUga2VybmVsIGlzIHRvIHJlamVjdCBsb2FkaW5nIG1vZHVsZXMgdGhhdCBkb24ndCBzcGVjaWZ5IHN1ZmZpY2llbnQgaW1wb3J0cy4KK0FuIGVycm9yIHdpbGwgYmUgbG9nZ2VkIGFuZCBsb2FkaW5nIHdpbGwgYmUgZmFpbGVkIHdpdGggRUlOVkFMLiBJbiBvcmRlciB0bworYWxsb3cgbG9hZGluZyBvZiBtb2R1bGVzIHRoYXQgZG9uJ3Qgc2F0aXNmeSB0aGlzIHByZWNvbmRpdGlvbiwgYSBjb25maWd1cmF0aW9uCitvcHRpb24gaXMgYXZhaWxhYmxlOiBTZXR0aW5nIE1PRFVMRV9BTExPV19NSVNTSU5HX05BTUVTUEFDRV9JTVBPUlRTPXkgd2lsbAorZW5hYmxlIGxvYWRpbmcgcmVnYXJkbGVzcywgYnV0IHdpbGwgZW1pdCBhIHdhcm5pbmcuCisKKzUuIEF1dG9tYXRpY2FsbHkgY3JlYXRpbmcgTU9EVUxFX0lNUE9SVF9OUyBzdGF0ZW1lbnRzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitNaXNzaW5nIG5hbWVzcGFjZXMgaW1wb3J0cyBjYW4gZWFzaWx5IGJlIGRldGVjdGVkIGF0IGJ1aWxkIHRpbWUuIEluIGZhY3QsCittb2Rwb3N0IHdpbGwgZW1pdCBhIHdhcm5pbmcgaWYgYSBtb2R1bGUgdXNlcyBhIHN5bWJvbCBmcm9tIGEgbmFtZXNwYWNlCit3aXRob3V0IGltcG9ydGluZyBpdC4KK01PRFVMRV9JTVBPUlRfTlMoKSBzdGF0ZW1lbnRzIHdpbGwgdXN1YWxseSBiZSBhZGRlZCBhdCBhIGRlZmluaXRlIGxvY2F0aW9uCisoYWxvbmcgd2l0aCBvdGhlciBtb2R1bGUgbWV0YSBkYXRhKS4gVG8gbWFrZSB0aGUgbGlmZSBvZiBtb2R1bGUgYXV0aG9ycyAoYW5kCitzdWJzeXN0ZW0gbWFpbnRhaW5lcnMpIGVhc2llciwgYSBzY3JpcHQgYW5kIG1ha2UgdGFyZ2V0IGlzIGF2YWlsYWJsZSB0byBmaXh1cAorbWlzc2luZyBpbXBvcnRzLiBGaXhpbmcgbWlzc2luZyBpbXBvcnRzIGNhbiBiZSBkb25lIHdpdGg6OgorCisJJCBtYWtlIG5zZGVwcworCitBIHR5cGljYWwgc2NlbmFyaW8gZm9yIG1vZHVsZSBhdXRob3JzIHdvdWxkIGJlOjoKKworCS0gd3JpdGUgY29kZSB0aGF0IGRlcGVuZHMgb24gYSBzeW1ib2wgZnJvbSBhIG5vdCBpbXBvcnRlZCBuYW1lc3BhY2UKKwktIGBtYWtlYAorCS0gbm90aWNlIHRoZSB3YXJuaW5nIG9mIG1vZHBvc3QgdGVsbGluZyBhYm91dCBhIG1pc3NpbmcgaW1wb3J0CisJLSBydW4gYG1ha2UgbnNkZXBzYCB0byBhZGQgdGhlIGltcG9ydCB0byB0aGUgY29ycmVjdCBjb2RlIGxvY2F0aW9uCisKK0ZvciBzdWJzeXN0ZW0gbWFpbnRhaW5lcnMgaW50cm9kdWNpbmcgYSBuYW1lc3BhY2UsIHRoZSBzdGVwcyBhcmUgdmVyeSBzaW1pbGFyLgorQWdhaW4sIGBtYWtlIG5zZGVwc2Agd2lsbCBldmVudHVhbGx5IGFkZCB0aGUgbWlzc2luZyBuYW1lc3BhY2UgaW1wb3J0cyBmb3IKK2luLXRyZWUgbW9kdWxlczo6CisKKwktIG1vdmUgb3IgYWRkIHN5bWJvbHMgdG8gYSBuYW1lc3BhY2UgKGUuZy4gd2l0aCBFWFBPUlRfU1lNQk9MX05TKCkpCisJLSBgbWFrZWAgKHByZWZlcmFibHkgd2l0aCBhbiBhbGxtb2Rjb25maWcgdG8gY292ZXIgYWxsIGluLWtlcm5lbAorCSAgbW9kdWxlcykKKwktIG5vdGljZSB0aGUgd2FybmluZyBvZiBtb2Rwb3N0IHRlbGxpbmcgYWJvdXQgYSBtaXNzaW5nIGltcG9ydAorCS0gcnVuIGBtYWtlIG5zZGVwc2AgdG8gYWRkIHRoZSBpbXBvcnQgdG8gdGhlIGNvcnJlY3QgY29kZSBsb2NhdGlvbgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2tlcm5lbC1oYWNraW5nL2hhY2tpbmcucnN0IGIvRG9jdW1lbnRhdGlvbi9rZXJuZWwtaGFja2luZy9oYWNraW5nLnJzdAppbmRleCA1ODkxYTcwLi5hM2RkYjIxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2tlcm5lbC1oYWNraW5nL2hhY2tpbmcucnN0CisrKyBiL0RvY3VtZW50YXRpb24va2VybmVsLWhhY2tpbmcvaGFja2luZy5yc3QKQEAgLTU5NCw2ICs1OTQsMjQgQEAKIG1haW50YWluZXJzIGFuZCBkZXZlbG9wZXJzIG1heSBob3dldmVyIHJlcXVpcmUgRVhQT1JUX1NZTUJPTF9HUEwoKQogd2hlbiBhZGRpbmcgYW55IG5ldyBBUElzIG9yIGZ1bmN0aW9uYWxpdHkuCiAKKzpjOmZ1bmM6YEVYUE9SVF9TWU1CT0xfTlMoKWAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRGVmaW5lZCBpbiBgYGluY2x1ZGUvbGludXgvZXhwb3J0LmhgYAorCitUaGlzIGlzIHRoZSB2YXJpYW50IG9mIGBFWFBPUlRfU1lNQk9MKClgIHRoYXQgYWxsb3dzIHNwZWNpZnlpbmcgYSBzeW1ib2wKK25hbWVzcGFjZS4gU3ltYm9sIE5hbWVzcGFjZXMgYXJlIGRvY3VtZW50ZWQgaW4KK2BgRG9jdW1lbnRhdGlvbi9rYnVpbGQvbmFtZXNwYWNlcy5yc3RgYC4KKworOmM6ZnVuYzpgRVhQT1JUX1NZTUJPTF9OU19HUEwoKWAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RlZmluZWQgaW4gYGBpbmNsdWRlL2xpbnV4L2V4cG9ydC5oYGAKKworVGhpcyBpcyB0aGUgdmFyaWFudCBvZiBgRVhQT1JUX1NZTUJPTF9HUEwoKWAgdGhhdCBhbGxvd3Mgc3BlY2lmeWluZyBhIHN5bWJvbAorbmFtZXNwYWNlLiBTeW1ib2wgTmFtZXNwYWNlcyBhcmUgZG9jdW1lbnRlZCBpbgorYGBEb2N1bWVudGF0aW9uL2tidWlsZC9uYW1lc3BhY2VzLnJzdGBgLgorCiBSb3V0aW5lcyBhbmQgQ29udmVudGlvbnMKID09PT09PT09PT09PT09PT09PT09PT09PQogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL21lZGlhL3VhcGkvdjRsL3N1YmRldi1mb3JtYXRzLnJzdCBiL0RvY3VtZW50YXRpb24vbWVkaWEvdWFwaS92NGwvc3ViZGV2LWZvcm1hdHMucnN0CmluZGV4IDdiOGUxN2MuLjE1ZTExZjI3YjQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbWVkaWEvdWFwaS92NGwvc3ViZGV2LWZvcm1hdHMucnN0CisrKyBiL0RvY3VtZW50YXRpb24vbWVkaWEvdWFwaS92NGwvc3ViZGV2LWZvcm1hdHMucnN0CkBAIC0xMzEzLDYgKzEzMTMsMTEzIEBACiAgICAgICAtIGdcIDpzdWI6YDZgCiAgICAgICAtIGdcIDpzdWI6YDVgCiAgICAgICAtIGdcIDpzdWI6YDRgCisgICAgKiAuLiBfTUVESUEtQlVTLUZNVC1SR0I4ODgtM1g4OgorCisgICAgICAtIE1FRElBX0JVU19GTVRfUkdCODg4XzNYOAorICAgICAgLSAweDEwMWMKKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0gclwgOnN1YjpgN2AKKyAgICAgIC0gclwgOnN1YjpgNmAKKyAgICAgIC0gclwgOnN1YjpgNWAKKyAgICAgIC0gclwgOnN1YjpgNGAKKyAgICAgIC0gclwgOnN1YjpgM2AKKyAgICAgIC0gclwgOnN1YjpgMmAKKyAgICAgIC0gclwgOnN1YjpgMWAKKyAgICAgIC0gclwgOnN1YjpgMGAKKyAgICAqIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0gZ1wgOnN1YjpgN2AKKyAgICAgIC0gZ1wgOnN1YjpgNmAKKyAgICAgIC0gZ1wgOnN1YjpgNWAKKyAgICAgIC0gZ1wgOnN1YjpgNGAKKyAgICAgIC0gZ1wgOnN1YjpgM2AKKyAgICAgIC0gZ1wgOnN1YjpgMmAKKyAgICAgIC0gZ1wgOnN1YjpgMWAKKyAgICAgIC0gZ1wgOnN1YjpgMGAKKyAgICAqIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0KKyAgICAgIC0gYlwgOnN1YjpgN2AKKyAgICAgIC0gYlwgOnN1YjpgNmAKKyAgICAgIC0gYlwgOnN1YjpgNWAKKyAgICAgIC0gYlwgOnN1YjpgNGAKKyAgICAgIC0gYlwgOnN1YjpgM2AKKyAgICAgIC0gYlwgOnN1YjpgMmAKKyAgICAgIC0gYlwgOnN1YjpgMWAKKyAgICAgIC0gYlwgOnN1YjpgMGAKICAgICAqIC4uIF9NRURJQS1CVVMtRk1ULUFSR0I4ODgtMVgzMjoKIAogICAgICAgLSBNRURJQV9CVVNfRk1UX0FSR0I4ODhfMVgzMgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9taXBzL2luZGV4LnJzdCBiL0RvY3VtZW50YXRpb24vbWlwcy9pbmRleC5yc3QKaW5kZXggZmQ5MDIzYy4uYTkzYzJmNiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9taXBzL2luZGV4LnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL21pcHMvaW5kZXgucnN0CkBAIC0xLDExICsxLDE0IEBACiAuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogCi09PT09PT09PT09PT09PT09PQotTUlQUyBhcmNoaXRlY3R1cmUKLT09PT09PT09PT09PT09PT09Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KK01JUFMtc3BlY2lmaWMgRG9jdW1lbnRhdGlvbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC4uIHRvY3RyZWU6OgogICAgOm1heGRlcHRoOiAyCisgICA6bnVtYmVyZWQ6CisKKyAgIGluZ2VuaWMtdGN1CiAKICAgIGF1MXh4eF9pZGUKIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9taXBzL2luZ2VuaWMtdGN1LnJzdCBiL0RvY3VtZW50YXRpb24vbWlwcy9pbmdlbmljLXRjdS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRlZjRjNAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vbWlwcy9pbmdlbmljLXRjdS5yc3QKQEAgLTAsMCArMSw3MSBAQAorLi4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0luZ2VuaWMgSlo0N3h4IFNvQ3MgVGltZXIvQ291bnRlciBVbml0IGhhcmR3YXJlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgVGltZXIvQ291bnRlciBVbml0IChUQ1UpIGluIEluZ2VuaWMgSlo0N3h4IFNvQ3MgaXMgYSBtdWx0aS1mdW5jdGlvbgoraGFyZHdhcmUgYmxvY2suIEl0IGZlYXR1cmVzIHVwIHRvIHRvIGVpZ2h0IGNoYW5uZWxzLCB0aGF0IGNhbiBiZSB1c2VkIGFzCitjb3VudGVycywgdGltZXJzLCBvciBQV00uCisKKy0gSlo0NzI1QiwgSlo0NzUwLCBKWjQ3NTUgb25seSBoYXZlIHNpeCBUQ1UgY2hhbm5lbHMuIFRoZSBvdGhlciBTb0NzIGFsbAorICBoYXZlIGVpZ2h0IGNoYW5uZWxzLgorCistIEpaNDcyNUIgaW50cm9kdWNlZCBhIHNlcGFyYXRlIGNoYW5uZWwsIGNhbGxlZCBPcGVyYXRpbmcgU3lzdGVtIFRpbWVyCisgIChPU1QpLiBJdCBpcyBhIDMyLWJpdCBwcm9ncmFtbWFibGUgdGltZXIuIE9uIEpaNDc2MEIgYW5kIGFib3ZlLCBpdCBpcworICA2NC1iaXQuCisKKy0gRWFjaCBvbmUgb2YgdGhlIFRDVSBjaGFubmVscyBoYXMgaXRzIG93biBjbG9jaywgd2hpY2ggY2FuIGJlIHJlcGFyZW50ZWQgdG8gdGhyZWUKKyAgZGlmZmVyZW50IGNsb2NrcyAocGNsaywgZXh0LCBydGMpLCBnYXRlZCwgYW5kIHJlY2xvY2tlZCwgdGhyb3VnaCB0aGVpciBUQ1NSIHJlZ2lzdGVyLgorCisgICAgLSBUaGUgd2F0Y2hkb2cgYW5kIE9TVCBoYXJkd2FyZSBibG9ja3MgYWxzbyBmZWF0dXJlIGEgVENTUiByZWdpc3RlciB3aXRoIHRoZSBzYW1lCisgICAgICBmb3JtYXQgaW4gdGhlaXIgcmVnaXN0ZXIgc3BhY2UuCisgICAgLSBUaGUgVENVIHJlZ2lzdGVycyB1c2VkIHRvIGdhdGUvdW5nYXRlIGNhbiBhbHNvIGdhdGUvdW5nYXRlIHRoZSB3YXRjaGRvZyBhbmQKKyAgICAgIE9TVCBjbG9ja3MuCisKKy0gRWFjaCBUQ1UgY2hhbm5lbCB3b3JrcyBpbiBvbmUgb2YgdHdvIG1vZGVzOgorCisgICAgLSBtb2RlIFRDVTE6IGNoYW5uZWxzIGNhbm5vdCB3b3JrIGluIHNsZWVwIG1vZGUsIGJ1dCBhcmUgZWFzaWVyIHRvCisgICAgICBvcGVyYXRlLgorICAgIC0gbW9kZSBUQ1UyOiBjaGFubmVscyBjYW4gd29yayBpbiBzbGVlcCBtb2RlLCBidXQgdGhlIG9wZXJhdGlvbiBpcyBhIGJpdAorICAgICAgbW9yZSBjb21wbGljYXRlZCB0aGFuIHdpdGggVENVMSBjaGFubmVscy4KKworLSBUaGUgbW9kZSBvZiBlYWNoIFRDVSBjaGFubmVsIGRlcGVuZHMgb24gdGhlIFNvQyB1c2VkOgorCisgICAgLSBPbiB0aGUgb2xkZXN0IFNvQ3MgKHVwIHRvIEpaNDc0MCksIGFsbCBvZiB0aGUgZWlnaHQgY2hhbm5lbHMgb3BlcmF0ZSBpbgorICAgICAgVENVMSBtb2RlLgorICAgIC0gT24gSlo0NzI1QiwgY2hhbm5lbCA1IG9wZXJhdGVzIGFzIFRDVTIsIHRoZSBvdGhlcnMgb3BlcmF0ZSBhcyBUQ1UxLgorICAgIC0gT24gbmV3ZXN0IFNvQ3MgKEpaNDc1MCBhbmQgYWJvdmUpLCBjaGFubmVscyAxLTIgb3BlcmF0ZSBhcyBUQ1UyLCB0aGUKKyAgICAgIG90aGVycyBvcGVyYXRlIGFzIFRDVTEuCisKKy0gRWFjaCBjaGFubmVsIGNhbiBnZW5lcmF0ZSBhbiBpbnRlcnJ1cHQuIFNvbWUgY2hhbm5lbHMgc2hhcmUgYW4gaW50ZXJydXB0CisgIGxpbmUsIHNvbWUgZG9uJ3QsIGFuZCB0aGlzIGNoYW5nZXMgYmV0d2VlbiBTb0MgdmVyc2lvbnM6CisKKyAgICAtIG9uIG9sZGVyIFNvQ3MgKEpaNDc0MCBhbmQgYmVsb3cpLCBjaGFubmVsIDAgYW5kIGNoYW5uZWwgMSBoYXZlIHRoZWlyCisgICAgICBvd24gaW50ZXJydXB0IGxpbmU7IGNoYW5uZWxzIDItNyBzaGFyZSB0aGUgbGFzdCBpbnRlcnJ1cHQgbGluZS4KKyAgICAtIE9uIEpaNDcyNUIsIGNoYW5uZWwgMCBoYXMgaXRzIG93biBpbnRlcnJ1cHQ7IGNoYW5uZWxzIDEtNSBzaGFyZSBvbmUKKyAgICAgIGludGVycnVwdCBsaW5lOyB0aGUgT1NUIHVzZXMgdGhlIGxhc3QgaW50ZXJydXB0IGxpbmUuCisgICAgLSBvbiBuZXdlciBTb0NzIChKWjQ3NTAgYW5kIGFib3ZlKSwgY2hhbm5lbCA1IGhhcyBpdHMgb3duIGludGVycnVwdDsKKyAgICAgIGNoYW5uZWxzIDAtNCBhbmQgKGlmIGVpZ2h0IGNoYW5uZWxzKSA2LTcgYWxsIHNoYXJlIG9uZSBpbnRlcnJ1cHQgbGluZTsKKyAgICAgIHRoZSBPU1QgdXNlcyB0aGUgbGFzdCBpbnRlcnJ1cHQgbGluZS4KKworSW1wbGVtZW50YXRpb24KKz09PT09PT09PT09PT09CisKK1RoZSBmdW5jdGlvbmFsaXRpZXMgb2YgdGhlIFRDVSBoYXJkd2FyZSBhcmUgc3ByZWFkIGFjcm9zcyBtdWx0aXBsZSBkcml2ZXJzOgorCis9PT09PT09PT09PSAgPT09PT0KK2Nsb2NrcyAgICAgICBkcml2ZXJzL2Nsay9pbmdlbmljL3RjdS5jCitpbnRlcnJ1cHRzICAgZHJpdmVycy9pcnFjaGlwL2lycS1pbmdlbmljLXRjdS5jCit0aW1lcnMgICAgICAgZHJpdmVycy9jbG9ja3NvdXJjZS9pbmdlbmljLXRpbWVyLmMKK09TVCAgICAgICAgICBkcml2ZXJzL2Nsb2Nrc291cmNlL2luZ2VuaWMtb3N0LmMKK1BXTSAgICAgICAgICBkcml2ZXJzL3B3bS9wd20tano0NzQwLmMKK3dhdGNoZG9nICAgICBkcml2ZXJzL3dhdGNoZG9nL2p6NDc0MF93ZHQuYworPT09PT09PT09PT0gID09PT09CisKK0JlY2F1c2UgdmFyaW91cyBmdW5jdGlvbmFsaXRpZXMgb2YgdGhlIFRDVSB0aGF0IGJlbG9uZyB0byBkaWZmZXJlbnQgZHJpdmVycworYW5kIGZyYW1ld29ya3MgY2FuIGJlIGNvbnRyb2xsZWQgZnJvbSB0aGUgc2FtZSByZWdpc3RlcnMsIGFsbCBvZiB0aGVzZQorZHJpdmVycyBhY2Nlc3MgdGhlaXIgcmVnaXN0ZXJzIHRocm91Z2ggdGhlIHNhbWUgcmVnbWFwLgorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGRldmljZXRyZWUgYmluZGluZ3Mgb2YgdGhlIFRDVSBkcml2ZXJzLAoraGF2ZSBhIGxvb2sgYXQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9pbmdlbmljLHRjdS50eHQuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3Bvd2VycGMvZWxmbm90ZS5yc3QgYi9Eb2N1bWVudGF0aW9uL3Bvd2VycGMvZWxmbm90ZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY2MDIyNAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vcG93ZXJwYy9lbGZub3RlLnJzdApAQCAtMCwwICsxLDQxIEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PQorRUxGIE5vdGUgUG93ZXJQQyBOYW1lc3BhY2UKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBQb3dlclBDIG5hbWVzcGFjZSBpbiBhbiBFTEYgTm90ZSBvZiB0aGUga2VybmVsIGJpbmFyeSBpcyB1c2VkIHRvIHN0b3JlCitjYXBhYmlsaXRpZXMgYW5kIGluZm9ybWF0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IGEgYm9vdGxvYWRlciBvciB1c2VybGFuZC4KKworVHlwZXMgYW5kIERlc2NyaXB0b3JzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIHR5cGVzIHRvIGJlIHVzZWQgd2l0aCB0aGUgIlBvd2VyUEMiIG5hbWVzYXBjZSBhcmUgZGVmaW5lZCBpbiBbI2YxXV8uCisKKwkxKSBQUENfRUxGTk9URV9DQVBBQklMSVRJRVMKKworRGVmaW5lIHRoZSBjYXBhYmlsaXRpZXMgc3VwcG9ydGVkL3JlcXVpcmVkIGJ5IHRoZSBrZXJuZWwuIFRoaXMgdHlwZSB1c2VzIGEKK2JpdG1hcCBhcyAiZGVzY3JpcHRvciIgZmllbGQuIEVhY2ggYml0IGlzIGRlc2NyaWJlZCBiZWxvdzoKKworLSBVbHRyYXZpc29yLWNhcGFibGUgYml0IChQb3dlck5WIG9ubHkpLgorCisuLiBjb2RlLWJsb2NrOjogYworCisJI2RlZmluZSBQUENDQVBfVUxUUkFWSVNPUl9CSVQgKDEgPDwgMCkKKworSW5kaWNhdGUgdGhhdCB0aGUgcG93ZXJwYyBrZXJuZWwgYmluYXJ5IGtub3dzIGhvdyB0byBydW4gaW4gYW4KK3VsdHJhdmlzb3ItZW5hYmxlZCBzeXN0ZW0uCisKK0luIGFuIHVsdHJhdmlzb3ItZW5hYmxlZCBzeXN0ZW0sIHNvbWUgbWFjaGluZSByZXNvdXJjZXMgYXJlIG5vdyBjb250cm9sbGVkCitieSB0aGUgdWx0cmF2aXNvci4gSWYgdGhlIGtlcm5lbCBpcyBub3QgdWx0cmF2aXNvci1jYXBhYmxlLCBidXQgaXQgZW5kcyB1cAorYmVpbmcgcnVuIG9uIGEgbWFjaGluZSB3aXRoIHVsdHJhdmlzb3IsIHRoZSBrZXJuZWwgd2lsbCBwcm9iYWJseSBjcmFzaAordHJ5aW5nIHRvIGFjY2VzcyB1bHRyYXZpc29yIHJlc291cmNlcy4gRm9yIGluc3RhbmNlLCBpdCBtYXkgY3Jhc2ggaW4gZWFybHkKK2Jvb3QgdHJ5aW5nIHRvIHNldCB0aGUgcGFydGl0aW9uIHRhYmxlIGVudHJ5IDAuCisKK0luIGFuIHVsdHJhdmlzb3ItZW5hYmxlZCBzeXN0ZW0sIGEgYm9vdGxvYWRlciBjb3VsZCB3YXJuIHRoZSB1c2VyIG9yIHByZXZlbnQKK3RoZSBrZXJuZWwgZnJvbSBiZWluZyBydW4gaWYgdGhlIFBvd2VyUEMgdWx0cmF2aXNvciBjYXBhYmlsaXR5IGRvZXNuJ3QgZXhpc3QKK29yIHRoZSBVbHRyYXZpc29yLWNhcGFibGUgYml0IGlzIG5vdCBzZXQuCisKK1JlZmVyZW5jZXMKKy0tLS0tLS0tLS0KKworLi4gWyNmMV0gYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VsZm5vdGUuaAorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3Bvd2VycGMvZmlybXdhcmUtYXNzaXN0ZWQtZHVtcC5yc3QgYi9Eb2N1bWVudGF0aW9uL3Bvd2VycGMvZmlybXdhcmUtYXNzaXN0ZWQtZHVtcC5yc3QKaW5kZXggOWNhMTI4My4uMDQ1NWE3OCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9wb3dlcnBjL2Zpcm13YXJlLWFzc2lzdGVkLWR1bXAucnN0CisrKyBiL0RvY3VtZW50YXRpb24vcG93ZXJwYy9maXJtd2FyZS1hc3Npc3RlZC1kdW1wLnJzdApAQCAtOSwxOCArOSwxOCBAQAogdG8gbWluaW1pemUgdGhlIHRvdGFsIGVsYXBzZWQgdGltZSB1bnRpbCB0aGUgc3lzdGVtIGlzIGJhY2sKIGluIHByb2R1Y3Rpb24gdXNlLgogCi0tIEZpcm13YXJlIGFzc2lzdGVkIGR1bXAgKGZhZHVtcCkgaW5mcmFzdHJ1Y3R1cmUgaXMgaW50ZW5kZWQgdG8gcmVwbGFjZQorLSBGaXJtd2FyZS1Bc3Npc3RlZCBEdW1wIChGQUR1bXApIGluZnJhc3RydWN0dXJlIGlzIGludGVuZGVkIHRvIHJlcGxhY2UKICAgdGhlIGV4aXN0aW5nIHBoeXAgYXNzaXN0ZWQgZHVtcC4KIC0gRmFkdW1wIHVzZXMgdGhlIHNhbWUgZmlybXdhcmUgaW50ZXJmYWNlcyBhbmQgbWVtb3J5IHJlc2VydmF0aW9uIG1vZGVsCiAgIGFzIHBoeXAgYXNzaXN0ZWQgZHVtcC4KLS0gVW5saWtlIHBoeXAgZHVtcCwgZmFkdW1wIGV4cG9ydHMgdGhlIG1lbW9yeSBkdW1wIHRocm91Z2ggL3Byb2Mvdm1jb3JlCistIFVubGlrZSBwaHlwIGR1bXAsIEZBRHVtcCBleHBvcnRzIHRoZSBtZW1vcnkgZHVtcCB0aHJvdWdoIC9wcm9jL3ZtY29yZQogICBpbiB0aGUgRUxGIGZvcm1hdCBpbiB0aGUgc2FtZSB3YXkgYXMga2R1bXAuIFRoaXMgaGVscHMgdXMgcmV1c2UgdGhlCiAgIGtkdW1wIGluZnJhc3RydWN0dXJlIGZvciBkdW1wIGNhcHR1cmUgYW5kIGZpbHRlcmluZy4KIC0gVW5saWtlIHBoeXAgZHVtcCwgdXNlcnNwYWNlIHRvb2wgZG9lcyBub3QgbmVlZCB0byByZWZlciBhbnkgc3lzZnMKICAgaW50ZXJmYWNlIHdoaWxlIHJlYWRpbmcgL3Byb2Mvdm1jb3JlLgotLSBVbmxpa2UgcGh5cCBkdW1wLCBmYWR1bXAgYWxsb3dzIHVzZXIgdG8gcmVsZWFzZSBhbGwgdGhlIG1lbW9yeSByZXNlcnZlZAorLSBVbmxpa2UgcGh5cCBkdW1wLCBGQUR1bXAgYWxsb3dzIHVzZXIgdG8gcmVsZWFzZSBhbGwgdGhlIG1lbW9yeSByZXNlcnZlZAogICBmb3IgZHVtcCwgd2l0aCBhIHNpbmdsZSBvcGVyYXRpb24gb2YgZWNobyAxID4gL3N5cy9rZXJuZWwvZmFkdW1wX3JlbGVhc2VfbWVtLgotLSBPbmNlIGVuYWJsZWQgdGhyb3VnaCBrZXJuZWwgYm9vdCBwYXJhbWV0ZXIsIGZhZHVtcCBjYW4gYmUKKy0gT25jZSBlbmFibGVkIHRocm91Z2gga2VybmVsIGJvb3QgcGFyYW1ldGVyLCBGQUR1bXAgY2FuIGJlCiAgIHN0YXJ0ZWQvc3RvcHBlZCB0aHJvdWdoIC9zeXMva2VybmVsL2ZhZHVtcF9yZWdpc3RlcmVkIGludGVyZmFjZSAoc2VlCiAgIHN5c2ZzIGZpbGVzIHNlY3Rpb24gYmVsb3cpIGFuZCBjYW4gYmUgZWFzaWx5IGludGVncmF0ZWQgd2l0aCBrZHVtcAogICBzZXJ2aWNlIHN0YXJ0L3N0b3AgaW5pdCBzY3JpcHRzLgpAQCAtMzQsNyArMzQsNyBAQAogICAgaW4gYSBjbGVhbiwgY29uc2lzdGVudCBzdGF0ZS4KIC0gIE9uY2UgdGhlIGR1bXAgaXMgY29waWVkIG91dCwgdGhlIG1lbW9yeSB0aGF0IGhlbGQgdGhlIGR1bXAKICAgIGlzIGltbWVkaWF0ZWx5IGF2YWlsYWJsZSB0byB0aGUgcnVubmluZyBrZXJuZWwuIEFuZCB0aGVyZWZvcmUsCi0gICB1bmxpa2Uga2R1bXAsIGZhZHVtcCBkb2Vzbid0IG5lZWQgYSAybmQgcmVib290IHRvIGdldCBiYWNrCisgICB1bmxpa2Uga2R1bXAsIEZBRHVtcCBkb2Vzbid0IG5lZWQgYSAybmQgcmVib290IHRvIGdldCBiYWNrCiAgICB0aGUgc3lzdGVtIHRvIHRoZSBwcm9kdWN0aW9uIGNvbmZpZ3VyYXRpb24uCiAKIFRoZSBhYm92ZSBjYW4gb25seSBiZSBhY2NvbXBsaXNoZWQgYnkgY29vcmRpbmF0aW9uIHdpdGgsCkBAIC00NiwxMCArNDYsOSBAQAogICAgVGhlc2UgcmVnaXN0ZXJlZCBzZWN0aW9ucyBvZiBtZW1vcnkgYXJlIHJlc2VydmVkIGJ5IHRoZSBmaXJzdAogICAga2VybmVsIGR1cmluZyBlYXJseSBib290LgogCi0tICBXaGVuIGEgc3lzdGVtIGNyYXNoZXMsIHRoZSBQb3dlciBmaXJtd2FyZSB3aWxsIHNhdmUKLSAgIHRoZSBsb3cgbWVtb3J5IChib290IG1lbW9yeSBvZiBzaXplIGxhcmdlciBvZiA1JSBvZiBzeXN0ZW0gUkFNCi0gICBvciAyNTZNQikgb2YgUkFNIHRvIHRoZSBwcmV2aW91cyByZWdpc3RlcmVkIHJlZ2lvbi4gSXQgd2lsbAotICAgYWxzbyBzYXZlIHN5c3RlbSByZWdpc3RlcnMsIGFuZCBoYXJkd2FyZSBQVEUncy4KKy0gIFdoZW4gc3lzdGVtIGNyYXNoZXMsIHRoZSBQb3dlciBmaXJtd2FyZSB3aWxsIGNvcHkgdGhlIHJlZ2lzdGVyZWQKKyAgIGxvdyBtZW1vcnkgcmVnaW9ucyAoYm9vdCBtZW1vcnkpIGZyb20gc291cmNlIHRvIGRlc3RpbmF0aW9uIGFyZWEuCisgICBJdCB3aWxsIGFsc28gc2F2ZSBoYXJkd2FyZSBQVEUncy4KIAogICAgTk9URToKICAgICAgICAgIFRoZSB0ZXJtICdib290IG1lbW9yeScgbWVhbnMgc2l6ZSBvZiB0aGUgbG93IG1lbW9yeSBjaHVuawpAQCAtNjEsOSArNjAsOSBAQAogICAgICAgICAgdGhlIGRlZmF1bHQgY2FsY3VsYXRlZCBzaXplLiBVc2UgdGhpcyBvcHRpb24gaWYgZGVmYXVsdAogICAgICAgICAgYm9vdCBtZW1vcnkgc2l6ZSBpcyBub3Qgc3VmZmljaWVudCBmb3Igc2Vjb25kIGtlcm5lbCB0bwogICAgICAgICAgYm9vdCBzdWNjZXNzZnVsbHkuIEZvciBzeW50YXggb2YgY3Jhc2hrZXJuZWw9IHBhcmFtZXRlciwKLSAgICAgICAgIHJlZmVyIHRvIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2R1bXAva2R1bXAucnN0LiBJZiBhbnkgb2Zmc2V0IGlzCi0gICAgICAgICBwcm92aWRlZCBpbiBjcmFzaGtlcm5lbD0gcGFyYW1ldGVyLCBpdCB3aWxsIGJlIGlnbm9yZWQKLSAgICAgICAgIGFzIGZhZHVtcCB1c2VzIGEgcHJlZGVmaW5lZCBvZmZzZXQgdG8gcmVzZXJ2ZSBtZW1vcnkKKyAgICAgICAgIHJlZmVyIHRvIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2R1bXAva2R1bXAucnN0LiBJZiBhbnkKKyAgICAgICAgIG9mZnNldCBpcyBwcm92aWRlZCBpbiBjcmFzaGtlcm5lbD0gcGFyYW1ldGVyLCBpdCB3aWxsIGJlCisgICAgICAgICBpZ25vcmVkIGFzIEZBRHVtcCB1c2VzIGEgcHJlZGVmaW5lZCBvZmZzZXQgdG8gcmVzZXJ2ZSBtZW1vcnkKICAgICAgICAgIGZvciBib290IG1lbW9yeSBkdW1wIHByZXNlcnZhdGlvbiBpbiBjYXNlIG9mIGEgY3Jhc2guCiAKIC0gIEFmdGVyIHRoZSBsb3cgbWVtb3J5IChib290IG1lbW9yeSkgYXJlYSBoYXMgYmVlbiBzYXZlZCwgdGhlCkBAIC03MSwxMyArNzAsMTUgQEAKICAgICpub3QqIGNsZWFyIHRoZSBSQU0uIEl0IHdpbGwgdGhlbiBsYXVuY2ggdGhlIGJvb3Rsb2FkZXIsIGFzCiAgICBub3JtYWwuCiAKLS0gIFRoZSBmcmVzaGx5IGJvb3RlZCBrZXJuZWwgd2lsbCBub3RpY2UgdGhhdCB0aGVyZSBpcyBhIG5ldwotICAgbm9kZSAoaWJtLGR1bXAta2VybmVsKSBpbiB0aGUgZGV2aWNlIHRyZWUsIGluZGljYXRpbmcgdGhhdAorLSAgVGhlIGZyZXNobHkgYm9vdGVkIGtlcm5lbCB3aWxsIG5vdGljZSB0aGF0IHRoZXJlIGlzIGEgbmV3IG5vZGUKKyAgIChydGFzL2libSxrZXJuZWwtZHVtcCBvbiBwU2VyaWVzIG9yIGlibSxvcGFsL2R1bXAvbXBpcGwtYm9vdAorICAgb24gT1BBTCBwbGF0Zm9ybSkgaW4gdGhlIGRldmljZSB0cmVlLCBpbmRpY2F0aW5nIHRoYXQKICAgIHRoZXJlIGlzIGNyYXNoIGRhdGEgYXZhaWxhYmxlIGZyb20gYSBwcmV2aW91cyBib290LiBEdXJpbmcKICAgIHRoZSBlYXJseSBib290IE9TIHdpbGwgcmVzZXJ2ZSByZXN0IG9mIHRoZSBtZW1vcnkgYWJvdmUKICAgIGJvb3QgbWVtb3J5IHNpemUgZWZmZWN0aXZlbHkgYm9vdGluZyB3aXRoIHJlc3RyaWN0ZWQgbWVtb3J5Ci0gICBzaXplLiBUaGlzIHdpbGwgbWFrZSBzdXJlIHRoYXQgdGhlIHNlY29uZCBrZXJuZWwgd2lsbCBub3QKLSAgIHRvdWNoIGFueSBvZiB0aGUgZHVtcCBtZW1vcnkgYXJlYS4KKyAgIHNpemUuIFRoaXMgd2lsbCBtYWtlIHN1cmUgdGhhdCB0aGlzIGtlcm5lbCAoYWxzbywgcmVmZXJyZWQKKyAgIHRvIGFzIHNlY29uZCBrZXJuZWwgb3IgY2FwdHVyZSBrZXJuZWwpIHdpbGwgbm90IHRvdWNoIGFueQorICAgb2YgdGhlIGR1bXAgbWVtb3J5IGFyZWEuCiAKIC0gIFVzZXItc3BhY2UgdG9vbHMgd2lsbCByZWFkIC9wcm9jL3ZtY29yZSB0byBvYnRhaW4gdGhlIGNvbnRlbnRzCiAgICBvZiBtZW1vcnksIHdoaWNoIGhvbGRzIHRoZSBwcmV2aW91cyBjcmFzaGVkIGtlcm5lbCBkdW1wIGluIEVMRgpAQCAtOTQsOCArOTUsMzAgQEAKICAgICAgIyBlY2hvIDEgPiAvc3lzL2tlcm5lbC9mYWR1bXBfcmVsZWFzZV9tZW0KIAogUGxlYXNlIG5vdGUgdGhhdCB0aGUgZmlybXdhcmUtYXNzaXN0ZWQgZHVtcCBmZWF0dXJlCi1pcyBvbmx5IGF2YWlsYWJsZSBvbiBQb3dlcjYgYW5kIGFib3ZlIHN5c3RlbXMgd2l0aCByZWNlbnQKLWZpcm13YXJlIHZlcnNpb25zLgoraXMgb25seSBhdmFpbGFibGUgb24gUE9XRVI2IGFuZCBhYm92ZSBzeXN0ZW1zIG9uIHBTZXJpZXMKKyhQb3dlclZNKSBwbGF0Zm9ybSBhbmQgUE9XRVI5IGFuZCBhYm92ZSBzeXN0ZW1zIHdpdGggT1A5NDAKK29yIGxhdGVyIGZpcm13YXJlIHZlcnNpb25zIG9uIFBvd2VyTlYgKE9QQUwpIHBsYXRmb3JtLgorTm90ZSB0aGF0LCBPUEFMIGZpcm13YXJlIGV4cG9ydHMgaWJtLG9wYWwvZHVtcCBub2RlIHdoZW4KK0ZBRHVtcCBpcyBzdXBwb3J0ZWQgb24gUG93ZXJOViBwbGF0Zm9ybS4KKworT24gT1BBTCBiYXNlZCBtYWNoaW5lcywgc3lzdGVtIGZpcnN0IGJvb3RzIGludG8gYW4gaW50ZXJtaXR0ZW50CitrZXJuZWwgKHJlZmVycmVkIHRvIGFzIHBldGl0Ym9vdCBrZXJuZWwpIGJlZm9yZSBib290aW5nIGludG8gdGhlCitjYXB0dXJlIGtlcm5lbC4gVGhpcyBrZXJuZWwgd291bGQgaGF2ZSBtaW5pbWFsIGtlcm5lbCBhbmQvb3IKK3VzZXJzcGFjZSBzdXBwb3J0IHRvIHByb2Nlc3MgY3Jhc2ggZGF0YS4gU3VjaCBrZXJuZWwgbmVlZHMgdG8KK3ByZXNlcnZlIHByZXZpb3VzbHkgY3Jhc2gnZWQga2VybmVsJ3MgbWVtb3J5IGZvciB0aGUgc3Vic2VxdWVudAorY2FwdHVyZSBrZXJuZWwgYm9vdCB0byBwcm9jZXNzIHRoaXMgY3Jhc2ggZGF0YS4gS2VybmVsIGNvbmZpZworb3B0aW9uIENPTkZJR19QUkVTRVJWRV9GQV9EVU1QIGhhcyB0byBiZSBlbmFibGVkIG9uIHN1Y2gga2VybmVsCit0byBlbnN1cmUgdGhhdCBjcmFzaCBkYXRhIGlzIHByZXNlcnZlZCB0byBwcm9jZXNzIGxhdGVyLgorCistLSBPbiBPUEFMIGJhc2VkIG1hY2hpbmVzIChQb3dlck5WKSwgaWYgdGhlIGtlcm5lbCBpcyBidWlsZCB3aXRoCisgICBDT05GSUdfT1BBTF9DT1JFPXksIE9QQUwgbWVtb3J5IGF0IHRoZSB0aW1lIG9mIGNyYXNoIGlzIGFsc28KKyAgIGV4cG9ydGVkIGFzIC9zeXMvZmlybXdhcmUvb3BhbC9jb3JlIGZpbGUuIFRoaXMgcHJvY2ZzIGZpbGUgaXMKKyAgIGhlbHBmdWwgaW4gZGVidWdnaW5nIE9QQUwgY3Jhc2hlcyB3aXRoIEdEQi4gVGhlIGtlcm5lbCBtZW1vcnkKKyAgIHVzZWQgZm9yIGV4cG9ydGluZyB0aGlzIHByb2NmcyBmaWxlIGNhbiBiZSByZWxlYXNlZCBieSBlY2hvJ2luZworICAgJzEnIHRvIC9zeXMva2VybmVsL2ZhZHVtcF9yZWxlYXNlX29wYWxjb3JlIG5vZGUuCisKKyAgIGUuZy4KKyAgICAgIyBlY2hvIDEgPiAvc3lzL2tlcm5lbC9mYWR1bXBfcmVsZWFzZV9vcGFsY29yZQogCiBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzOgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTExMCw3MiArMTMzLDk1IEBACiAvc3lzL2tlcm5lbC9mYWR1bXBfcmVsZWFzZV9tZW0gZmlsZSBpcyBjcmVhdGVkLCBhbmQgdGhlIHJlc2VydmVkCiBtZW1vcnkgaXMgaGVsZC4KIAotSWYgdGhlcmUgaXMgbm8gd2FpdGluZyBkdW1wIGRhdGEsIHRoZW4gb25seSB0aGUgbWVtb3J5IHJlcXVpcmVkCi10byBob2xkIENQVSBzdGF0ZSwgSFBURSByZWdpb24sIGJvb3QgbWVtb3J5IGR1bXAgYW5kIGVsZmNvcmUKLWhlYWRlciwgaXMgdXN1YWxseSByZXNlcnZlZCBhdCBhbiBvZmZzZXQgZ3JlYXRlciB0aGFuIGJvb3QgbWVtb3J5Ci1zaXplIChzZWUgRmlnLiAxKS4gVGhpcyBhcmVhIGlzICpub3QqIHJlbGVhc2VkOiB0aGlzIHJlZ2lvbiB3aWxsCi1iZSBrZXB0IHBlcm1hbmVudGx5IHJlc2VydmVkLCBzbyB0aGF0IGl0IGNhbiBhY3QgYXMgYSByZWNlcHRhY2xlCi1mb3IgYSBjb3B5IG9mIHRoZSBib290IG1lbW9yeSBjb250ZW50IGluIGFkZGl0aW9uIHRvIENQVSBzdGF0ZQotYW5kIEhQVEUgcmVnaW9uLCBpbiB0aGUgY2FzZSBhIGNyYXNoIGRvZXMgb2NjdXIuIFNpbmNlIHRoaXMgcmVzZXJ2ZWQKLW1lbW9yeSBhcmVhIGlzIHVzZWQgb25seSBhZnRlciB0aGUgc3lzdGVtIGNyYXNoLCB0aGVyZSBpcyBubyBwb2ludCBpbgotYmxvY2tpbmcgdGhpcyBzaWduaWZpY2FudCBjaHVuayBvZiBtZW1vcnkgZnJvbSBwcm9kdWN0aW9uIGtlcm5lbC4KLUhlbmNlLCB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgTGludXgga2VybmVsJ3MgQ29udGlndW91cyBNZW1vcnkKLUFsbG9jYXRvciAoQ01BKSBmb3IgbWVtb3J5IHJlc2VydmF0aW9uIGlmIENNQSBpcyBjb25maWd1cmVkIGZvciBrZXJuZWwuCi1XaXRoIENNQSByZXNlcnZhdGlvbiB0aGlzIG1lbW9yeSB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgYXBwbGljYXRpb25zIHRvCi11c2UgaXQsIHdoaWxlIGtlcm5lbCBpcyBwcmV2ZW50ZWQgZnJvbSB1c2luZyBpdC4gV2l0aCB0aGlzIGZhZHVtcCB3aWxsCi1zdGlsbCBiZSBhYmxlIHRvIGNhcHR1cmUgYWxsIG9mIHRoZSBrZXJuZWwgbWVtb3J5IGFuZCBtb3N0IG9mIHRoZSB1c2VyCi1zcGFjZSBtZW1vcnkgZXhjZXB0IHRoZSB1c2VyIHBhZ2VzIHRoYXQgd2VyZSBwcmVzZW50IGluIENNQSByZWdpb246OgorSWYgdGhlcmUgaXMgbm8gd2FpdGluZyBkdW1wIGRhdGEsIHRoZW4gb25seSB0aGUgbWVtb3J5IHJlcXVpcmVkIHRvCitob2xkIENQVSBzdGF0ZSwgSFBURSByZWdpb24sIGJvb3QgbWVtb3J5IGR1bXAsIEZBRHVtcCBoZWFkZXIgYW5kCitlbGZjb3JlIGhlYWRlciwgaXMgdXN1YWxseSByZXNlcnZlZCBhdCBhbiBvZmZzZXQgZ3JlYXRlciB0aGFuIGJvb3QKK21lbW9yeSBzaXplIChzZWUgRmlnLiAxKS4gVGhpcyBhcmVhIGlzICpub3QqIHJlbGVhc2VkOiB0aGlzIHJlZ2lvbgord2lsbCBiZSBrZXB0IHBlcm1hbmVudGx5IHJlc2VydmVkLCBzbyB0aGF0IGl0IGNhbiBhY3QgYXMgYSByZWNlcHRhY2xlCitmb3IgYSBjb3B5IG9mIHRoZSBib290IG1lbW9yeSBjb250ZW50IGluIGFkZGl0aW9uIHRvIENQVSBzdGF0ZSBhbmQKK0hQVEUgcmVnaW9uLCBpbiB0aGUgY2FzZSBhIGNyYXNoIGRvZXMgb2NjdXIuCisKK1NpbmNlIHRoaXMgcmVzZXJ2ZWQgbWVtb3J5IGFyZWEgaXMgdXNlZCBvbmx5IGFmdGVyIHRoZSBzeXN0ZW0gY3Jhc2gsCit0aGVyZSBpcyBubyBwb2ludCBpbiBibG9ja2luZyB0aGlzIHNpZ25pZmljYW50IGNodW5rIG9mIG1lbW9yeSBmcm9tCitwcm9kdWN0aW9uIGtlcm5lbC4gSGVuY2UsIHRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRoZSBMaW51eCBrZXJuZWwncworQ29udGlndW91cyBNZW1vcnkgQWxsb2NhdG9yIChDTUEpIGZvciBtZW1vcnkgcmVzZXJ2YXRpb24gaWYgQ01BIGlzCitjb25maWd1cmVkIGZvciBrZXJuZWwuIFdpdGggQ01BIHJlc2VydmF0aW9uIHRoaXMgbWVtb3J5IHdpbGwgYmUKK2F2YWlsYWJsZSBmb3IgYXBwbGljYXRpb25zIHRvIHVzZSBpdCwgd2hpbGUga2VybmVsIGlzIHByZXZlbnRlZCBmcm9tCit1c2luZyBpdC4gV2l0aCB0aGlzIEZBRHVtcCB3aWxsIHN0aWxsIGJlIGFibGUgdG8gY2FwdHVyZSBhbGwgb2YgdGhlCitrZXJuZWwgbWVtb3J5IGFuZCBtb3N0IG9mIHRoZSB1c2VyIHNwYWNlIG1lbW9yeSBleGNlcHQgdGhlIHVzZXIgcGFnZXMKK3RoYXQgd2VyZSBwcmVzZW50IGluIENNQSByZWdpb246OgogCiAgIG8gTWVtb3J5IFJlc2VydmF0aW9uIGR1cmluZyBmaXJzdCBrZXJuZWwKIAotICBMb3cgbWVtb3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3Agb2YgbWVtb3J5Ci0gIDAgICAgICBib290IG1lbW9yeSBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHw8LS1SZXNlcnZlZCBkdW1wIGFyZWEgLS0+fCAgICAgIHwKLSAgViAgICAgICAgICAgViAgICAgICAgICAgICAgICB8ICAgUGVybWFuZW50IFJlc2VydmF0aW9uIHwgICAgICBWCi0gICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLyAvLS0tKy0tLSstLS0tKy0tLS0tLS0tLS0tKy0tLS0rLS0tLS0tKwotICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHxDUFV8SFBURXwgIERVTVAgICAgIHxFTEYgfCAgICAgIHwKLSAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0vIC8tLS0rLS0tKy0tLS0rLS0tLS0tLS0tLS0rLS0tLSstLS0tLS0rCi0gICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAgICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvCi0gICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgQm9vdCBtZW1vcnkgY29udGVudCBnZXRzIHRyYW5zZmVycmVkIHRvCi0gICAgICAgICAgcmVzZXJ2ZWQgYXJlYSBieSBmaXJtd2FyZSBhdCB0aGUgdGltZSBvZgotICAgICAgICAgIGNyYXNoCisgIExvdyBtZW1vcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9wIG9mIG1lbW9yeQorICAwICAgIGJvb3QgbWVtb3J5IHNpemUgICB8PC0tLSBSZXNlcnZlZCBkdW1wIGFyZWEgLS0tPnwgICAgICAgfAorICB8ICAgICAgICAgICB8ICAgICAgICAgICB8ICAgIFBlcm1hbmVudCBSZXNlcnZhdGlvbiAgIHwgICAgICAgfAorICBWICAgICAgICAgICBWICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgVgorICArLS0tLS0tLS0tLS0rLS0tLS0vIC8tLS0rLS0tKy0tLS0rLS0tLS0tLSstLS0tLSstLS0tLSstLS0tKy0tKworICB8ICAgICAgICAgICB8ICAgICAgICAgICB8Ly8vfC8vLy98ICBEVU1QIHwgSERSIHwgRUxGIHwvLy8vfCAgfAorICArLS0tLS0tLS0tLS0rLS0tLS0vIC8tLS0rLS0tKy0tLS0rLS0tLS0tLSstLS0tLSstLS0tLSstLS0tKy0tKworICAgICAgICB8ICAgICAgICAgICAgICAgICAgIF4gICAgXiAgICAgXiAgICAgIF4gICAgICAgICAgIF4KKyAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgIHwgICAgIHwgICAgICB8ICAgICAgICAgICB8CisgICAgICAgIFwgICAgICAgICAgICAgICAgICBDUFUgIEhQVEUgICAvICAgICAgfCAgICAgICAgICAgfAorICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgIHwgICAgICAgICAgIHwKKyAgICAgIEJvb3QgbWVtb3J5IGNvbnRlbnQgZ2V0cyB0cmFuc2ZlcnJlZCAgICB8ICAgICAgICAgICB8CisgICAgICB0byByZXNlcnZlZCBhcmVhIGJ5IGZpcm13YXJlIGF0IHRoZSAgICAgfCAgICAgICAgICAgfAorICAgICAgdGltZSBvZiBjcmFzaC4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBRHVtcCBIZWFkZXIgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ldGEgYXJlYSkgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgTWV0YWRhdGE6IFRoaXMgYXJlYSBob2xkcyBhIG1ldGFkYXRhIHN0cnV0dXJlIHdob3NlCisgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyBpcyByZWdpc3RlcmVkIHdpdGggZi93IGFuZCByZXRyaWV2ZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kIGtlcm5lbCBhZnRlciBjcmFzaCwgb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydAorICAgICAgICAgICAgICAgICAgICAgIHRhZ3MgKE9QQUwpLiBIYXZpbmcgc3VjaCBzdHJ1Y3R1cmUgd2l0aCBpbmZvIG5lZWRlZAorICAgICAgICAgICAgICAgICAgICAgIHRvIHByb2Nlc3MgdGhlIGNyYXNoZHVtcCBlYXNlcyBkdW1wIGNhcHR1cmUgcHJvY2Vzcy4KKwogICAgICAgICAgICAgICAgICAgIEZpZy4gMQogCisKICAgbyBNZW1vcnkgUmVzZXJ2YXRpb24gZHVyaW5nIHNlY29uZCBrZXJuZWwgYWZ0ZXIgY3Jhc2gKIAotICBMb3cgbWVtb3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCBvZiBtZW1vcnkKLSAgMCAgICAgIGJvb3QgbWVtb3J5IHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gIHwgICAgICAgICAgIHw8LS0tLS0tLS0tLS0tLSBSZXNlcnZlZCBkdW1wIGFyZWEgLS0tLS0tLS0tLS0gLS0+fAotICBWICAgICAgICAgICBWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYKLSAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0vIC8tLS0rLS0tKy0tLS0rLS0tLS0tLS0tLS0rLS0tLSstLS0tLS0rCi0gIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfENQVXxIUFRFfCAgRFVNUCAgICAgfEVMRiB8ICAgICAgfAotICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS8gLy0tLSstLS0rLS0tLSstLS0tLS0tLS0tLSstLS0tKy0tLS0tLSsKLSAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICAgIFYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgotICAgVXNlZCBieSBzZWNvbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9wcm9jL3ZtY29yZQorICBMb3cgbWVtb3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCBvZiBtZW1vcnkKKyAgMCAgICAgIGJvb3QgbWVtb3J5IHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgfCAgICAgICAgICAgfDwtLS0tLS0tLS0tLS0gQ3Jhc2ggcHJlc2VydmVkIGFyZWEgLS0tLS0tLS0tLS0tPnwKKyAgViAgICAgICAgICAgViAgICAgICAgICAgfDwtLS0gUmVzZXJ2ZWQgZHVtcCBhcmVhIC0tLT58ICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tKy0tLS0tLyAvLS0tKy0tLSstLS0tKy0tLS0tLS0rLS0tLS0rLS0tLS0rLS0tLSstLSsKKyAgfCAgICAgICAgICAgfCAgICAgICAgICAgfC8vL3wvLy8vfCAgRFVNUCB8IEhEUiB8IEVMRiB8Ly8vL3wgIHwKKyAgKy0tLS0tLS0tLS0tKy0tLS0tLyAvLS0tKy0tLSstLS0tKy0tLS0tLS0rLS0tLS0rLS0tLS0rLS0tLSstLSsKKyAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgIFYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgorICAgVXNlZCBieSBzZWNvbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9wcm9jL3ZtY29yZQogICAga2VybmVsIHRvIGJvb3QKKworICAgICAgICArLS0tKworICAgICAgICB8Ly8vfCAtPiBSZWdpb25zIChDUFUsIEhQVEUgJiBNZXRhZGF0YSkgbWFya2VkIGxpa2UgdGhpcyBpbiB0aGUgYWJvdmUKKyAgICAgICAgKy0tLSsgICAgZmlndXJlcyBhcmUgbm90IGFsd2F5cyBwcmVzZW50LiBGb3IgZXhhbXBsZSwgT1BBTCBwbGF0Zm9ybQorICAgICAgICAgICAgICAgICBkb2VzIG5vdCBoYXZlIENQVSAmIEhQVEUgcmVnaW9ucyB3aGlsZSBNZXRhZGF0YSByZWdpb24gaXMKKyAgICAgICAgICAgICAgICAgbm90IHN1cHBvcnRlZCBvbiBwU2VyaWVzIGN1cnJlbnRseS4KKwogICAgICAgICAgICAgICAgICAgIEZpZy4gMgogCi1DdXJyZW50bHkgdGhlIGR1bXAgd2lsbCBiZSBjb3BpZWQgZnJvbSAvcHJvYy92bWNvcmUgdG8gYQotYSBuZXcgZmlsZSB1cG9uIHVzZXIgaW50ZXJ2ZW50aW9uLiBUaGUgZHVtcCBkYXRhIGF2YWlsYWJsZSB0aHJvdWdoCi0vcHJvYy92bWNvcmUgd2lsbCBiZSBpbiBFTEYgZm9ybWF0LiBIZW5jZSB0aGUgZXhpc3Rpbmcga2R1bXAKLWluZnJhc3RydWN0dXJlIChrZHVtcCBzY3JpcHRzKSB0byBzYXZlIHRoZSBkdW1wIHdvcmtzIGZpbmUgd2l0aAotbWlub3IgbW9kaWZpY2F0aW9ucy4KKworQ3VycmVudGx5IHRoZSBkdW1wIHdpbGwgYmUgY29waWVkIGZyb20gL3Byb2Mvdm1jb3JlIHRvIGEgbmV3IGZpbGUgdXBvbgordXNlciBpbnRlcnZlbnRpb24uIFRoZSBkdW1wIGRhdGEgYXZhaWxhYmxlIHRocm91Z2ggL3Byb2Mvdm1jb3JlIHdpbGwgYmUKK2luIEVMRiBmb3JtYXQuIEhlbmNlIHRoZSBleGlzdGluZyBrZHVtcCBpbmZyYXN0cnVjdHVyZSAoa2R1bXAgc2NyaXB0cykKK3RvIHNhdmUgdGhlIGR1bXAgd29ya3MgZmluZSB3aXRoIG1pbm9yIG1vZGlmaWNhdGlvbnMuIEtEdW1wIHNjcmlwdHMgb24KK21ham9yIERpc3RybyByZWxlYXNlcyBoYXZlIGFscmVhZHkgYmVlbiBtb2RpZmllZCB0byB3b3JrIHNlZW1sZXNzbHkgKG5vCit1c2VyIGludGVydmVudGlvbiBpbiBzYXZpbmcgdGhlIGR1bXApIHdoZW4gRkFEdW1wIGlzIHVzZWQsIGluc3RlYWQgb2YKK0tEdW1wLCBhcyBkdW1wIG1lY2hhbmlzbS4KIAogVGhlIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGR1bXAgd2lsbCBiZSBzYW1lIGFzIHRoZSBvbmVzCiB1c2VkIGZvciBrZHVtcC4KIAotSG93IHRvIGVuYWJsZSBmaXJtd2FyZS1hc3Npc3RlZCBkdW1wIChmYWR1bXApOgorSG93IHRvIGVuYWJsZSBmaXJtd2FyZS1hc3Npc3RlZCBkdW1wIChGQUR1bXApOgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAxLiBTZXQgY29uZmlnIG9wdGlvbiBDT05GSUdfRkFfRFVNUD15IGFuZCBidWlsZCBrZXJuZWwuCiAyLiBCb290IGludG8gbGludXgga2VybmVsIHdpdGggJ2ZhZHVtcD1vbicga2VybmVsIGNtZGxpbmUgb3B0aW9uLgotICAgQnkgZGVmYXVsdCwgZmFkdW1wIHJlc2VydmVkIG1lbW9yeSB3aWxsIGJlIGluaXRpYWxpemVkIGFzIENNQSBhcmVhLgorICAgQnkgZGVmYXVsdCwgRkFEdW1wIHJlc2VydmVkIG1lbW9yeSB3aWxsIGJlIGluaXRpYWxpemVkIGFzIENNQSBhcmVhLgogICAgQWx0ZXJuYXRpdmVseSwgdXNlciBjYW4gYm9vdCBsaW51eCBrZXJuZWwgd2l0aCAnZmFkdW1wPW5vY21hJyB0bwotICAgcHJldmVudCBmYWR1bXAgdG8gdXNlIENNQS4KKyAgIHByZXZlbnQgRkFEdW1wIHRvIHVzZSBDTUEuCiAzLiBPcHRpb25hbGx5LCB1c2VyIGNhbiBhbHNvIHNldCAnY3Jhc2hrZXJuZWw9JyBrZXJuZWwgY21kbGluZQogICAgdG8gc3BlY2lmeSBzaXplIG9mIHRoZSBtZW1vcnkgdG8gcmVzZXJ2ZSBmb3IgYm9vdCBtZW1vcnkgZHVtcAogICAgcHJlc2VydmF0aW9uLgpAQCAtMjAxLDI5ICsyNDcsMjkgQEAKIEhlcmUgaXMgdGhlIGxpc3Qgb2YgZmlsZXMgdW5kZXIga2VybmVsIHN5c2ZzOgogCiAgL3N5cy9rZXJuZWwvZmFkdW1wX2VuYWJsZWQKLSAgICBUaGlzIGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgZmFkdW1wIHN0YXR1cy4KKyAgICBUaGlzIGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgRkFEdW1wIHN0YXR1cy4KIAotICAgIC0gMCA9IGZhZHVtcCBpcyBkaXNhYmxlZAotICAgIC0gMSA9IGZhZHVtcCBpcyBlbmFibGVkCisgICAgLSAwID0gRkFEdW1wIGlzIGRpc2FibGVkCisgICAgLSAxID0gRkFEdW1wIGlzIGVuYWJsZWQKIAogICAgIFRoaXMgaW50ZXJmYWNlIGNhbiBiZSB1c2VkIGJ5IGtkdW1wIGluaXQgc2NyaXB0cyB0byBpZGVudGlmeSBpZgotICAgIGZhZHVtcCBpcyBlbmFibGVkIGluIHRoZSBrZXJuZWwgYW5kIGFjdCBhY2NvcmRpbmdseS4KKyAgICBGQUR1bXAgaXMgZW5hYmxlZCBpbiB0aGUga2VybmVsIGFuZCBhY3QgYWNjb3JkaW5nbHkuCiAKICAvc3lzL2tlcm5lbC9mYWR1bXBfcmVnaXN0ZXJlZAotICAgIFRoaXMgaXMgdXNlZCB0byBkaXNwbGF5IHRoZSBmYWR1bXAgcmVnaXN0cmF0aW9uIHN0YXR1cyBhcyB3ZWxsCi0gICAgYXMgdG8gY29udHJvbCAoc3RhcnQvc3RvcCkgdGhlIGZhZHVtcCByZWdpc3RyYXRpb24uCisgICAgVGhpcyBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIEZBRHVtcCByZWdpc3RyYXRpb24gc3RhdHVzIGFzIHdlbGwKKyAgICBhcyB0byBjb250cm9sIChzdGFydC9zdG9wKSB0aGUgRkFEdW1wIHJlZ2lzdHJhdGlvbi4KIAotICAgIC0gMCA9IGZhZHVtcCBpcyBub3QgcmVnaXN0ZXJlZC4KLSAgICAtIDEgPSBmYWR1bXAgaXMgcmVnaXN0ZXJlZCBhbmQgcmVhZHkgdG8gaGFuZGxlIHN5c3RlbSBjcmFzaC4KKyAgICAtIDAgPSBGQUR1bXAgaXMgbm90IHJlZ2lzdGVyZWQuCisgICAgLSAxID0gRkFEdW1wIGlzIHJlZ2lzdGVyZWQgYW5kIHJlYWR5IHRvIGhhbmRsZSBzeXN0ZW0gY3Jhc2guCiAKLSAgICBUbyByZWdpc3RlciBmYWR1bXAgZWNobyAxID4gL3N5cy9rZXJuZWwvZmFkdW1wX3JlZ2lzdGVyZWQgYW5kCisgICAgVG8gcmVnaXN0ZXIgRkFEdW1wIGVjaG8gMSA+IC9zeXMva2VybmVsL2ZhZHVtcF9yZWdpc3RlcmVkIGFuZAogICAgIGVjaG8gMCA+IC9zeXMva2VybmVsL2ZhZHVtcF9yZWdpc3RlcmVkIGZvciB1bi1yZWdpc3RlciBhbmQgc3RvcCB0aGUKLSAgICBmYWR1bXAuIE9uY2UgdGhlIGZhZHVtcCBpcyB1bi1yZWdpc3RlcmVkLCB0aGUgc3lzdGVtIGNyYXNoIHdpbGwgbm90CisgICAgRkFEdW1wLiBPbmNlIHRoZSBGQUR1bXAgaXMgdW4tcmVnaXN0ZXJlZCwgdGhlIHN5c3RlbSBjcmFzaCB3aWxsIG5vdAogICAgIGJlIGhhbmRsZWQgYW5kIHZtY29yZSB3aWxsIG5vdCBiZSBjYXB0dXJlZC4gVGhpcyBpbnRlcmZhY2UgY2FuIGJlCiAgICAgZWFzaWx5IGludGVncmF0ZWQgd2l0aCBrZHVtcCBzZXJ2aWNlIHN0YXJ0L3N0b3AuCiAKICAvc3lzL2tlcm5lbC9mYWR1bXBfcmVsZWFzZV9tZW0KLSAgICBUaGlzIGZpbGUgaXMgYXZhaWxhYmxlIG9ubHkgd2hlbiBmYWR1bXAgaXMgYWN0aXZlIGR1cmluZworICAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgb25seSB3aGVuIEZBRHVtcCBpcyBhY3RpdmUgZHVyaW5nCiAgICAgc2Vjb25kIGtlcm5lbC4gVGhpcyBpcyB1c2VkIHRvIHJlbGVhc2UgdGhlIHJlc2VydmVkIG1lbW9yeQogICAgIHJlZ2lvbiB0aGF0IGFyZSBoZWxkIGZvciBzYXZpbmcgY3Jhc2ggZHVtcC4gVG8gcmVsZWFzZSB0aGUKICAgICByZXNlcnZlZCBtZW1vcnkgZWNobyAxIHRvIGl0OjoKQEAgLTIzNywyNSArMjgzLDM4IEBACiAgICAgZW5oYW5jZWQgdG8gdXNlIHRoaXMgaW50ZXJmYWNlIHRvIHJlbGVhc2UgdGhlIG1lbW9yeSByZXNlcnZlZCBmb3IKICAgICBkdW1wIGFuZCBjb250aW51ZSB3aXRob3V0IDJuZCByZWJvb3QuCiAKKyAvc3lzL2tlcm5lbC9mYWR1bXBfcmVsZWFzZV9vcGFsY29yZQorCisgICAgVGhpcyBmaWxlIGlzIGF2YWlsYWJsZSBvbmx5IG9uIE9QQUwgYmFzZWQgbWFjaGluZXMgd2hlbiBGQUR1bXAgaXMKKyAgICBhY3RpdmUgZHVyaW5nIGNhcHR1cmUga2VybmVsLiBUaGlzIGlzIHVzZWQgdG8gcmVsZWFzZSB0aGUgbWVtb3J5CisgICAgdXNlZCBieSB0aGUga2VybmVsIHRvIGV4cG9ydCAvc3lzL2Zpcm13YXJlL29wYWwvY29yZSBmaWxlLiBUbworICAgIHJlbGVhc2UgdGhpcyBtZW1vcnksIGVjaG8gJzEnIHRvIGl0OgorCisgICAgZWNobyAxICA+IC9zeXMva2VybmVsL2ZhZHVtcF9yZWxlYXNlX29wYWxjb3JlCisKIEhlcmUgaXMgdGhlIGxpc3Qgb2YgZmlsZXMgdW5kZXIgcG93ZXJwYyBkZWJ1Z2ZzOgogKEFzc3VtaW5nIGRlYnVnZnMgaXMgbW91bnRlZCBvbiAvc3lzL2tlcm5lbC9kZWJ1ZyBkaXJlY3RvcnkuKQogCiAgL3N5cy9rZXJuZWwvZGVidWcvcG93ZXJwYy9mYWR1bXBfcmVnaW9uCi0gICAgVGhpcyBmaWxlIHNob3dzIHRoZSByZXNlcnZlZCBtZW1vcnkgcmVnaW9ucyBpZiBmYWR1bXAgaXMKKyAgICBUaGlzIGZpbGUgc2hvd3MgdGhlIHJlc2VydmVkIG1lbW9yeSByZWdpb25zIGlmIEZBRHVtcCBpcwogICAgIGVuYWJsZWQgb3RoZXJ3aXNlIHRoaXMgZmlsZSBpcyBlbXB0eS4gVGhlIG91dHB1dCBmb3JtYXQKICAgICBpczo6CiAKICAgICAgIDxyZWdpb24+OiBbPHN0YXJ0Pi08ZW5kPl0gPHJlc2VydmVkLXNpemU+IGJ5dGVzLCBEdW1wZWQ6IDxkdW1wLXNpemU+CiAKKyAgICBhbmQgZm9yIGtlcm5lbCBEVU1QIHJlZ2lvbiBpczoKKworICAgIERVTVA6IFNyYzogPHNyYy1hZGRyPiwgRGVzdDogPGRlc3QtYWRkcj4sIFNpemU6IDxzaXplPiwgRHVtcGVkOiAjIGJ5dGVzCisKICAgICBlLmcuCi0gICAgQ29udGVudHMgd2hlbiBmYWR1bXAgaXMgcmVnaXN0ZXJlZCBkdXJpbmcgZmlyc3Qga2VybmVsOjoKKyAgICBDb250ZW50cyB3aGVuIEZBRHVtcCBpcyByZWdpc3RlcmVkIGR1cmluZyBmaXJzdCBrZXJuZWw6OgogCiAgICAgICAjIGNhdCAvc3lzL2tlcm5lbC9kZWJ1Zy9wb3dlcnBjL2ZhZHVtcF9yZWdpb24KICAgICAgIENQVSA6IFsweDAwMDAwMDZmZmIwMDAwLTB4MDAwMDAwNmZmZjAwMWZdIDB4NDAwMjAgYnl0ZXMsIER1bXBlZDogMHgwCiAgICAgICBIUFRFOiBbMHgwMDAwMDA2ZmZmMDAyMC0weDAwMDAwMDZmZmYxMDFmXSAweDEwMDAgYnl0ZXMsIER1bXBlZDogMHgwCiAgICAgICBEVU1QOiBbMHgwMDAwMDA2ZmZmMTAyMC0weDAwMDAwMDdmZmYxMDFmXSAweDEwMDAwMDAwIGJ5dGVzLCBEdW1wZWQ6IDB4MAogCi0gICAgQ29udGVudHMgd2hlbiBmYWR1bXAgaXMgYWN0aXZlIGR1cmluZyBzZWNvbmQga2VybmVsOjoKKyAgICBDb250ZW50cyB3aGVuIEZBRHVtcCBpcyBhY3RpdmUgZHVyaW5nIHNlY29uZCBrZXJuZWw6OgogCiAgICAgICAjIGNhdCAvc3lzL2tlcm5lbC9kZWJ1Zy9wb3dlcnBjL2ZhZHVtcF9yZWdpb24KICAgICAgIENQVSA6IFsweDAwMDAwMDZmZmIwMDAwLTB4MDAwMDAwNmZmZjAwMWZdIDB4NDAwMjAgYnl0ZXMsIER1bXBlZDogMHg0MDAyMApAQCAtMjYzLDYgKzMyMiw3IEBACiAgICAgICBEVU1QOiBbMHgwMDAwMDA2ZmZmMTAyMC0weDAwMDAwMDdmZmYxMDFmXSAweDEwMDAwMDAwIGJ5dGVzLCBEdW1wZWQ6IDB4MTAwMDAwMDAKICAgICAgICAgICA6IFsweDAwMDAwMDEwMDAwMDAwLTB4MDAwMDAwNmZmYWZmZmZdIDB4NWZmYjAwMDAgYnl0ZXMsIER1bXBlZDogMHg1ZmZiMDAwMAogCisKIE5PVEU6CiAgICAgICBQbGVhc2UgcmVmZXIgdG8gRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9kZWJ1Z2ZzLnR4dCBvbgogICAgICAgaG93IHRvIG1vdW50IHRoZSBkZWJ1Z2ZzIGZpbGVzeXN0ZW0uCkBAIC0yNzMsNyArMzMzLDcgQEAKICAtIE5lZWQgdG8gY29tZSB1cCB3aXRoIHRoZSBiZXR0ZXIgYXBwcm9hY2ggdG8gZmluZCBvdXQgbW9yZQogICAgYWNjdXJhdGUgYm9vdCBtZW1vcnkgc2l6ZSB0aGF0IGlzIHJlcXVpcmVkIGZvciBhIGtlcm5lbCB0bwogICAgYm9vdCBzdWNjZXNzZnVsbHkgd2hlbiBib290ZWQgd2l0aCByZXN0cmljdGVkIG1lbW9yeS4KLSAtIFRoZSBmYWR1bXAgaW1wbGVtZW50YXRpb24gaW50cm9kdWNlcyBhIGZhZHVtcCBjcmFzaCBpbmZvIHN0cnVjdHVyZQorIC0gVGhlIEZBRHVtcCBpbXBsZW1lbnRhdGlvbiBpbnRyb2R1Y2VzIGEgRkFEdW1wIGNyYXNoIGluZm8gc3RydWN0dXJlCiAgICBpbiB0aGUgc2NyYXRjaCBhcmVhIGJlZm9yZSB0aGUgRUxGIGNvcmUgaGVhZGVyLiBUaGUgaWRlYSBvZiBpbnRyb2R1Y2luZwogICAgdGhpcyBzdHJ1Y3R1cmUgaXMgdG8gcGFzcyBzb21lIGltcG9ydGFudCBjcmFzaCBpbmZvIGRhdGEgdG8gdGhlIHNlY29uZAogICAga2VybmVsIHdoaWNoIHdpbGwgaGVscCBzZWNvbmQga2VybmVsIHRvIHBvcHVsYXRlIEVMRiBjb3JlIGhlYWRlciB3aXRoCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3Bvd2VycGMvaW5kZXgucnN0IGIvRG9jdW1lbnRhdGlvbi9wb3dlcnBjL2luZGV4LnJzdAppbmRleCA1NDliMWNkLi5kYjdiNmE4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3Bvd2VycGMvaW5kZXgucnN0CisrKyBiL0RvY3VtZW50YXRpb24vcG93ZXJwYy9pbmRleC5yc3QKQEAgLTE1LDYgKzE1LDcgQEAKICAgICBkYXdyLXBvd2VyOQogICAgIGRzY3IKICAgICBlZWgtcGNpLWVycm9yLXJlY292ZXJ5CisgICAgZWxmbm90ZQogICAgIGZpcm13YXJlLWFzc2lzdGVkLWR1bXAKICAgICBodmNzCiAgICAgaXNhLXZlcnNpb25zCkBAIC0yNSw2ICsyNiw3IEBACiAgICAgcWVfZmlybXdhcmUKICAgICBzeXNjYWxsNjQtYWJpCiAgICAgdHJhbnNhY3Rpb25hbF9tZW1vcnkKKyAgICB1bHRyYXZpc29yCiAKIC4uIG9ubHk6OiAgc3VicHJvamVjdCBhbmQgaHRtbAogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3Bvd2VycGMvdWx0cmF2aXNvci5yc3QgYi9Eb2N1bWVudGF0aW9uL3Bvd2VycGMvdWx0cmF2aXNvci5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzMwODU0ZgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vcG93ZXJwYy91bHRyYXZpc29yLnJzdApAQCAtMCwwICsxLDEwNTQgQEAKKy4uIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisuLiBfdWx0cmF2aXNvcjoKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorUHJvdGVjdGVkIEV4ZWN1dGlvbiBGYWNpbGl0eQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBjb250ZW50czo6CisgICAgOmRlcHRoOiAzCisKK1Byb3RlY3RlZCBFeGVjdXRpb24gRmFjaWxpdHkKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworICAgIFByb3RlY3RlZCBFeGVjdXRpb24gRmFjaWxpdHkgKFBFRikgaXMgYW4gYXJjaGl0ZWN0dXJhbCBjaGFuZ2UgZm9yCisgICAgUE9XRVIgOSB0aGF0IGVuYWJsZXMgU2VjdXJlIFZpcnR1YWwgTWFjaGluZXMgKFNWTXMpLiBERDIuMyBjaGlwcworICAgIChQVlI9MHgwMDRlMTIwMykgb3IgZ3JlYXRlciB3aWxsIGJlIFBFRi1jYXBhYmxlLiBBIG5ldyBJU0EgcmVsZWFzZQorICAgIHdpbGwgaW5jbHVkZSB0aGUgUEVGIFJGQzAyNDg3IGNoYW5nZXMuCisKKyAgICBXaGVuIGVuYWJsZWQsIFBFRiBhZGRzIGEgbmV3IGhpZ2hlciBwcml2aWxlZ2VkIG1vZGUsIGNhbGxlZCBVbHRyYXZpc29yCisgICAgbW9kZSwgdG8gUE9XRVIgYXJjaGl0ZWN0dXJlLiBBbG9uZyB3aXRoIHRoZSBuZXcgbW9kZSB0aGVyZSBpcyBuZXcKKyAgICBmaXJtd2FyZSBjYWxsZWQgdGhlIFByb3RlY3RlZCBFeGVjdXRpb24gVWx0cmF2aXNvciAob3IgVWx0cmF2aXNvcgorICAgIGZvciBzaG9ydCkuIFVsdHJhdmlzb3IgbW9kZSBpcyB0aGUgaGlnaGVzdCBwcml2aWxlZ2VkIG1vZGUgaW4gUE9XRVIKKyAgICBhcmNoaXRlY3R1cmUuCisKKwkrLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgUHJpdmlsZWdlIFN0YXRlcyB8CisJKz09PT09PT09PT09PT09PT09PSsKKwl8ICBQcm9ibGVtICAgICAgICAgfAorCSstLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgU3VwZXJ2aXNvciAgICAgIHwKKwkrLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIEh5cGVydmlzb3IgICAgICB8CisJKy0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBVbHRyYXZpc29yICAgICAgfAorCSstLS0tLS0tLS0tLS0tLS0tLS0rCisKKyAgICBQRUYgcHJvdGVjdHMgU1ZNcyBmcm9tIHRoZSBoeXBlcnZpc29yLCBwcml2aWxlZ2VkIHVzZXJzLCBhbmQgb3RoZXIKKyAgICBWTXMgaW4gdGhlIHN5c3RlbS4gU1ZNcyBhcmUgcHJvdGVjdGVkIHdoaWxlIGF0IHJlc3QgYW5kIGNhbiBvbmx5IGJlCisgICAgZXhlY3V0ZWQgYnkgYW4gYXV0aG9yaXplZCBtYWNoaW5lLiBBbGwgdmlydHVhbCBtYWNoaW5lcyB1dGlsaXplCisgICAgaHlwZXJ2aXNvciBzZXJ2aWNlcy4gVGhlIFVsdHJhdmlzb3IgZmlsdGVycyBjYWxscyBiZXR3ZWVuIHRoZSBTVk1zCisgICAgYW5kIHRoZSBoeXBlcnZpc29yIHRvIGFzc3VyZSB0aGF0IGluZm9ybWF0aW9uIGRvZXMgbm90IGFjY2lkZW50YWxseQorICAgIGxlYWsuIEFsbCBoeXBlcmNhbGxzIGV4Y2VwdCBIX1JBTkRPTSBhcmUgcmVmbGVjdGVkIHRvIHRoZSBoeXBlcnZpc29yLgorICAgIEhfUkFORE9NIGlzIG5vdCByZWZsZWN0ZWQgdG8gcHJldmVudCB0aGUgaHlwZXJ2aXNvciBmcm9tIGluZmx1ZW5jaW5nCisgICAgcmFuZG9tIHZhbHVlcyBpbiB0aGUgU1ZNLgorCisgICAgVG8gc3VwcG9ydCB0aGlzIHRoZXJlIGlzIGEgcmVmYWN0b3Jpbmcgb2YgdGhlIG93bmVyc2hpcCBvZiByZXNvdXJjZXMKKyAgICBpbiB0aGUgQ1BVLiBTb21lIG9mIHRoZSByZXNvdXJjZXMgd2hpY2ggd2VyZSBwcmV2aW91c2x5IGh5cGVydmlzb3IKKyAgICBwcml2aWxlZ2VkIGFyZSBub3cgdWx0cmF2aXNvciBwcml2aWxlZ2VkLgorCitIYXJkd2FyZQorPT09PT09PT0KKworICAgIFRoZSBoYXJkd2FyZSBjaGFuZ2VzIGluY2x1ZGUgdGhlIGZvbGxvd2luZzoKKworICAgICogVGhlcmUgaXMgYSBuZXcgYml0IGluIHRoZSBNU1IgdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGN1cnJlbnQKKyAgICAgIHByb2Nlc3MgaXMgcnVubmluZyBpbiBzZWN1cmUgbW9kZSwgTVNSKFMpIGJpdCA0MS4gTVNSKFMpPTEsIHByb2Nlc3MKKyAgICAgIGlzIGluIHNlY3VyZSBtb2RlLCBNU1Iocyk9MCBwcm9jZXNzIGlzIGluIG5vcm1hbCBtb2RlLgorCisgICAgKiBUaGUgTVNSKFMpIGJpdCBjYW4gb25seSBiZSBzZXQgYnkgdGhlIFVsdHJhdmlzb3IuCisKKyAgICAqIEhSRklEIGNhbm5vdCBiZSB1c2VkIHRvIHNldCB0aGUgTVNSKFMpIGJpdC4gSWYgdGhlIGh5cGVydmlzb3IgbmVlZHMKKyAgICAgIHRvIHJldHVybiB0byBhIFNWTSBpdCBtdXN0IHVzZSBhbiB1bHRyYWNhbGwuIEl0IGNhbiBkZXRlcm1pbmUgaWYKKyAgICAgIHRoZSBWTSBpdCBpcyByZXR1cm5pbmcgdG8gaXMgc2VjdXJlLgorCisgICAgKiBUaGVyZSBpcyBhIG5ldyBVbHRyYXZpc29yIHByaXZpbGVnZWQgcmVnaXN0ZXIsIFNNRkNUUkwsIHdoaWNoIGhhcyBhbgorICAgICAgZW5hYmxlL2Rpc2FibGUgYml0IFNNRkNUUkwoRSkuCisKKyAgICAqIFRoZSBwcml2aWxlZ2Ugb2YgYSBwcm9jZXNzIGlzIG5vdyBkZXRlcm1pbmVkIGJ5IHRocmVlIE1TUiBiaXRzLAorICAgICAgTVNSKFMsIEhWLCBQUikuIEluIGVhY2ggb2YgdGhlIHRhYmxlcyBiZWxvdyB0aGUgbW9kZXMgYXJlIGxpc3RlZAorICAgICAgZnJvbSBsZWFzdCBwcml2aWxlZ2UgdG8gaGlnaGVzdCBwcml2aWxlZ2UuIFRoZSBoaWdoZXIgcHJpdmlsZWdlCisgICAgICBtb2RlcyBjYW4gYWNjZXNzIGFsbCB0aGUgcmVzb3VyY2VzIG9mIHRoZSBsb3dlciBwcml2aWxlZ2UgbW9kZXMuCisKKyAgICAgICoqU2VjdXJlIE1vZGUgTVNSIFNldHRpbmdzKioKKworICAgICAgKy0tLSstLS0rLS0tKy0tLS0tLS0tLS0tLS0tLSsKKyAgICAgIHwgUyB8IEhWfCBQUnxQcml2aWxlZ2UgICAgICB8CisgICAgICArPT09Kz09PSs9PT0rPT09PT09PT09PT09PT09KworICAgICAgfCAxIHwgMCB8IDEgfCBQcm9ibGVtICAgICAgIHwKKyAgICAgICstLS0rLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0rCisgICAgICB8IDEgfCAwIHwgMCB8IFByaXZpbGVnZWQoT1MpfAorICAgICAgKy0tLSstLS0rLS0tKy0tLS0tLS0tLS0tLS0tLSsKKyAgICAgIHwgMSB8IDEgfCAwIHwgVWx0cmF2aXNvciAgICB8CisgICAgICArLS0tKy0tLSstLS0rLS0tLS0tLS0tLS0tLS0tKworICAgICAgfCAxIHwgMSB8IDEgfCBSZXNlcnZlZCAgICAgIHwKKyAgICAgICstLS0rLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0rCisKKyAgICAgICoqTm9ybWFsIE1vZGUgTVNSIFNldHRpbmdzKioKKworICAgICAgKy0tLSstLS0rLS0tKy0tLS0tLS0tLS0tLS0tLSsKKyAgICAgIHwgUyB8IEhWfCBQUnxQcml2aWxlZ2UgICAgICB8CisgICAgICArPT09Kz09PSs9PT0rPT09PT09PT09PT09PT09KworICAgICAgfCAwIHwgMCB8IDEgfCBQcm9ibGVtICAgICAgIHwKKyAgICAgICstLS0rLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0rCisgICAgICB8IDAgfCAwIHwgMCB8IFByaXZpbGVnZWQoT1MpfAorICAgICAgKy0tLSstLS0rLS0tKy0tLS0tLS0tLS0tLS0tLSsKKyAgICAgIHwgMCB8IDEgfCAwIHwgSHlwZXJ2aXNvciAgICB8CisgICAgICArLS0tKy0tLSstLS0rLS0tLS0tLS0tLS0tLS0tKworICAgICAgfCAwIHwgMSB8IDEgfCBQcm9ibGVtIChIb3N0KXwKKyAgICAgICstLS0rLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0rCisKKyAgICAqIE1lbW9yeSBpcyBwYXJ0aXRpb25lZCBpbnRvIHNlY3VyZSBhbmQgbm9ybWFsIG1lbW9yeS4gT25seSBwcm9jZXNzZXMKKyAgICAgIHRoYXQgYXJlIHJ1bm5pbmcgaW4gc2VjdXJlIG1vZGUgY2FuIGFjY2VzcyBzZWN1cmUgbWVtb3J5LgorCisgICAgKiBUaGUgaGFyZHdhcmUgZG9lcyBub3QgYWxsb3cgYW55dGhpbmcgdGhhdCBpcyBub3QgcnVubmluZyBzZWN1cmUgdG8KKyAgICAgIGFjY2VzcyBzZWN1cmUgbWVtb3J5LiBUaGlzIG1lYW5zIHRoYXQgdGhlIEh5cGVydmlzb3IgY2Fubm90IGFjY2VzcworICAgICAgdGhlIG1lbW9yeSBvZiB0aGUgU1ZNIHdpdGhvdXQgdXNpbmcgYW4gdWx0cmFjYWxsIChhc2tpbmcgdGhlCisgICAgICBVbHRyYXZpc29yKS4gVGhlIFVsdHJhdmlzb3Igd2lsbCBvbmx5IGFsbG93IHRoZSBoeXBlcnZpc29yIHRvIHNlZQorICAgICAgdGhlIFNWTSBtZW1vcnkgZW5jcnlwdGVkLgorCisgICAgKiBJL08gc3lzdGVtcyBhcmUgbm90IGFsbG93ZWQgdG8gZGlyZWN0bHkgYWRkcmVzcyBzZWN1cmUgbWVtb3J5LiBUaGlzCisgICAgICBsaW1pdHMgdGhlIFNWTXMgdG8gdmlydHVhbCBJL08gb25seS4KKworICAgICogVGhlIGFyY2hpdGVjdHVyZSBhbGxvd3MgdGhlIFNWTSB0byBzaGFyZSBwYWdlcyBvZiBtZW1vcnkgd2l0aCB0aGUKKyAgICAgIGh5cGVydmlzb3IgdGhhdCBhcmUgbm90IHByb3RlY3RlZCB3aXRoIGVuY3J5cHRpb24uIEhvd2V2ZXIsIHRoaXMKKyAgICAgIHNoYXJpbmcgbXVzdCBiZSBpbml0aWF0ZWQgYnkgdGhlIFNWTS4KKworICAgICogV2hlbiBhIHByb2Nlc3MgaXMgcnVubmluZyBpbiBzZWN1cmUgbW9kZSBhbGwgaHlwZXJjYWxscworICAgICAgKHN5c2NhbGwgbGV2PTEpIGdvIHRvIHRoZSBVbHRyYXZpc29yLgorCisgICAgKiBXaGVuIGEgcHJvY2VzcyBpcyBpbiBzZWN1cmUgbW9kZSBhbGwgaW50ZXJydXB0cyBnbyB0byB0aGUKKyAgICAgIFVsdHJhdmlzb3IuCisKKyAgICAqIFRoZSBmb2xsb3dpbmcgcmVzb3VyY2VzIGhhdmUgYmVjb21lIFVsdHJhdmlzb3IgcHJpdmlsZWdlZCBhbmQKKyAgICAgIHJlcXVpcmUgYW4gVWx0cmF2aXNvciBpbnRlcmZhY2UgdG8gbWFuaXB1bGF0ZToKKworICAgICAgKiBQcm9jZXNzb3IgY29uZmlndXJhdGlvbnMgcmVnaXN0ZXJzIChTQ09NcykuCisKKyAgICAgICogU3RvcCBzdGF0ZSBpbmZvcm1hdGlvbi4KKworICAgICAgKiBUaGUgZGVidWcgcmVnaXN0ZXJzIENJQUJSLCBEQVdSLCBhbmQgREFXUlggd2hlbiBTTUZDVFJMKEQpIGlzIHNldC4KKyAgICAgICAgSWYgU01GQ1RSTChEKSBpcyBub3Qgc2V0IHRoZXkgZG8gbm90IHdvcmsgaW4gc2VjdXJlIG1vZGUuIFdoZW4gc2V0LAorICAgICAgICByZWFkaW5nIGFuZCB3cml0aW5nIHJlcXVpcmVzIGFuIFVsdHJhdmlzb3IgY2FsbCwgb3RoZXJ3aXNlIHRoYXQKKyAgICAgICAgd2lsbCBjYXVzZSBhIEh5cGVydmlzb3IgRW11bGF0aW9uIEFzc2lzdGFuY2UgaW50ZXJydXB0LgorCisgICAgICAqIFBUQ1IgYW5kIHBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIChwYXJ0aXRpb24gdGFibGUgaXMgaW4gc2VjdXJlCisgICAgICAgIG1lbW9yeSkuIEFuIGF0dGVtcHQgdG8gd3JpdGUgdG8gUFRDUiB3aWxsIGNhdXNlIGEgSHlwZXJ2aXNvcgorICAgICAgICBFbXVsYXRpb24gQXNzaXRhbmNlIGludGVycnVwdC4KKworICAgICAgKiBMREJBUiAoTEQgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyKSBhbmQgSU1DIChJbi1NZW1vcnkgQ29sbGVjdGlvbikKKyAgICAgICAgbm9uLWFyY2hpdGVjdGVkIHJlZ2lzdGVycy4gQW4gYXR0ZW1wdCB0byB3cml0ZSB0byB0aGVtIHdpbGwgY2F1c2UgYQorICAgICAgICBIeXBlcnZpc29yIEVtdWxhdGlvbiBBc3Npc3RhbmNlIGludGVycnVwdC4KKworICAgICAgKiBQYWdpbmcgZm9yIGFuIFNWTSwgc2hhcmluZyBvZiBtZW1vcnkgd2l0aCBIeXBlcnZpc29yIGZvciBhbiBTVk0uCisgICAgICAgIChJbmNsdWRpbmcgVmlydHVhbCBQcm9jZXNzb3IgQXJlYSAoVlBBKSBhbmQgdmlydHVhbCBJL08pLgorCisKK1NvZnR3YXJlL01pY3JvY29kZQorPT09PT09PT09PT09PT09PT09CisKKyAgICBUaGUgc29mdHdhcmUgY2hhbmdlcyBpbmNsdWRlOgorCisgICAgKiBTVk1zIGFyZSBjcmVhdGVkIGZyb20gbm9ybWFsIFZNIHVzaW5nIChvcGVuIHNvdXJjZSkgdG9vbGluZyBzdXBwbGllZAorICAgICAgYnkgSUJNLgorCisgICAgKiBBbGwgU1ZNcyBzdGFydCBhcyBub3JtYWwgVk1zIGFuZCB1dGlsaXplIGFuIHVsdHJhY2FsbCwgVVZfRVNNCisgICAgICAoRW50ZXIgU2VjdXJlIE1vZGUpLCB0byBtYWtlIHRoZSB0cmFuc2l0aW9uLgorCisgICAgKiBXaGVuIHRoZSBVVl9FU00gdWx0cmFjYWxsIGlzIG1hZGUgdGhlIFVsdHJhdmlzb3IgY29waWVzIHRoZSBWTSBpbnRvCisgICAgICBzZWN1cmUgbWVtb3J5LCBkZWNyeXB0cyB0aGUgdmVyaWZpY2F0aW9uIGluZm9ybWF0aW9uLCBhbmQgY2hlY2tzIHRoZQorICAgICAgaW50ZWdyaXR5IG9mIHRoZSBTVk0uIElmIHRoZSBpbnRlZ3JpdHkgY2hlY2sgcGFzc2VzIHRoZSBVbHRyYXZpc29yCisgICAgICBwYXNzZXMgY29udHJvbCBpbiBzZWN1cmUgbW9kZS4KKworICAgICogVGhlIHZlcmlmaWNhdGlvbiBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgcGFzcyBwaHJhc2UgZm9yIHRoZQorICAgICAgZW5jcnlwdGVkIGRpc2sgYXNzb2NpYXRlZCB3aXRoIHRoZSBTVk0uIFRoaXMgcGFzcyBwaHJhc2UgaXMgZ2l2ZW4KKyAgICAgIHRvIHRoZSBTVk0gd2hlbiByZXF1ZXN0ZWQuCisKKyAgICAqIFRoZSBVbHRyYXZpc29yIGlzIG5vdCBpbnZvbHZlZCBpbiBwcm90ZWN0aW5nIHRoZSBlbmNyeXB0ZWQgZGlzayBvZgorICAgICAgdGhlIFNWTSB3aGlsZSBhdCByZXN0LgorCisgICAgKiBGb3IgZXh0ZXJuYWwgaW50ZXJydXB0cyB0aGUgVWx0cmF2aXNvciBzYXZlcyB0aGUgc3RhdGUgb2YgdGhlIFNWTSwKKyAgICAgIGFuZCByZWZsZWN0cyB0aGUgaW50ZXJydXB0IHRvIHRoZSBoeXBlcnZpc29yIGZvciBwcm9jZXNzaW5nLgorICAgICAgRm9yIGh5cGVyY2FsbHMsIHRoZSBVbHRyYXZpc29yIGluc2VydHMgbmV1dHJhbCBzdGF0ZSBpbnRvIGFsbAorICAgICAgcmVnaXN0ZXJzIG5vdCBuZWVkZWQgZm9yIHRoZSBoeXBlcmNhbGwgdGhlbiByZWZsZWN0cyB0aGUgY2FsbCB0bworICAgICAgdGhlIGh5cGVydmlzb3IgZm9yIHByb2Nlc3NpbmcuIFRoZSBIX1JBTkRPTSBoeXBlcmNhbGwgaXMgcGVyZm9ybWVkCisgICAgICBieSB0aGUgVWx0cmF2aXNvciBhbmQgbm90IHJlZmxlY3RlZC4KKworICAgICogRm9yIHZpcnR1YWwgSS9PIHRvIHdvcmsgYm91bmNlIGJ1ZmZlcmluZyBtdXN0IGJlIGRvbmUuCisKKyAgICAqIFRoZSBVbHRyYXZpc29yIHVzZXMgQUVTIChJQVBNKSBmb3IgcHJvdGVjdGlvbiBvZiBTVk0gbWVtb3J5LiBJQVBNCisgICAgICBpcyBhIG1vZGUgb2YgQUVTIHRoYXQgcHJvdmlkZXMgaW50ZWdyaXR5IGFuZCBzZWNyZWN5IGNvbmN1cnJlbnRseS4KKworICAgICogVGhlIG1vdmVtZW50IG9mIGRhdGEgYmV0d2VlbiBub3JtYWwgYW5kIHNlY3VyZSBwYWdlcyBpcyBjb29yZGluYXRlZAorICAgICAgd2l0aCB0aGUgVWx0cmF2aXNvciBieSBhIG5ldyBITU0gcGx1Zy1pbiBpbiB0aGUgSHlwZXJ2aXNvci4KKworICAgIFRoZSBVbHRyYXZpc29yIG9mZmVycyBuZXcgc2VydmljZXMgdG8gdGhlIGh5cGVydmlzb3IgYW5kIFNWTXMuIFRoZXNlCisgICAgYXJlIGFjY2Vzc2VkIHRocm91Z2ggdWx0cmFjYWxscy4KKworVGVybWlub2xvZ3kKKz09PT09PT09PT09CisKKyAgICAqIEh5cGVyY2FsbHM6IHNwZWNpYWwgc3lzdGVtIGNhbGxzIHVzZWQgdG8gcmVxdWVzdCBzZXJ2aWNlcyBmcm9tCisgICAgICBIeXBlcnZpc29yLgorCisgICAgKiBOb3JtYWwgbWVtb3J5OiBNZW1vcnkgdGhhdCBpcyBhY2Nlc3NpYmxlIHRvIEh5cGVydmlzb3IuCisKKyAgICAqIE5vcm1hbCBwYWdlOiBQYWdlIGJhY2tlZCBieSBub3JtYWwgbWVtb3J5IGFuZCBhdmFpbGFibGUgdG8KKyAgICAgIEh5cGVydmlzb3IuCisKKyAgICAqIFNoYXJlZCBwYWdlOiBBIHBhZ2UgYmFja2VkIGJ5IG5vcm1hbCBtZW1vcnkgYW5kIGF2YWlsYWJsZSB0byBib3RoCisgICAgICB0aGUgSHlwZXJ2aXNvci9RRU1VIGFuZCB0aGUgU1ZNIChpLmUgcGFnZSBoYXMgbWFwcGluZ3MgaW4gU1ZNIGFuZAorICAgICAgSHlwZXJ2aXNvci9RRU1VKS4KKworICAgICogU2VjdXJlIG1lbW9yeTogTWVtb3J5IHRoYXQgaXMgYWNjZXNzaWJsZSBvbmx5IHRvIFVsdHJhdmlzb3IgYW5kCisgICAgICBTVk1zLgorCisgICAgKiBTZWN1cmUgcGFnZTogUGFnZSBiYWNrZWQgYnkgc2VjdXJlIG1lbW9yeSBhbmQgb25seSBhdmFpbGFibGUgdG8KKyAgICAgIFVsdHJhdmlzb3IgYW5kIFNWTS4KKworICAgICogU1ZNOiBTZWN1cmUgVmlydHVhbCBNYWNoaW5lLgorCisgICAgKiBVbHRyYWNhbGxzOiBzcGVjaWFsIHN5c3RlbSBjYWxscyB1c2VkIHRvIHJlcXVlc3Qgc2VydmljZXMgZnJvbQorICAgICAgVWx0cmF2aXNvci4KKworCitVbHRyYXZpc29yIGNhbGxzIEFQSQorIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworICAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgVWx0cmF2aXNvciBjYWxscyAodWx0cmFjYWxscykgbmVlZGVkIHRvCisgICAgc3VwcG9ydCBTZWN1cmUgVmlydHVhbCBNYWNoaW5lcyAoU1ZNKXMgYW5kIFBhcmF2aXJ0dWFsaXplZCBLVk0uIFRoZQorICAgIHVsdHJhY2FsbHMgYWxsb3cgdGhlIFNWTXMgYW5kIEh5cGVydmlzb3IgdG8gcmVxdWVzdCBzZXJ2aWNlcyBmcm9tIHRoZQorICAgIFVsdHJhdmlzb3Igc3VjaCBhcyBhY2Nlc3NpbmcgYSByZWdpc3RlciBvciBtZW1vcnkgcmVnaW9uIHRoYXQgY2FuIG9ubHkKKyAgICBiZSBhY2Nlc3NlZCB3aGVuIHJ1bm5pbmcgaW4gVWx0cmF2aXNvci1wcml2aWxlZ2VkIG1vZGUuCisKKyAgICBUaGUgc3BlY2lmaWMgc2VydmljZSBuZWVkZWQgZnJvbSBhbiB1bHRyYWNhbGwgaXMgc3BlY2lmaWVkIGluIHJlZ2lzdGVyCisgICAgUjMgKHRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8gdGhlIHVsdHJhY2FsbCkuIE90aGVyIHBhcmFtZXRlcnMgdG8gdGhlCisgICAgdWx0cmFjYWxsLCBpZiBhbnksIGFyZSBzcGVjaWZpZWQgaW4gcmVnaXN0ZXJzIFI0IHRocm91Z2ggUjEyLgorCisgICAgUmV0dXJuIHZhbHVlIG9mIGFsbCB1bHRyYWNhbGxzIGlzIGluIHJlZ2lzdGVyIFIzLiBPdGhlciBvdXRwdXQgdmFsdWVzCisgICAgZnJvbSB0aGUgdWx0cmFjYWxsLCBpZiBhbnksIGFyZSByZXR1cm5lZCBpbiByZWdpc3RlcnMgUjQgdGhyb3VnaCBSMTIuCisgICAgVGhlIG9ubHkgZXhjZXB0aW9uIHRvIHRoaXMgcmVnaXN0ZXIgdXNhZ2UgaXMgdGhlIGBgVVZfUkVUVVJOYGAKKyAgICB1bHRyYWNhbGwgZGVzY3JpYmVkIGJlbG93LgorCisgICAgRWFjaCB1bHRyYWNhbGwgcmV0dXJucyBzcGVjaWZpYyBlcnJvciBjb2RlcywgYXBwbGljYWJsZSBpbiB0aGUgY29udGV4dAorICAgIG9mIHRoZSB1bHRyYWNhbGwuIEhvd2V2ZXIsIGxpa2Ugd2l0aCB0aGUgUG93ZXJQQyBBcmNoaXRlY3R1cmUgUGxhdGZvcm0KKyAgICBSZWZlcmVuY2UgKFBBUFIpLCBpZiBubyBzcGVjaWZpYyBlcnJvciBjb2RlIGlzIGRlZmluZWQgZm9yIGEKKyAgICBwYXJ0aWN1bGFyIHNpdHVhdGlvbiwgdGhlbiB0aGUgdWx0cmFjYWxsIHdpbGwgZmFsbGJhY2sgdG8gYW4gZXJyb25lb3VzCisgICAgcGFyYW1ldGVyLXBvc2l0aW9uIGJhc2VkIGNvZGUuIGkuZSBVX1BBUkFNRVRFUiwgVV9QMiwgVV9QMyBldGMKKyAgICBkZXBlbmRpbmcgb24gdGhlIHVsdHJhY2FsbCBwYXJhbWV0ZXIgdGhhdCBtYXkgaGF2ZSBjYXVzZWQgdGhlIGVycm9yLgorCisgICAgU29tZSB1bHRyYWNhbGxzIGludm9sdmUgdHJhbnNmZXJyaW5nIGEgcGFnZSBvZiBkYXRhIGJldHdlZW4gVWx0cmF2aXNvcgorICAgIGFuZCBIeXBlcnZpc29yLiAgU2VjdXJlIHBhZ2VzIHRoYXQgYXJlIHRyYW5zZmVycmVkIGZyb20gc2VjdXJlIG1lbW9yeQorICAgIHRvIG5vcm1hbCBtZW1vcnkgbWF5IGJlIGVuY3J5cHRlZCB1c2luZyBkeW5hbWljYWxseSBnZW5lcmF0ZWQga2V5cy4KKyAgICBXaGVuIHRoZSBzZWN1cmUgcGFnZXMgYXJlIHRyYW5zZmVycmVkIGJhY2sgdG8gc2VjdXJlIG1lbW9yeSwgdGhleSBtYXkKKyAgICBiZSBkZWNyeXB0ZWQgdXNpbmcgdGhlIHNhbWUgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGtleXMuIEdlbmVyYXRpb24gYW5kCisgICAgbWFuYWdlbWVudCBvZiB0aGVzZSBrZXlzIHdpbGwgYmUgY292ZXJlZCBpbiBhIHNlcGFyYXRlIGRvY3VtZW50LgorCisgICAgRm9yIG5vdyB0aGlzIG9ubHkgY292ZXJzIHVsdHJhY2FsbHMgY3VycmVudGx5IGltcGxlbWVudGVkIGFuZCBiZWluZworICAgIHVzZWQgYnkgSHlwZXJ2aXNvciBhbmQgU1ZNcyBidXQgb3RoZXJzIGNhbiBiZSBhZGRlZCBoZXJlIHdoZW4gaXQKKyAgICBtYWtlcyBzZW5zZS4KKworICAgIFRoZSBmdWxsIHNwZWNpZmljYXRpb24gZm9yIGFsbCBoeXBlcmNhbGxzL3VsdHJhY2FsbHMgd2lsbCBldmVudHVhbGx5CisgICAgYmUgbWFkZSBhdmFpbGFibGUgaW4gdGhlIHB1YmxpYy9PcGVuUG93ZXIgdmVyc2lvbiBvZiB0aGUgUEFQUgorICAgIHNwZWNpZmljYXRpb24uCisKKyAgICAuLiBub3RlOjoKKworICAgICAgICBJZiBQRUYgaXMgbm90IGVuYWJsZWQsIHRoZSB1bHRyYWNhbGxzIHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUKKyAgICAgICAgSHlwZXJ2aXNvciB3aGljaCBtdXN0IGhhbmRsZS9mYWlsIHRoZSBjYWxscy4KKworVWx0cmFjYWxscyB1c2VkIGJ5IEh5cGVydmlzb3IKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSB2aXJ0dWFsIG1lbW9yeSBtYW5hZ2VtZW50IHVsdHJhY2FsbHMgdXNlZAorICAgIGJ5IHRoZSBIeXBlcnZpc29yIHRvIG1hbmFnZSBTVk1zLgorCitVVl9QQUdFX09VVAorLS0tLS0tLS0tLS0KKworICAgIEVuY3J5cHQgYW5kIG1vdmUgdGhlIGNvbnRlbnRzIG9mIGEgcGFnZSBmcm9tIHNlY3VyZSBtZW1vcnkgdG8gbm9ybWFsCisgICAgbWVtb3J5LgorCitTeW50YXgKK35+fn5+fgorCisuLiBjb2RlLWJsb2NrOjogYworCisJdWludDY0X3QgdWx0cmFjYWxsKGNvbnN0IHVpbnQ2NF90IFVWX1BBR0VfT1VULAorCQl1aW50MTZfdCBscGlkLAkJLyogTFBBUiBJRCAqLworCQl1aW50NjRfdCBkZXN0X3JhLAkvKiByZWFsIGFkZHJlc3Mgb2YgZGVzdGluYXRpb24gcGFnZSAqLworCQl1aW50NjRfdCBzcmNfZ3BhLAkvKiBzb3VyY2UgZ3Vlc3QtcGh5c2ljYWwtYWRkcmVzcyAqLworCQl1aW50OF90ICBmbGFncywJCS8qIGZsYWdzICovCisJCXVpbnQ2NF90IG9yZGVyKQkJLyogcGFnZSBzaXplIG9yZGVyICovCisKK1JldHVybiB2YWx1ZXMKK35+fn5+fn5+fn5+fn4KKworICAgIE9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczoKKworCSogVV9TVUNDRVNTCW9uIHN1Y2Nlc3MuCisJKiBVX1BBUkFNRVRFUglpZiBgYGxwaWRgYCBpcyBpbnZhbGlkLgorCSogVV9QMiAJCWlmIGBgZGVzdF9yYWBgIGlzIGludmFsaWQuCisJKiBVX1AzCQlpZiB0aGUgYGBzcmNfZ3BhYGAgYWRkcmVzcyBpcyBpbnZhbGlkLgorCSogVV9QNAkJaWYgYW55IGJpdCBpbiB0aGUgYGBmbGFnc2BgIGlzIHVucmVjb2duaXplZAorCSogVV9QNQkJaWYgdGhlIGBgb3JkZXJgYCBwYXJhbWV0ZXIgaXMgdW5zdXBwb3J0ZWQuCisJKiBVX0ZVTkNUSU9OCWlmIGZ1bmN0aW9uYWxpdHkgaXMgbm90IHN1cHBvcnRlZC4KKwkqIFVfQlVTWQlpZiBwYWdlIGNhbm5vdCBiZSBjdXJyZW50bHkgcGFnZWQtb3V0LgorCitEZXNjcmlwdGlvbgorfn5+fn5+fn5+fn4KKworICAgIEVuY3J5cHQgdGhlIGNvbnRlbnRzIG9mIGEgc2VjdXJlLXBhZ2UgYW5kIG1ha2UgaXQgYXZhaWxhYmxlIHRvCisgICAgSHlwZXJ2aXNvciBpbiBhIG5vcm1hbCBwYWdlLgorCisgICAgQnkgZGVmYXVsdCwgdGhlIHNvdXJjZSBwYWdlIGlzIHVubWFwcGVkIGZyb20gdGhlIFNWTSdzIHBhcnRpdGlvbi0KKyAgICBzY29wZWQgcGFnZSB0YWJsZS4gQnV0IHRoZSBIeXBlcnZpc29yIGNhbiBwcm92aWRlIGEgaGludCB0byB0aGUKKyAgICBVbHRyYXZpc29yIHRvIHJldGFpbiB0aGUgcGFnZSBtYXBwaW5nIGJ5IHNldHRpbmcgdGhlIGBgVVZfU05BUFNIT1RgYAorICAgIGZsYWcgaW4gYGBmbGFnc2BgIHBhcmFtZXRlci4KKworICAgIElmIHRoZSBzb3VyY2UgcGFnZSBpcyBhbHJlYWR5IGEgc2hhcmVkIHBhZ2UgdGhlIGNhbGwgcmV0dXJucworICAgIFVfU1VDQ0VTUywgd2l0aG91dCBkb2luZyBhbnl0aGluZy4KKworVXNlIGNhc2VzCit+fn5+fn5+fn4KKworICAgICMuIFFFTVUgYXR0ZW1wdHMgdG8gYWNjZXNzIGFuIGFkZHJlc3MgYmVsb25naW5nIHRvIHRoZSBTVk0gYnV0IHRoZQorICAgICAgIHBhZ2UgZnJhbWUgZm9yIHRoYXQgYWRkcmVzcyBpcyBub3QgbWFwcGVkIGludG8gUUVNVSdzIGFkZHJlc3MKKyAgICAgICBzcGFjZS4gSW4gdGhpcyBjYXNlLCB0aGUgSHlwZXJ2aXNvciB3aWxsIGFsbG9jYXRlIGEgcGFnZSBmcmFtZSwKKyAgICAgICBtYXAgaXQgaW50byBRRU1VJ3MgYWRkcmVzcyBzcGFjZSBhbmQgaXNzdWUgdGhlIGBgVVZfUEFHRV9PVVRgYAorICAgICAgIGNhbGwgdG8gcmV0cmlldmUgdGhlIGVuY3J5cHRlZCBjb250ZW50cyBvZiB0aGUgcGFnZS4KKworICAgICMuIFdoZW4gVWx0cmF2aXNvciBydW5zIGxvdyBvbiBzZWN1cmUgbWVtb3J5IGFuZCBpdCBuZWVkcyB0byBwYWdlLW91dAorICAgICAgIGFuIExSVSBwYWdlLiBJbiB0aGlzIGNhc2UsIFVsdHJhdmlzb3Igd2lsbCBpc3N1ZSB0aGUKKyAgICAgICBgYEhfU1ZNX1BBR0VfT1VUYGAgaHlwZXJjYWxsIHRvIHRoZSBIeXBlcnZpc29yLiBUaGUgSHlwZXJ2aXNvciB3aWxsCisgICAgICAgdGhlbiBhbGxvY2F0ZSBhIG5vcm1hbCBwYWdlIGFuZCBpc3N1ZSB0aGUgYGBVVl9QQUdFX09VVGBgIHVsdHJhY2FsbAorICAgICAgIGFuZCB0aGUgVWx0cmF2aXNvciB3aWxsIGVuY3J5cHQgYW5kIG1vdmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBzZWN1cmUKKyAgICAgICBwYWdlIGludG8gdGhlIG5vcm1hbCBwYWdlLgorCisgICAgIy4gV2hlbiBIeXBlcnZpc29yIGFjY2Vzc2VzIFNWTSBkYXRhLCB0aGUgSHlwZXJ2aXNvciByZXF1ZXN0cyB0aGUKKyAgICAgICBVbHRyYXZpc29yIHRvIHRyYW5zZmVyIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2UgaW50byBhIGluc2VjdXJlIHBhZ2UsCisgICAgICAgd2hpY2ggdGhlIEh5cGVydmlzb3IgY2FuIGFjY2Vzcy4gVGhlIGRhdGEgaW4gdGhlIG5vcm1hbCBwYWdlIHdpbGwKKyAgICAgICBiZSBlbmNyeXB0ZWQgdGhvdWdoLgorCitVVl9QQUdFX0lOCistLS0tLS0tLS0tCisKKyAgICBNb3ZlIHRoZSBjb250ZW50cyBvZiBhIHBhZ2UgZnJvbSBub3JtYWwgbWVtb3J5IHRvIHNlY3VyZSBtZW1vcnkuCisKK1N5bnRheAorfn5+fn5+CisKKy4uIGNvZGUtYmxvY2s6OiBjCisKKwl1aW50NjRfdCB1bHRyYWNhbGwoY29uc3QgdWludDY0X3QgVVZfUEFHRV9JTiwKKwkJdWludDE2X3QgbHBpZCwJCS8qIHRoZSBMUEFSIElEICovCisJCXVpbnQ2NF90IHNyY19yYSwJLyogc291cmNlIHJlYWwgYWRkcmVzcyBvZiBwYWdlICovCisJCXVpbnQ2NF90IGRlc3RfZ3BhLAkvKiBkZXN0aW5hdGlvbiBndWVzdCBwaHlzaWNhbCBhZGRyZXNzICovCisJCXVpbnQ2NF90IGZsYWdzLAkJLyogZmxhZ3MgKi8KKwkJdWludDY0X3Qgb3JkZXIpCQkvKiBwYWdlIHNpemUgb3JkZXIgKi8KKworUmV0dXJuIHZhbHVlcworfn5+fn5+fn5+fn5+fgorCisgICAgT25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorCisJKiBVX1NVQ0NFU1MJb24gc3VjY2Vzcy4KKwkqIFVfQlVTWQlpZiBwYWdlIGNhbm5vdCBiZSBjdXJyZW50bHkgcGFnZWQtaW4uCisJKiBVX0ZVTkNUSU9OCWlmIGZ1bmN0aW9uYWxpdHkgaXMgbm90IHN1cHBvcnRlZAorCSogVV9QQVJBTUVURVIJaWYgYGBscGlkYGAgaXMgaW52YWxpZC4KKwkqIFVfUDIgCQlpZiBgYHNyY19yYWBgIGlzIGludmFsaWQuCisJKiBVX1AzCQlpZiB0aGUgYGBkZXN0X2dwYWBgIGFkZHJlc3MgaXMgaW52YWxpZC4KKwkqIFVfUDQJCWlmIGFueSBiaXQgaW4gdGhlIGBgZmxhZ3NgYCBpcyB1bnJlY29nbml6ZWQKKwkqIFVfUDUJCWlmIHRoZSBgYG9yZGVyYGAgcGFyYW1ldGVyIGlzIHVuc3VwcG9ydGVkLgorCitEZXNjcmlwdGlvbgorfn5+fn5+fn5+fn4KKworICAgIE1vdmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBwYWdlIGlkZW50aWZpZWQgYnkgYGBzcmNfcmFgYCBmcm9tIG5vcm1hbAorICAgIG1lbW9yeSB0byBzZWN1cmUgbWVtb3J5IGFuZCBtYXAgaXQgdG8gdGhlIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MKKyAgICBgYGRlc3RfZ3BhYGAuCisKKyAgICBJZiBgZGVzdF9ncGFgIHJlZmVycyB0byBhIHNoYXJlZCBhZGRyZXNzLCBtYXAgdGhlIHBhZ2UgaW50byB0aGUKKyAgICBwYXJ0aXRpb24tc2NvcGVkIHBhZ2UtdGFibGUgb2YgdGhlIFNWTS4gIElmIGBkZXN0X2dwYWAgaXMgbm90IHNoYXJlZCwKKyAgICBjb3B5IHRoZSBjb250ZW50cyBvZiB0aGUgcGFnZSBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHNlY3VyZSBwYWdlLgorICAgIERlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgZGVjcnlwdCB0aGUgcGFnZSBiZWZvcmUgYmVpbmcgY29waWVkLgorCisgICAgVGhlIGNhbGxlciBwcm92aWRlcyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgcGFnZSB0aHJvdWdoIHRoZSBgYGZsYWdzYGAKKyAgICBwYXJhbWV0ZXIuIFZhbGlkIHZhbHVlcyBmb3IgYGBmbGFnc2BgIGFyZToKKworCSogQ0FDSEVfSU5ISUJJVEVECisJKiBDQUNIRV9FTkFCTEVECisJKiBXUklURV9QUk9URUNUSU9OCisKKyAgICBUaGUgSHlwZXJ2aXNvciBtdXN0IHBpbiB0aGUgcGFnZSBpbiBtZW1vcnkgYmVmb3JlIG1ha2luZworICAgIGBgVVZfUEFHRV9JTmBgIHVsdHJhY2FsbC4KKworVXNlIGNhc2VzCit+fn5+fn5+fn4KKworICAgICMuIFdoZW4gYSBub3JtYWwgVk0gc3dpdGNoZXMgdG8gc2VjdXJlIG1vZGUsIGFsbCBpdHMgcGFnZXMgcmVzaWRpbmcKKyAgICAgICBpbiBub3JtYWwgbWVtb3J5LCBhcmUgbW92ZWQgaW50byBzZWN1cmUgbWVtb3J5LgorCisgICAgIy4gV2hlbiBhbiBTVk0gcmVxdWVzdHMgdG8gc2hhcmUgYSBwYWdlIHdpdGggSHlwZXJ2aXNvciB0aGUgSHlwZXJ2aXNvcgorICAgICAgIGFsbG9jYXRlcyBhIHBhZ2UgYW5kIGluZm9ybXMgdGhlIFVsdHJhdmlzb3IuCisKKyAgICAjLiBXaGVuIGFuIFNWTSBhY2Nlc3NlcyBhIHNlY3VyZSBwYWdlIHRoYXQgaGFzIGJlZW4gcGFnZWQtb3V0LAorICAgICAgIFVsdHJhdmlzb3IgaW52b2tlcyB0aGUgSHlwZXJ2aXNvciB0byBsb2NhdGUgdGhlIHBhZ2UuIEFmdGVyCisgICAgICAgbG9jYXRpbmcgdGhlIHBhZ2UsIHRoZSBIeXBlcnZpc29yIHVzZXMgVVZfUEFHRV9JTiB0byBtYWtlIHRoZQorICAgICAgIHBhZ2UgYXZhaWxhYmxlIHRvIFVsdHJhdmlzb3IuCisKK1VWX1BBR0VfSU5WQUwKKy0tLS0tLS0tLS0tLS0KKworICAgIEludmFsaWRhdGUgdGhlIFVsdHJhdmlzb3IgbWFwcGluZyBvZiBhIHBhZ2UuCisKK1N5bnRheAorfn5+fn5+CisKKy4uIGNvZGUtYmxvY2s6OiBjCisKKwl1aW50NjRfdCB1bHRyYWNhbGwoY29uc3QgdWludDY0X3QgVVZfUEFHRV9JTlZBTCwKKwkJdWludDE2X3QgbHBpZCwJCS8qIHRoZSBMUEFSIElEICovCisJCXVpbnQ2NF90IGd1ZXN0X3BhLAkvKiBkZXN0aW5hdGlvbiBndWVzdC1waHlzaWNhbC1hZGRyZXNzICovCisJCXVpbnQ2NF90IG9yZGVyKQkJLyogcGFnZSBzaXplIG9yZGVyICovCisKK1JldHVybiB2YWx1ZXMKK35+fn5+fn5+fn5+fn4KKworICAgIE9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczoKKworCSogVV9TVUNDRVNTCW9uIHN1Y2Nlc3MuCisJKiBVX1BBUkFNRVRFUglpZiBgYGxwaWRgYCBpcyBpbnZhbGlkLgorCSogVV9QMiAJCWlmIGBgZ3Vlc3RfcGFgYCBpcyBpbnZhbGlkIChvciBjb3JyZXNwb25kcyB0byBhIHNlY3VyZQorICAgICAgICAgICAgICAgICAgICAgICAgcGFnZSBtYXBwaW5nKS4KKwkqIFVfUDMJCWlmIHRoZSBgYG9yZGVyYGAgaXMgaW52YWxpZC4KKwkqIFVfRlVOQ1RJT04JaWYgZnVuY3Rpb25hbGl0eSBpcyBub3Qgc3VwcG9ydGVkLgorCSogVV9CVVNZCWlmIHBhZ2UgY2Fubm90IGJlIGN1cnJlbnRseSBpbnZhbGlkYXRlZC4KKworRGVzY3JpcHRpb24KK35+fn5+fn5+fn5+CisKKyAgICBUaGlzIHVsdHJhY2FsbCBpbmZvcm1zIFVsdHJhdmlzb3IgdGhhdCB0aGUgcGFnZSBtYXBwaW5nIGluIEh5cGVydmlzb3IKKyAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBndWVzdCBwaHlzaWNhbCBhZGRyZXNzIGhhcyBiZWVuIGludmFsaWRhdGVkCisgICAgYW5kIHRoYXQgdGhlIFVsdHJhdmlzb3Igc2hvdWxkIG5vdCBhY2Nlc3MgdGhlIHBhZ2UuIElmIHRoZSBzcGVjaWZpZWQKKyAgICBgYGd1ZXN0X3BhYGAgY29ycmVzcG9uZHMgdG8gYSBzZWN1cmUgcGFnZSwgVWx0cmF2aXNvciB3aWxsIGlnbm9yZSB0aGUKKyAgICBhdHRlbXB0IHRvIGludmFsaWRhdGUgdGhlIHBhZ2UgYW5kIHJldHVybiBVX1AyLgorCitVc2UgY2FzZXMKK35+fn5+fn5+fgorCisgICAgIy4gV2hlbiBhIHNoYXJlZCBwYWdlIGlzIHVubWFwcGVkIGZyb20gdGhlIFFFTVUncyBwYWdlIHRhYmxlLCBwb3NzaWJseQorICAgICAgIGJlY2F1c2UgaXQgaXMgcGFnZWQtb3V0IHRvIGRpc2ssIFVsdHJhdmlzb3IgbmVlZHMgdG8ga25vdyB0aGF0IHRoZQorICAgICAgIHBhZ2Ugc2hvdWxkIG5vdCBiZSBhY2Nlc3NlZCBmcm9tIGl0cyBzaWRlIHRvby4KKworCitVVl9XUklURV9QQVRFCistLS0tLS0tLS0tLS0tCisKKyAgICBWYWxpZGF0ZSBhbmQgd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZSBlbnRyeSAoUEFURSkgZm9yIGEgZ2l2ZW4KKyAgICBwYXJ0aXRpb24uCisKK1N5bnRheAorfn5+fn5+CisKKy4uIGNvZGUtYmxvY2s6OiBjCisKKwl1aW50NjRfdCB1bHRyYWNhbGwoY29uc3QgdWludDY0X3QgVVZfV1JJVEVfUEFURSwKKwkJdWludDMyX3QgbHBpZCwJCS8qIHRoZSBMUEFSIElEICovCisJCXVpbnQ2NF90IGR3MAkJLyogdGhlIGZpcnN0IGRvdWJsZSB3b3JkIHRvIHdyaXRlICovCisJCXVpbnQ2NF90IGR3MSkJCS8qIHRoZSBzZWNvbmQgZG91YmxlIHdvcmQgdG8gd3JpdGUgKi8KKworUmV0dXJuIHZhbHVlcworfn5+fn5+fn5+fn5+fgorCisgICAgT25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorCisJKiBVX1NVQ0NFU1MJb24gc3VjY2Vzcy4KKwkqIFVfQlVTWQlpZiBQQVRFIGNhbm5vdCBiZSBjdXJyZW50bHkgd3JpdHRlbiB0by4KKwkqIFVfRlVOQ1RJT04JaWYgZnVuY3Rpb25hbGl0eSBpcyBub3Qgc3VwcG9ydGVkLgorCSogVV9QQVJBTUVURVIJaWYgYGBscGlkYGAgaXMgaW52YWxpZC4KKwkqIFVfUDIgCQlpZiBgYGR3MGBgIGlzIGludmFsaWQuCisJKiBVX1AzCQlpZiB0aGUgYGBkdzFgYCBhZGRyZXNzIGlzIGludmFsaWQuCisJKiBVX1BFUk1JU1NJT04JaWYgdGhlIEh5cGVydmlzb3IgaXMgYXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhlIFBBVEUKKwkJCW9mIGEgc2VjdXJlIHZpcnR1YWwgbWFjaGluZSBvciBpZiBjYWxsZWQgZnJvbSBhCisJCQljb250ZXh0IG90aGVyIHRoYW4gSHlwZXJ2aXNvci4KKworRGVzY3JpcHRpb24KK35+fn5+fn5+fn5+CisKKyAgICBWYWxpZGF0ZSBhbmQgd3JpdGUgYSBMUElEIGFuZCBpdHMgcGFydGl0aW9uLXRhYmxlLWVudHJ5IGZvciB0aGUgZ2l2ZW4KKyAgICBMUElELiAgSWYgdGhlIExQSUQgaXMgYWxyZWFkeSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkLCB0aGlzIGNhbGwKKyAgICByZXN1bHRzIGluIGNoYW5naW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZW50cnkuCisKK1VzZSBjYXNlcworfn5+fn5+fn5+CisKKyAgICAjLiBUaGUgUGFydGl0aW9uIHRhYmxlIHJlc2lkZXMgaW4gU2VjdXJlIG1lbW9yeSBhbmQgaXRzIGVudHJpZXMsCisgICAgICAgY2FsbGVkIFBBVEUgKFBhcnRpdGlvbiBUYWJsZSBFbnRyaWVzKSwgcG9pbnQgdG8gdGhlIHBhcnRpdGlvbi0KKyAgICAgICBzY29wZWQgcGFnZSB0YWJsZXMgZm9yIHRoZSBIeXBlcnZpc29yIGFzIHdlbGwgYXMgZWFjaCBvZiB0aGUKKyAgICAgICB2aXJ0dWFsIG1hY2hpbmVzIChib3RoIHNlY3VyZSBhbmQgbm9ybWFsKS4gVGhlIEh5cGVydmlzb3IKKyAgICAgICBvcGVyYXRlcyBpbiBwYXJ0aXRpb24gMCBhbmQgaXRzIHBhcnRpdGlvbi1zY29wZWQgcGFnZSB0YWJsZXMKKyAgICAgICByZXNpZGUgaW4gbm9ybWFsIG1lbW9yeS4KKworICAgICMuIFRoaXMgdWx0cmFjYWxsIGFsbG93cyB0aGUgSHlwZXJ2aXNvciB0byByZWdpc3RlciB0aGUgcGFydGl0aW9uLQorICAgICAgIHNjb3BlZCBhbmQgcHJvY2Vzcy1zY29wZWQgcGFnZSB0YWJsZSBlbnRyaWVzIGZvciB0aGUgSHlwZXJ2aXNvcgorICAgICAgIGFuZCBvdGhlciBwYXJ0aXRpb25zICh2aXJ0dWFsIG1hY2hpbmVzKSB3aXRoIHRoZSBVbHRyYXZpc29yLgorCisgICAgIy4gSWYgdGhlIHZhbHVlIG9mIHRoZSBQQVRFIGZvciBhbiBleGlzdGluZyBwYXJ0aXRpb24gKFZNKSBjaGFuZ2VzLAorICAgICAgIHRoZSBUTEIgY2FjaGUgZm9yIHRoZSBwYXJ0aXRpb24gaXMgZmx1c2hlZC4KKworICAgICMuIFRoZSBIeXBlcnZpc29yIGlzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW5nIExQSUQuIFRoZSBMUElEIGFuZAorICAgICAgIGl0cyBQQVRFIGVudHJ5IGFyZSByZWdpc3RlcmVkIHRvZ2V0aGVyLiAgVGhlIEh5cGVydmlzb3IgbWFuYWdlcworICAgICAgIHRoZSBQQVRFIGVudHJpZXMgZm9yIGEgbm9ybWFsIFZNIGFuZCBjYW4gY2hhbmdlIHRoZSBQQVRFIGVudHJ5CisgICAgICAgYW55dGltZS4gVWx0cmF2aXNvciBtYW5hZ2VzIHRoZSBQQVRFIGVudHJpZXMgZm9yIGFuIFNWTSBhbmQKKyAgICAgICBIeXBlcnZpc29yIGlzIG5vdCBhbGxvd2VkIHRvIG1vZGlmeSB0aGVtLgorCitVVl9SRVRVUk4KKy0tLS0tLS0tLQorCisgICAgUmV0dXJuIGNvbnRyb2wgZnJvbSB0aGUgSHlwZXJ2aXNvciBiYWNrIHRvIHRoZSBVbHRyYXZpc29yIGFmdGVyCisgICAgcHJvY2Vzc2luZyBhbiBoeXBlcmNhbGwgb3IgaW50ZXJydXB0IHRoYXQgd2FzIGZvcndhcmRlZCAoYWthCisgICAgKnJlZmxlY3RlZCopIHRvIHRoZSBIeXBlcnZpc29yLgorCitTeW50YXgKK35+fn5+fgorCisuLiBjb2RlLWJsb2NrOjogYworCisJdWludDY0X3QgdWx0cmFjYWxsKGNvbnN0IHVpbnQ2NF90IFVWX1JFVFVSTikKKworUmV0dXJuIHZhbHVlcworfn5+fn5+fn5+fn5+fgorCisgICAgIFRoaXMgY2FsbCBuZXZlciByZXR1cm5zIHRvIEh5cGVydmlzb3Igb24gc3VjY2Vzcy4gIEl0IHJldHVybnMKKyAgICAgVV9JTlZBTElEIGlmIHVsdHJhY2FsbCBpcyBub3QgbWFkZSBmcm9tIGEgSHlwZXJ2aXNvciBjb250ZXh0LgorCitEZXNjcmlwdGlvbgorfn5+fn5+fn5+fn4KKworICAgIFdoZW4gYW4gU1ZNIG1ha2VzIGFuIGh5cGVyY2FsbCBvciBpbmN1cnMgc29tZSBvdGhlciBleGNlcHRpb24sIHRoZQorICAgIFVsdHJhdmlzb3IgdXN1YWxseSBmb3J3YXJkcyAoYWthICpyZWZsZWN0cyopIHRoZSBleGNlcHRpb25zIHRvIHRoZQorICAgIEh5cGVydmlzb3IuICBBZnRlciBwcm9jZXNzaW5nIHRoZSBleGNlcHRpb24sIEh5cGVydmlzb3IgdXNlcyB0aGUKKyAgICBgYFVWX1JFVFVSTmBgIHVsdHJhY2FsbCB0byByZXR1cm4gY29udHJvbCBiYWNrIHRvIHRoZSBTVk0uCisKKyAgICBUaGUgZXhwZWN0ZWQgcmVnaXN0ZXIgc3RhdGUgb24gZW50cnkgdG8gdGhpcyB1bHRyYWNhbGwgaXM6CisKKyAgICAqIE5vbi12b2xhdGlsZSByZWdpc3RlcnMgYXJlIHJlc3RvcmVkIHRvIHRoZWlyIG9yaWdpbmFsIHZhbHVlcy4KKyAgICAqIElmIHJldHVybmluZyBmcm9tIGFuIGh5cGVyY2FsbCwgcmVnaXN0ZXIgUjAgY29udGFpbnMgdGhlIHJldHVybgorICAgICAgdmFsdWUgKCoqdW5saWtlIG90aGVyIHVsdHJhY2FsbHMqKikgYW5kLCByZWdpc3RlcnMgUjQgdGhyb3VnaCBSMTIKKyAgICAgIGNvbnRhaW4gYW55IG91dHB1dCB2YWx1ZXMgb2YgdGhlIGh5cGVyY2FsbC4KKyAgICAqIFIzIGNvbnRhaW5zIHRoZSB1bHRyYWNhbGwgbnVtYmVyLCBpLmUgVVZfUkVUVVJOLgorICAgICogSWYgcmV0dXJuaW5nIHdpdGggYSBzeW50aGVzaXplZCBpbnRlcnJ1cHQsIFIyIGNvbnRhaW5zIHRoZQorICAgICAgc3ludGhlc2l6ZWQgaW50ZXJydXB0IG51bWJlci4KKworVXNlIGNhc2VzCit+fn5+fn5+fn4KKworICAgICMuIFVsdHJhdmlzb3IgcmVsaWVzIG9uIHRoZSBIeXBlcnZpc29yIHRvIHByb3ZpZGUgc2V2ZXJhbCBzZXJ2aWNlcyB0bworICAgICAgIHRoZSBTVk0gc3VjaCBhcyBwcm9jZXNzaW5nIGh5cGVyY2FsbCBhbmQgb3RoZXIgZXhjZXB0aW9ucy4gQWZ0ZXIKKyAgICAgICBwcm9jZXNzaW5nIHRoZSBleGNlcHRpb24sIEh5cGVydmlzb3IgdXNlcyBVVl9SRVRVUk4gdG8gcmV0dXJuCisgICAgICAgY29udHJvbCBiYWNrIHRvIHRoZSBVbHRyYXZpc29yLgorCisgICAgIy4gSHlwZXJ2aXNvciBoYXMgdG8gdXNlIHRoaXMgdWx0cmFjYWxsIHRvIHJldHVybiBjb250cm9sIHRvIHRoZSBTVk0uCisKKworVVZfUkVHSVNURVJfTUVNX1NMT1QKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBSZWdpc3RlciBhbiBTVk0gYWRkcmVzcy1yYW5nZSB3aXRoIHNwZWNpZmllZCBwcm9wZXJ0aWVzLgorCitTeW50YXgKK35+fn5+fgorCisuLiBjb2RlLWJsb2NrOjogYworCisJdWludDY0X3QgdWx0cmFjYWxsKGNvbnN0IHVpbnQ2NF90IFVWX1JFR0lTVEVSX01FTV9TTE9ULAorCQl1aW50NjRfdCBscGlkLAkJLyogTFBBUiBJRCBvZiB0aGUgU1ZNICovCisJCXVpbnQ2NF90IHN0YXJ0X2dwYSwJLyogc3RhcnQgZ3Vlc3QgcGh5c2ljYWwgYWRkcmVzcyAqLworCQl1aW50NjRfdCBzaXplLAkJLyogc2l6ZSBvZiBhZGRyZXNzIHJhbmdlIGluIGJ5dGVzICovCisJCXVpbnQ2NF90IGZsYWdzCQkvKiByZXNlcnZlZCBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLworCQl1aW50MTZfdCBzbG90aWQpCS8qIHNsb3QgaWRlbnRpZmllciAqLworCitSZXR1cm4gdmFsdWVzCit+fn5+fn5+fn5+fn5+CisKKyAgICBPbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisKKwkqIFVfU1VDQ0VTUwlvbiBzdWNjZXNzLgorCSogVV9QQVJBTUVURVIJaWYgYGBscGlkYGAgaXMgaW52YWxpZC4KKwkqIFVfUDIgCQlpZiBgYHN0YXJ0X2dwYWBgIGlzIGludmFsaWQuCisJKiBVX1AzCQlpZiBgYHNpemVgYCBpcyBpbnZhbGlkLgorCSogVV9QNAkJaWYgYW55IGJpdCBpbiB0aGUgYGBmbGFnc2BgIGlzIHVucmVjb2duaXplZC4KKwkqIFVfUDUJCWlmIHRoZSBgYHNsb3RpZGBgIHBhcmFtZXRlciBpcyB1bnN1cHBvcnRlZC4KKwkqIFVfUEVSTUlTU0lPTglpZiBjYWxsZWQgZnJvbSBjb250ZXh0IG90aGVyIHRoYW4gSHlwZXJ2aXNvci4KKwkqIFVfRlVOQ1RJT04JaWYgZnVuY3Rpb25hbGl0eSBpcyBub3Qgc3VwcG9ydGVkLgorCisKK0Rlc2NyaXB0aW9uCit+fn5+fn5+fn5+fgorCisgICAgUmVnaXN0ZXIgYSBtZW1vcnkgcmFuZ2UgZm9yIGFuIFNWTS4gIFRoZSBtZW1vcnkgcmFuZ2Ugc3RhcnRzIGF0IHRoZQorICAgIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MgYGBzdGFydF9ncGFgYCBhbmQgaXMgYGBzaXplYGAgYnl0ZXMgbG9uZy4KKworVXNlIGNhc2VzCit+fn5+fn5+fn4KKworCisgICAgIy4gV2hlbiBhIHZpcnR1YWwgbWFjaGluZSBnb2VzIHNlY3VyZSwgYWxsIHRoZSBtZW1vcnkgc2xvdHMgbWFuYWdlZCBieQorICAgICAgIHRoZSBIeXBlcnZpc29yIG1vdmUgaW50byBzZWN1cmUgbWVtb3J5LiBUaGUgSHlwZXJ2aXNvciBpdGVyYXRlcworICAgICAgIHRocm91Z2ggZWFjaCBvZiBtZW1vcnkgc2xvdHMsIGFuZCByZWdpc3RlcnMgdGhlIHNsb3Qgd2l0aAorICAgICAgIFVsdHJhdmlzb3IuICBIeXBlcnZpc29yIG1heSBkaXNjYXJkIHNvbWUgc2xvdHMgc3VjaCBhcyB0aG9zZSB1c2VkCisgICAgICAgZm9yIGZpcm13YXJlIChTTE9GKS4KKworICAgICMuIFdoZW4gbmV3IG1lbW9yeSBpcyBob3QtcGx1Z2dlZCwgYSBuZXcgbWVtb3J5IHNsb3QgZ2V0cyByZWdpc3RlcmVkLgorCisKK1VWX1VOUkVHSVNURVJfTUVNX1NMT1QKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIFVucmVnaXN0ZXIgYW4gU1ZNIGFkZHJlc3MtcmFuZ2UgdGhhdCB3YXMgcHJldmlvdXNseSByZWdpc3RlcmVkIHVzaW5nCisgICAgVVZfUkVHSVNURVJfTUVNX1NMT1QuCisKK1N5bnRheAorfn5+fn5+CisKKy4uIGNvZGUtYmxvY2s6OiBjCisKKwl1aW50NjRfdCB1bHRyYWNhbGwoY29uc3QgdWludDY0X3QgVVZfVU5SRUdJU1RFUl9NRU1fU0xPVCwKKwkJdWludDY0X3QgbHBpZCwJCS8qIExQQVIgSUQgb2YgdGhlIFNWTSAqLworCQl1aW50NjRfdCBzbG90aWQpCS8qIHJlc2VydmF0aW9uIHNsb3RpZCAqLworCitSZXR1cm4gdmFsdWVzCit+fn5+fn5+fn5+fn5+CisKKyAgICBPbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisKKwkqIFVfU1VDQ0VTUwlvbiBzdWNjZXNzLgorCSogVV9GVU5DVElPTglpZiBmdW5jdGlvbmFsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuCisJKiBVX1BBUkFNRVRFUglpZiBgYGxwaWRgYCBpcyBpbnZhbGlkLgorCSogVV9QMiAJCWlmIGBgc2xvdGlkYGAgaXMgaW52YWxpZC4KKwkqIFVfUEVSTUlTU0lPTglpZiBjYWxsZWQgZnJvbSBjb250ZXh0IG90aGVyIHRoYW4gSHlwZXJ2aXNvci4KKworRGVzY3JpcHRpb24KK35+fn5+fn5+fn5+CisKKyAgICBSZWxlYXNlIHRoZSBtZW1vcnkgc2xvdCBpZGVudGlmaWVkIGJ5IGBgc2xvdGlkYGAgYW5kIGZyZWUgYW55CisgICAgcmVzb3VyY2VzIGFsbG9jYXRlZCB0b3dhcmRzIHRoZSByZXNlcnZhdGlvbi4KKworVXNlIGNhc2VzCit+fn5+fn5+fn4KKworICAgICMuIE1lbW9yeSBob3QtcmVtb3ZlLgorCisKK1VWX1NWTV9URVJNSU5BVEUKKy0tLS0tLS0tLS0tLS0tLS0KKworICAgIFRlcm1pbmF0ZSBhbiBTVk0gYW5kIHJlbGVhc2UgaXRzIHJlc291cmNlcy4KKworU3ludGF4Cit+fn5+fn4KKworLi4gY29kZS1ibG9jazo6IGMKKworCXVpbnQ2NF90IHVsdHJhY2FsbChjb25zdCB1aW50NjRfdCBVVl9TVk1fVEVSTUlOQVRFLAorCQl1aW50NjRfdCBscGlkLAkJLyogTFBBUiBJRCBvZiB0aGUgU1ZNICovKQorCitSZXR1cm4gdmFsdWVzCit+fn5+fn5+fn5+fn5+CisKKyAgICBPbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisKKwkqIFVfU1VDQ0VTUwlvbiBzdWNjZXNzLgorCSogVV9GVU5DVElPTglpZiBmdW5jdGlvbmFsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuCisJKiBVX1BBUkFNRVRFUglpZiBgYGxwaWRgYCBpcyBpbnZhbGlkLgorCSogVV9JTlZBTElECWlmIFZNIGlzIG5vdCBzZWN1cmUuCisJKiBVX1BFUk1JU1NJT04gIGlmIG5vdCBjYWxsZWQgZnJvbSBhIEh5cGVydmlzb3IgY29udGV4dC4KKworRGVzY3JpcHRpb24KK35+fn5+fn5+fn5+CisKKyAgICBUZXJtaW5hdGUgYW4gU1ZNIGFuZCByZWxlYXNlIGFsbCBpdHMgcmVzb3VyY2VzLgorCitVc2UgY2FzZXMKK35+fn5+fn5+fgorCisgICAgIy4gQ2FsbGVkIGJ5IEh5cGVydmlzb3Igd2hlbiB0ZXJtaW5hdGluZyBhbiBTVk0uCisKKworVWx0cmFjYWxscyB1c2VkIGJ5IFNWTQorPT09PT09PT09PT09PT09PT09PT09PQorCitVVl9TSEFSRV9QQUdFCistLS0tLS0tLS0tLS0tCisKKyAgICBTaGFyZSBhIHNldCBvZiBndWVzdCBwaHlzaWNhbCBwYWdlcyB3aXRoIHRoZSBIeXBlcnZpc29yLgorCitTeW50YXgKK35+fn5+fgorCisuLiBjb2RlLWJsb2NrOjogYworCisJdWludDY0X3QgdWx0cmFjYWxsKGNvbnN0IHVpbnQ2NF90IFVWX1NIQVJFX1BBR0UsCisJCXVpbnQ2NF90IGdmbiwJLyogZ3Vlc3QgcGFnZSBmcmFtZSBudW1iZXIgKi8KKwkJdWludDY0X3QgbnVtKQkvKiBudW1iZXIgb2YgcGFnZXMgb2Ygc2l6ZSBQQUdFX1NJWkUgKi8KKworUmV0dXJuIHZhbHVlcworfn5+fn5+fn5+fn5+fgorCisgICAgT25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorCisJKiBVX1NVQ0NFU1MJb24gc3VjY2Vzcy4KKwkqIFVfRlVOQ1RJT04JaWYgZnVuY3Rpb25hbGl0eSBpcyBub3Qgc3VwcG9ydGVkLgorCSogVV9JTlZBTElECWlmIHRoZSBWTSBpcyBub3Qgc2VjdXJlLgorCSogVV9QQVJBTUVURVIJaWYgYGBnZm5gYCBpcyBpbnZhbGlkLgorCSogVV9QMiAJCWlmIGBgbnVtYGAgaXMgaW52YWxpZC4KKworRGVzY3JpcHRpb24KK35+fn5+fn5+fn5+CisKKyAgICBTaGFyZSB0aGUgYGBudW1gYCBwYWdlcyBzdGFydGluZyBhdCBndWVzdCBwaHlzaWNhbCBmcmFtZSBudW1iZXIgYGBnZm5gYAorICAgIHdpdGggdGhlIEh5cGVydmlzb3IuIEFzc3VtZSBwYWdlIHNpemUgaXMgUEFHRV9TSVpFIGJ5dGVzLiBaZXJvIHRoZQorICAgIHBhZ2VzIGJlZm9yZSByZXR1cm5pbmcuCisKKyAgICBJZiB0aGUgYWRkcmVzcyBpcyBhbHJlYWR5IGJhY2tlZCBieSBhIHNlY3VyZSBwYWdlLCB1bm1hcCB0aGUgcGFnZSBhbmQKKyAgICBiYWNrIGl0IHdpdGggYW4gaW5zZWN1cmUgcGFnZSwgd2l0aCB0aGUgaGVscCBvZiB0aGUgSHlwZXJ2aXNvci4gSWYgaXQKKyAgICBpcyBub3QgYmFja2VkIGJ5IGFueSBwYWdlIHlldCwgbWFyayB0aGUgUFRFIGFzIGluc2VjdXJlIGFuZCBiYWNrIGl0CisgICAgd2l0aCBhbiBpbnNlY3VyZSBwYWdlIHdoZW4gdGhlIGFkZHJlc3MgaXMgYWNjZXNzZWQuIElmIGl0IGlzIGFscmVhZHkKKyAgICBiYWNrZWQgYnkgYW4gaW5zZWN1cmUgcGFnZSwgemVybyB0aGUgcGFnZSBhbmQgcmV0dXJuLgorCitVc2UgY2FzZXMKK35+fn5+fn5+fgorCisgICAgIy4gVGhlIEh5cGVydmlzb3IgY2Fubm90IGFjY2VzcyB0aGUgU1ZNIHBhZ2VzIHNpbmNlIHRoZXkgYXJlIGJhY2tlZCBieQorICAgICAgIHNlY3VyZSBwYWdlcy4gSGVuY2UgYW4gU1ZNIG11c3QgZXhwbGljaXRseSByZXF1ZXN0IFVsdHJhdmlzb3IgZm9yCisgICAgICAgcGFnZXMgaXQgY2FuIHNoYXJlIHdpdGggSHlwZXJ2aXNvci4KKworICAgICMuIFNoYXJlZCBwYWdlcyBhcmUgbmVlZGVkIHRvIHN1cHBvcnQgdmlydGlvIGFuZCBWaXJ0dWFsIFByb2Nlc3NvciBBcmVhCisgICAgICAgKFZQQSkgaW4gU1ZNcy4KKworCitVVl9VTlNIQVJFX1BBR0UKKy0tLS0tLS0tLS0tLS0tLQorCisgICAgUmVzdG9yZSBhIHNoYXJlZCBTVk0gcGFnZSB0byBpdHMgaW5pdGlhbCBzdGF0ZS4KKworU3ludGF4Cit+fn5+fn4KKworLi4gY29kZS1ibG9jazo6IGMKKworCXVpbnQ2NF90IHVsdHJhY2FsbChjb25zdCB1aW50NjRfdCBVVl9VTlNIQVJFX1BBR0UsCisJCXVpbnQ2NF90IGdmbiwJLyogZ3Vlc3QgcGFnZSBmcmFtZSBudW1iZXIgKi8KKwkJdWludDczIG51bSkJLyogbnVtYmVyIG9mIHBhZ2VzIG9mIHNpemUgUEFHRV9TSVpFKi8KKworUmV0dXJuIHZhbHVlcworfn5+fn5+fn5+fn5+fgorCisgICAgT25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorCisJKiBVX1NVQ0NFU1MJb24gc3VjY2Vzcy4KKwkqIFVfRlVOQ1RJT04JaWYgZnVuY3Rpb25hbGl0eSBpcyBub3Qgc3VwcG9ydGVkLgorCSogVV9JTlZBTElECWlmIFZNIGlzIG5vdCBzZWN1cmUuCisJKiBVX1BBUkFNRVRFUglpZiBgYGdmbmBgIGlzIGludmFsaWQuCisJKiBVX1AyIAkJaWYgYGBudW1gYCBpcyBpbnZhbGlkLgorCitEZXNjcmlwdGlvbgorfn5+fn5+fn5+fn4KKworICAgIFN0b3Agc2hhcmluZyBgYG51bWBgIHBhZ2VzIHN0YXJ0aW5nIGF0IGBgZ2ZuYGAgd2l0aCB0aGUgSHlwZXJ2aXNvci4KKyAgICBBc3N1bWUgdGhhdCB0aGUgcGFnZSBzaXplIGlzIFBBR0VfU0laRS4gWmVybyB0aGUgcGFnZXMgYmVmb3JlCisgICAgcmV0dXJuaW5nLgorCisgICAgSWYgdGhlIGFkZHJlc3MgaXMgYWxyZWFkeSBiYWNrZWQgYnkgYW4gaW5zZWN1cmUgcGFnZSwgdW5tYXAgdGhlIHBhZ2UKKyAgICBhbmQgYmFjayBpdCB3aXRoIGEgc2VjdXJlIHBhZ2UuIEluZm9ybSB0aGUgSHlwZXJ2aXNvciB0byByZWxlYXNlCisgICAgcmVmZXJlbmNlIHRvIGl0cyBzaGFyZWQgcGFnZS4gSWYgdGhlIGFkZHJlc3MgaXMgbm90IGJhY2tlZCBieSBhIHBhZ2UKKyAgICB5ZXQsIG1hcmsgdGhlIFBURSBhcyBzZWN1cmUgYW5kIGJhY2sgaXQgd2l0aCBhIHNlY3VyZSBwYWdlIHdoZW4gdGhhdAorICAgIGFkZHJlc3MgaXMgYWNjZXNzZWQuIElmIGl0IGlzIGFscmVhZHkgYmFja2VkIGJ5IGFuIHNlY3VyZSBwYWdlIHplcm8KKyAgICB0aGUgcGFnZSBhbmQgcmV0dXJuLgorCitVc2UgY2FzZXMKK35+fn5+fn5+fgorCisgICAgIy4gVGhlIFNWTSBtYXkgZGVjaWRlIHRvIHVuc2hhcmUgYSBwYWdlIGZyb20gdGhlIEh5cGVydmlzb3IuCisKKworVVZfVU5TSEFSRV9BTExfUEFHRVMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBVbnNoYXJlIGFsbCBwYWdlcyB0aGUgU1ZNIGhhcyBzaGFyZWQgd2l0aCBIeXBlcnZpc29yLgorCitTeW50YXgKK35+fn5+fgorCisuLiBjb2RlLWJsb2NrOjogYworCisJdWludDY0X3QgdWx0cmFjYWxsKGNvbnN0IHVpbnQ2NF90IFVWX1VOU0hBUkVfQUxMX1BBR0VTKQorCitSZXR1cm4gdmFsdWVzCit+fn5+fn5+fn5+fn5+CisKKyAgICBPbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisKKwkqIFVfU1VDQ0VTUwlvbiBzdWNjZXNzLgorCSogVV9GVU5DVElPTglpZiBmdW5jdGlvbmFsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuCisJKiBVX0lOVkFMCWlmIFZNIGlzIG5vdCBzZWN1cmUuCisKK0Rlc2NyaXB0aW9uCit+fn5+fn5+fn5+fgorCisgICAgVW5zaGFyZSBhbGwgc2hhcmVkIHBhZ2VzIGZyb20gdGhlIEh5cGVydmlzb3IuIEFsbCB1bnNoYXJlZCBwYWdlcyBhcmUKKyAgICB6ZXJvZWQgb24gcmV0dXJuLiBPbmx5IHBhZ2VzIGV4cGxpY2l0bHkgc2hhcmVkIGJ5IHRoZSBTVk0gd2l0aCB0aGUKKyAgICBIeXBlcnZpc29yICh1c2luZyBVVl9TSEFSRV9QQUdFIHVsdHJhY2FsbCkgYXJlIHVuc2hhcmVkLiBVbHRyYXZpc29yCisgICAgbWF5IGludGVybmFsbHkgc2hhcmUgc29tZSBwYWdlcyB3aXRoIHRoZSBIeXBlcnZpc29yIHdpdGhvdXQgZXhwbGljaXQKKyAgICByZXF1ZXN0IGZyb20gdGhlIFNWTS4gIFRoZXNlIHBhZ2VzIHdpbGwgbm90IGJlIHVuc2hhcmVkIGJ5IHRoaXMKKyAgICB1bHRyYWNhbGwuCisKK1VzZSBjYXNlcworfn5+fn5+fn5+CisKKyAgICAjLiBUaGlzIGNhbGwgaXMgbmVlZGVkIHdoZW4gYGBrZXhlY2BgIGlzIHVzZWQgdG8gYm9vdCBhIGRpZmZlcmVudAorICAgICAgIGtlcm5lbC4gSXQgbWF5IGFsc28gYmUgbmVlZGVkIGR1cmluZyBTVk0gcmVzZXQuCisKK1VWX0VTTQorLS0tLS0tCisKKyAgICBTZWN1cmUgdGhlIHZpcnR1YWwgbWFjaGluZSAoKmVudGVyIHNlY3VyZSBtb2RlKikuCisKK1N5bnRheAorfn5+fn5+CisKKy4uIGNvZGUtYmxvY2s6OiBjCisKKwl1aW50NjRfdCB1bHRyYWNhbGwoY29uc3QgdWludDY0X3QgVVZfRVNNLAorCQl1aW50NjRfdCBlc21fYmxvYl9hZGRyLAkvKiBsb2NhdGlvbiBvZiB0aGUgRVNNIGJsb2IgKi8KKwkJdW5pbnQ2NF90IGZkdCkJCS8qIEZsYXR0ZW5lZCBkZXZpY2UgdHJlZSAqLworCitSZXR1cm4gdmFsdWVzCit+fn5+fn5+fn5+fn5+CisKKyAgICBPbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisKKwkqIFVfU1VDQ0VTUwlvbiBzdWNjZXNzIChpbmNsdWRpbmcgaWYgVk0gaXMgYWxyZWFkeSBzZWN1cmUpLgorCSogVV9GVU5DVElPTglpZiBmdW5jdGlvbmFsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuCisJKiBVX0lOVkFMSUQJaWYgVk0gaXMgbm90IHNlY3VyZS4KKwkqIFVfUEFSQU1FVEVSCWlmIGBgZXNtX2Jsb2JfYWRkcmBgIGlzIGludmFsaWQuCisJKiBVX1AyIAkJaWYgYGBmZHRgYCBpcyBpbnZhbGlkLgorCSogVV9QRVJNSVNTSU9OCWlmIGFueSBpbnRlZ3JpdHkgY2hlY2tzIGZhaWwuCisJKiBVX1JFVFJZCWluc3VmZmljaWVudCBtZW1vcnkgdG8gY3JlYXRlIFNWTS4KKwkqIFVfTk9fS0VZCXN5bW1ldHJpYyBrZXkgdW5hdmFpbGFibGUuCisKK0Rlc2NyaXB0aW9uCit+fn5+fn5+fn5+fgorCisgICAgU2VjdXJlIHRoZSB2aXJ0dWFsIG1hY2hpbmUuIE9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiwgcmV0dXJuCisgICAgY29udHJvbCB0byB0aGUgdmlydHVhbCBtYWNoaW5lIGF0IHRoZSBhZGRyZXNzIHNwZWNpZmllZCBpbiB0aGUKKyAgICBFU00gYmxvYi4KKworVXNlIGNhc2VzCit+fn5+fn5+fn4KKworICAgICMuIEEgbm9ybWFsIHZpcnR1YWwgbWFjaGluZSBjYW4gY2hvb3NlIHRvIHN3aXRjaCB0byBhIHNlY3VyZSBtb2RlLgorCitIeXBlcnZpc29yIENhbGxzIEFQSQorIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworICAgIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBIeXBlcnZpc29yIGNhbGxzIChoeXBlcmNhbGxzKSB0aGF0IGFyZQorICAgIG5lZWRlZCB0byBzdXBwb3J0IHRoZSBVbHRyYXZpc29yLiBIeXBlcmNhbGxzIGFyZSBzZXJ2aWNlcyBwcm92aWRlZCBieQorICAgIHRoZSBIeXBlcnZpc29yIHRvIHZpcnR1YWwgbWFjaGluZXMgYW5kIFVsdHJhdmlzb3IuCisKKyAgICBSZWdpc3RlciB1c2FnZSBmb3IgdGhlc2UgaHlwZXJjYWxscyBpcyBpZGVudGljYWwgdG8gdGhhdCBvZiB0aGUgb3RoZXIKKyAgICBoeXBlcmNhbGxzIGRlZmluZWQgaW4gdGhlIFBvd2VyIEFyY2hpdGVjdHVyZSBQbGF0Zm9ybSBSZWZlcmVuY2UgKFBBUFIpCisgICAgZG9jdW1lbnQuICBpLmUgb24gaW5wdXQsIHJlZ2lzdGVyIFIzIGlkZW50aWZpZXMgdGhlIHNwZWNpZmljIHNlcnZpY2UKKyAgICB0aGF0IGlzIGJlaW5nIHJlcXVlc3RlZCBhbmQgcmVnaXN0ZXJzIFI0IHRocm91Z2ggUjExIGNvbnRhaW4KKyAgICBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgdG8gdGhlIGh5cGVyY2FsbCwgaWYgYW55LiBPbiBvdXRwdXQsIHJlZ2lzdGVyCisgICAgUjMgY29udGFpbnMgdGhlIHJldHVybiB2YWx1ZSBhbmQgcmVnaXN0ZXJzIFI0IHRocm91Z2ggUjkgY29udGFpbiBhbnkKKyAgICBvdGhlciBvdXRwdXQgdmFsdWVzIGZyb20gdGhlIGh5cGVyY2FsbC4KKworICAgIFRoaXMgZG9jdW1lbnQgb25seSBjb3ZlcnMgaHlwZXJjYWxscyBjdXJyZW50bHkgaW1wbGVtZW50ZWQvcGxhbm5lZAorICAgIGZvciBVbHRyYXZpc29yIHVzYWdlIGJ1dCBvdGhlcnMgY2FuIGJlIGFkZGVkIGhlcmUgd2hlbiBpdCBtYWtlcyBzZW5zZS4KKworICAgIFRoZSBmdWxsIHNwZWNpZmljYXRpb24gZm9yIGFsbCBoeXBlcmNhbGxzL3VsdHJhY2FsbHMgd2lsbCBldmVudHVhbGx5CisgICAgYmUgbWFkZSBhdmFpbGFibGUgaW4gdGhlIHB1YmxpYy9PcGVuUG93ZXIgdmVyc2lvbiBvZiB0aGUgUEFQUgorICAgIHNwZWNpZmljYXRpb24uCisKK0h5cGVydmlzb3IgY2FsbHMgdG8gc3VwcG9ydCBVbHRyYXZpc29yCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgRm9sbG93aW5nIGFyZSB0aGUgc2V0IG9mIGh5cGVyY2FsbHMgbmVlZGVkIHRvIHN1cHBvcnQgVWx0cmF2aXNvci4KKworSF9TVk1fSU5JVF9TVEFSVAorLS0tLS0tLS0tLS0tLS0tLQorCisgICAgQmVnaW4gdGhlIHByb2Nlc3Mgb2YgY29udmVydGluZyBhIG5vcm1hbCB2aXJ0dWFsIG1hY2hpbmUgaW50byBhbiBTVk0uCisKK1N5bnRheAorfn5+fn5+CisKKy4uIGNvZGUtYmxvY2s6OiBjCisKKwl1aW50NjRfdCBoeXBlcmNhbGwoY29uc3QgdWludDY0X3QgSF9TVk1fSU5JVF9TVEFSVCkKKworUmV0dXJuIHZhbHVlcworfn5+fn5+fn5+fn5+fgorCisgICAgT25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorCisJKiBIX1NVQ0NFU1MJIG9uIHN1Y2Nlc3MuCisKK0Rlc2NyaXB0aW9uCit+fn5+fn5+fn5+fgorCisgICAgSW5pdGlhdGUgdGhlIHByb2Nlc3Mgb2Ygc2VjdXJpbmcgYSB2aXJ0dWFsIG1hY2hpbmUuIFRoaXMgaW52b2x2ZXMKKyAgICBjb29yZGluYXRpbmcgd2l0aCB0aGUgVWx0cmF2aXNvciwgdXNpbmcgdWx0cmFjYWxscywgdG8gYWxsb2NhdGUKKyAgICByZXNvdXJjZXMgaW4gdGhlIFVsdHJhdmlzb3IgZm9yIHRoZSBuZXcgU1ZNLCB0cmFuc2ZlcnJpbmcgdGhlIFZNJ3MKKyAgICBwYWdlcyBmcm9tIG5vcm1hbCB0byBzZWN1cmUgbWVtb3J5IGV0Yy4gV2hlbiB0aGUgcHJvY2VzcyBpcworICAgIGNvbXBsZXRlZCwgVWx0cmF2aXNvciBpc3N1ZXMgdGhlIEhfU1ZNX0lOSVRfRE9ORSBoeXBlcmNhbGwuCisKK1VzZSBjYXNlcworfn5+fn5+fn5+CisKKyAgICAgIy4gVWx0cmF2aXNvciB1c2VzIHRoaXMgaHlwZXJjYWxsIHRvIGluZm9ybSBIeXBlcnZpc29yIHRoYXQgYSBWTQorICAgICAgICBoYXMgaW5pdGlhdGVkIHRoZSBwcm9jZXNzIG9mIHN3aXRjaGluZyB0byBzZWN1cmUgbW9kZS4KKworCitIX1NWTV9JTklUX0RPTkUKKy0tLS0tLS0tLS0tLS0tLQorCisgICAgQ29tcGxldGUgdGhlIHByb2Nlc3Mgb2Ygc2VjdXJpbmcgYW4gU1ZNLgorCitTeW50YXgKK35+fn5+fgorCisuLiBjb2RlLWJsb2NrOjogYworCisJdWludDY0X3QgaHlwZXJjYWxsKGNvbnN0IHVpbnQ2NF90IEhfU1ZNX0lOSVRfRE9ORSkKKworUmV0dXJuIHZhbHVlcworfn5+fn5+fn5+fn5+fgorCisgICAgT25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorCisJKiBIX1NVQ0NFU1MgCQlvbiBzdWNjZXNzLgorCSogSF9VTlNVUFBPUlRFRAkJaWYgY2FsbGVkIGZyb20gdGhlIHdyb25nIGNvbnRleHQgKGUuZy4KKwkJCQlmcm9tIGFuIFNWTSBvciBiZWZvcmUgYW4gSF9TVk1fSU5JVF9TVEFSVAorCQkJCWh5cGVyY2FsbCkuCisKK0Rlc2NyaXB0aW9uCit+fn5+fn5+fn5+fgorCisgICAgQ29tcGxldGUgdGhlIHByb2Nlc3Mgb2Ygc2VjdXJpbmcgYSB2aXJ0dWFsIG1hY2hpbmUuIFRoaXMgY2FsbCBtdXN0CisgICAgYmUgbWFkZSBhZnRlciBhIHByaW9yIGNhbGwgdG8gYGBIX1NWTV9JTklUX1NUQVJUYGAgaHlwZXJjYWxsLgorCitVc2UgY2FzZXMKK35+fn5+fn5+fgorCisgICAgT24gc3VjY2Vzc2Z1bGx5IHNlY3VyaW5nIGEgdmlydHVhbCBtYWNoaW5lLCB0aGUgVWx0cmF2aXNvciBpbmZvcm1zCisgICAgSHlwZXJ2aXNvciBhYm91dCBpdC4gSHlwZXJ2aXNvciBjYW4gdXNlIHRoaXMgY2FsbCB0byBmaW5pc2ggc2V0dGluZworICAgIHVwIGl0cyBpbnRlcm5hbCBzdGF0ZSBmb3IgdGhpcyB2aXJ0dWFsIG1hY2hpbmUuCisKKworSF9TVk1fUEFHRV9JTgorLS0tLS0tLS0tLS0tLQorCisgICAgTW92ZSB0aGUgY29udGVudHMgb2YgYSBwYWdlIGZyb20gbm9ybWFsIG1lbW9yeSB0byBzZWN1cmUgbWVtb3J5LgorCitTeW50YXgKK35+fn5+fgorCisuLiBjb2RlLWJsb2NrOjogYworCisJdWludDY0X3QgaHlwZXJjYWxsKGNvbnN0IHVpbnQ2NF90IEhfU1ZNX1BBR0VfSU4sCisJCXVpbnQ2NF90IGd1ZXN0X3BhLAkvKiBndWVzdC1waHlzaWNhbC1hZGRyZXNzICovCisJCXVpbnQ2NF90IGZsYWdzLAkJLyogZmxhZ3MgKi8KKwkJdWludDY0X3Qgb3JkZXIpCQkvKiBwYWdlIHNpemUgb3JkZXIgKi8KKworUmV0dXJuIHZhbHVlcworfn5+fn5+fn5+fn5+fgorCisgICAgT25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorCisJKiBIX1NVQ0NFU1MJb24gc3VjY2Vzcy4KKwkqIEhfUEFSQU1FVEVSCWlmIGBgZ3Vlc3RfcGFgYCBpcyBpbnZhbGlkLgorCSogSF9QMgkJaWYgYGBmbGFnc2BgIGlzIGludmFsaWQuCisJKiBIX1AzCQlpZiBgYG9yZGVyYGAgb2YgcGFnZSBpcyBpbnZhbGlkLgorCitEZXNjcmlwdGlvbgorfn5+fn5+fn5+fn4KKworICAgIFJldHJpZXZlIHRoZSBjb250ZW50IG9mIHRoZSBwYWdlLCBiZWxvbmdpbmcgdG8gdGhlIFZNIGF0IHRoZSBzcGVjaWZpZWQKKyAgICBndWVzdCBwaHlzaWNhbCBhZGRyZXNzLgorCisgICAgT25seSB2YWxpZCB2YWx1ZShzKSBpbiBgYGZsYWdzYGAgYXJlOgorCisgICAgICAgICogSF9QQUdFX0lOX1NIQVJFRCB3aGljaCBpbmRpY2F0ZXMgdGhhdCB0aGUgcGFnZSBpcyB0byBiZSBzaGFyZWQKKwkgIHdpdGggdGhlIFVsdHJhdmlzb3IuCisKKwkqIEhfUEFHRV9JTl9OT05TSEFSRUQgaW5kaWNhdGVzIHRoYXQgdGhlIFVWIGlzIG5vdCBhbnltb3JlCisgICAgICAgICAgaW50ZXJlc3RlZCBpbiB0aGUgcGFnZS4gQXBwbGljYWJsZSBpZiB0aGUgcGFnZSBpcyBhIHNoYXJlZCBwYWdlLgorCisgICAgVGhlIGBgb3JkZXJgYCBwYXJhbWV0ZXIgbXVzdCBjb3JyZXNwb25kIHRvIHRoZSBjb25maWd1cmVkIHBhZ2Ugc2l6ZS4KKworVXNlIGNhc2VzCit+fn5+fn5+fn4KKworICAgICMuIFdoZW4gYSBub3JtYWwgVk0gYmVjb21lcyBhIHNlY3VyZSBWTSAodXNpbmcgdGhlIFVWX0VTTSB1bHRyYWNhbGwpLAorICAgICAgIHRoZSBVbHRyYXZpc29yIHVzZXMgdGhpcyBoeXBlcmNhbGwgdG8gbW92ZSBjb250ZW50cyBvZiBlYWNoIHBhZ2Ugb2YKKyAgICAgICB0aGUgVk0gZnJvbSBub3JtYWwgbWVtb3J5IHRvIHNlY3VyZSBtZW1vcnkuCisKKyAgICAjLiBVbHRyYXZpc29yIHVzZXMgdGhpcyBoeXBlcmNhbGwgdG8gYXNrIEh5cGVydmlzb3IgdG8gcHJvdmlkZSBhIHBhZ2UKKyAgICAgICBpbiBub3JtYWwgbWVtb3J5IHRoYXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBTVk0gYW5kIEh5cGVydmlzb3IuCisKKyAgICAjLiBVbHRyYXZpc29yIHVzZXMgdGhpcyBoeXBlcmNhbGwgdG8gcGFnZS1pbiBhIHBhZ2VkLW91dCBwYWdlLiBUaGlzCisgICAgICAgY2FuIGhhcHBlbiB3aGVuIHRoZSBTVk0gdG91Y2hlcyBhIHBhZ2VkLW91dCBwYWdlLgorCisgICAgIy4gSWYgU1ZNIHdhbnRzIHRvIGRpc2FibGUgc2hhcmluZyBvZiBwYWdlcyB3aXRoIEh5cGVydmlzb3IsIGl0IGNhbgorICAgICAgIGluZm9ybSBVbHRyYXZpc29yIHRvIGRvIHNvLiBVbHRyYXZpc29yIHdpbGwgdGhlbiB1c2UgdGhpcyBoeXBlcmNhbGwKKyAgICAgICBhbmQgaW5mb3JtIEh5cGVydmlzb3IgdGhhdCBpdCBoYXMgcmVsZWFzZWQgYWNjZXNzIHRvIHRoZSBub3JtYWwKKyAgICAgICBwYWdlLgorCitIX1NWTV9QQUdFX09VVAorLS0tLS0tLS0tLS0tLS0tCisKKyAgICBNb3ZlIHRoZSBjb250ZW50cyBvZiB0aGUgcGFnZSB0byBub3JtYWwgbWVtb3J5LgorCitTeW50YXgKK35+fn5+fgorCisuLiBjb2RlLWJsb2NrOjogYworCisJdWludDY0X3QgaHlwZXJjYWxsKGNvbnN0IHVpbnQ2NF90IEhfU1ZNX1BBR0VfT1VULAorCQl1aW50NjRfdCBndWVzdF9wYSwJLyogZ3Vlc3QtcGh5c2ljYWwtYWRkcmVzcyAqLworCQl1aW50NjRfdCBmbGFncywJCS8qIGZsYWdzIChjdXJyZW50bHkgbm9uZSkgKi8KKwkJdWludDY0X3Qgb3JkZXIpCQkvKiBwYWdlIHNpemUgb3JkZXIgKi8KKworUmV0dXJuIHZhbHVlcworfn5+fn5+fn5+fn5+fgorCisgICAgT25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorCisJKiBIX1NVQ0NFU1MJb24gc3VjY2Vzcy4KKwkqIEhfUEFSQU1FVEVSCWlmIGBgZ3Vlc3RfcGFgYCBpcyBpbnZhbGlkLgorCSogSF9QMgkJaWYgYGBmbGFnc2BgIGlzIGludmFsaWQuCisJKiBIX1AzCQlpZiBgYG9yZGVyYGAgaXMgaW52YWxpZC4KKworRGVzY3JpcHRpb24KK35+fn5+fn5+fn5+CisKKyAgICBNb3ZlIHRoZSBjb250ZW50cyBvZiB0aGUgcGFnZSBpZGVudGlmaWVkIGJ5IGBgZ3Vlc3RfcGFgYCB0byBub3JtYWwKKyAgICBtZW1vcnkuCisKKyAgICBDdXJyZW50bHkgYGBmbGFnc2BgIGlzIHVudXNlZCBhbmQgbXVzdCBiZSBzZXQgdG8gMC4gVGhlIGBgb3JkZXJgYAorICAgIHBhcmFtZXRlciBtdXN0IGNvcnJlc3BvbmQgdG8gdGhlIGNvbmZpZ3VyZWQgcGFnZSBzaXplLgorCitVc2UgY2FzZXMKK35+fn5+fn5+fgorCisgICAgIy4gSWYgVWx0cmF2aXNvciBpcyBydW5uaW5nIGxvdyBvbiBzZWN1cmUgcGFnZXMsIGl0IGNhbiBtb3ZlIHRoZQorICAgICAgIGNvbnRlbnRzIG9mIHNvbWUgc2VjdXJlIHBhZ2VzLCBpbnRvIG5vcm1hbCBwYWdlcyB1c2luZyB0aGlzCisgICAgICAgaHlwZXJjYWxsLiBUaGUgY29udGVudCB3aWxsIGJlIGVuY3J5cHRlZC4KKworUmVmZXJlbmNlcworIyMjIyMjIyMjIworCistIGBTdXBwb3J0aW5nIFByb3RlY3RlZCBDb21wdXRpbmcgb24gSUJNIFBvd2VyIEFyY2hpdGVjdHVyZSA8aHR0cHM6Ly9kZXZlbG9wZXIuaWJtLmNvbS9hcnRpY2xlcy9sLXN1cHBvcnQtcHJvdGVjdGVkLWNvbXB1dGluZy8+YF8KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vc2VjdXJpdHkvSU1BLXRlbXBsYXRlcy5yc3QgYi9Eb2N1bWVudGF0aW9uL3NlY3VyaXR5L0lNQS10ZW1wbGF0ZXMucnN0CmluZGV4IDNkMWNjYTIuLmM1YTg0MzIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vc2VjdXJpdHkvSU1BLXRlbXBsYXRlcy5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9zZWN1cml0eS9JTUEtdGVtcGxhdGVzLnJzdApAQCAtNjgsOCArNjgsMTAgQEAKICAtICdkLW5nJzogdGhlIGRpZ2VzdCBvZiB0aGUgZXZlbnQsIGNhbGN1bGF0ZWQgd2l0aCBhbiBhcmJpdHJhcnkgaGFzaAogICAgYWxnb3JpdGhtIChmaWVsZCBmb3JtYXQ6IFs8aGFzaCBhbGdvPjpdZGlnZXN0LCB3aGVyZSB0aGUgZGlnZXN0CiAgICBwcmVmaXggaXMgc2hvd24gb25seSBpZiB0aGUgaGFzaCBhbGdvcml0aG0gaXMgbm90IFNIQTEgb3IgTUQ1KTsKKyAtICdkLW1vZHNpZyc6IHRoZSBkaWdlc3Qgb2YgdGhlIGV2ZW50IHdpdGhvdXQgdGhlIGFwcGVuZGVkIG1vZHNpZzsKICAtICduLW5nJzogdGhlIG5hbWUgb2YgdGhlIGV2ZW50LCB3aXRob3V0IHNpemUgbGltaXRhdGlvbnM7CiAgLSAnc2lnJzogdGhlIGZpbGUgc2lnbmF0dXJlOworIC0gJ21vZHNpZycgdGhlIGFwcGVuZGVkIGZpbGUgc2lnbmF0dXJlOwogIC0gJ2J1Zic6IHRoZSBidWZmZXIgZGF0YSB0aGF0IHdhcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBoYXNoIHdpdGhvdXQgc2l6ZSBsaW1pdGF0aW9uczsKIAogCkBAIC03OSw2ICs4MSw3IEBACiAgLSAiaW1hLW5nIiAoZGVmYXVsdCk6IGl0cyBmb3JtYXQgaXMgYGBkLW5nfG4tbmdgYDsKICAtICJpbWEtc2lnIjogaXRzIGZvcm1hdCBpcyBgYGQtbmd8bi1uZ3xzaWdgYDsKICAtICJpbWEtYnVmIjogaXRzIGZvcm1hdCBpcyBgYGQtbmd8bi1uZ3xidWZgYDsKKyAtICJpbWEtbW9kc2lnIjogaXRzIGZvcm1hdCBpcyBgYGQtbmd8bi1uZ3xzaWd8ZC1tb2RzaWd8bW9kc2lnYGA7CiAKIAogVXNlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RyYWNlL2twcm9iZXRyYWNlLnJzdCBiL0RvY3VtZW50YXRpb24vdHJhY2Uva3Byb2JldHJhY2UucnN0CmluZGV4IGZiYjMxNGIuLjU1OTkzMDUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdHJhY2Uva3Byb2JldHJhY2UucnN0CisrKyBiL0RvY3VtZW50YXRpb24vdHJhY2Uva3Byb2JldHJhY2UucnN0CkBAIC01Miw2ICs1Miw3IEBACiAgICRyZXR2YWwJOiBGZXRjaCByZXR1cm4gdmFsdWUuKFwqMikKICAgJGNvbW0JCTogRmV0Y2ggY3VycmVudCB0YXNrIGNvbW0uCiAgICt8LVt1XU9GRlMoRkVUQ0hBUkcpIDogRmV0Y2ggbWVtb3J5IGF0IEZFVENIQVJHICt8LSBPRkZTIGFkZHJlc3MuKFwqMykoXCo0KQorICBcSU1NCQk6IFN0b3JlIGFuIGltbWVkaWF0ZSB2YWx1ZSB0byB0aGUgYXJndW1lbnQuCiAgIE5BTUU9RkVUQ0hBUkcgOiBTZXQgTkFNRSBhcyB0aGUgYXJndW1lbnQgbmFtZSBvZiBGRVRDSEFSRy4KICAgRkVUQ0hBUkc6VFlQRSA6IFNldCBUWVBFIGFzIHRoZSB0eXBlIG9mIEZFVENIQVJHLiBDdXJyZW50bHksIGJhc2ljIHR5cGVzCiAJCSAgKHU4L3UxNi91MzIvdTY0L3M4L3MxNi9zMzIvczY0KSwgaGV4YWRlY2ltYWwgdHlwZXMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdHJhY2UvdXByb2JldHJhY2VyLnJzdCBiL0RvY3VtZW50YXRpb24vdHJhY2UvdXByb2JldHJhY2VyLnJzdAppbmRleCA2ZTc1YTZjLi45OGNkZTk5IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3RyYWNlL3Vwcm9iZXRyYWNlci5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi90cmFjZS91cHJvYmV0cmFjZXIucnN0CkBAIC00NSw2ICs0NSw3IEBACiAgICAkcmV0dmFsCTogRmV0Y2ggcmV0dXJuIHZhbHVlLihcKjEpCiAgICAkY29tbQk6IEZldGNoIGN1cnJlbnQgdGFzayBjb21tLgogICAgK3wtW3VdT0ZGUyhGRVRDSEFSRykgOiBGZXRjaCBtZW1vcnkgYXQgRkVUQ0hBUkcgK3wtIE9GRlMgYWRkcmVzcy4oXCoyKShcKjMpCisgICBcSU1NCQk6IFN0b3JlIGFuIGltbWVkaWF0ZSB2YWx1ZSB0byB0aGUgYXJndW1lbnQuCiAgICBOQU1FPUZFVENIQVJHICAgICA6IFNldCBOQU1FIGFzIHRoZSBhcmd1bWVudCBuYW1lIG9mIEZFVENIQVJHLgogICAgRkVUQ0hBUkc6VFlQRSAgICAgOiBTZXQgVFlQRSBhcyB0aGUgdHlwZSBvZiBGRVRDSEFSRy4gQ3VycmVudGx5LCBiYXNpYyB0eXBlcwogCQkgICAgICAgKHU4L3UxNi91MzIvdTY0L3M4L3MxNi9zMzIvczY0KSwgaGV4YWRlY2ltYWwgdHlwZXMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnR4dCBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnR4dAppbmRleCAxMzZmMWVlLi40ODMzOTA0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkudHh0CkBAIC01MzA5LDMgKzUzMDksMTYgQEAKIFRoaXMgY2FwYWJpbGl0eSBpbmRpY2F0ZXMgdGhhdCBLVk0gc3VwcG9ydHMgcGFyYXZpcnR1YWxpemVkIEh5cGVyLVYgSVBJIHNlbmQKIGh5cGVyY2FsbHM6CiBIdkNhbGxTZW5kU3ludGhldGljQ2x1c3RlcklwaSwgSHZDYWxsU2VuZFN5bnRoZXRpY0NsdXN0ZXJJcGlFeC4KKzguMjEgS1ZNX0NBUF9IWVBFUlZfRElSRUNUX1RMQkZMVVNICisKK0FyY2hpdGVjdHVyZTogeDg2CisKK1RoaXMgY2FwYWJpbGl0eSBpbmRpY2F0ZXMgdGhhdCBLVk0gcnVubmluZyBvbiB0b3Agb2YgSHlwZXItViBoeXBlcnZpc29yCitlbmFibGVzIERpcmVjdCBUTEIgZmx1c2ggZm9yIGl0cyBndWVzdHMgbWVhbmluZyB0aGF0IFRMQiBmbHVzaAoraHlwZXJjYWxscyBhcmUgaGFuZGxlZCBieSBMZXZlbCAwIGh5cGVydmlzb3IgKEh5cGVyLVYpIGJ5cGFzc2luZyBLVk0uCitEdWUgdG8gdGhlIGRpZmZlcmVudCBBQkkgZm9yIGh5cGVyY2FsbCBwYXJhbWV0ZXJzIGJldHdlZW4gSHlwZXItViBhbmQKK0tWTSwgZW5hYmxpbmcgdGhpcyBjYXBhYmlsaXR5IGVmZmVjdGl2ZWx5IGRpc2FibGVzIGFsbCBoeXBlcmNhbGwKK2hhbmRsaW5nIGJ5IEtWTSAoYXMgc29tZSBLVk0gaHlwZXJjYWxsIG1heSBiZSBtaXN0YWtlbmx5IHRyZWF0ZWQgYXMgVExCCitmbHVzaCBoeXBlcmNhbGxzIGJ5IEh5cGVyLVYpIHNvIHVzZXJzcGFjZSBzaG91bGQgZGlzYWJsZSBLVk0gaWRlbnRpZmljYXRpb24KK2luIENQVUlEIGFuZCBvbmx5IGV4cG9zZXMgSHlwZXItViBpZGVudGlmaWNhdGlvbi4gSW4gdGhpcyBjYXNlLCBndWVzdAordGhpbmtzIGl0J3MgcnVubmluZyBvbiBIeXBlci1WIGFuZCBvbmx5IHVzZSBIeXBlci1WIGh5cGVyY2FsbHMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZtL2htbS5yc3QgYi9Eb2N1bWVudGF0aW9uL3ZtL2htbS5yc3QKaW5kZXggNzEwY2UxYy4uMGE1OTYwYiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92bS9obW0ucnN0CisrKyBiL0RvY3VtZW50YXRpb24vdm0vaG1tLnJzdApAQCAtMTkyLDE1ICsxOTIsMTQgQEAKIHRoZSBkcml2ZXIgY2FsbGJhY2sgcmV0dXJucy4KIAogV2hlbiB0aGUgZGV2aWNlIGRyaXZlciB3YW50cyB0byBwb3B1bGF0ZSBhIHJhbmdlIG9mIHZpcnR1YWwgYWRkcmVzc2VzLCBpdCBjYW4KLXVzZSBlaXRoZXI6OgordXNlOjoKIAotICBsb25nIGhtbV9yYW5nZV9zbmFwc2hvdChzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSk7Ci0gIGxvbmcgaG1tX3JhbmdlX2ZhdWx0KHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLCBib29sIGJsb2NrKTsKKyAgbG9uZyBobW1fcmFuZ2VfZmF1bHQoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UsIHVuc2lnbmVkIGludCBmbGFncyk7CiAKLVRoZSBmaXJzdCBvbmUgKGhtbV9yYW5nZV9zbmFwc2hvdCgpKSB3aWxsIG9ubHkgZmV0Y2ggcHJlc2VudCBDUFUgcGFnZSB0YWJsZQorV2l0aCB0aGUgSE1NX1JBTkdFX1NOQVBTSE9UIGZsYWcsIGl0IHdpbGwgb25seSBmZXRjaCBwcmVzZW50IENQVSBwYWdlIHRhYmxlCiBlbnRyaWVzIGFuZCB3aWxsIG5vdCB0cmlnZ2VyIGEgcGFnZSBmYXVsdCBvbiBtaXNzaW5nIG9yIG5vbi1wcmVzZW50IGVudHJpZXMuCi1UaGUgc2Vjb25kIG9uZSBkb2VzIHRyaWdnZXIgYSBwYWdlIGZhdWx0IG9uIG1pc3Npbmcgb3IgcmVhZC1vbmx5IGVudHJpZXMgaWYKLXdyaXRlIGFjY2VzcyBpcyByZXF1ZXN0ZWQgKHNlZSBiZWxvdykuIFBhZ2UgZmF1bHRzIHVzZSB0aGUgZ2VuZXJpYyBtbSBwYWdlCitXaXRob3V0IHRoYXQgZmxhZywgaXQgZG9lcyB0cmlnZ2VyIGEgcGFnZSBmYXVsdCBvbiBtaXNzaW5nIG9yIHJlYWQtb25seSBlbnRyaWVzCitpZiB3cml0ZSBhY2Nlc3MgaXMgcmVxdWVzdGVkIChzZWUgYmVsb3cpLiBQYWdlIGZhdWx0cyB1c2UgdGhlIGdlbmVyaWMgbW0gcGFnZQogZmF1bHQgY29kZSBwYXRoIGp1c3QgbGlrZSBhIENQVSBwYWdlIGZhdWx0LgogCiBCb3RoIGZ1bmN0aW9ucyBjb3B5IENQVSBwYWdlIHRhYmxlIGVudHJpZXMgaW50byB0aGVpciBwZm5zIGFycmF5IGFyZ3VtZW50LiBFYWNoCkBAIC0yMjMsMjQgKzIyMiwyNCBAQAogICAgICAgcmFuZ2UuZmxhZ3MgPSAuLi47CiAgICAgICByYW5nZS52YWx1ZXMgPSAuLi47CiAgICAgICByYW5nZS5wZm5fc2hpZnQgPSAuLi47Ci0gICAgICBobW1fcmFuZ2VfcmVnaXN0ZXIoJnJhbmdlKTsKKyAgICAgIGhtbV9yYW5nZV9yZWdpc3RlcigmcmFuZ2UsIG1pcnJvcik7CiAKICAgICAgIC8qCiAgICAgICAgKiBKdXN0IHdhaXQgZm9yIHJhbmdlIHRvIGJlIHZhbGlkLCBzYWZlIHRvIGlnbm9yZSByZXR1cm4gdmFsdWUgYXMgd2UKLSAgICAgICAqIHdpbGwgdXNlIHRoZSByZXR1cm4gdmFsdWUgb2YgaG1tX3JhbmdlX3NuYXBzaG90KCkgYmVsb3cgdW5kZXIgdGhlCisgICAgICAgKiB3aWxsIHVzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGhtbV9yYW5nZV9mYXVsdCgpIGJlbG93IHVuZGVyIHRoZQogICAgICAgICogbW1hcF9zZW0gdG8gYXNjZXJ0YWluIHRoZSB2YWxpZGl0eSBvZiB0aGUgcmFuZ2UuCiAgICAgICAgKi8KICAgICAgIGhtbV9yYW5nZV93YWl0X3VudGlsX3ZhbGlkKCZyYW5nZSwgVElNRU9VVF9JTl9NU0VDKTsKIAogIGFnYWluOgogICAgICAgZG93bl9yZWFkKCZtbS0+bW1hcF9zZW0pOwotICAgICAgcmV0ID0gaG1tX3JhbmdlX3NuYXBzaG90KCZyYW5nZSk7CisgICAgICByZXQgPSBobW1fcmFuZ2VfZmF1bHQoJnJhbmdlLCBITU1fUkFOR0VfU05BUFNIT1QpOwogICAgICAgaWYgKHJldCkgewogICAgICAgICAgIHVwX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAgICAgICAgICAgaWYgKHJldCA9PSAtRUJVU1kpIHsKICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgKiBObyBuZWVkIHRvIGNoZWNrIGhtbV9yYW5nZV93YWl0X3VudGlsX3ZhbGlkKCkgcmV0dXJuIHZhbHVlCi0gICAgICAgICAgICAgKiBvbiByZXRyeSB3ZSB3aWxsIGdldCBwcm9wZXIgZXJyb3Igd2l0aCBobW1fcmFuZ2Vfc25hcHNob3QoKQorICAgICAgICAgICAgICogb24gcmV0cnkgd2Ugd2lsbCBnZXQgcHJvcGVyIGVycm9yIHdpdGggaG1tX3JhbmdlX2ZhdWx0KCkKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgaG1tX3JhbmdlX3dhaXRfdW50aWxfdmFsaWQoJnJhbmdlLCBUSU1FT1VUX0lOX01TRUMpOwogICAgICAgICAgICAgZ290byBhZ2FpbjsKQEAgLTM0MCw1OCArMzM5LDggQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEJlY2F1c2UgdGhlIENQVSBjYW5ub3QgYWNjZXNzIGRldmljZSBtZW1vcnksIG1pZ3JhdGlvbiBtdXN0IHVzZSB0aGUgZGV2aWNlIERNQQotZW5naW5lIHRvIHBlcmZvcm0gY29weSBmcm9tIGFuZCB0byBkZXZpY2UgbWVtb3J5LiBGb3IgdGhpcyB3ZSBuZWVkIGEgbmV3Ci1taWdyYXRpb24gaGVscGVyOjoKLQotIGludCBtaWdyYXRlX3ZtYShjb25zdCBzdHJ1Y3QgbWlncmF0ZV92bWFfb3BzICpvcHMsCi0gICAgICAgICAgICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAotICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1lbnRyaWVzLAotICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LAotICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGVuZCwKLSAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqc3JjLAotICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpkc3QsCi0gICAgICAgICAgICAgICAgIHZvaWQgKnByaXZhdGUpOwotCi1Vbmxpa2Ugb3RoZXIgbWlncmF0aW9uIGZ1bmN0aW9ucyBpdCB3b3JrcyBvbiBhIHJhbmdlIG9mIHZpcnR1YWwgYWRkcmVzcywgdGhlcmUKLWFyZSB0d28gcmVhc29ucyBmb3IgdGhhdC4gRmlyc3QsIGRldmljZSBETUEgY29weSBoYXMgYSBoaWdoIHNldHVwIG92ZXJoZWFkIGNvc3QKLWFuZCB0aHVzIGJhdGNoaW5nIG11bHRpcGxlIHBhZ2VzIGlzIG5lZWRlZCBhcyBvdGhlcndpc2UgdGhlIG1pZ3JhdGlvbiBvdmVyaGVhZAotbWFrZXMgdGhlIHdob2xlIGV4ZXJjaXNlIHBvaW50bGVzcy4gVGhlIHNlY29uZCByZWFzb24gaXMgYmVjYXVzZSB0aGUKLW1pZ3JhdGlvbiBtaWdodCBiZSBmb3IgYSByYW5nZSBvZiBhZGRyZXNzZXMgdGhlIGRldmljZSBpcyBhY3RpdmVseSBhY2Nlc3NpbmcuCi0KLVRoZSBtaWdyYXRlX3ZtYV9vcHMgc3RydWN0IGRlZmluZXMgdHdvIGNhbGxiYWNrcy4gRmlyc3Qgb25lIChhbGxvY19hbmRfY29weSgpKQotY29udHJvbHMgZGVzdGluYXRpb24gbWVtb3J5IGFsbG9jYXRpb24gYW5kIGNvcHkgb3BlcmF0aW9uLiBTZWNvbmQgb25lIGlzIHRoZXJlCi10byBhbGxvdyB0aGUgZGV2aWNlIGRyaXZlciB0byBwZXJmb3JtIGNsZWFudXAgb3BlcmF0aW9ucyBhZnRlciBtaWdyYXRpb246OgotCi0gc3RydWN0IG1pZ3JhdGVfdm1hX29wcyB7Ci0gICAgIHZvaWQgKCphbGxvY19hbmRfY29weSkoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKmRzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnByaXZhdGUpOwotICAgICB2b2lkICgqZmluYWxpemVfYW5kX21hcCkoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpkc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwcml2YXRlKTsKLSB9OwotCi1JdCBpcyBpbXBvcnRhbnQgdG8gc3RyZXNzIHRoYXQgdGhlc2UgbWlncmF0aW9uIGhlbHBlcnMgYWxsb3cgZm9yIGhvbGVzIGluIHRoZQotdmlydHVhbCBhZGRyZXNzIHJhbmdlLiBTb21lIHBhZ2VzIGluIHRoZSByYW5nZSBtaWdodCBub3QgYmUgbWlncmF0ZWQgZm9yIGFsbAotdGhlIHVzdWFsIHJlYXNvbnMgKHBhZ2UgaXMgcGlubmVkLCBwYWdlIGlzIGxvY2tlZCwgLi4uKS4gVGhpcyBoZWxwZXIgZG9lcyBub3QKLWZhaWwgYnV0IGp1c3Qgc2tpcHMgb3ZlciB0aG9zZSBwYWdlcy4KLQotVGhlIGFsbG9jX2FuZF9jb3B5KCkgbWlnaHQgZGVjaWRlIHRvIG5vdCBtaWdyYXRlIGFsbCBwYWdlcyBpbiB0aGUKLXJhbmdlIChmb3IgcmVhc29ucyB1bmRlciB0aGUgY2FsbGJhY2sgY29udHJvbCkuIEZvciB0aG9zZSwgdGhlIGNhbGxiYWNrIGp1c3QKLWhhcyB0byBsZWF2ZSB0aGUgY29ycmVzcG9uZGluZyBkc3QgZW50cnkgZW1wdHkuCi0KLUZpbmFsbHksIHRoZSBtaWdyYXRpb24gb2YgdGhlIHN0cnVjdCBwYWdlIG1pZ2h0IGZhaWwgKGZvciBmaWxlIGJhY2tlZCBwYWdlKSBmb3IKLXZhcmlvdXMgcmVhc29ucyAoZmFpbHVyZSB0byBmcmVlemUgcmVmZXJlbmNlLCBvciB1cGRhdGUgcGFnZSBjYWNoZSwgLi4uKS4gSWYKLXRoYXQgaGFwcGVucywgdGhlbiB0aGUgZmluYWxpemVfYW5kX21hcCgpIGNhbiBjYXRjaCBhbnkgcGFnZXMgdGhhdCB3ZXJlIG5vdAotbWlncmF0ZWQuIE5vdGUgdGhvc2UgcGFnZXMgd2VyZSBzdGlsbCBjb3BpZWQgdG8gYSBuZXcgcGFnZSBhbmQgdGh1cyB3ZSB3YXN0ZWQKLWJhbmR3aWR0aCBidXQgdGhpcyBpcyBjb25zaWRlcmVkIGFzIGEgcmFyZSBldmVudCBhbmQgYSBwcmljZSB0aGF0IHdlIGFyZQotd2lsbGluZyB0byBwYXkgdG8ga2VlcCBhbGwgdGhlIGNvZGUgc2ltcGxlci4KK2VuZ2luZSB0byBwZXJmb3JtIGNvcHkgZnJvbSBhbmQgdG8gZGV2aWNlIG1lbW9yeS4gRm9yIHRoaXMgd2UgbmVlZCB0byB1c2UKK21pZ3JhdGVfdm1hX3NldHVwKCksIG1pZ3JhdGVfdm1hX3BhZ2VzKCksIGFuZCBtaWdyYXRlX3ZtYV9maW5hbGl6ZSgpIGhlbHBlcnMuCiAKIAogTWVtb3J5IGNncm91cCAobWVtY2cpIGFuZCByc3MgYWNjb3VudGluZwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92bS9zcGxpdF9wYWdlX3RhYmxlX2xvY2sucnN0IGIvRG9jdW1lbnRhdGlvbi92bS9zcGxpdF9wYWdlX3RhYmxlX2xvY2sucnN0CmluZGV4IDg4OWIwMGIuLmZmNTFmNGEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdm0vc3BsaXRfcGFnZV90YWJsZV9sb2NrLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL3ZtL3NwbGl0X3BhZ2VfdGFibGVfbG9jay5yc3QKQEAgLTU0LDkgKzU0LDkgQEAKIFN1cHBvcnQgb2Ygc3BsaXQgcGFnZSB0YWJsZSBsb2NrIGJ5IGFuIGFyY2hpdGVjdHVyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLVRoZXJlJ3Mgbm8gbmVlZCBpbiBzcGVjaWFsIGVuYWJsaW5nIG9mIFBURSBzcGxpdCBwYWdlIHRhYmxlIGxvY2s6Ci1ldmVyeXRoaW5nIHJlcXVpcmVkIGlzIGRvbmUgYnkgcGd0YWJsZV9wYWdlX2N0b3IoKSBhbmQgcGd0YWJsZV9wYWdlX2R0b3IoKSwKLXdoaWNoIG11c3QgYmUgY2FsbGVkIG9uIFBURSB0YWJsZSBhbGxvY2F0aW9uIC8gZnJlZWluZy4KK1RoZXJlJ3Mgbm8gbmVlZCBpbiBzcGVjaWFsIGVuYWJsaW5nIG9mIFBURSBzcGxpdCBwYWdlIHRhYmxlIGxvY2s6IGV2ZXJ5dGhpbmcKK3JlcXVpcmVkIGlzIGRvbmUgYnkgcGd0YWJsZV9wdGVfcGFnZV9jdG9yKCkgYW5kIHBndGFibGVfcHRlX3BhZ2VfZHRvcigpLCB3aGljaAorbXVzdCBiZSBjYWxsZWQgb24gUFRFIHRhYmxlIGFsbG9jYXRpb24gLyBmcmVlaW5nLgogCiBNYWtlIHN1cmUgdGhlIGFyY2hpdGVjdHVyZSBkb2Vzbid0IHVzZSBzbGFiIGFsbG9jYXRvciBmb3IgcGFnZSB0YWJsZQogYWxsb2NhdGlvbjogc2xhYiB1c2VzIHBhZ2UtPnNsYWJfY2FjaGUgZm9yIGl0cyBwYWdlcy4KQEAgLTc0LDcgKzc0LDcgQEAKIAogV2l0aCBldmVyeXRoaW5nIGluIHBsYWNlIHlvdSBjYW4gc2V0IENPTkZJR19BUkNIX0VOQUJMRV9TUExJVF9QTURfUFRMT0NLLgogCi1OT1RFOiBwZ3RhYmxlX3BhZ2VfY3RvcigpIGFuZCBwZ3RhYmxlX3BtZF9wYWdlX2N0b3IoKSBjYW4gZmFpbCAtLSBpdCBtdXN0CitOT1RFOiBwZ3RhYmxlX3B0ZV9wYWdlX2N0b3IoKSBhbmQgcGd0YWJsZV9wbWRfcGFnZV9jdG9yKCkgY2FuIGZhaWwgLS0gaXQgbXVzdAogYmUgaGFuZGxlZCBwcm9wZXJseS4KIAogcGFnZS0+cHRsCkBAIC05NCw3ICs5NCw3IEBACiAgICBzcGxpdCBsb2NrIHdpdGggZW5hYmxlZCBERUJVR19TUElOTE9DSyBvciBERUJVR19MT0NLX0FMTE9DLCBidXQgY29zdHMKICAgIG9uZSBtb3JlIGNhY2hlIGxpbmUgZm9yIGluZGlyZWN0IGFjY2VzczsKIAotVGhlIHNwaW5sb2NrX3QgYWxsb2NhdGVkIGluIHBndGFibGVfcGFnZV9jdG9yKCkgZm9yIFBURSB0YWJsZSBhbmQgaW4KK1RoZSBzcGlubG9ja190IGFsbG9jYXRlZCBpbiBwZ3RhYmxlX3B0ZV9wYWdlX2N0b3IoKSBmb3IgUFRFIHRhYmxlIGFuZCBpbgogcGd0YWJsZV9wbWRfcGFnZV9jdG9yKCkgZm9yIFBNRCB0YWJsZS4KIAogUGxlYXNlLCBuZXZlciBhY2Nlc3MgcGFnZS0+cHRsIGRpcmVjdGx5IC0tIHVzZSBhcHByb3ByaWF0ZSBoZWxwZXIuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3dhdGNoZG9nL3dhdGNoZG9nLXBhcmFtZXRlcnMucnN0IGIvRG9jdW1lbnRhdGlvbi93YXRjaGRvZy93YXRjaGRvZy1wYXJhbWV0ZXJzLnJzdAppbmRleCBhMzk4NWNjLi4yMjNjOTkzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3dhdGNoZG9nL3dhdGNoZG9nLXBhcmFtZXRlcnMucnN0CisrKyBiL0RvY3VtZW50YXRpb24vd2F0Y2hkb2cvd2F0Y2hkb2ctcGFyYW1ldGVycy5yc3QKQEAgLTMwMSwxNSArMzAxLDYgQEAKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1rczg2OTVfd2R0OgotICAgIHdkdF90aW1lOgotCVdhdGNoZG9nIHRpbWUgaW4gc2Vjb25kcy4gKGRlZmF1bHQ9NSkKLSAgICBub3dheW91dDoKLQlXYXRjaGRvZyBjYW5ub3QgYmUgc3RvcHBlZCBvbmNlIHN0YXJ0ZWQKLQkoZGVmYXVsdD1rZXJuZWwgY29uZmlnIHBhcmFtZXRlcikKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBtYWNoendkOgogICAgIG5vd2F5b3V0OgogCVdhdGNoZG9nIGNhbm5vdCBiZSBzdG9wcGVkIG9uY2Ugc3RhcnRlZApAQCAtMzc1LDE2ICszNjYsNiBAQAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLW51YzkwMF93ZHQ6Ci0gICAgaGVhcnRiZWF0OgotCVdhdGNoZG9nIGhlYXJ0YmVhdHMgaW4gc2Vjb25kcy4KLQkoZGVmYXVsdCA9IDE1KQotICAgIG5vd2F5b3V0OgotCVdhdGNoZG9nIGNhbm5vdCBiZSBzdG9wcGVkIG9uY2Ugc3RhcnRlZAotCShkZWZhdWx0PWtlcm5lbCBjb25maWcgcGFyYW1ldGVyKQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KIG9tYXBfd2R0OgogICAgIHRpbWVyX21hcmdpbjoKIAlpbml0aWFsIHdhdGNoZG9nIHRpbWVvdXQgKGluIHNlY29uZHMpCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvYm9vdC1vcHRpb25zLnJzdCBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9ib290LW9wdGlvbnMucnN0CmluZGV4IDZhNDI4NWEuLjJiOThlZmIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9ib290LW9wdGlvbnMucnN0CisrKyBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9ib290LW9wdGlvbnMucnN0CkBAIC0yMzAsNyArMjMwLDcgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIE11bHRpcGxlIHg4Ni02NCBQQ0ktRE1BIG1hcHBpbmcgaW1wbGVtZW50YXRpb25zIGV4aXN0LCBmb3IgZXhhbXBsZToKIAotICAgMS4gPGxpYi9kbWEtZGlyZWN0LmM+OiB1c2Ugbm8gaGFyZHdhcmUvc29mdHdhcmUgSU9NTVUgYXQgYWxsCisgICAxLiA8a2VybmVsL2RtYS9kaXJlY3QuYz46IHVzZSBubyBoYXJkd2FyZS9zb2Z0d2FyZSBJT01NVSBhdCBhbGwKICAgICAgIChlLmcuIGJlY2F1c2UgeW91IGhhdmUgPCAzIEdCIG1lbW9yeSkuCiAgICAgICBLZXJuZWwgYm9vdCBtZXNzYWdlOiAiUENJLURNQTogRGlzYWJsaW5nIElPTU1VIgogCmRpZmYgLS1naXQgYS9LYnVpbGQgYi9LYnVpbGQKaW5kZXggODYzN2ZkMS4uMzEwOWFjNyAxMDA2NDQKLS0tIGEvS2J1aWxkCisrKyBiL0tidWlsZApAQCAtMTgsOCArMTgsNiBAQAogCiB0aW1lY29uc3QtZmlsZSA6PSBpbmNsdWRlL2dlbmVyYXRlZC90aW1lY29uc3QuaAogCi10YXJnZXRzICs9ICQodGltZWNvbnN0LWZpbGUpCi0KIGZpbGVjaGtfZ2VudGltZWNvbnN0ID0gZWNobyAkKENPTkZJR19IWikgfCBiYyAtcSAkPAogCiAkKHRpbWVjb25zdC1maWxlKToga2VybmVsL3RpbWUvdGltZWNvbnN0LmJjIEZPUkNFCkBAIC00Miw3ICs0MCw2IEBACiAjIENoZWNrIGZvciBtaXNzaW5nIHN5c3RlbSBjYWxscwogCiBhbHdheXMgKz0gbWlzc2luZy1zeXNjYWxscwotdGFyZ2V0cyArPSBtaXNzaW5nLXN5c2NhbGxzCiAKIHF1aWV0X2NtZF9zeXNjYWxscyA9IENBTEwgICAgJDwKICAgICAgIGNtZF9zeXNjYWxscyA9ICQoQ09ORklHX1NIRUxMKSAkPCAkKENDKSAkKGNfZmxhZ3MpICQobWlzc2luZ19zeXNjYWxsc19mbGFncykKQEAgLTU0LDEzICs1MSw5IEBACiAjIENoZWNrIGF0b21pYyBoZWFkZXJzIGFyZSB1cC10by1kYXRlCiAKIGFsd2F5cyArPSBvbGQtYXRvbWljcwotdGFyZ2V0cyArPSBvbGQtYXRvbWljcwogCiBxdWlldF9jbWRfYXRvbWljcyA9IENBTEwgICAgJDwKICAgICAgIGNtZF9hdG9taWNzID0gJChDT05GSUdfU0hFTEwpICQ8CiAKIG9sZC1hdG9taWNzOiBzY3JpcHRzL2F0b21pYy9jaGVjay1hdG9taWNzLnNoIEZPUkNFCiAJJChjYWxsIGNtZCxhdG9taWNzKQotCi0jIEtlZXAgdGhlc2UgdGhyZWUgZmlsZXMgZHVyaW5nIG1ha2UgY2xlYW4KLW5vLWNsZWFuLWZpbGVzIDo9ICQoYm91bmRzLWZpbGUpICQob2Zmc2V0cy1maWxlKSAkKHRpbWVjb25zdC1maWxlKQpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCBkNjEwNzFmLi4yOTZkZTJiIDEwMDY0NAotLS0gYS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtNzI5LDcgKzcyOSw3IEBACiBNOglUaG9yIFRoYXllciA8dGhvci50aGF5ZXJAbGludXguaW50ZWwuY29tPgogUzoJTWFpbnRhaW5lZAogRjoJZHJpdmVycy9tZmQvYWx0ZXJhLXN5c21nci5jCi1GOglpbmNsdWRlL2xpbnV4L21mZC9hbHRlcmEtc3lzZ21yLmgKK0Y6CWluY2x1ZGUvbGludXgvbWZkL2FsdGVyYS1zeXNtZ3IuaAogCiBBTFRFUkEgU1lTVEVNIFJFU09VUkNFIERSSVZFUiBGT1IgQVJSSUExMCBERVZLSVQKIE06CVRob3IgVGhheWVyIDx0aG9yLnRoYXllckBsaW51eC5pbnRlbC5jb20+CkBAIC04MzUsMTcgKzgzNSwxMSBAQAogRjoJaW5jbHVkZS9saW51eC9hbWQtaW9tbXUuaAogCiBBTUQgS0ZECi1NOglPZGVkIEdhYmJheSA8b2RlZC5nYWJiYXlAZ21haWwuY29tPgotTDoJZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwotVDoJZ2l0IGdpdDovL3Blb3BsZS5mcmVlZGVza3RvcC5vcmcvfmdhYmJheW8vbGludXguZ2l0CitNOglGZWxpeCBLdWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4KK0w6CWFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCitUOglnaXQgZ2l0Oi8vcGVvcGxlLmZyZWVkZXNrdG9wLm9yZy9+YWdkNWYvbGludXgKIFM6CVN1cHBvcnRlZAotRjoJZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5jCi1GOglkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmgKLUY6CWRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y3LmMKLUY6CWRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y4LmMKLUY6CWRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmMKLUY6CWRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZmVuY2UuYwotRjoJZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCitGOglkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkKi5bY2hdCiBGOglkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC8KIEY6CWRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jaWtfc3RydWN0cy5oCiBGOglkcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dkX2tmZF9pbnRlcmZhY2UuaApAQCAtMTQwMSw3ICsxMzk1LDcgQEAKIEY6CWRyaXZlcnMvc29jL2FjdGlvbnMvCiBGOglpbmNsdWRlL2R0LWJpbmRpbmdzL3Bvd2VyL293bC0qCiBGOglpbmNsdWRlL2xpbnV4L3NvYy9hY3Rpb25zLwotRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hY3Rpb25zLnR4dAorRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hY3Rpb25zLnlhbWwKIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9hY3Rpb25zLG93bC1jbXUudHh0CiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZG1hL293bC1kbWEudHh0CiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL2kyYy1vd2wudHh0CkBAIC0xNDczLDYgKzE0NjcsNyBAQAogRjoJZHJpdmVycy9waW5jdHJsL21lc29uLwogRjoJZHJpdmVycy9tbWMvaG9zdC9tZXNvbioKIEY6CWRyaXZlcnMvc29jL2FtbG9naWMvCitGOglkcml2ZXJzL3J0Yy9ydGMtbWVzb24qCiBOOgltZXNvbgogCiBBUk0vQW1sb2dpYyBNZXNvbiBTb0MgU291bmQgRHJpdmVycwpAQCAtMjE2Nyw3ICsyMTYyLDcgQEAKIEw6CWxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZyAobW9kZXJhdGVkIGZvciBub24tc3Vic2NyaWJlcnMpCiBTOglNYWludGFpbmVkCiBGOglhcmNoL2FybTY0L2Jvb3QvZHRzL3JlYWx0ZWsvCi1GOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3JlYWx0ZWsudHh0CitGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3JlYWx0ZWsueWFtbAogCiBBUk0vUkVORVNBUyBBUk02NCBBUkNISVRFQ1RVUkUKIE06CVNpbW9uIEhvcm1hbiA8aG9ybXNAdmVyZ2UubmV0LmF1PgpAQCAtMjkyNyw2ICsyOTIyLDggQEAKIEY6CWluY2x1ZGUvbGludXgvYmFja2xpZ2h0LmgKIEY6CWluY2x1ZGUvbGludXgvcHdtX2JhY2tsaWdodC5oCiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbGVkcy9iYWNrbGlnaHQKK0Y6CURvY3VtZW50YXRpb24vQUJJL3N0YWJsZS9zeXNmcy1jbGFzcy1iYWNrbGlnaHQKK0Y6CURvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtYmFja2xpZ2h0CiAKIEJBVE1BTiBBRFZBTkNFRAogTToJTWFyZWsgTGluZG5lciA8bWFyZWtsaW5kbmVyQG5lb21haWxib3guY2g+CkBAIC00MzQ0LDYgKzQzNDEsMTIgQEAKIEY6CURvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvY3JhbWZzLnR4dAogRjoJZnMvY3JhbWZzLwogCitDUkVBVElWRSBTQjA1NDAKK006CUJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KK0w6CWxpbnV4LWlucHV0QHZnZXIua2VybmVsLm9yZworUzoJTWFpbnRhaW5lZAorRjoJZHJpdmVycy9oaWQvaGlkLWNyZWF0aXZlLXNiMDU0MC5jCisKIENSWVBUTyBBUEkKIE06CUhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KIE06CSJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpAQCAtNTE0NSwxNyArNTE0OCwyNCBAQAogRjoJZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmctZnkwNzAyNGRpMjZhMzBkLmMKIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL2ZlaXlhbmcsZnkwNzAyNGRpMjZhMzBkLnR4dAogCitEUk0gRFJJVkVSIEZPUiBHUkFJTiBNRURJQSBHTTEyVTMyMCBQUk9KRUNUT1JTCitNOglIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgorVDoJZ2l0IGdpdDovL2Fub25naXQuZnJlZWRlc2t0b3Aub3JnL2RybS9kcm0tbWlzYworUzoJTWFpbnRhaW5lZAorRjoJZHJpdmVycy9ncHUvZHJtL3RpbnkvZ20xMnUzMjAuYworCiBEUk0gRFJJVkVSIEZPUiBJTElURUsgSUxJOTIyNSBQQU5FTFMKIE06CURhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPgorVDoJZ2l0IGdpdDovL2Fub25naXQuZnJlZWRlc2t0b3Aub3JnL2RybS9kcm0tbWlzYwogUzoJTWFpbnRhaW5lZAotRjoJZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jCitGOglkcml2ZXJzL2dwdS9kcm0vdGlueS9pbGk5MjI1LmMKIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2lsaXRlayxpbGk5MjI1LnR4dAogCiBEUk0gRFJJVkVSIEZPUiBIWDgzNTdEIFBBTkVMUwogTToJRXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4KIFQ6CWdpdCBnaXQ6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy9kcm0vZHJtLW1pc2MKIFM6CU1haW50YWluZWQKLUY6CWRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2h4ODM1N2QuYworRjoJZHJpdmVycy9ncHUvZHJtL3RpbnkvaHg4MzU3ZC5jCiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9oaW1heCxoeDgzNTdkLnR4dAogCiBEUk0gRFJJVkVSIEZPUiBJTlRFTCBJODEwIFZJREVPIENBUkRTCkBAIC01MTc1LDggKzUxODUsOSBAQAogCiBEUk0gRFJJVkVSIEZPUiBNSTAyODNRVAogTToJTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+CitUOglnaXQgZ2l0Oi8vYW5vbmdpdC5mcmVlZGVza3RvcC5vcmcvZHJtL2RybS1taXNjCiBTOglNYWludGFpbmVkCi1GOglkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taTAyODNxdC5jCitGOglkcml2ZXJzL2dwdS9kcm0vdGlueS9taTAyODNxdC5jCiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9tdWx0aS1pbm5vLG1pMDI4M3F0LnR4dAogCiBEUk0gRFJJVkVSIEZPUiBNU00gQURSRU5PIEdQVQpAQCAtNTIwOCw4ICs1MjE5LDkgQEAKIAogRFJNIERSSVZFUiBGT1IgUEVSVkFTSVZFIERJU1BMQVlTIFJFUEFQRVIgUEFORUxTCiBNOglOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KK1Q6CWdpdCBnaXQ6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy9kcm0vZHJtLW1pc2MKIFM6CU1haW50YWluZWQKLUY6CWRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3JlcGFwZXIuYworRjoJZHJpdmVycy9ncHUvZHJtL3RpbnkvcmVwYXBlci5jCiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9yZXBhcGVyLnR4dAogCiBEUk0gRFJJVkVSIEZPUiBRRU1VJ1MgQ0lSUlVTIERFVklDRQpAQCAtNTIzMSw2ICs1MjQzLDEyIEBACiBGOglkcml2ZXJzL2dwdS9kcm0vcXhsLwogRjoJaW5jbHVkZS91YXBpL2RybS9xeGxfZHJtLmgKIAorRFJNIERSSVZFUiBGT1IgUkFZRElVTSBSTTY3MTkxIFBBTkVMUworTToJUm9iZXJ0IENoaXJhcyA8cm9iZXJ0LmNoaXJhc0BueHAuY29tPgorUzoJTWFpbnRhaW5lZAorRjoJZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jCitGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9yYXlkaXVtLHJtNjcxOTEudHh0CisKIERSTSBEUklWRVIgRk9SIFJBR0UgMTI4IFZJREVPIENBUkRTCiBTOglPcnBoYW4gLyBPYnNvbGV0ZQogRjoJZHJpdmVycy9ncHUvZHJtL3IxMjgvCkBAIC01MjM4LDYgKzUyNTYsNyBAQAogCiBEUk0gRFJJVkVSIEZPUiBST0NLVEVDSCBKSDA1N04wMDkwMCBQQU5FTFMKIE06CUd1aWRvIEfDvG50aGVyIDxhZ3hAc2lneGNwdS5vcmc+CitSOglQdXJpc20gS2VybmVsIFRlYW0gPGtlcm5lbEBwdXJpLnNtPgogUzoJTWFpbnRhaW5lZAogRjoJZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvY2t0ZWNoLWpoMDU3bjAwOTAwLmMKIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3JvY2t0ZWNoLGpoMDU3bjAwOTAwLnR4dApAQCAtNTI2MCwxNCArNTI3OSwxNiBAQAogCiBEUk0gRFJJVkVSIEZPUiBTSVRST05JWCBTVDc1ODYgUEFORUxTCiBNOglEYXZpZCBMZWNobmVyIDxkYXZpZEBsZWNobm9sb2d5LmNvbT4KK1Q6CWdpdCBnaXQ6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy9kcm0vZHJtLW1pc2MKIFM6CU1haW50YWluZWQKLUY6CWRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzU4Ni5jCitGOglkcml2ZXJzL2dwdS9kcm0vdGlueS9zdDc1ODYuYwogRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvc2l0cm9uaXgsc3Q3NTg2LnR4dAogCiBEUk0gRFJJVkVSIEZPUiBTSVRST05JWCBTVDc3MzVSIFBBTkVMUwogTToJRGF2aWQgTGVjaG5lciA8ZGF2aWRAbGVjaG5vbG9neS5jb20+CitUOglnaXQgZ2l0Oi8vYW5vbmdpdC5mcmVlZGVza3RvcC5vcmcvZHJtL2RybS1taXNjCiBTOglNYWludGFpbmVkCi1GOglkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc3MzVyLmMKK0Y6CWRyaXZlcnMvZ3B1L2RybS90aW55L3N0NzczNXIuYwogRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvc2l0cm9uaXgsc3Q3NzM1ci50eHQKIAogRFJNIERSSVZFUiBGT1IgU1QtRVJJQ1NTT04gTUNERQpAQCAtNTI4Niw3ICs1MzA3LDcgQEAKIFQ6CWdpdCBnaXQ6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy9kcm0vZHJtLW1pc2MKIFM6CU1haW50YWluZWQKIEY6CWRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdHBnMTEwLmMKLUY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3Rwbyx0cGcxMTAudHh0CitGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC90cG8sdHBnMTEwLnlhbWwKIAogRFJNIERSSVZFUiBGT1IgVVNCIERJU1BMQVlMSU5LIFZJREVPIEFEQVBURVJTCiBNOglEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgpAQCAtNTM2OCwxMiArNTM4OSwxMyBAQAogVzoJaHR0cDovL2xpbnV4LW1lc29uLmNvbS8KIFM6CVN1cHBvcnRlZAogRjoJZHJpdmVycy9ncHUvZHJtL21lc29uLwotRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYW1sb2dpYyxtZXNvbi12cHUudHh0Ci1GOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9hbWxvZ2ljLG1lc29uLWR3LWhkbWkudHh0CitGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9hbWxvZ2ljLG1lc29uLXZwdS55YW1sCitGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9hbWxvZ2ljLG1lc29uLWR3LWhkbWkueWFtbAogRjoJRG9jdW1lbnRhdGlvbi9ncHUvbWVzb24ucnN0CiBUOglnaXQgZ2l0Oi8vYW5vbmdpdC5mcmVlZGVza3RvcC5vcmcvZHJtL2RybS1taXNjCiAKIERSTSBEUklWRVJTIEZPUiBBVE1FTCBITENEQworTToJU2FtIFJhdm5ib3JnIDxzYW1AcmF2bmJvcmcub3JnPgogTToJQm9yaXMgQnJlemlsbG9uIDxiYnJlemlsbG9uQGtlcm5lbC5vcmc+CiBMOglkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCiBTOglTdXBwb3J0ZWQKQEAgLTUzODMsNyArNTQwNSwxMCBAQAogCiBEUk0gRFJJVkVSUyBGT1IgQlJJREdFIENISVBTCiBNOglBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgorTToJTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgogUjoJTGF1cmVudCBQaW5jaGFydCA8TGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgorUjoJSm9uYXMgS2FybG1hbiA8am9uYXNAa3dpYm9vLnNlPgorUjoJSmVybmVqIFNrcmFiZWMgPGplcm5lai5za3JhYmVjQHNpb2wubmV0PgogUzoJTWFpbnRhaW5lZAogVDoJZ2l0IGdpdDovL2Fub25naXQuZnJlZWRlc2t0b3Aub3JnL2RybS9kcm0tbWlzYwogRjoJZHJpdmVycy9ncHUvZHJtL2JyaWRnZS8KQEAgLTU1NzEsMTQgKzU1OTYsNiBAQAogRjoJaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsLwogCi1EUk0gVElOWURSTSBEUklWRVJTCi1NOglOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KLVc6CWh0dHBzOi8vZ2l0aHViLmNvbS9ub3Ryby90aW55ZHJtL3dpa2kvRGV2ZWxvcG1lbnQKLVQ6CWdpdCBnaXQ6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy9kcm0vZHJtLW1pc2MKLVM6CU1haW50YWluZWQKLUY6CWRyaXZlcnMvZ3B1L2RybS90aW55ZHJtLwotRjoJaW5jbHVkZS9kcm0vdGlueWRybS8KLQogRFJNIERSSVZFUlMgRk9SIFhFTgogTToJT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgogVDoJZ2l0IGdpdDovL2Fub25naXQuZnJlZWRlc2t0b3Aub3JnL2RybS9kcm0tbWlzYwpAQCAtNTc5NSw2ICs1ODEyLDEyIEBACiBTOglNYWludGFpbmVkCiBGOglkcml2ZXJzL2VkYWMvYW1kNjRfZWRhYyoKIAorRURBQy1BUk1BREEKK006CUphbiBMdWViYmUgPGpsdUBwZW5ndXRyb25peC5kZT4KK0w6CWxpbnV4LWVkYWNAdmdlci5rZXJuZWwub3JnCitTOglNYWludGFpbmVkCitGOglkcml2ZXJzL2VkYWMvYXJtYWRhX3hwXyoKKwogRURBQy1BU1QyNTAwCiBNOglTdGVmYW4gU2NoYWVja2VsZXIgPHNzY2hhZWNrQGNpc2NvLmNvbT4KIFM6CVN1cHBvcnRlZApAQCAtNzg0Myw2ICs3ODY2LDEyIEBACiBGOglkcml2ZXJzL21mZC9scGNfaWNoLmMKIEY6CWRyaXZlcnMvZ3Bpby9ncGlvLWljaC5jCiAKK0lDWSBJMkMgRFJJVkVSCitNOglNYXggU3RhdWR0IDxtYXhAZW5wYXMub3JnPgorTDoJbGludXgtaTJjQHZnZXIua2VybmVsLm9yZworUzoJTWFpbnRhaW5lZAorRjoJZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pY3kuYworCiBJREUgU1VCU1lTVEVNCiBNOgkiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KIEw6CWxpbnV4LWlkZUB2Z2VyLmtlcm5lbC5vcmcKQEAgLTkwMjgsMTAgKzkwNTcsMTEgQEAKIEY6CURvY3VtZW50YXRpb24vc2VjdXJpdHkva2V5cy90cnVzdGVkLWVuY3J5cHRlZC5yc3QKIEY6CWluY2x1ZGUva2V5cy90cnVzdGVkLXR5cGUuaAogRjoJc2VjdXJpdHkva2V5cy90cnVzdGVkLmMKLUY6CXNlY3VyaXR5L2tleXMvdHJ1c3RlZC5oCitGOglpbmNsdWRlL2tleXMvdHJ1c3RlZC5oCiAKIEtFWVMvS0VZUklOR1M6CiBNOglEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0ByZWRoYXQuY29tPgorTToJSmFya2tvIFNha2tpbmVuIDxqYXJra28uc2Fra2luZW5AbGludXguaW50ZWwuY29tPgogTDoJa2V5cmluZ3NAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL3NlY3VyaXR5L2tleXMvY29yZS5yc3QKQEAgLTExNDk3LDcgKzExNTI3LDYgQEAKIFI6CVBhbGkgUm9ow6FyIDxwYWxpLnJvaGFyQGdtYWlsLmNvbT4KIEY6CWluY2x1ZGUvbGludXgvcG93ZXIvYnEyNDE1eF9jaGFyZ2VyLmgKIEY6CWluY2x1ZGUvbGludXgvcG93ZXIvYnEyN3h4eF9iYXR0ZXJ5LmgKLUY6CWluY2x1ZGUvbGludXgvcG93ZXIvaXNwMTcwNF9jaGFyZ2VyLmgKIEY6CWRyaXZlcnMvcG93ZXIvc3VwcGx5L2JxMjQxNXhfY2hhcmdlci5jCiBGOglkcml2ZXJzL3Bvd2VyL3N1cHBseS9icTI3eHh4X2JhdHRlcnkuYwogRjoJZHJpdmVycy9wb3dlci9zdXBwbHkvYnEyN3h4eF9iYXR0ZXJ5X2kyYy5jCkBAIC0xMTUxMCw2ICsxMTUzOSwxMSBAQAogVDoJZ2l0IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC93dGFycmVhdS9ub2xpYmMuZ2l0CiBGOgl0b29scy9pbmNsdWRlL25vbGliYy8KIAorTlNERVBTCitNOglNYXR0aGlhcyBNYWVubmljaCA8bWFlbm5pY2hAZ29vZ2xlLmNvbT4KK1M6CU1haW50YWluZWQKK0Y6CXNjcmlwdHMvbnNkZXBzCisKIE5UQiBBTUQgRFJJVkVSCiBNOglTaHlhbSBTdW5kYXIgUyBLIDxTaHlhbS1zdW5kYXIuUy1rQGFtZC5jb20+CiBMOglsaW51eC1udGJAZ29vZ2xlZ3JvdXBzLmNvbQpAQCAtMTE4NjAsNiArMTE4OTQsNyBAQAogRjoJYXJjaC9hcm0vbWFjaC1vbWFwMi8KIEY6CWFyY2gvYXJtL3BsYXQtb21hcC8KIEY6CWFyY2gvYXJtL2NvbmZpZ3Mvb21hcDJwbHVzX2RlZmNvbmZpZworRjoJZHJpdmVycy9idXMvdGktc3lzYy5jCiBGOglkcml2ZXJzL2kyYy9idXNzZXMvaTJjLW9tYXAuYwogRjoJZHJpdmVycy9pcnFjaGlwL2lycS1vbWFwLWludGMuYwogRjoJZHJpdmVycy9tZmQvKm9tYXAqLmMKQEAgLTExODgwLDYgKzExOTE1LDcgQEAKIEY6CWRyaXZlcnMvcmVndWxhdG9yL3R3bC1yZWd1bGF0b3IuYwogRjoJZHJpdmVycy9yZWd1bGF0b3IvdHdsNjAzMC1yZWd1bGF0b3IuYwogRjoJaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2kyYy1vbWFwLmgKK0Y6CWluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS90aS1zeXNjLmgKIAogT05JT04gT01FR0EyKyBCT0FSRAogTToJSGFydmV5IEh1bnQgPGhhcnZleWh1bnRuZXh1c0BnbWFpbC5jb20+CkBAIC0xMjU1NCwxNiArMTI1OTAsMTggQEAKIAogUENJIE5BVElWRSBIT1NUIEJSSURHRSBBTkQgRU5EUE9JTlQgRFJJVkVSUwogTToJTG9yZW56byBQaWVyYWxpc2kgPGxvcmVuem8ucGllcmFsaXNpQGFybS5jb20+CitSOglBbmRyZXcgTXVycmF5IDxhbmRyZXcubXVycmF5QGFybS5jb20+CiBMOglsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnCiBROglodHRwOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcHJvamVjdC9saW51eC1wY2kvbGlzdC8KIFQ6CWdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvbHBpZXJhbGlzaS9wY2kuZ2l0LwogUzoJU3VwcG9ydGVkCiBGOglkcml2ZXJzL3BjaS9jb250cm9sbGVyLwogCi1QQ0lFIERSSVZFUiBGT1IgQU5OQVBVUk5BIExBQlMKK1BDSUUgRFJJVkVSIEZPUiBBTUFaT04gQU5OQVBVUk5BIExBQlMKIE06CUpvbmF0aGFuIENob2Nyb24gPGpvbm55Y0BhbWF6b24uY29tPgogTDoJbGludXgtcGNpQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAorRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9wY2llLWFsLnR4dAogRjoJZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hbC5jCiAKIFBDSUUgRFJJVkVSIEZPUiBBTUxPR0lDIE1FU09OCkBAIC0xMjc0Myw2ICsxMjc4MSwxMiBAQAogRjoJRG9jdW1lbnRhdGlvbi9pbnB1dC9kZXZpY2VzL3B4cmMucnN0CiBGOglkcml2ZXJzL2lucHV0L2pveXN0aWNrL3B4cmMuYwogCitGTFlTS1kgRlNJQTZCIFJDIFJFQ0VJVkVSCitNOglNYXJrdXMgS29jaCA8bWFya3VzQG5vdHN5bmNpbmcubmV0PgorTDoJbGludXgtaW5wdXRAdmdlci5rZXJuZWwub3JnCitTOglNYWludGFpbmVkCitGOglkcml2ZXJzL2lucHV0L2pveXN0aWNrL2ZzaWE2Yi5jCisKIFBIT05FVCBQUk9UT0NPTAogTToJUmVtaSBEZW5pcy1Db3VybW9udCA8Y291cm1pc2NoQGdtYWlsLmNvbT4KIFM6CVN1cHBvcnRlZApAQCAtMTMyMDMsOSArMTMyNDcsMTEgQEAKIAogUFdNIFNVQlNZU1RFTQogTToJVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGdtYWlsLmNvbT4KK1I6CVV3ZSBLbGVpbmUtS8O2bmlnIDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+CiBMOglsaW51eC1wd21Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBUOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RoaWVycnkucmVkaW5nL2xpbnV4LXB3bS5naXQKK1E6CWh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcHJvamVjdC9saW51eC1wd20vbGlzdC8KIEY6CURvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9wd20ucnN0CiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdtLwogRjoJaW5jbHVkZS9saW51eC9wd20uaApAQCAtMTMyMTQsNiArMTMyNjAsNyBAQAogRjoJaW5jbHVkZS9saW51eC9wd21fYmFja2xpZ2h0LmgKIEY6CWRyaXZlcnMvZ3Bpby9ncGlvLW12ZWJ1LmMKIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL2dwaW8tbXZlYnUudHh0CitLOglwd21fKGNvbmZpZ3xhcHBseV9zdGF0ZXxvcHMpCiAKIFBYQSBHUElPIERSSVZFUgogTToJUm9iZXJ0IEphcnptaWsgPHJvYmVydC5qYXJ6bWlrQGZyZWUuZnI+CkBAIC0xMzQzOCw5ICsxMzQ4NSw4IEBACiBGOglkcml2ZXJzL2kyYy9idXNzZXMvaTJjLXFjb20tZ2VuaS5jCiAKIFFVQUxDT01NIEhFWEFHT04gQVJDSElURUNUVVJFCi1NOglSaWNoYXJkIEt1byA8cmt1b0Bjb2RlYXVyb3JhLm9yZz4KK006CUJyaWFuIENhaW4gPGJjYWluQGNvZGVhdXJvcmEub3JnPgogTDoJbGludXgtaGV4YWdvbkB2Z2VyLmtlcm5lbC5vcmcKLVQ6CWdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvcmt1by9saW51eC1oZXhhZ29uLWtlcm5lbC5naXQKIFM6CVN1cHBvcnRlZAogRjoJYXJjaC9oZXhhZ29uLwogCkBAIC0xMzcyMyw3ICsxMzc2OSw3IEBACiBNOglPaGFkIEJlbi1Db2hlbiA8b2hhZEB3aXplcnkuY29tPgogTToJQmpvcm4gQW5kZXJzc29uIDxiam9ybi5hbmRlcnNzb25AbGluYXJvLm9yZz4KIEw6CWxpbnV4LXJlbW90ZXByb2NAdmdlci5rZXJuZWwub3JnCi1UOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L29oYWQvcmVtb3RlcHJvYy5naXQKK1Q6CWdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvYW5kZXJzc29uL3JlbW90ZXByb2MuZ2l0IHJwcm9jLW5leHQKIFM6CU1haW50YWluZWQKIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZW1vdGVwcm9jLwogRjoJRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1yZW1vdGVwcm9jCkBAIC0xMzczNiw3ICsxMzc4Miw3IEBACiBNOglPaGFkIEJlbi1Db2hlbiA8b2hhZEB3aXplcnkuY29tPgogTToJQmpvcm4gQW5kZXJzc29uIDxiam9ybi5hbmRlcnNzb25AbGluYXJvLm9yZz4KIEw6CWxpbnV4LXJlbW90ZXByb2NAdmdlci5rZXJuZWwub3JnCi1UOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L29oYWQvcnBtc2cuZ2l0CitUOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2FuZGVyc3Nvbi9yZW1vdGVwcm9jLmdpdCBycG1zZy1uZXh0CiBTOglNYWludGFpbmVkCiBGOglkcml2ZXJzL3JwbXNnLwogRjoJRG9jdW1lbnRhdGlvbi9ycG1zZy50eHQKQEAgLTEzNzU2LDcgKzEzODAyLDcgQEAKIFJFTkVTQVMgRU1FVjIgSTJDIERSSVZFUgogTToJV29sZnJhbSBTYW5nIDx3c2ErcmVuZXNhc0BzYW5nLWVuZ2luZWVyaW5nLmNvbT4KIFM6CVN1cHBvcnRlZAotRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9pMmMtZW1ldjIudHh0CitGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL3JlbmVzYXMsaWljLWVtZXYyLnR4dAogRjoJZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1lbWV2Mi5jCiAKIFJFTkVTQVMgRVRIRVJORVQgRFJJVkVSUwpAQCAtMTM3NzgsMTUgKzEzODI0LDE1IEBACiBSRU5FU0FTIFItQ0FSIEkyQyBEUklWRVJTCiBNOglXb2xmcmFtIFNhbmcgPHdzYStyZW5lc2FzQHNhbmctZW5naW5lZXJpbmcuY29tPgogUzoJU3VwcG9ydGVkCi1GOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL2kyYy1yY2FyLnR4dAotRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9pMmMtc2hfbW9iaWxlLnR4dAorRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9yZW5lc2FzLGkyYy50eHQKK0Y6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvcmVuZXNhcyxpaWMudHh0CiBGOglkcml2ZXJzL2kyYy9idXNzZXMvaTJjLXJjYXIuYwogRjoJZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zaF9tb2JpbGUuYwogCiBSRU5FU0FTIFJJSUMgRFJJVkVSCiBNOglDaHJpcyBCcmFuZHQgPGNocmlzLmJyYW5kdEByZW5lc2FzLmNvbT4KIFM6CVN1cHBvcnRlZAotRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9pMmMtcmlpYy50eHQKK0Y6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvcmVuZXNhcyxyaWljLnR4dAogRjoJZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1yaWljLmMKIAogUkVORVNBUyBVU0IgUEhZIERSSVZFUgpAQCAtMTYwMzAsNiArMTYwNzYsNyBAQAogTToJWmhhbmcgUnVpIDxydWkuemhhbmdAaW50ZWwuY29tPgogTToJRWR1YXJkbyBWYWxlbnRpbiA8ZWR1YmV6dmFsQGdtYWlsLmNvbT4KIFI6CURhbmllbCBMZXpjYW5vIDxkYW5pZWwubGV6Y2Fub0BsaW5hcm8ub3JnPgorUjoJQW1pdCBLdWNoZXJpYSA8YW1pdC5rdWNoZXJpYUB2ZXJkdXJlbnQuY29tPgogTDoJbGludXgtcG1Admdlci5rZXJuZWwub3JnCiBUOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3J6aGFuZy9saW51eC5naXQKIFQ6CWdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZXZhbGVudGkvbGludXgtc29jLXRoZXJtYWwuZ2l0CkBAIC0xNzIzNCw2ICsxNzI4MSwxOCBAQAogRjoJZHJpdmVycy9zMzkwL3ZpcnRpby8KIEY6CWFyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL3ZpcnRpby1jY3cuaAogCitWSVJUSU8gRklMRSBTWVNURU0KK006CVZpdmVrIEdveWFsIDx2Z295YWxAcmVkaGF0LmNvbT4KK006CVN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT4KK006CU1pa2xvcyBTemVyZWRpIDxtaWtsb3NAc3plcmVkaS5odT4KK0w6CXZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCitMOglsaW51eC1mc2RldmVsQHZnZXIua2VybmVsLm9yZworVzoJaHR0cHM6Ly92aXJ0aW8tZnMuZ2l0bGFiLmlvLworUzoJU3VwcG9ydGVkCitGOglmcy9mdXNlL3ZpcnRpb19mcy5jCitGOglpbmNsdWRlL3VhcGkvbGludXgvdmlydGlvX2ZzLmgKK0Y6CURvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvdmlydGlvZnMucnN0CisKIFZJUlRJTyBHUFUgRFJJVkVSCiBNOglEYXZpZCBBaXJsaWUgPGFpcmxpZWRAbGludXguaWU+CiBNOglHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4KZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggNDI2MmVmOS4uZDQ1Njc0NiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTIzMCw2ICsyMzAsOCBAQAogCiBleHBvcnQgS0JVSUxEX0NIRUNLU1JDIEtCVUlMRF9FWFRNT0QKIAorZXh0bW9kLXByZWZpeCA9ICQoaWYgJChLQlVJTERfRVhUTU9EKSwkKEtCVUlMRF9FWFRNT0QpLykKKwogaWZlcSAoJChhYnNfc3JjdHJlZSksJChhYnNfb2JqdHJlZSkpCiAgICAgICAgICMgYnVpbGRpbmcgaW4gdGhlIHNvdXJjZSB0cmVlCiAgICAgICAgIHNyY3RyZWUgOj0gLgpAQCAtMjcxLDUyICsyNzMsNjIgQEAKIAkJCSAlYXNtLWdlbmVyaWMga2VybmVsdmVyc2lvbiAlc3JjLXBrZwogbm8tc3luYy1jb25maWctdGFyZ2V0cyA6PSAkKG5vLWRvdC1jb25maWctdGFyZ2V0cykgaW5zdGFsbCAlaW5zdGFsbCBcCiAJCQkgICBrZXJuZWxyZWxlYXNlCitzaW5nbGUtdGFyZ2V0cyA6PSAlLmEgJS5pICUua28gJS5sZHMgJS5sbCAlLmxzdCAlLm1vZCAlLm8gJS5zICUuc3ltdHlwZXMgJS8KIAotY29uZmlnLXRhcmdldHMgIDo9IDAKLW1peGVkLXRhcmdldHMgICA6PSAwCi1kb3QtY29uZmlnICAgICAgOj0gMQotbWF5LXN5bmMtY29uZmlnIDo9IDEKK2NvbmZpZy1idWlsZAk6PQorbWl4ZWQtYnVpbGQJOj0KK25lZWQtY29uZmlnCTo9IDEKK21heS1zeW5jLWNvbmZpZwk6PSAxCitzaW5nbGUtYnVpbGQJOj0KIAogaWZuZXEgKCQoZmlsdGVyICQobm8tZG90LWNvbmZpZy10YXJnZXRzKSwgJChNQUtFQ01ER09BTFMpKSwpCiAJaWZlcSAoJChmaWx0ZXItb3V0ICQobm8tZG90LWNvbmZpZy10YXJnZXRzKSwgJChNQUtFQ01ER09BTFMpKSwpCi0JCWRvdC1jb25maWcgOj0gMAorCQluZWVkLWNvbmZpZyA6PQogCWVuZGlmCiBlbmRpZgogCiBpZm5lcSAoJChmaWx0ZXIgJChuby1zeW5jLWNvbmZpZy10YXJnZXRzKSwgJChNQUtFQ01ER09BTFMpKSwpCiAJaWZlcSAoJChmaWx0ZXItb3V0ICQobm8tc3luYy1jb25maWctdGFyZ2V0cyksICQoTUFLRUNNREdPQUxTKSksKQotCQltYXktc3luYy1jb25maWcgOj0gMAorCQltYXktc3luYy1jb25maWcgOj0KIAllbmRpZgogZW5kaWYKIAogaWZuZXEgKCQoS0JVSUxEX0VYVE1PRCksKQotCW1heS1zeW5jLWNvbmZpZyA6PSAwCisJbWF5LXN5bmMtY29uZmlnIDo9CiBlbmRpZgogCiBpZmVxICgkKEtCVUlMRF9FWFRNT0QpLCkKICAgICAgICAgaWZuZXEgKCQoZmlsdGVyIGNvbmZpZyAlY29uZmlnLCQoTUFLRUNNREdPQUxTKSksKQotICAgICAgICAgICAgICAgIGNvbmZpZy10YXJnZXRzIDo9IDEKKwkJY29uZmlnLWJ1aWxkIDo9IDEKICAgICAgICAgICAgICAgICBpZm5lcSAoJCh3b3JkcyAkKE1BS0VDTURHT0FMUykpLDEpCi0gICAgICAgICAgICAgICAgICAgICAgICBtaXhlZC10YXJnZXRzIDo9IDEKKwkJCW1peGVkLWJ1aWxkIDo9IDEKICAgICAgICAgICAgICAgICBlbmRpZgogICAgICAgICBlbmRpZgogZW5kaWYKIAorIyBXZSBjYW5ub3QgYnVpbGQgc2luZ2xlIHRhcmdldHMgYW5kIHRoZSBvdGhlcnMgYXQgdGhlIHNhbWUgdGltZQoraWZuZXEgKCQoZmlsdGVyICQoc2luZ2xlLXRhcmdldHMpLCAkKE1BS0VDTURHT0FMUykpLCkKKwlzaW5nbGUtYnVpbGQgOj0gMQorCWlmbmVxICgkKGZpbHRlci1vdXQgJChzaW5nbGUtdGFyZ2V0cyksICQoTUFLRUNNREdPQUxTKSksKQorCQltaXhlZC1idWlsZCA6PSAxCisJZW5kaWYKK2VuZGlmCisKICMgRm9yICJtYWtlIC1qIGNsZWFuIGFsbCIsICJtYWtlIC1qIG1ycHJvcGVyIGRlZmNvbmZpZyBhbGwiLCBldGMuCiBpZm5lcSAoJChmaWx0ZXIgJChjbGVhbi10YXJnZXRzKSwkKE1BS0VDTURHT0FMUykpLCkKICAgICAgICAgaWZuZXEgKCQoZmlsdGVyLW91dCAkKGNsZWFuLXRhcmdldHMpLCQoTUFLRUNNREdPQUxTKSksKQotICAgICAgICAgICAgICAgIG1peGVkLXRhcmdldHMgOj0gMQorCQltaXhlZC1idWlsZCA6PSAxCiAgICAgICAgIGVuZGlmCiBlbmRpZgogCiAjIGluc3RhbGwgYW5kIG1vZHVsZXNfaW5zdGFsbCBuZWVkIGFsc28gYmUgcHJvY2Vzc2VkIG9uZSBieSBvbmUKIGlmbmVxICgkKGZpbHRlciBpbnN0YWxsLCQoTUFLRUNNREdPQUxTKSksKQogICAgICAgICBpZm5lcSAoJChmaWx0ZXIgbW9kdWxlc19pbnN0YWxsLCQoTUFLRUNNREdPQUxTKSksKQotCSAgICAgICAgbWl4ZWQtdGFyZ2V0cyA6PSAxCisJCW1peGVkLWJ1aWxkIDo9IDEKICAgICAgICAgZW5kaWYKIGVuZGlmCiAKLWlmZXEgKCQobWl4ZWQtdGFyZ2V0cyksMSkKK2lmZGVmIG1peGVkLWJ1aWxkCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIyBXZSdyZSBjYWxsZWQgd2l0aCBtaXhlZCB0YXJnZXRzICgqY29uZmlnIGFuZCBidWlsZCB0YXJnZXRzKS4KICMgSGFuZGxlIHRoZW0gb25lIGJ5IG9uZS4KQEAgLTMzMiw3ICszNDQsNyBAQAogCQkkKE1BS0UpIC1mICQoc3JjdHJlZSkvTWFrZWZpbGUgJCRpOyBcCiAJZG9uZQogCi1lbHNlCitlbHNlICMgIW1peGVkLWJ1aWxkCiAKIGluY2x1ZGUgc2NyaXB0cy9LYnVpbGQuaW5jbHVkZQogCkBAIC0zOTIsOSArNDA0LDcgQEAKIGV4cG9ydCBLQ09ORklHX0NPTkZJRwogCiAjIFNIRUxMIHVzZWQgYnkga2J1aWxkCi1DT05GSUdfU0hFTEwgOj0gJChzaGVsbCBpZiBbIC14ICIkJEJBU0giIF07IHRoZW4gZWNobyAkJEJBU0g7IFwKLQkgIGVsc2UgaWYgWyAteCAvYmluL2Jhc2ggXTsgdGhlbiBlY2hvIC9iaW4vYmFzaDsgXAotCSAgZWxzZSBlY2hvIHNoOyBmaSA7IGZpKQorQ09ORklHX1NIRUxMIDo9IHNoCiAKIEhPU1RfTEZTX0NGTEFHUyA6PSAkKHNoZWxsIGdldGNvbmYgTEZTX0NGTEFHUyAyPi9kZXYvbnVsbCkKIEhPU1RfTEZTX0xERkxBR1MgOj0gJChzaGVsbCBnZXRjb25mIExGU19MREZMQUdTIDI+L2Rldi9udWxsKQpAQCAtNDMxLDYgKzQ0MSw3IEBACiBQWVRIT04yCQk9IHB5dGhvbjIKIFBZVEhPTjMJCT0gcHl0aG9uMwogQ0hFQ0sJCT0gc3BhcnNlCitCQVNICQk9IGJhc2gKIAogQ0hFQ0tGTEFHUyAgICAgOj0gLURfX2xpbnV4X18gLURsaW51eCAtRF9fU1REQ19fIC1EdW5peCAtRF9fdW5peF9fIFwKIAkJICAtV2JpdHdpc2UgLVduby1yZXR1cm4tdm9pZCAtV25vLXVua25vd24tYXR0cmlidXRlICQoQ0YpCkBAIC00NzAsMTIgKzQ4MSwxMyBAQAogS0JVSUxEX0NGTEFHU19LRVJORUwgOj0KIEtCVUlMRF9BRkxBR1NfTU9EVUxFICA6PSAtRE1PRFVMRQogS0JVSUxEX0NGTEFHU19NT0RVTEUgIDo9IC1ETU9EVUxFCi1LQlVJTERfTERGTEFHU19NT0RVTEUgOj0gLVQgJChzcmN0cmVlKS9zY3JpcHRzL21vZHVsZS1jb21tb24ubGRzCitLQlVJTERfTERGTEFHU19NT0RVTEUgOj0KK2V4cG9ydCBLQlVJTERfTERTX01PRFVMRSA6PSAkKHNyY3RyZWUpL3NjcmlwdHMvbW9kdWxlLWNvbW1vbi5sZHMKIEtCVUlMRF9MREZMQUdTIDo9CiBHQ0NfUExVR0lOU19DRkxBR1MgOj0KIENMQU5HX0ZMQUdTIDo9CiAKLWV4cG9ydCBBUkNIIFNSQ0FSQ0ggQ09ORklHX1NIRUxMIEhPU1RDQyBLQlVJTERfSE9TVENGTEFHUyBDUk9TU19DT01QSUxFIEFTIExEIENDCitleHBvcnQgQVJDSCBTUkNBUkNIIENPTkZJR19TSEVMTCBCQVNIIEhPU1RDQyBLQlVJTERfSE9TVENGTEFHUyBDUk9TU19DT01QSUxFIEFTIExEIENDCiBleHBvcnQgQ1BQIEFSIE5NIFNUUklQIE9CSkNPUFkgT0JKRFVNUCBPQkpTSVpFIFBBSE9MRSBMRVggWUFDQyBBV0sgSU5TVEFMTEtFUk5FTAogZXhwb3J0IFBFUkwgUFlUSE9OIFBZVEhPTjIgUFlUSE9OMyBDSEVDSyBDSEVDS0ZMQUdTIE1BS0UgVVRTX01BQ0hJTkUgSE9TVENYWAogZXhwb3J0IEtCVUlMRF9IT1NUQ1hYRkxBR1MgS0JVSUxEX0hPU1RMREZMQUdTIEtCVUlMRF9IT1NUTERMSUJTIExERkxBR1NfTU9EVUxFCkBAIC01MDYsNiArNTE4LDcgQEAKIAkkKFEpcm0gLWYgLnRtcF9xdWlldF9yZWNvcmRtY291bnQKIAogUEhPTlkgKz0gb3V0cHV0bWFrZWZpbGUKKyMgQmVmb3JlIHN0YXJ0aW5nIG91dC1vZi10cmVlIGJ1aWxkLCBtYWtlIHN1cmUgdGhlIHNvdXJjZSB0cmVlIGlzIGNsZWFuLgogIyBvdXRwdXRtYWtlZmlsZSBnZW5lcmF0ZXMgYSBNYWtlZmlsZSBpbiB0aGUgb3V0cHV0IGRpcmVjdG9yeSwgaWYgdXNpbmcgYQogIyBzZXBhcmF0ZSBvdXRwdXQgZGlyZWN0b3J5LiBUaGlzIGFsbG93cyBjb252ZW5pZW50IHVzZSBvZiBtYWtlIGluIHRoZQogIyBvdXRwdXQgZGlyZWN0b3J5LgpAQCAtNTEzLDYgKzUyNiwxNSBAQAogIyBpZ25vcmUgd2hvbGUgb3V0cHV0IGRpcmVjdG9yeQogb3V0cHV0bWFrZWZpbGU6CiBpZmRlZiBidWlsZGluZ19vdXRfb2Zfc3JjdHJlZQorCSQoUSlpZiBbIC1mICQoc3JjdHJlZSkvLmNvbmZpZyAtbyBcCisJCSAtZCAkKHNyY3RyZWUpL2luY2x1ZGUvY29uZmlnIC1vIFwKKwkJIC1kICQoc3JjdHJlZSkvYXJjaC8kKFNSQ0FSQ0gpL2luY2x1ZGUvZ2VuZXJhdGVkIF07IHRoZW4gXAorCQllY2hvID4mMiAiKioqIjsgXAorCQllY2hvID4mMiAiKioqIFRoZSBzb3VyY2UgdHJlZSBpcyBub3QgY2xlYW4sIHBsZWFzZSBydW4gJ21ha2UkKGlmICQoZmluZHN0cmluZyBjb21tYW5kIGxpbmUsICQob3JpZ2luIEFSQ0gpKSwgQVJDSD0kKEFSQ0gpKSBtcnByb3BlciciOyBcCisJCWVjaG8gPiYyICIqKiogaW4gJChhYnNfc3JjdHJlZSkiO1wKKwkJZWNobyA+JjIgIioqKiI7IFwKKwkJZmFsc2U7IFwKKwlmaQogCSQoUSlsbiAtZnNuICQoc3JjdHJlZSkgc291cmNlCiAJJChRKSQoQ09ORklHX1NIRUxMKSAkKHNyY3RyZWUpL3NjcmlwdHMvbWttYWtlZmlsZSAkKHNyY3RyZWUpCiAJJChRKXRlc3QgLWUgLmdpdGlnbm9yZSB8fCBcCkBAIC01NDQsNyArNTY2LDcgQEAKICMgYW5kIGZyb20gaW5jbHVkZS9jb25maWcvYXV0by5jb25mLmNtZCB0byBkZXRlY3QgdGhlIGNvbXBpbGVyIHVwZ3JhZGUuCiBDQ19WRVJTSU9OX1RFWFQgPSAkKHNoZWxsICQoQ0MpIC0tdmVyc2lvbiAyPi9kZXYvbnVsbCB8IGhlYWQgLW4gMSkKIAotaWZlcSAoJChjb25maWctdGFyZ2V0cyksMSkKK2lmZGVmIGNvbmZpZy1idWlsZAogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICMgKmNvbmZpZyB0YXJnZXRzIG9ubHkgLSBtYWtlIHN1cmUgcHJlcmVxdWlzaXRlcyBhcmUgdXBkYXRlZCwgYW5kIGRlc2NlbmQKICMgaW4gc2NyaXB0cy9rY29uZmlnIHRvIG1ha2UgdGhlICpjb25maWcgdGFyZ2V0CkBAIC01NTUsMTMgKzU3NywxMyBAQAogaW5jbHVkZSBhcmNoLyQoU1JDQVJDSCkvTWFrZWZpbGUKIGV4cG9ydCBLQlVJTERfREVGQ09ORklHIEtCVUlMRF9LQ09ORklHIENDX1ZFUlNJT05fVEVYVAogCi1jb25maWc6IHNjcmlwdHNfYmFzaWMgb3V0cHV0bWFrZWZpbGUgRk9SQ0UKK2NvbmZpZzogb3V0cHV0bWFrZWZpbGUgc2NyaXB0c19iYXNpYyBGT1JDRQogCSQoUSkkKE1BS0UpICQoYnVpbGQpPXNjcmlwdHMva2NvbmZpZyAkQAogCi0lY29uZmlnOiBzY3JpcHRzX2Jhc2ljIG91dHB1dG1ha2VmaWxlIEZPUkNFCislY29uZmlnOiBvdXRwdXRtYWtlZmlsZSBzY3JpcHRzX2Jhc2ljIEZPUkNFCiAJJChRKSQoTUFLRSkgJChidWlsZCk9c2NyaXB0cy9rY29uZmlnICRACiAKLWVsc2UKK2Vsc2UgIyFjb25maWctYnVpbGQKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjIEJ1aWxkIHRhcmdldHMgb25seSAtIHRoaXMgaW5jbHVkZXMgdm1saW51eCwgYXJjaCBzcGVjaWZpYyB0YXJnZXRzLCBjbGVhbgogIyB0YXJnZXRzIGFuZCBvdGhlcnMuIEluIGdlbmVyYWwgYWxsIHRhcmdldHMgZXhjZXB0ICpjb25maWcgdGFyZ2V0cy4KQEAgLTYwNCw3ICs2MjYsNyBAQAogCiBleHBvcnQgS0JVSUxEX01PRFVMRVMgS0JVSUxEX0JVSUxUSU4KIAotaWZlcSAoJChkb3QtY29uZmlnKSwxKQoraWZkZWYgbmVlZC1jb25maWcKIGluY2x1ZGUgaW5jbHVkZS9jb25maWcvYXV0by5jb25mCiBlbmRpZgogCkBAIC02NDUsMTUgKzY2NywxMCBAQAogZXhwb3J0IFJFVFBPTElORV9DRkxBR1MKIGV4cG9ydCBSRVRQT0xJTkVfVkRTT19DRkxBR1MKIAotIyBUaGUgYXJjaCBNYWtlZmlsZSBjYW4gc2V0IEFSQ0hfe0NQUCxBLEN9RkxBR1MgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQKLSMgdmFsdWVzIG9mIHRoZSByZXNwZWN0aXZlIEtCVUlMRF8qIHZhcmlhYmxlcwotQVJDSF9DUFBGTEFHUyA6PQotQVJDSF9BRkxBR1MgOj0KLUFSQ0hfQ0ZMQUdTIDo9CiBpbmNsdWRlIGFyY2gvJChTUkNBUkNIKS9NYWtlZmlsZQogCi1pZmVxICgkKGRvdC1jb25maWcpLDEpCi1pZmVxICgkKG1heS1zeW5jLWNvbmZpZyksMSkKK2lmZGVmIG5lZWQtY29uZmlnCitpZmRlZiBtYXktc3luYy1jb25maWcKICMgUmVhZCBpbiBkZXBlbmRlbmNpZXMgdG8gYWxsIEtjb25maWcqIGZpbGVzLCBtYWtlIHN1cmUgdG8gcnVuIHN5bmNjb25maWcgaWYKICMgY2hhbmdlcyBhcmUgZGV0ZWN0ZWQuIFRoaXMgc2hvdWxkIGJlIGluY2x1ZGVkIGFmdGVyIGFyY2gvJChTUkNBUkNIKS9NYWtlZmlsZQogIyBiZWNhdXNlIHNvbWUgYXJjaGl0ZWN0dXJlcyBkZWZpbmUgQ1JPU1NfQ09NUElMRSB0aGVyZS4KQEAgLTY3Niw3ICs2OTMsNyBAQAogIyBUaGUgc3luY2NvbmZpZyBzaG91bGQgYmUgZXhlY3V0ZWQgb25seSBvbmNlIHRvIG1ha2UgYWxsIHRoZSB0YXJnZXRzLgogJS9hdXRvLmNvbmYgJS9hdXRvLmNvbmYuY21kICUvdHJpc3RhdGUuY29uZjogJChLQ09ORklHX0NPTkZJRykKIAkkKFEpJChNQUtFKSAtZiAkKHNyY3RyZWUpL01ha2VmaWxlIHN5bmNjb25maWcKLWVsc2UKK2Vsc2UgIyAhbWF5LXN5bmMtY29uZmlnCiAjIEV4dGVybmFsIG1vZHVsZXMgYW5kIHNvbWUgaW5zdGFsbCB0YXJnZXRzIG5lZWQgaW5jbHVkZS9nZW5lcmF0ZWQvYXV0b2NvbmYuaAogIyBhbmQgaW5jbHVkZS9jb25maWcvYXV0by5jb25mIGJ1dCBkbyBub3QgY2FyZSBpZiB0aGV5IGFyZSB1cC10by1kYXRlLgogIyBVc2UgYXV0by5jb25mIHRvIHRyaWdnZXIgdGhlIHRlc3QKQEAgLTY5Miw3ICs3MDksNyBAQAogCS9iaW4vZmFsc2UpCiAKIGVuZGlmICMgbWF5LXN5bmMtY29uZmlnCi1lbmRpZiAjICQoZG90LWNvbmZpZykKK2VuZGlmICMgbmVlZC1jb25maWcKIAogS0JVSUxEX0NGTEFHUwkrPSAkKGNhbGwgY2Mtb3B0aW9uLC1mbm8tZGVsZXRlLW51bGwtcG9pbnRlci1jaGVja3MsKQogS0JVSUxEX0NGTEFHUwkrPSAkKGNhbGwgY2MtZGlzYWJsZS13YXJuaW5nLGZyYW1lLWFkZHJlc3MsKQpAQCAtNzAwLDEwICs3MTcsMTIgQEAKIEtCVUlMRF9DRkxBR1MJKz0gJChjYWxsIGNjLWRpc2FibGUtd2FybmluZywgZm9ybWF0LW92ZXJmbG93KQogS0JVSUxEX0NGTEFHUwkrPSAkKGNhbGwgY2MtZGlzYWJsZS13YXJuaW5nLCBhZGRyZXNzLW9mLXBhY2tlZC1tZW1iZXIpCiAKLWlmZGVmIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRQotS0JVSUxEX0NGTEFHUwkrPSAtT3MKLWVsc2UKLUtCVUlMRF9DRkxBR1MgICArPSAtTzIKK2lmZGVmIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0UKK0tCVUlMRF9DRkxBR1MgKz0gLU8yCitlbHNlIGlmZGVmIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0VfTzMKK0tCVUlMRF9DRkxBR1MgKz0gLU8zCitlbHNlIGlmZGVmIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRQorS0JVSUxEX0NGTEFHUyArPSAtT3MKIGVuZGlmCiAKIGlmZGVmIENPTkZJR19DQ19ESVNBQkxFX1dBUk5fTUFZQkVfVU5JTklUSUFMSVpFRApAQCAtNzUxLDYgKzc3MCwxMSBAQAogIyBUaGVzZSB3YXJuaW5ncyBnZW5lcmF0ZWQgdG9vIG11Y2ggbm9pc2UgaW4gYSByZWd1bGFyIGJ1aWxkLgogIyBVc2UgbWFrZSBXPTEgdG8gZW5hYmxlIHRoZW0gKHNlZSBzY3JpcHRzL01ha2VmaWxlLmV4dHJhd2FybikKIEtCVUlMRF9DRkxBR1MgKz0gLVduby11bnVzZWQtYnV0LXNldC12YXJpYWJsZQorCisjIFdhcm4gYWJvdXQgdW5tYXJrZWQgZmFsbC10aHJvdWdocyBpbiBzd2l0Y2ggc3RhdGVtZW50LgorIyBEaXNhYmxlZCBmb3IgY2xhbmcgd2hpbGUgY29tbWVudCB0byBhdHRyaWJ1dGUgY29udmVyc2lvbiBoYXBwZW5zIGFuZAorIyBodHRwczovL2dpdGh1Yi5jb20vQ2xhbmdCdWlsdExpbnV4L2xpbnV4L2lzc3Vlcy82MzYgaXMgZGlzY3Vzc2VkLgorS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1XaW1wbGljaXQtZmFsbHRocm91Z2gsKQogZW5kaWYKIAogS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2MtZGlzYWJsZS13YXJuaW5nLCB1bnVzZWQtY29uc3QtdmFyaWFibGUpCkBAIC04NDUsOSArODY5LDYgQEAKICMgd2FybiBhYm91dCBDOTkgZGVjbGFyYXRpb24gYWZ0ZXIgc3RhdGVtZW50CiBLQlVJTERfQ0ZMQUdTICs9IC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50CiAKLSMgV2FybiBhYm91dCB1bm1hcmtlZCBmYWxsLXRocm91Z2hzIGluIHN3aXRjaCBzdGF0ZW1lbnQuCi1LQlVJTERfQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCwpCi0KICMgVmFyaWFibGUgTGVuZ3RoIEFycmF5cyAoVkxBcykgc2hvdWxkIG5vdCBiZSB1c2VkIGFueXdoZXJlIGluIHRoZSBrZXJuZWwKIEtCVUlMRF9DRkxBR1MgKz0gLVd2bGEKIApAQCAtOTAwLDExICs5MjEsMTAgQEAKIGluY2x1ZGUgc2NyaXB0cy9NYWtlZmlsZS5leHRyYXdhcm4KIGluY2x1ZGUgc2NyaXB0cy9NYWtlZmlsZS51YnNhbgogCi0jIEFkZCBhbnkgYXJjaCBvdmVycmlkZXMgYW5kIHVzZXIgc3VwcGxpZWQgQ1BQRkxBR1MsIEFGTEFHUyBhbmQgQ0ZMQUdTIGFzIHRoZQotIyBsYXN0IGFzc2lnbm1lbnRzCi1LQlVJTERfQ1BQRkxBR1MgKz0gJChBUkNIX0NQUEZMQUdTKSAkKEtDUFBGTEFHUykKLUtCVUlMRF9BRkxBR1MgICArPSAkKEFSQ0hfQUZMQUdTKSAgICQoS0FGTEFHUykKLUtCVUlMRF9DRkxBR1MgICArPSAkKEFSQ0hfQ0ZMQUdTKSAgICQoS0NGTEFHUykKKyMgQWRkIHVzZXIgc3VwcGxpZWQgQ1BQRkxBR1MsIEFGTEFHUyBhbmQgQ0ZMQUdTIGFzIHRoZSBsYXN0IGFzc2lnbm1lbnRzCitLQlVJTERfQ1BQRkxBR1MgKz0gJChLQ1BQRkxBR1MpCitLQlVJTERfQUZMQUdTICAgKz0gJChLQUZMQUdTKQorS0JVSUxEX0NGTEFHUyAgICs9ICQoS0NGTEFHUykKIAogS0JVSUxEX0xERkxBR1NfTU9EVUxFICs9IC0tYnVpbGQtaWQKIExERkxBR1Nfdm1saW51eCArPSAtLWJ1aWxkLWlkCkBAIC0xMDA3LDcgKzEwMjcsNyBAQAogCiBQSE9OWSArPSBwcmVwYXJlMAogCi1leHBvcnQgTU9ET1JERVIgOj0gJChpZiAkKEtCVUlMRF9FWFRNT0QpLCQoS0JVSUxEX0VYVE1PRCkvKW1vZHVsZXMub3JkZXIKK2V4cG9ydCBNT0RPUkRFUiA6PSAkKGV4dG1vZC1wcmVmaXgpbW9kdWxlcy5vcmRlcgogCiBpZmVxICgkKEtCVUlMRF9FWFRNT0QpLCkKIGNvcmUteQkJKz0ga2VybmVsLyBjZXJ0cy8gbW0vIGZzLyBpcGMvIHNlY3VyaXR5LyBjcnlwdG8vIGJsb2NrLwpAQCAtMTAyMCw2ICsxMDQwLDkgQEAKIAkJICAgICAkKHBhdHN1YnN0ICUvLCUsJChmaWx0ZXIgJS8sICQoaW5pdC0pICQoY29yZS0pIFwKIAkJCSQoZHJpdmVycy0pICQobmV0LSkgJChsaWJzLSkgJCh2aXJ0LSkpKSkKIAorYnVpbGQtZGlycwk6PSAkKHZtbGludXgtZGlycykKK2NsZWFuLWRpcnMJOj0gJCh2bWxpbnV4LWFsbGRpcnMpCisKIGluaXQteQkJOj0gJChwYXRzdWJzdCAlLywgJS9idWlsdC1pbi5hLCAkKGluaXQteSkpCiBjb3JlLXkJCTo9ICQocGF0c3Vic3QgJS8sICUvYnVpbHQtaW4uYSwgJChjb3JlLXkpKQogZHJpdmVycy15CTo9ICQocGF0c3Vic3QgJS8sICUvYnVpbHQtaW4uYSwgJChkcml2ZXJzLXkpKQpAQCAtMTA0Miw3ICsxMDY1LDcgQEAKICMgUmVjdXJzZSB1bnRpbCBhZGp1c3RfYXV0b2tzeW1zLnNoIGlzIHNhdGlzZmllZAogUEhPTlkgKz0gYXV0b2tzeW1zX3JlY3Vyc2l2ZQogaWZkZWYgQ09ORklHX1RSSU1fVU5VU0VEX0tTWU1TCi1hdXRva3N5bXNfcmVjdXJzaXZlOiAkKHZtbGludXgtZGVwcykgbW9kdWxlcy5vcmRlcgorYXV0b2tzeW1zX3JlY3Vyc2l2ZTogZGVzY2VuZCBtb2R1bGVzLm9yZGVyCiAJJChRKSQoQ09ORklHX1NIRUxMKSAkKHNyY3RyZWUpL3NjcmlwdHMvYWRqdXN0X2F1dG9rc3ltcy5zaCBcCiAJICAiJChNQUtFKSAtZiAkKHNyY3RyZWUpL01ha2VmaWxlIHZtbGludXgiCiBlbmRpZgpAQCAtMTA3NCwxNyArMTA5Nyw3IEBACiAKICMgVGhlIGFjdHVhbCBvYmplY3RzIGFyZSBnZW5lcmF0ZWQgd2hlbiBkZXNjZW5kaW5nLAogIyBtYWtlIHN1cmUgbm8gaW1wbGljaXQgcnVsZSBraWNrcyBpbgotJChzb3J0ICQodm1saW51eC1kZXBzKSk6ICQodm1saW51eC1kaXJzKSA7Ci0KLSMgSGFuZGxlIGRlc2NlbmRpbmcgaW50byBzdWJkaXJlY3RvcmllcyBsaXN0ZWQgaW4gJCh2bWxpbnV4LWRpcnMpCi0jIFByZXNldCBsb2NhbGUgdmFyaWFibGVzIHRvIHNwZWVkIHVwIHRoZSBidWlsZCBwcm9jZXNzLiBMaW1pdCBsb2NhbGUKLSMgdHdlYWtzIHRvIHRoaXMgc3BvdCB0byBhdm9pZCB3cm9uZyBsYW5ndWFnZSBzZXR0aW5ncyB3aGVuIHJ1bm5pbmcKLSMgbWFrZSBtZW51Y29uZmlnIGV0Yy4KLSMgRXJyb3IgbWVzc2FnZXMgc3RpbGwgYXBwZWFycyBpbiB0aGUgb3JpZ2luYWwgbGFuZ3VhZ2UKLQotUEhPTlkgKz0gJCh2bWxpbnV4LWRpcnMpCi0kKHZtbGludXgtZGlycyk6IHByZXBhcmUKLQkkKFEpJChNQUtFKSAkKGJ1aWxkKT0kQCBuZWVkLWJ1aWx0aW49MSBuZWVkLW1vZG9yZGVyPTEKKyQoc29ydCAkKHZtbGludXgtZGVwcykpOiBkZXNjZW5kIDsKIAogZmlsZWNoa19rZXJuZWwucmVsZWFzZSA9IFwKIAllY2hvICIkKEtFUk5FTFZFUlNJT04pJCQoJChDT05GSUdfU0hFTEwpICQoc3JjdHJlZSkvc2NyaXB0cy9zZXRsb2NhbHZlcnNpb24gJChzcmN0cmVlKSkiCkBAIC0xMTA2LDI0ICsxMTE5LDkgQEAKICMgYXJjaHByZXBhcmUgaXMgdXNlZCBpbiBhcmNoIE1ha2VmaWxlcyBhbmQgd2hlbiBwcm9jZXNzZWQgYXNtIHN5bWxpbmssCiAjIHZlcnNpb24uaCBhbmQgc2NyaXB0c19iYXNpYyBpcyBwcm9jZXNzZWQgLyBjcmVhdGVkLgogCi1QSE9OWSArPSBwcmVwYXJlIGFyY2hwcmVwYXJlIHByZXBhcmUzCitQSE9OWSArPSBwcmVwYXJlIGFyY2hwcmVwYXJlCiAKLSMgcHJlcGFyZTMgaXMgdXNlZCB0byBjaGVjayBpZiB3ZSBhcmUgYnVpbGRpbmcgaW4gYSBzZXBhcmF0ZSBvdXRwdXQgZGlyZWN0b3J5LAotIyBhbmQgaWYgc28gZG86Ci0jIDEpIENoZWNrIHRoYXQgbWFrZSBoYXMgbm90IGJlZW4gZXhlY3V0ZWQgaW4gdGhlIGtlcm5lbCBzcmMgJChzcmN0cmVlKQotcHJlcGFyZTM6IGluY2x1ZGUvY29uZmlnL2tlcm5lbC5yZWxlYXNlCi1pZmRlZiBidWlsZGluZ19vdXRfb2Zfc3JjdHJlZQotCUAkKGtlY2hvKSAnICBVc2luZyAkKHNyY3RyZWUpIGFzIHNvdXJjZSBmb3Iga2VybmVsJwotCSQoUSlpZiBbIC1mICQoc3JjdHJlZSkvLmNvbmZpZyAtbyBcCi0JCSAtZCAkKHNyY3RyZWUpL2luY2x1ZGUvY29uZmlnIC1vIFwKLQkJIC1kICQoc3JjdHJlZSkvYXJjaC8kKFNSQ0FSQ0gpL2luY2x1ZGUvZ2VuZXJhdGVkIF07IHRoZW4gXAotCQllY2hvID4mMiAiICAkKHNyY3RyZWUpIGlzIG5vdCBjbGVhbiwgcGxlYXNlIHJ1biAnbWFrZSBBUkNIPSQoQVJDSCkgbXJwcm9wZXInIjsgXAotCQllY2hvID4mMiAiICBpbiB0aGUgJyQoc3JjdHJlZSknIGRpcmVjdG9yeS4iO1wKLQkJL2Jpbi9mYWxzZTsgXAotCWZpOwotZW5kaWYKLQotYXJjaHByZXBhcmU6IGFyY2hoZWFkZXJzIGFyY2hzY3JpcHRzIHNjcmlwdHMgcHJlcGFyZTMgb3V0cHV0bWFrZWZpbGUgXAorYXJjaHByZXBhcmU6IG91dHB1dG1ha2VmaWxlIGFyY2hoZWFkZXJzIGFyY2hzY3JpcHRzIHNjcmlwdHMgaW5jbHVkZS9jb25maWcva2VybmVsLnJlbGVhc2UgXAogCWFzbS1nZW5lcmljICQodmVyc2lvbl9oKSAkKGF1dG9rc3ltc19oKSBpbmNsdWRlL2dlbmVyYXRlZC91dHNyZWxlYXNlLmgKIAogcHJlcGFyZTA6IGFyY2hwcmVwYXJlCkBAIC0xMjQ4LDcgKzEyNDYsNyBAQAogCSQoaWYgJCh3aWxkY2FyZCAkKG9ianRyZWUpLy5jb25maWcpLCwgJChlcnJvciBObyAuY29uZmlnIGV4aXN0cywgY29uZmlnIHlvdXIga2VybmVsIGZpcnN0ISkpCiAJJChRKWZpbmQgJChzcmN0cmVlKS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cyAtbmFtZSBjb25maWcgfCBcCiAJCXhhcmdzICQoc3JjdHJlZSkvc2NyaXB0cy9rY29uZmlnL21lcmdlX2NvbmZpZy5zaCAtbSAkKG9ianRyZWUpLy5jb25maWcKLQkrJChRKSQoTUFLRSkgLWYgJChzcmN0cmVlKS9NYWtlZmlsZSBvbGRkZWZjb25maWcKKwkkKFEpJChNQUtFKSAtZiAkKHNyY3RyZWUpL01ha2VmaWxlIG9sZGRlZmNvbmZpZwogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBEZXZpY2V0cmVlIGZpbGVzCkBAIC0xMjU5LDExICsxMjU3LDExIEBACiAKIGlmbmVxICgkKGR0c3RyZWUpLCkKIAotJS5kdGI6IHByZXBhcmUzIHNjcmlwdHNfZHRjCislLmR0YjogaW5jbHVkZS9jb25maWcva2VybmVsLnJlbGVhc2Ugc2NyaXB0c19kdGMKIAkkKFEpJChNQUtFKSAkKGJ1aWxkKT0kKGR0c3RyZWUpICQoZHRzdHJlZSkvJEAKIAogUEhPTlkgKz0gZHRicyBkdGJzX2luc3RhbGwgZHRfYmluZGluZ19jaGVjawotZHRicyBkdGJzX2NoZWNrOiBwcmVwYXJlMyBzY3JpcHRzX2R0YworZHRicyBkdGJzX2NoZWNrOiBpbmNsdWRlL2NvbmZpZy9rZXJuZWwucmVsZWFzZSBzY3JpcHRzX2R0YwogCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQoZHRzdHJlZSkKIAogZHRic19jaGVjazogZXhwb3J0IENIRUNLX0RUQlM9MQpAQCAtMTMwMiwxNyArMTMwMCwxNiBAQAogCiBQSE9OWSArPSBtb2R1bGVzCiBtb2R1bGVzOiAkKGlmICQoS0JVSUxEX0JVSUxUSU4pLHZtbGludXgpIG1vZHVsZXMub3JkZXIgbW9kdWxlcy5idWlsdGluCi0JQCQoa2VjaG8pICcgIEJ1aWxkaW5nIG1vZHVsZXMsIHN0YWdlIDIuJzsKIAkkKFEpJChNQUtFKSAtZiAkKHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUubW9kcG9zdAogCSQoUSkkKENPTkZJR19TSEVMTCkgJChzcmN0cmVlKS9zY3JpcHRzL21vZHVsZXMtY2hlY2suc2gKIAotbW9kdWxlcy5vcmRlcjogJCh2bWxpbnV4LWRpcnMpCi0JJChRKSQoQVdLKSAnIXhbJCQwXSsrJyAkKGFkZHN1ZmZpeCAvJEAsICQodm1saW51eC1kaXJzKSkgPiAkQAorbW9kdWxlcy5vcmRlcjogZGVzY2VuZAorCSQoUSkkKEFXSykgJyF4WyQkMF0rKycgJChhZGRzdWZmaXggLyRALCAkKGJ1aWxkLWRpcnMpKSA+ICRACiAKLW1vZGJ1aWx0aW4tZGlycyA6PSAkKGFkZHByZWZpeCBfbW9kYnVpbHRpbl8sICQodm1saW51eC1kaXJzKSkKK21vZGJ1aWx0aW4tZGlycyA6PSAkKGFkZHByZWZpeCBfbW9kYnVpbHRpbl8sICQoYnVpbGQtZGlycykpCiAKIG1vZHVsZXMuYnVpbHRpbjogJChtb2RidWlsdGluLWRpcnMpCi0JJChRKSQoQVdLKSAnIXhbJCQwXSsrJyAkKGFkZHN1ZmZpeCAvJEAsICQodm1saW51eC1kaXJzKSkgPiAkQAorCSQoUSkkKEFXSykgJyF4WyQkMF0rKycgJChhZGRzdWZmaXggLyRALCAkKGJ1aWxkLWRpcnMpKSA+ICRACiAKIFBIT05ZICs9ICQobW9kYnVpbHRpbi1kaXJzKQogIyB0cmlzdGF0ZS5jb25mIGlzIG5vdCBpbmNsdWRlZCBmcm9tIHRoaXMgTWFrZWZpbGUuIEFkZCBpdCBhcyBhIHByZXJlcXVpc2l0ZQpAQCAtMTM4NSwxMiArMTM4MiwxNCBAQAogCiAjIERpcmVjdG9yaWVzICYgZmlsZXMgcmVtb3ZlZCB3aXRoICdtYWtlIG1ycHJvcGVyJwogTVJQUk9QRVJfRElSUyAgKz0gaW5jbHVkZS9jb25maWcgaW5jbHVkZS9nZW5lcmF0ZWQgICAgICAgICAgXAotCQkgIGFyY2gvJChTUkNBUkNIKS9pbmNsdWRlL2dlbmVyYXRlZCAudG1wX29iamRpZmYKKwkJICBhcmNoLyQoU1JDQVJDSCkvaW5jbHVkZS9nZW5lcmF0ZWQgLnRtcF9vYmpkaWZmIFwKKwkJICBkZWJpYW4vIHNuYXAvIHRhci1pbnN0YWxsLwogTVJQUk9QRVJfRklMRVMgKz0gLmNvbmZpZyAuY29uZmlnLm9sZCAudmVyc2lvbiBcCiAJCSAgTW9kdWxlLnN5bXZlcnMgXAogCQkgIHNpZ25pbmdfa2V5LnBlbSBzaWduaW5nX2tleS5wcml2IHNpZ25pbmdfa2V5Lng1MDkJXAogCQkgIHg1MDkuZ2Vua2V5IGV4dHJhX2NlcnRpZmljYXRlcyBzaWduaW5nX2tleS54NTA5LmtleWlkCVwKLQkJICBzaWduaW5nX2tleS54NTA5LnNpZ25lciB2bWxpbnV4LWdkYi5weQorCQkgIHNpZ25pbmdfa2V5Lng1MDkuc2lnbmVyIHZtbGludXgtZ2RiLnB5IFwKKwkJICAqLnNwZWMKIAogIyBEaXJlY3RvcmllcyAmIGZpbGVzIHJlbW92ZWQgd2l0aCAnbWFrZSBkaXN0Y2xlYW4nCiBESVNUQ0xFQU5fRElSUyAgKz0KQEAgLTE0MDAsMTEgKzEzOTksOCBAQAogIwogY2xlYW46IHJtLWRpcnMgIDo9ICQoQ0xFQU5fRElSUykKIGNsZWFuOiBybS1maWxlcyA6PSAkKENMRUFOX0ZJTEVTKQotY2xlYW4tZGlycyAgICAgIDo9ICQoYWRkcHJlZml4IF9jbGVhbl8sIC4gJCh2bWxpbnV4LWFsbGRpcnMpKQogCi1QSE9OWSArPSAkKGNsZWFuLWRpcnMpIGNsZWFuIGFyY2hjbGVhbiB2bWxpbnV4Y2xlYW4KLSQoY2xlYW4tZGlycyk6Ci0JJChRKSQoTUFLRSkgJChjbGVhbik9JChwYXRzdWJzdCBfY2xlYW5fJSwlLCRAKQorUEhPTlkgKz0gYXJjaGNsZWFuIHZtbGludXhjbGVhbgogCiB2bWxpbnV4Y2xlYW46CiAJJChRKSQoQ09ORklHX1NIRUxMKSAkKHNyY3RyZWUpL3NjcmlwdHMvbGluay12bWxpbnV4LnNoIGNsZWFuCkBAIC0xNDQ1LDEzICsxNDQxLDExIEBACiAKICMgUGFja2FnaW5nIG9mIHRoZSBrZXJuZWwgdG8gdmFyaW91cyBmb3JtYXRzCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotcGFja2FnZS1kaXIJOj0gc2NyaXB0cy9wYWNrYWdlCiAKICVzcmMtcGtnOiBGT1JDRQotCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQocGFja2FnZS1kaXIpICRACisJJChRKSQoTUFLRSkgLWYgJChzcmN0cmVlKS9zY3JpcHRzL01ha2VmaWxlLnBhY2thZ2UgJEAKICVwa2c6IGluY2x1ZGUvY29uZmlnL2tlcm5lbC5yZWxlYXNlIEZPUkNFCi0JJChRKSQoTUFLRSkgJChidWlsZCk9JChwYWNrYWdlLWRpcikgJEAKLQorCSQoUSkkKE1BS0UpIC1mICQoc3JjdHJlZSkvc2NyaXB0cy9NYWtlZmlsZS5wYWNrYWdlICRACiAKICMgQnJpZWYgZG9jdW1lbnRhdGlvbiBvZiB0aGUgdHlwaWNhbCB0YXJnZXRzIHVzZWQKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNTA0LDYgKzE0OTgsOSBAQAogCUBlY2hvICAnICBoZWFkZXJkZXAgICAgICAgLSBEZXRlY3QgaW5jbHVzaW9uIGN5Y2xlcyBpbiBoZWFkZXJzJwogCUBlY2hvICAnICBjb2NjaWNoZWNrICAgICAgLSBDaGVjayB3aXRoIENvY2NpbmVsbGUnCiAJQGVjaG8gICcnCisJQGVjaG8gICdUb29sczonCisJQGVjaG8gICcgIG5zZGVwcyAgICAgICAgICAtIEdlbmVyYXRlIG1pc3Npbmcgc3ltYm9sIG5hbWVzcGFjZSBkZXBlbmRlbmNpZXMnCisJQGVjaG8gICcnCiAJQGVjaG8gICdLZXJuZWwgc2VsZnRlc3Q6JwogCUBlY2hvICAnICBrc2VsZnRlc3QgICAgICAgLSBCdWlsZCBhbmQgcnVuIGtlcm5lbCBzZWxmdGVzdCAocnVuIGFzIHJvb3QpJwogCUBlY2hvICAnICAgICAgICAgICAgICAgICAgICBCdWlsZCwgaW5zdGFsbCwgYW5kIGJvb3Qga2VybmVsIGJlZm9yZScKQEAgLTE1MTQsOCArMTUxMSwxMCBAQAogCUBlY2hvICAnJwogCUAkKGlmICQoZHRzdHJlZSksIFwKIAkJZWNobyAnRGV2aWNldHJlZTonOyBcCi0JCWVjaG8gJyogZHRicyAgICAgICAgICAgIC0gQnVpbGQgZGV2aWNlIHRyZWUgYmxvYnMgZm9yIGVuYWJsZWQgYm9hcmRzJzsgXAotCQllY2hvICcgIGR0YnNfaW5zdGFsbCAgICAtIEluc3RhbGwgZHRicyB0byAkKElOU1RBTExfRFRCU19QQVRIKSc7IFwKKwkJZWNobyAnKiBkdGJzICAgICAgICAgICAgIC0gQnVpbGQgZGV2aWNlIHRyZWUgYmxvYnMgZm9yIGVuYWJsZWQgYm9hcmRzJzsgXAorCQllY2hvICcgIGR0YnNfaW5zdGFsbCAgICAgLSBJbnN0YWxsIGR0YnMgdG8gJChJTlNUQUxMX0RUQlNfUEFUSCknOyBcCisJCWVjaG8gJyAgZHRfYmluZGluZ19jaGVjayAtIFZhbGlkYXRlIGRldmljZSB0cmVlIGJpbmRpbmcgZG9jdW1lbnRzJzsgXAorCQllY2hvICcgIGR0YnNfY2hlY2sgICAgICAgLSBWYWxpZGF0ZSBkZXZpY2UgdHJlZSBzb3VyY2UgZmlsZXMnO1wKIAkJZWNobyAnJykKIAogCUBlY2hvICdVc2Vyc3BhY2UgdG9vbHMgdGFyZ2V0czonCkBAIC0xNTIzLDcgKzE1MjIsNyBAQAogCUBlY2hvICcgIG9yICAiY2QgdG9vbHM7IG1ha2UgaGVscCInCiAJQGVjaG8gICcnCiAJQGVjaG8gICdLZXJuZWwgcGFja2FnaW5nOicKLQlAJChNQUtFKSAkKGJ1aWxkKT0kKHBhY2thZ2UtZGlyKSBoZWxwCisJQCQoTUFLRSkgLWYgJChzcmN0cmVlKS9zY3JpcHRzL01ha2VmaWxlLnBhY2thZ2UgaGVscAogCUBlY2hvICAnJwogCUBlY2hvICAnRG9jdW1lbnRhdGlvbiB0YXJnZXRzOicKIAlAJChNQUtFKSAtZiAkKHNyY3RyZWUpL0RvY3VtZW50YXRpb24vTWFrZWZpbGUgZG9jaGVscApAQCAtMTU0OCw3ICsxNTQ3LDcgQEAKIAlAZWNobyAgJyAgbWFrZSBDPTEgICBbdGFyZ2V0c10gQ2hlY2sgcmUtY29tcGlsZWQgYyBzb3VyY2Ugd2l0aCAkJENIRUNLIChzcGFyc2UgYnkgZGVmYXVsdCknCiAJQGVjaG8gICcgIG1ha2UgQz0yICAgW3RhcmdldHNdIEZvcmNlIGNoZWNrIG9mIGFsbCBjIHNvdXJjZSB3aXRoICQkQ0hFQ0snCiAJQGVjaG8gICcgIG1ha2UgUkVDT1JETUNPVU5UX1dBUk49MSBbdGFyZ2V0c10gV2FybiBhYm91dCBpZ25vcmVkIG1jb3VudCBzZWN0aW9ucycKLQlAZWNobyAgJyAgbWFrZSBXPW4gICBbdGFyZ2V0c10gRW5hYmxlIGV4dHJhIGdjYyBjaGVja3MsIG49MSwyLDMgd2hlcmUnCisJQGVjaG8gICcgIG1ha2UgVz1uICAgW3RhcmdldHNdIEVuYWJsZSBleHRyYSBidWlsZCBjaGVja3MsIG49MSwyLDMgd2hlcmUnCiAJQGVjaG8gICcJCTE6IHdhcm5pbmdzIHdoaWNoIG1heSBiZSByZWxldmFudCBhbmQgZG8gbm90IG9jY3VyIHRvbyBvZnRlbicKIAlAZWNobyAgJwkJMjogd2FybmluZ3Mgd2hpY2ggb2NjdXIgcXVpdGUgb2Z0ZW4gYnV0IG1heSBzdGlsbCBiZSByZWxldmFudCcKIAlAZWNobyAgJwkJMzogbW9yZSBvYnNjdXJlIHdhcm5pbmdzLCBjYW4gbW9zdCBsaWtlbHkgYmUgaWdub3JlZCcKQEAgLTE1NzcsNyArMTU3Niw3IEBACiBET0NfVEFSR0VUUyA6PSB4bWxkb2NzIGxhdGV4ZG9jcyBwZGZkb2NzIGh0bWxkb2NzIGVwdWJkb2NzIGNsZWFuZG9jcyBcCiAJICAgICAgIGxpbmtjaGVja2RvY3MgZG9jaGVscCByZWZjaGVja2RvY3MKIFBIT05ZICs9ICQoRE9DX1RBUkdFVFMpCi0kKERPQ19UQVJHRVRTKTogc2NyaXB0c19iYXNpYyBGT1JDRQorJChET0NfVEFSR0VUUyk6CiAJJChRKSQoTUFLRSkgJChidWlsZCk9RG9jdW1lbnRhdGlvbiAkQAogCiAjIE1pc2MKQEAgLTE2MjIsMTMgKzE2MjEsOSBAQAogCWVjaG8gIiAgICAgICAgICAgaXMgbWlzc2luZzsgbW9kdWxlcyB3aWxsIGhhdmUgbm8gZGVwZW5kZW5jaWVzIGFuZCBtb2R2ZXJzaW9ucy4iOyBcCiAJZWNobyApCiAKLW1vZHVsZS1kaXJzIDo9ICQoYWRkcHJlZml4IF9tb2R1bGVfLCQoS0JVSUxEX0VYVE1PRCkpCi1QSE9OWSArPSAkKG1vZHVsZS1kaXJzKSBtb2R1bGVzCi0kKG1vZHVsZS1kaXJzKTogcHJlcGFyZSAkKG9ianRyZWUpL01vZHVsZS5zeW12ZXJzCi0JJChRKSQoTUFLRSkgJChidWlsZCk9JChwYXRzdWJzdCBfbW9kdWxlXyUsJSwkQCkgbmVlZC1tb2RvcmRlcj0xCi0KLW1vZHVsZXM6ICQobW9kdWxlLWRpcnMpCi0JQCQoa2VjaG8pICcgIEJ1aWxkaW5nIG1vZHVsZXMsIHN0YWdlIDIuJzsKK2J1aWxkLWRpcnMgOj0gJChLQlVJTERfRVhUTU9EKQorUEhPTlkgKz0gbW9kdWxlcworbW9kdWxlczogZGVzY2VuZCAkKG9ianRyZWUpL01vZHVsZS5zeW12ZXJzCiAJJChRKSQoTUFLRSkgLWYgJChzcmN0cmVlKS9zY3JpcHRzL01ha2VmaWxlLm1vZHBvc3QKIAogUEhPTlkgKz0gbW9kdWxlc19pbnN0YWxsCkBAIC0xNjQ0LDE0ICsxNjM5LDEzIEBACiBfZW1vZGluc3RfcG9zdDogX2Vtb2RpbnN0XwogCSQoY2FsbCBjbWQsZGVwbW9kKQogCi1jbGVhbi1kaXJzIDo9ICQoYWRkcHJlZml4IF9jbGVhbl8sJChLQlVJTERfRVhUTU9EKSkKLQotUEhPTlkgKz0gJChjbGVhbi1kaXJzKSBjbGVhbgotJChjbGVhbi1kaXJzKToKLQkkKFEpJChNQUtFKSAkKGNsZWFuKT0kKHBhdHN1YnN0IF9jbGVhbl8lLCUsJEApCi0KK2NsZWFuLWRpcnMgOj0gJChLQlVJTERfRVhUTU9EKQogY2xlYW46IHJtLWZpbGVzIDo9ICQoS0JVSUxEX0VYVE1PRCkvTW9kdWxlLnN5bXZlcnMKIAorUEhPTlkgKz0gLworLzoKKwlAZWNobyA+JjIgJyIkKE1BS0UpIC8iIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIFBsZWFzZSB1c2UgIiQoTUFLRSkgLi8iIGluc3RlYWQuJworCiBQSE9OWSArPSBoZWxwCiBoZWxwOgogCUBlY2hvICAnICBCdWlsZGluZyBleHRlcm5hbCBtb2R1bGVzLicKQEAgLTE2NjUsNiArMTY1OSwyMSBAQAogUEhPTlkgKz0gcHJlcGFyZQogZW5kaWYgIyBLQlVJTERfRVhUTU9ECiAKKyMgSGFuZGxlIGRlc2NlbmRpbmcgaW50byBzdWJkaXJlY3RvcmllcyBsaXN0ZWQgaW4gJChidWlsZC1kaXJzKQorIyBQcmVzZXQgbG9jYWxlIHZhcmlhYmxlcyB0byBzcGVlZCB1cCB0aGUgYnVpbGQgcHJvY2Vzcy4gTGltaXQgbG9jYWxlCisjIHR3ZWFrcyB0byB0aGlzIHNwb3QgdG8gYXZvaWQgd3JvbmcgbGFuZ3VhZ2Ugc2V0dGluZ3Mgd2hlbiBydW5uaW5nCisjIG1ha2UgbWVudWNvbmZpZyBldGMuCisjIEVycm9yIG1lc3NhZ2VzIHN0aWxsIGFwcGVhcnMgaW4gdGhlIG9yaWdpbmFsIGxhbmd1YWdlCitQSE9OWSArPSBkZXNjZW5kICQoYnVpbGQtZGlycykKK2Rlc2NlbmQ6ICQoYnVpbGQtZGlycykKKyQoYnVpbGQtZGlycyk6IHByZXBhcmUKKwkkKFEpJChNQUtFKSAkKGJ1aWxkKT0kQCBzaW5nbGUtYnVpbGQ9JChzaW5nbGUtYnVpbGQpIG5lZWQtYnVpbHRpbj0xIG5lZWQtbW9kb3JkZXI9MQorCitjbGVhbi1kaXJzIDo9ICQoYWRkcHJlZml4IF9jbGVhbl8sICQoY2xlYW4tZGlycykpCitQSE9OWSArPSAkKGNsZWFuLWRpcnMpIGNsZWFuCiskKGNsZWFuLWRpcnMpOgorCSQoUSkkKE1BS0UpICQoY2xlYW4pPSQocGF0c3Vic3QgX2NsZWFuXyUsJSwkQCkKKwogY2xlYW46ICQoY2xlYW4tZGlycykKIAkkKGNhbGwgY21kLHJtZGlycykKIAkkKGNhbGwgY21kLHJtZmlsZXMpCkBAIC0xNjczLDcgKzE2ODIsNyBAQAogCQktbyAtbmFtZSAnKi5rby4qJyBcCiAJCS1vIC1uYW1lICcqLmR0YicgLW8gLW5hbWUgJyouZHRiLlMnIC1vIC1uYW1lICcqLmR0LnlhbWwnIFwKIAkJLW8gLW5hbWUgJyouZHdvJyAtbyAtbmFtZSAnKi5sc3QnIFwKLQkJLW8gLW5hbWUgJyouc3UnIC1vIC1uYW1lICcqLm1vZCcgXAorCQktbyAtbmFtZSAnKi5zdScgLW8gLW5hbWUgJyoubW9kJyAtbyAtbmFtZSAnKi5uc19kZXBzJyBcCiAJCS1vIC1uYW1lICcuKi5kJyAtbyAtbmFtZSAnLioudG1wJyAtbyAtbmFtZSAnKi5tb2QuYycgXAogCQktbyAtbmFtZSAnKi5sZXguYycgLW8gLW5hbWUgJyoudGFiLltjaF0nIFwKIAkJLW8gLW5hbWUgJyouYXNuMS5bY2hdJyBcCkBAIC0xNjg2LDExICsxNjk1LDIwIEBACiAjIEdlbmVyYXRlIHRhZ3MgZm9yIGVkaXRvcnMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBxdWlldF9jbWRfdGFncyA9IEdFTiAgICAgJEAKLSAgICAgIGNtZF90YWdzID0gJChDT05GSUdfU0hFTEwpICQoc3JjdHJlZSkvc2NyaXB0cy90YWdzLnNoICRACisgICAgICBjbWRfdGFncyA9ICQoQkFTSCkgJChzcmN0cmVlKS9zY3JpcHRzL3RhZ3Muc2ggJEAKIAogdGFncyBUQUdTIGNzY29wZSBndGFnczogRk9SQ0UKIAkkKGNhbGwgY21kLHRhZ3MpCiAKKyMgU2NyaXB0IHRvIGdlbmVyYXRlIG1pc3NpbmcgbmFtZXNwYWNlIGRlcGVuZGVuY2llcworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUEhPTlkgKz0gbnNkZXBzCisKK25zZGVwczogbW9kdWxlcworCSQoUSkkKE1BS0UpIC1mICQoc3JjdHJlZSkvc2NyaXB0cy9NYWtlZmlsZS5tb2Rwb3N0IG5zZGVwcworCSQoUSkkKENPTkZJR19TSEVMTCkgJChzcmN0cmVlKS9zY3JpcHRzLyRACisKICMgU2NyaXB0cyB0byBjaGVjayB2YXJpb3VzIHRoaW5ncyBmb3IgY29uc2lzdGVuY3kKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTE3MDcsNyArMTcyNSw3IEBACiAJCXwgeGFyZ3MgJChQRVJMKSAtdyAkKHNyY3RyZWUpL3NjcmlwdHMvY2hlY2t2ZXJzaW9uLnBsCiAKIGNvY2NpY2hlY2s6Ci0JJChRKSQoQ09ORklHX1NIRUxMKSAkKHNyY3RyZWUpL3NjcmlwdHMvJEAKKwkkKFEpJChCQVNIKSAkKHNyY3RyZWUpL3NjcmlwdHMvJEAKIAogbmFtZXNwYWNlY2hlY2s6CiAJJChQRVJMKSAkKHNyY3RyZWUpL3NjcmlwdHMvbmFtZXNwYWNlLnBsCkBAIC0xNzU1LDQ1ICsxNzczLDQ3IEBACiAKICMgU2luZ2xlIHRhcmdldHMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFNpbmdsZSB0YXJnZXRzIGFyZSBjb21wYXRpYmxlIHdpdGg6Ci0jIC0gYnVpbGQgd2l0aCBtaXhlZCBzb3VyY2UgYW5kIG91dHB1dAotIyAtIGJ1aWxkIHdpdGggc2VwYXJhdGUgb3V0cHV0IGRpciAnbWFrZSBPPS4uLicKLSMgLSBleHRlcm5hbCBtb2R1bGVzCisjIFRvIGJ1aWxkIGluZGl2aWR1YWwgZmlsZXMgaW4gc3ViZGlyZWN0b3JpZXMsIHlvdSBjYW4gZG8gbGlrZSB0aGlzOgogIwotIyAgdGFyZ2V0LWRpciA9PiB3aGVyZSB0byBzdG9yZSBvdXRwdXRmaWxlCi0jICBidWlsZC1kaXIgID0+IGRpcmVjdG9yeSBpbiBrZXJuZWwgc291cmNlIHRyZWUgdG8gdXNlCisjICAgbWFrZSBmb28vYmFyL2Jhei5zCisjCisjIFRoZSBzdXBwb3J0ZWQgc3VmZml4ZXMgZm9yIHNpbmdsZS10YXJnZXQgYXJlIGxpc3RlZCBpbiAnc2luZ2xlLXRhcmdldHMnCisjCisjIFRvIGJ1aWxkIG9ubHkgdW5kZXIgc3BlY2lmaWMgc3ViZGlyZWN0b3JpZXMsIHlvdSBjYW4gZG8gbGlrZSB0aGlzOgorIworIyAgIG1ha2UgZm9vL2Jhci9iYXovCiAKLWJ1aWxkLXRhcmdldCA9ICQoaWYgJChLQlVJTERfRVhUTU9EKSwgJChLQlVJTERfRVhUTU9EKS8pJEAKLWJ1aWxkLWRpciA9ICQocGF0c3Vic3QgJS8sJSwkKGRpciAkKGJ1aWxkLXRhcmdldCkpKQoraWZkZWYgc2luZ2xlLWJ1aWxkCiAKLSUuaTogcHJlcGFyZSBGT1JDRQotCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQoYnVpbGQtZGlyKSAkKGJ1aWxkLXRhcmdldCkKLSUubGw6IHByZXBhcmUgRk9SQ0UKLQkkKFEpJChNQUtFKSAkKGJ1aWxkKT0kKGJ1aWxkLWRpcikgJChidWlsZC10YXJnZXQpCi0lLmxzdDogcHJlcGFyZSBGT1JDRQotCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQoYnVpbGQtZGlyKSAkKGJ1aWxkLXRhcmdldCkKLSUubzogcHJlcGFyZSBGT1JDRQotCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQoYnVpbGQtZGlyKSAkKGJ1aWxkLXRhcmdldCkKLSUuczogcHJlcGFyZSBGT1JDRQotCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQoYnVpbGQtZGlyKSAkKGJ1aWxkLXRhcmdldCkKLSUuc3ltdHlwZXM6IHByZXBhcmUgRk9SQ0UKLQkkKFEpJChNQUtFKSAkKGJ1aWxkKT0kKGJ1aWxkLWRpcikgJChidWlsZC10YXJnZXQpCitzaW5nbGUtYWxsIDo9ICQoZmlsdGVyICQoc2luZ2xlLXRhcmdldHMpLCAkKE1BS0VDTURHT0FMUykpCisKKyMgLmtvIGlzIHNwZWNpYWwgYmVjYXVzZSBtb2Rwb3N0IGlzIG5lZWRlZAorc2luZ2xlLWtvIDo9ICQoc29ydCAkKGZpbHRlciAlLmtvLCAkKHNpbmdsZS1hbGwpKSkKK3NpbmdsZS1uby1rbyA6PSAkKHNvcnQgJChwYXRzdWJzdCAlLmtvLCUubW9kLCAkKHNpbmdsZS1hbGwpKSkKKworJChzaW5nbGUta28pOiBzaW5nbGVfbW9kcG9zdAorCUA6CiskKHNpbmdsZS1uby1rbyk6IGRlc2NlbmQKKwlAOgorCiBpZmVxICgkKEtCVUlMRF9FWFRNT0QpLCkKLSMgRm9yIHRoZSBzaW5nbGUgYnVpbGQgb2YgYW4gaW4tdHJlZSBtb2R1bGUsIHVzZSBhIHRlbXBvcmFyeSBmaWxlIHRvIGF2b2lkCisjIEZvciB0aGUgc2luZ2xlIGJ1aWxkIG9mIGluLXRyZWUgbW9kdWxlcywgdXNlIGEgdGVtcG9yYXJ5IGZpbGUgdG8gYXZvaWQKICMgdGhlIHNpdHVhdGlvbiBvZiBtb2R1bGVzX2luc3RhbGwgaW5zdGFsbGluZyBhbiBpbnZhbGlkIG1vZHVsZXMub3JkZXIuCi0lLmtvOiBNT0RPUkRFUiA6PSAubW9kdWxlcy50bXAKK01PRE9SREVSIDo9IC5tb2R1bGVzLnRtcAogZW5kaWYKLSUua286IHByZXBhcmUgRk9SQ0UKLQkkKFEpJChNQUtFKSAkKGJ1aWxkKT0kKGJ1aWxkLWRpcikgJChidWlsZC10YXJnZXQ6LmtvPS5tb2QpCi0JJChRKWVjaG8gJChidWlsZC10YXJnZXQpID4gJChNT0RPUkRFUikKKworUEhPTlkgKz0gc2luZ2xlX21vZHBvc3QKK3NpbmdsZV9tb2Rwb3N0OiAkKHNpbmdsZS1uby1rbykKKwkkKFEpeyAkKGZvcmVhY2ggbSwgJChzaW5nbGUta28pLCBlY2hvICQoZXh0bW9kLXByZWZpeCkkbTspIH0gPiAkKE1PRE9SREVSKQogCSQoUSkkKE1BS0UpIC1mICQoc3JjdHJlZSkvc2NyaXB0cy9NYWtlZmlsZS5tb2Rwb3N0CiAKLSMgTW9kdWxlcwotUEhPTlkgKz0gLwotLzogLi8KK0tCVUlMRF9NT0RVTEVTIDo9IDEKIAotJS86IHByZXBhcmUgRk9SQ0UKLQkkKFEpJChNQUtFKSBLQlVJTERfTU9EVUxFUz0xICQoYnVpbGQpPSQoYnVpbGQtZGlyKSBuZWVkLW1vZG9yZGVyPTEKK2V4cG9ydCBLQlVJTERfU0lOR0xFX1RBUkdFVFMgOj0gJChhZGRwcmVmaXggJChleHRtb2QtcHJlZml4KSwgJChzaW5nbGUtbm8ta28pKQorCitzaW5nbGUtYnVpbGQgPSAkKGlmICQoZmlsdGVyLW91dCAkQC8sICQoc2luZ2xlLW5vLWtvKSksMSkKKworZW5kaWYKIAogIyBGSVhNRSBTaG91bGQgZ28gaW50byBhIG1ha2UubGliIG9yIHNvbWV0aGluZwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE4MTQsOSArMTgzNCw5IEBACiAKIC1pbmNsdWRlICQoZm9yZWFjaCBmLCQoZXhpc3RpbmctdGFyZ2V0cyksJChkaXIgJChmKSkuJChub3RkaXIgJChmKSkuY21kKQogCi1lbmRpZiAgICMgaWZlcSAoJChjb25maWctdGFyZ2V0cyksMSkKLWVuZGlmICAgIyBpZmVxICgkKG1peGVkLXRhcmdldHMpLDEpCi1lbmRpZiAgICMgbmVlZC1zdWItbWFrZQorZW5kaWYgIyBjb25maWctdGFyZ2V0cworZW5kaWYgIyBtaXhlZC1idWlsZAorZW5kaWYgIyBuZWVkLXN1Yi1tYWtlCiAKIFBIT05ZICs9IEZPUkNFCiBGT1JDRToKZGlmZiAtLWdpdCBhL2FyY2gvS2NvbmZpZyBiL2FyY2gvS2NvbmZpZwppbmRleCA2YmFlZGFiLi41ZjhhNWQ4IDEwMDY0NAotLS0gYS9hcmNoL0tjb25maWcKKysrIGIvYXJjaC9LY29uZmlnCkBAIC0yOTIsNiArMjkyLDEzIEBACiAJICBzdGlsbCBzdXBwb3J0IDMyLWJpdCBvZmZfdC4gVGhpcyBvcHRpb24gaXMgZW5hYmxlZCBmb3IgYWxsIHN1Y2gKIAkgIGFyY2hpdGVjdHVyZXMgZXhwbGljaXRseS4KIAorY29uZmlnIEhBVkVfQVNNX01PRFZFUlNJT05TCisJYm9vbAorCWhlbHAKKwkgIFRoaXMgc3ltYm9sIHNob3VsZCBiZSBzZWxlY3RlZCBieSBhbiBhcmNoaXRlY3VyZSBpZiBpdCBwcm92aWRlcworCSAgPGFzbS9hc20tcHJvdG90eXBlcy5oPiB0byBzdXBwb3J0IHRoZSBtb2R1bGUgdmVyc2lvbmluZyBmb3Igc3ltYm9scworCSAgZXhwb3J0ZWQgZnJvbSBhc3NlbWJseSBjb2RlLgorCiBjb25maWcgSEFWRV9SRUdTX0FORF9TVEFDS19BQ0NFU1NfQVBJCiAJYm9vbAogCWhlbHAKQEAgLTY5OSw2ICs3MDYsMTcgQEAKIAkgIGFuZCB2aWNlLXZlcnNhIDMyLWJpdCBhcHBsaWNhdGlvbnMgdG8gY2FsbCA2NC1iaXQgbW1hcCgpLgogCSAgUmVxdWlyZWQgZm9yIGFwcGxpY2F0aW9ucyBkb2luZyBkaWZmZXJlbnQgYml0bmVzcyBzeXNjYWxscy4KIAorIyBUaGlzIGFsbG93cyB0byB1c2UgYSBzZXQgb2YgZ2VuZXJpYyBmdW5jdGlvbnMgdG8gZGV0ZXJtaW5lIG1tYXAgYmFzZQorIyBhZGRyZXNzIGJ5IGdpdmluZyBwcmlvcml0eSB0byB0b3AtZG93biBzY2hlbWUgb25seSBpZiB0aGUgcHJvY2VzcworIyBpcyBub3QgaW4gbGVnYWN5IG1vZGUgKGNvbXBhdCB0YXNrLCB1bmxpbWl0ZWQgc3RhY2sgc2l6ZSBvcgorIyBzeXNjdGxfbGVnYWN5X3ZhX2xheW91dCkuCisjIEFyY2hpdGVjdHVyZSB0aGF0IHNlbGVjdHMgdGhpcyBvcHRpb24gY2FuIHByb3ZpZGUgaXRzIG93biB2ZXJzaW9uIG9mOgorIyAtIFNUQUNLX1JORF9NQVNLCitjb25maWcgQVJDSF9XQU5UX0RFRkFVTFRfVE9QRE9XTl9NTUFQX0xBWU9VVAorCWJvb2wKKwlkZXBlbmRzIG9uIE1NVQorCXNlbGVjdCBBUkNIX0hBU19FTEZfUkFORE9NSVpFCisKIGNvbmZpZyBIQVZFX0NPUFlfVEhSRUFEX1RMUwogCWJvb2wKIAloZWxwCkBAIC03OTMsOSArODExLDYgQEAKIAkgIFRoaXMgaXMgcmVsZXZhbnQgb24gYWxsIDMyLWJpdCBhcmNoaXRlY3R1cmVzLCBhbmQgNjQtYml0IGFyY2hpdGVjdHVyZXMKIAkgIGFzIHBhcnQgb2YgY29tcGF0IHN5c2NhbGwgaGFuZGxpbmcuCiAKLWNvbmZpZyBBUkNIX05PX0NPSEVSRU5UX0RNQV9NTUFQCi0JYm9vbAotCiBjb25maWcgQVJDSF9OT19QUkVFTVBUCiAJYm9vbAogCkBAIC05NDIsNiArOTU3LDkgQEAKIAkgIHdlbGwgYXMgY29tcGF0aWJsZSBOTSBhbmQgT0JKQ09QWSB1dGlsaXRpZXMgKGxsdm0tbm0gYW5kIGxsdm0tb2JqY29weQogCSAgYXJlIGNvbXBhdGlibGUpLgogCitjb25maWcgQVJDSF9IQVNfTUVNX0VOQ1JZUFQKKwlib29sCisKIHNvdXJjZSAia2VybmVsL2djb3YvS2NvbmZpZyIKIAogc291cmNlICJzY3JpcHRzL2djYy1wbHVnaW5zL0tjb25maWciCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL0tjb25maWcgYi9hcmNoL2FscGhhL0tjb25maWcKaW5kZXggZjdiMTliOC4uZWYxNzkwMyAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9LY29uZmlnCisrKyBiL2FyY2gvYWxwaGEvS2NvbmZpZwpAQCAtMTEsNiArMTEsNyBAQAogCXNlbGVjdCBQQ0lfRE9NQUlOUyBpZiBQQ0kKIAlzZWxlY3QgUENJX1NZU0NBTEwgaWYgUENJCiAJc2VsZWN0IEhBVkVfQU9VVAorCXNlbGVjdCBIQVZFX0FTTV9NT0RWRVJTSU9OUwogCXNlbGVjdCBIQVZFX0lERQogCXNlbGVjdCBIQVZFX09QUk9GSUxFCiAJc2VsZWN0IEhBVkVfUENTUEtSX1BMQVRGT1JNCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IDcxZGVkM2IuLmViOTFmMWUgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vcGdhbGxvYy5oCkBAIC01Myw2ICs1Myw0IEBAIHBtZF9mcmVlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwbWRfdCAqcG1kKQogCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwbWQpOwogfQogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpCWRvIHsgfSB3aGlsZSAoMCkKLQogI2VuZGlmIC8qIF9BTFBIQV9QR0FMTE9DX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggODljMjAzMi4uMDY1YjU3ZiAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKKysrIGIvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTM1OSwxMSArMzU5LDYgQEAgZXh0ZXJuIHZvaWQgcGFnaW5nX2luaXQodm9pZCk7CiAKICNpbmNsdWRlIDxhc20tZ2VuZXJpYy9wZ3RhYmxlLmg+CiAKLS8qCi0gKiBObyBwYWdlIHRhYmxlIGNhY2hlcyB0byBpbml0aWFsaXNlCi0gKi8KLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkJZG8geyB9IHdoaWxlICgwKQotCiAvKiBXZSBoYXZlIG91ciBvd24gZ2V0X3VubWFwcGVkX2FyZWEgdG8gY29wZSB3aXRoIEFERFJfTElNSVRfMzJCSVQuICAqLwogI2RlZmluZSBIQVZFX0FSQ0hfVU5NQVBQRURfQVJFQQogCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vbW1hbi5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL21tYW4uaAppbmRleCBhYzIzMzc5Li5hMThlYzdmIDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vbW1hbi5oCisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS91YXBpL2FzbS9tbWFuLmgKQEAgLTY4LDYgKzY4LDkgQEAKICNkZWZpbmUgTUFEVl9XSVBFT05GT1JLIDE4CQkvKiBaZXJvIG1lbW9yeSBvbiBmb3JrLCBjaGlsZCBvbmx5ICovCiAjZGVmaW5lIE1BRFZfS0VFUE9ORk9SSyAxOQkJLyogVW5kbyBNQURWX1dJUEVPTkZPUksgKi8KIAorI2RlZmluZSBNQURWX0NPTEQJMjAJCS8qIGRlYWN0aXZhdGUgdGhlc2UgcGFnZXMgKi8KKyNkZWZpbmUgTUFEVl9QQUdFT1VUCTIxCQkvKiByZWNsYWltIHRoZXNlIHBhZ2VzICovCisKIC8qIGNvbXBhdGliaWxpdHkgZmxhZ3MgKi8KICNkZWZpbmUgTUFQX0ZJTEUJMAogCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2tlcm5lbC9wY2lfaW9tbXUuYyBiL2FyY2gvYWxwaGEva2VybmVsL3BjaV9pb21tdS5jCmluZGV4IDI0MjEwODQuLjdmMTkyNWEgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEva2VybmVsL3BjaV9pb21tdS5jCisrKyBiL2FyY2gvYWxwaGEva2VybmVsL3BjaV9pb21tdS5jCkBAIC05NTUsNSArOTU1LDcgQEAgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIGFscGhhX3BjaV9vcHMgPSB7CiAJLm1hcF9zZwkJCT0gYWxwaGFfcGNpX21hcF9zZywKIAkudW5tYXBfc2cJCT0gYWxwaGFfcGNpX3VubWFwX3NnLAogCS5kbWFfc3VwcG9ydGVkCQk9IGFscGhhX3BjaV9zdXBwb3J0ZWQsCisJLm1tYXAJCQk9IGRtYV9jb21tb25fbW1hcCwKKwkuZ2V0X3NndGFibGUJCT0gZG1hX2NvbW1vbl9nZXRfc2d0YWJsZSwKIH07CiBFWFBPUlRfU1lNQk9MKGFscGhhX3BjaV9vcHMpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcmMvTWFrZWZpbGUgYi9hcmNoL2FyYy9NYWtlZmlsZQppbmRleCBlZTZkMTE4Li5mMWM0NGNjIDEwMDY0NAotLS0gYS9hcmNoL2FyYy9NYWtlZmlsZQorKysgYi9hcmNoL2FyYy9NYWtlZmlsZQpAQCAtNDgsMTQgKzQ4LDYgQEAKIGNmaSA6PSAkKGNhbGwgYXMtaW5zdHIsLmNmaV9zdGFydHByb2Ncbi5jZmlfZW5kcHJvYywtREFSQ19EVzJfVU5XSU5EX0FTX0NGSSkKIGNmbGFncy0kKENPTkZJR19BUkNfRFcyX1VOV0lORCkJCSs9IC1mYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMgJChjZmkpCiAKLWlmbmRlZiBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUKLSMgR2VuZXJpYyBidWlsZCBzeXN0ZW0gdXNlcyAtTzIsIHdlIHdhbnQgLU8zCi0jIE5vdGU6IE5vIG5lZWQgdG8gYWRkIHRvIGNmbGFncy15IGFzIHRoYXQgaGFwcGVucyBhbnl3YXlzCi0jCi0jIERpc2FibGUgdGhlIGZhbHNlIG1heWJlLXVuaW5pdGlhbGl6ZWQgd2FyaW5ncyBnY2Mgc3BpdHMgb3V0IGF0IC1PMwotQVJDSF9DRkxBR1MgKz0gLU8zICQoY2FsbCBjYy1kaXNhYmxlLXdhcm5pbmcsbWF5YmUtdW5pbml0aWFsaXplZCwpCi1lbmRpZgotCiAjIHNtYWxsIGRhdGEgaXMgZGVmYXVsdCBmb3IgZWxmMzIgdG9vbC1jaGFpbi4gSWYgbm90IHVzYWJsZSwgZGlzYWJsZSBpdAogIyBUaGlzIGFsc28gYWxsb3dzIHJlcHVycG9zaW5nIEdQIGFzIHNjcmF0Y2ggcmVnIHRvIGdjYyByZWcgYWxsb2NhdG9yCiBkaXNhYmxlX3NtYWxsX2RhdGEgOj0geQpkaWZmIC0tZ2l0IGEvYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnIGIvYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnCmluZGV4IGUzMWE4ZWIuLjAwMTYxNDkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZworKysgYi9hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWcKQEAgLTksNiArOSw3IEBACiAjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAogIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFX08zPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfUEVSRl9FVkVOVFM9eQogIyBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlMgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnIGIvYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnCmluZGV4IGUwZTg1NjcuLjViMDMxNTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX2RlZmNvbmZpZworKysgYi9hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWcKQEAgLTksNiArOSw3IEBACiAjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAogIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFX08zPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfUEVSRl9FVkVOVFM9eQogIyBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlMgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZyBiL2FyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWcKaW5kZXggZmNiYzk1Mi4uZDRlZWMzOSAxMDA2NDQKLS0tIGEvYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZworKysgYi9hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnCkBAIC05LDYgKzksNyBAQAogIyBDT05GSUdfVVRTX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRV9PMz15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1BFUkZfRVZFTlRTPXkKICMgQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJjL2NvbmZpZ3MvaGFwc19oc19kZWZjb25maWcgYi9hcmNoL2FyYy9jb25maWdzL2hhcHNfaHNfZGVmY29uZmlnCmluZGV4IDQzNmYyMTMuLjQ3ZmY4YTkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJjL2NvbmZpZ3MvaGFwc19oc19kZWZjb25maWcKKysrIGIvYXJjaC9hcmMvY29uZmlncy9oYXBzX2hzX2RlZmNvbmZpZwpAQCAtMTAsNiArMTAsNyBAQAogIyBDT05GSUdfVVRTX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRV9PMz15CiBDT05GSUdfRVhQRVJUPXkKIENPTkZJR19QRVJGX0VWRU5UUz15CiAjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJjL2NvbmZpZ3MvaGFwc19oc19zbXBfZGVmY29uZmlnIGIvYXJjaC9hcmMvY29uZmlncy9oYXBzX2hzX3NtcF9kZWZjb25maWcKaW5kZXggMzNhNzg3Yy4uOTY4NWZkNSAxMDA2NDQKLS0tIGEvYXJjaC9hcmMvY29uZmlncy9oYXBzX2hzX3NtcF9kZWZjb25maWcKKysrIGIvYXJjaC9hcmMvY29uZmlncy9oYXBzX2hzX3NtcF9kZWZjb25maWcKQEAgLTEwLDYgKzEwLDcgQEAKICMgQ09ORklHX1VUU19OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QSURfTlMgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0VfTzM9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19QRVJGX0VWRU5UUz15CiAjIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUyBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnIGIvYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZwppbmRleCA0MDMxMjVkLi45YjlhNzQ0IDEwMDY0NAotLS0gYS9hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJjL2NvbmZpZ3MvaHNka19kZWZjb25maWcKQEAgLTksNiArOSw3IEBACiAjIENPTkZJR19QSURfTlMgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKIENPTkZJR19CTEtfREVWX1JBTT15CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFX08zPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfUEVSRl9FVkVOVFM9eQogIyBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlMgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcmMvY29uZmlncy9ucHNfZGVmY29uZmlnIGIvYXJjaC9hcmMvY29uZmlncy9ucHNfZGVmY29uZmlnCmluZGV4IGYwYTA3N2MuLjU5NzhkNGQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJjL2NvbmZpZ3MvbnBzX2RlZmNvbmZpZworKysgYi9hcmNoL2FyYy9jb25maWdzL25wc19kZWZjb25maWcKQEAgLTYsNiArNiw3IEBACiBDT05GSUdfSUtDT05GSUc9eQogQ09ORklHX0lLQ09ORklHX1BST0M9eQogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0VfTzM9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKICMgQ09ORklHX0VQT0xMIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJR05BTEZEIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbV83MDBfZGVmY29uZmlnIGIvYXJjaC9hcmMvY29uZmlncy9uc2ltXzcwMF9kZWZjb25maWcKaW5kZXggZGUzOThjN2IuLjJiOWIxMTQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbV83MDBfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbV83MDBfZGVmY29uZmlnCkBAIC0xMCw2ICsxMCw3IEBACiAjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAogIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFX08zPXkKIENPTkZJR19LQUxMU1lNU19BTEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19QRVJGX0VWRU5UUz15CmRpZmYgLS1naXQgYS9hcmNoL2FyYy9jb25maWdzL25zaW1faHNfZGVmY29uZmlnIGIvYXJjaC9hcmMvY29uZmlncy9uc2ltX2hzX2RlZmNvbmZpZwppbmRleCAyZGJkMzRhLi5iYWIzZGQyIDEwMDY0NAotLS0gYS9hcmNoL2FyYy9jb25maWdzL25zaW1faHNfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbV9oc19kZWZjb25maWcKQEAgLTEwLDYgKzEwLDcgQEAKICMgQ09ORklHX1VUU19OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QSURfTlMgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0VfTzM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1BFUkZfRVZFTlRTPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbV9oc19zbXBfZGVmY29uZmlnIGIvYXJjaC9hcmMvY29uZmlncy9uc2ltX2hzX3NtcF9kZWZjb25maWcKaW5kZXggYzcxMzVmMS4uOTBkMmQ1MCAxMDA2NDQKLS0tIGEvYXJjaC9hcmMvY29uZmlncy9uc2ltX2hzX3NtcF9kZWZjb25maWcKKysrIGIvYXJjaC9hcmMvY29uZmlncy9uc2ltX2hzX3NtcF9kZWZjb25maWcKQEAgLTgsNiArOCw3IEBACiAjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAogIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFX08zPXkKIENPTkZJR19LQUxMU1lNU19BTEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19QRVJGX0VWRU5UUz15CmRpZmYgLS1naXQgYS9hcmNoL2FyYy9jb25maWdzL25zaW1vc2NpX2RlZmNvbmZpZyBiL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbW9zY2lfZGVmY29uZmlnCmluZGV4IDM4NWE3MWQuLjVkZDQ3MGIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbW9zY2lfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbW9zY2lfZGVmY29uZmlnCkBAIC0xMCw2ICsxMCw3IEBACiAjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAogIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFX08zPXkKIENPTkZJR19LQUxMU1lNU19BTEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19QRVJGX0VWRU5UUz15CmRpZmYgLS1naXQgYS9hcmNoL2FyYy9jb25maWdzL25zaW1vc2NpX2hzX2RlZmNvbmZpZyBiL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbW9zY2lfaHNfZGVmY29uZmlnCmluZGV4IDI0OGEyYzMuLjM1MzJlODYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbW9zY2lfaHNfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbW9zY2lfaHNfZGVmY29uZmlnCkBAIC0xMCw2ICsxMCw3IEBACiAjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAogIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFX08zPXkKIENPTkZJR19LQUxMU1lNU19BTEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19QRVJGX0VWRU5UUz15CmRpZmYgLS1naXQgYS9hcmNoL2FyYy9jb25maWdzL25zaW1vc2NpX2hzX3NtcF9kZWZjb25maWcgYi9hcmNoL2FyYy9jb25maWdzL25zaW1vc2NpX2hzX3NtcF9kZWZjb25maWcKaW5kZXggMWE0YmM3Yi4uZDkwNDQ4YiAxMDA2NDQKLS0tIGEvYXJjaC9hcmMvY29uZmlncy9uc2ltb3NjaV9oc19zbXBfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJjL2NvbmZpZ3MvbnNpbW9zY2lfaHNfc21wX2RlZmNvbmZpZwpAQCAtOCw2ICs4LDcgQEAKICMgQ09ORklHX1VUU19OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QSURfTlMgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0VfTzM9eQogQ09ORklHX1BFUkZfRVZFTlRTPXkKICMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAogQ09ORklHX0tQUk9CRVM9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcmMvY29uZmlncy90YjEweF9kZWZjb25maWcgYi9hcmNoL2FyYy9jb25maWdzL3RiMTB4X2RlZmNvbmZpZwppbmRleCBkYzczOWJkLi4zYTEzOGY4IDEwMDY0NAotLS0gYS9hcmNoL2FyYy9jb25maWdzL3RiMTB4X2RlZmNvbmZpZworKysgYi9hcmNoL2FyYy9jb25maWdzL3RiMTB4X2RlZmNvbmZpZwpAQCAtMTQsNiArMTQsNyBAQAogQ09ORklHX0lOSVRSQU1GU19ST09UX1VJRD0yMTAwCiBDT05GSUdfSU5JVFJBTUZTX1JPT1RfR0lEPTUwMQogIyBDT05GSUdfUkRfR1pJUCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFX08zPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CiBDT05GSUdfS0FMTFNZTVNfQUxMPXkKICMgQ09ORklHX0FJTyBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZyBiL2FyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnCmluZGV4IDBjM2IyMTQuLmQ3Yzg1OGQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnCkBAIC00LDYgKzQsNyBAQAogQ09ORklHX0lLQ09ORklHPXkKIENPTkZJR19JS0NPTkZJR19QUk9DPXkKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFX08zPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfUEVSRl9FVkVOVFM9eQogIyBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlMgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnIGIvYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnCmluZGV4IGY5YWQ5ZDMuLjAxNWMxZDQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZworKysgYi9hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWcKQEAgLTQsNiArNCw3IEBACiBDT05GSUdfSUtDT05GSUc9eQogQ09ORklHX0lLQ09ORklHX1BST0M9eQogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0VfTzM9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19QRVJGX0VWRU5UUz15CiAjIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUyBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FyYy9pbmNsdWRlL2FzbS9wZ2FsbG9jLmggYi9hcmNoL2FyYy9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKaW5kZXggOWJkYjhlZC4uYjc0N2YyZSAxMDA2NDQKLS0tIGEvYXJjaC9hcmMvaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvYXJjL2luY2x1ZGUvYXNtL3BnYWxsb2MuaApAQCAtMTA4LDcgKzEwOCw3IEBAIHB0ZV9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0pCiAJCXJldHVybiAwOwogCW1lbXplcm8oKHZvaWQgKilwdGVfcGcsIFBUUlNfUEVSX1BURSAqIHNpemVvZihwdGVfdCkpOwogCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UocHRlX3BnKTsKLQlpZiAoIXBndGFibGVfcGFnZV9jdG9yKHBhZ2UpKSB7CisJaWYgKCFwZ3RhYmxlX3B0ZV9wYWdlX2N0b3IocGFnZSkpIHsKIAkJX19mcmVlX3BhZ2UocGFnZSk7CiAJCXJldHVybiAwOwogCX0KQEAgLTEyMywxMyArMTIzLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHB0ZV90ICpwdGUpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGd0YWJsZV90IHB0ZXApCiB7Ci0JcGd0YWJsZV9wYWdlX2R0b3IodmlydF90b19wYWdlKHB0ZXApKTsKKwlwZ3RhYmxlX3B0ZV9wYWdlX2R0b3IodmlydF90b19wYWdlKHB0ZXApKTsKIAlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKXB0ZXAsIF9fZ2V0X29yZGVyX3B0ZSgpKTsKIH0KIAogI2RlZmluZSBfX3B0ZV9mcmVlX3RsYih0bGIsIHB0ZSwgYWRkcikgIHB0ZV9mcmVlKCh0bGIpLT5tbSwgcHRlKQogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpICAgZG8geyB9IHdoaWxlICgwKQogI2RlZmluZSBwbWRfcGd0YWJsZShwbWQpCSgocGd0YWJsZV90KSBwbWRfcGFnZV92YWRkcihwbWQpKQogCiAjZW5kaWYgLyogX0FTTV9BUkNfUEdBTExPQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL2FyYy9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL2FyYy9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggMWQ4N2MxOC4uN2FkZGQwMyAxMDA2NDQKLS0tIGEvYXJjaC9hcmMvaW5jbHVkZS9hc20vcGd0YWJsZS5oCisrKyBiL2FyY2gvYXJjL2luY2x1ZGUvYXNtL3BndGFibGUuaApAQCAtMzk1LDExICszOTUsNiBAQCB2b2lkIHVwZGF0ZV9tbXVfY2FjaGUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKIC8qIHRvIGNvcGUgd2l0aCBhbGlhc2luZyBWSVBUIGNhY2hlICovCiAjZGVmaW5lIEhBVkVfQVJDSF9VTk1BUFBFRF9BUkVBCiAKLS8qCi0gKiBObyBwYWdlIHRhYmxlIGNhY2hlcyB0byBpbml0aWFsaXNlCi0gKi8KLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkgICBkbyB7IH0gd2hpbGUgKDApCi0KICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FyYy9tbS9kbWEuYyBiL2FyY2gvYXJjL21tL2RtYS5jCmluZGV4IDcwYTNmYmU3Li43M2E3ZTg4IDEwMDY0NAotLS0gYS9hcmNoL2FyYy9tbS9kbWEuYworKysgYi9hcmNoL2FyYy9tbS9kbWEuYwpAQCAtMTA0LDkgKzEwNCwzIEBAIHZvaWQgYXJjaF9zZXR1cF9kbWFfb3BzKHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IGRtYV9iYXNlLCB1NjQgc2l6ZSwKIAlkZXZfaW5mbyhkZXYsICJ1c2UgJXNjb2hlcmVudCBETUEgb3BzXG4iLAogCQkgZGV2LT5kbWFfY29oZXJlbnQgPyAiIiA6ICJub24iKTsKIH0KLQotc3RhdGljIGludCBfX2luaXQgYXRvbWljX3Bvb2xfaW5pdCh2b2lkKQotewotCXJldHVybiBkbWFfYXRvbWljX3Bvb2xfaW5pdChHRlBfS0VSTkVMLCBwZ3Byb3Rfbm9uY2FjaGVkKFBBR0VfS0VSTkVMKSk7Ci19Ci1wb3N0Y29yZV9pbml0Y2FsbChhdG9taWNfcG9vbF9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL0tjb25maWcgYi9hcmNoL2FybS9LY29uZmlnCmluZGV4IDJhZTdmOGEuLjhhNTBlZmIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL0tjb25maWcKKysrIGIvYXJjaC9hcm0vS2NvbmZpZwpAQCAtOCw3ICs4LDcgQEAKIAlzZWxlY3QgQVJDSF9IQVNfREVCVUdfVklSVFVBTCBpZiBNTVUKIAlzZWxlY3QgQVJDSF9IQVNfREVWTUVNX0lTX0FMTE9XRUQKIAlzZWxlY3QgQVJDSF9IQVNfRE1BX0NPSEVSRU5UX1RPX1BGTiBpZiBTV0lPVExCCi0Jc2VsZWN0IEFSQ0hfSEFTX0RNQV9NTUFQX1BHUFJPVCBpZiBTV0lPVExCCisJc2VsZWN0IEFSQ0hfSEFTX0RNQV9XUklURV9DT01CSU5FIGlmICFBUk1fRE1BX01FTV9CVUZGRVJBQkxFCiAJc2VsZWN0IEFSQ0hfSEFTX0VMRl9SQU5ET01JWkUKIAlzZWxlY3QgQVJDSF9IQVNfRk9SVElGWV9TT1VSQ0UKIAlzZWxlY3QgQVJDSF9IQVNfS0VFUElOSVRSRApAQCAtMzQsNiArMzQsNyBAQAogCXNlbGVjdCBBUkNIX1NVUFBPUlRTX0FUT01JQ19STVcKIAlzZWxlY3QgQVJDSF9VU0VfQlVJTFRJTl9CU1dBUAogCXNlbGVjdCBBUkNIX1VTRV9DTVBYQ0hHX0xPQ0tSRUYKKwlzZWxlY3QgQVJDSF9XQU5UX0RFRkFVTFRfVE9QRE9XTl9NTUFQX0xBWU9VVCBpZiBNTVUKIAlzZWxlY3QgQVJDSF9XQU5UX0lQQ19QQVJTRV9WRVJTSU9OCiAJc2VsZWN0IEJJTkZNVF9GTEFUX0FSR1ZQX0VOVlBfT05fU1RBQ0sKIAlzZWxlY3QgQlVJTERUSU1FX0VYVEFCTEVfU09SVCBpZiBNTVUKQEAgLTgyLDcgKzgzLDcgQEAKIAlzZWxlY3QgSEFWRV9GQVNUX0dVUCBpZiBBUk1fTFBBRQogCXNlbGVjdCBIQVZFX0ZUUkFDRV9NQ09VTlRfUkVDT1JEIGlmICFYSVBfS0VSTkVMCiAJc2VsZWN0IEhBVkVfRlVOQ1RJT05fR1JBUEhfVFJBQ0VSIGlmICFUSFVNQjJfS0VSTkVMICYmICFDQ19JU19DTEFORwotCXNlbGVjdCBIQVZFX0ZVTkNUSU9OX1RSQUNFUiBpZiAhWElQX0tFUk5FTAorCXNlbGVjdCBIQVZFX0ZVTkNUSU9OX1RSQUNFUiBpZiAhWElQX0tFUk5FTCAmJiAoQ0NfSVNfR0NDIHx8IENMQU5HX1ZFUlNJT04gPj0gMTAwMDAwKQogCXNlbGVjdCBIQVZFX0dDQ19QTFVHSU5TCiAJc2VsZWN0IEhBVkVfSFdfQlJFQUtQT0lOVCBpZiBQRVJGX0VWRU5UUyAmJiAoQ1BVX1Y2IHx8IENQVV9WNksgfHwgQ1BVX1Y3KQogCXNlbGVjdCBIQVZFX0lERSBpZiBQQ0kgfHwgSVNBIHx8IFBDTUNJQQpAQCAtMTQ3Niw4ICsxNDc3LDkgQEAKIAkgIGNvZGUgdG8gZG8gaW50ZWdlciBkaXZpc2lvbi4KIAogY29uZmlnIEFFQUJJCi0JYm9vbCAiVXNlIHRoZSBBUk0gRUFCSSB0byBjb21waWxlIHRoZSBrZXJuZWwiIGlmICFDUFVfVjcgJiYgIUNQVV9WN00gJiYgIUNQVV9WNiAmJiAhQ1BVX1Y2SwotCWRlZmF1bHQgQ1BVX1Y3IHx8IENQVV9WN00gfHwgQ1BVX1Y2IHx8IENQVV9WNksKKwlib29sICJVc2UgdGhlIEFSTSBFQUJJIHRvIGNvbXBpbGUgdGhlIGtlcm5lbCIgaWYgIUNQVV9WNyAmJiBcCisJCSFDUFVfVjdNICYmICFDUFVfVjYgJiYgIUNQVV9WNksgJiYgIUNDX0lTX0NMQU5HCisJZGVmYXVsdCBDUFVfVjcgfHwgQ1BVX1Y3TSB8fCBDUFVfVjYgfHwgQ1BVX1Y2SyB8fCBDQ19JU19DTEFORwogCWhlbHAKIAkgIFRoaXMgb3B0aW9uIGFsbG93cyBmb3IgdGhlIGtlcm5lbCB0byBiZSBjb21waWxlZCB1c2luZyB0aGUgbGF0ZXN0CiAJICBBUk0gQUJJIChha2EgRUFCSSkuICBUaGlzIGlzIG9ubHkgdXNlZnVsIGlmIHlvdSBhcmUgdXNpbmcgYSB1c2VyCmRpZmYgLS1naXQgYS9hcmNoL2FybS9LY29uZmlnLmRlYnVnIGIvYXJjaC9hcm0vS2NvbmZpZy5kZWJ1ZwppbmRleCBmZTdlOWI1Li44YmNiZDBjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9LY29uZmlnLmRlYnVnCisrKyBiL2FyY2gvYXJtL0tjb25maWcuZGVidWcKQEAgLTU2LDcgKzU2LDcgQEAKIAogY29uZmlnIFVOV0lOREVSX0ZSQU1FX1BPSU5URVIKIAlib29sICJGcmFtZSBwb2ludGVyIHVud2luZGVyIgotCWRlcGVuZHMgb24gIVRIVU1CMl9LRVJORUwgJiYgIUNDX0lTX0NMQU5HCisJZGVwZW5kcyBvbiAhVEhVTUIyX0tFUk5FTAogCXNlbGVjdCBBUkNIX1dBTlRfRlJBTUVfUE9JTlRFUlMKIAlzZWxlY3QgRlJBTUVfUE9JTlRFUgogCWhlbHAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL01ha2VmaWxlIGIvYXJjaC9hcm0vTWFrZWZpbGUKaW5kZXggZjkwMDJlNC4uZGI4NTdkMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vTWFrZWZpbGUKQEAgLTE3LDcgKzE3LDcgQEAKIGVuZGlmCiAKIGlmZXEgKCQoQ09ORklHX0FSTV9NT0RVTEVfUExUUykseSkKLUtCVUlMRF9MREZMQUdTX01PRFVMRQkrPSAtVCAkKHNyY3RyZWUpL2FyY2gvYXJtL2tlcm5lbC9tb2R1bGUubGRzCitLQlVJTERfTERTX01PRFVMRQkrPSAkKHNyY3RyZWUpL2FyY2gvYXJtL2tlcm5lbC9tb2R1bGUubGRzCiBlbmRpZgogCiBHWkZMQUdTCQk6PS05CkBAIC0zNiw3ICszNiwxMCBAQAogZW5kaWYKIAogaWZlcSAoJChDT05GSUdfRlJBTUVfUE9JTlRFUikseSkKLUtCVUlMRF9DRkxBR1MJKz0tZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtbWFwY3MgLW1uby1zY2hlZC1wcm9sb2cKK0tCVUlMRF9DRkxBR1MJKz0tZm5vLW9taXQtZnJhbWUtcG9pbnRlcgoraWZlcSAoJChDT05GSUdfQ0NfSVNfR0NDKSx5KQorS0JVSUxEX0NGTEFHUyArPSAtbWFwY3MgLW1uby1zY2hlZC1wcm9sb2cKK2VuZGlmCiBlbmRpZgogCiBpZmVxICgkKENPTkZJR19DUFVfQklHX0VORElBTikseSkKQEAgLTExMiw2ICsxMTUsMTAgQEAKIENGTEFHU19BQkkJKz0tZnVud2luZC10YWJsZXMKIGVuZGlmCiAKK2lmZXEgKCQoQ09ORklHX0NDX0lTX0NMQU5HKSx5KQorQ0ZMQUdTX0FCSQkrPSAtbWVhYmkgZ251CitlbmRpZgorCiAjIEFjY2VwdCBvbGQgc3ludGF4IGRlc3BpdGUgIi5zeW50YXggdW5pZmllZCIKIEFGTEFHU19OT1dBUk4JOj0kKGNhbGwgYXMtb3B0aW9uLC1XYSQoY29tbWEpLW1uby13YXJuLWRlcHJlY2F0ZWQsLVdhJChjb21tYSktVykKIApAQCAtMjY2LDE0ICsyNzMsOSBAQAogCiBleHBvcnQJVEVYVF9PRkZTRVQgR1pGTEFHUyBNTVVFWFQKIAotIyBEbyB3ZSBoYXZlIEZBU1RGUEU/Ci1GQVNURlBFCQk6PWFyY2gvYXJtL2Zhc3RmcGUKLWlmZXEgKCQoRkFTVEZQRSksJCh3aWxkY2FyZCAkKEZBU1RGUEUpKSkKLUZBU1RGUEVfT0JKCTo9JChGQVNURlBFKS8KLWVuZGlmCi0KIGNvcmUtJChDT05GSUdfRlBFX05XRlBFKQkrPSBhcmNoL2FybS9ud2ZwZS8KLWNvcmUtJChDT05GSUdfRlBFX0ZBU1RGUEUpCSs9ICQoRkFTVEZQRV9PQkopCisjIFB1dCBhcmNoL2FybS9mYXN0ZnBlLyB0byB1c2UgdGhpcy4KK2NvcmUtJChDT05GSUdfRlBFX0ZBU1RGUEUpCSs9ICQocGF0c3Vic3QgJChzcmN0cmVlKS8lLCUsJCh3aWxkY2FyZCAkKHNyY3RyZWUpL2FyY2gvYXJtL2Zhc3RmcGUvKSkKIGNvcmUtJChDT05GSUdfVkZQKQkJKz0gYXJjaC9hcm0vdmZwLwogY29yZS0kKENPTkZJR19YRU4pCQkrPSBhcmNoL2FybS94ZW4vCiBjb3JlLSQoQ09ORklHX0tWTV9BUk1fSE9TVCkgCSs9IGFyY2gvYXJtL2t2bS8KQEAgLTI4Niw2ICsyODgsMTAgQEAKIGNvcmUteQkJCQkrPSBhcmNoL2FybS9jcnlwdG8vCiBjb3JlLXkJCQkJKz0gJChtYWNoZGlycykgJChwbGF0ZGlycykKIAorIyBGb3IgY2xlYW5pbmcKK2NvcmUtCQkJCSs9ICQocGF0c3Vic3QgJSxhcmNoL2FybS9tYWNoLSUvLCAkKG1hY2hpbmUtKSkKK2NvcmUtCQkJCSs9ICQocGF0c3Vic3QgJSxhcmNoL2FybS9wbGF0LSUvLCAkKHBsYXQtKSkKKwogZHJpdmVycy0kKENPTkZJR19PUFJPRklMRSkgICAgICArPSBhcmNoL2FybS9vcHJvZmlsZS8KIAogbGlicy15CQkJCTo9IGFyY2gvYXJtL2xpYi8gJChsaWJzLXkpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvaGVhZC5TIGIvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL2hlYWQuUwppbmRleCBlNTlkMTQ2Li45M2RmZmVkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvaGVhZC5TCisrKyBiL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9oZWFkLlMKQEAgLTE1MywxMSArMTUzLDIzIEBACiAgQVJfQ0xBU1MoCS5hcm0JKQogc3RhcnQ6CiAJCS50eXBlCXN0YXJ0LCNmdW5jdGlvbgorCQkvKgorCQkgKiBUaGVzZSA3IG5vcHMgYWxvbmcgd2l0aCB0aGUgMSBub3AgaW1tZWRpYXRlbHkgYmVsb3cgZm9yCisJCSAqICFUSFVNQjIgZm9ybSA4IG5vcHMgdGhhdCBtYWtlIHRoZSBjb21wcmVzc2VkIGtlcm5lbCBib290YWJsZQorCQkgKiBvbiBsZWdhY3kgQVJNIHN5c3RlbXMgdGhhdCB3ZXJlIGFzc3VtaW5nIHRoZSBrZXJuZWwgaW4gYS5vdXQKKwkJICogYmluYXJ5IGZvcm1hdC4gVGhlIGJvb3QgbG9hZGVycyBvbiB0aGVzZSBzeXN0ZW1zIHdvdWxkCisJCSAqIGp1bXAgMzIgYnl0ZXMgaW50byB0aGUgaW1hZ2UgdG8gc2tpcCB0aGUgYS5vdXQgaGVhZGVyLgorCQkgKiB3aXRoIHRoZXNlIDggbm9wcyBmaWxsaW5nIGV4YWN0bHkgMzIgYnl0ZXMsIHRoaW5ncyBzdGlsbAorCQkgKiB3b3JrIGFzIGV4cGVjdGVkIG9uIHRoZXNlIGxlZ2FjeSBzeXN0ZW1zLiBUaHVtYjIgbW9kZSBrZWVwcworCQkgKiA3IG9mIHRoZSBub3BzIGFzIGl0IHR1cm5zIG91dCB0aGF0IHNvbWUgYm9vdCBsb2FkZXJzCisJCSAqIHdlcmUgcGF0Y2hpbmcgdGhlIGluaXRpYWwgaW5zdHJ1Y3Rpb25zIG9mIHRoZSBrZXJuZWwsIGkuZQorCQkgKiBoYWQgc3RhcnRlZCB0byBleHBsb2l0IHRoaXMgInBhdGNoIGFyZWEiLgorCQkgKi8KIAkJLnJlcHQJNwogCQlfX25vcAogCQkuZW5kcgogI2lmbmRlZiBDT05GSUdfVEhVTUIyX0tFUk5FTAotCQltb3YJcjAsIHIwCisJCV9fbm9wCiAjZWxzZQogIEFSX0NMQVNTKAlzdWIJcGMsIHBjLCAjMwkpCUAgQS9SOiBzd2l0Y2ggdG8gVGh1bWIyIG1vZGUKICAgTV9DTEFTUygJbm9wLncJCQkpCUAgTTogYWxyZWFkeSBpbiBUaHVtYjIgbW9kZQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvTWFrZWZpbGUgYi9hcmNoL2FybS9ib290L2R0cy9NYWtlZmlsZQppbmRleCBhMjRhNmExLi5iMjFiM2E2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib290L2R0cy9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9ib290L2R0cy9NYWtlZmlsZQpAQCAtMzM2LDcgKzMzNiw4IEBACiBkdGItJChDT05GSUdfQVJDSF9NTVApICs9IFwKIAlweGExNjgtYXNwZW5pdGUuZHRiIFwKIAlweGE5MTAtZGtiLmR0YiBcCi0JbW1wMi1icm93bnN0b25lLmR0YgorCW1tcDItYnJvd25zdG9uZS5kdGIgXAorCW1tcDItb2xwYy14by0xLTc1LmR0YgogZHRiLSQoQ09ORklHX0FSQ0hfTVBTMikgKz0gXAogCW1wczItYW4zODUuZHRiIFwKIAltcHMyLWFuMzk5LmR0YgpAQCAtMTI3OCw2ICsxMjc5LDcgQEAKIGR0Yi0kKENPTkZJR19BUkNIX1pYKSArPSB6eDI5NjcwMi1hZDEuZHRiCiBkdGItJChDT05GSUdfQVJDSF9BU1BFRUQpICs9IFwKIAlhc3BlZWQtYXN0MjUwMC1ldmIuZHRiIFwKKwlhc3BlZWQtYXN0MjYwMC1ldmIuZHRiIFwKIAlhc3BlZWQtYm1jLWFybS1jZW50cmlxMjQwMC1yZXAuZHRiIFwKIAlhc3BlZWQtYm1jLWFybS1zdGFyZHJhZ29uNDgwMC1yZXAyLmR0YiBcCiAJYXNwZWVkLWJtYy1mYWNlYm9vay1jbW0uZHRiIFwKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2FtMzN4eC1sNC5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvYW0zM3h4LWw0LmR0c2kKaW5kZXggNDY4NDlkNi4uOTkxNWM4OSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvYW0zM3h4LWw0LmR0c2kKKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvYW0zM3h4LWw0LmR0c2kKQEAgLTY3Myw3ICs2NzMsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVAMTAwMDAwIHsJCQkvKiAweDRhMTAwMDAwLCBhcCAzIDA4LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwNC1zaW1wbGUiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAiY3BnbWFjMCI7CiAJCQlyZWcgPSA8MHgxMDEyMDAgMHg0PiwKIAkJCSAgICAgIDwweDEwMTIwOCAweDQ+LAogCQkJICAgICAgPDB4MTAxMjA0IDB4ND47CkBAIC03MTksOSArNzE4LDEwIEBACiAKIAkJCQlkYXZpbmNpX21kaW86IG1kaW9AMTAwMCB7CiAJCQkJCWNvbXBhdGlibGUgPSAidGksY3Bzdy1tZGlvIiwidGksZGF2aW5jaV9tZGlvIjsKKwkJCQkJY2xvY2tzID0gPCZjcHN3XzEyNW1oel9jbGtjdHJsIEFNM19DUFNXXzEyNU1IWl9DUEdNQUMwX0NMS0NUUkwgMD47CisJCQkJCWNsb2NrLW5hbWVzID0gImZjayI7CiAJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKLQkJCQkJdGksaHdtb2RzID0gImRhdmluY2lfbWRpbyI7CiAJCQkJCWJ1c19mcmVxID0gPDEwMDAwMDA+OwogCQkJCQlyZWcgPSA8MHgxMDAwIDB4MTAwPjsKIAkJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2FtMzUxNy5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvYW0zNTE3LmR0c2kKaW5kZXggMjNlYTM4MS4uYmYzMDAyMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvYW0zNTE3LmR0c2kKKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvYW0zNTE3LmR0c2kKQEAgLTg4LDYgKzg4LDMwIEBACiAJCQlpbnRlcnJ1cHRzID0gPDI0PjsKIAkJCWNsb2NrcyA9IDwmaGVjY19jaz47CiAJCX07CisKKwkJLyoKKwkJICogT24gYW0zNTE3IHRoZSBPQ1AgcmVnaXN0ZXJzIGRvIG5vdCBzZWVtIHRvIGJlIGFjY2Vzc2libGUKKwkJICogc2ltaWxhciB0byB0aGUgb21hcDM0eHguIE1heWJlIFNHWCBpcyBwZXJtYW5lbnRseSBzZXQgdG8KKwkJICogIk9DUCBieXBhc3MgbW9kZSIsIG9yIG1heWJlIHRoZXJlIGlzIE9DUF9TWVNDT05GSUcgdGhhdCBpcworCQkgKiB3cml0ZS1vbmx5IGF0IDB4NTAwMDBlMTAuIFdlIGRldGVjdCBTR1ggYmFzZWQgb24gdGhlIFNHWAorCQkgKiByZXZpc2lvbiByZWdpc3RlciBpbnN0ZWFkIG9mIHRoZSB1bnJlYWRhYmxlIE9DUCByZXZpc2lvbgorCQkgKiByZWdpc3Rlci4KKwkJICovCisJCXNneF9tb2R1bGU6IHRhcmdldC1tb2R1bGVANTAwMDAwMDAgeworCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOworCQkJcmVnID0gPDB4NTAwMDAwMTQgMHg0PjsKKwkJCXJlZy1uYW1lcyA9ICJyZXYiOworCQkJY2xvY2tzID0gPCZzZ3hfZmNrPiwgPCZzZ3hfaWNrPjsKKwkJCWNsb2NrLW5hbWVzID0gImZjayIsICJpY2siOworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwxPjsKKwkJCXJhbmdlcyA9IDwwIDB4NTAwMDAwMDAgMHg0MDAwPjsKKworCQkJLyoKKwkJCSAqIENsb3NlZCBzb3VyY2UgUG93ZXJWUiBkcml2ZXIsIG5vIGNoaWxkIGRldmljZQorCQkJICogYmluZGluZyBvciBkcml2ZXIgaW4gbWFpbmxpbmUKKwkJCSAqLworCQl9OwogCX07CiB9OwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9hbTQzN3gtbDQuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FtNDM3eC1sNC5kdHNpCmluZGV4IDA0YmVlNGYuLjU5NzcwZGQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2Jvb3QvZHRzL2FtNDM3eC1sNC5kdHNpCisrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FtNDM3eC1sNC5kdHNpCkBAIC01MTIsNyArNTEyLDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDEwMDAwMCB7CQkJLyogMHg0YTEwMDAwMCwgYXAgMyAwNC4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDQtc2ltcGxlIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gImNwZ21hYzAiOwogCQkJcmVnID0gPDB4MTAxMjAwIDB4ND4sCiAJCQkgICAgICA8MHgxMDEyMDggMHg0PiwKIAkJCSAgICAgIDwweDEwMTIwNCAweDQ+OwpAQCAtNTU5LDExICs1NTgsMTAgQEAKIAkJCQlkYXZpbmNpX21kaW86IG1kaW9AMTAwMCB7CiAJCQkJCWNvbXBhdGlibGUgPSAidGksYW00MzcyLW1kaW8iLCJ0aSxjcHN3LW1kaW8iLCJ0aSxkYXZpbmNpX21kaW8iOwogCQkJCQlyZWcgPSA8MHgxMDAwIDB4MTAwPjsKKwkJCQkJY2xvY2tzID0gPCZjcHN3XzEyNW1oel9jbGtjdHJsIEFNNF9DUFNXXzEyNU1IWl9DUEdNQUMwX0NMS0NUUkwgMD47CisJCQkJCWNsb2NrLW5hbWVzID0gImZjayI7CiAJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKLQkJCQkJY2xvY2tzID0gPCZjcHN3XzEyNW1oel9nY2xrPjsKLQkJCQkJY2xvY2stbmFtZXMgPSAiZmNrIjsKLQkJCQkJdGksaHdtb2RzID0gImRhdmluY2lfbWRpbyI7CiAJCQkJCWJ1c19mcmVxID0gPDEwMDAwMDA+OwogCQkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwogCQkJCX07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9hc3BlZWQtYXN0MjYwMC1ldmIuZHRzIGIvYXJjaC9hcm0vYm9vdC9kdHMvYXNwZWVkLWFzdDI2MDAtZXZiLmR0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODcwNTUzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvYXNwZWVkLWFzdDI2MDAtZXZiLmR0cwpAQCAtMCwwICsxLDgwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorLy8gQ29weXJpZ2h0IDIwMTkgSUJNIENvcnAuCisKKy9kdHMtdjEvOworCisjaW5jbHVkZSAiYXNwZWVkLWc2LmR0c2kiCisKKy8geworCW1vZGVsID0gIkFTVDI2MDAgRVZCIjsKKwljb21wYXRpYmxlID0gImFzcGVlZCxhc3QyNjAwIjsKKworCWFsaWFzZXMgeworCQlzZXJpYWw0ID0gJnVhcnQ1OworCX07CisKKwljaG9zZW4geworCQlib290YXJncyA9ICJjb25zb2xlPXR0eVM0LDExNTIwMG44IjsKKwl9OworCisJbWVtb3J5QDgwMDAwMDAwIHsKKwkJZGV2aWNlX3R5cGUgPSAibWVtb3J5IjsKKwkJcmVnID0gPDB4ODAwMDAwMDAgMHg4MDAwMDAwMD47CisJfTsKK307CisKKyZtZGlvMSB7CisJc3RhdHVzID0gIm9rYXkiOworCisJZXRocGh5MTogZXRoZXJuZXQtcGh5QDAgeworCQljb21wYXRpYmxlID0gImV0aGVybmV0LXBoeS1pZWVlODAyLjMtYzIyIjsKKwkJcmVnID0gPDA+OworCX07Cit9OworCismbWRpbzIgeworCXN0YXR1cyA9ICJva2F5IjsKKworCWV0aHBoeTI6IGV0aGVybmV0LXBoeUAwIHsKKwkJY29tcGF0aWJsZSA9ICJldGhlcm5ldC1waHktaWVlZTgwMi4zLWMyMiI7CisJCXJlZyA9IDwwPjsKKwl9OworfTsKKworJm1kaW8zIHsKKwlzdGF0dXMgPSAib2theSI7CisKKwlldGhwaHkzOiBldGhlcm5ldC1waHlAMCB7CisJCWNvbXBhdGlibGUgPSAiZXRoZXJuZXQtcGh5LWllZWU4MDIuMy1jMjIiOworCQlyZWcgPSA8MD47CisJfTsKK307CisKKyZtYWMxIHsKKwlzdGF0dXMgPSAib2theSI7CisKKwlwaHktbW9kZSA9ICJyZ21paSI7CisJcGh5LWhhbmRsZSA9IDwmZXRocGh5MT47Cit9OworCismbWFjMiB7CisJc3RhdHVzID0gIm9rYXkiOworCisJcGh5LW1vZGUgPSAicmdtaWkiOworCXBoeS1oYW5kbGUgPSA8JmV0aHBoeTI+OworfTsKKworJm1hYzMgeworCXN0YXR1cyA9ICJva2F5IjsKKworCXBoeS1tb2RlID0gInJnbWlpIjsKKwlwaHktaGFuZGxlID0gPCZldGhwaHkzPjsKK307CisKKyZlbW1jIHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismcnRjIHsKKwlzdGF0dXMgPSAib2theSI7Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvYXNwZWVkLWc2LXBpbmN0cmwuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FzcGVlZC1nNi1waW5jdHJsLmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI4YmY1OAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FzcGVlZC1nNi1waW5jdHJsLmR0c2kKQEAgLTAsMCArMSwxMTU0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorLy8gQ29weXJpZ2h0IDIwMTkgSUJNIENvcnAuCisKKyZwaW5jdHJsIHsKKwlwaW5jdHJsX2FkYzBfZGVmYXVsdDogYWRjMF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiQURDMCI7CisJCWdyb3VwcyA9ICJBREMwIjsKKwl9OworCisJcGluY3RybF9hZGMxX2RlZmF1bHQ6IGFkYzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkFEQzEiOworCQlncm91cHMgPSAiQURDMSI7CisJfTsKKworCXBpbmN0cmxfYWRjMTBfZGVmYXVsdDogYWRjMTBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkFEQzEwIjsKKwkJZ3JvdXBzID0gIkFEQzEwIjsKKwl9OworCisJcGluY3RybF9hZGMxMV9kZWZhdWx0OiBhZGMxMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiQURDMTEiOworCQlncm91cHMgPSAiQURDMTEiOworCX07CisKKwlwaW5jdHJsX2FkYzEyX2RlZmF1bHQ6IGFkYzEyX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJBREMxMiI7CisJCWdyb3VwcyA9ICJBREMxMiI7CisJfTsKKworCXBpbmN0cmxfYWRjMTNfZGVmYXVsdDogYWRjMTNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkFEQzEzIjsKKwkJZ3JvdXBzID0gIkFEQzEzIjsKKwl9OworCisJcGluY3RybF9hZGMxNF9kZWZhdWx0OiBhZGMxNF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiQURDMTQiOworCQlncm91cHMgPSAiQURDMTQiOworCX07CisKKwlwaW5jdHJsX2FkYzE1X2RlZmF1bHQ6IGFkYzE1X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJBREMxNSI7CisJCWdyb3VwcyA9ICJBREMxNSI7CisJfTsKKworCXBpbmN0cmxfYWRjMl9kZWZhdWx0OiBhZGMyX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJBREMyIjsKKwkJZ3JvdXBzID0gIkFEQzIiOworCX07CisKKwlwaW5jdHJsX2FkYzNfZGVmYXVsdDogYWRjM19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiQURDMyI7CisJCWdyb3VwcyA9ICJBREMzIjsKKwl9OworCisJcGluY3RybF9hZGM0X2RlZmF1bHQ6IGFkYzRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkFEQzQiOworCQlncm91cHMgPSAiQURDNCI7CisJfTsKKworCXBpbmN0cmxfYWRjNV9kZWZhdWx0OiBhZGM1X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJBREM1IjsKKwkJZ3JvdXBzID0gIkFEQzUiOworCX07CisKKwlwaW5jdHJsX2FkYzZfZGVmYXVsdDogYWRjNl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiQURDNiI7CisJCWdyb3VwcyA9ICJBREM2IjsKKwl9OworCisJcGluY3RybF9hZGM3X2RlZmF1bHQ6IGFkYzdfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkFEQzciOworCQlncm91cHMgPSAiQURDNyI7CisJfTsKKworCXBpbmN0cmxfYWRjOF9kZWZhdWx0OiBhZGM4X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJBREM4IjsKKwkJZ3JvdXBzID0gIkFEQzgiOworCX07CisKKwlwaW5jdHJsX2FkYzlfZGVmYXVsdDogYWRjOV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiQURDOSI7CisJCWdyb3VwcyA9ICJBREM5IjsKKwl9OworCisJcGluY3RybF9ibWNpbnRfZGVmYXVsdDogYm1jaW50X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJCTUNJTlQiOworCQlncm91cHMgPSAiQk1DSU5UIjsKKwl9OworCisJcGluY3RybF9lc3BpX2RlZmF1bHQ6IGVzcGlfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkVTUEkiOworCQlncm91cHMgPSAiRVNQSSI7CisJfTsKKworCXBpbmN0cmxfZXNwaWFsdF9kZWZhdWx0OiBlc3BpYWx0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJFU1BJQUxUIjsKKwkJZ3JvdXBzID0gIkVTUElBTFQiOworCX07CisKKwlwaW5jdHJsX2ZzaTFfZGVmYXVsdDogZnNpMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiRlNJMSI7CisJCWdyb3VwcyA9ICJGU0kxIjsKKwl9OworCisJcGluY3RybF9mc2kyX2RlZmF1bHQ6IGZzaTJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkZTSTIiOworCQlncm91cHMgPSAiRlNJMiI7CisJfTsKKworCXBpbmN0cmxfZndzcGlhYnJfZGVmYXVsdDogZndzcGlhYnJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkZXU1BJQUJSIjsKKwkJZ3JvdXBzID0gIkZXU1BJQUJSIjsKKwl9OworCisJcGluY3RybF9md3NwaWRfZGVmYXVsdDogZndzcGlkX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJGV1NQSUQiOworCQlncm91cHMgPSAiRldTUElEIjsKKwl9OworCisJcGluY3RybF9md3FzcGlkX2RlZmF1bHQ6IGZ3cXNwaWRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkZXUVNQSUQiOworCQlncm91cHMgPSAiRldRU1BJRCI7CisJfTsKKworCXBpbmN0cmxfZndzcGl3cF9kZWZhdWx0OiBmd3NwaXdwX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJGV1NQSVdQIjsKKwkJZ3JvdXBzID0gIkZXU1BJV1AiOworCX07CisKKwlwaW5jdHJsX2dwaXQwX2RlZmF1bHQ6IGdwaXQwX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJHUElUMCI7CisJCWdyb3VwcyA9ICJHUElUMCI7CisJfTsKKworCXBpbmN0cmxfZ3BpdDFfZGVmYXVsdDogZ3BpdDFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkdQSVQxIjsKKwkJZ3JvdXBzID0gIkdQSVQxIjsKKwl9OworCisJcGluY3RybF9ncGl0Ml9kZWZhdWx0OiBncGl0Ml9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiR1BJVDIiOworCQlncm91cHMgPSAiR1BJVDIiOworCX07CisKKwlwaW5jdHJsX2dwaXQzX2RlZmF1bHQ6IGdwaXQzX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJHUElUMyI7CisJCWdyb3VwcyA9ICJHUElUMyI7CisJfTsKKworCXBpbmN0cmxfZ3BpdDRfZGVmYXVsdDogZ3BpdDRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkdQSVQ0IjsKKwkJZ3JvdXBzID0gIkdQSVQ0IjsKKwl9OworCisJcGluY3RybF9ncGl0NV9kZWZhdWx0OiBncGl0NV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiR1BJVDUiOworCQlncm91cHMgPSAiR1BJVDUiOworCX07CisKKwlwaW5jdHJsX2dwaXQ2X2RlZmF1bHQ6IGdwaXQ2X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJHUElUNiI7CisJCWdyb3VwcyA9ICJHUElUNiI7CisJfTsKKworCXBpbmN0cmxfZ3BpdDdfZGVmYXVsdDogZ3BpdDdfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkdQSVQ3IjsKKwkJZ3JvdXBzID0gIkdQSVQ3IjsKKwl9OworCisJcGluY3RybF9ncGl1MF9kZWZhdWx0OiBncGl1MF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiR1BJVTAiOworCQlncm91cHMgPSAiR1BJVTAiOworCX07CisKKwlwaW5jdHJsX2dwaXUxX2RlZmF1bHQ6IGdwaXUxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJHUElVMSI7CisJCWdyb3VwcyA9ICJHUElVMSI7CisJfTsKKworCXBpbmN0cmxfZ3BpdTJfZGVmYXVsdDogZ3BpdTJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkdQSVUyIjsKKwkJZ3JvdXBzID0gIkdQSVUyIjsKKwl9OworCisJcGluY3RybF9ncGl1M19kZWZhdWx0OiBncGl1M19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiR1BJVTMiOworCQlncm91cHMgPSAiR1BJVTMiOworCX07CisKKwlwaW5jdHJsX2dwaXU0X2RlZmF1bHQ6IGdwaXU0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJHUElVNCI7CisJCWdyb3VwcyA9ICJHUElVNCI7CisJfTsKKworCXBpbmN0cmxfZ3BpdTVfZGVmYXVsdDogZ3BpdTVfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkdQSVU1IjsKKwkJZ3JvdXBzID0gIkdQSVU1IjsKKwl9OworCisJcGluY3RybF9ncGl1Nl9kZWZhdWx0OiBncGl1Nl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiR1BJVTYiOworCQlncm91cHMgPSAiR1BJVTYiOworCX07CisKKwlwaW5jdHJsX2dwaXU3X2RlZmF1bHQ6IGdwaXU3X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJHUElVNyI7CisJCWdyb3VwcyA9ICJHUElVNyI7CisJfTsKKworCXBpbmN0cmxfaHZpM2MzX2RlZmF1bHQ6IGh2aTNjM19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiSFZJM0MzIjsKKwkJZ3JvdXBzID0gIkhWSTNDMyI7CisJfTsKKworCXBpbmN0cmxfaHZpM2M0X2RlZmF1bHQ6IGh2aTNjNF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiSFZJM0M0IjsKKwkJZ3JvdXBzID0gIkhWSTNDNCI7CisJfTsKKworCXBpbmN0cmxfaTJjMV9kZWZhdWx0OiBpMmMxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJJMkMxIjsKKwkJZ3JvdXBzID0gIkkyQzEiOworCX07CisKKwlwaW5jdHJsX2kyYzEwX2RlZmF1bHQ6IGkyYzEwX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJJMkMxMCI7CisJCWdyb3VwcyA9ICJJMkMxMCI7CisJfTsKKworCXBpbmN0cmxfaTJjMTFfZGVmYXVsdDogaTJjMTFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkkyQzExIjsKKwkJZ3JvdXBzID0gIkkyQzExIjsKKwl9OworCisJcGluY3RybF9pMmMxMl9kZWZhdWx0OiBpMmMxMl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiSTJDMTIiOworCQlncm91cHMgPSAiSTJDMTIiOworCX07CisKKwlwaW5jdHJsX2kyYzEzX2RlZmF1bHQ6IGkyYzEzX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJJMkMxMyI7CisJCWdyb3VwcyA9ICJJMkMxMyI7CisJfTsKKworCXBpbmN0cmxfaTJjMTRfZGVmYXVsdDogaTJjMTRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkkyQzE0IjsKKwkJZ3JvdXBzID0gIkkyQzE0IjsKKwl9OworCisJcGluY3RybF9pMmMxNV9kZWZhdWx0OiBpMmMxNV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiSTJDMTUiOworCQlncm91cHMgPSAiSTJDMTUiOworCX07CisKKwlwaW5jdHJsX2kyYzE2X2RlZmF1bHQ6IGkyYzE2X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJJMkMxNiI7CisJCWdyb3VwcyA9ICJJMkMxNiI7CisJfTsKKworCXBpbmN0cmxfaTJjMl9kZWZhdWx0OiBpMmMyX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJJMkMyIjsKKwkJZ3JvdXBzID0gIkkyQzIiOworCX07CisKKwlwaW5jdHJsX2kyYzNfZGVmYXVsdDogaTJjM19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiSTJDMyI7CisJCWdyb3VwcyA9ICJJMkMzIjsKKwl9OworCisJcGluY3RybF9pMmM0X2RlZmF1bHQ6IGkyYzRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkkyQzQiOworCQlncm91cHMgPSAiSTJDNCI7CisJfTsKKworCXBpbmN0cmxfaTJjNV9kZWZhdWx0OiBpMmM1X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJJMkM1IjsKKwkJZ3JvdXBzID0gIkkyQzUiOworCX07CisKKwlwaW5jdHJsX2kyYzZfZGVmYXVsdDogaTJjNl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiSTJDNiI7CisJCWdyb3VwcyA9ICJJMkM2IjsKKwl9OworCisJcGluY3RybF9pMmM3X2RlZmF1bHQ6IGkyYzdfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkkyQzciOworCQlncm91cHMgPSAiSTJDNyI7CisJfTsKKworCXBpbmN0cmxfaTJjOF9kZWZhdWx0OiBpMmM4X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJJMkM4IjsKKwkJZ3JvdXBzID0gIkkyQzgiOworCX07CisKKwlwaW5jdHJsX2kyYzlfZGVmYXVsdDogaTJjOV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiSTJDOSI7CisJCWdyb3VwcyA9ICJJMkM5IjsKKwl9OworCisJcGluY3RybF9pM2MzX2RlZmF1bHQ6IGkzYzNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkkzQzMiOworCQlncm91cHMgPSAiSTNDMyI7CisJfTsKKworCXBpbmN0cmxfaTNjNF9kZWZhdWx0OiBpM2M0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJJM0M0IjsKKwkJZ3JvdXBzID0gIkkzQzQiOworCX07CisKKwlwaW5jdHJsX2kzYzVfZGVmYXVsdDogaTNjNV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiSTNDNSI7CisJCWdyb3VwcyA9ICJJM0M1IjsKKwl9OworCisJcGluY3RybF9pM2M2X2RlZmF1bHQ6IGkzYzZfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkkzQzYiOworCQlncm91cHMgPSAiSTNDNiI7CisJfTsKKworCXBpbmN0cmxfanRhZ21fZGVmYXVsdDoganRhZ21fZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkpUQUdNIjsKKwkJZ3JvdXBzID0gIkpUQUdNIjsKKwl9OworCisJcGluY3RybF9saHBkX2RlZmF1bHQ6IGxocGRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkxIUEQiOworCQlncm91cHMgPSAiTEhQRCI7CisJfTsKKworCXBpbmN0cmxfbGhzaXJxX2RlZmF1bHQ6IGxoc2lycV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTEhTSVJRIjsKKwkJZ3JvdXBzID0gIkxIU0lSUSI7CisJfTsKKworCXBpbmN0cmxfbHBjX2RlZmF1bHQ6IGxwY19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTFBDIjsKKwkJZ3JvdXBzID0gIkxQQyI7CisJfTsKKworCXBpbmN0cmxfbHBjaGNfZGVmYXVsdDogbHBjaGNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkxQQ0hDIjsKKwkJZ3JvdXBzID0gIkxQQ0hDIjsKKwl9OworCisJcGluY3RybF9scGNwZF9kZWZhdWx0OiBscGNwZF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTFBDUEQiOworCQlncm91cHMgPSAiTFBDUEQiOworCX07CisKKwlwaW5jdHJsX2xwY3BtZV9kZWZhdWx0OiBscGNwbWVfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkxQQ1BNRSI7CisJCWdyb3VwcyA9ICJMUENQTUUiOworCX07CisKKwlwaW5jdHJsX2xwY3NtaV9kZWZhdWx0OiBscGNzbWlfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIkxQQ1NNSSI7CisJCWdyb3VwcyA9ICJMUENTTUkiOworCX07CisKKwlwaW5jdHJsX2xzaXJxX2RlZmF1bHQ6IGxzaXJxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJMU0lSUSI7CisJCWdyb3VwcyA9ICJMU0lSUSI7CisJfTsKKworCXBpbmN0cmxfbWFjbGluazFfZGVmYXVsdDogbWFjbGluazFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk1BQ0xJTksxIjsKKwkJZ3JvdXBzID0gIk1BQ0xJTksxIjsKKwl9OworCisJcGluY3RybF9tYWNsaW5rMl9kZWZhdWx0OiBtYWNsaW5rMl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTUFDTElOSzIiOworCQlncm91cHMgPSAiTUFDTElOSzIiOworCX07CisKKwlwaW5jdHJsX21hY2xpbmszX2RlZmF1bHQ6IG1hY2xpbmszX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJNQUNMSU5LMyI7CisJCWdyb3VwcyA9ICJNQUNMSU5LMyI7CisJfTsKKworCXBpbmN0cmxfbWFjbGluazRfZGVmYXVsdDogbWFjbGluazRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk1BQ0xJTks0IjsKKwkJZ3JvdXBzID0gIk1BQ0xJTks0IjsKKwl9OworCisJcGluY3RybF9tZGlvMV9kZWZhdWx0OiBtZGlvMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTURJTzEiOworCQlncm91cHMgPSAiTURJTzEiOworCX07CisKKwlwaW5jdHJsX21kaW8yX2RlZmF1bHQ6IG1kaW8yX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJNRElPMiI7CisJCWdyb3VwcyA9ICJNRElPMiI7CisJfTsKKworCXBpbmN0cmxfbWRpbzNfZGVmYXVsdDogbWRpbzNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk1ESU8zIjsKKwkJZ3JvdXBzID0gIk1ESU8zIjsKKwl9OworCisJcGluY3RybF9tZGlvNF9kZWZhdWx0OiBtZGlvNF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTURJTzQiOworCQlncm91cHMgPSAiTURJTzQiOworCX07CisKKwlwaW5jdHJsX25jdHMxX2RlZmF1bHQ6IG5jdHMxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJOQ1RTMSI7CisJCWdyb3VwcyA9ICJOQ1RTMSI7CisJfTsKKworCXBpbmN0cmxfbmN0czJfZGVmYXVsdDogbmN0czJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk5DVFMyIjsKKwkJZ3JvdXBzID0gIk5DVFMyIjsKKwl9OworCisJcGluY3RybF9uY3RzM19kZWZhdWx0OiBuY3RzM19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTkNUUzMiOworCQlncm91cHMgPSAiTkNUUzMiOworCX07CisKKwlwaW5jdHJsX25jdHM0X2RlZmF1bHQ6IG5jdHM0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJOQ1RTNCI7CisJCWdyb3VwcyA9ICJOQ1RTNCI7CisJfTsKKworCXBpbmN0cmxfbmRjZDFfZGVmYXVsdDogbmRjZDFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk5EQ0QxIjsKKwkJZ3JvdXBzID0gIk5EQ0QxIjsKKwl9OworCisJcGluY3RybF9uZGNkMl9kZWZhdWx0OiBuZGNkMl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTkRDRDIiOworCQlncm91cHMgPSAiTkRDRDIiOworCX07CisKKwlwaW5jdHJsX25kY2QzX2RlZmF1bHQ6IG5kY2QzX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJORENEMyI7CisJCWdyb3VwcyA9ICJORENEMyI7CisJfTsKKworCXBpbmN0cmxfbmRjZDRfZGVmYXVsdDogbmRjZDRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk5EQ0Q0IjsKKwkJZ3JvdXBzID0gIk5EQ0Q0IjsKKwl9OworCisJcGluY3RybF9uZHNyMV9kZWZhdWx0OiBuZHNyMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTkRTUjEiOworCQlncm91cHMgPSAiTkRTUjEiOworCX07CisKKwlwaW5jdHJsX25kc3IyX2RlZmF1bHQ6IG5kc3IyX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJORFNSMiI7CisJCWdyb3VwcyA9ICJORFNSMiI7CisJfTsKKworCXBpbmN0cmxfbmRzcjNfZGVmYXVsdDogbmRzcjNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk5EU1IzIjsKKwkJZ3JvdXBzID0gIk5EU1IzIjsKKwl9OworCisJcGluY3RybF9uZHNyNF9kZWZhdWx0OiBuZHNyNF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTkRTUjQiOworCQlncm91cHMgPSAiTkRTUjQiOworCX07CisKKwlwaW5jdHJsX25kdHIxX2RlZmF1bHQ6IG5kdHIxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJORFRSMSI7CisJCWdyb3VwcyA9ICJORFRSMSI7CisJfTsKKworCXBpbmN0cmxfbmR0cjJfZGVmYXVsdDogbmR0cjJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk5EVFIyIjsKKwkJZ3JvdXBzID0gIk5EVFIyIjsKKwl9OworCisJcGluY3RybF9uZHRyM19kZWZhdWx0OiBuZHRyM19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTkRUUjMiOworCQlncm91cHMgPSAiTkRUUjMiOworCX07CisKKwlwaW5jdHJsX25kdHI0X2RlZmF1bHQ6IG5kdHI0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJORFRSNCI7CisJCWdyb3VwcyA9ICJORFRSNCI7CisJfTsKKworCXBpbmN0cmxfbnJpMV9kZWZhdWx0OiBucmkxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJOUkkxIjsKKwkJZ3JvdXBzID0gIk5SSTEiOworCX07CisKKwlwaW5jdHJsX25yaTJfZGVmYXVsdDogbnJpMl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTlJJMiI7CisJCWdyb3VwcyA9ICJOUkkyIjsKKwl9OworCisJcGluY3RybF9ucmkzX2RlZmF1bHQ6IG5yaTNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk5SSTMiOworCQlncm91cHMgPSAiTlJJMyI7CisJfTsKKworCXBpbmN0cmxfbnJpNF9kZWZhdWx0OiBucmk0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJOUkk0IjsKKwkJZ3JvdXBzID0gIk5SSTQiOworCX07CisKKwlwaW5jdHJsX25ydHMxX2RlZmF1bHQ6IG5ydHMxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJOUlRTMSI7CisJCWdyb3VwcyA9ICJOUlRTMSI7CisJfTsKKworCXBpbmN0cmxfbnJ0czJfZGVmYXVsdDogbnJ0czJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIk5SVFMyIjsKKwkJZ3JvdXBzID0gIk5SVFMyIjsKKwl9OworCisJcGluY3RybF9ucnRzM19kZWZhdWx0OiBucnRzM19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiTlJUUzMiOworCQlncm91cHMgPSAiTlJUUzMiOworCX07CisKKwlwaW5jdHJsX25ydHM0X2RlZmF1bHQ6IG5ydHM0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJOUlRTNCI7CisJCWdyb3VwcyA9ICJOUlRTNCI7CisJfTsKKworCXBpbmN0cmxfb3NjY2xrX2RlZmF1bHQ6IG9zY2Nsa19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiT1NDQ0xLIjsKKwkJZ3JvdXBzID0gIk9TQ0NMSyI7CisJfTsKKworCXBpbmN0cmxfcGV3YWtlX2RlZmF1bHQ6IHBld2FrZV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUEVXQUtFIjsKKwkJZ3JvdXBzID0gIlBFV0FLRSI7CisJfTsKKworCXBpbmN0cmxfcHdtMF9kZWZhdWx0OiBwd20wX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJQV00wIjsKKwkJZ3JvdXBzID0gIlBXTTAiOworCX07CisKKwlwaW5jdHJsX3B3bTFfZGVmYXVsdDogcHdtMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUFdNMSI7CisJCWdyb3VwcyA9ICJQV00xIjsKKwl9OworCisJcGluY3RybF9wd20xMGcwX2RlZmF1bHQ6IHB3bTEwZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlBXTTEwIjsKKwkJZ3JvdXBzID0gIlBXTTEwRzAiOworCX07CisKKwlwaW5jdHJsX3B3bTEwZzFfZGVmYXVsdDogcHdtMTBnMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUFdNMTAiOworCQlncm91cHMgPSAiUFdNMTBHMSI7CisJfTsKKworCXBpbmN0cmxfcHdtMTFnMF9kZWZhdWx0OiBwd20xMWcwX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJQV00xMSI7CisJCWdyb3VwcyA9ICJQV00xMUcwIjsKKwl9OworCisJcGluY3RybF9wd20xMWcxX2RlZmF1bHQ6IHB3bTExZzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlBXTTExIjsKKwkJZ3JvdXBzID0gIlBXTTExRzEiOworCX07CisKKwlwaW5jdHJsX3B3bTEyZzBfZGVmYXVsdDogcHdtMTJnMF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUFdNMTIiOworCQlncm91cHMgPSAiUFdNMTJHMCI7CisJfTsKKworCXBpbmN0cmxfcHdtMTJnMV9kZWZhdWx0OiBwd20xMmcxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJQV00xMiI7CisJCWdyb3VwcyA9ICJQV00xMkcxIjsKKwl9OworCisJcGluY3RybF9wd20xM2cwX2RlZmF1bHQ6IHB3bTEzZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlBXTTEzIjsKKwkJZ3JvdXBzID0gIlBXTTEzRzAiOworCX07CisKKwlwaW5jdHJsX3B3bTEzZzFfZGVmYXVsdDogcHdtMTNnMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUFdNMTMiOworCQlncm91cHMgPSAiUFdNMTNHMSI7CisJfTsKKworCXBpbmN0cmxfcHdtMTRnMF9kZWZhdWx0OiBwd20xNGcwX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJQV00xNCI7CisJCWdyb3VwcyA9ICJQV00xNEcwIjsKKwl9OworCisJcGluY3RybF9wd20xNGcxX2RlZmF1bHQ6IHB3bTE0ZzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlBXTTE0IjsKKwkJZ3JvdXBzID0gIlBXTTE0RzEiOworCX07CisKKwlwaW5jdHJsX3B3bTE1ZzBfZGVmYXVsdDogcHdtMTVnMF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUFdNMTUiOworCQlncm91cHMgPSAiUFdNMTVHMCI7CisJfTsKKworCXBpbmN0cmxfcHdtMTVnMV9kZWZhdWx0OiBwd20xNWcxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJQV00xNSI7CisJCWdyb3VwcyA9ICJQV00xNUcxIjsKKwl9OworCisJcGluY3RybF9wd20yX2RlZmF1bHQ6IHB3bTJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlBXTTIiOworCQlncm91cHMgPSAiUFdNMiI7CisJfTsKKworCXBpbmN0cmxfcHdtM19kZWZhdWx0OiBwd20zX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJQV00zIjsKKwkJZ3JvdXBzID0gIlBXTTMiOworCX07CisKKwlwaW5jdHJsX3B3bTRfZGVmYXVsdDogcHdtNF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUFdNNCI7CisJCWdyb3VwcyA9ICJQV000IjsKKwl9OworCisJcGluY3RybF9wd201X2RlZmF1bHQ6IHB3bTVfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlBXTTUiOworCQlncm91cHMgPSAiUFdNNSI7CisJfTsKKworCXBpbmN0cmxfcHdtNl9kZWZhdWx0OiBwd202X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJQV002IjsKKwkJZ3JvdXBzID0gIlBXTTYiOworCX07CisKKwlwaW5jdHJsX3B3bTdfZGVmYXVsdDogcHdtN19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUFdNNyI7CisJCWdyb3VwcyA9ICJQV003IjsKKwl9OworCisJcGluY3RybF9wd204ZzBfZGVmYXVsdDogcHdtOGcwX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJQV004IjsKKwkJZ3JvdXBzID0gIlBXTThHMCI7CisJfTsKKworCXBpbmN0cmxfcHdtOGcxX2RlZmF1bHQ6IHB3bThnMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUFdNOCI7CisJCWdyb3VwcyA9ICJQV004RzEiOworCX07CisKKwlwaW5jdHJsX3B3bTlnMF9kZWZhdWx0OiBwd205ZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlBXTTkiOworCQlncm91cHMgPSAiUFdNOUcwIjsKKwl9OworCisJcGluY3RybF9wd205ZzFfZGVmYXVsdDogcHdtOWcxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJQV005IjsKKwkJZ3JvdXBzID0gIlBXTTlHMSI7CisJfTsKKworCXBpbmN0cmxfcXNwaTFfZGVmYXVsdDogcXNwaTFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlFTUEkxIjsKKwkJZ3JvdXBzID0gIlFTUEkxIjsKKwl9OworCisJcGluY3RybF9xc3BpMl9kZWZhdWx0OiBxc3BpMl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUVNQSTIiOworCQlncm91cHMgPSAiUVNQSTIiOworCX07CisKKwlwaW5jdHJsX3JnbWlpMV9kZWZhdWx0OiByZ21paTFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlJHTUlJMSI7CisJCWdyb3VwcyA9ICJSR01JSTEiOworCX07CisKKwlwaW5jdHJsX3JnbWlpMl9kZWZhdWx0OiByZ21paTJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlJHTUlJMiI7CisJCWdyb3VwcyA9ICJSR01JSTIiOworCX07CisKKwlwaW5jdHJsX3JnbWlpM19kZWZhdWx0OiByZ21paTNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlJHTUlJMyI7CisJCWdyb3VwcyA9ICJSR01JSTMiOworCX07CisKKwlwaW5jdHJsX3JnbWlpNF9kZWZhdWx0OiByZ21paTRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlJHTUlJNCI7CisJCWdyb3VwcyA9ICJSR01JSTQiOworCX07CisKKwlwaW5jdHJsX3JtaWkxX2RlZmF1bHQ6IHJtaWkxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJSTUlJMSI7CisJCWdyb3VwcyA9ICJSTUlJMSI7CisJfTsKKworCXBpbmN0cmxfcm1paTJfZGVmYXVsdDogcm1paTJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlJNSUkyIjsKKwkJZ3JvdXBzID0gIlJNSUkyIjsKKwl9OworCisJcGluY3RybF9ybWlpM19kZWZhdWx0OiBybWlpM19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUk1JSTMiOworCQlncm91cHMgPSAiUk1JSTMiOworCX07CisKKwlwaW5jdHJsX3JtaWk0X2RlZmF1bHQ6IHJtaWk0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJSTUlJNCI7CisJCWdyb3VwcyA9ICJSTUlJNCI7CisJfTsKKworCXBpbmN0cmxfcnhkMV9kZWZhdWx0OiByeGQxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJSWEQxIjsKKwkJZ3JvdXBzID0gIlJYRDEiOworCX07CisKKwlwaW5jdHJsX3J4ZDJfZGVmYXVsdDogcnhkMl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiUlhEMiI7CisJCWdyb3VwcyA9ICJSWEQyIjsKKwl9OworCisJcGluY3RybF9yeGQzX2RlZmF1bHQ6IHJ4ZDNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlJYRDMiOworCQlncm91cHMgPSAiUlhEMyI7CisJfTsKKworCXBpbmN0cmxfcnhkNF9kZWZhdWx0OiByeGQ0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJSWEQ0IjsKKwkJZ3JvdXBzID0gIlJYRDQiOworCX07CisKKwlwaW5jdHJsX3NhbHQxX2RlZmF1bHQ6IHNhbHQxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJTQUxUMSI7CisJCWdyb3VwcyA9ICJTQUxUMSI7CisJfTsKKworCXBpbmN0cmxfc2FsdDEwZzBfZGVmYXVsdDogc2FsdDEwZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxMCI7CisJCWdyb3VwcyA9ICJTQUxUMTBHMCI7CisJfTsKKworCXBpbmN0cmxfc2FsdDEwZzFfZGVmYXVsdDogc2FsdDEwZzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxMCI7CisJCWdyb3VwcyA9ICJTQUxUMTBHMSI7CisJfTsKKworCXBpbmN0cmxfc2FsdDExZzBfZGVmYXVsdDogc2FsdDExZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxMSI7CisJCWdyb3VwcyA9ICJTQUxUMTFHMCI7CisJfTsKKworCXBpbmN0cmxfc2FsdDExZzFfZGVmYXVsdDogc2FsdDExZzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxMSI7CisJCWdyb3VwcyA9ICJTQUxUMTFHMSI7CisJfTsKKworCXBpbmN0cmxfc2FsdDEyZzBfZGVmYXVsdDogc2FsdDEyZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxMiI7CisJCWdyb3VwcyA9ICJTQUxUMTJHMCI7CisJfTsKKworCXBpbmN0cmxfc2FsdDEyZzFfZGVmYXVsdDogc2FsdDEyZzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxMiI7CisJCWdyb3VwcyA9ICJTQUxUMTJHMSI7CisJfTsKKworCXBpbmN0cmxfc2FsdDEzZzBfZGVmYXVsdDogc2FsdDEzZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxMyI7CisJCWdyb3VwcyA9ICJTQUxUMTNHMCI7CisJfTsKKworCXBpbmN0cmxfc2FsdDEzZzFfZGVmYXVsdDogc2FsdDEzZzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxMyI7CisJCWdyb3VwcyA9ICJTQUxUMTNHMSI7CisJfTsKKworCXBpbmN0cmxfc2FsdDE0ZzBfZGVmYXVsdDogc2FsdDE0ZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxNCI7CisJCWdyb3VwcyA9ICJTQUxUMTRHMCI7CisJfTsKKworCXBpbmN0cmxfc2FsdDE0ZzFfZGVmYXVsdDogc2FsdDE0ZzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxNCI7CisJCWdyb3VwcyA9ICJTQUxUMTRHMSI7CisJfTsKKworCXBpbmN0cmxfc2FsdDE1ZzBfZGVmYXVsdDogc2FsdDE1ZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxNSI7CisJCWdyb3VwcyA9ICJTQUxUMTVHMCI7CisJfTsKKworCXBpbmN0cmxfc2FsdDE1ZzFfZGVmYXVsdDogc2FsdDE1ZzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxNSI7CisJCWdyb3VwcyA9ICJTQUxUMTVHMSI7CisJfTsKKworCXBpbmN0cmxfc2FsdDE2ZzBfZGVmYXVsdDogc2FsdDE2ZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxNiI7CisJCWdyb3VwcyA9ICJTQUxUMTZHMCI7CisJfTsKKworCXBpbmN0cmxfc2FsdDE2ZzFfZGVmYXVsdDogc2FsdDE2ZzFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQxNiI7CisJCWdyb3VwcyA9ICJTQUxUMTZHMSI7CisJfTsKKworCXBpbmN0cmxfc2FsdDJfZGVmYXVsdDogc2FsdDJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQyIjsKKwkJZ3JvdXBzID0gIlNBTFQyIjsKKwl9OworCisJcGluY3RybF9zYWx0M19kZWZhdWx0OiBzYWx0M19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU0FMVDMiOworCQlncm91cHMgPSAiU0FMVDMiOworCX07CisKKwlwaW5jdHJsX3NhbHQ0X2RlZmF1bHQ6IHNhbHQ0X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJTQUxUNCI7CisJCWdyb3VwcyA9ICJTQUxUNCI7CisJfTsKKworCXBpbmN0cmxfc2FsdDVfZGVmYXVsdDogc2FsdDVfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQ1IjsKKwkJZ3JvdXBzID0gIlNBTFQ1IjsKKwl9OworCisJcGluY3RybF9zYWx0Nl9kZWZhdWx0OiBzYWx0Nl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU0FMVDYiOworCQlncm91cHMgPSAiU0FMVDYiOworCX07CisKKwlwaW5jdHJsX3NhbHQ3X2RlZmF1bHQ6IHNhbHQ3X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJTQUxUNyI7CisJCWdyb3VwcyA9ICJTQUxUNyI7CisJfTsKKworCXBpbmN0cmxfc2FsdDhfZGVmYXVsdDogc2FsdDhfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQ4IjsKKwkJZ3JvdXBzID0gIlNBTFQ4IjsKKwl9OworCisJcGluY3RybF9zYWx0OWcwX2RlZmF1bHQ6IHNhbHQ5ZzBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNBTFQ5IjsKKwkJZ3JvdXBzID0gIlNBTFQ5RzAiOworCX07CisKKwlwaW5jdHJsX3NhbHQ5ZzFfZGVmYXVsdDogc2FsdDlnMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU0FMVDkiOworCQlncm91cHMgPSAiU0FMVDlHMSI7CisJfTsKKworCXBpbmN0cmxfc2QxX2RlZmF1bHQ6IHNkMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU0QxIjsKKwkJZ3JvdXBzID0gIlNEMSI7CisJfTsKKworCXBpbmN0cmxfc2QyX2RlZmF1bHQ6IHNkMl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU0QyIjsKKwkJZ3JvdXBzID0gIlNEMiI7CisJfTsKKworCXBpbmN0cmxfc2QzX2RlZmF1bHQ6IHNkM19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU0QzIjsKKwkJZ3JvdXBzID0gIlNEMyI7CisJfTsKKworCXBpbmN0cmxfZW1tY19kZWZhdWx0OiBlbW1jX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJTRDMiOworCQlncm91cHMgPSAiRU1NQyI7CisJfTsKKworCXBpbmN0cmxfc2dwbTFfZGVmYXVsdDogc2dwbTFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNHUE0xIjsKKwkJZ3JvdXBzID0gIlNHUE0xIjsKKwl9OworCisJcGluY3RybF9zZ3BzMV9kZWZhdWx0OiBzZ3BzMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU0dQUzEiOworCQlncm91cHMgPSAiU0dQUzEiOworCX07CisKKwlwaW5jdHJsX3Npb29uY3RybF9kZWZhdWx0OiBzaW9vbmN0cmxfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNJT09OQ1RSTCI7CisJCWdyb3VwcyA9ICJTSU9PTkNUUkwiOworCX07CisKKwlwaW5jdHJsX3Npb3BiaV9kZWZhdWx0OiBzaW9wYmlfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNJT1BCSSI7CisJCWdyb3VwcyA9ICJTSU9QQkkiOworCX07CisKKwlwaW5jdHJsX3Npb3Bib19kZWZhdWx0OiBzaW9wYm9fZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNJT1BCTyI7CisJCWdyb3VwcyA9ICJTSU9QQk8iOworCX07CisKKwlwaW5jdHJsX3Npb3B3cmVxX2RlZmF1bHQ6IHNpb3B3cmVxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJTSU9QV1JFUSI7CisJCWdyb3VwcyA9ICJTSU9QV1JFUSI7CisJfTsKKworCXBpbmN0cmxfc2lvcHdyZ2RfZGVmYXVsdDogc2lvcHdyZ2RfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNJT1BXUkdEIjsKKwkJZ3JvdXBzID0gIlNJT1BXUkdEIjsKKwl9OworCisJcGluY3RybF9zaW9zM19kZWZhdWx0OiBzaW9zM19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU0lPUzMiOworCQlncm91cHMgPSAiU0lPUzMiOworCX07CisKKwlwaW5jdHJsX3Npb3M1X2RlZmF1bHQ6IHNpb3M1X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJTSU9TNSI7CisJCWdyb3VwcyA9ICJTSU9TNSI7CisJfTsKKworCXBpbmN0cmxfc2lvc2NpX2RlZmF1bHQ6IHNpb3NjaV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU0lPU0NJIjsKKwkJZ3JvdXBzID0gIlNJT1NDSSI7CisJfTsKKworCXBpbmN0cmxfc3BpMV9kZWZhdWx0OiBzcGkxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJTUEkxIjsKKwkJZ3JvdXBzID0gIlNQSTEiOworCX07CisKKwlwaW5jdHJsX3NwaTFhYnJfZGVmYXVsdDogc3BpMWFicl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU1BJMUFCUiI7CisJCWdyb3VwcyA9ICJTUEkxQUJSIjsKKwl9OworCisJcGluY3RybF9zcGkxY3MxX2RlZmF1bHQ6IHNwaTFjczFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNQSTFDUzEiOworCQlncm91cHMgPSAiU1BJMUNTMSI7CisJfTsKKworCXBpbmN0cmxfc3BpMXdwX2RlZmF1bHQ6IHNwaTF3cF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU1BJMVdQIjsKKwkJZ3JvdXBzID0gIlNQSTFXUCI7CisJfTsKKworCXBpbmN0cmxfc3BpMl9kZWZhdWx0OiBzcGkyX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJTUEkyIjsKKwkJZ3JvdXBzID0gIlNQSTIiOworCX07CisKKwlwaW5jdHJsX3NwaTJjczFfZGVmYXVsdDogc3BpMmNzMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiU1BJMkNTMSI7CisJCWdyb3VwcyA9ICJTUEkyQ1MxIjsKKwl9OworCisJcGluY3RybF9zcGkyY3MyX2RlZmF1bHQ6IHNwaTJjczJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlNQSTJDUzIiOworCQlncm91cHMgPSAiU1BJMkNTMiI7CisJfTsKKworCXBpbmN0cmxfdGFjaDBfZGVmYXVsdDogdGFjaDBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0gwIjsKKwkJZ3JvdXBzID0gIlRBQ0gwIjsKKwl9OworCisJcGluY3RybF90YWNoMV9kZWZhdWx0OiB0YWNoMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVEFDSDEiOworCQlncm91cHMgPSAiVEFDSDEiOworCX07CisKKwlwaW5jdHJsX3RhY2gxMF9kZWZhdWx0OiB0YWNoMTBfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0gxMCI7CisJCWdyb3VwcyA9ICJUQUNIMTAiOworCX07CisKKwlwaW5jdHJsX3RhY2gxMV9kZWZhdWx0OiB0YWNoMTFfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0gxMSI7CisJCWdyb3VwcyA9ICJUQUNIMTEiOworCX07CisKKwlwaW5jdHJsX3RhY2gxMl9kZWZhdWx0OiB0YWNoMTJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0gxMiI7CisJCWdyb3VwcyA9ICJUQUNIMTIiOworCX07CisKKwlwaW5jdHJsX3RhY2gxM19kZWZhdWx0OiB0YWNoMTNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0gxMyI7CisJCWdyb3VwcyA9ICJUQUNIMTMiOworCX07CisKKwlwaW5jdHJsX3RhY2gxNF9kZWZhdWx0OiB0YWNoMTRfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0gxNCI7CisJCWdyb3VwcyA9ICJUQUNIMTQiOworCX07CisKKwlwaW5jdHJsX3RhY2gxNV9kZWZhdWx0OiB0YWNoMTVfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0gxNSI7CisJCWdyb3VwcyA9ICJUQUNIMTUiOworCX07CisKKwlwaW5jdHJsX3RhY2gyX2RlZmF1bHQ6IHRhY2gyX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJUQUNIMiI7CisJCWdyb3VwcyA9ICJUQUNIMiI7CisJfTsKKworCXBpbmN0cmxfdGFjaDNfZGVmYXVsdDogdGFjaDNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0gzIjsKKwkJZ3JvdXBzID0gIlRBQ0gzIjsKKwl9OworCisJcGluY3RybF90YWNoNF9kZWZhdWx0OiB0YWNoNF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVEFDSDQiOworCQlncm91cHMgPSAiVEFDSDQiOworCX07CisKKwlwaW5jdHJsX3RhY2g1X2RlZmF1bHQ6IHRhY2g1X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJUQUNINSI7CisJCWdyb3VwcyA9ICJUQUNINSI7CisJfTsKKworCXBpbmN0cmxfdGFjaDZfZGVmYXVsdDogdGFjaDZfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0g2IjsKKwkJZ3JvdXBzID0gIlRBQ0g2IjsKKwl9OworCisJcGluY3RybF90YWNoN19kZWZhdWx0OiB0YWNoN19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVEFDSDciOworCQlncm91cHMgPSAiVEFDSDciOworCX07CisKKwlwaW5jdHJsX3RhY2g4X2RlZmF1bHQ6IHRhY2g4X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJUQUNIOCI7CisJCWdyb3VwcyA9ICJUQUNIOCI7CisJfTsKKworCXBpbmN0cmxfdGFjaDlfZGVmYXVsdDogdGFjaDlfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRBQ0g5IjsKKwkJZ3JvdXBzID0gIlRBQ0g5IjsKKwl9OworCisJcGluY3RybF90aHJ1MF9kZWZhdWx0OiB0aHJ1MF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVEhSVTAiOworCQlncm91cHMgPSAiVEhSVTAiOworCX07CisKKwlwaW5jdHJsX3RocnUxX2RlZmF1bHQ6IHRocnUxX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJUSFJVMSI7CisJCWdyb3VwcyA9ICJUSFJVMSI7CisJfTsKKworCXBpbmN0cmxfdGhydTJfZGVmYXVsdDogdGhydTJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRIUlUyIjsKKwkJZ3JvdXBzID0gIlRIUlUyIjsKKwl9OworCisJcGluY3RybF90aHJ1M19kZWZhdWx0OiB0aHJ1M19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVEhSVTMiOworCQlncm91cHMgPSAiVEhSVTMiOworCX07CisKKwlwaW5jdHJsX3R4ZDFfZGVmYXVsdDogdHhkMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVFhEMSI7CisJCWdyb3VwcyA9ICJUWEQxIjsKKwl9OworCisJcGluY3RybF90eGQyX2RlZmF1bHQ6IHR4ZDJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlRYRDIiOworCQlncm91cHMgPSAiVFhEMiI7CisJfTsKKworCXBpbmN0cmxfdHhkM19kZWZhdWx0OiB0eGQzX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJUWEQzIjsKKwkJZ3JvdXBzID0gIlRYRDMiOworCX07CisKKwlwaW5jdHJsX3R4ZDRfZGVmYXVsdDogdHhkNF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVFhENCI7CisJCWdyb3VwcyA9ICJUWEQ0IjsKKwl9OworCisJcGluY3RybF91YXJ0MTBfZGVmYXVsdDogdWFydDEwX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJVQVJUMTAiOworCQlncm91cHMgPSAiVUFSVDEwIjsKKwl9OworCisJcGluY3RybF91YXJ0MTFfZGVmYXVsdDogdWFydDExX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJVQVJUMTEiOworCQlncm91cHMgPSAiVUFSVDExIjsKKwl9OworCisJcGluY3RybF91YXJ0MTJnMF9kZWZhdWx0OiB1YXJ0MTJnMF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVUFSVDEyIjsKKwkJZ3JvdXBzID0gIlVBUlQxMkcwIjsKKwl9OworCisJcGluY3RybF91YXJ0MTJnMV9kZWZhdWx0OiB1YXJ0MTJnMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVUFSVDEyIjsKKwkJZ3JvdXBzID0gIlVBUlQxMkcxIjsKKwl9OworCisJcGluY3RybF91YXJ0MTNnMF9kZWZhdWx0OiB1YXJ0MTNnMF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVUFSVDEzIjsKKwkJZ3JvdXBzID0gIlVBUlQxM0cwIjsKKwl9OworCisJcGluY3RybF91YXJ0MTNnMV9kZWZhdWx0OiB1YXJ0MTNnMV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVUFSVDEzIjsKKwkJZ3JvdXBzID0gIlVBUlQxM0cxIjsKKwl9OworCisJcGluY3RybF91YXJ0Nl9kZWZhdWx0OiB1YXJ0Nl9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVUFSVDYiOworCQlncm91cHMgPSAiVUFSVDYiOworCX07CisKKwlwaW5jdHJsX3VhcnQ3X2RlZmF1bHQ6IHVhcnQ3X2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJVQVJUNyI7CisJCWdyb3VwcyA9ICJVQVJUNyI7CisJfTsKKworCXBpbmN0cmxfdWFydDhfZGVmYXVsdDogdWFydDhfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlVBUlQ4IjsKKwkJZ3JvdXBzID0gIlVBUlQ4IjsKKwl9OworCisJcGluY3RybF91YXJ0OV9kZWZhdWx0OiB1YXJ0OV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVUFSVDkiOworCQlncm91cHMgPSAiVUFSVDkiOworCX07CisKKwlwaW5jdHJsX3ZiX2RlZmF1bHQ6IHZiX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJWQiI7CisJCWdyb3VwcyA9ICJWQiI7CisJfTsKKworCXBpbmN0cmxfdmdhaHNfZGVmYXVsdDogdmdhaHNfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIlZHQUhTIjsKKwkJZ3JvdXBzID0gIlZHQUhTIjsKKwl9OworCisJcGluY3RybF92Z2F2c19kZWZhdWx0OiB2Z2F2c19kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiVkdBVlMiOworCQlncm91cHMgPSAiVkdBVlMiOworCX07CisKKwlwaW5jdHJsX3dkdHJzdDFfZGVmYXVsdDogd2R0cnN0MV9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiV0RUUlNUMSI7CisJCWdyb3VwcyA9ICJXRFRSU1QxIjsKKwl9OworCisJcGluY3RybF93ZHRyc3QyX2RlZmF1bHQ6IHdkdHJzdDJfZGVmYXVsdCB7CisJCWZ1bmN0aW9uID0gIldEVFJTVDIiOworCQlncm91cHMgPSAiV0RUUlNUMiI7CisJfTsKKworCXBpbmN0cmxfd2R0cnN0M19kZWZhdWx0OiB3ZHRyc3QzX2RlZmF1bHQgeworCQlmdW5jdGlvbiA9ICJXRFRSU1QzIjsKKwkJZ3JvdXBzID0gIldEVFJTVDMiOworCX07CisKKwlwaW5jdHJsX3dkdHJzdDRfZGVmYXVsdDogd2R0cnN0NF9kZWZhdWx0IHsKKwkJZnVuY3Rpb24gPSAiV0RUUlNUNCI7CisJCWdyb3VwcyA9ICJXRFRSU1Q0IjsKKwl9OworfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2FzcGVlZC1nNi5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvYXNwZWVkLWc2LmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ExNDIyZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FzcGVlZC1nNi5kdHNpCkBAIC0wLDAgKzEsMjYxIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorLy8gQ29weXJpZ2h0IDIwMTkgSUJNIENvcnAuCisKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hcm0tZ2ljLmg+CisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svYXN0MjYwMC1jbG9jay5oPgorCisvIHsKKwltb2RlbCA9ICJBc3BlZWQgQk1DIjsKKwljb21wYXRpYmxlID0gImFzcGVlZCxhc3QyNjAwIjsKKwkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkjc2l6ZS1jZWxscyA9IDwxPjsKKwlpbnRlcnJ1cHQtcGFyZW50ID0gPCZnaWM+OworCisJYWxpYXNlcyB7CisJCXNlcmlhbDQgPSAmdWFydDU7CisJfTsKKworCisJY3B1cyB7CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJZW5hYmxlLW1ldGhvZCA9ICJhc3BlZWQsYXN0MjYwMC1zbXAiOworCisJCWNwdUBmMDAgeworCQkJY29tcGF0aWJsZSA9ICJhcm0sY29ydGV4LWE3IjsKKwkJCWRldmljZV90eXBlID0gImNwdSI7CisJCQlyZWcgPSA8MHhmMDA+OworCQl9OworCisJCWNwdUBmMDEgeworCQkJY29tcGF0aWJsZSA9ICJhcm0sY29ydGV4LWE3IjsKKwkJCWRldmljZV90eXBlID0gImNwdSI7CisJCQlyZWcgPSA8MHhmMDE+OworCQl9OworCX07CisKKwl0aW1lciB7CisJCWNvbXBhdGlibGUgPSAiYXJtLGFybXY3LXRpbWVyIjsKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmZ2ljPjsKKwkJaW50ZXJydXB0cyA9IDxHSUNfUFBJIDEzIChHSUNfQ1BVX01BU0tfU0lNUExFKDIpIHwgSVJRX1RZUEVfTEVWRUxfTE9XKT4sCisJCQkgICAgIDxHSUNfUFBJIDE0IChHSUNfQ1BVX01BU0tfU0lNUExFKDIpIHwgSVJRX1RZUEVfTEVWRUxfTE9XKT4sCisJCQkgICAgIDxHSUNfUFBJIDExIChHSUNfQ1BVX01BU0tfU0lNUExFKDIpIHwgSVJRX1RZUEVfTEVWRUxfTE9XKT4sCisJCQkgICAgIDxHSUNfUFBJIDEwIChHSUNfQ1BVX01BU0tfU0lNUExFKDIpIHwgSVJRX1RZUEVfTEVWRUxfTE9XKT47CisJCWNsb2NrcyA9IDwmc3lzY29uIEFTUEVFRF9DTEtfSFBMTD47CisJCWFybSxjcHUtcmVnaXN0ZXJzLW5vdC1mdy1jb25maWd1cmVkOworCX07CisKKwlhaGIgeworCQljb21wYXRpYmxlID0gInNpbXBsZS1idXMiOworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MT47CisJCWRldmljZV90eXBlID0gInNvYyI7CisJCXJhbmdlczsKKworCQlnaWM6IGludGVycnVwdC1jb250cm9sbGVyQDQwNDYxMDAwIHsKKwkJCWNvbXBhdGlibGUgPSAiYXJtLGNvcnRleC1hNy1naWMiOworCQkJaW50ZXJydXB0cyA9IDxHSUNfUFBJIDkgKEdJQ19DUFVfTUFTS19TSU1QTEUoMikgfCBJUlFfVFlQRV9MRVZFTF9ISUdIKT47CisJCQkjaW50ZXJydXB0LWNlbGxzID0gPDM+OworCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CisJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZnaWM+OworCQkJcmVnID0gPDB4NDA0NjEwMDAgMHgxMDAwPiwKKwkJCSAgICA8MHg0MDQ2MjAwMCAweDEwMDA+LAorCQkJICAgIDwweDQwNDY0MDAwIDB4MjAwMD4sCisJCQkgICAgPDB4NDA0NjYwMDAgMHgyMDAwPjsKKwkJCX07CisKKwkJbWRpbzA6IG1kaW9AMWU2NTAwMDAgeworCQkJY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjYwMC1tZGlvIjsKKwkJCXJlZyA9IDwweDFlNjUwMDAwIDB4OD47CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDA+OworCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKwkJfTsKKworCQltZGlvMTogbWRpb0AxZTY1MDAwOCB7CisJCQljb21wYXRpYmxlID0gImFzcGVlZCxhc3QyNjAwLW1kaW8iOworCQkJcmVnID0gPDB4MWU2NTAwMDggMHg4PjsKKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJI3NpemUtY2VsbHMgPSA8MD47CisJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQl9OworCisJCW1kaW8yOiBtZGlvQDFlNjUwMDEwIHsKKwkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtbWRpbyI7CisJCQlyZWcgPSA8MHgxZTY1MDAxMCAweDg+OworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJCX07CisKKwkJbWRpbzM6IG1kaW9AMWU2NTAwMTggeworCQkJY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjYwMC1tZGlvIjsKKwkJCXJlZyA9IDwweDFlNjUwMDE4IDB4OD47CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDA+OworCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKwkJfTsKKworCQltYWMwOiBmdGdtYWNAMWU2NjAwMDAgeworCQkJY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjYwMC1tYWMiLCAiZmFyYWRheSxmdGdtYWMxMDAiOworCQkJcmVnID0gPDB4MWU2NjAwMDAgMHgxODA+OworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJCWludGVycnVwdHMgPSA8R0lDX1NQSSAyIElSUV9UWVBFX0xFVkVMX0hJR0g+OworCQkJY2xvY2tzID0gPCZzeXNjb24gQVNQRUVEX0NMS19HQVRFX01BQzFDTEs+OworCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKwkJfTsKKworCQltYWMxOiBmdGdtYWNAMWU2ODAwMDAgeworCQkJY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjYwMC1tYWMiLCAiZmFyYWRheSxmdGdtYWMxMDAiOworCQkJcmVnID0gPDB4MWU2ODAwMDAgMHgxODA+OworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJCWludGVycnVwdHMgPSA8R0lDX1NQSSAzIElSUV9UWVBFX0xFVkVMX0hJR0g+OworCQkJY2xvY2tzID0gPCZzeXNjb24gQVNQRUVEX0NMS19HQVRFX01BQzJDTEs+OworCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKwkJfTsKKworCQltYWMyOiBmdGdtYWNAMWU2NzAwMDAgeworCQkJY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjYwMC1tYWMiLCAiZmFyYWRheSxmdGdtYWMxMDAiOworCQkJcmVnID0gPDB4MWU2NzAwMDAgMHgxODA+OworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJCWludGVycnVwdHMgPSA8R0lDX1NQSSAzMiBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKKwkJCWNsb2NrcyA9IDwmc3lzY29uIEFTUEVFRF9DTEtfR0FURV9NQUMzQ0xLPjsKKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJCX07CisKKwkJbWFjMzogZnRnbWFjQDFlNjkwMDAwIHsKKwkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtbWFjIiwgImZhcmFkYXksZnRnbWFjMTAwIjsKKwkJCXJlZyA9IDwweDFlNjkwMDAwIDB4MTgwPjsKKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJI3NpemUtY2VsbHMgPSA8MD47CisJCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMzMgSVJRX1RZUEVfTEVWRUxfSElHSD47CisJCQljbG9ja3MgPSA8JnN5c2NvbiBBU1BFRURfQ0xLX0dBVEVfTUFDNENMSz47CisJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQl9OworCisJCWFwYiB7CisJCQljb21wYXRpYmxlID0gInNpbXBsZS1idXMiOworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwxPjsKKwkJCXJhbmdlczsKKworCQkJc3lzY29uOiBzeXNjb25AMWU2ZTIwMDAgeworCQkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtc2N1IiwgInN5c2NvbiIsICJzaW1wbGUtbWZkIjsKKwkJCQlyZWcgPSA8MHgxZTZlMjAwMCAweDEwMDA+OworCQkJCXJhbmdlcyA9IDwwIDB4MWU2ZTIwMDAgMHgxMDAwPjsKKwkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCQkjc2l6ZS1jZWxscyA9IDwxPjsKKwkJCQkjY2xvY2stY2VsbHMgPSA8MT47CisJCQkJI3Jlc2V0LWNlbGxzID0gPDE+OworCisJCQkJcGluY3RybDogcGluY3RybCB7CisJCQkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtcGluY3RybCI7CisJCQkJfTsKKworCQkJCXNtcC1tZW1yYW1AMTgwIHsKKwkJCQkJY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjYwMC1zbXBtZW0iOworCQkJCQlyZWcgPSA8MHgxODAgMHg0MD47CisJCQkJfTsKKwkJCX07CisKKwkJCXJuZzogaHdybmdAMWU2ZTI1MjQgeworCQkJCWNvbXBhdGlibGUgPSAidGltZXJpb21lbV9ybmciOworCQkJCXJlZyA9IDwweDFlNmUyNTI0IDB4ND47CisJCQkJcGVyaW9kID0gPDE+OworCQkJCXF1YWxpdHkgPSA8MTAwPjsKKwkJCX07CisKKwkJCXJ0YzogcnRjQDFlNzgxMDAwIHsKKwkJCQljb21wYXRpYmxlID0gImFzcGVlZCxhc3QyNjAwLXJ0YyI7CisJCQkJcmVnID0gPDB4MWU3ODEwMDAgMHgxOD47CisJCQkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDEzIElSUV9UWVBFX0xFVkVMX0hJR0g+OworCQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJCQl9OworCisJCQl1YXJ0NTogc2VyaWFsQDFlNzg0MDAwIHsKKwkJCQljb21wYXRpYmxlID0gIm5zMTY1NTBhIjsKKwkJCQlyZWcgPSA8MHgxZTc4NDAwMCAweDEwMDA+OworCQkJCXJlZy1zaGlmdCA9IDwyPjsKKwkJCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgOCBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKKwkJCQljbG9ja3MgPSA8JnN5c2NvbiBBU1BFRURfQ0xLX0dBVEVfVUFSVDVDTEs+OworCQkJCW5vLWxvb3BiYWNrLXRlc3Q7CisJCQl9OworCisJCQl3ZHQxOiB3YXRjaGRvZ0AxZTc4NTAwMCB7CisJCQkJY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjYwMC13ZHQiOworCQkJCXJlZyA9IDwweDFlNzg1MDAwIDB4NDA+OworCQkJfTsKKworCQkJd2R0Mjogd2F0Y2hkb2dAMWU3ODUwNDAgeworCQkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtd2R0IjsKKwkJCQlyZWcgPSA8MHgxZTc4NTA0MCAweDQwPjsKKwkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQkJfTsKKworCQkJd2R0Mzogd2F0Y2hkb2dAMWU3ODUwODAgeworCQkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtd2R0IjsKKwkJCQlyZWcgPSA8MHgxZTc4NTA4MCAweDQwPjsKKwkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQkJfTsKKworCQkJd2R0NDogd2F0Y2hkb2dAMWU3ODUwQzAgeworCQkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtd2R0IjsKKwkJCQlyZWcgPSA8MHgxZTc4NTBDMCAweDQwPjsKKwkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQkJfTsKKworCQkJc2RjOiBzZGNAMWU3NDAwMDAgeworCQkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtc2QtY29udHJvbGxlciI7CisJCQkJcmVnID0gPDB4MWU3NDAwMDAgMHgxMDA+OworCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJCSNzaXplLWNlbGxzID0gPDE+OworCQkJCXJhbmdlcyA9IDwwIDB4MWU3NDAwMDAgMHgxMDAwMD47CisJCQkJY2xvY2tzID0gPCZzeXNjb24gQVNQRUVEX0NMS19HQVRFX1NEQ0xLPjsKKwkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCisJCQkJc2RoY2kwOiBzZGhjaUAxZTc0MDEwMCB7CisJCQkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtc2RoY2kiLCAic2RoY2kiOworCQkJCQlyZWcgPSA8MHgxMDAgMHgxMDA+OworCQkJCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgNDMgSVJRX1RZUEVfTEVWRUxfSElHSD47CisJCQkJCXNkaGNpLGF1dG8tY21kMTI7CisJCQkJCWNsb2NrcyA9IDwmc3lzY29uIEFTUEVFRF9DTEtfU0RJTz47CisJCQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJCQkJfTsKKworCQkJCXNkaGNpMTogc2RoY2lAMWU3NDAyMDAgeworCQkJCQljb21wYXRpYmxlID0gImFzcGVlZCxhc3QyNjAwLXNkaGNpIiwgInNkaGNpIjsKKwkJCQkJcmVnID0gPDB4MjAwIDB4MTAwPjsKKwkJCQkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDQzIElSUV9UWVBFX0xFVkVMX0hJR0g+OworCQkJCQlzZGhjaSxhdXRvLWNtZDEyOworCQkJCQljbG9ja3MgPSA8JnN5c2NvbiBBU1BFRURfQ0xLX1NESU8+OworCQkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQkJCX07CisJCQl9OworCisJCQllbW1jOiBzZGNAMWU3NTAwMDAgeworCQkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtc2QtY29udHJvbGxlciI7CisJCQkJcmVnID0gPDB4MWU3NTAwMDAgMHgxMDA+OworCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJCSNzaXplLWNlbGxzID0gPDE+OworCQkJCXJhbmdlcyA9IDwwIDB4MWU3NTAwMDAgMHgxMDAwMD47CisJCQkJY2xvY2tzID0gPCZzeXNjb24gQVNQRUVEX0NMS19HQVRFX0VNTUNDTEs+OworCQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisKKwkJCQlzZGhjaUAxZTc1MDEwMCB7CisJCQkJCWNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtc2RoY2kiOworCQkJCQlyZWcgPSA8MHgxMDAgMHgxMDA+OworCQkJCQlzZGhjaSxhdXRvLWNtZDEyOworCQkJCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTUgSVJRX1RZUEVfTEVWRUxfSElHSD47CisJCQkJCWNsb2NrcyA9IDwmc3lzY29uIEFTUEVFRF9DTEtfRU1NQz47CisJCQkJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJCQkJCXBpbmN0cmwtMCA9IDwmcGluY3RybF9lbW1jX2RlZmF1bHQ+OworCQkJCX07CisJCQl9OworCQl9OworCX07Cit9OworCisjaW5jbHVkZSAiYXNwZWVkLWc2LXBpbmN0cmwuZHRzaSIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2RyYTctbDQuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL2RyYTctbDQuZHRzaQppbmRleCAyMWU1OTE0Li5lYTBlN2MxIDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib290L2R0cy9kcmE3LWw0LmR0c2kKKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvZHJhNy1sNC5kdHNpCkBAIC0xMTE4LDcgKzExMTgsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVAMjAwMDAgewkJCS8qIDB4NDgwMjAwMDAsIGFwIDMgMDQuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gInVhcnQzIjsKIAkJCXJlZyA9IDwweDIwMDUwIDB4ND4sCiAJCQkgICAgICA8MHgyMDA1NCAweDQ+LAogCQkJICAgICAgPDB4MjAwNTggMHg0PjsKQEAgLTEyNjMsNyArMTI2Miw2IEBACiAKIAkJZ3BpbzdfdGFyZ2V0OiB0YXJnZXQtbW9kdWxlQDUxMDAwIHsJCS8qIDB4NDgwNTEwMDAsIGFwIDQ1IDJlLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvNyI7CiAJCQlyZWcgPSA8MHg1MTAwMCAweDQ+LAogCQkJICAgICAgPDB4NTEwMTAgMHg0PiwKIAkJCSAgICAgIDwweDUxMTE0IDB4ND47CkBAIC0xMjk3LDcgKzEyOTUsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANTMwMDAgewkJCS8qIDB4NDgwNTMwMDAsIGFwIDM1IDM2LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvOCI7CiAJCQlyZWcgPSA8MHg1MzAwMCAweDQ+LAogCQkJICAgICAgPDB4NTMwMTAgMHg0PiwKIAkJCSAgICAgIDwweDUzMTE0IDB4ND47CkBAIC0xMzMxLDcgKzEzMjgsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANTUwMDAgewkJCS8qIDB4NDgwNTUwMDAsIGFwIDEzIDBlLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvMiI7CiAJCQlyZWcgPSA8MHg1NTAwMCAweDQ+LAogCQkJICAgICAgPDB4NTUwMTAgMHg0PiwKIAkJCSAgICAgIDwweDU1MTE0IDB4ND47CkBAIC0xMzY1LDcgKzEzNjEsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANTcwMDAgewkJCS8qIDB4NDgwNTcwMDAsIGFwIDE1IDA2LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvMyI7CiAJCQlyZWcgPSA8MHg1NzAwMCAweDQ+LAogCQkJICAgICAgPDB4NTcwMTAgMHg0PiwKIAkJCSAgICAgIDwweDU3MTE0IDB4ND47CkBAIC0xMzk5LDcgKzEzOTQsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANTkwMDAgewkJCS8qIDB4NDgwNTkwMDAsIGFwIDE3IDE2LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvNCI7CiAJCQlyZWcgPSA8MHg1OTAwMCAweDQ+LAogCQkJICAgICAgPDB4NTkwMTAgMHg0PiwKIAkJCSAgICAgIDwweDU5MTE0IDB4ND47CkBAIC0xNDMzLDcgKzE0MjcsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANWIwMDAgewkJCS8qIDB4NDgwNWIwMDAsIGFwIDE5IDFlLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvNSI7CiAJCQlyZWcgPSA8MHg1YjAwMCAweDQ+LAogCQkJICAgICAgPDB4NWIwMTAgMHg0PiwKIAkJCSAgICAgIDwweDViMTE0IDB4ND47CkBAIC0xNDY3LDcgKzE0NjAsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANWQwMDAgewkJCS8qIDB4NDgwNWQwMDAsIGFwIDIxIDI2LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvNiI7CiAJCQlyZWcgPSA8MHg1ZDAwMCAweDQ+LAogCQkJICAgICAgPDB4NWQwMTAgMHg0PiwKIAkJCSAgICAgIDwweDVkMTE0IDB4ND47CkBAIC0xNTAxLDcgKzE0OTMsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANjAwMDAgewkJCS8qIDB4NDgwNjAwMDAsIGFwIDIzIDMyLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJpMmMzIjsKIAkJCXJlZyA9IDwweDYwMDAwIDB4OD4sCiAJCQkgICAgICA8MHg2MDAxMCAweDg+LAogCQkJICAgICAgPDB4NjAwOTAgMHg4PjsKQEAgLTE1MzQsNyArMTUyNSw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUA2NjAwMCB7CQkJLyogMHg0ODA2NjAwMCwgYXAgNjMgMTQuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gInVhcnQ1IjsKIAkJCXJlZyA9IDwweDY2MDUwIDB4ND4sCiAJCQkgICAgICA8MHg2NjA1NCAweDQ+LAogCQkJICAgICAgPDB4NjYwNTggMHg0PjsKQEAgLTE1NjcsNyArMTU1Nyw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUA2ODAwMCB7CQkJLyogMHg0ODA2ODAwMCwgYXAgNTMgMWMuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gInVhcnQ2IjsKIAkJCXJlZyA9IDwweDY4MDUwIDB4ND4sCiAJCQkgICAgICA8MHg2ODA1NCAweDQ+LAogCQkJICAgICAgPDB4NjgwNTggMHg0PjsKQEAgLTE2MDAsNyArMTU4OSw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUA2YTAwMCB7CQkJLyogMHg0ODA2YTAwMCwgYXAgMjQgMjQuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gInVhcnQxIjsKIAkJCXJlZyA9IDwweDZhMDUwIDB4ND4sCiAJCQkgICAgICA8MHg2YTA1NCAweDQ+LAogCQkJICAgICAgPDB4NmEwNTggMHg0PjsKQEAgLTE2MzMsNyArMTYyMSw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUA2YzAwMCB7CQkJLyogMHg0ODA2YzAwMCwgYXAgMjYgMmMuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gInVhcnQyIjsKIAkJCXJlZyA9IDwweDZjMDUwIDB4ND4sCiAJCQkgICAgICA8MHg2YzA1NCAweDQ+LAogCQkJICAgICAgPDB4NmMwNTggMHg0PjsKQEAgLTE2NjYsNyArMTY1Myw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUA2ZTAwMCB7CQkJLyogMHg0ODA2ZTAwMCwgYXAgMjggMGMuMSAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gInVhcnQ0IjsKIAkJCXJlZyA9IDwweDZlMDUwIDB4ND4sCiAJCQkgICAgICA8MHg2ZTA1NCAweDQ+LAogCQkJICAgICAgPDB4NmUwNTggMHg0PjsKQEAgLTE2OTksNyArMTY4NSw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUA3MDAwMCB7CQkJLyogMHg0ODA3MDAwMCwgYXAgMzAgMjIuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gImkyYzEiOwogCQkJcmVnID0gPDB4NzAwMDAgMHg4PiwKIAkJCSAgICAgIDwweDcwMDEwIDB4OD4sCiAJCQkgICAgICA8MHg3MDA5MCAweDg+OwpAQCAtMTczMiw3ICsxNzE3LDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDcyMDAwIHsJCQkvKiAweDQ4MDcyMDAwLCBhcCAzMiAyYS4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAiaTJjMiI7CiAJCQlyZWcgPSA8MHg3MjAwMCAweDg+LAogCQkJICAgICAgPDB4NzIwMTAgMHg4PiwKIAkJCSAgICAgIDwweDcyMDkwIDB4OD47CkBAIC0xNzk1LDcgKzE3NzksNiBAQAogCiAJCXRhcmdldC1tb2R1bGVAN2EwMDAgewkJCS8qIDB4NDgwN2EwMDAsIGFwIDgxIDNhLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJpMmM0IjsKIAkJCXJlZyA9IDwweDdhMDAwIDB4OD4sCiAJCQkgICAgICA8MHg3YTAxMCAweDg+LAogCQkJICAgICAgPDB4N2EwOTAgMHg4PjsKQEAgLTE4MjgsNyArMTgxMSw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUA3YzAwMCB7CQkJLyogMHg0ODA3YzAwMCwgYXAgODMgNGEuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gImkyYzUiOwogCQkJcmVnID0gPDB4N2MwMDAgMHg4PiwKIAkJCSAgICAgIDwweDdjMDEwIDB4OD4sCiAJCQkgICAgICA8MHg3YzA5MCAweDg+OwpAQCAtMTk0Miw3ICsxOTI0LDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDk4MDAwIHsJCQkvKiAweDQ4MDk4MDAwLCBhcCA0NyAwOC4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDQiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAibWNzcGkxIjsKIAkJCXJlZyA9IDwweDk4MDAwIDB4ND4sCiAJCQkgICAgICA8MHg5ODAxMCAweDQ+OwogCQkJcmVnLW5hbWVzID0gInJldiIsICJzeXNjIjsKQEAgLTE5ODIsNyArMTk2Myw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUA5YTAwMCB7CQkJLyogMHg0ODA5YTAwMCwgYXAgNDkgMTAuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXA0IiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1jc3BpMiI7CiAJCQlyZWcgPSA8MHg5YTAwMCAweDQ+LAogCQkJICAgICAgPDB4OWEwMTAgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0yMDE3LDcgKzE5OTcsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVAOWMwMDAgewkJCS8qIDB4NDgwOWMwMDAsIGFwIDUxIDM4LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwNCIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJtbWMxIjsKIAkJCXJlZyA9IDwweDljMDAwIDB4ND4sCiAJCQkgICAgICA8MHg5YzAxMCAweDQ+OwogCQkJcmVnLW5hbWVzID0gInJldiIsICJzeXNjIjsKQEAgLTIwNzcsNyArMjA1Niw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUBhZDAwMCB7CQkJLyogMHg0ODBhZDAwMCwgYXAgNjEgMjAuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXA0IiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1tYzMiOwogCQkJcmVnID0gPDB4YWQwMDAgMHg0PiwKIAkJCSAgICAgIDwweGFkMDEwIDB4ND47CiAJCQlyZWctbmFtZXMgPSAicmV2IiwgInN5c2MiOwpAQCAtMjEzNyw3ICsyMTE1LDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQGI0MDAwIHsJCQkvKiAweDQ4MGI0MDAwLCBhcCA2NSA0MC4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDQiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAibW1jMiI7CiAJCQlyZWcgPSA8MHhiNDAwMCAweDQ+LAogCQkJICAgICAgPDB4YjQwMTAgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0yMTc0LDcgKzIxNTEsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVAYjgwMDAgewkJCS8qIDB4NDgwYjgwMDAsIGFwIDY3IDQ4LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwNCIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJtY3NwaTMiOwogCQkJcmVnID0gPDB4YjgwMDAgMHg0PiwKIAkJCSAgICAgIDwweGI4MDEwIDB4ND47CiAJCQlyZWctbmFtZXMgPSAicmV2IiwgInN5c2MiOwpAQCAtMjIwNiw3ICsyMTgyLDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQGJhMDAwIHsJCQkvKiAweDQ4MGJhMDAwLCBhcCA2OSAxOC4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDQiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAibWNzcGk0IjsKIAkJCXJlZyA9IDwweGJhMDAwIDB4ND4sCiAJCQkgICAgICA8MHhiYTAxMCAweDQ+OwogCQkJcmVnLW5hbWVzID0gInJldiIsICJzeXNjIjsKQEAgLTIyMzgsNyArMjIxMyw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUBkMTAwMCB7CQkJLyogMHg0ODBkMTAwMCwgYXAgNzEgMjguMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXA0IiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1tYzQiOwogCQkJcmVnID0gPDB4ZDEwMDAgMHg0PiwKIAkJCSAgICAgIDwweGQxMDEwIDB4ND47CiAJCQlyZWctbmFtZXMgPSAicmV2IiwgInN5c2MiOwpAQCAtMjM4NCw3ICsyMzU4LDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDIwMDAwIHsJCQkvKiAweDQ4NDIwMDAwLCBhcCA0NyAwMi4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAidWFydDciOwogCQkJcmVnID0gPDB4MjAwNTAgMHg0PiwKIAkJCSAgICAgIDwweDIwMDU0IDB4ND4sCiAJCQkgICAgICA8MHgyMDA1OCAweDQ+OwpAQCAtMjQxNSw3ICsyMzg4LDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDIyMDAwIHsJCQkvKiAweDQ4NDIyMDAwLCBhcCA0OSAwYS4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAidWFydDgiOwogCQkJcmVnID0gPDB4MjIwNTAgMHg0PiwKIAkJCSAgICAgIDwweDIyMDU0IDB4ND4sCiAJCQkgICAgICA8MHgyMjA1OCAweDQ+OwpAQCAtMjQ0Niw3ICsyNDE4LDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDI0MDAwIHsJCQkvKiAweDQ4NDI0MDAwLCBhcCA1MSAxMi4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAidWFydDkiOwogCQkJcmVnID0gPDB4MjQwNTAgMHg0PiwKIAkJCSAgICAgIDwweDI0MDU0IDB4ND4sCiAJCQkgICAgICA8MHgyNDA1OCAweDQ+OwpAQCAtMjczNSw3ICsyNzA2LDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDYwMDAwIHsJCQkvKiAweDQ4NDYwMDAwLCBhcCA5IDBlLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1kcmE3LW1jYXNwIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1jYXNwMSI7CiAJCQlyZWcgPSA8MHg2MDAwMCAweDQ+LAogCQkJICAgICAgPDB4NjAwMDQgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0yNzcyLDcgKzI3NDIsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANjQwMDAgewkJCS8qIDB4NDg0NjQwMDAsIGFwIDExIDFlLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1kcmE3LW1jYXNwIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1jYXNwMiI7CiAJCQlyZWcgPSA8MHg2NDAwMCAweDQ+LAogCQkJICAgICAgPDB4NjQwMDQgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0yODA5LDcgKzI3NzgsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANjgwMDAgewkJCS8qIDB4NDg0NjgwMDAsIGFwIDEzIDI2LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1kcmE3LW1jYXNwIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1jYXNwMyI7CiAJCQlyZWcgPSA8MHg2ODAwMCAweDQ+LAogCQkJICAgICAgPDB4NjgwMDQgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0yODQ1LDcgKzI4MTMsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANmMwMDAgewkJCS8qIDB4NDg0NmMwMDAsIGFwIDE1IDJlLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1kcmE3LW1jYXNwIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1jYXNwNCI7CiAJCQlyZWcgPSA8MHg2YzAwMCAweDQ+LAogCQkJICAgICAgPDB4NmMwMDQgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0yODgxLDcgKzI4NDgsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANzAwMDAgewkJCS8qIDB4NDg0NzAwMDAsIGFwIDE5IDM2LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1kcmE3LW1jYXNwIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1jYXNwNSI7CiAJCQlyZWcgPSA8MHg3MDAwMCAweDQ+LAogCQkJICAgICAgPDB4NzAwMDQgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0yOTE3LDcgKzI4ODMsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANzQwMDAgewkJCS8qIDB4NDg0NzQwMDAsIGFwIDM1IDE0LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1kcmE3LW1jYXNwIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1jYXNwNiI7CiAJCQlyZWcgPSA8MHg3NDAwMCAweDQ+LAogCQkJICAgICAgPDB4NzQwMDQgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0yOTUzLDcgKzI5MTgsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANzgwMDAgewkJCS8qIDB4NDg0NzgwMDAsIGFwIDM5IDBjLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1kcmE3LW1jYXNwIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1jYXNwNyI7CiAJCQlyZWcgPSA8MHg3ODAwMCAweDQ+LAogCQkJICAgICAgPDB4NzgwMDQgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0yOTg5LDcgKzI5NTMsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVAN2MwMDAgewkJCS8qIDB4NDg0N2MwMDAsIGFwIDQzIDA0LjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1kcmE3LW1jYXNwIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIm1jYXNwOCI7CiAJCQlyZWcgPSA8MHg3YzAwMCAweDQ+LAogCQkJICAgICAgPDB4N2MwMDQgMHg0PjsKIAkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CkBAIC0zMDQ1LDcgKzMwMDgsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVAODQwMDAgewkJCS8qIDB4NDg0ODQwMDAsIGFwIDMgMTAuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXA0LXNpbXBsZSIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJnbWFjIjsKIAkJCXJlZyA9IDwweDg1MjAwIDB4ND4sCiAJCQkgICAgICA8MHg4NTIwOCAweDQ+LAogCQkJICAgICAgPDB4ODUyMDQgMHg0PjsKQEAgLTMxMDMsOSArMzA2NSwxMCBAQAogCiAJCQkJZGF2aW5jaV9tZGlvOiBtZGlvQDEwMDAgewogCQkJCQljb21wYXRpYmxlID0gInRpLGNwc3ctbWRpbyIsInRpLGRhdmluY2lfbWRpbyI7CisJCQkJCWNsb2NrcyA9IDwmZ21hY19jbGtjdHJsIERSQTdfR01BQ19HTUFDX0NMS0NUUkwgMD47CisJCQkJCWNsb2NrLW5hbWVzID0gImZjayI7CiAJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKLQkJCQkJdGksaHdtb2RzID0gImRhdmluY2lfbWRpbyI7CiAJCQkJCWJ1c19mcmVxID0gPDEwMDAwMDA+OwogCQkJCQlyZWcgPSA8MHgxMDAwIDB4MTAwPjsKIAkJCQl9OwpAQCAtNDMxMSw3ICs0Mjc0LDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDAgewkJCS8qIDB4NGFlMTAwMDAsIGFwIDUgMjAuMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gImdwaW8xIjsKIAkJCXJlZyA9IDwweDAgMHg0PiwKIAkJCSAgICAgIDwweDEwIDB4ND4sCiAJCQkgICAgICA8MHgxMTQgMHg0PjsKQEAgLTQ0NzksNyArNDQ0MSw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUBiMDAwIHsJCQkvKiAweDRhZTJiMDAwLCBhcCAyOCAwMi4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAidWFydDEwIjsKIAkJCXJlZyA9IDwweGIwNTAgMHg0PiwKIAkJCSAgICAgIDwweGIwNTQgMHg0PiwKIAkJCSAgICAgIDwweGIwNTggMHg0PjsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS1kbGluay1kaXItNjg1LmR0cyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS1kbGluay1kaXItNjg1LmR0cwppbmRleCBiZmFhMmRlLi5lMjAzMGJhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib290L2R0cy9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHMKKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pLWRsaW5rLWRpci02ODUuZHRzCkBAIC03Miw3ICs3Miw2IEBACiAJCQlyZWcgPSA8MD47CiAJCQkvKiA1MCBucyBtaW4gcGVyaW9kID0gMjAgTUh6ICovCiAJCQlzcGktbWF4LWZyZXF1ZW5jeSA9IDwyMDAwMDAwMD47Ci0JCQlzcGktY3BvbDsgLyogQ2xvY2sgYWN0aXZlIGxvdyAqLwogCQkJdmNjLXN1cHBseSA9IDwmdmRpc3A+OwogCQkJaW92Y2Mtc3VwcGx5ID0gPCZ2ZGlzcD47CiAJCQl2Y2ktc3VwcGx5ID0gPCZ2ZGlzcD47CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9sczEwMjFhLmR0c2kgYi9hcmNoL2FybS9ib290L2R0cy9sczEwMjFhLmR0c2kKaW5kZXggNDY0ZGY0Mi4uMmY2OTc3YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvbHMxMDIxYS5kdHNpCisrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2xzMTAyMWEuZHRzaQpAQCAtODc0LDcgKzg3NCw2IEBACiAJCQkjYWRkcmVzcy1jZWxscyA9IDwzPjsKIAkJCSNzaXplLWNlbGxzID0gPDI+OwogCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKLQkJCW51bS1sYW5lcyA9IDw0PjsKIAkJCW51bS12aWV3cG9ydCA9IDw2PjsKIAkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CiAJCQlyYW5nZXMgPSA8MHg4MTAwMDAwMCAweDAgMHgwMDAwMDAwMCAweDQwIDB4MDAwMTAwMDAgMHgwIDB4MDAwMTAwMDAgICAvKiBkb3duc3RyZWFtIEkvTyAqLwpAQCAtODk5LDcgKzg5OCw2IEBACiAJCQkjYWRkcmVzcy1jZWxscyA9IDwzPjsKIAkJCSNzaXplLWNlbGxzID0gPDI+OwogCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKLQkJCW51bS1sYW5lcyA9IDw0PjsKIAkJCW51bS12aWV3cG9ydCA9IDw2PjsKIAkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CiAJCQlyYW5nZXMgPSA8MHg4MTAwMDAwMCAweDAgMHgwMDAwMDAwMCAweDQ4IDB4MDAwMTAwMDAgMHgwIDB4MDAwMTAwMDAgICAvKiBkb3duc3RyZWFtIEkvTyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvbW1wMi1vbHBjLXhvLTEtNzUuZHRzIGIvYXJjaC9hcm0vYm9vdC9kdHMvbW1wMi1vbHBjLXhvLTEtNzUuZHRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZmEwZDQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib290L2R0cy9tbXAyLW9scGMteG8tMS03NS5kdHMKQEAgLTAsMCArMSwyNDQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyIE9SIE1JVAorLyoKKyAqIE9MUEMgWE8gMS43NSBMYXB0b3AuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE4LDIwMTkgTHVib21pciBSaW50ZWwgPGxrdW5kcmFrQHYzLnNrPgorICovCisKKy9kdHMtdjEvOworI2luY2x1ZGUgIm1tcDIuZHRzaSIKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9ncGlvL2dwaW8uaD4KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnB1dC9saW51eC1ldmVudC1jb2Rlcy5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2lycS5oPgorCisvIHsKKwltb2RlbCA9ICJPTFBDIFhPLTEuNzUiOworCWNvbXBhdGlibGUgPSAib2xwYyx4by0xLjc1IiwgIm1ydmwsbW1wMiI7CisKKwljaG9zZW4geworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MT47CisJCXJhbmdlczsKKworCQlmcmFtZWJ1ZmZlckAxZmMwMDAwMCB7CisJCQljb21wYXRpYmxlID0gInNpbXBsZS1mcmFtZWJ1ZmZlciI7CisJCQlyZWcgPSA8MHgxZmMwMDAwMCAoMTIwMCAqIDkwMCAqIDIpPjsKKwkJCXdpZHRoID0gPDEyMDA+OworCQkJaGVpZ2h0ID0gPDkwMD47CisJCQlzdHJpZGUgPSA8KDEyMDAgKiAyKT47CisJCQlmb3JtYXQgPSAicjVnNmI1IjsKKwkJCWNsb2NrcyA9IDwmc29jX2Nsb2NrcyBNTVAyX0NMS19ESVNQMF9MQ0RDPiwKKwkJCQkgPCZzb2NfY2xvY2tzIE1NUDJfQ0xLX0RJU1AwPjsKKwkJfTsKKwl9OworCisJbWVtb3J5IHsKKwkJbGludXgsdXNhYmxlLW1lbW9yeSA9IDwweDAgMHgxZjgwMDAwMD47CisJCWF2YWlsYWJsZSA9IDwweGNmMDAwIDB4MWVmMzEwMDAgMHgxMDAwIDB4YmYwMDA+OworCQlyZWcgPSA8MHgwIDB4MjAwMDAwMDA+OworCQlkZXZpY2VfdHlwZSA9ICJtZW1vcnkiOworCX07CisKKwlncGlvLWtleXMgeworCQljb21wYXRpYmxlID0gImdwaW8ta2V5cyI7CisKKwkJbGlkIHsKKwkJCWxhYmVsID0gIkxpZCI7CisJCQlncGlvcyA9IDwmZ3BpbyAxMjkgR1BJT19BQ1RJVkVfTE9XPjsKKwkJCWxpbnV4LGlucHV0LXR5cGUgPSA8RVZfU1c+OworCQkJbGludXgsY29kZSA9IDxTV19MSUQ+OworCQkJd2FrZXVwLXNvdXJjZTsKKwkJfTsKKworCQl0YWJsZXRfbW9kZSB7CisJCQlsYWJlbCA9ICJFLUJvb2sgTW9kZSI7CisJCQlncGlvcyA9IDwmZ3BpbyAxMjggR1BJT19BQ1RJVkVfTE9XPjsKKwkJCWxpbnV4LGlucHV0LXR5cGUgPSA8RVZfU1c+OworCQkJbGludXgsY29kZSA9IDxTV19UQUJMRVRfTU9ERT47CisJCQl3YWtldXAtc291cmNlOworCQl9OworCisJCW1pY3JvcGhvbmVfaW5zZXJ0IHsKKwkJCWxhYmVsID0gIk1pY3JvcGhvbmUgUGx1ZyI7CisJCQlncGlvcyA9IDwmZ3BpbyA5NiBHUElPX0FDVElWRV9ISUdIPjsKKwkJCWxpbnV4LGlucHV0LXR5cGUgPSA8RVZfU1c+OworCQkJbGludXgsY29kZSA9IDxTV19NSUNST1BIT05FX0lOU0VSVD47CisJCQlkZWJvdW5jZS1pbnRlcnZhbCA9IDwxMDA+OworCQkJd2FrZXVwLXNvdXJjZTsKKwkJfTsKKworCQloZWFkcGhvbmVfaW5zZXJ0IHsKKwkJCWxhYmVsID0gIkhlYWRwaG9uZSBQbHVnIjsKKwkJCWdwaW9zID0gPCZncGlvIDk3IEdQSU9fQUNUSVZFX0hJR0g+OworCQkJbGludXgsaW5wdXQtdHlwZSA9IDxFVl9TVz47CisJCQlsaW51eCxjb2RlID0gPFNXX0hFQURQSE9ORV9JTlNFUlQ+OworCQkJZGVib3VuY2UtaW50ZXJ2YWwgPSA8MTAwPjsKKwkJCXdha2V1cC1zb3VyY2U7CisJCX07CisJfTsKKworCWNhbWVyYV9pMmMgeworCQljb21wYXRpYmxlID0gImkyYy1ncGlvIjsKKwkJZ3Bpb3MgPSA8JmdwaW8gMTA5IChHUElPX0FDVElWRV9ISUdIIHwgR1BJT19PUEVOX0RSQUlOKT4sCisJCQk8JmdwaW8gMTA4IChHUElPX0FDVElWRV9ISUdIIHwgR1BJT19PUEVOX0RSQUlOKT47CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJaTJjLWdwaW8sdGltZW91dC1tcyA9IDwxMDAwPjsKKwkJc3RhdHVzID0gIm9rYXkiOworCisJCWNhbWVyYUAyMSB7CisJCQljb21wYXRpYmxlID0gIm92dGksb3Y3NjcwIjsKKwkJCXJlZyA9IDwweDIxPjsKKwkJCXJlc2V0LWdwaW9zID0gPCZncGlvIDEwMiBHUElPX0FDVElWRV9MT1c+OworCQkJcG93ZXJkb3duLWdwaW9zID0gPCZncGlvIDE1MCBHUElPX0FDVElWRV9MT1c+OworCQkJY2xvY2tzID0gPCZjYW1lcmEwPjsKKwkJCWNsb2NrLW5hbWVzID0gInhjbGsiOworCisJCQlwb3J0IHsKKwkJCQlvdjc2NzBfMDogZW5kcG9pbnQgeworCQkJCQloc3luYy1hY3RpdmUgPSA8MT47CisJCQkJCXZzeW5jLWFjdGl2ZSA9IDwxPjsKKwkJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZjYW1lcmEwXzA+OworCQkJCX07CisJCQl9OworCQl9OworCX07CisKKwliYXR0ZXJ5IHsKKwkJY29tcGF0aWJsZSA9ICJvbHBjLHhvMS41LWJhdHRlcnkiLCAib2xwYyx4bzEtYmF0dGVyeSI7CisJfTsKKworCXdsYW5fcmVnOiBmaXhlZHJlZ3VsYXRvcjAgeworCQljb21wYXRpYmxlID0gInJlZ3VsYXRvci1maXhlZCI7CisJCXJlZ3VsYXRvci1uYW1lID0gIndsYW4iOworCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKwkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJCWdwaW8gPSA8JmdwaW8gMzQgR1BJT19BQ1RJVkVfSElHSD47CisJCWVuYWJsZS1hY3RpdmUtaGlnaDsKKwl9OworCisJd2xhbl9wd3JzZXE6IHB3cnNlcTAgeworCQljb21wYXRpYmxlID0gIm1tYy1wd3JzZXEtc2Q4Nzg3IjsKKwkJcG93ZXJkb3duLWdwaW9zID0gPCZncGlvIDU3IEdQSU9fQUNUSVZFX0hJR0g+OworCQlyZXNldC1ncGlvcyA9IDwmZ3BpbyA1OCBHUElPX0FDVElWRV9ISUdIPjsKKwl9OworCisJc29jIHsKKwkJYXhpQGQ0MjAwMDAwIHsKKwkJCWFwLXNwQGQ0MjkwMDAwIHsKKwkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJCQljb21wYXRpYmxlID0gIm9scGMsYXAtc3AiOworCQkJCWludGVycnVwdHMgPSA8NDA+OworCQkJCXJlZyA9IDwweGQ0MjkwMDAwIDB4MTAwMD47CisJCQkJZGF0YS1ncGlvcyA9IDwmZ3BpbyA3MiBHUElPX0FDVElWRV9ISUdIPjsKKwkJCQljbGstZ3Bpb3MgPSA8JmdwaW8gNzEgR1BJT19BQ1RJVkVfSElHSD47CisJCQkJc3RhdHVzID0gIm9rYXkiOworCQkJfTsKKwkJfTsKKwl9OworfTsKKworJnVhcnQzIHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismdWFydDQgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZydGMgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ1c2JfcGh5MCB7CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnVzYl9vdGcwIHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismbW1jMSB7CisJY2xvY2stZnJlcXVlbmN5ID0gPDUwMDAwMDAwPjsKKwluby0xLTgtdjsKKwltcnZsLGNsay1kZWxheS1jeWNsZXMgPSA8MzE+OworCWJyb2tlbi1jZDsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismbW1jMiB7CisJY2xvY2stZnJlcXVlbmN5ID0gPDUwMDAwMDAwPjsKKwluby0xLTgtdjsKKwlidXMtd2lkdGggPSA8ND47CisJbm9uLXJlbW92YWJsZTsKKwlicm9rZW4tY2Q7CisJd2FrZXVwLXNvdXJjZTsKKwlrZWVwLXBvd2VyLWluLXN1c3BlbmQ7CisJbW1jLXB3cnNlcSA9IDwmd2xhbl9wd3JzZXE+OworCXZtbWMtc3VwcGx5ID0gPCZ3bGFuX3JlZz47CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJm1tYzMgeworCWNsb2NrLWZyZXF1ZW5jeSA9IDw1MDAwMDAwMD47CisJbm8tMS04LXY7CisJYnVzLXdpZHRoID0gPDg+OworCW5vbi1yZW1vdmFibGU7CisJYnJva2VuLWNkOworCW1ydmwsY2xrLWRlbGF5LWN5Y2xlcyA9IDwzMT47CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnR3c2kxIHsKKwlzdGF0dXMgPSAib2theSI7CisKKwlhdWRpby1jb2RlY0AxYSB7CisJCWNvbXBhdGlibGUgPSAicmVhbHRlayxhbGM1NjMxIjsKKwkJcmVnID0gPDB4MWE+OworCQlzdGF0dXMgPSAib2theSI7CisJfTsKK307CisKKyZ0d3NpMiB7CisJc3RhdHVzID0gIm9rYXkiOworCisJcnRjQDY4IHsKKwkJY29tcGF0aWJsZSA9ICJkYWxsYXMsZHMxMzM4IjsKKwkJcmVnID0gPDB4Njg+OworCQlzdGF0dXMgPSAib2theSI7CisJfTsKK307CisKKyZ0d3NpNiB7CisJc3RhdHVzID0gIm9rYXkiOworCisJYWNjZWxlcm9tZXRlckAxZCB7CisJCWNvbXBhdGlibGUgPSAic3QsbGlzMzMxZGxoIiwgInN0LGxpczNsdjAyZCI7CisJCXJlZyA9IDwweDFkPjsKKwkJc3RhdHVzID0gIm9rYXkiOworCX07Cit9OworCismc3NwMyB7CisJI2FkZHJlc3MtY2VsbHMgPSA8MD47CisJc3BpLXNsYXZlOworCXN0YXR1cyA9ICJva2F5IjsKKwlyZWFkeS1ncGlvID0gPCZncGlvIDEyNSBHUElPX0FDVElWRV9ISUdIPjsKKworCXNsYXZlIHsKKwkJY29tcGF0aWJsZSA9ICJvbHBjLHhvMS43NS1lYyI7CisJCXNwaS1jcGhhOworCQljbWQtZ3BpbyA9IDwmZ3BpbyAxNTUgR1BJT19BQ1RJVkVfSElHSD47CisJfTsKK307CisKKyZjYW1lcmEwIHsKKwlzdGF0dXMgPSAib2theSI7CisKKwlwb3J0IHsKKwkJY2FtZXJhMF8wOiBlbmRwb2ludCB7CisJCQlyZW1vdGUtZW5kcG9pbnQgPSA8Jm92NzY3MF8wPjsKKwkJfTsKKwl9OworfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL21tcDIuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL21tcDIuZHRzaQppbmRleCBiNmY0MDc0Li42YTJmMDcyYzEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2Jvb3QvZHRzL21tcDIuZHRzaQorKysgYi9hcmNoL2FybS9ib290L2R0cy9tbXAyLmR0c2kKQEAgLTExNyw3ICsxMTcsNyBAQAogCQkJCW1ydmwsaW50Yy1uci1pcnFzID0gPDI+OwogCQkJfTsKIAotCQkJdXNiX290Z19waHkwOiB1c2Itb3RnLXBoeUBkNDIwNzAwMCB7CisJCQl1c2JfcGh5MDogdXNiLXBoeUBkNDIwNzAwMCB7CiAJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLG1tcDItdXNiLXBoeSI7CiAJCQkJcmVnID0gPDB4ZDQyMDcwMDAgMHg0MD47CiAJCQkJI3BoeS1jZWxscyA9IDwwPjsKQEAgLTEzMCw3ICsxMzAsNyBAQAogCQkJCWludGVycnVwdHMgPSA8NDQ+OwogCQkJCWNsb2NrcyA9IDwmc29jX2Nsb2NrcyBNTVAyX0NMS19VU0I+OwogCQkJCWNsb2NrLW5hbWVzID0gIlVTQkNMSyI7Ci0JCQkJcGh5cyA9IDwmdXNiX290Z19waHkwPjsKKwkJCQlwaHlzID0gPCZ1c2JfcGh5MD47CiAJCQkJcGh5LW5hbWVzID0gInVzYiI7CiAJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKIAkJCX07CkBAIC0xNzAsNiArMTcwLDI4IEBACiAJCQkJaW50ZXJydXB0cyA9IDw1ND47CiAJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKIAkJCX07CisKKwkJCWNhbWVyYTA6IGNhbWVyYUBkNDIwYTAwMCB7CisJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLG1tcDItY2NpYyI7CisJCQkJcmVnID0gPDB4ZDQyMGEwMDAgMHg4MDA+OworCQkJCWludGVycnVwdHMgPSA8NDI+OworCQkJCWNsb2NrcyA9IDwmc29jX2Nsb2NrcyBNTVAyX0NMS19DQ0lDMD47CisJCQkJY2xvY2stbmFtZXMgPSAiYXhpIjsKKwkJCQkjY2xvY2stY2VsbHMgPSA8MD47CisJCQkJY2xvY2stb3V0cHV0LW5hbWVzID0gIm1jbGsiOworCQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJCQl9OworCisJCQljYW1lcmExOiBjYW1lcmFAZDQyMGE4MDAgeworCQkJCWNvbXBhdGlibGUgPSAibWFydmVsbCxtbXAyLWNjaWMiOworCQkJCXJlZyA9IDwweGQ0MjBhODAwIDB4ODAwPjsKKwkJCQlpbnRlcnJ1cHRzID0gPDMwPjsKKwkJCQljbG9ja3MgPSA8JnNvY19jbG9ja3MgTU1QMl9DTEtfQ0NJQzE+OworCQkJCWNsb2NrLW5hbWVzID0gImF4aSI7CisJCQkJI2Nsb2NrLWNlbGxzID0gPDA+OworCQkJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJtY2xrIjsKKwkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQkJfTsKIAkJfTsKIAogCQlhcGJAZDQwMDAwMDAgewkvKiBBUEIgKi8KQEAgLTE5Miw2ICsyMTQsNyBAQAogCQkJCWludGVycnVwdHMgPSA8Mjc+OwogCQkJCWNsb2NrcyA9IDwmc29jX2Nsb2NrcyBNTVAyX0NMS19VQVJUMD47CiAJCQkJcmVzZXRzID0gPCZzb2NfY2xvY2tzIE1NUDJfQ0xLX1VBUlQwPjsKKwkJCQlyZWctc2hpZnQgPSA8Mj47CiAJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKIAkJCX07CiAKQEAgLTIwMSw2ICsyMjQsNyBAQAogCQkJCWludGVycnVwdHMgPSA8Mjg+OwogCQkJCWNsb2NrcyA9IDwmc29jX2Nsb2NrcyBNTVAyX0NMS19VQVJUMT47CiAJCQkJcmVzZXRzID0gPCZzb2NfY2xvY2tzIE1NUDJfQ0xLX1VBUlQxPjsKKwkJCQlyZWctc2hpZnQgPSA8Mj47CiAJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKIAkJCX07CiAKQEAgLTIxMCw2ICsyMzQsNyBAQAogCQkJCWludGVycnVwdHMgPSA8MjQ+OwogCQkJCWNsb2NrcyA9IDwmc29jX2Nsb2NrcyBNTVAyX0NMS19VQVJUMj47CiAJCQkJcmVzZXRzID0gPCZzb2NfY2xvY2tzIE1NUDJfQ0xLX1VBUlQyPjsKKwkJCQlyZWctc2hpZnQgPSA8Mj47CiAJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKIAkJCX07CiAKQEAgLTIxOSw2ICsyNDQsNyBAQAogCQkJCWludGVycnVwdHMgPSA8NDY+OwogCQkJCWNsb2NrcyA9IDwmc29jX2Nsb2NrcyBNTVAyX0NMS19VQVJUMz47CiAJCQkJcmVzZXRzID0gPCZzb2NfY2xvY2tzIE1NUDJfQ0xLX1VBUlQzPjsKKwkJCQlyZWctc2hpZnQgPSA8Mj47CiAJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKIAkJCX07CiAKQEAgLTM0Niw0MCArMzcyLDQ4IEBACiAJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKIAkJCX07CiAKLQkJCXNzcDE6IHNzcEBkNDAzNTAwMCB7CisJCQlzc3AxOiBzcGlAZDQwMzUwMDAgewogCQkJCWNvbXBhdGlibGUgPSAibWFydmVsbCxtbXAyLXNzcCI7CiAJCQkJcmVnID0gPDB4ZDQwMzUwMDAgMHgxMDAwPjsKIAkJCQljbG9ja3MgPSA8JnNvY19jbG9ja3MgTU1QMl9DTEtfU1NQMD47CiAJCQkJaW50ZXJydXB0cyA9IDwwPjsKKwkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKIAkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwogCQkJfTsKIAotCQkJc3NwMjogc3NwQGQ0MDM2MDAwIHsKKwkJCXNzcDI6IHNwaUBkNDAzNjAwMCB7CiAJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLG1tcDItc3NwIjsKIAkJCQlyZWcgPSA8MHhkNDAzNjAwMCAweDEwMDA+OwogCQkJCWNsb2NrcyA9IDwmc29jX2Nsb2NrcyBNTVAyX0NMS19TU1AxPjsKIAkJCQlpbnRlcnJ1cHRzID0gPDE+OworCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJCSNzaXplLWNlbGxzID0gPDA+OwogCQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CiAJCQl9OwogCi0JCQlzc3AzOiBzc3BAZDQwMzcwMDAgeworCQkJc3NwMzogc3BpQGQ0MDM3MDAwIHsKIAkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsbW1wMi1zc3AiOwogCQkJCXJlZyA9IDwweGQ0MDM3MDAwIDB4MTAwMD47CiAJCQkJY2xvY2tzID0gPCZzb2NfY2xvY2tzIE1NUDJfQ0xLX1NTUDI+OwogCQkJCWludGVycnVwdHMgPSA8MjA+OworCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJCSNzaXplLWNlbGxzID0gPDA+OwogCQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CiAJCQl9OwogCi0JCQlzc3A0OiBzc3BAZDQwMzkwMDAgeworCQkJc3NwNDogc3BpQGQ0MDM5MDAwIHsKIAkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsbW1wMi1zc3AiOwogCQkJCXJlZyA9IDwweGQ0MDM5MDAwIDB4MTAwMD47CiAJCQkJY2xvY2tzID0gPCZzb2NfY2xvY2tzIE1NUDJfQ0xLX1NTUDM+OwogCQkJCWludGVycnVwdHMgPSA8MjE+OworCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJCSNzaXplLWNlbGxzID0gPDA+OwogCQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CiAJCQl9OwogCQl9OwogCi0JCXNvY19jbG9ja3M6IGNsb2Nrc3sKKwkJc29jX2Nsb2NrczogY2xvY2tzIHsKIAkJCWNvbXBhdGlibGUgPSAibWFydmVsbCxtbXAyLWNsb2NrIjsKIAkJCXJlZyA9IDwweGQ0MDUwMDAwIDB4MTAwMD4sCiAJCQkgICAgICA8MHhkNDI4MjgwMCAweDQwMD4sCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9vbWFwMzR4eC5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDM0eHguZHRzaQppbmRleCBmNTcyYTQ3Li43YjA5Y2JlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib290L2R0cy9vbWFwMzR4eC5kdHNpCisrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL29tYXAzNHh4LmR0c2kKQEAgLTEwMCw2ICsxMDAsMzIgQEAKIAkJCQlpbnRlcnJ1cHRzID0gPDE4PjsKIAkJCX07CiAJCX07CisKKwkJLyoKKwkJICogT24gb21hcDM0eHggdGhlIE9DUCByZWdpc3RlcnMgZG8gbm90IHNlZW0gdG8gYmUgYWNjZXNzaWJsZQorCQkgKiBhdCBhbGwgdW5saWtlIG9uIDM2eHguIE1heWJlIFNHWCBpcyBwZXJtYW5lbnRseSBzZXQgdG8KKwkJICogIk9DUCBieXBhc3MgbW9kZSIsIG9yIG1heWJlIHRoZXJlIGlzIE9DUF9TWVNDT05GSUcgdGhhdCBpcworCQkgKiB3cml0ZS1vbmx5IGF0IDB4NTAwMDBlMTAuIFdlIGRldGVjdCBTR1ggYmFzZWQgb24gdGhlIFNHWAorCQkgKiByZXZpc2lvbiByZWdpc3RlciBpbnN0ZWFkIG9mIHRoZSB1bnJlYWRhYmxlIE9DUCByZXZpc2lvbgorCQkgKiByZWdpc3Rlci4gQWxzbyBub3RlIHRoYXQgb24gZWFybHkgMzR4eCBlczEgcmV2aXNpb24gdGhlcmUKKwkJICogYXJlIGFsc28gZGlmZmVyZW50IGNsb2NrcywgYnV0IHdlIGRvIG5vdCBoYXZlIGFueSBkdHMgdXNlcnMKKwkJICogZm9yIGl0LgorCQkgKi8KKwkJc2d4X21vZHVsZTogdGFyZ2V0LW1vZHVsZUA1MDAwMDAwMCB7CisJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIiLCAidGksc3lzYyI7CisJCQlyZWcgPSA8MHg1MDAwMDAxNCAweDQ+OworCQkJcmVnLW5hbWVzID0gInJldiI7CisJCQljbG9ja3MgPSA8JnNneF9mY2s+LCA8JnNneF9pY2s+OworCQkJY2xvY2stbmFtZXMgPSAiZmNrIiwgImljayI7CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDE+OworCQkJcmFuZ2VzID0gPDAgMHg1MDAwMDAwMCAweDQwMDA+OworCisJCQkvKgorCQkJICogQ2xvc2VkIHNvdXJjZSBQb3dlclZSIGRyaXZlciwgbm8gY2hpbGQgZGV2aWNlCisJCQkgKiBiaW5kaW5nIG9yIGRyaXZlciBpbiBtYWlubGluZQorCQkJICovCisJCX07CiAJfTsKIAogCXRoZXJtYWxfem9uZXM6IHRoZXJtYWwtem9uZXMgewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDM2eHguZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL29tYXAzNnh4LmR0c2kKaW5kZXggNmZiMjNhZC4uMWU1NTJmMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDM2eHguZHRzaQorKysgYi9hcmNoL2FybS9ib290L2R0cy9vbWFwMzZ4eC5kdHNpCkBAIC0xMzksNiArMTM5LDM0IEBACiAJCQkJaW50ZXJydXB0cyA9IDwxOD47CiAJCQl9OwogCQl9OworCisJCS8qCisJCSAqIE5vdGUgdGhhdCB0aGUgc3lzY29uZmlnIHJlZ2lzdGVyIGxheW91dCBpcyBhIHN1YnNldCBvZiB0aGUKKwkJICogInRpLHN5c2Mtb21hcDQiIHR5cGUgcmVnaXN0ZXIgd2l0aCBqdXN0IHNpZGxlIGFuZCBtaWRsZSBiaXRzCisJCSAqIGF2YWlsYWJsZSB3aGlsZSBvbWFwMzR4eCBoYXMgInRpLHN5c2Mtb21hcDIiIHR5cGUgc3lzY29uZmlnLgorCQkgKi8KKwkJc2d4X21vZHVsZTogdGFyZ2V0LW1vZHVsZUA1MDAwMDAwMCB7CisJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDQiLCAidGksc3lzYyI7CisJCQlyZWcgPSA8MHg1MDAwZmUwMCAweDQ+LAorCQkJICAgICAgPDB4NTAwMGZlMTAgMHg0PjsKKwkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyI7CisJCQl0aSxzeXNjLW1pZGxlID0gPFNZU0NfSURMRV9GT1JDRT4sCisJCQkJCTxTWVNDX0lETEVfTk8+LAorCQkJCQk8U1lTQ19JRExFX1NNQVJUPjsKKwkJCXRpLHN5c2Mtc2lkbGUgPSA8U1lTQ19JRExFX0ZPUkNFPiwKKwkJCQkJPFNZU0NfSURMRV9OTz4sCisJCQkJCTxTWVNDX0lETEVfU01BUlQ+OworCQkJY2xvY2tzID0gPCZzZ3hfZmNrPiwgPCZzZ3hfaWNrPjsKKwkJCWNsb2NrLW5hbWVzID0gImZjayIsICJpY2siOworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwxPjsKKwkJCXJhbmdlcyA9IDwwIDB4NTAwMDAwMDAgMHgyMDAwMDAwPjsKKworCQkJLyoKKwkJCSAqIENsb3NlZCBzb3VyY2UgUG93ZXJWUiBkcml2ZXIsIG5vIGNoaWxkIGRldmljZQorCQkJICogYmluZGluZyBvciBkcml2ZXIgaW4gbWFpbmxpbmUKKwkJCSAqLworCQl9OwogCX07CiAKIAl0aGVybWFsX3pvbmVzOiB0aGVybWFsLXpvbmVzIHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL29tYXA0LWw0LWFiZS5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDQtbDQtYWJlLmR0c2kKaW5kZXggNjcwNzJkZi4uOGU2NjYyYmI5ZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDQtbDQtYWJlLmR0c2kKKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDQtbDQtYWJlLmR0c2kKQEAgLTI1NSw3ICsyNTUsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVAMzAwMDAgewkJCS8qIDB4NDAxMzAwMDAsIGFwIDE0IDBlLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJ3ZF90aW1lcjMiOwogCQkJcmVnID0gPDB4MzAwMDAgMHg0PiwKIAkJCSAgICAgIDwweDMwMDEwIDB4ND4sCiAJCQkgICAgICA8MHgzMDAxNCAweDQ+OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDQtbDQuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL29tYXA0LWw0LmR0c2kKaW5kZXggYmVhMDVkYy4uZDYwZDVlMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDQtbDQuZHRzaQorKysgYi9hcmNoL2FybS9ib290L2R0cy9vbWFwNC1sNC5kdHNpCkBAIC00NTYsMTcgKzQ1Niw0MyBAQAogCQkJfTsKIAkJfTsKIAorCQkvKiBkMmQgbWRtICovCiAJCXRhcmdldC1tb2R1bGVAMzYwMDAgewkJCS8qIDB4NGEwYjYwMDAsIGFwIDY5IDYwLjAgKi8KLQkJCWNvbXBhdGlibGUgPSAidGksc3lzYyI7Ci0JCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOworCQkJcmVnID0gPDB4MzYwMDAgMHg0PiwKKwkJCSAgICAgIDwweDM2MDEwIDB4ND4sCisJCQkgICAgICA8MHgzNjAxNCAweDQ+OworCQkJcmVnLW5hbWVzID0gInJldiIsICJzeXNjIiwgInN5c3MiOworCQkJdGksc3lzYy1tYXNrID0gPChTWVNDX09NQVAyX1NPRlRSRVNFVCB8IFNZU0NfT01BUDJfQVVUT0lETEUpPjsKKwkJCXRpLHN5c2Mtc2lkbGUgPSA8U1lTQ19JRExFX0ZPUkNFPiwKKwkJCQkJPFNZU0NfSURMRV9OTz4sCisJCQkJCTxTWVNDX0lETEVfU01BUlQ+LAorCQkJCQk8U1lTQ19JRExFX1NNQVJUX1dLVVA+OworCQkJdGksc3lzcy1tYXNrID0gPDE+OworCQkJLyogRG9tYWlucyAoViwgUCwgQyk6IGNvcmUsIGNvcmVfcHdyZG0sIGQyZF9jbGtkbSAqLworCQkJY2xvY2tzID0gPCZkMmRfY2xrY3RybCBPTUFQNF9DMkNfQ0xLQ1RSTCAwPjsKKwkJCWNsb2NrLW5hbWVzID0gImZjayI7CiAJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKIAkJCSNzaXplLWNlbGxzID0gPDE+OwogCQkJcmFuZ2VzID0gPDB4MCAweDM2MDAwIDB4MTAwMD47CiAJCX07CiAKKwkJLyogZDJkIG1wdSAqLwogCQl0YXJnZXQtbW9kdWxlQDRkMDAwIHsJCQkvKiAweDRhMGNkMDAwLCBhcCA3OCA1OC4wICovCi0JCQljb21wYXRpYmxlID0gInRpLHN5c2MiOwotCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKwkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKKwkJCXJlZyA9IDwweDRkMDAwIDB4ND4sCisJCQkgICAgICA8MHg0ZDAxMCAweDQ+LAorCQkJICAgICAgPDB4NGQwMTQgMHg0PjsKKwkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyIsICJzeXNzIjsKKwkJCXRpLHN5c2MtbWFzayA9IDwoU1lTQ19PTUFQMl9TT0ZUUkVTRVQgfCBTWVNDX09NQVAyX0FVVE9JRExFKT47CisJCQl0aSxzeXNjLXNpZGxlID0gPFNZU0NfSURMRV9GT1JDRT4sCisJCQkJCTxTWVNDX0lETEVfTk8+LAorCQkJCQk8U1lTQ19JRExFX1NNQVJUPiwKKwkJCQkJPFNZU0NfSURMRV9TTUFSVF9XS1VQPjsKKwkJCXRpLHN5c3MtbWFzayA9IDwxPjsKKwkJCS8qIERvbWFpbnMgKFYsIFAsIEMpOiBjb3JlLCBjb3JlX3B3cmRtLCBkMmRfY2xrZG0gKi8KKwkJCWNsb2NrcyA9IDwmZDJkX2Nsa2N0cmwgT01BUDRfQzJDX0NMS0NUUkwgMD47CisJCQljbG9jay1uYW1lcyA9ICJmY2siOwogCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CiAJCQkjc2l6ZS1jZWxscyA9IDwxPjsKIAkJCXJhbmdlcyA9IDwweDAgMHg0ZDAwMCAweDEwMDA+OwpAQCAtMTA5NCw3ICsxMTIwLDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDQwMDAgewkJCS8qIDB4NGEzMTQwMDAsIGFwIDcgMTguMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gIndkX3RpbWVyMiI7CiAJCQlyZWcgPSA8MHg0MDAwIDB4ND4sCiAJCQkgICAgICA8MHg0MDEwIDB4ND4sCiAJCQkgICAgICA8MHg0MDE0IDB4ND47CkBAIC0xNjk1LDcgKzE3MjAsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVANjAwMDAgewkJCS8qIDB4NDgwNjAwMDAsIGFwIDI1IDFlLjAgKi8KIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJpMmMzIjsKIAkJCXJlZyA9IDwweDYwMDAwIDB4OD4sCiAJCQkgICAgICA8MHg2MDAxMCAweDg+LAogCQkJICAgICAgPDB4NjAwOTAgMHg4PjsKQEAgLTE4MTQsNyArMTgzOCw2IEBACiAKIAkJdGFyZ2V0LW1vZHVsZUA3MDAwMCB7CQkJLyogMHg0ODA3MDAwMCwgYXAgMzIgMjguMCAqLwogCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRpLHN5c2MiOwotCQkJdGksaHdtb2RzID0gImkyYzEiOwogCQkJcmVnID0gPDB4NzAwMDAgMHg4PiwKIAkJCSAgICAgIDwweDcwMDEwIDB4OD4sCiAJCQkgICAgICA8MHg3MDA5MCAweDg+OwpAQCAtMTg0Niw3ICsxODY5LDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDcyMDAwIHsJCQkvKiAweDQ4MDcyMDAwLCBhcCAzNCAzMC4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAiaTJjMiI7CiAJCQlyZWcgPSA8MHg3MjAwMCAweDg+LAogCQkJICAgICAgPDB4NzIwMTAgMHg4PiwKIAkJCSAgICAgIDwweDcyMDkwIDB4OD47CkBAIC0yNDAxLDcgKzI0MjMsNiBAQAogCiAJCXRhcmdldC1tb2R1bGVAMTUwMDAwIHsJCQkvKiAweDQ4MzUwMDAwLCBhcCA3NyA0Yy4wICovCiAJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIiLCAidGksc3lzYyI7Ci0JCQl0aSxod21vZHMgPSAiaTJjNCI7CiAJCQlyZWcgPSA8MHgxNTAwMDAgMHg4PiwKIAkJCSAgICAgIDwweDE1MDAxMCAweDg+LAogCQkJICAgICAgPDB4MTUwMDkwIDB4OD47CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9vbWFwNC5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDQuZHRzaQppbmRleCBjNDNlNTJmZC4uN2NjOTViYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDQuZHRzaQorKysgYi9hcmNoL2FybS9ib290L2R0cy9vbWFwNC5kdHNpCkBAIC0zMzAsNyArMzMwLDYgQEAKIAogCQl0YXJnZXQtbW9kdWxlQDU2MDAwMDAwIHsKIAkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwNCIsICJ0aSxzeXNjIjsKLQkJCXRpLGh3bW9kcyA9ICJncHUiOwogCQkJcmVnID0gPDB4NTYwMWZjMDAgMHg0PiwKIAkJCSAgICAgIDwweDU2MDFmYzEwIDB4ND47CiAJCQlyZWctbmFtZXMgPSAicmV2IiwgInN5c2MiOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDUuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL29tYXA1LmR0c2kKaW5kZXggZWRmZDI2Yy4uMWZiNzkzNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDUuZHRzaQorKysgYi9hcmNoL2FybS9ib290L2R0cy9vbWFwNS5kdHNpCkBAIC0yNTcsNiArMjU3LDI5IEBACiAJCQlwb3J0cy1pbXBsZW1lbnRlZCA9IDwweDE+OwogCQl9OwogCisJCXRhcmdldC1tb2R1bGVANTYwMDAwMDAgeworCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXA0IiwgInRpLHN5c2MiOworCQkJcmVnID0gPDB4NTYwMGZlMDAgMHg0PiwKKwkJCSAgICAgIDwweDU2MDBmZTEwIDB4ND47CisJCQlyZWctbmFtZXMgPSAicmV2IiwgInN5c2MiOworCQkJdGksc3lzYy1taWRsZSA9IDxTWVNDX0lETEVfRk9SQ0U+LAorCQkJCQk8U1lTQ19JRExFX05PPiwKKwkJCQkJPFNZU0NfSURMRV9TTUFSVD47CisJCQl0aSxzeXNjLXNpZGxlID0gPFNZU0NfSURMRV9GT1JDRT4sCisJCQkJCTxTWVNDX0lETEVfTk8+LAorCQkJCQk8U1lTQ19JRExFX1NNQVJUPjsKKwkJCWNsb2NrcyA9IDwmZ3B1X2Nsa2N0cmwgT01BUDVfR1BVX0NMS0NUUkwgMD47CisJCQljbG9jay1uYW1lcyA9ICJmY2siOworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwxPjsKKwkJCXJhbmdlcyA9IDwwIDB4NTYwMDAwMDAgMHgyMDAwMDAwPjsKKworCQkJLyoKKwkJCSAqIENsb3NlZCBzb3VyY2UgUG93ZXJWUiBkcml2ZXIsIG5vIGNoaWxkIGRldmljZQorCQkJICogYmluZGluZyBvciBkcml2ZXIgaW4gbWFpbmxpbmUKKwkJCSAqLworCQl9OworCiAJCWRzczogZHNzQDU4MDAwMDAwIHsKIAkJCWNvbXBhdGlibGUgPSAidGksb21hcDUtZHNzIjsKIAkJCXJlZyA9IDwweDU4MDAwMDAwIDB4ODA+OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDU0eHgtY2xvY2tzLmR0c2kgYi9hcmNoL2FybS9ib290L2R0cy9vbWFwNTR4eC1jbG9ja3MuZHRzaQppbmRleCAzM2U4ZGQ5Li5mYWMyZTU3ZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDU0eHgtY2xvY2tzLmR0c2kKKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvb21hcDU0eHgtY2xvY2tzLmR0c2kKQEAgLTExNDYsNiArMTE0NiwyMCBAQAogCQl9OwogCX07CiAKKwlncHVfY206IGNsb2NrLWNvbnRyb2xsZXJAMTUwMCB7CisJCWNvbXBhdGlibGUgPSAidGksb21hcDQtY20iOworCQlyZWcgPSA8MHgxNTAwIDB4MTAwPjsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDE+OworCQlyYW5nZXMgPSA8MCAweDE1MDAgMHgxMDA+OworCisJCWdwdV9jbGtjdHJsOiBjbGtAMjAgeworCQkJY29tcGF0aWJsZSA9ICJ0aSxjbGtjdHJsIjsKKwkJCXJlZyA9IDwweDIwIDB4ND47CisJCQkjY2xvY2stY2VsbHMgPSA8Mj47CisJCX07CisJfTsKKwogCWwzaW5pdF9jbTogbDNpbml0X2NtQDE2MDAgewogCQljb21wYXRpYmxlID0gInRpLG9tYXA0LWNtIjsKIAkJcmVnID0gPDB4MTYwMCAweDEwMD47CmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9kZXZpY2UuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RldmljZS5oCmluZGV4IGY2OTU1YjUuLmM2NzViYzAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RldmljZS5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RldmljZS5oCkBAIC0xNSw5ICsxNSw2IEBAIHN0cnVjdCBkZXZfYXJjaGRhdGEgewogI2lmZGVmIENPTkZJR19BUk1fRE1BX1VTRV9JT01NVQogCXN0cnVjdCBkbWFfaW9tbXVfbWFwcGluZwkqbWFwcGluZzsKICNlbmRpZgotI2lmZGVmIENPTkZJR19YRU4KLQljb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgKmRldl9kbWFfb3BzOwotI2VuZGlmCiAJdW5zaWduZWQgaW50IGRtYV9jb2hlcmVudDoxOwogCXVuc2lnbmVkIGludCBkbWFfb3BzX3NldHVwOjE7CiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RtYS1tYXBwaW5nLmgKaW5kZXggZGJhOTM1NS4uYmRkODBkZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaAorKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9kbWEtbWFwcGluZy5oCkBAIC05MSwxMiArOTEsNiBAQCBzdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgdmlydF90b19kbWEoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICphZGRyKQogfQogI2VuZGlmCiAKLS8qIGRvIG5vdCB1c2UgdGhpcyBmdW5jdGlvbiBpbiBhIGRyaXZlciAqLwotc3RhdGljIGlubGluZSBib29sIGlzX2RldmljZV9kbWFfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2KQotewotCXJldHVybiBkZXYtPmFyY2hkYXRhLmRtYV9jb2hlcmVudDsKLX0KLQogLyoqCiAgKiBhcm1fZG1hX2FsbG9jIC0gYWxsb2NhdGUgY29uc2lzdGVudCBtZW1vcnkgZm9yIERNQQogICogQGRldjogdmFsaWQgc3RydWN0IGRldmljZSBwb2ludGVyLCBvciBOVUxMIGZvciBJU0EgYW5kIEVJU0EtbGlrZSBkZXZpY2VzCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9oYXJkd2FyZS9jYWNoZS1hdXJvcmEtbDIuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2hhcmR3YXJlL2NhY2hlLWF1cm9yYS1sMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NzY5ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9oYXJkd2FyZS9jYWNoZS1hdXJvcmEtbDIuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIEFVUk9SQSBzaGFyZWQgTDIgY2FjaGUgY29udHJvbGxlciBzdXBwb3J0CisgKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE1hcnZlbGwKKyAqCisgKiBZZWh1ZGEgWWl0c2NoYWsgPHllaHVkYXlAbWFydmVsbC5jb20+CisgKiBHcmVnb3J5IENMRU1FTlQgPGdyZWdvcnkuY2xlbWVudEBmcmVlLWVsZWN0cm9ucy5jb20+CisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUk1fSEFSRFdBUkVfQVVST1JBX0wyX0gKKyNkZWZpbmUgX19BU01fQVJNX0hBUkRXQVJFX0FVUk9SQV9MMl9ICisKKyNkZWZpbmUgQVVST1JBX1NZTkNfUkVHCQkgICAgMHg3MDAKKyNkZWZpbmUgQVVST1JBX1JBTkdFX0JBU0VfQUREUl9SRUcgIDB4NzIwCisjZGVmaW5lIEFVUk9SQV9GTFVTSF9QSFlfQUREUl9SRUcgICAweDdmMAorI2RlZmluZSBBVVJPUkFfSU5WQUxfUkFOR0VfUkVHCSAgICAweDc3NAorI2RlZmluZSBBVVJPUkFfQ0xFQU5fUkFOR0VfUkVHCSAgICAweDdiNAorI2RlZmluZSBBVVJPUkFfRkxVU0hfUkFOR0VfUkVHCSAgICAweDdmNAorCisjZGVmaW5lIEFVUk9SQV9BQ1JfUkVQTEFDRU1FTlRfT0ZGU0VUCSAgICAyNworI2RlZmluZSBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX01BU0sJICAgICBcCisJKDB4MyA8PCBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX09GRlNFVCkKKyNkZWZpbmUgQVVST1JBX0FDUl9SRVBMQUNFTUVOVF9UWVBFX1dBWVJSICAgIFwKKwkoMCA8PCBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX09GRlNFVCkKKyNkZWZpbmUgQVVST1JBX0FDUl9SRVBMQUNFTUVOVF9UWVBFX0xGU1IgICAgIFwKKwkoMSA8PCBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX09GRlNFVCkKKyNkZWZpbmUgQVVST1JBX0FDUl9SRVBMQUNFTUVOVF9UWVBFX1NFTUlQTFJVIFwKKwkoMyA8PCBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX09GRlNFVCkKKworI2RlZmluZSBBVVJPUkFfQUNSX1BBUklUWV9FTgkoMSA8PCAyMSkKKyNkZWZpbmUgQVVST1JBX0FDUl9FQ0NfRU4JKDEgPDwgMjApCisKKyNkZWZpbmUgQVVST1JBX0FDUl9GT1JDRV9XUklURV9QT0xJQ1lfT0ZGU0VUCTAKKyNkZWZpbmUgQVVST1JBX0FDUl9GT1JDRV9XUklURV9QT0xJQ1lfTUFTSwlcCisJKDB4MyA8PCBBVVJPUkFfQUNSX0ZPUkNFX1dSSVRFX1BPTElDWV9PRkZTRVQpCisjZGVmaW5lIEFVUk9SQV9BQ1JfRk9SQ0VfV1JJVEVfUE9MSUNZX0RJUwlcCisJKDAgPDwgQVVST1JBX0FDUl9GT1JDRV9XUklURV9QT0xJQ1lfT0ZGU0VUKQorI2RlZmluZSBBVVJPUkFfQUNSX0ZPUkNFX1dSSVRFX0JBQ0tfUE9MSUNZCVwKKwkoMSA8PCBBVVJPUkFfQUNSX0ZPUkNFX1dSSVRFX1BPTElDWV9PRkZTRVQpCisjZGVmaW5lIEFVUk9SQV9BQ1JfRk9SQ0VfV1JJVEVfVEhST19QT0xJQ1kJXAorCSgyIDw8IEFVUk9SQV9BQ1JfRk9SQ0VfV1JJVEVfUE9MSUNZX09GRlNFVCkKKworI2RlZmluZSBBVVJPUkFfRVJSX0NOVF9SRUcgICAgICAgICAgMHg2MDAKKyNkZWZpbmUgQVVST1JBX0VSUl9BVFRSX0NBUF9SRUcgICAgIDB4NjA4CisjZGVmaW5lIEFVUk9SQV9FUlJfQUREUl9DQVBfUkVHICAgICAweDYwYworI2RlZmluZSBBVVJPUkFfRVJSX1dBWV9DQVBfUkVHICAgICAgMHg2MTAKKyNkZWZpbmUgQVVST1JBX0VSUl9JTkpFQ1RfQ1RMX1JFRyAgIDB4NjE0CisjZGVmaW5lIEFVUk9SQV9FUlJfSU5KRUNUX01BU0tfUkVHICAweDYxOAorCisjZGVmaW5lIEFVUk9SQV9FUlJfQ05UX0NMUl9PRkZTRVQgICAgICAgICAzMQorI2RlZmluZSBBVVJPUkFfRVJSX0NOVF9DTFIJCSAgIFwKKwkoMHgxIDw8IEFVUk9SQV9FUlJfQ05UX0NMUl9PRkZTRVQpCisjZGVmaW5lIEFVUk9SQV9FUlJfQ05UX1VFX09GRlNFVCAgICAgICAgICAxNgorI2RlZmluZSBBVVJPUkFfRVJSX0NOVF9VRV9NQVNLICAgICAgICAgICAgIFwKKwkoMHg3ZmZmIDw8IEFVUk9SQV9FUlJfQ05UX1VFX09GRlNFVCkKKyNkZWZpbmUgQVVST1JBX0VSUl9DTlRfQ0VfT0ZGU0VUICAgICAgICAgICAwCisjZGVmaW5lIEFVUk9SQV9FUlJfQ05UX0NFX01BU0sgICAgICAgICAgICAgXAorCSgweGZmZmYgPDwgQVVST1JBX0VSUl9DTlRfQ0VfT0ZGU0VUKQorCisjZGVmaW5lIEFVUk9SQV9FUlJfQVRUUl9TUkNfT0ZGICAgICAgICAgICAxNgorI2RlZmluZSBBVVJPUkFfRVJSX0FUVFJfU1JDX01TSyAgICAgICAgICAgIFwKKwkoMHg3IDw8IEFVUk9SQV9FUlJfQVRUUl9TUkNfT0ZGKQorI2RlZmluZSBBVVJPUkFfRVJSX0FUVFJfVFhOX09GRiAgICAgICAgICAgMTIKKyNkZWZpbmUgQVVST1JBX0VSUl9BVFRSX1RYTl9NU0sgICAgICAgICAgICBcCisJKDB4ZiA8PCBBVVJPUkFfRVJSX0FUVFJfVFhOX09GRikKKyNkZWZpbmUgQVVST1JBX0VSUl9BVFRSX0VSUl9PRkYgICAgICAgICAgICA4CisjZGVmaW5lIEFVUk9SQV9FUlJfQVRUUl9FUlJfTVNLICAgICAgICAgICAgXAorCSgweDMgPDwgQVVST1JBX0VSUl9BVFRSX0VSUl9PRkYpCisjZGVmaW5lIEFVUk9SQV9FUlJfQVRUUl9DQVBfVkFMSURfT0ZGICAgICAgMAorI2RlZmluZSBBVVJPUkFfRVJSX0FUVFJfQ0FQX1ZBTElEICAgICAgICAgIFwKKwkoMHgxIDw8IEFVUk9SQV9FUlJfQVRUUl9DQVBfVkFMSURfT0ZGKQorCisjZGVmaW5lIEFVUk9SQV9FUlJfQUREUl9DQVBfQUREUl9NQVNLIDB4ZmZmZmZmZTAKKworI2RlZmluZSBBVVJPUkFfRVJSX1dBWV9JRFhfT0ZGICAgICAgICAgICAgIDgKKyNkZWZpbmUgQVVST1JBX0VSUl9XQVlfSURYX01TSyAgICAgICAgICAgICBcCisJKDB4ZmZmIDw8IEFVUk9SQV9FUlJfV0FZX0lEWF9PRkYpCisjZGVmaW5lIEFVUk9SQV9FUlJfV0FZX0NBUF9XQVlfT0ZGU0VUICAgICAgMQorI2RlZmluZSBBVVJPUkFfRVJSX1dBWV9DQVBfV0FZX01BU0sgICAgICAgIFwKKwkoMHhmIDw8IEFVUk9SQV9FUlJfV0FZX0NBUF9XQVlfT0ZGU0VUKQorCisjZGVmaW5lIEFVUk9SQV9FUlJfSU5KRUNUX0NUTF9BRERSX01BU0sgMHhmZmZmZmZmMAorI2RlZmluZSBBVVJPUkFfRVJSX0FUVFJfVFhOX09GRiAgIDEyCisjZGVmaW5lIEFVUk9SQV9FUlJfSU5KRUNUX0NUTF9FTl9NQVNLICAgICAgICAgIDB4MworI2RlZmluZSBBVVJPUkFfRVJSX0lOSkVDVF9DVExfRU5fUEFSSVRZICAgICAgICAweDIKKyNkZWZpbmUgQVVST1JBX0VSUl9JTkpFQ1RfQ1RMX0VOX0VDQyAgICAgICAgICAgMHgxCisKKyNkZWZpbmUgQVVST1JBX01BWF9SQU5HRV9TSVpFCTEwMjQKKworI2RlZmluZSBBVVJPUkFfV0FZX1NJWkVfU0hJRlQJMgorCisjZGVmaW5lIEFVUk9SQV9DVFJMX0ZXCQkweDEwMAorCisvKiBjaG9zZSBhIG51bWJlciBvdXRzaWRlIEwyWDBfQ0FDSEVfSURfUEFSVF9NQVNLIHRvIGJlIHN1cmUgdG8gbWFrZQorICogdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gYSBudW1iZXIgY29taW5nIGZyb20gaGFyZHdhcmUgYW5kIGEgbnVtYmVyCisgKiBjb21pbmcgZnJvbSB0aGUgZGV2aWNlIHRyZWUgKi8KKyNkZWZpbmUgQVVST1JBX0NBQ0hFX0lECSAgICAgICAweDEwMAorCisjZW5kaWYgLyogX19BU01fQVJNX0hBUkRXQVJFX0FVUk9SQV9MMl9IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZ2FsbG9jLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKaW5kZXggYTJhNjhiNy4uMDY5ZGEzOSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BnYWxsb2MuaApAQCAtMTUsOCArMTUsNiBAQAogI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CiAjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CiAKLSNkZWZpbmUgY2hlY2tfcGd0X2NhY2hlKCkJCWRvIHsgfSB3aGlsZSAoMCkKLQogI2lmZGVmIENPTkZJR19NTVUKIAogI2RlZmluZSBfUEFHRV9VU0VSX1RBQkxFCShQTURfVFlQRV9UQUJMRSB8IFBNRF9CSVQ0IHwgUE1EX0RPTUFJTihET01BSU5fVVNFUikpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZ3RhYmxlLW5vbW11LmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZ3RhYmxlLW5vbW11LmgKaW5kZXggMGIxZjY3OS4uMDEwZmExYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vcGd0YWJsZS1ub21tdS5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BndGFibGUtbm9tbXUuaApAQCAtNjIsNyArNjIsNiBAQCB0eXBlZGVmIHB0ZV90ICpwdGVfYWRkcl90OwogICovCiAjZGVmaW5lIHBncHJvdF9ub25jYWNoZWQocHJvdCkJKHByb3QpCiAjZGVmaW5lIHBncHJvdF93cml0ZWNvbWJpbmUocHJvdCkgKHByb3QpCi0jZGVmaW5lIHBncHJvdF9kbWFjb2hlcmVudChwcm90KSAocHJvdCkKICNkZWZpbmUgcGdwcm90X2RldmljZShwcm90KQkocHJvdCkKIAogCkBAIC03MiwxMSArNzEsNiBAQCB0eXBlZGVmIHB0ZV90ICpwdGVfYWRkcl90OwogZXh0ZXJuIHVuc2lnbmVkIGludCBrb2Jqc2l6ZShjb25zdCB2b2lkICpvYmpwKTsKIAogLyoKLSAqIE5vIHBhZ2UgdGFibGUgY2FjaGVzIHRvIGluaXRpYWxpc2UuCi0gKi8KLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkJZG8geyB9IHdoaWxlICgwKQotCi0vKgogICogQWxsIDMyYml0IGFkZHJlc3NlcyBhcmUgZWZmZWN0aXZlbHkgdmFsaWQgZm9yIHZtYWxsb2MuLi4KICAqIFNvcnQgb2YgbWVhbmluZ2xlc3MgZm9yIG5vbi1WTSB0YXJnZXRzLgogICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggZjJlOTkwZC4uM2FlMTIwYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vcGd0YWJsZS5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BndGFibGUuaApAQCAtMzY4LDggKzM2OCw2IEBAIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21vZGlmeShwdGVfdCBwdGUsIHBncHJvdF90IG5ld3Byb3QpCiAjZGVmaW5lIEhBVkVfQVJDSF9VTk1BUFBFRF9BUkVBCiAjZGVmaW5lIEhBVkVfQVJDSF9VTk1BUFBFRF9BUkVBX1RPUERPV04KIAotI2RlZmluZSBwZ3RhYmxlX2NhY2hlX2luaXQoKSBkbyB7IH0gd2hpbGUgKDApCi0KICNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCiAKICNlbmRpZiAvKiBDT05GSUdfTU1VICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCmluZGV4IDIwYzJmNDIuLjYxNGJmODIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCkBAIC0xNDAsOCArMTQwLDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHByZWZldGNodyhjb25zdCB2b2lkICpwdHIpCiAjZW5kaWYKICNlbmRpZgogCi0jZGVmaW5lIEhBVkVfQVJDSF9QSUNLX01NQVBfTEFZT1VUCi0KICNlbmRpZgogCiAjZW5kaWYgLyogX19BU01fQVJNX1BST0NFU1NPUl9IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS90bGIuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3RsYi5oCmluZGV4IGI3NWVhMTUuLjY2OTQ3NGEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3RsYi5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3RsYi5oCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3RsYl9yZW1vdmVfdGFibGUodm9pZCAqX3RhYmxlKQogc3RhdGljIGlubGluZSB2b2lkCiBfX3B0ZV9mcmVlX3RsYihzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLCBwZ3RhYmxlX3QgcHRlLCB1bnNpZ25lZCBsb25nIGFkZHIpCiB7Ci0JcGd0YWJsZV9wYWdlX2R0b3IocHRlKTsKKwlwZ3RhYmxlX3B0ZV9wYWdlX2R0b3IocHRlKTsKIAogI2lmbmRlZiBDT05GSUdfQVJNX0xQQUUKIAkvKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3hlbi9wYWdlLWNvaGVyZW50LmgKaW5kZXggMmM0MDNlNy4uMjdlOTg0OSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaAorKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oCkBAIC0xLDk1ICsxLDIgQEAKIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCi0jaWZuZGVmIF9BU01fQVJNX1hFTl9QQUdFX0NPSEVSRU5UX0gKLSNkZWZpbmUgX0FTTV9BUk1fWEVOX1BBR0VfQ09IRVJFTlRfSAotCi0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPHhlbi9hcm0vcGFnZS1jb2hlcmVudC5oPgotCi1zdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyAqeGVuX2dldF9kbWFfb3BzKHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlpZiAoZGV2ICYmIGRldi0+YXJjaGRhdGEuZGV2X2RtYV9vcHMpCi0JCXJldHVybiBkZXYtPmFyY2hkYXRhLmRldl9kbWFfb3BzOwotCXJldHVybiBnZXRfYXJjaF9kbWFfb3BzKE5VTEwpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgKnhlbl9hbGxvY19jb2hlcmVudF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc2l6ZV90IHNpemUsCi0JCWRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsIGdmcF90IGZsYWdzLCB1bnNpZ25lZCBsb25nIGF0dHJzKQotewotCXJldHVybiB4ZW5fZ2V0X2RtYV9vcHMoaHdkZXYpLT5hbGxvYyhod2Rldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MsIGF0dHJzKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHhlbl9mcmVlX2NvaGVyZW50X3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzaXplX3Qgc2l6ZSwKLQkJdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2hhbmRsZSwgdW5zaWduZWQgbG9uZyBhdHRycykKLXsKLQl4ZW5fZ2V0X2RtYV9vcHMoaHdkZXYpLT5mcmVlKGh3ZGV2LCBzaXplLCBjcHVfYWRkciwgZG1hX2hhbmRsZSwgYXR0cnMpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgeGVuX2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCi0JICAgICBkbWFfYWRkcl90IGRldl9hZGRyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6ZV90IHNpemUsCi0JICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCi17Ci0JdW5zaWduZWQgbG9uZyBwYWdlX3BmbiA9IHBhZ2VfdG9feGVuX3BmbihwYWdlKTsKLQl1bnNpZ25lZCBsb25nIGRldl9wZm4gPSBYRU5fUEZOX0RPV04oZGV2X2FkZHIpOwotCXVuc2lnbmVkIGxvbmcgY29tcG91bmRfcGFnZXMgPQotCQkoMTw8Y29tcG91bmRfb3JkZXIocGFnZSkpICogWEVOX1BGTl9QRVJfUEFHRTsKLQlib29sIGxvY2FsID0gKHBhZ2VfcGZuIDw9IGRldl9wZm4pICYmCi0JCShkZXZfcGZuIC0gcGFnZV9wZm4gPCBjb21wb3VuZF9wYWdlcyk7Ci0KLQkvKgotCSAqIERvbTAgaXMgbWFwcGVkIDE6MSwgd2hpbGUgdGhlIExpbnV4IHBhZ2UgY2FuIHNwYW4gYWNyb3NzCi0JICogbXVsdGlwbGUgWGVuIHBhZ2VzLCBpdCdzIG5vdCBwb3NzaWJsZSBmb3IgaXQgdG8gY29udGFpbiBhCi0JICogbWl4IG9mIGxvY2FsIGFuZCBmb3JlaWduIFhlbiBwYWdlcy4gU28gaWYgdGhlIGZpcnN0IHhlbl9wZm4KLQkgKiA9PSBtZm4gdGhlIHBhZ2UgaXMgbG9jYWwgb3RoZXJ3aXNlIGl0J3MgYSBmb3JlaWduIHBhZ2UKLQkgKiBncmFudC1tYXBwZWQgaW4gZG9tMC4gSWYgdGhlIHBhZ2UgaXMgbG9jYWwgd2UgY2FuIHNhZmVseQotCSAqIGNhbGwgdGhlIG5hdGl2ZSBkbWFfb3BzIGZ1bmN0aW9uLCBvdGhlcndpc2Ugd2UgY2FsbCB0aGUgeGVuCi0JICogc3BlY2lmaWMgZnVuY3Rpb24uCi0JICovCi0JaWYgKGxvY2FsKQotCQl4ZW5fZ2V0X2RtYV9vcHMoaHdkZXYpLT5tYXBfcGFnZShod2RldiwgcGFnZSwgb2Zmc2V0LCBzaXplLCBkaXIsIGF0dHJzKTsKLQllbHNlCi0JCV9feGVuX2RtYV9tYXBfcGFnZShod2RldiwgcGFnZSwgZGV2X2FkZHIsIG9mZnNldCwgc2l6ZSwgZGlyLCBhdHRycyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAotCQlzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQotewotCXVuc2lnbmVkIGxvbmcgcGZuID0gUEZOX0RPV04oaGFuZGxlKTsKLQkvKgotCSAqIERvbTAgaXMgbWFwcGVkIDE6MSwgd2hpbGUgdGhlIExpbnV4IHBhZ2UgY2FuIGJlIHNwYW5uZWQgYWNjcm9zcwotCSAqIG11bHRpcGxlIFhlbiBwYWdlLCBpdCdzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGEgbWl4IG9mIGxvY2FsIGFuZAotCSAqIGZvcmVpZ24gWGVuIHBhZ2UuIERvbTAgaXMgbWFwcGVkIDE6MSwgc28gY2FsbGluZyBwZm5fdmFsaWQgb24gYQotCSAqIGZvcmVpZ24gbWZuIHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZS4gSWYgdGhlIHBhZ2UgaXMgbG9jYWwgd2UgY2FuCi0JICogc2FmZWx5IGNhbGwgdGhlIG5hdGl2ZSBkbWFfb3BzIGZ1bmN0aW9uLCBvdGhlcndpc2Ugd2UgY2FsbCB0aGUgeGVuCi0JICogc3BlY2lmaWMgZnVuY3Rpb24uCi0JICovCi0JaWYgKHBmbl92YWxpZChwZm4pKSB7Ci0JCWlmICh4ZW5fZ2V0X2RtYV9vcHMoaHdkZXYpLT51bm1hcF9wYWdlKQotCQkJeGVuX2dldF9kbWFfb3BzKGh3ZGV2KS0+dW5tYXBfcGFnZShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIsIGF0dHJzKTsKLQl9IGVsc2UKLQkJX194ZW5fZG1hX3VubWFwX3BhZ2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyLCBhdHRycyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUoc3RydWN0IGRldmljZSAqaHdkZXYsCi0JCWRtYV9hZGRyX3QgaGFuZGxlLCBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQotewotCXVuc2lnbmVkIGxvbmcgcGZuID0gUEZOX0RPV04oaGFuZGxlKTsKLQlpZiAocGZuX3ZhbGlkKHBmbikpIHsKLQkJaWYgKHhlbl9nZXRfZG1hX29wcyhod2RldiktPnN5bmNfc2luZ2xlX2Zvcl9jcHUpCi0JCQl4ZW5fZ2V0X2RtYV9vcHMoaHdkZXYpLT5zeW5jX3NpbmdsZV9mb3JfY3B1KGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpcik7Ci0JfSBlbHNlCi0JCV9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpcik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqaHdkZXYsCi0JCWRtYV9hZGRyX3QgaGFuZGxlLCBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQotewotCXVuc2lnbmVkIGxvbmcgcGZuID0gUEZOX0RPV04oaGFuZGxlKTsKLQlpZiAocGZuX3ZhbGlkKHBmbikpIHsKLQkJaWYgKHhlbl9nZXRfZG1hX29wcyhod2RldiktPnN5bmNfc2luZ2xlX2Zvcl9kZXZpY2UpCi0JCQl4ZW5fZ2V0X2RtYV9vcHMoaHdkZXYpLT5zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpcik7Ci0JfSBlbHNlCi0JCV9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpcik7Ci19Ci0KLSNlbmRpZiAvKiBfQVNNX0FSTV9YRU5fUEFHRV9DT0hFUkVOVF9IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvcGVyZl9ldmVudF92Ny5jIGIvYXJjaC9hcm0va2VybmVsL3BlcmZfZXZlbnRfdjcuYwppbmRleCBhNGZiMGY4Li4yOTI0ZDc5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvcGVyZl9ldmVudF92Ny5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9wZXJmX2V2ZW50X3Y3LmMKQEAgLTY5Nyw5ICs2OTcsOSBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBhcm12N19wbXV2Ml9ldmVudHNfYXR0cl9ncm91cCA9IHsKIC8qCiAgKiBFdmVudCBmaWx0ZXJzIGZvciBQTVV2MgogICovCi0jZGVmaW5lCUFSTVY3X0VYQ0xVREVfUEwxCSgxIDw8IDMxKQotI2RlZmluZQlBUk1WN19FWENMVURFX1VTRVIJKDEgPDwgMzApCi0jZGVmaW5lCUFSTVY3X0lOQ0xVREVfSFlQCSgxIDw8IDI3KQorI2RlZmluZQlBUk1WN19FWENMVURFX1BMMQlCSVQoMzEpCisjZGVmaW5lCUFSTVY3X0VYQ0xVREVfVVNFUglCSVQoMzApCisjZGVmaW5lCUFSTVY3X0lOQ0xVREVfSFlQCUJJVCgyNykKIAogLyoKICAqIFNlY3VyZSBkZWJ1ZyBlbmFibGUgcmVnCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvcHJvY2Vzcy5jIGIvYXJjaC9hcm0va2VybmVsL3Byb2Nlc3MuYwppbmRleCBmOTM0YTY3Li45NDg1YWNjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9wcm9jZXNzLmMKQEAgLTMxOSwxMSArMzE5LDYgQEAgdW5zaWduZWQgbG9uZyBnZXRfd2NoYW4oc3RydWN0IHRhc2tfc3RydWN0ICpwKQogCXJldHVybiAwOwogfQogCi11bnNpZ25lZCBsb25nIGFyY2hfcmFuZG9taXplX2JyayhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKLXsKLQlyZXR1cm4gcmFuZG9taXplX3BhZ2UobW0tPmJyaywgMHgwMjAwMDAwMCk7Ci19Ci0KICNpZmRlZiBDT05GSUdfTU1VCiAjaWZkZWYgQ09ORklHX0tVU0VSX0hFTFBFUlMKIC8qCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvdmRzby5jIGIvYXJjaC9hcm0va2VybmVsL3Zkc28uYwppbmRleCA4ODcyYWNmOS4uOWJmMTZjOSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL3Zkc28uYworKysgYi9hcmNoL2FybS9rZXJuZWwvdmRzby5jCkBAIC0xOTQsNyArMTk0LDYgQEAgc3RhdGljIGludCBfX2luaXQgdmRzb19pbml0KHZvaWQpCiAJfQogCiAJdGV4dF9wYWdlcyA9ICh2ZHNvX2VuZCAtIHZkc29fc3RhcnQpID4+IFBBR0VfU0hJRlQ7Ci0JcHJfZGVidWcoInZkc286ICVpIHRleHQgcGFnZXMgYXQgYmFzZSAlcFxuIiwgdGV4dF9wYWdlcywgdmRzb19zdGFydCk7CiAKIAkvKiBBbGxvY2F0ZSB0aGUgVkRTTyB0ZXh0IHBhZ2VsaXN0ICovCiAJdmRzb190ZXh0X3BhZ2VsaXN0ID0ga2NhbGxvYyh0ZXh0X3BhZ2VzLCBzaXplb2Yoc3RydWN0IHBhZ2UgKiksCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rdm0vTWFrZWZpbGUgYi9hcmNoL2FybS9rdm0vTWFrZWZpbGUKaW5kZXggNTMxZTU5Zi4uYjc2Yjc1YiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va3ZtL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2t2bS9NYWtlZmlsZQpAQCAtOCwxMyArOCwxNCBAQAogCXBsdXNfdmlydF9kZWYgOj0gLURSRVFVSVJFU19WSVJUPTEKIGVuZGlmCiAKK0tWTSA6PSAuLi8uLi8uLi92aXJ0L2t2bQorCiBjY2ZsYWdzLXkgKz0gLUkgJChzcmN0cmVlKS8kKHNyYykgLUkgJChzcmN0cmVlKS92aXJ0L2t2bS9hcm0vdmdpYwotQ0ZMQUdTX2FybS5vIDo9ICQocGx1c192aXJ0X2RlZikKK0NGTEFHU18kKEtWTSkvYXJtL2FybS5vIDo9ICQocGx1c192aXJ0X2RlZikKIAogQUZMQUdTX2luaXQubyA6PSAtV2EsLW1hcmNoPWFybXY3LWEkKHBsdXNfdmlydCkKIEFGTEFHU19pbnRlcnJ1cHRzLm8gOj0gLVdhLC1tYXJjaD1hcm12Ny1hJChwbHVzX3ZpcnQpCiAKLUtWTSA6PSAuLi8uLi8uLi92aXJ0L2t2bQoga3ZtLWFybS15ID0gJChLVk0pL2t2bV9tYWluLm8gJChLVk0pL2NvYWxlc2NlZF9tbWlvLm8gJChLVk0pL2V2ZW50ZmQubyAkKEtWTSkvdmZpby5vCiAKIG9iai0kKENPTkZJR19LVk1fQVJNX0hPU1QpICs9IGh5cC8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9NYWtlZmlsZSBiL2FyY2gvYXJtL2xpYi9NYWtlZmlsZQppbmRleCBiMjVjNTQ1Li42ZDJiYTQ1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9saWIvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbGliL01ha2VmaWxlCkBAIC01LDcgKzUsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDE5OTUtMjAwMCBSdXNzZWxsIEtpbmcKICMKIAotbGliLXkJCTo9IGJhY2t0cmFjZS5vIGNoYW5nZWJpdC5vIGNzdW1pcHY2Lm8gY3N1bXBhcnRpYWwubyAgIFwKK2xpYi15CQk6PSBjaGFuZ2ViaXQubyBjc3VtaXB2Ni5vIGNzdW1wYXJ0aWFsLm8gICAgICAgICAgICAgICBcCiAJCSAgIGNzdW1wYXJ0aWFsY29weS5vIGNzdW1wYXJ0aWFsY29weXVzZXIubyBjbGVhcmJpdC5vIFwKIAkJICAgZGVsYXkubyBkZWxheS1sb29wLm8gZmluZGJpdC5vIG1lbWNoci5vIG1lbWNweS5vICAgXAogCQkgICBtZW1tb3ZlLm8gbWVtc2V0Lm8gc2V0Yml0Lm8gICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0xOSw2ICsxOSwxMiBAQAogbW11LXkJCTo9IGNsZWFyX3VzZXIubyBjb3B5X3BhZ2UubyBnZXR1c2VyLm8gcHV0dXNlci5vICAgICAgIFwKIAkJICAgY29weV9mcm9tX3VzZXIubyBjb3B5X3RvX3VzZXIubwogCitpZmRlZiBDT05GSUdfQ0NfSVNfQ0xBTkcKKyAgbGliLXkJKz0gYmFja3RyYWNlLWNsYW5nLm8KK2Vsc2UKKyAgbGliLXkJKz0gYmFja3RyYWNlLm8KK2VuZGlmCisKICMgdXNpbmcgbGliXyBoZXJlIHdvbid0IG92ZXJyaWRlIGFscmVhZHkgYXZhaWxhYmxlIHdlYWsgc3ltYm9scwogb2JqLSQoQ09ORklHX1VBQ0NFU1NfV0lUSF9NRU1DUFkpICs9IHVhY2Nlc3Nfd2l0aF9tZW1jcHkubwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9saWIvYmFja3RyYWNlLWNsYW5nLlMgYi9hcmNoL2FybS9saWIvYmFja3RyYWNlLWNsYW5nLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZmMzc1MQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2xpYi9iYWNrdHJhY2UtY2xhbmcuUwpAQCAtMCwwICsxLDIxNyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLworLyoKKyAqICBsaW51eC9hcmNoL2FybS9saWIvYmFja3RyYWNlLWNsYW5nLlMKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDE5IE5hdGhhbiBIdWNrbGViZXJyeQorICoKKyAqLworI2luY2x1ZGUgPGxpbnV4L2tlcm5fbGV2ZWxzLmg+CisjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgorI2luY2x1ZGUgPGFzbS9hc3NlbWJsZXIuaD4KKwkJLnRleHQKKworLyogZnAgaXMgMCBvciBzdGFjayBmcmFtZSAqLworCisjZGVmaW5lIGZyYW1lCXI0CisjZGVmaW5lIHN2X2ZwCXI1CisjZGVmaW5lIHN2X3BjCXI2CisjZGVmaW5lIG1hc2sJcjcKKyNkZWZpbmUgc3ZfbHIJcjgKKworRU5UUlkoY19iYWNrdHJhY2UpCisKKyNpZiAhZGVmaW5lZChDT05GSUdfRlJBTUVfUE9JTlRFUikgfHwgIWRlZmluZWQoQ09ORklHX1BSSU5USykKKwkJcmV0CWxyCitFTkRQUk9DKGNfYmFja3RyYWNlKQorI2Vsc2UKKworCisvKgorICogQ2xhbmcgZG9lcyBub3Qgc3RvcmUgcGMgb3Igc3AgaW4gZnVuY3Rpb24gcHJvbG9ndWVzIHNvIHdlIGRvbid0IGtub3cgZXhhY3RseQorICogd2hlcmUgdGhlIGZ1bmN0aW9uIHN0YXJ0cy4KKyAqCisgKiBXZSBjYW4gdHJlYXQgdGhlIGN1cnJlbnQgZnJhbWUncyBsciBhcyB0aGUgc2F2ZWQgcGMgYW5kIHRoZSBwcmVjZWRpbmcKKyAqIGZyYW1lJ3MgbHIgYXMgdGhlIGN1cnJlbnQgZnJhbWUncyBsciwgYnV0IHdlIGNhbid0IHRyYWNlIHRoZSBtb3N0IHJlY2VudAorICogY2FsbC4gIEluc2VydGluZyBhIGZhbHNlIHN0YWNrIGZyYW1lIGFsbG93cyB1cyB0byByZWZlcmVuY2UgdGhlIGZ1bmN0aW9uCisgKiBjYWxsZWQgbGFzdCBpbiB0aGUgc3RhY2t0cmFjZS4KKyAqCisgKiBJZiB0aGUgY2FsbCBpbnN0cnVjdGlvbiB3YXMgYSBibCB3ZSBjYW4gbG9vayBhdCB0aGUgY2FsbGVycyBicmFuY2gKKyAqIGluc3RydWN0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgc2F2ZWQgcGMuICBXZSBjYW4gcmVjb3ZlciB0aGUgcGMgaW4gbW9zdCBjYXNlcywKKyAqIGJ1dCBpbiBjYXNlcyBzdWNoIGFzIGNhbGxpbmcgZnVuY3Rpb24gcG9pbnRlcnMgd2UgY2Fubm90LiBJbiB0aGlzIGNhc2UsCisgKiBkZWZhdWx0IHRvIHVzaW5nIHRoZSBsci4gVGhpcyB3aWxsIGJlIHNvbWUgYWRkcmVzcyBpbiB0aGUgZnVuY3Rpb24sIGJ1dCB3aWxsCisgKiBub3QgYmUgdGhlIGZ1bmN0aW9uIHN0YXJ0LgorICoKKyAqIFVuZm9ydHVuYXRlbHkgZHVlIHRvIHRoZSBzdGFjayBmcmFtZSBsYXlvdXQgd2UgY2FuJ3QgZHVtcCByMCAtIHIzLCBidXQgdGhlc2UKKyAqIGFyZSBsZXNzIGZyZXF1ZW50bHkgc2F2ZWQuCisgKgorICogU3RhY2sgZnJhbWUgbGF5b3V0OgorICogCQk8bGFyZ2VyIGFkZHJlc3Nlcz4KKyAqIAkJc2F2ZWQgbHIKKyAqIAlmcmFtZT0+IHNhdmVkIGZwCisgKiAJCW9wdGlvbmFsbHkgc2F2ZWQgY2FsbGVyIHJlZ2lzdGVycyAocjQgLSByMTApCisgKiAJCW9wdGlvbmFsbHkgc2F2ZWQgYXJndW1lbnRzIChyMCAtIHIzKQorICogCQk8dG9wIG9mIHN0YWNrIGZyYW1lPgorICogCQk8c21hbGxlciBhZGRyZXNzZXM+CisgKgorICogRnVuY3Rpb25zIHN0YXJ0IHdpdGggdGhlIGZvbGxvd2luZyBjb2RlIHNlcXVlbmNlOgorICogY29ycmVjdGVkIHBjID0+ICBzdG1mZCBzcCEsIHsuLi4sIGZwLCBscn0KKyAqCQlhZGQgZnAsIHNwLCAjeAorICoJCXN0bWZkIHNwISwge3IwIC0gcjN9IChvcHRpb25hbCkKKyAqCisgKgorICoKKyAqCisgKgorICoKKyAqIFRoZSBkaWFncmFtIGJlbG93IHNob3dzIGFuIGV4YW1wbGUgc3RhY2sgc2V0dXAgZm9yIGR1bXBfc3RhY2suCisgKgorICogVGhlIGZyYW1lIGZvciBjX2JhY2t0cmFjZSBoYXMgcG9pbnRlcnMgdG8gdGhlIGNvZGUgb2YgZHVtcF9zdGFjay4gVGhpcyBpcworICogd2h5IHRoZSBmcmFtZSBvZiBjX2JhY2t0cmFjZSBpcyB1c2VkIHRvIGZvciB0aGUgcGMgY2FsY3VsYXRpb24gb2YKKyAqIGR1bXBfc3RhY2suIFRoaXMgaXMgd2h5IHdlIG11c3QgbW92ZSBiYWNrIGEgZnJhbWUgdG8gcHJpbnQgZHVtcF9zdGFjay4KKyAqCisgKiBUaGUgc3RvcmVkIGxvY2FscyBmb3IgZHVtcF9zdGFjayBhcmUgaW4gZHVtcF9zdGFjaydzIGZyYW1lLiBUaGlzIG1lYW5zIHRoYXQKKyAqIHRvIGZ1bGx5IHByaW50IGR1bXBfc3RhY2sncyBmcmFtZSB3ZSBuZWVkIGJvdGggdGhlIGZyYW1lIGZvciBkdW1wX3N0YWNrIChmb3IKKyAqIGxvY2FscykgYW5kIHRoZSBmcmFtZSB0aGF0IHdhcyBjYWxsZWQgYnkgZHVtcF9zdGFjayAoZm9yIHBjKS4KKyAqCisgKiBUbyBwcmludCBsb2NhbHMgd2UgbXVzdCBrbm93IHdoZXJlIHRoZSBmdW5jdGlvbiBzdGFydCBpcy4gSWYgd2UgcmVhZCB0aGUKKyAqIGZ1bmN0aW9uIHByb2xvZ3VlIG9wY29kZXMgd2UgY2FuIGRldGVybWluZSB3aGljaCB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUKKyAqIHN0YWNrIGZyYW1lLgorICoKKyAqIFRvIGZpbmQgdGhlIGZ1bmN0aW9uIHN0YXJ0IG9mIGR1bXBfc3RhY2sgd2UgY2FuIGxvb2sgYXQgdGhlIHN0b3JlZCBMUiBvZgorICogc2hvd19zdGFjay4gSXQgcG9pbnRzIGF0IHRoZSBpbnN0cnVjdGlvbiBkaXJlY3RseSBhZnRlciB0aGUgYmwgZHVtcF9zdGFjay4KKyAqIFdlIGNhbiB0aGVuIHJlYWQgdGhlIG9mZnNldCBmcm9tIHRoZSBibCBvcGNvZGUgdG8gZGV0ZXJtaW5lIHdoZXJlIHRoZSBicmFuY2gKKyAqIHRha2VzIHVzLiAgVGhlIGFkZHJlc3MgY2FsY3VsYXRlZCBtdXN0IGJlIHRoZSBzdGFydCBvZiBkdW1wX3N0YWNrLgorICoKKyAqIGNfYmFja3RyYWNlIGZyYW1lICAgICAgICAgICBkdW1wX3N0YWNrOgorICoge1tMUl0gICAgfSAgPT09PT09PT09PT09fCAgIC4uLgorICoge1tGUF0gICAgfSAgPT09PT09PXwgICAgfCAgIGJsIGNfYmFja3RyYWNlCisgKiAgICAgICAgICAgICAgICAgICAgfCAgICB8PT4gLi4uCisgKiB7W1I0LVIxMF19ICAgICAgICAgfAorICoge1tSMC1SM10gfSAgICAgICAgIHwgICAgICAgIHNob3dfc3RhY2s6CisgKiBkdW1wX3N0YWNrIGZyYW1lICAgfCAgICAgICAgLi4uCisgKiB7W0xSXSAgICB9ID09PT09PT09PT09PT18ICAgYmwgZHVtcF9zdGFjaworICoge1tGUF0gICAgfSA8PT09PT09PXwgICAgfD0+IC4uLgorICoge1tSNC1SMTBdfQorICoge1tSMC1SM10gfQorICovCisKKwkJc3RtZmQJc3AhLCB7cjQgLSByOSwgZnAsIGxyfQlAIFNhdmUgYW4gZXh0cmEgcmVnaXN0ZXIKKwkJCQkJCUAgdG8gZW5zdXJlIDggYnl0ZSBhbGlnbm1lbnQKKwkJbW92cwlmcmFtZSwgcjAJCUAgaWYgZnJhbWUgcG9pbnRlciBpcyB6ZXJvCisJCWJlcQlub19mcmFtZQkJQCB3ZSBoYXZlIG5vIHN0YWNrIGZyYW1lcworCQl0c3QJcjEsICMweDEwCQlAIDI2IG9yIDMyLWJpdCBtb2RlPworCQltb3ZlcQltYXNrLCAjMHhmYzAwMDAwMworCQltb3ZuZQltYXNrLCAjMAkJQCBtYXNrIGZvciAzMi1iaXQKKworLyoKKyAqIFN3aXRjaGVzIHRoZSBjdXJyZW50IGZyYW1lIHRvIGJlIHRoZSBmcmFtZSBmb3IgZHVtcF9zdGFjay4KKyAqLworCQlhZGQJZnJhbWUsIHNwLCAjMjQJCUAgc3dpdGNoIHRvIGZhbHNlIGZyYW1lCitmb3JfZWFjaF9mcmFtZToJdHN0CWZyYW1lLCBtYXNrCQlAIENoZWNrIGZvciBhZGRyZXNzIGV4Y2VwdGlvbnMKKwkJYm5lCW5vX2ZyYW1lCisKKy8qCisgKiBzdl9mcCBpcyB0aGUgc3RhY2sgZnJhbWUgd2l0aCB0aGUgbG9jYWxzIGZvciB0aGUgY3VycmVudCBjb25zaWRlcmVkCisgKiBmdW5jdGlvbi4KKyAqCisgKiBzdl9wYyBpcyB0aGUgc2F2ZWQgbHIgZnJhbWUgdGhlIGZyYW1lIGFib3ZlLiBUaGlzIGlzIGEgcG9pbnRlciB0byBhIGNvZGUKKyAqIGFkZHJlc3Mgd2l0aGluIHRoZSBjdXJyZW50IGNvbnNpZGVyZWQgZnVuY3Rpb24sIGJ1dCBpdCBpcyBub3QgdGhlIGZ1bmN0aW9uCisgKiBzdGFydC4gVGhpcyB2YWx1ZSBnZXRzIHVwZGF0ZWQgdG8gYmUgdGhlIGZ1bmN0aW9uIHN0YXJ0IGxhdGVyIGlmIGl0IGlzCisgKiBwb3NzaWJsZS4KKyAqLworMTAwMToJCWxkcglzdl9wYywgW2ZyYW1lLCAjNF0JQCBnZXQgc2F2ZWQgJ3BjJworMTAwMjoJCWxkcglzdl9mcCwgW2ZyYW1lLCAjMF0JQCBnZXQgc2F2ZWQgZnAKKworCQl0ZXEJc3ZfZnAsIG1hc2sJCUAgbWFrZSBzdXJlIG5leHQgZnJhbWUgZXhpc3RzCisJCWJlcQlub19mcmFtZQorCisvKgorICogc3ZfbHIgaXMgdGhlIGxyIGZyb20gdGhlIGZ1bmN0aW9uIHRoYXQgY2FsbGVkIHRoZSBjdXJyZW50IGZ1bmN0aW9uLiBUaGlzIGlzCisgKiBhIHBvaW50ZXIgdG8gYSBjb2RlIGFkZHJlc3MgaW4gdGhlIGN1cnJlbnQgZnVuY3Rpb24ncyBjYWxsZXIuICBzdl9sci00IGlzCisgKiB0aGUgaW5zdHJ1Y3Rpb24gdXNlZCB0byBjYWxsIHRoZSBjdXJyZW50IGZ1bmN0aW9uLgorICoKKyAqIFRoaXMgc3ZfbHIgY2FuIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBmdW5jdGlvbiBzdGFydCBpZiB0aGUgZnVuY3Rpb24gd2FzCisgKiBjYWxsZWQgdXNpbmcgYSBibCBpbnN0cnVjdGlvbi4gSWYgdGhlIGZ1bmN0aW9uIHN0YXJ0IGNhbiBiZSByZWNvdmVyZWQgc3ZfcGMKKyAqIGlzIG92ZXJ3cml0dGVuIHdpdGggdGhlIGZ1bmN0aW9uIHN0YXJ0LgorICoKKyAqIElmIHRoZSBjdXJyZW50IGZ1bmN0aW9uIHdhcyBjYWxsZWQgdXNpbmcgYSBmdW5jdGlvbiBwb2ludGVyIHdlIGNhbm5vdAorICogcmVjb3ZlciB0aGUgZnVuY3Rpb24gc3RhcnQgYW5kIGluc3RlYWQgY29udGludWUgd2l0aCBzdl9wYyBhcyBhbiBhcmJpdHJhcnkKKyAqIHZhbHVlIHdpdGhpbiB0aGUgY3VycmVudCBmdW5jdGlvbi4gSWYgdGhpcyBpcyB0aGUgY2FzZSB3ZSBjYW5ub3QgcHJpbnQKKyAqIHJlZ2lzdGVycyBmb3IgdGhlIGN1cnJlbnQgZnVuY3Rpb24sIGJ1dCB0aGUgc3RhY2t0cmFjZSBpcyBzdGlsbCBwcmludGVkCisgKiBwcm9wZXJseS4KKyAqLworMTAwMzoJCWxkcglzdl9sciwgW3N2X2ZwLCAjNF0JQCBnZXQgc2F2ZWQgbHIgZnJvbSBuZXh0IGZyYW1lCisKKwkJbGRyCXIwLCBbc3ZfbHIsICMtNF0JQCBnZXQgY2FsbCBpbnN0cnVjdGlvbgorCQlsZHIJcjMsIC5Mb3Bjb2RlKzQKKwkJYW5kCXIyLCByMywgcjAJCUAgaXMgdGhpcyBhIGJsIGNhbGwKKwkJdGVxCXIyLCByMworCQlibmUJZmluaXNoZWRfc2V0dXAJCUAgZ2l2ZSB1cCBpZiBpdCdzIG5vdAorCQlhbmQJcjAsICMweGZmZmZmZgkJQCBnZXQgY2FsbCBvZmZzZXQgMjQtYml0IGludAorCQlsc2wJcjAsIHIwLCAjOAkJQCBzaWduIGV4dGVuZCBvZmZzZXQKKwkJYXNyCXIwLCByMCwgIzgKKwkJbGRyCXN2X3BjLCBbc3ZfZnAsICM0XQlAIGdldCBsciBhZGRyZXNzCisJCWFkZAlzdl9wYywgc3ZfcGMsICMtNAlAIGdldCBjYWxsIGluc3RydWN0aW9uIGFkZHJlc3MKKwkJYWRkCXN2X3BjLCBzdl9wYywgIzgJQCB0YWtlIGNhcmUgb2YgcHJlZmV0Y2gKKwkJYWRkCXN2X3BjLCBzdl9wYywgcjAsIGxzbCAjMkAgZmluZCBmdW5jdGlvbiBzdGFydAorCitmaW5pc2hlZF9zZXR1cDoKKworCQliaWMJc3ZfcGMsIHN2X3BjLCBtYXNrCUAgbWFzayBQQy9MUiBmb3IgdGhlIG1vZGUKKworLyoKKyAqIFByaW50IHRoZSBmdW5jdGlvbiAoc3ZfcGMpIGFuZCB3aGVyZSBpdCB3YXMgY2FsbGVkIGZyb20gKHN2X2xyKS4KKyAqLworMTAwNDoJCW1vdglyMCwgc3ZfcGMKKworCQltb3YJcjEsIHN2X2xyCisJCW1vdglyMiwgZnJhbWUKKwkJYmljCXIxLCByMSwgbWFzawkJQCBtYXNrIFBDL0xSIGZvciB0aGUgbW9kZQorCQlibAlkdW1wX2JhY2t0cmFjZV9lbnRyeQorCisvKgorICogVGVzdCBpZiB0aGUgZnVuY3Rpb24gc3RhcnQgaXMgYSBzdG1mZCBpbnN0cnVjdGlvbiB0byBkZXRlcm1pbmUgd2hpY2gKKyAqIHJlZ2lzdGVycyB3ZXJlIHN0b3JlZCBpbiB0aGUgZnVuY3Rpb24gcHJvbG9ndWUuCisgKgorICogSWYgd2UgY291bGQgbm90IHJlY292ZXIgdGhlIHN2X3BjIGJlY2F1c2Ugd2Ugd2VyZSBjYWxsZWQgdGhyb3VnaCBhIGZ1bmN0aW9uCisgKiBwb2ludGVyIHRoZSBjb21wYXJpc29uIHdpbGwgZmFpbCBhbmQgbm8gcmVnaXN0ZXJzIHdpbGwgcHJpbnQuIFVud2luZGluZyB3aWxsCisgKiBjb250aW51ZSBhcyBpZiB0aGVyZSBoYWQgYmVlbiBubyByZWdpc3RlcnMgc3RvcmVkIGluIHRoaXMgZnJhbWUuCisgKi8KKzEwMDU6CQlsZHIJcjEsIFtzdl9wYywgIzBdCQlAIGlmIHN0bWZkIHNwISwgey4uLiwgZnAsIGxyfQorCQlsZHIJcjMsIC5Mb3Bjb2RlCQlAIGluc3RydWN0aW9uIGV4aXN0cywKKwkJdGVxCXIzLCByMSwgbHNyICMxMQorCQlsZHIJcjAsIFtmcmFtZV0JCUAgbG9jYWxzIGFyZSBzdG9yZWQgaW4KKwkJCQkJCUAgdGhlIHByZWNlZGluZyBmcmFtZQorCQlzdWJlcQlyMCwgcjAsICM0CisJCWJsZXEJZHVtcF9iYWNrdHJhY2Vfc3RtCUAgZHVtcCBzYXZlZCByZWdpc3RlcnMKKworLyoKKyAqIElmIHdlIGFyZSBvdXQgb2YgZnJhbWVzIG9yIGlmIHRoZSBuZXh0IGZyYW1lIGlzIGludmFsaWQuCisgKi8KKwkJdGVxCXN2X2ZwLCAjMAkJQCB6ZXJvIHNhdmVkIGZwIG1lYW5zCisJCWJlcQlub19mcmFtZQkJQCBubyBmdXJ0aGVyIGZyYW1lcworCisJCWNtcAlzdl9mcCwgZnJhbWUJCUAgbmV4dCBmcmFtZSBtdXN0IGJlCisJCW1vdglmcmFtZSwgc3ZfZnAJCUAgYWJvdmUgdGhlIGN1cnJlbnQgZnJhbWUKKwkJYmhpCWZvcl9lYWNoX2ZyYW1lCisKKzEwMDY6CQlhZHIJcjAsIC5MYmFkCisJCW1vdglyMSwgZnJhbWUKKwkJYmwJcHJpbnRrCitub19mcmFtZToJbGRtZmQJc3AhLCB7cjQgLSByOSwgZnAsIHBjfQorRU5EUFJPQyhjX2JhY2t0cmFjZSkKKwkJLnB1c2hzZWN0aW9uIF9fZXhfdGFibGUsImEiCisJCS5hbGlnbgkzCisJCS5sb25nCTEwMDFiLCAxMDA2YgorCQkubG9uZwkxMDAyYiwgMTAwNmIKKwkJLmxvbmcJMTAwM2IsIDEwMDZiCisJCS5sb25nCTEwMDRiLCAxMDA2YgorCQkubG9uZyAgIDEwMDViLCAxMDA2YgorCQkucG9wc2VjdGlvbgorCisuTGJhZDoJCS5hc2NpegkiQmFja3RyYWNlIGFib3J0ZWQgZHVlIHRvIGJhZCBmcmFtZSBwb2ludGVyIDwlcD5cbiIKKwkJLmFsaWduCisuTG9wY29kZToJLndvcmQJMHhlOTJkNDgwMCA+PiAxMQlAIHN0bWZkIHNwISwgey4uLiBmcCwgbHJ9CisJCS53b3JkCTB4MGIwMDAwMDAJCUAgYmwgaWYgdGhlc2UgYml0cyBhcmUgc2V0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1leHlub3MvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtZXh5bm9zL0tjb25maWcKaW5kZXggZjgzNzg2Ni4uOWRhYjFmNTAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtZXh5bm9zL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC1leHlub3MvS2NvbmZpZwpAQCAtMTksNiArMTksNyBAQAogCXNlbGVjdCBFWFlOT1NfU1JPTQogCXNlbGVjdCBFWFlOT1NfUE1fRE9NQUlOUyBpZiBQTV9HRU5FUklDX0RPTUFJTlMKIAlzZWxlY3QgR1BJT0xJQgorCXNlbGVjdCBIQVZFX0FSTV9BUkNIX1RJTUVSIGlmIEFSQ0hfRVhZTk9TNSAmJiBWSVJUVUFMSVpBVElPTgogCXNlbGVjdCBIQVZFX0FSTV9TQ1UgaWYgU01QCiAJc2VsZWN0IEhBVkVfUzNDMjQxMF9JMkMgaWYgSTJDCiAJc2VsZWN0IEhBVkVfUzNDMjQxMF9XQVRDSERPRyBpZiBXQVRDSERPRwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzMzeHhfNDN4eF9jb21tb25fZGF0YS5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzMzeHhfNDN4eF9jb21tb25fZGF0YS5oCmluZGV4IGFhYTYwOTIuLjNkZTNkN2EgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8zM3h4XzQzeHhfY29tbW9uX2RhdGEuaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMzN4eF80M3h4X2NvbW1vbl9kYXRhLmgKQEAgLTMwLDcgKzMwLDYgQEAgZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTMzeHhfbDNfbWFpbl9fZ2Z4OwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTMzeHhfbDRfd2t1cF9fcnRjOwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTMzeHhfbDRfcGVyX19kY2FuMDsKIGV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgYW0zM3h4X2w0X3Blcl9fZGNhbjE7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIGFtMzN4eF9jcGdtYWMwX19tZGlvOwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTMzeHhfbDRfbHNfX2VsbTsKIGV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgYW0zM3h4X2w0X2xzX19lcHdtc3MwOwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTMzeHhfbDRfbHNfX2Vwd21zczE7CkBAIC03Miw4ICs3MSw2IEBAIGV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBhbTMzeHhfcm5nX2h3bW9kOwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIGFtMzN4eF9vY21jcmFtX2h3bW9kOwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIGFtMzN4eF9zbWFydHJlZmxleDBfaHdtb2Q7CiBleHRlcm4gc3RydWN0IG9tYXBfaHdtb2QgYW0zM3h4X3NtYXJ0cmVmbGV4MV9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBhbTMzeHhfY3BnbWFjMF9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBhbTMzeHhfbWRpb19od21vZDsKIGV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBhbTMzeHhfZGNhbjBfaHdtb2Q7CiBleHRlcm4gc3RydWN0IG9tYXBfaHdtb2QgYW0zM3h4X2RjYW4xX2h3bW9kOwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIGFtMzN4eF9lbG1faHdtb2Q7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMzN4eF80M3h4X2ludGVyY29ubmVjdF9kYXRhLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMzN4eF80M3h4X2ludGVyY29ubmVjdF9kYXRhLmMKaW5kZXggNDdhMGUzMC4uNjM2OThmZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzMzeHhfNDN4eF9pbnRlcmNvbm5lY3RfZGF0YS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8zM3h4XzQzeHhfaW50ZXJjb25uZWN0X2RhdGEuYwpAQCAtMTIyLDEyICsxMjIsNiBAQCBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgYW0zM3h4X2w0X3Blcl9fZGNhbjEgPSB7CiAJLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKIH07CiAKLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTMzeHhfY3BnbWFjMF9fbWRpbyA9IHsKLQkubWFzdGVyCQk9ICZhbTMzeHhfY3BnbWFjMF9od21vZCwKLQkuc2xhdmUJCT0gJmFtMzN4eF9tZGlvX2h3bW9kLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSwKLX07Ci0KIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTMzeHhfbDRfbHNfX2VsbSA9IHsKIAkubWFzdGVyCQk9ICZhbTMzeHhfbDRfbHNfaHdtb2QsCiAJLnNsYXZlCQk9ICZhbTMzeHhfZWxtX2h3bW9kLApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzMzeHhfNDN4eF9pcGJsb2NrX2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8zM3h4XzQzeHhfaXBibG9ja19kYXRhLmMKaW5kZXggYWRiNjI3MS4uZGQ5MzllMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzMzeHhfNDN4eF9pcGJsb2NrX2RhdGEuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMzN4eF80M3h4X2lwYmxvY2tfZGF0YS5jCkBAIC0zNTAsNTQgKzM1MCw2IEBAIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIGFtMzN4eF9jb250cm9sX2h3bW9kX2NsYXNzID0gewogfTsKIAogLyoKLSAqICdjcGdtYWMnIGNsYXNzCi0gKiBjcHN3L2NwZ21hYyBzdWIgc3lzdGVtCi0gKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzc19zeXNjb25maWcgYW0zM3h4X2NwZ21hY19zeXNjID0gewotCS5yZXZfb2Zmcwk9IDB4MCwKLQkuc3lzY19vZmZzCT0gMHg4LAotCS5zeXNzX29mZnMJPSAweDQsCi0JLnN5c2NfZmxhZ3MJPSAoU1lTQ19IQVNfU0lETEVNT0RFIHwgU1lTQ19IQVNfTUlETEVNT0RFIHwKLQkJCSAgIFNZU1NfSEFTX1JFU0VUX1NUQVRVUyksCi0JLmlkbGVtb2Rlcwk9IChTSURMRV9GT1JDRSB8IFNJRExFX05PIHwgTVNUQU5EQllfRk9SQ0UgfAotCQkJICAgTVNUQU5EQllfTk8pLAotCS5zeXNjX2ZpZWxkcwk9ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTMsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3MgYW0zM3h4X2NwZ21hYzBfaHdtb2RfY2xhc3MgPSB7Ci0JLm5hbWUJCT0gImNwZ21hYzAiLAotCS5zeXNjCQk9ICZhbTMzeHhfY3BnbWFjX3N5c2MsCi19OwotCi1zdHJ1Y3Qgb21hcF9od21vZCBhbTMzeHhfY3BnbWFjMF9od21vZCA9IHsKLQkubmFtZQkJPSAiY3BnbWFjMCIsCi0JLmNsYXNzCQk9ICZhbTMzeHhfY3BnbWFjMF9od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJjcHN3XzEyNW1oel9jbGtkbSIsCi0JLmZsYWdzCQk9IChIV01PRF9TV1NVUF9TSURMRSB8IEhXTU9EX1NXU1VQX01TVEFOREJZKSwKLQkubWFpbl9jbGsJPSAiY3Bzd18xMjVtaHpfZ2NsayIsCi0JLm1wdV9ydF9pZHgJPSAxLAotCS5wcmNtCQk9IHsKLQkJLm9tYXA0CT0gewotCQkJLm1vZHVsZW1vZGUJPSBNT0RVTEVNT0RFX1NXQ1RSTCwKLQkJfSwKLQl9LAotfTsKLQotLyoKLSAqIG1kaW8gY2xhc3MKLSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIGFtMzN4eF9tZGlvX2h3bW9kX2NsYXNzID0gewotCS5uYW1lCQk9ICJkYXZpbmNpX21kaW8iLAotfTsKLQotc3RydWN0IG9tYXBfaHdtb2QgYW0zM3h4X21kaW9faHdtb2QgPSB7Ci0JLm5hbWUJCT0gImRhdmluY2lfbWRpbyIsCi0JLmNsYXNzCQk9ICZhbTMzeHhfbWRpb19od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJjcHN3XzEyNW1oel9jbGtkbSIsCi0JLm1haW5fY2xrCT0gImNwc3dfMTI1bWh6X2djbGsiLAotfTsKLQotLyoKICAqIGRjYW4gY2xhc3MKICAqLwogc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIGFtMzN4eF9kY2FuX2h3bW9kX2NsYXNzID0gewpAQCAtMTA3Miw3ICsxMDI0LDYgQEAgc3RhdGljIHZvaWQgb21hcF9od21vZF9hbTMzeHhfY2xrY3RybCh2b2lkKQogCUNMS0NUUkwoYW0zM3h4X3RwdGMxX2h3bW9kLCBBTTMzWFhfQ01fUEVSX1RQVEMxX0NMS0NUUkxfT0ZGU0VUKTsKIAlDTEtDVFJMKGFtMzN4eF90cHRjMl9od21vZCwgQU0zM1hYX0NNX1BFUl9UUFRDMl9DTEtDVFJMX09GRlNFVCk7CiAJQ0xLQ1RSTChhbTMzeHhfZ2Z4X2h3bW9kLCBBTTMzWFhfQ01fR0ZYX0dGWF9DTEtDVFJMX09GRlNFVCk7Ci0JQ0xLQ1RSTChhbTMzeHhfY3BnbWFjMF9od21vZCwgQU0zM1hYX0NNX1BFUl9DUEdNQUMwX0NMS0NUUkxfT0ZGU0VUKTsKIAlDTEtDVFJMKGFtMzN4eF9wcnVzc19od21vZCwgQU0zM1hYX0NNX1BFUl9QUlVTU19DTEtDVFJMX09GRlNFVCk7CiAJQ0xLQ1RSTChhbTMzeHhfbXB1X2h3bW9kICwgQU0zM1hYX0NNX01QVV9NUFVfQ0xLQ1RSTF9PRkZTRVQpOwogCUNMS0NUUkwoYW0zM3h4X2wzX2luc3RyX2h3bW9kICwgQU0zM1hYX0NNX1BFUl9MM19JTlNUUl9DTEtDVFJMX09GRlNFVCk7CkBAIC0xMTM0LDcgKzEwODUsNiBAQCBzdGF0aWMgdm9pZCBvbWFwX2h3bW9kX2FtNDN4eF9jbGtjdHJsKHZvaWQpCiAJQ0xLQ1RSTChhbTMzeHhfdHB0YzFfaHdtb2QsIEFNNDNYWF9DTV9QRVJfVFBUQzFfQ0xLQ1RSTF9PRkZTRVQpOwogCUNMS0NUUkwoYW0zM3h4X3RwdGMyX2h3bW9kLCBBTTQzWFhfQ01fUEVSX1RQVEMyX0NMS0NUUkxfT0ZGU0VUKTsKIAlDTEtDVFJMKGFtMzN4eF9nZnhfaHdtb2QsIEFNNDNYWF9DTV9HRlhfR0ZYX0NMS0NUUkxfT0ZGU0VUKTsKLQlDTEtDVFJMKGFtMzN4eF9jcGdtYWMwX2h3bW9kLCBBTTQzWFhfQ01fUEVSX0NQR01BQzBfQ0xLQ1RSTF9PRkZTRVQpOwogCUNMS0NUUkwoYW0zM3h4X3BydXNzX2h3bW9kLCBBTTQzWFhfQ01fUEVSX1BSVVNTX0NMS0NUUkxfT0ZGU0VUKTsKIAlDTEtDVFJMKGFtMzN4eF9tcHVfaHdtb2QgLCBBTTQzWFhfQ01fTVBVX01QVV9DTEtDVFJMX09GRlNFVCk7CiAJQ0xLQ1RSTChhbTMzeHhfbDNfaW5zdHJfaHdtb2QgLCBBTTQzWFhfQ01fUEVSX0wzX0lOU1RSX0NMS0NUUkxfT0ZGU0VUKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8zM3h4X2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8zM3h4X2RhdGEuYwppbmRleCBjOTY1YWYyLi4yYmNiNjM0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMzN4eF9kYXRhLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzMzeHhfZGF0YS5jCkBAIC0zNzIsMTMgKzM3Miw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgYW0zM3h4X2w0X3drdXBfX2FkY190c2MgPSB7CiAJLnVzZXIJCT0gT0NQX1VTRVJfTVBVLAogfTsKIAotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTMzeHhfbDRfaHNfX2NwZ21hYzAgPSB7Ci0JLm1hc3RlcgkJPSAmYW0zM3h4X2w0X2hzX2h3bW9kLAotCS5zbGF2ZQkJPSAmYW0zM3h4X2NwZ21hYzBfaHdtb2QsCi0JLmNsawkJPSAiY3Bzd18xMjVtaHpfZ2NsayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVLAotfTsKLQogc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTMzeHhfbDNfbWFpbl9fbGNkYyA9IHsKIAkubWFzdGVyCQk9ICZhbTMzeHhfbDNfbWFpbl9od21vZCwKIAkuc2xhdmUJCT0gJmFtMzN4eF9sY2RjX2h3bW9kLApAQCAtNDYyLDggKzQ1NSw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgKmFtMzN4eF9od21vZF9vY3BfaWZzW10gX19pbml0ZGF0YSA9IHsKIAkmYW0zM3h4X2wzX21haW5fX3RwdGMyLAogCSZhbTMzeHhfbDNfbWFpbl9fb2NtYywKIAkmYW0zM3h4X2wzX3NfX3VzYnNzLAotCSZhbTMzeHhfbDRfaHNfX2NwZ21hYzAsCi0JJmFtMzN4eF9jcGdtYWMwX19tZGlvLAogCSZhbTMzeHhfbDNfbWFpbl9fc2hhMCwKIAkmYW0zM3h4X2wzX21haW5fX2FlczAsCiAJJmFtMzN4eF9sNF9wZXJfX3JuZywKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF80M3h4X2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF80M3h4X2RhdGEuYwppbmRleCA2OTU3MWFiLi41YzNkYjZiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfNDN4eF9kYXRhLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzQzeHhfZGF0YS5jCkBAIC01OTcsMTMgKzU5Nyw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgYW00M3h4X2w0X3drdXBfX2FkY190c2MgPSB7CiAJLnVzZXIgICAgICAgICAgID0gT0NQX1VTRVJfTVBVLAogfTsKIAotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTQzeHhfbDRfaHNfX2NwZ21hYzAgPSB7Ci0JLm1hc3RlcgkJPSAmYW00M3h4X2w0X2hzX2h3bW9kLAotCS5zbGF2ZQkJPSAmYW0zM3h4X2NwZ21hYzBfaHdtb2QsCi0JLmNsawkJPSAiY3Bzd18xMjVtaHpfZ2NsayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVLAotfTsKLQogc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBhbTQzeHhfbDRfd2t1cF9fdGltZXIxID0gewogCS5tYXN0ZXIJCT0gJmFtMzN4eF9sNF93a3VwX2h3bW9kLAogCS5zbGF2ZQkJPSAmYW0zM3h4X3RpbWVyMV9od21vZCwKQEAgLTg1OSw4ICs4NTIsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmICphbTQzeHhfaHdtb2Rfb2NwX2lmc1tdIF9faW5pdGRhdGEgPSB7CiAJJmFtMzN4eF9sM19tYWluX190cHRjMSwKIAkmYW0zM3h4X2wzX21haW5fX3RwdGMyLAogCSZhbTMzeHhfbDNfbWFpbl9fb2NtYywKLQkmYW00M3h4X2w0X2hzX19jcGdtYWMwLAotCSZhbTMzeHhfY3BnbWFjMF9fbWRpbywKIAkmYW0zM3h4X2wzX21haW5fX3NoYTAsCiAJJmFtMzN4eF9sM19tYWluX19hZXMwLAogCSZhbTQzeHhfbDNfbWFpbl9fZGVzLApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzQ0eHhfZGF0YS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzQ0eHhfZGF0YS5jCmluZGV4IGE2ZjJhMTAuLjI4ZWEyOTYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF80NHh4X2RhdGEuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfNDR4eF9kYXRhLmMKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJjbTJfNDR4eC5oIgogI2luY2x1ZGUgInBybTQ0eHguaCIKICNpbmNsdWRlICJwcm0tcmVnYml0cy00NHh4LmgiCi0jaW5jbHVkZSAid2RfdGltZXIuaCIKIAogLyogQmFzZSBvZmZzZXQgZm9yIGFsbCBPTUFQNCBpbnRlcnJ1cHRzIGV4dGVybmFsIHRvIE1QVVNTICovCiAjZGVmaW5lIE9NQVA0NFhYX0lSUV9HSUNfU1RBUlQJMzIKQEAgLTI3NiwyOSArMjc1LDYgQEAgc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXA0NHh4X2Flc3NfaHdtb2QgPSB7CiB9OwogCiAvKgotICogJ2MyYycgY2xhc3MKLSAqIGNoaXAgMiBjaGlwIGludGVyZmFjZSB1c2VkIHRvIHBsdWcgdGhlIGFwZSBzb2MgKG9tYXApIHdpdGggYW4gZXh0ZXJuYWwgbW9kZW0KLSAqIHNvYwotICovCi0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBvbWFwNDR4eF9jMmNfaHdtb2RfY2xhc3MgPSB7Ci0JLm5hbWUJPSAiYzJjIiwKLX07Ci0KLS8qIGMyYyAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXA0NHh4X2MyY19od21vZCA9IHsKLQkubmFtZQkJPSAiYzJjIiwKLQkuY2xhc3MJCT0gJm9tYXA0NHh4X2MyY19od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJkMmRfY2xrZG0iLAotCS5wcmNtID0gewotCQkub21hcDQgPSB7Ci0JCQkuY2xrY3RybF9vZmZzID0gT01BUDRfQ01fRDJEX1NBRDJEX0NMS0NUUkxfT0ZGU0VULAotCQkJLmNvbnRleHRfb2ZmcyA9IE9NQVA0X1JNX0QyRF9TQUQyRF9DT05URVhUX09GRlNFVCwKLQkJfSwKLQl9LAotfTsKLQotLyoKICAqICdjb3VudGVyJyBjbGFzcwogICogMzItYml0IG9yZGluYXJ5IGNvdW50ZXIsIGNsb2NrZWQgYnkgdGhlIGZhbGxpbmcgZWRnZSBvZiB0aGUgMzIga2h6IGNsb2NrCiAgKi8KQEAgLTEwODYsNDEgKzEwNjIsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Qgb21hcDQ0eHhfZ3BtY19od21vZCA9IHsKIH07CiAKIC8qCi0gKiAnZ3B1JyBjbGFzcwotICogMmQvM2QgZ3JhcGhpY3MgYWNjZWxlcmF0b3IKLSAqLwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29uZmlnIG9tYXA0NHh4X2dwdV9zeXNjID0gewotCS5yZXZfb2Zmcwk9IDB4MWZjMDAsCi0JLnN5c2Nfb2Zmcwk9IDB4MWZjMTAsCi0JLnN5c2NfZmxhZ3MJPSAoU1lTQ19IQVNfTUlETEVNT0RFIHwgU1lTQ19IQVNfU0lETEVNT0RFKSwKLQkuaWRsZW1vZGVzCT0gKFNJRExFX0ZPUkNFIHwgU0lETEVfTk8gfCBTSURMRV9TTUFSVCB8Ci0JCQkgICBTSURMRV9TTUFSVF9XS1VQIHwgTVNUQU5EQllfRk9SQ0UgfCBNU1RBTkRCWV9OTyB8Ci0JCQkgICBNU1RBTkRCWV9TTUFSVCB8IE1TVEFOREJZX1NNQVJUX1dLVVApLAotCS5zeXNjX2ZpZWxkcwk9ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTIsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDQ0eHhfZ3B1X2h3bW9kX2NsYXNzID0gewotCS5uYW1lCT0gImdwdSIsCi0JLnN5c2MJPSAmb21hcDQ0eHhfZ3B1X3N5c2MsCi19OwotCi0vKiBncHUgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwNDR4eF9ncHVfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gImdwdSIsCi0JLmNsYXNzCQk9ICZvbWFwNDR4eF9ncHVfaHdtb2RfY2xhc3MsCi0JLmNsa2RtX25hbWUJPSAibDNfZ2Z4X2Nsa2RtIiwKLQkubWFpbl9jbGsJPSAic2d4X2Nsa19tdXgiLAotCS5wcmNtID0gewotCQkub21hcDQgPSB7Ci0JCQkuY2xrY3RybF9vZmZzID0gT01BUDRfQ01fR0ZYX0dGWF9DTEtDVFJMX09GRlNFVCwKLQkJCS5jb250ZXh0X29mZnMgPSBPTUFQNF9STV9HRlhfR0ZYX0NPTlRFWFRfT0ZGU0VULAotCQkJLm1vZHVsZW1vZGUgICA9IE1PRFVMRU1PREVfU1dDVFJMLAotCQl9LAotCX0sCi19OwotCi0vKgogICogJ2hkcTF3JyBjbGFzcwogICogaGRxIC8gMS13aXJlIHNlcmlhbCBpbnRlcmZhY2UgY29udHJvbGxlcgogICovCkBAIC0yNDM0LDYxICsyMzc1LDYgQEAgc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXA0NHh4X3VzYl90bGxfaHNfaHdtb2QgPSB7CiB9OwogCiAvKgotICogJ3dkX3RpbWVyJyBjbGFzcwotICogMzItYml0IHdhdGNoZG9nIHVwd2FyZCBjb3VudGVyIHRoYXQgZ2VuZXJhdGVzIGEgcHVsc2Ugb24gdGhlIHJlc2V0IHBpbiBvbgotICogb3ZlcmZsb3cgY29uZGl0aW9uCi0gKi8KLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzX3N5c2NvbmZpZyBvbWFwNDR4eF93ZF90aW1lcl9zeXNjID0gewotCS5yZXZfb2Zmcwk9IDB4MDAwMCwKLQkuc3lzY19vZmZzCT0gMHgwMDEwLAotCS5zeXNzX29mZnMJPSAweDAwMTQsCi0JLnN5c2NfZmxhZ3MJPSAoU1lTQ19IQVNfRU1VRlJFRSB8IFNZU0NfSEFTX1NJRExFTU9ERSB8Ci0JCQkgICBTWVNDX0hBU19TT0ZUUkVTRVQgfCBTWVNTX0hBU19SRVNFVF9TVEFUVVMpLAotCS5pZGxlbW9kZXMJPSAoU0lETEVfRk9SQ0UgfCBTSURMRV9OTyB8IFNJRExFX1NNQVJUIHwKLQkJCSAgIFNJRExFX1NNQVJUX1dLVVApLAotCS5zeXNjX2ZpZWxkcwk9ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDQ0eHhfd2RfdGltZXJfaHdtb2RfY2xhc3MgPSB7Ci0JLm5hbWUJCT0gIndkX3RpbWVyIiwKLQkuc3lzYwkJPSAmb21hcDQ0eHhfd2RfdGltZXJfc3lzYywKLQkucHJlX3NodXRkb3duCT0gJm9tYXAyX3dkX3RpbWVyX2Rpc2FibGUsCi0JLnJlc2V0CQk9ICZvbWFwMl93ZF90aW1lcl9yZXNldCwKLX07Ci0KLS8qIHdkX3RpbWVyMiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXA0NHh4X3dkX3RpbWVyMl9od21vZCA9IHsKLQkubmFtZQkJPSAid2RfdGltZXIyIiwKLQkuY2xhc3MJCT0gJm9tYXA0NHh4X3dkX3RpbWVyX2h3bW9kX2NsYXNzLAotCS5jbGtkbV9uYW1lCT0gImw0X3drdXBfY2xrZG0iLAotCS5tYWluX2Nsawk9ICJzeXNfMzJrX2NrIiwKLQkucHJjbSA9IHsKLQkJLm9tYXA0ID0gewotCQkJLmNsa2N0cmxfb2ZmcyA9IE9NQVA0X0NNX1dLVVBfV0RUMl9DTEtDVFJMX09GRlNFVCwKLQkJCS5jb250ZXh0X29mZnMgPSBPTUFQNF9STV9XS1VQX1dEVDJfQ09OVEVYVF9PRkZTRVQsCi0JCQkubW9kdWxlbW9kZSAgID0gTU9EVUxFTU9ERV9TV0NUUkwsCi0JCX0sCi0JfSwKLX07Ci0KLS8qIHdkX3RpbWVyMyAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXA0NHh4X3dkX3RpbWVyM19od21vZCA9IHsKLQkubmFtZQkJPSAid2RfdGltZXIzIiwKLQkuY2xhc3MJCT0gJm9tYXA0NHh4X3dkX3RpbWVyX2h3bW9kX2NsYXNzLAotCS5jbGtkbV9uYW1lCT0gImFiZV9jbGtkbSIsCi0JLm1haW5fY2xrCT0gInN5c18zMmtfY2siLAotCS5wcmNtID0gewotCQkub21hcDQgPSB7Ci0JCQkuY2xrY3RybF9vZmZzID0gT01BUDRfQ00xX0FCRV9XRFQzX0NMS0NUUkxfT0ZGU0VULAotCQkJLmNvbnRleHRfb2ZmcyA9IE9NQVA0X1JNX0FCRV9XRFQzX0NPTlRFWFRfT0ZGU0VULAotCQkJLm1vZHVsZW1vZGUgICA9IE1PRFVMRU1PREVfU1dDVFJMLAotCQl9LAotCX0sCi19OwotCi0KLS8qCiAgKiBpbnRlcmZhY2VzCiAgKi8KIApAQCAtMjU5NiwxNCArMjQ4Miw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDQ0eHhfZmRpZl9fbDNfbWFpbl8yID0gewogCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCiB9OwogCi0vKiBncHUgLT4gbDNfbWFpbl8yICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXA0NHh4X2dwdV9fbDNfbWFpbl8yID0gewotCS5tYXN0ZXIJCT0gJm9tYXA0NHh4X2dwdV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXA0NHh4X2wzX21haW5fMl9od21vZCwKLQkuY2xrCQk9ICJsM19kaXZfY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCiAvKiBoc2kgLT4gbDNfbWFpbl8yICovCiBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXA0NHh4X2hzaV9fbDNfbWFpbl8yID0gewogCS5tYXN0ZXIJCT0gJm9tYXA0NHh4X2hzaV9od21vZCwKQEAgLTI3ODgsMTQgKzI2NjYsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIF9fbWF5YmVfdW51c2VkIG9tYXA0NHh4X2w0X2FiZV9fYWVzc19kbWEgPSB7CiAJLnVzZXIJCT0gT0NQX1VTRVJfU0RNQSwKIH07CiAKLS8qIGwzX21haW5fMiAtPiBjMmMgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDQ0eHhfbDNfbWFpbl8yX19jMmMgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDQ0eHhfbDNfbWFpbl8yX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDQ0eHhfYzJjX2h3bW9kLAotCS5jbGsJCT0gImwzX2Rpdl9jayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KIC8qIGw0X3drdXAgLT4gY291bnRlcl8zMmsgKi8KIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDQ0eHhfbDRfd2t1cF9fY291bnRlcl8zMmsgPSB7CiAJLm1hc3RlcgkJPSAmb21hcDQ0eHhfbDRfd2t1cF9od21vZCwKQEAgLTMwMjgsMTQgKzI4OTgsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXA0NHh4X2wzX21haW5fMl9fZ3BtYyA9IHsKIAkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAogfTsKIAotLyogbDNfbWFpbl8yIC0+IGdwdSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwNDR4eF9sM19tYWluXzJfX2dwdSA9IHsKLQkubWFzdGVyCQk9ICZvbWFwNDR4eF9sM19tYWluXzJfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwNDR4eF9ncHVfaHdtb2QsCi0JLmNsawkJPSAibDNfZGl2X2NrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQogLyogbDRfcGVyIC0+IGhkcTF3ICovCiBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXA0NHh4X2w0X3Blcl9faGRxMXcgPSB7CiAJLm1hc3RlcgkJPSAmb21hcDQ0eHhfbDRfcGVyX2h3bW9kLApAQCAtMzM5NiwzMCArMzI1OCw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDQ0eHhfbDRfY2ZnX191c2JfdGxsX2hzID0gewogCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCiB9OwogCi0vKiBsNF93a3VwIC0+IHdkX3RpbWVyMiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwNDR4eF9sNF93a3VwX193ZF90aW1lcjIgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDQ0eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXA0NHh4X3dkX3RpbWVyMl9od21vZCwKLQkuY2xrCQk9ICJsNF93a3VwX2Nsa19tdXhfY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9hYmUgLT4gd2RfdGltZXIzICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXA0NHh4X2w0X2FiZV9fd2RfdGltZXIzID0gewotCS5tYXN0ZXIJCT0gJm9tYXA0NHh4X2w0X2FiZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXA0NHh4X3dkX3RpbWVyM19od21vZCwKLQkuY2xrCQk9ICJvY3BfYWJlX2ljbGsiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSwKLX07Ci0KLS8qIGw0X2FiZSAtPiB3ZF90aW1lcjMgKGRtYSkgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDQ0eHhfbDRfYWJlX193ZF90aW1lcjNfZG1hID0gewotCS5tYXN0ZXIJCT0gJm9tYXA0NHh4X2w0X2FiZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXA0NHh4X3dkX3RpbWVyM19od21vZCwKLQkuY2xrCQk9ICJvY3BfYWJlX2ljbGsiLAotCS51c2VyCQk9IE9DUF9VU0VSX1NETUEsCi19OwotCiAvKiBtcHUgLT4gZW1pZjEgKi8KIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDQ0eHhfbXB1X19lbWlmMSA9IHsKIAkubWFzdGVyCQk9ICZvbWFwNDR4eF9tcHVfaHdtb2QsCkBAIC0zNDUwLDcgKzMyODgsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmICpvbWFwNDR4eF9od21vZF9vY3BfaWZzW10gX19pbml0ZGF0YSA9IHsKIAkmb21hcDQ0eHhfZGVidWdzc19fbDNfbWFpbl8yLAogCSZvbWFwNDR4eF9kbWFfc3lzdGVtX19sM19tYWluXzIsCiAJJm9tYXA0NHh4X2ZkaWZfX2wzX21haW5fMiwKLQkmb21hcDQ0eHhfZ3B1X19sM19tYWluXzIsCiAJJm9tYXA0NHh4X2hzaV9fbDNfbWFpbl8yLAogCSZvbWFwNDR4eF9pcHVfX2wzX21haW5fMiwKIAkmb21hcDQ0eHhfaXNzX19sM19tYWluXzIsCkBAIC0zNDc0LDcgKzMzMTEsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmICpvbWFwNDR4eF9od21vZF9vY3BfaWZzW10gX19pbml0ZGF0YSA9IHsKIAkmb21hcDQ0eHhfbDRfY2ZnX19vY3Bfd3Bfbm9jLAogCSZvbWFwNDR4eF9sNF9hYmVfX2Flc3MsCiAJJm9tYXA0NHh4X2w0X2FiZV9fYWVzc19kbWEsCi0JJm9tYXA0NHh4X2wzX21haW5fMl9fYzJjLAogCSZvbWFwNDR4eF9sNF93a3VwX19jb3VudGVyXzMyaywKIAkmb21hcDQ0eHhfbDRfY2ZnX19jdHJsX21vZHVsZV9jb3JlLAogCSZvbWFwNDR4eF9sNF9jZmdfX2N0cmxfbW9kdWxlX3BhZF9jb3JlLApAQCAtMzUwMyw3ICszMzM5LDYgQEAgc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiAqb21hcDQ0eHhfaHdtb2Rfb2NwX2lmc1tdIF9faW5pdGRhdGEgPSB7CiAJJm9tYXA0NHh4X2w0X3Blcl9fZWxtLAogCSZvbWFwNDR4eF9sNF9jZmdfX2ZkaWYsCiAJJm9tYXA0NHh4X2wzX21haW5fMl9fZ3BtYywKLQkmb21hcDQ0eHhfbDNfbWFpbl8yX19ncHUsCiAJJm9tYXA0NHh4X2w0X3Blcl9faGRxMXcsCiAJJm9tYXA0NHh4X2w0X2NmZ19faHNpLAogCSZvbWFwNDR4eF9sM19tYWluXzJfX2lwdSwKQEAgLTM1NTEsOSArMzM4Niw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgKm9tYXA0NHh4X2h3bW9kX29jcF9pZnNbXSBfX2luaXRkYXRhID0gewogCSZvbWFwNDR4eF9sNF9jZmdfX3VzYl9ob3N0X2hzLAogCSZvbWFwNDR4eF9sNF9jZmdfX3VzYl9vdGdfaHMsCiAJJm9tYXA0NHh4X2w0X2NmZ19fdXNiX3RsbF9ocywKLQkmb21hcDQ0eHhfbDRfd2t1cF9fd2RfdGltZXIyLAotCSZvbWFwNDR4eF9sNF9hYmVfX3dkX3RpbWVyMywKLQkmb21hcDQ0eHhfbDRfYWJlX193ZF90aW1lcjNfZG1hLAogCSZvbWFwNDR4eF9tcHVfX2VtaWYxLAogCSZvbWFwNDR4eF9tcHVfX2VtaWYyLAogCSZvbWFwNDR4eF9sM19tYWluXzJfX2FlczEsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfN3h4X2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF83eHhfZGF0YS5jCmluZGV4IDFlYzIxZTliLi5lNWJkNTQ5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfN3h4X2RhdGEuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfN3h4X2RhdGEuYwpAQCAtMjg1LDU2ICsyODUsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2QgZHJhN3h4X2N0cmxfbW9kdWxlX3drdXBfaHdtb2QgPSB7CiB9OwogCiAvKgotICogJ2dtYWMnIGNsYXNzCi0gKiBjcHN3L2dtYWMgc3ViIHN5c3RlbQotICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29uZmlnIGRyYTd4eF9nbWFjX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHgwLAotCS5zeXNjX29mZnMJPSAweDgsCi0JLnN5c3Nfb2Zmcwk9IDB4NCwKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19TSURMRU1PREUgfCBTWVNDX0hBU19NSURMRU1PREUgfAotCQkJICAgU1lTU19IQVNfUkVTRVRfU1RBVFVTKSwKLQkuaWRsZW1vZGVzCT0gKFNJRExFX0ZPUkNFIHwgU0lETEVfTk8gfCBNU1RBTkRCWV9GT1JDRSB8Ci0JCQkgICBNU1RBTkRCWV9OTyksCi0JLnN5c2NfZmllbGRzCT0gJm9tYXBfaHdtb2Rfc3lzY190eXBlMywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBkcmE3eHhfZ21hY19od21vZF9jbGFzcyA9IHsKLQkubmFtZQkJPSAiZ21hYyIsCi0JLnN5c2MJCT0gJmRyYTd4eF9nbWFjX3N5c2MsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2QgZHJhN3h4X2dtYWNfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gImdtYWMiLAotCS5jbGFzcwkJPSAmZHJhN3h4X2dtYWNfaHdtb2RfY2xhc3MsCi0JLmNsa2RtX25hbWUJPSAiZ21hY19jbGtkbSIsCi0JLmZsYWdzCQk9IChIV01PRF9TV1NVUF9TSURMRSB8IEhXTU9EX1NXU1VQX01TVEFOREJZKSwKLQkubWFpbl9jbGsJPSAiZHBsbF9nbWFjX2NrIiwKLQkubXB1X3J0X2lkeAk9IDEsCi0JLnByY20JCT0gewotCQkub21hcDQJPSB7Ci0JCQkuY2xrY3RybF9vZmZzCT0gRFJBN1hYX0NNX0dNQUNfR01BQ19DTEtDVFJMX09GRlNFVCwKLQkJCS5jb250ZXh0X29mZnMJPSBEUkE3WFhfUk1fR01BQ19HTUFDX0NPTlRFWFRfT0ZGU0VULAotCQkJLm1vZHVsZW1vZGUJPSBNT0RVTEVNT0RFX1NXQ1RSTCwKLQkJfSwKLQl9LAotfTsKLQotLyoKLSAqICdtZGlvJyBjbGFzcwotICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3MgZHJhN3h4X21kaW9faHdtb2RfY2xhc3MgPSB7Ci0JLm5hbWUJCT0gImRhdmluY2lfbWRpbyIsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2QgZHJhN3h4X21kaW9faHdtb2QgPSB7Ci0JLm5hbWUJCT0gImRhdmluY2lfbWRpbyIsCi0JLmNsYXNzCQk9ICZkcmE3eHhfbWRpb19od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJnbWFjX2Nsa2RtIiwKLQkubWFpbl9jbGsJPSAiZHBsbF9nbWFjX2NrIiwKLX07Ci0KLS8qCiAgKiAnZGNhbicgY2xhc3MKICAqCiAgKi8KQEAgLTEwNDcsMjgxICs5OTcsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2QgZHJhN3h4X21haWxib3gxM19od21vZCA9IHsKIH07CiAKIC8qCi0gKiAnbWNzcGknIGNsYXNzCi0gKgotICovCi0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzc19zeXNjb25maWcgZHJhN3h4X21jc3BpX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHgwMDAwLAotCS5zeXNjX29mZnMJPSAweDAwMTAsCi0JLnN5c2NfZmxhZ3MJPSAoU1lTQ19IQVNfRU1VRlJFRSB8IFNZU0NfSEFTX1JFU0VUX1NUQVRVUyB8Ci0JCQkgICBTWVNDX0hBU19TSURMRU1PREUgfCBTWVNDX0hBU19TT0ZUUkVTRVQpLAotCS5pZGxlbW9kZXMJPSAoU0lETEVfRk9SQ0UgfCBTSURMRV9OTyB8IFNJRExFX1NNQVJUIHwKLQkJCSAgIFNJRExFX1NNQVJUX1dLVVApLAotCS5zeXNjX2ZpZWxkcwk9ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTIsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3MgZHJhN3h4X21jc3BpX2h3bW9kX2NsYXNzID0gewotCS5uYW1lCT0gIm1jc3BpIiwKLQkuc3lzYwk9ICZkcmE3eHhfbWNzcGlfc3lzYywKLX07Ci0KLS8qIG1jc3BpMSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIGRyYTd4eF9tY3NwaTFfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1jc3BpMSIsCi0JLmNsYXNzCQk9ICZkcmE3eHhfbWNzcGlfaHdtb2RfY2xhc3MsCi0JLmNsa2RtX25hbWUJPSAibDRwZXJfY2xrZG0iLAotCS5tYWluX2Nsawk9ICJmdW5jXzQ4bV9mY2xrIiwKLQkucHJjbSA9IHsKLQkJLm9tYXA0ID0gewotCQkJLmNsa2N0cmxfb2ZmcyA9IERSQTdYWF9DTV9MNFBFUl9NQ1NQSTFfQ0xLQ1RSTF9PRkZTRVQsCi0JCQkuY29udGV4dF9vZmZzID0gRFJBN1hYX1JNX0w0UEVSX01DU1BJMV9DT05URVhUX09GRlNFVCwKLQkJCS5tb2R1bGVtb2RlICAgPSBNT0RVTEVNT0RFX1NXQ1RSTCwKLQkJfSwKLQl9LAotfTsKLQotLyogbWNzcGkyICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2QgZHJhN3h4X21jc3BpMl9od21vZCA9IHsKLQkubmFtZQkJPSAibWNzcGkyIiwKLQkuY2xhc3MJCT0gJmRyYTd4eF9tY3NwaV9od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJsNHBlcl9jbGtkbSIsCi0JLm1haW5fY2xrCT0gImZ1bmNfNDhtX2ZjbGsiLAotCS5wcmNtID0gewotCQkub21hcDQgPSB7Ci0JCQkuY2xrY3RybF9vZmZzID0gRFJBN1hYX0NNX0w0UEVSX01DU1BJMl9DTEtDVFJMX09GRlNFVCwKLQkJCS5jb250ZXh0X29mZnMgPSBEUkE3WFhfUk1fTDRQRVJfTUNTUEkyX0NPTlRFWFRfT0ZGU0VULAotCQkJLm1vZHVsZW1vZGUgICA9IE1PRFVMRU1PREVfU1dDVFJMLAotCQl9LAotCX0sCi19OwotCi0vKiBtY3NwaTMgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBkcmE3eHhfbWNzcGkzX2h3bW9kID0gewotCS5uYW1lCQk9ICJtY3NwaTMiLAotCS5jbGFzcwkJPSAmZHJhN3h4X21jc3BpX2h3bW9kX2NsYXNzLAotCS5jbGtkbV9uYW1lCT0gImw0cGVyX2Nsa2RtIiwKLQkubWFpbl9jbGsJPSAiZnVuY180OG1fZmNsayIsCi0JLnByY20gPSB7Ci0JCS5vbWFwNCA9IHsKLQkJCS5jbGtjdHJsX29mZnMgPSBEUkE3WFhfQ01fTDRQRVJfTUNTUEkzX0NMS0NUUkxfT0ZGU0VULAotCQkJLmNvbnRleHRfb2ZmcyA9IERSQTdYWF9STV9MNFBFUl9NQ1NQSTNfQ09OVEVYVF9PRkZTRVQsCi0JCQkubW9kdWxlbW9kZSAgID0gTU9EVUxFTU9ERV9TV0NUUkwsCi0JCX0sCi0JfSwKLX07Ci0KLS8qIG1jc3BpNCAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIGRyYTd4eF9tY3NwaTRfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1jc3BpNCIsCi0JLmNsYXNzCQk9ICZkcmE3eHhfbWNzcGlfaHdtb2RfY2xhc3MsCi0JLmNsa2RtX25hbWUJPSAibDRwZXJfY2xrZG0iLAotCS5tYWluX2Nsawk9ICJmdW5jXzQ4bV9mY2xrIiwKLQkucHJjbSA9IHsKLQkJLm9tYXA0ID0gewotCQkJLmNsa2N0cmxfb2ZmcyA9IERSQTdYWF9DTV9MNFBFUl9NQ1NQSTRfQ0xLQ1RSTF9PRkZTRVQsCi0JCQkuY29udGV4dF9vZmZzID0gRFJBN1hYX1JNX0w0UEVSX01DU1BJNF9DT05URVhUX09GRlNFVCwKLQkJCS5tb2R1bGVtb2RlICAgPSBNT0RVTEVNT0RFX1NXQ1RSTCwKLQkJfSwKLQl9LAotfTsKLQotLyoKLSAqICdtY2FzcCcgY2xhc3MKLSAqCi0gKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzc19zeXNjb25maWcgZHJhN3h4X21jYXNwX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMCwKLQkuc3lzY19vZmZzCT0gMHgwMDA0LAotCS5zeXNjX2ZsYWdzCT0gU1lTQ19IQVNfU0lETEVNT0RFLAotCS5pZGxlbW9kZXMJPSAoU0lETEVfRk9SQ0UgfCBTSURMRV9OTyB8IFNJRExFX1NNQVJUKSwKLQkuc3lzY19maWVsZHMJPSAmb21hcF9od21vZF9zeXNjX3R5cGUzLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIGRyYTd4eF9tY2FzcF9od21vZF9jbGFzcyA9IHsKLQkubmFtZQk9ICJtY2FzcCIsCi0JLnN5c2MJPSAmZHJhN3h4X21jYXNwX3N5c2MsCi19OwotCi0vKiBtY2FzcDEgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vcHRfY2xrIG1jYXNwMV9vcHRfY2xrc1tdID0gewotCXsgLnJvbGUgPSAiYWhjbGt4IiwgLmNsayA9ICJtY2FzcDFfYWhjbGt4X211eCIgfSwKLQl7IC5yb2xlID0gImFoY2xrciIsIC5jbGsgPSAibWNhc3AxX2FoY2xrcl9tdXgiIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2QgZHJhN3h4X21jYXNwMV9od21vZCA9IHsKLQkubmFtZQkJPSAibWNhc3AxIiwKLQkuY2xhc3MJCT0gJmRyYTd4eF9tY2FzcF9od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJpcHVfY2xrZG0iLAotCS5tYWluX2Nsawk9ICJtY2FzcDFfYXV4X2dmY2xrX211eCIsCi0JLmZsYWdzCQk9IEhXTU9EX09QVF9DTEtTX05FRURFRCwKLQkucHJjbSA9IHsKLQkJLm9tYXA0ID0gewotCQkJLmNsa2N0cmxfb2ZmcyA9IERSQTdYWF9DTV9JUFVfTUNBU1AxX0NMS0NUUkxfT0ZGU0VULAotCQkJLmNvbnRleHRfb2ZmcyA9IERSQTdYWF9STV9JUFVfTUNBU1AxX0NPTlRFWFRfT0ZGU0VULAotCQkJLm1vZHVsZW1vZGUgICA9IE1PRFVMRU1PREVfU1dDVFJMLAotCQl9LAotCX0sCi0JLm9wdF9jbGtzCT0gbWNhc3AxX29wdF9jbGtzLAotCS5vcHRfY2xrc19jbnQJPSBBUlJBWV9TSVpFKG1jYXNwMV9vcHRfY2xrcyksCi19OwotCi0vKiBtY2FzcDIgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vcHRfY2xrIG1jYXNwMl9vcHRfY2xrc1tdID0gewotCXsgLnJvbGUgPSAiYWhjbGt4IiwgLmNsayA9ICJtY2FzcDJfYWhjbGt4X211eCIgfSwKLQl7IC5yb2xlID0gImFoY2xrciIsIC5jbGsgPSAibWNhc3AyX2FoY2xrcl9tdXgiIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2QgZHJhN3h4X21jYXNwMl9od21vZCA9IHsKLQkubmFtZQkJPSAibWNhc3AyIiwKLQkuY2xhc3MJCT0gJmRyYTd4eF9tY2FzcF9od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJsNHBlcjJfY2xrZG0iLAotCS5tYWluX2Nsawk9ICJtY2FzcDJfYXV4X2dmY2xrX211eCIsCi0JLmZsYWdzCQk9IEhXTU9EX09QVF9DTEtTX05FRURFRCwKLQkucHJjbSA9IHsKLQkJLm9tYXA0ID0gewotCQkJLmNsa2N0cmxfb2ZmcyA9IERSQTdYWF9DTV9MNFBFUjJfTUNBU1AyX0NMS0NUUkxfT0ZGU0VULAotCQkJLmNvbnRleHRfb2ZmcyA9IERSQTdYWF9STV9MNFBFUjJfTUNBU1AyX0NPTlRFWFRfT0ZGU0VULAotCQkJLm1vZHVsZW1vZGUgICA9IE1PRFVMRU1PREVfU1dDVFJMLAotCQl9LAotCX0sCi0JLm9wdF9jbGtzCT0gbWNhc3AyX29wdF9jbGtzLAotCS5vcHRfY2xrc19jbnQJPSBBUlJBWV9TSVpFKG1jYXNwMl9vcHRfY2xrcyksCi19OwotCi0vKiBtY2FzcDMgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vcHRfY2xrIG1jYXNwM19vcHRfY2xrc1tdID0gewotCXsgLnJvbGUgPSAiYWhjbGt4IiwgLmNsayA9ICJtY2FzcDNfYWhjbGt4X211eCIgfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBkcmE3eHhfbWNhc3AzX2h3bW9kID0gewotCS5uYW1lCQk9ICJtY2FzcDMiLAotCS5jbGFzcwkJPSAmZHJhN3h4X21jYXNwX2h3bW9kX2NsYXNzLAotCS5jbGtkbV9uYW1lCT0gImw0cGVyMl9jbGtkbSIsCi0JLm1haW5fY2xrCT0gIm1jYXNwM19hdXhfZ2ZjbGtfbXV4IiwKLQkuZmxhZ3MJCT0gSFdNT0RfT1BUX0NMS1NfTkVFREVELAotCS5wcmNtID0gewotCQkub21hcDQgPSB7Ci0JCQkuY2xrY3RybF9vZmZzID0gRFJBN1hYX0NNX0w0UEVSMl9NQ0FTUDNfQ0xLQ1RSTF9PRkZTRVQsCi0JCQkuY29udGV4dF9vZmZzID0gRFJBN1hYX1JNX0w0UEVSMl9NQ0FTUDNfQ09OVEVYVF9PRkZTRVQsCi0JCQkubW9kdWxlbW9kZSAgID0gTU9EVUxFTU9ERV9TV0NUUkwsCi0JCX0sCi0JfSwKLQkub3B0X2Nsa3MJPSBtY2FzcDNfb3B0X2Nsa3MsCi0JLm9wdF9jbGtzX2NudAk9IEFSUkFZX1NJWkUobWNhc3AzX29wdF9jbGtzKSwKLX07Ci0KLS8qIG1jYXNwNCAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29wdF9jbGsgbWNhc3A0X29wdF9jbGtzW10gPSB7Ci0JeyAucm9sZSA9ICJhaGNsa3giLCAuY2xrID0gIm1jYXNwNF9haGNsa3hfbXV4IiB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIGRyYTd4eF9tY2FzcDRfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1jYXNwNCIsCi0JLmNsYXNzCQk9ICZkcmE3eHhfbWNhc3BfaHdtb2RfY2xhc3MsCi0JLmNsa2RtX25hbWUJPSAibDRwZXIyX2Nsa2RtIiwKLQkubWFpbl9jbGsJPSAibWNhc3A0X2F1eF9nZmNsa19tdXgiLAotCS5mbGFncwkJPSBIV01PRF9PUFRfQ0xLU19ORUVERUQsCi0JLnByY20gPSB7Ci0JCS5vbWFwNCA9IHsKLQkJCS5jbGtjdHJsX29mZnMgPSBEUkE3WFhfQ01fTDRQRVIyX01DQVNQNF9DTEtDVFJMX09GRlNFVCwKLQkJCS5jb250ZXh0X29mZnMgPSBEUkE3WFhfUk1fTDRQRVIyX01DQVNQNF9DT05URVhUX09GRlNFVCwKLQkJCS5tb2R1bGVtb2RlICAgPSBNT0RVTEVNT0RFX1NXQ1RSTCwKLQkJfSwKLQl9LAotCS5vcHRfY2xrcwk9IG1jYXNwNF9vcHRfY2xrcywKLQkub3B0X2Nsa3NfY250CT0gQVJSQVlfU0laRShtY2FzcDRfb3B0X2Nsa3MpLAotfTsKLQotLyogbWNhc3A1ICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb3B0X2NsayBtY2FzcDVfb3B0X2Nsa3NbXSA9IHsKLQl7IC5yb2xlID0gImFoY2xreCIsIC5jbGsgPSAibWNhc3A1X2FoY2xreF9tdXgiIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2QgZHJhN3h4X21jYXNwNV9od21vZCA9IHsKLQkubmFtZQkJPSAibWNhc3A1IiwKLQkuY2xhc3MJCT0gJmRyYTd4eF9tY2FzcF9od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJsNHBlcjJfY2xrZG0iLAotCS5tYWluX2Nsawk9ICJtY2FzcDVfYXV4X2dmY2xrX211eCIsCi0JLmZsYWdzCQk9IEhXTU9EX09QVF9DTEtTX05FRURFRCwKLQkucHJjbSA9IHsKLQkJLm9tYXA0ID0gewotCQkJLmNsa2N0cmxfb2ZmcyA9IERSQTdYWF9DTV9MNFBFUjJfTUNBU1A1X0NMS0NUUkxfT0ZGU0VULAotCQkJLmNvbnRleHRfb2ZmcyA9IERSQTdYWF9STV9MNFBFUjJfTUNBU1A1X0NPTlRFWFRfT0ZGU0VULAotCQkJLm1vZHVsZW1vZGUgICA9IE1PRFVMRU1PREVfU1dDVFJMLAotCQl9LAotCX0sCi0JLm9wdF9jbGtzCT0gbWNhc3A1X29wdF9jbGtzLAotCS5vcHRfY2xrc19jbnQJPSBBUlJBWV9TSVpFKG1jYXNwNV9vcHRfY2xrcyksCi19OwotCi0vKiBtY2FzcDYgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vcHRfY2xrIG1jYXNwNl9vcHRfY2xrc1tdID0gewotCXsgLnJvbGUgPSAiYWhjbGt4IiwgLmNsayA9ICJtY2FzcDZfYWhjbGt4X211eCIgfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBkcmE3eHhfbWNhc3A2X2h3bW9kID0gewotCS5uYW1lCQk9ICJtY2FzcDYiLAotCS5jbGFzcwkJPSAmZHJhN3h4X21jYXNwX2h3bW9kX2NsYXNzLAotCS5jbGtkbV9uYW1lCT0gImw0cGVyMl9jbGtkbSIsCi0JLm1haW5fY2xrCT0gIm1jYXNwNl9hdXhfZ2ZjbGtfbXV4IiwKLQkuZmxhZ3MJCT0gSFdNT0RfT1BUX0NMS1NfTkVFREVELAotCS5wcmNtID0gewotCQkub21hcDQgPSB7Ci0JCQkuY2xrY3RybF9vZmZzID0gRFJBN1hYX0NNX0w0UEVSMl9NQ0FTUDZfQ0xLQ1RSTF9PRkZTRVQsCi0JCQkuY29udGV4dF9vZmZzID0gRFJBN1hYX1JNX0w0UEVSMl9NQ0FTUDZfQ09OVEVYVF9PRkZTRVQsCi0JCQkubW9kdWxlbW9kZSAgID0gTU9EVUxFTU9ERV9TV0NUUkwsCi0JCX0sCi0JfSwKLQkub3B0X2Nsa3MJPSBtY2FzcDZfb3B0X2Nsa3MsCi0JLm9wdF9jbGtzX2NudAk9IEFSUkFZX1NJWkUobWNhc3A2X29wdF9jbGtzKSwKLX07Ci0KLS8qIG1jYXNwNyAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29wdF9jbGsgbWNhc3A3X29wdF9jbGtzW10gPSB7Ci0JeyAucm9sZSA9ICJhaGNsa3giLCAuY2xrID0gIm1jYXNwN19haGNsa3hfbXV4IiB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIGRyYTd4eF9tY2FzcDdfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1jYXNwNyIsCi0JLmNsYXNzCQk9ICZkcmE3eHhfbWNhc3BfaHdtb2RfY2xhc3MsCi0JLmNsa2RtX25hbWUJPSAibDRwZXIyX2Nsa2RtIiwKLQkubWFpbl9jbGsJPSAibWNhc3A3X2F1eF9nZmNsa19tdXgiLAotCS5mbGFncwkJPSBIV01PRF9PUFRfQ0xLU19ORUVERUQsCi0JLnByY20gPSB7Ci0JCS5vbWFwNCA9IHsKLQkJCS5jbGtjdHJsX29mZnMgPSBEUkE3WFhfQ01fTDRQRVIyX01DQVNQN19DTEtDVFJMX09GRlNFVCwKLQkJCS5jb250ZXh0X29mZnMgPSBEUkE3WFhfUk1fTDRQRVIyX01DQVNQN19DT05URVhUX09GRlNFVCwKLQkJCS5tb2R1bGVtb2RlICAgPSBNT0RVTEVNT0RFX1NXQ1RSTCwKLQkJfSwKLQl9LAotCS5vcHRfY2xrcwk9IG1jYXNwN19vcHRfY2xrcywKLQkub3B0X2Nsa3NfY250CT0gQVJSQVlfU0laRShtY2FzcDdfb3B0X2Nsa3MpLAotfTsKLQotLyogbWNhc3A4ICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb3B0X2NsayBtY2FzcDhfb3B0X2Nsa3NbXSA9IHsKLQl7IC5yb2xlID0gImFoY2xreCIsIC5jbGsgPSAibWNhc3A4X2FoY2xreF9tdXgiIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2QgZHJhN3h4X21jYXNwOF9od21vZCA9IHsKLQkubmFtZQkJPSAibWNhc3A4IiwKLQkuY2xhc3MJCT0gJmRyYTd4eF9tY2FzcF9od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJsNHBlcjJfY2xrZG0iLAotCS5tYWluX2Nsawk9ICJtY2FzcDhfYXV4X2dmY2xrX211eCIsCi0JLmZsYWdzCQk9IEhXTU9EX09QVF9DTEtTX05FRURFRCwKLQkucHJjbSA9IHsKLQkJLm9tYXA0ID0gewotCQkJLmNsa2N0cmxfb2ZmcyA9IERSQTdYWF9DTV9MNFBFUjJfTUNBU1A4X0NMS0NUUkxfT0ZGU0VULAotCQkJLmNvbnRleHRfb2ZmcyA9IERSQTdYWF9STV9MNFBFUjJfTUNBU1A4X0NPTlRFWFRfT0ZGU0VULAotCQkJLm1vZHVsZW1vZGUgICA9IE1PRFVMRU1PREVfU1dDVFJMLAotCQl9LAotCX0sCi0JLm9wdF9jbGtzCT0gbWNhc3A4X29wdF9jbGtzLAotCS5vcHRfY2xrc19jbnQJPSBBUlJBWV9TSVpFKG1jYXNwOF9vcHRfY2xrcyksCi19OwotCi0vKgogICogJ21wdScgY2xhc3MKICAqCiAgKi8KQEAgLTIzMDMsMTkgKzE5NzgsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIGRyYTd4eF9sNF93a3VwX19jdHJsX21vZHVsZV93a3VwID0gewogCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCiB9OwogCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIGRyYTd4eF9sNF9wZXIyX19jcGdtYWMwID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9sNF9wZXIyX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X2dtYWNfaHdtb2QsCi0JLmNsawkJPSAiZHBsbF9nbWFjX2NrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIGRyYTd4eF9nbWFjX19tZGlvID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9nbWFjX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X21kaW9faHdtb2QsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVLAotfTsKLQogLyogbDRfd2t1cCAtPiBkY2FuMSAqLwogc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDRfd2t1cF9fZGNhbjEgPSB7CiAJLm1hc3RlcgkJPSAmZHJhN3h4X2w0X3drdXBfaHdtb2QsCkBAIC0yNDEyLDk0ICsyMDc0LDYgQEAgc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDNfbWFpbl8xX19zaGEwID0gewogCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCiB9OwogCi0vKiBsNF9wZXIyIC0+IG1jYXNwMSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDRfcGVyMl9fbWNhc3AxID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9sNF9wZXIyX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X21jYXNwMV9od21vZCwKLQkuY2xrCQk9ICJsNF9yb290X2Nsa19kaXYiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsM19tYWluXzEgLT4gbWNhc3AxICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIGRyYTd4eF9sM19tYWluXzFfX21jYXNwMSA9IHsKLQkubWFzdGVyCQk9ICZkcmE3eHhfbDNfbWFpbl8xX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X21jYXNwMV9od21vZCwKLQkuY2xrCQk9ICJsM19pY2xrX2RpdiIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X3BlcjIgLT4gbWNhc3AyICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIGRyYTd4eF9sNF9wZXIyX19tY2FzcDIgPSB7Ci0JLm1hc3RlcgkJPSAmZHJhN3h4X2w0X3BlcjJfaHdtb2QsCi0JLnNsYXZlCQk9ICZkcmE3eHhfbWNhc3AyX2h3bW9kLAotCS5jbGsJCT0gImw0X3Jvb3RfY2xrX2RpdiIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGwzX21haW5fMSAtPiBtY2FzcDIgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgZHJhN3h4X2wzX21haW5fMV9fbWNhc3AyID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9sM19tYWluXzFfaHdtb2QsCi0JLnNsYXZlCQk9ICZkcmE3eHhfbWNhc3AyX2h3bW9kLAotCS5jbGsJCT0gImwzX2ljbGtfZGl2IiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfcGVyMiAtPiBtY2FzcDMgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgZHJhN3h4X2w0X3BlcjJfX21jYXNwMyA9IHsKLQkubWFzdGVyCQk9ICZkcmE3eHhfbDRfcGVyMl9od21vZCwKLQkuc2xhdmUJCT0gJmRyYTd4eF9tY2FzcDNfaHdtb2QsCi0JLmNsawkJPSAibDRfcm9vdF9jbGtfZGl2IiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDNfbWFpbl8xIC0+IG1jYXNwMyAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDNfbWFpbl8xX19tY2FzcDMgPSB7Ci0JLm1hc3RlcgkJPSAmZHJhN3h4X2wzX21haW5fMV9od21vZCwKLQkuc2xhdmUJCT0gJmRyYTd4eF9tY2FzcDNfaHdtb2QsCi0JLmNsawkJPSAibDNfaWNsa19kaXYiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9wZXIyIC0+IG1jYXNwNCAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDRfcGVyMl9fbWNhc3A0ID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9sNF9wZXIyX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X21jYXNwNF9od21vZCwKLQkuY2xrCQk9ICJsNF9yb290X2Nsa19kaXYiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9wZXIyIC0+IG1jYXNwNSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDRfcGVyMl9fbWNhc3A1ID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9sNF9wZXIyX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X21jYXNwNV9od21vZCwKLQkuY2xrCQk9ICJsNF9yb290X2Nsa19kaXYiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9wZXIyIC0+IG1jYXNwNiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDRfcGVyMl9fbWNhc3A2ID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9sNF9wZXIyX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X21jYXNwNl9od21vZCwKLQkuY2xrCQk9ICJsNF9yb290X2Nsa19kaXYiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9wZXIyIC0+IG1jYXNwNyAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDRfcGVyMl9fbWNhc3A3ID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9sNF9wZXIyX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X21jYXNwN19od21vZCwKLQkuY2xrCQk9ICJsNF9yb290X2Nsa19kaXYiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9wZXIyIC0+IG1jYXNwOCAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDRfcGVyMl9fbWNhc3A4ID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9sNF9wZXIyX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X21jYXNwOF9od21vZCwKLQkuY2xrCQk9ICJsNF9yb290X2Nsa19kaXYiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCiAvKiBsNF9wZXIxIC0+IGVsbSAqLwogc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDRfcGVyMV9fZWxtID0gewogCS5tYXN0ZXIJCT0gJmRyYTd4eF9sNF9wZXIxX2h3bW9kLApAQCAtMjYyOCwzOCArMjIwMiw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgZHJhN3h4X2w0X3BlcjNfX21haWxib3gxMyA9IHsKIAkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAogfTsKIAotLyogbDRfcGVyMSAtPiBtY3NwaTEgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgZHJhN3h4X2w0X3BlcjFfX21jc3BpMSA9IHsKLQkubWFzdGVyCQk9ICZkcmE3eHhfbDRfcGVyMV9od21vZCwKLQkuc2xhdmUJCT0gJmRyYTd4eF9tY3NwaTFfaHdtb2QsCi0JLmNsawkJPSAibDNfaWNsa19kaXYiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9wZXIxIC0+IG1jc3BpMiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBkcmE3eHhfbDRfcGVyMV9fbWNzcGkyID0gewotCS5tYXN0ZXIJCT0gJmRyYTd4eF9sNF9wZXIxX2h3bW9kLAotCS5zbGF2ZQkJPSAmZHJhN3h4X21jc3BpMl9od21vZCwKLQkuY2xrCQk9ICJsM19pY2xrX2RpdiIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X3BlcjEgLT4gbWNzcGkzICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIGRyYTd4eF9sNF9wZXIxX19tY3NwaTMgPSB7Ci0JLm1hc3RlcgkJPSAmZHJhN3h4X2w0X3BlcjFfaHdtb2QsCi0JLnNsYXZlCQk9ICZkcmE3eHhfbWNzcGkzX2h3bW9kLAotCS5jbGsJCT0gImwzX2ljbGtfZGl2IiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfcGVyMSAtPiBtY3NwaTQgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgZHJhN3h4X2w0X3BlcjFfX21jc3BpNCA9IHsKLQkubWFzdGVyCQk9ICZkcmE3eHhfbDRfcGVyMV9od21vZCwKLQkuc2xhdmUJCT0gJmRyYTd4eF9tY3NwaTRfaHdtb2QsCi0JLmNsawkJPSAibDNfaWNsa19kaXYiLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCiAvKiBsNF9jZmcgLT4gbXB1ICovCiBzdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIGRyYTd4eF9sNF9jZmdfX21wdSA9IHsKIAkubWFzdGVyCQk9ICZkcmE3eHhfbDRfY2ZnX2h3bW9kLApAQCAtMzAyMSwxOSArMjU2Myw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgKmRyYTd4eF9od21vZF9vY3BfaWZzW10gX19pbml0ZGF0YSA9IHsKIAkmZHJhN3h4X2w0X3drdXBfX2N0cmxfbW9kdWxlX3drdXAsCiAJJmRyYTd4eF9sNF93a3VwX19kY2FuMSwKIAkmZHJhN3h4X2w0X3BlcjJfX2RjYW4yLAotCSZkcmE3eHhfbDRfcGVyMl9fY3BnbWFjMCwKLQkmZHJhN3h4X2w0X3BlcjJfX21jYXNwMSwKLQkmZHJhN3h4X2wzX21haW5fMV9fbWNhc3AxLAotCSZkcmE3eHhfbDRfcGVyMl9fbWNhc3AyLAotCSZkcmE3eHhfbDNfbWFpbl8xX19tY2FzcDIsCi0JJmRyYTd4eF9sNF9wZXIyX19tY2FzcDMsCi0JJmRyYTd4eF9sM19tYWluXzFfX21jYXNwMywKLQkmZHJhN3h4X2w0X3BlcjJfX21jYXNwNCwKLQkmZHJhN3h4X2w0X3BlcjJfX21jYXNwNSwKLQkmZHJhN3h4X2w0X3BlcjJfX21jYXNwNiwKLQkmZHJhN3h4X2w0X3BlcjJfX21jYXNwNywKLQkmZHJhN3h4X2w0X3BlcjJfX21jYXNwOCwKLQkmZHJhN3h4X2dtYWNfX21kaW8sCiAJJmRyYTd4eF9sNF9jZmdfX2RtYV9zeXN0ZW0sCiAJJmRyYTd4eF9sM19tYWluXzFfX3RwY2MsCiAJJmRyYTd4eF9sM19tYWluXzFfX3RwdGMwLApAQCAtMzA2MCwxMCArMjU4OSw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgKmRyYTd4eF9od21vZF9vY3BfaWZzW10gX19pbml0ZGF0YSA9IHsKIAkmZHJhN3h4X2w0X3BlcjNfX21haWxib3gxMSwKIAkmZHJhN3h4X2w0X3BlcjNfX21haWxib3gxMiwKIAkmZHJhN3h4X2w0X3BlcjNfX21haWxib3gxMywKLQkmZHJhN3h4X2w0X3BlcjFfX21jc3BpMSwKLQkmZHJhN3h4X2w0X3BlcjFfX21jc3BpMiwKLQkmZHJhN3h4X2w0X3BlcjFfX21jc3BpMywKLQkmZHJhN3h4X2w0X3BlcjFfX21jc3BpNCwKIAkmZHJhN3h4X2w0X2NmZ19fbXB1LAogCSZkcmE3eHhfbDRfY2ZnX19vY3Ayc2NwMSwKIAkmZHJhN3h4X2w0X2NmZ19fb2NwMnNjcDMsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9jYWNoZS1hdXJvcmEtbDIuaCBiL2FyY2gvYXJtL21tL2NhY2hlLWF1cm9yYS1sMi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODYxMjQ3Li4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21tL2NhY2hlLWF1cm9yYS1sMi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIEFVUk9SQSBzaGFyZWQgTDIgY2FjaGUgY29udHJvbGxlciBzdXBwb3J0Ci0gKgotICogQ29weXJpZ2h0IChDKSAyMDEyIE1hcnZlbGwKLSAqCi0gKiBZZWh1ZGEgWWl0c2NoYWsgPHllaHVkYXlAbWFydmVsbC5jb20+Ci0gKiBHcmVnb3J5IENMRU1FTlQgPGdyZWdvcnkuY2xlbWVudEBmcmVlLWVsZWN0cm9ucy5jb20+Ci0gKgotICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55Ci0gKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKi8KLQotI2lmbmRlZiBfX0FTTV9BUk1fSEFSRFdBUkVfQVVST1JBX0wyX0gKLSNkZWZpbmUgX19BU01fQVJNX0hBUkRXQVJFX0FVUk9SQV9MMl9ICi0KLSNkZWZpbmUgQVVST1JBX1NZTkNfUkVHCQkgICAgMHg3MDAKLSNkZWZpbmUgQVVST1JBX1JBTkdFX0JBU0VfQUREUl9SRUcgIDB4NzIwCi0jZGVmaW5lIEFVUk9SQV9GTFVTSF9QSFlfQUREUl9SRUcgICAweDdmMAotI2RlZmluZSBBVVJPUkFfSU5WQUxfUkFOR0VfUkVHCSAgICAweDc3NAotI2RlZmluZSBBVVJPUkFfQ0xFQU5fUkFOR0VfUkVHCSAgICAweDdiNAotI2RlZmluZSBBVVJPUkFfRkxVU0hfUkFOR0VfUkVHCSAgICAweDdmNAotCi0jZGVmaW5lIEFVUk9SQV9BQ1JfUkVQTEFDRU1FTlRfT0ZGU0VUCSAgICAyNwotI2RlZmluZSBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX01BU0sJICAgICBcCi0JKDB4MyA8PCBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX09GRlNFVCkKLSNkZWZpbmUgQVVST1JBX0FDUl9SRVBMQUNFTUVOVF9UWVBFX1dBWVJSICAgIFwKLQkoMCA8PCBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX09GRlNFVCkKLSNkZWZpbmUgQVVST1JBX0FDUl9SRVBMQUNFTUVOVF9UWVBFX0xGU1IgICAgIFwKLQkoMSA8PCBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX09GRlNFVCkKLSNkZWZpbmUgQVVST1JBX0FDUl9SRVBMQUNFTUVOVF9UWVBFX1NFTUlQTFJVIFwKLQkoMyA8PCBBVVJPUkFfQUNSX1JFUExBQ0VNRU5UX09GRlNFVCkKLQotI2RlZmluZSBBVVJPUkFfQUNSX0ZPUkNFX1dSSVRFX1BPTElDWV9PRkZTRVQJMAotI2RlZmluZSBBVVJPUkFfQUNSX0ZPUkNFX1dSSVRFX1BPTElDWV9NQVNLCVwKLQkoMHgzIDw8IEFVUk9SQV9BQ1JfRk9SQ0VfV1JJVEVfUE9MSUNZX09GRlNFVCkKLSNkZWZpbmUgQVVST1JBX0FDUl9GT1JDRV9XUklURV9QT0xJQ1lfRElTCVwKLQkoMCA8PCBBVVJPUkFfQUNSX0ZPUkNFX1dSSVRFX1BPTElDWV9PRkZTRVQpCi0jZGVmaW5lIEFVUk9SQV9BQ1JfRk9SQ0VfV1JJVEVfQkFDS19QT0xJQ1kJXAotCSgxIDw8IEFVUk9SQV9BQ1JfRk9SQ0VfV1JJVEVfUE9MSUNZX09GRlNFVCkKLSNkZWZpbmUgQVVST1JBX0FDUl9GT1JDRV9XUklURV9USFJPX1BPTElDWQlcCi0JKDIgPDwgQVVST1JBX0FDUl9GT1JDRV9XUklURV9QT0xJQ1lfT0ZGU0VUKQotCi0jZGVmaW5lIE1BWF9SQU5HRV9TSVpFCQkxMDI0Ci0KLSNkZWZpbmUgQVVST1JBX1dBWV9TSVpFX1NISUZUCTIKLQotI2RlZmluZSBBVVJPUkFfQ1RSTF9GVwkJMHgxMDAKLQotLyogY2hvc2UgYSBudW1iZXIgb3V0c2lkZSBMMlgwX0NBQ0hFX0lEX1BBUlRfTUFTSyB0byBiZSBzdXJlIHRvIG1ha2UKLSAqIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIGEgbnVtYmVyIGNvbWluZyBmcm9tIGhhcmR3YXJlIGFuZCBhIG51bWJlcgotICogY29taW5nIGZyb20gdGhlIGRldmljZSB0cmVlICovCi0jZGVmaW5lIEFVUk9SQV9DQUNIRV9JRAkgICAgICAgMHgxMDAKLQotI2VuZGlmIC8qIF9fQVNNX0FSTV9IQVJEV0FSRV9BVVJPUkFfTDJfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vY2FjaGUtbDJ4MC5jIGIvYXJjaC9hcm0vbW0vY2FjaGUtbDJ4MC5jCmluZGV4IDViMjUxYzguLjEyYzI2ZWIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL2NhY2hlLWwyeDAuYworKysgYi9hcmNoL2FybS9tbS9jYWNoZS1sMngwLmMKQEAgLTE4LDggKzE4LDggQEAKICNpbmNsdWRlIDxhc20vY3AxNS5oPgogI2luY2x1ZGUgPGFzbS9jcHV0eXBlLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlL2NhY2hlLWwyeDAuaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUvY2FjaGUtYXVyb3JhLWwyLmg+CiAjaW5jbHVkZSAiY2FjaGUtdGF1cm9zMy5oIgotI2luY2x1ZGUgImNhY2hlLWF1cm9yYS1sMi5oIgogCiBzdHJ1Y3QgbDJjX2luaXRfZGF0YSB7CiAJY29uc3QgY2hhciAqdHlwZTsKQEAgLTEzNTIsOCArMTM1Miw4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGF1cm9yYV9yYW5nZV9lbmQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCiAJICogc2luY2UgY2FjaGUgcmFuZ2Ugb3BlcmF0aW9ucyBzdGFsbCB0aGUgQ1BVIHBpcGVsaW5lCiAJICogdW50aWwgY29tcGxldGlvbi4KIAkgKi8KLQlpZiAoZW5kID4gc3RhcnQgKyBNQVhfUkFOR0VfU0laRSkKLQkJZW5kID0gc3RhcnQgKyBNQVhfUkFOR0VfU0laRTsKKwlpZiAoZW5kID4gc3RhcnQgKyBBVVJPUkFfTUFYX1JBTkdFX1NJWkUpCisJCWVuZCA9IHN0YXJ0ICsgQVVST1JBX01BWF9SQU5HRV9TSVpFOwogCiAJLyoKIAkgKiBDYWNoZSByYW5nZSBvcGVyYXRpb25zIGNhbid0IHN0cmFkZGxlIGEgcGFnZSBib3VuZGFyeS4KQEAgLTE0OTMsNiArMTQ5MywxOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYXVyb3JhX29mX3BhcnNlKGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJCW1hc2sgfD0gQVVST1JBX0FDUl9GT1JDRV9XUklURV9QT0xJQ1lfTUFTSzsKIAl9CiAKKwlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5wLCAibWFydmVsbCxlY2MtZW5hYmxlIikpIHsKKwkJbWFzayB8PSBBVVJPUkFfQUNSX0VDQ19FTjsKKwkJdmFsIHw9IEFVUk9SQV9BQ1JfRUNDX0VOOworCX0KKworCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJhcm0scGFyaXR5LWVuYWJsZSIpKSB7CisJCW1hc2sgfD0gQVVST1JBX0FDUl9QQVJJVFlfRU47CisJCXZhbCB8PSBBVVJPUkFfQUNSX1BBUklUWV9FTjsKKwl9IGVsc2UgaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgImFybSxwYXJpdHktZGlzYWJsZSIpKSB7CisJCW1hc2sgfD0gQVVST1JBX0FDUl9QQVJJVFlfRU47CisJfQorCiAJKmF1eF92YWwgJj0gfm1hc2s7CiAJKmF1eF92YWwgfD0gdmFsOwogCSphdXhfbWFzayAmPSB+bWFzazsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLW5vbW11LmMgYi9hcmNoL2FybS9tbS9kbWEtbWFwcGluZy1ub21tdS5jCmluZGV4IDUyYjgyNTUuLmRiOTI0NzggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLW5vbW11LmMKKysrIGIvYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmctbm9tbXUuYwpAQCAtNjgsOCArNjgsOSBAQCBzdGF0aWMgaW50IGFybV9ub21tdV9kbWFfbW1hcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCiAJaWYgKGRtYV9tbWFwX2Zyb21fZ2xvYmFsX2NvaGVyZW50KHZtYSwgY3B1X2FkZHIsIHNpemUsICZyZXQpKQogCQlyZXR1cm4gcmV0OwotCi0JcmV0dXJuIGRtYV9jb21tb25fbW1hcChkZXYsIHZtYSwgY3B1X2FkZHIsIGRtYV9hZGRyLCBzaXplLCBhdHRycyk7CisJaWYgKGRtYV9tbWFwX2Zyb21fZGV2X2NvaGVyZW50KGRldiwgdm1hLCBjcHVfYWRkciwgc2l6ZSwgJnJldCkpCisJCXJldHVybiByZXQ7CisJcmV0dXJuIC1FTlhJTzsKIH0KIAogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9kbWEtbWFwcGluZy5jIGIvYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYwppbmRleCBkNDI1NTdlLi43ZDA0MmQ1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9kbWEtbWFwcGluZy5jCisrKyBiL2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1kaXJlY3QuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1ub25jb2hlcmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1jb250aWd1b3VzLmg+CkBAIC0zNSw2ICszNiw3IEBACiAjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbV9pbmZvLmg+CiAjaW5jbHVkZSA8YXNtL2RtYS1jb250aWd1b3VzLmg+CisjaW5jbHVkZSA8eGVuL3N3aW90bGIteGVuLmg+CiAKICNpbmNsdWRlICJkbWEuaCIKICNpbmNsdWRlICJtbS5oIgpAQCAtMTkyLDYgKzE5NCw3IEBAIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBhcm1fZG1hX29wcyA9IHsKIAkuc3luY19zZ19mb3JfY3B1CT0gYXJtX2RtYV9zeW5jX3NnX2Zvcl9jcHUsCiAJLnN5bmNfc2dfZm9yX2RldmljZQk9IGFybV9kbWFfc3luY19zZ19mb3JfZGV2aWNlLAogCS5kbWFfc3VwcG9ydGVkCQk9IGFybV9kbWFfc3VwcG9ydGVkLAorCS5nZXRfcmVxdWlyZWRfbWFzawk9IGRtYV9kaXJlY3RfZ2V0X3JlcXVpcmVkX21hc2ssCiB9OwogRVhQT1JUX1NZTUJPTChhcm1fZG1hX29wcyk7CiAKQEAgLTIxMiw2ICsyMTUsNyBAQCBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgYXJtX2NvaGVyZW50X2RtYV9vcHMgPSB7CiAJLm1hcF9zZwkJCT0gYXJtX2RtYV9tYXBfc2csCiAJLm1hcF9yZXNvdXJjZQkJPSBkbWFfZGlyZWN0X21hcF9yZXNvdXJjZSwKIAkuZG1hX3N1cHBvcnRlZAkJPSBhcm1fZG1hX3N1cHBvcnRlZCwKKwkuZ2V0X3JlcXVpcmVkX21hc2sJPSBkbWFfZGlyZWN0X2dldF9yZXF1aXJlZF9tYXNrLAogfTsKIEVYUE9SVF9TWU1CT0woYXJtX2NvaGVyZW50X2RtYV9vcHMpOwogCkBAIC0zMzYsMjUgKzM0MCw2IEBAIHN0YXRpYyB2b2lkICpfX2FsbG9jX3JlbWFwX2J1ZmZlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCBnZnBfdCBnZnAsCiAJCQkJIHBncHJvdF90IHByb3QsIHN0cnVjdCBwYWdlICoqcmV0X3BhZ2UsCiAJCQkJIGNvbnN0IHZvaWQgKmNhbGxlciwgYm9vbCB3YW50X3ZhZGRyKTsKIAotc3RhdGljIHZvaWQgKgotX19kbWFfYWxsb2NfcmVtYXAoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBzaXplLCBnZnBfdCBnZnAsIHBncHJvdF90IHByb3QsCi0JY29uc3Qgdm9pZCAqY2FsbGVyKQotewotCS8qCi0JICogRE1BIGFsbG9jYXRpb24gY2FuIGJlIG1hcHBlZCB0byB1c2VyIHNwYWNlLCBzbyBsZXRzCi0JICogc2V0IFZNX1VTRVJNQVAgZmxhZ3MgdG9vLgotCSAqLwotCXJldHVybiBkbWFfY29tbW9uX2NvbnRpZ3VvdXNfcmVtYXAocGFnZSwgc2l6ZSwKLQkJCVZNX0FSTV9ETUFfQ09OU0lTVEVOVCB8IFZNX1VTRVJNQVAsCi0JCQlwcm90LCBjYWxsZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2RtYV9mcmVlX3JlbWFwKHZvaWQgKmNwdV9hZGRyLCBzaXplX3Qgc2l6ZSkKLXsKLQlkbWFfY29tbW9uX2ZyZWVfcmVtYXAoY3B1X2FkZHIsIHNpemUsCi0JCQlWTV9BUk1fRE1BX0NPTlNJU1RFTlQgfCBWTV9VU0VSTUFQKTsKLX0KLQogI2RlZmluZSBERUZBVUxUX0RNQV9DT0hFUkVOVF9QT09MX1NJWkUJU1pfMjU2Swogc3RhdGljIHN0cnVjdCBnZW5fcG9vbCAqYXRvbWljX3Bvb2wgX19yb19hZnRlcl9pbml0OwogCkBAIC01MTAsNyArNDk1LDcgQEAgc3RhdGljIHZvaWQgKl9fYWxsb2NfcmVtYXBfYnVmZmVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCwKIAlpZiAoIXdhbnRfdmFkZHIpCiAJCWdvdG8gb3V0OwogCi0JcHRyID0gX19kbWFfYWxsb2NfcmVtYXAocGFnZSwgc2l6ZSwgZ2ZwLCBwcm90LCBjYWxsZXIpOworCXB0ciA9IGRtYV9jb21tb25fY29udGlndW91c19yZW1hcChwYWdlLCBzaXplLCBwcm90LCBjYWxsZXIpOwogCWlmICghcHRyKSB7CiAJCV9fZG1hX2ZyZWVfYnVmZmVyKHBhZ2UsIHNpemUpOwogCQlyZXR1cm4gTlVMTDsKQEAgLTU3Nyw3ICs1NjIsNyBAQCBzdGF0aWMgdm9pZCAqX19hbGxvY19mcm9tX2NvbnRpZ3VvdXMoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIAkJZ290byBvdXQ7CiAKIAlpZiAoUGFnZUhpZ2hNZW0ocGFnZSkpIHsKLQkJcHRyID0gX19kbWFfYWxsb2NfcmVtYXAocGFnZSwgc2l6ZSwgR0ZQX0tFUk5FTCwgcHJvdCwgY2FsbGVyKTsKKwkJcHRyID0gZG1hX2NvbW1vbl9jb250aWd1b3VzX3JlbWFwKHBhZ2UsIHNpemUsIHByb3QsIGNhbGxlcik7CiAJCWlmICghcHRyKSB7CiAJCQlkbWFfcmVsZWFzZV9mcm9tX2NvbnRpZ3VvdXMoZGV2LCBwYWdlLCBjb3VudCk7CiAJCQlyZXR1cm4gTlVMTDsKQEAgLTU5Nyw3ICs1ODIsNyBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZnJvbV9jb250aWd1b3VzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiB7CiAJaWYgKHdhbnRfdmFkZHIpIHsKIAkJaWYgKFBhZ2VIaWdoTWVtKHBhZ2UpKQotCQkJX19kbWFfZnJlZV9yZW1hcChjcHVfYWRkciwgc2l6ZSk7CisJCQlkbWFfY29tbW9uX2ZyZWVfcmVtYXAoY3B1X2FkZHIsIHNpemUpOwogCQllbHNlCiAJCQlfX2RtYV9yZW1hcChwYWdlLCBzaXplLCBQQUdFX0tFUk5FTCk7CiAJfQpAQCAtNjg5LDcgKzY3NCw3IEBAIHN0YXRpYyB2b2lkICpyZW1hcF9hbGxvY2F0b3JfYWxsb2Moc3RydWN0IGFybV9kbWFfYWxsb2NfYXJncyAqYXJncywKIHN0YXRpYyB2b2lkIHJlbWFwX2FsbG9jYXRvcl9mcmVlKHN0cnVjdCBhcm1fZG1hX2ZyZWVfYXJncyAqYXJncykKIHsKIAlpZiAoYXJncy0+d2FudF92YWRkcikKLQkJX19kbWFfZnJlZV9yZW1hcChhcmdzLT5jcHVfYWRkciwgYXJncy0+c2l6ZSk7CisJCWRtYV9jb21tb25fZnJlZV9yZW1hcChhcmdzLT5jcHVfYWRkciwgYXJncy0+c2l6ZSk7CiAKIAlfX2RtYV9mcmVlX2J1ZmZlcihhcmdzLT5wYWdlLCBhcmdzLT5zaXplKTsKIH0KQEAgLTg3NywxNyArODYyLDYgQEAgc3RhdGljIHZvaWQgYXJtX2NvaGVyZW50X2RtYV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHZvaWQgKmNwdV9hZGQKIAlfX2FybV9kbWFfZnJlZShkZXYsIHNpemUsIGNwdV9hZGRyLCBoYW5kbGUsIGF0dHJzLCB0cnVlKTsKIH0KIAotLyoKLSAqIFRoZSB3aG9sZSBkbWFfZ2V0X3NndGFibGUoKSBpZGVhIGlzIGZ1bmRhbWVudGFsbHkgdW5zYWZlIC0gaXQgc2VlbXMKLSAqIHRoYXQgdGhlIGludGVudGlvbiBpcyB0byBhbGxvdyBleHBvcnRpbmcgbWVtb3J5IGFsbG9jYXRlZCB2aWEgdGhlCi0gKiBjb2hlcmVudCBETUEgQVBJcyB0aHJvdWdoIHRoZSBkbWFfYnVmIEFQSSwgd2hpY2ggb25seSBhY2NlcHRzIGEKLSAqIHNjYXR0ZXJ0YWJsZS4gIFRoaXMgcHJlc2VudHMgYSBjb3VwbGUgb2YgcHJvYmxlbXM6Ci0gKiAxLiBOb3QgYWxsIG1lbW9yeSBhbGxvY2F0ZWQgdmlhIHRoZSBjb2hlcmVudCBETUEgQVBJcyBpcyBiYWNrZWQgYnkKLSAqICAgIGEgc3RydWN0IHBhZ2UKLSAqIDIuIFBhc3NpbmcgY29oZXJlbnQgRE1BIG1lbW9yeSBpbnRvIHRoZSBzdHJlYW1pbmcgQVBJcyBpcyBub3QgYWxsb3dlZAotICogICAgYXMgd2Ugd2lsbCB0cnkgdG8gZmx1c2ggdGhlIG1lbW9yeSB0aHJvdWdoIGEgZGlmZmVyZW50IGFsaWFzIHRvIHRoYXQKLSAqICAgIGFjdHVhbGx5IGJlaW5nIHVzZWQgKGFuZCB0aGUgZmx1c2hlcyBhcmUgcmVkdW5kYW50LikKLSAqLwogaW50IGFybV9kbWFfZ2V0X3NndGFibGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCwKIAkJIHZvaWQgKmNwdV9hZGRyLCBkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsCiAJCSB1bnNpZ25lZCBsb25nIGF0dHJzKQpAQCAtMTEzMiwxMCArMTEwNiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgKmFybV9nZXRfZG1hX21hcF9vcHMoYm9vbCBjb2hlcmVudCkKIAkgKiAzMi1iaXQgRE1BLgogCSAqIFVzZSB0aGUgZ2VuZXJpYyBkbWEtZGlyZWN0IC8gc3dpb3RsYiBvcHMgY29kZSBpbiB0aGF0IGNhc2UsIGFzIHRoYXQKIAkgKiBoYW5kbGVzIGJvdW5jZSBidWZmZXJpbmcgZm9yIHVzLgotCSAqCi0JICogTm90ZTogdGhpcyBjaGVja3MgQ09ORklHX0FSTV9MUEFFIGluc3RlYWQgb2YgQ09ORklHX1NXSU9UTEIgYXMgdGhlCi0JICogbGF0dGVyIGlzIGFsc28gc2VsZWN0ZWQgYnkgdGhlIFhlbiBjb2RlLCBidXQgdGhhdCBjb2RlIGZvciBub3cgcmVsaWVzCi0JICogb24gbm9uLU5VTEwgZGV2X2RtYV9vcHMuICBUbyBiZSBjbGVhbmVkIHVwIGxhdGVyLgogCSAqLwogCWlmIChJU19FTkFCTEVEKENPTkZJR19BUk1fTFBBRSkpCiAJCXJldHVybiBOVUxMOwpAQCAtMTM3MywxNyArMTM0Myw2IEBAIHN0YXRpYyBpbnQgX19pb21tdV9mcmVlX2J1ZmZlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICoqcGFnZXMsCiB9CiAKIC8qCi0gKiBDcmVhdGUgYSBDUFUgbWFwcGluZyBmb3IgYSBzcGVjaWZpZWQgcGFnZXMKLSAqLwotc3RhdGljIHZvaWQgKgotX19pb21tdV9hbGxvY19yZW1hcChzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwLCBwZ3Byb3RfdCBwcm90LAotCQkgICAgY29uc3Qgdm9pZCAqY2FsbGVyKQotewotCXJldHVybiBkbWFfY29tbW9uX3BhZ2VzX3JlbWFwKHBhZ2VzLCBzaXplLAotCQkJVk1fQVJNX0RNQV9DT05TSVNURU5UIHwgVk1fVVNFUk1BUCwgcHJvdCwgY2FsbGVyKTsKLX0KLQotLyoKICAqIENyZWF0ZSBhIG1hcHBpbmcgaW4gZGV2aWNlIElPIGFkZHJlc3Mgc3BhY2UgZm9yIHNwZWNpZmllZCBwYWdlcwogICovCiBzdGF0aWMgZG1hX2FkZHJfdApAQCAtMTQ1NSwxOCArMTQxNCwxMyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKipfX2F0b21pY19nZXRfcGFnZXModm9pZCAqYWRkcikKIAogc3RhdGljIHN0cnVjdCBwYWdlICoqX19pb21tdV9nZXRfcGFnZXModm9pZCAqY3B1X2FkZHIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7Ci0Jc3RydWN0IHZtX3N0cnVjdCAqYXJlYTsKLQogCWlmIChfX2luX2F0b21pY19wb29sKGNwdV9hZGRyLCBQQUdFX1NJWkUpKQogCQlyZXR1cm4gX19hdG9taWNfZ2V0X3BhZ2VzKGNwdV9hZGRyKTsKIAogCWlmIChhdHRycyAmIERNQV9BVFRSX05PX0tFUk5FTF9NQVBQSU5HKQogCQlyZXR1cm4gY3B1X2FkZHI7CiAKLQlhcmVhID0gZmluZF92bV9hcmVhKGNwdV9hZGRyKTsKLQlpZiAoYXJlYSAmJiAoYXJlYS0+ZmxhZ3MgJiBWTV9BUk1fRE1BX0NPTlNJU1RFTlQpKQotCQlyZXR1cm4gYXJlYS0+cGFnZXM7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIGRtYV9jb21tb25fZmluZF9wYWdlcyhjcHVfYWRkcik7CiB9CiAKIHN0YXRpYyB2b2lkICpfX2lvbW11X2FsbG9jX3NpbXBsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCBnZnBfdCBnZnAsCkBAIC0xNTM5LDcgKzE0OTMsNyBAQCBzdGF0aWMgdm9pZCAqX19hcm1faW9tbXVfYWxsb2NfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIAlpZiAoYXR0cnMgJiBETUFfQVRUUl9OT19LRVJORUxfTUFQUElORykKIAkJcmV0dXJuIHBhZ2VzOwogCi0JYWRkciA9IF9faW9tbXVfYWxsb2NfcmVtYXAocGFnZXMsIHNpemUsIGdmcCwgcHJvdCwKKwlhZGRyID0gZG1hX2NvbW1vbl9wYWdlc19yZW1hcChwYWdlcywgc2l6ZSwgcHJvdCwKIAkJCQkgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOwogCWlmICghYWRkcikKIAkJZ290byBlcnJfbWFwcGluZzsKQEAgLTE2MjIsMTAgKzE1NzYsOCBAQCB2b2lkIF9fYXJtX2lvbW11X2ZyZWVfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgdm9pZCAqY3B1X2FkZHIsCiAJCXJldHVybjsKIAl9CiAKLQlpZiAoKGF0dHJzICYgRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkcpID09IDApIHsKLQkJZG1hX2NvbW1vbl9mcmVlX3JlbWFwKGNwdV9hZGRyLCBzaXplLAotCQkJVk1fQVJNX0RNQV9DT05TSVNURU5UIHwgVk1fVVNFUk1BUCk7Ci0JfQorCWlmICgoYXR0cnMgJiBETUFfQVRUUl9OT19LRVJORUxfTUFQUElORykgPT0gMCkKKwkJZG1hX2NvbW1vbl9mcmVlX3JlbWFwKGNwdV9hZGRyLCBzaXplKTsKIAogCV9faW9tbXVfcmVtb3ZlX21hcHBpbmcoZGV2LCBoYW5kbGUsIHNpemUpOwogCV9faW9tbXVfZnJlZV9idWZmZXIoZGV2LCBwYWdlcywgc2l6ZSwgYXR0cnMpOwpAQCAtMjM2MywxMCArMjMxNSw4IEBAIHZvaWQgYXJjaF9zZXR1cF9kbWFfb3BzKHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IGRtYV9iYXNlLCB1NjQgc2l6ZSwKIAlzZXRfZG1hX29wcyhkZXYsIGRtYV9vcHMpOwogCiAjaWZkZWYgQ09ORklHX1hFTgotCWlmICh4ZW5faW5pdGlhbF9kb21haW4oKSkgewotCQlkZXYtPmFyY2hkYXRhLmRldl9kbWFfb3BzID0gZGV2LT5kbWFfb3BzOwotCQlkZXYtPmRtYV9vcHMgPSB4ZW5fZG1hX29wczsKLQl9CisJaWYgKHhlbl9pbml0aWFsX2RvbWFpbigpKQorCQlkZXYtPmRtYV9vcHMgPSAmeGVuX3N3aW90bGJfZG1hX29wczsKICNlbmRpZgogCWRldi0+YXJjaGRhdGEuZG1hX29wc19zZXR1cCA9IHRydWU7CiB9CkBAIC0yNDAyLDEyICsyMzUyLDYgQEAgbG9uZyBhcmNoX2RtYV9jb2hlcmVudF90b19wZm4oc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpjcHVfYWRkciwKIAlyZXR1cm4gZG1hX3RvX3BmbihkZXYsIGRtYV9hZGRyKTsKIH0KIAotcGdwcm90X3QgYXJjaF9kbWFfbW1hcF9wZ3Byb3Qoc3RydWN0IGRldmljZSAqZGV2LCBwZ3Byb3RfdCBwcm90LAotCQl1bnNpZ25lZCBsb25nIGF0dHJzKQotewotCXJldHVybiBfX2dldF9kbWFfcGdwcm90KGF0dHJzLCBwcm90KTsKLX0KLQogdm9pZCAqYXJjaF9kbWFfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSwKIAkJZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vZmF1bHQuYyBiL2FyY2gvYXJtL21tL2ZhdWx0LmMKaW5kZXggODkwZWVhYS4uYmQwZjQ4MiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vZmF1bHQuYworKysgYi9hcmNoL2FybS9tbS9mYXVsdC5jCkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIGlubGluZSBib29sIGFjY2Vzc19lcnJvcih1bnNpZ25lZCBpbnQgZnNyLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKIAl1bnNpZ25lZCBpbnQgbWFzayA9IFZNX1JFQUQgfCBWTV9XUklURSB8IFZNX0VYRUM7CiAKLQlpZiAoZnNyICYgRlNSX1dSSVRFKQorCWlmICgoZnNyICYgRlNSX1dSSVRFKSAmJiAhKGZzciAmIEZTUl9DTSkpCiAJCW1hc2sgPSBWTV9XUklURTsKIAlpZiAoZnNyICYgRlNSX0xOWF9QRikKIAkJbWFzayA9IFZNX0VYRUM7CkBAIC0yNjIsNyArMjYyLDcgQEAgZG9fcGFnZV9mYXVsdCh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGludCBmc3IsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCiAJaWYgKHVzZXJfbW9kZShyZWdzKSkKIAkJZmxhZ3MgfD0gRkFVTFRfRkxBR19VU0VSOwotCWlmIChmc3IgJiBGU1JfV1JJVEUpCisJaWYgKChmc3IgJiBGU1JfV1JJVEUpICYmICEoZnNyICYgRlNSX0NNKSkKIAkJZmxhZ3MgfD0gRkFVTFRfRkxBR19XUklURTsKIAogCS8qCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9mYXVsdC5oIGIvYXJjaC9hcm0vbW0vZmF1bHQuaAppbmRleCBjMDYzNzA4Li45ZWNjMjA5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9mYXVsdC5oCisrKyBiL2FyY2gvYXJtL21tL2ZhdWx0LmgKQEAgLTYsNiArNiw3IEBACiAgKiBGYXVsdCBzdGF0dXMgcmVnaXN0ZXIgZW5jb2RpbmdzLiAgV2Ugc3RlYWwgYml0IDMxIGZvciBvdXIgb3duIHB1cnBvc2VzLgogICovCiAjZGVmaW5lIEZTUl9MTlhfUEYJCSgxIDw8IDMxKQorI2RlZmluZSBGU1JfQ00JCQkoMSA8PCAxMykKICNkZWZpbmUgRlNSX1dSSVRFCQkoMSA8PCAxMSkKICNkZWZpbmUgRlNSX0ZTNAkJCSgxIDw8IDEwKQogI2RlZmluZSBGU1JfRlMzXzAJCSgxNSkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL2ZsdXNoLmMgYi9hcmNoL2FybS9tbS9mbHVzaC5jCmluZGV4IDZlY2JkYTguLjZkODlkYjcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL2ZsdXNoLmMKKysrIGIvYXJjaC9hcm0vbW0vZmx1c2guYwpAQCAtMjA0LDE4ICsyMDQsMTcgQEAgdm9pZCBfX2ZsdXNoX2RjYWNoZV9wYWdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAkgKiBjb2hlcmVudCB3aXRoIHRoZSBrZXJuZWxzIG1hcHBpbmcuCiAJICovCiAJaWYgKCFQYWdlSGlnaE1lbShwYWdlKSkgewotCQlzaXplX3QgcGFnZV9zaXplID0gUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpOwotCQlfX2NwdWNfZmx1c2hfZGNhY2hlX2FyZWEocGFnZV9hZGRyZXNzKHBhZ2UpLCBwYWdlX3NpemUpOworCQlfX2NwdWNfZmx1c2hfZGNhY2hlX2FyZWEocGFnZV9hZGRyZXNzKHBhZ2UpLCBwYWdlX3NpemUocGFnZSkpOwogCX0gZWxzZSB7CiAJCXVuc2lnbmVkIGxvbmcgaTsKIAkJaWYgKGNhY2hlX2lzX3ZpcHRfbm9uYWxpYXNpbmcoKSkgewotCQkJZm9yIChpID0gMDsgaSA8ICgxIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpKTsgaSsrKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgY29tcG91bmRfbnIocGFnZSk7IGkrKykgewogCQkJCXZvaWQgKmFkZHIgPSBrbWFwX2F0b21pYyhwYWdlICsgaSk7CiAJCQkJX19jcHVjX2ZsdXNoX2RjYWNoZV9hcmVhKGFkZHIsIFBBR0VfU0laRSk7CiAJCQkJa3VubWFwX2F0b21pYyhhZGRyKTsKIAkJCX0KIAkJfSBlbHNlIHsKLQkJCWZvciAoaSA9IDA7IGkgPCAoMSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKSk7IGkrKykgeworCQkJZm9yIChpID0gMDsgaSA8IGNvbXBvdW5kX25yKHBhZ2UpOyBpKyspIHsKIAkJCQl2b2lkICphZGRyID0ga21hcF9oaWdoX2dldChwYWdlICsgaSk7CiAJCQkJaWYgKGFkZHIpIHsKIAkJCQkJX19jcHVjX2ZsdXNoX2RjYWNoZV9hcmVhKGFkZHIsIFBBR0VfU0laRSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9tbS5oIGIvYXJjaC9hcm0vbW0vbW0uaAppbmRleCA5NDEzNTZkLi44OGMxMjFhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9tbS5oCisrKyBiL2FyY2gvYXJtL21tL21tLmgKQEAgLTcwLDkgKzcwLDYgQEAgZXh0ZXJuIHZvaWQgX19mbHVzaF9kY2FjaGVfcGFnZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgc3RydWN0IHBhZ2UgKnBhZ2UKICNkZWZpbmUgVk1fQVJNX01UWVBFKG10KQkJKChtdCkgPDwgMjApCiAjZGVmaW5lIFZNX0FSTV9NVFlQRV9NQVNLCSgweDFmIDw8IDIwKQogCi0vKiBjb25zaXN0ZW50IHJlZ2lvbnMgdXNlZCBieSBkbWFfYWxsb2NfYXR0cnMoKSAqLwotI2RlZmluZSBWTV9BUk1fRE1BX0NPTlNJU1RFTlQJMHgyMDAwMDAwMAotCiAKIHN0cnVjdCBzdGF0aWNfdm0gewogCXN0cnVjdCB2bV9zdHJ1Y3Qgdm07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9tbWFwLmMgYi9hcmNoL2FybS9tbS9tbWFwLmMKaW5kZXggZjg2Njg3MC4uYjhkOTEyYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vbW1hcC5jCisrKyBiL2FyY2gvYXJtL21tL21tYXAuYwpAQCAtMTcsMzMgKzE3LDYgQEAKIAkoKCgoYWRkcikrU0hNTEJBLTEpJn4oU0hNTEJBLTEpKSArCVwKIAkgKCgocGdvZmYpPDxQQUdFX1NISUZUKSAmIChTSE1MQkEtMSkpKQogCi0vKiBnYXAgYmV0d2VlbiBtbWFwIGFuZCBzdGFjayAqLwotI2RlZmluZSBNSU5fR0FQICgxMjgqMTAyNCoxMDI0VUwpCi0jZGVmaW5lIE1BWF9HQVAgKChUQVNLX1NJWkUpLzYqNSkKLQotc3RhdGljIGludCBtbWFwX2lzX2xlZ2FjeShzdHJ1Y3QgcmxpbWl0ICpybGltX3N0YWNrKQotewotCWlmIChjdXJyZW50LT5wZXJzb25hbGl0eSAmIEFERFJfQ09NUEFUX0xBWU9VVCkKLQkJcmV0dXJuIDE7Ci0KLQlpZiAocmxpbV9zdGFjay0+cmxpbV9jdXIgPT0gUkxJTV9JTkZJTklUWSkKLQkJcmV0dXJuIDE7Ci0KLQlyZXR1cm4gc3lzY3RsX2xlZ2FjeV92YV9sYXlvdXQ7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBsb25nIG1tYXBfYmFzZSh1bnNpZ25lZCBsb25nIHJuZCwgc3RydWN0IHJsaW1pdCAqcmxpbV9zdGFjaykKLXsKLQl1bnNpZ25lZCBsb25nIGdhcCA9IHJsaW1fc3RhY2stPnJsaW1fY3VyOwotCi0JaWYgKGdhcCA8IE1JTl9HQVApCi0JCWdhcCA9IE1JTl9HQVA7Ci0JZWxzZSBpZiAoZ2FwID4gTUFYX0dBUCkKLQkJZ2FwID0gTUFYX0dBUDsKLQotCXJldHVybiBQQUdFX0FMSUdOKFRBU0tfU0laRSAtIGdhcCAtIHJuZCk7Ci19Ci0KIC8qCiAgKiBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHNoYXJlZCBtYXBwaW5ncyBhcmUgY29ycmVjdGx5IGFsaWduZWQgdG8KICAqIGF2b2lkIGFsaWFzaW5nIGlzc3VlcyB3aXRoIFZJUFQgY2FjaGVzLiAgV2UgbmVlZCB0byBlbnN1cmUgdGhhdApAQCAtMTcxLDMxICsxNDQsNiBAQCBhcmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd24oc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IHVuc2lnbmVkIGxvbmcgYWRkcjAsCiAJcmV0dXJuIGFkZHI7CiB9CiAKLXVuc2lnbmVkIGxvbmcgYXJjaF9tbWFwX3JuZCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgcm5kOwotCi0Jcm5kID0gZ2V0X3JhbmRvbV9sb25nKCkgJiAoKDFVTCA8PCBtbWFwX3JuZF9iaXRzKSAtIDEpOwotCi0JcmV0dXJuIHJuZCA8PCBQQUdFX1NISUZUOwotfQotCi12b2lkIGFyY2hfcGlja19tbWFwX2xheW91dChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHJsaW1pdCAqcmxpbV9zdGFjaykKLXsKLQl1bnNpZ25lZCBsb25nIHJhbmRvbV9mYWN0b3IgPSAwVUw7Ci0KLQlpZiAoY3VycmVudC0+ZmxhZ3MgJiBQRl9SQU5ET01JWkUpCi0JCXJhbmRvbV9mYWN0b3IgPSBhcmNoX21tYXBfcm5kKCk7Ci0KLQlpZiAobW1hcF9pc19sZWdhY3kocmxpbV9zdGFjaykpIHsKLQkJbW0tPm1tYXBfYmFzZSA9IFRBU0tfVU5NQVBQRURfQkFTRSArIHJhbmRvbV9mYWN0b3I7Ci0JCW1tLT5nZXRfdW5tYXBwZWRfYXJlYSA9IGFyY2hfZ2V0X3VubWFwcGVkX2FyZWE7Ci0JfSBlbHNlIHsKLQkJbW0tPm1tYXBfYmFzZSA9IG1tYXBfYmFzZShyYW5kb21fZmFjdG9yLCBybGltX3N0YWNrKTsKLQkJbW0tPmdldF91bm1hcHBlZF9hcmVhID0gYXJjaF9nZXRfdW5tYXBwZWRfYXJlYV90b3Bkb3duOwotCX0KLX0KLQogLyoKICAqIFlvdSByZWFsbHkgc2hvdWxkbid0IGJlIHVzaW5nIHJlYWQoKSBvciB3cml0ZSgpIG9uIC9kZXYvbWVtLiAgVGhpcwogICogbWlnaHQgZ28gYXdheSBpbiB0aGUgZnV0dXJlLgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vbW11LmMgYi9hcmNoL2FybS9tbS9tbXUuYwppbmRleCBkOWEwMDM4Li40OGMyODg4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9tbXUuYworKysgYi9hcmNoL2FybS9tbS9tbXUuYwpAQCAtNzMxLDcgKzczMSw3IEBAIHN0YXRpYyB2b2lkICpfX2luaXQgbGF0ZV9hbGxvYyh1bnNpZ25lZCBsb25nIHN6KQogewogCXZvaWQgKnB0ciA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhHRlBfUEdUQUJMRV9LRVJORUwsIGdldF9vcmRlcihzeikpOwogCi0JaWYgKCFwdHIgfHwgIXBndGFibGVfcGFnZV9jdG9yKHZpcnRfdG9fcGFnZShwdHIpKSkKKwlpZiAoIXB0ciB8fCAhcGd0YWJsZV9wdGVfcGFnZV9jdG9yKHZpcnRfdG9fcGFnZShwdHIpKSkKIAkJQlVHKCk7CiAJcmV0dXJuIHB0cjsKIH0KQEAgLTExNzcsMTAgKzExNzcsMjkgQEAgdm9pZCBfX2luaXQgYWRqdXN0X2xvd21lbV9ib3VuZHModm9pZCkKIAkgKi8KIAl2bWFsbG9jX2xpbWl0ID0gKHU2NCkodWludHB0cl90KXZtYWxsb2NfbWluIC0gUEFHRV9PRkZTRVQgKyBQSFlTX09GRlNFVDsKIAorCS8qCisJICogVGhlIGZpcnN0IHVzYWJsZSByZWdpb24gbXVzdCBiZSBQTUQgYWxpZ25lZC4gTWFyayBpdHMgc3RhcnQKKwkgKiBhcyBNRU1CTE9DS19OT01BUCBpZiBpdCBpc24ndAorCSAqLworCWZvcl9lYWNoX21lbWJsb2NrKG1lbW9yeSwgcmVnKSB7CisJCWlmICghbWVtYmxvY2tfaXNfbm9tYXAocmVnKSkgeworCQkJaWYgKCFJU19BTElHTkVEKHJlZy0+YmFzZSwgUE1EX1NJWkUpKSB7CisJCQkJcGh5c19hZGRyX3QgbGVuOworCisJCQkJbGVuID0gcm91bmRfdXAocmVnLT5iYXNlLCBQTURfU0laRSkgLSByZWctPmJhc2U7CisJCQkJbWVtYmxvY2tfbWFya19ub21hcChyZWctPmJhc2UsIGxlbik7CisJCQl9CisJCQlicmVhazsKKwkJfQorCX0KKwogCWZvcl9lYWNoX21lbWJsb2NrKG1lbW9yeSwgcmVnKSB7CiAJCXBoeXNfYWRkcl90IGJsb2NrX3N0YXJ0ID0gcmVnLT5iYXNlOwogCQlwaHlzX2FkZHJfdCBibG9ja19lbmQgPSByZWctPmJhc2UgKyByZWctPnNpemU7CiAKKwkJaWYgKG1lbWJsb2NrX2lzX25vbWFwKHJlZykpCisJCQljb250aW51ZTsKKwogCQlpZiAocmVnLT5iYXNlIDwgdm1hbGxvY19saW1pdCkgewogCQkJaWYgKGJsb2NrX2VuZCA+IGxvd21lbV9saW1pdCkKIAkJCQkvKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL3dhdGNoZG9nLXJlc2V0LmMgYi9hcmNoL2FybS9wbGF0LXNhbXN1bmcvd2F0Y2hkb2ctcmVzZXQuYwppbmRleCBjZTQyY2M2Li43MWQ4NWZmIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LXNhbXN1bmcvd2F0Y2hkb2ctcmVzZXQuYworKysgYi9hcmNoL2FybS9wbGF0LXNhbXN1bmcvd2F0Y2hkb2ctcmVzZXQuYwpAQCAtNjIsNiArNjIsNyBAQCB2b2lkIHNhbXN1bmdfd2R0X3Jlc2V0KHZvaWQpCiAjaWZkZWYgQ09ORklHX09GCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzM2MyNDEwX3dkdF9tYXRjaFtdID0gewogCXsgLmNvbXBhdGlibGUgPSAic2Ftc3VuZyxzM2MyNDEwLXdkdCIgfSwKKwl7IC5jb21wYXRpYmxlID0gInNhbXN1bmcsczNjNjQxMC13ZHQiIH0sCiAJe30sCiB9OwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS94ZW4vbW0uYyBiL2FyY2gvYXJtL3hlbi9tbS5jCmluZGV4IGQzM2I3N2U5Li4yYjJjMjA4IDEwMDY0NAotLS0gYS9hcmNoL2FybS94ZW4vbW0uYworKysgYi9hcmNoL2FybS94ZW4vbW0uYwpAQCAtMSw2ICsxLDYgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1ub25jb2hlcmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L2dmcC5oPgogI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KQEAgLTM1LDEwNSArMzUsNTYgQEAgdW5zaWduZWQgbG9uZyB4ZW5fZ2V0X3N3aW90bGJfZnJlZV9wYWdlcyh1bnNpZ25lZCBpbnQgb3JkZXIpCiAJcmV0dXJuIF9fZ2V0X2ZyZWVfcGFnZXMoZmxhZ3MsIG9yZGVyKTsKIH0KIAotZW51bSBkbWFfY2FjaGVfb3AgewotICAgICAgIERNQV9VTk1BUCwKLSAgICAgICBETUFfTUFQLAotfTsKIHN0YXRpYyBib29sIGh5cGVyY2FsbF9jZmx1c2ggPSBmYWxzZTsKIAotLyogZnVuY3Rpb25zIGNhbGxlZCBieSBTV0lPVExCICovCi0KLXN0YXRpYyB2b2lkIGRtYV9jYWNoZV9tYWludChkbWFfYWRkcl90IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsCi0Jc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgZW51bSBkbWFfY2FjaGVfb3Agb3ApCisvKiBidWZmZXJzIGluIGhpZ2htZW0gb3IgZm9yZWlnbiBwYWdlcyBjYW5ub3QgY3Jvc3MgcGFnZSBib3VuZGFyaWVzICovCitzdGF0aWMgdm9pZCBkbWFfY2FjaGVfbWFpbnQoZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCB1MzIgb3ApCiB7CiAJc3RydWN0IGdudHRhYl9jYWNoZV9mbHVzaCBjZmx1c2g7Ci0JdW5zaWduZWQgbG9uZyB4ZW5fcGZuOwotCXNpemVfdCBsZWZ0ID0gc2l6ZTsKIAotCXhlbl9wZm4gPSAoaGFuZGxlID4+IFhFTl9QQUdFX1NISUZUKSArIG9mZnNldCAvIFhFTl9QQUdFX1NJWkU7Ci0Jb2Zmc2V0ICU9IFhFTl9QQUdFX1NJWkU7CisJY2ZsdXNoLmEuZGV2X2J1c19hZGRyID0gaGFuZGxlICYgWEVOX1BBR0VfTUFTSzsKKwljZmx1c2gub2Zmc2V0ID0geGVuX29mZnNldF9pbl9wYWdlKGhhbmRsZSk7CisJY2ZsdXNoLm9wID0gb3A7CiAKIAlkbyB7Ci0JCXNpemVfdCBsZW4gPSBsZWZ0OwotCQotCQkvKiBidWZmZXJzIGluIGhpZ2htZW0gb3IgZm9yZWlnbiBwYWdlcyBjYW5ub3QgY3Jvc3MgcGFnZQotCQkgKiBib3VuZGFyaWVzICovCi0JCWlmIChsZW4gKyBvZmZzZXQgPiBYRU5fUEFHRV9TSVpFKQotCQkJbGVuID0gWEVOX1BBR0VfU0laRSAtIG9mZnNldDsKKwkJaWYgKHNpemUgKyBjZmx1c2gub2Zmc2V0ID4gWEVOX1BBR0VfU0laRSkKKwkJCWNmbHVzaC5sZW5ndGggPSBYRU5fUEFHRV9TSVpFIC0gY2ZsdXNoLm9mZnNldDsKKwkJZWxzZQorCQkJY2ZsdXNoLmxlbmd0aCA9IHNpemU7CiAKLQkJY2ZsdXNoLm9wID0gMDsKLQkJY2ZsdXNoLmEuZGV2X2J1c19hZGRyID0geGVuX3BmbiA8PCBYRU5fUEFHRV9TSElGVDsKLQkJY2ZsdXNoLm9mZnNldCA9IG9mZnNldDsKLQkJY2ZsdXNoLmxlbmd0aCA9IGxlbjsKKwkJSFlQRVJWSVNPUl9ncmFudF90YWJsZV9vcChHTlRUQUJPUF9jYWNoZV9mbHVzaCwgJmNmbHVzaCwgMSk7CiAKLQkJaWYgKG9wID09IERNQV9VTk1BUCAmJiBkaXIgIT0gRE1BX1RPX0RFVklDRSkKLQkJCWNmbHVzaC5vcCA9IEdOVFRBQl9DQUNIRV9JTlZBTDsKLQkJaWYgKG9wID09IERNQV9NQVApIHsKLQkJCWlmIChkaXIgPT0gRE1BX0ZST01fREVWSUNFKQotCQkJCWNmbHVzaC5vcCA9IEdOVFRBQl9DQUNIRV9JTlZBTDsKLQkJCWVsc2UKLQkJCQljZmx1c2gub3AgPSBHTlRUQUJfQ0FDSEVfQ0xFQU47Ci0JCX0KLQkJaWYgKGNmbHVzaC5vcCkKLQkJCUhZUEVSVklTT1JfZ3JhbnRfdGFibGVfb3AoR05UVEFCT1BfY2FjaGVfZmx1c2gsICZjZmx1c2gsIDEpOwotCi0JCW9mZnNldCA9IDA7Ci0JCXhlbl9wZm4rKzsKLQkJbGVmdCAtPSBsZW47Ci0JfSB3aGlsZSAobGVmdCk7CisJCWNmbHVzaC5vZmZzZXQgPSAwOworCQljZmx1c2guYS5kZXZfYnVzX2FkZHIgKz0gY2ZsdXNoLmxlbmd0aDsKKwkJc2l6ZSAtPSBjZmx1c2gubGVuZ3RoOworCX0gd2hpbGUgKHNpemUpOwogfQogCi1zdGF0aWMgdm9pZCBfX3hlbl9kbWFfcGFnZV9kZXZfdG9fY3B1KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKLQkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKKy8qCisgKiBEb20wIGlzIG1hcHBlZCAxOjEsIGFuZCB3aGlsZSB0aGUgTGludXggcGFnZSBjYW4gc3BhbiBhY3Jvc3MgbXVsdGlwbGUgWGVuCisgKiBwYWdlcywgaXQgaXMgbm90IHBvc3NpYmxlIGZvciBpdCB0byBjb250YWluIGEgbWl4IG9mIGxvY2FsIGFuZCBmb3JlaWduIFhlbgorICogcGFnZXMuICBDYWxsaW5nIHBmbl92YWxpZCBvbiBhIGZvcmVpZ24gbWZuIHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSwgc28gaWYKKyAqIHBmbl92YWxpZCByZXR1cm5zIHRydWUgdGhlIHBhZ2VzIGlzIGxvY2FsIGFuZCB3ZSBjYW4gdXNlIHRoZSBuYXRpdmUKKyAqIGRtYS1kaXJlY3QgZnVuY3Rpb25zLCBvdGhlcndpc2Ugd2UgY2FsbCB0aGUgWGVuIHNwZWNpZmljIHZlcnNpb24uCisgKi8KK3ZvaWQgeGVuX2RtYV9zeW5jX2Zvcl9jcHUoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKKwkJcGh5c19hZGRyX3QgcGFkZHIsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCiB7Ci0JZG1hX2NhY2hlX21haW50KGhhbmRsZSAmIFBBR0VfTUFTSywgaGFuZGxlICYgflBBR0VfTUFTSywgc2l6ZSwgZGlyLCBETUFfVU5NQVApOworCWlmIChwZm5fdmFsaWQoUEZOX0RPV04oaGFuZGxlKSkpCisJCWFyY2hfc3luY19kbWFfZm9yX2NwdShkZXYsIHBhZGRyLCBzaXplLCBkaXIpOworCWVsc2UgaWYgKGRpciAhPSBETUFfVE9fREVWSUNFKQorCQlkbWFfY2FjaGVfbWFpbnQoaGFuZGxlLCBzaXplLCBHTlRUQUJfQ0FDSEVfSU5WQUwpOwogfQogCi1zdGF0aWMgdm9pZCBfX3hlbl9kbWFfcGFnZV9jcHVfdG9fZGV2KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKLQkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKK3ZvaWQgeGVuX2RtYV9zeW5jX2Zvcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKKwkJcGh5c19hZGRyX3QgcGFkZHIsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCiB7Ci0JZG1hX2NhY2hlX21haW50KGhhbmRsZSAmIFBBR0VfTUFTSywgaGFuZGxlICYgflBBR0VfTUFTSywgc2l6ZSwgZGlyLCBETUFfTUFQKTsKLX0KLQotdm9pZCBfX3hlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAotCSAgICAgZG1hX2FkZHJfdCBkZXZfYWRkciwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLAotCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQotewotCWlmIChpc19kZXZpY2VfZG1hX2NvaGVyZW50KGh3ZGV2KSkKLQkJcmV0dXJuOwotCWlmIChhdHRycyAmIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpCi0JCXJldHVybjsKLQotCV9feGVuX2RtYV9wYWdlX2NwdV90b19kZXYoaHdkZXYsIGRldl9hZGRyLCBzaXplLCBkaXIpOwotfQotCi12b2lkIF9feGVuX2RtYV91bm1hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKLQkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJdW5zaWduZWQgbG9uZyBhdHRycykKLQotewotCWlmIChpc19kZXZpY2VfZG1hX2NvaGVyZW50KGh3ZGV2KSkKLQkJcmV0dXJuOwotCWlmIChhdHRycyAmIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpCi0JCXJldHVybjsKLQotCV9feGVuX2RtYV9wYWdlX2Rldl90b19jcHUoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKLX0KLQotdm9pZCBfX3hlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShzdHJ1Y3QgZGV2aWNlICpod2RldiwKLQkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCi17Ci0JaWYgKGlzX2RldmljZV9kbWFfY29oZXJlbnQoaHdkZXYpKQotCQlyZXR1cm47Ci0JX194ZW5fZG1hX3BhZ2VfZGV2X3RvX2NwdShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIpOwotfQotCi12b2lkIF9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAotCQlkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKLXsKLQlpZiAoaXNfZGV2aWNlX2RtYV9jb2hlcmVudChod2RldikpCi0JCXJldHVybjsKLQlfX3hlbl9kbWFfcGFnZV9jcHVfdG9fZGV2KGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpcik7CisJaWYgKHBmbl92YWxpZChQRk5fRE9XTihoYW5kbGUpKSkKKwkJYXJjaF9zeW5jX2RtYV9mb3JfZGV2aWNlKGRldiwgcGFkZHIsIHNpemUsIGRpcik7CisJZWxzZSBpZiAoZGlyID09IERNQV9GUk9NX0RFVklDRSkKKwkJZG1hX2NhY2hlX21haW50KGhhbmRsZSwgc2l6ZSwgR05UVEFCX0NBQ0hFX0lOVkFMKTsKKwllbHNlCisJCWRtYV9jYWNoZV9tYWludChoYW5kbGUsIHNpemUsIEdOVFRBQl9DQUNIRV9DTEVBTik7CiB9CiAKIGJvb2wgeGVuX2FyY2hfbmVlZF9zd2lvdGxiKHN0cnVjdCBkZXZpY2UgKmRldiwKQEAgLTE1OSw3ICsxMTAsNyBAQCBib29sIHhlbl9hcmNoX25lZWRfc3dpb3RsYihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJICogbWVtb3J5IGFuZCB3ZSBhcmUgbm90IGFibGUgdG8gZmx1c2ggdGhlIGNhY2hlLgogCSAqLwogCXJldHVybiAoIWh5cGVyY2FsbF9jZmx1c2ggJiYgKHhlbl9wZm4gIT0gYmZuKSAmJgotCQkhaXNfZGV2aWNlX2RtYV9jb2hlcmVudChkZXYpKTsKKwkJIWRldl9pc19kbWFfY29oZXJlbnQoZGV2KSk7CiB9CiAKIGludCB4ZW5fY3JlYXRlX2NvbnRpZ3VvdXNfcmVnaW9uKHBoeXNfYWRkcl90IHBzdGFydCwgdW5zaWduZWQgaW50IG9yZGVyLApAQCAtMTczLDE2ICsxMjQsMTEgQEAgaW50IHhlbl9jcmVhdGVfY29udGlndW91c19yZWdpb24ocGh5c19hZGRyX3QgcHN0YXJ0LCB1bnNpZ25lZCBpbnQgb3JkZXIsCiAJKmRtYV9oYW5kbGUgPSBwc3RhcnQ7CiAJcmV0dXJuIDA7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTCh4ZW5fY3JlYXRlX2NvbnRpZ3VvdXNfcmVnaW9uKTsKIAogdm9pZCB4ZW5fZGVzdHJveV9jb250aWd1b3VzX3JlZ2lvbihwaHlzX2FkZHJfdCBwc3RhcnQsIHVuc2lnbmVkIGludCBvcmRlcikKIHsKIAlyZXR1cm47CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTCh4ZW5fZGVzdHJveV9jb250aWd1b3VzX3JlZ2lvbik7Ci0KLWNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyAqeGVuX2RtYV9vcHM7Ci1FWFBPUlRfU1lNQk9MKHhlbl9kbWFfb3BzKTsKIAogaW50IF9faW5pdCB4ZW5fbW1faW5pdCh2b2lkKQogewpAQCAtMTkwLDcgKzEzNiw2IEBAIGludCBfX2luaXQgeGVuX21tX2luaXQodm9pZCkKIAlpZiAoIXhlbl9pbml0aWFsX2RvbWFpbigpKQogCQlyZXR1cm4gMDsKIAl4ZW5fc3dpb3RsYl9pbml0KDEsIGZhbHNlKTsKLQl4ZW5fZG1hX29wcyA9ICZ4ZW5fc3dpb3RsYl9kbWFfb3BzOwogCiAJY2ZsdXNoLm9wID0gMDsKIAljZmx1c2guYS5kZXZfYnVzX2FkZHIgPSAwOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9LY29uZmlnIGIvYXJjaC9hcm02NC9LY29uZmlnCmluZGV4IDZhZTZhZDguLjQxYTliNDIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvS2NvbmZpZworKysgYi9hcmNoL2FybTY0L0tjb25maWcKQEAgLTEzLDEwICsxMyw4IEBACiAJc2VsZWN0IEFSQ0hfSEFTX0RFQlVHX1ZJUlRVQUwKIAlzZWxlY3QgQVJDSF9IQVNfREVWTUVNX0lTX0FMTE9XRUQKIAlzZWxlY3QgQVJDSF9IQVNfRE1BX0NPSEVSRU5UX1RPX1BGTgotCXNlbGVjdCBBUkNIX0hBU19ETUFfTU1BUF9QR1BST1QKIAlzZWxlY3QgQVJDSF9IQVNfRE1BX1BSRVBfQ09IRVJFTlQKIAlzZWxlY3QgQVJDSF9IQVNfQUNQSV9UQUJMRV9VUEdSQURFIGlmIEFDUEkKLQlzZWxlY3QgQVJDSF9IQVNfRUxGX1JBTkRPTUlaRQogCXNlbGVjdCBBUkNIX0hBU19GQVNUX01VTFRJUExJRVIKIAlzZWxlY3QgQVJDSF9IQVNfRk9SVElGWV9TT1VSQ0UKIAlzZWxlY3QgQVJDSF9IQVNfR0NPVl9QUk9GSUxFX0FMTApAQCAtNzIsNiArNzAsNyBAQAogCXNlbGVjdCBBUkNIX1NVUFBPUlRTX0lOVDEyOCBpZiBHQ0NfVkVSU0lPTiA+PSA1MDAwMCB8fCBDQ19JU19DTEFORwogCXNlbGVjdCBBUkNIX1NVUFBPUlRTX05VTUFfQkFMQU5DSU5HCiAJc2VsZWN0IEFSQ0hfV0FOVF9DT01QQVRfSVBDX1BBUlNFX1ZFUlNJT04gaWYgQ09NUEFUCisJc2VsZWN0IEFSQ0hfV0FOVF9ERUZBVUxUX1RPUERPV05fTU1BUF9MQVlPVVQKIAlzZWxlY3QgQVJDSF9XQU5UX0ZSQU1FX1BPSU5URVJTCiAJc2VsZWN0IEFSQ0hfV0FOVF9IVUdFX1BNRF9TSEFSRSBpZiBBUk02NF80S19QQUdFUyB8fCAoQVJNNjRfMTZLX1BBR0VTICYmICFBUk02NF9WQV9CSVRTXzM2KQogCXNlbGVjdCBBUkNIX0hBU19VQlNBTl9TQU5JVElaRV9BTEwKQEAgLTEzNSw2ICsxMzQsNyBAQAogCXNlbGVjdCBIQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0UKIAlzZWxlY3QgSEFWRV9BUkNIX1ZNQVBfU1RBQ0sKIAlzZWxlY3QgSEFWRV9BUk1fU01DQ0MKKwlzZWxlY3QgSEFWRV9BU01fTU9EVkVSU0lPTlMKIAlzZWxlY3QgSEFWRV9FQlBGX0pJVAogCXNlbGVjdCBIQVZFX0NfUkVDT1JETUNPVU5UCiAJc2VsZWN0IEhBVkVfQ01QWENIR19ET1VCTEUKQEAgLTk4Miw3ICs5ODIsNyBAQAogCSAgZm9yIGtlcm5lbCBhbmQgaW5pdHJhbWZzIGFzIG9wcG9zZWQgdG8gbGlzdCBvZiBzZWdtZW50cyBhcwogCSAgYWNjZXB0ZWQgYnkgcHJldmlvdXMgc3lzdGVtIGNhbGwuCiAKLWNvbmZpZyBLRVhFQ19WRVJJRllfU0lHCitjb25maWcgS0VYRUNfU0lHCiAJYm9vbCAiVmVyaWZ5IGtlcm5lbCBzaWduYXR1cmUgZHVyaW5nIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGwiCiAJZGVwZW5kcyBvbiBLRVhFQ19GSUxFCiAJaGVscApAQCAtOTk3LDEzICs5OTcsMTMgQEAKIGNvbmZpZyBLRVhFQ19JTUFHRV9WRVJJRllfU0lHCiAJYm9vbCAiRW5hYmxlIEltYWdlIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gc3VwcG9ydCIKIAlkZWZhdWx0IHkKLQlkZXBlbmRzIG9uIEtFWEVDX1ZFUklGWV9TSUcKKwlkZXBlbmRzIG9uIEtFWEVDX1NJRwogCWRlcGVuZHMgb24gRUZJICYmIFNJR05FRF9QRV9GSUxFX1ZFUklGSUNBVElPTgogCWhlbHAKIAkgIEVuYWJsZSBJbWFnZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1cHBvcnQuCiAKIGNvbW1lbnQgIlN1cHBvcnQgZm9yIFBFIGZpbGUgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBkaXNhYmxlZCIKLQlkZXBlbmRzIG9uIEtFWEVDX1ZFUklGWV9TSUcKKwlkZXBlbmRzIG9uIEtFWEVDX1NJRwogCWRlcGVuZHMgb24gIUVGSSB8fCAhU0lHTkVEX1BFX0ZJTEVfVkVSSUZJQ0FUSU9OCiAKIGNvbmZpZyBDUkFTSF9EVU1QCkBAIC0xMTM1LDcgKzExMzUsNyBAQAogCSAgV2hlbiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB1c2VyIGFwcGxpY2F0aW9ucyBjYW4gb3B0IGluIHRvIGEKIAkgIHJlbGF4ZWQgQUJJIHZpYSBwcmN0bCgpIGFsbG93aW5nIHRhZ2dlZCBhZGRyZXNzZXMgdG8gYmUgcGFzc2VkCiAJICB0byBzeXN0ZW0gY2FsbHMgYXMgcG9pbnRlciBhcmd1bWVudHMuIEZvciBkZXRhaWxzLCBzZWUKLQkgIERvY3VtZW50YXRpb24vYXJtNjQvdGFnZ2VkLWFkZHJlc3MtYWJpLnR4dC4KKwkgIERvY3VtZW50YXRpb24vYXJtNjQvdGFnZ2VkLWFkZHJlc3MtYWJpLnJzdC4KIAogbWVudWNvbmZpZyBDT01QQVQKIAlib29sICJLZXJuZWwgc3VwcG9ydCBmb3IgMzItYml0IEVMMCIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvTWFrZWZpbGUgYi9hcmNoL2FybTY0L01ha2VmaWxlCmluZGV4IGY4NDNkMjkuLjg0YTNkNTAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm02NC9NYWtlZmlsZQpAQCAtMTA4LDcgKzEwOCw3IEBACiBDSEVDS0ZMQUdTCSs9IC1EX19hYXJjaDY0X18KIAogaWZlcSAoJChDT05GSUdfQVJNNjRfTU9EVUxFX1BMVFMpLHkpCi1LQlVJTERfTERGTEFHU19NT0RVTEUJKz0gLVQgJChzcmN0cmVlKS9hcmNoL2FybTY0L2tlcm5lbC9tb2R1bGUubGRzCitLQlVJTERfTERTX01PRFVMRQkrPSAkKHNyY3RyZWUpL2FyY2gvYXJtNjQva2VybmVsL21vZHVsZS5sZHMKIGVuZGlmCiAKICMgRGVmYXVsdCB2YWx1ZQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTAxMmEuZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwMTJhLmR0c2kKaW5kZXggMTI0YTdlMi4uMzM3OTE5MyAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTAxMmEuZHRzaQorKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDEyYS5kdHNpCkBAIC00ODYsNyArNDg2LDYgQEAKIAkJCSNhZGRyZXNzLWNlbGxzID0gPDM+OwogCQkJI3NpemUtY2VsbHMgPSA8Mj47CiAJCQlkZXZpY2VfdHlwZSA9ICJwY2kiOwotCQkJbnVtLWxhbmVzID0gPDQ+OwogCQkJbnVtLXZpZXdwb3J0ID0gPDI+OwogCQkJYnVzLXJhbmdlID0gPDB4MCAweGZmPjsKIAkJCXJhbmdlcyA9IDwweDgxMDAwMDAwIDB4MCAweDAwMDAwMDAwIDB4NDAgMHgwMDAxMDAwMCAweDAgMHgwMDAxMDAwMCAgIC8qIGRvd25zdHJlYW0gSS9PICovCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDQzYS5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0M2EuZHRzaQppbmRleCA3MWQ5ZWQ5Zi4uYzA4NGM3YTQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDNhLmR0c2kKKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0M2EuZHRzaQpAQCAtNjc3LDcgKzY3Nyw2IEBACiAJCQkjc2l6ZS1jZWxscyA9IDwyPjsKIAkJCWRldmljZV90eXBlID0gInBjaSI7CiAJCQlkbWEtY29oZXJlbnQ7Ci0JCQludW0tbGFuZXMgPSA8ND47CiAJCQludW0tdmlld3BvcnQgPSA8Nj47CiAJCQlidXMtcmFuZ2UgPSA8MHgwIDB4ZmY+OwogCQkJcmFuZ2VzID0gPDB4ODEwMDAwMDAgMHgwIDB4MDAwMDAwMDAgMHg0MCAweDAwMDEwMDAwIDB4MCAweDAwMDEwMDAwICAgLyogZG93bnN0cmVhbSBJL08gKi8KQEAgLTcwNCw3ICs3MDMsNiBAQAogCQkJI3NpemUtY2VsbHMgPSA8Mj47CiAJCQlkZXZpY2VfdHlwZSA9ICJwY2kiOwogCQkJZG1hLWNvaGVyZW50OwotCQkJbnVtLWxhbmVzID0gPDI+OwogCQkJbnVtLXZpZXdwb3J0ID0gPDY+OwogCQkJYnVzLXJhbmdlID0gPDB4MCAweGZmPjsKIAkJCXJhbmdlcyA9IDwweDgxMDAwMDAwIDB4MCAweDAwMDAwMDAwIDB4NDggMHgwMDAxMDAwMCAweDAgMHgwMDAxMDAwMCAgIC8qIGRvd25zdHJlYW0gSS9PICovCkBAIC03MzEsNyArNzI5LDYgQEAKIAkJCSNzaXplLWNlbGxzID0gPDI+OwogCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKIAkJCWRtYS1jb2hlcmVudDsKLQkJCW51bS1sYW5lcyA9IDwyPjsKIAkJCW51bS12aWV3cG9ydCA9IDw2PjsKIAkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CiAJCQlyYW5nZXMgPSA8MHg4MTAwMDAwMCAweDAgMHgwMDAwMDAwMCAweDUwIDB4MDAwMTAwMDAgMHgwIDB4MDAwMTAwMDAgICAvKiBkb3duc3RyZWFtIEkvTyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEuZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDZhLmR0c2kKaW5kZXggYjBlZjA4Yi4uZDRjMWRhMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEuZHRzaQorKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDQ2YS5kdHNpCkBAIC02NDksNyArNjQ5LDYgQEAKIAkJCSNzaXplLWNlbGxzID0gPDI+OwogCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKIAkJCWRtYS1jb2hlcmVudDsKLQkJCW51bS1sYW5lcyA9IDw0PjsKIAkJCW51bS12aWV3cG9ydCA9IDw4PjsKIAkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CiAJCQlyYW5nZXMgPSA8MHg4MTAwMDAwMCAweDAgMHgwMDAwMDAwMCAweDQwIDB4MDAwMTAwMDAgMHgwIDB4MDAwMTAwMDAgICAvKiBkb3duc3RyZWFtIEkvTyAqLwpAQCAtNjcxLDcgKzY3MCw2IEBACiAJCQlyZWctbmFtZXMgPSAicmVncyIsICJhZGRyX3NwYWNlIjsKIAkJCW51bS1pYi13aW5kb3dzID0gPDY+OwogCQkJbnVtLW9iLXdpbmRvd3MgPSA8OD47Ci0JCQludW0tbGFuZXMgPSA8Mj47CiAJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwogCQl9OwogCkBAIC02ODcsNyArNjg1LDYgQEAKIAkJCSNzaXplLWNlbGxzID0gPDI+OwogCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKIAkJCWRtYS1jb2hlcmVudDsKLQkJCW51bS1sYW5lcyA9IDwyPjsKIAkJCW51bS12aWV3cG9ydCA9IDw4PjsKIAkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CiAJCQlyYW5nZXMgPSA8MHg4MTAwMDAwMCAweDAgMHgwMDAwMDAwMCAweDQ4IDB4MDAwMTAwMDAgMHgwIDB4MDAwMTAwMDAgICAvKiBkb3duc3RyZWFtIEkvTyAqLwpAQCAtNzA5LDcgKzcwNiw2IEBACiAJCQlyZWctbmFtZXMgPSAicmVncyIsICJhZGRyX3NwYWNlIjsKIAkJCW51bS1pYi13aW5kb3dzID0gPDY+OwogCQkJbnVtLW9iLXdpbmRvd3MgPSA8OD47Ci0JCQludW0tbGFuZXMgPSA8Mj47CiAJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwogCQl9OwogCkBAIC03MjUsNyArNzIxLDYgQEAKIAkJCSNzaXplLWNlbGxzID0gPDI+OwogCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKIAkJCWRtYS1jb2hlcmVudDsKLQkJCW51bS1sYW5lcyA9IDwyPjsKIAkJCW51bS12aWV3cG9ydCA9IDw4PjsKIAkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CiAJCQlyYW5nZXMgPSA8MHg4MTAwMDAwMCAweDAgMHgwMDAwMDAwMCAweDUwIDB4MDAwMTAwMDAgMHgwIDB4MDAwMTAwMDAgICAvKiBkb3duc3RyZWFtIEkvTyAqLwpAQCAtNzQ3LDcgKzc0Miw2IEBACiAJCQlyZWctbmFtZXMgPSAicmVncyIsICJhZGRyX3NwYWNlIjsKIAkJCW51bS1pYi13aW5kb3dzID0gPDY+OwogCQkJbnVtLW9iLXdpbmRvd3MgPSA8OD47Ci0JCQludW0tbGFuZXMgPSA8Mj47CiAJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwogCQl9OwogCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDg4YS5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEuZHRzaQppbmRleCBkMTQ2OWIwLi5jNjc2ZDA3IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDg4YS5kdHNpCisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLmR0c2kKQEAgLTQ2OSw3ICs0NjksNiBAQAogCQkJI3NpemUtY2VsbHMgPSA8Mj47CiAJCQlkZXZpY2VfdHlwZSA9ICJwY2kiOwogCQkJZG1hLWNvaGVyZW50OwotCQkJbnVtLWxhbmVzID0gPDQ+OwogCQkJbnVtLXZpZXdwb3J0ID0gPDI1Nj47CiAJCQlidXMtcmFuZ2UgPSA8MHgwIDB4ZmY+OwogCQkJcmFuZ2VzID0gPDB4ODEwMDAwMDAgMHgwIDB4MDAwMDAwMDAgMHgyMCAweDAwMDEwMDAwIDB4MCAweDAwMDEwMDAwICAgLyogZG93bnN0cmVhbSBJL08gKi8KQEAgLTQ5NSw3ICs0OTQsNiBAQAogCQkJI3NpemUtY2VsbHMgPSA8Mj47CiAJCQlkZXZpY2VfdHlwZSA9ICJwY2kiOwogCQkJZG1hLWNvaGVyZW50OwotCQkJbnVtLWxhbmVzID0gPDQ+OwogCQkJbnVtLXZpZXdwb3J0ID0gPDY+OwogCQkJYnVzLXJhbmdlID0gPDB4MCAweGZmPjsKIAkJCXJhbmdlcyA9IDwweDgxMDAwMDAwIDB4MCAweDAwMDAwMDAwIDB4MjggMHgwMDAxMDAwMCAweDAgMHgwMDAxMDAwMCAgIC8qIGRvd25zdHJlYW0gSS9PICovCkBAIC01MjEsNyArNTE5LDYgQEAKIAkJCSNzaXplLWNlbGxzID0gPDI+OwogCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKIAkJCWRtYS1jb2hlcmVudDsKLQkJCW51bS1sYW5lcyA9IDw4PjsKIAkJCW51bS12aWV3cG9ydCA9IDw2PjsKIAkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CiAJCQlyYW5nZXMgPSA8MHg4MTAwMDAwMCAweDAgMHgwMDAwMDAwMCAweDMwIDB4MDAwMTAwMDAgMHgwIDB4MDAwMTAwMDAgICAvKiBkb3duc3RyZWFtIEkvTyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMjA4eGEuZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczIwOHhhLmR0c2kKaW5kZXggNjQxMDFjOS4uN2EwYmU4ZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMjA4eGEuZHRzaQorKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMyMDh4YS5kdHNpCkBAIC02MzksNyArNjM5LDYgQEAKIAkJCSNzaXplLWNlbGxzID0gPDI+OwogCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKIAkJCWRtYS1jb2hlcmVudDsKLQkJCW51bS1sYW5lcyA9IDw0PjsKIAkJCW51bS12aWV3cG9ydCA9IDw2PjsKIAkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CiAJCQltc2ktcGFyZW50ID0gPCZpdHM+OwpAQCAtNjYxLDcgKzY2MCw2IEBACiAJCQkjc2l6ZS1jZWxscyA9IDwyPjsKIAkJCWRldmljZV90eXBlID0gInBjaSI7CiAJCQlkbWEtY29oZXJlbnQ7Ci0JCQludW0tbGFuZXMgPSA8ND47CiAJCQludW0tdmlld3BvcnQgPSA8Nj47CiAJCQlidXMtcmFuZ2UgPSA8MHgwIDB4ZmY+OwogCQkJbXNpLXBhcmVudCA9IDwmaXRzPjsKQEAgLTY4Myw3ICs2ODEsNiBAQAogCQkJI3NpemUtY2VsbHMgPSA8Mj47CiAJCQlkZXZpY2VfdHlwZSA9ICJwY2kiOwogCQkJZG1hLWNvaGVyZW50OwotCQkJbnVtLWxhbmVzID0gPDg+OwogCQkJbnVtLXZpZXdwb3J0ID0gPDI1Nj47CiAJCQlidXMtcmFuZ2UgPSA8MHgwIDB4ZmY+OwogCQkJbXNpLXBhcmVudCA9IDwmaXRzPjsKQEAgLTcwNSw3ICs3MDIsNiBAQAogCQkJI3NpemUtY2VsbHMgPSA8Mj47CiAJCQlkZXZpY2VfdHlwZSA9ICJwY2kiOwogCQkJZG1hLWNvaGVyZW50OwotCQkJbnVtLWxhbmVzID0gPDQ+OwogCQkJbnVtLXZpZXdwb3J0ID0gPDY+OwogCQkJYnVzLXJhbmdlID0gPDB4MCAweGZmPjsKIAkJCW1zaS1wYXJlbnQgPSA8Jml0cz47CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvTWFrZWZpbGUKaW5kZXggY2FlZDQzMy4uMjQzMzM4YyAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9NYWtlZmlsZQpAQCAtMiw2ICsyLDcgQEAKICMgTXZlYnUgU29DIEZhbWlseQogZHRiLSQoQ09ORklHX0FSQ0hfTVZFQlUpICs9IGFybWFkYS0zNzIwLWRiLmR0YgogZHRiLSQoQ09ORklHX0FSQ0hfTVZFQlUpICs9IGFybWFkYS0zNzIwLWVzcHJlc3NvYmluLmR0YgorZHRiLSQoQ09ORklHX0FSQ0hfTVZFQlUpICs9IGFybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRiCiBkdGItJChDT05GSUdfQVJDSF9NVkVCVSkgKz0gYXJtYWRhLTM3MjAtdURQVS5kdGIKIGR0Yi0kKENPTkZJR19BUkNIX01WRUJVKSArPSBhcm1hZGEtNzA0MC1kYi5kdGIKIGR0Yi0kKENPTkZJR19BUkNIX01WRUJVKSArPSBhcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdGIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTA1OTg2Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzCkBAIC0wLDAgKzEsODQwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjArIE9SIE1JVCkKKy8qCisgKiBEZXZpY2UgVHJlZSBmaWxlIGZvciBDWi5OSUMgVHVycmlzIE1veCBCb2FyZAorICogMjAxOSBieSBNYXJlayBCZWh1biA8bWFyZWsuYmVodW5AbmljLmN6PgorICovCisKKy9kdHMtdjEvOworCisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvYnVzL21veHRldC5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2dwaW8vZ3Bpby5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2lucHV0L2lucHV0Lmg+CisjaW5jbHVkZSAiYXJtYWRhLTM3MnguZHRzaSIKKworLyB7CisJbW9kZWwgPSAiQ1ouTklDIFR1cnJpcyBNb3ggQm9hcmQiOworCWNvbXBhdGlibGUgPSAiY3puaWMsdHVycmlzLW1veCIsICJtYXJ2ZWxsLGFybWFkYTM3MjAiLAorCQkgICAgICJtYXJ2ZWxsLGFybWFkYTM3MTAiOworCisJYWxpYXNlcyB7CisJCXNwaTAgPSAmc3BpMDsKKwkJZXRoZXJuZXQxID0gJmV0aDE7CisJfTsKKworCWNob3NlbiB7CisJCXN0ZG91dC1wYXRoID0gInNlcmlhbDA6MTE1MjAwbjgiOworCX07CisKKwltZW1vcnlAMCB7CisJCWRldmljZV90eXBlID0gIm1lbW9yeSI7CisJCXJlZyA9IDwweDAwMDAwMDAwIDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAweDIwMDAwMDAwPjsKKwl9OworCisJbGVkcyB7CisJCWNvbXBhdGlibGUgPSAiZ3Bpby1sZWRzIjsKKwkJcmVkIHsKKwkJCWxhYmVsID0gIm1veDpyZWQ6YWN0aXZpdHkiOworCQkJZ3Bpb3MgPSA8JmdwaW9zYiAyMSBHUElPX0FDVElWRV9MT1c+OworCQkJbGludXgsZGVmYXVsdC10cmlnZ2VyID0gImRlZmF1bHQtb24iOworCQl9OworCX07CisKKwlncGlvLWtleXMgeworCQljb21wYXRpYmxlID0gImdwaW8ta2V5cyI7CisKKwkJcmVzZXQgeworCQkJbGFiZWwgPSAicmVzZXQiOworCQkJbGludXgsY29kZSA9IDxLRVlfUkVTVEFSVD47CisJCQlncGlvcyA9IDwmZ3Bpb3NiIDIwIEdQSU9fQUNUSVZFX0xPVz47CisJCQlkZWJvdW5jZS1pbnRlcnZhbCA9IDw2MD47CisJCX07CisJfTsKKworCWV4cF91c2IzX3ZidXM6IHVzYjMtdmJ1cyB7CisJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsKKwkJcmVndWxhdG9yLW5hbWUgPSAidXNiMy12YnVzIjsKKwkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8NTAwMDAwMD47CisJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDUwMDAwMDA+OworCQllbmFibGUtYWN0aXZlLWhpZ2g7CisJCXJlZ3VsYXRvci1hbHdheXMtb247CisJCWdwaW8gPSA8JmdwaW9zYiAwIEdQSU9fQUNUSVZFX0hJR0g+OworCX07CisKKwl1c2IzX3BoeTogdXNiMy1waHkgeworCQljb21wYXRpYmxlID0gInVzYi1ub3AteGNlaXYiOworCQl2Y2Mtc3VwcGx5ID0gPCZleHBfdXNiM192YnVzPjsKKwl9OworCisJdnNkY19yZWc6IHZzZGMtcmVnIHsKKwkJY29tcGF0aWJsZSA9ICJyZWd1bGF0b3ItZ3BpbyI7CisJCXJlZ3VsYXRvci1uYW1lID0gInZzZGMiOworCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJCXJlZ3VsYXRvci1ib290LW9uOworCisJCWdwaW9zID0gPCZncGlvc2IgMjMgR1BJT19BQ1RJVkVfSElHSD47CisJCWdwaW9zLXN0YXRlcyA9IDwwPjsKKwkJc3RhdGVzID0gPDE4MDAwMDAgMHgxCisJCQkgIDMzMDAwMDAgMHgwPjsKKwkJZW5hYmxlLWFjdGl2ZS1oaWdoOworCX07CisKKwl2c2Rpb19yZWc6IHZzZGlvLXJlZyB7CisJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWdwaW8iOworCQlyZWd1bGF0b3ItbmFtZSA9ICJ2c2RpbyI7CisJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+OworCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKwkJcmVndWxhdG9yLWJvb3Qtb247CisKKwkJZ3Bpb3MgPSA8JmdwaW9zYiAyMiBHUElPX0FDVElWRV9ISUdIPjsKKwkJZ3Bpb3Mtc3RhdGVzID0gPDA+OworCQlzdGF0ZXMgPSA8MTgwMDAwMCAweDEKKwkJCSAgMzMwMDAwMCAweDA+OworCQllbmFibGUtYWN0aXZlLWhpZ2g7CisJfTsKKworCXNkaGNpMV9wd3JzZXE6IHNkaGNpMS1wd3JzZXEgeworCQljb21wYXRpYmxlID0gIm1tYy1wd3JzZXEtc2ltcGxlIjsKKwkJcmVzZXQtZ3Bpb3MgPSA8JmdwaW9uYiAxOSBHUElPX0FDVElWRV9ISUdIPjsKKwkJc3RhdHVzID0gIm9rYXkiOworCX07CisKKwlzZnA6IHNmcCB7CisJCWNvbXBhdGlibGUgPSAic2ZmLHNmcCsiOworCQlpMmMtYnVzID0gPCZpMmMwPjsKKwkJbG9zLWdwaW8gPSA8Jm1veHRldF9zZnAgMCBHUElPX0FDVElWRV9ISUdIPjsKKwkJdHgtZmF1bHQtZ3BpbyA9IDwmbW94dGV0X3NmcCAxIEdQSU9fQUNUSVZFX0hJR0g+OworCQltb2QtZGVmMC1ncGlvID0gPCZtb3h0ZXRfc2ZwIDIgR1BJT19BQ1RJVkVfTE9XPjsKKwkJdHgtZGlzYWJsZS1ncGlvID0gPCZtb3h0ZXRfc2ZwIDQgR1BJT19BQ1RJVkVfSElHSD47CisJCXJhdGUtc2VsZWN0MC1ncGlvID0gPCZtb3h0ZXRfc2ZwIDUgR1BJT19BQ1RJVkVfSElHSD47CisKKwkJLyogZW5hYmxlZCBieSBVLUJvb3QgaWYgU0ZQIG1vZHVsZSBpcyBwcmVzZW50ICovCisJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJfTsKK307CisKKyZpMmMwIHsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmaTJjMV9waW5zPjsKKwljbG9jay1mcmVxdWVuY3kgPSA8MTAwMDAwPjsKKwlzdGF0dXMgPSAib2theSI7CisKKwlydGNANmYgeworCQljb21wYXRpYmxlID0gIm1pY3JvY2hpcCxtY3A3OTQweCI7CisJCXJlZyA9IDwweDZmPjsKKwl9OworfTsKKworJnBjaWVfcmVzZXRfcGlucyB7CisJZnVuY3Rpb24gPSAiZ3BpbyI7Cit9OworCismcGNpZTAgeworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJcGluY3RybC0wID0gPCZwY2llX3Jlc2V0X3BpbnMgJnBjaWVfY2xrcmVxX3BpbnM+OworCXN0YXR1cyA9ICJva2F5IjsKKwltYXgtbGluay1zcGVlZCA9IDwyPjsKKwlyZXNldC1ncGlvcyA9IDwmZ3Bpb3NiIDMgR1BJT19BQ1RJVkVfTE9XPjsKKwlwaHlzID0gPCZjb21waHkxIDA+OworCisJLyogZW5hYmxlZCBieSBVLUJvb3QgaWYgUENJZSBtb2R1bGUgaXMgcHJlc2VudCAqLworCXN0YXR1cyA9ICJkaXNhYmxlZCI7Cit9OworCismdWFydDAgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZldGgwIHsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmcmdtaWlfcGlucz47CisJcGh5LW1vZGUgPSAicmdtaWktaWQiOworCXBoeSA9IDwmcGh5MT47CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJmV0aDEgeworCXBoeS1tb2RlID0gIjI1MDBiYXNlLXgiOworCW1hbmFnZWQgPSAiaW4tYmFuZC1zdGF0dXMiOworCXBoeXMgPSA8JmNvbXBoeTAgMT47Cit9OworCismc2RoY2kwIHsKKwl3cC1pbnZlcnRlZDsKKwlidXMtd2lkdGggPSA8ND47CisJY2QtZ3Bpb3MgPSA8JmdwaW9uYiAxMCBHUElPX0FDVElWRV9ISUdIPjsKKwl2cW1tYy1zdXBwbHkgPSA8JnZzZGNfcmVnPjsKKwltYXJ2ZWxsLHBhZC10eXBlID0gInNkIjsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismc2RoY2kxIHsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmc2Rpb19waW5zPjsKKwlub24tcmVtb3ZhYmxlOworCWJ1cy13aWR0aCA9IDw0PjsKKwltYXJ2ZWxsLHBhZC10eXBlID0gInNkIjsKKwl2cW1tYy1zdXBwbHkgPSA8JnZzZGlvX3JlZz47CisJbW1jLXB3cnNlcSA9IDwmc2RoY2kxX3B3cnNlcT47CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnNwaTAgeworCXN0YXR1cyA9ICJva2F5IjsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmc3BpX3F1YWRfcGlucyAmc3BpX2NzMV9waW5zPjsKKwlhc3NpZ25lZC1jbG9ja3MgPSA8Jm5iX3BlcmlwaF9jbGsgNz47CisJYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmdGJnIDE+OworCWFzc2lnbmVkLWNsb2NrLXJhdGVzID0gPDIwMDAwMDAwPjsKKworCXNwaS1mbGFzaEAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDE+OworCQljb21wYXRpYmxlID0gImplZGVjLHNwaS1ub3IiOworCQlyZWcgPSA8MD47CisJCXNwaS1tYXgtZnJlcXVlbmN5ID0gPDIwMDAwMDAwPjsKKworCQlwYXJ0aXRpb25zIHsKKwkJCWNvbXBhdGlibGUgPSAiZml4ZWQtcGFydGl0aW9ucyI7CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDE+OworCisJCQlwYXJ0aXRpb25AMCB7CisJCQkJbGFiZWwgPSAic2VjdXJlLWZpcm13YXJlIjsKKwkJCQlyZWcgPSA8MHgwIDB4MjAwMDA+OworCQkJfTsKKworCQkJcGFydGl0aW9uQDIwMDAwIHsKKwkJCQlsYWJlbCA9ICJ1LWJvb3QiOworCQkJCXJlZyA9IDwweDIwMDAwIDB4MTYwMDAwPjsKKwkJCX07CisKKwkJCXBhcnRpdGlvbkAxODAwMDAgeworCQkJCWxhYmVsID0gInUtYm9vdC1lbnYiOworCQkJCXJlZyA9IDwweDE4MDAwMCAweDEwMDAwPjsKKwkJCX07CisKKwkJCXBhcnRpdGlvbkAxOTAwMDAgeworCQkJCWxhYmVsID0gIlJlc2N1ZSBzeXN0ZW0iOworCQkJCXJlZyA9IDwweDE5MDAwMCAweDY2MDAwMD47CisJCQl9OworCisJCQlwYXJ0aXRpb25AN2YwMDAwIHsKKwkJCQlsYWJlbCA9ICJkdGIiOworCQkJCXJlZyA9IDwweDdmMDAwMCAweDEwMDAwPjsKKwkJCX07CisJCX07CisJfTsKKworCW1veHRldDogbW94dGV0QDEgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiY3puaWMsbW94dGV0IjsKKwkJcmVnID0gPDE+OworCQlyZXNldC1ncGlvcyA9IDwmZ3Bpb3NiIDIgR1BJT19BQ1RJVkVfTE9XPjsKKwkJc3BpLW1heC1mcmVxdWVuY3kgPSA8MTAwMDAwMDA+OworCQlzcGktY3BvbDsKKwkJc3BpLWNwaGE7CisJCWludGVycnVwdC1jb250cm9sbGVyOworCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZncGlvc2I+OworCQlpbnRlcnJ1cHRzID0gPDUgSVJRX1RZUEVfRURHRV9GQUxMSU5HPjsKKwkJc3RhdHVzID0gIm9rYXkiOworCisJCW1veHRldF9zZnA6IGdwaW9AMCB7CisJCQljb21wYXRpYmxlID0gImN6bmljLG1veHRldC1ncGlvIjsKKwkJCWdwaW8tY29udHJvbGxlcjsKKwkJCSNncGlvLWNlbGxzID0gPDI+OworCQkJcmVnID0gPDA+OworCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKwkJfTsKKwl9OworfTsKKworJnVzYjIgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ1c2IzIHsKKwlzdGF0dXMgPSAib2theSI7CisJcGh5cyA9IDwmY29tcGh5MiAwPjsKKwl1c2ItcGh5ID0gPCZ1c2IzX3BoeT47Cit9OworCismbWRpbyB7CisJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwlwaW5jdHJsLTAgPSA8JnNtaV9waW5zPjsKKwlzdGF0dXMgPSAib2theSI7CisKKwlwaHkxOiBldGhlcm5ldC1waHlAMSB7CisJCXJlZyA9IDwxPjsKKwl9OworCisJLyogc3dpdGNoIG5vZGVzIGFyZSBlbmFibGVkIGJ5IFUtQm9vdCBpZiBtb2R1bGVzIGFyZSBwcmVzZW50ICovCisJc3dpdGNoMEAxMCB7CisJCWNvbXBhdGlibGUgPSAibWFydmVsbCxtdjg4ZTYxOTAiOworCQlyZWcgPSA8MHgxMCAwPjsKKwkJZHNhLG1lbWJlciA9IDwwIDA+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZtb3h0ZXQ+OworCQlpbnRlcnJ1cHRzID0gPE1PWFRFVF9JUlFfUEVSSURPVCgwKT47CisJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisKKwkJbWRpbyB7CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDA+OworCisJCQlzd2l0Y2gwcGh5MTogc3dpdGNoMHBoeTFAMSB7CisJCQkJcmVnID0gPDB4MT47CisJCQl9OworCisJCQlzd2l0Y2gwcGh5Mjogc3dpdGNoMHBoeTJAMiB7CisJCQkJcmVnID0gPDB4Mj47CisJCQl9OworCisJCQlzd2l0Y2gwcGh5Mzogc3dpdGNoMHBoeTNAMyB7CisJCQkJcmVnID0gPDB4Mz47CisJCQl9OworCisJCQlzd2l0Y2gwcGh5NDogc3dpdGNoMHBoeTRANCB7CisJCQkJcmVnID0gPDB4ND47CisJCQl9OworCisJCQlzd2l0Y2gwcGh5NTogc3dpdGNoMHBoeTVANSB7CisJCQkJcmVnID0gPDB4NT47CisJCQl9OworCisJCQlzd2l0Y2gwcGh5Njogc3dpdGNoMHBoeTZANiB7CisJCQkJcmVnID0gPDB4Nj47CisJCQl9OworCisJCQlzd2l0Y2gwcGh5Nzogc3dpdGNoMHBoeTdANyB7CisJCQkJcmVnID0gPDB4Nz47CisJCQl9OworCisJCQlzd2l0Y2gwcGh5ODogc3dpdGNoMHBoeThAOCB7CisJCQkJcmVnID0gPDB4OD47CisJCQl9OworCQl9OworCisJCXBvcnRzIHsKKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJI3NpemUtY2VsbHMgPSA8MD47CisKKwkJCXBvcnRAMSB7CisJCQkJcmVnID0gPDB4MT47CisJCQkJbGFiZWwgPSAibGFuMSI7CisJCQkJcGh5LWhhbmRsZSA9IDwmc3dpdGNoMHBoeTE+OworCQkJfTsKKworCQkJcG9ydEAyIHsKKwkJCQlyZWcgPSA8MHgyPjsKKwkJCQlsYWJlbCA9ICJsYW4yIjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gwcGh5Mj47CisJCQl9OworCisJCQlwb3J0QDMgeworCQkJCXJlZyA9IDwweDM+OworCQkJCWxhYmVsID0gImxhbjMiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDBwaHkzPjsKKwkJCX07CisKKwkJCXBvcnRANCB7CisJCQkJcmVnID0gPDB4ND47CisJCQkJbGFiZWwgPSAibGFuNCI7CisJCQkJcGh5LWhhbmRsZSA9IDwmc3dpdGNoMHBoeTQ+OworCQkJfTsKKworCQkJcG9ydEA1IHsKKwkJCQlyZWcgPSA8MHg1PjsKKwkJCQlsYWJlbCA9ICJsYW41IjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gwcGh5NT47CisJCQl9OworCisJCQlwb3J0QDYgeworCQkJCXJlZyA9IDwweDY+OworCQkJCWxhYmVsID0gImxhbjYiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDBwaHk2PjsKKwkJCX07CisKKwkJCXBvcnRANyB7CisJCQkJcmVnID0gPDB4Nz47CisJCQkJbGFiZWwgPSAibGFuNyI7CisJCQkJcGh5LWhhbmRsZSA9IDwmc3dpdGNoMHBoeTc+OworCQkJfTsKKworCQkJcG9ydEA4IHsKKwkJCQlyZWcgPSA8MHg4PjsKKwkJCQlsYWJlbCA9ICJsYW44IjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gwcGh5OD47CisJCQl9OworCisJCQlwb3J0QDkgeworCQkJCXJlZyA9IDwweDk+OworCQkJCWxhYmVsID0gImNwdSI7CisJCQkJZXRoZXJuZXQgPSA8JmV0aDE+OworCQkJCXBoeS1tb2RlID0gIjI1MDBiYXNlLXgiOworCQkJCW1hbmFnZWQgPSAiaW4tYmFuZC1zdGF0dXMiOworCQkJfTsKKworCQkJc3dpdGNoMHBvcnQxMDogcG9ydEBhIHsKKwkJCQlyZWcgPSA8MHhhPjsKKwkJCQlsYWJlbCA9ICJkc2EiOworCQkJCXBoeS1tb2RlID0gIjI1MDBiYXNlLXgiOworCQkJCW1hbmFnZWQgPSAiaW4tYmFuZC1zdGF0dXMiOworCQkJCWxpbmsgPSA8JnN3aXRjaDFwb3J0OSAmc3dpdGNoMnBvcnQ5PjsKKwkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQkJfTsKKworCQkJcG9ydC1zZnBAYSB7CisJCQkJcmVnID0gPDB4YT47CisJCQkJbGFiZWwgPSAic2ZwIjsKKwkJCQlzZnAgPSA8JnNmcD47CisJCQkJcGh5LW1vZGUgPSAic2dtaWkiOworCQkJCW1hbmFnZWQgPSAiaW4tYmFuZC1zdGF0dXMiOworCQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJCQl9OworCQl9OworCX07CisKKwlzd2l0Y2gwQDIgeworCQljb21wYXRpYmxlID0gIm1hcnZlbGwsbXY4OGU2MDg1IjsKKwkJcmVnID0gPDB4MiAwPjsKKwkJZHNhLG1lbWJlciA9IDwwIDA+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZtb3h0ZXQ+OworCQlpbnRlcnJ1cHRzID0gPE1PWFRFVF9JUlFfVE9QQVo+OworCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCisJCW1kaW8geworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKworCQkJc3dpdGNoMHBoeTFfdG9wYXo6IHN3aXRjaDBwaHkxQDExIHsKKwkJCQlyZWcgPSA8MHgxMT47CisJCQl9OworCisJCQlzd2l0Y2gwcGh5Ml90b3Bhejogc3dpdGNoMHBoeTJAMTIgeworCQkJCXJlZyA9IDwweDEyPjsKKwkJCX07CisKKwkJCXN3aXRjaDBwaHkzX3RvcGF6OiBzd2l0Y2gwcGh5M0AxMyB7CisJCQkJcmVnID0gPDB4MTM+OworCQkJfTsKKworCQkJc3dpdGNoMHBoeTRfdG9wYXo6IHN3aXRjaDBwaHk0QDE0IHsKKwkJCQlyZWcgPSA8MHgxND47CisJCQl9OworCQl9OworCisJCXBvcnRzIHsKKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJI3NpemUtY2VsbHMgPSA8MD47CisKKwkJCXBvcnRAMSB7CisJCQkJcmVnID0gPDB4MT47CisJCQkJbGFiZWwgPSAibGFuMSI7CisJCQkJcGh5LWhhbmRsZSA9IDwmc3dpdGNoMHBoeTFfdG9wYXo+OworCQkJfTsKKworCQkJcG9ydEAyIHsKKwkJCQlyZWcgPSA8MHgyPjsKKwkJCQlsYWJlbCA9ICJsYW4yIjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gwcGh5Ml90b3Bhej47CisJCQl9OworCisJCQlwb3J0QDMgeworCQkJCXJlZyA9IDwweDM+OworCQkJCWxhYmVsID0gImxhbjMiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDBwaHkzX3RvcGF6PjsKKwkJCX07CisKKwkJCXBvcnRANCB7CisJCQkJcmVnID0gPDB4ND47CisJCQkJbGFiZWwgPSAibGFuNCI7CisJCQkJcGh5LWhhbmRsZSA9IDwmc3dpdGNoMHBoeTRfdG9wYXo+OworCQkJfTsKKworCQkJcG9ydEA1IHsKKwkJCQlyZWcgPSA8MHg1PjsKKwkJCQlsYWJlbCA9ICJjcHUiOworCQkJCXBoeS1tb2RlID0gIjI1MDBiYXNlLXgiOworCQkJCW1hbmFnZWQgPSAiaW4tYmFuZC1zdGF0dXMiOworCQkJCWV0aGVybmV0ID0gPCZldGgxPjsKKwkJCX07CisJCX07CisJfTsKKworCXN3aXRjaDFAMTEgeworCQljb21wYXRpYmxlID0gIm1hcnZlbGwsbXY4OGU2MTkwIjsKKwkJcmVnID0gPDB4MTEgMD47CisJCWRzYSxtZW1iZXIgPSA8MCAxPjsKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmbW94dGV0PjsKKwkJaW50ZXJydXB0cyA9IDxNT1hURVRfSVJRX1BFUklET1QoMSk+OworCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCisJCW1kaW8geworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKworCQkJc3dpdGNoMXBoeTE6IHN3aXRjaDFwaHkxQDEgeworCQkJCXJlZyA9IDwweDE+OworCQkJfTsKKworCQkJc3dpdGNoMXBoeTI6IHN3aXRjaDFwaHkyQDIgeworCQkJCXJlZyA9IDwweDI+OworCQkJfTsKKworCQkJc3dpdGNoMXBoeTM6IHN3aXRjaDFwaHkzQDMgeworCQkJCXJlZyA9IDwweDM+OworCQkJfTsKKworCQkJc3dpdGNoMXBoeTQ6IHN3aXRjaDFwaHk0QDQgeworCQkJCXJlZyA9IDwweDQ+OworCQkJfTsKKworCQkJc3dpdGNoMXBoeTU6IHN3aXRjaDFwaHk1QDUgeworCQkJCXJlZyA9IDwweDU+OworCQkJfTsKKworCQkJc3dpdGNoMXBoeTY6IHN3aXRjaDFwaHk2QDYgeworCQkJCXJlZyA9IDwweDY+OworCQkJfTsKKworCQkJc3dpdGNoMXBoeTc6IHN3aXRjaDFwaHk3QDcgeworCQkJCXJlZyA9IDwweDc+OworCQkJfTsKKworCQkJc3dpdGNoMXBoeTg6IHN3aXRjaDFwaHk4QDggeworCQkJCXJlZyA9IDwweDg+OworCQkJfTsKKwkJfTsKKworCQlwb3J0cyB7CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDA+OworCisJCQlwb3J0QDEgeworCQkJCXJlZyA9IDwweDE+OworCQkJCWxhYmVsID0gImxhbjkiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHkxPjsKKwkJCX07CisKKwkJCXBvcnRAMiB7CisJCQkJcmVnID0gPDB4Mj47CisJCQkJbGFiZWwgPSAibGFuMTAiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHkyPjsKKwkJCX07CisKKwkJCXBvcnRAMyB7CisJCQkJcmVnID0gPDB4Mz47CisJCQkJbGFiZWwgPSAibGFuMTEiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHkzPjsKKwkJCX07CisKKwkJCXBvcnRANCB7CisJCQkJcmVnID0gPDB4ND47CisJCQkJbGFiZWwgPSAibGFuMTIiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHk0PjsKKwkJCX07CisKKwkJCXBvcnRANSB7CisJCQkJcmVnID0gPDB4NT47CisJCQkJbGFiZWwgPSAibGFuMTMiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHk1PjsKKwkJCX07CisKKwkJCXBvcnRANiB7CisJCQkJcmVnID0gPDB4Nj47CisJCQkJbGFiZWwgPSAibGFuMTQiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHk2PjsKKwkJCX07CisKKwkJCXBvcnRANyB7CisJCQkJcmVnID0gPDB4Nz47CisJCQkJbGFiZWwgPSAibGFuMTUiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHk3PjsKKwkJCX07CisKKwkJCXBvcnRAOCB7CisJCQkJcmVnID0gPDB4OD47CisJCQkJbGFiZWwgPSAibGFuMTYiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHk4PjsKKwkJCX07CisKKwkJCXN3aXRjaDFwb3J0OTogcG9ydEA5IHsKKwkJCQlyZWcgPSA8MHg5PjsKKwkJCQlsYWJlbCA9ICJkc2EiOworCQkJCXBoeS1tb2RlID0gIjI1MDBiYXNlLXgiOworCQkJCW1hbmFnZWQgPSAiaW4tYmFuZC1zdGF0dXMiOworCQkJCWxpbmsgPSA8JnN3aXRjaDBwb3J0MTA+OworCQkJfTsKKworCQkJc3dpdGNoMXBvcnQxMDogcG9ydEBhIHsKKwkJCQlyZWcgPSA8MHhhPjsKKwkJCQlsYWJlbCA9ICJkc2EiOworCQkJCXBoeS1tb2RlID0gIjI1MDBiYXNlLXgiOworCQkJCW1hbmFnZWQgPSAiaW4tYmFuZC1zdGF0dXMiOworCQkJCWxpbmsgPSA8JnN3aXRjaDJwb3J0OT47CisJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKwkJCX07CisKKwkJCXBvcnQtc2ZwQGEgeworCQkJCXJlZyA9IDwweGE+OworCQkJCWxhYmVsID0gInNmcCI7CisJCQkJc2ZwID0gPCZzZnA+OworCQkJCXBoeS1tb2RlID0gInNnbWlpIjsKKwkJCQltYW5hZ2VkID0gImluLWJhbmQtc3RhdHVzIjsKKwkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQkJfTsKKwkJfTsKKwl9OworCisJc3dpdGNoMUAyIHsKKwkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLG12ODhlNjA4NSI7CisJCXJlZyA9IDwweDIgMD47CisJCWRzYSxtZW1iZXIgPSA8MCAxPjsKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmbW94dGV0PjsKKwkJaW50ZXJydXB0cyA9IDxNT1hURVRfSVJRX1RPUEFaPjsKKwkJc3RhdHVzID0gImRpc2FibGVkIjsKKworCQltZGlvIHsKKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJI3NpemUtY2VsbHMgPSA8MD47CisKKwkJCXN3aXRjaDFwaHkxX3RvcGF6OiBzd2l0Y2gxcGh5MUAxMSB7CisJCQkJcmVnID0gPDB4MTE+OworCQkJfTsKKworCQkJc3dpdGNoMXBoeTJfdG9wYXo6IHN3aXRjaDFwaHkyQDEyIHsKKwkJCQlyZWcgPSA8MHgxMj47CisJCQl9OworCisJCQlzd2l0Y2gxcGh5M190b3Bhejogc3dpdGNoMXBoeTNAMTMgeworCQkJCXJlZyA9IDwweDEzPjsKKwkJCX07CisKKwkJCXN3aXRjaDFwaHk0X3RvcGF6OiBzd2l0Y2gxcGh5NEAxNCB7CisJCQkJcmVnID0gPDB4MTQ+OworCQkJfTsKKwkJfTsKKworCQlwb3J0cyB7CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDA+OworCisJCQlwb3J0QDEgeworCQkJCXJlZyA9IDwweDE+OworCQkJCWxhYmVsID0gImxhbjkiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHkxX3RvcGF6PjsKKwkJCX07CisKKwkJCXBvcnRAMiB7CisJCQkJcmVnID0gPDB4Mj47CisJCQkJbGFiZWwgPSAibGFuMTAiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHkyX3RvcGF6PjsKKwkJCX07CisKKwkJCXBvcnRAMyB7CisJCQkJcmVnID0gPDB4Mz47CisJCQkJbGFiZWwgPSAibGFuMTEiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHkzX3RvcGF6PjsKKwkJCX07CisKKwkJCXBvcnRANCB7CisJCQkJcmVnID0gPDB4ND47CisJCQkJbGFiZWwgPSAibGFuMTIiOworCQkJCXBoeS1oYW5kbGUgPSA8JnN3aXRjaDFwaHk0X3RvcGF6PjsKKwkJCX07CisKKwkJCXBvcnRANSB7CisJCQkJcmVnID0gPDB4NT47CisJCQkJbGFiZWwgPSAiZHNhIjsKKwkJCQlwaHktbW9kZSA9ICIyNTAwYmFzZS14IjsKKwkJCQltYW5hZ2VkID0gImluLWJhbmQtc3RhdHVzIjsKKwkJCQlsaW5rID0gPCZzd2l0Y2gwcG9ydDEwPjsKKwkJCX07CisJCX07CisJfTsKKworCXN3aXRjaDJAMTIgeworCQljb21wYXRpYmxlID0gIm1hcnZlbGwsbXY4OGU2MTkwIjsKKwkJcmVnID0gPDB4MTIgMD47CisJCWRzYSxtZW1iZXIgPSA8MCAyPjsKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmbW94dGV0PjsKKwkJaW50ZXJydXB0cyA9IDxNT1hURVRfSVJRX1BFUklET1QoMik+OworCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCisJCW1kaW8geworCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKworCQkJc3dpdGNoMnBoeTE6IHN3aXRjaDJwaHkxQDEgeworCQkJCXJlZyA9IDwweDE+OworCQkJfTsKKworCQkJc3dpdGNoMnBoeTI6IHN3aXRjaDJwaHkyQDIgeworCQkJCXJlZyA9IDwweDI+OworCQkJfTsKKworCQkJc3dpdGNoMnBoeTM6IHN3aXRjaDJwaHkzQDMgeworCQkJCXJlZyA9IDwweDM+OworCQkJfTsKKworCQkJc3dpdGNoMnBoeTQ6IHN3aXRjaDJwaHk0QDQgeworCQkJCXJlZyA9IDwweDQ+OworCQkJfTsKKworCQkJc3dpdGNoMnBoeTU6IHN3aXRjaDJwaHk1QDUgeworCQkJCXJlZyA9IDwweDU+OworCQkJfTsKKworCQkJc3dpdGNoMnBoeTY6IHN3aXRjaDJwaHk2QDYgeworCQkJCXJlZyA9IDwweDY+OworCQkJfTsKKworCQkJc3dpdGNoMnBoeTc6IHN3aXRjaDJwaHk3QDcgeworCQkJCXJlZyA9IDwweDc+OworCQkJfTsKKworCQkJc3dpdGNoMnBoeTg6IHN3aXRjaDJwaHk4QDggeworCQkJCXJlZyA9IDwweDg+OworCQkJfTsKKwkJfTsKKworCQlwb3J0cyB7CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDA+OworCisJCQlwb3J0QDEgeworCQkJCXJlZyA9IDwweDE+OworCQkJCWxhYmVsID0gImxhbjE3IjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5MT47CisJCQl9OworCisJCQlwb3J0QDIgeworCQkJCXJlZyA9IDwweDI+OworCQkJCWxhYmVsID0gImxhbjE4IjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5Mj47CisJCQl9OworCisJCQlwb3J0QDMgeworCQkJCXJlZyA9IDwweDM+OworCQkJCWxhYmVsID0gImxhbjE5IjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5Mz47CisJCQl9OworCisJCQlwb3J0QDQgeworCQkJCXJlZyA9IDwweDQ+OworCQkJCWxhYmVsID0gImxhbjIwIjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5ND47CisJCQl9OworCisJCQlwb3J0QDUgeworCQkJCXJlZyA9IDwweDU+OworCQkJCWxhYmVsID0gImxhbjIxIjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5NT47CisJCQl9OworCisJCQlwb3J0QDYgeworCQkJCXJlZyA9IDwweDY+OworCQkJCWxhYmVsID0gImxhbjIyIjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5Nj47CisJCQl9OworCisJCQlwb3J0QDcgeworCQkJCXJlZyA9IDwweDc+OworCQkJCWxhYmVsID0gImxhbjIzIjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5Nz47CisJCQl9OworCisJCQlwb3J0QDggeworCQkJCXJlZyA9IDwweDg+OworCQkJCWxhYmVsID0gImxhbjI0IjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5OD47CisJCQl9OworCisJCQlzd2l0Y2gycG9ydDk6IHBvcnRAOSB7CisJCQkJcmVnID0gPDB4OT47CisJCQkJbGFiZWwgPSAiZHNhIjsKKwkJCQlwaHktbW9kZSA9ICIyNTAwYmFzZS14IjsKKwkJCQltYW5hZ2VkID0gImluLWJhbmQtc3RhdHVzIjsKKwkJCQlsaW5rID0gPCZzd2l0Y2gxcG9ydDEwICZzd2l0Y2gwcG9ydDEwPjsKKwkJCX07CisKKwkJCXBvcnQtc2ZwQGEgeworCQkJCXJlZyA9IDwweGE+OworCQkJCWxhYmVsID0gInNmcCI7CisJCQkJc2ZwID0gPCZzZnA+OworCQkJCXBoeS1tb2RlID0gInNnbWlpIjsKKwkJCQltYW5hZ2VkID0gImluLWJhbmQtc3RhdHVzIjsKKwkJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCQkJfTsKKwkJfTsKKwl9OworCisJc3dpdGNoMkAyIHsKKwkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLG12ODhlNjA4NSI7CisJCXJlZyA9IDwweDIgMD47CisJCWRzYSxtZW1iZXIgPSA8MCAyPjsKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmbW94dGV0PjsKKwkJaW50ZXJydXB0cyA9IDxNT1hURVRfSVJRX1RPUEFaPjsKKwkJc3RhdHVzID0gImRpc2FibGVkIjsKKworCQltZGlvIHsKKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJI3NpemUtY2VsbHMgPSA8MD47CisKKwkJCXN3aXRjaDJwaHkxX3RvcGF6OiBzd2l0Y2gycGh5MUAxMSB7CisJCQkJcmVnID0gPDB4MTE+OworCQkJfTsKKworCQkJc3dpdGNoMnBoeTJfdG9wYXo6IHN3aXRjaDJwaHkyQDEyIHsKKwkJCQlyZWcgPSA8MHgxMj47CisJCQl9OworCisJCQlzd2l0Y2gycGh5M190b3Bhejogc3dpdGNoMnBoeTNAMTMgeworCQkJCXJlZyA9IDwweDEzPjsKKwkJCX07CisKKwkJCXN3aXRjaDJwaHk0X3RvcGF6OiBzd2l0Y2gycGh5NEAxNCB7CisJCQkJcmVnID0gPDB4MTQ+OworCQkJfTsKKwkJfTsKKworCQlwb3J0cyB7CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDA+OworCisJCQlwb3J0QDEgeworCQkJCXJlZyA9IDwweDE+OworCQkJCWxhYmVsID0gImxhbjE3IjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5MV90b3Bhej47CisJCQl9OworCisJCQlwb3J0QDIgeworCQkJCXJlZyA9IDwweDI+OworCQkJCWxhYmVsID0gImxhbjE4IjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5Ml90b3Bhej47CisJCQl9OworCisJCQlwb3J0QDMgeworCQkJCXJlZyA9IDwweDM+OworCQkJCWxhYmVsID0gImxhbjE5IjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5M190b3Bhej47CisJCQl9OworCisJCQlwb3J0QDQgeworCQkJCXJlZyA9IDwweDQ+OworCQkJCWxhYmVsID0gImxhbjIwIjsKKwkJCQlwaHktaGFuZGxlID0gPCZzd2l0Y2gycGh5NF90b3Bhej47CisJCQl9OworCisJCQlwb3J0QDUgeworCQkJCXJlZyA9IDwweDU+OworCQkJCWxhYmVsID0gImRzYSI7CisJCQkJcGh5LW1vZGUgPSAiMjUwMGJhc2UteCI7CisJCQkJbWFuYWdlZCA9ICJpbi1iYW5kLXN0YXR1cyI7CisJCQkJbGluayA9IDwmc3dpdGNoMXBvcnQxMCAmc3dpdGNoMHBvcnQxMD47CisJCQl9OworCQl9OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zN3h4LmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3eHguZHRzaQppbmRleCA3ZjY5ZTNkLi4wMDBjMTM1IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3eHguZHRzaQorKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3eHguZHRzaQpAQCAtMjE1LDYgKzIxNSwxMSBAQAogCQkJCQlmdW5jdGlvbiA9ICJzcGkiOwogCQkJCX07CiAKKwkJCQlzcGlfY3MxX3BpbnM6IHNwaS1jczEtcGlucyB7CisJCQkJCWdyb3VwcyA9ICJzcGlfY3MxIjsKKwkJCQkJZnVuY3Rpb24gPSAic3BpIjsKKwkJCQl9OworCiAJCQkJaTJjMV9waW5zOiBpMmMxLXBpbnMgewogCQkJCQlncm91cHMgPSAiaTJjMSI7CiAJCQkJCWZ1bmN0aW9uID0gImkyYyI7CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL252aWRpYS90ZWdyYTE5NC1wMjg4OC5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy9udmlkaWEvdGVncmExOTQtcDI4ODguZHRzaQppbmRleCA2MmUwN2UxMS4uNGMzODQyNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9udmlkaWEvdGVncmExOTQtcDI4ODguZHRzaQorKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL252aWRpYS90ZWdyYTE5NC1wMjg4OC5kdHNpCkBAIC0yODksNSArMjg5LDI5IEBACiAJCQlncGlvID0gPCZncGlvIFRFR1JBMTk0X01BSU5fR1BJTyhBLCAzKSBHUElPX0FDVElWRV9ISUdIPjsKIAkJCWVuYWJsZS1hY3RpdmUtaGlnaDsKIAkJfTsKKworCQl2ZGRfM3YzX3BjaWU6IHJlZ3VsYXRvckAyIHsKKwkJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsKKwkJCXJlZyA9IDwyPjsKKworCQkJcmVndWxhdG9yLW5hbWUgPSAiUEVYXzNWMyI7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDMzMDAwMDA+OworCQkJZ3BpbyA9IDwmZ3BpbyBURUdSQTE5NF9NQUlOX0dQSU8oWiwgMikgR1BJT19BQ1RJVkVfSElHSD47CisJCQlyZWd1bGF0b3ItYm9vdC1vbjsKKwkJCWVuYWJsZS1hY3RpdmUtaGlnaDsKKwkJfTsKKworCQl2ZGRfMTJ2X3BjaWU6IHJlZ3VsYXRvckAzIHsKKwkJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsKKwkJCXJlZyA9IDwzPjsKKworCQkJcmVndWxhdG9yLW5hbWUgPSAiVkREXzEyViI7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxMjAwMDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEyMDAwMDA+OworCQkJZ3BpbyA9IDwmZ3BpbyBURUdSQTE5NF9NQUlOX0dQSU8oQSwgMSkgR1BJT19BQ1RJVkVfTE9XPjsKKwkJCXJlZ3VsYXRvci1ib290LW9uOworCQkJZW5hYmxlLWFjdGl2ZS1sb3c7CisJCX07CiAJfTsKIH07CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL252aWRpYS90ZWdyYTE5NC1wMjk3Mi0wMDAwLmR0cyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvbnZpZGlhL3RlZ3JhMTk0LXAyOTcyLTAwMDAuZHRzCmluZGV4IDIzNTk3ZDUuLmQ0N2NkOGMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvbnZpZGlhL3RlZ3JhMTk0LXAyOTcyLTAwMDAuZHRzCisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvbnZpZGlhL3RlZ3JhMTk0LXAyOTcyLTAwMDAuZHRzCkBAIC05Myw5ICs5MywxMSBAQAogCX07CiAKIAlwY2llQDE0MWEwMDAwIHsKLQkJc3RhdHVzID0gImRpc2FibGVkIjsKKwkJc3RhdHVzID0gIm9rYXkiOwogCiAJCXZkZGlvLXBleC1jdGwtc3VwcGx5ID0gPCZ2ZGRfMXY4YW8+OworCQl2cGNpZTN2My1zdXBwbHkgPSA8JnZkZF8zdjNfcGNpZT47CisJCXZwY2llMTJ2LXN1cHBseSA9IDwmdmRkXzEydl9wY2llPjsKIAogCQlwaHlzID0gPCZwMnVfbnZoc18wPiwgPCZwMnVfbnZoc18xPiwgPCZwMnVfbnZoc18yPiwKIAkJICAgICAgIDwmcDJ1X252aHNfMz4sIDwmcDJ1X252aHNfND4sIDwmcDJ1X252aHNfNT4sCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL252aWRpYS90ZWdyYTE5NC5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy9udmlkaWEvdGVncmExOTQuZHRzaQppbmRleCBhZGViYmJmLi4zYzBjZjU0IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL252aWRpYS90ZWdyYTE5NC5kdHNpCisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvbnZpZGlhL3RlZ3JhMTk0LmR0c2kKQEAgLTMsOCArMyw5IEBACiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvZ3Bpby90ZWdyYTE5NC1ncGlvLmg+CiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvYXJtLWdpYy5oPgogI2luY2x1ZGUgPGR0LWJpbmRpbmdzL21haWxib3gvdGVncmExODYtaHNwLmg+Ci0jaW5jbHVkZSA8ZHQtYmluZGluZ3MvcmVzZXQvdGVncmExOTQtcmVzZXQuaD4KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9waW5jdHJsL3BpbmN0cmwtdGVncmEuaD4KICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9wb3dlci90ZWdyYTE5NC1wb3dlcmdhdGUuaD4KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9yZXNldC90ZWdyYTE5NC1yZXNldC5oPgogI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3RoZXJtYWwvdGVncmExOTQtYnBtcC10aGVybWFsLmg+CiAKIC8gewpAQCAtMTMwLDYgKzEzMSwzOCBAQAogCQkJfTsKIAkJfTsKIAorCQlwaW5tdXg6IHBpbm11eEAyNDMwMDAwIHsKKwkJCWNvbXBhdGlibGUgPSAibnZpZGlhLHRlZ3JhMTk0LXBpbm11eCI7CisJCQlyZWcgPSA8MHgyNDMwMDAwIDB4MTcwMDAKKwkJCSAgICAgICAweGMzMDAwMDAgMHg0MDAwPjsKKworCQkJc3RhdHVzID0gIm9rYXkiOworCisJCQlwZXhfcnN0X2M1X291dF9zdGF0ZTogcGV4X3JzdF9jNV9vdXQgeworCQkJCXBleF9yc3QgeworCQkJCQludmlkaWEscGlucyA9ICJwZXhfbDVfcnN0X25fcGdnMSI7CisJCQkJCW52aWRpYSxzY2htaXR0ID0gPFRFR1JBX1BJTl9ESVNBQkxFPjsKKwkJCQkJbnZpZGlhLGxwZHIgPSA8VEVHUkFfUElOX0VOQUJMRT47CisJCQkJCW52aWRpYSxlbmFibGUtaW5wdXQgPSA8VEVHUkFfUElOX0RJU0FCTEU+OworCQkJCQludmlkaWEsaW8taGlnaC12b2x0YWdlID0gPFRFR1JBX1BJTl9FTkFCTEU+OworCQkJCQludmlkaWEsdHJpc3RhdGUgPSA8VEVHUkFfUElOX0RJU0FCTEU+OworCQkJCQludmlkaWEscHVsbCA9IDxURUdSQV9QSU5fUFVMTF9OT05FPjsKKwkJCQl9OworCQkJfTsKKworCQkJY2xrcmVxX2M1X2JpX2Rpcl9zdGF0ZTogY2xrcmVxX2M1X2JpX2RpciB7CisJCQkJY2xrcmVxIHsKKwkJCQkJbnZpZGlhLHBpbnMgPSAicGV4X2w1X2Nsa3JlcV9uX3BnZzAiOworCQkJCQludmlkaWEsc2NobWl0dCA9IDxURUdSQV9QSU5fRElTQUJMRT47CisJCQkJCW52aWRpYSxscGRyID0gPFRFR1JBX1BJTl9FTkFCTEU+OworCQkJCQludmlkaWEsZW5hYmxlLWlucHV0ID0gPFRFR1JBX1BJTl9FTkFCTEU+OworCQkJCQludmlkaWEsaW8taGlnaC12b2x0YWdlID0gPFRFR1JBX1BJTl9FTkFCTEU+OworCQkJCQludmlkaWEsdHJpc3RhdGUgPSA8VEVHUkFfUElOX0RJU0FCTEU+OworCQkJCQludmlkaWEscHVsbCA9IDxURUdSQV9QSU5fUFVMTF9OT05FPjsKKwkJCQl9OworCQkJfTsKKwkJfTsKKwogCQl1YXJ0YTogc2VyaWFsQDMxMDAwMDAgewogCQkJY29tcGF0aWJsZSA9ICJudmlkaWEsdGVncmExOTQtdWFydCIsICJudmlkaWEsdGVncmEyMC11YXJ0IjsKIAkJCXJlZyA9IDwweDAzMTAwMDAwIDB4NDA+OwpAQCAtMTM2NSw2ICsxMzk4LDkgQEAKIAkJbnVtLXZpZXdwb3J0ID0gPDg+OwogCQlsaW51eCxwY2ktZG9tYWluID0gPDU+OwogCisJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJCXBpbmN0cmwtMCA9IDwmcGV4X3JzdF9jNV9vdXRfc3RhdGU+LCA8JmNsa3JlcV9jNV9iaV9kaXJfc3RhdGU+OworCiAJCWNsb2NrcyA9IDwmYnBtcCBURUdSQTE5NF9DTEtfUEVYMV9DT1JFXzU+LAogCQkJPCZicG1wIFRFR1JBMTk0X0NMS19QRVgxX0NPUkVfNU0+OwogCQljbG9jay1uYW1lcyA9ICJjb3JlIiwgImNvcmVfbSI7CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc2RtODQ1LWRiODQ1Yy5kdHMgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc2RtODQ1LWRiODQ1Yy5kdHMKaW5kZXggNzFiZDcxNy4uZjVhODVjYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NkbTg0NS1kYjg0NWMuZHRzCisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zZG04NDUtZGI4NDVjLmR0cwpAQCAtNDk3LDYgKzQ5Nyw4IEBACiAmdWZzX21lbV9oYyB7CiAJc3RhdHVzID0gIm9rYXkiOwogCisJcmVzZXQtZ3Bpb3MgPSA8JnRsbW0gMTUwIEdQSU9fQUNUSVZFX0xPVz47CisKIAl2Y2Mtc3VwcGx5ID0gPCZ2cmVnX2wyMGFfMnA5NT47CiAJdmNjLW1heC1taWNyb2FtcCA9IDw4MDAwMDA+OwogfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zZG04NDUtbXRwLmR0cyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zZG04NDUtbXRwLmR0cwppbmRleCAyZTc4NjM4Li5jNTc1NDhiIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc2RtODQ1LW10cC5kdHMKKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NkbTg0NS1tdHAuZHRzCkBAIC0zODgsNiArMzg4LDggQEAKICZ1ZnNfbWVtX2hjIHsKIAlzdGF0dXMgPSAib2theSI7CiAKKwlyZXNldC1ncGlvcyA9IDwmdGxtbSAxNTAgR1BJT19BQ1RJVkVfTE9XPjsKKwogCXZjYy1zdXBwbHkgPSA8JnZyZWdfbDIwYV8ycDk1PjsKIAl2Y2MtbWF4LW1pY3JvYW1wID0gPDYwMDAwMD47CiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1LW1haW4uZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtYW02NS1tYWluLmR0c2kKaW5kZXggY2E3MGZmNy4uNzk5Yzc1ZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1LW1haW4uZHRzaQorKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWFtNjUtbWFpbi5kdHNpCkBAIC00Miw3ICs0Miw3IEBACiAJCSAqLwogCQlpbnRlcnJ1cHRzID0gPEdJQ19QUEkgOSBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAotCQlnaWNfaXRzOiBnaWMtaXRzQDE4MjAwMDAwIHsKKwkJZ2ljX2l0czogZ2ljLWl0c0AxODIwMDAwIHsKIAkJCWNvbXBhdGlibGUgPSAiYXJtLGdpYy12My1pdHMiOwogCQkJcmVnID0gPDB4MDAgMHgwMTgyMDAwMCAweDAwIDB4MTAwMDA+OwogCQkJc29jaW9uZXh0LHN5bnF1YWNlci1wcmUtaXRzID0gPDB4MTAwMDAwMCAweDQwMDAwMD47CkBAIC02Nyw3ICs2Nyw3IEBACiAJCXJlZyA9IDwweDAgMHg5MDAwMDAgMHgwIDB4MjAwMD47CiAJCXJlZy1uYW1lcyA9ICJzZXJkZXMiOwogCQkjcGh5LWNlbGxzID0gPDI+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTUzPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE1MyBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDE1MyA0PiwgPCZrM19jbGtzIDE1MyAxPiwgPCZzZXJkZXMxIEFNNjU0X1NFUkRFU19MT19SRUZDTEs+OwogCQljbG9jay1vdXRwdXQtbmFtZXMgPSAic2VyZGVzMF9jbXVfcmVmY2xrIiwgInNlcmRlczBfbG9fcmVmY2xrIiwgInNlcmRlczBfcm9fcmVmY2xrIjsKIAkJYXNzaWduZWQtY2xvY2tzID0gPCZrM19jbGtzIDE1MyA0PiwgPCZzZXJkZXMwIEFNNjU0X1NFUkRFU19DTVVfUkVGQ0xLPjsKQEAgLTgyLDcgKzgyLDcgQEAKIAkJcmVnID0gPDB4MCAweDkxMDAwMCAweDAgMHgyMDAwPjsKIAkJcmVnLW5hbWVzID0gInNlcmRlcyI7CiAJCSNwaHktY2VsbHMgPSA8Mj47Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNTQ+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTU0IFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQljbG9ja3MgPSA8JnNlcmRlczAgQU02NTRfU0VSREVTX1JPX1JFRkNMSz4sIDwmazNfY2xrcyAxNTQgMT4sIDwmazNfY2xrcyAxNTQgNT47CiAJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJzZXJkZXMxX2NtdV9yZWZjbGsiLCAic2VyZGVzMV9sb19yZWZjbGsiLCAic2VyZGVzMV9yb19yZWZjbGsiOwogCQlhc3NpZ25lZC1jbG9ja3MgPSA8JmszX2Nsa3MgMTU0IDU+LCA8JnNlcmRlczEgQU02NTRfU0VSREVTX0NNVV9SRUZDTEs+OwpAQCAtMTAwLDcgKzEwMCw3IEBACiAJCWludGVycnVwdHMgPSA8R0lDX1NQSSAxOTIgSVJRX1RZUEVfTEVWRUxfSElHSD47CiAJCWNsb2NrLWZyZXF1ZW5jeSA9IDw0ODAwMDAwMD47CiAJCWN1cnJlbnQtc3BlZWQgPSA8MTE1MjAwPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE0Nj47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNDYgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJfTsKIAogCW1haW5fdWFydDE6IHNlcmlhbEAyODEwMDAwIHsKQEAgLTExMCw3ICsxMTAsNyBAQAogCQlyZWctaW8td2lkdGggPSA8ND47CiAJCWludGVycnVwdHMgPSA8R0lDX1NQSSAxOTMgSVJRX1RZUEVfTEVWRUxfSElHSD47CiAJCWNsb2NrLWZyZXF1ZW5jeSA9IDw0ODAwMDAwMD47Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNDc+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTQ3IFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCX07CiAKIAltYWluX3VhcnQyOiBzZXJpYWxAMjgyMDAwMCB7CkBAIC0xMjAsNyArMTIwLDcgQEAKIAkJcmVnLWlvLXdpZHRoID0gPDQ+OwogCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTk0IElSUV9UWVBFX0xFVkVMX0hJR0g+OwogCQljbG9jay1mcmVxdWVuY3kgPSA8NDgwMDAwMDA+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTQ4PjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE0OCBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAl9OwogCiAJbWFpbl9wbXgwOiBwaW5tdXhAMTFjMDAwIHsKQEAgLTE0Nyw3ICsxNDcsNyBAQAogCQkjc2l6ZS1jZWxscyA9IDwwPjsKIAkJY2xvY2stbmFtZXMgPSAiZmNrIjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDExMCAxPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDExMD47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMTAgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJfTsKIAogCW1haW5faTJjMTogaTJjQDIwMTAwMDAgewpAQCAtMTU4LDcgKzE1OCw3IEBACiAJCSNzaXplLWNlbGxzID0gPDA+OwogCQljbG9jay1uYW1lcyA9ICJmY2siOwogCQljbG9ja3MgPSA8JmszX2Nsa3MgMTExIDE+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTExPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDExMSBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAl9OwogCiAJbWFpbl9pMmMyOiBpMmNAMjAyMDAwMCB7CkBAIC0xNjksNyArMTY5LDcgQEAKIAkJI3NpemUtY2VsbHMgPSA8MD47CiAJCWNsb2NrLW5hbWVzID0gImZjayI7CiAJCWNsb2NrcyA9IDwmazNfY2xrcyAxMTIgMT47Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMTI+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTEyIFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCX07CiAKIAltYWluX2kyYzM6IGkyY0AyMDMwMDAwIHsKQEAgLTE4MCwxNCArMTgwLDE0IEBACiAJCSNzaXplLWNlbGxzID0gPDA+OwogCQljbG9jay1uYW1lcyA9ICJmY2siOwogCQljbG9ja3MgPSA8JmszX2Nsa3MgMTEzIDE+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTEzPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDExMyBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAl9OwogCiAJZWNhcDA6IHB3bUAzMTAwMDAwIHsKIAkJY29tcGF0aWJsZSA9ICJ0aSxhbTY1NC1lY2FwIiwgInRpLGFtMzM1Mi1lY2FwIjsKIAkJI3B3bS1jZWxscyA9IDwzPjsKIAkJcmVnID0gPDB4MCAweDAzMTAwMDAwIDB4MCAweDYwPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDM5PjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDM5IFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQljbG9ja3MgPSA8JmszX2Nsa3MgMzkgMD47CiAJCWNsb2NrLW5hbWVzID0gImZjayI7CiAJfTsKQEAgLTE5Nyw3ICsxOTcsNyBAQAogCQlyZWcgPSA8MHgwIDB4MjEwMDAwMCAweDAgMHg0MDA+OwogCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTg0IElSUV9UWVBFX0xFVkVMX0hJR0g+OwogCQljbG9ja3MgPSA8JmszX2Nsa3MgMTM3IDE+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTM3PjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDEzNyBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CiAJCSNzaXplLWNlbGxzID0gPDA+OwogCX07CkBAIC0yMDcsNyArMjA3LDcgQEAKIAkJcmVnID0gPDB4MCAweDIxMTAwMDAgMHgwIDB4NDAwPjsKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDE4NSBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDEzOCAxPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDEzOD47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMzggVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkjc2l6ZS1jZWxscyA9IDwwPjsKIAkJYXNzaWduZWQtY2xvY2tzID0gPCZrM19jbGtzIDEzNyAxPjsKQEAgLTIxOSw3ICsyMTksNyBAQAogCQlyZWcgPSA8MHgwIDB4MjEyMDAwMCAweDAgMHg0MDA+OwogCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTg2IElSUV9UWVBFX0xFVkVMX0hJR0g+OwogCQljbG9ja3MgPSA8JmszX2Nsa3MgMTM5IDE+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTM5PjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDEzOSBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CiAJCSNzaXplLWNlbGxzID0gPDA+OwogCX07CkBAIC0yMjksNyArMjI5LDcgQEAKIAkJcmVnID0gPDB4MCAweDIxMzAwMDAgMHgwIDB4NDAwPjsKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDE4NyBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDE0MCAxPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE0MD47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNDAgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkjc2l6ZS1jZWxscyA9IDwwPjsKIAl9OwpAQCAtMjM5LDcgKzIzOSw3IEBACiAJCXJlZyA9IDwweDAgMHgyMTQwMDAwIDB4MCAweDQwMD47CiAJCWludGVycnVwdHMgPSA8R0lDX1NQSSAxODggSVJRX1RZUEVfTEVWRUxfSElHSD47CiAJCWNsb2NrcyA9IDwmazNfY2xrcyAxNDEgMT47Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNDE+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTQxIFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKIAkJI3NpemUtY2VsbHMgPSA8MD47CiAJfTsKQEAgLTI0Nyw3ICsyNDcsNyBAQAogCXNkaGNpMDogc2RoY2lANGY4MDAwMCB7CiAJCWNvbXBhdGlibGUgPSAidGksYW02NTQtc2RoY2ktNS4xIjsKIAkJcmVnID0gPDB4MCAweDRmODAwMDAgMHgwIDB4MjYwPiwgPDB4MCAweDRmOTAwMDAgMHgwIDB4MTM0PjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDQ3PjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDQ3IFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQljbG9ja3MgPSA8JmszX2Nsa3MgNDcgMD4sIDwmazNfY2xrcyA0NyAxPjsKIAkJY2xvY2stbmFtZXMgPSAiY2xrX2FoYiIsICJjbGtfeGluIjsKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDEzNiBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKQEAgLTMwNiw3ICszMDYsNyBAQAogCQlyYW5nZXMgPSA8MHgwIDB4MCAweDQwMDAwMDAgMHgyMDAwMD47CiAJCWludGVycnVwdHMgPSA8R0lDX1NQSSA5NyBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJZG1hLWNvaGVyZW50OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTUxPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE1MSBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJYXNzaWduZWQtY2xvY2tzID0gPCZrM19jbGtzIDE1MSAyPiwgPCZrM19jbGtzIDE1MSA3PjsKIAkJYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmazNfY2xrcyAxNTEgND4sCS8qIHNldCBSRUZfQ0xLIHRvIDIwTUh6IGkuZS4gUEVSMF9QTEwvNDggKi8KIAkJCQkJIDwmazNfY2xrcyAxNTEgOT47CS8qIHNldCBQSVBFM19UWEJfQ0xLIHRvIENMS18xMk1fUkMvMjU2IChmb3IgSFMgb25seSkgKi8KQEAgLTM0NSw3ICszNDUsNyBAQAogCQlyYW5nZXMgPSA8MHgwIDB4MCAweDQwMjAwMDAgMHgyMDAwMD47CiAJCWludGVycnVwdHMgPSA8R0lDX1NQSSAxMTcgSVJRX1RZUEVfTEVWRUxfSElHSD47CiAJCWRtYS1jb2hlcmVudDsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE1Mj47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNTIgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCWFzc2lnbmVkLWNsb2NrcyA9IDwmazNfY2xrcyAxNTIgMj47CiAJCWFzc2lnbmVkLWNsb2NrLXBhcmVudHMgPSA8JmszX2Nsa3MgMTUyIDQ+OwkvKiBzZXQgUkVGX0NMSyB0byAyME1IeiBpLmUuIFBFUjBfUExMLzQ4ICovCiAKQEAgLTQxMyw2ICs0MTMsMTIgQEAKIAkJCXRpLHNjaS1ybS1yYW5nZS12aW50ID0gPDB4MD47CiAJCQl0aSxzY2ktcm0tcmFuZ2UtZ2xvYmFsLWV2ZW50ID0gPDB4MT47CiAJCX07CisKKwkJaHdzcGlubG9jazogc3BpbmxvY2tAMzBlMDAwMDAgeworCQkJY29tcGF0aWJsZSA9ICJ0aSxhbTY1NC1od3NwaW5sb2NrIjsKKwkJCXJlZyA9IDwweDAwIDB4MzBlMDAwMDAgMHgwMCAweDEwMDA+OworCQkJI2h3bG9jay1jZWxscyA9IDwxPjsKKwkJfTsKIAl9OwogCiAJbWFpbl9ncGlvMDogIG1haW5fZ3BpbzBANjAwMDAwIHsKQEAgLTQ1MSw3ICs0NTcsNyBAQAogCQljb21wYXRpYmxlID0gInRpLGFtNjU0LXBjaWUtcmMiOwogCQlyZWcgPSAgPDB4MCAweDU1MDAwMDAgMHgwIDB4MTAwMD4sIDwweDAgMHg1NTAxMDAwIDB4MCAweDEwMDA+LCA8MHgwIDB4MTAwMDAwMDAgMHgwIDB4MjAwMD4sIDwweDAgMHg1NTA2MDAwIDB4MCAweDEwMDA+OwogCQlyZWctbmFtZXMgPSAiYXBwIiwgImRiaWNzIiwgImNvbmZpZyIsICJhdHUiOwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTIwPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDEyMCBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJI2FkZHJlc3MtY2VsbHMgPSA8Mz47CiAJCSNzaXplLWNlbGxzID0gPDI+OwogCQlyYW5nZXMgPSA8MHg4MTAwMDAwMCAwIDAgICAgICAgICAgMHgwIDB4MTAwMjAwMDAgMCAweDAwMDEwMDAwCkBAIC00NzAsNyArNDc2LDcgQEAKIAkJY29tcGF0aWJsZSA9ICJ0aSxhbTY1NC1wY2llLWVwIjsKIAkJcmVnID0gIDwweDAgMHg1NTAwMDAwIDB4MCAweDEwMDA+LCA8MHgwIDB4NTUwMTAwMCAweDAgMHgxMDAwPiwgPDB4MCAweDEwMDAwMDAwIDB4MCAweDgwMDAwMDA+LCA8MHgwIDB4NTUwNjAwMCAweDAgMHgxMDAwPjsKIAkJcmVnLW5hbWVzID0gImFwcCIsICJkYmljcyIsICJhZGRyX3NwYWNlIiwgImF0dSI7Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMjA+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTIwIFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQl0aSxzeXNjb24tcGNpZS1tb2RlID0gPCZwY2llMF9tb2RlPjsKIAkJbnVtLWliLXdpbmRvd3MgPSA8MTY+OwogCQludW0tb2Itd2luZG93cyA9IDwxNj47CkBAIC00ODMsNyArNDg5LDcgQEAKIAkJY29tcGF0aWJsZSA9ICJ0aSxhbTY1NC1wY2llLXJjIjsKIAkJcmVnID0gIDwweDAgMHg1NjAwMDAwIDB4MCAweDEwMDA+LCA8MHgwIDB4NTYwMTAwMCAweDAgMHgxMDAwPiwgPDB4MCAweDE4MDAwMDAwIDB4MCAweDIwMDA+LCA8MHgwIDB4NTYwNjAwMCAweDAgMHgxMDAwPjsKIAkJcmVnLW5hbWVzID0gImFwcCIsICJkYmljcyIsICJjb25maWciLCAiYXR1IjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDEyMT47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMjEgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCSNhZGRyZXNzLWNlbGxzID0gPDM+OwogCQkjc2l6ZS1jZWxscyA9IDwyPjsKIAkJcmFuZ2VzID0gPDB4ODEwMDAwMDAgMCAwICAgICAgICAgIDB4MCAgIDB4MTgwMjAwMDAgMCAweDAwMDEwMDAwCkBAIC01MDIsNyArNTA4LDcgQEAKIAkJY29tcGF0aWJsZSA9ICJ0aSxhbTY1NC1wY2llLWVwIjsKIAkJcmVnID0gIDwweDAgMHg1NjAwMDAwIDB4MCAweDEwMDA+LCA8MHgwIDB4NTYwMTAwMCAweDAgMHgxMDAwPiwgPDB4MCAweDE4MDAwMDAwIDB4MCAweDQwMDAwMDA+LCA8MHgwIDB4NTYwNjAwMCAweDAgMHgxMDAwPjsKIAkJcmVnLW5hbWVzID0gImFwcCIsICJkYmljcyIsICJhZGRyX3NwYWNlIiwgImF0dSI7Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMjE+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTIxIFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQl0aSxzeXNjb24tcGNpZS1tb2RlID0gPCZwY2llMV9tb2RlPjsKIAkJbnVtLWliLXdpbmRvd3MgPSA8MTY+OwogCQludW0tb2Itd2luZG93cyA9IDwxNj47CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWFtNjUtbWN1LmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWFtNjUtbWN1LmR0c2kKaW5kZXggYWZjMjllYS4uN2JkZjUzNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1LW1jdS5kdHNpCisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtYW02NS1tY3UuZHRzaQpAQCAtMTQsNyArMTQsNyBAQAogCQkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDU2NSBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJCWNsb2NrLWZyZXF1ZW5jeSA9IDw5NjAwMDAwMD47CiAJCQljdXJyZW50LXNwZWVkID0gPDExNTIwMD47Ci0JCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTQ5PjsKKwkJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNDkgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJfTsKIAogCW1jdV9yYW06IHNyYW1ANDFjMDAwMDAgewpAQCAtMzMsNyArMzMsNyBAQAogCQkjc2l6ZS1jZWxscyA9IDwwPjsKIAkJY2xvY2stbmFtZXMgPSAiZmNrIjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDExNCAxPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDExND47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMTQgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJfTsKIAogCW1jdV9zcGkwOiBzcGlANDAzMDAwMDAgewpAQCAtNDEsNyArNDEsNyBAQAogCQlyZWcgPSA8MHgwIDB4NDAzMDAwMDAgMHgwIDB4NDAwPjsKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDU2MCBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDE0MiAxPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE0Mj47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNDIgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkjc2l6ZS1jZWxscyA9IDwwPjsKIAl9OwpAQCAtNTEsNyArNTEsNyBAQAogCQlyZWcgPSA8MHgwIDB4NDAzMTAwMDAgMHgwIDB4NDAwPjsKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDU2MSBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDE0MyAxPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE0Mz47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNDMgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkjc2l6ZS1jZWxscyA9IDwwPjsKIAl9OwpAQCAtNjEsNyArNjEsNyBAQAogCQlyZWcgPSA8MHgwIDB4NDAzMjAwMDAgMHgwIDB4NDAwPjsKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDU2MiBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDE0NCAxPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE0ND47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNDQgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkjc2l6ZS1jZWxscyA9IDwwPjsKIAl9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1LXdha2V1cC5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1LXdha2V1cC5kdHNpCmluZGV4IDljZjJjMDguLmY0MjI3ZTIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtYW02NS13YWtldXAuZHRzaQorKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWFtNjUtd2FrZXVwLmR0c2kKQEAgLTIwLDcgKzIwLDcgQEAKIAogCQlrM19wZHM6IHBvd2VyLWNvbnRyb2xsZXIgewogCQkJY29tcGF0aWJsZSA9ICJ0aSxzY2ktcG0tZG9tYWluIjsKLQkJCSNwb3dlci1kb21haW4tY2VsbHMgPSA8MT47CisJCQkjcG93ZXItZG9tYWluLWNlbGxzID0gPDI+OwogCQl9OwogCiAJCWszX2Nsa3M6IGNsb2NrcyB7CkBAIC01MCw3ICs1MCw3IEBACiAJCWludGVycnVwdHMgPSA8R0lDX1NQSSA2OTcgSVJRX1RZUEVfTEVWRUxfSElHSD47CiAJCWNsb2NrLWZyZXF1ZW5jeSA9IDw0ODAwMDAwMD47CiAJCWN1cnJlbnQtc3BlZWQgPSA8MTE1MjAwPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE1MD47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNTAgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJfTsKIAogCXdrdXBfaTJjMDogaTJjQDQyMTIwMDAwIHsKQEAgLTYxLDcgKzYxLDcgQEAKIAkJI3NpemUtY2VsbHMgPSA8MD47CiAJCWNsb2NrLW5hbWVzID0gImZjayI7CiAJCWNsb2NrcyA9IDwmazNfY2xrcyAxMTUgMT47Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMTU+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTE1IFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCX07CiAKIAlpbnRyX3drdXBfZ3BpbzogaW50ZXJydXB0LWNvbnRyb2xsZXIyIHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtYW02NS5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1LmR0c2kKaW5kZXggODJlZGYxMC4uNmRmY2NkNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1LmR0c2kKKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1LmR0c2kKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvaXJxLmg+CiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvYXJtLWdpYy5oPgogI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3BpbmN0cmwvazMuaD4KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9zb2MvdGksc2NpX3BtX2RvbWFpbi5oPgogCiAvIHsKIAltb2RlbCA9ICJUZXhhcyBJbnN0cnVtZW50cyBLMyBBTTY1NCBTb0MiOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1NC1iYXNlLWJvYXJkLmR0cyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtYW02NTQtYmFzZS1ib2FyZC5kdHMKaW5kZXggNTJjMjQ1ZC4uMTEwMmI4NCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1hbTY1NC1iYXNlLWJvYXJkLmR0cworKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWFtNjU0LWJhc2UtYm9hcmQuZHRzCkBAIC0xNTEsNiArMTUxLDcgQEAKICZtYWluX3VhcnQwIHsKIAlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwogCXBpbmN0cmwtMCA9IDwmbWFpbl91YXJ0MF9waW5zX2RlZmF1bHQ+OworCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxNDYgVElfU0NJX1BEX1NIQVJFRD47CiB9OwogCiAmd2t1cF9pMmMwIHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtajcyMWUtY29tbW9uLXByb2MtYm9hcmQuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1qNzIxZS1jb21tb24tcHJvYy1ib2FyZC5kdHMKaW5kZXggYzY4MDEyMy4uZDI4OTRkNTUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtajcyMWUtY29tbW9uLXByb2MtYm9hcmQuZHRzCisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtajcyMWUtY29tbW9uLXByb2MtYm9hcmQuZHRzCkBAIC02LDEyICs2LDQ5IEBACiAvZHRzLXYxLzsKIAogI2luY2x1ZGUgImszLWo3MjFlLXNvbS1wMC5kdHNpIgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2dwaW8vZ3Bpby5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2lucHV0L2lucHV0Lmg+CiAKIC8gewogCWNob3NlbiB7CiAJCXN0ZG91dC1wYXRoID0gInNlcmlhbDI6MTE1MjAwbjgiOwogCQlib290YXJncyA9ICJjb25zb2xlPXR0eVMyLDExNTIwMG44IGVhcmx5Y29uPW5zMTY1NTBhLG1taW8zMiwweDAyODAwMDAwIjsKIAl9OworCisJZ3Bpb19rZXlzOiBncGlvLWtleXMgeworCQljb21wYXRpYmxlID0gImdwaW8ta2V5cyI7CisJCWF1dG9yZXBlYXQ7CisJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJCXBpbmN0cmwtMCA9IDwmc3cxMF9idXR0b25fcGluc19kZWZhdWx0ICZzdzExX2J1dHRvbl9waW5zX2RlZmF1bHQ+OworCisJCXN3MTA6IHN3MTAgeworCQkJbGFiZWwgPSAiR1BJTyBLZXkgVVNFUjEiOworCQkJbGludXgsY29kZSA9IDxCVE5fMD47CisJCQlncGlvcyA9IDwmbWFpbl9ncGlvMCAwIEdQSU9fQUNUSVZFX0xPVz47CisJCX07CisKKwkJc3cxMTogc3cxMSB7CisJCQlsYWJlbCA9ICJHUElPIEtleSBVU0VSMiI7CisJCQlsaW51eCxjb2RlID0gPEJUTl8xPjsKKwkJCWdwaW9zID0gPCZ3a3VwX2dwaW8wIDcgR1BJT19BQ1RJVkVfTE9XPjsKKwkJfTsKKwl9OworfTsKKworJm1haW5fcG14MCB7CisJc3cxMF9idXR0b25fcGluc19kZWZhdWx0OiBzdzEwX2J1dHRvbl9waW5zX2RlZmF1bHQgeworCQlwaW5jdHJsLXNpbmdsZSxwaW5zID0gPAorCQkJSjcyMUVfSU9QQUQoMHgwLCBQSU5fSU5QVVQsIDcpIC8qIChBQzE4KSBFWFRJTlRuLkdQSU8wXzAgKi8KKwkJPjsKKwl9OworfTsKKworJndrdXBfcG14MCB7CisJc3cxMV9idXR0b25fcGluc19kZWZhdWx0OiBzdzExX2J1dHRvbl9waW5zX2RlZmF1bHQgeworCQlwaW5jdHJsLXNpbmdsZSxwaW5zID0gPAorCQkJSjcyMUVfV0tVUF9JT1BBRCgweGNjLCBQSU5fSU5QVVQsIDcpIC8qIChHMjgpIFdLVVBfR1BJTzBfNyAqLworCQk+OworCX07CiB9OwogCiAmd2t1cF91YXJ0MCB7CkBAIC0xOSw2ICs1NiwxMCBAQAogCXN0YXR1cyA9ICJkaXNhYmxlZCI7CiB9OwogCismbWFpbl91YXJ0MCB7CisJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE0NiBUSV9TQ0lfUERfU0hBUkVEPjsKK307CisKICZtYWluX3VhcnQzIHsKIAkvKiBVQVJUIG5vdCBicm91Z2h0IG91dCAqLwogCXN0YXR1cyA9ICJkaXNhYmxlZCI7CkBAIC00OCwzICs4OSwzMSBAQAogCS8qIFVBUlQgbm90IGJyb3VnaHQgb3V0ICovCiAJc3RhdHVzID0gImRpc2FibGVkIjsKIH07CisKKyZtYWluX2dwaW8yIHsKKwlzdGF0dXMgPSAiZGlzYWJsZWQiOworfTsKKworJm1haW5fZ3BpbzMgeworCXN0YXR1cyA9ICJkaXNhYmxlZCI7Cit9OworCismbWFpbl9ncGlvNCB7CisJc3RhdHVzID0gImRpc2FibGVkIjsKK307CisKKyZtYWluX2dwaW81IHsKKwlzdGF0dXMgPSAiZGlzYWJsZWQiOworfTsKKworJm1haW5fZ3BpbzYgeworCXN0YXR1cyA9ICJkaXNhYmxlZCI7Cit9OworCismbWFpbl9ncGlvNyB7CisJc3RhdHVzID0gImRpc2FibGVkIjsKK307CisKKyZ3a3VwX2dwaW8xIHsKKwlzdGF0dXMgPSAiZGlzYWJsZWQiOworfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtajcyMWUtbWFpbi5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1qNzIxZS1tYWluLmR0c2kKaW5kZXggYTAxMzA4MS4uNjk4ZWY5YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1qNzIxZS1tYWluLmR0c2kKKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1qNzIxZS1tYWluLmR0c2kKQEAgLTMxLDcgKzMxLDcgQEAKIAkJLyogdmNwdW1udGlycTogdmlydHVhbCBDUFUgaW50ZXJmYWNlIG1haW50ZW5hbmNlIGludGVycnVwdCAqLwogCQlpbnRlcnJ1cHRzID0gPEdJQ19QUEkgOSBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAotCQlnaWNfaXRzOiBnaWMtaXRzQDE4MjAwMDAwIHsKKwkJZ2ljX2l0czogZ2ljLWl0c0AxODIwMDAwIHsKIAkJCWNvbXBhdGlibGUgPSAiYXJtLGdpYy12My1pdHMiOwogCQkJcmVnID0gPDB4MDAgMHgwMTgyMDAwMCAweDAwIDB4MTAwMDA+OwogCQkJc29jaW9uZXh0LHN5bnF1YWNlci1wcmUtaXRzID0gPDB4MTAwMDAwMCAweDQwMDAwMD47CkBAIC04OSw2ICs4OSwxMiBAQAogCQkJdGksc2NpLXJtLXJhbmdlLXZpbnQgPSA8MHhhPjsKIAkJCXRpLHNjaS1ybS1yYW5nZS1nbG9iYWwtZXZlbnQgPSA8MHhkPjsKIAkJfTsKKworCQlod3NwaW5sb2NrOiBzcGlubG9ja0AzMGUwMDAwMCB7CisJCQljb21wYXRpYmxlID0gInRpLGFtNjU0LWh3c3BpbmxvY2siOworCQkJcmVnID0gPDB4MDAgMHgzMGUwMDAwMCAweDAwIDB4MTAwMD47CisJCQkjaHdsb2NrLWNlbGxzID0gPDE+OworCQl9OwogCX07CiAKIAlzZWN1cmVfcHJveHlfbWFpbjogbWFpbGJveEAzMmMwMDAwMCB7CkBAIC0xMTksNyArMTI1LDcgQEAKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDE5MiBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2stZnJlcXVlbmN5ID0gPDQ4MDAwMDAwPjsKIAkJY3VycmVudC1zcGVlZCA9IDwxMTUyMDA+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTQ2PjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE0NiBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDE0NiAwPjsKIAkJY2xvY2stbmFtZXMgPSAiZmNsayI7CiAJfTsKQEAgLTEzMiw3ICsxMzgsNyBAQAogCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTkzIElSUV9UWVBFX0xFVkVMX0hJR0g+OwogCQljbG9jay1mcmVxdWVuY3kgPSA8NDgwMDAwMDA+OwogCQljdXJyZW50LXNwZWVkID0gPDExNTIwMD47Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAyNzg+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMjc4IFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQljbG9ja3MgPSA8JmszX2Nsa3MgMjc4IDA+OwogCQljbG9jay1uYW1lcyA9ICJmY2xrIjsKIAl9OwpAQCAtMTQ1LDcgKzE1MSw3IEBACiAJCWludGVycnVwdHMgPSA8R0lDX1NQSSAxOTQgSVJRX1RZUEVfTEVWRUxfSElHSD47CiAJCWNsb2NrLWZyZXF1ZW5jeSA9IDw0ODAwMDAwMD47CiAJCWN1cnJlbnQtc3BlZWQgPSA8MTE1MjAwPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDI3OT47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAyNzkgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCWNsb2NrcyA9IDwmazNfY2xrcyAyNzkgMD47CiAJCWNsb2NrLW5hbWVzID0gImZjbGsiOwogCX07CkBAIC0xNTgsNyArMTY0LDcgQEAKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDE5NSBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2stZnJlcXVlbmN5ID0gPDQ4MDAwMDAwPjsKIAkJY3VycmVudC1zcGVlZCA9IDwxMTUyMDA+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMjgwPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDI4MCBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDI4MCAwPjsKIAkJY2xvY2stbmFtZXMgPSAiZmNsayI7CiAJfTsKQEAgLTE3MSw3ICsxNzcsNyBAQAogCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTk2IElSUV9UWVBFX0xFVkVMX0hJR0g+OwogCQljbG9jay1mcmVxdWVuY3kgPSA8NDgwMDAwMDA+OwogCQljdXJyZW50LXNwZWVkID0gPDExNTIwMD47Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAyODE+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMjgxIFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQljbG9ja3MgPSA8JmszX2Nsa3MgMjgxIDA+OwogCQljbG9jay1uYW1lcyA9ICJmY2xrIjsKIAl9OwpAQCAtMTg0LDcgKzE5MCw3IEBACiAJCWludGVycnVwdHMgPSA8R0lDX1NQSSAxOTcgSVJRX1RZUEVfTEVWRUxfSElHSD47CiAJCWNsb2NrLWZyZXF1ZW5jeSA9IDw0ODAwMDAwMD47CiAJCWN1cnJlbnQtc3BlZWQgPSA8MTE1MjAwPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDI4Mj47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAyODIgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCWNsb2NrcyA9IDwmazNfY2xrcyAyODIgMD47CiAJCWNsb2NrLW5hbWVzID0gImZjbGsiOwogCX07CkBAIC0xOTcsNyArMjAzLDcgQEAKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDE5OCBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2stZnJlcXVlbmN5ID0gPDQ4MDAwMDAwPjsKIAkJY3VycmVudC1zcGVlZCA9IDwxMTUyMDA+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMjgzPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDI4MyBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDI4MyAwPjsKIAkJY2xvY2stbmFtZXMgPSAiZmNsayI7CiAJfTsKQEAgLTIxMCw3ICsyMTYsNyBAQAogCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTk5IElSUV9UWVBFX0xFVkVMX0hJR0g+OwogCQljbG9jay1mcmVxdWVuY3kgPSA8NDgwMDAwMDA+OwogCQljdXJyZW50LXNwZWVkID0gPDExNTIwMD47Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAyODQ+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMjg0IFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQljbG9ja3MgPSA8JmszX2Nsa3MgMjg0IDA+OwogCQljbG9jay1uYW1lcyA9ICJmY2xrIjsKIAl9OwpAQCAtMjIzLDcgKzIyOSw3IEBACiAJCWludGVycnVwdHMgPSA8R0lDX1NQSSAyNDggSVJRX1RZUEVfTEVWRUxfSElHSD47CiAJCWNsb2NrLWZyZXF1ZW5jeSA9IDw0ODAwMDAwMD47CiAJCWN1cnJlbnQtc3BlZWQgPSA8MTE1MjAwPjsKLQkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDI4NT47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAyODUgVElfU0NJX1BEX0VYQ0xVU0lWRT47CiAJCWNsb2NrcyA9IDwmazNfY2xrcyAyODUgMD47CiAJCWNsb2NrLW5hbWVzID0gImZjbGsiOwogCX07CkBAIC0yMzYsOCArMjQyLDE0MCBAQAogCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMjQ5IElSUV9UWVBFX0xFVkVMX0hJR0g+OwogCQljbG9jay1mcmVxdWVuY3kgPSA8NDgwMDAwMDA+OwogCQljdXJyZW50LXNwZWVkID0gPDExNTIwMD47Ci0JCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAyODY+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMjg2IFRJX1NDSV9QRF9FWENMVVNJVkU+OwogCQljbG9ja3MgPSA8JmszX2Nsa3MgMjg2IDA+OwogCQljbG9jay1uYW1lcyA9ICJmY2xrIjsKIAl9OworCisJbWFpbl9ncGlvMDogZ3Bpb0A2MDAwMDAgeworCQljb21wYXRpYmxlID0gInRpLGo3MjFlLWdwaW8iLCAidGksa2V5c3RvbmUtZ3BpbyI7CisJCXJlZyA9IDwweDAgMHgwMDYwMDAwMCAweDAgMHgxMDA+OworCQlncGlvLWNvbnRyb2xsZXI7CisJCSNncGlvLWNlbGxzID0gPDI+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZtYWluX2dwaW9faW50cj47CisJCWludGVycnVwdHMgPSA8MTA1IDA+LCA8MTA1IDE+LCA8MTA1IDI+LCA8MTA1IDM+LAorCQkJICAgICA8MTA1IDQ+LCA8MTA1IDU+LCA8MTA1IDY+LCA8MTA1IDc+OworCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKKwkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKKwkJdGksbmdwaW8gPSA8MTI4PjsKKwkJdGksZGF2aW5jaS1ncGlvLXVuYmFua2VkID0gPDA+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTA1IFRJX1NDSV9QRF9FWENMVVNJVkU+OworCQljbG9ja3MgPSA8JmszX2Nsa3MgMTA1IDA+OworCQljbG9jay1uYW1lcyA9ICJncGlvIjsKKwl9OworCisJbWFpbl9ncGlvMTogZ3Bpb0A2MDEwMDAgeworCQljb21wYXRpYmxlID0gInRpLGo3MjFlLWdwaW8iLCAidGksa2V5c3RvbmUtZ3BpbyI7CisJCXJlZyA9IDwweDAgMHgwMDYwMTAwMCAweDAgMHgxMDA+OworCQlncGlvLWNvbnRyb2xsZXI7CisJCSNncGlvLWNlbGxzID0gPDI+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZtYWluX2dwaW9faW50cj47CisJCWludGVycnVwdHMgPSA8MTA2IDA+LCA8MTA2IDE+LCA8MTA2IDI+OworCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKKwkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKKwkJdGksbmdwaW8gPSA8MzY+OworCQl0aSxkYXZpbmNpLWdwaW8tdW5iYW5rZWQgPSA8MD47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMDYgVElfU0NJX1BEX0VYQ0xVU0lWRT47CisJCWNsb2NrcyA9IDwmazNfY2xrcyAxMDYgMD47CisJCWNsb2NrLW5hbWVzID0gImdwaW8iOworCX07CisKKwltYWluX2dwaW8yOiBncGlvQDYxMDAwMCB7CisJCWNvbXBhdGlibGUgPSAidGksajcyMWUtZ3BpbyIsICJ0aSxrZXlzdG9uZS1ncGlvIjsKKwkJcmVnID0gPDB4MCAweDAwNjEwMDAwIDB4MCAweDEwMD47CisJCWdwaW8tY29udHJvbGxlcjsKKwkJI2dwaW8tY2VsbHMgPSA8Mj47CisJCWludGVycnVwdC1wYXJlbnQgPSA8Jm1haW5fZ3Bpb19pbnRyPjsKKwkJaW50ZXJydXB0cyA9IDwxMDcgMD4sIDwxMDcgMT4sIDwxMDcgMj4sIDwxMDcgMz4sCisJCQkgICAgIDwxMDcgND4sIDwxMDcgNT4sIDwxMDcgNj4sIDwxMDcgNz47CisJCWludGVycnVwdC1jb250cm9sbGVyOworCQkjaW50ZXJydXB0LWNlbGxzID0gPDI+OworCQl0aSxuZ3BpbyA9IDwxMjg+OworCQl0aSxkYXZpbmNpLWdwaW8tdW5iYW5rZWQgPSA8MD47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMDcgVElfU0NJX1BEX0VYQ0xVU0lWRT47CisJCWNsb2NrcyA9IDwmazNfY2xrcyAxMDcgMD47CisJCWNsb2NrLW5hbWVzID0gImdwaW8iOworCX07CisKKwltYWluX2dwaW8zOiBncGlvQDYxMTAwMCB7CisJCWNvbXBhdGlibGUgPSAidGksajcyMWUtZ3BpbyIsICJ0aSxrZXlzdG9uZS1ncGlvIjsKKwkJcmVnID0gPDB4MCAweDAwNjExMDAwIDB4MCAweDEwMD47CisJCWdwaW8tY29udHJvbGxlcjsKKwkJI2dwaW8tY2VsbHMgPSA8Mj47CisJCWludGVycnVwdC1wYXJlbnQgPSA8Jm1haW5fZ3Bpb19pbnRyPjsKKwkJaW50ZXJydXB0cyA9IDwxMDggMD4sIDwxMDggMT4sIDwxMDggMj47CisJCWludGVycnVwdC1jb250cm9sbGVyOworCQkjaW50ZXJydXB0LWNlbGxzID0gPDI+OworCQl0aSxuZ3BpbyA9IDwzNj47CisJCXRpLGRhdmluY2ktZ3Bpby11bmJhbmtlZCA9IDwwPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDEwOCBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKKwkJY2xvY2tzID0gPCZrM19jbGtzIDEwOCAwPjsKKwkJY2xvY2stbmFtZXMgPSAiZ3BpbyI7CisJfTsKKworCW1haW5fZ3BpbzQ6IGdwaW9ANjIwMDAwIHsKKwkJY29tcGF0aWJsZSA9ICJ0aSxqNzIxZS1ncGlvIiwgInRpLGtleXN0b25lLWdwaW8iOworCQlyZWcgPSA8MHgwIDB4MDA2MjAwMDAgMHgwIDB4MTAwPjsKKwkJZ3Bpby1jb250cm9sbGVyOworCQkjZ3Bpby1jZWxscyA9IDwyPjsKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmbWFpbl9ncGlvX2ludHI+OworCQlpbnRlcnJ1cHRzID0gPDEwOSAwPiwgPDEwOSAxPiwgPDEwOSAyPiwgPDEwOSAzPiwKKwkJCSAgICAgPDEwOSA0PiwgPDEwOSA1PiwgPDEwOSA2PiwgPDEwOSA3PjsKKwkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CisJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47CisJCXRpLG5ncGlvID0gPDEyOD47CisJCXRpLGRhdmluY2ktZ3Bpby11bmJhbmtlZCA9IDwwPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDEwOSBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKKwkJY2xvY2tzID0gPCZrM19jbGtzIDEwOSAwPjsKKwkJY2xvY2stbmFtZXMgPSAiZ3BpbyI7CisJfTsKKworCW1haW5fZ3BpbzU6IGdwaW9ANjIxMDAwIHsKKwkJY29tcGF0aWJsZSA9ICJ0aSxqNzIxZS1ncGlvIiwgInRpLGtleXN0b25lLWdwaW8iOworCQlyZWcgPSA8MHgwIDB4MDA2MjEwMDAgMHgwIDB4MTAwPjsKKwkJZ3Bpby1jb250cm9sbGVyOworCQkjZ3Bpby1jZWxscyA9IDwyPjsKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmbWFpbl9ncGlvX2ludHI+OworCQlpbnRlcnJ1cHRzID0gPDExMCAwPiwgPDExMCAxPiwgPDExMCAyPjsKKwkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CisJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47CisJCXRpLG5ncGlvID0gPDM2PjsKKwkJdGksZGF2aW5jaS1ncGlvLXVuYmFua2VkID0gPDA+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTEwIFRJX1NDSV9QRF9FWENMVVNJVkU+OworCQljbG9ja3MgPSA8JmszX2Nsa3MgMTEwIDA+OworCQljbG9jay1uYW1lcyA9ICJncGlvIjsKKwl9OworCisJbWFpbl9ncGlvNjogZ3Bpb0A2MzAwMDAgeworCQljb21wYXRpYmxlID0gInRpLGo3MjFlLWdwaW8iLCAidGksa2V5c3RvbmUtZ3BpbyI7CisJCXJlZyA9IDwweDAgMHgwMDYzMDAwMCAweDAgMHgxMDA+OworCQlncGlvLWNvbnRyb2xsZXI7CisJCSNncGlvLWNlbGxzID0gPDI+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZtYWluX2dwaW9faW50cj47CisJCWludGVycnVwdHMgPSA8MTExIDA+LCA8MTExIDE+LCA8MTExIDI+LCA8MTExIDM+LAorCQkJICAgICA8MTExIDQ+LCA8MTExIDU+LCA8MTExIDY+LCA8MTExIDc+OworCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKKwkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKKwkJdGksbmdwaW8gPSA8MTI4PjsKKwkJdGksZGF2aW5jaS1ncGlvLXVuYmFua2VkID0gPDA+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTExIFRJX1NDSV9QRF9FWENMVVNJVkU+OworCQljbG9ja3MgPSA8JmszX2Nsa3MgMTExIDA+OworCQljbG9jay1uYW1lcyA9ICJncGlvIjsKKwl9OworCisJbWFpbl9ncGlvNzogZ3Bpb0A2MzEwMDAgeworCQljb21wYXRpYmxlID0gInRpLGo3MjFlLWdwaW8iLCAidGksa2V5c3RvbmUtZ3BpbyI7CisJCXJlZyA9IDwweDAgMHgwMDYzMTAwMCAweDAgMHgxMDA+OworCQlncGlvLWNvbnRyb2xsZXI7CisJCSNncGlvLWNlbGxzID0gPDI+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZtYWluX2dwaW9faW50cj47CisJCWludGVycnVwdHMgPSA8MTEyIDA+LCA8MTEyIDE+LCA8MTEyIDI+OworCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKKwkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKKwkJdGksbmdwaW8gPSA8MzY+OworCQl0aSxkYXZpbmNpLWdwaW8tdW5iYW5rZWQgPSA8MD47CisJCXBvd2VyLWRvbWFpbnMgPSA8JmszX3BkcyAxMTIgVElfU0NJX1BEX0VYQ0xVU0lWRT47CisJCWNsb2NrcyA9IDwmazNfY2xrcyAxMTIgMD47CisJCWNsb2NrLW5hbWVzID0gImdwaW8iOworCX07CiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1qNzIxZS1tY3Utd2FrZXVwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWo3MjFlLW1jdS13YWtldXAuZHRzaQppbmRleCAwN2I1OGVlLi41NTVkYzdiIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWo3MjFlLW1jdS13YWtldXAuZHRzaQorKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWo3MjFlLW1jdS13YWtldXAuZHRzaQpAQCAtMjAsNyArMjAsNyBAQAogCiAJCWszX3BkczogcG93ZXItY29udHJvbGxlciB7CiAJCQljb21wYXRpYmxlID0gInRpLHNjaS1wbS1kb21haW4iOwotCQkJI3Bvd2VyLWRvbWFpbi1jZWxscyA9IDwxPjsKKwkJCSNwb3dlci1kb21haW4tY2VsbHMgPSA8Mj47CiAJCX07CiAKIAkJazNfY2xrczogY2xvY2tzIHsKQEAgLTU5LDcgKzU5LDcgQEAKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDg5NyBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2stZnJlcXVlbmN5ID0gPDQ4MDAwMDAwPjsKIAkJY3VycmVudC1zcGVlZCA9IDwxMTUyMDA+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMjg3PjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDI4NyBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDI4NyAwPjsKIAkJY2xvY2stbmFtZXMgPSAiZmNsayI7CiAJfTsKQEAgLTcyLDcgKzcyLDcgQEAKIAkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIDg0NiBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKIAkJY2xvY2stZnJlcXVlbmN5ID0gPDk2MDAwMDAwPjsKIAkJY3VycmVudC1zcGVlZCA9IDwxMTUyMDA+OwotCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTQ5PjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDE0OSBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKIAkJY2xvY2tzID0gPCZrM19jbGtzIDE0OSAwPjsKIAkJY2xvY2stbmFtZXMgPSAiZmNsayI7CiAJfTsKQEAgLTg3LDQgKzg3LDM4IEBACiAJCXRpLHNjaS1kc3QtaWQgPSA8MTQ+OwogCQl0aSxzY2ktcm0tcmFuZ2UtZ2lycSA9IDwweDU+OwogCX07CisKKwl3a3VwX2dwaW8wOiBncGlvQDQyMTEwMDAwIHsKKwkJY29tcGF0aWJsZSA9ICJ0aSxqNzIxZS1ncGlvIiwgInRpLGtleXN0b25lLWdwaW8iOworCQlyZWcgPSA8MHgwIDB4NDIxMTAwMDAgMHgwIDB4MTAwPjsKKwkJZ3Bpby1jb250cm9sbGVyOworCQkjZ3Bpby1jZWxscyA9IDwyPjsKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmd2t1cF9ncGlvX2ludHI+OworCQlpbnRlcnJ1cHRzID0gPDExMyAwPiwgPDExMyAxPiwgPDExMyAyPiwKKwkJCSAgICAgPDExMyAzPiwgPDExMyA0PiwgPDExMyA1PjsKKwkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CisJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47CisJCXRpLG5ncGlvID0gPDg0PjsKKwkJdGksZGF2aW5jaS1ncGlvLXVuYmFua2VkID0gPDA+OworCQlwb3dlci1kb21haW5zID0gPCZrM19wZHMgMTEzIFRJX1NDSV9QRF9FWENMVVNJVkU+OworCQljbG9ja3MgPSA8JmszX2Nsa3MgMTEzIDA+OworCQljbG9jay1uYW1lcyA9ICJncGlvIjsKKwl9OworCisJd2t1cF9ncGlvMTogZ3Bpb0A0MjEwMDAwMCB7CisJCWNvbXBhdGlibGUgPSAidGksajcyMWUtZ3BpbyIsICJ0aSxrZXlzdG9uZS1ncGlvIjsKKwkJcmVnID0gPDB4MCAweDQyMTAwMDAwIDB4MCAweDEwMD47CisJCWdwaW8tY29udHJvbGxlcjsKKwkJI2dwaW8tY2VsbHMgPSA8Mj47CisJCWludGVycnVwdC1wYXJlbnQgPSA8JndrdXBfZ3Bpb19pbnRyPjsKKwkJaW50ZXJydXB0cyA9IDwxMTQgMD4sIDwxMTQgMT4sIDwxMTQgMj4sCisJCQkgICAgIDwxMTQgMz4sIDwxMTQgND4sIDwxMTQgNT47CisJCWludGVycnVwdC1jb250cm9sbGVyOworCQkjaW50ZXJydXB0LWNlbGxzID0gPDI+OworCQl0aSxuZ3BpbyA9IDw4ND47CisJCXRpLGRhdmluY2ktZ3Bpby11bmJhbmtlZCA9IDwwPjsKKwkJcG93ZXItZG9tYWlucyA9IDwmazNfcGRzIDExNCBUSV9TQ0lfUERfRVhDTFVTSVZFPjsKKwkJY2xvY2tzID0gPCZrM19jbGtzIDExNCAwPjsKKwkJY2xvY2stbmFtZXMgPSAiZ3BpbyI7CisJfTsKIH07CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWo3MjFlLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3RpL2szLWo3MjFlLmR0c2kKaW5kZXggZjhkZDc0Yi4uNDNlYTFiYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy90aS9rMy1qNzIxZS5kdHNpCisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvdGkvazMtajcyMWUuZHRzaQpAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9pcnEuaD4KICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hcm0tZ2ljLmg+CiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcGluY3RybC9rMy5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3NvYy90aSxzY2lfcG1fZG9tYWluLmg+CiAKIC8gewogCW1vZGVsID0gIlRleGFzIEluc3RydW1lbnRzIEszIEo3MjFFIFNvQyI7CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL0tidWlsZCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vS2J1aWxkCmluZGV4IGM1MmUxNTFhLi45OGE1NDA1IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL0tidWlsZAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL0tidWlsZApAQCAtNCw2ICs0LDcgQEAKIGdlbmVyaWMteSArPSBkaXY2NC5oCiBnZW5lcmljLXkgKz0gZG1hLmgKIGdlbmVyaWMteSArPSBkbWEtY29udGlndW91cy5oCitnZW5lcmljLXkgKz0gZG1hLW1hcHBpbmcuaAogZ2VuZXJpYy15ICs9IGVhcmx5X2lvcmVtYXAuaAogZ2VuZXJpYy15ICs9IGVtZXJnZW5jeS1yZXN0YXJ0LmgKIGdlbmVyaWMteSArPSBod19pcnEuaApkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9jbXB4Y2hnLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2NtcHhjaGcuaAppbmRleCBhMTM5OGYyLi5mOWJlZjQyIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2NtcHhjaGcuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2NtcHhjaGcuaApAQCAtNjIsNyArNjIsNyBAQCBfX1hDSEdfQ0FTRSggLCAgLCAgbWJfLCA2NCwgZG1iIGlzaCwgbm9wLCAgLCBhLCBsLCAibWVtb3J5IikKICN1bmRlZiBfX1hDSEdfQ0FTRQogCiAjZGVmaW5lIF9fWENIR19HRU4oc2Z4KQkJCQkJCQlcCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX194Y2hnIyNzZngodW5zaWduZWQgbG9uZyB4LAkJXAorc3RhdGljIF9fYWx3YXlzX2lubGluZSAgdW5zaWduZWQgbG9uZyBfX3hjaGcjI3NmeCh1bnNpZ25lZCBsb25nIHgsCVwKIAkJCQkJdm9sYXRpbGUgdm9pZCAqcHRyLAkJXAogCQkJCQlpbnQgc2l6ZSkJCQlcCiB7CQkJCQkJCQkJXApAQCAtMTQ4LDcgKzE0OCw3IEBAIF9fQ01QWENIR19EQkwoX21iKQogI3VuZGVmIF9fQ01QWENIR19EQkwKIAogI2RlZmluZSBfX0NNUFhDSEdfR0VOKHNmeCkJCQkJCQlcCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19jbXB4Y2hnIyNzZngodm9sYXRpbGUgdm9pZCAqcHRyLAkJXAorc3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBsb25nIF9fY21weGNoZyMjc2Z4KHZvbGF0aWxlIHZvaWQgKnB0ciwJXAogCQkJCQkgICB1bnNpZ25lZCBsb25nIG9sZCwJCVwKIAkJCQkJICAgdW5zaWduZWQgbG9uZyBuZXcsCQlcCiAJCQkJCSAgIGludCBzaXplKQkJCVwKQEAgLTI1NSw3ICsyNTUsNyBAQCBfX0NNUFdBSVRfQ0FTRSggLCAgLCA2NCk7CiAjdW5kZWYgX19DTVBXQUlUX0NBU0UKIAogI2RlZmluZSBfX0NNUFdBSVRfR0VOKHNmeCkJCQkJCQlcCi1zdGF0aWMgaW5saW5lIHZvaWQgX19jbXB3YWl0IyNzZngodm9sYXRpbGUgdm9pZCAqcHRyLAkJCVwKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBfX2NtcHdhaXQjI3NmeCh2b2xhdGlsZSB2b2lkICpwdHIsCQlcCiAJCQkJICB1bnNpZ25lZCBsb25nIHZhbCwJCQlcCiAJCQkJICBpbnQgc2l6ZSkJCQkJXAogewkJCQkJCQkJCVwKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmIzZTUwNC4uMDAwMDAwMAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2RtYS1tYXBwaW5nLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFSTSBMdGQuCi0gKi8KLSNpZm5kZWYgX19BU01fRE1BX01BUFBJTkdfSAotI2RlZmluZSBfX0FTTV9ETUFfTUFQUElOR19ICi0KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KLQotI2luY2x1ZGUgPHhlbi94ZW4uaD4KLSNpbmNsdWRlIDxhc20veGVuL2h5cGVydmlzb3IuaD4KLQotc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgKmdldF9hcmNoX2RtYV9vcHMoc3RydWN0IGJ1c190eXBlICpidXMpCi17Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KLS8qCi0gKiBEbyBub3QgdXNlIHRoaXMgZnVuY3Rpb24gaW4gYSBkcml2ZXIsIGl0IGlzIG9ubHkgcHJvdmlkZWQgZm9yCi0gKiBhcmNoL2FybS9tbS94ZW4uYywgd2hpY2ggaXMgdXNlZCBieSBhcm02NCBhcyB3ZWxsLgotICovCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNfZGV2aWNlX2RtYV9jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0JcmV0dXJuIGRldi0+ZG1hX2NvaGVyZW50OwotfQotCi0jZW5kaWYJLyogX19BU01fRE1BX01BUFBJTkdfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9mdHJhY2UuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZnRyYWNlLmgKaW5kZXggNWFiNTIwMC4uZDQ4NjY3YiAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9mdHJhY2UuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Z0cmFjZS5oCkBAIC0xNCw2ICsxNCwxOSBAQAogI2RlZmluZSBNQ09VTlRfQUREUgkJKCh1bnNpZ25lZCBsb25nKV9tY291bnQpCiAjZGVmaW5lIE1DT1VOVF9JTlNOX1NJWkUJQUFSQ0g2NF9JTlNOX1NJWkUKIAorLyoKKyAqIEN1cnJlbnRseSwgZ2NjIHRlbmRzIHRvIHNhdmUgdGhlIGxpbmsgcmVnaXN0ZXIgYWZ0ZXIgdGhlIGxvY2FsIHZhcmlhYmxlcworICogb24gdGhlIHN0YWNrLiBUaGlzIGNhdXNlcyB0aGUgbWF4IHN0YWNrIHRyYWNlciB0byByZXBvcnQgdGhlIGZ1bmN0aW9uCisgKiBmcmFtZSBzaXplcyBmb3IgdGhlIHdyb25nIGZ1bmN0aW9ucy4gQnkgZGVmaW5pbmcKKyAqIEFSQ0hfRlRSQUNFX1NISUZUX1NUQUNLX1RSQUNFUiwgaXQgd2lsbCB0ZWxsIHRoZSBzdGFjayB0cmFjZXIgdG8gZXhwZWN0CisgKiB0byBmaW5kIHRoZSByZXR1cm4gYWRkcmVzcyBvbiB0aGUgc3RhY2sgYWZ0ZXIgdGhlIGxvY2FsIHZhcmlhYmxlcyBoYXZlCisgKiBiZWVuIHNldCB1cC4KKyAqCisgKiBOb3RlLCB0aGlzIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSwgYW5kIHdlIHdpbGwgbmVlZCB0byBkZWFsIHdpdGggdGhhdAorICogaWYgaXQgd2VyZSB0byBoYXBwZW4uCisgKi8KKyNkZWZpbmUgQVJDSF9GVFJBQ0VfU0hJRlRfU1RBQ0tfVFJBQ0VSIDEKKwogI2lmbmRlZiBfX0FTU0VNQkxZX18KICNpbmNsdWRlIDxsaW51eC9jb21wYXQuaD4KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9wZ2FsbG9jLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BnYWxsb2MuaAppbmRleCAxNGQwYmM0Li4xNzJkNzZmIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BnYWxsb2MuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BnYWxsb2MuaApAQCAtMTUsOCArMTUsNiBAQAogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGdhbGxvYy5oPgkvKiBmb3IgcHRlX3thbGxvYyxmcmVlfV9vbmUgKi8KIAotI2RlZmluZSBjaGVja19wZ3RfY2FjaGUoKQkJZG8geyB9IHdoaWxlICgwKQotCiAjZGVmaW5lIFBHRF9TSVpFCShQVFJTX1BFUl9QR0QgKiBzaXplb2YocGdkX3QpKQogCiAjaWYgQ09ORklHX1BHVEFCTEVfTEVWRUxTID4gMgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaAppbmRleCA0NzBiYTdhLi43NTc2ZGYwIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaApAQCAtNDM3LDYgKzQzNywxOCBAQCBzdGF0aWMgaW5saW5lIHBtZF90IHBtZF9ta2Rldm1hcChwbWRfdCBwbWQpCiAJX19wZ3Byb3RfbW9kaWZ5KHByb3QsIFBURV9BVFRSSU5EWF9NQVNLLCBQVEVfQVRUUklORFgoTVRfTk9STUFMX05DKSB8IFBURV9QWE4gfCBQVEVfVVhOKQogI2RlZmluZSBwZ3Byb3RfZGV2aWNlKHByb3QpIFwKIAlfX3BncHJvdF9tb2RpZnkocHJvdCwgUFRFX0FUVFJJTkRYX01BU0ssIFBURV9BVFRSSU5EWChNVF9ERVZJQ0VfbkduUkUpIHwgUFRFX1BYTiB8IFBURV9VWE4pCisvKgorICogRE1BIGFsbG9jYXRpb25zIGZvciBub24tY29oZXJlbnQgZGV2aWNlcyB1c2Ugd2hhdCB0aGUgQXJtIGFyY2hpdGVjdHVyZSBjYWxscworICogIk5vcm1hbCBub24tY2FjaGVhYmxlIiBtZW1vcnksIHdoaWNoIHBlcm1pdHMgc3BlY3VsYXRpb24sIHVuYWxpZ25lZCBhY2Nlc3NlcworICogYW5kIG1lcmdpbmcgb2Ygd3JpdGVzLiAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSAiRGV2aWNlLW5HblJbbkVdIiBtZW1vcnkgd2hpY2gKKyAqIGlzIGludGVuZGVkIGZvciBNTUlPIGFuZCB0aHVzIGZvcmJpZHMgc3BlY3VsYXRpb24sIHByZXNlcnZlcyBhY2Nlc3Mgc2l6ZSwKKyAqIHJlcXVpcmVzIHN0cmljdCBhbGlnbm1lbnQgYW5kIGNhbiBhbHNvIGZvcmNlIHdyaXRlIHJlc3BvbnNlcyB0byBjb21lIGZyb20gdGhlCisgKiBlbmRwb2ludC4KKyAqLworI2RlZmluZSBwZ3Byb3RfZG1hY29oZXJlbnQocHJvdCkgXAorCV9fcGdwcm90X21vZGlmeShwcm90LCBQVEVfQVRUUklORFhfTUFTSywgXAorCQkJUFRFX0FUVFJJTkRYKE1UX05PUk1BTF9OQykgfCBQVEVfUFhOIHwgUFRFX1VYTikKKwogI2RlZmluZSBfX0hBVkVfUEhZU19NRU1fQUNDRVNTX1BST1QKIHN0cnVjdCBmaWxlOwogZXh0ZXJuIHBncHJvdF90IHBoeXNfbWVtX2FjY2Vzc19wcm90KHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBsb25nIHBmbiwKQEAgLTg0OSw4ICs4NjEsNiBAQCBleHRlcm4gaW50IGtlcm5fYWRkcl92YWxpZCh1bnNpZ25lZCBsb25nIGFkZHIpOwogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGd0YWJsZS5oPgogCi1zdGF0aWMgaW5saW5lIHZvaWQgcGd0YWJsZV9jYWNoZV9pbml0KHZvaWQpIHsgfQotCiAvKgogICogT24gQUFyY2g2NCwgdGhlIGNhY2hlIGNvaGVyZW5jeSBpcyBoYW5kbGVkIHZpYSB0aGUgc2V0X3B0ZV9hdCgpIGZ1bmN0aW9uLgogICovCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAppbmRleCBjNjc4NDhjLi41NjIzNjg1IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKQEAgLTI4MCw4ICsyODAsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3Bpbl9sb2NrX3ByZWZldGNoKGNvbnN0IHZvaWQgKnB0cikKIAkJICAgICAibm9wIikgOiA6ICJwIiAocHRyKSk7CiB9CiAKLSNkZWZpbmUgSEFWRV9BUkNIX1BJQ0tfTU1BUF9MQVlPVVQKLQogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19yb19hZnRlcl9pbml0IHNpZ25hbF9taW5zaWdzdGtzejsgLyogc2lnZnJhbWUgc2l6ZSAqLwogZXh0ZXJuIHZvaWQgX19pbml0IG1pbnNpZ3N0a3N6X3NldHVwKHZvaWQpOwogCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9zeXNjYWxsX3dyYXBwZXIuaAppbmRleCA1MDdkMGVlLi4wNmQ4ODBiIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5oCisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vc3lzY2FsbF93cmFwcGVyLmgKQEAgLTgsNiArOCw4IEBACiAjaWZuZGVmIF9fQVNNX1NZU0NBTExfV1JBUFBFUl9ICiAjZGVmaW5lIF9fQVNNX1NZU0NBTExfV1JBUFBFUl9ICiAKK3N0cnVjdCBwdF9yZWdzOworCiAjZGVmaW5lIFNDX0FSTTY0X1JFR1NfVE9fQVJHUyh4LCAuLi4pCQkJCVwKIAlfX01BUCh4LF9fU0NfQVJHUwkJCQkJXAogCSAgICAgICwscmVncy0+cmVnc1swXSwscmVncy0+cmVnc1sxXSwscmVncy0+cmVnc1syXQlcCkBAIC0zNSw4ICszNywxMSBAQAogCUFMTE9XX0VSUk9SX0lOSkVDVElPTihfX2FybTY0X2NvbXBhdF9zeXNfIyNzbmFtZSwgRVJSTk8pOwkJCVwKIAlhc21saW5rYWdlIGxvbmcgX19hcm02NF9jb21wYXRfc3lzXyMjc25hbWUoY29uc3Qgc3RydWN0IHB0X3JlZ3MgKl9fdW51c2VkKQogCi0jZGVmaW5lIENPTkRfU1lTQ0FMTF9DT01QQVQobmFtZSkgXAotCWNvbmRfc3lzY2FsbChfX2FybTY0X2NvbXBhdF9zeXNfIyNuYW1lKTsKKyNkZWZpbmUgQ09ORF9TWVNDQUxMX0NPTVBBVChuYW1lKSAJCQkJCQkJXAorCWFzbWxpbmthZ2UgbG9uZyBfX3dlYWsgX19hcm02NF9jb21wYXRfc3lzXyMjbmFtZShjb25zdCBzdHJ1Y3QgcHRfcmVncyAqcmVncykJXAorCXsJCQkJCQkJCQkJXAorCQlyZXR1cm4gc3lzX25pX3N5c2NhbGwoKTsJCQkJCQlcCisJfQogCiAjZGVmaW5lIENPTVBBVF9TWVNfTkkobmFtZSkgXAogCVNZU0NBTExfQUxJQVMoX19hcm02NF9jb21wYXRfc3lzXyMjbmFtZSwgc3lzX25pX3Bvc2l4X3RpbWVycyk7CkBAIC03MCw3ICs3NSwxMSBAQAogI2VuZGlmCiAKICNpZm5kZWYgQ09ORF9TWVNDQUxMCi0jZGVmaW5lIENPTkRfU1lTQ0FMTChuYW1lKSBjb25kX3N5c2NhbGwoX19hcm02NF9zeXNfIyNuYW1lKQorI2RlZmluZSBDT05EX1NZU0NBTEwobmFtZSkJCQkJCQkJXAorCWFzbWxpbmthZ2UgbG9uZyBfX3dlYWsgX19hcm02NF9zeXNfIyNuYW1lKGNvbnN0IHN0cnVjdCBwdF9yZWdzICpyZWdzKQlcCisJewkJCQkJCQkJCVwKKwkJcmV0dXJuIHN5c19uaV9zeXNjYWxsKCk7CQkJCQlcCisJfQogI2VuZGlmCiAKICNpZm5kZWYgU1lTX05JCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3RsYi5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS90bGIuaAppbmRleCBhOTVkMWZjLi5iNzZkZjgyIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3RsYi5oCisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vdGxiLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHRsYl9mbHVzaChzdHJ1Y3QgbW11X2dhdGhlciAqdGxiKQogc3RhdGljIGlubGluZSB2b2lkIF9fcHRlX2ZyZWVfdGxiKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsIHBndGFibGVfdCBwdGUsCiAJCQkJICB1bnNpZ25lZCBsb25nIGFkZHIpCiB7Ci0JcGd0YWJsZV9wYWdlX2R0b3IocHRlKTsKKwlwZ3RhYmxlX3B0ZV9wYWdlX2R0b3IocHRlKTsKIAl0bGJfcmVtb3ZlX3RhYmxlKHRsYiwgcHRlKTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oCmluZGV4IGQ4OGU1NmIuLjI3ZTk4NDkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3hlbi9wYWdlLWNvaGVyZW50LmgKQEAgLTEsNzcgKzEsMiBAQAogLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KLSNpZm5kZWYgX0FTTV9BUk02NF9YRU5fUEFHRV9DT0hFUkVOVF9ICi0jZGVmaW5lIF9BU01fQVJNNjRfWEVOX1BBR0VfQ09IRVJFTlRfSAotCi0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPHhlbi9hcm0vcGFnZS1jb2hlcmVudC5oPgotCi1zdGF0aWMgaW5saW5lIHZvaWQgKnhlbl9hbGxvY19jb2hlcmVudF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc2l6ZV90IHNpemUsCi0JCWRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsIGdmcF90IGZsYWdzLCB1bnNpZ25lZCBsb25nIGF0dHJzKQotewotCXJldHVybiBkbWFfZGlyZWN0X2FsbG9jKGh3ZGV2LCBzaXplLCBkbWFfaGFuZGxlLCBmbGFncywgYXR0cnMpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgeGVuX2ZyZWVfY29oZXJlbnRfcGFnZXMoc3RydWN0IGRldmljZSAqaHdkZXYsIHNpemVfdCBzaXplLAotCQl2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlLCB1bnNpZ25lZCBsb25nIGF0dHJzKQotewotCWRtYV9kaXJlY3RfZnJlZShod2Rldiwgc2l6ZSwgY3B1X2FkZHIsIGRtYV9oYW5kbGUsIGF0dHJzKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShzdHJ1Y3QgZGV2aWNlICpod2RldiwKLQkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCi17Ci0JdW5zaWduZWQgbG9uZyBwZm4gPSBQRk5fRE9XTihoYW5kbGUpOwotCi0JaWYgKHBmbl92YWxpZChwZm4pKQotCQlkbWFfZGlyZWN0X3N5bmNfc2luZ2xlX2Zvcl9jcHUoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKLQllbHNlCi0JCV9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpcik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqaHdkZXYsCi0JCWRtYV9hZGRyX3QgaGFuZGxlLCBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQotewotCXVuc2lnbmVkIGxvbmcgcGZuID0gUEZOX0RPV04oaGFuZGxlKTsKLQlpZiAocGZuX3ZhbGlkKHBmbikpCi0JCWRtYV9kaXJlY3Rfc3luY19zaW5nbGVfZm9yX2RldmljZShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIpOwotCWVsc2UKLQkJX194ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAotCSAgICAgZG1hX2FkZHJfdCBkZXZfYWRkciwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLAotCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQotewotCXVuc2lnbmVkIGxvbmcgcGFnZV9wZm4gPSBwYWdlX3RvX3hlbl9wZm4ocGFnZSk7Ci0JdW5zaWduZWQgbG9uZyBkZXZfcGZuID0gWEVOX1BGTl9ET1dOKGRldl9hZGRyKTsKLQl1bnNpZ25lZCBsb25nIGNvbXBvdW5kX3BhZ2VzID0KLQkJKDE8PGNvbXBvdW5kX29yZGVyKHBhZ2UpKSAqIFhFTl9QRk5fUEVSX1BBR0U7Ci0JYm9vbCBsb2NhbCA9IChwYWdlX3BmbiA8PSBkZXZfcGZuKSAmJgotCQkoZGV2X3BmbiAtIHBhZ2VfcGZuIDwgY29tcG91bmRfcGFnZXMpOwotCi0JaWYgKGxvY2FsKQotCQlkbWFfZGlyZWN0X21hcF9wYWdlKGh3ZGV2LCBwYWdlLCBvZmZzZXQsIHNpemUsIGRpciwgYXR0cnMpOwotCWVsc2UKLQkJX194ZW5fZG1hX21hcF9wYWdlKGh3ZGV2LCBwYWdlLCBkZXZfYWRkciwgb2Zmc2V0LCBzaXplLCBkaXIsIGF0dHJzKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2RldiwgZG1hX2FkZHJfdCBoYW5kbGUsCi0JCXNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCi17Ci0JdW5zaWduZWQgbG9uZyBwZm4gPSBQRk5fRE9XTihoYW5kbGUpOwotCS8qCi0JICogRG9tMCBpcyBtYXBwZWQgMToxLCB3aGlsZSB0aGUgTGludXggcGFnZSBjYW4gYmUgc3Bhbm5lZCBhY2Nyb3NzCi0JICogbXVsdGlwbGUgWGVuIHBhZ2UsIGl0J3Mgbm90IHBvc3NpYmxlIHRvIGhhdmUgYSBtaXggb2YgbG9jYWwgYW5kCi0JICogZm9yZWlnbiBYZW4gcGFnZS4gRG9tMCBpcyBtYXBwZWQgMToxLCBzbyBjYWxsaW5nIHBmbl92YWxpZCBvbiBhCi0JICogZm9yZWlnbiBtZm4gd2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlLiBJZiB0aGUgcGFnZSBpcyBsb2NhbCB3ZSBjYW4KLQkgKiBzYWZlbHkgY2FsbCB0aGUgbmF0aXZlIGRtYV9vcHMgZnVuY3Rpb24sIG90aGVyd2lzZSB3ZSBjYWxsIHRoZSB4ZW4KLQkgKiBzcGVjaWZpYyBmdW5jdGlvbi4KLQkgKi8KLQlpZiAocGZuX3ZhbGlkKHBmbikpCi0JCWRtYV9kaXJlY3RfdW5tYXBfcGFnZShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIsIGF0dHJzKTsKLQllbHNlCi0JCV9feGVuX2RtYV91bm1hcF9wYWdlKGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpciwgYXR0cnMpOwotfQotCi0jZW5kaWYgLyogX0FTTV9BUk02NF9YRU5fUEFHRV9DT0hFUkVOVF9IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL2FybTY0L2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggMDM2ODljMC4uYTQ3NDYyZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gvYXJtNjQva2VybmVsL3Byb2Nlc3MuYwpAQCAtNTU3LDE0ICs1NTcsNiBAQCB1bnNpZ25lZCBsb25nIGFyY2hfYWxpZ25fc3RhY2sodW5zaWduZWQgbG9uZyBzcCkKIAlyZXR1cm4gc3AgJiB+MHhmOwogfQogCi11bnNpZ25lZCBsb25nIGFyY2hfcmFuZG9taXplX2JyayhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKLXsKLQlpZiAoaXNfY29tcGF0X3Rhc2soKSkKLQkJcmV0dXJuIHJhbmRvbWl6ZV9wYWdlKG1tLT5icmssIFNaXzMyTSk7Ci0JZWxzZQotCQlyZXR1cm4gcmFuZG9taXplX3BhZ2UobW0tPmJyaywgU1pfMUcpOwotfQotCiAvKgogICogQ2FsbGVkIGZyb20gc2V0dXBfbmV3X2V4ZWMoKSBhZnRlciAoQ09NUEFUXylTRVRfUEVSU09OQUxJVFkuCiAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvbW0vZG1hLW1hcHBpbmcuYyBiL2FyY2gvYXJtNjQvbW0vZG1hLW1hcHBpbmcuYwppbmRleCBiZDJiMDM5Li45MjM5NDE2IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L21tL2RtYS1tYXBwaW5nLmMKKysrIGIvYXJjaC9hcm02NC9tbS9kbWEtbWFwcGluZy5jCkBAIC04LDE1ICs4LDExIEBACiAjaW5jbHVkZSA8bGludXgvY2FjaGUuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbm9uY29oZXJlbnQuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtaW9tbXUuaD4KKyNpbmNsdWRlIDx4ZW4veGVuLmg+CisjaW5jbHVkZSA8eGVuL3N3aW90bGIteGVuLmg+CiAKICNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgogCi1wZ3Byb3RfdCBhcmNoX2RtYV9tbWFwX3BncHJvdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHBncHJvdF90IHByb3QsCi0JCXVuc2lnbmVkIGxvbmcgYXR0cnMpCi17Ci0JcmV0dXJuIHBncHJvdF93cml0ZWNvbWJpbmUocHJvdCk7Ci19Ci0KIHZvaWQgYXJjaF9zeW5jX2RtYV9mb3JfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgcGh5c19hZGRyX3QgcGFkZHIsCiAJCXNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCiB7CkBAIC0zNCwxMiArMzAsNiBAQCB2b2lkIGFyY2hfZG1hX3ByZXBfY29oZXJlbnQoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBzaXplKQogCV9fZG1hX2ZsdXNoX2FyZWEocGFnZV9hZGRyZXNzKHBhZ2UpLCBzaXplKTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgYXJtNjRfZG1hX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZG1hX2F0b21pY19wb29sX2luaXQoR0ZQX0RNQTMyLCBfX3BncHJvdChQUk9UX05PUk1BTF9OQykpOwotfQotYXJjaF9pbml0Y2FsbChhcm02NF9kbWFfaW5pdCk7Ci0KICNpZmRlZiBDT05GSUdfSU9NTVVfRE1BCiB2b2lkIGFyY2hfdGVhcmRvd25fZG1hX29wcyhzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CkBAIC02NCw2ICs1NCw2IEBAIHZvaWQgYXJjaF9zZXR1cF9kbWFfb3BzKHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IGRtYV9iYXNlLCB1NjQgc2l6ZSwKIAogI2lmZGVmIENPTkZJR19YRU4KIAlpZiAoeGVuX2luaXRpYWxfZG9tYWluKCkpCi0JCWRldi0+ZG1hX29wcyA9IHhlbl9kbWFfb3BzOworCQlkZXYtPmRtYV9vcHMgPSAmeGVuX3N3aW90bGJfZG1hX29wczsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9tbS9mbHVzaC5jIGIvYXJjaC9hcm02NC9tbS9mbHVzaC5jCmluZGV4IGRjMTkzMDAuLmFjNDg1MTYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvbW0vZmx1c2guYworKysgYi9hcmNoL2FybTY0L21tL2ZsdXNoLmMKQEAgLTU2LDggKzU2LDcgQEAgdm9pZCBfX3N5bmNfaWNhY2hlX2RjYWNoZShwdGVfdCBwdGUpCiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSBwdGVfcGFnZShwdGUpOwogCiAJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KFBHX2RjYWNoZV9jbGVhbiwgJnBhZ2UtPmZsYWdzKSkKLQkJc3luY19pY2FjaGVfYWxpYXNlcyhwYWdlX2FkZHJlc3MocGFnZSksCi0JCQkJICAgIFBBR0VfU0laRSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKSk7CisJCXN5bmNfaWNhY2hlX2FsaWFzZXMocGFnZV9hZGRyZXNzKHBhZ2UpLCBwYWdlX3NpemUocGFnZSkpOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoX19zeW5jX2ljYWNoZV9kY2FjaGUpOwogCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L21tL21tYXAuYyBiL2FyY2gvYXJtNjQvbW0vbW1hcC5jCmluZGV4IGIwNTA2NDEuLjMwMjhiYWMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvbW0vbW1hcC5jCisrKyBiL2FyY2gvYXJtNjQvbW0vbW1hcC5jCkBAIC0yMSw3OCArMjEsNiBAQAogI2luY2x1ZGUgPGFzbS9jcHV0eXBlLmg+CiAKIC8qCi0gKiBMZWF2ZSBlbm91Z2ggc3BhY2UgYmV0d2VlbiB0aGUgbW1hcCBhcmVhIGFuZCB0aGUgc3RhY2sgdG8gaG9ub3VyIHVsaW1pdCBpbgotICogdGhlIGZhY2Ugb2YgcmFuZG9taXNhdGlvbi4KLSAqLwotI2RlZmluZSBNSU5fR0FQIChTWl8xMjhNKQotI2RlZmluZSBNQVhfR0FQCShTVEFDS19UT1AvNio1KQotCi1zdGF0aWMgaW50IG1tYXBfaXNfbGVnYWN5KHN0cnVjdCBybGltaXQgKnJsaW1fc3RhY2spCi17Ci0JaWYgKGN1cnJlbnQtPnBlcnNvbmFsaXR5ICYgQUREUl9DT01QQVRfTEFZT1VUKQotCQlyZXR1cm4gMTsKLQotCWlmIChybGltX3N0YWNrLT5ybGltX2N1ciA9PSBSTElNX0lORklOSVRZKQotCQlyZXR1cm4gMTsKLQotCXJldHVybiBzeXNjdGxfbGVnYWN5X3ZhX2xheW91dDsKLX0KLQotdW5zaWduZWQgbG9uZyBhcmNoX21tYXBfcm5kKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBybmQ7Ci0KLSNpZmRlZiBDT05GSUdfQ09NUEFUCi0JaWYgKHRlc3RfdGhyZWFkX2ZsYWcoVElGXzMyQklUKSkKLQkJcm5kID0gZ2V0X3JhbmRvbV9sb25nKCkgJiAoKDFVTCA8PCBtbWFwX3JuZF9jb21wYXRfYml0cykgLSAxKTsKLQllbHNlCi0jZW5kaWYKLQkJcm5kID0gZ2V0X3JhbmRvbV9sb25nKCkgJiAoKDFVTCA8PCBtbWFwX3JuZF9iaXRzKSAtIDEpOwotCXJldHVybiBybmQgPDwgUEFHRV9TSElGVDsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGxvbmcgbW1hcF9iYXNlKHVuc2lnbmVkIGxvbmcgcm5kLCBzdHJ1Y3QgcmxpbWl0ICpybGltX3N0YWNrKQotewotCXVuc2lnbmVkIGxvbmcgZ2FwID0gcmxpbV9zdGFjay0+cmxpbV9jdXI7Ci0JdW5zaWduZWQgbG9uZyBwYWQgPSAoU1RBQ0tfUk5EX01BU0sgPDwgUEFHRV9TSElGVCkgKyBzdGFja19ndWFyZF9nYXA7Ci0KLQkvKiBWYWx1ZXMgY2xvc2UgdG8gUkxJTV9JTkZJTklUWSBjYW4gb3ZlcmZsb3cuICovCi0JaWYgKGdhcCArIHBhZCA+IGdhcCkKLQkJZ2FwICs9IHBhZDsKLQotCWlmIChnYXAgPCBNSU5fR0FQKQotCQlnYXAgPSBNSU5fR0FQOwotCWVsc2UgaWYgKGdhcCA+IE1BWF9HQVApCi0JCWdhcCA9IE1BWF9HQVA7Ci0KLQlyZXR1cm4gUEFHRV9BTElHTihTVEFDS19UT1AgLSBnYXAgLSBybmQpOwotfQotCi0vKgotICogVGhpcyBmdW5jdGlvbiwgY2FsbGVkIHZlcnkgZWFybHkgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBwcm9jZXNzIFZNCi0gKiBpbWFnZSwgc2V0cyB1cCB3aGljaCBWTSBsYXlvdXQgZnVuY3Rpb24gdG8gdXNlOgotICovCi12b2lkIGFyY2hfcGlja19tbWFwX2xheW91dChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHJsaW1pdCAqcmxpbV9zdGFjaykKLXsKLQl1bnNpZ25lZCBsb25nIHJhbmRvbV9mYWN0b3IgPSAwVUw7Ci0KLQlpZiAoY3VycmVudC0+ZmxhZ3MgJiBQRl9SQU5ET01JWkUpCi0JCXJhbmRvbV9mYWN0b3IgPSBhcmNoX21tYXBfcm5kKCk7Ci0KLQkvKgotCSAqIEZhbGwgYmFjayB0byB0aGUgc3RhbmRhcmQgbGF5b3V0IGlmIHRoZSBwZXJzb25hbGl0eSBiaXQgaXMgc2V0LCBvcgotCSAqIGlmIHRoZSBleHBlY3RlZCBzdGFjayBncm93dGggaXMgdW5saW1pdGVkOgotCSAqLwotCWlmIChtbWFwX2lzX2xlZ2FjeShybGltX3N0YWNrKSkgewotCQltbS0+bW1hcF9iYXNlID0gVEFTS19VTk1BUFBFRF9CQVNFICsgcmFuZG9tX2ZhY3RvcjsKLQkJbW0tPmdldF91bm1hcHBlZF9hcmVhID0gYXJjaF9nZXRfdW5tYXBwZWRfYXJlYTsKLQl9IGVsc2UgewotCQltbS0+bW1hcF9iYXNlID0gbW1hcF9iYXNlKHJhbmRvbV9mYWN0b3IsIHJsaW1fc3RhY2spOwotCQltbS0+Z2V0X3VubWFwcGVkX2FyZWEgPSBhcmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd247Ci0JfQotfQotCi0vKgogICogWW91IHJlYWxseSBzaG91bGRuJ3QgYmUgdXNpbmcgcmVhZCgpIG9yIHdyaXRlKCkgb24gL2Rldi9tZW0uICBUaGlzIG1pZ2h0IGdvCiAgKiBhd2F5IGluIHRoZSBmdXR1cmUuCiAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvbW0vbW11LmMgYi9hcmNoL2FybTY0L21tL21tdS5jCmluZGV4IDUzZGM2ZjIuLjYwYzkyOWYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvbW0vbW11LmMKKysrIGIvYXJjaC9hcm02NC9tbS9tbXUuYwpAQCAtMzg0LDcgKzM4NCw3IEBAIHN0YXRpYyBwaHlzX2FkZHJfdCBwZ2RfcGd0YWJsZV9hbGxvYyhpbnQgc2hpZnQpCiAJICogZm9sZGVkLCBhbmQgaWYgc28gcGd0YWJsZV9wbWRfcGFnZV9jdG9yKCkgYmVjb21lcyBub3AuCiAJICovCiAJaWYgKHNoaWZ0ID09IFBBR0VfU0hJRlQpCi0JCUJVR19PTighcGd0YWJsZV9wYWdlX2N0b3IocGh5c190b19wYWdlKHBhKSkpOworCQlCVUdfT04oIXBndGFibGVfcHRlX3BhZ2VfY3RvcihwaHlzX3RvX3BhZ2UocGEpKSk7CiAJZWxzZSBpZiAoc2hpZnQgPT0gUE1EX1NISUZUKQogCQlCVUdfT04oIXBndGFibGVfcG1kX3BhZ2VfY3RvcihwaHlzX3RvX3BhZ2UocGEpKSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvbW0vcGdkLmMgYi9hcmNoL2FybTY0L21tL3BnZC5jCmluZGV4IDc1NDhmOWMuLjRhNjQwODkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvbW0vcGdkLmMKKysrIGIvYXJjaC9hcm02NC9tbS9wZ2QuYwpAQCAtMzUsNyArMzUsNyBAQCB2b2lkIHBnZF9mcmVlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkKQogCQlrbWVtX2NhY2hlX2ZyZWUocGdkX2NhY2hlLCBwZ2QpOwogfQogCi12b2lkIF9faW5pdCBwZ2RfY2FjaGVfaW5pdCh2b2lkKQordm9pZCBfX2luaXQgcGd0YWJsZV9jYWNoZV9pbml0KHZvaWQpCiB7CiAJaWYgKFBHRF9TSVpFID09IFBBR0VfU0laRSkKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvYXJjaC9jNngvS2NvbmZpZyBiL2FyY2gvYzZ4L0tjb25maWcKaW5kZXggYjRmYjYxYy4uZTY1ZThkOCAxMDA2NDQKLS0tIGEvYXJjaC9jNngvS2NvbmZpZworKysgYi9hcmNoL2M2eC9LY29uZmlnCkBAIC0yMCw3ICsyMCw2IEBACiAJc2VsZWN0IE9GX0VBUkxZX0ZMQVRUUkVFCiAJc2VsZWN0IEdFTkVSSUNfQ0xPQ0tFVkVOVFMKIAlzZWxlY3QgTU9EVUxFU19VU0VfRUxGX1JFTEEKLQlzZWxlY3QgQVJDSF9OT19DT0hFUkVOVF9ETUFfTU1BUAogCXNlbGVjdCBNTVVfR0FUSEVSX05PX1JBTkdFIGlmIE1NVQogCiBjb25maWcgTU1VCmRpZmYgLS1naXQgYS9hcmNoL2M2eC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL2M2eC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggMGJkODA1OS4uMGI2OTE5YyAxMDA2NDQKLS0tIGEvYXJjaC9jNngvaW5jbHVkZS9hc20vcGd0YWJsZS5oCisrKyBiL2FyY2gvYzZ4L2luY2x1ZGUvYXNtL3BndGFibGUuaApAQCAtNjAsMTEgKzYwLDYgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZW1wdHlfemVyb19wYWdlOwogI2RlZmluZSBzd2FwcGVyX3BnX2RpciAoKHBnZF90ICopIDApCiAKIC8qCi0gKiBObyBwYWdlIHRhYmxlIGNhY2hlcyB0byBpbml0aWFsaXNlCi0gKi8KLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkgICBkbyB7IH0gd2hpbGUgKDApCi0KLS8qCiAgKiBjNnggaXMgIU1NVSwgc28gZGVmaW5lIHRoZSBzaW1wbGllc3QgaW1wbGVtZW50YXRpb24KICAqLwogI2RlZmluZSBwZ3Byb3Rfd3JpdGVjb21iaW5lIHBncHJvdF9ub25jYWNoZWQKZGlmZiAtLWdpdCBhL2FyY2gvY3NreS9pbmNsdWRlL2FzbS9wZ2FsbG9jLmggYi9hcmNoL2Nza3kvaW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IDk4YzU3MTY3MC4uYzdjMWVkMiAxMDA2NDQKLS0tIGEvYXJjaC9jc2t5L2luY2x1ZGUvYXNtL3BnYWxsb2MuaAorKysgYi9hcmNoL2Nza3kvaW5jbHVkZS9hc20vcGdhbGxvYy5oCkBAIC03MSwxMiArNzEsMTAgQEAgc3RhdGljIGlubGluZSBwZ2RfdCAqcGdkX2FsbG9jKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogCiAjZGVmaW5lIF9fcHRlX2ZyZWVfdGxiKHRsYiwgcHRlLCBhZGRyZXNzKQkJXAogZG8gewkJCQkJCQlcCi0JcGd0YWJsZV9wYWdlX2R0b3IocHRlKTsJCQkJXAorCXBndGFibGVfcHRlX3BhZ2VfZHRvcihwdGUpOwkJCVwKIAl0bGJfcmVtb3ZlX3BhZ2UodGxiLCBwdGUpOwkJCVwKIH0gd2hpbGUgKDApCiAKLSNkZWZpbmUgY2hlY2tfcGd0X2NhY2hlKCkJZG8ge30gd2hpbGUgKDApCi0KIGV4dGVybiB2b2lkIHBhZ2V0YWJsZV9pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgcHJlX21tdV9pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgcHJlX3RyYXBfaW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL2FyY2gvY3NreS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL2Nza3kvaW5jbHVkZS9hc20vcGd0YWJsZS5oCmluZGV4IGM0MjlhNmYuLjAwNDBiM2EgMTAwNjQ0Ci0tLSBhL2FyY2gvY3NreS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKKysrIGIvYXJjaC9jc2t5L2luY2x1ZGUvYXNtL3BndGFibGUuaApAQCAtMjk2LDExICsyOTYsNiBAQCB2b2lkIHVwZGF0ZV9tbXVfY2FjaGUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKIC8qIE5lZWRzIHRvIGJlIGRlZmluZWQgaGVyZSBhbmQgbm90IGluIGxpbnV4L21tLmgsIGFzIGl0IGlzIGFyY2ggZGVwZW5kZW50ICovCiAjZGVmaW5lIGtlcm5fYWRkcl92YWxpZChhZGRyKQkoMSkKIAotLyoKLSAqIE5vIHBhZ2UgdGFibGUgY2FjaGVzIHRvIGluaXRpYWxpc2UKLSAqLwotI2RlZmluZSBwZ3RhYmxlX2NhY2hlX2luaXQoKQlkbyB7fSB3aGlsZSAoMCkKLQogI2RlZmluZSBpb19yZW1hcF9wZm5fcmFuZ2Uodm1hLCB2YWRkciwgcGZuLCBzaXplLCBwcm90KSBcCiAJcmVtYXBfcGZuX3JhbmdlKHZtYSwgdmFkZHIsIHBmbiwgc2l6ZSwgcHJvdCkKIApkaWZmIC0tZ2l0IGEvYXJjaC9jc2t5L2luY2x1ZGUvYXNtL3RsYi5oIGIvYXJjaC9jc2t5L2luY2x1ZGUvYXNtL3RsYi5oCmluZGV4IDhjN2NjMDkuLmZkZmY5YjggMTAwNjQ0Ci0tLSBhL2FyY2gvY3NreS9pbmNsdWRlL2FzbS90bGIuaAorKysgYi9hcmNoL2Nza3kvaW5jbHVkZS9hc20vdGxiLmgKQEAgLTgsMTQgKzgsMTQgQEAKIAogI2RlZmluZSB0bGJfc3RhcnRfdm1hKHRsYiwgdm1hKSBcCiAJZG8geyBcCi0JCWlmICghdGxiLT5mdWxsbW0pIFwKLQkJCWZsdXNoX2NhY2hlX3JhbmdlKHZtYSwgdm1hLT52bV9zdGFydCwgdm1hLT52bV9lbmQpOyBcCisJCWlmICghKHRsYiktPmZ1bGxtbSkgXAorCQkJZmx1c2hfY2FjaGVfcmFuZ2Uodm1hLCAodm1hKS0+dm1fc3RhcnQsICh2bWEpLT52bV9lbmQpOyBcCiAJfSAgd2hpbGUgKDApCiAKICNkZWZpbmUgdGxiX2VuZF92bWEodGxiLCB2bWEpIFwKIAlkbyB7IFwKLQkJaWYgKCF0bGItPmZ1bGxtbSkgXAotCQkJZmx1c2hfdGxiX3JhbmdlKHZtYSwgdm1hLT52bV9zdGFydCwgdm1hLT52bV9lbmQpOyBcCisJCWlmICghKHRsYiktPmZ1bGxtbSkgXAorCQkJZmx1c2hfdGxiX3JhbmdlKHZtYSwgKHZtYSktPnZtX3N0YXJ0LCAodm1hKS0+dm1fZW5kKTsgXAogCX0gIHdoaWxlICgwKQogCiAjZGVmaW5lIHRsYl9mbHVzaCh0bGIpIGZsdXNoX3RsYl9tbSgodGxiKS0+bW0pCmRpZmYgLS1naXQgYS9hcmNoL2Nza3kvbW0vZG1hLW1hcHBpbmcuYyBiL2FyY2gvY3NreS9tbS9kbWEtbWFwcGluZy5jCmluZGV4IDgwNzgzYmIuLjYwMmE2MGQgMTAwNjQ0Ci0tLSBhL2FyY2gvY3NreS9tbS9kbWEtbWFwcGluZy5jCisrKyBiL2FyY2gvY3NreS9tbS9kbWEtbWFwcGluZy5jCkBAIC0xNCwxMiArMTQsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KIAotc3RhdGljIGludCBfX2luaXQgYXRvbWljX3Bvb2xfaW5pdCh2b2lkKQotewotCXJldHVybiBkbWFfYXRvbWljX3Bvb2xfaW5pdChHRlBfS0VSTkVMLCBwZ3Byb3Rfbm9uY2FjaGVkKFBBR0VfS0VSTkVMKSk7Ci19Ci1wb3N0Y29yZV9pbml0Y2FsbChhdG9taWNfcG9vbF9pbml0KTsKLQogdm9pZCBhcmNoX2RtYV9wcmVwX2NvaGVyZW50KHN0cnVjdCBwYWdlICpwYWdlLCBzaXplX3Qgc2l6ZSkKIHsKIAlpZiAoUGFnZUhpZ2hNZW0ocGFnZSkpIHsKZGlmZiAtLWdpdCBhL2FyY2gvaDgzMDAvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9oODMwMC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggYTk5Y2FhNC4uNGQwMDE1MiAxMDA2NDQKLS0tIGEvYXJjaC9oODMwMC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKKysrIGIvYXJjaC9oODMwMC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTQsNyArNCw2IEBACiAjZGVmaW5lIF9fQVJDSF9VU0VfNUxFVkVMX0hBQ0sKICNpbmNsdWRlIDxhc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcHVkLmg+CiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGd0YWJsZS5oPgotI2RlZmluZSBwZ3RhYmxlX2NhY2hlX2luaXQoKSAgIGRvIHsgfSB3aGlsZSAoMCkKIGV4dGVybiB2b2lkIHBhZ2luZ19pbml0KHZvaWQpOwogI2RlZmluZSBQQUdFX05PTkUJCV9fcGdwcm90KDApICAgIC8qIHRoZXNlIG1lYW4gbm90aGluZyB0byBOT19NTSAqLwogI2RlZmluZSBQQUdFX1NIQVJFRAkJX19wZ3Byb3QoMCkgICAgLyogdGhlc2UgbWVhbiBub3RoaW5nIHRvIE5PX01NICovCkBAIC0zNSwxMSArMzQsNiBAQCBleHRlcm4gdW5zaWduZWQgaW50IGtvYmpzaXplKGNvbnN0IHZvaWQgKm9ianApOwogZXh0ZXJuIGludCBpc19pbl9yb20odW5zaWduZWQgbG9uZyk7CiAKIC8qCi0gKiBObyBwYWdlIHRhYmxlIGNhY2hlcyB0byBpbml0aWFsaXNlCi0gKi8KLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkgICBkbyB7IH0gd2hpbGUgKDApCi0KLS8qCiAgKiBBbGwgMzJiaXQgYWRkcmVzc2VzIGFyZSBlZmZlY3RpdmVseSB2YWxpZCBmb3Igdm1hbGxvYy4uLgogICogU29ydCBvZiBtZWFuaW5nbGVzcyBmb3Igbm9uLVZNIHRhcmdldHMuCiAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvaGV4YWdvbi9pbmNsdWRlL2FzbS9wZ2FsbG9jLmggYi9hcmNoL2hleGFnb24vaW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IGQ2NTQ0ZGMuLmNjOWJlNTE0IDEwMDY0NAotLS0gYS9hcmNoL2hleGFnb24vaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvaGV4YWdvbi9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKQEAgLTEzLDggKzEzLDYgQEAKIAogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3BnYWxsb2MuaD4JLyogZm9yIHB0ZV97YWxsb2MsZnJlZX1fb25lICovCiAKLSNkZWZpbmUgY2hlY2tfcGd0X2NhY2hlKCkgZG8ge30gd2hpbGUgKDApCi0KIGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcga21hcF9nZW5lcmF0aW9uOwogCiAvKgpAQCAtOTYsNyArOTQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcG1kX3BvcHVsYXRlX2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcG1kX3QgKnBtZCwKIAogI2RlZmluZSBfX3B0ZV9mcmVlX3RsYih0bGIsIHB0ZSwgYWRkcikJCVwKIGRvIHsJCQkJCQlcCi0JcGd0YWJsZV9wYWdlX2R0b3IoKHB0ZSkpOwkJXAorCXBndGFibGVfcHRlX3BhZ2VfZHRvcigocHRlKSk7CQlcCiAJdGxiX3JlbW92ZV9wYWdlKCh0bGIpLCAocHRlKSk7CQlcCiB9IHdoaWxlICgwKQogCmRpZmYgLS1naXQgYS9hcmNoL2hleGFnb24vaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9oZXhhZ29uL2luY2x1ZGUvYXNtL3BndGFibGUuaAppbmRleCBhM2ZmNmQyLi4yZmVjMjBhIDEwMDY0NAotLS0gYS9hcmNoL2hleGFnb24vaW5jbHVkZS9hc20vcGd0YWJsZS5oCisrKyBiL2FyY2gvaGV4YWdvbi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTQzMSw5ICs0MzEsNiBAQCBzdGF0aWMgaW5saW5lIGludCBwdGVfZXhlYyhwdGVfdCBwdGUpCiAKICNkZWZpbmUgX19wdGVfb2Zmc2V0KGFkZHJlc3MpICgoKGFkZHJlc3MpID4+IFBBR0VfU0hJRlQpICYgKFBUUlNfUEVSX1BURSAtIDEpKQogCi0vKiAgSSB0aGluayB0aGlzIGlzIGluIGNhc2Ugd2UgaGF2ZSBwYWdlIHRhYmxlIGNhY2hlczsgbmVlZGVkIGJ5IGluaXQvbWFpbi5jICAqLwotI2RlZmluZSBwZ3RhYmxlX2NhY2hlX2luaXQoKSAgICBkbyB7IH0gd2hpbGUgKDApCi0KIC8qCiAgKiBTd2FwL2ZpbGUgUFRFIGRlZmluaXRpb25zLiAgSWYgX1BBR0VfUFJFU0VOVCBpcyB6ZXJvLCB0aGUgcmVzdCBvZiB0aGUgUFRFIGlzCiAgKiBpbnRlcnByZXRlZCBhcyBzd2FwIGluZm9ybWF0aW9uLiAgVGhlIHJlbWFpbmluZyBmcmVlIGJpdHMgYXJlIGludGVycHJldGVkIGFzCmRpZmYgLS1naXQgYS9hcmNoL2hleGFnb24vbW0vTWFrZWZpbGUgYi9hcmNoL2hleGFnb24vbW0vTWFrZWZpbGUKaW5kZXggMTg5NDI2My4uODkzODM4NCAxMDA2NDQKLS0tIGEvYXJjaC9oZXhhZ29uL21tL01ha2VmaWxlCisrKyBiL2FyY2gvaGV4YWdvbi9tbS9NYWtlZmlsZQpAQCAtMyw1ICszLDUgQEAKICMgTWFrZWZpbGUgZm9yIEhleGFnb24gbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtCiAjCiAKLW9iai15IDo9IGluaXQubyBwZ2FsbG9jLm8gaW9yZW1hcC5vIHVhY2Nlc3MubyB2bV9mYXVsdC5vIGNhY2hlLm8KK29iai15IDo9IGluaXQubyBpb3JlbWFwLm8gdWFjY2Vzcy5vIHZtX2ZhdWx0Lm8gY2FjaGUubwogb2JqLXkgKz0gY29weV90b191c2VyLm8gY29weV9mcm9tX3VzZXIubyBzdHJubGVuX3VzZXIubyB2bV90bGIubwpkaWZmIC0tZ2l0IGEvYXJjaC9oZXhhZ29uL21tL2luaXQuYyBiL2FyY2gvaGV4YWdvbi9tbS9pbml0LmMKaW5kZXggZjFmNmViZC4uYzk2MTc3MyAxMDA2NDQKLS0tIGEvYXJjaC9oZXhhZ29uL21tL2luaXQuYworKysgYi9hcmNoL2hleGFnb24vbW0vaW5pdC5jCkBAIC03MSwxOSArNzEsNiBAQCB2b2lkIF9faW5pdCBtZW1faW5pdCh2b2lkKQogCWluaXRfbW0uY29udGV4dC5wdGJhc2UgPSBfX3BhKGluaXRfbW0ucGdkKTsKIH0KIAotLyoKLSAqIGZyZWVfaW5pdHJkX21lbSAtIGZyZWVzLi4uICBpbml0cmQgbWVtb3J5LgotICogQHN0YXJ0IC0gc3RhcnQgb2YgaW5pdCBtZW1vcnkKLSAqIEBlbmQgLSBlbmQgb2YgaW5pdCBtZW1vcnkKLSAqCi0gKiBBcHBhcmVudGx5IGhhcyB0byBiZSBwYXNzZWQgdGhlIGFkZHJlc3Mgb2YgdGhlIGluaXRyZCBtZW1vcnkuCi0gKgotICogV3JhcHBlZCBieSAjaWZkZWYgQ09ORklHX0JMS0RFVl9JTklUUkQKLSAqLwotdm9pZCBmcmVlX2luaXRyZF9tZW0odW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCi17Ci19Ci0KIHZvaWQgc3luY19pY2FjaGVfZGNhY2hlKHB0ZV90IHB0ZSkKIHsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CmRpZmYgLS1naXQgYS9hcmNoL2hleGFnb24vbW0vcGdhbGxvYy5jIGIvYXJjaC9oZXhhZ29uL21tL3BnYWxsb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ0MzE2MS4uMDAwMDAwMAotLS0gYS9hcmNoL2hleGFnb24vbW0vcGdhbGxvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxMC0yMDExLCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotCi12b2lkIF9faW5pdCBwZ3RhYmxlX2NhY2hlX2luaXQodm9pZCkKLXsKLX0KZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9LY29uZmlnIGIvYXJjaC9pYTY0L0tjb25maWcKaW5kZXggOTcxMWNmNy4uMTY3MTQ0NzcgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9LY29uZmlnCisrKyBiL2FyY2gvaWE2NC9LY29uZmlnCkBAIC0xOSw2ICsxOSw3IEBACiAJc2VsZWN0IFBDSV9ET01BSU5TIGlmIFBDSQogCXNlbGVjdCBQQ0lfTVNJCiAJc2VsZWN0IFBDSV9TWVNDQUxMIGlmIFBDSQorCXNlbGVjdCBIQVZFX0FTTV9NT0RWRVJTSU9OUwogCXNlbGVjdCBIQVZFX1VOU1RBQkxFX1NDSEVEX0NMT0NLCiAJc2VsZWN0IEhBVkVfRVhJVF9USFJFQUQKIAlzZWxlY3QgSEFWRV9JREUKQEAgLTcxLDEwICs3Miw2IEBACiBjb25maWcgWk9ORV9ETUEzMgogCWRlZl9ib29sIHkKIAotY29uZmlnIFFVSUNLTElTVAotCWJvb2wKLQlkZWZhdWx0IHkKLQogY29uZmlnIE1NVQogCWJvb2wKIAlkZWZhdWx0IHkKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9NYWtlZmlsZSBiL2FyY2gvaWE2NC9NYWtlZmlsZQppbmRleCBlMGJiMmI2Li4zMjI0MDAwIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQvTWFrZWZpbGUKKysrIGIvYXJjaC9pYTY0L01ha2VmaWxlCkBAIC0yMCw3ICsyMCw3IEBACiAKIE9CSkNPUFlGTEFHUwk6PSAtLXN0cmlwLWFsbAogTERGTEFHU192bWxpbnV4CTo9IC1zdGF0aWMKLUtCVUlMRF9MREZMQUdTX01PRFVMRSArPSAtVCAkKHNyY3RyZWUpL2FyY2gvaWE2NC9tb2R1bGUubGRzCitLQlVJTERfTERTX01PRFVMRSArPSAkKHNyY3RyZWUpL2FyY2gvaWE2NC9tb2R1bGUubGRzCiBLQlVJTERfQUZMQUdTX0tFUk5FTCA6PSAtbWNvbnN0YW50LWdwCiBFWFRSQQkJOj0KIApkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2hwL2NvbW1vbi9zYmFfaW9tbXUuYyBiL2FyY2gvaWE2NC9ocC9jb21tb24vc2JhX2lvbW11LmMKaW5kZXggYTdlZmY1ZS4uYTgwNjIyNyAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2hwL2NvbW1vbi9zYmFfaW9tbXUuYworKysgYi9hcmNoL2lhNjQvaHAvY29tbW9uL3NiYV9pb21tdS5jCkBAIC0yMDY5LDYgKzIwNjksOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIHNiYV9kbWFfb3BzID0gewogCS5tYXBfc2cJCQk9IHNiYV9tYXBfc2dfYXR0cnMsCiAJLnVubWFwX3NnCQk9IHNiYV91bm1hcF9zZ19hdHRycywKIAkuZG1hX3N1cHBvcnRlZAkJPSBzYmFfZG1hX3N1cHBvcnRlZCwKKwkubW1hcAkJCT0gZG1hX2NvbW1vbl9tbWFwLAorCS5nZXRfc2d0YWJsZQkJPSBkbWFfY29tbW9uX2dldF9zZ3RhYmxlLAogfTsKIAogc3RhdGljIGludCBfX2luaXQKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9wZ2FsbG9jLmggYi9hcmNoL2lhNjQvaW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IGM5ZTQ4MTAuLmY0YzQ5MTAgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKKysrIGIvYXJjaC9pYTY0L2luY2x1ZGUvYXNtL3BnYWxsb2MuaApAQCAtMTksMTggKzE5LDE5IEBACiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9wYWdlLWZsYWdzLmg+CiAjaW5jbHVkZSA8bGludXgvdGhyZWFkcy5oPgotI2luY2x1ZGUgPGxpbnV4L3F1aWNrbGlzdC5oPgorCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGdhbGxvYy5oPgogCiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CiAKIHN0YXRpYyBpbmxpbmUgcGdkX3QgKnBnZF9hbGxvYyhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIHsKLQlyZXR1cm4gcXVpY2tsaXN0X2FsbG9jKDAsIEdGUF9LRVJORUwsIE5VTEwpOworCXJldHVybiAocGdkX3QgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcGdkX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCiB7Ci0JcXVpY2tsaXN0X2ZyZWUoMCwgTlVMTCwgcGdkKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpcGdkKTsKIH0KIAogI2lmIENPTkZJR19QR1RBQkxFX0xFVkVMUyA9PSA0CkBAIC00MiwxMiArNDMsMTIgQEAgcGdkX3BvcHVsYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqIHBnZF9lbnRyeSwgcHVkX3QgKiBwdWQpCiAKIHN0YXRpYyBpbmxpbmUgcHVkX3QgKnB1ZF9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKLQlyZXR1cm4gcXVpY2tsaXN0X2FsbG9jKDAsIEdGUF9LRVJORUwsIE5VTEwpOworCXJldHVybiAocHVkX3QgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcHVkX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHB1ZF90ICpwdWQpCiB7Ci0JcXVpY2tsaXN0X2ZyZWUoMCwgTlVMTCwgcHVkKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpcHVkKTsKIH0KICNkZWZpbmUgX19wdWRfZnJlZV90bGIodGxiLCBwdWQsIGFkZHJlc3MpCXB1ZF9mcmVlKCh0bGIpLT5tbSwgcHVkKQogI2VuZGlmIC8qIENPTkZJR19QR1RBQkxFX0xFVkVMUyA9PSA0ICovCkBAIC02MCwxMiArNjEsMTIgQEAgcHVkX3BvcHVsYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwdWRfdCAqIHB1ZF9lbnRyeSwgcG1kX3QgKiBwbWQpCiAKIHN0YXRpYyBpbmxpbmUgcG1kX3QgKnBtZF9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKLQlyZXR1cm4gcXVpY2tsaXN0X2FsbG9jKDAsIEdGUF9LRVJORUwsIE5VTEwpOworCXJldHVybiAocG1kX3QgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcG1kX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBtZF90ICpwbWQpCiB7Ci0JcXVpY2tsaXN0X2ZyZWUoMCwgTlVMTCwgcG1kKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpcG1kKTsKIH0KIAogI2RlZmluZSBfX3BtZF9mcmVlX3RsYih0bGIsIHBtZCwgYWRkcmVzcykJcG1kX2ZyZWUoKHRsYiktPm1tLCBwbWQpCkBAIC04Myw0MyArODQsNiBAQCBwbWRfcG9wdWxhdGVfa2VybmVsKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwbWRfdCAqIHBtZF9lbnRyeSwgcHRlX3QgKiBwdGUpCiAJcG1kX3ZhbCgqcG1kX2VudHJ5KSA9IF9fcGEocHRlKTsKIH0KIAotc3RhdGljIGlubGluZSBwZ3RhYmxlX3QgcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKLXsKLQlzdHJ1Y3QgcGFnZSAqcGFnZTsKLQl2b2lkICpwZzsKLQotCXBnID0gcXVpY2tsaXN0X2FsbG9jKDAsIEdGUF9LRVJORUwsIE5VTEwpOwotCWlmICghcGcpCi0JCXJldHVybiBOVUxMOwotCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UocGcpOwotCWlmICghcGd0YWJsZV9wYWdlX2N0b3IocGFnZSkpIHsKLQkJcXVpY2tsaXN0X2ZyZWUoMCwgTlVMTCwgcGcpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0JcmV0dXJuIHBhZ2U7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcHRlX3QgKnB0ZV9hbGxvY19vbmVfa2VybmVsKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQotewotCXJldHVybiBxdWlja2xpc3RfYWxsb2MoMCwgR0ZQX0tFUk5FTCwgTlVMTCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGd0YWJsZV90IHB0ZSkKLXsKLQlwZ3RhYmxlX3BhZ2VfZHRvcihwdGUpOwotCXF1aWNrbGlzdF9mcmVlX3BhZ2UoMCwgTlVMTCwgcHRlKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHB0ZV9mcmVlX2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcHRlX3QgKnB0ZSkKLXsKLQlxdWlja2xpc3RfZnJlZSgwLCBOVUxMLCBwdGUpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tfcGd0X2NhY2hlKHZvaWQpCi17Ci0JcXVpY2tsaXN0X3RyaW0oMCwgTlVMTCwgMjUsIDE2KTsKLX0KLQogI2RlZmluZSBfX3B0ZV9mcmVlX3RsYih0bGIsIHB0ZSwgYWRkcmVzcykJcHRlX2ZyZWUoKHRsYiktPm1tLCBwdGUpCiAKICNlbmRpZgkJCQkvKiBfQVNNX0lBNjRfUEdBTExPQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9pYTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaAppbmRleCBiMWU3NDY4ZS4uZDYwMmU3YyAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaAorKysgYi9hcmNoL2lhNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oCkBAIC01NjYsMTEgKzU2Niw2IEBAIGV4dGVybiBzdHJ1Y3QgcGFnZSAqemVyb19wYWdlX21lbW1hcF9wdHI7CiAjZGVmaW5lIEtFUk5FTF9UUl9QQUdFX1NISUZUCV9QQUdFX1NJWkVfNjRNCiAjZGVmaW5lIEtFUk5FTF9UUl9QQUdFX1NJWkUJKDEgPDwgS0VSTkVMX1RSX1BBR0VfU0hJRlQpCiAKLS8qCi0gKiBObyBwYWdlIHRhYmxlIGNhY2hlcyB0byBpbml0aWFsaXNlCi0gKi8KLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkJZG8geyB9IHdoaWxlICgwKQotCiAvKiBUaGVzZSB0ZWxsIGdldF91c2VyX3BhZ2VzKCkgdGhhdCB0aGUgZmlyc3QgZ2F0ZSBwYWdlIGlzIGFjY2Vzc2libGUgZnJvbSB1c2VyLWxldmVsLiAgKi8KICNkZWZpbmUgRklYQUREUl9VU0VSX1NUQVJUCUdBVEVfQUREUgogI2lmZGVmIEhBVkVfQlVHR1lfU0VHUkVMCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL2lycV9pYTY0LmMgYi9hcmNoL2lhNjQva2VybmVsL2lycV9pYTY0LmMKaW5kZXggZjEwMjA4NC4uOGU5MWM4NiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9pcnFfaWE2NC5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvaXJxX2lhNjQuYwpAQCAtNTgzLDYgKzU4Myw3IEBAIHZvaWQgaWE2NF9wcm9jZXNzX3BlbmRpbmdfaW50cih2b2lkKQogc3RhdGljIGlycXJldHVybl90IGR1bW15X2hhbmRsZXIgKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKIAlCVUcoKTsKKwlyZXR1cm4gSVJRX05PTkU7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGlwaV9pcnFhY3Rpb24gPSB7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL3NldHVwLmMgYi9hcmNoL2lhNjQva2VybmVsL3NldHVwLmMKaW5kZXggOGViMjc2YS4uYmIzMjBjNiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9zZXR1cC5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvc2V0dXAuYwpAQCAtMjU5LDcgKzI1OSw3IEBAIF9faW5pdGNhbGwocmVnaXN0ZXJfbWVtb3J5KTsKICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSByZXNlcnZlZCBjcmFzaGtlcm5lbCBpcyBhbGxvd2VkIG9uIHRoZSBzcGVjaWZpYwogICogSUE2NCBtYWNoaW5lIGZsYXZvdXIuIE1hY2hpbmVzIHdpdGhvdXQgYW4gSU8gVExCIHVzZSBzd2lvdGxiIGFuZCByZXF1aXJlCiAgKiBzb21lIG1lbW9yeSBiZWxvdyA0IEdCIChpLmUuIGluIDMyIGJpdCBhcmVhKSwgc2VlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZgotICogbGliL3N3aW90bGIuYy4gVGhlIGhwengxIGFyY2hpdGVjdHVyZSBoYXMgYW4gSU8gVExCIGJ1dCBjYW5ub3QgdXNlIHRoYXQKKyAqIGtlcm5lbC9kbWEvc3dpb3RsYi5jLiBUaGUgaHB6eDEgYXJjaGl0ZWN0dXJlIGhhcyBhbiBJTyBUTEIgYnV0IGNhbm5vdCB1c2UgdGhhdAogICogaW4ga2R1bXAgY2FzZS4gU2VlIHRoZSBjb21tZW50IGluIHNiYV9pbml0KCkgaW4gc2JhX2lvbW11LmMuCiAgKgogICogU28sIHRoZSBvbmx5IG1hY2h2ZWMgdGhhdCByZWFsbHkgc3VwcG9ydHMgbG9hZGluZyB0aGUga2R1bXAga2VybmVsCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvbW0vY29udGlnLmMgYi9hcmNoL2lhNjQvbW0vY29udGlnLmMKaW5kZXggZGIwOWE2OS4uNWIwMGRjMyAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L21tL2NvbnRpZy5jCisrKyBiL2FyY2gvaWE2NC9tbS9jb250aWcuYwpAQCAtMTA4LDcgKzEwOCw2IEBAIHNldHVwX3Blcl9jcHVfYXJlYXModm9pZCkKIAlzdHJ1Y3QgcGNwdV9ncm91cF9pbmZvICpnaTsKIAl1bnNpZ25lZCBpbnQgY3B1OwogCXNzaXplX3Qgc3RhdGljX3NpemUsIHJlc2VydmVkX3NpemUsIGR5bl9zaXplOwotCWludCByYzsKIAogCWFpID0gcGNwdV9hbGxvY19hbGxvY19pbmZvKDEsIG51bV9wb3NzaWJsZV9jcHVzKCkpOwogCWlmICghYWkpCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvbW0vZGlzY29udGlnLmMgYi9hcmNoL2lhNjQvbW0vZGlzY29udGlnLmMKaW5kZXggMjE5ZmM2NC4uNGYzM2Y2ZSAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L21tL2Rpc2NvbnRpZy5jCisrKyBiL2FyY2gvaWE2NC9tbS9kaXNjb250aWcuYwpAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgX19pbml0IHNldHVwX3Blcl9jcHVfYXJlYXModm9pZCkKIAl1bnNpZ25lZCBsb25nIGJhc2Vfb2Zmc2V0OwogCXVuc2lnbmVkIGludCBjcHU7CiAJc3NpemVfdCBzdGF0aWNfc2l6ZSwgcmVzZXJ2ZWRfc2l6ZSwgZHluX3NpemU7Ci0JaW50IG5vZGUsIHByZXZfbm9kZSwgdW5pdCwgbnJfdW5pdHMsIHJjOworCWludCBub2RlLCBwcmV2X25vZGUsIHVuaXQsIG5yX3VuaXRzOwogCiAJYWkgPSBwY3B1X2FsbG9jX2FsbG9jX2luZm8oTUFYX05VTU5PREVTLCBucl9jcHVfaWRzKTsKIAlpZiAoIWFpKQpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L21tL2luaXQuYyBiL2FyY2gvaWE2NC9tbS9pbml0LmMKaW5kZXggNjc4Yjk4YS4uYmY5ZGYyNiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L21tL2luaXQuYworKysgYi9hcmNoL2lhNjQvbW0vaW5pdC5jCkBAIC02NCw3ICs2NCw3IEBAIF9faWE2NF9zeW5jX2ljYWNoZV9kY2FjaGUgKHB0ZV90IHB0ZSkKIAlpZiAodGVzdF9iaXQoUEdfYXJjaF8xLCAmcGFnZS0+ZmxhZ3MpKQogCQlyZXR1cm47CQkJCS8qIGktY2FjaGUgaXMgYWxyZWFkeSBjb2hlcmVudCB3aXRoIGQtY2FjaGUgKi8KIAotCWZsdXNoX2ljYWNoZV9yYW5nZShhZGRyLCBhZGRyICsgKFBBR0VfU0laRSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKSkpOworCWZsdXNoX2ljYWNoZV9yYW5nZShhZGRyLCBhZGRyICsgcGFnZV9zaXplKHBhZ2UpKTsKIAlzZXRfYml0KFBHX2FyY2hfMSwgJnBhZ2UtPmZsYWdzKTsJLyogbWFyayBwYWdlIGFzIGNsZWFuICovCiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9LY29uZmlnIGIvYXJjaC9tNjhrL0tjb25maWcKaW5kZXggYzUxOGQ2OS4uNjY2M2YxNyAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL0tjb25maWcKKysrIGIvYXJjaC9tNjhrL0tjb25maWcKQEAgLTQsMTYgKzQsMTUgQEAKIAlkZWZhdWx0IHkKIAlzZWxlY3QgQVJDSF8zMkJJVF9PRkZfVAogCXNlbGVjdCBBUkNIX0hBU19CSU5GTVRfRkxBVAotCXNlbGVjdCBBUkNIX0hBU19ETUFfTU1BUF9QR1BST1QgaWYgTU1VICYmICFDT0xERklSRQogCXNlbGVjdCBBUkNIX0hBU19ETUFfUFJFUF9DT0hFUkVOVCBpZiBIQVNfRE1BICYmIE1NVSAmJiAhQ09MREZJUkUKIAlzZWxlY3QgQVJDSF9IQVNfU1lOQ19ETUFfRk9SX0RFVklDRSBpZiBIQVNfRE1BCiAJc2VsZWN0IEFSQ0hfTUlHSFRfSEFWRV9QQ19QQVJQT1JUIGlmIElTQQotCXNlbGVjdCBBUkNIX05PX0NPSEVSRU5UX0RNQV9NTUFQIGlmICFNTVUKIAlzZWxlY3QgQVJDSF9OT19QUkVFTVBUIGlmICFDT0xERklSRQogCXNlbGVjdCBCSU5GTVRfRkxBVF9BUkdWUF9FTlZQX09OX1NUQUNLCiAJc2VsZWN0IERNQV9ESVJFQ1RfUkVNQVAgaWYgSEFTX0RNQSAmJiBNTVUgJiYgIUNPTERGSVJFCiAJc2VsZWN0IEhBVkVfSURFCiAJc2VsZWN0IEhBVkVfQU9VVCBpZiBNTVUKKwlzZWxlY3QgSEFWRV9BU01fTU9EVkVSU0lPTlMKIAlzZWxlY3QgSEFWRV9ERUJVR19CVUdWRVJCT1NFCiAJc2VsZWN0IEdFTkVSSUNfSVJRX1NIT1cKIAlzZWxlY3QgR0VORVJJQ19BVE9NSUM2NApkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL01ha2VmaWxlIGIvYXJjaC9tNjhrL01ha2VmaWxlCmluZGV4IDQ4MjUxM2IuLjVkOTI4ODMgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9NYWtlZmlsZQorKysgYi9hcmNoL202OGsvTWFrZWZpbGUKQEAgLTczLDcgKzczLDcgQEAKIGVuZGlmCiAKIEtCVUlMRF9MREZMQUdTIDo9IC1tIG02OGtlbGYKLUtCVUlMRF9MREZMQUdTX01PRFVMRSArPSAtVCAkKHNyY3RyZWUpL2FyY2gvbTY4ay9rZXJuZWwvbW9kdWxlLmxkcworS0JVSUxEX0xEU19NT0RVTEUgKz0gJChzcmN0cmVlKS9hcmNoL202OGsva2VybmVsL21vZHVsZS5sZHMKIAogaWZkZWYgQ09ORklHX1NVTjMKIExERkxBR1Nfdm1saW51eCA9IC1OCmRpZmYgLS1naXQgYS9hcmNoL202OGsvaW5jbHVkZS9hc20vZXhwb3J0LmggYi9hcmNoL202OGsvaW5jbHVkZS9hc20vZXhwb3J0LmgKaW5kZXggMGFmMjBmNC4uYjUzMDA4YiAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2V4cG9ydC5oCisrKyBiL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9leHBvcnQuaApAQCAtMSwzICsxLDIgQEAKLSNkZWZpbmUgS1NZTV9BTElHTiAyCiAjZGVmaW5lIEtDUkNfQUxJR04gMgogI2luY2x1ZGUgPGFzbS1nZW5lcmljL2V4cG9ydC5oPgpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL21jZl9wZ2FsbG9jLmggYi9hcmNoL202OGsvaW5jbHVkZS9hc20vbWNmX3BnYWxsb2MuaAppbmRleCA0Mzk5ZDcxLi5iMzRkNDRkIDEwMDY0NAotLS0gYS9hcmNoL202OGsvaW5jbHVkZS9hc20vbWNmX3BnYWxsb2MuaAorKysgYi9hcmNoL202OGsvaW5jbHVkZS9hc20vbWNmX3BnYWxsb2MuaApAQCAtNDEsNyArNDEsNyBAQCBleHRlcm4gaW5saW5lIHBtZF90ICpwbWRfYWxsb2Nfa2VybmVsKHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3B0ZV9mcmVlX3RsYihzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLCBwZ3RhYmxlX3QgcGFnZSwKIAkJCQkgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKLQlwZ3RhYmxlX3BhZ2VfZHRvcihwYWdlKTsKKwlwZ3RhYmxlX3B0ZV9wYWdlX2R0b3IocGFnZSk7CiAJX19mcmVlX3BhZ2UocGFnZSk7CiB9CiAKQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIAogCWlmICghcGFnZSkKIAkJcmV0dXJuIE5VTEw7Ci0JaWYgKCFwZ3RhYmxlX3BhZ2VfY3RvcihwYWdlKSkgeworCWlmICghcGd0YWJsZV9wdGVfcGFnZV9jdG9yKHBhZ2UpKSB7CiAJCV9fZnJlZV9wYWdlKHBhZ2UpOwogCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2UgKnB0ZV9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0pCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHBhZ2UgKnBhZ2UpCiB7Ci0JcGd0YWJsZV9wYWdlX2R0b3IocGFnZSk7CisJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHBhZ2UpOwogCV9fZnJlZV9wYWdlKHBhZ2UpOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL202OGsvaW5jbHVkZS9hc20vbW90b3JvbGFfcGdhbGxvYy5oIGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL21vdG9yb2xhX3BnYWxsb2MuaAppbmRleCBkMDRkOWJhLi5hY2FiMzE1IDEwMDY0NAotLS0gYS9hcmNoL202OGsvaW5jbHVkZS9hc20vbW90b3JvbGFfcGdhbGxvYy5oCisrKyBiL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9tb3Rvcm9sYV9wZ2FsbG9jLmgKQEAgLTM2LDcgKzM2LDcgQEAgc3RhdGljIGlubGluZSBwZ3RhYmxlX3QgcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIAlwYWdlID0gYWxsb2NfcGFnZXMoR0ZQX0tFUk5FTHxfX0dGUF9aRVJPLCAwKTsKIAlpZighcGFnZSkKIAkJcmV0dXJuIE5VTEw7Ci0JaWYgKCFwZ3RhYmxlX3BhZ2VfY3RvcihwYWdlKSkgeworCWlmICghcGd0YWJsZV9wdGVfcGFnZV9jdG9yKHBhZ2UpKSB7CiAJCV9fZnJlZV9wYWdlKHBhZ2UpOwogCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBpbmxpbmUgcGd0YWJsZV90IHB0ZV9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0pCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGd0YWJsZV90IHBhZ2UpCiB7Ci0JcGd0YWJsZV9wYWdlX2R0b3IocGFnZSk7CisJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHBhZ2UpOwogCWNhY2hlX3BhZ2Uoa21hcChwYWdlKSk7CiAJa3VubWFwKHBhZ2UpOwogCV9fZnJlZV9wYWdlKHBhZ2UpOwpAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHRlX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBndGFibGVfdCBwYWdlKQogc3RhdGljIGlubGluZSB2b2lkIF9fcHRlX2ZyZWVfdGxiKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsIHBndGFibGVfdCBwYWdlLAogCQkJCSAgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQogewotCXBndGFibGVfcGFnZV9kdG9yKHBhZ2UpOworCXBndGFibGVfcHRlX3BhZ2VfZHRvcihwYWdlKTsKIAljYWNoZV9wYWdlKGttYXAocGFnZSkpOwogCWt1bm1hcChwYWdlKTsKIAlfX2ZyZWVfcGFnZShwYWdlKTsKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9wZ3RhYmxlX21tLmggYi9hcmNoL202OGsvaW5jbHVkZS9hc20vcGd0YWJsZV9tbS5oCmluZGV4IGZlM2RkZDcuLjY0NmMxNzQgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9wZ3RhYmxlX21tLmgKKysrIGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL3BndGFibGVfbW0uaApAQCAtMTY5LDE1ICsxNjksMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9tbXVfY2FjaGUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJICAgID8gKF9fcGdwcm90KChwZ3Byb3RfdmFsKHByb3QpICYgX0NBQ0hFTUFTSzA0MCkgfCBfUEFHRV9OT0NBQ0hFX1MpKQlcCiAJICAgIDogKHByb3QpKSkKIAorcGdwcm90X3QgcGdwcm90X2RtYWNvaGVyZW50KHBncHJvdF90IHByb3QpOworI2RlZmluZSBwZ3Byb3RfZG1hY29oZXJlbnQocHJvdCkJcGdwcm90X2RtYWNvaGVyZW50KHByb3QpCisKICNlbmRpZiAvKiBDT05GSUdfQ09MREZJUkUgKi8KICNpbmNsdWRlIDxhc20tZ2VuZXJpYy9wZ3RhYmxlLmg+CiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwogCi0vKgotICogTm8gcGFnZSB0YWJsZSBjYWNoZXMgdG8gaW5pdGlhbGlzZQotICovCi0jZGVmaW5lIHBndGFibGVfY2FjaGVfaW5pdCgpCWRvIHsgfSB3aGlsZSAoMCkKLQotI2RlZmluZSBjaGVja19wZ3RfY2FjaGUoKQlkbyB7IH0gd2hpbGUgKDApCi0KICNlbmRpZiAvKiBfTTY4S19QR1RBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9wZ3RhYmxlX25vLmggYi9hcmNoL202OGsvaW5jbHVkZS9hc20vcGd0YWJsZV9uby5oCmluZGV4IGZjM2E5NmMuLmMxODE2NWIgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9wZ3RhYmxlX25vLmgKKysrIGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL3BndGFibGVfbm8uaApAQCAtNDUsMTEgKzQ1LDYgQEAgZXh0ZXJuIHZvaWQgcGFnaW5nX2luaXQodm9pZCk7CiAjZGVmaW5lIFpFUk9fUEFHRSh2YWRkcikJKHZpcnRfdG9fcGFnZSgwKSkKIAogLyoKLSAqIE5vIHBhZ2UgdGFibGUgY2FjaGVzIHRvIGluaXRpYWxpc2UuCi0gKi8KLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkJZG8geyB9IHdoaWxlICgwKQotCi0vKgogICogQWxsIDMyYml0IGFkZHJlc3NlcyBhcmUgZWZmZWN0aXZlbHkgdmFsaWQgZm9yIHZtYWxsb2MuLi4KICAqIFNvcnQgb2YgbWVhbmluZ2xlc3MgZm9yIG5vbi1WTSB0YXJnZXRzLgogICovCkBAIC02MCw2ICs1NSw0IEBAIGV4dGVybiB2b2lkIHBhZ2luZ19pbml0KHZvaWQpOwogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGd0YWJsZS5oPgogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpCWRvIHsgfSB3aGlsZSAoMCkKLQogI2VuZGlmIC8qIF9NNjhLTk9NTVVfUEdUQUJMRV9IICovCmRpZmYgLS1naXQgYS9hcmNoL202OGsvaW5jbHVkZS9hc20vc3VuM19wZ2FsbG9jLmggYi9hcmNoL202OGsvaW5jbHVkZS9hc20vc3VuM19wZ2FsbG9jLmgKaW5kZXggMWE4ZGRiZC4uODU2MTIxMSAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL3N1bjNfcGdhbGxvYy5oCisrKyBiL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9zdW4zX3BnYWxsb2MuaApAQCAtMjEsNyArMjEsNyBAQCBleHRlcm4gY29uc3QgY2hhciBiYWRfcG1kX3N0cmluZ1tdOwogCiAjZGVmaW5lIF9fcHRlX2ZyZWVfdGxiKHRsYixwdGUsYWRkcikJCQlcCiBkbyB7CQkJCQkJCVwKLQlwZ3RhYmxlX3BhZ2VfZHRvcihwdGUpOwkJCQlcCisJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHB0ZSk7CQkJXAogCXRsYl9yZW1vdmVfcGFnZSgodGxiKSwgcHRlKTsJCQlcCiB9IHdoaWxlICgwKQogCmRpZmYgLS1naXQgYS9hcmNoL202OGsva2VybmVsL2RtYS5jIGIvYXJjaC9tNjhrL2tlcm5lbC9kbWEuYwppbmRleCA0NDc4NDlkLi4zZmFiNjg0IDEwMDY0NAotLS0gYS9hcmNoL202OGsva2VybmVsL2RtYS5jCisrKyBiL2FyY2gvbTY4ay9rZXJuZWwvZG1hLmMKQEAgLTIzLDggKzIzLDcgQEAgdm9pZCBhcmNoX2RtYV9wcmVwX2NvaGVyZW50KHN0cnVjdCBwYWdlICpwYWdlLCBzaXplX3Qgc2l6ZSkKIAljYWNoZV9wdXNoKHBhZ2VfdG9fcGh5cyhwYWdlKSwgc2l6ZSk7CiB9CiAKLXBncHJvdF90IGFyY2hfZG1hX21tYXBfcGdwcm90KHN0cnVjdCBkZXZpY2UgKmRldiwgcGdwcm90X3QgcHJvdCwKLQkJdW5zaWduZWQgbG9uZyBhdHRycykKK3BncHJvdF90IHBncHJvdF9kbWFjb2hlcmVudChwZ3Byb3RfdCBwcm90KQogewogCWlmIChDUFVfSVNfMDQwX09SXzA2MCkgewogCQlwZ3Byb3RfdmFsKHByb3QpICY9IH5fUEFHRV9DQUNIRTA0MDsKZGlmZiAtLWdpdCBhL2FyY2gvbWljcm9ibGF6ZS9LY29uZmlnIGIvYXJjaC9taWNyb2JsYXplL0tjb25maWcKaW5kZXggZDQxMWRlMC4uYzljNGJlOCAxMDA2NDQKLS0tIGEvYXJjaC9taWNyb2JsYXplL0tjb25maWcKKysrIGIvYXJjaC9taWNyb2JsYXplL0tjb25maWcKQEAgLTUsMTYgKzUsMTggQEAKIAlzZWxlY3QgQVJDSF9OT19TV0FQCiAJc2VsZWN0IEFSQ0hfSEFTX0JJTkZNVF9GTEFUIGlmICFNTVUKIAlzZWxlY3QgQVJDSF9IQVNfRE1BX0NPSEVSRU5UX1RPX1BGTiBpZiBNTVUKKwlzZWxlY3QgQVJDSF9IQVNfRE1BX1BSRVBfQ09IRVJFTlQKIAlzZWxlY3QgQVJDSF9IQVNfR0NPVl9QUk9GSUxFX0FMTAogCXNlbGVjdCBBUkNIX0hBU19TWU5DX0RNQV9GT1JfQ1BVCiAJc2VsZWN0IEFSQ0hfSEFTX1NZTkNfRE1BX0ZPUl9ERVZJQ0UKKwlzZWxlY3QgQVJDSF9IQVNfVU5DQUNIRURfU0VHTUVOVCBpZiAhTU1VCiAJc2VsZWN0IEFSQ0hfTUlHSFRfSEFWRV9QQ19QQVJQT1JUCi0Jc2VsZWN0IEFSQ0hfTk9fQ09IRVJFTlRfRE1BX01NQVAgaWYgIU1NVQogCXNlbGVjdCBBUkNIX1dBTlRfSVBDX1BBUlNFX1ZFUlNJT04KIAlzZWxlY3QgQlVJTERUSU1FX0VYVEFCTEVfU09SVAogCXNlbGVjdCBUSU1FUl9PRgogCXNlbGVjdCBDTE9ORV9CQUNLV0FSRFMzCiAJc2VsZWN0IENPTU1PTl9DTEsKKwlzZWxlY3QgRE1BX0RJUkVDVF9SRU1BUCBpZiBNTVUKIAlzZWxlY3QgR0VORVJJQ19BVE9NSUM2NAogCXNlbGVjdCBHRU5FUklDX0NMT0NLRVZFTlRTCiAJc2VsZWN0IEdFTkVSSUNfQ1BVX0RFVklDRVMKZGlmZiAtLWdpdCBhL2FyY2gvbWljcm9ibGF6ZS9ib290L2R0cy9zeXN0ZW0uZHRzIGIvYXJjaC9taWNyb2JsYXplL2Jvb3QvZHRzL3N5c3RlbS5kdHMKaW5kZXggNWE4YTlkMC4uNWIyMzY1MiAxMDA2NDQKLS0tIGEvYXJjaC9taWNyb2JsYXplL2Jvb3QvZHRzL3N5c3RlbS5kdHMKKysrIGIvYXJjaC9taWNyb2JsYXplL2Jvb3QvZHRzL3N5c3RlbS5kdHMKQEAgLTE4LDcgKzE4LDYgQEAKIAkjYWRkcmVzcy1jZWxscyA9IDwxPjsKIAkjc2l6ZS1jZWxscyA9IDwxPjsKIAljb21wYXRpYmxlID0gInhsbngsbWljcm9ibGF6ZSI7Ci0JaGFyZC1yZXNldC1ncGlvcyA9IDwmTEVEc184Qml0IDIgMT47CiAJbW9kZWwgPSAidGVzdGluZyI7CiAJRERSMl9TRFJBTTogbWVtb3J5QDkwMDAwMDAwIHsKIAkJZGV2aWNlX3R5cGUgPSAibWVtb3J5IjsKQEAgLTI4MSw2ICsyODAsMjEgQEAKIAkJCQlncGlvcyA9IDwmTEVEc184Qml0IDcgMT47CiAJCQl9OwogCQl9IDsKKworCQlncGlvLXJlc3RhcnQgeworCQkJY29tcGF0aWJsZSA9ICJncGlvLXJlc3RhcnQiOworCQkJLyoKKwkJCSAqIEZJWE1FOiBpcyB0aGlzIGFjdGl2ZSBsb3cgb3IgYWN0aXZlIGhpZ2g/CisJCQkgKiB0aGUgY3VycmVudCBmbGFnICgxKSBpbmRpY2F0ZXMgYWN0aXZlIGxvdy4KKwkJCSAqIGRlbGF5IG1lYXN1cmVzIGFyZSB0ZW1wbGF0ZXMsIHNob3VsZCBiZSBhZGp1c3RlZAorCQkJICogdG8gZGF0YXNoZWV0IG9yIHRyaWFsLWFuZC1lcnJvciB3aXRoIHJlYWwgaGFyZHdhcmUuCisJCQkgKi8KKwkJCWdwaW9zID0gPCZMRURzXzhCaXQgMiAxPjsKKwkJCWFjdGl2ZS1kZWxheSA9IDwxMDA+OworCQkJaW5hY3RpdmUtZGVsYXkgPSA8MTA+OworCQkJd2FpdC1kZWxheSA9IDwxMDA+OworCQl9OworCiAJCVJTMjMyX1VhcnRfMTogc2VyaWFsQDg0MDAwMDAwIHsKIAkJCWNsb2NrLWZyZXF1ZW5jeSA9IDwxMjUwMDAwMDA+OwogCQkJY29tcGF0aWJsZSA9ICJ4bG54LHhwcy11YXJ0bGl0ZS0xLjAwLmEiOwpkaWZmIC0tZ2l0IGEvYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZyBiL2FyY2gvbWljcm9ibGF6ZS9jb25maWdzL21tdV9kZWZjb25maWcKaW5kZXggOTJmZDRlOTUuLjY1NGVkZmQgMTAwNjQ0Ci0tLSBhL2FyY2gvbWljcm9ibGF6ZS9jb25maWdzL21tdV9kZWZjb25maWcKKysrIGIvYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZwpAQCAtNSwxNSArNSwxMCBAQAogQ09ORklHX0lLQ09ORklHX1BST0M9eQogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQotQ09ORklHX0tBTExTWU1TX0FMTD15CiAjIENPTkZJR19CQVNFX0ZVTEwgaXMgbm90IHNldAorQ09ORklHX0tBTExTWU1TX0FMTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NMQUI9eQotQ09ORklHX01PRFVMRVM9eQotQ09ORklHX01PRFVMRV9VTkxPQUQ9eQotIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAotQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15Ci0jIENPTkZJR19FRklfUEFSVElUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19YSUxJTlhfTUlDUk9CTEFaRTBfVVNFX01TUl9JTlNUUj0xCiBDT05GSUdfWElMSU5YX01JQ1JPQkxBWkUwX1VTRV9QQ01QX0lOU1RSPTEKIENPTkZJR19YSUxJTlhfTUlDUk9CTEFaRTBfVVNFX0JBUlJFTD0xCkBAIC0yNSwxNCArMjAsMTkgQEAKIENPTkZJR19DTURMSU5FX0JPT0w9eQogQ09ORklHX0NNRExJTkVfRk9SQ0U9eQogQ09ORklHX0hJR0hNRU09eQotQ09ORklHX1BDST15CiBDT05GSUdfUENJX1hJTElOWD15CitDT05GSUdfTU9EVUxFUz15CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0VGSV9QQVJUSVRJT04gaXMgbm90IHNldAogQ09ORklHX05FVD15CiBDT05GSUdfUEFDS0VUPXkKIENPTkZJR19VTklYPXkKIENPTkZJR19JTkVUPXkKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAogQ09ORklHX0JSSURHRT1tCitDT05GSUdfUENJPXkKIENPTkZJR19NVEQ9eQogQ09ORklHX01URF9DRkk9eQogQ09ORklHX01URF9DRklfSU5URUxFWFQ9eQpAQCAtNDEsNiArNDEsNyBAQAogQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9ODE5MgogQ09ORklHX05FVERFVklDRVM9eQogQ09ORklHX1hJTElOWF9FTUFDTElURT15CitDT05GSUdfWElMSU5YX0FYSV9FTUFDPXkKIENPTkZJR19YSUxJTlhfTExfVEVNQUM9eQogIyBDT05GSUdfSU5QVVQgaXMgbm90IHNldAogIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldApAQCAtNTksNiArNjAsOCBAQAogQ09ORklHX0dQSU9MSUI9eQogQ09ORklHX0dQSU9fU1lTRlM9eQogQ09ORklHX0dQSU9fWElMSU5YPXkKK0NPTkZJR19QT1dFUl9SRVNFVD15CitDT05GSUdfUE9XRVJfUkVTRVRfR1BJT19SRVNUQVJUPXkKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKIENPTkZJR19XQVRDSERPRz15CiBDT05GSUdfWElMSU5YX1dBVENIRE9HPXkKQEAgLTc0LDggKzc3LDggQEAKIENPTkZJR19ST01GU19GUz15CiBDT05GSUdfTkZTX0ZTPXkKIENPTkZJR19DSUZTPXkKLUNPTkZJR19DSUZTX1NUQVRTPXkKIENPTkZJR19DSUZTX1NUQVRTMj15CitDT05GSUdfRU5DUllQVEVEX0tFWVM9eQogQ09ORklHX0RFQlVHX0lORk89eQogQ09ORklHX0RFQlVHX1NMQUI9eQogQ09ORklHX0RFVEVDVF9IVU5HX1RBU0s9eQpAQCAtODMsNiArODYsMyBAQAogQ09ORklHX0tHREI9eQogQ09ORklHX0tHREJfVEVTVFM9eQogQ09ORklHX0tHREJfS0RCPXkKLUNPTkZJR19FQVJMWV9QUklOVEs9eQotQ09ORklHX0tFWVM9eQotQ09ORklHX0VOQ1JZUFRFRF9LRVlTPXkKZGlmZiAtLWdpdCBhL2FyY2gvbWljcm9ibGF6ZS9jb25maWdzL25vbW11X2RlZmNvbmZpZyBiL2FyY2gvbWljcm9ibGF6ZS9jb25maWdzL25vbW11X2RlZmNvbmZpZwppbmRleCAwNmQ2OWE2Li4zNzdkZTM5YyAxMDA2NDQKLS0tIGEvYXJjaC9taWNyb2JsYXplL2NvbmZpZ3Mvbm9tbXVfZGVmY29uZmlnCisrKyBiL2FyY2gvbWljcm9ibGF6ZS9jb25maWdzL25vbW11X2RlZmNvbmZpZwpAQCAtNywxNSArNywxMCBAQAogQ09ORklHX0lLQ09ORklHX1BST0M9eQogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQotQ09ORklHX0tBTExTWU1TX0FMTD15CiAjIENPTkZJR19CQVNFX0ZVTEwgaXMgbm90IHNldAorQ09ORklHX0tBTExTWU1TX0FMTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NMQUI9eQotQ09ORklHX01PRFVMRVM9eQotQ09ORklHX01PRFVMRV9VTkxPQUQ9eQotIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAotQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15Ci0jIENPTkZJR19FRklfUEFSVElUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19YSUxJTlhfTUlDUk9CTEFaRTBfVVNFX01TUl9JTlNUUj0xCiBDT05GSUdfWElMSU5YX01JQ1JPQkxBWkUwX1VTRV9QQ01QX0lOU1RSPTEKIENPTkZJR19YSUxJTlhfTUlDUk9CTEFaRTBfVVNFX0JBUlJFTD0xCkBAIC0yNSwxMyArMjAsMTggQEAKIENPTkZJR19IWl8xMDA9eQogQ09ORklHX0NNRExJTkVfQk9PTD15CiBDT05GSUdfQ01ETElORV9GT1JDRT15Ci1DT05GSUdfUENJPXkKIENPTkZJR19QQ0lfWElMSU5YPXkKK0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKK0NPTkZJR19QQVJUSVRJT05fQURWQU5DRUQ9eQorIyBDT05GSUdfRUZJX1BBUlRJVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfTkVUPXkKIENPTkZJR19QQUNLRVQ9eQogQ09ORklHX1VOSVg9eQogQ09ORklHX0lORVQ9eQogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CitDT05GSUdfUENJPXkKIENPTkZJR19NVEQ9eQogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKIENPTkZJR19NVERfQkxPQ0s9eQpAQCAtNjIsNiArNjIsOCBAQAogQ09ORklHX0dQSU9MSUI9eQogQ09ORklHX0dQSU9fU1lTRlM9eQogQ09ORklHX0dQSU9fWElMSU5YPXkKK0NPTkZJR19QT1dFUl9SRVNFVD15CitDT05GSUdfUE9XRVJfUkVTRVRfR1BJT19SRVNUQVJUPXkKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKIENPTkZJR19XQVRDSERPRz15CiBDT05GSUdfWElMSU5YX1dBVENIRE9HPXkKQEAgLTc1LDExICs3Nyw2IEBACiBDT05GSUdfTkZTX0ZTPXkKIENPTkZJR19ORlNfVjNfQUNMPXkKIENPTkZJR19OTFM9eQotQ09ORklHX0RFQlVHX0lORk89eQotQ09ORklHX0RFQlVHX1NMQUI9eQotQ09ORklHX0RFVEVDVF9IVU5HX1RBU0s9eQotQ09ORklHX0RFQlVHX1NQSU5MT0NLPXkKLUNPTkZJR19FQVJMWV9QUklOVEs9eQogQ09ORklHX0tFWVM9eQogQ09ORklHX0VOQ1JZUFRFRF9LRVlTPXkKIENPTkZJR19DUllQVE9fRUNCPXkKQEAgLTg3LDMgKzg0LDcgQEAKIENPTkZJR19DUllQVE9fTUQ1PXkKIENPTkZJR19DUllQVE9fQVJDND15CiBDT05GSUdfQ1JZUFRPX0RFUz15CitDT05GSUdfREVCVUdfSU5GTz15CitDT05GSUdfREVCVUdfU0xBQj15CitDT05GSUdfREVURUNUX0hVTkdfVEFTSz15CitDT05GSUdfREVCVUdfU1BJTkxPQ0s9eQpkaWZmIC0tZ2l0IGEvYXJjaC9taWNyb2JsYXplL2luY2x1ZGUvYXNtL2lvLmggYi9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vaW8uaAppbmRleCBjNzk2ODEzLi44NmM5NWIyIDEwMDY0NAotLS0gYS9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vaW8uaAorKysgYi9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vaW8uaApAQCAtNDAsNyArNDAsNiBAQCBleHRlcm4gdm9pZCBpb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcik7CiAKIGV4dGVybiB2b2lkIF9faW9tZW0gKmlvcmVtYXAocGh5c19hZGRyX3QgYWRkcmVzcywgdW5zaWduZWQgbG9uZyBzaXplKTsKICNkZWZpbmUgaW9yZW1hcF9ub2NhY2hlKGFkZHIsIHNpemUpCQlpb3JlbWFwKChhZGRyKSwgKHNpemUpKQotI2RlZmluZSBpb3JlbWFwX2Z1bGxjYWNoZShhZGRyLCBzaXplKQkJaW9yZW1hcCgoYWRkciksIChzaXplKSkKICNkZWZpbmUgaW9yZW1hcF93YyhhZGRyLCBzaXplKQkJCWlvcmVtYXAoKGFkZHIpLCAoc2l6ZSkpCiAjZGVmaW5lIGlvcmVtYXBfd3QoYWRkciwgc2l6ZSkJCQlpb3JlbWFwKChhZGRyKSwgKHNpemUpKQogCmRpZmYgLS1naXQgYS9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vcGNpLmggYi9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vcGNpLmgKaW5kZXggMjFkZGJhOS4uN2M0ZGM1ZCAxMDA2NDQKLS0tIGEvYXJjaC9taWNyb2JsYXplL2luY2x1ZGUvYXNtL3BjaS5oCisrKyBiL2FyY2gvbWljcm9ibGF6ZS9pbmNsdWRlL2FzbS9wY2kuaApAQCAtNjYsOCArNjYsNiBAQCBleHRlcm4gcGdwcm90X3QJcGNpX3BoeXNfbWVtX2FjY2Vzc19wcm90KHN0cnVjdCBmaWxlICpmaWxlLAogCQkJCQkgdW5zaWduZWQgbG9uZyBzaXplLAogCQkJCQkgcGdwcm90X3QgcHJvdCk7CiAKLSNkZWZpbmUgSEFWRV9BUkNIX1BDSV9SRVNPVVJDRV9UT19VU0VSCi0KIC8qIFRoaXMgcGFydCBvZiBjb2RlIHdhcyBvcmlnaW5hbGx5IGluIHhpbGlueC1wY2kuaCAqLwogI2lmZGVmIENPTkZJR19QQ0lfWElMSU5YCiBleHRlcm4gdm9pZCBfX2luaXQgeGlsaW54X3BjaV9pbml0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9taWNyb2JsYXplL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCBiL2FyY2gvbWljcm9ibGF6ZS9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKaW5kZXggZjRjYzlmZi4uN2VjYjA1YiAxMDA2NDQKLS0tIGEvYXJjaC9taWNyb2JsYXplL2luY2x1ZGUvYXNtL3BnYWxsb2MuaAorKysgYi9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vcGdhbGxvYy5oCkBAIC0yMSw4MyArMjEsMjMgQEAKICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogCi0jZGVmaW5lIFBHRElSX09SREVSCTAKLQotLyoKLSAqIFRoaXMgaXMgaGFuZGxlZCB2ZXJ5IGRpZmZlcmVudGx5IG9uIE1pY3JvQmxhemUgc2luY2Ugb3V0IHBhZ2UgdGFibGVzCi0gKiBhcmUgYWxsIDAncyBhbmQgSSB3YW50IHRvIGJlIGFibGUgdG8gdXNlIHRoZXNlIHplcm8nZCBwYWdlcyBlbHNld2hlcmUKLSAqIGFzIHdlbGwgLSBpdCBnaXZlcyB1cyBxdWl0ZSBhIHNwZWVkdXAuCi0gKiAtLSBDb3J0Ci0gKi8KLWV4dGVybiBzdHJ1Y3QgcGd0YWJsZV9jYWNoZV9zdHJ1Y3QgewotCXVuc2lnbmVkIGxvbmcgKnBnZF9jYWNoZTsKLQl1bnNpZ25lZCBsb25nICpwdGVfY2FjaGU7Ci0JdW5zaWduZWQgbG9uZyBwZ3RhYmxlX2NhY2hlX3N6OwotfSBxdWlja2xpc3RzOwotCi0jZGVmaW5lIHBnZF9xdWlja2xpc3QJCShxdWlja2xpc3RzLnBnZF9jYWNoZSkKLSNkZWZpbmUgcG1kX3F1aWNrbGlzdAkJKCh1bnNpZ25lZCBsb25nICopMCkKLSNkZWZpbmUgcHRlX3F1aWNrbGlzdAkJKHF1aWNrbGlzdHMucHRlX2NhY2hlKQotI2RlZmluZSBwZ3RhYmxlX2NhY2hlX3NpemUJKHF1aWNrbGlzdHMucGd0YWJsZV9jYWNoZV9zeikKLQotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKnplcm9fY2FjaGU7IC8qIGhlYWQgbGlua2VkIGxpc3Qgb2YgcHJlLXplcm8nZCBwYWdlcyAqLwotZXh0ZXJuIGF0b21pY190IHplcm9fc3o7IC8qICMgY3VycmVudGx5IHByZS16ZXJvJ2QgcGFnZXMgKi8KLWV4dGVybiBhdG9taWNfdCB6ZXJvcGFnZV9oaXRzOyAvKiAjIHplcm8nZCBwYWdlcyByZXF1ZXN0IHRoYXQgd2UndmUgZG9uZSAqLwotZXh0ZXJuIGF0b21pY190IHplcm9wYWdlX2NhbGxzOyAvKiAjIHplcm8nZCBwYWdlcyByZXF1ZXN0IHRoYXQndmUgYmVlbiBtYWRlICovCi1leHRlcm4gYXRvbWljX3QgemVyb3RvdGFsOyAvKiAjIHBhZ2VzIHplcm8nZCBvdmVyIHRpbWUgKi8KLQotI2RlZmluZSB6ZXJvX3F1aWNrbGlzdAkJKHplcm9fY2FjaGUpCi0jZGVmaW5lIHplcm9fY2FjaGVfc3oJIAkoemVyb19zeikKLSNkZWZpbmUgemVyb19jYWNoZV9jYWxscwkoemVyb3BhZ2VfY2FsbHMpCi0jZGVmaW5lIHplcm9fY2FjaGVfaGl0cwkJKHplcm9wYWdlX2hpdHMpCi0jZGVmaW5lIHplcm9fY2FjaGVfdG90YWwJKHplcm90b3RhbCkKLQotLyoKLSAqIHJldHVybiBhIHByZS16ZXJvJ2QgcGFnZSBmcm9tIHRoZSBsaXN0LAotICogcmV0dXJuIE5VTEwgaWYgbm9uZSBhdmFpbGFibGUgLS0gQ29ydAotICovCi1leHRlcm4gdW5zaWduZWQgbG9uZyBnZXRfemVyb19wYWdlX2Zhc3Qodm9pZCk7CisjZGVmaW5lIF9fSEFWRV9BUkNIX1BURV9BTExPQ19PTkVfS0VSTkVMCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGdhbGxvYy5oPgogCiBleHRlcm4gdm9pZCBfX2JhZF9wdGUocG1kX3QgKnBtZCk7CiAKLXN0YXRpYyBpbmxpbmUgcGdkX3QgKmdldF9wZ2Rfc2xvdyh2b2lkKQorc3RhdGljIGlubGluZSBwZ2RfdCAqZ2V0X3BnZCh2b2lkKQogewotCXBnZF90ICpyZXQ7Ci0KLQlyZXQgPSAocGdkX3QgKilfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwsIFBHRElSX09SREVSKTsKLQlpZiAocmV0ICE9IE5VTEwpCi0JCWNsZWFyX3BhZ2UocmV0KTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAocGdkX3QgKilfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUx8X19HRlBfWkVSTywgMCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgcGdkX3QgKmdldF9wZ2RfZmFzdCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgKnJldDsKLQotCXJldCA9IHBnZF9xdWlja2xpc3Q7Ci0JaWYgKHJldCAhPSBOVUxMKSB7Ci0JCXBnZF9xdWlja2xpc3QgPSAodW5zaWduZWQgbG9uZyAqKSgqcmV0KTsKLQkJcmV0WzBdID0gMDsKLQkJcGd0YWJsZV9jYWNoZV9zaXplLS07Ci0JfSBlbHNlCi0JCXJldCA9ICh1bnNpZ25lZCBsb25nICopZ2V0X3BnZF9zbG93KCk7Ci0JcmV0dXJuIChwZ2RfdCAqKXJldDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGZyZWVfcGdkX2Zhc3QocGdkX3QgKnBnZCkKLXsKLQkqKHVuc2lnbmVkIGxvbmcgKiopcGdkID0gcGdkX3F1aWNrbGlzdDsKLQlwZ2RfcXVpY2tsaXN0ID0gKHVuc2lnbmVkIGxvbmcgKikgcGdkOwotCXBndGFibGVfY2FjaGVfc2l6ZSsrOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZnJlZV9wZ2Rfc2xvdyhwZ2RfdCAqcGdkKQorc3RhdGljIGlubGluZSB2b2lkIGZyZWVfcGdkKHBnZF90ICpwZ2QpCiB7CiAJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXBnZCk7CiB9CiAKLSNkZWZpbmUgcGdkX2ZyZWUobW0sIHBnZCkgICAgICAgIGZyZWVfcGdkX2Zhc3QocGdkKQotI2RlZmluZSBwZ2RfYWxsb2MobW0pCQlnZXRfcGdkX2Zhc3QoKQorI2RlZmluZSBwZ2RfZnJlZShtbSwgcGdkKQlmcmVlX3BnZChwZ2QpCisjZGVmaW5lIHBnZF9hbGxvYyhtbSkJCWdldF9wZ2QoKQogCiAjZGVmaW5lIHBtZF9wZ3RhYmxlKHBtZCkJcG1kX3BhZ2UocG1kKQogCkBAIC0xMTAsNTAgKzUwLDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGZyZWVfcGdkX3Nsb3cocGdkX3QgKnBnZCkKIAogZXh0ZXJuIHB0ZV90ICpwdGVfYWxsb2Nfb25lX2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2UgKnB0ZV9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0pCi17Ci0Jc3RydWN0IHBhZ2UgKnB0ZXBhZ2U7Ci0KLSNpZmRlZiBDT05GSUdfSElHSFBURQotCWludCBmbGFncyA9IEdGUF9LRVJORUwgfCBfX0dGUF9ISUdITUVNOwotI2Vsc2UKLQlpbnQgZmxhZ3MgPSBHRlBfS0VSTkVMOwotI2VuZGlmCi0KLQlwdGVwYWdlID0gYWxsb2NfcGFnZXMoZmxhZ3MsIDApOwotCWlmICghcHRlcGFnZSkKLQkJcmV0dXJuIE5VTEw7Ci0JY2xlYXJfaGlnaHBhZ2UocHRlcGFnZSk7Ci0JaWYgKCFwZ3RhYmxlX3BhZ2VfY3RvcihwdGVwYWdlKSkgewotCQlfX2ZyZWVfcGFnZShwdGVwYWdlKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCXJldHVybiBwdGVwYWdlOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgcHRlX2ZyZWVfZmFzdChwdGVfdCAqcHRlKQotewotCSoodW5zaWduZWQgbG9uZyAqKilwdGUgPSBwdGVfcXVpY2tsaXN0OwotCXB0ZV9xdWlja2xpc3QgPSAodW5zaWduZWQgbG9uZyAqKSBwdGU7Ci0JcGd0YWJsZV9jYWNoZV9zaXplKys7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHB0ZV90ICpwdGUpCi17Ci0JZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXB0ZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZV9zbG93KHN0cnVjdCBwYWdlICpwdGVwYWdlKQotewotCV9fZnJlZV9wYWdlKHB0ZXBhZ2UpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgcHRlX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCBwYWdlICpwdGVwYWdlKQotewotCXBndGFibGVfcGFnZV9kdG9yKHB0ZXBhZ2UpOwotCV9fZnJlZV9wYWdlKHB0ZXBhZ2UpOwotfQotCiAjZGVmaW5lIF9fcHRlX2ZyZWVfdGxiKHRsYiwgcHRlLCBhZGRyKQlwdGVfZnJlZSgodGxiKS0+bW0sIChwdGUpKQogCiAjZGVmaW5lIHBtZF9wb3B1bGF0ZShtbSwgcG1kLCBwdGUpIFwKQEAgLTE3MSwxMCArNjcsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHRlX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCBwYWdlICpwdGVwYWdlKQogI2RlZmluZSBfX3BtZF9mcmVlX3RsYih0bGIsIHgsIGFkZHIpCXBtZF9mcmVlKCh0bGIpLT5tbSwgeCkKICNkZWZpbmUgcGdkX3BvcHVsYXRlKG1tLCBwbWQsIHB0ZSkJQlVHKCkKIAotZXh0ZXJuIGludCBkb19jaGVja19wZ3RfY2FjaGUoaW50LCBpbnQpOwotCiAjZW5kaWYgLyogQ09ORklHX01NVSAqLwogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpCQlkbyB7IH0gd2hpbGUgKDApCi0KICNlbmRpZiAvKiBfQVNNX01JQ1JPQkxBWkVfUEdBTExPQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9taWNyb2JsYXplL2luY2x1ZGUvYXNtL3BndGFibGUuaAppbmRleCAxNDJkM2YwLi45NTRiNjlhIDEwMDY0NAotLS0gYS9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vcGd0YWJsZS5oCisrKyBiL2FyY2gvbWljcm9ibGF6ZS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTQ2LDggKzQ2LDYgQEAgZXh0ZXJuIGludCBtZW1faW5pdF9kb25lOwogCiAjZGVmaW5lIHN3YXBwZXJfcGdfZGlyICgocGdkX3QgKikgTlVMTCkKIAotI2RlZmluZSBwZ3RhYmxlX2NhY2hlX2luaXQoKQlkbyB7fSB3aGlsZSAoMCkKLQogI2RlZmluZSBhcmNoX2VudGVyX2xhenlfY3B1X21vZGUoKQlkbyB7fSB3aGlsZSAoMCkKIAogI2RlZmluZSBwZ3Byb3Rfbm9uY2FjaGVkX3djKHByb3QpCXByb3QKQEAgLTUyNiwxMSArNTI0LDYgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW9wYSh1bnNpZ25lZCBsb25nIGFkZHIpOwogLyogTmVlZHMgdG8gYmUgZGVmaW5lZCBoZXJlIGFuZCBub3QgaW4gbGludXgvbW0uaCwgYXMgaXQgaXMgYXJjaCBkZXBlbmRlbnQgKi8KICNkZWZpbmUga2Vybl9hZGRyX3ZhbGlkKGFkZHIpCSgxKQogCi0vKgotICogTm8gcGFnZSB0YWJsZSBjYWNoZXMgdG8gaW5pdGlhbGlzZQotICovCi0jZGVmaW5lIHBndGFibGVfY2FjaGVfaW5pdCgpCWRvIHsgfSB3aGlsZSAoMCkKLQogdm9pZCBkb19wYWdlX2ZhdWx0KHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAJCSAgIHVuc2lnbmVkIGxvbmcgZXJyb3JfY29kZSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWljcm9ibGF6ZS9pbmNsdWRlL2FzbS91YWNjZXNzLmggYi9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vdWFjY2Vzcy5oCmluZGV4IGJmZjJhNzEuLmExZjIwNmIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWljcm9ibGF6ZS9pbmNsdWRlL2FzbS91YWNjZXNzLmgKKysrIGIvYXJjaC9taWNyb2JsYXplL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaApAQCAtMTYzLDQ0ICsxNjMsMTUgQEAgZXh0ZXJuIGxvbmcgX191c2VyX2JhZCh2b2lkKTsKICAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgogICogT24gZXJyb3IsIHRoZSB2YXJpYWJsZSBAeCBpcyBzZXQgdG8gemVyby4KICAqLwotI2RlZmluZSBnZXRfdXNlcih4LCBwdHIpCQkJCQkJXAotCV9fZ2V0X3VzZXJfY2hlY2soKHgpLCAocHRyKSwgc2l6ZW9mKCoocHRyKSkpCi0KLSNkZWZpbmUgX19nZXRfdXNlcl9jaGVjayh4LCBwdHIsIHNpemUpCQkJCQlcCi0oewkJCQkJCQkJCVwKLQl1bnNpZ25lZCBsb25nIF9fZ3VfdmFsID0gMDsJCQkJCVwKLQljb25zdCB0eXBlb2YoKihwdHIpKSBfX3VzZXIgKl9fZ3VfYWRkciA9IChwdHIpOwkJCVwKLQlpbnQgX19ndV9lcnIgPSAwOwkJCQkJCVwKLQkJCQkJCQkJCVwKLQlpZiAoYWNjZXNzX29rKF9fZ3VfYWRkciwgc2l6ZSkpIHsJCQlcCi0JCXN3aXRjaCAoc2l6ZSkgewkJCQkJCVwKLQkJY2FzZSAxOgkJCQkJCQlcCi0JCQlfX2dldF91c2VyX2FzbSgibGJ1IiwgX19ndV9hZGRyLCBfX2d1X3ZhbCwJXAotCQkJCSAgICAgICBfX2d1X2Vycik7CQkJXAotCQkJYnJlYWs7CQkJCQkJXAotCQljYXNlIDI6CQkJCQkJCVwKLQkJCV9fZ2V0X3VzZXJfYXNtKCJsaHUiLCBfX2d1X2FkZHIsIF9fZ3VfdmFsLAlcCi0JCQkJICAgICAgIF9fZ3VfZXJyKTsJCQlcCi0JCQlicmVhazsJCQkJCQlcCi0JCWNhc2UgNDoJCQkJCQkJXAotCQkJX19nZXRfdXNlcl9hc20oImx3IiwgX19ndV9hZGRyLCBfX2d1X3ZhbCwJXAotCQkJCSAgICAgICBfX2d1X2Vycik7CQkJXAotCQkJYnJlYWs7CQkJCQkJXAotCQlkZWZhdWx0OgkJCQkJCVwKLQkJCV9fZ3VfZXJyID0gX191c2VyX2JhZCgpOwkJCVwKLQkJCWJyZWFrOwkJCQkJCVwKLQkJfQkJCQkJCQlcCi0JfSBlbHNlIHsJCQkJCQkJXAotCQlfX2d1X2VyciA9IC1FRkFVTFQ7CQkJCQlcCi0JfQkJCQkJCQkJXAotCXggPSAoX19mb3JjZSB0eXBlb2YoKihwdHIpKSlfX2d1X3ZhbDsJCQkJXAotCV9fZ3VfZXJyOwkJCQkJCQlcCisjZGVmaW5lIGdldF91c2VyKHgsIHB0cikgKHsJCQkJXAorCWNvbnN0IHR5cGVvZigqKHB0cikpIF9fdXNlciAqX19ndV9wdHIgPSAocHRyKTsJXAorCWFjY2Vzc19vayhfX2d1X3B0ciwgc2l6ZW9mKCpfX2d1X3B0cikpID8JXAorCQlfX2dldF91c2VyKHgsIF9fZ3VfcHRyKSA6IC1FRkFVTFQ7CVwKIH0pCiAKICNkZWZpbmUgX19nZXRfdXNlcih4LCBwdHIpCQkJCQkJXAogKHsJCQkJCQkJCQlcCiAJdW5zaWduZWQgbG9uZyBfX2d1X3ZhbCA9IDA7CQkJCQlcCi0JLyp1bnNpZ25lZCBsb25nIF9fZ3VfcHRyID0gKHVuc2lnbmVkIGxvbmcpKHB0cik7Ki8JCVwKIAlsb25nIF9fZ3VfZXJyOwkJCQkJCQlcCiAJc3dpdGNoIChzaXplb2YoKihwdHIpKSkgewkJCQkJXAogCWNhc2UgMToJCQkJCQkJCVwKQEAgLTIxMiw2ICsxODMsMTEgQEAgZXh0ZXJuIGxvbmcgX191c2VyX2JhZCh2b2lkKTsKIAljYXNlIDQ6CQkJCQkJCQlcCiAJCV9fZ2V0X3VzZXJfYXNtKCJsdyIsIChwdHIpLCBfX2d1X3ZhbCwgX19ndV9lcnIpOwlcCiAJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSA4OgkJCQkJCQkJXAorCQlfX2d1X2VyciA9IF9fY29weV9mcm9tX3VzZXIoJl9fZ3VfdmFsLCBwdHIsIDgpOwkJXAorCQlpZiAoX19ndV9lcnIpCQkJCQkJXAorCQkJX19ndV9lcnIgPSAtRUZBVUxUOwkJCQlcCisJCWJyZWFrOwkJCQkJCQlcCiAJZGVmYXVsdDoJCQkJCQkJXAogCQkvKiBfX2d1X3ZhbCA9IDA7IF9fZ3VfZXJyID0gLUVJTlZBTDsqLyBfX2d1X2VyciA9IF9fdXNlcl9iYWQoKTtcCiAJfQkJCQkJCQkJXApkaWZmIC0tZ2l0IGEvYXJjaC9taWNyb2JsYXplL2tlcm5lbC9yZXNldC5jIGIvYXJjaC9taWNyb2JsYXplL2tlcm5lbC9yZXNldC5jCmluZGV4IGZjYmUxZGEuLjVmNDcyMjkgMTAwNjQ0Ci0tLSBhL2FyY2gvbWljcm9ibGF6ZS9rZXJuZWwvcmVzZXQuYworKysgYi9hcmNoL21pY3JvYmxhemUva2VybmVsL3Jlc2V0LmMKQEAgLTgsODMgKzgsOSBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgotCi0vKiBUcmlnZ2VyIHNwZWNpZmljIGZ1bmN0aW9ucyAqLwotI2lmZGVmIENPTkZJR19HUElPTElCCi0KLSNpbmNsdWRlIDxsaW51eC9vZl9ncGlvLmg+Ci0KLXN0YXRpYyBpbnQgaGFuZGxlOyAvKiByZXNldCBwaW4gaGFuZGxlICovCi1zdGF0aWMgdW5zaWduZWQgaW50IHJlc2V0X3ZhbDsKLQotc3RhdGljIGludCBvZl9wbGF0Zm9ybV9yZXNldF9ncGlvX3Byb2JlKHZvaWQpCi17Ci0JaW50IHJldDsKLQloYW5kbGUgPSBvZl9nZXRfbmFtZWRfZ3BpbyhvZl9maW5kX25vZGVfYnlfcGF0aCgiLyIpLAotCQkJCSAgICJoYXJkLXJlc2V0LWdwaW9zIiwgMCk7Ci0KLQlpZiAoIWdwaW9faXNfdmFsaWQoaGFuZGxlKSkgewotCQlwcl9pbmZvKCJTa2lwcGluZyB1bmF2YWlsYWJsZSBSRVNFVCBncGlvICVkICglcylcbiIsCi0JCQkJaGFuZGxlLCAicmVzZXQiKTsKLQkJcmV0dXJuIC1FTk9ERVY7Ci0JfQotCi0JcmV0ID0gZ3Bpb19yZXF1ZXN0KGhhbmRsZSwgInJlc2V0Iik7Ci0JaWYgKHJldCA8IDApIHsKLQkJcHJfaW5mbygiR1BJTyBwaW4gaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCS8qIGdldCBjdXJyZW50IHNldHVwIHZhbHVlICovCi0JcmVzZXRfdmFsID0gZ3Bpb19nZXRfdmFsdWUoaGFuZGxlKTsKLQkvKiBGSVhNRSBtYXliZSB3b3J0aCB0byBwZXJmb3JtIGFueSBhY3Rpb24gKi8KLQlwcl9kZWJ1ZygiUmVzZXQ6IEdwaW8gb3V0cHV0IHN0YXRlOiAweCV4XG4iLCByZXNldF92YWwpOwotCi0JLyogU2V0dXAgR1BJTyBhcyBvdXRwdXQgKi8KLQlyZXQgPSBncGlvX2RpcmVjdGlvbl9vdXRwdXQoaGFuZGxlLCAwKTsKLQlpZiAocmV0IDwgMCkKLQkJZ290byBlcnI7Ci0KLQkvKiBTZXR1cCBvdXRwdXQgZGlyZWN0aW9uICovCi0JZ3Bpb19zZXRfdmFsdWUoaGFuZGxlLCAwKTsKLQotCXByX2luZm8oIlJFU0VUOiBSZWdpc3RlcmVkIGdwaW8gZGV2aWNlOiAlZCwgY3VycmVudCB2YWw6ICVkXG4iLAotCQkJCQkJCWhhbmRsZSwgcmVzZXRfdmFsKTsKLQlyZXR1cm4gMDsKLWVycjoKLQlncGlvX2ZyZWUoaGFuZGxlKTsKLQlyZXR1cm4gcmV0OwotfQotZGV2aWNlX2luaXRjYWxsKG9mX3BsYXRmb3JtX3Jlc2V0X2dwaW9fcHJvYmUpOwotCi0KLXN0YXRpYyB2b2lkIGdwaW9fc3lzdGVtX3Jlc2V0KHZvaWQpCi17Ci0JaWYgKGdwaW9faXNfdmFsaWQoaGFuZGxlKSkKLQkJZ3Bpb19zZXRfdmFsdWUoaGFuZGxlLCAxIC0gcmVzZXRfdmFsKTsKLQllbHNlCi0JCXByX25vdGljZSgiUmVzZXQgR1BJTyB1bmF2YWlsYWJsZSAtIGhhbHRpbmchXG4iKTsKLX0KLSNlbHNlCi1zdGF0aWMgdm9pZCBncGlvX3N5c3RlbV9yZXNldCh2b2lkKQotewotCXByX25vdGljZSgiTm8gcmVzZXQgR1BJTyBwcmVzZW50IC0gaGFsdGluZyFcbiIpOwotfQotCi12b2lkIG9mX3BsYXRmb3JtX3Jlc2V0X2dwaW9fcHJvYmUodm9pZCkKLXsKLQlyZXR1cm47Ci19Ci0jZW5kaWYKLQotdm9pZCBtYWNoaW5lX3Jlc3RhcnQoY2hhciAqY21kKQotewotCXByX25vdGljZSgiTWFjaGluZSByZXN0YXJ0Li4uXG4iKTsKLQlncGlvX3N5c3RlbV9yZXNldCgpOwotCXdoaWxlICgxKQotCQk7Ci19CisjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CiAKIHZvaWQgbWFjaGluZV9zaHV0ZG93bih2b2lkKQogewpAQCAtMTA2LDMgKzMyLDEyIEBAIHZvaWQgbWFjaGluZV9wb3dlcl9vZmYodm9pZCkKIAl3aGlsZSAoMSkKIAkJOwogfQorCit2b2lkIG1hY2hpbmVfcmVzdGFydChjaGFyICpjbWQpCit7CisJZG9fa2VybmVsX3Jlc3RhcnQoY21kKTsKKwkvKiBHaXZlIHRoZSByZXN0YXJ0IGhvb2sgMSBzIHRvIHRha2UgdXMgZG93biAqLworCW1kZWxheSgxMDAwKTsKKwlwcl9lbWVyZygiUmVib290IGZhaWxlZCAtLSBTeXN0ZW0gaGFsdGVkXG4iKTsKKwl3aGlsZSAoMSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL21pY3JvYmxhemUvbW0vY29uc2lzdGVudC5jIGIvYXJjaC9taWNyb2JsYXplL21tL2NvbnNpc3RlbnQuYwppbmRleCBiYzcwNDIyLi44YzVmMGMzIDEwMDY0NAotLS0gYS9hcmNoL21pY3JvYmxhemUvbW0vY29uc2lzdGVudC5jCisrKyBiL2FyY2gvbWljcm9ibGF6ZS9tbS9jb25zaXN0ZW50LmMKQEAgLTQsMjE3ICs0LDU2IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgogICogQ29weXJpZ2h0IChDKSAyMDEwIFBldGFMb2dpeAogICogQ29weXJpZ2h0IChDKSAyMDA1IEpvaG4gV2lsbGlhbXMgPGp3aWxsaWFtc0BpdGVlLnVxLmVkdS5hdT4KLSAqCi0gKiBCYXNlZCBvbiBQb3dlclBDIHZlcnNpb24gZGVyaXZlZCBmcm9tIGFyY2gvYXJtL21tL2NvbnNpc3RlbnQuYwotICogQ29weXJpZ2h0IChDKSAyMDAxIERhbiBNYWxlayAoZG1hbGVrQGpsYy5uZXQpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDAgUnVzc2VsbCBLaW5nCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgotI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgotI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KLSNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KLSNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvbWVtYmxvY2suaD4KLSNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZ2ZwLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW5vbmNvaGVyZW50Lmg+Ci0KLSNpbmNsdWRlIDxhc20vcGdhbGxvYy5oPgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0jaW5jbHVkZSA8bGludXgvaGFyZGlycS5oPgotI2luY2x1ZGUgPGxpbnV4L21tdV9jb250ZXh0Lmg+Ci0jaW5jbHVkZSA8YXNtL21tdS5oPgotI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KLSNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9jcHVpbmZvLmg+Ci0jaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KIAotI2lmbmRlZiBDT05GSUdfTU1VCi0vKiBJIGhhdmUgdG8gdXNlIGRjYWNoZSB2YWx1ZXMgYmVjYXVzZSBJIGNhbid0IHJlbGF0ZSBvbiByYW0gc2l6ZSAqLwotIyBkZWZpbmUgVU5DQUNIRURfU0hBRE9XX01BU0sgKGNwdWluZm8uZGNhY2hlX2hpZ2ggLSBjcHVpbmZvLmRjYWNoZV9iYXNlICsgMSkKLSNlbmRpZgotCi0vKgotICogQ29uc2lzdGVudCBtZW1vcnkgYWxsb2NhdG9ycy4gVXNlZCBmb3IgRE1BIGRldmljZXMgdGhhdCB3YW50IHRvCi0gKiBzaGFyZSB1bmNhY2hlZCBtZW1vcnkgd2l0aCB0aGUgcHJvY2Vzc29yIGNvcmUuCi0gKiBNeSBjcnVmdHkgbm8tTU1VIGFwcHJvYWNoIGlzIHNpbXBsZS4gSW4gdGhlIEhXIHBsYXRmb3JtIHdlIGNhbiBvcHRpb25hbGx5Ci0gKiBtaXJyb3IgdGhlIEREUiB1cCBhYm92ZSB0aGUgcHJvY2Vzc29yIGNhY2hlYWJsZSByZWdpb24uICBTbywgbWVtb3J5IGFjY2Vzc2VkCi0gKiBpbiB0aGlzIG1pcnJvciByZWdpb24gd2lsbCBub3QgYmUgY2FjaGVkLiAgSXQncyBhbGxvY2VkIGZyb20gdGhlIHNhbWUKLSAqIHBvb2wgYXMgbm9ybWFsIG1lbW9yeSwgYnV0IHRoZSBoYW5kbGUgd2UgcmV0dXJuIGlzIHNoaWZ0ZWQgdXAgaW50byB0aGUKLSAqIHVuY2FjaGVkIHJlZ2lvbi4gIFRoaXMgd2lsbCBubyBkb3VidCBjYXVzZSBiaWcgcHJvYmxlbXMgaWYgbWVtb3J5IGFsbG9jYXRlZAotICogaGVyZSBpcyBub3QgYWxzbyBmcmVlZCBwcm9wZXJseS4gLS0gSlcKLSAqLwotdm9pZCAqYXJjaF9kbWFfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSwKLQkJZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBsb25nIGF0dHJzKQordm9pZCBhcmNoX2RtYV9wcmVwX2NvaGVyZW50KHN0cnVjdCBwYWdlICpwYWdlLCBzaXplX3Qgc2l6ZSkKIHsKLQl1bnNpZ25lZCBsb25nIG9yZGVyLCB2YWRkcjsKLQl2b2lkICpyZXQ7Ci0JdW5zaWduZWQgaW50IGksIGVyciA9IDA7Ci0Jc3RydWN0IHBhZ2UgKnBhZ2UsICplbmQ7CisJcGh5c19hZGRyX3QgcGFkZHIgPSBwYWdlX3RvX3BoeXMocGFnZSk7CiAKLSNpZmRlZiBDT05GSUdfTU1VCi0JcGh5c19hZGRyX3QgcGE7Ci0Jc3RydWN0IHZtX3N0cnVjdCAqYXJlYTsKLQl1bnNpZ25lZCBsb25nIHZhOwotI2VuZGlmCi0KLQlpZiAoaW5faW50ZXJydXB0KCkpCi0JCUJVRygpOwotCi0JLyogT25seSBhbGxvY2F0ZSBwYWdlIHNpemUgYXJlYXMuICovCi0Jc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7Ci0Jb3JkZXIgPSBnZXRfb3JkZXIoc2l6ZSk7Ci0KLQl2YWRkciA9IF9fZ2V0X2ZyZWVfcGFnZXMoZ2ZwIHwgX19HRlBfWkVSTywgb3JkZXIpOwotCWlmICghdmFkZHIpCi0JCXJldHVybiBOVUxMOwotCi0JLyoKLQkgKiB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZXJlIGFyZSBubyBjYWNoZWxpbmVzIGluIHVzZSwKLQkgKiBvciB3b3JzZSBkaXJ0eSBpbiB0aGlzIGFyZWEuCi0JICovCi0JZmx1c2hfZGNhY2hlX3JhbmdlKHZpcnRfdG9fcGh5cygodm9pZCAqKXZhZGRyKSwKLQkJCQkJdmlydF90b19waHlzKCh2b2lkICopdmFkZHIpICsgc2l6ZSk7CisJZmx1c2hfZGNhY2hlX3JhbmdlKHBhZGRyLCBwYWRkciArIHNpemUpOworfQogCiAjaWZuZGVmIENPTkZJR19NTVUKLQlyZXQgPSAodm9pZCAqKXZhZGRyOwotCS8qCi0JICogSGVyZSdzIHRoZSBtYWdpYyEgIE5vdGUgaWYgdGhlIHVuY2FjaGVkIHNoYWRvdyBpcyBub3QgaW1wbGVtZW50ZWQsCi0JICogaXQncyB1cCB0byB0aGUgY2FsbGluZyBjb2RlIHRvIGFsc28gdGVzdCB0aGF0IGNvbmRpdGlvbiBhbmQgbWFrZQotCSAqIG90aGVyIGFycmFuZWdtZW50cywgc3VjaCBhcyBtYW51YWxseSBmbHVzaGluZyB0aGUgY2FjaGUgYW5kIHNvIG9uLgotCSAqLwotIyBpZmRlZiBDT05GSUdfWElMSU5YX1VOQ0FDSEVEX1NIQURPVwotCXJldCA9ICh2b2lkICopKCh1bnNpZ25lZCkgcmV0IHwgVU5DQUNIRURfU0hBRE9XX01BU0spOwotIyBlbmRpZgotCWlmICgodW5zaWduZWQgaW50KXJldCA+IGNwdWluZm8uZGNhY2hlX2Jhc2UgJiYKLQkJCQkodW5zaWduZWQgaW50KXJldCA8IGNwdWluZm8uZGNhY2hlX2hpZ2gpCisvKgorICogQ29uc2lzdGVudCBtZW1vcnkgYWxsb2NhdG9ycy4gVXNlZCBmb3IgRE1BIGRldmljZXMgdGhhdCB3YW50IHRvIHNoYXJlCisgKiB1bmNhY2hlZCBtZW1vcnkgd2l0aCB0aGUgcHJvY2Vzc29yIGNvcmUuICBNeSBjcnVmdHkgbm8tTU1VIGFwcHJvYWNoIGlzCisgKiBzaW1wbGUuICBJbiB0aGUgSFcgcGxhdGZvcm0gd2UgY2FuIG9wdGlvbmFsbHkgbWlycm9yIHRoZSBERFIgdXAgYWJvdmUgdGhlCisgKiBwcm9jZXNzb3IgY2FjaGVhYmxlIHJlZ2lvbi4gIFNvLCBtZW1vcnkgYWNjZXNzZWQgaW4gdGhpcyBtaXJyb3IgcmVnaW9uIHdpbGwKKyAqIG5vdCBiZSBjYWNoZWQuICBJdCdzIGFsbG9jZWQgZnJvbSB0aGUgc2FtZSBwb29sIGFzIG5vcm1hbCBtZW1vcnksIGJ1dCB0aGUKKyAqIGhhbmRsZSB3ZSByZXR1cm4gaXMgc2hpZnRlZCB1cCBpbnRvIHRoZSB1bmNhY2hlZCByZWdpb24uICBUaGlzIHdpbGwgbm8gZG91YnQKKyAqIGNhdXNlIGJpZyBwcm9ibGVtcyBpZiBtZW1vcnkgYWxsb2NhdGVkIGhlcmUgaXMgbm90IGFsc28gZnJlZWQgcHJvcGVybHkuIC0tIEpXCisgKgorICogSSBoYXZlIHRvIHVzZSBkY2FjaGUgdmFsdWVzIGJlY2F1c2UgSSBjYW4ndCByZWxhdGUgb24gcmFtIHNpemU6CisgKi8KKyNpZmRlZiBDT05GSUdfWElMSU5YX1VOQ0FDSEVEX1NIQURPVworI2RlZmluZSBVTkNBQ0hFRF9TSEFET1dfTUFTSyAoY3B1aW5mby5kY2FjaGVfaGlnaCAtIGNwdWluZm8uZGNhY2hlX2Jhc2UgKyAxKQorI2Vsc2UKKyNkZWZpbmUgVU5DQUNIRURfU0hBRE9XX01BU0sgMAorI2VuZGlmIC8qIENPTkZJR19YSUxJTlhfVU5DQUNIRURfU0hBRE9XICovCisKK3ZvaWQgKnVuY2FjaGVkX2tlcm5lbF9hZGRyZXNzKHZvaWQgKnB0cikKK3sKKwl1bnNpZ25lZCBsb25nIGFkZHIgPSAodW5zaWduZWQgbG9uZylwdHI7CisKKwlhZGRyIHw9IFVOQ0FDSEVEX1NIQURPV19NQVNLOworCWlmIChhZGRyID4gY3B1aW5mby5kY2FjaGVfYmFzZSAmJiBhZGRyIDwgY3B1aW5mby5kY2FjaGVfaGlnaCkKIAkJcHJfd2FybigiRVJST1I6IFlvdXIgY2FjaGUgY29oZXJlbnQgYXJlYSBpcyBDQUNIRUQhISFcbiIpOwotCi0JLyogZG1hX2hhbmRsZSBpcyBzYW1lIGFzIHBoeXNpY2FsIChzaGFkb3dlZCkgYWRkcmVzcyAqLwotCSpkbWFfaGFuZGxlID0gKGRtYV9hZGRyX3QpcmV0OwotI2Vsc2UKLQkvKiBBbGxvY2F0ZSBzb21lIGNvbW1vbiB2aXJ0dWFsIHNwYWNlIHRvIG1hcCB0aGUgbmV3IHBhZ2VzLiAqLwotCWFyZWEgPSBnZXRfdm1fYXJlYShzaXplLCBWTV9BTExPQyk7Ci0JaWYgKCFhcmVhKSB7Ci0JCWZyZWVfcGFnZXModmFkZHIsIG9yZGVyKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCXZhID0gKHVuc2lnbmVkIGxvbmcpIGFyZWEtPmFkZHI7Ci0JcmV0ID0gKHZvaWQgKil2YTsKLQotCS8qIFRoaXMgZ2l2ZXMgdXMgdGhlIHJlYWwgcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgZmlyc3QgcGFnZS4gKi8KLQkqZG1hX2hhbmRsZSA9IHBhID0gX192aXJ0X3RvX3BoeXModmFkZHIpOwotI2VuZGlmCi0KLQkvKgotCSAqIGZyZWUgd2FzdGVkIHBhZ2VzLiAgV2Ugc2tpcCB0aGUgZmlyc3QgcGFnZSBzaW5jZSB3ZSBrbm93Ci0JICogdGhhdCBpdCB3aWxsIGhhdmUgY291bnQgPSAxIGFuZCB3b24ndCByZXF1aXJlIGZyZWVpbmcuCi0JICogV2UgYWxzbyBtYXJrIHRoZSBwYWdlcyBpbiB1c2UgYXMgcmVzZXJ2ZWQgc28gdGhhdAotCSAqIHJlbWFwX3BhZ2VfcmFuZ2Ugd29ya3MuCi0JICovCi0JcGFnZSA9IHZpcnRfdG9fcGFnZSh2YWRkcik7Ci0JZW5kID0gcGFnZSArICgxIDw8IG9yZGVyKTsKLQotCXNwbGl0X3BhZ2UocGFnZSwgb3JkZXIpOwotCi0JZm9yIChpID0gMDsgaSA8IHNpemUgJiYgZXJyID09IDA7IGkgKz0gUEFHRV9TSVpFKSB7Ci0jaWZkZWYgQ09ORklHX01NVQotCQkvKiBNUzogVGhpcyBpcyB0aGUgd2hvbGUgbWFnaWMgLSB1c2UgY2FjaGUgaW5oaWJpdCBwYWdlcyAqLwotCQllcnIgPSBtYXBfcGFnZSh2YSArIGksIHBhICsgaSwgX1BBR0VfS0VSTkVMIHwgX1BBR0VfTk9fQ0FDSEUpOwotI2VuZGlmCi0KLQkJU2V0UGFnZVJlc2VydmVkKHBhZ2UpOwotCQlwYWdlKys7Ci0JfQotCi0JLyogRnJlZSB0aGUgb3RoZXJ3aXNlIHVudXNlZCBwYWdlcy4gKi8KLQl3aGlsZSAocGFnZSA8IGVuZCkgewotCQlfX2ZyZWVfcGFnZShwYWdlKTsKLQkJcGFnZSsrOwotCX0KLQotCWlmIChlcnIpIHsKLQkJZnJlZV9wYWdlcyh2YWRkciwgb3JkZXIpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0KLQlyZXR1cm4gcmV0OworCXJldHVybiAodm9pZCAqKWFkZHI7CiB9CiAKLSNpZmRlZiBDT05GSUdfTU1VCi1zdGF0aWMgcHRlX3QgKmNvbnNpc3RlbnRfdmlydF90b19wdGUodm9pZCAqdmFkZHIpCit2b2lkICpjYWNoZWRfa2VybmVsX2FkZHJlc3Modm9pZCAqcHRyKQogewotCXVuc2lnbmVkIGxvbmcgYWRkciA9ICh1bnNpZ25lZCBsb25nKXZhZGRyOworCXVuc2lnbmVkIGxvbmcgYWRkciA9ICh1bnNpZ25lZCBsb25nKXB0cjsKIAotCXJldHVybiBwdGVfb2Zmc2V0X2tlcm5lbChwbWRfb2Zmc2V0KHBnZF9vZmZzZXRfayhhZGRyKSwgYWRkciksIGFkZHIpOworCXJldHVybiAodm9pZCAqKShhZGRyICYgflVOQ0FDSEVEX1NIQURPV19NQVNLKTsKIH0KLQotbG9uZyBhcmNoX2RtYV9jb2hlcmVudF90b19wZm4oc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICp2YWRkciwKLQkJZG1hX2FkZHJfdCBkbWFfYWRkcikKLXsKLQlwdGVfdCAqcHRlcCA9IGNvbnNpc3RlbnRfdmlydF90b19wdGUodmFkZHIpOwotCi0JaWYgKHB0ZV9ub25lKCpwdGVwKSB8fCAhcHRlX3ByZXNlbnQoKnB0ZXApKQotCQlyZXR1cm4gMDsKLQotCXJldHVybiBwdGVfcGZuKCpwdGVwKTsKLX0KLSNlbmRpZgotCi0vKgotICogZnJlZSBwYWdlKHMpIGFzIGRlZmluZWQgYnkgdGhlIGFib3ZlIG1hcHBpbmcuCi0gKi8KLXZvaWQgYXJjaF9kbWFfZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCB2b2lkICp2YWRkciwKLQkJZG1hX2FkZHJfdCBkbWFfYWRkciwgdW5zaWduZWQgbG9uZyBhdHRycykKLXsKLQlzdHJ1Y3QgcGFnZSAqcGFnZTsKLQotCWlmIChpbl9pbnRlcnJ1cHQoKSkKLQkJQlVHKCk7Ci0KLQlzaXplID0gUEFHRV9BTElHTihzaXplKTsKLQotI2lmbmRlZiBDT05GSUdfTU1VCi0JLyogQ2xlYXIgU0hBRE9XX01BU0sgYml0IGluIGFkZHJlc3MsIGFuZCBmcmVlIGFzIHBlciB1c3VhbCAqLwotIyBpZmRlZiBDT05GSUdfWElMSU5YX1VOQ0FDSEVEX1NIQURPVwotCXZhZGRyID0gKHZvaWQgKikoKHVuc2lnbmVkKXZhZGRyICYgflVOQ0FDSEVEX1NIQURPV19NQVNLKTsKLSMgZW5kaWYKLQlwYWdlID0gdmlydF90b19wYWdlKHZhZGRyKTsKLQotCWRvIHsKLQkJX19mcmVlX3Jlc2VydmVkX3BhZ2UocGFnZSk7Ci0JCXBhZ2UrKzsKLQl9IHdoaWxlIChzaXplIC09IFBBR0VfU0laRSk7Ci0jZWxzZQotCWRvIHsKLQkJcHRlX3QgKnB0ZXAgPSBjb25zaXN0ZW50X3ZpcnRfdG9fcHRlKHZhZGRyKTsKLQkJdW5zaWduZWQgbG9uZyBwZm47Ci0KLQkJaWYgKCFwdGVfbm9uZSgqcHRlcCkgJiYgcHRlX3ByZXNlbnQoKnB0ZXApKSB7Ci0JCQlwZm4gPSBwdGVfcGZuKCpwdGVwKTsKLQkJCXB0ZV9jbGVhcigmaW5pdF9tbSwgKHVuc2lnbmVkIGludCl2YWRkciwgcHRlcCk7Ci0JCQlpZiAocGZuX3ZhbGlkKHBmbikpIHsKLQkJCQlwYWdlID0gcGZuX3RvX3BhZ2UocGZuKTsKLQkJCQlfX2ZyZWVfcmVzZXJ2ZWRfcGFnZShwYWdlKTsKLQkJCX0KLQkJfQotCQl2YWRkciArPSBQQUdFX1NJWkU7Ci0JfSB3aGlsZSAoc2l6ZSAtPSBQQUdFX1NJWkUpOwotCi0JLyogZmx1c2ggdGxiICovCi0JZmx1c2hfdGxiX2FsbCgpOwotI2VuZGlmCi19CisjZW5kaWYgLyogQ09ORklHX01NVSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9taWNyb2JsYXplL21tL3BndGFibGUuYyBiL2FyY2gvbWljcm9ibGF6ZS9tbS9wZ3RhYmxlLmMKaW5kZXggOGZlNTRmZC4uMDEwYmI5YyAxMDA2NDQKLS0tIGEvYXJjaC9taWNyb2JsYXplL21tL3BndGFibGUuYworKysgYi9hcmNoL21pY3JvYmxhemUvbW0vcGd0YWJsZS5jCkBAIC00NCwxMCArNDQsNiBAQCB1bnNpZ25lZCBsb25nIGlvcmVtYXBfYmFzZTsKIHVuc2lnbmVkIGxvbmcgaW9yZW1hcF9ib3Q7CiBFWFBPUlRfU1lNQk9MKGlvcmVtYXBfYm90KTsKIAotI2lmbmRlZiBDT05GSUdfU01QCi1zdHJ1Y3QgcGd0YWJsZV9jYWNoZV9zdHJ1Y3QgcXVpY2tsaXN0czsKLSNlbmRpZgotCiBzdGF0aWMgdm9pZCBfX2lvbWVtICpfX2lvcmVtYXAocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLAogCQl1bnNpZ25lZCBsb25nIGZsYWdzKQogewpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL0tjb25maWcgYi9hcmNoL21pcHMvS2NvbmZpZwppbmRleCBkNTBmYWZkLi5hMGJkOWJkIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvS2NvbmZpZworKysgYi9hcmNoL21pcHMvS2NvbmZpZwpAQCAtNSw3ICs1LDYgQEAKIAlzZWxlY3QgQVJDSF8zMkJJVF9PRkZfVCBpZiAhNjRCSVQKIAlzZWxlY3QgQVJDSF9CSU5GTVRfRUxGX1NUQVRFIGlmIE1JUFNfRlBfU1VQUE9SVAogCXNlbGVjdCBBUkNIX0NMT0NLU09VUkNFX0RBVEEKLQlzZWxlY3QgQVJDSF9IQVNfRUxGX1JBTkRPTUlaRQogCXNlbGVjdCBBUkNIX0hBU19USUNLX0JST0FEQ0FTVCBpZiBHRU5FUklDX0NMT0NLRVZFTlRTX0JST0FEQ0FTVAogCXNlbGVjdCBBUkNIX0hBU19VQlNBTl9TQU5JVElaRV9BTEwKIAlzZWxlY3QgQVJDSF9TVVBQT1JUU19VUFJPQkVTCkBAIC0xMyw2ICsxMiw3IEBACiAJc2VsZWN0IEFSQ0hfVVNFX0NNUFhDSEdfTE9DS1JFRiBpZiA2NEJJVAogCXNlbGVjdCBBUkNIX1VTRV9RVUVVRURfUldMT0NLUwogCXNlbGVjdCBBUkNIX1VTRV9RVUVVRURfU1BJTkxPQ0tTCisJc2VsZWN0IEFSQ0hfV0FOVF9ERUZBVUxUX1RPUERPV05fTU1BUF9MQVlPVVQgaWYgTU1VCiAJc2VsZWN0IEFSQ0hfV0FOVF9JUENfUEFSU0VfVkVSU0lPTgogCXNlbGVjdCBCVUlMRFRJTUVfRVhUQUJMRV9TT1JUCiAJc2VsZWN0IENMT05FX0JBQ0tXQVJEUwpAQCAtMjIsNiArMjIsNyBAQAogCXNlbGVjdCBHRU5FUklDX0NMT0NLRVZFTlRTCiAJc2VsZWN0IEdFTkVSSUNfQ01PU19VUERBVEUKIAlzZWxlY3QgR0VORVJJQ19DUFVfQVVUT1BST0JFCisJc2VsZWN0IEdFTkVSSUNfR0VUVElNRU9GREFZCiAJc2VsZWN0IEdFTkVSSUNfSU9NQVAKIAlzZWxlY3QgR0VORVJJQ19JUlFfUFJPQkUKIAlzZWxlY3QgR0VORVJJQ19JUlFfU0hPVwpAQCAtNDMsNyArNDQsOCBAQAogCXNlbGVjdCBIQVZFX0FSQ0hfTU1BUF9STkRfQ09NUEFUX0JJVFMgaWYgTU1VICYmIENPTVBBVAogCXNlbGVjdCBIQVZFX0FSQ0hfU0VDQ09NUF9GSUxURVIKIAlzZWxlY3QgSEFWRV9BUkNIX1RSQUNFSE9PSwotCXNlbGVjdCBIQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0UgaWYgQ1BVX1NVUFBPUlRTX0hVR0VQQUdFUyAmJiA2NEJJVAorCXNlbGVjdCBIQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0UgaWYgQ1BVX1NVUFBPUlRTX0hVR0VQQUdFUworCXNlbGVjdCBIQVZFX0FTTV9NT0RWRVJTSU9OUwogCXNlbGVjdCBIQVZFX0VCUEZfSklUIGlmICghQ1BVX01JQ1JPTUlQUykKIAlzZWxlY3QgSEFWRV9DT05URVhUX1RSQUNLSU5HCiAJc2VsZWN0IEhBVkVfQ09QWV9USFJFQURfVExTCkBAIC03NCw2ICs3Niw3IEBACiAJc2VsZWN0IEhBVkVfU1RBQ0tQUk9URUNUT1IKIAlzZWxlY3QgSEFWRV9TWVNDQUxMX1RSQUNFUE9JTlRTCiAJc2VsZWN0IEhBVkVfVklSVF9DUFVfQUNDT1VOVElOR19HRU4gaWYgNjRCSVQgfHwgIVNNUAorCXNlbGVjdCBIQVZFX0dFTkVSSUNfVkRTTwogCXNlbGVjdCBJUlFfRk9SQ0VEX1RIUkVBRElORwogCXNlbGVjdCBJU0EgaWYgRUlTQQogCXNlbGVjdCBNT0RVTEVTX1VTRV9FTEZfUkVMQSBpZiBNT0RVTEVTICYmIDY0QklUCkBAIC04Miw2ICs4NSw3IEBACiAJc2VsZWN0IFJUQ19MSUIKIAlzZWxlY3QgU1lTQ1RMX0VYQ0VQVElPTl9UUkFDRQogCXNlbGVjdCBWSVJUX1RPX0JVUworCXNlbGVjdCBBUkNIX0hBU19QVEVfU1BFQ0lBTCBpZiAhKDMyQklUICYmIENQVV9IQVNfUklYSSkKIAogbWVudSAiTWFjaGluZSBzZWxlY3Rpb24iCiAKQEAgLTM4NCw2ICszODgsNyBAQAogCXNlbGVjdCBTWVNfU1VQUE9SVFNfMzJCSVRfS0VSTkVMCiAJc2VsZWN0IFNZU19TVVBQT1JUU19MSVRUTEVfRU5ESUFOCiAJc2VsZWN0IFNZU19TVVBQT1JUU19aQk9PVF9VQVJUMTY1NTAKKwlzZWxlY3QgQ1BVX1NVUFBPUlRTX0hVR0VQQUdFUwogCXNlbGVjdCBETUFfTk9OQ09IRVJFTlQKIAlzZWxlY3QgSVJRX01JUFNfQ1BVCiAJc2VsZWN0IFBJTkNUUkwKQEAgLTExMTksNyArMTEyNCwxNCBAQAogCiBjb25maWcgRE1BX05PTkNPSEVSRU5UCiAJYm9vbAotCXNlbGVjdCBBUkNIX0hBU19ETUFfTU1BUF9QR1BST1QKKwkjCisJIyBNSVBTIGFsbG93cyBtaXhpbmcgInNsaWdodGx5IGRpZmZlcmVudCIgQ2FjaGVhYmlsaXR5IGFuZCBDb2hlcmVuY3kKKwkjIEF0dHJpYnV0ZSBiaXRzLiAgSXQgaXMgYmVsaWV2ZWQgdGhhdCB0aGUgdW5jYWNoZWQgYWNjZXNzIHRocm91Z2gKKwkjIEtTRUcxIGFuZCB0aGUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgInVuY2FjaGVkIGFjY2VsZXJhdGVkIiB1c2VkCisJIyBieSBwZ3Byb3Rfd3JpdGNvbWJpbmUgY2FuIGJlIG1peGVkLCBhbmQgdGhlIGxhdHRlciBzb21ldGltZXMgcHJvdmlkZXMKKwkjIHNpZ25pZmljYW50IGFkdmFudGFnZXMuCisJIworCXNlbGVjdCBBUkNIX0hBU19ETUFfV1JJVEVfQ09NQklORQogCXNlbGVjdCBBUkNIX0hBU19TWU5DX0RNQV9GT1JfREVWSUNFCiAJc2VsZWN0IEFSQ0hfSEFTX1VOQ0FDSEVEX1NFR01FTlQKIAlzZWxlY3QgTkVFRF9ETUFfTUFQX1NUQVRFCkBAIC0xMjIzLDcgKzEyMzUsNyBAQAogCiBjb25maWcgU1lTX1NVUFBPUlRTX0hVR0VUTEJGUwogCWJvb2wKLQlkZXBlbmRzIG9uIENQVV9TVVBQT1JUU19IVUdFUEFHRVMgJiYgNjRCSVQKKwlkZXBlbmRzIG9uIENQVV9TVVBQT1JUU19IVUdFUEFHRVMKIAlkZWZhdWx0IHkKIAogY29uZmlnIE1JUFNfSFVHRV9UTEJfU1VQUE9SVApAQCAtMTU3MSw2ICsxNTgzLDcgQEAKIAlkZXBlbmRzIG9uIFNZU19IQVNfQ1BVX1IzMDAwCiAJc2VsZWN0IENQVV9IQVNfV0IKIAlzZWxlY3QgQ1BVX0hBU19MT0FEX1NUT1JFX0xSCisJc2VsZWN0IENQVV9SM0tfVExCCiAJc2VsZWN0IENQVV9TVVBQT1JUU18zMkJJVF9LRVJORUwKIAlzZWxlY3QgQ1BVX1NVUFBPUlRTX0hJR0hNRU0KIAloZWxwCkBAIC0xNTg2LDYgKzE1OTksNyBAQAogCWRlcGVuZHMgb24gU1lTX0hBU19DUFVfVFgzOVhYCiAJc2VsZWN0IENQVV9TVVBQT1JUU18zMkJJVF9LRVJORUwKIAlzZWxlY3QgQ1BVX0hBU19MT0FEX1NUT1JFX0xSCisJc2VsZWN0IENQVV9SM0tfVExCCiAKIGNvbmZpZyBDUFVfVlI0MVhYCiAJYm9vbCAiUjQxeHgiCkBAIC0xNTk5LDE1ICsxNjEzLDYgQEAKIAkgIGtlcm5lbCBidWlsdCB3aXRoIHRoaXMgb3B0aW9uIHdpbGwgbm90IHJ1biBvbiBhbnkgb3RoZXIgdHlwZSBvZgogCSAgcHJvY2Vzc29yIG9yIHZpY2UgdmVyc2EuCiAKLWNvbmZpZyBDUFVfUjQzMDAKLQlib29sICJSNDMwMCIKLQlkZXBlbmRzIG9uIFNZU19IQVNfQ1BVX1I0MzAwCi0Jc2VsZWN0IENQVV9TVVBQT1JUU18zMkJJVF9LRVJORUwKLQlzZWxlY3QgQ1BVX1NVUFBPUlRTXzY0QklUX0tFUk5FTAotCXNlbGVjdCBDUFVfSEFTX0xPQURfU1RPUkVfTFIKLQloZWxwCi0JICBNSVBTIFRlY2hub2xvZ2llcyBSNDMwMC1zZXJpZXMgcHJvY2Vzc29ycy4KLQogY29uZmlnIENQVV9SNFgwMAogCWJvb2wgIlI0eDAwIgogCWRlcGVuZHMgb24gU1lTX0hBU19DUFVfUjRYMDAKQEAgLTE2MzgsMTQgKzE2NDMsNiBAQAogCWhlbHAKIAkgIE1JUFMgVGVjaG5vbG9naWVzIFI1MDAwLXNlcmllcyBwcm9jZXNzb3JzIG90aGVyIHRoYW4gdGhlIE5ldmFkYS4KIAotY29uZmlnIENQVV9SNTQzMgotCWJvb2wgIlI1NDMyIgotCWRlcGVuZHMgb24gU1lTX0hBU19DUFVfUjU0MzIKLQlzZWxlY3QgQ1BVX1NVUFBPUlRTXzMyQklUX0tFUk5FTAotCXNlbGVjdCBDUFVfU1VQUE9SVFNfNjRCSVRfS0VSTkVMCi0Jc2VsZWN0IENQVV9TVVBQT1JUU19IVUdFUEFHRVMKLQlzZWxlY3QgQ1BVX0hBU19MT0FEX1NUT1JFX0xSCi0KIGNvbmZpZyBDUFVfUjU1MDAKIAlib29sICJSNTUwMCIKIAlkZXBlbmRzIG9uIFNZU19IQVNfQ1BVX1I1NTAwCkBAIC0xNjY3LDE2ICsxNjY0LDYgQEAKIAloZWxwCiAJICBRRUQgLyBQTUMtU2llcnJhIFJNNTJ4eC1zZXJpZXMgKCJOZXZhZGEiKSBwcm9jZXNzb3JzLgogCi1jb25maWcgQ1BVX1I4MDAwCi0JYm9vbCAiUjgwMDAiCi0JZGVwZW5kcyBvbiBTWVNfSEFTX0NQVV9SODAwMAotCXNlbGVjdCBDUFVfSEFTX1BSRUZFVENICi0Jc2VsZWN0IENQVV9IQVNfTE9BRF9TVE9SRV9MUgotCXNlbGVjdCBDUFVfU1VQUE9SVFNfNjRCSVRfS0VSTkVMCi0JaGVscAotCSAgTUlQUyBUZWNobm9sb2dpZXMgUjgwMDAgcHJvY2Vzc29ycy4gIE5vdGUgdGhlc2UgcHJvY2Vzc29ycyBhcmUKLQkgIHVuY29tbW9uIGFuZCB0aGUgc3VwcG9ydCBmb3IgdGhlbSBpcyBpbmNvbXBsZXRlLgotCiBjb25maWcgQ1BVX1IxMDAwMAogCWJvb2wgIlIxMDAwMCIKIAlkZXBlbmRzIG9uIFNZU19IQVNfQ1BVX1IxMDAwMApAQCAtMTk2OSw5ICsxOTU2LDYgQEAKIGNvbmZpZyBTWVNfSEFTX0NQVV9WUjQxWFgKIAlib29sCiAKLWNvbmZpZyBTWVNfSEFTX0NQVV9SNDMwMAotCWJvb2wKLQogY29uZmlnIFNZU19IQVNfQ1BVX1I0WDAwCiAJYm9vbAogCkBAIC0xOTgxLDE4ICsxOTY1LDEyIEBACiBjb25maWcgU1lTX0hBU19DUFVfUjUwMDAKIAlib29sCiAKLWNvbmZpZyBTWVNfSEFTX0NQVV9SNTQzMgotCWJvb2wKLQogY29uZmlnIFNZU19IQVNfQ1BVX1I1NTAwCiAJYm9vbAogCiBjb25maWcgU1lTX0hBU19DUFVfTkVWQURBCiAJYm9vbAogCi1jb25maWcgU1lTX0hBU19DUFVfUjgwMDAKLQlib29sCi0KIGNvbmZpZyBTWVNfSEFTX0NQVV9SMTAwMDAKIAlib29sCiAJc2VsZWN0IEFSQ0hfSEFTX1NZTkNfRE1BX0ZPUl9DUFUgaWYgRE1BX05PTkNPSEVSRU5UCkBAIC0yMTEwLDYgKzIwODgsNyBAQAogCWJvb2wKIGNvbmZpZyBDUFVfU1VQUE9SVFNfSFVHRVBBR0VTCiAJYm9vbAorCWRlcGVuZHMgb24gISgzMkJJVCAmJiAoQVJDSF9QSFlTX0FERFJfVF82NEJJVCB8fCBFVkEpKQogY29uZmlnIENQVV9TVVBQT1JUU19VTkNBQ0hFRF9BQ0NFTEVSQVRFRAogCWJvb2wKIGNvbmZpZyBNSVBTX1BHRF9DMF9DT05URVhUCkBAIC0yMTkyLDEzICsyMTcxLDEzIEBACiAKIGNvbmZpZyBQQUdFX1NJWkVfOEtCCiAJYm9vbCAiOGtCIgotCWRlcGVuZHMgb24gQ1BVX1I4MDAwIHx8IENQVV9DQVZJVU1fT0NURU9OCisJZGVwZW5kcyBvbiBDUFVfQ0FWSVVNX09DVEVPTgogCWRlcGVuZHMgb24gIU1JUFNfVkFfQklUU180OAogCWhlbHAKIAkgIFVzaW5nIDhrQiBwYWdlIHNpemUgd2lsbCByZXN1bHQgaW4gaGlnaGVyIHBlcmZvcm1hbmNlIGtlcm5lbCBhdAogCSAgdGhlIHByaWNlIG9mIGhpZ2hlciBtZW1vcnkgY29uc3VtcHRpb24uICBUaGlzIG9wdGlvbiBpcyBhdmFpbGFibGUKLQkgIG9ubHkgb24gUjgwMDAgYW5kIGNuTUlQUyBwcm9jZXNzb3JzLiAgTm90ZSB0aGF0IHlvdSB3aWxsIG5lZWQgYQotCSAgc3VpdGFibGUgTGludXggZGlzdHJpYnV0aW9uIHRvIHN1cHBvcnQgdGhpcy4KKwkgIG9ubHkgb24gY25NSVBTIHByb2Nlc3NvcnMuICBOb3RlIHRoYXQgeW91IHdpbGwgbmVlZCBhIHN1aXRhYmxlIExpbnV4CisJICBkaXN0cmlidXRpb24gdG8gc3VwcG9ydCB0aGlzLgogCiBjb25maWcgUEFHRV9TSVpFXzE2S0IKIAlib29sICIxNmtCIgpAQCAtMjI4OSw3ICsyMjY4LDcgQEAKIAogY29uZmlnIENQVV9HRU5FUklDX0RVTVBfVExCCiAJYm9vbAotCWRlZmF1bHQgeSBpZiAhKENQVV9SMzAwMCB8fCBDUFVfUjgwMDAgfHwgQ1BVX1RYMzlYWCkKKwlkZWZhdWx0IHkgaWYgIShDUFVfUjMwMDAgfHwgQ1BVX1RYMzlYWCkKIAogY29uZmlnIE1JUFNfRlBfU1VQUE9SVAogCWJvb2wgIkZsb2F0aW5nIFBvaW50IHN1cHBvcnQiIGlmIEVYUEVSVApAQCAtMjMxMSw2ICsyMjkwLDkgQEAKIAlkZXBlbmRzIG9uIE1JUFNfRlBfU1VQUE9SVAogCWRlZmF1bHQgeSBpZiBDUFVfUjMwMDAgfHwgQ1BVX1RYMzlYWAogCitjb25maWcgQ1BVX1IzS19UTEIKKwlib29sCisKIGNvbmZpZyBDUFVfUjRLX0ZQVQogCWJvb2wKIAlkZXBlbmRzIG9uIE1JUFNfRlBfU1VQUE9SVApAQCAtMjMxOCw3ICsyMzAwLDcgQEAKIAogY29uZmlnIENQVV9SNEtfQ0FDSEVfVExCCiAJYm9vbAotCWRlZmF1bHQgeSBpZiAhKENQVV9SMzAwMCB8fCBDUFVfUjgwMDAgfHwgQ1BVX1NCMSB8fCBDUFVfVFgzOVhYIHx8IENQVV9DQVZJVU1fT0NURU9OKQorCWRlZmF1bHQgeSBpZiAhKENQVV9SM0tfVExCIHx8IENQVV9TQjEgfHwgQ1BVX0NBVklVTV9PQ1RFT04pCiAKIGNvbmZpZyBNSVBTX01UX1NNUAogCWJvb2wgIk1JUFMgTVQgU01QIHN1cHBvcnQgKDEgVEMgb24gZWFjaCBhdmFpbGFibGUgVlBFKSIKQEAgLTI1NzUsNyArMjU1Nyw2IEBACiBjb25maWcgTUlQU19BU0lEX1NISUZUCiAJaW50CiAJZGVmYXVsdCA2IGlmIENQVV9SMzAwMCB8fCBDUFVfVFgzOVhYCi0JZGVmYXVsdCA0IGlmIENQVV9SODAwMAogCWRlZmF1bHQgMAogCiBjb25maWcgTUlQU19BU0lEX0JJVFMKQEAgLTMwNjksMTAgKzMwNTAsNiBAQAogCWJvb2wKIAlkZWZhdWx0IHkKIAotY29uZmlnIEhBVkVfTEFURU5DWVRPUF9TVVBQT1JUCi0JYm9vbAotCWRlZmF1bHQgeQotCiBjb25maWcgUEdUQUJMRV9MRVZFTFMKIAlpbnQKIAlkZWZhdWx0IDQgaWYgUEFHRV9TSVpFXzRLQiAmJiBNSVBTX1ZBX0JJVFNfNDgKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9NYWtlZmlsZSBiL2FyY2gvbWlwcy9NYWtlZmlsZQppbmRleCBlY2VmZjliLi5jZGMwOWI3IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvTWFrZWZpbGUKKysrIGIvYXJjaC9taXBzL01ha2VmaWxlCkBAIC0xNjMsNyArMTYzLDYgQEAKICMKIGNmbGFncy0kKENPTkZJR19DUFVfUjMwMDApCSs9IC1tYXJjaD1yMzAwMAogY2ZsYWdzLSQoQ09ORklHX0NQVV9UWDM5WFgpCSs9IC1tYXJjaD1yMzkwMAotY2ZsYWdzLSQoQ09ORklHX0NQVV9SNDMwMCkJKz0gLW1hcmNoPXI0MzAwIC1XYSwtLXRyYXAKIGNmbGFncy0kKENPTkZJR19DUFVfVlI0MVhYKQkrPSAtbWFyY2g9cjQxMDAgLVdhLC0tdHJhcAogY2ZsYWdzLSQoQ09ORklHX0NQVV9SNFgwMCkJKz0gLW1hcmNoPXI0NjAwIC1XYSwtLXRyYXAKIGNmbGFncy0kKENPTkZJR19DUFVfVFg0OVhYKQkrPSAtbWFyY2g9cjQ2MDAgLVdhLC0tdHJhcApAQCAtMTc0LDggKzE3Myw2IEBACiBjZmxhZ3MtJChDT05GSUdfQ1BVX01JUFM2NF9SMikJKz0gLW1hcmNoPW1pcHM2NHIyIC1XYSwtLXRyYXAKIGNmbGFncy0kKENPTkZJR19DUFVfTUlQUzY0X1I2KQkrPSAtbWFyY2g9bWlwczY0cjYgLVdhLC0tdHJhcAogY2ZsYWdzLSQoQ09ORklHX0NQVV9SNTAwMCkJKz0gLW1hcmNoPXI1MDAwIC1XYSwtLXRyYXAKLWNmbGFncy0kKENPTkZJR19DUFVfUjU0MzIpCSs9ICQoY2FsbCBjYy1vcHRpb24sLW1hcmNoPXI1NDAwLC1tYXJjaD1yNTAwMCkgXAotCQkJLVdhLC0tdHJhcAogY2ZsYWdzLSQoQ09ORklHX0NQVV9SNTUwMCkJKz0gJChjYWxsIGNjLW9wdGlvbiwtbWFyY2g9cjU1MDAsLW1hcmNoPXI1MDAwKSBcCiAJCQktV2EsLS10cmFwCiBjZmxhZ3MtJChDT05GSUdfQ1BVX05FVkFEQSkJKz0gJChjYWxsIGNjLW9wdGlvbiwtbWFyY2g9cm01MjAwLC1tYXJjaD1yNTAwMCkgXApAQCAtMTg2LDcgKzE4Myw2IEBACiAJCQktV2EsLS10cmFwCiBjZmxhZ3MtJChDT05GSUdfQ1BVX1NCMSkJKz0gJChjYWxsIGNjLW9wdGlvbiwtbW5vLW1kbXgpCiBjZmxhZ3MtJChDT05GSUdfQ1BVX1NCMSkJKz0gJChjYWxsIGNjLW9wdGlvbiwtbW5vLW1pcHMzZCkKLWNmbGFncy0kKENPTkZJR19DUFVfUjgwMDApCSs9IC1tYXJjaD1yODAwMCAtV2EsLS10cmFwCiBjZmxhZ3MtJChDT05GSUdfQ1BVX1IxMDAwMCkJKz0gJChjYWxsIGNjLW9wdGlvbiwtbWFyY2g9cjEwMDAwLC1tYXJjaD1yODAwMCkgXAogCQkJLVdhLC0tdHJhcAogY2ZsYWdzLSQoQ09ORklHX0NQVV9DQVZJVU1fT0NURU9OKSArPSAkKGNhbGwgY2Mtb3B0aW9uLC1tYXJjaD1vY3Rlb24pIC1XYSwtLXRyYXAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9iY200N3h4L2JvYXJkLmMgYi9hcmNoL21pcHMvYmNtNDd4eC9ib2FyZC5jCmluZGV4IGE4MDkxMGQuLjM1MjY2YTcgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9iY200N3h4L2JvYXJkLmMKKysrIGIvYXJjaC9taXBzL2JjbTQ3eHgvYm9hcmQuYwpAQCAtMTYwLDYgKzE2MCw3IEBAIHN0cnVjdCBiY200N3h4X2JvYXJkX3R5cGVfbGlzdDEgYmNtNDd4eF9ib2FyZF9saXN0X2JvYXJkX2lkW10gX19pbml0Y29uc3QgPSB7CiAJe3tCQ000N1hYX0JPQVJEX0xVWFVMX1hWV19QMzBfVjEsICJMdXh1bCBYVlctUDMwIFYxIn0sICJsdXh1bF94dndwMzBfdjEifSwKIAl7e0JDTTQ3WFhfQk9BUkRfTFVYVUxfWFdSXzYwMF9WMSwgIkx1eHVsIFhXUi02MDAgVjEifSwgImx1eHVsX3h3cjYwMF92MSJ9LAogCXt7QkNNNDdYWF9CT0FSRF9MVVhVTF9YV1JfMTc1MF9WMSwgIkx1eHVsIFhXUi0xNzUwIFYxIn0sICJsdXh1bF94d3IxNzUwX3YxIn0sCisJe3tCQ000N1hYX0JPQVJEX05FVEdFQVJfUjYyMDBfVjEsICJOZXRnZWFyIFI2MjAwIFYxIn0sICJVMTJIMTkyVDAwX05FVEdFQVIifSwKIAl7e0JDTTQ3WFhfQk9BUkRfTkVUR0VBUl9XR1I2MTRWOCwgIk5ldGdlYXIgV0dSNjE0IFY4In0sICJVMTJIMDcyVDAwX05FVEdFQVIifSwKIAl7e0JDTTQ3WFhfQk9BUkRfTkVUR0VBUl9XR1I2MTRWOSwgIk5ldGdlYXIgV0dSNjE0IFY5In0sICJVMTJIMDk0VDAwX05FVEdFQVIifSwKIAl7e0JDTTQ3WFhfQk9BUkRfTkVUR0VBUl9XR1I2MTRfVjEwLCAiTmV0Z2VhciBXR1I2MTQgVjEwIn0sICJVMTJIMTM5VDAxX05FVEdFQVIifSwKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9iY200N3h4L2J1dHRvbnMuYyBiL2FyY2gvbWlwcy9iY200N3h4L2J1dHRvbnMuYwppbmRleCA2N2I2YTc4Li41MzVkODRhIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvYmNtNDd4eC9idXR0b25zLmMKKysrIGIvYXJjaC9taXBzL2JjbTQ3eHgvYnV0dG9ucy5jCkBAIC0zODUsNiArMzg1LDEzIEBAIGJjbTQ3eHhfYnV0dG9uc19tb3Rvcm9sYV93cjg1MGd2MnYzW10gX19pbml0Y29uc3QgPSB7CiAvKiBOZXRnZWFyICovCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ3Bpb19rZXlzX2J1dHRvbgorYmNtNDd4eF9idXR0b25zX25ldGdlYXJfcjYyMDBfdjFbXSBfX2luaXRjb25zdCA9IHsKKwlCQ000N1hYX0dQSU9fS0VZKDIsIEtFWV9SRktJTEwpLAorCUJDTTQ3WFhfR1BJT19LRVkoMywgS0VZX1JFU1RBUlQpLAorCUJDTTQ3WFhfR1BJT19LRVkoNCwgS0VZX1dQU19CVVRUT04pLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBncGlvX2tleXNfYnV0dG9uCiBiY200N3h4X2J1dHRvbnNfbmV0Z2Vhcl93bmRyMzQwMHYxW10gX19pbml0Y29uc3QgPSB7CiAJQkNNNDdYWF9HUElPX0tFWSg0LCBLRVlfUkVTVEFSVCksCiAJQkNNNDdYWF9HUElPX0tFWSg2LCBLRVlfV1BTX0JVVFRPTiksCkBAIC02NjQsNiArNjcxLDkgQEAgaW50IF9faW5pdCBiY200N3h4X2J1dHRvbnNfcmVnaXN0ZXIodm9pZCkKIAkJZXJyID0gYmNtNDd4eF9jb3B5X2JkYXRhKGJjbTQ3eHhfYnV0dG9uc19tb3Rvcm9sYV93cjg1MGd2MnYzKTsKIAkJYnJlYWs7CiAKKwljYXNlIEJDTTQ3WFhfQk9BUkRfTkVUR0VBUl9SNjIwMF9WMToKKwkJZXJyID0gYmNtNDd4eF9jb3B5X2JkYXRhKGJjbTQ3eHhfYnV0dG9uc19uZXRnZWFyX3I2MjAwX3YxKTsKKwkJYnJlYWs7CiAJY2FzZSBCQ000N1hYX0JPQVJEX05FVEdFQVJfV05EUjM0MDBWMToKIAkJZXJyID0gYmNtNDd4eF9jb3B5X2JkYXRhKGJjbTQ3eHhfYnV0dG9uc19uZXRnZWFyX3duZHIzNDAwdjEpOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9ib290L01ha2VmaWxlIGIvYXJjaC9taXBzL2Jvb3QvTWFrZWZpbGUKaW5kZXggM2NlNGRkNS4uNTI4YmQ3MyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2Jvb3QvTWFrZWZpbGUKKysrIGIvYXJjaC9taXBzL2Jvb3QvTWFrZWZpbGUKQEAgLTE2MCw3ICsxNjAsNyBAQAogcXVpZXRfY21kX2l0Yi1pbWFnZSA9IElUQiAgICAgJEAKICAgICAgIGNtZF9pdGItaW1hZ2UgPSBcCiAJCWVudiBQQVRIPSIkKG9ianRyZWUpL3NjcmlwdHMvZHRjOiQoUEFUSCkiIFwKLQkJJChDT05GSUdfU0hFTEwpICQoTUtJTUFHRSkgXAorCQkkKEJBU0gpICQoTUtJTUFHRSkgXAogCQktRCAiLUkgZHRzIC1PIGR0YiAtcCA1MDAgXAogCQkJLS1pbmNsdWRlICQob2JqdHJlZSkvYXJjaC9taXBzIFwKIAkJCS0td2FybmluZyBuby11bml0X2FkZHJlc3NfdnNfcmVnIiBcCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY20zMzY4LmR0c2kgYi9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY20zMzY4LmR0c2kKaW5kZXggN2EzZTVjOC4uNjljYmVmNCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2Jvb3QvZHRzL2JyY20vYmNtMzM2OC5kdHNpCisrKyBiL2FyY2gvbWlwcy9ib290L2R0cy9icmNtL2JjbTMzNjguZHRzaQpAQCAtNTEsMTYgKzUxLDIyIEBACiAJCWNvbXBhdGlibGUgPSAic2ltcGxlLWJ1cyI7CiAJCXJhbmdlczsKIAotCQlwZXJpcGhfY250bDogc3lzY29uQGZmZjhjMDAwIHsKKwkJY2xrY3RsOiBjbG9jay1jb250cm9sbGVyQGZmZjhjMDA0IHsKKwkJCWNvbXBhdGlibGUgPSAiYnJjbSxiY20zMzY4LWNsb2NrcyI7CisJCQlyZWcgPSA8MHhmZmY4YzAwNCAweDQ+OworCQkJI2Nsb2NrLWNlbGxzID0gPDE+OworCQl9OworCisJCXBlcmlwaF9jbnRsOiBzeXNjb25AZmZmOGMwMDggewogCQkJY29tcGF0aWJsZSA9ICJzeXNjb24iOwotCQkJcmVnID0gPDB4ZmZmOGMwMDAgMHhjPjsKKwkJCXJlZyA9IDwweGZmZjhjMDAwIDB4ND47CiAJCQluYXRpdmUtZW5kaWFuOwogCQl9OwogCiAJCXJlYm9vdDogc3lzY29uLXJlYm9vdEBmZmY4YzAwOCB7CiAJCQljb21wYXRpYmxlID0gInN5c2Nvbi1yZWJvb3QiOwogCQkJcmVnbWFwID0gPCZwZXJpcGhfY250bD47Ci0JCQlvZmZzZXQgPSA8MHg4PjsKKwkJCW9mZnNldCA9IDwweDA+OwogCQkJbWFzayA9IDwweDE+OwogCQl9OwogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY202MzI2OC5kdHNpIGIvYXJjaC9taXBzL2Jvb3QvZHRzL2JyY20vYmNtNjMyNjguZHRzaQppbmRleCA1ODc5MGIxLi5iZWVjMjQxIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY202MzI2OC5kdHNpCisrKyBiL2FyY2gvbWlwcy9ib290L2R0cy9icmNtL2JjbTYzMjY4LmR0c2kKQEAgLTUxLDE2ICs1MSwyMiBAQAogCQljb21wYXRpYmxlID0gInNpbXBsZS1idXMiOwogCQlyYW5nZXM7CiAKLQkJcGVyaXBoX2NudGw6IHN5c2NvbkAxMDAwMDAwMCB7CisJCWNsa2N0bDogY2xvY2stY29udHJvbGxlckAxMDAwMDAwNCB7CisJCQljb21wYXRpYmxlID0gImJyY20sYmNtNjMyNjgtY2xvY2tzIjsKKwkJCXJlZyA9IDwweDEwMDAwMDA0IDB4ND47CisJCQkjY2xvY2stY2VsbHMgPSA8MT47CisJCX07CisKKwkJcGVyaXBoX2NudGw6IHN5c2NvbkAxMDAwMDAwOCB7CiAJCQljb21wYXRpYmxlID0gInN5c2NvbiI7Ci0JCQlyZWcgPSA8MHgxMDAwMDAwMCAweDE0PjsKKwkJCXJlZyA9IDwweDEwMDAwMDAwIDB4Yz47CiAJCQluYXRpdmUtZW5kaWFuOwogCQl9OwogCiAJCXJlYm9vdDogc3lzY29uLXJlYm9vdEAxMDAwMDAwOCB7CiAJCQljb21wYXRpYmxlID0gInN5c2Nvbi1yZWJvb3QiOwogCQkJcmVnbWFwID0gPCZwZXJpcGhfY250bD47Ci0JCQlvZmZzZXQgPSA8MHg4PjsKKwkJCW9mZnNldCA9IDwweDA+OwogCQkJbWFzayA9IDwweDE+OwogCQl9OwogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY202MzI4LmR0c2kgYi9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY202MzI4LmR0c2kKaW5kZXggYmY2NzE2YS4uYWY4NjBkMCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2Jvb3QvZHRzL2JyY20vYmNtNjMyOC5kdHNpCisrKyBiL2FyY2gvbWlwcy9ib290L2R0cy9icmNtL2JjbTYzMjguZHRzaQpAQCAtNTEsNiArNTEsMTIgQEAKIAkJY29tcGF0aWJsZSA9ICJzaW1wbGUtYnVzIjsKIAkJcmFuZ2VzOwogCisJCWNsa2N0bDogY2xvY2stY29udHJvbGxlckAxMDAwMDAwNCB7CisJCQljb21wYXRpYmxlID0gImJyY20sYmNtNjMyOC1jbG9ja3MiOworCQkJcmVnID0gPDB4MTAwMDAwMDQgMHg0PjsKKwkJCSNjbG9jay1jZWxscyA9IDwxPjsKKwkJfTsKKwogCQlwZXJpcGhfaW50YzogaW50ZXJydXB0LWNvbnRyb2xsZXJAMTAwMDAwMjAgewogCQkJY29tcGF0aWJsZSA9ICJicmNtLGJjbTYzNDUtbDEtaW50YyI7CiAJCQlyZWcgPSA8MHgxMDAwMDAyMCAweDEwPiwKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9ib290L2R0cy9icmNtL2JjbTYzNTguZHRzaSBiL2FyY2gvbWlwcy9ib290L2R0cy9icmNtL2JjbTYzNTguZHRzaQppbmRleCAyNmRkYWU1Li5mMjExNzZjIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY202MzU4LmR0c2kKKysrIGIvYXJjaC9taXBzL2Jvb3QvZHRzL2JyY20vYmNtNjM1OC5kdHNpCkBAIC01MSwxNiArNTEsMjIgQEAKIAkJY29tcGF0aWJsZSA9ICJzaW1wbGUtYnVzIjsKIAkJcmFuZ2VzOwogCi0JCXBlcmlwaF9jbnRsOiBzeXNjb25AZmZmZTAwMDAgeworCQljbGtjdGw6IGNsb2NrLWNvbnRyb2xsZXJAZmZmZTAwMDQgeworCQkJY29tcGF0aWJsZSA9ICJicmNtLGJjbTYzNTgtY2xvY2tzIjsKKwkJCXJlZyA9IDwweGZmZmUwMDA0IDB4ND47CisJCQkjY2xvY2stY2VsbHMgPSA8MT47CisJCX07CisKKwkJcGVyaXBoX2NudGw6IHN5c2NvbkBmZmZlMDAwOCB7CiAJCQljb21wYXRpYmxlID0gInN5c2NvbiI7Ci0JCQlyZWcgPSA8MHhmZmZlMDAwMCAweGM+OworCQkJcmVnID0gPDB4ZmZmZTAwMDAgMHg0PjsKIAkJCW5hdGl2ZS1lbmRpYW47CiAJCX07CiAKIAkJcmVib290OiBzeXNjb24tcmVib290QGZmZmUwMDA4IHsKIAkJCWNvbXBhdGlibGUgPSAic3lzY29uLXJlYm9vdCI7CiAJCQlyZWdtYXAgPSA8JnBlcmlwaF9jbnRsPjsKLQkJCW9mZnNldCA9IDwweDg+OworCQkJb2Zmc2V0ID0gPDB4MD47CiAJCQltYXNrID0gPDB4MT47CiAJCX07CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9ib290L2R0cy9icmNtL2JjbTYzNjIuZHRzaSBiL2FyY2gvbWlwcy9ib290L2R0cy9icmNtL2JjbTYzNjIuZHRzaQppbmRleCBjMzg3NzkzLi44YWU2OTgxIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY202MzYyLmR0c2kKKysrIGIvYXJjaC9taXBzL2Jvb3QvZHRzL2JyY20vYmNtNjM2Mi5kdHNpCkBAIC01MSwxNiArNTEsMjIgQEAKIAkJY29tcGF0aWJsZSA9ICJzaW1wbGUtYnVzIjsKIAkJcmFuZ2VzOwogCi0JCXBlcmlwaF9jbnRsOiBzeXNjb25AMTAwMDAwMDAgeworCQljbGtjdGw6IGNsb2NrLWNvbnRyb2xsZXJAMTAwMDAwMDQgeworCQkJY29tcGF0aWJsZSA9ICJicmNtLGJjbTYzNjItY2xvY2tzIjsKKwkJCXJlZyA9IDwweDEwMDAwMDA0IDB4ND47CisJCQkjY2xvY2stY2VsbHMgPSA8MT47CisJCX07CisKKwkJcGVyaXBoX2NudGw6IHN5c2NvbkAxMDAwMDAwOCB7CiAJCQljb21wYXRpYmxlID0gInN5c2NvbiI7Ci0JCQlyZWcgPSA8MHgxMDAwMDAwMCAweDE0PjsKKwkJCXJlZyA9IDwweDEwMDAwMDAwIDB4Yz47CiAJCQluYXRpdmUtZW5kaWFuOwogCQl9OwogCiAJCXJlYm9vdDogc3lzY29uLXJlYm9vdEAxMDAwMDAwOCB7CiAJCQljb21wYXRpYmxlID0gInN5c2Nvbi1yZWJvb3QiOwogCQkJcmVnbWFwID0gPCZwZXJpcGhfY250bD47Ci0JCQlvZmZzZXQgPSA8MHg4PjsKKwkJCW9mZnNldCA9IDwweDA+OwogCQkJbWFzayA9IDwweDE+OwogCQl9OwogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY202MzY4LmR0c2kgYi9hcmNoL21pcHMvYm9vdC9kdHMvYnJjbS9iY202MzY4LmR0c2kKaW5kZXggZTExNmEzOC4uNDQ5YzE2NyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2Jvb3QvZHRzL2JyY20vYmNtNjM2OC5kdHNpCisrKyBiL2FyY2gvbWlwcy9ib290L2R0cy9icmNtL2JjbTYzNjguZHRzaQpAQCAtNTEsMTYgKzUxLDIyIEBACiAJCWNvbXBhdGlibGUgPSAic2ltcGxlLWJ1cyI7CiAJCXJhbmdlczsKIAotCQlwZXJpcGhfY250bDogc3lzY29uQDEwMDAwMDAwIHsKKwkJY2xrY3RsOiBjbG9jay1jb250cm9sbGVyQDEwMDAwMDA0IHsKKwkJCWNvbXBhdGlibGUgPSAiYnJjbSxiY202MzY4LWNsb2NrcyI7CisJCQlyZWcgPSA8MHgxMDAwMDAwNCAweDQ+OworCQkJI2Nsb2NrLWNlbGxzID0gPDE+OworCQl9OworCisJCXBlcmlwaF9jbnRsOiBzeXNjb25AMTAwMDAwMDA4IHsKIAkJCWNvbXBhdGlibGUgPSAic3lzY29uIjsKLQkJCXJlZyA9IDwweDEwMDAwMDAwIDB4MTQ+OworCQkJcmVnID0gPDB4MTAwMDAwMDAgMHhjPjsKIAkJCW5hdGl2ZS1lbmRpYW47CiAJCX07CiAKIAkJcmVib290OiBzeXNjb24tcmVib290QDEwMDAwMDA4IHsKIAkJCWNvbXBhdGlibGUgPSAic3lzY29uLXJlYm9vdCI7CiAJCQlyZWdtYXAgPSA8JnBlcmlwaF9jbnRsPjsKLQkJCW9mZnNldCA9IDwweDg+OworCQkJb2Zmc2V0ID0gPDB4MD47CiAJCQltYXNrID0gPDB4MT47CiAJCX07CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL2NpMjAuZHRzIGIvYXJjaC9taXBzL2Jvb3QvZHRzL2luZ2VuaWMvY2kyMC5kdHMKaW5kZXggNGY3YjFmYS4uMmU5OTUyMyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2Jvb3QvZHRzL2luZ2VuaWMvY2kyMC5kdHMKKysrIGIvYXJjaC9taXBzL2Jvb3QvZHRzL2luZ2VuaWMvY2kyMC5kdHMKQEAgLTIsNiArMiw3IEBACiAvZHRzLXYxLzsKIAogI2luY2x1ZGUgImp6NDc4MC5kdHNpIgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL2luZ2VuaWMsdGN1Lmg+CiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvZ3Bpby9ncGlvLmg+CiAKIC8gewpAQCAtMjM4LDMgKzIzOSw5IEBACiAJCWJpYXMtZGlzYWJsZTsKIAl9OwogfTsKKworJnRjdSB7CisJLyogMyBNSHogZm9yIHRoZSBzeXN0ZW0gdGltZXIgYW5kIGNsb2Nrc291cmNlICovCisJYXNzaWduZWQtY2xvY2tzID0gPCZ0Y3UgVENVX0NMS19USU1FUjA+LCA8JnRjdSBUQ1VfQ0xLX1RJTUVSMT47CisJYXNzaWduZWQtY2xvY2stcmF0ZXMgPSA8MzAwMDAwMD4sIDwzMDAwMDAwPjsKK307CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvYm9vdC9kdHMvaW5nZW5pYy9nY3cwLmR0cyBiL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL2djdzAuZHRzCmluZGV4IDM1ZjAyOTEuLmY1OGQyMzkgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL2djdzAuZHRzCisrKyBiL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL2djdzAuZHRzCkBAIC0yLDYgKzIsNyBAQAogL2R0cy12MS87CiAKICNpbmNsdWRlICJqejQ3NzAuZHRzaSIKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9pbmdlbmljLHRjdS5oPgogCiAvIHsKIAljb21wYXRpYmxlID0gImdjdyx6ZXJvIiwgImluZ2VuaWMsano0NzcwIjsKQEAgLTYwLDMgKzYxLDEyIEBACiAJLyogVGhlIFdpRmkgbW9kdWxlIGlzIGNvbm5lY3RlZCB0byB0aGUgVUhDLiAqLwogCXN0YXR1cyA9ICJva2F5IjsKIH07CisKKyZ0Y3UgeworCS8qIDc1MCBrSHogZm9yIHRoZSBzeXN0ZW0gdGltZXIgYW5kIGNsb2Nrc291cmNlICovCisJYXNzaWduZWQtY2xvY2tzID0gPCZ0Y3UgVENVX0NMS19USU1FUjA+LCA8JnRjdSBUQ1VfQ0xLX1RJTUVSMj47CisJYXNzaWduZWQtY2xvY2stcmF0ZXMgPSA8NzUwMDAwPiwgPDc1MDAwMD47CisKKwkvKiBQV00xIGlzIGluIHVzZSwgc28gcmVzZXJ2ZSBjaGFubmVsICMyIGZvciB0aGUgY2xvY2tzb3VyY2UgKi8KKwlpbmdlbmljLHB3bS1jaGFubmVscy1tYXNrID0gPDB4ZmE+OworfTsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL2p6NDc0MC5kdHNpIGIvYXJjaC9taXBzL2Jvb3QvZHRzL2luZ2VuaWMvano0NzQwLmR0c2kKaW5kZXggMmJlYjc4YS4uNWFjY2RhMiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2Jvb3QvZHRzL2luZ2VuaWMvano0NzQwLmR0c2kKKysrIGIvYXJjaC9taXBzL2Jvb3QvZHRzL2luZ2VuaWMvano0NzQwLmR0c2kKQEAgLTUzLDYgKzUzLDI4IEBACiAJCWNsb2NrLW5hbWVzID0gInJ0YyI7CiAJfTsKIAorCXRjdTogdGltZXJAMTAwMDIwMDAgeworCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzQwLXRjdSIsICJzaW1wbGUtbWZkIjsKKwkJcmVnID0gPDB4MTAwMDIwMDAgMHgxMDAwPjsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDE+OworCQlyYW5nZXMgPSA8MHgwIDB4MTAwMDIwMDAgMHgxMDAwPjsKKworCQkjY2xvY2stY2VsbHMgPSA8MT47CisKKwkJY2xvY2tzID0gPCZjZ3UgSlo0NzQwX0NMS19SVEMKKwkJCSAgJmNndSBKWjQ3NDBfQ0xLX0VYVAorCQkJICAmY2d1IEpaNDc0MF9DTEtfUENMSworCQkJICAmY2d1IEpaNDc0MF9DTEtfVENVPjsKKwkJY2xvY2stbmFtZXMgPSAicnRjIiwgImV4dCIsICJwY2xrIiwgInRjdSI7CisKKwkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CisJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8MT47CisKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmaW50Yz47CisJCWludGVycnVwdHMgPSA8MjMgMjIgMjE+OworCX07CisKIAlydGNfZGV2OiBydGNAMTAwMDMwMDAgewogCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzQwLXJ0YyI7CiAJCXJlZyA9IDwweDEwMDAzMDAwIDB4NDA+OwpAQCAtMTMyLDYgKzE1NCw1MyBAQAogCQl9OwogCX07CiAKKwlhaWM6IGF1ZGlvLWNvbnRyb2xsZXJAMTAwMjAwMDAgeworCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzQwLWkycyI7CisJCXJlZyA9IDwweDEwMDIwMDAwIDB4Mzg+OworCisJCSNzb3VuZC1kYWktY2VsbHMgPSA8MD47CisKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmaW50Yz47CisJCWludGVycnVwdHMgPSA8MTg+OworCisJCWNsb2NrcyA9IDwmY2d1IEpaNDc0MF9DTEtfQUlDPiwKKwkJCSA8JmNndSBKWjQ3NDBfQ0xLX0kyUz4sCisJCQkgPCZjZ3UgSlo0NzQwX0NMS19FWFQ+LAorCQkJIDwmY2d1IEpaNDc0MF9DTEtfUExMX0hBTEY+OworCQljbG9jay1uYW1lcyA9ICJhaWMiLCAiaTJzIiwgImV4dCIsICJwbGwgaGFsZiI7CisKKwkJZG1hcyA9IDwmZG1hYyAyNSAweGZmZmZmZmZmPiwgPCZkbWFjIDI0IDB4ZmZmZmZmZmY+OworCQlkbWEtbmFtZXMgPSAicngiLCAidHgiOworCX07CisKKwljb2RlYzogYXVkaW8tY29kZWNAMTAwMjAwYTQgeworCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzQwLWNvZGVjIjsKKwkJcmVnID0gPDB4MTAwMjAwODAgMHg4PjsKKworCQkjc291bmQtZGFpLWNlbGxzID0gPDA+OworCisJCWNsb2NrcyA9IDwmY2d1IEpaNDc0MF9DTEtfQUlDPjsKKwkJY2xvY2stbmFtZXMgPSAiYWljIjsKKwl9OworCisJbW1jOiBtbWNAMTAwMjEwMDAgeworCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzQwLW1tYyI7CisJCXJlZyA9IDwweDEwMDIxMDAwIDB4MTAwMD47CisKKwkJY2xvY2tzID0gPCZjZ3UgSlo0NzQwX0NMS19NTUM+OworCQljbG9jay1uYW1lcyA9ICJtbWMiOworCisJCWludGVycnVwdC1wYXJlbnQgPSA8JmludGM+OworCQlpbnRlcnJ1cHRzID0gPDE0PjsKKworCQlkbWFzID0gPCZkbWFjIDI3IDB4ZmZmZmZmZmY+LCA8JmRtYWMgMjYgMHhmZmZmZmZmZj47CisJCWRtYS1uYW1lcyA9ICJyeCIsICJ0eCI7CisKKwkJY2FwLXNkLWhpZ2hzcGVlZDsKKwkJY2FwLW1tYy1oaWdoc3BlZWQ7CisJCWNhcC1zZGlvLWlycTsKKwl9OworCiAJdWFydDA6IHNlcmlhbEAxMDAzMDAwMCB7CiAJCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtdWFydCI7CiAJCXJlZyA9IDwweDEwMDMwMDAwIDB4MTAwPjsKQEAgLTE1NCw2ICsyMjMsMzggQEAKIAkJY2xvY2stbmFtZXMgPSAiYmF1ZCIsICJtb2R1bGUiOwogCX07CiAKKwlhZGM6IGFkY0AxMDA3MDAwMCB7CisJCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtYWRjIjsKKwkJcmVnID0gPDB4MTAwNzAwMDAgMHgzMD47CisJCSNpby1jaGFubmVsLWNlbGxzID0gPDE+OworCisJCWNsb2NrcyA9IDwmY2d1IEpaNDc0MF9DTEtfQURDPjsKKwkJY2xvY2stbmFtZXMgPSAiYWRjIjsKKworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZpbnRjPjsKKwkJaW50ZXJydXB0cyA9IDwxMj47CisJfTsKKworCW5lbWM6IG1lbW9yeS1jb250cm9sbGVyQDEzMDEwMDAwIHsKKwkJY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDc0MC1uZW1jIjsKKwkJcmVnID0gPDB4MTMwMTAwMDAgMHg1ND47CisJCSNhZGRyZXNzLWNlbGxzID0gPDI+OworCQkjc2l6ZS1jZWxscyA9IDwxPjsKKwkJcmFuZ2VzID0gPDEgMCAweDE4MDAwMDAwIDB4NDAwMDAwMAorCQkJICAyIDAgMHgxNDAwMDAwMCAweDQwMDAwMDAKKwkJCSAgMyAwIDB4MGMwMDAwMDAgMHg0MDAwMDAwCisJCQkgIDQgMCAweDA4MDAwMDAwIDB4NDAwMDAwMD47CisKKwkJY2xvY2tzID0gPCZjZ3UgSlo0NzQwX0NMS19NQ0xLPjsKKwl9OworCisJZWNjOiBlY2MtY29udHJvbGxlckAxMzAxMDEwMCB7CisJCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtZWNjIjsKKwkJcmVnID0gPDB4MTMwMTAxMDAgMHgyQz47CisKKwkJY2xvY2tzID0gPCZjZ3UgSlo0NzQwX0NMS19NQ0xLPjsKKwl9OworCiAJZG1hYzogZG1hLWNvbnRyb2xsZXJAMTMwMjAwMDAgewogCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzQwLWRtYSI7CiAJCXJlZyA9IDwweDEzMDIwMDAwIDB4YmMKQEAgLTE2NCw5ICsyNjUsNiBAQAogCQlpbnRlcnJ1cHRzID0gPDIwPjsKIAogCQljbG9ja3MgPSA8JmNndSBKWjQ3NDBfQ0xLX0RNQT47Ci0KLQkJLyogRGlzYWJsZSBkbWFjIHVudGlsIHdlIGhhdmUgc29tZXRoaW5nIHRoYXQgdXNlcyBpdCAqLwotCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwogCX07CiAKIAl1aGM6IHVoY0AxMzAzMDAwMCB7CkBAIC0xODIsNCArMjgwLDI3IEBACiAKIAkJc3RhdHVzID0gImRpc2FibGVkIjsKIAl9OworCisJdWRjOiB1c2JAMTMwNDAwMDAgeworCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzQwLW11c2IiOworCQlyZWcgPSA8MHgxMzA0MDAwMCAweDEwMDAwPjsKKworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZpbnRjPjsKKwkJaW50ZXJydXB0cyA9IDwyND47CisJCWludGVycnVwdC1uYW1lcyA9ICJtYyI7CisKKwkJY2xvY2tzID0gPCZjZ3UgSlo0NzQwX0NMS19VREM+OworCQljbG9jay1uYW1lcyA9ICJ1ZGMiOworCX07CisKKwlsY2Q6IGxjZC1jb250cm9sbGVyQDEzMDUwMDAwIHsKKwkJY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDc0MC1sY2QiOworCQlyZWcgPSA8MHgxMzA1MDAwMCAweDEwMDA+OworCisJCWludGVycnVwdC1wYXJlbnQgPSA8JmludGM+OworCQlpbnRlcnJ1cHRzID0gPDMwPjsKKworCQljbG9ja3MgPSA8JmNndSBKWjQ3NDBfQ0xLX0xDRF9QQ0xLPiwgPCZjZ3UgSlo0NzQwX0NMS19MQ0Q+OworCQljbG9jay1uYW1lcyA9ICJsY2RfcGNsayIsICJsY2QiOworCX07CiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2Jvb3QvZHRzL2luZ2VuaWMvano0NzcwLmR0c2kgYi9hcmNoL21pcHMvYm9vdC9kdHMvaW5nZW5pYy9qejQ3NzAuZHRzaQppbmRleCA0OWVkZTZjLi4wYmZiOWVkIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvYm9vdC9kdHMvaW5nZW5pYy9qejQ3NzAuZHRzaQorKysgYi9hcmNoL21pcHMvYm9vdC9kdHMvaW5nZW5pYy9qejQ3NzAuZHRzaQpAQCAtNDYsNiArNDYsMjcgQEAKIAkJI2Nsb2NrLWNlbGxzID0gPDE+OwogCX07CiAKKwl0Y3U6IHRpbWVyQDEwMDAyMDAwIHsKKwkJY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDc3MC10Y3UiLCAic2ltcGxlLW1mZCI7CisJCXJlZyA9IDwweDEwMDAyMDAwIDB4MTAwMD47CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkjc2l6ZS1jZWxscyA9IDwxPjsKKwkJcmFuZ2VzID0gPDB4MCAweDEwMDAyMDAwIDB4MTAwMD47CisKKwkJI2Nsb2NrLWNlbGxzID0gPDE+OworCisJCWNsb2NrcyA9IDwmY2d1IEpaNDc3MF9DTEtfUlRDCisJCQkgICZjZ3UgSlo0NzcwX0NMS19FWFQKKwkJCSAgJmNndSBKWjQ3NzBfQ0xLX1BDTEs+OworCQljbG9jay1uYW1lcyA9ICJydGMiLCAiZXh0IiwgInBjbGsiOworCisJCWludGVycnVwdC1jb250cm9sbGVyOworCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+OworCisJCWludGVycnVwdC1wYXJlbnQgPSA8JmludGM+OworCQlpbnRlcnJ1cHRzID0gPDI3IDI2IDI1PjsKKwl9OworCiAJcGluY3RybDogcGluLWNvbnRyb2xsZXJAMTAwMTAwMDAgewogCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzcwLXBpbmN0cmwiOwogCQlyZWcgPSA8MHgxMDAxMDAwMCAweDYwMD47CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvYm9vdC9kdHMvaW5nZW5pYy9qejQ3ODAuZHRzaSBiL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL2p6NDc4MC5kdHNpCmluZGV4IGIwM2NkZWMuLmM1NGJkN2MgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL2p6NDc4MC5kdHNpCisrKyBiL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL2p6NDc4MC5kdHNpCkBAIC00Niw2ICs0NiwyOSBAQAogCQkjY2xvY2stY2VsbHMgPSA8MT47CiAJfTsKIAorCXRjdTogdGltZXJAMTAwMDIwMDAgeworCQljb21wYXRpYmxlID0gImluZ2VuaWMsano0NzgwLXRjdSIsCisJCQkgICAgICJpbmdlbmljLGp6NDc3MC10Y3UiLAorCQkJICAgICAic2ltcGxlLW1mZCI7CisJCXJlZyA9IDwweDEwMDAyMDAwIDB4MTAwMD47CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkjc2l6ZS1jZWxscyA9IDwxPjsKKwkJcmFuZ2VzID0gPDB4MCAweDEwMDAyMDAwIDB4MTAwMD47CisKKwkJI2Nsb2NrLWNlbGxzID0gPDE+OworCisJCWNsb2NrcyA9IDwmY2d1IEpaNDc4MF9DTEtfUlRDTEsKKwkJCSAgJmNndSBKWjQ3ODBfQ0xLX0VYQ0xLCisJCQkgICZjZ3UgSlo0NzgwX0NMS19QQ0xLPjsKKwkJY2xvY2stbmFtZXMgPSAicnRjIiwgImV4dCIsICJwY2xrIjsKKworCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKKwkJI2ludGVycnVwdC1jZWxscyA9IDwxPjsKKworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZpbnRjPjsKKwkJaW50ZXJydXB0cyA9IDwyNyAyNiAyNT47CisJfTsKKwogCXJ0Y19kZXY6IHJ0Y0AxMDAwMzAwMCB7CiAJCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3ODAtcnRjIjsKIAkJcmVnID0gPDB4MTAwMDMwMDAgMHg0Yz47CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvYm9vdC9kdHMvaW5nZW5pYy9xaV9sYjYwLmR0cyBiL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL3FpX2xiNjAuZHRzCmluZGV4IDc2YWFmODkuLjdhMzcxZDkgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL3FpX2xiNjAuZHRzCisrKyBiL2FyY2gvbWlwcy9ib290L2R0cy9pbmdlbmljL3FpX2xiNjAuZHRzCkBAIC0zLDEyICszLDIzMSBAQAogCiAjaW5jbHVkZSAiano0NzQwLmR0c2kiCiAKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9ncGlvL2dwaW8uaD4KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9paW8vYWRjL2luZ2VuaWMsYWRjLmg+CisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svaW5nZW5pYyx0Y3UuaD4KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnB1dC9pbnB1dC5oPgorCisjZGVmaW5lIEtFWV9RSV9RSQlLRVlfRjEzCisjZGVmaW5lIEtFWV9RSV9VUFJFRAlLRVlfUklHSFRBTFQKKyNkZWZpbmUgS0VZX1FJX1ZPTFVQCUtFWV9WT0xVTUVVUAorI2RlZmluZSBLRVlfUUlfVk9MRE9XTglLRVlfVk9MVU1FRE9XTgorI2RlZmluZSBLRVlfUUlfRk4JS0VZX0xFRlRDVFJMCisKIC8gewogCWNvbXBhdGlibGUgPSAicWksbGI2MCIsICJpbmdlbmljLGp6NDc0MCI7CiAKIAljaG9zZW4gewogCQlzdGRvdXQtcGF0aCA9ICZ1YXJ0MDsKIAl9OworCisJdmNjOiByZWd1bGF0b3JAMCB7CisJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsKKwkJcmVndWxhdG9yLW5hbWUgPSAidmNjIjsKKworCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKwkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJCXJlZ3VsYXRvci1hbHdheXMtb247CisJfTsKKworCW1tY19wb3dlcjogcmVndWxhdG9yQDEgeworCQljb21wYXRpYmxlID0gInJlZ3VsYXRvci1maXhlZCI7CisJCXJlZ3VsYXRvci1uYW1lID0gIm1tY192Y2MiOworCQlncGlvID0gPCZncGQgMiAwPjsKKworCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKwkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJfTsKKworCWFtcF9zdXBwbHk6IHJlZ3VsYXRvckAyIHsKKwkJY29tcGF0aWJsZSA9ICJyZWd1bGF0b3ItZml4ZWQiOworCQlyZWd1bGF0b3ItbmFtZSA9ICJhbXBfc3VwcGx5IjsKKwkJZ3BpbyA9IDwmZ3BkIDQgMD47CisJCWVuYWJsZS1hY3RpdmUtaGlnaDsKKworCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKwkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJfTsKKworCWFtcDogYW5hbG9nLWFtcGxpZmllciB7CisJCWNvbXBhdGlibGUgPSAic2ltcGxlLWF1ZGlvLWFtcGxpZmllciI7CisJCWVuYWJsZS1ncGlvcyA9IDwmZ3BiIDI5IEdQSU9fQUNUSVZFX0hJR0g+OworCQlWQ0Mtc3VwcGx5ID0gPCZhbXBfc3VwcGx5PjsKKwl9OworCisJc291bmQgeworCQljb21wYXRpYmxlID0gInNpbXBsZS1hdWRpby1jYXJkIjsKKworCQlzaW1wbGUtYXVkaW8tY2FyZCxuYW1lID0gIlFJIExCNjAiOworCQlzaW1wbGUtYXVkaW8tY2FyZCxmb3JtYXQgPSAiaTJzIjsKKworCQlzaW1wbGUtYXVkaW8tY2FyZCx3aWRnZXRzID0KKwkJCSJTcGVha2VyIiwgIlNwZWFrZXIiLAorCQkJIk1pY3JvcGhvbmUiLCAiTWljIjsKKwkJc2ltcGxlLWF1ZGlvLWNhcmQscm91dGluZyA9CisJCQkiTUlDIiwgIk1pYyIsCisJCQkiU3BlYWtlciIsICJPVVRMIiwKKwkJCSJTcGVha2VyIiwgIk9VVFIiLAorCQkJIklOTCIsICJMT1VUIiwKKwkJCSJJTkwiLCAiUk9VVCI7CisKKwkJc2ltcGxlLWF1ZGlvLWNhcmQsYXV4LWRldnMgPSA8JmFtcD47CisKKwkJc2ltcGxlLWF1ZGlvLWNhcmQsYml0Y2xvY2stbWFzdGVyID0gPCZkYWlfY29kZWM+OworCQlzaW1wbGUtYXVkaW8tY2FyZCxmcmFtZS1tYXN0ZXIgPSA8JmRhaV9jb2RlYz47CisKKwkJZGFpX2NwdTogc2ltcGxlLWF1ZGlvLWNhcmQsY3B1IHsKKwkJCXNvdW5kLWRhaSA9IDwmYWljPjsKKwkJfTsKKworCQlkYWlfY29kZWM6IHNpbXBsZS1hdWRpby1jYXJkLGNvZGVjIHsKKwkJCXNvdW5kLWRhaSA9IDwmY29kZWM+OworCQl9OworCX07CisKKwlrZXlzIHsKKwkJY29tcGF0aWJsZSA9ICJncGlvLWtleXMiOworCisJCWtleSB7CisJCQlsYWJlbCA9ICJQb3dlciI7CisJCQl3YWtldXAtc291cmNlOworCQkJbGludXgsY29kZSA9IDxLRVlfUE9XRVI+OworCQkJZ3Bpb3MgPSA8JmdwZCAyOSBHUElPX0FDVElWRV9MT1c+OworCQl9OworCX07CisKKwlrZXlib2FyZCB7CisJCWNvbXBhdGlibGUgPSAiZ3Bpby1tYXRyaXgta2V5cGFkIjsKKworCQljb2wtc2Nhbi1kZWxheS11cyA9IDwxMD47CisJCWRlYm91bmNlLWRlbGF5LW1zID0gPDEwPjsKKwkJd2FrZXVwLXNvdXJjZTsKKworCQlyb3ctZ3Bpb3MgPSA8JmdwZCAxOCAwICZncGQgMTkgMCAmZ3BkIDIwIDAgJmdwZCAyMSAwCisJCQkgICAgICZncGQgMjIgMCAmZ3BkIDIzIDAgJmdwZCAyNCAwICZncGQgMjYgMD47CisJCWNvbC1ncGlvcyA9IDwmZ3BjIDEwIDAgJmdwYyAxMSAwICZncGMgMTIgMCAmZ3BjIDEzIDAKKwkJCSAgICAgJmdwYyAxNCAwICZncGMgMTUgMCAmZ3BjIDE2IDAgJmdwYyAxNyAwPjsKKwkJZ3Bpby1hY3RpdmVsb3c7CisKKwkJbGludXgsa2V5bWFwID0gPAorCQkJTUFUUklYX0tFWSgwLCAwLCBLRVlfRjEpCS8qIFMyICovCisJCQlNQVRSSVhfS0VZKDAsIDEsIEtFWV9GMikJLyogUzMgKi8KKwkJCU1BVFJJWF9LRVkoMCwgMiwgS0VZX0YzKQkvKiBTNCAqLworCQkJTUFUUklYX0tFWSgwLCAzLCBLRVlfRjQpCS8qIFM1ICovCisJCQlNQVRSSVhfS0VZKDAsIDQsIEtFWV9GNSkJLyogUzYgKi8KKwkJCU1BVFJJWF9LRVkoMCwgNSwgS0VZX0Y2KQkvKiBTNyAqLworCQkJTUFUUklYX0tFWSgwLCA2LCBLRVlfRjcpCS8qIFM4ICovCisKKwkJCU1BVFJJWF9LRVkoMSwgMCwgS0VZX1EpCS8qIFMxMCAqLworCQkJTUFUUklYX0tFWSgxLCAxLCBLRVlfVykJLyogUzExICovCisJCQlNQVRSSVhfS0VZKDEsIDIsIEtFWV9FKQkvKiBTMTIgKi8KKwkJCU1BVFJJWF9LRVkoMSwgMywgS0VZX1IpCS8qIFMxMyAqLworCQkJTUFUUklYX0tFWSgxLCA0LCBLRVlfVCkJLyogUzE0ICovCisJCQlNQVRSSVhfS0VZKDEsIDUsIEtFWV9ZKQkvKiBTMTUgKi8KKwkJCU1BVFJJWF9LRVkoMSwgNiwgS0VZX1UpCS8qIFMxNiAqLworCQkJTUFUUklYX0tFWSgxLCA3LCBLRVlfSSkJLyogUzE3ICovCisJCQlNQVRSSVhfS0VZKDIsIDAsIEtFWV9BKQkvKiBTMTggKi8KKwkJCU1BVFJJWF9LRVkoMiwgMSwgS0VZX1MpCS8qIFMxOSAqLworCQkJTUFUUklYX0tFWSgyLCAyLCBLRVlfRCkJLyogUzIwICovCisJCQlNQVRSSVhfS0VZKDIsIDMsIEtFWV9GKQkvKiBTMjEgKi8KKwkJCU1BVFJJWF9LRVkoMiwgNCwgS0VZX0cpCS8qIFMyMiAqLworCQkJTUFUUklYX0tFWSgyLCA1LCBLRVlfSCkJLyogUzIzICovCisJCQlNQVRSSVhfS0VZKDIsIDYsIEtFWV9KKQkvKiBTMjQgKi8KKwkJCU1BVFJJWF9LRVkoMiwgNywgS0VZX0spCS8qIFMyNSAqLworCQkJTUFUUklYX0tFWSgzLCAwLCBLRVlfRVNDKQkvKiBTMjYgKi8KKwkJCU1BVFJJWF9LRVkoMywgMSwgS0VZX1opCS8qIFMyNyAqLworCQkJTUFUUklYX0tFWSgzLCAyLCBLRVlfWCkJLyogUzI4ICovCisJCQlNQVRSSVhfS0VZKDMsIDMsIEtFWV9DKQkvKiBTMjkgKi8KKwkJCU1BVFJJWF9LRVkoMywgNCwgS0VZX1YpCS8qIFMzMCAqLworCQkJTUFUUklYX0tFWSgzLCA1LCBLRVlfQikJLyogUzMxICovCisJCQlNQVRSSVhfS0VZKDMsIDYsIEtFWV9OKQkvKiBTMzIgKi8KKwkJCU1BVFJJWF9LRVkoMywgNywgS0VZX00pCS8qIFMzMyAqLworCQkJTUFUUklYX0tFWSg0LCAwLCBLRVlfVEFCKQkvKiBTMzQgKi8KKwkJCU1BVFJJWF9LRVkoNCwgMSwgS0VZX0NBUFNMT0NLKQkvKiBTMzUgKi8KKwkJCU1BVFJJWF9LRVkoNCwgMiwgS0VZX0JBQ0tTTEFTSCkJLyogUzM2ICovCisJCQlNQVRSSVhfS0VZKDQsIDMsIEtFWV9BUE9TVFJPUEhFKQkvKiBTMzcgKi8KKwkJCU1BVFJJWF9LRVkoNCwgNCwgS0VZX0NPTU1BKQkvKiBTMzggKi8KKwkJCU1BVFJJWF9LRVkoNCwgNSwgS0VZX0RPVCkJLyogUzM5ICovCisJCQlNQVRSSVhfS0VZKDQsIDYsIEtFWV9TTEFTSCkJLyogUzQwICovCisJCQlNQVRSSVhfS0VZKDQsIDcsIEtFWV9VUCkJLyogUzQxICovCisJCQlNQVRSSVhfS0VZKDUsIDAsIEtFWV9PKQkvKiBTNDIgKi8KKwkJCU1BVFJJWF9LRVkoNSwgMSwgS0VZX0wpCS8qIFM0MyAqLworCQkJTUFUUklYX0tFWSg1LCAyLCBLRVlfRVFVQUwpCS8qIFM0NCAqLworCQkJTUFUUklYX0tFWSg1LCAzLCBLRVlfUUlfVVBSRUQpCS8qIFM0NSAqLworCQkJTUFUUklYX0tFWSg1LCA0LCBLRVlfU1BBQ0UpCS8qIFM0NiAqLworCQkJTUFUUklYX0tFWSg1LCA1LCBLRVlfUUlfUUkpCS8qIFM0NyAqLworCQkJTUFUUklYX0tFWSg1LCA2LCBLRVlfUklHSFRDVFJMKQkvKiBTNDggKi8KKwkJCU1BVFJJWF9LRVkoNSwgNywgS0VZX0xFRlQpCS8qIFM0OSAqLworCQkJTUFUUklYX0tFWSg2LCAwLCBLRVlfRjgpCS8qIFM1MCAqLworCQkJTUFUUklYX0tFWSg2LCAxLCBLRVlfUCkJLyogUzUxICovCisJCQlNQVRSSVhfS0VZKDYsIDIsIEtFWV9CQUNLU1BBQ0UpLyogUzUyICovCisJCQlNQVRSSVhfS0VZKDYsIDMsIEtFWV9FTlRFUikJLyogUzUzICovCisJCQlNQVRSSVhfS0VZKDYsIDQsIEtFWV9RSV9WT0xVUCkJLyogUzU0ICovCisJCQlNQVRSSVhfS0VZKDYsIDUsIEtFWV9RSV9WT0xET1dOKQkvKiBTNTUgKi8KKwkJCU1BVFJJWF9LRVkoNiwgNiwgS0VZX0RPV04pCS8qIFM1NiAqLworCQkJTUFUUklYX0tFWSg2LCA3LCBLRVlfUklHSFQpCS8qIFM1NyAqLworCisJCQlNQVRSSVhfS0VZKDcsIDAsIEtFWV9MRUZUU0hJRlQpCS8qIFM1OCAqLworCQkJTUFUUklYX0tFWSg3LCAxLCBLRVlfTEVGVEFMVCkgLyogUzU5ICovCisJCQlNQVRSSVhfS0VZKDcsIDIsIEtFWV9RSV9GTikJLyogUzYwICovCisJCQk+OworCX07CisKKwlzcGkgeworCQljb21wYXRpYmxlID0gInNwaS1ncGlvIjsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCisJCXNjay1ncGlvcyA9IDwmZ3BjIDIzIEdQSU9fQUNUSVZFX0hJR0g+OworCQltb3NpLWdwaW9zID0gPCZncGMgMjIgR1BJT19BQ1RJVkVfSElHSD47CisJCWNzLWdwaW9zID0gPCZncGMgMjEgR1BJT19BQ1RJVkVfTE9XPjsKKwkJbnVtLWNoaXBzZWxlY3RzID0gPDE+OworCX07CisKKwl1c2JfY2hhcmdlcjogY2hhcmdlciB7CisJCWNvbXBhdGlibGUgPSAiZ3Bpby1jaGFyZ2VyIjsKKwkJY2hhcmdlci10eXBlID0gInVzYi1zZHAiOworCQlncGlvcyA9IDwmZ3BkIDI4IEdQSU9fQUNUSVZFX0xPVz47CisJCXN0YXR1cy1ncGlvcyA9IDwmZ3BjIDI3IEdQSU9fQUNUSVZFX0xPVz47CisJfTsKKworCXNpbXBsZV9iYXR0ZXJ5OiBiYXR0ZXJ5IHsKKwkJY29tcGF0aWJsZSA9ICJzaW1wbGUtYmF0dGVyeSI7CisJCXZvbHRhZ2UtbWluLWRlc2lnbi1taWNyb3ZvbHQgPSA8MzYwMDAwMD47CisJCXZvbHRhZ2UtbWF4LWRlc2lnbi1taWNyb3ZvbHQgPSA8NDIwMDAwMD47CisJfTsKKworCXBtdSB7CisJCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtYmF0dGVyeSI7CisJCWlvLWNoYW5uZWxzID0gPCZhZGMgSU5HRU5JQ19BRENfQkFUVEVSWT47CisJCWlvLWNoYW5uZWwtbmFtZXMgPSAiYmF0dGVyeSI7CisJCXBvd2VyLXN1cHBsaWVzID0gPCZ1c2JfY2hhcmdlcj47CisJCW1vbml0b3JlZC1iYXR0ZXJ5ID0gPCZzaW1wbGVfYmF0dGVyeT47CisJfTsKKworCWh3bW9uIHsKKwkJY29tcGF0aWJsZSA9ICJpaW8taHdtb24iOworCQlpby1jaGFubmVscyA9IDwmYWRjIElOR0VOSUNfQURDX0FVWD47CisJfTsKKworCXBhbmVsOiBwYW5lbCB7CisJCWNvbXBhdGlibGUgPSAiZ2lhbnRwbHVzLGdwbTk0MGIwIjsKKworCQlwb3dlci1zdXBwbHkgPSA8JnZjYz47CisKKwkJcG9ydCB7CisJCQlwYW5lbF9pbnB1dDogZW5kcG9pbnQgeworCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmcGFuZWxfb3V0cHV0PjsKKwkJCX07CisJCX07CisJfTsKKworCXVzYl9waHk6IHVzYi1waHkgeworCQljb21wYXRpYmxlID0gInVzYi1ub3AteGNlaXYiOworCQkjcGh5LWNlbGxzID0gPDA+OworCisJCXZjYy1zdXBwbHkgPSA8JnZjYz47CisJfTsKIH07CiAKICZleHQgewpAQCAtMjQsMTAgKzI0MywxMTYgQEAKIAlwaW5jdHJsLTAgPSA8JnBpbnNfdWFydDA+OwogfTsKIAorJnVhcnQxIHsKKwlzdGF0dXMgPSAiZGlzYWJsZWQiOworfTsKKworJm5lbWMgeworCW5hbmRjOiBuYW5kLWNvbnRyb2xsZXJAMSB7CisJCWNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtbmFuZCI7CisJCXJlZyA9IDwxIDAgMHg0MDAwMDAwPjsKKworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisKKwkJaW5nZW5pYyxiY2gtY29udHJvbGxlciA9IDwmZWNjPjsKKworCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCQlwaW5jdHJsLTAgPSA8JnBpbnNfbmVtYz47CisKKwkJcmItZ3Bpb3MgPSA8JmdwYyAzMCBHUElPX0FDVElWRV9MT1c+OworCisJCW5hbmRAMSB7CisJCQlyZWcgPSA8MT47CisKKwkJCW5hbmQtZWNjLXN0ZXAtc2l6ZSA9IDw1MTI+OworCQkJbmFuZC1lY2Mtc3RyZW5ndGggPSA8ND47CisJCQluYW5kLWVjYy1tb2RlID0gImh3IjsKKwkJCW5hbmQtaXMtYm9vdC1tZWRpdW07CisJCQluYW5kLW9uLWZsYXNoLWJidDsKKworCQkJcGFydGl0aW9ucyB7CisJCQkJY29tcGF0aWJsZSA9ICJmaXhlZC1wYXJ0aXRpb25zIjsKKwkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCQkjc2l6ZS1jZWxscyA9IDwxPjsKKworCQkJCXBhcnRpdGlvbkAwIHsKKwkJCQkJbGFiZWwgPSAiYm9vdCI7CisJCQkJCXJlZyA9IDwweDAgMHg0MDAwMDA+OworCQkJCX07CisKKwkJCQlwYXJ0aXRpb25ANDAwMDAwIHsKKwkJCQkJbGFiZWwgPSAia2VybmVsIjsKKwkJCQkJcmVnID0gPDB4NDAwMDAwIDB4NDAwMDAwPjsKKwkJCQl9OworCisJCQkJcGFydGl0aW9uQDgwMDAwMCB7CisJCQkJCWxhYmVsID0gInJvb3RmcyI7CisJCQkJCXJlZyA9IDwweDgwMDAwMCAweDA+OworCQkJCX07CisJCQl9OworCQl9OworCX07Cit9OworCismbGNkIHsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmcGluc19sY2Q+OworCisJcG9ydCB7CisJCXBhbmVsX291dHB1dDogZW5kcG9pbnQgeworCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZwYW5lbF9pbnB1dD47CisJCX07CisJfTsKK307CisKKyZ1ZGMgeworCXBoeXMgPSA8JnVzYl9waHk+OworfTsKKwogJnBpbmN0cmwgeworCXBpbnNfbGNkOiBsY2QgeworCQlmdW5jdGlvbiA9ICJsY2QiOworCQlncm91cHMgPSAibGNkLThiaXQiOworCX07CisKKwlwaW5zX25lbWM6IG5lbWMgeworCQlmdW5jdGlvbiA9ICJuYW5kIjsKKwkJZ3JvdXBzID0gIm5hbmQtY3MxIjsKKwl9OworCiAJcGluc191YXJ0MDogdWFydDAgewogCQlmdW5jdGlvbiA9ICJ1YXJ0MCI7CiAJCWdyb3VwcyA9ICJ1YXJ0MC1kYXRhIjsKIAkJYmlhcy1kaXNhYmxlOwogCX07CisKKwlwaW5zX21tYzogbW1jIHsKKwkJbW1jIHsKKwkJCWZ1bmN0aW9uID0gIm1tYyI7CisJCQlncm91cHMgPSAibW1jLTFiaXQiLCAibW1jLTRiaXQiOworCQkJYmlhcy1kaXNhYmxlOworCQl9OworCisJCW1tYy1ncGlvcyB7CisJCQlwaW5zID0gIlBEMCIsICJQRDIiOworCQkJYmlhcy1kaXNhYmxlOworCQl9OworCX07Cit9OworCismbW1jIHsKKwlidXMtd2lkdGggPSA8ND47CisJbWF4LWZyZXF1ZW5jeSA9IDwyNDAwMDAwMD47CisJY2QtZ3Bpb3MgPSA8JmdwZCAwIEdQSU9fQUNUSVZFX0hJR0g+OworCXZtbWMtc3VwcGx5ID0gPCZtbWNfcG93ZXI+OworCisJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwlwaW5jdHJsLTAgPSA8JnBpbnNfbW1jPjsKK307CisKKyZ0Y3UgeworCS8qIDc1MCBrSHogZm9yIHRoZSBzeXN0ZW0gdGltZXIgYW5kIGNsb2Nrc291cmNlICovCisJYXNzaWduZWQtY2xvY2tzID0gPCZ0Y3UgVENVX0NMS19USU1FUjA+LCA8JnRjdSBUQ1VfQ0xLX1RJTUVSMT47CisJYXNzaWduZWQtY2xvY2stcmF0ZXMgPSA8NzUwMDAwPiwgPDc1MDAwMD47CiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2Jvb3QvZHRzL21zY2Mvb2NlbG90LmR0c2kgYi9hcmNoL21pcHMvYm9vdC9kdHMvbXNjYy9vY2Vsb3QuZHRzaQppbmRleCAzM2FlNzRhLi43OTdkMzM2IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvYm9vdC9kdHMvbXNjYy9vY2Vsb3QuZHRzaQorKysgYi9hcmNoL21pcHMvYm9vdC9kdHMvbXNjYy9vY2Vsb3QuZHRzaQpAQCAtMTIwLDYgKzEyMCw3IEBACiAJCQlyZWcgPSA8MHgxMDEwMDAwIDB4MTAwMDA+LAogCQkJICAgICAgPDB4MTAzMDAwMCAweDEwMDAwPiwKIAkJCSAgICAgIDwweDEwODAwMDAgMHgxMDA+LAorCQkJICAgICAgPDB4MTBlMDAwMCAweDEwMDAwPiwKIAkJCSAgICAgIDwweDExZTAwMDAgMHgxMDA+LAogCQkJICAgICAgPDB4MTFmMDAwMCAweDEwMD4sCiAJCQkgICAgICA8MHgxMjAwMDAwIDB4MTAwPiwKQEAgLTEzNCwxMiArMTM1LDEyIEBACiAJCQkgICAgICA8MHgxODAwMDAwIDB4ODAwMDA+LAogCQkJICAgICAgPDB4MTg4MDAwMCAweDEwMDAwPiwKIAkJCSAgICAgIDwweDEwNjAwMDAgMHgxMDAwMD47Ci0JCQlyZWctbmFtZXMgPSAic3lzIiwgInJldyIsICJxcyIsICJwb3J0MCIsICJwb3J0MSIsCisJCQlyZWctbmFtZXMgPSAic3lzIiwgInJldyIsICJxcyIsICJwdHAiLCAicG9ydDAiLCAicG9ydDEiLAogCQkJCSAgICAicG9ydDIiLCAicG9ydDMiLCAicG9ydDQiLCAicG9ydDUiLCAicG9ydDYiLAogCQkJCSAgICAicG9ydDciLCAicG9ydDgiLCAicG9ydDkiLCAicG9ydDEwIiwgInFzeXMiLAogCQkJCSAgICAiYW5hIiwgInMyIjsKLQkJCWludGVycnVwdHMgPSA8MjEgMjI+OwotCQkJaW50ZXJydXB0LW5hbWVzID0gInh0ciIsICJpbmoiOworCQkJaW50ZXJydXB0cyA9IDwxOCAyMSAyMj47CisJCQlpbnRlcnJ1cHQtbmFtZXMgPSAicHRwX3JkeSIsICJ4dHIiLCAiaW5qIjsKIAogCQkJZXRoZXJuZXQtcG9ydHMgewogCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2Nhdml1bS1vY3Rlb24vZG1hLW9jdGVvbi5jIGIvYXJjaC9taXBzL2Nhdml1bS1vY3Rlb24vZG1hLW9jdGVvbi5jCmluZGV4IDExZDVhNGUuLjE0ZWE2ODAgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9jYXZpdW0tb2N0ZW9uL2RtYS1vY3Rlb24uYworKysgYi9hcmNoL21pcHMvY2F2aXVtLW9jdGVvbi9kbWEtb2N0ZW9uLmMKQEAgLTE5MCw3ICsxOTAsNyBAQCBjaGFyICpvY3Rlb25fc3dpb3RsYjsKIAogdm9pZCBfX2luaXQgcGxhdF9zd2lvdGxiX3NldHVwKHZvaWQpCiB7Ci0JaW50IGk7CisJc3RydWN0IG1lbWJsb2NrX3JlZ2lvbiAqbWVtOwogCXBoeXNfYWRkcl90IG1heF9hZGRyOwogCXBoeXNfYWRkcl90IGFkZHJfc2l6ZTsKIAlzaXplX3Qgc3dpb3RsYnNpemU7CkBAIC0xOTksMTkgKzE5OSwxNSBAQCB2b2lkIF9faW5pdCBwbGF0X3N3aW90bGJfc2V0dXAodm9pZCkKIAltYXhfYWRkciA9IDA7CiAJYWRkcl9zaXplID0gMDsKIAotCWZvciAoaSA9IDAgOyBpIDwgYm9vdF9tZW1fbWFwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBib290X21lbV9tYXBfZW50cnkgKmUgPSAmYm9vdF9tZW1fbWFwLm1hcFtpXTsKLQkJaWYgKGUtPnR5cGUgIT0gQk9PVF9NRU1fUkFNICYmIGUtPnR5cGUgIT0gQk9PVF9NRU1fSU5JVF9SQU0pCi0JCQljb250aW51ZTsKLQorCWZvcl9lYWNoX21lbWJsb2NrKG1lbW9yeSwgbWVtKSB7CiAJCS8qIFRoZXNlIGFkZHJlc3NlcyBtYXAgbG93IGZvciBQQ0kuICovCi0JCWlmIChlLT5hZGRyID4gMHg0MTAwMDAwMDB1bGwgJiYgIU9DVEVPTl9JU19PQ1RFT04yKCkpCisJCWlmIChtZW0tPmJhc2UgPiAweDQxMDAwMDAwMHVsbCAmJiAhT0NURU9OX0lTX09DVEVPTjIoKSkKIAkJCWNvbnRpbnVlOwogCi0JCWFkZHJfc2l6ZSArPSBlLT5zaXplOworCQlhZGRyX3NpemUgKz0gbWVtLT5zaXplOwogCi0JCWlmIChtYXhfYWRkciA8IGUtPmFkZHIgKyBlLT5zaXplKQotCQkJbWF4X2FkZHIgPSBlLT5hZGRyICsgZS0+c2l6ZTsKKwkJaWYgKG1heF9hZGRyIDwgbWVtLT5iYXNlICsgbWVtLT5zaXplKQorCQkJbWF4X2FkZHIgPSBtZW0tPmJhc2UgKyBtZW0tPnNpemU7CiAKIAl9CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9jYXZpdW0tb2N0ZW9uL3NldHVwLmMgYi9hcmNoL21pcHMvY2F2aXVtLW9jdGVvbi9zZXR1cC5jCmluZGV4IDhiZjQzYzUuLjk1MDM0YmYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9jYXZpdW0tb2N0ZW9uL3NldHVwLmMKKysrIGIvYXJjaC9taXBzL2Nhdml1bS1vY3Rlb24vc2V0dXAuYwpAQCAtMTAwNyw4ICsxMDA3LDcgQEAgdm9pZCBfX2luaXQgcGxhdF9tZW1fc2V0dXAodm9pZCkKIAkgKiByZWdpb25zIG5leHQgdG8gZWFjaCBvdGhlci4KIAkgKi8KIAljdm14X2Jvb3RtZW1fbG9jaygpOwotCXdoaWxlICgoYm9vdF9tZW1fbWFwLm5yX21hcCA8IEJPT1RfTUVNX01BUF9NQVgpCi0JCSYmICh0b3RhbCA8IG1heF9tZW1vcnkpKSB7CisJd2hpbGUgKHRvdGFsIDwgbWF4X21lbW9yeSkgewogCQltZW1vcnkgPSBjdm14X2Jvb3RtZW1fcGh5X2FsbG9jKG1lbV9hbGxvY19zaXplLAogCQkJCQkJX19wYV9zeW1ib2woJl9lbmQpLCAtMSwKIAkJCQkJCTB4MTAwMDAwLApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2NvbmZpZ3MvcWlfbGI2MF9kZWZjb25maWcgYi9hcmNoL21pcHMvY29uZmlncy9xaV9sYjYwX2RlZmNvbmZpZwppbmRleCAyMDhkYThhLi5kM2Y0ZDUyIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvY29uZmlncy9xaV9sYjYwX2RlZmNvbmZpZworKysgYi9hcmNoL21pcHMvY29uZmlncy9xaV9sYjYwX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDYgQEAKICMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKIENPTkZJR19TWVNWSVBDPXkKICMgQ09ORklHX0NST1NTX01FTU9SWV9BVFRBQ0ggaXMgbm90IHNldAotQ09ORklHX1BSRUVNUFQ9eQogQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CiBDT05GSUdfS0FMTFNZTVNfQUxMPXkKQEAgLTE3LDkgKzE2LDggQEAKICMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQ9eQogIyBDT05GSUdfRUZJX1BBUlRJVElPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JT1NDSEVEX0NGUSBpcyBub3Qgc2V0CiAjIENPTkZJR19DT1JFX0RVTVBfREVGQVVMVF9FTEZfSEVBREVSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DT01QQUNUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19DTUE9eQogQ09ORklHX05FVD15CiBDT05GSUdfUEFDS0VUPXkKIENPTkZJR19VTklYPXkKQEAgLTMxLDkgKzI5LDYgQEAKIENPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKIENPTkZJR19JUF9NUk9VVEU9eQogQ09ORklHX0lQX01ST1VURV9NVUxUSVBMRV9UQUJMRVM9eQotIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CiBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQ9eQogIyBDT05GSUdfVENQX0NPTkdfQklDIGlzIG5vdCBzZXQKQEAgLTQ0LDcgKzM5LDggQEAKIENPTkZJR19NVEQ9eQogQ09ORklHX01URF9CTE9DSz15CiBDT05GSUdfTVREX1JBV19OQU5EPXkKLUNPTkZJR19NVERfTkFORF9KWjQ3NDA9eQorQ09ORklHX01URF9OQU5EX0paNDc4MD15CitDT05GSUdfTVREX05BTkRfSlo0NzQwX0VDQz15CiBDT05GSUdfTVREX1VCST15CiBDT05GSUdfTkVUREVWSUNFUz15CiAjIENPTkZJR19XTEFOIGlzIG5vdCBzZXQKQEAgLTY2LDE4ICs2MiwyMCBAQAogQ09ORklHX1NQST15CiBDT05GSUdfU1BJX0dQSU89eQogQ09ORklHX1BPV0VSX1NVUFBMWT15Ci1DT05GSUdfQkFUVEVSWV9KWjQ3NDA9eQorQ09ORklHX0JBVFRFUllfSU5HRU5JQz15CiBDT05GSUdfQ0hBUkdFUl9HUElPPXkKLSMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0lJT19IV01PTj15CiBDT05GSUdfV0FUQ0hET0c9eQogQ09ORklHX0paNDc0MF9XRFQ9eQotQ09ORklHX01GRF9KWjQ3NDBfQURDPXkKIENPTkZJR19SRUdVTEFUT1I9eQogQ09ORklHX1JFR1VMQVRPUl9GSVhFRF9WT0xUQUdFPXkKLUNPTkZJR19GQj15Ci1DT05GSUdfRkJfSlo0NzQwPXkKLUNPTkZJR19MQ0RfQ0xBU1NfREVWSUNFPXkKLSMgQ09ORklHX0JBQ0tMSUdIVF9DTEFTU19ERVZJQ0UgaXMgbm90IHNldAorQ09ORklHX0RSTT15CitDT05GSUdfRFJNX0ZCREVWX09WRVJBTExPQz0yMDAKK0NPTkZJR19EUk1fUEFORUxfU0lNUExFPXkKK0NPTkZJR19EUk1fSU5HRU5JQz15CisjIENPTkZJR19MQ0RfQ0xBU1NfREVWSUNFIGlzIG5vdCBzZXQKK0NPTkZJR19CQUNLTElHSFRfQ0xBU1NfREVWSUNFPXkKKyMgQ09ORklHX0JBQ0tMSUdIVF9HRU5FUklDIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKIENPTkZJR19MT0dPPXkKQEAgLTkyLDEzICs5MCwxMyBAQAogIyBDT05GSUdfU05EX1NQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfTUlQUyBpcyBub3Qgc2V0CiBDT05GSUdfU05EX1NPQz15Ci1DT05GSUdfU05EX0paNDc0MF9TT0M9eQotQ09ORklHX1NORF9KWjQ3NDBfU09DX1FJX0xCNjA9eQotQ09ORklHX1VTQj15Ci1DT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCPXkKK0NPTkZJR19TTkRfSlo0NzQwX1NPQ19JMlM9eQorQ09ORklHX1NORF9TT0NfSlo0NzQwX0NPREVDPXkKK0NPTkZJR19TTkRfU09DX1NJTVBMRV9BTVBMSUZJRVI9eQorQ09ORklHX1NORF9TSU1QTEVfQ0FSRD15CiBDT05GSUdfVVNCX01VU0JfSERSQz15Ci1DT05GSUdfVVNCX01VU0JfR0FER0VUPXkKIENPTkZJR19VU0JfTVVTQl9KWjQ3NDA9eQorQ09ORklHX1VTQl9JTlZFTlRSQV9ETUE9eQogQ09ORklHX05PUF9VU0JfWENFSVY9eQogQ09ORklHX1VTQl9HQURHRVQ9eQogQ09ORklHX1VTQl9HQURHRVRfREVCVUc9eQpAQCAtMTA5LDExICsxMDcsMTMgQEAKIENPTkZJR19SVENfQ0xBU1M9eQogQ09ORklHX1JUQ19EUlZfSlo0NzQwPXkKIENPTkZJR19ETUFERVZJQ0VTPXkKLUNPTkZJR19ETUFfSlo0NzQwPXkKK0NPTkZJR19ETUFfSlo0NzgwPXkKK0NPTkZJR19NRU1PUlk9eQorQ09ORklHX0lJTz15CitDT05GSUdfSU5HRU5JQ19BREM9eQogQ09ORklHX1BXTT15CiBDT05GSUdfUFdNX0paNDc0MD15Ci1DT05GSUdfRVhUMl9GUz15Ci1DT05GSUdfRVhUM19GUz15CitDT05GSUdfRVhUNF9GUz15CiAjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKIENPTkZJR19WRkFUX0ZTPXkKIENPTkZJR19QUk9DX0tDT1JFPXkKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9mdy9hcmMvbWVtb3J5LmMgYi9hcmNoL21pcHMvZncvYXJjL21lbW9yeS5jCmluZGV4IDQyOWI3ZjguLmFmNDRiMzUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9mdy9hcmMvbWVtb3J5LmMKKysrIGIvYXJjaC9taXBzL2Z3L2FyYy9tZW1vcnkuYwpAQCAtMjcsNiArMjcsMTEgQEAKIAogI3VuZGVmIERFQlVHCiAKKyNkZWZpbmUgTUFYX1BST01fTUVNIDUKK3N0YXRpYyBwaHlzX2FkZHJfdCBwcm9tX21lbV9iYXNlW01BWF9QUk9NX01FTV0gX19pbml0ZGF0YTsKK3N0YXRpYyBwaHlzX2FkZHJfdCBwcm9tX21lbV9zaXplW01BWF9QUk9NX01FTV0gX19pbml0ZGF0YTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbnJfcHJvbV9tZW0gX19pbml0ZGF0YTsKKwogLyoKICAqIEZvciBBUkMgZmlybXdhcmUgbWVtb3J5IGZ1bmN0aW9ucyB0aGUgdW5pdCBvZiBtZWFzc3VyaW5nIG1lbW9yeSBpcyBhbHdheXMKICAqIGEgNGsgcGFnZSBvZiBtZW1vcnkKQEAgLTEyOSw2ICsxMzQsNyBAQCB2b2lkIF9faW5pdCBwcm9tX21lbWluaXQodm9pZCkKIAl9CiAjZW5kaWYKIAorCW5yX3Byb21fbWVtID0gMDsKIAlwID0gUFJPTV9OVUxMX01ERVNDOwogCXdoaWxlICgocCA9IEFyY0dldE1lbW9yeURlc2NyaXB0b3IocCkpKSB7CiAJCXVuc2lnbmVkIGxvbmcgYmFzZSwgc2l6ZTsKQEAgLTEzOSw2ICsxNDUsMTYgQEAgdm9pZCBfX2luaXQgcHJvbV9tZW1pbml0KHZvaWQpCiAJCXR5cGUgPSBwcm9tX21lbXR5cGVfY2xhc3NpZnkocC0+dHlwZSk7CiAKIAkJYWRkX21lbW9yeV9yZWdpb24oYmFzZSwgc2l6ZSwgdHlwZSk7CisKKwkJaWYgKHR5cGUgPT0gQk9PVF9NRU1fUk9NX0RBVEEpIHsKKwkJCWlmIChucl9wcm9tX21lbSA+PSA1KSB7CisJCQkJcHJfZXJyKCJUb28gbWFueSBST00gREFUQSByZWdpb25zIik7CisJCQkJY29udGludWU7CisJCQl9CisJCQlwcm9tX21lbV9iYXNlW25yX3Byb21fbWVtXSA9IGJhc2U7CisJCQlwcm9tX21lbV9zaXplW25yX3Byb21fbWVtXSA9IHNpemU7CisJCQlucl9wcm9tX21lbSsrOworCQl9CiAJfQogfQogCkBAIC0xNTAsMTIgKzE2Niw4IEBAIHZvaWQgX19pbml0IHByb21fZnJlZV9wcm9tX21lbW9yeSh2b2lkKQogCWlmIChwcm9tX2ZsYWdzICYgUFJPTV9GTEFHX0RPTlRfRlJFRV9URU1QKQogCQlyZXR1cm47CiAKLQlmb3IgKGkgPSAwOyBpIDwgYm9vdF9tZW1fbWFwLm5yX21hcDsgaSsrKSB7Ci0JCWlmIChib290X21lbV9tYXAubWFwW2ldLnR5cGUgIT0gQk9PVF9NRU1fUk9NX0RBVEEpCi0JCQljb250aW51ZTsKLQotCQlhZGRyID0gYm9vdF9tZW1fbWFwLm1hcFtpXS5hZGRyOworCWZvciAoaSA9IDA7IGkgPCBucl9wcm9tX21lbTsgaSsrKSB7CiAJCWZyZWVfaW5pdF9wYWdlcygicHJvbSBtZW1vcnkiLAotCQkJCWFkZHIsIGFkZHIgKyBib290X21lbV9tYXAubWFwW2ldLnNpemUpOworCQkJcHJvbV9tZW1fYmFzZVtpXSwgcHJvbV9tZW1fYmFzZVtpXSArIHByb21fbWVtX3NpemVbaV0pOwogCX0KIH0KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hZGRyc3BhY2UuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hZGRyc3BhY2UuaAppbmRleCA0ODU2YWRjLi41OWE0OGM2IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vYWRkcnNwYWNlLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2FkZHJzcGFjZS5oCkBAIC0xMzUsMTggKzEzNSw5IEBACiAgKi8KICNkZWZpbmUgVE9fUEhZU19NQVNLCV9DT05TVDY0XygweDA3ZmZmZmZmZmZmZmZmZmYpCS8qIDJeXjU5IC0gMSAqLwogCi0jaWZuZGVmIENPTkZJR19DUFVfUjgwMDAKLQotLyoKLSAqIFRoZSBSODAwMCBkb2Vzbid0IGhhdmUgdGhlIDMyLWJpdCBjb21wYXQgc3BhY2VzIHNvIHdlIGRvbid0IGRlZmluZSB0aGVtCi0gKiBpbiBvcmRlciB0byBjYXRjaCBidWdzIGluIHRoZSBzb3VyY2UgY29kZS4KLSAqLwotCiAjZGVmaW5lIENPTVBBVF9LMUJBU0UzMgkJX0NPTlNUNjRfKDB4ZmZmZmZmZmZhMDAwMDAwMCkKICNkZWZpbmUgUEhZU19UT19DT01QQVRLMSh4KQkoKHgpIHwgQ09NUEFUX0sxQkFTRTMyKSAvKiAzMi1iaXQgY29tcGF0IGsxICovCiAKLSNlbmRpZgotCiAjZGVmaW5lIEtETV9UT19QSFlTKHgpCQkoX0FDQVNUNjRfICh4KSAmIFRPX1BIWVNfTUFTSykKICNkZWZpbmUgUEhZU19UT19LMCh4KQkJKF9BQ0FTVDY0XyAoeCkgfCBDQUNfQkFTRSkKIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2F0b21pYy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2F0b21pYy5oCmluZGV4IDlhODJkZDEuLmJiODY1OGNjIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXRvbWljLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2F0b21pYy5oCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgYXRvbWljXyMjb3AoaW50IGksIGF0b21pY190ICogdikJCQkgICAgICBcCiAJCSJcdCIgX19zY2JlcXogIgklMCwgMWIJCQkJCVxuIiAgIFwKIAkJIgkuc2V0CXBvcAkJCQkJXG4iICAgXAogCQk6ICI9JnIiICh0ZW1wKSwgIisiIEdDQ19PRkZfU01BTExfQVNNKCkgKHYtPmNvdW50ZXIpCSAgICAgIFwKLQkJOiAiSXIiIChpKSk7CQkJCQkJICAgICAgXAorCQk6ICJJciIgKGkpIDogX19MTFNDX0NMT0JCRVIpOwkJCQkgICAgICBcCiAJfSBlbHNlIHsJCQkJCQkJICAgICAgXAogCQl1bnNpZ25lZCBsb25nIGZsYWdzOwkJCQkJICAgICAgXAogCQkJCQkJCQkJICAgICAgXApAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgYXRvbWljXyMjb3AjI19yZXR1cm5fcmVsYXhlZChpbnQgaSwgYXRvbWljX3QgKiB2KQkgICAgICBcCiAJCSIJLnNldAlwb3AJCQkJCVxuIiAgIFwKIAkJOiAiPSZyIiAocmVzdWx0KSwgIj0mciIgKHRlbXApLAkJCQkgICAgICBcCiAJCSAgIisiIEdDQ19PRkZfU01BTExfQVNNKCkgKHYtPmNvdW50ZXIpCQkJICAgICAgXAotCQk6ICJJciIgKGkpKTsJCQkJCQkgICAgICBcCisJCTogIklyIiAoaSkgOiBfX0xMU0NfQ0xPQkJFUik7CQkJCSAgICAgIFwKIAl9IGVsc2UgewkJCQkJCQkgICAgICBcCiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CQkJCQkgICAgICBcCiAJCQkJCQkJCQkgICAgICBcCkBAIC0xMzIsNyArMTMyLDcgQEAgc3RhdGljIF9faW5saW5lX18gaW50IGF0b21pY19mZXRjaF8jI29wIyNfcmVsYXhlZChpbnQgaSwgYXRvbWljX3QgKiB2KQkgICAgICBcCiAJCSIJbW92ZQklMCwgJTEJCQkJCVxuIiAgIFwKIAkJOiAiPSZyIiAocmVzdWx0KSwgIj0mciIgKHRlbXApLAkJCQkgICAgICBcCiAJCSAgIisiIEdDQ19PRkZfU01BTExfQVNNKCkgKHYtPmNvdW50ZXIpCQkJICAgICAgXAotCQk6ICJJciIgKGkpKTsJCQkJCQkgICAgICBcCisJCTogIklyIiAoaSkgOiBfX0xMU0NfQ0xPQkJFUik7CQkJCSAgICAgIFwKIAl9IGVsc2UgewkJCQkJCQkgICAgICBcCiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CQkJCQkgICAgICBcCiAJCQkJCQkJCQkgICAgICBcCkBAIC0xOTMsNiArMTkzLDcgQEAgc3RhdGljIF9faW5saW5lX18gaW50IGF0b21pY19zdWJfaWZfcG9zaXRpdmUoaW50IGksIGF0b21pY190ICogdikKIAlpZiAoa2VybmVsX3VzZXNfbGxzYykgewogCQlpbnQgdGVtcDsKIAorCQlsb29uZ3Nvbl9sbHNjX21iKCk7CiAJCV9fYXNtX18gX192b2xhdGlsZV9fKAogCQkiCS5zZXQJcHVzaAkJCQkJXG4iCiAJCSIJLnNldAkiTUlQU19JU0FfTEVWRUwiCQkJXG4iCkBAIC0yMDAsMTYgKzIwMSwxNiBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgYXRvbWljX3N1Yl9pZl9wb3NpdGl2ZShpbnQgaSwgYXRvbWljX3QgKiB2KQogCQkiCS5zZXQJcG9wCQkJCQlcbiIKIAkJIglzdWJ1CSUwLCAlMSwgJTMJCQkJXG4iCiAJCSIJbW92ZQklMSwgJTAJCQkJCVxuIgotCQkiCWJsdHoJJTAsIDFmCQkJCQlcbiIKKwkJIglibHR6CSUwLCAyZgkJCQkJXG4iCiAJCSIJLnNldAlwdXNoCQkJCQlcbiIKIAkJIgkuc2V0CSJNSVBTX0lTQV9MRVZFTCIJCQlcbiIKIAkJIglzYwklMSwgJTIJCQkJCVxuIgogCQkiXHQiIF9fc2NiZXF6ICIJJTEsIDFiCQkJCQlcbiIKLQkJIjE6CQkJCQkJCVxuIgorCQkiMjoJCQkJCQkJXG4iCiAJCSIJLnNldAlwb3AJCQkJCVxuIgogCQk6ICI9JnIiIChyZXN1bHQpLCAiPSZyIiAodGVtcCksCiAJCSAgIisiIEdDQ19PRkZfU01BTExfQVNNKCkgKHYtPmNvdW50ZXIpCi0JCTogIklyIiAoaSkpOworCQk6ICJJciIgKGkpIDogX19MTFNDX0NMT0JCRVIpOwogCX0gZWxzZSB7CiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTI2OSw3ICsyNzAsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGF0b21pYzY0XyMjb3AoczY0IGksIGF0b21pYzY0X3QgKiB2KQkJICAgICAgXAogCQkiXHQiIF9fc2NiZXF6ICIJJTAsIDFiCQkJCQlcbiIgICBcCiAJCSIJLnNldAlwb3AJCQkJCVxuIiAgIFwKIAkJOiAiPSZyIiAodGVtcCksICIrIiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICh2LT5jb3VudGVyKQkgICAgICBcCi0JCTogIklyIiAoaSkpOwkJCQkJCSAgICAgIFwKKwkJOiAiSXIiIChpKSA6IF9fTExTQ19DTE9CQkVSKTsJCQkJICAgICAgXAogCX0gZWxzZSB7CQkJCQkJCSAgICAgIFwKIAkJdW5zaWduZWQgbG9uZyBmbGFnczsJCQkJCSAgICAgIFwKIAkJCQkJCQkJCSAgICAgIFwKQEAgLTI5OSw3ICszMDAsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBzNjQgYXRvbWljNjRfIyNvcCMjX3JldHVybl9yZWxheGVkKHM2NCBpLCBhdG9taWM2NF90ICogdikgICBcCiAJCSIJLnNldAlwb3AJCQkJCVxuIiAgIFwKIAkJOiAiPSZyIiAocmVzdWx0KSwgIj0mciIgKHRlbXApLAkJCQkgICAgICBcCiAJCSAgIisiIEdDQ19PRkZfU01BTExfQVNNKCkgKHYtPmNvdW50ZXIpCQkJICAgICAgXAotCQk6ICJJciIgKGkpKTsJCQkJCQkgICAgICBcCisJCTogIklyIiAoaSkgOiBfX0xMU0NfQ0xPQkJFUik7CQkJCSAgICAgIFwKIAl9IGVsc2UgewkJCQkJCQkgICAgICBcCiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CQkJCQkgICAgICBcCiAJCQkJCQkJCQkgICAgICBcCkBAIC0zMzMsNyArMzM0LDcgQEAgc3RhdGljIF9faW5saW5lX18gczY0IGF0b21pYzY0X2ZldGNoXyMjb3AjI19yZWxheGVkKHM2NCBpLCBhdG9taWM2NF90ICogdikgICAgXAogCQkiCS5zZXQJcG9wCQkJCQlcbiIgICBcCiAJCTogIj0mciIgKHJlc3VsdCksICI9JnIiICh0ZW1wKSwJCQkJICAgICAgXAogCQkgICIrIiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICh2LT5jb3VudGVyKQkJCSAgICAgIFwKLQkJOiAiSXIiIChpKSk7CQkJCQkJICAgICAgXAorCQk6ICJJciIgKGkpIDogX19MTFNDX0NMT0JCRVIpOwkJCQkgICAgICBcCiAJfSBlbHNlIHsJCQkJCQkJICAgICAgXAogCQl1bnNpZ25lZCBsb25nIGZsYWdzOwkJCQkJICAgICAgXAogCQkJCQkJCQkJICAgICAgXApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2JhcnJpZXIuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9iYXJyaWVyLmgKaW5kZXggYjg2NWUzMS4uOTIyOGY3MyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2JhcnJpZXIuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYmFycmllci5oCkBAIC0yMTEsMTQgKzIxMSwyMiBAQAogI2RlZmluZSBfX3NtcF93bWIoKQliYXJyaWVyKCkKICNlbmRpZgogCisvKgorICogV2hlbiBMTC9TQyBkb2VzIGltcGx5IG9yZGVyLCBpdCBtdXN0IGFsc28gYmUgYSBjb21waWxlciBiYXJyaWVyIHRvIGF2b2lkIHRoZQorICogY29tcGlsZXIgZnJvbSByZW9yZGVyaW5nIHdoZXJlIHRoZSBDUFUgd2lsbCBub3QuIFdoZW4gaXQgZG9lcyBub3QgaW1wbHkKKyAqIG9yZGVyLCB0aGUgY29tcGlsZXIgaXMgYWxzbyBmcmVlIHRvIHJlb3JkZXIgYWNyb3NzIHRoZSBMTC9TQyBsb29wIGFuZAorICogb3JkZXJpbmcgd2lsbCBiZSBkb25lIGJ5IHNtcF9sbHNjX21iKCkgYW5kIGZyaWVuZHMuCisgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XRUFLX1JFT1JERVJJTkdfQkVZT05EX0xMU0MpICYmIGRlZmluZWQoQ09ORklHX1NNUCkKICNkZWZpbmUgX19XRUFLX0xMU0NfTUIJCSIJc3luYwlcbiIKKyNkZWZpbmUgc21wX2xsc2NfbWIoKQkJX19hc21fXyBfX3ZvbGF0aWxlX18oX19XRUFLX0xMU0NfTUIgOiA6IDoibWVtb3J5IikKKyNkZWZpbmUgX19MTFNDX0NMT0JCRVIKICNlbHNlCiAjZGVmaW5lIF9fV0VBS19MTFNDX01CCQkiCQlcbiIKKyNkZWZpbmUgc21wX2xsc2NfbWIoKQkJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBfX0xMU0NfQ0xPQkJFUgkJIm1lbW9yeSIKICNlbmRpZgogCi0jZGVmaW5lIHNtcF9sbHNjX21iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18oX19XRUFLX0xMU0NfTUIgOiA6IDoibWVtb3J5IikKLQogI2lmZGVmIENPTkZJR19DUFVfQ0FWSVVNX09DVEVPTgogI2RlZmluZSBzbXBfbWJfX2JlZm9yZV9sbHNjKCkgc21wX3dtYigpCiAjZGVmaW5lIF9fc21wX21iX19iZWZvcmVfbGxzYygpIF9fc21wX3dtYigpCkBAIC0yMzgsMzYgKzI0Niw0MCBAQAogCiAvKgogICogU29tZSBMb29uZ3NvbiAzIENQVXMgaGF2ZSBhIGJ1ZyB3aGVyZWluIGV4ZWN1dGlvbiBvZiBhIG1lbW9yeSBhY2Nlc3MgKGxvYWQsCi0gKiBzdG9yZSBvciBwcmVmKSBpbiBiZXR3ZWVuIGFuIGxsICYgc2MgY2FuIGNhdXNlIHRoZSBzYyBpbnN0cnVjdGlvbiB0bworICogc3RvcmUgb3IgcHJlZmV0Y2gpIGluIGJldHdlZW4gYW4gTEwgJiBTQyBjYW4gY2F1c2UgdGhlIFNDIGluc3RydWN0aW9uIHRvCiAgKiBlcnJvbmVvdXNseSBzdWNjZWVkLCBicmVha2luZyBhdG9taWNpdHkuIFdoaWxzdCBpdCdzIHVudXN1YWwgdG8gd3JpdGUgY29kZQogICogY29udGFpbmluZyBzdWNoIHNlcXVlbmNlcywgdGhpcyBidWcgYml0ZXMgaGFyZGVyIHRoYW4gd2UgbWlnaHQgb3RoZXJ3aXNlCiAgKiBleHBlY3QgZHVlIHRvIHJlb3JkZXJpbmcgJiBzcGVjdWxhdGlvbjoKICAqCi0gKiAxKSBBIG1lbW9yeSBhY2Nlc3MgYXBwZWFyaW5nIHByaW9yIHRvIHRoZSBsbCBpbiBwcm9ncmFtIG9yZGVyIG1heSBhY3R1YWxseQotICogICAgYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGxsIC0gdGhpcyBpcyB0aGUgcmVvcmRlcmluZyBjYXNlLgorICogMSkgQSBtZW1vcnkgYWNjZXNzIGFwcGVhcmluZyBwcmlvciB0byB0aGUgTEwgaW4gcHJvZ3JhbSBvcmRlciBtYXkgYWN0dWFsbHkKKyAqICAgIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBMTCAtIHRoaXMgaXMgdGhlIHJlb3JkZXJpbmcgY2FzZS4KICAqCi0gKiAgICBJbiBvcmRlciB0byBhdm9pZCB0aGlzIHdlIG5lZWQgdG8gcGxhY2UgYSBtZW1vcnkgYmFycmllciAoaWUuIGEgc3luYwotICogICAgaW5zdHJ1Y3Rpb24pIHByaW9yIHRvIGV2ZXJ5IGxsIGluc3RydWN0aW9uLCBpbiBiZXR3ZWVuIGl0ICYgYW55IGVhcmxpZXIKLSAqICAgIG1lbW9yeSBhY2Nlc3MgaW5zdHJ1Y3Rpb25zLiBNYW55IG9mIHRoZXNlIGNhc2VzIGFyZSBhbHJlYWR5IGNvdmVyZWQgYnkKLSAqICAgIHNtcF9tYl9fYmVmb3JlX2xsc2MoKSBidXQgZm9yIHRoZSByZW1haW5pbmcgY2FzZXMsIHR5cGljYWxseSBvbmVzIGluCi0gKiAgICB3aGljaCBtdWx0aXBsZSBDUFVzIG1heSBvcGVyYXRlIG9uIGEgbWVtb3J5IGxvY2F0aW9uIGJ1dCBvcmRlcmluZyBpcyBub3QKLSAqICAgIHVzdWFsbHkgZ3VhcmFudGVlZCwgd2UgdXNlIGxvb25nc29uX2xsc2NfbWIoKSBiZWxvdy4KKyAqICAgIEluIG9yZGVyIHRvIGF2b2lkIHRoaXMgd2UgbmVlZCB0byBwbGFjZSBhIG1lbW9yeSBiYXJyaWVyIChpZS4gYSBTWU5DCisgKiAgICBpbnN0cnVjdGlvbikgcHJpb3IgdG8gZXZlcnkgTEwgaW5zdHJ1Y3Rpb24sIGluIGJldHdlZW4gaXQgYW5kIGFueSBlYXJsaWVyCisgKiAgICBtZW1vcnkgYWNjZXNzIGluc3RydWN0aW9ucy4KICAqCiAgKiAgICBUaGlzIHJlb3JkZXJpbmcgY2FzZSBpcyBmaXhlZCBieSAzQSBSMiBDUFVzLCBpZS4gM0EyMDAwIG1vZGVscyBhbmQgbGF0ZXIuCiAgKgotICogMikgSWYgYSBjb25kaXRpb25hbCBicmFuY2ggZXhpc3RzIGJldHdlZW4gYW4gbGwgJiBzYyB3aXRoIGEgdGFyZ2V0IG91dHNpZGUKLSAqICAgIG9mIHRoZSBsbC1zYyBsb29wLCBmb3IgZXhhbXBsZSBhbiBleGl0IHVwb24gdmFsdWUgbWlzbWF0Y2ggaW4gY21weGNoZygpCisgKiAyKSBJZiBhIGNvbmRpdGlvbmFsIGJyYW5jaCBleGlzdHMgYmV0d2VlbiBhbiBMTCAmIFNDIHdpdGggYSB0YXJnZXQgb3V0c2lkZQorICogICAgb2YgdGhlIExMLVNDIGxvb3AsIGZvciBleGFtcGxlIGFuIGV4aXQgdXBvbiB2YWx1ZSBtaXNtYXRjaCBpbiBjbXB4Y2hnKCkKICAqICAgIG9yIHNpbWlsYXIsIHRoZW4gbWlzcHJlZGljdGlvbiBvZiB0aGUgYnJhbmNoIG1heSBhbGxvdyBzcGVjdWxhdGl2ZQotICogICAgZXhlY3V0aW9uIG9mIG1lbW9yeSBhY2Nlc3NlcyBmcm9tIG91dHNpZGUgb2YgdGhlIGxsLXNjIGxvb3AuCisgKiAgICBleGVjdXRpb24gb2YgbWVtb3J5IGFjY2Vzc2VzIGZyb20gb3V0c2lkZSBvZiB0aGUgTEwtU0MgbG9vcC4KICAqCi0gKiAgICBJbiBvcmRlciB0byBhdm9pZCB0aGlzIHdlIG5lZWQgYSBtZW1vcnkgYmFycmllciAoaWUuIGEgc3luYyBpbnN0cnVjdGlvbikKKyAqICAgIEluIG9yZGVyIHRvIGF2b2lkIHRoaXMgd2UgbmVlZCBhIG1lbW9yeSBiYXJyaWVyIChpZS4gYSBTWU5DIGluc3RydWN0aW9uKQogICogICAgYXQgZWFjaCBhZmZlY3RlZCBicmFuY2ggdGFyZ2V0LCBmb3Igd2hpY2ggd2UgYWxzbyB1c2UgbG9vbmdzb25fbGxzY19tYigpCiAgKiAgICBkZWZpbmVkIGJlbG93LgogICoKICAqICAgIFRoaXMgY2FzZSBhZmZlY3RzIGFsbCBjdXJyZW50IExvb25nc29uIDMgQ1BVcy4KKyAqCisgKiBUaGUgYWJvdmUgZGVzY3JpYmVkIGNhc2VzIGNhdXNlIGFuIGVycm9yIGluIHRoZSBjYWNoZSBjb2hlcmVuY2UgcHJvdG9jb2w7CisgKiBzdWNoIHRoYXQgdGhlIEludmFsaWRhdGUgb2YgYSBjb21wZXRpbmcgTEwtU0MgZ29lcyAnbWlzc2luZycgYW5kIFNDCisgKiBlcnJvbmVvdXNseSBvYnNlcnZlcyBpdHMgY29yZSBzdGlsbCBoYXMgRXhjbHVzaXZlIHN0YXRlIGFuZCBsZXRzIHRoZSBTQworICogcHJvY2VlZC4KKyAqCisgKiBUaGVyZWZvcmUgdGhlIGVycm9yIG9ubHkgb2NjdXJzIG9uIFNNUCBzeXN0ZW1zLgogICovCiAjaWZkZWYgQ09ORklHX0NQVV9MT09OR1NPTjNfV09SS0FST1VORFMgLyogTG9vbmdzb24tMydzIExMU0Mgd29ya2Fyb3VuZCAqLwotI2RlZmluZSBsb29uZ3Nvbl9sbHNjX21iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18oX19XRUFLX0xMU0NfTUIgOiA6IDoibWVtb3J5IikKKyNkZWZpbmUgbG9vbmdzb25fbGxzY19tYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCJzeW5jIiA6IDogOiJtZW1vcnkiKQogI2Vsc2UKICNkZWZpbmUgbG9vbmdzb25fbGxzY19tYigpCWRvIHsgfSB3aGlsZSAoMCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2JpdG9wcy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2JpdG9wcy5oCmluZGV4IDlhNDY2ZGQuLjk4NWQ2YTAgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9iaXRvcHMuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYml0b3BzLmgKQEAgLTY2LDcgKzY2LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHNldF9iaXQodW5zaWduZWQgbG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIAkJIgliZXF6bAklMCwgMWIJCQkJCVxuIgogCQkiCS5zZXQJcG9wCQkJCQlcbiIKIAkJOiAiPSZyIiAodGVtcCksICI9IiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICgqbSkKLQkJOiAiaXIiICgxVUwgPDwgYml0KSwgR0NDX09GRl9TTUFMTF9BU00oKSAoKm0pKTsKKwkJOiAiaXIiICgxVUwgPDwgYml0KSwgR0NDX09GRl9TTUFMTF9BU00oKSAoKm0pCisJCTogX19MTFNDX0NMT0JCRVIpOwogI2lmIGRlZmluZWQoQ09ORklHX0NQVV9NSVBTUjIpIHx8IGRlZmluZWQoQ09ORklHX0NQVV9NSVBTUjYpCiAJfSBlbHNlIGlmIChrZXJuZWxfdXNlc19sbHNjICYmIF9fYnVpbHRpbl9jb25zdGFudF9wKGJpdCkpIHsKIAkJbG9vbmdzb25fbGxzY19tYigpOwpAQCAtNzYsNyArNzcsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2JpdCh1bnNpZ25lZCBsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogCQkJIgkiIF9fSU5TICIlMCwgJTMsICUyLCAxCQkJXG4iCiAJCQkiCSIgX19TQyAiJTAsICUxCQkJCVxuIgogCQkJOiAiPSZyIiAodGVtcCksICIrIiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICgqbSkKLQkJCTogImlyIiAoYml0KSwgInIiICh+MCkpOworCQkJOiAiaXIiIChiaXQpLCAiciIgKH4wKQorCQkJOiBfX0xMU0NfQ0xPQkJFUik7CiAJCX0gd2hpbGUgKHVubGlrZWx5KCF0ZW1wKSk7CiAjZW5kaWYgLyogQ09ORklHX0NQVV9NSVBTUjIgfHwgQ09ORklHX0NQVV9NSVBTUjYgKi8KIAl9IGVsc2UgaWYgKGtlcm5lbF91c2VzX2xsc2MpIHsKQEAgLTkwLDcgKzkyLDggQEAgc3RhdGljIGlubGluZSB2b2lkIHNldF9iaXQodW5zaWduZWQgbG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIAkJCSIJIiBfX1NDCSIlMCwgJTEJCQkJXG4iCiAJCQkiCS5zZXQJcG9wCQkJCVxuIgogCQkJOiAiPSZyIiAodGVtcCksICIrIiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICgqbSkKLQkJCTogImlyIiAoMVVMIDw8IGJpdCkpOworCQkJOiAiaXIiICgxVUwgPDwgYml0KQorCQkJOiBfX0xMU0NfQ0xPQkJFUik7CiAJCX0gd2hpbGUgKHVubGlrZWx5KCF0ZW1wKSk7CiAJfSBlbHNlCiAJCV9fbWlwc19zZXRfYml0KG5yLCBhZGRyKTsKQEAgLTEyMiw3ICsxMjUsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfYml0KHVuc2lnbmVkIGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiAJCSIJYmVxemwJJTAsIDFiCQkJCQlcbiIKIAkJIgkuc2V0CXBvcAkJCQkJXG4iCiAJCTogIj0mciIgKHRlbXApLCAiKyIgR0NDX09GRl9TTUFMTF9BU00oKSAoKm0pCi0JCTogImlyIiAofigxVUwgPDwgYml0KSkpOworCQk6ICJpciIgKH4oMVVMIDw8IGJpdCkpCisJCTogX19MTFNDX0NMT0JCRVIpOwogI2lmIGRlZmluZWQoQ09ORklHX0NQVV9NSVBTUjIpIHx8IGRlZmluZWQoQ09ORklHX0NQVV9NSVBTUjYpCiAJfSBlbHNlIGlmIChrZXJuZWxfdXNlc19sbHNjICYmIF9fYnVpbHRpbl9jb25zdGFudF9wKGJpdCkpIHsKIAkJbG9vbmdzb25fbGxzY19tYigpOwpAQCAtMTMyLDcgKzEzNiw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9iaXQodW5zaWduZWQgbG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIAkJCSIJIiBfX0lOUyAiJTAsICQwLCAlMiwgMQkJCVxuIgogCQkJIgkiIF9fU0MgIiUwLCAlMQkJCQlcbiIKIAkJCTogIj0mciIgKHRlbXApLCAiKyIgR0NDX09GRl9TTUFMTF9BU00oKSAoKm0pCi0JCQk6ICJpciIgKGJpdCkpOworCQkJOiAiaXIiIChiaXQpCisJCQk6IF9fTExTQ19DTE9CQkVSKTsKIAkJfSB3aGlsZSAodW5saWtlbHkoIXRlbXApKTsKICNlbmRpZiAvKiBDT05GSUdfQ1BVX01JUFNSMiB8fCBDT05GSUdfQ1BVX01JUFNSNiAqLwogCX0gZWxzZSBpZiAoa2VybmVsX3VzZXNfbGxzYykgewpAQCAtMTQ2LDcgKzE1MSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9iaXQodW5zaWduZWQgbG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIAkJCSIJIiBfX1NDICIlMCwgJTEJCQkJXG4iCiAJCQkiCS5zZXQJcG9wCQkJCVxuIgogCQkJOiAiPSZyIiAodGVtcCksICIrIiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICgqbSkKLQkJCTogImlyIiAofigxVUwgPDwgYml0KSkpOworCQkJOiAiaXIiICh+KDFVTCA8PCBiaXQpKQorCQkJOiBfX0xMU0NfQ0xPQkJFUik7CiAJCX0gd2hpbGUgKHVubGlrZWx5KCF0ZW1wKSk7CiAJfSBlbHNlCiAJCV9fbWlwc19jbGVhcl9iaXQobnIsIGFkZHIpOwpAQCAtMTkyLDcgKzE5OCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjaGFuZ2VfYml0KHVuc2lnbmVkIGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiAJCSIJYmVxemwJJTAsIDFiCQkJCVxuIgogCQkiCS5zZXQJcG9wCQkJCVxuIgogCQk6ICI9JnIiICh0ZW1wKSwgIisiIEdDQ19PRkZfU01BTExfQVNNKCkgKCptKQotCQk6ICJpciIgKDFVTCA8PCBiaXQpKTsKKwkJOiAiaXIiICgxVUwgPDwgYml0KQorCQk6IF9fTExTQ19DTE9CQkVSKTsKIAl9IGVsc2UgaWYgKGtlcm5lbF91c2VzX2xsc2MpIHsKIAkJdW5zaWduZWQgbG9uZyAqbSA9ICgodW5zaWduZWQgbG9uZyAqKSBhZGRyKSArIChuciA+PiBTWkxPTkdfTE9HKTsKIAkJdW5zaWduZWQgbG9uZyB0ZW1wOwpAQCAtMjA3LDcgKzIxNCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjaGFuZ2VfYml0KHVuc2lnbmVkIGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiAJCQkiCSIgX19TQwkiJTAsICUxCQkJCVxuIgogCQkJIgkuc2V0CXBvcAkJCQlcbiIKIAkJCTogIj0mciIgKHRlbXApLCAiKyIgR0NDX09GRl9TTUFMTF9BU00oKSAoKm0pCi0JCQk6ICJpciIgKDFVTCA8PCBiaXQpKTsKKwkJCTogImlyIiAoMVVMIDw8IGJpdCkKKwkJCTogX19MTFNDX0NMT0JCRVIpOwogCQl9IHdoaWxlICh1bmxpa2VseSghdGVtcCkpOwogCX0gZWxzZQogCQlfX21pcHNfY2hhbmdlX2JpdChuciwgYWRkcik7CkBAIC0yNDQsMTEgKzI1MiwxMiBAQCBzdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9zZXRfYml0KHVuc2lnbmVkIGxvbmcgbnIsCiAJCSIJLnNldAlwb3AJCQkJCVxuIgogCQk6ICI9JnIiICh0ZW1wKSwgIisiIEdDQ19PRkZfU01BTExfQVNNKCkgKCptKSwgIj0mciIgKHJlcykKIAkJOiAiciIgKDFVTCA8PCBiaXQpCi0JCTogIm1lbW9yeSIpOworCQk6IF9fTExTQ19DTE9CQkVSKTsKIAl9IGVsc2UgaWYgKGtlcm5lbF91c2VzX2xsc2MpIHsKIAkJdW5zaWduZWQgbG9uZyAqbSA9ICgodW5zaWduZWQgbG9uZyAqKSBhZGRyKSArIChuciA+PiBTWkxPTkdfTE9HKTsKIAkJdW5zaWduZWQgbG9uZyB0ZW1wOwogCisJCWxvb25nc29uX2xsc2NfbWIoKTsKIAkJZG8gewogCQkJX19hc21fXyBfX3ZvbGF0aWxlX18oCiAJCQkiCS5zZXQJcHVzaAkJCQlcbiIKQEAgLTI1OSw3ICsyNjgsNyBAQCBzdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9zZXRfYml0KHVuc2lnbmVkIGxvbmcgbnIsCiAJCQkiCS5zZXQJcG9wCQkJCVxuIgogCQkJOiAiPSZyIiAodGVtcCksICIrIiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICgqbSksICI9JnIiIChyZXMpCiAJCQk6ICJyIiAoMVVMIDw8IGJpdCkKLQkJCTogIm1lbW9yeSIpOworCQkJOiBfX0xMU0NfQ0xPQkJFUik7CiAJCX0gd2hpbGUgKHVubGlrZWx5KCFyZXMpKTsKIAogCQlyZXMgPSB0ZW1wICYgKDFVTCA8PCBiaXQpOwpAQCAtMzAwLDExICszMDksMTIgQEAgc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfc2V0X2JpdF9sb2NrKHVuc2lnbmVkIGxvbmcgbnIsCiAJCSIJLnNldAlwb3AJCQkJCVxuIgogCQk6ICI9JnIiICh0ZW1wKSwgIittIiAoKm0pLCAiPSZyIiAocmVzKQogCQk6ICJyIiAoMVVMIDw8IGJpdCkKLQkJOiAibWVtb3J5Iik7CisJCTogX19MTFNDX0NMT0JCRVIpOwogCX0gZWxzZSBpZiAoa2VybmVsX3VzZXNfbGxzYykgewogCQl1bnNpZ25lZCBsb25nICptID0gKCh1bnNpZ25lZCBsb25nICopIGFkZHIpICsgKG5yID4+IFNaTE9OR19MT0cpOwogCQl1bnNpZ25lZCBsb25nIHRlbXA7CiAKKwkJbG9vbmdzb25fbGxzY19tYigpOwogCQlkbyB7CiAJCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygKIAkJCSIJLnNldAlwdXNoCQkJCVxuIgpAQCAtMzE1LDcgKzMyNSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX3NldF9iaXRfbG9jayh1bnNpZ25lZCBsb25nIG5yLAogCQkJIgkuc2V0CXBvcAkJCQlcbiIKIAkJCTogIj0mciIgKHRlbXApLCAiKyIgR0NDX09GRl9TTUFMTF9BU00oKSAoKm0pLCAiPSZyIiAocmVzKQogCQkJOiAiciIgKDFVTCA8PCBiaXQpCi0JCQk6ICJtZW1vcnkiKTsKKwkJCTogX19MTFNDX0NMT0JCRVIpOwogCQl9IHdoaWxlICh1bmxpa2VseSghcmVzKSk7CiAKIAkJcmVzID0gdGVtcCAmICgxVUwgPDwgYml0KTsKQEAgLTM1OCwxMiArMzY4LDEzIEBAIHN0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX2NsZWFyX2JpdCh1bnNpZ25lZCBsb25nIG5yLAogCQkiCS5zZXQJcG9wCQkJCQlcbiIKIAkJOiAiPSZyIiAodGVtcCksICIrIiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICgqbSksICI9JnIiIChyZXMpCiAJCTogInIiICgxVUwgPDwgYml0KQotCQk6ICJtZW1vcnkiKTsKKwkJOiBfX0xMU0NfQ0xPQkJFUik7CiAjaWYgZGVmaW5lZChDT05GSUdfQ1BVX01JUFNSMikgfHwgZGVmaW5lZChDT05GSUdfQ1BVX01JUFNSNikKIAl9IGVsc2UgaWYgKGtlcm5lbF91c2VzX2xsc2MgJiYgX19idWlsdGluX2NvbnN0YW50X3AobnIpKSB7CiAJCXVuc2lnbmVkIGxvbmcgKm0gPSAoKHVuc2lnbmVkIGxvbmcgKikgYWRkcikgKyAobnIgPj4gU1pMT05HX0xPRyk7CiAJCXVuc2lnbmVkIGxvbmcgdGVtcDsKIAorCQlsb29uZ3Nvbl9sbHNjX21iKCk7CiAJCWRvIHsKIAkJCV9fYXNtX18gX192b2xhdGlsZV9fKAogCQkJIgkiIF9fTEwJIiUwLCAlMSAjIHRlc3RfYW5kX2NsZWFyX2JpdAlcbiIKQEAgLTM3MiwxMyArMzgzLDE0IEBAIHN0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX2NsZWFyX2JpdCh1bnNpZ25lZCBsb25nIG5yLAogCQkJIgkiIF9fU0MJIiUwLCAlMQkJCQlcbiIKIAkJCTogIj0mciIgKHRlbXApLCAiKyIgR0NDX09GRl9TTUFMTF9BU00oKSAoKm0pLCAiPSZyIiAocmVzKQogCQkJOiAiaXIiIChiaXQpCi0JCQk6ICJtZW1vcnkiKTsKKwkJCTogX19MTFNDX0NMT0JCRVIpOwogCQl9IHdoaWxlICh1bmxpa2VseSghdGVtcCkpOwogI2VuZGlmCiAJfSBlbHNlIGlmIChrZXJuZWxfdXNlc19sbHNjKSB7CiAJCXVuc2lnbmVkIGxvbmcgKm0gPSAoKHVuc2lnbmVkIGxvbmcgKikgYWRkcikgKyAobnIgPj4gU1pMT05HX0xPRyk7CiAJCXVuc2lnbmVkIGxvbmcgdGVtcDsKIAorCQlsb29uZ3Nvbl9sbHNjX21iKCk7CiAJCWRvIHsKIAkJCV9fYXNtX18gX192b2xhdGlsZV9fKAogCQkJIgkuc2V0CXB1c2gJCQkJXG4iCkBAIC0zOTAsNyArNDAyLDcgQEAgc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfY2xlYXJfYml0KHVuc2lnbmVkIGxvbmcgbnIsCiAJCQkiCS5zZXQJcG9wCQkJCVxuIgogCQkJOiAiPSZyIiAodGVtcCksICIrIiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICgqbSksICI9JnIiIChyZXMpCiAJCQk6ICJyIiAoMVVMIDw8IGJpdCkKLQkJCTogIm1lbW9yeSIpOworCQkJOiBfX0xMU0NfQ0xPQkJFUik7CiAJCX0gd2hpbGUgKHVubGlrZWx5KCFyZXMpKTsKIAogCQlyZXMgPSB0ZW1wICYgKDFVTCA8PCBiaXQpOwpAQCAtNDMzLDExICs0NDUsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfY2hhbmdlX2JpdCh1bnNpZ25lZCBsb25nIG5yLAogCQkiCS5zZXQJcG9wCQkJCQlcbiIKIAkJOiAiPSZyIiAodGVtcCksICIrIiBHQ0NfT0ZGX1NNQUxMX0FTTSgpICgqbSksICI9JnIiIChyZXMpCiAJCTogInIiICgxVUwgPDwgYml0KQotCQk6ICJtZW1vcnkiKTsKKwkJOiBfX0xMU0NfQ0xPQkJFUik7CiAJfSBlbHNlIGlmIChrZXJuZWxfdXNlc19sbHNjKSB7CiAJCXVuc2lnbmVkIGxvbmcgKm0gPSAoKHVuc2lnbmVkIGxvbmcgKikgYWRkcikgKyAobnIgPj4gU1pMT05HX0xPRyk7CiAJCXVuc2lnbmVkIGxvbmcgdGVtcDsKIAorCQlsb29uZ3Nvbl9sbHNjX21iKCk7CiAJCWRvIHsKIAkJCV9fYXNtX18gX192b2xhdGlsZV9fKAogCQkJIgkuc2V0CXB1c2gJCQkJXG4iCkBAIC00NDgsNyArNDYxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfY2hhbmdlX2JpdCh1bnNpZ25lZCBsb25nIG5yLAogCQkJIgkuc2V0CXBvcAkJCQlcbiIKIAkJCTogIj0mciIgKHRlbXApLCAiKyIgR0NDX09GRl9TTUFMTF9BU00oKSAoKm0pLCAiPSZyIiAocmVzKQogCQkJOiAiciIgKDFVTCA8PCBiaXQpCi0JCQk6ICJtZW1vcnkiKTsKKwkJCTogX19MTFNDX0NMT0JCRVIpOwogCQl9IHdoaWxlICh1bmxpa2VseSghcmVzKSk7CiAKIAkJcmVzID0gdGVtcCAmICgxVUwgPDwgYml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9ib290aW5mby5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2Jvb3RpbmZvLmgKaW5kZXggMjM1YmMyZi4uMzRkNjIyMiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2Jvb3RpbmZvLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2Jvb3RpbmZvLmgKQEAgLTgxLDM0ICs4MSwxOSBAQCBlbnVtIGxvb25nc29uX21hY2hpbmVfdHlwZSB7CiAjZGVmaW5lICBNQUNIX0lOR0VOSUNfSlo0NzQwCTEJLyogSlo0NzQwIFNPQwkJKi8KICNkZWZpbmUgIE1BQ0hfSU5HRU5JQ19KWjQ3NzAJMgkvKiBKWjQ3NzAgU09DCQkqLwogI2RlZmluZSAgTUFDSF9JTkdFTklDX0paNDc4MAkzCS8qIEpaNDc4MCBTT0MJCSovCisjZGVmaW5lICBNQUNIX0lOR0VOSUNfWDEwMDAJCTQJLyogWDEwMDAgU09DCQkqLwogCiBleHRlcm4gY2hhciAqc3lzdGVtX3R5cGU7CiBjb25zdCBjaGFyICpnZXRfc3lzdGVtX3R5cGUodm9pZCk7CiAKIGV4dGVybiB1bnNpZ25lZCBsb25nIG1pcHNfbWFjaHR5cGU7CiAKLSNkZWZpbmUgQk9PVF9NRU1fTUFQX01BWAkzMgogI2RlZmluZSBCT09UX01FTV9SQU0JCTEKICNkZWZpbmUgQk9PVF9NRU1fUk9NX0RBVEEJMgogI2RlZmluZSBCT09UX01FTV9SRVNFUlZFRAkzCiAjZGVmaW5lIEJPT1RfTUVNX0lOSVRfUkFNCTQKICNkZWZpbmUgQk9PVF9NRU1fTk9NQVAJCTUKIAotLyoKLSAqIEEgbWVtb3J5IG1hcCB0aGF0J3MgYnVpbHQgdXBvbiB3aGF0IHdhcyBkZXRlcm1pbmVkCi0gKiBvciBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KLSAqLwotc3RydWN0IGJvb3RfbWVtX21hcCB7Ci0JaW50IG5yX21hcDsKLQlzdHJ1Y3QgYm9vdF9tZW1fbWFwX2VudHJ5IHsKLQkJcGh5c19hZGRyX3QgYWRkcjsJLyogc3RhcnQgb2YgbWVtb3J5IHNlZ21lbnQgKi8KLQkJcGh5c19hZGRyX3Qgc2l6ZTsJLyogc2l6ZSBvZiBtZW1vcnkgc2VnbWVudCAqLwotCQlsb25nIHR5cGU7CQkvKiB0eXBlIG9mIG1lbW9yeSBzZWdtZW50ICovCi0JfSBtYXBbQk9PVF9NRU1fTUFQX01BWF07Ci19OwotCi1leHRlcm4gc3RydWN0IGJvb3RfbWVtX21hcCBib290X21lbV9tYXA7Ci0KIGV4dGVybiB2b2lkIGFkZF9tZW1vcnlfcmVnaW9uKHBoeXNfYWRkcl90IHN0YXJ0LCBwaHlzX2FkZHJfdCBzaXplLCBsb25nIHR5cGUpOwogZXh0ZXJuIHZvaWQgZGV0ZWN0X21lbW9yeV9yZWdpb24ocGh5c19hZGRyX3Qgc3RhcnQsIHBoeXNfYWRkcl90IHN6X21pbiwgIHBoeXNfYWRkcl90IHN6X21heCk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9jbXB4Y2hnLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vY21weGNoZy5oCmluZGV4IGYzNDVhODcuLjc5YmYzNGUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9jbXB4Y2hnLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2NtcHhjaGcuaApAQCAtNDYsNiArNDYsNyBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBfX3hjaGdfY2FsbGVkX3dpdGhfYmFkX3BvaW50ZXIodm9pZCkKIAlfX3R5cGVvZigqKG0pKSBfX3JldDsJCQkJCQlcCiAJCQkJCQkJCQlcCiAJaWYgKGtlcm5lbF91c2VzX2xsc2MpIHsJCQkJCQlcCisJCWxvb25nc29uX2xsc2NfbWIoKTsJCQkJCVwKIAkJX19hc21fXyBfX3ZvbGF0aWxlX18oCQkJCQlcCiAJCSIJLnNldAlwdXNoCQkJCVxuIglcCiAJCSIJLnNldAlub2F0CQkJCVxuIglcCkBAIC02MCw3ICs2MSw3IEBAIGV4dGVybiB1bnNpZ25lZCBsb25nIF9feGNoZ19jYWxsZWRfd2l0aF9iYWRfcG9pbnRlcih2b2lkKQogCQkiCS5zZXQJcG9wCQkJCVxuIglcCiAJCTogIj0mciIgKF9fcmV0KSwgIj0iIEdDQ19PRkZfU01BTExfQVNNKCkgKCptKQkJXAogCQk6IEdDQ19PRkZfU01BTExfQVNNKCkgKCptKSwgIkpyIiAodmFsKQkJCVwKLQkJOiAibWVtb3J5Iik7CQkJCQkJXAorCQk6IF9fTExTQ19DTE9CQkVSKTsJCQkJCVwKIAl9IGVsc2UgewkJCQkJCQlcCiAJCXVuc2lnbmVkIGxvbmcgX19mbGFnczsJCQkJCVwKIAkJCQkJCQkJCVwKQEAgLTExNyw2ICsxMTgsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX194Y2hnKHZvbGF0aWxlIHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyB4LAogCV9fdHlwZW9mKCoobSkpIF9fcmV0OwkJCQkJCVwKIAkJCQkJCQkJCVwKIAlpZiAoa2VybmVsX3VzZXNfbGxzYykgewkJCQkJCVwKKwkJbG9vbmdzb25fbGxzY19tYigpOwkJCQkJXAogCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygJCQkJCVwKIAkJIgkuc2V0CXB1c2gJCQkJXG4iCVwKIAkJIgkuc2V0CW5vYXQJCQkJXG4iCVwKQEAgLTEzMiw4ICsxMzQsOSBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX194Y2hnKHZvbGF0aWxlIHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyB4LAogCQkiCS5zZXQJcG9wCQkJCVxuIglcCiAJCSIyOgkJCQkJCVxuIglcCiAJCTogIj0mciIgKF9fcmV0KSwgIj0iIEdDQ19PRkZfU01BTExfQVNNKCkgKCptKQkJXAotCQk6IEdDQ19PRkZfU01BTExfQVNNKCkgKCptKSwgIkpyIiAob2xkKSwgIkpyIiAobmV3KQkJXAotCQk6ICJtZW1vcnkiKTsJCQkJCQlcCisJCTogR0NDX09GRl9TTUFMTF9BU00oKSAoKm0pLCAiSnIiIChvbGQpLCAiSnIiIChuZXcpCVwKKwkJOiBfX0xMU0NfQ0xPQkJFUik7CQkJCQlcCisJCWxvb25nc29uX2xsc2NfbWIoKTsJCQkJCVwKIAl9IGVsc2UgewkJCQkJCQlcCiAJCXVuc2lnbmVkIGxvbmcgX19mbGFnczsJCQkJCVwKIAkJCQkJCQkJCVwKQEAgLTIyOSw2ICsyMzIsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19jbXB4Y2hnNjQodm9sYXRpbGUgdm9pZCAqcHRyLAogCSAqLwogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAorCWxvb25nc29uX2xsc2NfbWIoKTsKIAlhc20gdm9sYXRpbGUoCiAJIgkuc2V0CXB1c2gJCQkJXG4iCiAJIgkuc2V0CSIgTUlQU19JU0FfQVJDSF9MRVZFTCAiCQlcbiIKQEAgLTI3NCw2ICsyNzgsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19jbXB4Y2hnNjQodm9sYXRpbGUgdm9pZCAqcHRyLAogCSAgInIiIChvbGQpLAogCSAgInIiIChuZXcpCiAJOiAibWVtb3J5Iik7CisJbG9vbmdzb25fbGxzY19tYigpOwogCiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCXJldHVybiByZXQ7CkBAIC0yOTAsMTAgKzI5NSwxMyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19jbXB4Y2hnNjQodm9sYXRpbGUgdm9pZCAqcHRyLAogCSAqIHdpbGwgY2F1c2UgYSBidWlsZCBlcnJvciB1bmxlc3MgY3B1X2hhc182NGJpdHMgaXMgYQkJXAogCSAqIGNvbXBpbGUtdGltZSBjb25zdGFudCAxLgkJCQkJXAogCSAqLwkJCQkJCQkJXAotCWlmIChjcHVfaGFzXzY0Yml0cyAmJiBrZXJuZWxfdXNlc19sbHNjKQkJCQlcCisJaWYgKGNwdV9oYXNfNjRiaXRzICYmIGtlcm5lbF91c2VzX2xsc2MpIHsJCQlcCisJCXNtcF9tYl9fYmVmb3JlX2xsc2MoKTsJCQkJCVwKIAkJX19yZXMgPSBfX2NtcHhjaGc2NCgocHRyKSwgX19vbGQsIF9fbmV3KTsJCVwKLQllbHNlCQkJCQkJCQlcCisJCXNtcF9sbHNjX21iKCk7CQkJCQkJXAorCX0gZWxzZSB7CQkJCQkJCVwKIAkJX19yZXMgPSBfX2NtcHhjaGc2NF91bnN1cHBvcnRlZCgpOwkJCVwKKwl9CQkJCQkJCQlcCiAJCQkJCQkJCQlcCiAJX19yZXM7CQkJCQkJCQlcCiB9KQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2NwdS1mZWF0dXJlcy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2NwdS1mZWF0dXJlcy5oCmluZGV4IDY5OThhOTcuLjk4M2E2YTcgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9jcHUtZmVhdHVyZXMuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vY3B1LWZlYXR1cmVzLmgKQEAgLTI0Myw5ICsyNDMsNiBAQAogI2lmbmRlZiBjcHVfaGFzX3BpbmRleGVkX2RjYWNoZQogI2RlZmluZSBjcHVfaGFzX3BpbmRleGVkX2RjYWNoZQkoY3B1X2RhdGFbMF0uZGNhY2hlLmZsYWdzICYgTUlQU19DQUNIRV9QSU5ERVgpCiAjZW5kaWYKLSNpZm5kZWYgY3B1X2hhc19sb2NhbF9lYmFzZQotI2RlZmluZSBjcHVfaGFzX2xvY2FsX2ViYXNlCTEKLSNlbmRpZgogCiAvKgogICogSS1DYWNoZSBzbm9vcHMgcmVtb3RlIHN0b3JlLgkgVGhpcyBvbmx5IG1hdHRlcnMgb24gU01QLiAgU29tZSBtdWx0aXByb2Nlc3NvcnMKQEAgLTM5Nyw2ICszOTQsMjIgQEAKICNkZWZpbmUgY3B1X2hhc19kc3AzCQlfX2FzZShNSVBTX0FTRV9EU1AzKQogI2VuZGlmCiAKKyNpZm5kZWYgY3B1X2hhc19sb29uZ3Nvbl9tbWkKKyNkZWZpbmUgY3B1X2hhc19sb29uZ3Nvbl9tbWkJCV9fYXNlKE1JUFNfQVNFX0xPT05HU09OX01NSSkKKyNlbmRpZgorCisjaWZuZGVmIGNwdV9oYXNfbG9vbmdzb25fY2FtCisjZGVmaW5lIGNwdV9oYXNfbG9vbmdzb25fY2FtCQlfX2FzZShNSVBTX0FTRV9MT09OR1NPTl9DQU0pCisjZW5kaWYKKworI2lmbmRlZiBjcHVfaGFzX2xvb25nc29uX2V4dAorI2RlZmluZSBjcHVfaGFzX2xvb25nc29uX2V4dAkJX19hc2UoTUlQU19BU0VfTE9PTkdTT05fRVhUKQorI2VuZGlmCisKKyNpZm5kZWYgY3B1X2hhc19sb29uZ3Nvbl9leHQyCisjZGVmaW5lIGNwdV9oYXNfbG9vbmdzb25fZXh0MgkJX19hc2UoTUlQU19BU0VfTE9PTkdTT05fRVhUMikKKyNlbmRpZgorCiAjaWZuZGVmIGNwdV9oYXNfbWlwc210CiAjZGVmaW5lIGNwdV9oYXNfbWlwc210CQlfX2lzYV9sdF9hbmRfYXNlKDYsIE1JUFNfQVNFX01JUFNNVCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2NwdS10eXBlLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vY3B1LXR5cGUuaAppbmRleCBhNDVhZjNkLi43YmJiNjY3IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vY3B1LXR5cGUuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vY3B1LXR5cGUuaApAQCAtMzgsNyArMzgsNyBAQCBzdGF0aWMgaW5saW5lIGludCBfX3B1cmUgX19nZXRfY3B1X3R5cGUoY29uc3QgaW50IGNwdV90eXBlKQogI2lmIGRlZmluZWQoQ09ORklHX1NZU19IQVNfQ1BVX01JUFMzMl9SMSkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHX1NZU19IQVNfQ1BVX01JUFMzMl9SMikKIAljYXNlIENQVV80S0VDOgotCWNhc2UgQ1BVX0paUklTQzoKKwljYXNlIENQVV9YQlVSU1Q6CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19TWVNfSEFTX0NQVV9NSVBTMzJfUjIKQEAgLTExNiwxMSArMTE2LDYgQEAgc3RhdGljIGlubGluZSBpbnQgX19wdXJlIF9fZ2V0X2NwdV90eXBlKGNvbnN0IGludCBjcHVfdHlwZSkKIAljYXNlIENQVV9WUjQxODFBOgogI2VuZGlmCiAKLSNpZmRlZiBDT05GSUdfU1lTX0hBU19DUFVfUjQzMDAKLQljYXNlIENQVV9SNDMwMDoKLQljYXNlIENQVV9SNDMxMDoKLSNlbmRpZgotCiAjaWZkZWYgQ09ORklHX1NZU19IQVNfQ1BVX1I0WDAwCiAJY2FzZSBDUFVfUjQwMDBQQzoKIAljYXNlIENQVV9SNDAwMFNDOgpAQCAtMTQzLDEwICsxMzgsNiBAQCBzdGF0aWMgaW5saW5lIGludCBfX3B1cmUgX19nZXRfY3B1X3R5cGUoY29uc3QgaW50IGNwdV90eXBlKQogCWNhc2UgQ1BVX1I1MDAwOgogI2VuZGlmCiAKLSNpZmRlZiBDT05GSUdfU1lTX0hBU19DUFVfUjU0MzIKLQljYXNlIENQVV9SNTQzMjoKLSNlbmRpZgotCiAjaWZkZWYgQ09ORklHX1NZU19IQVNfQ1BVX1I1NTAwCiAJY2FzZSBDUFVfUjU1MDA6CiAjZW5kaWYKQEAgLTE1NSwxMCArMTQ2LDYgQEAgc3RhdGljIGlubGluZSBpbnQgX19wdXJlIF9fZ2V0X2NwdV90eXBlKGNvbnN0IGludCBjcHVfdHlwZSkKIAljYXNlIENQVV9ORVZBREE6CiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19TWVNfSEFTX0NQVV9SODAwMAotCWNhc2UgQ1BVX1I4MDAwOgotI2VuZGlmCi0KICNpZmRlZiBDT05GSUdfU1lTX0hBU19DUFVfUjEwMDAwCiAJY2FzZSBDUFVfUjEwMDAwOgogCWNhc2UgQ1BVX1IxMjAwMDoKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9jcHUuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9jcHUuaAppbmRleCAyOTAzNjlmLi43ZmRkY2I4IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vY3B1LmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2NwdS5oCkBAIC00Nyw3ICs0Nyw3IEBACiAjZGVmaW5lIFBSSURfQ09NUF9DQVZJVU0JMHgwZDAwMDAKICNkZWZpbmUgUFJJRF9DT01QX0xPT05HU09OCTB4MTQwMDAwCiAjZGVmaW5lIFBSSURfQ09NUF9JTkdFTklDX0QwCTB4ZDAwMDAwCS8qIEpaNDc0MCwgSlo0NzUwICovCi0jZGVmaW5lIFBSSURfQ09NUF9JTkdFTklDX0QxCTB4ZDEwMDAwCS8qIEpaNDc3MCwgSlo0Nzc1ICovCisjZGVmaW5lIFBSSURfQ09NUF9JTkdFTklDX0QxCTB4ZDEwMDAwCS8qIEpaNDc3MCwgSlo0Nzc1LCBYMTAwMCAqLwogI2RlZmluZSBQUklEX0NPTVBfSU5HRU5JQ19FMQkweGUxMDAwMAkvKiBKWjQ3ODAgKi8KIAogLyoKQEAgLTE4Myw3ICsxODMsNyBAQAogICogVGhlc2UgYXJlIHRoZSBQUklEJ3MgZm9yIHdoZW4gMjM6MTYgPT0gUFJJRF9DT01QX0lOR0VOSUNfKgogICovCiAKLSNkZWZpbmUgUFJJRF9JTVBfSlpSSVNDCSAgICAgICAweDAyMDAKKyNkZWZpbmUgUFJJRF9JTVBfWEJVUlNUCSAgICAgICAweDAyMDAKIAogLyoKICAqIFRoZXNlIGFyZSB0aGUgUFJJRCdzIGZvciB3aGVuIDIzOjE2ID09IFBSSURfQ09NUF9ORVRMT0dJQwpAQCAtMjkzLDE5ICsyOTMsMTQgQEAgZW51bSBjcHVfdHlwZV9lbnVtIHsKIAkvKgogCSAqIFI0MDAwIGNsYXNzIHByb2Nlc3NvcnMKIAkgKi8KLQlDUFVfUjQwMDBQQywgQ1BVX1I0MDAwU0MsIENQVV9SNDAwME1DLCBDUFVfUjQyMDAsIENQVV9SNDMwMCwgQ1BVX1I0MzEwLAorCUNQVV9SNDAwMFBDLCBDUFVfUjQwMDBTQywgQ1BVX1I0MDAwTUMsIENQVV9SNDIwMCwKIAlDUFVfUjQ0MDBQQywgQ1BVX1I0NDAwU0MsIENQVV9SNDQwME1DLCBDUFVfUjQ2MDAsIENQVV9SNDY0MCwgQ1BVX1I0NjUwLAotCUNQVV9SNDcwMCwgQ1BVX1I1MDAwLCBDUFVfUjU1MDAsIENQVV9ORVZBREEsIENQVV9SNTQzMiwgQ1BVX1IxMDAwMCwKKwlDUFVfUjQ3MDAsIENQVV9SNTAwMCwgQ1BVX1I1NTAwLCBDUFVfTkVWQURBLCBDUFVfUjEwMDAwLAogCUNQVV9SMTIwMDAsIENQVV9SMTQwMDAsIENQVV9SMTYwMDAsIENQVV9WUjQxWFgsIENQVV9WUjQxMTEsIENQVV9WUjQxMjEsCiAJQ1BVX1ZSNDEyMiwgQ1BVX1ZSNDEzMSwgQ1BVX1ZSNDEzMywgQ1BVX1ZSNDE4MSwgQ1BVX1ZSNDE4MUEsIENQVV9STTcwMDAsCiAJQ1BVX1NSNzEwMDAsIENQVV9UWDQ5WFgsCiAKIAkvKgotCSAqIFI4MDAwIGNsYXNzIHByb2Nlc3NvcnMKLQkgKi8KLQlDUFVfUjgwMDAsCi0KLQkvKgogCSAqIFRYMzkwMCBjbGFzcyBwcm9jZXNzb3JzCiAJICovCiAJQ1BVX1RYMzkxMiwgQ1BVX1RYMzkyMiwgQ1BVX1RYMzkyNywKQEAgLTMxNSw3ICszMTAsNyBAQCBlbnVtIGNwdV90eXBlX2VudW0gewogCSAqLwogCUNQVV80S0MsIENQVV80S0VDLCBDUFVfNEtTQywgQ1BVXzI0SywgQ1BVXzM0SywgQ1BVXzEwMDRLLCBDUFVfNzRLLAogCUNQVV9BTENIRU1ZLCBDUFVfUFI0NDUwLCBDUFVfQk1JUFMzMiwgQ1BVX0JNSVBTMzMwMCwgQ1BVX0JNSVBTNDM1MCwKLQlDUFVfQk1JUFM0MzgwLCBDUFVfQk1JUFM1MDAwLCBDUFVfSlpSSVNDLCBDUFVfTE9PTkdTT04xLCBDUFVfTTE0S0MsCisJQ1BVX0JNSVBTNDM4MCwgQ1BVX0JNSVBTNTAwMCwgQ1BVX1hCVVJTVCwgQ1BVX0xPT05HU09OMSwgQ1BVX00xNEtDLAogCUNQVV9NMTRLRUMsIENQVV9JTlRFUkFQVElWLCBDUFVfUDU2MDAsIENQVV9QUk9BUFRJViwgQ1BVXzEwNzRLLAogCUNQVV9NNTE1MCwgQ1BVX0k2NDAwLCBDUFVfUDY2MDAsIENQVV9NNjI1MCwKIApAQCAtNDMzLDUgKzQyOCw5IEBAIGVudW0gY3B1X3R5cGVfZW51bSB7CiAjZGVmaW5lIE1JUFNfQVNFX01TQQkJMHgwMDAwMDEwMCAvKiBNSVBTIFNJTUQgQXJjaGl0ZWN0dXJlICovCiAjZGVmaW5lIE1JUFNfQVNFX0RTUDMJCTB4MDAwMDAyMDAgLyogU2lnbmFsIFByb2Nlc3NpbmcgQVNFIFJldiAzKi8KICNkZWZpbmUgTUlQU19BU0VfTUlQUzE2RTIJMHgwMDAwMDQwMCAvKiBNSVBTMTZlMiAqLworI2RlZmluZSBNSVBTX0FTRV9MT09OR1NPTl9NTUkJMHgwMDAwMDgwMCAvKiBMb29uZ3NvbiBNdWx0aU1lZGlhIGV4dGVuc2lvbnMgSW5zdHJ1Y3Rpb25zICovCisjZGVmaW5lIE1JUFNfQVNFX0xPT05HU09OX0NBTQkweDAwMDAxMDAwIC8qIExvb25nc29uIENBTSAqLworI2RlZmluZSBNSVBTX0FTRV9MT09OR1NPTl9FWFQJMHgwMDAwMjAwMCAvKiBMb29uZ3NvbiBFWFRlbnNpb25zICovCisjZGVmaW5lIE1JUFNfQVNFX0xPT05HU09OX0VYVDIJMHgwMDAwNDAwMCAvKiBMb29uZ3NvbiBFWFRlbnNpb25zIFIyICovCiAKICNlbmRpZiAvKiBfQVNNX0NQVV9IICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vaW8uaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9pby5oCmluZGV4IDk3YTI4MDYuLjJiN2I1NjcgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9pby5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9pby5oCkBAIC02MywyMSArNjMsMTEgQEAKICAqIGluc3RydWN0aW9uLCBzbyB0aGUgbG93ZXIgMTYgYml0cyBtdXN0IGJlIHplcm8uICBTaG91bGQgYmUgdHJ1ZSBvbgogICogb24gYW55IHNhbmUgYXJjaGl0ZWN0dXJlOyBnZW5lcmljIGNvZGUgZG9lcyBub3QgdXNlIHRoaXMgYXNzdW1wdGlvbi4KICAqLwotZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGxvbmcgbWlwc19pb19wb3J0X2Jhc2U7CitleHRlcm4gdW5zaWduZWQgbG9uZyBtaXBzX2lvX3BvcnRfYmFzZTsKIAotLyoKLSAqIEdjYyB3aWxsIGdlbmVyYXRlIGNvZGUgdG8gbG9hZCB0aGUgdmFsdWUgb2YgbWlwc19pb19wb3J0X2Jhc2UgYWZ0ZXIgZWFjaAotICogZnVuY3Rpb24gY2FsbCB3aGljaCBtYXkgYmUgZmFpcmx5IHdhc3RlZnVsIGluIHNvbWUgY2FzZXMuICBTbyB3ZSBkb24ndAotICogcGxheSBxdWl0ZSBieSB0aGUgYm9vay4gIFdlIHRlbGwgZ2NjIG1pcHNfaW9fcG9ydF9iYXNlIGlzIGEgbG9uZyB2YXJpYWJsZQotICogd2hpY2ggc29sdmVzIHRoZSBjb2RlIGdlbmVyYXRpb24gaXNzdWUuICBOb3cgd2UgbmVlZCB0byB2aW9sYXRlIHRoZQotICogYWxpYXNpbmcgcnVsZXMgYSBsaXR0bGUgdG8gbWFrZSBpbml0aWFsaXphdGlvbiBwb3NzaWJsZSBhbmQgZmluYWxseSB3ZQotICogd2lsbCBuZWVkIHRoZSBiYXJyaWVyKCkgdG8gZmlnaHQgc2lkZSBlZmZlY3RzIG9mIHRoZSBhbGlhc2luZyBjaGF0LgotICogVGhpcyB0cmlja2VyeSB3aWxsIGV2ZW50dWFsbHkgY29sbGFwc2UgdW5kZXIgZ2NjJ3Mgb3B0aW1pemVyLiAgT2ggd2VsbC4KLSAqLwogc3RhdGljIGlubGluZSB2b2lkIHNldF9pb19wb3J0X2Jhc2UodW5zaWduZWQgbG9uZyBiYXNlKQogewotCSogKHVuc2lnbmVkIGxvbmcgKikgJm1pcHNfaW9fcG9ydF9iYXNlID0gYmFzZTsKLQliYXJyaWVyKCk7CisJbWlwc19pb19wb3J0X2Jhc2UgPSBiYXNlOwogfQogCiAvKgpAQCAtMjYyLDExICsyNTIsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKmlvcmVtYXBfcHJvdChwaHlzX2FkZHJfdCBvZmZzZXQsCiAjZGVmaW5lIGlvcmVtYXBfdWMgaW9yZW1hcF9ub2NhY2hlCiAKIC8qCi0gKiBpb3JlbWFwX2NhY2hhYmxlIC0JbWFwIGJ1cyBtZW1vcnkgaW50byBDUFUgc3BhY2UKKyAqIGlvcmVtYXBfY2FjaGUgLQltYXAgYnVzIG1lbW9yeSBpbnRvIENQVSBzcGFjZQogICogQG9mZnNldDoJICAgIGJ1cyBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKICAqIEBzaXplOgkgICAgc2l6ZSBvZiB0aGUgcmVzb3VyY2UgdG8gbWFwCiAgKgotICogaW9yZW1hcF9ub2NhY2hlIHBlcmZvcm1zIGEgcGxhdGZvcm0gc3BlY2lmaWMgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyB0bworICogaW9yZW1hcF9jYWNoZSBwZXJmb3JtcyBhIHBsYXRmb3JtIHNwZWNpZmljIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgdG8KICAqIG1ha2UgYnVzIG1lbW9yeSBDUFUgYWNjZXNzaWJsZSB2aWEgdGhlIHJlYWRiL3JlYWR3L3JlYWRsL3dyaXRlYi8KICAqIHdyaXRldy93cml0ZWwgZnVuY3Rpb25zIGFuZCB0aGUgb3RoZXIgbW1pbyBoZWxwZXJzLiBUaGUgcmV0dXJuZWQKICAqIGFkZHJlc3MgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgdXNhYmxlIGRpcmVjdGx5IGFzIGEgdmlydHVhbApAQCAtMjc2LDkgKzI2Niw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICppb3JlbWFwX3Byb3QocGh5c19hZGRyX3Qgb2Zmc2V0LAogICogdGhlIENQVS4gIEFsc28gZW5hYmxlcyBmdWxsIHdyaXRlLWNvbWJpbmluZy4JIFVzZWZ1bCBmb3Igc29tZQogICogbWVtb3J5LWxpa2UgcmVnaW9ucyBvbiBJL08gYnVzc2VzLgogICovCi0jZGVmaW5lIGlvcmVtYXBfY2FjaGFibGUob2Zmc2V0LCBzaXplKQkJCQkJXAorI2RlZmluZSBpb3JlbWFwX2NhY2hlKG9mZnNldCwgc2l6ZSkJCQkJCVwKIAlfX2lvcmVtYXBfbW9kZSgob2Zmc2V0KSwgKHNpemUpLCBfcGFnZV9jYWNoYWJsZV9kZWZhdWx0KQotI2RlZmluZSBpb3JlbWFwX2NhY2hlIGlvcmVtYXBfY2FjaGFibGUKIAogLyoKICAqIGlvcmVtYXBfd2MgICAgIC0gICBtYXAgYnVzIG1lbW9yeSBpbnRvIENQVSBzcGFjZQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtYmNtNDd4eC9iY200N3h4X2JvYXJkLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1iY200N3h4L2JjbTQ3eHhfYm9hcmQuaAppbmRleCAwZWY4ODkzLi5mODc5YmUzIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1iY200N3h4L2JjbTQ3eHhfYm9hcmQuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1iY200N3h4L2JjbTQ3eHhfYm9hcmQuaApAQCAtOTgsNiArOTgsNyBAQCBlbnVtIGJjbTQ3eHhfYm9hcmQgewogCUJDTTQ3WFhfQk9BUkRfTU9UT1JPTEFfV1I4NTBHUCwKIAlCQ000N1hYX0JPQVJEX01PVE9ST0xBX1dSODUwR1YyVjMsCiAKKwlCQ000N1hYX0JPQVJEX05FVEdFQVJfUjYyMDBfVjEsCiAJQkNNNDdYWF9CT0FSRF9ORVRHRUFSX1dHUjYxNFY4LAogCUJDTTQ3WFhfQk9BUkRfTkVUR0VBUl9XR1I2MTRWOSwKIAlCQ000N1hYX0JPQVJEX05FVEdFQVJfV0dSNjE0X1YxMCwKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWNhdml1bS1vY3Rlb24vY3B1LWZlYXR1cmUtb3ZlcnJpZGVzLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1jYXZpdW0tb2N0ZW9uL2NwdS1mZWF0dXJlLW92ZXJyaWRlcy5oCmluZGV4IGE0Zjc5ODYuLjUxMzI3MGMgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWNhdml1bS1vY3Rlb24vY3B1LWZlYXR1cmUtb3ZlcnJpZGVzLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtY2F2aXVtLW9jdGVvbi9jcHUtZmVhdHVyZS1vdmVycmlkZXMuaApAQCAtNDUsNyArNDUsNiBAQAogI2RlZmluZSBjcHVfaGFzX2ljX2ZpbGxzX2ZfZGMJMAogI2RlZmluZSBjcHVfaGFzXzY0Yml0cwkJMQogI2RlZmluZSBjcHVfaGFzX29jdGVvbl9jYWNoZQkxCi0jZGVmaW5lIGNwdV9oYXNfc2FhCQlvY3Rlb25faGFzX3NhYSgpCiAjZGVmaW5lIGNwdV9oYXNfbWlwczMycjEJMQogI2RlZmluZSBjcHVfaGFzX21pcHMzMnIyCTEKICNkZWZpbmUgY3B1X2hhc19taXBzNjRyMQkxCkBAIC02MCw3ICs1OSw2IEBACiAKICNkZWZpbmUgY3B1X2hhc19yaXhpCQkoY3B1X2RhdGFbMF0uY3B1dHlwZSAhPSBDUFVfQ0FWSVVNX09DVEVPTikKIAotI2RlZmluZSBBUkNIX0hBU19JUlFfUEVSX0NQVQkxCiAjZGVmaW5lIEFSQ0hfSEFTX1NQSU5MT0NLX1BSRUZFVENIIDEKICNkZWZpbmUgc3Bpbl9sb2NrX3ByZWZldGNoKHgpIHByZWZldGNoKHgpCiAjZGVmaW5lIFBSRUZFVENIX1NUUklERSAxMjgKQEAgLTczLDEzICs3MSw2IEBACiAjZGVmaW5lIEFSQ0hfSEFTX1VTQUJMRV9CVUlMVElOX1BPUENPVU5UIDEKICNlbmRpZgogCi1zdGF0aWMgaW5saW5lIGludCBvY3Rlb25faGFzX3NhYSh2b2lkKQotewotCWludCBpZDsKLQlhc20gdm9sYXRpbGUgKCJtZmMwICUwLCAkMTUsMCIgOiAiPXIiIChpZCkpOwotCXJldHVybiBpZCA+PSAweDAwMGQwMzAwOwotfQotCiAvKgogICogVGhlIGxhc3QgMjU2TUIgYXJlIHJlc2VydmVkIGZvciBkZXZpY2UgdG8gZGV2aWNlIG1hcHBpbmdzIGFuZCB0aGUKICAqIEJBUjEgaG9sZS4KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWNhdml1bS1vY3Rlb24vd2FyLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1jYXZpdW0tb2N0ZW9uL3dhci5oCmluZGV4IDM1YzgwYmUuLjI0MjE0MTEgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWNhdml1bS1vY3Rlb24vd2FyLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtY2F2aXVtLW9jdGVvbi93YXIuaApAQCAtMTIsNyArMTIsNiBAQAogI2RlZmluZSBSNDYwMF9WMV9JTkRFWF9JQ0FDSEVPUF9XQVIJMAogI2RlZmluZSBSNDYwMF9WMV9ISVRfQ0FDSEVPUF9XQVIJMAogI2RlZmluZSBSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIJMAotI2RlZmluZSBSNTQzMl9DUDBfSU5URVJSVVBUX1dBUgkJMAogI2RlZmluZSBCQ00xMjUwX00zX1dBUgkJCTAKICNkZWZpbmUgU0lCWVRFXzE5NTZfV0FSCQkJMAogI2RlZmluZSBNSVBTNEtfSUNBQ0hFX1JFRklMTF9XQVIJMApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtZGVjL2NwdS1mZWF0dXJlLW92ZXJyaWRlcy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtZGVjL2NwdS1mZWF0dXJlLW92ZXJyaWRlcy5oCmluZGV4IDFjMTEzMTAuLjAwYmViNjliZiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtZGVjL2NwdS1mZWF0dXJlLW92ZXJyaWRlcy5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWRlYy9jcHUtZmVhdHVyZS1vdmVycmlkZXMuaApAQCAtMzIsNyArMzIsNiBAQAogI2RlZmluZSBjcHVfaGFzX3Z0YWdfaWNhY2hlCQkwCiAjZGVmaW5lIGNwdV9oYXNfaWNfZmlsbHNfZl9kYwkJMAogI2RlZmluZSBjcHVfaGFzX3BpbmRleGVkX2RjYWNoZQkJMAotI2RlZmluZSBjcHVfaGFzX2xvY2FsX2ViYXNlCQkwCiAjZGVmaW5lIGNwdV9pY2FjaGVfc25vb3BzX3JlbW90ZV9zdG9yZQkxCiAjZGVmaW5lIGNwdV9oYXNfbWlwc180CQkJMAogI2RlZmluZSBjcHVfaGFzX21pcHNfNQkJCTAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWdlbmVyaWMvd2FyLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1nZW5lcmljL3dhci5oCmluZGV4IGExYmMyZTcuLmYwZjRhMzUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWdlbmVyaWMvd2FyLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtZ2VuZXJpYy93YXIuaApAQCAtMTEsNyArMTEsNiBAQAogI2RlZmluZSBSNDYwMF9WMV9JTkRFWF9JQ0FDSEVPUF9XQVIJMAogI2RlZmluZSBSNDYwMF9WMV9ISVRfQ0FDSEVPUF9XQVIJMAogI2RlZmluZSBSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIJMAotI2RlZmluZSBSNTQzMl9DUDBfSU5URVJSVVBUX1dBUgkJMAogI2RlZmluZSBCQ00xMjUwX00zX1dBUgkJCTAKICNkZWZpbmUgU0lCWVRFXzE5NTZfV0FSCQkJMAogI2RlZmluZSBNSVBTNEtfSUNBQ0hFX1JFRklMTF9XQVIJMApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtaXAyMi93YXIuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWlwMjIvd2FyLmgKaW5kZXggZmJhNjQwNS4uYjQ4ZWI0YSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtaXAyMi93YXIuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1pcDIyL3dhci5oCkBAIC0xNSw3ICsxNSw2IEBACiAjZGVmaW5lIFI0NjAwX1YxX0lOREVYX0lDQUNIRU9QX1dBUgkxCiAjZGVmaW5lIFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUgkxCiAjZGVmaW5lIFI0NjAwX1YyX0hJVF9DQUNIRU9QX1dBUgkxCi0jZGVmaW5lIFI1NDMyX0NQMF9JTlRFUlJVUFRfV0FSCQkwCiAjZGVmaW5lIEJDTTEyNTBfTTNfV0FSCQkJMAogI2RlZmluZSBTSUJZVEVfMTk1Nl9XQVIJCQkwCiAjZGVmaW5lIE1JUFM0S19JQ0FDSEVfUkVGSUxMX1dBUgkwCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1pcDI3L3dhci5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtaXAyNy93YXIuaAppbmRleCA0ZWUwZTRiLi5lZjNlZmNlIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1pcDI3L3dhci5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWlwMjcvd2FyLmgKQEAgLTExLDcgKzExLDYgQEAKICNkZWZpbmUgUjQ2MDBfVjFfSU5ERVhfSUNBQ0hFT1BfV0FSCTAKICNkZWZpbmUgUjQ2MDBfVjFfSElUX0NBQ0hFT1BfV0FSCTAKICNkZWZpbmUgUjQ2MDBfVjJfSElUX0NBQ0hFT1BfV0FSCTAKLSNkZWZpbmUgUjU0MzJfQ1AwX0lOVEVSUlVQVF9XQVIJCTAKICNkZWZpbmUgQkNNMTI1MF9NM19XQVIJCQkwCiAjZGVmaW5lIFNJQllURV8xOTU2X1dBUgkJCTAKICNkZWZpbmUgTUlQUzRLX0lDQUNIRV9SRUZJTExfV0FSCTAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWlwMjgvd2FyLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1pcDI4L3dhci5oCmluZGV4IDQ4MjFjN2IuLjYxY2Q2NzMgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWlwMjgvd2FyLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtaXAyOC93YXIuaApAQCAtMTEsNyArMTEsNiBAQAogI2RlZmluZSBSNDYwMF9WMV9JTkRFWF9JQ0FDSEVPUF9XQVIJMAogI2RlZmluZSBSNDYwMF9WMV9ISVRfQ0FDSEVPUF9XQVIJMAogI2RlZmluZSBSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIJMAotI2RlZmluZSBSNTQzMl9DUDBfSU5URVJSVVBUX1dBUgkJMAogI2RlZmluZSBCQ00xMjUwX00zX1dBUgkJCTAKICNkZWZpbmUgU0lCWVRFXzE5NTZfV0FSCQkJMAogI2RlZmluZSBNSVBTNEtfSUNBQ0hFX1JFRklMTF9XQVIJMApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtaXAzMi93YXIuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWlwMzIvd2FyLmgKaW5kZXggOTgwN2VjZC4uZTc3YjlkMSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtaXAzMi93YXIuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1pcDMyL3dhci5oCkBAIC0xMSw3ICsxMSw2IEBACiAjZGVmaW5lIFI0NjAwX1YxX0lOREVYX0lDQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YyX0hJVF9DQUNIRU9QX1dBUgkwCi0jZGVmaW5lIFI1NDMyX0NQMF9JTlRFUlJVUFRfV0FSCQkwCiAjZGVmaW5lIEJDTTEyNTBfTTNfV0FSCQkJMAogI2RlZmluZSBTSUJZVEVfMTk1Nl9XQVIJCQkwCiAjZGVmaW5lIE1JUFM0S19JQ0FDSEVfUkVGSUxMX1dBUgkwCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1qejQ3NDAvZ3Bpby5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtano0NzQwL2dwaW8uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA5MmEzNS4uMDAwMDAwMAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1qejQ3NDAvZ3Bpby5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA5LCBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4KLSAqICBKWjQ3NDAgR1BJTyBwaW4gZGVmaW5pdGlvbnMKLSAqLwotCi0jaWZuZGVmIF9KWl9HUElPX0gKLSNkZWZpbmUgX0paX0dQSU9fSAotCi0jZGVmaW5lIEpaX0dQSU9fUE9SVEEoeCkgKCh4KSArIDMyICogMCkKLSNkZWZpbmUgSlpfR1BJT19QT1JUQih4KSAoKHgpICsgMzIgKiAxKQotI2RlZmluZSBKWl9HUElPX1BPUlRDKHgpICgoeCkgKyAzMiAqIDIpCi0jZGVmaW5lIEpaX0dQSU9fUE9SVEQoeCkgKCh4KSArIDMyICogMykKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1qejQ3NDAvano0NzQwX2ZiLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1qejQ3NDAvano0NzQwX2ZiLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4NGE0OGYuLjAwMDAwMDAKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtano0NzQwL2p6NDc0MF9mYi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA5LCBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4KLSAqLwotCi0jaWZuZGVmIF9fQVNNX01BQ0hfSlo0NzQwX0paNDc0MF9GQl9IX18KLSNkZWZpbmUgX19BU01fTUFDSF9KWjQ3NDBfSlo0NzQwX0ZCX0hfXwotCi0jaW5jbHVkZSA8bGludXgvZmIuaD4KLQotZW51bSBqejQ3NDBfZmJfbGNkX3R5cGUgewotCUpaX0xDRF9UWVBFX0dFTkVSSUNfMTZfQklUID0gMCwKLQlKWl9MQ0RfVFlQRV9HRU5FUklDXzE4X0JJVCA9IDAgfCAoMSA8PCA0KSwKLQlKWl9MQ0RfVFlQRV9TUEVDSUFMX1RGVF8xID0gMSwKLQlKWl9MQ0RfVFlQRV9TUEVDSUFMX1RGVF8yID0gMiwKLQlKWl9MQ0RfVFlQRV9TUEVDSUFMX1RGVF8zID0gMywKLQlKWl9MQ0RfVFlQRV9OT05fSU5URVJMQUNFRF9DQ0lSNjU2ID0gNSwKLQlKWl9MQ0RfVFlQRV9JTlRFUkxBQ0VEX0NDSVI2NTYgPSA3LAotCUpaX0xDRF9UWVBFX1NJTkdMRV9DT0xPUl9TVE4gPSA4LAotCUpaX0xDRF9UWVBFX1NJTkdMRV9NT05PQ0hST01FX1NUTiA9IDksCi0JSlpfTENEX1RZUEVfRFVBTF9DT0xPUl9TVE4gPSAxMCwKLQlKWl9MQ0RfVFlQRV9EVUFMX01PTk9DSFJPTUVfU1ROID0gMTEsCi0JSlpfTENEX1RZUEVfOEJJVF9TRVJJQUwgPSAxMiwKLX07Ci0KLSNkZWZpbmUgSlo0NzQwX0ZCX1NQRUNJQUxfVEZUX0NPTkZJRyhzdGFydCwgc3RvcCkgKCgoc3RhcnQpIDw8IDE2KSB8IChzdG9wKSkKLQotLyoKLSogd2lkdGg6IHdpZHRoIG9mIHRoZSBsY2QgZGlzcGxheSBpbiBtbQotKiBoZWlnaHQ6IGhlaWdodCBvZiB0aGUgbGNkIGRpc3BsYXkgaW4gbW0KLSogbnVtX21vZGVzOiBzaXplIG9mIG1vZGVzCi0qIG1vZGVzOiBsaXN0IG9mIHZhbGlkIHZpZGVvIG1vZGVzCi0qIGJwcDogYml0cyBwZXIgcGl4ZWwgZm9yIHRoZSBsY2QKLSogbGNkX3R5cGU6IGxjZCB0eXBlCi0qLwotCi1zdHJ1Y3Qgano0NzQwX2ZiX3BsYXRmb3JtX2RhdGEgewotCXVuc2lnbmVkIGludCB3aWR0aDsKLQl1bnNpZ25lZCBpbnQgaGVpZ2h0OwotCi0Jc2l6ZV90IG51bV9tb2RlczsKLQlzdHJ1Y3QgZmJfdmlkZW9tb2RlICptb2RlczsKLQotCXVuc2lnbmVkIGludCBicHA7Ci0JZW51bSBqejQ3NDBfZmJfbGNkX3R5cGUgbGNkX3R5cGU7Ci0KLQlzdHJ1Y3QgewotCQl1aW50MzJfdCBzcGw7Ci0JCXVpbnQzMl90IGNsczsKLQkJdWludDMyX3QgcHM7Ci0JCXVpbnQzMl90IHJldjsKLQl9IHNwZWNpYWxfdGZ0X2NvbmZpZzsKLQotCXVuc2lnbmVkIHBpeGNsa19mYWxsaW5nX2VkZ2U6MTsKLQl1bnNpZ25lZCBkYXRlX2VuYWJsZV9hY3RpdmVfbG93OjE7Ci19OwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWp6NDc0MC9qejQ3NDBfbW1jLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1qejQ3NDAvano0NzQwX21tYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTdkZTQ3Li4wMDAwMDAwCi0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWp6NDc0MC9qejQ3NDBfbW1jLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwotI2lmbmRlZiBfX0xJTlVYX01NQ19KWjQ3NDBfTU1DCi0jZGVmaW5lIF9fTElOVVhfTU1DX0paNDc0MF9NTUMKLQotc3RydWN0IGp6NDc0MF9tbWNfcGxhdGZvcm1fZGF0YSB7Ci0JdW5zaWduZWQgY2FyZF9kZXRlY3RfYWN0aXZlX2xvdzoxOwotCXVuc2lnbmVkIHJlYWRfb25seV9hY3RpdmVfbG93OjE7Ci0KLQl1bnNpZ25lZCBkYXRhXzFiaXQ6MTsKLX07Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtano0NzQwL3BsYXRmb3JtLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1qejQ3NDAvcGxhdGZvcm0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQxMjcwZC4uMDAwMDAwMAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1qejQ3NDAvcGxhdGZvcm0uaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCi0vKgotICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4KLSAqICBKWjQ3NDAgcGxhdGZvcm0gZGV2aWNlIGRlZmluaXRpb25zCi0gKi8KLQotCi0jaWZuZGVmIF9fSlo0NzQwX1BMQVRGT1JNX0gKLSNkZWZpbmUgX19KWjQ3NDBfUExBVEZPUk1fSAotCi0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0KLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF91ZGNfZGV2aWNlOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugano0NzQwX3VkY194Y2Vpdl9kZXZpY2U7Ci1leHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBqejQ3NDBfbW1jX2RldmljZTsKLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF9pMmNfZGV2aWNlOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugano0NzQwX25hbmRfZGV2aWNlOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugano0NzQwX2ZyYW1lYnVmZmVyX2RldmljZTsKLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF9pMnNfZGV2aWNlOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugano0NzQwX3BjbV9kZXZpY2U7Ci1leHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBqejQ3NDBfY29kZWNfZGV2aWNlOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugano0NzQwX2FkY19kZXZpY2U7Ci1leHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBqejQ3NDBfcHdtX2RldmljZTsKLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF9kbWFfZGV2aWNlOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWxvb25nc29uNjQvY3B1LWZlYXR1cmUtb3ZlcnJpZGVzLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1sb29uZ3NvbjY0L2NwdS1mZWF0dXJlLW92ZXJyaWRlcy5oCmluZGV4IDU4MTkxNWMuLjRhY2EyNWYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWxvb25nc29uNjQvY3B1LWZlYXR1cmUtb3ZlcnJpZGVzLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtbG9vbmdzb242NC9jcHUtZmVhdHVyZS1vdmVycmlkZXMuaApAQCAtNDMsNyArNDMsNiBAQAogI2RlZmluZSBjcHVfaGFzX3ZpbnQJCTAKICNkZWZpbmUgY3B1X2hhc192dGFnX2ljYWNoZQkwCiAjZGVmaW5lIGNwdV9oYXNfd2F0Y2gJCTEKLSNkZWZpbmUgY3B1X2hhc19sb2NhbF9lYmFzZQkwCiAKICNpZmRlZiBDT05GSUdfQ1BVX0xPT05HU09OMwogI2RlZmluZSBjcHVfaGFzX3dzYmgJCTEKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLW1hbHRhL3dhci5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtbWFsdGEvd2FyLmgKaW5kZXggZDA2OGZjNC4uZDYyZDJmZiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtbWFsdGEvd2FyLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtbWFsdGEvd2FyLmgKQEAgLTExLDcgKzExLDYgQEAKICNkZWZpbmUgUjQ2MDBfVjFfSU5ERVhfSUNBQ0hFT1BfV0FSCTAKICNkZWZpbmUgUjQ2MDBfVjFfSElUX0NBQ0hFT1BfV0FSCTAKICNkZWZpbmUgUjQ2MDBfVjJfSElUX0NBQ0hFT1BfV0FSCTAKLSNkZWZpbmUgUjU0MzJfQ1AwX0lOVEVSUlVQVF9XQVIJCTAKICNkZWZpbmUgQkNNMTI1MF9NM19XQVIJCQkwCiAjZGVmaW5lIFNJQllURV8xOTU2X1dBUgkJCTAKICNkZWZpbmUgTUlQUzRLX0lDQUNIRV9SRUZJTExfV0FSCTEKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLXBtY3MtbXNwNzF4eC93YXIuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLXBtY3MtbXNwNzF4eC93YXIuaAppbmRleCBhNjBiZjlkLi4zMWM1NDZmIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1wbWNzLW1zcDcxeHgvd2FyLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtcG1jcy1tc3A3MXh4L3dhci5oCkBAIC0xMSw3ICsxMSw2IEBACiAjZGVmaW5lIFI0NjAwX1YxX0lOREVYX0lDQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YyX0hJVF9DQUNIRU9QX1dBUgkwCi0jZGVmaW5lIFI1NDMyX0NQMF9JTlRFUlJVUFRfV0FSCQkwCiAjZGVmaW5lIEJDTTEyNTBfTTNfV0FSCQkJMAogI2RlZmluZSBTSUJZVEVfMTk1Nl9XQVIJCQkwCiAjZGVmaW5lIE1JUFM0S19JQ0FDSEVfUkVGSUxMX1dBUgkwCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1yYzMyNDM0L3dhci5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtcmMzMjQzNC93YXIuaAppbmRleCAxYmZkNDg5YS4uYWY0MzBkMiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtcmMzMjQzNC93YXIuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1yYzMyNDM0L3dhci5oCkBAIC0xMSw3ICsxMSw2IEBACiAjZGVmaW5lIFI0NjAwX1YxX0lOREVYX0lDQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YyX0hJVF9DQUNIRU9QX1dBUgkwCi0jZGVmaW5lIFI1NDMyX0NQMF9JTlRFUlJVUFRfV0FSCQkwCiAjZGVmaW5lIEJDTTEyNTBfTTNfV0FSCQkJMAogI2RlZmluZSBTSUJZVEVfMTk1Nl9XQVIJCQkwCiAjZGVmaW5lIE1JUFM0S19JQ0FDSEVfUkVGSUxMX1dBUgkxCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1ybS93YXIuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLXJtL3dhci5oCmluZGV4IGEzZGRlOTguLmVjYTE2ZDEgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLXJtL3dhci5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLXJtL3dhci5oCkBAIC0xNSw3ICsxNSw2IEBACiAjZGVmaW5lIFI0NjAwX1YxX0lOREVYX0lDQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YyX0hJVF9DQUNIRU9QX1dBUgkxCi0jZGVmaW5lIFI1NDMyX0NQMF9JTlRFUlJVUFRfV0FSCQkwCiAjZGVmaW5lIEJDTTEyNTBfTTNfV0FSCQkJMAogI2RlZmluZSBTSUJZVEVfMTk1Nl9XQVIJCQkwCiAjZGVmaW5lIE1JUFM0S19JQ0FDSEVfUkVGSUxMX1dBUgkwCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1zaWJ5dGUvd2FyLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1zaWJ5dGUvd2FyLmgKaW5kZXggNTIwZjhmYy4uNDc1NWI2MSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtc2lieXRlL3dhci5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLXNpYnl0ZS93YXIuaApAQCAtMTEsNyArMTEsNiBAQAogI2RlZmluZSBSNDYwMF9WMV9JTkRFWF9JQ0FDSEVPUF9XQVIJMAogI2RlZmluZSBSNDYwMF9WMV9ISVRfQ0FDSEVPUF9XQVIJMAogI2RlZmluZSBSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIJMAotI2RlZmluZSBSNTQzMl9DUDBfSU5URVJSVVBUX1dBUgkJMAogCiAjaWYgZGVmaW5lZChDT05GSUdfU0IxX1BBU1NfMl9XT1JLQVJPVU5EUykKIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtdHg0OXh4L3dhci5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtdHg0OXh4L3dhci5oCmluZGV4IGE4ZTJjNTguLjQ0NWFiYjRlIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC10eDQ5eHgvd2FyLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtdHg0OXh4L3dhci5oCkBAIC0xMSw3ICsxMSw2IEBACiAjZGVmaW5lIFI0NjAwX1YxX0lOREVYX0lDQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUgkwCiAjZGVmaW5lIFI0NjAwX1YyX0hJVF9DQUNIRU9QX1dBUgkwCi0jZGVmaW5lIFI1NDMyX0NQMF9JTlRFUlJVUFRfV0FSCQkwCiAjZGVmaW5lIEJDTTEyNTBfTTNfV0FSCQkJMAogI2RlZmluZSBTSUJZVEVfMTk1Nl9XQVIJCQkwCiAjZGVmaW5lIE1JUFM0S19JQ0FDSEVfUkVGSUxMX1dBUgkwCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWlwc3JlZ3MuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9taXBzcmVncy5oCmluZGV4IDFlNjk2NmUuLmJkYmRjMTkgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9taXBzcmVncy5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9taXBzcmVncy5oCkBAIC02ODksNiArNjg5LDkgQEAKICNkZWZpbmUgTUlQU19DT05GN19JQVIJCShfVUxDQVNUXygxKSA8PCAxMCkKICNkZWZpbmUgTUlQU19DT05GN19BUgkJKF9VTENBU1RfKDEpIDw8IDE2KQogCisvKiBJbmdlbmljIENvbmZpZzcgYml0cyAqLworI2RlZmluZSBNSVBTX0NPTkY3X0JUQl9MT09QX0VOCShfVUxDQVNUXygxKSA8PCA0KQorCiAvKiBDb25maWc3IEJpdHMgc3BlY2lmaWMgdG8gTUlQUyBUZWNobm9sb2dpZXMuICovCiAKIC8qIFBlcmZvcm1hbmNlIGNvdW50ZXJzIGltcGxlbWVudGVkIFBlciBUQyAqLwpAQCAtMjgxMyw2ICsyODE2LDcgQEAgX19CVUlMRF9TRVRfQzAoc3RhdHVzKQogX19CVUlMRF9TRVRfQzAoY2F1c2UpCiBfX0JVSUxEX1NFVF9DMChjb25maWcpCiBfX0JVSUxEX1NFVF9DMChjb25maWc1KQorX19CVUlMRF9TRVRfQzAoY29uZmlnNykKIF9fQlVJTERfU0VUX0MwKGludGNvbnRyb2wpCiBfX0JVSUxEX1NFVF9DMChpbnRjdGwpCiBfX0JVSUxEX1NFVF9DMChzcnNtYXApCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbW9kdWxlLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbW9kdWxlLmgKaW5kZXggNmRjMGIyMS4uZWQ3MDk5NCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21vZHVsZS5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tb2R1bGUuaApAQCAtMTAzLDIyICsxMDMsMTYgQEAgc2VhcmNoX21vZHVsZV9kYmV0YWJsZXModW5zaWduZWQgbG9uZyBhZGRyKQogI2RlZmluZSBNT0RVTEVfUFJPQ19GQU1JTFkgIlRYMzlYWCAiCiAjZWxpZiBkZWZpbmVkIENPTkZJR19DUFVfVlI0MVhYCiAjZGVmaW5lIE1PRFVMRV9QUk9DX0ZBTUlMWSAiVlI0MVhYICIKLSNlbGlmIGRlZmluZWQgQ09ORklHX0NQVV9SNDMwMAotI2RlZmluZSBNT0RVTEVfUFJPQ19GQU1JTFkgIlI0MzAwICIKICNlbGlmIGRlZmluZWQgQ09ORklHX0NQVV9SNFgwMAogI2RlZmluZSBNT0RVTEVfUFJPQ19GQU1JTFkgIlI0WDAwICIKICNlbGlmIGRlZmluZWQgQ09ORklHX0NQVV9UWDQ5WFgKICNkZWZpbmUgTU9EVUxFX1BST0NfRkFNSUxZICJUWDQ5WFggIgogI2VsaWYgZGVmaW5lZCBDT05GSUdfQ1BVX1I1MDAwCiAjZGVmaW5lIE1PRFVMRV9QUk9DX0ZBTUlMWSAiUjUwMDAgIgotI2VsaWYgZGVmaW5lZCBDT05GSUdfQ1BVX1I1NDMyCi0jZGVmaW5lIE1PRFVMRV9QUk9DX0ZBTUlMWSAiUjU0MzIgIgogI2VsaWYgZGVmaW5lZCBDT05GSUdfQ1BVX1I1NTAwCiAjZGVmaW5lIE1PRFVMRV9QUk9DX0ZBTUlMWSAiUjU1MDAgIgogI2VsaWYgZGVmaW5lZCBDT05GSUdfQ1BVX05FVkFEQQogI2RlZmluZSBNT0RVTEVfUFJPQ19GQU1JTFkgIk5FVkFEQSAiCi0jZWxpZiBkZWZpbmVkIENPTkZJR19DUFVfUjgwMDAKLSNkZWZpbmUgTU9EVUxFX1BST0NfRkFNSUxZICJSODAwMCAiCiAjZWxpZiBkZWZpbmVkIENPTkZJR19DUFVfUjEwMDAwCiAjZGVmaW5lIE1PRFVMRV9QUk9DX0ZBTUlMWSAiUjEwMDAwICIKICNlbGlmIGRlZmluZWQgQ09ORklHX0NQVV9STTcwMDAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9vY3Rlb24vb2N0ZW9uLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vb2N0ZW9uL29jdGVvbi5oCmluZGV4IDYwNDgxNTAuLmEyZTI4NzYzIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vb2N0ZW9uL29jdGVvbi5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9vY3Rlb24vb2N0ZW9uLmgKQEAgLTUxLDcgKzUxLDcgQEAgZXh0ZXJuIHZvaWQgb2N0ZW9uX3NldHVwX2RlbGF5cyh2b2lkKTsKIGV4dGVybiB2b2lkIG9jdGVvbl9pb19jbGtfZGVsYXkodW5zaWduZWQgbG9uZyk7CiAKICNkZWZpbmUgT0NURU9OX0FSR1ZfTUFYX0FSR1MJNjQKLSNkZWZpbmUgT0NUT0VOX1NFUklBTF9MRU4JMjAKKyNkZWZpbmUgT0NURU9OX1NFUklBTF9MRU4JMjAKIAogc3RydWN0IG9jdGVvbl9ib290X2Rlc2NyaXB0b3IgewogI2lmZGVmIF9fQklHX0VORElBTl9CSVRGSUVMRApAQCAtMTAyLDcgKzEwMiw3IEBAIHN0cnVjdCBvY3Rlb25fYm9vdF9kZXNjcmlwdG9yIHsKIAl1aW50MTZfdCBjaGlwX3R5cGU7CiAJdWludDhfdCBjaGlwX3Jldl9tYWpvcjsKIAl1aW50OF90IGNoaXBfcmV2X21pbm9yOwotCWNoYXIgYm9hcmRfc2VyaWFsX251bWJlcltPQ1RPRU5fU0VSSUFMX0xFTl07CisJY2hhciBib2FyZF9zZXJpYWxfbnVtYmVyW09DVEVPTl9TRVJJQUxfTEVOXTsKIAl1aW50OF90IG1hY19hZGRyX2Jhc2VbNl07CiAJdWludDhfdCBtYWNfYWRkcl9jb3VudDsKIAl1aW50NjRfdCBjdm14X2Rlc2NfdmFkZHI7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vcGNpLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vcGNpLmgKaW5kZXggNDM2MDk5OC4uNmY0ODY0OSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3BjaS5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9wY2kuaApAQCAtMTA4LDcgKzEwOCw2IEBAIGV4dGVybiB1bnNpZ25lZCBsb25nIFBDSUJJT1NfTUlOX01FTTsKIAogI2RlZmluZSBIQVZFX1BDSV9NTUFQCiAjZGVmaW5lIEFSQ0hfR0VORVJJQ19QQ0lfTU1BUF9SRVNPVVJDRQotI2RlZmluZSBIQVZFX0FSQ0hfUENJX1JFU09VUkNFX1RPX1VTRVIKIAogLyoKICAqIER5bmFtaWMgRE1BIG1hcHBpbmcgc3R1ZmYuCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vcGdhbGxvYy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3BnYWxsb2MuaAppbmRleCBhYTE2Yjg1Li4xNjY4NDIzIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBnZF9mcmVlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkKQogCiAjZGVmaW5lIF9fcHRlX2ZyZWVfdGxiKHRsYixwdGUsYWRkcmVzcykJCQlcCiBkbyB7CQkJCQkJCVwKLQlwZ3RhYmxlX3BhZ2VfZHRvcihwdGUpOwkJCQlcCisJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHB0ZSk7CQkJXAogCXRsYl9yZW1vdmVfcGFnZSgodGxiKSwgcHRlKTsJCQlcCiB9IHdoaWxlICgwKQogCkBAIC0xMDUsOCArMTA1LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHBnZF9wb3B1bGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCwgcHVkX3QgKnB1ZCkKIAogI2VuZGlmIC8qIF9fUEFHRVRBQkxFX1BVRF9GT0xERUQgKi8KIAotI2RlZmluZSBjaGVja19wZ3RfY2FjaGUoKQlkbyB7IH0gd2hpbGUgKDApCi0KIGV4dGVybiB2b2lkIHBhZ2V0YWJsZV9pbml0KHZvaWQpOwogCiAjZW5kaWYgLyogX0FTTV9QR0FMTE9DX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9wZ3RhYmxlLTMyLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vcGd0YWJsZS0zMi5oCmluZGV4IDc0YWZlOGMuLmJhOTY3MTQgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9wZ3RhYmxlLTMyLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3BndGFibGUtMzIuaApAQCAtMjMsNiArMjMsMjQgQEAKICNpbmNsdWRlIDxhc20vaGlnaG1lbS5oPgogI2VuZGlmCiAKKy8qCisgKiBSZWdhcmRpbmcgMzItYml0IE1JUFMgaHVnZSBwYWdlIHN1cHBvcnQgKGFuZCB0aGUgdHJhZGVvZmYgaXQgZW50YWlscyk6CisgKgorICogIFdlIHVzZSB0aGUgc2FtZSBodWdlIHBhZ2Ugc2l6ZXMgYXMgNjQtYml0IE1JUFMuIEFzc3VtaW5nIGEgNEtCIHBhZ2Ugc2l6ZSwKKyAqIG91ciAyLWxldmVsIHRhYmxlIGxheW91dCB3b3VsZCBub3JtYWxseSBoYXZlIGEgUEdEIGVudHJ5IGNvdmVyIGEgY29udGlndW91cworICogNE1CIHZpcnR1YWwgYWRkcmVzcyByZWdpb24gKHBvaW50aW5nIHRvIGEgNEtCIFBURSBwYWdlIG9mIDEsMDI0IDMyLWJpdCBwdGVfdAorICogcG9pbnRlcnMsIGVhY2ggcG9pbnRpbmcgdG8gYSA0S0IgcGh5c2ljYWwgcGFnZSkuIFRoZSBwcm9ibGVtIGlzIHRoYXQgNE1CLAorICogc3Bhbm5pbmcgYm90aCBoYWx2ZXMgb2YgYSBUTEIgRW50cnlMbzAsMSBwYWlyLCByZXF1aXJlcyAyTUIgaGFyZHdhcmUgcGFnZQorICogc3VwcG9ydCwgbm90IG9uZSBvZiB0aGUgc3RhbmRhcmQgc3VwcG9ydGVkIHNpemVzICgxTUIsNE1CLDE2TUIsLi4uKS4KKyAqICBUbyBjb3JyZWN0IGZvciB0aGlzLCB3aGVuIGh1Z2UgcGFnZXMgYXJlIGVuYWJsZWQsIHdlIGhhbHZlIHRoZSBudW1iZXIgb2YKKyAqIHBvaW50ZXJzIGEgUFRFIHBhZ2UgaG9sZHMsIG1ha2luZyBpdHMgbGFzdCBoYWxmIGdvIHRvIHdhc3RlLiBDb3JyZXNwb25kaW5nbHksCisgKiB3ZSBkb3VibGUgdGhlIG51bWJlciBvZiBQR0QgcGFnZXMuIE92ZXJhbGwsIHBhZ2UgdGFibGUgbWVtb3J5IG92ZXJoZWFkCisgKiBpbmNyZWFzZXMgdG8gbWF0Y2ggNjQtYml0IE1JUFMsIGJ1dCBQVEUgbG9va3VwcyByZW1haW4gQ1BVIGNhY2hlLWZyaWVuZGx5LgorICoKKyAqIE5PVEU6IFdlIGRvbid0IHlldCBzdXBwb3J0IGh1Z2UgcGFnZXMgaWYgZXh0ZW5kZWQtYWRkcmVzc2luZyBpcyBlbmFibGVkCisgKiAgICAgICAoaS5lLiBFVkEsIFhQQSwgMzYtYml0IEFsY2hlbXkvTmV0bG9naWMpLgorICovCisKIGV4dGVybiBpbnQgdGVtcF90bGJfZW50cnk7CiAKIC8qCkBAIC00NCw3ICs2MiwxMiBAQCBleHRlcm4gaW50IGFkZF90ZW1wb3JhcnlfZW50cnkodW5zaWduZWQgbG9uZyBlbnRyeWxvMCwgdW5zaWduZWQgbG9uZyBlbnRyeWxvMSwKICAqLwogCiAvKiBQR0RJUl9TSElGVCBkZXRlcm1pbmVzIHdoYXQgYSB0aGlyZC1sZXZlbCBwYWdlIHRhYmxlIGVudHJ5IGNhbiBtYXAgKi8KLSNkZWZpbmUgUEdESVJfU0hJRlQJKDIgKiBQQUdFX1NISUZUICsgUFRFX09SREVSIC0gUFRFX1RfTE9HMikKKyNpZiBkZWZpbmVkKENPTkZJR19NSVBTX0hVR0VfVExCX1NVUFBPUlQpICYmICFkZWZpbmVkKENPTkZJR19QSFlTX0FERFJfVF82NEJJVCkKKyMgZGVmaW5lIFBHRElSX1NISUZUCSgyICogUEFHRV9TSElGVCArIFBURV9PUkRFUiAtIFBURV9UX0xPRzIgLSAxKQorI2Vsc2UKKyMgZGVmaW5lIFBHRElSX1NISUZUCSgyICogUEFHRV9TSElGVCArIFBURV9PUkRFUiAtIFBURV9UX0xPRzIpCisjZW5kaWYKKwogI2RlZmluZSBQR0RJUl9TSVpFCSgxVUwgPDwgUEdESVJfU0hJRlQpCiAjZGVmaW5lIFBHRElSX01BU0sJKH4oUEdESVJfU0laRS0xKSkKIApAQCAtNTIsMTQgKzc1LDIzIEBAIGV4dGVybiBpbnQgYWRkX3RlbXBvcmFyeV9lbnRyeSh1bnNpZ25lZCBsb25nIGVudHJ5bG8wLCB1bnNpZ25lZCBsb25nIGVudHJ5bG8xLAogICogRW50cmllcyBwZXIgcGFnZSBkaXJlY3RvcnkgbGV2ZWw6IHdlIHVzZSB0d28tbGV2ZWwsIHNvCiAgKiB3ZSBkb24ndCByZWFsbHkgaGF2ZSBhbnkgUFVEL1BNRCBkaXJlY3RvcnkgcGh5c2ljYWxseS4KICAqLwotI2RlZmluZSBfX1BHRF9PUkRFUgkoMzIgLSAzICogUEFHRV9TSElGVCArIFBHRF9UX0xPRzIgKyBQVEVfVF9MT0cyKQorI2lmIGRlZmluZWQoQ09ORklHX01JUFNfSFVHRV9UTEJfU1VQUE9SVCkgJiYgIWRlZmluZWQoQ09ORklHX1BIWVNfQUREUl9UXzY0QklUKQorIyBkZWZpbmUgX19QR0RfT1JERVIJKDMyIC0gMyAqIFBBR0VfU0hJRlQgKyBQR0RfVF9MT0cyICsgUFRFX1RfTE9HMiArIDEpCisjZWxzZQorIyBkZWZpbmUgX19QR0RfT1JERVIJKDMyIC0gMyAqIFBBR0VfU0hJRlQgKyBQR0RfVF9MT0cyICsgUFRFX1RfTE9HMikKKyNlbmRpZgorCiAjZGVmaW5lIFBHRF9PUkRFUgkoX19QR0RfT1JERVIgPj0gMCA/IF9fUEdEX09SREVSIDogMCkKICNkZWZpbmUgUFVEX09SREVSCWFpZWVlZV9hdHRlbXB0X3RvX2FsbG9jYXRlX3B1ZAotI2RlZmluZSBQTURfT1JERVIJMQorI2RlZmluZSBQTURfT1JERVIJYWllZWVlX2F0dGVtcHRfdG9fYWxsb2NhdGVfcG1kCiAjZGVmaW5lIFBURV9PUkRFUgkwCiAKICNkZWZpbmUgUFRSU19QRVJfUEdECShVU0VSX1BUUlNfUEVSX1BHRCAqIDIpCi0jZGVmaW5lIFBUUlNfUEVSX1BURQkoKFBBR0VfU0laRSA8PCBQVEVfT1JERVIpIC8gc2l6ZW9mKHB0ZV90KSkKKyNpZiBkZWZpbmVkKENPTkZJR19NSVBTX0hVR0VfVExCX1NVUFBPUlQpICYmICFkZWZpbmVkKENPTkZJR19QSFlTX0FERFJfVF82NEJJVCkKKyMgZGVmaW5lIFBUUlNfUEVSX1BURQkoKFBBR0VfU0laRSA8PCBQVEVfT1JERVIpIC8gc2l6ZW9mKHB0ZV90KSAvIDIpCisjZWxzZQorIyBkZWZpbmUgUFRSU19QRVJfUFRFCSgoUEFHRV9TSVpFIDw8IFBURV9PUkRFUikgLyBzaXplb2YocHRlX3QpKQorI2VuZGlmCiAKICNkZWZpbmUgVVNFUl9QVFJTX1BFUl9QR0QJKDB4ODAwMDAwMDBVTC9QR0RJUl9TSVpFKQogI2RlZmluZSBGSVJTVF9VU0VSX0FERFJFU1MJMFVMCkBAIC04Nyw3ICsxMTksNyBAQCBleHRlcm4gaW50IGFkZF90ZW1wb3JhcnlfZW50cnkodW5zaWduZWQgbG9uZyBlbnRyeWxvMCwgdW5zaWduZWQgbG9uZyBlbnRyeWxvMSwKIAogZXh0ZXJuIHZvaWQgbG9hZF9wZ2QodW5zaWduZWQgbG9uZyBwZ19kaXIpOwogCi1leHRlcm4gcHRlX3QgaW52YWxpZF9wdGVfdGFibGVbUEFHRV9TSVpFL3NpemVvZihwdGVfdCldOworZXh0ZXJuIHB0ZV90IGludmFsaWRfcHRlX3RhYmxlW1BUUlNfUEVSX1BURV07CiAKIC8qCiAgKiBFbXB0eSBwZ2QvcG1kIGVudHJpZXMgcG9pbnQgdG8gdGhlIGludmFsaWRfcHRlX3RhYmxlLgpAQCAtOTcsNyArMTI5LDE5IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBtZF9ub25lKHBtZF90IHBtZCkKIAlyZXR1cm4gcG1kX3ZhbChwbWQpID09ICh1bnNpZ25lZCBsb25nKSBpbnZhbGlkX3B0ZV90YWJsZTsKIH0KIAotI2RlZmluZSBwbWRfYmFkKHBtZCkJCShwbWRfdmFsKHBtZCkgJiB+UEFHRV9NQVNLKQorc3RhdGljIGlubGluZSBpbnQgcG1kX2JhZChwbWRfdCBwbWQpCit7CisjaWZkZWYgQ09ORklHX01JUFNfSFVHRV9UTEJfU1VQUE9SVAorCS8qIHBtZF9odWdlKHBtZCkgYnV0IGlubGluZSAqLworCWlmICh1bmxpa2VseShwbWRfdmFsKHBtZCkgJiBfUEFHRV9IVUdFKSkKKwkJcmV0dXJuIDA7CisjZW5kaWYKKworCWlmICh1bmxpa2VseShwbWRfdmFsKHBtZCkgJiB+UEFHRV9NQVNLKSkKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4gMDsKK30KIAogc3RhdGljIGlubGluZSBpbnQgcG1kX3ByZXNlbnQocG1kX3QgcG1kKQogewpAQCAtMTQ2LDYgKzE5MCw3IEBAIHN0YXRpYyBpbmxpbmUgcHRlX3QgcGZuX3B0ZSh1bnNpZ25lZCBsb25nIHBmbiwgcGdwcm90X3QgcHJvdCkKICNlbHNlCiAjZGVmaW5lIHB0ZV9wZm4oeCkJCSgodW5zaWduZWQgbG9uZykoKHgpLnB0ZSA+PiBfUEZOX1NISUZUKSkKICNkZWZpbmUgcGZuX3B0ZShwZm4sIHByb3QpCV9fcHRlKCgodW5zaWduZWQgbG9uZyBsb25nKShwZm4pIDw8IF9QRk5fU0hJRlQpIHwgcGdwcm90X3ZhbChwcm90KSkKKyNkZWZpbmUgcGZuX3BtZChwZm4sIHByb3QpCV9fcG1kKCgodW5zaWduZWQgbG9uZyBsb25nKShwZm4pIDw8IF9QRk5fU0hJRlQpIHwgcGdwcm90X3ZhbChwcm90KSkKICNlbmRpZgogI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BIWVNfQUREUl9UXzY0QklUKSAmJiBkZWZpbmVkKENPTkZJR19DUFVfTUlQUzMyKSAqLwogCkBAIC0xNTksNiArMjA0LDcgQEAgc3RhdGljIGlubGluZSBwdGVfdCBwZm5fcHRlKHVuc2lnbmVkIGxvbmcgcGZuLCBwZ3Byb3RfdCBwcm90KQogI2RlZmluZSBwZ2Rfb2Zmc2V0X2soYWRkcmVzcykgcGdkX29mZnNldCgmaW5pdF9tbSwgYWRkcmVzcykKIAogI2RlZmluZSBwZ2RfaW5kZXgoYWRkcmVzcykJKCgoYWRkcmVzcykgPj4gUEdESVJfU0hJRlQpICYgKFBUUlNfUEVSX1BHRC0xKSkKKyNkZWZpbmUgcG1kX2luZGV4KGFkZHJlc3MpCSgoKGFkZHJlc3MpID4+IFBNRF9TSElGVCkgJiAoUFRSU19QRVJfUE1ELTEpKQogCiAvKiB0byBmaW5kIGFuIGVudHJ5IGluIGEgcGFnZS10YWJsZS1kaXJlY3RvcnkgKi8KICNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcikJKChtbSktPnBnZCArIHBnZF9pbmRleChhZGRyKSkKQEAgLTE3NSw3ICsyMjEsNyBAQCBzdGF0aWMgaW5saW5lIHB0ZV90IHBmbl9wdGUodW5zaWduZWQgbG9uZyBwZm4sIHBncHJvdF90IHByb3QpCiAJKChwdGVfdCAqKXBhZ2VfYWRkcmVzcyhwbWRfcGFnZSgqKGRpcikpKSArIF9fcHRlX29mZnNldChhZGRyZXNzKSkKICNkZWZpbmUgcHRlX3VubWFwKHB0ZSkgKCh2b2lkKShwdGUpKQogCi0jaWYgZGVmaW5lZChDT05GSUdfQ1BVX1IzMDAwKSB8fCBkZWZpbmVkKENPTkZJR19DUFVfVFgzOVhYKQorI2lmIGRlZmluZWQoQ09ORklHX0NQVV9SM0tfVExCKQogCiAvKiBTd2FwIGVudHJpZXMgbXVzdCBoYXZlIFZBTElEIGJpdCBjbGVhcmVkLiAqLwogI2RlZmluZSBfX3N3cF90eXBlKHgpCQkJKCgoeCkudmFsID4+IDEwKSAmIDB4MWYpCkBAIC0yMjAsNiArMjY2LDYgQEAgc3RhdGljIGlubGluZSBwdGVfdCBwZm5fcHRlKHVuc2lnbmVkIGxvbmcgcGZuLCBwZ3Byb3RfdCBwcm90KQogCiAjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUEhZU19BRERSX1RfNjRCSVQpICYmIGRlZmluZWQoQ09ORklHX0NQVV9NSVBTMzIpICovCiAKLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19DUFVfUjMwMDApIHx8IGRlZmluZWQoQ09ORklHX0NQVV9UWDM5WFgpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfQ1BVX1IzS19UTEIpICovCiAKICNlbmRpZiAvKiBfQVNNX1BHVEFCTEVfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3BndGFibGUtYml0cy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3BndGFibGUtYml0cy5oCmluZGV4IGY4OGE0OGMuLjRkYTc5YjggMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9wZ3RhYmxlLWJpdHMuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vcGd0YWJsZS1iaXRzLmgKQEAgLTUyLDYgKzUyLDkgQEAgZW51bSBwZ3RhYmxlX2JpdHMgewogCV9QQUdFX1dSSVRFX1NISUZULAogCV9QQUdFX0FDQ0VTU0VEX1NISUZULAogCV9QQUdFX01PRElGSUVEX1NISUZULAorI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfSEFTX1BURV9TUEVDSUFMKQorCV9QQUdFX1NQRUNJQUxfU0hJRlQsCisjZW5kaWYKIH07CiAKIC8qCkBAIC03OCw5ICs4MSwxMiBAQCBlbnVtIHBndGFibGVfYml0cyB7CiAJX1BBR0VfV1JJVEVfU0hJRlQsCiAJX1BBR0VfQUNDRVNTRURfU0hJRlQsCiAJX1BBR0VfTU9ESUZJRURfU0hJRlQsCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9IQVNfUFRFX1NQRUNJQUwpCisJX1BBR0VfU1BFQ0lBTF9TSElGVCwKKyNlbmRpZgogfTsKIAotI2VsaWYgZGVmaW5lZChDT05GSUdfQ1BVX1IzMDAwKSB8fCBkZWZpbmVkKENPTkZJR19DUFVfVFgzOVhYKQorI2VsaWYgZGVmaW5lZChDT05GSUdfQ1BVX1IzS19UTEIpCiAKIC8qIFBhZ2UgdGFibGUgYml0cyB1c2VkIGZvciByM2sgc3lzdGVtcyAqLwogZW51bSBwZ3RhYmxlX2JpdHMgewpAQCAtOTAsNiArOTYsOSBAQCBlbnVtIHBndGFibGVfYml0cyB7CiAJX1BBR0VfV1JJVEVfU0hJRlQsCiAJX1BBR0VfQUNDRVNTRURfU0hJRlQsCiAJX1BBR0VfTU9ESUZJRURfU0hJRlQsCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9IQVNfUFRFX1NQRUNJQUwpCisJX1BBR0VfU1BFQ0lBTF9TSElGVCwKKyNlbmRpZgogCiAJLyogVXNlZCBieSBUTEIgaGFyZHdhcmUgKHBsYWNlZCBpbiBFbnRyeUxvKSAqLwogCV9QQUdFX0dMT0JBTF9TSElGVCA9IDgsCkBAIC0xMTAsOSArMTE5LDEyIEBAIGVudW0gcGd0YWJsZV9iaXRzIHsKIAlfUEFHRV9XUklURV9TSElGVCwKIAlfUEFHRV9BQ0NFU1NFRF9TSElGVCwKIAlfUEFHRV9NT0RJRklFRF9TSElGVCwKLSNpZiBkZWZpbmVkKENPTkZJR182NEJJVCkgJiYgZGVmaW5lZChDT05GSUdfTUlQU19IVUdFX1RMQl9TVVBQT1JUKQorI2lmIGRlZmluZWQoQ09ORklHX01JUFNfSFVHRV9UTEJfU1VQUE9SVCkKIAlfUEFHRV9IVUdFX1NISUZULAogI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9IQVNfUFRFX1NQRUNJQUwpCisJX1BBR0VfU1BFQ0lBTF9TSElGVCwKKyNlbmRpZgogCiAJLyogVXNlZCBieSBUTEIgaGFyZHdhcmUgKHBsYWNlZCBpbiBFbnRyeUxvKikgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DUFVfSEFTX1JJWEkpCkBAIC0xMzIsOSArMTQ0LDE0IEBAIGVudW0gcGd0YWJsZV9iaXRzIHsKICNkZWZpbmUgX1BBR0VfV1JJVEUJCSgxIDw8IF9QQUdFX1dSSVRFX1NISUZUKQogI2RlZmluZSBfUEFHRV9BQ0NFU1NFRAkJKDEgPDwgX1BBR0VfQUNDRVNTRURfU0hJRlQpCiAjZGVmaW5lIF9QQUdFX01PRElGSUVECQkoMSA8PCBfUEFHRV9NT0RJRklFRF9TSElGVCkKLSNpZiBkZWZpbmVkKENPTkZJR182NEJJVCkgJiYgZGVmaW5lZChDT05GSUdfTUlQU19IVUdFX1RMQl9TVVBQT1JUKQorI2lmIGRlZmluZWQoQ09ORklHX01JUFNfSFVHRV9UTEJfU1VQUE9SVCkKICMgZGVmaW5lIF9QQUdFX0hVR0UJCSgxIDw8IF9QQUdFX0hVR0VfU0hJRlQpCiAjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX0hBU19QVEVfU1BFQ0lBTCkKKyMgZGVmaW5lIF9QQUdFX1NQRUNJQUwJCSgxIDw8IF9QQUdFX1NQRUNJQUxfU0hJRlQpCisjZWxzZQorIyBkZWZpbmUgX1BBR0VfU1BFQ0lBTAkJMAorI2VuZGlmCiAKIC8qIFVzZWQgYnkgVExCIGhhcmR3YXJlIChwbGFjZWQgaW4gRW50cnlMbyopICovCiAjaWYgZGVmaW5lZChDT05GSUdfWFBBKQpAQCAtMTQ2LDcgKzE2Myw3IEBAIGVudW0gcGd0YWJsZV9iaXRzIHsKICNkZWZpbmUgX1BBR0VfR0xPQkFMCQkoMSA8PCBfUEFHRV9HTE9CQUxfU0hJRlQpCiAjZGVmaW5lIF9QQUdFX1ZBTElECQkoMSA8PCBfUEFHRV9WQUxJRF9TSElGVCkKICNkZWZpbmUgX1BBR0VfRElSVFkJCSgxIDw8IF9QQUdFX0RJUlRZX1NISUZUKQotI2lmIGRlZmluZWQoQ09ORklHX0NQVV9SMzAwMCkgfHwgZGVmaW5lZChDT05GSUdfQ1BVX1RYMzlYWCkKKyNpZiBkZWZpbmVkKENPTkZJR19DUFVfUjNLX1RMQikKICMgZGVmaW5lIF9DQUNIRV9VTkNBQ0hFRAkoMSA8PCBfQ0FDSEVfVU5DQUNIRURfU0hJRlQpCiAjIGRlZmluZSBfQ0FDSEVfTUFTSwkJX0NBQ0hFX1VOQ0FDSEVECiAjIGRlZmluZSBfUEZOX1NISUZUCQlQQUdFX1NISUZUCkBAIC0yMDQsNyArMjIxLDcgQEAgc3RhdGljIGlubGluZSB1aW50NjRfdCBwdGVfdG9fZW50cnlsbyh1bnNpZ25lZCBsb25nIHB0ZV92YWwpCiAvKgogICogQ2FjaGUgYXR0cmlidXRlcwogICovCi0jaWYgZGVmaW5lZChDT05GSUdfQ1BVX1IzMDAwKSB8fCBkZWZpbmVkKENPTkZJR19DUFVfVFgzOVhYKQorI2lmIGRlZmluZWQoQ09ORklHX0NQVV9SM0tfVExCKQogCiAjZGVmaW5lIF9DQUNIRV9DQUNIQUJMRV9OT05DT0hFUkVOVCAwCiAjZGVmaW5lIF9DQUNIRV9VTkNBQ0hFRF9BQ0NFTEVSQVRFRCBfQ0FDSEVfVU5DQUNIRUQKQEAgLTIxNiwxMyArMjMzLDYgQEAgc3RhdGljIGlubGluZSB1aW50NjRfdCBwdGVfdG9fZW50cnlsbyh1bnNpZ25lZCBsb25nIHB0ZV92YWwpCiAKICNkZWZpbmUgX0NBQ0hFX0NBQ0hBQkxFX05PTkNPSEVSRU5UICg1PDxfQ0FDSEVfU0hJRlQpCiAKLSNlbGlmIGRlZmluZWQoQ09ORklHX0NQVV9MT09OR1NPTjMpCi0KLS8qIFVzaW5nIENPSEVSRU5UIGZsYWcgZm9yIE5PTkNPSEVSRU5UIGRvZXNuJ3QgaHVydC4gKi8KLQotI2RlZmluZSBfQ0FDSEVfQ0FDSEFCTEVfTk9OQ09IRVJFTlQgKDM8PF9DQUNIRV9TSElGVCkgIC8qIExPT05HU09OICAgICAgICovCi0jZGVmaW5lIF9DQUNIRV9DQUNIQUJMRV9DT0hFUkVOVCAgICAoMzw8X0NBQ0hFX1NISUZUKSAgLyogTE9PTkdTT04tMyAgICAgKi8KLQogI2VsaWYgZGVmaW5lZChDT05GSUdfTUFDSF9JTkdFTklDKQogCiAvKiBJbmdlbmljIHVzZXMgdGhlIFdBIGJpdCB0byBhY2hpZXZlIHdyaXRlLWNvbWJpbmUgbWVtb3J5IHdyaXRlcyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3BndGFibGUuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggN2QyNzE5NC4uZjg1YmQ1YiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3BndGFibGUuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vcGd0YWJsZS5oCkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHB0ZV9jbGVhcihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqcHQKIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfcHRlKHB0ZV90ICpwdGVwLCBwdGVfdCBwdGV2YWwpCiB7CiAJKnB0ZXAgPSBwdGV2YWw7Ci0jaWYgIWRlZmluZWQoQ09ORklHX0NQVV9SMzAwMCkgJiYgIWRlZmluZWQoQ09ORklHX0NQVV9UWDM5WFgpCisjaWYgIWRlZmluZWQoQ09ORklHX0NQVV9SM0tfVExCKQogCWlmIChwdGVfdmFsKHB0ZXZhbCkgJiBfUEFHRV9HTE9CQUwpIHsKIAkJcHRlX3QgKmJ1ZGR5ID0gcHRlcF9idWRkeShwdGVwKTsKIAkJLyoKQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3B0ZShwdGVfdCAqcHRlcCwgcHRlX3QgcHRldmFsKQogc3RhdGljIGlubGluZSB2b2lkIHB0ZV9jbGVhcihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqcHRlcCkKIHsKIAlodHdfc3RvcCgpOwotI2lmICFkZWZpbmVkKENPTkZJR19DUFVfUjMwMDApICYmICFkZWZpbmVkKENPTkZJR19DUFVfVFgzOVhYKQorI2lmICFkZWZpbmVkKENPTkZJR19DUFVfUjNLX1RMQikKIAkvKiBQcmVzZXJ2ZSBnbG9iYWwgc3RhdHVzIGZvciB0aGUgcGFpciAqLwogCWlmIChwdGVfdmFsKCpwdGVwX2J1ZGR5KHB0ZXApKSAmIF9QQUdFX0dMT0JBTCkKIAkJc2V0X3B0ZV9hdChtbSwgYWRkciwgcHRlcCwgX19wdGUoX1BBR0VfR0xPQkFMKSk7CkBAIC0yNzcsNiArMjc3LDcgQEAgZXh0ZXJuIHBnZF90IHN3YXBwZXJfcGdfZGlyW107CiBzdGF0aWMgaW5saW5lIGludCBwdGVfd3JpdGUocHRlX3QgcHRlKQl7IHJldHVybiBwdGUucHRlX2xvdyAmIF9QQUdFX1dSSVRFOyB9CiBzdGF0aWMgaW5saW5lIGludCBwdGVfZGlydHkocHRlX3QgcHRlKQl7IHJldHVybiBwdGUucHRlX2xvdyAmIF9QQUdFX01PRElGSUVEOyB9CiBzdGF0aWMgaW5saW5lIGludCBwdGVfeW91bmcocHRlX3QgcHRlKQl7IHJldHVybiBwdGUucHRlX2xvdyAmIF9QQUdFX0FDQ0VTU0VEOyB9CitzdGF0aWMgaW5saW5lIGludCBwdGVfc3BlY2lhbChwdGVfdCBwdGUpIHsgcmV0dXJuIHB0ZS5wdGVfbG93ICYgX1BBR0VfU1BFQ0lBTDsgfQogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV93cnByb3RlY3QocHRlX3QgcHRlKQogewpAQCAtMzM3LDEwICszMzgsMTcgQEAgc3RhdGljIGlubGluZSBwdGVfdCBwdGVfbWt5b3VuZyhwdGVfdCBwdGUpCiAJfQogCXJldHVybiBwdGU7CiB9CisKK3N0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21rc3BlY2lhbChwdGVfdCBwdGUpCit7CisJcHRlLnB0ZV9sb3cgfD0gX1BBR0VfU1BFQ0lBTDsKKwlyZXR1cm4gcHRlOworfQogI2Vsc2UKIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV93cml0ZShwdGVfdCBwdGUpCXsgcmV0dXJuIHB0ZV92YWwocHRlKSAmIF9QQUdFX1dSSVRFOyB9CiBzdGF0aWMgaW5saW5lIGludCBwdGVfZGlydHkocHRlX3QgcHRlKQl7IHJldHVybiBwdGVfdmFsKHB0ZSkgJiBfUEFHRV9NT0RJRklFRDsgfQogc3RhdGljIGlubGluZSBpbnQgcHRlX3lvdW5nKHB0ZV90IHB0ZSkJeyByZXR1cm4gcHRlX3ZhbChwdGUpICYgX1BBR0VfQUNDRVNTRUQ7IH0KK3N0YXRpYyBpbmxpbmUgaW50IHB0ZV9zcGVjaWFsKHB0ZV90IHB0ZSkgeyByZXR1cm4gcHRlX3ZhbChwdGUpICYgX1BBR0VfU1BFQ0lBTDsgfQogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV93cnByb3RlY3QocHRlX3QgcHRlKQogewpAQCAtMzg0LDYgKzM5MiwxMiBAQCBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta3lvdW5nKHB0ZV90IHB0ZSkKIAlyZXR1cm4gcHRlOwogfQogCitzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta3NwZWNpYWwocHRlX3QgcHRlKQoreworCXB0ZV92YWwocHRlKSB8PSBfUEFHRV9TUEVDSUFMOworCXJldHVybiBwdGU7Cit9CisKICNpZmRlZiBDT05GSUdfTUlQU19IVUdFX1RMQl9TVVBQT1JUCiBzdGF0aWMgaW5saW5lIGludCBwdGVfaHVnZShwdGVfdCBwdGUpCXsgcmV0dXJuIHB0ZV92YWwocHRlKSAmIF9QQUdFX0hVR0U7IH0KIApAQCAtMzk0LDggKzQwOCw2IEBAIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21raHVnZShwdGVfdCBwdGUpCiB9CiAjZW5kaWYgLyogQ09ORklHX01JUFNfSFVHRV9UTEJfU1VQUE9SVCAqLwogI2VuZGlmCi1zdGF0aWMgaW5saW5lIGludCBwdGVfc3BlY2lhbChwdGVfdCBwdGUpCXsgcmV0dXJuIDA7IH0KLXN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21rc3BlY2lhbChwdGVfdCBwdGUpCXsgcmV0dXJuIHB0ZTsgfQogCiAvKgogICogTWFjcm8gdG8gbWFrZSBtYXJrIGEgcGFnZSBwcm90ZWN0aW9uIHZhbHVlIGFzICJ1bmNhY2hlYWJsZSIuCSBOb3RlCkBAIC02NDksOSArNjYxLDQgQEAgcGdwcm90X3QgcGh5c19tZW1fYWNjZXNzX3Byb3Qoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxvbmcgcGZuLAogI2RlZmluZSBIQVZFX0FSQ0hfVU5NQVBQRURfQVJFQQogI2RlZmluZSBIQVZFX0FSQ0hfVU5NQVBQRURfQVJFQV9UT1BET1dOCiAKLS8qCi0gKiBObyBwYWdlIHRhYmxlIGNhY2hlcyB0byBpbml0aWFsaXNlCi0gKi8KLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkJZG8geyB9IHdoaWxlICgwKQotCiAjZW5kaWYgLyogX0FTTV9QR1RBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAppbmRleCBhY2E5MDliLi5mYmExOGQ0IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCkBAIC0yOSwxMSArMjksNiBAQAogCiBleHRlcm4gdW5zaWduZWQgaW50IHZjZWRfY291bnQsIHZjZWlfY291bnQ7CiAKLS8qCi0gKiBNSVBTIGRvZXMgaGF2ZSBhbiBhcmNoX3BpY2tfbW1hcF9sYXlvdXQoKQotICovCi0jZGVmaW5lIEhBVkVfQVJDSF9QSUNLX01NQVBfTEFZT1VUIDEKLQogI2lmZGVmIENPTkZJR18zMkJJVAogI2lmZGVmIENPTkZJR19LVk1fR1VFU1QKIC8qIFVzZXIgc3BhY2UgcHJvY2VzcyBzaXplIGlzIGxpbWl0ZWQgdG8gMUdCIGluIEtWTSBHdWVzdCBNb2RlICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vc3lzY2FsbC5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3N5c2NhbGwuaAppbmRleCA4M2JiNDM5Li4yNWZhNjUxIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vc3lzY2FsbC5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9zeXNjYWxsLmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIG1pcHNfc3lzY2FsbF91cGRhdGVfbnIoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAogCQl0YXNrX3RocmVhZF9pbmZvKHRhc2spLT5zeXNjYWxsID0gcmVncy0+cmVnc1syXTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIG1pcHNfZ2V0X3N5c2NhbGxfYXJnKHVuc2lnbmVkIGxvbmcgKmFyZywKK3N0YXRpYyBpbmxpbmUgdm9pZCBtaXBzX2dldF9zeXNjYWxsX2FyZyh1bnNpZ25lZCBsb25nICphcmcsCiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgaW50IG4pCiB7CiAJdW5zaWduZWQgbG9uZyB1c3AgX19tYXliZV91bnVzZWQgPSByZWdzLT5yZWdzWzI5XTsKQEAgLTYzLDIzICs2MywyNCBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbWlwc19nZXRfc3lzY2FsbF9hcmcodW5zaWduZWQgbG9uZyAqYXJnLAogCWNhc2UgMDogY2FzZSAxOiBjYXNlIDI6IGNhc2UgMzoKIAkJKmFyZyA9IHJlZ3MtPnJlZ3NbNCArIG5dOwogCi0JCXJldHVybiAwOworCQlyZXR1cm47CiAKICNpZmRlZiBDT05GSUdfMzJCSVQKIAljYXNlIDQ6IGNhc2UgNTogY2FzZSA2OiBjYXNlIDc6Ci0JCXJldHVybiBnZXRfdXNlcigqYXJnLCAoaW50ICopdXNwICsgbik7CisJCWdldF91c2VyKCphcmcsIChpbnQgKil1c3AgKyBuKTsKKwkJcmV0dXJuOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfNjRCSVQKIAljYXNlIDQ6IGNhc2UgNTogY2FzZSA2OiBjYXNlIDc6CiAjaWZkZWYgQ09ORklHX01JUFMzMl9PMzIKIAkJaWYgKHRlc3RfdHNrX3RocmVhZF9mbGFnKHRhc2ssIFRJRl8zMkJJVF9SRUdTKSkKLQkJCXJldHVybiBnZXRfdXNlcigqYXJnLCAoaW50ICopdXNwICsgbik7CisJCQlnZXRfdXNlcigqYXJnLCAoaW50ICopdXNwICsgbik7CiAJCWVsc2UKICNlbmRpZgogCQkJKmFyZyA9IHJlZ3MtPnJlZ3NbNCArIG5dOwogCi0JCXJldHVybiAwOworCQlyZXR1cm47CiAjZW5kaWYKIAogCWRlZmF1bHQ6CkBAIC0xMjYsMjEgKzEyNywxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3lzY2FsbF9nZXRfYXJndW1lbnRzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKIHsKIAl1bnNpZ25lZCBpbnQgaSA9IDA7CiAJdW5zaWduZWQgaW50IG4gPSA2OwotCWludCByZXQ7CiAKIAkvKiBPMzIgQUJJIHN5c2NhbGwoKSAqLwogCWlmIChtaXBzX3N5c2NhbGxfaXNfaW5kaXJlY3QodGFzaywgcmVncykpCiAJCWkrKzsKIAogCXdoaWxlIChuLS0pCi0JCXJldCB8PSBtaXBzX2dldF9zeXNjYWxsX2FyZyhhcmdzKyssIHRhc2ssIHJlZ3MsIGkrKyk7Ci0KLQkvKgotCSAqIE5vIHdheSB0byBjb21tdW5pY2F0ZSBhbiBlcnJvciBiZWNhdXNlIHRoaXMgaXMgYSB2b2lkIGZ1bmN0aW9uLgotCSAqLwotI2lmIDAKLQlyZXR1cm4gcmV0OwotI2VuZGlmCisJCW1pcHNfZ2V0X3N5c2NhbGxfYXJnKGFyZ3MrKywgdGFzaywgcmVncywgaSsrKTsKIH0KIAogZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGxvbmcgc3lzX2NhbGxfdGFibGVbXTsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS92ZHNvLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vdmRzby5oCmluZGV4IGEwMTNmYTQuLmNjN2I1MTYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS92ZHNvLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3Zkc28uaApAQCAtOCw2ICs4LDcgQEAKICNkZWZpbmUgX19BU01fVkRTT19ICiAKICNpbmNsdWRlIDxsaW51eC9tbV90eXBlcy5oPgorI2luY2x1ZGUgPHZkc28vZGF0YXBhZ2UuaD4KIAogI2luY2x1ZGUgPGFzbS9iYXJyaWVyLmg+CiAKQEAgLTQ5LDg0ICs1MCw5IEBAIGV4dGVybiBzdHJ1Y3QgbWlwc192ZHNvX2ltYWdlIHZkc29faW1hZ2VfbzMyOwogZXh0ZXJuIHN0cnVjdCBtaXBzX3Zkc29faW1hZ2UgdmRzb19pbWFnZV9uMzI7CiAjZW5kaWYKIAotLyoqCi0gKiB1bmlvbiBtaXBzX3Zkc29fZGF0YSAtIERhdGEgcHJvdmlkZWQgYnkgdGhlIGtlcm5lbCBmb3IgdGhlIFZEU08uCi0gKiBAeHRpbWVfc2VjOgkJQ3VycmVudCByZWFsIHRpbWUgKHNlY29uZHMgcGFydCkuCi0gKiBAeHRpbWVfbnNlYzoJCUN1cnJlbnQgcmVhbCB0aW1lIChuYW5vc2Vjb25kcyBwYXJ0LCBzaGlmdGVkKS4KLSAqIEB3YWxsX3RvX21vbm9fc2VjOglXYWxsLXRvLW1vbm90b25pYyBvZmZzZXQgKHNlY29uZHMgcGFydCkuCi0gKiBAd2FsbF90b19tb25vX25zZWM6CVdhbGwtdG8tbW9ub3RvbmljIG9mZnNldCAobmFub3NlY29uZHMgcGFydCkuCi0gKiBAc2VxX2NvdW50OgkJQ291bnRlciB0byBzeW5jaHJvbmlzZSB1cGRhdGVzIChvZGQgPSB1cGRhdGluZykuCi0gKiBAY3Nfc2hpZnQ6CQlDbG9ja3NvdXJjZSBzaGlmdCB2YWx1ZS4KLSAqIEBjbG9ja19tb2RlOgkJQ2xvY2tzb3VyY2UgdG8gdXNlIGZvciB0aW1lIGZ1bmN0aW9ucy4KLSAqIEBjc19tdWx0OgkJQ2xvY2tzb3VyY2UgbXVsdGlwbGllciB2YWx1ZS4KLSAqIEBjc19jeWNsZV9sYXN0OglDbG9jayBjeWNsZSB2YWx1ZSBhdCBsYXN0IHVwZGF0ZS4KLSAqIEBjc19tYXNrOgkJQ2xvY2tzb3VyY2UgbWFzayB2YWx1ZS4KLSAqIEB0el9taW51dGVzd2VzdDoJTWludXRlcyB3ZXN0IG9mIEdyZWVud2ljaCAoZnJvbSB0aW1lem9uZSkuCi0gKiBAdHpfZHN0dGltZToJCVR5cGUgb2YgRFNUIGNvcnJlY3Rpb24gKGZyb20gdGltZXpvbmUpLgotICoKLSAqIFRoaXMgc3RydWN0dXJlIGNvbnRhaW5zIGRhdGEgbmVlZGVkIGJ5IGZ1bmN0aW9ucyB3aXRoaW4gdGhlIFZEU08uIEl0IGlzCi0gKiBwb3B1bGF0ZWQgYnkgdGhlIGtlcm5lbCBhbmQgbWFwcGVkIHJlYWQtb25seSBpbnRvIHVzZXIgbWVtb3J5LiBUaGUgdGltZQotICogZmllbGRzIGFyZSBtaXJyb3JzIG9mIGludGVybmFsIGRhdGEgZnJvbSB0aGUgdGltZWtlZXBpbmcgaW5mcmFzdHJ1Y3R1cmUuCi0gKgotICogTm90ZTogQ2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiBtb2RpZnlpbmcgYXMgdGhlIGxheW91dCBtdXN0IHJlbWFpbiB0aGUgc2FtZQotICogZm9yIGJvdGggNjQtIGFuZCAzMi1iaXQgKGZvciAzMi1iaXQgdXNlcmxhbmQgb24gNjQtYml0IGtlcm5lbCkuCi0gKi8KIHVuaW9uIG1pcHNfdmRzb19kYXRhIHsKLQlzdHJ1Y3QgewotCQl1NjQgeHRpbWVfc2VjOwotCQl1NjQgeHRpbWVfbnNlYzsKLQkJdTY0IHdhbGxfdG9fbW9ub19zZWM7Ci0JCXU2NCB3YWxsX3RvX21vbm9fbnNlYzsKLQkJdTMyIHNlcV9jb3VudDsKLQkJdTMyIGNzX3NoaWZ0OwotCQl1OCBjbG9ja19tb2RlOwotCQl1MzIgY3NfbXVsdDsKLQkJdTY0IGNzX2N5Y2xlX2xhc3Q7Ci0JCXU2NCBjc19tYXNrOwotCQlzMzIgdHpfbWludXRlc3dlc3Q7Ci0JCXMzMiB0el9kc3R0aW1lOwotCX07Ci0KKwlzdHJ1Y3QgdmRzb19kYXRhIGRhdGFbQ1NfQkFTRVNdOwogCXU4IHBhZ2VbUEFHRV9TSVpFXTsKIH07CiAKLXN0YXRpYyBpbmxpbmUgdTMyIHZkc29fZGF0YV9yZWFkX2JlZ2luKGNvbnN0IHVuaW9uIG1pcHNfdmRzb19kYXRhICpkYXRhKQotewotCXUzMiBzZXE7Ci0KLQl3aGlsZSAodHJ1ZSkgewotCQlzZXEgPSBSRUFEX09OQ0UoZGF0YS0+c2VxX2NvdW50KTsKLQkJaWYgKGxpa2VseSghKHNlcSAmIDEpKSkgewotCQkJLyogUGFpcmVkIHdpdGggc21wX3dtYigpIGluIHZkc29fZGF0YV93cml0ZV8qKCkuICovCi0JCQlzbXBfcm1iKCk7Ci0JCQlyZXR1cm4gc2VxOwotCQl9Ci0KLQkJY3B1X3JlbGF4KCk7Ci0JfQotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgdmRzb19kYXRhX3JlYWRfcmV0cnkoY29uc3QgdW5pb24gbWlwc192ZHNvX2RhdGEgKmRhdGEsCi0JCQkJCXUzMiBzdGFydF9zZXEpCi17Ci0JLyogUGFpcmVkIHdpdGggc21wX3dtYigpIGluIHZkc29fZGF0YV93cml0ZV8qKCkuICovCi0Jc21wX3JtYigpOwotCXJldHVybiB1bmxpa2VseShkYXRhLT5zZXFfY291bnQgIT0gc3RhcnRfc2VxKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHZkc29fZGF0YV93cml0ZV9iZWdpbih1bmlvbiBtaXBzX3Zkc29fZGF0YSAqZGF0YSkKLXsKLQkrK2RhdGEtPnNlcV9jb3VudDsKLQotCS8qIEVuc3VyZSBzZXF1ZW5jZSB1cGRhdGUgaXMgd3JpdHRlbiBiZWZvcmUgb3RoZXIgZGF0YSBwYWdlIHZhbHVlcy4gKi8KLQlzbXBfd21iKCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB2ZHNvX2RhdGFfd3JpdGVfZW5kKHVuaW9uIG1pcHNfdmRzb19kYXRhICpkYXRhKQotewotCS8qIEVuc3VyZSBkYXRhIHZhbHVlcyBhcmUgd3JpdHRlbiBiZWZvcmUgdXBkYXRpbmcgc2VxdWVuY2UgYWdhaW4uICovCi0Jc21wX3dtYigpOwotCSsrZGF0YS0+c2VxX2NvdW50OwotfQotCiAjZW5kaWYgLyogX19BU01fVkRTT19IICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vdmRzby9nZXR0aW1lb2ZkYXkuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS92ZHNvL2dldHRpbWVvZmRheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3ODQ2MmUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vdmRzby9nZXR0aW1lb2ZkYXkuaApAQCAtMCwwICsxLDIyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBUk0gTGltaXRlZAorICogQ29weXJpZ2h0IChDKSAyMDE1IEltYWdpbmF0aW9uIFRlY2hub2xvZ2llcworICogQXV0aG9yOiBBbGV4IFNtaXRoIDxhbGV4LnNtaXRoQGltZ3RlYy5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCisgKiBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisjaWZuZGVmIF9fQVNNX1ZEU09fR0VUVElNRU9GREFZX0gKKyNkZWZpbmUgX19BU01fVkRTT19HRVRUSU1FT0ZEQVlfSAorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lLmg+CisKKyNpbmNsdWRlIDxhc20vdmRzby92ZHNvLmg+CisjaW5jbHVkZSA8YXNtL2Nsb2Nrc291cmNlLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgorI2luY2x1ZGUgPGFzbS92ZHNvLmg+CisKKyNkZWZpbmUgVkRTT19IQVNfQ0xPQ0tfR0VUUkVTCQkxCisKKyNpZmRlZiBDT05GSUdfTUlQU19DTE9DS19WU1lTQ0FMTAorCitzdGF0aWMgX19hbHdheXNfaW5saW5lIGxvbmcgZ2V0dGltZW9mZGF5X2ZhbGxiYWNrKAorCQkJCXN0cnVjdCBfX2tlcm5lbF9vbGRfdGltZXZhbCAqX3R2LAorCQkJCXN0cnVjdCB0aW1lem9uZSAqX3R6KQoreworCXJlZ2lzdGVyIHN0cnVjdCB0aW1lem9uZSAqdHogYXNtKCJhMSIpID0gX3R6OworCXJlZ2lzdGVyIHN0cnVjdCBfX2tlcm5lbF9vbGRfdGltZXZhbCAqdHYgYXNtKCJhMCIpID0gX3R2OworCXJlZ2lzdGVyIGxvbmcgcmV0IGFzbSgidjAiKTsKKwlyZWdpc3RlciBsb25nIG5yIGFzbSgidjAiKSA9IF9fTlJfZ2V0dGltZW9mZGF5OworCXJlZ2lzdGVyIGxvbmcgZXJyb3IgYXNtKCJhMyIpOworCisJYXNtIHZvbGF0aWxlKAorCSIgICAgICAgc3lzY2FsbFxuIgorCTogIj1yIiAocmV0KSwgIj1yIiAoZXJyb3IpCisJOiAiciIgKHR2KSwgInIiICh0eiksICJyIiAobnIpCisJOiAiJDEiLCAiJDMiLCAiJDgiLCAiJDkiLCAiJDEwIiwgIiQxMSIsICIkMTIiLCAiJDEzIiwKKwkgICIkMTQiLCAiJDE1IiwgIiQyNCIsICIkMjUiLCAiaGkiLCAibG8iLCAibWVtb3J5Iik7CisKKwlyZXR1cm4gZXJyb3IgPyAtcmV0IDogcmV0OworfQorCisjZWxzZQorCitzdGF0aWMgX19hbHdheXNfaW5saW5lIGxvbmcgZ2V0dGltZW9mZGF5X2ZhbGxiYWNrKAorCQkJCXN0cnVjdCBfX2tlcm5lbF9vbGRfdGltZXZhbCAqX3R2LAorCQkJCXN0cnVjdCB0aW1lem9uZSAqX3R6KQoreworCXJldHVybiAtMTsKK30KKworI2VuZGlmCisKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgbG9uZyBjbG9ja19nZXR0aW1lX2ZhbGxiYWNrKAorCQkJCQljbG9ja2lkX3QgX2Nsa2lkLAorCQkJCQlzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKl90cykKK3sKKwlyZWdpc3RlciBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKnRzIGFzbSgiYTEiKSA9IF90czsKKwlyZWdpc3RlciBjbG9ja2lkX3QgY2xraWQgYXNtKCJhMCIpID0gX2Nsa2lkOworCXJlZ2lzdGVyIGxvbmcgcmV0IGFzbSgidjAiKTsKKyNpZiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX0FCSTY0CisJcmVnaXN0ZXIgbG9uZyBuciBhc20oInYwIikgPSBfX05SX2Nsb2NrX2dldHRpbWU7CisjZWxzZQorCXJlZ2lzdGVyIGxvbmcgbnIgYXNtKCJ2MCIpID0gX19OUl9jbG9ja19nZXR0aW1lNjQ7CisjZW5kaWYKKwlyZWdpc3RlciBsb25nIGVycm9yIGFzbSgiYTMiKTsKKworCWFzbSB2b2xhdGlsZSgKKwkiICAgICAgIHN5c2NhbGxcbiIKKwk6ICI9ciIgKHJldCksICI9ciIgKGVycm9yKQorCTogInIiIChjbGtpZCksICJyIiAodHMpLCAiciIgKG5yKQorCTogIiQxIiwgIiQzIiwgIiQ4IiwgIiQ5IiwgIiQxMCIsICIkMTEiLCAiJDEyIiwgIiQxMyIsCisJICAiJDE0IiwgIiQxNSIsICIkMjQiLCAiJDI1IiwgImhpIiwgImxvIiwgIm1lbW9yeSIpOworCisJcmV0dXJuIGVycm9yID8gLXJldCA6IHJldDsKK30KKworc3RhdGljIF9fYWx3YXlzX2lubGluZSBpbnQgY2xvY2tfZ2V0cmVzX2ZhbGxiYWNrKAorCQkJCQljbG9ja2lkX3QgX2Nsa2lkLAorCQkJCQlzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKl90cykKK3sKKwlyZWdpc3RlciBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKnRzIGFzbSgiYTEiKSA9IF90czsKKwlyZWdpc3RlciBjbG9ja2lkX3QgY2xraWQgYXNtKCJhMCIpID0gX2Nsa2lkOworCXJlZ2lzdGVyIGxvbmcgcmV0IGFzbSgidjAiKTsKKyNpZiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX0FCSTY0CisJcmVnaXN0ZXIgbG9uZyBuciBhc20oInYwIikgPSBfX05SX2Nsb2NrX2dldHJlczsKKyNlbHNlCisJcmVnaXN0ZXIgbG9uZyBuciBhc20oInYwIikgPSBfX05SX2Nsb2NrX2dldHJlc190aW1lNjQ7CisjZW5kaWYKKwlyZWdpc3RlciBsb25nIGVycm9yIGFzbSgiYTMiKTsKKworCWFzbSB2b2xhdGlsZSgKKwkiICAgICAgIHN5c2NhbGxcbiIKKwk6ICI9ciIgKHJldCksICI9ciIgKGVycm9yKQorCTogInIiIChjbGtpZCksICJyIiAodHMpLCAiciIgKG5yKQorCTogIiQxIiwgIiQzIiwgIiQ4IiwgIiQ5IiwgIiQxMCIsICIkMTEiLCAiJDEyIiwgIiQxMyIsCisJICAiJDE0IiwgIiQxNSIsICIkMjQiLCAiJDI1IiwgImhpIiwgImxvIiwgIm1lbW9yeSIpOworCisJcmV0dXJuIGVycm9yID8gLXJldCA6IHJldDsKK30KKworI2lmIF9NSVBTX1NJTSAhPSBfTUlQU19TSU1fQUJJNjQKKworI2RlZmluZSBWRFNPX0hBU18zMkJJVF9GQUxMQkFDSwkxCisKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgbG9uZyBjbG9ja19nZXR0aW1lMzJfZmFsbGJhY2soCisJCQkJCWNsb2NraWRfdCBfY2xraWQsCisJCQkJCXN0cnVjdCBvbGRfdGltZXNwZWMzMiAqX3RzKQoreworCXJlZ2lzdGVyIHN0cnVjdCBvbGRfdGltZXNwZWMzMiAqdHMgYXNtKCJhMSIpID0gX3RzOworCXJlZ2lzdGVyIGNsb2NraWRfdCBjbGtpZCBhc20oImEwIikgPSBfY2xraWQ7CisJcmVnaXN0ZXIgbG9uZyByZXQgYXNtKCJ2MCIpOworCXJlZ2lzdGVyIGxvbmcgbnIgYXNtKCJ2MCIpID0gX19OUl9jbG9ja19nZXR0aW1lOworCXJlZ2lzdGVyIGxvbmcgZXJyb3IgYXNtKCJhMyIpOworCisJYXNtIHZvbGF0aWxlKAorCSIgICAgICAgc3lzY2FsbFxuIgorCTogIj1yIiAocmV0KSwgIj1yIiAoZXJyb3IpCisJOiAiciIgKGNsa2lkKSwgInIiICh0cyksICJyIiAobnIpCisJOiAiJDEiLCAiJDMiLCAiJDgiLCAiJDkiLCAiJDEwIiwgIiQxMSIsICIkMTIiLCAiJDEzIiwKKwkgICIkMTQiLCAiJDE1IiwgIiQyNCIsICIkMjUiLCAiaGkiLCAibG8iLCAibWVtb3J5Iik7CisKKwlyZXR1cm4gZXJyb3IgPyAtcmV0IDogcmV0OworfQorCitzdGF0aWMgX19hbHdheXNfaW5saW5lIGludCBjbG9ja19nZXRyZXMzMl9mYWxsYmFjaygKKwkJCQkJY2xvY2tpZF90IF9jbGtpZCwKKwkJCQkJc3RydWN0IG9sZF90aW1lc3BlYzMyICpfdHMpCit7CisJcmVnaXN0ZXIgc3RydWN0IG9sZF90aW1lc3BlYzMyICp0cyBhc20oImExIikgPSBfdHM7CisJcmVnaXN0ZXIgY2xvY2tpZF90IGNsa2lkIGFzbSgiYTAiKSA9IF9jbGtpZDsKKwlyZWdpc3RlciBsb25nIHJldCBhc20oInYwIik7CisJcmVnaXN0ZXIgbG9uZyBuciBhc20oInYwIikgPSBfX05SX2Nsb2NrX2dldHJlczsKKwlyZWdpc3RlciBsb25nIGVycm9yIGFzbSgiYTMiKTsKKworCWFzbSB2b2xhdGlsZSgKKwkiICAgICAgIHN5c2NhbGxcbiIKKwk6ICI9ciIgKHJldCksICI9ciIgKGVycm9yKQorCTogInIiIChjbGtpZCksICJyIiAodHMpLCAiciIgKG5yKQorCTogIiQxIiwgIiQzIiwgIiQ4IiwgIiQ5IiwgIiQxMCIsICIkMTEiLCAiJDEyIiwgIiQxMyIsCisJICAiJDE0IiwgIiQxNSIsICIkMjQiLCAiJDI1IiwgImhpIiwgImxvIiwgIm1lbW9yeSIpOworCisJcmV0dXJuIGVycm9yID8gLXJldCA6IHJldDsKK30KKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0NTUkNfUjRLCisKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdTY0IHJlYWRfcjRrX2NvdW50KHZvaWQpCit7CisJdW5zaWduZWQgaW50IGNvdW50OworCisJX19hc21fXyBfX3ZvbGF0aWxlX18oCisJIgkuc2V0IHB1c2hcbiIKKwkiCS5zZXQgbWlwczMycjJcbiIKKwkiCXJkaHdyCSUwLCAkMlxuIgorCSIJLnNldCBwb3BcbiIKKwk6ICI9ciIgKGNvdW50KSk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0NMS1NSQ19NSVBTX0dJQworCitzdGF0aWMgX19hbHdheXNfaW5saW5lIHU2NCByZWFkX2dpY19jb3VudChjb25zdCBzdHJ1Y3QgdmRzb19kYXRhICpkYXRhKQoreworCXZvaWQgX19pb21lbSAqZ2ljID0gZ2V0X2dpYyhkYXRhKTsKKwl1MzIgaGksIGhpMiwgbG87CisKKwlkbyB7CisJCWhpID0gX19yYXdfcmVhZGwoZ2ljICsgc2l6ZW9mKGxvKSk7CisJCWxvID0gX19yYXdfcmVhZGwoZ2ljKTsKKwkJaGkyID0gX19yYXdfcmVhZGwoZ2ljICsgc2l6ZW9mKGxvKSk7CisJfSB3aGlsZSAoaGkyICE9IGhpKTsKKworCXJldHVybiAoKCh1NjQpaGkpIDw8IDMyKSArIGxvOworfQorCisjZW5kaWYKKworc3RhdGljIF9fYWx3YXlzX2lubGluZSB1NjQgX19hcmNoX2dldF9od19jb3VudGVyKHMzMiBjbG9ja19tb2RlKQoreworI2lmZGVmIENPTkZJR19DTEtTUkNfTUlQU19HSUMKKwljb25zdCBzdHJ1Y3QgdmRzb19kYXRhICpkYXRhID0gZ2V0X3Zkc29fZGF0YSgpOworI2VuZGlmCisJdTY0IGN5Y2xlX25vdzsKKworCXN3aXRjaCAoY2xvY2tfbW9kZSkgeworI2lmZGVmIENPTkZJR19DU1JDX1I0SworCWNhc2UgVkRTT19DTE9DS19SNEs6CisJCWN5Y2xlX25vdyA9IHJlYWRfcjRrX2NvdW50KCk7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgQ09ORklHX0NMS1NSQ19NSVBTX0dJQworCWNhc2UgVkRTT19DTE9DS19HSUM6CisJCWN5Y2xlX25vdyA9IHJlYWRfZ2ljX2NvdW50KGRhdGEpOworCQlicmVhazsKKyNlbmRpZgorCWRlZmF1bHQ6CisJCWN5Y2xlX25vdyA9IDA7CisJCWJyZWFrOworCX0KKworCXJldHVybiBjeWNsZV9ub3c7Cit9CisKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgY29uc3Qgc3RydWN0IHZkc29fZGF0YSAqX19hcmNoX2dldF92ZHNvX2RhdGEodm9pZCkKK3sKKwlyZXR1cm4gZ2V0X3Zkc29fZGF0YSgpOworfQorCisjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19BU01fVkRTT19HRVRUSU1FT0ZEQVlfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3Zkc28vdmRzby5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3Zkc28vdmRzby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczN2RkZmMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vdmRzby92ZHNvLmgKQEAgLTAsMCArMSw3NSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSW1hZ2luYXRpb24gVGVjaG5vbG9naWVzCisgKiBBdXRob3I6IEFsZXggU21pdGggPGFsZXguc21pdGhAaW1ndGVjLmNvbT4KKyAqLworCisjaW5jbHVkZSA8YXNtL3NnaWRlZnMuaD4KKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKworI2luY2x1ZGUgPGFzbS9hc20uaD4KKyNpbmNsdWRlIDxhc20vcGFnZS5oPgorI2luY2x1ZGUgPGFzbS92ZHNvLmg+CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfdmRzb19iYXNlKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBhZGRyOworCisJLyoKKwkgKiBXZSBjYW4ndCB1c2UgY3B1X2hhc19taXBzX3I2IHNpbmNlIGl0IG5lZWRzIHRoZSBjcHVfZGF0YVtdCisJICoga2VybmVsIHN5bWJvbC4KKwkgKi8KKyNpZmRlZiBDT05GSUdfQ1BVX01JUFNSNgorCS8qCisJICogbGFwYyA8c3ltYm9sPiBpcyBhbiBhbGlhcyB0byBhZGRpdXBjIHJlZywgPHN5bWJvbD4gLSAuCisJICoKKwkgKiBXZSBjYW4ndCB1c2UgYWRkaXVwYyBiZWNhdXNlIHRoZXJlIGlzIG5vIGxhYmVsLWxhYmVsCisJICogc3VwcG9ydCBmb3IgdGhlIGFkZGl1cGMgcmVsb2MKKwkgKi8KKwlfX2FzbV9fKCJsYXBjCSUwLCBfc3RhcnQJCQlcbiIKKwkJOiAiPXIiIChhZGRyKSA6IDopOworI2Vsc2UKKwkvKgorCSAqIEdldCB0aGUgYmFzZSBsb2FkIGFkZHJlc3Mgb2YgdGhlIFZEU08uIFdlIGhhdmUgdG8gYXZvaWQgZ2VuZXJhdGluZworCSAqIHJlbG9jYXRpb25zIGFuZCByZWZlcmVuY2VzIHRvIHRoZSBHT1QgYmVjYXVzZSBsZC5zbyBkb2VzIG5vdCBwZWZvcm0KKwkgKiByZWxvY2F0aW9ucyBvbiB0aGUgVkRTTy4gV2UgdXNlIHRoZSBjdXJyZW50IG9mZnNldCBmcm9tIHRoZSBWRFNPIGJhc2UKKwkgKiBhbmQgcGVyZm9ybSBhIFBDLXJlbGF0aXZlIGJyYW5jaCB3aGljaCBnaXZlcyB0aGUgYWJzb2x1dGUgYWRkcmVzcyBpbgorCSAqIHJhLCBhbmQgdGFrZSB0aGUgZGlmZmVyZW5jZS4gVGhlIGFzc2VtYmxlciBjaG9rZXMgb24KKwkgKiAibGkgJTAsIF9zdGFydCAtIC4iLCBzbyBlbWJlZCB0aGUgb2Zmc2V0IGFzIGEgd29yZCBhbmQgYnJhbmNoIG92ZXIKKwkgKiBpdC4KKwkgKgorCSAqLworCisJX19hc21fXygKKwkiCS5zZXQgcHVzaAkJCQlcbiIKKwkiCS5zZXQgbm9yZW9yZGVyCQkJCVxuIgorCSIJYmFsCTFmCQkJCVxuIgorCSIJIG5vcAkJCQkJXG4iCisJIgkud29yZAlfc3RhcnQgLSAuCQkJXG4iCisJIjE6CWx3CSUwLCAwKCQzMSkJCQlcbiIKKwkiCSIgU1RSKFBUUl9BRERVKSAiICUwLCAkMzEsICUwCQlcbiIKKwkiCS5zZXQgcG9wCQkJCVxuIgorCTogIj1yIiAoYWRkcikKKwk6CisJOiAiJDMxIik7CisjZW5kaWYgLyogQ09ORklHX0NQVV9NSVBTUjYgKi8KKworCXJldHVybiBhZGRyOworfQorCitzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCB2ZHNvX2RhdGEgKmdldF92ZHNvX2RhdGEodm9pZCkKK3sKKwlyZXR1cm4gKGNvbnN0IHN0cnVjdCB2ZHNvX2RhdGEgKikoZ2V0X3Zkc29fYmFzZSgpIC0gUEFHRV9TSVpFKTsKK30KKworI2lmZGVmIENPTkZJR19DTEtTUkNfTUlQU19HSUMKKworc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKmdldF9naWMoY29uc3Qgc3RydWN0IHZkc29fZGF0YSAqZGF0YSkKK3sKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKWRhdGEgLSBQQUdFX1NJWkU7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfQ0xLU1JDX01JUFNfR0lDICovCisKKyNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS92ZHNvL3ZzeXNjYWxsLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vdmRzby92c3lzY2FsbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5NTMxNDcKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vdmRzby92c3lzY2FsbC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisjaWZuZGVmIF9fQVNNX1ZEU09fVlNZU0NBTExfSAorI2RlZmluZSBfX0FTTV9WRFNPX1ZTWVNDQUxMX0gKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKworI2luY2x1ZGUgPGxpbnV4L3RpbWVrZWVwZXJfaW50ZXJuYWwuaD4KKyNpbmNsdWRlIDx2ZHNvL2RhdGFwYWdlLmg+CisKK2V4dGVybiBzdHJ1Y3QgdmRzb19kYXRhICp2ZHNvX2RhdGE7CisKKy8qCisgKiBVcGRhdGUgdGhlIHZEU08gZGF0YSBwYWdlIHRvIGtlZXAgaW4gc3luYyB3aXRoIGtlcm5lbCB0aW1la2VlcGluZy4KKyAqLworc3RhdGljIF9fYWx3YXlzX2lubGluZQorc3RydWN0IHZkc29fZGF0YSAqX19taXBzX2dldF9rX3Zkc29fZGF0YSh2b2lkKQoreworCXJldHVybiB2ZHNvX2RhdGE7Cit9CisjZGVmaW5lIF9fYXJjaF9nZXRfa192ZHNvX2RhdGEgX19taXBzX2dldF9rX3Zkc29fZGF0YQorCitzdGF0aWMgX19hbHdheXNfaW5saW5lCitpbnQgX19taXBzX2dldF9jbG9ja19tb2RlKHN0cnVjdCB0aW1la2VlcGVyICp0aykKK3sKKwl1MzIgY2xvY2tfbW9kZSA9IHRrLT50a3JfbW9uby5jbG9jay0+YXJjaGRhdGEudmRzb19jbG9ja19tb2RlOworCisJcmV0dXJuIGNsb2NrX21vZGU7Cit9CisjZGVmaW5lIF9fYXJjaF9nZXRfY2xvY2tfbW9kZSBfX21pcHNfZ2V0X2Nsb2NrX21vZGUKKworc3RhdGljIF9fYWx3YXlzX2lubGluZQoraW50IF9fbWlwc191c2VfdnN5c2NhbGwoc3RydWN0IHZkc29fZGF0YSAqdmRhdGEpCit7CisJcmV0dXJuICh2ZGF0YVtDU19IUkVTX0NPQVJTRV0uY2xvY2tfbW9kZSAhPSBWRFNPX0NMT0NLX05PTkUpOworfQorI2RlZmluZSBfX2FyY2hfdXNlX3ZzeXNjYWxsIF9fbWlwc191c2VfdnN5c2NhbGwKKworLyogVGhlIGFzbS1nZW5lcmljIGhlYWRlciBuZWVkcyB0byBiZSBpbmNsdWRlZCBhZnRlciB0aGUgZGVmaW5pdGlvbnMgYWJvdmUgKi8KKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy92ZHNvL3ZzeXNjYWxsLmg+CisKKyNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCisKKyNlbmRpZiAvKiBfX0FTTV9WRFNPX1ZTWVNDQUxMX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS93YXIuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS93YXIuaAppbmRleCA5MzQ0ZTI0Li4xZWVkZDU5IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vd2FyLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3dhci5oCkBAIC0xMjksMTkgKzEyOSw2IEBACiAjZW5kaWYKIAogLyoKLSAqIFdoZW4gYW4gaW50ZXJydXB0IGhhcHBlbnMgb24gYSBDUDAgcmVnaXN0ZXIgcmVhZCBpbnN0cnVjdGlvbiwgQ1BVIG1heQotICogbG9jayB1cCBvciByZWFkIGNvcnJ1cHRlZCB2YWx1ZXMgb2YgQ1AwIHJlZ2lzdGVycyBhZnRlciBpdCBlbnRlcnMKLSAqIHRoZSBleGNlcHRpb24gaGFuZGxlci4KLSAqCi0gKiBUaGlzIHdvcmthcm91bmQgbWFrZXMgc3VyZSB0aGF0IHdlIHJlYWQgYSAic2FmZSIgQ1AwIHJlZ2lzdGVyIGFzIHRoZQotICogZmlyc3QgdGhpbmcgaW4gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLCB3aGljaCBicmVha3Mgb25lIG9mIHRoZQotICogcHJlLWNvbmRpdGlvbnMgZm9yIHRoaXMgcHJvYmxlbS4KLSAqLwotI2lmbmRlZiBSNTQzMl9DUDBfSU5URVJSVVBUX1dBUgotI2Vycm9yIENoZWNrIHNldHRpbmcgb2YgUjU0MzJfQ1AwX0lOVEVSUlVQVF9XQVIgZm9yIHlvdXIgcGxhdGZvcm0KLSNlbmRpZgotCi0vKgogICogV29ya2Fyb3VuZCBmb3IgdGhlIFNpYnl0ZSBNMyBlcnJhdGEgdGhlIHRleHQgb2Ygd2hpY2ggY2FuIGJlIGZvdW5kIGF0CiAgKgogICogICBodHRwOi8vc2lieXRlLmJyb2FkY29tLmNvbS9ody9iY20xMjUwL2RvY3MvcGFzczJlcnJhdGEudHh0CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9tbWFuLmggYi9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9tbWFuLmgKaW5kZXggYzJiNDA5Ni4uNTdkYzJhYyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vbW1hbi5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL21tYW4uaApAQCAtOTUsNiArOTUsOSBAQAogI2RlZmluZSBNQURWX1dJUEVPTkZPUksgMTgJCS8qIFplcm8gbWVtb3J5IG9uIGZvcmssIGNoaWxkIG9ubHkgKi8KICNkZWZpbmUgTUFEVl9LRUVQT05GT1JLIDE5CQkvKiBVbmRvIE1BRFZfV0lQRU9ORk9SSyAqLwogCisjZGVmaW5lIE1BRFZfQ09MRAkyMAkJLyogZGVhY3RpdmF0ZSB0aGVzZSBwYWdlcyAqLworI2RlZmluZSBNQURWX1BBR0VPVVQJMjEJCS8qIHJlY2xhaW0gdGhlc2UgcGFnZXMgKi8KKwogLyogY29tcGF0aWJpbGl0eSBmbGFncyAqLwogI2RlZmluZSBNQVBfRklMRQkwCiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9qYXp6L2phenpkbWEuYyBiL2FyY2gvbWlwcy9qYXp6L2phenpkbWEuYwppbmRleCAxODA0ZGM5Li5hMDFlMTQ5IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvamF6ei9qYXp6ZG1hLmMKKysrIGIvYXJjaC9taXBzL2phenovamF6emRtYS5jCkBAIC02ODIsNSArNjgyLDcgQEAgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIGphenpfZG1hX29wcyA9IHsKIAkuc3luY19zZ19mb3JfZGV2aWNlCT0gamF6el9kbWFfc3luY19zZ19mb3JfZGV2aWNlLAogCS5kbWFfc3VwcG9ydGVkCQk9IGRtYV9kaXJlY3Rfc3VwcG9ydGVkLAogCS5jYWNoZV9zeW5jCQk9IGFyY2hfZG1hX2NhY2hlX3N5bmMsCisJLm1tYXAJCQk9IGRtYV9jb21tb25fbW1hcCwKKwkuZ2V0X3NndGFibGUJCT0gZG1hX2NvbW1vbl9nZXRfc2d0YWJsZSwKIH07CiBFWFBPUlRfU1lNQk9MKGphenpfZG1hX29wcyk7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvano0NzQwL01ha2VmaWxlIGIvYXJjaC9taXBzL2p6NDc0MC9NYWtlZmlsZQppbmRleCA4OGQ2YWE3Li42ZGUxNGMwIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvano0NzQwL01ha2VmaWxlCisrKyBiL2FyY2gvbWlwcy9qejQ3NDAvTWFrZWZpbGUKQEAgLTUsMTUgKzUsMTAgQEAKIAogIyBPYmplY3QgZmlsZSBsaXN0cy4KIAotb2JqLXkgKz0gcHJvbS5vIHRpbWUubyByZXNldC5vIHNldHVwLm8gXAotCXBsYXRmb3JtLm8gdGltZXIubworb2JqLXkgKz0gcHJvbS5vIHRpbWUubyByZXNldC5vIHNldHVwLm8gdGltZXIubwogCiBDRkxBR1Nfc2V0dXAubyA9IC1JJChzcmMpLy4uLy4uLy4uL3NjcmlwdHMvZHRjL2xpYmZkdAogCi0jIGJvYXJkIHNwZWNpZmljIHN1cHBvcnQKLQotb2JqLSQoQ09ORklHX0paNDc0MF9RSV9MQjYwKQkrPSBib2FyZC1xaV9sYjYwLm8KLQogIyBQTSBzdXBwb3J0CiAKIG9iai0kKENPTkZJR19QTSkgKz0gcG0ubwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2p6NDc0MC9ib2FyZC1xaV9sYjYwLmMgYi9hcmNoL21pcHMvano0NzQwL2JvYXJkLXFpX2xiNjAuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE3YTgwYy4uMDAwMDAwMAotLS0gYS9hcmNoL21pcHMvano0NzQwL2JvYXJkLXFpX2xiNjAuYworKysgL2Rldi9udWxsCkBAIC0xLDUyMyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgotLyoKLSAqIGxpbnV4L2FyY2gvbWlwcy9qejQ3NDAvYm9hcmQtcWlfbGI2MC5jCi0gKgotICogUUlfTEI2MCBib2FyZCBzdXBwb3J0Ci0gKgotICogQ29weXJpZ2h0IChjKSAyMDA5IFFpIEhhcmR3YXJlIGluYy4sCi0gKiBBdXRob3I6IFhpYW5nZnUgTGl1IDx4aWFuZ2Z1QHFpLWhhcmR3YXJlLmNvbT4KLSAqIENvcHlyaWdodCAyMDEwLCBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9ncGlvL21hY2hpbmUuaD4KLQotI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpb19rZXlzLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5wdXQvbWF0cml4X2tleXBhZC5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGkvc3BpX2dwaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9waW5jdHJsL21hY2hpbmUuaD4KLSNpbmNsdWRlIDxsaW51eC9waW5jdHJsL3BpbmNvbmYtZ2VuZXJpYy5oPgotI2luY2x1ZGUgPGxpbnV4L3Bvd2VyX3N1cHBseS5oPgotI2luY2x1ZGUgPGxpbnV4L3Bvd2VyL2p6NDc0MC1iYXR0ZXJ5Lmg+Ci0jaW5jbHVkZSA8bGludXgvcG93ZXIvZ3Bpby1jaGFyZ2VyLmg+Ci0jaW5jbHVkZSA8bGludXgvcHdtLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2p6NDc0MC9qejQ3NDBfbmFuZC5oPgotCi0jaW5jbHVkZSA8YXNtL21hY2gtano0NzQwL2dwaW8uaD4KLSNpbmNsdWRlIDxhc20vbWFjaC1qejQ3NDAvano0NzQwX2ZiLmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gtano0NzQwL2p6NDc0MF9tbWMuaD4KLQotI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9maXhlZC5oPgotI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9tYWNoaW5lLmg+Ci0KLSNpbmNsdWRlIDxhc20vbWFjaC1qejQ3NDAvcGxhdGZvcm0uaD4KLQotLyogR1BJT3MgKi8KLSNkZWZpbmUgUUlfTEI2MF9HUElPX0tFWU9VVCh4KQkJKEpaX0dQSU9fUE9SVEMoMTApICsgKHgpKQotI2RlZmluZSBRSV9MQjYwX0dQSU9fS0VZSU4oeCkJCShKWl9HUElPX1BPUlREKDE4KSArICh4KSkKLSNkZWZpbmUgUUlfTEI2MF9HUElPX0tFWUlOOAkJSlpfR1BJT19QT1JURCgyNikKLQotLyogTkFORCAqLwotCi0vKiBFYXJseSBwcm90b3R5cGVzIG9mIHRoZSBRSSBMQjYwIGhhZCBvbmx5IDFHQiBvZiBOQU5ELgotICogSW4gb3JkZXIgdG8gc3VwcG9ydCB0aGVzZSBkZXZpY2VzIGFzIHdlbGwgdGhlIHBhcnRpdGlvbiBhbmQgZWNjIGxheW91dCBpcwotICogaW5pdGlhbGl6ZWQgZGVwZW5kaW5nIG9uIHRoZSBOQU5EIHNpemUgKi8KLXN0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBxaV9sYjYwX3BhcnRpdGlvbnNfMWdiW10gPSB7Ci0JewotCQkubmFtZSA9ICJOQU5EIEJPT1QgcGFydGl0aW9uIiwKLQkJLm9mZnNldCA9IDAgKiAweDEwMDAwMCwKLQkJLnNpemUgPSA0ICogMHgxMDAwMDAsCi0JfSwKLQl7Ci0JCS5uYW1lID0gIk5BTkQgS0VSTkVMIHBhcnRpdGlvbiIsCi0JCS5vZmZzZXQgPSA0ICogMHgxMDAwMDAsCi0JCS5zaXplID0gNCAqIDB4MTAwMDAwLAotCX0sCi0JewotCQkubmFtZSA9ICJOQU5EIFJPT1RGUyBwYXJ0aXRpb24iLAotCQkub2Zmc2V0ID0gOCAqIDB4MTAwMDAwLAotCQkuc2l6ZSA9ICg1MDQgKyA1MTIpICogMHgxMDAwMDAsCi0JfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBxaV9sYjYwX3BhcnRpdGlvbnNfMmdiW10gPSB7Ci0JewotCQkubmFtZSA9ICJOQU5EIEJPT1QgcGFydGl0aW9uIiwKLQkJLm9mZnNldCA9IDAgKiAweDEwMDAwMCwKLQkJLnNpemUgPSA0ICogMHgxMDAwMDAsCi0JfSwKLQl7Ci0JCS5uYW1lID0gIk5BTkQgS0VSTkVMIHBhcnRpdGlvbiIsCi0JCS5vZmZzZXQgPSA0ICogMHgxMDAwMDAsCi0JCS5zaXplID0gNCAqIDB4MTAwMDAwLAotCX0sCi0JewotCQkubmFtZSA9ICJOQU5EIFJPT1RGUyBwYXJ0aXRpb24iLAotCQkub2Zmc2V0ID0gOCAqIDB4MTAwMDAwLAotCQkuc2l6ZSA9ICg1MDQgKyA1MTIgKyAxMDI0KSAqIDB4MTAwMDAwLAotCX0sCi19OwotCi1zdGF0aWMgaW50IHFpX2xiNjBfb29ibGF5b3V0X2VjYyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgaW50IHNlY3Rpb24sCi0JCQkJIHN0cnVjdCBtdGRfb29iX3JlZ2lvbiAqb29icmVnaW9uKQotewotCWlmIChzZWN0aW9uKQotCQlyZXR1cm4gLUVSQU5HRTsKLQotCW9vYnJlZ2lvbi0+bGVuZ3RoID0gMzY7Ci0Jb29icmVnaW9uLT5vZmZzZXQgPSA2OwotCi0JaWYgKG10ZC0+b29ic2l6ZSA9PSAxMjgpIHsKLQkJb29icmVnaW9uLT5sZW5ndGggKj0gMjsKLQkJb29icmVnaW9uLT5vZmZzZXQgKj0gMjsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBxaV9sYjYwX29vYmxheW91dF9mcmVlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgc2VjdGlvbiwKLQkJCQkgIHN0cnVjdCBtdGRfb29iX3JlZ2lvbiAqb29icmVnaW9uKQotewotCWludCBlY2NieXRlcyA9IDM2LCBlY2NvZmYgPSA2OwotCi0JaWYgKHNlY3Rpb24gPiAxKQotCQlyZXR1cm4gLUVSQU5HRTsKLQotCWlmIChtdGQtPm9vYnNpemUgPT0gMTI4KSB7Ci0JCWVjY2J5dGVzICo9IDI7Ci0JCWVjY29mZiAqPSAyOwotCX0KLQotCWlmICghc2VjdGlvbikgewotCQlvb2JyZWdpb24tPm9mZnNldCA9IDI7Ci0JCW9vYnJlZ2lvbi0+bGVuZ3RoID0gZWNjb2ZmIC0gMjsKLQl9IGVsc2UgewotCQlvb2JyZWdpb24tPm9mZnNldCA9IGVjY29mZiArIGVjY2J5dGVzOwotCQlvb2JyZWdpb24tPmxlbmd0aCA9IG10ZC0+b29ic2l6ZSAtIG9vYnJlZ2lvbi0+b2Zmc2V0OwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG10ZF9vb2JsYXlvdXRfb3BzIHFpX2xiNjBfb29ibGF5b3V0X29wcyA9IHsKLQkuZWNjID0gcWlfbGI2MF9vb2JsYXlvdXRfZWNjLAotCS5mcmVlID0gcWlfbGI2MF9vb2JsYXlvdXRfZnJlZSwKLX07Ci0KLXN0YXRpYyB2b2lkIHFpX2xiNjBfbmFuZF9pZGVudChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgc3RydWN0IG10ZF9wYXJ0aXRpb24gKipwYXJ0aXRpb25zLAotCQlpbnQgKm51bV9wYXJ0aXRpb25zKQotewotCXN0cnVjdCBuYW5kX2NoaXAgKmNoaXAgPSBtdGRfdG9fbmFuZChtdGQpOwotCi0JaWYgKGNoaXAtPnBhZ2Vfc2hpZnQgPT0gMTIpIHsKLQkJKnBhcnRpdGlvbnMgPSBxaV9sYjYwX3BhcnRpdGlvbnNfMmdiOwotCQkqbnVtX3BhcnRpdGlvbnMgPSBBUlJBWV9TSVpFKHFpX2xiNjBfcGFydGl0aW9uc18yZ2IpOwotCX0gZWxzZSB7Ci0JCSpwYXJ0aXRpb25zID0gcWlfbGI2MF9wYXJ0aXRpb25zXzFnYjsKLQkJKm51bV9wYXJ0aXRpb25zID0gQVJSQVlfU0laRShxaV9sYjYwX3BhcnRpdGlvbnNfMWdiKTsKLQl9Ci0KLQltdGRfc2V0X29vYmxheW91dChtdGQsICZxaV9sYjYwX29vYmxheW91dF9vcHMpOwotfQotCi1zdGF0aWMgc3RydWN0IGp6X25hbmRfcGxhdGZvcm1fZGF0YSBxaV9sYjYwX25hbmRfcGRhdGEgPSB7Ci0JLmlkZW50X2NhbGxiYWNrID0gcWlfbGI2MF9uYW5kX2lkZW50LAotCS5iYW5rcyA9IHsgMSB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBncGlvZF9sb29rdXBfdGFibGUgcWlfbGI2MF9uYW5kX2dwaW9fdGFibGUgPSB7Ci0JLmRldl9pZCA9ICJqejQ3NDAtbmFuZC4wIiwKLQkudGFibGUgPSB7Ci0JCUdQSU9fTE9PS1VQKCJHUElPQyIsIDMwLCAiYnVzeSIsIDApLAotCQl7IH0sCi0JfSwKLX07Ci0KLQotLyogS2V5Ym9hcmQqLwotCi0jZGVmaW5lIEtFWV9RSV9RSQlLRVlfRjEzCi0jZGVmaW5lIEtFWV9RSV9VUFJFRAlLRVlfUklHSFRBTFQKLSNkZWZpbmUgS0VZX1FJX1ZPTFVQCUtFWV9WT0xVTUVVUAotI2RlZmluZSBLRVlfUUlfVk9MRE9XTglLRVlfVk9MVU1FRE9XTgotI2RlZmluZSBLRVlfUUlfRk4JS0VZX0xFRlRDVFJMCi0KLXN0YXRpYyBjb25zdCB1aW50MzJfdCBxaV9sYjYwX2tleW1hcFtdID0gewotCUtFWSgwLCAwLCBLRVlfRjEpLAkvKiBTMiAqLwotCUtFWSgwLCAxLCBLRVlfRjIpLAkvKiBTMyAqLwotCUtFWSgwLCAyLCBLRVlfRjMpLAkvKiBTNCAqLwotCUtFWSgwLCAzLCBLRVlfRjQpLAkvKiBTNSAqLwotCUtFWSgwLCA0LCBLRVlfRjUpLAkvKiBTNiAqLwotCUtFWSgwLCA1LCBLRVlfRjYpLAkvKiBTNyAqLwotCUtFWSgwLCA2LCBLRVlfRjcpLAkvKiBTOCAqLwotCi0JS0VZKDEsIDAsIEtFWV9RKSwJLyogUzEwICovCi0JS0VZKDEsIDEsIEtFWV9XKSwJLyogUzExICovCi0JS0VZKDEsIDIsIEtFWV9FKSwJLyogUzEyICovCi0JS0VZKDEsIDMsIEtFWV9SKSwJLyogUzEzICovCi0JS0VZKDEsIDQsIEtFWV9UKSwJLyogUzE0ICovCi0JS0VZKDEsIDUsIEtFWV9ZKSwJLyogUzE1ICovCi0JS0VZKDEsIDYsIEtFWV9VKSwJLyogUzE2ICovCi0JS0VZKDEsIDcsIEtFWV9JKSwJLyogUzE3ICovCi0JS0VZKDIsIDAsIEtFWV9BKSwJLyogUzE4ICovCi0JS0VZKDIsIDEsIEtFWV9TKSwJLyogUzE5ICovCi0JS0VZKDIsIDIsIEtFWV9EKSwJLyogUzIwICovCi0JS0VZKDIsIDMsIEtFWV9GKSwJLyogUzIxICovCi0JS0VZKDIsIDQsIEtFWV9HKSwJLyogUzIyICovCi0JS0VZKDIsIDUsIEtFWV9IKSwJLyogUzIzICovCi0JS0VZKDIsIDYsIEtFWV9KKSwJLyogUzI0ICovCi0JS0VZKDIsIDcsIEtFWV9LKSwJLyogUzI1ICovCi0JS0VZKDMsIDAsIEtFWV9FU0MpLAkvKiBTMjYgKi8KLQlLRVkoMywgMSwgS0VZX1opLAkvKiBTMjcgKi8KLQlLRVkoMywgMiwgS0VZX1gpLAkvKiBTMjggKi8KLQlLRVkoMywgMywgS0VZX0MpLAkvKiBTMjkgKi8KLQlLRVkoMywgNCwgS0VZX1YpLAkvKiBTMzAgKi8KLQlLRVkoMywgNSwgS0VZX0IpLAkvKiBTMzEgKi8KLQlLRVkoMywgNiwgS0VZX04pLAkvKiBTMzIgKi8KLQlLRVkoMywgNywgS0VZX00pLAkvKiBTMzMgKi8KLQlLRVkoNCwgMCwgS0VZX1RBQiksCS8qIFMzNCAqLwotCUtFWSg0LCAxLCBLRVlfQ0FQU0xPQ0spLAkvKiBTMzUgKi8KLQlLRVkoNCwgMiwgS0VZX0JBQ0tTTEFTSCksCS8qIFMzNiAqLwotCUtFWSg0LCAzLCBLRVlfQVBPU1RST1BIRSksCS8qIFMzNyAqLwotCUtFWSg0LCA0LCBLRVlfQ09NTUEpLAkvKiBTMzggKi8KLQlLRVkoNCwgNSwgS0VZX0RPVCksCS8qIFMzOSAqLwotCUtFWSg0LCA2LCBLRVlfU0xBU0gpLAkvKiBTNDAgKi8KLQlLRVkoNCwgNywgS0VZX1VQKSwJLyogUzQxICovCi0JS0VZKDUsIDAsIEtFWV9PKSwJLyogUzQyICovCi0JS0VZKDUsIDEsIEtFWV9MKSwJLyogUzQzICovCi0JS0VZKDUsIDIsIEtFWV9FUVVBTCksCS8qIFM0NCAqLwotCUtFWSg1LCAzLCBLRVlfUUlfVVBSRUQpLAkvKiBTNDUgKi8KLQlLRVkoNSwgNCwgS0VZX1NQQUNFKSwJLyogUzQ2ICovCi0JS0VZKDUsIDUsIEtFWV9RSV9RSSksCS8qIFM0NyAqLwotCUtFWSg1LCA2LCBLRVlfUklHSFRDVFJMKSwJLyogUzQ4ICovCi0JS0VZKDUsIDcsIEtFWV9MRUZUKSwJLyogUzQ5ICovCi0JS0VZKDYsIDAsIEtFWV9GOCksCS8qIFM1MCAqLwotCUtFWSg2LCAxLCBLRVlfUCksCS8qIFM1MSAqLwotCUtFWSg2LCAyLCBLRVlfQkFDS1NQQUNFKSwvKiBTNTIgKi8KLQlLRVkoNiwgMywgS0VZX0VOVEVSKSwJLyogUzUzICovCi0JS0VZKDYsIDQsIEtFWV9RSV9WT0xVUCksCS8qIFM1NCAqLwotCUtFWSg2LCA1LCBLRVlfUUlfVk9MRE9XTiksCS8qIFM1NSAqLwotCUtFWSg2LCA2LCBLRVlfRE9XTiksCS8qIFM1NiAqLwotCUtFWSg2LCA3LCBLRVlfUklHSFQpLAkvKiBTNTcgKi8KLQotCUtFWSg3LCAwLCBLRVlfTEVGVFNISUZUKSwJLyogUzU4ICovCi0JS0VZKDcsIDEsIEtFWV9MRUZUQUxUKSwgLyogUzU5ICovCi0JS0VZKDcsIDIsIEtFWV9RSV9GTiksCS8qIFM2MCAqLwotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBtYXRyaXhfa2V5bWFwX2RhdGEgcWlfbGI2MF9rZXltYXBfZGF0YSA9IHsKLQkua2V5bWFwCQk9IHFpX2xiNjBfa2V5bWFwLAotCS5rZXltYXBfc2l6ZQk9IEFSUkFZX1NJWkUocWlfbGI2MF9rZXltYXApLAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBxaV9sYjYwX2tleXBhZF9jb2xzW10gPSB7Ci0JUUlfTEI2MF9HUElPX0tFWU9VVCgwKSwKLQlRSV9MQjYwX0dQSU9fS0VZT1VUKDEpLAotCVFJX0xCNjBfR1BJT19LRVlPVVQoMiksCi0JUUlfTEI2MF9HUElPX0tFWU9VVCgzKSwKLQlRSV9MQjYwX0dQSU9fS0VZT1VUKDQpLAotCVFJX0xCNjBfR1BJT19LRVlPVVQoNSksCi0JUUlfTEI2MF9HUElPX0tFWU9VVCg2KSwKLQlRSV9MQjYwX0dQSU9fS0VZT1VUKDcpLAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBxaV9sYjYwX2tleXBhZF9yb3dzW10gPSB7Ci0JUUlfTEI2MF9HUElPX0tFWUlOKDApLAotCVFJX0xCNjBfR1BJT19LRVlJTigxKSwKLQlRSV9MQjYwX0dQSU9fS0VZSU4oMiksCi0JUUlfTEI2MF9HUElPX0tFWUlOKDMpLAotCVFJX0xCNjBfR1BJT19LRVlJTig0KSwKLQlRSV9MQjYwX0dQSU9fS0VZSU4oNSksCi0JUUlfTEI2MF9HUElPX0tFWUlOKDYpLAotCVFJX0xCNjBfR1BJT19LRVlJTjgsCi19OwotCi1zdGF0aWMgc3RydWN0IG1hdHJpeF9rZXlwYWRfcGxhdGZvcm1fZGF0YSBxaV9sYjYwX3BkYXRhID0gewotCS5rZXltYXBfZGF0YSA9ICZxaV9sYjYwX2tleW1hcF9kYXRhLAotCS5jb2xfZ3Bpb3MJPSBxaV9sYjYwX2tleXBhZF9jb2xzLAotCS5yb3dfZ3Bpb3MJPSBxaV9sYjYwX2tleXBhZF9yb3dzLAotCS5udW1fY29sX2dwaW9zCT0gQVJSQVlfU0laRShxaV9sYjYwX2tleXBhZF9jb2xzKSwKLQkubnVtX3Jvd19ncGlvcwk9IEFSUkFZX1NJWkUocWlfbGI2MF9rZXlwYWRfcm93cyksCi0JLmNvbF9zY2FuX2RlbGF5X3VzCT0gMTAsCi0JLmRlYm91bmNlX21zCQk9IDEwLAotCS53YWtldXAJCQk9IDEsCi0JLmFjdGl2ZV9sb3cJCT0gMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHFpX2xiNjBfa2V5cGFkID0gewotCS5uYW1lCQk9ICJtYXRyaXgta2V5cGFkIiwKLQkuaWQJCT0gLTEsCi0JLmRldgkJPSB7Ci0JCS5wbGF0Zm9ybV9kYXRhID0gJnFpX2xiNjBfcGRhdGEsCi0JfSwKLX07Ci0KLS8qIERpc3BsYXkgKi8KLXN0YXRpYyBzdHJ1Y3QgZmJfdmlkZW9tb2RlIHFpX2xiNjBfdmlkZW9fbW9kZXNbXSA9IHsKLQl7Ci0JCS5uYW1lID0gIjMyMHgyNDAiLAotCQkueHJlcyA9IDMyMCwKLQkJLnlyZXMgPSAyNDAsCi0JCS5yZWZyZXNoID0gMzAsCi0JCS5sZWZ0X21hcmdpbiA9IDE0MCwKLQkJLnJpZ2h0X21hcmdpbiA9IDI3MywKLQkJLnVwcGVyX21hcmdpbiA9IDIwLAotCQkubG93ZXJfbWFyZ2luID0gMiwKLQkJLmhzeW5jX2xlbiA9IDEsCi0JCS52c3luY19sZW4gPSAxLAotCQkuc3luYyA9IDAsCi0JCS52bW9kZSA9IEZCX1ZNT0RFX05PTklOVEVSTEFDRUQsCi0JfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgano0NzQwX2ZiX3BsYXRmb3JtX2RhdGEgcWlfbGI2MF9mYl9wZGF0YSA9IHsKLQkud2lkdGgJCT0gNjAsCi0JLmhlaWdodAkJPSA0NSwKLQkubnVtX21vZGVzCT0gQVJSQVlfU0laRShxaV9sYjYwX3ZpZGVvX21vZGVzKSwKLQkubW9kZXMJCT0gcWlfbGI2MF92aWRlb19tb2RlcywKLQkuYnBwCQk9IDI0LAotCS5sY2RfdHlwZQk9IEpaX0xDRF9UWVBFXzhCSVRfU0VSSUFMLAotCS5waXhjbGtfZmFsbGluZ19lZGdlID0gMSwKLX07Ci0KLXN0cnVjdCBzcGlfZ3Bpb19wbGF0Zm9ybV9kYXRhIHFpX2xiNjBfc3BpZ3Bpb19wbGF0Zm9ybV9kYXRhID0gewotCS5udW1fY2hpcHNlbGVjdCA9IDEsCi19OwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBxaV9sYjYwX3NwaWdwaW9fZGV2aWNlID0gewotCS5uYW1lID0gInNwaV9ncGlvIiwKLQkuaWQgICA9IDEsCi0JLmRldiA9IHsKLQkJLnBsYXRmb3JtX2RhdGEgPSAmcWlfbGI2MF9zcGlncGlvX3BsYXRmb3JtX2RhdGEsCi0JfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgZ3Bpb2RfbG9va3VwX3RhYmxlIHFpX2xiNjBfc3BpZ3Bpb19ncGlvX3RhYmxlID0gewotCS5kZXZfaWQgICAgICAgICA9ICJzcGlfZ3BpbyIsCi0JLnRhYmxlICAgICAgICAgID0gewotCQlHUElPX0xPT0tVUCgiR1BJT0MiLCAyMywKLQkJCSAgICAic2NrIiwgR1BJT19BQ1RJVkVfSElHSCksCi0JCUdQSU9fTE9PS1VQKCJHUElPQyIsIDIyLAotCQkJICAgICJtb3NpIiwgR1BJT19BQ1RJVkVfSElHSCksCi0JCUdQSU9fTE9PS1VQKCJHUElPQyIsIDIxLAotCQkJICAgICJjcyIsIEdQSU9fQUNUSVZFX0hJR0gpLAotCQl7IH0sCi0JfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gcWlfbGI2MF9zcGlfYm9hcmRfaW5mb1tdID0gewotCXsKLQkJLm1vZGFsaWFzID0gImlsaTg5NjAiLAotCQkuY2hpcF9zZWxlY3QgPSAwLAotCQkuYnVzX251bSA9IDEsCi0JCS5tYXhfc3BlZWRfaHogPSAzMCAqIDEwMDAsCi0JCS5tb2RlID0gU1BJXzNXSVJFLAotCX0sCi19OwotCi0vKiBCYXR0ZXJ5ICovCi1zdGF0aWMgc3RydWN0IGp6X2JhdHRlcnlfcGxhdGZvcm1fZGF0YSBxaV9sYjYwX2JhdHRlcnlfcGRhdGEgPSB7Ci0JLmdwaW9fY2hhcmdlID0JSlpfR1BJT19QT1JUQygyNyksCi0JLmdwaW9fY2hhcmdlX2FjdGl2ZV9sb3cgPSAxLAotCS5pbmZvID0gewotCQkubmFtZSA9ICJiYXR0ZXJ5IiwKLQkJLnRlY2hub2xvZ3kgPSBQT1dFUl9TVVBQTFlfVEVDSE5PTE9HWV9MSVBPLAotCQkudm9sdGFnZV9tYXhfZGVzaWduID0gNDIwMDAwMCwKLQkJLnZvbHRhZ2VfbWluX2Rlc2lnbiA9IDM2MDAwMDAsCi0JfSwKLX07Ci0KLS8qIEdQSU8gS2V5OiBwb3dlciAqLwotc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIHFpX2xiNjBfZ3Bpb19rZXlzX2J1dHRvbnNbXSA9IHsKLQlbMF0gPSB7Ci0JCS5jb2RlCQk9IEtFWV9QT1dFUiwKLQkJLmdwaW8JCT0gSlpfR1BJT19QT1JURCgyOSksCi0JCS5hY3RpdmVfbG93CT0gMSwKLQkJLmRlc2MJCT0gIlBvd2VyIiwKLQkJLndha2V1cAkJPSAxLAotCX0sCi19OwotCi1zdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIHFpX2xiNjBfZ3Bpb19rZXlzX2RhdGEgPSB7Ci0JLm5idXR0b25zID0gQVJSQVlfU0laRShxaV9sYjYwX2dwaW9fa2V5c19idXR0b25zKSwKLQkuYnV0dG9ucyA9IHFpX2xiNjBfZ3Bpb19rZXlzX2J1dHRvbnMsCi19OwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBxaV9sYjYwX2dwaW9fa2V5cyA9IHsKLQkubmFtZSA9ICJncGlvLWtleXMiLAotCS5pZCA9CS0xLAotCS5kZXYgPSB7Ci0JCS5wbGF0Zm9ybV9kYXRhID0gJnFpX2xiNjBfZ3Bpb19rZXlzX2RhdGEsCi0JfQotfTsKLQotc3RhdGljIHN0cnVjdCBqejQ3NDBfbW1jX3BsYXRmb3JtX2RhdGEgcWlfbGI2MF9tbWNfcGRhdGEgPSB7Ci0JLyogSW50ZW50aW9uYWxseSBsZWZ0IGJsYW5rICovCi19OwotCi1zdGF0aWMgc3RydWN0IGdwaW9kX2xvb2t1cF90YWJsZSBxaV9sYjYwX21tY19ncGlvX3RhYmxlID0gewotCS5kZXZfaWQgPSAiano0NzQwLW1tYy4wIiwKLQkudGFibGUgPSB7Ci0JCUdQSU9fTE9PS1VQKCJHUElPRCIsIDAsICJjZCIsIEdQSU9fQUNUSVZFX0hJR0gpLAotCQlHUElPX0xPT0tVUCgiR1BJT0QiLCAyLCAicG93ZXIiLCBHUElPX0FDVElWRV9MT1cpLAotCQl7IH0sCi0JfSwKLX07Ci0KLS8qIGJlZXBlciAqLwotc3RhdGljIHN0cnVjdCBwd21fbG9va3VwIHFpX2xiNjBfcHdtX2xvb2t1cFtdID0gewotCVBXTV9MT09LVVAoImp6NDc0MC1wd20iLCA0LCAicHdtLWJlZXBlciIsIE5VTEwsIDAsCi0JCSAgIFBXTV9QT0xBUklUWV9OT1JNQUwpLAotfTsKLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcWlfbGI2MF9wd21fYmVlcGVyID0gewotCS5uYW1lID0gInB3bS1iZWVwZXIiLAotCS5pZCA9IC0xLAotfTsKLQotLyogY2hhcmdlciAqLwotc3RhdGljIGNoYXIgKnFpX2xiNjBfYmF0dGVyaWVzW10gPSB7Ci0JImJhdHRlcnkiLAotfTsKLQotc3RhdGljIHN0cnVjdCBncGlvX2NoYXJnZXJfcGxhdGZvcm1fZGF0YSBxaV9sYjYwX2NoYXJnZXJfcGRhdGEgPSB7Ci0JLm5hbWUgPSAidXNiIiwKLQkudHlwZSA9IFBPV0VSX1NVUFBMWV9UWVBFX1VTQiwKLQkuZ3BpbyA9IEpaX0dQSU9fUE9SVEQoMjgpLAotCS5ncGlvX2FjdGl2ZV9sb3cgPSAxLAotCS5zdXBwbGllZF90byA9IHFpX2xiNjBfYmF0dGVyaWVzLAotCS5udW1fc3VwcGxpY2FudHMgPSBBUlJBWV9TSVpFKHFpX2xiNjBfYmF0dGVyaWVzKSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHFpX2xiNjBfY2hhcmdlcl9kZXZpY2UgPSB7Ci0JLm5hbWUgPSAiZ3Bpby1jaGFyZ2VyIiwKLQkuZGV2ID0gewotCQkucGxhdGZvcm1fZGF0YSA9ICZxaV9sYjYwX2NoYXJnZXJfcGRhdGEsCi0JfSwKLX07Ci0KLS8qIGF1ZGlvICovCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBxaV9sYjYwX2F1ZGlvX2RldmljZSA9IHsKLQkubmFtZSA9ICJxaS1sYjYwLWF1ZGlvIiwKLQkuaWQgPSAtMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgZ3Bpb2RfbG9va3VwX3RhYmxlIHFpX2xiNjBfYXVkaW9fZ3Bpb190YWJsZSA9IHsKLQkuZGV2X2lkID0gInFpLWxiNjAtYXVkaW8iLAotCS50YWJsZSA9IHsKLQkJR1BJT19MT09LVVAoIkdQSU9CIiwgMjksICJzbmQiLCAwKSwKLQkJR1BJT19MT09LVVAoIkdQSU9EIiwgNCwgImFtcCIsIDApLAotCQl7IH0sCi0JfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpqel9wbGF0Zm9ybV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKLQkmano0NzQwX3VkY19kZXZpY2UsCi0JJmp6NDc0MF91ZGNfeGNlaXZfZGV2aWNlLAotCSZqejQ3NDBfbW1jX2RldmljZSwKLQkmano0NzQwX25hbmRfZGV2aWNlLAotCSZxaV9sYjYwX2tleXBhZCwKLQkmcWlfbGI2MF9zcGlncGlvX2RldmljZSwKLQkmano0NzQwX2ZyYW1lYnVmZmVyX2RldmljZSwKLQkmano0NzQwX3BjbV9kZXZpY2UsCi0JJmp6NDc0MF9pMnNfZGV2aWNlLAotCSZqejQ3NDBfY29kZWNfZGV2aWNlLAotCSZqejQ3NDBfYWRjX2RldmljZSwKLQkmano0NzQwX3B3bV9kZXZpY2UsCi0JJmp6NDc0MF9kbWFfZGV2aWNlLAotCSZxaV9sYjYwX2dwaW9fa2V5cywKLQkmcWlfbGI2MF9wd21fYmVlcGVyLAotCSZxaV9sYjYwX2NoYXJnZXJfZGV2aWNlLAotCSZxaV9sYjYwX2F1ZGlvX2RldmljZSwKLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBsb25nIHBpbl9jZmdfYmlhc19kaXNhYmxlW10gPSB7Ci0JICAgIFBJTl9DT05GSUdfQklBU19ESVNBQkxFLAotfTsKLQotc3RhdGljIHN0cnVjdCBwaW5jdHJsX21hcCBwaW5fbWFwW10gX19pbml0ZGF0YSA9IHsKLQkvKiBOQU5EIHBpbiBjb25maWd1cmF0aW9uICovCi0JUElOX01BUF9NVVhfR1JPVVBfREVGQVVMVCgiano0NzQwLW5hbmQiLAotCQkJIjEwMDEwMDAwLnBpbi1jb250cm9sbGVyIiwgIm5hbmQtY3MxIiwgIm5hbmQiKSwKLQotCS8qIGZiZGV2IHBpbiBjb25maWd1cmF0aW9uICovCi0JUElOX01BUF9NVVhfR1JPVVAoImp6NDc0MC1mYiIsIFBJTkNUUkxfU1RBVEVfREVGQVVMVCwKLQkJCSIxMDAxMDAwMC5waW4tY29udHJvbGxlciIsICJsY2QtOGJpdCIsICJsY2QiKSwKLQlQSU5fTUFQX01VWF9HUk9VUCgiano0NzQwLWZiIiwgUElOQ1RSTF9TVEFURV9TTEVFUCwKLQkJCSIxMDAxMDAwMC5waW4tY29udHJvbGxlciIsICJsY2Qtbm8tcGlucyIsICJsY2QiKSwKLQotCS8qIE1NQyBwaW4gY29uZmlndXJhdGlvbiAqLwotCVBJTl9NQVBfTVVYX0dST1VQX0RFRkFVTFQoImp6NDc0MC1tbWMuMCIsCi0JCQkiMTAwMTAwMDAucGluLWNvbnRyb2xsZXIiLCAibW1jLTFiaXQiLCAibW1jIiksCi0JUElOX01BUF9NVVhfR1JPVVBfREVGQVVMVCgiano0NzQwLW1tYy4wIiwKLQkJCSIxMDAxMDAwMC5waW4tY29udHJvbGxlciIsICJtbWMtNGJpdCIsICJtbWMiKSwKLQlQSU5fTUFQX0NPTkZJR1NfUElOX0RFRkFVTFQoImp6NDc0MC1tbWMuMCIsCi0JCQkiMTAwMTAwMDAucGluLWNvbnRyb2xsZXIiLCAiUEQwIiwgcGluX2NmZ19iaWFzX2Rpc2FibGUpLAotCVBJTl9NQVBfQ09ORklHU19QSU5fREVGQVVMVCgiano0NzQwLW1tYy4wIiwKLQkJCSIxMDAxMDAwMC5waW4tY29udHJvbGxlciIsICJQRDIiLCBwaW5fY2ZnX2JpYXNfZGlzYWJsZSksCi0KLQkvKiBQV00gcGluIGNvbmZpZ3VyYXRpb24gKi8KLQlQSU5fTUFQX01VWF9HUk9VUF9ERUZBVUxUKCJqejQ3NDAtcHdtIiwKLQkJCSIxMDAxMDAwMC5waW4tY29udHJvbGxlciIsICJwd200IiwgInB3bTQiKSwKLX07Ci0KLQotc3RhdGljIGludCBfX2luaXQgcWlfbGI2MF9pbml0X3BsYXRmb3JtX2RldmljZXModm9pZCkKLXsKLQlqejQ3NDBfZnJhbWVidWZmZXJfZGV2aWNlLmRldi5wbGF0Zm9ybV9kYXRhID0gJnFpX2xiNjBfZmJfcGRhdGE7Ci0Jano0NzQwX25hbmRfZGV2aWNlLmRldi5wbGF0Zm9ybV9kYXRhID0gJnFpX2xiNjBfbmFuZF9wZGF0YTsKLQlqejQ3NDBfYWRjX2RldmljZS5kZXYucGxhdGZvcm1fZGF0YSA9ICZxaV9sYjYwX2JhdHRlcnlfcGRhdGE7Ci0Jano0NzQwX21tY19kZXZpY2UuZGV2LnBsYXRmb3JtX2RhdGEgPSAmcWlfbGI2MF9tbWNfcGRhdGE7Ci0KLQlncGlvZF9hZGRfbG9va3VwX3RhYmxlKCZxaV9sYjYwX2F1ZGlvX2dwaW9fdGFibGUpOwotCWdwaW9kX2FkZF9sb29rdXBfdGFibGUoJnFpX2xiNjBfbmFuZF9ncGlvX3RhYmxlKTsKLQlncGlvZF9hZGRfbG9va3VwX3RhYmxlKCZxaV9sYjYwX3NwaWdwaW9fZ3Bpb190YWJsZSk7Ci0JZ3Bpb2RfYWRkX2xvb2t1cF90YWJsZSgmcWlfbGI2MF9tbWNfZ3Bpb190YWJsZSk7Ci0KLQlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhxaV9sYjYwX3NwaV9ib2FyZF9pbmZvLAotCQkJCUFSUkFZX1NJWkUocWlfbGI2MF9zcGlfYm9hcmRfaW5mbykpOwotCi0JcHdtX2FkZF90YWJsZShxaV9sYjYwX3B3bV9sb29rdXAsIEFSUkFZX1NJWkUocWlfbGI2MF9wd21fbG9va3VwKSk7Ci0JcGluY3RybF9yZWdpc3Rlcl9tYXBwaW5ncyhwaW5fbWFwLCBBUlJBWV9TSVpFKHBpbl9tYXApKTsKLQotCXJldHVybiBwbGF0Zm9ybV9hZGRfZGV2aWNlcyhqel9wbGF0Zm9ybV9kZXZpY2VzLAotCQkJCQlBUlJBWV9TSVpFKGp6X3BsYXRmb3JtX2RldmljZXMpKTsKLQotfQotCi1zdGF0aWMgaW50IF9faW5pdCBxaV9sYjYwX2JvYXJkX3NldHVwKHZvaWQpCi17Ci0JcHJpbnRrKEtFUk5fSU5GTyAiUWkgSGFyZHdhcmUgSlo0NzQwIFFJIExCNjAgc2V0dXBcbiIpOwotCi0JaWYgKHFpX2xiNjBfaW5pdF9wbGF0Zm9ybV9kZXZpY2VzKCkpCi0JCXBhbmljKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBwbGF0Zm9ybSBkZXZpY2VzIik7Ci0KLQlyZXR1cm4gMDsKLX0KLWFyY2hfaW5pdGNhbGwocWlfbGI2MF9ib2FyZF9zZXR1cCk7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvano0NzQwL3BsYXRmb3JtLmMgYi9hcmNoL21pcHMvano0NzQwL3BsYXRmb3JtLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3NGM5OWYuLjAwMDAwMDAKLS0tIGEvYXJjaC9taXBzL2p6NDc0MC9wbGF0Zm9ybS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjUwICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCi0vKgotICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4KLSAqICBKWjQ3NDAgcGxhdGZvcm0gZGV2aWNlcwotICovCi0KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9yZXNvdXJjZS5oPgotCi0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KLQotI2luY2x1ZGUgPGxpbnV4L3VzYi9tdXNiLmg+Ci0KLSNpbmNsdWRlIDxhc20vbWFjaC1qejQ3NDAvcGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxhc20vbWFjaC1qejQ3NDAvYmFzZS5oPgotI2luY2x1ZGUgPGFzbS9tYWNoLWp6NDc0MC9pcnEuaD4KLQotI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2VyaWFsXzgyNTAuaD4KLQotLyogVVNCIERldmljZSBDb250cm9sbGVyICovCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF91ZGNfeGNlaXZfZGV2aWNlID0gewotCS5uYW1lID0gInVzYl9waHlfZ2VuZXJpYyIsCi0JLmlkICAgPSAwLAotfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBqejQ3NDBfdWRjX3Jlc291cmNlc1tdID0gewotCVswXSA9IHsKLQkJLnN0YXJ0ID0gSlo0NzQwX1VEQ19CQVNFX0FERFIsCi0JCS5lbmQgICA9IEpaNDc0MF9VRENfQkFTRV9BRERSICsgMHgxMDAwMCAtIDEsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JWzFdID0gewotCQkuc3RhcnQgPSBKWjQ3NDBfSVJRX1VEQywKLQkJLmVuZCAgID0gSlo0NzQwX0lSUV9VREMsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAotCQkubmFtZSAgPSAibWMiLAotCX0sCi19OwotCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF91ZGNfZGV2aWNlID0gewotCS5uYW1lID0gIm11c2Itano0NzQwIiwKLQkuaWQgICA9IC0xLAotCS5kZXYgID0gewotCQkuZG1hX21hc2sgICAgICAgICAgPSAmano0NzQwX3VkY19kZXZpY2UuZGV2LmNvaGVyZW50X2RtYV9tYXNrLAotCQkuY29oZXJlbnRfZG1hX21hc2sgPSBETUFfQklUX01BU0soMzIpLAotCX0sCi0JLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKGp6NDc0MF91ZGNfcmVzb3VyY2VzKSwKLQkucmVzb3VyY2UgICAgICA9IGp6NDc0MF91ZGNfcmVzb3VyY2VzLAotfTsKLQotLyogTU1DL1NEIGNvbnRyb2xsZXIgKi8KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugano0NzQwX21tY19yZXNvdXJjZXNbXSA9IHsKLQl7Ci0JCS5zdGFydAk9IEpaNDc0MF9NU0NfQkFTRV9BRERSLAotCQkuZW5kCT0gSlo0NzQwX01TQ19CQVNFX0FERFIgKyAweDEwMDAgLSAxLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLnN0YXJ0CT0gSlo0NzQwX0lSUV9NU0MsCi0JCS5lbmQJPSBKWjQ3NDBfSVJRX01TQywKLQkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCi0JfQotfTsKLQotc3RydWN0IHBsYXRmb3JtX2RldmljZSBqejQ3NDBfbW1jX2RldmljZSA9IHsKLQkubmFtZQkJPSAiano0NzQwLW1tYyIsCi0JLmlkCQk9IDAsCi0JLmRldiA9IHsKLQkJLmRtYV9tYXNrID0gJmp6NDc0MF9tbWNfZGV2aWNlLmRldi5jb2hlcmVudF9kbWFfbWFzaywKLQkJLmNvaGVyZW50X2RtYV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKSwKLQl9LAotCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShqejQ3NDBfbW1jX3Jlc291cmNlcyksCi0JLnJlc291cmNlCT0gano0NzQwX21tY19yZXNvdXJjZXMsCi19OwotCi0vKiBJMkMgY29udHJvbGxlciAqLwotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBqejQ3NDBfaTJjX3Jlc291cmNlc1tdID0gewotCXsKLQkJLnN0YXJ0CT0gSlo0NzQwX0kyQ19CQVNFX0FERFIsCi0JCS5lbmQJPSBKWjQ3NDBfSTJDX0JBU0VfQUREUiArIDB4MTAwMCAtIDEsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JewotCQkuc3RhcnQJPSBKWjQ3NDBfSVJRX0kyQywKLQkJLmVuZAk9IEpaNDc0MF9JUlFfSTJDLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKLQl9Ci19OwotCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF9pMmNfZGV2aWNlID0gewotCS5uYW1lCQk9ICJqejQ3NDAtaTJjIiwKLQkuaWQJCT0gMCwKLQkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoano0NzQwX2kyY19yZXNvdXJjZXMpLAotCS5yZXNvdXJjZQk9IGp6NDc0MF9pMmNfcmVzb3VyY2VzLAotfTsKLQotLyogTkFORCBjb250cm9sbGVyICovCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGp6NDc0MF9uYW5kX3Jlc291cmNlc1tdID0gewotCXsKLQkJLm5hbWUJPSAibW1pbyIsCi0JCS5zdGFydAk9IEpaNDc0MF9FTUNfQkFTRV9BRERSLAotCQkuZW5kCT0gSlo0NzQwX0VNQ19CQVNFX0FERFIgKyAweDEwMDAgLSAxLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLm5hbWUJPSAiYmFuazEiLAotCQkuc3RhcnQJPSAweDE4MDAwMDAwLAotCQkuZW5kCT0gMHgxODBDMDAwMCAtIDEsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JewotCQkubmFtZQk9ICJiYW5rMiIsCi0JCS5zdGFydAk9IDB4MTQwMDAwMDAsCi0JCS5lbmQJPSAweDE0MEMwMDAwIC0gMSwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQl7Ci0JCS5uYW1lCT0gImJhbmszIiwKLQkJLnN0YXJ0CT0gMHgwQzAwMDAwMCwKLQkJLmVuZAk9IDB4MEMwQzAwMDAgLSAxLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLm5hbWUJPSAiYmFuazQiLAotCQkuc3RhcnQJPSAweDA4MDAwMDAwLAotCQkuZW5kCT0gMHgwODBDMDAwMCAtIDEsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi19OwotCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF9uYW5kX2RldmljZSA9IHsKLQkubmFtZSA9ICJqejQ3NDAtbmFuZCIsCi0JLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKGp6NDc0MF9uYW5kX3Jlc291cmNlcyksCi0JLnJlc291cmNlID0gano0NzQwX25hbmRfcmVzb3VyY2VzLAotfTsKLQotLyogTENEIGNvbnRyb2xsZXIgKi8KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugano0NzQwX2ZyYW1lYnVmZmVyX3Jlc291cmNlc1tdID0gewotCXsKLQkJLnN0YXJ0CT0gSlo0NzQwX0xDRF9CQVNFX0FERFIsCi0JCS5lbmQJPSBKWjQ3NDBfTENEX0JBU0VfQUREUiArIDB4MTAwMCAtIDEsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi19OwotCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF9mcmFtZWJ1ZmZlcl9kZXZpY2UgPSB7Ci0JLm5hbWUJCT0gImp6NDc0MC1mYiIsCi0JLmlkCQk9IC0xLAotCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShqejQ3NDBfZnJhbWVidWZmZXJfcmVzb3VyY2VzKSwKLQkucmVzb3VyY2UJPSBqejQ3NDBfZnJhbWVidWZmZXJfcmVzb3VyY2VzLAotCS5kZXYgPSB7Ci0JCS5kbWFfbWFzayA9ICZqejQ3NDBfZnJhbWVidWZmZXJfZGV2aWNlLmRldi5jb2hlcmVudF9kbWFfbWFzaywKLQkJLmNvaGVyZW50X2RtYV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKSwKLQl9LAotfTsKLQotLyogSTJTIGNvbnRyb2xsZXIgKi8KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugano0NzQwX2kyc19yZXNvdXJjZXNbXSA9IHsKLQl7Ci0JCS5zdGFydAk9IEpaNDc0MF9BSUNfQkFTRV9BRERSLAotCQkuZW5kCT0gSlo0NzQwX0FJQ19CQVNFX0FERFIgKyAweDM4IC0gMSwKLQkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLX07Ci0KLXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugano0NzQwX2kyc19kZXZpY2UgPSB7Ci0JLm5hbWUJCT0gImp6NDc0MC1pMnMiLAotCS5pZAkJPSAtMSwKLQkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoano0NzQwX2kyc19yZXNvdXJjZXMpLAotCS5yZXNvdXJjZQk9IGp6NDc0MF9pMnNfcmVzb3VyY2VzLAotfTsKLQotLyogUENNICovCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF9wY21fZGV2aWNlID0gewotCS5uYW1lCQk9ICJqejQ3NDAtcGNtLWF1ZGlvIiwKLQkuaWQJCT0gLTEsCi19OwotCi0vKiBDb2RlYyAqLwotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBqejQ3NDBfY29kZWNfcmVzb3VyY2VzW10gPSB7Ci0JewotCQkuc3RhcnQJPSBKWjQ3NDBfQUlDX0JBU0VfQUREUiArIDB4ODAsCi0JCS5lbmQJPSBKWjQ3NDBfQUlDX0JBU0VfQUREUiArIDB4ODggLSAxLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotfTsKLQotc3RydWN0IHBsYXRmb3JtX2RldmljZSBqejQ3NDBfY29kZWNfZGV2aWNlID0gewotCS5uYW1lCQk9ICJqejQ3NDAtY29kZWMiLAotCS5pZAkJPSAtMSwKLQkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoano0NzQwX2NvZGVjX3Jlc291cmNlcyksCi0JLnJlc291cmNlCT0gano0NzQwX2NvZGVjX3Jlc291cmNlcywKLX07Ci0KLS8qIEFEQyBjb250cm9sbGVyICovCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGp6NDc0MF9hZGNfcmVzb3VyY2VzW10gPSB7Ci0JewotCQkuc3RhcnQJPSBKWjQ3NDBfU0FEQ19CQVNFX0FERFIsCi0JCS5lbmQJPSBKWjQ3NDBfU0FEQ19CQVNFX0FERFIgKyAweDMwLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLnN0YXJ0CT0gSlo0NzQwX0lSUV9TQURDLAotCQkuZW5kCT0gSlo0NzQwX0lSUV9TQURDLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKLQl9LAotCXsKLQkJLnN0YXJ0CT0gSlo0NzQwX0lSUV9BRENfQkFTRSwKLQkJLmVuZAk9IEpaNDc0MF9JUlFfQURDX0JBU0UsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAotCX0sCi19OwotCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF9hZGNfZGV2aWNlID0gewotCS5uYW1lCQk9ICJqejQ3NDAtYWRjIiwKLQkuaWQJCT0gLTEsCi0JLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGp6NDc0MF9hZGNfcmVzb3VyY2VzKSwKLQkucmVzb3VyY2UJPSBqejQ3NDBfYWRjX3Jlc291cmNlcywKLX07Ci0KLS8qIFBXTSAqLwotc3RydWN0IHBsYXRmb3JtX2RldmljZSBqejQ3NDBfcHdtX2RldmljZSA9IHsKLQkubmFtZSA9ICJqejQ3NDAtcHdtIiwKLQkuaWQgICA9IC0xLAotfTsKLQotLyogRE1BICovCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGp6NDc0MF9kbWFfcmVzb3VyY2VzW10gPSB7Ci0JewotCQkuc3RhcnQJPSBKWjQ3NDBfRE1BQ19CQVNFX0FERFIsCi0JCS5lbmQJPSBKWjQ3NDBfRE1BQ19CQVNFX0FERFIgKyAweDQwMCAtIDEsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JewotCQkuc3RhcnQJPSBKWjQ3NDBfSVJRX0RNQUMsCi0JCS5lbmQJPSBKWjQ3NDBfSVJRX0RNQUMsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAotCX0sCi19OwotCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGp6NDc0MF9kbWFfZGV2aWNlID0gewotCS5uYW1lCQk9ICJqejQ3NDAtZG1hIiwKLQkuaWQJCT0gLTEsCi0JLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGp6NDc0MF9kbWFfcmVzb3VyY2VzKSwKLQkucmVzb3VyY2UJPSBqejQ3NDBfZG1hX3Jlc291cmNlcywKLX07CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvano0NzQwL3Byb20uYyBiL2FyY2gvbWlwcy9qejQ3NDAvcHJvbS5jCmluZGV4IDg4ZjMzYWYuLmZmNDU1NWMgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9qejQ3NDAvcHJvbS5jCisrKyBiL2FyY2gvbWlwcy9qejQ3NDAvcHJvbS5jCkBAIC00LDE1ICs0LDEwIEBACiAgKiAgSlo0NzQwIFNvQyBwcm9tIGNvZGUKICAqLwogCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgotCi0jaW5jbHVkZSA8bGludXgvc2VyaWFsX3JlZy5oPgogCiAjaW5jbHVkZSA8YXNtL2Jvb3RpbmZvLmg+CiAjaW5jbHVkZSA8YXNtL2Z3L2Z3Lmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gtano0NzQwL2Jhc2UuaD4KIAogdm9pZCBfX2luaXQgcHJvbV9pbml0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvano0NzQwL3NldHVwLmMgYi9hcmNoL21pcHMvano0NzQwL3NldHVwLmMKaW5kZXggNDI2NGVhZi4uZGM4ZWUyMSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2p6NDc0MC9zZXR1cC5jCisrKyBiL2FyY2gvbWlwcy9qejQ3NDAvc2V0dXAuYwpAQCAtMTUsMTAgKzE1LDkgQEAKICNpbmNsdWRlIDxhc20vYm9vdGluZm8uaD4KICNpbmNsdWRlIDxhc20vcHJvbS5oPgogCi0jaW5jbHVkZSA8YXNtL21hY2gtano0NzQwL2Jhc2UuaD4KLQogI2luY2x1ZGUgInJlc2V0LmgiCiAKKyNkZWZpbmUgSlo0NzQwX0VNQ19CQVNFX0FERFIgMHgxMzAxMDAwMAogCiAjZGVmaW5lIEpaNDc0MF9FTUNfU0RSQU1fQ1RSTCAweDgwCiAKQEAgLTQ1LDYgKzQ0LDggQEAgc3RhdGljIHZvaWQgX19pbml0IGp6NDc0MF9kZXRlY3RfbWVtKHZvaWQpCiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBnZXRfYm9hcmRfbWFjaF90eXBlKGNvbnN0IHZvaWQgKmZkdCkKIHsKKwlpZiAoIWZkdF9ub2RlX2NoZWNrX2NvbXBhdGlibGUoZmR0LCAwLCAiaW5nZW5pYyx4MTAwMCIpKQorCQlyZXR1cm4gTUFDSF9JTkdFTklDX1gxMDAwOwogCWlmICghZmR0X25vZGVfY2hlY2tfY29tcGF0aWJsZShmZHQsIDAsICJpbmdlbmljLGp6NDc4MCIpKQogCQlyZXR1cm4gTUFDSF9JTkdFTklDX0paNDc4MDsKIAlpZiAoIWZkdF9ub2RlX2NoZWNrX2NvbXBhdGlibGUoZmR0LCAwLCAiaW5nZW5pYyxqejQ3NzAiKSkKQEAgLTg1LDYgKzg2LDggQEAgdm9pZCBfX2luaXQgZGV2aWNlX3RyZWVfaW5pdCh2b2lkKQogY29uc3QgY2hhciAqZ2V0X3N5c3RlbV90eXBlKHZvaWQpCiB7CiAJc3dpdGNoIChtaXBzX21hY2h0eXBlKSB7CisJY2FzZSBNQUNIX0lOR0VOSUNfWDEwMDA6CisJCXJldHVybiAiWDEwMDAiOwogCWNhc2UgTUFDSF9JTkdFTklDX0paNDc4MDoKIAkJcmV0dXJuICJKWjQ3ODAiOwogCWNhc2UgTUFDSF9JTkdFTklDX0paNDc3MDoKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9qejQ3NDAvdGltZS5jIGIvYXJjaC9taXBzL2p6NDc0MC90aW1lLmMKaW5kZXggY2I3NjhlNS4uNTQ3Njg5OSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2p6NDc0MC90aW1lLmMKKysrIGIvYXJjaC9taXBzL2p6NDc0MC90aW1lLmMKQEAgLTQsMTYxICs0LDE0IEBACiAgKiAgSlo0NzQwIHBsYXRmb3JtIHRpbWUgc3VwcG9ydAogICovCiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1lLmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KIAotI2luY2x1ZGUgPGxpbnV4L2Nsb2NrY2hpcHMuaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZF9jbG9jay5oPgotCi0jaW5jbHVkZSA8YXNtL21hY2gtano0NzQwL2lycS5oPgogI2luY2x1ZGUgPGFzbS9tYWNoLWp6NDc0MC90aW1lci5oPgotI2luY2x1ZGUgPGFzbS90aW1lLmg+Ci0KLSNkZWZpbmUgVElNRVJfQ0xPQ0tFVkVOVCAwCi0jZGVmaW5lIFRJTUVSX0NMT0NLU09VUkNFIDEKLQotc3RhdGljIHVpbnQxNl90IGp6NDc0MF9qaWZmaWVzX3Blcl90aWNrOwotCi1zdGF0aWMgdTY0IGp6NDc0MF9jbG9ja3NvdXJjZV9yZWFkKHN0cnVjdCBjbG9ja3NvdXJjZSAqY3MpCi17Ci0JcmV0dXJuIGp6NDc0MF90aW1lcl9nZXRfY291bnQoVElNRVJfQ0xPQ0tTT1VSQ0UpOwotfQotCi1zdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGp6NDc0MF9jbG9ja3NvdXJjZSA9IHsKLQkubmFtZSA9ICJqejQ3NDAtdGltZXIiLAotCS5yYXRpbmcgPSAyMDAsCi0JLnJlYWQgPSBqejQ3NDBfY2xvY2tzb3VyY2VfcmVhZCwKLQkubWFzayA9IENMT0NLU09VUkNFX01BU0soMTYpLAotCS5mbGFncyA9IENMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTLAotfTsKLQotc3RhdGljIHU2NCBub3RyYWNlIGp6NDc0MF9yZWFkX3NjaGVkX2Nsb2NrKHZvaWQpCi17Ci0JcmV0dXJuIGp6NDc0MF90aW1lcl9nZXRfY291bnQoVElNRVJfQ0xPQ0tTT1VSQ0UpOwotfQotCi1zdGF0aWMgaXJxcmV0dXJuX3Qgano0NzQwX2Nsb2NrZXZlbnRfaXJxKGludCBpcnEsIHZvaWQgKmRldmlkKQotewotCXN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmNkID0gZGV2aWQ7Ci0KLQlqejQ3NDBfdGltZXJfYWNrX2Z1bGwoVElNRVJfQ0xPQ0tFVkVOVCk7Ci0KLQlpZiAoIWNsb2NrZXZlbnRfc3RhdGVfcGVyaW9kaWMoY2QpKQotCQlqejQ3NDBfdGltZXJfZGlzYWJsZShUSU1FUl9DTE9DS0VWRU5UKTsKLQotCWNkLT5ldmVudF9oYW5kbGVyKGNkKTsKLQotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIGludCBqejQ3NDBfY2xvY2tldmVudF9zZXRfcGVyaW9kaWMoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQotewotCWp6NDc0MF90aW1lcl9zZXRfY291bnQoVElNRVJfQ0xPQ0tFVkVOVCwgMCk7Ci0Jano0NzQwX3RpbWVyX3NldF9wZXJpb2QoVElNRVJfQ0xPQ0tFVkVOVCwgano0NzQwX2ppZmZpZXNfcGVyX3RpY2spOwotCWp6NDc0MF90aW1lcl9pcnFfZnVsbF9lbmFibGUoVElNRVJfQ0xPQ0tFVkVOVCk7Ci0Jano0NzQwX3RpbWVyX2VuYWJsZShUSU1FUl9DTE9DS0VWRU5UKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGp6NDc0MF9jbG9ja2V2ZW50X3Jlc3VtZShzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCi17Ci0Jano0NzQwX3RpbWVyX2lycV9mdWxsX2VuYWJsZShUSU1FUl9DTE9DS0VWRU5UKTsKLQlqejQ3NDBfdGltZXJfZW5hYmxlKFRJTUVSX0NMT0NLRVZFTlQpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgano0NzQwX2Nsb2NrZXZlbnRfc2h1dGRvd24oc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQotewotCWp6NDc0MF90aW1lcl9kaXNhYmxlKFRJTUVSX0NMT0NLRVZFTlQpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgano0NzQwX2Nsb2NrZXZlbnRfc2V0X25leHQodW5zaWduZWQgbG9uZyBldnQsCi0Jc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqY2QpCi17Ci0Jano0NzQwX3RpbWVyX3NldF9jb3VudChUSU1FUl9DTE9DS0VWRU5ULCAwKTsKLQlqejQ3NDBfdGltZXJfc2V0X3BlcmlvZChUSU1FUl9DTE9DS0VWRU5ULCBldnQpOwotCWp6NDc0MF90aW1lcl9lbmFibGUoVElNRVJfQ0xPQ0tFVkVOVCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2Ugano0NzQwX2Nsb2NrZXZlbnQgPSB7Ci0JLm5hbWUgPSAiano0NzQwLXRpbWVyIiwKLQkuZmVhdHVyZXMgPSBDTE9DS19FVlRfRkVBVF9QRVJJT0RJQyB8IENMT0NLX0VWVF9GRUFUX09ORVNIT1QsCi0JLnNldF9uZXh0X2V2ZW50ID0gano0NzQwX2Nsb2NrZXZlbnRfc2V0X25leHQsCi0JLnNldF9zdGF0ZV9zaHV0ZG93biA9IGp6NDc0MF9jbG9ja2V2ZW50X3NodXRkb3duLAotCS5zZXRfc3RhdGVfcGVyaW9kaWMgPSBqejQ3NDBfY2xvY2tldmVudF9zZXRfcGVyaW9kaWMsCi0JLnNldF9zdGF0ZV9vbmVzaG90ID0gano0NzQwX2Nsb2NrZXZlbnRfc2h1dGRvd24sCi0JLnRpY2tfcmVzdW1lID0gano0NzQwX2Nsb2NrZXZlbnRfcmVzdW1lLAotCS5yYXRpbmcgPSAyMDAsCi0jaWZkZWYgQ09ORklHX01BQ0hfSlo0NzQwCi0JLmlycSA9IEpaNDc0MF9JUlFfVENVMCwKLSNlbmRpZgotI2lmIGRlZmluZWQoQ09ORklHX01BQ0hfSlo0NzcwKSB8fCBkZWZpbmVkKENPTkZJR19NQUNIX0paNDc4MCkKLQkuaXJxID0gSlo0NzgwX0lSUV9UQ1UyLAotI2VuZGlmCi19OwotCi1zdGF0aWMgc3RydWN0IGlycWFjdGlvbiB0aW1lcl9pcnFhY3Rpb24gPSB7Ci0JLmhhbmRsZXIJPSBqejQ3NDBfY2xvY2tldmVudF9pcnEsCi0JLmZsYWdzCQk9IElSUUZfUEVSQ1BVIHwgSVJRRl9USU1FUiwKLQkubmFtZQkJPSAiano0NzQwLXRpbWVyaXJxIiwKLQkuZGV2X2lkCQk9ICZqejQ3NDBfY2xvY2tldmVudCwKLX07CiAKIHZvaWQgX19pbml0IHBsYXRfdGltZV9pbml0KHZvaWQpCiB7Ci0JaW50IHJldDsKLQl1aW50MzJfdCBjbGtfcmF0ZTsKLQl1aW50MTZfdCBjdHJsOwotCXN0cnVjdCBjbGsgKmV4dF9jbGs7Ci0KIAlvZl9jbGtfaW5pdChOVUxMKTsKIAlqejQ3NDBfdGltZXJfaW5pdCgpOwotCi0JZXh0X2NsayA9IGNsa19nZXQoTlVMTCwgImV4dCIpOwotCWlmIChJU19FUlIoZXh0X2NsaykpCi0JCXBhbmljKCJ1bmFibGUgdG8gZ2V0IGV4dCBjbG9jayIpOwotCWNsa19yYXRlID0gY2xrX2dldF9yYXRlKGV4dF9jbGspID4+IDQ7Ci0JY2xrX3B1dChleHRfY2xrKTsKLQotCWp6NDc0MF9qaWZmaWVzX3Blcl90aWNrID0gRElWX1JPVU5EX0NMT1NFU1QoY2xrX3JhdGUsIEhaKTsKLQotCWNsb2NrZXZlbnRfc2V0X2Nsb2NrKCZqejQ3NDBfY2xvY2tldmVudCwgY2xrX3JhdGUpOwotCWp6NDc0MF9jbG9ja2V2ZW50Lm1pbl9kZWx0YV9ucyA9IGNsb2NrZXZlbnRfZGVsdGEybnMoMTAwLCAmano0NzQwX2Nsb2NrZXZlbnQpOwotCWp6NDc0MF9jbG9ja2V2ZW50Lm1pbl9kZWx0YV90aWNrcyA9IDEwMDsKLQlqejQ3NDBfY2xvY2tldmVudC5tYXhfZGVsdGFfbnMgPSBjbG9ja2V2ZW50X2RlbHRhMm5zKDB4ZmZmZiwgJmp6NDc0MF9jbG9ja2V2ZW50KTsKLQlqejQ3NDBfY2xvY2tldmVudC5tYXhfZGVsdGFfdGlja3MgPSAweGZmZmY7Ci0Jano0NzQwX2Nsb2NrZXZlbnQuY3B1bWFzayA9IGNwdW1hc2tfb2YoMCk7Ci0KLQljbG9ja2V2ZW50c19yZWdpc3Rlcl9kZXZpY2UoJmp6NDc0MF9jbG9ja2V2ZW50KTsKLQotCXJldCA9IGNsb2Nrc291cmNlX3JlZ2lzdGVyX2h6KCZqejQ3NDBfY2xvY2tzb3VyY2UsIGNsa19yYXRlKTsKLQotCWlmIChyZXQpCi0JCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIHJlZ2lzdGVyIGNsb2Nrc291cmNlOiAlZFxuIiwgcmV0KTsKLQotCXNjaGVkX2Nsb2NrX3JlZ2lzdGVyKGp6NDc0MF9yZWFkX3NjaGVkX2Nsb2NrLCAxNiwgY2xrX3JhdGUpOwotCi0Jc2V0dXBfaXJxKGp6NDc0MF9jbG9ja2V2ZW50LmlycSwgJnRpbWVyX2lycWFjdGlvbik7Ci0KLQljdHJsID0gSlpfVElNRVJfQ1RSTF9QUkVTQ0FMRV8xNiB8IEpaX1RJTUVSX0NUUkxfU1JDX0VYVDsKLQotCWp6NDc0MF90aW1lcl9zZXRfY3RybChUSU1FUl9DTE9DS0VWRU5ULCBjdHJsKTsKLQlqejQ3NDBfdGltZXJfc2V0X2N0cmwoVElNRVJfQ0xPQ0tTT1VSQ0UsIGN0cmwpOwotCi0Jano0NzQwX3RpbWVyX3NldF9wZXJpb2QoVElNRVJfQ0xPQ0tFVkVOVCwgano0NzQwX2ppZmZpZXNfcGVyX3RpY2spOwotCWp6NDc0MF90aW1lcl9pcnFfZnVsbF9lbmFibGUoVElNRVJfQ0xPQ0tFVkVOVCk7Ci0KLQlqejQ3NDBfdGltZXJfc2V0X3BlcmlvZChUSU1FUl9DTE9DS1NPVVJDRSwgMHhmZmZmKTsKLQotCWp6NDc0MF90aW1lcl9lbmFibGUoVElNRVJfQ0xPQ0tFVkVOVCk7Ci0Jano0NzQwX3RpbWVyX2VuYWJsZShUSU1FUl9DTE9DS1NPVVJDRSk7CisJdGltZXJfcHJvYmUoKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvYnJhbmNoLmMgYi9hcmNoL21pcHMva2VybmVsL2JyYW5jaC5jCmluZGV4IDFkYjI5OTUuLjJjMzhmNzUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvYnJhbmNoLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9icmFuY2guYwpAQCAtNTgsNiArNTgsNyBAQCBpbnQgX19tbV9pc0JyYW5jaEluc3RyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3QgbW1fZGVjb2RlZF9pbnNuIGRlY19pbnNuLAogCQkgICAgICAgdW5zaWduZWQgbG9uZyAqY29udHBjKQogewogCXVuaW9uIG1pcHNfaW5zdHJ1Y3Rpb24gaW5zbiA9ICh1bmlvbiBtaXBzX2luc3RydWN0aW9uKWRlY19pbnNuLmluc247CisJaW50IF9fbWF5YmVfdW51c2VkIGJjX2ZhbHNlID0gMDsKIAogCWlmICghY3B1X2hhc19tbWlwcykKIAkJcmV0dXJuIDA7CkBAIC0xMzksNyArMTQwLDYgQEAgaW50IF9fbW1faXNCcmFuY2hJbnN0cihzdHJ1Y3QgcHRfcmVncyAqcmVncywgc3RydWN0IG1tX2RlY29kZWRfaW5zbiBkZWNfaW5zbiwKICNpZmRlZiBDT05GSUdfTUlQU19GUF9TVVBQT1JUCiAJCWNhc2UgbW1fYmMyZl9vcDoKIAkJY2FzZSBtbV9iYzFmX29wOiB7Ci0JCQlpbnQgYmNfZmFsc2UgPSAwOwogCQkJdW5zaWduZWQgaW50IGZjcjMxOwogCQkJdW5zaWduZWQgaW50IGJpdDsKIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9jcHUtcHJvYmUuYyBiL2FyY2gvbWlwcy9rZXJuZWwvY3B1LXByb2JlLmMKaW5kZXggOTYzNWMxZC4uYzJlYjM5MiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9jcHUtcHJvYmUuYworKysgYi9hcmNoL21pcHMva2VybmVsL2NwdS1wcm9iZS5jCkBAIC0xMzg0LDE1ICsxMzg0LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGNwdV9wcm9iZV9sZWdhY3koc3RydWN0IGNwdWluZm9fbWlwcyAqYywgdW5zaWduZWQgaW50IGNwdSkKIAkJCWJyZWFrOwogCQl9CiAJCWJyZWFrOwotCWNhc2UgUFJJRF9JTVBfUjQzMDA6Ci0JCWMtPmNwdXR5cGUgPSBDUFVfUjQzMDA7Ci0JCV9fY3B1X25hbWVbY3B1XSA9ICJSNDMwMCI7Ci0JCXNldF9pc2EoYywgTUlQU19DUFVfSVNBX0lJSSk7Ci0JCWMtPmZwdV9tc2szMSB8PSBGUFVfQ1NSX0NPTkRYOwotCQljLT5vcHRpb25zID0gUjRLX09QVFMgfCBNSVBTX0NQVV9GUFUgfCBNSVBTX0NQVV8zMkZQUiB8Ci0JCQkgICAgIE1JUFNfQ1BVX0xMU0M7Ci0JCWMtPnRsYnNpemUgPSAzMjsKLQkJYnJlYWs7CiAJY2FzZSBQUklEX0lNUF9SNDYwMDoKIAkJYy0+Y3B1dHlwZSA9IENQVV9SNDYwMDsKIAkJX19jcHVfbmFtZVtjcHVdID0gIlI0NjAwIjsKQEAgLTE0NjgsMTQgKzE0NTksNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY3B1X3Byb2JlX2xlZ2FjeShzdHJ1Y3QgY3B1aW5mb19taXBzICpjLCB1bnNpZ25lZCBpbnQgY3B1KQogCQkJICAgICBNSVBTX0NQVV9MTFNDOwogCQljLT50bGJzaXplID0gNDg7CiAJCWJyZWFrOwotCWNhc2UgUFJJRF9JTVBfUjU0MzI6Ci0JCWMtPmNwdXR5cGUgPSBDUFVfUjU0MzI7Ci0JCV9fY3B1X25hbWVbY3B1XSA9ICJSNTQzMiI7Ci0JCXNldF9pc2EoYywgTUlQU19DUFVfSVNBX0lWKTsKLQkJYy0+b3B0aW9ucyA9IFI0S19PUFRTIHwgTUlQU19DUFVfRlBVIHwgTUlQU19DUFVfMzJGUFIgfAotCQkJICAgICBNSVBTX0NQVV9XQVRDSCB8IE1JUFNfQ1BVX0xMU0M7Ci0JCWMtPnRsYnNpemUgPSA0ODsKLQkJYnJlYWs7CiAJY2FzZSBQUklEX0lNUF9SNTUwMDoKIAkJYy0+Y3B1dHlwZSA9IENQVV9SNTUwMDsKIAkJX19jcHVfbmFtZVtjcHVdID0gIlI1NTAwIjsKQEAgLTE1MDgsMTUgKzE0OTEsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY3B1X3Byb2JlX2xlZ2FjeShzdHJ1Y3QgY3B1aW5mb19taXBzICpjLCB1bnNpZ25lZCBpbnQgY3B1KQogCQkgKi8KIAkJYy0+dGxic2l6ZSA9IChyZWFkX2MwX2luZm8oKSAmICgxIDw8IDI5KSkgPyA2NCA6IDQ4OwogCQlicmVhazsKLQljYXNlIFBSSURfSU1QX1I4MDAwOgotCQljLT5jcHV0eXBlID0gQ1BVX1I4MDAwOwotCQlfX2NwdV9uYW1lW2NwdV0gPSAiUk04MDAwIjsKLQkJc2V0X2lzYShjLCBNSVBTX0NQVV9JU0FfSVYpOwotCQljLT5vcHRpb25zID0gTUlQU19DUFVfVExCIHwgTUlQU19DUFVfNEtFWCB8Ci0JCQkgICAgIE1JUFNfQ1BVX0ZQVSB8IE1JUFNfQ1BVXzMyRlBSIHwKLQkJCSAgICAgTUlQU19DUFVfTExTQzsKLQkJYy0+dGxic2l6ZSA9IDM4NDsgICAgICAvKiBoYXMgd2VpcmQgVExCOiAzLXdheSB4IDEyOCAqLwotCQlicmVhazsKIAljYXNlIFBSSURfSU1QX1IxMDAwMDoKIAkJYy0+Y3B1dHlwZSA9IENQVV9SMTAwMDA7CiAJCV9fY3B1X25hbWVbY3B1XSA9ICJSMTAwMDAiOwpAQCAtMTU3Myw2ICsxNTQ3LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGNwdV9wcm9iZV9sZWdhY3koc3RydWN0IGNwdWluZm9fbWlwcyAqYywgdW5zaWduZWQgaW50IGNwdSkKIAkJCV9fY3B1X25hbWVbY3B1XSA9ICJJQ1QgTG9vbmdzb24tMyI7CiAJCQlzZXRfZWxmX3BsYXRmb3JtKGNwdSwgImxvb25nc29uM2EiKTsKIAkJCXNldF9pc2EoYywgTUlQU19DUFVfSVNBX002NFIxKTsKKwkJCWMtPmFzZXMgfD0gKE1JUFNfQVNFX0xPT05HU09OX01NSSB8IE1JUFNfQVNFX0xPT05HU09OX0NBTSB8CisJCQkJTUlQU19BU0VfTE9PTkdTT05fRVhUKTsKIAkJCWJyZWFrOwogCQljYXNlIFBSSURfUkVWX0xPT05HU09OM0JfUjE6CiAJCWNhc2UgUFJJRF9SRVZfTE9PTkdTT04zQl9SMjoKQEAgLTE1ODAsNiArMTU1Niw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfcHJvYmVfbGVnYWN5KHN0cnVjdCBjcHVpbmZvX21pcHMgKmMsIHVuc2lnbmVkIGludCBjcHUpCiAJCQlfX2NwdV9uYW1lW2NwdV0gPSAiSUNUIExvb25nc29uLTMiOwogCQkJc2V0X2VsZl9wbGF0Zm9ybShjcHUsICJsb29uZ3NvbjNiIik7CiAJCQlzZXRfaXNhKGMsIE1JUFNfQ1BVX0lTQV9NNjRSMSk7CisJCQljLT5hc2VzIHw9IChNSVBTX0FTRV9MT09OR1NPTl9NTUkgfCBNSVBTX0FTRV9MT09OR1NPTl9DQU0gfAorCQkJCU1JUFNfQVNFX0xPT05HU09OX0VYVCk7CiAJCQlicmVhazsKIAkJfQogCkBAIC0xOTQ2LDYgKzE5MjQsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY3B1X3Byb2JlX2xvb25nc29uKHN0cnVjdCBjcHVpbmZvX21pcHMgKmMsIHVuc2lnbmVkIGludCBjcHUpCiAJCWRlY29kZV9jb25maWdzKGMpOwogCQljLT5vcHRpb25zIHw9IE1JUFNfQ1BVX0ZUTEIgfCBNSVBTX0NQVV9UTEJJTlYgfCBNSVBTX0NQVV9MRFBURTsKIAkJYy0+d3JpdGVjb21iaW5lID0gX0NBQ0hFX1VOQ0FDSEVEX0FDQ0VMRVJBVEVEOworCQljLT5hc2VzIHw9IChNSVBTX0FTRV9MT09OR1NPTl9NTUkgfCBNSVBTX0FTRV9MT09OR1NPTl9DQU0gfAorCQkJTUlQU19BU0VfTE9PTkdTT05fRVhUIHwgTUlQU19BU0VfTE9PTkdTT05fRVhUMik7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXBhbmljKCJVbmtub3duIExvb25nc29uIFByb2Nlc3NvciBJRCEiKTsKQEAgLTE5NTYsMTQgKzE5MzYsMjkgQEAgc3RhdGljIGlubGluZSB2b2lkIGNwdV9wcm9iZV9sb29uZ3NvbihzdHJ1Y3QgY3B1aW5mb19taXBzICpjLCB1bnNpZ25lZCBpbnQgY3B1KQogc3RhdGljIGlubGluZSB2b2lkIGNwdV9wcm9iZV9pbmdlbmljKHN0cnVjdCBjcHVpbmZvX21pcHMgKmMsIHVuc2lnbmVkIGludCBjcHUpCiB7CiAJZGVjb2RlX2NvbmZpZ3MoYyk7Ci0JLyogSlpSSVNDIGRvZXMgbm90IGltcGxlbWVudCB0aGUgQ1AwIGNvdW50ZXIuICovCisKKwkvKgorCSAqIFhCdXJzdCBtaXNzZXMgYSBjb25maWcyIHJlZ2lzdGVyLCBzbyBjb25maWczIGRlY29kZSB3YXMgc2tpcHBlZCBpbgorCSAqIGRlY29kZV9jb25maWdzKCkuCisJICovCisJZGVjb2RlX2NvbmZpZzMoYyk7CisKKwkvKiBYQnVyc3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBDUDAgY291bnRlci4gKi8KIAljLT5vcHRpb25zICY9IH5NSVBTX0NQVV9DT1VOVEVSOwogCUJVR19PTighX19idWlsdGluX2NvbnN0YW50X3AoY3B1X2hhc19jb3VudGVyKSB8fCBjcHVfaGFzX2NvdW50ZXIpOworCiAJc3dpdGNoIChjLT5wcm9jZXNzb3JfaWQgJiBQUklEX0lNUF9NQVNLKSB7Ci0JY2FzZSBQUklEX0lNUF9KWlJJU0M6Ci0JCWMtPmNwdXR5cGUgPSBDUFVfSlpSSVNDOworCWNhc2UgUFJJRF9JTVBfWEJVUlNUOgorCQljLT5jcHV0eXBlID0gQ1BVX1hCVVJTVDsKIAkJYy0+d3JpdGVjb21iaW5lID0gX0NBQ0hFX1VOQ0FDSEVEX0FDQ0VMRVJBVEVEOwogCQlfX2NwdV9uYW1lW2NwdV0gPSAiSW5nZW5pYyBKWlJJU0MiOworCQkvKgorCQkgKiBUaGUgWEJ1cnN0IGNvcmUgYnkgZGVmYXVsdCBhdHRlbXB0cyB0byBhdm9pZCBicmFuY2ggdGFyZ2V0CisJCSAqIGJ1ZmZlciBsb29rdXBzIGJ5IGRldGVjdGluZyAmIHNwZWNpYWwgY2FzaW5nIGxvb3BzLiBUaGlzCisJCSAqIGZlYXR1cmUgd2lsbCBjYXVzZSBCb2dvTUlQUyBhbmQgbHBqIGNhbGN1bGF0ZSBpbiBlcnJvci4KKwkJICogU2V0IGNwMCBjb25maWc3IGJpdCA0IHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLgorCQkgKi8KKwkJc2V0X2MwX2NvbmZpZzcoTUlQU19DT05GN19CVEJfTE9PUF9FTik7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXBhbmljKCJVbmtub3duIEluZ2VuaWMgUHJvY2Vzc29yIElEISIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9nZW5leC5TIGIvYXJjaC9taXBzL2tlcm5lbC9nZW5leC5TCmluZGV4IDM5OGI5MDUuLmVmZGUyN2MgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvZ2VuZXguUworKysgYi9hcmNoL21pcHMva2VybmVsL2dlbmV4LlMKQEAgLTMyLDkgKzMyLDYgQEAKIE5FU1RFRChleGNlcHRfdmVjM19nZW5lcmljLCAwLCBzcCkKIAkuc2V0CXB1c2gKIAkuc2V0CW5vYXQKLSNpZiBSNTQzMl9DUDBfSU5URVJSVVBUX1dBUgotCW1mYzAJazAsIENQMF9JTkRFWAotI2VuZGlmCiAJbWZjMAlrMSwgQ1AwX0NBVVNFCiAJYW5kaQlrMSwgazEsIDB4N2MKICNpZmRlZiBDT05GSUdfNjRCSVQKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvaWRsZS5jIGIvYXJjaC9taXBzL2tlcm5lbC9pZGxlLmMKaW5kZXggNzM4OGYxMy4uZWIyYWZjMCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9pZGxlLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9pZGxlLmMKQEAgLTE1MSw3ICsxNTEsNiBAQCB2b2lkIF9faW5pdCBjaGVja193YWl0KHZvaWQpCiAJCWNwdV93YWl0ID0gcjM5eHhfd2FpdDsKIAkJYnJlYWs7CiAJY2FzZSBDUFVfUjQyMDA6Ci0vKgljYXNlIENQVV9SNDMwMDogKi8KIAljYXNlIENQVV9SNDYwMDoKIAljYXNlIENQVV9SNDY0MDoKIAljYXNlIENQVV9SNDY1MDoKQEAgLTE3Myw3ICsxNzIsNyBAQCB2b2lkIF9faW5pdCBjaGVja193YWl0KHZvaWQpCiAJY2FzZSBDUFVfQ0FWSVVNX09DVEVPTl9QTFVTOgogCWNhc2UgQ1BVX0NBVklVTV9PQ1RFT04yOgogCWNhc2UgQ1BVX0NBVklVTV9PQ1RFT04zOgotCWNhc2UgQ1BVX0paUklTQzoKKwljYXNlIENQVV9YQlVSU1Q6CiAJY2FzZSBDUFVfTE9PTkdTT04xOgogCWNhc2UgQ1BVX1hMUjoKIAljYXNlIENQVV9YTFA6CmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL3Byb2MuYyBiL2FyY2gvbWlwcy9rZXJuZWwvcHJvYy5jCmluZGV4IGIyZGU0MDguLmY4ZDM2NzEgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvcHJvYy5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvcHJvYy5jCkBAIC0xMjQsNiArMTI0LDEwIEBAIHN0YXRpYyBpbnQgc2hvd19jcHVpbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKIAlpZiAoY3B1X2hhc19ldmEpCXNlcV9wcmludGYobSwgIiVzIiwgIiBldmEiKTsKIAlpZiAoY3B1X2hhc19odHcpCXNlcV9wcmludGYobSwgIiVzIiwgIiBodHciKTsKIAlpZiAoY3B1X2hhc194cGEpCXNlcV9wcmludGYobSwgIiVzIiwgIiB4cGEiKTsKKwlpZiAoY3B1X2hhc19sb29uZ3Nvbl9tbWkpCXNlcV9wcmludGYobSwgIiVzIiwgIiBsb29uZ3Nvbi1tbWkiKTsKKwlpZiAoY3B1X2hhc19sb29uZ3Nvbl9jYW0pCXNlcV9wcmludGYobSwgIiVzIiwgIiBsb29uZ3Nvbi1jYW0iKTsKKwlpZiAoY3B1X2hhc19sb29uZ3Nvbl9leHQpCXNlcV9wcmludGYobSwgIiVzIiwgIiBsb29uZ3Nvbi1leHQiKTsKKwlpZiAoY3B1X2hhc19sb29uZ3Nvbl9leHQyKQlzZXFfcHJpbnRmKG0sICIlcyIsICIgbG9vbmdzb24tZXh0MiIpOwogCXNlcV9wcmludGYobSwgIlxuIik7CiAKIAlpZiAoY3B1X2hhc19tbWlwcykgewpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9zY2FsbDMyLW8zMi5TIGIvYXJjaC9taXBzL2tlcm5lbC9zY2FsbDMyLW8zMi5TCmluZGV4IGQ5NDM0Y2QuLmI0NDliNjggMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvc2NhbGwzMi1vMzIuUworKysgYi9hcmNoL21pcHMva2VybmVsL3NjYWxsMzItbzMyLlMKQEAgLTIxNyw3ICsyMTcsNyBAQAogI2RlZmluZSBzeXNfc2NoZWRfZ2V0YWZmaW5pdHkJbWlwc210X3N5c19zY2hlZF9nZXRhZmZpbml0eQogI2VuZGlmIC8qIENPTkZJR19NSVBTX01UX0ZQQUZGICovCiAKLSNkZWZpbmUgX19TWVNDQUxMKG5yLCBlbnRyeSwgbmFyZ3MpCVBUUiBlbnRyeQorI2RlZmluZSBfX1NZU0NBTEwobnIsIGVudHJ5KSAJUFRSIGVudHJ5CiAJLmFsaWduCTIKIAkudHlwZQlzeXNfY2FsbF90YWJsZSwgQG9iamVjdAogRVhQT1JUKHN5c19jYWxsX3RhYmxlKQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9zY2FsbDY0LW4zMi5TIGIvYXJjaC9taXBzL2tlcm5lbC9zY2FsbDY0LW4zMi5TCmluZGV4IGM3NjFkZGYuLjM1ZDhjODYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvc2NhbGw2NC1uMzIuUworKysgYi9hcmNoL21pcHMva2VybmVsL3NjYWxsNjQtbjMyLlMKQEAgLTEwMSw3ICsxMDEsNyBAQAogCiAJRU5EKGhhbmRsZV9zeXNuMzIpCiAKLSNkZWZpbmUgX19TWVNDQUxMKG5yLCBlbnRyeSwgbmFyZ3MpIFBUUiBlbnRyeQorI2RlZmluZSBfX1NZU0NBTEwobnIsIGVudHJ5KQlQVFIgZW50cnkKIAkudHlwZQlzeXNuMzJfY2FsbF90YWJsZSwgQG9iamVjdAogRVhQT1JUKHN5c24zMl9jYWxsX3RhYmxlKQogI2luY2x1ZGUgPGFzbS9zeXNjYWxsX3RhYmxlXzY0X24zMi5oPgpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9zY2FsbDY0LW42NC5TIGIvYXJjaC9taXBzL2tlcm5lbC9zY2FsbDY0LW42NC5TCmluZGV4IDcyN2ZiOGEuLjIzYjJlMmIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvc2NhbGw2NC1uNjQuUworKysgYi9hcmNoL21pcHMva2VybmVsL3NjYWxsNjQtbjY0LlMKQEAgLTEwOSw3ICsxMDksNyBAQAogCWoJbjY0X3N5c2NhbGxfZXhpdAogCUVORChoYW5kbGVfc3lzNjQpCiAKLSNkZWZpbmUgX19TWVNDQUxMKG5yLCBlbnRyeSwgbmFyZ3MpIFBUUiBlbnRyeQorI2RlZmluZSBfX1NZU0NBTEwobnIsIGVudHJ5KQlQVFIgZW50cnkKIAkuYWxpZ24JMwogCS50eXBlCXN5c19jYWxsX3RhYmxlLCBAb2JqZWN0CiBFWFBPUlQoc3lzX2NhbGxfdGFibGUpCmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL3NjYWxsNjQtbzMyLlMgYi9hcmNoL21pcHMva2VybmVsL3NjYWxsNjQtbzMyLlMKaW5kZXggZmViMjY1My4uNDFkZjgyMiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9zY2FsbDY0LW8zMi5TCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvc2NhbGw2NC1vMzIuUwpAQCAtMjEzLDcgKzIxMyw3IEBACiAJanIJcmEKIAlFTkQoc3lzMzJfc3lzY2FsbCkKIAotI2RlZmluZSBfX1NZU0NBTEwobnIsIGVudHJ5LCBuYXJncykgUFRSIGVudHJ5CisjZGVmaW5lIF9fU1lTQ0FMTChuciwgZW50cnkpCVBUUiBlbnRyeQogCS5hbGlnbgkzCiAJLnR5cGUJc3lzMzJfY2FsbF90YWJsZSxAb2JqZWN0CiBFWFBPUlQoc3lzMzJfY2FsbF90YWJsZSkKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvbWlwcy9rZXJuZWwvc2V0dXAuYwppbmRleCBhYjM0OWQyLi5iODI0OWMyIDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9zZXR1cC5jCkBAIC02Myw4ICs2Myw2IEBAIHVuc2lnbmVkIGxvbmcgbWlwc19tYWNodHlwZSBfX3JlYWRfbW9zdGx5ID0gTUFDSF9VTktOT1dOOwogCiBFWFBPUlRfU1lNQk9MKG1pcHNfbWFjaHR5cGUpOwogCi1zdHJ1Y3QgYm9vdF9tZW1fbWFwIGJvb3RfbWVtX21hcDsKLQogc3RhdGljIGNoYXIgX19pbml0ZGF0YSBjb21tYW5kX2xpbmVbQ09NTUFORF9MSU5FX1NJWkVdOwogY2hhciBfX2luaXRkYXRhIGFyY3NfY21kbGluZVtDT01NQU5EX0xJTkVfU0laRV07CiAKQEAgLTc2LDcgKzc0LDcgQEAgc3RhdGljIGNoYXIgX19pbml0ZGF0YSBidWlsdGluX2NtZGxpbmVbQ09NTUFORF9MSU5FX1NJWkVdID0gQ09ORklHX0NNRExJTkU7CiAgKiBtaXBzX2lvX3BvcnRfYmFzZSBpcyB0aGUgYmVnaW4gb2YgdGhlIGFkZHJlc3Mgc3BhY2UgdG8gd2hpY2ggeDg2IHN0eWxlCiAgKiBJL08gcG9ydHMgYXJlIG1hcHBlZC4KICAqLwotY29uc3QgdW5zaWduZWQgbG9uZyBtaXBzX2lvX3BvcnRfYmFzZSA9IC0xOwordW5zaWduZWQgbG9uZyBtaXBzX2lvX3BvcnRfYmFzZSA9IC0xOwogRVhQT1JUX1NZTUJPTChtaXBzX2lvX3BvcnRfYmFzZSk7CiAKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgY29kZV9yZXNvdXJjZSA9IHsgLm5hbWUgPSAiS2VybmVsIGNvZGUiLCB9OwpAQCAtOTIsOCArOTAsMTAgQEAgRVhQT1JUX1NZTUJPTChBUkNIX1BGTl9PRkZTRVQpOwogCiB2b2lkIF9faW5pdCBhZGRfbWVtb3J5X3JlZ2lvbihwaHlzX2FkZHJfdCBzdGFydCwgcGh5c19hZGRyX3Qgc2l6ZSwgbG9uZyB0eXBlKQogewotCWludCB4ID0gYm9vdF9tZW1fbWFwLm5yX21hcDsKLQlpbnQgaTsKKwkvKgorCSAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gb25seSBleGlzdHMgZm9yIGhpc3RvcmljYWwgcmVhc29uLAorCSAqIG5ldyBjb2RlIHNob3VsZCB1c2UgbWVtYmxvY2tfYWRkIG9yIG1lbWJsb2NrX2FkZF9ub2RlIGluc3RlYWQuCisJICovCiAKIAkvKgogCSAqIElmIHRoZSByZWdpb24gcmVhY2hlcyB0aGUgdG9wIG9mIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlLCBhZGp1c3QKQEAgLTEwOCwzOCArMTA4LDIwIEBAIHZvaWQgX19pbml0IGFkZF9tZW1vcnlfcmVnaW9uKHBoeXNfYWRkcl90IHN0YXJ0LCBwaHlzX2FkZHJfdCBzaXplLCBsb25nIHR5cGUpCiAJCXJldHVybjsKIAl9CiAKLQkvKgotCSAqIFRyeSB0byBtZXJnZSB3aXRoIGV4aXN0aW5nIGVudHJ5LCBpZiBhbnkuCi0JICovCi0JZm9yIChpID0gMDsgaSA8IGJvb3RfbWVtX21hcC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgYm9vdF9tZW1fbWFwX2VudHJ5ICplbnRyeSA9IGJvb3RfbWVtX21hcC5tYXAgKyBpOwotCQl1bnNpZ25lZCBsb25nIHRvcDsKKwltZW1ibG9ja19hZGQoc3RhcnQsIHNpemUpOworCS8qIFJlc2VydmUgYW55IG1lbW9yeSBleGNlcHQgdGhlIG9yZGluYXJ5IFJBTSByYW5nZXMuICovCisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBCT09UX01FTV9SQU06CisJCWJyZWFrOwogCi0JCWlmIChlbnRyeS0+dHlwZSAhPSB0eXBlKQotCQkJY29udGludWU7CisJY2FzZSBCT09UX01FTV9OT01BUDogLyogRGlzY2FyZCB0aGUgcmFuZ2UgZnJvbSB0aGUgc3lzdGVtLiAqLworCQltZW1ibG9ja19yZW1vdmUoc3RhcnQsIHNpemUpOworCQlicmVhazsKIAotCQlpZiAoc3RhcnQgKyBzaXplIDwgZW50cnktPmFkZHIpCi0JCQljb250aW51ZTsJCQkvKiBubyBvdmVybGFwICovCi0KLQkJaWYgKGVudHJ5LT5hZGRyICsgZW50cnktPnNpemUgPCBzdGFydCkKLQkJCWNvbnRpbnVlOwkJCS8qIG5vIG92ZXJsYXAgKi8KLQotCQl0b3AgPSBtYXgoZW50cnktPmFkZHIgKyBlbnRyeS0+c2l6ZSwgc3RhcnQgKyBzaXplKTsKLQkJZW50cnktPmFkZHIgPSBtaW4oZW50cnktPmFkZHIsIHN0YXJ0KTsKLQkJZW50cnktPnNpemUgPSB0b3AgLSBlbnRyeS0+YWRkcjsKLQotCQlyZXR1cm47CisJZGVmYXVsdDogLyogUmVzZXJ2ZSB0aGUgcmVzdCBvZiB0aGUgbWVtb3J5IHR5cGVzIGF0IGJvb3QgdGltZSAqLworCQltZW1ibG9ja19yZXNlcnZlKHN0YXJ0LCBzaXplKTsKKwkJYnJlYWs7CiAJfQotCi0JaWYgKGJvb3RfbWVtX21hcC5ucl9tYXAgPT0gQk9PVF9NRU1fTUFQX01BWCkgewotCQlwcl9lcnIoIk9vb3BzISBUb28gbWFueSBlbnRyaWVzIGluIHRoZSBtZW1vcnkgbWFwIVxuIik7Ci0JCXJldHVybjsKLQl9Ci0KLQlib290X21lbV9tYXAubWFwW3hdLmFkZHIgPSBzdGFydDsKLQlib290X21lbV9tYXAubWFwW3hdLnNpemUgPSBzaXplOwotCWJvb3RfbWVtX21hcC5tYXBbeF0udHlwZSA9IHR5cGU7Ci0JYm9vdF9tZW1fbWFwLm5yX21hcCsrOwogfQogCiB2b2lkIF9faW5pdCBkZXRlY3RfbWVtb3J5X3JlZ2lvbihwaHlzX2FkZHJfdCBzdGFydCwgcGh5c19hZGRyX3Qgc3pfbWluLCBwaHlzX2FkZHJfdCBzel9tYXgpCkBAIC0xNjEsNzAgKzE0Myw2IEBAIHZvaWQgX19pbml0IGRldGVjdF9tZW1vcnlfcmVnaW9uKHBoeXNfYWRkcl90IHN0YXJ0LCBwaHlzX2FkZHJfdCBzel9taW4sIHBoeXNfYWRkCiAJYWRkX21lbW9yeV9yZWdpb24oc3RhcnQsIHNpemUsIEJPT1RfTUVNX1JBTSk7CiB9CiAKLXN0YXRpYyBib29sIF9faW5pdCBfX21heWJlX3VudXNlZCBtZW1vcnlfcmVnaW9uX2F2YWlsYWJsZShwaHlzX2FkZHJfdCBzdGFydCwKLQkJCQkJCQkgIHBoeXNfYWRkcl90IHNpemUpCi17Ci0JaW50IGk7Ci0JYm9vbCBpbl9yYW0gPSBmYWxzZSwgZnJlZSA9IHRydWU7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgYm9vdF9tZW1fbWFwLm5yX21hcDsgaSsrKSB7Ci0JCXBoeXNfYWRkcl90IHN0YXJ0XywgZW5kXzsKLQotCQlzdGFydF8gPSBib290X21lbV9tYXAubWFwW2ldLmFkZHI7Ci0JCWVuZF8gPSBib290X21lbV9tYXAubWFwW2ldLmFkZHIgKyBib290X21lbV9tYXAubWFwW2ldLnNpemU7Ci0KLQkJc3dpdGNoIChib290X21lbV9tYXAubWFwW2ldLnR5cGUpIHsKLQkJY2FzZSBCT09UX01FTV9SQU06Ci0JCQlpZiAoc3RhcnQgPj0gc3RhcnRfICYmIHN0YXJ0ICsgc2l6ZSA8PSBlbmRfKQotCQkJCWluX3JhbSA9IHRydWU7Ci0JCQlicmVhazsKLQkJY2FzZSBCT09UX01FTV9SRVNFUlZFRDoKLQkJY2FzZSBCT09UX01FTV9OT01BUDoKLQkJCWlmICgoc3RhcnQgPj0gc3RhcnRfICYmIHN0YXJ0IDwgZW5kXykgfHwKLQkJCSAgICAoc3RhcnQgPCBzdGFydF8gJiYgc3RhcnQgKyBzaXplID49IHN0YXJ0XykpCi0JCQkJZnJlZSA9IGZhbHNlOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQljb250aW51ZTsKLQkJfQotCX0KLQotCXJldHVybiBpbl9yYW0gJiYgZnJlZTsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0IHByaW50X21lbW9yeV9tYXAodm9pZCkKLXsKLQlpbnQgaTsKLQljb25zdCBpbnQgZmllbGQgPSAyICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOwotCi0JZm9yIChpID0gMDsgaSA8IGJvb3RfbWVtX21hcC5ucl9tYXA7IGkrKykgewotCQlwcmludGsoS0VSTl9JTkZPICIgbWVtb3J5OiAlMCpMeCBAICUwKkx4ICIsCi0JCSAgICAgICBmaWVsZCwgKHVuc2lnbmVkIGxvbmcgbG9uZykgYm9vdF9tZW1fbWFwLm1hcFtpXS5zaXplLAotCQkgICAgICAgZmllbGQsICh1bnNpZ25lZCBsb25nIGxvbmcpIGJvb3RfbWVtX21hcC5tYXBbaV0uYWRkcik7Ci0KLQkJc3dpdGNoIChib290X21lbV9tYXAubWFwW2ldLnR5cGUpIHsKLQkJY2FzZSBCT09UX01FTV9SQU06Ci0JCQlwcmludGsoS0VSTl9DT05UICIodXNhYmxlKVxuIik7Ci0JCQlicmVhazsKLQkJY2FzZSBCT09UX01FTV9JTklUX1JBTToKLQkJCXByaW50ayhLRVJOX0NPTlQgIih1c2FibGUgYWZ0ZXIgaW5pdClcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgQk9PVF9NRU1fUk9NX0RBVEE6Ci0JCQlwcmludGsoS0VSTl9DT05UICIoUk9NIGRhdGEpXG4iKTsKLQkJCWJyZWFrOwotCQljYXNlIEJPT1RfTUVNX1JFU0VSVkVEOgotCQkJcHJpbnRrKEtFUk5fQ09OVCAiKHJlc2VydmVkKVxuIik7Ci0JCQlicmVhazsKLQkJY2FzZSBCT09UX01FTV9OT01BUDoKLQkJCXByaW50ayhLRVJOX0NPTlQgIihub21hcClcbiIpOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlwcmludGsoS0VSTl9DT05UICJ0eXBlICVsdVxuIiwgYm9vdF9tZW1fbWFwLm1hcFtpXS50eXBlKTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotfQotCiAvKgogICogTWFuYWdlIGluaXRyZAogICovCkBAIC0zNzYsOCArMjk0LDExIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBib290bWVtX2luaXQodm9pZCkKIAogc3RhdGljIHZvaWQgX19pbml0IGJvb3RtZW1faW5pdCh2b2lkKQogewotCXBoeXNfYWRkcl90IHJhbXN0YXJ0ID0gUEhZU19BRERSX01BWDsKLQlpbnQgaTsKKwlzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uICptZW07CisJcGh5c19hZGRyX3QgcmFtc3RhcnQsIHJhbWVuZDsKKworCXJhbXN0YXJ0ID0gbWVtYmxvY2tfc3RhcnRfb2ZfRFJBTSgpOworCXJhbWVuZCA9IG1lbWJsb2NrX2VuZF9vZl9EUkFNKCk7CiAKIAkvKgogCSAqIFNhbml0eSBjaGVjayBhbnkgSU5JVFJEIGZpcnN0LiBXZSBkb24ndCB0YWtlIGl0IGludG8gYWNjb3VudApAQCAtMzkxLDQ3ICszMTIsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYm9vdG1lbV9pbml0KHZvaWQpCiAJbWVtYmxvY2tfcmVzZXJ2ZShfX3BhX3N5bWJvbCgmX3RleHQpLAogCQkJX19wYV9zeW1ib2woJl9lbmQpIC0gX19wYV9zeW1ib2woJl90ZXh0KSk7CiAKLQkvKgotCSAqIG1heF9sb3dfcGZuIGlzIG5vdCBhIG51bWJlciBvZiBwYWdlcy4gVGhlIG51bWJlciBvZiBwYWdlcwotCSAqIG9mIHRoZSBzeXN0ZW0gaXMgZ2l2ZW4gYnkgJ21heF9sb3dfcGZuIC0gbWluX2xvd19wZm4nLgotCSAqLwotCW1pbl9sb3dfcGZuID0gfjBVTDsKLQltYXhfbG93X3BmbiA9IDA7Ci0KLQkvKiBGaW5kIHRoZSBoaWdoZXN0IGFuZCBsb3dlc3QgcGFnZSBmcmFtZSBudW1iZXJzIHdlIGhhdmUgYXZhaWxhYmxlLiAqLwotCWZvciAoaSA9IDA7IGkgPCBib290X21lbV9tYXAubnJfbWFwOyBpKyspIHsKLQkJdW5zaWduZWQgbG9uZyBzdGFydCwgZW5kOwotCi0JCWlmIChib290X21lbV9tYXAubWFwW2ldLnR5cGUgIT0gQk9PVF9NRU1fUkFNKQotCQkJY29udGludWU7Ci0KLQkJc3RhcnQgPSBQRk5fVVAoYm9vdF9tZW1fbWFwLm1hcFtpXS5hZGRyKTsKLQkJZW5kID0gUEZOX0RPV04oYm9vdF9tZW1fbWFwLm1hcFtpXS5hZGRyCi0JCQkJKyBib290X21lbV9tYXAubWFwW2ldLnNpemUpOwotCi0JCXJhbXN0YXJ0ID0gbWluKHJhbXN0YXJ0LCBib290X21lbV9tYXAubWFwW2ldLmFkZHIpOwotCi0jaWZuZGVmIENPTkZJR19ISUdITUVNCi0JCS8qCi0JCSAqIFNraXAgaGlnaG1lbSBoZXJlIHNvIHdlIGdldCBhbiBhY2N1cmF0ZSBtYXhfbG93X3BmbiBpZiBsb3cKLQkJICogbWVtb3J5IHN0b3BzIHNob3J0IG9mIGhpZ2ggbWVtb3J5LgotCQkgKiBJZiB0aGUgcmVnaW9uIG92ZXJsYXBzIEhJR0hNRU1fU1RBUlQsIGVuZCBpcyBjbGlwcGVkIHNvCi0JCSAqIG1heF9wZm4gZXhjbHVkZXMgdGhlIGhpZ2htZW0gcG9ydGlvbi4KLQkJICovCi0JCWlmIChzdGFydCA+PSBQRk5fRE9XTihISUdITUVNX1NUQVJUKSkKLQkJCWNvbnRpbnVlOwotCQlpZiAoZW5kID4gUEZOX0RPV04oSElHSE1FTV9TVEFSVCkpCi0JCQllbmQgPSBQRk5fRE9XTihISUdITUVNX1NUQVJUKTsKLSNlbmRpZgotCi0JCWlmIChlbmQgPiBtYXhfbG93X3BmbikKLQkJCW1heF9sb3dfcGZuID0gZW5kOwotCQlpZiAoc3RhcnQgPCBtaW5fbG93X3BmbikKLQkJCW1pbl9sb3dfcGZuID0gc3RhcnQ7Ci0JfQotCi0JaWYgKG1pbl9sb3dfcGZuID49IG1heF9sb3dfcGZuKQotCQlwYW5pYygiSW5jb3JyZWN0IG1lbW9yeSBtYXBwaW5nICEhISIpOworCS8qIG1heF9sb3dfcGZuIGlzIG5vdCBhIG51bWJlciBvZiBwYWdlcyBidXQgdGhlIGVuZCBwZm4gb2YgbG93IG1lbSAqLwogCiAjaWZkZWYgQ09ORklHX01JUFNfQVVUT19QRk5fT0ZGU0VUCiAJQVJDSF9QRk5fT0ZGU0VUID0gUEZOX1VQKHJhbXN0YXJ0KTsKQEAgLTQzOSw3NSArMzIwLDU5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBib290bWVtX2luaXQodm9pZCkKIAkvKgogCSAqIFJlc2VydmUgYW55IG1lbW9yeSBiZXR3ZWVuIHRoZSBzdGFydCBvZiBSQU0gYW5kIFBIWVNfT0ZGU0VUCiAJICovCi0JaWYgKHJhbXN0YXJ0ID4gUEhZU19PRkZTRVQpIHsKLQkJYWRkX21lbW9yeV9yZWdpb24oUEhZU19PRkZTRVQsIHJhbXN0YXJ0IC0gUEhZU19PRkZTRVQsCi0JCQkJICBCT09UX01FTV9SRVNFUlZFRCk7Ci0JCW1lbWJsb2NrX3Jlc2VydmUoUEhZU19PRkZTRVQsIHJhbXN0YXJ0IC0gUEhZU19PRkZTRVQpOwotCX0KKwlpZiAocmFtc3RhcnQgPiBQSFlTX09GRlNFVCkKKwkJbWVtYmxvY2tfcmVzZXJ2ZShQSFlTX09GRlNFVCwgUEZOX1VQKHJhbXN0YXJ0KSAtIFBIWVNfT0ZGU0VUKTsKIAotCWlmIChtaW5fbG93X3BmbiA+IEFSQ0hfUEZOX09GRlNFVCkgeworCWlmIChQRk5fVVAocmFtc3RhcnQpID4gQVJDSF9QRk5fT0ZGU0VUKSB7CiAJCXByX2luZm8oIldhc3RpbmcgJWx1IGJ5dGVzIGZvciB0cmFja2luZyAlbHUgdW51c2VkIHBhZ2VzXG4iLAotCQkJKG1pbl9sb3dfcGZuIC0gQVJDSF9QRk5fT0ZGU0VUKSAqIHNpemVvZihzdHJ1Y3QgcGFnZSksCi0JCQltaW5fbG93X3BmbiAtIEFSQ0hfUEZOX09GRlNFVCk7Ci0JfSBlbHNlIGlmIChBUkNIX1BGTl9PRkZTRVQgLSBtaW5fbG93X3BmbiA+IDBVTCkgewotCQlwcl9pbmZvKCIlbHUgZnJlZSBwYWdlcyB3b24ndCBiZSB1c2VkXG4iLAotCQkJQVJDSF9QRk5fT0ZGU0VUIC0gbWluX2xvd19wZm4pOworCQkJKHVuc2lnbmVkIGxvbmcpKChQRk5fVVAocmFtc3RhcnQpIC0gQVJDSF9QRk5fT0ZGU0VUKSAqIHNpemVvZihzdHJ1Y3QgcGFnZSkpLAorCQkJKHVuc2lnbmVkIGxvbmcpKFBGTl9VUChyYW1zdGFydCkgLSBBUkNIX1BGTl9PRkZTRVQpKTsKIAl9CisjZW5kaWYKKwogCW1pbl9sb3dfcGZuID0gQVJDSF9QRk5fT0ZGU0VUOwotI2VuZGlmCi0KLQkvKgotCSAqIERldGVybWluZSBsb3cgYW5kIGhpZ2ggbWVtb3J5IHJhbmdlcwotCSAqLwotCW1heF9wZm4gPSBtYXhfbG93X3BmbjsKLQlpZiAobWF4X2xvd19wZm4gPiBQRk5fRE9XTihISUdITUVNX1NUQVJUKSkgewotI2lmZGVmIENPTkZJR19ISUdITUVNCi0JCWhpZ2hzdGFydF9wZm4gPSBQRk5fRE9XTihISUdITUVNX1NUQVJUKTsKLQkJaGlnaGVuZF9wZm4gPSBtYXhfbG93X3BmbjsKLSNlbmRpZgotCQltYXhfbG93X3BmbiA9IFBGTl9ET1dOKEhJR0hNRU1fU1RBUlQpOwotCX0KLQotCS8qIEluc3RhbGwgYWxsIHZhbGlkIFJBTSByYW5nZXMgdG8gdGhlIG1lbWJsb2NrIG1lbW9yeSByZWdpb24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgYm9vdF9tZW1fbWFwLm5yX21hcDsgaSsrKSB7Ci0JCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsKLQotCQlzdGFydCA9IFBGTl9VUChib290X21lbV9tYXAubWFwW2ldLmFkZHIpOwotCQllbmQgPSBQRk5fRE9XTihib290X21lbV9tYXAubWFwW2ldLmFkZHIKLQkJCQkrIGJvb3RfbWVtX21hcC5tYXBbaV0uc2l6ZSk7Ci0KLQkJaWYgKHN0YXJ0IDwgbWluX2xvd19wZm4pCi0JCQlzdGFydCA9IG1pbl9sb3dfcGZuOwotI2lmbmRlZiBDT05GSUdfSElHSE1FTQotCQkvKiBJZ25vcmUgaGlnaG1lbSByZWdpb25zIGlmIGhpZ2htZW0gaXMgdW5zdXBwb3J0ZWQgKi8KLQkJaWYgKGVuZCA+IG1heF9sb3dfcGZuKQotCQkJZW5kID0gbWF4X2xvd19wZm47Ci0jZW5kaWYKLQkJaWYgKGVuZCA8PSBzdGFydCkKLQkJCWNvbnRpbnVlOwotCi0JCW1lbWJsb2NrX2FkZF9ub2RlKFBGTl9QSFlTKHN0YXJ0KSwgUEZOX1BIWVMoZW5kIC0gc3RhcnQpLCAwKTsKLQotCQkvKiBSZXNlcnZlIGFueSBtZW1vcnkgZXhjZXB0IHRoZSBvcmRpbmFyeSBSQU0gcmFuZ2VzLiAqLwotCQlzd2l0Y2ggKGJvb3RfbWVtX21hcC5tYXBbaV0udHlwZSkgewotCQljYXNlIEJPT1RfTUVNX1JBTToKLQkJCWJyZWFrOwotCQljYXNlIEJPT1RfTUVNX05PTUFQOiAvKiBEaXNjYXJkIHRoZSByYW5nZSBmcm9tIHRoZSBzeXN0ZW0uICovCi0JCQltZW1ibG9ja19yZW1vdmUoUEZOX1BIWVMoc3RhcnQpLCBQRk5fUEhZUyhlbmQgLSBzdGFydCkpOwotCQkJY29udGludWU7Ci0JCWRlZmF1bHQ6IC8qIFJlc2VydmUgdGhlIHJlc3Qgb2YgdGhlIG1lbW9yeSB0eXBlcyBhdCBib290IHRpbWUgKi8KLQkJCW1lbWJsb2NrX3Jlc2VydmUoUEZOX1BIWVMoc3RhcnQpLCBQRk5fUEhZUyhlbmQgLSBzdGFydCkpOwotCQkJYnJlYWs7Ci0JCX0KKwltYXhfcGZuID0gUEZOX0RPV04ocmFtZW5kKTsKKwlmb3JfZWFjaF9tZW1ibG9jayhtZW1vcnksIG1lbSkgeworCQl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gbWVtYmxvY2tfcmVnaW9uX21lbW9yeV9iYXNlX3BmbihtZW0pOworCQl1bnNpZ25lZCBsb25nIGVuZCA9IG1lbWJsb2NrX3JlZ2lvbl9tZW1vcnlfZW5kX3BmbihtZW0pOwogCiAJCS8qCi0JCSAqIEluIGFueSBjYXNlIHRoZSBhZGRlZCB0byB0aGUgbWVtYmxvY2sgbWVtb3J5IHJlZ2lvbnMKLQkJICogKGhpZ2htZW0vbG93bWVtLCBhdmFpbGFibGUvcmVzZXJ2ZWQsIGV0YykgYXJlIGNvbnNpZGVyZWQKLQkJICogYXMgcHJlc2VudCwgc28gaW5mb3JtIHNwYXJzZW1lbSBhYm91dCB0aGVtLgorCQkgKiBTa2lwIGhpZ2htZW0gaGVyZSBzbyB3ZSBnZXQgYW4gYWNjdXJhdGUgbWF4X2xvd19wZm4gaWYgbG93CisJCSAqIG1lbW9yeSBzdG9wcyBzaG9ydCBvZiBoaWdoIG1lbW9yeS4KKwkJICogSWYgdGhlIHJlZ2lvbiBvdmVybGFwcyBISUdITUVNX1NUQVJULCBlbmQgaXMgY2xpcHBlZCBzbworCQkgKiBtYXhfcGZuIGV4Y2x1ZGVzIHRoZSBoaWdobWVtIHBvcnRpb24uCiAJCSAqLwotCQltZW1vcnlfcHJlc2VudCgwLCBzdGFydCwgZW5kKTsKKwkJaWYgKG1lbWJsb2NrX2lzX25vbWFwKG1lbSkpCisJCQljb250aW51ZTsKKwkJaWYgKHN0YXJ0ID49IFBGTl9ET1dOKEhJR0hNRU1fU1RBUlQpKQorCQkJY29udGludWU7CisJCWlmIChlbmQgPiBQRk5fRE9XTihISUdITUVNX1NUQVJUKSkKKwkJCWVuZCA9IFBGTl9ET1dOKEhJR0hNRU1fU1RBUlQpOworCQlpZiAoZW5kID4gbWF4X2xvd19wZm4pCisJCQltYXhfbG93X3BmbiA9IGVuZDsKIAl9CiAKKwlpZiAobWluX2xvd19wZm4gPj0gbWF4X2xvd19wZm4pCisJCXBhbmljKCJJbmNvcnJlY3QgbWVtb3J5IG1hcHBpbmcgISEhIik7CisKKwlpZiAobWF4X3BmbiA+IFBGTl9ET1dOKEhJR0hNRU1fU1RBUlQpKSB7CisjaWZkZWYgQ09ORklHX0hJR0hNRU0KKwkJaGlnaHN0YXJ0X3BmbiA9IFBGTl9ET1dOKEhJR0hNRU1fU1RBUlQpOworCQloaWdoZW5kX3BmbiA9IG1heF9wZm47CisjZWxzZQorCQltYXhfbG93X3BmbiA9IFBGTl9ET1dOKEhJR0hNRU1fU1RBUlQpOworCQltYXhfcGZuID0gbWF4X2xvd19wZm47CisjZW5kaWYKKwl9CisKKworCS8qCisJICogSW4gYW55IGNhc2UgdGhlIGFkZGVkIHRvIHRoZSBtZW1ibG9jayBtZW1vcnkgcmVnaW9ucworCSAqIChoaWdobWVtL2xvd21lbSwgYXZhaWxhYmxlL3Jlc2VydmVkLCBldGMpIGFyZSBjb25zaWRlcmVkCisJICogYXMgcHJlc2VudCwgc28gaW5mb3JtIHNwYXJzZW1lbSBhYm91dCB0aGVtLgorCSAqLworCW1lbWJsb2Nrc19wcmVzZW50KCk7CisKIAkvKgogCSAqIFJlc2VydmUgaW5pdHJkIG1lbW9yeSBpZiBuZWVkZWQuCiAJICovCkBAIC01MjgsOCArMzkzLDkgQEAgc3RhdGljIGludCBfX2luaXQgZWFybHlfcGFyc2VfbWVtKGNoYXIgKnApCiAJICogc2l6ZS4KIAkgKi8KIAlpZiAodXNlcm1lbSA9PSAwKSB7Ci0JCWJvb3RfbWVtX21hcC5ucl9tYXAgPSAwOwogCQl1c2VybWVtID0gMTsKKwkJbWVtYmxvY2tfcmVtb3ZlKG1lbWJsb2NrX3N0YXJ0X29mX0RSQU0oKSwKKwkJCW1lbWJsb2NrX2VuZF9vZl9EUkFNKCkgLSBtZW1ibG9ja19zdGFydF9vZl9EUkFNKCkpOwogCX0KIAlzdGFydCA9IDA7CiAJc2l6ZSA9IG1lbXBhcnNlKHAsICZwKTsKQEAgLTU4NiwxNCArNDUyLDEzIEBAIGVhcmx5X3BhcmFtKCJtZW1tYXAiLCBlYXJseV9wYXJzZV9tZW1tYXApOwogdW5zaWduZWQgbG9uZyBzZXR1cF9lbGZjb3JlaGRyLCBzZXR1cF9lbGZjb3JlaGRyX3NpemU7CiBzdGF0aWMgaW50IF9faW5pdCBlYXJseV9wYXJzZV9lbGZjb3JlaGRyKGNoYXIgKnApCiB7Ci0JaW50IGk7CisJc3RydWN0IG1lbWJsb2NrX3JlZ2lvbiAqbWVtOwogCiAJc2V0dXBfZWxmY29yZWhkciA9IG1lbXBhcnNlKHAsICZwKTsKIAotCWZvciAoaSA9IDA7IGkgPCBib290X21lbV9tYXAubnJfbWFwOyBpKyspIHsKLQkJdW5zaWduZWQgbG9uZyBzdGFydCA9IGJvb3RfbWVtX21hcC5tYXBbaV0uYWRkcjsKLQkJdW5zaWduZWQgbG9uZyBlbmQgPSAoYm9vdF9tZW1fbWFwLm1hcFtpXS5hZGRyICsKLQkJCQkgICAgIGJvb3RfbWVtX21hcC5tYXBbaV0uc2l6ZSk7CisJIGZvcl9lYWNoX21lbWJsb2NrKG1lbW9yeSwgbWVtKSB7CisJCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSBtZW0tPmJhc2U7CisJCXVuc2lnbmVkIGxvbmcgZW5kID0gc3RhcnQgKyBtZW0tPnNpemU7CiAJCWlmIChzZXR1cF9lbGZjb3JlaGRyID49IHN0YXJ0ICYmIHNldHVwX2VsZmNvcmVoZHIgPCBlbmQpIHsKIAkJCS8qCiAJCQkgKiBSZXNlcnZlIGZyb20gdGhlIGVsZiBjb3JlIGhlYWRlciB0byB0aGUgZW5kIG9mCkBAIC02MTMsNDcgKzQ3OCwyMCBAQCBzdGF0aWMgaW50IF9faW5pdCBlYXJseV9wYXJzZV9lbGZjb3JlaGRyKGNoYXIgKnApCiBlYXJseV9wYXJhbSgiZWxmY29yZWhkciIsIGVhcmx5X3BhcnNlX2VsZmNvcmVoZHIpOwogI2VuZGlmCiAKLXN0YXRpYyB2b2lkIF9faW5pdCBhcmNoX21lbV9hZGRwYXJ0KHBoeXNfYWRkcl90IG1lbSwgcGh5c19hZGRyX3QgZW5kLCBpbnQgdHlwZSkKLXsKLQlwaHlzX2FkZHJfdCBzaXplOwotCWludCBpOwotCi0Jc2l6ZSA9IGVuZCAtIG1lbTsKLQlpZiAoIXNpemUpCi0JCXJldHVybjsKLQotCS8qIE1ha2Ugc3VyZSBpdCBpcyBpbiB0aGUgYm9vdF9tZW1fbWFwICovCi0JZm9yIChpID0gMDsgaSA8IGJvb3RfbWVtX21hcC5ucl9tYXA7IGkrKykgewotCQlpZiAobWVtID49IGJvb3RfbWVtX21hcC5tYXBbaV0uYWRkciAmJgotCQkgICAgbWVtIDwgKGJvb3RfbWVtX21hcC5tYXBbaV0uYWRkciArCi0JCQkgICBib290X21lbV9tYXAubWFwW2ldLnNpemUpKQotCQkJcmV0dXJuOwotCX0KLQlhZGRfbWVtb3J5X3JlZ2lvbihtZW0sIHNpemUsIHR5cGUpOwotfQotCiAjaWZkZWYgQ09ORklHX0tFWEVDCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZyBnZXRfdG90YWxfbWVtKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsOwotCi0JdG90YWwgPSBtYXhfcGZuIC0gbWluX2xvd19wZm47Ci0JcmV0dXJuIHRvdGFsIDw8IFBBR0VfU0hJRlQ7Ci19Ci0KIHN0YXRpYyB2b2lkIF9faW5pdCBtaXBzX3BhcnNlX2NyYXNoa2VybmVsKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsX21lbTsKIAl1bnNpZ25lZCBsb25nIGxvbmcgY3Jhc2hfc2l6ZSwgY3Jhc2hfYmFzZTsKIAlpbnQgcmV0OwogCi0JdG90YWxfbWVtID0gZ2V0X3RvdGFsX21lbSgpOworCXRvdGFsX21lbSA9IG1lbWJsb2NrX3BoeXNfbWVtX3NpemUoKTsKIAlyZXQgPSBwYXJzZV9jcmFzaGtlcm5lbChib290X2NvbW1hbmRfbGluZSwgdG90YWxfbWVtLAogCQkJCSZjcmFzaF9zaXplLCAmY3Jhc2hfYmFzZSk7CiAJaWYgKHJldCAhPSAwIHx8IGNyYXNoX3NpemUgPD0gMCkKIAkJcmV0dXJuOwogCi0JaWYgKCFtZW1vcnlfcmVnaW9uX2F2YWlsYWJsZShjcmFzaF9iYXNlLCBjcmFzaF9zaXplKSkgeworCWlmICghbWVtYmxvY2tfZmluZF9pbl9yYW5nZShjcmFzaF9iYXNlLCBjcmFzaF9iYXNlICsgY3Jhc2hfc2l6ZSwgY3Jhc2hfc2l6ZSwgMCkpIHsKIAkJcHJfd2FybigiSW52YWxpZCBtZW1vcnkgcmVnaW9uIHJlc2VydmVkIGZvciBjcmFzaCBrZXJuZWxcbiIpOwogCQlyZXR1cm47CiAJfQpAQCAtNjg2LDYgKzUyNCwxNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcmVxdWVzdF9jcmFzaGtlcm5lbChzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKIH0KICNlbmRpZiAvKiAhZGVmaW5lZChDT05GSUdfS0VYRUMpICAqLwogCitzdGF0aWMgdm9pZCBfX2luaXQgY2hlY2tfa2VybmVsX3NlY3Rpb25zX21lbSh2b2lkKQoreworCXBoeXNfYWRkcl90IHN0YXJ0ID0gUEZOX1BIWVMoUEZOX0RPV04oX19wYV9zeW1ib2woJl90ZXh0KSkpOworCXBoeXNfYWRkcl90IHNpemUgPSBQRk5fUEhZUyhQRk5fVVAoX19wYV9zeW1ib2woJl9lbmQpKSkgLSBzdGFydDsKKworCWlmICghbWVtYmxvY2tfaXNfcmVnaW9uX21lbW9yeShzdGFydCwgc2l6ZSkpIHsKKwkJcHJfaW5mbygiS2VybmVsIHNlY3Rpb25zIGFyZSBub3QgaW4gdGhlIG1lbW9yeSBtYXBzXG4iKTsKKwkJbWVtYmxvY2tfYWRkKHN0YXJ0LCBzaXplKTsKKwl9Cit9CisKICNkZWZpbmUgVVNFX1BST01fQ01ETElORQlJU19FTkFCTEVEKENPTkZJR19NSVBTX0NNRExJTkVfRlJPTV9CT09UTE9BREVSKQogI2RlZmluZSBVU0VfRFRCX0NNRExJTkUJCUlTX0VOQUJMRUQoQ09ORklHX01JUFNfQ01ETElORV9GUk9NX0RUQikKICNkZWZpbmUgRVhURU5EX1dJVEhfUFJPTQlJU19FTkFCTEVEKENPTkZJR19NSVBTX0NNRExJTkVfRFRCX0VYVEVORCkKQEAgLTczMSwyNSArNTgwLDYgQEAgc3RhdGljIHZvaWQgX19pbml0IGFyY2hfbWVtX2luaXQoY2hhciAqKmNtZGxpbmVfcCkKIAlwbGF0X21lbV9zZXR1cCgpOwogCW1lbWJsb2NrX3NldF9ib3R0b21fdXAodHJ1ZSk7CiAKLQkvKgotCSAqIE1ha2Ugc3VyZSBhbGwga2VybmVsIG1lbW9yeSBpcyBpbiB0aGUgbWFwcy4gIFRoZSAiVVAiIGFuZAotCSAqICJET1dOIiBhcmUgb3Bwb3NpdGUgZm9yIGluaXRkYXRhIHNpbmNlIGlmIGl0IGNyb3NzZXMgb3ZlcgotCSAqIGludG8gYW5vdGhlciBtZW1vcnkgc2VjdGlvbiB5b3UgZG9uJ3Qgd2FudCB0aGF0IHRvIGJlCi0JICogZnJlZWQgd2hlbiB0aGUgaW5pdGRhdGEgaXMgZnJlZWQuCi0JICovCi0JYXJjaF9tZW1fYWRkcGFydChQRk5fRE9XTihfX3BhX3N5bWJvbCgmX3RleHQpKSA8PCBQQUdFX1NISUZULAotCQkJIFBGTl9VUChfX3BhX3N5bWJvbCgmX2VkYXRhKSkgPDwgUEFHRV9TSElGVCwKLQkJCSBCT09UX01FTV9SQU0pOwotCWFyY2hfbWVtX2FkZHBhcnQoUEZOX1VQKF9fcGFfc3ltYm9sKCZfX2luaXRfYmVnaW4pKSA8PCBQQUdFX1NISUZULAotCQkJIFBGTl9ET1dOKF9fcGFfc3ltYm9sKCZfX2luaXRfZW5kKSkgPDwgUEFHRV9TSElGVCwKLQkJCSBCT09UX01FTV9JTklUX1JBTSk7Ci0JYXJjaF9tZW1fYWRkcGFydChQRk5fRE9XTihfX3BhX3N5bWJvbCgmX19ic3Nfc3RhcnQpKSA8PCBQQUdFX1NISUZULAotCQkJIFBGTl9VUChfX3BhX3N5bWJvbCgmX19ic3Nfc3RvcCkpIDw8IFBBR0VfU0hJRlQsCi0JCQkgQk9PVF9NRU1fUkFNKTsKLQotCXByX2luZm8oIkRldGVybWluZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOwotCXByaW50X21lbW9yeV9tYXAoKTsKLQogI2lmIGRlZmluZWQoQ09ORklHX0NNRExJTkVfQk9PTCkgJiYgZGVmaW5lZChDT05GSUdfQ01ETElORV9PVkVSUklERSkKIAlzdHJsY3B5KGJvb3RfY29tbWFuZF9saW5lLCBidWlsdGluX2NtZGxpbmUsIENPTU1BTkRfTElORV9TSVpFKTsKICNlbHNlCkBAIC03ODMsMTQgKzYxMywxNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYXJjaF9tZW1faW5pdChjaGFyICoqY21kbGluZV9wKQogCiAJcGFyc2VfZWFybHlfcGFyYW0oKTsKIAotCWlmICh1c2VybWVtKSB7Ci0JCXByX2luZm8oIlVzZXItZGVmaW5lZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7Ci0JCXByaW50X21lbW9yeV9tYXAoKTsKLQl9CisJaWYgKHVzZXJtZW0pCisJCXByX2luZm8oIlVzZXItZGVmaW5lZCBwaHlzaWNhbCBSQU0gbWFwIG92ZXJ3cml0ZVxuIik7CisKKwljaGVja19rZXJuZWxfc2VjdGlvbnNfbWVtKCk7CiAKIAllYXJseV9pbml0X2ZkdF9yZXNlcnZlX3NlbGYoKTsKIAllYXJseV9pbml0X2ZkdF9zY2FuX3Jlc2VydmVkX21lbSgpOwogCisjaWZuZGVmIENPTkZJR19OVU1BCisJbWVtYmxvY2tfc2V0X25vZGUoMCwgUEhZU19BRERSX01BWCwgJm1lbWJsb2NrLm1lbW9yeSwgMCk7CisjZW5kaWYKIAlib290bWVtX2luaXQoKTsKIAogCS8qCkBAIC04MzAsMTIgKzY2MywxMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYXJjaF9tZW1faW5pdChjaGFyICoqY21kbGluZV9wKQogCiAJbWVtYmxvY2tfZHVtcF9hbGwoKTsKIAotCWVhcmx5X21lbXRlc3QoUEZOX1BIWVMobWluX2xvd19wZm4pLCBQRk5fUEhZUyhtYXhfbG93X3BmbikpOworCWVhcmx5X21lbXRlc3QoUEZOX1BIWVMoQVJDSF9QRk5fT0ZGU0VUKSwgUEZOX1BIWVMobWF4X2xvd19wZm4pKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IHJlc291cmNlX2luaXQodm9pZCkKIHsKLQlpbnQgaTsKKwlzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uICpyZWdpb247CiAKIAlpZiAoVU5DQUNfQkFTRSAhPSBJT19CQVNFKQogCQlyZXR1cm47CkBAIC04NDcsMTYgKzY4MCwxMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcmVzb3VyY2VfaW5pdCh2b2lkKQogCWJzc19yZXNvdXJjZS5zdGFydCA9IF9fcGFfc3ltYm9sKCZfX2Jzc19zdGFydCk7CiAJYnNzX3Jlc291cmNlLmVuZCA9IF9fcGFfc3ltYm9sKCZfX2Jzc19zdG9wKSAtIDE7CiAKLQlmb3IgKGkgPSAwOyBpIDwgYm9vdF9tZW1fbWFwLm5yX21hcDsgaSsrKSB7CisJZm9yX2VhY2hfbWVtYmxvY2sobWVtb3J5LCByZWdpb24pIHsKKwkJcGh5c19hZGRyX3Qgc3RhcnQgPSBQRk5fUEhZUyhtZW1ibG9ja19yZWdpb25fbWVtb3J5X2Jhc2VfcGZuKHJlZ2lvbikpOworCQlwaHlzX2FkZHJfdCBlbmQgPSBQRk5fUEhZUyhtZW1ibG9ja19yZWdpb25fbWVtb3J5X2VuZF9wZm4ocmVnaW9uKSkgLSAxOwogCQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQkJdW5zaWduZWQgbG9uZyBzdGFydCwgZW5kOwotCi0JCXN0YXJ0ID0gYm9vdF9tZW1fbWFwLm1hcFtpXS5hZGRyOwotCQllbmQgPSBib290X21lbV9tYXAubWFwW2ldLmFkZHIgKyBib290X21lbV9tYXAubWFwW2ldLnNpemUgLSAxOwotCQlpZiAoc3RhcnQgPj0gSElHSE1FTV9TVEFSVCkKLQkJCWNvbnRpbnVlOwotCQlpZiAoZW5kID49IEhJR0hNRU1fU1RBUlQpCi0JCQllbmQgPSBISUdITUVNX1NUQVJUIC0gMTsKIAogCQlyZXMgPSBtZW1ibG9ja19hbGxvYyhzaXplb2Yoc3RydWN0IHJlc291cmNlKSwgU01QX0NBQ0hFX0JZVEVTKTsKIAkJaWYgKCFyZXMpCkBAIC04NjUsMjAgKzY5Miw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCByZXNvdXJjZV9pbml0KHZvaWQpCiAKIAkJcmVzLT5zdGFydCA9IHN0YXJ0OwogCQlyZXMtPmVuZCA9IGVuZDsKLQkJcmVzLT5mbGFncyA9IElPUkVTT1VSQ0VfTUVNIHwgSU9SRVNPVVJDRV9CVVNZOwotCi0JCXN3aXRjaCAoYm9vdF9tZW1fbWFwLm1hcFtpXS50eXBlKSB7Ci0JCWNhc2UgQk9PVF9NRU1fUkFNOgotCQljYXNlIEJPT1RfTUVNX0lOSVRfUkFNOgotCQljYXNlIEJPT1RfTUVNX1JPTV9EQVRBOgotCQkJcmVzLT5uYW1lID0gIlN5c3RlbSBSQU0iOwotCQkJcmVzLT5mbGFncyB8PSBJT1JFU09VUkNFX1NZU1JBTTsKLQkJCWJyZWFrOwotCQljYXNlIEJPT1RfTUVNX1JFU0VSVkVEOgotCQljYXNlIEJPT1RfTUVNX05PTUFQOgotCQlkZWZhdWx0OgotCQkJcmVzLT5uYW1lID0gInJlc2VydmVkIjsKLQkJfQorCQlyZXMtPmZsYWdzID0gSU9SRVNPVVJDRV9TWVNURU1fUkFNIHwgSU9SRVNPVVJDRV9CVVNZOworCQlyZXMtPm5hbWUgPSAiU3lzdGVtIFJBTSI7CiAKIAkJcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsIHJlcyk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbC5jIGIvYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxsLmMKaW5kZXggYjZkYzc4YS4uYjBlMjVlOSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxsLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxsLmMKQEAgLTEzMiw2ICsxMzIsNyBAQCBzdGF0aWMgaW5saW5lIGludCBtaXBzX2F0b21pY19zZXQodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIG5ldykKIAkJICBbZWZhdWx0XSAiaSIgKC1FRkFVTFQpCiAJCTogIm1lbW9yeSIpOwogCX0gZWxzZSBpZiAoY3B1X2hhc19sbHNjKSB7CisJCWxvb25nc29uX2xsc2NfbWIoKTsKIAkJX19hc21fXyBfX3ZvbGF0aWxlX18gKAogCQkiCS5zZXQJcHVzaAkJCQkJXG4iCiAJCSIJLnNldAkiTUlQU19JU0FfQVJDSF9MRVZFTCIJCQlcbiIKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbHRibC5zaCBiL2FyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbHRibC5zaAppbmRleCBhY2QzMzhkLi4xZTI1NzA3IDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGx0Ymwuc2gKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsdGJsLnNoCkBAIC0xMywxMCArMTMsMTAgQEAKIAl0X2VudHJ5PSIkMyIKIAogCXdoaWxlIFsgJHRfbnh0IC1sdCAkdF9uciBdOyBkbwotCQlwcmludGYgIl9fU1lTQ0FMTCglcywgc3lzX25pX3N5c2NhbGwsIClcbiIgIiR7dF9ueHR9IgorCQlwcmludGYgIl9fU1lTQ0FMTCglcyxzeXNfbmlfc3lzY2FsbClcbiIgIiR7dF9ueHR9IgogCQl0X254dD0kKCh0X254dCsxKSkKIAlkb25lCi0JcHJpbnRmICJfX1NZU0NBTEwoJXMsICVzLCApXG4iICIke3Rfbnh0fSIgIiR7dF9lbnRyeX0iCisJcHJpbnRmICJfX1NZU0NBTEwoJXMsJXMpXG4iICIke3Rfbnh0fSIgIiR7dF9lbnRyeX0iCiB9CiAKIGdyZXAgLUUgIl5bMC05QS1GYS1mWHhdK1tbOnNwYWNlOl1dKyR7bXlfYWJpc30iICIkaW4iIHwgc29ydCAtbiB8ICgKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvdmRzby5jIGIvYXJjaC9taXBzL2tlcm5lbC92ZHNvLmMKaW5kZXggM2EzNzI2OC4uYmMzNWY4NCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC92ZHNvLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC92ZHNvLmMKQEAgLTIwLDkgKzIwLDEyIEBACiAjaW5jbHVkZSA8YXNtL21pcHMtY3BzLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDxhc20vdmRzby5oPgorI2luY2x1ZGUgPHZkc28vaGVscGVycy5oPgorI2luY2x1ZGUgPHZkc28vdnN5c2NhbGwuaD4KIAogLyogS2VybmVsLXByb3ZpZGVkIGRhdGEgdXNlZCBieSB0aGUgVkRTTy4gKi8KLXN0YXRpYyB1bmlvbiBtaXBzX3Zkc29fZGF0YSB2ZHNvX2RhdGEgX19wYWdlX2FsaWduZWRfZGF0YTsKK3N0YXRpYyB1bmlvbiBtaXBzX3Zkc29fZGF0YSBtaXBzX3Zkc29fZGF0YSBfX3BhZ2VfYWxpZ25lZF9kYXRhOworc3RydWN0IHZkc29fZGF0YSAqdmRzb19kYXRhID0gbWlwc192ZHNvX2RhdGEuZGF0YTsKIAogLyoKICAqIE1hcHBpbmcgZm9yIHRoZSBWRFNPIGRhdGEvR0lDIHBhZ2VzLiBUaGUgcmVhbCBwYWdlcyBhcmUgbWFwcGVkIG1hbnVhbGx5LCBhcwpAQCAtNjYsMzQgKzY5LDYgQEAgc3RhdGljIGludCBfX2luaXQgaW5pdF92ZHNvKHZvaWQpCiB9CiBzdWJzeXNfaW5pdGNhbGwoaW5pdF92ZHNvKTsKIAotdm9pZCB1cGRhdGVfdnN5c2NhbGwoc3RydWN0IHRpbWVrZWVwZXIgKnRrKQotewotCXZkc29fZGF0YV93cml0ZV9iZWdpbigmdmRzb19kYXRhKTsKLQotCXZkc29fZGF0YS54dGltZV9zZWMgPSB0ay0+eHRpbWVfc2VjOwotCXZkc29fZGF0YS54dGltZV9uc2VjID0gdGstPnRrcl9tb25vLnh0aW1lX25zZWM7Ci0JdmRzb19kYXRhLndhbGxfdG9fbW9ub19zZWMgPSB0ay0+d2FsbF90b19tb25vdG9uaWMudHZfc2VjOwotCXZkc29fZGF0YS53YWxsX3RvX21vbm9fbnNlYyA9IHRrLT53YWxsX3RvX21vbm90b25pYy50dl9uc2VjOwotCXZkc29fZGF0YS5jc19zaGlmdCA9IHRrLT50a3JfbW9uby5zaGlmdDsKLQotCXZkc29fZGF0YS5jbG9ja19tb2RlID0gdGstPnRrcl9tb25vLmNsb2NrLT5hcmNoZGF0YS52ZHNvX2Nsb2NrX21vZGU7Ci0JaWYgKHZkc29fZGF0YS5jbG9ja19tb2RlICE9IFZEU09fQ0xPQ0tfTk9ORSkgewotCQl2ZHNvX2RhdGEuY3NfbXVsdCA9IHRrLT50a3JfbW9uby5tdWx0OwotCQl2ZHNvX2RhdGEuY3NfY3ljbGVfbGFzdCA9IHRrLT50a3JfbW9uby5jeWNsZV9sYXN0OwotCQl2ZHNvX2RhdGEuY3NfbWFzayA9IHRrLT50a3JfbW9uby5tYXNrOwotCX0KLQotCXZkc29fZGF0YV93cml0ZV9lbmQoJnZkc29fZGF0YSk7Ci19Ci0KLXZvaWQgdXBkYXRlX3ZzeXNjYWxsX3R6KHZvaWQpCi17Ci0JaWYgKHZkc29fZGF0YS5jbG9ja19tb2RlICE9IFZEU09fQ0xPQ0tfTk9ORSkgewotCQl2ZHNvX2RhdGEudHpfbWludXRlc3dlc3QgPSBzeXNfdHoudHpfbWludXRlc3dlc3Q7Ci0JCXZkc29fZGF0YS50el9kc3R0aW1lID0gc3lzX3R6LnR6X2RzdHRpbWU7Ci0JfQotfQotCiBzdGF0aWMgdW5zaWduZWQgbG9uZyB2ZHNvX2Jhc2Uodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGJhc2U7CkBAIC0xNjMsNyArMTM4LDcgQEAgaW50IGFyY2hfc2V0dXBfYWRkaXRpb25hbF9wYWdlcyhzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLCBpbnQgdXNlc19pbnRlcnApCiAJICovCiAJaWYgKGNwdV9oYXNfZGNfYWxpYXNlcykgewogCQliYXNlID0gX19BTElHTl9NQVNLKGJhc2UsIHNobV9hbGlnbl9tYXNrKTsKLQkJYmFzZSArPSAoKHVuc2lnbmVkIGxvbmcpJnZkc29fZGF0YSAtIGdpY19zaXplKSAmIHNobV9hbGlnbl9tYXNrOworCQliYXNlICs9ICgodW5zaWduZWQgbG9uZyl2ZHNvX2RhdGEgLSBnaWNfc2l6ZSkgJiBzaG1fYWxpZ25fbWFzazsKIAl9CiAKIAlkYXRhX2FkZHIgPSBiYXNlICsgZ2ljX3NpemU7CkBAIC0xODksNyArMTY0LDcgQEAgaW50IGFyY2hfc2V0dXBfYWRkaXRpb25hbF9wYWdlcyhzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLCBpbnQgdXNlc19pbnRlcnApCiAKIAkvKiBNYXAgZGF0YSBwYWdlLiAqLwogCXJldCA9IHJlbWFwX3Bmbl9yYW5nZSh2bWEsIGRhdGFfYWRkciwKLQkJCSAgICAgIHZpcnRfdG9fcGh5cygmdmRzb19kYXRhKSA+PiBQQUdFX1NISUZULAorCQkJICAgICAgdmlydF90b19waHlzKHZkc29fZGF0YSkgPj4gUEFHRV9TSElGVCwKIAkJCSAgICAgIFBBR0VfU0laRSwgUEFHRV9SRUFET05MWSk7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbGFudGlxL3h3YXkvc3lzY3RybC5jIGIvYXJjaC9taXBzL2xhbnRpcS94d2F5L3N5c2N0cmwuYwppbmRleCBiNDMyM2IyLi4xNTZhOTVhIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbGFudGlxL3h3YXkvc3lzY3RybC5jCisrKyBiL2FyY2gvbWlwcy9sYW50aXEveHdheS9zeXNjdHJsLmMKQEAgLTQ2OCwxNCArNDY4LDE0IEBAIHZvaWQgX19pbml0IGx0cV9zb2NfaW5pdCh2b2lkKQogCQljbGtkZXZfYWRkX3BtdSgiMWYyMDMwMTgudXNiMi1waHkiLCAicGh5IiwgMSwgMiwgUE1VX0FOQUxPR19VU0IwX1ApOwogCQljbGtkZXZfYWRkX3BtdSgiMWYyMDMwMzQudXNiMi1waHkiLCAicGh5IiwgMSwgMiwgUE1VX0FOQUxPR19VU0IxX1ApOwogCQkvKiByYyAwICovCi0JCWNsa2Rldl9hZGRfcG11KCIxZDkwMDAwMC5wY2llIiwgInBoeSIsIDEsIDIsIFBNVV9BTkFMT0dfUENJRTBfUCk7CisJCWNsa2Rldl9hZGRfcG11KCIxZjEwNjgwMC5waHkiLCAicGh5IiwgMSwgMiwgUE1VX0FOQUxPR19QQ0lFMF9QKTsKIAkJY2xrZGV2X2FkZF9wbXUoIjFkOTAwMDAwLnBjaWUiLCAibXNpIiwgMSwgMSwgUE1VMV9QQ0lFX01TSSk7Ci0JCWNsa2Rldl9hZGRfcG11KCIxZDkwMDAwMC5wY2llIiwgInBkaSIsIDEsIDEsIFBNVTFfUENJRV9QREkpOworCQljbGtkZXZfYWRkX3BtdSgiMWYxMDY4MDAucGh5IiwgInBkaSIsIDEsIDEsIFBNVTFfUENJRV9QREkpOwogCQljbGtkZXZfYWRkX3BtdSgiMWQ5MDAwMDAucGNpZSIsICJjdGwiLCAxLCAxLCBQTVUxX1BDSUVfQ1RMKTsKIAkJLyogcmMgMSAqLwotCQljbGtkZXZfYWRkX3BtdSgiMTkwMDAwMDAucGNpZSIsICJwaHkiLCAxLCAyLCBQTVVfQU5BTE9HX1BDSUUxX1ApOworCQljbGtkZXZfYWRkX3BtdSgiMWY3MDA0MDAucGh5IiwgInBoeSIsIDEsIDIsIFBNVV9BTkFMT0dfUENJRTFfUCk7CiAJCWNsa2Rldl9hZGRfcG11KCIxOTAwMDAwMC5wY2llIiwgIm1zaSIsIDEsIDEsIFBNVTFfUENJRTFfTVNJKTsKLQkJY2xrZGV2X2FkZF9wbXUoIjE5MDAwMDAwLnBjaWUiLCAicGRpIiwgMSwgMSwgUE1VMV9QQ0lFMV9QREkpOworCQljbGtkZXZfYWRkX3BtdSgiMWY3MDA0MDAucGh5IiwgInBkaSIsIDEsIDEsIFBNVTFfUENJRTFfUERJKTsKIAkJY2xrZGV2X2FkZF9wbXUoIjE5MDAwMDAwLnBjaWUiLCAiY3RsIiwgMSwgMSwgUE1VMV9QQ0lFMV9DVEwpOwogCX0KIApAQCAtNDk5LDkgKzQ5OSw5IEBAIHZvaWQgX19pbml0IGx0cV9zb2NfaW5pdCh2b2lkKQogCQljbGtkZXZfYWRkX3BtdSgiMWUxMDEwMDAudXNiIiwgIm90ZyIsIDEsIDAsIFBNVV9VU0IwKTsKIAkJY2xrZGV2X2FkZF9wbXUoIjFlMTA2MDAwLnVzYiIsICJvdGciLCAxLCAwLCBQTVVfVVNCMSk7CiAJCS8qIHJjIDIgKi8KLQkJY2xrZGV2X2FkZF9wbXUoIjFhODAwMDAwLnBjaWUiLCAicGh5IiwgMSwgMiwgUE1VX0FOQUxPR19QQ0lFMl9QKTsKKwkJY2xrZGV2X2FkZF9wbXUoIjFmMTA2YTAwLnBjaWUiLCAicGh5IiwgMSwgMiwgUE1VX0FOQUxPR19QQ0lFMl9QKTsKIAkJY2xrZGV2X2FkZF9wbXUoIjFhODAwMDAwLnBjaWUiLCAibXNpIiwgMSwgMSwgUE1VMV9QQ0lFMl9NU0kpOwotCQljbGtkZXZfYWRkX3BtdSgiMWE4MDAwMDAucGNpZSIsICJwZGkiLCAxLCAxLCBQTVUxX1BDSUUyX1BESSk7CisJCWNsa2Rldl9hZGRfcG11KCIxZjEwNmEwMC5wY2llIiwgInBkaSIsIDEsIDEsIFBNVTFfUENJRTJfUERJKTsKIAkJY2xrZGV2X2FkZF9wbXUoIjFhODAwMDAwLnBjaWUiLCAiY3RsIiwgMSwgMSwgUE1VMV9QQ0lFMl9DVEwpOwogCQljbGtkZXZfYWRkX3BtdSgiMWUxMGIzMDguZXRoIiwgTlVMTCwgMCwgMCwgUE1VX1NXSVRDSCB8IFBNVV9QUEVfRFApOwogCQljbGtkZXZfYWRkX3BtdSgiMWRhMDAwMDAudXNpZiIsICJOVUxMIiwgMSwgMCwgUE1VX1VTSUYpOwpAQCAtNTI2LDEwICs1MjYsMTAgQEAgdm9pZCBfX2luaXQgbHRxX3NvY19pbml0KHZvaWQpCiAJCWNsa2Rldl9hZGRfcG11KCIxZTEwMTAwMC51c2IiLCAib3RnIiwgMSwgMCwgUE1VX1VTQjAgfCBQTVVfQUhCTSk7CiAJCWNsa2Rldl9hZGRfcG11KCIxZjIwMzAzNC51c2IyLXBoeSIsICJwaHkiLCAxLCAwLCBQTVVfVVNCMV9QKTsKIAkJY2xrZGV2X2FkZF9wbXUoIjFlMTA2MDAwLnVzYiIsICJvdGciLCAxLCAwLCBQTVVfVVNCMSB8IFBNVV9BSEJNKTsKLQkJY2xrZGV2X2FkZF9wbXUoIjFkOTAwMDAwLnBjaWUiLCAicGh5IiwgMSwgMSwgUE1VMV9QQ0lFX1BIWSk7CisJCWNsa2Rldl9hZGRfcG11KCIxZjEwNjgwMC5waHkiLCAicGh5IiwgMSwgMSwgUE1VMV9QQ0lFX1BIWSk7CiAJCWNsa2Rldl9hZGRfcG11KCIxZDkwMDAwMC5wY2llIiwgImJ1cyIsIDEsIDAsIFBNVV9QQ0lFX0NMSyk7CiAJCWNsa2Rldl9hZGRfcG11KCIxZDkwMDAwMC5wY2llIiwgIm1zaSIsIDEsIDEsIFBNVTFfUENJRV9NU0kpOwotCQljbGtkZXZfYWRkX3BtdSgiMWQ5MDAwMDAucGNpZSIsICJwZGkiLCAxLCAxLCBQTVUxX1BDSUVfUERJKTsKKwkJY2xrZGV2X2FkZF9wbXUoIjFmMTA2ODAwLnBoeSIsICJwZGkiLCAxLCAxLCBQTVUxX1BDSUVfUERJKTsKIAkJY2xrZGV2X2FkZF9wbXUoIjFkOTAwMDAwLnBjaWUiLCAiY3RsIiwgMSwgMSwgUE1VMV9QQ0lFX0NUTCk7CiAJCWNsa2Rldl9hZGRfcG11KE5VTEwsICJhaGIiLCAxLCAwLCBQTVVfQUhCTSB8IFBNVV9BSEJTKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL01ha2VmaWxlIGIvYXJjaC9taXBzL21tL01ha2VmaWxlCmluZGV4IDFlOGQzMzUuLjQ2ZjQ4M2UgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9tbS9NYWtlZmlsZQorKysgYi9hcmNoL21pcHMvbW0vTWFrZWZpbGUKQEAgLTI4LDExICsyOCwxMSBAQAogb2JqLSQoQ09ORklHX0hVR0VUTEJfUEFHRSkJKz0gaHVnZXRsYnBhZ2Uubwogb2JqLSQoQ09ORklHX0RNQV9OT05DT0hFUkVOVCkJKz0gZG1hLW5vbmNvaGVyZW50Lm8KIAorb2JqLSQoQ09ORklHX0NQVV9SM0tfVExCKQkrPSB0bGItcjNrLm8KIG9iai0kKENPTkZJR19DUFVfUjRLX0NBQ0hFX1RMQikgKz0gYy1yNGsubyBjZXgtZ2VuLm8gdGxiLXI0ay5vCi1vYmotJChDT05GSUdfQ1BVX1IzMDAwKQkJKz0gYy1yM2subyB0bGItcjNrLm8KLW9iai0kKENPTkZJR19DUFVfUjgwMDApCQkrPSBjLXI0ay5vIGNleC1nZW4ubyB0bGItcjhrLm8KK29iai0kKENPTkZJR19DUFVfUjMwMDApCQkrPSBjLXIzay5vCiBvYmotJChDT05GSUdfQ1BVX1NCMSkJCSs9IGMtcjRrLm8gY2Vyci1zYjEubyBjZXgtc2IxLm8gdGxiLXI0ay5vCi1vYmotJChDT05GSUdfQ1BVX1RYMzlYWCkJKz0gYy10eDM5Lm8gdGxiLXIzay5vCitvYmotJChDT05GSUdfQ1BVX1RYMzlYWCkJKz0gYy10eDM5Lm8KIG9iai0kKENPTkZJR19DUFVfQ0FWSVVNX09DVEVPTikgKz0gYy1vY3Rlb24ubyBjZXgtb2N0Lm8gdGxiLXI0ay5vCiAKIG9iai0kKENPTkZJR19JUDIyX0NQVV9TQ0FDSEUpCSs9IHNjLWlwMjIubwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL2MtcjRrLmMgYi9hcmNoL21pcHMvbW0vYy1yNGsuYwppbmRleCA1MTY2ZTM4Li44OWI5Yzg1IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbW0vYy1yNGsuYworKysgYi9hcmNoL21pcHMvbW0vYy1yNGsuYwpAQCAtMTA5OCw3ICsxMDk4LDYgQEAgc3RhdGljIHZvaWQgcHJvYmVfcGNhY2hlKHZvaWQpCiAJCWMtPm9wdGlvbnMgfD0gTUlQU19DUFVfQ0FDSEVfQ0RFWF9QOwogCQlicmVhazsKIAotCWNhc2UgQ1BVX1I1NDMyOgogCWNhc2UgQ1BVX1I1NTAwOgogCQlpY2FjaGVfc2l6ZSA9IDEgPDwgKDEyICsgKChjb25maWcgJiBDT05GX0lDKSA+PiA5KSk7CiAJCWMtPmljYWNoZS5saW5lc3ogPSAxNiA8PCAoKGNvbmZpZyAmIENPTkZfSUIpID4+IDUpOwpAQCAtMTEzNCw3ICsxMTMzLDYgQEAgc3RhdGljIHZvaWQgcHJvYmVfcGNhY2hlKHZvaWQpCiAJY2FzZSBDUFVfUjQ0MDBQQzoKIAljYXNlIENQVV9SNDQwMFNDOgogCWNhc2UgQ1BVX1I0NDAwTUM6Ci0JY2FzZSBDUFVfUjQzMDA6CiAJCWljYWNoZV9zaXplID0gMSA8PCAoMTIgKyAoKGNvbmZpZyAmIENPTkZfSUMpID4+IDkpKTsKIAkJYy0+aWNhY2hlLmxpbmVzeiA9IDE2IDw8ICgoY29uZmlnICYgQ09ORl9JQikgPj4gNSk7CiAJCWMtPmljYWNoZS53YXlzID0gMTsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9kbWEtbm9uY29oZXJlbnQuYyBiL2FyY2gvbWlwcy9tbS9kbWEtbm9uY29oZXJlbnQuYwppbmRleCBlZDU2YzZmLi4xZDRkNTdkIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbW0vZG1hLW5vbmNvaGVyZW50LmMKKysrIGIvYXJjaC9taXBzL21tL2RtYS1ub25jb2hlcmVudC5jCkBAIC02NSwxNCArNjUsNiBAQCBsb25nIGFyY2hfZG1hX2NvaGVyZW50X3RvX3BmbihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmNwdV9hZGRyLAogCXJldHVybiBwYWdlX3RvX3Bmbih2aXJ0X3RvX3BhZ2UoY2FjaGVkX2tlcm5lbF9hZGRyZXNzKGNwdV9hZGRyKSkpOwogfQogCi1wZ3Byb3RfdCBhcmNoX2RtYV9tbWFwX3BncHJvdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHBncHJvdF90IHByb3QsCi0JCXVuc2lnbmVkIGxvbmcgYXR0cnMpCi17Ci0JaWYgKGF0dHJzICYgRE1BX0FUVFJfV1JJVEVfQ09NQklORSkKLQkJcmV0dXJuIHBncHJvdF93cml0ZWNvbWJpbmUocHJvdCk7Ci0JcmV0dXJuIHBncHJvdF9ub25jYWNoZWQocHJvdCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCBkbWFfc3luY192aXJ0KHZvaWQgKmFkZHIsIHNpemVfdCBzaXplLAogCQllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCiB7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbW0vaW5pdC5jIGIvYXJjaC9taXBzL21tL2luaXQuYwppbmRleCA4YTAzOGIzLi4wOTBmYTY1IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbW0vaW5pdC5jCisrKyBiL2FyY2gvbWlwcy9tbS9pbml0LmMKQEAgLTI2OSwzNyArMjY5LDQ2IEBAIHZvaWQgX19pbml0IGZpeHJhbmdlX2luaXQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCiAjZW5kaWYKIH0KIAorc3RydWN0IG1hYXJfd2Fsa19pbmZvIHsKKwlzdHJ1Y3QgbWFhcl9jb25maWcgY2ZnWzE2XTsKKwl1bnNpZ25lZCBpbnQgbnVtX2NmZzsKK307CisKK3N0YXRpYyBpbnQgbWFhcl9yZXNfd2Fsayh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKKwkJCSB2b2lkICpkYXRhKQoreworCXN0cnVjdCBtYWFyX3dhbGtfaW5mbyAqd2kgPSBkYXRhOworCXN0cnVjdCBtYWFyX2NvbmZpZyAqY2ZnID0gJndpLT5jZmdbd2ktPm51bV9jZmddOworCXVuc2lnbmVkIGludCBtYWFyX2FsaWduOworCisJLyogTUFBUiByZWdpc3RlcnMgaG9sZCBwaHlzaWNhbCBhZGRyZXNzZXMgcmlnaHQgc2hpZnRlZCBieSA0IGJpdHMgKi8KKwltYWFyX2FsaWduID0gQklUKE1JUFNfTUFBUl9BRERSX1NISUZUICsgNCk7CisKKwkvKiBGaWxsIGluIHRoZSBNQUFSIGNvbmZpZyBlbnRyeSAqLworCWNmZy0+bG93ZXIgPSBBTElHTihQRk5fUEhZUyhzdGFydF9wZm4pLCBtYWFyX2FsaWduKTsKKwljZmctPnVwcGVyID0gQUxJR05fRE9XTihQRk5fUEhZUyhzdGFydF9wZm4gKyBucl9wYWdlcyksIG1hYXJfYWxpZ24pIC0gMTsKKwljZmctPmF0dHJzID0gTUlQU19NQUFSX1M7CisKKwkvKiBFbnN1cmUgd2UgZG9uJ3Qgb3ZlcmZsb3cgdGhlIGNmZyBhcnJheSAqLworCWlmICghV0FSTl9PTih3aS0+bnVtX2NmZyA+PSBBUlJBWV9TSVpFKHdpLT5jZmcpKSkKKwkJd2ktPm51bV9jZmcrKzsKKworCXJldHVybiAwOworfQorCisKIHVuc2lnbmVkIF9fd2VhayBwbGF0Zm9ybV9tYWFyX2luaXQodW5zaWduZWQgbnVtX3BhaXJzKQogewotCXN0cnVjdCBtYWFyX2NvbmZpZyBjZmdbQk9PVF9NRU1fTUFQX01BWF07Ci0JdW5zaWduZWQgaSwgbnVtX2NvbmZpZ3VyZWQsIG51bV9jZmcgPSAwOworCXVuc2lnbmVkIGludCBudW1fY29uZmlndXJlZDsKKwlzdHJ1Y3QgbWFhcl93YWxrX2luZm8gd2k7CiAKLQlmb3IgKGkgPSAwOyBpIDwgYm9vdF9tZW1fbWFwLm5yX21hcDsgaSsrKSB7Ci0JCXN3aXRjaCAoYm9vdF9tZW1fbWFwLm1hcFtpXS50eXBlKSB7Ci0JCWNhc2UgQk9PVF9NRU1fUkFNOgotCQljYXNlIEJPT1RfTUVNX0lOSVRfUkFNOgotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQljb250aW51ZTsKLQkJfQorCXdpLm51bV9jZmcgPSAwOworCXdhbGtfc3lzdGVtX3JhbV9yYW5nZSgwLCBtYXhfcGZuLCAmd2ksIG1hYXJfcmVzX3dhbGspOwogCi0JCS8qIFJvdW5kIGxvd2VyIHVwICovCi0JCWNmZ1tudW1fY2ZnXS5sb3dlciA9IGJvb3RfbWVtX21hcC5tYXBbaV0uYWRkcjsKLQkJY2ZnW251bV9jZmddLmxvd2VyID0gKGNmZ1tudW1fY2ZnXS5sb3dlciArIDB4ZmZmZikgJiB+MHhmZmZmOwotCi0JCS8qIFJvdW5kIHVwcGVyIGRvd24gKi8KLQkJY2ZnW251bV9jZmddLnVwcGVyID0gYm9vdF9tZW1fbWFwLm1hcFtpXS5hZGRyICsKLQkJCQkJYm9vdF9tZW1fbWFwLm1hcFtpXS5zaXplOwotCQljZmdbbnVtX2NmZ10udXBwZXIgPSAoY2ZnW251bV9jZmddLnVwcGVyICYgfjB4ZmZmZikgLSAxOwotCi0JCWNmZ1tudW1fY2ZnXS5hdHRycyA9IE1JUFNfTUFBUl9TOwotCQludW1fY2ZnKys7Ci0JfQotCi0JbnVtX2NvbmZpZ3VyZWQgPSBtYWFyX2NvbmZpZyhjZmcsIG51bV9jZmcsIG51bV9wYWlycyk7Ci0JaWYgKG51bV9jb25maWd1cmVkIDwgbnVtX2NmZykKLQkJcHJfd2FybigiTm90IGVub3VnaCBNQUFSIHBhaXJzICgldSkgZm9yIGFsbCBib290bWVtIHJlZ2lvbnMgKCV1KVxuIiwKLQkJCW51bV9wYWlycywgbnVtX2NmZyk7CisJbnVtX2NvbmZpZ3VyZWQgPSBtYWFyX2NvbmZpZyh3aS5jZmcsIHdpLm51bV9jZmcsIG51bV9wYWlycyk7CisJaWYgKG51bV9jb25maWd1cmVkIDwgd2kubnVtX2NmZykKKwkJcHJfd2FybigiTm90IGVub3VnaCBNQUFSIHBhaXJzICgldSkgZm9yIGFsbCBtZW1vcnkgcmVnaW9ucyAoJXUpXG4iLAorCQkJbnVtX3BhaXJzLCB3aS5udW1fY2ZnKTsKIAogCXJldHVybiBudW1fY29uZmlndXJlZDsKIH0KQEAgLTM4MiwzMyArMzkxLDYgQEAgdm9pZCBtYWFyX2luaXQodm9pZCkKIH0KIAogI2lmbmRlZiBDT05GSUdfTkVFRF9NVUxUSVBMRV9OT0RFUwotaW50IHBhZ2VfaXNfcmFtKHVuc2lnbmVkIGxvbmcgcGFnZW5yKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGJvb3RfbWVtX21hcC5ucl9tYXA7IGkrKykgewotCQl1bnNpZ25lZCBsb25nIGFkZHIsIGVuZDsKLQotCQlzd2l0Y2ggKGJvb3RfbWVtX21hcC5tYXBbaV0udHlwZSkgewotCQljYXNlIEJPT1RfTUVNX1JBTToKLQkJY2FzZSBCT09UX01FTV9JTklUX1JBTToKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJLyogbm90IHVzYWJsZSBtZW1vcnkgKi8KLQkJCWNvbnRpbnVlOwotCQl9Ci0KLQkJYWRkciA9IFBGTl9VUChib290X21lbV9tYXAubWFwW2ldLmFkZHIpOwotCQllbmQgPSBQRk5fRE9XTihib290X21lbV9tYXAubWFwW2ldLmFkZHIgKwotCQkJICAgICAgIGJvb3RfbWVtX21hcC5tYXBbaV0uc2l6ZSk7Ci0KLQkJaWYgKHBhZ2VuciA+PSBhZGRyICYmIHBhZ2VuciA8IGVuZCkKLQkJCXJldHVybiAxOwotCX0KLQotCXJldHVybiAwOwotfQotCiB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgbWF4X3pvbmVfcGZuc1tNQVhfTlJfWk9ORVNdOwpAQCAtNDQzLDcgKzQyNSw3IEBAIHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiBzdGF0aWMgc3RydWN0IGtjb3JlX2xpc3Qga2NvcmVfa3NlZzA7CiAjZW5kaWYKIAotc3RhdGljIGlubGluZSB2b2lkIG1lbV9pbml0X2ZyZWVfaGlnaG1lbSh2b2lkKQorc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCBtZW1faW5pdF9mcmVlX2hpZ2htZW0odm9pZCkKIHsKICNpZmRlZiBDT05GSUdfSElHSE1FTQogCXVuc2lnbmVkIGxvbmcgdG1wOwpAQCAtNDU0LDcgKzQzNiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1faW5pdF9mcmVlX2hpZ2htZW0odm9pZCkKIAlmb3IgKHRtcCA9IGhpZ2hzdGFydF9wZm47IHRtcCA8IGhpZ2hlbmRfcGZuOyB0bXArKykgewogCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHBmbl90b19wYWdlKHRtcCk7CiAKLQkJaWYgKCFwYWdlX2lzX3JhbSh0bXApKQorCQlpZiAoIW1lbWJsb2NrX2lzX21lbW9yeShQRk5fUEhZUyh0bXApKSkKIAkJCVNldFBhZ2VSZXNlcnZlZChwYWdlKTsKIAkJZWxzZQogCQkJZnJlZV9oaWdobWVtX3BhZ2UocGFnZSk7CkBAIC00NjQsNiArNDQ2LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1faW5pdF9mcmVlX2hpZ2htZW0odm9pZCkKIAogdm9pZCBfX2luaXQgbWVtX2luaXQodm9pZCkKIHsKKwkvKgorCSAqIFdoZW4gX1BGTl9TSElGVCBpcyBncmVhdGVyIHRoYW4gUEFHRV9TSElGVCB3ZSB3b24ndCBoYXZlIGVub3VnaCBQVEUKKwkgKiBiaXRzIHRvIGhvbGQgYSBmdWxsIDMyYiBwaHlzaWNhbCBhZGRyZXNzIG9uIE1JUFMzMiBzeXN0ZW1zLgorCSAqLworCUJVSUxEX0JVR19PTihJU19FTkFCTEVEKENPTkZJR18zMkJJVCkgJiYgKF9QRk5fU0hJRlQgPiBQQUdFX1NISUZUKSk7CisKICNpZmRlZiBDT05GSUdfSElHSE1FTQogI2lmZGVmIENPTkZJR19ESVNDT05USUdNRU0KICNlcnJvciAiQ09ORklHX0hJR0hNRU0gYW5kIENPTkZJR19ESVNDT05USUdNRU0gZG9udCB3b3JrIHRvZ2V0aGVyIHlldCIKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9tbWFwLmMgYi9hcmNoL21pcHMvbW0vbW1hcC5jCmluZGV4IGQ3OWYyYjQuLjAwZmU5MGMgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9tbS9tbWFwLmMKKysrIGIvYXJjaC9taXBzL21tL21tYXAuYwpAQCAtMjAsMzMgKzIwLDYgQEAKIHVuc2lnbmVkIGxvbmcgc2htX2FsaWduX21hc2sgPSBQQUdFX1NJWkUgLSAxOwkvKiBTYW5lIGNhY2hlcyAqLwogRVhQT1JUX1NZTUJPTChzaG1fYWxpZ25fbWFzayk7CiAKLS8qIGdhcCBiZXR3ZWVuIG1tYXAgYW5kIHN0YWNrICovCi0jZGVmaW5lIE1JTl9HQVAgKDEyOCoxMDI0KjEwMjRVTCkKLSNkZWZpbmUgTUFYX0dBUCAoKFRBU0tfU0laRSkvNio1KQotCi1zdGF0aWMgaW50IG1tYXBfaXNfbGVnYWN5KHN0cnVjdCBybGltaXQgKnJsaW1fc3RhY2spCi17Ci0JaWYgKGN1cnJlbnQtPnBlcnNvbmFsaXR5ICYgQUREUl9DT01QQVRfTEFZT1VUKQotCQlyZXR1cm4gMTsKLQotCWlmIChybGltX3N0YWNrLT5ybGltX2N1ciA9PSBSTElNX0lORklOSVRZKQotCQlyZXR1cm4gMTsKLQotCXJldHVybiBzeXNjdGxfbGVnYWN5X3ZhX2xheW91dDsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGxvbmcgbW1hcF9iYXNlKHVuc2lnbmVkIGxvbmcgcm5kLCBzdHJ1Y3QgcmxpbWl0ICpybGltX3N0YWNrKQotewotCXVuc2lnbmVkIGxvbmcgZ2FwID0gcmxpbV9zdGFjay0+cmxpbV9jdXI7Ci0KLQlpZiAoZ2FwIDwgTUlOX0dBUCkKLQkJZ2FwID0gTUlOX0dBUDsKLQllbHNlIGlmIChnYXAgPiBNQVhfR0FQKQotCQlnYXAgPSBNQVhfR0FQOwotCi0JcmV0dXJuIFBBR0VfQUxJR04oVEFTS19TSVpFIC0gZ2FwIC0gcm5kKTsKLX0KLQogI2RlZmluZSBDT0xPVVJfQUxJR04oYWRkciwgcGdvZmYpCQkJCVwKIAkoKCgoYWRkcikgKyBzaG1fYWxpZ25fbWFzaykgJiB+c2htX2FsaWduX21hc2spICsJXAogCSAoKChwZ29mZikgPDwgUEFHRV9TSElGVCkgJiBzaG1fYWxpZ25fbWFzaykpCkBAIC0xNDQsNjMgKzExNyw2IEBAIHVuc2lnbmVkIGxvbmcgYXJjaF9nZXRfdW5tYXBwZWRfYXJlYV90b3Bkb3duKHN0cnVjdCBmaWxlICpmaWxwLAogCQkJYWRkcjAsIGxlbiwgcGdvZmYsIGZsYWdzLCBET1dOKTsKIH0KIAotdW5zaWduZWQgbG9uZyBhcmNoX21tYXBfcm5kKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBybmQ7Ci0KLSNpZmRlZiBDT05GSUdfQ09NUEFUCi0JaWYgKFRBU0tfSVNfMzJCSVRfQUREUikKLQkJcm5kID0gZ2V0X3JhbmRvbV9sb25nKCkgJiAoKDFVTCA8PCBtbWFwX3JuZF9jb21wYXRfYml0cykgLSAxKTsKLQllbHNlCi0jZW5kaWYgLyogQ09ORklHX0NPTVBBVCAqLwotCQlybmQgPSBnZXRfcmFuZG9tX2xvbmcoKSAmICgoMVVMIDw8IG1tYXBfcm5kX2JpdHMpIC0gMSk7Ci0KLQlyZXR1cm4gcm5kIDw8IFBBR0VfU0hJRlQ7Ci19Ci0KLXZvaWQgYXJjaF9waWNrX21tYXBfbGF5b3V0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QgcmxpbWl0ICpybGltX3N0YWNrKQotewotCXVuc2lnbmVkIGxvbmcgcmFuZG9tX2ZhY3RvciA9IDBVTDsKLQotCWlmIChjdXJyZW50LT5mbGFncyAmIFBGX1JBTkRPTUlaRSkKLQkJcmFuZG9tX2ZhY3RvciA9IGFyY2hfbW1hcF9ybmQoKTsKLQotCWlmIChtbWFwX2lzX2xlZ2FjeShybGltX3N0YWNrKSkgewotCQltbS0+bW1hcF9iYXNlID0gVEFTS19VTk1BUFBFRF9CQVNFICsgcmFuZG9tX2ZhY3RvcjsKLQkJbW0tPmdldF91bm1hcHBlZF9hcmVhID0gYXJjaF9nZXRfdW5tYXBwZWRfYXJlYTsKLQl9IGVsc2UgewotCQltbS0+bW1hcF9iYXNlID0gbW1hcF9iYXNlKHJhbmRvbV9mYWN0b3IsIHJsaW1fc3RhY2spOwotCQltbS0+Z2V0X3VubWFwcGVkX2FyZWEgPSBhcmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd247Ci0JfQotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgYnJrX3JuZCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgcm5kID0gZ2V0X3JhbmRvbV9sb25nKCk7Ci0KLQlybmQgPSBybmQgPDwgUEFHRV9TSElGVDsKLQkvKiA4TUIgZm9yIDMyYml0LCAyNTZNQiBmb3IgNjRiaXQgKi8KLQlpZiAoVEFTS19JU18zMkJJVF9BRERSKQotCQlybmQgPSBybmQgJiAweDdmZmZmZnVsOwotCWVsc2UKLQkJcm5kID0gcm5kICYgMHhmZmZmZmZmdWw7Ci0KLQlyZXR1cm4gcm5kOwotfQotCi11bnNpZ25lZCBsb25nIGFyY2hfcmFuZG9taXplX2JyayhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKLXsKLQl1bnNpZ25lZCBsb25nIGJhc2UgPSBtbS0+YnJrOwotCXVuc2lnbmVkIGxvbmcgcmV0OwotCi0JcmV0ID0gUEFHRV9BTElHTihiYXNlICsgYnJrX3JuZCgpKTsKLQotCWlmIChyZXQgPCBtbS0+YnJrKQotCQlyZXR1cm4gbW0tPmJyazsKLQotCXJldHVybiByZXQ7Ci19Ci0KIGJvb2wgX192aXJ0X2FkZHJfdmFsaWQoY29uc3Qgdm9sYXRpbGUgdm9pZCAqa2FkZHIpCiB7CiAJdW5zaWduZWQgbG9uZyB2YWRkciA9ICh1bnNpZ25lZCBsb25nKWthZGRyOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL3BndGFibGUtMzIuYyBiL2FyY2gvbWlwcy9tbS9wZ3RhYmxlLTMyLmMKaW5kZXggZTJhMzNhZC4uNjQxNmE1MyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21tL3BndGFibGUtMzIuYworKysgYi9hcmNoL21pcHMvbW0vcGd0YWJsZS0zMi5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KKyNpbmNsdWRlIDxhc20vdGxiZmx1c2guaD4KIAogdm9pZCBwZ2RfaW5pdCh1bnNpZ25lZCBsb25nIHBhZ2UpCiB7CkBAIC0zMCw2ICszMSwyNSBAQCB2b2lkIHBnZF9pbml0KHVuc2lnbmVkIGxvbmcgcGFnZSkKIAl9CiB9CiAKKyNpZiBkZWZpbmVkKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSkKK3BtZF90IG1rX3BtZChzdHJ1Y3QgcGFnZSAqcGFnZSwgcGdwcm90X3QgcHJvdCkKK3sKKwlwbWRfdCBwbWQ7CisKKwlwbWRfdmFsKHBtZCkgPSAocGFnZV90b19wZm4ocGFnZSkgPDwgX1BGTl9TSElGVCkgfCBwZ3Byb3RfdmFsKHByb3QpOworCisJcmV0dXJuIHBtZDsKK30KKworCit2b2lkIHNldF9wbWRfYXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJcG1kX3QgKnBtZHAsIHBtZF90IHBtZCkKK3sKKwkqcG1kcCA9IHBtZDsKKwlmbHVzaF90bGJfYWxsKCk7Cit9CisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0UpICovCisKIHZvaWQgX19pbml0IHBhZ2V0YWJsZV9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB2YWRkcjsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9zYy1taXBzLmMgYi9hcmNoL21pcHMvbW0vc2MtbWlwcy5jCmluZGV4IDM5NDY3MzkuLmRiZGJmZTUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9tbS9zYy1taXBzLmMKKysrIGIvYXJjaC9taXBzL21tL3NjLW1pcHMuYwpAQCAtMjIxLDEzICsyMjEsMjYgQEAgc3RhdGljIGlubGluZSBpbnQgX19pbml0IG1pcHNfc2NfcHJvYmUodm9pZCkKIAllbHNlCiAJCXJldHVybiAwOwogCi0JLyoKLQkgKiBBY2NvcmRpbmcgdG8gY29uZmlnMiBpdCB3b3VsZCBiZSA1LXdheXMsIGJ1dCB0aGF0IGlzIGNvbnRyYWRpY3RlZAotCSAqIGJ5IGFsbCBkb2N1bWVudGF0aW9uLgotCSAqLwotCWlmIChjdXJyZW50X2NwdV90eXBlKCkgPT0gQ1BVX0paUklTQyAmJgotCQkJCW1pcHNfbWFjaHR5cGUgPT0gTUFDSF9JTkdFTklDX0paNDc3MCkKLQkJYy0+c2NhY2hlLndheXMgPSA0OworCWlmIChjdXJyZW50X2NwdV90eXBlKCkgPT0gQ1BVX1hCVVJTVCkgeworCQlzd2l0Y2ggKG1pcHNfbWFjaHR5cGUpIHsKKwkJLyoKKwkJICogQWNjb3JkaW5nIHRvIGNvbmZpZzIgaXQgd291bGQgYmUgNS13YXlzLCBidXQgdGhhdCBpcworCQkgKiBjb250cmFkaWN0ZWQgYnkgYWxsIGRvY3VtZW50YXRpb24uCisJCSAqLworCQljYXNlIE1BQ0hfSU5HRU5JQ19KWjQ3NzA6CisJCQljLT5zY2FjaGUud2F5cyA9IDQ7CisJCQlicmVhazsKKworCQkvKgorCQkgKiBBY2NvcmRpbmcgdG8gY29uZmlnMiBpdCB3b3VsZCBiZSA1LXdheXMgYW5kIDUxMi1zZXRzLAorCQkgKiBidXQgdGhhdCBpcyBjb250cmFkaWN0ZWQgYnkgYWxsIGRvY3VtZW50YXRpb24uCisJCSAqLworCQljYXNlIE1BQ0hfSU5HRU5JQ19YMTAwMDoKKwkJCWMtPnNjYWNoZS5zZXRzID0gMjU2OworCQkJYy0+c2NhY2hlLndheXMgPSA0OworCQkJYnJlYWs7CisJCX0KKwl9CiAKIAljLT5zY2FjaGUud2F5c2l6ZSA9IGMtPnNjYWNoZS5zZXRzICogYy0+c2NhY2hlLmxpbmVzejsKIAljLT5zY2FjaGUud2F5Yml0ID0gX19mZnMoYy0+c2NhY2hlLndheXNpemUpOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL3RsYi1yOGsuYyBiL2FyY2gvbWlwcy9tbS90bGItcjhrLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxZTllMTQuLjAwMDAwMDAKLS0tIGEvYXJjaC9taXBzL21tL3RsYi1yOGsuYworKysgL2Rldi9udWxsCkBAIC0xLDIzOSArMCwwIEBACi0vKgotICogVGhpcyBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UuICBTZWUgdGhlIGZpbGUgIkNPUFlJTkciIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIGFyY2hpdmUKLSAqIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogQ29weXJpZ2h0IChDKSAxOTk2IERhdmlkIFMuIE1pbGxlciAoZGF2ZW1AZGF2ZW1sb2Z0Lm5ldCkKLSAqIENvcHlyaWdodCAoQykgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCBSYWxmIEJhZWNobGUgcmFsZkBnbnUub3JnCi0gKiBDYXJzdGVuIExhbmdnYWFyZCwgY2Fyc3RlbmxAbWlwcy5jb20KLSAqIENvcHlyaWdodCAoQykgMjAwMiBNSVBTIFRlY2hub2xvZ2llcywgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqLwotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvc21wLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KLQotI2luY2x1ZGUgPGFzbS9jcHUuaD4KLSNpbmNsdWRlIDxhc20vYm9vdGluZm8uaD4KLSNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KLSNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgotCi1leHRlcm4gdm9pZCBidWlsZF90bGJfcmVmaWxsX2hhbmRsZXIodm9pZCk7Ci0KLSNkZWZpbmUgVEZQX1RMQl9TSVpFCQkzODQKLSNkZWZpbmUgVEZQX1RMQl9TRVRfU0hJRlQJNwotCi0vKiBDUDAgaGF6YXJkIGF2b2lkYW5jZS4gKi8KLSNkZWZpbmUgQkFSUklFUiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiLnNldCBub3Jlb3JkZXJcblx0IiBcCi0JCQkJICAgICAibm9wOyBub3A7IG5vcDsgbm9wOyBub3A7IG5vcDtcblx0IiBcCi0JCQkJICAgICAiLnNldCByZW9yZGVyXG5cdCIpCi0KLXZvaWQgbG9jYWxfZmx1c2hfdGxiX2FsbCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgbG9uZyBvbGRfY3R4OwotCWludCBlbnRyeTsKLQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQkvKiBTYXZlIG9sZCBjb250ZXh0IGFuZCBjcmVhdGUgaW1wb3NzaWJsZSBWUE4yIHZhbHVlICovCi0Jb2xkX2N0eCA9IHJlYWRfYzBfZW50cnloaSgpOwotCXdyaXRlX2MwX2VudHJ5bG8oMCk7Ci0KLQlmb3IgKGVudHJ5ID0gMDsgZW50cnkgPCBURlBfVExCX1NJWkU7IGVudHJ5KyspIHsKLQkJd3JpdGVfYzBfdGxic2V0KGVudHJ5ID4+IFRGUF9UTEJfU0VUX1NISUZUKTsKLQkJd3JpdGVfYzBfdmFkZHIoZW50cnkgPDwgUEFHRV9TSElGVCk7Ci0JCXdyaXRlX2MwX2VudHJ5aGkoQ0tTRUcwICsgKGVudHJ5IDw8IChQQUdFX1NISUZUICsgMSkpKTsKLQkJbXRjMF90bGJ3X2hhemFyZCgpOwotCQl0bGJfd3JpdGUoKTsKLQl9Ci0JdGxid191c2VfaGF6YXJkKCk7Ci0Jd3JpdGVfYzBfZW50cnloaShvbGRfY3R4KTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci19Ci0KLXZvaWQgbG9jYWxfZmx1c2hfdGxiX3JhbmdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAotCXVuc2lnbmVkIGxvbmcgZW5kKQotewotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gdm1hLT52bV9tbTsKLQlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IG9sZHBpZCwgbmV3cGlkLCBzaXplOwotCi0JaWYgKCFjcHVfY29udGV4dChjcHUsIG1tKSkKLQkJcmV0dXJuOwotCi0Jc2l6ZSA9IChlbmQgLSBzdGFydCArIChQQUdFX1NJWkUgLSAxKSkgPj4gUEFHRV9TSElGVDsKLQlzaXplID0gKHNpemUgKyAxKSA+PiAxOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JaWYgKHNpemUgPiBURlBfVExCX1NJWkUgLyAyKSB7Ci0JCWRyb3BfbW11X2NvbnRleHQobW0pOwotCQlnb3RvIG91dF9yZXN0b3JlOwotCX0KLQotCW9sZHBpZCA9IHJlYWRfYzBfZW50cnloaSgpOwotCW5ld3BpZCA9IGNwdV9hc2lkKGNwdSwgbW0pOwotCi0Jd3JpdGVfYzBfZW50cnlsbygwKTsKLQotCXN0YXJ0ICY9IFBBR0VfTUFTSzsKLQllbmQgKz0gKFBBR0VfU0laRSAtIDEpOwotCWVuZCAmPSBQQUdFX01BU0s7Ci0Jd2hpbGUgKHN0YXJ0IDwgZW5kKSB7Ci0JCXNpZ25lZCBsb25nIGlkeDsKLQotCQl3cml0ZV9jMF92YWRkcihzdGFydCk7Ci0JCXdyaXRlX2MwX2VudHJ5aGkoc3RhcnQpOwotCQlzdGFydCArPSBQQUdFX1NJWkU7Ci0JCXRsYl9wcm9iZSgpOwotCQlpZHggPSByZWFkX2MwX3RsYnNldCgpOwotCQlpZiAoaWR4IDwgMCkKLQkJCWNvbnRpbnVlOwotCi0JCXdyaXRlX2MwX2VudHJ5aGkoQ0tTRUcwICsgKGlkeCA8PCAoUEFHRV9TSElGVCArIDEpKSk7Ci0JCXRsYl93cml0ZSgpOwotCX0KLQl3cml0ZV9jMF9lbnRyeWhpKG9sZHBpZCk7Ci0KLW91dF9yZXN0b3JlOgotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLX0KLQotLyogVXNhYmxlIGZvciBLVjEgYWRkcmVzc2VzIG9ubHkhICovCi12b2lkIGxvY2FsX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCi17Ci0JdW5zaWduZWQgbG9uZyBzaXplLCBmbGFnczsKLQotCXNpemUgPSAoZW5kIC0gc3RhcnQgKyAoUEFHRV9TSVpFIC0gMSkpID4+IFBBR0VfU0hJRlQ7Ci0Jc2l6ZSA9IChzaXplICsgMSkgPj4gMTsKLQotCWlmIChzaXplID4gVEZQX1RMQl9TSVpFIC8gMikgewotCQlsb2NhbF9mbHVzaF90bGJfYWxsKCk7Ci0JCXJldHVybjsKLQl9Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0KLQl3cml0ZV9jMF9lbnRyeWxvKDApOwotCi0Jc3RhcnQgJj0gUEFHRV9NQVNLOwotCWVuZCArPSAoUEFHRV9TSVpFIC0gMSk7Ci0JZW5kICY9IFBBR0VfTUFTSzsKLQl3aGlsZSAoc3RhcnQgPCBlbmQpIHsKLQkJc2lnbmVkIGxvbmcgaWR4OwotCi0JCXdyaXRlX2MwX3ZhZGRyKHN0YXJ0KTsKLQkJd3JpdGVfYzBfZW50cnloaShzdGFydCk7Ci0JCXN0YXJ0ICs9IFBBR0VfU0laRTsKLQkJdGxiX3Byb2JlKCk7Ci0JCWlkeCA9IHJlYWRfYzBfdGxic2V0KCk7Ci0JCWlmIChpZHggPCAwKQotCQkJY29udGludWU7Ci0KLQkJd3JpdGVfYzBfZW50cnloaShDS1NFRzAgKyAoaWR4IDw8IChQQUdFX1NISUZUICsgMSkpKTsKLQkJdGxiX3dyaXRlKCk7Ci0JfQotCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotfQotCi12b2lkIGxvY2FsX2ZsdXNoX3RsYl9wYWdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHBhZ2UpCi17Ci0JaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBvbGRwaWQsIG5ld3BpZDsKLQlzaWduZWQgbG9uZyBpZHg7Ci0KLQlpZiAoIWNwdV9jb250ZXh0KGNwdSwgdm1hLT52bV9tbSkpCi0JCXJldHVybjsKLQotCW5ld3BpZCA9IGNwdV9hc2lkKGNwdSwgdm1hLT52bV9tbSk7Ci0JcGFnZSAmPSBQQUdFX01BU0s7Ci0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCW9sZHBpZCA9IHJlYWRfYzBfZW50cnloaSgpOwotCXdyaXRlX2MwX3ZhZGRyKHBhZ2UpOwotCXdyaXRlX2MwX2VudHJ5aGkobmV3cGlkKTsKLQl0bGJfcHJvYmUoKTsKLQlpZHggPSByZWFkX2MwX3RsYnNldCgpOwotCWlmIChpZHggPCAwKQotCQlnb3RvIGZpbmlzaDsKLQotCXdyaXRlX2MwX2VudHJ5bG8oMCk7Ci0Jd3JpdGVfYzBfZW50cnloaShDS1NFRzAgKyAoaWR4IDw8IChQQUdFX1NISUZUICsgMSkpKTsKLQl0bGJfd3JpdGUoKTsKLQotZmluaXNoOgotCXdyaXRlX2MwX2VudHJ5aGkob2xkcGlkKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci19Ci0KLS8qCi0gKiBXZSB3aWxsIG5lZWQgbXVsdGlwbGUgdmVyc2lvbnMgb2YgdXBkYXRlX21tdV9jYWNoZSgpLCBvbmUgdGhhdCBqdXN0Ci0gKiB1cGRhdGVzIHRoZSBUTEIgd2l0aCB0aGUgbmV3IHB0ZShzKSwgYW5kIGFub3RoZXIgd2hpY2ggYWxzbyBjaGVja3MKLSAqIGZvciB0aGUgUjRrICJlbmQgb2YgcGFnZSIgaGFyZHdhcmUgYnVnIGFuZCBkb2VzIHRoZSBuZWVkeS4KLSAqLwotdm9pZCBfX3VwZGF0ZV90bGIoc3RydWN0IHZtX2FyZWFfc3RydWN0ICogdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90IHB0ZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXBnZF90ICpwZ2RwOwotCXBtZF90ICpwbWRwOwotCXB0ZV90ICpwdGVwOwotCWludCBwaWQ7Ci0KLQkvKgotCSAqIEhhbmRsZSBkZWJ1Z2dlciBmYXVsdGluZyBpbiBmb3IgZGVidWdlZS4KLQkgKi8KLQlpZiAoY3VycmVudC0+YWN0aXZlX21tICE9IHZtYS0+dm1fbW0pCi0JCXJldHVybjsKLQotCXBpZCA9IHJlYWRfYzBfZW50cnloaSgpICYgY3B1X2FzaWRfbWFzaygmY3VycmVudF9jcHVfZGF0YSk7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0JYWRkcmVzcyAmPSBQQUdFX01BU0s7Ci0Jd3JpdGVfYzBfdmFkZHIoYWRkcmVzcyk7Ci0Jd3JpdGVfYzBfZW50cnloaShwaWQpOwotCXBnZHAgPSBwZ2Rfb2Zmc2V0KHZtYS0+dm1fbW0sIGFkZHJlc3MpOwotCXBtZHAgPSBwbWRfb2Zmc2V0KHBnZHAsIGFkZHJlc3MpOwotCXB0ZXAgPSBwdGVfb2Zmc2V0X21hcChwbWRwLCBhZGRyZXNzKTsKLQl0bGJfcHJvYmUoKTsKLQotCXdyaXRlX2MwX2VudHJ5bG8ocHRlX3ZhbCgqcHRlcCsrKSA+PiA2KTsKLQl0bGJfd3JpdGUoKTsKLQotCXdyaXRlX2MwX2VudHJ5aGkocGlkKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHByb2JlX3RsYih1bnNpZ25lZCBsb25nIGNvbmZpZykKLXsKLQlzdHJ1Y3QgY3B1aW5mb19taXBzICpjID0gJmN1cnJlbnRfY3B1X2RhdGE7Ci0KLQljLT50bGJzaXplID0gMyAqIDEyODsJCS8qIDMgc2V0cyBlYWNoIDEyOCBlbnRyaWVzICovCi19Ci0KLXZvaWQgdGxiX2luaXQodm9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgY29uZmlnID0gcmVhZF9jMF9jb25maWcoKTsKLQl1bnNpZ25lZCBsb25nIHN0YXR1czsKLQotCXByb2JlX3RsYihjb25maWcpOwotCi0Jc3RhdHVzID0gcmVhZF9jMF9zdGF0dXMoKTsKLQlzdGF0dXMgJj0gfihTVDBfVVBTIHwgU1QwX0tQUyk7Ci0jaWZkZWYgQ09ORklHX1BBR0VfU0laRV80S0IKLQlzdGF0dXMgfD0gKFRGUF9QQUdFU0laRV80SyA8PCAzMikgfCAoVEZQX1BBR0VTSVpFXzRLIDw8IDM2KTsKLSNlbGlmIGRlZmluZWQoQ09ORklHX1BBR0VfU0laRV84S0IpCi0Jc3RhdHVzIHw9IChURlBfUEFHRVNJWkVfOEsgPDwgMzIpIHwgKFRGUF9QQUdFU0laRV84SyA8PCAzNik7Ci0jZWxpZiBkZWZpbmVkKENPTkZJR19QQUdFX1NJWkVfMTZLQikKLQlzdGF0dXMgfD0gKFRGUF9QQUdFU0laRV8xNksgPDwgMzIpIHwgKFRGUF9QQUdFU0laRV8xNksgPDwgMzYpOwotI2VsaWYgZGVmaW5lZChDT05GSUdfUEFHRV9TSVpFXzY0S0IpCi0Jc3RhdHVzIHw9IChURlBfUEFHRVNJWkVfNjRLIDw8IDMyKSB8IChURlBfUEFHRVNJWkVfNjRLIDw8IDM2KTsKLSNlbmRpZgotCXdyaXRlX2MwX3N0YXR1cyhzdGF0dXMpOwotCi0Jd3JpdGVfYzBfd2lyZWQoMCk7Ci0KLQlsb2NhbF9mbHVzaF90bGJfYWxsKCk7Ci0KLQlidWlsZF90bGJfcmVmaWxsX2hhbmRsZXIoKTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS90bGJleC5jIGIvYXJjaC9taXBzL21tL3RsYmV4LmMKaW5kZXggMTQ0Y2ViMC4uZTAxY2IzMyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21tL3RsYmV4LmMKKysrIGIvYXJjaC9taXBzL21tL3RsYmV4LmMKQEAgLTU0NSw3ICs1NDUsNiBAQCB2b2lkIGJ1aWxkX3RsYl93cml0ZV9lbnRyeSh1MzIgKipwLCBzdHJ1Y3QgdWFzbV9sYWJlbCAqKmwsCiAJCXRsYncocCk7CiAJCWJyZWFrOwogCi0JY2FzZSBDUFVfUjQzMDA6CiAJY2FzZSBDUFVfNUtDOgogCWNhc2UgQ1BVX1RYNDlYWDoKIAljYXNlIENQVV9QUjQ0NTA6CkBAIC02MDQsMTMgKzYwMywxMiBAQCB2b2lkIGJ1aWxkX3RsYl93cml0ZV9lbnRyeSh1MzIgKipwLCBzdHJ1Y3QgdWFzbV9sYWJlbCAqKmwsCiAKIAljYXNlIENQVV9WUjQxMzE6CiAJY2FzZSBDUFVfVlI0MTMzOgotCWNhc2UgQ1BVX1I1NDMyOgogCQl1YXNtX2lfbm9wKHApOwogCQl1YXNtX2lfbm9wKHApOwogCQl0bGJ3KHApOwogCQlicmVhazsKIAotCWNhc2UgQ1BVX0paUklTQzoKKwljYXNlIENQVV9YQlVSU1Q6CiAJCXRsYncocCk7CiAJCXVhc21faV9ub3AocCk7CiAJCWJyZWFrOwpAQCAtNjMxLDcgKzYyOSw3IEBAIHN0YXRpYyBfX21heWJlX3VudXNlZCB2b2lkIGJ1aWxkX2NvbnZlcnRfcHRlX3RvX2VudHJ5bG8odTMyICoqcCwKIAkJcmV0dXJuOwogCX0KIAotCWlmIChjcHVfaGFzX3JpeGkgJiYgX1BBR0VfTk9fRVhFQykgeworCWlmIChjcHVfaGFzX3JpeGkgJiYgISFfUEFHRV9OT19FWEVDKSB7CiAJCWlmIChmaWxsX2luY2x1ZGVzX3N3X2JpdHMpIHsKIAkJCVVBU01faV9ST1RSKHAsIHJlZywgcmVnLCBpbG9nMihfUEFHRV9HTE9CQUwpKTsKIAkJfSBlbHNlIHsKQEAgLTI2MDksMjEgKzI2MDcsMTEgQEAgdm9pZCBidWlsZF90bGJfcmVmaWxsX2hhbmRsZXIodm9pZCkKIAljaGVja19mb3JfaGlnaF9zZWdiaXRzID0gY3VycmVudF9jcHVfZGF0YS52bWJpdHMgPiAoUEdESVJfU0hJRlQgKyBQR0RfT1JERVIgKyBQQUdFX1NISUZUIC0gMyk7CiAjZW5kaWYKIAotCXN3aXRjaCAoY3VycmVudF9jcHVfdHlwZSgpKSB7Ci0JY2FzZSBDUFVfUjIwMDA6Ci0JY2FzZSBDUFVfUjMwMDA6Ci0JY2FzZSBDUFVfUjMwMDBBOgotCWNhc2UgQ1BVX1IzMDgxRToKLQljYXNlIENQVV9UWDM5MTI6Ci0JY2FzZSBDUFVfVFgzOTIyOgotCWNhc2UgQ1BVX1RYMzkyNzoKKwlpZiAoY3B1X2hhc18za2V4KSB7CiAjaWZuZGVmIENPTkZJR19NSVBTX1BHRF9DMF9DT05URVhUCi0JCWlmIChjcHVfaGFzX2xvY2FsX2ViYXNlKQotCQkJYnVpbGRfcjMwMDBfdGxiX3JlZmlsbF9oYW5kbGVyKCk7CiAJCWlmICghcnVuX29uY2UpIHsKLQkJCWlmICghY3B1X2hhc19sb2NhbF9lYmFzZSkKLQkJCQlidWlsZF9yMzAwMF90bGJfcmVmaWxsX2hhbmRsZXIoKTsKIAkJCWJ1aWxkX3NldHVwX3BnZCgpOworCQkJYnVpbGRfcjMwMDBfdGxiX3JlZmlsbF9oYW5kbGVyKCk7CiAJCQlidWlsZF9yMzAwMF90bGJfbG9hZF9oYW5kbGVyKCk7CiAJCQlidWlsZF9yMzAwMF90bGJfc3RvcmVfaGFuZGxlcigpOwogCQkJYnVpbGRfcjMwMDBfdGxiX21vZGlmeV9oYW5kbGVyKCk7CkBAIC0yNjMzLDM0ICsyNjIxLDI3IEBAIHZvaWQgYnVpbGRfdGxiX3JlZmlsbF9oYW5kbGVyKHZvaWQpCiAjZWxzZQogCQlwYW5pYygiTm8gUjMwMDAgVExCIHJlZmlsbCBoYW5kbGVyIik7CiAjZW5kaWYKLQkJYnJlYWs7Ci0KLQljYXNlIENQVV9SODAwMDoKLQkJcGFuaWMoIk5vIFI4MDAwIFRMQiByZWZpbGwgaGFuZGxlciB5ZXQiKTsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlpZiAoY3B1X2hhc19sZHB0ZSkKLQkJCXNldHVwX3B3KCk7Ci0KLQkJaWYgKCFydW5fb25jZSkgewotCQkJc2NyYXRjaF9yZWcgPSBhbGxvY2F0ZV9rc2NyYXRjaCgpOwotCQkJYnVpbGRfc2V0dXBfcGdkKCk7Ci0JCQlidWlsZF9yNDAwMF90bGJfbG9hZF9oYW5kbGVyKCk7Ci0JCQlidWlsZF9yNDAwMF90bGJfc3RvcmVfaGFuZGxlcigpOwotCQkJYnVpbGRfcjQwMDBfdGxiX21vZGlmeV9oYW5kbGVyKCk7Ci0JCQlpZiAoY3B1X2hhc19sZHB0ZSkKLQkJCQlidWlsZF9sb29uZ3NvbjNfdGxiX3JlZmlsbF9oYW5kbGVyKCk7Ci0JCQllbHNlIGlmICghY3B1X2hhc19sb2NhbF9lYmFzZSkKLQkJCQlidWlsZF9yNDAwMF90bGJfcmVmaWxsX2hhbmRsZXIoKTsKLQkJCWZsdXNoX3RsYl9oYW5kbGVycygpOwotCQkJcnVuX29uY2UrKzsKLQkJfQotCQlpZiAoY3B1X2hhc19sb2NhbF9lYmFzZSkKLQkJCWJ1aWxkX3I0MDAwX3RsYl9yZWZpbGxfaGFuZGxlcigpOwotCQlpZiAoY3B1X2hhc194cGEpCi0JCQljb25maWdfeHBhX3BhcmFtcygpOwotCQlpZiAoY3B1X2hhc19odHcpCi0JCQljb25maWdfaHR3X3BhcmFtcygpOworCQlyZXR1cm47CiAJfQorCisJaWYgKGNwdV9oYXNfbGRwdGUpCisJCXNldHVwX3B3KCk7CisKKwlpZiAoIXJ1bl9vbmNlKSB7CisJCXNjcmF0Y2hfcmVnID0gYWxsb2NhdGVfa3NjcmF0Y2goKTsKKwkJYnVpbGRfc2V0dXBfcGdkKCk7CisJCWJ1aWxkX3I0MDAwX3RsYl9sb2FkX2hhbmRsZXIoKTsKKwkJYnVpbGRfcjQwMDBfdGxiX3N0b3JlX2hhbmRsZXIoKTsKKwkJYnVpbGRfcjQwMDBfdGxiX21vZGlmeV9oYW5kbGVyKCk7CisJCWlmIChjcHVfaGFzX2xkcHRlKQorCQkJYnVpbGRfbG9vbmdzb24zX3RsYl9yZWZpbGxfaGFuZGxlcigpOworCQllbHNlCisJCQlidWlsZF9yNDAwMF90bGJfcmVmaWxsX2hhbmRsZXIoKTsKKwkJZmx1c2hfdGxiX2hhbmRsZXJzKCk7CisJCXJ1bl9vbmNlKys7CisJfQorCWlmIChjcHVfaGFzX3hwYSkKKwkJY29uZmlnX3hwYV9wYXJhbXMoKTsKKwlpZiAoY3B1X2hhc19odHcpCisJCWNvbmZpZ19odHdfcGFyYW1zKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbXRpLW1hbHRhL21hbHRhLW1lbW9yeS5jIGIvYXJjaC9taXBzL210aS1tYWx0YS9tYWx0YS1tZW1vcnkuYwppbmRleCA4Njg5MjFhLi43YzI1YTBhIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbXRpLW1hbHRhL21hbHRhLW1lbW9yeS5jCisrKyBiL2FyY2gvbWlwcy9tdGktbWFsdGEvbWFsdGEtbWVtb3J5LmMKQEAgLTM5LDE3ICszOSw2IEBAIHZvaWQgX19pbml0IGZ3X21lbWluaXQodm9pZCkKIAogdm9pZCBfX2luaXQgcHJvbV9mcmVlX3Byb21fbWVtb3J5KHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBhZGRyOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGJvb3RfbWVtX21hcC5ucl9tYXA7IGkrKykgewotCQlpZiAoYm9vdF9tZW1fbWFwLm1hcFtpXS50eXBlICE9IEJPT1RfTUVNX1JPTV9EQVRBKQotCQkJY29udGludWU7Ci0KLQkJYWRkciA9IGJvb3RfbWVtX21hcC5tYXBbaV0uYWRkcjsKLQkJZnJlZV9pbml0X3BhZ2VzKCJZQU1PTiBtZW1vcnkiLAotCQkJCWFkZHIsIGFkZHIgKyBib290X21lbV9tYXAubWFwW2ldLnNpemUpOwotCX0KIH0KIAogcGh5c19hZGRyX3QgbWlwc19jZG1tX3BoeXNfYmFzZSh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL25ldGxvZ2ljL3hscC9zZXR1cC5jIGIvYXJjaC9taXBzL25ldGxvZ2ljL3hscC9zZXR1cC5jCmluZGV4IGY3NDNmZDkuLjFhMGZjNWIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9uZXRsb2dpYy94bHAvc2V0dXAuYworKysgYi9hcmNoL21pcHMvbmV0bG9naWMveGxwL3NldHVwLmMKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2ZkdC5oPgorI2luY2x1ZGUgPGxpbnV4L21lbWJsb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vaWRsZS5oPgogI2luY2x1ZGUgPGFzbS9yZWJvb3QuaD4KQEAgLTY3LDEyICs2OCwxMSBAQCBzdGF0aWMgdm9pZCBubG1fbGludXhfZXhpdCh2b2lkKQogc3RhdGljIHZvaWQgbmxtX2ZpeHVwX21lbSh2b2lkKQogewogCWNvbnN0IGludCBwcmVmX2JhY2t1cCA9IDUxMjsKLQlpbnQgaTsKKwlzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uICptZW07CiAKLQlmb3IgKGkgPSAwOyBpIDwgYm9vdF9tZW1fbWFwLm5yX21hcDsgaSsrKSB7Ci0JCWlmIChib290X21lbV9tYXAubWFwW2ldLnR5cGUgIT0gQk9PVF9NRU1fUkFNKQotCQkJY29udGludWU7Ci0JCWJvb3RfbWVtX21hcC5tYXBbaV0uc2l6ZSAtPSBwcmVmX2JhY2t1cDsKKwlmb3JfZWFjaF9tZW1ibG9jayhtZW1vcnksIG1lbSkgeworCQltZW1ibG9ja19yZW1vdmUobWVtLT5iYXNlICsgbWVtLT5zaXplIC0gcHJlZl9iYWNrdXAsCisJCQlwcmVmX2JhY2t1cCk7CiAJfQogfQogCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBfX2luaXQgcGxhdF9tZW1fc2V0dXAodm9pZCkKIAkvKiBtZW1vcnkgYW5kIGJvb3RhcmdzIGZyb20gRFQgKi8KIAl4bHBfZWFybHlfaW5pdF9kZXZ0cmVlKCk7CiAKLQlpZiAoYm9vdF9tZW1fbWFwLm5yX21hcCA9PSAwKSB7CisJaWYgKG1lbWJsb2NrX2VuZF9vZl9EUkFNKCkgPT0gMCkgewogCQlwcl9pbmZvKCJVc2luZyBEUkFNIEJBUnMgZm9yIG1lbW9yeSBtYXAuXG4iKTsKIAkJeGxwX2luaXRfbWVtX2Zyb21fYmFycygpOwogCX0KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9wY2kvcGNpLXh0YWxrLWJyaWRnZS5jIGIvYXJjaC9taXBzL3BjaS9wY2kteHRhbGstYnJpZGdlLmMKaW5kZXggYmNmN2Y1NS4uN2I0ZDQwMyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3BjaS9wY2kteHRhbGstYnJpZGdlLmMKKysrIGIvYXJjaC9taXBzL3BjaS9wY2kteHRhbGstYnJpZGdlLmMKQEAgLTIwLDE2ICsyMCw1MCBAQAogICogTW9zdCBvZiB0aGUgSU9DMyBQQ0kgY29uZmlnIHJlZ2lzdGVyIGFyZW4ndCBwcmVzZW50CiAgKiB3ZSBlbXVsYXRlIHdoYXQgaXMgbmVlZGVkIGZvciBhIG5vcm1hbCBQQ0kgZW51bWVyYXRpb24KICAqLwotc3RhdGljIHUzMiBlbXVsYXRlX2lvYzNfY2ZnKGludCB3aGVyZSwgaW50IHNpemUpCitzdGF0aWMgaW50IGlvYzNfY2ZnX3JkKHZvaWQgKmFkZHIsIGludCB3aGVyZSwgaW50IHNpemUsIHUzMiAqdmFsdWUpCiB7Ci0JaWYgKHNpemUgPT0gMSAmJiB3aGVyZSA9PSAweDNkKQotCQlyZXR1cm4gMHgwMTsKLQllbHNlIGlmIChzaXplID09IDIgJiYgd2hlcmUgPT0gMHgzYykKLQkJcmV0dXJuIDB4MDEwMDsKLQllbHNlIGlmIChzaXplID09IDQgJiYgd2hlcmUgPT0gMHgzYykKLQkJcmV0dXJuIDB4MDAwMDAxMDA7CisJdTMyIGNmLCBzaGlmdCwgbWFzazsKIAotCXJldHVybiAwOworCXN3aXRjaCAod2hlcmUgJiB+MykgeworCWNhc2UgMHgwMCAuLi4gMHgxMDoKKwljYXNlIDB4NDAgLi4uIDB4NDQ6CisJCWlmIChnZXRfZGJlKGNmLCAodTMyICopYWRkcikpCisJCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOworCQlicmVhazsKKwljYXNlIDB4M2M6CisJCS8qIGVtdWxhdGUgc2FuZSBpbnRlcnJ1cHQgcGluIHZhbHVlICovCisJCWNmID0gMHgwMDAwMDEwMDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJY2YgPSAwOworCQlicmVhazsKKwl9CisJc2hpZnQgPSAod2hlcmUgJiAzKSA8PCAzOworCW1hc2sgPSAweGZmZmZmZmZmVSA+PiAoKDQgLSBzaXplKSA8PCAzKTsKKwkqdmFsdWUgPSAoY2YgPj4gc2hpZnQpICYgbWFzazsKKworCXJldHVybiBQQ0lCSU9TX1NVQ0NFU1NGVUw7Cit9CisKK3N0YXRpYyBpbnQgaW9jM19jZmdfd3Iodm9pZCAqYWRkciwgaW50IHdoZXJlLCBpbnQgc2l6ZSwgdTMyIHZhbHVlKQoreworCXUzMiBjZiwgc2hpZnQsIG1hc2ssIHNtYXNrOworCisJaWYgKCh3aGVyZSA+PSAweDE0ICYmIHdoZXJlIDwgMHg0MCkgfHwgKHdoZXJlID49IDB4NDgpKQorCQlyZXR1cm4gUENJQklPU19TVUNDRVNTRlVMOworCisJaWYgKGdldF9kYmUoY2YsICh1MzIgKilhZGRyKSkKKwkJcmV0dXJuIFBDSUJJT1NfREVWSUNFX05PVF9GT1VORDsKKworCXNoaWZ0ID0gKCh3aGVyZSAmIDMpIDw8IDMpOworCW1hc2sgPSAoMHhmZmZmZmZmZlUgPj4gKCg0IC0gc2l6ZSkgPDwgMykpOworCXNtYXNrID0gbWFzayA8PCBzaGlmdDsKKworCWNmID0gKGNmICYgfnNtYXNrKSB8ICgodmFsdWUgJiBtYXNrKSA8PCBzaGlmdCk7CisJaWYgKHB1dF9kYmUoY2YsICh1MzIgKilhZGRyKSkKKwkJcmV0dXJuIFBDSUJJT1NfREVWSUNFX05PVF9GT1VORDsKKworCXJldHVybiBQQ0lCSU9TX1NVQ0NFU1NGVUw7CiB9CiAKIHN0YXRpYyB2b2lkIGJyaWRnZV9kaXNhYmxlX3N3YXBwaW5nKHN0cnVjdCBwY2lfZGV2ICpkZXYpCkBAIC02NCw3ICs5OCw3IEBAIHN0YXRpYyBpbnQgcGNpX2NvbmYwX3JlYWRfY29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKIAlpbnQgc2xvdCA9IFBDSV9TTE9UKGRldmZuKTsKIAlpbnQgZm4gPSBQQ0lfRlVOQyhkZXZmbik7CiAJdm9pZCAqYWRkcjsKLQl1MzIgY2YsIHNoaWZ0LCBtYXNrOworCXUzMiBjZjsKIAlpbnQgcmVzOwogCiAJYWRkciA9ICZicmlkZ2UtPmJfdHlwZTBfY2ZnX2RldltzbG90XS5mW2ZuXS5jW1BDSV9WRU5ET1JfSURdOwpAQCAtNzUsOCArMTA5LDEwIEBAIHN0YXRpYyBpbnQgcGNpX2NvbmYwX3JlYWRfY29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKIAkgKiBJT0MzIGlzIGJyb2tlbiBiZXlvbmQgYmVsaWVmIC4uLiAgRG9uJ3QgZXZlbiBnaXZlIHRoZQogCSAqIGdlbmVyaWMgUENJIGNvZGUgYSBjaGFuY2UgdG8gbG9vayBhdCBpdCBmb3IgcmVhbCAuLi4KIAkgKi8KLQlpZiAoY2YgPT0gKFBDSV9WRU5ET1JfSURfU0dJIHwgKFBDSV9ERVZJQ0VfSURfU0dJX0lPQzMgPDwgMTYpKSkKLQkJZ290byBpc19pb2MzOworCWlmIChjZiA9PSAoUENJX1ZFTkRPUl9JRF9TR0kgfCAoUENJX0RFVklDRV9JRF9TR0lfSU9DMyA8PCAxNikpKSB7CisJCWFkZHIgPSAmYnJpZGdlLT5iX3R5cGUwX2NmZ19kZXZbc2xvdF0uZltmbl0ubFt3aGVyZSA+PiAyXTsKKwkJcmV0dXJuIGlvYzNfY2ZnX3JkKGFkZHIsIHdoZXJlLCBzaXplLCB2YWx1ZSk7CisJfQogCiAJYWRkciA9ICZicmlkZ2UtPmJfdHlwZTBfY2ZnX2RldltzbG90XS5mW2ZuXS5jW3doZXJlIF4gKDQgLSBzaXplKV07CiAKQEAgLTg4LDI2ICsxMjQsNiBAQCBzdGF0aWMgaW50IHBjaV9jb25mMF9yZWFkX2NvbmZpZyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiAJCXJlcyA9IGdldF9kYmUoKnZhbHVlLCAodTMyICopYWRkcik7CiAKIAlyZXR1cm4gcmVzID8gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EIDogUENJQklPU19TVUNDRVNTRlVMOwotCi1pc19pb2MzOgotCi0JLyoKLQkgKiBJT0MzIHNwZWNpYWwgaGFuZGxpbmcKLQkgKi8KLQlpZiAoKHdoZXJlID49IDB4MTQgJiYgd2hlcmUgPCAweDQwKSB8fCAod2hlcmUgPj0gMHg0OCkpIHsKLQkJKnZhbHVlID0gZW11bGF0ZV9pb2MzX2NmZyh3aGVyZSwgc2l6ZSk7Ci0JCXJldHVybiBQQ0lCSU9TX1NVQ0NFU1NGVUw7Ci0JfQotCi0JYWRkciA9ICZicmlkZ2UtPmJfdHlwZTBfY2ZnX2RldltzbG90XS5mW2ZuXS5sW3doZXJlID4+IDJdOwotCWlmIChnZXRfZGJlKGNmLCAodTMyICopYWRkcikpCi0JCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7Ci0KLQlzaGlmdCA9ICgod2hlcmUgJiAzKSA8PCAzKTsKLQltYXNrID0gKDB4ZmZmZmZmZmZVID4+ICgoNCAtIHNpemUpIDw8IDMpKTsKLQkqdmFsdWUgPSAoY2YgPj4gc2hpZnQpICYgbWFzazsKLQotCXJldHVybiBQQ0lCSU9TX1NVQ0NFU1NGVUw7CiB9CiAKIHN0YXRpYyBpbnQgcGNpX2NvbmYxX3JlYWRfY29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKQEAgLTExOSw3ICsxMzUsNyBAQCBzdGF0aWMgaW50IHBjaV9jb25mMV9yZWFkX2NvbmZpZyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiAJaW50IHNsb3QgPSBQQ0lfU0xPVChkZXZmbik7CiAJaW50IGZuID0gUENJX0ZVTkMoZGV2Zm4pOwogCXZvaWQgKmFkZHI7Ci0JdTMyIGNmLCBzaGlmdCwgbWFzazsKKwl1MzIgY2Y7CiAJaW50IHJlczsKIAogCWJyaWRnZV93cml0ZShiYywgYl9wY2lfY2ZnLCAoYnVzbm8gPDwgMTYpIHwgKHNsb3QgPDwgMTEpKTsKQEAgLTEzMSw4ICsxNDcsMTAgQEAgc3RhdGljIGludCBwY2lfY29uZjFfcmVhZF9jb25maWcoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAogCSAqIElPQzMgaXMgYnJva2VuIGJleW9uZCBiZWxpZWYgLi4uICBEb24ndCBldmVuIGdpdmUgdGhlCiAJICogZ2VuZXJpYyBQQ0kgY29kZSBhIGNoYW5jZSB0byBsb29rIGF0IGl0IGZvciByZWFsIC4uLgogCSAqLwotCWlmIChjZiA9PSAoUENJX1ZFTkRPUl9JRF9TR0kgfCAoUENJX0RFVklDRV9JRF9TR0lfSU9DMyA8PCAxNikpKQotCQlnb3RvIGlzX2lvYzM7CisJaWYgKGNmID09IChQQ0lfVkVORE9SX0lEX1NHSSB8IChQQ0lfREVWSUNFX0lEX1NHSV9JT0MzIDw8IDE2KSkpIHsKKwkJYWRkciA9ICZicmlkZ2UtPmJfdHlwZTFfY2ZnLmNbKGZuIDw8IDgpIHwgKHdoZXJlICYgfjMpXTsKKwkJcmV0dXJuIGlvYzNfY2ZnX3JkKGFkZHIsIHdoZXJlLCBzaXplLCB2YWx1ZSk7CisJfQogCiAJYWRkciA9ICZicmlkZ2UtPmJfdHlwZTFfY2ZnLmNbKGZuIDw8IDgpIHwgKHdoZXJlIF4gKDQgLSBzaXplKSldOwogCkBAIC0xNDQsMjYgKzE2Miw2IEBAIHN0YXRpYyBpbnQgcGNpX2NvbmYxX3JlYWRfY29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKIAkJcmVzID0gZ2V0X2RiZSgqdmFsdWUsICh1MzIgKilhZGRyKTsKIAogCXJldHVybiByZXMgPyBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQgOiBQQ0lCSU9TX1NVQ0NFU1NGVUw7Ci0KLWlzX2lvYzM6Ci0KLQkvKgotCSAqIElPQzMgc3BlY2lhbCBoYW5kbGluZwotCSAqLwotCWlmICgod2hlcmUgPj0gMHgxNCAmJiB3aGVyZSA8IDB4NDApIHx8ICh3aGVyZSA+PSAweDQ4KSkgewotCQkqdmFsdWUgPSBlbXVsYXRlX2lvYzNfY2ZnKHdoZXJlLCBzaXplKTsKLQkJcmV0dXJuIFBDSUJJT1NfU1VDQ0VTU0ZVTDsKLQl9Ci0KLQlhZGRyID0gJmJyaWRnZS0+Yl90eXBlMV9jZmcuY1soZm4gPDwgOCkgfCB3aGVyZV07Ci0JaWYgKGdldF9kYmUoY2YsICh1MzIgKilhZGRyKSkKLQkJcmV0dXJuIFBDSUJJT1NfREVWSUNFX05PVF9GT1VORDsKLQotCXNoaWZ0ID0gKCh3aGVyZSAmIDMpIDw8IDMpOwotCW1hc2sgPSAoMHhmZmZmZmZmZlUgPj4gKCg0IC0gc2l6ZSkgPDwgMykpOwotCSp2YWx1ZSA9IChjZiA+PiBzaGlmdCkgJiBtYXNrOwotCi0JcmV0dXJuIFBDSUJJT1NfU1VDQ0VTU0ZVTDsKIH0KIAogc3RhdGljIGludCBwY2lfcmVhZF9jb25maWcoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLApAQCAtMTgzLDcgKzE4MSw3IEBAIHN0YXRpYyBpbnQgcGNpX2NvbmYwX3dyaXRlX2NvbmZpZyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiAJaW50IHNsb3QgPSBQQ0lfU0xPVChkZXZmbik7CiAJaW50IGZuID0gUENJX0ZVTkMoZGV2Zm4pOwogCXZvaWQgKmFkZHI7Ci0JdTMyIGNmLCBzaGlmdCwgbWFzaywgc21hc2s7CisJdTMyIGNmOwogCWludCByZXM7CiAKIAlhZGRyID0gJmJyaWRnZS0+Yl90eXBlMF9jZmdfZGV2W3Nsb3RdLmZbZm5dLmNbUENJX1ZFTkRPUl9JRF07CkBAIC0xOTQsOCArMTkyLDEwIEBAIHN0YXRpYyBpbnQgcGNpX2NvbmYwX3dyaXRlX2NvbmZpZyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiAJICogSU9DMyBpcyBicm9rZW4gYmV5b25kIGJlbGllZiAuLi4gIERvbid0IGV2ZW4gZ2l2ZSB0aGUKIAkgKiBnZW5lcmljIFBDSSBjb2RlIGEgY2hhbmNlIHRvIGxvb2sgYXQgaXQgZm9yIHJlYWwgLi4uCiAJICovCi0JaWYgKGNmID09IChQQ0lfVkVORE9SX0lEX1NHSSB8IChQQ0lfREVWSUNFX0lEX1NHSV9JT0MzIDw8IDE2KSkpCi0JCWdvdG8gaXNfaW9jMzsKKwlpZiAoY2YgPT0gKFBDSV9WRU5ET1JfSURfU0dJIHwgKFBDSV9ERVZJQ0VfSURfU0dJX0lPQzMgPDwgMTYpKSkgeworCQlhZGRyID0gJmJyaWRnZS0+Yl90eXBlMF9jZmdfZGV2W3Nsb3RdLmZbZm5dLmxbd2hlcmUgPj4gMl07CisJCXJldHVybiBpb2MzX2NmZ193cihhZGRyLCB3aGVyZSwgc2l6ZSwgdmFsdWUpOworCX0KIAogCWFkZHIgPSAmYnJpZGdlLT5iX3R5cGUwX2NmZ19kZXZbc2xvdF0uZltmbl0uY1t3aGVyZSBeICg0IC0gc2l6ZSldOwogCkBAIC0yMTAsMjkgKzIxMCw2IEBAIHN0YXRpYyBpbnQgcGNpX2NvbmYwX3dyaXRlX2NvbmZpZyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiAJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CiAKIAlyZXR1cm4gUENJQklPU19TVUNDRVNTRlVMOwotCi1pc19pb2MzOgotCi0JLyoKLQkgKiBJT0MzIHNwZWNpYWwgaGFuZGxpbmcKLQkgKi8KLQlpZiAoKHdoZXJlID49IDB4MTQgJiYgd2hlcmUgPCAweDQwKSB8fCAod2hlcmUgPj0gMHg0OCkpCi0JCXJldHVybiBQQ0lCSU9TX1NVQ0NFU1NGVUw7Ci0KLQlhZGRyID0gJmJyaWRnZS0+Yl90eXBlMF9jZmdfZGV2W3Nsb3RdLmZbZm5dLmxbd2hlcmUgPj4gMl07Ci0KLQlpZiAoZ2V0X2RiZShjZiwgKHUzMiAqKWFkZHIpKQotCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOwotCi0Jc2hpZnQgPSAoKHdoZXJlICYgMykgPDwgMyk7Ci0JbWFzayA9ICgweGZmZmZmZmZmVSA+PiAoKDQgLSBzaXplKSA8PCAzKSk7Ci0Jc21hc2sgPSBtYXNrIDw8IHNoaWZ0OwotCi0JY2YgPSAoY2YgJiB+c21hc2spIHwgKCh2YWx1ZSAmIG1hc2spIDw8IHNoaWZ0KTsKLQlpZiAocHV0X2RiZShjZiwgKHUzMiAqKWFkZHIpKQotCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOwotCi0JcmV0dXJuIFBDSUJJT1NfU1VDQ0VTU0ZVTDsKIH0KIAogc3RhdGljIGludCBwY2lfY29uZjFfd3JpdGVfY29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKQEAgLTI0NCw3ICsyMjEsNyBAQCBzdGF0aWMgaW50IHBjaV9jb25mMV93cml0ZV9jb25maWcoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAogCWludCBmbiA9IFBDSV9GVU5DKGRldmZuKTsKIAlpbnQgYnVzbm8gPSBidXMtPm51bWJlcjsKIAl2b2lkICphZGRyOwotCXUzMiBjZiwgc2hpZnQsIG1hc2ssIHNtYXNrOworCXUzMiBjZjsKIAlpbnQgcmVzOwogCiAJYnJpZGdlX3dyaXRlKGJjLCBiX3BjaV9jZmcsIChidXNubyA8PCAxNikgfCAoc2xvdCA8PCAxMSkpOwpAQCAtMjU2LDggKzIzMywxMCBAQCBzdGF0aWMgaW50IHBjaV9jb25mMV93cml0ZV9jb25maWcoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAogCSAqIElPQzMgaXMgYnJva2VuIGJleW9uZCBiZWxpZWYgLi4uICBEb24ndCBldmVuIGdpdmUgdGhlCiAJICogZ2VuZXJpYyBQQ0kgY29kZSBhIGNoYW5jZSB0byBsb29rIGF0IGl0IGZvciByZWFsIC4uLgogCSAqLwotCWlmIChjZiA9PSAoUENJX1ZFTkRPUl9JRF9TR0kgfCAoUENJX0RFVklDRV9JRF9TR0lfSU9DMyA8PCAxNikpKQotCQlnb3RvIGlzX2lvYzM7CisJaWYgKGNmID09IChQQ0lfVkVORE9SX0lEX1NHSSB8IChQQ0lfREVWSUNFX0lEX1NHSV9JT0MzIDw8IDE2KSkpIHsKKwkJYWRkciA9ICZicmlkZ2UtPmJfdHlwZTBfY2ZnX2RldltzbG90XS5mW2ZuXS5sW3doZXJlID4+IDJdOworCQlyZXR1cm4gaW9jM19jZmdfd3IoYWRkciwgd2hlcmUsIHNpemUsIHZhbHVlKTsKKwl9CiAKIAlhZGRyID0gJmJyaWRnZS0+Yl90eXBlMV9jZmcuY1soZm4gPDwgOCkgfCAod2hlcmUgXiAoNCAtIHNpemUpKV07CiAKQEAgLTI3MiwyOCArMjUxLDYgQEAgc3RhdGljIGludCBwY2lfY29uZjFfd3JpdGVfY29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKIAkJcmV0dXJuIFBDSUJJT1NfREVWSUNFX05PVF9GT1VORDsKIAogCXJldHVybiBQQ0lCSU9TX1NVQ0NFU1NGVUw7Ci0KLWlzX2lvYzM6Ci0KLQkvKgotCSAqIElPQzMgc3BlY2lhbCBoYW5kbGluZwotCSAqLwotCWlmICgod2hlcmUgPj0gMHgxNCAmJiB3aGVyZSA8IDB4NDApIHx8ICh3aGVyZSA+PSAweDQ4KSkKLQkJcmV0dXJuIFBDSUJJT1NfU1VDQ0VTU0ZVTDsKLQotCWFkZHIgPSAmYnJpZGdlLT5iX3R5cGUwX2NmZ19kZXZbc2xvdF0uZltmbl0ubFt3aGVyZSA+PiAyXTsKLQlpZiAoZ2V0X2RiZShjZiwgKHUzMiAqKWFkZHIpKQotCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOwotCi0Jc2hpZnQgPSAoKHdoZXJlICYgMykgPDwgMyk7Ci0JbWFzayA9ICgweGZmZmZmZmZmVSA+PiAoKDQgLSBzaXplKSA8PCAzKSk7Ci0Jc21hc2sgPSBtYXNrIDw8IHNoaWZ0OwotCi0JY2YgPSAoY2YgJiB+c21hc2spIHwgKCh2YWx1ZSAmIG1hc2spIDw8IHNoaWZ0KTsKLQlpZiAocHV0X2RiZShjZiwgKHUzMiAqKWFkZHIpKQotCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOwotCi0JcmV0dXJuIFBDSUJJT1NfU1VDQ0VTU0ZVTDsKIH0KIAogc3RhdGljIGludCBwY2lfd3JpdGVfY29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9wbWNzLW1zcDcxeHgvbXNwX3Byb20uYyBiL2FyY2gvbWlwcy9wbWNzLW1zcDcxeHgvbXNwX3Byb20uYwppbmRleCA2ZmRjYjNkLi5kZmI1Mjc5IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvcG1jcy1tc3A3MXh4L21zcF9wcm9tLmMKKysrIGIvYXJjaC9taXBzL3BtY3MtbXNwNzF4eC9tc3BfcHJvbS5jCkBAIC02MSw2ICs2MSwxMCBAQCBpbnQgaW5pdF9kZWJ1ZyA9IDE7CiAvKiBtZW1vcnkgYmxvY2tzICovCiBzdHJ1Y3QgcHJvbV9wbWVtYmxvY2sgbWRlc2NbUFJPTV9NQVhfUE1FTUJMT0NLU107CiAKK3N0YXRpYyBwaHlzX2FkZHJfdCBwcm9tX21lbV9iYXNlW01BWF9QUk9NX01FTV0gX19pbml0ZGF0YTsKK3N0YXRpYyBwaHlzX2FkZHJfdCBwcm9tX21lbV9zaXplW01BWF9QUk9NX01FTV0gX19pbml0ZGF0YTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbnJfcHJvbV9tZW0gX19pbml0ZGF0YTsKKwogLyogZGVmYXVsdCBmZWF0dXJlIHNldHMgKi8KIHN0YXRpYyBjaGFyIG1zcF9kZWZhdWx0X2ZlYXR1cmVzW10gPQogI2lmIGRlZmluZWQoQ09ORklHX1BNQ19NU1A0MjAwX0VWQUwpIFwKQEAgLTM1Miw2ICszNTYsMTYgQEAgdm9pZCBfX2luaXQgcHJvbV9tZW1pbml0KHZvaWQpCiAKIAkJYWRkX21lbW9yeV9yZWdpb24oYmFzZSwgc2l6ZSwgdHlwZSk7CiAJCXArKzsKKworCQlpZiAodHlwZSA9PSBCT09UX01FTV9ST01fREFUQSkgeworCQkJaWYgKG5yX3Byb21fbWVtID49IDUpIHsKKwkJCQlwcl9lcnIoIlRvbyBtYW55IFJPTSBEQVRBIHJlZ2lvbnMiKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCXByb21fbWVtX2Jhc2VbbnJfcHJvbV9tZW1dID0gYmFzZTsKKwkJCXByb21fbWVtX3NpemVbbnJfcHJvbV9tZW1dID0gc2l6ZTsKKwkJCW5yX3Byb21fbWVtKys7CisJCX0KIAl9CiB9CiAKQEAgLTQwNywxMyArNDIxLDkgQEAgdm9pZCBfX2luaXQgcHJvbV9mcmVlX3Byb21fbWVtb3J5KHZvaWQpCiAJZW52cFtpXSA9IE5VTEw7CQkJLyogZW5kIGFycmF5IHdpdGggbnVsbCBwb2ludGVyICovCiAJcHJvbV9lbnZwID0gZW52cDsKIAotCWZvciAoaSA9IDA7IGkgPCBib290X21lbV9tYXAubnJfbWFwOyBpKyspIHsKLQkJaWYgKGJvb3RfbWVtX21hcC5tYXBbaV0udHlwZSAhPSBCT09UX01FTV9ST01fREFUQSkKLQkJCWNvbnRpbnVlOwotCi0JCWFkZHIgPSBib290X21lbV9tYXAubWFwW2ldLmFkZHI7CisJZm9yIChpID0gMDsgaSA8IG5yX3Byb21fbWVtOyBpKyspIHsKIAkJZnJlZV9pbml0X3BhZ2VzKCJwcm9tIG1lbW9yeSIsCi0JCQkJYWRkciwgYWRkciArIGJvb3RfbWVtX21hcC5tYXBbaV0uc2l6ZSk7CisJCQlwcm9tX21lbV9iYXNlW2ldLCBwcm9tX21lbV9iYXNlW2ldICsgcHJvbV9tZW1fc2l6ZVtpXSk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvcmFsaW5rL0tjb25maWcgYi9hcmNoL21pcHMvcmFsaW5rL0tjb25maWcKaW5kZXggNDljMjJkZC4uMTQzNGZhNiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3JhbGluay9LY29uZmlnCisrKyBiL2FyY2gvbWlwcy9yYWxpbmsvS2NvbmZpZwpAQCAtNTEsNyArNTEsNiBAQAogCQlzZWxlY3QgTUlQU19HSUMKIAkJc2VsZWN0IENPTU1PTl9DTEsKIAkJc2VsZWN0IENMS1NSQ19NSVBTX0dJQwotCQlzZWxlY3QgSEFWRV9QQ0kKIGVuZGNob2ljZQogCiBjaG9pY2UKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9yYWxpbmsvdGltZXIuYyBiL2FyY2gvbWlwcy9yYWxpbmsvdGltZXIuYwppbmRleCAwYWQ4ZmYyLi42NTI0MjRkIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvcmFsaW5rL3RpbWVyLmMKKysrIGIvYXJjaC9taXBzL3JhbGluay90aW1lci5jCkBAIC0xMDYsMTAgKzEwNiw4IEBAIHN0YXRpYyBpbnQgcnRfdGltZXJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAlydC0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAocnQtPmlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGxvYWQgaXJxXG4iKTsKKwlpZiAocnQtPmlycSA8IDApCiAJCXJldHVybiBydC0+aXJxOwotCX0KIAogCXJ0LT5tZW1iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CiAJaWYgKElTX0VSUihydC0+bWVtYmFzZSkpCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvc2dpLWlwMjIvaXAyOC1iZXJyLmMgYi9hcmNoL21pcHMvc2dpLWlwMjIvaXAyOC1iZXJyLmMKaW5kZXggYzBjZjdiYS4uYzYxMzYyZCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3NnaS1pcDIyL2lwMjgtYmVyci5jCisrKyBiL2FyY2gvbWlwcy9zZ2ktaXAyMi9pcDI4LWJlcnIuYwpAQCAtOCw2ICs4LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQvZGVidWcuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC9zaWduYWwuaD4KQEAgLTMwMCwyMyArMzAxLDYgQEAgc3RhdGljIHZvaWQgcHJpbnRfYnVzZXJyKGNvbnN0IHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCSAgICAgICBmaWVsZCwgcmVncy0+Y3AwX2VwYywgZmllbGQsIHJlZ3MtPnJlZ3NbMzFdKTsKIH0KIAotLyoKLSAqIENoZWNrLCB3aGV0aGVyIE1DJ3MgKHZpcnR1YWwpIERNQSBhZGRyZXNzIGNhdXNlZCB0aGUgYnVzIGVycm9yLgotICogU2VlICJWaXJ0dWFsIERNQSBTcGVjaWZpY2F0aW9uIiwgRHJhZnQgMS41LCBGZWIgMTMgMTk5MiwgU0dJCi0gKi8KLQotc3RhdGljIGludCBhZGRyX2lzX3JhbSh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIHN6KQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGJvb3RfbWVtX21hcC5ucl9tYXA7IGkrKykgewotCQl1bnNpZ25lZCBsb25nIGEgPSBib290X21lbV9tYXAubWFwW2ldLmFkZHI7Ci0JCWlmIChhIDw9IGFkZHIgJiYgYWRkcitzeiA8PSBhK2Jvb3RfbWVtX21hcC5tYXBbaV0uc2l6ZSkKLQkJCXJldHVybiAxOwotCX0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCBjaGVja19taWNyb3RsYih1MzIgaGksIHUzMiBsbywgdW5zaWduZWQgbG9uZyB2YWRkcikKIHsKIAkvKiBUaGlzIGlzIGxpa2VseSByYXRoZXIgc2ltaWxhciB0byBjb3JyZWN0IGNvZGUgOy0pICovCkBAIC0zMzEsNyArMzE1LDcgQEAgc3RhdGljIGludCBjaGVja19taWNyb3RsYih1MzIgaGksIHUzMiBsbywgdW5zaWduZWQgbG9uZyB2YWRkcikKIAkJCS8qIFBURUluZGV4IGlzIFZQTi1sb3cgKGJpdHMgWzIyOjE0XS9bMjA6MTJdID8pICovCiAJCQl1bnNpZ25lZCBsb25nIHB0ZSA9IChsbyA+PiA2KSA8PCAxMjsgLyogUFRFQmFzZSAqLwogCQkJcHRlICs9IDgqKCh2YWRkciA+PiBwZ3N6KSAmIDB4MWZmKTsKLQkJCWlmIChhZGRyX2lzX3JhbShwdGUsIDgpKSB7CisJCQlpZiAocGFnZV9pc19yYW0oUEZOX0RPV04ocHRlKSkpIHsKIAkJCQkvKgogCQkJCSAqIE5vdGU6IFNpbmNlIERNQSBoYXJkd2FyZSBkb2VzIGxvb2sgdXAKIAkJCQkgKiB0cmFuc2xhdGlvbiBvbiBpdHMgb3duLCB0aGlzIFBURSAqbXVzdCoKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy92ZHNvL01ha2VmaWxlIGIvYXJjaC9taXBzL3Zkc28vTWFrZWZpbGUKaW5kZXggNzIyMWRmMi4uNjljZmEwYSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3Zkc28vTWFrZWZpbGUKKysrIGIvYXJjaC9taXBzL3Zkc28vTWFrZWZpbGUKQEAgLTEsNiArMSwxMiBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogIyBPYmplY3RzIHRvIGdvIGludG8gdGhlIFZEU08uCi1vYmotdmRzby15IDo9IGVsZi5vIGdldHRpbWVvZmRheS5vIHNpZ3JldHVybi5vCisKKyMgQWJzb2x1dGUgcmVsb2NhdGlvbiB0eXBlICQoQVJDSF9SRUxfVFlQRV9BQlMpIG5lZWRzIHRvIGJlIGRlZmluZWQgYmVmb3JlCisjIHRoZSBpbmNsdXNpb24gb2YgZ2VuZXJpYyBNYWtlZmlsZS4KK0FSQ0hfUkVMX1RZUEVfQUJTIDo9IFJfTUlQU19KVU1QX1NMT1R8Ul9NSVBTX0dMT0JfREFUCitpbmNsdWRlICQoc3JjdHJlZSkvbGliL3Zkc28vTWFrZWZpbGUKKworb2JqLXZkc28teSA6PSBlbGYubyB2Z2V0dGltZW9mZGF5Lm8gc2lncmV0dXJuLm8KIAogIyBDb21tb24gY29tcGlsZXIgZmxhZ3MgYmV0d2VlbiBBQklzLgogY2NmbGFncy12ZHNvIDo9IFwKQEAgLTE1LDE1ICsyMSwzMSBAQAogY2NmbGFncy12ZHNvICs9ICQoZmlsdGVyIC0tdGFyZ2V0PSUsJChLQlVJTERfQ0ZMQUdTKSkKIGVuZGlmCiAKKyMKKyMgVGhlIC1mbm8tanVtcC10YWJsZXMgZmxhZyBvbmx5IHByZXZlbnRzIHRoZSBjb21waWxlciBmcm9tIGdlbmVyYXRpbmcKKyMganVtcCB0YWJsZXMgYnV0IGRvZXMgbm90IHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gZW1pdHRpbmcgYWJzb2x1dGUKKyMgb2Zmc2V0cy4KIGNmbGFncy12ZHNvIDo9ICQoY2NmbGFncy12ZHNvKSBcCiAJJChmaWx0ZXIgLVclLCQoZmlsdGVyLW91dCAtV2EkKGNvbW1hKSUsJChLQlVJTERfQ0ZMQUdTKSkpIFwKLQktTzIgLWcgLWZQSUMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1jb21tb24gLWZuby1idWlsdGluIC1HIDAgXAotCS1ERElTQUJMRV9CUkFOQ0hfUFJPRklMSU5HIFwKKwktTzMgLWcgLWZQSUMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1jb21tb24gLWZuby1idWlsdGluIC1HIDAgXAorCS1mbm8tc3RhY2stcHJvdGVjdG9yIC1mbm8tanVtcC10YWJsZXMgLURESVNBQkxFX0JSQU5DSF9QUk9GSUxJTkcgXAogCSQoY2FsbCBjYy1vcHRpb24sIC1mbm8tYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMpIFwKIAkkKGNhbGwgY2Mtb3B0aW9uLCAtZm5vLXN0YWNrLXByb3RlY3RvcikKIGFmbGFncy12ZHNvIDo9ICQoY2NmbGFncy12ZHNvKSBcCiAJLURfX0FTU0VNQkxZX18gLVdhLC1nZHdhcmYtMgogCitpZm5lcSAoJChjLWdldHRpbWVvZmRheS15KSwpCitDRkxBR1NfdmdldHRpbWVvZmRheS5vID0gLWluY2x1ZGUgJChjLWdldHRpbWVvZmRheS15KQorCisjIGNvbmZpZy1uMzItbzMyLWVudi5jIHByZXBhcmVzIHRoZSBlbnZpcm9ubWVudCB0byBidWlsZCBhIDMyYml0IHZEU08KKyMgbGlicmFyeSBvbiBhIDY0Yml0IGtlcm5lbC4KKyMgTm90ZTogTmVlZHMgdG8gYmUgaW5jbHVkZWQgYmVmb3JlIHRoYW4gdGhlIGdlbmVyaWMgbGlicmFyeS4KK0NGTEFHU192Z2V0dGltZW9mZGF5LW8zMi5vID0gLWluY2x1ZGUgJChzcmN0cmVlKS8kKHNyYykvY29uZmlnLW4zMi1vMzItZW52LmMgLWluY2x1ZGUgJChjLWdldHRpbWVvZmRheS15KQorQ0ZMQUdTX3ZnZXR0aW1lb2ZkYXktbjMyLm8gPSAtaW5jbHVkZSAkKHNyY3RyZWUpLyQoc3JjKS9jb25maWctbjMyLW8zMi1lbnYuYyAtaW5jbHVkZSAkKGMtZ2V0dGltZW9mZGF5LXkpCitlbmRpZgorCitDRkxBR1NfUkVNT1ZFX3ZnZXR0aW1lb2ZkYXkubyA9IC1wZworCiAjCiAjIEZvciB0aGUgcHJlLVI2IGNvZGUgaW4gYXJjaC9taXBzL3Zkc28vdmRzby5oIGZvciBsb2NhdGluZwogIyB0aGUgYmFzZSBhZGRyZXNzIG9mIFZEU08sIHRoZSBsaW5rZXIgd2lsbCBlbWl0IGEgUl9NSVBTX1BDMzIKQEAgLTQ4LDYgKzcwLDggQEAKIAkkKGFkZHByZWZpeCAtV2wkKGNvbW1hKSwkKGZpbHRlciAtRSUsJChLQlVJTERfQ0ZMQUdTKSkpIFwKIAktbm9zdGRsaWIgLXNoYXJlZCAtV2wsLS1oYXNoLXN0eWxlPXN5c3YgLVdsLC0tYnVpbGQtaWQKIAorQ0ZMQUdTX1JFTU9WRV92ZHNvLm8gPSAtcGcKKwogR0NPVl9QUk9GSUxFIDo9IG4KIFVCU0FOX1NBTklUSVpFIDo9IG4KIApAQCAtNTUsMTEgKzc5LDE0IEBACiAjIFNoYXJlZCBidWlsZCBjb21tYW5kcy4KICMKIAorcXVpZXRfY21kX3Zkc29sZF9hbmRfdmRzb19jaGVjayA9IExEICAgICAgJEAKKyAgICAgIGNtZF92ZHNvbGRfYW5kX3Zkc29fY2hlY2sgPSAkKGNtZF92ZHNvbGQpOyAkKGNtZF92ZHNvX2NoZWNrKQorCiBxdWlldF9jbWRfdmRzb2xkID0gVkRTTyAgICAkQAogICAgICAgY21kX3Zkc29sZCA9ICQoQ0MpICQoY19mbGFncykgJChWRFNPX0xERkxBR1MpIFwKICAgICAgICAgICAgICAgICAgICAtV2wsLVQgJChmaWx0ZXIgJS5sZHMsJF4pICQoZmlsdGVyICUubywkXikgLW8gJEAKIAotcXVpZXRfY21kX3Zkc29hc19vX1MgPSBBUyAgICAgICAkQAorcXVpZXRfY21kX3Zkc29hc19vX1MgPSBBUyAgICAgICRACiAgICAgICBjbWRfdmRzb2FzX29fUyA9ICQoQ0MpICQoYV9mbGFncykgLWMgLW8gJEAgJDwKIAogIyBTdHJpcCBydWxlIGZvciB0aGUgcmF3IC5zbyBmaWxlcwpAQCAtOTUsNyArMTIyLDcgQEAKICQob2JqKS92ZHNvLmxkczogS0JVSUxEX0NQUEZMQUdTIDo9ICQoY2NmbGFncy12ZHNvKSAkKG5hdGl2ZS1hYmkpCiAKICQob2JqKS92ZHNvLnNvLmRiZy5yYXc6ICQob2JqKS92ZHNvLmxkcyAkKG9iai12ZHNvKSBGT1JDRQotCSQoY2FsbCBpZl9jaGFuZ2VkLHZkc29sZCkKKwkkKGNhbGwgaWZfY2hhbmdlZCx2ZHNvbGRfYW5kX3Zkc29fY2hlY2spCiAKICQob2JqKS92ZHNvLWltYWdlLmM6ICQob2JqKS92ZHNvLnNvLmRiZy5yYXcgJChvYmopL3Zkc28uc28ucmF3IFwKICAgICAgICAgICAgICAgICAgICAgICQob2JqKS9nZW52ZHNvIEZPUkNFCkBAIC0xMzMsNyArMTYwLDcgQEAKIAkkKGNhbGwgaWZfY2hhbmdlZF9kZXAsY3BwX2xkc19TKQogCiAkKG9iaikvdmRzby1vMzIuc28uZGJnLnJhdzogJChvYmopL3Zkc28tbzMyLmxkcyAkKG9iai12ZHNvLW8zMikgRk9SQ0UKLQkkKGNhbGwgaWZfY2hhbmdlZCx2ZHNvbGQpCisJJChjYWxsIGlmX2NoYW5nZWQsdmRzb2xkX2FuZF92ZHNvX2NoZWNrKQogCiAkKG9iaikvdmRzby1vMzItaW1hZ2UuYzogVkRTT19OQU1FIDo9IG8zMgogJChvYmopL3Zkc28tbzMyLWltYWdlLmM6ICQob2JqKS92ZHNvLW8zMi5zby5kYmcucmF3ICQob2JqKS92ZHNvLW8zMi5zby5yYXcgXApAQCAtMTczLDcgKzIwMCw3IEBACiAJJChjYWxsIGlmX2NoYW5nZWRfZGVwLGNwcF9sZHNfUykKIAogJChvYmopL3Zkc28tbjMyLnNvLmRiZy5yYXc6ICQob2JqKS92ZHNvLW4zMi5sZHMgJChvYmotdmRzby1uMzIpIEZPUkNFCi0JJChjYWxsIGlmX2NoYW5nZWQsdmRzb2xkKQorCSQoY2FsbCBpZl9jaGFuZ2VkLHZkc29sZF9hbmRfdmRzb19jaGVjaykKIAogJChvYmopL3Zkc28tbjMyLWltYWdlLmM6IFZEU09fTkFNRSA6PSBuMzIKICQob2JqKS92ZHNvLW4zMi1pbWFnZS5jOiAkKG9iaikvdmRzby1uMzIuc28uZGJnLnJhdyAkKG9iaikvdmRzby1uMzIuc28ucmF3IFwKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy92ZHNvL2NvbmZpZy1uMzItbzMyLWVudi5jIGIvYXJjaC9taXBzL3Zkc28vY29uZmlnLW4zMi1vMzItZW52LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAxMWE2MwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvbWlwcy92ZHNvL2NvbmZpZy1uMzItbzMyLWVudi5jCkBAIC0wLDAgKzEsMTkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQ29uZmlndXJhdGlvbiBmaWxlIGZvciBPMzIgYW5kIE4zMiBiaW5hcmllcy4KKyAqIE5vdGU6IFRvIGJlIGluY2x1ZGVkIGJlZm9yZSBsaWIvdmRzby9nZXR0aW1lb2ZkYXkuYworICovCisjaWYgZGVmaW5lZChDT05GSUdfTUlQUzMyX08zMikgfHwgZGVmaW5lZChDT05GSUdfTUlQUzMyX04zMikKKy8qCisgKiBJbiBjYXNlIG9mIGEgMzIgYml0IFZEU08gZm9yIGEgNjQgYml0IGtlcm5lbCBmYWtlIGEgMzIgYml0IGtlcm5lbAorICogY29uZmlndXJhdGlvbi4KKyAqLworI3VuZGVmIENPTkZJR182NEJJVAorCisjZGVmaW5lIEJVSUxEX1ZEU08zMgorI2RlZmluZSBDT05GSUdfMzJCSVQgMQorI2RlZmluZSBDT05GSUdfR0VORVJJQ19BVE9NSUM2NCAxCisjZGVmaW5lIEJVSUxEX1ZEU08zMl82NAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL3Zkc28vZWxmLlMgYi9hcmNoL21pcHMvdmRzby9lbGYuUwppbmRleCBlNzU0M2U4Li5hMjVjYjE0IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvdmRzby9lbGYuUworKysgYi9hcmNoL21pcHMvdmRzby9lbGYuUwpAQCAtNCw3ICs0LDcgQEAKICAqIEF1dGhvcjogQWxleCBTbWl0aCA8YWxleC5zbWl0aEBpbWd0ZWMuY29tPgogICovCiAKLSNpbmNsdWRlICJ2ZHNvLmgiCisjaW5jbHVkZSA8YXNtL3Zkc28vdmRzby5oPgogCiAjaW5jbHVkZSA8YXNtL2lzYS1yZXYuaD4KIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL3Zkc28vc2lncmV0dXJuLlMgYi9hcmNoL21pcHMvdmRzby9zaWdyZXR1cm4uUwppbmRleCBjMzU5NzYzLi5lNWMwYWI5IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvdmRzby9zaWdyZXR1cm4uUworKysgYi9hcmNoL21pcHMvdmRzby9zaWdyZXR1cm4uUwpAQCAtNCw3ICs0LDcgQEAKICAqIEF1dGhvcjogQWxleCBTbWl0aCA8YWxleC5zbWl0aEBpbWd0ZWMuY29tPgogICovCiAKLSNpbmNsdWRlICJ2ZHNvLmgiCisjaW5jbHVkZSA8YXNtL3Zkc28vdmRzby5oPgogCiAjaW5jbHVkZSA8dWFwaS9hc20vdW5pc3RkLmg+CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy92ZHNvL3Zkc28uaCBiL2FyY2gvbWlwcy92ZHNvL3Zkc28uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY1YjE2OS4uMDAwMDAwMAotLS0gYS9hcmNoL21pcHMvdmRzby92ZHNvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlciAqLwotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBJbWFnaW5hdGlvbiBUZWNobm9sb2dpZXMKLSAqIEF1dGhvcjogQWxleCBTbWl0aCA8YWxleC5zbWl0aEBpbWd0ZWMuY29tPgotICovCi0KLSNpbmNsdWRlIDxhc20vc2dpZGVmcy5oPgotCi0jaWYgX01JUFNfU0lNICE9IF9NSVBTX1NJTV9BQkk2NCAmJiBkZWZpbmVkKENPTkZJR182NEJJVCkKLQotLyogQnVpbGRpbmcgMzItYml0IFZEU08gZm9yIHRoZSA2NC1iaXQga2VybmVsLiBGYWtlIGEgMzItYml0IEtjb25maWcuICovCi0jZGVmaW5lIEJVSUxEX1ZEU08zMl82NAotI3VuZGVmIENPTkZJR182NEJJVAotI2RlZmluZSBDT05GSUdfMzJCSVQgMQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLSNpbmNsdWRlIDxhc20tZ2VuZXJpYy9hdG9taWM2NC5oPgotI2VuZGlmCi0jZW5kaWYKLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLQotI2luY2x1ZGUgPGFzbS9hc20uaD4KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS92ZHNvLmg+Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfdmRzb19iYXNlKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBhZGRyOwotCi0JLyoKLQkgKiBXZSBjYW4ndCB1c2UgY3B1X2hhc19taXBzX3I2IHNpbmNlIGl0IG5lZWRzIHRoZSBjcHVfZGF0YVtdCi0JICoga2VybmVsIHN5bWJvbC4KLQkgKi8KLSNpZmRlZiBDT05GSUdfQ1BVX01JUFNSNgotCS8qCi0JICogbGFwYyA8c3ltYm9sPiBpcyBhbiBhbGlhcyB0byBhZGRpdXBjIHJlZywgPHN5bWJvbD4gLSAuCi0JICoKLQkgKiBXZSBjYW4ndCB1c2UgYWRkaXVwYyBiZWNhdXNlIHRoZXJlIGlzIG5vIGxhYmVsLWxhYmVsCi0JICogc3VwcG9ydCBmb3IgdGhlIGFkZGl1cGMgcmVsb2MKLQkgKi8KLQlfX2FzbV9fKCJsYXBjCSUwLCBfc3RhcnQJCQlcbiIKLQkJOiAiPXIiIChhZGRyKSA6IDopOwotI2Vsc2UKLQkvKgotCSAqIEdldCB0aGUgYmFzZSBsb2FkIGFkZHJlc3Mgb2YgdGhlIFZEU08uIFdlIGhhdmUgdG8gYXZvaWQgZ2VuZXJhdGluZwotCSAqIHJlbG9jYXRpb25zIGFuZCByZWZlcmVuY2VzIHRvIHRoZSBHT1QgYmVjYXVzZSBsZC5zbyBkb2VzIG5vdCBwZWZvcm0KLQkgKiByZWxvY2F0aW9ucyBvbiB0aGUgVkRTTy4gV2UgdXNlIHRoZSBjdXJyZW50IG9mZnNldCBmcm9tIHRoZSBWRFNPIGJhc2UKLQkgKiBhbmQgcGVyZm9ybSBhIFBDLXJlbGF0aXZlIGJyYW5jaCB3aGljaCBnaXZlcyB0aGUgYWJzb2x1dGUgYWRkcmVzcyBpbgotCSAqIHJhLCBhbmQgdGFrZSB0aGUgZGlmZmVyZW5jZS4gVGhlIGFzc2VtYmxlciBjaG9rZXMgb24KLQkgKiAibGkgJTAsIF9zdGFydCAtIC4iLCBzbyBlbWJlZCB0aGUgb2Zmc2V0IGFzIGEgd29yZCBhbmQgYnJhbmNoIG92ZXIKLQkgKiBpdC4KLQkgKgotCSAqLwotCi0JX19hc21fXygKLQkiCS5zZXQgcHVzaAkJCQlcbiIKLQkiCS5zZXQgbm9yZW9yZGVyCQkJCVxuIgotCSIJYmFsCTFmCQkJCVxuIgotCSIJIG5vcAkJCQkJXG4iCi0JIgkud29yZAlfc3RhcnQgLSAuCQkJXG4iCi0JIjE6CWx3CSUwLCAwKCQzMSkJCQlcbiIKLQkiCSIgU1RSKFBUUl9BRERVKSAiICUwLCAkMzEsICUwCQlcbiIKLQkiCS5zZXQgcG9wCQkJCVxuIgotCTogIj1yIiAoYWRkcikKLQk6Ci0JOiAiJDMxIik7Ci0jZW5kaWYgLyogQ09ORklHX0NQVV9NSVBTUjYgKi8KLQotCXJldHVybiBhZGRyOwotfQotCi1zdGF0aWMgaW5saW5lIGNvbnN0IHVuaW9uIG1pcHNfdmRzb19kYXRhICpnZXRfdmRzb19kYXRhKHZvaWQpCi17Ci0JcmV0dXJuIChjb25zdCB1bmlvbiBtaXBzX3Zkc29fZGF0YSAqKShnZXRfdmRzb19iYXNlKCkgLSBQQUdFX1NJWkUpOwotfQotCi0jaWZkZWYgQ09ORklHX0NMS1NSQ19NSVBTX0dJQwotCi1zdGF0aWMgaW5saW5lIHZvaWQgX19pb21lbSAqZ2V0X2dpYyhjb25zdCB1bmlvbiBtaXBzX3Zkc29fZGF0YSAqZGF0YSkKLXsKLQlyZXR1cm4gKHZvaWQgX19pb21lbSAqKWRhdGEgLSBQQUdFX1NJWkU7Ci19Ci0KLSNlbmRpZiAvKiBDT05GSUdfQ0xLU1JDX01JUFNfR0lDICovCi0KLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy92ZHNvL3Zkc28ubGRzLlMgYi9hcmNoL21pcHMvdmRzby92ZHNvLmxkcy5TCmluZGV4IDk0ZDkwYzQuLmRhNDYyNzQgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy92ZHNvL3Zkc28ubGRzLlMKKysrIGIvYXJjaC9taXBzL3Zkc28vdmRzby5sZHMuUwpAQCAtOTUsNiArOTUsMTAgQEAKIAlnbG9iYWw6CiAJCV9fdmRzb19jbG9ja19nZXR0aW1lOwogCQlfX3Zkc29fZ2V0dGltZW9mZGF5OworCQlfX3Zkc29fY2xvY2tfZ2V0cmVzOworI2lmIF9NSVBTX1NJTSAhPSBfTUlQU19TSU1fQUJJNjQKKwkJX192ZHNvX2Nsb2NrX2dldHRpbWU2NDsKKyNlbmRpZgogI2VuZGlmCiAJbG9jYWw6ICo7CiAJfTsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy92ZHNvL3ZnZXR0aW1lb2ZkYXkuYyBiL2FyY2gvbWlwcy92ZHNvL3ZnZXR0aW1lb2ZkYXkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZWJkYzM3Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9taXBzL3Zkc28vdmdldHRpbWVvZmRheS5jCkBAIC0wLDAgKzEsNTggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCisvKgorICogTUlQUzY0IGFuZCBjb21wYXQgdXNlcnNwYWNlIGltcGxlbWVudGF0aW9ucyBvZiBnZXR0aW1lb2ZkYXkoKQorICogYW5kIHNpbWlsYXIuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEltYWdpbmF0aW9uIFRlY2hub2xvZ2llcworICogQ29weXJpZ2h0IChDKSAyMDE4IEFSTSBMaW1pdGVkCisgKgorICovCisjaW5jbHVkZSA8bGludXgvdGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKyNpZiBfTUlQU19TSU0gIT0gX01JUFNfU0lNX0FCSTY0CitpbnQgX192ZHNvX2Nsb2NrX2dldHRpbWUoY2xvY2tpZF90IGNsb2NrLAorCQkJIHN0cnVjdCBvbGRfdGltZXNwZWMzMiAqdHMpCit7CisJcmV0dXJuIF9fY3Zkc29fY2xvY2tfZ2V0dGltZTMyKGNsb2NrLCB0cyk7Cit9CisKK2ludCBfX3Zkc29fZ2V0dGltZW9mZGF5KHN0cnVjdCBfX2tlcm5lbF9vbGRfdGltZXZhbCAqdHYsCisJCQlzdHJ1Y3QgdGltZXpvbmUgKnR6KQoreworCXJldHVybiBfX2N2ZHNvX2dldHRpbWVvZmRheSh0diwgdHopOworfQorCitpbnQgX192ZHNvX2Nsb2NrX2dldHJlcyhjbG9ja2lkX3QgY2xvY2tfaWQsCisJCQlzdHJ1Y3Qgb2xkX3RpbWVzcGVjMzIgKnJlcykKK3sKKwlyZXR1cm4gX19jdmRzb19jbG9ja19nZXRyZXNfdGltZTMyKGNsb2NrX2lkLCByZXMpOworfQorCitpbnQgX192ZHNvX2Nsb2NrX2dldHRpbWU2NChjbG9ja2lkX3QgY2xvY2ssCisJCQkgICBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKnRzKQoreworCXJldHVybiBfX2N2ZHNvX2Nsb2NrX2dldHRpbWUoY2xvY2ssIHRzKTsKK30KKworI2Vsc2UKKworaW50IF9fdmRzb19jbG9ja19nZXR0aW1lKGNsb2NraWRfdCBjbG9jaywKKwkJCSBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKnRzKQoreworCXJldHVybiBfX2N2ZHNvX2Nsb2NrX2dldHRpbWUoY2xvY2ssIHRzKTsKK30KKworaW50IF9fdmRzb19nZXR0aW1lb2ZkYXkoc3RydWN0IF9fa2VybmVsX29sZF90aW1ldmFsICp0diwKKwkJCXN0cnVjdCB0aW1lem9uZSAqdHopCit7CisJcmV0dXJuIF9fY3Zkc29fZ2V0dGltZW9mZGF5KHR2LCB0eik7Cit9CisKK2ludCBfX3Zkc29fY2xvY2tfZ2V0cmVzKGNsb2NraWRfdCBjbG9ja19pZCwKKwkJCXN0cnVjdCBfX2tlcm5lbF90aW1lc3BlYyAqcmVzKQoreworCXJldHVybiBfX2N2ZHNvX2Nsb2NrX2dldHJlcyhjbG9ja19pZCwgcmVzKTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL25kczMyL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCBiL2FyY2gvbmRzMzIvaW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IGU3OGI0M2QuLjM3MTI1ZTYgMTAwNjQ0Ci0tLSBhL2FyY2gvbmRzMzIvaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvbmRzMzIvaW5jbHVkZS9hc20vcGdhbGxvYy5oCkBAIC0yMyw4ICsyMyw2IEBACiBleHRlcm4gcGdkX3QgKnBnZF9hbGxvYyhzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiBleHRlcm4gdm9pZCBwZ2RfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKiBwZ2QpOwogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpCQlkbyB7IH0gd2hpbGUgKDApCi0KIHN0YXRpYyBpbmxpbmUgcGd0YWJsZV90IHB0ZV9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CiAJcGd0YWJsZV90IHB0ZTsKZGlmZiAtLWdpdCBhL2FyY2gvbmRzMzIvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9uZHMzMi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggYzcwY2M1Ni4uMDU4OGVjOSAxMDA2NDQKLS0tIGEvYXJjaC9uZHMzMi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKKysrIGIvYXJjaC9uZHMzMi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTQwMyw4ICs0MDMsNiBAQCBleHRlcm4gcGdkX3Qgc3dhcHBlcl9wZ19kaXJbUFRSU19QRVJfUEdEXTsKICAqIGludG8gdmlydHVhbCBhZGRyZXNzIGBmcm9tJwogICovCiAKLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkgICAgICAgZG8geyB9IHdoaWxlICgwKQotCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwogCiAjZW5kaWYgLyogX0FTTU5EUzMyX1BHVEFCTEVfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9uZHMzMi9rZXJuZWwvZG1hLmMgYi9hcmNoL25kczMyL2tlcm5lbC9kbWEuYwppbmRleCA0OTBlMzcyLi40MjA2ZDRiIDEwMDY0NAotLS0gYS9hcmNoL25kczMyL2tlcm5lbC9kbWEuYworKysgYi9hcmNoL25kczMyL2tlcm5lbC9kbWEuYwpAQCAtODAsOSArODAsMyBAQCB2b2lkIGFyY2hfZG1hX3ByZXBfY29oZXJlbnQoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBzaXplKQogewogCWNhY2hlX29wKHBhZ2VfdG9fcGh5cyhwYWdlKSwgc2l6ZSwgY3B1X2RtYV93YmludmFsX3JhbmdlKTsKIH0KLQotc3RhdGljIGludCBfX2luaXQgYXRvbWljX3Bvb2xfaW5pdCh2b2lkKQotewotCXJldHVybiBkbWFfYXRvbWljX3Bvb2xfaW5pdChHRlBfS0VSTkVMLCBwZ3Byb3Rfbm9uY2FjaGVkKFBBR0VfS0VSTkVMKSk7Ci19Ci1wb3N0Y29yZV9pbml0Y2FsbChhdG9taWNfcG9vbF9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvbmlvczIvaW5jbHVkZS9hc20vcGdhbGxvYy5oIGIvYXJjaC9uaW9zMi9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKaW5kZXggNGJjOGNmNy4uMGIxNDZkNyAxMDA2NDQKLS0tIGEvYXJjaC9uaW9zMi9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKKysrIGIvYXJjaC9uaW9zMi9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKQEAgLTQxLDEwICs0MSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwZ2RfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCkKIAogI2RlZmluZSBfX3B0ZV9mcmVlX3RsYih0bGIsIHB0ZSwgYWRkcikJCQkJXAogCWRvIHsJCQkJCQkJXAotCQlwZ3RhYmxlX3BhZ2VfZHRvcihwdGUpOwkJCQlcCisJCXBndGFibGVfcHRlX3BhZ2VfZHRvcihwdGUpOwkJCVwKIAkJdGxiX3JlbW92ZV9wYWdlKCh0bGIpLCAocHRlKSk7CQkJXAogCX0gd2hpbGUgKDApCiAKLSNkZWZpbmUgY2hlY2tfcGd0X2NhY2hlKCkJZG8geyB9IHdoaWxlICgwKQotCiAjZW5kaWYgLyogX0FTTV9OSU9TMl9QR0FMTE9DX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbmlvczIvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9uaW9zMi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggOTUyMzdiNy4uOTk5ODVkOCAxMDA2NDQKLS0tIGEvYXJjaC9uaW9zMi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKKysrIGIvYXJjaC9uaW9zMi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTI5MSw4ICsyOTEsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHRlX2NsZWFyKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGd0YWJsZS5oPgogCi0jZGVmaW5lIHBndGFibGVfY2FjaGVfaW5pdCgpCQlkbyB7IH0gd2hpbGUgKDApCi0KIGV4dGVybiB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIF9faW5pdCBtbXVfaW5pdCh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9uaW9zMi9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvbmlvczIva2VybmVsL3NldHVwLmMKaW5kZXggNmJiZDRhZS4uNGNmMzViMCAxMDA2NDQKLS0tIGEvYXJjaC9uaW9zMi9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL25pb3MyL2tlcm5lbC9zZXR1cC5jCkBAIC0xMjMsNyArMTIzLDcgQEAgYXNtbGlua2FnZSB2b2lkIF9faW5pdCBuaW9zMl9ib290X2luaXQodW5zaWduZWQgcjQsIHVuc2lnbmVkIHI1LCB1bnNpZ25lZCByNiwKIAkJZHRiX3Bhc3NlZCA9IHI2OwogCiAJCWlmIChyNykKLQkJCXN0cm5jcHkoY21kbGluZV9wYXNzZWQsIChjaGFyICopcjcsIENPTU1BTkRfTElORV9TSVpFKTsKKwkJCXN0cmxjcHkoY21kbGluZV9wYXNzZWQsIChjaGFyICopcjcsIENPTU1BTkRfTElORV9TSVpFKTsKIAl9CiAjZW5kaWYKIApAQCAtMTMxLDEwICsxMzEsMTAgQEAgYXNtbGlua2FnZSB2b2lkIF9faW5pdCBuaW9zMl9ib290X2luaXQodW5zaWduZWQgcjQsIHVuc2lnbmVkIHI1LCB1bnNpZ25lZCByNiwKIAogI2lmbmRlZiBDT05GSUdfQ01ETElORV9GT1JDRQogCWlmIChjbWRsaW5lX3Bhc3NlZFswXSkKLQkJc3RybmNweShib290X2NvbW1hbmRfbGluZSwgY21kbGluZV9wYXNzZWQsIENPTU1BTkRfTElORV9TSVpFKTsKKwkJc3RybGNweShib290X2NvbW1hbmRfbGluZSwgY21kbGluZV9wYXNzZWQsIENPTU1BTkRfTElORV9TSVpFKTsKICNpZmRlZiBDT05GSUdfTklPUzJfQ01ETElORV9JR05PUkVfRFRCCiAJZWxzZQotCQlzdHJuY3B5KGJvb3RfY29tbWFuZF9saW5lLCBDT05GSUdfQ01ETElORSwgQ09NTUFORF9MSU5FX1NJWkUpOworCQlzdHJsY3B5KGJvb3RfY29tbWFuZF9saW5lLCBDT05GSUdfQ01ETElORSwgQ09NTUFORF9MSU5FX1NJWkUpOwogI2VuZGlmCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvYXJjaC9vcGVucmlzYy9pbmNsdWRlL2FzbS9wZ2FsbG9jLmggYi9hcmNoL29wZW5yaXNjL2luY2x1ZGUvYXNtL3BnYWxsb2MuaAppbmRleCAzZDRiMzk3Yy4uZGExMmE0YyAxMDA2NDQKLS0tIGEvYXJjaC9vcGVucmlzYy9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKKysrIGIvYXJjaC9vcGVucmlzYy9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKQEAgLTc1LDcgKzc1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIAlpZiAoIXB0ZSkKIAkJcmV0dXJuIE5VTEw7CiAJY2xlYXJfcGFnZShwYWdlX2FkZHJlc3MocHRlKSk7Ci0JaWYgKCFwZ3RhYmxlX3BhZ2VfY3RvcihwdGUpKSB7CisJaWYgKCFwZ3RhYmxlX3B0ZV9wYWdlX2N0b3IocHRlKSkgewogCQlfX2ZyZWVfcGFnZShwdGUpOwogCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC04OSwxOCArODksMTYgQEAgc3RhdGljIGlubGluZSB2b2lkIHB0ZV9mcmVlX2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcHRlX3QgKnB0ZSkKIAogc3RhdGljIGlubGluZSB2b2lkIHB0ZV9mcmVlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QgcGFnZSAqcHRlKQogewotCXBndGFibGVfcGFnZV9kdG9yKHB0ZSk7CisJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHB0ZSk7CiAJX19mcmVlX3BhZ2UocHRlKTsKIH0KIAogI2RlZmluZSBfX3B0ZV9mcmVlX3RsYih0bGIsIHB0ZSwgYWRkcikJXAogZG8gewkJCQkJXAotCXBndGFibGVfcGFnZV9kdG9yKHB0ZSk7CQlcCisJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHB0ZSk7CVwKIAl0bGJfcmVtb3ZlX3BhZ2UoKHRsYiksIChwdGUpKTsJXAogfSB3aGlsZSAoMCkKIAogI2RlZmluZSBwbWRfcGd0YWJsZShwbWQpIHBtZF9wYWdlKHBtZCkKIAotI2RlZmluZSBjaGVja19wZ3RfY2FjaGUoKSAgICAgICAgICBkbyB7IH0gd2hpbGUgKDApCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9vcGVucmlzYy9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL29wZW5yaXNjL2luY2x1ZGUvYXNtL3BndGFibGUuaAppbmRleCAyZmU5ZmY1Li4yNDhkMjJkIDEwMDY0NAotLS0gYS9hcmNoL29wZW5yaXNjL2luY2x1ZGUvYXNtL3BndGFibGUuaAorKysgYi9hcmNoL29wZW5yaXNjL2luY2x1ZGUvYXNtL3BndGFibGUuaApAQCAtNDQzLDExICs0NDMsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlX21tdV9jYWNoZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3BndGFibGUuaD4KIAotLyoKLSAqIE5vIHBhZ2UgdGFibGUgY2FjaGVzIHRvIGluaXRpYWxpc2UKLSAqLwotI2RlZmluZSBwZ3RhYmxlX2NhY2hlX2luaXQoKQkJZG8geyB9IHdoaWxlICgwKQotCiB0eXBlZGVmIHB0ZV90ICpwdGVfYWRkcl90OwogCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCmRpZmYgLS1naXQgYS9hcmNoL29wZW5yaXNjL2tlcm5lbC9kbWEuYyBiL2FyY2gvb3BlbnJpc2Mva2VybmVsL2RtYS5jCmluZGV4IGI0MWE3OWYuLjRkNWI4YmQgMTAwNjQ0Ci0tLSBhL2FyY2gvb3BlbnJpc2Mva2VybmVsL2RtYS5jCisrKyBiL2FyY2gvb3BlbnJpc2Mva2VybmVsL2RtYS5jCkBAIC0xNiw2ICsxNiw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2RtYS1ub25jb2hlcmVudC5oPgorI2luY2x1ZGUgPGxpbnV4L3BhZ2V3YWxrLmg+CiAKICNpbmNsdWRlIDxhc20vY3B1aW5mby5oPgogI2luY2x1ZGUgPGFzbS9zcHJfZGVmcy5oPgpAQCAtNDMsNiArNDQsMTAgQEAgcGFnZV9zZXRfbm9jYWNoZShwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgc2V0X25vY2FjaGVfd2Fsa19vcHMgPSB7CisJLnB0ZV9lbnRyeQkJPSBwYWdlX3NldF9ub2NhY2hlLAorfTsKKwogc3RhdGljIGludAogcGFnZV9jbGVhcl9ub2NhY2hlKHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJICAgdW5zaWduZWQgbG9uZyBuZXh0LCBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKQEAgLTU4LDYgKzYzLDEwIEBAIHBhZ2VfY2xlYXJfbm9jYWNoZShwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgY2xlYXJfbm9jYWNoZV93YWxrX29wcyA9IHsKKwkucHRlX2VudHJ5CQk9IHBhZ2VfY2xlYXJfbm9jYWNoZSwKK307CisKIC8qCiAgKiBBbGxvYyAiY29oZXJlbnQiIG1lbW9yeSwgd2hpY2ggZm9yIE9wZW5SSVNDIG1lYW5zIHNpbXBseSB1bmNhY2hlZC4KICAqCkBAIC04MCwxMCArODksNiBAQCBhcmNoX2RtYV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCBkbWFfYWRkcl90ICpkbWFfaGFuZGxlLAogewogCXVuc2lnbmVkIGxvbmcgdmE7CiAJdm9pZCAqcGFnZTsKLQlzdHJ1Y3QgbW1fd2FsayB3YWxrID0gewotCQkucHRlX2VudHJ5ID0gcGFnZV9zZXRfbm9jYWNoZSwKLQkJLm1tID0gJmluaXRfbW0KLQl9OwogCiAJcGFnZSA9IGFsbG9jX3BhZ2VzX2V4YWN0KHNpemUsIGdmcCB8IF9fR0ZQX1pFUk8pOwogCWlmICghcGFnZSkKQEAgLTk4LDcgKzEwMyw4IEBAIGFyY2hfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsCiAJICogV2UgbmVlZCB0byBpdGVyYXRlIHRocm91Z2ggdGhlIHBhZ2VzLCBjbGVhcmluZyB0aGUgZGNhY2hlIGZvcgogCSAqIHRoZW0gYW5kIHNldHRpbmcgdGhlIGNhY2hlLWluaGliaXQgYml0LgogCSAqLwotCWlmICh3YWxrX3BhZ2VfcmFuZ2UodmEsIHZhICsgc2l6ZSwgJndhbGspKSB7CisJaWYgKHdhbGtfcGFnZV9yYW5nZSgmaW5pdF9tbSwgdmEsIHZhICsgc2l6ZSwgJnNldF9ub2NhY2hlX3dhbGtfb3BzLAorCQkJTlVMTCkpIHsKIAkJZnJlZV9wYWdlc19leGFjdChwYWdlLCBzaXplKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtMTExLDEzICsxMTcsMTAgQEAgYXJjaF9kbWFfZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCB2b2lkICp2YWRkciwKIAkJZG1hX2FkZHJfdCBkbWFfaGFuZGxlLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXVuc2lnbmVkIGxvbmcgdmEgPSAodW5zaWduZWQgbG9uZyl2YWRkcjsKLQlzdHJ1Y3QgbW1fd2FsayB3YWxrID0gewotCQkucHRlX2VudHJ5ID0gcGFnZV9jbGVhcl9ub2NhY2hlLAotCQkubW0gPSAmaW5pdF9tbQotCX07CiAKIAkvKiB3YWxrX3BhZ2VfcmFuZ2Ugc2hvdWxkbid0IGJlIGFibGUgdG8gZmFpbCBoZXJlICovCi0JV0FSTl9PTih3YWxrX3BhZ2VfcmFuZ2UodmEsIHZhICsgc2l6ZSwgJndhbGspKTsKKwlXQVJOX09OKHdhbGtfcGFnZV9yYW5nZSgmaW5pdF9tbSwgdmEsIHZhICsgc2l6ZSwKKwkJCSZjbGVhcl9ub2NhY2hlX3dhbGtfb3BzLCBOVUxMKSk7CiAKIAlmcmVlX3BhZ2VzX2V4YWN0KHZhZGRyLCBzaXplKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL0tjb25maWcgYi9hcmNoL3BhcmlzYy9LY29uZmlnCmluZGV4IDJlNzU3YzcuLmIxNjIzN2MgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL0tjb25maWcKKysrIGIvYXJjaC9wYXJpc2MvS2NvbmZpZwpAQCAtNTIsNyArNTIsNiBAQAogCXNlbGVjdCBHRU5FUklDX1NDSEVEX0NMT0NLCiAJc2VsZWN0IEhBVkVfVU5TVEFCTEVfU0NIRURfQ0xPQ0sgaWYgU01QCiAJc2VsZWN0IEdFTkVSSUNfQ0xPQ0tFVkVOVFMKLQlzZWxlY3QgQVJDSF9OT19DT0hFUkVOVF9ETUFfTU1BUAogCXNlbGVjdCBDUFVfTk9fRUZGSUNJRU5UX0ZGUwogCXNlbGVjdCBORUVEX0RNQV9NQVBfU1RBVEUKIAlzZWxlY3QgTkVFRF9TR19ETUFfTEVOR1RICmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9NYWtlZmlsZSBiL2FyY2gvcGFyaXNjL01ha2VmaWxlCmluZGV4IDNiNzdkNzIuLjM2YjgzNGYgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL01ha2VmaWxlCisrKyBiL2FyY2gvcGFyaXNjL01ha2VmaWxlCkBAIC02MCw3ICs2MCw3IEBACiAJCSAtREZUUkFDRV9QQVRDSEFCTEVfRlVOQ1RJT05fU0laRT0kKE5PUF9DT1VOVCkKIAogQ0NfRkxBR1NfRlRSQUNFIDo9IC1mcGF0Y2hhYmxlLWZ1bmN0aW9uLWVudHJ5PSQoTk9QX0NPVU5UKSwkKHNoZWxsIGVjaG8gJCQoKCQoTk9QX0NPVU5UKS0xKSkpCi1LQlVJTERfTERGTEFHU19NT0RVTEUgKz0gLVQgJChzcmN0cmVlKS9hcmNoL3BhcmlzYy9rZXJuZWwvbW9kdWxlLmxkcworS0JVSUxEX0xEU19NT0RVTEUgKz0gJChzcmN0cmVlKS9hcmNoL3BhcmlzYy9rZXJuZWwvbW9kdWxlLmxkcwogZW5kaWYKIAogT0JKQ09QWV9GTEFHUyA9LU8gYmluYXJ5IC1SIC5ub3RlIC1SIC5jb21tZW50IC1TCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9wZ2FsbG9jLmggYi9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKaW5kZXggNGYyMDU5YS4uZDk4NjQ3YyAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3BnYWxsb2MuaApAQCAtMTI0LDYgKzEyNCw0IEBAIHBtZF9wb3B1bGF0ZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBtZF90ICpwbWQsIHB0ZV90ICpwdGUpCiAJcG1kX3BvcHVsYXRlX2tlcm5lbChtbSwgcG1kLCBwYWdlX2FkZHJlc3MocHRlX3BhZ2UpKQogI2RlZmluZSBwbWRfcGd0YWJsZShwbWQpIHBtZF9wYWdlKHBtZCkKIAotI2RlZmluZSBjaGVja19wZ3RfY2FjaGUoKQlkbyB7IH0gd2hpbGUgKDApCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vcGd0YWJsZS5oCmluZGV4IDZkNThjMTcuLjRhYzM3NGIgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3BndGFibGUuaAorKysgYi9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTEzMiw4ICsxMzIsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHVyZ2VfdGxiX2VudHJpZXMoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcikKICNkZWZpbmUgUFRSU19QRVJfUFRFICAgICgxVUwgPDwgQklUU19QRVJfUFRFKQogCiAvKiBEZWZpbml0aW9ucyBmb3IgMm5kIGxldmVsICovCi0jZGVmaW5lIHBndGFibGVfY2FjaGVfaW5pdCgpCWRvIHsgfSB3aGlsZSAoMCkKLQogI2RlZmluZSBQTURfU0hJRlQgICAgICAgKFBMRF9TSElGVCArIEJJVFNfUEVSX1BURSkKICNkZWZpbmUgUE1EX1NJWkUJKDFVTCA8PCBQTURfU0hJRlQpCiAjZGVmaW5lIFBNRF9NQVNLCSh+KFBNRF9TSVpFLTEpKQpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvaW5jbHVkZS91YXBpL2FzbS9tbWFuLmggYi9hcmNoL3BhcmlzYy9pbmNsdWRlL3VhcGkvYXNtL21tYW4uaAppbmRleCBjOTgxNjJmLi42ZmQ4ODcxIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9pbmNsdWRlL3VhcGkvYXNtL21tYW4uaAorKysgYi9hcmNoL3BhcmlzYy9pbmNsdWRlL3VhcGkvYXNtL21tYW4uaApAQCAtNDgsNiArNDgsOSBAQAogI2RlZmluZSBNQURWX0RPTlRGT1JLCTEwCQkvKiBkb24ndCBpbmhlcml0IGFjcm9zcyBmb3JrICovCiAjZGVmaW5lIE1BRFZfRE9GT1JLCTExCQkvKiBkbyBpbmhlcml0IGFjcm9zcyBmb3JrICovCiAKKyNkZWZpbmUgTUFEVl9DT0xECTIwCQkvKiBkZWFjdGl2YXRlIHRoZXNlIHBhZ2VzICovCisjZGVmaW5lIE1BRFZfUEFHRU9VVAkyMQkJLyogcmVjbGFpbSB0aGVzZSBwYWdlcyAqLworCiAjZGVmaW5lIE1BRFZfTUVSR0VBQkxFICAgNjUJCS8qIEtTTSBtYXkgbWVyZ2UgaWRlbnRpY2FsIHBhZ2VzICovCiAjZGVmaW5lIE1BRFZfVU5NRVJHRUFCTEUgNjYJCS8qIEtTTSBtYXkgbm90IG1lcmdlIGlkZW50aWNhbCBwYWdlcyAqLwogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvS2NvbmZpZyBiL2FyY2gvcG93ZXJwYy9LY29uZmlnCmluZGV4IDg5MWNkMjMuLjNlNTZjOWMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9LY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9LY29uZmlnCkBAIC0xMjgsMTQgKzEyOCwxNSBAQAogCXNlbGVjdCBBUkNIX0hBU19IVUdFUEQJCQlpZiBIVUdFVExCX1BBR0UKIAlzZWxlY3QgQVJDSF9IQVNfTU1JT1dCCQkJaWYgUFBDNjQKIAlzZWxlY3QgQVJDSF9IQVNfUEhZU19UT19ETUEKLQlzZWxlY3QgQVJDSF9IQVNfUE1FTV9BUEkgICAgICAgICAgICAgICAgaWYgUFBDNjQKKwlzZWxlY3QgQVJDSF9IQVNfUE1FTV9BUEkKIAlzZWxlY3QgQVJDSF9IQVNfUFRFX0RFVk1BUAkJaWYgUFBDX0JPT0szU182NAogCXNlbGVjdCBBUkNIX0hBU19QVEVfU1BFQ0lBTAogCXNlbGVjdCBBUkNIX0hBU19NRU1CQVJSSUVSX0NBTExCQUNLUwotCXNlbGVjdCBBUkNIX0hBU19TQ0FMRURfQ1BVVElNRQkJaWYgVklSVF9DUFVfQUNDT1VOVElOR19OQVRJVkUgJiYgUFBDNjQKKwlzZWxlY3QgQVJDSF9IQVNfU0NBTEVEX0NQVVRJTUUJCWlmIFZJUlRfQ1BVX0FDQ09VTlRJTkdfTkFUSVZFICYmIFBQQ19CT09LM1NfNjQKIAlzZWxlY3QgQVJDSF9IQVNfU1RSSUNUX0tFUk5FTF9SV1gJaWYgKChQUENfQk9PSzNTXzY0IHx8IFBQQzMyKSAmJiAhUkVMT0NBVEFCTEUgJiYgIUhJQkVSTkFUSU9OKQogCXNlbGVjdCBBUkNIX0hBU19USUNLX0JST0FEQ0FTVAkJaWYgR0VORVJJQ19DTE9DS0VWRU5UU19CUk9BRENBU1QKLQlzZWxlY3QgQVJDSF9IQVNfVUFDQ0VTU19GTFVTSENBQ0hFCWlmIFBQQzY0CisJc2VsZWN0IEFSQ0hfSEFTX1VBQ0NFU1NfRkxVU0hDQUNIRQorCXNlbGVjdCBBUkNIX0hBU19VQUNDRVNTX01DU0FGRQkJaWYgUFBDNjQKIAlzZWxlY3QgQVJDSF9IQVNfVUJTQU5fU0FOSVRJWkVfQUxMCiAJc2VsZWN0IEFSQ0hfSEFWRV9OTUlfU0FGRV9DTVBYQ0hHCiAJc2VsZWN0IEFSQ0hfS0VFUF9NRU1CTE9DSwpAQCAtMTc3LDExICsxNzgsMTMgQEAKIAlzZWxlY3QgSEFWRV9BUkNIX05WUkFNX09QUwogCXNlbGVjdCBIQVZFX0FSQ0hfU0VDQ09NUF9GSUxURVIKIAlzZWxlY3QgSEFWRV9BUkNIX1RSQUNFSE9PSworCXNlbGVjdCBIQVZFX0FTTV9NT0RWRVJTSU9OUwogCXNlbGVjdCBIQVZFX0NfUkVDT1JETUNPVU5UCiAJc2VsZWN0IEhBVkVfQ0JQRl9KSVQJCQlpZiAhUFBDNjQKIAlzZWxlY3QgSEFWRV9TVEFDS1BST1RFQ1RPUgkJaWYgUFBDNjQgJiYgJChjYy1vcHRpb24sLW1zdGFjay1wcm90ZWN0b3ItZ3VhcmQ9dGxzIC1tc3RhY2stcHJvdGVjdG9yLWd1YXJkLXJlZz1yMTMpCiAJc2VsZWN0IEhBVkVfU1RBQ0tQUk9URUNUT1IJCWlmIFBQQzMyICYmICQoY2Mtb3B0aW9uLC1tc3RhY2stcHJvdGVjdG9yLWd1YXJkPXRscyAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZC1yZWc9cjIpCiAJc2VsZWN0IEhBVkVfQ09OVEVYVF9UUkFDS0lORwkJaWYgUFBDNjQKKwlzZWxlY3QgSEFWRV9DT1BZX1RIUkVBRF9UTFMKIAlzZWxlY3QgSEFWRV9ERUJVR19LTUVNTEVBSwogCXNlbGVjdCBIQVZFX0RFQlVHX1NUQUNLT1ZFUkZMT1cKIAlzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRQpAQCAtNTY3LDcgKzU3MCw3IEBACiAKIGNvbmZpZyBGQV9EVU1QCiAJYm9vbCAiRmlybXdhcmUtYXNzaXN0ZWQgZHVtcCIKLQlkZXBlbmRzIG9uIFBQQzY0ICYmIFBQQ19SVEFTCisJZGVwZW5kcyBvbiBQUEM2NCAmJiAoUFBDX1JUQVMgfHwgUFBDX1BPV0VSTlYpCiAJc2VsZWN0IENSQVNIX0NPUkUKIAlzZWxlY3QgQ1JBU0hfRFVNUAogCWhlbHAKQEAgLTU3OCw3ICs1ODEsMjYgQEAKIAkgIGlzIG1lYW50IHRvIGJlIGEga2R1bXAgcmVwbGFjZW1lbnQgb2ZmZXJpbmcgcm9idXN0bmVzcyBhbmQKIAkgIHNwZWVkIG5vdCBwb3NzaWJsZSB3aXRob3V0IHN5c3RlbSBmaXJtd2FyZSBhc3Npc3RhbmNlLgogCi0JICBJZiB1bnN1cmUsIHNheSAiTiIKKwkgIElmIHVuc3VyZSwgc2F5ICJ5Ii4gT25seSBzcGVjaWFsIGtlcm5lbHMgbGlrZSBwZXRpdGJvb3QgbWF5CisJICBuZWVkIHRvIHNheSAiTiIgaGVyZS4KKworY29uZmlnIFBSRVNFUlZFX0ZBX0RVTVAKKwlib29sICJQcmVzZXJ2ZSBGaXJtd2FyZS1hc3Npc3RlZCBkdW1wIgorCWRlcGVuZHMgb24gUFBDNjQgJiYgUFBDX1BPV0VSTlYgJiYgIUZBX0RVTVAKKwloZWxwCisJICBPbiBhIGtlcm5lbCB3aXRoIEZBX0RVTVAgZGlzYWJsZWQsIHRoaXMgb3B0aW9uIGhlbHBzIHRvIHByZXNlcnZlCisJICBjcmFzaCBkYXRhIGZyb20gYSBwcmV2aW91c2x5IGNyYXNoJ2VkIGtlcm5lbC4gVXNlZnVsIHdoZW4gdGhlIG5leHQKKwkgIG1lbW9yeSBwcmVzZXJ2aW5nIGtlcm5lbCBib290IHdvdWxkIHByb2Nlc3MgdGhpcyBjcmFzaCBkYXRhLgorCSAgUGV0aXRib290IGtlcm5lbCBpcyB0aGUgdHlwaWNhbCB1c2VjYXNlIGZvciB0aGlzIG9wdGlvbi4KKworY29uZmlnIE9QQUxfQ09SRQorCWJvb2wgIkV4cG9ydCBPUEFMIG1lbW9yeSBhcyAvc3lzL2Zpcm13YXJlL29wYWwvY29yZSIKKwlkZXBlbmRzIG9uIFBQQzY0ICYmIFBQQ19QT1dFUk5WCisJaGVscAorCSAgVGhpcyBvcHRpb24gdXNlcyB0aGUgTVBJUEwgc3VwcG9ydCBpbiBmaXJtd2FyZSB0byBwcm92aWRlIGFuCisJICBFTEYgY29yZSBvZiBPUEFMIG1lbW9yeSBhZnRlciBhIGNyYXNoLiBUaGUgRUxGIGNvcmUgaXMgZXhwb3J0ZWQKKwkgIGFzIC9zeXMvZmlybXdhcmUvb3BhbC9jb3JlIGZpbGUgd2hpY2ggaXMgaGVscGZ1bCBpbiBkZWJ1Z2dpbmcKKwkgIE9QQUwgY3Jhc2hlcyB1c2luZyBHREIuCiAKIGNvbmZpZyBJUlFfQUxMX0NQVVMKIAlib29sICJEaXN0cmlidXRlIGludGVycnVwdHMgb24gYWxsIENQVXMgYnkgZGVmYXVsdCIKQEAgLTExMzksMTggKzExNjEsNiBAQAogCWRlZmF1bHQgIjB4ODAwMDAwMDAiIGlmIFBQQ184eHgKIAlkZWZhdWx0ICIweGMwMDAwMDAwIgogCi1jb25maWcgQ09OU0lTVEVOVF9TSVpFX0JPT0wKLQlib29sICJTZXQgY3VzdG9tIGNvbnNpc3RlbnQgbWVtb3J5IHBvb2wgc2l6ZSIKLQlkZXBlbmRzIG9uIEFEVkFOQ0VEX09QVElPTlMgJiYgTk9UX0NPSEVSRU5UX0NBQ0hFCi0JaGVscAotCSAgVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBzZXQgdGhlIHNpemUgb2YgdGhlCi0JICBjb25zaXN0ZW50IG1lbW9yeSBwb29sLiAgVGhpcyBwb29sIG9mIHZpcnR1YWwgbWVtb3J5Ci0JICBpcyB1c2VkIHRvIG1ha2UgY29uc2lzdGVudCBtZW1vcnkgYWxsb2NhdGlvbnMuCi0KLWNvbmZpZyBDT05TSVNURU5UX1NJWkUKLQloZXggIlNpemUgb2YgY29uc2lzdGVudCBtZW1vcnkgcG9vbCIgaWYgQ09OU0lTVEVOVF9TSVpFX0JPT0wKLQlkZWZhdWx0ICIweDAwMjAwMDAwIiBpZiBOT1RfQ09IRVJFTlRfQ0FDSEUKLQogY29uZmlnIFBJTl9UTEIKIAlib29sICJQaW5uZWQgS2VybmVsIFRMQnMgKDg2MCBPTkxZKSIKIAlkZXBlbmRzIG9uIEFEVkFOQ0VEX09QVElPTlMgJiYgUFBDXzh4eCAmJiBcCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvTWFrZWZpbGUgYi9hcmNoL3Bvd2VycGMvTWFrZWZpbGUKaW5kZXggNDAzZjdlMS4uODM1MjJjOWYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9NYWtlZmlsZQorKysgYi9hcmNoL3Bvd2VycGMvTWFrZWZpbGUKQEAgLTY1LDcgKzY1LDcgQEAKIGlmZGVmIENPTkZJR19QUEMzMgogS0JVSUxEX0xERkxBR1NfTU9EVUxFICs9IGFyY2gvcG93ZXJwYy9saWIvY3J0c2F2cmVzLm8KIGVsc2UKLUtCVUlMRF9MREZMQUdTX01PRFVMRSArPSAtVCAkKHNyY3RyZWUpL2FyY2gvcG93ZXJwYy9rZXJuZWwvbW9kdWxlLmxkcworS0JVSUxEX0xEU19NT0RVTEUgKz0gJChzcmN0cmVlKS9hcmNoL3Bvd2VycGMva2VybmVsL21vZHVsZS5sZHMKIGlmZXEgKCQoY2FsbCBsZC1pZnZlcnNpb24sIC1nZSwgMjI1MDAwMDAwLCB5KSx5KQogIyBIYXZlIHRoZSBsaW5rZXIgcHJvdmlkZSBzZnByIGlmIHBvc3NpYmxlLgogIyBUaGVyZSBpcyBhIGNvcnJlc3BvbmRpbmcgdGVzdCBpbiBhcmNoL3Bvd2VycGMvbGliL01ha2VmaWxlCkBAIC0xMTAsNyArMTEwLDYgQEAKIEtCVUlMRF9DRkxBR1MJKz0gLW0kKEJJVFMpCiBLQlVJTERfQUZMQUdTCSs9IC1tJChCSVRTKSAtV2wsLWEkKEJJVFMpCiBLQlVJTERfTERGTEFHUwkrPSAtbSBlbGYkKEJJVFMpJChMREVNVUxBVElPTikKLUtCVUlMRF9BUkZMQUdTCSs9IC0tdGFyZ2V0PWVsZiQoQklUUyktJChHTlVUQVJHRVQpCiBlbmRpZgogCiBjZmxhZ3MtJChDT05GSUdfU1RBQ0tQUk9URUNUT1IpCSs9IC1tc3RhY2stcHJvdGVjdG9yLWd1YXJkPXRscwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL01ha2VmaWxlLnBvc3RsaW5rIGIvYXJjaC9wb3dlcnBjL01ha2VmaWxlLnBvc3RsaW5rCmluZGV4IDgzZjhlNWIuLjEzNGYxMmYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9NYWtlZmlsZS5wb3N0bGluaworKysgYi9hcmNoL3Bvd2VycGMvTWFrZWZpbGUucG9zdGxpbmsKQEAgLTE4LDcgKzE4LDcgQEAKIGlmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0CiAgICAgICBjbWRfcmVsb2NzX2NoZWNrID0JCQkJCQlcCiAJJChDT05GSUdfU0hFTEwpICQoc3JjdHJlZSkvYXJjaC9wb3dlcnBjL3Rvb2xzL3JlbG9jc19jaGVjay5zaCAiJChPQkpEVU1QKSIgIiRAIiA7IFwKLQkkKENPTkZJR19TSEVMTCkgJChzcmN0cmVlKS9hcmNoL3Bvd2VycGMvdG9vbHMvdW5yZWxfYnJhbmNoX2NoZWNrLnNoICIkKE9CSkRVTVApIiAiJEAiCisJJChCQVNIKSAkKHNyY3RyZWUpL2FyY2gvcG93ZXJwYy90b29scy91bnJlbF9icmFuY2hfY2hlY2suc2ggIiQoT0JKRFVNUCkiICIkQCIKIGVsc2UKICAgICAgIGNtZF9yZWxvY3NfY2hlY2sgPQkJCQkJCVwKIAkkKENPTkZJR19TSEVMTCkgJChzcmN0cmVlKS9hcmNoL3Bvd2VycGMvdG9vbHMvcmVsb2NzX2NoZWNrLnNoICIkKE9CSkRVTVApIiAiJEAiCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9tYWluLmMgYi9hcmNoL3Bvd2VycGMvYm9vdC9tYWluLmMKaW5kZXggMTAyY2M1NC4uYTlkMjA5MSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2Jvb3QvbWFpbi5jCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L21haW4uYwpAQCAtMTQ2LDYgKzE0Niw0NiBAQCBzdGF0aWMgc3RydWN0IGFkZHJfcmFuZ2UgcHJlcF9pbml0cmQoc3RydWN0IGFkZHJfcmFuZ2Ugdm1saW51eCwgdm9pZCAqY2hvc2VuLAogCXJldHVybiAoc3RydWN0IGFkZHJfcmFuZ2Upeyh2b2lkICopaW5pdHJkX2FkZHIsIGluaXRyZF9zaXplfTsKIH0KIAorI2lmZGVmIF9fcG93ZXJwYzY0X18KK3N0YXRpYyB2b2lkIHByZXBfZXNtX2Jsb2Ioc3RydWN0IGFkZHJfcmFuZ2Ugdm1saW51eCwgdm9pZCAqY2hvc2VuKQoreworCXVuc2lnbmVkIGxvbmcgZXNtX2Jsb2JfYWRkciwgZXNtX2Jsb2Jfc2l6ZTsKKworCS8qIERvIHdlIGhhdmUgYW4gRVNNIChFbnRlciBTZWN1cmUgTW9kZSkgYmxvYj8gKi8KKwlpZiAoX2VzbV9ibG9iX2VuZCA8PSBfZXNtX2Jsb2Jfc3RhcnQpCisJCXJldHVybjsKKworCXByaW50ZigiQXR0YWNoZWQgRVNNIGJsb2IgYXQgMHglcC0weCVwXG5cciIsCisJICAgICAgIF9lc21fYmxvYl9zdGFydCwgX2VzbV9ibG9iX2VuZCk7CisJZXNtX2Jsb2JfYWRkciA9ICh1bnNpZ25lZCBsb25nKV9lc21fYmxvYl9zdGFydDsKKwllc21fYmxvYl9zaXplID0gX2VzbV9ibG9iX2VuZCAtIF9lc21fYmxvYl9zdGFydDsKKworCS8qCisJICogSWYgdGhlIEVTTSBibG9iIGlzIHRvbyBsb3cgaXQgd2lsbCBiZSBjbG9iYmVyZWQgd2hlbiB0aGUKKwkgKiBrZXJuZWwgcmVsb2NhdGVzIHRvIGl0cyBmaW5hbCBsb2NhdGlvbi4gIEluIHRoaXMgY2FzZSwKKwkgKiBhbGxvY2F0ZSBhIHNhZmVyIHBsYWNlIGFuZCBtb3ZlIGl0LgorCSAqLworCWlmIChlc21fYmxvYl9hZGRyIDwgdm1saW51eC5zaXplKSB7CisJCXZvaWQgKm9sZF9hZGRyID0gKHZvaWQgKillc21fYmxvYl9hZGRyOworCisJCXByaW50ZigiQWxsb2NhdGluZyAweCVseCBieXRlcyBmb3IgZXNtX2Jsb2IgLi4uXG5cciIsCisJCSAgICAgICBlc21fYmxvYl9zaXplKTsKKwkJZXNtX2Jsb2JfYWRkciA9ICh1bnNpZ25lZCBsb25nKW1hbGxvYyhlc21fYmxvYl9zaXplKTsKKwkJaWYgKCFlc21fYmxvYl9hZGRyKQorCQkJZmF0YWwoIkNhbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgRVNNIGJsb2IgIVxuXHIiKTsKKwkJcHJpbnRmKCJSZWxvY2F0aW5nIEVTTSBibG9iIDB4JWx4IDwtIDB4JXAgKDB4JWx4IGJ5dGVzKVxuXHIiLAorCQkgICAgICAgZXNtX2Jsb2JfYWRkciwgb2xkX2FkZHIsIGVzbV9ibG9iX3NpemUpOworCQltZW1tb3ZlKCh2b2lkICopZXNtX2Jsb2JfYWRkciwgb2xkX2FkZHIsIGVzbV9ibG9iX3NpemUpOworCX0KKworCS8qIFRlbGwgdGhlIGtlcm5lbCBFU00gYmxvYiBhZGRyZXNzIHZpYSBkZXZpY2UgdHJlZS4gKi8KKwlzZXRwcm9wX3ZhbChjaG9zZW4sICJsaW51eCxlc20tYmxvYi1zdGFydCIsICh1MzIpKGVzbV9ibG9iX2FkZHIpKTsKKwlzZXRwcm9wX3ZhbChjaG9zZW4sICJsaW51eCxlc20tYmxvYi1lbmQiLCAodTMyKShlc21fYmxvYl9hZGRyICsgZXNtX2Jsb2Jfc2l6ZSkpOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBwcmVwX2VzbV9ibG9iKHN0cnVjdCBhZGRyX3JhbmdlIHZtbGludXgsIHZvaWQgKmNob3NlbikgeyB9CisjZW5kaWYKKwogLyogQSBidWZmZXIgdGhhdCBtYXkgYmUgZWRpdGVkIGJ5IHRvb2xzIG9wZXJhdGluZyBvbiBhIHpJbWFnZSBiaW5hcnkgc28gYXMgdG8KICAqIGVkaXQgdGhlIGNvbW1hbmQgbGluZSBwYXNzZWQgdG8gdm1saW51eCAoYnkgc2V0dGluZyAvY2hvc2VuL2Jvb3RhcmdzKS4KICAqIFRoZSBidWZmZXIgaXMgcHV0IGluIGl0J3Mgb3duIHNlY3Rpb24gc28gdGhhdCB0b29scyBtYXkgbG9jYXRlIGl0IGVhc2llci4KQEAgLTIxNCw2ICsyNTQsNyBAQCB2b2lkIHN0YXJ0KHZvaWQpCiAJdm1saW51eCA9IHByZXBfa2VybmVsKCk7CiAJaW5pdHJkID0gcHJlcF9pbml0cmQodm1saW51eCwgY2hvc2VuLAogCQkJICAgICBsb2FkZXJfaW5mby5pbml0cmRfYWRkciwgbG9hZGVyX2luZm8uaW5pdHJkX3NpemUpOworCXByZXBfZXNtX2Jsb2Iodm1saW51eCwgY2hvc2VuKTsKIAlwcmVwX2NtZGxpbmUoY2hvc2VuKTsKIAogCXByaW50ZigiRmluYWxpemluZyBkZXZpY2UgdHJlZS4uLiIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3Qvb3BzLmggYi9hcmNoL3Bvd2VycGMvYm9vdC9vcHMuaAppbmRleCBjZDA0MzcyLi5lMDYwNjc2IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvYm9vdC9vcHMuaAorKysgYi9hcmNoL3Bvd2VycGMvYm9vdC9vcHMuaApAQCAtMjUxLDYgKzI1MSw4IEBAIGV4dGVybiBjaGFyIF9pbml0cmRfc3RhcnRbXTsKIGV4dGVybiBjaGFyIF9pbml0cmRfZW5kW107CiBleHRlcm4gY2hhciBfZHRiX3N0YXJ0W107CiBleHRlcm4gY2hhciBfZHRiX2VuZFtdOworZXh0ZXJuIGNoYXIgX2VzbV9ibG9iX3N0YXJ0W107CitleHRlcm4gY2hhciBfZXNtX2Jsb2JfZW5kW107CiAKIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoY29uc3QpKQogaW50IF9faWxvZzJfdTMyKHUzMiBuKQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3Qvd3JhcHBlciBiL2FyY2gvcG93ZXJwYy9ib290L3dyYXBwZXIKaW5kZXggNTE0OGFjMi4uZWQ2MjY2MyAxMDA3NTUKLS0tIGEvYXJjaC9wb3dlcnBjL2Jvb3Qvd3JhcHBlcgorKysgYi9hcmNoL3Bvd2VycGMvYm9vdC93cmFwcGVyCkBAIC0xMyw2ICsxMyw3IEBACiAjIC1pIGluaXRyZAlzcGVjaWZ5IGluaXRyZCBmaWxlCiAjIC1kIGRldnRyZWUJc3BlY2lmeSBkZXZpY2UtdHJlZSBibG9iCiAjIC1zIHRyZWUuZHRzCXNwZWNpZnkgZGV2aWNlLXRyZWUgc291cmNlIGZpbGUgKG5lZWRzIGR0YyBpbnN0YWxsZWQpCisjIC1lIGVzbV9ibG9iICAgc3BlY2lmeSBFU00gYmxvYiBmb3Igc2VjdXJlIGltYWdlcwogIyAtYwkJY2FjaGUgJGtlcm5lbC5zdHJpcC5neiAodXNlIGlmIHByZXNlbnQgJiBuZXdlciwgZWxzZSBtYWtlKQogIyAtQyBwcmVmaXgJc3BlY2lmeSBjb21tYW5kIHByZWZpeCBmb3IgY3Jvc3MtYnVpbGRpbmcgdG9vbHMKICMJCShzdHJpcCwgb2JqY29weSwgbGQpCkBAIC0zNyw2ICszOCw3IEBACiBpbml0cmQ9CiBkdGI9CiBkdHM9Citlc21fYmxvYj0KIGNhY2hlaXQ9CiBiaW5hcnk9CiBjb21wcmVzc2lvbj0uZ3oKQEAgLTYwLDkgKzYyLDkgQEAKIAogdXNhZ2UoKSB7CiAgICAgZWNobyAnVXNhZ2U6IHdyYXBwZXIgWy1vIG91dHB1dF0gWy1wIHBsYXRmb3JtXSBbLWkgaW5pdHJkXScgPiYyCi0gICAgZWNobyAnICAgICAgIFstZCBkZXZ0cmVlXSBbLXMgdHJlZS5kdHNdIFstY10gWy1DIGNyb3NzLXByZWZpeF0nID4mMgotICAgIGVjaG8gJyAgICAgICBbLUQgZGF0YWRpcl0gWy1XIHdvcmtpbmdkaXJdIFstWiAoZ3p8eHp8bm9uZSldJyA+JjIKLSAgICBlY2hvICcgICAgICAgWy0tbm8tY29tcHJlc3Npb25dIFt2bWxpbnV4XScgPiYyCisgICAgZWNobyAnICAgICAgIFstZCBkZXZ0cmVlXSBbLXMgdHJlZS5kdHNdIFstZSBlc21fYmxvYl0nID4mMgorICAgIGVjaG8gJyAgICAgICBbLWNdIFstQyBjcm9zcy1wcmVmaXhdIFstRCBkYXRhZGlyXSBbLVcgd29ya2luZ2Rpcl0nID4mMgorICAgIGVjaG8gJyAgICAgICBbLVogKGd6fHh6fG5vbmUpXSBbLS1uby1jb21wcmVzc2lvbl0gW3ZtbGludXhdJyA+JjIKICAgICBleGl0IDEKIH0KIApAQCAtMTA1LDYgKzEwNywxMSBAQAogCVsgIiQjIiAtZ3QgMCBdIHx8IHVzYWdlCiAJZHRiPSIkMSIKIAk7OworICAgIC1lKQorCXNoaWZ0CisJWyAiJCMiIC1ndCAwIF0gfHwgdXNhZ2UKKwllc21fYmxvYj0iJDEiCisJOzsKICAgICAtcykKIAlzaGlmdAogCVsgIiQjIiAtZ3QgMCBdIHx8IHVzYWdlCkBAIC0yMTgsOSArMjI1LDE2IEBACiB0bXA9JHRtcGRpci96SW1hZ2UuJCQubwoga3NlY3Rpb249Lmtlcm5lbDp2bWxpbnV4LnN0cmlwCiBpc2VjdGlvbj0ua2VybmVsOmluaXRyZAorZXNlY3Rpb249Lmtlcm5lbDplc21fYmxvYgogbGlua19hZGRyZXNzPScweDQwMDAwMCcKIG1ha2Vfc3BhY2U9eQogCisKK2lmIFsgLW4gIiRlc21fYmxvYiIgLWEgIiRwbGF0Zm9ybSIgIT0gInBzZXJpZXMiIF07IHRoZW4KKyAgICBlY2hvICJFU00gYmxvYiBub3Qgc3VwcG9ydCBvbiBub24tcHNlcmllcyBwbGF0Zm9ybXMiID4mMgorICAgIGV4aXQgMQorZmkKKwogY2FzZSAiJHBsYXRmb3JtIiBpbgogb2YpCiAgICAgcGxhdGZvcm1vPSIkb2JqZWN0L29mLm8gJG9iamVjdC9lcGFwci5vIgpAQCAtNDc3LDYgKzQ5MSwxMCBAQAogICAgIGZpCiBmaQogCitpZiBbIC1uICIkZXNtX2Jsb2IiIF07IHRoZW4KKyAgICBhZGRzZWMgJHRtcCAiJGVzbV9ibG9iIiAkZXNlY3Rpb24KK2ZpCisKIGlmIFsgIiRwbGF0Zm9ybSIgIT0gIm1pYm9vdCIgXTsgdGhlbgogICAgIGlmIFsgLW4gIiRsaW5rX2FkZHJlc3MiIF0gOyB0aGVuCiAgICAgICAgIHRleHRfc3RhcnQ9Ii1UdGV4dCAkbGlua19hZGRyZXNzIgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvekltYWdlLmxkcy5TIGIvYXJjaC9wb3dlcnBjL2Jvb3QvekltYWdlLmxkcy5TCmluZGV4IDRhYzFlMzYuLmEyMWYzYTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9ib290L3pJbWFnZS5sZHMuUworKysgYi9hcmNoL3Bvd2VycGMvYm9vdC96SW1hZ2UubGRzLlMKQEAgLTY4LDYgKzY4LDE0IEBACiAgICAgX2luaXRyZF9lbmQgPSAgLjsKICAgfQogCisgIC4gPSBBTElHTig0MDk2KTsKKyAgLmtlcm5lbDplc21fYmxvYiA6CisgIHsKKyAgICBfZXNtX2Jsb2Jfc3RhcnQgPSAgLjsKKyAgICAqKC5rZXJuZWw6ZXNtX2Jsb2IpCisgICAgX2VzbV9ibG9iX2VuZCA9ICAuOworICB9CisKICNpZmRlZiBDT05GSUdfUFBDNjRfQk9PVF9XUkFQUEVSCiAgIC4gPSBBTElHTigyNTYpOwogICAuZ290IDoKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wbWFjMzJfZGVmY29uZmlnCmluZGV4IDdlNjY1NDguLjRlNmU5NWYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG1hYzMyX2RlZmNvbmZpZwpAQCAtMjAsNyArMjAsNiBAQAogQ09ORklHX0NQVV9GUkVRX0dPVl9QT1dFUlNBVkU9eQogQ09ORklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0U9eQogQ09ORklHX0NQVV9GUkVRX1BNQUM9eQotQ09ORklHX1BQQzYwMV9TWU5DX0ZJWD15CiBDT05GSUdfR0VOX1JUQz15CiBDT05GSUdfSElHSE1FTT15CiBDT05GSUdfQklORk1UX01JU0M9bQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZwppbmRleCAzNDIxOWQ1Li42NjU4Y2NlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZwpAQCAtMzgsNyArMzgsNyBAQAogQ09ORklHX01PRFZFUlNJT05TPXkKIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEw9eQogQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15Ci1DT05GSUdfU0NPTV9ERUJVR0ZTPXkKKyMgQ09ORklHX1NDT01fREVCVUdGUyBpcyBub3Qgc2V0CiBDT05GSUdfT1BBTF9QUkQ9eQogQ09ORklHX1BQQ19NRU1UUkFDRT15CiAjIENPTkZJR19QUENfUFNFUklFUyBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM0MHhfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNDB4X2RlZmNvbmZpZwppbmRleCA4ZjEzNmI1Li5hNWY2ODNhIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM0MHhfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3BwYzQweF9kZWZjb25maWcKQEAgLTg0LDQgKzg0LDMgQEAKIENPTkZJR19DUllQVE9fUENCQz15CiBDT05GSUdfQ1JZUFRPX01ENT15CiBDT05GSUdfQ1JZUFRPX0RFUz15Ci1DT05GSUdfUFBDNHh4X09DTT15CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWcKaW5kZXggZGM4M2ZlZi4uYjI1MGU2ZiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZwpAQCAtMjksNiArMjksNyBAQAogQ09ORklHX1NDQU5MT0c9bQogQ09ORklHX1BQQ19TTUxQQVI9eQogQ09ORklHX0lCTUVCVVM9eQorQ09ORklHX1BQQ19TVk09eQogQ09ORklHX1BQQ19NQVBMRT15CiBDT05GSUdfUFBDX1BBU0VNST15CiBDT05GSUdfUFBDX1BBU0VNSV9JT01NVT15CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9wc2VyaWVzX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3BzZXJpZXNfZGVmY29uZmlnCmluZGV4IDM4YWJjOWMuLjI2MTI2YjQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3BzZXJpZXNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3BzZXJpZXNfZGVmY29uZmlnCkBAIC00Miw2ICs0Miw3IEBACiBDT05GSUdfU0NBTkxPRz1tCiBDT05GSUdfUFBDX1NNTFBBUj15CiBDT05GSUdfSUJNRUJVUz15CitDT05GSUdfUFBDX1NWTT15CiAjIENPTkZJR19QUENfUE1BQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRBU19GTEFTSD1tCiBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfT05ERU1BTkQ9eQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc2tpcm9vdF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9za2lyb290X2RlZmNvbmZpZwppbmRleCA1NTdiNTMwLi4xMjUzNDgyIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9za2lyb290X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9za2lyb290X2RlZmNvbmZpZwpAQCAtMjEzLDYgKzIxMyw3IEBACiBDT05GSUdfSFdfUkFORE9NPXkKIENPTkZJR19UQ0dfVFBNPXkKIENPTkZJR19UQ0dfVElTX0kyQ19OVVZPVE9OPXkKKyMgQ09ORklHX0RFVlBPUlQgaXMgbm90IHNldAogQ09ORklHX0kyQz15CiAjIENPTkZJR19JMkNfQ09NUEFUIGlzIG5vdCBzZXQKIENPTkZJR19JMkNfQ0hBUkRFVj15CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXNtLXByb3RvdHlwZXMuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hc20tcHJvdG90eXBlcy5oCmluZGV4IGVjMWM5N2EuLjg1NjE0OTggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hc20tcHJvdG90eXBlcy5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hc20tcHJvdG90eXBlcy5oCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSA8YXNtL2VwYXByX2hjYWxscy5oPgogI2luY2x1ZGUgPGFzbS9kY3IuaD4KICNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KKyNpbmNsdWRlIDxhc20vdWx0cmF2aXNvci1hcGkuaD4KIAogI2luY2x1ZGUgPHVhcGkvYXNtL3Vjb250ZXh0Lmg+CiAKQEAgLTM0LDYgKzM1LDE2IEBAIGV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleSBoY2FsbF90cmFjZXBvaW50X2tleTsKIHZvaWQgX190cmFjZV9oY2FsbF9lbnRyeSh1bnNpZ25lZCBsb25nIG9wY29kZSwgdW5zaWduZWQgbG9uZyAqYXJncyk7CiB2b2lkIF9fdHJhY2VfaGNhbGxfZXhpdChsb25nIG9wY29kZSwgbG9uZyByZXR2YWwsIHVuc2lnbmVkIGxvbmcgKnJldGJ1Zik7CiAKKy8qIFVsdHJhdmlzb3IgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19QUENfUE9XRVJOVikgfHwgZGVmaW5lZChDT05GSUdfUFBDX1NWTSkKK2xvbmcgdWNhbGxfbm9yZXRzKHVuc2lnbmVkIGxvbmcgb3Bjb2RlLCAuLi4pOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgbG9uZyB1Y2FsbF9ub3JldHModW5zaWduZWQgbG9uZyBvcGNvZGUsIC4uLikKK3sKKwlyZXR1cm4gVV9OT1RfQVZBSUxBQkxFOworfQorI2VuZGlmCisKIC8qIE9QQUwgKi8KIGludDY0X3QgX19vcGFsX2NhbGwoaW50NjRfdCBhMCwgaW50NjRfdCBhMSwgaW50NjRfdCBhMiwgaW50NjRfdCBhMywKIAkJICAgIGludDY0X3QgYTQsIGludDY0X3QgYTUsIGludDY0X3QgYTYsIGludDY0X3QgYTcsCkBAIC0xMjMsNyArMTM0LDggQEAgZXh0ZXJuIGludCBfX3VjbXBkaTIodTY0LCB1NjQpOwogCiAvKiB0cmFjaW5nICovCiB2b2lkIF9tY291bnQodm9pZCk7Ci11bnNpZ25lZCBsb25nIHByZXBhcmVfZnRyYWNlX3JldHVybih1bnNpZ25lZCBsb25nIHBhcmVudCwgdW5zaWduZWQgbG9uZyBpcCk7Cit1bnNpZ25lZCBsb25nIHByZXBhcmVfZnRyYWNlX3JldHVybih1bnNpZ25lZCBsb25nIHBhcmVudCwgdW5zaWduZWQgbG9uZyBpcCwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgc3ApOwogCiB2b2lkIHBudl9wb3dlcjlfZm9yY2Vfc210NF9jYXRjaCh2b2lkKTsKIHZvaWQgcG52X3Bvd2VyOV9mb3JjZV9zbXQ0X3JlbGVhc2Uodm9pZCk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzLzMyL3BndGFibGUuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvMzIvcGd0YWJsZS5oCmluZGV4IDgzOGRlNTkuLjA3OTY1MzMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvMzIvcGd0YWJsZS5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvMzIvcGd0YWJsZS5oCkBAIC0xNDgsMjMgKzE0OCwyMSBAQCBpbnQgbWFwX2tlcm5lbF9wYWdlKHVuc2lnbmVkIGxvbmcgdmEsIHBoeXNfYWRkcl90IHBhLCBwZ3Byb3RfdCBwcm90KTsKICAqLwogI2luY2x1ZGUgPGFzbS9maXhtYXAuaD4KIAotI2lmZGVmIENPTkZJR19ISUdITUVNCi0jZGVmaW5lIEtWSVJUX1RPUAlQS01BUF9CQVNFCi0jZWxzZQotI2RlZmluZSBLVklSVF9UT1AJRklYQUREUl9TVEFSVAotI2VuZGlmCi0KIC8qCiAgKiBpb3JlbWFwX2JvdCBzdGFydHMgYXQgdGhhdCBhZGRyZXNzLiBFYXJseSBpb3JlbWFwcyBtb3ZlIGRvd24gZnJvbSB0aGVyZSwKICAqIHVudGlsIG1lbV9pbml0KCkgYXQgd2hpY2ggcG9pbnQgdGhpcyBiZWNvbWVzIHRoZSB0b3Agb2YgdGhlIHZtYWxsb2MKICAqIGFuZCBpb3JlbWFwIHNwYWNlCiAgKi8KLSNpZmRlZiBDT05GSUdfTk9UX0NPSEVSRU5UX0NBQ0hFCi0jZGVmaW5lIElPUkVNQVBfVE9QCSgoS1ZJUlRfVE9QIC0gQ09ORklHX0NPTlNJU1RFTlRfU0laRSkgJiBQQUdFX01BU0spCisjaWZkZWYgQ09ORklHX0hJR0hNRU0KKyNkZWZpbmUgSU9SRU1BUF9UT1AJUEtNQVBfQkFTRQogI2Vsc2UKLSNkZWZpbmUgSU9SRU1BUF9UT1AJS1ZJUlRfVE9QCisjZGVmaW5lIElPUkVNQVBfVE9QCUZJWEFERFJfU1RBUlQKICNlbmRpZgogCisvKiBQUEMzMiBzaGFyZXMgdm1hbGxvYyBhcmVhIHdpdGggaW9yZW1hcCAqLworI2RlZmluZSBJT1JFTUFQX1NUQVJUCVZNQUxMT0NfU1RBUlQKKyNkZWZpbmUgSU9SRU1BUF9FTkQJVk1BTExPQ19FTkQKKwogLyoKICAqIEp1c3QgYW55IGFyYml0cmFyeSBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSB2bWFsbG9jIFZNIGFyZWE6IHRoZQogICogY3VycmVudCAxNk1CIHZhbHVlIGp1c3QgbWVhbnMgdGhhdCB0aGVyZSB3aWxsIGJlIGEgNjRNQiAiaG9sZSIgYWZ0ZXIgdGhlCkBAIC0yMDEsOCArMTk5LDYgQEAgaW50IG1hcF9rZXJuZWxfcGFnZSh1bnNpZ25lZCBsb25nIHZhLCBwaHlzX2FkZHJfdCBwYSwgcGdwcm90X3QgcHJvdCk7CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC90aHJlYWRzLmg+CiAKLWV4dGVybiB1bnNpZ25lZCBsb25nIGlvcmVtYXBfYm90OwotCiAvKiBCaXRzIHRvIG1hc2sgb3V0IGZyb20gYSBQR0QgdG8gZ2V0IHRvIHRoZSBQVUQgcGFnZSAqLwogI2RlZmluZSBQR0RfTUFTS0VEX0JJVFMJCTAKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2Jvb2szcy82NC9tbXUuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvNjQvbW11LmgKaW5kZXggMjNiODNkMy4uYmIzZGViNyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2Jvb2szcy82NC9tbXUuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzLzY0L21tdS5oCkBAIC0yMDYsNyArMjA2LDYgQEAgZXh0ZXJuIGludCBtbXVfaW9fcHNpemU7CiB2b2lkIG1tdV9lYXJseV9pbml0X2RldnRyZWUodm9pZCk7CiB2b2lkIGhhc2hfX2Vhcmx5X2luaXRfZGV2dHJlZSh2b2lkKTsKIHZvaWQgcmFkaXhfX2Vhcmx5X2luaXRfZGV2dHJlZSh2b2lkKTsKLWV4dGVybiB2b2lkIHJhZGl4X2luaXRfbmF0aXZlKHZvaWQpOwogZXh0ZXJuIHZvaWQgaGFzaF9fZWFybHlfaW5pdF9tbXUodm9pZCk7CiBleHRlcm4gdm9pZCByYWRpeF9fZWFybHlfaW5pdF9tbXUodm9pZCk7CiBzdGF0aWMgaW5saW5lIHZvaWQgZWFybHlfaW5pdF9tbXUodm9pZCkKQEAgLTIzOCw5ICsyMzcsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfaW5pdGlhbF9tZW1vcnlfbGltaXQocGh5c19hZGRyX3QgZmlyc3RfbWVtYmxvY2tfYmFzZSwKIAkJCQkJICAgZmlyc3RfbWVtYmxvY2tfc2l6ZSk7CiB9CiAKLWV4dGVybiBpbnQgKCpyZWdpc3Rlcl9wcm9jZXNzX3RhYmxlKSh1bnNpZ25lZCBsb25nIGJhc2UsIHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplLAotCQkJCSAgICAgdW5zaWduZWQgbG9uZyB0Ymxfc2l6ZSk7Ci0KICNpZmRlZiBDT05GSUdfUFBDX1BTRVJJRVMKIGV4dGVybiB2b2lkIHJhZGl4X2luaXRfcHNlcmllcyh2b2lkKTsKICNlbHNlCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzLzY0L3BndGFibGUuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvNjQvcGd0YWJsZS5oCmluZGV4IDgzMDhmMzIuLmIwMTYyNGUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvNjQvcGd0YWJsZS5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvNjQvcGd0YWJsZS5oCkBAIC0yODksNyArMjg5LDYgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19rZXJuZWxfaW9fZW5kOwogI2RlZmluZSBLRVJOX0lPX0VORCBfX2tlcm5lbF9pb19lbmQKIAogZXh0ZXJuIHN0cnVjdCBwYWdlICp2bWVtbWFwOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW9yZW1hcF9ib3Q7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBwY2lfaW9fYmFzZTsKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KIApAQCAtMzE3LDYgKzMxNiw3IEBAIGV4dGVybiB1bnNpZ25lZCBsb25nIHBjaV9pb19iYXNlOwogI2RlZmluZSAgUEhCX0lPX0JBU0UJKElTQV9JT19FTkQpCiAjZGVmaW5lICBQSEJfSU9fRU5ECShLRVJOX0lPX1NUQVJUICsgRlVMTF9JT19TSVpFKQogI2RlZmluZSBJT1JFTUFQX0JBU0UJKFBIQl9JT19FTkQpCisjZGVmaW5lIElPUkVNQVBfU1RBUlQJKGlvcmVtYXBfYm90KQogI2RlZmluZSBJT1JFTUFQX0VORAkoS0VSTl9JT19FTkQpCiAKIC8qIEFkdmVydGlzZSBzcGVjaWFsIG1hcHBpbmcgdHlwZSBmb3IgQUdQICovCkBAIC02MDgsOCArNjA4LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwdGVfYWNjZXNzX3Blcm1pdHRlZChwdGVfdCBwdGUsIGJvb2wgd3JpdGUpCiAgKi8KIHN0YXRpYyBpbmxpbmUgcHRlX3QgcGZuX3B0ZSh1bnNpZ25lZCBsb25nIHBmbiwgcGdwcm90X3QgcGdwcm90KQogewotCXJldHVybiBfX3B0ZSgoKChwdGVfYmFzaWNfdCkocGZuKSA8PCBQQUdFX1NISUZUKSAmIFBURV9SUE5fTUFTSykgfAotCQkgICAgIHBncHJvdF92YWwocGdwcm90KSk7CisJVk1fQlVHX09OKHBmbiA+PiAoNjQgLSBQQUdFX1NISUZUKSk7CisJVk1fQlVHX09OKChwZm4gPDwgUEFHRV9TSElGVCkgJiB+UFRFX1JQTl9NQVNLKTsKKworCXJldHVybiBfX3B0ZSgoKHB0ZV9iYXNpY190KXBmbiA8PCBQQUdFX1NISUZUKSB8IHBncHJvdF92YWwocGdwcm90KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBwdGVfcGZuKHB0ZV90IHB0ZSkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvNjQvcmFkaXguaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvNjQvcmFkaXguaAppbmRleCBlMDRhODM5Li41NzRlY2EzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzLzY0L3JhZGl4LmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2Jvb2szcy82NC9yYWRpeC5oCkBAIC0yNjYsOSArMjY2LDYgQEAgZXh0ZXJuIHZvaWQgcmFkaXhfX3ZtZW1tYXBfcmVtb3ZlX21hcHBpbmcodW5zaWduZWQgbG9uZyBzdGFydCwKIGV4dGVybiBpbnQgcmFkaXhfX21hcF9rZXJuZWxfcGFnZSh1bnNpZ25lZCBsb25nIGVhLCB1bnNpZ25lZCBsb25nIHBhLAogCQkJCSBwZ3Byb3RfdCBmbGFncywgdW5zaWduZWQgaW50IHBzeik7CiAKLWV4dGVybiBpbnQgcmFkaXhfX2lvcmVtYXBfcmFuZ2UodW5zaWduZWQgbG9uZyBlYSwgcGh5c19hZGRyX3QgcGEsCi0JCQkJdW5zaWduZWQgbG9uZyBzaXplLCBwZ3Byb3RfdCBwcm90LCBpbnQgbmlkKTsKLQogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHJhZGl4X19nZXRfdHJlZV9zaXplKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBydHNfZmllbGQ7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzLzY0L3RsYmZsdXNoLXJhZGl4LmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzLzY0L3RsYmZsdXNoLXJhZGl4LmgKaW5kZXggMDUxNDdjZWMuLjRjZTc5NWQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvNjQvdGxiZmx1c2gtcmFkaXguaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzLzY0L3RsYmZsdXNoLXJhZGl4LmgKQEAgLTE3LDggKzE3LDggQEAgZXh0ZXJuIHZvaWQgcmFkaXhfX2ZsdXNoX3RsYl9scGlkX3BhZ2UodW5zaWduZWQgaW50IGxwaWQsCiAJCQkJCXVuc2lnbmVkIGxvbmcgYWRkciwKIAkJCQkJdW5zaWduZWQgbG9uZyBwYWdlX3NpemUpOwogZXh0ZXJuIHZvaWQgcmFkaXhfX2ZsdXNoX3B3Y19scGlkKHVuc2lnbmVkIGludCBscGlkKTsKLWV4dGVybiB2b2lkIHJhZGl4X19mbHVzaF90bGJfbHBpZCh1bnNpZ25lZCBpbnQgbHBpZCk7Ci1leHRlcm4gdm9pZCByYWRpeF9fbG9jYWxfZmx1c2hfdGxiX2xwaWRfZ3Vlc3QodW5zaWduZWQgaW50IGxwaWQpOworZXh0ZXJuIHZvaWQgcmFkaXhfX2ZsdXNoX2FsbF9scGlkKHVuc2lnbmVkIGludCBscGlkKTsKK2V4dGVybiB2b2lkIHJhZGl4X19mbHVzaF9hbGxfbHBpZF9ndWVzdCh1bnNpZ25lZCBpbnQgbHBpZCk7CiAjZWxzZQogc3RhdGljIGlubGluZSB2b2lkIHJhZGl4X190bGJpZWxfYWxsKHVuc2lnbmVkIGludCBhY3Rpb24pIHsgV0FSTl9PTigxKTsgfTsKIHN0YXRpYyBpbmxpbmUgdm9pZCByYWRpeF9fZmx1c2hfdGxiX2xwaWRfcGFnZSh1bnNpZ25lZCBpbnQgbHBpZCwKQEAgLTMxLDExICszMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCByYWRpeF9fZmx1c2hfcHdjX2xwaWQodW5zaWduZWQgaW50IGxwaWQpCiB7CiAJV0FSTl9PTigxKTsKIH0KLXN0YXRpYyBpbmxpbmUgdm9pZCByYWRpeF9fZmx1c2hfdGxiX2xwaWQodW5zaWduZWQgaW50IGxwaWQpCi17Ci0JV0FSTl9PTigxKTsKLX0KLXN0YXRpYyBpbmxpbmUgdm9pZCByYWRpeF9fbG9jYWxfZmx1c2hfdGxiX2xwaWRfZ3Vlc3QodW5zaWduZWQgaW50IGxwaWQpCitzdGF0aWMgaW5saW5lIHZvaWQgcmFkaXhfX2ZsdXNoX2FsbF9scGlkKHVuc2lnbmVkIGludCBscGlkKQogewogCVdBUk5fT04oMSk7CiB9CkBAIC03Myw2ICs2OSw0IEBAIGV4dGVybiB2b2lkIHJhZGl4X19mbHVzaF90bGJfcHdjKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsIHVuc2lnbmVkIGxvbmcgYWRkcik7CiBleHRlcm4gdm9pZCByYWRpeF9fZmx1c2hfdGxiX2NvbGxhcHNlZF9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcik7CiBleHRlcm4gdm9pZCByYWRpeF9fZmx1c2hfdGxiX2FsbCh2b2lkKTsKIAotZXh0ZXJuIHZvaWQgcmFkaXhfX2xvY2FsX2ZsdXNoX3RsYl9scGlkKHVuc2lnbmVkIGludCBscGlkKTsKLQogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzLzY0L3RsYmZsdXNoLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzLzY0L3RsYmZsdXNoLmgKaW5kZXggZWJmNTcyZS4uN2FhODE5NSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2Jvb2szcy82NC90bGJmbHVzaC5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvNjQvdGxiZmx1c2guaApAQCAtMTYyLDQgKzE2MiwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmx1c2hfdGxiX3BndGFibGUoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwgdW5zaWduZWQgbG9uZyBhZGRyZQogCiAJcmFkaXhfX2ZsdXNoX3RsYl9wd2ModGxiLCBhZGRyZXNzKTsKIH0KKworZXh0ZXJuIGJvb2wgdGxiaWVfY2FwYWJsZTsKK2V4dGVybiBib29sIHRsYmllX2VuYWJsZWQ7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjcHV0bGJfdXNlX3RsYmllKHZvaWQpCit7CisJcmV0dXJuIHRsYmllX2VuYWJsZWQ7Cit9CisKICNlbmRpZiAvKiAgX0FTTV9QT1dFUlBDX0JPT0szU182NF9UTEJGTFVTSF9IICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYm9vazNzL3BndGFibGUuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ib29rM3MvcGd0YWJsZS5oCmluZGV4IDY0MzZiNjUuLjBlMTI2MzQ1NSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2Jvb2szcy9wZ3RhYmxlLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2Jvb2szcy9wZ3RhYmxlLmgKQEAgLTI2LDUgKzI2LDE2IEBAIGV4dGVybiBwZ3Byb3RfdCBwaHlzX21lbV9hY2Nlc3NfcHJvdChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBwZm4sCiAJCQkJICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90IHZtYV9wcm90KTsKICNkZWZpbmUgX19IQVZFX1BIWVNfTUVNX0FDQ0VTU19QUk9UCiAKKy8qCisgKiBUaGlzIGdldHMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgaGFuZGxpbmcgYSBwYWdlIGZhdWx0LCB3aGVuCisgKiB0aGUga2VybmVsIGhhcyBwdXQgYSBuZXcgUFRFIGludG8gdGhlIHBhZ2UgdGFibGUgZm9yIHRoZSBwcm9jZXNzLgorICogV2UgdXNlIGl0IHRvIGVuc3VyZSBjb2hlcmVuY3kgYmV0d2VlbiB0aGUgaS1jYWNoZSBhbmQgZC1jYWNoZQorICogZm9yIHRoZSBwYWdlIHdoaWNoIGhhcyBqdXN0IGJlZW4gbWFwcGVkIGluLgorICogT24gbWFjaGluZXMgd2hpY2ggdXNlIGFuIE1NVSBoYXNoIHRhYmxlLCB3ZSB1c2UgdGhpcyB0byBwdXQgYQorICogY29ycmVzcG9uZGluZyBIUFRFIGludG8gdGhlIGhhc2ggdGFibGUgYWhlYWQgb2YgdGltZSwgaW5zdGVhZCBvZgorICogd2FpdGluZyBmb3IgdGhlIGluZXZpdGFibGUgZXh0cmEgaGFzaC10YWJsZSBtaXNzIGV4Y2VwdGlvbi4KKyAqLwordm9pZCB1cGRhdGVfbW11X2NhY2hlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90ICpwdGVwKTsKKwogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYnVnLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYnVnLmgKaW5kZXggZmVkN2U2MjQuLmY0N2U2ZmYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9idWcuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYnVnLmgKQEAgLTUsMTQgKzUsNiBAQAogCiAjaW5jbHVkZSA8YXNtL2FzbS1jb21wYXQuaD4KIAotLyoKLSAqIERlZmluZSBhbiBpbGxlZ2FsIGluc3RyIHRvIHRyYXAgb24gdGhlIGJ1Zy4KLSAqIFdlIGRvbid0IHVzZSAwIGJlY2F1c2UgdGhhdCBtYXJrcyB0aGUgZW5kIG9mIGEgZnVuY3Rpb24KLSAqIGluIHRoZSBFTEYgQUJJLiAgVGhhdCdzICJCb28gQm9vIiBpbiBjYXNlIHlvdSB3b25kZXIuLi4KLSAqLwotI2RlZmluZSBCVUdfT1BDT0RFIC5sb25nIDB4MDBiMDBiMDAgIC8qIEZvciBhc20gKi8KLSNkZWZpbmUgQlVHX0lMTEVHQUxfSU5TVFIgIjB4MDBiMDBiMDAiIC8qIEZvciBCVUcgbWFjcm8gKi8KLQogI2lmZGVmIENPTkZJR19CVUcKIAogI2lmZGVmIF9fQVNTRU1CTFlfXwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2NwdXRhYmxlLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vY3B1dGFibGUuaAppbmRleCBkMDVmMGMyLi5jZjAwZmYwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vY3B1dGFibGUuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vY3B1dGFibGUuaApAQCAtMTQ1LDEyICsxNDUsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGNwdV9mZWF0dXJlX2tleXNfaW5pdCh2b2lkKSB7IH0KIAogLyogRGVmaW5pdGlvbnMgZm9yIGZlYXR1cmVzIHRoYXQgb25seSBleGlzdCBvbiAzMi1iaXQgY2hpcHMgKi8KICNpZmRlZiBDT05GSUdfUFBDMzIKLSNkZWZpbmUgQ1BVX0ZUUl82MDEJCQlBU01fQ09OU1QoMHgwMDAwMTAwMCkKICNkZWZpbmUgQ1BVX0ZUUl9MMkNSCQkJQVNNX0NPTlNUKDB4MDAwMDIwMDApCiAjZGVmaW5lIENQVV9GVFJfU1BFQzc0NTAJCUFTTV9DT05TVCgweDAwMDA0MDAwKQogI2RlZmluZSBDUFVfRlRSX1RBVQkJCUFTTV9DT05TVCgweDAwMDA4MDAwKQogI2RlZmluZSBDUFVfRlRSX0NBTl9ET1pFCQlBU01fQ09OU1QoMHgwMDAxMDAwMCkKLSNkZWZpbmUgQ1BVX0ZUUl9VU0VfUlRDCQkJQVNNX0NPTlNUKDB4MDAwMjAwMDApCiAjZGVmaW5lIENQVV9GVFJfTDNDUgkJCUFTTV9DT05TVCgweDAwMDQwMDAwKQogI2RlZmluZSBDUFVfRlRSX0wzX0RJU0FCTEVfTkFQCQlBU01fQ09OU1QoMHgwMDA4MDAwMCkKICNkZWZpbmUgQ1BVX0ZUUl9OQVBfRElTQUJMRV9MMl9QUglBU01fQ09OU1QoMHgwMDEwMDAwMCkKQEAgLTE2MCwxNCArMTU4LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfZmVhdHVyZV9rZXlzX2luaXQodm9pZCkgeyB9CiAjZGVmaW5lIENQVV9GVFJfTkVFRF9DT0hFUkVOVAkJQVNNX0NPTlNUKDB4MDEwMDAwMDApCiAjZGVmaW5lIENQVV9GVFJfTk9fQlRJQwkJCUFTTV9DT05TVCgweDAyMDAwMDAwKQogI2RlZmluZSBDUFVfRlRSX1BQQ19MRQkJCUFTTV9DT05TVCgweDA0MDAwMDAwKQotI2RlZmluZSBDUFVfRlRSX1VOSUZJRURfSURfQ0FDSEUJQVNNX0NPTlNUKDB4MDgwMDAwMDApCiAjZGVmaW5lIENQVV9GVFJfU1BFCQkJQVNNX0NPTlNUKDB4MTAwMDAwMDApCiAjZGVmaW5lIENQVV9GVFJfTkVFRF9QQUlSRURfU1RXQ1gJQVNNX0NPTlNUKDB4MjAwMDAwMDApCiAjZGVmaW5lIENQVV9GVFJfSU5ERVhFRF9EQ1IJCUFTTV9DT05TVCgweDQwMDAwMDAwKQogCiAjZWxzZQkvKiBDT05GSUdfUFBDMzIgKi8KIC8qIERlZmluZSB0aGVzZSB0byAwIGZvciB0aGUgc2FrZSBvZiB0ZXN0cyBpbiBjb21tb24gY29kZSAqLwotI2RlZmluZSBDUFVfRlRSXzYwMQkJCSgwKQogI2RlZmluZSBDUFVfRlRSX1BQQ19MRQkJCSgwKQogI2VuZGlmCiAKQEAgLTIxMyw4ICsyMDksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY3B1X2ZlYXR1cmVfa2V5c19pbml0KHZvaWQpIHsgfQogI2RlZmluZSBDUFVfRlRSX1BPV0VSOV9ERDJfMQkJTE9OR19BU01fQ09OU1QoMHgwMDAwMDgwMDAwMDAwMDAwKQogI2RlZmluZSBDUFVfRlRSX1A5X1RNX0hWX0FTU0lTVAkJTE9OR19BU01fQ09OU1QoMHgwMDAwMTAwMDAwMDAwMDAwKQogI2RlZmluZSBDUFVfRlRSX1A5X1RNX1hFUl9TT19CVUcJTE9OR19BU01fQ09OU1QoMHgwMDAwMjAwMDAwMDAwMDAwKQotI2RlZmluZSBDUFVfRlRSX1A5X1RMQklFX0JVRwkJTE9OR19BU01fQ09OU1QoMHgwMDAwNDAwMDAwMDAwMDAwKQorI2RlZmluZSBDUFVfRlRSX1A5X1RMQklFX1NUUV9CVUcJTE9OR19BU01fQ09OU1QoMHgwMDAwNDAwMDAwMDAwMDAwKQogI2RlZmluZSBDUFVfRlRSX1A5X1RJRFIJCQlMT05HX0FTTV9DT05TVCgweDAwMDA4MDAwMDAwMDAwMDApCisjZGVmaW5lIENQVV9GVFJfUDlfVExCSUVfRVJBVF9CVUcJTE9OR19BU01fQ09OU1QoMHgwMDAxMDAwMDAwMDAwMDAwKQogCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogCkBAIC0yOTQsOCArMjkxLDggQEAgc3RhdGljIGlubGluZSB2b2lkIGNwdV9mZWF0dXJlX2tleXNfaW5pdCh2b2lkKSB7IH0KICNkZWZpbmUgQ1BVX0ZUUl9NQVlCRV9DQU5fTkFQCTAKICNlbmRpZgogCi0jZGVmaW5lIENQVV9GVFJTX1BQQzYwMQkoQ1BVX0ZUUl9DT01NT04gfCBDUFVfRlRSXzYwMSB8IFwKLQlDUFVfRlRSX0NPSEVSRU5UX0lDQUNIRSB8IENQVV9GVFJfVU5JRklFRF9JRF9DQUNIRSB8IENQVV9GVFJfVVNFX1JUQykKKyNkZWZpbmUgQ1BVX0ZUUlNfUFBDNjAxCShDUFVfRlRSX0NPTU1PTiB8IFwKKwlDUFVfRlRSX0NPSEVSRU5UX0lDQUNIRSkKICNkZWZpbmUgQ1BVX0ZUUlNfNjAzCShDUFVfRlRSX0NPTU1PTiB8IENQVV9GVFJfTUFZQkVfQ0FOX0RPWkUgfCBcCiAJICAgIENQVV9GVFJfTUFZQkVfQ0FOX05BUCB8IENQVV9GVFJfUFBDX0xFIHwgQ1BVX0ZUUl9OT0VYRUNVVEUpCiAjZGVmaW5lIENQVV9GVFJTXzYwNAkoQ1BVX0ZUUl9DT01NT04gfCBDUFVfRlRSX1BQQ19MRSkKQEAgLTM4Niw3ICszODMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY3B1X2ZlYXR1cmVfa2V5c19pbml0KHZvaWQpIHsgfQogI2RlZmluZSBDUFVfRlRSU180N1gJKENQVV9GVFJTXzQ0MHg2KQogI2RlZmluZSBDUFVfRlRSU19FMjAwCShDUFVfRlRSX1NQRV9DT01QIHwgXAogCSAgICBDUFVfRlRSX05PRFNJU1JBTElHTiB8IENQVV9GVFJfQ09IRVJFTlRfSUNBQ0hFIHwgXAotCSAgICBDUFVfRlRSX1VOSUZJRURfSURfQ0FDSEUgfCBDUFVfRlRSX05PRVhFQ1VURSB8IFwKKwkgICAgQ1BVX0ZUUl9OT0VYRUNVVEUgfCBcCiAJICAgIENQVV9GVFJfREVCVUdfTFZMX0VYQykKICNkZWZpbmUgQ1BVX0ZUUlNfRTUwMAkoQ1BVX0ZUUl9NQVlCRV9DQU5fRE9aRSB8IFwKIAkgICAgQ1BVX0ZUUl9TUEVfQ09NUCB8IENQVV9GVFJfTUFZQkVfQ0FOX05BUCB8IENQVV9GVFJfTk9EU0lTUkFMSUdOIHwgXApAQCAtNDYxLDcgKzQ1OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfZmVhdHVyZV9rZXlzX2luaXQodm9pZCkgeyB9CiAJICAgIENQVV9GVFJfQ0ZBUiB8IENQVV9GVFJfSFZNT0RFIHwgQ1BVX0ZUUl9WTVhfQ09QWSB8IFwKIAkgICAgQ1BVX0ZUUl9EQkVMTCB8IENQVV9GVFJfSEFTX1BQUiB8IENQVV9GVFJfQVJDSF8yMDdTIHwgXAogCSAgICBDUFVfRlRSX1RNX0NPTVAgfCBDUFVfRlRSX0FSQ0hfMzAwIHwgQ1BVX0ZUUl9QS0VZIHwgXAotCSAgICBDUFVfRlRSX1A5X1RMQklFX0JVRyB8IENQVV9GVFJfUDlfVElEUikKKwkgICAgQ1BVX0ZUUl9QOV9UTEJJRV9TVFFfQlVHIHwgQ1BVX0ZUUl9QOV9UTEJJRV9FUkFUX0JVRyB8IENQVV9GVFJfUDlfVElEUikKICNkZWZpbmUgQ1BVX0ZUUlNfUE9XRVI5X0REMl8wIENQVV9GVFJTX1BPV0VSOQogI2RlZmluZSBDUFVfRlRSU19QT1dFUjlfREQyXzEgKENQVV9GVFJTX1BPV0VSOSB8IENQVV9GVFJfUE9XRVI5X0REMl8xKQogI2RlZmluZSBDUFVfRlRSU19QT1dFUjlfREQyXzIgKENQVV9GVFJTX1BPV0VSOSB8IENQVV9GVFJfUE9XRVI5X0REMl8xIHwgXApAQCAtNDk4LDcgKzQ5NSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfZmVhdHVyZV9rZXlzX2luaXQodm9pZCkgeyB9CiAjZWxzZQogZW51bSB7CiAJQ1BVX0ZUUlNfUE9TU0lCTEUgPQotI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzMyCisjaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjAxCisJICAgIENQVV9GVFJTX1BQQzYwMSB8CisjZWxpZiBkZWZpbmVkKENPTkZJR19QUENfQk9PSzNTXzMyKQogCSAgICBDUFVfRlRSU19QUEM2MDEgfCBDUFVfRlRSU182MDMgfCBDUFVfRlRSU182MDQgfCBDUFVfRlRSU183NDBfTk9UQVUgfAogCSAgICBDUFVfRlRSU183NDAgfCBDUFVfRlRSU183NTAgfCBDUFVfRlRSU183NTBGWDEgfAogCSAgICBDUFVfRlRSU183NTBGWDIgfCBDUFVfRlRSU183NTBGWCB8IENQVV9GVFJTXzc1MEdYIHwKQEAgLTU3NCw4ICs1NzMsMTAgQEAgZW51bSB7CiAjZWxzZQogZW51bSB7CiAJQ1BVX0ZUUlNfQUxXQVlTID0KLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU18zMgotCSAgICBDUFVfRlRSU19QUEM2MDEgJiBDUFVfRlRSU182MDMgJiBDUFVfRlRSU182MDQgJiBDUFVfRlRSU183NDBfTk9UQVUgJgorI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzYwMQorCSAgICBDUFVfRlRSU19QUEM2MDEgJgorI2VsaWYgZGVmaW5lZChDT05GSUdfUFBDX0JPT0szU18zMikKKwkgICAgQ1BVX0ZUUlNfNjAzICYgQ1BVX0ZUUlNfNjA0ICYgQ1BVX0ZUUlNfNzQwX05PVEFVICYKIAkgICAgQ1BVX0ZUUlNfNzQwICYgQ1BVX0ZUUlNfNzUwICYgQ1BVX0ZUUlNfNzUwRlgxICYKIAkgICAgQ1BVX0ZUUlNfNzUwRlgyICYgQ1BVX0ZUUlNfNzUwRlggJiBDUFVfRlRSU183NTBHWCAmCiAJICAgIENQVV9GVFJTXzc0MDBfTk9UQVUgJiBDUFVfRlRSU183NDAwICYgQ1BVX0ZUUlNfNzQ1MF8yMCAmCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vY3VycmVudC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2N1cnJlbnQuaAppbmRleCAyOTc4MjdiLi5iYmZiOTQ4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vY3VycmVudC5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9jdXJyZW50LmgKQEAgLTE2LDcgKzE2LDggQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmdldF9jdXJyZW50KHZvaWQpCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwogCi0JX19hc21fXyBfX3ZvbGF0aWxlX18oImxkICUwLCUxKDEzKSIKKwkvKiBnZXRfY3VycmVudCBjYW4gYmUgY2FjaGVkIGJ5IHRoZSBjb21waWxlciwgc28gbm8gdm9sYXRpbGUgKi8KKwlhc20gKCJsZCAlMCwlMSgxMykiCiAJOiAiPXIiICh0YXNrKQogCTogImkiIChvZmZzZXRvZihzdHJ1Y3QgcGFjYV9zdHJ1Y3QsIF9fY3VycmVudCkpKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VlaC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VlaC5oCmluZGV4IDhhYTdjNzYuLjZmOWIyYTEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lZWguaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZWVoLmgKQEAgLTg4LDYgKzg4LDE5IEBAIHN0cnVjdCBlZWhfcGUgewogCXN0cnVjdCBsaXN0X2hlYWQgY2hpbGRfbGlzdDsJLyogTGlzdCBvZiBQRXMgYmVsb3cgdGhpcyBQRQkqLwogCXN0cnVjdCBsaXN0X2hlYWQgY2hpbGQ7CQkvKiBNZW1iLiBjaGlsZF9saXN0L2VlaF9waGJfcGUJKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGVkZXZzOwkJLyogTGlzdCBvZiBlZWhfZGV2IGluIHRoaXMgUEUJKi8KKworI2lmZGVmIENPTkZJR19TVEFDS1RSQUNFCisJLyoKKwkgKiBTYXZlZCBzdGFjayB0cmFjZS4gV2hlbiB3ZSBmaW5kIGEgUEUgZnJlZXplIGluIGVlaF9kZXZfY2hlY2tfZmFpbHVyZQorCSAqIHRoZSBzdGFjayB0cmFjZSBpcyBzYXZlZCBoZXJlIHNvIHdlIGNhbiBwcmludCBpdCBpbiB0aGUgcmVjb3ZlcnkKKwkgKiB0aHJlYWQgaWYgaXQgdHVybnMgb3V0IHRvIGR1ZSB0byBhIHJlYWwgcHJvYmxlbSByYXRoZXIgdGhhbgorCSAqIGEgaG90LXJlbW92ZS4KKwkgKgorCSAqIEEgbWF4IG9mIDY0IGVudHJpZXMgbWlnaHQgYmUgb3ZlcmtpbGwsIGJ1dCBpdCBhbHNvIG1pZ2h0IG5vdCBiZS4KKwkgKi8KKwl1bnNpZ25lZCBsb25nIHN0YWNrX3RyYWNlWzY0XTsKKwlpbnQgdHJhY2VfZW50cmllczsKKyNlbmRpZiAvKiBDT05GSUdfU1RBQ0tUUkFDRSAqLwogfTsKIAogI2RlZmluZSBlZWhfcGVfZm9yX2VhY2hfZGV2KHBlLCBlZGV2LCB0bXApIFwKQEAgLTEyMSw2ICsxMzQsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZWVoX3BlX3Bhc3NlZChzdHJ1Y3QgZWVoX3BlICpwZSkKIHN0cnVjdCBlZWhfZGV2IHsKIAlpbnQgbW9kZTsJCQkvKiBFRUggbW9kZQkJCSovCiAJaW50IGNsYXNzX2NvZGU7CQkJLyogQ2xhc3MgY29kZSBvZiB0aGUgZGV2aWNlCSovCisJaW50IGJkZm47CQkJLyogYmRmbiBvZiBkZXZpY2UgKGZvciBjZmcgb3BzKSAqLworCXN0cnVjdCBwY2lfY29udHJvbGxlciAqY29udHJvbGxlcjsKIAlpbnQgcGVfY29uZmlnX2FkZHI7CQkvKiBQRSBjb25maWcgYWRkcmVzcwkJKi8KIAl1MzIgY29uZmlnX3NwYWNlWzE2XTsJCS8qIFNhdmVkIFBDSSBjb25maWcgc3BhY2UJKi8KIAlpbnQgcGNpeF9jYXA7CQkJLyogU2F2ZWQgUENJeCBjYXBhYmlsaXR5CSovCkBAIC0xMzYsNiArMTUxLDE3IEBAIHN0cnVjdCBlZWhfZGV2IHsKIAlzdHJ1Y3QgcGNpX2RldiAqcGh5c2ZuOwkJLyogQXNzb2NpYXRlZCBTUklPViBQRgkJKi8KIH07CiAKKy8qICJmbXQiIG11c3QgYmUgYSBzaW1wbGUgbGl0ZXJhbCBzdHJpbmcgKi8KKyNkZWZpbmUgRUVIX0VERVZfUFJJTlQobGV2ZWwsIGVkZXYsIGZtdCwgLi4uKSBcCisJcHJfIyNsZXZlbCgiUENJICUwNHg6JTAyeDolMDJ4LiV4IyUwNHg6IEVFSDogIiBmbXQsIFwKKwkoZWRldiktPmNvbnRyb2xsZXItPmdsb2JhbF9udW1iZXIsIFBDSV9CVVNOTygoZWRldiktPmJkZm4pLCBcCisJUENJX1NMT1QoKGVkZXYpLT5iZGZuKSwgUENJX0ZVTkMoKGVkZXYpLT5iZGZuKSwgXAorCSgoZWRldiktPnBlID8gKGVkZXYpLT5wZV9jb25maWdfYWRkciA6IDB4ZmZmZiksICMjX19WQV9BUkdTX18pCisjZGVmaW5lIGVlaF9lZGV2X2RiZyhlZGV2LCBmbXQsIC4uLikgRUVIX0VERVZfUFJJTlQoZGVidWcsIChlZGV2KSwgZm10LCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBlZWhfZWRldl9pbmZvKGVkZXYsIGZtdCwgLi4uKSBFRUhfRURFVl9QUklOVChpbmZvLCAoZWRldiksIGZtdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgZWVoX2VkZXZfd2FybihlZGV2LCBmbXQsIC4uLikgRUVIX0VERVZfUFJJTlQod2FybiwgKGVkZXYpLCBmbXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIGVlaF9lZGV2X2VycihlZGV2LCBmbXQsIC4uLikgRUVIX0VERVZfUFJJTlQoZXJyLCAoZWRldiksIGZtdCwgIyNfX1ZBX0FSR1NfXykKKwogc3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX2RuICplZWhfZGV2X3RvX3BkbihzdHJ1Y3QgZWVoX2RldiAqZWRldikKIHsKIAlyZXR1cm4gZWRldiA/IGVkZXYtPnBkbiA6IE5VTEw7CkBAIC0yNDcsNyArMjczLDcgQEAgc3RhdGljIGlubGluZSBib29sIGVlaF9zdGF0ZV9hY3RpdmUoaW50IHN0YXRlKQogCT09IChFRUhfU1RBVEVfTU1JT19BQ1RJVkUgfCBFRUhfU1RBVEVfRE1BX0FDVElWRSk7CiB9CiAKLXR5cGVkZWYgdm9pZCAqKCplZWhfZWRldl90cmF2ZXJzZV9mdW5jKShzdHJ1Y3QgZWVoX2RldiAqZWRldiwgdm9pZCAqZmxhZyk7Cit0eXBlZGVmIHZvaWQgKCplZWhfZWRldl90cmF2ZXJzZV9mdW5jKShzdHJ1Y3QgZWVoX2RldiAqZWRldiwgdm9pZCAqZmxhZyk7CiB0eXBlZGVmIHZvaWQgKigqZWVoX3BlX3RyYXZlcnNlX2Z1bmMpKHN0cnVjdCBlZWhfcGUgKnBlLCB2b2lkICpmbGFnKTsKIHZvaWQgZWVoX3NldF9wZV9hdXhfc2l6ZShpbnQgc2l6ZSk7CiBpbnQgZWVoX3BoYl9wZV9jcmVhdGUoc3RydWN0IHBjaV9jb250cm9sbGVyICpwaGIpOwpAQCAtMjYxLDIwICsyODcsMjAgQEAgaW50IGVlaF9ybXZfZnJvbV9wYXJlbnRfcGUoc3RydWN0IGVlaF9kZXYgKmVkZXYpOwogdm9pZCBlZWhfcGVfdXBkYXRlX3RpbWVfc3RhbXAoc3RydWN0IGVlaF9wZSAqcGUpOwogdm9pZCAqZWVoX3BlX3RyYXZlcnNlKHN0cnVjdCBlZWhfcGUgKnJvb3QsCiAJCSAgICAgIGVlaF9wZV90cmF2ZXJzZV9mdW5jIGZuLCB2b2lkICpmbGFnKTsKLXZvaWQgKmVlaF9wZV9kZXZfdHJhdmVyc2Uoc3RydWN0IGVlaF9wZSAqcm9vdCwKLQkJCSAgZWVoX2VkZXZfdHJhdmVyc2VfZnVuYyBmbiwgdm9pZCAqZmxhZyk7Cit2b2lkIGVlaF9wZV9kZXZfdHJhdmVyc2Uoc3RydWN0IGVlaF9wZSAqcm9vdCwKKwkJCSBlZWhfZWRldl90cmF2ZXJzZV9mdW5jIGZuLCB2b2lkICpmbGFnKTsKIHZvaWQgZWVoX3BlX3Jlc3RvcmVfYmFycyhzdHJ1Y3QgZWVoX3BlICpwZSk7CiBjb25zdCBjaGFyICplZWhfcGVfbG9jX2dldChzdHJ1Y3QgZWVoX3BlICpwZSk7CiBzdHJ1Y3QgcGNpX2J1cyAqZWVoX3BlX2J1c19nZXQoc3RydWN0IGVlaF9wZSAqcGUpOwogCiBzdHJ1Y3QgZWVoX2RldiAqZWVoX2Rldl9pbml0KHN0cnVjdCBwY2lfZG4gKnBkbik7CiB2b2lkIGVlaF9kZXZfcGhiX2luaXRfZHluYW1pYyhzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKnBoYik7Ci12b2lkIGVlaF9wcm9iZV9kZXZpY2VzKHZvaWQpOwordm9pZCBlZWhfc2hvd19lbmFibGVkKHZvaWQpOwogaW50IF9faW5pdCBlZWhfb3BzX3JlZ2lzdGVyKHN0cnVjdCBlZWhfb3BzICpvcHMpOwogaW50IF9fZXhpdCBlZWhfb3BzX3VucmVnaXN0ZXIoY29uc3QgY2hhciAqbmFtZSk7CiBpbnQgZWVoX2NoZWNrX2ZhaWx1cmUoY29uc3Qgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICp0b2tlbik7CiBpbnQgZWVoX2Rldl9jaGVja19mYWlsdXJlKHN0cnVjdCBlZWhfZGV2ICplZGV2KTsKLXZvaWQgZWVoX2FkZHJfY2FjaGVfYnVpbGQodm9pZCk7Cit2b2lkIGVlaF9hZGRyX2NhY2hlX2luaXQodm9pZCk7CiB2b2lkIGVlaF9hZGRfZGV2aWNlX2Vhcmx5KHN0cnVjdCBwY2lfZG4gKik7CiB2b2lkIGVlaF9hZGRfZGV2aWNlX3RyZWVfZWFybHkoc3RydWN0IHBjaV9kbiAqKTsKIHZvaWQgZWVoX2FkZF9kZXZpY2VfbGF0ZShzdHJ1Y3QgcGNpX2RldiAqKTsKQEAgLTMxNiw3ICszNDIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZWVoX2VuYWJsZWQodm9pZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZWVoX3Byb2JlX2RldmljZXModm9pZCkgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgZWVoX3Nob3dfZW5hYmxlZCh2b2lkKSB7IH0KIAogc3RhdGljIGlubGluZSB2b2lkICplZWhfZGV2X2luaXQoc3RydWN0IHBjaV9kbiAqcGRuLCB2b2lkICpkYXRhKQogewpAQCAtMzMyLDcgKzM1OCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGVlaF9jaGVja19mYWlsdXJlKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqdG9rZW4pCiAKICNkZWZpbmUgZWVoX2Rldl9jaGVja19mYWlsdXJlKHgpICgwKQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZWVoX2FkZHJfY2FjaGVfYnVpbGQodm9pZCkgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgZWVoX2FkZHJfY2FjaGVfaW5pdCh2b2lkKSB7IH0KIAogc3RhdGljIGlubGluZSB2b2lkIGVlaF9hZGRfZGV2aWNlX2Vhcmx5KHN0cnVjdCBwY2lfZG4gKnBkbikgeyB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGZub3RlLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZWxmbm90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyMDFiNmU5Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VsZm5vdGUuaApAQCAtMCwwICsxLDI0IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIFBvd2VyUEMgRUxGIG5vdGVzLgorICoKKyAqIENvcHlyaWdodCAyMDE5LCBJQk0gQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fQVNNX1BPV0VSUENfRUxGTk9URV9IX18KKyNkZWZpbmUgX19BU01fUE9XRVJQQ19FTEZOT1RFX0hfXworCisvKgorICogVGhlc2Ugbm90ZSB0eXBlcyBzaG91bGQgbGl2ZSBpbiBhIFNIVF9OT1RFIHNlZ21lbnQgYW5kIGhhdmUKKyAqICJQb3dlclBDIiBpbiB0aGUgbmFtZSBmaWVsZC4KKyAqLworCisvKgorICogVGhlIGNhcGFiaWxpdGllcyBzdXBwb3J0ZWQvcmVxdWlyZWQgYnkgdGhpcyBrZXJuZWwgKGJpdG1hcCkuCisgKgorICogVGhpcyB0eXBlIHVzZXMgYSBiaXRtYXAgYXMgImRlc2MiIGZpZWxkLiBFYWNoIGJpdCBpcyBkZXNjcmliZWQKKyAqIGluIGFyY2gvcG93ZXJwYy9rZXJuZWwvbm90ZS5TCisgKi8KKyNkZWZpbmUgUFBDX0VMRk5PVEVfQ0FQQUJJTElUSUVTIDEKKworI2VuZGlmIC8qIF9fQVNNX1BPV0VSUENfRUxGTk9URV9IX18gKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9mYWR1bXAtaW50ZXJuYWwuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9mYWR1bXAtaW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODE0YTJiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2ZhZHVtcC1pbnRlcm5hbC5oCkBAIC0wLDAgKzEsMTY5IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlciAqLworLyoKKyAqIEZpcm13YXJlLUFzc2lzdGVkIER1bXAgaW50ZXJuYWwgY29kZS4KKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgTWFoZXNoIFNhbGdhb25rYXIsIElCTSBDb3Jwb3JhdGlvbi4KKyAqIENvcHlyaWdodCAyMDE5LCBIYXJpIEJhdGhpbmksIElCTSBDb3Jwb3JhdGlvbi4KKyAqLworCisjaWZuZGVmIF9BU01fUE9XRVJQQ19GQURVTVBfSU5URVJOQUxfSAorI2RlZmluZSBfQVNNX1BPV0VSUENfRkFEVU1QX0lOVEVSTkFMX0gKKworLyogTWF4aW11bSBudW1iZXIgb2YgbWVtb3J5IHJlZ2lvbnMga2VybmVsIHN1cHBvcnRzICovCisjZGVmaW5lIEZBRFVNUF9NQVhfTUVNX1JFR1MJCQkxMjgKKworI2lmbmRlZiBDT05GSUdfUFJFU0VSVkVfRkFfRFVNUAorCisvKiBUaGUgdXBwZXIgbGltaXQgcGVyY2VudGFnZSBmb3IgdXNlciBzcGVjaWZpZWQgYm9vdCBtZW1vcnkgc2l6ZSAoMjUlKSAqLworI2RlZmluZSBNQVhfQk9PVF9NRU1fUkFUSU8JCQk0CisKKyNkZWZpbmUgbWVtYmxvY2tfbnVtX3JlZ2lvbnMobWVtYmxvY2tfdHlwZSkJKG1lbWJsb2NrLm1lbWJsb2NrX3R5cGUuY250KQorCisvKiBBbGlnbm1lbnQgcGVyIENNQSByZXF1aXJlbWVudC4gKi8KKyNkZWZpbmUgRkFEVU1QX0NNQV9BTElHTk1FTlQJKFBBR0VfU0laRSA8PAkJCQlcCisJCQkJIG1heF90KHVuc2lnbmVkIGxvbmcsIE1BWF9PUkRFUiAtIDEsCVwKKwkJCQkgcGFnZWJsb2NrX29yZGVyKSkKKworLyogRkFEIGNvbW1hbmRzICovCisjZGVmaW5lIEZBRFVNUF9SRUdJU1RFUgkJCTEKKyNkZWZpbmUgRkFEVU1QX1VOUkVHSVNURVIJCTIKKyNkZWZpbmUgRkFEVU1QX0lOVkFMSURBVEUJCTMKKworLyoKKyAqIENvcHkgdGhlIGFzY2lpIHZhbHVlcyBmb3IgZmlyc3QgOCBjaGFyYWN0ZXJzIGZyb20gYSBzdHJpbmcgaW50byB1NjQKKyAqIHZhcmlhYmxlIGF0IHRoZWlyIHJlc3BlY3RpdmUgaW5kZXhlcy4KKyAqIGUuZy4KKyAqICBUaGUgc3RyaW5nICJGQURNUElORiIgd2lsbCBiZSBjb252ZXJ0ZWQgaW50byAweDQ2NDE0NDRkNTA0OTRlNDYKKyAqLworc3RhdGljIGlubGluZSB1NjQgZmFkdW1wX3N0cl90b191NjQoY29uc3QgY2hhciAqc3RyKQoreworCXU2NCB2YWwgPSAwOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHNpemVvZih2YWwpOyBpKyspCisJCXZhbCA9ICgqc3RyKSA/ICh2YWwgPDwgOCkgfCAqc3RyKysgOiB2YWwgPDwgODsKKwlyZXR1cm4gdmFsOworfQorCisjZGVmaW5lIEZBRFVNUF9DUFVfVU5LTk9XTgkJKH4oKHUzMikwKSkKKworI2RlZmluZSBGQURVTVBfQ1JBU0hfSU5GT19NQUdJQwkJZmFkdW1wX3N0cl90b191NjQoIkZBRE1QSU5GIikKKworLyogZmFkdW1wIGNyYXNoIGluZm8gc3RydWN0dXJlICovCitzdHJ1Y3QgZmFkdW1wX2NyYXNoX2luZm9faGVhZGVyIHsKKwl1NjQJCW1hZ2ljX251bWJlcjsKKwl1NjQJCWVsZmNvcmVoZHJfYWRkcjsKKwl1MzIJCWNyYXNoaW5nX2NwdTsKKwlzdHJ1Y3QgcHRfcmVncwlyZWdzOworCXN0cnVjdCBjcHVtYXNrCW9ubGluZV9tYXNrOworfTsKKworc3RydWN0IGZhZHVtcF9tZW1vcnlfcmFuZ2UgeworCXU2NAliYXNlOworCXU2NAlzaXplOworfTsKKworLyogZmFkdW1wIG1lbW9yeSByYW5nZXMgaW5mbyAqLworc3RydWN0IGZhZHVtcF9tcmFuZ2VfaW5mbyB7CisJY2hhcgkJCQluYW1lWzE2XTsKKwlzdHJ1Y3QgZmFkdW1wX21lbW9yeV9yYW5nZQkqbWVtX3JhbmdlczsKKwl1MzIJCQkJbWVtX3Jhbmdlc19zejsKKwl1MzIJCQkJbWVtX3JhbmdlX2NudDsKKwl1MzIJCQkJbWF4X21lbV9yYW5nZXM7Cit9OworCisvKiBQbGF0Zm9ybSBzcGVjaWZpYyBjYWxsYmFjayBmdW5jdGlvbnMgKi8KK3N0cnVjdCBmYWR1bXBfb3BzOworCisvKiBGaXJtd2FyZS1hc3Npc3RlZCBkdW1wIGNvbmZpZ3VyYXRpb24gZGV0YWlscy4gKi8KK3N0cnVjdCBmd19kdW1wIHsKKwl1bnNpZ25lZCBsb25nCXJlc2VydmVfZHVtcF9hcmVhX3N0YXJ0OworCXVuc2lnbmVkIGxvbmcJcmVzZXJ2ZV9kdW1wX2FyZWFfc2l6ZTsKKwkvKiBjbWQgbGluZSBvcHRpb24gZHVyaW5nIGJvb3QgKi8KKwl1bnNpZ25lZCBsb25nCXJlc2VydmVfYm9vdHZhcjsKKworCXVuc2lnbmVkIGxvbmcJY3B1X3N0YXRlX2RhdGFfc2l6ZTsKKwl1NjQJCWNwdV9zdGF0ZV9kZXN0X3ZhZGRyOworCXUzMgkJY3B1X3N0YXRlX2RhdGFfdmVyc2lvbjsKKwl1MzIJCWNwdV9zdGF0ZV9lbnRyeV9zaXplOworCisJdW5zaWduZWQgbG9uZwlocHRlX3JlZ2lvbl9zaXplOworCisJdW5zaWduZWQgbG9uZwlib290X21lbW9yeV9zaXplOworCXU2NAkJYm9vdF9tZW1fZGVzdF9hZGRyOworCXU2NAkJYm9vdF9tZW1fYWRkcltGQURVTVBfTUFYX01FTV9SRUdTXTsKKwl1NjQJCWJvb3RfbWVtX3N6W0ZBRFVNUF9NQVhfTUVNX1JFR1NdOworCXU2NAkJYm9vdF9tZW1fdG9wOworCXU2NAkJYm9vdF9tZW1fcmVnc19jbnQ7CisKKwl1bnNpZ25lZCBsb25nCWZhZHVtcGhkcl9hZGRyOworCXVuc2lnbmVkIGxvbmcJY3B1X25vdGVzX2J1Zl92YWRkcjsKKwl1bnNpZ25lZCBsb25nCWNwdV9ub3Rlc19idWZfc2l6ZTsKKworCS8qCisJICogTWF4aW11bSBzaXplIHN1cHBvcnRlZCBieSBmaXJtd2FyZSB0byBjb3B5IGZyb20gc291cmNlIHRvCisJICogZGVzdGluYXRpb24gYWRkcmVzcyBwZXIgZW50cnkuCisJICovCisJdTY0CQltYXhfY29weV9zaXplOworCXU2NAkJa2VybmVsX21ldGFkYXRhOworCisJaW50CQlpYm1fY29uZmlndXJlX2tlcm5lbF9kdW1wOworCisJdW5zaWduZWQgbG9uZwlmYWR1bXBfZW5hYmxlZDoxOworCXVuc2lnbmVkIGxvbmcJZmFkdW1wX3N1cHBvcnRlZDoxOworCXVuc2lnbmVkIGxvbmcJZHVtcF9hY3RpdmU6MTsKKwl1bnNpZ25lZCBsb25nCWR1bXBfcmVnaXN0ZXJlZDoxOworCXVuc2lnbmVkIGxvbmcJbm9jbWE6MTsKKworCXN0cnVjdCBmYWR1bXBfb3BzCSpvcHM7Cit9OworCitzdHJ1Y3QgZmFkdW1wX29wcyB7CisJdTY0CSgqZmFkdW1wX2luaXRfbWVtX3N0cnVjdCkoc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mKTsKKwl1NjQJKCpmYWR1bXBfZ2V0X21ldGFkYXRhX3NpemUpKHZvaWQpOworCWludAkoKmZhZHVtcF9zZXR1cF9tZXRhZGF0YSkoc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mKTsKKwl1NjQJKCpmYWR1bXBfZ2V0X2Jvb3RtZW1fbWluKSh2b2lkKTsKKwlpbnQJKCpmYWR1bXBfcmVnaXN0ZXIpKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZik7CisJaW50CSgqZmFkdW1wX3VucmVnaXN0ZXIpKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZik7CisJaW50CSgqZmFkdW1wX2ludmFsaWRhdGUpKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZik7CisJdm9pZAkoKmZhZHVtcF9jbGVhbnVwKShzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYpOworCWludAkoKmZhZHVtcF9wcm9jZXNzKShzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYpOworCXZvaWQJKCpmYWR1bXBfcmVnaW9uX3Nob3cpKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZiwKKwkJCQkgICAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOworCXZvaWQJKCpmYWR1bXBfdHJpZ2dlcikoc3RydWN0IGZhZHVtcF9jcmFzaF9pbmZvX2hlYWRlciAqZmRoLAorCQkJCSAgY29uc3QgY2hhciAqbXNnKTsKK307CisKKy8qIEhlbHBlciBmdW5jdGlvbnMgKi8KK3MzMiBmYWR1bXBfc2V0dXBfY3B1X25vdGVzX2J1Zih1MzIgbnVtX2NwdXMpOwordm9pZCBmYWR1bXBfZnJlZV9jcHVfbm90ZXNfYnVmKHZvaWQpOwordTMyICpmYWR1bXBfcmVnc190b19lbGZfbm90ZXModTMyICpidWYsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3ZvaWQgZmFkdW1wX3VwZGF0ZV9lbGZjb3JlX2hlYWRlcihjaGFyICpidWZwKTsKK2Jvb2wgaXNfZmFkdW1wX2Jvb3RfbWVtX2NvbnRpZ3VvdXModm9pZCk7Citib29sIGlzX2ZhZHVtcF9yZXNlcnZlZF9tZW1fY29udGlndW91cyh2b2lkKTsKKworI2Vsc2UgLyogIUNPTkZJR19QUkVTRVJWRV9GQV9EVU1QICovCisKKy8qIEZpcm13YXJlLWFzc2lzdGVkIGR1bXAgY29uZmlndXJhdGlvbiBkZXRhaWxzLiAqLworc3RydWN0IGZ3X2R1bXAgeworCXU2NAlib290X21lbV90b3A7CisJdTY0CWR1bXBfYWN0aXZlOworfTsKKworI2VuZGlmIC8qIENPTkZJR19QUkVTRVJWRV9GQV9EVU1QICovCisKKyNpZmRlZiBDT05GSUdfUFBDX1BTRVJJRVMKK2V4dGVybiB2b2lkIHJ0YXNfZmFkdW1wX2R0X3NjYW4oc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mLCB1NjQgbm9kZSk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkCitydGFzX2ZhZHVtcF9kdF9zY2FuKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZiwgdTY0IG5vZGUpIHsgfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfUFBDX1BPV0VSTlYKK2V4dGVybiB2b2lkIG9wYWxfZmFkdW1wX2R0X3NjYW4oc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mLCB1NjQgbm9kZSk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkCitvcGFsX2ZhZHVtcF9kdF9zY2FuKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZiwgdTY0IG5vZGUpIHsgfQorI2VuZGlmCisKKyNlbmRpZiAvKiBfQVNNX1BPV0VSUENfRkFEVU1QX0lOVEVSTkFMX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9mYWR1bXAuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9mYWR1bXAuaAppbmRleCAxN2Q5YjZhLi41MjZhNmE2IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZmFkdW1wLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2ZhZHVtcC5oCkBAIC02LDE5NiArNiwxNCBAQAogICogQXV0aG9yOiBNYWhlc2ggU2FsZ2FvbmthciA8bWFoZXNoQGxpbnV4LnZuZXQuaWJtLmNvbT4KICAqLwogCi0jaWZuZGVmIF9fUFBDNjRfRkFfRFVNUF9IX18KLSNkZWZpbmUgX19QUEM2NF9GQV9EVU1QX0hfXworI2lmbmRlZiBfQVNNX1BPV0VSUENfRkFEVU1QX0gKKyNkZWZpbmUgX0FTTV9QT1dFUlBDX0ZBRFVNUF9ICiAKICNpZmRlZiBDT05GSUdfRkFfRFVNUAogCi0vKgotICogVGhlIFJNQSByZWdpb24gd2lsbCBiZSBzYXZlZCBmb3IgbGF0ZXIgZHVtcGluZyB3aGVuIGtlcm5lbCBjcmFzaGVzLgotICogUk1BIGlzIFJlYWwgTW9kZSBBcmVhLCB0aGUgZmlyc3QgYmxvY2sgb2YgbG9naWNhbCBtZW1vcnkgYWRkcmVzcyBvd25lZAotICogYnkgbG9naWNhbCBwYXJ0aXRpb24sIGNvbnRhaW5pbmcgdGhlIHN0b3JhZ2UgdGhhdCBtYXkgYmUgYWNjZXNzZWQgd2l0aAotICogdHJhbnNsYXRlIG9mZi4KLSAqLwotI2RlZmluZSBSTUFfU1RBUlQJMHgwCi0jZGVmaW5lIFJNQV9FTkQJCShwcGM2NF9ybWFfc2l6ZSkKLQotLyoKLSAqIE9uIHNvbWUgUG93ZXIgc3lzdGVtcyB3aGVyZSBSTU8gaXMgMTI4TUIsIGl0IHN0aWxsIHJlcXVpcmVzIG1pbmltdW0gb2YKLSAqIDI1Nk1CIGZvciBrZXJuZWwgdG8gYm9vdCBzdWNjZXNzZnVsbHkuIFdoZW4ga2R1bXAgaW5mcmFzdHJ1Y3R1cmUgaXMKLSAqIGNvbmZpZ3VyZWQgdG8gc2F2ZSB2bWNvcmUgb3ZlciBuZXR3b3JrLCB3ZSBydW4gaW50byBPT00gaXNzdWUgd2hpbGUKLSAqIGxvYWRpbmcgbW9kdWxlcyByZWxhdGVkIHRvIG5ldHdvcmsgc2V0dXAuIEhlbmNlIHdlIG5lZWQgYWRpdGlvbmFsIDY0TQotICogb2YgbWVtb3J5IHRvIGF2b2lkIE9PTSBpc3N1ZS4KLSAqLwotI2RlZmluZSBNSU5fQk9PVF9NRU0JKCgoUk1BX0VORCA8ICgweDFVTCA8PCAyOCkpID8gKDB4MVVMIDw8IDI4KSA6IFJNQV9FTkQpIFwKLQkJCSsgKDB4MVVMIDw8IDI2KSkKLQotLyogVGhlIHVwcGVyIGxpbWl0IHBlcmNlbnRhZ2UgZm9yIHVzZXIgc3BlY2lmaWVkIGJvb3QgbWVtb3J5IHNpemUgKDI1JSkgKi8KLSNkZWZpbmUgTUFYX0JPT1RfTUVNX1JBVElPCQkJNAotCi0jZGVmaW5lIG1lbWJsb2NrX251bV9yZWdpb25zKG1lbWJsb2NrX3R5cGUpCShtZW1ibG9jay5tZW1ibG9ja190eXBlLmNudCkKLQotLyogQWxpZ25lbWVudCBwZXIgQ01BIHJlcXVpcmVtZW50LiAqLwotI2RlZmluZSBGQURVTVBfQ01BX0FMSUdOTUVOVAkoUEFHRV9TSVpFIDw8CQkJCVwKLQkJCW1heF90KHVuc2lnbmVkIGxvbmcsIE1BWF9PUkRFUiAtIDEsIHBhZ2VibG9ja19vcmRlcikpCi0KLS8qIEZpcm13YXJlIHByb3ZpZGVkIGR1bXAgc2VjdGlvbnMgKi8KLSNkZWZpbmUgRkFEVU1QX0NQVV9TVEFURV9EQVRBCTB4MDAwMQotI2RlZmluZSBGQURVTVBfSFBURV9SRUdJT04JMHgwMDAyCi0jZGVmaW5lIEZBRFVNUF9SRUFMX01PREVfUkVHSU9OCTB4MDAxMQotCi0vKiBEdW1wIHJlcXVlc3QgZmxhZyAqLwotI2RlZmluZSBGQURVTVBfUkVRVUVTVF9GTEFHCTB4MDAwMDAwMDEKLQotLyogRkFEIGNvbW1hbmRzICovCi0jZGVmaW5lIEZBRFVNUF9SRUdJU1RFUgkJMQotI2RlZmluZSBGQURVTVBfVU5SRUdJU1RFUgkyCi0jZGVmaW5lIEZBRFVNUF9JTlZBTElEQVRFCTMKLQotLyogRHVtcCBzdGF0dXMgZmxhZyAqLwotI2RlZmluZSBGQURVTVBfRVJST1JfRkxBRwkweDIwMDAKLQotI2RlZmluZSBGQURVTVBfQ1BVX0lEX01BU0sJKCgxVUwgPDwgMzIpIC0gMSkKLQotI2RlZmluZSBDUFVfVU5LTk9XTgkJKH4oKHUzMikwKSkKLQotLyogVXRpbGl0eSBtYWNyb3MgKi8KLSNkZWZpbmUgU0tJUF9UT19ORVhUX0NQVShyZWdfZW50cnkpCQkJCQlcCi0oewkJCQkJCQkJCVwKLQl3aGlsZSAoYmU2NF90b19jcHUocmVnX2VudHJ5LT5yZWdfaWQpICE9IFJFR19JRCgiQ1BVRU5EIikpCVwKLQkJcmVnX2VudHJ5Kys7CQkJCQkJXAotCXJlZ19lbnRyeSsrOwkJCQkJCQlcCi19KQotCiBleHRlcm4gaW50IGNyYXNoaW5nX2NwdTsKIAotLyogS2VybmVsIER1bXAgc2VjdGlvbiBpbmZvICovCi1zdHJ1Y3QgZmFkdW1wX3NlY3Rpb24gewotCV9fYmUzMglyZXF1ZXN0X2ZsYWc7Ci0JX19iZTE2CXNvdXJjZV9kYXRhX3R5cGU7Ci0JX19iZTE2CWVycm9yX2ZsYWdzOwotCV9fYmU2NAlzb3VyY2VfYWRkcmVzczsKLQlfX2JlNjQJc291cmNlX2xlbjsKLQlfX2JlNjQJYnl0ZXNfZHVtcGVkOwotCV9fYmU2NAlkZXN0aW5hdGlvbl9hZGRyZXNzOwotfTsKLQotLyogaWJtLGNvbmZpZ3VyZS1rZXJuZWwtZHVtcCBoZWFkZXIuICovCi1zdHJ1Y3QgZmFkdW1wX3NlY3Rpb25faGVhZGVyIHsKLQlfX2JlMzIJZHVtcF9mb3JtYXRfdmVyc2lvbjsKLQlfX2JlMTYJZHVtcF9udW1fc2VjdGlvbnM7Ci0JX19iZTE2CWR1bXBfc3RhdHVzX2ZsYWc7Ci0JX19iZTMyCW9mZnNldF9maXJzdF9kdW1wX3NlY3Rpb247Ci0KLQkvKiBGaWVsZHMgZm9yIGRpc2sgZHVtcCBvcHRpb24uICovCi0JX19iZTMyCWRkX2Jsb2NrX3NpemU7Ci0JX19iZTY0CWRkX2Jsb2NrX29mZnNldDsKLQlfX2JlNjQJZGRfbnVtX2Jsb2NrczsKLQlfX2JlMzIJZGRfb2Zmc2V0X2Rpc2tfcGF0aDsKLQotCS8qIE1heGltdW0gdGltZSBhbGxvd2VkIHRvIHByZXZlbnQgYW4gYXV0b21hdGljIGR1bXAtcmVib290LiAqLwotCV9fYmUzMgltYXhfdGltZV9hdXRvOwotfTsKLQotLyoKLSAqIEZpcm13YXJlIEFzc2lzdGVkIGR1bXAgbWVtb3J5IHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgaXMgcmVxdWlyZWQgZm9yCi0gKiByZWdpc3RlcmluZyBmdXR1cmUga2VybmVsIGR1bXAgd2l0aCBwb3dlciBmaXJtd2FyZSB0aHJvdWdoIHJ0YXMgY2FsbC4KLSAqCi0gKiBObyBkaXNrIGR1bXAgb3B0aW9uLiBIZW5jZSBkaXNrIGR1bXAgcGF0aCBzdHJpbmcgc2VjdGlvbiBpcyBub3QgaW5jbHVkZWQuCi0gKi8KLXN0cnVjdCBmYWR1bXBfbWVtX3N0cnVjdCB7Ci0Jc3RydWN0IGZhZHVtcF9zZWN0aW9uX2hlYWRlcgloZWFkZXI7Ci0KLQkvKiBLZXJuZWwgZHVtcCBzZWN0aW9ucyAqLwotCXN0cnVjdCBmYWR1bXBfc2VjdGlvbgkJY3B1X3N0YXRlX2RhdGE7Ci0Jc3RydWN0IGZhZHVtcF9zZWN0aW9uCQlocHRlX3JlZ2lvbjsKLQlzdHJ1Y3QgZmFkdW1wX3NlY3Rpb24JCXJtcl9yZWdpb247Ci19OwotCi0vKiBGaXJtd2FyZS1hc3Npc3RlZCBkdW1wIGNvbmZpZ3VyYXRpb24gZGV0YWlscy4gKi8KLXN0cnVjdCBmd19kdW1wIHsKLQl1bnNpZ25lZCBsb25nCWNwdV9zdGF0ZV9kYXRhX3NpemU7Ci0JdW5zaWduZWQgbG9uZwlocHRlX3JlZ2lvbl9zaXplOwotCXVuc2lnbmVkIGxvbmcJYm9vdF9tZW1vcnlfc2l6ZTsKLQl1bnNpZ25lZCBsb25nCXJlc2VydmVfZHVtcF9hcmVhX3N0YXJ0OwotCXVuc2lnbmVkIGxvbmcJcmVzZXJ2ZV9kdW1wX2FyZWFfc2l6ZTsKLQkvKiBjbWQgbGluZSBvcHRpb24gZHVyaW5nIGJvb3QgKi8KLQl1bnNpZ25lZCBsb25nCXJlc2VydmVfYm9vdHZhcjsKLQotCXVuc2lnbmVkIGxvbmcJZmFkdW1waGRyX2FkZHI7Ci0JdW5zaWduZWQgbG9uZwljcHVfbm90ZXNfYnVmOwotCXVuc2lnbmVkIGxvbmcJY3B1X25vdGVzX2J1Zl9zaXplOwotCi0JaW50CQlpYm1fY29uZmlndXJlX2tlcm5lbF9kdW1wOwotCi0JdW5zaWduZWQgbG9uZwlmYWR1bXBfZW5hYmxlZDoxOwotCXVuc2lnbmVkIGxvbmcJZmFkdW1wX3N1cHBvcnRlZDoxOwotCXVuc2lnbmVkIGxvbmcJZHVtcF9hY3RpdmU6MTsKLQl1bnNpZ25lZCBsb25nCWR1bXBfcmVnaXN0ZXJlZDoxOwotCXVuc2lnbmVkIGxvbmcJbm9jbWE6MTsKLX07Ci0KLS8qCi0gKiBDb3B5IHRoZSBhc2NpaSB2YWx1ZXMgZm9yIGZpcnN0IDggY2hhcmFjdGVycyBmcm9tIGEgc3RyaW5nIGludG8gdTY0Ci0gKiB2YXJpYWJsZSBhdCB0aGVpciByZXNwZWN0aXZlIGluZGV4ZXMuCi0gKiBlLmcuCi0gKiAgVGhlIHN0cmluZyAiRkFETVBJTkYiIHdpbGwgYmUgY29udmVydGVkIGludG8gMHg0NjQxNDQ0ZDUwNDk0ZTQ2Ci0gKi8KLXN0YXRpYyBpbmxpbmUgdTY0IHN0cl90b191NjQoY29uc3QgY2hhciAqc3RyKQotewotCXU2NCB2YWwgPSAwOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IHNpemVvZih2YWwpOyBpKyspCi0JCXZhbCA9ICgqc3RyKSA/ICh2YWwgPDwgOCkgfCAqc3RyKysgOiB2YWwgPDwgODsKLQlyZXR1cm4gdmFsOwotfQotI2RlZmluZSBTVFJfVE9fSEVYKHgpCXN0cl90b191NjQoeCkKLSNkZWZpbmUgUkVHX0lEKHgpCXN0cl90b191NjQoeCkKLQotI2RlZmluZSBGQURVTVBfQ1JBU0hfSU5GT19NQUdJQwkJU1RSX1RPX0hFWCgiRkFETVBJTkYiKQotI2RlZmluZSBSRUdTQVZFX0FSRUFfTUFHSUMJCVNUUl9UT19IRVgoIlJFR1NBVkUiKQotCi0vKiBUaGUgZmlybXdhcmUtYXNzaXN0ZWQgZHVtcCBmb3JtYXQuCi0gKgotICogVGhlIHJlZ2lzdGVyIHNhdmUgYXJlYSBpcyBhbiBhcmVhIGluIHRoZSBwYXJ0aXRpb24ncyBtZW1vcnkgdXNlZCB0byBwcmVzZXJ2ZQotICogdGhlIHJlZ2lzdGVyIGNvbnRlbnRzIChDUFUgc3RhdGUgZGF0YSkgZm9yIHRoZSBhY3RpdmUgQ1BVcyBkdXJpbmcgYSBmaXJtd2FyZQotICogYXNzaXN0ZWQgZHVtcC4gVGhlIGR1bXAgZm9ybWF0IGNvbnRhaW5zIHJlZ2lzdGVyIHNhdmUgYXJlYSBoZWFkZXIgZm9sbG93ZWQKLSAqIGJ5IHJlZ2lzdGVyIGVudHJpZXMuIEVhY2ggbGlzdCBvZiByZWdpc3RlcnMgZm9yIGEgQ1BVIHN0YXJ0cyB3aXRoCi0gKiAiQ1BVU1RSVCIgYW5kIGVuZHMgd2l0aCAiQ1BVRU5EIi4KLSAqLwotCi0vKiBSZWdpc3RlciBzYXZlIGFyZWEgaGVhZGVyLiAqLwotc3RydWN0IGZhZHVtcF9yZWdfc2F2ZV9hcmVhX2hlYWRlciB7Ci0JX19iZTY0CQltYWdpY19udW1iZXI7Ci0JX19iZTMyCQl2ZXJzaW9uOwotCV9fYmUzMgkJbnVtX2NwdV9vZmZzZXQ7Ci19OwotCi0vKiBSZWdpc3RlciBlbnRyeS4gKi8KLXN0cnVjdCBmYWR1bXBfcmVnX2VudHJ5IHsKLQlfX2JlNjQJCXJlZ19pZDsKLQlfX2JlNjQJCXJlZ192YWx1ZTsKLX07Ci0KLS8qIGZhZHVtcCBjcmFzaCBpbmZvIHN0cnVjdHVyZSAqLwotc3RydWN0IGZhZHVtcF9jcmFzaF9pbmZvX2hlYWRlciB7Ci0JdTY0CQltYWdpY19udW1iZXI7Ci0JdTY0CQllbGZjb3JlaGRyX2FkZHI7Ci0JdTMyCQljcmFzaGluZ19jcHU7Ci0Jc3RydWN0IHB0X3JlZ3MJcmVnczsKLQlzdHJ1Y3QgY3B1bWFzawlvbmxpbmVfbWFzazsKLX07Ci0KLXN0cnVjdCBmYWRfY3Jhc2hfbWVtb3J5X3JhbmdlcyB7Ci0JdW5zaWduZWQgbG9uZyBsb25nCWJhc2U7Ci0JdW5zaWduZWQgbG9uZyBsb25nCXNpemU7Ci19OwotCiBleHRlcm4gaW50IGlzX2ZhZHVtcF9tZW1vcnlfYXJlYSh1NjQgYWRkciwgdWxvbmcgc2l6ZSk7Ci1leHRlcm4gaW50IGVhcmx5X2luaXRfZHRfc2Nhbl9md19kdW1wKHVuc2lnbmVkIGxvbmcgbm9kZSwKLQkJY29uc3QgY2hhciAqdW5hbWUsIGludCBkZXB0aCwgdm9pZCAqZGF0YSk7Ci1leHRlcm4gaW50IGZhZHVtcF9yZXNlcnZlX21lbSh2b2lkKTsKIGV4dGVybiBpbnQgc2V0dXBfZmFkdW1wKHZvaWQpOwogZXh0ZXJuIGludCBpc19mYWR1bXBfYWN0aXZlKHZvaWQpOwogZXh0ZXJuIGludCBzaG91bGRfZmFkdW1wX2NyYXNoKHZvaWQpOwpAQCAtMjA3LDUgKzI1LDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IGlzX2ZhZHVtcF9hY3RpdmUodm9pZCkgeyByZXR1cm4gMDsgfQogc3RhdGljIGlubGluZSBpbnQgc2hvdWxkX2ZhZHVtcF9jcmFzaCh2b2lkKSB7IHJldHVybiAwOyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgY3Jhc2hfZmFkdW1wKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBjb25zdCBjaGFyICpzdHIpIHsgfQogc3RhdGljIGlubGluZSB2b2lkIGZhZHVtcF9jbGVhbnVwKHZvaWQpIHsgfQorI2VuZGlmIC8qICFDT05GSUdfRkFfRFVNUCAqLworCisjaWYgZGVmaW5lZChDT05GSUdfRkFfRFVNUCkgfHwgZGVmaW5lZChDT05GSUdfUFJFU0VSVkVfRkFfRFVNUCkKK2V4dGVybiBpbnQgZWFybHlfaW5pdF9kdF9zY2FuX2Z3X2R1bXAodW5zaWduZWQgbG9uZyBub2RlLCBjb25zdCBjaGFyICp1bmFtZSwKKwkJCQkgICAgICBpbnQgZGVwdGgsIHZvaWQgKmRhdGEpOworZXh0ZXJuIGludCBmYWR1bXBfcmVzZXJ2ZV9tZW0odm9pZCk7CiAjZW5kaWYKLSNlbmRpZgorI2VuZGlmIC8qIF9BU01fUE9XRVJQQ19GQURVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2Zpcm13YXJlLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZmlybXdhcmUuaAppbmRleCBmYWVjYThiLi5iM2UyMTRhIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZmlybXdhcmUuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZmlybXdhcmUuaApAQCAtNTAsNiArNTAsNyBAQAogI2RlZmluZSBGV19GRUFUVVJFX0RSQ19JTkZPCUFTTV9DT05TVCgweDAwMDAwMDA4MDAwMDAwMDApCiAjZGVmaW5lIEZXX0ZFQVRVUkVfQkxPQ0tfUkVNT1ZFIEFTTV9DT05TVCgweDAwMDAwMDEwMDAwMDAwMDApCiAjZGVmaW5lIEZXX0ZFQVRVUkVfUEFQUl9TQ00gCUFTTV9DT05TVCgweDAwMDAwMDIwMDAwMDAwMDApCisjZGVmaW5lIEZXX0ZFQVRVUkVfVUxUUkFWSVNPUglBU01fQ09OU1QoMHgwMDAwMDA0MDAwMDAwMDAwKQogCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogCkBAIC02OCw5ICs2OSw5IEBAIGVudW0gewogCQlGV19GRUFUVVJFX1RZUEUxX0FGRklOSVRZIHwgRldfRkVBVFVSRV9QUlJOIHwKIAkJRldfRkVBVFVSRV9IUFRfUkVTSVpFIHwgRldfRkVBVFVSRV9EUk1FTV9WMiB8CiAJCUZXX0ZFQVRVUkVfRFJDX0lORk8gfCBGV19GRUFUVVJFX0JMT0NLX1JFTU9WRSB8Ci0JCUZXX0ZFQVRVUkVfUEFQUl9TQ00sCisJCUZXX0ZFQVRVUkVfUEFQUl9TQ00gfCBGV19GRUFUVVJFX1VMVFJBVklTT1IsCiAJRldfRkVBVFVSRV9QU0VSSUVTX0FMV0FZUyA9IDAsCi0JRldfRkVBVFVSRV9QT1dFUk5WX1BPU1NJQkxFID0gRldfRkVBVFVSRV9PUEFMLAorCUZXX0ZFQVRVUkVfUE9XRVJOVl9QT1NTSUJMRSA9IEZXX0ZFQVRVUkVfT1BBTCB8IEZXX0ZFQVRVUkVfVUxUUkFWSVNPUiwKIAlGV19GRUFUVVJFX1BPV0VSTlZfQUxXQVlTID0gMCwKIAlGV19GRUFUVVJFX1BTM19QT1NTSUJMRSA9IEZXX0ZFQVRVUkVfTFBBUiB8IEZXX0ZFQVRVUkVfUFMzX0xWMSwKIAlGV19GRUFUVVJFX1BTM19BTFdBWVMgPSBGV19GRUFUVVJFX0xQQVIgfCBGV19GRUFUVVJFX1BTM19MVjEsCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZnRyYWNlLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZnRyYWNlLmgKaW5kZXggM2RmYjgwYi4uZjU0YTA4YSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2Z0cmFjZS5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9mdHJhY2UuaApAQCAtOCw2ICs4LDggQEAKICNkZWZpbmUgTUNPVU5UX0FERFIJCSgodW5zaWduZWQgbG9uZykoX21jb3VudCkpCiAjZGVmaW5lIE1DT1VOVF9JTlNOX1NJWkUJNCAvKiBzaXplb2YgbWNvdW50IGNhbGwgKi8KIAorI2RlZmluZSBIQVZFX0ZVTkNUSU9OX0dSQVBIX1JFVF9BRERSX1BUUgorCiAjaWZkZWYgX19BU1NFTUJMWV9fCiAKIC8qIEJhc2VkIG9mZiBvZiBvYmpkdW1wIG9wdHB1dCBmcm9tIGdsaWJjICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZnV0ZXguaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9mdXRleC5oCmluZGV4IDNhNmFhNTcuLmVlYTI4Y2EgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9mdXRleC5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9mdXRleC5oCkBAIC02MCw4ICs2MCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGFyY2hfZnV0ZXhfYXRvbWljX29wX2ludXNlcihpbnQgb3AsIGludCBvcGFyZywgaW50ICpvdmFsLAogCiAJcGFnZWZhdWx0X2VuYWJsZSgpOwogCi0JaWYgKCFyZXQpCi0JCSpvdmFsID0gb2xkdmFsOworCSpvdmFsID0gb2xkdmFsOwogCiAJcHJldmVudF93cml0ZV90b191c2VyKHVhZGRyLCBzaXplb2YoKnVhZGRyKSk7CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9oZWFkLTY0LmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vaGVhZC02NC5oCmluZGV4IGE0NjY3NjUuLjJkYWJjZjYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9oZWFkLTY0LmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2hlYWQtNjQuaApAQCAtMTY5LDQ3ICsxNjksNiBAQCBlbmRfIyNzbmFtZToKIAogI2RlZmluZSBBQlNfQUREUihsYWJlbCkgKGxhYmVsIC0gZnNfbGFiZWwgKyBmc19zdGFydCkKIAotI2RlZmluZSBFWENfUkVBTF9CRUdJTihuYW1lLCBzdGFydCwgc2l6ZSkJCQlcCi0JRklYRURfU0VDVElPTl9FTlRSWV9CRUdJTl9MT0NBVElPTihyZWFsX3ZlY3RvcnMsIGV4Y19yZWFsXyMjc3RhcnQjI18jI25hbWUsIHN0YXJ0LCBzaXplKQotCi0jZGVmaW5lIEVYQ19SRUFMX0VORChuYW1lLCBzdGFydCwgc2l6ZSkJCQkJXAotCUZJWEVEX1NFQ1RJT05fRU5UUllfRU5EX0xPQ0FUSU9OKHJlYWxfdmVjdG9ycywgZXhjX3JlYWxfIyNzdGFydCMjXyMjbmFtZSwgc3RhcnQsIHNpemUpCi0KLSNkZWZpbmUgRVhDX1ZJUlRfQkVHSU4obmFtZSwgc3RhcnQsIHNpemUpCQkJXAotCUZJWEVEX1NFQ1RJT05fRU5UUllfQkVHSU5fTE9DQVRJT04odmlydF92ZWN0b3JzLCBleGNfdmlydF8jI3N0YXJ0IyNfIyNuYW1lLCBzdGFydCwgc2l6ZSkKLQotI2RlZmluZSBFWENfVklSVF9FTkQobmFtZSwgc3RhcnQsIHNpemUpCQkJCVwKLQlGSVhFRF9TRUNUSU9OX0VOVFJZX0VORF9MT0NBVElPTih2aXJ0X3ZlY3RvcnMsIGV4Y192aXJ0XyMjc3RhcnQjI18jI25hbWUsIHN0YXJ0LCBzaXplKQotCi0jZGVmaW5lIEVYQ19DT01NT05fQkVHSU4obmFtZSkJCQkJCVwKLQlVU0VfVEVYVF9TRUNUSU9OKCk7CQkJCQlcCi0JLmJhbGlnbiBJRkVUQ0hfQUxJR05fQllURVM7CQkJCVwKLQkuZ2xvYmFsIG5hbWU7CQkJCQkJXAotCV9BU01fTk9LUFJPQkVfU1lNQk9MKG5hbWUpOwkJCQlcCi0JREVGSU5FX0ZJWEVEX1NZTUJPTChuYW1lKTsJCQkJXAotbmFtZToKLQotI2RlZmluZSBUUkFNUF9SRUFMX0JFR0lOKG5hbWUpCQkJCQlcCi0JRklYRURfU0VDVElPTl9FTlRSWV9CRUdJTihyZWFsX3RyYW1wb2xpbmVzLCBuYW1lKQotCi0jZGVmaW5lIFRSQU1QX1ZJUlRfQkVHSU4obmFtZSkJCQkJCVwKLQlGSVhFRF9TRUNUSU9OX0VOVFJZX0JFR0lOKHZpcnRfdHJhbXBvbGluZXMsIG5hbWUpCi0KLSNpZmRlZiBDT05GSUdfS1ZNX0JPT0szU182NF9IQU5ETEVSCi0jZGVmaW5lIFRSQU1QX0tWTV9CRUdJTihuYW1lKQkJCQkJXAotCVRSQU1QX1ZJUlRfQkVHSU4obmFtZSkKLSNlbHNlCi0jZGVmaW5lIFRSQU1QX0tWTV9CRUdJTihuYW1lKQotI2VuZGlmCi0KLSNkZWZpbmUgRVhDX1JFQUxfTk9ORShzdGFydCwgc2l6ZSkJCQkJXAotCUZJWEVEX1NFQ1RJT05fRU5UUllfQkVHSU5fTE9DQVRJT04ocmVhbF92ZWN0b3JzLCBleGNfcmVhbF8jI3N0YXJ0IyNfIyN1bnVzZWQsIHN0YXJ0LCBzaXplKTsgXAotCUZJWEVEX1NFQ1RJT05fRU5UUllfRU5EX0xPQ0FUSU9OKHJlYWxfdmVjdG9ycywgZXhjX3JlYWxfIyNzdGFydCMjXyMjdW51c2VkLCBzdGFydCwgc2l6ZSkKLQotI2RlZmluZSBFWENfVklSVF9OT05FKHN0YXJ0LCBzaXplKQkJCQlcCi0JRklYRURfU0VDVElPTl9FTlRSWV9CRUdJTl9MT0NBVElPTih2aXJ0X3ZlY3RvcnMsIGV4Y192aXJ0XyMjc3RhcnQjI18jI3VudXNlZCwgc3RhcnQsIHNpemUpOyBcCi0JRklYRURfU0VDVElPTl9FTlRSWV9FTkRfTE9DQVRJT04odmlydF92ZWN0b3JzLCBleGNfdmlydF8jI3N0YXJ0IyNfIyN1bnVzZWQsIHN0YXJ0LCBzaXplKQotCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAKICNlbmRpZgkvKiBfQVNNX1BPV0VSUENfSEVBRF82NF9IICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vaHVnZXRsYi5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2h1Z2V0bGIuaAppbmRleCAyMGExMDEwLi5iZDY1MDRjIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vaHVnZXRsYi5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9odWdldGxiLmgKQEAgLTMxLDkgKzMxLDYgQEAgc3RhdGljIGlubGluZSBpbnQgaXNfaHVnZXBhZ2Vfb25seV9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBib29rM2VfaHVnZXRsYl9wcmVsb2FkKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGVhLAotCQkJICAgIHB0ZV90IHB0ZSk7Ci0KICNkZWZpbmUgX19IQVZFX0FSQ0hfSFVHRVRMQl9GUkVFX1BHRF9SQU5HRQogdm9pZCBodWdldGxiX2ZyZWVfcGdkX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJCSAgICB1bnNpZ25lZCBsb25nIGVuZCwgdW5zaWduZWQgbG9uZyBmbG9vciwKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9pby13b3JrYXJvdW5kcy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2lvLXdvcmthcm91bmRzLmgKaW5kZXggMDE1NjdlYTQuLjNjY2U0OTkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9pby13b3JrYXJvdW5kcy5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9pby13b3JrYXJvdW5kcy5oCkBAIC04LDYgKzgsNyBAQAogI2lmbmRlZiBfSU9fV09SS0FST1VORFNfSAogI2RlZmluZSBfSU9fV09SS0FST1VORFNfSAogCisjaWZkZWYgQ09ORklHX1BQQ19JT19XT1JLQVJPVU5EUwogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8YXNtL3BjaS1icmlkZ2UuaD4KIApAQCAtMzIsNCArMzMsMjMgQEAgZXh0ZXJuIGludCBzcGlkZXJwY2lfaW93YV9pbml0KHN0cnVjdCBpb3dhX2J1cyAqLCB2b2lkICopOwogI2RlZmluZSBTUElERVJfUENJX0RVTU1ZX1JFQUQJCTB4MDgxMAogI2RlZmluZSBTUElERVJfUENJX0RVTU1ZX1JFQURfQkFTRQkweDA4MTQKIAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKENPTkZJR19QUENfSU9fV09SS0FST1VORFMpICYmIGRlZmluZWQoQ09ORklHX1BQQ19JTkRJUkVDVF9NTUlPKQorZXh0ZXJuIGJvb2wgaW9fd29ya2Fyb3VuZF9pbml0ZWQ7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpb3dhX2lzX2FjdGl2ZSh2b2lkKQoreworCXJldHVybiB1bmxpa2VseShpb193b3JrYXJvdW5kX2luaXRlZCk7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSBib29sIGlvd2FfaXNfYWN0aXZlKHZvaWQpCit7CisJcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgX19pb21lbSAqaW93YV9pb3JlbWFwKHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCSAgIHBncHJvdF90IHByb3QsIHZvaWQgKmNhbGxlcik7CisKICNlbmRpZiAvKiBfSU9fV09SS0FST1VORFNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2lvLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vaW8uaAppbmRleCAyM2U1ZDVkLi5hNjNlYzkzOCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2lvLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2lvLmgKQEAgLTcwNSwxNiArNzA1LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGlvc3luYyh2b2lkKQogICogICBjcmVhdGUgaGFuZC1tYWRlIG1hcHBpbmdzIGZvciB1c2Ugb25seSBieSB0aGUgUENJIGNvZGUgYW5kIGNhbm5vdAogICogICBjdXJyZW50bHkgYmUgaG9va2VkLiBNdXN0IGJlIHBhZ2UgYWxpZ25lZC4KICAqCi0gKiAqIF9faW9yZW1hcCBpcyB0aGUgbG93IGxldmVsIGltcGxlbWVudGF0aW9uIHVzZWQgYnkgaW9yZW1hcCBhbmQKLSAqICAgaW9yZW1hcF9wcm90IGFuZCBjYW5ub3QgYmUgaG9va2VkIChidXQgY2FuIGJlIHVzZWQgYnkgYSBob29rIG9uIG9uZQotICogICBvZiB0aGUgcHJldmlvdXMgb25lcykKLSAqCiAgKiAqIF9faW9yZW1hcF9jYWxsZXIgaXMgdGhlIHNhbWUgYXMgYWJvdmUgYnV0IHRha2VzIGFuIGV4cGxpY2l0IGNhbGxlcgogICogICByZWZlcmVuY2UgcmF0aGVyIHRoYW4gdXNpbmcgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApCiAgKgotICogKiBfX2lvdW5tYXAsIGlzIHRoZSBsb3cgbGV2ZWwgaW1wbGVtZW50YXRpb24gdXNlZCBieSBpb3VubWFwIGFuZCBjYW5ub3QKLSAqICAgYmUgaG9va2VkIChidXQgY2FuIGJlIHVzZWQgYnkgYSBob29rIG9uIGlvdW5tYXApCi0gKgogICovCiBleHRlcm4gdm9pZCBfX2lvbWVtICppb3JlbWFwKHBoeXNfYWRkcl90IGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CiBleHRlcm4gdm9pZCBfX2lvbWVtICppb3JlbWFwX3Byb3QocGh5c19hZGRyX3QgYWRkcmVzcywgdW5zaWduZWQgbG9uZyBzaXplLApAQCAtNzI5LDEzICs3MjIsMTQgQEAgdm9pZCBfX2lvbWVtICppb3JlbWFwX2NvaGVyZW50KHBoeXNfYWRkcl90IGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CiAKIGV4dGVybiB2b2lkIGlvdW5tYXAodm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKTsKIAotZXh0ZXJuIHZvaWQgX19pb21lbSAqX19pb3JlbWFwKHBoeXNfYWRkcl90LCB1bnNpZ25lZCBsb25nIHNpemUsCi0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncyk7CitpbnQgZWFybHlfaW9yZW1hcF9yYW5nZSh1bnNpZ25lZCBsb25nIGVhLCBwaHlzX2FkZHJfdCBwYSwKKwkJCXVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgcHJvdCk7Cit2b2lkIF9faW9tZW0gKmRvX2lvcmVtYXAocGh5c19hZGRyX3QgcGEsIHBoeXNfYWRkcl90IG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJIHBncHJvdF90IHByb3QsIHZvaWQgKmNhbGxlcik7CisKIGV4dGVybiB2b2lkIF9faW9tZW0gKl9faW9yZW1hcF9jYWxsZXIocGh5c19hZGRyX3QsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAkJCQkgICAgICBwZ3Byb3RfdCBwcm90LCB2b2lkICpjYWxsZXIpOwogCi1leHRlcm4gdm9pZCBfX2lvdW5tYXAodm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKTsKLQogZXh0ZXJuIHZvaWQgX19pb21lbSAqIF9faW9yZW1hcF9hdChwaHlzX2FkZHJfdCBwYSwgdm9pZCAqZWEsCiAJCQkJICAgdW5zaWduZWQgbG9uZyBzaXplLCBwZ3Byb3RfdCBwcm90KTsKIGV4dGVybiB2b2lkIF9faW91bm1hcF9hdCh2b2lkICplYSwgdW5zaWduZWQgbG9uZyBzaXplKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9pb21tdS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2lvbW11LmgKaW5kZXggMThkMzQyYi4uMzUwMTAxZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2lvbW11LmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2lvbW11LmgKQEAgLTQ4LDE1ICs0OCwxNiBAQCBzdHJ1Y3QgaW9tbXVfdGFibGVfb3BzIHsKIAkgKiByZXR1cm5zIG9sZCBUQ0UgYW5kIERNQSBkaXJlY3Rpb24gbWFzay4KIAkgKiBAdGNlIGlzIGEgcGh5c2ljYWwgYWRkcmVzcy4KIAkgKi8KLQlpbnQgKCpleGNoYW5nZSkoc3RydWN0IGlvbW11X3RhYmxlICp0YmwsCisJaW50ICgqeGNoZ19ub19raWxsKShzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwKIAkJCWxvbmcgaW5kZXgsCiAJCQl1bnNpZ25lZCBsb25nICpocGEsCi0JCQllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiAqZGlyZWN0aW9uKTsKLQkvKiBSZWFsIG1vZGUgKi8KLQlpbnQgKCpleGNoYW5nZV9ybSkoc3RydWN0IGlvbW11X3RhYmxlICp0YmwsCi0JCQlsb25nIGluZGV4LAotCQkJdW5zaWduZWQgbG9uZyAqaHBhLAotCQkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gKmRpcmVjdGlvbik7CisJCQllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiAqZGlyZWN0aW9uLAorCQkJYm9vbCByZWFsbW9kZSk7CisKKwl2b2lkICgqdGNlX2tpbGwpKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLAorCQkJdW5zaWduZWQgbG9uZyBpbmRleCwKKwkJCXVuc2lnbmVkIGxvbmcgcGFnZXMsCisJCQlib29sIHJlYWxtb2RlKTsKIAogCV9fYmU2NCAqKCp1c2VyYWRkcnB0cikoc3RydWN0IGlvbW11X3RhYmxlICp0YmwsIGxvbmcgaW5kZXgsIGJvb2wgYWxsb2MpOwogI2VuZGlmCkBAIC0xMTEsNiArMTEyLDggQEAgc3RydWN0IGlvbW11X3RhYmxlIHsKIAlzdHJ1Y3QgaW9tbXVfdGFibGVfb3BzICppdF9vcHM7CiAJc3RydWN0IGtyZWYgICAgaXRfa3JlZjsKIAlpbnQgaXRfbmlkOworCXVuc2lnbmVkIGxvbmcgaXRfcmVzZXJ2ZWRfc3RhcnQ7IC8qIFN0YXJ0IG9mIG5vdC1ETUEtYWJsZSAoTU1JTykgYXJlYSAqLworCXVuc2lnbmVkIGxvbmcgaXRfcmVzZXJ2ZWRfZW5kOwogfTsKIAogI2RlZmluZSBJT01NVV9UQUJMRV9VU0VSU1BBQ0VfRU5UUllfUk8odGJsLCBlbnRyeSkgXApAQCAtMTQ5LDggKzE1Miw5IEBAIGV4dGVybiBpbnQgaW9tbXVfdGNlX3RhYmxlX3B1dChzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCk7CiAvKiBJbml0aWFsaXplcyBhbiBpb21tdV90YWJsZSBiYXNlZCBpbiB2YWx1ZXMgc2V0IGluIHRoZSBwYXNzZWQtaW4KICAqIHN0cnVjdHVyZQogICovCi1leHRlcm4gc3RydWN0IGlvbW11X3RhYmxlICppb21tdV9pbml0X3RhYmxlKHN0cnVjdCBpb21tdV90YWJsZSAqIHRibCwKLQkJCQkJICAgIGludCBuaWQpOworZXh0ZXJuIHN0cnVjdCBpb21tdV90YWJsZSAqaW9tbXVfaW5pdF90YWJsZShzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwKKwkJaW50IG5pZCwgdW5zaWduZWQgbG9uZyByZXNfc3RhcnQsIHVuc2lnbmVkIGxvbmcgcmVzX2VuZCk7CisKICNkZWZpbmUgSU9NTVVfVEFCTEVfR1JPVVBfTUFYX1RBQkxFUwkyCiAKIHN0cnVjdCBpb21tdV90YWJsZV9ncm91cDsKQEAgLTIwNiw2ICsyMTAsMTIgQEAgZXh0ZXJuIHZvaWQgaW9tbXVfZGVsX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogZXh0ZXJuIGxvbmcgaW9tbXVfdGNlX3hjaGcoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLAogCQl1bnNpZ25lZCBsb25nIGVudHJ5LCB1bnNpZ25lZCBsb25nICpocGEsCiAJCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uICpkaXJlY3Rpb24pOworZXh0ZXJuIGxvbmcgaW9tbXVfdGNlX3hjaGdfbm9fa2lsbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJc3RydWN0IGlvbW11X3RhYmxlICp0YmwsCisJCXVuc2lnbmVkIGxvbmcgZW50cnksIHVuc2lnbmVkIGxvbmcgKmhwYSwKKwkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gKmRpcmVjdGlvbik7CitleHRlcm4gdm9pZCBpb21tdV90Y2Vfa2lsbChzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwKKwkJdW5zaWduZWQgbG9uZyBlbnRyeSwgdW5zaWduZWQgbG9uZyBwYWdlcyk7CiAjZWxzZQogc3RhdGljIGlubGluZSB2b2lkIGlvbW11X3JlZ2lzdGVyX2dyb3VwKHN0cnVjdCBpb21tdV90YWJsZV9ncm91cCAqdGFibGVfZ3JvdXAsCiAJCQkJCWludCBwY2lfZG9tYWluX251bWJlciwKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKaW5kZXggNmZiNWZiNC4uNmZlNmFkNiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKQEAgLTI5Nyw2ICsyOTcsNyBAQCBzdHJ1Y3Qga3ZtX2FyY2ggewogCWNwdW1hc2tfdCBjcHVfaW5fZ3Vlc3Q7CiAJdTggcmFkaXg7CiAJdTggZndubWlfZW5hYmxlZDsKKwl1OCBzZWN1cmVfZ3Vlc3Q7CiAJYm9vbCB0aHJlYWRzX2luZGVwOwogCWJvb2wgbmVzdGVkX2VuYWJsZTsKIAlwZ2RfdCAqcGd0YWJsZTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9rdm1fcHBjLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX3BwYy5oCmluZGV4IDhlODUxNGUuLmVlNjI3NzYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9rdm1fcHBjLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9wcGMuaApAQCAtNDUyLDkgKzQ1MiwxMDAgQEAgc3RhdGljIGlubGluZSB1MzIga3ZtcHBjX2dldF94aWNzX2xhdGNoKHZvaWQpCiAJcmV0dXJuIHhpcnI7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBrdm1wcGNfc2V0X2hvc3RfaXBpKGludCBjcHUsIHU4IGhvc3RfaXBpKQorLyoKKyAqIFRvIGF2b2lkIHRoZSBuZWVkIHRvIHVubmVjZXNzYXJpbHkgZXhpdCBmdWxseSB0byB0aGUgaG9zdCBrZXJuZWwsIGFuIElQSSB0bworICogYSBDUFUgdGhyZWFkIHRoYXQncyBydW5uaW5nL25hcHBpbmcgaW5zaWRlIG9mIGEgZ3Vlc3QgaXMgYnkgZGVmYXVsdCByZWdhcmRlZAorICogYXMgYSByZXF1ZXN0IHRvIHdha2UgdGhlIENQVSAoaWYgbmVlZGVkKSBhbmQgY29udGludWUgZXhlY3V0aW9uIHdpdGhpbiB0aGUKKyAqIGd1ZXN0LCBwb3RlbnRpYWxseSB0byBwcm9jZXNzIG5ldyBzdGF0ZSBsaWtlIGV4dGVybmFsbHktZ2VuZXJhdGVkCisgKiBpbnRlcnJ1cHRzIG9yIElQSXMgc2VudCBmcm9tIHdpdGhpbiB0aGUgZ3Vlc3QgaXRzZWxmIChlLmcuIEhfUFJPRC9IX0lQSSkuCisgKgorICogVG8gZm9yY2UgYW4gZXhpdCB0byB0aGUgaG9zdCBrZXJuZWwsIGt2bXBwY19zZXRfaG9zdF9pcGkoKSBtdXN0IGJlIGNhbGxlZAorICogcHJpb3IgdG8gaXNzdWluZyB0aGUgSVBJIHRvIHNldCB0aGUgY29ycmVzcG9uZGluZyAnaG9zdF9pcGknIGZsYWcgaW4gdGhlCisgKiB0YXJnZXQgQ1BVJ3MgUEFDQS4gVG8gYXZvaWQgdW5uZWNlc3NhcnkgZXhpdHMgdG8gdGhlIGhvc3QsIHRoaXMgZmxhZyBzaG91bGQKKyAqIGJlIGltbWVkaWF0ZWx5IGNsZWFyZWQgdmlhIGt2bXBwY19jbGVhcl9ob3N0X2lwaSgpIGJ5IHRoZSBJUEkgaGFuZGxlciBvbgorICogdGhlIHJlY2VpdmluZyBzaWRlIHByaW9yIHRvIHByb2Nlc3NpbmcgdGhlIElQSSB3b3JrLgorICoKKyAqIE5PVEU6CisgKgorICogV2UgY3VycmVudGx5IGlzc3VlIGFuIHNtcF9tYigpIGF0IHRoZSBiZWdpbm5pbmcgb2Yga3ZtcHBjX3NldF9ob3N0X2lwaSgpLgorICogVGhpcyBpcyB0byBndWFyZCBhZ2FpbnN0IHNlcXVlbmNlcyBzdWNoIGFzIHRoZSBmb2xsb3dpbmc6CisgKgorICogICAgICBDUFUKKyAqICAgICAgICBYOiBzbXBfbXV4ZWRfaXBpX3NldF9tZXNzYWdlKCk6CisgKiAgICAgICAgWDogICBzbXBfbWIoKQorICogICAgICAgIFg6ICAgbWVzc2FnZVtSRVNDSEVEVUxFXSA9IDEKKyAqICAgICAgICBYOiBkb29yYmVsbF9nbG9iYWxfaXBpKDQyKToKKyAqICAgICAgICBYOiAgIGt2bXBwY19zZXRfaG9zdF9pcGkoNDIpCisgKiAgICAgICAgWDogICBwcGNfbXNnc25kX3N5bmMoKS9zbXBfbWIoKQorICogICAgICAgIFg6ICAgcHBjX21zZ3NuZCgpIC0+IDQyCisgKiAgICAgICA0MjogZG9vcmJlbGxfZXhjZXB0aW9uKCk6IC8vIGZyb20gQ1BVIFgKKyAqICAgICAgIDQyOiAgIHBwY19tc2dzeW5jKCkKKyAqICAgICAgMTA1OiBzbXBfbXV4ZWRfaXBpX3NldF9tZXNzYWdlKCk6CisgKiAgICAgIDEwNTogICBzbWJfbWIoKQorICogICAgICAgICAgIC8vIFNUT1JFIERFRkVSUkVEIERVRSBUTyBSRS1PUkRFUklORworICogICAgLS0xMDU6ICAgbWVzc2FnZVtDQUxMX0ZVTkNUSU9OXSA9IDEKKyAqICAgIHwgMTA1OiBkb29yYmVsbF9nbG9iYWxfaXBpKDQyKToKKyAqICAgIHwgMTA1OiAgIGt2bXBwY19zZXRfaG9zdF9pcGkoNDIpCisgKiAgICB8ICA0MjogICBrdm1wcGNfY2xlYXJfaG9zdF9pcGkoNDIpCisgKiAgICB8ICA0Mjogc21wX2lwaV9kZW11eF9yZWxheGVkKCkKKyAqICAgIHwgIDQyOiAvLyByZXR1cm5zIHRvIGV4ZWN1dGluZyBndWVzdAorICogICAgfCAgICAgIC8vIFJFLU9SREVSRUQgU1RPUkUgQ09NUExFVEVTCisgKiAgICAtPjEwNTogICBtZXNzYWdlW0NBTExfRlVOQ1RJT05dID0gMQorICogICAgICAxMDU6ICAgcHBjX21zZ3NuZF9zeW5jKCkvc21wX21iKCkKKyAqICAgICAgMTA1OiAgIHBwY19tc2dzbmQoKSAtPiA0MgorICogICAgICAgNDI6IGxvY2FsX3BhY2EtPmt2bV9oc3RhdGUuaG9zdF9pcGkgPT0gMCAvLyBJUEkgaWdub3JlZAorICogICAgICAxMDU6IC8vIGhhbmdzIHdhaXRpbmcgb24gNDIgdG8gcHJvY2VzcyBtZXNzYWdlcy9jYWxsX3NpbmdsZV9xdWV1ZQorICoKKyAqIFdlIGFsc28gaXNzdWUgYW4gc21wX21iKCkgYXQgdGhlIGVuZCBvZiBrdm1wcGNfY2xlYXJfaG9zdF9pcGkoKS4gVGhpcyBpcworICogdG8gZ3VhcmQgYWdhaW5zdCBzZXF1ZW5jZXMgc3VjaCBhcyB0aGUgZm9sbG93aW5nIChhcyB3ZWxsIGFzIHRvIGNyZWF0ZQorICogYSByZWFkLXNpZGUgcGFpcmluZyB3aXRoIHRoZSBiYXJyaWVyIGluIGt2bXBwY19zZXRfaG9zdF9pcGkoKSk6CisgKgorICogICAgICBDUFUKKyAqICAgICAgICBYOiBzbXBfbXV4ZWRfaXBpX3NldF9tZXNzYWdlKCk6CisgKiAgICAgICAgWDogICBzbXBfbWIoKQorICogICAgICAgIFg6ICAgbWVzc2FnZVtSRVNDSEVEVUxFXSA9IDEKKyAqICAgICAgICBYOiBkb29yYmVsbF9nbG9iYWxfaXBpKDQyKToKKyAqICAgICAgICBYOiAgIGt2bXBwY19zZXRfaG9zdF9pcGkoNDIpCisgKiAgICAgICAgWDogICBwcGNfbXNnc25kX3N5bmMoKS9zbXBfbWIoKQorICogICAgICAgIFg6ICAgcHBjX21zZ3NuZCgpIC0+IDQyCisgKiAgICAgICA0MjogZG9vcmJlbGxfZXhjZXB0aW9uKCk6IC8vIGZyb20gQ1BVIFgKKyAqICAgICAgIDQyOiAgIHBwY19tc2dzeW5jKCkKKyAqICAgICAgICAgICAvLyBTVE9SRSBERUZFUlJFRCBEVUUgVE8gUkUtT1JERVJJTkcKKyAqICAgIC0tIDQyOiAgIGt2bXBwY19jbGVhcl9ob3N0X2lwaSg0MikKKyAqICAgIHwgIDQyOiBzbXBfaXBpX2RlbXV4X3JlbGF4ZWQoKQorICogICAgfCAxMDU6IHNtcF9tdXhlZF9pcGlfc2V0X21lc3NhZ2UoKToKKyAqICAgIHwgMTA1OiAgIHNtYl9tYigpCisgKiAgICB8IDEwNTogICBtZXNzYWdlW0NBTExfRlVOQ1RJT05dID0gMQorICogICAgfCAxMDU6IGRvb3JiZWxsX2dsb2JhbF9pcGkoNDIpOgorICogICAgfCAxMDU6ICAga3ZtcHBjX3NldF9ob3N0X2lwaSg0MikKKyAqICAgIHwgICAgICAvLyBSRS1PUkRFUkVEIFNUT1JFIENPTVBMRVRFUworICogICAgLT4gNDI6ICAga3ZtcHBjX2NsZWFyX2hvc3RfaXBpKDQyKQorICogICAgICAgNDI6IC8vIHJldHVybnMgdG8gZXhlY3V0aW5nIGd1ZXN0CisgKiAgICAgIDEwNTogICBwcGNfbXNnc25kX3N5bmMoKS9zbXBfbWIoKQorICogICAgICAxMDU6ICAgcHBjX21zZ3NuZCgpIC0+IDQyCisgKiAgICAgICA0MjogbG9jYWxfcGFjYS0+a3ZtX2hzdGF0ZS5ob3N0X2lwaSA9PSAwIC8vIElQSSBpZ25vcmVkCisgKiAgICAgIDEwNTogLy8gaGFuZ3Mgd2FpdGluZyBvbiA0MiB0byBwcm9jZXNzIG1lc3NhZ2VzL2NhbGxfc2luZ2xlX3F1ZXVlCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBrdm1wcGNfc2V0X2hvc3RfaXBpKGludCBjcHUpCiB7Ci0JcGFjYV9wdHJzW2NwdV0tPmt2bV9oc3RhdGUuaG9zdF9pcGkgPSBob3N0X2lwaTsKKwkvKgorCSAqIG9yZGVyIHN0b3JlcyBvZiBJUEkgbWVzc2FnZXMgdnMuIHNldHRpbmcgb2YgaG9zdF9pcGkgZmxhZworCSAqCisJICogcGFpcnMgd2l0aCB0aGUgYmFycmllciBpbiBrdm1wcGNfY2xlYXJfaG9zdF9pcGkoKQorCSAqLworCXNtcF9tYigpOworCXBhY2FfcHRyc1tjcHVdLT5rdm1faHN0YXRlLmhvc3RfaXBpID0gMTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGt2bXBwY19jbGVhcl9ob3N0X2lwaShpbnQgY3B1KQoreworCXBhY2FfcHRyc1tjcHVdLT5rdm1faHN0YXRlLmhvc3RfaXBpID0gMDsKKwkvKgorCSAqIG9yZGVyIGNsZWFyaW5nIG9mIGhvc3RfaXBpIGZsYWcgdnMuIHByb2Nlc3Npbmcgb2YgSVBJIG1lc3NhZ2VzCisJICoKKwkgKiBwYWlycyB3aXRoIHRoZSBiYXJyaWVyIGluIGt2bXBwY19zZXRfaG9zdF9pcGkoKQorCSAqLworCXNtcF9tYigpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQga3ZtcHBjX2Zhc3RfdmNwdV9raWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKQEAgLTQ4Niw3ICs1NzcsMTAgQEAgc3RhdGljIGlubGluZSB1MzIga3ZtcHBjX2dldF94aWNzX2xhdGNoKHZvaWQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBrdm1wcGNfc2V0X2hvc3RfaXBpKGludCBjcHUsIHU4IGhvc3RfaXBpKQorc3RhdGljIGlubGluZSB2b2lkIGt2bXBwY19zZXRfaG9zdF9pcGkoaW50IGNwdSkKK3t9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBrdm1wcGNfY2xlYXJfaG9zdF9pcGkoaW50IGNwdSkKIHt9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBrdm1wcGNfZmFzdF92Y3B1X2tpY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL21hY2hkZXAuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9tYWNoZGVwLmgKaW5kZXggYzQzZDZlYy4uN2JjYjY0NCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL21hY2hkZXAuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vbWFjaGRlcC5oCkBAIC0zLDkgKzMsNiBAQAogI2RlZmluZSBfQVNNX1BPV0VSUENfTUFDSERFUF9ICiAjaWZkZWYgX19LRVJORUxfXwogCi0vKgotICovCi0KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgpAQCAtMzEsMTAgKzI4LDYgQEAgc3RydWN0IHBjaV9ob3N0X2JyaWRnZTsKIHN0cnVjdCBtYWNoZGVwX2NhbGxzIHsKIAljaGFyCQkqbmFtZTsKICNpZmRlZiBDT05GSUdfUFBDNjQKLQl2b2lkIF9faW9tZW0gKgkoKmlvcmVtYXApKHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCQkgICBwZ3Byb3RfdCBwcm90LCB2b2lkICpjYWxsZXIpOwotCXZvaWQJCSgqaW91bm1hcCkodm9sYXRpbGUgdm9pZCBfX2lvbWVtICp0b2tlbik7Ci0KICNpZmRlZiBDT05GSUdfUE0KIAl2b2lkCQkoKmlvbW11X3NhdmUpKHZvaWQpOwogCXZvaWQJCSgqaW9tbXVfcmVzdG9yZSkodm9pZCk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vbWNlLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vbWNlLmgKaW5kZXggYTRjNmE3NC4uNmE2ZGRhYSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL21jZS5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9tY2UuaApAQCAtMzAsNiArMzAsMTAgQEAgZW51bSBNQ0VfRGlzcG9zaXRpb24gewogZW51bSBNQ0VfSW5pdGlhdG9yIHsKIAlNQ0VfSU5JVElBVE9SX1VOS05PV04gPSAwLAogCU1DRV9JTklUSUFUT1JfQ1BVID0gMSwKKwlNQ0VfSU5JVElBVE9SX1BDSSA9IDIsCisJTUNFX0lOSVRJQVRPUl9JU0EgPSAzLAorCU1DRV9JTklUSUFUT1JfTUVNT1JZPSA0LAorCU1DRV9JTklUSUFUT1JfUE9XRVJNR00gPSA1LAogfTsKIAogZW51bSBNQ0VfRXJyb3JUeXBlIHsKQEAgLTQxLDYgKzQ1LDggQEAgZW51bSBNQ0VfRXJyb3JUeXBlIHsKIAlNQ0VfRVJST1JfVFlQRV9VU0VSID0gNSwKIAlNQ0VfRVJST1JfVFlQRV9SQSA9IDYsCiAJTUNFX0VSUk9SX1RZUEVfTElOSyA9IDcsCisJTUNFX0VSUk9SX1RZUEVfRENBQ0hFID0gOCwKKwlNQ0VfRVJST1JfVFlQRV9JQ0FDSEUgPSA5LAogfTsKIAogZW51bSBNQ0VfRXJyb3JDbGFzcyB7CkBAIC0xMjIsNyArMTI4LDggQEAgc3RydWN0IG1hY2hpbmVfY2hlY2tfZXZlbnQgewogCQkJZW51bSBNQ0VfVWVFcnJvclR5cGUgdWVfZXJyb3JfdHlwZTo4OwogCQkJdTgJCWVmZmVjdGl2ZV9hZGRyZXNzX3Byb3ZpZGVkOwogCQkJdTgJCXBoeXNpY2FsX2FkZHJlc3NfcHJvdmlkZWQ7Ci0JCQl1OAkJcmVzZXJ2ZWRfMVs1XTsKKwkJCXU4CQlpZ25vcmVfZXZlbnQ7CisJCQl1OAkJcmVzZXJ2ZWRfMVs0XTsKIAkJCXU2NAkJZWZmZWN0aXZlX2FkZHJlc3M7CiAJCQl1NjQJCXBoeXNpY2FsX2FkZHJlc3M7CiAJCQl1OAkJcmVzZXJ2ZWRfMls4XTsKQEAgLTE5Myw2ICsyMDAsNyBAQCBzdHJ1Y3QgbWNlX2Vycm9yX2luZm8gewogCWVudW0gTUNFX0luaXRpYXRvcglpbml0aWF0b3I6ODsKIAllbnVtIE1DRV9FcnJvckNsYXNzCWVycm9yX2NsYXNzOjg7CiAJYm9vbAkJCXN5bmNfZXJyb3I7CisJYm9vbAkJCWlnbm9yZV9ldmVudDsKIH07CiAKICNkZWZpbmUgTUFYX01DX0VWVAkxMDAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE5ZGFiMAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqLworLyoKKyAqIFNWTSBoZWxwZXIgZnVuY3Rpb25zCisgKgorICogQ29weXJpZ2h0IDIwMTggSUJNIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfQVNNX1BPV0VSUENfTUVNX0VOQ1JZUFRfSAorI2RlZmluZSBfQVNNX1BPV0VSUENfTUVNX0VOQ1JZUFRfSAorCisjaW5jbHVkZSA8YXNtL3N2bS5oPgorCitzdGF0aWMgaW5saW5lIGJvb2wgbWVtX2VuY3J5cHRfYWN0aXZlKHZvaWQpCit7CisJcmV0dXJuIGlzX3NlY3VyZV9ndWVzdCgpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgZm9yY2VfZG1hX3VuZW5jcnlwdGVkKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gaXNfc2VjdXJlX2d1ZXN0KCk7Cit9CisKK2ludCBzZXRfbWVtb3J5X2VuY3J5cHRlZCh1bnNpZ25lZCBsb25nIGFkZHIsIGludCBudW1wYWdlcyk7CitpbnQgc2V0X21lbW9yeV9kZWNyeXB0ZWQodW5zaWduZWQgbG9uZyBhZGRyLCBpbnQgbnVtcGFnZXMpOworCisjZW5kaWYgLyogX0FTTV9QT1dFUlBDX01FTV9FTkNSWVBUX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9tbXUuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9tbXUuaAppbmRleCBiYTk0Y2U4Li4wNjk5Y2ZlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vbW11LmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL21tdS5oCkBAIC0yNTcsNyArMjU3LDcgQEAgZXh0ZXJuIHZvaWQgcmFkaXhfX21tdV9jbGVhbnVwX2FsbCh2b2lkKTsKIC8qIEZ1bmN0aW9ucyBmb3IgY3JlYXRpbmcgYW5kIHVwZGF0aW5nIHBhcnRpdGlvbiB0YWJsZSBvbiBQT1dFUjkgKi8KIGV4dGVybiB2b2lkIG1tdV9wYXJ0aXRpb25fdGFibGVfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIG1tdV9wYXJ0aXRpb25fdGFibGVfc2V0X2VudHJ5KHVuc2lnbmVkIGludCBscGlkLCB1bnNpZ25lZCBsb25nIGR3MCwKLQkJCQkJICB1bnNpZ25lZCBsb25nIGR3MSk7CisJCQkJCSAgdW5zaWduZWQgbG9uZyBkdzEsIGJvb2wgZmx1c2gpOwogI2VuZGlmIC8qIENPTkZJR19QUEM2NCAqLwogCiBzdHJ1Y3QgbW1fc3RydWN0OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL25vaGFzaC8zMi9wZ3RhYmxlLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vbm9oYXNoLzMyL3BndGFibGUuaAppbmRleCAwMjg0ZjhmLi41NTJiOTZlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vbm9oYXNoLzMyL3BndGFibGUuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vbm9oYXNoLzMyL3BndGFibGUuaApAQCAtMTEsOCArMTEsNiBAQAogI2luY2x1ZGUgPGFzbS9tbXUuaD4JCQkvKiBGb3Igc3ViLWFyY2ggc3BlY2lmaWMgUFBDX1BJTl9TSVpFICovCiAjaW5jbHVkZSA8YXNtL2FzbS00MDUuaD4KIAotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW9yZW1hcF9ib3Q7Ci0KICNpZmRlZiBDT05GSUdfNDR4CiBleHRlcm4gaW50IGljYWNoZV80NHhfbmVlZF9mbHVzaDsKICNlbmRpZgpAQCAtNzgsMjMgKzc2LDIxIEBAIGludCBtYXBfa2VybmVsX3BhZ2UodW5zaWduZWQgbG9uZyB2YSwgcGh5c19hZGRyX3QgcGEsIHBncHJvdF90IHByb3QpOwogICovCiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgogCi0jaWZkZWYgQ09ORklHX0hJR0hNRU0KLSNkZWZpbmUgS1ZJUlRfVE9QCVBLTUFQX0JBU0UKLSNlbHNlCi0jZGVmaW5lIEtWSVJUX1RPUAlGSVhBRERSX1NUQVJUCi0jZW5kaWYKLQogLyoKICAqIGlvcmVtYXBfYm90IHN0YXJ0cyBhdCB0aGF0IGFkZHJlc3MuIEVhcmx5IGlvcmVtYXBzIG1vdmUgZG93biBmcm9tIHRoZXJlLAogICogdW50aWwgbWVtX2luaXQoKSBhdCB3aGljaCBwb2ludCB0aGlzIGJlY29tZXMgdGhlIHRvcCBvZiB0aGUgdm1hbGxvYwogICogYW5kIGlvcmVtYXAgc3BhY2UKICAqLwotI2lmZGVmIENPTkZJR19OT1RfQ09IRVJFTlRfQ0FDSEUKLSNkZWZpbmUgSU9SRU1BUF9UT1AJKChLVklSVF9UT1AgLSBDT05GSUdfQ09OU0lTVEVOVF9TSVpFKSAmIFBBR0VfTUFTSykKKyNpZmRlZiBDT05GSUdfSElHSE1FTQorI2RlZmluZSBJT1JFTUFQX1RPUAlQS01BUF9CQVNFCiAjZWxzZQotI2RlZmluZSBJT1JFTUFQX1RPUAlLVklSVF9UT1AKKyNkZWZpbmUgSU9SRU1BUF9UT1AJRklYQUREUl9TVEFSVAogI2VuZGlmCiAKKy8qIFBQQzMyIHNoYXJlcyB2bWFsbG9jIGFyZWEgd2l0aCBpb3JlbWFwICovCisjZGVmaW5lIElPUkVNQVBfU1RBUlQJVk1BTExPQ19TVEFSVAorI2RlZmluZSBJT1JFTUFQX0VORAlWTUFMTE9DX0VORAorCiAvKgogICogSnVzdCBhbnkgYXJiaXRyYXJ5IG9mZnNldCB0byB0aGUgc3RhcnQgb2YgdGhlIHZtYWxsb2MgVk0gYXJlYTogdGhlCiAgKiBjdXJyZW50IDE2TUIgdmFsdWUganVzdCBtZWFucyB0aGF0IHRoZXJlIHdpbGwgYmUgYSA2NE1CICJob2xlIiBhZnRlciB0aGUKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ub2hhc2gvNjQvcGd0YWJsZS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL25vaGFzaC82NC9wZ3RhYmxlLmgKaW5kZXggYjlmNjZjZi4uOWEzM2I4YiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL25vaGFzaC82NC9wZ3RhYmxlLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL25vaGFzaC82NC9wZ3RhYmxlLmgKQEAgLTUzLDYgKzUzLDcgQEAKICNkZWZpbmUgIFBIQl9JT19CQVNFCShJU0FfSU9fRU5EKQogI2RlZmluZSAgUEhCX0lPX0VORAkoS0VSTl9JT19TVEFSVCArIEZVTExfSU9fU0laRSkKICNkZWZpbmUgSU9SRU1BUF9CQVNFCShQSEJfSU9fRU5EKQorI2RlZmluZSBJT1JFTUFQX1NUQVJUCShpb3JlbWFwX2JvdCkKICNkZWZpbmUgSU9SRU1BUF9FTkQJKEtFUk5fVklSVF9TVEFSVCArIEtFUk5fVklSVF9TSVpFKQogCiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9ub2hhc2gvcGd0YWJsZS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL25vaGFzaC9wZ3RhYmxlLmgKaW5kZXggMWNhMWMxOC4uN2ZlZDlkYyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL25vaGFzaC9wZ3RhYmxlLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL25vaGFzaC9wZ3RhYmxlLmgKQEAgLTI5Myw1ICsyOTMsMTggQEAgc3RhdGljIGlubGluZSBpbnQgcGdkX2h1Z2UocGdkX3QgcGdkKQogI2RlZmluZSBpc19odWdlcGQoaHBkKQkJKGh1Z2VwZF9vayhocGQpKQogI2VuZGlmCiAKKy8qCisgKiBUaGlzIGdldHMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgaGFuZGxpbmcgYSBwYWdlIGZhdWx0LCB3aGVuCisgKiB0aGUga2VybmVsIGhhcyBwdXQgYSBuZXcgUFRFIGludG8gdGhlIHBhZ2UgdGFibGUgZm9yIHRoZSBwcm9jZXNzLgorICogV2UgdXNlIGl0IHRvIGVuc3VyZSBjb2hlcmVuY3kgYmV0d2VlbiB0aGUgaS1jYWNoZSBhbmQgZC1jYWNoZQorICogZm9yIHRoZSBwYWdlIHdoaWNoIGhhcyBqdXN0IGJlZW4gbWFwcGVkIGluLgorICovCisjaWYgZGVmaW5lZChDT05GSUdfUFBDX0ZTTF9CT09LM0UpICYmIGRlZmluZWQoQ09ORklHX0hVR0VUTEJfUEFHRSkKK3ZvaWQgdXBkYXRlX21tdV9jYWNoZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCBwdGVfdCAqcHRlcCk7CisjZWxzZQorc3RhdGljIGlubGluZQordm9pZCB1cGRhdGVfbW11X2NhY2hlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90ICpwdGVwKSB7fQorI2VuZGlmCisKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL29wYWwtYXBpLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vb3BhbC1hcGkuaAppbmRleCAzODMyNDJlLi4zNzhlMzk5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vb3BhbC1hcGkuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vb3BhbC1hcGkuaApAQCAtMjA4LDcgKzIwOCwxMCBAQAogI2RlZmluZSBPUEFMX0hBTkRMRV9ITUkyCQkJMTY2CiAjZGVmaW5lCU9QQUxfTlhfQ09QUk9DX0lOSVQJCQkxNjcKICNkZWZpbmUgT1BBTF9YSVZFX0dFVF9WUF9TVEFURQkJCTE3MAotI2RlZmluZSBPUEFMX0xBU1QJCQkJMTcwCisjZGVmaW5lIE9QQUxfTVBJUExfVVBEQVRFCQkJMTczCisjZGVmaW5lIE9QQUxfTVBJUExfUkVHSVNURVJfVEFHCQkJMTc0CisjZGVmaW5lIE9QQUxfTVBJUExfUVVFUllfVEFHCQkJMTc1CisjZGVmaW5lIE9QQUxfTEFTVAkJCQkxNzUKIAogI2RlZmluZSBRVUlFU0NFX0hPTEQJCQkxIC8qIFNwaW4gYWxsIGNhbGxzIGF0IGVudHJ5ICovCiAjZGVmaW5lIFFVSUVTQ0VfUkVKRUNUCQkJMiAvKiBGYWlsIGFsbCBjYWxscyB3aXRoIE9QQUxfQlVTWSAqLwpAQCAtNDUzLDYgKzQ1Niw3IEBAIGVudW0gb3BhbF9tc2dfdHlwZSB7CiAJT1BBTF9NU0dfRFBPCQk9IDUsCiAJT1BBTF9NU0dfUFJECQk9IDYsCiAJT1BBTF9NU0dfT0NDCQk9IDcsCisJT1BBTF9NU0dfUFJEMgkJPSA4LAogCU9QQUxfTVNHX1RZUEVfTUFYLAogfTsKIApAQCAtMTA1OSw2ICsxMDYzLDcgQEAgZW51bSB7CiAJT1BBTF9SRUJPT1RfTk9STUFMCQk9IDAsCiAJT1BBTF9SRUJPT1RfUExBVEZPUk1fRVJST1IJPSAxLAogCU9QQUxfUkVCT09UX0ZVTExfSVBMCQk9IDIsCisJT1BBTF9SRUJPT1RfTVBJUEwJCT0gMywKIH07CiAKIC8qIEFyZ3VtZW50IHRvIE9QQUxfUENJX1RDRV9LSUxMICovCkBAIC0xMTM1LDYgKzExNDAsNDQgQEAgZW51bSB7CiAjZGVmaW5lIE9QQUxfUENJX1AyUF9MT0FECQkweDIKICNkZWZpbmUgT1BBTF9QQ0lfUDJQX1NUT1JFCQkweDQKIAorLyogTVBJUEwgdXBkYXRlIG9wZXJhdGlvbnMgKi8KK2VudW0gb3BhbF9tcGlwbF9vcHMgeworCU9QQUxfTVBJUExfQUREX1JBTkdFCQkJPSAwLAorCU9QQUxfTVBJUExfUkVNT1ZFX1JBTkdFCQkJPSAxLAorCU9QQUxfTVBJUExfUkVNT1ZFX0FMTAkJCT0gMiwKKwlPUEFMX01QSVBMX0ZSRUVfUFJFU0VSVkVEX01FTU9SWQk9IDMsCit9OworCisvKiBUYWcgd2lsbCBwb2ludCB0byB2YXJpb3VzIG1ldGFkYXRhIGFyZWEuIEtlcm5lbCB3aWxsCisgKiB1c2UgdGFnIHRvIGdldCBtZXRhZGF0YSB2YWx1ZS4KKyAqLworZW51bSBvcGFsX21waXBsX3RhZ3MgeworCU9QQUxfTVBJUExfVEFHX0NQVQk9IDAsCisJT1BBTF9NUElQTF9UQUdfT1BBTAk9IDEsCisJT1BBTF9NUElQTF9UQUdfS0VSTkVMCT0gMiwKKwlPUEFMX01QSVBMX1RBR19CT09UX01FTQk9IDMsCit9OworCisvKiBQcmVzZXJ2ZWQgbWVtb3J5IGRldGFpbHMgKi8KK3N0cnVjdCBvcGFsX21waXBsX3JlZ2lvbiB7CisJX19iZTY0CXNyYzsKKwlfX2JlNjQJZGVzdDsKKwlfX2JlNjQJc2l6ZTsKK307CisKKy8qIFN0cnVjdHVyZSB2ZXJzaW9uICovCisjZGVmaW5lIE9QQUxfTVBJUExfVkVSU0lPTgkJMHgwMQorCitzdHJ1Y3Qgb3BhbF9tcGlwbF9mYWR1bXAgeworCXU4CXZlcnNpb247CisJdTgJcmVzZXJ2ZWRbN107CisJX19iZTMyCWNyYXNoaW5nX3BpcjsJLyogT1BBTCBjcmFzaGluZyBDUFUgUElSICovCisJX19iZTMyCWNwdV9kYXRhX3ZlcnNpb247CisJX19iZTMyCWNwdV9kYXRhX3NpemU7CisJX19iZTMyCXJlZ2lvbl9jbnQ7CisJc3RydWN0CW9wYWxfbXBpcGxfcmVnaW9uIHJlZ2lvbltdOworfSBfX3BhY2tlZDsKKwogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwogCiAjZW5kaWYgLyogX19PUEFMX0FQSV9IICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vb3BhbC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL29wYWwuaAppbmRleCA1N2JkMDI5Li5hMGNmOGZiIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vb3BhbC5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9vcGFsLmgKQEAgLTM5LDYgKzM5LDcgQEAgaW50NjRfdCBvcGFsX25wdV9zcGFfY2xlYXJfY2FjaGUodWludDY0X3QgcGhiX2lkLCB1aW50MzJfdCBiZGZuLAogCQkJCXVpbnQ2NF90IFBFX2hhbmRsZSk7CiBpbnQ2NF90IG9wYWxfbnB1X3RsX3NldCh1aW50NjRfdCBwaGJfaWQsIHVpbnQzMl90IGJkZm4sIGxvbmcgY2FwLAogCQkJdWludDY0X3QgcmF0ZV9waHlzLCB1aW50MzJfdCBzaXplKTsKKwogaW50NjRfdCBvcGFsX2NvbnNvbGVfd3JpdGUoaW50NjRfdCB0ZXJtX251bWJlciwgX19iZTY0ICpsZW5ndGgsCiAJCQkgICBjb25zdCB1aW50OF90ICpidWZmZXIpOwogaW50NjRfdCBvcGFsX2NvbnNvbGVfcmVhZChpbnQ2NF90IHRlcm1fbnVtYmVyLCBfX2JlNjQgKmxlbmd0aCwKQEAgLTI3Miw3ICsyNzMsNyBAQCBpbnQ2NF90IG9wYWxfeGl2ZV9nZXRfdnBfaW5mbyh1aW50NjRfdCB2cCwKIGludDY0X3Qgb3BhbF94aXZlX3NldF92cF9pbmZvKHVpbnQ2NF90IHZwLAogCQkJICAgICAgdWludDY0X3QgZmxhZ3MsCiAJCQkgICAgICB1aW50NjRfdCByZXBvcnRfY2xfcGFpcik7Ci1pbnQ2NF90IG9wYWxfeGl2ZV9hbGxvY2F0ZV9pcnEodWludDMyX3QgY2hpcF9pZCk7CitpbnQ2NF90IG9wYWxfeGl2ZV9hbGxvY2F0ZV9pcnFfcmF3KHVpbnQzMl90IGNoaXBfaWQpOwogaW50NjRfdCBvcGFsX3hpdmVfZnJlZV9pcnEodWludDMyX3QgZ2lycSk7CiBpbnQ2NF90IG9wYWxfeGl2ZV9zeW5jKHVpbnQzMl90IHR5cGUsIHVpbnQzMl90IGlkKTsKIGludDY0X3Qgb3BhbF94aXZlX2R1bXAodWludDMyX3QgdHlwZSwgdWludDMyX3QgaWQpOwpAQCAtMjk3LDYgKzI5OCwxMCBAQCBpbnQgb3BhbF9zZW5zb3JfZ3JvdXBfY2xlYXIodTMyIGdyb3VwX2huZGwsIGludCB0b2tlbik7CiBpbnQgb3BhbF9zZW5zb3JfZ3JvdXBfZW5hYmxlKHUzMiBncm91cF9obmRsLCBpbnQgdG9rZW4sIGJvb2wgZW5hYmxlKTsKIGludCBvcGFsX254X2NvcHJvY19pbml0KHVpbnQzMl90IGNoaXBfaWQsIHVpbnQzMl90IGN0KTsKIAorczY0IG9wYWxfbXBpcGxfdXBkYXRlKGVudW0gb3BhbF9tcGlwbF9vcHMgb3AsIHU2NCBzcmMsIHU2NCBkZXN0LCB1NjQgc2l6ZSk7CitzNjQgb3BhbF9tcGlwbF9yZWdpc3Rlcl90YWcoZW51bSBvcGFsX21waXBsX3RhZ3MgdGFnLCB1NjQgYWRkcik7CitzNjQgb3BhbF9tcGlwbF9xdWVyeV90YWcoZW51bSBvcGFsX21waXBsX3RhZ3MgdGFnLCB1NjQgKmFkZHIpOworCiBzNjQgb3BhbF9zaWduYWxfc3lzdGVtX3Jlc2V0KHMzMiBjcHUpOwogczY0IG9wYWxfcXVpZXNjZSh1NjQgc2h1dGRvd25fdHlwZSwgczMyIGNwdSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wYWdlLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGFnZS5oCmluZGV4IDBkNTJmNTcuLmM4YmIxNGYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wYWdlLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BhZ2UuaApAQCAtMjE1LDkgKzIxNSwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGZuX3ZhbGlkKHVuc2lnbmVkIGxvbmcgcGZuKQogLyoKICAqIGdjYyBtaXNjb21waWxlcyAodW5zaWduZWQgbG9uZykoJnN0YXRpY192YXIpIC0gUEFHRV9PRkZTRVQKICAqIHdpdGggLW1jbW9kZWw9bWVkaXVtLCBzbyB3ZSB1c2UgJiBhbmQgfCBpbnN0ZWFkIG9mIC0gYW5kICsgb24gNjQtYml0LgorICogVGhpcyBhbHNvIHJlc3VsdHMgaW4gYmV0dGVyIGNvZGUgZ2VuZXJhdGlvbi4KICAqLwotI2RlZmluZSBfX3ZhKHgpICgodm9pZCAqKSh1bnNpZ25lZCBsb25nKSgocGh5c19hZGRyX3QpKHgpIHwgUEFHRV9PRkZTRVQpKQotI2RlZmluZSBfX3BhKHgpICgodW5zaWduZWQgbG9uZykoeCkgJiAweDBmZmZmZmZmZmZmZmZmZmZVTCkKKyNkZWZpbmUgX192YSh4KQkJCQkJCQkJXAorKHsJCQkJCQkJCQlcCisJVklSVFVBTF9CVUdfT04oKHVuc2lnbmVkIGxvbmcpKHgpID49IFBBR0VfT0ZGU0VUKTsJCVwKKwkodm9pZCAqKSh1bnNpZ25lZCBsb25nKSgocGh5c19hZGRyX3QpKHgpIHwgUEFHRV9PRkZTRVQpOwlcCit9KQorCisjZGVmaW5lIF9fcGEoeCkJCQkJCQkJCVwKKyh7CQkJCQkJCQkJXAorCVZJUlRVQUxfQlVHX09OKCh1bnNpZ25lZCBsb25nKSh4KSA8IFBBR0VfT0ZGU0VUKTsJCVwKKwkodW5zaWduZWQgbG9uZykoeCkgJiAweDBmZmZmZmZmZmZmZmZmZmZVTDsJCQlcCit9KQogCiAjZWxzZSAvKiAzMi1iaXQsIG5vbiBib29rIEUgKi8KICNkZWZpbmUgX192YSh4KSAoKHZvaWQgKikodW5zaWduZWQgbG9uZykoKHBoeXNfYWRkcl90KSh4KSArIFBBR0VfT0ZGU0VUIC0gTUVNT1JZX1NUQVJUKSkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wYWdlXzMyLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGFnZV8zMi5oCmluZGV4IDY4M2RmYmMuLmQ2NGRmZTMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wYWdlXzMyLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BhZ2VfMzIuaApAQCAtNDAsNiArNDAsOCBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBwdGVfYmFzaWNfdDsKIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwdGVfYmFzaWNfdDsKICNlbmRpZgogCisjaW5jbHVkZSA8YXNtL2J1Zy5oPgorCiAvKgogICogQ2xlYXIgcGFnZSB1c2luZyB0aGUgZGNieiBpbnN0cnVjdGlvbiwgd2hpY2ggZG9lc24ndCBjYXVzZSBhbnkKICAqIG1lbW9yeSB0cmFmZmljIChleGNlcHQgdG8gd3JpdGUgb3V0IGFueSBjYWNoZSBsaW5lcyB3aGljaCBnZXQKQEAgLTQ5LDYgKzUxLDggQEAgc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX3BhZ2Uodm9pZCAqYWRkcikKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIAorCVdBUk5fT04oKHVuc2lnbmVkIGxvbmcpYWRkciAmIChMMV9DQUNIRV9CWVRFUyAtIDEpKTsKKwogCWZvciAoaSA9IDA7IGkgPCBQQUdFX1NJWkUgLyBMMV9DQUNIRV9CWVRFUzsgaSsrLCBhZGRyICs9IEwxX0NBQ0hFX0JZVEVTKQogCQlkY2J6KGFkZHIpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmgKaW5kZXggOGRhZDFmZC4uZWE2ZWM2NSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGNpLWJyaWRnZS5oCkBAIC0xODMsNiArMTgzLDcgQEAgc3RydWN0IGlvbW11X3RhYmxlOwogc3RydWN0IHBjaV9kbiB7CiAJaW50ICAgICBmbGFnczsKICNkZWZpbmUgUENJX0ROX0ZMQUdfSU9WX1ZGCTB4MDEKKyNkZWZpbmUgUENJX0ROX0ZMQUdfREVBRAkweDAyICAgIC8qIERldmljZSBoYXMgYmVlbiBob3QtcmVtb3ZlZCAqLwogCiAJaW50CWJ1c25vOwkJCS8qIHBjaSBidXMgbnVtYmVyICovCiAJaW50CWRldmZuOwkJCS8qIHBjaSBkZXZpY2UgYW5kIGZ1bmN0aW9uIG51bWJlciAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS5oCmluZGV4IDIzNzJkMzUuLjMyNzU2N2IgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wY2kuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGNpLmgKQEAgLTExMiw4ICsxMTIsNiBAQCBleHRlcm4gcGdwcm90X3QJcGNpX3BoeXNfbWVtX2FjY2Vzc19wcm90KHN0cnVjdCBmaWxlICpmaWxlLAogCQkJCQkgdW5zaWduZWQgbG9uZyBzaXplLAogCQkJCQkgcGdwcm90X3QgcHJvdCk7CiAKLSNkZWZpbmUgSEFWRV9BUkNIX1BDSV9SRVNPVVJDRV9UT19VU0VSCi0KIGV4dGVybiByZXNvdXJjZV9zaXplX3QgcGNpYmlvc19pb19zcGFjZV9vZmZzZXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIGV4dGVybiB2b2lkIHBjaWJpb3Nfc2V0dXBfYnVzX2RldmljZXMoc3RydWN0IHBjaV9idXMgKmJ1cyk7CiBleHRlcm4gdm9pZCBwY2liaW9zX3NldHVwX2J1c19zZWxmKHN0cnVjdCBwY2lfYnVzICpidXMpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKaW5kZXggMmIyYzYwYS4uNmRkNzhhMiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BnYWxsb2MuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGdhbGxvYy5oCkBAIC02NCw4ICs2NCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGd0YWJsZV90IHB0ZXBhZ2UpCiBleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKnBndGFibGVfY2FjaGVbXTsKICNkZWZpbmUgUEdUX0NBQ0hFKHNoaWZ0KSBwZ3RhYmxlX2NhY2hlW3NoaWZ0XQogCi1zdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tfcGd0X2NhY2hlKHZvaWQpIHsgfQotCiAjaWZkZWYgQ09ORklHX1BQQ19CT09LM1MKICNpbmNsdWRlIDxhc20vYm9vazNzL3BnYWxsb2MuaD4KICNlbHNlCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BndGFibGUuaAppbmRleCBjNThiYTc5Li40MDUzYjJhIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGd0YWJsZS5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTY4LDYgKzY4LDggQEAgZXh0ZXJuIHBnZF90IHN3YXBwZXJfcGdfZGlyW107CiAKIGV4dGVybiB2b2lkIHBhZ2luZ19pbml0KHZvaWQpOwogCitleHRlcm4gdW5zaWduZWQgbG9uZyBpb3JlbWFwX2JvdDsKKwogLyoKICAqIGtlcm5fYWRkcl92YWxpZCBpcyBpbnRlbmRlZCB0byBpbmRpY2F0ZSB3aGV0aGVyIGFuIGFkZHJlc3MgaXMgYSB2YWxpZAogICoga2VybmVsIGFkZHJlc3MuICBNb3N0IDMyLWJpdCBhcmNocyBkZWZpbmUgaXQgYXMgYWx3YXlzIHRydWUgKGxpa2UgdGhpcykKQEAgLTc3LDE4ICs3OSw2IEBAIGV4dGVybiB2b2lkIHBhZ2luZ19pbml0KHZvaWQpOwogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGd0YWJsZS5oPgogCi0KLS8qCi0gKiBUaGlzIGdldHMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgaGFuZGxpbmcgYSBwYWdlIGZhdWx0LCB3aGVuCi0gKiB0aGUga2VybmVsIGhhcyBwdXQgYSBuZXcgUFRFIGludG8gdGhlIHBhZ2UgdGFibGUgZm9yIHRoZSBwcm9jZXNzLgotICogV2UgdXNlIGl0IHRvIGVuc3VyZSBjb2hlcmVuY3kgYmV0d2VlbiB0aGUgaS1jYWNoZSBhbmQgZC1jYWNoZQotICogZm9yIHRoZSBwYWdlIHdoaWNoIGhhcyBqdXN0IGJlZW4gbWFwcGVkIGluLgotICogT24gbWFjaGluZXMgd2hpY2ggdXNlIGFuIE1NVSBoYXNoIHRhYmxlLCB3ZSB1c2UgdGhpcyB0byBwdXQgYQotICogY29ycmVzcG9uZGluZyBIUFRFIGludG8gdGhlIGhhc2ggdGFibGUgYWhlYWQgb2YgdGltZSwgaW5zdGVhZCBvZgotICogd2FpdGluZyBmb3IgdGhlIGluZXZpdGFibGUgZXh0cmEgaGFzaC10YWJsZSBtaXNzIGV4Y2VwdGlvbi4KLSAqLwotZXh0ZXJuIHZvaWQgdXBkYXRlX21tdV9jYWNoZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiwgdW5zaWduZWQgbG9uZywgcHRlX3QgKik7Ci0KICNpZm5kZWYgQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFCiAjZGVmaW5lIHBtZF9sYXJnZShwbWQpCQkwCiAjZW5kaWYKQEAgLTk3LDcgKzg3LDYgQEAgZXh0ZXJuIHZvaWQgdXBkYXRlX21tdV9jYWNoZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiwgdW5zaWduZWQgbG9uZywgcHRlX3QgKik7CiB1bnNpZ25lZCBsb25nIHZtYWxsb2NfdG9fcGh5cyh2b2lkICp2bWFsbG9jX2FkZHIpOwogCiB2b2lkIHBndGFibGVfY2FjaGVfYWRkKHVuc2lnbmVkIGludCBzaGlmdCk7Ci12b2lkIHBndGFibGVfY2FjaGVfaW5pdCh2b2lkKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX1NUUklDVF9LRVJORUxfUldYKSB8fCBkZWZpbmVkKENPTkZJR19QUEMzMikKIHZvaWQgbWFya19pbml0bWVtX254KHZvaWQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BscGFyX3dyYXBwZXJzLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGxwYXJfd3JhcHBlcnMuaAppbmRleCBjZmY1YTQxLi40NDk3YzhhIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGxwYXJfd3JhcHBlcnMuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGxwYXJfd3JhcHBlcnMuaApAQCAtMzQwLDYgKzM0MCwxMiBAQCBzdGF0aWMgaW5saW5lIGxvbmcgcGxwYXJfc2V0X2NpYWJyKHVuc2lnbmVkIGxvbmcgY2lhYnIpCiB7CiAJcmV0dXJuIDA7CiB9CisKK3N0YXRpYyBpbmxpbmUgbG9uZyBwbHBhcl9wdGVfcmVhZF80KHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHVuc2lnbmVkIGxvbmcgcHRleCwKKwkJCQkgICAgdW5zaWduZWQgbG9uZyAqcHRlcykKK3sKKwlyZXR1cm4gMDsKK30KICNlbmRpZiAvKiBDT05GSUdfUFBDX1BTRVJJRVMgKi8KIAogI2VuZGlmIC8qIF9BU01fUE9XRVJQQ19QTFBBUl9XUkFQUEVSU19IICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcHBjLXBjaS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BwYy1wY2kuaAppbmRleCBjZWMyZDY0Li43ZjRiZTVhIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcHBjLXBjaS5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wcGMtcGNpLmgKQEAgLTYyLDExICs2Miw2IEBAIHZvaWQgZWVoX3BlX2Rldl9tb2RlX21hcmsoc3RydWN0IGVlaF9wZSAqcGUsIGludCBtb2RlKTsKIHZvaWQgZWVoX3N5c2ZzX2FkZF9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpOwogdm9pZCBlZWhfc3lzZnNfcmVtb3ZlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7CiAKLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqZWVoX3BjaV9uYW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KSAKLXsgCi0JcmV0dXJuIHBkZXYgPyBwY2lfbmFtZShwZGV2KSA6ICI8bnVsbD4iOwotfSAKLQogc3RhdGljIGlubGluZSBjb25zdCBjaGFyICplZWhfZHJpdmVyX25hbWUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAJcmV0dXJuIChwZGV2ICYmIHBkZXYtPmRyaXZlcikgPyBwZGV2LT5kcml2ZXItPm5hbWUgOiAiPG51bGw+IjsKQEAgLTc0LDYgKzY5LDggQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyICplZWhfZHJpdmVyX25hbWUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAKICNlbmRpZiAvKiBDT05GSUdfRUVIICovCiAKKyNkZWZpbmUgUENJX0JVU05PKGJkZm4pICgoYmRmbiA+PiA4KSAmIDB4ZmYpCisKICNlbHNlIC8qIENPTkZJR19QQ0kgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X3BjaV9jb25maWdfdG9rZW5zKHZvaWQpIHsgfQogI2VuZGlmIC8qICFDT05GSUdfUENJICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcHBjNHh4X29jbS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BwYzR4eF9vY20uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmM0ZGI2ZC4uMDAwMDAwMAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcHBjNHh4X29jbS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KLS8qCi0gKiBQb3dlclBDIDR4eCBPQ00gbWVtb3J5IGFsbG9jYXRpb24gc3VwcG9ydAotICoKLSAqIChDKSBDb3B5cmlnaHQgMjAwOSwgQXBwbGllZCBNaWNybyBDaXJjdWl0cyBDb3Jwb3JhdGlvbgotICogVmljdG9yIEdhbGxhcmRvICh2Z2FsbGFyZG9AYW1jYy5jb20pCi0gKgotICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKLSAqIHByb2plY3QuCi0gKi8KLQotI2lmbmRlZiBfX0FTTV9QT1dFUlBDX1BQQzRYWF9PQ01fSF9fCi0jZGVmaW5lIF9fQVNNX1BPV0VSUENfUFBDNFhYX09DTV9IX18KLQotI2RlZmluZSBQUEM0WFhfT0NNX05PTl9DQUNIRUQgMAotI2RlZmluZSBQUEM0WFhfT0NNX0NBQ0hFRCAgICAgMQotCi0jaWYgZGVmaW5lZChDT05GSUdfUFBDNHh4X09DTSkKLQotdm9pZCAqcHBjNHh4X29jbV9hbGxvYyhwaHlzX2FkZHJfdCAqcGh5cywgaW50IHNpemUsIGludCBhbGlnbiwKLQkJICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKm93bmVyKTsKLXZvaWQgcHBjNHh4X29jbV9mcmVlKGNvbnN0IHZvaWQgKnZpcnQpOwotCi0jZWxzZQotCi0jZGVmaW5lIHBwYzR4eF9vY21fYWxsb2MocGh5cywgc2l6ZSwgYWxpZ24sIGZsYWdzLCBvd25lcikJTlVMTAotI2RlZmluZSBwcGM0eHhfb2NtX2ZyZWUoYWRkcikJKCh2b2lkKTApCi0KLSNlbmRpZiAvKiBDT05GSUdfUFBDNHh4X09DTSAqLwotCi0jZW5kaWYgIC8qIF9fQVNNX1BPV0VSUENfUFBDNFhYX09DTV9IX18gKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wcGNfYXNtLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcHBjX2FzbS5oCmluZGV4IGUwNjM3NzMuLjZiMDNkZmYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wcGNfYXNtLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BwY19hc20uaApAQCAtMzExLDE4ICszMTEsNDggQEAgR0xVRSguLG5hbWUpOgogCWFkZGlzCXJlZyxyZWcsKG5hbWUgLSAwYilAaGE7CQlcCiAJYWRkaQlyZWcscmVnLChuYW1lIC0gMGIpQGw7CiAKLSNpZmRlZiBfX3Bvd2VycGM2NF9fCi0jaWZkZWYgSEFWRV9BU19BVEhJR0gKKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIGRlZmluZWQoSEFWRV9BU19BVEhJR0gpCiAjZGVmaW5lIF9fQVNfQVRISUdIIGhpZ2gKICNlbHNlCiAjZGVmaW5lIF9fQVNfQVRISUdIIGgKICNlbmRpZgotI2RlZmluZSBMT0FEX1JFR19JTU1FRElBVEUocmVnLGV4cHIpCQlcCi0JbGlzICAgICByZWcsKGV4cHIpQGhpZ2hlc3Q7CQlcCi0Jb3JpICAgICByZWcscmVnLChleHByKUBoaWdoZXI7CVwKLQlybGRpY3IgIHJlZyxyZWcsMzIsMzE7CQlcCi0Jb3JpcyAgICByZWcscmVnLChleHByKUBfX0FTX0FUSElHSDsJXAotCW9yaSAgICAgcmVnLHJlZywoZXhwcilAbDsKKworLm1hY3JvIF9fTE9BRF9SRUdfSU1NRURJQVRFXzMyIHIsIHgKKwkuaWYgKFx4KSA+PSAweDgwMDAgfHwgKFx4KSA8IC0weDgwMDAKKwkJbGlzIFxyLCAoXHgpQF9fQVNfQVRISUdICisJCS5pZiAoXHgpICYgMHhmZmZmICE9IDAKKwkJCW9yaSBcciwgXHIsIChceClAbAorCQkuZW5kaWYKKwkuZWxzZQorCQlsaSBcciwgKFx4KUBsCisJLmVuZGlmCisuZW5kbQorCisubWFjcm8gX19MT0FEX1JFR19JTU1FRElBVEUgciwgeAorCS5pZiAoXHgpID49IDB4ODAwMDAwMDAgfHwgKFx4KSA8IC0weDgwMDAwMDAwCisJCV9fTE9BRF9SRUdfSU1NRURJQVRFXzMyIFxyLCAoXHgpID4+IDMyCisJCXNsZGkJXHIsIFxyLCAzMgorCQkuaWYgKFx4KSAmIDB4ZmZmZjAwMDAgIT0gMAorCQkJb3JpcyBcciwgXHIsIChceClAX19BU19BVEhJR0gKKwkJLmVuZGlmCisJCS5pZiAoXHgpICYgMHhmZmZmICE9IDAKKwkJCW9yaSBcciwgXHIsIChceClAbAorCQkuZW5kaWYKKwkuZWxzZQorCQlfX0xPQURfUkVHX0lNTUVESUFURV8zMiBcciwgXHgKKwkuZW5kaWYKKy5lbmRtCisKKyNpZmRlZiBfX3Bvd2VycGM2NF9fCisKKyNkZWZpbmUgTE9BRF9SRUdfSU1NRURJQVRFKHJlZywgZXhwcikgX19MT0FEX1JFR19JTU1FRElBVEUgcmVnLCBleHByCisKKyNkZWZpbmUgTE9BRF9SRUdfSU1NRURJQVRFX1NZTShyZWcsIHRtcCwgZXhwcikJXAorCWxpcwl0bXAsIChleHByKUBoaWdoZXN0OwkJXAorCWxpcwlyZWcsIChleHByKUBfX0FTX0FUSElHSDsJXAorCW9yaQl0bXAsIHRtcCwgKGV4cHIpQGhpZ2hlcjsJXAorCW9yaQlyZWcsIHJlZywgKGV4cHIpQGw7CQlcCisJcmxkaW1pCXJlZywgdG1wLCAzMiwgMAogCiAjZGVmaW5lIExPQURfUkVHX0FERFIocmVnLG5hbWUpCQkJXAogCWxkCXJlZyxuYW1lQGdvdChyMikKQEAgLTMzNSwxMSArMzY1LDEzIEBAIEdMVUUoLixuYW1lKToKIAogI2Vsc2UgLyogMzItYml0ICovCiAKLSNkZWZpbmUgTE9BRF9SRUdfSU1NRURJQVRFKHJlZyxleHByKQkJXAorI2RlZmluZSBMT0FEX1JFR19JTU1FRElBVEUocmVnLCBleHByKSBfX0xPQURfUkVHX0lNTUVESUFURV8zMiByZWcsIGV4cHIKKworI2RlZmluZSBMT0FEX1JFR19JTU1FRElBVEVfU1lNKHJlZyxleHByKQkJXAogCWxpcwlyZWcsKGV4cHIpQGhhOwkJXAogCWFkZGkJcmVnLHJlZywoZXhwcilAbDsKIAotI2RlZmluZSBMT0FEX1JFR19BRERSKHJlZyxuYW1lKQkJTE9BRF9SRUdfSU1NRURJQVRFKHJlZywgbmFtZSkKKyNkZWZpbmUgTE9BRF9SRUdfQUREUihyZWcsbmFtZSkJCUxPQURfUkVHX0lNTUVESUFURV9TWU0ocmVnLCBuYW1lKQogCiAjZGVmaW5lIExPQURfUkVHX0FERFJCQVNFKHJlZywgbmFtZSkJbGlzCXJlZyxuYW1lQGhhCiAjZGVmaW5lIEFERFJPRkYobmFtZSkJCQluYW1lQGwKQEAgLTM1MSwxOSArMzgzLDkgQEAgR0xVRSguLG5hbWUpOgogCiAvKiB2YXJpb3VzIGVycmF0YSBvciBwYXJ0IGZpeHVwcyAqLwogI2lmZGVmIENPTkZJR19QUEM2MDFfU1lOQ19GSVgKLSNkZWZpbmUgU1lOQwkJCQlcCi1CRUdJTl9GVFJfU0VDVElPTgkJCVwKLQlzeW5jOwkJCQlcCi0JaXN5bmM7CQkJCVwKLUVORF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSXzYwMSkKLSNkZWZpbmUgU1lOQ182MDEJCQlcCi1CRUdJTl9GVFJfU0VDVElPTgkJCVwKLQlzeW5jOwkJCQlcCi1FTkRfRlRSX1NFQ1RJT05fSUZTRVQoQ1BVX0ZUUl82MDEpCi0jZGVmaW5lIElTWU5DXzYwMQkJCVwKLUJFR0lOX0ZUUl9TRUNUSU9OCQkJXAotCWlzeW5jOwkJCQlcCi1FTkRfRlRSX1NFQ1RJT05fSUZTRVQoQ1BVX0ZUUl82MDEpCisjZGVmaW5lIFNZTkMJCXN5bmM7IGlzeW5jCisjZGVmaW5lIFNZTkNfNjAxCXN5bmMKKyNkZWZpbmUgSVNZTkNfNjAxCWlzeW5jCiAjZWxzZQogI2RlZmluZQlTWU5DCiAjZGVmaW5lIFNZTkNfNjAxCkBAIC0zODksMTUgKzQxMSwxMSBAQCBFTkRfRlRSX1NFQ1RJT05fTkVTVEVEKENQVV9GVFJfQ0VMTF9UQl9CVUcsIENQVV9GVFJfQ0VMTF9UQl9CVUcsIDk2KQogI2RlZmluZSBNRlRCVShkZXN0KQkJCW1mc3ByIGRlc3QsIFNQUk5fVEJSVQogI2VuZGlmCiAKLSNpZm5kZWYgQ09ORklHX1NNUAotI2RlZmluZSBUTEJTWU5DCi0jZWxzZSAvKiBDT05GSUdfU01QICovCiAvKiB0bGJzeW5jIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiA2MDEgKi8KLSNkZWZpbmUgVExCU1lOQwkJCQlcCi1CRUdJTl9GVFJfU0VDVElPTgkJCVwKLQl0bGJzeW5jOwkJCVwKLQlzeW5jOwkJCQlcCi1FTkRfRlRSX1NFQ1RJT05fSUZDTFIoQ1BVX0ZUUl82MDEpCisjaWYgIWRlZmluZWQoQ09ORklHX1NNUCkgfHwgZGVmaW5lZChDT05GSUdfUFBDX0JPT0szU182MDEpCisjZGVmaW5lIFRMQlNZTkMKKyNlbHNlCisjZGVmaW5lIFRMQlNZTkMJCXRsYnN5bmM7IHN5bmMKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1BQQzY0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcHRyYWNlLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcHRyYWNlLmgKaW5kZXggZmVlZTFiMi4uZWUzYWRhNiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3B0cmFjZS5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wdHJhY2UuaApAQCAtMjAzLDcgKzIwMywxMSBAQCBkbyB7CQkJCQkJCQkJICAgICAgXAogI2VuZGlmIC8qIF9fcG93ZXJwYzY0X18gKi8KIAogI2RlZmluZSBhcmNoX2hhc19zaW5nbGVfc3RlcCgpCSgxKQotI2RlZmluZSBhcmNoX2hhc19ibG9ja19zdGVwKCkJKCFjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl82MDEpKQorI2lmbmRlZiBDT05GSUdfQk9PSzNTXzYwMQorI2RlZmluZSBhcmNoX2hhc19ibG9ja19zdGVwKCkJKHRydWUpCisjZWxzZQorI2RlZmluZSBhcmNoX2hhc19ibG9ja19zdGVwKCkJKGZhbHNlKQorI2VuZGlmCiAjZGVmaW5lIEFSQ0hfSEFTX1VTRVJfU0lOR0xFX1NURVBfUkVQT1JUCiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcmVnLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcmVnLmgKaW5kZXggMTBjYWExNC4uYjNjYmIxMSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3JlZy5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9yZWcuaApAQCAtMzgsNiArMzgsNyBAQAogI2RlZmluZSBNU1JfVE1fTEcJMzIJCS8qIFRyYW5zIE1lbSBBdmFpbGFibGUgKi8KICNkZWZpbmUgTVNSX1ZFQ19MRwkyNQkgICAgICAgIC8qIEVuYWJsZSBBbHRpVmVjICovCiAjZGVmaW5lIE1TUl9WU1hfTEcJMjMJCS8qIEVuYWJsZSBWU1ggKi8KKyNkZWZpbmUgTVNSX1NfTEcJMjIJCS8qIFNlY3VyZSBzdGF0ZSAqLwogI2RlZmluZSBNU1JfUE9XX0xHCTE4CQkvKiBFbmFibGUgUG93ZXIgTWFuYWdlbWVudCAqLwogI2RlZmluZSBNU1JfV0VfTEcJMTgJCS8qIFdhaXQgU3RhdGUgRW5hYmxlICovCiAjZGVmaW5lIE1TUl9UR1BSX0xHCTE3CQkvKiBUTEIgVXBkYXRlIHJlZ2lzdGVycyBpbiB1c2UgKi8KQEAgLTcxLDExICs3MiwxMyBAQAogI2RlZmluZSBNU1JfU0YJCV9fTUFTSyhNU1JfU0ZfTEcpCS8qIEVuYWJsZSA2NCBiaXQgbW9kZSAqLwogI2RlZmluZSBNU1JfSVNGCQlfX01BU0soTVNSX0lTRl9MRykJLyogSW50ZXJydXB0IDY0YiBtb2RlIHZhbGlkIG9uIDYzMCAqLwogI2RlZmluZSBNU1JfSFYgCQlfX01BU0soTVNSX0hWX0xHKQkvKiBIeXBlcnZpc29yIHN0YXRlICovCisjZGVmaW5lIE1TUl9TCQlfX01BU0soTVNSX1NfTEcpCS8qIFNlY3VyZSBzdGF0ZSAqLwogI2Vsc2UKIC8qIHNvIHRlc3RzIGZvciB0aGVzZSBiaXRzIGZhaWwgb24gMzItYml0ICovCiAjZGVmaW5lIE1TUl9TRgkJMAogI2RlZmluZSBNU1JfSVNGCQkwCiAjZGVmaW5lIE1TUl9IVgkJMAorI2RlZmluZSBNU1JfUwkJMAogI2VuZGlmCiAKIC8qCkBAIC00NzIsOSArNDc1LDEwIEBACiAjZGVmaW5lICAgSE1FUl9ERUJVR19UUklHCSgxdWwgPDwgKDYzIC0gMTcpKSAvKiBEZWJ1ZyB0cmlnZ2VyICovCiAjZGVmaW5lCVNQUk5fSE1FRVIJMHgxNTEJLyogSHlwIG1haW50ZW5hbmNlIGV4Y2VwdGlvbiBlbmFibGUgcmVnICovCiAjZGVmaW5lIFNQUk5fUENSCTB4MTUyCS8qIFByb2Nlc3NvciBjb21wYXRpYmlsaXR5IHJlZ2lzdGVyICovCi0jZGVmaW5lICAgUENSX1ZFQ19ESVMJKDF1bCA8PCAoNjMtMCkpCS8qIFZlYy4gZGlzYWJsZSAoYml0IE5BIHNpbmNlIFBPV0VSOCkgKi8KLSNkZWZpbmUgICBQQ1JfVlNYX0RJUwkoMXVsIDw8ICg2My0xKSkJLyogVlNYIGRpc2FibGUgKGJpdCBOQSBzaW5jZSBQT1dFUjgpICovCi0jZGVmaW5lICAgUENSX1RNX0RJUwkoMXVsIDw8ICg2My0yKSkJLyogVHJhbnMuIG1lbW9yeSBkaXNhYmxlIChQT1dFUjgpICovCisjZGVmaW5lICAgUENSX1ZFQ19ESVMJKF9fTUFTSyg2My0wKSkJLyogVmVjLiBkaXNhYmxlIChiaXQgTkEgc2luY2UgUE9XRVI4KSAqLworI2RlZmluZSAgIFBDUl9WU1hfRElTCShfX01BU0soNjMtMSkpCS8qIFZTWCBkaXNhYmxlIChiaXQgTkEgc2luY2UgUE9XRVI4KSAqLworI2RlZmluZSAgIFBDUl9UTV9ESVMJKF9fTUFTSyg2My0yKSkJLyogVHJhbnMuIG1lbW9yeSBkaXNhYmxlIChQT1dFUjgpICovCisjZGVmaW5lICAgUENSX0hJR0hfQklUUwkoUENSX1ZFQ19ESVMgfCBQQ1JfVlNYX0RJUyB8IFBDUl9UTV9ESVMpCiAvKgogICogVGhlc2UgYml0cyBhcmUgdXNlZCBpbiB0aGUgZnVuY3Rpb24ga3ZtcHBjX3NldF9hcmNoX2NvbXBhdCgpIHRvIHNwZWNpZnkgYW5kCiAgKiBkZXRlcm1pbmUgYm90aCB0aGUgY29tcGF0aWJpbGl0eSBsZXZlbCB3aGljaCB3ZSB3YW50IHRvIGVtdWxhdGUgYW5kIHRoZQpAQCAtNDgzLDYgKzQ4Nyw4IEBACiAjZGVmaW5lICAgUENSX0FSQ0hfMjA3CTB4OAkJLyogQXJjaGl0ZWN0dXJlIDIuMDcgKi8KICNkZWZpbmUgICBQQ1JfQVJDSF8yMDYJMHg0CQkvKiBBcmNoaXRlY3R1cmUgMi4wNiAqLwogI2RlZmluZSAgIFBDUl9BUkNIXzIwNQkweDIJCS8qIEFyY2hpdGVjdHVyZSAyLjA1ICovCisjZGVmaW5lICAgUENSX0xPV19CSVRTCShQQ1JfQVJDSF8yMDcgfCBQQ1JfQVJDSF8yMDYgfCBQQ1JfQVJDSF8yMDUpCisjZGVmaW5lICAgUENSX01BU0sJfihQQ1JfSElHSF9CSVRTIHwgUENSX0xPV19CSVRTKQkvKiBQQ1IgUmVzZXJ2ZWQgQml0cyAqLwogI2RlZmluZQlTUFJOX0hFSVIJMHgxNTMJLyogSHlwZXJ2aXNvciBFbXVsYXRlZCBJbnN0cnVjdGlvbiBSZWdpc3RlciAqLwogI2RlZmluZSBTUFJOX1RMQklOREVYUgkweDE1NAkvKiBQNyBUTEIgY29udHJvbCByZWdpc3RlciAqLwogI2RlZmluZSBTUFJOX1RMQlZQTlIJMHgxNTUJLyogUDcgVExCIGNvbnRyb2wgcmVnaXN0ZXIgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zY29tLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc2NvbS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGM0NDM5Li4wMDAwMDAwCi0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zY29tLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KLS8qCi0gKiBDb3B5cmlnaHQgMjAxMCBCZW5qYW1pbiBIZXJyZW5zY2htaWR0LCBJQk0gQ29ycAotICogICAgICAgICAgICAgICAgPGJlbmhAa2VybmVsLmNyYXNoaW5nLm9yZz4KLSAqICAgICBhbmQgICAgICAgIERhdmlkIEdpYnNvbiwgSUJNIENvcnBvcmF0aW9uLgotICovCi0KLSNpZm5kZWYgX0FTTV9QT1dFUlBDX1NDT01fSAotI2RlZmluZSBfQVNNX1BPV0VSUENfU0NPTV9ICi0KLSNpZmRlZiBfX0tFUk5FTF9fCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotI2lmZGVmIENPTkZJR19QUENfU0NPTQotCi0vKgotICogVGhlIFNDT00gYnVzIGlzIGEgc2lkZWJhbmQgYnVzIHVzZWQgZm9yIGFjY2Vzc2luZyB2YXJpb3VzIGludGVybmFsCi0gKiByZWdpc3RlcnMgb2YgdGhlIHByb2Nlc3NvciBvciB0aGUgY2hpcHNldC4gVGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMKLSAqIGRpZmZlciBiZXR3ZWVuIHByb2Nlc3NvcnMgYW5kIHBsYXRmb3JtcywgYW5kIHRoZSBhY2Nlc3MgbWV0aG9kIGFzCi0gKiB3ZWxsLgotICoKLSAqIFRoaXMgQVBJIGFsbG93cyB0byAibWFwIiByYW5nZXMgb2YgU0NPTSByZWdpc3RlciBudW1iZXJzIGFzc29jaWF0ZWQKLSAqIHdpdGggYSBnaXZlbiBTQ09NIGNvbnRyb2xsZXIuIFRoZSBsYXRlciBtdXN0IGJlIHJlcHJlc2VudGVkIGJ5IGEKLSAqIGRldmljZSBub2RlLCB0aG91Z2ggc29tZSBpbXBsZW1lbnRhdGlvbnMgbWlnaHQgc3VwcG9ydCBOVUxMIGlmIHRoZXJlCi0gKiBpcyBubyBwb3NzaWJsZSBhbWJpZ3VpdHkKLSAqCi0gKiBUaGVuLCBzY29tX3JlYWQvc2NvbV93cml0ZSBjYW4gYmUgdXNlZCB0byBhY2Nlc3NlcyByZWdpc3RlcnMgaW5zaWRlCi0gKiB0aGF0IHJhbmdlLiBUaGUgYXJndW1lbnQgcGFzc2VkIGlzIGEgcmVnaXN0ZXIgbnVtYmVyIHJlbGF0aXZlIHRvCi0gKiB0aGUgYmVnaW5uaW5nIG9mIHRoZSByYW5nZSBtYXBwZWQuCi0gKi8KLQotdHlwZWRlZiB2b2lkICpzY29tX21hcF90OwotCi0vKiBWYWx1ZSBmb3IgYW4gaW52YWxpZCBTQ09NIG1hcCAqLwotI2RlZmluZSBTQ09NX01BUF9JTlZBTElECShOVUxMKQotCi0vKiBUaGUgc2NvbV9jb250cm9sbGVyIGRhdGEgc3RydWN0dXJlIGlzIHdoYXQgdGhlIHBsYXRmb3JtIHBhc3NlcwotICogdG8gdGhlIGNvcmUgY29kZSBpbiBzY29tX2luaXQsIGl0IHByb3ZpZGVzIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24KLSAqIG9mIGFsbCB0aGUgU0NPTSBmdW5jdGlvbnMKLSAqLwotc3RydWN0IHNjb21fY29udHJvbGxlciB7Ci0Jc2NvbV9tYXBfdCAoKm1hcCkoc3RydWN0IGRldmljZV9ub2RlICpjdHJsX2RldiwgdTY0IHJlZywgdTY0IGNvdW50KTsKLQl2b2lkICgqdW5tYXApKHNjb21fbWFwX3QgbWFwKTsKLQotCWludCAoKnJlYWQpKHNjb21fbWFwX3QgbWFwLCB1NjQgcmVnLCB1NjQgKnZhbHVlKTsKLQlpbnQgKCp3cml0ZSkoc2NvbV9tYXBfdCBtYXAsIHU2NCByZWcsIHU2NCB2YWx1ZSk7Ci19OwotCi1leHRlcm4gY29uc3Qgc3RydWN0IHNjb21fY29udHJvbGxlciAqc2NvbV9jb250cm9sbGVyOwotCi0vKioKLSAqIHNjb21faW5pdCAtIEluaXRpYWxpemUgdGhlIFNDT00gYmFja2VuZCwgY2FsbGVkIGJ5IHRoZSBwbGF0Zm9ybQotICogQGNvbnRyb2xsZXI6IFRoZSBwbGF0Zm9ybSBTQ09NIGNvbnRyb2xsZXIKLSAqLwotc3RhdGljIGlubGluZSB2b2lkIHNjb21faW5pdChjb25zdCBzdHJ1Y3Qgc2NvbV9jb250cm9sbGVyICpjb250cm9sbGVyKQotewotCXNjb21fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Ci19Ci0KLS8qKgotICogc2NvbV9tYXBfb2sgLSBUZXN0IGlzIGEgU0NPTSBtYXBwaW5nIGlzIHN1Y2Nlc3NmdWwKLSAqIEBtYXA6IFRoZSByZXN1bHQgb2Ygc2NvbV9tYXAgdG8gdGVzdAotICovCi1zdGF0aWMgaW5saW5lIGludCBzY29tX21hcF9vayhzY29tX21hcF90IG1hcCkKLXsKLQlyZXR1cm4gbWFwICE9IFNDT01fTUFQX0lOVkFMSUQ7Ci19Ci0KLS8qKgotICogc2NvbV9tYXAgLSBNYXAgYSBibG9jayBvZiBTQ09NIHJlZ2lzdGVycwotICogQGN0cmxfZGV2OiBEZXZpY2Ugbm9kZSBvZiB0aGUgU0NPTSBjb250cm9sbGVyCi0gKiAgICAgICAgICAgIHNvbWUgaW1wbGVtZW50YXRpb25zIGFsbG93IE5VTEwgaGVyZQotICogQHJlZzogZmlyc3QgU0NPTSByZWdpc3RlciB0byBtYXAKLSAqIEBjb3VudDogTnVtYmVyIG9mIFNDT00gcmVnaXN0ZXJzIHRvIG1hcAotICovCi0KLXN0YXRpYyBpbmxpbmUgc2NvbV9tYXBfdCBzY29tX21hcChzdHJ1Y3QgZGV2aWNlX25vZGUgKmN0cmxfZGV2LAotCQkJCSAgdTY0IHJlZywgdTY0IGNvdW50KQotewotCXJldHVybiBzY29tX2NvbnRyb2xsZXItPm1hcChjdHJsX2RldiwgcmVnLCBjb3VudCk7Ci19Ci0KLS8qKgotICogc2NvbV9maW5kX3BhcmVudCAtIEZpbmQgdGhlIFNDT00gY29udHJvbGxlciBmb3IgYSBkZXZpY2UKLSAqIEBkZXY6IE9GIG5vZGUgb2YgdGhlIGRldmljZQotICoKLSAqIFRoaXMgaXMgbm90IG1lYW50IGZvciBnZW5lcmFsIHVzYWdlLCBidXQgaW4gY29tYmluYXRpb24gd2l0aAotICogc2NvbV9tYXAoKSBhbGxvd3MgdG8gbWFwIHJlZ2lzdGVycyBub3QgcmVwcmVzZW50ZWQgYnkgdGhlCi0gKiBkZXZpY2Ugb3duIHNjb20tcmVnIHByb3BlcnR5LiBVc2VmdWwgZm9yIGFwcGx5aW5nIEhXIHdvcmthcm91bmRzCi0gKiBvbiB0aGluZ3Mgbm90IHByb3Blcmx5IHJlcHJlc2VudGVkIGluIHRoZSBkZXZpY2UtdHJlZSBmb3IgZXhhbXBsZS4KLSAqLwotc3RydWN0IGRldmljZV9ub2RlICpzY29tX2ZpbmRfcGFyZW50KHN0cnVjdCBkZXZpY2Vfbm9kZSAqZGV2KTsKLQotCi0vKioKLSAqIHNjb21fbWFwX2RldmljZSAtIE1hcCBhIGRldmljZSdzIGJsb2NrIG9mIFNDT00gcmVnaXN0ZXJzCi0gKiBAZGV2OiBPRiBub2RlIG9mIHRoZSBkZXZpY2UKLSAqIEBpbmRleDogUmVnaXN0ZXIgYmFuayBpbmRleCAoaW5kZXggaW4gInNjb20tcmVnIiBwcm9wZXJ0eSkKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXNlIHRoZSBkZXZpY2UtdHJlZSBiaW5kaW5nIGZvciBTQ09NIHdoaWNoCi0gKiBpcyB0byBmb2xsb3cgInNjb20tcGFyZW50IiBwcm9wZXJ0aWVzIHVudGlsIGl0IGZpbmRzIGEgbm9kZSB3aXRoCi0gKiBhICJzY29tLWNvbnRyb2xsZXIiIHByb3BlcnR5IHRvIGZpbmQgdGhlIGNvbnRyb2xsZXIuIEl0IHdpbGwgdGhlbgotICogdXNlIHRoZSAic2NvbS1yZWciIHByb3BlcnR5IHdoaWNoIGlzIG1hZGUgb2YgcmVnL2NvdW50IHBhaXJzLAotICogZWFjaCBvZiB0aGVtIGhhdmluZyBhIHNpemUgZGVmaW5lZCBieSB0aGUgY29udHJvbGxlcidzICNzY29tLWNlbGxzCi0gKiBwcm9wZXJ0eQotICovCi1leHRlcm4gc2NvbV9tYXBfdCBzY29tX21hcF9kZXZpY2Uoc3RydWN0IGRldmljZV9ub2RlICpkZXYsIGludCBpbmRleCk7Ci0KLQotLyoqCi0gKiBzY29tX3VubWFwIC0gVW5tYXAgYSBibG9jayBvZiBTQ09NIHJlZ2lzdGVycwotICogQG1hcDogUmVzdWx0IG9mIHNjb21fbWFwIGlzIHRvIGJlIHVubWFwcGVkCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBzY29tX3VubWFwKHNjb21fbWFwX3QgbWFwKQotewotCWlmIChzY29tX21hcF9vayhtYXApKQotCQlzY29tX2NvbnRyb2xsZXItPnVubWFwKG1hcCk7Ci19Ci0KLS8qKgotICogc2NvbV9yZWFkIC0gUmVhZCBhIFNDT00gcmVnaXN0ZXIKLSAqIEBtYXA6IFJlc3VsdCBvZiBzY29tX21hcAotICogQHJlZzogUmVnaXN0ZXIgaW5kZXggd2l0aGluIHRoYXQgbWFwCi0gKiBAdmFsdWU6IFVwZGF0ZWQgd2l0aCB0aGUgdmFsdWUgcmVhZAotICoKLSAqIFJldHVybnMgMCAoc3VjY2Vzcykgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50IHNjb21fcmVhZChzY29tX21hcF90IG1hcCwgdTY0IHJlZywgdTY0ICp2YWx1ZSkKLXsKLQlpbnQgcmM7Ci0KLQlyYyA9IHNjb21fY29udHJvbGxlci0+cmVhZChtYXAsIHJlZywgdmFsdWUpOwotCWlmIChyYykKLQkJKnZhbHVlID0gMHhmZmZmZmZmZmZmZmZmZmZmdWw7Ci0JcmV0dXJuIHJjOwotfQotCi0vKioKLSAqIHNjb21fd3JpdGUgLSBXcml0ZSB0byBhIFNDT00gcmVnaXN0ZXIKLSAqIEBtYXA6IFJlc3VsdCBvZiBzY29tX21hcAotICogQHJlZzogUmVnaXN0ZXIgaW5kZXggd2l0aGluIHRoYXQgbWFwCi0gKiBAdmFsdWU6IFZhbHVlIHRvIHdyaXRlCi0gKgotICogUmV0dXJucyAwIChzdWNjZXNzKSBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUKLSAqLwotc3RhdGljIGlubGluZSBpbnQgc2NvbV93cml0ZShzY29tX21hcF90IG1hcCwgdTY0IHJlZywgdTY0IHZhbHVlKQotewotCXJldHVybiBzY29tX2NvbnRyb2xsZXItPndyaXRlKG1hcCwgcmVnLCB2YWx1ZSk7Ci19Ci0KLQotI2VuZGlmIC8qIENPTkZJR19QUENfU0NPTSAqLwotI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwotI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KLSNlbmRpZiAvKiBfQVNNX1BPV0VSUENfU0NPTV9IICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc2VjdGlvbnMuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zZWN0aW9ucy5oCmluZGV4IDRhMTY2NGEuLjVhOWI2ZWIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zZWN0aW9ucy5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zZWN0aW9ucy5oCkBAIC02MSwxNyArNjEsNiBAQCBzdGF0aWMgaW5saW5lIGludCBvdmVybGFwc19rZXJuZWxfdGV4dCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKIAkJKHVuc2lnbmVkIGxvbmcpX3N0ZXh0IDwgZW5kOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBvdmVybGFwc19rdm1fdG1wKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQotewotI2lmZGVmIENPTkZJR19LVk1fR1VFU1QKLQlleHRlcm4gY2hhciBrdm1fdG1wW107Ci0JcmV0dXJuIHN0YXJ0IDwgKHVuc2lnbmVkIGxvbmcpa3ZtX3RtcCAmJgotCQkodW5zaWduZWQgbG9uZykma3ZtX3RtcFsxMDI0ICogMTAyNF0gPCBlbmQ7Ci0jZWxzZQotCXJldHVybiAwOwotI2VuZGlmCi19Ci0KICNpZmRlZiBQUEM2NF9FTEZfQUJJX3YxCiAKICNkZWZpbmUgSEFWRV9ERVJFRkVSRU5DRV9GVU5DVElPTl9ERVNDUklQVE9SIDEKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zZXRqbXAuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zZXRqbXAuaAppbmRleCBkOTk1MDYxLi5lOWY4MWJiIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc2V0am1wLmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3NldGptcC5oCkBAIC03LDcgKzcsNyBAQAogCiAjZGVmaW5lIEpNUF9CVUZfTEVOICAgIDIzCiAKLWV4dGVybiBsb25nIHNldGptcChsb25nICopOwotZXh0ZXJuIHZvaWQgbG9uZ2ptcChsb25nICosIGxvbmcpOworZXh0ZXJuIGxvbmcgc2V0am1wKGxvbmcgKikgX19hdHRyaWJ1dGVfXygocmV0dXJuc190d2ljZSkpOworZXh0ZXJuIHZvaWQgbG9uZ2ptcChsb25nICosIGxvbmcpIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSk7CiAKICNlbmRpZiAvKiBfQVNNX1BPV0VSUENfU0VUSk1QX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zcGlubG9jay5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgKaW5kZXggYTQ3ZjgyNy4uZTlhOTYwZTIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zcGlubG9jay5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zcGlubG9jay5oCkBAIC0xMDEsMTUgKzEwMSw0MyBAQCBzdGF0aWMgaW5saW5lIGludCBhcmNoX3NwaW5fdHJ5bG9jayhhcmNoX3NwaW5sb2NrX3QgKmxvY2spCiAKICNpZiBkZWZpbmVkKENPTkZJR19QUENfU1BMUEFSKQogLyogV2Ugb25seSB5aWVsZCB0byB0aGUgaHlwZXJ2aXNvciBpZiB3ZSBhcmUgaW4gc2hhcmVkIHByb2Nlc3NvciBtb2RlICovCi0jZGVmaW5lIFNIQVJFRF9QUk9DRVNTT1IgKGxwcGFjYV9zaGFyZWRfcHJvYyhsb2NhbF9wYWNhLT5scHBhY2FfcHRyKSkKLWV4dGVybiB2b2lkIF9fc3Bpbl95aWVsZChhcmNoX3NwaW5sb2NrX3QgKmxvY2spOwotZXh0ZXJuIHZvaWQgX19yd195aWVsZChhcmNoX3J3bG9ja190ICpsb2NrKTsKK3ZvaWQgc3BscGFyX3NwaW5feWllbGQoYXJjaF9zcGlubG9ja190ICpsb2NrKTsKK3ZvaWQgc3BscGFyX3J3X3lpZWxkKGFyY2hfcndsb2NrX3QgKmxvY2spOwogI2Vsc2UgLyogU1BMUEFSICovCi0jZGVmaW5lIF9fc3Bpbl95aWVsZCh4KQliYXJyaWVyKCkKLSNkZWZpbmUgX19yd195aWVsZCh4KQliYXJyaWVyKCkKLSNkZWZpbmUgU0hBUkVEX1BST0NFU1NPUgkwCitzdGF0aWMgaW5saW5lIHZvaWQgc3BscGFyX3NwaW5feWllbGQoYXJjaF9zcGlubG9ja190ICpsb2NrKSB7fTsKK3N0YXRpYyBpbmxpbmUgdm9pZCBzcGxwYXJfcndfeWllbGQoYXJjaF9yd2xvY2tfdCAqbG9jaykge307CiAjZW5kaWYKIAorc3RhdGljIGlubGluZSBib29sIGlzX3NoYXJlZF9wcm9jZXNzb3Iodm9pZCkKK3sKKy8qCisgKiBMUFBBQ0EgaXMgb25seSBhdmFpbGFibGUgb24gUHNlcmllcyBzbyBndWFyZCBhbnl0aGluZyBMUFBBQ0EgcmVsYXRlZCB0bworICogYWxsb3cgb3RoZXIgcGxhdGZvcm1zICh3aGljaCBpbmNsdWRlIHRoaXMgY29tbW9uIGhlYWRlcikgdG8gY29tcGlsZS4KKyAqLworI2lmZGVmIENPTkZJR19QUENfUFNFUklFUworCXJldHVybiAoSVNfRU5BQkxFRChDT05GSUdfUFBDX1NQTFBBUikgJiYKKwkJbHBwYWNhX3NoYXJlZF9wcm9jKGxvY2FsX3BhY2EtPmxwcGFjYV9wdHIpKTsKKyNlbHNlCisJcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzcGluX3lpZWxkKGFyY2hfc3BpbmxvY2tfdCAqbG9jaykKK3sKKwlpZiAoaXNfc2hhcmVkX3Byb2Nlc3NvcigpKQorCQlzcGxwYXJfc3Bpbl95aWVsZChsb2NrKTsKKwllbHNlCisJCWJhcnJpZXIoKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJ3X3lpZWxkKGFyY2hfcndsb2NrX3QgKmxvY2spCit7CisJaWYgKGlzX3NoYXJlZF9wcm9jZXNzb3IoKSkKKwkJc3BscGFyX3J3X3lpZWxkKGxvY2spOworCWVsc2UKKwkJYmFycmllcigpOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9zcGluX2xvY2soYXJjaF9zcGlubG9ja190ICpsb2NrKQogewogCXdoaWxlICgxKSB7CkBAIC0xMTcsOCArMTQ1LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfc3Bpbl9sb2NrKGFyY2hfc3BpbmxvY2tfdCAqbG9jaykKIAkJCWJyZWFrOwogCQlkbyB7CiAJCQlITVRfbG93KCk7Ci0JCQlpZiAoU0hBUkVEX1BST0NFU1NPUikKLQkJCQlfX3NwaW5feWllbGQobG9jayk7CisJCQlpZiAoaXNfc2hhcmVkX3Byb2Nlc3NvcigpKQorCQkJCXNwbHBhcl9zcGluX3lpZWxkKGxvY2spOwogCQl9IHdoaWxlICh1bmxpa2VseShsb2NrLT5zbG9jayAhPSAwKSk7CiAJCUhNVF9tZWRpdW0oKTsKIAl9CkBAIC0xMzYsOCArMTY0LDggQEAgdm9pZCBhcmNoX3NwaW5fbG9ja19mbGFncyhhcmNoX3NwaW5sb2NrX3QgKmxvY2ssIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAkJZG8gewogCQkJSE1UX2xvdygpOwotCQkJaWYgKFNIQVJFRF9QUk9DRVNTT1IpCi0JCQkJX19zcGluX3lpZWxkKGxvY2spOworCQkJaWYgKGlzX3NoYXJlZF9wcm9jZXNzb3IoKSkKKwkJCQlzcGxwYXJfc3Bpbl95aWVsZChsb2NrKTsKIAkJfSB3aGlsZSAodW5saWtlbHkobG9jay0+c2xvY2sgIT0gMCkpOwogCQlITVRfbWVkaXVtKCk7CiAJCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzX2Rpcyk7CkBAIC0yMjYsOCArMjU0LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfcmVhZF9sb2NrKGFyY2hfcndsb2NrX3QgKnJ3KQogCQkJYnJlYWs7CiAJCWRvIHsKIAkJCUhNVF9sb3coKTsKLQkJCWlmIChTSEFSRURfUFJPQ0VTU09SKQotCQkJCV9fcndfeWllbGQocncpOworCQkJaWYgKGlzX3NoYXJlZF9wcm9jZXNzb3IoKSkKKwkJCQlzcGxwYXJfcndfeWllbGQocncpOwogCQl9IHdoaWxlICh1bmxpa2VseShydy0+bG9jayA8IDApKTsKIAkJSE1UX21lZGl1bSgpOwogCX0KQEAgLTI0MCw4ICsyNjgsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF93cml0ZV9sb2NrKGFyY2hfcndsb2NrX3QgKnJ3KQogCQkJYnJlYWs7CiAJCWRvIHsKIAkJCUhNVF9sb3coKTsKLQkJCWlmIChTSEFSRURfUFJPQ0VTU09SKQotCQkJCV9fcndfeWllbGQocncpOworCQkJaWYgKGlzX3NoYXJlZF9wcm9jZXNzb3IoKSkKKwkJCQlzcGxwYXJfcndfeWllbGQocncpOwogCQl9IHdoaWxlICh1bmxpa2VseShydy0+bG9jayAhPSAwKSk7CiAJCUhNVF9tZWRpdW0oKTsKIAl9CkBAIC0yODEsOSArMzA5LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfd3JpdGVfdW5sb2NrKGFyY2hfcndsb2NrX3QgKnJ3KQogCXJ3LT5sb2NrID0gMDsKIH0KIAotI2RlZmluZSBhcmNoX3NwaW5fcmVsYXgobG9jaykJX19zcGluX3lpZWxkKGxvY2spCi0jZGVmaW5lIGFyY2hfcmVhZF9yZWxheChsb2NrKQlfX3J3X3lpZWxkKGxvY2spCi0jZGVmaW5lIGFyY2hfd3JpdGVfcmVsYXgobG9jaykJX19yd195aWVsZChsb2NrKQorI2RlZmluZSBhcmNoX3NwaW5fcmVsYXgobG9jaykJc3Bpbl95aWVsZChsb2NrKQorI2RlZmluZSBhcmNoX3JlYWRfcmVsYXgobG9jaykJcndfeWllbGQobG9jaykKKyNkZWZpbmUgYXJjaF93cml0ZV9yZWxheChsb2NrKQlyd195aWVsZChsb2NrKQogCiAvKiBTZWUgaW5jbHVkZS9saW51eC9zcGlubG9jay5oICovCiAjZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfc3BpbmxvY2soKSAgIHNtcF9tYigpCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3RyaW5nLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3RyaW5nLmgKaW5kZXggOWJmNmRmZi4uYjcyNjkyNyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3N0cmluZy5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zdHJpbmcuaApAQCAtNTMsNyArNTMsOSBAQCB2b2lkICpfX21lbW1vdmUodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIF9fa2VybmVsX3NpemVfdCBuKTsKICNpZm5kZWYgQ09ORklHX0tBU0FOCiAjZGVmaW5lIF9fSEFWRV9BUkNIX01FTVNFVDMyCiAjZGVmaW5lIF9fSEFWRV9BUkNIX01FTVNFVDY0CisjZGVmaW5lIF9fSEFWRV9BUkNIX01FTUNQWV9NQ1NBRkUKIAorZXh0ZXJuIGludCBtZW1jcHlfbWNzYWZlKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLCBfX2tlcm5lbF9zaXplX3Qgc3opOwogZXh0ZXJuIHZvaWQgKl9fbWVtc2V0MTYodWludDE2X3QgKiwgdWludDE2X3QgdiwgX19rZXJuZWxfc2l6ZV90KTsKIGV4dGVybiB2b2lkICpfX21lbXNldDMyKHVpbnQzMl90ICosIHVpbnQzMl90IHYsIF9fa2VybmVsX3NpemVfdCk7CiBleHRlcm4gdm9pZCAqX19tZW1zZXQ2NCh1aW50NjRfdCAqLCB1aW50NjRfdCB2LCBfX2tlcm5lbF9zaXplX3QpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3N2bS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3N2bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NTgwYjMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3ZtLmgKQEAgLTAsMCArMSwzMSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArICovCisvKgorICogU1ZNIGhlbHBlciBmdW5jdGlvbnMKKyAqCisgKiBDb3B5cmlnaHQgMjAxOCBBbnNodW1hbiBLaGFuZHVhbCwgSUJNIENvcnBvcmF0aW9uLgorICovCisKKyNpZm5kZWYgX0FTTV9QT1dFUlBDX1NWTV9ICisjZGVmaW5lIF9BU01fUE9XRVJQQ19TVk1fSAorCisjaWZkZWYgQ09ORklHX1BQQ19TVk0KKworc3RhdGljIGlubGluZSBib29sIGlzX3NlY3VyZV9ndWVzdCh2b2lkKQoreworCXJldHVybiBtZm1zcigpICYgTVNSX1M7Cit9CisKK3ZvaWQgZHRsX2NhY2hlX2N0b3Iodm9pZCAqYWRkcik7CisjZGVmaW5lIGdldF9kdGxfY2FjaGVfY3RvcigpCShpc19zZWN1cmVfZ3Vlc3QoKSA/IGR0bF9jYWNoZV9jdG9yIDogTlVMTCkKKworI2Vsc2UgLyogQ09ORklHX1BQQ19TVk0gKi8KKworc3RhdGljIGlubGluZSBib29sIGlzX3NlY3VyZV9ndWVzdCh2b2lkKQoreworCXJldHVybiBmYWxzZTsKK30KKworI2RlZmluZSBnZXRfZHRsX2NhY2hlX2N0b3IoKSBOVUxMCisKKyNlbmRpZiAvKiBDT05GSUdfUFBDX1NWTSAqLworI2VuZGlmIC8qIF9BU01fUE9XRVJQQ19TVk1fSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3RpbWUuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS90aW1lLmgKaW5kZXggNTRmNGVjMS4uMDhkYmUzZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3RpbWUuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vdGltZS5oCkBAIC00MSwxMSArNDEsNyBAQCBzdHJ1Y3QgZGl2X3Jlc3VsdCB7CiAKIC8qIEFjY2Vzc29yIGZ1bmN0aW9ucyBmb3IgdGhlIHRpbWViYXNlIChSVEMgb24gNjAxKSByZWdpc3RlcnMuICovCiAvKiBJZiBvbmUgZGF5IENPTkZJR19QT1dFUiBpcyBhZGRlZCBqdXN0IGRlZmluZSBfX1VTRV9SVEMgYXMgMSAqLwotI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzMyCi0jZGVmaW5lIF9fVVNFX1JUQygpCShjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9VU0VfUlRDKSkKLSNlbHNlCi0jZGVmaW5lIF9fVVNFX1JUQygpCTAKLSNlbmRpZgorI2RlZmluZSBfX1VTRV9SVEMoKQkoSVNfRU5BQkxFRChDT05GSUdfUFBDX0JPT0szU182MDEpKQogCiAjaWZkZWYgQ09ORklHX1BQQzY0CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS90aW1leC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3RpbWV4LmgKaW5kZXggOTI2YjlmOS4uZDJkMmM0YiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3RpbWV4LmgKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3RpbWV4LmgKQEAgLTE3LDM4ICsxNywxMCBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgY3ljbGVzX3Q7CiAKIHN0YXRpYyBpbmxpbmUgY3ljbGVzX3QgZ2V0X2N5Y2xlcyh2b2lkKQogewotI2lmZGVmIF9fcG93ZXJwYzY0X18KKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfQk9PSzNTXzYwMSkpCisJCXJldHVybiAwOworCiAJcmV0dXJuIG1mdGIoKTsKLSNlbHNlCi0JY3ljbGVzX3QgcmV0OwotCi0JLyoKLQkgKiBGb3IgdGhlICJjeWNsZSIgY291bnRlciB3ZSB1c2UgdGhlIHRpbWViYXNlIGxvd2VyIGhhbGYuCi0JICogQ3VycmVudGx5IG9ubHkgdXNlZCBvbiBTTVAuCi0JICovCi0KLQlyZXQgPSAwOwotCi0JX19hc21fXyBfX3ZvbGF0aWxlX18oCi0jaWZkZWYgQ09ORklHX1BQQ184eHgKLQkJIjk3OgltZnRiICUwXG4iCi0jZWxzZQotCQkiOTc6CW1mc3ByICUwLCAlMlxuIgotI2VuZGlmCi0JCSI5OTpcbiIKLQkJIi5zZWN0aW9uIF9fZnRyX2ZpeHVwLFwiYVwiXG4iCi0JCSIuYWxpZ24gMlxuIgotCQkiOTg6XG4iCi0JCSIJLmxvbmcgJTFcbiIKLQkJIgkubG9uZyAwXG4iCi0JCSIJLmxvbmcgOTdiLTk4YlxuIgotCQkiCS5sb25nIDk5Yi05OGJcbiIKLQkJIgkubG9uZyAwXG4iCi0JCSIJLmxvbmcgMFxuIgotCQkiLnByZXZpb3VzIgotCQk6ICI9ciIgKHJldCkgOiAiaSIgKENQVV9GVFJfNjAxKSwgImkiIChTUFJOX1RCUkwpKTsKLQlyZXR1cm4gcmV0OwotI2VuZGlmCiB9CiAKICNlbmRpZgkvKiBfX0tFUk5FTF9fICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vdWFjY2Vzcy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaAppbmRleCA4YjAzZWI0Li4xNTAwMmI1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vdWFjY2Vzcy5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS91YWNjZXNzLmgKQEAgLTM4Nyw2ICszODcsMjAgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHJhd19jb3B5X3RvX3VzZXIodm9pZCBfX3VzZXIgKnRvLAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgbG9uZyBfX211c3RfY2hlY2sKK2NvcHlfdG9fdXNlcl9tY3NhZmUodm9pZCBfX3VzZXIgKnRvLCBjb25zdCB2b2lkICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCit7CisJaWYgKGxpa2VseShjaGVja19jb3B5X3NpemUoZnJvbSwgbiwgdHJ1ZSkpKSB7CisJCWlmIChhY2Nlc3Nfb2sodG8sIG4pKSB7CisJCQlhbGxvd193cml0ZV90b191c2VyKHRvLCBuKTsKKwkJCW4gPSBtZW1jcHlfbWNzYWZlKCh2b2lkICopdG8sIGZyb20sIG4pOworCQkJcHJldmVudF93cml0ZV90b191c2VyKHRvLCBuKTsKKwkJfQorCX0KKworCXJldHVybiBuOworfQorCiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX2NsZWFyX3VzZXIodm9pZCBfX3VzZXIgKmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBjbGVhcl91c2VyKHZvaWQgX191c2VyICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vdWx0cmF2aXNvci1hcGkuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS91bHRyYXZpc29yLWFwaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmY2RhMWQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vdWx0cmF2aXNvci1hcGkuaApAQCAtMCwwICsxLDMzIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIFVsdHJhdmlzb3IgQVBJLgorICoKKyAqIENvcHlyaWdodCAyMDE5LCBJQk0gQ29ycG9yYXRpb24uCisgKgorICovCisjaWZuZGVmIF9BU01fUE9XRVJQQ19VTFRSQVZJU09SX0FQSV9ICisjZGVmaW5lIF9BU01fUE9XRVJQQ19VTFRSQVZJU09SX0FQSV9ICisKKyNpbmNsdWRlIDxhc20vaHZjYWxsLmg+CisKKy8qIFJldHVybiBjb2RlcyAqLworI2RlZmluZSBVX0JVU1kJCQlIX0JVU1kKKyNkZWZpbmUgVV9GVU5DVElPTgkJSF9GVU5DVElPTgorI2RlZmluZSBVX05PVF9BVkFJTEFCTEUJCUhfTk9UX0FWQUlMQUJMRQorI2RlZmluZSBVX1AyCQkJSF9QMgorI2RlZmluZSBVX1AzCQkJSF9QMworI2RlZmluZSBVX1A0CQkJSF9QNAorI2RlZmluZSBVX1A1CQkJSF9QNQorI2RlZmluZSBVX1BBUkFNRVRFUgkJSF9QQVJBTUVURVIKKyNkZWZpbmUgVV9QRVJNSVNTSU9OCQlIX1BFUk1JU1NJT04KKyNkZWZpbmUgVV9TVUNDRVNTCQlIX1NVQ0NFU1MKKworLyogb3Bjb2RlcyAqLworI2RlZmluZSBVVl9XUklURV9QQVRFCQkJMHhGMTA0CisjZGVmaW5lIFVWX1JFVFVSTgkJCTB4RjExQworI2RlZmluZSBVVl9FU00JCQkJMHhGMTEwCisjZGVmaW5lIFVWX1NIQVJFX1BBR0UJCQkweEYxMzAKKyNkZWZpbmUgVVZfVU5TSEFSRV9QQUdFCQkJMHhGMTM0CisjZGVmaW5lIFVWX1VOU0hBUkVfQUxMX1BBR0VTCQkweEYxNDAKKworI2VuZGlmIC8qIF9BU01fUE9XRVJQQ19VTFRSQVZJU09SX0FQSV9IICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vdWx0cmF2aXNvci5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3VsdHJhdmlzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMWJjMmUwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3VsdHJhdmlzb3IuaApAQCAtMCwwICsxLDQ5IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIFVsdHJhdmlzb3IgZGVmaW5pdGlvbnMKKyAqCisgKiBDb3B5cmlnaHQgMjAxOSwgSUJNIENvcnBvcmF0aW9uLgorICoKKyAqLworI2lmbmRlZiBfQVNNX1BPV0VSUENfVUxUUkFWSVNPUl9ICisjZGVmaW5lIF9BU01fUE9XRVJQQ19VTFRSQVZJU09SX0gKKworI2luY2x1ZGUgPGFzbS9hc20tcHJvdG90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS91bHRyYXZpc29yLWFwaS5oPgorI2luY2x1ZGUgPGFzbS9maXJtd2FyZS5oPgorCitpbnQgZWFybHlfaW5pdF9kdF9zY2FuX3VsdHJhdmlzb3IodW5zaWduZWQgbG9uZyBub2RlLCBjb25zdCBjaGFyICp1bmFtZSwKKwkJCQkgIGludCBkZXB0aCwgdm9pZCAqZGF0YSk7CisKKy8qCisgKiBJbiB1bHRyYXZpc29yIGVuYWJsZWQgc3lzdGVtcywgUFRDUiBiZWNvbWVzIHVsdHJhdmlzb3IgcHJpdmlsZWdlZCBvbmx5IGZvcgorICogd3JpdGluZyBhbmQgYW4gYXR0ZW1wdCB0byB3cml0ZSB0byBpdCB3aWxsIGNhdXNlIGEgSHlwZXJ2aXNvciBFbXVsYXRpb24KKyAqIEFzc2lzdGFuY2UgaW50ZXJydXB0LgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3B0Y3Jfd2hlbl9ub191dih1NjQgdmFsKQoreworCWlmICghZmlybXdhcmVfaGFzX2ZlYXR1cmUoRldfRkVBVFVSRV9VTFRSQVZJU09SKSkKKwkJbXRzcHIoU1BSTl9QVENSLCB2YWwpOworfQorCitzdGF0aWMgaW5saW5lIGludCB1dl9yZWdpc3Rlcl9wYXRlKHU2NCBscGlkLCB1NjQgZHcwLCB1NjQgZHcxKQoreworCXJldHVybiB1Y2FsbF9ub3JldHMoVVZfV1JJVEVfUEFURSwgbHBpZCwgZHcwLCBkdzEpOworfQorCitzdGF0aWMgaW5saW5lIGludCB1dl9zaGFyZV9wYWdlKHU2NCBwZm4sIHU2NCBucGFnZXMpCit7CisJcmV0dXJuIHVjYWxsX25vcmV0cyhVVl9TSEFSRV9QQUdFLCBwZm4sIG5wYWdlcyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHV2X3Vuc2hhcmVfcGFnZSh1NjQgcGZuLCB1NjQgbnBhZ2VzKQoreworCXJldHVybiB1Y2FsbF9ub3JldHMoVVZfVU5TSEFSRV9QQUdFLCBwZm4sIG5wYWdlcyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHV2X3Vuc2hhcmVfYWxsX3BhZ2VzKHZvaWQpCit7CisJcmV0dXJuIHVjYWxsX25vcmV0cyhVVl9VTlNIQVJFX0FMTF9QQUdFUyk7Cit9CisKKyNlbmRpZgkvKiBfQVNNX1BPV0VSUENfVUxUUkFWSVNPUl9IICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20veGl2ZS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3hpdmUuaAppbmRleCA4MTg5ODllLi4yNGNkZjk3IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20veGl2ZS5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS94aXZlLmgKQEAgLTk5LDYgKzk5LDcgQEAgZXh0ZXJuIHZvaWQgeGl2ZV9mbHVzaF9pbnRlcnJ1cHQodm9pZCk7CiAKIC8qIHhtb24gaG9vayAqLwogZXh0ZXJuIHZvaWQgeG1vbl94aXZlX2RvX2R1bXAoaW50IGNwdSk7CitleHRlcm4gaW50IHhtb25feGl2ZV9nZXRfaXJxX2NvbmZpZyh1MzIgaHdfaXJxLCBzdHJ1Y3QgaXJxX2RhdGEgKmQpOwogCiAvKiBBUElzIHVzZWQgYnkgS1ZNICovCiBleHRlcm4gdTMyIHhpdmVfbmF0aXZlX2RlZmF1bHRfZXFfc2hpZnQodm9pZCk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsLy5naXRpZ25vcmUgYi9hcmNoL3Bvd2VycGMva2VybmVsLy5naXRpZ25vcmUKaW5kZXggYzVmNjc2Yy4uNjdlYmQzMCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC8uZ2l0aWdub3JlCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvLmdpdGlnbm9yZQpAQCAtMSArMSwyIEBACitwcm9tX2luaXRfY2hlY2sKIHZtbGludXgubGRzCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL01ha2VmaWxlIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9NYWtlZmlsZQppbmRleCA1NmRmYTdhLi5hN2NhOGZlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL01ha2VmaWxlCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvTWFrZWZpbGUKQEAgLTUyLDcgKzUyLDcgQEAKIAkJCQkgICBvZl9wbGF0Zm9ybS5vIHByb21fcGFyc2Uubwogb2JqLSQoQ09ORklHX1BQQzY0KQkJKz0gc2V0dXBfNjQubyBzeXNfcHBjMzIubyBcCiAJCQkJICAgc2lnbmFsXzY0Lm8gcHRyYWNlMzIubyBcCi0JCQkJICAgcGFjYS5vIG52cmFtXzY0Lm8gZmlybXdhcmUubworCQkJCSAgIHBhY2EubyBudnJhbV82NC5vIGZpcm13YXJlLm8gbm90ZS5vCiBvYmotJChDT05GSUdfVkRTTzMyKQkJKz0gdmRzbzMyLwogb2JqLSQoQ09ORklHX1BQQ19XQVRDSERPRykJKz0gd2F0Y2hkb2cubwogb2JqLSQoQ09ORklHX0hBVkVfSFdfQlJFQUtQT0lOVCkJKz0gaHdfYnJlYWtwb2ludC5vCkBAIC03OCw3ICs3OCw5IEBACiAJCQkJICBlZWhfZHJpdmVyLm8gZWVoX2V2ZW50Lm8gZWVoX3N5c2ZzLm8KIG9iai0kKENPTkZJR19HRU5FUklDX1RCU1lOQykJKz0gc21wLXRic3luYy5vCiBvYmotJChDT05GSUdfQ1JBU0hfRFVNUCkJKz0gY3Jhc2hfZHVtcC5vCi1vYmotJChDT05GSUdfRkFfRFVNUCkJCSs9IGZhZHVtcC5vCitpZm5lcSAoJChDT05GSUdfRkFfRFVNUCkkKENPTkZJR19QUkVTRVJWRV9GQV9EVU1QKSwpCitvYmoteQkJCQkrPSBmYWR1bXAubworZW5kaWYKIGlmZGVmIENPTkZJR19QUEMzMgogb2JqLSQoQ09ORklHX0U1MDApCQkrPSBpZGxlX2U1MDAubwogZW5kaWYKQEAgLTE1NSw2ICsxNTcsOSBAQAogCiBvYmotJChDT05GSUdfRVBBUFJfUEFSQVZJUlQpCSs9IGVwYXByX3BhcmF2aXJ0Lm8gZXBhcHJfaGNhbGxzLm8KIG9iai0kKENPTkZJR19LVk1fR1VFU1QpCQkrPSBrdm0ubyBrdm1fZW11bC5vCitpZm5lcSAoJChDT05GSUdfUFBDX1BPV0VSTlYpJChDT05GSUdfUFBDX1NWTSksKQorb2JqLXkJCQkJKz0gdWNhbGwubworZW5kaWYKIAogIyBEaXNhYmxlIEdDT1YsIEtDT1YgJiBzYW5pdGl6ZXJzIGluIG9kZCBvciBzZW5zaXRpdmUgY29kZQogR0NPVl9QUk9GSUxFX3Byb21faW5pdC5vIDo9IG4KQEAgLTE4NCwxNSArMTg5LDEzIEBACiBleHRyYS0kKENPTkZJR19QUEM2NCkJCSs9IGVudHJ5XzY0Lm8KIGV4dHJhLSQoQ09ORklHX1BQQ19PRl9CT09UX1RSQU1QT0xJTkUpCSs9IHByb21faW5pdC5vCiAKLWlmZGVmIENPTkZJR19QUENfT0ZfQk9PVF9UUkFNUE9MSU5FCi0kKG9iaikvYnVpbHQtaW4uYToJCXByb21faW5pdF9jaGVjaworZXh0cmEtJChDT05GSUdfUFBDX09GX0JPT1RfVFJBTVBPTElORSkJKz0gcHJvbV9pbml0X2NoZWNrCiAKLXF1aWV0X2NtZF9wcm9tX2luaXRfY2hlY2sgPSBDQUxMICAgICQ8Ci0gICAgICBjbWRfcHJvbV9pbml0X2NoZWNrID0gJChDT05GSUdfU0hFTEwpICQ8ICIkKE5NKSIgIiQob2JqKS9wcm9tX2luaXQubyIKK3F1aWV0X2NtZF9wcm9tX2luaXRfY2hlY2sgPSBQUk9NQ0hLICRACisgICAgICBjbWRfcHJvbV9pbml0X2NoZWNrID0gJChDT05GSUdfU0hFTEwpICQ8ICIkKE5NKSIgJChvYmopL3Byb21faW5pdC5vOyB0b3VjaCAkQAogCi1QSE9OWSArPSBwcm9tX2luaXRfY2hlY2sKLXByb21faW5pdF9jaGVjazogJChzcmMpL3Byb21faW5pdF9jaGVjay5zaCAkKG9iaikvcHJvbV9pbml0Lm8KLQkkKGNhbGwgY21kLHByb21faW5pdF9jaGVjaykKLWVuZGlmCiskKG9iaikvcHJvbV9pbml0X2NoZWNrOiAkKHNyYykvcHJvbV9pbml0X2NoZWNrLnNoICQob2JqKS9wcm9tX2luaXQubyBGT1JDRQorCSQoY2FsbCBpZl9jaGFuZ2VkLHByb21faW5pdF9jaGVjaykKK3RhcmdldHMgKz0gcHJvbV9pbml0X2NoZWNrCiAKIGNsZWFuLWZpbGVzIDo9IHZtbGludXgubGRzCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2FzbS1vZmZzZXRzLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2FzbS1vZmZzZXRzLmMKaW5kZXggNGNjYjZiMy4uNDg0ZjU0ZCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9hc20tb2Zmc2V0cy5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvYXNtLW9mZnNldHMuYwpAQCAtNTA2LDYgKzUwNiw3IEBAIGludCBtYWluKHZvaWQpCiAJT0ZGU0VUKEtWTV9WUk1BX1NMQl9WLCBrdm0sIGFyY2gudnJtYV9zbGJfdik7CiAJT0ZGU0VUKEtWTV9SQURJWCwga3ZtLCBhcmNoLnJhZGl4KTsKIAlPRkZTRVQoS1ZNX0ZXTk1JLCBrdm0sIGFyY2guZndubWlfZW5hYmxlZCk7CisJT0ZGU0VUKEtWTV9TRUNVUkVfR1VFU1QsIGt2bSwgYXJjaC5zZWN1cmVfZ3Vlc3QpOwogCU9GRlNFVChWQ1BVX0RTSVNSLCBrdm1fdmNwdSwgYXJjaC5zaHJlZ3MuZHNpc3IpOwogCU9GRlNFVChWQ1BVX0RBUiwga3ZtX3ZjcHUsIGFyY2guc2hyZWdzLmRhcik7CiAJT0ZGU0VUKFZDUFVfVlBBLCBrdm1fdmNwdSwgYXJjaC52cGEucGlubmVkX2FkZHIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9jcHVfc2V0dXBfcG93ZXIuUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvY3B1X3NldHVwX3Bvd2VyLlMKaW5kZXggMzIzOWE5Zi4uYTQ2MDI5OCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9jcHVfc2V0dXBfcG93ZXIuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2NwdV9zZXR1cF9wb3dlci5TCkBAIC0yMyw2ICsyMyw3IEBACiAJYmVxbHIKIAlsaQlyMCwwCiAJbXRzcHIJU1BSTl9MUElELHIwCisJTE9BRF9SRUdfSU1NRURJQVRFKHIwLCBQQ1JfTUFTSykKIAltdHNwcglTUFJOX1BDUixyMAogCW1mc3ByCXIzLFNQUk5fTFBDUgogCWxpCXI0LChMUENSX0xQRVMxID4+IExQQ1JfTFBFU19TSCkKQEAgLTM3LDYgKzM4LDcgQEAKIAliZXFscgogCWxpCXIwLDAKIAltdHNwcglTUFJOX0xQSUQscjAKKwlMT0FEX1JFR19JTU1FRElBVEUocjAsIFBDUl9NQVNLKQogCW10c3ByCVNQUk5fUENSLHIwCiAJbWZzcHIJcjMsU1BSTl9MUENSCiAJbGkJcjQsKExQQ1JfTFBFUzEgPj4gTFBDUl9MUEVTX1NIKQpAQCAtNTQsNiArNTYsNyBAQAogCWJlcWxyCiAJbGkJcjAsMAogCW10c3ByCVNQUk5fTFBJRCxyMAorCUxPQURfUkVHX0lNTUVESUFURShyMCwgUENSX01BU0spCiAJbXRzcHIJU1BSTl9QQ1IscjAKIAltZnNwcglyMyxTUFJOX0xQQ1IKIAlvcmkJcjMsIHIzLCBMUENSX1BFQ0VESApAQCAtNzYsNiArNzksNyBAQAogCWJlcWxyCiAJbGkJcjAsMAogCW10c3ByCVNQUk5fTFBJRCxyMAorCUxPQURfUkVHX0lNTUVESUFURShyMCwgUENSX01BU0spCiAJbXRzcHIJU1BSTl9QQ1IscjAKIAltZnNwciAgIHIzLFNQUk5fTFBDUgogCW9yaQlyMywgcjMsIExQQ1JfUEVDRURICkBAIC05OCw2ICsxMDIsNyBAQAogCW10c3ByCVNQUk5fUFNTQ1IscjAKIAltdHNwcglTUFJOX0xQSUQscjAKIAltdHNwcglTUFJOX1BJRCxyMAorCUxPQURfUkVHX0lNTUVESUFURShyMCwgUENSX01BU0spCiAJbXRzcHIJU1BSTl9QQ1IscjAKIAltZnNwcglyMyxTUFJOX0xQQ1IKIAlMT0FEX1JFR19JTU1FRElBVEUocjQsIExQQ1JfUEVDRURIIHwgTFBDUl9QRUNFX0hWRUUgfCBMUENSX0hWSUNFICB8IExQQ1JfSEVJQykKQEAgLTEyMyw2ICsxMjgsNyBAQAogCW10c3ByCVNQUk5fUFNTQ1IscjAKIAltdHNwcglTUFJOX0xQSUQscjAKIAltdHNwcglTUFJOX1BJRCxyMAorCUxPQURfUkVHX0lNTUVESUFURShyMCwgUENSX01BU0spCiAJbXRzcHIJU1BSTl9QQ1IscjAKIAltZnNwciAgIHIzLFNQUk5fTFBDUgogCUxPQURfUkVHX0lNTUVESUFURShyNCwgTFBDUl9QRUNFREggfCBMUENSX1BFQ0VfSFZFRSB8IExQQ1JfSFZJQ0UgfCBMUENSX0hFSUMpCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2NwdXRhYmxlLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2NwdXRhYmxlLmMKaW5kZXggYmZlNWY0YS4uZTc0NWFiYyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9jcHV0YWJsZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvY3B1dGFibGUuYwpAQCAtNTY5LDcgKzU2OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY3B1X3NwZWMgX19pbml0ZGF0YSBjcHVfc3BlY3NbXSA9IHsKICNlbmRpZgkvKiBDT05GSUdfUFBDX0JPT0szU182NCAqLwogCiAjaWZkZWYgQ09ORklHX1BQQzMyCi0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfMzIKKyNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182MDEKIAl7CS8qIDYwMSAqLwogCQkucHZyX21hc2sJCT0gMHhmZmZmMDAwMCwKIAkJLnB2cl92YWx1ZQkJPSAweDAwMDEwMDAwLApAQCAtNTgzLDYgKzU4Myw4IEBAIHN0YXRpYyBzdHJ1Y3QgY3B1X3NwZWMgX19pbml0ZGF0YSBjcHVfc3BlY3NbXSA9IHsKIAkJLm1hY2hpbmVfY2hlY2sJCT0gbWFjaGluZV9jaGVja19nZW5lcmljLAogCQkucGxhdGZvcm0JCT0gInBwYzYwMSIsCiAJfSwKKyNlbmRpZiAvKiBDT05GSUdfUFBDX0JPT0szU182MDEgKi8KKyNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182eHgKIAl7CS8qIDYwMyAqLwogCQkucHZyX21hc2sJCT0gMHhmZmZmMDAwMCwKIAkJLnB2cl92YWx1ZQkJPSAweDAwMDMwMDAwLApAQCAtMTIxMiw3ICsxMjE0LDcgQEAgc3RhdGljIHN0cnVjdCBjcHVfc3BlYyBfX2luaXRkYXRhIGNwdV9zcGVjc1tdID0gewogCQkubWFjaGluZV9jaGVjawkJPSBtYWNoaW5lX2NoZWNrX2dlbmVyaWMsCiAJCS5wbGF0Zm9ybQkJPSAicHBjNjAzIiwKIAl9LAotI2VuZGlmIC8qIENPTkZJR19QUENfQk9PSzNTXzMyICovCisjZW5kaWYgLyogQ09ORklHX1BQQ19CT09LM1NfNnh4ICovCiAjaWZkZWYgQ09ORklHX1BQQ184eHgKIAl7CS8qIDh4eCAqLwogCQkucHZyX21hc2sJCT0gMHhmZmZmMDAwMCwKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZGJlbGwuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZGJlbGwuYwppbmRleCA4MDRiMWE2Li5mMTdmZjEyIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2RiZWxsLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9kYmVsbC5jCkBAIC0zMyw3ICszMyw3IEBAIHZvaWQgZG9vcmJlbGxfZ2xvYmFsX2lwaShpbnQgY3B1KQogewogCXUzMiB0YWcgPSBnZXRfaGFyZF9zbXBfcHJvY2Vzc29yX2lkKGNwdSk7CiAKLQlrdm1wcGNfc2V0X2hvc3RfaXBpKGNwdSwgMSk7CisJa3ZtcHBjX3NldF9ob3N0X2lwaShjcHUpOwogCS8qIE9yZGVyIHByZXZpb3VzIGFjY2Vzc2VzIHZzLiBtc2dzbmQsIHdoaWNoIGlzIHRyZWF0ZWQgYXMgYSBzdG9yZSAqLwogCXBwY19tc2dzbmRfc3luYygpOwogCXBwY19tc2dzbmQoUFBDX0RCRUxMX01TR1RZUEUsIDAsIHRhZyk7CkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgZG9vcmJlbGxfY29yZV9pcGkoaW50IGNwdSkKIHsKIAl1MzIgdGFnID0gY3B1X3RocmVhZF9pbl9jb3JlKGNwdSk7CiAKLQlrdm1wcGNfc2V0X2hvc3RfaXBpKGNwdSwgMSk7CisJa3ZtcHBjX3NldF9ob3N0X2lwaShjcHUpOwogCS8qIE9yZGVyIHByZXZpb3VzIGFjY2Vzc2VzIHZzLiBtc2dzbmQsIHdoaWNoIGlzIHRyZWF0ZWQgYXMgYSBzdG9yZSAqLwogCXBwY19tc2dzbmRfc3luYygpOwogCXBwY19tc2dzbmQoUFBDX0RCRUxMX01TR1RZUEUsIDAsIHRhZyk7CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgZG9vcmJlbGxfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCiAJbWF5X2hhcmRfaXJxX2VuYWJsZSgpOwogCi0Ja3ZtcHBjX3NldF9ob3N0X2lwaShzbXBfcHJvY2Vzc29yX2lkKCksIDApOworCWt2bXBwY19jbGVhcl9ob3N0X2lwaShzbXBfcHJvY2Vzc29yX2lkKCkpOwogCV9fdGhpc19jcHVfaW5jKGlycV9zdGF0LmRvb3JiZWxsX2lycXMpOwogCiAJc21wX2lwaV9kZW11eF9yZWxheGVkKCk7IC8qIGFscmVhZHkgcGVyZm9ybWVkIHRoZSBiYXJyaWVyICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2RtYS1pb21tdS5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9kbWEtaW9tbXUuYwppbmRleCBhMDg3OTY3Li5lNDg2ZDFkIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2RtYS1pb21tdS5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZG1hLWlvbW11LmMKQEAgLTEyMiwxOCArMTIyLDE3IEBAIGludCBkbWFfaW9tbXVfZG1hX3N1cHBvcnRlZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHU2NCBtYXNrKQogewogCXN0cnVjdCBpb21tdV90YWJsZSAqdGJsID0gZ2V0X2lvbW11X3RhYmxlX2Jhc2UoZGV2KTsKIAotCWlmICghdGJsKSB7Ci0JCWRldl9pbmZvKGRldiwgIldhcm5pbmc6IElPTU1VIGRtYSBub3Qgc3VwcG9ydGVkOiBtYXNrIDB4JTA4bGx4IgotCQkJIiwgdGFibGUgdW5hdmFpbGFibGVcbiIsIG1hc2spOwotCQlyZXR1cm4gMDsKLQl9Ci0KIAlpZiAoZGV2X2lzX3BjaShkZXYpICYmIGRtYV9pb21tdV9ieXBhc3Nfc3VwcG9ydGVkKGRldiwgbWFzaykpIHsKIAkJZGV2LT5hcmNoZGF0YS5pb21tdV9ieXBhc3MgPSB0cnVlOwogCQlkZXZfZGJnKGRldiwgImlvbW11OiA2NC1iaXQgT0ssIHVzaW5nIGZpeGVkIG9wc1xuIik7CiAJCXJldHVybiAxOwogCX0KIAorCWlmICghdGJsKSB7CisJCWRldl9lcnIoZGV2LCAiV2FybmluZzogSU9NTVUgZG1hIG5vdCBzdXBwb3J0ZWQ6IG1hc2sgMHglMDhsbHgsIHRhYmxlIHVuYXZhaWxhYmxlXG4iLCBtYXNrKTsKKwkJcmV0dXJuIDA7CisJfQorCiAJaWYgKHRibC0+aXRfb2Zmc2V0ID4gKG1hc2sgPj4gdGJsLT5pdF9wYWdlX3NoaWZ0KSkgewogCQlkZXZfaW5mbyhkZXYsICJXYXJuaW5nOiBJT01NVSBvZmZzZXQgdG9vIGJpZyBmb3IgZGV2aWNlIG1hc2tcbiIpOwogCQlkZXZfaW5mbyhkZXYsICJtYXNrOiAweCUwOGxseCwgdGFibGUgb2Zmc2V0OiAweCUwOGx4XG4iLApAQCAtMjA4LDQgKzIwNyw2IEBAIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBkbWFfaW9tbXVfb3BzID0gewogCS5zeW5jX3NpbmdsZV9mb3JfZGV2aWNlCT0gZG1hX2lvbW11X3N5bmNfZm9yX2RldmljZSwKIAkuc3luY19zZ19mb3JfY3B1CT0gZG1hX2lvbW11X3N5bmNfc2dfZm9yX2NwdSwKIAkuc3luY19zZ19mb3JfZGV2aWNlCT0gZG1hX2lvbW11X3N5bmNfc2dfZm9yX2RldmljZSwKKwkubW1hcAkJCT0gZG1hX2NvbW1vbl9tbWFwLAorCS5nZXRfc2d0YWJsZQkJPSBkbWFfY29tbW9uX2dldF9zZ3RhYmxlLAogfTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZHRfY3B1X2Z0cnMuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZHRfY3B1X2Z0cnMuYwppbmRleCBiZDk1MzE4Li4xODBiM2E1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2R0X2NwdV9mdHJzLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9kdF9jcHVfZnRycy5jCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgX19yZXN0b3JlX2NwdV9jcHVmZWF0dXJlcyh2b2lkKQogCWlmIChodl9tb2RlKSB7CiAJCW10c3ByKFNQUk5fTFBJRCwgMCk7CiAJCW10c3ByKFNQUk5fSEZTQ1IsIHN5c3RlbV9yZWdpc3RlcnMuaGZzY3IpOwotCQltdHNwcihTUFJOX1BDUiwgMCk7CisJCW10c3ByKFNQUk5fUENSLCBQQ1JfTUFTSyk7CiAJfQogCW10c3ByKFNQUk5fRlNDUiwgc3lzdGVtX3JlZ2lzdGVycy5mc2NyKTsKIApAQCAtMTQ0LDYgKzE0NCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBjcHVmZWF0dXJlc19zZXR1cF9jcHUodm9pZCkKIAkJbXRzcHIoU1BSTl9IRlNDUiwgMCk7CiAJfQogCW10c3ByKFNQUk5fRlNDUiwgMCk7CisJbXRzcHIoU1BSTl9QQ1IsIFBDUl9NQVNLKTsKIAogCS8qCiAJICogTFBDUiBkb2VzIG5vdCBnZXQgY2xlYXJlZCwgdG8gbWF0Y2ggYmVoYXZpb3VyIHdpdGggc2Vjb25kYXJpZXMKQEAgLTY5MSw5ICs2OTIsMzcgQEAgc3RhdGljIGJvb2wgX19pbml0IGNwdWZlYXR1cmVzX3Byb2Nlc3NfZmVhdHVyZShzdHJ1Y3QgZHRfY3B1X2ZlYXR1cmUgKmYpCiAJcmV0dXJuIHRydWU7CiB9CiAKKy8qCisgKiBIYW5kbGUgUE9XRVI5IGJyb2FkY2FzdCB0bGJpZSBpbnZhbGlkYXRpb24gaXNzdWUgdXNpbmcKKyAqIGNwdSBmZWF0dXJlIGZsYWcuCisgKi8KK3N0YXRpYyBfX2luaXQgdm9pZCB1cGRhdGVfdGxiaWVfZmVhdHVyZV9mbGFnKHVuc2lnbmVkIGxvbmcgcHZyKQoreworCWlmIChQVlJfVkVSKHB2cikgPT0gUFZSX1BPV0VSOSkgeworCQkvKgorCQkgKiBTZXQgdGhlIHRsYmllIGZlYXR1cmUgZmxhZyBmb3IgYW55dGhpbmcgYmVsb3cKKwkJICogTmltYnVzIEREIDIuMyBhbmQgQ3VtdWx1cyBERCAxLjMKKwkJICovCisJCWlmICgocHZyICYgMHhlMDAwKSA9PSAwKSB7CisJCQkvKiBOaW1idXMgKi8KKwkJCWlmICgocHZyICYgMHhmZmYpIDwgMHgyMDMpCisJCQkJY3VyX2NwdV9zcGVjLT5jcHVfZmVhdHVyZXMgfD0gQ1BVX0ZUUl9QOV9UTEJJRV9TVFFfQlVHOworCQl9IGVsc2UgaWYgKChwdnIgJiAweGMwMDApID09IDApIHsKKwkJCS8qIEN1bXVsdXMgKi8KKwkJCWlmICgocHZyICYgMHhmZmYpIDwgMHgxMDMpCisJCQkJY3VyX2NwdV9zcGVjLT5jcHVfZmVhdHVyZXMgfD0gQ1BVX0ZUUl9QOV9UTEJJRV9TVFFfQlVHOworCQl9IGVsc2UgeworCQkJV0FSTl9PTkNFKDEsICJVbmtub3duIFBWUiIpOworCQkJY3VyX2NwdV9zcGVjLT5jcHVfZmVhdHVyZXMgfD0gQ1BVX0ZUUl9QOV9UTEJJRV9TVFFfQlVHOworCQl9CisKKwkJY3VyX2NwdV9zcGVjLT5jcHVfZmVhdHVyZXMgfD0gQ1BVX0ZUUl9QOV9UTEJJRV9FUkFUX0JVRzsKKwl9Cit9CisKIHN0YXRpYyBfX2luaXQgdm9pZCBjcHVmZWF0dXJlc19jcHVfcXVpcmtzKHZvaWQpCiB7Ci0JaW50IHZlcnNpb24gPSBtZnNwcihTUFJOX1BWUik7CisJdW5zaWduZWQgbG9uZyB2ZXJzaW9uID0gbWZzcHIoU1BSTl9QVlIpOwogCiAJLyoKIAkgKiBOb3QgYWxsIHF1aXJrcyBjYW4gYmUgZGVyaXZlZCBmcm9tIHRoZSBjcHVmZWF0dXJlcyBkZXZpY2UgdHJlZS4KQEAgLTcxMiwxMCArNzQxLDEwIEBAIHN0YXRpYyBfX2luaXQgdm9pZCBjcHVmZWF0dXJlc19jcHVfcXVpcmtzKHZvaWQpCiAKIAlpZiAoKHZlcnNpb24gJiAweGZmZmYwMDAwKSA9PSAweDAwNGUwMDAwKSB7CiAJCWN1cl9jcHVfc3BlYy0+Y3B1X2ZlYXR1cmVzICY9IH4oQ1BVX0ZUUl9EQVdSKTsKLQkJY3VyX2NwdV9zcGVjLT5jcHVfZmVhdHVyZXMgfD0gQ1BVX0ZUUl9QOV9UTEJJRV9CVUc7CiAJCWN1cl9jcHVfc3BlYy0+Y3B1X2ZlYXR1cmVzIHw9IENQVV9GVFJfUDlfVElEUjsKIAl9CiAKKwl1cGRhdGVfdGxiaWVfZmVhdHVyZV9mbGFnKHZlcnNpb24pOwogCS8qCiAJICogUEtFWSB3YXMgbm90IGluIHRoZSBpbml0aWFsIGJhc2Ugb3IgZmVhdHVyZSBub2RlCiAJICogc3BlY2lmaWNhdGlvbiwgYnV0IGl0IHNob3VsZCBiZWNvbWUgb3B0aW9uYWwgaW4gdGhlIG5leHQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZWVoLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2VlaC5jCmluZGV4IGMwZTRiNzMuLmJjOGE1NTEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZWVoLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWguYwpAQCAtMTUwLDYgKzE1MCwxNiBAQCBzdGF0aWMgaW50IF9faW5pdCBlZWhfc2V0dXAoY2hhciAqc3RyKQogfQogX19zZXR1cCgiZWVoPSIsIGVlaF9zZXR1cCk7CiAKK3ZvaWQgZWVoX3Nob3dfZW5hYmxlZCh2b2lkKQoreworCWlmIChlZWhfaGFzX2ZsYWcoRUVIX0ZPUkNFX0RJU0FCTEVEKSkKKwkJcHJfaW5mbygiRUVIOiBSZWNvdmVyeSBkaXNhYmxlZCBieSBrZXJuZWwgcGFyYW1ldGVyLlxuIik7CisJZWxzZSBpZiAoZWVoX2hhc19mbGFnKEVFSF9FTkFCTEVEKSkKKwkJcHJfaW5mbygiRUVIOiBDYXBhYmxlIGFkYXB0ZXIgZm91bmQ6IHJlY292ZXJ5IGVuYWJsZWQuXG4iKTsKKwllbHNlCisJCXByX2luZm8oIkVFSDogTm8gY2FwYWJsZSBhZGFwdGVycyBmb3VuZDogcmVjb3ZlcnkgZGlzYWJsZWQuXG4iKTsKK30KKwogLyoKICAqIFRoaXMgcm91dGluZSBjYXB0dXJlcyBhc3NvcnRlZCBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZSBkYXRhCiAgKiBmb3IgdGhlIGluZGljYXRlZCBQQ0kgZGV2aWNlLCBhbmQgcHV0cyB0aGVtIGludG8gYSBidWZmZXIKQEAgLTQxMCwxMSArNDIwLDkgQEAgc3RhdGljIGludCBlZWhfcGhiX2NoZWNrX2ZhaWx1cmUoc3RydWN0IGVlaF9wZSAqcGUpCiAJZWVoX3BlX21hcmtfaXNvbGF0ZWQocGhiX3BlKTsKIAllZWhfc2VyaWFsaXplX3VubG9jayhmbGFncyk7CiAKLQlwcl9lcnIoIkVFSDogUEhCIyV4IGZhaWx1cmUgZGV0ZWN0ZWQsIGxvY2F0aW9uOiAlc1xuIiwKKwlwcl9kZWJ1ZygiRUVIOiBQSEIjJXggZmFpbHVyZSBkZXRlY3RlZCwgbG9jYXRpb246ICVzXG4iLAogCQlwaGJfcGUtPnBoYi0+Z2xvYmFsX251bWJlciwgZWVoX3BlX2xvY19nZXQocGhiX3BlKSk7Ci0JZHVtcF9zdGFjaygpOwogCWVlaF9zZW5kX2ZhaWx1cmVfZXZlbnQocGhiX3BlKTsKLQogCXJldHVybiAxOwogb3V0OgogCWVlaF9zZXJpYWxpemVfdW5sb2NrKGZsYWdzKTsKQEAgLTQ0MSw3ICs0NDksNyBAQCBpbnQgZWVoX2Rldl9jaGVja19mYWlsdXJlKHN0cnVjdCBlZWhfZGV2ICplZGV2KQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc3RydWN0IGRldmljZV9ub2RlICpkbjsKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2OwotCXN0cnVjdCBlZWhfcGUgKnBlLCAqcGFyZW50X3BlLCAqcGhiX3BlOworCXN0cnVjdCBlZWhfcGUgKnBlLCAqcGFyZW50X3BlOwogCWludCByYyA9IDA7CiAJY29uc3QgY2hhciAqbG9jYXRpb24gPSBOVUxMOwogCkBAIC00NjAsOCArNDY4LDcgQEAgaW50IGVlaF9kZXZfY2hlY2tfZmFpbHVyZShzdHJ1Y3QgZWVoX2RldiAqZWRldikKIAkvKiBBY2Nlc3MgdG8gSU8gQkFScyBtaWdodCBnZXQgdGhpcyBmYXIgYW5kIHN0aWxsIG5vdCB3YW50IGNoZWNraW5nLiAqLwogCWlmICghcGUpIHsKIAkJZWVoX3N0YXRzLmlnbm9yZWRfY2hlY2srKzsKLQkJcHJfZGVidWcoIkVFSDogSWdub3JlZCBjaGVjayBmb3IgJXNcbiIsCi0JCQllZWhfcGNpX25hbWUoZGV2KSk7CisJCWVlaF9lZGV2X2RiZyhlZGV2LCAiSWdub3JlZCBjaGVja1xuIik7CiAJCXJldHVybiAwOwogCX0KIApAQCAtNTAxLDEyICs1MDgsMTEgQEAgaW50IGVlaF9kZXZfY2hlY2tfZmFpbHVyZShzdHJ1Y3QgZWVoX2RldiAqZWRldikKIAkJCWlmIChkbikKIAkJCQlsb2NhdGlvbiA9IG9mX2dldF9wcm9wZXJ0eShkbiwgImlibSxsb2MtY29kZSIsCiAJCQkJCQlOVUxMKTsKLQkJCXByaW50ayhLRVJOX0VSUiAiRUVIOiAlZCByZWFkcyBpZ25vcmVkIGZvciByZWNvdmVyaW5nIGRldmljZSBhdCAiCi0JCQkJImxvY2F0aW9uPSVzIGRyaXZlcj0lcyBwY2kgYWRkcj0lc1xuIiwKKwkJCWVlaF9lZGV2X2VycihlZGV2LCAiJWQgcmVhZHMgaWdub3JlZCBmb3IgcmVjb3ZlcmluZyBkZXZpY2UgYXQgbG9jYXRpb249JXMgZHJpdmVyPSVzXG4iLAogCQkJCXBlLT5jaGVja19jb3VudCwKIAkJCQlsb2NhdGlvbiA/IGxvY2F0aW9uIDogInVua25vd24iLAotCQkJCWVlaF9kcml2ZXJfbmFtZShkZXYpLCBlZWhfcGNpX25hbWUoZGV2KSk7Ci0JCQlwcmludGsoS0VSTl9FUlIgIkVFSDogTWlnaHQgYmUgaW5maW5pdGUgbG9vcCBpbiAlcyBkcml2ZXJcbiIsCisJCQkJZWVoX2RyaXZlcl9uYW1lKGRldikpOworCQkJZWVoX2VkZXZfZXJyKGVkZXYsICJNaWdodCBiZSBpbmZpbml0ZSBsb29wIGluICVzIGRyaXZlclxuIiwKIAkJCQllZWhfZHJpdmVyX25hbWUoZGV2KSk7CiAJCQlkdW1wX3N0YWNrKCk7CiAJCX0KQEAgLTU3MywxMyArNTc5LDggQEAgaW50IGVlaF9kZXZfY2hlY2tfZmFpbHVyZShzdHJ1Y3QgZWVoX2RldiAqZWRldikKIAkgKiBhIHN0YWNrIHRyYWNlIHdpbGwgaGVscCB0aGUgZGV2aWNlLWRyaXZlciBhdXRob3JzIGZpZ3VyZQogCSAqIG91dCB3aGF0IGhhcHBlbmVkLiAgU28gcHJpbnQgdGhhdCBvdXQuCiAJICovCi0JcGhiX3BlID0gZWVoX3BoYl9wZV9nZXQocGUtPnBoYik7Ci0JcHJfZXJyKCJFRUg6IEZyb3plbiBQSEIjJXgtUEUjJXggZGV0ZWN0ZWRcbiIsCi0JICAgICAgIHBlLT5waGItPmdsb2JhbF9udW1iZXIsIHBlLT5hZGRyKTsKLQlwcl9lcnIoIkVFSDogUEUgbG9jYXRpb246ICVzLCBQSEIgbG9jYXRpb246ICVzXG4iLAotCSAgICAgICBlZWhfcGVfbG9jX2dldChwZSksIGVlaF9wZV9sb2NfZ2V0KHBoYl9wZSkpOwotCWR1bXBfc3RhY2soKTsKLQorCXByX2RlYnVnKCJFRUg6ICVzOiBGcm96ZW4gUEhCIyV4LVBFIyV4IGRldGVjdGVkXG4iLAorCQlfX2Z1bmNfXywgcGUtPnBoYi0+Z2xvYmFsX251bWJlciwgcGUtPmFkZHIpOwogCWVlaF9zZW5kX2ZhaWx1cmVfZXZlbnQocGUpOwogCiAJcmV0dXJuIDE7CkBAIC02OTcsNyArNjk4LDcgQEAgaW50IGVlaF9wY2lfZW5hYmxlKHN0cnVjdCBlZWhfcGUgKnBlLCBpbnQgZnVuY3Rpb24pCiAJcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgdm9pZCAqZWVoX2Rpc2FibGVfYW5kX3NhdmVfZGV2X3N0YXRlKHN0cnVjdCBlZWhfZGV2ICplZGV2LAorc3RhdGljIHZvaWQgZWVoX2Rpc2FibGVfYW5kX3NhdmVfZGV2X3N0YXRlKHN0cnVjdCBlZWhfZGV2ICplZGV2LAogCQkJCQkgICAgdm9pZCAqdXNlcmRhdGEpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBlZWhfZGV2X3RvX3BjaV9kZXYoZWRldik7CkBAIC03MDgsNyArNzA5LDcgQEAgc3RhdGljIHZvaWQgKmVlaF9kaXNhYmxlX2FuZF9zYXZlX2Rldl9zdGF0ZShzdHJ1Y3QgZWVoX2RldiAqZWRldiwKIAkgKiBzdGF0ZSBmb3IgdGhlIHNwZWNpZmllZCBkZXZpY2UKIAkgKi8KIAlpZiAoIXBkZXYgfHwgcGRldiA9PSBkZXYpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm47CiAKIAkvKiBFbnN1cmUgd2UgaGF2ZSBEMCBwb3dlciBzdGF0ZSAqLwogCXBjaV9zZXRfcG93ZXJfc3RhdGUocGRldiwgUENJX0QwKTsKQEAgLTcyMSwxOCArNzIyLDE2IEBAIHN0YXRpYyB2b2lkICplZWhfZGlzYWJsZV9hbmRfc2F2ZV9kZXZfc3RhdGUoc3RydWN0IGVlaF9kZXYgKmVkZXYsCiAJICogaW50ZXJydXB0IGZyb20gdGhlIGRldmljZQogCSAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZChwZGV2LCBQQ0lfQ09NTUFORCwgUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFKTsKLQotCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgdm9pZCAqZWVoX3Jlc3RvcmVfZGV2X3N0YXRlKHN0cnVjdCBlZWhfZGV2ICplZGV2LCB2b2lkICp1c2VyZGF0YSkKK3N0YXRpYyB2b2lkIGVlaF9yZXN0b3JlX2Rldl9zdGF0ZShzdHJ1Y3QgZWVoX2RldiAqZWRldiwgdm9pZCAqdXNlcmRhdGEpCiB7CiAJc3RydWN0IHBjaV9kbiAqcGRuID0gZWVoX2Rldl90b19wZG4oZWRldik7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBlZWhfZGV2X3RvX3BjaV9kZXYoZWRldik7CiAJc3RydWN0IHBjaV9kZXYgKmRldiA9IHVzZXJkYXRhOwogCiAJaWYgKCFwZGV2KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuOwogCiAJLyogQXBwbHkgY3VzdG9taXphdGlvbiBmcm9tIGZpcm13YXJlICovCiAJaWYgKHBkbiAmJiBlZWhfb3BzLT5yZXN0b3JlX2NvbmZpZykKQEAgLTc0MSw4ICs3NDAsNiBAQCBzdGF0aWMgdm9pZCAqZWVoX3Jlc3RvcmVfZGV2X3N0YXRlKHN0cnVjdCBlZWhfZGV2ICplZGV2LCB2b2lkICp1c2VyZGF0YSkKIAkvKiBUaGUgY2FsbGVyIHNob3VsZCByZXN0b3JlIHN0YXRlIGZvciB0aGUgc3BlY2lmaWVkIGRldmljZSAqLwogCWlmIChwZGV2ICE9IGRldikKIAkJcGNpX3Jlc3RvcmVfc3RhdGUocGRldik7Ci0KLQlyZXR1cm4gTlVMTDsKIH0KIAogaW50IGVlaF9yZXN0b3JlX3ZmX2NvbmZpZyhzdHJ1Y3QgcGNpX2RuICpwZG4pCkBAIC04NjgsNyArODY1LDcgQEAgaW50IHBjaWJpb3Nfc2V0X3BjaWVfcmVzZXRfc3RhdGUoc3RydWN0IHBjaV9kZXYgKmRldiwgZW51bSBwY2llX3Jlc2V0X3N0YXRlIHN0YXQKICAqIHRoZSBpbmRpY2F0ZWQgZGV2aWNlIGFuZCBpdHMgY2hpbGRyZW4gc28gdGhhdCB0aGUgYnVuY2ggb2YgdGhlCiAgKiBkZXZpY2VzIGNvdWxkIGJlIHJlc2V0IHByb3Blcmx5LgogICovCi1zdGF0aWMgdm9pZCAqZWVoX3NldF9kZXZfZnJlc2V0KHN0cnVjdCBlZWhfZGV2ICplZGV2LCB2b2lkICpmbGFnKQorc3RhdGljIHZvaWQgZWVoX3NldF9kZXZfZnJlc2V0KHN0cnVjdCBlZWhfZGV2ICplZGV2LCB2b2lkICpmbGFnKQogewogCXN0cnVjdCBwY2lfZGV2ICpkZXY7CiAJdW5zaWduZWQgaW50ICpmcmVzZXQgPSAodW5zaWduZWQgaW50ICopZmxhZzsKQEAgLTg3Niw4ICs4NzMsNiBAQCBzdGF0aWMgdm9pZCAqZWVoX3NldF9kZXZfZnJlc2V0KHN0cnVjdCBlZWhfZGV2ICplZGV2LCB2b2lkICpmbGFnKQogCWRldiA9IGVlaF9kZXZfdG9fcGNpX2RldihlZGV2KTsKIAlpZiAoZGV2KQogCQkqZnJlc2V0IHw9IGRldi0+bmVlZHNfZnJlc2V0OwotCi0JcmV0dXJuIE5VTEw7CiB9CiAKIHN0YXRpYyB2b2lkIGVlaF9wZV9yZWZyZWV6ZV9wYXNzZWQoc3RydWN0IGVlaF9wZSAqcm9vdCkKQEAgLTEwNjMsMjMgKzEwNTgsNiBAQCBzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGVlaF9yZWJvb3RfbmIgPSB7CiAJLm5vdGlmaWVyX2NhbGwgPSBlZWhfcmVib290X25vdGlmaWVyLAogfTsKIAotdm9pZCBlZWhfcHJvYmVfZGV2aWNlcyh2b2lkKQotewotCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSwgKnRtcDsKLQlzdHJ1Y3QgcGNpX2RuICpwZG47Ci0KLQkvKiBFbmFibGUgRUVIIGZvciBhbGwgYWRhcHRlcnMgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaG9zZSwgdG1wLCAmaG9zZV9saXN0LCBsaXN0X25vZGUpIHsKLQkJcGRuID0gaG9zZS0+cGNpX2RhdGE7Ci0JCXRyYXZlcnNlX3BjaV9kbihwZG4sIGVlaF9vcHMtPnByb2JlLCBOVUxMKTsKLQl9Ci0JaWYgKGVlaF9lbmFibGVkKCkpCi0JCXByX2luZm8oIkVFSDogUENJIEVuaGFuY2VkIEkvTyBFcnJvciBIYW5kbGluZyBFbmFibGVkXG4iKTsKLQllbHNlCi0JCXByX2luZm8oIkVFSDogTm8gY2FwYWJsZSBhZGFwdGVycyBmb3VuZFxuIik7Ci0KLX0KLQogLyoqCiAgKiBlZWhfaW5pdCAtIEVFSCBpbml0aWFsaXphdGlvbgogICoKQEAgLTExMjAsNiArMTA5OCw4IEBAIHN0YXRpYyBpbnQgZWVoX2luaXQodm9pZCkKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaG9zZSwgdG1wLCAmaG9zZV9saXN0LCBsaXN0X25vZGUpCiAJCWVlaF9kZXZfcGhiX2luaXRfZHluYW1pYyhob3NlKTsKIAorCWVlaF9hZGRyX2NhY2hlX2luaXQoKTsKKwogCS8qIEluaXRpYWxpemUgRUVIIGV2ZW50ICovCiAJcmV0dXJuIGVlaF9ldmVudF9pbml0KCk7CiB9CkBAIC0xMTkwLDE1ICsxMTcwLDE0IEBAIHZvaWQgZWVoX2FkZF9kZXZpY2VfbGF0ZShzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCXN0cnVjdCBwY2lfZG4gKnBkbjsKIAlzdHJ1Y3QgZWVoX2RldiAqZWRldjsKIAotCWlmICghZGV2IHx8ICFlZWhfZW5hYmxlZCgpKQorCWlmICghZGV2KQogCQlyZXR1cm47CiAKLQlwcl9kZWJ1ZygiRUVIOiBBZGRpbmcgZGV2aWNlICVzXG4iLCBwY2lfbmFtZShkZXYpKTsKLQogCXBkbiA9IHBjaV9nZXRfcGRuX2J5X2RldmZuKGRldi0+YnVzLCBkZXYtPmRldmZuKTsKIAllZGV2ID0gcGRuX3RvX2VlaF9kZXYocGRuKTsKKwllZWhfZWRldl9kYmcoZWRldiwgIkFkZGluZyBkZXZpY2VcbiIpOwogCWlmIChlZGV2LT5wZGV2ID09IGRldikgewotCQlwcl9kZWJ1ZygiRUVIOiBBbHJlYWR5IHJlZmVyZW5jZWQgIVxuIik7CisJCWVlaF9lZGV2X2RiZyhlZGV2LCAiRGV2aWNlIGFscmVhZHkgcmVmZXJlbmNlZCFcbiIpOwogCQlyZXR1cm47CiAJfQogCkBAIC0xMjQ2LDYgKzEyMjUsOCBAQCB2b2lkIGVlaF9hZGRfZGV2aWNlX3RyZWVfbGF0ZShzdHJ1Y3QgcGNpX2J1cyAqYnVzKQogewogCXN0cnVjdCBwY2lfZGV2ICpkZXY7CiAKKwlpZiAoZWVoX2hhc19mbGFnKEVFSF9GT1JDRV9ESVNBQkxFRCkpCisJCXJldHVybjsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmJ1cy0+ZGV2aWNlcywgYnVzX2xpc3QpIHsKIAkJZWVoX2FkZF9kZXZpY2VfbGF0ZShkZXYpOwogCQlpZiAoZGV2LT5oZHJfdHlwZSA9PSBQQ0lfSEVBREVSX1RZUEVfQlJJREdFKSB7CkBAIC0xMjk5LDEwICsxMjgwLDEwIEBAIHZvaWQgZWVoX3JlbW92ZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldikKIAllZGV2ID0gcGNpX2Rldl90b19lZWhfZGV2KGRldik7CiAKIAkvKiBVbnJlZ2lzdGVyIHRoZSBkZXZpY2Ugd2l0aCB0aGUgRUVIL1BDSSBhZGRyZXNzIHNlYXJjaCBzeXN0ZW0gKi8KLQlwcl9kZWJ1ZygiRUVIOiBSZW1vdmluZyBkZXZpY2UgJXNcbiIsIHBjaV9uYW1lKGRldikpOworCWRldl9kYmcoJmRldi0+ZGV2LCAiRUVIOiBSZW1vdmluZyBkZXZpY2VcbiIpOwogCiAJaWYgKCFlZGV2IHx8ICFlZGV2LT5wZGV2IHx8ICFlZGV2LT5wZSkgewotCQlwcl9kZWJ1ZygiRUVIOiBOb3QgcmVmZXJlbmNlZCAhXG4iKTsKKwkJZGV2X2RiZygmZGV2LT5kZXYsICJFRUg6IERldmljZSBub3QgcmVmZXJlbmNlZCFcbiIpOwogCQlyZXR1cm47CiAJfQogCkBAIC0xODkwLDYgKzE4NzEsMTk4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGVlaF9mb3JjZV9yZWNvdmVyX2ZvcHMgPSB7CiAJLmxsc2Vlawk9IG5vX2xsc2VlaywKIAkud3JpdGUJPSBlZWhfZm9yY2VfcmVjb3Zlcl93cml0ZSwKIH07CisKK3N0YXRpYyBzc2l6ZV90IGVlaF9kZWJ1Z2ZzX2Rldl91c2FnZShzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJCQljaGFyIF9fdXNlciAqdXNlcl9idWYsCisJCQkJc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RhdGljIGNvbnN0IGNoYXIgdXNhZ2VbXSA9ICJpbnB1dCBmb3JtYXQ6IDxkb21haW4+OjxidXM+OjxkZXY+Ljxmbj5cbiI7CisKKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLAorCQkJCSAgICAgICB1c2FnZSwgc2l6ZW9mKHVzYWdlKSAtIDEpOworfQorCitzdGF0aWMgc3NpemVfdCBlZWhfZGV2X2NoZWNrX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAorCQkJCWNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZiwKKwkJCQlzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKK3sKKwl1aW50MzJfdCBkb21haW4sIGJ1cywgZGV2LCBmbjsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKKwlzdHJ1Y3QgZWVoX2RldiAqZWRldjsKKwljaGFyIGJ1ZlsyMF07CisJaW50IHJldDsKKworCW1lbXNldChidWYsIDAsIHNpemVvZihidWYpKTsKKwlyZXQgPSBzaW1wbGVfd3JpdGVfdG9fYnVmZmVyKGJ1Ziwgc2l6ZW9mKGJ1ZiktMSwgcHBvcywgdXNlcl9idWYsIGNvdW50KTsKKwlpZiAoIXJldCkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlyZXQgPSBzc2NhbmYoYnVmLCAiJXg6JXg6JXguJXgiLCAmZG9tYWluLCAmYnVzLCAmZGV2LCAmZm4pOworCWlmIChyZXQgIT0gNCkgeworCQlwcl9lcnIoIiVzOiBleHBlY3RlZCA0IGFyZ3MsIGdvdCAlZFxuIiwgX19mdW5jX18sIHJldCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXBkZXYgPSBwY2lfZ2V0X2RvbWFpbl9idXNfYW5kX3Nsb3QoZG9tYWluLCBidXMsIChkZXYgPDwgMykgfCBmbik7CisJaWYgKCFwZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWVkZXYgPSBwY2lfZGV2X3RvX2VlaF9kZXYocGRldik7CisJaWYgKCFlZGV2KSB7CisJCXBjaV9lcnIocGRldiwgIk5vIGVlaF9kZXYgZm9yIHRoaXMgZGV2aWNlIVxuIik7CisJCXBjaV9kZXZfcHV0KHBkZXYpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlyZXQgPSBlZWhfZGV2X2NoZWNrX2ZhaWx1cmUoZWRldik7CisJcGNpX2luZm8ocGRldiwgImVlaF9kZXZfY2hlY2tfZmFpbHVyZSglMDR4OiUwMng6JTAyeC4lMDF4KSA9ICVkXG4iLAorCQkJZG9tYWluLCBidXMsIGRldiwgZm4sIHJldCk7CisKKwlwY2lfZGV2X3B1dChwZGV2KTsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZWVoX2Rldl9jaGVja19mb3BzID0geworCS5vcGVuCT0gc2ltcGxlX29wZW4sCisJLmxsc2Vlawk9IG5vX2xsc2VlaywKKwkud3JpdGUJPSBlZWhfZGV2X2NoZWNrX3dyaXRlLAorCS5yZWFkICAgPSBlZWhfZGVidWdmc19kZXZfdXNhZ2UsCit9OworCitzdGF0aWMgaW50IGVlaF9kZWJ1Z2ZzX2JyZWFrX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKwlzdHJ1Y3QgcmVzb3VyY2UgKmJhciA9IE5VTEw7CisJdm9pZCBfX2lvbWVtICptYXBwZWQ7CisJdTE2IG9sZCwgYml0OworCWludCBpLCBwb3M7CisKKwkvKiBEbyB3ZSBoYXZlIGFuIE1NSU8gQkFSIHRvIGRpc2FibGU/ICovCisJZm9yIChpID0gMDsgaSA8PSBQQ0lfU1REX1JFU09VUkNFX0VORDsgaSsrKSB7CisJCXN0cnVjdCByZXNvdXJjZSAqciA9ICZwZGV2LT5yZXNvdXJjZVtpXTsKKworCQlpZiAoIXItPmZsYWdzIHx8ICFyLT5zdGFydCkKKwkJCWNvbnRpbnVlOworCQlpZiAoci0+ZmxhZ3MgJiBJT1JFU09VUkNFX0lPKQorCQkJY29udGludWU7CisJCWlmIChyLT5mbGFncyAmIElPUkVTT1VSQ0VfVU5TRVQpCisJCQljb250aW51ZTsKKworCQliYXIgPSByOworCQlicmVhazsKKwl9CisKKwlpZiAoIWJhcikgeworCQlwY2lfZXJyKHBkZXYsICJVbmFibGUgdG8gZmluZCBNZW1vcnkgQkFSIHRvIGNhdXNlIEVFSCB3aXRoXG4iKTsKKwkJcmV0dXJuIC1FTlhJTzsKKwl9CisKKwlwY2lfZXJyKHBkZXYsICJHb2luZyB0byBicmVhazogJXBSXG4iLCBiYXIpOworCisJaWYgKHBkZXYtPmlzX3ZpcnRmbikgeworI2lmbmRlZiBDT05GSUdfUENJX0lPVgorCQlyZXR1cm4gLUVOWElPOworI2Vsc2UKKwkJLyoKKwkJICogVkZzIGRvbid0IGhhdmUgYSBwZXItZnVuY3Rpb24gQ09NTUFORCByZWdpc3Rlciwgc28gdGhlIGJlc3QKKwkJICogd2UgY2FuIGRvIGlzIGNsZWFyIHRoZSBNZW1vcnkgU3BhY2UgRW5hYmxlIGJpdCBpbiB0aGUgUEYncworCQkgKiBTUklPViBjb250cm9sIHJlZy4KKwkJICoKKwkJICogVW5mb3J0dW5hdGVseSwgdGhpcyByZXF1aXJlcyB0aGF0IHdlIGhhdmUgYSBQRiAoaS5lIGRvZXNuJ3QKKwkJICogd29yayBmb3IgYSBwYXNzZWQtdGhyb3VnaCBWRikgYW5kIGl0IGhhcyB0aGUgcG90ZW50aWFsIHNpZGUKKwkJICogZWZmZWN0IG9mIGFsc28gY2F1c2luZyBhbiBFRUggb24gZXZlcnkgb3RoZXIgVkYgdW5kZXIgdGhlCisJCSAqIFBGLiBPaCB3ZWxsLgorCQkgKi8KKwkJcGRldiA9IHBkZXYtPnBoeXNmbjsKKwkJaWYgKCFwZGV2KQorCQkJcmV0dXJuIC1FTlhJTzsgLyogcGFzc2VkIHRocm91Z2ggVkZzIGhhdmUgbm8gUEYgKi8KKworCQlwb3MgID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkocGRldiwgUENJX0VYVF9DQVBfSURfU1JJT1YpOworCQlwb3MgKz0gUENJX1NSSU9WX0NUUkw7CisJCWJpdCAgPSBQQ0lfU1JJT1ZfQ1RSTF9NU0U7CisjZW5kaWYgLyogIUNPTkZJR19QQ0lfSU9WICovCisJfSBlbHNlIHsKKwkJYml0ID0gUENJX0NPTU1BTkRfTUVNT1JZOworCQlwb3MgPSBQQ0lfQ09NTUFORDsKKwl9CisKKwkvKgorCSAqIFByb2Nlc3MgaGVyZSBpczoKKwkgKgorCSAqIDEuIERpc2FibGUgTWVtb3J5IHNwYWNlLgorCSAqCisJICogMi4gUGVyZm9ybSBhbiBNTUlPIHRvIHRoZSBkZXZpY2UuIFRoaXMgc2hvdWxkIHJlc3VsdCBpbiBhbiBlcnJvcgorCSAqICAgIChDQSAgLyBVUikgYmVpbmcgcmFpc2VkIGJ5IHRoZSBkZXZpY2Ugd2hpY2ggcmVzdWx0cyBpbiBhbiBFRUgKKwkgKiAgICBQRSBmcmVlemUuIFVzaW5nIHRoZSBpbl84KCkgYWNjZXNzb3Igc2tpcHMgdGhlIGVlaCBkZXRlY3Rpb24gaG9vaworCSAqICAgIHNvIHRoZSBmcmVlemUgaG9vayBzbyB0aGUgRUVIIERldGVjdGlvbiBtYWNoaW5lcnkgd29uJ3QgYmUKKwkgKiAgICB0cmlnZ2VyZWQgaGVyZS4gVGhpcyBpcyB0byBtYXRjaCB0aGUgdXN1YWwgYmVoYXZpb3VyIG9mIEVFSAorCSAqICAgIHdoZXJlIHRoZSBIVyB3aWxsIGFzeW5jcm9ub3VzbHkgZnJlZXplIGEgUEUgYW5kIGl0J3MgdXAgdG8KKwkgKiAgICB0aGUga2VybmVsIHRvIG5vdGljZSBhbmQgZGVhbCB3aXRoIGl0LgorCSAqCisJICogMy4gVHVybiBNZW1vcnkgc3BhY2UgYmFjayBvbi4gVGhpcyBpcyBtb3JlIGltcG9ydGFudCBmb3IgVkZzCisJICogICAgc2luY2UgcmVjb3Zlcnkgd2lsbCBwcm9iYWJseSBmYWlsIGlmIHdlIGRvbid0LiBGb3Igbm9ybWFsCisJICogICAgdGhlIENPTU1BTkQgcmVnaXN0ZXIgaXMgcmVzZXQgYXMgYSBwYXJ0IG9mIHJlLWluaXRpYWxpc2luZworCSAqICAgIHRoZSBkZXZpY2UuCisJICoKKwkgKiBCcmVha2luZyBzdHVmZiBpcyB0aGUgcG9pbnQgc28gd2hvIGNhcmVzIGlmIGl0J3MgcmFjeSA7KQorCSAqLworCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBkZXYsIHBvcywgJm9sZCk7CisKKwltYXBwZWQgPSBpb3JlbWFwKGJhci0+c3RhcnQsIFBBR0VfU0laRSk7CisJaWYgKCFtYXBwZWQpIHsKKwkJcGNpX2VycihwZGV2LCAiVW5hYmxlIHRvIG1hcCBNTUlPIEJBUiAlcFJcbiIsIGJhcik7CisJCXJldHVybiAtRU5YSU87CisJfQorCisJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHBkZXYsIHBvcywgb2xkICYgfmJpdCk7CisJaW5fOChtYXBwZWQpOworCXBjaV93cml0ZV9jb25maWdfd29yZChwZGV2LCBwb3MsIG9sZCk7CisKKwlpb3VubWFwKG1hcHBlZCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNzaXplX3QgZWVoX2Rldl9icmVha193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJCQljb25zdCBjaGFyIF9fdXNlciAqdXNlcl9idWYsCisJCQkJc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJdWludDMyX3QgZG9tYWluLCBidXMsIGRldiwgZm47CisJc3RydWN0IHBjaV9kZXYgKnBkZXY7CisJY2hhciBidWZbMjBdOworCWludCByZXQ7CisKKwltZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7CisJcmV0ID0gc2ltcGxlX3dyaXRlX3RvX2J1ZmZlcihidWYsIHNpemVvZihidWYpLTEsIHBwb3MsIHVzZXJfYnVmLCBjb3VudCk7CisJaWYgKCFyZXQpCisJCXJldHVybiAtRUZBVUxUOworCisJcmV0ID0gc3NjYW5mKGJ1ZiwgIiV4OiV4OiV4LiV4IiwgJmRvbWFpbiwgJmJ1cywgJmRldiwgJmZuKTsKKwlpZiAocmV0ICE9IDQpIHsKKwkJcHJfZXJyKCIlczogZXhwZWN0ZWQgNCBhcmdzLCBnb3QgJWRcbiIsIF9fZnVuY19fLCByZXQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlwZGV2ID0gcGNpX2dldF9kb21haW5fYnVzX2FuZF9zbG90KGRvbWFpbiwgYnVzLCAoZGV2IDw8IDMpIHwgZm4pOworCWlmICghcGRldikKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlyZXQgPSBlZWhfZGVidWdmc19icmVha19kZXZpY2UocGRldik7CisJcGNpX2Rldl9wdXQocGRldik7CisKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZWVoX2Rldl9icmVha19mb3BzID0geworCS5vcGVuCT0gc2ltcGxlX29wZW4sCisJLmxsc2Vlawk9IG5vX2xsc2VlaywKKwkud3JpdGUJPSBlZWhfZGV2X2JyZWFrX3dyaXRlLAorCS5yZWFkICAgPSBlZWhfZGVidWdmc19kZXZfdXNhZ2UsCit9OworCiAjZW5kaWYKIAogc3RhdGljIGludCBfX2luaXQgZWVoX2luaXRfcHJvYyh2b2lkKQpAQCAtMTkwNSw2ICsyMDc4LDEyIEBAIHN0YXRpYyBpbnQgX19pbml0IGVlaF9pbml0X3Byb2Modm9pZCkKIAkJZGVidWdmc19jcmVhdGVfYm9vbCgiZWVoX2Rpc2FibGVfcmVjb3ZlcnkiLCAwNjAwLAogCQkJCXBvd2VycGNfZGVidWdmc19yb290LAogCQkJCSZlZWhfZGVidWdmc19ub19yZWNvdmVyKTsKKwkJZGVidWdmc19jcmVhdGVfZmlsZV91bnNhZmUoImVlaF9kZXZfY2hlY2siLCAwNjAwLAorCQkJCXBvd2VycGNfZGVidWdmc19yb290LCBOVUxMLAorCQkJCSZlZWhfZGV2X2NoZWNrX2ZvcHMpOworCQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlX3Vuc2FmZSgiZWVoX2Rldl9icmVhayIsIDA2MDAsCisJCQkJcG93ZXJwY19kZWJ1Z2ZzX3Jvb3QsIE5VTEwsCisJCQkJJmVlaF9kZXZfYnJlYWtfZm9wcyk7CiAJCWRlYnVnZnNfY3JlYXRlX2ZpbGVfdW5zYWZlKCJlZWhfZm9yY2VfcmVjb3ZlciIsIDA2MDAsCiAJCQkJcG93ZXJwY19kZWJ1Z2ZzX3Jvb3QsIE5VTEwsCiAJCQkJJmVlaF9mb3JjZV9yZWNvdmVyX2ZvcHMpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfY2FjaGUuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZWVoX2NhY2hlLmMKaW5kZXggMDVmZmQzMi4uY2YxMTI3NyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfY2FjaGUuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2VlaF9jYWNoZS5jCkBAIC0xNDgsOCArMTQ4LDggQEAgZWVoX2FkZHJfY2FjaGVfaW5zZXJ0KHN0cnVjdCBwY2lfZGV2ICpkZXYsIHJlc291cmNlX3NpemVfdCBhbG8sCiAJcGlhci0+cGNpZGV2ID0gZGV2OwogCXBpYXItPmZsYWdzID0gZmxhZ3M7CiAKLQlwcl9kZWJ1ZygiUElBUjogaW5zZXJ0IHJhbmdlPVslcGFwOiVwYXBdIGRldj0lc1xuIiwKLQkJICZhbG8sICZhaGksIHBjaV9uYW1lKGRldikpOworCWVlaF9lZGV2X2RiZyhwaWFyLT5lZGV2LCAiUElBUjogaW5zZXJ0IHJhbmdlPVslcGFwOiVwYXBdXG4iLAorCQkgJmFsbywgJmFoaSk7CiAKIAlyYl9saW5rX25vZGUoJnBpYXItPnJiX25vZGUsIHBhcmVudCwgcCk7CiAJcmJfaW5zZXJ0X2NvbG9yKCZwaWFyLT5yYl9ub2RlLCAmcGNpX2lvX2FkZHJfY2FjaGVfcm9vdC5yYl9yb290KTsKQEAgLTIyOSw4ICsyMjksOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19lZWhfYWRkcl9jYWNoZV9ybXZfZGV2KHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAJCXBpYXIgPSByYl9lbnRyeShuLCBzdHJ1Y3QgcGNpX2lvX2FkZHJfcmFuZ2UsIHJiX25vZGUpOwogCiAJCWlmIChwaWFyLT5wY2lkZXYgPT0gZGV2KSB7Ci0JCQlwcl9kZWJ1ZygiUElBUjogcmVtb3ZlIHJhbmdlPVslcGFwOiVwYXBdIGRldj0lc1xuIiwKLQkJCQkgJnBpYXItPmFkZHJfbG8sICZwaWFyLT5hZGRyX2hpLCBwY2lfbmFtZShkZXYpKTsKKwkJCWVlaF9lZGV2X2RiZyhwaWFyLT5lZGV2LCAiUElBUjogcmVtb3ZlIHJhbmdlPVslcGFwOiVwYXBdXG4iLAorCQkJCSAmcGlhci0+YWRkcl9sbywgJnBpYXItPmFkZHJfaGkpOwogCQkJcmJfZXJhc2UobiwgJnBjaV9pb19hZGRyX2NhY2hlX3Jvb3QucmJfcm9vdCk7CiAJCQlrZnJlZShwaWFyKTsKIAkJCWdvdG8gcmVzdGFydDsKQEAgLTI1OCwzNyArMjU4LDE0IEBAIHZvaWQgZWVoX2FkZHJfY2FjaGVfcm12X2RldihzdHJ1Y3QgcGNpX2RldiAqZGV2KQogfQogCiAvKioKLSAqIGVlaF9hZGRyX2NhY2hlX2J1aWxkIC0gQnVpbGQgYSBjYWNoZSBvZiBJL08gYWRkcmVzc2VzCisgKiBlZWhfYWRkcl9jYWNoZV9pbml0IC0gSW5pdGlhbGl6ZSBhIGNhY2hlIG9mIEkvTyBhZGRyZXNzZXMKICAqCi0gKiBCdWlsZCBhIGNhY2hlIG9mIHBjaSBpL28gYWRkcmVzc2VzLiAgVGhpcyBjYWNoZSB3aWxsIGJlIHVzZWQgdG8KKyAqIEluaXRpYWxpemUgYSBjYWNoZSBvZiBwY2kgaS9vIGFkZHJlc3Nlcy4gIFRoaXMgY2FjaGUgd2lsbCBiZSB1c2VkIHRvCiAgKiBmaW5kIHRoZSBwY2kgZGV2aWNlIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBnaXZlbiBhZGRyZXNzLgotICogVGhpcyByb3V0aW5lIHNjYW5zIGFsbCBwY2kgYnVzc2VzIHRvIGJ1aWxkIHRoZSBjYWNoZS4KLSAqIE11c3QgYmUgcnVuIGxhdGUgaW4gYm9vdCBwcm9jZXNzLCBhZnRlciB0aGUgcGNpIGNvbnRyb2xsZXJzCi0gKiBoYXZlIGJlZW4gc2Nhbm5lZCBmb3IgZGV2aWNlcyAoYWZ0ZXIgYWxsIGRldmljZSByZXNvdXJjZXMgYXJlIGtub3duKS4KICAqLwotdm9pZCBlZWhfYWRkcl9jYWNoZV9idWlsZCh2b2lkKQordm9pZCBlZWhfYWRkcl9jYWNoZV9pbml0KHZvaWQpCiB7Ci0Jc3RydWN0IHBjaV9kbiAqcGRuOwotCXN0cnVjdCBlZWhfZGV2ICplZGV2OwotCXN0cnVjdCBwY2lfZGV2ICpkZXYgPSBOVUxMOwotCiAJc3Bpbl9sb2NrX2luaXQoJnBjaV9pb19hZGRyX2NhY2hlX3Jvb3QucGlhcl9sb2NrKTsKLQotCWZvcl9lYWNoX3BjaV9kZXYoZGV2KSB7Ci0JCXBkbiA9IHBjaV9nZXRfcGRuX2J5X2RldmZuKGRldi0+YnVzLCBkZXYtPmRldmZuKTsKLQkJaWYgKCFwZG4pCi0JCQljb250aW51ZTsKLQotCQllZGV2ID0gcGRuX3RvX2VlaF9kZXYocGRuKTsKLQkJaWYgKCFlZGV2KQotCQkJY29udGludWU7Ci0KLQkJZGV2LT5kZXYuYXJjaGRhdGEuZWRldiA9IGVkZXY7Ci0JCWVkZXYtPnBkZXYgPSBkZXY7Ci0KLQkJZWVoX2FkZHJfY2FjaGVfaW5zZXJ0X2RldihkZXYpOwotCQllZWhfc3lzZnNfYWRkX2RldmljZShkZXYpOwotCX0KIH0KIAogc3RhdGljIGludCBlZWhfYWRkcl9jYWNoZV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdikKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZWVoX2Rldi5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfZGV2LmMKaW5kZXggYzQzMTdjNC4uNzM3MDE4NSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfZGV2LmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfZGV2LmMKQEAgLTQ3LDYgKzQ3LDggQEAgc3RydWN0IGVlaF9kZXYgKmVlaF9kZXZfaW5pdChzdHJ1Y3QgcGNpX2RuICpwZG4pCiAJLyogQXNzb2NpYXRlIEVFSCBkZXZpY2Ugd2l0aCBPRiBub2RlICovCiAJcGRuLT5lZGV2ID0gZWRldjsKIAllZGV2LT5wZG4gPSBwZG47CisJZWRldi0+YmRmbiA9IChwZG4tPmJ1c25vIDw8IDgpIHwgcGRuLT5kZXZmbjsKKwllZGV2LT5jb250cm9sbGVyID0gcGRuLT5waGI7CiAKIAlyZXR1cm4gZWRldjsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZWVoX2RyaXZlci5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfZHJpdmVyLmMKaW5kZXggODk2MjM5Ni4uZDkyNzlkMCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfZHJpdmVyLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfZHJpdmVyLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2lfaG90cGx1Zy5oPgogI2luY2x1ZGUgPGFzbS9lZWguaD4KICNpbmNsdWRlIDxhc20vZWVoX2V2ZW50Lmg+CiAjaW5jbHVkZSA8YXNtL3BwYy1wY2kuaD4KQEAgLTgxLDIzICs4Miw2IEBAIHN0YXRpYyBjb25zdCBjaGFyICpwY2lfZXJzX3Jlc3VsdF9uYW1lKGVudW0gcGNpX2Vyc19yZXN1bHQgcmVzdWx0KQogCX0KIH07CiAKLXN0YXRpYyBfX3ByaW50ZigyLCAzKSB2b2lkIGVlaF9lZGV2X2luZm8oY29uc3Qgc3RydWN0IGVlaF9kZXYgKmVkZXYsCi0JCQkJCSBjb25zdCBjaGFyICpmbXQsIC4uLikKLXsKLQlzdHJ1Y3QgdmFfZm9ybWF0IHZhZjsKLQl2YV9saXN0IGFyZ3M7Ci0KLQl2YV9zdGFydChhcmdzLCBmbXQpOwotCi0JdmFmLmZtdCA9IGZtdDsKLQl2YWYudmEgPSAmYXJnczsKLQotCXByaW50ayhLRVJOX0lORk8gIkVFSDogUEUjJXggKFBDSSAlcyk6ICVwVlxuIiwgZWRldi0+cGVfY29uZmlnX2FkZHIsCi0JICAgICAgIGVkZXYtPnBkZXYgPyBkZXZfbmFtZSgmZWRldi0+cGRldi0+ZGV2KSA6ICJub25lIiwgJnZhZik7Ci0KLQl2YV9lbmQoYXJncyk7Ci19Ci0KIHN0YXRpYyBlbnVtIHBjaV9lcnNfcmVzdWx0IHBjaV9lcnNfbWVyZ2VfcmVzdWx0KGVudW0gcGNpX2Vyc19yZXN1bHQgb2xkLAogCQkJCQkJZW51bSBwY2lfZXJzX3Jlc3VsdCBuZXcpCiB7CkBAIC0xMTMsOCArOTcsMTYgQEAgc3RhdGljIGJvb2wgZWVoX2Rldl9yZW1vdmVkKHN0cnVjdCBlZWhfZGV2ICplZGV2KQogCiBzdGF0aWMgYm9vbCBlZWhfZWRldl9hY3Rpb25hYmxlKHN0cnVjdCBlZWhfZGV2ICplZGV2KQogewotCXJldHVybiAoZWRldi0+cGRldiAmJiAhZWVoX2Rldl9yZW1vdmVkKGVkZXYpICYmCi0JCSFlZWhfcGVfcGFzc2VkKGVkZXYtPnBlKSk7CisJaWYgKCFlZGV2LT5wZGV2KQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKGVkZXYtPnBkZXYtPmVycm9yX3N0YXRlID09IHBjaV9jaGFubmVsX2lvX3Blcm1fZmFpbHVyZSkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChlZWhfZGV2X3JlbW92ZWQoZWRldikpCisJCXJldHVybiBmYWxzZTsKKwlpZiAoZWVoX3BlX3Bhc3NlZChlZGV2LT5wZSkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOwogfQogCiAvKioKQEAgLTIxNCwxMiArMjA2LDEyIEBAIHN0YXRpYyB2b2lkIGVlaF9lbmFibGVfaXJxKHN0cnVjdCBlZWhfZGV2ICplZGV2KQogCX0KIH0KIAotc3RhdGljIHZvaWQgKmVlaF9kZXZfc2F2ZV9zdGF0ZShzdHJ1Y3QgZWVoX2RldiAqZWRldiwgdm9pZCAqdXNlcmRhdGEpCitzdGF0aWMgdm9pZCBlZWhfZGV2X3NhdmVfc3RhdGUoc3RydWN0IGVlaF9kZXYgKmVkZXYsIHZvaWQgKnVzZXJkYXRhKQogewogCXN0cnVjdCBwY2lfZGV2ICpwZGV2OwogCiAJaWYgKCFlZGV2KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuOwogCiAJLyoKIAkgKiBXZSBjYW5ub3QgYWNjZXNzIHRoZSBjb25maWcgc3BhY2Ugb24gc29tZSBhZGFwdGVycy4KQEAgLTIyOSwxNCArMjIxLDEzIEBAIHN0YXRpYyB2b2lkICplZWhfZGV2X3NhdmVfc3RhdGUoc3RydWN0IGVlaF9kZXYgKmVkZXYsIHZvaWQgKnVzZXJkYXRhKQogCSAqIGRldmljZSBpcyBjcmVhdGVkLgogCSAqLwogCWlmIChlZGV2LT5wZSAmJiAoZWRldi0+cGUtPnN0YXRlICYgRUVIX1BFX0NGR19SRVNUUklDVEVEKSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybjsKIAogCXBkZXYgPSBlZWhfZGV2X3RvX3BjaV9kZXYoZWRldik7CiAJaWYgKCFwZGV2KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuOwogCiAJcGNpX3NhdmVfc3RhdGUocGRldik7Ci0JcmV0dXJuIE5VTEw7CiB9CiAKIHN0YXRpYyB2b2lkIGVlaF9zZXRfY2hhbm5lbF9zdGF0ZShzdHJ1Y3QgZWVoX3BlICpyb290LCBlbnVtIHBjaV9jaGFubmVsX3N0YXRlIHMpCkBAIC0yNzQsMjAgKzI2NSwyNyBAQCBzdGF0aWMgdm9pZCBlZWhfc2V0X2lycV9zdGF0ZShzdHJ1Y3QgZWVoX3BlICpyb290LCBib29sIGVuYWJsZSkKIH0KIAogdHlwZWRlZiBlbnVtIHBjaV9lcnNfcmVzdWx0ICgqZWVoX3JlcG9ydF9mbikoc3RydWN0IGVlaF9kZXYgKiwKKwkJCQkJICAgICBzdHJ1Y3QgcGNpX2RldiAqLAogCQkJCQkgICAgIHN0cnVjdCBwY2lfZHJpdmVyICopOwogc3RhdGljIHZvaWQgZWVoX3BlX3JlcG9ydF9lZGV2KHN0cnVjdCBlZWhfZGV2ICplZGV2LCBlZWhfcmVwb3J0X2ZuIGZuLAogCQkJICAgICAgIGVudW0gcGNpX2Vyc19yZXN1bHQgKnJlc3VsdCkKIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKIAlzdHJ1Y3QgcGNpX2RyaXZlciAqZHJpdmVyOwogCWVudW0gcGNpX2Vyc19yZXN1bHQgbmV3X3Jlc3VsdDsKIAotCWlmICghZWRldi0+cGRldikgeworCXBjaV9sb2NrX3Jlc2Nhbl9yZW1vdmUoKTsKKwlwZGV2ID0gZWRldi0+cGRldjsKKwlpZiAocGRldikKKwkJZ2V0X2RldmljZSgmcGRldi0+ZGV2KTsKKwlwY2lfdW5sb2NrX3Jlc2Nhbl9yZW1vdmUoKTsKKwlpZiAoIXBkZXYpIHsKIAkJZWVoX2VkZXZfaW5mbyhlZGV2LCAibm8gZGV2aWNlIik7CiAJCXJldHVybjsKIAl9Ci0JZGV2aWNlX2xvY2soJmVkZXYtPnBkZXYtPmRldik7CisJZGV2aWNlX2xvY2soJnBkZXYtPmRldik7CiAJaWYgKGVlaF9lZGV2X2FjdGlvbmFibGUoZWRldikpIHsKLQkJZHJpdmVyID0gZWVoX3BjaWRfZ2V0KGVkZXYtPnBkZXYpOworCQlkcml2ZXIgPSBlZWhfcGNpZF9nZXQocGRldik7CiAKIAkJaWYgKCFkcml2ZXIpCiAJCQllZWhfZWRldl9pbmZvKGVkZXYsICJubyBkcml2ZXIiKTsKQEAgLTI5Niw3ICsyOTQsNyBAQCBzdGF0aWMgdm9pZCBlZWhfcGVfcmVwb3J0X2VkZXYoc3RydWN0IGVlaF9kZXYgKmVkZXYsIGVlaF9yZXBvcnRfZm4gZm4sCiAJCWVsc2UgaWYgKGVkZXYtPm1vZGUgJiBFRUhfREVWX05PX0hBTkRMRVIpCiAJCQllZWhfZWRldl9pbmZvKGVkZXYsICJkcml2ZXIgYm91bmQgdG9vIGxhdGUiKTsKIAkJZWxzZSB7Ci0JCQluZXdfcmVzdWx0ID0gZm4oZWRldiwgZHJpdmVyKTsKKwkJCW5ld19yZXN1bHQgPSBmbihlZGV2LCBwZGV2LCBkcml2ZXIpOwogCQkJZWVoX2VkZXZfaW5mbyhlZGV2LCAiJXMgZHJpdmVyIHJlcG9ydHM6ICclcyciLAogCQkJCSAgICAgIGRyaXZlci0+bmFtZSwKIAkJCQkgICAgICBwY2lfZXJzX3Jlc3VsdF9uYW1lKG5ld19yZXN1bHQpKTsKQEAgLTMwNSwxMiArMzAzLDE1IEBAIHN0YXRpYyB2b2lkIGVlaF9wZV9yZXBvcnRfZWRldihzdHJ1Y3QgZWVoX2RldiAqZWRldiwgZWVoX3JlcG9ydF9mbiBmbiwKIAkJCQkJCQkgICAgICAgbmV3X3Jlc3VsdCk7CiAJCX0KIAkJaWYgKGRyaXZlcikKLQkJCWVlaF9wY2lkX3B1dChlZGV2LT5wZGV2KTsKKwkJCWVlaF9wY2lkX3B1dChwZGV2KTsKIAl9IGVsc2UgewotCQllZWhfZWRldl9pbmZvKGVkZXYsICJub3QgYWN0aW9uYWJsZSAoJWQsJWQsJWQpIiwgISFlZGV2LT5wZGV2LAorCQllZWhfZWRldl9pbmZvKGVkZXYsICJub3QgYWN0aW9uYWJsZSAoJWQsJWQsJWQpIiwgISFwZGV2LAogCQkJICAgICAgIWVlaF9kZXZfcmVtb3ZlZChlZGV2KSwgIWVlaF9wZV9wYXNzZWQoZWRldi0+cGUpKTsKIAl9Ci0JZGV2aWNlX3VubG9jaygmZWRldi0+cGRldi0+ZGV2KTsKKwlkZXZpY2VfdW5sb2NrKCZwZGV2LT5kZXYpOworCWlmIChlZGV2LT5wZGV2ICE9IHBkZXYpCisJCWVlaF9lZGV2X3dhcm4oZWRldiwgIkRldmljZSBjaGFuZ2VkIGR1cmluZyBwcm9jZXNzaW5nIVxuIik7CisJcHV0X2RldmljZSgmcGRldi0+ZGV2KTsKIH0KIAogc3RhdGljIHZvaWQgZWVoX3BlX3JlcG9ydChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgZWVoX3BlICpyb290LApAQCAtMzM3LDIwICszMzgsMjAgQEAgc3RhdGljIHZvaWQgZWVoX3BlX3JlcG9ydChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgZWVoX3BlICpyb290LAogICogUmVwb3J0IGFuIEVFSCBlcnJvciB0byBlYWNoIGRldmljZSBkcml2ZXIuCiAgKi8KIHN0YXRpYyBlbnVtIHBjaV9lcnNfcmVzdWx0IGVlaF9yZXBvcnRfZXJyb3Ioc3RydWN0IGVlaF9kZXYgKmVkZXYsCisJCQkJCSAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJCQkJICAgIHN0cnVjdCBwY2lfZHJpdmVyICpkcml2ZXIpCiB7CiAJZW51bSBwY2lfZXJzX3Jlc3VsdCByYzsKLQlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gZWRldi0+cGRldjsKIAogCWlmICghZHJpdmVyLT5lcnJfaGFuZGxlci0+ZXJyb3JfZGV0ZWN0ZWQpCiAJCXJldHVybiBQQ0lfRVJTX1JFU1VMVF9OT05FOwogCiAJZWVoX2VkZXZfaW5mbyhlZGV2LCAiSW52b2tpbmcgJXMtPmVycm9yX2RldGVjdGVkKElPIGZyb3plbikiLAogCQkgICAgICBkcml2ZXItPm5hbWUpOwotCXJjID0gZHJpdmVyLT5lcnJfaGFuZGxlci0+ZXJyb3JfZGV0ZWN0ZWQoZGV2LCBwY2lfY2hhbm5lbF9pb19mcm96ZW4pOworCXJjID0gZHJpdmVyLT5lcnJfaGFuZGxlci0+ZXJyb3JfZGV0ZWN0ZWQocGRldiwgcGNpX2NoYW5uZWxfaW9fZnJvemVuKTsKIAogCWVkZXYtPmluX2Vycm9yID0gdHJ1ZTsKLQlwY2lfdWV2ZW50X2VycyhkZXYsIFBDSV9FUlNfUkVTVUxUX05PTkUpOworCXBjaV91ZXZlbnRfZXJzKHBkZXYsIFBDSV9FUlNfUkVTVUxUX05PTkUpOwogCXJldHVybiByYzsKIH0KIApAQCAtMzYzLDEyICszNjQsMTMgQEAgc3RhdGljIGVudW0gcGNpX2Vyc19yZXN1bHQgZWVoX3JlcG9ydF9lcnJvcihzdHJ1Y3QgZWVoX2RldiAqZWRldiwKICAqIGFyZSBub3cgZW5hYmxlZC4KICAqLwogc3RhdGljIGVudW0gcGNpX2Vyc19yZXN1bHQgZWVoX3JlcG9ydF9tbWlvX2VuYWJsZWQoc3RydWN0IGVlaF9kZXYgKmVkZXYsCisJCQkJCQkgICBzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJCQkJCSAgIHN0cnVjdCBwY2lfZHJpdmVyICpkcml2ZXIpCiB7CiAJaWYgKCFkcml2ZXItPmVycl9oYW5kbGVyLT5tbWlvX2VuYWJsZWQpCiAJCXJldHVybiBQQ0lfRVJTX1JFU1VMVF9OT05FOwogCWVlaF9lZGV2X2luZm8oZWRldiwgIkludm9raW5nICVzLT5tbWlvX2VuYWJsZWQoKSIsIGRyaXZlci0+bmFtZSk7Ci0JcmV0dXJuIGRyaXZlci0+ZXJyX2hhbmRsZXItPm1taW9fZW5hYmxlZChlZGV2LT5wZGV2KTsKKwlyZXR1cm4gZHJpdmVyLT5lcnJfaGFuZGxlci0+bW1pb19lbmFibGVkKHBkZXYpOwogfQogCiAvKioKQEAgLTM4MiwyMCArMzg0LDIxIEBAIHN0YXRpYyBlbnVtIHBjaV9lcnNfcmVzdWx0IGVlaF9yZXBvcnRfbW1pb19lbmFibGVkKHN0cnVjdCBlZWhfZGV2ICplZGV2LAogICogZHJpdmVyIGNhbiB3b3JrIGFnYWluIHdoaWxlIHRoZSBkZXZpY2UgaXMgcmVjb3ZlcmVkLgogICovCiBzdGF0aWMgZW51bSBwY2lfZXJzX3Jlc3VsdCBlZWhfcmVwb3J0X3Jlc2V0KHN0cnVjdCBlZWhfZGV2ICplZGV2LAorCQkJCQkgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJCQkJCSAgICBzdHJ1Y3QgcGNpX2RyaXZlciAqZHJpdmVyKQogewogCWlmICghZHJpdmVyLT5lcnJfaGFuZGxlci0+c2xvdF9yZXNldCB8fCAhZWRldi0+aW5fZXJyb3IpCiAJCXJldHVybiBQQ0lfRVJTX1JFU1VMVF9OT05FOwogCWVlaF9lZGV2X2luZm8oZWRldiwgIkludm9raW5nICVzLT5zbG90X3Jlc2V0KCkiLCBkcml2ZXItPm5hbWUpOwotCXJldHVybiBkcml2ZXItPmVycl9oYW5kbGVyLT5zbG90X3Jlc2V0KGVkZXYtPnBkZXYpOworCXJldHVybiBkcml2ZXItPmVycl9oYW5kbGVyLT5zbG90X3Jlc2V0KHBkZXYpOwogfQogCi1zdGF0aWMgdm9pZCAqZWVoX2Rldl9yZXN0b3JlX3N0YXRlKHN0cnVjdCBlZWhfZGV2ICplZGV2LCB2b2lkICp1c2VyZGF0YSkKK3N0YXRpYyB2b2lkIGVlaF9kZXZfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgZWVoX2RldiAqZWRldiwgdm9pZCAqdXNlcmRhdGEpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXY7CiAKIAlpZiAoIWVkZXYpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm47CiAKIAkvKgogCSAqIFRoZSBjb250ZW50IGluIHRoZSBjb25maWcgc3BhY2UgaXNuJ3Qgc2F2ZWQgYmVjYXVzZQpAQCAtNDA3LDE1ICs0MTAsMTQgQEAgc3RhdGljIHZvaWQgKmVlaF9kZXZfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgZWVoX2RldiAqZWRldiwgdm9pZCAqdXNlcmRhdGEpCiAJCWlmIChsaXN0X2lzX2xhc3QoJmVkZXYtPmVudHJ5LCAmZWRldi0+cGUtPmVkZXZzKSkKIAkJCWVlaF9wZV9yZXN0b3JlX2JhcnMoZWRldi0+cGUpOwogCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm47CiAJfQogCiAJcGRldiA9IGVlaF9kZXZfdG9fcGNpX2RldihlZGV2KTsKIAlpZiAoIXBkZXYpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm47CiAKIAlwY2lfcmVzdG9yZV9zdGF0ZShwZGV2KTsKLQlyZXR1cm4gTlVMTDsKIH0KIAogLyoqCkBAIC00MjgsMTMgKzQzMCwxNCBAQCBzdGF0aWMgdm9pZCAqZWVoX2Rldl9yZXN0b3JlX3N0YXRlKHN0cnVjdCBlZWhfZGV2ICplZGV2LCB2b2lkICp1c2VyZGF0YSkKICAqIHRvIG1ha2UgdGhlIHJlY292ZXJlZCBkZXZpY2Ugd29yayBhZ2Fpbi4KICAqLwogc3RhdGljIGVudW0gcGNpX2Vyc19yZXN1bHQgZWVoX3JlcG9ydF9yZXN1bWUoc3RydWN0IGVlaF9kZXYgKmVkZXYsCisJCQkJCSAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJCQkJCSAgICAgc3RydWN0IHBjaV9kcml2ZXIgKmRyaXZlcikKIHsKIAlpZiAoIWRyaXZlci0+ZXJyX2hhbmRsZXItPnJlc3VtZSB8fCAhZWRldi0+aW5fZXJyb3IpCiAJCXJldHVybiBQQ0lfRVJTX1JFU1VMVF9OT05FOwogCiAJZWVoX2VkZXZfaW5mbyhlZGV2LCAiSW52b2tpbmcgJXMtPnJlc3VtZSgpIiwgZHJpdmVyLT5uYW1lKTsKLQlkcml2ZXItPmVycl9oYW5kbGVyLT5yZXN1bWUoZWRldi0+cGRldik7CisJZHJpdmVyLT5lcnJfaGFuZGxlci0+cmVzdW1lKHBkZXYpOwogCiAJcGNpX3VldmVudF9lcnMoZWRldi0+cGRldiwgUENJX0VSU19SRVNVTFRfUkVDT1ZFUkVEKTsKICNpZmRlZiBDT05GSUdfUENJX0lPVgpAQCAtNDUzLDYgKzQ1Niw3IEBAIHN0YXRpYyBlbnVtIHBjaV9lcnNfcmVzdWx0IGVlaF9yZXBvcnRfcmVzdW1lKHN0cnVjdCBlZWhfZGV2ICplZGV2LAogICogZGVhZCwgYW5kIHRoYXQgbm8gZnVydGhlciByZWNvdmVyeSBhdHRlbXB0cyB3aWxsIGJlIG1hZGUgb24gaXQuCiAgKi8KIHN0YXRpYyBlbnVtIHBjaV9lcnNfcmVzdWx0IGVlaF9yZXBvcnRfZmFpbHVyZShzdHJ1Y3QgZWVoX2RldiAqZWRldiwKKwkJCQkJICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJCQkJCSAgICAgIHN0cnVjdCBwY2lfZHJpdmVyICpkcml2ZXIpCiB7CiAJZW51bSBwY2lfZXJzX3Jlc3VsdCByYzsKQEAgLTQ2MiwxMCArNDY2LDEwIEBAIHN0YXRpYyBlbnVtIHBjaV9lcnNfcmVzdWx0IGVlaF9yZXBvcnRfZmFpbHVyZShzdHJ1Y3QgZWVoX2RldiAqZWRldiwKIAogCWVlaF9lZGV2X2luZm8oZWRldiwgIkludm9raW5nICVzLT5lcnJvcl9kZXRlY3RlZChwZXJtYW5lbnQgZmFpbHVyZSkiLAogCQkgICAgICBkcml2ZXItPm5hbWUpOwotCXJjID0gZHJpdmVyLT5lcnJfaGFuZGxlci0+ZXJyb3JfZGV0ZWN0ZWQoZWRldi0+cGRldiwKKwlyYyA9IGRyaXZlci0+ZXJyX2hhbmRsZXItPmVycm9yX2RldGVjdGVkKHBkZXYsCiAJCQkJCQkgcGNpX2NoYW5uZWxfaW9fcGVybV9mYWlsdXJlKTsKIAotCXBjaV91ZXZlbnRfZXJzKGVkZXYtPnBkZXYsIFBDSV9FUlNfUkVTVUxUX0RJU0NPTk5FQ1QpOworCXBjaV91ZXZlbnRfZXJzKHBkZXYsIFBDSV9FUlNfUkVTVUxUX0RJU0NPTk5FQ1QpOwogCXJldHVybiByYzsKIH0KIApAQCAtNDczLDEyICs0NzcsOSBAQCBzdGF0aWMgdm9pZCAqZWVoX2FkZF92aXJ0X2RldmljZShzdHJ1Y3QgZWVoX2RldiAqZWRldikKIHsKIAlzdHJ1Y3QgcGNpX2RyaXZlciAqZHJpdmVyOwogCXN0cnVjdCBwY2lfZGV2ICpkZXYgPSBlZWhfZGV2X3RvX3BjaV9kZXYoZWRldik7Ci0Jc3RydWN0IHBjaV9kbiAqcGRuID0gZWVoX2Rldl90b19wZG4oZWRldik7CiAKIAlpZiAoIShlZGV2LT5waHlzZm4pKSB7Ci0JCXByX3dhcm4oIiVzOiBFRUggZGV2ICUwNHg6JTAyeDolMDJ4LiUwMXggbm90IGZvciBWRlxuIiwKLQkJCV9fZnVuY19fLCBwZG4tPnBoYi0+Z2xvYmFsX251bWJlciwgcGRuLT5idXNubywKLQkJCVBDSV9TTE9UKHBkbi0+ZGV2Zm4pLCBQQ0lfRlVOQyhwZG4tPmRldmZuKSk7CisJCWVlaF9lZGV2X3dhcm4oZWRldiwgIk5vdCBmb3IgVkZcbiIpOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAKQEAgLTQ5MiwxMiArNDkzLDEyIEBAIHN0YXRpYyB2b2lkICplZWhfYWRkX3ZpcnRfZGV2aWNlKHN0cnVjdCBlZWhfZGV2ICplZGV2KQogCX0KIAogI2lmZGVmIENPTkZJR19QQ0lfSU9WCi0JcGNpX2lvdl9hZGRfdmlydGZuKGVkZXYtPnBoeXNmbiwgcGRuLT52Zl9pbmRleCk7CisJcGNpX2lvdl9hZGRfdmlydGZuKGVkZXYtPnBoeXNmbiwgZWVoX2Rldl90b19wZG4oZWRldiktPnZmX2luZGV4KTsKICNlbmRpZgogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgdm9pZCAqZWVoX3Jtdl9kZXZpY2Uoc3RydWN0IGVlaF9kZXYgKmVkZXYsIHZvaWQgKnVzZXJkYXRhKQorc3RhdGljIHZvaWQgZWVoX3Jtdl9kZXZpY2Uoc3RydWN0IGVlaF9kZXYgKmVkZXYsIHZvaWQgKnVzZXJkYXRhKQogewogCXN0cnVjdCBwY2lfZHJpdmVyICpkcml2ZXI7CiAJc3RydWN0IHBjaV9kZXYgKmRldiA9IGVlaF9kZXZfdG9fcGNpX2RldihlZGV2KTsKQEAgLTUxMiw3ICs1MTMsNyBAQCBzdGF0aWMgdm9pZCAqZWVoX3Jtdl9kZXZpY2Uoc3RydWN0IGVlaF9kZXYgKmVkZXYsIHZvaWQgKnVzZXJkYXRhKQogCSAqLwogCWlmICghZWVoX2VkZXZfYWN0aW9uYWJsZShlZGV2KSB8fAogCSAgICAoZGV2LT5oZHJfdHlwZSA9PSBQQ0lfSEVBREVSX1RZUEVfQlJJREdFKSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybjsKIAogCWlmIChybXZfZGF0YSkgewogCQlkcml2ZXIgPSBlZWhfcGNpZF9nZXQoZGV2KTsKQEAgLTUyMSw3ICs1MjIsNyBAQCBzdGF0aWMgdm9pZCAqZWVoX3Jtdl9kZXZpY2Uoc3RydWN0IGVlaF9kZXYgKmVkZXYsIHZvaWQgKnVzZXJkYXRhKQogCQkJICAgIGRyaXZlci0+ZXJyX2hhbmRsZXItPmVycm9yX2RldGVjdGVkICYmCiAJCQkgICAgZHJpdmVyLT5lcnJfaGFuZGxlci0+c2xvdF9yZXNldCkgewogCQkJCWVlaF9wY2lkX3B1dChkZXYpOwotCQkJCXJldHVybiBOVUxMOworCQkJCXJldHVybjsKIAkJCX0KIAkJCWVlaF9wY2lkX3B1dChkZXYpOwogCQl9CkBAIC01NTQsOCArNTU1LDYgQEAgc3RhdGljIHZvaWQgKmVlaF9ybXZfZGV2aWNlKHN0cnVjdCBlZWhfZGV2ICplZGV2LCB2b2lkICp1c2VyZGF0YSkKIAkJcGNpX3N0b3BfYW5kX3JlbW92ZV9idXNfZGV2aWNlKGRldik7CiAJCXBjaV91bmxvY2tfcmVzY2FuX3JlbW92ZSgpOwogCX0KLQotCXJldHVybiBOVUxMOwogfQogCiBzdGF0aWMgdm9pZCAqZWVoX3BlX2RldGFjaF9kZXYoc3RydWN0IGVlaF9wZSAqcGUsIHZvaWQgKnVzZXJkYXRhKQpAQCAtNzQ0LDYgKzc0Myw5OSBAQCBzdGF0aWMgaW50IGVlaF9yZXNldF9kZXZpY2Uoc3RydWN0IGVlaF9wZSAqcGUsIHN0cnVjdCBwY2lfYnVzICpidXMsCiAgKi8KICNkZWZpbmUgTUFYX1dBSVRfRk9SX1JFQ09WRVJZIDMwMAogCisKKy8qIFdhbGtzIHRoZSBQRSB0cmVlIGFmdGVyIHByb2Nlc3NpbmcgYW4gZXZlbnQgdG8gcmVtb3ZlIGFueSBzdGFsZSBQRXMuCisgKgorICogTkI6IFRoaXMgbmVlZHMgdG8gYmUgcmVjdXJzaXZlIHRvIGVuc3VyZSB0aGUgbGVhZiBQRXMgZ2V0IHJlbW92ZWQKKyAqIGJlZm9yZSB0aGVpciBwYXJlbnRzIGRvLiBBbHRob3VnaCB0aGlzIGlzIHBvc3NpYmxlIHRvIGRvIHJlY3Vyc2l2ZWx5CisgKiB3ZSBkb24ndCBzaW5jZSB0aGlzIGlzIGVhc2llciB0byByZWFkIGFuZCB3ZSBuZWVkIHRvIGdhcmFudGVlCisgKiB0aGUgbGVhZiBub2RlcyB3aWxsIGJlIGhhbmRsZWQgZmlyc3QuCisgKi8KK3N0YXRpYyB2b2lkIGVlaF9wZV9jbGVhbnVwKHN0cnVjdCBlZWhfcGUgKnBlKQoreworCXN0cnVjdCBlZWhfcGUgKmNoaWxkX3BlLCAqdG1wOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNoaWxkX3BlLCB0bXAsICZwZS0+Y2hpbGRfbGlzdCwgY2hpbGQpCisJCWVlaF9wZV9jbGVhbnVwKGNoaWxkX3BlKTsKKworCWlmIChwZS0+c3RhdGUgJiBFRUhfUEVfS0VFUCkKKwkJcmV0dXJuOworCisJaWYgKCEocGUtPnN0YXRlICYgRUVIX1BFX0lOVkFMSUQpKQorCQlyZXR1cm47CisKKwlpZiAobGlzdF9lbXB0eSgmcGUtPmVkZXZzKSAmJiBsaXN0X2VtcHR5KCZwZS0+Y2hpbGRfbGlzdCkpIHsKKwkJbGlzdF9kZWwoJnBlLT5jaGlsZCk7CisJCWtmcmVlKHBlKTsKKwl9Cit9CisKKy8qKgorICogZWVoX2NoZWNrX3Nsb3RfcHJlc2VuY2UgLSBDaGVjayBpZiBhIGRldmljZSBpcyBzdGlsbCBwcmVzZW50IGluIGEgc2xvdAorICogQHBkZXY6IHBjaV9kZXYgdG8gY2hlY2sKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIG1heSByZXR1cm4gYSBmYWxzZSBwb3NpdGl2ZSBpZiB3ZSBjYW4ndCBkZXRlcm1pbmUgdGhlIHNsb3QncworICogcHJlc2VuY2Ugc3RhdGUuIFRoaXMgbWlnaHQgaGFwcGVuIGZvciBmb3IgUENJZSBzbG90cyBpZiB0aGUgUEUgY29udGFpbmluZworICogdGhlIHVwc3RyZWFtIGJyaWRnZSBpcyBhbHNvIGZyb3plbiwgb3IgdGhlIGJyaWRnZSBpcyBwYXJ0IG9mIHRoZSBzYW1lIFBFCisgKiBhcyB0aGUgZGV2aWNlLgorICoKKyAqIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBvZnRlbiwgYnV0IHlvdSBtaWdodCBzZWUgaXQgaWYgeW91IGhvdHBsdWcgYSBQQ0llCisgKiBzd2l0Y2guCisgKi8KK3N0YXRpYyBib29sIGVlaF9zbG90X3ByZXNlbmNlX2NoZWNrKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQoreworCWNvbnN0IHN0cnVjdCBob3RwbHVnX3Nsb3Rfb3BzICpvcHM7CisJc3RydWN0IHBjaV9zbG90ICpzbG90OworCXU4IHN0YXRlOworCWludCByYzsKKworCWlmICghcGRldikKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKHBkZXYtPmVycm9yX3N0YXRlID09IHBjaV9jaGFubmVsX2lvX3Blcm1fZmFpbHVyZSkKKwkJcmV0dXJuIGZhbHNlOworCisJc2xvdCA9IHBkZXYtPnNsb3Q7CisJaWYgKCFzbG90IHx8ICFzbG90LT5ob3RwbHVnKQorCQlyZXR1cm4gdHJ1ZTsKKworCW9wcyA9IHNsb3QtPmhvdHBsdWctPm9wczsKKwlpZiAoIW9wcyB8fCAhb3BzLT5nZXRfYWRhcHRlcl9zdGF0dXMpCisJCXJldHVybiB0cnVlOworCisJLyogc2V0IHRoZSBhdHRlbnRpb24gaW5kaWNhdG9yIHdoaWxlIHdlJ3ZlIGdvdCB0aGUgc2xvdCBvcHMgKi8KKwlpZiAob3BzLT5zZXRfYXR0ZW50aW9uX3N0YXR1cykKKwkJb3BzLT5zZXRfYXR0ZW50aW9uX3N0YXR1cyhzbG90LT5ob3RwbHVnLCAxKTsKKworCXJjID0gb3BzLT5nZXRfYWRhcHRlcl9zdGF0dXMoc2xvdC0+aG90cGx1ZywgJnN0YXRlKTsKKwlpZiAocmMpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuICEhc3RhdGU7Cit9CisKK3N0YXRpYyB2b2lkIGVlaF9jbGVhcl9zbG90X2F0dGVudGlvbihzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKwljb25zdCBzdHJ1Y3QgaG90cGx1Z19zbG90X29wcyAqb3BzOworCXN0cnVjdCBwY2lfc2xvdCAqc2xvdDsKKworCWlmICghcGRldikKKwkJcmV0dXJuOworCisJaWYgKHBkZXYtPmVycm9yX3N0YXRlID09IHBjaV9jaGFubmVsX2lvX3Blcm1fZmFpbHVyZSkKKwkJcmV0dXJuOworCisJc2xvdCA9IHBkZXYtPnNsb3Q7CisJaWYgKCFzbG90IHx8ICFzbG90LT5ob3RwbHVnKQorCQlyZXR1cm47CisKKwlvcHMgPSBzbG90LT5ob3RwbHVnLT5vcHM7CisJaWYgKCFvcHMgfHwgIW9wcy0+c2V0X2F0dGVudGlvbl9zdGF0dXMpCisJCXJldHVybjsKKworCW9wcy0+c2V0X2F0dGVudGlvbl9zdGF0dXMoc2xvdC0+aG90cGx1ZywgMCk7Cit9CisKIC8qKgogICogZWVoX2hhbmRsZV9ub3JtYWxfZXZlbnQgLSBIYW5kbGUgRUVIIGV2ZW50cyBvbiBhIHNwZWNpZmljIFBFCiAgKiBAcGU6IEVFSCBQRSAtIHdoaWNoIHNob3VsZCBub3QgYmUgdXNlZCBhZnRlciB3ZSByZXR1cm4sIGFzIGl0IG1heQpAQCAtNzc0LDYgKzg2Niw3IEBAIHZvaWQgZWVoX2hhbmRsZV9ub3JtYWxfZXZlbnQoc3RydWN0IGVlaF9wZSAqcGUpCiAJZW51bSBwY2lfZXJzX3Jlc3VsdCByZXN1bHQgPSBQQ0lfRVJTX1JFU1VMVF9OT05FOwogCXN0cnVjdCBlZWhfcm12X2RhdGEgcm12X2RhdGEgPQogCQl7TElTVF9IRUFEX0lOSVQocm12X2RhdGEucmVtb3ZlZF92Zl9saXN0KSwgMH07CisJaW50IGRldmljZXMgPSAwOwogCiAJYnVzID0gZWVoX3BlX2J1c19nZXQocGUpOwogCWlmICghYnVzKSB7CkBAIC03ODIsNyArODc1LDU5IEBAIHZvaWQgZWVoX2hhbmRsZV9ub3JtYWxfZXZlbnQoc3RydWN0IGVlaF9wZSAqcGUpCiAJCXJldHVybjsKIAl9CiAKLQllZWhfcGVfc3RhdGVfbWFyayhwZSwgRUVIX1BFX1JFQ09WRVJJTkcpOworCS8qCisJICogV2hlbiBkZXZpY2VzIGFyZSBob3QtcmVtb3ZlZCB3ZSBtaWdodCBnZXQgYW4gRUVIIGR1ZSB0bworCSAqIGEgZHJpdmVyIGF0dGVtcHRpbmcgdG8gdG91Y2ggdGhlIE1NSU8gc3BhY2Ugb2YgYSByZW1vdmVkCisJICogZGV2aWNlLiBJbiB0aGlzIGNhc2Ugd2UgZG9uJ3QgaGF2ZSBhIGRldmljZSB0byByZWNvdmVyCisJICogc28gc3VwcHJlc3MgdGhlIGV2ZW50IGlmIHdlIGNhbid0IGZpbmQgYW55IHByZXNlbnQgZGV2aWNlcy4KKwkgKgorCSAqIFRoZSBob3RwbHVnIGRyaXZlciBzaG91bGQgdGFrZSBjYXJlIG9mIHRlYXJpbmcgZG93biB0aGUKKwkgKiBkZXZpY2UgaXRzZWxmLgorCSAqLworCWVlaF9mb3JfZWFjaF9wZShwZSwgdG1wX3BlKQorCQllZWhfcGVfZm9yX2VhY2hfZGV2KHRtcF9wZSwgZWRldiwgdG1wKQorCQkJaWYgKGVlaF9zbG90X3ByZXNlbmNlX2NoZWNrKGVkZXYtPnBkZXYpKQorCQkJCWRldmljZXMrKzsKKworCWlmICghZGV2aWNlcykgeworCQlwcl9kZWJ1ZygiRUVIOiBGcm96ZW4gUEhCIyV4LVBFIyV4IGlzIGVtcHR5IVxuIiwKKwkJCXBlLT5waGItPmdsb2JhbF9udW1iZXIsIHBlLT5hZGRyKTsKKwkJZ290byBvdXQ7IC8qIG5vdGhpbmcgdG8gcmVjb3ZlciAqLworCX0KKworCS8qIExvZyB0aGUgZXZlbnQgKi8KKwlpZiAocGUtPnR5cGUgJiBFRUhfUEVfUEhCKSB7CisJCXByX2VycigiRUVIOiBQSEIjJXggZmFpbHVyZSBkZXRlY3RlZCwgbG9jYXRpb246ICVzXG4iLAorCQkJcGUtPnBoYi0+Z2xvYmFsX251bWJlciwgZWVoX3BlX2xvY19nZXQocGUpKTsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgZWVoX3BlICpwaGJfcGUgPSBlZWhfcGhiX3BlX2dldChwZS0+cGhiKTsKKworCQlwcl9lcnIoIkVFSDogRnJvemVuIFBIQiMleC1QRSMleCBkZXRlY3RlZFxuIiwKKwkJICAgICAgIHBlLT5waGItPmdsb2JhbF9udW1iZXIsIHBlLT5hZGRyKTsKKwkJcHJfZXJyKCJFRUg6IFBFIGxvY2F0aW9uOiAlcywgUEhCIGxvY2F0aW9uOiAlc1xuIiwKKwkJICAgICAgIGVlaF9wZV9sb2NfZ2V0KHBlKSwgZWVoX3BlX2xvY19nZXQocGhiX3BlKSk7CisJfQorCisjaWZkZWYgQ09ORklHX1NUQUNLVFJBQ0UKKwkvKgorCSAqIFByaW50IHRoZSBzYXZlZCBzdGFjayB0cmFjZSBub3cgdGhhdCB3ZSd2ZSB2ZXJpZmllZCB0aGVyZSdzCisJICogc29tZXRoaW5nIHRvIHJlY292ZXIuCisJICovCisJaWYgKHBlLT50cmFjZV9lbnRyaWVzKSB7CisJCXZvaWQgKipwdHJzID0gKHZvaWQgKiopIHBlLT5zdGFja190cmFjZTsKKwkJaW50IGk7CisKKwkJcHJfZXJyKCJFRUg6IEZyb3plbiBQSEIjJXgtUEUjJXggZGV0ZWN0ZWRcbiIsCisJCSAgICAgICBwZS0+cGhiLT5nbG9iYWxfbnVtYmVyLCBwZS0+YWRkcik7CisKKwkJLyogRklYTUU6IFVzZSB0aGUgc2FtZSBmb3JtYXQgYXMgZHVtcF9zdGFjaygpICovCisJCXByX2VycigiRUVIOiBDYWxsIFRyYWNlOlxuIik7CisJCWZvciAoaSA9IDA7IGkgPCBwZS0+dHJhY2VfZW50cmllczsgaSsrKQorCQkJcHJfZXJyKCJFRUg6IFslcEtdICVwU1xuIiwgcHRyc1tpXSwgcHRyc1tpXSk7CisKKwkJcGUtPnRyYWNlX2VudHJpZXMgPSAwOworCX0KKyNlbmRpZiAvKiBDT05GSUdfU1RBQ0tUUkFDRSAqLwogCiAJZWVoX3BlX3VwZGF0ZV90aW1lX3N0YW1wKHBlKTsKIAlwZS0+ZnJlZXplX2NvdW50Kys7CkBAIC03OTMsNiArOTM4LDEwIEBAIHZvaWQgZWVoX2hhbmRsZV9ub3JtYWxfZXZlbnQoc3RydWN0IGVlaF9wZSAqcGUpCiAJCXJlc3VsdCA9IFBDSV9FUlNfUkVTVUxUX0RJU0NPTk5FQ1Q7CiAJfQogCisJZWVoX2Zvcl9lYWNoX3BlKHBlLCB0bXBfcGUpCisJCWVlaF9wZV9mb3JfZWFjaF9kZXYodG1wX3BlLCBlZGV2LCB0bXApCisJCQllZGV2LT5tb2RlICY9IH5FRUhfREVWX05PX0hBTkRMRVI7CisKIAkvKiBXYWxrIHRoZSB2YXJpb3VzIGRldmljZSBkcml2ZXJzIGF0dGFjaGVkIHRvIHRoaXMgc2xvdCB0aHJvdWdoCiAJICogYSByZXNldCBzZXF1ZW5jZSwgZ2l2aW5nIGVhY2ggYW4gb3Bwb3J0dW5pdHkgdG8gZG8gd2hhdCBpdCBuZWVkcwogCSAqIHRvIGFjY29tcGxpc2ggdGhlIHJlc2V0LiAgRWFjaCBjaGlsZCBnZXRzIGEgcmVwb3J0IG9mIHRoZQpAQCAtOTY5LDYgKzExMTgsMTkgQEAgdm9pZCBlZWhfaGFuZGxlX25vcm1hbF9ldmVudChzdHJ1Y3QgZWVoX3BlICpwZSkKIAkJCXJldHVybjsKIAkJfQogCX0KKworb3V0OgorCS8qCisJICogQ2xlYW4gdXAgYW55IFBFcyB3aXRob3V0IGRldmljZXMuIFdoaWxlIG1hcmtlZCBhcyBFRUhfUEVfUkVDT1ZFUllJTkcKKwkgKiB3ZSBkb24ndCB3YW50IHRvIG1vZGlmeSB0aGUgUEUgdHJlZSBzdHJ1Y3R1cmUgc28gd2UgZG8gaXQgaGVyZS4KKwkgKi8KKwllZWhfcGVfY2xlYW51cChwZSk7CisKKwkvKiBjbGVhciB0aGUgc2xvdCBhdHRlbnRpb24gTEVEIGZvciBhbGwgcmVjb3ZlcmVkIGRldmljZXMgKi8KKwllZWhfZm9yX2VhY2hfcGUocGUsIHRtcF9wZSkKKwkJZWVoX3BlX2Zvcl9lYWNoX2Rldih0bXBfcGUsIGVkZXYsIHRtcCkKKwkJCWVlaF9jbGVhcl9zbG90X2F0dGVudGlvbihlZGV2LT5wZGV2KTsKKwogCWVlaF9wZV9zdGF0ZV9jbGVhcihwZSwgRUVIX1BFX1JFQ09WRVJJTkcsIHRydWUpOwogfQogCkBAIC05ODEsNyArMTE0Myw4IEBAIHZvaWQgZWVoX2hhbmRsZV9ub3JtYWxfZXZlbnQoc3RydWN0IGVlaF9wZSAqcGUpCiAgKi8KIHZvaWQgZWVoX2hhbmRsZV9zcGVjaWFsX2V2ZW50KHZvaWQpCiB7Ci0Jc3RydWN0IGVlaF9wZSAqcGUsICpwaGJfcGU7CisJc3RydWN0IGVlaF9wZSAqcGUsICpwaGJfcGUsICp0bXBfcGU7CisJc3RydWN0IGVlaF9kZXYgKmVkZXYsICp0bXBfZWRldjsKIAlzdHJ1Y3QgcGNpX2J1cyAqYnVzOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMTA0MCw2ICsxMjAzLDcgQEAgdm9pZCBlZWhfaGFuZGxlX3NwZWNpYWxfZXZlbnQodm9pZCkKIAkJICovCiAJCWlmIChyYyA9PSBFRUhfTkVYVF9FUlJfRlJPWkVOX1BFIHx8CiAJCSAgICByYyA9PSBFRUhfTkVYVF9FUlJfRkVOQ0VEX1BIQikgeworCQkJZWVoX3BlX3N0YXRlX21hcmsocGUsIEVFSF9QRV9SRUNPVkVSSU5HKTsKIAkJCWVlaF9oYW5kbGVfbm9ybWFsX2V2ZW50KHBlKTsKIAkJfSBlbHNlIHsKIAkJCXBjaV9sb2NrX3Jlc2Nhbl9yZW1vdmUoKTsKQEAgLTEwNTAsNiArMTIxNCwxMCBAQCB2b2lkIGVlaF9oYW5kbGVfc3BlY2lhbF9ldmVudCh2b2lkKQogCQkJCSAgICAocGhiX3BlLT5zdGF0ZSAmIEVFSF9QRV9SRUNPVkVSSU5HKSkKIAkJCQkJY29udGludWU7CiAKKwkJCQllZWhfZm9yX2VhY2hfcGUocGUsIHRtcF9wZSkKKwkJCQkJZWVoX3BlX2Zvcl9lYWNoX2Rldih0bXBfcGUsIGVkZXYsIHRtcF9lZGV2KQorCQkJCQkJZWRldi0+bW9kZSAmPSB+RUVIX0RFVl9OT19IQU5ETEVSOworCiAJCQkJLyogTm90aWZ5IGFsbCBkZXZpY2VzIHRvIGJlIGRvd24gKi8KIAkJCQllZWhfcGVfc3RhdGVfY2xlYXIocGUsIEVFSF9QRV9QUklfQlVTLCB0cnVlKTsKIAkJCQllZWhfc2V0X2NoYW5uZWxfc3RhdGUocGUsIHBjaV9jaGFubmVsX2lvX3Blcm1fZmFpbHVyZSk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2VlaF9ldmVudC5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfZXZlbnQuYwppbmRleCA2NGNmYmU0Li5hN2E4ZGMxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2VlaF9ldmVudC5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZWVoX2V2ZW50LmMKQEAgLTQwLDcgKzQwLDYgQEAgc3RhdGljIGludCBlZWhfZXZlbnRfaGFuZGxlcih2b2lkICogZHVtbXkpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlzdHJ1Y3QgZWVoX2V2ZW50ICpldmVudDsKLQlzdHJ1Y3QgZWVoX3BlICpwZTsKIAogCXdoaWxlICgha3RocmVhZF9zaG91bGRfc3RvcCgpKSB7CiAJCWlmICh3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmVlaF9ldmVudGxpc3RfZXZlbnQpKQpAQCAtNTksMTkgKzU4LDEwIEBAIHN0YXRpYyBpbnQgZWVoX2V2ZW50X2hhbmRsZXIodm9pZCAqIGR1bW15KQogCQkJY29udGludWU7CiAKIAkJLyogV2UgbWlnaHQgaGF2ZSBldmVudCB3aXRob3V0IGJpbmRpbmcgUEUgKi8KLQkJcGUgPSBldmVudC0+cGU7Ci0JCWlmIChwZSkgewotCQkJaWYgKHBlLT50eXBlICYgRUVIX1BFX1BIQikKLQkJCQlwcl9pbmZvKCJFRUg6IERldGVjdGVkIGVycm9yIG9uIFBIQiMleFxuIiwKLQkJCQkJIHBlLT5waGItPmdsb2JhbF9udW1iZXIpOwotCQkJZWxzZQotCQkJCXByX2luZm8oIkVFSDogRGV0ZWN0ZWQgUENJIGJ1cyBlcnJvciBvbiAiCi0JCQkJCSJQSEIjJXgtUEUjJXhcbiIsCi0JCQkJCXBlLT5waGItPmdsb2JhbF9udW1iZXIsIHBlLT5hZGRyKTsKLQkJCWVlaF9oYW5kbGVfbm9ybWFsX2V2ZW50KHBlKTsKLQkJfSBlbHNlIHsKKwkJaWYgKGV2ZW50LT5wZSkKKwkJCWVlaF9oYW5kbGVfbm9ybWFsX2V2ZW50KGV2ZW50LT5wZSk7CisJCWVsc2UKIAkJCWVlaF9oYW5kbGVfc3BlY2lhbF9ldmVudCgpOwotCQl9CiAKIAkJa2ZyZWUoZXZlbnQpOwogCX0KQEAgLTEyMSw2ICsxMTEsMjQgQEAgaW50IF9fZWVoX3NlbmRfZmFpbHVyZV9ldmVudChzdHJ1Y3QgZWVoX3BlICpwZSkKIAl9CiAJZXZlbnQtPnBlID0gcGU7CiAKKwkvKgorCSAqIE1hcmsgdGhlIFBFIGFzIHJlY292ZXJpbmcgYmVmb3JlIGluc2VydGluZyBpdCBpbiB0aGUgcXVldWUuCisJICogVGhpcyBwcmV2ZW50cyB0aGUgUEUgZnJvbSBiZWluZyBmcmVlKCllZCBieSBhIGhvdHBsdWcgZHJpdmVyCisJICogd2hpbGUgdGhlIFBFIGlzIHNpdHRpbmcgaW4gdGhlIGV2ZW50IHF1ZXVlLgorCSAqLworCWlmIChwZSkgeworI2lmZGVmIENPTkZJR19TVEFDS1RSQUNFCisJCS8qCisJCSAqIFNhdmUgdGhlIGN1cnJlbnQgc3RhY2sgdHJhY2Ugc28gd2UgY2FuIGR1bXAgaXQgZnJvbSB0aGUKKwkJICogZXZlbnQgaGFuZGxlciB0aHJlYWQuCisJCSAqLworCQlwZS0+dHJhY2VfZW50cmllcyA9IHN0YWNrX3RyYWNlX3NhdmUocGUtPnN0YWNrX3RyYWNlLAorCQkJCQkgQVJSQVlfU0laRShwZS0+c3RhY2tfdHJhY2UpLCAwKTsKKyNlbmRpZiAvKiBDT05GSUdfU1RBQ0tUUkFDRSAqLworCisJCWVlaF9wZV9zdGF0ZV9tYXJrKHBlLCBFRUhfUEVfUkVDT1ZFUklORyk7CisJfQorCiAJLyogV2UgbWF5IG9yIG1heSBub3QgYmUgY2FsbGVkIGluIGFuIGludGVycnVwdCBjb250ZXh0ICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmVlaF9ldmVudGxpc3RfbG9jaywgZmxhZ3MpOwogCWxpc3RfYWRkKCZldmVudC0+bGlzdCwgJmVlaF9ldmVudGxpc3QpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfcGUuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZWVoX3BlLmMKaW5kZXggODU0Y2VmNy4uMTc3ODUyZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lZWhfcGUuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2VlaF9wZS5jCkBAIC0yMzEsMjkgKzIzMSwyMiBAQCB2b2lkICplZWhfcGVfdHJhdmVyc2Uoc3RydWN0IGVlaF9wZSAqcm9vdCwKICAqIFRoZSBmdW5jdGlvbiBpcyB1c2VkIHRvIHRyYXZlcnNlIHRoZSBkZXZpY2VzIG9mIHRoZSBzcGVjaWZpZWQKICAqIFBFIGFuZCBpdHMgY2hpbGQgUEVzLgogICovCi12b2lkICplZWhfcGVfZGV2X3RyYXZlcnNlKHN0cnVjdCBlZWhfcGUgKnJvb3QsCit2b2lkIGVlaF9wZV9kZXZfdHJhdmVyc2Uoc3RydWN0IGVlaF9wZSAqcm9vdCwKIAkJCSAgZWVoX2VkZXZfdHJhdmVyc2VfZnVuYyBmbiwgdm9pZCAqZmxhZykKIHsKIAlzdHJ1Y3QgZWVoX3BlICpwZTsKIAlzdHJ1Y3QgZWVoX2RldiAqZWRldiwgKnRtcDsKLQl2b2lkICpyZXQ7CiAKIAlpZiAoIXJvb3QpIHsKIAkJcHJfd2FybigiJXM6IEludmFsaWQgUEUgJXBcbiIsCiAJCQlfX2Z1bmNfXywgcm9vdCk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm47CiAJfQogCiAJLyogVHJhdmVyc2Ugcm9vdCBQRSAqLwotCWVlaF9mb3JfZWFjaF9wZShyb290LCBwZSkgewotCQllZWhfcGVfZm9yX2VhY2hfZGV2KHBlLCBlZGV2LCB0bXApIHsKLQkJCXJldCA9IGZuKGVkZXYsIGZsYWcpOwotCQkJaWYgKHJldCkKLQkJCQlyZXR1cm4gcmV0OwotCQl9Ci0JfQotCi0JcmV0dXJuIE5VTEw7CisJZWVoX2Zvcl9lYWNoX3BlKHJvb3QsIHBlKQorCQllZWhfcGVfZm9yX2VhY2hfZGV2KHBlLCBlZGV2LCB0bXApCisJCQlmbihlZGV2LCBmbGFnKTsKIH0KIAogLyoqCkBAIC0zNzksOCArMzcyLDcgQEAgaW50IGVlaF9hZGRfdG9fcGFyZW50X3BlKHN0cnVjdCBlZWhfZGV2ICplZGV2KQogCiAJLyogQ2hlY2sgaWYgdGhlIFBFIG51bWJlciBpcyB2YWxpZCAqLwogCWlmICghZWVoX2hhc19mbGFnKEVFSF9WQUxJRF9QRV9aRVJPKSAmJiAhZWRldi0+cGVfY29uZmlnX2FkZHIpIHsKLQkJcHJfZXJyKCIlczogSW52YWxpZCBQRSMwIGZvciBlZGV2IDB4JXggb24gUEhCIyV4XG4iLAotCQkgICAgICAgX19mdW5jX18sIGNvbmZpZ19hZGRyLCBwZG4tPnBoYi0+Z2xvYmFsX251bWJlcik7CisJCWVlaF9lZGV2X2VycihlZGV2LCAiUEUjMCBpcyBpbnZhbGlkIGZvciB0aGlzIFBIQiFcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTM5MSw0MiArMzgzLDM0IEBAIGludCBlZWhfYWRkX3RvX3BhcmVudF9wZShzdHJ1Y3QgZWVoX2RldiAqZWRldikKIAkgKiBjb21wb25lbnRzLgogCSAqLwogCXBlID0gZWVoX3BlX2dldChwZG4tPnBoYiwgZWRldi0+cGVfY29uZmlnX2FkZHIsIGNvbmZpZ19hZGRyKTsKLQlpZiAocGUgJiYgIShwZS0+dHlwZSAmIEVFSF9QRV9JTlZBTElEKSkgewotCQkvKiBNYXJrIHRoZSBQRSBhcyB0eXBlIG9mIFBDSSBidXMgKi8KLQkJcGUtPnR5cGUgPSBFRUhfUEVfQlVTOwotCQllZGV2LT5wZSA9IHBlOworCWlmIChwZSkgeworCQlpZiAocGUtPnR5cGUgJiBFRUhfUEVfSU5WQUxJRCkgeworCQkJbGlzdF9hZGRfdGFpbCgmZWRldi0+ZW50cnksICZwZS0+ZWRldnMpOworCQkJZWRldi0+cGUgPSBwZTsKKwkJCS8qCisJCQkgKiBXZSdyZSBydW5uaW5nIHRvIGhlcmUgYmVjYXVzZSBvZiBQQ0kgaG90cGx1ZyBjYXVzZWQgYnkKKwkJCSAqIEVFSCByZWNvdmVyeS4gV2UgbmVlZCBjbGVhciBFRUhfUEVfSU5WQUxJRCB1bnRpbCB0aGUgdG9wLgorCQkJICovCisJCQlwYXJlbnQgPSBwZTsKKwkJCXdoaWxlIChwYXJlbnQpIHsKKwkJCQlpZiAoIShwYXJlbnQtPnR5cGUgJiBFRUhfUEVfSU5WQUxJRCkpCisJCQkJCWJyZWFrOworCQkJCXBhcmVudC0+dHlwZSAmPSB+RUVIX1BFX0lOVkFMSUQ7CisJCQkJcGFyZW50ID0gcGFyZW50LT5wYXJlbnQ7CisJCQl9CiAKLQkJLyogUHV0IHRoZSBlZGV2IHRvIFBFICovCi0JCWxpc3RfYWRkX3RhaWwoJmVkZXYtPmVudHJ5LCAmcGUtPmVkZXZzKTsKLQkJcHJfZGVidWcoIkVFSDogQWRkICUwNHg6JTAyeDolMDJ4LiUwMXggdG8gQnVzIFBFIyV4XG4iLAotCQkJIHBkbi0+cGhiLT5nbG9iYWxfbnVtYmVyLAotCQkJIHBkbi0+YnVzbm8sCi0JCQkgUENJX1NMT1QocGRuLT5kZXZmbiksCi0JCQkgUENJX0ZVTkMocGRuLT5kZXZmbiksCi0JCQkgcGUtPmFkZHIpOwotCQlyZXR1cm4gMDsKLQl9IGVsc2UgaWYgKHBlICYmIChwZS0+dHlwZSAmIEVFSF9QRV9JTlZBTElEKSkgewotCQlsaXN0X2FkZF90YWlsKCZlZGV2LT5lbnRyeSwgJnBlLT5lZGV2cyk7Ci0JCWVkZXYtPnBlID0gcGU7Ci0JCS8qCi0JCSAqIFdlJ3JlIHJ1bm5pbmcgdG8gaGVyZSBiZWNhdXNlIG9mIFBDSSBob3RwbHVnIGNhdXNlZCBieQotCQkgKiBFRUggcmVjb3ZlcnkuIFdlIG5lZWQgY2xlYXIgRUVIX1BFX0lOVkFMSUQgdW50aWwgdGhlIHRvcC4KLQkJICovCi0JCXBhcmVudCA9IHBlOwotCQl3aGlsZSAocGFyZW50KSB7Ci0JCQlpZiAoIShwYXJlbnQtPnR5cGUgJiBFRUhfUEVfSU5WQUxJRCkpCi0JCQkJYnJlYWs7Ci0JCQlwYXJlbnQtPnR5cGUgJj0gfkVFSF9QRV9JTlZBTElEOwotCQkJcGFyZW50ID0gcGFyZW50LT5wYXJlbnQ7CisJCQllZWhfZWRldl9kYmcoZWRldiwKKwkJCQkgICAgICJBZGRlZCB0byBkZXZpY2UgUEUgKHBhcmVudDogUEUjJXgpXG4iLAorCQkJCSAgICAgcGUtPnBhcmVudC0+YWRkcik7CisJCX0gZWxzZSB7CisJCQkvKiBNYXJrIHRoZSBQRSBhcyB0eXBlIG9mIFBDSSBidXMgKi8KKwkJCXBlLT50eXBlID0gRUVIX1BFX0JVUzsKKwkJCWVkZXYtPnBlID0gcGU7CisKKwkJCS8qIFB1dCB0aGUgZWRldiB0byBQRSAqLworCQkJbGlzdF9hZGRfdGFpbCgmZWRldi0+ZW50cnksICZwZS0+ZWRldnMpOworCQkJZWVoX2VkZXZfZGJnKGVkZXYsICJBZGRlZCB0byBidXMgUEVcbiIpOwogCQl9Ci0KLQkJcHJfZGVidWcoIkVFSDogQWRkICUwNHg6JTAyeDolMDJ4LiUwMXggdG8gRGV2aWNlICIKLQkJCSAiUEUjJXgsIFBhcmVudCBQRSMleFxuIiwKLQkJCSBwZG4tPnBoYi0+Z2xvYmFsX251bWJlciwKLQkJCSBwZG4tPmJ1c25vLAotCQkJIFBDSV9TTE9UKHBkbi0+ZGV2Zm4pLAotCQkJIFBDSV9GVU5DKHBkbi0+ZGV2Zm4pLAotCQkJIHBlLT5hZGRyLCBwZS0+cGFyZW50LT5hZGRyKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC00NjgsMTMgKzQ1Miw4IEBAIGludCBlZWhfYWRkX3RvX3BhcmVudF9wZShzdHJ1Y3QgZWVoX2RldiAqZWRldikKIAlsaXN0X2FkZF90YWlsKCZwZS0+Y2hpbGQsICZwYXJlbnQtPmNoaWxkX2xpc3QpOwogCWxpc3RfYWRkX3RhaWwoJmVkZXYtPmVudHJ5LCAmcGUtPmVkZXZzKTsKIAllZGV2LT5wZSA9IHBlOwotCXByX2RlYnVnKCJFRUg6IEFkZCAlMDR4OiUwMng6JTAyeC4lMDF4IHRvICIKLQkJICJEZXZpY2UgUEUjJXgsIFBhcmVudCBQRSMleFxuIiwKLQkJIHBkbi0+cGhiLT5nbG9iYWxfbnVtYmVyLAotCQkgcGRuLT5idXNubywKLQkJIFBDSV9TTE9UKHBkbi0+ZGV2Zm4pLAotCQkgUENJX0ZVTkMocGRuLT5kZXZmbiksCi0JCSBwZS0+YWRkciwgcGUtPnBhcmVudC0+YWRkcik7CisJZWVoX2VkZXZfZGJnKGVkZXYsICJBZGRlZCB0byBkZXZpY2UgUEUgKHBhcmVudDogUEUjJXgpXG4iLAorCQkgICAgIHBlLT5wYXJlbnQtPmFkZHIpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC00OTEsMTYgKzQ3MCwxMiBAQCBpbnQgZWVoX2FkZF90b19wYXJlbnRfcGUoc3RydWN0IGVlaF9kZXYgKmVkZXYpCiBpbnQgZWVoX3Jtdl9mcm9tX3BhcmVudF9wZShzdHJ1Y3QgZWVoX2RldiAqZWRldikKIHsKIAlzdHJ1Y3QgZWVoX3BlICpwZSwgKnBhcmVudCwgKmNoaWxkOworCWJvb2wga2VlcCwgcmVjb3ZlcjsKIAlpbnQgY250OwotCXN0cnVjdCBwY2lfZG4gKnBkbiA9IGVlaF9kZXZfdG9fcGRuKGVkZXYpOwogCiAJcGUgPSBlZWhfZGV2X3RvX3BlKGVkZXYpOwogCWlmICghcGUpIHsKLQkJcHJfZGVidWcoIiVzOiBObyBQRSBmb3VuZCBmb3IgZGV2aWNlICUwNHg6JTAyeDolMDJ4LiUwMXhcbiIsCi0JCQkgX19mdW5jX18sICBwZG4tPnBoYi0+Z2xvYmFsX251bWJlciwKLQkJCSBwZG4tPmJ1c25vLAotCQkJIFBDSV9TTE9UKHBkbi0+ZGV2Zm4pLAotCQkJIFBDSV9GVU5DKHBkbi0+ZGV2Zm4pKTsKKwkJZWVoX2VkZXZfZGJnKGVkZXYsICJObyBQRSBmb3VuZCBmb3IgZGV2aWNlLlxuIik7CiAJCXJldHVybiAtRUVYSVNUOwogCX0KIApAQCAtNTE2LDEwICs0OTEsMjEgQEAgaW50IGVlaF9ybXZfZnJvbV9wYXJlbnRfcGUoc3RydWN0IGVlaF9kZXYgKmVkZXYpCiAJICovCiAJd2hpbGUgKDEpIHsKIAkJcGFyZW50ID0gcGUtPnBhcmVudDsKKworCQkvKiBQSEIgUEVzIHNob3VsZCBuZXZlciBiZSByZW1vdmVkICovCiAJCWlmIChwZS0+dHlwZSAmIEVFSF9QRV9QSEIpCiAJCQlicmVhazsKIAotCQlpZiAoIShwZS0+c3RhdGUgJiBFRUhfUEVfS0VFUCkpIHsKKwkJLyoKKwkJICogWFhYOiBLRUVQIGlzIHNldCB3aGlsZSByZXNldHRpbmcgYSBQRS4gSSBkb24ndCB0aGluayBpdCdzCisJCSAqIGV2ZXIgc2V0IHdpdGhvdXQgUkVDT1ZFUklORyBhbHNvIGJlaW5nIHNldC4gSSBjb3VsZAorCQkgKiBiZSB3cm9uZyB0aG91Z2ggc28gY2F0Y2ggdGhhdCB3aXRoIGEgV0FSTi4KKwkJICovCisJCWtlZXAgPSAhIShwZS0+c3RhdGUgJiBFRUhfUEVfS0VFUCk7CisJCXJlY292ZXIgPSAhIShwZS0+c3RhdGUgJiBFRUhfUEVfUkVDT1ZFUklORyk7CisJCVdBUk5fT04oa2VlcCAmJiAhcmVjb3Zlcik7CisKKwkJaWYgKCFrZWVwICYmICFyZWNvdmVyKSB7CiAJCQlpZiAobGlzdF9lbXB0eSgmcGUtPmVkZXZzKSAmJgogCQkJICAgIGxpc3RfZW1wdHkoJnBlLT5jaGlsZF9saXN0KSkgewogCQkJCWxpc3RfZGVsKCZwZS0+Y2hpbGQpOwpAQCAtNTI4LDYgKzUxNCwxNSBAQCBpbnQgZWVoX3Jtdl9mcm9tX3BhcmVudF9wZShzdHJ1Y3QgZWVoX2RldiAqZWRldikKIAkJCQlicmVhazsKIAkJCX0KIAkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiBNYXJrIHRoZSBQRSBhcyBpbnZhbGlkLiBBdCB0aGUgZW5kIG9mIHRoZSByZWNvdmVyeQorCQkJICogcHJvY2VzcyBhbnkgaW52YWxpZCBQRXMgd2lsbCBiZSBnYXJiYWdlIGNvbGxlY3RlZC4KKwkJCSAqCisJCQkgKiBXZSBuZWVkIHRvIGRlbGF5IHRoZSBmcmVlKClpbmcgb2YgdGhlbSBzaW5jZSB3ZSBjYW4KKwkJCSAqIHJlbW92ZSBlZGV2J3Mgd2hpbGUgdHJhdmVyc2luZyB0aGUgUEUgdHJlZSB3aGljaAorCQkJICogbWlnaHQgdHJpZ2dlciB0aGUgcmVtb3ZhbCBvZiBhIFBFIGFuZCB3ZSBjYW4ndAorCQkJICogZGVhbCB3aXRoIHRoYXQgKHlldCkuCisJCQkgKi8KIAkJCWlmIChsaXN0X2VtcHR5KCZwZS0+ZWRldnMpKSB7CiAJCQkJY250ID0gMDsKIAkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNoaWxkLCAmcGUtPmNoaWxkX2xpc3QsIGNoaWxkKSB7CkBAIC02MjMsMTMgKzYxOCwxMSBAQCB2b2lkIGVlaF9wZV9tYXJrX2lzb2xhdGVkKHN0cnVjdCBlZWhfcGUgKnJvb3QpCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChlZWhfcGVfbWFya19pc29sYXRlZCk7CiAKLXN0YXRpYyB2b2lkICpfX2VlaF9wZV9kZXZfbW9kZV9tYXJrKHN0cnVjdCBlZWhfZGV2ICplZGV2LCB2b2lkICpmbGFnKQorc3RhdGljIHZvaWQgX19lZWhfcGVfZGV2X21vZGVfbWFyayhzdHJ1Y3QgZWVoX2RldiAqZWRldiwgdm9pZCAqZmxhZykKIHsKIAlpbnQgbW9kZSA9ICooKGludCAqKWZsYWcpOwogCiAJZWRldi0+bW9kZSB8PSBtb2RlOwotCi0JcmV0dXJuIE5VTEw7CiB9CiAKIC8qKgpAQCAtNzE3LDE3ICs3MTAsMTMgQEAgc3RhdGljIHZvaWQgZWVoX2JyaWRnZV9jaGVja19saW5rKHN0cnVjdCBlZWhfZGV2ICplZGV2KQogCWlmICghKGVkZXYtPm1vZGUgJiAoRUVIX0RFVl9ST09UX1BPUlQgfCBFRUhfREVWX0RTX1BPUlQpKSkKIAkJcmV0dXJuOwogCi0JcHJfZGVidWcoIiVzOiBDaGVjayBQQ0llIGxpbmsgZm9yICUwNHg6JTAyeDolMDJ4LiUwMXggLi4uXG4iLAotCQkgX19mdW5jX18sIHBkbi0+cGhiLT5nbG9iYWxfbnVtYmVyLAotCQkgcGRuLT5idXNubywKLQkJIFBDSV9TTE9UKHBkbi0+ZGV2Zm4pLAotCQkgUENJX0ZVTkMocGRuLT5kZXZmbikpOworCWVlaF9lZGV2X2RiZyhlZGV2LCAiQ2hlY2tpbmcgUENJZSBsaW5rLi4uXG4iKTsKIAogCS8qIENoZWNrIHNsb3Qgc3RhdHVzICovCiAJY2FwID0gZWRldi0+cGNpZV9jYXA7CiAJZWVoX29wcy0+cmVhZF9jb25maWcocGRuLCBjYXAgKyBQQ0lfRVhQX1NMVFNUQSwgMiwgJnZhbCk7CiAJaWYgKCEodmFsICYgUENJX0VYUF9TTFRTVEFfUERTKSkgewotCQlwcl9kZWJ1ZygiICBObyBjYXJkIGluIHRoZSBzbG90ICgweCUwNHgpICFcbiIsIHZhbCk7CisJCWVlaF9lZGV2X2RiZyhlZGV2LCAiTm8gY2FyZCBpbiB0aGUgc2xvdCAoMHglMDR4KSAhXG4iLCB2YWwpOwogCQlyZXR1cm47CiAJfQogCkBAIC03MzYsNyArNzI1LDcgQEAgc3RhdGljIHZvaWQgZWVoX2JyaWRnZV9jaGVja19saW5rKHN0cnVjdCBlZWhfZGV2ICplZGV2KQogCWlmICh2YWwgJiBQQ0lfRVhQX1NMVENBUF9QQ1ApIHsKIAkJZWVoX29wcy0+cmVhZF9jb25maWcocGRuLCBjYXAgKyBQQ0lfRVhQX1NMVENUTCwgMiwgJnZhbCk7CiAJCWlmICh2YWwgJiBQQ0lfRVhQX1NMVENUTF9QQ0MpIHsKLQkJCXByX2RlYnVnKCIgIEluIHBvd2VyLW9mZiBzdGF0ZSwgcG93ZXIgaXQgb24gLi4uXG4iKTsKKwkJCWVlaF9lZGV2X2RiZyhlZGV2LCAiSW4gcG93ZXItb2ZmIHN0YXRlLCBwb3dlciBpdCBvbiAuLi5cbiIpOwogCQkJdmFsICY9IH4oUENJX0VYUF9TTFRDVExfUENDIHwgUENJX0VYUF9TTFRDVExfUElDKTsKIAkJCXZhbCB8PSAoMHgwMTAwICYgUENJX0VYUF9TTFRDVExfUElDKTsKIAkJCWVlaF9vcHMtPndyaXRlX2NvbmZpZyhwZG4sIGNhcCArIFBDSV9FWFBfU0xUQ1RMLCAyLCB2YWwpOwpAQCAtNzUyLDcgKzc0MSw3IEBAIHN0YXRpYyB2b2lkIGVlaF9icmlkZ2VfY2hlY2tfbGluayhzdHJ1Y3QgZWVoX2RldiAqZWRldikKIAkvKiBDaGVjayBsaW5rICovCiAJZWVoX29wcy0+cmVhZF9jb25maWcocGRuLCBjYXAgKyBQQ0lfRVhQX0xOS0NBUCwgNCwgJnZhbCk7CiAJaWYgKCEodmFsICYgUENJX0VYUF9MTktDQVBfRExMTEFSQykpIHsKLQkJcHJfZGVidWcoIiAgTm8gbGluayByZXBvcnRpbmcgY2FwYWJpbGl0eSAoMHglMDh4KSBcbiIsIHZhbCk7CisJCWVlaF9lZGV2X2RiZyhlZGV2LCAiTm8gbGluayByZXBvcnRpbmcgY2FwYWJpbGl0eSAoMHglMDh4KSBcbiIsIHZhbCk7CiAJCW1zbGVlcCgxMDAwKTsKIAkJcmV0dXJuOwogCX0KQEAgLTc2OSwxMCArNzU4LDEwIEBAIHN0YXRpYyB2b2lkIGVlaF9icmlkZ2VfY2hlY2tfbGluayhzdHJ1Y3QgZWVoX2RldiAqZWRldikKIAl9CiAKIAlpZiAodmFsICYgUENJX0VYUF9MTktTVEFfRExMTEEpCi0JCXByX2RlYnVnKCIgIExpbmsgdXAgKCVzKVxuIiwKKwkJZWVoX2VkZXZfZGJnKGVkZXYsICJMaW5rIHVwICglcylcbiIsCiAJCQkgKHZhbCAmIFBDSV9FWFBfTE5LU1RBX0NMU18yXzVHQikgPyAiMi41R0IiIDogIjVHQiIpOwogCWVsc2UKLQkJcHJfZGVidWcoIiAgTGluayBub3QgcmVhZHkgKDB4JTA0eClcbiIsIHZhbCk7CisJCWVlaF9lZGV2X2RiZyhlZGV2LCAiTGluayBub3QgcmVhZHkgKDB4JTA0eClcbiIsIHZhbCk7CiB9CiAKICNkZWZpbmUgQllURV9TV0FQKE9GRikJKDgqKChPRkYpLzQpKzMtKE9GRikpCkBAIC04NTIsNyArODQxLDcgQEAgc3RhdGljIHZvaWQgZWVoX3Jlc3RvcmVfZGV2aWNlX2JhcnMoc3RydWN0IGVlaF9kZXYgKmVkZXYpCiAgKiB0aGUgZXhwYW5zaW9uIFJPTSBiYXNlIGFkZHJlc3MsIHRoZSBsYXRlbmN5IHRpbWVyLCBhbmQgZXRjLgogICogZnJvbSB0aGUgc2F2ZWQgdmFsdWVzIGluIHRoZSBkZXZpY2Ugbm9kZS4KICAqLwotc3RhdGljIHZvaWQgKmVlaF9yZXN0b3JlX29uZV9kZXZpY2VfYmFycyhzdHJ1Y3QgZWVoX2RldiAqZWRldiwgdm9pZCAqZmxhZykKK3N0YXRpYyB2b2lkIGVlaF9yZXN0b3JlX29uZV9kZXZpY2VfYmFycyhzdHJ1Y3QgZWVoX2RldiAqZWRldiwgdm9pZCAqZmxhZykKIHsKIAlzdHJ1Y3QgcGNpX2RuICpwZG4gPSBlZWhfZGV2X3RvX3BkbihlZGV2KTsKIApAQCAtODY0LDggKzg1Myw2IEBAIHN0YXRpYyB2b2lkICplZWhfcmVzdG9yZV9vbmVfZGV2aWNlX2JhcnMoc3RydWN0IGVlaF9kZXYgKmVkZXYsIHZvaWQgKmZsYWcpCiAKIAlpZiAoZWVoX29wcy0+cmVzdG9yZV9jb25maWcgJiYgcGRuKQogCQllZWhfb3BzLT5yZXN0b3JlX2NvbmZpZyhwZG4pOwotCi0JcmV0dXJuIE5VTEw7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV8zMi5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV8zMi5TCmluZGV4IDU0ZmFiMjIuLmQ2MDkwOGUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfMzIuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzMyLlMKQEAgLTIzMCw3ICsyMzAsNyBAQAogCSAqLwogCWxpcwlyMTIscmVlbmFibGVfbW11QGgKIAlvcmkJcjEyLHIxMixyZWVuYWJsZV9tbXVAbAotCUxPQURfTVNSX0tFUk5FTChyMCwgTVNSX0tFUk5FTCkKKwlMT0FEX1JFR19JTU1FRElBVEUocjAsIE1TUl9LRVJORUwpCiAJbXRzcHIJU1BSTl9TUlIwLHIxMgogCW10c3ByCVNQUk5fU1JSMSxyMAogCVNZTkMKQEAgLTMwNCw3ICszMDQsNyBAQAogCWFkZGkJcjEscjEsVEhSRUFEX1NJWkUtU1RBQ0tfRlJBTUVfT1ZFUkhFQUQKIAlsaXMJcjksU3RhY2tPdmVyZmxvd0BoYQogCWFkZGkJcjkscjksU3RhY2tPdmVyZmxvd0BsCi0JTE9BRF9NU1JfS0VSTkVMKHIxMCxNU1JfS0VSTkVMKQorCUxPQURfUkVHX0lNTUVESUFURShyMTAsTVNSX0tFUk5FTCkKICNpZiBkZWZpbmVkKENPTkZJR19QUENfOHh4KSAmJiBkZWZpbmVkKENPTkZJR19QRVJGX0VWRU5UUykKIAltdHNwcglTUFJOX05SSSwgcjAKICNlbmRpZgpAQCAtMzI0LDcgKzMyNCw3IEBACiAJYmwJdHJhY2VfaGFyZGlycXNfb24KIAogCS8qIE5vdyBlbmFibGUgZm9yIHJlYWwgKi8KLQlMT0FEX01TUl9LRVJORUwocjEwLCBNU1JfS0VSTkVMIHwgTVNSX0VFKQorCUxPQURfUkVHX0lNTUVESUFURShyMTAsIE1TUl9LRVJORUwgfCBNU1JfRUUpCiAJbXRtc3IJcjEwCiAKIAlSRVNUX0dQUigwLCByMSkKQEAgLTM5NCw3ICszOTQsNyBAQAogI2VuZGlmCiAJbXIJcjYscjMKIAkvKiBkaXNhYmxlIGludGVycnVwdHMgc28gY3VycmVudF90aHJlYWRfaW5mbygpLT5mbGFncyBjYW4ndCBjaGFuZ2UgKi8KLQlMT0FEX01TUl9LRVJORUwocjEwLE1TUl9LRVJORUwpCS8qIGRvZXNuJ3QgaW5jbHVkZSBNU1JfRUUgKi8KKwlMT0FEX1JFR19JTU1FRElBVEUocjEwLE1TUl9LRVJORUwpCS8qIGRvZXNuJ3QgaW5jbHVkZSBNU1JfRUUgKi8KIAkvKiBOb3RlOiBXZSBkb24ndCBib3RoZXIgdGVsbGluZyBsb2NrZGVwIGFib3V0IGl0ICovCiAJU1lOQwogCU1UTVNSRChyMTApCkBAIC03NzcsMTEgKzc3NywxOSBAQAogMToJbGlzCXIzLGV4Y19leGl0X3Jlc3RhcnRfZW5kQGhhCiAJYWRkaQlyMyxyMyxleGNfZXhpdF9yZXN0YXJ0X2VuZEBsCiAJY21wbHcJcjEyLHIzCisjaWYgQ09ORklHX1BQQ19CT09LM1NfNjAxCisJYmdlCTJiCisjZWxzZQogCWJnZQkzZgorI2VuZGlmCiAJbGlzCXI0LGV4Y19leGl0X3Jlc3RhcnRAaGEKIAlhZGRpCXI0LHI0LGV4Y19leGl0X3Jlc3RhcnRAbAogCWNtcGx3CXIxMixyNAorI2lmIENPTkZJR19QUENfQk9PSzNTXzYwMQorCWJsdAkyYgorI2Vsc2UKIAlibHQJM2YKKyNlbmRpZgogCWxpcwlyMyxmZWVfcmVzdGFydHNAaGEKIAl0b3BoeXMocjMscjMpCiAJbHd6CXI1LGZlZV9yZXN0YXJ0c0BsKHIzKQpAQCAtODAwLDkgKzgwOCw2IEBACiAvKiBhYXJnaCwgd2UgZG9uJ3Qga25vdyB3aGljaCB0cmFwIHRoaXMgaXMgKi8KIC8qIGJ1dCB0aGUgNjAxIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBSSSBiaXQsIHNvIGFzc3VtZSBpdCdzIE9LICovCiAzOgotQkVHSU5fRlRSX1NFQ1RJT04KLQliCTJiCi1FTkRfRlRSX1NFQ1RJT05fSUZTRVQoQ1BVX0ZUUl82MDEpCiAJbGkJcjEwLC0xCiAJc3R3CXIxMCxfVFJBUChyMTEpCiAJYWRkaQlyMyxyMSxTVEFDS19GUkFNRV9PVkVSSEVBRApAQCAtODI0LDcgKzgyOSw3IEBACiAJICogY2FuJ3QgY2hhbmdlIGJldHdlZW4gd2hlbiB3ZSB0ZXN0IGl0IGFuZCB3aGVuIHdlIHJldHVybgogCSAqIGZyb20gdGhlIGludGVycnVwdC4gKi8KIAkvKiBOb3RlOiBXZSBkb24ndCBib3RoZXIgdGVsbGluZyBsb2NrZGVwIGFib3V0IGl0ICovCi0JTE9BRF9NU1JfS0VSTkVMKHIxMCxNU1JfS0VSTkVMKQorCUxPQURfUkVHX0lNTUVESUFURShyMTAsTVNSX0tFUk5FTCkKIAlTWU5DCQkJLyogU29tZSBjaGlwIHJldnMgaGF2ZSBwcm9ibGVtcyBoZXJlLi4uICovCiAJTVRNU1JEKHIxMCkJCS8qIGRpc2FibGUgaW50ZXJydXB0cyAqLwogCkBAIC05OTEsNyArOTk2LDcgQEAKIAkgKiBjYW4gcmVzdGFydCB0aGUgZXhjZXB0aW9uIGV4aXQgcGF0aCBhdCB0aGUgbGFiZWwKIAkgKiBleGNfZXhpdF9yZXN0YXJ0IGJlbG93LiAgLS0gcGF1bHVzCiAJICovCi0JTE9BRF9NU1JfS0VSTkVMKHIxMCxNU1JfS0VSTkVMICYgfk1TUl9SSSkKKwlMT0FEX1JFR19JTU1FRElBVEUocjEwLE1TUl9LRVJORUwgJiB+TVNSX1JJKQogCVNZTkMKIAlNVE1TUkQocjEwKQkJLyogY2xlYXIgdGhlIFJJIGJpdCAqLwogCS5nbG9ibCBleGNfZXhpdF9yZXN0YXJ0CkBAIC0xMDY2LDcgKzEwNzEsNyBAQAogCVJFU1RfTlZHUFJTKHIxKTsJCQkJCQlcCiAJbHd6CXIzLF9NU1IocjEpOwkJCQkJCVwKIAlhbmRpLglyMyxyMyxNU1JfUFI7CQkJCQkJXAotCUxPQURfTVNSX0tFUk5FTChyMTAsTVNSX0tFUk5FTCk7CQkJCVwKKwlMT0FEX1JFR19JTU1FRElBVEUocjEwLE1TUl9LRVJORUwpOwkJCQlcCiAJYm5lCXVzZXJfZXhjX3JldHVybjsJCQkJCVwKIAlsd3oJcjAsR1BSMChyMSk7CQkJCQkJXAogCWx3eglyMixHUFIyKHIxKTsJCQkJCQlcCkBAIC0xMjM2LDcgKzEyNDEsNyBAQAogCSAqIG5laXRoZXIuIFRob3NlIGRpc2FibGUvZW5hYmxlIGN5Y2xlcyB1c2VkIHRvIHBlZWsgYXQKIAkgKiBUSV9GTEFHUyBhcmVuJ3QgYWR2ZXJ0aXNlZC4KIAkgKi8KLQlMT0FEX01TUl9LRVJORUwocjEwLE1TUl9LRVJORUwpCisJTE9BRF9SRUdfSU1NRURJQVRFKHIxMCxNU1JfS0VSTkVMKQogCVNZTkMKIAlNVE1TUkQocjEwKQkJLyogZGlzYWJsZSBpbnRlcnJ1cHRzICovCiAJbHd6CXI5LFRJX0ZMQUdTKHIyKQpAQCAtMTI3MCwxMSArMTI3NSwxOSBAQAogCWxpcwlyMTAsZXhjX2V4aXRfcmVzdGFydF9lbmRAaGEKIAlhZGRpCXIxMCxyMTAsZXhjX2V4aXRfcmVzdGFydF9lbmRAbAogCWNtcGx3CXIxMixyMTAKKyNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182MDEKKwliZ2VscgorI2Vsc2UKIAliZ2UJM2YKKyNlbmRpZgogCWxpcwlyMTEsZXhjX2V4aXRfcmVzdGFydEBoYQogCWFkZGkJcjExLHIxMSxleGNfZXhpdF9yZXN0YXJ0QGwKIAljbXBsdwlyMTIscjExCisjaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjAxCisJYmx0bHIKKyNlbHNlCiAJYmx0CTNmCisjZW5kaWYKIAlsaXMJcjEwLGVlX3Jlc3RhcnRzQGhhCiAJbHd6CXIxMixlZV9yZXN0YXJ0c0BsKHIxMCkKIAlhZGRpCXIxMixyMTIsMQpAQCAtMTI4Myw5ICsxMjk2LDYgQEAKIAlibHIKIDM6CS8qIE9LLCB3ZSBjYW4ndCByZWNvdmVyLCBraWxsIHRoaXMgcHJvY2VzcyAqLwogCS8qIGJ1dCB0aGUgNjAxIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBSSSBiaXQsIHNvIGFzc3VtZSBpdCdzIE9LICovCi1CRUdJTl9GVFJfU0VDVElPTgotCWJscgotRU5EX0ZUUl9TRUNUSU9OX0lGU0VUKENQVV9GVFJfNjAxKQogCWx3eglyMyxfVFJBUChyMSkKIAlhbmRpLglyMCxyMywxCiAJYmVxCTVmCkBAIC0xMzI5LDcgKzEzMzksNyBAQAogCWx3eglyNCxSVEFTQkFTRShyNCkKIAltZm1zcglyOQogCXN0dwlyOSw4KHIxKQotCUxPQURfTVNSX0tFUk5FTChyMCxNU1JfS0VSTkVMKQorCUxPQURfUkVHX0lNTUVESUFURShyMCxNU1JfS0VSTkVMKQogCVNZTkMJCQkvKiBkaXNhYmxlIGludGVycnVwdHMgc28gU1JSMC8xICovCiAJTVRNU1JEKHIwKQkJLyogZG9uJ3QgZ2V0IHRyYXNoZWQgKi8KIAlsaQlyOSxNU1JfS0VSTkVMICYgfihNU1JfSVJ8TVNSX0RSKQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV82NC5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV82NC5TCmluZGV4IDBhMGI1MzEuLjY0NjdiZGEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfNjQuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzY0LlMKQEAgLTY5LDI0ICs2OSwyMCBAQAogCWJuZQkuTHRhYm9ydF9zeXNjYWxsCiBFTkRfRlRSX1NFQ1RJT05fSUZTRVQoQ1BVX0ZUUl9UTSkKICNlbmRpZgotCWFuZGkuCXIxMCxyMTIsTVNSX1BSCiAJbXIJcjEwLHIxCi0JYWRkaQlyMSxyMSwtSU5UX0ZSQU1FX1NJWkUKLQliZXEtCTFmCiAJbGQJcjEsUEFDQUtTQVZFKHIxMykKLTE6CXN0ZAlyMTAsMChyMSkKKwlzdGQJcjEwLDAocjEpCiAJc3RkCXIxMSxfTklQKHIxKQogCXN0ZAlyMTIsX01TUihyMSkKIAlzdGQJcjAsR1BSMChyMSkKIAlzdGQJcjEwLEdQUjEocjEpCi0JYmVxCTJmCQkJLyogaWYgZnJvbSBrZXJuZWwgbW9kZSAqLwogI2lmZGVmIENPTkZJR19QUENfRlNMX0JPT0szRQogU1RBUlRfQlRCX0ZMVVNIX1NFQ1RJT04KIAlCVEJfRkxVU0gocjEwKQogRU5EX0JUQl9GTFVTSF9TRUNUSU9OCiAjZW5kaWYKIAlBQ0NPVU5UX0NQVV9VU0VSX0VOVFJZKHIxMywgcjEwLCByMTEpCi0yOglzdGQJcjIsR1BSMihyMSkKKwlzdGQJcjIsR1BSMihyMSkKIAlzdGQJcjMsR1BSMyhyMSkKIAltZmNyCXIyCiAJc3RkCXI0LEdQUjQocjEpCkBAIC0xMjIsMTQgKzExOCwxMyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfVklSVF9DUFVfQUNDT1VOVElOR19OQVRJVkUpICYmIGRlZmluZWQoQ09ORklHX1BQQ19TUExQQVIpCiBCRUdJTl9GV19GVFJfU0VDVElPTgotCWJlcQkzM2YKLQkvKiBpZiBmcm9tIHVzZXIsIHNlZSBpZiB0aGVyZSBhcmUgYW55IERUTCBlbnRyaWVzIHRvIHByb2Nlc3MgKi8KKwkvKiBzZWUgaWYgdGhlcmUgYXJlIGFueSBEVEwgZW50cmllcyB0byBwcm9jZXNzICovCiAJbGQJcjEwLFBBQ0FMUFBBQ0FQVFIocjEzKQkvKiBnZXQgcHRyIHRvIFZQQSAqLwogCWxkCXIxMSxQQUNBX0RUTF9SSURYKHIxMykJLyogZ2V0IGxvZyByZWFkIGluZGV4ICovCiAJYWRkaQlyMTAscjEwLExQUEFDQV9EVExJRFgKIAlMRFhfQkUJcjEwLDAscjEwCQkvKiBnZXQgbG9nIHdyaXRlIGluZGV4ICovCi0JY21wZAljcjEscjExLHIxMAotCWJlcSsJY3IxLDMzZgorCWNtcGQJcjExLHIxMAorCWJlcSsJMzNmCiAJYmwJYWNjdW11bGF0ZV9zdG9sZW5fdGltZQogCVJFU1RfR1BSKDAscjEpCiAJUkVTVF80R1BSUygzLHIxKQpAQCAtMjAzLDYgKzE5OCw3IEBACiAJbXRjdHIgICByMTIKIAliY3RybAkJCS8qIENhbGwgaGFuZGxlciAqLwogCisJLyogc3lzY2FsbF9leGl0IGNhbiBleGl0IHRvIGtlcm5lbCBtb2RlLCB2aWEgcmV0X2Zyb21fa2VybmVsX3RocmVhZCAqLwogLkxzeXNjYWxsX2V4aXQ6CiAJc3RkCXIzLFJFU1VMVChyMSkKIApAQCAtMjE2LDExICsyMTIsNiBAQAogCWxkCXIxMiwgUEFDQV9USFJFQURfSU5GTyhyMTMpCiAKIAlsZAlyOCxfTVNSKHIxKQotI2lmZGVmIENPTkZJR19QUENfQk9PSzNTCi0JLyogTm8gTVNSOlJJIG9uIEJvb2tFICovCi0JYW5kaS4JcjEwLHI4LE1TUl9SSQotCWJlcS0JLkx1bnJlY292X3Jlc3RvcmUKLSNlbmRpZgogCiAvKgogICogVGhpcyBpcyBhIGZldyBpbnN0cnVjdGlvbnMgaW50byB0aGUgYWN0dWFsIHN5c2NhbGwgZXhpdCBwYXRoICh3aGljaCBhY3R1YWxseQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9leGNlcHRpb25zLTY0ZS5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9leGNlcHRpb25zLTY0ZS5TCmluZGV4IDFjZmIzZGEuLjgyOTk1MGIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZXhjZXB0aW9ucy02NGUuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2V4Y2VwdGlvbnMtNjRlLlMKQEAgLTc1MCwxMiArNzUwLDE0IEBACiAJbGQJcjE1LFBBQ0FUT0MocjEzKQogCWxkCXIxNCxpbnRlcnJ1cHRfYmFzZV9ib29rM2VAZ290KHIxNSkKIAlsZAlyMTUsX19lbmRfaW50ZXJydXB0c0Bnb3QocjE1KQotI2Vsc2UKLQlMT0FEX1JFR19JTU1FRElBVEUocjE0LGludGVycnVwdF9iYXNlX2Jvb2szZSkKLQlMT0FEX1JFR19JTU1FRElBVEUocjE1LF9fZW5kX2ludGVycnVwdHMpCi0jZW5kaWYKIAljbXBsZAljcjAscjEwLHIxNAogCWNtcGxkCWNyMSxyMTAscjE1CisjZWxzZQorCUxPQURfUkVHX0lNTUVESUFURV9TWU0ocjE0LCByMTUsIGludGVycnVwdF9iYXNlX2Jvb2szZSkKKwljbXBsZAljcjAsIHIxMCwgcjE0CisJTE9BRF9SRUdfSU1NRURJQVRFX1NZTShyMTQsIHIxNSwgX19lbmRfaW50ZXJydXB0cykKKwljbXBsZAljcjEsIHIxMCwgcjE0CisjZW5kaWYKIAlibHQrCWNyMCwxZgogCWJnZSsJY3IxLDFmCiAKQEAgLTgyMCwxMiArODIyLDE0IEBACiAJbGQJcjE1LFBBQ0FUT0MocjEzKQogCWxkCXIxNCxpbnRlcnJ1cHRfYmFzZV9ib29rM2VAZ290KHIxNSkKIAlsZAlyMTUsX19lbmRfaW50ZXJydXB0c0Bnb3QocjE1KQotI2Vsc2UKLQlMT0FEX1JFR19JTU1FRElBVEUocjE0LGludGVycnVwdF9iYXNlX2Jvb2szZSkKLQlMT0FEX1JFR19JTU1FRElBVEUocjE1LF9fZW5kX2ludGVycnVwdHMpCi0jZW5kaWYKIAljbXBsZAljcjAscjEwLHIxNAogCWNtcGxkCWNyMSxyMTAscjE1CisjZWxzZQorCUxPQURfUkVHX0lNTUVESUFURV9TWU0ocjE0LCByMTUsIGludGVycnVwdF9iYXNlX2Jvb2szZSkKKwljbXBsZAljcjAsIHIxMCwgcjE0CisJTE9BRF9SRUdfSU1NRURJQVRFX1NZTShyMTQsIHIxNSxfX2VuZF9pbnRlcnJ1cHRzKQorCWNtcGxkCWNyMSwgcjEwLCByMTQKKyNlbmRpZgogCWJsdCsJY3IwLDFmCiAJYmdlKwljcjEsMWYKIApAQCAtMTQ0OSw3ICsxNDUzLDcgQEAKIGEyX3RsYmluaXRfYWZ0ZXJfbGluZWFyX21hcDoKIAogCS8qIE5vdyB3ZSBicmFuY2ggdGhlIG5ldyB2aXJ0dWFsIGFkZHJlc3MgbWFwcGVkIGJ5IHRoaXMgZW50cnkgKi8KLQlMT0FEX1JFR19JTU1FRElBVEUocjMsMWYpCisJTE9BRF9SRUdfSU1NRURJQVRFX1NZTShyMywgcjUsIDFmKQogCW10Y3RyCXIzCiAJYmN0cgogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2V4Y2VwdGlvbnMtNjRzLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2V4Y2VwdGlvbnMtNjRzLlMKaW5kZXggNmJhM2NjMi4uZDAwMThkZCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9leGNlcHRpb25zLTY0cy5TCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZXhjZXB0aW9ucy02NHMuUwpAQCAtNDQsNiArNDQsNTggQEAKICNlbmRpZgogCiAvKgorICogRm9sbG93aW5nIGFyZSBmaXhlZCBzZWN0aW9uIGhlbHBlciBtYWNyb3MuCisgKgorICogRVhDX1JFQUxfQkVHSU4vRU5EICAtIHJlYWwsIHVucmVsb2NhdGVkIGV4Y2VwdGlvbiB2ZWN0b3JzCisgKiBFWENfVklSVF9CRUdJTi9FTkQgIC0gdmlydCAoQUlMKSwgdW5yZWxvY2F0ZWQgZXhjZXB0aW9uIHZlY3RvcnMKKyAqIFRSQU1QX1JFQUxfQkVHSU4gICAgLSByZWFsLCB1bnJlbG9jYXRlZCBoZWxwZXJzICh2aXJ0IG1heSBjYWxsIHRoZXNlKQorICogVFJBTVBfVklSVF9CRUdJTiAgICAtIHZpcnQsIHVucmVsb2MgaGVscGVycyAoaW4gcHJhY3RpY2UsIHJlYWwgY2FuIHVzZSkKKyAqIFRSQU1QX0tWTV9CRUdJTiAgICAgLSBLVk0gaGFuZGxlcnMsIHRoZXNlIGFyZSBwdXQgaW50byByZWFsLCB1bnJlbG9jYXRlZAorICogRVhDX0NPTU1PTiAgICAgICAgICAtIEFmdGVyIHN3aXRjaGluZyB0byB2aXJ0dWFsLCByZWxvY2F0ZWQgbW9kZS4KKyAqLworCisjZGVmaW5lIEVYQ19SRUFMX0JFR0lOKG5hbWUsIHN0YXJ0LCBzaXplKQkJCVwKKwlGSVhFRF9TRUNUSU9OX0VOVFJZX0JFR0lOX0xPQ0FUSU9OKHJlYWxfdmVjdG9ycywgZXhjX3JlYWxfIyNzdGFydCMjXyMjbmFtZSwgc3RhcnQsIHNpemUpCisKKyNkZWZpbmUgRVhDX1JFQUxfRU5EKG5hbWUsIHN0YXJ0LCBzaXplKQkJCQlcCisJRklYRURfU0VDVElPTl9FTlRSWV9FTkRfTE9DQVRJT04ocmVhbF92ZWN0b3JzLCBleGNfcmVhbF8jI3N0YXJ0IyNfIyNuYW1lLCBzdGFydCwgc2l6ZSkKKworI2RlZmluZSBFWENfVklSVF9CRUdJTihuYW1lLCBzdGFydCwgc2l6ZSkJCQlcCisJRklYRURfU0VDVElPTl9FTlRSWV9CRUdJTl9MT0NBVElPTih2aXJ0X3ZlY3RvcnMsIGV4Y192aXJ0XyMjc3RhcnQjI18jI25hbWUsIHN0YXJ0LCBzaXplKQorCisjZGVmaW5lIEVYQ19WSVJUX0VORChuYW1lLCBzdGFydCwgc2l6ZSkJCQkJXAorCUZJWEVEX1NFQ1RJT05fRU5UUllfRU5EX0xPQ0FUSU9OKHZpcnRfdmVjdG9ycywgZXhjX3ZpcnRfIyNzdGFydCMjXyMjbmFtZSwgc3RhcnQsIHNpemUpCisKKyNkZWZpbmUgRVhDX0NPTU1PTl9CRUdJTihuYW1lKQkJCQkJXAorCVVTRV9URVhUX1NFQ1RJT04oKTsJCQkJCVwKKwkuYmFsaWduIElGRVRDSF9BTElHTl9CWVRFUzsJCQkJXAorCS5nbG9iYWwgbmFtZTsJCQkJCQlcCisJX0FTTV9OT0tQUk9CRV9TWU1CT0wobmFtZSk7CQkJCVwKKwlERUZJTkVfRklYRURfU1lNQk9MKG5hbWUpOwkJCQlcCituYW1lOgorCisjZGVmaW5lIFRSQU1QX1JFQUxfQkVHSU4obmFtZSkJCQkJCVwKKwlGSVhFRF9TRUNUSU9OX0VOVFJZX0JFR0lOKHJlYWxfdHJhbXBvbGluZXMsIG5hbWUpCisKKyNkZWZpbmUgVFJBTVBfVklSVF9CRUdJTihuYW1lKQkJCQkJXAorCUZJWEVEX1NFQ1RJT05fRU5UUllfQkVHSU4odmlydF90cmFtcG9saW5lcywgbmFtZSkKKworI2lmZGVmIENPTkZJR19LVk1fQk9PSzNTXzY0X0hBTkRMRVIKKyNkZWZpbmUgVFJBTVBfS1ZNX0JFR0lOKG5hbWUpCQkJCQlcCisJVFJBTVBfVklSVF9CRUdJTihuYW1lKQorI2Vsc2UKKyNkZWZpbmUgVFJBTVBfS1ZNX0JFR0lOKG5hbWUpCisjZW5kaWYKKworI2RlZmluZSBFWENfUkVBTF9OT05FKHN0YXJ0LCBzaXplKQkJCQlcCisJRklYRURfU0VDVElPTl9FTlRSWV9CRUdJTl9MT0NBVElPTihyZWFsX3ZlY3RvcnMsIGV4Y19yZWFsXyMjc3RhcnQjI18jI3VudXNlZCwgc3RhcnQsIHNpemUpOyBcCisJRklYRURfU0VDVElPTl9FTlRSWV9FTkRfTE9DQVRJT04ocmVhbF92ZWN0b3JzLCBleGNfcmVhbF8jI3N0YXJ0IyNfIyN1bnVzZWQsIHN0YXJ0LCBzaXplKQorCisjZGVmaW5lIEVYQ19WSVJUX05PTkUoc3RhcnQsIHNpemUpCQkJCVwKKwlGSVhFRF9TRUNUSU9OX0VOVFJZX0JFR0lOX0xPQ0FUSU9OKHZpcnRfdmVjdG9ycywgZXhjX3ZpcnRfIyNzdGFydCMjXyMjdW51c2VkLCBzdGFydCwgc2l6ZSk7IFwKKwlGSVhFRF9TRUNUSU9OX0VOVFJZX0VORF9MT0NBVElPTih2aXJ0X3ZlY3RvcnMsIGV4Y192aXJ0XyMjc3RhcnQjI18jI3VudXNlZCwgc3RhcnQsIHNpemUpCisKKy8qCiAgKiBXZSdyZSBzaG9ydCBvbiBzcGFjZSBhbmQgdGltZSBpbiB0aGUgZXhjZXB0aW9uIHByb2xvZywgc28gd2UgY2FuJ3QKICAqIHVzZSB0aGUgbm9ybWFsIExPQURfUkVHX0lNTUVESUFURSBtYWNybyB0byBsb2FkIHRoZSBhZGRyZXNzIG9mIGxhYmVsLgogICogSW5zdGVhZCB3ZSBnZXQgdGhlIGJhc2Ugb2YgdGhlIGtlcm5lbCBmcm9tIHBhY2EtPmtlcm5lbGJhc2UgYW5kIG9yIGluIHRoZSBsb3cKQEAgLTY4LDYgKzEyMCw3IEBACiAJYWRkaXMJcmVnLHJlZywoQUJTX0FERFIobGFiZWwpKUBoCiAKIC8qIEV4Y2VwdGlvbiByZWdpc3RlciBwcmVmaXhlcyAqLworI2RlZmluZSBFWENfSFZfT1JfU1RECTIgLyogZGVwZW5kcyBvbiBIVk1PREUgKi8KICNkZWZpbmUgRVhDX0hWCQkxCiAjZGVmaW5lIEVYQ19TVEQJCTAKIApAQCAtMTI3LDEyNiArMTgwLDYgQEAKIAlzdGQJcmEsb2Zmc2V0KHIxMyk7CQkJCQkJXAogRU5EX0ZUUl9TRUNUSU9OX05FU1RFRChmdHIsZnRyLDk0MykKIAotLm1hY3JvIEVYQ0VQVElPTl9QUk9MT0dfMCBhcmVhCi0JU0VUX1NDUkFUQ0gwKHIxMykJCQkvKiBzYXZlIHIxMyAqLwotCUdFVF9QQUNBKHIxMykKLQlzdGQJcjksXGFyZWFcKCkrRVhfUjkocjEzKQkJLyogc2F2ZSByOSAqLwotCU9QVF9HRVRfU1BSKHI5LCBTUFJOX1BQUiwgQ1BVX0ZUUl9IQVNfUFBSKQotCUhNVF9NRURJVU0KLQlzdGQJcjEwLFxhcmVhXCgpK0VYX1IxMChyMTMpCS8qIHNhdmUgcjEwIC0gcjEyICovCi0JT1BUX0dFVF9TUFIocjEwLCBTUFJOX0NGQVIsIENQVV9GVFJfQ0ZBUikKLS5lbmRtCi0KLS5tYWNybyBFWENFUFRJT05fUFJPTE9HXzEgaHNyciwgYXJlYSwga3ZtLCB2ZWMsIGRhciwgZHNpc3IsIGJpdG1hc2sKLQlPUFRfU0FWRV9SRUdfVE9fUEFDQShcYXJlYVwoKStFWF9QUFIsIHI5LCBDUFVfRlRSX0hBU19QUFIpCi0JT1BUX1NBVkVfUkVHX1RPX1BBQ0EoXGFyZWFcKCkrRVhfQ0ZBUiwgcjEwLCBDUFVfRlRSX0NGQVIpCi0JSU5URVJSVVBUX1RPX0tFUk5FTAotCVNBVkVfQ1RSKHIxMCwgXGFyZWFcKCkpCi0JbWZjcglyOQotCS5pZiBca3ZtCi0JCUtWTVRFU1QgXGhzcnIgXHZlYwotCS5lbmRpZgotCS5pZiBcYml0bWFzawotCQlsYnoJcjEwLFBBQ0FJUlFTT0ZUTUFTSyhyMTMpCi0JCWFuZGkuCXIxMCxyMTAsXGJpdG1hc2sKLQkJLyogQXNzb2NpYXRlIHZlY3RvciBudW1iZXJzIHdpdGggYml0cyBpbiBwYWNhLT5pcnFfaGFwcGVuZWQgKi8KLQkJLmlmIFx2ZWMgPT0gMHg1MDAgfHwgXHZlYyA9PSAweGVhMAotCQlsaQlyMTAsUEFDQV9JUlFfRUUKLQkJLmVsc2VpZiBcdmVjID09IDB4OTAwCi0JCWxpCXIxMCxQQUNBX0lSUV9ERUMKLQkJLmVsc2VpZiBcdmVjID09IDB4YTAwIHx8IFx2ZWMgPT0gMHhlODAKLQkJbGkJcjEwLFBBQ0FfSVJRX0RCRUxMCi0JCS5lbHNlaWYgXHZlYyA9PSAweGU2MAotCQlsaQlyMTAsUEFDQV9JUlFfSE1JCi0JCS5lbHNlaWYgXHZlYyA9PSAweGYwMAotCQlsaQlyMTAsUEFDQV9JUlFfUE1JCi0JCS5lbHNlCi0JCS5hYm9ydCAiQmFkIG1hc2thYmxlIHZlY3RvciIKLQkJLmVuZGlmCi0KLQkJLmlmIFxoc3JyCi0JCWJuZQltYXNrZWRfSGludGVycnVwdAotCQkuZWxzZQotCQlibmUJbWFza2VkX2ludGVycnVwdAotCQkuZW5kaWYKLQkuZW5kaWYKLQotCXN0ZAlyMTEsXGFyZWFcKCkrRVhfUjExKHIxMykKLQlzdGQJcjEyLFxhcmVhXCgpK0VYX1IxMihyMTMpCi0KLQkvKgotCSAqIERBUi9EU0lTUiwgU0NSQVRDSDAgbXVzdCBiZSByZWFkIGJlZm9yZSBzZXR0aW5nIE1TUltSSV0sCi0JICogYmVjYXVzZSBhIGQtc2lkZSBNQ0Ugd2lsbCBjbG9iYmVyIHRob3NlIHJlZ2lzdGVycyBzbyBpcwotCSAqIG5vdCByZWNvdmVyYWJsZSBpZiB0aGV5IGFyZSBsaXZlLgotCSAqLwotCUdFVF9TQ1JBVENIMChyMTApCi0Jc3RkCXIxMCxcYXJlYVwoKStFWF9SMTMocjEzKQotCS5pZiBcZGFyCi0JbWZzcHIJcjEwLFNQUk5fREFSCi0Jc3RkCXIxMCxcYXJlYVwoKStFWF9EQVIocjEzKQotCS5lbmRpZgotCS5pZiBcZHNpc3IKLQltZnNwcglyMTAsU1BSTl9EU0lTUgotCXN0dwlyMTAsXGFyZWFcKCkrRVhfRFNJU1IocjEzKQotCS5lbmRpZgotLmVuZG0KLQotLm1hY3JvIEVYQ0VQVElPTl9QUk9MT0dfMl9SRUFMIGxhYmVsLCBoc3JyLCBzZXRfcmkKLQlsZAlyMTAsUEFDQUtNU1IocjEzKQkvKiBnZXQgTVNSIHZhbHVlIGZvciBrZXJuZWwgKi8KLQkuaWYgISBcc2V0X3JpCi0JeG9yaQlyMTAscjEwLE1TUl9SSQkJLyogQ2xlYXIgTVNSX1JJICovCi0JLmVuZGlmCi0JLmlmIFxoc3JyCi0JbWZzcHIJcjExLFNQUk5fSFNSUjAJCS8qIHNhdmUgSFNSUjAgKi8KLQltZnNwcglyMTIsU1BSTl9IU1JSMQkJLyogYW5kIEhTUlIxICovCi0JbXRzcHIJU1BSTl9IU1JSMSxyMTAKLQkuZWxzZQotCW1mc3ByCXIxMSxTUFJOX1NSUjAJCS8qIHNhdmUgU1JSMCAqLwotCW1mc3ByCXIxMixTUFJOX1NSUjEJCS8qIGFuZCBTUlIxICovCi0JbXRzcHIJU1BSTl9TUlIxLHIxMAotCS5lbmRpZgotCUxPQURfSEFORExFUihyMTAsIFxsYWJlbFwoKSkKLQkuaWYgXGhzcnIKLQltdHNwcglTUFJOX0hTUlIwLHIxMAotCUhSRklfVE9fS0VSTkVMCi0JLmVsc2UKLQltdHNwcglTUFJOX1NSUjAscjEwCi0JUkZJX1RPX0tFUk5FTAotCS5lbmRpZgotCWIJLgkvKiBwcmV2ZW50IHNwZWN1bGF0aXZlIGV4ZWN1dGlvbiAqLwotLmVuZG0KLQotLm1hY3JvIEVYQ0VQVElPTl9QUk9MT0dfMl9WSVJUIGxhYmVsLCBoc3JyCi0jaWZkZWYgQ09ORklHX1JFTE9DQVRBQkxFCi0JLmlmIFxoc3JyCi0JbWZzcHIJcjExLFNQUk5fSFNSUjAJLyogc2F2ZSBIU1JSMCAqLwotCS5lbHNlCi0JbWZzcHIJcjExLFNQUk5fU1JSMAkvKiBzYXZlIFNSUjAgKi8KLQkuZW5kaWYKLQlMT0FEX0hBTkRMRVIocjEyLCBcbGFiZWxcKCkpCi0JbXRjdHIJcjEyCi0JLmlmIFxoc3JyCi0JbWZzcHIJcjEyLFNQUk5fSFNSUjEJLyogYW5kIEhTUlIxICovCi0JLmVsc2UKLQltZnNwcglyMTIsU1BSTl9TUlIxCS8qIGFuZCBIU1JSMSAqLwotCS5lbmRpZgotCWxpCXIxMCxNU1JfUkkKLQltdG1zcmQgCXIxMCwxCQkvKiBTZXQgUkkgKEVFPTApICovCi0JYmN0cgotI2Vsc2UKLQkuaWYgXGhzcnIKLQltZnNwcglyMTEsU1BSTl9IU1JSMAkJLyogc2F2ZSBIU1JSMCAqLwotCW1mc3ByCXIxMixTUFJOX0hTUlIxCQkvKiBhbmQgSFNSUjEgKi8KLQkuZWxzZQotCW1mc3ByCXIxMSxTUFJOX1NSUjAJCS8qIHNhdmUgU1JSMCAqLwotCW1mc3ByCXIxMixTUFJOX1NSUjEJCS8qIGFuZCBTUlIxICovCi0JLmVuZGlmCi0JbGkJcjEwLE1TUl9SSQotCW10bXNyZCAJcjEwLDEJCQkvKiBTZXQgUkkgKEVFPTApICovCi0JYglcbGFiZWwKLSNlbmRpZgotLmVuZG0KLQogLyoKICAqIEJyYW5jaCB0byBsYWJlbCB1c2luZyBpdHMgMHhDMDAwIGFkZHJlc3MuIFRoaXMgcmVzdWx0cyBpbiBpbnN0cnVjdGlvbgogICogYWRkcmVzcyBzdWl0YWJsZSBmb3IgTVNSW0lSXT0wIG9yIDEsIHdoaWNoIGFsbG93cyByZWxvY2F0aW9uIHRvIGJlIHR1cm5lZApAQCAtMjYwLDYgKzE5MywxMSBAQAogCW10Y3RyCXJlZzsJCQkJCQkJXAogCWJjdHIKIAorLm1hY3JvIElOVF9LVk1fSEFORExFUiBuYW1lLCB2ZWMsIGhzcnIsIGFyZWEsIHNraXAKKwlUUkFNUF9LVk1fQkVHSU4oXG5hbWVcKClfa3ZtKQorCUtWTV9IQU5ETEVSIFx2ZWMsIFxoc3JyLCBcYXJlYSwgXHNraXAKKy5lbmRtCisKICNpZmRlZiBDT05GSUdfS1ZNX0JPT0szU182NF9IQU5ETEVSCiAjaWZkZWYgQ09ORklHX0tWTV9CT09LM1NfSFZfUE9TU0lCTEUKIC8qCkBAIC0yNzIsMTcgKzIxMCwxMyBAQAogI2RlZmluZSBrdm1wcGNfaW50ZXJydXB0IGt2bXBwY19pbnRlcnJ1cHRfcHIKICNlbmRpZgogCi0ubWFjcm8gS1ZNVEVTVCBoc3JyLCBuCisubWFjcm8gS1ZNVEVTVCBuYW1lLCBoc3JyLCBuCiAJbGJ6CXIxMCxIU1RBVEVfSU5fR1VFU1QocjEzKQogCWNtcHdpCXIxMCwwCi0JLmlmIFxoc3JyCi0JYm5lCWRvX2t2bV9IXG4KLQkuZWxzZQotCWJuZQlkb19rdm1fXG4KLQkuZW5kaWYKKwlibmUJXG5hbWVcKClfa3ZtCiAuZW5kbQogCi0ubWFjcm8gS1ZNX0hBTkRMRVIgYXJlYSwgaHNyciwgbiwgc2tpcAorLm1hY3JvIEtWTV9IQU5ETEVSIHZlYywgaHNyciwgYXJlYSwgc2tpcAogCS5pZiBcc2tpcAogCWNtcHdpCXIxMCxLVk1fR1VFU1RfTU9ERV9TS0lQCiAJYmVxCTg5ZgpAQCAtMzAxLDEwICsyMzUsMTYgQEAKIAlzdGQJcjEyLEhTVEFURV9TQ1JBVENIMChyMTMpCiAJc2xkaQlyMTIscjksMzIKIAkvKiBIU1JSIHZhcmlhbnRzIGhhdmUgdGhlIDB4MiBiaXQgYWRkZWQgdG8gdGhlaXIgdHJhcCBudW1iZXIgKi8KLQkuaWYgXGhzcnIKLQlvcmkJcjEyLHIxMiwoXG4gKyAweDIpCisJLmlmIFxoc3JyID09IEVYQ19IVl9PUl9TVEQKKwlCRUdJTl9GVFJfU0VDVElPTgorCW9yaQlyMTIscjEyLChcdmVjICsgMHgyKQorCUZUUl9TRUNUSU9OX0VMU0UKKwlvcmkJcjEyLHIxMiwoXHZlYykKKwlBTFRfRlRSX1NFQ1RJT05fRU5EX0lGU0VUKENQVV9GVFJfSFZNT0RFIHwgQ1BVX0ZUUl9BUkNIXzIwNikKKwkuZWxzZWlmIFxoc3JyCisJb3JpCXIxMixyMTIsKFx2ZWMgKyAweDIpCiAJLmVsc2UKLQlvcmkJcjEyLHIxMiwoXG4pCisJb3JpCXIxMixyMTIsKFx2ZWMpCiAJLmVuZGlmCiAKICNpZmRlZiBDT05GSUdfUkVMT0NBVEFCTEUKQEAgLTMyOSw3ICsyNjksMTMgQEAKIDg5OgltdG9jcmYJMHg4MCxyOQogCWxkCXI5LFxhcmVhK0VYX1I5KHIxMykKIAlsZAlyMTAsXGFyZWErRVhfUjEwKHIxMykKLQkuaWYgXGhzcnIKKwkuaWYgXGhzcnIgPT0gRVhDX0hWX09SX1NURAorCUJFR0lOX0ZUUl9TRUNUSU9OCisJYglrdm1wcGNfc2tpcF9IaW50ZXJydXB0CisJRlRSX1NFQ1RJT05fRUxTRQorCWIJa3ZtcHBjX3NraXBfaW50ZXJydXB0CisJQUxUX0ZUUl9TRUNUSU9OX0VORF9JRlNFVChDUFVfRlRSX0hWTU9ERSB8IENQVV9GVFJfQVJDSF8yMDYpCisJLmVsc2VpZiBcaHNycgogCWIJa3ZtcHBjX3NraXBfSGludGVycnVwdAogCS5lbHNlCiAJYglrdm1wcGNfc2tpcF9pbnRlcnJ1cHQKQEAgLTMzOCw4OCArMjg0LDMyOCBAQAogLmVuZG0KIAogI2Vsc2UKLS5tYWNybyBLVk1URVNUIGhzcnIsIG4KKy5tYWNybyBLVk1URVNUIG5hbWUsIGhzcnIsIG4KIC5lbmRtCi0ubWFjcm8gS1ZNX0hBTkRMRVIgYXJlYSwgaHNyciwgbiwgc2tpcAorLm1hY3JvIEtWTV9IQU5ETEVSIG5hbWUsIHZlYywgaHNyciwgYXJlYSwgc2tpcAogLmVuZG0KICNlbmRpZgogCi0jZGVmaW5lIEVYQ0VQVElPTl9QUk9MT0dfQ09NTU9OXzEoKQkJCQkJICAgXAotCXN0ZAlyOSxfQ0NSKHIxKTsJCS8qIHNhdmUgQ1IgaW4gc3RhY2tmcmFtZQkqLyBcCi0Jc3RkCXIxMSxfTklQKHIxKTsJCS8qIHNhdmUgU1JSMCBpbiBzdGFja2ZyYW1lCSovIFwKLQlzdGQJcjEyLF9NU1IocjEpOwkJLyogc2F2ZSBTUlIxIGluIHN0YWNrZnJhbWUJKi8gXAotCXN0ZAlyMTAsMChyMSk7CQkvKiBtYWtlIHN0YWNrIGNoYWluIHBvaW50ZXIJKi8gXAotCXN0ZAlyMCxHUFIwKHIxKTsJCS8qIHNhdmUgcjAgaW4gc3RhY2tmcmFtZQkqLyBcCi0Jc3RkCXIxMCxHUFIxKHIxKTsJCS8qIHNhdmUgcjEgaW4gc3RhY2tmcmFtZQkqLyBcCisubWFjcm8gSU5UX1NBVkVfU1JSX0FORF9KVU1QIGxhYmVsLCBoc3JyLCBzZXRfcmkKKwlsZAlyMTAsUEFDQUtNU1IocjEzKQkvKiBnZXQgTVNSIHZhbHVlIGZvciBrZXJuZWwgKi8KKwkuaWYgISBcc2V0X3JpCisJeG9yaQlyMTAscjEwLE1TUl9SSQkJLyogQ2xlYXIgTVNSX1JJICovCisJLmVuZGlmCisJLmlmIFxoc3JyID09IEVYQ19IVl9PUl9TVEQKKwlCRUdJTl9GVFJfU0VDVElPTgorCW1mc3ByCXIxMSxTUFJOX0hTUlIwCQkvKiBzYXZlIEhTUlIwICovCisJbWZzcHIJcjEyLFNQUk5fSFNSUjEJCS8qIGFuZCBIU1JSMSAqLworCW10c3ByCVNQUk5fSFNSUjEscjEwCisJRlRSX1NFQ1RJT05fRUxTRQorCW1mc3ByCXIxMSxTUFJOX1NSUjAJCS8qIHNhdmUgU1JSMCAqLworCW1mc3ByCXIxMixTUFJOX1NSUjEJCS8qIGFuZCBTUlIxICovCisJbXRzcHIJU1BSTl9TUlIxLHIxMAorCUFMVF9GVFJfU0VDVElPTl9FTkRfSUZTRVQoQ1BVX0ZUUl9IVk1PREUgfCBDUFVfRlRSX0FSQ0hfMjA2KQorCS5lbHNlaWYgXGhzcnIKKwltZnNwcglyMTEsU1BSTl9IU1JSMAkJLyogc2F2ZSBIU1JSMCAqLworCW1mc3ByCXIxMixTUFJOX0hTUlIxCQkvKiBhbmQgSFNSUjEgKi8KKwltdHNwcglTUFJOX0hTUlIxLHIxMAorCS5lbHNlCisJbWZzcHIJcjExLFNQUk5fU1JSMAkJLyogc2F2ZSBTUlIwICovCisJbWZzcHIJcjEyLFNQUk5fU1JSMQkJLyogYW5kIFNSUjEgKi8KKwltdHNwcglTUFJOX1NSUjEscjEwCisJLmVuZGlmCisJTE9BRF9IQU5ETEVSKHIxMCwgXGxhYmVsXCgpKQorCS5pZiBcaHNyciA9PSBFWENfSFZfT1JfU1RECisJQkVHSU5fRlRSX1NFQ1RJT04KKwltdHNwcglTUFJOX0hTUlIwLHIxMAorCUhSRklfVE9fS0VSTkVMCisJRlRSX1NFQ1RJT05fRUxTRQorCW10c3ByCVNQUk5fU1JSMCxyMTAKKwlSRklfVE9fS0VSTkVMCisJQUxUX0ZUUl9TRUNUSU9OX0VORF9JRlNFVChDUFVfRlRSX0hWTU9ERSB8IENQVV9GVFJfQVJDSF8yMDYpCisJLmVsc2VpZiBcaHNycgorCW10c3ByCVNQUk5fSFNSUjAscjEwCisJSFJGSV9UT19LRVJORUwKKwkuZWxzZQorCW10c3ByCVNQUk5fU1JSMCxyMTAKKwlSRklfVE9fS0VSTkVMCisJLmVuZGlmCisJYgkuCS8qIHByZXZlbnQgc3BlY3VsYXRpdmUgZXhlY3V0aW9uICovCisuZW5kbQogCi0vKiBTYXZlIG9yaWdpbmFsIHJlZ3MgdmFsdWVzIGZyb20gc2F2ZSBhcmVhIHRvIHN0YWNrIGZyYW1lLiAqLwotI2RlZmluZSBFWENFUFRJT05fUFJPTE9HX0NPTU1PTl8yKGFyZWEpCQkJCQkgICBcCi0JbGQJcjksYXJlYStFWF9SOShyMTMpOwkvKiBtb3ZlIHI5LCByMTAgdG8gc3RhY2tmcmFtZQkqLyBcCi0JbGQJcjEwLGFyZWErRVhfUjEwKHIxMyk7CQkJCQkgICBcCi0Jc3RkCXI5LEdQUjkocjEpOwkJCQkJCSAgIFwKLQlzdGQJcjEwLEdQUjEwKHIxKTsJCQkJCQkgICBcCi0JbGQJcjksYXJlYStFWF9SMTEocjEzKTsJLyogbW92ZSByMTEgLSByMTMgdG8gc3RhY2tmcmFtZQkqLyBcCi0JbGQJcjEwLGFyZWErRVhfUjEyKHIxMyk7CQkJCQkgICBcCi0JbGQJcjExLGFyZWErRVhfUjEzKHIxMyk7CQkJCQkgICBcCi0Jc3RkCXI5LEdQUjExKHIxKTsJCQkJCQkgICBcCi0Jc3RkCXIxMCxHUFIxMihyMSk7CQkJCQkJICAgXAotCXN0ZAlyMTEsR1BSMTMocjEpOwkJCQkJCSAgIFwKLUJFR0lOX0ZUUl9TRUNUSU9OX05FU1RFRCg2Nik7CQkJCQkJICAgXAotCWxkCXIxMCxhcmVhK0VYX0NGQVIocjEzKTsJCQkJCSAgIFwKLQlzdGQJcjEwLE9SSUdfR1BSMyhyMSk7CQkJCQkgICBcCi1FTkRfRlRSX1NFQ1RJT05fTkVTVEVEKENQVV9GVFJfQ0ZBUiwgQ1BVX0ZUUl9DRkFSLCA2Nik7CQkJICAgXAotCUdFVF9DVFIocjEwLCBhcmVhKTsJCQkJCQkgICBcCi0Jc3RkCXIxMCxfQ1RSKHIxKTsKKy8qIElOVF9TQVZFX1NSUl9BTkRfSlVNUCB3b3JrcyBmb3IgcmVhbCBvciB2aXJ0LCB0aGlzIGlzIGZhc3RlciBidXQgdmlydCBvbmx5ICovCisubWFjcm8gSU5UX1ZJUlRfU0FWRV9TUlJfQU5EX0pVTVAgbGFiZWwsIGhzcnIKKyNpZmRlZiBDT05GSUdfUkVMT0NBVEFCTEUKKwkuaWYgXGhzcnIgPT0gRVhDX0hWX09SX1NURAorCUJFR0lOX0ZUUl9TRUNUSU9OCisJbWZzcHIJcjExLFNQUk5fSFNSUjAJLyogc2F2ZSBIU1JSMCAqLworCUZUUl9TRUNUSU9OX0VMU0UKKwltZnNwcglyMTEsU1BSTl9TUlIwCS8qIHNhdmUgU1JSMCAqLworCUFMVF9GVFJfU0VDVElPTl9FTkRfSUZTRVQoQ1BVX0ZUUl9IVk1PREUgfCBDUFVfRlRSX0FSQ0hfMjA2KQorCS5lbHNlaWYgXGhzcnIKKwltZnNwcglyMTEsU1BSTl9IU1JSMAkvKiBzYXZlIEhTUlIwICovCisJLmVsc2UKKwltZnNwcglyMTEsU1BSTl9TUlIwCS8qIHNhdmUgU1JSMCAqLworCS5lbmRpZgorCUxPQURfSEFORExFUihyMTIsIFxsYWJlbFwoKSkKKwltdGN0cglyMTIKKwkuaWYgXGhzcnIgPT0gRVhDX0hWX09SX1NURAorCUJFR0lOX0ZUUl9TRUNUSU9OCisJbWZzcHIJcjEyLFNQUk5fSFNSUjEJLyogYW5kIEhTUlIxICovCisJRlRSX1NFQ1RJT05fRUxTRQorCW1mc3ByCXIxMixTUFJOX1NSUjEJLyogYW5kIEhTUlIxICovCisJQUxUX0ZUUl9TRUNUSU9OX0VORF9JRlNFVChDUFVfRlRSX0hWTU9ERSB8IENQVV9GVFJfQVJDSF8yMDYpCisJLmVsc2VpZiBcaHNycgorCW1mc3ByCXIxMixTUFJOX0hTUlIxCS8qIGFuZCBIU1JSMSAqLworCS5lbHNlCisJbWZzcHIJcjEyLFNQUk5fU1JSMQkvKiBhbmQgSFNSUjEgKi8KKwkuZW5kaWYKKwlsaQlyMTAsTVNSX1JJCisJbXRtc3JkIAlyMTAsMQkJLyogU2V0IFJJIChFRT0wKSAqLworCWJjdHIKKyNlbHNlCisJLmlmIFxoc3JyID09IEVYQ19IVl9PUl9TVEQKKwlCRUdJTl9GVFJfU0VDVElPTgorCW1mc3ByCXIxMSxTUFJOX0hTUlIwCQkvKiBzYXZlIEhTUlIwICovCisJbWZzcHIJcjEyLFNQUk5fSFNSUjEJCS8qIGFuZCBIU1JSMSAqLworCUZUUl9TRUNUSU9OX0VMU0UKKwltZnNwcglyMTEsU1BSTl9TUlIwCQkvKiBzYXZlIFNSUjAgKi8KKwltZnNwcglyMTIsU1BSTl9TUlIxCQkvKiBhbmQgU1JSMSAqLworCUFMVF9GVFJfU0VDVElPTl9FTkRfSUZTRVQoQ1BVX0ZUUl9IVk1PREUgfCBDUFVfRlRSX0FSQ0hfMjA2KQorCS5lbHNlaWYgXGhzcnIKKwltZnNwcglyMTEsU1BSTl9IU1JSMAkJLyogc2F2ZSBIU1JSMCAqLworCW1mc3ByCXIxMixTUFJOX0hTUlIxCQkvKiBhbmQgSFNSUjEgKi8KKwkuZWxzZQorCW1mc3ByCXIxMSxTUFJOX1NSUjAJCS8qIHNhdmUgU1JSMCAqLworCW1mc3ByCXIxMixTUFJOX1NSUjEJCS8qIGFuZCBTUlIxICovCisJLmVuZGlmCisJbGkJcjEwLE1TUl9SSQorCW10bXNyZCAJcjEwLDEJCQkvKiBTZXQgUkkgKEVFPTApICovCisJYglcbGFiZWwKKyNlbmRpZgorLmVuZG0KIAotI2RlZmluZSBFWENFUFRJT05fUFJPTE9HX0NPTU1PTl8zKHRyYXApCQkJCQkgICBcCi0Jc3RkCXIyLEdQUjIocjEpOwkJLyogc2F2ZSByMiBpbiBzdGFja2ZyYW1lCSovIFwKLQlTQVZFXzRHUFJTKDMsIHIxKTsJCS8qIHNhdmUgcjMgLSByNiBpbiBzdGFja2ZyYW1lICAgKi8gXAotCVNBVkVfMkdQUlMoNywgcjEpOwkJLyogc2F2ZSByNywgcjggaW4gc3RhY2tmcmFtZQkqLyBcCi0JbWZscglyOTsJCQkvKiBHZXQgTFIsIGxhdGVyIHNhdmUgdG8gc3RhY2sJKi8gXAotCWxkCXIyLFBBQ0FUT0MocjEzKTsJLyogZ2V0IGtlcm5lbCBUT0MgaW50byByMgkqLyBcCi0Jc3RkCXI5LF9MSU5LKHIxKTsJCQkJCQkgICBcCi0JbGJ6CXIxMCxQQUNBSVJRU09GVE1BU0socjEzKTsJCQkJICAgXAotCW1mc3ByCXIxMSxTUFJOX1hFUjsJCS8qIHNhdmUgWEVSIGluIHN0YWNrZnJhbWUJKi8gXAotCXN0ZAlyMTAsU09GVEUocjEpOwkJCQkJCSAgIFwKLQlzdGQJcjExLF9YRVIocjEpOwkJCQkJCSAgIFwKLQlsaQlyOSwodHJhcCkrMTsJCQkJCQkgICBcCi0Jc3RkCXI5LF9UUkFQKHIxKTsJCS8qIHNldCB0cmFwIG51bWJlcgkJKi8gXAotCWxpCXIxMCwwOwkJCQkJCQkgICBcCi0JbGQJcjExLGV4Y2VwdGlvbl9tYXJrZXJAdG9jKHIyKTsJCQkJICAgXAotCXN0ZAlyMTAsUkVTVUxUKHIxKTsJCS8qIGNsZWFyIHJlZ3MtPnJlc3VsdAkJKi8gXAotCXN0ZAlyMTEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQtMTYocjEpOyAvKiBtYXJrIHRoZSBmcmFtZQkqLworLyoKKyAqIFRoaXMgaXMgdGhlIEJPT0szUyBpbnRlcnJ1cHQgZW50cnkgY29kZSBtYWNyby4KKyAqCisgKiBUaGlzIGNhbiByZXN1bHQgaW4gb25lIG9mIHNldmVyYWwgdGhpbmdzIGhhcHBlbmluZzoKKyAqIC0gQnJhbmNoIHRvIHRoZSBfY29tbW9uIGhhbmRsZXIsIHJlbG9jYXRlZCwgaW4gdmlydHVhbCBtb2RlLgorICogICBUaGVzZSBhcmUgbm9ybWFsIGludGVycnVwdHMgKHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMpIGhhbmRsZWQgYnkKKyAqICAgdGhlIGtlcm5lbC4KKyAqIC0gQnJhbmNoIHRvIEtWTSwgcmVsb2NhdGVkIGJ1dCByZWFsIG1vZGUgaW50ZXJydXB0cyByZW1haW4gaW4gcmVhbCBtb2RlLgorICogICBUaGVzZSBvY2N1ciB3aGVuIEhTVEFURV9JTl9HVUVTVCBpcyBzZXQuIFRoZSBpbnRlcnJ1cHQgbWF5IGJlIGNhdXNlZCBieQorICogICAvIGludGVuZGVkIGZvciBob3N0IG9yIGd1ZXN0IGtlcm5lbCwgYnV0IEtWTSBtdXN0IGFsd2F5cyBiZSBpbnZvbHZlZAorICogICBiZWNhdXNlIHRoZSBtYWNoaW5lIHN0YXRlIGlzIHNldCBmb3IgZ3Vlc3QgZXhlY3V0aW9uLgorICogLSBCcmFuY2ggdG8gdGhlIG1hc2tlZCBoYW5kbGVyLCB1bnJlbG9jYXRlZC4KKyAqICAgVGhlc2Ugb2NjdXIgd2hlbiBtYXNrYWJsZSBhc3luY2hyb25vdXMgaW50ZXJydXB0cyBhcmUgdGFrZW4gd2l0aCB0aGUKKyAqICAgaXJxX3NvZnRfbWFzayBzZXQuCisgKiAtIEJyYW5jaCB0byBhbiAiZWFybHkiIGhhbmRsZXIgaW4gcmVhbCBtb2RlIGJ1dCByZWxvY2F0ZWQuCisgKiAgIFRoaXMgaXMgZG9uZSBpZiBlYXJseT0xLiBNQ0UgYW5kIEhNSSB1c2UgdGhlc2UgdG8gaGFuZGxlIGVycm9ycyBpbiByZWFsCisgKiAgIG1vZGUuCisgKiAtIEZhbGwgdGhyb3VnaCBhbmQgY29udGludWUgZXhlY3V0aW5nIGluIHJlYWwsIHVucmVsb2NhdGVkIG1vZGUuCisgKiAgIFRoaXMgaXMgZG9uZSBpZiBlYXJseT0yLgorICovCisubWFjcm8gSU5UX0hBTkRMRVIgbmFtZSwgdmVjLCBvb2w9MCwgZWFybHk9MCwgdmlydD0wLCBoc3JyPTAsIGFyZWE9UEFDQV9FWEdFTiwgcmk9MSwgZGFyPTAsIGRzaXNyPTAsIGJpdG1hc2s9MCwga3ZtPTAKKwlTRVRfU0NSQVRDSDAocjEzKQkJCS8qIHNhdmUgcjEzICovCisJR0VUX1BBQ0EocjEzKQorCXN0ZAlyOSxcYXJlYVwoKStFWF9SOShyMTMpCQkvKiBzYXZlIHI5ICovCisJT1BUX0dFVF9TUFIocjksIFNQUk5fUFBSLCBDUFVfRlRSX0hBU19QUFIpCisJSE1UX01FRElVTQorCXN0ZAlyMTAsXGFyZWFcKCkrRVhfUjEwKHIxMykJLyogc2F2ZSByMTAgLSByMTIgKi8KKwlPUFRfR0VUX1NQUihyMTAsIFNQUk5fQ0ZBUiwgQ1BVX0ZUUl9DRkFSKQorCS5pZiBcb29sCisJLmlmICFcdmlydAorCWIJdHJhbXBfcmVhbF9cbmFtZQorCS5wdXNoc2VjdGlvbiAudGV4dAorCVRSQU1QX1JFQUxfQkVHSU4odHJhbXBfcmVhbF9cbmFtZSkKKwkuZWxzZQorCWIJdHJhbXBfdmlydF9cbmFtZQorCS5wdXNoc2VjdGlvbiAudGV4dAorCVRSQU1QX1ZJUlRfQkVHSU4odHJhbXBfdmlydF9cbmFtZSkKKwkuZW5kaWYKKwkuZW5kaWYKKworCU9QVF9TQVZFX1JFR19UT19QQUNBKFxhcmVhXCgpK0VYX1BQUiwgcjksIENQVV9GVFJfSEFTX1BQUikKKwlPUFRfU0FWRV9SRUdfVE9fUEFDQShcYXJlYVwoKStFWF9DRkFSLCByMTAsIENQVV9GVFJfQ0ZBUikKKwlJTlRFUlJVUFRfVE9fS0VSTkVMCisJU0FWRV9DVFIocjEwLCBcYXJlYVwoKSkKKwltZmNyCXI5CisJLmlmIFxrdm0KKwkJS1ZNVEVTVCBcbmFtZSBcaHNyciBcdmVjCisJLmVuZGlmCisJLmlmIFxiaXRtYXNrCisJCWxieglyMTAsUEFDQUlSUVNPRlRNQVNLKHIxMykKKwkJYW5kaS4JcjEwLHIxMCxcYml0bWFzaworCQkvKiBBc3NvY2lhdGUgdmVjdG9yIG51bWJlcnMgd2l0aCBiaXRzIGluIHBhY2EtPmlycV9oYXBwZW5lZCAqLworCQkuaWYgXHZlYyA9PSAweDUwMCB8fCBcdmVjID09IDB4ZWEwCisJCWxpCXIxMCxQQUNBX0lSUV9FRQorCQkuZWxzZWlmIFx2ZWMgPT0gMHg5MDAKKwkJbGkJcjEwLFBBQ0FfSVJRX0RFQworCQkuZWxzZWlmIFx2ZWMgPT0gMHhhMDAgfHwgXHZlYyA9PSAweGU4MAorCQlsaQlyMTAsUEFDQV9JUlFfREJFTEwKKwkJLmVsc2VpZiBcdmVjID09IDB4ZTYwCisJCWxpCXIxMCxQQUNBX0lSUV9ITUkKKwkJLmVsc2VpZiBcdmVjID09IDB4ZjAwCisJCWxpCXIxMCxQQUNBX0lSUV9QTUkKKwkJLmVsc2UKKwkJLmFib3J0ICJCYWQgbWFza2FibGUgdmVjdG9yIgorCQkuZW5kaWYKKworCQkuaWYgXGhzcnIgPT0gRVhDX0hWX09SX1NURAorCQlCRUdJTl9GVFJfU0VDVElPTgorCQlibmUJbWFza2VkX0hpbnRlcnJ1cHQKKwkJRlRSX1NFQ1RJT05fRUxTRQorCQlibmUJbWFza2VkX2ludGVycnVwdAorCQlBTFRfRlRSX1NFQ1RJT05fRU5EX0lGU0VUKENQVV9GVFJfSFZNT0RFIHwgQ1BVX0ZUUl9BUkNIXzIwNikKKwkJLmVsc2VpZiBcaHNycgorCQlibmUJbWFza2VkX0hpbnRlcnJ1cHQKKwkJLmVsc2UKKwkJYm5lCW1hc2tlZF9pbnRlcnJ1cHQKKwkJLmVuZGlmCisJLmVuZGlmCisKKwlzdGQJcjExLFxhcmVhXCgpK0VYX1IxMShyMTMpCisJc3RkCXIxMixcYXJlYVwoKStFWF9SMTIocjEzKQorCisJLyoKKwkgKiBEQVIvRFNJU1IsIFNDUkFUQ0gwIG11c3QgYmUgcmVhZCBiZWZvcmUgc2V0dGluZyBNU1JbUkldLAorCSAqIGJlY2F1c2UgYSBkLXNpZGUgTUNFIHdpbGwgY2xvYmJlciB0aG9zZSByZWdpc3RlcnMgc28gaXMKKwkgKiBub3QgcmVjb3ZlcmFibGUgaWYgdGhleSBhcmUgbGl2ZS4KKwkgKi8KKwlHRVRfU0NSQVRDSDAocjEwKQorCXN0ZAlyMTAsXGFyZWFcKCkrRVhfUjEzKHIxMykKKwkuaWYgXGRhcgorCS5pZiBcaHNycgorCW1mc3ByCXIxMCxTUFJOX0hEQVIKKwkuZWxzZQorCW1mc3ByCXIxMCxTUFJOX0RBUgorCS5lbmRpZgorCXN0ZAlyMTAsXGFyZWFcKCkrRVhfREFSKHIxMykKKwkuZW5kaWYKKwkuaWYgXGRzaXNyCisJLmlmIFxoc3JyCisJbWZzcHIJcjEwLFNQUk5fSERTSVNSCisJLmVsc2UKKwltZnNwcglyMTAsU1BSTl9EU0lTUgorCS5lbmRpZgorCXN0dwlyMTAsXGFyZWFcKCkrRVhfRFNJU1IocjEzKQorCS5lbmRpZgorCisJLmlmIFxlYXJseSA9PSAyCisJLyogbm90aGluZyBtb3JlICovCisJLmVsc2VpZiBcZWFybHkKKwltZmN0cglyMTAJCQkvKiBzYXZlIGN0ciwgZXZlbiBmb3IgIVJFTE9DQVRBQkxFICovCisJQlJBTkNIX1RPX0MwMDAocjExLCBcbmFtZVwoKV9lYXJseV9jb21tb24pCisJLmVsc2VpZiAhXHZpcnQKKwlJTlRfU0FWRV9TUlJfQU5EX0pVTVAgXG5hbWVcKClfY29tbW9uLCBcaHNyciwgXHJpCisJLmVsc2UKKwlJTlRfVklSVF9TQVZFX1NSUl9BTkRfSlVNUCBcbmFtZVwoKV9jb21tb24sIFxoc3JyCisJLmVuZGlmCisJLmlmIFxvb2wKKwkucG9wc2VjdGlvbgorCS5lbmRpZgorLmVuZG0KIAogLyoKICAqIE9uIGVudHJ5IHIxMyBwb2ludHMgdG8gdGhlIHBhY2EsIHI5LXIxMyBhcmUgc2F2ZWQgaW4gdGhlIHBhY2EsCiAgKiByOSBjb250YWlucyB0aGUgc2F2ZWQgQ1IsIHIxMSBhbmQgcjEyIGNvbnRhaW4gdGhlIHNhdmVkIFNSUjAgYW5kCiAgKiBTUlIxLCBhbmQgcmVsb2NhdGlvbiBpcyBvbi4KKyAqCisgKiBJZiBzdGFjaz0wLCB0aGVuIHRoZSBzdGFjayBpcyBhbHJlYWR5IHNldCBpbiByMSwgYW5kIHIxIGlzIHNhdmVkIGluIHIxMC4KKyAqIFBQUiBzYXZlIGFuZCBDUFUgYWNjb3VudGluZyBpcyBub3QgZG9uZSBmb3IgdGhlICFzdGFjayBjYXNlIChYWFggd2h5IG5vdD8pCiAgKi8KLSNkZWZpbmUgRVhDRVBUSU9OX0NPTU1PTihhcmVhLCB0cmFwKQkJCQkJICAgXAotCWFuZGkuCXIxMCxyMTIsTVNSX1BSOwkJLyogU2VlIGlmIGNvbWluZyBmcm9tIHVzZXIJKi8gXAotCW1yCXIxMCxyMTsJCQkvKiBTYXZlIHIxCQkJKi8gXAotCXN1YmkJcjEscjEsSU5UX0ZSQU1FX1NJWkU7CS8qIGFsbG9jIGZyYW1lIG9uIGtlcm5lbCBzdGFjawkqLyBcCi0JYmVxLQkxZjsJCQkJCQkJICAgXAotCWxkCXIxLFBBQ0FLU0FWRShyMTMpOwkvKiBrZXJuZWwgc3RhY2sgdG8gdXNlCQkqLyBcCi0xOgl0ZGdlaQlyMSwtSU5UX0ZSQU1FX1NJWkU7CS8qIHRyYXAgaWYgcjEgaXMgaW4gdXNlcnNwYWNlCSovIFwKLQlFTUlUX0JVR19FTlRSWSAxYixfX0ZJTEVfXyxfX0xJTkVfXywwOwkJCQkgICBcCi0zOglFWENFUFRJT05fUFJPTE9HX0NPTU1PTl8xKCk7CQkJCQkgICBcCi0Ja3VhcF9zYXZlX2Ftcl9hbmRfbG9jayByOSwgcjEwLCBjcjEsIGNyMDsJCQkgICBcCi0JYmVxCTRmOwkJCS8qIGlmIGZyb20ga2VybmVsIG1vZGUJCSovIFwKLQlBQ0NPVU5UX0NQVV9VU0VSX0VOVFJZKHIxMywgcjksIHIxMCk7CQkJCSAgIFwKLQlTQVZFX1BQUihhcmVhLCByOSk7CQkJCQkJICAgXAotNDoJRVhDRVBUSU9OX1BST0xPR19DT01NT05fMihhcmVhKTsJCQkJICAgXAotCUVYQ0VQVElPTl9QUk9MT0dfQ09NTU9OXzModHJhcCk7CQkJCSAgIFwKLQlBQ0NPVU5UX1NUT0xFTl9USU1FCisubWFjcm8gSU5UX0NPTU1PTiB2ZWMsIGFyZWEsIHN0YWNrLCBrYXVwLCByZWNvbmNpbGUsIGRhciwgZHNpc3IKKwkuaWYgXHN0YWNrCisJYW5kaS4JcjEwLHIxMixNU1JfUFIJCS8qIFNlZSBpZiBjb21pbmcgZnJvbSB1c2VyCSovCisJbXIJcjEwLHIxCQkJLyogU2F2ZSByMQkJCSovCisJc3ViaQlyMSxyMSxJTlRfRlJBTUVfU0laRQkvKiBhbGxvYyBmcmFtZSBvbiBrZXJuZWwgc3RhY2sJKi8KKwliZXEtCTEwMGYKKwlsZAlyMSxQQUNBS1NBVkUocjEzKQkvKiBrZXJuZWwgc3RhY2sgdG8gdXNlCQkqLworMTAwOgl0ZGdlaQlyMSwtSU5UX0ZSQU1FX1NJWkUJLyogdHJhcCBpZiByMSBpcyBpbiB1c2Vyc3BhY2UJKi8KKwlFTUlUX0JVR19FTlRSWSAxMDBiLF9fRklMRV9fLF9fTElORV9fLDAKKwkuZW5kaWYKIAotLyoKLSAqIEV4Y2VwdGlvbiB3aGVyZSBzdGFjayBpcyBhbHJlYWR5IHNldCBpbiByMSwgcjEgaXMgc2F2ZWQgaW4gcjEwLgotICogUFBSIHNhdmUgYW5kIENQVSBhY2NvdW50aW5nIGlzIG5vdCBkb25lIChmb3Igc29tZSByZWFzb24pLgotICovCi0jZGVmaW5lIEVYQ0VQVElPTl9DT01NT05fU1RBQ0soYXJlYSwgdHJhcCkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR19DT01NT05fMSgpOwkJCQlcCi0Ja3VhcF9zYXZlX2Ftcl9hbmRfbG9jayByOSwgcjEwLCBjcjE7CQkJXAotCUVYQ0VQVElPTl9QUk9MT0dfQ09NTU9OXzIoYXJlYSk7CQkJXAotCUVYQ0VQVElPTl9QUk9MT0dfQ09NTU9OXzModHJhcCkKKwlzdGQJcjksX0NDUihyMSkJCS8qIHNhdmUgQ1IgaW4gc3RhY2tmcmFtZQkqLworCXN0ZAlyMTEsX05JUChyMSkJCS8qIHNhdmUgU1JSMCBpbiBzdGFja2ZyYW1lCSovCisJc3RkCXIxMixfTVNSKHIxKQkJLyogc2F2ZSBTUlIxIGluIHN0YWNrZnJhbWUJKi8KKwlzdGQJcjEwLDAocjEpCQkvKiBtYWtlIHN0YWNrIGNoYWluIHBvaW50ZXIJKi8KKwlzdGQJcjAsR1BSMChyMSkJCS8qIHNhdmUgcjAgaW4gc3RhY2tmcmFtZQkqLworCXN0ZAlyMTAsR1BSMShyMSkJCS8qIHNhdmUgcjEgaW4gc3RhY2tmcmFtZQkqLworCisJLmlmIFxzdGFjaworCS5pZiBca2F1cAorCWt1YXBfc2F2ZV9hbXJfYW5kX2xvY2sgcjksIHIxMCwgY3IxLCBjcjAKKwkuZW5kaWYKKwliZXEJMTAxZgkJCS8qIGlmIGZyb20ga2VybmVsIG1vZGUJCSovCisJQUNDT1VOVF9DUFVfVVNFUl9FTlRSWShyMTMsIHI5LCByMTApCisJU0FWRV9QUFIoXGFyZWEsIHI5KQorMTAxOgorCS5lbHNlCisJLmlmIFxrYXVwCisJa3VhcF9zYXZlX2Ftcl9hbmRfbG9jayByOSwgcjEwLCBjcjEKKwkuZW5kaWYKKwkuZW5kaWYKKworCS8qIFNhdmUgb3JpZ2luYWwgcmVncyB2YWx1ZXMgZnJvbSBzYXZlIGFyZWEgdG8gc3RhY2sgZnJhbWUuICovCisJbGQJcjksXGFyZWErRVhfUjkocjEzKQkvKiBtb3ZlIHI5LCByMTAgdG8gc3RhY2tmcmFtZQkqLworCWxkCXIxMCxcYXJlYStFWF9SMTAocjEzKQorCXN0ZAlyOSxHUFI5KHIxKQorCXN0ZAlyMTAsR1BSMTAocjEpCisJbGQJcjksXGFyZWErRVhfUjExKHIxMykJLyogbW92ZSByMTEgLSByMTMgdG8gc3RhY2tmcmFtZQkqLworCWxkCXIxMCxcYXJlYStFWF9SMTIocjEzKQorCWxkCXIxMSxcYXJlYStFWF9SMTMocjEzKQorCXN0ZAlyOSxHUFIxMShyMSkKKwlzdGQJcjEwLEdQUjEyKHIxKQorCXN0ZAlyMTEsR1BSMTMocjEpCisJLmlmIFxkYXIKKwkuaWYgXGRhciA9PSAyCisJbGQJcjEwLF9OSVAocjEpCisJLmVsc2UKKwlsZAlyMTAsXGFyZWErRVhfREFSKHIxMykKKwkuZW5kaWYKKwlzdGQJcjEwLF9EQVIocjEpCisJLmVuZGlmCisJLmlmIFxkc2lzcgorCS5pZiBcZHNpc3IgPT0gMgorCWxkCXIxMCxfTVNSKHIxKQorCWxpcwlyMTEsRFNJU1JfU1JSMV9NQVRDSF82NFNAaAorCWFuZAlyMTAscjEwLHIxMQorCS5lbHNlCisJbHd6CXIxMCxcYXJlYStFWF9EU0lTUihyMTMpCisJLmVuZGlmCisJc3RkCXIxMCxfRFNJU1IocjEpCisJLmVuZGlmCitCRUdJTl9GVFJfU0VDVElPTl9ORVNURUQoNjYpCisJbGQJcjEwLFxhcmVhK0VYX0NGQVIocjEzKQorCXN0ZAlyMTAsT1JJR19HUFIzKHIxKQorRU5EX0ZUUl9TRUNUSU9OX05FU1RFRChDUFVfRlRSX0NGQVIsIENQVV9GVFJfQ0ZBUiwgNjYpCisJR0VUX0NUUihyMTAsIFxhcmVhKQorCXN0ZAlyMTAsX0NUUihyMSkKKwlzdGQJcjIsR1BSMihyMSkJCS8qIHNhdmUgcjIgaW4gc3RhY2tmcmFtZQkqLworCVNBVkVfNEdQUlMoMywgcjEpCQkvKiBzYXZlIHIzIC0gcjYgaW4gc3RhY2tmcmFtZSAgICovCisJU0FWRV8yR1BSUyg3LCByMSkJCS8qIHNhdmUgcjcsIHI4IGluIHN0YWNrZnJhbWUJKi8KKwltZmxyCXI5CQkJLyogR2V0IExSLCBsYXRlciBzYXZlIHRvIHN0YWNrCSovCisJbGQJcjIsUEFDQVRPQyhyMTMpCQkvKiBnZXQga2VybmVsIFRPQyBpbnRvIHIyCSovCisJc3RkCXI5LF9MSU5LKHIxKQorCWxieglyMTAsUEFDQUlSUVNPRlRNQVNLKHIxMykKKwltZnNwcglyMTEsU1BSTl9YRVIJCS8qIHNhdmUgWEVSIGluIHN0YWNrZnJhbWUJKi8KKwlzdGQJcjEwLFNPRlRFKHIxKQorCXN0ZAlyMTEsX1hFUihyMSkKKwlsaQlyOSwoXHZlYykrMQorCXN0ZAlyOSxfVFJBUChyMSkJCS8qIHNldCB0cmFwIG51bWJlcgkJKi8KKwlsaQlyMTAsMAorCWxkCXIxMSxleGNlcHRpb25fbWFya2VyQHRvYyhyMikKKwlzdGQJcjEwLFJFU1VMVChyMSkJCS8qIGNsZWFyIHJlZ3MtPnJlc3VsdAkJKi8KKwlzdGQJcjExLFNUQUNLX0ZSQU1FX09WRVJIRUFELTE2KHIxKSAvKiBtYXJrIHRoZSBmcmFtZQkqLworCisJLmlmIFxzdGFjaworCUFDQ09VTlRfU1RPTEVOX1RJTUUKKwkuZW5kaWYKKworCS5pZiBccmVjb25jaWxlCisJUkVDT05DSUxFX0lSUV9TVEFURShyMTAsIHIxMSkKKwkuZW5kaWYKKy5lbmRtCiAKIC8qCiAgKiBSZXN0b3JlIGFsbCByZWdpc3RlcnMgaW5jbHVkaW5nIEgvU1JSMC8xIHNhdmVkIGluIGEgc3RhY2sgZnJhbWUgb2YgYQpAQCAtNDI4LDYgKzYxNCw5IEBACiAubWFjcm8gRVhDRVBUSU9OX1JFU1RPUkVfUkVHUyBoc3JyCiAJLyogTW92ZSBvcmlnaW5hbCBTUlIwIGFuZCBTUlIxIGludG8gdGhlIHJlc3BlY3RpdmUgcmVncyAqLwogCWxkCXI5LF9NU1IocjEpCisJLmlmIFxoc3JyID09IEVYQ19IVl9PUl9TVEQKKwkuZXJyb3IgIkVYQ19IVl9PUl9TVEQgTm90IGltcGxlbWVudGVkIGZvciBFWENFUFRJT05fUkVTVE9SRV9SRUdTIgorCS5lbmRpZgogCS5pZiBcaHNycgogCW10c3ByCVNQUk5fSFNSUjEscjkKIAkuZWxzZQpAQCAtNDgxLDIxOSArNjcwLDEwIEBACiAjZGVmaW5lIEZJTklTSF9OQVAKICNlbmRpZgogCi0vKgotICogRm9sbG93aW5nIGFyZSB0aGUgQk9PSzNTIGV4Y2VwdGlvbiBoYW5kbGVyIGhlbHBlciBtYWNyb3MuCi0gKiBIYW5kbGVycyBjb21lIGluIGEgbnVtYmVyIG9mIHR5cGVzLCBhbmQgZWFjaCB0eXBlIGhhcyBhIG51bWJlciBvZiB2YXJpZXRpZXMuCi0gKgotICogRVhDX1JFQUxfKiAgICAgLSByZWFsLCB1bnJlbG9jYXRlZCBleGNlcHRpb24gdmVjdG9ycwotICogRVhDX1ZJUlRfKiAgICAgLSB2aXJ0IChBSUwpLCB1bnJlbG9jYXRlZCBleGNlcHRpb24gdmVjdG9ycwotICogVFJBTVBfUkVBTF8qICAgLSByZWFsLCB1bnJlbG9jYXRlZCBoZWxwZXJzICh2aXJ0IGNhbiBjYWxsIHRoZXNlKQotICogVFJBTVBfVklSVF8qICAgLSB2aXJ0LCB1bnJlbG9jIGhlbHBlcnMgKGluIHByYWN0aWNlLCByZWFsIGNhbiB1c2UpCi0gKiBUUkFNUF9LVk0gICAgICAtIEtWTSBoYW5kbGVycyB0aGF0IGdldCBwdXQgaW50byByZWFsLCB1bnJlbG9jYXRlZAotICogRVhDX0NPTU1PTiAgICAgLSB2aXJ0LCByZWxvY2F0ZWQgY29tbW9uIGhhbmRsZXJzCi0gKgotICogVGhlIEVYQyBoYW5kbGVycyBhcmUgZ2l2ZW4gYSBuYW1lLCBhbmQgYnJhbmNoIHRvIG5hbWVfY29tbW9uLCBvciB0aGUKLSAqIGFwcHJvcHJpYXRlIEtWTSBvciBtYXNraW5nIGZ1bmN0aW9uLiBWZWN0b3IgaGFuZGxlciB2ZXJpZXRpZXMgYXJlIGFzCi0gKiBmb2xsb3dzOgotICoKLSAqIEVYQ197UkVBTHxWSVJUfV9CRUdJTi9FTkQgLSB1c2VkIHRvIG9wZW4tY29kZSB0aGUgZXhjZXB0aW9uCi0gKgotICogRVhDX3tSRUFMfFZJUlR9ICAtIHN0YW5kYXJkIGV4Y2VwdGlvbgotICoKLSAqIEVYQ197UkVBTHxWSVJUfV9zdWZmaXgKLSAqICAgICB3aGVyZSBfc3VmZml4IGlzOgotICogICAtIF9NQVNLQUJMRSAgICAgICAgICAgICAgIC0gbWFza2FibGUgZXhjZXB0aW9uCi0gKiAgIC0gX09PTCAgICAgICAgICAgICAgICAgICAgLSBvdXQgb2YgbGluZSB3aXRoIHRyYW1wb2xpbmUgdG8gY29tbW9uIGhhbmRsZXIKLSAqICAgLSBfSFYgICAgICAgICAgICAgICAgICAgICAtIEhWIGV4Y2VwdGlvbgotICoKLSAqIFRoZXJlIGNhbiBiZSBjb21iaW5hdGlvbnMsIGUuZy4sIEVYQ19WSVJUX09PTF9NQVNLQUJMRV9IVgotICoKLSAqIEtWTSBoYW5kbGVycyBjb21lIGluIHRoZSBmb2xsb3dpbmcgdmVyaWV0aWVzOgotICogVFJBTVBfS1ZNCi0gKiBUUkFNUF9LVk1fU0tJUAotICogVFJBTVBfS1ZNX0hWCi0gKiBUUkFNUF9LVk1fSFZfU0tJUAotICoKLSAqIENPTU1PTiBoYW5kbGVycyBjb21lIGluIHRoZSBmb2xsb3dpbmcgdmVyaWV0aWVzOgotICogRVhDX0NPTU1PTl9CRUdJTi9FTkQgLSB1c2VkIHRvIG9wZW4tY29kZSB0aGUgaGFuZGxlcgotICogRVhDX0NPTU1PTgotICogRVhDX0NPTU1PTl9BU1lOQwotICoKLSAqIFRSQU1QX1JFQUwgYW5kIFRSQU1QX1ZJUlQgY2FuIGJlIHVzZWQgd2l0aCBCRUdJTi9FTkQuIEtWTQotICogYW5kIE9PTCBoYW5kbGVycyBhcmUgaW1wbGVtZW50ZWQgYXMgdHlwZXMgb2YgVFJBTVAgYW5kIFRSQU1QX1ZJUlQgaGFuZGxlcnMuCi0gKi8KLQotI2RlZmluZSBfX0VYQ19SRUFMKG5hbWUsIHN0YXJ0LCBzaXplLCBhcmVhKQkJCQlcCi0JRVhDX1JFQUxfQkVHSU4obmFtZSwgc3RhcnQsIHNpemUpOwkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18wIGFyZWEgOwkJCQkJXAotCUVYQ0VQVElPTl9QUk9MT0dfMSBFWENfU1RELCBhcmVhLCAxLCBzdGFydCwgMCwgMCwgMCA7CQlcCi0JRVhDRVBUSU9OX1BST0xPR18yX1JFQUwgbmFtZSMjX2NvbW1vbiwgRVhDX1NURCwgMSA7CQlcCi0JRVhDX1JFQUxfRU5EKG5hbWUsIHN0YXJ0LCBzaXplKQotCi0jZGVmaW5lIEVYQ19SRUFMKG5hbWUsIHN0YXJ0LCBzaXplKQkJCQkJXAotCV9fRVhDX1JFQUwobmFtZSwgc3RhcnQsIHNpemUsIFBBQ0FfRVhHRU4pCi0KLSNkZWZpbmUgX19FWENfVklSVChuYW1lLCBzdGFydCwgc2l6ZSwgcmVhbHZlYywgYXJlYSkJCQlcCi0JRVhDX1ZJUlRfQkVHSU4obmFtZSwgc3RhcnQsIHNpemUpOwkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18wIGFyZWEgOwkJCQkJXAotCUVYQ0VQVElPTl9QUk9MT0dfMSBFWENfU1RELCBhcmVhLCAwLCByZWFsdmVjLCAwLCAwLCAwOwkJXAotCUVYQ0VQVElPTl9QUk9MT0dfMl9WSVJUIG5hbWUjI19jb21tb24sIEVYQ19TVEQgOwkJXAotCUVYQ19WSVJUX0VORChuYW1lLCBzdGFydCwgc2l6ZSkKLQotI2RlZmluZSBFWENfVklSVChuYW1lLCBzdGFydCwgc2l6ZSwgcmVhbHZlYykJCQkJXAotCV9fRVhDX1ZJUlQobmFtZSwgc3RhcnQsIHNpemUsIHJlYWx2ZWMsIFBBQ0FfRVhHRU4pCi0KLSNkZWZpbmUgRVhDX1JFQUxfTUFTS0FCTEUobmFtZSwgc3RhcnQsIHNpemUsIGJpdG1hc2spCQkJXAotCUVYQ19SRUFMX0JFR0lOKG5hbWUsIHN0YXJ0LCBzaXplKTsJCQkJXAotCUVYQ0VQVElPTl9QUk9MT0dfMCBQQUNBX0VYR0VOIDsJCQkJCVwKLQlFWENFUFRJT05fUFJPTE9HXzEgRVhDX1NURCwgUEFDQV9FWEdFTiwgMSwgc3RhcnQsIDAsIDAsIGJpdG1hc2sgOyBcCi0JRVhDRVBUSU9OX1BST0xPR18yX1JFQUwgbmFtZSMjX2NvbW1vbiwgRVhDX1NURCwgMSA7CQlcCi0JRVhDX1JFQUxfRU5EKG5hbWUsIHN0YXJ0LCBzaXplKQotCi0jZGVmaW5lIEVYQ19WSVJUX01BU0tBQkxFKG5hbWUsIHN0YXJ0LCBzaXplLCByZWFsdmVjLCBiaXRtYXNrKQkJXAotCUVYQ19WSVJUX0JFR0lOKG5hbWUsIHN0YXJ0LCBzaXplKTsJCQkJXAotCUVYQ0VQVElPTl9QUk9MT0dfMCBQQUNBX0VYR0VOIDsJCQkJCVwKLQlFWENFUFRJT05fUFJPTE9HXzEgRVhDX1NURCwgUEFDQV9FWEdFTiwgMCwgcmVhbHZlYywgMCwgMCwgYml0bWFzayA7IFwKLQlFWENFUFRJT05fUFJPTE9HXzJfVklSVCBuYW1lIyNfY29tbW9uLCBFWENfU1REIDsJCVwKLQlFWENfVklSVF9FTkQobmFtZSwgc3RhcnQsIHNpemUpCi0KLSNkZWZpbmUgRVhDX1JFQUxfSFYobmFtZSwgc3RhcnQsIHNpemUpCQkJCQlcCi0JRVhDX1JFQUxfQkVHSU4obmFtZSwgc3RhcnQsIHNpemUpOwkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18wIFBBQ0FfRVhHRU47CQkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19IViwgUEFDQV9FWEdFTiwgMSwgc3RhcnQsIDAsIDAsIDAgOwlcCi0JRVhDRVBUSU9OX1BST0xPR18yX1JFQUwgbmFtZSMjX2NvbW1vbiwgRVhDX0hWLCAxIDsJCVwKLQlFWENfUkVBTF9FTkQobmFtZSwgc3RhcnQsIHNpemUpCi0KLSNkZWZpbmUgRVhDX1ZJUlRfSFYobmFtZSwgc3RhcnQsIHNpemUsIHJlYWx2ZWMpCQkJCVwKLQlFWENfVklSVF9CRUdJTihuYW1lLCBzdGFydCwgc2l6ZSk7CQkJCVwKLQlFWENFUFRJT05fUFJPTE9HXzAgUEFDQV9FWEdFTjsJCQkJCVwKLQlFWENFUFRJT05fUFJPTE9HXzEgRVhDX0hWLCBQQUNBX0VYR0VOLCAxLCByZWFsdmVjLCAwLCAwLCAwIDsJXAotCUVYQ0VQVElPTl9QUk9MT0dfMl9WSVJUIG5hbWUjI19jb21tb24sIEVYQ19IViA7CQkJXAotCUVYQ19WSVJUX0VORChuYW1lLCBzdGFydCwgc2l6ZSkKLQotI2RlZmluZSBfX0VYQ19SRUFMX09PTChuYW1lLCBzdGFydCwgc2l6ZSkJCQkJXAotCUVYQ19SRUFMX0JFR0lOKG5hbWUsIHN0YXJ0LCBzaXplKTsJCQkJXAotCUVYQ0VQVElPTl9QUk9MT0dfMCBQQUNBX0VYR0VOIDsJCQkJCVwKLQliCXRyYW1wX3JlYWxfIyNuYW1lIDsJCQkJCVwKLQlFWENfUkVBTF9FTkQobmFtZSwgc3RhcnQsIHNpemUpCi0KLSNkZWZpbmUgX19UUkFNUF9SRUFMX09PTChuYW1lLCB2ZWMpCQkJCQlcCi0JVFJBTVBfUkVBTF9CRUdJTih0cmFtcF9yZWFsXyMjbmFtZSk7CQkJCVwKLQlFWENFUFRJT05fUFJPTE9HXzEgRVhDX1NURCwgUEFDQV9FWEdFTiwgMSwgdmVjLCAwLCAwLCAwIDsJXAotCUVYQ0VQVElPTl9QUk9MT0dfMl9SRUFMIG5hbWUjI19jb21tb24sIEVYQ19TVEQsIDEKLQotI2RlZmluZSBFWENfUkVBTF9PT0wobmFtZSwgc3RhcnQsIHNpemUpCQkJCQlcCi0JX19FWENfUkVBTF9PT0wobmFtZSwgc3RhcnQsIHNpemUpOwkJCQlcCi0JX19UUkFNUF9SRUFMX09PTChuYW1lLCBzdGFydCkKLQotI2RlZmluZSBfX0VYQ19SRUFMX09PTF9NQVNLQUJMRShuYW1lLCBzdGFydCwgc2l6ZSkJCQlcCi0JX19FWENfUkVBTF9PT0wobmFtZSwgc3RhcnQsIHNpemUpCi0KLSNkZWZpbmUgX19UUkFNUF9SRUFMX09PTF9NQVNLQUJMRShuYW1lLCB2ZWMsIGJpdG1hc2spCQkJXAotCVRSQU1QX1JFQUxfQkVHSU4odHJhbXBfcmVhbF8jI25hbWUpOwkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19TVEQsIFBBQ0FfRVhHRU4sIDEsIHZlYywgMCwgMCwgYml0bWFzayA7CVwKLQlFWENFUFRJT05fUFJPTE9HXzJfUkVBTCBuYW1lIyNfY29tbW9uLCBFWENfU1RELCAxCi0KLSNkZWZpbmUgRVhDX1JFQUxfT09MX01BU0tBQkxFKG5hbWUsIHN0YXJ0LCBzaXplLCBiaXRtYXNrKQkJXAotCV9fRVhDX1JFQUxfT09MX01BU0tBQkxFKG5hbWUsIHN0YXJ0LCBzaXplKTsJCQlcCi0JX19UUkFNUF9SRUFMX09PTF9NQVNLQUJMRShuYW1lLCBzdGFydCwgYml0bWFzaykKLQotI2RlZmluZSBfX0VYQ19SRUFMX09PTF9IVihuYW1lLCBzdGFydCwgc2l6ZSkJCQkJXAotCV9fRVhDX1JFQUxfT09MKG5hbWUsIHN0YXJ0LCBzaXplKQotCi0jZGVmaW5lIF9fVFJBTVBfUkVBTF9PT0xfSFYobmFtZSwgdmVjKQkJCQkJXAotCVRSQU1QX1JFQUxfQkVHSU4odHJhbXBfcmVhbF8jI25hbWUpOwkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19IViwgUEFDQV9FWEdFTiwgMSwgdmVjLCAwLCAwLCAwIDsJXAotCUVYQ0VQVElPTl9QUk9MT0dfMl9SRUFMIG5hbWUjI19jb21tb24sIEVYQ19IViwgMQotCi0jZGVmaW5lIEVYQ19SRUFMX09PTF9IVihuYW1lLCBzdGFydCwgc2l6ZSkJCQkJXAotCV9fRVhDX1JFQUxfT09MX0hWKG5hbWUsIHN0YXJ0LCBzaXplKTsJCQkJXAotCV9fVFJBTVBfUkVBTF9PT0xfSFYobmFtZSwgc3RhcnQpCi0KLSNkZWZpbmUgX19FWENfUkVBTF9PT0xfTUFTS0FCTEVfSFYobmFtZSwgc3RhcnQsIHNpemUpCQkJXAotCV9fRVhDX1JFQUxfT09MKG5hbWUsIHN0YXJ0LCBzaXplKQotCi0jZGVmaW5lIF9fVFJBTVBfUkVBTF9PT0xfTUFTS0FCTEVfSFYobmFtZSwgdmVjLCBiaXRtYXNrKQkJXAotCVRSQU1QX1JFQUxfQkVHSU4odHJhbXBfcmVhbF8jI25hbWUpOwkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19IViwgUEFDQV9FWEdFTiwgMSwgdmVjLCAwLCAwLCBiaXRtYXNrIDsJXAotCUVYQ0VQVElPTl9QUk9MT0dfMl9SRUFMIG5hbWUjI19jb21tb24sIEVYQ19IViwgMQotCi0jZGVmaW5lIEVYQ19SRUFMX09PTF9NQVNLQUJMRV9IVihuYW1lLCBzdGFydCwgc2l6ZSwgYml0bWFzaykJCVwKLQlfX0VYQ19SRUFMX09PTF9NQVNLQUJMRV9IVihuYW1lLCBzdGFydCwgc2l6ZSk7CQkJXAotCV9fVFJBTVBfUkVBTF9PT0xfTUFTS0FCTEVfSFYobmFtZSwgc3RhcnQsIGJpdG1hc2spCi0KLSNkZWZpbmUgX19FWENfVklSVF9PT0wobmFtZSwgc3RhcnQsIHNpemUpCQkJCVwKLQlFWENfVklSVF9CRUdJTihuYW1lLCBzdGFydCwgc2l6ZSk7CQkJCVwKLQlFWENFUFRJT05fUFJPTE9HXzAgUEFDQV9FWEdFTiA7CQkJCQlcCi0JYgl0cmFtcF92aXJ0XyMjbmFtZTsJCQkJCVwKLQlFWENfVklSVF9FTkQobmFtZSwgc3RhcnQsIHNpemUpCi0KLSNkZWZpbmUgX19UUkFNUF9WSVJUX09PTChuYW1lLCByZWFsdmVjKQkJCQkJXAotCVRSQU1QX1ZJUlRfQkVHSU4odHJhbXBfdmlydF8jI25hbWUpOwkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19TVEQsIFBBQ0FfRVhHRU4sIDAsIHZlYywgMCwgMCwgMCA7CVwKLQlFWENFUFRJT05fUFJPTE9HXzJfVklSVCBuYW1lIyNfY29tbW9uLCBFWENfU1RECi0KLSNkZWZpbmUgRVhDX1ZJUlRfT09MKG5hbWUsIHN0YXJ0LCBzaXplLCByZWFsdmVjKQkJCVwKLQlfX0VYQ19WSVJUX09PTChuYW1lLCBzdGFydCwgc2l6ZSk7CQkJCVwKLQlfX1RSQU1QX1ZJUlRfT09MKG5hbWUsIHJlYWx2ZWMpCi0KLSNkZWZpbmUgX19FWENfVklSVF9PT0xfTUFTS0FCTEUobmFtZSwgc3RhcnQsIHNpemUpCQkJXAotCV9fRVhDX1ZJUlRfT09MKG5hbWUsIHN0YXJ0LCBzaXplKQotCi0jZGVmaW5lIF9fVFJBTVBfVklSVF9PT0xfTUFTS0FCTEUobmFtZSwgcmVhbHZlYywgYml0bWFzaykJCVwKLQlUUkFNUF9WSVJUX0JFR0lOKHRyYW1wX3ZpcnRfIyNuYW1lKTsJCQkJXAotCUVYQ0VQVElPTl9QUk9MT0dfMSBFWENfU1RELCBQQUNBX0VYR0VOLCAwLCByZWFsdmVjLCAwLCAwLCBiaXRtYXNrIDsgXAotCUVYQ0VQVElPTl9QUk9MT0dfMl9SRUFMIG5hbWUjI19jb21tb24sIEVYQ19TVEQsIDEKLQotI2RlZmluZSBFWENfVklSVF9PT0xfTUFTS0FCTEUobmFtZSwgc3RhcnQsIHNpemUsIHJlYWx2ZWMsIGJpdG1hc2spCVwKLQlfX0VYQ19WSVJUX09PTF9NQVNLQUJMRShuYW1lLCBzdGFydCwgc2l6ZSk7CQkJXAotCV9fVFJBTVBfVklSVF9PT0xfTUFTS0FCTEUobmFtZSwgcmVhbHZlYywgYml0bWFzaykKLQotI2RlZmluZSBfX0VYQ19WSVJUX09PTF9IVihuYW1lLCBzdGFydCwgc2l6ZSkJCQkJXAotCV9fRVhDX1ZJUlRfT09MKG5hbWUsIHN0YXJ0LCBzaXplKQotCi0jZGVmaW5lIF9fVFJBTVBfVklSVF9PT0xfSFYobmFtZSwgcmVhbHZlYykJCQkJXAotCVRSQU1QX1ZJUlRfQkVHSU4odHJhbXBfdmlydF8jI25hbWUpOwkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19IViwgUEFDQV9FWEdFTiwgMSwgcmVhbHZlYywgMCwgMCwgMCA7CVwKLQlFWENFUFRJT05fUFJPTE9HXzJfVklSVCBuYW1lIyNfY29tbW9uLCBFWENfSFYKLQotI2RlZmluZSBFWENfVklSVF9PT0xfSFYobmFtZSwgc3RhcnQsIHNpemUsIHJlYWx2ZWMpCQkJXAotCV9fRVhDX1ZJUlRfT09MX0hWKG5hbWUsIHN0YXJ0LCBzaXplKTsJCQkJXAotCV9fVFJBTVBfVklSVF9PT0xfSFYobmFtZSwgcmVhbHZlYykKLQotI2RlZmluZSBfX0VYQ19WSVJUX09PTF9NQVNLQUJMRV9IVihuYW1lLCBzdGFydCwgc2l6ZSkJCQlcCi0JX19FWENfVklSVF9PT0wobmFtZSwgc3RhcnQsIHNpemUpCi0KLSNkZWZpbmUgX19UUkFNUF9WSVJUX09PTF9NQVNLQUJMRV9IVihuYW1lLCByZWFsdmVjLCBiaXRtYXNrKQkJXAotCVRSQU1QX1ZJUlRfQkVHSU4odHJhbXBfdmlydF8jI25hbWUpOwkJCQlcCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19IViwgUEFDQV9FWEdFTiwgMSwgcmVhbHZlYywgMCwgMCwgYml0bWFzayA7IFwKLQlFWENFUFRJT05fUFJPTE9HXzJfVklSVCBuYW1lIyNfY29tbW9uLCBFWENfSFYKLQotI2RlZmluZSBFWENfVklSVF9PT0xfTUFTS0FCTEVfSFYobmFtZSwgc3RhcnQsIHNpemUsIHJlYWx2ZWMsIGJpdG1hc2spCVwKLQlfX0VYQ19WSVJUX09PTF9NQVNLQUJMRV9IVihuYW1lLCBzdGFydCwgc2l6ZSk7CQkJXAotCV9fVFJBTVBfVklSVF9PT0xfTUFTS0FCTEVfSFYobmFtZSwgcmVhbHZlYywgYml0bWFzaykKLQotI2RlZmluZSBUUkFNUF9LVk0oYXJlYSwgbikJCQkJCQlcCi0JVFJBTVBfS1ZNX0JFR0lOKGRvX2t2bV8jI24pOwkJCQkJXAotCUtWTV9IQU5ETEVSIGFyZWEsIEVYQ19TVEQsIG4sIDAKLQotI2RlZmluZSBUUkFNUF9LVk1fU0tJUChhcmVhLCBuKQkJCQkJCVwKLQlUUkFNUF9LVk1fQkVHSU4oZG9fa3ZtXyMjbik7CQkJCQlcCi0JS1ZNX0hBTkRMRVIgYXJlYSwgRVhDX1NURCwgbiwgMQotCi0jZGVmaW5lIFRSQU1QX0tWTV9IVihhcmVhLCBuKQkJCQkJCVwKLQlUUkFNUF9LVk1fQkVHSU4oZG9fa3ZtX0gjI24pOwkJCQkJXAotCUtWTV9IQU5ETEVSIGFyZWEsIEVYQ19IViwgbiwgMAotCi0jZGVmaW5lIFRSQU1QX0tWTV9IVl9TS0lQKGFyZWEsIG4pCQkJCQlcCi0JVFJBTVBfS1ZNX0JFR0lOKGRvX2t2bV9IIyNuKTsJCQkJCVwKLQlLVk1fSEFORExFUiBhcmVhLCBFWENfSFYsIG4sIDEKLQogI2RlZmluZSBFWENfQ09NTU9OKG5hbWUsIHJlYWx2ZWMsIGhkbHIpCQkJCQlcCiAJRVhDX0NPTU1PTl9CRUdJTihuYW1lKTsJCQkJCQlcCi0JRVhDRVBUSU9OX0NPTU1PTihQQUNBX0VYR0VOLCByZWFsdmVjKTsJCQkJXAorCUlOVF9DT01NT04gcmVhbHZlYywgUEFDQV9FWEdFTiwgMSwgMSwgMSwgMCwgMCA7CQkJXAogCWJsCXNhdmVfbnZncHJzOwkJCQkJCVwKLQlSRUNPTkNJTEVfSVJRX1NUQVRFKHIxMCwgcjExKTsJCQkJCVwKIAlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFEOwkJCQlcCiAJYmwJaGRscjsJCQkJCQkJXAogCWIJcmV0X2Zyb21fZXhjZXB0CkBAIC03MDQsOSArNjg0LDggQEAKICAqLwogI2RlZmluZSBFWENfQ09NTU9OX0FTWU5DKG5hbWUsIHJlYWx2ZWMsIGhkbHIpCQkJCVwKIAlFWENfQ09NTU9OX0JFR0lOKG5hbWUpOwkJCQkJCVwKLQlFWENFUFRJT05fQ09NTU9OKFBBQ0FfRVhHRU4sIHJlYWx2ZWMpOwkJCQlcCisJSU5UX0NPTU1PTiByZWFsdmVjLCBQQUNBX0VYR0VOLCAxLCAxLCAxLCAwLCAwIDsJCQlcCiAJRklOSVNIX05BUDsJCQkJCQkJXAotCVJFQ09OQ0lMRV9JUlFfU1RBVEUocjEwLCByMTEpOwkJCQkJXAogCVJVTkxBVENIX09OOwkJCQkJCQlcCiAJYWRkaQlyMyxyMSxTVEFDS19GUkFNRV9PVkVSSEVBRDsJCQkJXAogCWJsCWhkbHI7CQkJCQkJCVwKQEAgLTgzNiw5ICs4MTUsNyBAQAogRU5EX0ZUUl9TRUNUSU9OX0lGU0VUKENQVV9GVFJfSFZNT0RFIHwgQ1BVX0ZUUl9BUkNIXzIwNikKICNlbmRpZgogCi0JRVhDRVBUSU9OX1BST0xPR18wIFBBQ0FfRVhOTUkKLQlFWENFUFRJT05fUFJPTE9HXzEgRVhDX1NURCwgUEFDQV9FWE5NSSwgMSwgMHgxMDAsIDAsIDAsIDAKLQlFWENFUFRJT05fUFJPTE9HXzJfUkVBTCBzeXN0ZW1fcmVzZXRfY29tbW9uLCBFWENfU1RELCAwCisJSU5UX0hBTkRMRVIgc3lzdGVtX3Jlc2V0LCAweDEwMCwgYXJlYT1QQUNBX0VYTk1JLCByaT0wLCBrdm09MQogCS8qCiAJICogTVNSX1JJIGlzIG5vdCBlbmFibGVkLCBiZWNhdXNlIFBBQ0FfRVhOTUkgYW5kIG5taSBzdGFjayBpcwogCSAqIGJlaW5nIHVzZWQsIHNvIGEgbmVzdGVkIE5NSSBleGNlcHRpb24gd291bGQgY29ycnVwdCBpdC4KQEAgLTg1MCw5ICs4MjcsOCBAQAogCSAqIGJlIGRhbmdlcm91cyBhbnl3YXkuCiAJICovCiBFWENfUkVBTF9FTkQoc3lzdGVtX3Jlc2V0LCAweDEwMCwgMHgxMDApCi0KIEVYQ19WSVJUX05PTkUoMHg0MTAwLCAweDEwMCkKLVRSQU1QX0tWTShQQUNBX0VYTk1JLCAweDEwMCkKK0lOVF9LVk1fSEFORExFUiBzeXN0ZW1fcmVzZXQgMHgxMDAsIEVYQ19TVEQsIFBBQ0FfRVhOTUksIDAKIAogI2lmZGVmIENPTkZJR19QUENfUDdfTkFQCiBUUkFNUF9SRUFMX0JFR0lOKHN5c3RlbV9yZXNldF9pZGxlX3dha2UpCkBAIC04NjgsOSArODQ0LDcgQEAKICAqLwogVFJBTVBfUkVBTF9CRUdJTihzeXN0ZW1fcmVzZXRfZndubWkpCiAJLyogU2VlIGNvbW1lbnQgYXQgc3lzdGVtX3Jlc2V0IGV4Y2VwdGlvbiwgZG9uJ3QgdHVybiBvbiBSSSAqLwotCUVYQ0VQVElPTl9QUk9MT0dfMCBQQUNBX0VYTk1JCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19TVEQsIFBBQ0FfRVhOTUksIDAsIDB4MTAwLCAwLCAwLCAwCi0JRVhDRVBUSU9OX1BST0xPR18yX1JFQUwgc3lzdGVtX3Jlc2V0X2NvbW1vbiwgRVhDX1NURCwgMAorCUlOVF9IQU5ETEVSIHN5c3RlbV9yZXNldCwgMHgxMDAsIGFyZWE9UEFDQV9FWE5NSSwgcmk9MAogCiAjZW5kaWYgLyogQ09ORklHX1BQQ19QU0VSSUVTICovCiAKQEAgLTg5MCw3ICs4NjQsNyBAQAogCW1yCXIxMCxyMQogCWxkCXIxLFBBQ0FfTk1JX0VNRVJHX1NQKHIxMykKIAlzdWJpCXIxLHIxLElOVF9GUkFNRV9TSVpFCi0JRVhDRVBUSU9OX0NPTU1PTl9TVEFDSyhQQUNBX0VYTk1JLCAweDEwMCkKKwlJTlRfQ09NTU9OIDB4MTAwLCBQQUNBX0VYTk1JLCAwLCAxLCAwLCAwLCAwCiAJYmwJc2F2ZV9udmdwcnMKIAkvKgogCSAqIFNldCBJUlFTX0FMTF9ESVNBQkxFRCB1bmNvbmRpdGlvbmFsbHkgc28gYXJjaF9pcnFzX2Rpc2FibGVkIGRvZXMKQEAgLTkzMywyNiArOTA3LDM5IEBACiAKIAogRVhDX1JFQUxfQkVHSU4obWFjaGluZV9jaGVjaywgMHgyMDAsIDB4MTAwKQotCS8qIFRoaXMgaXMgbW92ZWQgb3V0IG9mIGxpbmUgYXMgaXQgY2FuIGJlIHBhdGNoZWQgYnkgRlcsIGJ1dAotCSAqIHNvbWUgY29kZSBwYXRoIG1pZ2h0IHN0aWxsIHdhbnQgdG8gYnJhbmNoIGludG8gdGhlIG9yaWdpbmFsCi0JICogdmVjdG9yCisJSU5UX0hBTkRMRVIgbWFjaGluZV9jaGVjaywgMHgyMDAsIGVhcmx5PTEsIGFyZWE9UEFDQV9FWE1DLCBkYXI9MSwgZHNpc3I9MQorCS8qCisJICogTVNSX1JJIGlzIG5vdCBlbmFibGVkLCBiZWNhdXNlIFBBQ0FfRVhNQyBpcyBiZWluZyB1c2VkLCBzbyBhCisJICogbmVzdGVkIG1hY2hpbmUgY2hlY2sgY29ycnVwdHMgaXQuIG1hY2hpbmVfY2hlY2tfY29tbW9uIGVuYWJsZXMKKwkgKiBNU1JfUkkuCiAJICovCi0JRVhDRVBUSU9OX1BST0xPR18wIFBBQ0FfRVhNQwotQkVHSU5fRlRSX1NFQ1RJT04KLQliCW1hY2hpbmVfY2hlY2tfY29tbW9uX2Vhcmx5Ci1GVFJfU0VDVElPTl9FTFNFCi0JYgltYWNoaW5lX2NoZWNrX3BTZXJpZXNfMAotQUxUX0ZUUl9TRUNUSU9OX0VORF9JRlNFVChDUFVfRlRSX0hWTU9ERSkKIEVYQ19SRUFMX0VORChtYWNoaW5lX2NoZWNrLCAweDIwMCwgMHgxMDApCiBFWENfVklSVF9OT05FKDB4NDIwMCwgMHgxMDApCi1UUkFNUF9SRUFMX0JFR0lOKG1hY2hpbmVfY2hlY2tfY29tbW9uX2Vhcmx5KQotCUVYQ0VQVElPTl9QUk9MT0dfMSBFWENfU1RELCBQQUNBX0VYTUMsIDAsIDB4MjAwLCAwLCAwLCAwCisKKyNpZmRlZiBDT05GSUdfUFBDX1BTRVJJRVMKK1RSQU1QX1JFQUxfQkVHSU4obWFjaGluZV9jaGVja19md25taSkKKwkvKiBTZWUgY29tbWVudCBhdCBtYWNoaW5lX2NoZWNrIGV4Y2VwdGlvbiwgZG9uJ3QgdHVybiBvbiBSSSAqLworCUlOVF9IQU5ETEVSIG1hY2hpbmVfY2hlY2ssIDB4MjAwLCBlYXJseT0xLCBhcmVhPVBBQ0FfRVhNQywgZGFyPTEsIGRzaXNyPTEKKyNlbmRpZgorCitJTlRfS1ZNX0hBTkRMRVIgbWFjaGluZV9jaGVjayAweDIwMCwgRVhDX1NURCwgUEFDQV9FWE1DLCAxCisKKyNkZWZpbmUgTUFDSElORV9DSEVDS19IQU5ETEVSX1dJTkRVUAkJCVwKKwkvKiBDbGVhciBNU1JfUkkgYmVmb3JlIHNldHRpbmcgU1JSMCBhbmQgU1JSMS4gKi9cCisJbGkJcjksMDsJCQkJCVwKKwltdG1zcmQJcjksMTsJCS8qIENsZWFyIE1TUl9SSSAqLwlcCisJLyogRGVjcmVtZW50IHBhY2EtPmluX21jZSBub3cgUkkgaXMgY2xlYXIuICovCVwKKwlsaHoJcjEyLFBBQ0FfSU5fTUNFKHIxMyk7CQkJXAorCXN1YmkJcjEyLHIxMiwxOwkJCQlcCisJc3RoCXIxMixQQUNBX0lOX01DRShyMTMpOwkJCVwKKwlFWENFUFRJT05fUkVTVE9SRV9SRUdTIEVYQ19TVEQKKworRVhDX0NPTU1PTl9CRUdJTihtYWNoaW5lX2NoZWNrX2Vhcmx5X2NvbW1vbikKKwltdGN0cglyMTAJCQkvKiBSZXN0b3JlIGN0ciAqLworCW1mc3ByCXIxMSxTUFJOX1NSUjAKKwltZnNwcglyMTIsU1BSTl9TUlIxCisKIAkvKgotCSAqIFJlZ2lzdGVyIGNvbnRlbnRzOgotCSAqIFIxMwkJPSBQQUNBCi0JICogUjkJCT0gQ1IKLQkgKiBPcmlnaW5hbCBSOSB0byBSMTMgaXMgc2F2ZWQgb24gUEFDQV9FWE1DCi0JICoKIAkgKiBTd2l0Y2ggdG8gbWNfZW1lcmdlbmN5IHN0YWNrIGFuZCBoYW5kbGUgcmUtZW50cmFuY3kgKHdlIGxpbWl0CiAJICogdGhlIG5lc3RlZCBNQ0UgdXB0byBsZXZlbCA0IHRvIGF2b2lkIHN0YWNrIG92ZXJmbG93KS4KIAkgKiBTYXZlIE1DRSByZWdpc3RlcnMgc3JyMSwgc3JyMCwgZGFyIGFuZCBkc2lzciBhbmQgdGhlbiBzZXQgTUU9MQpAQCAtOTczLDEwMyArOTYwLDEyNyBAQAogCSAqIHRoZSBtYWNoaW5lIGNoZWNrIGlzIGhhbmRsZWQgdGhlbiB0aGUgaWRsZSB3YWtldXAgY29kZSBpcyBjYWxsZWQKIAkgKiB0byByZXN0b3JlIHN0YXRlLgogCSAqLwotCW1yCXIxMSxyMQkJCS8qIFNhdmUgcjEgKi8KIAlsaHoJcjEwLFBBQ0FfSU5fTUNFKHIxMykKIAljbXB3aQlyMTAsMAkJCS8qIEFyZSB3ZSBpbiBuZXN0ZWQgbWFjaGluZSBjaGVjayAqLwotCWJuZQkwZgkJCS8qIFllcywgd2UgYXJlLiAqLwotCS8qIEZpcnN0IG1hY2hpbmUgY2hlY2sgZW50cnkgKi8KLQlsZAlyMSxQQUNBTUNFTUVSR1NQKHIxMykJLyogVXNlIE1DIGVtZXJnZW5jeSBzdGFjayAqLwotMDoJc3ViaQlyMSxyMSxJTlRfRlJBTUVfU0laRQkvKiBhbGxvYyBzdGFjayBmcmFtZSAqLworCWNtcHdpCWNyMSxyMTAsTUFYX01DRV9ERVBUSAkvKiBBcmUgd2UgYXQgbWF4aW11bSBuZXN0aW5nICovCiAJYWRkaQlyMTAscjEwLDEJCS8qIGluY3JlbWVudCBwYWNhLT5pbl9tY2UgKi8KIAlzdGgJcjEwLFBBQ0FfSU5fTUNFKHIxMykKLQkvKiBMaW1pdCBuZXN0ZWQgTUNFIHRvIGxldmVsIDQgdG8gYXZvaWQgc3RhY2sgb3ZlcmZsb3cgKi8KLQljbXB3aQlyMTAsTUFYX01DRV9ERVBUSAotCWJndAkyZgkJCS8qIENoZWNrIGlmIHdlIGhpdCBsaW1pdCBvZiA0ICovCi0Jc3RkCXIxMSxHUFIxKHIxKQkJLyogU2F2ZSByMSBvbiB0aGUgc3RhY2suICovCi0Jc3RkCXIxMSwwKHIxKQkJLyogbWFrZSBzdGFjayBjaGFpbiBwb2ludGVyICovCi0JbWZzcHIJcjExLFNQUk5fU1JSMAkJLyogU2F2ZSBTUlIwICovCi0Jc3RkCXIxMSxfTklQKHIxKQotCW1mc3ByCXIxMSxTUFJOX1NSUjEJCS8qIFNhdmUgU1JSMSAqLwotCXN0ZAlyMTEsX01TUihyMSkKLQltZnNwcglyMTEsU1BSTl9EQVIJCS8qIFNhdmUgREFSICovCi0Jc3RkCXIxMSxfREFSKHIxKQotCW1mc3ByCXIxMSxTUFJOX0RTSVNSCQkvKiBTYXZlIERTSVNSICovCi0Jc3RkCXIxMSxfRFNJU1IocjEpCi0Jc3RkCXI5LF9DQ1IocjEpCQkvKiBTYXZlIENSIGluIHN0YWNrZnJhbWUgKi8KKworCW1yCXIxMCxyMQkJCS8qIFNhdmUgcjEgKi8KKwlibmUJMWYKKwkvKiBGaXJzdCBtYWNoaW5lIGNoZWNrIGVudHJ5ICovCisJbGQJcjEsUEFDQU1DRU1FUkdTUChyMTMpCS8qIFVzZSBNQyBlbWVyZ2VuY3kgc3RhY2sgKi8KKzE6CS8qIExpbWl0IG5lc3RlZCBNQ0UgdG8gbGV2ZWwgNCB0byBhdm9pZCBzdGFjayBvdmVyZmxvdyAqLworCWJndAljcjEsdW5yZWNvdmVyYWJsZV9tY2UJLyogQ2hlY2sgaWYgd2UgaGl0IGxpbWl0IG9mIDQgKi8KKwlzdWJpCXIxLHIxLElOVF9GUkFNRV9TSVpFCS8qIGFsbG9jIHN0YWNrIGZyYW1lICovCisKIAkvKiBXZSBkb24ndCB0b3VjaCBBTVIgaGVyZSwgd2UgbmV2ZXIgZ28gdG8gdmlydHVhbCBtb2RlICovCi0JLyogU2F2ZSByOSB0aHJvdWdoIHIxMyBmcm9tIEVYTUMgc2F2ZSBhcmVhIHRvIHN0YWNrIGZyYW1lLiAqLwotCUVYQ0VQVElPTl9QUk9MT0dfQ09NTU9OXzIoUEFDQV9FWE1DKQotCW1mbXNyCXIxMQkJCS8qIGdldCBNU1IgdmFsdWUgKi8KKwlJTlRfQ09NTU9OIDB4MjAwLCBQQUNBX0VYTUMsIDAsIDAsIDAsIDEsIDEKKwogQkVHSU5fRlRSX1NFQ1RJT04KLQlvcmkJcjExLHIxMSxNU1JfTUUJCS8qIHR1cm4gb24gTUUgYml0ICovCisJYmwJZW5hYmxlX21hY2hpbmVfY2hlY2sKIEVORF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSX0hWTU9ERSkKLQlvcmkJcjExLHIxMSxNU1JfUkkJCS8qIHR1cm4gb24gUkkgYml0ICovCi0JTE9BRF9IQU5ETEVSKHIxMiwgbWFjaGluZV9jaGVja19oYW5kbGVfZWFybHkpCi0xOgltdHNwcglTUFJOX1NSUjAscjEyCi0JbXRzcHIJU1BSTl9TUlIxLHIxMQotCVJGSV9UT19LRVJORUwKLQliCS4JLyogcHJldmVudCBzcGVjdWxhdGl2ZSBleGVjdXRpb24gKi8KLTI6Ci0JLyogU3RhY2sgb3ZlcmZsb3cuIFN0YXkgb24gZW1lcmdlbmN5IHN0YWNrIGFuZCBwYW5pYy4KLQkgKiBLZWVwIHRoZSBNRSBiaXQgb2ZmIHdoaWxlIHBhbmljLWluZywgc28gdGhhdCBpZiB3ZSBoaXQKLQkgKiBhbm90aGVyIG1hY2hpbmUgY2hlY2sgd2UgY2hlY2tzdG9wLgotCSAqLwotCWFkZGkJcjEscjEsSU5UX0ZSQU1FX1NJWkUJLyogZ28gYmFjayB0byBwcmV2aW91cyBzdGFjayBmcmFtZSAqLwotCWxkCXIxMSxQQUNBS01TUihyMTMpCi0JTE9BRF9IQU5ETEVSKHIxMiwgdW5yZWNvdmVyX21jZSkKLQlsaQlyMTAsTVNSX01FCi0JYW5kYwlyMTEscjExLHIxMAkJLyogVHVybiBvZmYgTVNSX01FICovCi0JYgkxYgotCWIJLgkvKiBwcmV2ZW50IHNwZWN1bGF0aXZlIGV4ZWN1dGlvbiAqLworCWxpCXIxMCxNU1JfUkkKKwltdG1zcmQJcjEwLDEKIAotVFJBTVBfUkVBTF9CRUdJTihtYWNoaW5lX2NoZWNrX3BTZXJpZXMpCi0JLmdsb2JsIG1hY2hpbmVfY2hlY2tfZndubWkKLW1hY2hpbmVfY2hlY2tfZndubWk6Ci0JRVhDRVBUSU9OX1BST0xPR18wIFBBQ0FfRVhNQwotQkVHSU5fRlRSX1NFQ1RJT04KLQliCW1hY2hpbmVfY2hlY2tfY29tbW9uX2Vhcmx5Ci1FTkRfRlRSX1NFQ1RJT05fSUZDTFIoQ1BVX0ZUUl9IVk1PREUpCi1tYWNoaW5lX2NoZWNrX3BTZXJpZXNfMDoKLQlFWENFUFRJT05fUFJPTE9HXzEgRVhDX1NURCwgUEFDQV9FWE1DLCAxLCAweDIwMCwgMSwgMSwgMAorCWJsCXNhdmVfbnZncHJzCisJYWRkaQlyMyxyMSxTVEFDS19GUkFNRV9PVkVSSEVBRAorCWJsCW1hY2hpbmVfY2hlY2tfZWFybHkKKwlzdGQJcjMsUkVTVUxUKHIxKQkvKiBTYXZlIHJlc3VsdCAqLworCWxkCXIxMixfTVNSKHIxKQorCisjaWZkZWYgQ09ORklHX1BQQ19QN19OQVAKIAkvKgotCSAqIE1TUl9SSSBpcyBub3QgZW5hYmxlZCwgYmVjYXVzZSBQQUNBX0VYTUMgaXMgYmVpbmcgdXNlZCwgc28gYQotCSAqIG5lc3RlZCBtYWNoaW5lIGNoZWNrIGNvcnJ1cHRzIGl0LiBtYWNoaW5lX2NoZWNrX2NvbW1vbiBlbmFibGVzCi0JICogTVNSX1JJLgorCSAqIENoZWNrIGlmIHRocmVhZCB3YXMgaW4gcG93ZXIgc2F2aW5nIG1vZGUuIFdlIGNvbWUgaGVyZSB3aGVuIGFueQorCSAqIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKKwkgKiBhLiB0aHJlYWQgd2Fzbid0IGluIHBvd2VyIHNhdmluZyBtb2RlCisJICogYi4gdGhyZWFkIHdhcyBpbiBwb3dlciBzYXZpbmcgbW9kZSB3aXRoIG5vIHN0YXRlIGxvc3MsCisJICogICAgc3VwZXJ2aXNvciBzdGF0ZSBsb3NzIG9yIGh5cGVydmlzb3Igc3RhdGUgbG9zcy4KKwkgKgorCSAqIEdvIGJhY2sgdG8gbmFwL3NsZWVwL3dpbmtsZSBtb2RlIGFnYWluIGlmIChiKSBpcyB0cnVlLgogCSAqLwotCUVYQ0VQVElPTl9QUk9MT0dfMl9SRUFMIG1hY2hpbmVfY2hlY2tfY29tbW9uLCBFWENfU1RELCAwCitCRUdJTl9GVFJfU0VDVElPTgorCXJsd2lubS4JcjExLHIxMiw0Ny0zMSwzMCwzMQorCWJuZQltYWNoaW5lX2NoZWNrX2lkbGVfY29tbW9uCitFTkRfRlRSX1NFQ1RJT05fSUZTRVQoQ1BVX0ZUUl9IVk1PREUgfCBDUFVfRlRSX0FSQ0hfMjA2KQorI2VuZGlmCiAKLVRSQU1QX0tWTV9TS0lQKFBBQ0FfRVhNQywgMHgyMDApCisjaWZkZWYgQ09ORklHX0tWTV9CT09LM1NfNjRfSEFORExFUgorCS8qCisJICogQ2hlY2sgaWYgd2UgYXJlIGNvbWluZyBmcm9tIGd1ZXN0LiBJZiB5ZXMsIHRoZW4gcnVuIHRoZSBub3JtYWwKKwkgKiBleGNlcHRpb24gaGFuZGxlciB3aGljaCB3aWxsIHRha2UgdGhlCisJICogbWFjaGluZV9jaGVja19rdm0tPmt2bXBwY19pbnRlcnJ1cHQgYnJhbmNoIHRvIGRlbGl2ZXIgdGhlIE1DIGV2ZW50CisJICogdG8gZ3Vlc3QuCisJICovCisJbGJ6CXIxMSxIU1RBVEVfSU5fR1VFU1QocjEzKQorCWNtcHdpCXIxMSwwCQkJLyogQ2hlY2sgaWYgY29taW5nIGZyb20gZ3Vlc3QgKi8KKwlibmUJbWNlX2RlbGl2ZXIJCS8qIGNvbnRpbnVlIGlmIHdlIGFyZS4gKi8KKyNlbmRpZgorCisJLyoKKwkgKiBDaGVjayBpZiB3ZSBhcmUgY29taW5nIGZyb20gdXNlcnNwYWNlLiBJZiB5ZXMsIHRoZW4gcnVuIHRoZSBub3JtYWwKKwkgKiBleGNlcHRpb24gaGFuZGxlciB3aGljaCB3aWxsIGRlbGl2ZXIgdGhlIE1DIGV2ZW50IHRvIHRoaXMga2VybmVsLgorCSAqLworCWFuZGkuCXIxMSxyMTIsTVNSX1BSCQkvKiBTZWUgaWYgY29taW5nIGZyb20gdXNlci4gKi8KKwlibmUJbWNlX2RlbGl2ZXIJCS8qIGNvbnRpbnVlIGluIFYgbW9kZSBpZiB3ZSBhcmUuICovCisKKwkvKgorCSAqIEF0IHRoaXMgcG9pbnQgd2UgYXJlIGNvbWluZyBmcm9tIGtlcm5lbCBjb250ZXh0LgorCSAqIFF1ZXVlIHVwIHRoZSBNQ0UgZXZlbnQgYW5kIHJldHVybiBmcm9tIHRoZSBpbnRlcnJ1cHQuCisJICogQnV0IGJlZm9yZSB0aGF0LCBjaGVjayBpZiB0aGlzIGlzIGFuIHVuLXJlY292ZXJhYmxlIGV4Y2VwdGlvbi4KKwkgKiBJZiB5ZXMsIHRoZW4gc3RheSBvbiBlbWVyZ2VuY3kgc3RhY2sgYW5kIHBhbmljLgorCSAqLworCWFuZGkuCXIxMSxyMTIsTVNSX1JJCisJYmVxCXVucmVjb3ZlcmFibGVfbWNlCisKKwkvKgorCSAqIENoZWNrIGlmIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGhhbmRsZWQvcmVjb3ZlcmVkIGZyb20gZXJyb3IsIGlmIG5vdAorCSAqIHRoZW4gc3RheSBvbiBlbWVyZ2VuY3kgc3RhY2sgYW5kIHBhbmljLgorCSAqLworCWxkCXIzLFJFU1VMVChyMSkJLyogTG9hZCByZXN1bHQgKi8KKwljbXBkaQlyMywwCQkvKiBzZWUgaWYgd2UgaGFuZGxlZCBNQ0Ugc3VjY2Vzc2Z1bGx5ICovCisJYmVxCXVucmVjb3ZlcmFibGVfbWNlIC8qIGlmICFoYW5kbGVkIHRoZW4gcGFuaWMgKi8KKworCS8qCisJICogUmV0dXJuIGZyb20gTUMgaW50ZXJydXB0LgorCSAqIFF1ZXVlIHVwIHRoZSBNQ0UgZXZlbnQgc28gdGhhdCB3ZSBjYW4gbG9nIGl0IGxhdGVyLCB3aGlsZQorCSAqIHJldHVybmluZyBmcm9tIGtlcm5lbCBvciBvcGFsIGNhbGwuCisJICovCisJYmwJbWFjaGluZV9jaGVja19xdWV1ZV9ldmVudAorCU1BQ0hJTkVfQ0hFQ0tfSEFORExFUl9XSU5EVVAKKwlSRklfVE9fS0VSTkVMCisKK21jZV9kZWxpdmVyOgorCS8qCisJICogVGhpcyBpcyBhIGhvc3QgdXNlciBvciBndWVzdCBNQ0UuIFJlc3RvcmUgYWxsIHJlZ2lzdGVycywgdGhlbgorCSAqIHJ1biB0aGUgImxhdGUiIGhhbmRsZXIuIEZvciBob3N0IHVzZXIsIHRoaXMgd2lsbCBydW4gdGhlCisJICogbWFjaGluZV9jaGVja19leGNlcHRpb24gaGFuZGxlciBpbiB2aXJ0dWFsIG1vZGUgbGlrZSBhIG5vcm1hbAorCSAqIGludGVycnVwdCBoYW5kbGVyLiBGb3IgZ3Vlc3QsIHRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBLVk0gdGVzdAorCSAqIGFuZCBicmFuY2ggdG8gdGhlIEtWTSBpbnRlcnJ1cHQgc2ltaWxhcmx5IHRvIG90aGVyIGludGVycnVwdHMuCisJICovCitCRUdJTl9GVFJfU0VDVElPTgorCWxkCXIxMCxPUklHX0dQUjMocjEpCisJbXRzcHIJU1BSTl9DRkFSLHIxMAorRU5EX0ZUUl9TRUNUSU9OX0lGU0VUKENQVV9GVFJfQ0ZBUikKKwlNQUNISU5FX0NIRUNLX0hBTkRMRVJfV0lORFVQCisJLyogU2VlIGNvbW1lbnQgYXQgbWFjaGluZV9jaGVjayBleGNlcHRpb24sIGRvbid0IHR1cm4gb24gUkkgKi8KKwlJTlRfSEFORExFUiBtYWNoaW5lX2NoZWNrLCAweDIwMCwgYXJlYT1QQUNBX0VYTUMsIHJpPTAsIGRhcj0xLCBkc2lzcj0xLCBrdm09MQogCiBFWENfQ09NTU9OX0JFR0lOKG1hY2hpbmVfY2hlY2tfY29tbW9uKQogCS8qCiAJICogTWFjaGluZSBjaGVjayBpcyBkaWZmZXJlbnQgYmVjYXVzZSB3ZSB1c2UgYSBkaWZmZXJlbnQKIAkgKiBzYXZlIGFyZWE6IFBBQ0FfRVhNQyBpbnN0ZWFkIG9mIFBBQ0FfRVhHRU4uCiAJICovCi0JRVhDRVBUSU9OX0NPTU1PTihQQUNBX0VYTUMsIDB4MjAwKQorCUlOVF9DT01NT04gMHgyMDAsIFBBQ0FfRVhNQywgMSwgMSwgMSwgMSwgMQogCUZJTklTSF9OQVAKLQlSRUNPTkNJTEVfSVJRX1NUQVRFKHIxMCwgcjExKQotCWxkCXIzLFBBQ0FfRVhNQytFWF9EQVIocjEzKQotCWx3eglyNCxQQUNBX0VYTUMrRVhfRFNJU1IocjEzKQogCS8qIEVuYWJsZSBNU1JfUkkgd2hlbiBmaW5pc2hlZCB3aXRoIFBBQ0FfRVhNQyAqLwogCWxpCXIxMCxNU1JfUkkKIAltdG1zcmQgCXIxMCwxCi0Jc3RkCXIzLF9EQVIocjEpCi0Jc3RkCXI0LF9EU0lTUihyMSkKIAlibAlzYXZlX252Z3BycwogCWFkZGkJcjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQKIAlibAltYWNoaW5lX2NoZWNrX2V4Y2VwdGlvbgogCWIJcmV0X2Zyb21fZXhjZXB0CiAKLSNkZWZpbmUgTUFDSElORV9DSEVDS19IQU5ETEVSX1dJTkRVUAkJCVwKLQkvKiBDbGVhciBNU1JfUkkgYmVmb3JlIHNldHRpbmcgU1JSMCBhbmQgU1JSMS4gKi9cCi0JbGkJcjksMDsJCQkJCVwKLQltdG1zcmQJcjksMTsJCS8qIENsZWFyIE1TUl9SSSAqLwlcCi0JLyogRGVjcmVtZW50IHBhY2EtPmluX21jZSBub3cgUkkgaXMgY2xlYXIuICovCVwKLQlsaHoJcjEyLFBBQ0FfSU5fTUNFKHIxMyk7CQkJXAotCXN1YmkJcjEyLHIxMiwxOwkJCQlcCi0Jc3RoCXIxMixQQUNBX0lOX01DRShyMTMpOwkJCVwKLQlFWENFUFRJT05fUkVTVE9SRV9SRUdTIEVYQ19TVEQKLQogI2lmZGVmIENPTkZJR19QUENfUDdfTkFQCiAvKgogICogVGhpcyBpcyBhbiBpZGxlIHdha2V1cC4gTG93IGxldmVsIG1hY2hpbmUgY2hlY2sgaGFzIGFscmVhZHkgYmVlbgpAQCAtMTEwMSw3MiArMTExMiw4IEBACiAJYmx0bHIJY3IxCS8qIG5vIHN0YXRlIGxvc3MsIHJldHVybiB0byBpZGxlIGNhbGxlciAqLwogCWIJaWRsZV9yZXR1cm5fZ3ByX2xvc3MKICNlbmRpZgotCS8qCi0JICogSGFuZGxlIG1hY2hpbmUgY2hlY2sgZWFybHkgaW4gcmVhbCBtb2RlLiBXZSBjb21lIGhlcmUgd2l0aAotCSAqIE1FPTEsIE1NVSAoSVI9MCBhbmQgRFI9MCkgb2ZmIGFuZCB1c2luZyBNQyBlbWVyZ2VuY3kgc3RhY2suCi0JICovCi1FWENfQ09NTU9OX0JFR0lOKG1hY2hpbmVfY2hlY2tfaGFuZGxlX2Vhcmx5KQotCXN0ZAlyMCxHUFIwKHIxKQkvKiBTYXZlIHIwICovCi0JRVhDRVBUSU9OX1BST0xPR19DT01NT05fMygweDIwMCkKLQlibAlzYXZlX252Z3BycwotCWFkZGkJcjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQKLQlibAltYWNoaW5lX2NoZWNrX2Vhcmx5Ci0Jc3RkCXIzLFJFU1VMVChyMSkJLyogU2F2ZSByZXN1bHQgKi8KLQlsZAlyMTIsX01TUihyMSkKLUJFR0lOX0ZUUl9TRUNUSU9OCi0JYgk0ZgotRU5EX0ZUUl9TRUNUSU9OX0lGQ0xSKENQVV9GVFJfSFZNT0RFKQogCi0jaWZkZWYJQ09ORklHX1BQQ19QN19OQVAKLQkvKgotCSAqIENoZWNrIGlmIHRocmVhZCB3YXMgaW4gcG93ZXIgc2F2aW5nIG1vZGUuIFdlIGNvbWUgaGVyZSB3aGVuIGFueQotCSAqIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKLQkgKiBhLiB0aHJlYWQgd2Fzbid0IGluIHBvd2VyIHNhdmluZyBtb2RlCi0JICogYi4gdGhyZWFkIHdhcyBpbiBwb3dlciBzYXZpbmcgbW9kZSB3aXRoIG5vIHN0YXRlIGxvc3MsCi0JICogICAgc3VwZXJ2aXNvciBzdGF0ZSBsb3NzIG9yIGh5cGVydmlzb3Igc3RhdGUgbG9zcy4KLQkgKgotCSAqIEdvIGJhY2sgdG8gbmFwL3NsZWVwL3dpbmtsZSBtb2RlIGFnYWluIGlmIChiKSBpcyB0cnVlLgotCSAqLwotQkVHSU5fRlRSX1NFQ1RJT04KLQlybHdpbm0uCXIxMSxyMTIsNDctMzEsMzAsMzEKLQlibmUJbWFjaGluZV9jaGVja19pZGxlX2NvbW1vbgotRU5EX0ZUUl9TRUNUSU9OX0lGU0VUKENQVV9GVFJfSFZNT0RFIHwgQ1BVX0ZUUl9BUkNIXzIwNikKLSNlbmRpZgotCi0JLyoKLQkgKiBDaGVjayBpZiB3ZSBhcmUgY29taW5nIGZyb20gaHlwZXJ2aXNvciB1c2Vyc3BhY2UuIElmIHllcyB0aGVuIHdlCi0JICogY29udGludWUgaW4gaG9zdCBrZXJuZWwgaW4gViBtb2RlIHRvIGRlbGl2ZXIgdGhlIE1DIGV2ZW50LgotCSAqLwotCXJsZGljbC4JcjExLHIxMiw0LDYzCQkvKiBTZWUgaWYgTUMgaGl0IHdoaWxlIGluIEhWIG1vZGUuICovCi0JYmVxCTVmCi00OglhbmRpLglyMTEscjEyLE1TUl9QUgkJLyogU2VlIGlmIGNvbWluZyBmcm9tIHVzZXIuICovCi0JYm5lCTlmCQkJLyogY29udGludWUgaW4gViBtb2RlIGlmIHdlIGFyZS4gKi8KLQotNToKLSNpZmRlZiBDT05GSUdfS1ZNX0JPT0szU182NF9IQU5ETEVSCi1CRUdJTl9GVFJfU0VDVElPTgotCS8qCi0JICogV2UgYXJlIGNvbWluZyBmcm9tIGtlcm5lbCBjb250ZXh0LiBDaGVjayBpZiB3ZSBhcmUgY29taW5nIGZyb20KLQkgKiBndWVzdC4gaWYgeWVzLCB0aGVuIHdlIGNhbiBjb250aW51ZS4gV2Ugd2lsbCBmYWxsIHRocm91Z2gKLQkgKiBkb19rdm1fMjAwLT5rdm1wcGNfaW50ZXJydXB0IHRvIGRlbGl2ZXIgdGhlIE1DIGV2ZW50IHRvIGd1ZXN0LgotCSAqLwotCWxieglyMTEsSFNUQVRFX0lOX0dVRVNUKHIxMykKLQljbXB3aQlyMTEsMAkJCS8qIENoZWNrIGlmIGNvbWluZyBmcm9tIGd1ZXN0ICovCi0JYm5lCTlmCQkJLyogY29udGludWUgaWYgd2UgYXJlLiAqLwotRU5EX0ZUUl9TRUNUSU9OX0lGU0VUKENQVV9GVFJfSFZNT0RFKQotI2VuZGlmCi0JLyoKLQkgKiBBdCB0aGlzIHBvaW50IHdlIGFyZSBub3Qgc3VyZSBhYm91dCB3aGF0IGNvbnRleHQgd2UgY29tZSBmcm9tLgotCSAqIFF1ZXVlIHVwIHRoZSBNQ0UgZXZlbnQgYW5kIHJldHVybiBmcm9tIHRoZSBpbnRlcnJ1cHQuCi0JICogQnV0IGJlZm9yZSB0aGF0LCBjaGVjayBpZiB0aGlzIGlzIGFuIHVuLXJlY292ZXJhYmxlIGV4Y2VwdGlvbi4KLQkgKiBJZiB5ZXMsIHRoZW4gc3RheSBvbiBlbWVyZ2VuY3kgc3RhY2sgYW5kIHBhbmljLgotCSAqLwotCWFuZGkuCXIxMSxyMTIsTVNSX1JJCi0JYm5lCTJmCi0xOgltZnNwcglyMTEsU1BSTl9TUlIwCi0JTE9BRF9IQU5ETEVSKHIxMCx1bnJlY292ZXJfbWNlKQotCW10c3ByCVNQUk5fU1JSMCxyMTAKLQlsZAlyMTAsUEFDQUtNU1IocjEzKQorRVhDX0NPTU1PTl9CRUdJTih1bnJlY292ZXJhYmxlX21jZSkKIAkvKgogCSAqIFdlIGFyZSBnb2luZyBkb3duLiBCdXQgdGhlcmUgYXJlIGNoYW5jZXMgdGhhdCB3ZSBtaWdodCBnZXQgaGl0IGJ5CiAJICogYW5vdGhlciBNQ0UgZHVyaW5nIHBhbmljIHBhdGggYW5kIHdlIG1heSBydW4gaW50byB1bnN0YWJsZSBzdGF0ZQpAQCAtMTE3NCw4NCArMTEyMSwzNiBAQAogCSAqIHdoZW4gYW5vdGhlciBNQ0UgaXMgaGl0IGR1cmluZyBwYW5pYyBwYXRoLCBzeXN0ZW0gd2lsbCBjaGVja3N0b3AKIAkgKiBhbmQgaHlwZXJ2aXNvciB3aWxsIGdldCByZXN0YXJ0ZWQgY2xlYW5seSBieSBTUC4KIAkgKi8KLQlsaQlyMyxNU1JfTUUKLQlhbmRjCXIxMCxyMTAscjMJCS8qIFR1cm4gb2ZmIE1TUl9NRSAqLwotCW10c3ByCVNQUk5fU1JSMSxyMTAKLQlSRklfVE9fS0VSTkVMCi0JYgkuCi0yOgotCS8qCi0JICogQ2hlY2sgaWYgd2UgaGF2ZSBzdWNjZXNzZnVsbHkgaGFuZGxlZC9yZWNvdmVyZWQgZnJvbSBlcnJvciwgaWYgbm90Ci0JICogdGhlbiBzdGF5IG9uIGVtZXJnZW5jeSBzdGFjayBhbmQgcGFuaWMuCi0JICovCi0JbGQJcjMsUkVTVUxUKHIxKQkvKiBMb2FkIHJlc3VsdCAqLwotCWNtcGRpCXIzLDAJCS8qIHNlZSBpZiB3ZSBoYW5kbGVkIE1DRSBzdWNjZXNzZnVsbHkgKi8KLQotCWJlcQkxYgkJLyogaWYgIWhhbmRsZWQgdGhlbiBwYW5pYyAqLwogQkVHSU5fRlRSX1NFQ1RJT04KLQkvKgotCSAqIFJldHVybiBmcm9tIE1DIGludGVycnVwdC4KLQkgKiBRdWV1ZSB1cCB0aGUgTUNFIGV2ZW50IHNvIHRoYXQgd2UgY2FuIGxvZyBpdCBsYXRlciwgd2hpbGUKLQkgKiByZXR1cm5pbmcgZnJvbSBrZXJuZWwgb3Igb3BhbCBjYWxsLgotCSAqLwotCWJsCW1hY2hpbmVfY2hlY2tfcXVldWVfZXZlbnQKLQlNQUNISU5FX0NIRUNLX0hBTkRMRVJfV0lORFVQCi0JUkZJX1RPX1VTRVJfT1JfS0VSTkVMCi1GVFJfU0VDVElPTl9FTFNFCi0JLyoKLQkgKiBwU2VyaWVzOiBSZXR1cm4gZnJvbSBNQyBpbnRlcnJ1cHQuIEJlZm9yZSB0aGF0IHN0YXkgb24gZW1lcmdlbmN5Ci0JICogc3RhY2sgYW5kIGNhbGwgbWFjaGluZV9jaGVja19leGNlcHRpb24gdG8gbG9nIHRoZSBNQ0UgZXZlbnQuCi0JICovCi0JTE9BRF9IQU5ETEVSKHIxMCxtY2VfcmV0dXJuKQotCW10c3ByCVNQUk5fU1JSMCxyMTAKKwlsaQlyMTAsMCAvKiBjbGVhciBNU1JfUkkgKi8KKwltdG1zcmQJcjEwLDEKKwlibAlkaXNhYmxlX21hY2hpbmVfY2hlY2sKK0VORF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSX0hWTU9ERSkKIAlsZAlyMTAsUEFDQUtNU1IocjEzKQotCW10c3ByCVNQUk5fU1JSMSxyMTAKLQlSRklfVE9fS0VSTkVMCi0JYgkuCi1BTFRfRlRSX1NFQ1RJT05fRU5EX0lGU0VUKENQVV9GVFJfSFZNT0RFKQotOToKLQkvKiBEZWxpdmVyIHRoZSBtYWNoaW5lIGNoZWNrIHRvIGhvc3Qga2VybmVsIGluIFYgbW9kZS4gKi8KLQlNQUNISU5FX0NIRUNLX0hBTkRMRVJfV0lORFVQCi0JRVhDRVBUSU9OX1BST0xPR18wIFBBQ0FfRVhNQwotCWIJbWFjaGluZV9jaGVja19wU2VyaWVzXzAKKwlsaQlyMyxNU1JfTUUKKwlhbmRjCXIxMCxyMTAscjMKKwltdG1zcmQJcjEwCiAKLUVYQ19DT01NT05fQkVHSU4odW5yZWNvdmVyX21jZSkKIAkvKiBJbnZva2UgbWFjaGluZV9jaGVja19leGNlcHRpb24gdG8gcHJpbnQgTUNFIGV2ZW50IGFuZCBwYW5pYy4gKi8KIAlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFECiAJYmwJbWFjaGluZV9jaGVja19leGNlcHRpb24KLQkvKgotCSAqIFdlIHdpbGwgbm90IHJlYWNoIGhlcmUuIEV2ZW4gaWYgd2UgZGlkLCB0aGVyZSBpcyBubyB3YXkgb3V0LiBDYWxsCi0JICogdW5yZWNvdmVyYWJsZV9leGNlcHRpb24gYW5kIGRpZS4KLQkgKi8KLTE6CWFkZGkJcjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQKLQlibAl1bnJlY292ZXJhYmxlX2V4Y2VwdGlvbgotCWIJMWIKIAotRVhDX0NPTU1PTl9CRUdJTihtY2VfcmV0dXJuKQotCS8qIEludm9rZSBtYWNoaW5lX2NoZWNrX2V4Y2VwdGlvbiB0byBwcmludCBNQ0UgZXZlbnQgYW5kIHJldHVybi4gKi8KKwkvKgorCSAqIFdlIHdpbGwgbm90IHJlYWNoIGhlcmUuIEV2ZW4gaWYgd2UgZGlkLCB0aGVyZSBpcyBubyB3YXkgb3V0LgorCSAqIENhbGwgdW5yZWNvdmVyYWJsZV9leGNlcHRpb24gYW5kIGRpZS4KKwkgKi8KIAlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFECi0JYmwJbWFjaGluZV9jaGVja19leGNlcHRpb24KLQlNQUNISU5FX0NIRUNLX0hBTkRMRVJfV0lORFVQCi0JUkZJX1RPX0tFUk5FTAorCWJsCXVucmVjb3ZlcmFibGVfZXhjZXB0aW9uCiAJYgkuCiAKKwogRVhDX1JFQUxfQkVHSU4oZGF0YV9hY2Nlc3MsIDB4MzAwLCAweDgwKQotCUVYQ0VQVElPTl9QUk9MT0dfMCBQQUNBX0VYR0VOCi0JYgl0cmFtcF9yZWFsX2RhdGFfYWNjZXNzCisJSU5UX0hBTkRMRVIgZGF0YV9hY2Nlc3MsIDB4MzAwLCBvb2w9MSwgZGFyPTEsIGRzaXNyPTEsIGt2bT0xCiBFWENfUkVBTF9FTkQoZGF0YV9hY2Nlc3MsIDB4MzAwLCAweDgwKQotCi1UUkFNUF9SRUFMX0JFR0lOKHRyYW1wX3JlYWxfZGF0YV9hY2Nlc3MpCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19TVEQsIFBBQ0FfRVhHRU4sIDEsIDB4MzAwLCAxLCAxLCAwCi0JRVhDRVBUSU9OX1BST0xPR18yX1JFQUwgZGF0YV9hY2Nlc3NfY29tbW9uLCBFWENfU1RELCAxCi0KIEVYQ19WSVJUX0JFR0lOKGRhdGFfYWNjZXNzLCAweDQzMDAsIDB4ODApCi0JRVhDRVBUSU9OX1BST0xPR18wIFBBQ0FfRVhHRU4KLQlFWENFUFRJT05fUFJPTE9HXzEgRVhDX1NURCwgUEFDQV9FWEdFTiwgMCwgMHgzMDAsIDEsIDEsIDAKLUVYQ0VQVElPTl9QUk9MT0dfMl9WSVJUIGRhdGFfYWNjZXNzX2NvbW1vbiwgRVhDX1NURAorCUlOVF9IQU5ETEVSIGRhdGFfYWNjZXNzLCAweDMwMCwgdmlydD0xLCBkYXI9MSwgZHNpc3I9MQogRVhDX1ZJUlRfRU5EKGRhdGFfYWNjZXNzLCAweDQzMDAsIDB4ODApCi0KLVRSQU1QX0tWTV9TS0lQKFBBQ0FfRVhHRU4sIDB4MzAwKQotCitJTlRfS1ZNX0hBTkRMRVIgZGF0YV9hY2Nlc3MsIDB4MzAwLCBFWENfU1RELCBQQUNBX0VYR0VOLCAxCiBFWENfQ09NTU9OX0JFR0lOKGRhdGFfYWNjZXNzX2NvbW1vbikKIAkvKgogCSAqIEhlcmUgcjEzIHBvaW50cyB0byB0aGUgcGFjYSwgcjkgY29udGFpbnMgdGhlIHNhdmVkIENSLApAQCAtMTI1OSwxNSArMTE1OCwxMiBAQAogCSAqIHI5IC0gcjEzIGFyZSBzYXZlZCBpbiBwYWNhLT5leGdlbi4KIAkgKiBFWF9EQVIgYW5kIEVYX0RTSVNSIGhhdmUgc2F2ZWQgREFSL0RTSVNSCiAJICovCi0JRVhDRVBUSU9OX0NPTU1PTihQQUNBX0VYR0VOLCAweDMwMCkKLQlSRUNPTkNJTEVfSVJRX1NUQVRFKHIxMCwgcjExKQotCWxkCXIxMixfTVNSKHIxKQotCWxkCXIzLFBBQ0FfRVhHRU4rRVhfREFSKHIxMykKLQlsd3oJcjQsUEFDQV9FWEdFTitFWF9EU0lTUihyMTMpCi0JbGkJcjUsMHgzMDAKLQlzdGQJcjMsX0RBUihyMSkKLQlzdGQJcjQsX0RTSVNSKHIxKQorCUlOVF9DT01NT04gMHgzMDAsIFBBQ0FfRVhHRU4sIDEsIDEsIDEsIDEsIDEKKwlsZAlyNCxfREFSKHIxKQorCWxkCXI1LF9EU0lTUihyMSkKIEJFR0lOX01NVV9GVFJfU0VDVElPTgorCWxkCXI2LF9NU1IocjEpCisJbGkJcjMsMHgzMDAKIAliCWRvX2hhc2hfcGFnZQkJLyogVHJ5IHRvIGhhbmRsZSBhcyBocHRlIGZhdWx0ICovCiBNTVVfRlRSX1NFQ1RJT05fRUxTRQogCWIJaGFuZGxlX3BhZ2VfZmF1bHQKQEAgLTEyNzUsMjYgKzExNzEsMTUgQEAKIAogCiBFWENfUkVBTF9CRUdJTihkYXRhX2FjY2Vzc19zbGIsIDB4MzgwLCAweDgwKQotCUVYQ0VQVElPTl9QUk9MT0dfMCBQQUNBX0VYU0xCCi0JYgl0cmFtcF9yZWFsX2RhdGFfYWNjZXNzX3NsYgorCUlOVF9IQU5ETEVSIGRhdGFfYWNjZXNzX3NsYiwgMHgzODAsIG9vbD0xLCBhcmVhPVBBQ0FfRVhTTEIsIGRhcj0xLCBrdm09MQogRVhDX1JFQUxfRU5EKGRhdGFfYWNjZXNzX3NsYiwgMHgzODAsIDB4ODApCi0KLVRSQU1QX1JFQUxfQkVHSU4odHJhbXBfcmVhbF9kYXRhX2FjY2Vzc19zbGIpCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19TVEQsIFBBQ0FfRVhTTEIsIDEsIDB4MzgwLCAxLCAwLCAwCi0JRVhDRVBUSU9OX1BST0xPR18yX1JFQUwgZGF0YV9hY2Nlc3Nfc2xiX2NvbW1vbiwgRVhDX1NURCwgMQotCiBFWENfVklSVF9CRUdJTihkYXRhX2FjY2Vzc19zbGIsIDB4NDM4MCwgMHg4MCkKLQlFWENFUFRJT05fUFJPTE9HXzAgUEFDQV9FWFNMQgotCUVYQ0VQVElPTl9QUk9MT0dfMSBFWENfU1RELCBQQUNBX0VYU0xCLCAwLCAweDM4MCwgMSwgMCwgMAotCUVYQ0VQVElPTl9QUk9MT0dfMl9WSVJUIGRhdGFfYWNjZXNzX3NsYl9jb21tb24sIEVYQ19TVEQKKwlJTlRfSEFORExFUiBkYXRhX2FjY2Vzc19zbGIsIDB4MzgwLCB2aXJ0PTEsIGFyZWE9UEFDQV9FWFNMQiwgZGFyPTEKIEVYQ19WSVJUX0VORChkYXRhX2FjY2Vzc19zbGIsIDB4NDM4MCwgMHg4MCkKLQotVFJBTVBfS1ZNX1NLSVAoUEFDQV9FWFNMQiwgMHgzODApCi0KK0lOVF9LVk1fSEFORExFUiBkYXRhX2FjY2Vzc19zbGIsIDB4MzgwLCBFWENfU1RELCBQQUNBX0VYU0xCLCAxCiBFWENfQ09NTU9OX0JFR0lOKGRhdGFfYWNjZXNzX3NsYl9jb21tb24pCi0JRVhDRVBUSU9OX0NPTU1PTihQQUNBX0VYU0xCLCAweDM4MCkKLQlsZAlyNCxQQUNBX0VYU0xCK0VYX0RBUihyMTMpCi0Jc3RkCXI0LF9EQVIocjEpCisJSU5UX0NPTU1PTiAweDM4MCwgUEFDQV9FWFNMQiwgMSwgMSwgMCwgMSwgMAorCWxkCXI0LF9EQVIocjEpCiAJYWRkaQlyMyxyMSxTVEFDS19GUkFNRV9PVkVSSEVBRAogQkVHSU5fTU1VX0ZUUl9TRUNUSU9OCiAJLyogSFBUIGNhc2UsIGRvIFNMQiBmYXVsdCAqLwpAQCAtMTMxNywzMyArMTIwMiwzNiBAQAogCWIJcmV0X2Zyb21fZXhjZXB0CiAKIAotRVhDX1JFQUwoaW5zdHJ1Y3Rpb25fYWNjZXNzLCAweDQwMCwgMHg4MCkKLUVYQ19WSVJUKGluc3RydWN0aW9uX2FjY2VzcywgMHg0NDAwLCAweDgwLCAweDQwMCkKLVRSQU1QX0tWTShQQUNBX0VYR0VOLCAweDQwMCkKLQorRVhDX1JFQUxfQkVHSU4oaW5zdHJ1Y3Rpb25fYWNjZXNzLCAweDQwMCwgMHg4MCkKKwlJTlRfSEFORExFUiBpbnN0cnVjdGlvbl9hY2Nlc3MsIDB4NDAwLCBrdm09MQorRVhDX1JFQUxfRU5EKGluc3RydWN0aW9uX2FjY2VzcywgMHg0MDAsIDB4ODApCitFWENfVklSVF9CRUdJTihpbnN0cnVjdGlvbl9hY2Nlc3MsIDB4NDQwMCwgMHg4MCkKKwlJTlRfSEFORExFUiBpbnN0cnVjdGlvbl9hY2Nlc3MsIDB4NDAwLCB2aXJ0PTEKK0VYQ19WSVJUX0VORChpbnN0cnVjdGlvbl9hY2Nlc3MsIDB4NDQwMCwgMHg4MCkKK0lOVF9LVk1fSEFORExFUiBpbnN0cnVjdGlvbl9hY2Nlc3MsIDB4NDAwLCBFWENfU1RELCBQQUNBX0VYR0VOLCAwCiBFWENfQ09NTU9OX0JFR0lOKGluc3RydWN0aW9uX2FjY2Vzc19jb21tb24pCi0JRVhDRVBUSU9OX0NPTU1PTihQQUNBX0VYR0VOLCAweDQwMCkKLQlSRUNPTkNJTEVfSVJRX1NUQVRFKHIxMCwgcjExKQotCWxkCXIxMixfTVNSKHIxKQotCWxkCXIzLF9OSVAocjEpCi0JYW5kaXMuCXI0LHIxMixEU0lTUl9TUlIxX01BVENIXzY0U0BoCi0JbGkJcjUsMHg0MDAKLQlzdGQJcjMsX0RBUihyMSkKLQlzdGQJcjQsX0RTSVNSKHIxKQorCUlOVF9DT01NT04gMHg0MDAsIFBBQ0FfRVhHRU4sIDEsIDEsIDEsIDIsIDIKKwlsZAlyNCxfREFSKHIxKQorCWxkCXI1LF9EU0lTUihyMSkKIEJFR0lOX01NVV9GVFJfU0VDVElPTgorCWxkICAgICAgcjYsX01TUihyMSkKKwlsaQlyMywweDQwMAogCWIJZG9faGFzaF9wYWdlCQkvKiBUcnkgdG8gaGFuZGxlIGFzIGhwdGUgZmF1bHQgKi8KIE1NVV9GVFJfU0VDVElPTl9FTFNFCiAJYgloYW5kbGVfcGFnZV9mYXVsdAogQUxUX01NVV9GVFJfU0VDVElPTl9FTkRfSUZDTFIoTU1VX0ZUUl9UWVBFX1JBRElYKQogCiAKLV9fRVhDX1JFQUwoaW5zdHJ1Y3Rpb25fYWNjZXNzX3NsYiwgMHg0ODAsIDB4ODAsIFBBQ0FfRVhTTEIpCi1fX0VYQ19WSVJUKGluc3RydWN0aW9uX2FjY2Vzc19zbGIsIDB4NDQ4MCwgMHg4MCwgMHg0ODAsIFBBQ0FfRVhTTEIpCi1UUkFNUF9LVk0oUEFDQV9FWFNMQiwgMHg0ODApCi0KK0VYQ19SRUFMX0JFR0lOKGluc3RydWN0aW9uX2FjY2Vzc19zbGIsIDB4NDgwLCAweDgwKQorCUlOVF9IQU5ETEVSIGluc3RydWN0aW9uX2FjY2Vzc19zbGIsIDB4NDgwLCBhcmVhPVBBQ0FfRVhTTEIsIGt2bT0xCitFWENfUkVBTF9FTkQoaW5zdHJ1Y3Rpb25fYWNjZXNzX3NsYiwgMHg0ODAsIDB4ODApCitFWENfVklSVF9CRUdJTihpbnN0cnVjdGlvbl9hY2Nlc3Nfc2xiLCAweDQ0ODAsIDB4ODApCisJSU5UX0hBTkRMRVIgaW5zdHJ1Y3Rpb25fYWNjZXNzX3NsYiwgMHg0ODAsIHZpcnQ9MSwgYXJlYT1QQUNBX0VYU0xCCitFWENfVklSVF9FTkQoaW5zdHJ1Y3Rpb25fYWNjZXNzX3NsYiwgMHg0NDgwLCAweDgwKQorSU5UX0tWTV9IQU5ETEVSIGluc3RydWN0aW9uX2FjY2Vzc19zbGIsIDB4NDgwLCBFWENfU1RELCBQQUNBX0VYU0xCLCAwCiBFWENfQ09NTU9OX0JFR0lOKGluc3RydWN0aW9uX2FjY2Vzc19zbGJfY29tbW9uKQotCUVYQ0VQVElPTl9DT01NT04oUEFDQV9FWFNMQiwgMHg0ODApCi0JbGQJcjQsX05JUChyMSkKKwlJTlRfQ09NTU9OIDB4NDgwLCBQQUNBX0VYU0xCLCAxLCAxLCAwLCAyLCAwCisJbGQJcjQsX0RBUihyMSkKIAlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFECiBCRUdJTl9NTVVfRlRSX1NFQ1RJT04KIAkvKiBIUFQgY2FzZSwgZG8gU0xCIGZhdWx0ICovCkBAIC0xMzU5LDY5ICsxMjQ3LDQ0IEBACiAJc3RkCXIzLFJFU1VMVChyMSkKIAlibAlzYXZlX252Z3BycwogCVJFQ09OQ0lMRV9JUlFfU1RBVEUocjEwLCByMTEpCi0JbGQJcjQsX05JUChyMSkKKwlsZAlyNCxfREFSKHIxKQogCWxkCXI1LFJFU1VMVChyMSkKIAlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFECiAJYmwJZG9fYmFkX3NsYl9mYXVsdAogCWIJcmV0X2Zyb21fZXhjZXB0CiAKLQogRVhDX1JFQUxfQkVHSU4oaGFyZHdhcmVfaW50ZXJydXB0LCAweDUwMCwgMHgxMDApCi0JRVhDRVBUSU9OX1BST0xPR18wIFBBQ0FfRVhHRU4KLUJFR0lOX0ZUUl9TRUNUSU9OCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19IViwgUEFDQV9FWEdFTiwgMSwgMHg1MDAsIDAsIDAsIElSUVNfRElTQUJMRUQKLQlFWENFUFRJT05fUFJPTE9HXzJfUkVBTCBoYXJkd2FyZV9pbnRlcnJ1cHRfY29tbW9uLCBFWENfSFYsIDEKLUZUUl9TRUNUSU9OX0VMU0UKLQlFWENFUFRJT05fUFJPTE9HXzEgRVhDX1NURCwgUEFDQV9FWEdFTiwgMSwgMHg1MDAsIDAsIDAsIElSUVNfRElTQUJMRUQKLQlFWENFUFRJT05fUFJPTE9HXzJfUkVBTCBoYXJkd2FyZV9pbnRlcnJ1cHRfY29tbW9uLCBFWENfU1RELCAxCi1BTFRfRlRSX1NFQ1RJT05fRU5EX0lGU0VUKENQVV9GVFJfSFZNT0RFIHwgQ1BVX0ZUUl9BUkNIXzIwNikKKwlJTlRfSEFORExFUiBoYXJkd2FyZV9pbnRlcnJ1cHQsIDB4NTAwLCBoc3JyPUVYQ19IVl9PUl9TVEQsIGJpdG1hc2s9SVJRU19ESVNBQkxFRCwga3ZtPTEKIEVYQ19SRUFMX0VORChoYXJkd2FyZV9pbnRlcnJ1cHQsIDB4NTAwLCAweDEwMCkKLQogRVhDX1ZJUlRfQkVHSU4oaGFyZHdhcmVfaW50ZXJydXB0LCAweDQ1MDAsIDB4MTAwKQotCUVYQ0VQVElPTl9QUk9MT0dfMCBQQUNBX0VYR0VOCi1CRUdJTl9GVFJfU0VDVElPTgotCUVYQ0VQVElPTl9QUk9MT0dfMSBFWENfSFYsIFBBQ0FfRVhHRU4sIDEsIDB4NTAwLCAwLCAwLCBJUlFTX0RJU0FCTEVECi0JRVhDRVBUSU9OX1BST0xPR18yX1ZJUlQgaGFyZHdhcmVfaW50ZXJydXB0X2NvbW1vbiwgRVhDX0hWCi1GVFJfU0VDVElPTl9FTFNFCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19TVEQsIFBBQ0FfRVhHRU4sIDEsIDB4NTAwLCAwLCAwLCBJUlFTX0RJU0FCTEVECi0JRVhDRVBUSU9OX1BST0xPR18yX1ZJUlQgaGFyZHdhcmVfaW50ZXJydXB0X2NvbW1vbiwgRVhDX1NURAotQUxUX0ZUUl9TRUNUSU9OX0VORF9JRlNFVChDUFVfRlRSX0hWTU9ERSkKKwlJTlRfSEFORExFUiBoYXJkd2FyZV9pbnRlcnJ1cHQsIDB4NTAwLCB2aXJ0PTEsIGhzcnI9RVhDX0hWX09SX1NURCwgYml0bWFzaz1JUlFTX0RJU0FCTEVELCBrdm09MQogRVhDX1ZJUlRfRU5EKGhhcmR3YXJlX2ludGVycnVwdCwgMHg0NTAwLCAweDEwMCkKLQotVFJBTVBfS1ZNKFBBQ0FfRVhHRU4sIDB4NTAwKQotVFJBTVBfS1ZNX0hWKFBBQ0FfRVhHRU4sIDB4NTAwKQorSU5UX0tWTV9IQU5ETEVSIGhhcmR3YXJlX2ludGVycnVwdCwgMHg1MDAsIEVYQ19IVl9PUl9TVEQsIFBBQ0FfRVhHRU4sIDAKIEVYQ19DT01NT05fQVNZTkMoaGFyZHdhcmVfaW50ZXJydXB0X2NvbW1vbiwgMHg1MDAsIGRvX0lSUSkKIAogCiBFWENfUkVBTF9CRUdJTihhbGlnbm1lbnQsIDB4NjAwLCAweDEwMCkKLQlFWENFUFRJT05fUFJPTE9HXzAgUEFDQV9FWEdFTgotCUVYQ0VQVElPTl9QUk9MT0dfMSBFWENfU1RELCBQQUNBX0VYR0VOLCAxLCAweDYwMCwgMSwgMSwgMAotCUVYQ0VQVElPTl9QUk9MT0dfMl9SRUFMIGFsaWdubWVudF9jb21tb24sIEVYQ19TVEQsIDEKKwlJTlRfSEFORExFUiBhbGlnbm1lbnQsIDB4NjAwLCBkYXI9MSwgZHNpc3I9MSwga3ZtPTEKIEVYQ19SRUFMX0VORChhbGlnbm1lbnQsIDB4NjAwLCAweDEwMCkKLQogRVhDX1ZJUlRfQkVHSU4oYWxpZ25tZW50LCAweDQ2MDAsIDB4MTAwKQotCUVYQ0VQVElPTl9QUk9MT0dfMCBQQUNBX0VYR0VOCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19TVEQsIFBBQ0FfRVhHRU4sIDAsIDB4NjAwLCAxLCAxLCAwCi0JRVhDRVBUSU9OX1BST0xPR18yX1ZJUlQgYWxpZ25tZW50X2NvbW1vbiwgRVhDX1NURAorCUlOVF9IQU5ETEVSIGFsaWdubWVudCwgMHg2MDAsIHZpcnQ9MSwgZGFyPTEsIGRzaXNyPTEKIEVYQ19WSVJUX0VORChhbGlnbm1lbnQsIDB4NDYwMCwgMHgxMDApCi0KLVRSQU1QX0tWTShQQUNBX0VYR0VOLCAweDYwMCkKK0lOVF9LVk1fSEFORExFUiBhbGlnbm1lbnQsIDB4NjAwLCBFWENfU1RELCBQQUNBX0VYR0VOLCAwCiBFWENfQ09NTU9OX0JFR0lOKGFsaWdubWVudF9jb21tb24pCi0JRVhDRVBUSU9OX0NPTU1PTihQQUNBX0VYR0VOLCAweDYwMCkKLQlsZAlyMyxQQUNBX0VYR0VOK0VYX0RBUihyMTMpCi0JbHd6CXI0LFBBQ0FfRVhHRU4rRVhfRFNJU1IocjEzKQotCXN0ZAlyMyxfREFSKHIxKQotCXN0ZAlyNCxfRFNJU1IocjEpCisJSU5UX0NPTU1PTiAweDYwMCwgUEFDQV9FWEdFTiwgMSwgMSwgMSwgMSwgMQogCWJsCXNhdmVfbnZncHJzCi0JUkVDT05DSUxFX0lSUV9TVEFURShyMTAsIHIxMSkKIAlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFECiAJYmwJYWxpZ25tZW50X2V4Y2VwdGlvbgogCWIJcmV0X2Zyb21fZXhjZXB0CiAKIAotRVhDX1JFQUwocHJvZ3JhbV9jaGVjaywgMHg3MDAsIDB4MTAwKQotRVhDX1ZJUlQocHJvZ3JhbV9jaGVjaywgMHg0NzAwLCAweDEwMCwgMHg3MDApCi1UUkFNUF9LVk0oUEFDQV9FWEdFTiwgMHg3MDApCitFWENfUkVBTF9CRUdJTihwcm9ncmFtX2NoZWNrLCAweDcwMCwgMHgxMDApCisJSU5UX0hBTkRMRVIgcHJvZ3JhbV9jaGVjaywgMHg3MDAsIGt2bT0xCitFWENfUkVBTF9FTkQocHJvZ3JhbV9jaGVjaywgMHg3MDAsIDB4MTAwKQorRVhDX1ZJUlRfQkVHSU4ocHJvZ3JhbV9jaGVjaywgMHg0NzAwLCAweDEwMCkKKwlJTlRfSEFORExFUiBwcm9ncmFtX2NoZWNrLCAweDcwMCwgdmlydD0xCitFWENfVklSVF9FTkQocHJvZ3JhbV9jaGVjaywgMHg0NzAwLCAweDEwMCkKK0lOVF9LVk1fSEFORExFUiBwcm9ncmFtX2NoZWNrLCAweDcwMCwgRVhDX1NURCwgUEFDQV9FWEdFTiwgMAogRVhDX0NPTU1PTl9CRUdJTihwcm9ncmFtX2NoZWNrX2NvbW1vbikKIAkvKgogCSAqIEl0J3MgcG9zc2libGUgdG8gcmVjZWl2ZSBhIFRNIEJhZCBUaGluZyB0eXBlIHByb2dyYW0gY2hlY2sgd2l0aApAQCAtMTQ0NywyNyArMTMxMCwzMyBAQAogCW1yCXIxMCxyMQkJCS8qIFNhdmUgcjEJCQkqLwogCWxkCXIxLFBBQ0FFTUVSR1NQKHIxMykJLyogVXNlIGVtZXJnZW5jeSBzdGFjawkJKi8KIAlzdWJpCXIxLHIxLElOVF9GUkFNRV9TSVpFCS8qIGFsbG9jIHN0YWNrIGZyYW1lCQkqLwotCWIgM2YJCQkJLyogSnVtcCBpbnRvIHRoZSBtYWNybyAhIQkqLworCUlOVF9DT01NT04gMHg3MDAsIFBBQ0FfRVhHRU4sIDAsIDEsIDEsIDAsIDAKKwliIDNmCiAyOgotCUVYQ0VQVElPTl9DT01NT04oUEFDQV9FWEdFTiwgMHg3MDApCisJSU5UX0NPTU1PTiAweDcwMCwgUEFDQV9FWEdFTiwgMSwgMSwgMSwgMCwgMAorMzoKIAlibAlzYXZlX252Z3BycwotCVJFQ09OQ0lMRV9JUlFfU1RBVEUocjEwLCByMTEpCiAJYWRkaQlyMyxyMSxTVEFDS19GUkFNRV9PVkVSSEVBRAogCWJsCXByb2dyYW1fY2hlY2tfZXhjZXB0aW9uCiAJYglyZXRfZnJvbV9leGNlcHQKIAogCi1FWENfUkVBTChmcF91bmF2YWlsYWJsZSwgMHg4MDAsIDB4MTAwKQotRVhDX1ZJUlQoZnBfdW5hdmFpbGFibGUsIDB4NDgwMCwgMHgxMDAsIDB4ODAwKQotVFJBTVBfS1ZNKFBBQ0FfRVhHRU4sIDB4ODAwKQorRVhDX1JFQUxfQkVHSU4oZnBfdW5hdmFpbGFibGUsIDB4ODAwLCAweDEwMCkKKwlJTlRfSEFORExFUiBmcF91bmF2YWlsYWJsZSwgMHg4MDAsIGt2bT0xCitFWENfUkVBTF9FTkQoZnBfdW5hdmFpbGFibGUsIDB4ODAwLCAweDEwMCkKK0VYQ19WSVJUX0JFR0lOKGZwX3VuYXZhaWxhYmxlLCAweDQ4MDAsIDB4MTAwKQorCUlOVF9IQU5ETEVSIGZwX3VuYXZhaWxhYmxlLCAweDgwMCwgdmlydD0xCitFWENfVklSVF9FTkQoZnBfdW5hdmFpbGFibGUsIDB4NDgwMCwgMHgxMDApCitJTlRfS1ZNX0hBTkRMRVIgZnBfdW5hdmFpbGFibGUsIDB4ODAwLCBFWENfU1RELCBQQUNBX0VYR0VOLCAwCiBFWENfQ09NTU9OX0JFR0lOKGZwX3VuYXZhaWxhYmxlX2NvbW1vbikKLQlFWENFUFRJT05fQ09NTU9OKFBBQ0FfRVhHRU4sIDB4ODAwKQorCUlOVF9DT01NT04gMHg4MDAsIFBBQ0FfRVhHRU4sIDEsIDEsIDAsIDAsIDAKIAlibmUJMWYJCQkvKiBpZiBmcm9tIHVzZXIsIGp1c3QgbG9hZCBpdCB1cCAqLwogCWJsCXNhdmVfbnZncHJzCiAJUkVDT05DSUxFX0lSUV9TVEFURShyMTAsIHIxMSkKIAlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFECiAJYmwJa2VybmVsX2ZwX3VuYXZhaWxhYmxlX2V4Y2VwdGlvbgotCUJVR19PUENPREUKKzA6CXRyYXAKKwlFTUlUX0JVR19FTlRSWSAwYiwgX19GSUxFX18sIF9fTElORV9fLCAwCiAxOgogI2lmZGVmIENPTkZJR19QUENfVFJBTlNBQ1RJT05BTF9NRU0KIEJFR0lOX0ZUUl9TRUNUSU9OCkBAIC0xNDkwLDIxICsxMzU5LDMzIEBACiAjZW5kaWYKIAogCi1FWENfUkVBTF9PT0xfTUFTS0FCTEUoZGVjcmVtZW50ZXIsIDB4OTAwLCAweDgwLCBJUlFTX0RJU0FCTEVEKQotRVhDX1ZJUlRfTUFTS0FCTEUoZGVjcmVtZW50ZXIsIDB4NDkwMCwgMHg4MCwgMHg5MDAsIElSUVNfRElTQUJMRUQpCi1UUkFNUF9LVk0oUEFDQV9FWEdFTiwgMHg5MDApCitFWENfUkVBTF9CRUdJTihkZWNyZW1lbnRlciwgMHg5MDAsIDB4ODApCisJSU5UX0hBTkRMRVIgZGVjcmVtZW50ZXIsIDB4OTAwLCBvb2w9MSwgYml0bWFzaz1JUlFTX0RJU0FCTEVELCBrdm09MQorRVhDX1JFQUxfRU5EKGRlY3JlbWVudGVyLCAweDkwMCwgMHg4MCkKK0VYQ19WSVJUX0JFR0lOKGRlY3JlbWVudGVyLCAweDQ5MDAsIDB4ODApCisJSU5UX0hBTkRMRVIgZGVjcmVtZW50ZXIsIDB4OTAwLCB2aXJ0PTEsIGJpdG1hc2s9SVJRU19ESVNBQkxFRAorRVhDX1ZJUlRfRU5EKGRlY3JlbWVudGVyLCAweDQ5MDAsIDB4ODApCitJTlRfS1ZNX0hBTkRMRVIgZGVjcmVtZW50ZXIsIDB4OTAwLCBFWENfU1RELCBQQUNBX0VYR0VOLCAwCiBFWENfQ09NTU9OX0FTWU5DKGRlY3JlbWVudGVyX2NvbW1vbiwgMHg5MDAsIHRpbWVyX2ludGVycnVwdCkKIAogCi1FWENfUkVBTF9IVihoZGVjcmVtZW50ZXIsIDB4OTgwLCAweDgwKQotRVhDX1ZJUlRfSFYoaGRlY3JlbWVudGVyLCAweDQ5ODAsIDB4ODAsIDB4OTgwKQotVFJBTVBfS1ZNX0hWKFBBQ0FfRVhHRU4sIDB4OTgwKQorRVhDX1JFQUxfQkVHSU4oaGRlY3JlbWVudGVyLCAweDk4MCwgMHg4MCkKKwlJTlRfSEFORExFUiBoZGVjcmVtZW50ZXIsIDB4OTgwLCBoc3JyPUVYQ19IViwga3ZtPTEKK0VYQ19SRUFMX0VORChoZGVjcmVtZW50ZXIsIDB4OTgwLCAweDgwKQorRVhDX1ZJUlRfQkVHSU4oaGRlY3JlbWVudGVyLCAweDQ5ODAsIDB4ODApCisJSU5UX0hBTkRMRVIgaGRlY3JlbWVudGVyLCAweDk4MCwgdmlydD0xLCBoc3JyPUVYQ19IViwga3ZtPTEKK0VYQ19WSVJUX0VORChoZGVjcmVtZW50ZXIsIDB4NDk4MCwgMHg4MCkKK0lOVF9LVk1fSEFORExFUiBoZGVjcmVtZW50ZXIsIDB4OTgwLCBFWENfSFYsIFBBQ0FfRVhHRU4sIDAKIEVYQ19DT01NT04oaGRlY3JlbWVudGVyX2NvbW1vbiwgMHg5ODAsIGhkZWNfaW50ZXJydXB0KQogCiAKLUVYQ19SRUFMX01BU0tBQkxFKGRvb3JiZWxsX3N1cGVyLCAweGEwMCwgMHgxMDAsIElSUVNfRElTQUJMRUQpCi1FWENfVklSVF9NQVNLQUJMRShkb29yYmVsbF9zdXBlciwgMHg0YTAwLCAweDEwMCwgMHhhMDAsIElSUVNfRElTQUJMRUQpCi1UUkFNUF9LVk0oUEFDQV9FWEdFTiwgMHhhMDApCitFWENfUkVBTF9CRUdJTihkb29yYmVsbF9zdXBlciwgMHhhMDAsIDB4MTAwKQorCUlOVF9IQU5ETEVSIGRvb3JiZWxsX3N1cGVyLCAweGEwMCwgYml0bWFzaz1JUlFTX0RJU0FCTEVELCBrdm09MQorRVhDX1JFQUxfRU5EKGRvb3JiZWxsX3N1cGVyLCAweGEwMCwgMHgxMDApCitFWENfVklSVF9CRUdJTihkb29yYmVsbF9zdXBlciwgMHg0YTAwLCAweDEwMCkKKwlJTlRfSEFORExFUiBkb29yYmVsbF9zdXBlciwgMHhhMDAsIHZpcnQ9MSwgYml0bWFzaz1JUlFTX0RJU0FCTEVECitFWENfVklSVF9FTkQoZG9vcmJlbGxfc3VwZXIsIDB4NGEwMCwgMHgxMDApCitJTlRfS1ZNX0hBTkRMRVIgZG9vcmJlbGxfc3VwZXIsIDB4YTAwLCBFWENfU1RELCBQQUNBX0VYR0VOLCAwCiAjaWZkZWYgQ09ORklHX1BQQ19ET09SQkVMTAogRVhDX0NPTU1PTl9BU1lOQyhkb29yYmVsbF9zdXBlcl9jb21tb24sIDB4YTAwLCBkb29yYmVsbF9leGNlcHRpb24pCiAjZWxzZQpAQCAtMTUxMiwxNyArMTM5MywxMyBAQAogI2VuZGlmCiAKIAotRVhDX1JFQUwodHJhcF8wYiwgMHhiMDAsIDB4MTAwKQotRVhDX1ZJUlQodHJhcF8wYiwgMHg0YjAwLCAweDEwMCwgMHhiMDApCi1UUkFNUF9LVk0oUEFDQV9FWEdFTiwgMHhiMDApCi1FWENfQ09NTU9OKHRyYXBfMGJfY29tbW9uLCAweGIwMCwgdW5rbm93bl9leGNlcHRpb24pCitFWENfUkVBTF9OT05FKDB4YjAwLCAweDEwMCkKK0VYQ19WSVJUX05PTkUoMHg0YjAwLCAweDEwMCkKIAogLyoKICAqIHN5c3RlbSBjYWxsIC8gaHlwZXJjYWxsICgweGMwMCwgMHg0YzAwKQogICoKICAqIFRoZSBzeXN0ZW0gY2FsbCBleGNlcHRpb24gaXMgaW52b2tlZCB3aXRoICJzYyAwIiBhbmQgZG9lcyBub3QgYWx0ZXIgSFYgYml0LgotICogVGhlcmUgaXMgc3VwcG9ydCBmb3Iga2VybmVsIGNvZGUgdG8gaW52b2tlIHN5c3RlbSBjYWxscyBidXQgdGhlcmUgYXJlIG5vCi0gKiBpbi10cmVlIHVzZXJzLgogICoKICAqIFRoZSBoeXBlcmNhbGwgaXMgaW52b2tlZCB3aXRoICJzYyAxIiBhbmQgc2V0cyBIVj0xLgogICoKQEAgLTE1NjcsNyArMTQ0NCw3IEBACiAJR0VUX1BBQ0EocjEzKQogCXN0ZAlyMTAsUEFDQV9FWEdFTitFWF9SMTAocjEzKQogCUlOVEVSUlVQVF9UT19LRVJORUwKLQlLVk1URVNUIEVYQ19TVEQgMHhjMDAgLyogdXNlcyByMTAsIGJyYW5jaCB0byBkb19rdm1fMHhjMDBfc3lzdGVtX2NhbGwgKi8KKwlLVk1URVNUIHN5c3RlbV9jYWxsIEVYQ19TVEQgMHhjMDAgLyogdXNlcyByMTAsIGJyYW5jaCB0byBzeXN0ZW1fY2FsbF9rdm0gKi8KIAltZmN0cglyOQogI2Vsc2UKIAltcglyOSxyMTMKQEAgLTE2MjEsNyArMTQ5OCw2IEBACiBFWENfUkVBTF9CRUdJTihzeXN0ZW1fY2FsbCwgMHhjMDAsIDB4MTAwKQogCVNZU1RFTV9DQUxMIDAKIEVYQ19SRUFMX0VORChzeXN0ZW1fY2FsbCwgMHhjMDAsIDB4MTAwKQotCiBFWENfVklSVF9CRUdJTihzeXN0ZW1fY2FsbCwgMHg0YzAwLCAweDEwMCkKIAlTWVNURU1fQ0FMTCAxCiBFWENfVklSVF9FTkQoc3lzdGVtX2NhbGwsIDB4NGMwMCwgMHgxMDApCkBAIC0xNjM0LDcgKzE1MTAsNyBAQAogCSAqIGN0ciA9IG9yaWcgcjEzCiAJICogb3JpZyByMTAgc2F2ZWQgaW4gUEFDQQogCSAqLwotVFJBTVBfS1ZNX0JFR0lOKGRvX2t2bV8weGMwMCkKK1RSQU1QX0tWTV9CRUdJTihzeXN0ZW1fY2FsbF9rdm0pCiAJIC8qCiAJICAqIFNhdmUgdGhlIFBQUiAob24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgaXQpIGJlZm9yZSBjaGFuZ2luZyB0bwogCSAgKiBITVRfTUVESVVNLiBUaGF0IGFsbG93cyB0aGUgS1ZNIGNvZGUgdG8gc2F2ZSB0aGF0IHZhbHVlIGludG8gdGhlCkBAIC0xNjQ3LDMyICsxNTIzLDMzIEBACiAJU0VUX1NDUkFUQ0gwKHIxMCkKIAlzdGQJcjksUEFDQV9FWEdFTitFWF9SOShyMTMpCiAJbWZjcglyOQotCUtWTV9IQU5ETEVSIFBBQ0FfRVhHRU4sIEVYQ19TVEQsIDB4YzAwLCAwCisJS1ZNX0hBTkRMRVIgMHhjMDAsIEVYQ19TVEQsIFBBQ0FfRVhHRU4sIDAKICNlbmRpZgogCiAKLUVYQ19SRUFMKHNpbmdsZV9zdGVwLCAweGQwMCwgMHgxMDApCi1FWENfVklSVChzaW5nbGVfc3RlcCwgMHg0ZDAwLCAweDEwMCwgMHhkMDApCi1UUkFNUF9LVk0oUEFDQV9FWEdFTiwgMHhkMDApCitFWENfUkVBTF9CRUdJTihzaW5nbGVfc3RlcCwgMHhkMDAsIDB4MTAwKQorCUlOVF9IQU5ETEVSIHNpbmdsZV9zdGVwLCAweGQwMCwga3ZtPTEKK0VYQ19SRUFMX0VORChzaW5nbGVfc3RlcCwgMHhkMDAsIDB4MTAwKQorRVhDX1ZJUlRfQkVHSU4oc2luZ2xlX3N0ZXAsIDB4NGQwMCwgMHgxMDApCisJSU5UX0hBTkRMRVIgc2luZ2xlX3N0ZXAsIDB4ZDAwLCB2aXJ0PTEKK0VYQ19WSVJUX0VORChzaW5nbGVfc3RlcCwgMHg0ZDAwLCAweDEwMCkKK0lOVF9LVk1fSEFORExFUiBzaW5nbGVfc3RlcCwgMHhkMDAsIEVYQ19TVEQsIFBBQ0FfRVhHRU4sIDAKIEVYQ19DT01NT04oc2luZ2xlX3N0ZXBfY29tbW9uLCAweGQwMCwgc2luZ2xlX3N0ZXBfZXhjZXB0aW9uKQogCi1FWENfUkVBTF9PT0xfSFYoaF9kYXRhX3N0b3JhZ2UsIDB4ZTAwLCAweDIwKQotRVhDX1ZJUlRfT09MX0hWKGhfZGF0YV9zdG9yYWdlLCAweDRlMDAsIDB4MjAsIDB4ZTAwKQotVFJBTVBfS1ZNX0hWX1NLSVAoUEFDQV9FWEdFTiwgMHhlMDApCisKK0VYQ19SRUFMX0JFR0lOKGhfZGF0YV9zdG9yYWdlLCAweGUwMCwgMHgyMCkKKwlJTlRfSEFORExFUiBoX2RhdGFfc3RvcmFnZSwgMHhlMDAsIG9vbD0xLCBoc3JyPUVYQ19IViwgZGFyPTEsIGRzaXNyPTEsIGt2bT0xCitFWENfUkVBTF9FTkQoaF9kYXRhX3N0b3JhZ2UsIDB4ZTAwLCAweDIwKQorRVhDX1ZJUlRfQkVHSU4oaF9kYXRhX3N0b3JhZ2UsIDB4NGUwMCwgMHgyMCkKKwlJTlRfSEFORExFUiBoX2RhdGFfc3RvcmFnZSwgMHhlMDAsIG9vbD0xLCB2aXJ0PTEsIGhzcnI9RVhDX0hWLCBkYXI9MSwgZHNpc3I9MSwga3ZtPTEKK0VYQ19WSVJUX0VORChoX2RhdGFfc3RvcmFnZSwgMHg0ZTAwLCAweDIwKQorSU5UX0tWTV9IQU5ETEVSIGhfZGF0YV9zdG9yYWdlLCAweGUwMCwgRVhDX0hWLCBQQUNBX0VYR0VOLCAxCiBFWENfQ09NTU9OX0JFR0lOKGhfZGF0YV9zdG9yYWdlX2NvbW1vbikKLQltZnNwciAgIHIxMCxTUFJOX0hEQVIKLQlzdGQgICAgIHIxMCxQQUNBX0VYR0VOK0VYX0RBUihyMTMpCi0JbWZzcHIgICByMTAsU1BSTl9IRFNJU1IKLQlzdHcgICAgIHIxMCxQQUNBX0VYR0VOK0VYX0RTSVNSKHIxMykKLQlFWENFUFRJT05fQ09NTU9OKFBBQ0FfRVhHRU4sIDB4ZTAwKQorCUlOVF9DT01NT04gMHhlMDAsIFBBQ0FfRVhHRU4sIDEsIDEsIDEsIDEsIDEKIAlibCAgICAgIHNhdmVfbnZncHJzCi0JUkVDT05DSUxFX0lSUV9TVEFURShyMTAsIHIxMSkKIAlhZGRpICAgIHIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFECiBCRUdJTl9NTVVfRlRSX1NFQ1RJT04KLQlsZAlyNCxQQUNBX0VYR0VOK0VYX0RBUihyMTMpCi0JbHd6CXI1LFBBQ0FfRVhHRU4rRVhfRFNJU1IocjEzKQotCXN0ZAlyNCxfREFSKHIxKQotCXN0ZAlyNSxfRFNJU1IocjEpCisJbGQJcjQsX0RBUihyMSkKIAlsaQlyNSxTSUdTRUdWCiAJYmwgICAgICBiYWRfcGFnZV9mYXVsdAogTU1VX0ZUUl9TRUNUSU9OX0VMU0UKQEAgLTE2ODEsMTUgKzE1NTgsMjMgQEAKIAliICAgICAgIHJldF9mcm9tX2V4Y2VwdAogCiAKLUVYQ19SRUFMX09PTF9IVihoX2luc3RyX3N0b3JhZ2UsIDB4ZTIwLCAweDIwKQotRVhDX1ZJUlRfT09MX0hWKGhfaW5zdHJfc3RvcmFnZSwgMHg0ZTIwLCAweDIwLCAweGUyMCkKLVRSQU1QX0tWTV9IVihQQUNBX0VYR0VOLCAweGUyMCkKK0VYQ19SRUFMX0JFR0lOKGhfaW5zdHJfc3RvcmFnZSwgMHhlMjAsIDB4MjApCisJSU5UX0hBTkRMRVIgaF9pbnN0cl9zdG9yYWdlLCAweGUyMCwgb29sPTEsIGhzcnI9RVhDX0hWLCBrdm09MQorRVhDX1JFQUxfRU5EKGhfaW5zdHJfc3RvcmFnZSwgMHhlMjAsIDB4MjApCitFWENfVklSVF9CRUdJTihoX2luc3RyX3N0b3JhZ2UsIDB4NGUyMCwgMHgyMCkKKwlJTlRfSEFORExFUiBoX2luc3RyX3N0b3JhZ2UsIDB4ZTIwLCBvb2w9MSwgdmlydD0xLCBoc3JyPUVYQ19IViwga3ZtPTEKK0VYQ19WSVJUX0VORChoX2luc3RyX3N0b3JhZ2UsIDB4NGUyMCwgMHgyMCkKK0lOVF9LVk1fSEFORExFUiBoX2luc3RyX3N0b3JhZ2UsIDB4ZTIwLCBFWENfSFYsIFBBQ0FfRVhHRU4sIDAKIEVYQ19DT01NT04oaF9pbnN0cl9zdG9yYWdlX2NvbW1vbiwgMHhlMjAsIHVua25vd25fZXhjZXB0aW9uKQogCiAKLUVYQ19SRUFMX09PTF9IVihlbXVsYXRpb25fYXNzaXN0LCAweGU0MCwgMHgyMCkKLUVYQ19WSVJUX09PTF9IVihlbXVsYXRpb25fYXNzaXN0LCAweDRlNDAsIDB4MjAsIDB4ZTQwKQotVFJBTVBfS1ZNX0hWKFBBQ0FfRVhHRU4sIDB4ZTQwKQorRVhDX1JFQUxfQkVHSU4oZW11bGF0aW9uX2Fzc2lzdCwgMHhlNDAsIDB4MjApCisJSU5UX0hBTkRMRVIgZW11bGF0aW9uX2Fzc2lzdCwgMHhlNDAsIG9vbD0xLCBoc3JyPUVYQ19IViwga3ZtPTEKK0VYQ19SRUFMX0VORChlbXVsYXRpb25fYXNzaXN0LCAweGU0MCwgMHgyMCkKK0VYQ19WSVJUX0JFR0lOKGVtdWxhdGlvbl9hc3Npc3QsIDB4NGU0MCwgMHgyMCkKKwlJTlRfSEFORExFUiBlbXVsYXRpb25fYXNzaXN0LCAweGU0MCwgb29sPTEsIHZpcnQ9MSwgaHNycj1FWENfSFYsIGt2bT0xCitFWENfVklSVF9FTkQoZW11bGF0aW9uX2Fzc2lzdCwgMHg0ZTQwLCAweDIwKQorSU5UX0tWTV9IQU5ETEVSIGVtdWxhdGlvbl9hc3Npc3QsIDB4ZTQwLCBFWENfSFYsIFBBQ0FfRVhHRU4sIDAKIEVYQ19DT01NT04oZW11bGF0aW9uX2Fzc2lzdF9jb21tb24sIDB4ZTQwLCBlbXVsYXRpb25fYXNzaXN0X2ludGVycnVwdCkKIAogCkBAIC0xNjk5LDE2ICsxNTg0LDEwIEBACiAgKiBtb2RlLgogICovCiBFWENfUkVBTF9CRUdJTihobWlfZXhjZXB0aW9uLCAweGU2MCwgMHgyMCkKLQlFWENFUFRJT05fUFJPTE9HXzAgUEFDQV9FWEdFTgotCWIJaG1pX2V4Y2VwdGlvbl9lYXJseQorCUlOVF9IQU5ETEVSIGhtaV9leGNlcHRpb24sIDB4ZTYwLCBvb2w9MSwgZWFybHk9MSwgaHNycj1FWENfSFYsIHJpPTAsIGt2bT0xCiBFWENfUkVBTF9FTkQoaG1pX2V4Y2VwdGlvbiwgMHhlNjAsIDB4MjApCiBFWENfVklSVF9OT05FKDB4NGU2MCwgMHgyMCkKLVRSQU1QX0tWTV9IVihQQUNBX0VYR0VOLCAweGU2MCkKLVRSQU1QX1JFQUxfQkVHSU4oaG1pX2V4Y2VwdGlvbl9lYXJseSkKLQlFWENFUFRJT05fUFJPTE9HXzEgRVhDX0hWLCBQQUNBX0VYR0VOLCAxLCAweGU2MCwgMCwgMCwgMAotCW1mY3RyCXIxMAkJCS8qIHNhdmUgY3RyLCBldmVuIGZvciAhUkVMT0NBVEFCTEUgKi8KLQlCUkFOQ0hfVE9fQzAwMChyMTEsIGhtaV9leGNlcHRpb25fZWFybHlfY29tbW9uKQotCitJTlRfS1ZNX0hBTkRMRVIgaG1pX2V4Y2VwdGlvbiwgMHhlNjAsIEVYQ19IViwgUEFDQV9FWEdFTiwgMAogRVhDX0NPTU1PTl9CRUdJTihobWlfZXhjZXB0aW9uX2Vhcmx5X2NvbW1vbikKIAltdGN0cglyMTAJCQkvKiBSZXN0b3JlIGN0ciAqLwogCW1mc3ByCXIxMSxTUFJOX0hTUlIwCQkvKiBTYXZlIEhTUlIwICovCkBAIC0xNzE2LDEwICsxNTk1LDEwIEBACiAJbXIJcjEwLHIxCQkJLyogU2F2ZSByMSAqLwogCWxkCXIxLFBBQ0FFTUVSR1NQKHIxMykJLyogVXNlIGVtZXJnZW5jeSBzdGFjayBmb3IgcmVhbG1vZGUgKi8KIAlzdWJpCXIxLHIxLElOVF9GUkFNRV9TSVpFCS8qIGFsbG9jIHN0YWNrIGZyYW1lCQkqLwotCUVYQ0VQVElPTl9QUk9MT0dfQ09NTU9OXzEoKQorCiAJLyogV2UgZG9uJ3QgdG91Y2ggQU1SIGhlcmUsIHdlIG5ldmVyIGdvIHRvIHZpcnR1YWwgbW9kZSAqLwotCUVYQ0VQVElPTl9QUk9MT0dfQ09NTU9OXzIoUEFDQV9FWEdFTikKLQlFWENFUFRJT05fUFJPTE9HX0NPTU1PTl8zKDB4ZTYwKQorCUlOVF9DT01NT04gMHhlNjAsIFBBQ0FfRVhHRU4sIDAsIDAsIDAsIDAsIDAKKwogCWFkZGkJcjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQKIAlibAlobWlfZXhjZXB0aW9uX3JlYWxtb2RlCiAJY21wZGkJY3IwLHIzLDAKQEAgLTE3MzQsMjMgKzE2MTMsMjUgQEAKIAkgKiBmaXJtd2FyZS4KIAkgKi8KIAlFWENFUFRJT05fUkVTVE9SRV9SRUdTIEVYQ19IVgotCUVYQ0VQVElPTl9QUk9MT0dfMCBQQUNBX0VYR0VOCi0JRVhDRVBUSU9OX1BST0xPR18xIEVYQ19IViwgUEFDQV9FWEdFTiwgMSwgMHhlNjAsIDAsIDAsIElSUVNfRElTQUJMRUQKLQlFWENFUFRJT05fUFJPTE9HXzJfUkVBTCBobWlfZXhjZXB0aW9uX2NvbW1vbiwgRVhDX0hWLCAxCisJSU5UX0hBTkRMRVIgaG1pX2V4Y2VwdGlvbiwgMHhlNjAsIGhzcnI9RVhDX0hWLCBiaXRtYXNrPUlSUVNfRElTQUJMRUQsIGt2bT0xCiAKIEVYQ19DT01NT05fQkVHSU4oaG1pX2V4Y2VwdGlvbl9jb21tb24pCi0JRVhDRVBUSU9OX0NPTU1PTihQQUNBX0VYR0VOLCAweGU2MCkKKwlJTlRfQ09NTU9OIDB4ZTYwLCBQQUNBX0VYR0VOLCAxLCAxLCAxLCAwLCAwCiAJRklOSVNIX05BUAotCWJsCXNhdmVfbnZncHJzCi0JUkVDT05DSUxFX0lSUV9TVEFURShyMTAsIHIxMSkKIAlSVU5MQVRDSF9PTgorCWJsCXNhdmVfbnZncHJzCiAJYWRkaQlyMyxyMSxTVEFDS19GUkFNRV9PVkVSSEVBRAogCWJsCWhhbmRsZV9obWlfZXhjZXB0aW9uCiAJYglyZXRfZnJvbV9leGNlcHQKIAotRVhDX1JFQUxfT09MX01BU0tBQkxFX0hWKGhfZG9vcmJlbGwsIDB4ZTgwLCAweDIwLCBJUlFTX0RJU0FCTEVEKQotRVhDX1ZJUlRfT09MX01BU0tBQkxFX0hWKGhfZG9vcmJlbGwsIDB4NGU4MCwgMHgyMCwgMHhlODAsIElSUVNfRElTQUJMRUQpCi1UUkFNUF9LVk1fSFYoUEFDQV9FWEdFTiwgMHhlODApCisKK0VYQ19SRUFMX0JFR0lOKGhfZG9vcmJlbGwsIDB4ZTgwLCAweDIwKQorCUlOVF9IQU5ETEVSIGhfZG9vcmJlbGwsIDB4ZTgwLCBvb2w9MSwgaHNycj1FWENfSFYsIGJpdG1hc2s9SVJRU19ESVNBQkxFRCwga3ZtPTEKK0VYQ19SRUFMX0VORChoX2Rvb3JiZWxsLCAweGU4MCwgMHgyMCkKK0VYQ19WSVJUX0JFR0lOKGhfZG9vcmJlbGwsIDB4NGU4MCwgMHgyMCkKKwlJTlRfSEFORExFUiBoX2Rvb3JiZWxsLCAweGU4MCwgb29sPTEsIHZpcnQ9MSwgaHNycj1FWENfSFYsIGJpdG1hc2s9SVJRU19ESVNBQkxFRCwga3ZtPTEKK0VYQ19WSVJUX0VORChoX2Rvb3JiZWxsLCAweDRlODAsIDB4MjApCitJTlRfS1ZNX0hBTkRMRVIgaF9kb29yYmVsbCwgMHhlODAsIEVYQ19IViwgUEFDQV9FWEdFTiwgMAogI2lmZGVmIENPTkZJR19QUENfRE9PUkJFTEwKIEVYQ19DT01NT05fQVNZTkMoaF9kb29yYmVsbF9jb21tb24sIDB4ZTgwLCBkb29yYmVsbF9leGNlcHRpb24pCiAjZWxzZQpAQCAtMTc1OCw5ICsxNjM5LDEzIEBACiAjZW5kaWYKIAogCi1FWENfUkVBTF9PT0xfTUFTS0FCTEVfSFYoaF92aXJ0X2lycSwgMHhlYTAsIDB4MjAsIElSUVNfRElTQUJMRUQpCi1FWENfVklSVF9PT0xfTUFTS0FCTEVfSFYoaF92aXJ0X2lycSwgMHg0ZWEwLCAweDIwLCAweGVhMCwgSVJRU19ESVNBQkxFRCkKLVRSQU1QX0tWTV9IVihQQUNBX0VYR0VOLCAweGVhMCkKK0VYQ19SRUFMX0JFR0lOKGhfdmlydF9pcnEsIDB4ZWEwLCAweDIwKQorCUlOVF9IQU5ETEVSIGhfdmlydF9pcnEsIDB4ZWEwLCBvb2w9MSwgaHNycj1FWENfSFYsIGJpdG1hc2s9SVJRU19ESVNBQkxFRCwga3ZtPTEKK0VYQ19SRUFMX0VORChoX3ZpcnRfaXJxLCAweGVhMCwgMHgyMCkKK0VYQ19WSVJUX0JFR0lOKGhfdmlydF9pcnEsIDB4NGVhMCwgMHgyMCkKKwlJTlRfSEFORExFUiBoX3ZpcnRfaXJxLCAweGVhMCwgb29sPTEsIHZpcnQ9MSwgaHNycj1FWENfSFYsIGJpdG1hc2s9SVJRU19ESVNBQkxFRCwga3ZtPTEKK0VYQ19WSVJUX0VORChoX3ZpcnRfaXJxLCAweDRlYTAsIDB4MjApCitJTlRfS1ZNX0hBTkRMRVIgaF92aXJ0X2lycSwgMHhlYTAsIEVYQ19IViwgUEFDQV9FWEdFTiwgMAogRVhDX0NPTU1PTl9BU1lOQyhoX3ZpcnRfaXJxX2NvbW1vbiwgMHhlYTAsIGRvX0lSUSkKIAogCkBAIC0xNzcwLDE3ICsxNjU1LDI1IEBACiBFWENfVklSVF9OT05FKDB4NGVlMCwgMHgyMCkKIAogCi1FWENfUkVBTF9PT0xfTUFTS0FCTEUocGVyZm9ybWFuY2VfbW9uaXRvciwgMHhmMDAsIDB4MjAsIElSUVNfUE1JX0RJU0FCTEVEKQotRVhDX1ZJUlRfT09MX01BU0tBQkxFKHBlcmZvcm1hbmNlX21vbml0b3IsIDB4NGYwMCwgMHgyMCwgMHhmMDAsIElSUVNfUE1JX0RJU0FCTEVEKQotVFJBTVBfS1ZNKFBBQ0FfRVhHRU4sIDB4ZjAwKQorRVhDX1JFQUxfQkVHSU4ocGVyZm9ybWFuY2VfbW9uaXRvciwgMHhmMDAsIDB4MjApCisJSU5UX0hBTkRMRVIgcGVyZm9ybWFuY2VfbW9uaXRvciwgMHhmMDAsIG9vbD0xLCBiaXRtYXNrPUlSUVNfUE1JX0RJU0FCTEVELCBrdm09MQorRVhDX1JFQUxfRU5EKHBlcmZvcm1hbmNlX21vbml0b3IsIDB4ZjAwLCAweDIwKQorRVhDX1ZJUlRfQkVHSU4ocGVyZm9ybWFuY2VfbW9uaXRvciwgMHg0ZjAwLCAweDIwKQorCUlOVF9IQU5ETEVSIHBlcmZvcm1hbmNlX21vbml0b3IsIDB4ZjAwLCBvb2w9MSwgdmlydD0xLCBiaXRtYXNrPUlSUVNfUE1JX0RJU0FCTEVECitFWENfVklSVF9FTkQocGVyZm9ybWFuY2VfbW9uaXRvciwgMHg0ZjAwLCAweDIwKQorSU5UX0tWTV9IQU5ETEVSIHBlcmZvcm1hbmNlX21vbml0b3IsIDB4ZjAwLCBFWENfU1RELCBQQUNBX0VYR0VOLCAwCiBFWENfQ09NTU9OX0FTWU5DKHBlcmZvcm1hbmNlX21vbml0b3JfY29tbW9uLCAweGYwMCwgcGVyZm9ybWFuY2VfbW9uaXRvcl9leGNlcHRpb24pCiAKIAotRVhDX1JFQUxfT09MKGFsdGl2ZWNfdW5hdmFpbGFibGUsIDB4ZjIwLCAweDIwKQotRVhDX1ZJUlRfT09MKGFsdGl2ZWNfdW5hdmFpbGFibGUsIDB4NGYyMCwgMHgyMCwgMHhmMjApCi1UUkFNUF9LVk0oUEFDQV9FWEdFTiwgMHhmMjApCitFWENfUkVBTF9CRUdJTihhbHRpdmVjX3VuYXZhaWxhYmxlLCAweGYyMCwgMHgyMCkKKwlJTlRfSEFORExFUiBhbHRpdmVjX3VuYXZhaWxhYmxlLCAweGYyMCwgb29sPTEsIGt2bT0xCitFWENfUkVBTF9FTkQoYWx0aXZlY191bmF2YWlsYWJsZSwgMHhmMjAsIDB4MjApCitFWENfVklSVF9CRUdJTihhbHRpdmVjX3VuYXZhaWxhYmxlLCAweDRmMjAsIDB4MjApCisJSU5UX0hBTkRMRVIgYWx0aXZlY191bmF2YWlsYWJsZSwgMHhmMjAsIG9vbD0xLCB2aXJ0PTEKK0VYQ19WSVJUX0VORChhbHRpdmVjX3VuYXZhaWxhYmxlLCAweDRmMjAsIDB4MjApCitJTlRfS1ZNX0hBTkRMRVIgYWx0aXZlY191bmF2YWlsYWJsZSwgMHhmMjAsIEVYQ19TVEQsIFBBQ0FfRVhHRU4sIDAKIEVYQ19DT01NT05fQkVHSU4oYWx0aXZlY191bmF2YWlsYWJsZV9jb21tb24pCi0JRVhDRVBUSU9OX0NPTU1PTihQQUNBX0VYR0VOLCAweGYyMCkKKwlJTlRfQ09NTU9OIDB4ZjIwLCBQQUNBX0VYR0VOLCAxLCAxLCAwLCAwLCAwCiAjaWZkZWYgQ09ORklHX0FMVElWRUMKIEJFR0lOX0ZUUl9TRUNUSU9OCiAJYmVxCTFmCkBAIC0xODEzLDExICsxNzA2LDE1IEBACiAJYglyZXRfZnJvbV9leGNlcHQKIAogCi1FWENfUkVBTF9PT0wodnN4X3VuYXZhaWxhYmxlLCAweGY0MCwgMHgyMCkKLUVYQ19WSVJUX09PTCh2c3hfdW5hdmFpbGFibGUsIDB4NGY0MCwgMHgyMCwgMHhmNDApCi1UUkFNUF9LVk0oUEFDQV9FWEdFTiwgMHhmNDApCitFWENfUkVBTF9CRUdJTih2c3hfdW5hdmFpbGFibGUsIDB4ZjQwLCAweDIwKQorCUlOVF9IQU5ETEVSIHZzeF91bmF2YWlsYWJsZSwgMHhmNDAsIG9vbD0xLCBrdm09MQorRVhDX1JFQUxfRU5EKHZzeF91bmF2YWlsYWJsZSwgMHhmNDAsIDB4MjApCitFWENfVklSVF9CRUdJTih2c3hfdW5hdmFpbGFibGUsIDB4NGY0MCwgMHgyMCkKKwlJTlRfSEFORExFUiB2c3hfdW5hdmFpbGFibGUsIDB4ZjQwLCBvb2w9MSwgdmlydD0xCitFWENfVklSVF9FTkQodnN4X3VuYXZhaWxhYmxlLCAweDRmNDAsIDB4MjApCitJTlRfS1ZNX0hBTkRMRVIgdnN4X3VuYXZhaWxhYmxlLCAweGY0MCwgRVhDX1NURCwgUEFDQV9FWEdFTiwgMAogRVhDX0NPTU1PTl9CRUdJTih2c3hfdW5hdmFpbGFibGVfY29tbW9uKQotCUVYQ0VQVElPTl9DT01NT04oUEFDQV9FWEdFTiwgMHhmNDApCisJSU5UX0NPTU1PTiAweGY0MCwgUEFDQV9FWEdFTiwgMSwgMSwgMCwgMCwgMAogI2lmZGVmIENPTkZJR19WU1gKIEJFR0lOX0ZUUl9TRUNUSU9OCiAJYmVxCTFmCkBAIC0xODQ5LDE1ICsxNzQ2LDIzIEBACiAJYglyZXRfZnJvbV9leGNlcHQKIAogCi1FWENfUkVBTF9PT0woZmFjaWxpdHlfdW5hdmFpbGFibGUsIDB4ZjYwLCAweDIwKQotRVhDX1ZJUlRfT09MKGZhY2lsaXR5X3VuYXZhaWxhYmxlLCAweDRmNjAsIDB4MjAsIDB4ZjYwKQotVFJBTVBfS1ZNKFBBQ0FfRVhHRU4sIDB4ZjYwKQorRVhDX1JFQUxfQkVHSU4oZmFjaWxpdHlfdW5hdmFpbGFibGUsIDB4ZjYwLCAweDIwKQorCUlOVF9IQU5ETEVSIGZhY2lsaXR5X3VuYXZhaWxhYmxlLCAweGY2MCwgb29sPTEsIGt2bT0xCitFWENfUkVBTF9FTkQoZmFjaWxpdHlfdW5hdmFpbGFibGUsIDB4ZjYwLCAweDIwKQorRVhDX1ZJUlRfQkVHSU4oZmFjaWxpdHlfdW5hdmFpbGFibGUsIDB4NGY2MCwgMHgyMCkKKwlJTlRfSEFORExFUiBmYWNpbGl0eV91bmF2YWlsYWJsZSwgMHhmNjAsIG9vbD0xLCB2aXJ0PTEKK0VYQ19WSVJUX0VORChmYWNpbGl0eV91bmF2YWlsYWJsZSwgMHg0ZjYwLCAweDIwKQorSU5UX0tWTV9IQU5ETEVSIGZhY2lsaXR5X3VuYXZhaWxhYmxlLCAweGY2MCwgRVhDX1NURCwgUEFDQV9FWEdFTiwgMAogRVhDX0NPTU1PTihmYWNpbGl0eV91bmF2YWlsYWJsZV9jb21tb24sIDB4ZjYwLCBmYWNpbGl0eV91bmF2YWlsYWJsZV9leGNlcHRpb24pCiAKIAotRVhDX1JFQUxfT09MX0hWKGhfZmFjaWxpdHlfdW5hdmFpbGFibGUsIDB4ZjgwLCAweDIwKQotRVhDX1ZJUlRfT09MX0hWKGhfZmFjaWxpdHlfdW5hdmFpbGFibGUsIDB4NGY4MCwgMHgyMCwgMHhmODApCi1UUkFNUF9LVk1fSFYoUEFDQV9FWEdFTiwgMHhmODApCitFWENfUkVBTF9CRUdJTihoX2ZhY2lsaXR5X3VuYXZhaWxhYmxlLCAweGY4MCwgMHgyMCkKKwlJTlRfSEFORExFUiBoX2ZhY2lsaXR5X3VuYXZhaWxhYmxlLCAweGY4MCwgb29sPTEsIGhzcnI9RVhDX0hWLCBrdm09MQorRVhDX1JFQUxfRU5EKGhfZmFjaWxpdHlfdW5hdmFpbGFibGUsIDB4ZjgwLCAweDIwKQorRVhDX1ZJUlRfQkVHSU4oaF9mYWNpbGl0eV91bmF2YWlsYWJsZSwgMHg0ZjgwLCAweDIwKQorCUlOVF9IQU5ETEVSIGhfZmFjaWxpdHlfdW5hdmFpbGFibGUsIDB4ZjgwLCBvb2w9MSwgdmlydD0xLCBoc3JyPUVYQ19IViwga3ZtPTEKK0VYQ19WSVJUX0VORChoX2ZhY2lsaXR5X3VuYXZhaWxhYmxlLCAweDRmODAsIDB4MjApCitJTlRfS1ZNX0hBTkRMRVIgaF9mYWNpbGl0eV91bmF2YWlsYWJsZSwgMHhmODAsIEVYQ19IViwgUEFDQV9FWEdFTiwgMAogRVhDX0NPTU1PTihoX2ZhY2lsaXR5X3VuYXZhaWxhYmxlX2NvbW1vbiwgMHhmODAsIGZhY2lsaXR5X3VuYXZhaWxhYmxlX2V4Y2VwdGlvbikKIAogCkBAIC0xODc0LDkgKzE3NzksMTEgQEAKIEVYQ19WSVJUX05PTkUoMHg1MTAwLCAweDEwMCkKIAogI2lmZGVmIENPTkZJR19DQkVfUkFTCi1FWENfUkVBTF9IVihjYmVfc3lzdGVtX2Vycm9yLCAweDEyMDAsIDB4MTAwKQorRVhDX1JFQUxfQkVHSU4oY2JlX3N5c3RlbV9lcnJvciwgMHgxMjAwLCAweDEwMCkKKwlJTlRfSEFORExFUiBjYmVfc3lzdGVtX2Vycm9yLCAweDEyMDAsIG9vbD0xLCBoc3JyPUVYQ19IViwga3ZtPTEKK0VYQ19SRUFMX0VORChjYmVfc3lzdGVtX2Vycm9yLCAweDEyMDAsIDB4MTAwKQogRVhDX1ZJUlRfTk9ORSgweDUyMDAsIDB4MTAwKQotVFJBTVBfS1ZNX0hWX1NLSVAoUEFDQV9FWEdFTiwgMHgxMjAwKQorSU5UX0tWTV9IQU5ETEVSIGNiZV9zeXN0ZW1fZXJyb3IsIDB4MTIwMCwgRVhDX0hWLCBQQUNBX0VYR0VOLCAxCiBFWENfQ09NTU9OKGNiZV9zeXN0ZW1fZXJyb3JfY29tbW9uLCAweDEyMDAsIGNiZV9zeXN0ZW1fZXJyb3JfZXhjZXB0aW9uKQogI2Vsc2UgLyogQ09ORklHX0NCRV9SQVMgKi8KIEVYQ19SRUFMX05PTkUoMHgxMjAwLCAweDEwMCkKQEAgLTE4ODQsMzcgKzE3OTEsNDMgQEAKICNlbmRpZgogCiAKLUVYQ19SRUFMKGluc3RydWN0aW9uX2JyZWFrcG9pbnQsIDB4MTMwMCwgMHgxMDApCi1FWENfVklSVChpbnN0cnVjdGlvbl9icmVha3BvaW50LCAweDUzMDAsIDB4MTAwLCAweDEzMDApCi1UUkFNUF9LVk1fU0tJUChQQUNBX0VYR0VOLCAweDEzMDApCitFWENfUkVBTF9CRUdJTihpbnN0cnVjdGlvbl9icmVha3BvaW50LCAweDEzMDAsIDB4MTAwKQorCUlOVF9IQU5ETEVSIGluc3RydWN0aW9uX2JyZWFrcG9pbnQsIDB4MTMwMCwga3ZtPTEKK0VYQ19SRUFMX0VORChpbnN0cnVjdGlvbl9icmVha3BvaW50LCAweDEzMDAsIDB4MTAwKQorRVhDX1ZJUlRfQkVHSU4oaW5zdHJ1Y3Rpb25fYnJlYWtwb2ludCwgMHg1MzAwLCAweDEwMCkKKwlJTlRfSEFORExFUiBpbnN0cnVjdGlvbl9icmVha3BvaW50LCAweDEzMDAsIHZpcnQ9MQorRVhDX1ZJUlRfRU5EKGluc3RydWN0aW9uX2JyZWFrcG9pbnQsIDB4NTMwMCwgMHgxMDApCitJTlRfS1ZNX0hBTkRMRVIgaW5zdHJ1Y3Rpb25fYnJlYWtwb2ludCwgMHgxMzAwLCBFWENfU1RELCBQQUNBX0VYR0VOLCAxCiBFWENfQ09NTU9OKGluc3RydWN0aW9uX2JyZWFrcG9pbnRfY29tbW9uLCAweDEzMDAsIGluc3RydWN0aW9uX2JyZWFrcG9pbnRfZXhjZXB0aW9uKQogCisKIEVYQ19SRUFMX05PTkUoMHgxNDAwLCAweDEwMCkKIEVYQ19WSVJUX05PTkUoMHg1NDAwLCAweDEwMCkKIAogRVhDX1JFQUxfQkVHSU4oZGVub3JtX2V4Y2VwdGlvbl9odiwgMHgxNTAwLCAweDEwMCkKLQlFWENFUFRJT05fUFJPTE9HXzAgUEFDQV9FWEdFTgotCUVYQ0VQVElPTl9QUk9MT0dfMSBFWENfSFYsIFBBQ0FfRVhHRU4sIDAsIDB4MTUwMCwgMCwgMCwgMAotCisJSU5UX0hBTkRMRVIgZGVub3JtX2V4Y2VwdGlvbl9odiwgMHgxNTAwLCBlYXJseT0yLCBoc3JyPUVYQ19IVgogI2lmZGVmIENPTkZJR19QUENfREVOT1JNQUxJU0FUSU9OCiAJbWZzcHIJcjEwLFNQUk5fSFNSUjEKIAlhbmRpcy4JcjEwLHIxMCwoSFNSUjFfREVOT1JNKUBoIC8qIGRlbm9ybT8gKi8KIAlibmUrCWRlbm9ybV9hc3Npc3QKICNlbmRpZgotCi0JS1ZNVEVTVCBFWENfSFYgMHgxNTAwCi0JRVhDRVBUSU9OX1BST0xPR18yX1JFQUwgZGVub3JtX2NvbW1vbiwgRVhDX0hWLCAxCisJS1ZNVEVTVCBkZW5vcm1fZXhjZXB0aW9uX2h2LCBFWENfSFYgMHgxNTAwCisJSU5UX1NBVkVfU1JSX0FORF9KVU1QIGRlbm9ybV9jb21tb24sIEVYQ19IViwgMQogRVhDX1JFQUxfRU5EKGRlbm9ybV9leGNlcHRpb25faHYsIDB4MTUwMCwgMHgxMDApCiAKICNpZmRlZiBDT05GSUdfUFBDX0RFTk9STUFMSVNBVElPTgogRVhDX1ZJUlRfQkVHSU4oZGVub3JtX2V4Y2VwdGlvbiwgMHg1NTAwLCAweDEwMCkKLQliCWV4Y19yZWFsXzB4MTUwMF9kZW5vcm1fZXhjZXB0aW9uX2h2CisJSU5UX0hBTkRMRVIgZGVub3JtX2V4Y2VwdGlvbiwgMHgxNTAwLCAwLCAyLCAxLCBFWENfSFYsIFBBQ0FfRVhHRU4sIDEsIDAsIDAsIDAsIDAKKwltZnNwcglyMTAsU1BSTl9IU1JSMQorCWFuZGlzLglyMTAscjEwLChIU1JSMV9ERU5PUk0pQGggLyogZGVub3JtPyAqLworCWJuZSsJZGVub3JtX2Fzc2lzdAorCUlOVF9WSVJUX1NBVkVfU1JSX0FORF9KVU1QIGRlbm9ybV9jb21tb24sIEVYQ19IVgogRVhDX1ZJUlRfRU5EKGRlbm9ybV9leGNlcHRpb24sIDB4NTUwMCwgMHgxMDApCiAjZWxzZQogRVhDX1ZJUlRfTk9ORSgweDU1MDAsIDB4MTAwKQogI2VuZGlmCiAKLVRSQU1QX0tWTV9IVihQQUNBX0VYR0VOLCAweDE1MDApCitJTlRfS1ZNX0hBTkRMRVIgZGVub3JtX2V4Y2VwdGlvbl9odiwgMHgxNTAwLCBFWENfSFYsIFBBQ0FfRVhHRU4sIDAKIAogI2lmZGVmIENPTkZJR19QUENfREVOT1JNQUxJU0FUSU9OCiBUUkFNUF9SRUFMX0JFR0lOKGRlbm9ybV9hc3Npc3QpCkBAIC0xOTg5LDkgKzE5MDIsMTEgQEAKIAogCiAjaWZkZWYgQ09ORklHX0NCRV9SQVMKLUVYQ19SRUFMX0hWKGNiZV9tYWludGVuYW5jZSwgMHgxNjAwLCAweDEwMCkKK0VYQ19SRUFMX0JFR0lOKGNiZV9tYWludGVuYW5jZSwgMHgxNjAwLCAweDEwMCkKKwlJTlRfSEFORExFUiBjYmVfbWFpbnRlbmFuY2UsIDB4MTYwMCwgb29sPTEsIGhzcnI9RVhDX0hWLCBrdm09MQorRVhDX1JFQUxfRU5EKGNiZV9tYWludGVuYW5jZSwgMHgxNjAwLCAweDEwMCkKIEVYQ19WSVJUX05PTkUoMHg1NjAwLCAweDEwMCkKLVRSQU1QX0tWTV9IVl9TS0lQKFBBQ0FfRVhHRU4sIDB4MTYwMCkKK0lOVF9LVk1fSEFORExFUiBjYmVfbWFpbnRlbmFuY2UsIDB4MTYwMCwgRVhDX0hWLCBQQUNBX0VYR0VOLCAxCiBFWENfQ09NTU9OKGNiZV9tYWludGVuYW5jZV9jb21tb24sIDB4MTYwMCwgY2JlX21haW50ZW5hbmNlX2V4Y2VwdGlvbikKICNlbHNlIC8qIENPTkZJR19DQkVfUkFTICovCiBFWENfUkVBTF9OT05FKDB4MTYwMCwgMHgxMDApCkBAIC0xOTk5LDkgKzE5MTQsMTMgQEAKICNlbmRpZgogCiAKLUVYQ19SRUFMKGFsdGl2ZWNfYXNzaXN0LCAweDE3MDAsIDB4MTAwKQotRVhDX1ZJUlQoYWx0aXZlY19hc3Npc3QsIDB4NTcwMCwgMHgxMDAsIDB4MTcwMCkKLVRSQU1QX0tWTShQQUNBX0VYR0VOLCAweDE3MDApCitFWENfUkVBTF9CRUdJTihhbHRpdmVjX2Fzc2lzdCwgMHgxNzAwLCAweDEwMCkKKwlJTlRfSEFORExFUiBhbHRpdmVjX2Fzc2lzdCwgMHgxNzAwLCBrdm09MQorRVhDX1JFQUxfRU5EKGFsdGl2ZWNfYXNzaXN0LCAweDE3MDAsIDB4MTAwKQorRVhDX1ZJUlRfQkVHSU4oYWx0aXZlY19hc3Npc3QsIDB4NTcwMCwgMHgxMDApCisJSU5UX0hBTkRMRVIgYWx0aXZlY19hc3Npc3QsIDB4MTcwMCwgdmlydD0xCitFWENfVklSVF9FTkQoYWx0aXZlY19hc3Npc3QsIDB4NTcwMCwgMHgxMDApCitJTlRfS1ZNX0hBTkRMRVIgYWx0aXZlY19hc3Npc3QsIDB4MTcwMCwgRVhDX1NURCwgUEFDQV9FWEdFTiwgMAogI2lmZGVmIENPTkZJR19BTFRJVkVDCiBFWENfQ09NTU9OKGFsdGl2ZWNfYXNzaXN0X2NvbW1vbiwgMHgxNzAwLCBhbHRpdmVjX2Fzc2lzdF9leGNlcHRpb24pCiAjZWxzZQpAQCAtMjAxMCwxNSArMTkyOSwxOCBAQAogCiAKICNpZmRlZiBDT05GSUdfQ0JFX1JBUwotRVhDX1JFQUxfSFYoY2JlX3RoZXJtYWwsIDB4MTgwMCwgMHgxMDApCitFWENfUkVBTF9CRUdJTihjYmVfdGhlcm1hbCwgMHgxODAwLCAweDEwMCkKKwlJTlRfSEFORExFUiBjYmVfdGhlcm1hbCwgMHgxODAwLCBvb2w9MSwgaHNycj1FWENfSFYsIGt2bT0xCitFWENfUkVBTF9FTkQoY2JlX3RoZXJtYWwsIDB4MTgwMCwgMHgxMDApCiBFWENfVklSVF9OT05FKDB4NTgwMCwgMHgxMDApCi1UUkFNUF9LVk1fSFZfU0tJUChQQUNBX0VYR0VOLCAweDE4MDApCitJTlRfS1ZNX0hBTkRMRVIgY2JlX3RoZXJtYWwsIDB4MTgwMCwgRVhDX0hWLCBQQUNBX0VYR0VOLCAxCiBFWENfQ09NTU9OKGNiZV90aGVybWFsX2NvbW1vbiwgMHgxODAwLCBjYmVfdGhlcm1hbF9leGNlcHRpb24pCiAjZWxzZSAvKiBDT05GSUdfQ0JFX1JBUyAqLwogRVhDX1JFQUxfTk9ORSgweDE4MDAsIDB4MTAwKQogRVhDX1ZJUlRfTk9ORSgweDU4MDAsIDB4MTAwKQogI2VuZGlmCiAKKwogI2lmZGVmIENPTkZJR19QUENfV0FUQ0hET0cKIAogI2RlZmluZSBNQVNLRURfREVDX0hBTkRMRVJfTEFCRUwgM2YKQEAgLTIwMjgsNyArMTk1MCw3IEBACiAJc3RkCXIxMixQQUNBX0VYR0VOK0VYX1IxMihyMTMpOwkJXAogCUdFVF9TQ1JBVENIMChyMTApOwkJCQlcCiAJc3RkCXIxMCxQQUNBX0VYR0VOK0VYX1IxMyhyMTMpOwkJXAotCUVYQ0VQVElPTl9QUk9MT0dfMl9SRUFMIHNvZnRfbm1pX2NvbW1vbiwgX0gsIDEKKwlJTlRfU0FWRV9TUlJfQU5EX0pVTVAgc29mdF9ubWlfY29tbW9uLCBfSCwgMQogCiAvKgogICogQnJhbmNoIHRvIHNvZnRfbm1pX2ludGVycnVwdCB1c2luZyB0aGUgZW1lcmdlbmN5IHN0YWNrLiBUaGUgZW1lcmdlbmN5CkBAIC0yMDQzLDkgKzE5NjUsOCBAQAogCW1yCXIxMCxyMQogCWxkCXIxLFBBQ0FFTUVSR1NQKHIxMykKIAlzdWJpCXIxLHIxLElOVF9GUkFNRV9TSVpFCi0JRVhDRVBUSU9OX0NPTU1PTl9TVEFDSyhQQUNBX0VYR0VOLCAweDkwMCkKKwlJTlRfQ09NTU9OIDB4OTAwLCBQQUNBX0VYR0VOLCAwLCAxLCAxLCAwLCAwCiAJYmwJc2F2ZV9udmdwcnMKLQlSRUNPTkNJTEVfSVJRX1NUQVRFKHIxMCwgcjExKQogCWFkZGkJcjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQKIAlibAlzb2Z0X25taV9pbnRlcnJ1cHQKIAliCXJldF9mcm9tX2V4Y2VwdApAQCAtMjMwMiw2ICsyMjIzLDM1IEBACiAKIFVTRV9URVhUX1NFQ1RJT04oKQogCisvKiBNU1JbUkldIHNob3VsZCBiZSBjbGVhciBiZWNhdXNlIHRoaXMgdXNlcyBTUlJbMDFdICovCitlbmFibGVfbWFjaGluZV9jaGVjazoKKwltZmxyCXIwCisJYmNsCTIwLDMxLCQrNAorMDoJbWZscglyMworCWFkZGkJcjMscjMsKDFmIC0gMGIpCisJbXRzcHIJU1BSTl9TUlIwLHIzCisJbWZtc3IJcjMKKwlvcmkJcjMscjMsTVNSX01FCisJbXRzcHIJU1BSTl9TUlIxLHIzCisJUkZJX1RPX0tFUk5FTAorMToJbXRscglyMAorCWJscgorCisvKiBNU1JbUkldIHNob3VsZCBiZSBjbGVhciBiZWNhdXNlIHRoaXMgdXNlcyBTUlJbMDFdICovCitkaXNhYmxlX21hY2hpbmVfY2hlY2s6CisJbWZscglyMAorCWJjbAkyMCwzMSwkKzQKKzA6CW1mbHIJcjMKKwlhZGRpCXIzLHIzLCgxZiAtIDBiKQorCW10c3ByCVNQUk5fU1JSMCxyMworCW1mbXNyCXIzCisJbGkJcjQsTVNSX01FCisJYW5kYwlyMyxyMyxyNAorCW10c3ByCVNQUk5fU1JSMSxyMworCVJGSV9UT19LRVJORUwKKzE6CW10bHIJcjAKKwlibHIKKwogLyoKICAqIEhhc2ggdGFibGUgc3R1ZmYKICAqLwpAQCAtMjMxMCw3ICsyMjYwLDcgQEAKICNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAogCWxpcwlyMCwoRFNJU1JfQkFEX0ZBVUxUXzY0UyB8IERTSVNSX0RBQlJNQVRDSCB8IERTSVNSX0tFWUZBVUxUKUBoCiAJb3JpCXIwLHIwLERTSVNSX0JBRF9GQVVMVF82NFNAbAotCWFuZC4JcjAscjQscjAJCS8qIHdlaXJkIGVycm9yPyAqLworCWFuZC4JcjAscjUscjAJCS8qIHdlaXJkIGVycm9yPyAqLwogCWJuZS0JaGFuZGxlX3BhZ2VfZmF1bHQJLyogaWYgbm90LCB0cnkgdG8gaW5zZXJ0IGEgSFBURSAqLwogCWxkCXIxMSwgUEFDQV9USFJFQURfSU5GTyhyMTMpCiAJbHd6CXIwLFRJX1BSRUVNUFQocjExKQkvKiBJZiB3ZSdyZSBpbiBhbiAiTk1JIiAqLwpAQCAtMjMxOCwxNSArMjI2OCwxMyBAQAogCWJuZQk3N2YJCQkvKiB0aGVuIGRvbid0IGNhbGwgaGFzaF9wYWdlIG5vdyAqLwogCiAJLyoKLQkgKiByMyBjb250YWlucyB0aGUgZmF1bHRpbmcgYWRkcmVzcwotCSAqIHI0IG1zcgotCSAqIHI1IGNvbnRhaW5zIHRoZSB0cmFwIG51bWJlcgotCSAqIHI2IGNvbnRhaW5zIGRzaXNyCisJICogcjMgY29udGFpbnMgdGhlIHRyYXAgbnVtYmVyCisJICogcjQgY29udGFpbnMgdGhlIGZhdWx0aW5nIGFkZHJlc3MKKwkgKiByNSBjb250YWlucyBkc2lzcgorCSAqIHI2IG1zcgogCSAqCiAJICogYXQgcmV0dXJuIHIzID0gMCBmb3Igc3VjY2VzcywgMSBmb3IgcGFnZSBmYXVsdCwgbmVnYXRpdmUgZm9yIGVycm9yCiAJICovCi0gICAgICAgIG1yIAlyNCxyMTIKLQlsZCAgICAgIHI2LF9EU0lTUihyMSkKIAlibAlfX2hhc2hfcGFnZQkJLyogYnVpbGQgSFBURSBpZiBwb3NzaWJsZSAqLwogICAgICAgICBjbXBkaQlyMywwCQkJLyogc2VlIGlmIF9faGFzaF9wYWdlIHN1Y2NlZWRlZCAqLwogCkBAIC0yMzM2LDE2ICsyMjg0LDE1IEBACiAJLyogRXJyb3IgKi8KIAlibHQtCTEzZgogCi0JLyogUmVsb2FkIERTSVNSIGludG8gcjQgZm9yIHRoZSBEQUJSIGNoZWNrIGJlbG93ICovCi0JbGQgICAgICByNCxfRFNJU1IocjEpCisJLyogUmVsb2FkIERBUi9EU0lTUiBpbnRvIHI0L3I1IGZvciB0aGUgREFCUiBjaGVjayBiZWxvdyAqLworCWxkCXI0LF9EQVIocjEpCisJbGQgICAgICByNSxfRFNJU1IocjEpCiAjZW5kaWYgLyogQ09ORklHX1BQQ19CT09LM1NfNjQgKi8KIAogLyogSGVyZSB3ZSBoYXZlIGEgcGFnZSBmYXVsdCB0aGF0IGhhc2hfcGFnZSBjYW4ndCBoYW5kbGUuICovCiBoYW5kbGVfcGFnZV9mYXVsdDoKLTExOglhbmRpcy4gIHIwLHI0LERTSVNSX0RBQlJNQVRDSEBoCisxMToJYW5kaXMuICByMCxyNSxEU0lTUl9EQUJSTUFUQ0hAaAogCWJuZS0gICAgaGFuZGxlX2RhYnJfZmF1bHQKLQlsZAlyNCxfREFSKHIxKQotCWxkCXI1LF9EU0lTUihyMSkKIAlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFECiAJYmwJZG9fcGFnZV9mYXVsdAogCWNtcGRpCXIzLDAKQEAgLTIzNTMsNyArMjMwMCw3IEBACiAJYmwJc2F2ZV9udmdwcnMKIAltcglyNSxyMwogCWFkZGkJcjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQKLQlsd3oJcjQsX0RBUihyMSkKKwlsZAlyNCxfREFSKHIxKQogCWJsCWJhZF9wYWdlX2ZhdWx0CiAJYglyZXRfZnJvbV9leGNlcHQKIApAQCAtMjM5Miw3ICsyMzM5LDYgQEAKICAqIHRoZSBhY2Nlc3MsIG9yIHBhbmljIGlmIHRoZXJlIGlzbid0IGEgaGFuZGxlci4KICAqLwogNzc6CWJsCXNhdmVfbnZncHJzCi0JbXIJcjQscjMKIAlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFECiAJbGkJcjUsU0lHU0VHVgogCWJsCWJhZF9wYWdlX2ZhdWx0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2ZhZHVtcC5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9mYWR1bXAuYwppbmRleCA0ZWFiOTcyLi5lZDU5ODU1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2ZhZHVtcC5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZmFkdW1wLmMKQEAgLTI4LDI0ICsyOCwyMiBAQAogI2luY2x1ZGUgPGFzbS9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDxhc20vcHJvbS5oPgotI2luY2x1ZGUgPGFzbS9ydGFzLmg+CiAjaW5jbHVkZSA8YXNtL2ZhZHVtcC5oPgorI2luY2x1ZGUgPGFzbS9mYWR1bXAtaW50ZXJuYWwuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAogc3RhdGljIHN0cnVjdCBmd19kdW1wIGZ3X2R1bXA7Ci1zdGF0aWMgc3RydWN0IGZhZHVtcF9tZW1fc3RydWN0IGZkbTsKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmFkdW1wX21lbV9zdHJ1Y3QgKmZkbV9hY3RpdmU7CisKK3N0YXRpYyB2b2lkIF9faW5pdCBmYWR1bXBfcmVzZXJ2ZV9jcmFzaF9hcmVhKHU2NCBiYXNlKTsKKworI2lmbmRlZiBDT05GSUdfUFJFU0VSVkVfRkFfRFVNUAorc3RhdGljIERFRklORV9NVVRFWChmYWR1bXBfbXV0ZXgpOworc3RydWN0IGZhZHVtcF9tcmFuZ2VfaW5mbyBjcmFzaF9tcmFuZ2VfaW5mbyA9IHsgImNyYXNoIiwgTlVMTCwgMCwgMCwgMCB9Oworc3RydWN0IGZhZHVtcF9tcmFuZ2VfaW5mbyByZXNlcnZlZF9tcmFuZ2VfaW5mbyA9IHsgInJlc2VydmVkIiwgTlVMTCwgMCwgMCwgMCB9OworCiAjaWZkZWYgQ09ORklHX0NNQQogc3RhdGljIHN0cnVjdCBjbWEgKmZhZHVtcF9jbWE7Ci0jZW5kaWYKIAotc3RhdGljIERFRklORV9NVVRFWChmYWR1bXBfbXV0ZXgpOwotc3RydWN0IGZhZF9jcmFzaF9tZW1vcnlfcmFuZ2VzICpjcmFzaF9tZW1vcnlfcmFuZ2VzOwotaW50IGNyYXNoX21lbW9yeV9yYW5nZXNfc2l6ZTsKLWludCBjcmFzaF9tZW1fcmFuZ2VzOwotaW50IG1heF9jcmFzaF9tZW1fcmFuZ2VzOwotCi0jaWZkZWYgQ09ORklHX0NNQQogLyoKICAqIGZhZHVtcF9jbWFfaW5pdCgpIC0gSW5pdGlhbGl6ZSBDTUEgYXJlYSBmcm9tIGEgZmFkdW1wIHJlc2VydmVkIG1lbW9yeQogICoKQEAgLTEwNyw4NCArMTA1LDQ1IEBAIHN0YXRpYyBpbnQgX19pbml0IGZhZHVtcF9jbWFfaW5pdCh2b2lkKSB7IHJldHVybiAxOyB9CiAjZW5kaWYgLyogQ09ORklHX0NNQSAqLwogCiAvKiBTY2FuIHRoZSBGaXJtd2FyZSBBc3Npc3RlZCBkdW1wIGNvbmZpZ3VyYXRpb24gZGV0YWlscy4gKi8KLWludCBfX2luaXQgZWFybHlfaW5pdF9kdF9zY2FuX2Z3X2R1bXAodW5zaWduZWQgbG9uZyBub2RlLAotCQkJY29uc3QgY2hhciAqdW5hbWUsIGludCBkZXB0aCwgdm9pZCAqZGF0YSkKK2ludCBfX2luaXQgZWFybHlfaW5pdF9kdF9zY2FuX2Z3X2R1bXAodW5zaWduZWQgbG9uZyBub2RlLCBjb25zdCBjaGFyICp1bmFtZSwKKwkJCQkgICAgICBpbnQgZGVwdGgsIHZvaWQgKmRhdGEpCiB7Ci0JY29uc3QgX19iZTMyICpzZWN0aW9uczsKLQlpbnQgaSwgbnVtX3NlY3Rpb25zOwotCWludCBzaXplOwotCWNvbnN0IF9fYmUzMiAqdG9rZW47Ci0KLQlpZiAoZGVwdGggIT0gMSB8fCBzdHJjbXAodW5hbWUsICJydGFzIikgIT0gMCkKKwlpZiAoZGVwdGggIT0gMSkKIAkJcmV0dXJuIDA7CiAKLQkvKgotCSAqIENoZWNrIGlmIEZpcm13YXJlIEFzc2lzdGVkIGR1bXAgaXMgc3VwcG9ydGVkLiBpZiB5ZXMsIGNoZWNrCi0JICogaWYgZHVtcCBoYXMgYmVlbiBpbml0aWF0ZWQgb24gbGFzdCByZWJvb3QuCi0JICovCi0JdG9rZW4gPSBvZl9nZXRfZmxhdF9kdF9wcm9wKG5vZGUsICJpYm0sY29uZmlndXJlLWtlcm5lbC1kdW1wIiwgTlVMTCk7Ci0JaWYgKCF0b2tlbikKKwlpZiAoc3RyY21wKHVuYW1lLCAicnRhcyIpID09IDApIHsKKwkJcnRhc19mYWR1bXBfZHRfc2NhbigmZndfZHVtcCwgbm9kZSk7CiAJCXJldHVybiAxOwotCi0JZndfZHVtcC5mYWR1bXBfc3VwcG9ydGVkID0gMTsKLQlmd19kdW1wLmlibV9jb25maWd1cmVfa2VybmVsX2R1bXAgPSBiZTMyX3RvX2NwdSgqdG9rZW4pOwotCi0JLyoKLQkgKiBUaGUgJ2libSxrZXJuZWwtZHVtcCcgcnRhcyBub2RlIGlzIHByZXNlbnQgb25seSBpZiB0aGVyZSBpcwotCSAqIGR1bXAgZGF0YSB3YWl0aW5nIGZvciB1cy4KLQkgKi8KLQlmZG1fYWN0aXZlID0gb2ZfZ2V0X2ZsYXRfZHRfcHJvcChub2RlLCAiaWJtLGtlcm5lbC1kdW1wIiwgTlVMTCk7Ci0JaWYgKGZkbV9hY3RpdmUpCi0JCWZ3X2R1bXAuZHVtcF9hY3RpdmUgPSAxOwotCi0JLyogR2V0IHRoZSBzaXplcyByZXF1aXJlZCB0byBzdG9yZSBkdW1wIGRhdGEgZm9yIHRoZSBmaXJtd2FyZSBwcm92aWRlZAotCSAqIGR1bXAgc2VjdGlvbnMuCi0JICogRm9yIGVhY2ggZHVtcCBzZWN0aW9uIHR5cGUgc3VwcG9ydGVkLCBhIDMyYml0IGNlbGwgd2hpY2ggZGVmaW5lcwotCSAqIHRoZSBJRCBvZiBhIHN1cHBvcnRlZCBzZWN0aW9uIGZvbGxvd2VkIGJ5IHR3byAzMiBiaXQgY2VsbHMgd2hpY2gKLQkgKiBnaXZlcyB0ZWggc2l6ZSBvZiB0aGUgc2VjdGlvbiBpbiBieXRlcy4KLQkgKi8KLQlzZWN0aW9ucyA9IG9mX2dldF9mbGF0X2R0X3Byb3Aobm9kZSwgImlibSxjb25maWd1cmUta2VybmVsLWR1bXAtc2l6ZXMiLAotCQkJCQkmc2l6ZSk7Ci0KLQlpZiAoIXNlY3Rpb25zKQotCQlyZXR1cm4gMTsKLQotCW51bV9zZWN0aW9ucyA9IHNpemUgLyAoMyAqIHNpemVvZih1MzIpKTsKLQotCWZvciAoaSA9IDA7IGkgPCBudW1fc2VjdGlvbnM7IGkrKywgc2VjdGlvbnMgKz0gMykgewotCQl1MzIgdHlwZSA9ICh1MzIpb2ZfcmVhZF9udW1iZXIoc2VjdGlvbnMsIDEpOwotCi0JCXN3aXRjaCAodHlwZSkgewotCQljYXNlIEZBRFVNUF9DUFVfU1RBVEVfREFUQToKLQkJCWZ3X2R1bXAuY3B1X3N0YXRlX2RhdGFfc2l6ZSA9Ci0JCQkJCW9mX3JlYWRfdWxvbmcoJnNlY3Rpb25zWzFdLCAyKTsKLQkJCWJyZWFrOwotCQljYXNlIEZBRFVNUF9IUFRFX1JFR0lPTjoKLQkJCWZ3X2R1bXAuaHB0ZV9yZWdpb25fc2l6ZSA9Ci0JCQkJCW9mX3JlYWRfdWxvbmcoJnNlY3Rpb25zWzFdLCAyKTsKLQkJCWJyZWFrOwotCQl9CiAJfQogCi0JcmV0dXJuIDE7CisJaWYgKHN0cmNtcCh1bmFtZSwgImlibSxvcGFsIikgPT0gMCkgeworCQlvcGFsX2ZhZHVtcF9kdF9zY2FuKCZmd19kdW1wLCBub2RlKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7CiB9CiAKIC8qCiAgKiBJZiBmYWR1bXAgaXMgcmVnaXN0ZXJlZCwgY2hlY2sgaWYgdGhlIG1lbW9yeSBwcm92aWRlZAogICogZmFsbHMgd2l0aGluIGJvb3QgbWVtb3J5IGFyZWEgYW5kIHJlc2VydmVkIG1lbW9yeSBhcmVhLgogICovCi1pbnQgaXNfZmFkdW1wX21lbW9yeV9hcmVhKHU2NCBhZGRyLCB1bG9uZyBzaXplKQoraW50IGlzX2ZhZHVtcF9tZW1vcnlfYXJlYSh1NjQgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQogewotCXU2NCBkX3N0YXJ0ID0gZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zdGFydDsKLQl1NjQgZF9lbmQgPSBkX3N0YXJ0ICsgZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zaXplOworCXU2NCBkX3N0YXJ0LCBkX2VuZDsKIAogCWlmICghZndfZHVtcC5kdW1wX3JlZ2lzdGVyZWQpCiAJCXJldHVybiAwOwogCisJaWYgKCFzaXplKQorCQlyZXR1cm4gMDsKKworCWRfc3RhcnQgPSBmd19kdW1wLnJlc2VydmVfZHVtcF9hcmVhX3N0YXJ0OworCWRfZW5kID0gZF9zdGFydCArIGZ3X2R1bXAucmVzZXJ2ZV9kdW1wX2FyZWFfc2l6ZTsKIAlpZiAoKChhZGRyICsgc2l6ZSkgPiBkX3N0YXJ0KSAmJiAoYWRkciA8PSBkX2VuZCkpCiAJCXJldHVybiAxOwogCi0JcmV0dXJuIChhZGRyICsgc2l6ZSkgPiBSTUFfU1RBUlQgJiYgYWRkciA8PSBmd19kdW1wLmJvb3RfbWVtb3J5X3NpemU7CisJcmV0dXJuIChhZGRyIDw9IGZ3X2R1bXAuYm9vdF9tZW1fdG9wKTsKIH0KIAogaW50IHNob3VsZF9mYWR1bXBfY3Jhc2godm9pZCkKQEAgLTIwMCwzMSArMTU5LDI5IEBAIGludCBpc19mYWR1bXBfYWN0aXZlKHZvaWQpCiB9CiAKIC8qCi0gKiBSZXR1cm5zIDEsIGlmIHRoZXJlIGFyZSBubyBob2xlcyBpbiBib290IG1lbW9yeSBhcmVhLAotICogMCBvdGhlcndpc2UuCisgKiBSZXR1cm5zIHRydWUsIGlmIHRoZXJlIGFyZSBubyBob2xlcyBpbiBtZW1vcnkgYXJlYSBiZXR3ZWVuIGRfc3RhcnQgdG8gZF9lbmQsCisgKiBmYWxzZSBvdGhlcndpc2UuCiAgKi8KLXN0YXRpYyBpbnQgaXNfYm9vdF9tZW1vcnlfYXJlYV9jb250aWd1b3VzKHZvaWQpCitzdGF0aWMgYm9vbCBpc19mYWR1bXBfbWVtX2FyZWFfY29udGlndW91cyh1NjQgZF9zdGFydCwgdTY0IGRfZW5kKQogewogCXN0cnVjdCBtZW1ibG9ja19yZWdpb24gKnJlZzsKLQl1bnNpZ25lZCBsb25nIHRzdGFydCwgdGVuZDsKLQl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiA9IFBIWVNfUEZOKFJNQV9TVEFSVCk7Ci0JdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gUEhZU19QRk4oUk1BX1NUQVJUICsgZndfZHVtcC5ib290X21lbW9yeV9zaXplKTsKLQl1bnNpZ25lZCBpbnQgcmV0ID0gMDsKKwlib29sIHJldCA9IGZhbHNlOworCXU2NCBzdGFydCwgZW5kOwogCiAJZm9yX2VhY2hfbWVtYmxvY2sobWVtb3J5LCByZWcpIHsKLQkJdHN0YXJ0ID0gbWF4KHN0YXJ0X3BmbiwgbWVtYmxvY2tfcmVnaW9uX21lbW9yeV9iYXNlX3BmbihyZWcpKTsKLQkJdGVuZCA9IG1pbihlbmRfcGZuLCBtZW1ibG9ja19yZWdpb25fbWVtb3J5X2VuZF9wZm4ocmVnKSk7Ci0JCWlmICh0c3RhcnQgPCB0ZW5kKSB7Ci0JCQkvKiBNZW1vcnkgaG9sZSBmcm9tIHN0YXJ0X3BmbiB0byB0c3RhcnQgKi8KLQkJCWlmICh0c3RhcnQgPiBzdGFydF9wZm4pCisJCXN0YXJ0ID0gbWF4X3QodTY0LCBkX3N0YXJ0LCByZWctPmJhc2UpOworCQllbmQgPSBtaW5fdCh1NjQsIGRfZW5kLCAocmVnLT5iYXNlICsgcmVnLT5zaXplKSk7CisJCWlmIChkX3N0YXJ0IDwgZW5kKSB7CisJCQkvKiBNZW1vcnkgaG9sZSBmcm9tIGRfc3RhcnQgdG8gc3RhcnQgKi8KKwkJCWlmIChzdGFydCA+IGRfc3RhcnQpCiAJCQkJYnJlYWs7CiAKLQkJCWlmICh0ZW5kID09IGVuZF9wZm4pIHsKLQkJCQlyZXQgPSAxOworCQkJaWYgKGVuZCA9PSBkX2VuZCkgeworCQkJCXJldCA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQl9CiAKLQkJCXN0YXJ0X3BmbiA9IHRlbmQgKyAxOworCQkJZF9zdGFydCA9IGVuZCArIDE7CiAJCX0KIAl9CiAKQEAgLTIzMiwzNyArMTg5LDQ1IEBAIHN0YXRpYyBpbnQgaXNfYm9vdF9tZW1vcnlfYXJlYV9jb250aWd1b3VzKHZvaWQpCiB9CiAKIC8qCisgKiBSZXR1cm5zIHRydWUsIGlmIHRoZXJlIGFyZSBubyBob2xlcyBpbiBib290IG1lbW9yeSBhcmVhLAorICogZmFsc2Ugb3RoZXJ3aXNlLgorICovCitib29sIGlzX2ZhZHVtcF9ib290X21lbV9jb250aWd1b3VzKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBkX3N0YXJ0LCBkX2VuZDsKKwlib29sIHJldCA9IGZhbHNlOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGZ3X2R1bXAuYm9vdF9tZW1fcmVnc19jbnQ7IGkrKykgeworCQlkX3N0YXJ0ID0gZndfZHVtcC5ib290X21lbV9hZGRyW2ldOworCQlkX2VuZCAgID0gZF9zdGFydCArIGZ3X2R1bXAuYm9vdF9tZW1fc3pbaV07CisKKwkJcmV0ID0gaXNfZmFkdW1wX21lbV9hcmVhX2NvbnRpZ3VvdXMoZF9zdGFydCwgZF9lbmQpOworCQlpZiAoIXJldCkKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qCiAgKiBSZXR1cm5zIHRydWUsIGlmIHRoZXJlIGFyZSBubyBob2xlcyBpbiByZXNlcnZlZCBtZW1vcnkgYXJlYSwKICAqIGZhbHNlIG90aGVyd2lzZS4KICAqLwotc3RhdGljIGJvb2wgaXNfcmVzZXJ2ZWRfbWVtb3J5X2FyZWFfY29udGlndW91cyh2b2lkKQorYm9vbCBpc19mYWR1bXBfcmVzZXJ2ZWRfbWVtX2NvbnRpZ3VvdXModm9pZCkKIHsKLQlzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uICpyZWc7Ci0JdW5zaWduZWQgbG9uZyBzdGFydCwgZW5kOwotCXVuc2lnbmVkIGxvbmcgZF9zdGFydCA9IGZ3X2R1bXAucmVzZXJ2ZV9kdW1wX2FyZWFfc3RhcnQ7Ci0JdW5zaWduZWQgbG9uZyBkX2VuZCA9IGRfc3RhcnQgKyBmd19kdW1wLnJlc2VydmVfZHVtcF9hcmVhX3NpemU7CisJdTY0IGRfc3RhcnQsIGRfZW5kOwogCi0JZm9yX2VhY2hfbWVtYmxvY2sobWVtb3J5LCByZWcpIHsKLQkJc3RhcnQgPSBtYXgoZF9zdGFydCwgKHVuc2lnbmVkIGxvbmcpcmVnLT5iYXNlKTsKLQkJZW5kID0gbWluKGRfZW5kLCAodW5zaWduZWQgbG9uZykocmVnLT5iYXNlICsgcmVnLT5zaXplKSk7Ci0JCWlmIChkX3N0YXJ0IDwgZW5kKSB7Ci0JCQkvKiBNZW1vcnkgaG9sZSBmcm9tIGRfc3RhcnQgdG8gc3RhcnQgKi8KLQkJCWlmIChzdGFydCA+IGRfc3RhcnQpCi0JCQkJYnJlYWs7Ci0KLQkJCWlmIChlbmQgPT0gZF9lbmQpCi0JCQkJcmV0dXJuIHRydWU7Ci0KLQkJCWRfc3RhcnQgPSBlbmQgKyAxOwotCQl9Ci0JfQotCi0JcmV0dXJuIGZhbHNlOworCWRfc3RhcnQJPSBmd19kdW1wLnJlc2VydmVfZHVtcF9hcmVhX3N0YXJ0OworCWRfZW5kCT0gZF9zdGFydCArIGZ3X2R1bXAucmVzZXJ2ZV9kdW1wX2FyZWFfc2l6ZTsKKwlyZXR1cm4gaXNfZmFkdW1wX21lbV9hcmVhX2NvbnRpZ3VvdXMoZF9zdGFydCwgZF9lbmQpOwogfQogCiAvKiBQcmludCBmaXJtd2FyZSBhc3Npc3RlZCBkdW1wIGNvbmZpZ3VyYXRpb25zIGZvciBkZWJ1Z2dpbmcgcHVycG9zZS4gKi8KIHN0YXRpYyB2b2lkIGZhZHVtcF9zaG93X2NvbmZpZyh2b2lkKQogeworCWludCBpOworCiAJcHJfZGVidWcoIlN1cHBvcnQgZm9yIGZpcm13YXJlLWFzc2lzdGVkIGR1bXAgKGZhZHVtcCk6ICVzXG4iLAogCQkJKGZ3X2R1bXAuZmFkdW1wX3N1cHBvcnRlZCA/ICJwcmVzZW50IiA6ICJubyBzdXBwb3J0IikpOwogCkBAIC0yNzYsNjIgKzI0MSwxMyBAQCBzdGF0aWMgdm9pZCBmYWR1bXBfc2hvd19jb25maWcodm9pZCkKIAlwcl9kZWJ1ZygiRHVtcCBzZWN0aW9uIHNpemVzOlxuIik7CiAJcHJfZGVidWcoIiAgICBDUFUgc3RhdGUgZGF0YSBzaXplOiAlbHhcbiIsIGZ3X2R1bXAuY3B1X3N0YXRlX2RhdGFfc2l6ZSk7CiAJcHJfZGVidWcoIiAgICBIUFRFIHJlZ2lvbiBzaXplICAgOiAlbHhcbiIsIGZ3X2R1bXAuaHB0ZV9yZWdpb25fc2l6ZSk7Ci0JcHJfZGVidWcoIkJvb3QgbWVtb3J5IHNpemUgIDogJWx4XG4iLCBmd19kdW1wLmJvb3RfbWVtb3J5X3NpemUpOwotfQotCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBpbml0X2ZhZHVtcF9tZW1fc3RydWN0KHN0cnVjdCBmYWR1bXBfbWVtX3N0cnVjdCAqZmRtLAotCQkJCXVuc2lnbmVkIGxvbmcgYWRkcikKLXsKLQlpZiAoIWZkbSkKLQkJcmV0dXJuIDA7Ci0KLQltZW1zZXQoZmRtLCAwLCBzaXplb2Yoc3RydWN0IGZhZHVtcF9tZW1fc3RydWN0KSk7Ci0JYWRkciA9IGFkZHIgJiBQQUdFX01BU0s7Ci0KLQlmZG0tPmhlYWRlci5kdW1wX2Zvcm1hdF92ZXJzaW9uID0gY3B1X3RvX2JlMzIoMHgwMDAwMDAwMSk7Ci0JZmRtLT5oZWFkZXIuZHVtcF9udW1fc2VjdGlvbnMgPSBjcHVfdG9fYmUxNigzKTsKLQlmZG0tPmhlYWRlci5kdW1wX3N0YXR1c19mbGFnID0gMDsKLQlmZG0tPmhlYWRlci5vZmZzZXRfZmlyc3RfZHVtcF9zZWN0aW9uID0KLQkJY3B1X3RvX2JlMzIoKHUzMilvZmZzZXRvZihzdHJ1Y3QgZmFkdW1wX21lbV9zdHJ1Y3QsIGNwdV9zdGF0ZV9kYXRhKSk7Ci0KLQkvKgotCSAqIEZpZWxkcyBmb3IgZGlzayBkdW1wIG9wdGlvbi4KLQkgKiBXZSBhcmUgbm90IHVzaW5nIGRpc2sgZHVtcCBvcHRpb24sIGhlbmNlIHNldCB0aGVzZSBmaWVsZHMgdG8gMC4KLQkgKi8KLQlmZG0tPmhlYWRlci5kZF9ibG9ja19zaXplID0gMDsKLQlmZG0tPmhlYWRlci5kZF9ibG9ja19vZmZzZXQgPSAwOwotCWZkbS0+aGVhZGVyLmRkX251bV9ibG9ja3MgPSAwOwotCWZkbS0+aGVhZGVyLmRkX29mZnNldF9kaXNrX3BhdGggPSAwOwotCi0JLyogc2V0IDAgdG8gZGlzYWJsZSBhbiBhdXRvbWF0aWMgZHVtcC1yZWJvb3QuICovCi0JZmRtLT5oZWFkZXIubWF4X3RpbWVfYXV0byA9IDA7Ci0KLQkvKiBLZXJuZWwgZHVtcCBzZWN0aW9ucyAqLwotCS8qIGNwdSBzdGF0ZSBkYXRhIHNlY3Rpb24uICovCi0JZmRtLT5jcHVfc3RhdGVfZGF0YS5yZXF1ZXN0X2ZsYWcgPSBjcHVfdG9fYmUzMihGQURVTVBfUkVRVUVTVF9GTEFHKTsKLQlmZG0tPmNwdV9zdGF0ZV9kYXRhLnNvdXJjZV9kYXRhX3R5cGUgPSBjcHVfdG9fYmUxNihGQURVTVBfQ1BVX1NUQVRFX0RBVEEpOwotCWZkbS0+Y3B1X3N0YXRlX2RhdGEuc291cmNlX2FkZHJlc3MgPSAwOwotCWZkbS0+Y3B1X3N0YXRlX2RhdGEuc291cmNlX2xlbiA9IGNwdV90b19iZTY0KGZ3X2R1bXAuY3B1X3N0YXRlX2RhdGFfc2l6ZSk7Ci0JZmRtLT5jcHVfc3RhdGVfZGF0YS5kZXN0aW5hdGlvbl9hZGRyZXNzID0gY3B1X3RvX2JlNjQoYWRkcik7Ci0JYWRkciArPSBmd19kdW1wLmNwdV9zdGF0ZV9kYXRhX3NpemU7Ci0KLQkvKiBocHRlIHJlZ2lvbiBzZWN0aW9uICovCi0JZmRtLT5ocHRlX3JlZ2lvbi5yZXF1ZXN0X2ZsYWcgPSBjcHVfdG9fYmUzMihGQURVTVBfUkVRVUVTVF9GTEFHKTsKLQlmZG0tPmhwdGVfcmVnaW9uLnNvdXJjZV9kYXRhX3R5cGUgPSBjcHVfdG9fYmUxNihGQURVTVBfSFBURV9SRUdJT04pOwotCWZkbS0+aHB0ZV9yZWdpb24uc291cmNlX2FkZHJlc3MgPSAwOwotCWZkbS0+aHB0ZV9yZWdpb24uc291cmNlX2xlbiA9IGNwdV90b19iZTY0KGZ3X2R1bXAuaHB0ZV9yZWdpb25fc2l6ZSk7Ci0JZmRtLT5ocHRlX3JlZ2lvbi5kZXN0aW5hdGlvbl9hZGRyZXNzID0gY3B1X3RvX2JlNjQoYWRkcik7Ci0JYWRkciArPSBmd19kdW1wLmhwdGVfcmVnaW9uX3NpemU7Ci0KLQkvKiBSTUEgcmVnaW9uIHNlY3Rpb24gKi8KLQlmZG0tPnJtcl9yZWdpb24ucmVxdWVzdF9mbGFnID0gY3B1X3RvX2JlMzIoRkFEVU1QX1JFUVVFU1RfRkxBRyk7Ci0JZmRtLT5ybXJfcmVnaW9uLnNvdXJjZV9kYXRhX3R5cGUgPSBjcHVfdG9fYmUxNihGQURVTVBfUkVBTF9NT0RFX1JFR0lPTik7Ci0JZmRtLT5ybXJfcmVnaW9uLnNvdXJjZV9hZGRyZXNzID0gY3B1X3RvX2JlNjQoUk1BX1NUQVJUKTsKLQlmZG0tPnJtcl9yZWdpb24uc291cmNlX2xlbiA9IGNwdV90b19iZTY0KGZ3X2R1bXAuYm9vdF9tZW1vcnlfc2l6ZSk7Ci0JZmRtLT5ybXJfcmVnaW9uLmRlc3RpbmF0aW9uX2FkZHJlc3MgPSBjcHVfdG9fYmU2NChhZGRyKTsKLQlhZGRyICs9IGZ3X2R1bXAuYm9vdF9tZW1vcnlfc2l6ZTsKLQotCXJldHVybiBhZGRyOworCXByX2RlYnVnKCIgICAgQm9vdCBtZW1vcnkgc2l6ZSAgIDogJWx4XG4iLCBmd19kdW1wLmJvb3RfbWVtb3J5X3NpemUpOworCXByX2RlYnVnKCIgICAgQm9vdCBtZW1vcnkgdG9wICAgIDogJWxseFxuIiwgZndfZHVtcC5ib290X21lbV90b3ApOworCXByX2RlYnVnKCJCb290IG1lbW9yeSByZWdpb25zIGNudDogJWxseFxuIiwgZndfZHVtcC5ib290X21lbV9yZWdzX2NudCk7CisJZm9yIChpID0gMDsgaSA8IGZ3X2R1bXAuYm9vdF9tZW1fcmVnc19jbnQ7IGkrKykgeworCQlwcl9kZWJ1ZygiWyUwM2RdIGJhc2UgPSAlbGx4LCBzaXplID0gJWxseFxuIiwgaSwKKwkJCSBmd19kdW1wLmJvb3RfbWVtX2FkZHJbaV0sIGZ3X2R1bXAuYm9vdF9tZW1fc3pbaV0pOworCX0KIH0KIAogLyoqCkBAIC0zNDksMTAgKzI2NSwxMCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpbml0X2ZhZHVtcF9tZW1fc3RydWN0KHN0cnVjdCBmYWR1bXBfbWVtX3N0cnVjdCAqZmRtLAogICogdGhhdCBpcyByZXF1aXJlZCBmb3IgYSBrZXJuZWwgdG8gYm9vdCBzdWNjZXNzZnVsbHkuCiAgKgogICovCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZmFkdW1wX2NhbGN1bGF0ZV9yZXNlcnZlX3NpemUodm9pZCkKK3N0YXRpYyBpbmxpbmUgdTY0IGZhZHVtcF9jYWxjdWxhdGVfcmVzZXJ2ZV9zaXplKHZvaWQpCiB7CisJdTY0IGJhc2UsIHNpemUsIGJvb3RtZW1fbWluOwogCWludCByZXQ7Ci0JdW5zaWduZWQgbG9uZyBsb25nIGJhc2UsIHNpemU7CiAKIAlpZiAoZndfZHVtcC5yZXNlcnZlX2Jvb3R2YXIpCiAJCXByX3dhcm4oIidmYWR1bXBfcmVzZXJ2ZV9tZW09JyBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiAnY3Jhc2hrZXJuZWw9JyBwYXJhbWV0ZXIuXG4iKTsKQEAgLTQwMiw3ICszMTgsOCBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZmFkdW1wX2NhbGN1bGF0ZV9yZXNlcnZlX3NpemUodm9pZCkKIAlpZiAobWVtb3J5X2xpbWl0ICYmIHNpemUgPiBtZW1vcnlfbGltaXQpCiAJCXNpemUgPSBtZW1vcnlfbGltaXQ7CiAKLQlyZXR1cm4gKHNpemUgPiBNSU5fQk9PVF9NRU0gPyBzaXplIDogTUlOX0JPT1RfTUVNKTsKKwlib290bWVtX21pbiA9IGZ3X2R1bXAub3BzLT5mYWR1bXBfZ2V0X2Jvb3RtZW1fbWluKCk7CisJcmV0dXJuIChzaXplID4gYm9vdG1lbV9taW4gPyBzaXplIDogYm9vdG1lbV9taW4pOwogfQogCiAvKgpAQCAtNDIzLDU3ICszNDAsMTM2IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9mYWR1bXBfYXJlYV9zaXplKHZvaWQpCiAJc2l6ZSArPSBzaXplb2Yoc3RydWN0IGVsZl9waGRyKSAqIChtZW1ibG9ja19udW1fcmVnaW9ucyhtZW1vcnkpICsgMik7CiAKIAlzaXplID0gUEFHRV9BTElHTihzaXplKTsKKworCS8qIFRoaXMgaXMgdG8gaG9sZCBrZXJuZWwgbWV0YWRhdGEgb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCBpdCAqLworCXNpemUgKz0gKGZ3X2R1bXAub3BzLT5mYWR1bXBfZ2V0X21ldGFkYXRhX3NpemUgPworCQkgZndfZHVtcC5vcHMtPmZhZHVtcF9nZXRfbWV0YWRhdGFfc2l6ZSgpIDogMCk7CiAJcmV0dXJuIHNpemU7CiB9CiAKLXN0YXRpYyB2b2lkIF9faW5pdCBmYWR1bXBfcmVzZXJ2ZV9jcmFzaF9hcmVhKHVuc2lnbmVkIGxvbmcgYmFzZSwKLQkJCQkJICAgICB1bnNpZ25lZCBsb25nIHNpemUpCitzdGF0aWMgaW50IF9faW5pdCBhZGRfYm9vdF9tZW1fcmVnaW9uKHVuc2lnbmVkIGxvbmcgcnN0YXJ0LAorCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgcnNpemUpCiB7Ci0Jc3RydWN0IG1lbWJsb2NrX3JlZ2lvbiAqcmVnOwotCXVuc2lnbmVkIGxvbmcgbXN0YXJ0LCBtZW5kLCBtc2l6ZTsKKwlpbnQgaSA9IGZ3X2R1bXAuYm9vdF9tZW1fcmVnc19jbnQrKzsKIAotCWZvcl9lYWNoX21lbWJsb2NrKG1lbW9yeSwgcmVnKSB7Ci0JCW1zdGFydCA9IG1heF90KHVuc2lnbmVkIGxvbmcsIGJhc2UsIHJlZy0+YmFzZSk7Ci0JCW1lbmQgPSByZWctPmJhc2UgKyByZWctPnNpemU7Ci0JCW1lbmQgPSBtaW4oYmFzZSArIHNpemUsIG1lbmQpOwotCi0JCWlmIChtc3RhcnQgPCBtZW5kKSB7Ci0JCQltc2l6ZSA9IG1lbmQgLSBtc3RhcnQ7Ci0JCQltZW1ibG9ja19yZXNlcnZlKG1zdGFydCwgbXNpemUpOwotCQkJcHJfaW5mbygiUmVzZXJ2ZWQgJWxkTUIgb2YgbWVtb3J5IGF0ICUjMDE2bHggZm9yIHNhdmluZyBjcmFzaCBkdW1wXG4iLAotCQkJCShtc2l6ZSA+PiAyMCksIG1zdGFydCk7Ci0JCX0KKwlpZiAoZndfZHVtcC5ib290X21lbV9yZWdzX2NudCA+IEZBRFVNUF9NQVhfTUVNX1JFR1MpIHsKKwkJZndfZHVtcC5ib290X21lbV9yZWdzX2NudCA9IEZBRFVNUF9NQVhfTUVNX1JFR1M7CisJCXJldHVybiAwOwogCX0KKworCXByX2RlYnVnKCJBZGRlZCBib290IG1lbW9yeSByYW5nZVslZF0gWyUjMDE2bHgtJSMwMTZseClcbiIsCisJCSBpLCByc3RhcnQsIChyc3RhcnQgKyByc2l6ZSkpOworCWZ3X2R1bXAuYm9vdF9tZW1fYWRkcltpXSA9IHJzdGFydDsKKwlmd19kdW1wLmJvb3RfbWVtX3N6W2ldID0gcnNpemU7CisJcmV0dXJuIDE7Cit9CisKKy8qCisgKiBGaXJtd2FyZSB1c3VhbGx5IGhhcyBhIGhhcmQgbGltaXQgb24gdGhlIGRhdGEgaXQgY2FuIGNvcHkgcGVyIHJlZ2lvbi4KKyAqIEhvbm91ciB0aGF0IGJ5IHNwbGl0dGluZyBhIG1lbW9yeSByYW5nZSBpbnRvIG11bHRpcGxlIHJlZ2lvbnMuCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IGFkZF9ib290X21lbV9yZWdpb25zKHVuc2lnbmVkIGxvbmcgbXN0YXJ0LAorCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIG1zaXplKQoreworCXVuc2lnbmVkIGxvbmcgcnN0YXJ0LCByc2l6ZSwgbWF4X3NpemU7CisJaW50IHJldCA9IDE7CisKKwlyc3RhcnQgPSBtc3RhcnQ7CisJbWF4X3NpemUgPSBmd19kdW1wLm1heF9jb3B5X3NpemUgPyBmd19kdW1wLm1heF9jb3B5X3NpemUgOiBtc2l6ZTsKKwl3aGlsZSAobXNpemUpIHsKKwkJaWYgKG1zaXplID4gbWF4X3NpemUpCisJCQlyc2l6ZSA9IG1heF9zaXplOworCQllbHNlCisJCQlyc2l6ZSA9IG1zaXplOworCisJCXJldCA9IGFkZF9ib290X21lbV9yZWdpb24ocnN0YXJ0LCByc2l6ZSk7CisJCWlmICghcmV0KQorCQkJYnJlYWs7CisKKwkJbXNpemUgLT0gcnNpemU7CisJCXJzdGFydCArPSByc2l6ZTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IF9faW5pdCBmYWR1bXBfZ2V0X2Jvb3RfbWVtX3JlZ2lvbnModm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGJhc2UsIHNpemUsIGN1cl9zaXplLCBob2xlX3NpemUsIGxhc3RfZW5kOworCXVuc2lnbmVkIGxvbmcgbWVtX3NpemUgPSBmd19kdW1wLmJvb3RfbWVtb3J5X3NpemU7CisJc3RydWN0IG1lbWJsb2NrX3JlZ2lvbiAqcmVnOworCWludCByZXQgPSAxOworCisJZndfZHVtcC5ib290X21lbV9yZWdzX2NudCA9IDA7CisKKwlsYXN0X2VuZCA9IDA7CisJaG9sZV9zaXplID0gMDsKKwljdXJfc2l6ZSA9IDA7CisJZm9yX2VhY2hfbWVtYmxvY2sobWVtb3J5LCByZWcpIHsKKwkJYmFzZSA9IHJlZy0+YmFzZTsKKwkJc2l6ZSA9IHJlZy0+c2l6ZTsKKwkJaG9sZV9zaXplICs9IChiYXNlIC0gbGFzdF9lbmQpOworCisJCWlmICgoY3VyX3NpemUgKyBzaXplKSA+PSBtZW1fc2l6ZSkgeworCQkJc2l6ZSA9IChtZW1fc2l6ZSAtIGN1cl9zaXplKTsKKwkJCXJldCA9IGFkZF9ib290X21lbV9yZWdpb25zKGJhc2UsIHNpemUpOworCQkJYnJlYWs7CisJCX0KKworCQltZW1fc2l6ZSAtPSBzaXplOworCQljdXJfc2l6ZSArPSBzaXplOworCQlyZXQgPSBhZGRfYm9vdF9tZW1fcmVnaW9ucyhiYXNlLCBzaXplKTsKKwkJaWYgKCFyZXQpCisJCQlicmVhazsKKworCQlsYXN0X2VuZCA9IGJhc2UgKyBzaXplOworCX0KKwlmd19kdW1wLmJvb3RfbWVtX3RvcCA9IFBBR0VfQUxJR04oZndfZHVtcC5ib290X21lbW9yeV9zaXplICsgaG9sZV9zaXplKTsKKworCXJldHVybiByZXQ7CiB9CiAKIGludCBfX2luaXQgZmFkdW1wX3Jlc2VydmVfbWVtKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBiYXNlLCBzaXplLCBtZW1vcnlfYm91bmRhcnk7CisJdTY0IGJhc2UsIHNpemUsIG1lbV9ib3VuZGFyeSwgYm9vdG1lbV9taW4sIGFsaWduID0gUEFHRV9TSVpFOworCWJvb2wgaXNfbWVtYmxvY2tfYm90dG9tX3VwID0gbWVtYmxvY2tfYm90dG9tX3VwKCk7CisJaW50IHJldCA9IDE7CiAKIAlpZiAoIWZ3X2R1bXAuZmFkdW1wX2VuYWJsZWQpCiAJCXJldHVybiAwOwogCiAJaWYgKCFmd19kdW1wLmZhZHVtcF9zdXBwb3J0ZWQpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiRmlybXdhcmUtYXNzaXN0ZWQgZHVtcCBpcyBub3Qgc3VwcG9ydGVkIG9uIgotCQkJCSIgdGhpcyBoYXJkd2FyZVxuIik7Ci0JCWZ3X2R1bXAuZmFkdW1wX2VuYWJsZWQgPSAwOwotCQlyZXR1cm4gMDsKKwkJcHJfaW5mbygiRmlybXdhcmUtQXNzaXN0ZWQgRHVtcCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgaGFyZHdhcmVcbiIpOworCQlnb3RvIGVycm9yX291dDsKIAl9CisKIAkvKgogCSAqIEluaXRpYWxpemUgYm9vdCBtZW1vcnkgc2l6ZQogCSAqIElmIGR1bXAgaXMgYWN0aXZlIHRoZW4gd2UgaGF2ZSBhbHJlYWR5IGNhbGN1bGF0ZWQgdGhlIHNpemUgZHVyaW5nCiAJICogZmlyc3Qga2VybmVsLgogCSAqLwotCWlmIChmZG1fYWN0aXZlKQotCQlmd19kdW1wLmJvb3RfbWVtb3J5X3NpemUgPSBiZTY0X3RvX2NwdShmZG1fYWN0aXZlLT5ybXJfcmVnaW9uLnNvdXJjZV9sZW4pOwotCWVsc2UgewotCQlmd19kdW1wLmJvb3RfbWVtb3J5X3NpemUgPSBmYWR1bXBfY2FsY3VsYXRlX3Jlc2VydmVfc2l6ZSgpOworCWlmICghZndfZHVtcC5kdW1wX2FjdGl2ZSkgeworCQlmd19kdW1wLmJvb3RfbWVtb3J5X3NpemUgPQorCQkJUEFHRV9BTElHTihmYWR1bXBfY2FsY3VsYXRlX3Jlc2VydmVfc2l6ZSgpKTsKICNpZmRlZiBDT05GSUdfQ01BCi0JCWlmICghZndfZHVtcC5ub2NtYSkKKwkJaWYgKCFmd19kdW1wLm5vY21hKSB7CisJCQlhbGlnbiA9IEZBRFVNUF9DTUFfQUxJR05NRU5UOwogCQkJZndfZHVtcC5ib290X21lbW9yeV9zaXplID0KLQkJCQlBTElHTihmd19kdW1wLmJvb3RfbWVtb3J5X3NpemUsCi0JCQkJCQkJRkFEVU1QX0NNQV9BTElHTk1FTlQpOworCQkJCUFMSUdOKGZ3X2R1bXAuYm9vdF9tZW1vcnlfc2l6ZSwgYWxpZ24pOworCQl9CiAjZW5kaWYKKworCQlib290bWVtX21pbiA9IGZ3X2R1bXAub3BzLT5mYWR1bXBfZ2V0X2Jvb3RtZW1fbWluKCk7CisJCWlmIChmd19kdW1wLmJvb3RfbWVtb3J5X3NpemUgPCBib290bWVtX21pbikgeworCQkJcHJfZXJyKCJDYW4ndCBlbmFibGUgZmFkdW1wIHdpdGggYm9vdCBtZW1vcnkgc2l6ZSAoMHglbHgpIGxlc3MgdGhhbiAweCVsbHhcbiIsCisJCQkgICAgICAgZndfZHVtcC5ib290X21lbW9yeV9zaXplLCBib290bWVtX21pbik7CisJCQlnb3RvIGVycm9yX291dDsKKwkJfQorCisJCWlmICghZmFkdW1wX2dldF9ib290X21lbV9yZWdpb25zKCkpIHsKKwkJCXByX2VycigiVG9vIG1hbnkgaG9sZXMgaW4gYm9vdCBtZW1vcnkgYXJlYSB0byBlbmFibGUgZmFkdW1wXG4iKTsKKwkJCWdvdG8gZXJyb3Jfb3V0OworCQl9CiAJfQogCiAJLyoKQEAgLTQ5MywxMCArNDg5LDEzIEBAIGludCBfX2luaXQgZmFkdW1wX3Jlc2VydmVfbWVtKHZvaWQpCiAJCQkJIiBkdW1wLCBub3cgJSMwMTZsbHhcbiIsIG1lbW9yeV9saW1pdCk7CiAJfQogCWlmIChtZW1vcnlfbGltaXQpCi0JCW1lbW9yeV9ib3VuZGFyeSA9IG1lbW9yeV9saW1pdDsKKwkJbWVtX2JvdW5kYXJ5ID0gbWVtb3J5X2xpbWl0OwogCWVsc2UKLQkJbWVtb3J5X2JvdW5kYXJ5ID0gbWVtYmxvY2tfZW5kX29mX0RSQU0oKTsKKwkJbWVtX2JvdW5kYXJ5ID0gbWVtYmxvY2tfZW5kX29mX0RSQU0oKTsKIAorCWJhc2UgPSBmd19kdW1wLmJvb3RfbWVtX3RvcDsKKwlzaXplID0gZ2V0X2ZhZHVtcF9hcmVhX3NpemUoKTsKKwlmd19kdW1wLnJlc2VydmVfZHVtcF9hcmVhX3NpemUgPSBzaXplOwogCWlmIChmd19kdW1wLmR1bXBfYWN0aXZlKSB7CiAJCXByX2luZm8oIkZpcm13YXJlLWFzc2lzdGVkIGR1bXAgaXMgYWN0aXZlLlxuIik7CiAKQEAgLTUxMCw1OCArNTA5LDU1IEBAIGludCBfX2luaXQgZmFkdW1wX3Jlc2VydmVfbWVtKHZvaWQpCiAjZW5kaWYKIAkJLyoKIAkJICogSWYgbGFzdCBib290IGhhcyBjcmFzaGVkIHRoZW4gcmVzZXJ2ZSBhbGwgdGhlIG1lbW9yeQotCQkgKiBhYm92ZSBib290X21lbW9yeV9zaXplIHNvIHRoYXQgd2UgZG9uJ3QgdG91Y2ggaXQgdW50aWwKKwkJICogYWJvdmUgYm9vdCBtZW1vcnkgc2l6ZSBzbyB0aGF0IHdlIGRvbid0IHRvdWNoIGl0IHVudGlsCiAJCSAqIGR1bXAgaXMgd3JpdHRlbiB0byBkaXNrIGJ5IHVzZXJzcGFjZSB0b29sLiBUaGlzIG1lbW9yeQotCQkgKiB3aWxsIGJlIHJlbGVhc2VkIGZvciBnZW5lcmFsIHVzZSBvbmNlIHRoZSBkdW1wIGlzIHNhdmVkLgorCQkgKiBjYW4gYmUgcmVsZWFzZWQgZm9yIGdlbmVyYWwgdXNlIGJ5IGludmFsaWRhdGluZyBmYWR1bXAuCiAJCSAqLwotCQliYXNlID0gZndfZHVtcC5ib290X21lbW9yeV9zaXplOwotCQlzaXplID0gbWVtb3J5X2JvdW5kYXJ5IC0gYmFzZTsKLQkJZmFkdW1wX3Jlc2VydmVfY3Jhc2hfYXJlYShiYXNlLCBzaXplKTsKKwkJZmFkdW1wX3Jlc2VydmVfY3Jhc2hfYXJlYShiYXNlKTsKIAotCQlmd19kdW1wLmZhZHVtcGhkcl9hZGRyID0KLQkJCQliZTY0X3RvX2NwdShmZG1fYWN0aXZlLT5ybXJfcmVnaW9uLmRlc3RpbmF0aW9uX2FkZHJlc3MpICsKLQkJCQliZTY0X3RvX2NwdShmZG1fYWN0aXZlLT5ybXJfcmVnaW9uLnNvdXJjZV9sZW4pOwotCQlwcl9kZWJ1ZygiZmFkdW1waGRyX2FkZHIgPSAlcGFcbiIsICZmd19kdW1wLmZhZHVtcGhkcl9hZGRyKTsKLQkJZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zdGFydCA9IGJhc2U7Ci0JCWZ3X2R1bXAucmVzZXJ2ZV9kdW1wX2FyZWFfc2l6ZSA9IHNpemU7CisJCXByX2RlYnVnKCJmYWR1bXBoZHJfYWRkciA9ICUjMDE2bHhcbiIsIGZ3X2R1bXAuZmFkdW1waGRyX2FkZHIpOworCQlwcl9kZWJ1ZygiUmVzZXJ2ZSBkdW1wIGFyZWEgc3RhcnQgYWRkcmVzczogMHglbHhcbiIsCisJCQkgZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zdGFydCk7CiAJfSBlbHNlIHsKLQkJc2l6ZSA9IGdldF9mYWR1bXBfYXJlYV9zaXplKCk7Ci0KIAkJLyoKIAkJICogUmVzZXJ2ZSBtZW1vcnkgYXQgYW4gb2Zmc2V0IGNsb3NlciB0byBib3R0b20gb2YgdGhlIFJBTSB0bwotCQkgKiBtaW5pbWl6ZSB0aGUgaW1wYWN0IG9mIG1lbW9yeSBob3QtcmVtb3ZlIG9wZXJhdGlvbi4gV2UgY2FuJ3QKLQkJICogdXNlIG1lbWJsb2NrX2ZpbmRfaW5fcmFuZ2UoKSBoZXJlIHNpbmNlIGl0IGRvZXNuJ3QgYWxsb2NhdGUKLQkJICogZnJvbSBib3R0b20gdG8gdG9wLgorCQkgKiBtaW5pbWl6ZSB0aGUgaW1wYWN0IG9mIG1lbW9yeSBob3QtcmVtb3ZlIG9wZXJhdGlvbi4KIAkJICovCi0JCWZvciAoYmFzZSA9IGZ3X2R1bXAuYm9vdF9tZW1vcnlfc2l6ZTsKLQkJICAgICBiYXNlIDw9IChtZW1vcnlfYm91bmRhcnkgLSBzaXplKTsKLQkJICAgICBiYXNlICs9IHNpemUpIHsKLQkJCWlmIChtZW1ibG9ja19pc19yZWdpb25fbWVtb3J5KGJhc2UsIHNpemUpICYmCi0JCQkgICAgIW1lbWJsb2NrX2lzX3JlZ2lvbl9yZXNlcnZlZChiYXNlLCBzaXplKSkKLQkJCQlicmVhazsKLQkJfQotCQlpZiAoKGJhc2UgPiAobWVtb3J5X2JvdW5kYXJ5IC0gc2l6ZSkpIHx8Ci0JCSAgICBtZW1ibG9ja19yZXNlcnZlKGJhc2UsIHNpemUpKSB7Ci0JCQlwcl9lcnIoIkZhaWxlZCB0byByZXNlcnZlIG1lbW9yeVxuIik7Ci0JCQlyZXR1cm4gMDsKLQkJfQorCQltZW1ibG9ja19zZXRfYm90dG9tX3VwKHRydWUpOworCQliYXNlID0gbWVtYmxvY2tfZmluZF9pbl9yYW5nZShiYXNlLCBtZW1fYm91bmRhcnksIHNpemUsIGFsaWduKTsKIAotCQlwcl9pbmZvKCJSZXNlcnZlZCAlbGRNQiBvZiBtZW1vcnkgYXQgJWxkTUIgZm9yIGZpcm13YXJlLSIKLQkJCSJhc3Npc3RlZCBkdW1wIChTeXN0ZW0gUkFNOiAlbGRNQilcbiIsCi0JCQkodW5zaWduZWQgbG9uZykoc2l6ZSA+PiAyMCksCi0JCQkodW5zaWduZWQgbG9uZykoYmFzZSA+PiAyMCksCi0JCQkodW5zaWduZWQgbG9uZykobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpID4+IDIwKSk7CisJCS8qIFJlc3RvcmUgdGhlIHByZXZpb3VzIGFsbG9jYXRpb24gbW9kZSAqLworCQltZW1ibG9ja19zZXRfYm90dG9tX3VwKGlzX21lbWJsb2NrX2JvdHRvbV91cCk7CiAKKwkJaWYgKCFiYXNlKSB7CisJCQlwcl9lcnIoIkZhaWxlZCB0byBmaW5kIG1lbW9yeSBjaHVuayBmb3IgcmVzZXJ2YXRpb24hXG4iKTsKKwkJCWdvdG8gZXJyb3Jfb3V0OworCQl9CiAJCWZ3X2R1bXAucmVzZXJ2ZV9kdW1wX2FyZWFfc3RhcnQgPSBiYXNlOwotCQlmd19kdW1wLnJlc2VydmVfZHVtcF9hcmVhX3NpemUgPSBzaXplOwotCQlyZXR1cm4gZmFkdW1wX2NtYV9pbml0KCk7Ci0JfQotCXJldHVybiAxOwotfQogCi11bnNpZ25lZCBsb25nIF9faW5pdCBhcmNoX3Jlc2VydmVkX2tlcm5lbF9wYWdlcyh2b2lkKQotewotCXJldHVybiBtZW1ibG9ja19yZXNlcnZlZF9zaXplKCkgLyBQQUdFX1NJWkU7CisJCS8qCisJCSAqIENhbGN1bGF0ZSB0aGUga2VybmVsIG1ldGFkYXRhIGFkZHJlc3MgYW5kIHJlZ2lzdGVyIGl0IHdpdGgKKwkJICogZi93IGlmIHRoZSBwbGF0Zm9ybSBzdXBwb3J0cy4KKwkJICovCisJCWlmIChmd19kdW1wLm9wcy0+ZmFkdW1wX3NldHVwX21ldGFkYXRhICYmCisJCSAgICAoZndfZHVtcC5vcHMtPmZhZHVtcF9zZXR1cF9tZXRhZGF0YSgmZndfZHVtcCkgPCAwKSkKKwkJCWdvdG8gZXJyb3Jfb3V0OworCisJCWlmIChtZW1ibG9ja19yZXNlcnZlKGJhc2UsIHNpemUpKSB7CisJCQlwcl9lcnIoIkZhaWxlZCB0byByZXNlcnZlIG1lbW9yeSFcbiIpOworCQkJZ290byBlcnJvcl9vdXQ7CisJCX0KKworCQlwcl9pbmZvKCJSZXNlcnZlZCAlbGxkTUIgb2YgbWVtb3J5IGF0ICUjMDE2bGx4IChTeXN0ZW0gUkFNOiAlbGxkTUIpXG4iLAorCQkJKHNpemUgPj4gMjApLCBiYXNlLCAobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpID4+IDIwKSk7CisKKwkJcmV0ID0gZmFkdW1wX2NtYV9pbml0KCk7CisJfQorCisJcmV0dXJuIHJldDsKK2Vycm9yX291dDoKKwlmd19kdW1wLmZhZHVtcF9lbmFibGVkID0gMDsKKwlyZXR1cm4gMDsKIH0KIAogLyogTG9vayBmb3IgZmFkdW1wPSBjbWRsaW5lIG9wdGlvbi4gKi8KQEAgLTU5Niw2MSArNTkyLDYgQEAgc3RhdGljIGludCBfX2luaXQgZWFybHlfZmFkdW1wX3Jlc2VydmVfbWVtKGNoYXIgKnApCiB9CiBlYXJseV9wYXJhbSgiZmFkdW1wX3Jlc2VydmVfbWVtIiwgZWFybHlfZmFkdW1wX3Jlc2VydmVfbWVtKTsKIAotc3RhdGljIGludCByZWdpc3Rlcl9md19kdW1wKHN0cnVjdCBmYWR1bXBfbWVtX3N0cnVjdCAqZmRtKQotewotCWludCByYywgZXJyOwotCXVuc2lnbmVkIGludCB3YWl0X3RpbWU7Ci0KLQlwcl9kZWJ1ZygiUmVnaXN0ZXJpbmcgZm9yIGZpcm13YXJlLWFzc2lzdGVkIGtlcm5lbCBkdW1wLi4uXG4iKTsKLQotCS8qIFRPRE86IEFkZCB1cHBlciB0aW1lIGxpbWl0IGZvciB0aGUgZGVsYXkgKi8KLQlkbyB7Ci0JCXJjID0gcnRhc19jYWxsKGZ3X2R1bXAuaWJtX2NvbmZpZ3VyZV9rZXJuZWxfZHVtcCwgMywgMSwgTlVMTCwKLQkJCUZBRFVNUF9SRUdJU1RFUiwgZmRtLAotCQkJc2l6ZW9mKHN0cnVjdCBmYWR1bXBfbWVtX3N0cnVjdCkpOwotCi0JCXdhaXRfdGltZSA9IHJ0YXNfYnVzeV9kZWxheV90aW1lKHJjKTsKLQkJaWYgKHdhaXRfdGltZSkKLQkJCW1kZWxheSh3YWl0X3RpbWUpOwotCi0JfSB3aGlsZSAod2FpdF90aW1lKTsKLQotCWVyciA9IC1FSU87Ci0Jc3dpdGNoIChyYykgewotCWRlZmF1bHQ6Ci0JCXByX2VycigiRmFpbGVkIHRvIHJlZ2lzdGVyLiBVbmtub3duIEVycm9yKCVkKS5cbiIsIHJjKTsKLQkJYnJlYWs7Ci0JY2FzZSAtMToKLQkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gcmVnaXN0ZXIgZmlybXdhcmUtYXNzaXN0ZWQga2VybmVsIgotCQkJIiBkdW1wLiBIYXJkd2FyZSBFcnJvciglZCkuXG4iLCByYyk7Ci0JCWJyZWFrOwotCWNhc2UgLTM6Ci0JCWlmICghaXNfYm9vdF9tZW1vcnlfYXJlYV9jb250aWd1b3VzKCkpCi0JCQlwcl9lcnIoIkNhbid0IGhhdmUgaG9sZXMgaW4gYm9vdCBtZW1vcnkgYXJlYSB3aGlsZSByZWdpc3RlcmluZyBmYWR1bXBcbiIpOwotCQllbHNlIGlmICghaXNfcmVzZXJ2ZWRfbWVtb3J5X2FyZWFfY29udGlndW91cygpKQotCQkJcHJfZXJyKCJDYW4ndCBoYXZlIGhvbGVzIGluIHJlc2VydmVkIG1lbW9yeSBhcmVhIHdoaWxlIgotCQkJICAgICAgICIgcmVnaXN0ZXJpbmcgZmFkdW1wXG4iKTsKLQotCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byByZWdpc3RlciBmaXJtd2FyZS1hc3Npc3RlZCBrZXJuZWwiCi0JCQkiIGR1bXAuIFBhcmFtZXRlciBFcnJvciglZCkuXG4iLCByYyk7Ci0JCWVyciA9IC1FSU5WQUw7Ci0JCWJyZWFrOwotCWNhc2UgLTk6Ci0JCXByaW50ayhLRVJOX0VSUiAiZmlybXdhcmUtYXNzaXN0ZWQga2VybmVsIGR1bXAgaXMgYWxyZWFkeSAiCi0JCQkiIHJlZ2lzdGVyZWQuIik7Ci0JCWZ3X2R1bXAuZHVtcF9yZWdpc3RlcmVkID0gMTsKLQkJZXJyID0gLUVFWElTVDsKLQkJYnJlYWs7Ci0JY2FzZSAwOgotCQlwcmludGsoS0VSTl9JTkZPICJmaXJtd2FyZS1hc3Npc3RlZCBrZXJuZWwgZHVtcCByZWdpc3RyYXRpb24iCi0JCQkiIGlzIHN1Y2Nlc3NmdWxcbiIpOwotCQlmd19kdW1wLmR1bXBfcmVnaXN0ZXJlZCA9IDE7Ci0JCWVyciA9IDA7Ci0JCWJyZWFrOwotCX0KLQlyZXR1cm4gZXJyOwotfQotCiB2b2lkIGNyYXNoX2ZhZHVtcChzdHJ1Y3QgcHRfcmVncyAqcmVncywgY29uc3QgY2hhciAqc3RyKQogewogCXN0cnVjdCBmYWR1bXBfY3Jhc2hfaW5mb19oZWFkZXIgKmZkaCA9IE5VTEw7CkBAIC02OTMsNzEgKzYzNCwxMCBAQCB2b2lkIGNyYXNoX2ZhZHVtcChzdHJ1Y3QgcHRfcmVncyAqcmVncywgY29uc3QgY2hhciAqc3RyKQogCiAJZmRoLT5vbmxpbmVfbWFzayA9ICpjcHVfb25saW5lX21hc2s7CiAKLQkvKiBDYWxsIGlibSxvcy10ZXJtIHJ0YXMgY2FsbCB0byB0cmlnZ2VyIGZpcm13YXJlIGFzc2lzdGVkIGR1bXAgKi8KLQlydGFzX29zX3Rlcm0oKGNoYXIgKilzdHIpOworCWZ3X2R1bXAub3BzLT5mYWR1bXBfdHJpZ2dlcihmZGgsIHN0cik7CiB9CiAKLSNkZWZpbmUgR1BSX01BU0sJMHhmZmZmZmYwMDAwMDAwMDAwCi1zdGF0aWMgaW5saW5lIGludCBmYWR1bXBfZ3ByX2luZGV4KHU2NCBpZCkKLXsKLQlpbnQgaSA9IC0xOwotCWNoYXIgc3RyWzNdOwotCi0JaWYgKChpZCAmIEdQUl9NQVNLKSA9PSBSRUdfSUQoIkdQUiIpKSB7Ci0JCS8qIGdldCB0aGUgZGlnaXRzIGF0IHRoZSBlbmQgKi8KLQkJaWQgJj0gfkdQUl9NQVNLOwotCQlpZCA+Pj0gMjQ7Ci0JCXN0clsyXSA9ICdcMCc7Ci0JCXN0clsxXSA9IGlkICYgMHhmZjsKLQkJc3RyWzBdID0gKGlkID4+IDgpICYgMHhmZjsKLQkJc3NjYW5mKHN0ciwgIiVkIiwgJmkpOwotCQlpZiAoaSA+IDMxKQotCQkJaSA9IC0xOwotCX0KLQlyZXR1cm4gaTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGZhZHVtcF9zZXRfcmVndmFsKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1NjQgcmVnX2lkLAotCQkJCQkJCQl1NjQgcmVnX3ZhbCkKLXsKLQlpbnQgaTsKLQotCWkgPSBmYWR1bXBfZ3ByX2luZGV4KHJlZ19pZCk7Ci0JaWYgKGkgPj0gMCkKLQkJcmVncy0+Z3ByW2ldID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKLQllbHNlIGlmIChyZWdfaWQgPT0gUkVHX0lEKCJOSUEiKSkKLQkJcmVncy0+bmlwID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKLQllbHNlIGlmIChyZWdfaWQgPT0gUkVHX0lEKCJNU1IiKSkKLQkJcmVncy0+bXNyID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKLQllbHNlIGlmIChyZWdfaWQgPT0gUkVHX0lEKCJDVFIiKSkKLQkJcmVncy0+Y3RyID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKLQllbHNlIGlmIChyZWdfaWQgPT0gUkVHX0lEKCJMUiIpKQotCQlyZWdzLT5saW5rID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKLQllbHNlIGlmIChyZWdfaWQgPT0gUkVHX0lEKCJYRVIiKSkKLQkJcmVncy0+eGVyID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKLQllbHNlIGlmIChyZWdfaWQgPT0gUkVHX0lEKCJDUiIpKQotCQlyZWdzLT5jY3IgPSAodW5zaWduZWQgbG9uZylyZWdfdmFsOwotCWVsc2UgaWYgKHJlZ19pZCA9PSBSRUdfSUQoIkRBUiIpKQotCQlyZWdzLT5kYXIgPSAodW5zaWduZWQgbG9uZylyZWdfdmFsOwotCWVsc2UgaWYgKHJlZ19pZCA9PSBSRUdfSUQoIkRTSVNSIikpCi0JCXJlZ3MtPmRzaXNyID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKLX0KLQotc3RhdGljIHN0cnVjdCBmYWR1bXBfcmVnX2VudHJ5KgotZmFkdW1wX3JlYWRfcmVnaXN0ZXJzKHN0cnVjdCBmYWR1bXBfcmVnX2VudHJ5ICpyZWdfZW50cnksIHN0cnVjdCBwdF9yZWdzICpyZWdzKQotewotCW1lbXNldChyZWdzLCAwLCBzaXplb2Yoc3RydWN0IHB0X3JlZ3MpKTsKLQotCXdoaWxlIChiZTY0X3RvX2NwdShyZWdfZW50cnktPnJlZ19pZCkgIT0gUkVHX0lEKCJDUFVFTkQiKSkgewotCQlmYWR1bXBfc2V0X3JlZ3ZhbChyZWdzLCBiZTY0X3RvX2NwdShyZWdfZW50cnktPnJlZ19pZCksCi0JCQkJCWJlNjRfdG9fY3B1KHJlZ19lbnRyeS0+cmVnX3ZhbHVlKSk7Ci0JCXJlZ19lbnRyeSsrOwotCX0KLQlyZWdfZW50cnkrKzsKLQlyZXR1cm4gcmVnX2VudHJ5OwotfQotCi1zdGF0aWMgdTMyICpmYWR1bXBfcmVnc190b19lbGZfbm90ZXModTMyICpidWYsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQordTMyICpmYWR1bXBfcmVnc190b19lbGZfbm90ZXModTMyICpidWYsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXN0cnVjdCBlbGZfcHJzdGF0dXMgcHJzdGF0dXM7CiAKQEAgLTc3Miw3ICs2NTIsNyBAQCBzdGF0aWMgdTMyICpmYWR1bXBfcmVnc190b19lbGZfbm90ZXModTMyICpidWYsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCXJldHVybiBidWY7CiB9CiAKLXN0YXRpYyB2b2lkIGZhZHVtcF91cGRhdGVfZWxmY29yZV9oZWFkZXIoY2hhciAqYnVmcCkKK3ZvaWQgZmFkdW1wX3VwZGF0ZV9lbGZjb3JlX2hlYWRlcihjaGFyICpidWZwKQogewogCXN0cnVjdCBlbGZoZHIgKmVsZjsKIAlzdHJ1Y3QgZWxmX3BoZHIgKnBoZHI7CkBAIC03ODQsNyArNjY0LDcgQEAgc3RhdGljIHZvaWQgZmFkdW1wX3VwZGF0ZV9lbGZjb3JlX2hlYWRlcihjaGFyICpidWZwKQogCXBoZHIgPSAoc3RydWN0IGVsZl9waGRyICopYnVmcDsKIAogCWlmIChwaGRyLT5wX3R5cGUgPT0gUFRfTk9URSkgewotCQlwaGRyLT5wX3BhZGRyID0gZndfZHVtcC5jcHVfbm90ZXNfYnVmOworCQlwaGRyLT5wX3BhZGRyCT0gX19wYShmd19kdW1wLmNwdV9ub3Rlc19idWZfdmFkZHIpOwogCQlwaGRyLT5wX29mZnNldAk9IHBoZHItPnBfcGFkZHI7CiAJCXBoZHItPnBfZmlsZXN6CT0gZndfZHVtcC5jcHVfbm90ZXNfYnVmX3NpemU7CiAJCXBoZHItPnBfbWVtc3ogPSBmd19kdW1wLmNwdV9ub3Rlc19idWZfc2l6ZTsKQEAgLTc5MiwyMjggKzY3MiwxMDAgQEAgc3RhdGljIHZvaWQgZmFkdW1wX3VwZGF0ZV9lbGZjb3JlX2hlYWRlcihjaGFyICpidWZwKQogCXJldHVybjsKIH0KIAotc3RhdGljIHZvaWQgKmZhZHVtcF9jcHVfbm90ZXNfYnVmX2FsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3N0YXRpYyB2b2lkICpmYWR1bXBfYWxsb2NfYnVmZmVyKHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKLQl2b2lkICp2YWRkcjsKKwl1bnNpZ25lZCBsb25nIGNvdW50LCBpOwogCXN0cnVjdCBwYWdlICpwYWdlOwotCXVuc2lnbmVkIGxvbmcgb3JkZXIsIGNvdW50LCBpOworCXZvaWQgKnZhZGRyOwogCi0Jb3JkZXIgPSBnZXRfb3JkZXIoc2l6ZSk7Ci0JdmFkZHIgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTHxfX0dGUF9aRVJPLCBvcmRlcik7CisJdmFkZHIgPSBhbGxvY19wYWdlc19leGFjdChzaXplLCBHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CiAJaWYgKCF2YWRkcikKIAkJcmV0dXJuIE5VTEw7CiAKLQljb3VudCA9IDEgPDwgb3JkZXI7CisJY291bnQgPSBQQUdFX0FMSUdOKHNpemUpIC8gUEFHRV9TSVpFOwogCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UodmFkZHIpOwogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotCQlTZXRQYWdlUmVzZXJ2ZWQocGFnZSArIGkpOworCQltYXJrX3BhZ2VfcmVzZXJ2ZWQocGFnZSArIGkpOwogCXJldHVybiB2YWRkcjsKIH0KIAotc3RhdGljIHZvaWQgZmFkdW1wX2NwdV9ub3Rlc19idWZfZnJlZSh1bnNpZ25lZCBsb25nIHZhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCitzdGF0aWMgdm9pZCBmYWR1bXBfZnJlZV9idWZmZXIodW5zaWduZWQgbG9uZyB2YWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQogewotCXN0cnVjdCBwYWdlICpwYWdlOwotCXVuc2lnbmVkIGxvbmcgb3JkZXIsIGNvdW50LCBpOwotCi0Jb3JkZXIgPSBnZXRfb3JkZXIoc2l6ZSk7Ci0JY291bnQgPSAxIDw8IG9yZGVyOwotCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UodmFkZHIpOwotCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotCQlDbGVhclBhZ2VSZXNlcnZlZChwYWdlICsgaSk7Ci0JX19mcmVlX3BhZ2VzKHBhZ2UsIG9yZGVyKTsKKwlmcmVlX3Jlc2VydmVkX2FyZWEoKHZvaWQgKil2YWRkciwgKHZvaWQgKikodmFkZHIgKyBzaXplKSwgLTEsIE5VTEwpOwogfQogCi0vKgotICogUmVhZCBDUFUgc3RhdGUgZHVtcCBkYXRhIGFuZCBjb252ZXJ0IGl0IGludG8gRUxGIG5vdGVzLgotICogVGhlIENQVSBkdW1wIHN0YXJ0cyB3aXRoIG1hZ2ljIG51bWJlciAiUkVHU0FWRSIuIE51bUNwdXNPZmZzZXQgc2hvdWxkIGJlCi0gKiB1c2VkIHRvIGFjY2VzcyB0aGUgZGF0YSB0byBhbGxvdyBmb3IgYWRkaXRpb25hbCBmaWVsZHMgdG8gYmUgYWRkZWQgd2l0aG91dAotICogYWZmZWN0aW5nIGNvbXBhdGliaWxpdHkuIEVhY2ggbGlzdCBvZiByZWdpc3RlcnMgZm9yIGEgQ1BVIHN0YXJ0cyB3aXRoCi0gKiAiQ1BVU1RSVCIgYW5kIGVuZHMgd2l0aCAiQ1BVRU5EIi4gRWFjaCByZWdpc3RlciBlbnRyeSBpcyBvZiAxNiBieXRlcywKLSAqIDggQnl0ZSBBU0NJSSBpZGVudGlmaWVyIGFuZCA4IEJ5dGUgcmVnaXN0ZXIgdmFsdWUuIFRoZSByZWdpc3RlciBlbnRyeQotICogd2l0aCBpZGVudGlmaWVyICJDUFVTVFJUIiBhbmQgIkNQVUVORCIgY29udGFpbnMgNCBieXRlIGNwdSBpZCBhcyBwYXJ0Ci0gKiBvZiByZWdpc3RlciB2YWx1ZS4gRm9yIG1vcmUgZGV0YWlscyByZWZlciB0byBQQVBSIGRvY3VtZW50LgotICoKLSAqIE9ubHkgZm9yIHRoZSBjcmFzaGluZyBjcHUgd2UgaWdub3JlIHRoZSBDUFUgZHVtcCBkYXRhIGFuZCBnZXQgZXhhY3QKLSAqIHN0YXRlIGZyb20gZmFkdW1wIGNyYXNoIGluZm8gc3RydWN0dXJlIHBvcHVsYXRlZCBieSBmaXJzdCBrZXJuZWwgYXQgdGhlCi0gKiB0aW1lIG9mIGNyYXNoLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBmYWR1bXBfYnVpbGRfY3B1X25vdGVzKGNvbnN0IHN0cnVjdCBmYWR1bXBfbWVtX3N0cnVjdCAqZmRtKQorczMyIGZhZHVtcF9zZXR1cF9jcHVfbm90ZXNfYnVmKHUzMiBudW1fY3B1cykKIHsKLQlzdHJ1Y3QgZmFkdW1wX3JlZ19zYXZlX2FyZWFfaGVhZGVyICpyZWdfaGVhZGVyOwotCXN0cnVjdCBmYWR1bXBfcmVnX2VudHJ5ICpyZWdfZW50cnk7Ci0Jc3RydWN0IGZhZHVtcF9jcmFzaF9pbmZvX2hlYWRlciAqZmRoID0gTlVMTDsKLQl2b2lkICp2YWRkcjsKLQl1bnNpZ25lZCBsb25nIGFkZHI7Ci0JdTMyIG51bV9jcHVzLCAqbm90ZV9idWY7Ci0Jc3RydWN0IHB0X3JlZ3MgcmVnczsKLQlpbnQgaSwgcmMgPSAwLCBjcHUgPSAwOwotCi0JaWYgKCFmZG0tPmNwdV9zdGF0ZV9kYXRhLmJ5dGVzX2R1bXBlZCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlhZGRyID0gYmU2NF90b19jcHUoZmRtLT5jcHVfc3RhdGVfZGF0YS5kZXN0aW5hdGlvbl9hZGRyZXNzKTsKLQl2YWRkciA9IF9fdmEoYWRkcik7Ci0KLQlyZWdfaGVhZGVyID0gdmFkZHI7Ci0JaWYgKGJlNjRfdG9fY3B1KHJlZ19oZWFkZXItPm1hZ2ljX251bWJlcikgIT0gUkVHU0FWRV9BUkVBX01BR0lDKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiVW5hYmxlIHRvIHJlYWQgcmVnaXN0ZXIgc2F2ZSBhcmVhLlxuIik7Ci0JCXJldHVybiAtRU5PRU5UOwotCX0KLQlwcl9kZWJ1ZygiLS0tLS0tLS1DUFUgU3RhdGUgRGF0YS0tLS0tLS0tLS0tLVxuIik7Ci0JcHJfZGVidWcoIk1hZ2ljIE51bWJlcjogJWxseFxuIiwgYmU2NF90b19jcHUocmVnX2hlYWRlci0+bWFnaWNfbnVtYmVyKSk7Ci0JcHJfZGVidWcoIk51bUNwdU9mZnNldDogJXhcbiIsIGJlMzJfdG9fY3B1KHJlZ19oZWFkZXItPm51bV9jcHVfb2Zmc2V0KSk7Ci0KLQl2YWRkciArPSBiZTMyX3RvX2NwdShyZWdfaGVhZGVyLT5udW1fY3B1X29mZnNldCk7Ci0JbnVtX2NwdXMgPSBiZTMyX3RvX2NwdSgqKChfX2JlMzIgKikodmFkZHIpKSk7Ci0JcHJfZGVidWcoIk51bUNwdXMgICAgIDogJXVcbiIsIG51bV9jcHVzKTsKLQl2YWRkciArPSBzaXplb2YodTMyKTsKLQlyZWdfZW50cnkgPSAoc3RydWN0IGZhZHVtcF9yZWdfZW50cnkgKil2YWRkcjsKLQogCS8qIEFsbG9jYXRlIGJ1ZmZlciB0byBob2xkIGNwdSBjcmFzaCBub3Rlcy4gKi8KIAlmd19kdW1wLmNwdV9ub3Rlc19idWZfc2l6ZSA9IG51bV9jcHVzICogc2l6ZW9mKG5vdGVfYnVmX3QpOwogCWZ3X2R1bXAuY3B1X25vdGVzX2J1Zl9zaXplID0gUEFHRV9BTElHTihmd19kdW1wLmNwdV9ub3Rlc19idWZfc2l6ZSk7Ci0Jbm90ZV9idWYgPSBmYWR1bXBfY3B1X25vdGVzX2J1Zl9hbGxvYyhmd19kdW1wLmNwdV9ub3Rlc19idWZfc2l6ZSk7Ci0JaWYgKCFub3RlX2J1ZikgewotCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBhbGxvY2F0ZSAweCVseCBieXRlcyBmb3IgIgotCQkJImNwdSBub3RlcyBidWZmZXJcbiIsIGZ3X2R1bXAuY3B1X25vdGVzX2J1Zl9zaXplKTsKKwlmd19kdW1wLmNwdV9ub3Rlc19idWZfdmFkZHIgPQorCQkodW5zaWduZWQgbG9uZylmYWR1bXBfYWxsb2NfYnVmZmVyKGZ3X2R1bXAuY3B1X25vdGVzX2J1Zl9zaXplKTsKKwlpZiAoIWZ3X2R1bXAuY3B1X25vdGVzX2J1Zl92YWRkcikgeworCQlwcl9lcnIoIkZhaWxlZCB0byBhbGxvY2F0ZSAlbGQgYnl0ZXMgZm9yIENQVSBub3RlcyBidWZmZXJcbiIsCisJCSAgICAgICBmd19kdW1wLmNwdV9ub3Rlc19idWZfc2l6ZSk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KLQlmd19kdW1wLmNwdV9ub3Rlc19idWYgPSBfX3BhKG5vdGVfYnVmKTsKIAotCXByX2RlYnVnKCJBbGxvY2F0ZWQgYnVmZmVyIGZvciBjcHUgbm90ZXMgb2Ygc2l6ZSAlbGQgYXQgJXBcbiIsCi0JCQkobnVtX2NwdXMgKiBzaXplb2Yobm90ZV9idWZfdCkpLCBub3RlX2J1Zik7Ci0KLQlpZiAoZndfZHVtcC5mYWR1bXBoZHJfYWRkcikKLQkJZmRoID0gX192YShmd19kdW1wLmZhZHVtcGhkcl9hZGRyKTsKLQotCWZvciAoaSA9IDA7IGkgPCBudW1fY3B1czsgaSsrKSB7Ci0JCWlmIChiZTY0X3RvX2NwdShyZWdfZW50cnktPnJlZ19pZCkgIT0gUkVHX0lEKCJDUFVTVFJUIikpIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiVW5hYmxlIHRvIHJlYWQgQ1BVIHN0YXRlIGRhdGFcbiIpOwotCQkJcmMgPSAtRU5PRU5UOwotCQkJZ290byBlcnJvcl9vdXQ7Ci0JCX0KLQkJLyogTG93ZXIgNCBieXRlcyBvZiByZWdfdmFsdWUgY29udGFpbnMgbG9naWNhbCBjcHUgaWQgKi8KLQkJY3B1ID0gYmU2NF90b19jcHUocmVnX2VudHJ5LT5yZWdfdmFsdWUpICYgRkFEVU1QX0NQVV9JRF9NQVNLOwotCQlpZiAoZmRoICYmICFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgJmZkaC0+b25saW5lX21hc2spKSB7Ci0JCQlTS0lQX1RPX05FWFRfQ1BVKHJlZ19lbnRyeSk7Ci0JCQljb250aW51ZTsKLQkJfQotCQlwcl9kZWJ1ZygiUmVhZGluZyByZWdpc3RlciBkYXRhIGZvciBjcHUgJWQuLi5cbiIsIGNwdSk7Ci0JCWlmIChmZGggJiYgZmRoLT5jcmFzaGluZ19jcHUgPT0gY3B1KSB7Ci0JCQlyZWdzID0gZmRoLT5yZWdzOwotCQkJbm90ZV9idWYgPSBmYWR1bXBfcmVnc190b19lbGZfbm90ZXMobm90ZV9idWYsICZyZWdzKTsKLQkJCVNLSVBfVE9fTkVYVF9DUFUocmVnX2VudHJ5KTsKLQkJfSBlbHNlIHsKLQkJCXJlZ19lbnRyeSsrOwotCQkJcmVnX2VudHJ5ID0gZmFkdW1wX3JlYWRfcmVnaXN0ZXJzKHJlZ19lbnRyeSwgJnJlZ3MpOwotCQkJbm90ZV9idWYgPSBmYWR1bXBfcmVnc190b19lbGZfbm90ZXMobm90ZV9idWYsICZyZWdzKTsKLQkJfQotCX0KLQlmaW5hbF9ub3RlKG5vdGVfYnVmKTsKLQotCWlmIChmZGgpIHsKLQkJcHJfZGVidWcoIlVwZGF0aW5nIGVsZmNvcmUgaGVhZGVyICglbGx4KSB3aXRoIGNwdSBub3Rlc1xuIiwKLQkJCQkJCQlmZGgtPmVsZmNvcmVoZHJfYWRkcik7Ci0JCWZhZHVtcF91cGRhdGVfZWxmY29yZV9oZWFkZXIoKGNoYXIgKilfX3ZhKGZkaC0+ZWxmY29yZWhkcl9hZGRyKSk7Ci0JfQorCXByX2RlYnVnKCJBbGxvY2F0ZWQgYnVmZmVyIGZvciBjcHUgbm90ZXMgb2Ygc2l6ZSAlbGQgYXQgMHglbHhcbiIsCisJCSBmd19kdW1wLmNwdV9ub3Rlc19idWZfc2l6ZSwKKwkJIGZ3X2R1bXAuY3B1X25vdGVzX2J1Zl92YWRkcik7CiAJcmV0dXJuIDA7Cit9CiAKLWVycm9yX291dDoKLQlmYWR1bXBfY3B1X25vdGVzX2J1Zl9mcmVlKCh1bnNpZ25lZCBsb25nKV9fdmEoZndfZHVtcC5jcHVfbm90ZXNfYnVmKSwKLQkJCQkJZndfZHVtcC5jcHVfbm90ZXNfYnVmX3NpemUpOwotCWZ3X2R1bXAuY3B1X25vdGVzX2J1ZiA9IDA7Cit2b2lkIGZhZHVtcF9mcmVlX2NwdV9ub3Rlc19idWYodm9pZCkKK3sKKwlpZiAoIWZ3X2R1bXAuY3B1X25vdGVzX2J1Zl92YWRkcikKKwkJcmV0dXJuOworCisJZmFkdW1wX2ZyZWVfYnVmZmVyKGZ3X2R1bXAuY3B1X25vdGVzX2J1Zl92YWRkciwKKwkJCSAgIGZ3X2R1bXAuY3B1X25vdGVzX2J1Zl9zaXplKTsKKwlmd19kdW1wLmNwdV9ub3Rlc19idWZfdmFkZHIgPSAwOwogCWZ3X2R1bXAuY3B1X25vdGVzX2J1Zl9zaXplID0gMDsKLQlyZXR1cm4gcmM7Cit9CiAKK3N0YXRpYyB2b2lkIGZhZHVtcF9mcmVlX21lbV9yYW5nZXMoc3RydWN0IGZhZHVtcF9tcmFuZ2VfaW5mbyAqbXJhbmdlX2luZm8pCit7CisJa2ZyZWUobXJhbmdlX2luZm8tPm1lbV9yYW5nZXMpOworCW1yYW5nZV9pbmZvLT5tZW1fcmFuZ2VzID0gTlVMTDsKKwltcmFuZ2VfaW5mby0+bWVtX3Jhbmdlc19zeiA9IDA7CisJbXJhbmdlX2luZm8tPm1heF9tZW1fcmFuZ2VzID0gMDsKIH0KIAogLyoKLSAqIFZhbGlkYXRlIGFuZCBwcm9jZXNzIHRoZSBkdW1wIGRhdGEgc3RvcmVkIGJ5IGZpcm13YXJlIGJlZm9yZSBleHBvcnRpbmcKLSAqIGl0IHRocm91Z2ggJy9wcm9jL3ZtY29yZScuCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IHByb2Nlc3NfZmFkdW1wKGNvbnN0IHN0cnVjdCBmYWR1bXBfbWVtX3N0cnVjdCAqZmRtX2FjdGl2ZSkKLXsKLQlzdHJ1Y3QgZmFkdW1wX2NyYXNoX2luZm9faGVhZGVyICpmZGg7Ci0JaW50IHJjID0gMDsKLQotCWlmICghZmRtX2FjdGl2ZSB8fCAhZndfZHVtcC5mYWR1bXBoZHJfYWRkcikKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQkvKiBDaGVjayBpZiB0aGUgZHVtcCBkYXRhIGlzIHZhbGlkLiAqLwotCWlmICgoYmUxNl90b19jcHUoZmRtX2FjdGl2ZS0+aGVhZGVyLmR1bXBfc3RhdHVzX2ZsYWcpID09IEZBRFVNUF9FUlJPUl9GTEFHKSB8fAotCQkJKGZkbV9hY3RpdmUtPmNwdV9zdGF0ZV9kYXRhLmVycm9yX2ZsYWdzICE9IDApIHx8Ci0JCQkoZmRtX2FjdGl2ZS0+cm1yX3JlZ2lvbi5lcnJvcl9mbGFncyAhPSAwKSkgewotCQlwcmludGsoS0VSTl9FUlIgIkR1bXAgdGFrZW4gYnkgcGxhdGZvcm0gaXMgbm90IHZhbGlkXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCWlmICgoZmRtX2FjdGl2ZS0+cm1yX3JlZ2lvbi5ieXRlc19kdW1wZWQgIT0KLQkJCWZkbV9hY3RpdmUtPnJtcl9yZWdpb24uc291cmNlX2xlbikgfHwKLQkJCSFmZG1fYWN0aXZlLT5jcHVfc3RhdGVfZGF0YS5ieXRlc19kdW1wZWQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJEdW1wIHRha2VuIGJ5IHBsYXRmb3JtIGlzIGluY29tcGxldGVcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBWYWxpZGF0ZSB0aGUgZmFkdW1wIGNyYXNoIGluZm8gaGVhZGVyICovCi0JZmRoID0gX192YShmd19kdW1wLmZhZHVtcGhkcl9hZGRyKTsKLQlpZiAoZmRoLT5tYWdpY19udW1iZXIgIT0gRkFEVU1QX0NSQVNIX0lORk9fTUFHSUMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJDcmFzaCBpbmZvIGhlYWRlciBpcyBub3QgdmFsaWQuXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmMgPSBmYWR1bXBfYnVpbGRfY3B1X25vdGVzKGZkbV9hY3RpdmUpOwotCWlmIChyYykKLQkJcmV0dXJuIHJjOwotCi0JLyoKLQkgKiBXZSBhcmUgZG9uZSB2YWxpZGF0aW5nIGR1bXAgaW5mbyBhbmQgZWxmY29yZSBoZWFkZXIgaXMgbm93IHJlYWR5Ci0JICogdG8gYmUgZXhwb3J0ZWQuIHNldCBlbGZjb3JlaGRyX2FkZHIgc28gdGhhdCB2bWNvcmUgbW9kdWxlIHdpbGwKLQkgKiBleHBvcnQgdGhlIGVsZmNvcmUgaGVhZGVyIHRocm91Z2ggJy9wcm9jL3ZtY29yZScuCi0JICovCi0JZWxmY29yZWhkcl9hZGRyID0gZmRoLT5lbGZjb3JlaGRyX2FkZHI7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZnJlZV9jcmFzaF9tZW1vcnlfcmFuZ2VzKHZvaWQpCi17Ci0Ja2ZyZWUoY3Jhc2hfbWVtb3J5X3Jhbmdlcyk7Ci0JY3Jhc2hfbWVtb3J5X3JhbmdlcyA9IE5VTEw7Ci0JY3Jhc2hfbWVtb3J5X3Jhbmdlc19zaXplID0gMDsKLQltYXhfY3Jhc2hfbWVtX3JhbmdlcyA9IDA7Ci19Ci0KLS8qCi0gKiBBbGxvY2F0ZSBvciByZWFsbG9jYXRlIGNyYXNoIG1lbW9yeSByYW5nZXMgYXJyYXkgaW4gaW5jcmVtZW50YWwgdW5pdHMKKyAqIEFsbG9jYXRlIG9yIHJlYWxsb2NhdGUgbWVtX3JhbmdlcyBhcnJheSBpbiBpbmNyZW1lbnRhbCB1bml0cwogICogb2YgUEFHRV9TSVpFLgogICovCi1zdGF0aWMgaW50IGFsbG9jYXRlX2NyYXNoX21lbW9yeV9yYW5nZXModm9pZCkKK3N0YXRpYyBpbnQgZmFkdW1wX2FsbG9jX21lbV9yYW5nZXMoc3RydWN0IGZhZHVtcF9tcmFuZ2VfaW5mbyAqbXJhbmdlX2luZm8pCiB7Ci0Jc3RydWN0IGZhZF9jcmFzaF9tZW1vcnlfcmFuZ2VzICpuZXdfYXJyYXk7CisJc3RydWN0IGZhZHVtcF9tZW1vcnlfcmFuZ2UgKm5ld19hcnJheTsKIAl1NjQgbmV3X3NpemU7CiAKLQluZXdfc2l6ZSA9IGNyYXNoX21lbW9yeV9yYW5nZXNfc2l6ZSArIFBBR0VfU0laRTsKLQlwcl9kZWJ1ZygiQWxsb2NhdGluZyAlbGx1IGJ5dGVzIG9mIG1lbW9yeSBmb3IgY3Jhc2ggbWVtb3J5IHJhbmdlc1xuIiwKLQkJIG5ld19zaXplKTsKKwluZXdfc2l6ZSA9IG1yYW5nZV9pbmZvLT5tZW1fcmFuZ2VzX3N6ICsgUEFHRV9TSVpFOworCXByX2RlYnVnKCJBbGxvY2F0aW5nICVsbHUgYnl0ZXMgb2YgbWVtb3J5IGZvciAlcyBtZW1vcnkgcmFuZ2VzXG4iLAorCQkgbmV3X3NpemUsIG1yYW5nZV9pbmZvLT5uYW1lKTsKIAotCW5ld19hcnJheSA9IGtyZWFsbG9jKGNyYXNoX21lbW9yeV9yYW5nZXMsIG5ld19zaXplLCBHRlBfS0VSTkVMKTsKKwluZXdfYXJyYXkgPSBrcmVhbGxvYyhtcmFuZ2VfaW5mby0+bWVtX3JhbmdlcywgbmV3X3NpemUsIEdGUF9LRVJORUwpOwogCWlmIChuZXdfYXJyYXkgPT0gTlVMTCkgewotCQlwcl9lcnIoIkluc3VmZmljaWVudCBtZW1vcnkgZm9yIHNldHRpbmcgdXAgY3Jhc2ggbWVtb3J5IHJhbmdlc1xuIik7Ci0JCWZyZWVfY3Jhc2hfbWVtb3J5X3JhbmdlcygpOworCQlwcl9lcnIoIkluc3VmZmljaWVudCBtZW1vcnkgZm9yIHNldHRpbmcgdXAgJXMgbWVtb3J5IHJhbmdlc1xuIiwKKwkJICAgICAgIG1yYW5nZV9pbmZvLT5uYW1lKTsKKwkJZmFkdW1wX2ZyZWVfbWVtX3JhbmdlcyhtcmFuZ2VfaW5mbyk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAotCWNyYXNoX21lbW9yeV9yYW5nZXMgPSBuZXdfYXJyYXk7Ci0JY3Jhc2hfbWVtb3J5X3Jhbmdlc19zaXplID0gbmV3X3NpemU7Ci0JbWF4X2NyYXNoX21lbV9yYW5nZXMgPSAobmV3X3NpemUgLwotCQkJCXNpemVvZihzdHJ1Y3QgZmFkX2NyYXNoX21lbW9yeV9yYW5nZXMpKTsKKwltcmFuZ2VfaW5mby0+bWVtX3JhbmdlcyA9IG5ld19hcnJheTsKKwltcmFuZ2VfaW5mby0+bWVtX3Jhbmdlc19zeiA9IG5ld19zaXplOworCW1yYW5nZV9pbmZvLT5tYXhfbWVtX3JhbmdlcyA9IChuZXdfc2l6ZSAvCisJCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgZmFkdW1wX21lbW9yeV9yYW5nZSkpOwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBmYWR1bXBfYWRkX2NyYXNoX21lbW9yeSh1bnNpZ25lZCBsb25nIGxvbmcgYmFzZSwKLQkJCQkJICB1bnNpZ25lZCBsb25nIGxvbmcgZW5kKQorc3RhdGljIGlubGluZSBpbnQgZmFkdW1wX2FkZF9tZW1fcmFuZ2Uoc3RydWN0IGZhZHVtcF9tcmFuZ2VfaW5mbyAqbXJhbmdlX2luZm8sCisJCQkJICAgICAgIHU2NCBiYXNlLCB1NjQgZW5kKQogewotCXU2NCAgc3RhcnQsIHNpemU7CisJc3RydWN0IGZhZHVtcF9tZW1vcnlfcmFuZ2UgKm1lbV9yYW5nZXMgPSBtcmFuZ2VfaW5mby0+bWVtX3JhbmdlczsKIAlib29sIGlzX2FkamFjZW50ID0gZmFsc2U7CisJdTY0IHN0YXJ0LCBzaXplOwogCiAJaWYgKGJhc2UgPT0gZW5kKQogCQlyZXR1cm4gMDsKQEAgLTEwMjIsMzggKzc3NCw0MSBAQCBzdGF0aWMgaW5saW5lIGludCBmYWR1bXBfYWRkX2NyYXNoX21lbW9yeSh1bnNpZ25lZCBsb25nIGxvbmcgYmFzZSwKIAkgKiBGb2xkIGFkamFjZW50IG1lbW9yeSByYW5nZXMgdG8gYnJpbmcgZG93biB0aGUgbWVtb3J5IHJhbmdlcy8KIAkgKiBQVF9MT0FEIHNlZ21lbnRzIGNvdW50LgogCSAqLwotCWlmIChjcmFzaF9tZW1fcmFuZ2VzKSB7Ci0JCXN0YXJ0ID0gY3Jhc2hfbWVtb3J5X3Jhbmdlc1tjcmFzaF9tZW1fcmFuZ2VzIC0gMV0uYmFzZTsKLQkJc2l6ZSA9IGNyYXNoX21lbW9yeV9yYW5nZXNbY3Jhc2hfbWVtX3JhbmdlcyAtIDFdLnNpemU7CisJaWYgKG1yYW5nZV9pbmZvLT5tZW1fcmFuZ2VfY250KSB7CisJCXN0YXJ0ID0gbWVtX3Jhbmdlc1ttcmFuZ2VfaW5mby0+bWVtX3JhbmdlX2NudCAtIDFdLmJhc2U7CisJCXNpemUgID0gbWVtX3Jhbmdlc1ttcmFuZ2VfaW5mby0+bWVtX3JhbmdlX2NudCAtIDFdLnNpemU7CiAKIAkJaWYgKChzdGFydCArIHNpemUpID09IGJhc2UpCiAJCQlpc19hZGphY2VudCA9IHRydWU7CiAJfQogCWlmICghaXNfYWRqYWNlbnQpIHsKIAkJLyogcmVzaXplIHRoZSBhcnJheSBvbiByZWFjaGluZyB0aGUgbGltaXQgKi8KLQkJaWYgKGNyYXNoX21lbV9yYW5nZXMgPT0gbWF4X2NyYXNoX21lbV9yYW5nZXMpIHsKKwkJaWYgKG1yYW5nZV9pbmZvLT5tZW1fcmFuZ2VfY250ID09IG1yYW5nZV9pbmZvLT5tYXhfbWVtX3JhbmdlcykgewogCQkJaW50IHJldDsKIAotCQkJcmV0ID0gYWxsb2NhdGVfY3Jhc2hfbWVtb3J5X3JhbmdlcygpOworCQkJcmV0ID0gZmFkdW1wX2FsbG9jX21lbV9yYW5nZXMobXJhbmdlX2luZm8pOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0OworCisJCQkvKiBVcGRhdGUgdG8gdGhlIG5ldyByZXNpemVkIGFycmF5ICovCisJCQltZW1fcmFuZ2VzID0gbXJhbmdlX2luZm8tPm1lbV9yYW5nZXM7CiAJCX0KIAogCQlzdGFydCA9IGJhc2U7Ci0JCWNyYXNoX21lbW9yeV9yYW5nZXNbY3Jhc2hfbWVtX3Jhbmdlc10uYmFzZSA9IHN0YXJ0OwotCQljcmFzaF9tZW1fcmFuZ2VzKys7CisJCW1lbV9yYW5nZXNbbXJhbmdlX2luZm8tPm1lbV9yYW5nZV9jbnRdLmJhc2UgPSBzdGFydDsKKwkJbXJhbmdlX2luZm8tPm1lbV9yYW5nZV9jbnQrKzsKIAl9CiAKLQljcmFzaF9tZW1vcnlfcmFuZ2VzW2NyYXNoX21lbV9yYW5nZXMgLSAxXS5zaXplID0gKGVuZCAtIHN0YXJ0KTsKLQlwcl9kZWJ1ZygiY3Jhc2hfbWVtb3J5X3JhbmdlWyVkXSBbJSMwMTZsbHgtJSMwMTZsbHhdLCAlI2xseCBieXRlc1xuIiwKLQkJKGNyYXNoX21lbV9yYW5nZXMgLSAxKSwgc3RhcnQsIGVuZCAtIDEsIChlbmQgLSBzdGFydCkpOworCW1lbV9yYW5nZXNbbXJhbmdlX2luZm8tPm1lbV9yYW5nZV9jbnQgLSAxXS5zaXplID0gKGVuZCAtIHN0YXJ0KTsKKwlwcl9kZWJ1ZygiJXNfbWVtb3J5X3JhbmdlWyVkXSBbJSMwMTZsbHgtJSMwMTZsbHhdLCAlI2xseCBieXRlc1xuIiwKKwkJIG1yYW5nZV9pbmZvLT5uYW1lLCAobXJhbmdlX2luZm8tPm1lbV9yYW5nZV9jbnQgLSAxKSwKKwkJIHN0YXJ0LCBlbmQgLSAxLCAoZW5kIC0gc3RhcnQpKTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBmYWR1bXBfZXhjbHVkZV9yZXNlcnZlZF9hcmVhKHVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCwKLQkJCQkJdW5zaWduZWQgbG9uZyBsb25nIGVuZCkKK3N0YXRpYyBpbnQgZmFkdW1wX2V4Y2x1ZGVfcmVzZXJ2ZWRfYXJlYSh1NjQgc3RhcnQsIHU2NCBlbmQpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nIHJhX3N0YXJ0LCByYV9lbmQ7CisJdTY0IHJhX3N0YXJ0LCByYV9lbmQ7CiAJaW50IHJldCA9IDA7CiAKIAlyYV9zdGFydCA9IGZ3X2R1bXAucmVzZXJ2ZV9kdW1wX2FyZWFfc3RhcnQ7CkBAIC0xMDYxLDE4ICs4MTYsMjIgQEAgc3RhdGljIGludCBmYWR1bXBfZXhjbHVkZV9yZXNlcnZlZF9hcmVhKHVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCwKIAogCWlmICgocmFfc3RhcnQgPCBlbmQpICYmIChyYV9lbmQgPiBzdGFydCkpIHsKIAkJaWYgKChzdGFydCA8IHJhX3N0YXJ0KSAmJiAoZW5kID4gcmFfZW5kKSkgewotCQkJcmV0ID0gZmFkdW1wX2FkZF9jcmFzaF9tZW1vcnkoc3RhcnQsIHJhX3N0YXJ0KTsKKwkJCXJldCA9IGZhZHVtcF9hZGRfbWVtX3JhbmdlKCZjcmFzaF9tcmFuZ2VfaW5mbywKKwkJCQkJCSAgIHN0YXJ0LCByYV9zdGFydCk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAKLQkJCXJldCA9IGZhZHVtcF9hZGRfY3Jhc2hfbWVtb3J5KHJhX2VuZCwgZW5kKTsKKwkJCXJldCA9IGZhZHVtcF9hZGRfbWVtX3JhbmdlKCZjcmFzaF9tcmFuZ2VfaW5mbywKKwkJCQkJCSAgIHJhX2VuZCwgZW5kKTsKIAkJfSBlbHNlIGlmIChzdGFydCA8IHJhX3N0YXJ0KSB7Ci0JCQlyZXQgPSBmYWR1bXBfYWRkX2NyYXNoX21lbW9yeShzdGFydCwgcmFfc3RhcnQpOworCQkJcmV0ID0gZmFkdW1wX2FkZF9tZW1fcmFuZ2UoJmNyYXNoX21yYW5nZV9pbmZvLAorCQkJCQkJICAgc3RhcnQsIHJhX3N0YXJ0KTsKIAkJfSBlbHNlIGlmIChyYV9lbmQgPCBlbmQpIHsKLQkJCXJldCA9IGZhZHVtcF9hZGRfY3Jhc2hfbWVtb3J5KHJhX2VuZCwgZW5kKTsKKwkJCXJldCA9IGZhZHVtcF9hZGRfbWVtX3JhbmdlKCZjcmFzaF9tcmFuZ2VfaW5mbywKKwkJCQkJCSAgIHJhX2VuZCwgZW5kKTsKIAkJfQogCX0gZWxzZQotCQlyZXQgPSBmYWR1bXBfYWRkX2NyYXNoX21lbW9yeShzdGFydCwgZW5kKTsKKwkJcmV0ID0gZmFkdW1wX2FkZF9tZW1fcmFuZ2UoJmNyYXNoX21yYW5nZV9pbmZvLCBzdGFydCwgZW5kKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xMTE3LDM2ICs4NzYsMzYgQEAgc3RhdGljIGludCBmYWR1bXBfaW5pdF9lbGZjb3JlX2hlYWRlcihjaGFyICpidWZwKQogc3RhdGljIGludCBmYWR1bXBfc2V0dXBfY3Jhc2hfbWVtb3J5X3Jhbmdlcyh2b2lkKQogewogCXN0cnVjdCBtZW1ibG9ja19yZWdpb24gKnJlZzsKLQl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQsIGVuZDsKLQlpbnQgcmV0OworCXU2NCBzdGFydCwgZW5kOworCWludCBpLCByZXQ7CiAKIAlwcl9kZWJ1ZygiU2V0dXAgY3Jhc2ggbWVtb3J5IHJhbmdlcy5cbiIpOwotCWNyYXNoX21lbV9yYW5nZXMgPSAwOworCWNyYXNoX21yYW5nZV9pbmZvLm1lbV9yYW5nZV9jbnQgPSAwOwogCiAJLyoKLQkgKiBhZGQgdGhlIGZpcnN0IG1lbW9yeSBjaHVuayAoUk1BX1NUQVJUIHRocm91Z2ggYm9vdF9tZW1vcnlfc2l6ZSkgYXMKLQkgKiBhIHNlcGFyYXRlIG1lbW9yeSBjaHVuay4gVGhlIHJlYXNvbiBpcywgYXQgdGhlIHRpbWUgY3Jhc2ggZmlybXdhcmUKLQkgKiB3aWxsIG1vdmUgdGhlIGNvbnRlbnQgb2YgdGhpcyBtZW1vcnkgY2h1bmsgdG8gZGlmZmVyZW50IGxvY2F0aW9uCi0JICogc3BlY2lmaWVkIGR1cmluZyBmYWR1bXAgcmVnaXN0cmF0aW9uLiBXZSBuZWVkIHRvIGNyZWF0ZSBhIHNlcGFyYXRlCi0JICogcHJvZ3JhbSBoZWFkZXIgZm9yIHRoaXMgY2h1bmsgd2l0aCB0aGUgY29ycmVjdCBvZmZzZXQuCisJICogQm9vdCBtZW1vcnkgcmVnaW9uKHMpIHJlZ2lzdGVyZWQgd2l0aCBmaXJtd2FyZSBhcmUgbW92ZWQgdG8KKwkgKiBkaWZmZXJlbnQgbG9jYXRpb24gYXQgdGhlIHRpbWUgb2YgY3Jhc2guIENyZWF0ZSBzZXBhcmF0ZSBwcm9ncmFtCisJICogaGVhZGVyKHMpIGZvciB0aGlzIG1lbW9yeSBjaHVuayhzKSB3aXRoIHRoZSBjb3JyZWN0IG9mZnNldC4KIAkgKi8KLQlyZXQgPSBmYWR1bXBfYWRkX2NyYXNoX21lbW9yeShSTUFfU1RBUlQsIGZ3X2R1bXAuYm9vdF9tZW1vcnlfc2l6ZSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwlmb3IgKGkgPSAwOyBpIDwgZndfZHVtcC5ib290X21lbV9yZWdzX2NudDsgaSsrKSB7CisJCXN0YXJ0ID0gZndfZHVtcC5ib290X21lbV9hZGRyW2ldOworCQllbmQgPSBzdGFydCArIGZ3X2R1bXAuYm9vdF9tZW1fc3pbaV07CisJCXJldCA9IGZhZHVtcF9hZGRfbWVtX3JhbmdlKCZjcmFzaF9tcmFuZ2VfaW5mbywgc3RhcnQsIGVuZCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KIAogCWZvcl9lYWNoX21lbWJsb2NrKG1lbW9yeSwgcmVnKSB7Ci0JCXN0YXJ0ID0gKHVuc2lnbmVkIGxvbmcgbG9uZylyZWctPmJhc2U7Ci0JCWVuZCA9IHN0YXJ0ICsgKHVuc2lnbmVkIGxvbmcgbG9uZylyZWctPnNpemU7CisJCXN0YXJ0ID0gKHU2NClyZWctPmJhc2U7CisJCWVuZCA9IHN0YXJ0ICsgKHU2NClyZWctPnNpemU7CiAKIAkJLyoKLQkJICogc2tpcCB0aGUgZmlyc3QgbWVtb3J5IGNodW5rIHRoYXQgaXMgYWxyZWFkeSBhZGRlZCAoUk1BX1NUQVJUCi0JCSAqIHRocm91Z2ggYm9vdF9tZW1vcnlfc2l6ZSkuIFRoaXMgbG9naWMgbmVlZHMgYSByZWxvb2sgaWYgYW5kCi0JCSAqIHdoZW4gUk1BX1NUQVJUIGNoYW5nZXMgdG8gYSBub24temVybyB2YWx1ZS4KKwkJICogc2tpcCB0aGUgbWVtb3J5IGNodW5rIHRoYXQgaXMgYWxyZWFkeSBhZGRlZAorCQkgKiAoMCB0aHJvdWdoIGJvb3RfbWVtb3J5X3RvcCkuCiAJCSAqLwotCQlCVUlMRF9CVUdfT04oUk1BX1NUQVJUICE9IDApOwotCQlpZiAoc3RhcnQgPCBmd19kdW1wLmJvb3RfbWVtb3J5X3NpemUpIHsKLQkJCWlmIChlbmQgPiBmd19kdW1wLmJvb3RfbWVtb3J5X3NpemUpCi0JCQkJc3RhcnQgPSBmd19kdW1wLmJvb3RfbWVtb3J5X3NpemU7CisJCWlmIChzdGFydCA8IGZ3X2R1bXAuYm9vdF9tZW1fdG9wKSB7CisJCQlpZiAoZW5kID4gZndfZHVtcC5ib290X21lbV90b3ApCisJCQkJc3RhcnQgPSBmd19kdW1wLmJvb3RfbWVtX3RvcDsKIAkJCWVsc2UKIAkJCQljb250aW51ZTsKIAkJfQpAQCAtMTE2NywxNyArOTI2LDM1IEBAIHN0YXRpYyBpbnQgZmFkdW1wX3NldHVwX2NyYXNoX21lbW9yeV9yYW5nZXModm9pZCkKICAqLwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGZhZHVtcF9yZWxvY2F0ZSh1bnNpZ25lZCBsb25nIHBhZGRyKQogewotCWlmIChwYWRkciA+IFJNQV9TVEFSVCAmJiBwYWRkciA8IGZ3X2R1bXAuYm9vdF9tZW1vcnlfc2l6ZSkKLQkJcmV0dXJuIGJlNjRfdG9fY3B1KGZkbS5ybXJfcmVnaW9uLmRlc3RpbmF0aW9uX2FkZHJlc3MpICsgcGFkZHI7Ci0JZWxzZQotCQlyZXR1cm4gcGFkZHI7CisJdW5zaWduZWQgbG9uZyByYWRkciwgcnN0YXJ0LCByZW5kLCBybGFzdCwgaG9sZV9zaXplOworCWludCBpOworCisJaG9sZV9zaXplID0gMDsKKwlybGFzdCA9IDA7CisJcmFkZHIgPSBwYWRkcjsKKwlmb3IgKGkgPSAwOyBpIDwgZndfZHVtcC5ib290X21lbV9yZWdzX2NudDsgaSsrKSB7CisJCXJzdGFydCA9IGZ3X2R1bXAuYm9vdF9tZW1fYWRkcltpXTsKKwkJcmVuZCA9IHJzdGFydCArIGZ3X2R1bXAuYm9vdF9tZW1fc3pbaV07CisJCWhvbGVfc2l6ZSArPSAocnN0YXJ0IC0gcmxhc3QpOworCisJCWlmIChwYWRkciA+PSByc3RhcnQgJiYgcGFkZHIgPCByZW5kKSB7CisJCQlyYWRkciArPSBmd19kdW1wLmJvb3RfbWVtX2Rlc3RfYWRkciAtIGhvbGVfc2l6ZTsKKwkJCWJyZWFrOworCQl9CisKKwkJcmxhc3QgPSByZW5kOworCX0KKworCXByX2RlYnVnKCJ2bWNvcmVpbmZvOiBwYWRkciA9IDB4JWx4LCByYWRkciA9IDB4JWx4XG4iLCBwYWRkciwgcmFkZHIpOworCXJldHVybiByYWRkcjsKIH0KIAogc3RhdGljIGludCBmYWR1bXBfY3JlYXRlX2VsZmNvcmVfaGVhZGVycyhjaGFyICpidWZwKQogewotCXN0cnVjdCBlbGZoZHIgKmVsZjsKKwl1bnNpZ25lZCBsb25nIGxvbmcgcmFkZHIsIG9mZnNldDsKIAlzdHJ1Y3QgZWxmX3BoZHIgKnBoZHI7Ci0JaW50IGk7CisJc3RydWN0IGVsZmhkciAqZWxmOworCWludCBpLCBqOwogCiAJZmFkdW1wX2luaXRfZWxmY29yZV9oZWFkZXIoYnVmcCk7CiAJZWxmID0gKHN0cnVjdCBlbGZoZHIgKilidWZwOwpAQCAtMTIyMCwxMiArOTk3LDE0IEBAIHN0YXRpYyBpbnQgZmFkdW1wX2NyZWF0ZV9lbGZjb3JlX2hlYWRlcnMoY2hhciAqYnVmcCkKIAkoZWxmLT5lX3BobnVtKSsrOwogCiAJLyogc2V0dXAgUFRfTE9BRCBzZWN0aW9ucy4gKi8KKwlqID0gMDsKKwlvZmZzZXQgPSAwOworCXJhZGRyID0gZndfZHVtcC5ib290X21lbV9hZGRyWzBdOworCWZvciAoaSA9IDA7IGkgPCBjcmFzaF9tcmFuZ2VfaW5mby5tZW1fcmFuZ2VfY250OyBpKyspIHsKKwkJdTY0IG1iYXNlLCBtc2l6ZTsKIAotCWZvciAoaSA9IDA7IGkgPCBjcmFzaF9tZW1fcmFuZ2VzOyBpKyspIHsKLQkJdW5zaWduZWQgbG9uZyBsb25nIG1iYXNlLCBtc2l6ZTsKLQkJbWJhc2UgPSBjcmFzaF9tZW1vcnlfcmFuZ2VzW2ldLmJhc2U7Ci0JCW1zaXplID0gY3Jhc2hfbWVtb3J5X3Jhbmdlc1tpXS5zaXplOwotCisJCW1iYXNlID0gY3Jhc2hfbXJhbmdlX2luZm8ubWVtX3Jhbmdlc1tpXS5iYXNlOworCQltc2l6ZSA9IGNyYXNoX21yYW5nZV9pbmZvLm1lbV9yYW5nZXNbaV0uc2l6ZTsKIAkJaWYgKCFtc2l6ZSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMjM1LDEzICsxMDE0LDE3IEBAIHN0YXRpYyBpbnQgZmFkdW1wX2NyZWF0ZV9lbGZjb3JlX2hlYWRlcnMoY2hhciAqYnVmcCkKIAkJcGhkci0+cF9mbGFncwk9IFBGX1J8UEZfV3xQRl9YOwogCQlwaGRyLT5wX29mZnNldAk9IG1iYXNlOwogCi0JCWlmIChtYmFzZSA9PSBSTUFfU1RBUlQpIHsKKwkJaWYgKG1iYXNlID09IHJhZGRyKSB7CiAJCQkvKgotCQkJICogVGhlIGVudGlyZSBSTUEgcmVnaW9uIHdpbGwgYmUgbW92ZWQgYnkgZmlybXdhcmUKLQkJCSAqIHRvIHRoZSBzcGVjaWZpZWQgZGVzdGluYXRpb25fYWRkcmVzcy4gSGVuY2Ugc2V0Ci0JCQkgKiB0aGUgY29ycmVjdCBvZmZzZXQuCisJCQkgKiBUaGUgZW50aXJlIHJlYWwgbWVtb3J5IHJlZ2lvbiB3aWxsIGJlIG1vdmVkIGJ5CisJCQkgKiBmaXJtd2FyZSB0byB0aGUgc3BlY2lmaWVkIGRlc3RpbmF0aW9uX2FkZHJlc3MuCisJCQkgKiBIZW5jZSBzZXQgdGhlIGNvcnJlY3Qgb2Zmc2V0LgogCQkJICovCi0JCQlwaGRyLT5wX29mZnNldCA9IGJlNjRfdG9fY3B1KGZkbS5ybXJfcmVnaW9uLmRlc3RpbmF0aW9uX2FkZHJlc3MpOworCQkJcGhkci0+cF9vZmZzZXQgPSBmd19kdW1wLmJvb3RfbWVtX2Rlc3RfYWRkciArIG9mZnNldDsKKwkJCWlmIChqIDwgKGZ3X2R1bXAuYm9vdF9tZW1fcmVnc19jbnQgLSAxKSkgeworCQkJCW9mZnNldCArPSBmd19kdW1wLmJvb3RfbWVtX3N6W2pdOworCQkJCXJhZGRyID0gZndfZHVtcC5ib290X21lbV9hZGRyWysral07CisJCQl9CiAJCX0KIAogCQlwaGRyLT5wX3BhZGRyID0gbWJhc2U7CkBAIC0xMjYzLDcgKzEwNDYsNiBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpbml0X2ZhZHVtcF9oZWFkZXIodW5zaWduZWQgbG9uZyBhZGRyKQogCWlmICghYWRkcikKIAkJcmV0dXJuIDA7CiAKLQlmd19kdW1wLmZhZHVtcGhkcl9hZGRyID0gYWRkcjsKIAlmZGggPSBfX3ZhKGFkZHIpOwogCWFkZHIgKz0gc2l6ZW9mKHN0cnVjdCBmYWR1bXBfY3Jhc2hfaW5mb19oZWFkZXIpOwogCkBAIC0xMjcxLDcgKzEwNTMsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpbml0X2ZhZHVtcF9oZWFkZXIodW5zaWduZWQgbG9uZyBhZGRyKQogCWZkaC0+bWFnaWNfbnVtYmVyID0gRkFEVU1QX0NSQVNIX0lORk9fTUFHSUM7CiAJZmRoLT5lbGZjb3JlaGRyX2FkZHIgPSBhZGRyOwogCS8qIFdlIHdpbGwgc2V0IHRoZSBjcmFzaGluZyBjcHUgaWQgaW4gY3Jhc2hfZmFkdW1wKCkgZHVyaW5nIGNyYXNoLiAqLwotCWZkaC0+Y3Jhc2hpbmdfY3B1ID0gQ1BVX1VOS05PV047CisJZmRoLT5jcmFzaGluZ19jcHUgPSBGQURVTVBfQ1BVX1VOS05PV047CiAKIAlyZXR1cm4gYWRkcjsKIH0KQEAgLTEyOTMsNyArMTA3NSw4IEBAIHN0YXRpYyBpbnQgcmVnaXN0ZXJfZmFkdW1wKHZvaWQpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWFkZHIgPSBiZTY0X3RvX2NwdShmZG0ucm1yX3JlZ2lvbi5kZXN0aW5hdGlvbl9hZGRyZXNzKSArIGJlNjRfdG9fY3B1KGZkbS5ybXJfcmVnaW9uLnNvdXJjZV9sZW4pOworCWFkZHIgPSBmd19kdW1wLmZhZHVtcGhkcl9hZGRyOworCiAJLyogSW5pdGlhbGl6ZSBmYWR1bXAgY3Jhc2ggaW5mbyBoZWFkZXIuICovCiAJYWRkciA9IGluaXRfZmFkdW1wX2hlYWRlcihhZGRyKTsKIAl2YWRkciA9IF9fdmEoYWRkcik7CkBAIC0xMzAyLDc0ICsxMDg1LDI3IEBAIHN0YXRpYyBpbnQgcmVnaXN0ZXJfZmFkdW1wKHZvaWQpCiAJZmFkdW1wX2NyZWF0ZV9lbGZjb3JlX2hlYWRlcnModmFkZHIpOwogCiAJLyogcmVnaXN0ZXIgdGhlIGZ1dHVyZSBrZXJuZWwgZHVtcCB3aXRoIGZpcm13YXJlLiAqLwotCXJldHVybiByZWdpc3Rlcl9md19kdW1wKCZmZG0pOwotfQotCi1zdGF0aWMgaW50IGZhZHVtcF91bnJlZ2lzdGVyX2R1bXAoc3RydWN0IGZhZHVtcF9tZW1fc3RydWN0ICpmZG0pCi17Ci0JaW50IHJjID0gMDsKLQl1bnNpZ25lZCBpbnQgd2FpdF90aW1lOwotCi0JcHJfZGVidWcoIlVuLXJlZ2lzdGVyIGZpcm13YXJlLWFzc2lzdGVkIGR1bXBcbiIpOwotCi0JLyogVE9ETzogQWRkIHVwcGVyIHRpbWUgbGltaXQgZm9yIHRoZSBkZWxheSAqLwotCWRvIHsKLQkJcmMgPSBydGFzX2NhbGwoZndfZHVtcC5pYm1fY29uZmlndXJlX2tlcm5lbF9kdW1wLCAzLCAxLCBOVUxMLAotCQkJRkFEVU1QX1VOUkVHSVNURVIsIGZkbSwKLQkJCXNpemVvZihzdHJ1Y3QgZmFkdW1wX21lbV9zdHJ1Y3QpKTsKLQotCQl3YWl0X3RpbWUgPSBydGFzX2J1c3lfZGVsYXlfdGltZShyYyk7Ci0JCWlmICh3YWl0X3RpbWUpCi0JCQltZGVsYXkod2FpdF90aW1lKTsKLQl9IHdoaWxlICh3YWl0X3RpbWUpOwotCi0JaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIHVuLXJlZ2lzdGVyIGZpcm13YXJlLWFzc2lzdGVkIGR1bXAuIgotCQkJIiB1bmV4cGVjdGVkIGVycm9yKCVkKS5cbiIsIHJjKTsKLQkJcmV0dXJuIHJjOwotCX0KLQlmd19kdW1wLmR1bXBfcmVnaXN0ZXJlZCA9IDA7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZmFkdW1wX2ludmFsaWRhdGVfZHVtcChjb25zdCBzdHJ1Y3QgZmFkdW1wX21lbV9zdHJ1Y3QgKmZkbSkKLXsKLQlpbnQgcmMgPSAwOwotCXVuc2lnbmVkIGludCB3YWl0X3RpbWU7Ci0KLQlwcl9kZWJ1ZygiSW52YWxpZGF0aW5nIGZpcm13YXJlLWFzc2lzdGVkIGR1bXAgcmVnaXN0cmF0aW9uXG4iKTsKLQotCS8qIFRPRE86IEFkZCB1cHBlciB0aW1lIGxpbWl0IGZvciB0aGUgZGVsYXkgKi8KLQlkbyB7Ci0JCXJjID0gcnRhc19jYWxsKGZ3X2R1bXAuaWJtX2NvbmZpZ3VyZV9rZXJuZWxfZHVtcCwgMywgMSwgTlVMTCwKLQkJCUZBRFVNUF9JTlZBTElEQVRFLCBmZG0sCi0JCQlzaXplb2Yoc3RydWN0IGZhZHVtcF9tZW1fc3RydWN0KSk7Ci0KLQkJd2FpdF90aW1lID0gcnRhc19idXN5X2RlbGF5X3RpbWUocmMpOwotCQlpZiAod2FpdF90aW1lKQotCQkJbWRlbGF5KHdhaXRfdGltZSk7Ci0JfSB3aGlsZSAod2FpdF90aW1lKTsKLQotCWlmIChyYykgewotCQlwcl9lcnIoIkZhaWxlZCB0byBpbnZhbGlkYXRlIGZpcm13YXJlLWFzc2lzdGVkIGR1bXAgcmVnaXN0cmF0aW9uLiBVbmV4cGVjdGVkIGVycm9yICglZCkuXG4iLCByYyk7Ci0JCXJldHVybiByYzsKLQl9Ci0JZndfZHVtcC5kdW1wX2FjdGl2ZSA9IDA7Ci0JZmRtX2FjdGl2ZSA9IE5VTEw7Ci0JcmV0dXJuIDA7CisJcHJfZGVidWcoIlJlZ2lzdGVyaW5nIGZvciBmaXJtd2FyZS1hc3Npc3RlZCBrZXJuZWwgZHVtcC4uLlxuIik7CisJcmV0dXJuIGZ3X2R1bXAub3BzLT5mYWR1bXBfcmVnaXN0ZXIoJmZ3X2R1bXApOwogfQogCiB2b2lkIGZhZHVtcF9jbGVhbnVwKHZvaWQpCiB7CisJaWYgKCFmd19kdW1wLmZhZHVtcF9zdXBwb3J0ZWQpCisJCXJldHVybjsKKwogCS8qIEludmFsaWRhdGUgdGhlIHJlZ2lzdHJhdGlvbiBvbmx5IGlmIGR1bXAgaXMgYWN0aXZlLiAqLwogCWlmIChmd19kdW1wLmR1bXBfYWN0aXZlKSB7Ci0JCS8qIHBhc3MgdGhlIHNhbWUgbWVtb3J5IGR1bXAgc3RydWN0dXJlIHByb3ZpZGVkIGJ5IHBsYXRmb3JtICovCi0JCWZhZHVtcF9pbnZhbGlkYXRlX2R1bXAoZmRtX2FjdGl2ZSk7CisJCXByX2RlYnVnKCJJbnZhbGlkYXRpbmcgZmlybXdhcmUtYXNzaXN0ZWQgZHVtcCByZWdpc3RyYXRpb25cbiIpOworCQlmd19kdW1wLm9wcy0+ZmFkdW1wX2ludmFsaWRhdGUoJmZ3X2R1bXApOwogCX0gZWxzZSBpZiAoZndfZHVtcC5kdW1wX3JlZ2lzdGVyZWQpIHsKIAkJLyogVW4tcmVnaXN0ZXIgRmlybXdhcmUtYXNzaXN0ZWQgZHVtcCBpZiBpdCB3YXMgcmVnaXN0ZXJlZC4gKi8KLQkJZmFkdW1wX3VucmVnaXN0ZXJfZHVtcCgmZmRtKTsKLQkJZnJlZV9jcmFzaF9tZW1vcnlfcmFuZ2VzKCk7CisJCWZ3X2R1bXAub3BzLT5mYWR1bXBfdW5yZWdpc3RlcigmZndfZHVtcCk7CisJCWZhZHVtcF9mcmVlX21lbV9yYW5nZXMoJmNyYXNoX21yYW5nZV9pbmZvKTsKIAl9CisKKwlpZiAoZndfZHVtcC5vcHMtPmZhZHVtcF9jbGVhbnVwKQorCQlmd19kdW1wLm9wcy0+ZmFkdW1wX2NsZWFudXAoJmZ3X2R1bXApOwogfQogCiBzdGF0aWMgdm9pZCBmYWR1bXBfZnJlZV9yZXNlcnZlZF9tZW1vcnkodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCkBAIC0xMzk0LDkwICsxMTMwLDE5NyBAQCBzdGF0aWMgdm9pZCBmYWR1bXBfZnJlZV9yZXNlcnZlZF9tZW1vcnkodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCiAvKgogICogU2tpcCBtZW1vcnkgaG9sZXMgYW5kIGZyZWUgbWVtb3J5IHRoYXQgd2FzIGFjdHVhbGx5IHJlc2VydmVkLgogICovCi1zdGF0aWMgdm9pZCBmYWR1bXBfcmVsZWFzZV9yZXNlcnZlZF9hcmVhKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQorc3RhdGljIHZvaWQgZmFkdW1wX3JlbGVhc2VfcmVzZXJ2ZWRfYXJlYSh1NjQgc3RhcnQsIHU2NCBlbmQpCiB7CisJdTY0IHRzdGFydCwgdGVuZCwgc3BmbiwgZXBmbjsKIAlzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uICpyZWc7Ci0JdW5zaWduZWQgbG9uZyB0c3RhcnQsIHRlbmQ7Ci0JdW5zaWduZWQgbG9uZyBzdGFydF9wZm4gPSBQSFlTX1BGTihzdGFydCk7Ci0JdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gUEhZU19QRk4oZW5kKTsKIAorCXNwZm4gPSBQSFlTX1BGTihzdGFydCk7CisJZXBmbiA9IFBIWVNfUEZOKGVuZCk7CiAJZm9yX2VhY2hfbWVtYmxvY2sobWVtb3J5LCByZWcpIHsKLQkJdHN0YXJ0ID0gbWF4KHN0YXJ0X3BmbiwgbWVtYmxvY2tfcmVnaW9uX21lbW9yeV9iYXNlX3BmbihyZWcpKTsKLQkJdGVuZCA9IG1pbihlbmRfcGZuLCBtZW1ibG9ja19yZWdpb25fbWVtb3J5X2VuZF9wZm4ocmVnKSk7CisJCXRzdGFydCA9IG1heF90KHU2NCwgc3BmbiwgbWVtYmxvY2tfcmVnaW9uX21lbW9yeV9iYXNlX3BmbihyZWcpKTsKKwkJdGVuZCAgID0gbWluX3QodTY0LCBlcGZuLCBtZW1ibG9ja19yZWdpb25fbWVtb3J5X2VuZF9wZm4ocmVnKSk7CiAJCWlmICh0c3RhcnQgPCB0ZW5kKSB7CiAJCQlmYWR1bXBfZnJlZV9yZXNlcnZlZF9tZW1vcnkodHN0YXJ0LCB0ZW5kKTsKIAotCQkJaWYgKHRlbmQgPT0gZW5kX3BmbikKKwkJCWlmICh0ZW5kID09IGVwZm4pCiAJCQkJYnJlYWs7CiAKLQkJCXN0YXJ0X3BmbiA9IHRlbmQgKyAxOworCQkJc3BmbiA9IHRlbmQ7CiAJCX0KIAl9CiB9CiAKIC8qCi0gKiBSZWxlYXNlIHRoZSBtZW1vcnkgdGhhdCB3YXMgcmVzZXJ2ZWQgaW4gZWFybHkgYm9vdCB0byBwcmVzZXJ2ZSB0aGUgbWVtb3J5Ci0gKiBjb250ZW50cy4gVGhlIHJlbGVhc2VkIG1lbW9yeSB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgZ2VuZXJhbCB1c2UuCisgKiBTb3J0IHRoZSBtZW0gcmFuZ2VzIGluLXBsYWNlIGFuZCBtZXJnZSBhZGphY2VudCByYW5nZXMKKyAqIHRvIG1pbmltaXplIHRoZSBtZW1vcnkgcmFuZ2VzIGNvdW50LgogICovCi1zdGF0aWMgdm9pZCBmYWR1bXBfcmVsZWFzZV9tZW1vcnkodW5zaWduZWQgbG9uZyBiZWdpbiwgdW5zaWduZWQgbG9uZyBlbmQpCitzdGF0aWMgdm9pZCBzb3J0X2FuZF9tZXJnZV9tZW1fcmFuZ2VzKHN0cnVjdCBmYWR1bXBfbXJhbmdlX2luZm8gKm1yYW5nZV9pbmZvKQogewotCXVuc2lnbmVkIGxvbmcgcmFfc3RhcnQsIHJhX2VuZDsKKwlzdHJ1Y3QgZmFkdW1wX21lbW9yeV9yYW5nZSAqbWVtX3JhbmdlczsKKwlzdHJ1Y3QgZmFkdW1wX21lbW9yeV9yYW5nZSB0bXBfcmFuZ2U7CisJdTY0IGJhc2UsIHNpemU7CisJaW50IGksIGosIGlkeDsKKworCWlmICghcmVzZXJ2ZWRfbXJhbmdlX2luZm8ubWVtX3JhbmdlX2NudCkKKwkJcmV0dXJuOworCisJLyogU29ydCB0aGUgbWVtb3J5IHJhbmdlcyAqLworCW1lbV9yYW5nZXMgPSBtcmFuZ2VfaW5mby0+bWVtX3JhbmdlczsKKwlmb3IgKGkgPSAwOyBpIDwgbXJhbmdlX2luZm8tPm1lbV9yYW5nZV9jbnQ7IGkrKykgeworCQlpZHggPSBpOworCQlmb3IgKGogPSAoaSArIDEpOyBqIDwgbXJhbmdlX2luZm8tPm1lbV9yYW5nZV9jbnQ7IGorKykgeworCQkJaWYgKG1lbV9yYW5nZXNbaWR4XS5iYXNlID4gbWVtX3Jhbmdlc1tqXS5iYXNlKQorCQkJCWlkeCA9IGo7CisJCX0KKwkJaWYgKGlkeCAhPSBpKSB7CisJCQl0bXBfcmFuZ2UgPSBtZW1fcmFuZ2VzW2lkeF07CisJCQltZW1fcmFuZ2VzW2lkeF0gPSBtZW1fcmFuZ2VzW2ldOworCQkJbWVtX3Jhbmdlc1tpXSA9IHRtcF9yYW5nZTsKKwkJfQorCX0KKworCS8qIE1lcmdlIGFkamFjZW50IHJlc2VydmVkIHJhbmdlcyAqLworCWlkeCA9IDA7CisJZm9yIChpID0gMTsgaSA8IG1yYW5nZV9pbmZvLT5tZW1fcmFuZ2VfY250OyBpKyspIHsKKwkJYmFzZSA9IG1lbV9yYW5nZXNbaS0xXS5iYXNlOworCQlzaXplID0gbWVtX3Jhbmdlc1tpLTFdLnNpemU7CisJCWlmIChtZW1fcmFuZ2VzW2ldLmJhc2UgPT0gKGJhc2UgKyBzaXplKSkKKwkJCW1lbV9yYW5nZXNbaWR4XS5zaXplICs9IG1lbV9yYW5nZXNbaV0uc2l6ZTsKKwkJZWxzZSB7CisJCQlpZHgrKzsKKwkJCWlmIChpID09IGlkeCkKKwkJCQljb250aW51ZTsKKworCQkJbWVtX3Jhbmdlc1tpZHhdID0gbWVtX3Jhbmdlc1tpXTsKKwkJfQorCX0KKwltcmFuZ2VfaW5mby0+bWVtX3JhbmdlX2NudCA9IGlkeCArIDE7Cit9CisKKy8qCisgKiBTY2FuIHJlc2VydmVkLXJhbmdlcyB0byBjb25zaWRlciB0aGVtIHdoaWxlIHJlc2VydmluZy9yZWxlYXNpbmcKKyAqIG1lbW9yeSBmb3IgRkFEdW1wLgorICovCitzdGF0aWMgaW5saW5lIGludCBmYWR1bXBfc2Nhbl9yZXNlcnZlZF9tZW1fcmFuZ2VzKHZvaWQpCit7CisJc3RydWN0IGRldmljZV9ub2RlICpyb290OworCWNvbnN0IF9fYmUzMiAqcHJvcDsKKwlpbnQgbGVuLCByZXQgPSAtMTsKKwl1bnNpZ25lZCBsb25nIGk7CisKKwlyb290ID0gb2ZfZmluZF9ub2RlX2J5X3BhdGgoIi8iKTsKKwlpZiAoIXJvb3QpCisJCXJldHVybiByZXQ7CisKKwlwcm9wID0gb2ZfZ2V0X3Byb3BlcnR5KHJvb3QsICJyZXNlcnZlZC1yYW5nZXMiLCAmbGVuKTsKKwlpZiAoIXByb3ApCisJCXJldHVybiByZXQ7CisKKwkvKgorCSAqIEVhY2ggcmVzZXJ2ZWQgcmFuZ2UgaXMgYW4gKGFkZHJlc3Msc2l6ZSkgcGFpciwgMiBjZWxscyBlYWNoLAorCSAqIHRvdGFsbGluZyA0IGNlbGxzIHBlciByYW5nZS4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbGVuIC8gKHNpemVvZigqcHJvcCkgKiA0KTsgaSsrKSB7CisJCXU2NCBiYXNlLCBzaXplOworCisJCWJhc2UgPSBvZl9yZWFkX251bWJlcihwcm9wICsgKGkgKiA0KSArIDAsIDIpOworCQlzaXplID0gb2ZfcmVhZF9udW1iZXIocHJvcCArIChpICogNCkgKyAyLCAyKTsKKworCQlpZiAoc2l6ZSkgeworCQkJcmV0ID0gZmFkdW1wX2FkZF9tZW1fcmFuZ2UoJnJlc2VydmVkX21yYW5nZV9pbmZvLAorCQkJCQkJICAgYmFzZSwgYmFzZSArIHNpemUpOworCQkJaWYgKHJldCA8IDApIHsKKwkJCQlwcl93YXJuKCJzb21lIHJlc2VydmVkIHJhbmdlcyBhcmUgaWdub3JlZCFcbiIpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFJlbGVhc2UgdGhlIG1lbW9yeSB0aGF0IHdhcyByZXNlcnZlZCBkdXJpbmcgZWFybHkgYm9vdCB0byBwcmVzZXJ2ZSB0aGUKKyAqIGNyYXNoJ2VkIGtlcm5lbCdzIG1lbW9yeSBjb250ZW50cyBleGNlcHQgcmVzZXJ2ZWQgZHVtcCBhcmVhIChwZXJtYW5lbnQKKyAqIHJlc2VydmF0aW9uKSBhbmQgcmVzZXJ2ZWQgcmFuZ2VzIHVzZWQgYnkgRi9XLiBUaGUgcmVsZWFzZWQgbWVtb3J5IHdpbGwKKyAqIGJlIGF2YWlsYWJsZSBmb3IgZ2VuZXJhbCB1c2UuCisgKi8KK3N0YXRpYyB2b2lkIGZhZHVtcF9yZWxlYXNlX21lbW9yeSh1NjQgYmVnaW4sIHU2NCBlbmQpCit7CisJdTY0IHJhX3N0YXJ0LCByYV9lbmQsIHRzdGFydDsKKwlpbnQgaSwgcmV0OworCisJZmFkdW1wX3NjYW5fcmVzZXJ2ZWRfbWVtX3JhbmdlcygpOwogCiAJcmFfc3RhcnQgPSBmd19kdW1wLnJlc2VydmVfZHVtcF9hcmVhX3N0YXJ0OwogCXJhX2VuZCA9IHJhX3N0YXJ0ICsgZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zaXplOwogCiAJLyoKLQkgKiBleGNsdWRlIHRoZSBkdW1wIHJlc2VydmUgYXJlYS4gV2lsbCByZXVzZSBpdCBmb3IgbmV4dAotCSAqIGZhZHVtcCByZWdpc3RyYXRpb24uCisJICogQWRkIHJlc2VydmVkIGR1bXAgYXJlYSB0byByZXNlcnZlZCByYW5nZXMgbGlzdAorCSAqIGFuZCBleGNsdWRlIGFsbCB0aGVzZSByYW5nZXMgd2hpbGUgcmVsZWFzaW5nIG1lbW9yeS4KIAkgKi8KLQlpZiAoYmVnaW4gPCByYV9lbmQgJiYgZW5kID4gcmFfc3RhcnQpIHsKLQkJaWYgKGJlZ2luIDwgcmFfc3RhcnQpCi0JCQlmYWR1bXBfcmVsZWFzZV9yZXNlcnZlZF9hcmVhKGJlZ2luLCByYV9zdGFydCk7Ci0JCWlmIChlbmQgPiByYV9lbmQpCi0JCQlmYWR1bXBfcmVsZWFzZV9yZXNlcnZlZF9hcmVhKHJhX2VuZCwgZW5kKTsKLQl9IGVsc2UKLQkJZmFkdW1wX3JlbGVhc2VfcmVzZXJ2ZWRfYXJlYShiZWdpbiwgZW5kKTsKKwlyZXQgPSBmYWR1bXBfYWRkX21lbV9yYW5nZSgmcmVzZXJ2ZWRfbXJhbmdlX2luZm8sIHJhX3N0YXJ0LCByYV9lbmQpOworCWlmIChyZXQgIT0gMCkgeworCQkvKgorCQkgKiBOb3QgZW5vdWdoIG1lbW9yeSB0byBzZXR1cCByZXNlcnZlZCByYW5nZXMgYnV0IHRoZSBzeXN0ZW0gaXMKKwkJICogcnVubmluZyBzaG9ydGFnZSBvZiBtZW1vcnkuIFNvLCByZWxlYXNlIGFsbCB0aGUgbWVtb3J5IGV4Y2VwdAorCQkgKiBSZXNlcnZlZCBkdW1wIGFyZWEgKHJldXNlZCBmb3IgbmV4dCBmYWR1bXAgcmVnaXN0cmF0aW9uKS4KKwkJICovCisJCWlmIChiZWdpbiA8IHJhX2VuZCAmJiBlbmQgPiByYV9zdGFydCkgeworCQkJaWYgKGJlZ2luIDwgcmFfc3RhcnQpCisJCQkJZmFkdW1wX3JlbGVhc2VfcmVzZXJ2ZWRfYXJlYShiZWdpbiwgcmFfc3RhcnQpOworCQkJaWYgKGVuZCA+IHJhX2VuZCkKKwkJCQlmYWR1bXBfcmVsZWFzZV9yZXNlcnZlZF9hcmVhKHJhX2VuZCwgZW5kKTsKKwkJfSBlbHNlCisJCQlmYWR1bXBfcmVsZWFzZV9yZXNlcnZlZF9hcmVhKGJlZ2luLCBlbmQpOworCisJCXJldHVybjsKKwl9CisKKwkvKiBHZXQgdGhlIHJlc2VydmVkIHJhbmdlcyBsaXN0IGluIG9yZGVyIGZpcnN0LiAqLworCXNvcnRfYW5kX21lcmdlX21lbV9yYW5nZXMoJnJlc2VydmVkX21yYW5nZV9pbmZvKTsKKworCS8qIEV4Y2x1ZGUgcmVzZXJ2ZWQgcmFuZ2VzIGFuZCByZWxlYXNlIHJlbWFpbmluZyBtZW1vcnkgKi8KKwl0c3RhcnQgPSBiZWdpbjsKKwlmb3IgKGkgPSAwOyBpIDwgcmVzZXJ2ZWRfbXJhbmdlX2luZm8ubWVtX3JhbmdlX2NudDsgaSsrKSB7CisJCXJhX3N0YXJ0ID0gcmVzZXJ2ZWRfbXJhbmdlX2luZm8ubWVtX3Jhbmdlc1tpXS5iYXNlOworCQlyYV9lbmQgPSByYV9zdGFydCArIHJlc2VydmVkX21yYW5nZV9pbmZvLm1lbV9yYW5nZXNbaV0uc2l6ZTsKKworCQlpZiAodHN0YXJ0ID49IHJhX2VuZCkKKwkJCWNvbnRpbnVlOworCisJCWlmICh0c3RhcnQgPCByYV9zdGFydCkKKwkJCWZhZHVtcF9yZWxlYXNlX3Jlc2VydmVkX2FyZWEodHN0YXJ0LCByYV9zdGFydCk7CisJCXRzdGFydCA9IHJhX2VuZDsKKwl9CisKKwlpZiAodHN0YXJ0IDwgZW5kKQorCQlmYWR1bXBfcmVsZWFzZV9yZXNlcnZlZF9hcmVhKHRzdGFydCwgZW5kKTsKIH0KIAogc3RhdGljIHZvaWQgZmFkdW1wX2ludmFsaWRhdGVfcmVsZWFzZV9tZW0odm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIHJlc2VydmVkX2FyZWFfc3RhcnQsIHJlc2VydmVkX2FyZWFfZW5kOwotCXVuc2lnbmVkIGxvbmcgZGVzdGluYXRpb25fYWRkcmVzczsKLQogCW11dGV4X2xvY2soJmZhZHVtcF9tdXRleCk7CiAJaWYgKCFmd19kdW1wLmR1bXBfYWN0aXZlKSB7CiAJCW11dGV4X3VubG9jaygmZmFkdW1wX211dGV4KTsKIAkJcmV0dXJuOwogCX0KIAotCWRlc3RpbmF0aW9uX2FkZHJlc3MgPSBiZTY0X3RvX2NwdShmZG1fYWN0aXZlLT5jcHVfc3RhdGVfZGF0YS5kZXN0aW5hdGlvbl9hZGRyZXNzKTsKIAlmYWR1bXBfY2xlYW51cCgpOwogCW11dGV4X3VubG9jaygmZmFkdW1wX211dGV4KTsKIAotCS8qCi0JICogU2F2ZSB0aGUgY3VycmVudCByZXNlcnZlZCBtZW1vcnkgYm91bmRzIHdlIHdpbGwgcmVxdWlyZSB0aGVtCi0JICogbGF0ZXIgZm9yIHJlbGVhc2luZyB0aGUgbWVtb3J5IGZvciBnZW5lcmFsIHVzZS4KLQkgKi8KLQlyZXNlcnZlZF9hcmVhX3N0YXJ0ID0gZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zdGFydDsKLQlyZXNlcnZlZF9hcmVhX2VuZCA9IHJlc2VydmVkX2FyZWFfc3RhcnQgKwotCQkJZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zaXplOwotCS8qCi0JICogU2V0dXAgcmVzZXJ2ZV9kdW1wX2FyZWFfc3RhcnQgYW5kIGl0cyBzaXplIHNvIHRoYXQgd2UgY2FuCi0JICogcmV1c2UgdGhpcyByZXNlcnZlZCBtZW1vcnkgZm9yIFJlLXJlZ2lzdHJhdGlvbi4KLQkgKi8KLQlmd19kdW1wLnJlc2VydmVfZHVtcF9hcmVhX3N0YXJ0ID0gZGVzdGluYXRpb25fYWRkcmVzczsKLQlmd19kdW1wLnJlc2VydmVfZHVtcF9hcmVhX3NpemUgPSBnZXRfZmFkdW1wX2FyZWFfc2l6ZSgpOworCWZhZHVtcF9yZWxlYXNlX21lbW9yeShmd19kdW1wLmJvb3RfbWVtX3RvcCwgbWVtYmxvY2tfZW5kX29mX0RSQU0oKSk7CisJZmFkdW1wX2ZyZWVfY3B1X25vdGVzX2J1ZigpOwogCi0JZmFkdW1wX3JlbGVhc2VfbWVtb3J5KHJlc2VydmVkX2FyZWFfc3RhcnQsIHJlc2VydmVkX2FyZWFfZW5kKTsKLQlpZiAoZndfZHVtcC5jcHVfbm90ZXNfYnVmKSB7Ci0JCWZhZHVtcF9jcHVfbm90ZXNfYnVmX2ZyZWUoCi0JCQkJKHVuc2lnbmVkIGxvbmcpX192YShmd19kdW1wLmNwdV9ub3Rlc19idWYpLAotCQkJCWZ3X2R1bXAuY3B1X25vdGVzX2J1Zl9zaXplKTsKLQkJZndfZHVtcC5jcHVfbm90ZXNfYnVmID0gMDsKLQkJZndfZHVtcC5jcHVfbm90ZXNfYnVmX3NpemUgPSAwOwotCX0KLQkvKiBJbml0aWFsaXplIHRoZSBrZXJuZWwgZHVtcCBtZW1vcnkgc3RydWN0dXJlIGZvciBGQUQgcmVnaXN0cmF0aW9uLiAqLwotCWluaXRfZmFkdW1wX21lbV9zdHJ1Y3QoJmZkbSwgZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zdGFydCk7CisJLyoKKwkgKiBTZXR1cCBrZXJuZWwgbWV0YWRhdGEgYW5kIGluaXRpYWxpemUgdGhlIGtlcm5lbCBkdW1wCisJICogbWVtb3J5IHN0cnVjdHVyZSBmb3IgRkFEdW1wIHJlLXJlZ2lzdHJhdGlvbi4KKwkgKi8KKwlpZiAoZndfZHVtcC5vcHMtPmZhZHVtcF9zZXR1cF9tZXRhZGF0YSAmJgorCSAgICAoZndfZHVtcC5vcHMtPmZhZHVtcF9zZXR1cF9tZXRhZGF0YSgmZndfZHVtcCkgPCAwKSkKKwkJcHJfd2FybigiRmFpbGVkIHRvIHNldHVwIGtlcm5lbCBtZXRhZGF0YSFcbiIpOworCWZ3X2R1bXAub3BzLT5mYWR1bXBfaW5pdF9tZW1fc3RydWN0KCZmd19kdW1wKTsKIH0KIAogc3RhdGljIHNzaXplX3QgZmFkdW1wX3JlbGVhc2VfbWVtb3J5X3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLApAQCAtMTUyOCw3ICsxMzcxLDcgQEAgc3RhdGljIHNzaXplX3QgZmFkdW1wX3JlZ2lzdGVyX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCWludCByZXQgPSAwOwogCWludCBpbnB1dCA9IC0xOwogCi0JaWYgKCFmd19kdW1wLmZhZHVtcF9lbmFibGVkIHx8IGZkbV9hY3RpdmUpCisJaWYgKCFmd19kdW1wLmZhZHVtcF9lbmFibGVkIHx8IGZ3X2R1bXAuZHVtcF9hY3RpdmUpCiAJCXJldHVybiAtRVBFUk07CiAKIAlpZiAoa3N0cnRvaW50KGJ1ZiwgMCwgJmlucHV0KSkKQEAgLTE1NDEsMTMgKzEzODQsMTUgQEAgc3RhdGljIHNzaXplX3QgZmFkdW1wX3JlZ2lzdGVyX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQlpZiAoZndfZHVtcC5kdW1wX3JlZ2lzdGVyZWQgPT0gMCkgewogCQkJZ290byB1bmxvY2tfb3V0OwogCQl9CisKIAkJLyogVW4tcmVnaXN0ZXIgRmlybXdhcmUtYXNzaXN0ZWQgZHVtcCAqLwotCQlmYWR1bXBfdW5yZWdpc3Rlcl9kdW1wKCZmZG0pOworCQlwcl9kZWJ1ZygiVW4tcmVnaXN0ZXIgZmlybXdhcmUtYXNzaXN0ZWQgZHVtcFxuIik7CisJCWZ3X2R1bXAub3BzLT5mYWR1bXBfdW5yZWdpc3RlcigmZndfZHVtcCk7CiAJCWJyZWFrOwogCWNhc2UgMToKIAkJaWYgKGZ3X2R1bXAuZHVtcF9yZWdpc3RlcmVkID09IDEpIHsKIAkJCS8qIFVuLXJlZ2lzdGVyIEZpcm13YXJlLWFzc2lzdGVkIGR1bXAgKi8KLQkJCWZhZHVtcF91bnJlZ2lzdGVyX2R1bXAoJmZkbSk7CisJCQlmd19kdW1wLm9wcy0+ZmFkdW1wX3VucmVnaXN0ZXIoJmZ3X2R1bXApOwogCQl9CiAJCS8qIFJlZ2lzdGVyIEZpcm13YXJlLWFzc2lzdGVkIGR1bXAgKi8KIAkJcmV0ID0gcmVnaXN0ZXJfZmFkdW1wKCk7CkBAIC0xNTY0LDYyICsxNDA5LDEyIEBAIHN0YXRpYyBzc2l6ZV90IGZhZHVtcF9yZWdpc3Rlcl9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAogc3RhdGljIGludCBmYWR1bXBfcmVnaW9uX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpwcml2YXRlKQogewotCWNvbnN0IHN0cnVjdCBmYWR1bXBfbWVtX3N0cnVjdCAqZmRtX3B0cjsKLQogCWlmICghZndfZHVtcC5mYWR1bXBfZW5hYmxlZCkKIAkJcmV0dXJuIDA7CiAKIAltdXRleF9sb2NrKCZmYWR1bXBfbXV0ZXgpOwotCWlmIChmZG1fYWN0aXZlKQotCQlmZG1fcHRyID0gZmRtX2FjdGl2ZTsKLQllbHNlIHsKLQkJbXV0ZXhfdW5sb2NrKCZmYWR1bXBfbXV0ZXgpOwotCQlmZG1fcHRyID0gJmZkbTsKLQl9Ci0KLQlzZXFfcHJpbnRmKG0sCi0JCQkiQ1BVIDogWyUjMDE2bGx4LSUjMDE2bGx4XSAlI2xseCBieXRlcywgIgotCQkJIkR1bXBlZDogJSNsbHhcbiIsCi0JCQliZTY0X3RvX2NwdShmZG1fcHRyLT5jcHVfc3RhdGVfZGF0YS5kZXN0aW5hdGlvbl9hZGRyZXNzKSwKLQkJCWJlNjRfdG9fY3B1KGZkbV9wdHItPmNwdV9zdGF0ZV9kYXRhLmRlc3RpbmF0aW9uX2FkZHJlc3MpICsKLQkJCWJlNjRfdG9fY3B1KGZkbV9wdHItPmNwdV9zdGF0ZV9kYXRhLnNvdXJjZV9sZW4pIC0gMSwKLQkJCWJlNjRfdG9fY3B1KGZkbV9wdHItPmNwdV9zdGF0ZV9kYXRhLnNvdXJjZV9sZW4pLAotCQkJYmU2NF90b19jcHUoZmRtX3B0ci0+Y3B1X3N0YXRlX2RhdGEuYnl0ZXNfZHVtcGVkKSk7Ci0Jc2VxX3ByaW50ZihtLAotCQkJIkhQVEU6IFslIzAxNmxseC0lIzAxNmxseF0gJSNsbHggYnl0ZXMsICIKLQkJCSJEdW1wZWQ6ICUjbGx4XG4iLAotCQkJYmU2NF90b19jcHUoZmRtX3B0ci0+aHB0ZV9yZWdpb24uZGVzdGluYXRpb25fYWRkcmVzcyksCi0JCQliZTY0X3RvX2NwdShmZG1fcHRyLT5ocHRlX3JlZ2lvbi5kZXN0aW5hdGlvbl9hZGRyZXNzKSArCi0JCQliZTY0X3RvX2NwdShmZG1fcHRyLT5ocHRlX3JlZ2lvbi5zb3VyY2VfbGVuKSAtIDEsCi0JCQliZTY0X3RvX2NwdShmZG1fcHRyLT5ocHRlX3JlZ2lvbi5zb3VyY2VfbGVuKSwKLQkJCWJlNjRfdG9fY3B1KGZkbV9wdHItPmhwdGVfcmVnaW9uLmJ5dGVzX2R1bXBlZCkpOwotCXNlcV9wcmludGYobSwKLQkJCSJEVU1QOiBbJSMwMTZsbHgtJSMwMTZsbHhdICUjbGx4IGJ5dGVzLCAiCi0JCQkiRHVtcGVkOiAlI2xseFxuIiwKLQkJCWJlNjRfdG9fY3B1KGZkbV9wdHItPnJtcl9yZWdpb24uZGVzdGluYXRpb25fYWRkcmVzcyksCi0JCQliZTY0X3RvX2NwdShmZG1fcHRyLT5ybXJfcmVnaW9uLmRlc3RpbmF0aW9uX2FkZHJlc3MpICsKLQkJCWJlNjRfdG9fY3B1KGZkbV9wdHItPnJtcl9yZWdpb24uc291cmNlX2xlbikgLSAxLAotCQkJYmU2NF90b19jcHUoZmRtX3B0ci0+cm1yX3JlZ2lvbi5zb3VyY2VfbGVuKSwKLQkJCWJlNjRfdG9fY3B1KGZkbV9wdHItPnJtcl9yZWdpb24uYnl0ZXNfZHVtcGVkKSk7Ci0KLQlpZiAoIWZkbV9hY3RpdmUgfHwKLQkJKGZ3X2R1bXAucmVzZXJ2ZV9kdW1wX2FyZWFfc3RhcnQgPT0KLQkJYmU2NF90b19jcHUoZmRtX3B0ci0+Y3B1X3N0YXRlX2RhdGEuZGVzdGluYXRpb25fYWRkcmVzcykpKQotCQlnb3RvIG91dDsKLQotCS8qIER1bXAgaXMgYWN0aXZlLiBTaG93IHJlc2VydmVkIG1lbW9yeSByZWdpb24uICovCi0Jc2VxX3ByaW50ZihtLAotCQkJIiAgICA6IFslIzAxNmxseC0lIzAxNmxseF0gJSNsbHggYnl0ZXMsICIKLQkJCSJEdW1wZWQ6ICUjbGx4XG4iLAotCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylmd19kdW1wLnJlc2VydmVfZHVtcF9hcmVhX3N0YXJ0LAotCQkJYmU2NF90b19jcHUoZmRtX3B0ci0+Y3B1X3N0YXRlX2RhdGEuZGVzdGluYXRpb25fYWRkcmVzcykgLSAxLAotCQkJYmU2NF90b19jcHUoZmRtX3B0ci0+Y3B1X3N0YXRlX2RhdGEuZGVzdGluYXRpb25fYWRkcmVzcykgLQotCQkJZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zdGFydCwKLQkJCWJlNjRfdG9fY3B1KGZkbV9wdHItPmNwdV9zdGF0ZV9kYXRhLmRlc3RpbmF0aW9uX2FkZHJlc3MpIC0KLQkJCWZ3X2R1bXAucmVzZXJ2ZV9kdW1wX2FyZWFfc3RhcnQpOwotb3V0OgotCWlmIChmZG1fYWN0aXZlKQotCQltdXRleF91bmxvY2soJmZhZHVtcF9tdXRleCk7CisJZndfZHVtcC5vcHMtPmZhZHVtcF9yZWdpb25fc2hvdygmZndfZHVtcCwgbSk7CisJbXV0ZXhfdW5sb2NrKCZmYWR1bXBfbXV0ZXgpOwogCXJldHVybiAwOwogfQogCkBAIC0xNjkwLDE0ICsxNDg1LDc3IEBAIGludCBfX2luaXQgc2V0dXBfZmFkdW1wKHZvaWQpCiAJCSAqIGlmIGR1bXAgcHJvY2VzcyBmYWlscyB0aGVuIGludmFsaWRhdGUgdGhlIHJlZ2lzdHJhdGlvbgogCQkgKiBhbmQgcmVsZWFzZSBtZW1vcnkgYmVmb3JlIHByb2NlZWRpbmcgZm9yIHJlLXJlZ2lzdHJhdGlvbi4KIAkJICovCi0JCWlmIChwcm9jZXNzX2ZhZHVtcChmZG1fYWN0aXZlKSA8IDApCisJCWlmIChmd19kdW1wLm9wcy0+ZmFkdW1wX3Byb2Nlc3MoJmZ3X2R1bXApIDwgMCkKIAkJCWZhZHVtcF9pbnZhbGlkYXRlX3JlbGVhc2VfbWVtKCk7CiAJfQogCS8qIEluaXRpYWxpemUgdGhlIGtlcm5lbCBkdW1wIG1lbW9yeSBzdHJ1Y3R1cmUgZm9yIEZBRCByZWdpc3RyYXRpb24uICovCiAJZWxzZSBpZiAoZndfZHVtcC5yZXNlcnZlX2R1bXBfYXJlYV9zaXplKQotCQlpbml0X2ZhZHVtcF9tZW1fc3RydWN0KCZmZG0sIGZ3X2R1bXAucmVzZXJ2ZV9kdW1wX2FyZWFfc3RhcnQpOworCQlmd19kdW1wLm9wcy0+ZmFkdW1wX2luaXRfbWVtX3N0cnVjdCgmZndfZHVtcCk7CisKIAlmYWR1bXBfaW5pdF9maWxlcygpOwogCiAJcmV0dXJuIDE7CiB9CiBzdWJzeXNfaW5pdGNhbGwoc2V0dXBfZmFkdW1wKTsKKyNlbHNlIC8qICFDT05GSUdfUFJFU0VSVkVfRkFfRFVNUCAqLworCisvKiBTY2FuIHRoZSBGaXJtd2FyZSBBc3Npc3RlZCBkdW1wIGNvbmZpZ3VyYXRpb24gZGV0YWlscy4gKi8KK2ludCBfX2luaXQgZWFybHlfaW5pdF9kdF9zY2FuX2Z3X2R1bXAodW5zaWduZWQgbG9uZyBub2RlLCBjb25zdCBjaGFyICp1bmFtZSwKKwkJCQkgICAgICBpbnQgZGVwdGgsIHZvaWQgKmRhdGEpCit7CisJaWYgKChkZXB0aCAhPSAxKSB8fCAoc3RyY21wKHVuYW1lLCAiaWJtLG9wYWwiKSAhPSAwKSkKKwkJcmV0dXJuIDA7CisKKwlvcGFsX2ZhZHVtcF9kdF9zY2FuKCZmd19kdW1wLCBub2RlKTsKKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIFdoZW4gZHVtcCBpcyBhY3RpdmUgYnV0IFBSRVNFUlZFX0ZBX0RVTVAgaXMgZW5hYmxlZCBvbiB0aGUga2VybmVsLAorICogcHJlc2VydmUgY3Jhc2ggZGF0YS4gVGhlIHN1YnNlcXVlbnQgbWVtb3J5IHByZXNlcnZpbmcga2VybmVsIGJvb3QKKyAqIGlzIGxpa2VseSB0byBwcm9jZXNzIHRoaXMgY3Jhc2ggZGF0YS4KKyAqLworaW50IF9faW5pdCBmYWR1bXBfcmVzZXJ2ZV9tZW0odm9pZCkKK3sKKwlpZiAoZndfZHVtcC5kdW1wX2FjdGl2ZSkgeworCQkvKgorCQkgKiBJZiBsYXN0IGJvb3QgaGFzIGNyYXNoZWQgdGhlbiByZXNlcnZlIGFsbCB0aGUgbWVtb3J5CisJCSAqIGFib3ZlIGJvb3QgbWVtb3J5IHRvIHByZXNlcnZlIGNyYXNoIGRhdGEuCisJCSAqLworCQlwcl9pbmZvKCJQcmVzZXJ2aW5nIGNyYXNoIGRhdGEgZm9yIHByb2Nlc3NpbmcgaW4gbmV4dCBib290LlxuIik7CisJCWZhZHVtcF9yZXNlcnZlX2NyYXNoX2FyZWEoZndfZHVtcC5ib290X21lbV90b3ApOworCX0gZWxzZQorCQlwcl9kZWJ1ZygiRkFEdW1wLWF3YXJlIGtlcm5lbC4uXG4iKTsKKworCXJldHVybiAxOworfQorI2VuZGlmIC8qIENPTkZJR19QUkVTRVJWRV9GQV9EVU1QICovCisKKy8qIFByZXNlcnZlIGV2ZXJ5dGhpbmcgYWJvdmUgdGhlIGJhc2UgYWRkcmVzcyAqLworc3RhdGljIHZvaWQgX19pbml0IGZhZHVtcF9yZXNlcnZlX2NyYXNoX2FyZWEodTY0IGJhc2UpCit7CisJc3RydWN0IG1lbWJsb2NrX3JlZ2lvbiAqcmVnOworCXU2NCBtc3RhcnQsIG1zaXplOworCisJZm9yX2VhY2hfbWVtYmxvY2sobWVtb3J5LCByZWcpIHsKKwkJbXN0YXJ0ID0gcmVnLT5iYXNlOworCQltc2l6ZSAgPSByZWctPnNpemU7CisKKwkJaWYgKChtc3RhcnQgKyBtc2l6ZSkgPCBiYXNlKQorCQkJY29udGludWU7CisKKwkJaWYgKG1zdGFydCA8IGJhc2UpIHsKKwkJCW1zaXplIC09IChiYXNlIC0gbXN0YXJ0KTsKKwkJCW1zdGFydCA9IGJhc2U7CisJCX0KKworCQlwcl9pbmZvKCJSZXNlcnZpbmcgJWxsdU1CIG9mIG1lbW9yeSBhdCAlIzAxNmxseCBmb3IgcHJlc2VydmluZyBjcmFzaCBkYXRhIiwKKwkJCShtc2l6ZSA+PiAyMCksIG1zdGFydCk7CisJCW1lbWJsb2NrX3Jlc2VydmUobXN0YXJ0LCBtc2l6ZSk7CisJfQorfQorCit1bnNpZ25lZCBsb25nIF9faW5pdCBhcmNoX3Jlc2VydmVkX2tlcm5lbF9wYWdlcyh2b2lkKQoreworCXJldHVybiBtZW1ibG9ja19yZXNlcnZlZF9zaXplKCkgLyBQQUdFX1NJWkU7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2hlYWRfMzIuUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF8zMi5TCmluZGV4IGYyNTVlMjIuLjRhMjRmOGYwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2hlYWRfMzIuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2hlYWRfMzIuUwpAQCAtMzQsNyArMzQsMTYgQEAKIAogI2luY2x1ZGUgImhlYWRfMzIuaCIKIAotLyogNjAxIG9ubHkgaGF2ZSBJQkFUOyBjcjAuZXEgaXMgc2V0IG9uIDYwMSB3aGVuIHVzaW5nIHRoaXMgbWFjcm8gKi8KKy8qIDYwMSBvbmx5IGhhdmUgSUJBVCAqLworI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzYwMQorI2RlZmluZSBMT0FEX0JBVChuLCByZWcsIFJBLCBSQikJXAorCWxpCVJBLDA7CQkJXAorCW10c3ByCVNQUk5fSUJBVCMjbiMjVSxSQTsJXAorCWx3eglSQSwobioxNikrMChyZWcpOwlcCisJbHd6CVJCLChuKjE2KSs0KHJlZyk7CVwKKwltdHNwcglTUFJOX0lCQVQjI24jI1UsUkE7CVwKKwltdHNwcglTUFJOX0lCQVQjI24jI0wsUkIKKyNlbHNlCiAjZGVmaW5lIExPQURfQkFUKG4sIHJlZywgUkEsIFJCKQlcCiAJLyogc2VlIHRoZSBjb21tZW50IGZvciBjbGVhcl9iYXRzKCkgLS0gQ29ydCAqLyBcCiAJbGkJUkEsMDsJCQlcCkBAIC00NCwxMiArNTMsMTEgQEAKIAlsd3oJUkIsKG4qMTYpKzQocmVnKTsJXAogCW10c3ByCVNQUk5fSUJBVCMjbiMjVSxSQTsJXAogCW10c3ByCVNQUk5fSUJBVCMjbiMjTCxSQjsJXAotCWJlcQkxZjsJCQlcCiAJbHd6CVJBLChuKjE2KSs4KHJlZyk7CVwKIAlsd3oJUkIsKG4qMTYpKzEyKHJlZyk7CVwKIAltdHNwcglTUFJOX0RCQVQjI24jI1UsUkE7CVwKLQltdHNwcglTUFJOX0RCQVQjI24jI0wsUkI7CVwKLTE6CisJbXRzcHIJU1BSTl9EQkFUIyNuIyNMLFJCCisjZW5kaWYKIAogCV9fSEVBRAogCS5zdGFicwkiYXJjaC9wb3dlcnBjL2tlcm5lbC8iLE5fU08sMCwwLDBmCkBAIC01NTcsOSArNTY1LDkgQEAKIAljbXBsdwkwLHIxLHIzCiAJbWZzcHIJcjIsIFNQUk5fU1BSR19QR0RJUgogI2lmZGVmIENPTkZJR19TV0FQCi0JbGkJcjEsIF9QQUdFX1JXIHwgX1BBR0VfUFJFU0VOVCB8IF9QQUdFX0FDQ0VTU0VECisJbGkJcjEsIF9QQUdFX1JXIHwgX1BBR0VfRElSVFkgfCBfUEFHRV9QUkVTRU5UIHwgX1BBR0VfQUNDRVNTRUQKICNlbHNlCi0JbGkJcjEsIF9QQUdFX1JXIHwgX1BBR0VfUFJFU0VOVAorCWxpCXIxLCBfUEFHRV9SVyB8IF9QQUdFX0RJUlRZIHwgX1BBR0VfUFJFU0VOVAogI2VuZGlmCiAJYmdlLQkxMTJmCiAJbGlzCXIyLCAoc3dhcHBlcl9wZ19kaXIgLSBQQUdFX09GRlNFVClAaGEJLyogaWYga2VybmVsIGFkZHJlc3MsIHVzZSAqLwpAQCAtODIwLDkgKzgyOCw2IEBACiAKIC8qIExvYWQgdGhlIEJBVCByZWdpc3RlcnMgd2l0aCB0aGUgdmFsdWVzIHNldCB1cCBieSBNTVVfaW5pdC4KICAgIE1NVV9pbml0IHRha2VzIGNhcmUgb2Ygd2hldGhlciB3ZSdyZSBvbiBhIDYwMSBvciBub3QuICovCi0JbWZwdnIJcjMKLQlzcndpCXIzLHIzLDE2Ci0JY21wd2kJcjMsMQogCWxpcwlyMyxCQVRTQGhhCiAJYWRkaQlyMyxyMyxCQVRTQGwKIAl0b3BoeXMocjMscjMpCkBAIC04OTcsOSArOTAyLDExIEBACiAJYmwJbWFjaGluZV9pbml0CiAJYmwJX19zYXZlX2NwdV9zZXR1cAogCWJsCU1NVV9pbml0CisjaWZkZWYgQ09ORklHX0tBU0FOCiBCRUdJTl9NTVVfRlRSX1NFQ1RJT04KIAlibAlNTVVfaW5pdF9od19wYXRjaAogRU5EX01NVV9GVFJfU0VDVElPTl9JRlNFVChNTVVfRlRSX0hQVEVfVEFCTEUpCisjZW5kaWYKIAogLyoKICAqIEdvIGJhY2sgdG8gcnVubmluZyB1bm1hcHBlZCBzbyB3ZSBjYW4gbG9hZCB1cCBuZXcgdmFsdWVzCkBAIC05OTYsMTEgKzEwMDMsOCBAQAogICovCiBjbGVhcl9iYXRzOgogCWxpCXIxMCwwCi0JbWZzcHIJcjksU1BSTl9QVlIKLQlybHdpbm0JcjkscjksMTYsMTYsMzEJCS8qIHI5ID0gMSBmb3IgNjAxLCA0IGZvciA2MDQgKi8KLQljbXB3aQlyOSwgMQotCWJlcQkxZgogCisjaWZuZGVmIENPTkZJR19QUENfQk9PSzNTXzYwMQogCW10c3ByCVNQUk5fREJBVDBVLHIxMAogCW10c3ByCVNQUk5fREJBVDBMLHIxMAogCW10c3ByCVNQUk5fREJBVDFVLHIxMApAQCAtMTAwOSw3ICsxMDEzLDcgQEAKIAltdHNwcglTUFJOX0RCQVQyTCxyMTAKIAltdHNwcglTUFJOX0RCQVQzVSxyMTAKIAltdHNwcglTUFJOX0RCQVQzTCxyMTAKLTE6CisjZW5kaWYKIAltdHNwcglTUFJOX0lCQVQwVSxyMTAKIAltdHNwcglTUFJOX0lCQVQwTCxyMTAKIAltdHNwcglTUFJOX0lCQVQxVSxyMTAKQEAgLTExMDQsMTAgKzExMDgsNyBAQAogICovCiBpbml0aWFsX2JhdHM6CiAJbGlzCXIxMSxQQUdFX09GRlNFVEBoCi0JbWZzcHIJcjksU1BSTl9QVlIKLQlybHdpbm0JcjkscjksMTYsMTYsMzEJCS8qIHI5ID0gMSBmb3IgNjAxLCA0IGZvciA2MDQgKi8KLQljbXB3aQkwLHI5LDEKLQlibmUJNGYKKyNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182MDEKIAlvcmkJcjExLHIxMSw0CQkvKiBzZXQgdXAgQkFUIHJlZ2lzdGVycyBmb3IgNjAxICovCiAJbGkJcjgsMHg3ZgkJCS8qIHZhbGlkLCBibG9jayBsZW5ndGggPSA4TUIgKi8KIAltdHNwcglTUFJOX0lCQVQwVSxyMTEJCS8qIE4uQi4gNjAxIGhhcyB2YWxpZCBiaXQgaW4gKi8KQEAgLTExMjAsMTAgKzExMjEsOCBAQAogCWFkZGlzCXI4LHI4LDB4ODAwMDAwQGgKIAltdHNwcglTUFJOX0lCQVQyVSxyMTEKIAltdHNwcglTUFJOX0lCQVQyTCxyOAotCWlzeW5jCi0JYmxyCi0KLTQ6CXRvcGh5cyhyOCxyMTEpCisjZWxzZQorCXRvcGh5cyhyOCxyMTEpCiAjaWZkZWYgQ09ORklHX1NNUAogCW9yaQlyOCxyOCwweDEyCQkvKiBSL1cgYWNjZXNzLCBNPTEgKi8KICNlbHNlCkBAIC0xMTM1LDEwICsxMTM0LDEwIEBACiAJbXRzcHIJU1BSTl9EQkFUMFUscjExCQkvKiBiaXQgaW4gdXBwZXIgQkFUIHJlZ2lzdGVyICovCiAJbXRzcHIJU1BSTl9JQkFUMEwscjgKIAltdHNwcglTUFJOX0lCQVQwVSxyMTEKKyNlbmRpZgogCWlzeW5jCiAJYmxyCiAKLQogI2lmZGVmIENPTkZJR19CT09UWF9URVhUCiBzZXR1cF9kaXNwX2JhdDoKIAkvKgpAQCAtMTE1MywxNSArMTE1MiwxMyBAQAogCWJlcWxyCiAJbHd6CXIxMSwwKHI4KQogCWx3eglyOCw0KHI4KQotCW1mc3ByCXI5LFNQUk5fUFZSCi0Jcmx3aW5tCXI5LHI5LDE2LDE2LDMxCQkvKiByOSA9IDEgZm9yIDYwMSwgNCBmb3IgNjA0ICovCi0JY21wd2kJMCxyOSwxCi0JYmVxCTFmCisjaWZuZGVmIENPTkZJR19QUENfQk9PSzNTXzYwMQogCW10c3ByCVNQUk5fREJBVDNMLHI4CiAJbXRzcHIJU1BSTl9EQkFUM1UscjExCi0JYmxyCi0xOgltdHNwcglTUFJOX0lCQVQzTCxyOAorI2Vsc2UKKwltdHNwcglTUFJOX0lCQVQzTCxyOAogCW10c3ByCVNQUk5fSUJBVDNVLHIxMQorI2VuZGlmCiAJYmxyCiAjZW5kaWYgLyogQ09ORklHX0JPT1RYX1RFWFQgKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkXzMyLmggYi9hcmNoL3Bvd2VycGMva2VybmVsL2hlYWRfMzIuaAppbmRleCA0YTY5MjU1Li44YWJjNzc4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2hlYWRfMzIuaAorKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2hlYWRfMzIuaApAQCAtNSwxOSArNSw2IEBACiAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgkvKiBmb3IgU1RBQ0tfRlJBTUVfUkVHU19NQVJLRVIgKi8KIAogLyoKLSAqIE1TUl9LRVJORUwgaXMgPiAweDgwMDAgb24gNHh4L0Jvb2stRSBzaW5jZSBpdCBpbmNsdWRlIE1TUl9DRS4KLSAqLwotLm1hY3JvIF9fTE9BRF9NU1JfS0VSTkVMIHIsIHgKLS5pZiBceCA+PSAweDgwMDAKLQlsaXMgXHIsIChceClAaAotCW9yaSBcciwgXHIsIChceClAbAotLmVsc2UKLQlsaSBcciwgKFx4KQotLmVuZGlmCi0uZW5kbQotI2RlZmluZSBMT0FEX01TUl9LRVJORUwociwgeCkgX19MT0FEX01TUl9LRVJORUwgciwgeAotCi0vKgogICogRXhjZXB0aW9uIGVudHJ5IGNvZGUuICBUaGlzIGNvZGUgcnVucyB3aXRoIGFkZHJlc3MgdHJhbnNsYXRpb24KICAqIHR1cm5lZCBvZmYsIGkuZS4gdXNpbmcgcGh5c2ljYWwgYWRkcmVzc2VzLgogICogV2UgYXNzdW1lIHNwcmczIGhhcyB0aGUgcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgY3VycmVudApAQCAtOTIsNyArNzksNyBAQAogI2lmZGVmIENPTkZJR180MHgKIAlybHdpbm0JcjkscjksMCwxNCwxMgkJLyogY2xlYXIgTVNSX1dFIChuZWNlc3Nhcnk/KSAqLwogI2Vsc2UKLQlMT0FEX01TUl9LRVJORUwocjEwLCBNU1JfS0VSTkVMICYgfihNU1JfSVJ8TVNSX0RSKSkgLyogY2FuIHRha2UgZXhjZXB0aW9ucyAqLworCUxPQURfUkVHX0lNTUVESUFURShyMTAsIE1TUl9LRVJORUwgJiB+KE1TUl9JUnxNU1JfRFIpKSAvKiBjYW4gdGFrZSBleGNlcHRpb25zICovCiAJTVRNU1JEKHIxMCkJCQkvKiAoZXhjZXB0IGZvciBtYWNoIGNoZWNrIGluIHJ0YXMpICovCiAjZW5kaWYKIAlsaXMJcjEwLFNUQUNLX0ZSQU1FX1JFR1NfTUFSS0VSQGhhIC8qIGV4Y2VwdGlvbiBmcmFtZSBtYXJrZXIgKi8KQEAgLTE0MCwxMCArMTI3LDEwIEBACiAJICogb3RoZXJ3aXNlIHdlIG1pZ2h0IHJpc2sgdGFraW5nIGFuIGludGVycnVwdCBiZWZvcmUgd2UgdGVsbCBsb2NrZGVwCiAJICogdGhleSBhcmUgZW5hYmxlZC4KIAkgKi8KLQlMT0FEX01TUl9LRVJORUwocjEwLCBNU1JfS0VSTkVMKQorCUxPQURfUkVHX0lNTUVESUFURShyMTAsIE1TUl9LRVJORUwpCiAJcmx3aW1pCXIxMCwgcjksIDAsIE1TUl9FRQogI2Vsc2UKLQlMT0FEX01TUl9LRVJORUwocjEwLCBNU1JfS0VSTkVMIHwgTVNSX0VFKQorCUxPQURfUkVHX0lNTUVESUFURShyMTAsIE1TUl9LRVJORUwgfCBNU1JfRUUpCiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19QUENfOHh4KSAmJiBkZWZpbmVkKENPTkZJR19QRVJGX0VWRU5UUykKIAltdHNwcglTUFJOX05SSSwgcjAKQEAgLTE4Nyw3ICsxNzQsNyBAQAogI2RlZmluZSBFWENfWEZFUl9URU1QTEFURShoZGxyLCB0cmFwLCBtc3IsIHRmZXIsIHJldCkJCVwKIAlsaQlyMTAsdHJhcDsJCQkJCVwKIAlzdHcJcjEwLF9UUkFQKHIxMSk7CQkJCQlcCi0JTE9BRF9NU1JfS0VSTkVMKHIxMCwgbXNyKTsJCQkJXAorCUxPQURfUkVHX0lNTUVESUFURShyMTAsIG1zcik7CQkJCVwKIAlibAl0ZmVyOwkJCQkJCVwKIAkubG9uZwloZGxyOwkJCQkJCVwKIAkubG9uZwlyZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF82NC5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkXzY0LlMKaW5kZXggOTFkMjk3ZS4uYWQ3OWZkZCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkXzY0LlMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkXzY0LlMKQEAgLTE4Miw3ICsxODIsOCBAQAogCWlzeW5jCiAJYmN0cgogI2Vsc2UKLQlCVUdfT1BDT0RFCiswOgl0cmFwCisJRU1JVF9CVUdfRU5UUlkgMGIsIF9fRklMRV9fLCBfX0xJTkVfXywgMAogI2VuZGlmCiBDTE9TRV9GSVhFRF9TRUNUSU9OKGZpcnN0XzI1NkIpCiAKQEAgLTYzNSw3ICs2MzYsNyBAQAogCXN1YglyNSxyNSxyMTEKICNlbHNlCiAJLyoganVzdCBjb3B5IGludGVycnVwdHMgKi8KLQlMT0FEX1JFR19JTU1FRElBVEUocjUsIEZJWEVEX1NZTUJPTF9BQlNfQUREUihfX2VuZF9pbnRlcnJ1cHRzKSkKKwlMT0FEX1JFR19JTU1FRElBVEVfU1lNKHI1LCByMTEsIEZJWEVEX1NZTUJPTF9BQlNfQUREUihfX2VuZF9pbnRlcnJ1cHRzKSkKICNlbmRpZgogCWIJNWYKIDM6CkBAIC05OTgsNyArOTk5LDggQEAKIAlibAlzdGFydF9rZXJuZWwKIAogCS8qIE5vdCByZWFjaGVkICovCi0JQlVHX09QQ09ERQorCXRyYXAKKwlFTUlUX0JVR19FTlRSWSAwYiwgX19GSUxFX18sIF9fTElORV9fLCAwCiAKIC8qCiAgKiBXZSBwdXQgYSBmZXcgdGhpbmdzIGhlcmUgdGhhdCBoYXZlIHRvIGJlIHBhZ2UtYWxpZ25lZC4KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF84eHguUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF84eHguUwppbmRleCA1YWI5MTc4Li4xOWY1ODNlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2hlYWRfOHh4LlMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkXzh4eC5TCkBAIC0xNSw2ICsxNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYWdpYy5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9tbXUuaD4KQEAgLTU3NCw4ICs1NzUsNiBAQAogICogYnkgZGVjb2RpbmcgdGhlIHJlZ2lzdGVycyB1c2VkIGJ5IHRoZSBkY2J4IGluc3RydWN0aW9uIGFuZCBhZGRpbmcgdGhlbS4KICAqIERBUiBpcyBzZXQgdG8gdGhlIGNhbGN1bGF0ZWQgYWRkcmVzcy4KICAqLwotIC8qIGRlZmluZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byB1c2Ugc2VsZiBtb2RpZnlpbmcgY29kZSAqLwotI2RlZmluZSBOT19TRUxGX01PRElGWUlOR19DT0RFCiBGaXh1cERBUjovKiBFbnRyeSBwb2ludCBmb3IgZGNieCB3b3JrYXJvdW5kLiAqLwogCW10c3ByCVNQUk5fTV9UVywgcjEwCiAJLyogZmV0Y2ggaW5zdHJ1Y3Rpb24gZnJvbSBtZW1vcnkuICovCkBAIC02MzksMjcgKzYzOCw2IEBACiAJcmx3aW5tCXIxMCwgcjEwLDAsNyw1CS8qIENsZWFyIHN0b3JlIGJpdCBmb3IgYnVnZ3kgZGNic3QgaW5zbiAqLwogCW10c3ByCVNQUk5fRFNJU1IsIHIxMAogMTQyOgkvKiBjb250aW51ZSwgaXQgd2FzIGEgZGNieCwgZGNiaSBpbnN0cnVjdGlvbi4gKi8KLSNpZm5kZWYgTk9fU0VMRl9NT0RJRllJTkdfQ09ERQotCWFuZGlzLglyMTAscjExLDB4MWYJLyogdGVzdCBpZiByZWcgUkEgaXMgcjAgKi8KLQlsaQlyMTAsbW9kaWZpZWRfaW5zdHJAbAotCWRjYnRzdAlyMCxyMTAJCS8qIHRvdWNoIGZvciBzdG9yZSAqLwotCXJsd2lubQlyMTEscjExLDAsMCwyMAkvKiBaZXJvIGxvd2VyIDEwIGJpdHMgKi8KLQlvcmlzCXIxMSxyMTEsNjQwCS8qIFRyYW5zZm9ybSBpbnN0ci4gdG8gYSAiYWRkIHIxMCxSQSxSQiIgKi8KLQlvcmkJcjExLHIxMSw1MzIKLQlzdHcJcjExLDAocjEwKQkvKiBzdG9yZSBhZGQvYW5kIGluc3RydWN0aW9uICovCi0JZGNiZgkwLHIxMAkJLyogZmx1c2ggbmV3IGluc3RyLiB0byBtZW1vcnkuICovCi0JaWNiaQkwLHIxMAkJLyogaW52YWxpZGF0ZSBpbnN0ci4gY2FjaGUgbGluZSAqLwotCW1mc3ByCXIxMSwgU1BSTl9TUFJHX1NDUkFUQ0gxCS8qIHJlc3RvcmUgcjExICovCi0JbWZzcHIJcjEwLCBTUFJOX1NQUkdfU0NSQVRDSDAJLyogcmVzdG9yZSByMTAgKi8KLQlpc3luYwkJCS8qIFdhaXQgdW50aWwgbmV3IGluc3RyIGlzIGxvYWRlZCBmcm9tIG1lbW9yeSAqLwotbW9kaWZpZWRfaW5zdHI6Ci0JLnNwYWNlCTQJCS8qIHRoaXMgaXMgd2hlcmUgdGhlIGFkZCBpbnN0ci4gaXMgc3RvcmVkICovCi0JYm5lKwkxNDNmCi0Jc3ViZglyMTAscjAscjEwCS8qIHIxMD1yMTAtcjAsIG9ubHkgaWYgcmVnIFJBIGlzIHIwICovCi0xNDM6CW10ZGFyCXIxMAkJLyogc3RvcmUgZmF1bHRpbmcgRUEgaW4gREFSICovCi0JbWZzcHIJcjEwLFNQUk5fTV9UVwotCWIJREFSRml4ZWQJLyogR28gYmFjayB0byBub3JtYWwgVExCIGhhbmRsaW5nICovCi0jZWxzZQogCW1mY3RyCXIxMAogCW10ZGFyCXIxMAkJCS8qIHNhdmUgY3RyIHJlZyBpbiBEQVIgKi8KIAlybHdpbm0JcjEwLCByMTEsIDI0LCAyNCwgMjgJLyogb2Zmc2V0IGludG8ganVtcCB0YWJsZSBmb3IgcmVnIFJCICovCkBAIC03MjMsNyArNzAxLDYgQEAKIAlhZGQJcjEwLCByMTAsIHIxMQkvKiBhZGQgaXQgKi8KIAltZmN0cglyMTEJCS8qIHJlc3RvcmUgcjExICovCiAJYgkxNTFiCi0jZW5kaWYKIAogLyoKICAqIFRoaXMgaXMgd2hlcmUgdGhlIG1haW4ga2VybmVsIGNvZGUgc3RhcnRzLgpAQCAtNzQxLDYgKzcxOCw5IEBACiAJLyogc3RhY2sgKi8KIAlsaXMJcjEsaW5pdF90aHJlYWRfdW5pb25AaGEKIAlhZGRpCXIxLHIxLGluaXRfdGhyZWFkX3VuaW9uQGwKKwlsaXMJcjAsIFNUQUNLX0VORF9NQUdJQ0BoCisJb3JpCXIwLCByMCwgU1RBQ0tfRU5EX01BR0lDQGwKKwlzdHcJcjAsIDAocjEpCiAJbGkJcjAsMAogCXN0d3UJcjAsVEhSRUFEX1NJWkUtU1RBQ0tfRlJBTUVfT1ZFUkhFQUQocjEpCiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaHdfYnJlYWtwb2ludC5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9od19icmVha3BvaW50LmMKaW5kZXggYzhkMWZhMi4uMTAwN2VjMyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9od19icmVha3BvaW50LmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9od19icmVha3BvaW50LmMKQEAgLTE5NSwxOCArMTk1LDYzIEBAIHZvaWQgdGhyZWFkX2NoYW5nZV9wYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAJdHNrLT50aHJlYWQubGFzdF9oaXRfdWJwID0gTlVMTDsKIH0KIAorc3RhdGljIGJvb2wgaXNfbGFyeF9zdGN4X2luc3RyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBpbnQgaW5zdHIpCit7CisJaW50IHJldCwgdHlwZTsKKwlzdHJ1Y3QgaW5zdHJ1Y3Rpb25fb3Agb3A7CisKKwlyZXQgPSBhbmFseXNlX2luc3RyKCZvcCwgcmVncywgaW5zdHIpOworCXR5cGUgPSBHRVRUWVBFKG9wLnR5cGUpOworCXJldHVybiAoIXJldCAmJiAodHlwZSA9PSBMQVJYIHx8IHR5cGUgPT0gU1RDWCkpOworfQorCiAvKgogICogSGFuZGxlIGRlYnVnIGV4Y2VwdGlvbiBub3RpZmljYXRpb25zLgogICovCitzdGF0aWMgYm9vbCBzdGVwcGluZ19oYW5kbGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3QgcGVyZl9ldmVudCAqYnAsCisJCQkgICAgIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwl1bnNpZ25lZCBpbnQgaW5zdHIgPSAwOworCisJaWYgKF9fZ2V0X3VzZXJfaW5hdG9taWMoaW5zdHIsICh1bnNpZ25lZCBpbnQgKilyZWdzLT5uaXApKQorCQlnb3RvIGZhaWw7CisKKwlpZiAoaXNfbGFyeF9zdGN4X2luc3RyKHJlZ3MsIGluc3RyKSkgeworCQlwcmludGtfcmF0ZWxpbWl0ZWQoIkJyZWFrcG9pbnQgaGl0IG9uIGluc3RydWN0aW9uIHRoYXQgY2FuJ3QgYmUgZW11bGF0ZWQuIgorCQkJCSAgICIgQnJlYWtwb2ludCBhdCAweCVseCB3aWxsIGJlIGRpc2FibGVkLlxuIiwgYWRkcik7CisJCWdvdG8gZGlzYWJsZTsKKwl9CisKKwkvKiBEbyBub3QgZW11bGF0ZSB1c2VyLXNwYWNlIGluc3RydWN0aW9ucywgaW5zdGVhZCBzaW5nbGUtc3RlcCB0aGVtICovCisJaWYgKHVzZXJfbW9kZShyZWdzKSkgeworCQljdXJyZW50LT50aHJlYWQubGFzdF9oaXRfdWJwID0gYnA7CisJCXJlZ3MtPm1zciB8PSBNU1JfU0U7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlpZiAoIWVtdWxhdGVfc3RlcChyZWdzLCBpbnN0cikpCisJCWdvdG8gZmFpbDsKKworCXJldHVybiB0cnVlOworCitmYWlsOgorCS8qCisJICogV2UndmUgZmFpbGVkIGluIHJlbGlhYmx5IGhhbmRsaW5nIHRoZSBody1icmVha3BvaW50LiBVbnJlZ2lzdGVyCisJICogaXQgYW5kIHRocm93IGEgd2FybmluZyBtZXNzYWdlIHRvIGxldCB0aGUgdXNlciBrbm93IGFib3V0IGl0LgorCSAqLworCVdBUk4oMSwgIlVuYWJsZSB0byBoYW5kbGUgaGFyZHdhcmUgYnJlYWtwb2ludC4gQnJlYWtwb2ludCBhdCAiCisJCSIweCVseCB3aWxsIGJlIGRpc2FibGVkLiIsIGFkZHIpOworCitkaXNhYmxlOgorCXBlcmZfZXZlbnRfZGlzYWJsZV9pbmF0b21pYyhicCk7CisJcmV0dXJuIGZhbHNlOworfQorCiBpbnQgaHdfYnJlYWtwb2ludF9oYW5kbGVyKHN0cnVjdCBkaWVfYXJncyAqYXJncykKIHsKIAlpbnQgcmMgPSBOT1RJRllfU1RPUDsKIAlzdHJ1Y3QgcGVyZl9ldmVudCAqYnA7CiAJc3RydWN0IHB0X3JlZ3MgKnJlZ3MgPSBhcmdzLT5yZWdzOwotI2lmbmRlZiBDT05GSUdfUFBDXzh4eAotCWludCBzdGVwcGVkID0gMTsKLQl1bnNpZ25lZCBpbnQgaW5zdHI7Ci0jZW5kaWYKIAlzdHJ1Y3QgYXJjaF9od19icmVha3BvaW50ICppbmZvOwogCXVuc2lnbmVkIGxvbmcgZGFyID0gcmVncy0+ZGFyOwogCkBAIC0yNTEsMzEgKzI5Niw5IEBAIGludCBod19icmVha3BvaW50X2hhbmRsZXIoc3RydWN0IGRpZV9hcmdzICphcmdzKQogCSAgICAgIChkYXIgLSBicC0+YXR0ci5icF9hZGRyIDwgYnAtPmF0dHIuYnBfbGVuKSkpCiAJCWluZm8tPnR5cGUgfD0gSFdfQlJLX1RZUEVfRVhUUkFORU9VU19JUlE7CiAKLSNpZm5kZWYgQ09ORklHX1BQQ184eHgKLQkvKiBEbyBub3QgZW11bGF0ZSB1c2VyLXNwYWNlIGluc3RydWN0aW9ucywgaW5zdGVhZCBzaW5nbGUtc3RlcCB0aGVtICovCi0JaWYgKHVzZXJfbW9kZShyZWdzKSkgewotCQljdXJyZW50LT50aHJlYWQubGFzdF9oaXRfdWJwID0gYnA7Ci0JCXJlZ3MtPm1zciB8PSBNU1JfU0U7CisJaWYgKCFJU19FTkFCTEVEKENPTkZJR19QUENfOHh4KSAmJiAhc3RlcHBpbmdfaGFuZGxlcihyZWdzLCBicCwgaW5mby0+YWRkcmVzcykpCiAJCWdvdG8gb3V0OwotCX0KIAotCXN0ZXBwZWQgPSAwOwotCWluc3RyID0gMDsKLQlpZiAoIV9fZ2V0X3VzZXJfaW5hdG9taWMoaW5zdHIsICh1bnNpZ25lZCBpbnQgKikgcmVncy0+bmlwKSkKLQkJc3RlcHBlZCA9IGVtdWxhdGVfc3RlcChyZWdzLCBpbnN0cik7Ci0KLQkvKgotCSAqIGVtdWxhdGVfc3RlcCgpIGNvdWxkIG5vdCBleGVjdXRlIGl0LiBXZSd2ZSBmYWlsZWQgaW4gcmVsaWFibHkKLQkgKiBoYW5kbGluZyB0aGUgaHctYnJlYWtwb2ludC4gVW5yZWdpc3RlciBpdCBhbmQgdGhyb3cgYSB3YXJuaW5nCi0JICogbWVzc2FnZSB0byBsZXQgdGhlIHVzZXIga25vdyBhYm91dCBpdC4KLQkgKi8KLQlpZiAoIXN0ZXBwZWQpIHsKLQkJV0FSTigxLCAiVW5hYmxlIHRvIGhhbmRsZSBoYXJkd2FyZSBicmVha3BvaW50LiBCcmVha3BvaW50IGF0ICIKLQkJCSIweCVseCB3aWxsIGJlIGRpc2FibGVkLiIsIGluZm8tPmFkZHJlc3MpOwotCQlwZXJmX2V2ZW50X2Rpc2FibGVfaW5hdG9taWMoYnApOwotCQlnb3RvIG91dDsKLQl9Ci0jZW5kaWYKIAkvKgogCSAqIEFzIGEgcG9saWN5LCB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZCBpbiBhICd0cmlnZ2VyLWFmdGVyLWV4ZWN1dGUnCiAJICogZmFzaGlvbgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9pby13b3JrYXJvdW5kcy5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9pby13b3JrYXJvdW5kcy5jCmluZGV4IGZiZDJkMDAuLjAyNzZiYzggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaW8td29ya2Fyb3VuZHMuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2lvLXdvcmthcm91bmRzLmMKQEAgLTE0OSw4ICsxNDksOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBwY19wY2lfaW8gaW93YV9wY2lfaW8gPSB7CiB9OwogCiAjaWZkZWYgQ09ORklHX1BQQ19JTkRJUkVDVF9NTUlPCi1zdGF0aWMgdm9pZCBfX2lvbWVtICppb3dhX2lvcmVtYXAocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLAotCQkJCSAgcGdwcm90X3QgcHJvdCwgdm9pZCAqY2FsbGVyKQordm9pZCBfX2lvbWVtICppb3dhX2lvcmVtYXAocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJICAgcGdwcm90X3QgcHJvdCwgdm9pZCAqY2FsbGVyKQogewogCXN0cnVjdCBpb3dhX2J1cyAqYnVzOwogCXZvaWQgX19pb21lbSAqcmVzID0gX19pb3JlbWFwX2NhbGxlcihhZGRyLCBzaXplLCBwcm90LCBjYWxsZXIpOwpAQCAtMTYzLDIwICsxNjMsMTcgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqaW93YV9pb3JlbWFwKHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAl9CiAJcmV0dXJuIHJlczsKIH0KLSNlbHNlIC8qIENPTkZJR19QUENfSU5ESVJFQ1RfTU1JTyAqLwotI2RlZmluZSBpb3dhX2lvcmVtYXAgTlVMTAogI2VuZGlmIC8qICFDT05GSUdfUFBDX0lORElSRUNUX01NSU8gKi8KIAorYm9vbCBpb193b3JrYXJvdW5kX2luaXRlZDsKKwogLyogRW5hYmxlIElPIHdvcmthcm91bmQgKi8KIHN0YXRpYyB2b2lkIGlvX3dvcmthcm91bmRfaW5pdCh2b2lkKQogewotCXN0YXRpYyBpbnQgaW9fd29ya2Fyb3VuZF9pbml0ZWQ7Ci0KIAlpZiAoaW9fd29ya2Fyb3VuZF9pbml0ZWQpCiAJCXJldHVybjsKIAlwcGNfcGNpX2lvID0gaW93YV9wY2lfaW87Ci0JcHBjX21kLmlvcmVtYXAgPSBpb3dhX2lvcmVtYXA7Ci0JaW9fd29ya2Fyb3VuZF9pbml0ZWQgPSAxOworCWlvX3dvcmthcm91bmRfaW5pdGVkID0gdHJ1ZTsKIH0KIAogLyogUmVnaXN0ZXIgbmV3IGJ1cyB0byBzdXBwb3J0IHdvcmthcm91bmQgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaW9tbXUuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaW9tbXUuYwppbmRleCAwYTY3Y2U5Li45NzA0ZjNmIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2lvbW11LmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9pb21tdS5jCkBAIC02MzMsMTEgKzYzMyw1NCBAQCBzdGF0aWMgdm9pZCBpb21tdV90YWJsZV9jbGVhcihzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCkKICNlbmRpZgogfQogCitzdGF0aWMgdm9pZCBpb21tdV90YWJsZV9yZXNlcnZlX3BhZ2VzKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLAorCQl1bnNpZ25lZCBsb25nIHJlc19zdGFydCwgdW5zaWduZWQgbG9uZyByZXNfZW5kKQoreworCWludCBpOworCisJV0FSTl9PTl9PTkNFKHJlc19lbmQgPCByZXNfc3RhcnQpOworCS8qCisJICogUmVzZXJ2ZSBwYWdlIDAgc28gaXQgd2lsbCBub3QgYmUgdXNlZCBmb3IgYW55IG1hcHBpbmdzLgorCSAqIFRoaXMgYXZvaWRzIGJ1Z2d5IGRyaXZlcnMgdGhhdCBjb25zaWRlciBwYWdlIDAgdG8gYmUgaW52YWxpZAorCSAqIHRvIGNyYXNoIHRoZSBtYWNoaW5lIG9yIGV2ZW4gbG9zZSBkYXRhLgorCSAqLworCWlmICh0YmwtPml0X29mZnNldCA9PSAwKQorCQlzZXRfYml0KDAsIHRibC0+aXRfbWFwKTsKKworCXRibC0+aXRfcmVzZXJ2ZWRfc3RhcnQgPSByZXNfc3RhcnQ7CisJdGJsLT5pdF9yZXNlcnZlZF9lbmQgPSByZXNfZW5kOworCisJLyogQ2hlY2sgaWYgcmVzX3N0YXJ0Li5yZXNfZW5kIGlzbid0IGVtcHR5IGFuZCBvdmVybGFwcyB0aGUgdGFibGUgKi8KKwlpZiAocmVzX3N0YXJ0ICYmIHJlc19lbmQgJiYKKwkJCSh0YmwtPml0X29mZnNldCArIHRibC0+aXRfc2l6ZSA8IHJlc19zdGFydCB8fAorCQkJIHJlc19lbmQgPCB0YmwtPml0X29mZnNldCkpCisJCXJldHVybjsKKworCWZvciAoaSA9IHRibC0+aXRfcmVzZXJ2ZWRfc3RhcnQ7IGkgPCB0YmwtPml0X3Jlc2VydmVkX2VuZDsgKytpKQorCQlzZXRfYml0KGkgLSB0YmwtPml0X29mZnNldCwgdGJsLT5pdF9tYXApOworfQorCitzdGF0aWMgdm9pZCBpb21tdV90YWJsZV9yZWxlYXNlX3BhZ2VzKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsKQoreworCWludCBpOworCisJLyoKKwkgKiBJbiBjYXNlIHdlIGhhdmUgcmVzZXJ2ZWQgdGhlIGZpcnN0IGJpdCwgd2Ugc2hvdWxkIG5vdCBlbWl0CisJICogdGhlIHdhcm5pbmcgYmVsb3cuCisJICovCisJaWYgKHRibC0+aXRfb2Zmc2V0ID09IDApCisJCWNsZWFyX2JpdCgwLCB0YmwtPml0X21hcCk7CisKKwlmb3IgKGkgPSB0YmwtPml0X3Jlc2VydmVkX3N0YXJ0OyBpIDwgdGJsLT5pdF9yZXNlcnZlZF9lbmQ7ICsraSkKKwkJY2xlYXJfYml0KGkgLSB0YmwtPml0X29mZnNldCwgdGJsLT5pdF9tYXApOworfQorCiAvKgogICogQnVpbGQgYSBpb21tdV90YWJsZSBzdHJ1Y3R1cmUuICBUaGlzIGNvbnRhaW5zIGEgYml0IG1hcCB3aGljaAogICogaXMgdXNlZCB0byBtYW5hZ2UgYWxsb2NhdGlvbiBvZiB0aGUgdGNlIHNwYWNlLgogICovCi1zdHJ1Y3QgaW9tbXVfdGFibGUgKmlvbW11X2luaXRfdGFibGUoc3RydWN0IGlvbW11X3RhYmxlICp0YmwsIGludCBuaWQpCitzdHJ1Y3QgaW9tbXVfdGFibGUgKmlvbW11X2luaXRfdGFibGUoc3RydWN0IGlvbW11X3RhYmxlICp0YmwsIGludCBuaWQsCisJCXVuc2lnbmVkIGxvbmcgcmVzX3N0YXJ0LCB1bnNpZ25lZCBsb25nIHJlc19lbmQpCiB7CiAJdW5zaWduZWQgbG9uZyBzejsKIAlzdGF0aWMgaW50IHdlbGNvbWVkID0gMDsKQEAgLTY1NiwxMyArNjk5LDcgQEAgc3RydWN0IGlvbW11X3RhYmxlICppb21tdV9pbml0X3RhYmxlKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLCBpbnQgbmlkKQogCXRibC0+aXRfbWFwID0gcGFnZV9hZGRyZXNzKHBhZ2UpOwogCW1lbXNldCh0YmwtPml0X21hcCwgMCwgc3opOwogCi0JLyoKLQkgKiBSZXNlcnZlIHBhZ2UgMCBzbyBpdCB3aWxsIG5vdCBiZSB1c2VkIGZvciBhbnkgbWFwcGluZ3MuCi0JICogVGhpcyBhdm9pZHMgYnVnZ3kgZHJpdmVycyB0aGF0IGNvbnNpZGVyIHBhZ2UgMCB0byBiZSBpbnZhbGlkCi0JICogdG8gY3Jhc2ggdGhlIG1hY2hpbmUgb3IgZXZlbiBsb3NlIGRhdGEuCi0JICovCi0JaWYgKHRibC0+aXRfb2Zmc2V0ID09IDApCi0JCXNldF9iaXQoMCwgdGJsLT5pdF9tYXApOworCWlvbW11X3RhYmxlX3Jlc2VydmVfcGFnZXModGJsLCByZXNfc3RhcnQsIHJlc19lbmQpOwogCiAJLyogV2Ugb25seSBzcGxpdCB0aGUgSU9NTVUgdGFibGUgaWYgd2UgaGF2ZSAxR0Igb3IgbW9yZSBvZiBzcGFjZSAqLwogCWlmICgodGJsLT5pdF9zaXplIDw8IHRibC0+aXRfcGFnZV9zaGlmdCkgPj0gKDFVTCAqIDEwMjQgKiAxMDI0ICogMTAyNCkpCkBAIC03MTQsMTIgKzc1MSw3IEBAIHN0YXRpYyB2b2lkIGlvbW11X3RhYmxlX2ZyZWUoc3RydWN0IGtyZWYgKmtyZWYpCiAJCXJldHVybjsKIAl9CiAKLQkvKgotCSAqIEluIGNhc2Ugd2UgaGF2ZSByZXNlcnZlZCB0aGUgZmlyc3QgYml0LCB3ZSBzaG91bGQgbm90IGVtaXQKLQkgKiB0aGUgd2FybmluZyBiZWxvdy4KLQkgKi8KLQlpZiAodGJsLT5pdF9vZmZzZXQgPT0gMCkKLQkJY2xlYXJfYml0KDAsIHRibC0+aXRfbWFwKTsKKwlpb21tdV90YWJsZV9yZWxlYXNlX3BhZ2VzKHRibCk7CiAKIAkvKiB2ZXJpZnkgdGhhdCB0YWJsZSBjb250YWlucyBubyBlbnRyaWVzICovCiAJaWYgKCFiaXRtYXBfZW1wdHkodGJsLT5pdF9tYXAsIHRibC0+aXRfc2l6ZSkpCkBAIC05ODEsMjkgKzEwMTMsMzIgQEAgaW50IGlvbW11X3RjZV9jaGVja19ncGEodW5zaWduZWQgbG9uZyBwYWdlX3NoaWZ0LCB1bnNpZ25lZCBsb25nIGdwYSkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGlvbW11X3RjZV9jaGVja19ncGEpOwogCi1sb25nIGlvbW11X3RjZV94Y2hnKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwKK2V4dGVybiBsb25nIGlvbW11X3RjZV94Y2hnX25vX2tpbGwoc3RydWN0IG1tX3N0cnVjdCAqbW0sCisJCXN0cnVjdCBpb21tdV90YWJsZSAqdGJsLAogCQl1bnNpZ25lZCBsb25nIGVudHJ5LCB1bnNpZ25lZCBsb25nICpocGEsCiAJCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uICpkaXJlY3Rpb24pCiB7CiAJbG9uZyByZXQ7CiAJdW5zaWduZWQgbG9uZyBzaXplID0gMDsKIAotCXJldCA9IHRibC0+aXRfb3BzLT5leGNoYW5nZSh0YmwsIGVudHJ5LCBocGEsIGRpcmVjdGlvbik7Ci0KKwlyZXQgPSB0YmwtPml0X29wcy0+eGNoZ19ub19raWxsKHRibCwgZW50cnksIGhwYSwgZGlyZWN0aW9uLCBmYWxzZSk7CiAJaWYgKCFyZXQgJiYgKCgqZGlyZWN0aW9uID09IERNQV9GUk9NX0RFVklDRSkgfHwKIAkJCSgqZGlyZWN0aW9uID09IERNQV9CSURJUkVDVElPTkFMKSkgJiYKIAkJCSFtbV9pb21tdV9pc19kZXZtZW0obW0sICpocGEsIHRibC0+aXRfcGFnZV9zaGlmdCwKIAkJCQkJJnNpemUpKQogCQlTZXRQYWdlRGlydHkocGZuX3RvX3BhZ2UoKmhwYSA+PiBQQUdFX1NISUZUKSk7CiAKLQkvKiBpZiAodW5saWtlbHkocmV0KSkKLQkJcHJfZXJyKCJpb21tdV90Y2U6ICVzIGZhaWxlZCBvbiBod2FkZHI9JWx4IGlvYmE9JWx4IGt2YT0lbHggcmV0PSVkXG4iLAotCQkJX19mdW5jX18sIGh3YWRkciwgZW50cnkgPDwgdGJsLT5pdF9wYWdlX3NoaWZ0LAotCQkJCWh3YWRkciwgcmV0KTsgKi8KLQogCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChpb21tdV90Y2VfeGNoZyk7CitFWFBPUlRfU1lNQk9MX0dQTChpb21tdV90Y2VfeGNoZ19ub19raWxsKTsKKwordm9pZCBpb21tdV90Y2Vfa2lsbChzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwKKwkJdW5zaWduZWQgbG9uZyBlbnRyeSwgdW5zaWduZWQgbG9uZyBwYWdlcykKK3sKKwlpZiAodGJsLT5pdF9vcHMtPnRjZV9raWxsKQorCQl0YmwtPml0X29wcy0+dGNlX2tpbGwodGJsLCBlbnRyeSwgcGFnZXMsIGZhbHNlKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGlvbW11X3RjZV9raWxsKTsKIAogaW50IGlvbW11X3Rha2Vfb3duZXJzaGlwKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsKQogewpAQCAtMTAxNywyMiArMTA1MiwyMSBAQCBpbnQgaW9tbXVfdGFrZV9vd25lcnNoaXAoc3RydWN0IGlvbW11X3RhYmxlICp0YmwpCiAJICogcmVxdWlyZXMgZXhjaGFuZ2UoKSBjYWxsYmFjayBkZWZpbmVkIHNvIGlmIGl0IGlzIG5vdAogCSAqIGltcGxlbWVudGVkLCB3ZSBkaXNhbGxvdyB0YWtpbmcgb3duZXJzaGlwIG92ZXIgdGhlIHRhYmxlLgogCSAqLwotCWlmICghdGJsLT5pdF9vcHMtPmV4Y2hhbmdlKQorCWlmICghdGJsLT5pdF9vcHMtPnhjaGdfbm9fa2lsbCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmdGJsLT5sYXJnZV9wb29sLmxvY2ssIGZsYWdzKTsKIAlmb3IgKGkgPSAwOyBpIDwgdGJsLT5ucl9wb29sczsgaSsrKQogCQlzcGluX2xvY2soJnRibC0+cG9vbHNbaV0ubG9jayk7CiAKLQlpZiAodGJsLT5pdF9vZmZzZXQgPT0gMCkKLQkJY2xlYXJfYml0KDAsIHRibC0+aXRfbWFwKTsKKwlpb21tdV90YWJsZV9yZWxlYXNlX3BhZ2VzKHRibCk7CiAKIAlpZiAoIWJpdG1hcF9lbXB0eSh0YmwtPml0X21hcCwgdGJsLT5pdF9zaXplKSkgewogCQlwcl9lcnIoImlvbW11X3RjZTogaXRfbWFwIGlzIG5vdCBlbXB0eSIpOwogCQlyZXQgPSAtRUJVU1k7Ci0JCS8qIFJlc3RvcmUgYml0IzAgc2V0IGJ5IGlvbW11X2luaXRfdGFibGUoKSAqLwotCQlpZiAodGJsLT5pdF9vZmZzZXQgPT0gMCkKLQkJCXNldF9iaXQoMCwgdGJsLT5pdF9tYXApOworCQkvKiBVbmRvIGlvbW11X3RhYmxlX3JlbGVhc2VfcGFnZXMsIGkuZS4gcmVzdG9yZSBiaXQjMCwgZXRjICovCisJCWlvbW11X3RhYmxlX3Jlc2VydmVfcGFnZXModGJsLCB0YmwtPml0X3Jlc2VydmVkX3N0YXJ0LAorCQkJCXRibC0+aXRfcmVzZXJ2ZWRfZW5kKTsKIAl9IGVsc2UgewogCQltZW1zZXQodGJsLT5pdF9tYXAsIDB4ZmYsIHN6KTsKIAl9CkBAIC0xMDU1LDkgKzEwODksOCBAQCB2b2lkIGlvbW11X3JlbGVhc2Vfb3duZXJzaGlwKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsKQogCiAJbWVtc2V0KHRibC0+aXRfbWFwLCAwLCBzeik7CiAKLQkvKiBSZXN0b3JlIGJpdCMwIHNldCBieSBpb21tdV9pbml0X3RhYmxlKCkgKi8KLQlpZiAodGJsLT5pdF9vZmZzZXQgPT0gMCkKLQkJc2V0X2JpdCgwLCB0YmwtPml0X21hcCk7CisJaW9tbXVfdGFibGVfcmVzZXJ2ZV9wYWdlcyh0YmwsIHRibC0+aXRfcmVzZXJ2ZWRfc3RhcnQsCisJCQl0YmwtPml0X3Jlc2VydmVkX2VuZCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgdGJsLT5ucl9wb29sczsgaSsrKQogCQlzcGluX3VubG9jaygmdGJsLT5wb29sc1tpXS5sb2NrKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwva3ZtLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2t2bS5jCmluZGV4IGI3YjNhNWUuLjYxN2ViYTggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwva3ZtLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9rdm0uYwpAQCAtNjQsMTYgKzY0LDE3IEBACiAjZGVmaW5lIEtWTV9JTlNUX01UU1JJTgkJMHg3YzAwMDFlNAogCiBzdGF0aWMgYm9vbCBrdm1fcGF0Y2hpbmdfd29ya2VkID0gdHJ1ZTsKLWNoYXIga3ZtX3RtcFsxMDI0ICogMTAyNF07CitleHRlcm4gY2hhciBrdm1fdG1wW107CitleHRlcm4gY2hhciBrdm1fdG1wX2VuZFtdOwogc3RhdGljIGludCBrdm1fdG1wX2luZGV4OwogCi1zdGF0aWMgaW5saW5lIHZvaWQga3ZtX3BhdGNoX2lucyh1MzIgKmluc3QsIHUzMiBuZXdfaW5zdCkKK3N0YXRpYyB2b2lkIF9faW5pdCBrdm1fcGF0Y2hfaW5zKHUzMiAqaW5zdCwgdTMyIG5ld19pbnN0KQogewogCSppbnN0ID0gbmV3X2luc3Q7CiAJZmx1c2hfaWNhY2hlX3JhbmdlKCh1bG9uZylpbnN0LCAodWxvbmcpaW5zdCArIDQpOwogfQogCi1zdGF0aWMgdm9pZCBrdm1fcGF0Y2hfaW5zX2xsKHUzMiAqaW5zdCwgbG9uZyBhZGRyLCB1MzIgcnQpCitzdGF0aWMgdm9pZCBfX2luaXQga3ZtX3BhdGNoX2luc19sbCh1MzIgKmluc3QsIGxvbmcgYWRkciwgdTMyIHJ0KQogewogI2lmZGVmIENPTkZJR182NEJJVAogCWt2bV9wYXRjaF9pbnMoaW5zdCwgS1ZNX0lOU1RfTEQgfCBydCB8IChhZGRyICYgMHgwMDAwZmZmYykpOwpAQCAtODIsNyArODMsNyBAQCBzdGF0aWMgdm9pZCBrdm1fcGF0Y2hfaW5zX2xsKHUzMiAqaW5zdCwgbG9uZyBhZGRyLCB1MzIgcnQpCiAjZW5kaWYKIH0KIAotc3RhdGljIHZvaWQga3ZtX3BhdGNoX2luc19sZCh1MzIgKmluc3QsIGxvbmcgYWRkciwgdTMyIHJ0KQorc3RhdGljIHZvaWQgX19pbml0IGt2bV9wYXRjaF9pbnNfbGQodTMyICppbnN0LCBsb25nIGFkZHIsIHUzMiBydCkKIHsKICNpZmRlZiBDT05GSUdfNjRCSVQKIAlrdm1fcGF0Y2hfaW5zKGluc3QsIEtWTV9JTlNUX0xEIHwgcnQgfCAoYWRkciAmIDB4MDAwMGZmZmMpKTsKQEAgLTkxLDEyICs5MiwxMiBAQCBzdGF0aWMgdm9pZCBrdm1fcGF0Y2hfaW5zX2xkKHUzMiAqaW5zdCwgbG9uZyBhZGRyLCB1MzIgcnQpCiAjZW5kaWYKIH0KIAotc3RhdGljIHZvaWQga3ZtX3BhdGNoX2luc19sd3oodTMyICppbnN0LCBsb25nIGFkZHIsIHUzMiBydCkKK3N0YXRpYyB2b2lkIF9faW5pdCBrdm1fcGF0Y2hfaW5zX2x3eih1MzIgKmluc3QsIGxvbmcgYWRkciwgdTMyIHJ0KQogewogCWt2bV9wYXRjaF9pbnMoaW5zdCwgS1ZNX0lOU1RfTFdaIHwgcnQgfCAoYWRkciAmIDB4MDAwMGZmZmYpKTsKIH0KIAotc3RhdGljIHZvaWQga3ZtX3BhdGNoX2luc19zdGQodTMyICppbnN0LCBsb25nIGFkZHIsIHUzMiBydCkKK3N0YXRpYyB2b2lkIF9faW5pdCBrdm1fcGF0Y2hfaW5zX3N0ZCh1MzIgKmluc3QsIGxvbmcgYWRkciwgdTMyIHJ0KQogewogI2lmZGVmIENPTkZJR182NEJJVAogCWt2bV9wYXRjaF9pbnMoaW5zdCwgS1ZNX0lOU1RfU1REIHwgcnQgfCAoYWRkciAmIDB4MDAwMGZmZmMpKTsKQEAgLTEwNSwxNyArMTA2LDE3IEBAIHN0YXRpYyB2b2lkIGt2bV9wYXRjaF9pbnNfc3RkKHUzMiAqaW5zdCwgbG9uZyBhZGRyLCB1MzIgcnQpCiAjZW5kaWYKIH0KIAotc3RhdGljIHZvaWQga3ZtX3BhdGNoX2luc19zdHcodTMyICppbnN0LCBsb25nIGFkZHIsIHUzMiBydCkKK3N0YXRpYyB2b2lkIF9faW5pdCBrdm1fcGF0Y2hfaW5zX3N0dyh1MzIgKmluc3QsIGxvbmcgYWRkciwgdTMyIHJ0KQogewogCWt2bV9wYXRjaF9pbnMoaW5zdCwgS1ZNX0lOU1RfU1RXIHwgcnQgfCAoYWRkciAmIDB4MDAwMGZmZmMpKTsKIH0KIAotc3RhdGljIHZvaWQga3ZtX3BhdGNoX2luc19ub3AodTMyICppbnN0KQorc3RhdGljIHZvaWQgX19pbml0IGt2bV9wYXRjaF9pbnNfbm9wKHUzMiAqaW5zdCkKIHsKIAlrdm1fcGF0Y2hfaW5zKGluc3QsIEtWTV9JTlNUX05PUCk7CiB9CiAKLXN0YXRpYyB2b2lkIGt2bV9wYXRjaF9pbnNfYih1MzIgKmluc3QsIGludCBhZGRyKQorc3RhdGljIHZvaWQgX19pbml0IGt2bV9wYXRjaF9pbnNfYih1MzIgKmluc3QsIGludCBhZGRyKQogewogI2lmIGRlZmluZWQoQ09ORklHX1JFTE9DQVRBQkxFKSAmJiBkZWZpbmVkKENPTkZJR19QUENfQk9PSzNTKQogCS8qIE9uIHJlbG9jYXRhYmxlIGtlcm5lbHMgaW50ZXJydXB0cyBoYW5kbGVycyBhbmQgb3VyIGNvZGUKQEAgLTEyOCwxMSArMTI5LDExIEBAIHN0YXRpYyB2b2lkIGt2bV9wYXRjaF9pbnNfYih1MzIgKmluc3QsIGludCBhZGRyKQogCWt2bV9wYXRjaF9pbnMoaW5zdCwgS1ZNX0lOU1RfQiB8IChhZGRyICYgS1ZNX0lOU1RfQl9NQVNLKSk7CiB9CiAKLXN0YXRpYyB1MzIgKmt2bV9hbGxvYyhpbnQgbGVuKQorc3RhdGljIHUzMiAqIF9faW5pdCBrdm1fYWxsb2MoaW50IGxlbikKIHsKIAl1MzIgKnA7CiAKLQlpZiAoKGt2bV90bXBfaW5kZXggKyBsZW4pID4gQVJSQVlfU0laRShrdm1fdG1wKSkgeworCWlmICgoa3ZtX3RtcF9pbmRleCArIGxlbikgPiAoa3ZtX3RtcF9lbmQgLSBrdm1fdG1wKSkgewogCQlwcmludGsoS0VSTl9FUlIgIktWTTogTm8gbW9yZSBzcGFjZSAoJWQgKyAlZClcbiIsCiAJCQkJa3ZtX3RtcF9pbmRleCwgbGVuKTsKIAkJa3ZtX3BhdGNoaW5nX3dvcmtlZCA9IGZhbHNlOwpAQCAtMTUxLDcgKzE1Miw3IEBAIGV4dGVybiB1MzIga3ZtX2VtdWxhdGVfbXRtc3JkX29yaWdfaW5zX29mZnM7CiBleHRlcm4gdTMyIGt2bV9lbXVsYXRlX210bXNyZF9sZW47CiBleHRlcm4gdTMyIGt2bV9lbXVsYXRlX210bXNyZFtdOwogCi1zdGF0aWMgdm9pZCBrdm1fcGF0Y2hfaW5zX210bXNyZCh1MzIgKmluc3QsIHUzMiBydCkKK3N0YXRpYyB2b2lkIF9faW5pdCBrdm1fcGF0Y2hfaW5zX210bXNyZCh1MzIgKmluc3QsIHUzMiBydCkKIHsKIAl1MzIgKnA7CiAJaW50IGRpc3RhbmNlX3N0YXJ0OwpAQCAtMjA0LDcgKzIwNSw3IEBAIGV4dGVybiB1MzIga3ZtX2VtdWxhdGVfbXRtc3Jfb3JpZ19pbnNfb2ZmczsKIGV4dGVybiB1MzIga3ZtX2VtdWxhdGVfbXRtc3JfbGVuOwogZXh0ZXJuIHUzMiBrdm1fZW11bGF0ZV9tdG1zcltdOwogCi1zdGF0aWMgdm9pZCBrdm1fcGF0Y2hfaW5zX210bXNyKHUzMiAqaW5zdCwgdTMyIHJ0KQorc3RhdGljIHZvaWQgX19pbml0IGt2bV9wYXRjaF9pbnNfbXRtc3IodTMyICppbnN0LCB1MzIgcnQpCiB7CiAJdTMyICpwOwogCWludCBkaXN0YW5jZV9zdGFydDsKQEAgLTI2NSw3ICsyNjYsNyBAQCBleHRlcm4gdTMyIGt2bV9lbXVsYXRlX3dydGVlX29yaWdfaW5zX29mZnM7CiBleHRlcm4gdTMyIGt2bV9lbXVsYXRlX3dydGVlX2xlbjsKIGV4dGVybiB1MzIga3ZtX2VtdWxhdGVfd3J0ZWVbXTsKIAotc3RhdGljIHZvaWQga3ZtX3BhdGNoX2luc193cnRlZSh1MzIgKmluc3QsIHUzMiBydCwgaW50IGltbV9vbmUpCitzdGF0aWMgdm9pZCBfX2luaXQga3ZtX3BhdGNoX2luc193cnRlZSh1MzIgKmluc3QsIHUzMiBydCwgaW50IGltbV9vbmUpCiB7CiAJdTMyICpwOwogCWludCBkaXN0YW5jZV9zdGFydDsKQEAgLTMyMiw3ICszMjMsNyBAQCBleHRlcm4gdTMyIGt2bV9lbXVsYXRlX3dydGVlaV8wX2JyYW5jaF9vZmZzOwogZXh0ZXJuIHUzMiBrdm1fZW11bGF0ZV93cnRlZWlfMF9sZW47CiBleHRlcm4gdTMyIGt2bV9lbXVsYXRlX3dydGVlaV8wW107CiAKLXN0YXRpYyB2b2lkIGt2bV9wYXRjaF9pbnNfd3J0ZWVpXzAodTMyICppbnN0KQorc3RhdGljIHZvaWQgX19pbml0IGt2bV9wYXRjaF9pbnNfd3J0ZWVpXzAodTMyICppbnN0KQogewogCXUzMiAqcDsKIAlpbnQgZGlzdGFuY2Vfc3RhcnQ7CkBAIC0zNjMsNyArMzY0LDcgQEAgZXh0ZXJuIHUzMiBrdm1fZW11bGF0ZV9tdHNyaW5fb3JpZ19pbnNfb2ZmczsKIGV4dGVybiB1MzIga3ZtX2VtdWxhdGVfbXRzcmluX2xlbjsKIGV4dGVybiB1MzIga3ZtX2VtdWxhdGVfbXRzcmluW107CiAKLXN0YXRpYyB2b2lkIGt2bV9wYXRjaF9pbnNfbXRzcmluKHUzMiAqaW5zdCwgdTMyIHJ0LCB1MzIgcmIpCitzdGF0aWMgdm9pZCBfX2luaXQga3ZtX3BhdGNoX2luc19tdHNyaW4odTMyICppbnN0LCB1MzIgcnQsIHUzMiByYikKIHsKIAl1MzIgKnA7CiAJaW50IGRpc3RhbmNlX3N0YXJ0OwpAQCAtMzk5LDcgKzQwMCw3IEBAIHN0YXRpYyB2b2lkIGt2bV9wYXRjaF9pbnNfbXRzcmluKHUzMiAqaW5zdCwgdTMyIHJ0LCB1MzIgcmIpCiAKICNlbmRpZgogCi1zdGF0aWMgdm9pZCBrdm1fbWFwX21hZ2ljX3BhZ2Uodm9pZCAqZGF0YSkKK3N0YXRpYyB2b2lkIF9faW5pdCBrdm1fbWFwX21hZ2ljX3BhZ2Uodm9pZCAqZGF0YSkKIHsKIAl1MzIgKmZlYXR1cmVzID0gZGF0YTsKIApAQCAtNDE0LDcgKzQxNSw3IEBAIHN0YXRpYyB2b2lkIGt2bV9tYXBfbWFnaWNfcGFnZSh2b2lkICpkYXRhKQogCSpmZWF0dXJlcyA9IG91dFswXTsKIH0KIAotc3RhdGljIHZvaWQga3ZtX2NoZWNrX2lucyh1MzIgKmluc3QsIHUzMiBmZWF0dXJlcykKK3N0YXRpYyB2b2lkIF9faW5pdCBrdm1fY2hlY2tfaW5zKHUzMiAqaW5zdCwgdTMyIGZlYXR1cmVzKQogewogCXUzMiBfaW5zdCA9ICppbnN0OwogCXUzMiBpbnN0X25vX3J0ID0gX2luc3QgJiB+S1ZNX01BU0tfUlQ7CkBAIC02NTgsNyArNjU5LDcgQEAgc3RhdGljIHZvaWQga3ZtX2NoZWNrX2lucyh1MzIgKmluc3QsIHUzMiBmZWF0dXJlcykKIGV4dGVybiB1MzIga3ZtX3RlbXBsYXRlX3N0YXJ0W107CiBleHRlcm4gdTMyIGt2bV90ZW1wbGF0ZV9lbmRbXTsKIAotc3RhdGljIHZvaWQga3ZtX3VzZV9tYWdpY19wYWdlKHZvaWQpCitzdGF0aWMgdm9pZCBfX2luaXQga3ZtX3VzZV9tYWdpY19wYWdlKHZvaWQpCiB7CiAJdTMyICpwOwogCXUzMiAqc3RhcnQsICplbmQ7CkBAIC02OTksMjUgKzcwMCwxMyBAQCBzdGF0aWMgdm9pZCBrdm1fdXNlX21hZ2ljX3BhZ2Uodm9pZCkKIAkJCSBrdm1fcGF0Y2hpbmdfd29ya2VkID8gIndvcmtlZCIgOiAiZmFpbGVkIik7CiB9CiAKLXN0YXRpYyBfX2luaXQgdm9pZCBrdm1fZnJlZV90bXAodm9pZCkKLXsKLQkvKgotCSAqIEluZm9ybSBrbWVtbGVhayBhYm91dCB0aGUgaG9sZSBpbiB0aGUgLmJzcyBzZWN0aW9uIHNpbmNlIHRoZQotCSAqIGNvcnJlc3BvbmRpbmcgcGFnZXMgd2lsbCBiZSB1bm1hcHBlZCB3aXRoIERFQlVHX1BBR0VBTExPQz15LgotCSAqLwotCWttZW1sZWFrX2ZyZWVfcGFydCgma3ZtX3RtcFtrdm1fdG1wX2luZGV4XSwKLQkJCSAgIEFSUkFZX1NJWkUoa3ZtX3RtcCkgLSBrdm1fdG1wX2luZGV4KTsKLQlmcmVlX3Jlc2VydmVkX2FyZWEoJmt2bV90bXBba3ZtX3RtcF9pbmRleF0sCi0JCQkgICAma3ZtX3RtcFtBUlJBWV9TSVpFKGt2bV90bXApXSwgLTEsIE5VTEwpOwotfQotCiBzdGF0aWMgaW50IF9faW5pdCBrdm1fZ3Vlc3RfaW5pdCh2b2lkKQogewogCWlmICgha3ZtX3BhcmFfYXZhaWxhYmxlKCkpCi0JCWdvdG8gZnJlZV90bXA7CisJCXJldHVybiAwOwogCiAJaWYgKCFlcGFwcl9wYXJhdmlydF9lbmFibGVkKQotCQlnb3RvIGZyZWVfdG1wOworCQlyZXR1cm4gMDsKIAogCWlmIChrdm1fcGFyYV9oYXNfZmVhdHVyZShLVk1fRkVBVFVSRV9NQUdJQ19QQUdFKSkKIAkJa3ZtX3VzZV9tYWdpY19wYWdlKCk7CkBAIC03MjcsOSArNzE2LDYgQEAgc3RhdGljIGludCBfX2luaXQga3ZtX2d1ZXN0X2luaXQodm9pZCkKIAlwb3dlcnNhdmVfbmFwID0gMTsKICNlbmRpZgogCi1mcmVlX3RtcDoKLQlrdm1fZnJlZV90bXAoKTsKLQogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2t2bV9lbXVsLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2t2bV9lbXVsLlMKaW5kZXggZWIyNTY4Zi4uN2FmNmY4YiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9rdm1fZW11bC5TCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwva3ZtX2VtdWwuUwpAQCAtMTkyLDYgKzE5Miw4IEBACiBrdm1fZW11bGF0ZV9tdG1zcl9sZW46CiAJLmxvbmcgKGt2bV9lbXVsYXRlX210bXNyX2VuZCAtIGt2bV9lbXVsYXRlX210bXNyKSAvIDQKIAorI2lmZGVmIENPTkZJR19CT09LRQorCiAvKiBhbHNvIHVzZWQgZm9yIHdydGVlaSAxICovCiAuZ2xvYmFsIGt2bV9lbXVsYXRlX3dydGVlCiBrdm1fZW11bGF0ZV93cnRlZToKQEAgLTI4NSw2ICsyODcsMTAgQEAKIGt2bV9lbXVsYXRlX3dydGVlaV8wX2xlbjoKIAkubG9uZyAoa3ZtX2VtdWxhdGVfd3J0ZWVpXzBfZW5kIC0ga3ZtX2VtdWxhdGVfd3J0ZWVpXzApIC8gNAogCisjZW5kaWYgLyogQ09ORklHX0JPT0tFICovCisKKyNpZmRlZiBDT05GSUdfUFBDX0JPT0szU18zMgorCiAuZ2xvYmFsIGt2bV9lbXVsYXRlX210c3Jpbgoga3ZtX2VtdWxhdGVfbXRzcmluOgogCkBAIC0zMzQsNSArMzQwLDE1IEBACiBrdm1fZW11bGF0ZV9tdHNyaW5fbGVuOgogCS5sb25nIChrdm1fZW11bGF0ZV9tdHNyaW5fZW5kIC0ga3ZtX2VtdWxhdGVfbXRzcmluKSAvIDQKIAorI2VuZGlmIC8qIENPTkZJR19QUENfQk9PSzNTXzMyICovCisKKwkuYmFsaWduIDQKKwkuZ2xvYmFsIGt2bV90bXAKK2t2bV90bXA6CisJLnNwYWNlCSg2NCAqIDEwMjQpCisKKy5nbG9iYWwga3ZtX3RtcF9lbmQKK2t2bV90bXBfZW5kOgorCiAuZ2xvYmFsIGt2bV90ZW1wbGF0ZV9lbmQKIGt2bV90ZW1wbGF0ZV9lbmQ6CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL21hY2hpbmVfa2V4ZWNfNjQuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvbWFjaGluZV9rZXhlY182NC5jCmluZGV4IDE4NDgxYjAuLjA0YTdjYmEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvbWFjaGluZV9rZXhlY182NC5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvbWFjaGluZV9rZXhlY182NC5jCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSA8YXNtL3NtcC5oPgogI2luY2x1ZGUgPGFzbS9od19icmVha3BvaW50Lmg+CiAjaW5jbHVkZSA8YXNtL2FzbS1wcm90b3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL3N2bS5oPgorI2luY2x1ZGUgPGFzbS91bHRyYXZpc29yLmg+CiAKIGludCBkZWZhdWx0X21hY2hpbmVfa2V4ZWNfcHJlcGFyZShzdHJ1Y3Qga2ltYWdlICppbWFnZSkKIHsKQEAgLTMyNyw2ICszMjksMTMgQEAgdm9pZCBkZWZhdWx0X21hY2hpbmVfa2V4ZWMoc3RydWN0IGtpbWFnZSAqaW1hZ2UpCiAjaWZkZWYgQ09ORklHX1BQQ19QU0VSSUVTCiAJa2V4ZWNfcGFjYS5scHBhY2FfcHRyID0gTlVMTDsKICNlbmRpZgorCisJaWYgKGlzX3NlY3VyZV9ndWVzdCgpICYmICEoaW1hZ2UtPnByZXNlcnZlX2NvbnRleHQgfHwKKwkJCQkgICBpbWFnZS0+dHlwZSA9PSBLRVhFQ19UWVBFX0NSQVNIKSkgeworCQl1dl91bnNoYXJlX2FsbF9wYWdlcygpOworCQlwcmludGsoImtleGVjOiBVbnNoYXJlZCBhbGwgc2hhcmVkIHBhZ2VzLlxuIik7CisJfQorCiAJcGFjYV9wdHJzW2tleGVjX3BhY2EucGFjYV9pbmRleF0gPSAma2V4ZWNfcGFjYTsKIAogCXNldHVwX3BhY2EoJmtleGVjX3BhY2EpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9tY2UuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvbWNlLmMKaW5kZXggYjE4ZGY2My4uMzRjMTAwMSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9tY2UuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL21jZS5jCkBAIC0zMywxMyArMzMsMTggQEAgc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBtYWNoaW5lX2NoZWNrX2V2ZW50W01BWF9NQ19FVlRdLAogCQkJCQltY2VfdWVfZXZlbnRfcXVldWUpOwogCiBzdGF0aWMgdm9pZCBtYWNoaW5lX2NoZWNrX3Byb2Nlc3NfcXVldWVkX2V2ZW50KHN0cnVjdCBpcnFfd29yayAqd29yayk7Ci12b2lkIG1hY2hpbmVfY2hlY2tfdWVfZXZlbnQoc3RydWN0IG1hY2hpbmVfY2hlY2tfZXZlbnQgKmV2dCk7CitzdGF0aWMgdm9pZCBtYWNoaW5lX2NoZWNrX3VlX2lycV93b3JrKHN0cnVjdCBpcnFfd29yayAqd29yayk7CitzdGF0aWMgdm9pZCBtYWNoaW5lX2NoZWNrX3VlX2V2ZW50KHN0cnVjdCBtYWNoaW5lX2NoZWNrX2V2ZW50ICpldnQpOwogc3RhdGljIHZvaWQgbWFjaGluZV9wcm9jZXNzX3VlX2V2ZW50KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CiAKIHN0YXRpYyBzdHJ1Y3QgaXJxX3dvcmsgbWNlX2V2ZW50X3Byb2Nlc3Nfd29yayA9IHsKICAgICAgICAgLmZ1bmMgPSBtYWNoaW5lX2NoZWNrX3Byb2Nlc3NfcXVldWVkX2V2ZW50LAogfTsKIAorc3RhdGljIHN0cnVjdCBpcnFfd29yayBtY2VfdWVfZXZlbnRfaXJxX3dvcmsgPSB7CisJLmZ1bmMgPSBtYWNoaW5lX2NoZWNrX3VlX2lycV93b3JrLAorfTsKKwogREVDTEFSRV9XT1JLKG1jZV91ZV9ldmVudF93b3JrLCBtYWNoaW5lX3Byb2Nlc3NfdWVfZXZlbnQpOwogCiBzdGF0aWMgdm9pZCBtY2Vfc2V0X2Vycm9yX2luZm8oc3RydWN0IG1hY2hpbmVfY2hlY2tfZXZlbnQgKm1jZSwKQEAgLTE0NCw2ICsxNDksNyBAQCB2b2lkIHNhdmVfbWNlX2V2ZW50KHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGhhbmRsZWQsCiAJCWlmIChwaHlzX2FkZHIgIT0gVUxPTkdfTUFYKSB7CiAJCQltY2UtPnUudWVfZXJyb3IucGh5c2ljYWxfYWRkcmVzc19wcm92aWRlZCA9IHRydWU7CiAJCQltY2UtPnUudWVfZXJyb3IucGh5c2ljYWxfYWRkcmVzcyA9IHBoeXNfYWRkcjsKKwkJCW1jZS0+dS51ZV9lcnJvci5pZ25vcmVfZXZlbnQgPSBtY2VfZXJyLT5pZ25vcmVfZXZlbnQ7CiAJCQltYWNoaW5lX2NoZWNrX3VlX2V2ZW50KG1jZSk7CiAJCX0KIAl9CkBAIC0xOTksMTEgKzIwNSwxNSBAQCB2b2lkIHJlbGVhc2VfbWNlX2V2ZW50KHZvaWQpCiAJZ2V0X21jZV9ldmVudChOVUxMLCB0cnVlKTsKIH0KIAorc3RhdGljIHZvaWQgbWFjaGluZV9jaGVja191ZV9pcnFfd29yayhzdHJ1Y3QgaXJxX3dvcmsgKndvcmspCit7CisJc2NoZWR1bGVfd29yaygmbWNlX3VlX2V2ZW50X3dvcmspOworfQogCiAvKgogICogUXVldWUgdXAgdGhlIE1DRSBldmVudCB3aGljaCB0aGVuIGNhbiBiZSBoYW5kbGVkIGxhdGVyLgogICovCi12b2lkIG1hY2hpbmVfY2hlY2tfdWVfZXZlbnQoc3RydWN0IG1hY2hpbmVfY2hlY2tfZXZlbnQgKmV2dCkKK3N0YXRpYyB2b2lkIG1hY2hpbmVfY2hlY2tfdWVfZXZlbnQoc3RydWN0IG1hY2hpbmVfY2hlY2tfZXZlbnQgKmV2dCkKIHsKIAlpbnQgaW5kZXg7CiAKQEAgLTIxNiw3ICsyMjYsNyBAQCB2b2lkIG1hY2hpbmVfY2hlY2tfdWVfZXZlbnQoc3RydWN0IG1hY2hpbmVfY2hlY2tfZXZlbnQgKmV2dCkKIAltZW1jcHkodGhpc19jcHVfcHRyKCZtY2VfdWVfZXZlbnRfcXVldWVbaW5kZXhdKSwgZXZ0LCBzaXplb2YoKmV2dCkpOwogCiAJLyogUXVldWUgd29yayB0byBwcm9jZXNzIHRoaXMgZXZlbnQgbGF0ZXIuICovCi0Jc2NoZWR1bGVfd29yaygmbWNlX3VlX2V2ZW50X3dvcmspOworCWlycV93b3JrX3F1ZXVlKCZtY2VfdWVfZXZlbnRfaXJxX3dvcmspOwogfQogCiAvKgpAQCAtMjU3LDggKzI2NywxNyBAQCBzdGF0aWMgdm9pZCBtYWNoaW5lX3Byb2Nlc3NfdWVfZXZlbnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQkvKgogCQkgKiBUaGlzIHNob3VsZCBwcm9iYWJseSBxdWV1ZWQgZWxzZXdoZXJlLCBidXQKIAkJICogb2ghIHdlbGwKKwkJICoKKwkJICogRG9uJ3QgcmVwb3J0IHRoaXMgbWFjaGluZSBjaGVjayBiZWNhdXNlIHRoZSBjYWxsZXIgaGFzIGEKKwkJICogYXNrZWQgdXMgdG8gaWdub3JlIHRoZSBldmVudCwgaXQgaGFzIGEgZml4dXAgaGFuZGxlciB3aGljaAorCQkgKiB3aWxsIGRvIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBoYW5kbGluZyBhbmQgcmVwb3J0aW5nLgogCQkgKi8KIAkJaWYgKGV2dC0+ZXJyb3JfdHlwZSA9PSBNQ0VfRVJST1JfVFlQRV9VRSkgeworCQkJaWYgKGV2dC0+dS51ZV9lcnJvci5pZ25vcmVfZXZlbnQpIHsKKwkJCQlfX3RoaXNfY3B1X2RlYyhtY2VfdWVfY291bnQpOworCQkJCWNvbnRpbnVlOworCQkJfQorCiAJCQlpZiAoZXZ0LT51LnVlX2Vycm9yLnBoeXNpY2FsX2FkZHJlc3NfcHJvdmlkZWQpIHsKIAkJCQl1bnNpZ25lZCBsb25nIHBmbjsKIApAQCAtMjkyLDYgKzMxMSwxMiBAQCBzdGF0aWMgdm9pZCBtYWNoaW5lX2NoZWNrX3Byb2Nlc3NfcXVldWVkX2V2ZW50KHN0cnVjdCBpcnFfd29yayAqd29yaykKIAl3aGlsZSAoX190aGlzX2NwdV9yZWFkKG1jZV9xdWV1ZV9jb3VudCkgPiAwKSB7CiAJCWluZGV4ID0gX190aGlzX2NwdV9yZWFkKG1jZV9xdWV1ZV9jb3VudCkgLSAxOwogCQlldnQgPSB0aGlzX2NwdV9wdHIoJm1jZV9ldmVudF9xdWV1ZVtpbmRleF0pOworCisJCWlmIChldnQtPmVycm9yX3R5cGUgPT0gTUNFX0VSUk9SX1RZUEVfVUUgJiYKKwkJICAgIGV2dC0+dS51ZV9lcnJvci5pZ25vcmVfZXZlbnQpIHsKKwkJCV9fdGhpc19jcHVfZGVjKG1jZV9xdWV1ZV9jb3VudCk7CisJCQljb250aW51ZTsKKwkJfQogCQltYWNoaW5lX2NoZWNrX3ByaW50X2V2ZW50X2luZm8oZXZ0LCBmYWxzZSwgZmFsc2UpOwogCQlfX3RoaXNfY3B1X2RlYyhtY2VfcXVldWVfY291bnQpOwogCX0KQEAgLTMwMCw3ICszMjUsNyBAQCBzdGF0aWMgdm9pZCBtYWNoaW5lX2NoZWNrX3Byb2Nlc3NfcXVldWVkX2V2ZW50KHN0cnVjdCBpcnFfd29yayAqd29yaykKIHZvaWQgbWFjaGluZV9jaGVja19wcmludF9ldmVudF9pbmZvKHN0cnVjdCBtYWNoaW5lX2NoZWNrX2V2ZW50ICpldnQsCiAJCQkJICAgIGJvb2wgdXNlcl9tb2RlLCBib29sIGluX2d1ZXN0KQogewotCWNvbnN0IGNoYXIgKmxldmVsLCAqc2V2c3RyLCAqc3VidHlwZSwgKmVycl90eXBlOworCWNvbnN0IGNoYXIgKmxldmVsLCAqc2V2c3RyLCAqc3VidHlwZSwgKmVycl90eXBlLCAqaW5pdGlhdG9yOwogCXVpbnQ2NF90IGVhID0gMCwgcGEgPSAwOwogCWludCBuID0gMDsKIAljaGFyIGRhcl9zdHJbNTBdOwpAQCAtMzg1LDYgKzQxMCwyOCBAQCB2b2lkIG1hY2hpbmVfY2hlY2tfcHJpbnRfZXZlbnRfaW5mbyhzdHJ1Y3QgbWFjaGluZV9jaGVja19ldmVudCAqZXZ0LAogCQlicmVhazsKIAl9CiAKKwlzd2l0Y2goZXZ0LT5pbml0aWF0b3IpIHsKKwljYXNlIE1DRV9JTklUSUFUT1JfQ1BVOgorCQlpbml0aWF0b3IgPSAiQ1BVIjsKKwkJYnJlYWs7CisJY2FzZSBNQ0VfSU5JVElBVE9SX1BDSToKKwkJaW5pdGlhdG9yID0gIlBDSSI7CisJCWJyZWFrOworCWNhc2UgTUNFX0lOSVRJQVRPUl9JU0E6CisJCWluaXRpYXRvciA9ICJJU0EiOworCQlicmVhazsKKwljYXNlIE1DRV9JTklUSUFUT1JfTUVNT1JZOgorCQlpbml0aWF0b3IgPSAiTWVtb3J5IjsKKwkJYnJlYWs7CisJY2FzZSBNQ0VfSU5JVElBVE9SX1BPV0VSTUdNOgorCQlpbml0aWF0b3IgPSAiUG93ZXIgTWFuYWdlbWVudCI7CisJCWJyZWFrOworCWNhc2UgTUNFX0lOSVRJQVRPUl9VTktOT1dOOgorCWRlZmF1bHQ6CisJCWluaXRpYXRvciA9ICJVbmtub3duIjsKKwkJYnJlYWs7CisJfQorCiAJc3dpdGNoIChldnQtPmVycm9yX3R5cGUpIHsKIAljYXNlIE1DRV9FUlJPUl9UWVBFX1VFOgogCQllcnJfdHlwZSA9ICJVRSI7CkBAIC00NTEsNiArNDk4LDE0IEBAIHZvaWQgbWFjaGluZV9jaGVja19wcmludF9ldmVudF9pbmZvKHN0cnVjdCBtYWNoaW5lX2NoZWNrX2V2ZW50ICpldnQsCiAJCWlmIChldnQtPnUubGlua19lcnJvci5lZmZlY3RpdmVfYWRkcmVzc19wcm92aWRlZCkKIAkJCWVhID0gZXZ0LT51LmxpbmtfZXJyb3IuZWZmZWN0aXZlX2FkZHJlc3M7CiAJCWJyZWFrOworCWNhc2UgTUNFX0VSUk9SX1RZUEVfRENBQ0hFOgorCQllcnJfdHlwZSA9ICJELUNhY2hlIjsKKwkJc3VidHlwZSA9ICJVbmtub3duIjsKKwkJYnJlYWs7CisJY2FzZSBNQ0VfRVJST1JfVFlQRV9JQ0FDSEU6CisJCWVycl90eXBlID0gIkktQ2FjaGUiOworCQlzdWJ0eXBlID0gIlVua25vd24iOworCQlicmVhazsKIAlkZWZhdWx0OgogCWNhc2UgTUNFX0VSUk9SX1RZUEVfVU5LTk9XTjoKIAkJZXJyX3R5cGUgPSAiVW5rbm93biI7CkBAIC00ODMsOSArNTM4LDE3IEBAIHZvaWQgbWFjaGluZV9jaGVja19wcmludF9ldmVudF9pbmZvKHN0cnVjdCBtYWNoaW5lX2NoZWNrX2V2ZW50ICpldnQsCiAJCQlsZXZlbCwgZXZ0LT5jcHUsIGV2dC0+c3JyMCwgKHZvaWQgKilldnQtPnNycjAsIHBhX3N0cik7CiAJfQogCisJcHJpbnRrKCIlc01DRTogQ1BVJWQ6IEluaXRpYXRvciAlc1xuIiwgbGV2ZWwsIGV2dC0+Y3B1LCBpbml0aWF0b3IpOworCiAJc3VidHlwZSA9IGV2dC0+ZXJyb3JfY2xhc3MgPCBBUlJBWV9TSVpFKG1jX2Vycm9yX2NsYXNzKSA/CiAJCW1jX2Vycm9yX2NsYXNzW2V2dC0+ZXJyb3JfY2xhc3NdIDogIlVua25vd24iOwogCXByaW50aygiJXNNQ0U6IENQVSVkOiAlc1xuIiwgbGV2ZWwsIGV2dC0+Y3B1LCBzdWJ0eXBlKTsKKworI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0CisJLyogRGlzcGxheSBmYXVsdHkgc2xiIGNvbnRlbnRzIGZvciBTTEIgZXJyb3JzLiAqLworCWlmIChldnQtPmVycm9yX3R5cGUgPT0gTUNFX0VSUk9SX1RZUEVfU0xCKQorCQlzbGJfZHVtcF9jb250ZW50cyhsb2NhbF9wYWNhLT5tY2VfZmF1bHR5X3NsYnMpOworI2VuZGlmCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChtYWNoaW5lX2NoZWNrX3ByaW50X2V2ZW50X2luZm8pOwogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL21jZV9wb3dlci5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9tY2VfcG93ZXIuYwppbmRleCBhODE0ZDJkLi4xY2JmN2YxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL21jZV9wb3dlci5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvbWNlX3Bvd2VyLmMKQEAgLTExLDYgKzExLDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvZXh0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9tbXUuaD4KICNpbmNsdWRlIDxhc20vbWNlLmg+CiAjaW5jbHVkZSA8YXNtL21hY2hkZXAuaD4KQEAgLTE4LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxhc20vcHRlLXdhbGsuaD4KICNpbmNsdWRlIDxhc20vc3N0ZXAuaD4KICNpbmNsdWRlIDxhc20vZXhjZXB0aW9uLTY0cy5oPgorI2luY2x1ZGUgPGFzbS9leHRhYmxlLmg+CiAKIC8qCiAgKiBDb252ZXJ0IGFuIGFkZHJlc3MgcmVsYXRlZCB0byBhbiBtbSB0byBhIFBGTi4gTk9URTogd2UgYXJlIGluIHJlYWwKQEAgLTI2LDcgKzI4LDggQEAKIHVuc2lnbmVkIGxvbmcgYWRkcl90b19wZm4oc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKIAlwdGVfdCAqcHRlcDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCBzaGlmdDsKKwl1bnNpZ25lZCBsb25nIHBmbiwgZmxhZ3M7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW07CiAKIAlpZiAodXNlcl9tb2RlKHJlZ3MpKQpAQCAtMzUsMTQgKzM4LDIzIEBAIHVuc2lnbmVkIGxvbmcgYWRkcl90b19wZm4oc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgYWRkcikKIAkJbW0gPSAmaW5pdF9tbTsKIAogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQlpZiAobW0gPT0gY3VycmVudC0+bW0pCi0JCXB0ZXAgPSBmaW5kX2N1cnJlbnRfbW1fcHRlKG1tLT5wZ2QsIGFkZHIsIE5VTEwsIE5VTEwpOwotCWVsc2UKLQkJcHRlcCA9IGZpbmRfaW5pdF9tbV9wdGUoYWRkciwgTlVMTCk7CisJcHRlcCA9IF9fZmluZF9saW51eF9wdGUobW0tPnBnZCwgYWRkciwgTlVMTCwgJnNoaWZ0KTsKKworCWlmICghcHRlcCB8fCBwdGVfc3BlY2lhbCgqcHRlcCkpIHsKKwkJcGZuID0gVUxPTkdfTUFYOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoc2hpZnQgPD0gUEFHRV9TSElGVCkKKwkJcGZuID0gcHRlX3BmbigqcHRlcCk7CisJZWxzZSB7CisJCXVuc2lnbmVkIGxvbmcgcnBubWFzayA9ICgxdWwgPDwgc2hpZnQpIC0gUEFHRV9TSVpFOworCQlwZm4gPSBwdGVfcGZuKF9fcHRlKHB0ZV92YWwoKnB0ZXApIHwgKGFkZHIgJiBycG5tYXNrKSkpOworCX0KKworb3V0OgogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQlpZiAoIXB0ZXAgfHwgcHRlX3NwZWNpYWwoKnB0ZXApKQotCQlyZXR1cm4gVUxPTkdfTUFYOwotCXJldHVybiBwdGVfcGZuKCpwdGVwKTsKKwlyZXR1cm4gcGZuOwogfQogCiAvKiBmbHVzaCBTTEJzIGFuZCByZWxvYWQgKi8KQEAgLTM0NCw3ICszNTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1jZV9kZXJyb3JfdGFibGUgbWNlX3A5X2RlcnJvcl90YWJsZVtdID0gewogICBNQ0VfSU5JVElBVE9SX0NQVSwgICBNQ0VfU0VWX1NFVkVSRSwgdHJ1ZSB9LAogeyAwLCBmYWxzZSwgMCwgMCwgMCwgMCwgMCB9IH07CiAKLXN0YXRpYyBpbnQgbWNlX2ZpbmRfaW5zdHJfZWFfYW5kX3BmbihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdWludDY0X3QgKmFkZHIsCitzdGF0aWMgaW50IG1jZV9maW5kX2luc3RyX2VhX2FuZF9waHlzKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1aW50NjRfdCAqYWRkciwKIAkJCQkJdWludDY0X3QgKnBoeXNfYWRkcikKIHsKIAkvKgpAQCAtMzk3LDYgKzQwOSw4IEBAIHN0YXRpYyBpbnQgbWNlX2hhbmRsZV9pZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAJCS8qIGF0dGVtcHQgdG8gY29ycmVjdCB0aGUgZXJyb3IgKi8KIAkJc3dpdGNoICh0YWJsZVtpXS5lcnJvcl90eXBlKSB7CiAJCWNhc2UgTUNFX0VSUk9SX1RZUEVfU0xCOgorCQkJaWYgKGxvY2FsX3BhY2EtPmluX21jZSA9PSAxKQorCQkJCXNsYl9zYXZlX2NvbnRlbnRzKGxvY2FsX3BhY2EtPm1jZV9mYXVsdHlfc2xicyk7CiAJCQloYW5kbGVkID0gbWNlX2ZsdXNoKE1DRV9GTFVTSF9TTEIpOwogCQkJYnJlYWs7CiAJCWNhc2UgTUNFX0VSUk9SX1RZUEVfRVJBVDoKQEAgLTQ4Miw2ICs0OTYsOCBAQCBzdGF0aWMgaW50IG1jZV9oYW5kbGVfZGVycm9yKHN0cnVjdCBwdF9yZWdzICpyZWdzLAogCQkvKiBhdHRlbXB0IHRvIGNvcnJlY3QgdGhlIGVycm9yICovCiAJCXN3aXRjaCAodGFibGVbaV0uZXJyb3JfdHlwZSkgewogCQljYXNlIE1DRV9FUlJPUl9UWVBFX1NMQjoKKwkJCWlmIChsb2NhbF9wYWNhLT5pbl9tY2UgPT0gMSkKKwkJCQlzbGJfc2F2ZV9jb250ZW50cyhsb2NhbF9wYWNhLT5tY2VfZmF1bHR5X3NsYnMpOwogCQkJaWYgKG1jZV9mbHVzaChNQ0VfRkxVU0hfU0xCKSkKIAkJCQloYW5kbGVkID0gMTsKIAkJCWJyZWFrOwpAQCAtNTQxLDcgKzU1Nyw4IEBAIHN0YXRpYyBpbnQgbWNlX2hhbmRsZV9kZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAJCQkgKiBrZXJuZWwvZXhjZXB0aW9uLTY0cy5oCiAJCQkgKi8KIAkJCWlmIChnZXRfcGFjYSgpLT5pbl9tY2UgPCBNQVhfTUNFX0RFUFRIKQotCQkJCW1jZV9maW5kX2luc3RyX2VhX2FuZF9wZm4ocmVncywgYWRkciwgcGh5c19hZGRyKTsKKwkJCQltY2VfZmluZF9pbnN0cl9lYV9hbmRfcGh5cyhyZWdzLCBhZGRyLAorCQkJCQkJCSAgIHBoeXNfYWRkcik7CiAJCX0KIAkJZm91bmQgPSAxOwogCX0KQEAgLTU1OCw5ICs1NzUsMTggQEAgc3RhdGljIGludCBtY2VfaGFuZGxlX2RlcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVncywKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGxvbmcgbWNlX2hhbmRsZV91ZV9lcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3N0YXRpYyBsb25nIG1jZV9oYW5kbGVfdWVfZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCisJCQkJc3RydWN0IG1jZV9lcnJvcl9pbmZvICptY2VfZXJyKQogewogCWxvbmcgaGFuZGxlZCA9IDA7CisJY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZW50cnk7CisKKwllbnRyeSA9IHNlYXJjaF9rZXJuZWxfZXhjZXB0aW9uX3RhYmxlKHJlZ3MtPm5pcCk7CisJaWYgKGVudHJ5KSB7CisJCW1jZV9lcnItPmlnbm9yZV9ldmVudCA9IHRydWU7CisJCXJlZ3MtPm5pcCA9IGV4dGFibGVfZml4dXAoZW50cnkpOworCQlyZXR1cm4gMTsKKwl9CiAKIAkvKgogCSAqIE9uIHNwZWNpZmljIFNDT00gcmVhZCB2aWEgTU1JTyB3ZSBtYXkgZ2V0IGEgbWFjaGluZSBjaGVjawpAQCAtNTkzLDcgKzYxOSw3IEBAIHN0YXRpYyBsb25nIG1jZV9oYW5kbGVfZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAJCQkJJnBoeXNfYWRkcik7CiAKIAlpZiAoIWhhbmRsZWQgJiYgbWNlX2Vyci5lcnJvcl90eXBlID09IE1DRV9FUlJPUl9UWVBFX1VFKQotCQloYW5kbGVkID0gbWNlX2hhbmRsZV91ZV9lcnJvcihyZWdzKTsKKwkJaGFuZGxlZCA9IG1jZV9oYW5kbGVfdWVfZXJyb3IocmVncywgJm1jZV9lcnIpOwogCiAJc2F2ZV9tY2VfZXZlbnQocmVncywgaGFuZGxlZCwgJm1jZV9lcnIsIHJlZ3MtPm5pcCwgYWRkciwgcGh5c19hZGRyKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9taXNjXzMyLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL21pc2NfMzIuUwppbmRleCBmZTRiZDMyLi44MmRmNGIwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL21pc2NfMzIuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL21pc2NfMzIuUwpAQCAtMjkyLDIyICsyOTIsMjAgQEAKIAlpY2NjaQkwLHIzCiAjZW5kaWYKICNlbGlmIGRlZmluZWQoQ09ORklHX0ZTTF9CT09LRSkKLUJFR0lOX0ZUUl9TRUNUSU9OCisjaWZkZWYgQ09ORklHX0UyMDAKIAltZnNwciAgIHIzLFNQUk5fTDFDU1IwCiAJb3JpICAgICByMyxyMyxMMUNTUjBfQ0ZJfEwxQ1NSMF9DTEZDCiAJLyogbXN5bmM7IGlzeW5jIHJlY29tbWVuZGVkIGhlcmUgKi8KIAltdHNwciAgIFNQUk5fTDFDU1IwLHIzCiAJaXN5bmMKIAlibHIKLUVORF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSX1VOSUZJRURfSURfQ0FDSEUpCisjZW5kaWYKIAltZnNwcglyMyxTUFJOX0wxQ1NSMQogCW9yaQlyMyxyMyxMMUNTUjFfSUNGSXxMMUNTUjFfSUNMRlIKIAltdHNwcglTUFJOX0wxQ1NSMSxyMworI2VsaWYgZGVmaW5lZChDT05GSUdfUFBDX0JPT0szU182MDEpCisJYmxyCQkJLyogZm9yIDYwMSwgZG8gbm90aGluZyAqLwogI2Vsc2UKLQltZnNwcglyMyxTUFJOX1BWUgotCXJsd2lubQlyMyxyMywxNiwxNiwzMQotCWNtcHdpCTAscjMsMQotCWJlcWxyCQkJLyogZm9yIDYwMSwgZG8gbm90aGluZyAqLwogCS8qIDYwMy82MDQgcHJvY2Vzc29yIC0gdXNlIGludmFsaWRhdGUtYWxsIGJpdCBpbiBISUQwICovCiAJbWZzcHIJcjMsU1BSTl9ISUQwCiAJb3JpCXIzLHIzLEhJRDBfSUNGSQpAQCAtMzI2LDEwICszMjQsMTAgQEAKICAqIGZsdXNoX2ljYWNoZV9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHN0b3ApCiAgKi8KIF9HTE9CQUwoZmx1c2hfaWNhY2hlX3JhbmdlKQotQkVHSU5fRlRSX1NFQ1RJT04KKyNpZiBkZWZpbmVkKENPTkZJR19QUENfQk9PSzNTXzYwMSkgfHwgZGVmaW5lZChDT05GSUdfRTIwMCkKIAlQVVJHRV9QUkVGRVRDSEVEX0lOUwotCWJscgkJCQkvKiBmb3IgNjAxLCBkbyBub3RoaW5nICovCi1FTkRfRlRSX1NFQ1RJT05fSUZTRVQoQ1BVX0ZUUl9DT0hFUkVOVF9JQ0FDSEUpCisJYmxyCQkJCS8qIGZvciA2MDEgYW5kIGUyMDAsIGRvIG5vdGhpbmcgKi8KKyNlbHNlCiAJcmx3aW5tCXIzLHIzLDAsMCwzMSAtIEwxX0NBQ0hFX1NISUZUCiAJc3ViZglyNCxyMyxyNAogCWFkZGkJcjQscjQsTDFfQ0FDSEVfQllURVMgLSAxCkBAIC0zNTUsNiArMzUzLDcgQEAKIAlzeW5jCQkJCS8qIGFkZGl0aW9uYWwgc3luYyBuZWVkZWQgb24gZzQgKi8KIAlpc3luYwogCWJscgorI2VuZGlmCiBfQVNNX05PS1BST0JFX1NZTUJPTChmbHVzaF9pY2FjaGVfcmFuZ2UpCiBFWFBPUlRfU1lNQk9MKGZsdXNoX2ljYWNoZV9yYW5nZSkKIApAQCAtMzYyLDE1ICszNjEsMTUgQEAKICAqIEZsdXNoIGEgcGFydGljdWxhciBwYWdlIGZyb20gdGhlIGRhdGEgY2FjaGUgdG8gUkFNLgogICogTm90ZTogdGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgaW5zdHJ1Y3Rpb24gY2FjaGUgZG9lcyAqbm90KgogICogc25vb3AgZnJvbSB0aGUgZGF0YSBjYWNoZS4KLSAqIFRoaXMgaXMgYSBuby1vcCBvbiB0aGUgNjAxIHdoaWNoIGhhcyBhIHVuaWZpZWQgY2FjaGUuCisgKiBUaGlzIGlzIGEgbm8tb3Agb24gdGhlIDYwMSBhbmQgZTIwMCB3aGljaCBoYXZlIGEgdW5pZmllZCBjYWNoZS4KICAqCiAgKgl2b2lkIF9fZmx1c2hfZGNhY2hlX2ljYWNoZSh2b2lkICpwYWdlKQogICovCiBfR0xPQkFMKF9fZmx1c2hfZGNhY2hlX2ljYWNoZSkKLUJFR0lOX0ZUUl9TRUNUSU9OCisjaWYgZGVmaW5lZChDT05GSUdfUFBDX0JPT0szU182MDEpIHx8IGRlZmluZWQoQ09ORklHX0UyMDApCiAJUFVSR0VfUFJFRkVUQ0hFRF9JTlMKIAlibHIKLUVORF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSX0NPSEVSRU5UX0lDQUNIRSkKKyNlbHNlCiAJcmx3aW5tCXIzLHIzLDAsMCwzMS1QQUdFX1NISUZUCQkvKiBHZXQgcGFnZSBiYXNlIGFkZHJlc3MgKi8KIAlsaQlyNCxQQUdFX1NJWkUvTDFfQ0FDSEVfQllURVMJLyogTnVtYmVyIG9mIGxpbmVzIGluIGEgcGFnZSAqLwogCW10Y3RyCXI0CkBAIC0zOTgsNiArMzk3LDcgQEAKIAlzeW5jCiAJaXN5bmMKIAlibHIKKyNlbmRpZgogCiAjaWZuZGVmIENPTkZJR19CT09LRQogLyoKQEAgLTQwOSwxMCArNDA5LDEwIEBACiAgKgl2b2lkIF9fZmx1c2hfZGNhY2hlX2ljYWNoZV9waHlzKHVuc2lnbmVkIGxvbmcgcGh5c2FkZHIpCiAgKi8KIF9HTE9CQUwoX19mbHVzaF9kY2FjaGVfaWNhY2hlX3BoeXMpCi1CRUdJTl9GVFJfU0VDVElPTgorI2lmIGRlZmluZWQoQ09ORklHX1BQQ19CT09LM1NfNjAxKSB8fCBkZWZpbmVkKENPTkZJR19FMjAwKQogCVBVUkdFX1BSRUZFVENIRURfSU5TCi0JYmxyCQkJCQkvKiBmb3IgNjAxLCBkbyBub3RoaW5nICovCi1FTkRfRlRSX1NFQ1RJT05fSUZTRVQoQ1BVX0ZUUl9DT0hFUkVOVF9JQ0FDSEUpCisJYmxyCQkJCQkvKiBmb3IgNjAxIGFuZCBlMjAwLCBkbyBub3RoaW5nICovCisjZWxzZQogCW1mbXNyCXIxMAogCXJsd2lubQlyMCxyMTAsMCwyOCwyNgkJCS8qIGNsZWFyIERSICovCiAJbXRtc3IJcjAKQEAgLTQzMyw2ICs0MzMsNyBAQAogCW10bXNyCXIxMAkJCQkvKiByZXN0b3JlIERSICovCiAJaXN5bmMKIAlibHIKKyNlbmRpZgogI2VuZGlmIC8qIENPTkZJR19CT09LRSAqLwogCiAvKgpAQCAtNDUyLDcgKzQ1MywxMiBAQAogCXN0d3UJcjksMTYocjMpCiAKIF9HTE9CQUwoY29weV9wYWdlKQorCXJsd2lubQlyNSwgcjMsIDAsIEwxX0NBQ0hFX0JZVEVTIC0gMQogCWFkZGkJcjMscjMsLTQKKworMDoJdHduZWkJcjUsIDAJLyogV0FSTiBpZiByMyBpcyBub3QgY2FjaGUgYWxpZ25lZCAqLworCUVNSVRfQlVHX0VOVFJZIDBiLF9fRklMRV9fLF9fTElORV9fLCBCVUdGTEFHX1dBUk5JTkcKKwogCWFkZGkJcjQscjQsLTQKIAogCWxpCXI1LDQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvbm90ZS5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9ub3RlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNkYWQxNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvbm90ZS5TCkBAIC0wLDAgKzEsNDAgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisvKgorICogUG93ZXJQQyBFTEYgbm90ZXMuCisgKgorICogQ29weXJpZ2h0IDIwMTksIElCTSBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlIDxsaW51eC9lbGZub3RlLmg+CisjaW5jbHVkZSA8YXNtL2VsZm5vdGUuaD4KKworLyoKKyAqIFVsdHJhdmlzb3ItY2FwYWJsZSBiaXQgKFBvd2VyTlYgb25seSkuCisgKgorICogQml0IDAgaW5kaWNhdGVzIHRoYXQgdGhlIHBvd2VycGMga2VybmVsIGJpbmFyeSBrbm93cyBob3cgdG8gcnVuIGluIGFuCisgKiB1bHRyYXZpc29yLWVuYWJsZWQgc3lzdGVtLgorICoKKyAqIEluIGFuIHVsdHJhdmlzb3ItZW5hYmxlZCBzeXN0ZW0sIHNvbWUgbWFjaGluZSByZXNvdXJjZXMgYXJlIG5vdyBjb250cm9sbGVkCisgKiBieSB0aGUgdWx0cmF2aXNvci4gSWYgdGhlIGtlcm5lbCBpcyBub3QgdWx0cmF2aXNvci1jYXBhYmxlLCBidXQgaXQgZW5kcyB1cAorICogYmVpbmcgcnVuIG9uIGEgbWFjaGluZSB3aXRoIHVsdHJhdmlzb3IsIHRoZSBrZXJuZWwgd2lsbCBwcm9iYWJseSBjcmFzaAorICogdHJ5aW5nIHRvIGFjY2VzcyB1bHRyYXZpc29yIHJlc291cmNlcy4gRm9yIGluc3RhbmNlLCBpdCBtYXkgY3Jhc2ggaW4gZWFybHkKKyAqIGJvb3QgdHJ5aW5nIHRvIHNldCB0aGUgcGFydGl0aW9uIHRhYmxlIGVudHJ5IDAuCisgKgorICogSW4gYW4gdWx0cmF2aXNvci1lbmFibGVkIHN5c3RlbSwgYSBib290bG9hZGVyIGNvdWxkIHdhcm4gdGhlIHVzZXIgb3IgcHJldmVudAorICogdGhlIGtlcm5lbCBmcm9tIGJlaW5nIHJ1biBpZiB0aGUgUG93ZXJQQyB1bHRyYXZpc29yIGNhcGFiaWxpdHkgZG9lc24ndCBleGlzdAorICogb3IgdGhlIFVsdHJhdmlzb3ItY2FwYWJsZSBiaXQgaXMgbm90IHNldC4KKyAqLworI2lmZGVmIENPTkZJR19QUENfUE9XRVJOVgorI2RlZmluZSBQUENDQVBfVUxUUkFWSVNPUl9CSVQJCSgxIDw8IDApCisjZWxzZQorI2RlZmluZSBQUENDQVBfVUxUUkFWSVNPUl9CSVQJCTAKKyNlbmRpZgorCisvKgorICogQWRkIHRoZSBQb3dlclBDIENhcGFiaWxpdGllcyBpbiB0aGUgYmluYXJ5IEVMRiBub3RlLiBJdCBpcyBhIGJpdG1hcCB0aGF0CisgKiBjYW4gYmUgdXNlZCB0byBhZHZlcnRpc2Uga2VybmVsIGNhcGFiaWxpdGllcyB0byB1c2VybGFuZC4KKyAqLworI2RlZmluZSBQUENfQ0FQQUJJTElUSUVTX0JJVE1BUCAoUFBDQ0FQX1VMVFJBVklTT1JfQklUKQorCitFTEZOT1RFKFBvd2VyUEMsIFBQQ19FTEZOT1RFX0NBUEFCSUxJVElFUywKKwkubG9uZyBQUENfQ0FQQUJJTElUSUVTX0JJVE1BUCkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGFjYS5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMKaW5kZXggZTNhZDhhYS4uOTQ5ZWNlYiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMKQEAgLTE0LDYgKzE0LDggQEAKICNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9rZXhlYy5oPgorI2luY2x1ZGUgPGFzbS9zdm0uaD4KKyNpbmNsdWRlIDxhc20vdWx0cmF2aXNvci5oPgogCiAjaW5jbHVkZSAic2V0dXAuaCIKIApAQCAtNTIsNiArNTQsNDMgQEAgc3RhdGljIHZvaWQgKl9faW5pdCBhbGxvY19wYWNhX2RhdGEodW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduLAogCiAjaWZkZWYgQ09ORklHX1BQQ19QU0VSSUVTCiAKKyNkZWZpbmUgTFBQQUNBX1NJWkUgMHg0MDAKKworc3RhdGljIHZvaWQgKl9faW5pdCBhbGxvY19zaGFyZWRfbHBwYWNhKHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGlnbiwKKwkJCQkJdW5zaWduZWQgbG9uZyBsaW1pdCwgaW50IGNwdSkKK3sKKwlzaXplX3Qgc2hhcmVkX2xwcGFjYV90b3RhbF9zaXplID0gUEFHRV9BTElHTihucl9jcHVfaWRzICogTFBQQUNBX1NJWkUpOworCXN0YXRpYyB1bnNpZ25lZCBsb25nIHNoYXJlZF9scHBhY2Ffc2l6ZTsKKwlzdGF0aWMgdm9pZCAqc2hhcmVkX2xwcGFjYTsKKwl2b2lkICpwdHI7CisKKwlpZiAoIXNoYXJlZF9scHBhY2EpIHsKKwkJbWVtYmxvY2tfc2V0X2JvdHRvbV91cCh0cnVlKTsKKworCQlzaGFyZWRfbHBwYWNhID0KKwkJCW1lbWJsb2NrX2FsbG9jX3RyeV9uaWQoc2hhcmVkX2xwcGFjYV90b3RhbF9zaXplLAorCQkJCQkgICAgICAgUEFHRV9TSVpFLCBNRU1CTE9DS19MT1dfTElNSVQsCisJCQkJCSAgICAgICBsaW1pdCwgTlVNQV9OT19OT0RFKTsKKwkJaWYgKCFzaGFyZWRfbHBwYWNhKQorCQkJcGFuaWMoImNhbm5vdCBhbGxvY2F0ZSBzaGFyZWQgZGF0YSIpOworCisJCW1lbWJsb2NrX3NldF9ib3R0b21fdXAoZmFsc2UpOworCQl1dl9zaGFyZV9wYWdlKFBIWVNfUEZOKF9fcGEoc2hhcmVkX2xwcGFjYSkpLAorCQkJICAgICAgc2hhcmVkX2xwcGFjYV90b3RhbF9zaXplID4+IFBBR0VfU0hJRlQpOworCX0KKworCXB0ciA9IHNoYXJlZF9scHBhY2EgKyBzaGFyZWRfbHBwYWNhX3NpemU7CisJc2hhcmVkX2xwcGFjYV9zaXplICs9IHNpemU7CisKKwkvKgorCSAqIFRoaXMgaXMgdmVyeSBlYXJseSBpbiBib290LCBzbyBubyBoYXJtIGRvbmUgaWYgdGhlIGtlcm5lbCBjcmFzaGVzIGF0CisJICogdGhpcyBwb2ludC4KKwkgKi8KKwlCVUdfT04oc2hhcmVkX2xwcGFjYV9zaXplID49IHNoYXJlZF9scHBhY2FfdG90YWxfc2l6ZSk7CisKKwlyZXR1cm4gcHRyOworfQorCiAvKgogICogU2VlIGFzbS9scHBhY2EuaCBmb3IgbW9yZSBkZXRhaWwuCiAgKgpAQCAtNjUsNyArMTA0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGluaXRfbHBwYWNhKHN0cnVjdCBscHBhY2EgKmxwcGFjYSkKIAogCSpscHBhY2EgPSAoc3RydWN0IGxwcGFjYSkgewogCQkuZGVzYyA9IGNwdV90b19iZTMyKDB4ZDM5N2Q3ODEpLAkvKiAiTHBQYSIgKi8KLQkJLnNpemUgPSBjcHVfdG9fYmUxNigweDQwMCksCisJCS5zaXplID0gY3B1X3RvX2JlMTYoTFBQQUNBX1NJWkUpLAogCQkuZnByZWdzX2luX3VzZSA9IDEsCiAJCS5zbGJfY291bnQgPSBjcHVfdG9fYmUxNig2NCksCiAJCS52bXhyZWdzX2luX3VzZSA9IDAsCkBAIC03NSwxOSArMTE0LDIyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X2xwcGFjYShzdHJ1Y3QgbHBwYWNhICpscHBhY2EpCiBzdGF0aWMgc3RydWN0IGxwcGFjYSAqIF9faW5pdCBuZXdfbHBwYWNhKGludCBjcHUsIHVuc2lnbmVkIGxvbmcgbGltaXQpCiB7CiAJc3RydWN0IGxwcGFjYSAqbHA7Ci0Jc2l6ZV90IHNpemUgPSAweDQwMDsKIAotCUJVSUxEX0JVR19PTihzaXplIDwgc2l6ZW9mKHN0cnVjdCBscHBhY2EpKTsKKwlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBscHBhY2EpID4gTFBQQUNBX1NJWkUpOwogCiAJaWYgKGVhcmx5X2NwdV9oYXNfZmVhdHVyZShDUFVfRlRSX0hWTU9ERSkpCiAJCXJldHVybiBOVUxMOwogCi0JbHAgPSBhbGxvY19wYWNhX2RhdGEoc2l6ZSwgMHg0MDAsIGxpbWl0LCBjcHUpOworCWlmIChpc19zZWN1cmVfZ3Vlc3QoKSkKKwkJbHAgPSBhbGxvY19zaGFyZWRfbHBwYWNhKExQUEFDQV9TSVpFLCAweDQwMCwgbGltaXQsIGNwdSk7CisJZWxzZQorCQlscCA9IGFsbG9jX3BhY2FfZGF0YShMUFBBQ0FfU0laRSwgMHg0MDAsIGxpbWl0LCBjcHUpOworCiAJaW5pdF9scHBhY2EobHApOwogCiAJcmV0dXJuIGxwOwogfQotI2VuZGlmIC8qIENPTkZJR19QUENfQk9PSzNTICovCisjZW5kaWYgLyogQ09ORklHX1BQQ19QU0VSSUVTICovCiAKICNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCmluZGV4IGY2MjdlMTUuLjFjNDQ4Y2YgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCkBAIC0xMzc5LDEwICsxMzc5LDYgQEAgdm9pZCBfX2luaXQgcGNpYmlvc19yZXNvdXJjZV9zdXJ2ZXkodm9pZCkKIAkJcHJfZGVidWcoIlBDSTogQXNzaWduaW5nIHVuYXNzaWduZWQgcmVzb3VyY2VzLi4uXG4iKTsKIAkJcGNpX2Fzc2lnbl91bmFzc2lnbmVkX3Jlc291cmNlcygpOwogCX0KLQotCS8qIENhbGwgbWFjaGluZSBkZXBlbmRlbnQgZml4dXAgKi8KLQlpZiAocHBjX21kLnBjaWJpb3NfZml4dXApCi0JCXBwY19tZC5wY2liaW9zX2ZpeHVwKCk7CiB9CiAKIC8qIFRoaXMgaXMgdXNlZCBieSB0aGUgUENJIGhvdHBsdWcgZHJpdmVyIHRvIGFsbG9jYXRlIHJlc291cmNlCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1ob3RwbHVnLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1ob3RwbHVnLmMKaW5kZXggMGIwY2Y4MS4uZmM2MmM0YiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktaG90cGx1Zy5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWhvdHBsdWcuYwpAQCAtNTUsMTEgKzU1LDE4IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHBjaV9maW5kX2J1c19ieV9ub2RlKTsKIHZvaWQgcGNpYmlvc19yZWxlYXNlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2KQogewogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqcGhiID0gcGNpX2J1c190b19ob3N0KGRldi0+YnVzKTsKKwlzdHJ1Y3QgcGNpX2RuICpwZG4gPSBwY2lfZ2V0X3BkbihkZXYpOwogCiAJZWVoX3JlbW92ZV9kZXZpY2UoZGV2KTsKIAogCWlmIChwaGItPmNvbnRyb2xsZXJfb3BzLnJlbGVhc2VfZGV2aWNlKQogCQlwaGItPmNvbnRyb2xsZXJfb3BzLnJlbGVhc2VfZGV2aWNlKGRldik7CisKKwkvKiBmcmVlKClpbmcgdGhlIHBjaV9kbiBoYXMgYmVlbiBkZWZlcnJlZCB0byB1cywgZG8gaXQgbm93ICovCisJaWYgKHBkbiAmJiAocGRuLT5mbGFncyAmIFBDSV9ETl9GTEFHX0RFQUQpKSB7CisJCXBjaV9kYmcoZGV2LCAiZnJlZWluZyBkZWFkIHBkblxuIik7CisJCWtmcmVlKHBkbik7CisJfQogfQogCiAvKioKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpXzMyLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BjaV8zMi5jCmluZGV4IDUwOTQyYTEuLmI0OWUxMDYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpXzMyLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2lfMzIuYwpAQCAtMjYzLDYgKzI2MywxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBwY2liaW9zX2luaXQodm9pZCkKIAkvKiBDYWxsIGNvbW1vbiBjb2RlIHRvIGhhbmRsZSByZXNvdXJjZSBhbGxvY2F0aW9uICovCiAJcGNpYmlvc19yZXNvdXJjZV9zdXJ2ZXkoKTsKIAorCS8qIENhbGwgbWFjaGluZSBkZXBlbmRlbnQgZml4dXAgKi8KKwlpZiAocHBjX21kLnBjaWJpb3NfZml4dXApCisJCXBwY19tZC5wY2liaW9zX2ZpeHVwKCk7CisKIAkvKiBDYWxsIG1hY2hpbmUgZGVwZW5kZW50IHBvc3QtaW5pdCBjb2RlICovCiAJaWYgKHBwY19tZC5wY2liaW9zX2FmdGVyX2luaXQpCiAJCXBwY19tZC5wY2liaW9zX2FmdGVyX2luaXQoKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpXzY0LmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BjaV82NC5jCmluZGV4IGI3MDMwYjEuLmY4M2QxZjYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpXzY0LmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2lfNjQuYwpAQCAtNTQsMTQgKzU0LDIwIEBAIHN0YXRpYyBpbnQgX19pbml0IHBjaWJpb3NfaW5pdCh2b2lkKQogCXBjaV9hZGRfZmxhZ3MoUENJX0VOQUJMRV9QUk9DX0RPTUFJTlMgfCBQQ0lfQ09NUEFUX0RPTUFJTl8wKTsKIAogCS8qIFNjYW4gYWxsIG9mIHRoZSByZWNvcmRlZCBQQ0kgY29udHJvbGxlcnMuICAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShob3NlLCB0bXAsICZob3NlX2xpc3QsIGxpc3Rfbm9kZSkgeworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShob3NlLCB0bXAsICZob3NlX2xpc3QsIGxpc3Rfbm9kZSkKIAkJcGNpYmlvc19zY2FuX3BoYihob3NlKTsKLQkJcGNpX2J1c19hZGRfZGV2aWNlcyhob3NlLT5idXMpOwotCX0KIAogCS8qIENhbGwgY29tbW9uIGNvZGUgdG8gaGFuZGxlIHJlc291cmNlIGFsbG9jYXRpb24gKi8KIAlwY2liaW9zX3Jlc291cmNlX3N1cnZleSgpOwogCisJLyogQWRkIGRldmljZXMuICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGhvc2UsIHRtcCwgJmhvc2VfbGlzdCwgbGlzdF9ub2RlKQorCQlwY2lfYnVzX2FkZF9kZXZpY2VzKGhvc2UtPmJ1cyk7CisKKwkvKiBDYWxsIG1hY2hpbmUgZGVwZW5kZW50IGZpeHVwICovCisJaWYgKHBwY19tZC5wY2liaW9zX2ZpeHVwKQorCQlwcGNfbWQucGNpYmlvc19maXh1cCgpOworCiAJcHJpbnRrKEtFUk5fREVCVUcgIlBDSTogUHJvYmluZyBQQ0kgaGFyZHdhcmUgZG9uZVxuIik7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpX2RuLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BjaV9kbi5jCmluZGV4IGM0YzhjMjMuLjk1MjQwMDkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpX2RuLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2lfZG4uYwpAQCAtMzIzLDYgKzMyMyw3IEBAIHZvaWQgcGNpX3JlbW92ZV9kZXZpY2Vfbm9kZV9pbmZvKHN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4pCiB7CiAJc3RydWN0IHBjaV9kbiAqcGRuID0gZG4gPyBQQ0lfRE4oZG4pIDogTlVMTDsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhcmVudDsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKICNpZmRlZiBDT05GSUdfRUVICiAJc3RydWN0IGVlaF9kZXYgKmVkZXYgPSBwZG5fdG9fZWVoX2RldihwZG4pOwogCkBAIC0zMzYsMTIgKzMzNywyOCBAQCB2b2lkIHBjaV9yZW1vdmVfZGV2aWNlX25vZGVfaW5mbyhzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuKQogCVdBUk5fT04oIWxpc3RfZW1wdHkoJnBkbi0+Y2hpbGRfbGlzdCkpOwogCWxpc3RfZGVsKCZwZG4tPmxpc3QpOwogCisJLyogRHJvcCB0aGUgcGFyZW50IHBjaV9kbidzIHJlZiB0byBvdXIgYmFja2luZyBkdCBub2RlICovCiAJcGFyZW50ID0gb2ZfZ2V0X3BhcmVudChkbik7CiAJaWYgKHBhcmVudCkKIAkJb2Zfbm9kZV9wdXQocGFyZW50KTsKIAotCWRuLT5kYXRhID0gTlVMTDsKLQlrZnJlZShwZG4pOworCS8qCisJICogQXQgdGhpcyBwb2ludCB3ZSAqbWlnaHQqIHN0aWxsIGhhdmUgYSBwY2lfZGV2IHRoYXQgd2FzCisJICogaW5zdGFudGlhdGVkIGZyb20gdGhpcyBwY2lfZG4uIFNvIGRlZmVyIGZyZWUoKWluZyBpdCB1bnRpbAorCSAqIHRoZSBwY2lfZGV2J3MgcmVsZWFzZSBmdW5jdGlvbiBpcyBjYWxsZWQuCisJICovCisJcGRldiA9IHBjaV9nZXRfZG9tYWluX2J1c19hbmRfc2xvdChwZG4tPnBoYi0+Z2xvYmFsX251bWJlciwKKwkJCXBkbi0+YnVzbm8sIHBkbi0+ZGV2Zm4pOworCWlmIChwZGV2KSB7CisJCS8qIE5COiBwZGV2IGhhcyBhIHJlZiB0byBkbiAqLworCQlwY2lfZGJnKHBkZXYsICJtYXJrZWQgcGRuIChmcm9tICVwT0YpIGFzIGRlYWRcbiIsIGRuKTsKKwkJcGRuLT5mbGFncyB8PSBQQ0lfRE5fRkxBR19ERUFEOworCX0gZWxzZSB7CisJCWRuLT5kYXRhID0gTlVMTDsKKwkJa2ZyZWUocGRuKTsKKwl9CisKKwlwY2lfZGV2X3B1dChwZGV2KTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHBjaV9yZW1vdmVfZGV2aWNlX25vZGVfaW5mbyk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpX29mX3NjYW4uYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpX29mX3NjYW4uYwppbmRleCA0MDljNmMxLi5mOTFkN2U5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaV9vZl9zY2FuLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2lfb2Zfc2Nhbi5jCkBAIC0zNCwzMSArMzQsNzUgQEAgc3RhdGljIHUzMiBnZXRfaW50X3Byb3Aoc3RydWN0IGRldmljZV9ub2RlICpucCwgY29uc3QgY2hhciAqbmFtZSwgdTMyIGRlZikKICAqIHBjaV9wYXJzZV9vZl9mbGFncyAtIFBhcnNlIHRoZSBmbGFncyBjZWxsIG9mIGEgZGV2aWNlIHRyZWUgUENJIGFkZHJlc3MKICAqIEBhZGRyMDogdmFsdWUgb2YgMXN0IGNlbGwgb2YgYSBkZXZpY2UgdHJlZSBQQ0kgYWRkcmVzcy4KICAqIEBicmlkZ2U6IFNldCB0aGlzIGZsYWcgaWYgdGhlIGFkZHJlc3MgaXMgZnJvbSBhIGJyaWRnZSAncmFuZ2VzJyBwcm9wZXJ0eQorICoKKyAqIFBDSSBCdXMgQmluZGluZyB0byBJRUVFIFN0ZCAxMjc1LTE5OTQKKyAqCisgKiBCaXQjICAgICAgICAgICAgMzMyMjIyMjIgMjIyMjExMTEgMTExMTExMDAgMDAwMDAwMDAKKyAqICAgICAgICAgICAgICAgICAxMDk4NzY1NCAzMjEwOTg3NiA1NDMyMTA5OCA3NjU0MzIxMAorICogcGh5cy5oaSBjZWxsOiAgIG5wdDAwMHNzIGJiYmJiYmJiIGRkZGRkZmZmIHJycnJycnJyCisgKiBwaHlzLm1pZCBjZWxsOiAgaGhoaGhoaGggaGhoaGhoaGggaGhoaGhoaGggaGhoaGhoaGgKKyAqIHBoeXMubG8gY2VsbDogICBsbGxsbGxsbCBsbGxsbGxsbCBsbGxsbGxsbCBsbGxsbGxsbAorICoKKyAqIHdoZXJlOgorICogbiAgICAgICAgaXMgMCBpZiB0aGUgYWRkcmVzcyBpcyByZWxvY2F0YWJsZSwgMSBvdGhlcndpc2UKKyAqIHAgICAgICAgIGlzIDEgaWYgdGhlIGFkZHJlc3NhYmxlIHJlZ2lvbiBpcyAicHJlZmV0Y2hhYmxlIiwgMCBvdGhlcndpc2UKKyAqIHQgICAgICAgIGlzIDEgaWYgdGhlIGFkZHJlc3MgaXMgYWxpYXNlZCAoZm9yIG5vbi1yZWxvY2F0YWJsZSBJL08pLAorICogICAgICAgICAgYmVsb3cgMSBNQiAoZm9yIE1lbW9yeSksb3IgYmVsb3cgNjQgS0IgKGZvciByZWxvY2F0YWJsZSBJL08pLgorICogc3MgICAgICAgaXMgdGhlIHNwYWNlIGNvZGUsIGRlbm90aW5nIHRoZSBhZGRyZXNzIHNwYWNlOgorICogICAgICAgICAgICAgIDAwIGRlbm90ZXMgQ29uZmlndXJhdGlvbiBTcGFjZQorICogICAgICAgICAgICAgIDAxIGRlbm90ZXMgSS9PIFNwYWNlCisgKiAgICAgICAgICAgICAgMTAgZGVub3RlcyAzMi1iaXQtYWRkcmVzcyBNZW1vcnkgU3BhY2UKKyAqICAgICAgICAgICAgICAxMSBkZW5vdGVzIDY0LWJpdC1hZGRyZXNzIE1lbW9yeSBTcGFjZQorICogYmJiYmJiYmIgaXMgdGhlIDgtYml0IEJ1cyBOdW1iZXIKKyAqIGRkZGRkICAgIGlzIHRoZSA1LWJpdCBEZXZpY2UgTnVtYmVyCisgKiBmZmYgICAgICBpcyB0aGUgMy1iaXQgRnVuY3Rpb24gTnVtYmVyCisgKiBycnJycnJyciBpcyB0aGUgOC1iaXQgUmVnaXN0ZXIgTnVtYmVyCiAgKi8KKyNkZWZpbmUgT0ZfUENJX0FERFIwX1NQQUNFKHNzKQkJKCgoc3MpJjMpPDwyNCkKKyNkZWZpbmUgT0ZfUENJX0FERFIwX1NQQUNFX0NGRwkJT0ZfUENJX0FERFIwX1NQQUNFKDApCisjZGVmaW5lIE9GX1BDSV9BRERSMF9TUEFDRV9JTwkJT0ZfUENJX0FERFIwX1NQQUNFKDEpCisjZGVmaW5lIE9GX1BDSV9BRERSMF9TUEFDRV9NTUlPMzIJT0ZfUENJX0FERFIwX1NQQUNFKDIpCisjZGVmaW5lIE9GX1BDSV9BRERSMF9TUEFDRV9NTUlPNjQJT0ZfUENJX0FERFIwX1NQQUNFKDMpCisjZGVmaW5lIE9GX1BDSV9BRERSMF9TUEFDRV9NQVNLCQlPRl9QQ0lfQUREUjBfU1BBQ0UoMykKKyNkZWZpbmUgT0ZfUENJX0FERFIwX1JFTE9DCQkoMVVMPDwzMSkKKyNkZWZpbmUgT0ZfUENJX0FERFIwX1BSRUZFVENICQkoMVVMPDwzMCkKKyNkZWZpbmUgT0ZfUENJX0FERFIwX0FMSUFTCQkoMVVMPDwyOSkKKyNkZWZpbmUgT0ZfUENJX0FERFIwX0JVUwkJMHgwMEZGMDAwMFVMCisjZGVmaW5lIE9GX1BDSV9BRERSMF9ERVYJCTB4MDAwMEY4MDBVTAorI2RlZmluZSBPRl9QQ0lfQUREUjBfRk4JCQkweDAwMDAwNzAwVUwKKyNkZWZpbmUgT0ZfUENJX0FERFIwX0JBUlJFRwkJMHgwMDAwMDBGRlVMCisKIHVuc2lnbmVkIGludCBwY2lfcGFyc2Vfb2ZfZmxhZ3ModTMyIGFkZHIwLCBpbnQgYnJpZGdlKQogewotCXVuc2lnbmVkIGludCBmbGFncyA9IDA7CisJdW5zaWduZWQgaW50IGZsYWdzID0gMCwgYXMgPSBhZGRyMCAmIE9GX1BDSV9BRERSMF9TUEFDRV9NQVNLOwogCi0JaWYgKGFkZHIwICYgMHgwMjAwMDAwMCkgeworCWlmIChhcyA9PSBPRl9QQ0lfQUREUjBfU1BBQ0VfTU1JTzMyIHx8IGFzID09IE9GX1BDSV9BRERSMF9TUEFDRV9NTUlPNjQpIHsKIAkJZmxhZ3MgPSBJT1JFU09VUkNFX01FTSB8IFBDSV9CQVNFX0FERFJFU1NfU1BBQ0VfTUVNT1JZOwotCQlmbGFncyB8PSAoYWRkcjAgPj4gMjIpICYgUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV82NDsKLQkJaWYgKGZsYWdzICYgUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV82NCkKLQkJCWZsYWdzIHw9IElPUkVTT1VSQ0VfTUVNXzY0OwotCQlmbGFncyB8PSAoYWRkcjAgPj4gMjgpICYgUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV8xTTsKLQkJaWYgKGFkZHIwICYgMHg0MDAwMDAwMCkKLQkJCWZsYWdzIHw9IElPUkVTT1VSQ0VfUFJFRkVUQ0gKLQkJCQkgfCBQQ0lfQkFTRV9BRERSRVNTX01FTV9QUkVGRVRDSDsKKworCQlpZiAoYXMgPT0gT0ZfUENJX0FERFIwX1NQQUNFX01NSU82NCkKKwkJCWZsYWdzIHw9IFBDSV9CQVNFX0FERFJFU1NfTUVNX1RZUEVfNjQgfCBJT1JFU09VUkNFX01FTV82NDsKKworCQlpZiAoYWRkcjAgJiBPRl9QQ0lfQUREUjBfQUxJQVMpCisJCQlmbGFncyB8PSBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBFXzFNOworCisJCWlmIChhZGRyMCAmIE9GX1BDSV9BRERSMF9QUkVGRVRDSCkKKwkJCWZsYWdzIHw9IElPUkVTT1VSQ0VfUFJFRkVUQ0ggfAorCQkJCSBQQ0lfQkFTRV9BRERSRVNTX01FTV9QUkVGRVRDSDsKKwogCQkvKiBOb3RlOiBXZSBkb24ndCBrbm93IHdoZXRoZXIgdGhlIFJPTSBoYXMgYmVlbiBsZWZ0IGVuYWJsZWQKIAkJICogYnkgdGhlIGZpcm13YXJlIG9yIG5vdC4gV2UgbWFyayBpdCBhcyBkaXNhYmxlZCAoaWUsIHdlIGRvCiAJCSAqIG5vdCBzZXQgdGhlIElPUkVTT1VSQ0VfUk9NX0VOQUJMRSBmbGFnKSBmb3Igbm93IHJhdGhlciB0aGFuCiAJCSAqIGRvIGEgY29uZmlnIHNwYWNlIHJlYWQsIGl0IHdpbGwgYmUgZm9yY2UtZW5hYmxlZCBpZiBuZWVkZWQKIAkJICovCi0JCWlmICghYnJpZGdlICYmIChhZGRyMCAmIDB4ZmYpID09IDB4MzApCisJCWlmICghYnJpZGdlICYmIChhZGRyMCAmIE9GX1BDSV9BRERSMF9CQVJSRUcpID09IFBDSV9ST01fQUREUkVTUykKIAkJCWZsYWdzIHw9IElPUkVTT1VSQ0VfUkVBRE9OTFk7Ci0JfSBlbHNlIGlmIChhZGRyMCAmIDB4MDEwMDAwMDApCisKKwl9IGVsc2UgaWYgKGFzID09IE9GX1BDSV9BRERSMF9TUEFDRV9JTykKIAkJZmxhZ3MgPSBJT1JFU09VUkNFX0lPIHwgUENJX0JBU0VfQUREUkVTU19TUEFDRV9JTzsKKwogCWlmIChmbGFncykKIAkJZmxhZ3MgfD0gSU9SRVNPVVJDRV9TSVpFQUxJR047CisKIAlyZXR1cm4gZmxhZ3M7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvY2Vzcy5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggN2E4NGM5Zi4uNjM5Y2VhZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9jZXNzLmMKQEAgLTE1ODcsOCArMTU4Nyw5IEBAIHN0YXRpYyB2b2lkIHNldHVwX2tzcF92c2lkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdW5zaWduZWQgbG9uZyBzcCkKIC8qCiAgKiBDb3B5IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyB0aHJlYWQgc3RhdGUKICAqLwotaW50IGNvcHlfdGhyZWFkKHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MsIHVuc2lnbmVkIGxvbmcgdXNwLAotCQl1bnNpZ25lZCBsb25nIGt0aHJlYWRfYXJnLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCitpbnQgY29weV90aHJlYWRfdGxzKHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MsIHVuc2lnbmVkIGxvbmcgdXNwLAorCQl1bnNpZ25lZCBsb25nIGt0aHJlYWRfYXJnLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsCisJCXVuc2lnbmVkIGxvbmcgdGxzKQogewogCXN0cnVjdCBwdF9yZWdzICpjaGlsZHJlZ3MsICprcmVnczsKIAlleHRlcm4gdm9pZCByZXRfZnJvbV9mb3JrKHZvaWQpOwpAQCAtMTYyOSwxMCArMTYzMCwxMCBAQCBpbnQgY29weV90aHJlYWQodW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncywgdW5zaWduZWQgbG9uZyB1c3AsCiAJCWlmIChjbG9uZV9mbGFncyAmIENMT05FX1NFVFRMUykgewogI2lmZGVmIENPTkZJR19QUEM2NAogCQkJaWYgKCFpc18zMmJpdF90YXNrKCkpCi0JCQkJY2hpbGRyZWdzLT5ncHJbMTNdID0gY2hpbGRyZWdzLT5ncHJbNl07CisJCQkJY2hpbGRyZWdzLT5ncHJbMTNdID0gdGxzOwogCQkJZWxzZQogI2VuZGlmCi0JCQkJY2hpbGRyZWdzLT5ncHJbMl0gPSBjaGlsZHJlZ3MtPmdwcls2XTsKKwkJCQljaGlsZHJlZ3MtPmdwclsyXSA9IHRsczsKIAkJfQogCiAJCWYgPSByZXRfZnJvbV9mb3JrOwpAQCAtMjAzMywxMCArMjAzNCw4IEBAIHZvaWQgc2hvd19zdGFjayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgdW5zaWduZWQgbG9uZyAqc3RhY2spCiAJaW50IGNvdW50ID0gMDsKIAlpbnQgZmlyc3RmcmFtZSA9IDE7CiAjaWZkZWYgQ09ORklHX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUgotCXN0cnVjdCBmdHJhY2VfcmV0X3N0YWNrICpyZXRfc3RhY2s7Ci0JZXh0ZXJuIHZvaWQgcmV0dXJuX3RvX2hhbmRsZXIodm9pZCk7Ci0JdW5zaWduZWQgbG9uZyBydGggPSAodW5zaWduZWQgbG9uZylyZXR1cm5fdG9faGFuZGxlcjsKLQlpbnQgY3Vycl9mcmFtZSA9IDA7CisJdW5zaWduZWQgbG9uZyByZXRfYWRkcjsKKwlpbnQgZnRyYWNlX2lkeCA9IDA7CiAjZW5kaWYKIAogCWlmICh0c2sgPT0gTlVMTCkKQEAgLTIwNjUsMTUgKzIwNjQsMTAgQEAgdm9pZCBzaG93X3N0YWNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1bnNpZ25lZCBsb25nICpzdGFjaykKIAkJaWYgKCFmaXJzdGZyYW1lIHx8IGlwICE9IGxyKSB7CiAJCQlwcmludGsoIlsiUkVHIl0gWyJSRUciXSAlcFMiLCBzcCwgaXAsICh2b2lkICopaXApOwogI2lmZGVmIENPTkZJR19GVU5DVElPTl9HUkFQSF9UUkFDRVIKLQkJCWlmICgoaXAgPT0gcnRoKSAmJiBjdXJyX2ZyYW1lID49IDApIHsKLQkJCQlyZXRfc3RhY2sgPSBmdHJhY2VfZ3JhcGhfZ2V0X3JldF9zdGFjayhjdXJyZW50LAotCQkJCQkJCQkgIGN1cnJfZnJhbWUrKyk7Ci0JCQkJaWYgKHJldF9zdGFjaykKLQkJCQkJcHJfY29udCgiICglcFMpIiwKLQkJCQkJCSh2b2lkICopcmV0X3N0YWNrLT5yZXQpOwotCQkJCWVsc2UKLQkJCQkJY3Vycl9mcmFtZSA9IC0xOwotCQkJfQorCQkJcmV0X2FkZHIgPSBmdHJhY2VfZ3JhcGhfcmV0X2FkZHIoY3VycmVudCwKKwkJCQkJCSZmdHJhY2VfaWR4LCBpcCwgc3RhY2spOworCQkJaWYgKHJldF9hZGRyICE9IGlwKQorCQkJCXByX2NvbnQoIiAoJXBTKSIsICh2b2lkICopcmV0X2FkZHIpOwogI2VuZGlmCiAJCQlpZiAoZmlyc3RmcmFtZSkKIAkJCQlwcl9jb250KCIgKHVucmVsaWFibGUpIik7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3Byb20uYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvbS5jCmluZGV4IDcxNTllNzkuLjY2MjBmMzcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvbS5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvbS5jCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSA8YXNtL2Zpcm13YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2R0X2NwdV9mdHJzLmg+CiAjaW5jbHVkZSA8YXNtL2RybWVtLmg+CisjaW5jbHVkZSA8YXNtL3VsdHJhdmlzb3IuaD4KIAogI2luY2x1ZGUgPG1tL21tdV9kZWNsLmg+CiAKQEAgLTcwMiw5ICs3MDMsMTIgQEAgdm9pZCBfX2luaXQgZWFybHlfaW5pdF9kZXZ0cmVlKHZvaWQgKnBhcmFtcykKICNpZmRlZiBDT05GSUdfUFBDX1BPV0VSTlYKIAkvKiBTb21lIG1hY2hpbmVzIG1pZ2h0IG5lZWQgT1BBTCBpbmZvIGZvciBkZWJ1Z2dpbmcsIGdyYWIgaXQgbm93LiAqLwogCW9mX3NjYW5fZmxhdF9kdChlYXJseV9pbml0X2R0X3NjYW5fb3BhbCwgTlVMTCk7CisKKwkvKiBTY2FuIHRyZWUgZm9yIHVsdHJhdmlzb3IgZmVhdHVyZSAqLworCW9mX3NjYW5fZmxhdF9kdChlYXJseV9pbml0X2R0X3NjYW5fdWx0cmF2aXNvciwgTlVMTCk7CiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19GQV9EVU1QCisjaWYgZGVmaW5lZChDT05GSUdfRkFfRFVNUCkgfHwgZGVmaW5lZChDT05GSUdfUFJFU0VSVkVfRkFfRFVNUCkKIAkvKiBzY2FuIHRyZWUgdG8gc2VlIGlmIGR1bXAgaXMgYWN0aXZlIGR1cmluZyBsYXN0IGJvb3QgKi8KIAlvZl9zY2FuX2ZsYXRfZHQoZWFybHlfaW5pdF9kdF9zY2FuX2Z3X2R1bXAsIE5VTEwpOwogI2VuZGlmCkBAIC03MzEsNyArNzM1LDcgQEAgdm9pZCBfX2luaXQgZWFybHlfaW5pdF9kZXZ0cmVlKHZvaWQgKnBhcmFtcykKIAlpZiAoUEhZU0lDQUxfU1RBUlQgPiBNRU1PUllfU1RBUlQpCiAJCW1lbWJsb2NrX3Jlc2VydmUoTUVNT1JZX1NUQVJULCAweDgwMDApOwogCXJlc2VydmVfa2R1bXBfdHJhbXBvbGluZSgpOwotI2lmZGVmIENPTkZJR19GQV9EVU1QCisjaWYgZGVmaW5lZChDT05GSUdfRkFfRFVNUCkgfHwgZGVmaW5lZChDT05GSUdfUFJFU0VSVkVfRkFfRFVNUCkKIAkvKgogCSAqIElmIHdlIGZhaWwgdG8gcmVzZXJ2ZSBtZW1vcnkgZm9yIGZpcm13YXJlLWFzc2lzdGVkIGR1bXAgdGhlbgogCSAqIGZhbGxiYWNrIHRvIGtleGVjIGJhc2VkIGtkdW1wLgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9tX2luaXQuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvbV9pbml0LmMKaW5kZXggNTE0NzA3ZS4uYTRlNzc2MiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9tX2luaXQuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3Byb21faW5pdC5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CiAjaW5jbHVkZSA8YXNtL21hY2hkZXAuaD4KICNpbmNsdWRlIDxhc20vYXNtLXByb3RvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vdWx0cmF2aXNvci1hcGkuaD4KIAogI2luY2x1ZGUgPGxpbnV4L2xpbnV4X2xvZ28uaD4KIApAQCAtOTQsNyArOTUsNyBAQCBzdGF0aWMgaW50IG9mX3dvcmthcm91bmRzIF9fcHJvbWJzczsKICNkZWZpbmUgUFJPTV9CVUcoKSBkbyB7CQkJCQkJXAogICAgICAgICBwcm9tX3ByaW50Zigia2VybmVsIEJVRyBhdCAlcyBsaW5lIDB4JXghXG4iLAkJXAogCQkgICAgX19GSUxFX18sIF9fTElORV9fKTsJCQlcCi0gICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCIubG9uZyAiIEJVR19JTExFR0FMX0lOU1RSKTsJXAorCV9fYnVpbHRpbl90cmFwKCk7CQkJCQlcCiB9IHdoaWxlICgwKQogCiAjaWZkZWYgREVCVUdfUFJPTQpAQCAtMTcxLDYgKzE3MiwxMCBAQCBzdGF0aWMgYm9vbCBfX3Byb21ic3MgcHJvbV9yYWRpeF9kaXNhYmxlOwogc3RhdGljIGJvb2wgX19wcm9tYnNzIHByb21feGl2ZV9kaXNhYmxlOwogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfUFBDX1NWTQorc3RhdGljIGJvb2wgX19wcm9tYnNzIHByb21fc3ZtX2VuYWJsZTsKKyNlbmRpZgorCiBzdHJ1Y3QgcGxhdGZvcm1fc3VwcG9ydCB7CiAJYm9vbCBoYXNoX21tdTsKIAlib29sIHJhZGl4X21tdTsKQEAgLTgxMiw2ICs4MTcsMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGVhcmx5X2NtZGxpbmVfcGFyc2Uodm9pZCkKIAkJcHJvbV9kZWJ1ZygiWElWRSBkaXNhYmxlZCBmcm9tIGNtZGxpbmVcbiIpOwogCX0KICNlbmRpZiAvKiBDT05GSUdfUFBDX1BTRVJJRVMgKi8KKworI2lmZGVmIENPTkZJR19QUENfU1ZNCisJb3B0ID0gcHJvbV9zdHJzdHIocHJvbV9jbWRfbGluZSwgInN2bT0iKTsKKwlpZiAob3B0KSB7CisJCWJvb2wgdmFsOworCisJCW9wdCArPSBzaXplb2YoInN2bT0iKSAtIDE7CisJCWlmICghcHJvbV9zdHJ0b2Jvb2wob3B0LCAmdmFsKSkKKwkJCXByb21fc3ZtX2VuYWJsZSA9IHZhbDsKKwl9CisjZW5kaWYgLyogQ09ORklHX1BQQ19TVk0gKi8KIH0KIAogI2lmZGVmIENPTkZJR19QUENfUFNFUklFUwpAQCAtMTcxMiw2ICsxNzI4LDQzIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwcm9tX2Nsb3NlX3N0ZGluKHZvaWQpCiAJfQogfQogCisjaWZkZWYgQ09ORklHX1BQQ19TVk0KK3N0YXRpYyBpbnQgcHJvbV9ydGFzX2hjYWxsKHVpbnQ2NF90IGFyZ3MpCit7CisJcmVnaXN0ZXIgdWludDY0X3QgYXJnMSBhc20oInIzIikgPSBIX1JUQVM7CisJcmVnaXN0ZXIgdWludDY0X3QgYXJnMiBhc20oInI0IikgPSBhcmdzOworCisJYXNtIHZvbGF0aWxlKCJzYyAxXG4iIDogIj1yIiAoYXJnMSkgOgorCQkJInIiIChhcmcxKSwKKwkJCSJyIiAoYXJnMikgOik7CisJcmV0dXJuIGFyZzE7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcnRhc19hcmdzIF9fcHJvbWJzcyBvc190ZXJtX2FyZ3M7CisKK3N0YXRpYyB2b2lkIF9faW5pdCBwcm9tX3J0YXNfb3NfdGVybShjaGFyICpzdHIpCit7CisJcGhhbmRsZSBydGFzX25vZGU7CisJX19iZTMyIHZhbDsKKwl1MzIgdG9rZW47CisKKwlwcm9tX2RlYnVnKCIlczogc3RhcnQuLi5cbiIsIF9fZnVuY19fKTsKKwlydGFzX25vZGUgPSBjYWxsX3Byb20oImZpbmRkZXZpY2UiLCAxLCAxLCBBRERSKCIvcnRhcyIpKTsKKwlwcm9tX2RlYnVnKCJydGFzX25vZGU6ICV4XG4iLCBydGFzX25vZGUpOworCWlmICghUEhBTkRMRV9WQUxJRChydGFzX25vZGUpKQorCQlyZXR1cm47CisKKwl2YWwgPSAwOworCXByb21fZ2V0cHJvcChydGFzX25vZGUsICJpYm0sb3MtdGVybSIsICZ2YWwsIHNpemVvZih2YWwpKTsKKwl0b2tlbiA9IGJlMzJfdG9fY3B1KHZhbCk7CisJcHJvbV9kZWJ1ZygiaWJtLG9zLXRlcm06ICV4XG4iLCB0b2tlbik7CisJaWYgKHRva2VuID09IDApCisJCXByb21fcGFuaWMoIkNvdWxkIG5vdCBnZXQgdG9rZW4gZm9yIGlibSxvcy10ZXJtXG4iKTsKKwlvc190ZXJtX2FyZ3MudG9rZW4gPSBjcHVfdG9fYmUzMih0b2tlbik7CisJcHJvbV9ydGFzX2hjYWxsKCh1aW50NjRfdCkmb3NfdGVybV9hcmdzKTsKK30KKyNlbmRpZiAvKiBDT05GSUdfUFBDX1NWTSAqLworCiAvKgogICogQWxsb2NhdGUgcm9vbSBmb3IgYW5kIGluc3RhbnRpYXRlIFJUQVMKICAqLwpAQCAtMzE2OCw2ICszMjIxLDQ2IEBAIHN0YXRpYyB2b2lkIHVucmVsb2NfdG9jKHZvaWQpCiAjZW5kaWYKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX1BQQ19TVk0KKy8qCisgKiBQZXJmb3JtIHRoZSBFbnRlciBTZWN1cmUgTW9kZSB1bHRyYWNhbGwuCisgKi8KK3N0YXRpYyBpbnQgZW50ZXJfc2VjdXJlX21vZGUodW5zaWduZWQgbG9uZyBrYmFzZSwgdW5zaWduZWQgbG9uZyBmZHQpCit7CisJcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyByMyBhc20oInIzIikgPSBVVl9FU007CisJcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyByNCBhc20oInI0IikgPSBrYmFzZTsKKwlyZWdpc3RlciB1bnNpZ25lZCBsb25nIHI1IGFzbSgicjUiKSA9IGZkdDsKKworCWFzbSB2b2xhdGlsZSgic2MgMiIgOiAiK3IiKHIzKSA6ICJyIihyNCksICJyIihyNSkpOworCisJcmV0dXJuIHIzOworfQorCisvKgorICogQ2FsbCB0aGUgVWx0cmF2aXNvciB0byB0cmFuc2ZlciB1cyB0byBzZWN1cmUgbWVtb3J5IGlmIHdlIGhhdmUgYW4gRVNNIGJsb2IuCisgKi8KK3N0YXRpYyB2b2lkIHNldHVwX3NlY3VyZV9ndWVzdCh1bnNpZ25lZCBsb25nIGtiYXNlLCB1bnNpZ25lZCBsb25nIGZkdCkKK3sKKwlpbnQgcmV0OworCisJaWYgKCFwcm9tX3N2bV9lbmFibGUpCisJCXJldHVybjsKKworCS8qIFN3aXRjaCB0byBzZWN1cmUgbW9kZS4gKi8KKwlwcm9tX3ByaW50ZigiU3dpdGNoaW5nIHRvIHNlY3VyZSBtb2RlLlxuIik7CisKKwlyZXQgPSBlbnRlcl9zZWN1cmVfbW9kZShrYmFzZSwgZmR0KTsKKwlpZiAocmV0ICE9IFVfU1VDQ0VTUykgeworCQlwcm9tX3ByaW50ZigiUmV0dXJuZWQgJWQgZnJvbSBzd2l0Y2hpbmcgdG8gc2VjdXJlIG1vZGUuXG4iLCByZXQpOworCQlwcm9tX3J0YXNfb3NfdGVybSgiU3dpdGNoIHRvIHNlY3VyZSBtb2RlIGZhaWxlZC5cbiIpOworCX0KK30KKyNlbHNlCitzdGF0aWMgdm9pZCBzZXR1cF9zZWN1cmVfZ3Vlc3QodW5zaWduZWQgbG9uZyBrYmFzZSwgdW5zaWduZWQgbG9uZyBmZHQpCit7Cit9CisjZW5kaWYgLyogQ09ORklHX1BQQ19TVk0gKi8KKwogLyoKICAqIFdlIGVudGVyIGhlcmUgZWFybHkgb24sIHdoZW4gdGhlIE9wZW4gRmlybXdhcmUgcHJvbSBpcyBzdGlsbAogICogaGFuZGxpbmcgZXhjZXB0aW9ucyBhbmQgdGhlIE1NVSBoYXNoIHRhYmxlIGZvciB1cy4KQEAgLTMzNjYsNiArMzQ1OSw5IEBAIHVuc2lnbmVkIGxvbmcgX19pbml0IHByb21faW5pdCh1bnNpZ25lZCBsb25nIHIzLCB1bnNpZ25lZCBsb25nIHI0LAogCXVucmVsb2NfdG9jKCk7CiAjZW5kaWYKIAorCS8qIE1vdmUgdG8gc2VjdXJlIG1lbW9yeSBpZiB3ZSdyZSBzdXBwb3NlZCB0byBiZSBzZWN1cmUgZ3Vlc3RzLiAqLworCXNldHVwX3NlY3VyZV9ndWVzdChrYmFzZSwgaGRyKTsKKwogCV9fc3RhcnQoaGRyLCBrYmFzZSwgMCwgMCwgMCwgMCwgMCk7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvbV9pbml0X2NoZWNrLnNoIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9tX2luaXRfY2hlY2suc2gKaW5kZXggMTYwYmVmMC4uNzhiYWIxNyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9tX2luaXRfY2hlY2suc2gKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9tX2luaXRfY2hlY2suc2gKQEAgLTMzLDcgKzMzLDcgQEAKIAogRVJST1I9MAogCi1mdW5jdGlvbiBjaGVja19zZWN0aW9uKCkKK2NoZWNrX3NlY3Rpb24oKQogewogICAgIGZpbGU9JDEKICAgICBzZWN0aW9uPSQyCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3J0YXMuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcnRhcy5jCmluZGV4IDVmYWYwYTYuLmM1ZmEyNTEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcnRhcy5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcnRhcy5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvY3B1Lmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgpAQCAtODcxLDE1ICs4NzIsMTcgQEAgc3RhdGljIGludCBydGFzX2NwdV9zdGF0ZV9jaGFuZ2VfbWFzayhlbnVtIHJ0YXNfY3B1X3N0YXRlIHN0YXRlLAogCQlyZXR1cm4gMDsKIAogCWZvcl9lYWNoX2NwdShjcHUsIGNwdXMpIHsKKwkJc3RydWN0IGRldmljZSAqZGV2ID0gZ2V0X2NwdV9kZXZpY2UoY3B1KTsKKwogCQlzd2l0Y2ggKHN0YXRlKSB7CiAJCWNhc2UgRE9XTjoKLQkJCWNwdXJldCA9IGNwdV9kb3duKGNwdSk7CisJCQljcHVyZXQgPSBkZXZpY2Vfb2ZmbGluZShkZXYpOwogCQkJYnJlYWs7CiAJCWNhc2UgVVA6Ci0JCQljcHVyZXQgPSBjcHVfdXAoY3B1KTsKKwkJCWNwdXJldCA9IGRldmljZV9vbmxpbmUoZGV2KTsKIAkJCWJyZWFrOwogCQl9Ci0JCWlmIChjcHVyZXQpIHsKKwkJaWYgKGNwdXJldCA8IDApIHsKIAkJCXByX2RlYnVnKCIlczogY3B1XyVzIGZvciBjcHUjJWQgcmV0dXJuZWQgJWQuXG4iLAogCQkJCQlfX2Z1bmNfXywKIAkJCQkJKChzdGF0ZSA9PSBVUCkgPyAidXAiIDogImRvd24iKSwKQEAgLTg5Niw2ICs4OTksNyBAQCBzdGF0aWMgaW50IHJ0YXNfY3B1X3N0YXRlX2NoYW5nZV9tYXNrKGVudW0gcnRhc19jcHVfc3RhdGUgc3RhdGUsCiAJCQkJY3B1bWFza19jbGVhcl9jcHUoY3B1LCBjcHVzKTsKIAkJCX0KIAkJfQorCQljb25kX3Jlc2NoZWQoKTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtOTIyLDEzICs5MjYsMTEgQEAgaW50IHJ0YXNfb25saW5lX2NwdXNfbWFzayhjcHVtYXNrX3Zhcl90IGNwdXMpCiAKIAlyZXR1cm4gcmV0OwogfQotRVhQT1JUX1NZTUJPTChydGFzX29ubGluZV9jcHVzX21hc2spOwogCiBpbnQgcnRhc19vZmZsaW5lX2NwdXNfbWFzayhjcHVtYXNrX3Zhcl90IGNwdXMpCiB7CiAJcmV0dXJuIHJ0YXNfY3B1X3N0YXRlX2NoYW5nZV9tYXNrKERPV04sIGNwdXMpOwogfQotRVhQT1JUX1NZTUJPTChydGFzX29mZmxpbmVfY3B1c19tYXNrKTsKIAogaW50IHJ0YXNfaWJtX3N1c3BlbmRfbWUodTY0IGhhbmRsZSkKIHsKQEAgLTk2OCw2ICs5NzAsOCBAQCBpbnQgcnRhc19pYm1fc3VzcGVuZF9tZSh1NjQgaGFuZGxlKQogCWRhdGEudG9rZW4gPSBydGFzX3Rva2VuKCJpYm0sc3VzcGVuZC1tZSIpOwogCWRhdGEuY29tcGxldGUgPSAmZG9uZTsKIAorCWxvY2tfZGV2aWNlX2hvdHBsdWcoKTsKKwogCS8qIEFsbCBwcmVzZW50IENQVXMgbXVzdCBiZSBvbmxpbmUgKi8KIAljcHVtYXNrX2FuZG5vdChvZmZsaW5lX21hc2ssIGNwdV9wcmVzZW50X21hc2ssIGNwdV9vbmxpbmVfbWFzayk7CiAJY3B1cmV0ID0gcnRhc19vbmxpbmVfY3B1c19tYXNrKG9mZmxpbmVfbWFzayk7CkBAIC0xMDA2LDYgKzEwMTAsNyBAQCBpbnQgcnRhc19pYm1fc3VzcGVuZF9tZSh1NjQgaGFuZGxlKQogCQkJCV9fZnVuY19fKTsKIAogb3V0OgorCXVubG9ja19kZXZpY2VfaG90cGx1ZygpOwogCWZyZWVfY3B1bWFza192YXIob2ZmbGluZV9tYXNrKTsKIAlyZXR1cm4gYXRvbWljX3JlYWQoJmRhdGEuZXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZWN1cml0eS5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZWN1cml0eS5jCmluZGV4IGUxYzljZjAuLjdjZmNiMjkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2VjdXJpdHkuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NlY3VyaXR5LmMKQEAgLTI4LDcgKzI4LDcgQEAgc3RhdGljIGVudW0gY291bnRfY2FjaGVfZmx1c2hfdHlwZSBjb3VudF9jYWNoZV9mbHVzaF90eXBlID0gQ09VTlRfQ0FDSEVfRkxVU0hfTk8KIGJvb2wgYmFycmllcl9ub3NwZWNfZW5hYmxlZDsKIHN0YXRpYyBib29sIG5vX25vc3BlYzsKIHN0YXRpYyBib29sIGJ0Yl9mbHVzaF9lbmFibGVkOwotI2lmZGVmIENPTkZJR19QUENfRlNMX0JPT0szRQorI2lmIGRlZmluZWQoQ09ORklHX1BQQ19GU0xfQk9PSzNFKSB8fCBkZWZpbmVkKENPTkZJR19QUENfQk9PSzNTXzY0KQogc3RhdGljIGJvb2wgbm9fc3BlY3RyZXYyOwogI2VuZGlmCiAKQEAgLTExNCw3ICsxMTQsNyBAQCBzdGF0aWMgX19pbml0IGludCBzZWN1cml0eV9mZWF0dXJlX2RlYnVnZnNfaW5pdCh2b2lkKQogZGV2aWNlX2luaXRjYWxsKHNlY3VyaXR5X2ZlYXR1cmVfZGVidWdmc19pbml0KTsKICNlbmRpZiAvKiBDT05GSUdfREVCVUdfRlMgKi8KIAotI2lmZGVmIENPTkZJR19QUENfRlNMX0JPT0szRQorI2lmIGRlZmluZWQoQ09ORklHX1BQQ19GU0xfQk9PSzNFKSB8fCBkZWZpbmVkKENPTkZJR19QUENfQk9PSzNTXzY0KQogc3RhdGljIGludCBfX2luaXQgaGFuZGxlX25vc3BlY3RyZV92MihjaGFyICpwKQogewogCW5vX3NwZWN0cmV2MiA9IHRydWU7CkBAIC0xMjIsNiArMTIyLDkgQEAgc3RhdGljIGludCBfX2luaXQgaGFuZGxlX25vc3BlY3RyZV92MihjaGFyICpwKQogCXJldHVybiAwOwogfQogZWFybHlfcGFyYW0oIm5vc3BlY3RyZV92MiIsIGhhbmRsZV9ub3NwZWN0cmVfdjIpOworI2VuZGlmIC8qIENPTkZJR19QUENfRlNMX0JPT0szRSB8fCBDT05GSUdfUFBDX0JPT0szU182NCAqLworCisjaWZkZWYgQ09ORklHX1BQQ19GU0xfQk9PSzNFCiB2b2lkIHNldHVwX3NwZWN0cmVfdjIodm9pZCkKIHsKIAlpZiAobm9fc3BlY3RyZXYyIHx8IGNwdV9taXRpZ2F0aW9uc19vZmYoKSkKQEAgLTM5OSw3ICs0MDIsMTcgQEAgc3RhdGljIHZvaWQgdG9nZ2xlX2NvdW50X2NhY2hlX2ZsdXNoKGJvb2wgZW5hYmxlKQogCiB2b2lkIHNldHVwX2NvdW50X2NhY2hlX2ZsdXNoKHZvaWQpCiB7Ci0JdG9nZ2xlX2NvdW50X2NhY2hlX2ZsdXNoKHRydWUpOworCWJvb2wgZW5hYmxlID0gdHJ1ZTsKKworCWlmIChub19zcGVjdHJldjIgfHwgY3B1X21pdGlnYXRpb25zX29mZigpKSB7CisJCWlmIChzZWN1cml0eV9mdHJfZW5hYmxlZChTRUNfRlRSX0JDQ1RSTF9TRVJJQUxJU0VEKSB8fAorCQkgICAgc2VjdXJpdHlfZnRyX2VuYWJsZWQoU0VDX0ZUUl9DT1VOVF9DQUNIRV9ESVNBQkxFRCkpCisJCQlwcl93YXJuKCJTcGVjdHJlIHYyIG1pdGlnYXRpb25zIG5vdCB1bmRlciBzb2Z0d2FyZSBjb250cm9sLCBjYW4ndCBkaXNhYmxlXG4iKTsKKworCQllbmFibGUgPSBmYWxzZTsKKwl9CisKKwl0b2dnbGVfY291bnRfY2FjaGVfZmx1c2goZW5hYmxlKTsKIH0KIAogI2lmZGVmIENPTkZJR19ERUJVR19GUwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cC1jb21tb24uYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2V0dXAtY29tbW9uLmMKaW5kZXggNWU2NTQzYS4uMjVhYWEzOSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cC1jb21tb24uYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwLWNvbW1vbi5jCkBAIC04MDAsOSArODAwLDE1IEBAIHN0YXRpYyBfX2luaXQgdm9pZCBwcmludF9zeXN0ZW1faW5mbyh2b2lkKQogCXByX2luZm8oIm1tdV9mZWF0dXJlcyAgICAgID0gMHglMDh4XG4iLCBjdXJfY3B1X3NwZWMtPm1tdV9mZWF0dXJlcyk7CiAjaWZkZWYgQ09ORklHX1BQQzY0CiAJcHJfaW5mbygiZmlybXdhcmVfZmVhdHVyZXMgPSAweCUwMTZseFxuIiwgcG93ZXJwY19maXJtd2FyZV9mZWF0dXJlcyk7CisjaWZkZWYgQ09ORklHX1BQQ19CT09LM1MKKwlwcl9pbmZvKCJ2bWFsbG9jIHN0YXJ0ICAgICA9IDB4JWx4XG4iLCBLRVJOX1ZJUlRfU1RBUlQpOworCXByX2luZm8oIklPIHN0YXJ0ICAgICAgICAgID0gMHglbHhcbiIsIEtFUk5fSU9fU1RBUlQpOworCXByX2luZm8oInZtZW1tYXAgc3RhcnQgICAgID0gMHglbHhcbiIsICh1bnNpZ25lZCBsb25nKXZtZW1tYXApOworI2VuZGlmCiAjZW5kaWYKIAotCXByaW50X3N5c3RlbV9oYXNoX2luZm8oKTsKKwlpZiAoIWVhcmx5X3JhZGl4X2VuYWJsZWQoKSkKKwkJcHJpbnRfc3lzdGVtX2hhc2hfaW5mbygpOwogCiAJaWYgKFBIWVNJQ0FMX1NUQVJUID4gMCkKIAkJcHJfaW5mbygicGh5c2ljYWxfc3RhcnQgICAgPSAweCVsbHhcbiIsCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwXzMyLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwXzMyLmMKaW5kZXggOTQ1MTdlNC4uYTc1NDFlZCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cF8zMi5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2V0dXBfMzIuYwpAQCAtMjA2LDYgKzIwNiw2IEBAIF9faW5pdCB2b2lkIGluaXRpYWxpemVfY2FjaGVfaW5mbyh2b2lkKQogCWRjYWNoZV9ic2l6ZSA9IGN1cl9jcHVfc3BlYy0+ZGNhY2hlX2JzaXplOwogCWljYWNoZV9ic2l6ZSA9IGN1cl9jcHVfc3BlYy0+aWNhY2hlX2JzaXplOwogCXVjYWNoZV9ic2l6ZSA9IDA7Ci0JaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSX1VOSUZJRURfSURfQ0FDSEUpKQorCWlmIChJU19FTkFCTEVEKENPTkZJR19QUENfQk9PSzNTXzYwMSkgfHwgSVNfRU5BQkxFRChDT05GSUdfRTIwMCkpCiAJCXVjYWNoZV9ic2l6ZSA9IGljYWNoZV9ic2l6ZSA9IGRjYWNoZV9ic2l6ZTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc3RhY2t0cmFjZS5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zdGFja3RyYWNlLmMKaW5kZXggMWUyMjc2OS4uZTJhNDZjZiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zdGFja3RyYWNlLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zdGFja3RyYWNlLmMKQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMgaW50IF9fc2F2ZV9zdGFja190cmFjZV90c2tfcmVsaWFibGUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCiAJCSAqIEZJWE1FOiBJTUhPIHRoZXNlIHRlc3RzIGRvIG5vdCBiZWxvbmcgaW4KIAkJICogYXJjaC1kZXBlbmRlbnQgY29kZSwgdGhleSBhcmUgZ2VuZXJpYy4KIAkJICovCi0JCWlwID0gZnRyYWNlX2dyYXBoX3JldF9hZGRyKHRzaywgJmdyYXBoX2lkeCwgaXAsIE5VTEwpOworCQlpcCA9IGZ0cmFjZV9ncmFwaF9yZXRfYWRkcih0c2ssICZncmFwaF9pZHgsIGlwLCBzdGFjayk7CiAjaWZkZWYgQ09ORklHX0tQUk9CRVMKIAkJLyoKIAkJICogTWFyayBzdGFja3RyYWNlcyB3aXRoIGtyZXRwcm9iZWQgZnVuY3Rpb25zIG9uIHRoZW0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc3lzZnMuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvc3lzZnMuYwppbmRleCBlMjE0N2Q3Li44MGE2NzZkIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3N5c2ZzLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zeXNmcy5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSA8YXNtL3NtcC5oPgogI2luY2x1ZGUgPGFzbS9wbWMuaD4KICNpbmNsdWRlIDxhc20vZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxhc20vc3ZtLmg+CiAKICNpbmNsdWRlICJjYWNoZWluZm8uaCIKICNpbmNsdWRlICJzZXR1cC5oIgpAQCAtNzE1LDYgKzcxNiwyMyBAQCBzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgcGE2dF9hdHRyc1tdID0gewogI2VuZGlmIC8qIEhBU19QUENfUE1DX1BBNlQgKi8KICNlbmRpZiAvKiBIQVNfUFBDX1BNQ19DTEFTU0lDICovCiAKKyNpZmRlZiBDT05GSUdfUFBDX1NWTQorc3RhdGljIHNzaXplX3Qgc2hvd19zdm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiV1XG4iLCBpc19zZWN1cmVfZ3Vlc3QoKSk7Cit9CitzdGF0aWMgREVWSUNFX0FUVFIoc3ZtLCAwNDQ0LCBzaG93X3N2bSwgTlVMTCk7CisKK3N0YXRpYyB2b2lkIGNyZWF0ZV9zdm1fZmlsZSh2b2lkKQoreworCWRldmljZV9jcmVhdGVfZmlsZShjcHVfc3Vic3lzLmRldl9yb290LCAmZGV2X2F0dHJfc3ZtKTsKK30KKyNlbHNlCitzdGF0aWMgdm9pZCBjcmVhdGVfc3ZtX2ZpbGUodm9pZCkKK3sKK30KKyNlbmRpZiAvKiBDT05GSUdfUFBDX1NWTSAqLworCiBzdGF0aWMgaW50IHJlZ2lzdGVyX2NwdV9vbmxpbmUodW5zaWduZWQgaW50IGNwdSkKIHsKIAlzdHJ1Y3QgY3B1ICpjID0gJnBlcl9jcHUoY3B1X2RldmljZXMsIGNwdSk7CkBAIC0xMDU4LDYgKzEwNzYsOCBAQCBzdGF0aWMgaW50IF9faW5pdCB0b3BvbG9neV9pbml0KHZvaWQpCiAJc3lzZnNfY3JlYXRlX2RzY3JfZGVmYXVsdCgpOwogI2VuZGlmIC8qIENPTkZJR19QUEM2NCAqLwogCisJY3JlYXRlX3N2bV9maWxlKCk7CisKIAlyZXR1cm4gMDsKIH0KIHN1YnN5c19pbml0Y2FsbCh0b3BvbG9neV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdHJhY2UvZnRyYWNlLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3RyYWNlL2Z0cmFjZS5jCmluZGV4IGJlMWNhOTguLjdlYTBjYTAgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdHJhY2UvZnRyYWNlLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFjZS9mdHJhY2UuYwpAQCAtOTQ0LDcgKzk0NCw4IEBAIGludCBmdHJhY2VfZGlzYWJsZV9mdHJhY2VfZ3JhcGhfY2FsbGVyKHZvaWQpCiAgKiBIb29rIHRoZSByZXR1cm4gYWRkcmVzcyBhbmQgcHVzaCBpdCBpbiB0aGUgc3RhY2sgb2YgcmV0dXJuIGFkZHJzCiAgKiBpbiBjdXJyZW50IHRocmVhZCBpbmZvLiBSZXR1cm4gdGhlIGFkZHJlc3Mgd2Ugd2FudCB0byBkaXZlcnQgdG8uCiAgKi8KLXVuc2lnbmVkIGxvbmcgcHJlcGFyZV9mdHJhY2VfcmV0dXJuKHVuc2lnbmVkIGxvbmcgcGFyZW50LCB1bnNpZ25lZCBsb25nIGlwKQordW5zaWduZWQgbG9uZyBwcmVwYXJlX2Z0cmFjZV9yZXR1cm4odW5zaWduZWQgbG9uZyBwYXJlbnQsIHVuc2lnbmVkIGxvbmcgaXAsCisJCQkJCQl1bnNpZ25lZCBsb25nIHNwKQogewogCXVuc2lnbmVkIGxvbmcgcmV0dXJuX2hvb2tlcjsKIApAQCAtOTU2LDcgKzk1Nyw3IEBAIHVuc2lnbmVkIGxvbmcgcHJlcGFyZV9mdHJhY2VfcmV0dXJuKHVuc2lnbmVkIGxvbmcgcGFyZW50LCB1bnNpZ25lZCBsb25nIGlwKQogCiAJcmV0dXJuX2hvb2tlciA9IHBwY19mdW5jdGlvbl9lbnRyeShyZXR1cm5fdG9faGFuZGxlcik7CiAKLQlpZiAoIWZ1bmN0aW9uX2dyYXBoX2VudGVyKHBhcmVudCwgaXAsIDAsIE5VTEwpKQorCWlmICghZnVuY3Rpb25fZ3JhcGhfZW50ZXIocGFyZW50LCBpcCwgMCwgKHVuc2lnbmVkIGxvbmcgKilzcCkpCiAJCXBhcmVudCA9IHJldHVybl9ob29rZXI7CiBvdXQ6CiAJcmV0dXJuIHBhcmVudDsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdHJhY2UvZnRyYWNlXzMyLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3RyYWNlL2Z0cmFjZV8zMi5TCmluZGV4IDE4M2Y2MDguLmUwMjNhZTUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdHJhY2UvZnRyYWNlXzMyLlMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFjZS9mdHJhY2VfMzIuUwpAQCAtNTAsNiArNTAsNyBAQAogCiAjaWZkZWYgQ09ORklHX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUgogX0dMT0JBTChmdHJhY2VfZ3JhcGhfY2FsbGVyKQorCWFkZGkJcjUsIHIxLCA0OAogCS8qIGxvYWQgcjQgd2l0aCBsb2NhbCBhZGRyZXNzICovCiAJbHd6CXI0LCA0NChyMSkKIAlzdWJpCXI0LCByNCwgTUNPVU5UX0lOU05fU0laRQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFjZS9mdHJhY2VfNjRfbXByb2ZpbGUuUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdHJhY2UvZnRyYWNlXzY0X21wcm9maWxlLlMKaW5kZXggNzRhY2JmMS4uZjlmZDVmNyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFjZS9mdHJhY2VfNjRfbXByb2ZpbGUuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3RyYWNlL2Z0cmFjZV82NF9tcHJvZmlsZS5TCkBAIC0yOTQsNiArMjk0LDcgQEAKIAlzdGQJcjIsIDI0KHIxKQogCWxkCXIyLCBQQUNBVE9DKHIxMykJLyogZ2V0IGtlcm5lbCBUT0MgaW4gcjIgKi8KIAorCWFkZGkJcjUsIHIxLCAxMTIKIAltZmN0cglyNAkJLyogZnRyYWNlX2NhbGxlciBoYXMgbW92ZWQgbG9jYWwgYWRkciBoZXJlICovCiAJc3RkCXI0LCA0MChyMSkKIAltZmxyCXIzCQkvKiBmdHJhY2VfY2FsbGVyIGhhcyByZXN0b3JlZCBMUiBmcm9tIHN0YWNrICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3RyYWNlL2Z0cmFjZV82NF9wZy5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFjZS9mdHJhY2VfNjRfcGcuUwppbmRleCBlNDFhN2QxLi42NzA4ZTI0IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3RyYWNlL2Z0cmFjZV82NF9wZy5TCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdHJhY2UvZnRyYWNlXzY0X3BnLlMKQEAgLTQxLDYgKzQxLDcgQEAKIAogI2lmZGVmIENPTkZJR19GVU5DVElPTl9HUkFQSF9UUkFDRVIKIF9HTE9CQUwoZnRyYWNlX2dyYXBoX2NhbGxlcikKKwlhZGRpCXI1LCByMSwgMTEyCiAJLyogbG9hZCByNCB3aXRoIGxvY2FsIGFkZHJlc3MgKi8KIAlsZAlyNCwgMTI4KHIxKQogCXN1YmkJcjQsIHI0LCBNQ09VTlRfSU5TTl9TSVpFCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3RyYXBzLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3RyYXBzLmMKaW5kZXggMTFjYWEwMi4uODJmNDM1MyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFwcy5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdHJhcHMuYwpAQCAtNDcyLDYgKzQ3Miw3IEBAIHZvaWQgc3lzdGVtX3Jlc2V0X2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAlpZiAoZGVidWdnZXIocmVncykpCiAJCWdvdG8gb3V0OwogCisJa21zZ19kdW1wKEtNU0dfRFVNUF9PT1BTKTsKIAkvKgogCSAqIEEgc3lzdGVtIHJlc2V0IGlzIGEgcmVxdWVzdCB0byBkdW1wLCBzbyB3ZSBhbHdheXMgc2VuZAogCSAqIGl0IHRocm91Z2ggdGhlIGNyYXNoZHVtcCBjb2RlIChpZiBmYWR1bXAgb3Iga2R1bXAgYXJlCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3VjYWxsLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3VjYWxsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcyOTZiYwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdWNhbGwuUwpAQCAtMCwwICsxLDE0IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIEdlbmVyaWMgY29kZSB0byBwZXJmb3JtIGFuIHVsdHJhdmlzb3IgY2FsbC4KKyAqCisgKiBDb3B5cmlnaHQgMjAxOSwgSUJNIENvcnBvcmF0aW9uLgorICoKKyAqLworI2luY2x1ZGUgPGFzbS9wcGNfYXNtLmg+CisjaW5jbHVkZSA8YXNtL2V4cG9ydC5oPgorCitfR0xPQkFMKHVjYWxsX25vcmV0cykKK0VYUE9SVF9TWU1CT0xfR1BMKHVjYWxsX25vcmV0cykKKwlzYwkyCS8qIEludm9rZSB0aGUgdWx0cmF2aXNvciAqLworCWJscgkJLyogUmV0dXJuIHIzID0gc3RhdHVzICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3Zkc28uYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdmRzby5jCmluZGV4IGQ2MDU5ODEuLmVhZTlkZGEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdmRzby5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdmRzby5jCkBAIC05NCwyOCArOTQsNiBAQCBzdGF0aWMgc3RydWN0IHZkc29fcGF0Y2hfZGVmIHZkc29fcGF0Y2hlc1tdID0gewogCQlDUFVfRlRSX0NPSEVSRU5UX0lDQUNIRSwgQ1BVX0ZUUl9DT0hFUkVOVF9JQ0FDSEUsCiAJCSJfX2tlcm5lbF9zeW5jX2RpY2FjaGUiLCAiX19rZXJuZWxfc3luY19kaWNhY2hlX3A1IgogCX0sCi0jaWZkZWYgQ09ORklHX1BQQzMyCi0JewotCQlDUFVfRlRSX1VTRV9SVEMsIENQVV9GVFJfVVNFX1JUQywKLQkJIl9fa2VybmVsX2dldHRpbWVvZmRheSIsIE5VTEwKLQl9LAotCXsKLQkJQ1BVX0ZUUl9VU0VfUlRDLCBDUFVfRlRSX1VTRV9SVEMsCi0JCSJfX2tlcm5lbF9jbG9ja19nZXR0aW1lIiwgTlVMTAotCX0sCi0JewotCQlDUFVfRlRSX1VTRV9SVEMsIENQVV9GVFJfVVNFX1JUQywKLQkJIl9fa2VybmVsX2Nsb2NrX2dldHJlcyIsIE5VTEwKLQl9LAotCXsKLQkJQ1BVX0ZUUl9VU0VfUlRDLCBDUFVfRlRSX1VTRV9SVEMsCi0JCSJfX2tlcm5lbF9nZXRfdGJmcmVxIiwgTlVMTAotCX0sCi0JewotCQlDUFVfRlRSX1VTRV9SVEMsIENQVV9GVFJfVVNFX1JUQywKLQkJIl9fa2VybmVsX3RpbWUiLCBOVUxMCi0JfSwKLSNlbmRpZgogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdmRzbzMyL2RhdGFwYWdlLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3Zkc28zMi9kYXRhcGFnZS5TCmluZGV4IDY5ODQxMjUuLjZjNzQwMWIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdmRzbzMyL2RhdGFwYWdlLlMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC92ZHNvMzIvZGF0YXBhZ2UuUwpAQCAtNzAsNiArNzAsNyBAQAogICoKICAqIHJldHVybnMgdGhlIHRpbWViYXNlIGZyZXF1ZW5jeSBpbiBIWgogICovCisjaWZuZGVmIENPTkZJR19QUENfQk9PSzNTXzYwMQogVl9GVU5DVElPTl9CRUdJTihfX2tlcm5lbF9nZXRfdGJmcmVxKQogICAuY2ZpX3N0YXJ0cHJvYwogCW1mbHIJcjEyCkBAIC04MiwzICs4Myw0IEBACiAJYmxyCiAgIC5jZmlfZW5kcHJvYwogVl9GVU5DVElPTl9FTkQoX19rZXJuZWxfZ2V0X3RiZnJlcSkKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC92ZHNvMzIvdmRzbzMyLmxkcy5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC92ZHNvMzIvdmRzbzMyLmxkcy5TCmluZGV4IDA5OWE2ZGIuLjAwYzAyNWIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdmRzbzMyL3Zkc28zMi5sZHMuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3Zkc28zMi92ZHNvMzIubGRzLlMKQEAgLTE0NCwxMCArMTQ0LDEzIEBACiAJCV9fa2VybmVsX2RhdGFwYWdlX29mZnNldDsKIAogCQlfX2tlcm5lbF9nZXRfc3lzY2FsbF9tYXA7CisjaWZuZGVmIENPTkZJR19QUENfQk9PSzNTXzYwMQogCQlfX2tlcm5lbF9nZXR0aW1lb2ZkYXk7CiAJCV9fa2VybmVsX2Nsb2NrX2dldHRpbWU7CiAJCV9fa2VybmVsX2Nsb2NrX2dldHJlczsKKwkJX19rZXJuZWxfdGltZTsKIAkJX19rZXJuZWxfZ2V0X3RiZnJlcTsKKyNlbmRpZgogCQlfX2tlcm5lbF9zeW5jX2RpY2FjaGU7CiAJCV9fa2VybmVsX3N5bmNfZGljYWNoZV9wNTsKIAkJX19rZXJuZWxfc2lndHJhbXAzMjsKQEAgLTE1NSw3ICsxNTgsNiBAQAogI2lmZGVmIENPTkZJR19QUEM2NAogCQlfX2tlcm5lbF9nZXRjcHU7CiAjZW5kaWYKLQkJX19rZXJuZWxfdGltZTsKIAogCWxvY2FsOiAqOwogCX07CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc182NF92aW8uYyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzXzY0X3Zpby5jCmluZGV4IGM0YjYwNmYuLjU4MzRkYjAgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzXzY0X3Zpby5jCisrKyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzXzY0X3Zpby5jCkBAIC00MTYsNyArNDE2LDcgQEAgc3RhdGljIHZvaWQga3ZtcHBjX2NsZWFyX3RjZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IGlvbW11X3RhYmxlICp0YmwsCiAJdW5zaWduZWQgbG9uZyBocGEgPSAwOwogCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciA9IERNQV9OT05FOwogCi0JaW9tbXVfdGNlX3hjaGcobW0sIHRibCwgZW50cnksICZocGEsICZkaXIpOworCWlvbW11X3RjZV94Y2hnX25vX2tpbGwobW0sIHRibCwgZW50cnksICZocGEsICZkaXIpOwogfQogCiBzdGF0aWMgbG9uZyBrdm1wcGNfdGNlX2lvbW11X21hcHBlZF9kZWMoc3RydWN0IGt2bSAqa3ZtLApAQCAtNDQ3LDcgKzQ0Nyw4IEBAIHN0YXRpYyBsb25nIGt2bXBwY190Y2VfaW9tbXVfZG9fdW5tYXAoc3RydWN0IGt2bSAqa3ZtLAogCXVuc2lnbmVkIGxvbmcgaHBhID0gMDsKIAlsb25nIHJldDsKIAotCWlmIChXQVJOX09OX09OQ0UoaW9tbXVfdGNlX3hjaGcoa3ZtLT5tbSwgdGJsLCBlbnRyeSwgJmhwYSwgJmRpcikpKQorCWlmIChXQVJOX09OX09OQ0UoaW9tbXVfdGNlX3hjaGdfbm9fa2lsbChrdm0tPm1tLCB0YmwsIGVudHJ5LCAmaHBhLAorCQkJCQkmZGlyKSkpCiAJCXJldHVybiBIX1RPT19IQVJEOwogCiAJaWYgKGRpciA9PSBETUFfTk9ORSkKQEAgLTQ1NSw3ICs0NTYsNyBAQCBzdGF0aWMgbG9uZyBrdm1wcGNfdGNlX2lvbW11X2RvX3VubWFwKHN0cnVjdCBrdm0gKmt2bSwKIAogCXJldCA9IGt2bXBwY190Y2VfaW9tbXVfbWFwcGVkX2RlYyhrdm0sIHRibCwgZW50cnkpOwogCWlmIChyZXQgIT0gSF9TVUNDRVNTKQotCQlpb21tdV90Y2VfeGNoZyhrdm0tPm1tLCB0YmwsIGVudHJ5LCAmaHBhLCAmZGlyKTsKKwkJaW9tbXVfdGNlX3hjaGdfbm9fa2lsbChrdm0tPm1tLCB0YmwsIGVudHJ5LCAmaHBhLCAmZGlyKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC01MDEsNyArNTAyLDcgQEAgbG9uZyBrdm1wcGNfdGNlX2lvbW11X2RvX21hcChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLAogCWlmIChtbV9pb21tdV9tYXBwZWRfaW5jKG1lbSkpCiAJCXJldHVybiBIX1RPT19IQVJEOwogCi0JcmV0ID0gaW9tbXVfdGNlX3hjaGcoa3ZtLT5tbSwgdGJsLCBlbnRyeSwgJmhwYSwgJmRpcik7CisJcmV0ID0gaW9tbXVfdGNlX3hjaGdfbm9fa2lsbChrdm0tPm1tLCB0YmwsIGVudHJ5LCAmaHBhLCAmZGlyKTsKIAlpZiAoV0FSTl9PTl9PTkNFKHJldCkpIHsKIAkJbW1faW9tbXVfbWFwcGVkX2RlYyhtZW0pOwogCQlyZXR1cm4gSF9UT09fSEFSRDsKQEAgLTU3OSw2ICs1ODAsOCBAQCBsb25nIGt2bXBwY19oX3B1dF90Y2Uoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIGxpb2JuLAogCQkJcmV0ID0ga3ZtcHBjX3RjZV9pb21tdV9tYXAodmNwdS0+a3ZtLCBzdHQsIHN0aXQtPnRibCwKIAkJCQkJZW50cnksIHVhLCBkaXIpOwogCisJCWlvbW11X3RjZV9raWxsKHN0aXQtPnRibCwgZW50cnksIDEpOworCiAJCWlmIChyZXQgIT0gSF9TVUNDRVNTKSB7CiAJCQlrdm1wcGNfY2xlYXJfdGNlKHZjcHUtPmt2bS0+bW0sIHN0aXQtPnRibCwgZW50cnkpOwogCQkJZ290byB1bmxvY2tfZXhpdDsKQEAgLTY1NiwxMyArNjU5LDEzIEBAIGxvbmcga3ZtcHBjX2hfcHV0X3RjZV9pbmRpcmVjdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCSAqLwogCQlpZiAoZ2V0X3VzZXIodGNlLCB0Y2VzICsgaSkpIHsKIAkJCXJldCA9IEhfVE9PX0hBUkQ7Ci0JCQlnb3RvIHVubG9ja19leGl0OworCQkJZ290byBpbnZhbGlkYXRlX2V4aXQ7CiAJCX0KIAkJdGNlID0gYmU2NF90b19jcHUodGNlKTsKIAogCQlpZiAoa3ZtcHBjX3RjZV90b191YSh2Y3B1LT5rdm0sIHRjZSwgJnVhKSkgewogCQkJcmV0ID0gSF9QQVJBTUVURVI7Ci0JCQlnb3RvIHVubG9ja19leGl0OworCQkJZ290byBpbnZhbGlkYXRlX2V4aXQ7CiAJCX0KIAogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X2xvY2tsZXNzKHN0aXQsICZzdHQtPmlvbW11X3RhYmxlcywgbmV4dCkgewpAQCAtNjczLDEzICs2NzYsMTcgQEAgbG9uZyBrdm1wcGNfaF9wdXRfdGNlX2luZGlyZWN0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJCWlmIChyZXQgIT0gSF9TVUNDRVNTKSB7CiAJCQkJa3ZtcHBjX2NsZWFyX3RjZSh2Y3B1LT5rdm0tPm1tLCBzdGl0LT50YmwsCiAJCQkJCQllbnRyeSk7Ci0JCQkJZ290byB1bmxvY2tfZXhpdDsKKwkJCQlnb3RvIGludmFsaWRhdGVfZXhpdDsKIAkJCX0KIAkJfQogCiAJCWt2bXBwY190Y2VfcHV0KHN0dCwgZW50cnkgKyBpLCB0Y2UpOwogCX0KIAoraW52YWxpZGF0ZV9leGl0OgorCWxpc3RfZm9yX2VhY2hfZW50cnlfbG9ja2xlc3Moc3RpdCwgJnN0dC0+aW9tbXVfdGFibGVzLCBuZXh0KQorCQlpb21tdV90Y2Vfa2lsbChzdGl0LT50YmwsIGVudHJ5LCBucGFnZXMpOworCiB1bmxvY2tfZXhpdDoKIAlzcmN1X3JlYWRfdW5sb2NrKCZ2Y3B1LT5rdm0tPnNyY3UsIGlkeCk7CiAKQEAgLTcxOCw3ICs3MjUsNyBAQCBsb25nIGt2bXBwY19oX3N0dWZmX3RjZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCQkJY29udGludWU7CiAKIAkJCWlmIChyZXQgPT0gSF9UT09fSEFSRCkKLQkJCQlyZXR1cm4gcmV0OworCQkJCWdvdG8gaW52YWxpZGF0ZV9leGl0OwogCiAJCQlXQVJOX09OX09OQ0UoMSk7CiAJCQlrdm1wcGNfY2xlYXJfdGNlKHZjcHUtPmt2bS0+bW0sIHN0aXQtPnRibCwgZW50cnkpOwpAQCAtNzI4LDYgKzczNSwxMCBAQCBsb25nIGt2bXBwY19oX3N0dWZmX3RjZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJZm9yIChpID0gMDsgaSA8IG5wYWdlczsgKytpLCBpb2JhICs9ICgxVUxMIDw8IHN0dC0+cGFnZV9zaGlmdCkpCiAJCWt2bXBwY190Y2VfcHV0KHN0dCwgaW9iYSA+PiBzdHQtPnBhZ2Vfc2hpZnQsIHRjZV92YWx1ZSk7CiAKLQlyZXR1cm4gSF9TVUNDRVNTOworaW52YWxpZGF0ZV9leGl0OgorCWxpc3RfZm9yX2VhY2hfZW50cnlfbG9ja2xlc3Moc3RpdCwgJnN0dC0+aW9tbXVfdGFibGVzLCBuZXh0KQorCQlpb21tdV90Y2Vfa2lsbChzdGl0LT50YmwsIGlvYmEgPj4gc3R0LT5wYWdlX3NoaWZ0LCBucGFnZXMpOworCisJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGt2bXBwY19oX3N0dWZmX3RjZSk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc182NF92aW9faHYuYyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzXzY0X3Zpb19odi5jCmluZGV4IGI0ZjIwZjEuLmFiNmVlYjggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzXzY0X3Zpb19odi5jCisrKyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzXzY0X3Zpb19odi5jCkBAIC0yMTgsMTMgKzIxOCwxNCBAQCBzdGF0aWMgbG9uZyBrdm1wcGNfcm1faW9iYV92YWxpZGF0ZShzdHJ1Y3Qga3ZtcHBjX3NwYXByX3RjZV90YWJsZSAqc3R0LAogCXJldHVybiBIX1NVQ0NFU1M7CiB9CiAKLXN0YXRpYyBsb25nIGlvbW11X3RjZV94Y2hnX3JtKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwKK3N0YXRpYyBsb25nIGlvbW11X3RjZV94Y2hnX25vX2tpbGxfcm0oc3RydWN0IG1tX3N0cnVjdCAqbW0sCisJCXN0cnVjdCBpb21tdV90YWJsZSAqdGJsLAogCQl1bnNpZ25lZCBsb25nIGVudHJ5LCB1bnNpZ25lZCBsb25nICpocGEsCiAJCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uICpkaXJlY3Rpb24pCiB7CiAJbG9uZyByZXQ7CiAKLQlyZXQgPSB0YmwtPml0X29wcy0+ZXhjaGFuZ2Vfcm0odGJsLCBlbnRyeSwgaHBhLCBkaXJlY3Rpb24pOworCXJldCA9IHRibC0+aXRfb3BzLT54Y2hnX25vX2tpbGwodGJsLCBlbnRyeSwgaHBhLCBkaXJlY3Rpb24sIHRydWUpOwogCiAJaWYgKCFyZXQgJiYgKCgqZGlyZWN0aW9uID09IERNQV9GUk9NX0RFVklDRSkgfHwKIAkJCQkoKmRpcmVjdGlvbiA9PSBETUFfQklESVJFQ1RJT05BTCkpKSB7CkBAIC0yNDAsMTMgKzI0MSwyMCBAQCBzdGF0aWMgbG9uZyBpb21tdV90Y2VfeGNoZ19ybShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IGlvbW11X3RhYmxlICp0YmwsCiAJcmV0dXJuIHJldDsKIH0KIAorZXh0ZXJuIHZvaWQgaW9tbXVfdGNlX2tpbGxfcm0oc3RydWN0IGlvbW11X3RhYmxlICp0YmwsCisJCXVuc2lnbmVkIGxvbmcgZW50cnksIHVuc2lnbmVkIGxvbmcgcGFnZXMpCit7CisJaWYgKHRibC0+aXRfb3BzLT50Y2Vfa2lsbCkKKwkJdGJsLT5pdF9vcHMtPnRjZV9raWxsKHRibCwgZW50cnksIHBhZ2VzLCB0cnVlKTsKK30KKwogc3RhdGljIHZvaWQga3ZtcHBjX3JtX2NsZWFyX3RjZShzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLAogCQl1bnNpZ25lZCBsb25nIGVudHJ5KQogewogCXVuc2lnbmVkIGxvbmcgaHBhID0gMDsKIAllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIgPSBETUFfTk9ORTsKIAotCWlvbW11X3RjZV94Y2hnX3JtKGt2bS0+bW0sIHRibCwgZW50cnksICZocGEsICZkaXIpOworCWlvbW11X3RjZV94Y2hnX25vX2tpbGxfcm0oa3ZtLT5tbSwgdGJsLCBlbnRyeSwgJmhwYSwgJmRpcik7CiB9CiAKIHN0YXRpYyBsb25nIGt2bXBwY19ybV90Y2VfaW9tbXVfbWFwcGVkX2RlYyhzdHJ1Y3Qga3ZtICprdm0sCkBAIC0yNzgsNyArMjg2LDcgQEAgc3RhdGljIGxvbmcga3ZtcHBjX3JtX3RjZV9pb21tdV9kb191bm1hcChzdHJ1Y3Qga3ZtICprdm0sCiAJdW5zaWduZWQgbG9uZyBocGEgPSAwOwogCWxvbmcgcmV0OwogCi0JaWYgKGlvbW11X3RjZV94Y2hnX3JtKGt2bS0+bW0sIHRibCwgZW50cnksICZocGEsICZkaXIpKQorCWlmIChpb21tdV90Y2VfeGNoZ19ub19raWxsX3JtKGt2bS0+bW0sIHRibCwgZW50cnksICZocGEsICZkaXIpKQogCQkvKgogCQkgKiByZWFsIG1vZGUgeGNoZyBjYW4gZmFpbCBpZiBzdHJ1Y3QgcGFnZSBjcm9zc2VzCiAJCSAqIGEgcGFnZSBib3VuZGFyeQpAQCAtMjkwLDcgKzI5OCw3IEBAIHN0YXRpYyBsb25nIGt2bXBwY19ybV90Y2VfaW9tbXVfZG9fdW5tYXAoc3RydWN0IGt2bSAqa3ZtLAogCiAJcmV0ID0ga3ZtcHBjX3JtX3RjZV9pb21tdV9tYXBwZWRfZGVjKGt2bSwgdGJsLCBlbnRyeSk7CiAJaWYgKHJldCkKLQkJaW9tbXVfdGNlX3hjaGdfcm0oa3ZtLT5tbSwgdGJsLCBlbnRyeSwgJmhwYSwgJmRpcik7CisJCWlvbW11X3RjZV94Y2hnX25vX2tpbGxfcm0oa3ZtLT5tbSwgdGJsLCBlbnRyeSwgJmhwYSwgJmRpcik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMzM2LDcgKzM0NCw3IEBAIHN0YXRpYyBsb25nIGt2bXBwY19ybV90Y2VfaW9tbXVfZG9fbWFwKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGlvbW11X3RhYmxlICp0YmwsCiAJaWYgKFdBUk5fT05fT05DRV9STShtbV9pb21tdV9tYXBwZWRfaW5jKG1lbSkpKQogCQlyZXR1cm4gSF9UT09fSEFSRDsKIAotCXJldCA9IGlvbW11X3RjZV94Y2hnX3JtKGt2bS0+bW0sIHRibCwgZW50cnksICZocGEsICZkaXIpOworCXJldCA9IGlvbW11X3RjZV94Y2hnX25vX2tpbGxfcm0oa3ZtLT5tbSwgdGJsLCBlbnRyeSwgJmhwYSwgJmRpcik7CiAJaWYgKHJldCkgewogCQltbV9pb21tdV9tYXBwZWRfZGVjKG1lbSk7CiAJCS8qCkBAIC00MTcsNiArNDI1LDggQEAgbG9uZyBrdm1wcGNfcm1faF9wdXRfdGNlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyBsaW9ibiwKIAkJCXJldCA9IGt2bXBwY19ybV90Y2VfaW9tbXVfbWFwKHZjcHUtPmt2bSwgc3R0LAogCQkJCQlzdGl0LT50YmwsIGVudHJ5LCB1YSwgZGlyKTsKIAorCQlpb21tdV90Y2Vfa2lsbF9ybShzdGl0LT50YmwsIGVudHJ5LCAxKTsKKwogCQlpZiAocmV0ICE9IEhfU1VDQ0VTUykgewogCQkJa3ZtcHBjX3JtX2NsZWFyX3RjZSh2Y3B1LT5rdm0sIHN0aXQtPnRibCwgZW50cnkpOwogCQkJcmV0dXJuIHJldDsKQEAgLTU1OCw3ICs1NjgsNyBAQCBsb25nIGt2bXBwY19ybV9oX3B1dF90Y2VfaW5kaXJlY3Qoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCQl1YSA9IDA7CiAJCWlmIChrdm1wcGNfcm1fdGNlX3RvX3VhKHZjcHUtPmt2bSwgdGNlLCAmdWEsIE5VTEwpKSB7CiAJCQlyZXQgPSBIX1BBUkFNRVRFUjsKLQkJCWdvdG8gdW5sb2NrX2V4aXQ7CisJCQlnb3RvIGludmFsaWRhdGVfZXhpdDsKIAkJfQogCiAJCWxpc3RfZm9yX2VhY2hfZW50cnlfbG9ja2xlc3Moc3RpdCwgJnN0dC0+aW9tbXVfdGFibGVzLCBuZXh0KSB7CkBAIC01NjksMTMgKzU3OSwxNyBAQCBsb25nIGt2bXBwY19ybV9oX3B1dF90Y2VfaW5kaXJlY3Qoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCQkJaWYgKHJldCAhPSBIX1NVQ0NFU1MpIHsKIAkJCQlrdm1wcGNfcm1fY2xlYXJfdGNlKHZjcHUtPmt2bSwgc3RpdC0+dGJsLAogCQkJCQkJZW50cnkpOwotCQkJCWdvdG8gdW5sb2NrX2V4aXQ7CisJCQkJZ290byBpbnZhbGlkYXRlX2V4aXQ7CiAJCQl9CiAJCX0KIAogCQlrdm1wcGNfcm1fdGNlX3B1dChzdHQsIGVudHJ5ICsgaSwgdGNlKTsKIAl9CiAKK2ludmFsaWRhdGVfZXhpdDoKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2xvY2tsZXNzKHN0aXQsICZzdHQtPmlvbW11X3RhYmxlcywgbmV4dCkKKwkJaW9tbXVfdGNlX2tpbGxfcm0oc3RpdC0+dGJsLCBlbnRyeSwgbnBhZ2VzKTsKKwogdW5sb2NrX2V4aXQ6CiAJaWYgKHJtYXApCiAJCXVubG9ja19ybWFwKHJtYXApOwpAQCAtNjE4LDcgKzYzMiw3IEBAIGxvbmcga3ZtcHBjX3JtX2hfc3R1ZmZfdGNlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJCQljb250aW51ZTsKIAogCQkJaWYgKHJldCA9PSBIX1RPT19IQVJEKQotCQkJCXJldHVybiByZXQ7CisJCQkJZ290byBpbnZhbGlkYXRlX2V4aXQ7CiAKIAkJCVdBUk5fT05fT05DRV9STSgxKTsKIAkJCWt2bXBwY19ybV9jbGVhcl90Y2UodmNwdS0+a3ZtLCBzdGl0LT50YmwsIGVudHJ5KTsKQEAgLTYyOCw3ICs2NDIsMTEgQEAgbG9uZyBrdm1wcGNfcm1faF9zdHVmZl90Y2Uoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCWZvciAoaSA9IDA7IGkgPCBucGFnZXM7ICsraSwgaW9iYSArPSAoMVVMTCA8PCBzdHQtPnBhZ2Vfc2hpZnQpKQogCQlrdm1wcGNfcm1fdGNlX3B1dChzdHQsIGlvYmEgPj4gc3R0LT5wYWdlX3NoaWZ0LCB0Y2VfdmFsdWUpOwogCi0JcmV0dXJuIEhfU1VDQ0VTUzsKK2ludmFsaWRhdGVfZXhpdDoKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2xvY2tsZXNzKHN0aXQsICZzdHQtPmlvbW11X3RhYmxlcywgbmV4dCkKKwkJaW9tbXVfdGNlX2tpbGxfcm0oc3RpdC0+dGJsLCBpb2JhID4+IHN0dC0+cGFnZV9zaGlmdCwgbnBhZ2VzKTsKKworCXJldHVybiByZXQ7CiB9CiAKIC8qIFRoaXMgY2FuIGJlIGNhbGxlZCBpbiBlaXRoZXIgdmlydHVhbCBtb2RlIG9yIHJlYWwgbW9kZSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2t2bS9ib29rM3NfaHYuYyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2h2LmMKaW5kZXggZjg5NzVjNi4uNzA5Y2YxZiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2t2bS9ib29rM3NfaHYuYworKysgYi9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19odi5jCkBAIC00MDEsOCArNDAxLDExIEBAIHN0YXRpYyBpbnQga3ZtcHBjX3NldF9hcmNoX2NvbXBhdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHUzMiBhcmNoX2NvbXBhdCkKIAogCXNwaW5fbG9jaygmdmMtPmxvY2spOwogCXZjLT5hcmNoX2NvbXBhdCA9IGFyY2hfY29tcGF0OwotCS8qIFNldCBhbGwgUENSIGJpdHMgZm9yIHdoaWNoIGd1ZXN0X3Bjcl9iaXQgPD0gYml0IDwgaG9zdF9wY3JfYml0ICovCi0JdmMtPnBjciA9IGhvc3RfcGNyX2JpdCAtIGd1ZXN0X3Bjcl9iaXQ7CisJLyoKKwkgKiBTZXQgYWxsIFBDUiBiaXRzIGZvciB3aGljaCBndWVzdF9wY3JfYml0IDw9IGJpdCA8IGhvc3RfcGNyX2JpdAorCSAqIEFsc28gc2V0IGFsbCByZXNlcnZlZCBQQ1IgYml0cworCSAqLworCXZjLT5wY3IgPSAoaG9zdF9wY3JfYml0IC0gZ3Vlc3RfcGNyX2JpdCkgfCBQQ1JfTUFTSzsKIAlzcGluX3VubG9jaygmdmMtPmxvY2spOwogCiAJcmV0dXJuIDA7CkBAIC0zNDEwLDcgKzM0MTMsNyBAQCBzdGF0aWMgaW50IGt2bWh2X2xvYWRfaHZfcmVnc19hbmRfZ28oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgdGltZV9saW1pdCwKIAl9CiAKIAlpZiAodmMtPnBjcikKLQkJbXRzcHIoU1BSTl9QQ1IsIHZjLT5wY3IpOworCQltdHNwcihTUFJOX1BDUiwgdmMtPnBjciB8IFBDUl9NQVNLKTsKIAltdHNwcihTUFJOX0RQREVTLCB2Yy0+ZHBkZXMpOwogCW10c3ByKFNQUk5fVlRCLCB2Yy0+dnRiKTsKIApAQCAtMzQ5MCw3ICszNDkzLDcgQEAgc3RhdGljIGludCBrdm1odl9sb2FkX2h2X3JlZ3NfYW5kX2dvKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IHRpbWVfbGltaXQsCiAJdmMtPnZ0YiA9IG1mc3ByKFNQUk5fVlRCKTsKIAltdHNwcihTUFJOX0RQREVTLCAwKTsKIAlpZiAodmMtPnBjcikKLQkJbXRzcHIoU1BSTl9QQ1IsIDApOworCQltdHNwcihTUFJOX1BDUiwgUENSX01BU0spOwogCiAJaWYgKHZjLT50Yl9vZmZzZXRfYXBwbGllZCkgewogCQl1NjQgbmV3X3RiID0gbWZ0YigpIC0gdmMtPnRiX29mZnNldF9hcHBsaWVkOwpAQCAtNTQ3NCw2ICs1NDc3LDEyIEBAIHN0YXRpYyBpbnQga3ZtcHBjX3JhZGl4X3Bvc3NpYmxlKHZvaWQpCiBzdGF0aWMgaW50IGt2bXBwY19ib29rM3NfaW5pdF9odih2b2lkKQogewogCWludCByOworCisJaWYgKCF0bGJpZV9jYXBhYmxlKSB7CisJCXByX2VycigiS1ZNLUhWOiBIb3N0IGRvZXMgbm90IHN1cHBvcnQgVExCSUVcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKIAkvKgogCSAqIEZJWE1FISEgRG8gd2UgbmVlZCB0byBjaGVjayBvbiBhbGwgY3B1cyA/CiAJICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19odl9uZXN0ZWQuYyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2h2X25lc3RlZC5jCmluZGV4IDczNWUwYWMuLmNkZjMwYzYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2h2X25lc3RlZC5jCisrKyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2h2X25lc3RlZC5jCkBAIC0yOSw3ICsyOSw3IEBAIHZvaWQga3ZtaHZfc2F2ZV9odl9yZWdzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGh2X2d1ZXN0X3N0YXRlICpocikKIHsKIAlzdHJ1Y3Qga3ZtcHBjX3Zjb3JlICp2YyA9IHZjcHUtPmFyY2gudmNvcmU7CiAKLQloci0+cGNyID0gdmMtPnBjcjsKKwloci0+cGNyID0gdmMtPnBjciB8IFBDUl9NQVNLOwogCWhyLT5kcGRlcyA9IHZjLT5kcGRlczsKIAloci0+aGZzY3IgPSB2Y3B1LT5hcmNoLmhmc2NyOwogCWhyLT50Yl9vZmZzZXQgPSB2Yy0+dGJfb2Zmc2V0OwpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgdm9pZCBieXRlc3dhcF9odl9yZWdzKHN0cnVjdCBodl9ndWVzdF9zdGF0ZSAqaHIpCiAJaHItPmxwaWQgPSBzd2FiMzIoaHItPmxwaWQpOwogCWhyLT52Y3B1X3Rva2VuID0gc3dhYjMyKGhyLT52Y3B1X3Rva2VuKTsKIAloci0+bHBjciA9IHN3YWI2NChoci0+bHBjcik7Ci0JaHItPnBjciA9IHN3YWI2NChoci0+cGNyKTsKKwloci0+cGNyID0gc3dhYjY0KGhyLT5wY3IpIHwgUENSX01BU0s7CiAJaHItPmFtb3IgPSBzd2FiNjQoaHItPmFtb3IpOwogCWhyLT5kcGRlcyA9IHN3YWI2NChoci0+ZHBkZXMpOwogCWhyLT5oZnNjciA9IHN3YWI2NChoci0+aGZzY3IpOwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIHJlc3RvcmVfaHZfcmVncyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBodl9ndWVzdF9zdGF0ZSAqaHIpCiB7CiAJc3RydWN0IGt2bXBwY192Y29yZSAqdmMgPSB2Y3B1LT5hcmNoLnZjb3JlOwogCi0JdmMtPnBjciA9IGhyLT5wY3I7CisJdmMtPnBjciA9IGhyLT5wY3IgfCBQQ1JfTUFTSzsKIAl2Yy0+ZHBkZXMgPSBoci0+ZHBkZXM7CiAJdmNwdS0+YXJjaC5oZnNjciA9IGhyLT5oZnNjcjsKIAl2Y3B1LT5hcmNoLmRhd3IgPSBoci0+ZGF3cjA7CkBAIC0zOTgsNyArMzk4LDcgQEAgc3RhdGljIHZvaWQga3ZtaHZfZmx1c2hfbHBpZCh1bnNpZ25lZCBpbnQgbHBpZCkKIAlsb25nIHJjOwogCiAJaWYgKCFrdm1odl9vbl9wc2VyaWVzKCkpIHsKLQkJcmFkaXhfX2ZsdXNoX3RsYl9scGlkKGxwaWQpOworCQlyYWRpeF9fZmx1c2hfYWxsX2xwaWQobHBpZCk7CiAJCXJldHVybjsKIAl9CiAKQEAgLTQxMSw3ICs0MTEsNyBAQCBzdGF0aWMgdm9pZCBrdm1odl9mbHVzaF9scGlkKHVuc2lnbmVkIGludCBscGlkKQogdm9pZCBrdm1odl9zZXRfcHRibF9lbnRyeSh1bnNpZ25lZCBpbnQgbHBpZCwgdTY0IGR3MCwgdTY0IGR3MSkKIHsKIAlpZiAoIWt2bWh2X29uX3BzZXJpZXMoKSkgewotCQltbXVfcGFydGl0aW9uX3RhYmxlX3NldF9lbnRyeShscGlkLCBkdzAsIGR3MSk7CisJCW1tdV9wYXJ0aXRpb25fdGFibGVfc2V0X2VudHJ5KGxwaWQsIGR3MCwgZHcxLCB0cnVlKTsKIAkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2t2bS9ib29rM3NfaHZfcm1fbW11LmMgYi9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19odl9ybV9tbXUuYwppbmRleCA3MTg2YzY1Li4yMjAzMDU0IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19odl9ybV9tbXUuYworKysgYi9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19odl9ybV9tbXUuYwpAQCAtNDMzLDYgKzQzMywzNyBAQCBzdGF0aWMgaW5saW5lIGludCBpc19tbWlvX2hwdGUodW5zaWduZWQgbG9uZyB2LCB1bnNpZ25lZCBsb25nIHIpCiAJCShIUFRFX1JfS0VZX0hJIHwgSFBURV9SX0tFWV9MTykpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgZml4dXBfdGxiaWVfbHBpZCh1bnNpZ25lZCBsb25nIHJiX3ZhbHVlLCB1bnNpZ25lZCBsb25nIGxwaWQpCit7CisKKwlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfUDlfVExCSUVfRVJBVF9CVUcpKSB7CisJCS8qIFJhZGl4IGZsdXNoIGZvciBhIGhhc2ggZ3Vlc3QgKi8KKworCQl1bnNpZ25lZCBsb25nIHJiLHJzLHBycyxyLHJpYzsKKworCQlyYiA9IFBQQ19CSVQoNTIpOyAvKiBJUyA9IDIgKi8KKwkJcnMgPSAwOyAgLyogbHBpZCA9IDAgKi8KKwkJcHJzID0gMDsgLyogcGFydGl0aW9uIHNjb3BlZCAqLworCQlyID0gMTsgICAvKiByYWRpeCBmb3JtYXQgKi8KKwkJcmljID0gMDsgLyogUklDX0ZMU1VIX1RMQiAqLworCisJCS8qCisJCSAqIE5lZWQgdGhlIGV4dHJhIHB0ZXN5bmMgdG8gbWFrZSBzdXJlIHdlIGRvbid0CisJCSAqIHJlLW9yZGVyIHRoZSB0bGJpZQorCQkgKi8KKwkJYXNtIHZvbGF0aWxlKCJwdGVzeW5jIjogOiA6Im1lbW9yeSIpOworCQlhc20gdm9sYXRpbGUoUFBDX1RMQklFXzUoJTAsICU0LCAlMywgJTIsICUxKQorCQkJICAgICA6IDogInIiKHJiKSwgImkiKHIpLCAiaSIocHJzKSwKKwkJCSAgICAgICAiaSIocmljKSwgInIiKHJzKSA6ICJtZW1vcnkiKTsKKwl9CisKKwlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfUDlfVExCSUVfU1RRX0JVRykpIHsKKwkJYXNtIHZvbGF0aWxlKCJwdGVzeW5jIjogOiA6Im1lbW9yeSIpOworCQlhc20gdm9sYXRpbGUoUFBDX1RMQklFXzUoJTAsJTEsMCwwLDApIDogOgorCQkJICAgICAiciIgKHJiX3ZhbHVlKSwgInIiIChscGlkKSk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBkb190bGJpZXMoc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBsb25nICpyYnZhbHVlcywKIAkJICAgICAgbG9uZyBucGFnZXMsIGludCBnbG9iYWwsIGJvb2wgbmVlZF9zeW5jKQogewpAQCAtNDUxLDE2ICs0ODIsNyBAQCBzdGF0aWMgdm9pZCBkb190bGJpZXMoc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBsb25nICpyYnZhbHVlcywKIAkJCQkgICAgICJyIiAocmJ2YWx1ZXNbaV0pLCAiciIgKGt2bS0+YXJjaC5scGlkKSk7CiAJCX0KIAotCQlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfUDlfVExCSUVfQlVHKSkgewotCQkJLyoKLQkJCSAqIE5lZWQgdGhlIGV4dHJhIHB0ZXN5bmMgdG8gbWFrZSBzdXJlIHdlIGRvbid0Ci0JCQkgKiByZS1vcmRlciB0aGUgdGxiaWUKLQkJCSAqLwotCQkJYXNtIHZvbGF0aWxlKCJwdGVzeW5jIjogOiA6Im1lbW9yeSIpOwotCQkJYXNtIHZvbGF0aWxlKFBQQ19UTEJJRV81KCUwLCUxLDAsMCwwKSA6IDoKLQkJCQkgICAgICJyIiAocmJ2YWx1ZXNbMF0pLCAiciIgKGt2bS0+YXJjaC5scGlkKSk7Ci0JCX0KLQorCQlmaXh1cF90bGJpZV9scGlkKHJidmFsdWVzW2kgLSAxXSwga3ZtLT5hcmNoLmxwaWQpOwogCQlhc20gdm9sYXRpbGUoImVpZWlvOyB0bGJzeW5jOyBwdGVzeW5jIiA6IDogOiAibWVtb3J5Iik7CiAJfSBlbHNlIHsKIAkJaWYgKG5lZWRfc3luYykKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2h2X3JtX3hpY3MuYyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2h2X3JtX3hpY3MuYwppbmRleCA0ZDJlYzc3Li4yODdkNTkxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19odl9ybV94aWNzLmMKKysrIGIvYXJjaC9wb3dlcnBjL2t2bS9ib29rM3NfaHZfcm1feGljcy5jCkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpY3Bfc2VuZF9oY29yZV9tc2coaW50IGhjb3JlLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJaGNwdSA9IGhjb3JlIDw8IHRocmVhZHNfc2hpZnQ7CiAJa3ZtcHBjX2hvc3Rfcm1fb3BzX2h2LT5ybV9jb3JlW2hjb3JlXS5ybV9kYXRhID0gdmNwdTsKIAlzbXBfbXV4ZWRfaXBpX3NldF9tZXNzYWdlKGhjcHUsIFBQQ19NU0dfUk1fSE9TVF9BQ1RJT04pOwotCWt2bXBwY19zZXRfaG9zdF9pcGkoaGNwdSwgMSk7CisJa3ZtcHBjX3NldF9ob3N0X2lwaShoY3B1KTsKIAlzbXBfbWIoKTsKIAlrdm1odl9ybV9zZW5kX2lwaShoY3B1KTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2h2X3JtaGFuZGxlcnMuUyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2h2X3JtaGFuZGxlcnMuUwppbmRleCAwNzE4MWQwLi43NGE5Y2ZlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19odl9ybWhhbmRsZXJzLlMKKysrIGIvYXJjaC9wb3dlcnBjL2t2bS9ib29rM3NfaHZfcm1oYW5kbGVycy5TCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8YXNtL2FzbS1jb21wYXQuaD4KICNpbmNsdWRlIDxhc20vZmVhdHVyZS1maXh1cHMuaD4KICNpbmNsdWRlIDxhc20vY3B1aWRsZS5oPgorI2luY2x1ZGUgPGFzbS91bHRyYXZpc29yLWFwaS5oPgogCiAvKiBTaWduLWV4dGVuZCBIREVDIGlmIG5vdCBvbiBQT1dFUjkgKi8KICNkZWZpbmUgRVhURU5EX0hERUMocmVnKQkJCVwKQEAgLTY0Myw4ICs2NDQsMTAgQEAKIAogCS8qIExvYWQgZ3Vlc3QgUENSIHZhbHVlIHRvIHNlbGVjdCBhcHByb3ByaWF0ZSBjb21wYXQgbW9kZSAqLwogMzc6CWxkCXI3LCBWQ09SRV9QQ1IocjUpCi0JY21wZGkJcjcsIDAKKwlMT0FEX1JFR19JTU1FRElBVEUocjYsIFBDUl9NQVNLKQorCWNtcGxkCXI3LCByNgogCWJlcQkzOGYKKwlvcglyNywgcjcsIHI2CiAJbXRzcHIJU1BSTl9QQ1IsIHI3CiAzODoKIApAQCAtMTA4NSwxNiArMTA4OCwxMCBAQAogRU5EX0ZUUl9TRUNUSU9OX0lGU0VUKENQVV9GVFJfSEFTX1BQUikKIAogCWxkCXI1LCBWQ1BVX0xSKHI0KQotCWxkCXI2LCBWQ1BVX0NSKHI0KQogCW10bHIJcjUKLQltdGNyCXI2CiAKIAlsZAlyMSwgVkNQVV9HUFIoUjEpKHI0KQotCWxkCXIyLCBWQ1BVX0dQUihSMikocjQpCi0JbGQJcjMsIFZDUFVfR1BSKFIzKShyNCkKIAlsZAlyNSwgVkNQVV9HUFIoUjUpKHI0KQotCWxkCXI2LCBWQ1BVX0dQUihSNikocjQpCi0JbGQJcjcsIFZDUFVfR1BSKFI3KShyNCkKIAlsZAlyOCwgVkNQVV9HUFIoUjgpKHI0KQogCWxkCXI5LCBWQ1BVX0dQUihSOSkocjQpCiAJbGQJcjEwLCBWQ1BVX0dQUihSMTApKHI0KQpAQCAtMTExMiwxMCArMTEwOSw0MiBAQAogCW10c3ByCVNQUk5fSERTSVNSLCByMAogRU5EX0ZUUl9TRUNUSU9OX0lGU0VUKENQVV9GVFJfQVJDSF8zMDApCiAKKwlsZAlyNiwgVkNQVV9LVk0ocjQpCisJbGJ6CXI3LCBLVk1fU0VDVVJFX0dVRVNUKHI2KQorCWNtcGRpCXI3LCAwCisJbGQJcjYsIFZDUFVfR1BSKFI2KShyNCkKKwlsZAlyNywgVkNQVV9HUFIoUjcpKHI0KQorCWJuZQlyZXRfdG9fdWx0cmEKKworCWx3eglyMCwgVkNQVV9DUihyNCkKKwltdGNyCXIwCisKIAlsZAlyMCwgVkNQVV9HUFIoUjApKHI0KQorCWxkCXIyLCBWQ1BVX0dQUihSMikocjQpCisJbGQJcjMsIFZDUFVfR1BSKFIzKShyNCkKIAlsZAlyNCwgVkNQVV9HUFIoUjQpKHI0KQogCUhSRklfVE9fR1VFU1QKIAliCS4KKy8qCisgKiBVc2UgVVZfUkVUVVJOIHVsdHJhY2FsbCB0byByZXR1cm4gY29udHJvbCBiYWNrIHRvIHRoZSBVbHRyYXZpc29yIGFmdGVyCisgKiBwcm9jZXNzaW5nIGFuIGh5cGVyY2FsbCBvciBpbnRlcnJ1cHQgdGhhdCB3YXMgZm9yd2FyZGVkIChhLmsuYS4gcmVmbGVjdGVkKQorICogdG8gdGhlIEh5cGVydmlzb3IuCisgKgorICogQWxsIHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBsb2FkZWQsIGV4Y2VwdDoKKyAqICAgUjAgPSBoY2FsbCByZXN1bHQKKyAqICAgUjIgPSBTUlIxLCBzbyBVViBjYW4gZGV0ZWN0IGEgc3ludGhlc2l6ZWQgaW50ZXJydXB0IChpZiBhbnkpCisgKiAgIFIzID0gVVZfUkVUVVJOCisgKi8KK3JldF90b191bHRyYToKKwlsd3oJcjAsIFZDUFVfQ1IocjQpCisJbXRjcglyMAorCisJbGQJcjAsIFZDUFVfR1BSKFIzKShyNCkKKwltZnNwcglyMiwgU1BSTl9TUlIxCisJbGkJcjMsIDAKKwlvcmkJcjMsIHIzLCBVVl9SRVRVUk4KKwlsZAlyNCwgVkNQVV9HUFIoUjQpKHI0KQorCXNjCTIKIAogLyoKICAqIEVudGVyIHRoZSBndWVzdCBvbiBhIFA5IG9yIGxhdGVyIHN5c3RlbSB3aGVyZSB3ZSBoYXZlIGV4YWN0bHkKQEAgLTE4ODYsMTAgKzE5MTUsMTAgQEAKIAogCS8qIFJlc2V0IFBDUiAqLwogCWxkCXIwLCBWQ09SRV9QQ1IocjUpCi0JY21wZGkJcjAsIDAKKwlMT0FEX1JFR19JTU1FRElBVEUocjYsIFBDUl9NQVNLKQorCWNtcGxkCXIwLCByNgogCWJlcQkxOGYKLQlsaQlyMCwgMAotCW10c3ByCVNQUk5fUENSLCByMAorCW10c3ByCVNQUk5fUENSLCByNgogMTg6CiAJLyogU2lnbmFsIHNlY29uZGFyeSBDUFVzIHRvIGNvbnRpbnVlICovCiAJc3RiCXIwLFZDT1JFX0lOX0dVRVNUKHI1KQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2xpYi9NYWtlZmlsZSBiL2FyY2gvcG93ZXJwYy9saWIvTWFrZWZpbGUKaW5kZXggZWViYzc4Mi4uYjhkZTNiZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2xpYi9NYWtlZmlsZQorKysgYi9hcmNoL3Bvd2VycGMvbGliL01ha2VmaWxlCkBAIC0xNiw3ICsxNiw3IEBACiBDRkxBR1NfZmVhdHVyZS1maXh1cHMubyArPSAtRERJU0FCTEVfQlJBTkNIX1BST0ZJTElORwogZW5kaWYKIAotb2JqLXkgKz0gYWxsb2MubyBjb2RlLXBhdGNoaW5nLm8gZmVhdHVyZS1maXh1cHMubworb2JqLXkgKz0gYWxsb2MubyBjb2RlLXBhdGNoaW5nLm8gZmVhdHVyZS1maXh1cHMubyBwbWVtLm8KIAogaWZuZGVmIENPTkZJR19LQVNBTgogb2JqLXkJKz0Jc3RyaW5nLm8gbWVtY21wXyQoQklUUykubwpAQCAtMzksNyArMzksNyBAQAogCQkJICAgICAgIG1lbWNweV9wb3dlcjcubwogCiBvYmo2NC15CSs9IGNvcHlwYWdlXzY0Lm8gY29weXVzZXJfNjQubyBtZW1fNjQubyBod2VpZ2h0XzY0Lm8gXAotCSAgIG1lbWNweV82NC5vIHBtZW0ubworCSAgIG1lbWNweV82NC5vIG1lbWNweV9tY3NhZmVfNjQubwogCiBvYmo2NC0kKENPTkZJR19TTVApCSs9IGxvY2tzLm8KIG9iajY0LSQoQ09ORklHX0FMVElWRUMpCSs9IHZteC1oZWxwZXIubwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2xpYi9sb2Nrcy5jIGIvYXJjaC9wb3dlcnBjL2xpYi9sb2Nrcy5jCmluZGV4IDY1NTBiOWUuLjY0NDBkNTk0MyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2xpYi9sb2Nrcy5jCisrKyBiL2FyY2gvcG93ZXJwYy9saWIvbG9ja3MuYwpAQCAtMTgsNyArMTgsNyBAQAogI2luY2x1ZGUgPGFzbS9odmNhbGwuaD4KICNpbmNsdWRlIDxhc20vc21wLmg+CiAKLXZvaWQgX19zcGluX3lpZWxkKGFyY2hfc3BpbmxvY2tfdCAqbG9jaykKK3ZvaWQgc3BscGFyX3NwaW5feWllbGQoYXJjaF9zcGlubG9ja190ICpsb2NrKQogewogCXVuc2lnbmVkIGludCBsb2NrX3ZhbHVlLCBob2xkZXJfY3B1LCB5aWVsZF9jb3VudDsKIApAQCAtMzYsMTQgKzM2LDE0IEBAIHZvaWQgX19zcGluX3lpZWxkKGFyY2hfc3BpbmxvY2tfdCAqbG9jaykKIAlwbHBhcl9oY2FsbF9ub3JldHMoSF9DT05GRVIsCiAJCWdldF9oYXJkX3NtcF9wcm9jZXNzb3JfaWQoaG9sZGVyX2NwdSksIHlpZWxkX2NvdW50KTsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKF9fc3Bpbl95aWVsZCk7CitFWFBPUlRfU1lNQk9MX0dQTChzcGxwYXJfc3Bpbl95aWVsZCk7CiAKIC8qCiAgKiBXYWl0aW5nIGZvciBhIHJlYWQgbG9jayBvciBhIHdyaXRlIGxvY2sgb24gYSByd2xvY2suLi4KICAqIFRoaXMgdHVybnMgb3V0IHRvIGJlIHRoZSBzYW1lIGZvciByZWFkIGFuZCB3cml0ZSBsb2Nrcywgc2luY2UKICAqIHdlIG9ubHkga25vdyB0aGUgaG9sZGVyIGlmIGl0IGlzIHdyaXRlLWxvY2tlZC4KICAqLwotdm9pZCBfX3J3X3lpZWxkKGFyY2hfcndsb2NrX3QgKnJ3KQordm9pZCBzcGxwYXJfcndfeWllbGQoYXJjaF9yd2xvY2tfdCAqcncpCiB7CiAJaW50IGxvY2tfdmFsdWU7CiAJdW5zaWduZWQgaW50IGhvbGRlcl9jcHUsIHlpZWxkX2NvdW50OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2xpYi9tZW1jcHlfbWNzYWZlXzY0LlMgYi9hcmNoL3Bvd2VycGMvbGliL21lbWNweV9tY3NhZmVfNjQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjg4MmQ5YQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9saWIvbWVtY3B5X21jc2FmZV82NC5TCkBAIC0wLDAgKzEsMjQyIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIENvcHlyaWdodCAoQykgSUJNIENvcnBvcmF0aW9uLCAyMDExCisgKiBEZXJpdmVkIGZyb20gY29weXVzZXJfcG93ZXI3LnMgYnkgQW50b24gQmxhbmNoYXJkIDxhbnRvbkBhdS5pYm0uY29tPgorICogQXV0aG9yIC0gQmFsYmlyIFNpbmdoIDxic2luZ2hhcm9yYUBnbWFpbC5jb20+CisgKi8KKyNpbmNsdWRlIDxhc20vcHBjX2FzbS5oPgorI2luY2x1ZGUgPGFzbS9lcnJuby5oPgorI2luY2x1ZGUgPGFzbS9leHBvcnQuaD4KKworCS5tYWNybyBlcnIxCisxMDA6CisJRVhfVEFCTEUoMTAwYiwuTGRvX2VycjEpCisJLmVuZG0KKworCS5tYWNybyBlcnIyCisyMDA6CisJRVhfVEFCTEUoMjAwYiwuTGRvX2VycjIpCisJLmVuZG0KKworCS5tYWNybyBlcnIzCiszMDA6CUVYX1RBQkxFKDMwMGIsLkxkb25lKQorCS5lbmRtCisKKy5MZG9fZXJyMjoKKwlsZAlyMjIsU1RLX1JFRyhSMjIpKHIxKQorCWxkCXIyMSxTVEtfUkVHKFIyMSkocjEpCisJbGQJcjIwLFNUS19SRUcoUjIwKShyMSkKKwlsZAlyMTksU1RLX1JFRyhSMTkpKHIxKQorCWxkCXIxOCxTVEtfUkVHKFIxOCkocjEpCisJbGQJcjE3LFNUS19SRUcoUjE3KShyMSkKKwlsZAlyMTYsU1RLX1JFRyhSMTYpKHIxKQorCWxkCXIxNSxTVEtfUkVHKFIxNSkocjEpCisJbGQJcjE0LFNUS19SRUcoUjE0KShyMSkKKwlhZGRpCXIxLHIxLFNUQUNLRlJBTUVTSVpFCisuTGRvX2VycjE6CisJLyogRG8gYSBieXRlIGJ5IGJ5dGUgY29weSB0byBnZXQgdGhlIGV4YWN0IHJlbWFpbmluZyBzaXplICovCisJbXRjdHIJcjcKKzQ2OgorZXJyMzsJbGJ6CXIwLDAocjQpCisJYWRkaQlyNCxyNCwxCitlcnIzOwlzdGIJcjAsMChyMykKKwlhZGRpCXIzLHIzLDEKKwliZG56CTQ2YgorCWxpCXIzLDAKKwlibHIKKworLkxkb25lOgorCW1mY3RyCXIzCisJYmxyCisKKworX0dMT0JBTChtZW1jcHlfbWNzYWZlKQorCW1yCXI3LHI1CisJY21wbGRpCXI1LDE2CisJYmx0CS5Mc2hvcnRfY29weQorCisuTGNvcHk6CisJLyogR2V0IHRoZSBzb3VyY2UgOEIgYWxpZ25lZCAqLworCW5lZwlyNixyNAorCW10b2NyZgkweDAxLHI2CisJY2xybGRpCXI2LHI2LCg2NC0zKQorCisJYmYJY3I3KjQrMywxZgorZXJyMTsJbGJ6CXIwLDAocjQpCisJYWRkaQlyNCxyNCwxCitlcnIxOwlzdGIJcjAsMChyMykKKwlhZGRpCXIzLHIzLDEKKwlzdWJpCXI3LHI3LDEKKworMToJYmYJY3I3KjQrMiwyZgorZXJyMTsJbGh6CXIwLDAocjQpCisJYWRkaQlyNCxyNCwyCitlcnIxOwlzdGgJcjAsMChyMykKKwlhZGRpCXIzLHIzLDIKKwlzdWJpCXI3LHI3LDIKKworMjoJYmYJY3I3KjQrMSwzZgorZXJyMTsJbHd6CXIwLDAocjQpCisJYWRkaQlyNCxyNCw0CitlcnIxOwlzdHcJcjAsMChyMykKKwlhZGRpCXIzLHIzLDQKKwlzdWJpCXI3LHI3LDQKKworMzoJc3ViCXI1LHI1LHI2CisJY21wbGRpCXI1LDEyOAorCisJbWZscglyMAorCXN0ZHUJcjEsLVNUQUNLRlJBTUVTSVpFKHIxKQorCXN0ZAlyMTQsU1RLX1JFRyhSMTQpKHIxKQorCXN0ZAlyMTUsU1RLX1JFRyhSMTUpKHIxKQorCXN0ZAlyMTYsU1RLX1JFRyhSMTYpKHIxKQorCXN0ZAlyMTcsU1RLX1JFRyhSMTcpKHIxKQorCXN0ZAlyMTgsU1RLX1JFRyhSMTgpKHIxKQorCXN0ZAlyMTksU1RLX1JFRyhSMTkpKHIxKQorCXN0ZAlyMjAsU1RLX1JFRyhSMjApKHIxKQorCXN0ZAlyMjEsU1RLX1JFRyhSMjEpKHIxKQorCXN0ZAlyMjIsU1RLX1JFRyhSMjIpKHIxKQorCXN0ZAlyMCxTVEFDS0ZSQU1FU0laRSsxNihyMSkKKworCWJsdAk1ZgorCXNyZGkJcjYscjUsNworCW10Y3RyCXI2CisKKwkvKiBOb3cgZG8gY2FjaGVsaW5lICgxMjhCKSBzaXplZCBsb2FkcyBhbmQgc3RvcmVzLiAqLworCS5hbGlnbgk1Cis0OgorZXJyMjsJbGQJcjAsMChyNCkKK2VycjI7CWxkCXI2LDgocjQpCitlcnIyOwlsZAlyOCwxNihyNCkKK2VycjI7CWxkCXI5LDI0KHI0KQorZXJyMjsJbGQJcjEwLDMyKHI0KQorZXJyMjsJbGQJcjExLDQwKHI0KQorZXJyMjsJbGQJcjEyLDQ4KHI0KQorZXJyMjsJbGQJcjE0LDU2KHI0KQorZXJyMjsJbGQJcjE1LDY0KHI0KQorZXJyMjsJbGQJcjE2LDcyKHI0KQorZXJyMjsJbGQJcjE3LDgwKHI0KQorZXJyMjsJbGQJcjE4LDg4KHI0KQorZXJyMjsJbGQJcjE5LDk2KHI0KQorZXJyMjsJbGQJcjIwLDEwNChyNCkKK2VycjI7CWxkCXIyMSwxMTIocjQpCitlcnIyOwlsZAlyMjIsMTIwKHI0KQorCWFkZGkJcjQscjQsMTI4CitlcnIyOwlzdGQJcjAsMChyMykKK2VycjI7CXN0ZAlyNiw4KHIzKQorZXJyMjsJc3RkCXI4LDE2KHIzKQorZXJyMjsJc3RkCXI5LDI0KHIzKQorZXJyMjsJc3RkCXIxMCwzMihyMykKK2VycjI7CXN0ZAlyMTEsNDAocjMpCitlcnIyOwlzdGQJcjEyLDQ4KHIzKQorZXJyMjsJc3RkCXIxNCw1NihyMykKK2VycjI7CXN0ZAlyMTUsNjQocjMpCitlcnIyOwlzdGQJcjE2LDcyKHIzKQorZXJyMjsJc3RkCXIxNyw4MChyMykKK2VycjI7CXN0ZAlyMTgsODgocjMpCitlcnIyOwlzdGQJcjE5LDk2KHIzKQorZXJyMjsJc3RkCXIyMCwxMDQocjMpCitlcnIyOwlzdGQJcjIxLDExMihyMykKK2VycjI7CXN0ZAlyMjIsMTIwKHIzKQorCWFkZGkJcjMscjMsMTI4CisJc3ViaQlyNyxyNywxMjgKKwliZG56CTRiCisKKwljbHJsZGkJcjUscjUsKDY0LTcpCisKKwkvKiBVcCB0byAxMjdCIHRvIGdvICovCis1OglzcmRpCXI2LHI1LDQKKwltdG9jcmYJMHgwMSxyNgorCis2OgliZgljcjcqNCsxLDdmCitlcnIyOwlsZAlyMCwwKHI0KQorZXJyMjsJbGQJcjYsOChyNCkKK2VycjI7CWxkCXI4LDE2KHI0KQorZXJyMjsJbGQJcjksMjQocjQpCitlcnIyOwlsZAlyMTAsMzIocjQpCitlcnIyOwlsZAlyMTEsNDAocjQpCitlcnIyOwlsZAlyMTIsNDgocjQpCitlcnIyOwlsZAlyMTQsNTYocjQpCisJYWRkaQlyNCxyNCw2NAorZXJyMjsJc3RkCXIwLDAocjMpCitlcnIyOwlzdGQJcjYsOChyMykKK2VycjI7CXN0ZAlyOCwxNihyMykKK2VycjI7CXN0ZAlyOSwyNChyMykKK2VycjI7CXN0ZAlyMTAsMzIocjMpCitlcnIyOwlzdGQJcjExLDQwKHIzKQorZXJyMjsJc3RkCXIxMiw0OChyMykKK2VycjI7CXN0ZAlyMTQsNTYocjMpCisJYWRkaQlyMyxyMyw2NAorCXN1YmkJcjcscjcsNjQKKworNzoJbGQJcjE0LFNUS19SRUcoUjE0KShyMSkKKwlsZAlyMTUsU1RLX1JFRyhSMTUpKHIxKQorCWxkCXIxNixTVEtfUkVHKFIxNikocjEpCisJbGQJcjE3LFNUS19SRUcoUjE3KShyMSkKKwlsZAlyMTgsU1RLX1JFRyhSMTgpKHIxKQorCWxkCXIxOSxTVEtfUkVHKFIxOSkocjEpCisJbGQJcjIwLFNUS19SRUcoUjIwKShyMSkKKwlsZAlyMjEsU1RLX1JFRyhSMjEpKHIxKQorCWxkCXIyMixTVEtfUkVHKFIyMikocjEpCisJYWRkaQlyMSxyMSxTVEFDS0ZSQU1FU0laRQorCisJLyogVXAgdG8gNjNCIHRvIGdvICovCisJYmYJY3I3KjQrMiw4ZgorZXJyMTsJbGQJcjAsMChyNCkKK2VycjE7CWxkCXI2LDgocjQpCitlcnIxOwlsZAlyOCwxNihyNCkKK2VycjE7CWxkCXI5LDI0KHI0KQorCWFkZGkJcjQscjQsMzIKK2VycjE7CXN0ZAlyMCwwKHIzKQorZXJyMTsJc3RkCXI2LDgocjMpCitlcnIxOwlzdGQJcjgsMTYocjMpCitlcnIxOwlzdGQJcjksMjQocjMpCisJYWRkaQlyMyxyMywzMgorCXN1YmkJcjcscjcsMzIKKworCS8qIFVwIHRvIDMxQiB0byBnbyAqLworODoJYmYJY3I3KjQrMyw5ZgorZXJyMTsJbGQJcjAsMChyNCkKK2VycjE7CWxkCXI2LDgocjQpCisJYWRkaQlyNCxyNCwxNgorZXJyMTsJc3RkCXIwLDAocjMpCitlcnIxOwlzdGQJcjYsOChyMykKKwlhZGRpCXIzLHIzLDE2CisJc3ViaQlyNyxyNywxNgorCis5OgljbHJsZGkJcjUscjUsKDY0LTQpCisKKwkvKiBVcCB0byAxNUIgdG8gZ28gKi8KKy5Mc2hvcnRfY29weToKKwltdG9jcmYJMHgwMSxyNQorCWJmCWNyNyo0KzAsMTJmCitlcnIxOwlsd3oJcjAsMChyNCkJLyogTGVzcyBjaGFuY2Ugb2YgYSByZWplY3Qgd2l0aCB3b3JkIG9wcyAqLworZXJyMTsJbHd6CXI2LDQocjQpCisJYWRkaQlyNCxyNCw4CitlcnIxOwlzdHcJcjAsMChyMykKK2VycjE7CXN0dwlyNiw0KHIzKQorCWFkZGkJcjMscjMsOAorCXN1YmkJcjcscjcsOAorCisxMjoJYmYJY3I3KjQrMSwxM2YKK2VycjE7CWx3eglyMCwwKHI0KQorCWFkZGkJcjQscjQsNAorZXJyMTsJc3R3CXIwLDAocjMpCisJYWRkaQlyMyxyMyw0CisJc3ViaQlyNyxyNyw0CisKKzEzOgliZgljcjcqNCsyLDE0ZgorZXJyMTsJbGh6CXIwLDAocjQpCisJYWRkaQlyNCxyNCwyCitlcnIxOwlzdGgJcjAsMChyMykKKwlhZGRpCXIzLHIzLDIKKwlzdWJpCXI3LHI3LDIKKworMTQ6CWJmCWNyNyo0KzMsMTVmCitlcnIxOwlsYnoJcjAsMChyNCkKK2VycjE7CXN0YglyMCwwKHIzKQorCisxNToJbGkJcjMsMAorCWJscgorCitFWFBPUlRfU1lNQk9MX0dQTChtZW1jcHlfbWNzYWZlKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9NYWtlZmlsZSBiL2FyY2gvcG93ZXJwYy9tbS9NYWtlZmlsZQppbmRleCAwZjQ5OWRiMy4uNWUxNDc5OCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL01ha2VmaWxlCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9NYWtlZmlsZQpAQCAtNyw3ICs3LDcgQEAKIAogb2JqLXkJCQkJOj0gZmF1bHQubyBtZW0ubyBwZ3RhYmxlLm8gbW1hcC5vIFwKIAkJCQkgICBpbml0XyQoQklUUykubyBwZ3RhYmxlXyQoQklUUykubyBcCi0JCQkJICAgcGd0YWJsZS1mcmFnLm8gXAorCQkJCSAgIHBndGFibGUtZnJhZy5vIGlvcmVtYXAubyBpb3JlbWFwXyQoQklUUykubyBcCiAJCQkJICAgaW5pdC1jb21tb24ubyBtbXVfY29udGV4dC5vIGRybWVtLm8KIG9iai0kKENPTkZJR19QUENfTU1VX05PSEFTSCkJKz0gbm9oYXNoLwogb2JqLSQoQ09ORklHX1BQQ19CT09LM1NfMzIpCSs9IGJvb2szczMyLwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL2Jvb2szczMyL21tdS5jIGIvYXJjaC9wb3dlcnBjL21tL2Jvb2szczMyL21tdS5jCmluZGV4IGUyNDlmYmYuLjg0ZDVmYWI5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vYm9vazNzMzIvbW11LmMKKysrIGIvYXJjaC9wb3dlcnBjL21tL2Jvb2szczMyL21tdS5jCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBpbnQgZmluZF9mcmVlX2JhdCh2b2lkKQogewogCWludCBiOwogCi0JaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSXzYwMSkpIHsKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfUFBDX0JPT0szU182MDEpKSB7CiAJCWZvciAoYiA9IDA7IGIgPCA0OyBiKyspIHsKIAkJCXN0cnVjdCBwcGNfYmF0ICpiYXQgPSBCQVRTW2JdOwogCkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIGludCBmaW5kX2ZyZWVfYmF0KHZvaWQpCiAgKi8KIHN0YXRpYyB1bnNpZ25lZCBpbnQgYmxvY2tfc2l6ZSh1bnNpZ25lZCBsb25nIGJhc2UsIHVuc2lnbmVkIGxvbmcgdG9wKQogewotCXVuc2lnbmVkIGludCBtYXhfc2l6ZSA9IChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl82MDEpID8gOCA6IDI1NikgPDwgMjA7CisJdW5zaWduZWQgaW50IG1heF9zaXplID0gSVNfRU5BQkxFRChDT05GSUdfUFBDX0JPT0szU182MDEpID8gU1pfOE0gOiBTWl8yNTZNOwogCXVuc2lnbmVkIGludCBiYXNlX3NoaWZ0ID0gKGZmcyhiYXNlKSAtIDEpICYgMzE7CiAJdW5zaWduZWQgaW50IGJsb2NrX3NoaWZ0ID0gKGZscyh0b3AgLSBiYXNlKSAtIDEpICYgMzE7CiAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIG1tdV9tYXJrX2luaXRtZW1fbngodm9pZCkKIAl1bnNpZ25lZCBsb25nIHRvcCA9ICh1bnNpZ25lZCBsb25nKV9ldGV4dCAtIFBBR0VfT0ZGU0VUOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAotCWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl82MDEpKQorCWlmIChJU19FTkFCTEVEKENPTkZJR19QUENfQk9PSzNTXzYwMSkpCiAJCXJldHVybjsKIAogCWZvciAoaSA9IDA7IGkgPCBuYiAtIDEgJiYgYmFzZSA8IHRvcCAmJiB0b3AgLSBiYXNlID4gKDEyOCA8PCAxMCk7KSB7CkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBtbXVfbWFya19yb2RhdGFfcm8odm9pZCkKIAlpbnQgbmIgPSBtbXVfaGFzX2ZlYXR1cmUoTU1VX0ZUUl9VU0VfSElHSF9CQVRTKSA/IDggOiA0OwogCWludCBpOwogCi0JaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSXzYwMSkpCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BQQ19CT09LM1NfNjAxKSkKIAkJcmV0dXJuOwogCiAJZm9yIChpID0gMDsgaSA8IG5iOyBpKyspIHsKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lkIF9faW5pdCBzZXRiYXQoaW50IGluZGV4LCB1bnNpZ25lZCBsb25nIHZpcnQsIHBoeXNfYWRkcl90IHBoeXMsCiAJCWZsYWdzICY9IH5fUEFHRV9DT0hFUkVOVDsKIAogCWJsID0gKHNpemUgPj4gMTcpIC0gMTsKLQlpZiAoUFZSX1ZFUihtZnNwcihTUFJOX1BWUikpICE9IDEpIHsKKwlpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1BQQ19CT09LM1NfNjAxKSkgewogCQkvKiA2MDMsIDYwNCwgZXRjLiAqLwogCQkvKiBEbyBEQkFUIGZpcnN0ICovCiAJCXdpbWd4cHAgPSBmbGFncyAmIChfUEFHRV9XUklURVRIUlUgfCBfUEFHRV9OT19DQUNIRQpAQCAtMjk3LDggKzI5Nyw3IEBAIHZvaWQgX19pbml0IHNldGJhdChpbnQgaW5kZXgsIHVuc2lnbmVkIGxvbmcgdmlydCwgcGh5c19hZGRyX3QgcGh5cywKIC8qCiAgKiBQcmVsb2FkIGEgdHJhbnNsYXRpb24gaW4gdGhlIGhhc2ggdGFibGUKICAqLwotdm9pZCBoYXNoX3ByZWxvYWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgZWEsCi0JCSAgYm9vbCBpc19leGVjLCB1bnNpZ25lZCBsb25nIHRyYXApCit2b2lkIGhhc2hfcHJlbG9hZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBlYSkKIHsKIAlwbWRfdCAqcG1kOwogCkBAIC0zMTAsNiArMzA5LDM5IEBAIHZvaWQgaGFzaF9wcmVsb2FkKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGVhLAogfQogCiAvKgorICogVGhpcyBpcyBjYWxsZWQgYXQgdGhlIGVuZCBvZiBoYW5kbGluZyBhIHVzZXIgcGFnZSBmYXVsdCwgd2hlbiB0aGUKKyAqIGZhdWx0IGhhcyBiZWVuIGhhbmRsZWQgYnkgdXBkYXRpbmcgYSBQVEUgaW4gdGhlIGxpbnV4IHBhZ2UgdGFibGVzLgorICogV2UgdXNlIGl0IHRvIHByZWxvYWQgYW4gSFBURSBpbnRvIHRoZSBoYXNoIHRhYmxlIGNvcnJlc3BvbmRpbmcgdG8KKyAqIHRoZSB1cGRhdGVkIGxpbnV4IFBURS4KKyAqCisgKiBUaGlzIG11c3QgYWx3YXlzIGJlIGNhbGxlZCB3aXRoIHRoZSBwdGUgbG9jayBoZWxkLgorICovCit2b2lkIHVwZGF0ZV9tbXVfY2FjaGUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKKwkJICAgICAgcHRlX3QgKnB0ZXApCit7CisJaWYgKCFtbXVfaGFzX2ZlYXR1cmUoTU1VX0ZUUl9IUFRFX1RBQkxFKSkKKwkJcmV0dXJuOworCS8qCisJICogV2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBfUEFHRV9QUkVTRU5UIGhlcmUgYmVjYXVzZSB3ZSBhcmUKKwkgKiBjYWxsZWQgd2l0aCBlaXRoZXIgbW0tPnBhZ2VfdGFibGVfbG9jayBoZWxkIG9yIHB0bCBsb2NrIGhlbGQKKwkgKi8KKworCS8qIFdlIG9ubHkgd2FudCBIUFRFcyBmb3IgbGludXggUFRFcyB0aGF0IGhhdmUgX1BBR0VfQUNDRVNTRUQgc2V0ICovCisJaWYgKCFwdGVfeW91bmcoKnB0ZXApIHx8IGFkZHJlc3MgPj0gVEFTS19TSVpFKQorCQlyZXR1cm47CisKKwkvKiBXZSBoYXZlIHRvIHRlc3QgZm9yIHJlZ3MgTlVMTCBzaW5jZSBpbml0IHdpbGwgZ2V0IGhlcmUgZmlyc3QgdGhpbmcgYXQgYm9vdCAqLworCWlmICghY3VycmVudC0+dGhyZWFkLnJlZ3MpCisJCXJldHVybjsKKworCS8qIFdlIGFsc28gYXZvaWQgZmlsbGluZyB0aGUgaGFzaCBpZiBub3QgY29taW5nIGZyb20gYSBmYXVsdCAqLworCWlmIChUUkFQKGN1cnJlbnQtPnRocmVhZC5yZWdzKSAhPSAweDMwMCAmJiBUUkFQKGN1cnJlbnQtPnRocmVhZC5yZWdzKSAhPSAweDQwMCkKKwkJcmV0dXJuOworCisJaGFzaF9wcmVsb2FkKHZtYS0+dm1fbW0sIGFkZHJlc3MpOworfQorCisvKgogICogSW5pdGlhbGl6ZSB0aGUgaGFzaCB0YWJsZSBhbmQgcGF0Y2ggdGhlIGluc3RydWN0aW9ucyBpbiBoYXNodGFibGUuUy4KICAqLwogdm9pZCBfX2luaXQgTU1VX2luaXRfaHcodm9pZCkKQEAgLTM1OCw2ICszOTAsMTUgQEAgdm9pZCBfX2luaXQgTU1VX2luaXRfaHcodm9pZCkKIAloYXNoX21iMiA9IGhhc2hfbWIgPSAzMiAtIExHX0hQVEVHX1NJWkUgLSBsZ19uX2hwdGVnOwogCWlmIChsZ19uX2hwdGVnID4gMTYpCiAJCWhhc2hfbWIyID0gMTYgLSBMR19IUFRFR19TSVpFOworCisJLyoKKwkgKiBXaGVuIEtBU0FOIGlzIHNlbGVjdGVkLCB0aGVyZSBpcyBhbHJlYWR5IGFuIGVhcmx5IHRlbXBvcmFyeSBoYXNoCisJICogdGFibGUgYW5kIHRoZSBzd2l0Y2ggdG8gdGhlIGZpbmFsIGhhc2ggdGFibGUgaXMgZG9uZSBsYXRlci4KKwkgKi8KKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfS0FTQU4pKQorCQlyZXR1cm47CisKKwlNTVVfaW5pdF9od19wYXRjaCgpOwogfQogCiB2b2lkIF9faW5pdCBNTVVfaW5pdF9od19wYXRjaCh2b2lkKQpAQCAtNDAwLDcgKzQ0MSw3IEBAIHZvaWQgc2V0dXBfaW5pdGlhbF9tZW1vcnlfbGltaXQocGh5c19hZGRyX3QgZmlyc3RfbWVtYmxvY2tfYmFzZSwKIAlCVUdfT04oZmlyc3RfbWVtYmxvY2tfYmFzZSAhPSAwKTsKIAogCS8qIDYwMSBjYW4gb25seSBhY2Nlc3MgMTZNQiBhdCB0aGUgbW9tZW50ICovCi0JaWYgKFBWUl9WRVIobWZzcHIoU1BSTl9QVlIpKSA9PSAxKQorCWlmIChJU19FTkFCTEVEKENPTkZJR19QUENfQk9PSzNTXzYwMSkpCiAJCW1lbWJsb2NrX3NldF9jdXJyZW50X2xpbWl0KG1pbl90KHU2NCwgZmlyc3RfbWVtYmxvY2tfc2l6ZSwgMHgwMTAwMDAwMCkpOwogCWVsc2UgLyogQW55dGhpbmcgZWxzZSBoYXMgMjU2TSBtYXBwZWQgKi8KIAkJbWVtYmxvY2tfc2V0X2N1cnJlbnRfbGltaXQobWluX3QodTY0LCBmaXJzdF9tZW1ibG9ja19zaXplLCAweDEwMDAwMDAwKSk7CkBAIC00MTgsOSArNDU5LDYgQEAgdm9pZCBfX2luaXQgc2V0dXBfa3VlcChib29sIGRpc2FibGVkKQogewogCXByX2luZm8oIkFjdGl2YXRpbmcgS2VybmVsIFVzZXJzcGFjZSBFeGVjdXRpb24gUHJldmVudGlvblxuIik7CiAKLQlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfNjAxKSkKLQkJcHJfd2FybigiS1VFUCBpcyBub3Qgd29ya2luZyBvbiBwb3dlcnBjIDYwMSAoTm8gTlggYml0IGluIFNlZyBSZWdzKVxuIik7Ci0KIAlpZiAoZGlzYWJsZWQpCiAJCXByX3dhcm4oIktVRVAgY2Fubm90IGJlIGRpc2FibGVkIHlldCBvbiA2eHggd2hlbiBjb21waWxlZCBpblxuIik7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvaGFzaF9uYXRpdmUuYyBiL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9oYXNoX25hdGl2ZS5jCmluZGV4IDkwYWI0ZjMuLjUyM2U0MmUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9oYXNoX25hdGl2ZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9oYXNoX25hdGl2ZS5jCkBAIC0xOTcsOSArMTk3LDMyIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAgX19fdGxiaWUodW5zaWduZWQgbG9uZyB2cG4sIGludCBwc2l6ZSwKIAlyZXR1cm4gdmE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBmaXh1cF90bGJpZSh1bnNpZ25lZCBsb25nIHZwbiwgaW50IHBzaXplLCBpbnQgYXBzaXplLCBpbnQgc3NpemUpCitzdGF0aWMgaW5saW5lIHZvaWQgZml4dXBfdGxiaWVfdnBuKHVuc2lnbmVkIGxvbmcgdnBuLCBpbnQgcHNpemUsCisJCQkJICAgaW50IGFwc2l6ZSwgaW50IHNzaXplKQogewotCWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9QOV9UTEJJRV9CVUcpKSB7CisJaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSX1A5X1RMQklFX0VSQVRfQlVHKSkgeworCQkvKiBSYWRpeCBmbHVzaCBmb3IgYSBoYXNoIGd1ZXN0ICovCisKKwkJdW5zaWduZWQgbG9uZyByYixycyxwcnMscixyaWM7CisKKwkJcmIgPSBQUENfQklUKDUyKTsgLyogSVMgPSAyICovCisJCXJzID0gMDsgIC8qIGxwaWQgPSAwICovCisJCXBycyA9IDA7IC8qIHBhcnRpdGlvbiBzY29wZWQgKi8KKwkJciA9IDE7ICAgLyogcmFkaXggZm9ybWF0ICovCisJCXJpYyA9IDA7IC8qIFJJQ19GTFNVSF9UTEIgKi8KKworCQkvKgorCQkgKiBOZWVkIHRoZSBleHRyYSBwdGVzeW5jIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndAorCQkgKiByZS1vcmRlciB0aGUgdGxiaWUKKwkJICovCisJCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKKwkJYXNtIHZvbGF0aWxlKFBQQ19UTEJJRV81KCUwLCAlNCwgJTMsICUyLCAlMSkKKwkJCSAgICAgOiA6ICJyIihyYiksICJpIihyKSwgImkiKHBycyksCisJCQkgICAgICAgImkiKHJpYyksICJyIihycykgOiAibWVtb3J5Iik7CisJfQorCisKKwlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfUDlfVExCSUVfU1RRX0JVRykpIHsKIAkJLyogTmVlZCB0aGUgZXh0cmEgcHRlc3luYyB0byBlbnN1cmUgd2UgZG9uJ3QgcmVvcmRlciB0bGJpZSovCiAJCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKIAkJX19fdGxiaWUodnBuLCBwc2l6ZSwgYXBzaXplLCBzc2l6ZSk7CkBAIC0yODMsNyArMzA2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHRsYmllKHVuc2lnbmVkIGxvbmcgdnBuLCBpbnQgcHNpemUsIGludCBhcHNpemUsCiAJCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKIAl9IGVsc2UgewogCQlfX3RsYmllKHZwbiwgcHNpemUsIGFwc2l6ZSwgc3NpemUpOwotCQlmaXh1cF90bGJpZSh2cG4sIHBzaXplLCBhcHNpemUsIHNzaXplKTsKKwkJZml4dXBfdGxiaWVfdnBuKHZwbiwgcHNpemUsIGFwc2l6ZSwgc3NpemUpOwogCQlhc20gdm9sYXRpbGUoImVpZWlvOyB0bGJzeW5jOyBwdGVzeW5jIjogOiA6Im1lbW9yeSIpOwogCX0KIAlpZiAobG9ja190bGJpZSAmJiAhdXNlX2xvY2FsKQpAQCAtODU2LDcgKzg3OSw3IEBAIHN0YXRpYyB2b2lkIG5hdGl2ZV9mbHVzaF9oYXNoX3JhbmdlKHVuc2lnbmVkIGxvbmcgbnVtYmVyLCBpbnQgbG9jYWwpCiAJCS8qCiAJCSAqIEp1c3QgZG8gb25lIG1vcmUgd2l0aCB0aGUgbGFzdCB1c2VkIHZhbHVlcy4KIAkJICovCi0JCWZpeHVwX3RsYmllKHZwbiwgcHNpemUsIHBzaXplLCBzc2l6ZSk7CisJCWZpeHVwX3RsYmllX3Zwbih2cG4sIHBzaXplLCBwc2l6ZSwgc3NpemUpOwogCQlhc20gdm9sYXRpbGUoImVpZWlvOyB0bGJzeW5jOyBwdGVzeW5jIjo6OiJtZW1vcnkiKTsKIAogCQlpZiAobG9ja190bGJpZSkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9oYXNoX3V0aWxzLmMgYi9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvaGFzaF91dGlscy5jCmluZGV4IGI4YWQxNGIuLjZjMTIzNzYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9oYXNoX3V0aWxzLmMKKysrIGIvYXJjaC9wb3dlcnBjL21tL2Jvb2szczY0L2hhc2hfdXRpbHMuYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2xpYmZkdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BrZXlzLmg+CiAjaW5jbHVkZSA8bGludXgvaHVnZXRsYi5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdS5oPgogCiAjaW5jbHVkZSA8YXNtL2RlYnVnZnMuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CkBAIC02MSw2ICs2Miw3IEBACiAjaW5jbHVkZSA8YXNtL3BzMy5oPgogI2luY2x1ZGUgPGFzbS9wdGUtd2Fsay5oPgogI2luY2x1ZGUgPGFzbS9hc20tcHJvdG90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS91bHRyYXZpc29yLmg+CiAKICNpbmNsdWRlIDxtbS9tbXVfZGVjbC5oPgogCkBAIC0yNzEsMTAgKzI3Myw2IEBAIGludCBodGFiX2JvbHRfbWFwcGluZyh1bnNpZ25lZCBsb25nIHZzdGFydCwgdW5zaWduZWQgbG9uZyB2ZW5kLAogCQlpZiAob3ZlcmxhcHNfa2VybmVsX3RleHQodmFkZHIsIHZhZGRyICsgc3RlcCkpCiAJCQl0cHJvdCAmPSB+SFBURV9SX047CiAKLQkJLyogTWFrZSBrdm0gZ3Vlc3QgdHJhbXBvbGluZXMgZXhlY3V0YWJsZSAqLwotCQlpZiAob3ZlcmxhcHNfa3ZtX3RtcCh2YWRkciwgdmFkZHIgKyBzdGVwKSkKLQkJCXRwcm90ICY9IH5IUFRFX1JfTjsKLQogCQkvKgogCQkgKiBJZiByZWxvY2F0YWJsZSwgY2hlY2sgaWYgaXQgb3ZlcmxhcHMgaW50ZXJydXB0IHZlY3RvcnMgdGhhdAogCQkgKiBhcmUgY29waWVkIGRvd24gdG8gcmVhbCAwLiBGb3IgcmVsb2NhdGFibGUga2VybmVsCkBAIC04MjMsNyArODIxLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGhhc2hfaW5pdF9wYXJ0aXRpb25fdGFibGUocGh5c19hZGRyX3QgaGFzaF90YWJsZSwKIAkgKiBGb3Igbm93LCBVUFJUIGlzIDAgYW5kIHdlIGhhdmUgbm8gc2VnbWVudCB0YWJsZS4KIAkgKi8KIAlodGFiX3NpemUgPSAgX19pbG9nMihodGFiX3NpemUpIC0gMTg7Ci0JbW11X3BhcnRpdGlvbl90YWJsZV9zZXRfZW50cnkoMCwgaGFzaF90YWJsZSB8IGh0YWJfc2l6ZSwgMCk7CisJbW11X3BhcnRpdGlvbl90YWJsZV9zZXRfZW50cnkoMCwgaGFzaF90YWJsZSB8IGh0YWJfc2l6ZSwgMCwgZmFsc2UpOwogCXByX2luZm8oIlBhcnRpdGlvbiB0YWJsZSAlcFxuIiwgcGFydGl0aW9uX3RiKTsKIH0KIApAQCAtODU3LDEyICs4NTUsNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaHRhYl9pbml0aWFsaXplKHZvaWQpCiAJCS8qIFVzaW5nIGEgaHlwZXJ2aXNvciB3aGljaCBvd25zIHRoZSBodGFiICovCiAJCWh0YWJfYWRkcmVzcyA9IE5VTEw7CiAJCV9TRFIxID0gMDsgCi0JCS8qCi0JCSAqIE9uIFBPV0VSOSwgd2UgbmVlZCB0byBkbyBhIEhfUkVHSVNURVJfUFJPQ19UQkwgaGNhbGwKLQkJICogdG8gaW5mb3JtIHRoZSBoeXBlcnZpc29yIHRoYXQgd2Ugd2lzaCB0byB1c2UgdGhlIEhQVC4KLQkJICovCi0JCWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9BUkNIXzMwMCkpCi0JCQlyZWdpc3Rlcl9wcm9jZXNzX3RhYmxlKDAsIDAsIDApOwogI2lmZGVmIENPTkZJR19GQV9EVU1QCiAJCS8qCiAJCSAqIElmIGZpcm13YXJlIGFzc2lzdGVkIGR1bXAgaXMgYWN0aXZlIGZpcm13YXJlIHByZXNlcnZlcwpAQCAtMTA3NSw4ICsxMDY3LDggQEAgdm9pZCBoYXNoX19lYXJseV9pbml0X21tdV9zZWNvbmRhcnkodm9pZCkKIAkJaWYgKCFjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9BUkNIXzMwMCkpCiAJCQltdHNwcihTUFJOX1NEUjEsIF9TRFIxKTsKIAkJZWxzZQotCQkJbXRzcHIoU1BSTl9QVENSLAotCQkJICAgICAgX19wYShwYXJ0aXRpb25fdGIpIHwgKFBBVEJfU0laRV9TSElGVCAtIDEyKSk7CisJCQlzZXRfcHRjcl93aGVuX25vX3V2KF9fcGEocGFydGl0aW9uX3RiKSB8CisJCQkJCSAgICAoUEFUQl9TSVpFX1NISUZUIC0gMTIpKTsKIAl9CiAJLyogSW5pdGlhbGl6ZSBTTEIgKi8KIAlzbGJfaW5pdGlhbGl6ZSgpOwpAQCAtMTQ2MCw4ICsxNDUyLDggQEAgaW50IGhhc2hfcGFnZSh1bnNpZ25lZCBsb25nIGVhLCB1bnNpZ25lZCBsb25nIGFjY2VzcywgdW5zaWduZWQgbG9uZyB0cmFwLAogfQogRVhQT1JUX1NZTUJPTF9HUEwoaGFzaF9wYWdlKTsKIAotaW50IF9faGFzaF9wYWdlKHVuc2lnbmVkIGxvbmcgZWEsIHVuc2lnbmVkIGxvbmcgbXNyLCB1bnNpZ25lZCBsb25nIHRyYXAsCi0JCXVuc2lnbmVkIGxvbmcgZHNpc3IpCitpbnQgX19oYXNoX3BhZ2UodW5zaWduZWQgbG9uZyB0cmFwLCB1bnNpZ25lZCBsb25nIGVhLCB1bnNpZ25lZCBsb25nIGRzaXNyLAorCQl1bnNpZ25lZCBsb25nIG1zcikKIHsKIAl1bnNpZ25lZCBsb25nIGFjY2VzcyA9IF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9SRUFEOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSAwOwpAQCAtMTUxOCw4ICsxNTEwLDggQEAgc3RhdGljIGJvb2wgc2hvdWxkX2hhc2hfcHJlbG9hZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBlYSkKIH0KICNlbmRpZgogCi12b2lkIGhhc2hfcHJlbG9hZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBlYSwKLQkJICBib29sIGlzX2V4ZWMsIHVuc2lnbmVkIGxvbmcgdHJhcCkKK3N0YXRpYyB2b2lkIGhhc2hfcHJlbG9hZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBlYSwKKwkJCSBib29sIGlzX2V4ZWMsIHVuc2lnbmVkIGxvbmcgdHJhcCkKIHsKIAlpbnQgaHVnZXBhZ2Vfc2hpZnQ7CiAJdW5zaWduZWQgbG9uZyB2c2lkOwpAQCAtMTU5OSw2ICsxNTkxLDU3IEBAIHZvaWQgaGFzaF9wcmVsb2FkKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGVhLAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAorLyoKKyAqIFRoaXMgaXMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgaGFuZGxpbmcgYSB1c2VyIHBhZ2UgZmF1bHQsIHdoZW4gdGhlCisgKiBmYXVsdCBoYXMgYmVlbiBoYW5kbGVkIGJ5IHVwZGF0aW5nIGEgUFRFIGluIHRoZSBsaW51eCBwYWdlIHRhYmxlcy4KKyAqIFdlIHVzZSBpdCB0byBwcmVsb2FkIGFuIEhQVEUgaW50byB0aGUgaGFzaCB0YWJsZSBjb3JyZXNwb25kaW5nIHRvCisgKiB0aGUgdXBkYXRlZCBsaW51eCBQVEUuCisgKgorICogVGhpcyBtdXN0IGFsd2F5cyBiZSBjYWxsZWQgd2l0aCB0aGUgcHRlIGxvY2sgaGVsZC4KKyAqLwordm9pZCB1cGRhdGVfbW11X2NhY2hlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCisJCSAgICAgIHB0ZV90ICpwdGVwKQoreworCS8qCisJICogV2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBfUEFHRV9QUkVTRU5UIGhlcmUgYmVjYXVzZSB3ZSBhcmUKKwkgKiBjYWxsZWQgd2l0aCBlaXRoZXIgbW0tPnBhZ2VfdGFibGVfbG9jayBoZWxkIG9yIHB0bCBsb2NrIGhlbGQKKwkgKi8KKwl1bnNpZ25lZCBsb25nIHRyYXA7CisJYm9vbCBpc19leGVjOworCisJaWYgKHJhZGl4X2VuYWJsZWQoKSkgeworCQlwcmVmZXRjaCgodm9pZCAqKWFkZHJlc3MpOworCQlyZXR1cm47CisJfQorCisJLyogV2Ugb25seSB3YW50IEhQVEVzIGZvciBsaW51eCBQVEVzIHRoYXQgaGF2ZSBfUEFHRV9BQ0NFU1NFRCBzZXQgKi8KKwlpZiAoIXB0ZV95b3VuZygqcHRlcCkgfHwgYWRkcmVzcyA+PSBUQVNLX1NJWkUpCisJCXJldHVybjsKKworCS8qCisJICogV2UgdHJ5IHRvIGZpZ3VyZSBvdXQgaWYgd2UgYXJlIGNvbWluZyBmcm9tIGFuIGluc3RydWN0aW9uCisJICogYWNjZXNzIGZhdWx0IGFuZCBwYXNzIHRoYXQgZG93biB0byBfX2hhc2hfcGFnZSBzbyB3ZSBhdm9pZAorCSAqIGRvdWJsZS1mYXVsdGluZyBvbiBleGVjdXRpb24gb2YgZnJlc2ggdGV4dC4gV2UgaGF2ZSB0byB0ZXN0CisJICogZm9yIHJlZ3MgTlVMTCBzaW5jZSBpbml0IHdpbGwgZ2V0IGhlcmUgZmlyc3QgdGhpbmcgYXQgYm9vdC4KKwkgKgorCSAqIFdlIGFsc28gYXZvaWQgZmlsbGluZyB0aGUgaGFzaCBpZiBub3QgY29taW5nIGZyb20gYSBmYXVsdC4KKwkgKi8KKworCXRyYXAgPSBjdXJyZW50LT50aHJlYWQucmVncyA/IFRSQVAoY3VycmVudC0+dGhyZWFkLnJlZ3MpIDogMFVMOworCXN3aXRjaCAodHJhcCkgeworCWNhc2UgMHgzMDA6CisJCWlzX2V4ZWMgPSBmYWxzZTsKKwkJYnJlYWs7CisJY2FzZSAweDQwMDoKKwkJaXNfZXhlYyA9IHRydWU7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybjsKKwl9CisKKwloYXNoX3ByZWxvYWQodm1hLT52bV9tbSwgYWRkcmVzcywgaXNfZXhlYywgdHJhcCk7Cit9CisKICNpZmRlZiBDT05GSUdfUFBDX01FTV9LRVlTCiAvKgogICogUmV0dXJuIHRoZSBwcm90ZWN0aW9uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGFkZHJlc3MgYW5kIHRoZQpAQCAtMTcwNSw3ICsxNzQ4LDcgQEAgdm9pZCBmbHVzaF9oYXNoX2h1Z2VwYWdlKHVuc2lnbmVkIGxvbmcgdnNpZCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCS8qCiAJICogSUYgd2UgdHJ5IHRvIGRvIGEgSFVHRSBQVEUgdXBkYXRlIGFmdGVyIGEgd2l0aGRyYXcgaXMgZG9uZS4KIAkgKiB3ZSB3aWxsIGZpbmQgdGhlIGJlbG93IE5VTEwuIFRoaXMgaGFwcGVucyB3aGVuIHdlIGRvCi0JICogc3BsaXRfaHVnZV9wYWdlX3BtZAorCSAqIHNwbGl0X2h1Z2VfcG1kCiAJICovCiAJaWYgKCFocHRlX3Nsb3RfYXJyYXkpCiAJCXJldHVybjsKQEAgLTE5MzEsMTAgKzE5NzQsMTYgQEAgc3RhdGljIGludCBocHRfb3JkZXJfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQogCiBzdGF0aWMgaW50IGhwdF9vcmRlcl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIHsKKwlpbnQgcmV0OworCiAJaWYgKCFtbXVfaGFzaF9vcHMucmVzaXplX2hwdCkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlyZXR1cm4gbW11X2hhc2hfb3BzLnJlc2l6ZV9ocHQodmFsKTsKKwljcHVzX3JlYWRfbG9jaygpOworCXJldCA9IG1tdV9oYXNoX29wcy5yZXNpemVfaHB0KHZhbCk7CisJY3B1c19yZWFkX3VubG9jaygpOworCisJcmV0dXJuIHJldDsKIH0KIAogREVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfaHB0X29yZGVyLCBocHRfb3JkZXJfZ2V0LCBocHRfb3JkZXJfc2V0LCAiJWxsdVxuIik7CkBAIC0xOTU3LDcgKzIwMDYsNCBAQCB2b2lkIF9faW5pdCBwcmludF9zeXN0ZW1faGFzaF9pbmZvKHZvaWQpCiAKIAlpZiAoaHRhYl9oYXNoX21hc2spCiAJCXByX2luZm8oImh0YWJfaGFzaF9tYXNrICAgID0gMHglbHhcbiIsIGh0YWJfaGFzaF9tYXNrKTsKLQlwcl9pbmZvKCJrZXJuZWwgdm1hbGxvYyBzdGFydCAgID0gMHglbHhcbiIsIEtFUk5fVklSVF9TVEFSVCk7Ci0JcHJfaW5mbygia2VybmVsIElPIHN0YXJ0ICAgICAgICA9IDB4JWx4XG4iLCBLRVJOX0lPX1NUQVJUKTsKLQlwcl9pbmZvKCJrZXJuZWwgdm1lbW1hcCBzdGFydCAgID0gMHglbHhcbiIsICh1bnNpZ25lZCBsb25nKXZtZW1tYXApOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL2Jvb2szczY0L2lvbW11X2FwaS5jIGIvYXJjaC9wb3dlcnBjL21tL2Jvb2szczY0L2lvbW11X2FwaS5jCmluZGV4IGIwNTZjYWUuLjU2Y2M4NDUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9pb21tdV9hcGkuYworKysgYi9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvaW9tbXVfYXBpLmMKQEAgLTEyOSwxMSArMTI5LDggQEAgc3RhdGljIGxvbmcgbW1faW9tbXVfZG9fYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgdWEsCiAJCSAqIEFsbG93IHRvIHVzZSBsYXJnZXIgdGhhbiA2NGsgSU9NTVUgcGFnZXMuIE9ubHkgZG8gdGhhdAogCQkgKiBpZiB3ZSBhcmUgYmFja2VkIGJ5IGh1Z2V0bGIuCiAJCSAqLwotCQlpZiAoKG1lbS0+cGFnZXNoaWZ0ID4gUEFHRV9TSElGVCkgJiYgUGFnZUh1Z2UocGFnZSkpIHsKLQkJCXN0cnVjdCBwYWdlICpoZWFkID0gY29tcG91bmRfaGVhZChwYWdlKTsKLQotCQkJcGFnZXNoaWZ0ID0gY29tcG91bmRfb3JkZXIoaGVhZCkgKyBQQUdFX1NISUZUOwotCQl9CisJCWlmICgobWVtLT5wYWdlc2hpZnQgPiBQQUdFX1NISUZUKSAmJiBQYWdlSHVnZShwYWdlKSkKKwkJCXBhZ2VzaGlmdCA9IHBhZ2Vfc2hpZnQoY29tcG91bmRfaGVhZChwYWdlKSk7CiAJCW1lbS0+cGFnZXNoaWZ0ID0gbWluKG1lbS0+cGFnZXNoaWZ0LCBwYWdlc2hpZnQpOwogCQkvKgogCQkgKiBXZSBkb24ndCBuZWVkIHN0cnVjdCBwYWdlIHJlZmVyZW5jZSBhbnkgbW9yZSwgc3dpdGNoCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvbW11X2NvbnRleHQuYyBiL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9tbXVfY29udGV4dC5jCmluZGV4IDJkMGNiNWIuLjBiYTMwYjggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9tbXVfY29udGV4dC5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9tbXVfY29udGV4dC5jCkBAIC0yNTYsOCArMjU2LDIxIEBAIHZvaWQgZGVzdHJveV9jb250ZXh0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogI2lmZGVmIENPTkZJR19TUEFQUl9UQ0VfSU9NTVUKIAlXQVJOX09OX09OQ0UoIWxpc3RfZW1wdHkoJm1tLT5jb250ZXh0LmlvbW11X2dyb3VwX21lbV9saXN0KSk7CiAjZW5kaWYKKwkvKgorCSAqIEZvciB0YXNrcyB3aGljaCB3ZXJlIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCB3ZSBlbmQgdXAgY2FsbGluZworCSAqIGFyY2hfZXhpdF9tbWFwKCkgd2hpY2ggY2xlYXJzIHRoZSBwcm9jZXNzIHRhYmxlIGVudHJ5LiBBbmQKKwkgKiBhcmNoX2V4aXRfbW1hcCgpIGlzIGNhbGxlZCBiZWZvcmUgdGhlIHJlcXVpcmVkIGZ1bGxtbSBUTEIgZmx1c2gKKwkgKiB3aGljaCBkb2VzIGEgUklDPTIgZmx1c2guIEhlbmNlIGZvciBhbiBpbml0aWFsaXplZCB0YXNrLCB3ZSBkbyBjbGVhcgorCSAqIGFueSBjYWNoZWQgcHJvY2VzcyB0YWJsZSBlbnRyaWVzLgorCSAqCisJICogVGhlIGNvbmRpdGlvbiBiZWxvdyBoYW5kbGVzIHRoZSBlcnJvciBjYXNlIGR1cmluZyB0YXNrIGluaXQuIFdlIGhhdmUKKwkgKiBzZXQgdGhlIHByb2Nlc3MgdGFibGUgZW50cnkgZWFybHkgYW5kIGlmIHdlIGZhaWwgYSB0YXNrCisJICogaW5pdGlhbGl6YXRpb24sIHdlIG5lZWQgdG8gZW5zdXJlIHRoZSBwcm9jZXNzIHRhYmxlIGVudHJ5IGlzIHplcm9lZC4KKwkgKiBXZSBuZWVkIG5vdCB3b3JyeSBhYm91dCBwcm9jZXNzIHRhYmxlIGVudHJ5IGNhY2hlcyBiZWNhdXNlIHRoZSB0YXNrCisJICogbmV2ZXIgcmFuIHdpdGggdGhlIFBJRCB2YWx1ZS4KKwkgKi8KIAlpZiAocmFkaXhfZW5hYmxlZCgpKQotCQlXQVJOX09OKHByb2Nlc3NfdGJbbW0tPmNvbnRleHQuaWRdLnBydGIwICE9IDApOworCQlwcm9jZXNzX3RiW21tLT5jb250ZXh0LmlkXS5wcnRiMCA9IDA7CiAJZWxzZQogCQlzdWJwYWdlX3Byb3RfZnJlZShtbSk7CiAJZGVzdHJveV9jb250ZXh0cygmbW0tPmNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL2Jvb2szczY0L3BndGFibGUuYyBiL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9wZ3RhYmxlLmMKaW5kZXggN2QwZTBkMC4uNzU0ODNiNCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL2Jvb2szczY0L3BndGFibGUuYworKysgYi9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvcGd0YWJsZS5jCkBAIC04LDEwICs4LDEzIEBACiAjaW5jbHVkZSA8bGludXgvbWVtYmxvY2suaD4KICNpbmNsdWRlIDxtaXNjL2N4bC1iYXNlLmg+CiAKKyNpbmNsdWRlIDxhc20vZGVidWdmcy5oPgogI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL3RsYi5oPgogI2luY2x1ZGUgPGFzbS90cmFjZS5oPgogI2luY2x1ZGUgPGFzbS9wb3dlcm52Lmg+CisjaW5jbHVkZSA8YXNtL2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8YXNtL3VsdHJhdmlzb3IuaD4KIAogI2luY2x1ZGUgPG1tL21tdV9kZWNsLmg+CiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL3RocC5oPgpAQCAtMjEsOSArMjQsNiBAQCBFWFBPUlRfU1lNQk9MKF9fcG1kX2ZyYWdfbnIpOwogdW5zaWduZWQgbG9uZyBfX3BtZF9mcmFnX3NpemVfc2hpZnQ7CiBFWFBPUlRfU1lNQk9MKF9fcG1kX2ZyYWdfc2l6ZV9zaGlmdCk7CiAKLWludCAoKnJlZ2lzdGVyX3Byb2Nlc3NfdGFibGUpKHVuc2lnbmVkIGxvbmcgYmFzZSwgdW5zaWduZWQgbG9uZyBwYWdlX3NpemUsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIHRibF9zaXplKTsKLQogI2lmZGVmIENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRQogLyoKICAqIFRoaXMgaXMgY2FsbGVkIHdoZW4gcmVsYXhpbmcgYWNjZXNzIHRvIGEgaHVnZXBhZ2UuIEl0J3MgYWxzbyBjYWxsZWQgaW4gdGhlIHBhZ2UKQEAgLTIwNSwzNyArMjA1LDYxIEBAIHZvaWQgX19pbml0IG1tdV9wYXJ0aXRpb25fdGFibGVfaW5pdCh2b2lkKQogCSAqIDY0IEsgc2l6ZS4KIAkgKi8KIAlwdGNyID0gX19wYShwYXJ0aXRpb25fdGIpIHwgKFBBVEJfU0laRV9TSElGVCAtIDEyKTsKLQltdHNwcihTUFJOX1BUQ1IsIHB0Y3IpOworCXNldF9wdGNyX3doZW5fbm9fdXYocHRjcik7CiAJcG93ZXJudl9zZXRfbm1tdV9wdGNyKHB0Y3IpOwogfQogCitzdGF0aWMgdm9pZCBmbHVzaF9wYXJ0aXRpb24odW5zaWduZWQgaW50IGxwaWQsIGJvb2wgcmFkaXgpCit7CisJaWYgKHJhZGl4KSB7CisJCXJhZGl4X19mbHVzaF9hbGxfbHBpZChscGlkKTsKKwkJcmFkaXhfX2ZsdXNoX2FsbF9scGlkX2d1ZXN0KGxwaWQpOworCX0gZWxzZSB7CisJCWFzbSB2b2xhdGlsZSgicHRlc3luYyIgOiA6IDogIm1lbW9yeSIpOworCQlhc20gdm9sYXRpbGUoUFBDX1RMQklFXzUoJTAsJTEsMiwwLDApIDogOgorCQkJICAgICAiciIgKFRMQklFTF9JTlZBTF9TRVRfTFBJRCksICJyIiAobHBpZCkpOworCQkvKiBkbyB3ZSBuZWVkIGZpeHVwIGhlcmUgPyovCisJCWFzbSB2b2xhdGlsZSgiZWllaW87IHRsYnN5bmM7IHB0ZXN5bmMiIDogOiA6ICJtZW1vcnkiKTsKKwkJdHJhY2VfdGxiaWUobHBpZCwgMCwgVExCSUVMX0lOVkFMX1NFVF9MUElELCBscGlkLCAyLCAwLCAwKTsKKwl9Cit9CisKIHZvaWQgbW11X3BhcnRpdGlvbl90YWJsZV9zZXRfZW50cnkodW5zaWduZWQgaW50IGxwaWQsIHVuc2lnbmVkIGxvbmcgZHcwLAotCQkJCSAgIHVuc2lnbmVkIGxvbmcgZHcxKQorCQkJCSAgdW5zaWduZWQgbG9uZyBkdzEsIGJvb2wgZmx1c2gpCiB7CiAJdW5zaWduZWQgbG9uZyBvbGQgPSBiZTY0X3RvX2NwdShwYXJ0aXRpb25fdGJbbHBpZF0ucGF0YjApOwogCisJLyoKKwkgKiBXaGVuIHVsdHJhdmlzb3IgaXMgZW5hYmxlZCwgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBzdG9yZWQgaW4gc2VjdXJlCisJICogbWVtb3J5IGFuZCBjYW4gb25seSBiZSBhY2Nlc3NlZCBkb2luZyBhbiB1bHRyYXZpc29yIGNhbGwuIEhvd2V2ZXIsIHdlCisJICogbWFpbnRhaW4gYSBjb3B5IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgaW4gbm9ybWFsIG1lbW9yeSB0byBhbGxvdyBOZXN0CisJICogTU1VIHRyYW5zbGF0aW9ucyB0byBvY2N1ciAoZm9yIG5vcm1hbCBWTXMpLgorCSAqCisJICogVGhlcmVmb3JlLCBoZXJlIHdlIGFsd2F5cyB1cGRhdGUgcGFydGl0aW9uX3RiLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIKKwkgKiB3ZSBhcmUgcnVubmluZyB1bmRlciBhbiB1bHRyYXZpc29yIG9yIG5vdC4KKwkgKi8KIAlwYXJ0aXRpb25fdGJbbHBpZF0ucGF0YjAgPSBjcHVfdG9fYmU2NChkdzApOwogCXBhcnRpdGlvbl90YltscGlkXS5wYXRiMSA9IGNwdV90b19iZTY0KGR3MSk7CiAKIAkvKgotCSAqIEdsb2JhbCBmbHVzaCBvZiBUTEJzIGFuZCBwYXJ0aXRpb24gdGFibGUgY2FjaGVzIGZvciB0aGlzIGxwaWQuCi0JICogVGhlIHR5cGUgb2YgZmx1c2ggKGhhc2ggb3IgcmFkaXgpIGRlcGVuZHMgb24gd2hhdCB0aGUgcHJldmlvdXMKLQkgKiB1c2Ugb2YgdGhpcyBwYXJ0aXRpb24gSUQgd2FzLCBub3QgdGhlIG5ldyB1c2UuCisJICogSWYgdWx0cmF2aXNvciBpcyBlbmFibGVkLCB3ZSBkbyBhbiB1bHRyYXZpc29yIGNhbGwgdG8gcmVnaXN0ZXIgdGhlCisJICogcGFydGl0aW9uIHRhYmxlIGVudHJ5IChQQVRFKSwgd2hpY2ggYWxzbyBkbyBhIGdsb2JhbCBmbHVzaCBvZiBUTEJzCisJICogYW5kIHBhcnRpdGlvbiB0YWJsZSBjYWNoZXMgZm9yIHRoZSBscGlkLiBPdGhlcndpc2UsIGp1c3QgZG8gdGhlCisJICogZmx1c2guIFRoZSB0eXBlIG9mIGZsdXNoIChoYXNoIG9yIHJhZGl4KSBkZXBlbmRzIG9uIHdoYXQgdGhlIHByZXZpb3VzCisJICogdXNlIG9mIHRoZSBwYXJ0aXRpb24gSUQgd2FzLCBub3QgdGhlIG5ldyB1c2UuCiAJICovCi0JYXNtIHZvbGF0aWxlKCJwdGVzeW5jIiA6IDogOiAibWVtb3J5Iik7Ci0JaWYgKG9sZCAmIFBBVEJfSFIpIHsKLQkJYXNtIHZvbGF0aWxlKFBQQ19UTEJJRV81KCUwLCUxLDIsMCwxKSA6IDoKLQkJCSAgICAgInIiIChUTEJJRUxfSU5WQUxfU0VUX0xQSUQpLCAiciIgKGxwaWQpKTsKLQkJYXNtIHZvbGF0aWxlKFBQQ19UTEJJRV81KCUwLCUxLDIsMSwxKSA6IDoKLQkJCSAgICAgInIiIChUTEJJRUxfSU5WQUxfU0VUX0xQSUQpLCAiciIgKGxwaWQpKTsKLQkJdHJhY2VfdGxiaWUobHBpZCwgMCwgVExCSUVMX0lOVkFMX1NFVF9MUElELCBscGlkLCAyLCAwLCAxKTsKLQl9IGVsc2UgewotCQlhc20gdm9sYXRpbGUoUFBDX1RMQklFXzUoJTAsJTEsMiwwLDApIDogOgotCQkJICAgICAiciIgKFRMQklFTF9JTlZBTF9TRVRfTFBJRCksICJyIiAobHBpZCkpOwotCQl0cmFjZV90bGJpZShscGlkLCAwLCBUTEJJRUxfSU5WQUxfU0VUX0xQSUQsIGxwaWQsIDIsIDAsIDApOworCWlmIChmaXJtd2FyZV9oYXNfZmVhdHVyZShGV19GRUFUVVJFX1VMVFJBVklTT1IpKSB7CisJCXV2X3JlZ2lzdGVyX3BhdGUobHBpZCwgZHcwLCBkdzEpOworCQlwcl9pbmZvKCJQQVRFIHJlZ2lzdGVyZWQgYnkgdWx0cmF2aXNvcjogZHcwID0gMHglbHgsIGR3MSA9IDB4JWx4XG4iLAorCQkJZHcwLCBkdzEpOworCX0gZWxzZSBpZiAoZmx1c2gpIHsKKwkJLyoKKwkJICogQm9vdCBkb2VzIG5vdCBuZWVkIHRvIGZsdXNoLCBiZWNhdXNlIE1NVSBpcyBvZmYgYW5kIGVhY2gKKwkJICogQ1BVIGRvZXMgYSB0bGJpZWxfYWxsKCkgYmVmb3JlIHN3aXRjaGluZyB0aGVtIG9uLCB3aGljaAorCQkgKiBmbHVzaGVzIGV2ZXJ5dGhpbmcuCisJCSAqLworCQlmbHVzaF9wYXJ0aXRpb24obHBpZCwgKG9sZCAmIFBBVEJfSFIpKTsKIAl9Ci0JLyogZG8gd2UgbmVlZCBmaXh1cCBoZXJlID8qLwotCWFzbSB2b2xhdGlsZSgiZWllaW87IHRsYnN5bmM7IHB0ZXN5bmMiIDogOiA6ICJtZW1vcnkiKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKG1tdV9wYXJ0aXRpb25fdGFibGVfc2V0X2VudHJ5KTsKIApAQCAtNDQ3LDIzICs0NzEsNDggQEAgaW50IHBtZF9tb3ZlX211c3Rfd2l0aGRyYXcoc3RydWN0IHNwaW5sb2NrICpuZXdfcG1kX3B0bCwKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotaW50IGlvcmVtYXBfcmFuZ2UodW5zaWduZWQgbG9uZyBlYSwgcGh5c19hZGRyX3QgcGEsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgcHJvdCwgaW50IG5pZCkKKy8qCisgKiBEb2VzIHRoZSBDUFUgc3VwcG9ydCB0bGJpZT8KKyAqLworYm9vbCB0bGJpZV9jYXBhYmxlIF9fcmVhZF9tb3N0bHkgPSB0cnVlOworRVhQT1JUX1NZTUJPTCh0bGJpZV9jYXBhYmxlKTsKKworLyoKKyAqIFNob3VsZCB0bGJpZSBiZSB1c2VkIGZvciBtYW5hZ2VtZW50IG9mIENQVSBUTEJzLCBmb3Iga2VybmVsIGFuZCBwcm9jZXNzCisgKiBhZGRyZXNzIHNwYWNlcz8gdGxiaWUgbWF5IHN0aWxsIGJlIHVzZWQgZm9yIG5NTVUgYWNjZWxlcmF0b3JzLCBhbmQgZm9yIEtWTQorICogZ3Vlc3QgYWRkcmVzcyBzcGFjZXMuCisgKi8KK2Jvb2wgdGxiaWVfZW5hYmxlZCBfX3JlYWRfbW9zdGx5ID0gdHJ1ZTsKKworc3RhdGljIGludCBfX2luaXQgc2V0dXBfZGlzYWJsZV90bGJpZShjaGFyICpzdHIpCiB7Ci0JdW5zaWduZWQgbG9uZyBpOwotCi0JaWYgKHJhZGl4X2VuYWJsZWQoKSkKLQkJcmV0dXJuIHJhZGl4X19pb3JlbWFwX3JhbmdlKGVhLCBwYSwgc2l6ZSwgcHJvdCwgbmlkKTsKLQotCWZvciAoaSA9IDA7IGkgPCBzaXplOyBpICs9IFBBR0VfU0laRSkgewotCQlpbnQgZXJyID0gbWFwX2tlcm5lbF9wYWdlKGVhICsgaSwgcGEgKyBpLCBwcm90KTsKLQkJaWYgKGVycikgewotCQkJaWYgKHNsYWJfaXNfYXZhaWxhYmxlKCkpCi0JCQkJdW5tYXBfa2VybmVsX3JhbmdlKGVhLCBzaXplKTsKLQkJCWVsc2UKLQkJCQlXQVJOX09OX09OQ0UoMSk7IC8qIFNob3VsZCBjbGVhbiB1cCAqLwotCQkJcmV0dXJuIGVycjsKLQkJfQorCWlmICghcmFkaXhfZW5hYmxlZCgpKSB7CisJCXByX2VycigiZGlzYWJsZV90bGJpZTogVW5hYmxlIHRvIGRpc2FibGUgVExCSUUgd2l0aCBIYXNoIE1NVS5cbiIpOworCQlyZXR1cm4gMTsKIAl9CiAKKwl0bGJpZV9jYXBhYmxlID0gZmFsc2U7CisJdGxiaWVfZW5hYmxlZCA9IGZhbHNlOworCisgICAgICAgIHJldHVybiAxOworfQorX19zZXR1cCgiZGlzYWJsZV90bGJpZSIsIHNldHVwX2Rpc2FibGVfdGxiaWUpOworCitzdGF0aWMgaW50IF9faW5pdCBwZ3RhYmxlX2RlYnVnZnNfc2V0dXAodm9pZCkKK3sKKwlpZiAoIXRsYmllX2NhcGFibGUpCisJCXJldHVybiAwOworCisJLyoKKwkgKiBUaGVyZSBpcyBubyBsb2NraW5nIHZzIHRsYiBmbHVzaGluZyB3aGVuIGNoYW5naW5nIHRoaXMgdmFsdWUuCisJICogVGhlIHRsYiBmbHVzaGVycyB3aWxsIHNlZSBvbmUgdmFsdWUgb3IgYW5vdGhlciwgYW5kIHVzZSBlaXRoZXIKKwkgKiB0bGJpZSBvciB0bGJpZWwgd2l0aCBJUElzLiBJbiBib3RoIGNhc2VzIHRoZSBUTEJzIHdpbGwgYmUKKwkgKiBpbnZhbGlkYXRlZCBhcyBleHBlY3RlZC4KKwkgKi8KKwlkZWJ1Z2ZzX2NyZWF0ZV9ib29sKCJ0bGJpZV9lbmFibGVkIiwgMDYwMCwKKwkJCXBvd2VycGNfZGVidWdmc19yb290LAorCQkJJnRsYmllX2VuYWJsZWQpOworCiAJcmV0dXJuIDA7CiB9CithcmNoX2luaXRjYWxsKHBndGFibGVfZGVidWdmc19zZXR1cCk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvcmFkaXhfcGd0YWJsZS5jIGIvYXJjaC9wb3dlcnBjL21tL2Jvb2szczY0L3JhZGl4X3BndGFibGUuYwppbmRleCBiNGNhOWU5Li4zYTFmYmY5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvcmFkaXhfcGd0YWJsZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9yYWRpeF9wZ3RhYmxlLmMKQEAgLTI3LDI1ICsyNywxMyBAQAogI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgogI2luY2x1ZGUgPGFzbS90cmFjZS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL3VsdHJhdmlzb3IuaD4KIAogI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy90aHAuaD4KIAogdW5zaWduZWQgaW50IG1tdV9waWRfYml0czsKIHVuc2lnbmVkIGludCBtbXVfYmFzZV9waWQ7CiAKLXN0YXRpYyBpbnQgbmF0aXZlX3JlZ2lzdGVyX3Byb2Nlc3NfdGFibGUodW5zaWduZWQgbG9uZyBiYXNlLCB1bnNpZ25lZCBsb25nIHBnX3N6LAotCQkJCQkgdW5zaWduZWQgbG9uZyB0YWJsZV9zaXplKQotewotCXVuc2lnbmVkIGxvbmcgcGF0YjAsIHBhdGIxOwotCi0JcGF0YjAgPSBiZTY0X3RvX2NwdShwYXJ0aXRpb25fdGJbMF0ucGF0YjApOwotCXBhdGIxID0gYmFzZSB8IHRhYmxlX3NpemUgfCBQQVRCX0dSOwotCi0JbW11X3BhcnRpdGlvbl90YWJsZV9zZXRfZW50cnkoMCwgcGF0YjAsIHBhdGIxKTsKLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgX19yZWYgdm9pZCAqZWFybHlfYWxsb2NfcGd0YWJsZSh1bnNpZ25lZCBsb25nIHNpemUsIGludCBuaWQsCiAJCQl1bnNpZ25lZCBsb25nIHJlZ2lvbl9zdGFydCwgdW5zaWduZWQgbG9uZyByZWdpb25fZW5kKQogewpAQCAtMzgwLDE4ICszNjgsNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcmFkaXhfaW5pdF9wZ3RhYmxlKHZvaWQpCiAJICovCiAJcnRzX2ZpZWxkID0gcmFkaXhfX2dldF90cmVlX3NpemUoKTsKIAlwcm9jZXNzX3RiLT5wcnRiMCA9IGNwdV90b19iZTY0KHJ0c19maWVsZCB8IF9fcGEoaW5pdF9tbS5wZ2QpIHwgUkFESVhfUEdEX0lOREVYX1NJWkUpOwotCS8qCi0JICogRmlsbCBpbiB0aGUgcGFydGl0aW9uIHRhYmxlLiBXZSBhcmUgc3VwcG9zZSB0byB1c2UgZWZmZWN0aXZlIGFkZHJlc3MKLQkgKiBvZiBwcm9jZXNzIHRhYmxlIGhlcmUuIEJ1dCBvdXIgbGluZWFyIG1hcHBpbmcgYWxzbyBlbmFibGUgdXMgdG8gdXNlCi0JICogcGh5c2ljYWwgYWRkcmVzcyBoZXJlLgotCSAqLwotCXJlZ2lzdGVyX3Byb2Nlc3NfdGFibGUoX19wYShwcm9jZXNzX3RiKSwgMCwgUFJUQl9TSVpFX1NISUZUIC0gMTIpOwotCXByX2luZm8oIlByb2Nlc3MgdGFibGUgJXAgYW5kIHJhZGl4IHJvb3QgZm9yIGtlcm5lbDogJXBcbiIsIHByb2Nlc3NfdGIsIGluaXRfbW0ucGdkKTsKLQlhc20gdm9sYXRpbGUoInB0ZXN5bmMiIDogOiA6ICJtZW1vcnkiKTsKLQlhc20gdm9sYXRpbGUoUFBDX1RMQklFXzUoJTAsJTEsMiwxLDEpIDogOgotCQkgICAgICJyIiAoVExCSUVMX0lOVkFMX1NFVF9MUElEKSwgInIiICgwKSk7Ci0JYXNtIHZvbGF0aWxlKCJlaWVpbzsgdGxic3luYzsgcHRlc3luYyIgOiA6IDogIm1lbW9yeSIpOwotCXRyYWNlX3RsYmllKDAsIDAsIFRMQklFTF9JTlZBTF9TRVRfTFBJRCwgMCwgMiwgMSwgMSk7CiAKIAkvKgogCSAqIFRoZSBpbml0X21tIGNvbnRleHQgaXMgZ2l2ZW4gdGhlIGZpcnN0IGF2YWlsYWJsZSAobm9uLXplcm8pIFBJRCwKQEAgLTQxMiwyMCArMzg4LDE1IEBAIHN0YXRpYyB2b2lkIF9faW5pdCByYWRpeF9pbml0X3BndGFibGUodm9pZCkKIAogc3RhdGljIHZvaWQgX19pbml0IHJhZGl4X2luaXRfcGFydGl0aW9uX3RhYmxlKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBydHNfZmllbGQsIGR3MDsKKwl1bnNpZ25lZCBsb25nIHJ0c19maWVsZCwgZHcwLCBkdzE7CiAKIAltbXVfcGFydGl0aW9uX3RhYmxlX2luaXQoKTsKIAlydHNfZmllbGQgPSByYWRpeF9fZ2V0X3RyZWVfc2l6ZSgpOwogCWR3MCA9IHJ0c19maWVsZCB8IF9fcGEoaW5pdF9tbS5wZ2QpIHwgUkFESVhfUEdEX0lOREVYX1NJWkUgfCBQQVRCX0hSOwotCW1tdV9wYXJ0aXRpb25fdGFibGVfc2V0X2VudHJ5KDAsIGR3MCwgMCk7CisJZHcxID0gX19wYShwcm9jZXNzX3RiKSB8IChQUlRCX1NJWkVfU0hJRlQgLSAxMikgfCBQQVRCX0dSOworCW1tdV9wYXJ0aXRpb25fdGFibGVfc2V0X2VudHJ5KDAsIGR3MCwgZHcxLCBmYWxzZSk7CiAKIAlwcl9pbmZvKCJJbml0aWFsaXppbmcgUmFkaXggTU1VXG4iKTsKLQlwcl9pbmZvKCJQYXJ0aXRpb24gdGFibGUgJXBcbiIsIHBhcnRpdGlvbl90Yik7Ci19Ci0KLXZvaWQgX19pbml0IHJhZGl4X2luaXRfbmF0aXZlKHZvaWQpCi17Ci0JcmVnaXN0ZXJfcHJvY2Vzc190YWJsZSA9IG5hdGl2ZV9yZWdpc3Rlcl9wcm9jZXNzX3RhYmxlOwogfQogCiBzdGF0aWMgaW50IF9faW5pdCBnZXRfaWR4X2Zyb21fc2hpZnQodW5zaWduZWQgaW50IHNoaWZ0KQpAQCAtNjIxLDggKzU5Miw5IEBAIHZvaWQgX19pbml0IHJhZGl4X19lYXJseV9pbml0X21tdSh2b2lkKQogCV9fcG1kX2ZyYWdfbnIgPSBSQURJWF9QTURfRlJBR19OUjsKIAlfX3BtZF9mcmFnX3NpemVfc2hpZnQgPSBSQURJWF9QTURfRlJBR19TSVpFX1NISUZUOwogCisJcmFkaXhfaW5pdF9wZ3RhYmxlKCk7CisKIAlpZiAoIWZpcm13YXJlX2hhc19mZWF0dXJlKEZXX0ZFQVRVUkVfTFBBUikpIHsKLQkJcmFkaXhfaW5pdF9uYXRpdmUoKTsKIAkJbHBjciA9IG1mc3ByKFNQUk5fTFBDUik7CiAJCW10c3ByKFNQUk5fTFBDUiwgbHBjciB8IExQQ1JfVVBSVCB8IExQQ1JfSFIpOwogCQlyYWRpeF9pbml0X3BhcnRpdGlvbl90YWJsZSgpOwpAQCAtNjMzLDExICs2MDUsOSBAQCB2b2lkIF9faW5pdCByYWRpeF9fZWFybHlfaW5pdF9tbXUodm9pZCkKIAogCW1lbWJsb2NrX3NldF9jdXJyZW50X2xpbWl0KE1FTUJMT0NLX0FMTE9DX0FOWVdIRVJFKTsKIAotCXJhZGl4X2luaXRfcGd0YWJsZSgpOwogCS8qIFN3aXRjaCB0byB0aGUgZ3VhcmQgUElEIGJlZm9yZSB0dXJuaW5nIG9uIE1NVSAqLwogCXJhZGl4X19zd2l0Y2hfbW11X2NvbnRleHQoTlVMTCwgJmluaXRfbW0pOwotCWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9IVk1PREUpKQotCQl0bGJpZWxfYWxsKCk7CisJdGxiaWVsX2FsbCgpOwogfQogCiB2b2lkIHJhZGl4X19lYXJseV9pbml0X21tdV9zZWNvbmRhcnkodm9pZCkKQEAgLTY1MCwxNCArNjIwLDE0IEBAIHZvaWQgcmFkaXhfX2Vhcmx5X2luaXRfbW11X3NlY29uZGFyeSh2b2lkKQogCQlscGNyID0gbWZzcHIoU1BSTl9MUENSKTsKIAkJbXRzcHIoU1BSTl9MUENSLCBscGNyIHwgTFBDUl9VUFJUIHwgTFBDUl9IUik7CiAKLQkJbXRzcHIoU1BSTl9QVENSLAotCQkgICAgICBfX3BhKHBhcnRpdGlvbl90YikgfCAoUEFUQl9TSVpFX1NISUZUIC0gMTIpKTsKKwkJc2V0X3B0Y3Jfd2hlbl9ub191dihfX3BhKHBhcnRpdGlvbl90YikgfAorCQkJCSAgICAoUEFUQl9TSVpFX1NISUZUIC0gMTIpKTsKKwogCQlyYWRpeF9pbml0X2Ftb3IoKTsKIAl9CiAKIAlyYWRpeF9fc3dpdGNoX21tdV9jb250ZXh0KE5VTEwsICZpbml0X21tKTsKLQlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfSFZNT0RFKSkKLQkJdGxiaWVsX2FsbCgpOworCXRsYmllbF9hbGwoKTsKIH0KIAogdm9pZCByYWRpeF9fbW11X2NsZWFudXBfYWxsKHZvaWQpCkBAIC02NjcsNyArNjM3LDcgQEAgdm9pZCByYWRpeF9fbW11X2NsZWFudXBfYWxsKHZvaWQpCiAJaWYgKCFmaXJtd2FyZV9oYXNfZmVhdHVyZShGV19GRUFUVVJFX0xQQVIpKSB7CiAJCWxwY3IgPSBtZnNwcihTUFJOX0xQQ1IpOwogCQltdHNwcihTUFJOX0xQQ1IsIGxwY3IgJiB+TFBDUl9VUFJUKTsKLQkJbXRzcHIoU1BSTl9QVENSLCAwKTsKKwkJc2V0X3B0Y3Jfd2hlbl9ub191digwKTsKIAkJcG93ZXJudl9zZXRfbm1tdV9wdGNyKDApOwogCQlyYWRpeF9fZmx1c2hfdGxiX2FsbCgpOwogCX0KQEAgLTczNyw4ICs3MDcsOCBAQCBzdGF0aWMgaW50IF9fbWVtaW5pdCBzdG9wX21hY2hpbmVfY2hhbmdlX21hcHBpbmcodm9pZCAqZGF0YSkKIAogCXNwaW5fdW5sb2NrKCZpbml0X21tLnBhZ2VfdGFibGVfbG9jayk7CiAJcHRlX2NsZWFyKCZpbml0X21tLCBwYXJhbXMtPmFsaWduZWRfc3RhcnQsIHBhcmFtcy0+cHRlKTsKLQljcmVhdGVfcGh5c2ljYWxfbWFwcGluZyhwYXJhbXMtPmFsaWduZWRfc3RhcnQsIHBhcmFtcy0+c3RhcnQsIC0xKTsKLQljcmVhdGVfcGh5c2ljYWxfbWFwcGluZyhwYXJhbXMtPmVuZCwgcGFyYW1zLT5hbGlnbmVkX2VuZCwgLTEpOworCWNyZWF0ZV9waHlzaWNhbF9tYXBwaW5nKF9fcGEocGFyYW1zLT5hbGlnbmVkX3N0YXJ0KSwgX19wYShwYXJhbXMtPnN0YXJ0KSwgLTEpOworCWNyZWF0ZV9waHlzaWNhbF9tYXBwaW5nKF9fcGEocGFyYW1zLT5lbmQpLCBfX3BhKHBhcmFtcy0+YWxpZ25lZF9lbmQpLCAtMSk7CiAJc3Bpbl9sb2NrKCZpbml0X21tLnBhZ2VfdGFibGVfbG9jayk7CiAJcmV0dXJuIDA7CiB9CkBAIC05MDIsNyArODcyLDcgQEAgaW50IF9fbWVtaW5pdCByYWRpeF9fY3JlYXRlX3NlY3Rpb25fbWFwcGluZyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGUKIAkJcmV0dXJuIC0xOwogCX0KIAotCXJldHVybiBjcmVhdGVfcGh5c2ljYWxfbWFwcGluZyhzdGFydCwgZW5kLCBuaWQpOworCXJldHVybiBjcmVhdGVfcGh5c2ljYWxfbWFwcGluZyhfX3BhKHN0YXJ0KSwgX19wYShlbmQpLCBuaWQpOwogfQogCiBpbnQgX19tZW1pbml0IHJhZGl4X19yZW1vdmVfc2VjdGlvbl9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQpAQCAtMTIxOCwyNiArMTE4OCw2IEBAIGludCBwbWRfZnJlZV9wdGVfcGFnZShwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIGFkZHIpCiAJcmV0dXJuIDE7CiB9CiAKLWludCByYWRpeF9faW9yZW1hcF9yYW5nZSh1bnNpZ25lZCBsb25nIGVhLCBwaHlzX2FkZHJfdCBwYSwgdW5zaWduZWQgbG9uZyBzaXplLAotCQkJcGdwcm90X3QgcHJvdCwgaW50IG5pZCkKLXsKLQlpZiAobGlrZWx5KHNsYWJfaXNfYXZhaWxhYmxlKCkpKSB7Ci0JCWludCBlcnIgPSBpb3JlbWFwX3BhZ2VfcmFuZ2UoZWEsIGVhICsgc2l6ZSwgcGEsIHByb3QpOwotCQlpZiAoZXJyKQotCQkJdW5tYXBfa2VybmVsX3JhbmdlKGVhLCBzaXplKTsKLQkJcmV0dXJuIGVycjsKLQl9IGVsc2UgewotCQl1bnNpZ25lZCBsb25nIGk7Ci0KLQkJZm9yIChpID0gMDsgaSA8IHNpemU7IGkgKz0gUEFHRV9TSVpFKSB7Ci0JCQlpbnQgZXJyID0gbWFwX2tlcm5lbF9wYWdlKGVhICsgaSwgcGEgKyBpLCBwcm90KTsKLQkJCWlmIChXQVJOX09OX09OQ0UoZXJyKSkgLyogU2hvdWxkIGNsZWFuIHVwICovCi0JCQkJcmV0dXJuIGVycjsKLQkJfQotCQlyZXR1cm4gMDsKLQl9Ci19Ci0KIGludCBfX2luaXQgYXJjaF9pb3JlbWFwX3A0ZF9zdXBwb3J0ZWQodm9pZCkKIHsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9yYWRpeF90bGIuYyBiL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9yYWRpeF90bGIuYwppbmRleCA3MWY3ZmVkLi42N2FmODcxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvcmFkaXhfdGxiLmMKKysrIGIvYXJjaC9wb3dlcnBjL21tL2Jvb2szczY0L3JhZGl4X3RsYi5jCkBAIC01MSwxMSArNTEsMTUgQEAgc3RhdGljIHZvaWQgdGxiaWVsX2FsbF9pc2EzMDAodW5zaWduZWQgaW50IG51bV9zZXRzLCB1bnNpZ25lZCBpbnQgaXMpCiAJICogYW5kIHBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzLiBUaGVuIGZsdXNoIHRoZSByZW1haW5pbmcgc2V0cyBvZiB0aGUKIAkgKiBUTEIuCiAJICovCi0JdGxiaWVsX3JhZGl4X3NldF9pc2EzMDAoMCwgaXMsIDAsIFJJQ19GTFVTSF9BTEwsIDApOwotCWZvciAoc2V0ID0gMTsgc2V0IDwgbnVtX3NldHM7IHNldCsrKQotCQl0bGJpZWxfcmFkaXhfc2V0X2lzYTMwMChzZXQsIGlzLCAwLCBSSUNfRkxVU0hfVExCLCAwKTsKIAotCS8qIERvIHRoZSBzYW1lIGZvciBwcm9jZXNzIHNjb3BlZCBlbnRyaWVzLiAqLworCWlmIChlYXJseV9jcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9IVk1PREUpKSB7CisJCS8qIE1TUltIVl0gc2hvdWxkIGZsdXNoIHBhcnRpdGlvbiBzY29wZSB0cmFuc2xhdGlvbnMgZmlyc3QuICovCisJCXRsYmllbF9yYWRpeF9zZXRfaXNhMzAwKDAsIGlzLCAwLCBSSUNfRkxVU0hfQUxMLCAwKTsKKwkJZm9yIChzZXQgPSAxOyBzZXQgPCBudW1fc2V0czsgc2V0KyspCisJCQl0bGJpZWxfcmFkaXhfc2V0X2lzYTMwMChzZXQsIGlzLCAwLCBSSUNfRkxVU0hfVExCLCAwKTsKKwl9CisKKwkvKiBGbHVzaCBwcm9jZXNzIHNjb3BlZCBlbnRyaWVzLiAqLwogCXRsYmllbF9yYWRpeF9zZXRfaXNhMzAwKDAsIGlzLCAwLCBSSUNfRkxVU0hfQUxMLCAxKTsKIAlmb3IgKHNldCA9IDE7IHNldCA8IG51bV9zZXRzOyBzZXQrKykKIAkJdGxiaWVsX3JhZGl4X3NldF9pc2EzMDAoc2V0LCBpcywgMCwgUklDX0ZMVVNIX1RMQiwgMSk7CkBAIC0xMTYsMjIgKzEyMCw2IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBfX3RsYmllX3BpZCh1bnNpZ25lZCBsb25nIHBpZCwgdW5zaWduZWQgbG9uZyByaWMpCiAJdHJhY2VfdGxiaWUoMCwgMCwgcmIsIHJzLCByaWMsIHBycywgcik7CiB9CiAKLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBfX3RsYmllbF9scGlkKHVuc2lnbmVkIGxvbmcgbHBpZCwgaW50IHNldCwKLQkJCQl1bnNpZ25lZCBsb25nIHJpYykKLXsKLQl1bnNpZ25lZCBsb25nIHJiLHJzLHBycyxyOwotCi0JcmIgPSBQUENfQklUKDUyKTsgLyogSVMgPSAyICovCi0JcmIgfD0gc2V0IDw8IFBQQ19CSVRMU0hJRlQoNTEpOwotCXJzID0gMDsgIC8qIExQSUQgY29tZXMgZnJvbSBMUElEUiAqLwotCXBycyA9IDA7IC8qIHBhcnRpdGlvbiBzY29wZWQgKi8KLQlyID0gMTsgICAvKiByYWRpeCBmb3JtYXQgKi8KLQotCWFzbSB2b2xhdGlsZShQUENfVExCSUVMKCUwLCAlNCwgJTMsICUyLCAlMSkKLQkJICAgICA6IDogInIiKHJiKSwgImkiKHIpLCAiaSIocHJzKSwgImkiKHJpYyksICJyIihycykgOiAibWVtb3J5Iik7Ci0JdHJhY2VfdGxiaWUobHBpZCwgMSwgcmIsIHJzLCByaWMsIHBycywgcik7Ci19Ci0KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBfX3RsYmllX2xwaWQodW5zaWduZWQgbG9uZyBscGlkLCB1bnNpZ25lZCBsb25nIHJpYykKIHsKIAl1bnNpZ25lZCBsb25nIHJiLHJzLHBycyxyOwpAQCAtMTQ2LDIzICsxMzQsMjAgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIF9fdGxiaWVfbHBpZCh1bnNpZ25lZCBsb25nIGxwaWQsIHVuc2lnbmVkIGxvbmcgcmljKQogCXRyYWNlX3RsYmllKGxwaWQsIDAsIHJiLCBycywgcmljLCBwcnMsIHIpOwogfQogCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgX190bGJpZWxfbHBpZF9ndWVzdCh1bnNpZ25lZCBsb25nIGxwaWQsIGludCBzZXQsCi0JCQkJCQl1bnNpZ25lZCBsb25nIHJpYykKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBfX3RsYmllX2xwaWRfZ3Vlc3QodW5zaWduZWQgbG9uZyBscGlkLCB1bnNpZ25lZCBsb25nIHJpYykKIHsKIAl1bnNpZ25lZCBsb25nIHJiLHJzLHBycyxyOwogCiAJcmIgPSBQUENfQklUKDUyKTsgLyogSVMgPSAyICovCi0JcmIgfD0gc2V0IDw8IFBQQ19CSVRMU0hJRlQoNTEpOwotCXJzID0gMDsgIC8qIExQSUQgY29tZXMgZnJvbSBMUElEUiAqLworCXJzID0gbHBpZDsKIAlwcnMgPSAxOyAvKiBwcm9jZXNzIHNjb3BlZCAqLwogCXIgPSAxOyAgIC8qIHJhZGl4IGZvcm1hdCAqLwogCi0JYXNtIHZvbGF0aWxlKFBQQ19UTEJJRUwoJTAsICU0LCAlMywgJTIsICUxKQorCWFzbSB2b2xhdGlsZShQUENfVExCSUVfNSglMCwgJTQsICUzLCAlMiwgJTEpCiAJCSAgICAgOiA6ICJyIihyYiksICJpIihyKSwgImkiKHBycyksICJpIihyaWMpLCAiciIocnMpIDogIm1lbW9yeSIpOwotCXRyYWNlX3RsYmllKGxwaWQsIDEsIHJiLCBycywgcmljLCBwcnMsIHIpOworCXRyYWNlX3RsYmllKGxwaWQsIDAsIHJiLCBycywgcmljLCBwcnMsIHIpOwogfQogCi0KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBfX3RsYmllbF92YSh1bnNpZ25lZCBsb25nIHZhLCB1bnNpZ25lZCBsb25nIHBpZCwKIAkJCQkJdW5zaWduZWQgbG9uZyBhcCwgdW5zaWduZWQgbG9uZyByaWMpCiB7CkBAIC0yMTEsMjIgKzE5Niw4MyBAQCBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgX190bGJpZV9scGlkX3ZhKHVuc2lnbmVkIGxvbmcgdmEsIHVuc2lnbmVkIGxvbmcgbHBpZAogCXRyYWNlX3RsYmllKGxwaWQsIDAsIHJiLCBycywgcmljLCBwcnMsIHIpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZml4dXBfdGxiaWUodm9pZCkKKworc3RhdGljIGlubGluZSB2b2lkIGZpeHVwX3RsYmllX3ZhKHVuc2lnbmVkIGxvbmcgdmEsIHVuc2lnbmVkIGxvbmcgcGlkLAorCQkJCSAgdW5zaWduZWQgbG9uZyBhcCkKIHsKLQl1bnNpZ25lZCBsb25nIHBpZCA9IDA7CisJaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSX1A5X1RMQklFX0VSQVRfQlVHKSkgeworCQlhc20gdm9sYXRpbGUoInB0ZXN5bmMiOiA6IDoibWVtb3J5Iik7CisJCV9fdGxiaWVfdmEodmEsIDAsIGFwLCBSSUNfRkxVU0hfVExCKTsKKwl9CisKKwlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfUDlfVExCSUVfU1RRX0JVRykpIHsKKwkJYXNtIHZvbGF0aWxlKCJwdGVzeW5jIjogOiA6Im1lbW9yeSIpOworCQlfX3RsYmllX3ZhKHZhLCBwaWQsIGFwLCBSSUNfRkxVU0hfVExCKTsKKwl9Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBmaXh1cF90bGJpZV92YV9yYW5nZSh1bnNpZ25lZCBsb25nIHZhLCB1bnNpZ25lZCBsb25nIHBpZCwKKwkJCQkJdW5zaWduZWQgbG9uZyBhcCkKK3sKKwlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfUDlfVExCSUVfRVJBVF9CVUcpKSB7CisJCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKKwkJX190bGJpZV9waWQoMCwgUklDX0ZMVVNIX1RMQik7CisJfQorCisJaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSX1A5X1RMQklFX1NUUV9CVUcpKSB7CisJCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKKwkJX190bGJpZV92YSh2YSwgcGlkLCBhcCwgUklDX0ZMVVNIX1RMQik7CisJfQorfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZml4dXBfdGxiaWVfcGlkKHVuc2lnbmVkIGxvbmcgcGlkKQoreworCS8qCisJICogV2UgY2FuIHVzZSBhbnkgYWRkcmVzcyBmb3IgdGhlIGludmFsaWRhdGlvbiwgcGljayBvbmUgd2hpY2ggaXMKKwkgKiBwcm9iYWJseSB1bnVzZWQgYXMgYW4gb3B0aW1pc2F0aW9uLgorCSAqLwogCXVuc2lnbmVkIGxvbmcgdmEgPSAoKDFVTCA8PCA1MikgLSAxKTsKIAotCWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9QOV9UTEJJRV9CVUcpKSB7CisJaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSX1A5X1RMQklFX0VSQVRfQlVHKSkgeworCQlhc20gdm9sYXRpbGUoInB0ZXN5bmMiOiA6IDoibWVtb3J5Iik7CisJCV9fdGxiaWVfcGlkKDAsIFJJQ19GTFVTSF9UTEIpOworCX0KKworCWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9QOV9UTEJJRV9TVFFfQlVHKSkgewogCQlhc20gdm9sYXRpbGUoInB0ZXN5bmMiOiA6IDoibWVtb3J5Iik7CiAJCV9fdGxiaWVfdmEodmEsIHBpZCwgbW11X2dldF9hcChNTVVfUEFHRV82NEspLCBSSUNfRkxVU0hfVExCKTsKIAl9CiB9CiAKKworc3RhdGljIGlubGluZSB2b2lkIGZpeHVwX3RsYmllX2xwaWRfdmEodW5zaWduZWQgbG9uZyB2YSwgdW5zaWduZWQgbG9uZyBscGlkLAorCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGFwKQoreworCWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9QOV9UTEJJRV9FUkFUX0JVRykpIHsKKwkJYXNtIHZvbGF0aWxlKCJwdGVzeW5jIjogOiA6Im1lbW9yeSIpOworCQlfX3RsYmllX2xwaWRfdmEodmEsIDAsIGFwLCBSSUNfRkxVU0hfVExCKTsKKwl9CisKKwlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfUDlfVExCSUVfU1RRX0JVRykpIHsKKwkJYXNtIHZvbGF0aWxlKCJwdGVzeW5jIjogOiA6Im1lbW9yeSIpOworCQlfX3RsYmllX2xwaWRfdmEodmEsIGxwaWQsIGFwLCBSSUNfRkxVU0hfVExCKTsKKwl9Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBmaXh1cF90bGJpZV9scGlkKHVuc2lnbmVkIGxvbmcgbHBpZCkKIHsKKwkvKgorCSAqIFdlIGNhbiB1c2UgYW55IGFkZHJlc3MgZm9yIHRoZSBpbnZhbGlkYXRpb24sIHBpY2sgb25lIHdoaWNoIGlzCisJICogcHJvYmFibHkgdW51c2VkIGFzIGFuIG9wdGltaXNhdGlvbi4KKwkgKi8KIAl1bnNpZ25lZCBsb25nIHZhID0gKCgxVUwgPDwgNTIpIC0gMSk7CiAKLQlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfUDlfVExCSUVfQlVHKSkgeworCWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9QOV9UTEJJRV9FUkFUX0JVRykpIHsKKwkJYXNtIHZvbGF0aWxlKCJwdGVzeW5jIjogOiA6Im1lbW9yeSIpOworCQlfX3RsYmllX2xwaWQoMCwgUklDX0ZMVVNIX1RMQik7CisJfQorCisJaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSX1A5X1RMQklFX1NUUV9CVUcpKSB7CiAJCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKIAkJX190bGJpZV9scGlkX3ZhKHZhLCBscGlkLCBtbXVfZ2V0X2FwKE1NVV9QQUdFXzY0SyksIFJJQ19GTFVTSF9UTEIpOwogCX0KQEAgLTI3Myw2ICszMTksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX3RsYmllX3BpZCh1bnNpZ25lZCBsb25nIHBpZCwgdW5zaWduZWQgbG9uZyByaWMpCiAJc3dpdGNoIChyaWMpIHsKIAljYXNlIFJJQ19GTFVTSF9UTEI6CiAJCV9fdGxiaWVfcGlkKHBpZCwgUklDX0ZMVVNIX1RMQik7CisJCWZpeHVwX3RsYmllX3BpZChwaWQpOwogCQlicmVhazsKIAljYXNlIFJJQ19GTFVTSF9QV0M6CiAJCV9fdGxiaWVfcGlkKHBpZCwgUklDX0ZMVVNIX1BXQyk7CkBAIC0yODAsMzcgKzMyNyw0MiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX3RsYmllX3BpZCh1bnNpZ25lZCBsb25nIHBpZCwgdW5zaWduZWQgbG9uZyByaWMpCiAJY2FzZSBSSUNfRkxVU0hfQUxMOgogCWRlZmF1bHQ6CiAJCV9fdGxiaWVfcGlkKHBpZCwgUklDX0ZMVVNIX0FMTCk7CisJCWZpeHVwX3RsYmllX3BpZChwaWQpOwogCX0KLQlmaXh1cF90bGJpZSgpOwogCWFzbSB2b2xhdGlsZSgiZWllaW87IHRsYnN5bmM7IHB0ZXN5bmMiOiA6IDoibWVtb3J5Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfdGxiaWVsX2xwaWQodW5zaWduZWQgbG9uZyBscGlkLCB1bnNpZ25lZCBsb25nIHJpYykKK3N0cnVjdCB0bGJpZWxfcGlkIHsKKwl1bnNpZ25lZCBsb25nIHBpZDsKKwl1bnNpZ25lZCBsb25nIHJpYzsKK307CisKK3N0YXRpYyB2b2lkIGRvX3RsYmllbF9waWQodm9pZCAqaW5mbykKIHsKLQlpbnQgc2V0OworCXN0cnVjdCB0bGJpZWxfcGlkICp0ID0gaW5mbzsKIAotCVZNX0JVR19PTihtZnNwcihTUFJOX0xQSUQpICE9IGxwaWQpOworCWlmICh0LT5yaWMgPT0gUklDX0ZMVVNIX1RMQikKKwkJX3RsYmllbF9waWQodC0+cGlkLCBSSUNfRkxVU0hfVExCKTsKKwllbHNlIGlmICh0LT5yaWMgPT0gUklDX0ZMVVNIX1BXQykKKwkJX3RsYmllbF9waWQodC0+cGlkLCBSSUNfRkxVU0hfUFdDKTsKKwllbHNlCisJCV90bGJpZWxfcGlkKHQtPnBpZCwgUklDX0ZMVVNIX0FMTCk7Cit9CiAKLQlhc20gdm9sYXRpbGUoInB0ZXN5bmMiOiA6IDoibWVtb3J5Iik7CitzdGF0aWMgaW5saW5lIHZvaWQgX3RsYmllbF9waWRfbXVsdGljYXN0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCXVuc2lnbmVkIGxvbmcgcGlkLCB1bnNpZ25lZCBsb25nIHJpYykKK3sKKwlzdHJ1Y3QgY3B1bWFzayAqY3B1cyA9IG1tX2NwdW1hc2sobW0pOworCXN0cnVjdCB0bGJpZWxfcGlkIHQgPSB7IC5waWQgPSBwaWQsIC5yaWMgPSByaWMgfTsKIAorCW9uX2VhY2hfY3B1X21hc2soY3B1cywgZG9fdGxiaWVsX3BpZCwgJnQsIDEpOwogCS8qCi0JICogRmx1c2ggdGhlIGZpcnN0IHNldCBvZiB0aGUgVExCLCBhbmQgaWYgd2UncmUgZG9pbmcgYSBSSUNfRkxVU0hfQUxMLAotCSAqIGFsc28gZmx1c2ggdGhlIGVudGlyZSBQYWdlIFdhbGsgQ2FjaGUuCisJICogQWx3YXlzIHdhbnQgdGhlIENQVSB0cmFuc2xhdGlvbnMgdG8gYmUgaW52YWxpZGF0ZWQgd2l0aCB0bGJpZWwgaW4KKwkgKiB0aGVzZSBwYXRocywgc28gd2hpbGUgY29wcm9jZXNzb3JzIG11c3QgdXNlIHRsYmllLCB3ZSBjYW4gbm90CisJICogb3B0aW1pc2UgYXdheSB0aGUgdGxiaWVsIGNvbXBvbmVudC4KIAkgKi8KLQlfX3RsYmllbF9scGlkKGxwaWQsIDAsIHJpYyk7Ci0KLQkvKiBGb3IgUFdDLCBvbmx5IG9uZSBmbHVzaCBpcyBuZWVkZWQgKi8KLQlpZiAocmljID09IFJJQ19GTFVTSF9QV0MpIHsKLQkJYXNtIHZvbGF0aWxlKCJwdGVzeW5jIjogOiA6Im1lbW9yeSIpOwotCQlyZXR1cm47Ci0JfQotCi0JLyogRm9yIHRoZSByZW1haW5pbmcgc2V0cywganVzdCBmbHVzaCB0aGUgVExCICovCi0JZm9yIChzZXQgPSAxOyBzZXQgPCBQT1dFUjlfVExCX1NFVFNfUkFESVggOyBzZXQrKykKLQkJX190bGJpZWxfbHBpZChscGlkLCBzZXQsIFJJQ19GTFVTSF9UTEIpOwotCi0JYXNtIHZvbGF0aWxlKCJwdGVzeW5jIjogOiA6Im1lbW9yeSIpOwotCWFzbSB2b2xhdGlsZShQUENfUkFESVhfSU5WQUxJREFURV9FUkFUX0dVRVNUICI7IGlzeW5jIiA6IDogOiJtZW1vcnkiKTsKKwlpZiAoYXRvbWljX3JlYWQoJm1tLT5jb250ZXh0LmNvcHJvcykgPiAwKQorCQlfdGxiaWVfcGlkKHBpZCwgUklDX0ZMVVNIX0FMTCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfdGxiaWVfbHBpZCh1bnNpZ25lZCBsb25nIGxwaWQsIHVuc2lnbmVkIGxvbmcgcmljKQpAQCAtMzI1LDYgKzM3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfdGxiaWVfbHBpZCh1bnNpZ25lZCBsb25nIGxwaWQsIHVuc2lnbmVkIGxvbmcgcmljKQogCXN3aXRjaCAocmljKSB7CiAJY2FzZSBSSUNfRkxVU0hfVExCOgogCQlfX3RsYmllX2xwaWQobHBpZCwgUklDX0ZMVVNIX1RMQik7CisJCWZpeHVwX3RsYmllX2xwaWQobHBpZCk7CiAJCWJyZWFrOwogCWNhc2UgUklDX0ZMVVNIX1BXQzoKIAkJX190bGJpZV9scGlkKGxwaWQsIFJJQ19GTFVTSF9QV0MpOwpAQCAtMzMyLDQwICszODUsMzMgQEAgc3RhdGljIGlubGluZSB2b2lkIF90bGJpZV9scGlkKHVuc2lnbmVkIGxvbmcgbHBpZCwgdW5zaWduZWQgbG9uZyByaWMpCiAJY2FzZSBSSUNfRkxVU0hfQUxMOgogCWRlZmF1bHQ6CiAJCV9fdGxiaWVfbHBpZChscGlkLCBSSUNfRkxVU0hfQUxMKTsKKwkJZml4dXBfdGxiaWVfbHBpZChscGlkKTsKKwl9CisJYXNtIHZvbGF0aWxlKCJlaWVpbzsgdGxic3luYzsgcHRlc3luYyI6IDogOiJtZW1vcnkiKTsKK30KKworc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIF90bGJpZV9scGlkX2d1ZXN0KHVuc2lnbmVkIGxvbmcgbHBpZCwgdW5zaWduZWQgbG9uZyByaWMpCit7CisJLyoKKwkgKiBXb3JrYXJvdW5kIHRoZSBmYWN0IHRoYXQgdGhlICJyaWMiIGFyZ3VtZW50IHRvIF9fdGxiaWVfcGlkCisJICogbXVzdCBiZSBhIGNvbXBpbGUtdGltZSBjb250cmFpbnQgdG8gbWF0Y2ggdGhlICJpIiBjb25zdHJhaW50CisJICogaW4gdGhlIGFzbSBzdGF0ZW1lbnQuCisJICovCisJc3dpdGNoIChyaWMpIHsKKwljYXNlIFJJQ19GTFVTSF9UTEI6CisJCV9fdGxiaWVfbHBpZF9ndWVzdChscGlkLCBSSUNfRkxVU0hfVExCKTsKKwkJYnJlYWs7CisJY2FzZSBSSUNfRkxVU0hfUFdDOgorCQlfX3RsYmllX2xwaWRfZ3Vlc3QobHBpZCwgUklDX0ZMVVNIX1BXQyk7CisJCWJyZWFrOworCWNhc2UgUklDX0ZMVVNIX0FMTDoKKwlkZWZhdWx0OgorCQlfX3RsYmllX2xwaWRfZ3Vlc3QobHBpZCwgUklDX0ZMVVNIX0FMTCk7CiAJfQogCWZpeHVwX3RsYmllX2xwaWQobHBpZCk7CiAJYXNtIHZvbGF0aWxlKCJlaWVpbzsgdGxic3luYzsgcHRlc3luYyI6IDogOiJtZW1vcnkiKTsKIH0KIAotc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIF90bGJpZWxfbHBpZF9ndWVzdCh1bnNpZ25lZCBsb25nIGxwaWQsIHVuc2lnbmVkIGxvbmcgcmljKQotewotCWludCBzZXQ7Ci0KLQlWTV9CVUdfT04obWZzcHIoU1BSTl9MUElEKSAhPSBscGlkKTsKLQotCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKLQotCS8qCi0JICogRmx1c2ggdGhlIGZpcnN0IHNldCBvZiB0aGUgVExCLCBhbmQgaWYgd2UncmUgZG9pbmcgYSBSSUNfRkxVU0hfQUxMLAotCSAqIGFsc28gZmx1c2ggdGhlIGVudGlyZSBQYWdlIFdhbGsgQ2FjaGUuCi0JICovCi0JX190bGJpZWxfbHBpZF9ndWVzdChscGlkLCAwLCByaWMpOwotCi0JLyogRm9yIFBXQywgb25seSBvbmUgZmx1c2ggaXMgbmVlZGVkICovCi0JaWYgKHJpYyA9PSBSSUNfRkxVU0hfUFdDKSB7Ci0JCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKLQkJcmV0dXJuOwotCX0KLQotCS8qIEZvciB0aGUgcmVtYWluaW5nIHNldHMsIGp1c3QgZmx1c2ggdGhlIFRMQiAqLwotCWZvciAoc2V0ID0gMTsgc2V0IDwgUE9XRVI5X1RMQl9TRVRTX1JBRElYIDsgc2V0KyspCi0JCV9fdGxiaWVsX2xwaWRfZ3Vlc3QobHBpZCwgc2V0LCBSSUNfRkxVU0hfVExCKTsKLQotCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKLQlhc20gdm9sYXRpbGUoUFBDX1JBRElYX0lOVkFMSURBVEVfRVJBVF9HVUVTVCA6IDogOiJtZW1vcnkiKTsKLX0KLQotCiBzdGF0aWMgaW5saW5lIHZvaWQgX190bGJpZWxfdmFfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCiAJCQkJICAgIHVuc2lnbmVkIGxvbmcgcGlkLCB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSwKIAkJCQkgICAgdW5zaWduZWQgbG9uZyBwc2l6ZSkKQEAgLTQwNyw2ICs0NTMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX190bGJpZV92YV9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKIAogCWZvciAoYWRkciA9IHN0YXJ0OyBhZGRyIDwgZW5kOyBhZGRyICs9IHBhZ2Vfc2l6ZSkKIAkJX190bGJpZV92YShhZGRyLCBwaWQsIGFwLCBSSUNfRkxVU0hfVExCKTsKKworCWZpeHVwX3RsYmllX3ZhX3JhbmdlKGFkZHIgLSBwYWdlX3NpemUsIHBpZCwgYXApOwogfQogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgX3RsYmllX3ZhKHVuc2lnbmVkIGxvbmcgdmEsIHVuc2lnbmVkIGxvbmcgcGlkLApAQCAtNDE2LDEwICs0NjQsNTcgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIF90bGJpZV92YSh1bnNpZ25lZCBsb25nIHZhLCB1bnNpZ25lZCBsb25nIHBpZCwKIAogCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKIAlfX3RsYmllX3ZhKHZhLCBwaWQsIGFwLCByaWMpOwotCWZpeHVwX3RsYmllKCk7CisJZml4dXBfdGxiaWVfdmEodmEsIHBpZCwgYXApOwogCWFzbSB2b2xhdGlsZSgiZWllaW87IHRsYnN5bmM7IHB0ZXN5bmMiOiA6IDoibWVtb3J5Iik7CiB9CiAKK3N0cnVjdCB0bGJpZWxfdmEgeworCXVuc2lnbmVkIGxvbmcgcGlkOworCXVuc2lnbmVkIGxvbmcgdmE7CisJdW5zaWduZWQgbG9uZyBwc2l6ZTsKKwl1bnNpZ25lZCBsb25nIHJpYzsKK307CisKK3N0YXRpYyB2b2lkIGRvX3RsYmllbF92YSh2b2lkICppbmZvKQoreworCXN0cnVjdCB0bGJpZWxfdmEgKnQgPSBpbmZvOworCisJaWYgKHQtPnJpYyA9PSBSSUNfRkxVU0hfVExCKQorCQlfdGxiaWVsX3ZhKHQtPnZhLCB0LT5waWQsIHQtPnBzaXplLCBSSUNfRkxVU0hfVExCKTsKKwllbHNlIGlmICh0LT5yaWMgPT0gUklDX0ZMVVNIX1BXQykKKwkJX3RsYmllbF92YSh0LT52YSwgdC0+cGlkLCB0LT5wc2l6ZSwgUklDX0ZMVVNIX1BXQyk7CisJZWxzZQorCQlfdGxiaWVsX3ZhKHQtPnZhLCB0LT5waWQsIHQtPnBzaXplLCBSSUNfRkxVU0hfQUxMKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIF90bGJpZWxfdmFfbXVsdGljYXN0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCXVuc2lnbmVkIGxvbmcgdmEsIHVuc2lnbmVkIGxvbmcgcGlkLAorCQkJCXVuc2lnbmVkIGxvbmcgcHNpemUsIHVuc2lnbmVkIGxvbmcgcmljKQoreworCXN0cnVjdCBjcHVtYXNrICpjcHVzID0gbW1fY3B1bWFzayhtbSk7CisJc3RydWN0IHRsYmllbF92YSB0ID0geyAudmEgPSB2YSwgLnBpZCA9IHBpZCwgLnBzaXplID0gcHNpemUsIC5yaWMgPSByaWMgfTsKKwlvbl9lYWNoX2NwdV9tYXNrKGNwdXMsIGRvX3RsYmllbF92YSwgJnQsIDEpOworCWlmIChhdG9taWNfcmVhZCgmbW0tPmNvbnRleHQuY29wcm9zKSA+IDApCisJCV90bGJpZV92YSh2YSwgcGlkLCBwc2l6ZSwgUklDX0ZMVVNIX1RMQik7Cit9CisKK3N0cnVjdCB0bGJpZWxfdmFfcmFuZ2UgeworCXVuc2lnbmVkIGxvbmcgcGlkOworCXVuc2lnbmVkIGxvbmcgc3RhcnQ7CisJdW5zaWduZWQgbG9uZyBlbmQ7CisJdW5zaWduZWQgbG9uZyBwYWdlX3NpemU7CisJdW5zaWduZWQgbG9uZyBwc2l6ZTsKKwlib29sIGFsc29fcHdjOworfTsKKworc3RhdGljIHZvaWQgZG9fdGxiaWVsX3ZhX3JhbmdlKHZvaWQgKmluZm8pCit7CisJc3RydWN0IHRsYmllbF92YV9yYW5nZSAqdCA9IGluZm87CisKKwlfdGxiaWVsX3ZhX3JhbmdlKHQtPnN0YXJ0LCB0LT5lbmQsIHQtPnBpZCwgdC0+cGFnZV9zaXplLAorCQkJCSAgICB0LT5wc2l6ZSwgdC0+YWxzb19wd2MpOworfQorCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgX3RsYmllX2xwaWRfdmEodW5zaWduZWQgbG9uZyB2YSwgdW5zaWduZWQgbG9uZyBscGlkLAogCQkJICAgICAgdW5zaWduZWQgbG9uZyBwc2l6ZSwgdW5zaWduZWQgbG9uZyByaWMpCiB7CkBAIC00MjcsNyArNTIyLDcgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIF90bGJpZV9scGlkX3ZhKHVuc2lnbmVkIGxvbmcgdmEsIHVuc2lnbmVkIGxvbmcgbHBpZCwKIAogCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKIAlfX3RsYmllX2xwaWRfdmEodmEsIGxwaWQsIGFwLCByaWMpOwotCWZpeHVwX3RsYmllX2xwaWQobHBpZCk7CisJZml4dXBfdGxiaWVfbHBpZF92YSh2YSwgbHBpZCwgYXApOwogCWFzbSB2b2xhdGlsZSgiZWllaW87IHRsYnN5bmM7IHB0ZXN5bmMiOiA6IDoibWVtb3J5Iik7CiB9CiAKQEAgLTQzOSwxMCArNTM0LDI0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfdGxiaWVfdmFfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCiAJaWYgKGFsc29fcHdjKQogCQlfX3RsYmllX3BpZChwaWQsIFJJQ19GTFVTSF9QV0MpOwogCV9fdGxiaWVfdmFfcmFuZ2Uoc3RhcnQsIGVuZCwgcGlkLCBwYWdlX3NpemUsIHBzaXplKTsKLQlmaXh1cF90bGJpZSgpOwogCWFzbSB2b2xhdGlsZSgiZWllaW87IHRsYnN5bmM7IHB0ZXN5bmMiOiA6IDoibWVtb3J5Iik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBfdGxiaWVsX3ZhX3JhbmdlX211bHRpY2FzdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKKwkJCQl1bnNpZ25lZCBsb25nIHBpZCwgdW5zaWduZWQgbG9uZyBwYWdlX3NpemUsCisJCQkJdW5zaWduZWQgbG9uZyBwc2l6ZSwgYm9vbCBhbHNvX3B3YykKK3sKKwlzdHJ1Y3QgY3B1bWFzayAqY3B1cyA9IG1tX2NwdW1hc2sobW0pOworCXN0cnVjdCB0bGJpZWxfdmFfcmFuZ2UgdCA9IHsgLnN0YXJ0ID0gc3RhcnQsIC5lbmQgPSBlbmQsCisJCQkJLnBpZCA9IHBpZCwgLnBhZ2Vfc2l6ZSA9IHBhZ2Vfc2l6ZSwKKwkJCQkucHNpemUgPSBwc2l6ZSwgLmFsc29fcHdjID0gYWxzb19wd2MgfTsKKworCW9uX2VhY2hfY3B1X21hc2soY3B1cywgZG9fdGxiaWVsX3ZhX3JhbmdlLCAmdCwgMSk7CisJaWYgKGF0b21pY19yZWFkKCZtbS0+Y29udGV4dC5jb3Byb3MpID4gMCkKKwkJX3RsYmllX3ZhX3JhbmdlKHN0YXJ0LCBlbmQsIHBpZCwgcGFnZV9zaXplLCBwc2l6ZSwgYWxzb19wd2MpOworfQorCiAvKgogICogQmFzZSBUTEIgZmx1c2hpbmcgb3BlcmF0aW9uczoKICAqCkBAIC01ODAsMTAgKzY4OSwxNCBAQCB2b2lkIHJhZGl4X19mbHVzaF90bGJfbW0oc3RydWN0IG1tX3N0cnVjdCAqbW0pCiAJCQlnb3RvIGxvY2FsOwogCQl9CiAKLQkJaWYgKG1tX25lZWRzX2ZsdXNoX2VzY2FsYXRpb24obW0pKQotCQkJX3RsYmllX3BpZChwaWQsIFJJQ19GTFVTSF9BTEwpOwotCQllbHNlCi0JCQlfdGxiaWVfcGlkKHBpZCwgUklDX0ZMVVNIX1RMQik7CisJCWlmIChjcHV0bGJfdXNlX3RsYmllKCkpIHsKKwkJCWlmIChtbV9uZWVkc19mbHVzaF9lc2NhbGF0aW9uKG1tKSkKKwkJCQlfdGxiaWVfcGlkKHBpZCwgUklDX0ZMVVNIX0FMTCk7CisJCQllbHNlCisJCQkJX3RsYmllX3BpZChwaWQsIFJJQ19GTFVTSF9UTEIpOworCQl9IGVsc2UgeworCQkJX3RsYmllbF9waWRfbXVsdGljYXN0KG1tLCBwaWQsIFJJQ19GTFVTSF9UTEIpOworCQl9CiAJfSBlbHNlIHsKIGxvY2FsOgogCQlfdGxiaWVsX3BpZChwaWQsIFJJQ19GTFVTSF9UTEIpOwpAQCAtNjA5LDcgKzcyMiwxMCBAQCBzdGF0aWMgdm9pZCBfX2ZsdXNoX2FsbF9tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgYm9vbCBmdWxsbW0pCiAJCQkJZ290byBsb2NhbDsKIAkJCX0KIAkJfQotCQlfdGxiaWVfcGlkKHBpZCwgUklDX0ZMVVNIX0FMTCk7CisJCWlmIChjcHV0bGJfdXNlX3RsYmllKCkpCisJCQlfdGxiaWVfcGlkKHBpZCwgUklDX0ZMVVNIX0FMTCk7CisJCWVsc2UKKwkJCV90bGJpZWxfcGlkX211bHRpY2FzdChtbSwgcGlkLCBSSUNfRkxVU0hfQUxMKTsKIAl9IGVsc2UgewogbG9jYWw6CiAJCV90bGJpZWxfcGlkKHBpZCwgUklDX0ZMVVNIX0FMTCk7CkBAIC02NDQsNyArNzYwLDEwIEBAIHZvaWQgcmFkaXhfX2ZsdXNoX3RsYl9wYWdlX3BzaXplKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIHZtYWRkciwKIAkJCWV4aXRfZmx1c2hfbGF6eV90bGJzKG1tKTsKIAkJCWdvdG8gbG9jYWw7CiAJCX0KLQkJX3RsYmllX3ZhKHZtYWRkciwgcGlkLCBwc2l6ZSwgUklDX0ZMVVNIX1RMQik7CisJCWlmIChjcHV0bGJfdXNlX3RsYmllKCkpCisJCQlfdGxiaWVfdmEodm1hZGRyLCBwaWQsIHBzaXplLCBSSUNfRkxVU0hfVExCKTsKKwkJZWxzZQorCQkJX3RsYmllbF92YV9tdWx0aWNhc3QobW0sIHZtYWRkciwgcGlkLCBwc2l6ZSwgUklDX0ZMVVNIX1RMQik7CiAJfSBlbHNlIHsKIGxvY2FsOgogCQlfdGxiaWVsX3ZhKHZtYWRkciwgcGlkLCBwc2l6ZSwgUklDX0ZMVVNIX1RMQik7CkBAIC02NjYsNiArNzg1LDI0IEBAIEVYUE9SVF9TWU1CT0wocmFkaXhfX2ZsdXNoX3RsYl9wYWdlKTsKICNkZWZpbmUgcmFkaXhfX2ZsdXNoX2FsbF9tbSByYWRpeF9fbG9jYWxfZmx1c2hfYWxsX21tCiAjZW5kaWYgLyogQ09ORklHX1NNUCAqLwogCitzdGF0aWMgdm9pZCBkb190bGJpZWxfa2VybmVsKHZvaWQgKmluZm8pCit7CisJX3RsYmllbF9waWQoMCwgUklDX0ZMVVNIX0FMTCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfdGxiaWVsX2tlcm5lbF9icm9hZGNhc3Qodm9pZCkKK3sKKwlvbl9lYWNoX2NwdShkb190bGJpZWxfa2VybmVsLCBOVUxMLCAxKTsKKwlpZiAodGxiaWVfY2FwYWJsZSkgeworCQkvKgorCQkgKiBDb2hlcmVudCBhY2NlbGVyYXRvcnMgZG9uJ3QgcmVmY291bnQga2VybmVsIG1lbW9yeSBtYXBwaW5ncywKKwkJICogc28gaGF2ZSB0byBhbHdheXMgaXNzdWUgYSB0bGJpZSBmb3IgdGhlbS4gVGhpcyBpcyBxdWl0ZSBhCisJCSAqIHNsb3cgcGF0aCBhbnl3YXkuCisJCSAqLworCQlfdGxiaWVfcGlkKDAsIFJJQ19GTFVTSF9BTEwpOworCX0KK30KKwogLyoKICAqIElmIGtlcm5lbCBUTEJJcyBldmVyIGJlY29tZSBsb2NhbCByYXRoZXIgdGhhbiBnbG9iYWwsIHRoZW4KICAqIGRyaXZlcnMvbWlzYy9vY3hsL2xpbmsuYzpvY3hsX2xpbmtfYWRkX3BlIHdpbGwgbmVlZCBzb21lIHdvcmssIGFzIGl0CkBAIC02NzMsNyArODEwLDEwIEBAIEVYUE9SVF9TWU1CT0wocmFkaXhfX2ZsdXNoX3RsYl9wYWdlKTsKICAqLwogdm9pZCByYWRpeF9fZmx1c2hfdGxiX2tlcm5lbF9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKIHsKLQlfdGxiaWVfcGlkKDAsIFJJQ19GTFVTSF9BTEwpOworCWlmIChjcHV0bGJfdXNlX3RsYmllKCkpCisJCV90bGJpZV9waWQoMCwgUklDX0ZMVVNIX0FMTCk7CisJZWxzZQorCQlfdGxiaWVsX2tlcm5lbF9icm9hZGNhc3QoKTsKIH0KIEVYUE9SVF9TWU1CT0wocmFkaXhfX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UpOwogCkBAIC03MjksMTAgKzg2OSwxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19yYWRpeF9fZmx1c2hfdGxiX3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQlpZiAobG9jYWwpIHsKIAkJCV90bGJpZWxfcGlkKHBpZCwgUklDX0ZMVVNIX1RMQik7CiAJCX0gZWxzZSB7Ci0JCQlpZiAobW1fbmVlZHNfZmx1c2hfZXNjYWxhdGlvbihtbSkpCi0JCQkJX3RsYmllX3BpZChwaWQsIFJJQ19GTFVTSF9BTEwpOwotCQkJZWxzZQotCQkJCV90bGJpZV9waWQocGlkLCBSSUNfRkxVU0hfVExCKTsKKwkJCWlmIChjcHV0bGJfdXNlX3RsYmllKCkpIHsKKwkJCQlpZiAobW1fbmVlZHNfZmx1c2hfZXNjYWxhdGlvbihtbSkpCisJCQkJCV90bGJpZV9waWQocGlkLCBSSUNfRkxVU0hfQUxMKTsKKwkJCQllbHNlCisJCQkJCV90bGJpZV9waWQocGlkLCBSSUNfRkxVU0hfVExCKTsKKwkJCX0gZWxzZSB7CisJCQkJX3RsYmllbF9waWRfbXVsdGljYXN0KG1tLCBwaWQsIFJJQ19GTFVTSF9UTEIpOworCQkJfQogCQl9CiAJfSBlbHNlIHsKIAkJYm9vbCBoZmx1c2ggPSBmbHVzaF9hbGxfc2l6ZXM7CkBAIC03NTcsOCArOTAxLDggQEAgc3RhdGljIGlubGluZSB2b2lkIF9fcmFkaXhfX2ZsdXNoX3RsYl9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCQlnZmx1c2ggPSBmYWxzZTsKIAkJfQogCi0JCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKIAkJaWYgKGxvY2FsKSB7CisJCQlhc20gdm9sYXRpbGUoInB0ZXN5bmMiOiA6IDoibWVtb3J5Iik7CiAJCQlfX3RsYmllbF92YV9yYW5nZShzdGFydCwgZW5kLCBwaWQsIHBhZ2Vfc2l6ZSwgbW11X3ZpcnR1YWxfcHNpemUpOwogCQkJaWYgKGhmbHVzaCkKIAkJCQlfX3RsYmllbF92YV9yYW5nZShoc3RhcnQsIGhlbmQsIHBpZCwKQEAgLTc2Nyw3ICs5MTEsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19yYWRpeF9fZmx1c2hfdGxiX3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJCV9fdGxiaWVsX3ZhX3JhbmdlKGdzdGFydCwgZ2VuZCwgcGlkLAogCQkJCQkJUFVEX1NJWkUsIE1NVV9QQUdFXzFHKTsKIAkJCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKLQkJfSBlbHNlIHsKKwkJfSBlbHNlIGlmIChjcHV0bGJfdXNlX3RsYmllKCkpIHsKKwkJCWFzbSB2b2xhdGlsZSgicHRlc3luYyI6IDogOiJtZW1vcnkiKTsKIAkJCV9fdGxiaWVfdmFfcmFuZ2Uoc3RhcnQsIGVuZCwgcGlkLCBwYWdlX3NpemUsIG1tdV92aXJ0dWFsX3BzaXplKTsKIAkJCWlmIChoZmx1c2gpCiAJCQkJX190bGJpZV92YV9yYW5nZShoc3RhcnQsIGhlbmQsIHBpZCwKQEAgLTc3NSw4ICs5MjAsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fcmFkaXhfX2ZsdXNoX3RsYl9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCWlmIChnZmx1c2gpCiAJCQkJX190bGJpZV92YV9yYW5nZShnc3RhcnQsIGdlbmQsIHBpZCwKIAkJCQkJCVBVRF9TSVpFLCBNTVVfUEFHRV8xRyk7Ci0JCQlmaXh1cF90bGJpZSgpOworCiAJCQlhc20gdm9sYXRpbGUoImVpZWlvOyB0bGJzeW5jOyBwdGVzeW5jIjogOiA6Im1lbW9yeSIpOworCQl9IGVsc2UgeworCQkJX3RsYmllbF92YV9yYW5nZV9tdWx0aWNhc3QobW0sCisJCQkJCXN0YXJ0LCBlbmQsIHBpZCwgcGFnZV9zaXplLCBtbXVfdmlydHVhbF9wc2l6ZSwgZmFsc2UpOworCQkJaWYgKGhmbHVzaCkKKwkJCQlfdGxiaWVsX3ZhX3JhbmdlX211bHRpY2FzdChtbSwKKwkJCQkJaHN0YXJ0LCBoZW5kLCBwaWQsIFBNRF9TSVpFLCBNTVVfUEFHRV8yTSwgZmFsc2UpOworCQkJaWYgKGdmbHVzaCkKKwkJCQlfdGxiaWVsX3ZhX3JhbmdlX211bHRpY2FzdChtbSwKKwkJCQkJZ3N0YXJ0LCBnZW5kLCBwaWQsIFBVRF9TSVpFLCBNTVVfUEFHRV8xRywgZmFsc2UpOwogCQl9CiAJfQogCXByZWVtcHRfZW5hYmxlKCk7CkBAIC04MzUsMzIgKzk4OSwxOSBAQCBFWFBPUlRfU1lNQk9MX0dQTChyYWRpeF9fZmx1c2hfcHdjX2xwaWQpOwogLyoKICAqIEZsdXNoIHBhcnRpdGlvbiBzY29wZWQgdHJhbnNsYXRpb25zIGZyb20gTFBJRCAoPUxQSURSKQogICovCi12b2lkIHJhZGl4X19mbHVzaF90bGJfbHBpZCh1bnNpZ25lZCBpbnQgbHBpZCkKK3ZvaWQgcmFkaXhfX2ZsdXNoX2FsbF9scGlkKHVuc2lnbmVkIGludCBscGlkKQogewogCV90bGJpZV9scGlkKGxwaWQsIFJJQ19GTFVTSF9BTEwpOwogfQotRVhQT1JUX1NZTUJPTF9HUEwocmFkaXhfX2ZsdXNoX3RsYl9scGlkKTsKK0VYUE9SVF9TWU1CT0xfR1BMKHJhZGl4X19mbHVzaF9hbGxfbHBpZCk7CiAKIC8qCi0gKiBGbHVzaCBwYXJ0aXRpb24gc2NvcGVkIHRyYW5zbGF0aW9ucyBmcm9tIExQSUQgKD1MUElEUikKKyAqIEZsdXNoIHByb2Nlc3Mgc2NvcGVkIHRyYW5zbGF0aW9ucyBmcm9tIExQSUQgKD1MUElEUikKICAqLwotdm9pZCByYWRpeF9fbG9jYWxfZmx1c2hfdGxiX2xwaWQodW5zaWduZWQgaW50IGxwaWQpCit2b2lkIHJhZGl4X19mbHVzaF9hbGxfbHBpZF9ndWVzdCh1bnNpZ25lZCBpbnQgbHBpZCkKIHsKLQlfdGxiaWVsX2xwaWQobHBpZCwgUklDX0ZMVVNIX0FMTCk7CisJX3RsYmllX2xwaWRfZ3Vlc3QobHBpZCwgUklDX0ZMVVNIX0FMTCk7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChyYWRpeF9fbG9jYWxfZmx1c2hfdGxiX2xwaWQpOwotCi0vKgotICogRmx1c2ggcHJvY2VzcyBzY29wZWQgdHJhbnNsYXRpb25zIGZyb20gTFBJRCAoPUxQSURSKS4KLSAqIEltcG9ydGFudCBkaWZmZXJlbmNlLCB0aGUgZ3Vlc3Qgbm9ybWFsbHkgbWFuYWdlcyBpdHMgb3duIHRyYW5zbGF0aW9ucywKLSAqIGJ1dCBzb21lIGNhc2VzIGUuZy4sIHZDUFUgQ1BVIG1pZ3JhdGlvbiByZXF1aXJlIEtWTSB0byBmbHVzaC4KLSAqLwotdm9pZCByYWRpeF9fbG9jYWxfZmx1c2hfdGxiX2xwaWRfZ3Vlc3QodW5zaWduZWQgaW50IGxwaWQpCi17Ci0JX3RsYmllbF9scGlkX2d1ZXN0KGxwaWQsIFJJQ19GTFVTSF9BTEwpOwotfQotRVhQT1JUX1NZTUJPTF9HUEwocmFkaXhfX2xvY2FsX2ZsdXNoX3RsYl9scGlkX2d1ZXN0KTsKLQogCiBzdGF0aWMgdm9pZCByYWRpeF9fZmx1c2hfdGxiX3B3Y19yYW5nZV9wc2l6ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBzdGFydCwKIAkJCQkgIHVuc2lnbmVkIGxvbmcgZW5kLCBpbnQgcHNpemUpOwpAQCAtOTY2LDE2ICsxMTA3LDI2IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBfX3JhZGl4X19mbHVzaF90bGJfcmFuZ2VfcHNpemUoc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCWlmIChsb2NhbCkgewogCQkJX3RsYmllbF9waWQocGlkLCBhbHNvX3B3YyA/IFJJQ19GTFVTSF9BTEwgOiBSSUNfRkxVU0hfVExCKTsKIAkJfSBlbHNlIHsKLQkJCWlmIChtbV9uZWVkc19mbHVzaF9lc2NhbGF0aW9uKG1tKSkKLQkJCQlhbHNvX3B3YyA9IHRydWU7CisJCQlpZiAoY3B1dGxiX3VzZV90bGJpZSgpKSB7CisJCQkJaWYgKG1tX25lZWRzX2ZsdXNoX2VzY2FsYXRpb24obW0pKQorCQkJCQlhbHNvX3B3YyA9IHRydWU7CiAKLQkJCV90bGJpZV9waWQocGlkLCBhbHNvX3B3YyA/IFJJQ19GTFVTSF9BTEwgOiBSSUNfRkxVU0hfVExCKTsKKwkJCQlfdGxiaWVfcGlkKHBpZCwKKwkJCQkJYWxzb19wd2MgPyAgUklDX0ZMVVNIX0FMTCA6IFJJQ19GTFVTSF9UTEIpOworCQkJfSBlbHNlIHsKKwkJCQlfdGxiaWVsX3BpZF9tdWx0aWNhc3QobW0sIHBpZCwKKwkJCQkJYWxzb19wd2MgPyAgUklDX0ZMVVNIX0FMTCA6IFJJQ19GTFVTSF9UTEIpOworCQkJfQorCiAJCX0KIAl9IGVsc2UgewogCQlpZiAobG9jYWwpCiAJCQlfdGxiaWVsX3ZhX3JhbmdlKHN0YXJ0LCBlbmQsIHBpZCwgcGFnZV9zaXplLCBwc2l6ZSwgYWxzb19wd2MpOwotCQllbHNlCisJCWVsc2UgaWYgKGNwdXRsYl91c2VfdGxiaWUoKSkKIAkJCV90bGJpZV92YV9yYW5nZShzdGFydCwgZW5kLCBwaWQsIHBhZ2Vfc2l6ZSwgcHNpemUsIGFsc29fcHdjKTsKKwkJZWxzZQorCQkJX3RsYmllbF92YV9yYW5nZV9tdWx0aWNhc3QobW0sCisJCQkJCXN0YXJ0LCBlbmQsIHBpZCwgcGFnZV9zaXplLCBwc2l6ZSwgYWxzb19wd2MpOwogCX0KIAlwcmVlbXB0X2VuYWJsZSgpOwogfQpAQCAtMTAxNyw3ICsxMTY4LDExIEBAIHZvaWQgcmFkaXhfX2ZsdXNoX3RsYl9jb2xsYXBzZWRfcG1kKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIpCiAJCQlleGl0X2ZsdXNoX2xhenlfdGxicyhtbSk7CiAJCQlnb3RvIGxvY2FsOwogCQl9Ci0JCV90bGJpZV92YV9yYW5nZShhZGRyLCBlbmQsIHBpZCwgUEFHRV9TSVpFLCBtbXVfdmlydHVhbF9wc2l6ZSwgdHJ1ZSk7CisJCWlmIChjcHV0bGJfdXNlX3RsYmllKCkpCisJCQlfdGxiaWVfdmFfcmFuZ2UoYWRkciwgZW5kLCBwaWQsIFBBR0VfU0laRSwgbW11X3ZpcnR1YWxfcHNpemUsIHRydWUpOworCQllbHNlCisJCQlfdGxiaWVsX3ZhX3JhbmdlX211bHRpY2FzdChtbSwKKwkJCQkJYWRkciwgZW5kLCBwaWQsIFBBR0VfU0laRSwgbW11X3ZpcnR1YWxfcHNpemUsIHRydWUpOwogCX0gZWxzZSB7CiBsb2NhbDoKIAkJX3RsYmllbF92YV9yYW5nZShhZGRyLCBlbmQsIHBpZCwgUEFHRV9TSVpFLCBtbXVfdmlydHVhbF9wc2l6ZSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvc3VicGFnZV9wcm90LmMgYi9hcmNoL3Bvd2VycGMvbW0vYm9vazNzNjQvc3VicGFnZV9wcm90LmMKaW5kZXggOWJhMDdlNS4uMmVmMjRhNSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL2Jvb2szczY0L3N1YnBhZ2VfcHJvdC5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9ib29rM3M2NC9zdWJwYWdlX3Byb3QuYwpAQCAtNyw3ICs3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9nZnAuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvcGFnZXdhbGsuaD4KICNpbmNsdWRlIDxsaW51eC9odWdldGxiLmg+CiAjaW5jbHVkZSA8bGludXgvc3lzY2FsbHMuaD4KIApAQCAtMTM5LDE0ICsxMzksMTQgQEAgc3RhdGljIGludCBzdWJwYWdlX3dhbGtfcG1kX2VudHJ5KHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBzdWJwYWdlX3dhbGtfb3BzID0geworCS5wbWRfZW50cnkJPSBzdWJwYWdlX3dhbGtfcG1kX2VudHJ5LAorfTsKKwogc3RhdGljIHZvaWQgc3VicGFnZV9tYXJrX3ZtYV9ub2h1Z2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJCQkgICAgdW5zaWduZWQgbG9uZyBsZW4pCiB7CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7Ci0Jc3RydWN0IG1tX3dhbGsgc3VicGFnZV9wcm90b193YWxrID0gewotCQkubW0gPSBtbSwKLQkJLnBtZF9lbnRyeSA9IHN1YnBhZ2Vfd2Fsa19wbWRfZW50cnksCi0JfTsKIAogCS8qCiAJICogV2UgZG9uJ3QgdHJ5IHRvbyBoYXJkLCB3ZSBqdXN0IG1hcmsgYWxsIHRoZSB2bWEgaW4gdGhhdCByYW5nZQpAQCAtMTYzLDcgKzE2Myw3IEBAIHN0YXRpYyB2b2lkIHN1YnBhZ2VfbWFya192bWFfbm9odWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJCWlmICh2bWEtPnZtX3N0YXJ0ID49IChhZGRyICsgbGVuKSkKIAkJCWJyZWFrOwogCQl2bWEtPnZtX2ZsYWdzIHw9IFZNX05PSFVHRVBBR0U7Ci0JCXdhbGtfcGFnZV92bWEodm1hLCAmc3VicGFnZV9wcm90b193YWxrKTsKKwkJd2Fsa19wYWdlX3ZtYSh2bWEsICZzdWJwYWdlX3dhbGtfb3BzLCBOVUxMKTsKIAkJdm1hID0gdm1hLT52bV9uZXh0OwogCX0KIH0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9kbWEtbm9uY29oZXJlbnQuYyBiL2FyY2gvcG93ZXJwYy9tbS9kbWEtbm9uY29oZXJlbnQuYwppbmRleCBjNjE3MjgyZC4uMmE4Mjk4NCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL2RtYS1ub25jb2hlcmVudC5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9kbWEtbm9uY29oZXJlbnQuYwpAQCAtNCwzMTAgKzQsMTggQEAKICAqICAgIENvcHlyaWdodCAoQykgMjAwMSBEYW4gTWFsZWsgKGRtYWxla0BqbGMubmV0KQogICoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDAgUnVzc2VsbCBLaW5nCi0gKgotICogQ29uc2lzdGVudCBtZW1vcnkgYWxsb2NhdG9ycy4gIFVzZWQgZm9yIERNQSBkZXZpY2VzIHRoYXQgd2FudCB0bwotICogc2hhcmUgdW5jYWNoZWQgbWVtb3J5IHdpdGggdGhlIHByb2Nlc3NvciBjb3JlLiAgVGhlIGZ1bmN0aW9uIHJldHVybgotICogaXMgdGhlIHZpcnR1YWwgYWRkcmVzcyBhbmQgJ2RtYV9oYW5kbGUnIGlzIHRoZSBwaHlzaWNhbCBhZGRyZXNzLgotICogTW9zdGx5IHN0b2xlbiBmcm9tIHRoZSBBUk0gcG9ydCwgd2l0aCBzb21lIGNoYW5nZXMgZm9yIFBvd2VyUEMuCi0gKgkJCQkJCS0tIERhbgotICoKLSAqIFJlb3JnYW5pemVkIHRvIGdldCByaWQgb2YgdGhlIGFyY2gtc3BlY2lmaWMgY29uc2lzdGVudF8qIGZ1bmN0aW9ucwotICogYW5kIHByb3ZpZGUgbm9uLWNvaGVyZW50IGltcGxlbWVudGF0aW9ucyBmb3IgdGhlIERNQSBBUEkuIC1NYXR0Ci0gKgotICogQWRkZWQgaW5faW50ZXJydXB0KCkgc2FmZSBkbWFfYWxsb2NfY29oZXJlbnQoKS9kbWFfZnJlZV9jb2hlcmVudCgpCi0gKiBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpcyBwdWxsZWQgc3RyYWlnaHQgZnJvbSBBUk0gYW5kIGJhcmVseQotICogbW9kaWZpZWQuIC1NYXR0CiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWRpcmVjdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1ub25jb2hlcmVudC5oPgotI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogCiAjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CiAjaW5jbHVkZSA8YXNtL2RtYS5oPgogCi0jaW5jbHVkZSA8bW0vbW11X2RlY2wuaD4KLQotLyoKLSAqIFRoaXMgYWRkcmVzcyByYW5nZSBkZWZhdWx0cyB0byBhIHZhbHVlIHRoYXQgaXMgc2FmZSBmb3IgYWxsCi0gKiBwbGF0Zm9ybXMgd2hpY2ggY3VycmVudGx5IHNldCBDT05GSUdfTk9UX0NPSEVSRU5UX0NBQ0hFLiBJdAotICogY2FuIGJlIGZ1cnRoZXIgY29uZmlndXJlZCBmb3Igc3BlY2lmaWMgYXBwbGljYXRpb25zIHVuZGVyCi0gKiB0aGUgIkFkdmFuY2VkIFNldHVwIiBtZW51LiAtTWF0dAotICovCi0jZGVmaW5lIENPTlNJU1RFTlRfQkFTRQkJKElPUkVNQVBfVE9QKQotI2RlZmluZSBDT05TSVNURU5UX0VORCAJCShDT05TSVNURU5UX0JBU0UgKyBDT05GSUdfQ09OU0lTVEVOVF9TSVpFKQotI2RlZmluZSBDT05TSVNURU5UX09GRlNFVCh4KQkoKCh1bnNpZ25lZCBsb25nKSh4KSAtIENPTlNJU1RFTlRfQkFTRSkgPj4gUEFHRV9TSElGVCkKLQotLyoKLSAqIFRoaXMgaXMgdGhlIHBhZ2UgdGFibGUgKDJNQikgY292ZXJpbmcgdW5jYWNoZWQsIERNQSBjb25zaXN0ZW50IGFsbG9jYXRpb25zCi0gKi8KLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0soY29uc2lzdGVudF9sb2NrKTsKLQotLyoKLSAqIFZNIHJlZ2lvbiBoYW5kbGluZyBzdXBwb3J0LgotICoKLSAqIFRoaXMgc2hvdWxkIGJlY29tZSBzb21ldGhpbmcgZ2VuZXJpYywgaGFuZGxpbmcgVk0gcmVnaW9uIGFsbG9jYXRpb25zIGZvcgotICogdm1hbGxvYyBhbmQgc2ltaWxhciAoaW9yZW1hcCwgbW9kdWxlIHNwYWNlLCBldGMpLgotICoKLSAqIEkgZW52aXNhZ2Ugdm1hbGxvYygpJ3Mgc3VwcG9ydGluZyB2bV9zdHJ1Y3QgYmVjb21pbmc6Ci0gKgotICogIHN0cnVjdCB2bV9zdHJ1Y3QgewotICogICAgc3RydWN0IHZtX3JlZ2lvbglyZWdpb247Ci0gKiAgICB1bnNpZ25lZCBsb25nCWZsYWdzOwotICogICAgc3RydWN0IHBhZ2UJKipwYWdlczsKLSAqICAgIHVuc2lnbmVkIGludAlucl9wYWdlczsKLSAqICAgIHVuc2lnbmVkIGxvbmcJcGh5c19hZGRyOwotICogIH07Ci0gKgotICogZ2V0X3ZtX2FyZWEoKSB3b3VsZCB0aGVuIGNhbGwgdm1fcmVnaW9uX2FsbG9jIHdpdGggYW4gYXBwcm9wcmlhdGUKLSAqIHN0cnVjdCB2bV9yZWdpb24gaGVhZCAoZWcpOgotICoKLSAqICBzdHJ1Y3Qgdm1fcmVnaW9uIHZtYWxsb2NfaGVhZCA9IHsKLSAqCS52bV9saXN0CT0gTElTVF9IRUFEX0lOSVQodm1hbGxvY19oZWFkLnZtX2xpc3QpLAotICoJLnZtX3N0YXJ0CT0gVk1BTExPQ19TVEFSVCwKLSAqCS52bV9lbmQJCT0gVk1BTExPQ19FTkQsCi0gKiAgfTsKLSAqCi0gKiBIb3dldmVyLCB2bWFsbG9jX2hlYWQudm1fc3RhcnQgaXMgdmFyaWFibGUgKHR5cGljYWxseSwgaXQgaXMgZGVwZW5kZW50IG9uCi0gKiB0aGUgYW1vdW50IG9mIFJBTSBmb3VuZCBhdCBib290IHRpbWUuKSAgSSB3b3VsZCBpbWFnaW5lIHRoYXQgZ2V0X3ZtX2FyZWEoKQotICogd291bGQgaGF2ZSB0byBpbml0aWFsaXNlIHRoaXMgZWFjaCB0aW1lIHByaW9yIHRvIGNhbGxpbmcgdm1fcmVnaW9uX2FsbG9jKCkuCi0gKi8KLXN0cnVjdCBwcGNfdm1fcmVnaW9uIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkCXZtX2xpc3Q7Ci0JdW5zaWduZWQgbG9uZwkJdm1fc3RhcnQ7Ci0JdW5zaWduZWQgbG9uZwkJdm1fZW5kOwotfTsKLQotc3RhdGljIHN0cnVjdCBwcGNfdm1fcmVnaW9uIGNvbnNpc3RlbnRfaGVhZCA9IHsKLQkudm1fbGlzdAk9IExJU1RfSEVBRF9JTklUKGNvbnNpc3RlbnRfaGVhZC52bV9saXN0KSwKLQkudm1fc3RhcnQJPSBDT05TSVNURU5UX0JBU0UsCi0JLnZtX2VuZAkJPSBDT05TSVNURU5UX0VORCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcHBjX3ZtX3JlZ2lvbiAqCi1wcGNfdm1fcmVnaW9uX2FsbG9jKHN0cnVjdCBwcGNfdm1fcmVnaW9uICpoZWFkLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwKQotewotCXVuc2lnbmVkIGxvbmcgYWRkciA9IGhlYWQtPnZtX3N0YXJ0LCBlbmQgPSBoZWFkLT52bV9lbmQgLSBzaXplOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IHBwY192bV9yZWdpb24gKmMsICpuZXc7Ci0KLQluZXcgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgcHBjX3ZtX3JlZ2lvbiksIGdmcCk7Ci0JaWYgKCFuZXcpCi0JCWdvdG8gb3V0OwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNvbnNpc3RlbnRfbG9jaywgZmxhZ3MpOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjLCAmaGVhZC0+dm1fbGlzdCwgdm1fbGlzdCkgewotCQlpZiAoKGFkZHIgKyBzaXplKSA8IGFkZHIpCi0JCQlnb3RvIG5vc3BjOwotCQlpZiAoKGFkZHIgKyBzaXplKSA8PSBjLT52bV9zdGFydCkKLQkJCWdvdG8gZm91bmQ7Ci0JCWFkZHIgPSBjLT52bV9lbmQ7Ci0JCWlmIChhZGRyID4gZW5kKQotCQkJZ290byBub3NwYzsKLQl9Ci0KLSBmb3VuZDoKLQkvKgotCSAqIEluc2VydCB0aGlzIGVudHJ5IF9iZWZvcmVfIHRoZSBvbmUgd2UgZm91bmQuCi0JICovCi0JbGlzdF9hZGRfdGFpbCgmbmV3LT52bV9saXN0LCAmYy0+dm1fbGlzdCk7Ci0JbmV3LT52bV9zdGFydCA9IGFkZHI7Ci0JbmV3LT52bV9lbmQgPSBhZGRyICsgc2l6ZTsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvbnNpc3RlbnRfbG9jaywgZmxhZ3MpOwotCXJldHVybiBuZXc7Ci0KLSBub3NwYzoKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb25zaXN0ZW50X2xvY2ssIGZsYWdzKTsKLQlrZnJlZShuZXcpOwotIG91dDoKLQlyZXR1cm4gTlVMTDsKLX0KLQotc3RhdGljIHN0cnVjdCBwcGNfdm1fcmVnaW9uICpwcGNfdm1fcmVnaW9uX2ZpbmQoc3RydWN0IHBwY192bV9yZWdpb24gKmhlYWQsIHVuc2lnbmVkIGxvbmcgYWRkcikKLXsKLQlzdHJ1Y3QgcHBjX3ZtX3JlZ2lvbiAqYzsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnkoYywgJmhlYWQtPnZtX2xpc3QsIHZtX2xpc3QpIHsKLQkJaWYgKGMtPnZtX3N0YXJ0ID09IGFkZHIpCi0JCQlnb3RvIG91dDsKLQl9Ci0JYyA9IE5VTEw7Ci0gb3V0OgotCXJldHVybiBjOwotfQotCi0vKgotICogQWxsb2NhdGUgRE1BLWNvaGVyZW50IG1lbW9yeSBzcGFjZSBhbmQgcmV0dXJuIGJvdGggdGhlIGtlcm5lbCByZW1hcHBlZAotICogdmlydHVhbCBhbmQgYnVzIGFkZHJlc3MgZm9yIHRoYXQgc3BhY2UuCi0gKi8KLXZvaWQgKmFyY2hfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsCi0JCWdmcF90IGdmcCwgdW5zaWduZWQgbG9uZyBhdHRycykKLXsKLQlzdHJ1Y3QgcGFnZSAqcGFnZTsKLQlzdHJ1Y3QgcHBjX3ZtX3JlZ2lvbiAqYzsKLQl1bnNpZ25lZCBsb25nIG9yZGVyOwotCXU2NCBtYXNrID0gSVNBX0RNQV9USFJFU0hPTEQsIGxpbWl0OwotCi0JaWYgKGRldikgewotCQltYXNrID0gZGV2LT5jb2hlcmVudF9kbWFfbWFzazsKLQotCQkvKgotCQkgKiBTYW5pdHkgY2hlY2sgdGhlIERNQSBtYXNrIC0gaXQgbXVzdCBiZSBub24temVybywgYW5kCi0JCSAqIG11c3QgYmUgYWJsZSB0byBiZSBzYXRpc2ZpZWQgYnkgYSBETUEgYWxsb2NhdGlvbi4KLQkJICovCi0JCWlmIChtYXNrID09IDApIHsKLQkJCWRldl93YXJuKGRldiwgImNvaGVyZW50IERNQSBtYXNrIGlzIHVuc2V0XG4iKTsKLQkJCWdvdG8gbm9fcGFnZTsKLQkJfQotCi0JCWlmICgofm1hc2spICYgSVNBX0RNQV9USFJFU0hPTEQpIHsKLQkJCWRldl93YXJuKGRldiwgImNvaGVyZW50IERNQSBtYXNrICUjbGx4IGlzIHNtYWxsZXIgIgotCQkJCSAidGhhbiBzeXN0ZW0gR0ZQX0RNQSBtYXNrICUjbGx4XG4iLAotCQkJCSBtYXNrLCAodW5zaWduZWQgbG9uZyBsb25nKUlTQV9ETUFfVEhSRVNIT0xEKTsKLQkJCWdvdG8gbm9fcGFnZTsKLQkJfQotCX0KLQotCi0Jc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7Ci0JbGltaXQgPSAobWFzayArIDEpICYgfm1hc2s7Ci0JaWYgKChsaW1pdCAmJiBzaXplID49IGxpbWl0KSB8fAotCSAgICBzaXplID49IChDT05TSVNURU5UX0VORCAtIENPTlNJU1RFTlRfQkFTRSkpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY29oZXJlbnQgYWxsb2NhdGlvbiB0b28gYmlnIChyZXF1ZXN0ZWQgJSN4IG1hc2sgJSNMeClcbiIsCi0JCSAgICAgICBzaXplLCBtYXNrKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCi0Jb3JkZXIgPSBnZXRfb3JkZXIoc2l6ZSk7Ci0KLQkvKiBNaWdodCBiZSB1c2VmdWwgaWYgd2UgZXZlciBoYXZlIGEgcmVhbCBsZWdhY3kgRE1BIHpvbmUuLi4gKi8KLQlpZiAobWFzayAhPSAweGZmZmZmZmZmKQotCQlnZnAgfD0gR0ZQX0RNQTsKLQotCXBhZ2UgPSBhbGxvY19wYWdlcyhnZnAsIG9yZGVyKTsKLQlpZiAoIXBhZ2UpCi0JCWdvdG8gbm9fcGFnZTsKLQotCS8qCi0JICogSW52YWxpZGF0ZSBhbnkgZGF0YSB0aGF0IG1pZ2h0IGJlIGx1cmtpbmcgaW4gdGhlCi0JICoga2VybmVsIGRpcmVjdC1tYXBwZWQgcmVnaW9uIGZvciBkZXZpY2UgRE1BLgotCSAqLwotCXsKLQkJdW5zaWduZWQgbG9uZyBrYWRkciA9ICh1bnNpZ25lZCBsb25nKXBhZ2VfYWRkcmVzcyhwYWdlKTsKLQkJbWVtc2V0KHBhZ2VfYWRkcmVzcyhwYWdlKSwgMCwgc2l6ZSk7Ci0JCWZsdXNoX2RjYWNoZV9yYW5nZShrYWRkciwga2FkZHIgKyBzaXplKTsKLQl9Ci0KLQkvKgotCSAqIEFsbG9jYXRlIGEgdmlydHVhbCBhZGRyZXNzIGluIHRoZSBjb25zaXN0ZW50IG1hcHBpbmcgcmVnaW9uLgotCSAqLwotCWMgPSBwcGNfdm1fcmVnaW9uX2FsbG9jKCZjb25zaXN0ZW50X2hlYWQsIHNpemUsCi0JCQkgICAgZ2ZwICYgfihfX0dGUF9ETUEgfCBfX0dGUF9ISUdITUVNKSk7Ci0JaWYgKGMpIHsKLQkJdW5zaWduZWQgbG9uZyB2YWRkciA9IGMtPnZtX3N0YXJ0OwotCQlzdHJ1Y3QgcGFnZSAqZW5kID0gcGFnZSArICgxIDw8IG9yZGVyKTsKLQotCQlzcGxpdF9wYWdlKHBhZ2UsIG9yZGVyKTsKLQotCQkvKgotCQkgKiBTZXQgdGhlICJkbWEgaGFuZGxlIgotCQkgKi8KLQkJKmRtYV9oYW5kbGUgPSBwaHlzX3RvX2RtYShkZXYsIHBhZ2VfdG9fcGh5cyhwYWdlKSk7Ci0KLQkJZG8gewotCQkJU2V0UGFnZVJlc2VydmVkKHBhZ2UpOwotCQkJbWFwX2tlcm5lbF9wYWdlKHZhZGRyLCBwYWdlX3RvX3BoeXMocGFnZSksCi0JCQkJCXBncHJvdF9ub25jYWNoZWQoUEFHRV9LRVJORUwpKTsKLQkJCXBhZ2UrKzsKLQkJCXZhZGRyICs9IFBBR0VfU0laRTsKLQkJfSB3aGlsZSAoc2l6ZSAtPSBQQUdFX1NJWkUpOwotCi0JCS8qCi0JCSAqIEZyZWUgdGhlIG90aGVyd2lzZSB1bnVzZWQgcGFnZXMuCi0JCSAqLwotCQl3aGlsZSAocGFnZSA8IGVuZCkgewotCQkJX19mcmVlX3BhZ2UocGFnZSk7Ci0JCQlwYWdlKys7Ci0JCX0KLQotCQlyZXR1cm4gKHZvaWQgKiljLT52bV9zdGFydDsKLQl9Ci0KLQlpZiAocGFnZSkKLQkJX19mcmVlX3BhZ2VzKHBhZ2UsIG9yZGVyKTsKLSBub19wYWdlOgotCXJldHVybiBOVUxMOwotfQotCi0vKgotICogZnJlZSBhIHBhZ2UgYXMgZGVmaW5lZCBieSB0aGUgYWJvdmUgbWFwcGluZy4KLSAqLwotdm9pZCBhcmNoX2RtYV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHZvaWQgKnZhZGRyLAotCQlkbWFfYWRkcl90IGRtYV9oYW5kbGUsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCi17Ci0Jc3RydWN0IHBwY192bV9yZWdpb24gKmM7Ci0JdW5zaWduZWQgbG9uZyBmbGFncywgYWRkcjsKLQkKLQlzaXplID0gUEFHRV9BTElHTihzaXplKTsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjb25zaXN0ZW50X2xvY2ssIGZsYWdzKTsKLQotCWMgPSBwcGNfdm1fcmVnaW9uX2ZpbmQoJmNvbnNpc3RlbnRfaGVhZCwgKHVuc2lnbmVkIGxvbmcpdmFkZHIpOwotCWlmICghYykKLQkJZ290byBub19hcmVhOwotCi0JaWYgKChjLT52bV9lbmQgLSBjLT52bV9zdGFydCkgIT0gc2l6ZSkgewotCQlwcmludGsoS0VSTl9FUlIgIiVzOiBmcmVlaW5nIHdyb25nIGNvaGVyZW50IHNpemUgKCVsZCAhPSAlZClcbiIsCi0JCSAgICAgICBfX2Z1bmNfXywgYy0+dm1fZW5kIC0gYy0+dm1fc3RhcnQsIHNpemUpOwotCQlkdW1wX3N0YWNrKCk7Ci0JCXNpemUgPSBjLT52bV9lbmQgLSBjLT52bV9zdGFydDsKLQl9Ci0KLQlhZGRyID0gYy0+dm1fc3RhcnQ7Ci0JZG8gewotCQlwdGVfdCAqcHRlcDsKLQkJdW5zaWduZWQgbG9uZyBwZm47Ci0KLQkJcHRlcCA9IHB0ZV9vZmZzZXRfa2VybmVsKHBtZF9vZmZzZXQocHVkX29mZnNldChwZ2Rfb2Zmc2V0X2soYWRkciksCi0JCQkJCQkJICAgICAgIGFkZHIpLAotCQkJCQkJICAgIGFkZHIpLAotCQkJCQkgYWRkcik7Ci0JCWlmICghcHRlX25vbmUoKnB0ZXApICYmIHB0ZV9wcmVzZW50KCpwdGVwKSkgewotCQkJcGZuID0gcHRlX3BmbigqcHRlcCk7Ci0JCQlwdGVfY2xlYXIoJmluaXRfbW0sIGFkZHIsIHB0ZXApOwotCQkJaWYgKHBmbl92YWxpZChwZm4pKSB7Ci0JCQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBwZm5fdG9fcGFnZShwZm4pOwotCQkJCV9fZnJlZV9yZXNlcnZlZF9wYWdlKHBhZ2UpOwotCQkJfQotCQl9Ci0JCWFkZHIgKz0gUEFHRV9TSVpFOwotCX0gd2hpbGUgKHNpemUgLT0gUEFHRV9TSVpFKTsKLQotCWZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UoYy0+dm1fc3RhcnQsIGMtPnZtX2VuZCk7Ci0KLQlsaXN0X2RlbCgmYy0+dm1fbGlzdCk7Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb25zaXN0ZW50X2xvY2ssIGZsYWdzKTsKLQotCWtmcmVlKGMpOwotCXJldHVybjsKLQotIG5vX2FyZWE6Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29uc2lzdGVudF9sb2NrLCBmbGFncyk7Ci0JcHJpbnRrKEtFUk5fRVJSICIlczogdHJ5aW5nIHRvIGZyZWUgaW52YWxpZCBjb2hlcmVudCBhcmVhOiAlcFxuIiwKLQkgICAgICAgX19mdW5jX18sIHZhZGRyKTsKLQlkdW1wX3N0YWNrKCk7Ci19Ci0KIC8qCiAgKiBtYWtlIGFuIGFyZWEgY29uc2lzdGVudC4KICAqLwpAQCAtNDA4LDIzICsxMTYsOSBAQCB2b2lkIGFyY2hfc3luY19kbWFfZm9yX2NwdShzdHJ1Y3QgZGV2aWNlICpkZXYsIHBoeXNfYWRkcl90IHBhZGRyLAogCV9fZG1hX3N5bmNfcGFnZShwYWRkciwgc2l6ZSwgZGlyKTsKIH0KIAotLyoKLSAqIFJldHVybiB0aGUgUEZOIGZvciBhIGdpdmVuIGNwdSB2aXJ0dWFsIGFkZHJlc3MgcmV0dXJuZWQgYnkgYXJjaF9kbWFfYWxsb2MuCi0gKi8KLWxvbmcgYXJjaF9kbWFfY29oZXJlbnRfdG9fcGZuKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqdmFkZHIsCi0JCWRtYV9hZGRyX3QgZG1hX2FkZHIpCit2b2lkIGFyY2hfZG1hX3ByZXBfY29oZXJlbnQoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBzaXplKQogewotCS8qIFRoaXMgc2hvdWxkIGFsd2F5cyBiZSBwb3B1bGF0ZWQsIHNvIHdlIGRvbid0IHRlc3QgZXZlcnkKLQkgKiBsZXZlbC4gSWYgdGhhdCBmYWlscywgd2UnbGwgaGF2ZSBhIG5pY2UgY3Jhc2ggd2hpY2gKLQkgKiB3aWxsIGJlIGFzIGdvb2QgYXMgYSBCVUdfT04oKQotCSAqLwotCXVuc2lnbmVkIGxvbmcgY3B1X2FkZHIgPSAodW5zaWduZWQgbG9uZyl2YWRkcjsKLQlwZ2RfdCAqcGdkID0gcGdkX29mZnNldF9rKGNwdV9hZGRyKTsKLQlwdWRfdCAqcHVkID0gcHVkX29mZnNldChwZ2QsIGNwdV9hZGRyKTsKLQlwbWRfdCAqcG1kID0gcG1kX29mZnNldChwdWQsIGNwdV9hZGRyKTsKLQlwdGVfdCAqcHRlcCA9IHB0ZV9vZmZzZXRfa2VybmVsKHBtZCwgY3B1X2FkZHIpOworCXVuc2lnbmVkIGxvbmcga2FkZHIgPSAodW5zaWduZWQgbG9uZylwYWdlX2FkZHJlc3MocGFnZSk7CiAKLQlpZiAocHRlX25vbmUoKnB0ZXApIHx8ICFwdGVfcHJlc2VudCgqcHRlcCkpCi0JCXJldHVybiAwOwotCXJldHVybiBwdGVfcGZuKCpwdGVwKTsKKwlmbHVzaF9kY2FjaGVfcmFuZ2Uoa2FkZHIsIGthZGRyICsgc2l6ZSk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vaHVnZXRsYnBhZ2UuYyBiL2FyY2gvcG93ZXJwYy9tbS9odWdldGxicGFnZS5jCmluZGV4IGE4OTUzZjEuLjczZDQ4NzNmIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vaHVnZXRsYnBhZ2UuYworKysgYi9hcmNoL3Bvd2VycGMvbW0vaHVnZXRsYnBhZ2UuYwpAQCAtNjY3LDcgKzY2Nyw3IEBAIHZvaWQgZmx1c2hfZGNhY2hlX2ljYWNoZV9odWdlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkKIAogCUJVR19PTighUGFnZUNvbXBvdW5kKHBhZ2UpKTsKIAotCWZvciAoaSA9IDA7IGkgPCAoMVVMIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGNvbXBvdW5kX25yKHBhZ2UpOyBpKyspIHsKIAkJaWYgKCFQYWdlSGlnaE1lbShwYWdlKSkgewogCQkJX19mbHVzaF9kY2FjaGVfaWNhY2hlKHBhZ2VfYWRkcmVzcyhwYWdlK2kpKTsKIAkJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9pb3JlbWFwLmMgYi9hcmNoL3Bvd2VycGMvbW0vaW9yZW1hcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNjY5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvbW0vaW9yZW1hcC5jCkBAIC0wLDAgKzEsOTkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCisKKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8YXNtL2lvLXdvcmthcm91bmRzLmg+CisKK3Vuc2lnbmVkIGxvbmcgaW9yZW1hcF9ib3Q7CitFWFBPUlRfU1lNQk9MKGlvcmVtYXBfYm90KTsKKwordm9pZCBfX2lvbWVtICppb3JlbWFwKHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3sKKwlwZ3Byb3RfdCBwcm90ID0gcGdwcm90X25vbmNhY2hlZChQQUdFX0tFUk5FTCk7CisJdm9pZCAqY2FsbGVyID0gX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApOworCisJaWYgKGlvd2FfaXNfYWN0aXZlKCkpCisJCXJldHVybiBpb3dhX2lvcmVtYXAoYWRkciwgc2l6ZSwgcHJvdCwgY2FsbGVyKTsKKwlyZXR1cm4gX19pb3JlbWFwX2NhbGxlcihhZGRyLCBzaXplLCBwcm90LCBjYWxsZXIpOworfQorRVhQT1JUX1NZTUJPTChpb3JlbWFwKTsKKwordm9pZCBfX2lvbWVtICppb3JlbWFwX3djKHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3sKKwlwZ3Byb3RfdCBwcm90ID0gcGdwcm90X25vbmNhY2hlZF93YyhQQUdFX0tFUk5FTCk7CisJdm9pZCAqY2FsbGVyID0gX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApOworCisJaWYgKGlvd2FfaXNfYWN0aXZlKCkpCisJCXJldHVybiBpb3dhX2lvcmVtYXAoYWRkciwgc2l6ZSwgcHJvdCwgY2FsbGVyKTsKKwlyZXR1cm4gX19pb3JlbWFwX2NhbGxlcihhZGRyLCBzaXplLCBwcm90LCBjYWxsZXIpOworfQorRVhQT1JUX1NZTUJPTChpb3JlbWFwX3djKTsKKwordm9pZCBfX2lvbWVtICppb3JlbWFwX2NvaGVyZW50KHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3sKKwlwZ3Byb3RfdCBwcm90ID0gcGdwcm90X2NhY2hlZChQQUdFX0tFUk5FTCk7CisJdm9pZCAqY2FsbGVyID0gX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApOworCisJaWYgKGlvd2FfaXNfYWN0aXZlKCkpCisJCXJldHVybiBpb3dhX2lvcmVtYXAoYWRkciwgc2l6ZSwgcHJvdCwgY2FsbGVyKTsKKwlyZXR1cm4gX19pb3JlbWFwX2NhbGxlcihhZGRyLCBzaXplLCBwcm90LCBjYWxsZXIpOworfQorCit2b2lkIF9faW9tZW0gKmlvcmVtYXBfcHJvdChwaHlzX2FkZHJfdCBhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJcHRlX3QgcHRlID0gX19wdGUoZmxhZ3MpOworCXZvaWQgKmNhbGxlciA9IF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKTsKKworCS8qIHdyaXRlYWJsZSBpbXBsaWVzIGRpcnR5IGZvciBrZXJuZWwgYWRkcmVzc2VzICovCisJaWYgKHB0ZV93cml0ZShwdGUpKQorCQlwdGUgPSBwdGVfbWtkaXJ0eShwdGUpOworCisJLyogd2UgZG9uJ3Qgd2FudCB0byBsZXQgX1BBR0VfVVNFUiBhbmQgX1BBR0VfRVhFQyBsZWFrIG91dCAqLworCXB0ZSA9IHB0ZV9leHByb3RlY3QocHRlKTsKKwlwdGUgPSBwdGVfbWtwcml2aWxlZ2VkKHB0ZSk7CisKKwlpZiAoaW93YV9pc19hY3RpdmUoKSkKKwkJcmV0dXJuIGlvd2FfaW9yZW1hcChhZGRyLCBzaXplLCBwdGVfcGdwcm90KHB0ZSksIGNhbGxlcik7CisJcmV0dXJuIF9faW9yZW1hcF9jYWxsZXIoYWRkciwgc2l6ZSwgcHRlX3BncHJvdChwdGUpLCBjYWxsZXIpOworfQorRVhQT1JUX1NZTUJPTChpb3JlbWFwX3Byb3QpOworCitpbnQgZWFybHlfaW9yZW1hcF9yYW5nZSh1bnNpZ25lZCBsb25nIGVhLCBwaHlzX2FkZHJfdCBwYSwKKwkJCXVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgcHJvdCkKK3sKKwl1bnNpZ25lZCBsb25nIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSArPSBQQUdFX1NJWkUpIHsKKwkJaW50IGVyciA9IG1hcF9rZXJuZWxfcGFnZShlYSArIGksIHBhICsgaSwgcHJvdCk7CisKKwkJaWYgKFdBUk5fT05fT05DRShlcnIpKSAgLyogU2hvdWxkIGNsZWFuIHVwICovCisJCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiAwOworfQorCit2b2lkIF9faW9tZW0gKmRvX2lvcmVtYXAocGh5c19hZGRyX3QgcGEsIHBoeXNfYWRkcl90IG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJIHBncHJvdF90IHByb3QsIHZvaWQgKmNhbGxlcikKK3sKKwlzdHJ1Y3Qgdm1fc3RydWN0ICphcmVhOworCWludCByZXQ7CisJdW5zaWduZWQgbG9uZyB2YTsKKworCWFyZWEgPSBfX2dldF92bV9hcmVhX2NhbGxlcihzaXplLCBWTV9JT1JFTUFQLCBJT1JFTUFQX1NUQVJULCBJT1JFTUFQX0VORCwgY2FsbGVyKTsKKwlpZiAoYXJlYSA9PSBOVUxMKQorCQlyZXR1cm4gTlVMTDsKKworCWFyZWEtPnBoeXNfYWRkciA9IHBhOworCXZhID0gKHVuc2lnbmVkIGxvbmcpYXJlYS0+YWRkcjsKKworCXJldCA9IGlvcmVtYXBfcGFnZV9yYW5nZSh2YSwgdmEgKyBzaXplLCBwYSwgcHJvdCk7CisJaWYgKCFyZXQpCisJCXJldHVybiAodm9pZCBfX2lvbWVtICopYXJlYS0+YWRkciArIG9mZnNldDsKKworCXVubWFwX2tlcm5lbF9yYW5nZSh2YSwgc2l6ZSk7CisJZnJlZV92bV9hcmVhKGFyZWEpOworCisJcmV0dXJuIE5VTEw7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vaW9yZW1hcF8zMi5jIGIvYXJjaC9wb3dlcnBjL21tL2lvcmVtYXBfMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzYxMjFmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL21tL2lvcmVtYXBfMzIuYwpAQCAtMCwwICsxLDkyIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorCisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorCisjaW5jbHVkZSA8bW0vbW11X2RlY2wuaD4KKwordm9pZCBfX2lvbWVtICppb3JlbWFwX3d0KHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3sKKwlwZ3Byb3RfdCBwcm90ID0gcGdwcm90X2NhY2hlZF93dGhydShQQUdFX0tFUk5FTCk7CisKKwlyZXR1cm4gX19pb3JlbWFwX2NhbGxlcihhZGRyLCBzaXplLCBwcm90LCBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOworfQorRVhQT1JUX1NZTUJPTChpb3JlbWFwX3d0KTsKKwordm9pZCBfX2lvbWVtICoKK19faW9yZW1hcF9jYWxsZXIocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLCBwZ3Byb3RfdCBwcm90LCB2b2lkICpjYWxsZXIpCit7CisJdW5zaWduZWQgbG9uZyB2OworCXBoeXNfYWRkcl90IHAsIG9mZnNldDsKKwlpbnQgZXJyOworCisJLyoKKwkgKiBDaG9vc2UgYW4gYWRkcmVzcyB0byBtYXAgaXQgdG8uCisJICogT25jZSB0aGUgdm1hbGxvYyBzeXN0ZW0gaXMgcnVubmluZywgd2UgdXNlIGl0LgorCSAqIEJlZm9yZSB0aGVuLCB3ZSB1c2Ugc3BhY2UgZ29pbmcgZG93biBmcm9tIElPUkVNQVBfVE9QCisJICogKGlvcmVtYXBfYm90IHJlY29yZHMgd2hlcmUgd2UncmUgdXAgdG8pLgorCSAqLworCXAgPSBhZGRyICYgUEFHRV9NQVNLOworCW9mZnNldCA9IGFkZHIgJiB+UEFHRV9NQVNLOworCXNpemUgPSBQQUdFX0FMSUdOKGFkZHIgKyBzaXplKSAtIHA7CisKKwkvKgorCSAqIElmIHRoZSBhZGRyZXNzIGxpZXMgd2l0aGluIHRoZSBmaXJzdCAxNiBNQiwgYXNzdW1lIGl0J3MgaW4gSVNBCisJICogbWVtb3J5IHNwYWNlCisJICovCisJaWYgKHAgPCAxNiAqIDEwMjQgKiAxMDI0KQorCQlwICs9IF9JU0FfTUVNX0JBU0U7CisKKyNpZm5kZWYgQ09ORklHX0NSQVNIX0RVTVAKKwkvKgorCSAqIERvbid0IGFsbG93IGFueWJvZHkgdG8gcmVtYXAgbm9ybWFsIFJBTSB0aGF0IHdlJ3JlIHVzaW5nLgorCSAqIG1lbV9pbml0KCkgc2V0cyBoaWdoX21lbW9yeSBzbyBvbmx5IGRvIHRoZSBjaGVjayBhZnRlciB0aGF0LgorCSAqLworCWlmIChzbGFiX2lzX2F2YWlsYWJsZSgpICYmIHAgPD0gdmlydF90b19waHlzKGhpZ2hfbWVtb3J5IC0gMSkgJiYKKwkgICAgcGFnZV9pc19yYW0oX19waHlzX3RvX3BmbihwKSkpIHsKKwkJcHJfd2FybigiJXMoKTogcGh5cyBhZGRyIDB4JWxseCBpcyBSQU0gbHIgJXBzXG4iLCBfX2Z1bmNfXywKKwkJCSh1bnNpZ25lZCBsb25nIGxvbmcpcCwgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorI2VuZGlmCisKKwlpZiAoc2l6ZSA9PSAwKQorCQlyZXR1cm4gTlVMTDsKKworCS8qCisJICogSXMgaXQgYWxyZWFkeSBtYXBwZWQ/ICBQZXJoYXBzIG92ZXJsYXBwZWQgYnkgYSBwcmV2aW91cworCSAqIG1hcHBpbmcuCisJICovCisJdiA9IHBfYmxvY2tfbWFwcGVkKHApOworCWlmICh2KQorCQlyZXR1cm4gKHZvaWQgX19pb21lbSAqKXYgKyBvZmZzZXQ7CisKKwlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkKKwkJcmV0dXJuIGRvX2lvcmVtYXAocCwgb2Zmc2V0LCBzaXplLCBwcm90LCBjYWxsZXIpOworCisJLyoKKwkgKiBTaG91bGQgY2hlY2sgaWYgaXQgaXMgYSBjYW5kaWRhdGUgZm9yIGEgQkFUIG1hcHBpbmcKKwkgKi8KKworCWVyciA9IGVhcmx5X2lvcmVtYXBfcmFuZ2UoaW9yZW1hcF9ib3QgLSBzaXplLCBwLCBzaXplLCBwcm90KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gTlVMTDsKKwlpb3JlbWFwX2JvdCAtPSBzaXplOworCisJcmV0dXJuICh2b2lkIF9faW9tZW0gKilpb3JlbWFwX2JvdCArIG9mZnNldDsKK30KKwordm9pZCBpb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKK3sKKwkvKgorCSAqIElmIG1hcHBlZCBieSBCQVRzIHRoZW4gdGhlcmUgaXMgbm90aGluZyB0byBkby4KKwkgKiBDYWxsaW5nIHZmcmVlKCkgZ2VuZXJhdGVzIGEgYmVuaWduIHdhcm5pbmcuCisJICovCisJaWYgKHZfYmxvY2tfbWFwcGVkKCh1bnNpZ25lZCBsb25nKWFkZHIpKQorCQlyZXR1cm47CisKKwlpZiAoYWRkciA+IGhpZ2hfbWVtb3J5ICYmICh1bnNpZ25lZCBsb25nKWFkZHIgPCBpb3JlbWFwX2JvdCkKKwkJdnVubWFwKCh2b2lkICopKFBBR0VfTUFTSyAmICh1bnNpZ25lZCBsb25nKWFkZHIpKTsKK30KK0VYUE9SVF9TWU1CT0woaW91bm1hcCk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vaW9yZW1hcF82NC5jIGIvYXJjaC9wb3dlcnBjL21tL2lvcmVtYXBfNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDI5ZTUxCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL21tL2lvcmVtYXBfNjQuYwpAQCAtMCwwICsxLDExMyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKworI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKworLyoqCisgKiBMb3cgbGV2ZWwgZnVuY3Rpb24gdG8gZXN0YWJsaXNoIHRoZSBwYWdlIHRhYmxlcyBmb3IgYW4gSU8gbWFwcGluZworICovCit2b2lkIF9faW9tZW0gKl9faW9yZW1hcF9hdChwaHlzX2FkZHJfdCBwYSwgdm9pZCAqZWEsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgcHJvdCkKK3sKKwlpbnQgcmV0OworCXVuc2lnbmVkIGxvbmcgdmEgPSAodW5zaWduZWQgbG9uZyllYTsKKworCS8qIFdlIGRvbid0IHN1cHBvcnQgdGhlIDRLIFBGTiBoYWNrIHdpdGggaW9yZW1hcCAqLworCWlmIChwZ3Byb3RfdmFsKHByb3QpICYgSF9QQUdFXzRLX1BGTikKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoKGVhICsgc2l6ZSkgPj0gKHZvaWQgKilJT1JFTUFQX0VORCkgeworCQlwcl93YXJuKCJPdXRzaWRlIHRoZSBzdXBwb3J0ZWQgcmFuZ2VcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlXQVJOX09OKHBhICYgflBBR0VfTUFTSyk7CisJV0FSTl9PTigoKHVuc2lnbmVkIGxvbmcpZWEpICYgflBBR0VfTUFTSyk7CisJV0FSTl9PTihzaXplICYgflBBR0VfTUFTSyk7CisKKwlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkgeworCQlyZXQgPSBpb3JlbWFwX3BhZ2VfcmFuZ2UodmEsIHZhICsgc2l6ZSwgcGEsIHByb3QpOworCQlpZiAocmV0KQorCQkJdW5tYXBfa2VybmVsX3JhbmdlKHZhLCBzaXplKTsKKwl9IGVsc2UgeworCQlyZXQgPSBlYXJseV9pb3JlbWFwX3JhbmdlKHZhLCBwYSwgc2l6ZSwgcHJvdCk7CisJfQorCisJaWYgKHJldCkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKWVhOworfQorRVhQT1JUX1NZTUJPTChfX2lvcmVtYXBfYXQpOworCisvKioKKyAqIExvdyBsZXZlbCBmdW5jdGlvbiB0byB0ZWFyIGRvd24gdGhlIHBhZ2UgdGFibGVzIGZvciBhbiBJTyBtYXBwaW5nLiBUaGlzIGlzCisgKiB1c2VkIGZvciBtYXBwaW5ncyB0aGF0IGFyZSBtYW5pcHVsYXRlZCBtYW51YWxseSwgbGlrZSBwYXJ0aWFsIHVubWFwcGluZyBvZgorICogUENJIElPcyBvciBJU0Egc3BhY2UuCisgKi8KK3ZvaWQgX19pb3VubWFwX2F0KHZvaWQgKmVhLCB1bnNpZ25lZCBsb25nIHNpemUpCit7CisJV0FSTl9PTigoKHVuc2lnbmVkIGxvbmcpZWEpICYgflBBR0VfTUFTSyk7CisJV0FSTl9PTihzaXplICYgflBBR0VfTUFTSyk7CisKKwl1bm1hcF9rZXJuZWxfcmFuZ2UoKHVuc2lnbmVkIGxvbmcpZWEsIHNpemUpOworfQorRVhQT1JUX1NZTUJPTChfX2lvdW5tYXBfYXQpOworCit2b2lkIF9faW9tZW0gKl9faW9yZW1hcF9jYWxsZXIocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJICAgICAgIHBncHJvdF90IHByb3QsIHZvaWQgKmNhbGxlcikKK3sKKwlwaHlzX2FkZHJfdCBwYWxpZ25lZCwgb2Zmc2V0OworCXZvaWQgX19pb21lbSAqcmV0OworCWludCBlcnI7CisKKwkvKiBXZSBkb24ndCBzdXBwb3J0IHRoZSA0SyBQRk4gaGFjayB3aXRoIGlvcmVtYXAgKi8KKwlpZiAocGdwcm90X3ZhbChwcm90KSAmIEhfUEFHRV80S19QRk4pCisJCXJldHVybiBOVUxMOworCisJLyoKKwkgKiBDaG9vc2UgYW4gYWRkcmVzcyB0byBtYXAgaXQgdG8uIE9uY2UgdGhlIHZtYWxsb2Mgc3lzdGVtIGlzIHJ1bm5pbmcsCisJICogd2UgdXNlIGl0LiBCZWZvcmUgdGhhdCwgd2UgbWFwIHVzaW5nIGFkZHJlc3NlcyBnb2luZyB1cCBmcm9tCisJICogaW9yZW1hcF9ib3QuICB2bWFsbG9jIHdpbGwgdXNlIHRoZSBhZGRyZXNzZXMgZnJvbSBJT1JFTUFQX0JBU0UKKwkgKiB0aHJvdWdoIGlvcmVtYXBfYm90LgorCSAqLworCXBhbGlnbmVkID0gYWRkciAmIFBBR0VfTUFTSzsKKwlvZmZzZXQgPSBhZGRyICYgflBBR0VfTUFTSzsKKwlzaXplID0gUEFHRV9BTElHTihhZGRyICsgc2l6ZSkgLSBwYWxpZ25lZDsKKworCWlmIChzaXplID09IDAgfHwgcGFsaWduZWQgPT0gMCkKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkKKwkJcmV0dXJuIGRvX2lvcmVtYXAocGFsaWduZWQsIG9mZnNldCwgc2l6ZSwgcHJvdCwgY2FsbGVyKTsKKworCWVyciA9IGVhcmx5X2lvcmVtYXBfcmFuZ2UoaW9yZW1hcF9ib3QsIHBhbGlnbmVkLCBzaXplLCBwcm90KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gTlVMTDsKKworCXJldCA9ICh2b2lkIF9faW9tZW0gKilpb3JlbWFwX2JvdCArIG9mZnNldDsKKwlpb3JlbWFwX2JvdCArPSBzaXplOworCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFVubWFwIGFuIElPIHJlZ2lvbiBhbmQgcmVtb3ZlIGl0IGZyb20gdm1hbGxvYydkIGxpc3QuCisgKiBBY2Nlc3MgdG8gSU8gbWVtb3J5IHNob3VsZCBiZSBzZXJpYWxpemVkIGJ5IGRyaXZlci4KKyAqLwordm9pZCBpb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqdG9rZW4pCit7CisJdm9pZCAqYWRkcjsKKworCWlmICghc2xhYl9pc19hdmFpbGFibGUoKSkKKwkJcmV0dXJuOworCisJYWRkciA9ICh2b2lkICopKCh1bnNpZ25lZCBsb25nIF9fZm9yY2UpUENJX0ZJWF9BRERSKHRva2VuKSAmIFBBR0VfTUFTSyk7CisKKwlpZiAoKHVuc2lnbmVkIGxvbmcpYWRkciA8IGlvcmVtYXBfYm90KSB7CisJCXByX3dhcm4oIkF0dGVtcHQgdG8gaW91bm1hcCBlYXJseSBib2x0ZWQgbWFwcGluZyBhdCAweCVwXG4iLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKwl2dW5tYXAoYWRkcik7Cit9CitFWFBPUlRfU1lNQk9MKGlvdW5tYXApOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL2thc2FuL2thc2FuX2luaXRfMzIuYyBiL2FyY2gvcG93ZXJwYy9tbS9rYXNhbi9rYXNhbl9pbml0XzMyLmMKaW5kZXggNzRmNDU1NS4uMGU2ZWQ0NCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL2thc2FuL2thc2FuX2luaXRfMzIuYworKysgYi9hcmNoL3Bvd2VycGMvbW0va2FzYW4va2FzYW5faW5pdF8zMi5jCkBAIC01LDEyICs1LDIxIEBACiAjaW5jbHVkZSA8bGludXgva2FzYW4uaD4KICNpbmNsdWRlIDxsaW51eC9wcmludGsuaD4KICNpbmNsdWRlIDxsaW51eC9tZW1ibG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZWxvYWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3Rhc2suaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vY29kZS1wYXRjaGluZy5oPgogI2luY2x1ZGUgPG1tL21tdV9kZWNsLmg+CiAKK3N0YXRpYyBwZ3Byb3RfdCBrYXNhbl9wcm90X3JvKHZvaWQpCit7CisJaWYgKGVhcmx5X21tdV9oYXNfZmVhdHVyZShNTVVfRlRSX0hQVEVfVEFCTEUpKQorCQlyZXR1cm4gUEFHRV9SRUFET05MWTsKKworCXJldHVybiBQQUdFX0tFUk5FTF9STzsKK30KKwogc3RhdGljIHZvaWQga2FzYW5fcG9wdWxhdGVfcHRlKHB0ZV90ICpwdGVwLCBwZ3Byb3RfdCBwcm90KQogewogCXVuc2lnbmVkIGxvbmcgdmEgPSAodW5zaWduZWQgbG9uZylrYXNhbl9lYXJseV9zaGFkb3dfcGFnZTsKQEAgLTI1LDYgKzM0LDcgQEAgc3RhdGljIGludCBfX3JlZiBrYXNhbl9pbml0X3NoYWRvd19wYWdlX3RhYmxlcyh1bnNpZ25lZCBsb25nIGtfc3RhcnQsIHVuc2lnbmVkIGwKIHsKIAlwbWRfdCAqcG1kOwogCXVuc2lnbmVkIGxvbmcga19jdXIsIGtfbmV4dDsKKwlwZ3Byb3RfdCBwcm90ID0gc2xhYl9pc19hdmFpbGFibGUoKSA/IGthc2FuX3Byb3Rfcm8oKSA6IFBBR0VfS0VSTkVMOwogCiAJcG1kID0gcG1kX29mZnNldChwdWRfb2Zmc2V0KHBnZF9vZmZzZXRfayhrX3N0YXJ0KSwga19zdGFydCksIGtfc3RhcnQpOwogCkBAIC00MiwxMSArNTIsMjAgQEAgc3RhdGljIGludCBfX3JlZiBrYXNhbl9pbml0X3NoYWRvd19wYWdlX3RhYmxlcyh1bnNpZ25lZCBsb25nIGtfc3RhcnQsIHVuc2lnbmVkIGwKIAogCQlpZiAoIW5ldykKIAkJCXJldHVybiAtRU5PTUVNOwotCQlpZiAoZWFybHlfbW11X2hhc19mZWF0dXJlKE1NVV9GVFJfSFBURV9UQUJMRSkpCi0JCQlrYXNhbl9wb3B1bGF0ZV9wdGUobmV3LCBQQUdFX1JFQURPTkxZKTsKLQkJZWxzZQotCQkJa2FzYW5fcG9wdWxhdGVfcHRlKG5ldywgUEFHRV9LRVJORUxfUk8pOwotCQlwbWRfcG9wdWxhdGVfa2VybmVsKCZpbml0X21tLCBwbWQsIG5ldyk7CisJCWthc2FuX3BvcHVsYXRlX3B0ZShuZXcsIHByb3QpOworCisJCXNtcF93bWIoKTsgLyogU2VlIGNvbW1lbnQgaW4gX19wdGVfYWxsb2MgKi8KKworCQlzcGluX2xvY2soJmluaXRfbW0ucGFnZV90YWJsZV9sb2NrKTsKKwkJCS8qIEhhcyBhbm90aGVyIHBvcHVsYXRlZCBpdCA/ICovCisJCWlmIChsaWtlbHkoKHZvaWQgKilwbWRfcGFnZV92YWRkcigqcG1kKSA9PSBrYXNhbl9lYXJseV9zaGFkb3dfcHRlKSkgeworCQkJcG1kX3BvcHVsYXRlX2tlcm5lbCgmaW5pdF9tbSwgcG1kLCBuZXcpOworCQkJbmV3ID0gTlVMTDsKKwkJfQorCQlzcGluX3VubG9jaygmaW5pdF9tbS5wYWdlX3RhYmxlX2xvY2spOworCisJCWlmIChuZXcgJiYgc2xhYl9pc19hdmFpbGFibGUoKSkKKwkJCXB0ZV9mcmVlX2tlcm5lbCgmaW5pdF9tbSwgbmV3KTsKIAl9CiAJcmV0dXJuIDA7CiB9CkBAIC03NCw3ICs5Myw3IEBAIHN0YXRpYyBpbnQgX19yZWYga2FzYW5faW5pdF9yZWdpb24odm9pZCAqc3RhcnQsIHNpemVfdCBzaXplKQogCWlmICghc2xhYl9pc19hdmFpbGFibGUoKSkKIAkJYmxvY2sgPSBtZW1ibG9ja19hbGxvYyhrX2VuZCAtIGtfc3RhcnQsIFBBR0VfU0laRSk7CiAKLQlmb3IgKGtfY3VyID0ga19zdGFydDsga19jdXIgPCBrX2VuZDsga19jdXIgKz0gUEFHRV9TSVpFKSB7CisJZm9yIChrX2N1ciA9IGtfc3RhcnQgJiBQQUdFX01BU0s7IGtfY3VyIDwga19lbmQ7IGtfY3VyICs9IFBBR0VfU0laRSkgewogCQlwbWRfdCAqcG1kID0gcG1kX29mZnNldChwdWRfb2Zmc2V0KHBnZF9vZmZzZXRfayhrX2N1ciksIGtfY3VyKSwga19jdXIpOwogCQl2b2lkICp2YSA9IGJsb2NrID8gYmxvY2sgKyBrX2N1ciAtIGtfc3RhcnQgOiBrYXNhbl9nZXRfb25lX3BhZ2UoKTsKIAkJcHRlX3QgcHRlID0gcGZuX3B0ZShQSFlTX1BGTihfX3BhKHZhKSksIFBBR0VfS0VSTkVMKTsKQEAgLTkwLDExICsxMDksMjMgQEAgc3RhdGljIGludCBfX3JlZiBrYXNhbl9pbml0X3JlZ2lvbih2b2lkICpzdGFydCwgc2l6ZV90IHNpemUpCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBrYXNhbl9yZW1hcF9lYXJseV9zaGFkb3dfcm8odm9pZCkKIHsKLQlpZiAoZWFybHlfbW11X2hhc19mZWF0dXJlKE1NVV9GVFJfSFBURV9UQUJMRSkpCi0JCWthc2FuX3BvcHVsYXRlX3B0ZShrYXNhbl9lYXJseV9zaGFkb3dfcHRlLCBQQUdFX1JFQURPTkxZKTsKLQllbHNlCi0JCWthc2FuX3BvcHVsYXRlX3B0ZShrYXNhbl9lYXJseV9zaGFkb3dfcHRlLCBQQUdFX0tFUk5FTF9STyk7CisJcGdwcm90X3QgcHJvdCA9IGthc2FuX3Byb3Rfcm8oKTsKKwl1bnNpZ25lZCBsb25nIGtfc3RhcnQgPSBLQVNBTl9TSEFET1dfU1RBUlQ7CisJdW5zaWduZWQgbG9uZyBrX2VuZCA9IEtBU0FOX1NIQURPV19FTkQ7CisJdW5zaWduZWQgbG9uZyBrX2N1cjsKKwlwaHlzX2FkZHJfdCBwYSA9IF9fcGEoa2FzYW5fZWFybHlfc2hhZG93X3BhZ2UpOwogCisJa2FzYW5fcG9wdWxhdGVfcHRlKGthc2FuX2Vhcmx5X3NoYWRvd19wdGUsIHByb3QpOworCisJZm9yIChrX2N1ciA9IGtfc3RhcnQgJiBQQUdFX01BU0s7IGtfY3VyIDwga19lbmQ7IGtfY3VyICs9IFBBR0VfU0laRSkgeworCQlwbWRfdCAqcG1kID0gcG1kX29mZnNldChwdWRfb2Zmc2V0KHBnZF9vZmZzZXRfayhrX2N1ciksIGtfY3VyKSwga19jdXIpOworCQlwdGVfdCAqcHRlcCA9IHB0ZV9vZmZzZXRfa2VybmVsKHBtZCwga19jdXIpOworCisJCWlmICgocHRlX3ZhbCgqcHRlcCkgJiBQVEVfUlBOX01BU0spICE9IHBhKQorCQkJY29udGludWU7CisKKwkJX19zZXRfcHRlX2F0KCZpbml0X21tLCBrX2N1ciwgcHRlcCwgcGZuX3B0ZShQSFlTX1BGTihwYSksIHByb3QpLCAwKTsKKwl9CiAJZmx1c2hfdGxiX2tlcm5lbF9yYW5nZShLQVNBTl9TSEFET1dfU1RBUlQsIEtBU0FOX1NIQURPV19FTkQpOwogfQogCkBAIC0xMzcsNyArMTY4LDExIEBAIHZvaWQgX19pbml0IGthc2FuX2luaXQodm9pZCkKICNpZmRlZiBDT05GSUdfTU9EVUxFUwogdm9pZCAqbW9kdWxlX2FsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKLQl2b2lkICpiYXNlID0gdm1hbGxvY19leGVjKHNpemUpOworCXZvaWQgKmJhc2U7CisKKwliYXNlID0gX192bWFsbG9jX25vZGVfcmFuZ2Uoc2l6ZSwgTU9EVUxFX0FMSUdOLCBWTUFMTE9DX1NUQVJULCBWTUFMTE9DX0VORCwKKwkJCQkgICAgR0ZQX0tFUk5FTCwgUEFHRV9LRVJORUxfRVhFQywgVk1fRkxVU0hfUkVTRVRfUEVSTVMsCisJCQkJICAgIE5VTUFfTk9fTk9ERSwgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKIAogCWlmICghYmFzZSkKIAkJcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vbWVtLmMgYi9hcmNoL3Bvd2VycGMvbW0vbWVtLmMKaW5kZXggOTE5MWE2Ni4uYmU5NDFkMyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL21lbS5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9tZW0uYwpAQCAtMzAyLDEyICszMDIsOSBAQCB2b2lkIF9faW5pdCBtZW1faW5pdCh2b2lkKQogCXByX2luZm8oIiAgKiAweCUwOGx4Li4weCUwOGx4ICA6IGhpZ2htZW0gUFRFc1xuIiwKIAkJUEtNQVBfQkFTRSwgUEtNQVBfQUREUihMQVNUX1BLTUFQKSk7CiAjZW5kaWYgLyogQ09ORklHX0hJR0hNRU0gKi8KLSNpZmRlZiBDT05GSUdfTk9UX0NPSEVSRU5UX0NBQ0hFCi0JcHJfaW5mbygiICAqIDB4JTA4bHguLjB4JTA4bHggIDogY29uc2lzdGVudCBtZW1cbiIsCi0JCUlPUkVNQVBfVE9QLCBJT1JFTUFQX1RPUCArIENPTkZJR19DT05TSVNURU5UX1NJWkUpOwotI2VuZGlmIC8qIENPTkZJR19OT1RfQ09IRVJFTlRfQ0FDSEUgKi8KLQlwcl9pbmZvKCIgICogMHglMDhseC4uMHglMDhseCAgOiBlYXJseSBpb3JlbWFwXG4iLAotCQlpb3JlbWFwX2JvdCwgSU9SRU1BUF9UT1ApOworCWlmIChpb3JlbWFwX2JvdCAhPSBJT1JFTUFQX1RPUCkKKwkJcHJfaW5mbygiICAqIDB4JTA4bHguLjB4JTA4bHggIDogZWFybHkgaW9yZW1hcFxuIiwKKwkJCWlvcmVtYXBfYm90LCBJT1JFTUFQX1RPUCk7CiAJcHJfaW5mbygiICAqIDB4JTA4bHguLjB4JTA4bHggIDogdm1hbGxvYyAmIGlvcmVtYXBcbiIsCiAJCVZNQUxMT0NfU1RBUlQsIFZNQUxMT0NfRU5EKTsKICNlbmRpZiAvKiBDT05GSUdfUFBDMzIgKi8KQEAgLTQwNyw2MyArNDA0LDYgQEAgdm9pZCBmbHVzaF9pY2FjaGVfdXNlcl9yYW5nZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UsCiBFWFBPUlRfU1lNQk9MKGZsdXNoX2ljYWNoZV91c2VyX3JhbmdlKTsKIAogLyoKLSAqIFRoaXMgaXMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgaGFuZGxpbmcgYSB1c2VyIHBhZ2UgZmF1bHQsIHdoZW4gdGhlCi0gKiBmYXVsdCBoYXMgYmVlbiBoYW5kbGVkIGJ5IHVwZGF0aW5nIGEgUFRFIGluIHRoZSBsaW51eCBwYWdlIHRhYmxlcy4KLSAqIFdlIHVzZSBpdCB0byBwcmVsb2FkIGFuIEhQVEUgaW50byB0aGUgaGFzaCB0YWJsZSBjb3JyZXNwb25kaW5nIHRvCi0gKiB0aGUgdXBkYXRlZCBsaW51eCBQVEUuCi0gKiAKLSAqIFRoaXMgbXVzdCBhbHdheXMgYmUgY2FsbGVkIHdpdGggdGhlIHB0ZSBsb2NrIGhlbGQuCi0gKi8KLXZvaWQgdXBkYXRlX21tdV9jYWNoZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAotCQkgICAgICBwdGVfdCAqcHRlcCkKLXsKLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szUwotCS8qCi0JICogV2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBfUEFHRV9QUkVTRU5UIGhlcmUgYmVjYXVzZSB3ZSBhcmUKLQkgKiBjYWxsZWQgd2l0aCBlaXRoZXIgbW0tPnBhZ2VfdGFibGVfbG9jayBoZWxkIG9yIHB0bCBsb2NrIGhlbGQKLQkgKi8KLQl1bnNpZ25lZCBsb25nIHRyYXA7Ci0JYm9vbCBpc19leGVjOwotCi0JaWYgKHJhZGl4X2VuYWJsZWQoKSkgewotCQlwcmVmZXRjaCgodm9pZCAqKWFkZHJlc3MpOwotCQlyZXR1cm47Ci0JfQotCi0JLyogV2Ugb25seSB3YW50IEhQVEVzIGZvciBsaW51eCBQVEVzIHRoYXQgaGF2ZSBfUEFHRV9BQ0NFU1NFRCBzZXQgKi8KLQlpZiAoIXB0ZV95b3VuZygqcHRlcCkgfHwgYWRkcmVzcyA+PSBUQVNLX1NJWkUpCi0JCXJldHVybjsKLQotCS8qIFdlIHRyeSB0byBmaWd1cmUgb3V0IGlmIHdlIGFyZSBjb21pbmcgZnJvbSBhbiBpbnN0cnVjdGlvbgotCSAqIGFjY2VzcyBmYXVsdCBhbmQgcGFzcyB0aGF0IGRvd24gdG8gX19oYXNoX3BhZ2Ugc28gd2UgYXZvaWQKLQkgKiBkb3VibGUtZmF1bHRpbmcgb24gZXhlY3V0aW9uIG9mIGZyZXNoIHRleHQuIFdlIGhhdmUgdG8gdGVzdAotCSAqIGZvciByZWdzIE5VTEwgc2luY2UgaW5pdCB3aWxsIGdldCBoZXJlIGZpcnN0IHRoaW5nIGF0IGJvb3QKLQkgKgotCSAqIFdlIGFsc28gYXZvaWQgZmlsbGluZyB0aGUgaGFzaCBpZiBub3QgY29taW5nIGZyb20gYSBmYXVsdAotCSAqLwotCi0JdHJhcCA9IGN1cnJlbnQtPnRocmVhZC5yZWdzID8gVFJBUChjdXJyZW50LT50aHJlYWQucmVncykgOiAwVUw7Ci0Jc3dpdGNoICh0cmFwKSB7Ci0JY2FzZSAweDMwMDoKLQkJaXNfZXhlYyA9IGZhbHNlOwotCQlicmVhazsKLQljYXNlIDB4NDAwOgotCQlpc19leGVjID0gdHJ1ZTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuOwotCX0KLQotCWhhc2hfcHJlbG9hZCh2bWEtPnZtX21tLCBhZGRyZXNzLCBpc19leGVjLCB0cmFwKTsKLSNlbmRpZiAvKiBDT05GSUdfUFBDX0JPT0szUyAqLwotI2lmIChkZWZpbmVkKENPTkZJR19QUENfQk9PSzNFXzY0KSB8fCBkZWZpbmVkKENPTkZJR19QUENfRlNMX0JPT0szRSkpIFwKLQkmJiBkZWZpbmVkKENPTkZJR19IVUdFVExCX1BBR0UpCi0JaWYgKGlzX3ZtX2h1Z2V0bGJfcGFnZSh2bWEpKQotCQlib29rM2VfaHVnZXRsYl9wcmVsb2FkKHZtYSwgYWRkcmVzcywgKnB0ZXApOwotI2VuZGlmCi19Ci0KLS8qCiAgKiBTeXN0ZW0gbWVtb3J5IHNob3VsZCBub3QgYmUgaW4gL3Byb2MvaW9tZW0gYnV0IHZhcmlvdXMgdG9vbHMgZXhwZWN0IGl0CiAgKiAoZWcga2R1bXApLgogICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vbW11X2RlY2wuaCBiL2FyY2gvcG93ZXJwYy9tbS9tbXVfZGVjbC5oCmluZGV4IDMyYzFhMTkuLmM3NTBhYzkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9tbXVfZGVjbC5oCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9tbXVfZGVjbC5oCkBAIC04MiwxMCArODIsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHJpbnRfc3lzdGVtX2hhc2hfaW5mbyh2b2lkKSB7fQogCiAjZWxzZSAvKiBDT05GSUdfUFBDX01NVV9OT0hBU0ggKi8KIAotZXh0ZXJuIHZvaWQgaGFzaF9wcmVsb2FkKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGVhLAotCQkJIGJvb2wgaXNfZXhlYywgdW5zaWduZWQgbG9uZyB0cmFwKTsKLQotCiBleHRlcm4gdm9pZCBfdGxiaWUodW5zaWduZWQgbG9uZyBhZGRyZXNzKTsKIGV4dGVybiB2b2lkIF90bGJpYSh2b2lkKTsKIApAQCAtOTUsNiArOTEsOCBAQCB2b2lkIHByaW50X3N5c3RlbV9oYXNoX2luZm8odm9pZCk7CiAKICNpZmRlZiBDT05GSUdfUFBDMzIKIAordm9pZCBoYXNoX3ByZWxvYWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgZWEpOworCiBleHRlcm4gdm9pZCBtYXBpbl9yYW0odm9pZCk7CiBleHRlcm4gdm9pZCBzZXRiYXQoaW50IGluZGV4LCB1bnNpZ25lZCBsb25nIHZpcnQsIHBoeXNfYWRkcl90IHBoeXMsCiAJCSAgIHVuc2lnbmVkIGludCBzaXplLCBwZ3Byb3RfdCBwcm90KTsKQEAgLTEwOCw3ICsxMDYsNiBAQCBleHRlcm4gdTggZWFybHlfaGFzaFtdOwogCiAjZW5kaWYgLyogQ09ORklHX1BQQzMyICovCiAKLWV4dGVybiB1bnNpZ25lZCBsb25nIGlvcmVtYXBfYm90OwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19tYXhfbG93X21lbW9yeTsKIGV4dGVybiBwaHlzX2FkZHJfdCBfX2luaXRpYWxfbWVtb3J5X2xpbWl0X2FkZHI7CiBleHRlcm4gcGh5c19hZGRyX3QgdG90YWxfbWVtb3J5OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL25vaGFzaC9ib29rM2VfaHVnZXRsYnBhZ2UuYyBiL2FyY2gvcG93ZXJwYy9tbS9ub2hhc2gvYm9vazNlX2h1Z2V0bGJwYWdlLmMKaW5kZXggNjE5MTVmNC4uOGI4OGJlOTEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9ub2hhc2gvYm9vazNlX2h1Z2V0bGJwYWdlLmMKKysrIGIvYXJjaC9wb3dlcnBjL21tL25vaGFzaC9ib29rM2VfaHVnZXRsYnBhZ2UuYwpAQCAtMTIyLDggKzEyMiw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IGJvb2szZV90bGJfZXhpc3RzKHVuc2lnbmVkIGxvbmcgZWEsIHVuc2lnbmVkIGxvbmcgcGlkKQogCXJldHVybiBmb3VuZDsKIH0KIAotdm9pZCBib29rM2VfaHVnZXRsYl9wcmVsb2FkKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGVhLAotCQkJICAgIHB0ZV90IHB0ZSkKK3N0YXRpYyB2b2lkCitib29rM2VfaHVnZXRsYl9wcmVsb2FkKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGVhLCBwdGVfdCBwdGUpCiB7CiAJdW5zaWduZWQgbG9uZyBtYXMxLCBtYXMyOwogCXU2NCBtYXM3XzM7CkBAIC0xODMsNiArMTgzLDE4IEBAIHZvaWQgYm9vazNlX2h1Z2V0bGJfcHJlbG9hZChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBlYSwKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKKy8qCisgKiBUaGlzIGlzIGNhbGxlZCBhdCB0aGUgZW5kIG9mIGhhbmRsaW5nIGEgdXNlciBwYWdlIGZhdWx0LCB3aGVuIHRoZQorICogZmF1bHQgaGFzIGJlZW4gaGFuZGxlZCBieSB1cGRhdGluZyBhIFBURSBpbiB0aGUgbGludXggcGFnZSB0YWJsZXMuCisgKgorICogVGhpcyBtdXN0IGFsd2F5cyBiZSBjYWxsZWQgd2l0aCB0aGUgcHRlIGxvY2sgaGVsZC4KKyAqLwordm9pZCB1cGRhdGVfbW11X2NhY2hlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90ICpwdGVwKQoreworCWlmIChpc192bV9odWdldGxiX3BhZ2Uodm1hKSkKKwkJYm9vazNlX2h1Z2V0bGJfcHJlbG9hZCh2bWEsIGFkZHJlc3MsICpwdGVwKTsKK30KKwogdm9pZCBmbHVzaF9odWdldGxiX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgdm1hZGRyKQogewogCXN0cnVjdCBoc3RhdGUgKmhzdGF0ZSA9IGhzdGF0ZV9maWxlKHZtYS0+dm1fZmlsZSk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vbm9oYXNoL3RsYi5jIGIvYXJjaC9wb3dlcnBjL21tL25vaGFzaC90bGIuYwppbmRleCBiZjYwOTgzLi42OTZmNTY4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vbm9oYXNoL3RsYi5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9ub2hhc2gvdGxiLmMKQEAgLTcwMyw2ICs3MDMsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZWFybHlfaW5pdF9tbXVfZ2xvYmFsKHZvaWQpCiAJICogZm9yIHVzZSBieSB0aGUgVExCIG1pc3MgY29kZQogCSAqLwogCWxpbmVhcl9tYXBfdG9wID0gbWVtYmxvY2tfZW5kX29mX0RSQU0oKTsKKworCWlvcmVtYXBfYm90ID0gSU9SRU1BUF9CQVNFOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgZWFybHlfbW11X3NldF9tZW1vcnlfbGltaXQodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9wZ3RhYmxlLWZyYWcuYyBiL2FyY2gvcG93ZXJwYy9tbS9wZ3RhYmxlLWZyYWcuYwppbmRleCBhN2IwNTIxLi5lZTRiZDZkIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vcGd0YWJsZS1mcmFnLmMKKysrIGIvYXJjaC9wb3dlcnBjL21tL3BndGFibGUtZnJhZy5jCkBAIC0yNSw3ICsyNSw3IEBAIHZvaWQgcHRlX2ZyYWdfZGVzdHJveSh2b2lkICpwdGVfZnJhZykKIAljb3VudCA9ICgodW5zaWduZWQgbG9uZylwdGVfZnJhZyAmIH5QQUdFX01BU0spID4+IFBURV9GUkFHX1NJWkVfU0hJRlQ7CiAJLyogV2UgYWxsb3cgUFRFX0ZSQUdfTlIgZnJhZ21lbnRzIGZyb20gYSBQVEUgcGFnZSAqLwogCWlmIChhdG9taWNfc3ViX2FuZF90ZXN0KFBURV9GUkFHX05SIC0gY291bnQsICZwYWdlLT5wdF9mcmFnX3JlZmNvdW50KSkgewotCQlwZ3RhYmxlX3BhZ2VfZHRvcihwYWdlKTsKKwkJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHBhZ2UpOwogCQlfX2ZyZWVfcGFnZShwYWdlKTsKIAl9CiB9CkBAIC02MSw3ICs2MSw3IEBAIHN0YXRpYyBwdGVfdCAqX19hbGxvY19mb3JfcHRlY2FjaGUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIGludCBrZXJuZWwpCiAJCXBhZ2UgPSBhbGxvY19wYWdlKFBHQUxMT0NfR0ZQIHwgX19HRlBfQUNDT1VOVCk7CiAJCWlmICghcGFnZSkKIAkJCXJldHVybiBOVUxMOwotCQlpZiAoIXBndGFibGVfcGFnZV9jdG9yKHBhZ2UpKSB7CisJCWlmICghcGd0YWJsZV9wdGVfcGFnZV9jdG9yKHBhZ2UpKSB7CiAJCQlfX2ZyZWVfcGFnZShwYWdlKTsKIAkJCXJldHVybiBOVUxMOwogCQl9CkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBwdGVfZnJhZ21lbnRfZnJlZSh1bnNpZ25lZCBsb25nICp0YWJsZSwgaW50IGtlcm5lbCkKIAlCVUdfT04oYXRvbWljX3JlYWQoJnBhZ2UtPnB0X2ZyYWdfcmVmY291bnQpIDw9IDApOwogCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZwYWdlLT5wdF9mcmFnX3JlZmNvdW50KSkgewogCQlpZiAoIWtlcm5lbCkKLQkJCXBndGFibGVfcGFnZV9kdG9yKHBhZ2UpOworCQkJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHBhZ2UpOwogCQlfX2ZyZWVfcGFnZShwYWdlKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vcGd0YWJsZV8zMi5jIGIvYXJjaC9wb3dlcnBjL21tL3BndGFibGVfMzIuYwppbmRleCAzNWNiOTZjLi44ZWM1ZGZiIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vcGd0YWJsZV8zMi5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9wZ3RhYmxlXzMyLmMKQEAgLTI3LDE2NiArMjcsMTMgQEAKICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgogCiAjaW5jbHVkZSA8bW0vbW11X2RlY2wuaD4KIAotdW5zaWduZWQgbG9uZyBpb3JlbWFwX2JvdDsKLUVYUE9SVF9TWU1CT0woaW9yZW1hcF9ib3QpOwkvKiBha2EgVk1BTExPQ19FTkQgKi8KLQogZXh0ZXJuIGNoYXIgZXRleHRbXSwgX3N0ZXh0W10sIF9zaW5pdHRleHRbXSwgX2Vpbml0dGV4dFtdOwogCi12b2lkIF9faW9tZW0gKgotaW9yZW1hcChwaHlzX2FkZHJfdCBhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCi17Ci0JcGdwcm90X3QgcHJvdCA9IHBncHJvdF9ub25jYWNoZWQoUEFHRV9LRVJORUwpOwotCi0JcmV0dXJuIF9faW9yZW1hcF9jYWxsZXIoYWRkciwgc2l6ZSwgcHJvdCwgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKLX0KLUVYUE9SVF9TWU1CT0woaW9yZW1hcCk7Ci0KLXZvaWQgX19pb21lbSAqCi1pb3JlbWFwX3djKHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKLXsKLQlwZ3Byb3RfdCBwcm90ID0gcGdwcm90X25vbmNhY2hlZF93YyhQQUdFX0tFUk5FTCk7Ci0KLQlyZXR1cm4gX19pb3JlbWFwX2NhbGxlcihhZGRyLCBzaXplLCBwcm90LCBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOwotfQotRVhQT1JUX1NZTUJPTChpb3JlbWFwX3djKTsKLQotdm9pZCBfX2lvbWVtICoKLWlvcmVtYXBfd3QocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQotewotCXBncHJvdF90IHByb3QgPSBwZ3Byb3RfY2FjaGVkX3d0aHJ1KFBBR0VfS0VSTkVMKTsKLQotCXJldHVybiBfX2lvcmVtYXBfY2FsbGVyKGFkZHIsIHNpemUsIHByb3QsIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGlvcmVtYXBfd3QpOwotCi12b2lkIF9faW9tZW0gKgotaW9yZW1hcF9jb2hlcmVudChwaHlzX2FkZHJfdCBhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCi17Ci0JcGdwcm90X3QgcHJvdCA9IHBncHJvdF9jYWNoZWQoUEFHRV9LRVJORUwpOwotCi0JcmV0dXJuIF9faW9yZW1hcF9jYWxsZXIoYWRkciwgc2l6ZSwgcHJvdCwgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKLX0KLUVYUE9SVF9TWU1CT0woaW9yZW1hcF9jb2hlcmVudCk7Ci0KLXZvaWQgX19pb21lbSAqCi1pb3JlbWFwX3Byb3QocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGZsYWdzKQotewotCXB0ZV90IHB0ZSA9IF9fcHRlKGZsYWdzKTsKLQotCS8qIHdyaXRlYWJsZSBpbXBsaWVzIGRpcnR5IGZvciBrZXJuZWwgYWRkcmVzc2VzICovCi0JaWYgKHB0ZV93cml0ZShwdGUpKQotCQlwdGUgPSBwdGVfbWtkaXJ0eShwdGUpOwotCi0JLyogd2UgZG9uJ3Qgd2FudCB0byBsZXQgX1BBR0VfVVNFUiBhbmQgX1BBR0VfRVhFQyBsZWFrIG91dCAqLwotCXB0ZSA9IHB0ZV9leHByb3RlY3QocHRlKTsKLQlwdGUgPSBwdGVfbWtwcml2aWxlZ2VkKHB0ZSk7Ci0KLQlyZXR1cm4gX19pb3JlbWFwX2NhbGxlcihhZGRyLCBzaXplLCBwdGVfcGdwcm90KHB0ZSksIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGlvcmVtYXBfcHJvdCk7Ci0KLXZvaWQgX19pb21lbSAqCi1fX2lvcmVtYXAocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGZsYWdzKQotewotCXJldHVybiBfX2lvcmVtYXBfY2FsbGVyKGFkZHIsIHNpemUsIF9fcGdwcm90KGZsYWdzKSwgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKLX0KLQotdm9pZCBfX2lvbWVtICoKLV9faW9yZW1hcF9jYWxsZXIocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLCBwZ3Byb3RfdCBwcm90LCB2b2lkICpjYWxsZXIpCi17Ci0JdW5zaWduZWQgbG9uZyB2LCBpOwotCXBoeXNfYWRkcl90IHA7Ci0JaW50IGVycjsKLQotCS8qCi0JICogQ2hvb3NlIGFuIGFkZHJlc3MgdG8gbWFwIGl0IHRvLgotCSAqIE9uY2UgdGhlIHZtYWxsb2Mgc3lzdGVtIGlzIHJ1bm5pbmcsIHdlIHVzZSBpdC4KLQkgKiBCZWZvcmUgdGhlbiwgd2UgdXNlIHNwYWNlIGdvaW5nIGRvd24gZnJvbSBJT1JFTUFQX1RPUAotCSAqIChpb3JlbWFwX2JvdCByZWNvcmRzIHdoZXJlIHdlJ3JlIHVwIHRvKS4KLQkgKi8KLQlwID0gYWRkciAmIFBBR0VfTUFTSzsKLQlzaXplID0gUEFHRV9BTElHTihhZGRyICsgc2l6ZSkgLSBwOwotCi0JLyoKLQkgKiBJZiB0aGUgYWRkcmVzcyBsaWVzIHdpdGhpbiB0aGUgZmlyc3QgMTYgTUIsIGFzc3VtZSBpdCdzIGluIElTQQotCSAqIG1lbW9yeSBzcGFjZQotCSAqLwotCWlmIChwIDwgMTYqMTAyNCoxMDI0KQotCQlwICs9IF9JU0FfTUVNX0JBU0U7Ci0KLSNpZm5kZWYgQ09ORklHX0NSQVNIX0RVTVAKLQkvKgotCSAqIERvbid0IGFsbG93IGFueWJvZHkgdG8gcmVtYXAgbm9ybWFsIFJBTSB0aGF0IHdlJ3JlIHVzaW5nLgotCSAqIG1lbV9pbml0KCkgc2V0cyBoaWdoX21lbW9yeSBzbyBvbmx5IGRvIHRoZSBjaGVjayBhZnRlciB0aGF0LgotCSAqLwotCWlmIChzbGFiX2lzX2F2YWlsYWJsZSgpICYmIHAgPD0gdmlydF90b19waHlzKGhpZ2hfbWVtb3J5IC0gMSkgJiYKLQkgICAgcGFnZV9pc19yYW0oX19waHlzX3RvX3BmbihwKSkpIHsKLQkJcHJpbnRrKCJfX2lvcmVtYXAoKTogcGh5cyBhZGRyIDB4JWxseCBpcyBSQU0gbHIgJXBzXG4iLAotCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylwLCBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0jZW5kaWYKLQotCWlmIChzaXplID09IDApCi0JCXJldHVybiBOVUxMOwotCi0JLyoKLQkgKiBJcyBpdCBhbHJlYWR5IG1hcHBlZD8gIFBlcmhhcHMgb3ZlcmxhcHBlZCBieSBhIHByZXZpb3VzCi0JICogbWFwcGluZy4KLQkgKi8KLQl2ID0gcF9ibG9ja19tYXBwZWQocCk7Ci0JaWYgKHYpCi0JCWdvdG8gb3V0OwotCi0JaWYgKHNsYWJfaXNfYXZhaWxhYmxlKCkpIHsKLQkJc3RydWN0IHZtX3N0cnVjdCAqYXJlYTsKLQkJYXJlYSA9IGdldF92bV9hcmVhX2NhbGxlcihzaXplLCBWTV9JT1JFTUFQLCBjYWxsZXIpOwotCQlpZiAoYXJlYSA9PSAwKQotCQkJcmV0dXJuIE5VTEw7Ci0JCWFyZWEtPnBoeXNfYWRkciA9IHA7Ci0JCXYgPSAodW5zaWduZWQgbG9uZykgYXJlYS0+YWRkcjsKLQl9IGVsc2UgewotCQl2ID0gKGlvcmVtYXBfYm90IC09IHNpemUpOwotCX0KLQotCS8qCi0JICogU2hvdWxkIGNoZWNrIGlmIGl0IGlzIGEgY2FuZGlkYXRlIGZvciBhIEJBVCBtYXBwaW5nCi0JICovCi0KLQllcnIgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBzaXplICYmIGVyciA9PSAwOyBpICs9IFBBR0VfU0laRSkKLQkJZXJyID0gbWFwX2tlcm5lbF9wYWdlKHYgKyBpLCBwICsgaSwgcHJvdCk7Ci0JaWYgKGVycikgewotCQlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkKLQkJCXZ1bm1hcCgodm9pZCAqKXYpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0KLW91dDoKLQlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSAodiArICgodW5zaWduZWQgbG9uZylhZGRyICYgflBBR0VfTUFTSykpOwotfQotRVhQT1JUX1NZTUJPTChfX2lvcmVtYXApOwotCi12b2lkIGlvdW5tYXAodm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCS8qCi0JICogSWYgbWFwcGVkIGJ5IEJBVHMgdGhlbiB0aGVyZSBpcyBub3RoaW5nIHRvIGRvLgotCSAqIENhbGxpbmcgdmZyZWUoKSBnZW5lcmF0ZXMgYSBiZW5pZ24gd2FybmluZy4KLQkgKi8KLQlpZiAodl9ibG9ja19tYXBwZWQoKHVuc2lnbmVkIGxvbmcpYWRkcikpCi0JCXJldHVybjsKLQotCWlmIChhZGRyID4gaGlnaF9tZW1vcnkgJiYgKHVuc2lnbmVkIGxvbmcpIGFkZHIgPCBpb3JlbWFwX2JvdCkKLQkJdnVubWFwKCh2b2lkICopIChQQUdFX01BU0sgJiAodW5zaWduZWQgbG9uZylhZGRyKSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGlvdW5tYXApOwotCiBzdGF0aWMgdm9pZCBfX2luaXQgKmVhcmx5X2FsbG9jX3BndGFibGUodW5zaWduZWQgbG9uZyBzaXplKQogewogCXZvaWQgKnB0ciA9IG1lbWJsb2NrX2FsbG9jKHNpemUsIHNpemUpOwpAQCAtMjUyLDcgKzk5LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IF9fbWFwaW5fcmFtX2NodW5rKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHRvcCkKIAkJbWFwX2tlcm5lbF9wYWdlKHYsIHAsIGt0ZXh0ID8gUEFHRV9LRVJORUxfVEVYVCA6IFBBR0VfS0VSTkVMKTsKICNpZmRlZiBDT05GSUdfUFBDX0JPT0szU18zMgogCQlpZiAoa3RleHQpCi0JCQloYXNoX3ByZWxvYWQoJmluaXRfbW0sIHYsIGZhbHNlLCAweDMwMCk7CisJCQloYXNoX3ByZWxvYWQoJmluaXRfbW0sIHYpOwogI2VuZGlmCiAJCXYgKz0gUEFHRV9TSVpFOwogCQlwICs9IFBBR0VfU0laRTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9wZ3RhYmxlXzY0LmMgYi9hcmNoL3Bvd2VycGMvbW0vcGd0YWJsZV82NC5jCmluZGV4IDlhZDU5YjcuLmU3ODgzMmQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9wZ3RhYmxlXzY0LmMKKysrIGIvYXJjaC9wb3dlcnBjL21tL3BndGFibGVfNjQuYwpAQCAtMSw2ICsxLDYgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCiAvKgotICogIFRoaXMgZmlsZSBjb250YWlucyBpb3JlbWFwIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyBmb3IgNjQtYml0IG1hY2hpbmVzLgorICogIFRoaXMgZmlsZSBjb250YWlucyBwZ3RhYmxlIHJlbGF0ZWQgZnVuY3Rpb25zIGZvciA2NC1iaXQgbWFjaGluZXMuCiAgKgogICogIERlcml2ZWQgZnJvbSBhcmNoL3BwYzY0L21tL2luaXQuYwogICogICAgQ29weXJpZ2h0IChDKSAxOTk1LTE5OTYgR2FyeSBUaG9tYXMgKGdkdEBsaW51eHBwYy5vcmcpCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9wcm9tLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlIDxhc20vbW11Lmg+CkBAIC05OCwyMDggKzk3LDggQEAgdW5zaWduZWQgbG9uZyBfX3B0ZV9mcmFnX25yOwogRVhQT1JUX1NZTUJPTChfX3B0ZV9mcmFnX25yKTsKIHVuc2lnbmVkIGxvbmcgX19wdGVfZnJhZ19zaXplX3NoaWZ0OwogRVhQT1JUX1NZTUJPTChfX3B0ZV9mcmFnX3NpemVfc2hpZnQpOwotdW5zaWduZWQgbG9uZyBpb3JlbWFwX2JvdDsKLSNlbHNlIC8qICFDT05GSUdfUFBDX0JPT0szU182NCAqLwotdW5zaWduZWQgbG9uZyBpb3JlbWFwX2JvdCA9IElPUkVNQVBfQkFTRTsKICNlbmRpZgogCi1pbnQgX193ZWFrIGlvcmVtYXBfcmFuZ2UodW5zaWduZWQgbG9uZyBlYSwgcGh5c19hZGRyX3QgcGEsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgcHJvdCwgaW50IG5pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSArPSBQQUdFX1NJWkUpIHsKLQkJaW50IGVyciA9IG1hcF9rZXJuZWxfcGFnZShlYSArIGksIHBhICsgaSwgcHJvdCk7Ci0JCWlmIChlcnIpIHsKLQkJCWlmIChzbGFiX2lzX2F2YWlsYWJsZSgpKQotCQkJCXVubWFwX2tlcm5lbF9yYW5nZShlYSwgc2l6ZSk7Ci0JCQllbHNlCi0JCQkJV0FSTl9PTl9PTkNFKDEpOyAvKiBTaG91bGQgY2xlYW4gdXAgKi8KLQkJCXJldHVybiBlcnI7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBfX2lvcmVtYXBfYXQgLSBMb3cgbGV2ZWwgZnVuY3Rpb24gdG8gZXN0YWJsaXNoIHRoZSBwYWdlIHRhYmxlcwotICogICAgICAgICAgICAgICAgZm9yIGFuIElPIG1hcHBpbmcKLSAqLwotdm9pZCBfX2lvbWVtICpfX2lvcmVtYXBfYXQocGh5c19hZGRyX3QgcGEsIHZvaWQgKmVhLCB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90IHByb3QpCi17Ci0JLyogV2UgZG9uJ3Qgc3VwcG9ydCB0aGUgNEsgUEZOIGhhY2sgd2l0aCBpb3JlbWFwICovCi0JaWYgKHBncHJvdF92YWwocHJvdCkgJiBIX1BBR0VfNEtfUEZOKQotCQlyZXR1cm4gTlVMTDsKLQotCWlmICgoZWEgKyBzaXplKSA+PSAodm9pZCAqKUlPUkVNQVBfRU5EKSB7Ci0JCXByX3dhcm4oIk91dHNpZGUgdGhlIHN1cHBvcnRlZCByYW5nZVxuIik7Ci0JCXJldHVybiBOVUxMOwotCX0KLQotCVdBUk5fT04ocGEgJiB+UEFHRV9NQVNLKTsKLQlXQVJOX09OKCgodW5zaWduZWQgbG9uZyllYSkgJiB+UEFHRV9NQVNLKTsKLQlXQVJOX09OKHNpemUgJiB+UEFHRV9NQVNLKTsKLQotCWlmIChpb3JlbWFwX3JhbmdlKCh1bnNpZ25lZCBsb25nKWVhLCBwYSwgc2l6ZSwgcHJvdCwgTlVNQV9OT19OT0RFKSkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlyZXR1cm4gKHZvaWQgX19pb21lbSAqKWVhOwotfQotCi0vKioKLSAqIF9faW91bm1hcF9mcm9tIC0gTG93IGxldmVsIGZ1bmN0aW9uIHRvIHRlYXIgZG93biB0aGUgcGFnZSB0YWJsZXMKLSAqICAgICAgICAgICAgICAgICAgZm9yIGFuIElPIG1hcHBpbmcuIFRoaXMgaXMgdXNlZCBmb3IgbWFwcGluZ3MgdGhhdAotICogICAgICAgICAgICAgICAgICBhcmUgbWFuaXB1bGF0ZWQgbWFudWFsbHksIGxpa2UgcGFydGlhbCB1bm1hcHBpbmcgb2YKLSAqICAgICAgICAgICAgICAgICAgUENJIElPcyBvciBJU0Egc3BhY2UuCi0gKi8KLXZvaWQgX19pb3VubWFwX2F0KHZvaWQgKmVhLCB1bnNpZ25lZCBsb25nIHNpemUpCi17Ci0JV0FSTl9PTigoKHVuc2lnbmVkIGxvbmcpZWEpICYgflBBR0VfTUFTSyk7Ci0JV0FSTl9PTihzaXplICYgflBBR0VfTUFTSyk7Ci0KLQl1bm1hcF9rZXJuZWxfcmFuZ2UoKHVuc2lnbmVkIGxvbmcpZWEsIHNpemUpOwotfQotCi12b2lkIF9faW9tZW0gKiBfX2lvcmVtYXBfY2FsbGVyKHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCQlwZ3Byb3RfdCBwcm90LCB2b2lkICpjYWxsZXIpCi17Ci0JcGh5c19hZGRyX3QgcGFsaWduZWQ7Ci0Jdm9pZCBfX2lvbWVtICpyZXQ7Ci0KLQkvKgotCSAqIENob29zZSBhbiBhZGRyZXNzIHRvIG1hcCBpdCB0by4KLQkgKiBPbmNlIHRoZSBpbWFsbG9jIHN5c3RlbSBpcyBydW5uaW5nLCB3ZSB1c2UgaXQuCi0JICogQmVmb3JlIHRoYXQsIHdlIG1hcCB1c2luZyBhZGRyZXNzZXMgZ29pbmcKLQkgKiB1cCBmcm9tIGlvcmVtYXBfYm90LiAgaW1hbGxvYyB3aWxsIHVzZQotCSAqIHRoZSBhZGRyZXNzZXMgZnJvbSBpb3JlbWFwX2JvdCB0aHJvdWdoCi0JICogSU1BTExPQ19FTkQKLQkgKiAKLQkgKi8KLQlwYWxpZ25lZCA9IGFkZHIgJiBQQUdFX01BU0s7Ci0Jc2l6ZSA9IFBBR0VfQUxJR04oYWRkciArIHNpemUpIC0gcGFsaWduZWQ7Ci0KLQlpZiAoKHNpemUgPT0gMCkgfHwgKHBhbGlnbmVkID09IDApKQotCQlyZXR1cm4gTlVMTDsKLQotCWlmIChzbGFiX2lzX2F2YWlsYWJsZSgpKSB7Ci0JCXN0cnVjdCB2bV9zdHJ1Y3QgKmFyZWE7Ci0KLQkJYXJlYSA9IF9fZ2V0X3ZtX2FyZWFfY2FsbGVyKHNpemUsIFZNX0lPUkVNQVAsCi0JCQkJCSAgICBpb3JlbWFwX2JvdCwgSU9SRU1BUF9FTkQsCi0JCQkJCSAgICBjYWxsZXIpOwotCQlpZiAoYXJlYSA9PSBOVUxMKQotCQkJcmV0dXJuIE5VTEw7Ci0KLQkJYXJlYS0+cGh5c19hZGRyID0gcGFsaWduZWQ7Ci0JCXJldCA9IF9faW9yZW1hcF9hdChwYWxpZ25lZCwgYXJlYS0+YWRkciwgc2l6ZSwgcHJvdCk7Ci0JfSBlbHNlIHsKLQkJcmV0ID0gX19pb3JlbWFwX2F0KHBhbGlnbmVkLCAodm9pZCAqKWlvcmVtYXBfYm90LCBzaXplLCBwcm90KTsKLQkJaWYgKHJldCkKLQkJCWlvcmVtYXBfYm90ICs9IHNpemU7Ci0JfQotCi0JaWYgKHJldCkKLQkJcmV0ICs9IGFkZHIgJiB+UEFHRV9NQVNLOwotCXJldHVybiByZXQ7Ci19Ci0KLXZvaWQgX19pb21lbSAqIF9faW9yZW1hcChwaHlzX2FkZHJfdCBhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsCi0JCQkgdW5zaWduZWQgbG9uZyBmbGFncykKLXsKLQlyZXR1cm4gX19pb3JlbWFwX2NhbGxlcihhZGRyLCBzaXplLCBfX3BncHJvdChmbGFncyksIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7Ci19Ci0KLXZvaWQgX19pb21lbSAqIGlvcmVtYXAocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQotewotCXBncHJvdF90IHByb3QgPSBwZ3Byb3Rfbm9uY2FjaGVkKFBBR0VfS0VSTkVMKTsKLQl2b2lkICpjYWxsZXIgPSBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCk7Ci0KLQlpZiAocHBjX21kLmlvcmVtYXApCi0JCXJldHVybiBwcGNfbWQuaW9yZW1hcChhZGRyLCBzaXplLCBwcm90LCBjYWxsZXIpOwotCXJldHVybiBfX2lvcmVtYXBfY2FsbGVyKGFkZHIsIHNpemUsIHByb3QsIGNhbGxlcik7Ci19Ci0KLXZvaWQgX19pb21lbSAqIGlvcmVtYXBfd2MocGh5c19hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQotewotCXBncHJvdF90IHByb3QgPSBwZ3Byb3Rfbm9uY2FjaGVkX3djKFBBR0VfS0VSTkVMKTsKLQl2b2lkICpjYWxsZXIgPSBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCk7Ci0KLQlpZiAocHBjX21kLmlvcmVtYXApCi0JCXJldHVybiBwcGNfbWQuaW9yZW1hcChhZGRyLCBzaXplLCBwcm90LCBjYWxsZXIpOwotCXJldHVybiBfX2lvcmVtYXBfY2FsbGVyKGFkZHIsIHNpemUsIHByb3QsIGNhbGxlcik7Ci19Ci0KLXZvaWQgX19pb21lbSAqaW9yZW1hcF9jb2hlcmVudChwaHlzX2FkZHJfdCBhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCi17Ci0JcGdwcm90X3QgcHJvdCA9IHBncHJvdF9jYWNoZWQoUEFHRV9LRVJORUwpOwotCXZvaWQgKmNhbGxlciA9IF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKTsKLQotCWlmIChwcGNfbWQuaW9yZW1hcCkKLQkJcmV0dXJuIHBwY19tZC5pb3JlbWFwKGFkZHIsIHNpemUsIHByb3QsIGNhbGxlcik7Ci0JcmV0dXJuIF9faW9yZW1hcF9jYWxsZXIoYWRkciwgc2l6ZSwgcHJvdCwgY2FsbGVyKTsKLX0KLQotdm9pZCBfX2lvbWVtICogaW9yZW1hcF9wcm90KHBoeXNfYWRkcl90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCSAgICAgdW5zaWduZWQgbG9uZyBmbGFncykKLXsKLQlwdGVfdCBwdGUgPSBfX3B0ZShmbGFncyk7Ci0Jdm9pZCAqY2FsbGVyID0gX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApOwotCi0JLyogd3JpdGVhYmxlIGltcGxpZXMgZGlydHkgZm9yIGtlcm5lbCBhZGRyZXNzZXMgKi8KLQlpZiAocHRlX3dyaXRlKHB0ZSkpCi0JCXB0ZSA9IHB0ZV9ta2RpcnR5KHB0ZSk7Ci0KLQkvKiB3ZSBkb24ndCB3YW50IHRvIGxldCBfUEFHRV9FWEVDIGxlYWsgb3V0ICovCi0JcHRlID0gcHRlX2V4cHJvdGVjdChwdGUpOwotCS8qCi0JICogRm9yY2Uga2VybmVsIG1hcHBpbmcuCi0JICovCi0JcHRlID0gcHRlX21rcHJpdmlsZWdlZChwdGUpOwotCi0JaWYgKHBwY19tZC5pb3JlbWFwKQotCQlyZXR1cm4gcHBjX21kLmlvcmVtYXAoYWRkciwgc2l6ZSwgcHRlX3BncHJvdChwdGUpLCBjYWxsZXIpOwotCXJldHVybiBfX2lvcmVtYXBfY2FsbGVyKGFkZHIsIHNpemUsIHB0ZV9wZ3Byb3QocHRlKSwgY2FsbGVyKTsKLX0KLQotCi0vKiAgCi0gKiBVbm1hcCBhbiBJTyByZWdpb24gYW5kIHJlbW92ZSBpdCBmcm9tIGltYWxsb2MnZCBsaXN0LgotICogQWNjZXNzIHRvIElPIG1lbW9yeSBzaG91bGQgYmUgc2VyaWFsaXplZCBieSBkcml2ZXIuCi0gKi8KLXZvaWQgX19pb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqdG9rZW4pCi17Ci0Jdm9pZCAqYWRkcjsKLQotCWlmICghc2xhYl9pc19hdmFpbGFibGUoKSkKLQkJcmV0dXJuOwotCQotCWFkZHIgPSAodm9pZCAqKSAoKHVuc2lnbmVkIGxvbmcgX19mb3JjZSkKLQkJCSBQQ0lfRklYX0FERFIodG9rZW4pICYgUEFHRV9NQVNLKTsKLQlpZiAoKHVuc2lnbmVkIGxvbmcpYWRkciA8IGlvcmVtYXBfYm90KSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkF0dGVtcHQgdG8gaW91bm1hcCBlYXJseSBib2x0ZWQgbWFwcGluZyIKLQkJICAgICAgICIgYXQgMHglcFxuIiwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0JdnVubWFwKGFkZHIpOwotfQotCi12b2lkIGlvdW5tYXAodm9sYXRpbGUgdm9pZCBfX2lvbWVtICp0b2tlbikKLXsKLQlpZiAocHBjX21kLmlvdW5tYXApCi0JCXBwY19tZC5pb3VubWFwKHRva2VuKTsKLQllbHNlCi0JCV9faW91bm1hcCh0b2tlbik7Ci19Ci0KLUVYUE9SVF9TWU1CT0woaW9yZW1hcCk7Ci1FWFBPUlRfU1lNQk9MKGlvcmVtYXBfd2MpOwotRVhQT1JUX1NZTUJPTChpb3JlbWFwX3Byb3QpOwotRVhQT1JUX1NZTUJPTChfX2lvcmVtYXApOwotRVhQT1JUX1NZTUJPTChfX2lvcmVtYXBfYXQpOwotRVhQT1JUX1NZTUJPTChpb3VubWFwKTsKLUVYUE9SVF9TWU1CT0woX19pb3VubWFwKTsKLUVYUE9SVF9TWU1CT0woX19pb3VubWFwX2F0KTsKLQogI2lmbmRlZiBfX1BBR0VUQUJMRV9QVURfRk9MREVECiAvKiA0IGxldmVsIHBhZ2UgdGFibGUgKi8KIHN0cnVjdCBwYWdlICpwZ2RfcGFnZShwZ2RfdCBwZ2QpCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vcHRkdW1wL2JhdHMuYyBiL2FyY2gvcG93ZXJwYy9tbS9wdGR1bXAvYmF0cy5jCmluZGV4IGEwZDIzZTkuLjQxNTRmZWEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9wdGR1bXAvYmF0cy5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9wdGR1bXAvYmF0cy5jCkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIGludCBiYXRzX3Nob3dfNjAzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKIAogc3RhdGljIGludCBiYXRzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSXzYwMSkpCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BQQ19CT09LM1NfNjAxKSkKIAkJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIGJhdHNfc2hvd182MDEsIE5VTEwpOwogCiAJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIGJhdHNfc2hvd182MDMsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL3B0ZHVtcC9oYXNocGFnZXRhYmxlLmMgYi9hcmNoL3Bvd2VycGMvbW0vcHRkdW1wL2hhc2hwYWdldGFibGUuYwppbmRleCA3MmYwZTRhLi5hMDcyNzgwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vcHRkdW1wL2hhc2hwYWdldGFibGUuYworKysgYi9hcmNoL3Bvd2VycGMvbW0vcHRkdW1wL2hhc2hwYWdldGFibGUuYwpAQCAtMjM3LDcgKzIzNyw2IEBAIHN0YXRpYyBpbnQgbmF0aXZlX2ZpbmQodW5zaWduZWQgbG9uZyBlYSwgaW50IHBzaXplLCBib29sIHByaW1hcnksIHU2NCAqdiwgdTY0CiAJcmV0dXJuIC0xOwogfQogCi0jaWZkZWYgQ09ORklHX1BQQ19QU0VSSUVTCiBzdGF0aWMgaW50IHBzZXJpZXNfZmluZCh1bnNpZ25lZCBsb25nIGVhLCBpbnQgcHNpemUsIGJvb2wgcHJpbWFyeSwgdTY0ICp2LCB1NjQgKnIpCiB7CiAJc3RydWN0IGhhc2hfcHRlIHB0ZXNbNF07CkBAIC0yNzQsNyArMjczLDYgQEAgc3RhdGljIGludCBwc2VyaWVzX2ZpbmQodW5zaWduZWQgbG9uZyBlYSwgaW50IHBzaXplLCBib29sIHByaW1hcnksIHU2NCAqdiwgdTY0ICoKIAl9CiAJcmV0dXJuIC0xOwogfQotI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGRlY29kZV9yKGludCBicHMsIHVuc2lnbmVkIGxvbmcgciwgdW5zaWduZWQgbG9uZyAqcnBuLCBpbnQgKmFwcywKIAkJdW5zaWduZWQgbG9uZyAqbHBfYml0cykKQEAgLTMxNiwxMCArMzE0LDkgQEAgc3RhdGljIHZvaWQgZGVjb2RlX3IoaW50IGJwcywgdW5zaWduZWQgbG9uZyByLCB1bnNpZ25lZCBsb25nICpycG4sIGludCAqYXBzLAogc3RhdGljIGludCBiYXNlX2hwdGVfZmluZCh1bnNpZ25lZCBsb25nIGVhLCBpbnQgcHNpemUsIGJvb2wgcHJpbWFyeSwgdTY0ICp2LAogCQkJICB1NjQgKnIpCiB7Ci0jaWZkZWYgQ09ORklHX1BQQ19QU0VSSUVTCi0JaWYgKGZpcm13YXJlX2hhc19mZWF0dXJlKEZXX0ZFQVRVUkVfTFBBUikpCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BQQ19QU0VSSUVTKSAmJiBmaXJtd2FyZV9oYXNfZmVhdHVyZShGV19GRUFUVVJFX0xQQVIpKQogCQlyZXR1cm4gcHNlcmllc19maW5kKGVhLCBwc2l6ZSwgcHJpbWFyeSwgdiwgcik7Ci0jZW5kaWYKKwogCXJldHVybiBuYXRpdmVfZmluZChlYSwgcHNpemUsIHByaW1hcnksIHYsIHIpOwogfQogCkBAIC0zODYsMTIgKzM4MywxMyBAQCBzdGF0aWMgdm9pZCB3YWxrX3B0ZShzdHJ1Y3QgcGdfc3RhdGUgKnN0LCBwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIHN0YXJ0KQogCQkJcHNpemUgPSBtbXVfdm1hbGxvY19wc2l6ZTsKIAkJZWxzZQogCQkJcHNpemUgPSBtbXVfaW9fcHNpemU7Ci0jaWZkZWYgQ09ORklHX1BQQ182NEtfUEFHRVMKKwogCQkvKiBjaGVjayBmb3Igc2VjcmV0IDRLIG1hcHBpbmdzICovCi0JCWlmICgoKHB0ZXZhbCAmIEhfUEFHRV9DT01CTykgPT0gSF9QQUdFX0NPTUJPKSB8fAotCQkJKChwdGV2YWwgJiBIX1BBR0VfNEtfUEZOKSA9PSBIX1BBR0VfNEtfUEZOKSkKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BQQ182NEtfUEFHRVMpICYmCisJCSAgICAoKHB0ZXZhbCAmIEhfUEFHRV9DT01CTykgPT0gSF9QQUdFX0NPTUJPIHx8CisJCSAgICAgKHB0ZXZhbCAmIEhfUEFHRV80S19QRk4pID09IEhfUEFHRV80S19QRk4pKQogCQkJcHNpemUgPSBtbXVfaW9fcHNpemU7Ci0jZW5kaWYKKwogCQkvKiBjaGVjayBmb3IgaGFzaHB0ZSAqLwogCQlzdGF0dXMgPSBocHRlX2ZpbmQoc3QsIGFkZHIsIHBzaXplKTsKIApAQCAtNDY5LDkgKzQ2NywxMCBAQCBzdGF0aWMgdm9pZCB3YWxrX2xpbmVhcm1hcHBpbmcoc3RydWN0IHBnX3N0YXRlICpzdCkKIAogc3RhdGljIHZvaWQgd2Fsa192bWVtbWFwKHN0cnVjdCBwZ19zdGF0ZSAqc3QpCiB7Ci0jaWZkZWYgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQCiAJc3RydWN0IHZtZW1tYXBfYmFja2luZyAqcHRyID0gdm1lbW1hcF9saXN0OwogCisJaWYgKCFJU19FTkFCTEVEKENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUCkpCisJCXJldHVybjsKIAkvKgogCSAqIFRyYXZlcnNlIHRoZSB2bWVtbWFwZWQgbWVtb3J5IGFuZCBkdW1wIHBhZ2VzIHRoYXQgYXJlIGluIHRoZSBoYXNoCiAJICogcGFnZXRhYmxlLgpAQCAtNDgxLDcgKzQ4MCw2IEBAIHN0YXRpYyB2b2lkIHdhbGtfdm1lbW1hcChzdHJ1Y3QgcGdfc3RhdGUgKnN0KQogCQlwdHIgPSBwdHItPmxpc3Q7CiAJfQogCXNlcV9wdXRzKHN0LT5zZXEsICItLS1bIHZtZW1tYXAgZW5kIF0tLS1cbiIpOwotI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIHBvcHVsYXRlX21hcmtlcnModm9pZCkKQEAgLTQ5NSwxMSArNDkzLDcgQEAgc3RhdGljIHZvaWQgcG9wdWxhdGVfbWFya2Vycyh2b2lkKQogCWFkZHJlc3NfbWFya2Vyc1s2XS5zdGFydF9hZGRyZXNzID0gUEhCX0lPX0VORDsKIAlhZGRyZXNzX21hcmtlcnNbN10uc3RhcnRfYWRkcmVzcyA9IElPUkVNQVBfQkFTRTsKIAlhZGRyZXNzX21hcmtlcnNbOF0uc3RhcnRfYWRkcmVzcyA9IElPUkVNQVBfRU5EOwotI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0CiAJYWRkcmVzc19tYXJrZXJzWzldLnN0YXJ0X2FkZHJlc3MgPSAgSF9WTUVNTUFQX1NUQVJUOwotI2Vsc2UKLQlhZGRyZXNzX21hcmtlcnNbOV0uc3RhcnRfYWRkcmVzcyA9ICBWTUVNTUFQX0JBU0U7Ci0jZW5kaWYKIH0KIAogc3RhdGljIGludCBwdGR1bXBfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vcHRkdW1wL3B0ZHVtcC5jIGIvYXJjaC9wb3dlcnBjL21tL3B0ZHVtcC9wdGR1bXAuYwppbmRleCA2YTg4YTlmLi4yZjlkZGMyIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vcHRkdW1wL3B0ZHVtcC5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9wdGR1bXAvcHRkdW1wLmMKQEAgLTI2LDEwICsyNiw2IEBACiAKICNpbmNsdWRlICJwdGR1bXAuaCIKIAotI2lmZGVmIENPTkZJR19QUEMzMgotI2RlZmluZSBLRVJOX1ZJUlRfU1RBUlQJUEFHRV9PRkZTRVQKLSNlbmRpZgotCiAvKgogICogVG8gdmlzdWFsaXNlIHdoYXQgaXMgaGFwcGVuaW5nLAogICoKQEAgLTg4LDEwICs4NCw2IEBAIHN0YXRpYyBzdHJ1Y3QgYWRkcl9tYXJrZXIgYWRkcmVzc19tYXJrZXJzW10gPSB7CiAjZWxzZQogCXsgMCwJIkVhcmx5IEkvTyByZW1hcCBzdGFydCIgfSwKIAl7IDAsCSJFYXJseSBJL08gcmVtYXAgZW5kIiB9LAotI2lmZGVmIENPTkZJR19OT1RfQ09IRVJFTlRfQ0FDSEUKLQl7IDAsCSJDb25zaXN0ZW50IG1lbSBzdGFydCIgfSwKLQl7IDAsCSJDb25zaXN0ZW50IG1lbSBlbmQiIH0sCi0jZW5kaWYKICNpZmRlZiBDT05GSUdfSElHSE1FTQogCXsgMCwJIkhpZ2htZW0gUFRFcyBzdGFydCIgfSwKIAl7IDAsCSJIaWdobWVtIFBURXMgZW5kIiB9LApAQCAtMTgxLDcgKzE3Myw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfYWRkcihzdHJ1Y3QgcGdfc3RhdGUgKnN0LCB1bnNpZ25lZCBsb25nIGFkZHIpCiAKIHN0YXRpYyB2b2lkIG5vdGVfcHJvdF93eChzdHJ1Y3QgcGdfc3RhdGUgKnN0LCB1bnNpZ25lZCBsb25nIGFkZHIpCiB7Ci0JaWYgKCFzdC0+Y2hlY2tfd3gpCisJaWYgKCFJU19FTkFCTEVEKENPTkZJR19QUENfREVCVUdfV1gpIHx8ICFzdC0+Y2hlY2tfd3gpCiAJCXJldHVybjsKIAogCWlmICghKChzdC0+Y3VycmVudF9mbGFncyAmIHBncHJvdF92YWwoUEFHRV9LRVJORUxfWCkpID09IHBncHJvdF92YWwoUEFHRV9LRVJORUxfWCkpKQpAQCAtMjk5LDE3ICsyOTEsMTUgQEAgc3RhdGljIHZvaWQgd2Fsa19wdWQoc3RydWN0IHBnX3N0YXRlICpzdCwgcGdkX3QgKnBnZCwgdW5zaWduZWQgbG9uZyBzdGFydCkKIAogc3RhdGljIHZvaWQgd2Fsa19wYWdldGFibGVzKHN0cnVjdCBwZ19zdGF0ZSAqc3QpCiB7Ci0JcGdkX3QgKnBnZCA9IHBnZF9vZmZzZXRfaygwVUwpOwogCXVuc2lnbmVkIGludCBpOwotCXVuc2lnbmVkIGxvbmcgYWRkcjsKLQotCWFkZHIgPSBzdC0+c3RhcnRfYWRkcmVzczsKKwl1bnNpZ25lZCBsb25nIGFkZHIgPSBzdC0+c3RhcnRfYWRkcmVzcyAmIFBHRElSX01BU0s7CisJcGdkX3QgKnBnZCA9IHBnZF9vZmZzZXRfayhhZGRyKTsKIAogCS8qCiAJICogVHJhdmVyc2UgdGhlIGxpbnV4IHBhZ2V0YWJsZSBzdHJ1Y3R1cmUgYW5kIGR1bXAgcGFnZXMgdGhhdCBhcmUgaW4KIAkgKiB0aGUgaGFzaCBwYWdldGFibGUuCiAJICovCi0JZm9yIChpID0gMDsgaSA8IFBUUlNfUEVSX1BHRDsgaSsrLCBwZ2QrKywgYWRkciArPSBQR0RJUl9TSVpFKSB7CisJZm9yIChpID0gcGdkX2luZGV4KGFkZHIpOyBpIDwgUFRSU19QRVJfUEdEOyBpKyssIHBnZCsrLCBhZGRyICs9IFBHRElSX1NJWkUpIHsKIAkJaWYgKCFwZ2Rfbm9uZSgqcGdkKSAmJiAhcGdkX2lzX2xlYWYoKnBnZCkpCiAJCQkvKiBwZ2QgZXhpc3RzICovCiAJCQl3YWxrX3B1ZChzdCwgcGdkLCBhZGRyKTsKQEAgLTM0MSwxMSArMzMxLDYgQEAgc3RhdGljIHZvaWQgcG9wdWxhdGVfbWFya2Vycyh2b2lkKQogI2Vsc2UgLyogIUNPTkZJR19QUEM2NCAqLwogCWFkZHJlc3NfbWFya2Vyc1tpKytdLnN0YXJ0X2FkZHJlc3MgPSBpb3JlbWFwX2JvdDsKIAlhZGRyZXNzX21hcmtlcnNbaSsrXS5zdGFydF9hZGRyZXNzID0gSU9SRU1BUF9UT1A7Ci0jaWZkZWYgQ09ORklHX05PVF9DT0hFUkVOVF9DQUNIRQotCWFkZHJlc3NfbWFya2Vyc1tpKytdLnN0YXJ0X2FkZHJlc3MgPSBJT1JFTUFQX1RPUDsKLQlhZGRyZXNzX21hcmtlcnNbaSsrXS5zdGFydF9hZGRyZXNzID0gSU9SRU1BUF9UT1AgKwotCQkJCQkgICAgIENPTkZJR19DT05TSVNURU5UX1NJWkU7Ci0jZW5kaWYKICNpZmRlZiBDT05GSUdfSElHSE1FTQogCWFkZHJlc3NfbWFya2Vyc1tpKytdLnN0YXJ0X2FkZHJlc3MgPSBQS01BUF9CQVNFOwogCWFkZHJlc3NfbWFya2Vyc1tpKytdLnN0YXJ0X2FkZHJlc3MgPSBQS01BUF9BRERSKExBU1RfUEtNQVApOwpAQCAtMzY0LDEyICszNDksMTMgQEAgc3RhdGljIGludCBwdGR1bXBfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiAJc3RydWN0IHBnX3N0YXRlIHN0ID0gewogCQkuc2VxID0gbSwKIAkJLm1hcmtlciA9IGFkZHJlc3NfbWFya2VycywKKwkJLnN0YXJ0X2FkZHJlc3MgPSBQQUdFX09GRlNFVCwKIAl9OwogCi0JaWYgKHJhZGl4X2VuYWJsZWQoKSkKLQkJc3Quc3RhcnRfYWRkcmVzcyA9IFBBR0VfT0ZGU0VUOwotCWVsc2UKKyNpZmRlZiBDT05GSUdfUFBDNjQKKwlpZiAoIXJhZGl4X2VuYWJsZWQoKSkKIAkJc3Quc3RhcnRfYWRkcmVzcyA9IEtFUk5fVklSVF9TVEFSVDsKKyNlbmRpZgogCiAJLyogVHJhdmVyc2Uga2VybmVsIHBhZ2UgdGFibGVzICovCiAJd2Fsa19wYWdldGFibGVzKCZzdCk7CkBAIC00MDcsMTIgKzM5MywxMyBAQCB2b2lkIHB0ZHVtcF9jaGVja193eCh2b2lkKQogCQkuc2VxID0gTlVMTCwKIAkJLm1hcmtlciA9IGFkZHJlc3NfbWFya2VycywKIAkJLmNoZWNrX3d4ID0gdHJ1ZSwKKwkJLnN0YXJ0X2FkZHJlc3MgPSBQQUdFX09GRlNFVCwKIAl9OwogCi0JaWYgKHJhZGl4X2VuYWJsZWQoKSkKLQkJc3Quc3RhcnRfYWRkcmVzcyA9IFBBR0VfT0ZGU0VUOwotCWVsc2UKKyNpZmRlZiBDT05GSUdfUFBDNjQKKwlpZiAoIXJhZGl4X2VuYWJsZWQoKSkKIAkJc3Quc3RhcnRfYWRkcmVzcyA9IEtFUk5fVklSVF9TVEFSVDsKKyNlbmRpZgogCiAJd2Fsa19wYWdldGFibGVzKCZzdCk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wZXJmL2ltYy1wbXUuYyBiL2FyY2gvcG93ZXJwYy9wZXJmL2ltYy1wbXUuYwppbmRleCBkZWEyNDMxLi5jYjUwYTllIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGVyZi9pbWMtcG11LmMKKysrIGIvYXJjaC9wb3dlcnBjL3BlcmYvaW1jLXBtdS5jCkBAIC01NzcsNiArNTc3LDcgQEAgc3RhdGljIGludCBjb3JlX2ltY19tZW1faW5pdChpbnQgY3B1LCBpbnQgc2l6ZSkKIHsKIAlpbnQgbmlkLCByYyA9IDAsIGNvcmVfaWQgPSAoY3B1IC8gdGhyZWFkc19wZXJfY29yZSk7CiAJc3RydWN0IGltY19tZW1faW5mbyAqbWVtX2luZm87CisJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKIAkvKgogCSAqIGFsbG9jX3BhZ2VzX25vZGUoKSB3aWxsIGFsbG9jYXRlIG1lbW9yeSBmb3IgY29yZSBpbiB0aGUKQEAgLTU4NywxMSArNTg4LDEyIEBAIHN0YXRpYyBpbnQgY29yZV9pbWNfbWVtX2luaXQoaW50IGNwdSwgaW50IHNpemUpCiAJbWVtX2luZm8tPmlkID0gY29yZV9pZDsKIAogCS8qIFdlIG5lZWQgb25seSB2YmFzZSBmb3IgY29yZSBjb3VudGVycyAqLwotCW1lbV9pbmZvLT52YmFzZSA9IHBhZ2VfYWRkcmVzcyhhbGxvY19wYWdlc19ub2RlKG5pZCwKLQkJCQkJICBHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyB8IF9fR0ZQX1RISVNOT0RFIHwKLQkJCQkJICBfX0dGUF9OT1dBUk4sIGdldF9vcmRlcihzaXplKSkpOwotCWlmICghbWVtX2luZm8tPnZiYXNlKQorCXBhZ2UgPSBhbGxvY19wYWdlc19ub2RlKG5pZCwKKwkJCQlHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyB8IF9fR0ZQX1RISVNOT0RFIHwKKwkJCQlfX0dGUF9OT1dBUk4sIGdldF9vcmRlcihzaXplKSk7CisJaWYgKCFwYWdlKQogCQlyZXR1cm4gLUVOT01FTTsKKwltZW1faW5mby0+dmJhc2UgPSBwYWdlX2FkZHJlc3MocGFnZSk7CiAKIAkvKiBJbml0IHRoZSBtdXRleCAqLwogCWNvcmVfaW1jX3JlZmNbY29yZV9pZF0uaWQgPSBjb3JlX2lkOwpAQCAtODQ5LDE1ICs4NTEsMTcgQEAgc3RhdGljIGludCB0aHJlYWRfaW1jX21lbV9hbGxvYyhpbnQgY3B1X2lkLCBpbnQgc2l6ZSkKIAlpbnQgbmlkID0gY3B1X3RvX25vZGUoY3B1X2lkKTsKIAogCWlmICghbG9jYWxfbWVtKSB7CisJCXN0cnVjdCBwYWdlICpwYWdlOwogCQkvKgogCQkgKiBUaGlzIGNhc2UgY291bGQgaGFwcGVuIG9ubHkgb25jZSBhdCBzdGFydCwgc2luY2Ugd2UgZG9udAogCQkgKiBmcmVlIHRoZSBtZW1vcnkgaW4gY3B1IG9mZmxpbmUgcGF0aC4KIAkJICovCi0JCWxvY2FsX21lbSA9IHBhZ2VfYWRkcmVzcyhhbGxvY19wYWdlc19ub2RlKG5pZCwKKwkJcGFnZSA9IGFsbG9jX3BhZ2VzX25vZGUobmlkLAogCQkJCSAgR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8gfCBfX0dGUF9USElTTk9ERSB8Ci0JCQkJICBfX0dGUF9OT1dBUk4sIGdldF9vcmRlcihzaXplKSkpOwotCQlpZiAoIWxvY2FsX21lbSkKKwkJCQkgIF9fR0ZQX05PV0FSTiwgZ2V0X29yZGVyKHNpemUpKTsKKwkJaWYgKCFwYWdlKQogCQkJcmV0dXJuIC1FTk9NRU07CisJCWxvY2FsX21lbSA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsKIAogCQlwZXJfY3B1KHRocmVhZF9pbWNfbWVtLCBjcHVfaWQpID0gbG9jYWxfbWVtOwogCX0KQEAgLTEwOTUsMTEgKzEwOTksMTQgQEAgc3RhdGljIGludCB0cmFjZV9pbWNfbWVtX2FsbG9jKGludCBjcHVfaWQsIGludCBzaXplKQogCWludCBjb3JlX2lkID0gKGNwdV9pZCAvIHRocmVhZHNfcGVyX2NvcmUpOwogCiAJaWYgKCFsb2NhbF9tZW0pIHsKLQkJbG9jYWxfbWVtID0gcGFnZV9hZGRyZXNzKGFsbG9jX3BhZ2VzX25vZGUocGh5c19pZCwKLQkJCQkJR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8gfCBfX0dGUF9USElTTk9ERSB8Ci0JCQkJCV9fR0ZQX05PV0FSTiwgZ2V0X29yZGVyKHNpemUpKSk7Ci0JCWlmICghbG9jYWxfbWVtKQorCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKKworCQlwYWdlID0gYWxsb2NfcGFnZXNfbm9kZShwaHlzX2lkLAorCQkJCUdGUF9LRVJORUwgfCBfX0dGUF9aRVJPIHwgX19HRlBfVEhJU05PREUgfAorCQkJCV9fR0ZQX05PV0FSTiwgZ2V0X29yZGVyKHNpemUpKTsKKwkJaWYgKCFwYWdlKQogCQkJcmV0dXJuIC1FTk9NRU07CisJCWxvY2FsX21lbSA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsKIAkJcGVyX2NwdSh0cmFjZV9pbWNfbWVtLCBjcHVfaWQpID0gbG9jYWxfbWVtOwogCiAJCS8qIEluaXRpYWxpc2UgdGhlIGNvdW50ZXJzIGZvciB0cmFjZSBtb2RlICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzQ0eC9LY29uZmlnIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy80NHgvS2NvbmZpZwppbmRleCBiMzY5ZWQ0Li4yNWViZTYzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzQ0eC9LY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNDR4L0tjb25maWcKQEAgLTI3MiwxNCArMjcyLDYgQEAKIAloZWxwCiAJICBFbmFibGUgZ3Bpb2xpYiBzdXBwb3J0IGZvciBwcGM0NDAgYmFzZWQgYm9hcmRzCiAKLWNvbmZpZyBQUEM0eHhfT0NNCi0JYm9vbCAiUFBDNHh4IE9uIENoaXAgTWVtb3J5IChPQ00pIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiA0eHgKLQlzZWxlY3QgUFBDX0xJQl9SSEVBUAotCWhlbHAKLQkgIEVuYWJsZSBPQ00gc3VwcG9ydCBmb3IgUG93ZXJQQyA0eHggcGxhdGZvcm1zIHdpdGggb24gY2hpcCBtZW1vcnksCi0JICBPQ00gcHJvdmlkZXMgdGhlIGZhc3QgcGxhY2UgZm9yIG1lbW9yeSBhY2Nlc3MgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4KLQogIyA0NHggc3BlY2lmaWMgQ1BVIG1vZHVsZXMsIHNlbGVjdGVkIGJhc2VkIG9uIHRoZSBib2FyZCBhYm92ZS4KIGNvbmZpZyA0NDBFUAogCWJvb2wKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNHh4L01ha2VmaWxlIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy80eHgvTWFrZWZpbGUKaW5kZXggZjVhZTI3Yy4uZDAwOWQyZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy80eHgvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy80eHgvTWFrZWZpbGUKQEAgLTEsNiArMSw1IEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKIG9iai15CQkJCSs9IHVpYy5vIG1hY2hpbmVfY2hlY2subwotb2JqLSQoQ09ORklHX1BQQzR4eF9PQ00pCSs9IG9jbS5vCiBvYmotJChDT05GSUdfNHh4X1NPQykJCSs9IHNvYy5vCiBvYmotJChDT05GSUdfUENJKQkJKz0gcGNpLm8KIG9iai0kKENPTkZJR19QUEM0eHhfSFNUQV9NU0kpCSs9IGhzdGFfbXNpLm8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNHh4L29jbS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy80eHgvb2NtLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhMzI1NzQuLjAwMDAwMDAKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy80eHgvb2NtLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzOTAgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKLS8qCi0gKiBQb3dlclBDIDR4eCBPQ00gbWVtb3J5IGFsbG9jYXRpb24gc3VwcG9ydAotICoKLSAqIChDKSBDb3B5cmlnaHQgMjAwOSwgQXBwbGllZCBNaWNybyBDaXJjdWl0cyBDb3Jwb3JhdGlvbgotICogVmljdG9yIEdhbGxhcmRvICh2Z2FsbGFyZG9AYW1jYy5jb20pCi0gKgotICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKLSAqIHByb2plY3QuCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Ci0jaW5jbHVkZSA8bGludXgvb2YuaD4KLSNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+Ci0jaW5jbHVkZSA8YXNtL3JoZWFwLmg+Ci0jaW5jbHVkZSA8YXNtL3BwYzR4eF9vY20uaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgotCi0jZGVmaW5lIE9DTV9ESVNBQkxFRAkwCi0jZGVmaW5lIE9DTV9FTkFCTEVECQkxCi0KLXN0cnVjdCBvY21fYmxvY2sgewotCXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsKLQl2b2lkIF9faW9tZW0JCSphZGRyOwotCWludAkJCQkJc2l6ZTsKLQljb25zdCBjaGFyCQkJKm93bmVyOwotfTsKLQotLyogbm9uLWNhY2hlZCBvciBjYWNoZWQgcmVnaW9uICovCi1zdHJ1Y3Qgb2NtX3JlZ2lvbiB7Ci0JcGh5c19hZGRyX3QJCQlwaHlzOwotCXZvaWQgX19pb21lbQkJKnZpcnQ7Ci0KLQlpbnQJCQkJCW1lbXRvdGFsOwotCWludAkJCQkJbWVtZnJlZTsKLQotCXJoX2luZm9fdAkJCSpyaDsKLQlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7Ci19OwotCi1zdHJ1Y3Qgb2NtX2luZm8gewotCWludAkJCQkJaW5kZXg7Ci0JaW50CQkJCQlzdGF0dXM7Ci0JaW50CQkJCQlyZWFkeTsKLQotCXBoeXNfYWRkcl90CQkJcGh5czsKLQotCWludAkJCQkJYWxpZ25tZW50OwotCWludAkJCQkJbWVtdG90YWw7Ci0JaW50CQkJCQljYWNoZV9zaXplOwotCi0Jc3RydWN0IG9jbV9yZWdpb24JbmM7CS8qIG5vbi1jYWNoZWQgcmVnaW9uICovCi0Jc3RydWN0IG9jbV9yZWdpb24JYzsJLyogY2FjaGVkIHJlZ2lvbiAqLwotfTsKLQotc3RhdGljIHN0cnVjdCBvY21faW5mbyAqb2NtX25vZGVzOwotc3RhdGljIGludCBvY21fY291bnQ7Ci0KLXN0YXRpYyBzdHJ1Y3Qgb2NtX2luZm8gKm9jbV9nZXRfbm9kZSh1bnNpZ25lZCBpbnQgaW5kZXgpCi17Ci0JaWYgKGluZGV4ID49IG9jbV9jb3VudCkgewotCQlwcmludGsoS0VSTl9FUlIgIlBQQzRYWCBPQ006IGludmFsaWQgaW5kZXgiKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCi0JcmV0dXJuICZvY21fbm9kZXNbaW5kZXhdOwotfQotCi1zdGF0aWMgaW50IG9jbV9mcmVlX3JlZ2lvbihzdHJ1Y3Qgb2NtX3JlZ2lvbiAqb2NtX3JlZywgY29uc3Qgdm9pZCAqYWRkcikKLXsKLQlzdHJ1Y3Qgb2NtX2Jsb2NrICpibGssICp0bXA7Ci0JdW5zaWduZWQgbG9uZyBvZmZzZXQ7Ci0KLQlpZiAoIW9jbV9yZWctPnZpcnQpCi0JCXJldHVybiAwOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJsaywgdG1wLCAmb2NtX3JlZy0+bGlzdCwgbGlzdCkgewotCQlpZiAoYmxrLT5hZGRyID09IGFkZHIpIHsKLQkJCW9mZnNldCA9IGFkZHIgLSBvY21fcmVnLT52aXJ0OwotCQkJb2NtX3JlZy0+bWVtZnJlZSArPSBibGstPnNpemU7Ci0JCQlyaF9mcmVlKG9jbV9yZWctPnJoLCBvZmZzZXQpOwotCQkJbGlzdF9kZWwoJmJsay0+bGlzdCk7Ci0JCQlrZnJlZShibGspOwotCQkJcmV0dXJuIDE7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0IG9jbV9pbml0X25vZGUoaW50IGNvdW50LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCi17Ci0Jc3RydWN0IG9jbV9pbmZvICpvY207Ci0KLQljb25zdCB1bnNpZ25lZCBpbnQgKmNlbGxfaW5kZXg7Ci0JY29uc3QgdW5zaWduZWQgaW50ICpjYWNoZV9zaXplOwotCWludCBsZW47Ci0KLQlzdHJ1Y3QgcmVzb3VyY2UgcnNyYzsKLQotCW9jbSA9IG9jbV9nZXRfbm9kZShjb3VudCk7Ci0KLQljZWxsX2luZGV4ID0gb2ZfZ2V0X3Byb3BlcnR5KG5vZGUsICJjZWxsLWluZGV4IiwgJmxlbik7Ci0JaWYgKCFjZWxsX2luZGV4KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiUFBDNFhYIE9DTTogbWlzc2luZyBjZWxsLWluZGV4IHByb3BlcnR5Iik7Ci0JCXJldHVybjsKLQl9Ci0Jb2NtLT5pbmRleCA9ICpjZWxsX2luZGV4OwotCi0JaWYgKG9mX2RldmljZV9pc19hdmFpbGFibGUobm9kZSkpCi0JCW9jbS0+c3RhdHVzID0gT0NNX0VOQUJMRUQ7Ci0KLQljYWNoZV9zaXplID0gb2ZfZ2V0X3Byb3BlcnR5KG5vZGUsICJjYWNoZWQtcmVnaW9uLXNpemUiLCAmbGVuKTsKLQlpZiAoY2FjaGVfc2l6ZSkKLQkJb2NtLT5jYWNoZV9zaXplID0gKmNhY2hlX3NpemU7Ci0KLQlpZiAob2ZfYWRkcmVzc190b19yZXNvdXJjZShub2RlLCAwLCAmcnNyYykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJQUEM0WFggT0NNJWQ6IGNvdWxkIG5vdCBnZXQgcmVzb3VyY2UgYWRkcmVzc1xuIiwKLQkJCW9jbS0+aW5kZXgpOwotCQlyZXR1cm47Ci0JfQotCi0Jb2NtLT5waHlzID0gcnNyYy5zdGFydDsKLQlvY20tPm1lbXRvdGFsID0gKHJzcmMuZW5kIC0gcnNyYy5zdGFydCArIDEpOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiUFBDNFhYIE9DTSVkOiAlZCBCeXRlcyAoJXMpXG4iLAotCQlvY20tPmluZGV4LCBvY20tPm1lbXRvdGFsLAotCQkob2NtLT5zdGF0dXMgPT0gT0NNX0RJU0FCTEVEKSA/ICJkaXNhYmxlZCIgOiAiZW5hYmxlZCIpOwotCi0JaWYgKG9jbS0+c3RhdHVzID09IE9DTV9ESVNBQkxFRCkKLQkJcmV0dXJuOwotCi0JLyogcmVxdWVzdCByZWdpb24gKi8KLQotCWlmICghcmVxdWVzdF9tZW1fcmVnaW9uKG9jbS0+cGh5cywgb2NtLT5tZW10b3RhbCwgInBwYzR4eF9vY20iKSkgewotCQlwcmludGsoS0VSTl9FUlIgIlBQQzRYWCBPQ00lZDogY291bGQgbm90IHJlcXVlc3QgcmVnaW9uXG4iLAotCQkJb2NtLT5pbmRleCk7Ci0JCXJldHVybjsKLQl9Ci0KLQkvKiBDb25maWd1cmUgbm9uLWNhY2hlZCBhbmQgY2FjaGVkIHJlZ2lvbnMgKi8KLQotCW9jbS0+bmMucGh5cyA9IG9jbS0+cGh5czsKLQlvY20tPm5jLm1lbXRvdGFsID0gb2NtLT5tZW10b3RhbCAtIG9jbS0+Y2FjaGVfc2l6ZTsKLQlvY20tPm5jLm1lbWZyZWUgPSBvY20tPm5jLm1lbXRvdGFsOwotCi0Jb2NtLT5jLnBoeXMgPSBvY20tPnBoeXMgKyBvY20tPm5jLm1lbXRvdGFsOwotCW9jbS0+Yy5tZW10b3RhbCA9IG9jbS0+Y2FjaGVfc2l6ZTsKLQlvY20tPmMubWVtZnJlZSA9IG9jbS0+Yy5tZW10b3RhbDsKLQotCWlmIChvY20tPm5jLm1lbXRvdGFsID09IDApCi0JCW9jbS0+bmMucGh5cyA9IDA7Ci0KLQlpZiAob2NtLT5jLm1lbXRvdGFsID09IDApCi0JCW9jbS0+Yy5waHlzID0gMDsKLQotCXByaW50ayhLRVJOX0lORk8gIlBQQzRYWCBPQ00lZDogJWQgQnl0ZXMgKG5vbi1jYWNoZWQpXG4iLAotCQlvY20tPmluZGV4LCBvY20tPm5jLm1lbXRvdGFsKTsKLQotCXByaW50ayhLRVJOX0lORk8gIlBQQzRYWCBPQ00lZDogJWQgQnl0ZXMgKGNhY2hlZClcbiIsCi0JCW9jbS0+aW5kZXgsIG9jbS0+Yy5tZW10b3RhbCk7Ci0KLQkvKiBpb3JlbWFwIHRoZSBub24tY2FjaGVkIHJlZ2lvbiAqLwotCWlmIChvY20tPm5jLm1lbXRvdGFsKSB7Ci0JCW9jbS0+bmMudmlydCA9IF9faW9yZW1hcChvY20tPm5jLnBoeXMsIG9jbS0+bmMubWVtdG90YWwsCi0JCQlfUEFHRV9FWEVDIHwgcGdwcm90X3ZhbChQQUdFX0tFUk5FTF9OQ0cpKTsKLQotCQlpZiAoIW9jbS0+bmMudmlydCkgewotCQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkgICAgICAgIlBQQzRYWCBPQ00lZDogZmFpbGVkIHRvIGlvcmVtYXAgbm9uLWNhY2hlZCBtZW1vcnlcbiIsCi0JCQkgICAgICAgb2NtLT5pbmRleCk7Ci0JCQlvY20tPm5jLm1lbWZyZWUgPSAwOwotCQkJcmV0dXJuOwotCQl9Ci0JfQotCi0JLyogaW9yZW1hcCB0aGUgY2FjaGVkIHJlZ2lvbiAqLwotCi0JaWYgKG9jbS0+Yy5tZW10b3RhbCkgewotCQlvY20tPmMudmlydCA9IF9faW9yZW1hcChvY20tPmMucGh5cywgb2NtLT5jLm1lbXRvdGFsLAotCQkJCQlfUEFHRV9FWEVDIHwgcGdwcm90X3ZhbChQQUdFX0tFUk5FTCkpOwotCi0JCWlmICghb2NtLT5jLnZpcnQpIHsKLQkJCXByaW50ayhLRVJOX0VSUgotCQkJICAgICAgICJQUEM0WFggT0NNJWQ6IGZhaWxlZCB0byBpb3JlbWFwIGNhY2hlZCBtZW1vcnlcbiIsCi0JCQkgICAgICAgb2NtLT5pbmRleCk7Ci0JCQlvY20tPmMubWVtZnJlZSA9IDA7Ci0JCQlyZXR1cm47Ci0JCX0KLQl9Ci0KLQkvKiBDcmVhdGUgUmVtb3RlIEhlYXBzICovCi0KLQlvY20tPmFsaWdubWVudCA9IDQ7IC8qIGRlZmF1bHQgNCBieXRlIGFsaWdubWVudCAqLwotCi0JaWYgKG9jbS0+bmMudmlydCkgewotCQlvY20tPm5jLnJoID0gcmhfY3JlYXRlKG9jbS0+YWxpZ25tZW50KTsKLQkJcmhfYXR0YWNoX3JlZ2lvbihvY20tPm5jLnJoLCAwLCBvY20tPm5jLm1lbXRvdGFsKTsKLQl9Ci0KLQlpZiAob2NtLT5jLnZpcnQpIHsKLQkJb2NtLT5jLnJoID0gcmhfY3JlYXRlKG9jbS0+YWxpZ25tZW50KTsKLQkJcmhfYXR0YWNoX3JlZ2lvbihvY20tPmMucmgsIDAsIG9jbS0+Yy5tZW10b3RhbCk7Ci0JfQotCi0JSU5JVF9MSVNUX0hFQUQoJm9jbS0+bmMubGlzdCk7Ci0JSU5JVF9MSVNUX0hFQUQoJm9jbS0+Yy5saXN0KTsKLQotCW9jbS0+cmVhZHkgPSAxOwotfQotCi1zdGF0aWMgaW50IG9jbV9kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQotewotCXN0cnVjdCBvY21fYmxvY2sgKmJsaywgKnRtcDsKLQl1bnNpZ25lZCBpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBvY21fY291bnQ7IGkrKykgewotCQlzdHJ1Y3Qgb2NtX2luZm8gKm9jbSA9IG9jbV9nZXRfbm9kZShpKTsKLQotCQlpZiAoIW9jbSB8fCAhb2NtLT5yZWFkeSkKLQkJCWNvbnRpbnVlOwotCi0JCXNlcV9wcmludGYobSwgIlBQQzRYWCBPQ00gICA6ICVkXG4iLCBvY20tPmluZGV4KTsKLQkJc2VxX3ByaW50ZihtLCAiUGh5c0FkZHIgICAgIDogJXBhXG4iLCAmKG9jbS0+cGh5cykpOwotCQlzZXFfcHJpbnRmKG0sICJNZW1Ub3RhbCAgICAgOiAlZCBCeXRlc1xuIiwgb2NtLT5tZW10b3RhbCk7Ci0JCXNlcV9wcmludGYobSwgIk1lbVRvdGFsKE5DKSA6ICVkIEJ5dGVzXG4iLCBvY20tPm5jLm1lbXRvdGFsKTsKLQkJc2VxX3ByaW50ZihtLCAiTWVtVG90YWwoQykgIDogJWQgQnl0ZXNcblxuIiwgb2NtLT5jLm1lbXRvdGFsKTsKLQotCQlzZXFfcHJpbnRmKG0sICJOQy5QaHlzQWRkciAgOiAlcGFcbiIsICYob2NtLT5uYy5waHlzKSk7Ci0JCXNlcV9wcmludGYobSwgIk5DLlZpcnRBZGRyICA6IDB4JXBcbiIsIG9jbS0+bmMudmlydCk7Ci0JCXNlcV9wcmludGYobSwgIk5DLk1lbVRvdGFsICA6ICVkIEJ5dGVzXG4iLCBvY20tPm5jLm1lbXRvdGFsKTsKLQkJc2VxX3ByaW50ZihtLCAiTkMuTWVtRnJlZSAgIDogJWQgQnl0ZXNcbiIsIG9jbS0+bmMubWVtZnJlZSk7Ci0KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJsaywgdG1wLCAmb2NtLT5uYy5saXN0LCBsaXN0KSB7Ci0JCQlzZXFfcHJpbnRmKG0sICJOQy5NZW1Vc2VkICAgOiAlZCBCeXRlcyAoJXMpXG4iLAotCQkJCQkJCWJsay0+c2l6ZSwgYmxrLT5vd25lcik7Ci0JCX0KLQotCQlzZXFfcHJpbnRmKG0sICJcbkMuUGh5c0FkZHIgICA6ICVwYVxuIiwgJihvY20tPmMucGh5cykpOwotCQlzZXFfcHJpbnRmKG0sICJDLlZpcnRBZGRyICAgOiAweCVwXG4iLCBvY20tPmMudmlydCk7Ci0JCXNlcV9wcmludGYobSwgIkMuTWVtVG90YWwgICA6ICVkIEJ5dGVzXG4iLCBvY20tPmMubWVtdG90YWwpOwotCQlzZXFfcHJpbnRmKG0sICJDLk1lbUZyZWUgICAgOiAlZCBCeXRlc1xuIiwgb2NtLT5jLm1lbWZyZWUpOwotCi0JCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShibGssIHRtcCwgJm9jbS0+Yy5saXN0LCBsaXN0KSB7Ci0JCQlzZXFfcHJpbnRmKG0sICJDLk1lbVVzZWQgICAgOiAlZCBCeXRlcyAoJXMpXG4iLAotCQkJCQkJYmxrLT5zaXplLCBibGstPm93bmVyKTsKLQkJfQotCi0JCXNlcV9wdXRjKG0sICdcbicpOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IG9jbV9kZWJ1Z2ZzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIG9jbV9kZWJ1Z2ZzX3Nob3csIE5VTEwpOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBvY21fZGVidWdmc19mb3BzID0gewotCS5vcGVuID0gb2NtX2RlYnVnZnNfb3BlbiwKLQkucmVhZCA9IHNlcV9yZWFkLAotCS5sbHNlZWsgPSBzZXFfbHNlZWssCi0JLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKLX07Ci0KLXN0YXRpYyBpbnQgb2NtX2RlYnVnZnNfaW5pdCh2b2lkKQotewotCXN0cnVjdCBkZW50cnkgKmp1bms7Ci0KLQlqdW5rID0gZGVidWdmc19jcmVhdGVfZGlyKCJwcGM0eHhfb2NtIiwgMCk7Ci0JaWYgKCFqdW5rKSB7Ci0JCXByaW50ayhLRVJOX0FMRVJUICJkZWJ1Z2ZzIHBwYzR4eCBvY206IGZhaWxlZCB0byBjcmVhdGUgZGlyXG4iKTsKLQkJcmV0dXJuIC0xOwotCX0KLQotCWlmIChkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJpbmZvIiwgMDY0NCwganVuaywgTlVMTCwgJm9jbV9kZWJ1Z2ZzX2ZvcHMpKSB7Ci0JCXByaW50ayhLRVJOX0FMRVJUICJkZWJ1Z2ZzIHBwYzR4eCBvY206IGZhaWxlZCB0byBjcmVhdGUgZmlsZVxuIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotdm9pZCAqcHBjNHh4X29jbV9hbGxvYyhwaHlzX2FkZHJfdCAqcGh5cywgaW50IHNpemUsIGludCBhbGlnbiwKLQkJCWludCBmbGFncywgY29uc3QgY2hhciAqb3duZXIpCi17Ci0Jdm9pZCBfX2lvbWVtICphZGRyID0gTlVMTDsKLQl1bnNpZ25lZCBsb25nIG9mZnNldDsKLQlzdHJ1Y3Qgb2NtX2luZm8gKm9jbTsKLQlzdHJ1Y3Qgb2NtX3JlZ2lvbiAqb2NtX3JlZzsKLQlzdHJ1Y3Qgb2NtX2Jsb2NrICpvY21fYmxrOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IG9jbV9jb3VudDsgaSsrKSB7Ci0JCW9jbSA9IG9jbV9nZXRfbm9kZShpKTsKLQotCQlpZiAoIW9jbSB8fCAhb2NtLT5yZWFkeSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChmbGFncyA9PSBQUEM0WFhfT0NNX05PTl9DQUNIRUQpCi0JCQlvY21fcmVnID0gJm9jbS0+bmM7Ci0JCWVsc2UKLQkJCW9jbV9yZWcgPSAmb2NtLT5jOwotCi0JCWlmICghb2NtX3JlZy0+dmlydCkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChhbGlnbiA8IG9jbS0+YWxpZ25tZW50KQotCQkJYWxpZ24gPSBvY20tPmFsaWdubWVudDsKLQotCQlvZmZzZXQgPSByaF9hbGxvY19hbGlnbihvY21fcmVnLT5yaCwgc2l6ZSwgYWxpZ24sIE5VTEwpOwotCi0JCWlmIChJU19FUlJfVkFMVUUob2Zmc2V0KSkKLQkJCWNvbnRpbnVlOwotCi0JCW9jbV9ibGsgPSBremFsbG9jKHNpemVvZigqb2NtX2JsayksIEdGUF9LRVJORUwpOwotCQlpZiAoIW9jbV9ibGspIHsKLQkJCXJoX2ZyZWUob2NtX3JlZy0+cmgsIG9mZnNldCk7Ci0JCQlicmVhazsKLQkJfQotCi0JCSpwaHlzID0gb2NtX3JlZy0+cGh5cyArIG9mZnNldDsKLQkJYWRkciA9IG9jbV9yZWctPnZpcnQgKyBvZmZzZXQ7Ci0JCXNpemUgPSBBTElHTihzaXplLCBhbGlnbik7Ci0KLQkJb2NtX2Jsay0+YWRkciA9IGFkZHI7Ci0JCW9jbV9ibGstPnNpemUgPSBzaXplOwotCQlvY21fYmxrLT5vd25lciA9IG93bmVyOwotCQlsaXN0X2FkZF90YWlsKCZvY21fYmxrLT5saXN0LCAmb2NtX3JlZy0+bGlzdCk7Ci0KLQkJb2NtX3JlZy0+bWVtZnJlZSAtPSBzaXplOwotCi0JCWJyZWFrOwotCX0KLQotCXJldHVybiBhZGRyOwotfQotCi12b2lkIHBwYzR4eF9vY21fZnJlZShjb25zdCB2b2lkICphZGRyKQotewotCWludCBpOwotCi0JaWYgKCFhZGRyKQotCQlyZXR1cm47Ci0KLQlmb3IgKGkgPSAwOyBpIDwgb2NtX2NvdW50OyBpKyspIHsKLQkJc3RydWN0IG9jbV9pbmZvICpvY20gPSBvY21fZ2V0X25vZGUoaSk7Ci0KLQkJaWYgKCFvY20gfHwgIW9jbS0+cmVhZHkpCi0JCQljb250aW51ZTsKLQotCQlpZiAob2NtX2ZyZWVfcmVnaW9uKCZvY20tPm5jLCBhZGRyKSB8fAotCQkJb2NtX2ZyZWVfcmVnaW9uKCZvY20tPmMsIGFkZHIpKQotCQkJcmV0dXJuOwotCX0KLX0KLQotc3RhdGljIGludCBfX2luaXQgcHBjNHh4X29jbV9pbml0KHZvaWQpCi17Ci0Jc3RydWN0IGRldmljZV9ub2RlICpucDsKLQlpbnQgY291bnQ7Ci0KLQljb3VudCA9IDA7Ci0JZm9yX2VhY2hfY29tcGF0aWJsZV9ub2RlKG5wLCBOVUxMLCAiaWJtLG9jbSIpCi0JCWNvdW50Kys7Ci0KLQlpZiAoIWNvdW50KQotCQlyZXR1cm4gMDsKLQotCW9jbV9ub2RlcyA9IGt6YWxsb2MoKGNvdW50ICogc2l6ZW9mKHN0cnVjdCBvY21faW5mbykpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW9jbV9ub2RlcykKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlvY21fY291bnQgPSBjb3VudDsKLQljb3VudCA9IDA7Ci0KLQlmb3JfZWFjaF9jb21wYXRpYmxlX25vZGUobnAsIE5VTEwsICJpYm0sb2NtIikgewotCQlvY21faW5pdF9ub2RlKGNvdW50LCBucCk7Ci0JCWNvdW50Kys7Ci0JfQotCi0Jb2NtX2RlYnVnZnNfaW5pdCgpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLWFyY2hfaW5pdGNhbGwocHBjNHh4X29jbV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZwppbmRleCBmM2ZiNzlmLi5kODJlMzY2IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnCkBAIC0xOTcsNyArMTk3LDggQEAKIAogY29uZmlnIFBQQzYwMV9TWU5DX0ZJWAogCWJvb2wgIldvcmthcm91bmRzIGZvciBQUEM2MDEgYnVncyIKLQlkZXBlbmRzIG9uIFBQQ19CT09LM1NfMzIgJiYgUFBDX1BNQUMKKwlkZXBlbmRzIG9uIFBQQ19CT09LM1NfNjAxICYmIFBQQ19QTUFDCisJZGVmYXVsdCB5CiAJaGVscAogCSAgU29tZSB2ZXJzaW9ucyBvZiB0aGUgUFBDNjAxICh0aGUgZmlyc3QgUG93ZXJQQyBjaGlwKSBoYXZlIGJ1Z3Mgd2hpY2gKIAkgIG1lYW4gdGhhdCBleHRyYSBzeW5jaHJvbml6YXRpb24gaW5zdHJ1Y3Rpb25zIGFyZSByZXF1aXJlZCBuZWFyCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWcuY3B1dHlwZSBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy5jcHV0eXBlCmluZGV4IDU2YTdjODEuLjEyNTQzZTUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy5jcHV0eXBlCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy5jcHV0eXBlCkBAIC02LDYgKzYsOSBAQAogCSAgVGhpcyBvcHRpb24gc2VsZWN0cyB3aGV0aGVyIGEgMzItYml0IG9yIGEgNjQtYml0IGtlcm5lbAogCSAgd2lsbCBiZSBidWlsdC4KIAorY29uZmlnIFBQQ19CT09LM1NfMzIKKwlib29sCisKIG1lbnUgIlByb2Nlc3NvciBzdXBwb3J0IgogY2hvaWNlCiAJcHJvbXB0ICJQcm9jZXNzb3IgVHlwZSIKQEAgLTIxLDEzICsyNCwyMCBAQAogCiAJICBJZiB1bnN1cmUsIHNlbGVjdCA1Mnh4LzZ4eC83eHgvNzR4eC84Mnh4LzgzeHgvODZ4eC4KIAotY29uZmlnIFBQQ19CT09LM1NfMzIKLQlib29sICI1MTJ4LzUyeHgvNnh4Lzd4eC83NHh4LzgyeHgvODN4eC84Nnh4IgorY29uZmlnIFBQQ19CT09LM1NfNnh4CisJYm9vbCAiNTEyeC81Mnh4LzZ4eC83eHgvNzR4eC84Mnh4LzgzeHgvODZ4eCBleGNlcHQgNjAxIgorCXNlbGVjdCBQUENfQk9PSzNTXzMyCiAJc2VsZWN0IFBQQ19GUFUKIAlzZWxlY3QgUFBDX0hBVkVfUE1VX1NVUFBPUlQKIAlzZWxlY3QgUFBDX0hBVkVfS1VFUAogCXNlbGVjdCBQUENfSEFWRV9LVUFQCiAKK2NvbmZpZyBQUENfQk9PSzNTXzYwMQorCWJvb2wgIlBvd2VyUEMgNjAxIgorCXNlbGVjdCBQUENfQk9PSzNTXzMyCisJc2VsZWN0IFBQQ19GUFUKKwlzZWxlY3QgUFBDX0hBVkVfS1VBUAorCiBjb25maWcgUFBDXzg1eHgKIAlib29sICJGcmVlc2NhbGUgODV4eCIKIAlzZWxlY3QgRTUwMApAQCAtNDUwLDggKzQ2MCwxMCBAQAogCWRlcGVuZHMgb24gNHh4IHx8IFBQQ184eHggfHwgRTIwMCB8fCBQUENfTVBDNTEyeCB8fCBcCiAJCUdBTUVDVUJFX0NPTU1PTiB8fCBBTUlHQU9ORQogCXNlbGVjdCBBUkNIX0hBU19ETUFfQ09IRVJFTlRfVE9fUEZOCisJc2VsZWN0IEFSQ0hfSEFTX0RNQV9QUkVQX0NPSEVSRU5UCiAJc2VsZWN0IEFSQ0hfSEFTX1NZTkNfRE1BX0ZPUl9ERVZJQ0UKIAlzZWxlY3QgQVJDSF9IQVNfU1lOQ19ETUFfRk9SX0NQVQorCXNlbGVjdCBETUFfRElSRUNUX1JFTUFQCiAJZGVmYXVsdCBuIGlmIFBQQ180N3gKIAlkZWZhdWx0IHkKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL2lvbW11LmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvaW9tbXUuYwppbmRleCAxNmRmZWUyLi5jYTlmZmMxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvaW9tbXUuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvaW9tbXUuYwpAQCAtNDg2LDcgKzQ4Niw3IEBAIGNlbGxfaW9tbXVfc2V0dXBfd2luZG93KHN0cnVjdCBjYmVfaW9tbXUgKmlvbW11LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogCXdpbmRvdy0+dGFibGUuaXRfc2l6ZSA9IHNpemUgPj4gd2luZG93LT50YWJsZS5pdF9wYWdlX3NoaWZ0OwogCXdpbmRvdy0+dGFibGUuaXRfb3BzID0gJmNlbGxfaW9tbXVfb3BzOwogCi0JaW9tbXVfaW5pdF90YWJsZSgmd2luZG93LT50YWJsZSwgaW9tbXUtPm5pZCk7CisJaW9tbXVfaW5pdF90YWJsZSgmd2luZG93LT50YWJsZSwgaW9tbXUtPm5pZCwgMCwgMCk7CiAKIAlwcl9kZWJ1ZygiXHRpb2lkICAgICAgJWRcbiIsIHdpbmRvdy0+aW9pZCk7CiAJcHJfZGVidWcoIlx0YmxvY2tzaXplICVsZFxuIiwgd2luZG93LT50YWJsZS5pdF9ibG9ja3NpemUpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3NwdWZzL2lub2RlLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvaW5vZGUuYwppbmRleCAwNjVmZjE0Li4xZDkzZTU1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvaW5vZGUuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvaW5vZGUuYwpAQCAtMTAsNiArMTAsOCBAQAogCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZnNfY29udGV4dC5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzX3BhcnNlci5oPgogI2luY2x1ZGUgPGxpbnV4L2Zzbm90aWZ5Lmg+CiAjaW5jbHVkZSA8bGludXgvYmFja2luZy1kZXYuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC0yMCw3ICsyMiw2IEBACiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvcGFyc2VyLmg+CiAKICNpbmNsdWRlIDxhc20vcHJvbS5oPgogI2luY2x1ZGUgPGFzbS9zcHUuaD4KQEAgLTMwLDcgKzMxLDcgQEAKICNpbmNsdWRlICJzcHVmcy5oIgogCiBzdHJ1Y3Qgc3B1ZnNfc2JfaW5mbyB7Ci0JaW50IGRlYnVnOworCWJvb2wgZGVidWc7CiB9OwogCiBzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKnNwdWZzX2lub2RlX2NhY2hlOwpAQCAtNTc0LDE2ICs1NzUsMjcgQEAgbG9uZyBzcHVmc19jcmVhdGUoc3RydWN0IHBhdGggKnBhdGgsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKIH0KIAogLyogRmlsZSBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKi8KLWVudW0gewotCU9wdF91aWQsIE9wdF9naWQsIE9wdF9tb2RlLCBPcHRfZGVidWcsIE9wdF9lcnIsCitzdHJ1Y3Qgc3B1ZnNfZnNfY29udGV4dCB7CisJa3VpZF90CXVpZDsKKwlrZ2lkX3QJZ2lkOworCXVtb2RlX3QJbW9kZTsKIH07CiAKLXN0YXRpYyBjb25zdCBtYXRjaF90YWJsZV90IHNwdWZzX3Rva2VucyA9IHsKLQl7IE9wdF91aWQsICAgInVpZD0lZCIgfSwKLQl7IE9wdF9naWQsICAgImdpZD0lZCIgfSwKLQl7IE9wdF9tb2RlLCAgIm1vZGU9JW8iIH0sCi0JeyBPcHRfZGVidWcsICJkZWJ1ZyIgfSwKLQl7IE9wdF9lcnIsICAgIE5VTEwgIH0sCitlbnVtIHsKKwlPcHRfdWlkLCBPcHRfZ2lkLCBPcHRfbW9kZSwgT3B0X2RlYnVnLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfc3BlYyBzcHVmc19wYXJhbV9zcGVjc1tdID0geworCWZzcGFyYW1fdTMyCSgiZ2lkIiwJCQkJT3B0X2dpZCksCisJZnNwYXJhbV91MzJvY3QJKCJtb2RlIiwJCQlPcHRfbW9kZSksCisJZnNwYXJhbV91MzIJKCJ1aWQiLAkJCQlPcHRfdWlkKSwKKwlmc3BhcmFtX2ZsYWcJKCJkZWJ1ZyIsCQkJT3B0X2RlYnVnKSwKKwl7fQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfZGVzY3JpcHRpb24gc3B1ZnNfZnNfcGFyYW1ldGVycyA9IHsKKwkubmFtZQkJPSAic3B1ZnMiLAorCS5zcGVjcwkJPSBzcHVmc19wYXJhbV9zcGVjcywKIH07CiAKIHN0YXRpYyBpbnQgc3B1ZnNfc2hvd19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRlbnRyeSAqcm9vdCkKQEAgLTYwNCw0NyArNjE2LDQxIEBAIHN0YXRpYyBpbnQgc3B1ZnNfc2hvd19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRlbnRyeSAqcm9vdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAotc3B1ZnNfcGFyc2Vfb3B0aW9ucyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBjaGFyICpvcHRpb25zLCBzdHJ1Y3QgaW5vZGUgKnJvb3QpCitzdGF0aWMgaW50IHNwdWZzX3BhcnNlX3BhcmFtKHN0cnVjdCBmc19jb250ZXh0ICpmYywgc3RydWN0IGZzX3BhcmFtZXRlciAqcGFyYW0pCiB7Ci0JY2hhciAqcDsKLQlzdWJzdHJpbmdfdCBhcmdzW01BWF9PUFRfQVJHU107CisJc3RydWN0IHNwdWZzX2ZzX2NvbnRleHQgKmN0eCA9IGZjLT5mc19wcml2YXRlOworCXN0cnVjdCBzcHVmc19zYl9pbmZvICpzYmkgPSBmYy0+c19mc19pbmZvOworCXN0cnVjdCBmc19wYXJzZV9yZXN1bHQgcmVzdWx0OworCWt1aWRfdCB1aWQ7CisJa2dpZF90IGdpZDsKKwlpbnQgb3B0OwogCi0Jd2hpbGUgKChwID0gc3Ryc2VwKCZvcHRpb25zLCAiLCIpKSAhPSBOVUxMKSB7Ci0JCWludCB0b2tlbiwgb3B0aW9uOworCW9wdCA9IGZzX3BhcnNlKGZjLCAmc3B1ZnNfZnNfcGFyYW1ldGVycywgcGFyYW0sICZyZXN1bHQpOworCWlmIChvcHQgPCAwKQorCQlyZXR1cm4gb3B0OwogCi0JCWlmICghKnApCi0JCQljb250aW51ZTsKLQotCQl0b2tlbiA9IG1hdGNoX3Rva2VuKHAsIHNwdWZzX3Rva2VucywgYXJncyk7Ci0JCXN3aXRjaCAodG9rZW4pIHsKLQkJY2FzZSBPcHRfdWlkOgotCQkJaWYgKG1hdGNoX2ludCgmYXJnc1swXSwgJm9wdGlvbikpCi0JCQkJcmV0dXJuIDA7Ci0JCQlyb290LT5pX3VpZCA9IG1ha2Vfa3VpZChjdXJyZW50X3VzZXJfbnMoKSwgb3B0aW9uKTsKLQkJCWlmICghdWlkX3ZhbGlkKHJvb3QtPmlfdWlkKSkKLQkJCQlyZXR1cm4gMDsKLQkJCWJyZWFrOwotCQljYXNlIE9wdF9naWQ6Ci0JCQlpZiAobWF0Y2hfaW50KCZhcmdzWzBdLCAmb3B0aW9uKSkKLQkJCQlyZXR1cm4gMDsKLQkJCXJvb3QtPmlfZ2lkID0gbWFrZV9rZ2lkKGN1cnJlbnRfdXNlcl9ucygpLCBvcHRpb24pOwotCQkJaWYgKCFnaWRfdmFsaWQocm9vdC0+aV9naWQpKQotCQkJCXJldHVybiAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X21vZGU6Ci0JCQlpZiAobWF0Y2hfb2N0YWwoJmFyZ3NbMF0sICZvcHRpb24pKQotCQkJCXJldHVybiAwOwotCQkJcm9vdC0+aV9tb2RlID0gb3B0aW9uIHwgU19JRkRJUjsKLQkJCWJyZWFrOwotCQljYXNlIE9wdF9kZWJ1ZzoKLQkJCXNwdWZzX2dldF9zYl9pbmZvKHNiKS0+ZGVidWcgPSAxOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlyZXR1cm4gMDsKLQkJfQorCXN3aXRjaCAob3B0KSB7CisJY2FzZSBPcHRfdWlkOgorCQl1aWQgPSBtYWtlX2t1aWQoY3VycmVudF91c2VyX25zKCksIHJlc3VsdC51aW50XzMyKTsKKwkJaWYgKCF1aWRfdmFsaWQodWlkKSkKKwkJCXJldHVybiBpbnZhbGYoZmMsICJVbmtub3duIHVpZCIpOworCQljdHgtPnVpZCA9IHVpZDsKKwkJYnJlYWs7CisJY2FzZSBPcHRfZ2lkOgorCQlnaWQgPSBtYWtlX2tnaWQoY3VycmVudF91c2VyX25zKCksIHJlc3VsdC51aW50XzMyKTsKKwkJaWYgKCFnaWRfdmFsaWQoZ2lkKSkKKwkJCXJldHVybiBpbnZhbGYoZmMsICJVbmtub3duIGdpZCIpOworCQljdHgtPmdpZCA9IGdpZDsKKwkJYnJlYWs7CisJY2FzZSBPcHRfbW9kZToKKwkJY3R4LT5tb2RlID0gcmVzdWx0LnVpbnRfMzIgJiBTX0lBTExVR087CisJCWJyZWFrOworCWNhc2UgT3B0X2RlYnVnOgorCQlzYmktPmRlYnVnID0gdHJ1ZTsKKwkJYnJlYWs7CiAJfQotCXJldHVybiAxOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIHNwdWZzX2V4aXRfaXNvbGF0ZWRfbG9hZGVyKHZvaWQpCkBAIC02NzgsNzkgKzY4NCw5OCBAQCBzcHVmc19pbml0X2lzb2xhdGVkX2xvYWRlcih2b2lkKQogCXByaW50ayhLRVJOX0lORk8gInNwdWZzOiBTUFUgaXNvbGF0aW9uIG1vZGUgZW5hYmxlZFxuIik7CiB9CiAKLXN0YXRpYyBpbnQKLXNwdWZzX2NyZWF0ZV9yb290KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IHNwdWZzX2NyZWF0ZV9yb290KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKKwlzdHJ1Y3Qgc3B1ZnNfZnNfY29udGV4dCAqY3R4ID0gZmMtPmZzX3ByaXZhdGU7CiAJc3RydWN0IGlub2RlICppbm9kZTsKLQlpbnQgcmV0OwogCi0JcmV0ID0gLUVOT0RFVjsKIAlpZiAoIXNwdV9tYW5hZ2VtZW50X29wcykKLQkJZ290byBvdXQ7CisJCXJldHVybiAtRU5PREVWOwogCi0JcmV0ID0gLUVOT01FTTsKLQlpbm9kZSA9IHNwdWZzX25ld19pbm9kZShzYiwgU19JRkRJUiB8IDA3NzUpOworCWlub2RlID0gc3B1ZnNfbmV3X2lub2RlKHNiLCBTX0lGRElSIHwgY3R4LT5tb2RlKTsKIAlpZiAoIWlub2RlKQotCQlnb3RvIG91dDsKKwkJcmV0dXJuIC1FTk9NRU07CiAKKwlpbm9kZS0+aV91aWQgPSBjdHgtPnVpZDsKKwlpbm9kZS0+aV9naWQgPSBjdHgtPmdpZDsKIAlpbm9kZS0+aV9vcCA9ICZzaW1wbGVfZGlyX2lub2RlX29wZXJhdGlvbnM7CiAJaW5vZGUtPmlfZm9wID0gJnNpbXBsZV9kaXJfb3BlcmF0aW9uczsKIAlTUFVGU19JKGlub2RlKS0+aV9jdHggPSBOVUxMOwogCWluY19ubGluayhpbm9kZSk7CiAKLQlyZXQgPSAtRUlOVkFMOwotCWlmICghc3B1ZnNfcGFyc2Vfb3B0aW9ucyhzYiwgZGF0YSwgaW5vZGUpKQotCQlnb3RvIG91dF9pcHV0OwotCi0JcmV0ID0gLUVOT01FTTsKIAlzYi0+c19yb290ID0gZF9tYWtlX3Jvb3QoaW5vZGUpOwogCWlmICghc2ItPnNfcm9vdCkKLQkJZ290byBvdXQ7Ci0KKwkJcmV0dXJuIC1FTk9NRU07CiAJcmV0dXJuIDA7Ci1vdXRfaXB1dDoKLQlpcHV0KGlub2RlKTsKLW91dDoKLQlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50Ci1zcHVmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCitzdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgc3B1ZnNfb3BzID0geworCS5hbGxvY19pbm9kZQk9IHNwdWZzX2FsbG9jX2lub2RlLAorCS5mcmVlX2lub2RlCT0gc3B1ZnNfZnJlZV9pbm9kZSwKKwkuc3RhdGZzCQk9IHNpbXBsZV9zdGF0ZnMsCisJLmV2aWN0X2lub2RlCT0gc3B1ZnNfZXZpY3RfaW5vZGUsCisJLnNob3dfb3B0aW9ucwk9IHNwdWZzX3Nob3dfb3B0aW9ucywKK307CisKK3N0YXRpYyBpbnQgc3B1ZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0Jc3RydWN0IHNwdWZzX3NiX2luZm8gKmluZm87Ci0Jc3RhdGljIGNvbnN0IHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIHNfb3BzID0gewotCQkuYWxsb2NfaW5vZGUgPSBzcHVmc19hbGxvY19pbm9kZSwKLQkJLmZyZWVfaW5vZGUgPSBzcHVmc19mcmVlX2lub2RlLAotCQkuc3RhdGZzID0gc2ltcGxlX3N0YXRmcywKLQkJLmV2aWN0X2lub2RlID0gc3B1ZnNfZXZpY3RfaW5vZGUsCi0JCS5zaG93X29wdGlvbnMgPSBzcHVmc19zaG93X29wdGlvbnMsCi0JfTsKLQotCWluZm8gPSBremFsbG9jKHNpemVvZigqaW5mbyksIEdGUF9LRVJORUwpOwotCWlmICghaW5mbykKLQkJcmV0dXJuIC1FTk9NRU07Ci0KIAlzYi0+c19tYXhieXRlcyA9IE1BWF9MRlNfRklMRVNJWkU7CiAJc2ItPnNfYmxvY2tzaXplID0gUEFHRV9TSVpFOwogCXNiLT5zX2Jsb2Nrc2l6ZV9iaXRzID0gUEFHRV9TSElGVDsKIAlzYi0+c19tYWdpYyA9IFNQVUZTX01BR0lDOwotCXNiLT5zX29wID0gJnNfb3BzOwotCXNiLT5zX2ZzX2luZm8gPSBpbmZvOworCXNiLT5zX29wID0gJnNwdWZzX29wczsKIAotCXJldHVybiBzcHVmc19jcmVhdGVfcm9vdChzYiwgZGF0YSk7CisJcmV0dXJuIHNwdWZzX2NyZWF0ZV9yb290KHNiLCBmYyk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoKLXNwdWZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc3R5cGUsIGludCBmbGFncywKLQkJY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqZGF0YSkKK3N0YXRpYyBpbnQgc3B1ZnNfZ2V0X3RyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewotCXJldHVybiBtb3VudF9zaW5nbGUoZnN0eXBlLCBmbGFncywgZGF0YSwgc3B1ZnNfZmlsbF9zdXBlcik7CisJcmV0dXJuIGdldF90cmVlX3NpbmdsZShmYywgc3B1ZnNfZmlsbF9zdXBlcik7Cit9CisKK3N0YXRpYyB2b2lkIHNwdWZzX2ZyZWVfZmMoc3RydWN0IGZzX2NvbnRleHQgKmZjKQoreworCWtmcmVlKGZjLT5zX2ZzX2luZm8pOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX2NvbnRleHRfb3BlcmF0aW9ucyBzcHVmc19jb250ZXh0X29wcyA9IHsKKwkuZnJlZQkJPSBzcHVmc19mcmVlX2ZjLAorCS5wYXJzZV9wYXJhbQk9IHNwdWZzX3BhcnNlX3BhcmFtLAorCS5nZXRfdHJlZQk9IHNwdWZzX2dldF90cmVlLAorfTsKKworc3RhdGljIGludCBzcHVmc19pbml0X2ZzX2NvbnRleHQoc3RydWN0IGZzX2NvbnRleHQgKmZjKQoreworCXN0cnVjdCBzcHVmc19mc19jb250ZXh0ICpjdHg7CisJc3RydWN0IHNwdWZzX3NiX2luZm8gKnNiaTsKKworCWN0eCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzcHVmc19mc19jb250ZXh0KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjdHgpCisJCWdvdG8gbm9tZW07CisKKwlzYmkgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc3B1ZnNfc2JfaW5mbyksIEdGUF9LRVJORUwpOworCWlmICghc2JpKQorCQlnb3RvIG5vbWVtX2N0eDsKKworCWN0eC0+dWlkID0gY3VycmVudF91aWQoKTsKKwljdHgtPmdpZCA9IGN1cnJlbnRfZ2lkKCk7CisJY3R4LT5tb2RlID0gMDc1NTsKKworCWZjLT5zX2ZzX2luZm8gPSBzYmk7CisJZmMtPm9wcyA9ICZzcHVmc19jb250ZXh0X29wczsKKwlyZXR1cm4gMDsKKworbm9tZW1fY3R4OgorCWtmcmVlKGN0eCk7Citub21lbToKKwlyZXR1cm4gLUVOT01FTTsKIH0KIAogc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIHNwdWZzX3R5cGUgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJLm5hbWUgPSAic3B1ZnMiLAotCS5tb3VudCA9IHNwdWZzX21vdW50LAorCS5pbml0X2ZzX2NvbnRleHQgPSBzcHVmc19pbml0X2ZzX2NvbnRleHQsCisJLnBhcmFtZXRlcnMJPSAmc3B1ZnNfZnNfcGFyYW1ldGVycywKIAkua2lsbF9zYiA9IGtpbGxfbGl0dGVyX3N1cGVyLAogfTsKIE1PRFVMRV9BTElBU19GUygic3B1ZnMiKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2lvbW11LmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bhc2VtaS9pb21tdS5jCmluZGV4IDc3ZmVlMDkuLmI1MDBhNmUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2lvbW11LmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wYXNlbWkvaW9tbXUuYwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyB2b2lkIGlvbW11X3RhYmxlX2lvYm1hcF9zZXR1cCh2b2lkKQogCSAqLwogCWlvbW11X3RhYmxlX2lvYm1hcC5pdF9ibG9ja3NpemUgPSA0OwogCWlvbW11X3RhYmxlX2lvYm1hcC5pdF9vcHMgPSAmaW9tbXVfdGFibGVfaW9ibWFwX29wczsKLQlpb21tdV9pbml0X3RhYmxlKCZpb21tdV90YWJsZV9pb2JtYXAsIDApOworCWlvbW11X2luaXRfdGFibGUoJmlvbW11X3RhYmxlX2lvYm1hcCwgMCwgMCwgMCk7CiAJcHJfZGVidWcoIiA8LSAlc1xuIiwgX19mdW5jX18pOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvS2NvbmZpZyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9LY29uZmlnCmluZGV4IDg1MGVlZTguLjkzODgwM2UgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9LY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9LY29uZmlnCkBAIC0xMiw3ICsxMiw2IEBACiAJc2VsZWN0IEVQQVBSX0JPT1QKIAlzZWxlY3QgUFBDX0lORElSRUNUX1BJTwogCXNlbGVjdCBQUENfVURCR18xNjU1MAotCXNlbGVjdCBQUENfU0NPTQogCXNlbGVjdCBBUkNIX1JBTkRPTQogCXNlbGVjdCBDUFVfRlJFUQogCXNlbGVjdCBQUENfRE9PUkJFTEwKQEAgLTQ3LDMgKzQ2LDcgQEAKIAkgIFZBUyBhZGFwdGVycyBhcmUgZm91bmQgaW4gUE9XRVI5IGJhc2VkIHN5c3RlbXMuCiAKIAkgIElmIHVuc3VyZSwgc2F5IE4uCisKK2NvbmZpZyBTQ09NX0RFQlVHRlMKKwlib29sICJFeHBvc2UgU0NPTSBjb250cm9sbGVycyB2aWEgZGVidWdmcyIKKwlkZXBlbmRzIG9uIERFQlVHX0ZTCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvTWFrZWZpbGUgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvTWFrZWZpbGUKaW5kZXggZGEyZTk5ZS4uYTNhYzk2NCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L01ha2VmaWxlCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9NYWtlZmlsZQpAQCAtNCwxNSArNCwxOSBAQAogb2JqLXkJCQkrPSBybmcubyBvcGFsLWVsb2cubyBvcGFsLWR1bXAubyBvcGFsLXN5c3BhcmFtLm8gb3BhbC1zZW5zb3Iubwogb2JqLXkJCQkrPSBvcGFsLW1zZ2xvZy5vIG9wYWwtaG1pLm8gb3BhbC1wb3dlci5vIG9wYWwtaXJxY2hpcC5vCiBvYmoteQkJCSs9IG9wYWwta21zZy5vIG9wYWwtcG93ZXJjYXAubyBvcGFsLXBzci5vIG9wYWwtc2Vuc29yLWdyb3Vwcy5vCitvYmoteQkJCSs9IHVsdHJhdmlzb3IubwogCiBvYmotJChDT05GSUdfU01QKQkrPSBzbXAubyBzdWJjb3JlLm8gc3ViY29yZS1hc20ubworb2JqLSQoQ09ORklHX0ZBX0RVTVApCSs9IG9wYWwtZmFkdW1wLm8KK29iai0kKENPTkZJR19QUkVTRVJWRV9GQV9EVU1QKQkrPSBvcGFsLWZhZHVtcC5vCitvYmotJChDT05GSUdfT1BBTF9DT1JFKQkrPSBvcGFsLWNvcmUubwogb2JqLSQoQ09ORklHX1BDSSkJKz0gcGNpLm8gcGNpLWlvZGEubyBucHUtZG1hLm8gcGNpLWlvZGEtdGNlLm8KIG9iai0kKENPTkZJR19DWExfQkFTRSkJKz0gcGNpLWN4bC5vCiBvYmotJChDT05GSUdfRUVIKQkrPSBlZWgtcG93ZXJudi5vCi1vYmotJChDT05GSUdfUFBDX1NDT00pCSs9IG9wYWwteHNjb20ubwogb2JqLSQoQ09ORklHX01FTU9SWV9GQUlMVVJFKQkrPSBvcGFsLW1lbW9yeS1lcnJvcnMubwogb2JqLSQoQ09ORklHX09QQUxfUFJEKQkrPSBvcGFsLXByZC5vCiBvYmotJChDT05GSUdfUEVSRl9FVkVOVFMpICs9IG9wYWwtaW1jLm8KIG9iai0kKENPTkZJR19QUENfTUVNVFJBQ0UpCSs9IG1lbXRyYWNlLm8KIG9iai0kKENPTkZJR19QUENfVkFTKQkrPSB2YXMubyB2YXMtd2luZG93Lm8gdmFzLWRlYnVnLm8KIG9iai0kKENPTkZJR19PQ1hMX0JBU0UpCSs9IG9jeGwubworb2JqLSQoQ09ORklHX1NDT01fREVCVUdGUykgKz0gb3BhbC14c2NvbS5vCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvZWVoLXBvd2VybnYuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9lZWgtcG93ZXJudi5jCmluZGV4IDYyMGE5ODYuLjZiYzI0YTQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9lZWgtcG93ZXJudi5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9lZWgtcG93ZXJudi5jCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJwb3dlcm52LmgiCiAjaW5jbHVkZSAicGNpLmgiCisjaW5jbHVkZSAiLi4vLi4vLi4vLi4vZHJpdmVycy9wY2kvcGNpLmgiCiAKIHN0YXRpYyBpbnQgZWVoX2V2ZW50X2lycSA9IC1FSU5WQUw7CiAKQEAgLTQxLDEzICs0MiwxMCBAQCB2b2lkIHBudl9wY2liaW9zX2J1c19hZGRfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewogCXN0cnVjdCBwY2lfZG4gKnBkbiA9IHBjaV9nZXRfcGRuKHBkZXYpOwogCi0JaWYgKCFwZGV2LT5pc192aXJ0Zm4pCisJaWYgKGVlaF9oYXNfZmxhZyhFRUhfRk9SQ0VfRElTQUJMRUQpKQogCQlyZXR1cm47CiAKLQkvKgotCSAqIFRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucyB3aWxsIGZhaWwgaWYgVkYncyBzeXNmcyBmaWxlcwotCSAqIGFyZW4ndCBjcmVhdGVkIG9yIGl0cyByZXNvdXJjZXMgYXJlbid0IGZpbmFsaXplZC4KLQkgKi8KKwlkZXZfZGJnKCZwZGV2LT5kZXYsICJFRUg6IFNldHRpbmcgdXAgZGV2aWNlXG4iKTsKIAllZWhfYWRkX2RldmljZV9lYXJseShwZG4pOwogCWVlaF9hZGRfZGV2aWNlX2xhdGUocGRldik7CiAJZWVoX3N5c2ZzX2FkZF9kZXZpY2UocGRldik7CkBAIC0xOTksNiArMTk3LDI1IEBAIFBOVl9FRUhfREJHRlNfRU5UUlkoaW5iQiwgMHhFMTApOwogCiAjZW5kaWYgLyogQ09ORklHX0RFQlVHX0ZTICovCiAKK3ZvaWQgcG52X2VlaF9lbmFibGVfcGhicyh2b2lkKQoreworCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZTsKKwlzdHJ1Y3QgcG52X3BoYiAqcGhiOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShob3NlLCAmaG9zZV9saXN0LCBsaXN0X25vZGUpIHsKKwkJcGhiID0gaG9zZS0+cHJpdmF0ZV9kYXRhOworCQkvKgorCQkgKiBJZiBFRUggaXMgZW5hYmxlZCwgd2UncmUgZ29pbmcgdG8gcmVseSBvbiB0aGF0LgorCQkgKiBPdGhlcndpc2UsIHdlIHJlc3RvcmUgdG8gY29udmVudGlvbmFsIG1lY2hhbmlzbQorCQkgKiB0byBjbGVhciBmcm96ZW4gUEUgZHVyaW5nIFBDSSBjb25maWcgYWNjZXNzLgorCQkgKi8KKwkJaWYgKGVlaF9lbmFibGVkKCkpCisJCQlwaGItPmZsYWdzIHw9IFBOVl9QSEJfRkxBR19FRUg7CisJCWVsc2UKKwkJCXBoYi0+ZmxhZ3MgJj0gflBOVl9QSEJfRkxBR19FRUg7CisJfQorfQorCiAvKioKICAqIHBudl9lZWhfcG9zdF9pbml0IC0gRUVIIHBsYXRmb3JtIGRlcGVuZGVudCBwb3N0IGluaXRpYWxpemF0aW9uCiAgKgpAQCAtMjEzLDkgKzIzMCw3IEBAIGludCBwbnZfZWVoX3Bvc3RfaW5pdCh2b2lkKQogCXN0cnVjdCBwbnZfcGhiICpwaGI7CiAJaW50IHJldCA9IDA7CiAKLQkvKiBQcm9iZSBkZXZpY2VzICYgYnVpbGQgYWRkcmVzcyBjYWNoZSAqLwotCWVlaF9wcm9iZV9kZXZpY2VzKCk7Ci0JZWVoX2FkZHJfY2FjaGVfYnVpbGQoKTsKKwllZWhfc2hvd19lbmFibGVkKCk7CiAKIAkvKiBSZWdpc3RlciBPUEFMIGV2ZW50IG5vdGlmaWVyICovCiAJZWVoX2V2ZW50X2lycSA9IG9wYWxfZXZlbnRfcmVxdWVzdChpbG9nMihPUEFMX0VWRU5UX1BDSV9FUlJPUikpOwpAQCAtMjM3LDE5ICsyNTIsMTEgQEAgaW50IHBudl9lZWhfcG9zdF9pbml0KHZvaWQpCiAJaWYgKCFlZWhfZW5hYmxlZCgpKQogCQlkaXNhYmxlX2lycShlZWhfZXZlbnRfaXJxKTsKIAorCXBudl9lZWhfZW5hYmxlX3BoYnMoKTsKKwogCWxpc3RfZm9yX2VhY2hfZW50cnkoaG9zZSwgJmhvc2VfbGlzdCwgbGlzdF9ub2RlKSB7CiAJCXBoYiA9IGhvc2UtPnByaXZhdGVfZGF0YTsKIAotCQkvKgotCQkgKiBJZiBFRUggaXMgZW5hYmxlZCwgd2UncmUgZ29pbmcgdG8gcmVseSBvbiB0aGF0LgotCQkgKiBPdGhlcndpc2UsIHdlIHJlc3RvcmUgdG8gY29udmVudGlvbmFsIG1lY2hhbmlzbQotCQkgKiB0byBjbGVhciBmcm96ZW4gUEUgZHVyaW5nIFBDSSBjb25maWcgYWNjZXNzLgotCQkgKi8KLQkJaWYgKGVlaF9lbmFibGVkKCkpCi0JCQlwaGItPmZsYWdzIHw9IFBOVl9QSEJfRkxBR19FRUg7Ci0JCWVsc2UKLQkJCXBoYi0+ZmxhZ3MgJj0gflBOVl9QSEJfRkxBR19FRUg7Ci0KIAkJLyogQ3JlYXRlIGRlYnVnZnMgZW50cmllcyAqLwogI2lmZGVmIENPTkZJR19ERUJVR19GUwogCQlpZiAocGhiLT5oYXNfZGJnZnMgfHwgIXBoYi0+ZGJnZnMpCkBAIC0zNzcsNiArMzg0LDggQEAgc3RhdGljIHZvaWQgKnBudl9lZWhfcHJvYmUoc3RydWN0IHBjaV9kbiAqcGRuLCB2b2lkICpkYXRhKQogCWlmICgocGRuLT5jbGFzc19jb2RlID4+IDgpID09IFBDSV9DTEFTU19CUklER0VfSVNBKQogCQlyZXR1cm4gTlVMTDsKIAorCWVlaF9lZGV2X2RiZyhlZGV2LCAiUHJvYmluZyBkZXZpY2VcbiIpOworCiAJLyogSW5pdGlhbGl6ZSBlZWggZGV2aWNlICovCiAJZWRldi0+Y2xhc3NfY29kZSA9IHBkbi0+Y2xhc3NfY29kZTsKIAllZGV2LT5tb2RlCSY9IDB4RkZGRkZGMDA7CkBAIC00MDIsOSArNDExLDcgQEAgc3RhdGljIHZvaWQgKnBudl9lZWhfcHJvYmUoc3RydWN0IHBjaV9kbiAqcGRuLCB2b2lkICpkYXRhKQogCS8qIENyZWF0ZSBQRSAqLwogCXJldCA9IGVlaF9hZGRfdG9fcGFyZW50X3BlKGVkZXYpOwogCWlmIChyZXQpIHsKLQkJcHJfd2FybigiJXM6IENhbid0IGFkZCBQQ0kgZGV2ICUwNHg6JTAyeDolMDJ4LiUwMXggdG8gcGFyZW50IFBFICgleClcbiIsCi0JCQlfX2Z1bmNfXywgaG9zZS0+Z2xvYmFsX251bWJlciwgcGRuLT5idXNubywKLQkJCVBDSV9TTE9UKHBkbi0+ZGV2Zm4pLCBQQ0lfRlVOQyhwZG4tPmRldmZuKSwgcmV0KTsKKwkJZWVoX2VkZXZfd2FybihlZGV2LCAiRmFpbGVkIHRvIGFkZCBkZXZpY2UgdG8gUEUgKGNvZGUgJWQpXG4iLCByZXQpOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAKQEAgLTQ1MywxMSArNDYwLDE3IEBAIHN0YXRpYyB2b2lkICpwbnZfZWVoX3Byb2JlKHN0cnVjdCBwY2lfZG4gKnBkbiwgdm9pZCAqZGF0YSkKIAkgKiBFbmFibGUgRUVIIGV4cGxpY2l0bHkgc28gdGhhdCB3ZSB3aWxsIGRvIEVFSCBjaGVjawogCSAqIHdoaWxlIGFjY2Vzc2luZyBJL08gc3R1ZmYKIAkgKi8KLQllZWhfYWRkX2ZsYWcoRUVIX0VOQUJMRUQpOworCWlmICghZWVoX2hhc19mbGFnKEVFSF9FTkFCTEVEKSkgeworCQllbmFibGVfaXJxKGVlaF9ldmVudF9pcnEpOworCQlwbnZfZWVoX2VuYWJsZV9waGJzKCk7CisJCWVlaF9hZGRfZmxhZyhFRUhfRU5BQkxFRCk7CisJfQogCiAJLyogU2F2ZSBtZW1vcnkgYmFycyAqLwogCWVlaF9zYXZlX2JhcnMoZWRldik7CiAKKwllZWhfZWRldl9kYmcoZWRldiwgIkVFSCBlbmFibGVkIG9uIGRldmljZVxuIik7CisKIAlyZXR1cm4gTlVMTDsKIH0KIApAQCAtODM3LDcgKzg1MCw3IEBAIHN0YXRpYyBpbnQgX19wbnZfZWVoX2JyaWRnZV9yZXNldChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgb3B0aW9uKQogCWludCBhZXIgPSBlZGV2ID8gZWRldi0+YWVyX2NhcCA6IDA7CiAJdTMyIGN0cmw7CiAKLQlwcl9kZWJ1ZygiJXM6IFJlc2V0IFBDSSBidXMgJTA0eDolMDJ4IHdpdGggb3B0aW9uICVkXG4iLAorCXByX2RlYnVnKCIlczogU2Vjb25kYXJ5IFJlc2V0IFBDSSBidXMgJTA0eDolMDJ4IHdpdGggb3B0aW9uICVkXG4iLAogCQkgX19mdW5jX18sIHBjaV9kb21haW5fbnIoZGV2LT5idXMpLAogCQkgZGV2LT5idXMtPm51bWJlciwgb3B0aW9uKTsKIApAQCAtODk1LDYgKzkwOCwxMCBAQCBzdGF0aWMgaW50IHBudl9lZWhfYnJpZGdlX3Jlc2V0KHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgb3B0aW9uKQogCWlmICghZG4gfHwgIW9mX2dldF9wcm9wZXJ0eShkbiwgImlibSxyZXNldC1ieS1maXJtd2FyZSIsIE5VTEwpKQogCQlyZXR1cm4gX19wbnZfZWVoX2JyaWRnZV9yZXNldChwZGV2LCBvcHRpb24pOwogCisJcHJfZGVidWcoIiVzOiBGVyByZXNldCBQQ0kgYnVzICUwNHg6JTAyeCB3aXRoIG9wdGlvbiAlZFxuIiwKKwkJIF9fZnVuY19fLCBwY2lfZG9tYWluX25yKHBkZXYtPmJ1cyksCisJCSBwZGV2LT5idXMtPm51bWJlciwgb3B0aW9uKTsKKwogCXN3aXRjaCAob3B0aW9uKSB7CiAJY2FzZSBFRUhfUkVTRVRfRlVOREFNRU5UQUw6CiAJCXNjb3BlID0gT1BBTF9SRVNFVF9QQ0lfRlVOREFNRU5UQUw7CkBAIC0xMTEzLDE3ICsxMTMwLDM3IEBAIHN0YXRpYyBpbnQgcG52X2VlaF9yZXNldChzdHJ1Y3QgZWVoX3BlICpwZSwgaW50IG9wdGlvbikKIAkJcmV0dXJuIC1FSU87CiAJfQogCi0JLyoKLQkgKiBJZiBkZWFsaW5nIHdpdGggdGhlIHJvb3QgYnVzIChvciB0aGUgYnVzIHVuZGVybmVhdGggdGhlCi0JICogcm9vdCBwb3J0KSwgd2UgcmVzZXQgdGhlIGJ1cyB1bmRlcm5lYXRoIHRoZSByb290IHBvcnQuCi0JICoKLQkgKiBUaGUgY3hsIGRyaXZlciBkZXBlbmRzIG9uIHRoaXMgYmVoYXZpb3VyIGZvciBiaS1tb2RhbCBjYXJkCi0JICogc3dpdGNoaW5nLgotCSAqLwotCWlmIChwY2lfaXNfcm9vdF9idXMoYnVzKSB8fAotCSAgICBwY2lfaXNfcm9vdF9idXMoYnVzLT5wYXJlbnQpKQorCWlmIChwY2lfaXNfcm9vdF9idXMoYnVzKSkKIAkJcmV0dXJuIHBudl9lZWhfcm9vdF9yZXNldChob3NlLCBvcHRpb24pOwogCisJLyoKKwkgKiBGb3IgaG90IHJlc2V0cyB0cnkgdXNlIHRoZSBnZW5lcmljIFBDSSBlcnJvciByZWNvdmVyeSByZXNldAorCSAqIGZ1bmN0aW9ucy4gVGhlc2UgY29ycmVjdGx5IGhhbmRsZXMgdGhlIGNhc2Ugd2hlcmUgdGhlIHNlY29uZGFyeQorCSAqIGJ1cyBpcyBiZWhpbmQgYSBob3RwbHVnIHNsb3QgYW5kIGl0IHdpbGwgdXNlIHRoZSBzbG90IHByb3ZpZGVkCisJICogcmVzZXQgbWV0aG9kcyB0byBwcmV2ZW50IHNwdXJpb3VzIGhvdHBsdWcgZXZlbnRzIGR1cmluZyB0aGUgcmVzZXQuCisJICoKKwkgKiBGdW5kZW1lbnRhbCByZXNldHMgbmVlZCB0byBiZSBoYW5kbGVkIGludGVybmFsbHkgdG8gRUVIIHNpbmNlIHRoZQorCSAqIFBDSSBjb3JlIGRvZXNuJ3QgcmVhbGx5IGhhdmUgYSBjb25jZXB0IG9mIGEgZnVuZGVtZW50YWwgcmVzZXQsCisJICogbWFpbmx5IGJlY2F1c2UgdGhlcmUncyBubyBzdGFuZGFyZCB3YXkgdG8gZ2VuZXJhdGUgb25lLiBPbmx5IGEKKwkgKiBmZXcgZGV2aWNlcyByZXF1aXJlIGFuIEZSRVNFVCBzbyBpdCBzaG91bGQgYmUgZmluZS4KKwkgKi8KKwlpZiAob3B0aW9uICE9IEVFSF9SRVNFVF9GVU5EQU1FTlRBTCkgeworCQkvKgorCQkgKiBOQjogU2tpYm9vdCBhbmQgcG52X2VlaF9icmlkZ2VfcmVzZXQoKSBhbHNvIG5vLW9wIHRoZQorCQkgKiAgICAgZGUtYXNzZXJ0IHN0ZXAuIEl0J3MgbGlrZSB0aGUgT1BBTCByZXNldCBBUEkgd2FzCisJCSAqICAgICBwb29ybHkgZGVzaWduZWQgb3Igc29tZXRoaW5nLi4uCisJCSAqLworCQlpZiAob3B0aW9uID09IEVFSF9SRVNFVF9ERUFDVElWQVRFKQorCQkJcmV0dXJuIDA7CisKKwkJcmMgPSBwY2lfYnVzX2Vycm9yX3Jlc2V0KGJ1cy0+c2VsZik7CisJCWlmICghcmMpCisJCQlyZXR1cm4gMDsKKwl9CisKKwkvKiBvdGhlcndpc2UsIHVzZSB0aGUgZ2VuZXJpYyBicmlkZ2UgcmVzZXQuIHRoaXMgbWlnaHQgY2FsbCBpbnRvIEZXICovCisJaWYgKHBjaV9pc19yb290X2J1cyhidXMtPnBhcmVudCkpCisJCXJldHVybiBwbnZfZWVoX3Jvb3RfcmVzZXQoaG9zZSwgb3B0aW9uKTsKIAlyZXR1cm4gcG52X2VlaF9icmlkZ2VfcmVzZXQoYnVzLT5zZWxmLCBvcHRpb24pOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvaWRsZS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L2lkbGUuYwppbmRleCAwOWY0OWVlLi43ODU5OWJjIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvaWRsZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9pZGxlLmMKQEAgLTY3NSw3ICs2NzUsOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBwb3dlcjlfaWRsZV9zdG9wKHVuc2lnbmVkIGxvbmcgcHNzY3IsIGJvb2wgbW11X29uKQogCQlzcHJzLnB0Y3IJPSBtZnNwcihTUFJOX1BUQ1IpOwogCQlzcHJzLnJwcgk9IG1mc3ByKFNQUk5fUlBSKTsKIAkJc3Bycy50c2NyCT0gbWZzcHIoU1BSTl9UU0NSKTsKLQkJc3Bycy5sZGJhcgk9IG1mc3ByKFNQUk5fTERCQVIpOworCQlpZiAoIWZpcm13YXJlX2hhc19mZWF0dXJlKEZXX0ZFQVRVUkVfVUxUUkFWSVNPUikpCisJCQlzcHJzLmxkYmFyID0gbWZzcHIoU1BSTl9MREJBUik7CiAKIAkJc3Byc19zYXZlZCA9IHRydWU7CiAKQEAgLTc4OSw3ICs3OTAsOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBwb3dlcjlfaWRsZV9zdG9wKHVuc2lnbmVkIGxvbmcgcHNzY3IsIGJvb2wgbW11X29uKQogCW10c3ByKFNQUk5fTU1DUjAsCXNwcnMubW1jcjApOwogCW10c3ByKFNQUk5fTU1DUjEsCXNwcnMubW1jcjEpOwogCW10c3ByKFNQUk5fTU1DUjIsCXNwcnMubW1jcjIpOwotCW10c3ByKFNQUk5fTERCQVIsCXNwcnMubGRiYXIpOworCWlmICghZmlybXdhcmVfaGFzX2ZlYXR1cmUoRldfRkVBVFVSRV9VTFRSQVZJU09SKSkKKwkJbXRzcHIoU1BSTl9MREJBUiwgc3Bycy5sZGJhcik7CiAKIAltdHNwcihTUFJOX1NQUkczLAlsb2NhbF9wYWNhLT5zcHJnX3Zkc28pOwogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvbnB1LWRtYS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L25wdS1kbWEuYwppbmRleCBjMTYyNDlkLi5iOTViOWUzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvbnB1LWRtYS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9ucHUtZG1hLmMKQEAgLTg5LDYgKzg5LDcgQEAgc3RydWN0IHBjaV9kZXYgKnBudl9wY2lfZ2V0X25wdV9kZXYoc3RydWN0IHBjaV9kZXYgKmdwZGV2LCBpbnQgaW5kZXgpCiB9CiBFWFBPUlRfU1lNQk9MKHBudl9wY2lfZ2V0X25wdV9kZXYpOwogCisjaWZkZWYgQ09ORklHX0lPTU1VX0FQSQogLyoKICAqIFJldHVybnMgdGhlIFBFIGFzc29pY2F0ZWQgd2l0aCB0aGUgUENJIGRldmljZSBvZiB0aGUgZ2l2ZW4KICAqIE5QVS4gUmV0dXJucyB0aGUgbGlua2VkIHBjaSBkZXZpY2UgaWYgcGNpX2RldiAhPSBOVUxMLgpAQCAtMTkyLDEwNiArMTkzLDYgQEAgc3RhdGljIGxvbmcgcG52X25wdV91bnNldF93aW5kb3coc3RydWN0IGlvbW11X3RhYmxlX2dyb3VwICp0YWJsZV9ncm91cCwgaW50IG51bSkKIAlyZXR1cm4gMDsKIH0KIAotLyoKLSAqIEVuYWJsZXMgMzIgYml0IERNQSBvbiBOUFUuCi0gKi8KLXN0YXRpYyB2b2lkIHBudl9ucHVfZG1hX3NldF8zMihzdHJ1Y3QgcG52X2lvZGFfcGUgKm5wZSkKLXsKLQlzdHJ1Y3QgcGNpX2RldiAqZ3BkZXY7Ci0Jc3RydWN0IHBudl9pb2RhX3BlICpncGU7Ci0JaW50NjRfdCByYzsKLQotCS8qCi0JICogRmluZCB0aGUgYXNzb2ljYXRlZCBQQ0kgZGV2aWNlcyBhbmQgZ2V0IHRoZSBkbWEgd2luZG93Ci0JICogaW5mb3JtYXRpb24gZnJvbSB0aGVyZS4KLQkgKi8KLQlpZiAoIW5wZS0+cGRldiB8fCAhKG5wZS0+ZmxhZ3MgJiBQTlZfSU9EQV9QRV9ERVYpKQotCQlyZXR1cm47Ci0KLQlncGUgPSBnZXRfZ3B1X3BjaV9kZXZfYW5kX3BlKG5wZSwgJmdwZGV2KTsKLQlpZiAoIWdwZSkKLQkJcmV0dXJuOwotCi0JcmMgPSBwbnZfbnB1X3NldF93aW5kb3coJm5wZS0+dGFibGVfZ3JvdXAsIDAsCi0JCQlncGUtPnRhYmxlX2dyb3VwLnRhYmxlc1swXSk7Ci0KLQkvKgotCSAqIE5WTGluayBkZXZpY2VzIHVzZSB0aGUgc2FtZSBUQ0UgdGFibGUgY29uZmlndXJhdGlvbiBhcwotCSAqIHRoZWlyIHBhcmVudCBkZXZpY2Ugc28gZHJpdmVycyBzaG91bGRuJ3QgYmUgZG9pbmcgRE1BCi0JICogb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGVzZSBkZXZpY2VzLgotCSAqLwotCXNldF9kbWFfb3BzKCZucGUtPnBkZXYtPmRldiwgJmRtYV9kdW1teV9vcHMpOwotfQotCi0vKgotICogRW5hYmxlcyBieXBhc3MgbW9kZSBvbiB0aGUgTlBVLiBUaGUgTlBVIG9ubHkgc3VwcG9ydHMgb25lCi0gKiB3aW5kb3cgcGVyIGxpbmssIHNvIGJ5cGFzcyBuZWVkcyB0byBiZSBleHBsaWNpdGx5IGVuYWJsZWQgb3IKLSAqIGRpc2FibGVkLiBVbmxpa2UgZm9yIGEgUEhCMyBieXBhc3MgYW5kIG5vbi1ieXBhc3MgbW9kZXMgY2FuJ3QgYmUKLSAqIGFjdGl2ZSBhdCB0aGUgc2FtZSB0aW1lLgotICovCi1zdGF0aWMgaW50IHBudl9ucHVfZG1hX3NldF9ieXBhc3Moc3RydWN0IHBudl9pb2RhX3BlICpucGUpCi17Ci0Jc3RydWN0IHBudl9waGIgKnBoYiA9IG5wZS0+cGhiOwotCWludDY0X3QgcmMgPSAwOwotCXBoeXNfYWRkcl90IHRvcCA9IG1lbWJsb2NrX2VuZF9vZl9EUkFNKCk7Ci0KLQlpZiAocGhiLT50eXBlICE9IFBOVl9QSEJfTlBVX05WTElOSyB8fCAhbnBlLT5wZGV2KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXJjID0gcG52X25wdV91bnNldF93aW5kb3coJm5wZS0+dGFibGVfZ3JvdXAsIDApOwotCWlmIChyYyAhPSBPUEFMX1NVQ0NFU1MpCi0JCXJldHVybiByYzsKLQotCS8qIEVuYWJsZSB0aGUgYnlwYXNzIHdpbmRvdyAqLwotCi0JdG9wID0gcm91bmR1cF9wb3dfb2ZfdHdvKHRvcCk7Ci0JZGV2X2luZm8oJm5wZS0+cGRldi0+ZGV2LCAiRW5hYmxpbmcgYnlwYXNzIGZvciBQRSAleFxuIiwKLQkJCW5wZS0+cGVfbnVtYmVyKTsKLQlyYyA9IG9wYWxfcGNpX21hcF9wZV9kbWFfd2luZG93X3JlYWwocGhiLT5vcGFsX2lkLAotCQkJbnBlLT5wZV9udW1iZXIsIG5wZS0+cGVfbnVtYmVyLAotCQkJMCAvKiBieXBhc3MgYmFzZSAqLywgdG9wKTsKLQotCWlmIChyYyA9PSBPUEFMX1NVQ0NFU1MpCi0JCXBudl9wY2lfaW9kYTJfdGNlX2ludmFsaWRhdGVfZW50aXJlKHBoYiwgZmFsc2UpOwotCi0JcmV0dXJuIHJjOwotfQotCi12b2lkIHBudl9ucHVfdHJ5X2RtYV9zZXRfYnlwYXNzKHN0cnVjdCBwY2lfZGV2ICpncGRldiwgYm9vbCBieXBhc3MpCi17Ci0JaW50IGk7Ci0Jc3RydWN0IHBudl9waGIgKnBoYjsKLQlzdHJ1Y3QgcGNpX2RuICpwZG47Ci0Jc3RydWN0IHBudl9pb2RhX3BlICpucGU7Ci0Jc3RydWN0IHBjaV9kZXYgKm5wZGV2OwotCi0JZm9yIChpID0gMDsgOyArK2kpIHsKLQkJbnBkZXYgPSBwbnZfcGNpX2dldF9ucHVfZGV2KGdwZGV2LCBpKTsKLQotCQlpZiAoIW5wZGV2KQotCQkJYnJlYWs7Ci0KLQkJcGRuID0gcGNpX2dldF9wZG4obnBkZXYpOwotCQlpZiAoV0FSTl9PTighcGRuIHx8IHBkbi0+cGVfbnVtYmVyID09IElPREFfSU5WQUxJRF9QRSkpCi0JCQlyZXR1cm47Ci0KLQkJcGhiID0gcGNpX2J1c190b19ob3N0KG5wZGV2LT5idXMpLT5wcml2YXRlX2RhdGE7Ci0KLQkJLyogV2Ugb25seSBkbyBieXBhc3MgaWYgaXQncyBlbmFibGVkIG9uIHRoZSBsaW5rZWQgZGV2aWNlICovCi0JCW5wZSA9ICZwaGItPmlvZGEucGVfYXJyYXlbcGRuLT5wZV9udW1iZXJdOwotCi0JCWlmIChieXBhc3MpIHsKLQkJCWRldl9pbmZvKCZucGRldi0+ZGV2LAotCQkJCQkiVXNpbmcgNjQtYml0IERNQSBpb21tdSBieXBhc3NcbiIpOwotCQkJcG52X25wdV9kbWFfc2V0X2J5cGFzcyhucGUpOwotCQl9IGVsc2UgewotCQkJZGV2X2luZm8oJm5wZGV2LT5kZXYsICJVc2luZyAzMi1iaXQgRE1BIHZpYSBpb21tdVxuIik7Ci0JCQlwbnZfbnB1X2RtYV9zZXRfMzIobnBlKTsKLQkJfQotCX0KLX0KLQotI2lmZGVmIENPTkZJR19JT01NVV9BUEkKIC8qIFN3aXRjaCBvd25lcnNoaXAgZnJvbSBwbGF0Zm9ybSBjb2RlIHRvIGV4dGVybmFsIHVzZXIgKGUuZy4gVkZJTykgKi8KIHN0YXRpYyB2b2lkIHBudl9ucHVfdGFrZV9vd25lcnNoaXAoc3RydWN0IGlvbW11X3RhYmxlX2dyb3VwICp0YWJsZV9ncm91cCkKIHsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLWNhbGwuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLWNhbGwuYwppbmRleCAyOWNhNTIzLi5hMmFhNWU0IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvb3BhbC1jYWxsLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwtY2FsbC5jCkBAIC0yNTcsNyArMjU3LDcgQEAgT1BBTF9DQUxMKG9wYWxfeGl2ZV9zZXRfcXVldWVfaW5mbywJCU9QQUxfWElWRV9TRVRfUVVFVUVfSU5GTyk7CiBPUEFMX0NBTEwob3BhbF94aXZlX2RvbmF0ZV9wYWdlLAkJT1BBTF9YSVZFX0RPTkFURV9QQUdFKTsKIE9QQUxfQ0FMTChvcGFsX3hpdmVfYWxsb2NfdnBfYmxvY2ssCQlPUEFMX1hJVkVfQUxMT0NBVEVfVlBfQkxPQ0spOwogT1BBTF9DQUxMKG9wYWxfeGl2ZV9mcmVlX3ZwX2Jsb2NrLAkJT1BBTF9YSVZFX0ZSRUVfVlBfQkxPQ0spOwotT1BBTF9DQUxMKG9wYWxfeGl2ZV9hbGxvY2F0ZV9pcnEsCQlPUEFMX1hJVkVfQUxMT0NBVEVfSVJRKTsKK09QQUxfQ0FMTChvcGFsX3hpdmVfYWxsb2NhdGVfaXJxX3JhdywJCU9QQUxfWElWRV9BTExPQ0FURV9JUlEpOwogT1BBTF9DQUxMKG9wYWxfeGl2ZV9mcmVlX2lycSwJCQlPUEFMX1hJVkVfRlJFRV9JUlEpOwogT1BBTF9DQUxMKG9wYWxfeGl2ZV9nZXRfdnBfaW5mbywJCU9QQUxfWElWRV9HRVRfVlBfSU5GTyk7CiBPUEFMX0NBTEwob3BhbF94aXZlX3NldF92cF9pbmZvLAkJT1BBTF9YSVZFX1NFVF9WUF9JTkZPKTsKQEAgLTI4NywzICsyODcsNiBAQCBPUEFMX0NBTEwob3BhbF9wY2lfc2V0X3BiY3FfdHVubmVsX2JhciwJCU9QQUxfUENJX1NFVF9QQkNRX1RVTk5FTF9CQVIpOwogT1BBTF9DQUxMKG9wYWxfc2Vuc29yX3JlYWRfdTY0LAkJCU9QQUxfU0VOU09SX1JFQURfVTY0KTsKIE9QQUxfQ0FMTChvcGFsX3NlbnNvcl9ncm91cF9lbmFibGUsCQlPUEFMX1NFTlNPUl9HUk9VUF9FTkFCTEUpOwogT1BBTF9DQUxMKG9wYWxfbnhfY29wcm9jX2luaXQsCQkJT1BBTF9OWF9DT1BST0NfSU5JVCk7CitPUEFMX0NBTEwob3BhbF9tcGlwbF91cGRhdGUsCQkJT1BBTF9NUElQTF9VUERBVEUpOworT1BBTF9DQUxMKG9wYWxfbXBpcGxfcmVnaXN0ZXJfdGFnLAkJT1BBTF9NUElQTF9SRUdJU1RFUl9UQUcpOworT1BBTF9DQUxMKG9wYWxfbXBpcGxfcXVlcnlfdGFnLAkJCU9QQUxfTVBJUExfUVVFUllfVEFHKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLWNvcmUuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLWNvcmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDg5NWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwtY29yZS5jCkBAIC0wLDAgKzEsNjM2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogSW50ZXJmYWNlIGZvciBleHBvcnRpbmcgdGhlIE9QQUwgRUxGIGNvcmUuCisgKiBIZWF2aWx5IGluc3BpcmVkIGZyb20gZnMvcHJvYy92bWNvcmUuYworICoKKyAqIENvcHlyaWdodCAyMDE5LCBIYXJpIEJhdGhpbmksIElCTSBDb3Jwb3JhdGlvbi4KKyAqLworCisjZGVmaW5lIHByX2ZtdChmbXQpICJvcGFsIGNvcmU6ICIgZm10CisKKyNpbmNsdWRlIDxsaW51eC9tZW1ibG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZWxmLmg+CisjaW5jbHVkZSA8bGludXgvZWxmY29yZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9jcmFzaF9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKworI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL29wYWwuaD4KKyNpbmNsdWRlIDxhc20vZmFkdW1wLWludGVybmFsLmg+CisKKyNpbmNsdWRlICJvcGFsLWZhZHVtcC5oIgorCisjZGVmaW5lIE1BWF9QVF9MT0FEX0NOVAkJOAorCisvKiBOVF9BVVhWIG5vdGUgcmVsYXRlZCBpbmZvICovCisjZGVmaW5lIEFVWFZfQ05UCQkxCisjZGVmaW5lIEFVWFZfREVTQ19TWgkJKCgoMiAqIEFVWFZfQ05UKSArIDEpICogc2l6ZW9mKEVsZjY0X09mZikpCisKK3N0cnVjdCBvcGFsY29yZV9jb25maWcgeworCXUzMgkJCW51bV9jcHVzOworCS8qIFBJUiB2YWx1ZSBvZiBjcmFzaGluZyBDUFUgKi8KKwl1MzIJCQljcmFzaGluZ19jcHU7CisKKwkvKiBDUFUgc3RhdGUgZGF0YSBpbmZvIGZyb20gRi9XICovCisJdTY0CQkJY3B1X3N0YXRlX2Rlc3RpbmF0aW9uX3ZhZGRyOworCXU2NAkJCWNwdV9zdGF0ZV9kYXRhX3NpemU7CisJdTY0CQkJY3B1X3N0YXRlX2VudHJ5X3NpemU7CisKKwkvKiBPUEFMIG1lbW9yeSB0byBiZSBleHBvcnRlZCBhcyBQVF9MT0FEIHNlZ21lbnRzICovCisJdTY0CQkJcHRsb2FkX2FkZHJbTUFYX1BUX0xPQURfQ05UXTsKKwl1NjQJCQlwdGxvYWRfc2l6ZVtNQVhfUFRfTE9BRF9DTlRdOworCXU2NAkJCXB0bG9hZF9jbnQ7CisKKwkvKiBQb2ludGVyIHRvIHRoZSBmaXJzdCBQVF9MT0FEIGluIHRoZSBFTEYgY29yZSBmaWxlICovCisJRWxmNjRfUGhkcgkJKnB0bG9hZF9waGRyOworCisJLyogVG90YWwgc2l6ZSBvZiBvcGFsY29yZSBmaWxlLiAqLworCXNpemVfdAkJCW9wYWxjb3JlX3NpemU7CisKKwkvKiBCdWZmZXIgZm9yIGFsbCB0aGUgRUxGIGNvcmUgaGVhZGVycyBhbmQgdGhlIFBUX05PVEUgKi8KKwlzaXplX3QJCQlvcGFsY29yZWJ1Zl9zejsKKwljaGFyCQkJKm9wYWxjb3JlYnVmOworCisJLyogTlRfQVVYViBidWZmZXIgKi8KKwljaGFyCQkJYXV4dl9idWZbQVVYVl9ERVNDX1NaXTsKK307CisKK3N0cnVjdCBvcGFsY29yZSB7CisJc3RydWN0IGxpc3RfaGVhZAlsaXN0OworCXU2NAkJCXBhZGRyOworCXNpemVfdAkJCXNpemU7CisJbG9mZl90CQkJb2Zmc2V0OworfTsKKworc3RhdGljIExJU1RfSEVBRChvcGFsY29yZV9saXN0KTsKK3N0YXRpYyBzdHJ1Y3Qgb3BhbGNvcmVfY29uZmlnICpvY19jb25mOworc3RhdGljIGNvbnN0IHN0cnVjdCBvcGFsX21waXBsX2ZhZHVtcCAqb3BhbGNfbWV0YWRhdGE7CitzdGF0aWMgY29uc3Qgc3RydWN0IG9wYWxfbXBpcGxfZmFkdW1wICpvcGFsY19jcHVfbWV0YWRhdGE7CisKKy8qCisgKiBTZXQgY3Jhc2hpbmcgQ1BVJ3Mgc2lnbmFsIHRvIFNJR1VTUjEuIGlmIHRoZSBrZXJuZWwgaXMgdHJpZ2dlcmVkCisgKiBieSBrZXJuZWwsIFNJR1RFUk0gb3RoZXJ3aXNlLgorICovCitib29sIGtlcm5lbF9pbml0aWF0ZWQ7CisKK3N0YXRpYyBzdHJ1Y3Qgb3BhbGNvcmUgKiBfX2luaXQgZ2V0X25ld19lbGVtZW50KHZvaWQpCit7CisJcmV0dXJuIGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBvcGFsY29yZSksIEdGUF9LRVJORUwpOworfQorCitzdGF0aWMgaW5saW5lIGludCBpc19vcGFsY29yZV91c2FibGUodm9pZCkKK3sKKwlyZXR1cm4gKG9jX2NvbmYgJiYgb2NfY29uZi0+b3BhbGNvcmVidWYgIT0gTlVMTCkgPyAxIDogMDsKK30KKworc3RhdGljIEVsZjY0X1dvcmQgKmFwcGVuZF9lbGY2NF9ub3RlKEVsZjY0X1dvcmQgKmJ1ZiwgY2hhciAqbmFtZSwKKwkJCQkgICAgIHUzMiB0eXBlLCB2b2lkICpkYXRhLAorCQkJCSAgICAgc2l6ZV90IGRhdGFfbGVuKQoreworCUVsZjY0X05oZHIgKm5vdGUgPSAoRWxmNjRfTmhkciAqKWJ1ZjsKKwlFbGY2NF9Xb3JkIG5hbWVzeiA9IHN0cmxlbihuYW1lKSArIDE7CisKKwlub3RlLT5uX25hbWVzeiA9IGNwdV90b19iZTMyKG5hbWVzeik7CisJbm90ZS0+bl9kZXNjc3ogPSBjcHVfdG9fYmUzMihkYXRhX2xlbik7CisJbm90ZS0+bl90eXBlICAgPSBjcHVfdG9fYmUzMih0eXBlKTsKKwlidWYgKz0gRElWX1JPVU5EX1VQKHNpemVvZigqbm90ZSksIHNpemVvZihFbGY2NF9Xb3JkKSk7CisJbWVtY3B5KGJ1ZiwgbmFtZSwgbmFtZXN6KTsKKwlidWYgKz0gRElWX1JPVU5EX1VQKG5hbWVzeiwgc2l6ZW9mKEVsZjY0X1dvcmQpKTsKKwltZW1jcHkoYnVmLCBkYXRhLCBkYXRhX2xlbik7CisJYnVmICs9IERJVl9ST1VORF9VUChkYXRhX2xlbiwgc2l6ZW9mKEVsZjY0X1dvcmQpKTsKKworCXJldHVybiBidWY7Cit9CisKK3N0YXRpYyB2b2lkIGZpbGxfcHJzdGF0dXMoc3RydWN0IGVsZl9wcnN0YXR1cyAqcHJzdGF0dXMsIGludCBwaXIsCisJCQkgIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCW1lbXNldChwcnN0YXR1cywgMCwgc2l6ZW9mKHN0cnVjdCBlbGZfcHJzdGF0dXMpKTsKKwllbGZfY29yZV9jb3B5X2tlcm5lbF9yZWdzKCYocHJzdGF0dXMtPnByX3JlZyksIHJlZ3MpOworCisJLyoKKwkgKiBPdmVybG9hZCBQSUQgd2l0aCBQSVIgdmFsdWUuCisJICogQXMgYSBQSVIgdmFsdWUgY291bGQgYWxzbyBiZSAnMCcsIGFkZCBhbiBvZmZzZXQgb2YgJzEwMCcKKwkgKiB0byBldmVyeSBQSVIgdG8gYXZvaWQgbWlzaW50ZXJwcmV0YXRpb25zIGluIEdEQi4KKwkgKi8KKwlwcnN0YXR1cy0+cHJfcGlkICA9IGNwdV90b19iZTMyKDEwMCArIHBpcik7CisJcHJzdGF0dXMtPnByX3BwaWQgPSBjcHVfdG9fYmUzMigxKTsKKworCS8qCisJICogSW5kaWNhdGUgU0lHVVNSMSBmb3IgY3Jhc2ggaW5pdGlhdGVkIGZyb20ga2VybmVsLgorCSAqIFNJR1RFUk0gb3RoZXJ3aXNlLgorCSAqLworCWlmIChwaXIgPT0gb2NfY29uZi0+Y3Jhc2hpbmdfY3B1KSB7CisJCXNob3J0IHNpZzsKKworCQlzaWcgPSBrZXJuZWxfaW5pdGlhdGVkID8gU0lHVVNSMSA6IFNJR1RFUk07CisJCXByc3RhdHVzLT5wcl9jdXJzaWcgPSBjcHVfdG9fYmUxNihzaWcpOworCX0KK30KKworc3RhdGljIEVsZjY0X1dvcmQgKmF1eHZfdG9fZWxmNjRfbm90ZXMoRWxmNjRfV29yZCAqYnVmLAorCQkJCSAgICAgICB1NjQgb3BhbF9ib290X2VudHJ5KQoreworCUVsZjY0X09mZiAqYnVmcCA9IChFbGY2NF9PZmYgKilvY19jb25mLT5hdXh2X2J1ZjsKKwlpbnQgaWR4ID0gMDsKKworCW1lbXNldChidWZwLCAwLCBBVVhWX0RFU0NfU1opOworCisJLyogRW50cnkgcG9pbnQgb2YgT1BBTCAqLworCWJ1ZnBbaWR4KytdID0gY3B1X3RvX2JlNjQoQVRfRU5UUlkpOworCWJ1ZnBbaWR4KytdID0gY3B1X3RvX2JlNjQob3BhbF9ib290X2VudHJ5KTsKKworCS8qIGVuZCBvZiB2ZWN0b3IgKi8KKwlidWZwW2lkeCsrXSA9IGNwdV90b19iZTY0KEFUX05VTEwpOworCisJYnVmID0gYXBwZW5kX2VsZjY0X25vdGUoYnVmLCBDUkFTSF9DT1JFX05PVEVfTkFNRSwgTlRfQVVYViwKKwkJCQlvY19jb25mLT5hdXh2X2J1ZiwgQVVYVl9ERVNDX1NaKTsKKwlyZXR1cm4gYnVmOworfQorCisvKgorICogUmVhZCBmcm9tIHRoZSBFTEYgaGVhZGVyIGFuZCB0aGVuIHRoZSBjcmFzaCBkdW1wLgorICogUmV0dXJucyBudW1iZXIgb2YgYnl0ZXMgcmVhZCBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS4KKyAqLworc3RhdGljIHNzaXplX3QgcmVhZF9vcGFsY29yZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkgICAgIHN0cnVjdCBiaW5fYXR0cmlidXRlICpiaW5fYXR0ciwgY2hhciAqdG8sCisJCQkgICAgIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCkKK3sKKwlzdHJ1Y3Qgb3BhbGNvcmUgKm07CisJc3NpemVfdCB0c3osIGF2YWlsOworCWxvZmZfdCB0cG9zID0gcG9zOworCisJaWYgKHBvcyA+PSBvY19jb25mLT5vcGFsY29yZV9zaXplKQorCQlyZXR1cm4gMDsKKworCS8qIEFkanVzdCBjb3VudCBpZiBpdCBnb2VzIGJleW9uZCBvcGFsY29yZSBzaXplICovCisJYXZhaWwgPSBvY19jb25mLT5vcGFsY29yZV9zaXplIC0gcG9zOworCWlmIChjb3VudCA+IGF2YWlsKQorCQljb3VudCA9IGF2YWlsOworCisJaWYgKGNvdW50ID09IDApCisJCXJldHVybiAwOworCisJLyogUmVhZCBFTEYgY29yZSBoZWFkZXIgYW5kL29yIFBUX05PVEUgc2VnbWVudCAqLworCWlmICh0cG9zIDwgb2NfY29uZi0+b3BhbGNvcmVidWZfc3opIHsKKwkJdHN6ID0gbWluX3Qoc2l6ZV90LCBvY19jb25mLT5vcGFsY29yZWJ1Zl9zeiAtIHRwb3MsIGNvdW50KTsKKwkJbWVtY3B5KHRvLCBvY19jb25mLT5vcGFsY29yZWJ1ZiArIHRwb3MsIHRzeik7CisJCXRvICs9IHRzejsKKwkJdHBvcyArPSB0c3o7CisJCWNvdW50IC09IHRzejsKKwl9CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG0sICZvcGFsY29yZV9saXN0LCBsaXN0KSB7CisJCS8qIG5vdGhpbmcgbW9yZSB0byByZWFkIGhlcmUgKi8KKwkJaWYgKGNvdW50ID09IDApCisJCQlicmVhazsKKworCQlpZiAodHBvcyA8IG0tPm9mZnNldCArIG0tPnNpemUpIHsKKwkJCXZvaWQgKmFkZHI7CisKKwkJCXRzeiA9IG1pbl90KHNpemVfdCwgbS0+b2Zmc2V0ICsgbS0+c2l6ZSAtIHRwb3MsIGNvdW50KTsKKwkJCWFkZHIgPSAodm9pZCAqKShtLT5wYWRkciArIHRwb3MgLSBtLT5vZmZzZXQpOworCQkJbWVtY3B5KHRvLCBfX3ZhKGFkZHIpLCB0c3opOworCQkJdG8gKz0gdHN6OworCQkJdHBvcyArPSB0c3o7CisJCQljb3VudCAtPSB0c3o7CisJCX0KKwl9CisKKwlyZXR1cm4gKHRwb3MgLSBwb3MpOworfQorCitzdGF0aWMgc3RydWN0IGJpbl9hdHRyaWJ1dGUgb3BhbF9jb3JlX2F0dHIgPSB7CisJLmF0dHIgPSB7Lm5hbWUgPSAiY29yZSIsIC5tb2RlID0gMDQwMH0sCisJLnJlYWQgPSByZWFkX29wYWxjb3JlCit9OworCisvKgorICogUmVhZCBDUFUgc3RhdGUgZHVtcCBkYXRhIGFuZCBjb252ZXJ0IGl0IGludG8gRUxGIG5vdGVzLgorICoKKyAqIEVhY2ggcmVnaXN0ZXIgZW50cnkgaXMgb2YgMTYgYnl0ZXMsIEEgbnVtZXJpY2FsIGlkZW50aWZpZXIgYWxvbmcgd2l0aAorICogYSBHUFIvU1BSIGZsYWcgaW4gdGhlIGZpcnN0IDggYnl0ZXMgYW5kIHRoZSByZWdpc3RlciB2YWx1ZSBpbiB0aGUgbmV4dAorICogOCBieXRlcy4gRm9yIG1vcmUgZGV0YWlscyByZWZlciB0byBGL1cgZG9jdW1lbnRhdGlvbi4KKyAqLworc3RhdGljIEVsZjY0X1dvcmQgKiBfX2luaXQgb3BhbGNvcmVfYXBwZW5kX2NwdV9ub3RlcyhFbGY2NF9Xb3JkICpidWYpCit7CisJdTMyIHRocmVhZF9waXIsIHNpemVfcGVyX3RocmVhZCwgcmVnc19vZmZzZXQsIHJlZ3NfY250LCByZWdfZXNpemU7CisJc3RydWN0IGhkYXRfZmFkdW1wX3RocmVhZF9oZHIgKnRoZHI7CisJc3RydWN0IGVsZl9wcnN0YXR1cyBwcnN0YXR1czsKKwlFbGY2NF9Xb3JkICpmaXJzdF9jcHVfbm90ZTsKKwlzdHJ1Y3QgcHRfcmVncyByZWdzOworCWNoYXIgKmJ1ZnA7CisJaW50IGk7CisKKwlzaXplX3Blcl90aHJlYWQgPSBvY19jb25mLT5jcHVfc3RhdGVfZW50cnlfc2l6ZTsKKwlidWZwID0gX192YShvY19jb25mLT5jcHVfc3RhdGVfZGVzdGluYXRpb25fdmFkZHIpOworCisJLyoKKwkgKiBPZmZzZXQgZm9yIHJlZ2lzdGVyIGVudHJpZXMsIGVudHJ5IHNpemUgYW5kIHJlZ2lzdGVycyBjb3VudCBpcworCSAqIGR1cGxpY2F0ZWQgaW4gZXZlcnkgdGhyZWFkIGhlYWRlciBpbiBrZWVwaW5nIHdpdGggSERBVCBmb3JtYXQuCisJICogVXNlIHRoZXNlIHZhbHVlcyBmcm9tIHRoZSBmaXJzdCB0aHJlYWQgaGVhZGVyLgorCSAqLworCXRoZHIgPSAoc3RydWN0IGhkYXRfZmFkdW1wX3RocmVhZF9oZHIgKilidWZwOworCXJlZ3Nfb2Zmc2V0ID0gKG9mZnNldG9mKHN0cnVjdCBoZGF0X2ZhZHVtcF90aHJlYWRfaGRyLCBvZmZzZXQpICsKKwkJICAgICAgIGJlMzJfdG9fY3B1KHRoZHItPm9mZnNldCkpOworCXJlZ19lc2l6ZSA9IGJlMzJfdG9fY3B1KHRoZHItPmVzaXplKTsKKwlyZWdzX2NudCAgPSBiZTMyX3RvX2NwdSh0aGRyLT5lY250KTsKKworCXByX2RlYnVnKCItLS0tLS0tLUNQVSBTdGF0ZSBEYXRhLS0tLS0tLS0tLS0tXG4iKTsKKwlwcl9kZWJ1ZygiTnVtQ3B1cyAgICAgOiAldVxuIiwgb2NfY29uZi0+bnVtX2NwdXMpOworCXByX2RlYnVnKCJcdE9mZnNldDogJXUsIEVudHJ5IHNpemU6ICV1LCBDbnQ6ICV1XG4iLAorCQkgcmVnc19vZmZzZXQsIHJlZ19lc2l6ZSwgcmVnc19jbnQpOworCisJLyoKKwkgKiBTa2lwIHBhc3QgdGhlIGZpcnN0IENQVSBub3RlLiBGaWxsIHRoaXMgbm90ZSB3aXRoIHRoZQorCSAqIGNyYXNoaW5nIENQVSdzIHByc3RhdHVzLgorCSAqLworCWZpcnN0X2NwdV9ub3RlID0gYnVmOworCWJ1ZiA9IGFwcGVuZF9lbGY2NF9ub3RlKGJ1ZiwgQ1JBU0hfQ09SRV9OT1RFX05BTUUsIE5UX1BSU1RBVFVTLAorCQkJCSZwcnN0YXR1cywgc2l6ZW9mKHByc3RhdHVzKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgb2NfY29uZi0+bnVtX2NwdXM7IGkrKywgYnVmcCArPSBzaXplX3Blcl90aHJlYWQpIHsKKwkJdGhkciA9IChzdHJ1Y3QgaGRhdF9mYWR1bXBfdGhyZWFkX2hkciAqKWJ1ZnA7CisJCXRocmVhZF9waXIgPSBiZTMyX3RvX2NwdSh0aGRyLT5waXIpOworCisJCXByX2RlYnVnKCJbJTA0ZF0gUElSOiAweCV4LCBjb3JlIHN0YXRlOiAweCUwMnhcbiIsCisJCQkgaSwgdGhyZWFkX3BpciwgdGhkci0+Y29yZV9zdGF0ZSk7CisKKwkJLyoKKwkJICogUmVnaXN0ZXIgc3RhdGUgZGF0YSBvZiBNQVggY29yZXMgaXMgcHJvdmlkZWQgYnkgZmlybXdhcmUsCisJCSAqIGJ1dCBzb21lIG9mIHRoaXMgY29yZXMgbWF5IG5vdCBiZSBhY3RpdmUuIFNvLCB3aGlsZQorCQkgKiBwcm9jZXNzaW5nIHJlZ2lzdGVyIHN0YXRlIGRhdGEsIGNoZWNrIGNvcmUgc3RhdGUgYW5kCisJCSAqIHNraXAgdGhyZWFkcyB0aGF0IGJlbG9uZyB0byBpbmFjdGl2ZSBjb3Jlcy4KKwkJICovCisJCWlmICh0aGRyLT5jb3JlX3N0YXRlID09IEhEQVRfRkFEVU1QX0NPUkVfSU5BQ1RJVkUpCisJCQljb250aW51ZTsKKworCQlvcGFsX2ZhZHVtcF9yZWFkX3JlZ3MoKGJ1ZnAgKyByZWdzX29mZnNldCksIHJlZ3NfY250LAorCQkJCSAgICAgIHJlZ19lc2l6ZSwgZmFsc2UsICZyZWdzKTsKKworCQlwcl9kZWJ1ZygiUElSIDB4JXggLSBSMSA6IDB4JWxseCwgTklQIDogMHglbGx4XG4iLCB0aHJlYWRfcGlyLAorCQkJIGJlNjRfdG9fY3B1KHJlZ3MuZ3ByWzFdKSwgYmU2NF90b19jcHUocmVncy5uaXApKTsKKwkJZmlsbF9wcnN0YXR1cygmcHJzdGF0dXMsIHRocmVhZF9waXIsICZyZWdzKTsKKworCQlpZiAodGhyZWFkX3BpciAhPSBvY19jb25mLT5jcmFzaGluZ19jcHUpIHsKKwkJCWJ1ZiA9IGFwcGVuZF9lbGY2NF9ub3RlKGJ1ZiwgQ1JBU0hfQ09SRV9OT1RFX05BTUUsCisJCQkJCQlOVF9QUlNUQVRVUywgJnByc3RhdHVzLAorCQkJCQkJc2l6ZW9mKHByc3RhdHVzKSk7CisJCX0gZWxzZSB7CisJCQkvKgorCQkJICogQWRkIGNyYXNoaW5nIENQVSBhcyB0aGUgZmlyc3QgTlRfUFJTVEFUVVMgbm90ZSBmb3IKKwkJCSAqIEdEQiB0byBwcm9jZXNzIHRoZSBjb3JlIGZpbGUgYXBwcm9wcmlhdGVseS4KKwkJCSAqLworCQkJYXBwZW5kX2VsZjY0X25vdGUoZmlyc3RfY3B1X25vdGUsIENSQVNIX0NPUkVfTk9URV9OQU1FLAorCQkJCQkgIE5UX1BSU1RBVFVTLCAmcHJzdGF0dXMsCisJCQkJCSAgc2l6ZW9mKHByc3RhdHVzKSk7CisJCX0KKwl9CisKKwlyZXR1cm4gYnVmOworfQorCitzdGF0aWMgaW50IF9faW5pdCBjcmVhdGVfb3BhbGNvcmUodm9pZCkKK3sKKwl1NjQgb3BhbF9ib290X2VudHJ5LCBvcGFsX2Jhc2VfYWRkciwgcGFkZHI7CisJdTMyIGhkcl9zaXplLCBjcHVfbm90ZXNfc2l6ZSwgY291bnQ7CisJc3RydWN0IGRldmljZV9ub2RlICpkbjsKKwlzdHJ1Y3Qgb3BhbGNvcmUgKm5ldzsKKwlsb2ZmX3Qgb3BhbGNvcmVfb2ZmOworCXN0cnVjdCBwYWdlICpwYWdlOworCUVsZjY0X1BoZHIgKnBoZHI7CisJRWxmNjRfRWhkciAqZWxmOworCWludCBpLCByZXQ7CisJY2hhciAqYnVmcDsKKworCS8qIEdldCBzaXplIG9mIGhlYWRlciAmIENQVSBub3RlcyBmb3IgT1BBTCBjb3JlICovCisJaGRyX3NpemUgPSAoc2l6ZW9mKEVsZjY0X0VoZHIpICsKKwkJICAgICgob2NfY29uZi0+cHRsb2FkX2NudCArIDEpICogc2l6ZW9mKEVsZjY0X1BoZHIpKSk7CisJY3B1X25vdGVzX3NpemUgPSAoKG9jX2NvbmYtPm51bV9jcHVzICogKENSQVNIX0NPUkVfTk9URV9IRUFEX0JZVEVTICsKKwkJCSAgQ1JBU0hfQ09SRV9OT1RFX05BTUVfQllURVMgKworCQkJICBDUkFTSF9DT1JFX05PVEVfREVTQ19CWVRFUykpICsKKwkJCSAgKENSQVNIX0NPUkVfTk9URV9IRUFEX0JZVEVTICsKKwkJCSAgQ1JBU0hfQ09SRV9OT1RFX05BTUVfQllURVMgKyBBVVhWX0RFU0NfU1opKTsKKworCS8qIEFsbG9jYXRlIGJ1ZmZlciB0byBzZXR1cCBPUEFMIGNvcmUgKi8KKwlvY19jb25mLT5vcGFsY29yZWJ1Zl9zeiA9IFBBR0VfQUxJR04oaGRyX3NpemUgKyBjcHVfbm90ZXNfc2l6ZSk7CisJb2NfY29uZi0+b3BhbGNvcmVidWYgPSBhbGxvY19wYWdlc19leGFjdChvY19jb25mLT5vcGFsY29yZWJ1Zl9zeiwKKwkJCQkJCSBHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CisJaWYgKCFvY19jb25mLT5vcGFsY29yZWJ1ZikgeworCQlwcl9lcnIoIk5vdCBlbm91Z2ggbWVtb3J5IHRvIHNldHVwIE9QQUwgY29yZSAoc2l6ZTogJWx1KVxuIiwKKwkJICAgICAgIG9jX2NvbmYtPm9wYWxjb3JlYnVmX3N6KTsKKwkJb2NfY29uZi0+b3BhbGNvcmVidWZfc3ogPSAwOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJY291bnQgPSBvY19jb25mLT5vcGFsY29yZWJ1Zl9zeiAvIFBBR0VfU0laRTsKKwlwYWdlID0gdmlydF90b19wYWdlKG9jX2NvbmYtPm9wYWxjb3JlYnVmKTsKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKwkJbWFya19wYWdlX3Jlc2VydmVkKHBhZ2UgKyBpKTsKKworCXByX2RlYnVnKCJvcGFsY29yZWJ1ZiA9IDB4JWxseFxuIiwgKHU2NClvY19jb25mLT5vcGFsY29yZWJ1Zik7CisKKwkvKiBSZWFkIE9QQUwgcmVsYXRlZCBkZXZpY2UtdHJlZSBlbnRyaWVzICovCisJZG4gPSBvZl9maW5kX25vZGVfYnlfbmFtZShOVUxMLCAiaWJtLG9wYWwiKTsKKwlpZiAoZG4pIHsKKwkJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91NjQoZG4sICJvcGFsLWJhc2UtYWRkcmVzcyIsCisJCQkJCSAgICZvcGFsX2Jhc2VfYWRkcik7CisJCXByX2RlYnVnKCJvcGFsLWJhc2UtYWRkcmVzczogJWxseFxuIiwgb3BhbF9iYXNlX2FkZHIpOworCQlyZXQgfD0gb2ZfcHJvcGVydHlfcmVhZF91NjQoZG4sICJvcGFsLWJvb3QtYWRkcmVzcyIsCisJCQkJCSAgICAmb3BhbF9ib290X2VudHJ5KTsKKwkJcHJfZGVidWcoIm9wYWwtYm9vdC1hZGRyZXNzOiAlbGx4XG4iLCBvcGFsX2Jvb3RfZW50cnkpOworCX0KKwlpZiAoIWRuIHx8IHJldCkKKwkJcHJfd2FybigiV0FSTklORzogRmFpbGVkIHRvIHJlYWQgT1BBTCBiYXNlICYgZW50cnkgdmFsdWVzXG4iKTsKKworCS8qIFVzZSBjb3VudCB0byBrZWVwIHRyYWNrIG9mIHRoZSBwcm9ncmFtIGhlYWRlcnMgKi8KKwljb3VudCA9IDA7CisKKwlidWZwID0gb2NfY29uZi0+b3BhbGNvcmVidWY7CisJZWxmID0gKEVsZjY0X0VoZHIgKilidWZwOworCWJ1ZnAgKz0gc2l6ZW9mKEVsZjY0X0VoZHIpOworCW1lbWNweShlbGYtPmVfaWRlbnQsIEVMRk1BRywgU0VMRk1BRyk7CisJZWxmLT5lX2lkZW50W0VJX0NMQVNTXSA9IEVMRl9DTEFTUzsKKwllbGYtPmVfaWRlbnRbRUlfREFUQV0gPSBFTEZEQVRBMk1TQjsKKwllbGYtPmVfaWRlbnRbRUlfVkVSU0lPTl0gPSBFVl9DVVJSRU5UOworCWVsZi0+ZV9pZGVudFtFSV9PU0FCSV0gPSBFTEZfT1NBQkk7CisJbWVtc2V0KGVsZi0+ZV9pZGVudCtFSV9QQUQsIDAsIEVJX05JREVOVC1FSV9QQUQpOworCWVsZi0+ZV90eXBlID0gY3B1X3RvX2JlMTYoRVRfQ09SRSk7CisJZWxmLT5lX21hY2hpbmUgPSBjcHVfdG9fYmUxNihFTEZfQVJDSCk7CisJZWxmLT5lX3ZlcnNpb24gPSBjcHVfdG9fYmUzMihFVl9DVVJSRU5UKTsKKwllbGYtPmVfZW50cnkgPSAwOworCWVsZi0+ZV9waG9mZiA9IGNwdV90b19iZTY0KHNpemVvZihFbGY2NF9FaGRyKSk7CisJZWxmLT5lX3Nob2ZmID0gMDsKKwllbGYtPmVfZmxhZ3MgPSAwOworCisJZWxmLT5lX2Voc2l6ZSA9IGNwdV90b19iZTE2KHNpemVvZihFbGY2NF9FaGRyKSk7CisJZWxmLT5lX3BoZW50c2l6ZSA9IGNwdV90b19iZTE2KHNpemVvZihFbGY2NF9QaGRyKSk7CisJZWxmLT5lX3BobnVtID0gMDsKKwllbGYtPmVfc2hlbnRzaXplID0gMDsKKwllbGYtPmVfc2hudW0gPSAwOworCWVsZi0+ZV9zaHN0cm5keCA9IDA7CisKKwlwaGRyID0gKEVsZjY0X1BoZHIgKilidWZwOworCWJ1ZnAgKz0gc2l6ZW9mKEVsZjY0X1BoZHIpOworCXBoZHItPnBfdHlwZQk9IGNwdV90b19iZTMyKFBUX05PVEUpOworCXBoZHItPnBfZmxhZ3MJPSAwOworCXBoZHItPnBfYWxpZ24JPSAwOworCXBoZHItPnBfcGFkZHIJPSBwaGRyLT5wX3ZhZGRyID0gMDsKKwlwaGRyLT5wX29mZnNldAk9IGNwdV90b19iZTY0KGhkcl9zaXplKTsKKwlwaGRyLT5wX2ZpbGVzegk9IHBoZHItPnBfbWVtc3ogPSBjcHVfdG9fYmU2NChjcHVfbm90ZXNfc2l6ZSk7CisJY291bnQrKzsKKworCW9wYWxjb3JlX29mZiA9IG9jX2NvbmYtPm9wYWxjb3JlYnVmX3N6OworCW9jX2NvbmYtPnB0bG9hZF9waGRyICA9IChFbGY2NF9QaGRyICopYnVmcDsKKwlwYWRkciA9IDA7CisJZm9yIChpID0gMDsgaSA8IG9jX2NvbmYtPnB0bG9hZF9jbnQ7IGkrKykgeworCQlwaGRyID0gKEVsZjY0X1BoZHIgKilidWZwOworCQlidWZwICs9IHNpemVvZihFbGY2NF9QaGRyKTsKKwkJcGhkci0+cF90eXBlCT0gY3B1X3RvX2JlMzIoUFRfTE9BRCk7CisJCXBoZHItPnBfZmxhZ3MJPSBjcHVfdG9fYmUzMihQRl9SfFBGX1d8UEZfWCk7CisJCXBoZHItPnBfYWxpZ24JPSAwOworCisJCW5ldyA9IGdldF9uZXdfZWxlbWVudCgpOworCQlpZiAoIW5ldykKKwkJCXJldHVybiAtRU5PTUVNOworCQluZXctPnBhZGRyICA9IG9jX2NvbmYtPnB0bG9hZF9hZGRyW2ldOworCQluZXctPnNpemUgICA9IG9jX2NvbmYtPnB0bG9hZF9zaXplW2ldOworCQluZXctPm9mZnNldCA9IG9wYWxjb3JlX29mZjsKKwkJbGlzdF9hZGRfdGFpbCgmbmV3LT5saXN0LCAmb3BhbGNvcmVfbGlzdCk7CisKKwkJcGhkci0+cF9wYWRkcgk9IGNwdV90b19iZTY0KHBhZGRyKTsKKwkJcGhkci0+cF92YWRkcgk9IGNwdV90b19iZTY0KG9wYWxfYmFzZV9hZGRyICsgcGFkZHIpOworCQlwaGRyLT5wX2ZpbGVzegk9IHBoZHItPnBfbWVtc3ogID0KKwkJCWNwdV90b19iZTY0KG9jX2NvbmYtPnB0bG9hZF9zaXplW2ldKTsKKwkJcGhkci0+cF9vZmZzZXQJPSBjcHVfdG9fYmU2NChvcGFsY29yZV9vZmYpOworCisJCWNvdW50Kys7CisJCW9wYWxjb3JlX29mZiArPSBvY19jb25mLT5wdGxvYWRfc2l6ZVtpXTsKKwkJcGFkZHIgKz0gb2NfY29uZi0+cHRsb2FkX3NpemVbaV07CisJfQorCisJZWxmLT5lX3BobnVtID0gY3B1X3RvX2JlMTYoY291bnQpOworCisJYnVmcCA9IChjaGFyICopb3BhbGNvcmVfYXBwZW5kX2NwdV9ub3RlcygoRWxmNjRfV29yZCAqKWJ1ZnApOworCWJ1ZnAgPSAoY2hhciAqKWF1eHZfdG9fZWxmNjRfbm90ZXMoKEVsZjY0X1dvcmQgKilidWZwLCBvcGFsX2Jvb3RfZW50cnkpOworCisJb2NfY29uZi0+b3BhbGNvcmVfc2l6ZSA9IG9wYWxjb3JlX29mZjsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgb3BhbGNvcmVfY2xlYW51cCh2b2lkKQoreworCWlmIChvY19jb25mID09IE5VTEwpCisJCXJldHVybjsKKworCS8qIFJlbW92ZSBPUEFMIGNvcmUgc3lzZnMgZmlsZSAqLworCXN5c2ZzX3JlbW92ZV9iaW5fZmlsZShvcGFsX2tvYmosICZvcGFsX2NvcmVfYXR0cik7CisJb2NfY29uZi0+cHRsb2FkX3BoZHIgPSBOVUxMOworCW9jX2NvbmYtPnB0bG9hZF9jbnQgPSAwOworCisJLyogZnJlZSB0aGUgYnVmZmVyIHVzZWQgZm9yIHNldHRpbmcgdXAgT1BBTCBjb3JlICovCisJaWYgKG9jX2NvbmYtPm9wYWxjb3JlYnVmKSB7CisJCXZvaWQgKmVuZCA9ICh2b2lkICopKCh1NjQpb2NfY29uZi0+b3BhbGNvcmVidWYgKworCQkJCSAgICAgb2NfY29uZi0+b3BhbGNvcmVidWZfc3opOworCisJCWZyZWVfcmVzZXJ2ZWRfYXJlYShvY19jb25mLT5vcGFsY29yZWJ1ZiwgZW5kLCAtMSwgTlVMTCk7CisJCW9jX2NvbmYtPm9wYWxjb3JlYnVmID0gTlVMTDsKKwkJb2NfY29uZi0+b3BhbGNvcmVidWZfc3ogPSAwOworCX0KKworCWtmcmVlKG9jX2NvbmYpOworCW9jX2NvbmYgPSBOVUxMOworfQorX19leGl0Y2FsbChvcGFsY29yZV9jbGVhbnVwKTsKKworc3RhdGljIHZvaWQgX19pbml0IG9wYWxjb3JlX2NvbmZpZ19pbml0KHZvaWQpCit7CisJdTMyIGlkeCwgY3B1X2RhdGFfdmVyc2lvbjsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wOworCWNvbnN0IF9fYmUzMiAqcHJvcDsKKwl1NjQgYWRkciA9IDA7CisJaW50IGksIHJldDsKKworCW5wID0gb2ZfZmluZF9ub2RlX2J5X3BhdGgoIi9pYm0sb3BhbC9kdW1wIik7CisJaWYgKG5wID09IE5VTEwpCisJCXJldHVybjsKKworCWlmICghb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJpYm0sb3BhbC1kdW1wIikpIHsKKwkJcHJfd2FybigiU3VwcG9ydCBtaXNzaW5nIGZvciB0aGlzIGYvdyB2ZXJzaW9uIVxuIik7CisJCXJldHVybjsKKwl9CisKKwkvKiBDaGVjayBpZiBkdW1wIGhhcyBiZWVuIGluaXRpYXRlZCBvbiBsYXN0IHJlYm9vdCAqLworCXByb3AgPSBvZl9nZXRfcHJvcGVydHkobnAsICJtcGlwbC1ib290IiwgTlVMTCk7CisJaWYgKCFwcm9wKSB7CisJCW9mX25vZGVfcHV0KG5wKTsKKwkJcmV0dXJuOworCX0KKworCS8qIEdldCBPUEFMIG1ldGFkYXRhICovCisJcmV0ID0gb3BhbF9tcGlwbF9xdWVyeV90YWcoT1BBTF9NUElQTF9UQUdfT1BBTCwgJmFkZHIpOworCWlmICgocmV0ICE9IE9QQUxfU1VDQ0VTUykgfHwgIWFkZHIpIHsKKwkJcHJfZXJyKCJGYWlsZWQgdG8gZ2V0IE9QQUwgbWV0YWRhdGEgKCVkKVxuIiwgcmV0KTsKKwkJZ290byBlcnJvcl9vdXQ7CisJfQorCisJYWRkciA9IGJlNjRfdG9fY3B1KGFkZHIpOworCXByX2RlYnVnKCJPUEFMIG1ldGFkYXRhIGFkZHI6ICVsbHhcbiIsIGFkZHIpOworCW9wYWxjX21ldGFkYXRhID0gX192YShhZGRyKTsKKworCS8qIEdldCBPUEFMIENQVSBtZXRhZGF0YSAqLworCXJldCA9IG9wYWxfbXBpcGxfcXVlcnlfdGFnKE9QQUxfTVBJUExfVEFHX0NQVSwgJmFkZHIpOworCWlmICgocmV0ICE9IE9QQUxfU1VDQ0VTUykgfHwgIWFkZHIpIHsKKwkJcHJfZXJyKCJGYWlsZWQgdG8gZ2V0IE9QQUwgQ1BVIG1ldGFkYXRhICglZClcbiIsIHJldCk7CisJCWdvdG8gZXJyb3Jfb3V0OworCX0KKworCWFkZHIgPSBiZTY0X3RvX2NwdShhZGRyKTsKKwlwcl9kZWJ1ZygiQ1BVIG1ldGFkYXRhIGFkZHI6ICVsbHhcbiIsIGFkZHIpOworCW9wYWxjX2NwdV9tZXRhZGF0YSA9IF9fdmEoYWRkcik7CisKKwkvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIGNvbmZpZyBidWZmZXIgKi8KKwlvY19jb25mID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG9wYWxjb3JlX2NvbmZpZyksIEdGUF9LRVJORUwpOworCWlmIChvY19jb25mID09IE5VTEwpCisJCWdvdG8gZXJyb3Jfb3V0OworCisJLyogUGFyc2UgT1BBTCBtZXRhZGF0YSAqLworCWlmIChvcGFsY19tZXRhZGF0YS0+dmVyc2lvbiAhPSBPUEFMX01QSVBMX1ZFUlNJT04pIHsKKwkJcHJfd2FybigiU3VwcG9ydGVkIE9QQUwgbWV0YWRhdGEgdmVyc2lvbjogJXUsIGZvdW5kOiAldSFcbiIsCisJCQlPUEFMX01QSVBMX1ZFUlNJT04sIG9wYWxjX21ldGFkYXRhLT52ZXJzaW9uKTsKKwkJcHJfd2FybigiV0FSTklORzogRi9XIHVzaW5nIG5ld2VyIE9QQUwgbWV0YWRhdGEgZm9ybWF0ISFcbiIpOworCX0KKworCW9jX2NvbmYtPnB0bG9hZF9jbnQgPSAwOworCWlkeCA9IGJlMzJfdG9fY3B1KG9wYWxjX21ldGFkYXRhLT5yZWdpb25fY250KTsKKwlpZiAoaWR4ID4gTUFYX1BUX0xPQURfQ05UKSB7CisJCXByX3dhcm4oIldBUk5JTkc6IE9QQUwgcmVnaW9ucyBjb3VudCAoJWQpIGFkanVzdGVkIHRvIGxpbWl0ICglZCkiLAorCQkJTUFYX1BUX0xPQURfQ05ULCBpZHgpOworCQlpZHggPSBNQVhfUFRfTE9BRF9DTlQ7CisJfQorCWZvciAoaSA9IDA7IGkgPCBpZHg7IGkrKykgeworCQlvY19jb25mLT5wdGxvYWRfYWRkcltvY19jb25mLT5wdGxvYWRfY250XSA9CisJCQkJYmU2NF90b19jcHUob3BhbGNfbWV0YWRhdGEtPnJlZ2lvbltpXS5kZXN0KTsKKwkJb2NfY29uZi0+cHRsb2FkX3NpemVbb2NfY29uZi0+cHRsb2FkX2NudCsrXSA9CisJCQkJYmU2NF90b19jcHUob3BhbGNfbWV0YWRhdGEtPnJlZ2lvbltpXS5zaXplKTsKKwl9CisJb2NfY29uZi0+cHRsb2FkX2NudCA9IGk7CisJb2NfY29uZi0+Y3Jhc2hpbmdfY3B1ID0gYmUzMl90b19jcHUob3BhbGNfbWV0YWRhdGEtPmNyYXNoaW5nX3Bpcik7CisKKwlpZiAoIW9jX2NvbmYtPnB0bG9hZF9jbnQpIHsKKwkJcHJfZXJyKCJPUEFMIG1lbW9yeSByZWdpb25zIG5vdCBmb3VuZFxuIik7CisJCWdvdG8gZXJyb3Jfb3V0OworCX0KKworCS8qIFBhcnNlIE9QQUwgQ1BVIG1ldGFkYXRhICovCisJY3B1X2RhdGFfdmVyc2lvbiA9IGJlMzJfdG9fY3B1KG9wYWxjX2NwdV9tZXRhZGF0YS0+Y3B1X2RhdGFfdmVyc2lvbik7CisJaWYgKGNwdV9kYXRhX3ZlcnNpb24gIT0gSERBVF9GQURVTVBfQ1BVX0RBVEFfVkVSKSB7CisJCXByX3dhcm4oIlN1cHBvcnRlZCBDUFUgZGF0YSB2ZXJzaW9uOiAldSwgZm91bmQ6ICV1IVxuIiwKKwkJCUhEQVRfRkFEVU1QX0NQVV9EQVRBX1ZFUiwgY3B1X2RhdGFfdmVyc2lvbik7CisJCXByX3dhcm4oIldBUk5JTkc6IEYvVyB1c2luZyBuZXdlciBDUFUgc3RhdGUgZGF0YSBmb3JtYXQhIVxuIik7CisJfQorCisJYWRkciA9IGJlNjRfdG9fY3B1KG9wYWxjX2NwdV9tZXRhZGF0YS0+cmVnaW9uWzBdLmRlc3QpOworCWlmICghYWRkcikgeworCQlwcl9lcnIoIkNQVSBzdGF0ZSBkYXRhIG5vdCBmb3VuZCFcbiIpOworCQlnb3RvIGVycm9yX291dDsKKwl9CisJb2NfY29uZi0+Y3B1X3N0YXRlX2Rlc3RpbmF0aW9uX3ZhZGRyID0gKHU2NClfX3ZhKGFkZHIpOworCisJb2NfY29uZi0+Y3B1X3N0YXRlX2RhdGFfc2l6ZSA9CisJCQliZTY0X3RvX2NwdShvcGFsY19jcHVfbWV0YWRhdGEtPnJlZ2lvblswXS5zaXplKTsKKwlvY19jb25mLT5jcHVfc3RhdGVfZW50cnlfc2l6ZSA9CisJCQliZTMyX3RvX2NwdShvcGFsY19jcHVfbWV0YWRhdGEtPmNwdV9kYXRhX3NpemUpOworCisJaWYgKChvY19jb25mLT5jcHVfc3RhdGVfZW50cnlfc2l6ZSA9PSAwKSB8fAorCSAgICAob2NfY29uZi0+Y3B1X3N0YXRlX2VudHJ5X3NpemUgPiBvY19jb25mLT5jcHVfc3RhdGVfZGF0YV9zaXplKSkgeworCQlwcl9lcnIoIkNQVSBzdGF0ZSBkYXRhIGlzIGludmFsaWQuXG4iKTsKKwkJZ290byBlcnJvcl9vdXQ7CisJfQorCW9jX2NvbmYtPm51bV9jcHVzID0gKG9jX2NvbmYtPmNwdV9zdGF0ZV9kYXRhX3NpemUgLworCQkJICAgICBvY19jb25mLT5jcHVfc3RhdGVfZW50cnlfc2l6ZSk7CisKKwlvZl9ub2RlX3B1dChucCk7CisJcmV0dXJuOworCitlcnJvcl9vdXQ6CisJcHJfZXJyKCJDb3VsZCBub3QgZXhwb3J0IC9zeXMvZmlybXdhcmUvb3BhbC9jb3JlXG4iKTsKKwlvcGFsY29yZV9jbGVhbnVwKCk7CisJb2Zfbm9kZV9wdXQobnApOworfQorCitzdGF0aWMgc3NpemVfdCBmYWR1bXBfcmVsZWFzZV9vcGFsY29yZV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkJICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJCSAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJaW50IGlucHV0ID0gLTE7CisKKwlpZiAoa3N0cnRvaW50KGJ1ZiwgMCwgJmlucHV0KSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoaW5wdXQgPT0gMSkgeworCQlpZiAob2NfY29uZiA9PSBOVUxMKSB7CisJCQlwcl9lcnIoIicvc3lzL2Zpcm13YXJlL29wYWwvY29yZScgZmlsZSBub3QgYWNjZXNzaWJsZSFcbiIpOworCQkJcmV0dXJuIC1FUEVSTTsKKwkJfQorCisJCS8qCisJCSAqIFRha2UgYXdheSAnL3N5cy9maXJtd2FyZS9vcGFsL2NvcmUnIGFuZCByZWxlYXNlIGFsbCBtZW1vcnkKKwkJICogdXNlZCBmb3IgZXhwb3J0aW5nIHRoaXMgZmlsZS4KKwkJICovCisJCW9wYWxjb3JlX2NsZWFudXAoKTsKKwl9IGVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgb3BhbGNvcmVfcmVsX2F0dHIgPSBfX0FUVFIoZmFkdW1wX3JlbGVhc2Vfb3BhbGNvcmUsCisJCQkJCQkwMjAwLCBOVUxMLAorCQkJCQkJZmFkdW1wX3JlbGVhc2Vfb3BhbGNvcmVfc3RvcmUpOworCitzdGF0aWMgaW50IF9faW5pdCBvcGFsY29yZV9pbml0KHZvaWQpCit7CisJaW50IHJjID0gLTE7CisKKwlvcGFsY29yZV9jb25maWdfaW5pdCgpOworCisJaWYgKG9jX2NvbmYgPT0gTlVMTCkKKwkJcmV0dXJuIHJjOworCisJY3JlYXRlX29wYWxjb3JlKCk7CisKKwkvKgorCSAqIElmIG9jX2NvbmYtPm9wYWxjb3JlYnVmPSBpcyBzZXQgaW4gdGhlIDJuZCBrZXJuZWwsCisJICogdGhlbiBjYXB0dXJlIHRoZSBkdW1wLgorCSAqLworCWlmICghKGlzX29wYWxjb3JlX3VzYWJsZSgpKSkgeworCQlwcl9lcnIoIkZhaWxlZCB0byBleHBvcnQgL3N5cy9maXJtd2FyZS9vcGFsL2NvcmVcbiIpOworCQlvcGFsY29yZV9jbGVhbnVwKCk7CisJCXJldHVybiByYzsKKwl9CisKKwkvKiBTZXQgT1BBTCBjb3JlIGZpbGUgc2l6ZSAqLworCW9wYWxfY29yZV9hdHRyLnNpemUgPSBvY19jb25mLT5vcGFsY29yZV9zaXplOworCisJLyogRXhwb3J0IE9QQUwgY29yZSBzeXNmcyBmaWxlICovCisJcmMgPSBzeXNmc19jcmVhdGVfYmluX2ZpbGUob3BhbF9rb2JqLCAmb3BhbF9jb3JlX2F0dHIpOworCWlmIChyYyAhPSAwKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGV4cG9ydCAvc3lzL2Zpcm13YXJlL29wYWwvY29yZVxuIik7CisJCW9wYWxjb3JlX2NsZWFudXAoKTsKKwkJcmV0dXJuIHJjOworCX0KKworCXJjID0gc3lzZnNfY3JlYXRlX2ZpbGUoa2VybmVsX2tvYmosICZvcGFsY29yZV9yZWxfYXR0ci5hdHRyKTsKKwlpZiAocmMpIHsKKwkJcHJfd2FybigidW5hYmxlIHRvIGNyZWF0ZSBzeXNmcyBmaWxlIGZhZHVtcF9yZWxlYXNlX29wYWxjb3JlICglZClcbiIsCisJCQlyYyk7CisJfQorCisJcmV0dXJuIDA7Cit9Citmc19pbml0Y2FsbChvcGFsY29yZV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLWZhZHVtcC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwtZmFkdW1wLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM2MWQzNwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLWZhZHVtcC5jCkBAIC0wLDAgKzEsNzE2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorLyoKKyAqIEZpcm13YXJlLUFzc2lzdGVkIER1bXAgc3VwcG9ydCBvbiBQT1dFUiBwbGF0Zm9ybSAoT1BBTCkuCisgKgorICogQ29weXJpZ2h0IDIwMTksIEhhcmkgQmF0aGluaSwgSUJNIENvcnBvcmF0aW9uLgorICovCisKKyNkZWZpbmUgcHJfZm10KGZtdCkgIm9wYWwgZmFkdW1wOiAiIGZtdAorCisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2ZkdC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpYmZkdC5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvY3Jhc2hfZHVtcC5oPgorCisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vb3BhbC5oPgorI2luY2x1ZGUgPGFzbS9mYWR1bXAtaW50ZXJuYWwuaD4KKworI2luY2x1ZGUgIm9wYWwtZmFkdW1wLmgiCisKKworI2lmZGVmIENPTkZJR19QUkVTRVJWRV9GQV9EVU1QCisvKgorICogV2hlbiBkdW1wIGlzIGFjdGl2ZSBidXQgUFJFU0VSVkVfRkFfRFVNUCBpcyBlbmFibGVkIG9uIHRoZSBrZXJuZWwsCisgKiBlbnN1cmUgY3Jhc2ggZGF0YSBpcyBwcmVzZXJ2ZWQgaW4gaG9wZSB0aGF0IHRoZSBzdWJzZXF1ZW50IG1lbW9yeQorICogcHJlc2VydmluZyBrZXJuZWwgYm9vdCBpcyBnb2luZyB0byBwcm9jZXNzIHRoaXMgY3Jhc2ggZGF0YS4KKyAqLwordm9pZCBfX2luaXQgb3BhbF9mYWR1bXBfZHRfc2NhbihzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYsIHU2NCBub2RlKQoreworCWNvbnN0IHN0cnVjdCBvcGFsX2ZhZHVtcF9tZW1fc3RydWN0ICpvcGFsX2ZkbV9hY3RpdmU7CisJY29uc3QgX19iZTMyICpwcm9wOworCXVuc2lnbmVkIGxvbmcgZG47CisJdTY0IGFkZHIgPSAwOworCXM2NCByZXQ7CisKKwlkbiA9IG9mX2dldF9mbGF0X2R0X3N1Ym5vZGVfYnlfbmFtZShub2RlLCAiZHVtcCIpOworCWlmIChkbiA9PSAtRkRUX0VSUl9OT1RGT1VORCkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBDaGVjayBpZiBkdW1wIGhhcyBiZWVuIGluaXRpYXRlZCBvbiBsYXN0IHJlYm9vdC4KKwkgKi8KKwlwcm9wID0gb2ZfZ2V0X2ZsYXRfZHRfcHJvcChkbiwgIm1waXBsLWJvb3QiLCBOVUxMKTsKKwlpZiAoIXByb3ApCisJCXJldHVybjsKKworCXJldCA9IG9wYWxfbXBpcGxfcXVlcnlfdGFnKE9QQUxfTVBJUExfVEFHX0tFUk5FTCwgJmFkZHIpOworCWlmICgocmV0ICE9IE9QQUxfU1VDQ0VTUykgfHwgIWFkZHIpIHsKKwkJcHJfZGVidWcoIkNvdWxkIG5vdCBnZXQgS2VybmVsIG1ldGFkYXRhICglbGxkKVxuIiwgcmV0KTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogUHJlc2VydmUgbWVtb3J5IG9ubHkgaWYga2VybmVsIG1lbW9yeSByZWdpb25zIGFyZSByZWdpc3RlcmVkCisJICogd2l0aCBmL3cgZm9yIE1QSVBMLgorCSAqLworCWFkZHIgPSBiZTY0X3RvX2NwdShhZGRyKTsKKwlwcl9kZWJ1ZygiS2VybmVsIG1ldGFkYXRhIGFkZHI6ICVsbHhcbiIsIGFkZHIpOworCW9wYWxfZmRtX2FjdGl2ZSA9ICh2b2lkICopYWRkcjsKKwlpZiAob3BhbF9mZG1fYWN0aXZlLT5yZWdpc3RlcmVkX3JlZ2lvbnMgPT0gMCkKKwkJcmV0dXJuOworCisJcmV0ID0gb3BhbF9tcGlwbF9xdWVyeV90YWcoT1BBTF9NUElQTF9UQUdfQk9PVF9NRU0sICZhZGRyKTsKKwlpZiAoKHJldCAhPSBPUEFMX1NVQ0NFU1MpIHx8ICFhZGRyKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGdldCBib290IG1lbW9yeSB0YWcgKCVsbGQpXG4iLCByZXQpOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBNZW1vcnkgYmVsb3cgdGhpcyBhZGRyZXNzIGNhbiBiZSB1c2VkIGZvciBib290aW5nIGEKKwkgKiBjYXB0dXJlIGtlcm5lbCBvciBwZXRpdGJvb3Qga2VybmVsLiBQcmVzZXJ2ZSBldmVyeXRoaW5nCisJICogYWJvdmUgdGhpcyBhZGRyZXNzIGZvciBwcm9jZXNzaW5nIGNyYXNoZHVtcC4KKwkgKi8KKwlmYWR1bXBfY29uZi0+Ym9vdF9tZW1fdG9wID0gYmU2NF90b19jcHUoYWRkcik7CisJcHJfZGVidWcoIlByZXNlcnZlIGV2ZXJ5dGhpbmcgYWJvdmUgJWxseFxuIiwgZmFkdW1wX2NvbmYtPmJvb3RfbWVtX3RvcCk7CisKKwlwcl9pbmZvKCJGaXJtd2FyZS1hc3Npc3RlZCBkdW1wIGlzIGFjdGl2ZS5cbiIpOworCWZhZHVtcF9jb25mLT5kdW1wX2FjdGl2ZSA9IDE7Cit9CisKKyNlbHNlIC8qIENPTkZJR19QUkVTRVJWRV9GQV9EVU1QICovCitzdGF0aWMgY29uc3Qgc3RydWN0IG9wYWxfZmFkdW1wX21lbV9zdHJ1Y3QgKm9wYWxfZmRtX2FjdGl2ZTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb3BhbF9tcGlwbF9mYWR1bXAgKm9wYWxfY3B1X21ldGFkYXRhOworc3RhdGljIHN0cnVjdCBvcGFsX2ZhZHVtcF9tZW1fc3RydWN0ICpvcGFsX2ZkbTsKKworI2lmZGVmIENPTkZJR19PUEFMX0NPUkUKK2V4dGVybiBib29sIGtlcm5lbF9pbml0aWF0ZWQ7CisjZW5kaWYKKworc3RhdGljIGludCBvcGFsX2ZhZHVtcF91bnJlZ2lzdGVyKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZik7CisKK3N0YXRpYyB2b2lkIG9wYWxfZmFkdW1wX3VwZGF0ZV9jb25maWcoc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mLAorCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBvcGFsX2ZhZHVtcF9tZW1fc3RydWN0ICpmZG0pCit7CisJcHJfZGVidWcoIkJvb3QgbWVtb3J5IHJlZ2lvbnMgY291bnQ6ICVkXG4iLCBmZG0tPnJlZ2lvbl9jbnQpOworCisJLyoKKwkgKiBUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBvZiB0aGUgZmlyc3QgYm9vdCBtZW1vcnkgcmVnaW9uIGlzIHRoZQorCSAqIGRlc3RpbmF0aW9uIGFkZHJlc3Mgb2YgYm9vdCBtZW1vcnkgcmVnaW9ucy4KKwkgKi8KKwlmYWR1bXBfY29uZi0+Ym9vdF9tZW1fZGVzdF9hZGRyID0gZmRtLT5yZ25bMF0uZGVzdDsKKwlwcl9kZWJ1ZygiRGVzdGluYXRpb24gYWRkcmVzcyBvZiBib290IG1lbW9yeSByZWdpb25zOiAlIzAxNmxseFxuIiwKKwkJIGZhZHVtcF9jb25mLT5ib290X21lbV9kZXN0X2FkZHIpOworCisJZmFkdW1wX2NvbmYtPmZhZHVtcGhkcl9hZGRyID0gZmRtLT5mYWR1bXBoZHJfYWRkcjsKK30KKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIHRoZSBjYXB0dXJlIGtlcm5lbCB0byBnZXQgY29uZmlndXJhdGlvbiBkZXRhaWxzCisgKiBmcm9tIG1ldGFkYXRhIHNldHVwIGJ5IHRoZSBmaXJzdCBrZXJuZWwuCisgKi8KK3N0YXRpYyB2b2lkIG9wYWxfZmFkdW1wX2dldF9jb25maWcoc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mLAorCQkJCSAgIGNvbnN0IHN0cnVjdCBvcGFsX2ZhZHVtcF9tZW1fc3RydWN0ICpmZG0pCit7CisJdW5zaWduZWQgbG9uZyBiYXNlLCBzaXplLCBsYXN0X2VuZCwgaG9sZV9zaXplOworCWludCBpOworCisJaWYgKCFmYWR1bXBfY29uZi0+ZHVtcF9hY3RpdmUpCisJCXJldHVybjsKKworCWxhc3RfZW5kID0gMDsKKwlob2xlX3NpemUgPSAwOworCWZhZHVtcF9jb25mLT5ib290X21lbW9yeV9zaXplID0gMDsKKworCXByX2RlYnVnKCJCb290IG1lbW9yeSByZWdpb25zOlxuIik7CisJZm9yIChpID0gMDsgaSA8IGZkbS0+cmVnaW9uX2NudDsgaSsrKSB7CisJCWJhc2UgPSBmZG0tPnJnbltpXS5zcmM7CisJCXNpemUgPSBmZG0tPnJnbltpXS5zaXplOworCQlwcl9kZWJ1ZygiXHRbJTAzZF0gYmFzZTogMHglbHgsIHNpemU6IDB4JWx4XG4iLCBpLCBiYXNlLCBzaXplKTsKKworCQlmYWR1bXBfY29uZi0+Ym9vdF9tZW1fYWRkcltpXSA9IGJhc2U7CisJCWZhZHVtcF9jb25mLT5ib290X21lbV9zeltpXSA9IHNpemU7CisJCWZhZHVtcF9jb25mLT5ib290X21lbW9yeV9zaXplICs9IHNpemU7CisJCWhvbGVfc2l6ZSArPSAoYmFzZSAtIGxhc3RfZW5kKTsKKworCQlsYXN0X2VuZCA9IGJhc2UgKyBzaXplOworCX0KKworCS8qCisJICogU3RhcnQgYWRkcmVzcyBvZiByZXNlcnZlIGR1bXAgYXJlYSAocGVybWFuZW50IHJlc2VydmF0aW9uKSBmb3IKKwkgKiByZS1yZWdpc3RlcmluZyBGQUR1bXAgYWZ0ZXIgZHVtcCBjYXB0dXJlLgorCSAqLworCWZhZHVtcF9jb25mLT5yZXNlcnZlX2R1bXBfYXJlYV9zdGFydCA9IGZkbS0+cmduWzBdLmRlc3Q7CisKKwkvKgorCSAqIFJhcmVseSwgYnV0IGl0IGNhbiBzbyBoYXBwZW4gdGhhdCBzeXN0ZW0gY3Jhc2hlcyBiZWZvcmUgYWxsCisJICogYm9vdCBtZW1vcnkgcmVnaW9ucyBhcmUgcmVnaXN0ZXJlZCBmb3IgTVBJUEwuIEluIHN1Y2gKKwkgKiBjYXNlcywgd2FybiB0aGF0IHRoZSB2bWNvcmUgbWF5IG5vdCBiZSBhY2N1cmF0ZSBhbmQgcHJvY2VlZAorCSAqIGFueXdheSBhcyB0aGF0IGlzIHRoZSBiZXN0IGJldCBjb25zaWRlcmluZyBmcmVlIHBhZ2VzLCBjYWNoZQorCSAqIHBhZ2VzLCB1c2VyIHBhZ2VzLCBldGMgYXJlIHVzdWFsbHkgZmlsdGVyZWQgb3V0LgorCSAqCisJICogSG9wZSB0aGUgbWVtb3J5IHRoYXQgY291bGQgbm90IGJlIHByZXNlcnZlZCBvbmx5IGhhcyBwYWdlcworCSAqIHRoYXQgYXJlIHVzdWFsbHkgZmlsdGVyZWQgb3V0IHdoaWxlIHNhdmluZyB0aGUgdm1jb3JlLgorCSAqLworCWlmIChmZG0tPnJlZ2lvbl9jbnQgPiBmZG0tPnJlZ2lzdGVyZWRfcmVnaW9ucykgeworCQlwcl93YXJuKCJOb3QgYWxsIG1lbW9yeSByZWdpb25zIHdlcmUgc2F2ZWQhISFcbiIpOworCQlwcl93YXJuKCIgIFVuc2F2ZWQgbWVtb3J5IHJlZ2lvbnM6XG4iKTsKKwkJaSA9IGZkbS0+cmVnaXN0ZXJlZF9yZWdpb25zOworCQl3aGlsZSAoaSA8IGZkbS0+cmVnaW9uX2NudCkgeworCQkJcHJfd2FybigiXHRbJTAzZF0gYmFzZTogMHglbGx4LCBzaXplOiAweCVsbHhcbiIsCisJCQkJaSwgZmRtLT5yZ25baV0uc3JjLCBmZG0tPnJnbltpXS5zaXplKTsKKwkJCWkrKzsKKwkJfQorCisJCXByX3dhcm4oIklmIHRoZSB1bnNhdmVkIHJlZ2lvbnMgb25seSBjb250YWluIHBhZ2VzIHRoYXQgYXJlIGZpbHRlcmVkIG91dCAoZWcuIGZyZWUvdXNlciBwYWdlcyksIHRoZSB2bWNvcmUgc2hvdWxkIHN0aWxsIGJlIHVzYWJsZS5cbiIpOworCQlwcl93YXJuKCJXQVJOSU5HOiBJZiB0aGUgdW5zYXZlZCByZWdpb25zIGNvbnRhaW4ga2VybmVsIHBhZ2VzLCB0aGUgdm1jb3JlIHdpbGwgYmUgY29ycnVwdGVkLlxuIik7CisJfQorCisJZmFkdW1wX2NvbmYtPmJvb3RfbWVtX3RvcCA9IChmYWR1bXBfY29uZi0+Ym9vdF9tZW1vcnlfc2l6ZSArIGhvbGVfc2l6ZSk7CisJZmFkdW1wX2NvbmYtPmJvb3RfbWVtX3JlZ3NfY250ID0gZmRtLT5yZWdpb25fY250OworCW9wYWxfZmFkdW1wX3VwZGF0ZV9jb25maWcoZmFkdW1wX2NvbmYsIGZkbSk7Cit9CisKKy8qIEluaXRpYWxpemUga2VybmVsIG1ldGFkYXRhICovCitzdGF0aWMgdm9pZCBvcGFsX2ZhZHVtcF9pbml0X21ldGFkYXRhKHN0cnVjdCBvcGFsX2ZhZHVtcF9tZW1fc3RydWN0ICpmZG0pCit7CisJZmRtLT52ZXJzaW9uID0gT1BBTF9GQURVTVBfVkVSU0lPTjsKKwlmZG0tPnJlZ2lvbl9jbnQgPSAwOworCWZkbS0+cmVnaXN0ZXJlZF9yZWdpb25zID0gMDsKKwlmZG0tPmZhZHVtcGhkcl9hZGRyID0gMDsKK30KKworc3RhdGljIHU2NCBvcGFsX2ZhZHVtcF9pbml0X21lbV9zdHJ1Y3Qoc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mKQoreworCXU2NCBhZGRyID0gZmFkdW1wX2NvbmYtPnJlc2VydmVfZHVtcF9hcmVhX3N0YXJ0OworCWludCBpOworCisJb3BhbF9mZG0gPSBfX3ZhKGZhZHVtcF9jb25mLT5rZXJuZWxfbWV0YWRhdGEpOworCW9wYWxfZmFkdW1wX2luaXRfbWV0YWRhdGEob3BhbF9mZG0pOworCisJLyogQm9vdCBtZW1vcnkgcmVnaW9ucyAqLworCWZvciAoaSA9IDA7IGkgPCBmYWR1bXBfY29uZi0+Ym9vdF9tZW1fcmVnc19jbnQ7IGkrKykgeworCQlvcGFsX2ZkbS0+cmduW2ldLnNyYwk9IGZhZHVtcF9jb25mLT5ib290X21lbV9hZGRyW2ldOworCQlvcGFsX2ZkbS0+cmduW2ldLmRlc3QJPSBhZGRyOworCQlvcGFsX2ZkbS0+cmduW2ldLnNpemUJPSBmYWR1bXBfY29uZi0+Ym9vdF9tZW1fc3pbaV07CisKKwkJb3BhbF9mZG0tPnJlZ2lvbl9jbnQrKzsKKwkJYWRkciArPSBmYWR1bXBfY29uZi0+Ym9vdF9tZW1fc3pbaV07CisJfQorCisJLyoKKwkgKiBLZXJuZWwgbWV0YWRhdGEgaXMgcGFzc2VkIHRvIGYvdyBhbmQgcmV0cmlldmVkIGluIGNhcHR1cmUga2VyZW5sLgorCSAqIFNvLCB1c2UgaXQgdG8gc2F2ZSBmYWR1bXAgaGVhZGVyIGFkZHJlc3MgaW5zdGVhZCBvZiBjYWxjdWxhdGluZyBpdC4KKwkgKi8KKwlvcGFsX2ZkbS0+ZmFkdW1waGRyX2FkZHIgPSAob3BhbF9mZG0tPnJnblswXS5kZXN0ICsKKwkJCQkgICAgZmFkdW1wX2NvbmYtPmJvb3RfbWVtb3J5X3NpemUpOworCisJb3BhbF9mYWR1bXBfdXBkYXRlX2NvbmZpZyhmYWR1bXBfY29uZiwgb3BhbF9mZG0pOworCisJcmV0dXJuIGFkZHI7Cit9CisKK3N0YXRpYyB1NjQgb3BhbF9mYWR1bXBfZ2V0X21ldGFkYXRhX3NpemUodm9pZCkKK3sKKwlyZXR1cm4gUEFHRV9BTElHTihzaXplb2Yoc3RydWN0IG9wYWxfZmFkdW1wX21lbV9zdHJ1Y3QpKTsKK30KKworc3RhdGljIGludCBvcGFsX2ZhZHVtcF9zZXR1cF9tZXRhZGF0YShzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYpCit7CisJaW50IGVyciA9IDA7CisJczY0IHJldDsKKworCS8qCisJICogVXNlIHRoZSBsYXN0IHBhZ2UocykgaW4gRkFEdW1wIG1lbW9yeSByZXNlcnZhdGlvbiBmb3IKKwkgKiBrZXJuZWwgbWV0YWRhdGEuCisJICovCisJZmFkdW1wX2NvbmYtPmtlcm5lbF9tZXRhZGF0YSA9IChmYWR1bXBfY29uZi0+cmVzZXJ2ZV9kdW1wX2FyZWFfc3RhcnQgKworCQkJCQlmYWR1bXBfY29uZi0+cmVzZXJ2ZV9kdW1wX2FyZWFfc2l6ZSAtCisJCQkJCW9wYWxfZmFkdW1wX2dldF9tZXRhZGF0YV9zaXplKCkpOworCXByX2luZm8oIktlcm5lbCBtZXRhZGF0YSBhZGRyOiAlbGx4XG4iLCBmYWR1bXBfY29uZi0+a2VybmVsX21ldGFkYXRhKTsKKworCS8qIEluaXRpYWxpemUga2VybmVsIG1ldGFkYXRhIGJlZm9yZSByZWdpc3RlcmluZyB0aGUgYWRkcmVzcyB3aXRoIGYvdyAqLworCW9wYWxfZmRtID0gX192YShmYWR1bXBfY29uZi0+a2VybmVsX21ldGFkYXRhKTsKKwlvcGFsX2ZhZHVtcF9pbml0X21ldGFkYXRhKG9wYWxfZmRtKTsKKworCS8qCisJICogUmVnaXN0ZXIgbWV0YWRhdGEgYWRkcmVzcyB3aXRoIGYvdy4gQ2FuIGJlIHJldHJpZXZlZCBpbgorCSAqIHRoZSBjYXB0dXJlIGtlcm5lbC4KKwkgKi8KKwlyZXQgPSBvcGFsX21waXBsX3JlZ2lzdGVyX3RhZyhPUEFMX01QSVBMX1RBR19LRVJORUwsCisJCQkJICAgICAgZmFkdW1wX2NvbmYtPmtlcm5lbF9tZXRhZGF0YSk7CisJaWYgKHJldCAhPSBPUEFMX1NVQ0NFU1MpIHsKKwkJcHJfZXJyKCJGYWlsZWQgdG8gc2V0IGtlcm5lbCBtZXRhZGF0YSB0YWchXG4iKTsKKwkJZXJyID0gLUVQRVJNOworCX0KKworCS8qCisJICogUmVnaXN0ZXIgYm9vdCBtZW1vcnkgdG9wIGFkZHJlc3Mgd2l0aCBmL3cuIFNob3VsZCBiZSByZXRyaWV2ZWQKKwkgKiBieSBhIGtlcm5lbCB0aGF0IGludGVuZHMgdG8gcHJlc2VydmUgY3Jhc2gnZWQga2VybmVsJ3MgbWVtb3J5LgorCSAqLworCXJldCA9IG9wYWxfbXBpcGxfcmVnaXN0ZXJfdGFnKE9QQUxfTVBJUExfVEFHX0JPT1RfTUVNLAorCQkJCSAgICAgIGZhZHVtcF9jb25mLT5ib290X21lbV90b3ApOworCWlmIChyZXQgIT0gT1BBTF9TVUNDRVNTKSB7CisJCXByX2VycigiRmFpbGVkIHRvIHNldCBib290IG1lbW9yeSB0YWchXG4iKTsKKwkJZXJyID0gLUVQRVJNOworCX0KKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB1NjQgb3BhbF9mYWR1bXBfZ2V0X2Jvb3RtZW1fbWluKHZvaWQpCit7CisJcmV0dXJuIE9QQUxfRkFEVU1QX01JTl9CT09UX01FTTsKK30KKworc3RhdGljIGludCBvcGFsX2ZhZHVtcF9yZWdpc3RlcihzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYpCit7CisJczY0IHJjID0gT1BBTF9QQVJBTUVURVI7CisJaW50IGksIGVyciA9IC1FSU87CisKKwlmb3IgKGkgPSAwOyBpIDwgb3BhbF9mZG0tPnJlZ2lvbl9jbnQ7IGkrKykgeworCQlyYyA9IG9wYWxfbXBpcGxfdXBkYXRlKE9QQUxfTVBJUExfQUREX1JBTkdFLAorCQkJCSAgICAgICBvcGFsX2ZkbS0+cmduW2ldLnNyYywKKwkJCQkgICAgICAgb3BhbF9mZG0tPnJnbltpXS5kZXN0LAorCQkJCSAgICAgICBvcGFsX2ZkbS0+cmduW2ldLnNpemUpOworCQlpZiAocmMgIT0gT1BBTF9TVUNDRVNTKQorCQkJYnJlYWs7CisKKwkJb3BhbF9mZG0tPnJlZ2lzdGVyZWRfcmVnaW9ucysrOworCX0KKworCXN3aXRjaCAocmMpIHsKKwljYXNlIE9QQUxfU1VDQ0VTUzoKKwkJcHJfaW5mbygiUmVnaXN0cmF0aW9uIGlzIHN1Y2Nlc3NmdWwhXG4iKTsKKwkJZmFkdW1wX2NvbmYtPmR1bXBfcmVnaXN0ZXJlZCA9IDE7CisJCWVyciA9IDA7CisJCWJyZWFrOworCWNhc2UgT1BBTF9SRVNPVVJDRToKKwkJLyogSWYgTUFYIHJlZ2lvbnMgbGltaXQgaW4gZi93IGlzIGhpdCwgd2FybiBhbmQgcHJvY2VlZC4gKi8KKwkJcHJfd2FybigiJWQgcmVnaW9ucyBjb3VsZCBub3QgYmUgcmVnaXN0ZXJlZCBmb3IgTVBJUEwgYXMgTUFYIGxpbWl0IGlzIHJlYWNoZWQhXG4iLAorCQkJKG9wYWxfZmRtLT5yZWdpb25fY250IC0gb3BhbF9mZG0tPnJlZ2lzdGVyZWRfcmVnaW9ucykpOworCQlmYWR1bXBfY29uZi0+ZHVtcF9yZWdpc3RlcmVkID0gMTsKKwkJZXJyID0gMDsKKwkJYnJlYWs7CisJY2FzZSBPUEFMX1BBUkFNRVRFUjoKKwkJcHJfZXJyKCJGYWlsZWQgdG8gcmVnaXN0ZXIuIFBhcmFtZXRlciBFcnJvciglbGxkKS5cbiIsIHJjKTsKKwkJYnJlYWs7CisJY2FzZSBPUEFMX0hBUkRXQVJFOgorCQlwcl9lcnIoIlN1cHBvcnQgbm90IGF2YWlsYWJsZS5cbiIpOworCQlmYWR1bXBfY29uZi0+ZmFkdW1wX3N1cHBvcnRlZCA9IDA7CisJCWZhZHVtcF9jb25mLT5mYWR1bXBfZW5hYmxlZCA9IDA7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXByX2VycigiRmFpbGVkIHRvIHJlZ2lzdGVyLiBVbmtub3duIEVycm9yKCVsbGQpLlxuIiwgcmMpOworCQlicmVhazsKKwl9CisKKwkvKgorCSAqIElmIHNvbWUgcmVnaW9ucyB3ZXJlIHJlZ2lzdGVyZWQgYmVmb3JlIE9QQUxfTVBJUExfQUREX1JBTkdFCisJICogT1BBTCBjYWxsIGZhaWxlZCwgdW5yZWdpc3RlciBhbGwgcmVnaW9ucy4KKwkgKi8KKwlpZiAoKGVyciA8IDApICYmIChvcGFsX2ZkbS0+cmVnaXN0ZXJlZF9yZWdpb25zID4gMCkpCisJCW9wYWxfZmFkdW1wX3VucmVnaXN0ZXIoZmFkdW1wX2NvbmYpOworCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBvcGFsX2ZhZHVtcF91bnJlZ2lzdGVyKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZikKK3sKKwlzNjQgcmM7CisKKwlyYyA9IG9wYWxfbXBpcGxfdXBkYXRlKE9QQUxfTVBJUExfUkVNT1ZFX0FMTCwgMCwgMCwgMCk7CisJaWYgKHJjKSB7CisJCXByX2VycigiRmFpbGVkIHRvIHVuLXJlZ2lzdGVyIC0gdW5leHBlY3RlZCBFcnJvciglbGxkKS5cbiIsIHJjKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJb3BhbF9mZG0tPnJlZ2lzdGVyZWRfcmVnaW9ucyA9IDA7CisJZmFkdW1wX2NvbmYtPmR1bXBfcmVnaXN0ZXJlZCA9IDA7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgb3BhbF9mYWR1bXBfaW52YWxpZGF0ZShzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYpCit7CisJczY0IHJjOworCisJcmMgPSBvcGFsX21waXBsX3VwZGF0ZShPUEFMX01QSVBMX0ZSRUVfUFJFU0VSVkVEX01FTU9SWSwgMCwgMCwgMCk7CisJaWYgKHJjKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGludmFsaWRhdGUgLSB1bmV4cGVjdGVkIEVycm9yKCVsbGQpLlxuIiwgcmMpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwlmYWR1bXBfY29uZi0+ZHVtcF9hY3RpdmUgPSAwOworCW9wYWxfZmRtX2FjdGl2ZSA9IE5VTEw7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIG9wYWxfZmFkdW1wX2NsZWFudXAoc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mKQoreworCXM2NCByZXQ7CisKKwlyZXQgPSBvcGFsX21waXBsX3JlZ2lzdGVyX3RhZyhPUEFMX01QSVBMX1RBR19LRVJORUwsIDApOworCWlmIChyZXQgIT0gT1BBTF9TVUNDRVNTKQorCQlwcl93YXJuKCJDb3VsZCBub3QgcmVzZXQgKCVsbHUpIGtlcm5lbCBtZXRhZGF0YSB0YWchXG4iLCByZXQpOworfQorCisvKgorICogVmVyaWZ5IGlmIENQVSBzdGF0ZSBkYXRhIGlzIGF2YWlsYWJsZS4gSWYgYXZhaWxhYmxlLCBkbyBhIGJpdCBvZiBzYW5pdHkKKyAqIGNoZWNraW5nIGJlZm9yZSBwcm9jZXNzaW5nIHRoaXMgZGF0YS4KKyAqLworc3RhdGljIGJvb2wgX19pbml0IGlzX29wYWxfZmFkdW1wX2NwdV9kYXRhX3ZhbGlkKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZikKK3sKKwlpZiAoIW9wYWxfY3B1X21ldGFkYXRhKQorCQlyZXR1cm4gZmFsc2U7CisKKwlmYWR1bXBfY29uZi0+Y3B1X3N0YXRlX2RhdGFfdmVyc2lvbiA9CisJCWJlMzJfdG9fY3B1KG9wYWxfY3B1X21ldGFkYXRhLT5jcHVfZGF0YV92ZXJzaW9uKTsKKwlmYWR1bXBfY29uZi0+Y3B1X3N0YXRlX2VudHJ5X3NpemUgPQorCQliZTMyX3RvX2NwdShvcGFsX2NwdV9tZXRhZGF0YS0+Y3B1X2RhdGFfc2l6ZSk7CisJZmFkdW1wX2NvbmYtPmNwdV9zdGF0ZV9kZXN0X3ZhZGRyID0KKwkJKHU2NClfX3ZhKGJlNjRfdG9fY3B1KG9wYWxfY3B1X21ldGFkYXRhLT5yZWdpb25bMF0uZGVzdCkpOworCWZhZHVtcF9jb25mLT5jcHVfc3RhdGVfZGF0YV9zaXplID0KKwkJYmU2NF90b19jcHUob3BhbF9jcHVfbWV0YWRhdGEtPnJlZ2lvblswXS5zaXplKTsKKworCWlmIChmYWR1bXBfY29uZi0+Y3B1X3N0YXRlX2RhdGFfdmVyc2lvbiAhPSBIREFUX0ZBRFVNUF9DUFVfREFUQV9WRVIpIHsKKwkJcHJfd2FybigiU3VwcG9ydGVkIENQVSBzdGF0ZSBkYXRhIHZlcnNpb246ICV1LCBmb3VuZDogJWQhXG4iLAorCQkJSERBVF9GQURVTVBfQ1BVX0RBVEFfVkVSLAorCQkJZmFkdW1wX2NvbmYtPmNwdV9zdGF0ZV9kYXRhX3ZlcnNpb24pOworCQlwcl93YXJuKCJXQVJOSU5HOiBGL1cgdXNpbmcgbmV3ZXIgQ1BVIHN0YXRlIGRhdGEgZm9ybWF0ISFcbiIpOworCX0KKworCWlmICgoZmFkdW1wX2NvbmYtPmNwdV9zdGF0ZV9kZXN0X3ZhZGRyID09IDApIHx8CisJICAgIChmYWR1bXBfY29uZi0+Y3B1X3N0YXRlX2VudHJ5X3NpemUgPT0gMCkgfHwKKwkgICAgKGZhZHVtcF9jb25mLT5jcHVfc3RhdGVfZW50cnlfc2l6ZSA+CisJICAgICBmYWR1bXBfY29uZi0+Y3B1X3N0YXRlX2RhdGFfc2l6ZSkpIHsKKwkJcHJfZXJyKCJDUFUgc3RhdGUgZGF0YSBpcyBpbnZhbGlkLiBJZ25vcmluZyFcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDb252ZXJ0IENQVSBzdGF0ZSBkYXRhIHNhdmVkIGF0IHRoZSB0aW1lIG9mIGNyYXNoIGludG8gRUxGIG5vdGVzLgorICoKKyAqIFdoaWxlIHRoZSBjcmFzaGluZyBDUFUncyByZWdpc3RlciBkYXRhIGlzIHNhdmVkIGJ5IHRoZSBrZXJuZWwsIENQVSBzdGF0ZQorICogZGF0YSBmb3IgYWxsIENQVXMgaXMgc2F2ZWQgYnkgZi93LiBJbiBDUFUgc3RhdGUgZGF0YSBwcm92aWRlZCBieSBmL3csCisgKiBlYWNoIHJlZ2lzdGVyIGVudHJ5IGlzIG9mIDE2IGJ5dGVzLCBhIG51bWVyaWNhbCBpZGVudGlmaWVyIGFsb25nIHdpdGgKKyAqIGEgR1BSL1NQUiBmbGFnIGluIHRoZSBmaXJzdCA4IGJ5dGVzIGFuZCB0aGUgcmVnaXN0ZXIgdmFsdWUgaW4gdGhlIG5leHQKKyAqIDggYnl0ZXMuIEZvciBtb3JlIGRldGFpbHMgcmVmZXIgdG8gRi9XIGRvY3VtZW50YXRpb24uIElmIHRoaXMgZGF0YSBpcworICogbWlzc2luZyBvciBpbiB1bnN1cHBvcnRlZCBmb3JtYXQsIGFwcGVuZCBjcmFzaGluZyBDUFUncyByZWdpc3RlciBkYXRhCisgKiBzYXZlZCBieSB0aGUga2VybmVsIGluIHRoZSBQVF9OT1RFLCB0byBoYXZlIHNvbWV0aGluZyB0byB3b3JrIHdpdGggaW4KKyAqIHRoZSB2bWNvcmUgZmlsZS4KKyAqLworc3RhdGljIGludCBfX2luaXQKK29wYWxfZmFkdW1wX2J1aWxkX2NwdV9ub3RlcyhzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYsCisJCQkgICAgc3RydWN0IGZhZHVtcF9jcmFzaF9pbmZvX2hlYWRlciAqZmRoKQoreworCXUzMiB0aHJlYWRfcGlyLCBzaXplX3Blcl90aHJlYWQsIHJlZ3Nfb2Zmc2V0LCByZWdzX2NudCwgcmVnX2VzaXplOworCXN0cnVjdCBoZGF0X2ZhZHVtcF90aHJlYWRfaGRyICp0aGRyOworCWJvb2wgaXNfY3B1X2RhdGFfdmFsaWQgPSBmYWxzZTsKKwl1MzIgbnVtX2NwdXMgPSAxLCAqbm90ZV9idWY7CisJc3RydWN0IHB0X3JlZ3MgcmVnczsKKwljaGFyICpidWZwOworCWludCByYywgaTsKKworCWlmIChpc19vcGFsX2ZhZHVtcF9jcHVfZGF0YV92YWxpZChmYWR1bXBfY29uZikpIHsKKwkJc2l6ZV9wZXJfdGhyZWFkID0gZmFkdW1wX2NvbmYtPmNwdV9zdGF0ZV9lbnRyeV9zaXplOworCQludW1fY3B1cyA9IChmYWR1bXBfY29uZi0+Y3B1X3N0YXRlX2RhdGFfc2l6ZSAvIHNpemVfcGVyX3RocmVhZCk7CisJCWJ1ZnAgPSBfX3ZhKGZhZHVtcF9jb25mLT5jcHVfc3RhdGVfZGVzdF92YWRkcik7CisJCWlzX2NwdV9kYXRhX3ZhbGlkID0gdHJ1ZTsKKwl9CisKKwlyYyA9IGZhZHVtcF9zZXR1cF9jcHVfbm90ZXNfYnVmKG51bV9jcHVzKTsKKwlpZiAocmMgIT0gMCkKKwkJcmV0dXJuIHJjOworCisJbm90ZV9idWYgPSAodTMyICopZmFkdW1wX2NvbmYtPmNwdV9ub3Rlc19idWZfdmFkZHI7CisJaWYgKCFpc19jcHVfZGF0YV92YWxpZCkKKwkJZ290byBvdXQ7CisKKwkvKgorCSAqIE9mZnNldCBmb3IgcmVnaXN0ZXIgZW50cmllcywgZW50cnkgc2l6ZSBhbmQgcmVnaXN0ZXJzIGNvdW50IGlzCisJICogZHVwbGljYXRlZCBpbiBldmVyeSB0aHJlYWQgaGVhZGVyIGluIGtlZXBpbmcgd2l0aCBIREFUIGZvcm1hdC4KKwkgKiBVc2UgdGhlc2UgdmFsdWVzIGZyb20gdGhlIGZpcnN0IHRocmVhZCBoZWFkZXIuCisJICovCisJdGhkciA9IChzdHJ1Y3QgaGRhdF9mYWR1bXBfdGhyZWFkX2hkciAqKWJ1ZnA7CisJcmVnc19vZmZzZXQgPSAob2Zmc2V0b2Yoc3RydWN0IGhkYXRfZmFkdW1wX3RocmVhZF9oZHIsIG9mZnNldCkgKworCQkgICAgICAgYmUzMl90b19jcHUodGhkci0+b2Zmc2V0KSk7CisJcmVnX2VzaXplID0gYmUzMl90b19jcHUodGhkci0+ZXNpemUpOworCXJlZ3NfY250ICA9IGJlMzJfdG9fY3B1KHRoZHItPmVjbnQpOworCisJcHJfZGVidWcoIi0tLS0tLS0tQ1BVIFN0YXRlIERhdGEtLS0tLS0tLS0tLS1cbiIpOworCXByX2RlYnVnKCJOdW1DcHVzICAgICA6ICV1XG4iLCBudW1fY3B1cyk7CisJcHJfZGVidWcoIlx0T2Zmc2V0OiAldSwgRW50cnkgc2l6ZTogJXUsIENudDogJXVcbiIsCisJCSByZWdzX29mZnNldCwgcmVnX2VzaXplLCByZWdzX2NudCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2NwdXM7IGkrKywgYnVmcCArPSBzaXplX3Blcl90aHJlYWQpIHsKKwkJdGhkciA9IChzdHJ1Y3QgaGRhdF9mYWR1bXBfdGhyZWFkX2hkciAqKWJ1ZnA7CisKKwkJdGhyZWFkX3BpciA9IGJlMzJfdG9fY3B1KHRoZHItPnBpcik7CisJCXByX2RlYnVnKCJbJTA0ZF0gUElSOiAweCV4LCBjb3JlIHN0YXRlOiAweCUwMnhcbiIsCisJCQkgaSwgdGhyZWFkX3BpciwgdGhkci0+Y29yZV9zdGF0ZSk7CisKKwkJLyoKKwkJICogSWYgdGhpcyBpcyBrZXJuZWwgaW5pdGlhdGVkIGNyYXNoLCBjcmFzaGluZ19jcHUgd291bGQgYmUgc2V0CisJCSAqIGFwcHJvcHJpYXRlbHkgYW5kIHJlZ2lzdGVyIGRhdGEgb2YgdGhlIGNyYXNoaW5nIENQVSBzYXZlZCBieQorCQkgKiBjcmFzaGluZyBrZXJuZWwuIEFkZCB0aGlzIHNhdmVkIHJlZ2lzdGVyIGRhdGEgb2YgY3Jhc2hpbmcgQ1BVCisJCSAqIHRvIGVsZiBub3RlcyBhbmQgcG9wdWxhdGUgdGhlIHB0X3JlZ3MgZm9yIHRoZSByZW1haW5pbmcgQ1BVcworCQkgKiBmcm9tIHJlZ2lzdGVyIHN0YXRlIGRhdGEgcHJvdmlkZWQgYnkgZmlybXdhcmUuCisJCSAqLworCQlpZiAoZmRoLT5jcmFzaGluZ19jcHUgPT0gdGhyZWFkX3BpcikgeworCQkJbm90ZV9idWYgPSBmYWR1bXBfcmVnc190b19lbGZfbm90ZXMobm90ZV9idWYsCisJCQkJCQkJICAgICZmZGgtPnJlZ3MpOworCQkJcHJfZGVidWcoIkNyYXNoaW5nIENQVSBQSVI6IDB4JXggLSBSMSA6IDB4JWx4LCBOSVAgOiAweCVseFxuIiwKKwkJCQkgZmRoLT5jcmFzaGluZ19jcHUsIGZkaC0+cmVncy5ncHJbMV0sCisJCQkJIGZkaC0+cmVncy5uaXApOworCQkJY29udGludWU7CisJCX0KKworCQkvKgorCQkgKiBSZWdpc3RlciBzdGF0ZSBkYXRhIG9mIE1BWCBjb3JlcyBpcyBwcm92aWRlZCBieSBmaXJtd2FyZSwKKwkJICogYnV0IHNvbWUgb2YgdGhpcyBjb3JlcyBtYXkgbm90IGJlIGFjdGl2ZS4gU28sIHdoaWxlCisJCSAqIHByb2Nlc3NpbmcgcmVnaXN0ZXIgc3RhdGUgZGF0YSwgY2hlY2sgY29yZSBzdGF0ZSBhbmQKKwkJICogc2tpcCB0aHJlYWRzIHRoYXQgYmVsb25nIHRvIGluYWN0aXZlIGNvcmVzLgorCQkgKi8KKwkJaWYgKHRoZHItPmNvcmVfc3RhdGUgPT0gSERBVF9GQURVTVBfQ09SRV9JTkFDVElWRSkKKwkJCWNvbnRpbnVlOworCisJCW9wYWxfZmFkdW1wX3JlYWRfcmVncygoYnVmcCArIHJlZ3Nfb2Zmc2V0KSwgcmVnc19jbnQsCisJCQkJICAgICAgcmVnX2VzaXplLCB0cnVlLCAmcmVncyk7CisJCW5vdGVfYnVmID0gZmFkdW1wX3JlZ3NfdG9fZWxmX25vdGVzKG5vdGVfYnVmLCAmcmVncyk7CisJCXByX2RlYnVnKCJDUFUgUElSOiAweCV4IC0gUjEgOiAweCVseCwgTklQIDogMHglbHhcbiIsCisJCQkgdGhyZWFkX3BpciwgcmVncy5ncHJbMV0sIHJlZ3MubmlwKTsKKwl9CisKK291dDoKKwkvKgorCSAqIENQVSBzdGF0ZSBkYXRhIGlzIGludmFsaWQvdW5zdXBwb3J0ZWQuIFRyeSBhcHBlbmRpbmcgY3Jhc2hpbmcgQ1BVJ3MKKwkgKiByZWdpc3RlciBkYXRhLCBpZiBpdCBpcyBzYXZlZCBieSB0aGUga2VybmVsLgorCSAqLworCWlmIChmYWR1bXBfY29uZi0+Y3B1X25vdGVzX2J1Zl92YWRkciA9PSAodTY0KW5vdGVfYnVmKSB7CisJCWlmIChmZGgtPmNyYXNoaW5nX2NwdSA9PSBGQURVTVBfQ1BVX1VOS05PV04pIHsKKwkJCWZhZHVtcF9mcmVlX2NwdV9ub3Rlc19idWYoKTsKKwkJCXJldHVybiAtRU5PREVWOworCQl9CisKKwkJcHJfd2FybigiV0FSTklORzogYXBwZW5kaW5nIG9ubHkgY3Jhc2hpbmcgQ1BVJ3MgcmVnaXN0ZXIgZGF0YVxuIik7CisJCW5vdGVfYnVmID0gZmFkdW1wX3JlZ3NfdG9fZWxmX25vdGVzKG5vdGVfYnVmLCAmKGZkaC0+cmVncykpOworCX0KKworCWZpbmFsX25vdGUobm90ZV9idWYpOworCisJcHJfZGVidWcoIlVwZGF0aW5nIGVsZmNvcmUgaGVhZGVyICglbGx4KSB3aXRoIGNwdSBub3Rlc1xuIiwKKwkJIGZkaC0+ZWxmY29yZWhkcl9hZGRyKTsKKwlmYWR1bXBfdXBkYXRlX2VsZmNvcmVfaGVhZGVyKF9fdmEoZmRoLT5lbGZjb3JlaGRyX2FkZHIpKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgb3BhbF9mYWR1bXBfcHJvY2VzcyhzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYpCit7CisJc3RydWN0IGZhZHVtcF9jcmFzaF9pbmZvX2hlYWRlciAqZmRoOworCWludCByYyA9IC1FSU5WQUw7CisKKwlpZiAoIW9wYWxfZmRtX2FjdGl2ZSB8fCAhZmFkdW1wX2NvbmYtPmZhZHVtcGhkcl9hZGRyKQorCQlyZXR1cm4gcmM7CisKKwkvKiBWYWxpZGF0ZSB0aGUgZmFkdW1wIGNyYXNoIGluZm8gaGVhZGVyICovCisJZmRoID0gX192YShmYWR1bXBfY29uZi0+ZmFkdW1waGRyX2FkZHIpOworCWlmIChmZGgtPm1hZ2ljX251bWJlciAhPSBGQURVTVBfQ1JBU0hfSU5GT19NQUdJQykgeworCQlwcl9lcnIoIkNyYXNoIGluZm8gaGVhZGVyIGlzIG5vdCB2YWxpZC5cbiIpOworCQlyZXR1cm4gcmM7CisJfQorCisjaWZkZWYgQ09ORklHX09QQUxfQ09SRQorCS8qCisJICogSWYgdGhpcyBpcyBhIGtlcm5lbCBpbml0aWF0ZWQgY3Jhc2gsIGNyYXNoaW5nX2NwdSB3b3VsZCBiZSBzZXQKKwkgKiBhcHByb3ByaWF0ZWx5IGFuZCByZWdpc3RlciBkYXRhIG9mIHRoZSBjcmFzaGluZyBDUFUgc2F2ZWQgYnkKKwkgKiBjcmFzaGluZyBrZXJuZWwuIEFkZCB0aGlzIHNhdmVkIHJlZ2lzdGVyIGRhdGEgb2YgY3Jhc2hpbmcgQ1BVCisJICogdG8gZWxmIG5vdGVzIGFuZCBwb3B1bGF0ZSB0aGUgcHRfcmVncyBmb3IgdGhlIHJlbWFpbmluZyBDUFVzCisJICogZnJvbSByZWdpc3RlciBzdGF0ZSBkYXRhIHByb3ZpZGVkIGJ5IGZpcm13YXJlLgorCSAqLworCWlmIChmZGgtPmNyYXNoaW5nX2NwdSAhPSBGQURVTVBfQ1BVX1VOS05PV04pCisJCWtlcm5lbF9pbml0aWF0ZWQgPSB0cnVlOworI2VuZGlmCisKKwlyYyA9IG9wYWxfZmFkdW1wX2J1aWxkX2NwdV9ub3RlcyhmYWR1bXBfY29uZiwgZmRoKTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKKworCS8qCisJICogV2UgYXJlIGRvbmUgdmFsaWRhdGluZyBkdW1wIGluZm8gYW5kIGVsZmNvcmUgaGVhZGVyIGlzIG5vdyByZWFkeQorCSAqIHRvIGJlIGV4cG9ydGVkLiBzZXQgZWxmY29yZWhkcl9hZGRyIHNvIHRoYXQgdm1jb3JlIG1vZHVsZSB3aWxsCisJICogZXhwb3J0IHRoZSBlbGZjb3JlIGhlYWRlciB0aHJvdWdoICcvcHJvYy92bWNvcmUnLgorCSAqLworCWVsZmNvcmVoZHJfYWRkciA9IGZkaC0+ZWxmY29yZWhkcl9hZGRyOworCisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgdm9pZCBvcGFsX2ZhZHVtcF9yZWdpb25fc2hvdyhzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYsCisJCQkJICAgIHN0cnVjdCBzZXFfZmlsZSAqbSkKK3sKKwljb25zdCBzdHJ1Y3Qgb3BhbF9mYWR1bXBfbWVtX3N0cnVjdCAqZmRtX3B0cjsKKwl1NjQgZHVtcGVkX2J5dGVzID0gMDsKKwlpbnQgaTsKKworCWlmIChmYWR1bXBfY29uZi0+ZHVtcF9hY3RpdmUpCisJCWZkbV9wdHIgPSBvcGFsX2ZkbV9hY3RpdmU7CisJZWxzZQorCQlmZG1fcHRyID0gb3BhbF9mZG07CisKKwlmb3IgKGkgPSAwOyBpIDwgZmRtX3B0ci0+cmVnaW9uX2NudDsgaSsrKSB7CisJCS8qCisJCSAqIE9ubHkgcmVnaW9ucyB0aGF0IGFyZSByZWdpc3RlcmVkIGZvciBNUElQTAorCQkgKiB3b3VsZCBoYXZlIGR1bXAgZGF0YS4KKwkJICovCisJCWlmICgoZmFkdW1wX2NvbmYtPmR1bXBfYWN0aXZlKSAmJgorCQkgICAgKGkgPCBmZG1fcHRyLT5yZWdpc3RlcmVkX3JlZ2lvbnMpKQorCQkJZHVtcGVkX2J5dGVzID0gZmRtX3B0ci0+cmduW2ldLnNpemU7CisKKwkJc2VxX3ByaW50ZihtLCAiRFVNUDogU3JjOiAlIzAxNmxseCwgRGVzdDogJSMwMTZsbHgsICIsCisJCQkgICBmZG1fcHRyLT5yZ25baV0uc3JjLCBmZG1fcHRyLT5yZ25baV0uZGVzdCk7CisJCXNlcV9wcmludGYobSwgIlNpemU6ICUjbGx4LCBEdW1wZWQ6ICUjbGx4IGJ5dGVzXG4iLAorCQkJICAgZmRtX3B0ci0+cmduW2ldLnNpemUsIGR1bXBlZF9ieXRlcyk7CisJfQorCisJLyogRHVtcCBpcyBhY3RpdmUuIFNob3cgcmVzZXJ2ZWQgYXJlYSBzdGFydCBhZGRyZXNzLiAqLworCWlmIChmYWR1bXBfY29uZi0+ZHVtcF9hY3RpdmUpIHsKKwkJc2VxX3ByaW50ZihtLCAiXG5NZW1vcnkgYWJvdmUgJSMwMTZseCBpcyByZXNlcnZlZCBmb3Igc2F2aW5nIGNyYXNoIGR1bXBcbiIsCisJCQkgICBmYWR1bXBfY29uZi0+cmVzZXJ2ZV9kdW1wX2FyZWFfc3RhcnQpOworCX0KK30KKworc3RhdGljIHZvaWQgb3BhbF9mYWR1bXBfdHJpZ2dlcihzdHJ1Y3QgZmFkdW1wX2NyYXNoX2luZm9faGVhZGVyICpmZGgsCisJCQkJY29uc3QgY2hhciAqbXNnKQoreworCWludCByYzsKKworCS8qCisJICogVW5saWtlIG9uIHBTZXJpZXMgcGxhdGZvcm0sIGxvZ2ljYWwgQ1BVIG51bWJlciBpcyBub3QgcHJvdmlkZWQKKwkgKiB3aXRoIGFyY2hpdGVjdGVkIHJlZ2lzdGVyIHN0YXRlIGRhdGEuIFNvLCBzdG9yZSB0aGUgY3Jhc2hpbmcKKwkgKiBDUFUncyBQSVIgaW5zdGVhZCB0byBwbHVnIHRoZSBhcHByb3ByaWF0ZSByZWdpc3RlciBkYXRhIGZvcgorCSAqIGNyYXNoaW5nIENQVSBpbiB0aGUgdm1jb3JlIGZpbGUuCisJICovCisJZmRoLT5jcmFzaGluZ19jcHUgPSAodTMyKW1mc3ByKFNQUk5fUElSKTsKKworCXJjID0gb3BhbF9jZWNfcmVib290MihPUEFMX1JFQk9PVF9NUElQTCwgbXNnKTsKKwlpZiAocmMgPT0gT1BBTF9VTlNVUFBPUlRFRCkgeworCQlwcl9lbWVyZygiUmVib290IHR5cGUgJWQgbm90IHN1cHBvcnRlZC5cbiIsCisJCQkgT1BBTF9SRUJPT1RfTVBJUEwpOworCX0gZWxzZSBpZiAocmMgPT0gT1BBTF9IQVJEV0FSRSkKKwkJcHJfZW1lcmcoIk5vIGJhY2tlbmQgc3VwcG9ydCBmb3IgTVBJUEwhXG4iKTsKK30KKworc3RhdGljIHN0cnVjdCBmYWR1bXBfb3BzIG9wYWxfZmFkdW1wX29wcyA9IHsKKwkuZmFkdW1wX2luaXRfbWVtX3N0cnVjdAkJPSBvcGFsX2ZhZHVtcF9pbml0X21lbV9zdHJ1Y3QsCisJLmZhZHVtcF9nZXRfbWV0YWRhdGFfc2l6ZQk9IG9wYWxfZmFkdW1wX2dldF9tZXRhZGF0YV9zaXplLAorCS5mYWR1bXBfc2V0dXBfbWV0YWRhdGEJCT0gb3BhbF9mYWR1bXBfc2V0dXBfbWV0YWRhdGEsCisJLmZhZHVtcF9nZXRfYm9vdG1lbV9taW4JCT0gb3BhbF9mYWR1bXBfZ2V0X2Jvb3RtZW1fbWluLAorCS5mYWR1bXBfcmVnaXN0ZXIJCT0gb3BhbF9mYWR1bXBfcmVnaXN0ZXIsCisJLmZhZHVtcF91bnJlZ2lzdGVyCQk9IG9wYWxfZmFkdW1wX3VucmVnaXN0ZXIsCisJLmZhZHVtcF9pbnZhbGlkYXRlCQk9IG9wYWxfZmFkdW1wX2ludmFsaWRhdGUsCisJLmZhZHVtcF9jbGVhbnVwCQkJPSBvcGFsX2ZhZHVtcF9jbGVhbnVwLAorCS5mYWR1bXBfcHJvY2VzcwkJCT0gb3BhbF9mYWR1bXBfcHJvY2VzcywKKwkuZmFkdW1wX3JlZ2lvbl9zaG93CQk9IG9wYWxfZmFkdW1wX3JlZ2lvbl9zaG93LAorCS5mYWR1bXBfdHJpZ2dlcgkJCT0gb3BhbF9mYWR1bXBfdHJpZ2dlciwKK307CisKK3ZvaWQgX19pbml0IG9wYWxfZmFkdW1wX2R0X3NjYW4oc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mLCB1NjQgbm9kZSkKK3sKKwljb25zdCBfX2JlMzIgKnByb3A7CisJdW5zaWduZWQgbG9uZyBkbjsKKwl1NjQgYWRkciA9IDA7CisJaW50IGksIGxlbjsKKwlzNjQgcmV0OworCisJLyoKKwkgKiBDaGVjayBpZiBGaXJtd2FyZS1Bc3Npc3RlZCBEdW1wIGlzIHN1cHBvcnRlZC4gaWYgeWVzLCBjaGVjaworCSAqIGlmIGR1bXAgaGFzIGJlZW4gaW5pdGlhdGVkIG9uIGxhc3QgcmVib290LgorCSAqLworCWRuID0gb2ZfZ2V0X2ZsYXRfZHRfc3Vibm9kZV9ieV9uYW1lKG5vZGUsICJkdW1wIik7CisJaWYgKGRuID09IC1GRFRfRVJSX05PVEZPVU5EKSB7CisJCXByX2RlYnVnKCJGQUR1bXAgc3VwcG9ydCBpcyBtaXNzaW5nIVxuIik7CisJCXJldHVybjsKKwl9CisKKwlpZiAoIW9mX2ZsYXRfZHRfaXNfY29tcGF0aWJsZShkbiwgImlibSxvcGFsLWR1bXAiKSkgeworCQlwcl9lcnIoIlN1cHBvcnQgbWlzc2luZyBmb3IgdGhpcyBmL3cgdmVyc2lvbiFcbiIpOworCQlyZXR1cm47CisJfQorCisJcHJvcCA9IG9mX2dldF9mbGF0X2R0X3Byb3AoZG4sICJmdy1sb2FkLWFyZWEiLCAmbGVuKTsKKwlpZiAocHJvcCkgeworCQkvKgorCQkgKiBFYWNoIGYvdyBsb2FkIGFyZWEgaXMgYW4gKGFkZHJlc3Msc2l6ZSkgcGFpciwKKwkJICogMiBjZWxscyBlYWNoLCB0b3RhbGxpbmcgNCBjZWxscyBwZXIgcmFuZ2UuCisJCSAqLworCQlmb3IgKGkgPSAwOyBpIDwgbGVuIC8gKHNpemVvZigqcHJvcCkgKiA0KTsgaSsrKSB7CisJCQl1NjQgYmFzZSwgZW5kOworCisJCQliYXNlID0gb2ZfcmVhZF9udW1iZXIocHJvcCArIChpICogNCkgKyAwLCAyKTsKKwkJCWVuZCA9IGJhc2U7CisJCQllbmQgKz0gb2ZfcmVhZF9udW1iZXIocHJvcCArIChpICogNCkgKyAyLCAyKTsKKwkJCWlmIChlbmQgPiBPUEFMX0ZBRFVNUF9NSU5fQk9PVF9NRU0pIHsKKwkJCQlwcl9lcnIoIkYvVyBsb2FkIGFyZWE6IDB4JWxseC0weCVsbHhcbiIsCisJCQkJICAgICAgIGJhc2UsIGVuZCk7CisJCQkJcHJfZXJyKCJGL1cgdmVyc2lvbiBub3Qgc3VwcG9ydGVkIVxuIik7CisJCQkJcmV0dXJuOworCQkJfQorCQl9CisJfQorCisJZmFkdW1wX2NvbmYtPm9wcwkJPSAmb3BhbF9mYWR1bXBfb3BzOworCWZhZHVtcF9jb25mLT5mYWR1bXBfc3VwcG9ydGVkCT0gMTsKKworCS8qCisJICogRmlybXdhcmUgc3VwcG9ydHMgMzItYml0IGZpZWxkIGZvciBzaXplLiBBbGlnbiBpdCB0byBQQUdFX1NJWkUKKwkgKiBhbmQgcmVxdWVzdCBmaXJtd2FyZSB0byBjb3B5IG11bHRpcGxlIGtlcm5lbCBib290IG1lbW9yeSByZWdpb25zLgorCSAqLworCWZhZHVtcF9jb25mLT5tYXhfY29weV9zaXplID0gX0FMSUdOX0RPV04oVTMyX01BWCwgUEFHRV9TSVpFKTsKKworCS8qCisJICogQ2hlY2sgaWYgZHVtcCBoYXMgYmVlbiBpbml0aWF0ZWQgb24gbGFzdCByZWJvb3QuCisJICovCisJcHJvcCA9IG9mX2dldF9mbGF0X2R0X3Byb3AoZG4sICJtcGlwbC1ib290IiwgTlVMTCk7CisJaWYgKCFwcm9wKQorCQlyZXR1cm47CisKKwlyZXQgPSBvcGFsX21waXBsX3F1ZXJ5X3RhZyhPUEFMX01QSVBMX1RBR19LRVJORUwsICZhZGRyKTsKKwlpZiAoKHJldCAhPSBPUEFMX1NVQ0NFU1MpIHx8ICFhZGRyKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGdldCBLZXJuZWwgbWV0YWRhdGEgKCVsbGQpXG4iLCByZXQpOworCQlyZXR1cm47CisJfQorCisJYWRkciA9IGJlNjRfdG9fY3B1KGFkZHIpOworCXByX2RlYnVnKCJLZXJuZWwgbWV0YWRhdGEgYWRkcjogJWxseFxuIiwgYWRkcik7CisKKwlvcGFsX2ZkbV9hY3RpdmUgPSBfX3ZhKGFkZHIpOworCWlmIChvcGFsX2ZkbV9hY3RpdmUtPnZlcnNpb24gIT0gT1BBTF9GQURVTVBfVkVSU0lPTikgeworCQlwcl93YXJuKCJTdXBwb3J0ZWQga2VybmVsIG1ldGFkYXRhIHZlcnNpb246ICV1LCBmb3VuZDogJWQhXG4iLAorCQkJT1BBTF9GQURVTVBfVkVSU0lPTiwgb3BhbF9mZG1fYWN0aXZlLT52ZXJzaW9uKTsKKwkJcHJfd2FybigiV0FSTklORzogS2VybmVsIG1ldGFkYXRhIGZvcm1hdCBtaXNtYXRjaCBpZGVudGlmaWVkISBDb3JlIGZpbGUgbWF5YmUgY29ycnVwdGVkLi5cbiIpOworCX0KKworCS8qIEtlcm5lbCByZWdpb25zIG5vdCByZWdpc3RlcmVkIHdpdGggZi93IGZvciBNUElQTCAqLworCWlmIChvcGFsX2ZkbV9hY3RpdmUtPnJlZ2lzdGVyZWRfcmVnaW9ucyA9PSAwKSB7CisJCW9wYWxfZmRtX2FjdGl2ZSA9IE5VTEw7CisJCXJldHVybjsKKwl9CisKKwlyZXQgPSBvcGFsX21waXBsX3F1ZXJ5X3RhZyhPUEFMX01QSVBMX1RBR19DUFUsICZhZGRyKTsKKwlpZiAoYWRkcikgeworCQlhZGRyID0gYmU2NF90b19jcHUoYWRkcik7CisJCXByX2RlYnVnKCJDUFUgbWV0YWRhdGEgYWRkcjogJWxseFxuIiwgYWRkcik7CisJCW9wYWxfY3B1X21ldGFkYXRhID0gX192YShhZGRyKTsKKwl9CisKKwlwcl9pbmZvKCJGaXJtd2FyZS1hc3Npc3RlZCBkdW1wIGlzIGFjdGl2ZS5cbiIpOworCWZhZHVtcF9jb25mLT5kdW1wX2FjdGl2ZSA9IDE7CisJb3BhbF9mYWR1bXBfZ2V0X2NvbmZpZyhmYWR1bXBfY29uZiwgb3BhbF9mZG1fYWN0aXZlKTsKK30KKyNlbmRpZiAvKiAhQ09ORklHX1BSRVNFUlZFX0ZBX0RVTVAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLWZhZHVtcC5oIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwtZmFkdW1wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFlOWVjZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLWZhZHVtcC5oCkBAIC0wLDAgKzEsMTQ2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlciAqLworLyoKKyAqIEZpcm13YXJlLUFzc2lzdGVkIER1bXAgc3VwcG9ydCBvbiBQT1dFUiBwbGF0Zm9ybSAoT1BBTCkuCisgKgorICogQ29weXJpZ2h0IDIwMTksIEhhcmkgQmF0aGluaSwgSUJNIENvcnBvcmF0aW9uLgorICovCisKKyNpZm5kZWYgX1BPV0VSTlZfT1BBTF9GQURVTVBfSAorI2RlZmluZSBfUE9XRVJOVl9PUEFMX0ZBRFVNUF9ICisKKyNpbmNsdWRlIDxhc20vcmVnLmg+CisKKy8qCisgKiBXaXRoIGtlcm5lbCAmIGluaXRyZCBsb2FkZWQgYXQgNTEyTUIgKHdpdGggMjU2TUIgc2l6ZSksIGVuZm9yY2UgYSBtaW5pbXVtCisgKiBib290IG1lbW9yeSBzaXplIG9mIDc2OE1CIHRvIGVuc3VyZSBmL3cgbG9hZGluZyBrZXJuZWwgYW5kIGluaXRyZCBkb2Vzbid0CisgKiBtZXNzIHdpdGggY3Jhc2gnZWQga2VybmVsJ3MgbWVtb3J5IGR1cmluZyBNUElQTC4KKyAqLworI2RlZmluZSBPUEFMX0ZBRFVNUF9NSU5fQk9PVF9NRU0JCSgweDMwMDAwMDAwVUwpCisKKy8qCisgKiBPUEFMIEZBRHVtcCBtZXRhZGF0YSBzdHJ1Y3R1cmUgZm9ybWF0IHZlcnNpb24KKyAqCisgKiBPUEFMIEZBRHVtcCBrZXJuZWwgbWV0YWRhdGEgc3RydWN0dXJlIHN0b3JlcyBrZXJuZWwgbWV0YWRhdGEgbmVlZGVkIHRvCisgKiByZWdpc3Rlci1mb3IvcHJvY2VzcyBjcmFzaCBkdW1wLiBGb3JtYXQgdmVyc2lvbiBpcyB1c2VkIHRvIGtlZXAgYSB0YWIgb24KKyAqIHRoZSBjaGFuZ2VzIGluIHRoZSBzdHJ1Y3R1cmUgZm9ybWF0LiBUaGUgY2hhbmdlcywgaWYgYW55LCB0byB0aGUgZm9ybWF0CisgKiBhcmUgZXhwZWN0ZWQgdG8gYmUgbWluaW1hbCBhbmQgYmFja3dhcmQgY29tcGF0aWJsZS4KKyAqLworI2RlZmluZSBPUEFMX0ZBRFVNUF9WRVJTSU9OCQkJMHgxCisKKy8qCisgKiBPUEFMIEZBRHVtcCBrZXJuZWwgbWV0YWRhdGEKKyAqCisgKiBUaGUgYWRkcmVzcyBvZiB0aGlzIHN0cnVjdHVyZSB3aWxsIGJlIHJlZ2lzdGVyZWQgd2l0aCBmL3cgZm9yIHJldHJpZXZpbmcKKyAqIGFuZCBwcm9jZXNzaW5nIGR1cmluZyBjcmFzaCBkdW1wLgorICovCitzdHJ1Y3Qgb3BhbF9mYWR1bXBfbWVtX3N0cnVjdCB7CisJdTgJdmVyc2lvbjsKKwl1OAlyZXNlcnZlZFszXTsKKwl1MTYJcmVnaW9uX2NudDsJCS8qIG51bWJlciBvZiByZWdpb25zICovCisJdTE2CXJlZ2lzdGVyZWRfcmVnaW9uczsJLyogUmVnaW9ucyByZWdpc3RlcmVkIGZvciBNUElQTCAqLworCXU2NAlmYWR1bXBoZHJfYWRkcjsKKwlzdHJ1Y3Qgb3BhbF9tcGlwbF9yZWdpb24JcmduW0ZBRFVNUF9NQVhfTUVNX1JFR1NdOworfSBfX3BhY2tlZDsKKworLyoKKyAqIENQVSBzdGF0ZSBkYXRhCisgKgorICogQ1BVIHN0YXRlIGRhdGEgaW5mb3JtYXRpb24gaXMgcHJvdmlkZWQgYnkgZi93LiBUaGUgZm9ybWF0IGZvciB0aGlzIGRhdGEKKyAqIGlzIGRlZmluZWQgaW4gdGhlIEhEQVQgc3BlYy4gVmVyc2lvbiBpcyB1c2VkIHRvIGtlZXAgYSB0YWIgb24gdGhlIGNoYW5nZXMKKyAqIGluIHRoaXMgQ1BVIHN0YXRlIGRhdGEgZm9ybWF0LiBDaGFuZ2VzIHRvIHRoaXMgZm9ybWF0IGFyZSB1bmxpa2VseSwgYnV0CisgKiBpZiB0aGVyZSBhcmUgYW55IGNoYW5nZXMsIHBsZWFzZSByZWZlciB0byBsYXRlc3QgSERBVCBzcGVjaWZpY2F0aW9uLgorICovCisjZGVmaW5lIEhEQVRfRkFEVU1QX0NQVV9EQVRBX1ZFUgkJMQorCisjZGVmaW5lIEhEQVRfRkFEVU1QX0NPUkVfSU5BQ1RJVkUJCSgweDBGKQorCisvKiBIREFUIHRocmVhZCBoZWFkZXIgZm9yIHJlZ2lzdGVyIGVudHJpZXMgKi8KK3N0cnVjdCBoZGF0X2ZhZHVtcF90aHJlYWRfaGRyIHsKKwlfX2JlMzIgIHBpcjsKKwkvKiAweDAwIC0gMHgwRiAtIFRoZSBjb3JyZXNwb25kaW5nIHN0b3Agc3RhdGUgb2YgdGhlIGNvcmUgKi8KKwl1OCAgICAgIGNvcmVfc3RhdGU7CisJdTggICAgICByZXNlcnZlZFszXTsKKworCV9fYmUzMglvZmZzZXQ7CS8qIE9mZnNldCB0byBSZWdpc3RlciBFbnRyaWVzIGFycmF5ICovCisJX19iZTMyCWVjbnQ7CS8qIE51bWJlciBvZiBlbnRyaWVzICovCisJX19iZTMyCWVzaXplOwkvKiBBbGxvYyBzaXplIG9mIGVhY2ggYXJyYXkgZW50cnkgaW4gYnl0ZXMgKi8KKwlfX2JlMzIJZWFjdHN6OwkvKiBBY3R1YWwgc2l6ZSBvZiBlYWNoIGFycmF5IGVudHJ5IGluIGJ5dGVzICovCit9IF9fcGFja2VkOworCisvKiBSZWdpc3RlciB0eXBlcyBwb3B1bGF0ZWQgYnkgZi93ICovCisjZGVmaW5lIEhEQVRfRkFEVU1QX1JFR19UWVBFX0dQUgkJMHgwMQorI2RlZmluZSBIREFUX0ZBRFVNUF9SRUdfVFlQRV9TUFIJCTB4MDIKKworLyogSUQgbnVtYmVycyB1c2VkIGJ5IGYvdyB3aGlsZSBwb3B1bGF0aW5nIGNlcnRhaW4gcmVnaXN0ZXJzICovCisjZGVmaW5lIEhEQVRfRkFEVU1QX1JFR19JRF9OSVAJCQkweDdEMAorI2RlZmluZSBIREFUX0ZBRFVNUF9SRUdfSURfTVNSCQkJMHg3RDEKKyNkZWZpbmUgSERBVF9GQURVTVBfUkVHX0lEX0NDUgkJCTB4N0QyCisKKy8qIEhEQVQgcmVnaXN0ZXIgZW50cnkuICovCitzdHJ1Y3QgaGRhdF9mYWR1bXBfcmVnX2VudHJ5IHsKKwlfX2JlMzIJCXJlZ190eXBlOworCV9fYmUzMgkJcmVnX251bTsKKwlfX2JlNjQJCXJlZ192YWw7Cit9IF9fcGFja2VkOworCitzdGF0aWMgaW5saW5lIHZvaWQgb3BhbF9mYWR1bXBfc2V0X3JlZ3ZhbF9yZWdudW0oc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCisJCQkJCQkgdTMyIHJlZ190eXBlLCB1MzIgcmVnX251bSwKKwkJCQkJCSB1NjQgcmVnX3ZhbCkKK3sKKwlpZiAocmVnX3R5cGUgPT0gSERBVF9GQURVTVBfUkVHX1RZUEVfR1BSKSB7CisJCWlmIChyZWdfbnVtIDwgMzIpCisJCQlyZWdzLT5ncHJbcmVnX251bV0gPSByZWdfdmFsOworCQlyZXR1cm47CisJfQorCisJc3dpdGNoIChyZWdfbnVtKSB7CisJY2FzZSBTUFJOX0NUUjoKKwkJcmVncy0+Y3RyID0gcmVnX3ZhbDsKKwkJYnJlYWs7CisJY2FzZSBTUFJOX0xSOgorCQlyZWdzLT5saW5rID0gcmVnX3ZhbDsKKwkJYnJlYWs7CisJY2FzZSBTUFJOX1hFUjoKKwkJcmVncy0+eGVyID0gcmVnX3ZhbDsKKwkJYnJlYWs7CisJY2FzZSBTUFJOX0RBUjoKKwkJcmVncy0+ZGFyID0gcmVnX3ZhbDsKKwkJYnJlYWs7CisJY2FzZSBTUFJOX0RTSVNSOgorCQlyZWdzLT5kc2lzciA9IHJlZ192YWw7CisJCWJyZWFrOworCWNhc2UgSERBVF9GQURVTVBfUkVHX0lEX05JUDoKKwkJcmVncy0+bmlwID0gcmVnX3ZhbDsKKwkJYnJlYWs7CisJY2FzZSBIREFUX0ZBRFVNUF9SRUdfSURfTVNSOgorCQlyZWdzLT5tc3IgPSByZWdfdmFsOworCQlicmVhazsKKwljYXNlIEhEQVRfRkFEVU1QX1JFR19JRF9DQ1I6CisJCXJlZ3MtPmNjciA9IHJlZ192YWw7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIGlubGluZSB2b2lkIG9wYWxfZmFkdW1wX3JlYWRfcmVncyhjaGFyICpidWZwLCB1bnNpZ25lZCBpbnQgcmVnc19jbnQsCisJCQkJCSB1bnNpZ25lZCBpbnQgcmVnX2VudHJ5X3NpemUsCisJCQkJCSBib29sIGNwdV9lbmRpYW4sCisJCQkJCSBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgaGRhdF9mYWR1bXBfcmVnX2VudHJ5ICpyZWdfZW50cnk7CisJdTY0IHZhbDsKKwlpbnQgaTsKKworCW1lbXNldChyZWdzLCAwLCBzaXplb2Yoc3RydWN0IHB0X3JlZ3MpKTsKKworCWZvciAoaSA9IDA7IGkgPCByZWdzX2NudDsgaSsrLCBidWZwICs9IHJlZ19lbnRyeV9zaXplKSB7CisJCXJlZ19lbnRyeSA9IChzdHJ1Y3QgaGRhdF9mYWR1bXBfcmVnX2VudHJ5ICopYnVmcDsKKwkJdmFsID0gKGNwdV9lbmRpYW4gPyBiZTY0X3RvX2NwdShyZWdfZW50cnktPnJlZ192YWwpIDoKKwkJICAgICAgIHJlZ19lbnRyeS0+cmVnX3ZhbCk7CisJCW9wYWxfZmFkdW1wX3NldF9yZWd2YWxfcmVnbnVtKHJlZ3MsCisJCQkJCSAgICAgIGJlMzJfdG9fY3B1KHJlZ19lbnRyeS0+cmVnX3R5cGUpLAorCQkJCQkgICAgICBiZTMyX3RvX2NwdShyZWdfZW50cnktPnJlZ19udW0pLAorCQkJCQkgICAgICB2YWwpOworCX0KK30KKworI2VuZGlmIC8qIF9QT1dFUk5WX09QQUxfRkFEVU1QX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLWltYy5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwtaW1jLmMKaW5kZXggMTg2MTA5Yi4uZTA0YjIwNiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwtaW1jLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwtaW1jLmMKQEAgLTUzLDkgKzUzLDkgQEAgc3RhdGljIHZvaWQgZXhwb3J0X2ltY19tb2RlX2FuZF9jbWQoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCQkJCSAgICBzdHJ1Y3QgaW1jX3BtdSAqcG11X3B0cikKIHsKIAlzdGF0aWMgdTY0IGxvYywgKmltY19tb2RlX2FkZHIsICppbWNfY21kX2FkZHI7Ci0JaW50IGNoaXAgPSAwLCBuaWQ7CiAJY2hhciBtb2RlWzE2XSwgY21kWzE2XTsKIAl1MzIgY2Jfb2Zmc2V0OworCXN0cnVjdCBpbWNfbWVtX2luZm8gKnB0ciA9IHBtdV9wdHItPm1lbV9pbmZvOwogCiAJaW1jX2RlYnVnZnNfcGFyZW50ID0gZGVidWdmc19jcmVhdGVfZGlyKCJpbWMiLCBwb3dlcnBjX2RlYnVnZnNfcm9vdCk7CiAKQEAgLTY5LDIwICs2OSwyMCBAQCBzdGF0aWMgdm9pZCBleHBvcnRfaW1jX21vZGVfYW5kX2NtZChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJjYl9vZmZzZXQiLCAmY2Jfb2Zmc2V0KSkKIAkJY2Jfb2Zmc2V0ID0gSU1DX0NOVExfQkxLX09GRlNFVDsKIAotCWZvcl9lYWNoX25vZGUobmlkKSB7Ci0JCWxvYyA9ICh1NjQpKHBtdV9wdHItPm1lbV9pbmZvW2NoaXBdLnZiYXNlKSArIGNiX29mZnNldDsKKwl3aGlsZSAocHRyLT52YmFzZSAhPSBOVUxMKSB7CisJCWxvYyA9ICh1NjQpKHB0ci0+dmJhc2UpICsgY2Jfb2Zmc2V0OwogCQlpbWNfbW9kZV9hZGRyID0gKHU2NCAqKShsb2MgKyBJTUNfQ05UTF9CTEtfTU9ERV9PRkZTRVQpOwotCQlzcHJpbnRmKG1vZGUsICJpbWNfbW9kZV8lZCIsIG5pZCk7CisJCXNwcmludGYobW9kZSwgImltY19tb2RlXyVkIiwgKHUzMikocHRyLT5pZCkpOwogCQlpZiAoIWltY19kZWJ1Z2ZzX2NyZWF0ZV94NjQobW9kZSwgMDYwMCwgaW1jX2RlYnVnZnNfcGFyZW50LAogCQkJCQkgICAgaW1jX21vZGVfYWRkcikpCiAJCQlnb3RvIGVycjsKIAogCQlpbWNfY21kX2FkZHIgPSAodTY0ICopKGxvYyArIElNQ19DTlRMX0JMS19DTURfT0ZGU0VUKTsKLQkJc3ByaW50ZihjbWQsICJpbWNfY21kXyVkIiwgbmlkKTsKKwkJc3ByaW50ZihjbWQsICJpbWNfY21kXyVkIiwgKHUzMikocHRyLT5pZCkpOwogCQlpZiAoIWltY19kZWJ1Z2ZzX2NyZWF0ZV94NjQoY21kLCAwNjAwLCBpbWNfZGVidWdmc19wYXJlbnQsCiAJCQkJCSAgICBpbWNfY21kX2FkZHIpKQogCQkJZ290byBlcnI7Ci0JCWNoaXArKzsKKwkJcHRyKys7CiAJfQogCXJldHVybjsKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwtbXNnbG9nLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvb3BhbC1tc2dsb2cuYwppbmRleCBkYzUxZDAzLi5kMjZkYTE5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvb3BhbC1tc2dsb2cuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvb3BhbC1tc2dsb2cuYwpAQCAtMjksMjMgKzI5LDIzIEBAIHN0cnVjdCBtZW1jb25zIHsKIAogc3RhdGljIHN0cnVjdCBtZW1jb25zICpvcGFsX21lbWNvbnMgPSBOVUxMOwogCi1zc2l6ZV90IG9wYWxfbXNnbG9nX2NvcHkoY2hhciAqdG8sIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCkKK3NzaXplX3QgbWVtY29uc19jb3B5KHN0cnVjdCBtZW1jb25zICptYywgY2hhciAqdG8sIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCkKIHsKIAljb25zdCBjaGFyICpjb25idWY7CiAJc3NpemVfdCByZXQ7CiAJc2l6ZV90IGZpcnN0X3JlYWQgPSAwOwogCXVpbnQzMl90IG91dF9wb3MsIGF2YWlsOwogCi0JaWYgKCFvcGFsX21lbWNvbnMpCisJaWYgKCFtYykKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlvdXRfcG9zID0gYmUzMl90b19jcHUoUkVBRF9PTkNFKG9wYWxfbWVtY29ucy0+b3V0X3BvcykpOworCW91dF9wb3MgPSBiZTMyX3RvX2NwdShSRUFEX09OQ0UobWMtPm91dF9wb3MpKTsKIAogCS8qIE5vdyB3ZSd2ZSByZWFkIG91dF9wb3MsIHB1dCBhIGJhcnJpZXIgaW4gYmVmb3JlIHJlYWRpbmcgdGhlIG5ldwogCSAqIGRhdGEgaXQgcG9pbnRzIHRvIGluIGNvbmJ1Zi4gKi8KIAlzbXBfcm1iKCk7CiAKLQljb25idWYgPSBwaHlzX3RvX3ZpcnQoYmU2NF90b19jcHUob3BhbF9tZW1jb25zLT5vYnVmX3BoeXMpKTsKKwljb25idWYgPSBwaHlzX3RvX3ZpcnQoYmU2NF90b19jcHUobWMtPm9idWZfcGh5cykpOwogCiAJLyogV2hlbiB0aGUgYnVmZmVyIGhhcyB3cmFwcGVkLCByZWFkIGZyb20gdGhlIG91dF9wb3MgbWFya2VyIHRvIHRoZSBlbmQKIAkgKiBvZiB0aGUgYnVmZmVyLCBhbmQgdGhlbiByZWFkIHRoZSByZW1haW5pbmcgZGF0YSBhcyBpbiB0aGUgdW4td3JhcHBlZApAQCAtNTMsNyArNTMsNyBAQCBzc2l6ZV90IG9wYWxfbXNnbG9nX2NvcHkoY2hhciAqdG8sIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCkKIAlpZiAob3V0X3BvcyAmIE1FTUNPTlNfT1VUX1BPU19XUkFQKSB7CiAKIAkJb3V0X3BvcyAmPSBNRU1DT05TX09VVF9QT1NfTUFTSzsKLQkJYXZhaWwgPSBiZTMyX3RvX2NwdShvcGFsX21lbWNvbnMtPm9idWZfc2l6ZSkgLSBvdXRfcG9zOworCQlhdmFpbCA9IGJlMzJfdG9fY3B1KG1jLT5vYnVmX3NpemUpIC0gb3V0X3BvczsKIAogCQlyZXQgPSBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcih0bywgY291bnQsICZwb3MsCiAJCQkJY29uYnVmICsgb3V0X3BvcywgYXZhaWwpOwpAQCAtNzEsNyArNzEsNyBAQCBzc2l6ZV90IG9wYWxfbXNnbG9nX2NvcHkoY2hhciAqdG8sIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCkKIAl9CiAKIAkvKiBTYW5pdHkgY2hlY2suIFRoZSBmaXJtd2FyZSBzaG91bGQgbm90IGRvIHRoaXMgdG8gdXMuICovCi0JaWYgKG91dF9wb3MgPiBiZTMyX3RvX2NwdShvcGFsX21lbWNvbnMtPm9idWZfc2l6ZSkpIHsKKwlpZiAob3V0X3BvcyA+IGJlMzJfdG9fY3B1KG1jLT5vYnVmX3NpemUpKSB7CiAJCXByX2VycigiT1BBTDogbWVtb3J5IGNvbnNvbGUgY29ycnVwdGlvbi4gQWJvcnRpbmcgcmVhZC5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC04Niw2ICs4NiwxMSBAQCBzc2l6ZV90IG9wYWxfbXNnbG9nX2NvcHkoY2hhciAqdG8sIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCkKIAlyZXR1cm4gcmV0OwogfQogCitzc2l6ZV90IG9wYWxfbXNnbG9nX2NvcHkoY2hhciAqdG8sIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCkKK3sKKwlyZXR1cm4gbWVtY29uc19jb3B5KG9wYWxfbWVtY29ucywgdG8sIHBvcywgY291bnQpOworfQorCiBzdGF0aWMgc3NpemVfdCBvcGFsX21zZ2xvZ19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJCQlzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYmluX2F0dHIsIGNoYXIgKnRvLAogCQkJCWxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCkKQEAgLTk4LDMyICsxMDMsNDggQEAgc3RhdGljIHN0cnVjdCBiaW5fYXR0cmlidXRlIG9wYWxfbXNnbG9nX2F0dHIgPSB7CiAJLnJlYWQgPSBvcGFsX21zZ2xvZ19yZWFkCiB9OwogCi12b2lkIF9faW5pdCBvcGFsX21zZ2xvZ19pbml0KHZvaWQpCitzdHJ1Y3QgbWVtY29ucyAqbWVtY29uc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgY29uc3QgY2hhciAqbWNfcHJvcF9uYW1lKQogewogCXU2NCBtY2FkZHI7CiAJc3RydWN0IG1lbWNvbnMgKm1jOwogCi0JaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTY0KG9wYWxfbm9kZSwgImlibSxvcGFsLW1lbWNvbnMiLCAmbWNhZGRyKSkgewotCQlwcl93YXJuKCJPUEFMOiBQcm9wZXJ0eSBpYm0sb3BhbC1tZW1jb25zIG5vdCBmb3VuZCwgbm8gbWVzc2FnZSBsb2dcbiIpOwotCQlyZXR1cm47CisJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTY0KG5vZGUsIG1jX3Byb3BfbmFtZSwgJm1jYWRkcikpIHsKKwkJcHJfd2FybigiJXMgcHJvcGVydHkgbm90IGZvdW5kLCBubyBtZXNzYWdlIGxvZ1xuIiwKKwkJCW1jX3Byb3BfbmFtZSk7CisJCWdvdG8gb3V0X2VycjsKIAl9CiAKIAltYyA9IHBoeXNfdG9fdmlydChtY2FkZHIpOwogCWlmICghbWMpIHsKLQkJcHJfd2FybigiT1BBTDogbWVtb3J5IGNvbnNvbGUgYWRkcmVzcyBpcyBpbnZhbGlkXG4iKTsKLQkJcmV0dXJuOworCQlwcl93YXJuKCJtZW1vcnkgY29uc29sZSBhZGRyZXNzIGlzIGludmFsaWRcbiIpOworCQlnb3RvIG91dF9lcnI7CiAJfQogCiAJaWYgKGJlNjRfdG9fY3B1KG1jLT5tYWdpYykgIT0gTUVNQ09OU19NQUdJQykgewotCQlwcl93YXJuKCJPUEFMOiBtZW1vcnkgY29uc29sZSB2ZXJzaW9uIGlzIGludmFsaWRcbiIpOworCQlwcl93YXJuKCJtZW1vcnkgY29uc29sZSB2ZXJzaW9uIGlzIGludmFsaWRcbiIpOworCQlnb3RvIG91dF9lcnI7CisJfQorCisJcmV0dXJuIG1jOworCitvdXRfZXJyOgorCXJldHVybiBOVUxMOworfQorCit1MzIgbWVtY29uc19nZXRfc2l6ZShzdHJ1Y3QgbWVtY29ucyAqbWMpCit7CisJcmV0dXJuIGJlMzJfdG9fY3B1KG1jLT5pYnVmX3NpemUpICsgYmUzMl90b19jcHUobWMtPm9idWZfc2l6ZSk7Cit9CisKK3ZvaWQgX19pbml0IG9wYWxfbXNnbG9nX2luaXQodm9pZCkKK3sKKwlvcGFsX21lbWNvbnMgPSBtZW1jb25zX2luaXQob3BhbF9ub2RlLCAiaWJtLG9wYWwtbWVtY29ucyIpOworCWlmICghb3BhbF9tZW1jb25zKSB7CisJCXByX3dhcm4oIk9QQUw6IG1lbWNvbnMgZmFpbGVkIHRvIGxvYWQgZnJvbSBpYm0sb3BhbC1tZW1jb25zXG4iKTsKIAkJcmV0dXJuOwogCX0KIAotCS8qIFJlcG9ydCBtYXhpbXVtIHNpemUgKi8KLQlvcGFsX21zZ2xvZ19hdHRyLnNpemUgPSAgYmUzMl90b19jcHUobWMtPmlidWZfc2l6ZSkgKwotCQliZTMyX3RvX2NwdShtYy0+b2J1Zl9zaXplKTsKLQotCW9wYWxfbWVtY29ucyA9IG1jOworCW9wYWxfbXNnbG9nX2F0dHIuc2l6ZSA9IG1lbWNvbnNfZ2V0X3NpemUob3BhbF9tZW1jb25zKTsKIH0KIAogdm9pZCBfX2luaXQgb3BhbF9tc2dsb2dfc3lzZnNfaW5pdCh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwtcHJkLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvb3BhbC1wcmQuYwppbmRleCBlMDcyYmYxLi40NWY0MjIzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvb3BhbC1wcmQuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvb3BhbC1wcmQuYwpAQCAtMzQyLDcgKzM0Miw3IEBAIHN0YXRpYyBpbnQgb3BhbF9wcmRfbXNnX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCiAJaW50IG1zZ19zaXplLCBpdGVtX3NpemU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCWlmIChtc2dfdHlwZSAhPSBPUEFMX01TR19QUkQpCisJaWYgKG1zZ190eXBlICE9IE9QQUxfTVNHX1BSRCAmJiBtc2dfdHlwZSAhPSBPUEFMX01TR19QUkQyKQogCQlyZXR1cm4gMDsKIAogCS8qIENhbGN1bGF0ZSB0b3RhbCBzaXplIG9mIHRoZSBtZXNzYWdlIGFuZCBpdGVtIHdlIG5lZWQgdG8gc3RvcmUuIFRoZQpAQCAtMzkzLDYgKzM5MywxMiBAQCBzdGF0aWMgaW50IG9wYWxfcHJkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiByYzsKIAl9CiAKKwlyYyA9IG9wYWxfbWVzc2FnZV9ub3RpZmllcl9yZWdpc3RlcihPUEFMX01TR19QUkQyLCAmb3BhbF9wcmRfZXZlbnRfbmIpOworCWlmIChyYykgeworCQlwcl9lcnIoIkNvdWxkbid0IHJlZ2lzdGVyIFBSRDIgZXZlbnQgbm90aWZpZXJcbiIpOworCQlyZXR1cm4gcmM7CisJfQorCiAJcmMgPSBtaXNjX3JlZ2lzdGVyKCZvcGFsX3ByZF9kZXYpOwogCWlmIChyYykgewogCQlwcl9lcnIoImZhaWxlZCB0byByZWdpc3RlciBtaXNjZGV2XG4iKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLXhzY29tLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvb3BhbC14c2NvbS5jCmluZGV4IDY2NDMwZWUuLmZkNTEwZDkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLXhzY29tLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwteHNjb20uYwpAQCAtMSw3ICsxLDEwIEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgogLyoKLSAqIFBvd2VyTlYgTFBDIGJ1cyBoYW5kbGluZy4KKyAqIFBvd2VyTlYgU0NPTSBidXMgZGVidWdmcyBpbnRlcmZhY2UKICAqCisgKiBDb3B5cmlnaHQgMjAxMCBCZW5qYW1pbiBIZXJyZW5zY2htaWR0LCBJQk0gQ29ycAorICogICAgICAgICAgICAgICAgPGJlbmhAa2VybmVsLmNyYXNoaW5nLm9yZz4KKyAqICAgICBhbmQgICAgICAgIERhdmlkIEdpYnNvbiwgSUJNIENvcnBvcmF0aW9uLgogICogQ29weXJpZ2h0IDIwMTMgSUJNIENvcnAuCiAgKi8KIApAQCAtMTAsNjIgKzEzLDEzIEBACiAjaW5jbHVkZSA8bGludXgvYnVnLmg+CiAjaW5jbHVkZSA8bGludXgvZ2ZwLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KIAogI2luY2x1ZGUgPGFzbS9tYWNoZGVwLmg+CiAjaW5jbHVkZSA8YXNtL2Zpcm13YXJlLmg+CiAjaW5jbHVkZSA8YXNtL29wYWwuaD4KLSNpbmNsdWRlIDxhc20vc2NvbS5oPgotCi0vKgotICogV2UgY291bGQgcHJvYmFibHkgZml0IHRoYXQgaW5zaWRlIHRoZSBzY29tX21hcF90Ci0gKiB3aGljaCBpcyBhIHZvaWQqIGFmdGVyIGFsbCBidXQgaXQncyByZWFsbHkgdG9vIHVnbHkKLSAqIHNvIGxldCdzIGttYWxsb2MgaXQgZm9yIG5vdwotICovCi1zdHJ1Y3Qgb3BhbF9zY29tX21hcCB7Ci0JdWludDMyX3QgY2hpcDsKLQl1aW50NjRfdCBhZGRyOwotfTsKLQotc3RhdGljIHNjb21fbWFwX3Qgb3BhbF9zY29tX21hcChzdHJ1Y3QgZGV2aWNlX25vZGUgKmRldiwgdTY0IHJlZywgdTY0IGNvdW50KQotewotCXN0cnVjdCBvcGFsX3Njb21fbWFwICptOwotCWNvbnN0IF9fYmUzMiAqZ2NpZDsKLQotCWlmICghb2ZfZ2V0X3Byb3BlcnR5KGRldiwgInNjb20tY29udHJvbGxlciIsIE5VTEwpKSB7Ci0JCXByX2VycigiJXM6IGRldmljZSAlcE9GIGlzIG5vdCBhIFNDT00gY29udHJvbGxlclxuIiwKLQkJCV9fZnVuY19fLCBkZXYpOwotCQlyZXR1cm4gU0NPTV9NQVBfSU5WQUxJRDsKLQl9Ci0JZ2NpZCA9IG9mX2dldF9wcm9wZXJ0eShkZXYsICJpYm0sY2hpcC1pZCIsIE5VTEwpOwotCWlmICghZ2NpZCkgewotCQlwcl9lcnIoIiVzOiBkZXZpY2UgJXBPRiBoYXMgbm8gaWJtLGNoaXAtaWRcbiIsCi0JCQlfX2Z1bmNfXywgZGV2KTsKLQkJcmV0dXJuIFNDT01fTUFQX0lOVkFMSUQ7Ci0JfQotCW0gPSBrbWFsbG9jKHNpemVvZigqbSksIEdGUF9LRVJORUwpOwotCWlmICghbSkKLQkJcmV0dXJuIE5VTEw7Ci0JbS0+Y2hpcCA9IGJlMzJfdG9fY3B1cChnY2lkKTsKLQltLT5hZGRyID0gcmVnOwotCi0JcmV0dXJuIChzY29tX21hcF90KW07Ci19Ci0KLXN0YXRpYyB2b2lkIG9wYWxfc2NvbV91bm1hcChzY29tX21hcF90IG1hcCkKLXsKLQlrZnJlZShtYXApOwotfQotCi1zdGF0aWMgaW50IG9wYWxfeHNjb21fZXJyX3hsYXRlKGludDY0X3QgcmMpCi17Ci0Jc3dpdGNoKHJjKSB7Ci0JY2FzZSAwOgotCQlyZXR1cm4gMDsKLQkvKiBBZGQgbW9yZSB0cmFuc2xhdGlvbnMgaWYgbmVjZXNzYXJ5ICovCi0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU87Ci0JfQotfQorI2luY2x1ZGUgPGFzbS9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8YXNtL3Byb20uaD4KIAogc3RhdGljIHU2NCBvcGFsX3Njb21fdW5tYW5nbGUodTY0IGFkZHIpCiB7CkBAIC05OCwzOSArNTIsMTU0IEBAIHN0YXRpYyB1NjQgb3BhbF9zY29tX3VubWFuZ2xlKHU2NCBhZGRyKQogCXJldHVybiBhZGRyOwogfQogCi1zdGF0aWMgaW50IG9wYWxfc2NvbV9yZWFkKHNjb21fbWFwX3QgbWFwLCB1NjQgcmVnLCB1NjQgKnZhbHVlKQorc3RhdGljIGludCBvcGFsX3Njb21fcmVhZCh1aW50MzJfdCBjaGlwLCB1aW50NjRfdCBhZGRyLCB1NjQgcmVnLCB1NjQgKnZhbHVlKQogewotCXN0cnVjdCBvcGFsX3Njb21fbWFwICptID0gbWFwOwogCWludDY0X3QgcmM7CiAJX19iZTY0IHY7CiAKLQlyZWcgPSBvcGFsX3Njb21fdW5tYW5nbGUobS0+YWRkciArIHJlZyk7Ci0JcmMgPSBvcGFsX3hzY29tX3JlYWQobS0+Y2hpcCwgcmVnLCAoX19iZTY0ICopX19wYSgmdikpOworCXJlZyA9IG9wYWxfc2NvbV91bm1hbmdsZShhZGRyICsgcmVnKTsKKwlyYyA9IG9wYWxfeHNjb21fcmVhZChjaGlwLCByZWcsIChfX2JlNjQgKilfX3BhKCZ2KSk7CisJaWYgKHJjKSB7CisJCSp2YWx1ZSA9IDB4ZmZmZmZmZmZmZmZmZmZmZnVsOworCQlyZXR1cm4gLUVJTzsKKwl9CiAJKnZhbHVlID0gYmU2NF90b19jcHUodik7Ci0JcmV0dXJuIG9wYWxfeHNjb21fZXJyX3hsYXRlKHJjKTsKLX0KLQotc3RhdGljIGludCBvcGFsX3Njb21fd3JpdGUoc2NvbV9tYXBfdCBtYXAsIHU2NCByZWcsIHU2NCB2YWx1ZSkKLXsKLQlzdHJ1Y3Qgb3BhbF9zY29tX21hcCAqbSA9IG1hcDsKLQlpbnQ2NF90IHJjOwotCi0JcmVnID0gb3BhbF9zY29tX3VubWFuZ2xlKG0tPmFkZHIgKyByZWcpOwotCXJjID0gb3BhbF94c2NvbV93cml0ZShtLT5jaGlwLCByZWcsIHZhbHVlKTsKLQlyZXR1cm4gb3BhbF94c2NvbV9lcnJfeGxhdGUocmMpOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNjb21fY29udHJvbGxlciBvcGFsX3Njb21fY29udHJvbGxlciA9IHsKLQkubWFwCT0gb3BhbF9zY29tX21hcCwKLQkudW5tYXAJPSBvcGFsX3Njb21fdW5tYXAsCi0JLnJlYWQJPSBvcGFsX3Njb21fcmVhZCwKLQkud3JpdGUJPSBvcGFsX3Njb21fd3JpdGUKLX07Ci0KLXN0YXRpYyBpbnQgb3BhbF94c2NvbV9pbml0KHZvaWQpCi17Ci0JaWYgKGZpcm13YXJlX2hhc19mZWF0dXJlKEZXX0ZFQVRVUkVfT1BBTCkpCi0JCXNjb21faW5pdCgmb3BhbF9zY29tX2NvbnRyb2xsZXIpOwogCXJldHVybiAwOwogfQotbWFjaGluZV9hcmNoX2luaXRjYWxsKHBvd2VybnYsIG9wYWxfeHNjb21faW5pdCk7CisKK3N0YXRpYyBpbnQgb3BhbF9zY29tX3dyaXRlKHVpbnQzMl90IGNoaXAsIHVpbnQ2NF90IGFkZHIsIHU2NCByZWcsIHU2NCB2YWx1ZSkKK3sKKwlpbnQ2NF90IHJjOworCisJcmVnID0gb3BhbF9zY29tX3VubWFuZ2xlKGFkZHIgKyByZWcpOworCXJjID0gb3BhbF94c2NvbV93cml0ZShjaGlwLCByZWcsIHZhbHVlKTsKKwlpZiAocmMpCisJCXJldHVybiAtRUlPOworCXJldHVybiAwOworfQorCitzdHJ1Y3Qgc2NvbV9kZWJ1Z19lbnRyeSB7CisJdTMyIGNoaXA7CisJc3RydWN0IGRlYnVnZnNfYmxvYl93cmFwcGVyIHBhdGg7CisJY2hhciBuYW1lWzE2XTsKK307CisKK3N0YXRpYyBzc2l6ZV90IHNjb21fZGVidWdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCQkgICAgICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IHNjb21fZGVidWdfZW50cnkgKmVudCA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwl1NjQgX191c2VyICp1YnVmNjQgPSAodTY0IF9fdXNlciAqKXVidWY7CisJbG9mZl90IG9mZiA9ICpwcG9zOworCXNzaXplX3QgZG9uZSA9IDA7CisJdTY0IHJlZywgcmVnX2Jhc2UsIHJlZ19jbnQsIHZhbDsKKwlpbnQgcmM7CisKKwlpZiAob2ZmIDwgMCB8fCAob2ZmICYgNykgfHwgKGNvdW50ICYgNykpCisJCXJldHVybiAtRUlOVkFMOworCXJlZ19iYXNlID0gb2ZmID4+IDM7CisJcmVnX2NudCA9IGNvdW50ID4+IDM7CisKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IHJlZ19jbnQ7IHJlZysrKSB7CisJCXJjID0gb3BhbF9zY29tX3JlYWQoZW50LT5jaGlwLCByZWdfYmFzZSwgcmVnLCAmdmFsKTsKKwkJaWYgKCFyYykKKwkJCXJjID0gcHV0X3VzZXIodmFsLCB1YnVmNjQpOworCQlpZiAocmMpIHsKKwkJCWlmICghZG9uZSkKKwkJCQlkb25lID0gcmM7CisJCQlicmVhazsKKwkJfQorCQl1YnVmNjQrKzsKKwkJKnBwb3MgKz0gODsKKwkJZG9uZSArPSA4OworCX0KKwlyZXR1cm4gZG9uZTsKK30KKworc3RhdGljIHNzaXplX3Qgc2NvbV9kZWJ1Z193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCQkJc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IHNjb21fZGVidWdfZW50cnkgKmVudCA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwl1NjQgX191c2VyICp1YnVmNjQgPSAodTY0IF9fdXNlciAqKXVidWY7CisJbG9mZl90IG9mZiA9ICpwcG9zOworCXNzaXplX3QgZG9uZSA9IDA7CisJdTY0IHJlZywgcmVnX2Jhc2UsIHJlZ19jbnQsIHZhbDsKKwlpbnQgcmM7CisKKwlpZiAob2ZmIDwgMCB8fCAob2ZmICYgNykgfHwgKGNvdW50ICYgNykpCisJCXJldHVybiAtRUlOVkFMOworCXJlZ19iYXNlID0gb2ZmID4+IDM7CisJcmVnX2NudCA9IGNvdW50ID4+IDM7CisKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IHJlZ19jbnQ7IHJlZysrKSB7CisJCXJjID0gZ2V0X3VzZXIodmFsLCB1YnVmNjQpOworCQlpZiAoIXJjKQorCQkJcmMgPSBvcGFsX3Njb21fd3JpdGUoZW50LT5jaGlwLCByZWdfYmFzZSwgcmVnLCAgdmFsKTsKKwkJaWYgKHJjKSB7CisJCQlpZiAoIWRvbmUpCisJCQkJZG9uZSA9IHJjOworCQkJYnJlYWs7CisJCX0KKwkJdWJ1ZjY0Kys7CisJCWRvbmUgKz0gODsKKwl9CisJcmV0dXJuIGRvbmU7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHNjb21fZGVidWdfZm9wcyA9IHsKKwkucmVhZCA9CQlzY29tX2RlYnVnX3JlYWQsCisJLndyaXRlID0Jc2NvbV9kZWJ1Z193cml0ZSwKKwkub3BlbiA9CQlzaW1wbGVfb3BlbiwKKwkubGxzZWVrID0JZGVmYXVsdF9sbHNlZWssCit9OworCitzdGF0aWMgaW50IHNjb21fZGVidWdfaW5pdF9vbmUoc3RydWN0IGRlbnRyeSAqcm9vdCwgc3RydWN0IGRldmljZV9ub2RlICpkbiwKKwkJCSAgICAgICBpbnQgY2hpcCkKK3sKKwlzdHJ1Y3Qgc2NvbV9kZWJ1Z19lbnRyeSAqZW50OworCXN0cnVjdCBkZW50cnkgKmRpcjsKKworCWVudCA9IGt6YWxsb2Moc2l6ZW9mKCplbnQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWVudCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwllbnQtPmNoaXAgPSBjaGlwOworCXNucHJpbnRmKGVudC0+bmFtZSwgMTYsICIlMDh4IiwgY2hpcCk7CisJZW50LT5wYXRoLmRhdGEgPSAodm9pZCAqKWthc3ByaW50ZihHRlBfS0VSTkVMLCAiJXBPRiIsIGRuKTsKKwllbnQtPnBhdGguc2l6ZSA9IHN0cmxlbigoY2hhciAqKWVudC0+cGF0aC5kYXRhKTsKKworCWRpciA9IGRlYnVnZnNfY3JlYXRlX2RpcihlbnQtPm5hbWUsIHJvb3QpOworCWlmICghZGlyKSB7CisJCWtmcmVlKGVudC0+cGF0aC5kYXRhKTsKKwkJa2ZyZWUoZW50KTsKKwkJcmV0dXJuIC0xOworCX0KKworCWRlYnVnZnNfY3JlYXRlX2Jsb2IoImRldnNwZWMiLCAwNDAwLCBkaXIsICZlbnQtPnBhdGgpOworCWRlYnVnZnNfY3JlYXRlX2ZpbGUoImFjY2VzcyIsIDA2MDAsIGRpciwgZW50LCAmc2NvbV9kZWJ1Z19mb3BzKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNjb21fZGVidWdfaW5pdCh2b2lkKQoreworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZG47CisJc3RydWN0IGRlbnRyeSAqcm9vdDsKKwlpbnQgY2hpcCwgcmM7CisKKwlpZiAoIWZpcm13YXJlX2hhc19mZWF0dXJlKEZXX0ZFQVRVUkVfT1BBTCkpCisJCXJldHVybiAwOworCisJcm9vdCA9IGRlYnVnZnNfY3JlYXRlX2Rpcigic2NvbSIsIHBvd2VycGNfZGVidWdmc19yb290KTsKKwlpZiAoIXJvb3QpCisJCXJldHVybiAtMTsKKworCXJjID0gMDsKKwlmb3JfZWFjaF9ub2RlX3dpdGhfcHJvcGVydHkoZG4sICJzY29tLWNvbnRyb2xsZXIiKSB7CisJCWNoaXAgPSBvZl9nZXRfaWJtX2NoaXBfaWQoZG4pOworCQlXQVJOX09OKGNoaXAgPT0gLTEpOworCQlyYyB8PSBzY29tX2RlYnVnX2luaXRfb25lKHJvb3QsIGRuLCBjaGlwKTsKKwl9CisKKwlyZXR1cm4gcmM7Cit9CitkZXZpY2VfaW5pdGNhbGwoc2NvbV9kZWJ1Z19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvb3BhbC5jCmluZGV4IGFiYTQ0M2IuLjM4ZTkwMjcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwuYwpAQCAtNTgsNiArNTgsOCBAQCBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG9wYWxfd3JpdGVfbG9jayk7CiBzdGF0aWMgc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkIG9wYWxfbXNnX25vdGlmaWVyX2hlYWRbT1BBTF9NU0dfVFlQRV9NQVhdOwogc3RhdGljIHVpbnQzMl90IG9wYWxfaGVhcnRiZWF0Owogc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqa29wYWxkX3RzazsKK3N0YXRpYyBzdHJ1Y3Qgb3BhbF9tc2cgKm9wYWxfbXNnOworc3RhdGljIHUzMiBvcGFsX21zZ19zaXplIF9fcm9fYWZ0ZXJfaW5pdDsKIAogdm9pZCBvcGFsX2NvbmZpZ3VyZV9jb3Jlcyh2b2lkKQogewpAQCAtMjcxLDE0ICsyNzMsOSBAQCBzdGF0aWMgdm9pZCBvcGFsX21lc3NhZ2VfZG9fbm90aWZ5KHVpbnQzMl90IG1zZ190eXBlLCB2b2lkICptc2cpCiBzdGF0aWMgdm9pZCBvcGFsX2hhbmRsZV9tZXNzYWdlKHZvaWQpCiB7CiAJczY0IHJldDsKLQkvKgotCSAqIFRPRE86IHByZS1hbGxvY2F0ZSBhIG1lc3NhZ2UgYnVmZmVyIGRlcGVuZGluZyBvbiBvcGFsLW1zZy1zaXplCi0JICogdmFsdWUgaW4gL3Byb2MvZGV2aWNlLXRyZWUuCi0JICovCi0Jc3RhdGljIHN0cnVjdCBvcGFsX21zZyBtc2c7CiAJdTMyIHR5cGU7CiAKLQlyZXQgPSBvcGFsX2dldF9tc2coX19wYSgmbXNnKSwgc2l6ZW9mKG1zZykpOworCXJldCA9IG9wYWxfZ2V0X21zZyhfX3BhKG9wYWxfbXNnKSwgb3BhbF9tc2dfc2l6ZSk7CiAJLyogTm8gb3BhbCBtZXNzYWdlIHBlbmRpbmcuICovCiAJaWYgKHJldCA9PSBPUEFMX1JFU09VUkNFKQogCQlyZXR1cm47CkBAIC0yOTAsMTQgKzI4NywxNCBAQCBzdGF0aWMgdm9pZCBvcGFsX2hhbmRsZV9tZXNzYWdlKHZvaWQpCiAJCXJldHVybjsKIAl9CiAKLQl0eXBlID0gYmUzMl90b19jcHUobXNnLm1zZ190eXBlKTsKKwl0eXBlID0gYmUzMl90b19jcHUob3BhbF9tc2ctPm1zZ190eXBlKTsKIAogCS8qIFNhbml0eSBjaGVjayAqLwogCWlmICh0eXBlID49IE9QQUxfTVNHX1RZUEVfTUFYKSB7CiAJCXByX3dhcm5fb25jZSgiJXM6IFVua25vd24gbWVzc2FnZSB0eXBlOiAldVxuIiwgX19mdW5jX18sIHR5cGUpOwogCQlyZXR1cm47CiAJfQotCW9wYWxfbWVzc2FnZV9kb19ub3RpZnkodHlwZSwgKHZvaWQgKikmbXNnKTsKKwlvcGFsX21lc3NhZ2VfZG9fbm90aWZ5KHR5cGUsICh2b2lkICopb3BhbF9tc2cpOwogfQogCiBzdGF0aWMgaXJxcmV0dXJuX3Qgb3BhbF9tZXNzYWdlX25vdGlmeShpbnQgaXJxLCB2b2lkICpkYXRhKQpAQCAtMzA2LDEwICszMDMsMjQgQEAgc3RhdGljIGlycXJldHVybl90IG9wYWxfbWVzc2FnZV9ub3RpZnkoaW50IGlycSwgdm9pZCAqZGF0YSkKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IG9wYWxfbWVzc2FnZV9pbml0KHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBvcGFsX21lc3NhZ2VfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm9wYWxfbm9kZSkKIHsKIAlpbnQgcmV0LCBpLCBpcnE7CiAKKwlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihvcGFsX25vZGUsICJvcGFsLW1zZy1zaXplIiwgJm9wYWxfbXNnX3NpemUpOworCWlmIChyZXQpIHsKKwkJcHJfbm90aWNlKCJGYWlsZWQgdG8gcmVhZCBvcGFsLW1zZy1zaXplIHByb3BlcnR5XG4iKTsKKwkJb3BhbF9tc2dfc2l6ZSA9IHNpemVvZihzdHJ1Y3Qgb3BhbF9tc2cpOworCX0KKworCW9wYWxfbXNnID0ga21hbGxvYyhvcGFsX21zZ19zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW9wYWxfbXNnKSB7CisJCW9wYWxfbXNnX3NpemUgPSBzaXplb2Yoc3RydWN0IG9wYWxfbXNnKTsKKwkJLyogVHJ5IHRvIGFsbG9jYXRlIGZpeGVkIG1lc3NhZ2Ugc2l6ZSAqLworCQlvcGFsX21zZyA9IGttYWxsb2Mob3BhbF9tc2dfc2l6ZSwgR0ZQX0tFUk5FTCk7CisJCUJVR19PTihvcGFsX21zZyA9PSBOVUxMKTsKKwl9CisKIAlmb3IgKGkgPSAwOyBpIDwgT1BBTF9NU0dfVFlQRV9NQVg7IGkrKykKIAkJQVRPTUlDX0lOSVRfTk9USUZJRVJfSEVBRCgmb3BhbF9tc2dfbm90aWZpZXJfaGVhZFtpXSk7CiAKQEAgLTcwNSw3ICs3MTYsMTAgQEAgc3RhdGljIHNzaXplX3Qgc3ltYm9sX21hcF9yZWFkKHN0cnVjdCBmaWxlICpmcCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCQkJICAgICAgIGJpbl9hdHRyLT5zaXplKTsKIH0KIAotc3RhdGljIEJJTl9BVFRSX1JPKHN5bWJvbF9tYXAsIDApOworc3RhdGljIHN0cnVjdCBiaW5fYXR0cmlidXRlIHN5bWJvbF9tYXBfYXR0ciA9IHsKKwkuYXR0ciA9IHsubmFtZSA9ICJzeW1ib2xfbWFwIiwgLm1vZGUgPSAwNDAwfSwKKwkucmVhZCA9IHN5bWJvbF9tYXBfcmVhZAorfTsKIAogc3RhdGljIHZvaWQgb3BhbF9leHBvcnRfc3ltbWFwKHZvaWQpCiB7CkBAIC03MjIsMTAgKzczNiwxMCBAQCBzdGF0aWMgdm9pZCBvcGFsX2V4cG9ydF9zeW1tYXAodm9pZCkKIAkJcmV0dXJuOwogCiAJLyogU2V0dXAgYXR0cmlidXRlcyAqLwotCWJpbl9hdHRyX3N5bWJvbF9tYXAucHJpdmF0ZSA9IF9fdmEoYmU2NF90b19jcHUoc3ltc1swXSkpOwotCWJpbl9hdHRyX3N5bWJvbF9tYXAuc2l6ZSA9IGJlNjRfdG9fY3B1KHN5bXNbMV0pOworCXN5bWJvbF9tYXBfYXR0ci5wcml2YXRlID0gX192YShiZTY0X3RvX2NwdShzeW1zWzBdKSk7CisJc3ltYm9sX21hcF9hdHRyLnNpemUgPSBiZTY0X3RvX2NwdShzeW1zWzFdKTsKIAotCXJjID0gc3lzZnNfY3JlYXRlX2Jpbl9maWxlKG9wYWxfa29iaiwgJmJpbl9hdHRyX3N5bWJvbF9tYXApOworCXJjID0gc3lzZnNfY3JlYXRlX2Jpbl9maWxlKG9wYWxfa29iaiwgJnN5bWJvbF9tYXBfYXR0cik7CiAJaWYgKHJjKQogCQlwcl93YXJuKCJFcnJvciAlZCBjcmVhdGluZyBPUEFMIHN5bWJvbHMgZmlsZVxuIiwgcmMpOwogfQpAQCAtOTEwLDcgKzkyNCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IG9wYWxfaW5pdCh2b2lkKQogCX0KIAogCS8qIEluaXRpYWxpc2UgT1BBTCBtZXNzYWdpbmcgc3lzdGVtICovCi0Jb3BhbF9tZXNzYWdlX2luaXQoKTsKKwlvcGFsX21lc3NhZ2VfaW5pdChvcGFsX25vZGUpOwogCiAJLyogSW5pdGlhbGlzZSBPUEFMIGFzeW5jaHJvbm91cyBjb21wbGV0aW9uIGludGVyZmFjZSAqLwogCW9wYWxfYXN5bmNfY29tcF9pbml0KCk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcGNpLWlvZGEtdGNlLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcGNpLWlvZGEtdGNlLmMKaW5kZXggZTI4ZjAzZS4uYTBiOWMwYyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BjaS1pb2RhLXRjZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2ktaW9kYS10Y2UuYwpAQCAtMzYsNyArMzYsOCBAQCBzdGF0aWMgX19iZTY0ICpwbnZfYWxsb2NfdGNlX2xldmVsKGludCBuaWQsIHVuc2lnbmVkIGludCBzaGlmdCkKIAlzdHJ1Y3QgcGFnZSAqdGNlX21lbSA9IE5VTEw7CiAJX19iZTY0ICphZGRyOwogCi0JdGNlX21lbSA9IGFsbG9jX3BhZ2VzX25vZGUobmlkLCBHRlBfS0VSTkVMLCBzaGlmdCAtIFBBR0VfU0hJRlQpOworCXRjZV9tZW0gPSBhbGxvY19wYWdlc19ub2RlKG5pZCwgR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTiwKKwkJCXNoaWZ0IC0gUEFHRV9TSElGVCk7CiAJaWYgKCF0Y2VfbWVtKSB7CiAJCXByX2VycigiRmFpbGVkIHRvIGFsbG9jYXRlIGEgVENFIG1lbW9yeSwgbGV2ZWwgc2hpZnQ9JWRcbiIsCiAJCQkJc2hpZnQpOwpAQCAtNDgsNiArNDksOSBAQCBzdGF0aWMgX19iZTY0ICpwbnZfYWxsb2NfdGNlX2xldmVsKGludCBuaWQsIHVuc2lnbmVkIGludCBzaGlmdCkKIAlyZXR1cm4gYWRkcjsKIH0KIAorc3RhdGljIHZvaWQgcG52X3BjaV9pb2RhMl90YWJsZV9kb19mcmVlX3BhZ2VzKF9fYmU2NCAqYWRkciwKKwkJdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBpbnQgbGV2ZWxzKTsKKwogc3RhdGljIF9fYmU2NCAqcG52X3RjZShzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwgYm9vbCB1c2VyLCBsb25nIGlkeCwgYm9vbCBhbGxvYykKIHsKIAlfX2JlNjQgKnRtcCA9IHVzZXIgPyB0YmwtPml0X3VzZXJzcGFjZSA6IChfX2JlNjQgKikgdGJsLT5pdF9iYXNlOwpAQCAtNTcsOSArNjEsOSBAQCBzdGF0aWMgX19iZTY0ICpwbnZfdGNlKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLCBib29sIHVzZXIsIGxvbmcgaWR4LCBib29sIGFsbG9jKQogCiAJd2hpbGUgKGxldmVsKSB7CiAJCWludCBuID0gKGlkeCAmIG1hc2spID4+IChsZXZlbCAqIHNoaWZ0KTsKLQkJdW5zaWduZWQgbG9uZyB0Y2U7CisJCXVuc2lnbmVkIGxvbmcgb2xkdGNlLCB0Y2UgPSBiZTY0X3RvX2NwdShSRUFEX09OQ0UodG1wW25dKSk7CiAKLQkJaWYgKHRtcFtuXSA9PSAwKSB7CisJCWlmICghdGNlKSB7CiAJCQlfX2JlNjQgKnRtcDI7CiAKIAkJCWlmICghYWxsb2MpCkBAIC03MCwxMCArNzQsMTUgQEAgc3RhdGljIF9fYmU2NCAqcG52X3RjZShzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwgYm9vbCB1c2VyLCBsb25nIGlkeCwgYm9vbCBhbGxvYykKIAkJCWlmICghdG1wMikKIAkJCQlyZXR1cm4gTlVMTDsKIAotCQkJdG1wW25dID0gY3B1X3RvX2JlNjQoX19wYSh0bXAyKSB8Ci0JCQkJCVRDRV9QQ0lfUkVBRCB8IFRDRV9QQ0lfV1JJVEUpOworCQkJdGNlID0gX19wYSh0bXAyKSB8IFRDRV9QQ0lfUkVBRCB8IFRDRV9QQ0lfV1JJVEU7CisJCQlvbGR0Y2UgPSBiZTY0X3RvX2NwdShjbXB4Y2hnKCZ0bXBbbl0sIDAsCisJCQkJCWNwdV90b19iZTY0KHRjZSkpKTsKKwkJCWlmIChvbGR0Y2UpIHsKKwkJCQlwbnZfcGNpX2lvZGEyX3RhYmxlX2RvX2ZyZWVfcGFnZXModG1wMiwKKwkJCQkJaWxvZzIodGJsLT5pdF9sZXZlbF9zaXplKSArIDMsIDEpOworCQkJCXRjZSA9IG9sZHRjZTsKKwkJCX0KIAkJfQotCQl0Y2UgPSBiZTY0X3RvX2NwdSh0bXBbbl0pOwogCiAJCXRtcCA9IF9fdmEodGNlICYgfihUQ0VfUENJX1JFQUQgfCBUQ0VfUENJX1dSSVRFKSk7CiAJCWlkeCAmPSB+bWFzazsKQEAgLTE2MSw2ICsxNzAsOSBAQCB2b2lkIHBudl90Y2VfZnJlZShzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwgbG9uZyBpbmRleCwgbG9uZyBucGFnZXMpCiAKIAkJaWYgKHB0Y2UpCiAJCQkqcHRjZSA9IGNwdV90b19iZTY0KDApOworCQllbHNlCisJCQkvKiBTa2lwIHRoZSByZXN0IG9mIHRoZSBsZXZlbCAqLworCQkJaSB8PSB0YmwtPml0X2xldmVsX3NpemUgLSAxOwogCX0KIH0KIApAQCAtMjYwLDcgKzI3Miw2IEBAIGxvbmcgcG52X3BjaV9pb2RhMl90YWJsZV9hbGxvY19wYWdlcyhpbnQgbmlkLCBfX3U2NCBidXNfb2Zmc2V0LAogCXVuc2lnbmVkIGludCB0YWJsZV9zaGlmdCA9IG1heF90KHVuc2lnbmVkIGludCwgZW50cmllc19zaGlmdCArIDMsCiAJCQlQQUdFX1NISUZUKTsKIAljb25zdCB1bnNpZ25lZCBsb25nIHRjZV90YWJsZV9zaXplID0gMVVMIDw8IHRhYmxlX3NoaWZ0OwotCXVuc2lnbmVkIGludCB0bXBsZXZlbHMgPSBsZXZlbHM7CiAKIAlpZiAoIWxldmVscyB8fCAobGV2ZWxzID4gUE9XRVJOVl9JT01NVV9NQVhfTEVWRUxTKSkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0yNjgsOSArMjc5LDYgQEAgbG9uZyBwbnZfcGNpX2lvZGEyX3RhYmxlX2FsbG9jX3BhZ2VzKGludCBuaWQsIF9fdTY0IGJ1c19vZmZzZXQsCiAJaWYgKCFpc19wb3dlcl9vZl8yKHdpbmRvd19zaXplKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoYWxsb2NfdXNlcnNwYWNlX2NvcHkgJiYgKHdpbmRvd19zaXplID4gKDFVTEwgPDwgMzIpKSkKLQkJdG1wbGV2ZWxzID0gMTsKLQogCS8qIEFkanVzdCBkaXJlY3QgdGFibGUgc2l6ZSBmcm9tIHdpbmRvd19zaXplIGFuZCBsZXZlbHMgKi8KIAllbnRyaWVzX3NoaWZ0ID0gKGVudHJpZXNfc2hpZnQgKyBsZXZlbHMgLSAxKSAvIGxldmVsczsKIAlsZXZlbF9zaGlmdCA9IGVudHJpZXNfc2hpZnQgKyAzOwpAQCAtMjgxLDcgKzI4OSw3IEBAIGxvbmcgcG52X3BjaV9pb2RhMl90YWJsZV9hbGxvY19wYWdlcyhpbnQgbmlkLCBfX3U2NCBidXNfb2Zmc2V0LAogCiAJLyogQWxsb2NhdGUgVENFIHRhYmxlICovCiAJYWRkciA9IHBudl9wY2lfaW9kYTJfdGFibGVfZG9fYWxsb2NfcGFnZXMobmlkLCBsZXZlbF9zaGlmdCwKLQkJCXRtcGxldmVscywgdGNlX3RhYmxlX3NpemUsICZvZmZzZXQsICZ0b3RhbF9hbGxvY2F0ZWQpOworCQkJMSwgdGNlX3RhYmxlX3NpemUsICZvZmZzZXQsICZ0b3RhbF9hbGxvY2F0ZWQpOwogCiAJLyogYWRkcj09TlVMTCBtZWFucyB0aGF0IHRoZSBmaXJzdCBsZXZlbCBhbGxvY2F0aW9uIGZhaWxlZCAqLwogCWlmICghYWRkcikKQEAgLTI5MiwxOCArMzAwLDE4IEBAIGxvbmcgcG52X3BjaV9pb2RhMl90YWJsZV9hbGxvY19wYWdlcyhpbnQgbmlkLCBfX3U2NCBidXNfb2Zmc2V0LAogCSAqIHdlIGRpZCBub3QgYWxsb2NhdGUgYXMgbXVjaCBhcyB3ZSB3YW50ZWQsCiAJICogcmVsZWFzZSBwYXJ0aWFsbHkgYWxsb2NhdGVkIHRhYmxlLgogCSAqLwotCWlmICh0bXBsZXZlbHMgPT0gbGV2ZWxzICYmIG9mZnNldCA8IHRjZV90YWJsZV9zaXplKQorCWlmIChsZXZlbHMgPT0gMSAmJiBvZmZzZXQgPCB0Y2VfdGFibGVfc2l6ZSkKIAkJZ290byBmcmVlX3RjZXNfZXhpdDsKIAogCS8qIEFsbG9jYXRlIHVzZXJzcGFjZSB2aWV3IG9mIHRoZSBUQ0UgdGFibGUgKi8KIAlpZiAoYWxsb2NfdXNlcnNwYWNlX2NvcHkpIHsKIAkJb2Zmc2V0ID0gMDsKIAkJdWFzID0gcG52X3BjaV9pb2RhMl90YWJsZV9kb19hbGxvY19wYWdlcyhuaWQsIGxldmVsX3NoaWZ0LAotCQkJCXRtcGxldmVscywgdGNlX3RhYmxlX3NpemUsICZvZmZzZXQsCisJCQkJMSwgdGNlX3RhYmxlX3NpemUsICZvZmZzZXQsCiAJCQkJJnRvdGFsX2FsbG9jYXRlZF91YXMpOwogCQlpZiAoIXVhcykKIAkJCWdvdG8gZnJlZV90Y2VzX2V4aXQ7Ci0JCWlmICh0bXBsZXZlbHMgPT0gbGV2ZWxzICYmIChvZmZzZXQgPCB0Y2VfdGFibGVfc2l6ZSB8fAorCQlpZiAobGV2ZWxzID09IDEgJiYgKG9mZnNldCA8IHRjZV90YWJsZV9zaXplIHx8CiAJCQkJdG90YWxfYWxsb2NhdGVkX3VhcyAhPSB0b3RhbF9hbGxvY2F0ZWQpKQogCQkJZ290byBmcmVlX3Vhc19leGl0OwogCX0KQEAgLTMxOCw3ICszMjYsNyBAQCBsb25nIHBudl9wY2lfaW9kYTJfdGFibGVfYWxsb2NfcGFnZXMoaW50IG5pZCwgX191NjQgYnVzX29mZnNldCwKIAogCXByX2RlYnVnKCJDcmVhdGVkIFRDRSB0YWJsZTogd3M9JTA4bGx4IHRzPSVseCBAJTA4bGx4IGJhc2U9JWx4IHVhcz0lcCBsZXZlbHM9JWQvJWRcbiIsCiAJCQl3aW5kb3dfc2l6ZSwgdGNlX3RhYmxlX3NpemUsIGJ1c19vZmZzZXQsIHRibC0+aXRfYmFzZSwKLQkJCXRibC0+aXRfdXNlcnNwYWNlLCB0bXBsZXZlbHMsIGxldmVscyk7CisJCQl0YmwtPml0X3VzZXJzcGFjZSwgMSwgbGV2ZWxzKTsKIAogCXJldHVybiAwOwogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcGNpLWlvZGEuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2ktaW9kYS5jCmluZGV4IGQ4MDgwNTU4ZDAuLmMyOGQwZDkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2ktaW9kYS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2ktaW9kYS5jCkBAIC0xOTM5LDI2ICsxOTM5LDEyIEBAIHN0YXRpYyBpbnQgcG52X2lvZGExX3RjZV9idWlsZChzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwgbG9uZyBpbmRleCwKIH0KIAogI2lmZGVmIENPTkZJR19JT01NVV9BUEkKLXN0YXRpYyBpbnQgcG52X2lvZGExX3RjZV94Y2hnKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLCBsb25nIGluZGV4LAotCQl1bnNpZ25lZCBsb25nICpocGEsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uICpkaXJlY3Rpb24pCisvKiBDb21tb24gZm9yIElPREExIGFuZCBJT0RBMiAqLworc3RhdGljIGludCBwbnZfaW9kYV90Y2VfeGNoZ19ub19raWxsKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLCBsb25nIGluZGV4LAorCQl1bnNpZ25lZCBsb25nICpocGEsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uICpkaXJlY3Rpb24sCisJCWJvb2wgcmVhbG1vZGUpCiB7Ci0JbG9uZyByZXQgPSBwbnZfdGNlX3hjaGcodGJsLCBpbmRleCwgaHBhLCBkaXJlY3Rpb24sIHRydWUpOwotCi0JaWYgKCFyZXQpCi0JCXBudl9wY2lfcDdpb2NfdGNlX2ludmFsaWRhdGUodGJsLCBpbmRleCwgMSwgZmFsc2UpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBwbnZfaW9kYTFfdGNlX3hjaGdfcm0oc3RydWN0IGlvbW11X3RhYmxlICp0YmwsIGxvbmcgaW5kZXgsCi0JCXVuc2lnbmVkIGxvbmcgKmhwYSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gKmRpcmVjdGlvbikKLXsKLQlsb25nIHJldCA9IHBudl90Y2VfeGNoZyh0YmwsIGluZGV4LCBocGEsIGRpcmVjdGlvbiwgZmFsc2UpOwotCi0JaWYgKCFyZXQpCi0JCXBudl9wY2lfcDdpb2NfdGNlX2ludmFsaWRhdGUodGJsLCBpbmRleCwgMSwgdHJ1ZSk7Ci0KLQlyZXR1cm4gcmV0OworCXJldHVybiBwbnZfdGNlX3hjaGcodGJsLCBpbmRleCwgaHBhLCBkaXJlY3Rpb24sICFyZWFsbW9kZSk7CiB9CiAjZW5kaWYKIApAQCAtMTk3Myw4ICsxOTU5LDggQEAgc3RhdGljIHZvaWQgcG52X2lvZGExX3RjZV9mcmVlKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLCBsb25nIGluZGV4LAogc3RhdGljIHN0cnVjdCBpb21tdV90YWJsZV9vcHMgcG52X2lvZGExX2lvbW11X29wcyA9IHsKIAkuc2V0ID0gcG52X2lvZGExX3RjZV9idWlsZCwKICNpZmRlZiBDT05GSUdfSU9NTVVfQVBJCi0JLmV4Y2hhbmdlID0gcG52X2lvZGExX3RjZV94Y2hnLAotCS5leGNoYW5nZV9ybSA9IHBudl9pb2RhMV90Y2VfeGNoZ19ybSwKKwkueGNoZ19ub19raWxsID0gcG52X2lvZGFfdGNlX3hjaGdfbm9fa2lsbCwKKwkudGNlX2tpbGwgPSBwbnZfcGNpX3A3aW9jX3RjZV9pbnZhbGlkYXRlLAogCS51c2VyYWRkcnB0ciA9IHBudl90Y2VfdXNlcmFkZHJwdHIsCiAjZW5kaWYKIAkuY2xlYXIgPSBwbnZfaW9kYTFfdGNlX2ZyZWUsCkBAIC0yMTAzLDMwICsyMDg5LDYgQEAgc3RhdGljIGludCBwbnZfaW9kYTJfdGNlX2J1aWxkKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLCBsb25nIGluZGV4LAogCXJldHVybiByZXQ7CiB9CiAKLSNpZmRlZiBDT05GSUdfSU9NTVVfQVBJCi1zdGF0aWMgaW50IHBudl9pb2RhMl90Y2VfeGNoZyhzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwgbG9uZyBpbmRleCwKLQkJdW5zaWduZWQgbG9uZyAqaHBhLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiAqZGlyZWN0aW9uKQotewotCWxvbmcgcmV0ID0gcG52X3RjZV94Y2hnKHRibCwgaW5kZXgsIGhwYSwgZGlyZWN0aW9uLCB0cnVlKTsKLQotCWlmICghcmV0KQotCQlwbnZfcGNpX2lvZGEyX3RjZV9pbnZhbGlkYXRlKHRibCwgaW5kZXgsIDEsIGZhbHNlKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgcG52X2lvZGEyX3RjZV94Y2hnX3JtKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLCBsb25nIGluZGV4LAotCQl1bnNpZ25lZCBsb25nICpocGEsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uICpkaXJlY3Rpb24pCi17Ci0JbG9uZyByZXQgPSBwbnZfdGNlX3hjaGcodGJsLCBpbmRleCwgaHBhLCBkaXJlY3Rpb24sIGZhbHNlKTsKLQotCWlmICghcmV0KQotCQlwbnZfcGNpX2lvZGEyX3RjZV9pbnZhbGlkYXRlKHRibCwgaW5kZXgsIDEsIHRydWUpOwotCi0JcmV0dXJuIHJldDsKLX0KLSNlbmRpZgotCiBzdGF0aWMgdm9pZCBwbnZfaW9kYTJfdGNlX2ZyZWUoc3RydWN0IGlvbW11X3RhYmxlICp0YmwsIGxvbmcgaW5kZXgsCiAJCWxvbmcgbnBhZ2VzKQogewpAQCAtMjEzOCw4ICsyMTAwLDggQEAgc3RhdGljIHZvaWQgcG52X2lvZGEyX3RjZV9mcmVlKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLCBsb25nIGluZGV4LAogc3RhdGljIHN0cnVjdCBpb21tdV90YWJsZV9vcHMgcG52X2lvZGEyX2lvbW11X29wcyA9IHsKIAkuc2V0ID0gcG52X2lvZGEyX3RjZV9idWlsZCwKICNpZmRlZiBDT05GSUdfSU9NTVVfQVBJCi0JLmV4Y2hhbmdlID0gcG52X2lvZGEyX3RjZV94Y2hnLAotCS5leGNoYW5nZV9ybSA9IHBudl9pb2RhMl90Y2VfeGNoZ19ybSwKKwkueGNoZ19ub19raWxsID0gcG52X2lvZGFfdGNlX3hjaGdfbm9fa2lsbCwKKwkudGNlX2tpbGwgPSBwbnZfcGNpX2lvZGEyX3RjZV9pbnZhbGlkYXRlLAogCS51c2VyYWRkcnB0ciA9IHBudl90Y2VfdXNlcmFkZHJwdHIsCiAjZW5kaWYKIAkuY2xlYXIgPSBwbnZfaW9kYTJfdGNlX2ZyZWUsCkBAIC0yMzAzLDcgKzIyNjUsNyBAQCBzdGF0aWMgdm9pZCBwbnZfcGNpX2lvZGExX3NldHVwX2RtYV9wZShzdHJ1Y3QgcG52X3BoYiAqcGhiLAogCXRibC0+aXRfb3BzID0gJnBudl9pb2RhMV9pb21tdV9vcHM7CiAJcGUtPnRhYmxlX2dyb3VwLnRjZTMyX3N0YXJ0ID0gdGJsLT5pdF9vZmZzZXQgPDwgdGJsLT5pdF9wYWdlX3NoaWZ0OwogCXBlLT50YWJsZV9ncm91cC50Y2UzMl9zaXplID0gdGJsLT5pdF9zaXplIDw8IHRibC0+aXRfcGFnZV9zaGlmdDsKLQlpb21tdV9pbml0X3RhYmxlKHRibCwgcGhiLT5ob3NlLT5ub2RlKTsKKwlpb21tdV9pbml0X3RhYmxlKHRibCwgcGhiLT5ob3NlLT5ub2RlLCAwLCAwKTsKIAogCWlmIChwZS0+ZmxhZ3MgJiAoUE5WX0lPREFfUEVfQlVTIHwgUE5WX0lPREFfUEVfQlVTX0FMTCkpCiAJCXBudl9pb2RhX3NldHVwX2J1c19kbWEocGUsIHBlLT5wYnVzKTsKQEAgLTI0MjAsNiArMjM4Miw3IEBAIHN0YXRpYyBsb25nIHBudl9wY2lfaW9kYTJfc2V0dXBfZGVmYXVsdF9jb25maWcoc3RydWN0IHBudl9pb2RhX3BlICpwZSkKIHsKIAlzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCA9IE5VTEw7CiAJbG9uZyByYzsKKwl1bnNpZ25lZCBsb25nIHJlc19zdGFydCwgcmVzX2VuZDsKIAogCS8qCiAJICogY3Jhc2hrZXJuZWw9IHNwZWNpZmllcyB0aGUga2R1bXAga2VybmVsJ3MgbWF4aW11bSBtZW1vcnkgYXQKQEAgLTI0MzMsMTkgKzIzOTYsNDYgQEAgc3RhdGljIGxvbmcgcG52X3BjaV9pb2RhMl9zZXR1cF9kZWZhdWx0X2NvbmZpZyhzdHJ1Y3QgcG52X2lvZGFfcGUgKnBlKQogCSAqIERNQSB3aW5kb3cgY2FuIGJlIGxhcmdlciB0aGFuIGF2YWlsYWJsZSBtZW1vcnksIHdoaWNoIHdpbGwKIAkgKiBjYXVzZSBlcnJvcnMgbGF0ZXIuCiAJICovCi0JY29uc3QgdTY0IHdpbmRvd19zaXplID0gbWluKCh1NjQpcGUtPnRhYmxlX2dyb3VwLnRjZTMyX3NpemUsIG1heF9tZW1vcnkpOworCWNvbnN0IHU2NCBtYXhibG9jayA9IDFVTCA8PCAoUEFHRV9TSElGVCArIE1BWF9PUkRFUiAtIDEpOwogCi0JcmMgPSBwbnZfcGNpX2lvZGEyX2NyZWF0ZV90YWJsZSgmcGUtPnRhYmxlX2dyb3VwLCAwLAotCQkJSU9NTVVfUEFHRV9TSElGVF80SywKLQkJCXdpbmRvd19zaXplLAotCQkJUE9XRVJOVl9JT01NVV9ERUZBVUxUX0xFVkVMUywgZmFsc2UsICZ0YmwpOworCS8qCisJICogV2UgY3JlYXRlIHRoZSBkZWZhdWx0IHdpbmRvdyBhcyBiaWcgYXMgd2UgY2FuLiBUaGUgY29uc3RyYWludCBpcworCSAqIHRoZSBtYXggb3JkZXIgb2YgYWxsb2NhdGlvbiBwb3NzaWJsZS4gVGhlIFRDRSB0YWJsZSBpcyBsaWtlbHkgdG8KKwkgKiBlbmQgdXAgYmVpbmcgbXVsdGlsZXZlbCBhbmQgd2l0aCBvbi1kZW1hbmQgYWxsb2NhdGlvbiBpbiBwbGFjZSwKKwkgKiB0aGUgaW5pdGlhbCB1c2UgaXMgbm90IGdvaW5nIHRvIGJlIGh1Z2UgYXMgdGhlIGRlZmF1bHQgd2luZG93IGFpbXMKKwkgKiB0byBzdXBwb3J0IGNyaXBwbGVkIGRldmljZXMgKGkuZS4gbm90IGZ1bGx5IDY0Yml0IERNQWJsZSkgb25seS4KKwkgKi8KKwkvKiBpb21tdV90YWJsZTo6aXRfbWFwIHVzZXMgMSBiaXQgcGVyIElPTU1VIHBhZ2UsIGhlbmNlIDggKi8KKwljb25zdCB1NjQgd2luZG93X3NpemUgPSBtaW4oKG1heGJsb2NrICogOCkgPDwgUEFHRV9TSElGVCwgbWF4X21lbW9yeSk7CisJLyogRWFjaCBUQ0UgbGV2ZWwgY2Fubm90IGV4Y2VlZCBtYXhibG9jayBzbyBnbyBtdWx0aWxldmVsIGlmIG5lZWRlZCAqLworCXVuc2lnbmVkIGxvbmcgdGNlc19vcmRlciA9IGlsb2cyKHdpbmRvd19zaXplID4+IFBBR0VfU0hJRlQpOworCXVuc2lnbmVkIGxvbmcgdGNlbGV2ZWxfb3JkZXIgPSBpbG9nMihtYXhibG9jayA+PiAzKTsKKwl1bnNpZ25lZCBpbnQgbGV2ZWxzID0gdGNlc19vcmRlciAvIHRjZWxldmVsX29yZGVyOworCisJaWYgKHRjZXNfb3JkZXIgJSB0Y2VsZXZlbF9vcmRlcikKKwkJbGV2ZWxzICs9IDE7CisJLyoKKwkgKiBXZSB0cnkgdG8gc3RpY2sgdG8gZGVmYXVsdCBsZXZlbHMgKHdoaWNoIGlzID4xIGF0IHRoZSBtb21lbnQpIGluCisJICogb3JkZXIgdG8gc2F2ZSBtZW1vcnkgYnkgcmVseWluZyBvbiBvbi1kZW1haW4gVENFIGxldmVsIGFsbG9jYXRpb24uCisJICovCisJbGV2ZWxzID0gbWF4X3QodW5zaWduZWQgaW50LCBsZXZlbHMsIFBPV0VSTlZfSU9NTVVfREVGQVVMVF9MRVZFTFMpOworCisJcmMgPSBwbnZfcGNpX2lvZGEyX2NyZWF0ZV90YWJsZSgmcGUtPnRhYmxlX2dyb3VwLCAwLCBQQUdFX1NISUZULAorCQkJd2luZG93X3NpemUsIGxldmVscywgZmFsc2UsICZ0YmwpOwogCWlmIChyYykgewogCQlwZV9lcnIocGUsICJGYWlsZWQgdG8gY3JlYXRlIDMyLWJpdCBUQ0UgdGFibGUsIGVyciAlbGQiLAogCQkJCXJjKTsKIAkJcmV0dXJuIHJjOwogCX0KIAotCWlvbW11X2luaXRfdGFibGUodGJsLCBwZS0+cGhiLT5ob3NlLT5ub2RlKTsKKwkvKiBXZSB1c2UgdG9wIHBhcnQgb2YgMzJiaXQgc3BhY2UgZm9yIE1NSU8gc28gZXhjbHVkZSBpdCBmcm9tIERNQSAqLworCXJlc19zdGFydCA9IDA7CisJcmVzX2VuZCA9IDA7CisJaWYgKHdpbmRvd19zaXplID4gcGUtPnBoYi0+aW9kYS5tMzJfcGNpX2Jhc2UpIHsKKwkJcmVzX3N0YXJ0ID0gcGUtPnBoYi0+aW9kYS5tMzJfcGNpX2Jhc2UgPj4gdGJsLT5pdF9wYWdlX3NoaWZ0OworCQlyZXNfZW5kID0gbWluKHdpbmRvd19zaXplLCBTWl80RykgPj4gdGJsLT5pdF9wYWdlX3NoaWZ0OworCX0KKwlpb21tdV9pbml0X3RhYmxlKHRibCwgcGUtPnBoYi0+aG9zZS0+bm9kZSwgcmVzX3N0YXJ0LCByZXNfZW5kKTsKIAogCXJjID0gcG52X3BjaV9pb2RhMl9zZXRfd2luZG93KCZwZS0+dGFibGVfZ3JvdXAsIDAsIHRibCk7CiAJaWYgKHJjKSB7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcGNpLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcGNpLmMKaW5kZXggNjEwNDQxOC4uMjgyNWQwMCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BjaS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2kuYwpAQCAtNTQsNyArNTQsOCBAQCBpbnQgcG52X3BjaV9nZXRfc2xvdF9pZChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCB1aW50NjRfdCAqaWQpCiAJCQlicmVhazsKIAkJfQogCi0JCWlmICghb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUocGFyZW50LCAiaWJtLGlvZGEyLXBoYiIpKSB7CisJCWlmICghb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUocGFyZW50LCAiaWJtLGlvZGEyLXBoYiIpICYmCisJCSAgICAhb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUocGFyZW50LCAiaWJtLGlvZGEzLXBoYiIpKSB7CiAJCQlvZl9ub2RlX3B1dChwYXJlbnQpOwogCQkJY29udGludWU7CiAJCX0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2kuaCBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2kuaAppbmRleCA0NjljMjQ0Li5mOTE0ZjBiIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcGNpLmgKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BjaS5oCkBAIC0yMTksNyArMjE5LDcgQEAgZXh0ZXJuIHN0cnVjdCBpb21tdV90YWJsZV9ncm91cCAqcG52X25wdV9jb21wb3VuZF9hdHRhY2goCiAJCXN0cnVjdCBwbnZfaW9kYV9wZSAqcGUpOwogCiAvKiBwY2ktaW9kYS10Y2UuYyAqLwotI2RlZmluZSBQT1dFUk5WX0lPTU1VX0RFRkFVTFRfTEVWRUxTCTEKKyNkZWZpbmUgUE9XRVJOVl9JT01NVV9ERUZBVUxUX0xFVkVMUwkyCiAjZGVmaW5lIFBPV0VSTlZfSU9NTVVfTUFYX0xFVkVMUwk1CiAKIGV4dGVybiBpbnQgcG52X3RjZV9idWlsZChzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwgbG9uZyBpbmRleCwgbG9uZyBucGFnZXMsCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcG93ZXJudi5oIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3Bvd2VybnYuaAppbmRleCBmZDRhMWM1Li4xYWE1MWM0IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcG93ZXJudi5oCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wb3dlcm52LmgKQEAgLTMwLDQgKzMwLDkgQEAgZXh0ZXJuIHZvaWQgb3BhbF9ldmVudF9zaHV0ZG93bih2b2lkKTsKIAogYm9vbCBjcHVfY29yZV9zcGxpdF9yZXF1aXJlZCh2b2lkKTsKIAorc3RydWN0IG1lbWNvbnM7Citzc2l6ZV90IG1lbWNvbnNfY29weShzdHJ1Y3QgbWVtY29ucyAqbWMsIGNoYXIgKnRvLCBsb2ZmX3QgcG9zLCBzaXplX3QgY291bnQpOwordTMyIG1lbWNvbnNfZ2V0X3NpemUoc3RydWN0IG1lbWNvbnMgKm1jKTsKK3N0cnVjdCBtZW1jb25zICptZW1jb25zX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpub2RlLCBjb25zdCBjaGFyICptY19wcm9wX25hbWUpOworCiAjZW5kaWYgLyogX1BPV0VSTlZfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3NldHVwLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvc2V0dXAuYwppbmRleCBhNWU1MmY5Li44MzQ5ODYwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvc2V0dXAuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvc2V0dXAuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2J1Zy5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdWZyZXEuaD4KKyNpbmNsdWRlIDxsaW51eC9tZW1ibG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL21hY2hkZXAuaD4KICNpbmNsdWRlIDxhc20vZmlybXdhcmUuaD4KQEAgLTE2Niw2ICsxNjcsMTQgQEAgc3RhdGljIHZvaWQgX19pbml0IHBudl9pbml0KHZvaWQpCiAJZWxzZQogI2VuZGlmCiAJCWFkZF9wcmVmZXJyZWRfY29uc29sZSgiaHZjIiwgMCwgTlVMTCk7CisKKwlpZiAoIXJhZGl4X2VuYWJsZWQoKSkgeworCQlpbnQgaTsKKworCQkvKiBBbGxvY2F0ZSBwZXIgY3B1IGFyZWEgdG8gc2F2ZSBvbGQgc2xiIGNvbnRlbnRzIGR1cmluZyBNQ0UgKi8KKwkJZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpCisJCQlwYWNhX3B0cnNbaV0tPm1jZV9mYXVsdHlfc2xicyA9IG1lbWJsb2NrX2FsbG9jX25vZGUobW11X3NsYl9zaXplLCBfX2FsaWdub2ZfXygqcGFjYV9wdHJzW2ldLT5tY2VfZmF1bHR5X3NsYnMpLCBjcHVfdG9fbm9kZShpKSk7CisJfQogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgcG52X2luaXRfSVJRKHZvaWQpCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvc21wLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvc21wLmMKaW5kZXggOTRjZDk2Yi4uZmJkNmU2YiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3NtcC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9zbXAuYwpAQCAtMTkzLDcgKzE5Myw3IEBAIHN0YXRpYyB2b2lkIHBudl9zbXBfY3B1X2tpbGxfc2VsZih2b2lkKQogCQkgKiBmb3IgY29taW5nIG9ubGluZSwgd2hpY2ggYXJlIGhhbmRsZWQgdmlhCiAJCSAqIGdlbmVyaWNfY2hlY2tfY3B1X3Jlc3RhcnQoKSBjYWxscy4KIAkJICovCi0JCWt2bXBwY19zZXRfaG9zdF9pcGkoY3B1LCAwKTsKKwkJa3ZtcHBjX2NsZWFyX2hvc3RfaXBpKGNwdSk7CiAKIAkJc3JyMSA9IHBudl9jcHVfb2ZmbGluZShjcHUpOwogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvdWx0cmF2aXNvci5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3VsdHJhdmlzb3IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGEwMGFkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3VsdHJhdmlzb3IuYwpAQCAtMCwwICsxLDY5IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIFVsdHJhdmlzb3IgaGlnaCBsZXZlbCBpbnRlcmZhY2VzCisgKgorICogQ29weXJpZ2h0IDIwMTksIElCTSBDb3Jwb3JhdGlvbi4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcHJpbnRrLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZmR0Lmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKworI2luY2x1ZGUgPGFzbS91bHRyYXZpc29yLmg+CisjaW5jbHVkZSA8YXNtL2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2hkZXAuaD4KKworI2luY2x1ZGUgInBvd2VybnYuaCIKKworc3RhdGljIHN0cnVjdCBrb2JqZWN0ICp1bHRyYXZpc29yX2tvYmo7CisKK2ludCBfX2luaXQgZWFybHlfaW5pdF9kdF9zY2FuX3VsdHJhdmlzb3IodW5zaWduZWQgbG9uZyBub2RlLCBjb25zdCBjaGFyICp1bmFtZSwKKwkJCQkJIGludCBkZXB0aCwgdm9pZCAqZGF0YSkKK3sKKwlpZiAoIW9mX2ZsYXRfZHRfaXNfY29tcGF0aWJsZShub2RlLCAiaWJtLHVsdHJhdmlzb3IiKSkKKwkJcmV0dXJuIDA7CisKKwlwb3dlcnBjX2Zpcm13YXJlX2ZlYXR1cmVzIHw9IEZXX0ZFQVRVUkVfVUxUUkFWSVNPUjsKKwlwcl9kZWJ1ZygiVWx0cmF2aXNvciBkZXRlY3RlZCFcbiIpOworCXJldHVybiAxOworfQorCitzdGF0aWMgc3RydWN0IG1lbWNvbnMgKnV2X21lbWNvbnM7CisKK3N0YXRpYyBzc2l6ZV90IHV2X21zZ2xvZ19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCSAgICAgIHN0cnVjdCBiaW5fYXR0cmlidXRlICpiaW5fYXR0ciwgY2hhciAqdG8sCisJCQkgICAgICBsb2ZmX3QgcG9zLCBzaXplX3QgY291bnQpCit7CisJcmV0dXJuIG1lbWNvbnNfY29weSh1dl9tZW1jb25zLCB0bywgcG9zLCBjb3VudCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSB1dl9tc2dsb2dfYXR0ciA9IHsKKwkuYXR0ciA9IHsubmFtZSA9ICJtc2dsb2ciLCAubW9kZSA9IDA0MDB9LAorCS5yZWFkID0gdXZfbXNnbG9nX3JlYWQKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHV2X2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGU7CisKKwlpZiAoIWZpcm13YXJlX2hhc19mZWF0dXJlKEZXX0ZFQVRVUkVfVUxUUkFWSVNPUikpCisJCXJldHVybiAwOworCisJbm9kZSA9IG9mX2ZpbmRfY29tcGF0aWJsZV9ub2RlKE5VTEwsIE5VTEwsICJpYm0sdXYtZmlybXdhcmUiKTsKKwlpZiAoIW5vZGUpCisJCXJldHVybiAtRU5PREVWOworCisJdXZfbWVtY29ucyA9IG1lbWNvbnNfaW5pdChub2RlLCAibWVtY29ucyIpOworCWlmICghdXZfbWVtY29ucykKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwl1dl9tc2dsb2dfYXR0ci5zaXplID0gbWVtY29uc19nZXRfc2l6ZSh1dl9tZW1jb25zKTsKKworCXVsdHJhdmlzb3Jfa29iaiA9IGtvYmplY3RfY3JlYXRlX2FuZF9hZGQoInVsdHJhdmlzb3IiLCBmaXJtd2FyZV9rb2JqKTsKKwlpZiAoIXVsdHJhdmlzb3Jfa29iaikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXR1cm4gc3lzZnNfY3JlYXRlX2Jpbl9maWxlKHVsdHJhdmlzb3Jfa29iaiwgJnV2X21zZ2xvZ19hdHRyKTsKK30KK21hY2hpbmVfc3Vic3lzX2luaXRjYWxsKHBvd2VybnYsIHV2X2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wczMvc3B1LmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzMy9zcHUuYwppbmRleCBiZGFlYWVjLi4xMTkzYzI5NCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wczMvc3B1LmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wczMvc3B1LmMKQEAgLTE4NCwxMCArMTg0LDcgQEAgc3RhdGljIHZvaWQgc3B1X3VubWFwKHN0cnVjdCBzcHUgKnNwdSkKICAqIHNldHVwX2FyZWFzIC0gTWFwIHRoZSBzcHUgcmVnaW9ucyBpbnRvIHRoZSBhZGRyZXNzIHNwYWNlLgogICoKICAqIFRoZSBjdXJyZW50IEhWIHJlcXVpcmVzIHRoZSBzcHUgc2hhZG93IHJlZ3MgdG8gYmUgbWFwcGVkIHdpdGggdGhlCi0gKiBQVEUgcGFnZSBwcm90ZWN0aW9uIGJpdHMgc2V0IGFzIHJlYWQtb25seSAoUFA9MykuICBUaGlzIGltcGxlbWVudGF0aW9uCi0gKiB1c2VzIHRoZSBsb3cgbGV2ZWwgX19pb3JlbWFwKCkgdG8gYnlwYXNzIHRoZSBwYWdlIHByb3RlY3Rpb24gc2V0dGluZ3MKLSAqIGluZm9yY2VkIGJ5IGlvcmVtYXBfcHJvdCgpIHRvIGdldCB0aGUgbmVlZGVkIFBURSBiaXRzIHNldCBmb3IgdGhlCi0gKiBzaGFkb3cgcmVncy4KKyAqIFBURSBwYWdlIHByb3RlY3Rpb24gYml0cyBzZXQgYXMgcmVhZC1vbmx5LgogICovCiAKIHN0YXRpYyBpbnQgX19pbml0IHNldHVwX2FyZWFzKHN0cnVjdCBzcHUgKnNwdSkKQEAgLTE5NSw5ICsxOTIsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBzZXR1cF9hcmVhcyhzdHJ1Y3Qgc3B1ICpzcHUpCiAJc3RydWN0IHRhYmxlIHtjaGFyKiBuYW1lOyB1bnNpZ25lZCBsb25nIGFkZHI7IHVuc2lnbmVkIGxvbmcgc2l6ZTt9OwogCXVuc2lnbmVkIGxvbmcgc2hhZG93X2ZsYWdzID0gcGdwcm90X3ZhbChwZ3Byb3Rfbm9uY2FjaGVkX3djKFBBR0VfS0VSTkVMX1JPKSk7CiAKLQlzcHVfcGRhdGEoc3B1KS0+c2hhZG93ID0gX19pb3JlbWFwKHNwdV9wZGF0YShzcHUpLT5zaGFkb3dfYWRkciwKLQkJCQkJICAgc2l6ZW9mKHN0cnVjdCBzcGVfc2hhZG93KSwKLQkJCQkJICAgc2hhZG93X2ZsYWdzKTsKKwlzcHVfcGRhdGEoc3B1KS0+c2hhZG93ID0gaW9yZW1hcF9wcm90KHNwdV9wZGF0YShzcHUpLT5zaGFkb3dfYWRkciwKKwkJCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBzcGVfc2hhZG93KSwgc2hhZG93X2ZsYWdzKTsKIAlpZiAoIXNwdV9wZGF0YShzcHUpLT5zaGFkb3cpIHsKIAkJcHJfZGVidWcoIiVzOiVkOiBpb3JlbWFwIHNoYWRvdyBmYWlsZWRcbiIsIF9fZnVuY19fLCBfX0xJTkVfXyk7CiAJCWdvdG8gZmFpbF9pb3JlbWFwOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wczMvc3lzdGVtLWJ1cy5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wczMvc3lzdGVtLWJ1cy5jCmluZGV4IDk4NDEwMTEuLjM1NDJiN2IgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHMzL3N5c3RlbS1idXMuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzMy9zeXN0ZW0tYnVzLmMKQEAgLTY4NiwyMCArNjg2LDE2IEBAIHN0YXRpYyBpbnQgcHMzX2RtYV9zdXBwb3J0ZWQoc3RydWN0IGRldmljZSAqX2RldiwgdTY0IG1hc2spCiAJcmV0dXJuIG1hc2sgPj0gRE1BX0JJVF9NQVNLKDMyKTsKIH0KIAotc3RhdGljIHU2NCBwczNfZG1hX2dldF9yZXF1aXJlZF9tYXNrKHN0cnVjdCBkZXZpY2UgKl9kZXYpCi17Ci0JcmV0dXJuIERNQV9CSVRfTUFTSygzMik7Ci19Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgcHMzX3NiX2RtYV9vcHMgPSB7CiAJLmFsbG9jID0gcHMzX2FsbG9jX2NvaGVyZW50LAogCS5mcmVlID0gcHMzX2ZyZWVfY29oZXJlbnQsCiAJLm1hcF9zZyA9IHBzM19zYl9tYXBfc2csCiAJLnVubWFwX3NnID0gcHMzX3NiX3VubWFwX3NnLAogCS5kbWFfc3VwcG9ydGVkID0gcHMzX2RtYV9zdXBwb3J0ZWQsCi0JLmdldF9yZXF1aXJlZF9tYXNrID0gcHMzX2RtYV9nZXRfcmVxdWlyZWRfbWFzaywKIAkubWFwX3BhZ2UgPSBwczNfc2JfbWFwX3BhZ2UsCiAJLnVubWFwX3BhZ2UgPSBwczNfdW5tYXBfcGFnZSwKKwkubW1hcCA9IGRtYV9jb21tb25fbW1hcCwKKwkuZ2V0X3NndGFibGUgPSBkbWFfY29tbW9uX2dldF9zZ3RhYmxlLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBwczNfaW9jMF9kbWFfb3BzID0gewpAQCAtNzA4LDkgKzcwNCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIHBzM19pb2MwX2RtYV9vcHMgPSB7CiAJLm1hcF9zZyA9IHBzM19pb2MwX21hcF9zZywKIAkudW5tYXBfc2cgPSBwczNfaW9jMF91bm1hcF9zZywKIAkuZG1hX3N1cHBvcnRlZCA9IHBzM19kbWFfc3VwcG9ydGVkLAotCS5nZXRfcmVxdWlyZWRfbWFzayA9IHBzM19kbWFfZ2V0X3JlcXVpcmVkX21hc2ssCiAJLm1hcF9wYWdlID0gcHMzX2lvYzBfbWFwX3BhZ2UsCiAJLnVubWFwX3BhZ2UgPSBwczNfdW5tYXBfcGFnZSwKKwkubW1hcCA9IGRtYV9jb21tb25fbW1hcCwKKwkuZ2V0X3NndGFibGUgPSBkbWFfY29tbW9uX2dldF9zZ3RhYmxlLAogfTsKIAogLyoqCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvS2NvbmZpZyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9LY29uZmlnCmluZGV4IGY3YjQ4NGYuLjllMzVjZGQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9LY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9LY29uZmlnCkBAIC0xNDUsMyArMTQ1LDE3IEBACiAJdHJpc3RhdGUgIlN1cHBvcnQgZm9yIHRoZSBQQVBSIFN0b3JhZ2UgQ2xhc3MgTWVtb3J5IGludGVyZmFjZSIKIAloZWxwCiAJICBFbmFibGUgYWNjZXNzIHRvIGh5cGVydmlzb3IgcHJvdmlkZWQgc3RvcmFnZSBjbGFzcyBtZW1vcnkuCisKK2NvbmZpZyBQUENfU1ZNCisJYm9vbCAiU2VjdXJlIHZpcnR1YWwgbWFjaGluZSAoU1ZNKSBzdXBwb3J0IGZvciBQT1dFUiIKKwlkZXBlbmRzIG9uIFBQQ19QU0VSSUVTCisJc2VsZWN0IFNXSU9UTEIKKwlzZWxlY3QgQVJDSF9IQVNfTUVNX0VOQ1JZUFQKKwlzZWxlY3QgQVJDSF9IQVNfRk9SQ0VfRE1BX1VORU5DUllQVEVECisJaGVscAorCSBUaGVyZSBhcmUgY2VydGFpbiBQT1dFUiBwbGF0Zm9ybXMgd2hpY2ggc3VwcG9ydCBzZWN1cmUgZ3Vlc3RzIHVzaW5nCisJIHRoZSBQcm90ZWN0ZWQgRXhlY3V0aW9uIEZhY2lsaXR5LCB3aXRoIHRoZSBoZWxwIG9mIGFuIFVsdHJhdmlzb3IKKwkgZXhlY3V0aW5nIGJlbG93IHRoZSBoeXBlcnZpc29yIGxheWVyLiBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IKKwkgdGhvc2UgZ3Vlc3RzLgorCisJIElmIHVuc3VyZSwgc2F5ICJOIi4KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9NYWtlZmlsZSBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9NYWtlZmlsZQppbmRleCBhYjNkNTlhLi5hM2M3NGE1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL01ha2VmaWxlCkBAIC0yNiw2ICsyNiw4IEBACiBvYmotJChDT05GSUdfSUJNRUJVUykJCSs9IGlibWVidXMubwogb2JqLSQoQ09ORklHX1BBUFJfU0NNKQkJKz0gcGFwcl9zY20ubwogb2JqLSQoQ09ORklHX1BQQ19TUExQQVIpCSs9IHZwaG4ubworb2JqLSQoQ09ORklHX1BQQ19TVk0pCQkrPSBzdm0ubworb2JqLSQoQ09ORklHX0ZBX0RVTVApCQkrPSBydGFzLWZhZHVtcC5vCiAKIGlmZGVmIENPTkZJR19QUENfUFNFUklFUwogb2JqLSQoQ09ORklHX1NVU1BFTkQpCQkrPSBzdXNwZW5kLm8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9lZWhfcHNlcmllcy5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2VlaF9wc2VyaWVzLmMKaW5kZXggOWVkYWUxOC4uODkzYmEzZiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2VlaF9wc2VyaWVzLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2VlaF9wc2VyaWVzLmMKQEAgLTQyLDQyICs0Miw0NCBAQCBzdGF0aWMgaW50IGlibV9nZXRfY29uZmlnX2FkZHJfaW5mbzsKIHN0YXRpYyBpbnQgaWJtX2dldF9jb25maWdfYWRkcl9pbmZvMjsKIHN0YXRpYyBpbnQgaWJtX2NvbmZpZ3VyZV9wZTsKIAotI2lmZGVmIENPTkZJR19QQ0lfSU9WCiB2b2lkIHBzZXJpZXNfcGNpYmlvc19idXNfYWRkX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKIAlzdHJ1Y3QgcGNpX2RuICpwZG4gPSBwY2lfZ2V0X3BkbihwZGV2KTsKLQlzdHJ1Y3QgcGNpX2RuICpwaHlzZm5fcGRuOwotCXN0cnVjdCBlZWhfZGV2ICplZGV2OwogCi0JaWYgKCFwZGV2LT5pc192aXJ0Zm4pCisJaWYgKGVlaF9oYXNfZmxhZyhFRUhfRk9SQ0VfRElTQUJMRUQpKQogCQlyZXR1cm47CiAKLQlwZG4tPmRldmljZV9pZCAgPSAgcGRldi0+ZGV2aWNlOwotCXBkbi0+dmVuZG9yX2lkICA9ICBwZGV2LT52ZW5kb3I7Ci0JcGRuLT5jbGFzc19jb2RlID0gIHBkZXYtPmNsYXNzOwotCS8qCi0JICogTGFzdCBhbGxvdyB1bmZyZWV6ZSByZXR1cm4gY29kZSB1c2VkIGZvciByZXRyaWV2YWwKLQkgKiBieSB1c2VyIHNwYWNlIGluIGVlaC1zeXNmcyB0byBzaG93IHRoZSBsYXN0IGNvbW1hbmQKLQkgKiBjb21wbGV0aW9uIGZyb20gcGxhdGZvcm0uCi0JICovCi0JcGRuLT5sYXN0X2FsbG93X3JjID0gIDA7Ci0JcGh5c2ZuX3BkbiAgICAgID0gIHBjaV9nZXRfcGRuKHBkZXYtPnBoeXNmbik7Ci0JcGRuLT5wZV9udW1iZXIgID0gIHBoeXNmbl9wZG4tPnBlX251bV9tYXBbcGRuLT52Zl9pbmRleF07Ci0JZWRldiA9IHBkbl90b19lZWhfZGV2KHBkbik7CisJZGV2X2RiZygmcGRldi0+ZGV2LCAiRUVIOiBTZXR0aW5nIHVwIGRldmljZVxuIik7CisjaWZkZWYgQ09ORklHX1BDSV9JT1YKKwlpZiAocGRldi0+aXNfdmlydGZuKSB7CisJCXN0cnVjdCBwY2lfZG4gKnBoeXNmbl9wZG47CiAKLQkvKgotCSAqIFRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucyB3aWxsIGZhaWwgaWYgVkYncyBzeXNmcyBmaWxlcwotCSAqIGFyZW4ndCBjcmVhdGVkIG9yIGl0cyByZXNvdXJjZXMgYXJlbid0IGZpbmFsaXplZC4KLQkgKi8KKwkJcGRuLT5kZXZpY2VfaWQgID0gIHBkZXYtPmRldmljZTsKKwkJcGRuLT52ZW5kb3JfaWQgID0gIHBkZXYtPnZlbmRvcjsKKwkJcGRuLT5jbGFzc19jb2RlID0gIHBkZXYtPmNsYXNzOworCQkvKgorCQkgKiBMYXN0IGFsbG93IHVuZnJlZXplIHJldHVybiBjb2RlIHVzZWQgZm9yIHJldHJpZXZhbAorCQkgKiBieSB1c2VyIHNwYWNlIGluIGVlaC1zeXNmcyB0byBzaG93IHRoZSBsYXN0IGNvbW1hbmQKKwkJICogY29tcGxldGlvbiBmcm9tIHBsYXRmb3JtLgorCQkgKi8KKwkJcGRuLT5sYXN0X2FsbG93X3JjID0gIDA7CisJCXBoeXNmbl9wZG4gICAgICA9ICBwY2lfZ2V0X3BkbihwZGV2LT5waHlzZm4pOworCQlwZG4tPnBlX251bWJlciAgPSAgcGh5c2ZuX3Bkbi0+cGVfbnVtX21hcFtwZG4tPnZmX2luZGV4XTsKKwl9CisjZW5kaWYKIAllZWhfYWRkX2RldmljZV9lYXJseShwZG4pOwogCWVlaF9hZGRfZGV2aWNlX2xhdGUocGRldik7Ci0JZWRldi0+cGVfY29uZmlnX2FkZHIgPSAgKHBkbi0+YnVzbm8gPDwgMTYpIHwgKHBkbi0+ZGV2Zm4gPDwgOCk7Ci0JZWVoX3Jtdl9mcm9tX3BhcmVudF9wZShlZGV2KTsgLyogUmVtb3ZlIGFzIGl0IGlzIGFkZGluZyB0byBidXMgcGUgKi8KLQllZWhfYWRkX3RvX3BhcmVudF9wZShlZGV2KTsgICAvKiBBZGQgYXMgVkYgUEUgdHlwZSAqLwotCWVlaF9zeXNmc19hZGRfZGV2aWNlKHBkZXYpOworI2lmZGVmIENPTkZJR19QQ0lfSU9WCisJaWYgKHBkZXYtPmlzX3ZpcnRmbikgeworCQlzdHJ1Y3QgZWVoX2RldiAqZWRldiA9IHBkbl90b19lZWhfZGV2KHBkbik7CiAKLX0KKwkJZWRldi0+cGVfY29uZmlnX2FkZHIgPSAgKHBkbi0+YnVzbm8gPDwgMTYpIHwgKHBkbi0+ZGV2Zm4gPDwgOCk7CisJCWVlaF9ybXZfZnJvbV9wYXJlbnRfcGUoZWRldik7IC8qIFJlbW92ZSBhcyBpdCBpcyBhZGRpbmcgdG8gYnVzIHBlICovCisJCWVlaF9hZGRfdG9fcGFyZW50X3BlKGVkZXYpOyAgIC8qIEFkZCBhcyBWRiBQRSB0eXBlICovCisJfQogI2VuZGlmCisJZWVoX3N5c2ZzX2FkZF9kZXZpY2UocGRldik7Cit9CiAKIC8qCiAgKiBCdWZmZXIgZm9yIHJlcG9ydGluZyBzbG90LWVycm9yLWRldGFpbCBydGFzIGNhbGxzLiBJdHMgaGVyZQpAQCAtMTQ0LDEwICsxNDYsOCBAQCBzdGF0aWMgaW50IHBzZXJpZXNfZWVoX2luaXQodm9pZCkKIAkvKiBTZXQgRUVIIHByb2JlIG1vZGUgKi8KIAllZWhfYWRkX2ZsYWcoRUVIX1BST0JFX01PREVfREVWVFJFRSB8IEVFSF9FTkFCTEVfSU9fRk9SX0xPRyk7CiAKLSNpZmRlZiBDT05GSUdfUENJX0lPVgogCS8qIFNldCBFRUggbWFjaGluZSBkZXBlbmRlbnQgY29kZSAqLwogCXBwY19tZC5wY2liaW9zX2J1c19hZGRfZGV2aWNlID0gcHNlcmllc19wY2liaW9zX2J1c19hZGRfZGV2aWNlOwotI2VuZGlmCiAKIAlyZXR1cm4gMDsKIH0KQEAgLTI1MSw2ICsyNTEsOCBAQCBzdGF0aWMgdm9pZCAqcHNlcmllc19lZWhfcHJvYmUoc3RydWN0IHBjaV9kbiAqcGRuLCB2b2lkICpkYXRhKQogICAgICAgICBpZiAoKHBkbi0+Y2xhc3NfY29kZSA+PiA4KSA9PSBQQ0lfQ0xBU1NfQlJJREdFX0lTQSkKIAkJcmV0dXJuIE5VTEw7CiAKKwllZWhfZWRldl9kYmcoZWRldiwgIlByb2JpbmcgZGV2aWNlXG4iKTsKKwogCS8qCiAJICogVXBkYXRlIGNsYXNzIGNvZGUgYW5kIG1vZGUgb2YgZWVoIGRldmljZS4gV2UgbmVlZAogCSAqIGNvcnJlY3RseSByZWZsZWN0cyB0aGF0IGN1cnJlbnQgZGV2aWNlIGlzIHJvb3QgcG9ydApAQCAtMjgwLDggKzI4MiwxMSBAQCBzdGF0aWMgdm9pZCAqcHNlcmllc19lZWhfcHJvYmUoc3RydWN0IHBjaV9kbiAqcGRuLCB2b2lkICpkYXRhKQogCXBlLmNvbmZpZ19hZGRyID0gKHBkbi0+YnVzbm8gPDwgMTYpIHwgKHBkbi0+ZGV2Zm4gPDwgOCk7CiAKIAkvKiBFbmFibGUgRUVIIG9uIHRoZSBkZXZpY2UgKi8KKwllZWhfZWRldl9kYmcoZWRldiwgIkVuYWJsaW5nIEVFSCBvbiBkZXZpY2VcbiIpOwogCXJldCA9IGVlaF9vcHMtPnNldF9vcHRpb24oJnBlLCBFRUhfT1BUX0VOQUJMRSk7Ci0JaWYgKCFyZXQpIHsKKwlpZiAocmV0KSB7CisJCWVlaF9lZGV2X2RiZyhlZGV2LCAiRUVIIGZhaWxlZCB0byBlbmFibGUgb24gZGV2aWNlIChjb2RlICVkKVxuIiwgcmV0KTsKKwl9IGVsc2UgewogCQkvKiBSZXRyaWV2ZSBQRSBhZGRyZXNzICovCiAJCWVkZXYtPnBlX2NvbmZpZ19hZGRyID0gZWVoX29wcy0+Z2V0X3BlX2FkZHIoJnBlKTsKIAkJcGUuYWRkciA9IGVkZXYtPnBlX2NvbmZpZ19hZGRyOwpAQCAtMjk3LDExICszMDIsNiBAQCBzdGF0aWMgdm9pZCAqcHNlcmllc19lZWhfcHJvYmUoc3RydWN0IHBjaV9kbiAqcGRuLCB2b2lkICpkYXRhKQogCQlpZiAoZW5hYmxlKSB7CiAJCQllZWhfYWRkX2ZsYWcoRUVIX0VOQUJMRUQpOwogCQkJZWVoX2FkZF90b19wYXJlbnRfcGUoZWRldik7Ci0KLQkJCXByX2RlYnVnKCIlczogRUVIIGVuYWJsZWQgb24gJTAyeDolMDJ4LiUwMXggUEhCIyV4LVBFIyV4XG4iLAotCQkJCV9fZnVuY19fLCBwZG4tPmJ1c25vLCBQQ0lfU0xPVChwZG4tPmRldmZuKSwKLQkJCQlQQ0lfRlVOQyhwZG4tPmRldmZuKSwgcGUucGhiLT5nbG9iYWxfbnVtYmVyLAotCQkJCXBlLmFkZHIpOwogCQl9IGVsc2UgaWYgKHBkbi0+cGFyZW50ICYmIHBkbl90b19lZWhfZGV2KHBkbi0+cGFyZW50KSAmJgogCQkJICAgKHBkbl90b19lZWhfZGV2KHBkbi0+cGFyZW50KSktPnBlKSB7CiAJCQkvKiBUaGlzIGRldmljZSBkb2Vzbid0IHN1cHBvcnQgRUVILCBidXQgaXQgbWF5IGhhdmUgYW4KQEAgLTMxMCw2ICszMTAsOCBAQCBzdGF0aWMgdm9pZCAqcHNlcmllc19lZWhfcHJvYmUoc3RydWN0IHBjaV9kbiAqcGRuLCB2b2lkICpkYXRhKQogCQkJZWRldi0+cGVfY29uZmlnX2FkZHIgPSBwZG5fdG9fZWVoX2RldihwZG4tPnBhcmVudCktPnBlX2NvbmZpZ19hZGRyOwogCQkJZWVoX2FkZF90b19wYXJlbnRfcGUoZWRldik7CiAJCX0KKwkJZWVoX2VkZXZfZGJnKGVkZXYsICJFRUggaXMgJXMgb24gZGV2aWNlIChjb2RlICVkKVxuIiwKKwkJCSAgICAgKGVuYWJsZSA/ICJlbmFibGVkIiA6ICJ1bnN1cHBvcnRlZCIpLCByZXQpOwogCX0KIAogCS8qIFNhdmUgbWVtb3J5IGJhcnMgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9ob3RwbHVnLW1lbW9yeS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2hvdHBsdWctbWVtb3J5LmMKaW5kZXggNDZkMGQzNS4uOGU3MDAzOSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2hvdHBsdWctbWVtb3J5LmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2hvdHBsdWctbWVtb3J5LmMKQEAgLTg4MCwzNCArODgwLDQ0IEBAIGludCBkbHBhcl9tZW1vcnkoc3RydWN0IHBzZXJpZXNfaHBfZXJyb3Jsb2cgKmhwX2Vsb2cpCiAKIAlzd2l0Y2ggKGhwX2Vsb2ctPmFjdGlvbikgewogCWNhc2UgUFNFUklFU19IUF9FTE9HX0FDVElPTl9BREQ6Ci0JCWlmIChocF9lbG9nLT5pZF90eXBlID09IFBTRVJJRVNfSFBfRUxPR19JRF9EUkNfQ09VTlQpIHsKKwkJc3dpdGNoIChocF9lbG9nLT5pZF90eXBlKSB7CisJCWNhc2UgUFNFUklFU19IUF9FTE9HX0lEX0RSQ19DT1VOVDoKIAkJCWNvdW50ID0gaHBfZWxvZy0+X2RyY191LmRyY19jb3VudDsKIAkJCXJjID0gZGxwYXJfbWVtb3J5X2FkZF9ieV9jb3VudChjb3VudCk7Ci0JCX0gZWxzZSBpZiAoaHBfZWxvZy0+aWRfdHlwZSA9PSBQU0VSSUVTX0hQX0VMT0dfSURfRFJDX0lOREVYKSB7CisJCQlicmVhazsKKwkJY2FzZSBQU0VSSUVTX0hQX0VMT0dfSURfRFJDX0lOREVYOgogCQkJZHJjX2luZGV4ID0gaHBfZWxvZy0+X2RyY191LmRyY19pbmRleDsKIAkJCXJjID0gZGxwYXJfbWVtb3J5X2FkZF9ieV9pbmRleChkcmNfaW5kZXgpOwotCQl9IGVsc2UgaWYgKGhwX2Vsb2ctPmlkX3R5cGUgPT0gUFNFUklFU19IUF9FTE9HX0lEX0RSQ19JQykgeworCQkJYnJlYWs7CisJCWNhc2UgUFNFUklFU19IUF9FTE9HX0lEX0RSQ19JQzoKIAkJCWNvdW50ID0gaHBfZWxvZy0+X2RyY191LmljLmNvdW50OwogCQkJZHJjX2luZGV4ID0gaHBfZWxvZy0+X2RyY191LmljLmluZGV4OwogCQkJcmMgPSBkbHBhcl9tZW1vcnlfYWRkX2J5X2ljKGNvdW50LCBkcmNfaW5kZXgpOwotCQl9IGVsc2UgeworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CiAJCQlyYyA9IC1FSU5WQUw7CisJCQlicmVhazsKIAkJfQogCiAJCWJyZWFrOwogCWNhc2UgUFNFUklFU19IUF9FTE9HX0FDVElPTl9SRU1PVkU6Ci0JCWlmIChocF9lbG9nLT5pZF90eXBlID09IFBTRVJJRVNfSFBfRUxPR19JRF9EUkNfQ09VTlQpIHsKKwkJc3dpdGNoIChocF9lbG9nLT5pZF90eXBlKSB7CisJCWNhc2UgUFNFUklFU19IUF9FTE9HX0lEX0RSQ19DT1VOVDoKIAkJCWNvdW50ID0gaHBfZWxvZy0+X2RyY191LmRyY19jb3VudDsKIAkJCXJjID0gZGxwYXJfbWVtb3J5X3JlbW92ZV9ieV9jb3VudChjb3VudCk7Ci0JCX0gZWxzZSBpZiAoaHBfZWxvZy0+aWRfdHlwZSA9PSBQU0VSSUVTX0hQX0VMT0dfSURfRFJDX0lOREVYKSB7CisJCQlicmVhazsKKwkJY2FzZSBQU0VSSUVTX0hQX0VMT0dfSURfRFJDX0lOREVYOgogCQkJZHJjX2luZGV4ID0gaHBfZWxvZy0+X2RyY191LmRyY19pbmRleDsKIAkJCXJjID0gZGxwYXJfbWVtb3J5X3JlbW92ZV9ieV9pbmRleChkcmNfaW5kZXgpOwotCQl9IGVsc2UgaWYgKGhwX2Vsb2ctPmlkX3R5cGUgPT0gUFNFUklFU19IUF9FTE9HX0lEX0RSQ19JQykgeworCQkJYnJlYWs7CisJCWNhc2UgUFNFUklFU19IUF9FTE9HX0lEX0RSQ19JQzoKIAkJCWNvdW50ID0gaHBfZWxvZy0+X2RyY191LmljLmNvdW50OwogCQkJZHJjX2luZGV4ID0gaHBfZWxvZy0+X2RyY191LmljLmluZGV4OwogCQkJcmMgPSBkbHBhcl9tZW1vcnlfcmVtb3ZlX2J5X2ljKGNvdW50LCBkcmNfaW5kZXgpOwotCQl9IGVsc2UgeworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CiAJCQlyYyA9IC1FSU5WQUw7CisJCQlicmVhazsKIAkJfQogCiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2lvbW11LmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvaW9tbXUuYwppbmRleCA4ODlkYzJlLi42YmEwODFkIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvaW9tbXUuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvaW9tbXUuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPGFzbS91ZGJnLmg+CiAjaW5jbHVkZSA8YXNtL21tem9uZS5oPgogI2luY2x1ZGUgPGFzbS9wbHBhcl93cmFwcGVycy5oPgorI2luY2x1ZGUgPGFzbS9zdm0uaD4KIAogI2luY2x1ZGUgInBzZXJpZXMuaCIKIApAQCAtNjA5LDcgKzYxMCw3IEBAIHN0YXRpYyB2b2lkIHBjaV9kbWFfYnVzX3NldHVwX3BTZXJpZXMoc3RydWN0IHBjaV9idXMgKmJ1cykKIAogCWlvbW11X3RhYmxlX3NldHBhcm1zKHBjaS0+cGhiLCBkbiwgdGJsKTsKIAl0YmwtPml0X29wcyA9ICZpb21tdV90YWJsZV9wc2VyaWVzX29wczsKLQlpb21tdV9pbml0X3RhYmxlKHRibCwgcGNpLT5waGItPm5vZGUpOworCWlvbW11X2luaXRfdGFibGUodGJsLCBwY2ktPnBoYi0+bm9kZSwgMCwgMCk7CiAKIAkvKiBEaXZpZGUgdGhlIHJlc3QgKDEuNzVHQikgYW1vbmcgdGhlIGNoaWxkcmVuICovCiAJcGNpLT5waGItPmRtYV93aW5kb3dfc2l6ZSA9IDB4ODAwMDAwMDB1bDsKQEAgLTYyMSw3ICs2MjIsOCBAQCBzdGF0aWMgdm9pZCBwY2lfZG1hX2J1c19zZXR1cF9wU2VyaWVzKHN0cnVjdCBwY2lfYnVzICpidXMpCiAKICNpZmRlZiBDT05GSUdfSU9NTVVfQVBJCiBzdGF0aWMgaW50IHRjZV9leGNoYW5nZV9wc2VyaWVzKHN0cnVjdCBpb21tdV90YWJsZSAqdGJsLCBsb25nIGluZGV4LCB1bnNpZ25lZAotCQkJCWxvbmcgKnRjZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gKmRpcmVjdGlvbikKKwkJCQlsb25nICp0Y2UsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uICpkaXJlY3Rpb24sCisJCQkJYm9vbCByZWFsbW9kZSkKIHsKIAlsb25nIHJjOwogCXVuc2lnbmVkIGxvbmcgaW9iYSA9ICh1bnNpZ25lZCBsb25nKSBpbmRleCA8PCB0YmwtPml0X3BhZ2Vfc2hpZnQ7CkBAIC02NDksNyArNjUxLDcgQEAgc3RhdGljIGludCB0Y2VfZXhjaGFuZ2VfcHNlcmllcyhzdHJ1Y3QgaW9tbXVfdGFibGUgKnRibCwgbG9uZyBpbmRleCwgdW5zaWduZWQKIHN0cnVjdCBpb21tdV90YWJsZV9vcHMgaW9tbXVfdGFibGVfbHBhcl9tdWx0aV9vcHMgPSB7CiAJLnNldCA9IHRjZV9idWlsZG11bHRpX3BTZXJpZXNMUCwKICNpZmRlZiBDT05GSUdfSU9NTVVfQVBJCi0JLmV4Y2hhbmdlID0gdGNlX2V4Y2hhbmdlX3BzZXJpZXMsCisJLnhjaGdfbm9fa2lsbCA9IHRjZV9leGNoYW5nZV9wc2VyaWVzLAogI2VuZGlmCiAJLmNsZWFyID0gdGNlX2ZyZWVtdWx0aV9wU2VyaWVzTFAsCiAJLmdldCA9IHRjZV9nZXRfcFNlcmllc0xQCkBAIC02OTAsNyArNjkyLDcgQEAgc3RhdGljIHZvaWQgcGNpX2RtYV9idXNfc2V0dXBfcFNlcmllc0xQKHN0cnVjdCBwY2lfYnVzICpidXMpCiAJCWlvbW11X3RhYmxlX3NldHBhcm1zX2xwYXIocHBjaS0+cGhiLCBwZG4sIHRibCwKIAkJCQlwcGNpLT50YWJsZV9ncm91cCwgZG1hX3dpbmRvdyk7CiAJCXRibC0+aXRfb3BzID0gJmlvbW11X3RhYmxlX2xwYXJfbXVsdGlfb3BzOwotCQlpb21tdV9pbml0X3RhYmxlKHRibCwgcHBjaS0+cGhiLT5ub2RlKTsKKwkJaW9tbXVfaW5pdF90YWJsZSh0YmwsIHBwY2ktPnBoYi0+bm9kZSwgMCwgMCk7CiAJCWlvbW11X3JlZ2lzdGVyX2dyb3VwKHBwY2ktPnRhYmxlX2dyb3VwLAogCQkJCXBjaV9kb21haW5fbnIoYnVzKSwgMCk7CiAJCXByX2RlYnVnKCIgIGNyZWF0ZWQgdGFibGU6ICVwXG4iLCBwcGNpLT50YWJsZV9ncm91cCk7CkBAIC03MTksNyArNzIxLDcgQEAgc3RhdGljIHZvaWQgcGNpX2RtYV9kZXZfc2V0dXBfcFNlcmllcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCQl0YmwgPSBQQ0lfRE4oZG4pLT50YWJsZV9ncm91cC0+dGFibGVzWzBdOwogCQlpb21tdV90YWJsZV9zZXRwYXJtcyhwaGIsIGRuLCB0YmwpOwogCQl0YmwtPml0X29wcyA9ICZpb21tdV90YWJsZV9wc2VyaWVzX29wczsKLQkJaW9tbXVfaW5pdF90YWJsZSh0YmwsIHBoYi0+bm9kZSk7CisJCWlvbW11X2luaXRfdGFibGUodGJsLCBwaGItPm5vZGUsIDAsIDApOwogCQlzZXRfaW9tbXVfdGFibGVfYmFzZSgmZGV2LT5kZXYsIHRibCk7CiAJCXJldHVybjsKIAl9CkBAIC0xMTY5LDcgKzExNzEsNyBAQCBzdGF0aWMgdm9pZCBwY2lfZG1hX2Rldl9zZXR1cF9wU2VyaWVzTFAoc3RydWN0IHBjaV9kZXYgKmRldikKIAkJaW9tbXVfdGFibGVfc2V0cGFybXNfbHBhcihwY2ktPnBoYiwgcGRuLCB0YmwsCiAJCQkJcGNpLT50YWJsZV9ncm91cCwgZG1hX3dpbmRvdyk7CiAJCXRibC0+aXRfb3BzID0gJmlvbW11X3RhYmxlX2xwYXJfbXVsdGlfb3BzOwotCQlpb21tdV9pbml0X3RhYmxlKHRibCwgcGNpLT5waGItPm5vZGUpOworCQlpb21tdV9pbml0X3RhYmxlKHRibCwgcGNpLT5waGItPm5vZGUsIDAsIDApOwogCQlpb21tdV9yZWdpc3Rlcl9ncm91cChwY2ktPnRhYmxlX2dyb3VwLAogCQkJCXBjaV9kb21haW5fbnIocGNpLT5waGItPmJ1cyksIDApOwogCQlwcl9kZWJ1ZygiICBjcmVhdGVkIHRhYmxlOiAlcFxuIiwgcGNpLT50YWJsZV9ncm91cCk7CkBAIC0xMzE4LDcgKzEzMjAsMTUgQEAgdm9pZCBpb21tdV9pbml0X2Vhcmx5X3BTZXJpZXModm9pZCkKIAlvZl9yZWNvbmZpZ19ub3RpZmllcl9yZWdpc3RlcigmaW9tbXVfcmVjb25maWdfbmIpOwogCXJlZ2lzdGVyX21lbW9yeV9ub3RpZmllcigmaW9tbXVfbWVtX25iKTsKIAotCXNldF9wY2lfZG1hX29wcygmZG1hX2lvbW11X29wcyk7CisJLyoKKwkgKiBTZWN1cmUgZ3Vlc3QgbWVtb3J5IGlzIGluYWNlc3NpYmxlIHRvIGRldmljZXMgc28gcmVndWxhciBETUEgaXNuJ3QKKwkgKiBwb3NzaWJsZS4KKwkgKgorCSAqIEluIHRoYXQgY2FzZSBrZWVwIGRldmljZXMnIGRtYV9tYXBfb3BzIGFzIE5VTEwgc28gdGhhdCB0aGUgZ2VuZXJpYworCSAqIERNQSBjb2RlIHBhdGggd2lsbCB1c2UgU1dJT1RMQiB0byBib3VuY2UgYnVmZmVycyBmb3IgRE1BLgorCSAqLworCWlmICghaXNfc2VjdXJlX2d1ZXN0KCkpCisJCXNldF9wY2lfZG1hX29wcygmZG1hX2lvbW11X29wcyk7CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0IGRpc2FibGVfbXVsdGl0Y2UoY2hhciAqc3RyKQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2xwYXIuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9scGFyLmMKaW5kZXggMDliYjg3OC4uYjUzMzU5MiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2xwYXIuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvbHBhci5jCkBAIC01Niw2ICs1NiwyMiBAQCBFWFBPUlRfU1lNQk9MKHBscGFyX2hjYWxsKTsKIEVYUE9SVF9TWU1CT0wocGxwYXJfaGNhbGw5KTsKIEVYUE9SVF9TWU1CT0wocGxwYXJfaGNhbGxfbm9yZXRzKTsKIAorLyoKKyAqIEhfQkxPQ0tfUkVNT1ZFIHN1cHBvcnRlZCBibG9jayBzaXplIGZvciB0aGlzIHBhZ2Ugc2l6ZSBpbiBzZWdtZW50IHdobydzIGJhc2UKKyAqIHBhZ2Ugc2l6ZSBpcyB0aGF0IHBhZ2Ugc2l6ZS4KKyAqCisgKiBUaGUgZmlyc3QgaW5kZXggaXMgdGhlIHNlZ21lbnQgYmFzZSBwYWdlIHNpemUsIHRoZSBzZWNvbmQgb25lIGlzIHRoZSBhY3R1YWwKKyAqIHBhZ2Ugc2l6ZS4KKyAqLworc3RhdGljIGludCBoYmxrcm1fc2l6ZVtNTVVfUEFHRV9DT1VOVF1bTU1VX1BBR0VfQ09VTlRdIF9fcm9fYWZ0ZXJfaW5pdDsKKworLyoKKyAqIER1ZSB0byB0aGUgaW52b2x2ZWQgY29tcGxleGl0eSwgYW5kIHRoYXQgdGhlIGN1cnJlbnQgaHlwZXJ2aXNvciBpcyBvbmx5CisgKiByZXR1cm5pbmcgdGhpcyB2YWx1ZSBvciAwLCB3ZSBhcmUgbGltaXRpbmcgdGhlIHN1cHBvcnQgb2YgdGhlIEhfQkxPQ0tfUkVNT1ZFCisgKiBidWZmZXIgc2l6ZSB0byA4IHNpemUgYmxvY2suCisgKi8KKyNkZWZpbmUgSEJMS1JNX1NVUFBPUlRFRF9CTE9DS19TSVpFIDgKKwogI2lmZGVmIENPTkZJR19WSVJUX0NQVV9BQ0NPVU5USU5HX05BVElWRQogc3RhdGljIHU4IGR0bF9tYXNrID0gRFRMX0xPR19QUkVFTVBUOwogI2Vsc2UKQEAgLTk4NCw2ICsxMDAwLDE3IEBAIHN0YXRpYyB2b2lkIHBTZXJpZXNfbHBhcl9ocHRlX2ludmFsaWRhdGUodW5zaWduZWQgbG9uZyBzbG90LCB1bnNpZ25lZCBsb25nIHZwbiwKICNkZWZpbmUgSEJMS1JfQ1RSTF9FUlJOT1RGT1VORAkweDg4MDAwMDAwMDAwMDAwMDBVTAogI2RlZmluZSBIQkxLUl9DVFJMX0VSUkJVU1kJMHhhMDAwMDAwMDAwMDAwMDAwVUwKIAorLyoKKyAqIFJldHVybmVkIHRydWUgaWYgd2UgYXJlIHN1cHBvcnRpbmcgdGhpcyBibG9jayBzaXplIGZvciB0aGUgc3BlY2lmaWVkIHNlZ21lbnQKKyAqIGJhc2UgcGFnZSBzaXplIGFuZCBhY3R1YWwgcGFnZSBzaXplLgorICoKKyAqIEN1cnJlbnRseSwgd2Ugb25seSBzdXBwb3J0IDggc2l6ZSBibG9jay4KKyAqLworc3RhdGljIGlubGluZSBib29sIGlzX3N1cHBvcnRlZF9obGJrcm0oaW50IGJwc2l6ZSwgaW50IHBzaXplKQoreworCXJldHVybiAoaGJsa3JtX3NpemVbYnBzaXplXVtwc2l6ZV0gPT0gSEJMS1JNX1NVUFBPUlRFRF9CTE9DS19TSVpFKTsKK30KKwogLyoqCiAgKiBIX0JMT0NLX1JFTU9WRSBjYWxsZXIuCiAgKiBAaWR4IHNob3VsZCBwb2ludCB0byB0aGUgbGF0ZXN0IEBwYXJhbSBlbnRyeSBzZXQgd2l0aCBhIFBURVguCkBAIC0xMTQzLDcgKzExNzAsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19wU2VyaWVzX2xwYXJfaHVnZXBhZ2VfaW52YWxpZGF0ZSh1bnNpZ25lZCBsb25nICpzbG90LAogCWlmIChsb2NrX3RsYmllKQogCQlzcGluX2xvY2tfaXJxc2F2ZSgmcFNlcmllc19scGFyX3RsYmllX2xvY2ssIGZsYWdzKTsKIAotCWlmIChmaXJtd2FyZV9oYXNfZmVhdHVyZShGV19GRUFUVVJFX0JMT0NLX1JFTU9WRSkpCisJLyogQXNzdW1pbmcgVEhQIHNpemUgaXMgMTZNICovCisJaWYgKGlzX3N1cHBvcnRlZF9obGJrcm0ocHNpemUsIE1NVV9QQUdFXzE2TSkpCiAJCWh1Z2VwYWdlX2Jsb2NrX2ludmFsaWRhdGUoc2xvdCwgdnBuLCBjb3VudCwgcHNpemUsIHNzaXplKTsKIAllbHNlCiAJCWh1Z2VwYWdlX2J1bGtfaW52YWxpZGF0ZShzbG90LCB2cG4sIGNvdW50LCBwc2l6ZSwgc3NpemUpOwpAQCAtMTMxMiw2ICsxMzQwLDEzNyBAQCBzdGF0aWMgdm9pZCBkb19ibG9ja19yZW1vdmUodW5zaWduZWQgbG9uZyBudW1iZXIsIHN0cnVjdCBwcGM2NF90bGJfYmF0Y2ggKmJhdGNoLAogfQogCiAvKgorICogVExCIEJsb2NrIEludmFsaWRhdGUgQ2hhcmFjdGVyaXN0aWNzCisgKgorICogVGhlc2UgY2hhcmFjdGVyaXN0aWNzIGRlZmluZSB0aGUgc2l6ZSBvZiB0aGUgYmxvY2sgdGhlIGhjYWxsIEhfQkxPQ0tfUkVNT1ZFCisgKiBpcyBhYmxlIHRvIHByb2Nlc3MgZm9yIGVhY2ggY291cGxlIHNlZ21lbnQgYmFzZSBwYWdlIHNpemUsIGFjdHVhbCBwYWdlIHNpemUuCisgKgorICogVGhlIGlibSxnZXQtc3lzdGVtLXBhcmFtZXRlciBwcm9wZXJ0aWVzIGlzIHJldHVybmluZyBhIGJ1ZmZlciB3aXRoIHRoZQorICogZm9sbG93aW5nIGxheW91dDoKKyAqCisgKiBbIDIgYnl0ZXMgc2l6ZSBvZiB0aGUgUlRBUyBidWZmZXIgKGV4Y2x1ZGluZyB0aGVzZSAyIGJ5dGVzKSBdCisgKiAtLS0tLS0tLS0tLS0tLS0tLQorICogVExCIEJsb2NrIEludmFsaWRhdGUgU3BlY2lmaWVyczoKKyAqIFsgMSBieXRlIExPRyBiYXNlIDIgb2YgdGhlIFRMQiBpbnZhbGlkYXRlIGJsb2NrIHNpemUgYmVpbmcgc3BlY2lmaWVkIF0KKyAqIFsgMSBieXRlIE51bWJlciBvZiBwYWdlIHNpemVzIChOKSB0aGF0IGFyZSBzdXBwb3J0ZWQgZm9yIHRoZSBzcGVjaWZpZWQKKyAqICAgICAgICAgIFRMQiBpbnZhbGlkYXRlIGJsb2NrIHNpemUgXQorICogWyAxIGJ5dGUgRW5jb2RlZCBzZWdtZW50IGJhc2UgcGFnZSBzaXplIGFuZCBhY3R1YWwgcGFnZSBzaXplCisgKiAgICAgICAgICBNU0I9MCBtZWFucyA0ayBzZWdtZW50IGJhc2UgcGFnZSBzaXplIGFuZCBhY3R1YWwgcGFnZSBzaXplCisgKiAgICAgICAgICBNU0I9MSB0aGUgcGVuYyB2YWx1ZSBpbiBtbXVfcHNpemVfZGVmIF0KKyAqIC4uLgorICogLS0tLS0tLS0tLS0tLS0tLS0KKyAqIE5leHQgVExCIEJsb2NrIEludmFsaWRhdGUgU3BlY2lmaWVycy4uLgorICogLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFsgMCBdCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRfaGJsa3JtX2Jsb2Nfc2l6ZShpbnQgYnBzaXplLCBpbnQgcHNpemUsCisJCQkJCXVuc2lnbmVkIGludCBibG9ja19zaXplKQoreworCWlmIChibG9ja19zaXplID4gaGJsa3JtX3NpemVbYnBzaXplXVtwc2l6ZV0pCisJCWhibGtybV9zaXplW2Jwc2l6ZV1bcHNpemVdID0gYmxvY2tfc2l6ZTsKK30KKworLyoKKyAqIERlY29kZSB0aGUgRW5jb2RlZCBzZWdtZW50IGJhc2UgcGFnZSBzaXplIGFuZCBhY3R1YWwgcGFnZSBzaXplLgorICogUEFQUiBzcGVjaWZpZXM6CisgKiAgIC0gYml0IDcgaXMgdGhlIEwgYml0CisgKiAgIC0gYml0cyAwLTUgYXJlIHRoZSBwZW5jIHZhbHVlCisgKiBJZiB0aGUgTCBiaXQgaXMgMCwgdGhpcyBtZWFucyA0SyBzZWdtZW50IGJhc2UgcGFnZSBzaXplIGFuZCBhY3R1YWwgcGFnZSBzaXplCisgKiBvdGhlcndpc2UgdGhlIHBlbmMgdmFsdWUgc2hvdWxkIGJlIHJlYWQuCisgKi8KKyNkZWZpbmUgSEJMS1JNX0xfTUFTSwkJMHg4MAorI2RlZmluZSBIQkxLUk1fUEVOQ19NQVNLCTB4M2YKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgY2hlY2tfbHBfc2V0X2hibGtybSh1bnNpZ25lZCBpbnQgbHAsCisJCQkJCSAgICAgIHVuc2lnbmVkIGludCBibG9ja19zaXplKQoreworCXVuc2lnbmVkIGludCBicHNpemUsIHBzaXplOworCisJLyogRmlyc3QsIGNoZWNrIHRoZSBMIGJpdCwgaWYgbm90IHNldCwgdGhpcyBtZWFucyA0SyAqLworCWlmICgobHAgJiBIQkxLUk1fTF9NQVNLKSA9PSAwKSB7CisJCXNldF9oYmxrcm1fYmxvY19zaXplKE1NVV9QQUdFXzRLLCBNTVVfUEFHRV80SywgYmxvY2tfc2l6ZSk7CisJCXJldHVybjsKKwl9CisKKwlscCAmPSBIQkxLUk1fUEVOQ19NQVNLOworCWZvciAoYnBzaXplID0gMDsgYnBzaXplIDwgTU1VX1BBR0VfQ09VTlQ7IGJwc2l6ZSsrKSB7CisJCXN0cnVjdCBtbXVfcHNpemVfZGVmICpkZWYgPSAmbW11X3BzaXplX2RlZnNbYnBzaXplXTsKKworCQlmb3IgKHBzaXplID0gMDsgcHNpemUgPCBNTVVfUEFHRV9DT1VOVDsgcHNpemUrKykgeworCQkJaWYgKGRlZi0+cGVuY1twc2l6ZV0gPT0gbHApIHsKKwkJCQlzZXRfaGJsa3JtX2Jsb2Nfc2l6ZShicHNpemUsIHBzaXplLCBibG9ja19zaXplKTsKKwkJCQlyZXR1cm47CisJCQl9CisJCX0KKwl9Cit9CisKKyNkZWZpbmUgU1BMUEFSX1RMQl9CSUNfVE9LRU4JCTUwCisKKy8qCisgKiBUaGUgc2l6ZSBvZiB0aGUgVExCIEJsb2NrIEludmFsaWRhdGUgQ2hhcmFjdGVyaXN0aWNzIGlzIHZhcmlhYmxlLiBCdXQgYXQgdGhlCisgKiBtYXhpbXVtIGl0IHdpbGwgYmUgdGhlIG51bWJlciBvZiBwb3NzaWJsZSBwYWdlIHNpemVzICoyICsgMTAgYnl0ZXMuCisgKiBDdXJyZW50bHkgTU1VX1BBR0VfQ09VTlQgaXMgMTYsIHdoaWNoIG1lYW5zIDQyIGJ5dGVzLiBVc2UgYSBjYWNoZSBsaW5lIHNpemUKKyAqICgxMjggYnl0ZXMpIGZvciB0aGUgYnVmZmVyIHRvIGdldCBwbGVudHkgb2Ygc3BhY2UuCisgKi8KKyNkZWZpbmUgU1BMUEFSX1RMQl9CSUNfTUFYTEVOR1RICTEyOAorCit2b2lkIF9faW5pdCBwc2VyaWVzX2xwYXJfcmVhZF9oYmxrcm1fY2hhcmFjdGVyaXN0aWNzKHZvaWQpCit7CisJdW5zaWduZWQgY2hhciBsb2NhbF9idWZmZXJbU1BMUEFSX1RMQl9CSUNfTUFYTEVOR1RIXTsKKwlpbnQgY2FsbF9zdGF0dXMsIGxlbiwgaWR4LCBicHNpemU7CisKKwlzcGluX2xvY2soJnJ0YXNfZGF0YV9idWZfbG9jayk7CisJbWVtc2V0KHJ0YXNfZGF0YV9idWYsIDAsIFJUQVNfREFUQV9CVUZfU0laRSk7CisJY2FsbF9zdGF0dXMgPSBydGFzX2NhbGwocnRhc190b2tlbigiaWJtLGdldC1zeXN0ZW0tcGFyYW1ldGVyIiksIDMsIDEsCisJCQkJTlVMTCwKKwkJCQlTUExQQVJfVExCX0JJQ19UT0tFTiwKKwkJCQlfX3BhKHJ0YXNfZGF0YV9idWYpLAorCQkJCVJUQVNfREFUQV9CVUZfU0laRSk7CisJbWVtY3B5KGxvY2FsX2J1ZmZlciwgcnRhc19kYXRhX2J1ZiwgU1BMUEFSX1RMQl9CSUNfTUFYTEVOR1RIKTsKKwlsb2NhbF9idWZmZXJbU1BMUEFSX1RMQl9CSUNfTUFYTEVOR1RIIC0gMV0gPSAnXDAnOworCXNwaW5fdW5sb2NrKCZydGFzX2RhdGFfYnVmX2xvY2spOworCisJaWYgKGNhbGxfc3RhdHVzICE9IDApIHsKKwkJcHJfd2FybigiJXMgJXMgRXJyb3IgY2FsbGluZyBnZXQtc3lzdGVtLXBhcmFtZXRlciAoMHgleClcbiIsCisJCQlfX0ZJTEVfXywgX19mdW5jX18sIGNhbGxfc3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogVGhlIGZpcnN0IHR3byAoMikgYnl0ZXMgb2YgdGhlIGRhdGEgaW4gdGhlIGJ1ZmZlciBhcmUgdGhlIGxlbmd0aCBvZgorCSAqIHRoZSByZXR1cm5lZCBkYXRhLCBub3QgY291bnRpbmcgdGhlc2UgZmlyc3QgdHdvICgyKSBieXRlcy4KKwkgKi8KKwlsZW4gPSBiZTE2X3RvX2NwdSgqKCh1MTYgKilsb2NhbF9idWZmZXIpKSArIDI7CisJaWYgKGxlbiA+IFNQTFBBUl9UTEJfQklDX01BWExFTkdUSCkgeworCQlwcl93YXJuKCIlcyB0b28gbGFyZ2UgcmV0dXJuZWQgYnVmZmVyICVkIiwgX19mdW5jX18sIGxlbik7CisJCXJldHVybjsKKwl9CisKKwlpZHggPSAyOworCXdoaWxlIChpZHggPCBsZW4pIHsKKwkJdTggYmxvY2tfc2hpZnQgPSBsb2NhbF9idWZmZXJbaWR4KytdOworCQl1MzIgYmxvY2tfc2l6ZTsKKwkJdW5zaWduZWQgaW50IG5wc2l6ZTsKKworCQlpZiAoIWJsb2NrX3NoaWZ0KQorCQkJYnJlYWs7CisKKwkJYmxvY2tfc2l6ZSA9IDEgPDwgYmxvY2tfc2hpZnQ7CisKKwkJZm9yIChucHNpemUgPSBsb2NhbF9idWZmZXJbaWR4KytdOworCQkgICAgIG5wc2l6ZSA+IDAgJiYgaWR4IDwgbGVuOyBucHNpemUtLSkKKwkJCWNoZWNrX2xwX3NldF9oYmxrcm0oKHVuc2lnbmVkIGludCkgbG9jYWxfYnVmZmVyW2lkeCsrXSwKKwkJCQkJICAgIGJsb2NrX3NpemUpOworCX0KKworCWZvciAoYnBzaXplID0gMDsgYnBzaXplIDwgTU1VX1BBR0VfQ09VTlQ7IGJwc2l6ZSsrKQorCQlmb3IgKGlkeCA9IDA7IGlkeCA8IE1NVV9QQUdFX0NPVU5UOyBpZHgrKykKKwkJCWlmIChoYmxrcm1fc2l6ZVticHNpemVdW2lkeF0pCisJCQkJcHJfaW5mbygiSF9CTE9DS19SRU1PVkUgc3VwcG9ydHMgYmFzZSBwc2l6ZTolZCBwc2l6ZTolZCBibG9jayBzaXplOiVkIiwKKwkJCQkJYnBzaXplLCBpZHgsIGhibGtybV9zaXplW2Jwc2l6ZV1baWR4XSk7Cit9CisKKy8qCiAgKiBUYWtlIGEgc3BpbmxvY2sgYXJvdW5kIGZsdXNoZXMgdG8gYXZvaWQgYm91bmNpbmcgdGhlIGh5cGVydmlzb3IgdGxiaWUKICAqIGxvY2suCiAgKi8KQEAgLTEzMzAsNyArMTQ4OSw3IEBAIHN0YXRpYyB2b2lkIHBTZXJpZXNfbHBhcl9mbHVzaF9oYXNoX3JhbmdlKHVuc2lnbmVkIGxvbmcgbnVtYmVyLCBpbnQgbG9jYWwpCiAJaWYgKGxvY2tfdGxiaWUpCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZwU2VyaWVzX2xwYXJfdGxiaWVfbG9jaywgZmxhZ3MpOwogCi0JaWYgKGZpcm13YXJlX2hhc19mZWF0dXJlKEZXX0ZFQVRVUkVfQkxPQ0tfUkVNT1ZFKSkgeworCWlmIChpc19zdXBwb3J0ZWRfaGxia3JtKGJhdGNoLT5wc2l6ZSwgYmF0Y2gtPnBzaXplKSkgewogCQlkb19ibG9ja19yZW1vdmUobnVtYmVyLCBiYXRjaCwgcGFyYW0pOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xNDEzLDcgKzE1NzIsMTAgQEAgc3RhdGljIGludCBwc2VyaWVzX2xwYXJfcmVzaXplX2hwdF9jb21taXQodm9pZCAqZGF0YSkKIAlyZXR1cm4gMDsKIH0KIAotLyogTXVzdCBiZSBjYWxsZWQgaW4gdXNlciBjb250ZXh0ICovCisvKgorICogTXVzdCBiZSBjYWxsZWQgaW4gcHJvY2VzcyBjb250ZXh0LiBUaGUgY2FsbGVyIG11c3QgaG9sZCB0aGUKKyAqIGNwdXNfbG9jay4KKyAqLwogc3RhdGljIGludCBwc2VyaWVzX2xwYXJfcmVzaXplX2hwdCh1bnNpZ25lZCBsb25nIHNoaWZ0KQogewogCXN0cnVjdCBocHRfcmVzaXplX3N0YXRlIHN0YXRlID0gewpAQCAtMTQ2Nyw3ICsxNjI5LDggQEAgc3RhdGljIGludCBwc2VyaWVzX2xwYXJfcmVzaXplX2hwdCh1bnNpZ25lZCBsb25nIHNoaWZ0KQogCiAJdDEgPSBrdGltZV9nZXQoKTsKIAotCXJjID0gc3RvcF9tYWNoaW5lKHBzZXJpZXNfbHBhcl9yZXNpemVfaHB0X2NvbW1pdCwgJnN0YXRlLCBOVUxMKTsKKwlyYyA9IHN0b3BfbWFjaGluZV9jcHVzbG9ja2VkKHBzZXJpZXNfbHBhcl9yZXNpemVfaHB0X2NvbW1pdCwKKwkJCQkgICAgICZzdGF0ZSwgTlVMTCk7CiAKIAl0MiA9IGt0aW1lX2dldCgpOwogCkBAIC0xNTI3LDE2ICsxNjkwLDI0IEBAIHZvaWQgX19pbml0IGhwdGVfaW5pdF9wc2VyaWVzKHZvaWQpCiAJbW11X2hhc2hfb3BzLmZsdXNoX2hhc2hfcmFuZ2UJID0gcFNlcmllc19scGFyX2ZsdXNoX2hhc2hfcmFuZ2U7CiAJbW11X2hhc2hfb3BzLmhwdGVfY2xlYXJfYWxsICAgICAgPSBwc2VyaWVzX2hwdGVfY2xlYXJfYWxsOwogCW1tdV9oYXNoX29wcy5odWdlcGFnZV9pbnZhbGlkYXRlID0gcFNlcmllc19scGFyX2h1Z2VwYWdlX2ludmFsaWRhdGU7Ci0JcmVnaXN0ZXJfcHJvY2Vzc190YWJsZQkJID0gcHNlcmllc19scGFyX3JlZ2lzdGVyX3Byb2Nlc3NfdGFibGU7CiAKIAlpZiAoZmlybXdhcmVfaGFzX2ZlYXR1cmUoRldfRkVBVFVSRV9IUFRfUkVTSVpFKSkKIAkJbW11X2hhc2hfb3BzLnJlc2l6ZV9ocHQgPSBwc2VyaWVzX2xwYXJfcmVzaXplX2hwdDsKKworCS8qCisJICogT24gUE9XRVI5LCB3ZSBuZWVkIHRvIGRvIGEgSF9SRUdJU1RFUl9QUk9DX1RCTCBoY2FsbAorCSAqIHRvIGluZm9ybSB0aGUgaHlwZXJ2aXNvciB0aGF0IHdlIHdpc2ggdG8gdXNlIHRoZSBIUFQuCisJICovCisJaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSX0FSQ0hfMzAwKSkKKwkJcHNlcmllc19scGFyX3JlZ2lzdGVyX3Byb2Nlc3NfdGFibGUoMCwgMCwgMCk7CiB9CiAKIHZvaWQgcmFkaXhfaW5pdF9wc2VyaWVzKHZvaWQpCiB7CiAJcHJfaW5mbygiVXNpbmcgcmFkaXggTU1VIHVuZGVyIGh5cGVydmlzb3JcbiIpOwotCXJlZ2lzdGVyX3Byb2Nlc3NfdGFibGUgPSBwc2VyaWVzX2xwYXJfcmVnaXN0ZXJfcHJvY2Vzc190YWJsZTsKKworCXBzZXJpZXNfbHBhcl9yZWdpc3Rlcl9wcm9jZXNzX3RhYmxlKF9fcGEocHJvY2Vzc190YiksCisJCQkJCQkwLCBQUlRCX1NJWkVfU0hJRlQgLSAxMik7CiB9CiAKICNpZmRlZiBDT05GSUdfUFBDX1NNTFBBUgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL21vYmlsaXR5LmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvbW9iaWxpdHkuYwppbmRleCBmZTgxMmJlLi5iNTcxMjg1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvbW9iaWxpdHkuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvbW9iaWxpdHkuYwpAQCAtOSw2ICs5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9rb2JqZWN0Lmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgpAQCAtMjA3LDcgKzIwOCwxMSBAQCBzdGF0aWMgaW50IHVwZGF0ZV9kdF9ub2RlKF9fYmUzMiBwaGFuZGxlLCBzMzIgc2NvcGUpCiAKIAkJCQlwcm9wX2RhdGEgKz0gdmQ7CiAJCQl9CisKKwkJCWNvbmRfcmVzY2hlZCgpOwogCQl9CisKKwkJY29uZF9yZXNjaGVkKCk7CiAJfSB3aGlsZSAocnRhc19yYyA9PSAxKTsKIAogCW9mX25vZGVfcHV0KGRuKTsKQEAgLTMxMCw4ICszMTUsMTIgQEAgaW50IHBzZXJpZXNfZGV2aWNldHJlZV91cGRhdGUoczMyIHNjb3BlKQogCQkJCQlhZGRfZHRfbm9kZShwaGFuZGxlLCBkcmNfaW5kZXgpOwogCQkJCQlicmVhazsKIAkJCQl9CisKKwkJCQljb25kX3Jlc2NoZWQoKTsKIAkJCX0KIAkJfQorCisJCWNvbmRfcmVzY2hlZCgpOwogCX0gd2hpbGUgKHJjID09IDEpOwogCiAJa2ZyZWUocnRhc19idWYpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3BhcHJfc2NtLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcGFwcl9zY20uYwppbmRleCBhNWFjMzcxLi42MTg4MzI5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcGFwcl9zY20uYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcGFwcl9zY20uYwpAQCAtNjUsMjkgKzY1LDIxIEBAIHN0YXRpYyBpbnQgZHJjX3BtZW1fYmluZChzdHJ1Y3QgcGFwcl9zY21fcHJpdiAqcCkKIAkJY29uZF9yZXNjaGVkKCk7CiAJfSB3aGlsZSAocmMgPT0gSF9CVVNZKTsKIAotCWlmIChyYykgewotCQkvKiBIX09WRVJMQVAgbmVlZHMgYSBzZXBhcmF0ZSBlcnJvciBwYXRoICovCi0JCWlmIChyYyA9PSBIX09WRVJMQVApCi0JCQlyZXR1cm4gLUVCVVNZOwotCi0JCWRldl9lcnIoJnAtPnBkZXYtPmRldiwgImJpbmQgZXJyOiAlbGxkXG4iLCByYyk7Ci0JCXJldHVybiAtRU5YSU87Ci0JfQorCWlmIChyYykKKwkJcmV0dXJuIHJjOwogCiAJcC0+Ym91bmRfYWRkciA9IHNhdmVkOwotCi0JZGV2X2RiZygmcC0+cGRldi0+ZGV2LCAiYm91bmQgZHJjICV4IHRvICVwUlxuIiwgcC0+ZHJjX2luZGV4LCAmcC0+cmVzKTsKLQotCXJldHVybiAwOworCWRldl9kYmcoJnAtPnBkZXYtPmRldiwgImJvdW5kIGRyYyAweCV4IHRvICVwUlxuIiwgcC0+ZHJjX2luZGV4LCAmcC0+cmVzKTsKKwlyZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgZHJjX3BtZW1fdW5iaW5kKHN0cnVjdCBwYXByX3NjbV9wcml2ICpwKQorc3RhdGljIHZvaWQgZHJjX3BtZW1fdW5iaW5kKHN0cnVjdCBwYXByX3NjbV9wcml2ICpwKQogewogCXVuc2lnbmVkIGxvbmcgcmV0W1BMUEFSX0hDQUxMX0JVRlNJWkVdOwogCXVpbnQ2NF90IHRva2VuID0gMDsKIAlpbnQ2NF90IHJjOwogCi0JZGV2X2RiZygmcC0+cGRldi0+ZGV2LCAidW5iaW5kIGRyYyAleFxuIiwgcC0+ZHJjX2luZGV4KTsKKwlkZXZfZGJnKCZwLT5wZGV2LT5kZXYsICJ1bmJpbmQgZHJjIDB4JXhcbiIsIHAtPmRyY19pbmRleCk7CiAKIAkvKiBOQjogdW5iaW5kIGhhcyB0aGUgc2FtZSByZXRyeSByZXF1aXJlbWVudHMgYXMgZHJjX3BtZW1fYmluZCgpICovCiAJZG8gewpAQCAtMTEwLDEyICsxMDIsNDggQEAgc3RhdGljIGludCBkcmNfcG1lbV91bmJpbmQoc3RydWN0IHBhcHJfc2NtX3ByaXYgKnApCiAJaWYgKHJjKQogCQlkZXZfZXJyKCZwLT5wZGV2LT5kZXYsICJ1bmJpbmQgZXJyb3I6ICVsbGRcbiIsIHJjKTsKIAllbHNlCi0JCWRldl9kYmcoJnAtPnBkZXYtPmRldiwgInVuYmluZCBkcmMgJXggY29tcGxldGVcbiIsCisJCWRldl9kYmcoJnAtPnBkZXYtPmRldiwgInVuYmluZCBkcmMgMHgleCBjb21wbGV0ZVxuIiwKIAkJCXAtPmRyY19pbmRleCk7CiAKLQlyZXR1cm4gcmMgPT0gSF9TVUNDRVNTID8gMCA6IC1FTlhJTzsKKwlyZXR1cm47CiB9CiAKK3N0YXRpYyBpbnQgZHJjX3BtZW1fcXVlcnlfbl9iaW5kKHN0cnVjdCBwYXByX3NjbV9wcml2ICpwKQoreworCXVuc2lnbmVkIGxvbmcgc3RhcnRfYWRkcjsKKwl1bnNpZ25lZCBsb25nIGVuZF9hZGRyOworCXVuc2lnbmVkIGxvbmcgcmV0W1BMUEFSX0hDQUxMX0JVRlNJWkVdOworCWludDY0X3QgcmM7CisKKworCXJjID0gcGxwYXJfaGNhbGwoSF9TQ01fUVVFUllfQkxPQ0tfTUVNX0JJTkRJTkcsIHJldCwKKwkJCSBwLT5kcmNfaW5kZXgsIDApOworCWlmIChyYykKKwkJZ290byBlcnJfb3V0OworCXN0YXJ0X2FkZHIgPSByZXRbMF07CisKKwkvKiBNYWtlIHN1cmUgdGhlIGZ1bGwgcmVnaW9uIGlzIGJvdW5kLiAqLworCXJjID0gcGxwYXJfaGNhbGwoSF9TQ01fUVVFUllfQkxPQ0tfTUVNX0JJTkRJTkcsIHJldCwKKwkJCSBwLT5kcmNfaW5kZXgsIHAtPmJsb2NrcyAtIDEpOworCWlmIChyYykKKwkJZ290byBlcnJfb3V0OworCWVuZF9hZGRyID0gcmV0WzBdOworCisJaWYgKChlbmRfYWRkciAtIHN0YXJ0X2FkZHIpICE9ICgocC0+YmxvY2tzIC0gMSkgKiBwLT5ibG9ja19zaXplKSkKKwkJZ290byBlcnJfb3V0OworCisJcC0+Ym91bmRfYWRkciA9IHN0YXJ0X2FkZHI7CisJZGV2X2RiZygmcC0+cGRldi0+ZGV2LCAiYm91bmQgZHJjIDB4JXggdG8gJXBSXG4iLCBwLT5kcmNfaW5kZXgsICZwLT5yZXMpOworCXJldHVybiByYzsKKworZXJyX291dDoKKwlkZXZfaW5mbygmcC0+cGRldi0+ZGV2LAorCQkgIkZhaWxlZCB0byBxdWVyeSwgdHJ5aW5nIGFuIHVuYmluZCBmb2xsb3dlZCBieSBiaW5kIik7CisJZHJjX3BtZW1fdW5iaW5kKHApOworCXJldHVybiBkcmNfcG1lbV9iaW5kKHApOworfQorCisKIHN0YXRpYyBpbnQgcGFwcl9zY21fbWV0YV9nZXQoc3RydWN0IHBhcHJfc2NtX3ByaXYgKnAsCiAJCQkgICAgIHN0cnVjdCBuZF9jbWRfZ2V0X2NvbmZpZ19kYXRhX2hkciAqaGRyKQogewpAQCAtNDM2LDE0ICs0NjQsMTQgQEAgc3RhdGljIGludCBwYXByX3NjbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXJjID0gZHJjX3BtZW1fYmluZChwKTsKIAogCS8qIElmIHBoeXAgc2F5cyBkcmMgbWVtb3J5IHN0aWxsIGJvdW5kIHRoZW4gZm9yY2UgdW5ib3VuZCBhbmQgcmV0cnkgKi8KLQlpZiAocmMgPT0gLUVCVVNZKSB7Ci0JCWRldl93YXJuKCZwZGV2LT5kZXYsICJSZXRyeWluZyBiaW5kIGFmdGVyIHVuYmluZGluZ1xuIik7Ci0JCWRyY19wbWVtX3VuYmluZChwKTsKLQkJcmMgPSBkcmNfcG1lbV9iaW5kKHApOwotCX0KKwlpZiAocmMgPT0gSF9PVkVSTEFQKQorCQlyYyA9IGRyY19wbWVtX3F1ZXJ5X25fYmluZChwKTsKIAotCWlmIChyYykKKwlpZiAocmMgIT0gSF9TVUNDRVNTKSB7CisJCWRldl9lcnIoJnAtPnBkZXYtPmRldiwgImJpbmQgZXJyOiAlZFxuIiwgcmMpOworCQlyYyA9IC1FTlhJTzsKIAkJZ290byBlcnI7CisJfQogCiAJLyogc2V0dXAgdGhlIHJlc291cmNlIGZvciB0aGUgbmV3bHkgYm91bmQgcmFuZ2UgKi8KIAlwLT5yZXMuc3RhcnQgPSBwLT5ib3VuZF9hZGRyOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3BjaS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3BjaS5jCmluZGV4IDFlYWUxZDAuLjcyMjgzMDkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9wY2kuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcGNpLmMKQEAgLTIyOSw4ICsyMjksNyBAQCB2b2lkIF9faW5pdCBwU2VyaWVzX2ZpbmFsX2ZpeHVwKHZvaWQpCiAKIAlwU2VyaWVzX3JlcXVlc3RfcmVnaW9ucygpOwogCi0JZWVoX3Byb2JlX2RldmljZXMoKTsKLQllZWhfYWRkcl9jYWNoZV9idWlsZCgpOworCWVlaF9zaG93X2VuYWJsZWQoKTsKIAogI2lmZGVmIENPTkZJR19QQ0lfSU9WCiAJcHBjX21kLnBjaWJpb3Nfc3Jpb3ZfZW5hYmxlID0gcHNlcmllc19wY2liaW9zX3NyaW92X2VuYWJsZTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9wc2VyaWVzLmggYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcHNlcmllcy5oCmluZGV4IGE2NjI0ZDQuLjEzZmEzNzBhIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcHNlcmllcy5oCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9wc2VyaWVzLmgKQEAgLTExMiw1ICsxMTIsNiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY21vX2dldF9wYWdlX3NpemUodm9pZCkKIGludCBkbHBhcl93b3JrcXVldWVfaW5pdCh2b2lkKTsKIAogdm9pZCBwc2VyaWVzX3NldHVwX3JmaV9mbHVzaCh2b2lkKTsKK3ZvaWQgcHNlcmllc19scGFyX3JlYWRfaGJsa3JtX2NoYXJhY3RlcmlzdGljcyh2b2lkKTsKIAogI2VuZGlmIC8qIF9QU0VSSUVTX1BTRVJJRVNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3Jhcy5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3Jhcy5jCmluZGV4IGYxNmZkZDAuLjNhY2RjYzMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9yYXMuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcmFzLmMKQEAgLTc2LDYgKzc2LDcgQEAgc3RydWN0IHBzZXJpZXNfbWNfZXJyb3Jsb2cgewogI2RlZmluZSBNQ19FUlJPUl9UWVBFX1VFCQkweDAwCiAjZGVmaW5lIE1DX0VSUk9SX1RZUEVfU0xCCQkweDAxCiAjZGVmaW5lIE1DX0VSUk9SX1RZUEVfRVJBVAkJMHgwMgorI2RlZmluZSBNQ19FUlJPUl9UWVBFX1VOS05PV04JCTB4MDMKICNkZWZpbmUgTUNfRVJST1JfVFlQRV9UTEIJCTB4MDQKICNkZWZpbmUgTUNfRVJST1JfVFlQRV9EX0NBQ0hFCQkweDA1CiAjZGVmaW5lIE1DX0VSUk9SX1RZUEVfSV9DQUNIRQkJMHgwNwpAQCAtODcsNiArODgsOSBAQCBzdHJ1Y3QgcHNlcmllc19tY19lcnJvcmxvZyB7CiAjZGVmaW5lIE1DX0VSUk9SX1VFX0xPQURfU1RPUkUJCQkzCiAjZGVmaW5lIE1DX0VSUk9SX1VFX1BBR0VfVEFCTEVfV0FMS19MT0FEX1NUT1JFCTQKIAorI2RlZmluZSBVRV9FRkZFQ1RJVkVfQUREUl9QUk9WSURFRAkJMHg0MAorI2RlZmluZSBVRV9MT0dJQ0FMX0FERFJfUFJPVklERUQJCTB4MjAKKwogI2RlZmluZSBNQ19FUlJPUl9TTEJfUEFSSVRZCQkwCiAjZGVmaW5lIE1DX0VSUk9SX1NMQl9NVUxUSUhJVAkJMQogI2RlZmluZSBNQ19FUlJPUl9TTEJfSU5ERVRFUk1JTkFURQkyCkBAIC0xMTMsMjcgKzExNyw2IEBAIHN0YXRpYyBpbmxpbmUgdTggcnRhc19tY19lcnJvcl9zdWJfdHlwZShjb25zdCBzdHJ1Y3QgcHNlcmllc19tY19lcnJvcmxvZyAqbWxvZykKIAl9CiB9CiAKLXN0YXRpYwotaW5saW5lIHU2NCBydGFzX21jX2dldF9lZmZlY3RpdmVfYWRkcihjb25zdCBzdHJ1Y3QgcHNlcmllc19tY19lcnJvcmxvZyAqbWxvZykKLXsKLQlfX2JlNjQgYWRkciA9IDA7Ci0KLQlzd2l0Y2ggKG1sb2ctPmVycm9yX3R5cGUpIHsKLQljYXNlCU1DX0VSUk9SX1RZUEVfVUU6Ci0JCWlmIChtbG9nLT5zdWJfZXJyX3R5cGUgJiAweDQwKQotCQkJYWRkciA9IG1sb2ctPmVmZmVjdGl2ZV9hZGRyZXNzOwotCQlicmVhazsKLQljYXNlCU1DX0VSUk9SX1RZUEVfU0xCOgotCWNhc2UJTUNfRVJST1JfVFlQRV9FUkFUOgotCWNhc2UJTUNfRVJST1JfVFlQRV9UTEI6Ci0JCWlmIChtbG9nLT5zdWJfZXJyX3R5cGUgJiAweDgwKQotCQkJYWRkciA9IG1sb2ctPmVmZmVjdGl2ZV9hZGRyZXNzOwotCWRlZmF1bHQ6Ci0JCWJyZWFrOwotCX0KLQlyZXR1cm4gYmU2NF90b19jcHUoYWRkcik7Ci19Ci0KIC8qCiAgKiBFbmFibGUgdGhlIGhvdHBsdWcgaW50ZXJydXB0IGxhdGUgYmVjYXVzZSBwcm9jZXNzaW5nIHRoZW0gbWF5IHRvdWNoIG90aGVyCiAgKiBkZXZpY2VzIG9yIHN5c3RlbXMgKGUuZy4gaHVnZXBhZ2VzKSB0aGF0IGhhdmUgbm90IGJlZW4gaW5pdGlhbGl6ZWQgYXQgdGhlCkBAIC01MTEsMTQ5ICs0OTQsNTUgQEAgaW50IHBTZXJpZXNfc3lzdGVtX3Jlc2V0X2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAlyZXR1cm4gMDsgLyogbmVlZCB0byBwZXJmb3JtIHJlc2V0ICovCiB9CiAKLSNkZWZpbmUgVkFMX1RPX1NUUklORyhhciwgdmFsKQlcCi0JKCgodmFsKSA8IEFSUkFZX1NJWkUoYXIpKSA/IGFyWyh2YWwpXSA6ICJVbmtub3duIikKIAotc3RhdGljIHZvaWQgcHNlcmllc19wcmludF9tY2VfaW5mbyhzdHJ1Y3QgcHRfcmVncyAqcmVncywKLQkJCQkgICBzdHJ1Y3QgcnRhc19lcnJvcl9sb2cgKmVycnApCitzdGF0aWMgaW50IG1jZV9oYW5kbGVfZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHN0cnVjdCBydGFzX2Vycm9yX2xvZyAqZXJycCkKIHsKLQljb25zdCBjaGFyICpsZXZlbCwgKnNldnN0cjsKKwlzdHJ1Y3QgbWNlX2Vycm9yX2luZm8gbWNlX2VyciA9IHsgMCB9OworCXVuc2lnbmVkIGxvbmcgZWFkZHIgPSAwLCBwYWRkciA9IDA7CiAJc3RydWN0IHBzZXJpZXNfZXJyb3Jsb2cgKnBzZXJpZXNfbG9nOwogCXN0cnVjdCBwc2VyaWVzX21jX2Vycm9ybG9nICptY2VfbG9nOworCWludCBkaXNwb3NpdGlvbiA9IHJ0YXNfZXJyb3JfZGlzcG9zaXRpb24oZXJycCk7CisJaW50IGluaXRpYXRvciA9IHJ0YXNfZXJyb3JfaW5pdGlhdG9yKGVycnApOworCWludCBzZXZlcml0eSA9IHJ0YXNfZXJyb3Jfc2V2ZXJpdHkoZXJycCk7CiAJdTggZXJyb3JfdHlwZSwgZXJyX3N1Yl90eXBlOwotCXU2NCBhZGRyOwotCXU4IGluaXRpYXRvciA9IHJ0YXNfZXJyb3JfaW5pdGlhdG9yKGVycnApOwotCWludCBkaXNwb3NpdGlvbiA9IHJ0YXNfZXJyb3JfZGlzcG9zaXRpb24oZXJycCk7CiAKLQlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGluaXRpYXRvcnNbXSA9IHsKLQkJWzBdID0gIlVua25vd24iLAotCQlbMV0gPSAiQ1BVIiwKLQkJWzJdID0gIlBDSSIsCi0JCVszXSA9ICJJU0EiLAotCQlbNF0gPSAiTWVtb3J5IiwKLQkJWzVdID0gIlBvd2VyIE1nbXQiLAotCX07Ci0Jc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtY19lcnJfdHlwZXNbXSA9IHsKLQkJWzBdID0gIlVFIiwKLQkJWzFdID0gIlNMQiIsCi0JCVsyXSA9ICJFUkFUIiwKLQkJWzNdID0gIlVua25vd24iLAotCQlbNF0gPSAiVExCIiwKLQkJWzVdID0gIkQtQ2FjaGUiLAotCQlbNl0gPSAiVW5rbm93biIsCi0JCVs3XSA9ICJJLUNhY2hlIiwKLQl9OwotCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbWNfdWVfdHlwZXNbXSA9IHsKLQkJWzBdID0gIkluZGV0ZXJtaW5hdGUiLAotCQlbMV0gPSAiSW5zdHJ1Y3Rpb24gZmV0Y2giLAotCQlbMl0gPSAiUGFnZSB0YWJsZSB3YWxrIGlmZXRjaCIsCi0JCVszXSA9ICJMb2FkL1N0b3JlIiwKLQkJWzRdID0gIlBhZ2UgdGFibGUgd2FsayBMb2FkL1N0b3JlIiwKLQl9OworCWlmIChpbml0aWF0b3IgPT0gUlRBU19JTklUSUFUT1JfVU5LTk9XTikKKwkJbWNlX2Vyci5pbml0aWF0b3IgPSBNQ0VfSU5JVElBVE9SX1VOS05PV047CisJZWxzZSBpZiAoaW5pdGlhdG9yID09IFJUQVNfSU5JVElBVE9SX0NQVSkKKwkJbWNlX2Vyci5pbml0aWF0b3IgPSBNQ0VfSU5JVElBVE9SX0NQVTsKKwllbHNlIGlmIChpbml0aWF0b3IgPT0gUlRBU19JTklUSUFUT1JfUENJKQorCQltY2VfZXJyLmluaXRpYXRvciA9IE1DRV9JTklUSUFUT1JfUENJOworCWVsc2UgaWYgKGluaXRpYXRvciA9PSBSVEFTX0lOSVRJQVRPUl9JU0EpCisJCW1jZV9lcnIuaW5pdGlhdG9yID0gTUNFX0lOSVRJQVRPUl9JU0E7CisJZWxzZSBpZiAoaW5pdGlhdG9yID09IFJUQVNfSU5JVElBVE9SX01FTU9SWSkKKwkJbWNlX2Vyci5pbml0aWF0b3IgPSBNQ0VfSU5JVElBVE9SX01FTU9SWTsKKwllbHNlIGlmIChpbml0aWF0b3IgPT0gUlRBU19JTklUSUFUT1JfUE9XRVJNR00pCisJCW1jZV9lcnIuaW5pdGlhdG9yID0gTUNFX0lOSVRJQVRPUl9QT1dFUk1HTTsKKwllbHNlCisJCW1jZV9lcnIuaW5pdGlhdG9yID0gTUNFX0lOSVRJQVRPUl9VTktOT1dOOwogCi0JLyogU0xCIHN1YiBlcnJvcnMgdmFsaWQgdmFsdWVzIGFyZSAweDAsIDB4MSwgMHgyICovCi0Jc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtY19zbGJfdHlwZXNbXSA9IHsKLQkJWzBdID0gIlBhcml0eSIsCi0JCVsxXSA9ICJNdWx0aWhpdCIsCi0JCVsyXSA9ICJJbmRldGVybWluYXRlIiwKLQl9OworCWlmIChzZXZlcml0eSA9PSBSVEFTX1NFVkVSSVRZX05PX0VSUk9SKQorCQltY2VfZXJyLnNldmVyaXR5ID0gTUNFX1NFVl9OT19FUlJPUjsKKwllbHNlIGlmIChzZXZlcml0eSA9PSBSVEFTX1NFVkVSSVRZX0VWRU5UKQorCQltY2VfZXJyLnNldmVyaXR5ID0gTUNFX1NFVl9XQVJOSU5HOworCWVsc2UgaWYgKHNldmVyaXR5ID09IFJUQVNfU0VWRVJJVFlfV0FSTklORykKKwkJbWNlX2Vyci5zZXZlcml0eSA9IE1DRV9TRVZfV0FSTklORzsKKwllbHNlIGlmIChzZXZlcml0eSA9PSBSVEFTX1NFVkVSSVRZX0VSUk9SX1NZTkMpCisJCW1jZV9lcnIuc2V2ZXJpdHkgPSBNQ0VfU0VWX1NFVkVSRTsKKwllbHNlIGlmIChzZXZlcml0eSA9PSBSVEFTX1NFVkVSSVRZX0VSUk9SKQorCQltY2VfZXJyLnNldmVyaXR5ID0gTUNFX1NFVl9TRVZFUkU7CisJZWxzZSBpZiAoc2V2ZXJpdHkgPT0gUlRBU19TRVZFUklUWV9GQVRBTCkKKwkJbWNlX2Vyci5zZXZlcml0eSA9IE1DRV9TRVZfRkFUQUw7CisJZWxzZQorCQltY2VfZXJyLnNldmVyaXR5ID0gTUNFX1NFVl9GQVRBTDsKIAotCS8qIFRMQiBhbmQgRVJBVCBzdWIgZXJyb3JzIHZhbGlkIHZhbHVlcyBhcmUgMHgxLCAweDIsIDB4MyAqLwotCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbWNfc29mdF90eXBlc1tdID0gewotCQlbMF0gPSAiVW5rbm93biIsCi0JCVsxXSA9ICJQYXJpdHkiLAotCQlbMl0gPSAiTXVsdGloaXQiLAotCQlbM10gPSAiSW5kZXRlcm1pbmF0ZSIsCi0JfTsKKwlpZiAoc2V2ZXJpdHkgPD0gUlRBU19TRVZFUklUWV9FUlJPUl9TWU5DKQorCQltY2VfZXJyLnN5bmNfZXJyb3IgPSB0cnVlOworCWVsc2UKKwkJbWNlX2Vyci5zeW5jX2Vycm9yID0gZmFsc2U7CiAKLQlpZiAoIXJ0YXNfZXJyb3JfZXh0ZW5kZWQoZXJycCkpIHsKLQkJcHJfZXJyKCJNYWNoaW5lIGNoZWNrIGludGVycnVwdDogTWlzc2luZyBleHRlbmRlZCBlcnJvciBsb2dcbiIpOwotCQlyZXR1cm47Ci0JfQotCi0JcHNlcmllc19sb2cgPSBnZXRfcHNlcmllc19lcnJvcmxvZyhlcnJwLCBQU0VSSUVTX0VMT0dfU0VDVF9JRF9NQ0UpOwotCWlmIChwc2VyaWVzX2xvZyA9PSBOVUxMKQotCQlyZXR1cm47Ci0KLQltY2VfbG9nID0gKHN0cnVjdCBwc2VyaWVzX21jX2Vycm9ybG9nICopcHNlcmllc19sb2ctPmRhdGE7Ci0KLQllcnJvcl90eXBlID0gbWNlX2xvZy0+ZXJyb3JfdHlwZTsKLQllcnJfc3ViX3R5cGUgPSBydGFzX21jX2Vycm9yX3N1Yl90eXBlKG1jZV9sb2cpOwotCi0Jc3dpdGNoIChydGFzX2Vycm9yX3NldmVyaXR5KGVycnApKSB7Ci0JY2FzZSBSVEFTX1NFVkVSSVRZX05PX0VSUk9SOgotCQlsZXZlbCA9IEtFUk5fSU5GTzsKLQkJc2V2c3RyID0gIkhhcm1sZXNzIjsKLQkJYnJlYWs7Ci0JY2FzZSBSVEFTX1NFVkVSSVRZX1dBUk5JTkc6Ci0JCWxldmVsID0gS0VSTl9XQVJOSU5HOwotCQlzZXZzdHIgPSAiIjsKLQkJYnJlYWs7Ci0JY2FzZSBSVEFTX1NFVkVSSVRZX0VSUk9SOgotCWNhc2UgUlRBU19TRVZFUklUWV9FUlJPUl9TWU5DOgotCQlsZXZlbCA9IEtFUk5fRVJSOwotCQlzZXZzdHIgPSAiU2V2ZXJlIjsKLQkJYnJlYWs7Ci0JY2FzZSBSVEFTX1NFVkVSSVRZX0ZBVEFMOgotCWRlZmF1bHQ6Ci0JCWxldmVsID0gS0VSTl9FUlI7Ci0JCXNldnN0ciA9ICJGYXRhbCI7Ci0JCWJyZWFrOwotCX0KLQotI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0Ci0JLyogRGlzcGxheSBmYXVsdHkgc2xiIGNvbnRlbnRzIGZvciBTTEIgZXJyb3JzLiAqLwotCWlmIChlcnJvcl90eXBlID09IE1DX0VSUk9SX1RZUEVfU0xCKQotCQlzbGJfZHVtcF9jb250ZW50cyhsb2NhbF9wYWNhLT5tY2VfZmF1bHR5X3NsYnMpOwotI2VuZGlmCi0KLQlwcmludGsoIiVzJXMgTWFjaGluZSBjaGVjayBpbnRlcnJ1cHQgWyVzXVxuIiwgbGV2ZWwsIHNldnN0ciwKLQkgICAgICAgZGlzcG9zaXRpb24gPT0gUlRBU19ESVNQX0ZVTExZX1JFQ09WRVJFRCA/Ci0JICAgICAgICJSZWNvdmVyZWQiIDogIk5vdCByZWNvdmVyZWQiKTsKLQlpZiAodXNlcl9tb2RlKHJlZ3MpKSB7Ci0JCXByaW50aygiJXMgIE5JUDogWyUwMTZseF0gUElEOiAlZCBDb21tOiAlc1xuIiwgbGV2ZWwsCi0JCSAgICAgICByZWdzLT5uaXAsIGN1cnJlbnQtPnBpZCwgY3VycmVudC0+Y29tbSk7Ci0JfSBlbHNlIHsKLQkJcHJpbnRrKCIlcyAgTklQIFslMDE2bHhdOiAlcFNcbiIsIGxldmVsLCByZWdzLT5uaXAsCi0JCSAgICAgICAodm9pZCAqKXJlZ3MtPm5pcCk7Ci0JfQotCXByaW50aygiJXMgIEluaXRpYXRvcjogJXNcbiIsIGxldmVsLAotCSAgICAgICBWQUxfVE9fU1RSSU5HKGluaXRpYXRvcnMsIGluaXRpYXRvcikpOwotCi0Jc3dpdGNoIChlcnJvcl90eXBlKSB7Ci0JY2FzZSBNQ19FUlJPUl9UWVBFX1VFOgotCQlwcmludGsoIiVzICBFcnJvciB0eXBlOiAlcyBbJXNdXG4iLCBsZXZlbCwKLQkJICAgICAgIFZBTF9UT19TVFJJTkcobWNfZXJyX3R5cGVzLCBlcnJvcl90eXBlKSwKLQkJICAgICAgIFZBTF9UT19TVFJJTkcobWNfdWVfdHlwZXMsIGVycl9zdWJfdHlwZSkpOwotCQlicmVhazsKLQljYXNlIE1DX0VSUk9SX1RZUEVfU0xCOgotCQlwcmludGsoIiVzICBFcnJvciB0eXBlOiAlcyBbJXNdXG4iLCBsZXZlbCwKLQkJICAgICAgIFZBTF9UT19TVFJJTkcobWNfZXJyX3R5cGVzLCBlcnJvcl90eXBlKSwKLQkJICAgICAgIFZBTF9UT19TVFJJTkcobWNfc2xiX3R5cGVzLCBlcnJfc3ViX3R5cGUpKTsKLQkJYnJlYWs7Ci0JY2FzZSBNQ19FUlJPUl9UWVBFX0VSQVQ6Ci0JY2FzZSBNQ19FUlJPUl9UWVBFX1RMQjoKLQkJcHJpbnRrKCIlcyAgRXJyb3IgdHlwZTogJXMgWyVzXVxuIiwgbGV2ZWwsCi0JCSAgICAgICBWQUxfVE9fU1RSSU5HKG1jX2Vycl90eXBlcywgZXJyb3JfdHlwZSksCi0JCSAgICAgICBWQUxfVE9fU1RSSU5HKG1jX3NvZnRfdHlwZXMsIGVycl9zdWJfdHlwZSkpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlwcmludGsoIiVzICBFcnJvciB0eXBlOiAlc1xuIiwgbGV2ZWwsCi0JCSAgICAgICBWQUxfVE9fU1RSSU5HKG1jX2Vycl90eXBlcywgZXJyb3JfdHlwZSkpOwotCQlicmVhazsKLQl9Ci0KLQlhZGRyID0gcnRhc19tY19nZXRfZWZmZWN0aXZlX2FkZHIobWNlX2xvZyk7Ci0JaWYgKGFkZHIpCi0JCXByaW50aygiJXMgICAgRWZmZWN0aXZlIGFkZHJlc3M6ICUwMTZsbHhcbiIsIGxldmVsLCBhZGRyKTsKLX0KLQotc3RhdGljIGludCBtY2VfaGFuZGxlX2Vycm9yKHN0cnVjdCBydGFzX2Vycm9yX2xvZyAqZXJycCkKLXsKLQlzdHJ1Y3QgcHNlcmllc19lcnJvcmxvZyAqcHNlcmllc19sb2c7Ci0Jc3RydWN0IHBzZXJpZXNfbWNfZXJyb3Jsb2cgKm1jZV9sb2c7Ci0JaW50IGRpc3Bvc2l0aW9uID0gcnRhc19lcnJvcl9kaXNwb3NpdGlvbihlcnJwKTsKLQl1OCBlcnJvcl90eXBlOworCW1jZV9lcnIuZXJyb3JfdHlwZSA9IE1DRV9FUlJPUl9UWVBFX1VOS05PV047CisJbWNlX2Vyci5lcnJvcl9jbGFzcyA9IE1DRV9FQ0xBU1NfVU5LTk9XTjsKIAogCWlmICghcnRhc19lcnJvcl9leHRlbmRlZChlcnJwKSkKIAkJZ290byBvdXQ7CkBAIC02NjQsNiArNTUzLDEwNSBAQCBzdGF0aWMgaW50IG1jZV9oYW5kbGVfZXJyb3Ioc3RydWN0IHJ0YXNfZXJyb3JfbG9nICplcnJwKQogCiAJbWNlX2xvZyA9IChzdHJ1Y3QgcHNlcmllc19tY19lcnJvcmxvZyAqKXBzZXJpZXNfbG9nLT5kYXRhOwogCWVycm9yX3R5cGUgPSBtY2VfbG9nLT5lcnJvcl90eXBlOworCWVycl9zdWJfdHlwZSA9IHJ0YXNfbWNfZXJyb3Jfc3ViX3R5cGUobWNlX2xvZyk7CisKKwlzd2l0Y2ggKG1jZV9sb2ctPmVycm9yX3R5cGUpIHsKKwljYXNlIE1DX0VSUk9SX1RZUEVfVUU6CisJCW1jZV9lcnIuZXJyb3JfdHlwZSA9IE1DRV9FUlJPUl9UWVBFX1VFOworCQlzd2l0Y2ggKGVycl9zdWJfdHlwZSkgeworCQljYXNlIE1DX0VSUk9SX1VFX0lGRVRDSDoKKwkJCW1jZV9lcnIudS51ZV9lcnJvcl90eXBlID0gTUNFX1VFX0VSUk9SX0lGRVRDSDsKKwkJCWJyZWFrOworCQljYXNlIE1DX0VSUk9SX1VFX1BBR0VfVEFCTEVfV0FMS19JRkVUQ0g6CisJCQltY2VfZXJyLnUudWVfZXJyb3JfdHlwZSA9IE1DRV9VRV9FUlJPUl9QQUdFX1RBQkxFX1dBTEtfSUZFVENIOworCQkJYnJlYWs7CisJCWNhc2UgTUNfRVJST1JfVUVfTE9BRF9TVE9SRToKKwkJCW1jZV9lcnIudS51ZV9lcnJvcl90eXBlID0gTUNFX1VFX0VSUk9SX0xPQURfU1RPUkU7CisJCQlicmVhazsKKwkJY2FzZSBNQ19FUlJPUl9VRV9QQUdFX1RBQkxFX1dBTEtfTE9BRF9TVE9SRToKKwkJCW1jZV9lcnIudS51ZV9lcnJvcl90eXBlID0gTUNFX1VFX0VSUk9SX1BBR0VfVEFCTEVfV0FMS19MT0FEX1NUT1JFOworCQkJYnJlYWs7CisJCWNhc2UgTUNfRVJST1JfVUVfSU5ERVRFUk1JTkFURToKKwkJZGVmYXVsdDoKKwkJCW1jZV9lcnIudS51ZV9lcnJvcl90eXBlID0gTUNFX1VFX0VSUk9SX0lOREVURVJNSU5BVEU7CisJCQlicmVhazsKKwkJfQorCQlpZiAobWNlX2xvZy0+c3ViX2Vycl90eXBlICYgVUVfRUZGRUNUSVZFX0FERFJfUFJPVklERUQpCisJCQllYWRkciA9IGJlNjRfdG9fY3B1KG1jZV9sb2ctPmVmZmVjdGl2ZV9hZGRyZXNzKTsKKworCQlpZiAobWNlX2xvZy0+c3ViX2Vycl90eXBlICYgVUVfTE9HSUNBTF9BRERSX1BST1ZJREVEKSB7CisJCQlwYWRkciA9IGJlNjRfdG9fY3B1KG1jZV9sb2ctPmxvZ2ljYWxfYWRkcmVzcyk7CisJCX0gZWxzZSBpZiAobWNlX2xvZy0+c3ViX2Vycl90eXBlICYgVUVfRUZGRUNUSVZFX0FERFJfUFJPVklERUQpIHsKKwkJCXVuc2lnbmVkIGxvbmcgcGZuOworCisJCQlwZm4gPSBhZGRyX3RvX3BmbihyZWdzLCBlYWRkcik7CisJCQlpZiAocGZuICE9IFVMT05HX01BWCkKKwkJCQlwYWRkciA9IHBmbiA8PCBQQUdFX1NISUZUOworCQl9CisKKwkJYnJlYWs7CisJY2FzZSBNQ19FUlJPUl9UWVBFX1NMQjoKKwkJbWNlX2Vyci5lcnJvcl90eXBlID0gTUNFX0VSUk9SX1RZUEVfU0xCOworCQlzd2l0Y2ggKGVycl9zdWJfdHlwZSkgeworCQljYXNlIE1DX0VSUk9SX1NMQl9QQVJJVFk6CisJCQltY2VfZXJyLnUuc2xiX2Vycm9yX3R5cGUgPSBNQ0VfU0xCX0VSUk9SX1BBUklUWTsKKwkJCWJyZWFrOworCQljYXNlIE1DX0VSUk9SX1NMQl9NVUxUSUhJVDoKKwkJCW1jZV9lcnIudS5zbGJfZXJyb3JfdHlwZSA9IE1DRV9TTEJfRVJST1JfTVVMVElISVQ7CisJCQlicmVhazsKKwkJY2FzZSBNQ19FUlJPUl9TTEJfSU5ERVRFUk1JTkFURToKKwkJZGVmYXVsdDoKKwkJCW1jZV9lcnIudS5zbGJfZXJyb3JfdHlwZSA9IE1DRV9TTEJfRVJST1JfSU5ERVRFUk1JTkFURTsKKwkJCWJyZWFrOworCQl9CisJCWlmIChtY2VfbG9nLT5zdWJfZXJyX3R5cGUgJiAweDgwKQorCQkJZWFkZHIgPSBiZTY0X3RvX2NwdShtY2VfbG9nLT5lZmZlY3RpdmVfYWRkcmVzcyk7CisJCWJyZWFrOworCWNhc2UgTUNfRVJST1JfVFlQRV9FUkFUOgorCQltY2VfZXJyLmVycm9yX3R5cGUgPSBNQ0VfRVJST1JfVFlQRV9FUkFUOworCQlzd2l0Y2ggKGVycl9zdWJfdHlwZSkgeworCQljYXNlIE1DX0VSUk9SX0VSQVRfUEFSSVRZOgorCQkJbWNlX2Vyci51LmVyYXRfZXJyb3JfdHlwZSA9IE1DRV9FUkFUX0VSUk9SX1BBUklUWTsKKwkJCWJyZWFrOworCQljYXNlIE1DX0VSUk9SX0VSQVRfTVVMVElISVQ6CisJCQltY2VfZXJyLnUuZXJhdF9lcnJvcl90eXBlID0gTUNFX0VSQVRfRVJST1JfTVVMVElISVQ7CisJCQlicmVhazsKKwkJY2FzZSBNQ19FUlJPUl9FUkFUX0lOREVURVJNSU5BVEU6CisJCWRlZmF1bHQ6CisJCQltY2VfZXJyLnUuZXJhdF9lcnJvcl90eXBlID0gTUNFX0VSQVRfRVJST1JfSU5ERVRFUk1JTkFURTsKKwkJCWJyZWFrOworCQl9CisJCWlmIChtY2VfbG9nLT5zdWJfZXJyX3R5cGUgJiAweDgwKQorCQkJZWFkZHIgPSBiZTY0X3RvX2NwdShtY2VfbG9nLT5lZmZlY3RpdmVfYWRkcmVzcyk7CisJCWJyZWFrOworCWNhc2UgTUNfRVJST1JfVFlQRV9UTEI6CisJCW1jZV9lcnIuZXJyb3JfdHlwZSA9IE1DRV9FUlJPUl9UWVBFX1RMQjsKKwkJc3dpdGNoIChlcnJfc3ViX3R5cGUpIHsKKwkJY2FzZSBNQ19FUlJPUl9UTEJfUEFSSVRZOgorCQkJbWNlX2Vyci51LnRsYl9lcnJvcl90eXBlID0gTUNFX1RMQl9FUlJPUl9QQVJJVFk7CisJCQlicmVhazsKKwkJY2FzZSBNQ19FUlJPUl9UTEJfTVVMVElISVQ6CisJCQltY2VfZXJyLnUudGxiX2Vycm9yX3R5cGUgPSBNQ0VfVExCX0VSUk9SX01VTFRJSElUOworCQkJYnJlYWs7CisJCWNhc2UgTUNfRVJST1JfVExCX0lOREVURVJNSU5BVEU6CisJCWRlZmF1bHQ6CisJCQltY2VfZXJyLnUudGxiX2Vycm9yX3R5cGUgPSBNQ0VfVExCX0VSUk9SX0lOREVURVJNSU5BVEU7CisJCQlicmVhazsKKwkJfQorCQlpZiAobWNlX2xvZy0+c3ViX2Vycl90eXBlICYgMHg4MCkKKwkJCWVhZGRyID0gYmU2NF90b19jcHUobWNlX2xvZy0+ZWZmZWN0aXZlX2FkZHJlc3MpOworCQlicmVhazsKKwljYXNlIE1DX0VSUk9SX1RZUEVfRF9DQUNIRToKKwkJbWNlX2Vyci5lcnJvcl90eXBlID0gTUNFX0VSUk9SX1RZUEVfRENBQ0hFOworCQlicmVhazsKKwljYXNlIE1DX0VSUk9SX1RZUEVfSV9DQUNIRToKKwkJbWNlX2Vyci5lcnJvcl90eXBlID0gTUNFX0VSUk9SX1RZUEVfRENBQ0hFOworCQlicmVhazsKKwljYXNlIE1DX0VSUk9SX1RZUEVfVU5LTk9XTjoKKwlkZWZhdWx0OgorCQltY2VfZXJyLmVycm9yX3R5cGUgPSBNQ0VfRVJST1JfVFlQRV9VTktOT1dOOworCQlicmVhazsKKwl9CiAKICNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAogCWlmIChkaXNwb3NpdGlvbiA9PSBSVEFTX0RJU1BfTk9UX1JFQ09WRVJFRCkgewpAQCAtNjgyLDk5ICs2NzAsMjUgQEAgc3RhdGljIGludCBtY2VfaGFuZGxlX2Vycm9yKHN0cnVjdCBydGFzX2Vycm9yX2xvZyAqZXJycCkKIAkJCQlzbGJfc2F2ZV9jb250ZW50cyhsb2NhbF9wYWNhLT5tY2VfZmF1bHR5X3NsYnMpOwogCQkJZmx1c2hfYW5kX3JlbG9hZF9zbGIoKTsKIAkJCWRpc3Bvc2l0aW9uID0gUlRBU19ESVNQX0ZVTExZX1JFQ09WRVJFRDsKLQkJCXJ0YXNfc2V0X2Rpc3Bvc2l0aW9uX3JlY292ZXJlZChlcnJwKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJCX0KKwl9IGVsc2UgaWYgKGRpc3Bvc2l0aW9uID09IFJUQVNfRElTUF9MSU1JVEVEX1JFQ09WRVJZKSB7CisJCS8qIFBsYXRmb3JtIGNvcnJlY3RlZCBpdHNlbGYgYnV0IGNvdWxkIGJlIGRlZ3JhZGVkICovCisJCXByaW50ayhLRVJOX0VSUiAiTUNFOiBsaW1pdGVkIHJlY292ZXJ5LCBzeXN0ZW0gbWF5ICIKKwkJICAgICAgICJiZSBkZWdyYWRlZFxuIik7CisJCWRpc3Bvc2l0aW9uID0gUlRBU19ESVNQX0ZVTExZX1JFQ09WRVJFRDsKIAl9CiAjZW5kaWYKIAogb3V0OgorCXNhdmVfbWNlX2V2ZW50KHJlZ3MsIGRpc3Bvc2l0aW9uID09IFJUQVNfRElTUF9GVUxMWV9SRUNPVkVSRUQsCisJCQkmbWNlX2VyciwgcmVncy0+bmlwLCBlYWRkciwgcGFkZHIpOworCiAJcmV0dXJuIGRpc3Bvc2l0aW9uOwogfQogCi0jaWZkZWYgQ09ORklHX01FTU9SWV9GQUlMVVJFCi0KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIHJ0YXNfdWVfY291bnQpOwotc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIHJ0YXNfdWVfcGFkZHJbTUFYX01DX0VWVF0pOwotCi0jZGVmaW5lIFVFX0VGRkVDVElWRV9BRERSX1BST1ZJREVECTB4NDAKLSNkZWZpbmUgVUVfTE9HSUNBTF9BRERSX1BST1ZJREVECTB4MjAKLQotCi1zdGF0aWMgdm9pZCBwc2VyaWVzX2h3cG9pc29uX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQotewotCXVuc2lnbmVkIGxvbmcgcGFkZHI7Ci0JaW50IGluZGV4OwotCi0Jd2hpbGUgKF9fdGhpc19jcHVfcmVhZChydGFzX3VlX2NvdW50KSA+IDApIHsKLQkJaW5kZXggPSBfX3RoaXNfY3B1X3JlYWQocnRhc191ZV9jb3VudCkgLSAxOwotCQlwYWRkciA9IF9fdGhpc19jcHVfcmVhZChydGFzX3VlX3BhZGRyW2luZGV4XSk7Ci0JCW1lbW9yeV9mYWlsdXJlKHBhZGRyID4+IFBBR0VfU0hJRlQsIDApOwotCQlfX3RoaXNfY3B1X2RlYyhydGFzX3VlX2NvdW50KTsKLQl9Ci19Ci0KLXN0YXRpYyBERUNMQVJFX1dPUksoaHdwb2lzb25fd29yaywgcHNlcmllc19od3BvaXNvbl93b3JrX2ZuKTsKLQotc3RhdGljIHZvaWQgcXVldWVfdWVfcGFkZHIodW5zaWduZWQgbG9uZyBwYWRkcikKLXsKLQlpbnQgaW5kZXg7Ci0KLQlpbmRleCA9IF9fdGhpc19jcHVfaW5jX3JldHVybihydGFzX3VlX2NvdW50KSAtIDE7Ci0JaWYgKGluZGV4ID49IE1BWF9NQ19FVlQpIHsKLQkJX190aGlzX2NwdV9kZWMocnRhc191ZV9jb3VudCk7Ci0JCXJldHVybjsKLQl9Ci0JdGhpc19jcHVfd3JpdGUocnRhc191ZV9wYWRkcltpbmRleF0sIHBhZGRyKTsKLQlzY2hlZHVsZV93b3JrKCZod3BvaXNvbl93b3JrKTsKLX0KLQotc3RhdGljIHZvaWQgcHNlcmllc19kb19tZW1vcnlfZmFpbHVyZShzdHJ1Y3QgcHRfcmVncyAqcmVncywKLQkJCQkgICAgICBzdHJ1Y3QgcHNlcmllc19tY19lcnJvcmxvZyAqbWNlX2xvZykKLXsKLQl1bnNpZ25lZCBsb25nIHBhZGRyOwotCi0JaWYgKG1jZV9sb2ctPnN1Yl9lcnJfdHlwZSAmIFVFX0xPR0lDQUxfQUREUl9QUk9WSURFRCkgewotCQlwYWRkciA9IGJlNjRfdG9fY3B1KG1jZV9sb2ctPmxvZ2ljYWxfYWRkcmVzcyk7Ci0JfSBlbHNlIGlmIChtY2VfbG9nLT5zdWJfZXJyX3R5cGUgJiBVRV9FRkZFQ1RJVkVfQUREUl9QUk9WSURFRCkgewotCQl1bnNpZ25lZCBsb25nIHBmbjsKLQotCQlwZm4gPSBhZGRyX3RvX3BmbihyZWdzLAotCQkJCSAgYmU2NF90b19jcHUobWNlX2xvZy0+ZWZmZWN0aXZlX2FkZHJlc3MpKTsKLQkJaWYgKHBmbiA9PSBVTE9OR19NQVgpCi0JCQlyZXR1cm47Ci0JCXBhZGRyID0gcGZuIDw8IFBBR0VfU0hJRlQ7Ci0JfSBlbHNlIHsKLQkJcmV0dXJuOwotCX0KLQlxdWV1ZV91ZV9wYWRkcihwYWRkcik7Ci19Ci0KLXN0YXRpYyB2b2lkIHBzZXJpZXNfcHJvY2Vzc191ZShzdHJ1Y3QgcHRfcmVncyAqcmVncywKLQkJCSAgICAgICBzdHJ1Y3QgcnRhc19lcnJvcl9sb2cgKmVycnApCi17Ci0Jc3RydWN0IHBzZXJpZXNfZXJyb3Jsb2cgKnBzZXJpZXNfbG9nOwotCXN0cnVjdCBwc2VyaWVzX21jX2Vycm9ybG9nICptY2VfbG9nOwotCi0JaWYgKCFydGFzX2Vycm9yX2V4dGVuZGVkKGVycnApKQotCQlyZXR1cm47Ci0KLQlwc2VyaWVzX2xvZyA9IGdldF9wc2VyaWVzX2Vycm9ybG9nKGVycnAsIFBTRVJJRVNfRUxPR19TRUNUX0lEX01DRSk7Ci0JaWYgKCFwc2VyaWVzX2xvZykKLQkJcmV0dXJuOwotCi0JbWNlX2xvZyA9IChzdHJ1Y3QgcHNlcmllc19tY19lcnJvcmxvZyAqKXBzZXJpZXNfbG9nLT5kYXRhOwotCi0JaWYgKG1jZV9sb2ctPmVycm9yX3R5cGUgPT0gTUNfRVJST1JfVFlQRV9VRSkKLQkJcHNlcmllc19kb19tZW1vcnlfZmFpbHVyZShyZWdzLCBtY2VfbG9nKTsKLX0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgcHNlcmllc19wcm9jZXNzX3VlKHN0cnVjdCBwdF9yZWdzICpyZWdzLAotCQkJCSAgICAgIHN0cnVjdCBydGFzX2Vycm9yX2xvZyAqZXJycCkgeyB9Ci0jZW5kaWYgLypDT05GSUdfTUVNT1JZX0ZBSUxVUkUgKi8KLQogLyoKICAqIFByb2Nlc3MgTUNFIHJ0YXMgZXJybG9nIGV2ZW50LgogICovCkBAIC03OTUsNDggKzcwOSw1MCBAQCBzdGF0aWMgdm9pZCBtY2VfcHJvY2Vzc19lcnJsb2dfZXZlbnQoc3RydWN0IGlycV93b3JrICp3b3JrKQogICogUmV0dXJuIDEgaWYgY29ycmVjdGVkIChvciBkZWxpdmVyZWQgYSBzaWduYWwpLgogICogUmV0dXJuIDAgaWYgdGhlcmUgaXMgbm90aGluZyB3ZSBjYW4gZG8uCiAgKi8KLXN0YXRpYyBpbnQgcmVjb3Zlcl9tY2Uoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHN0cnVjdCBydGFzX2Vycm9yX2xvZyAqZXJyKQorc3RhdGljIGludCByZWNvdmVyX21jZShzdHJ1Y3QgcHRfcmVncyAqcmVncywgc3RydWN0IG1hY2hpbmVfY2hlY2tfZXZlbnQgKmV2dCkKIHsKIAlpbnQgcmVjb3ZlcmVkID0gMDsKLQlpbnQgZGlzcG9zaXRpb24gPSBydGFzX2Vycm9yX2Rpc3Bvc2l0aW9uKGVycik7Ci0KLQlwc2VyaWVzX3ByaW50X21jZV9pbmZvKHJlZ3MsIGVycik7CiAKIAlpZiAoIShyZWdzLT5tc3IgJiBNU1JfUkkpKSB7CiAJCS8qIElmIE1TUl9SSSBpc24ndCBzZXQsIHdlIGNhbm5vdCByZWNvdmVyICovCiAJCXByX2VycigiTWFjaGluZSBjaGVjayBpbnRlcnJ1cHQgdW5yZWNvdmVyYWJsZTogTVNSKFJJPTApXG4iKTsKIAkJcmVjb3ZlcmVkID0gMDsKLQotCX0gZWxzZSBpZiAoZGlzcG9zaXRpb24gPT0gUlRBU19ESVNQX0ZVTExZX1JFQ09WRVJFRCkgeworCX0gZWxzZSBpZiAoZXZ0LT5kaXNwb3NpdGlvbiA9PSBNQ0VfRElTUE9TSVRJT05fUkVDT1ZFUkVEKSB7CiAJCS8qIFBsYXRmb3JtIGNvcnJlY3RlZCBpdHNlbGYgKi8KIAkJcmVjb3ZlcmVkID0gMTsKLQotCX0gZWxzZSBpZiAoZGlzcG9zaXRpb24gPT0gUlRBU19ESVNQX0xJTUlURURfUkVDT1ZFUlkpIHsKLQkJLyogUGxhdGZvcm0gY29ycmVjdGVkIGl0c2VsZiBidXQgY291bGQgYmUgZGVncmFkZWQgKi8KLQkJcHJpbnRrKEtFUk5fRVJSICJNQ0U6IGxpbWl0ZWQgcmVjb3ZlcnksIHN5c3RlbSBtYXkgIgotCQkgICAgICAgImJlIGRlZ3JhZGVkXG4iKTsKLQkJcmVjb3ZlcmVkID0gMTsKLQotCX0gZWxzZSBpZiAodXNlcl9tb2RlKHJlZ3MpICYmICFpc19nbG9iYWxfaW5pdChjdXJyZW50KSAmJgotCQkgICBydGFzX2Vycm9yX3NldmVyaXR5KGVycikgPT0gUlRBU19TRVZFUklUWV9FUlJPUl9TWU5DKSB7Ci0KLQkJLyoKLQkJICogSWYgd2UgcmVjZWl2ZWQgYSBzeW5jaHJvbm91cyBlcnJvciB3aGVuIGluIHVzZXJzcGFjZQotCQkgKiBraWxsIHRoZSB0YXNrLiBGaXJtd2FyZSBtYXkgcmVwb3J0IGRldGFpbHMgb2YgdGhlIGZhaWwKLQkJICogYXN5bmNocm9ub3VzbHksIHNvIHdlIGNhbid0IHJlbHkgb24gdGhlIHRhcmdldCBhbmQgdHlwZQotCQkgKiBmaWVsZHMgYmVpbmcgdmFsaWQgaGVyZS4KLQkJICovCi0JCXByaW50ayhLRVJOX0VSUiAiTUNFOiB1bmNvcnJlY3RhYmxlIGVycm9yLCBraWxsaW5nIHRhc2sgIgotCQkgICAgICAgIiVzOiVkXG4iLCBjdXJyZW50LT5jb21tLCBjdXJyZW50LT5waWQpOwotCi0JCV9leGNlcHRpb24oU0lHQlVTLCByZWdzLCBCVVNfTUNFRVJSX0FSLCByZWdzLT5uaXApOwotCQlyZWNvdmVyZWQgPSAxOworCX0gZWxzZSBpZiAoZXZ0LT5zZXZlcml0eSA9PSBNQ0VfU0VWX0ZBVEFMKSB7CisJCS8qIEZhdGFsIG1hY2hpbmUgY2hlY2sgKi8KKwkJcHJfZXJyKCJNYWNoaW5lIGNoZWNrIGludGVycnVwdCBpcyBmYXRhbFxuIik7CisJCXJlY292ZXJlZCA9IDA7CiAJfQogCi0JcHNlcmllc19wcm9jZXNzX3VlKHJlZ3MsIGVycik7Ci0KLQkvKiBRdWV1ZSBpcnEgd29yayB0byBsb2cgdGhpcyBydGFzIGV2ZW50IGxhdGVyLiAqLwotCWlycV93b3JrX3F1ZXVlKCZtY2VfZXJybG9nX3Byb2Nlc3Nfd29yayk7CisJaWYgKCFyZWNvdmVyZWQgJiYgZXZ0LT5zeW5jX2Vycm9yKSB7CisJCS8qCisJCSAqIFRyeSB0byBraWxsIHByb2Nlc3NlcyBpZiB3ZSBnZXQgYSBzeW5jaHJvbm91cyBtYWNoaW5lIGNoZWNrCisJCSAqIChlLmcuLCBvbmUgY2F1c2VkIGJ5IGV4ZWN1dGlvbiBvZiB0aGlzIGluc3RydWN0aW9uKS4gVGhpcworCQkgKiB3aWxsIGRldm9sdmUgaW50byBhIHBhbmljIGlmIHdlIHRyeSB0byBraWxsIGluaXQgb3IgYXJlIGluCisJCSAqIGFuIGludGVycnVwdCBldGMuCisJCSAqCisJCSAqIFRPRE86IFF1ZXVlIHVwIHRoaXMgYWRkcmVzcyBmb3IgaHdwb2lzaW9uaW5nIGxhdGVyLgorCQkgKiBUT0RPOiBUaGlzIGlzIG5vdCBxdWl0ZSByaWdodCBmb3IgZC1zaWRlIG1hY2hpbmUKKwkJICogICAgICAgY2hlY2tzIC0+bmlwIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgaW1wb3J0YW50CisJCSAqICAgICAgIGFkZHJlc3MuCisJCSAqLworCQlpZiAoKHVzZXJfbW9kZShyZWdzKSkpIHsKKwkJCV9leGNlcHRpb24oU0lHQlVTLCByZWdzLCBCVVNfTUNFRVJSX0FSLCByZWdzLT5uaXApOworCQkJcmVjb3ZlcmVkID0gMTsKKwkJfSBlbHNlIGlmIChkaWVfd2lsbF9jcmFzaCgpKSB7CisJCQkvKgorCQkJICogZGllKCkgd291bGQga2lsbCB0aGUga2VybmVsLCBzbyBiZXR0ZXIgdG8gZ28gdmlhCisJCQkgKiB0aGUgcGxhdGZvcm0gcmVib290IGNvZGUgdGhhdCB3aWxsIGxvZyB0aGUKKwkJCSAqIG1hY2hpbmUgY2hlY2suCisJCQkgKi8KKwkJCXJlY292ZXJlZCA9IDA7CisJCX0gZWxzZSB7CisJCQlkaWUoIk1hY2hpbmUgY2hlY2siLCByZWdzLCBTSUdCVVMpOworCQkJcmVjb3ZlcmVkID0gMTsKKwkJfQorCX0KIAogCXJldHVybiByZWNvdmVyZWQ7CiB9CkBAIC04NTMsMTQgKzc2OSwyMSBAQCBzdGF0aWMgaW50IHJlY292ZXJfbWNlKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3QgcnRhc19lcnJvcl9sb2cgKmVycikKICAqLwogaW50IHBTZXJpZXNfbWFjaGluZV9jaGVja19leGNlcHRpb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHJ0YXNfZXJyb3JfbG9nICplcnJwOworCXN0cnVjdCBtYWNoaW5lX2NoZWNrX2V2ZW50IGV2dDsKIAotCWlmIChmd25taV9hY3RpdmUpIHsKLQkJZndubWlfcmVsZWFzZV9lcnJpbmZvKCk7Ci0JCWVycnAgPSBmd25taV9nZXRfZXJybG9nKCk7Ci0JCWlmIChlcnJwICYmIHJlY292ZXJfbWNlKHJlZ3MsIGVycnApKQotCQkJcmV0dXJuIDE7CisJaWYgKCFnZXRfbWNlX2V2ZW50KCZldnQsIE1DRV9FVkVOVF9SRUxFQVNFKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBQcmludCB0aGluZ3Mgb3V0ICovCisJaWYgKGV2dC52ZXJzaW9uICE9IE1DRV9WMSkgeworCQlwcl9lcnIoIk1hY2hpbmUgQ2hlY2sgRXhjZXB0aW9uLCBVbmtub3duIGV2ZW50IHZlcnNpb24gJWQgIVxuIiwKKwkJICAgICAgIGV2dC52ZXJzaW9uKTsKKwkJcmV0dXJuIDA7CiAJfQorCW1hY2hpbmVfY2hlY2tfcHJpbnRfZXZlbnRfaW5mbygmZXZ0LCB1c2VyX21vZGUocmVncyksIGZhbHNlKTsKKworCWlmIChyZWNvdmVyX21jZShyZWdzLCAmZXZ0KSkKKwkJcmV0dXJuIDE7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTg3Nyw3ICs4MDAsMTIgQEAgbG9uZyBwc2VyaWVzX21hY2hpbmVfY2hlY2tfcmVhbG1vZGUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAJCSAqIHRvIHBhbmljLiBIZW5jZSB3ZSB3aWxsIGNhbGwgaXQgYXMgc29vbiBhcyB3ZSBnbyBpbnRvCiAJCSAqIHZpcnR1YWwgbW9kZS4KIAkJICovCi0JCWRpc3Bvc2l0aW9uID0gbWNlX2hhbmRsZV9lcnJvcihlcnJwKTsKKwkJZGlzcG9zaXRpb24gPSBtY2VfaGFuZGxlX2Vycm9yKHJlZ3MsIGVycnApOworCQlmd25taV9yZWxlYXNlX2VycmluZm8oKTsKKworCQkvKiBRdWV1ZSBpcnEgd29yayB0byBsb2cgdGhpcyBydGFzIGV2ZW50IGxhdGVyLiAqLworCQlpcnFfd29ya19xdWV1ZSgmbWNlX2VycmxvZ19wcm9jZXNzX3dvcmspOworCiAJCWlmIChkaXNwb3NpdGlvbiA9PSBSVEFTX0RJU1BfRlVMTFlfUkVDT1ZFUkVEKQogCQkJcmV0dXJuIDE7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3J0YXMtZmFkdW1wLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcnRhcy1mYWR1bXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGMzMDEzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3J0YXMtZmFkdW1wLmMKQEAgLTAsMCArMSw1NTAgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCisvKgorICogRmlybXdhcmUtQXNzaXN0ZWQgRHVtcCBzdXBwb3J0IG9uIFBPV0VSVk0gcGxhdGZvcm0uCisgKgorICogQ29weXJpZ2h0IDIwMTEsIE1haGVzaCBTYWxnYW9ua2FyLCBJQk0gQ29ycG9yYXRpb24uCisgKiBDb3B5cmlnaHQgMjAxOSwgSGFyaSBCYXRoaW5pLCBJQk0gQ29ycG9yYXRpb24uCisgKi8KKworI2RlZmluZSBwcl9mbXQoZm10KSAicnRhcyBmYWR1bXA6ICIgZm10CisKKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9tZW1ibG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+CisKKyNpbmNsdWRlIDxhc20vcGFnZS5oPgorI2luY2x1ZGUgPGFzbS9wcm9tLmg+CisjaW5jbHVkZSA8YXNtL3J0YXMuaD4KKyNpbmNsdWRlIDxhc20vZmFkdW1wLmg+CisjaW5jbHVkZSA8YXNtL2ZhZHVtcC1pbnRlcm5hbC5oPgorCisjaW5jbHVkZSAicnRhcy1mYWR1bXAuaCIKKworc3RhdGljIHN0cnVjdCBydGFzX2ZhZHVtcF9tZW1fc3RydWN0IGZkbTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRhc19mYWR1bXBfbWVtX3N0cnVjdCAqZmRtX2FjdGl2ZTsKKworc3RhdGljIHZvaWQgcnRhc19mYWR1bXBfdXBkYXRlX2NvbmZpZyhzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYsCisJCQkJICAgICAgY29uc3Qgc3RydWN0IHJ0YXNfZmFkdW1wX21lbV9zdHJ1Y3QgKmZkbSkKK3sKKwlmYWR1bXBfY29uZi0+Ym9vdF9tZW1fZGVzdF9hZGRyID0KKwkJYmU2NF90b19jcHUoZmRtLT5ybXJfcmVnaW9uLmRlc3RpbmF0aW9uX2FkZHJlc3MpOworCisJZmFkdW1wX2NvbmYtPmZhZHVtcGhkcl9hZGRyID0gKGZhZHVtcF9jb25mLT5ib290X21lbV9kZXN0X2FkZHIgKworCQkJCSAgICAgICBmYWR1bXBfY29uZi0+Ym9vdF9tZW1vcnlfc2l6ZSk7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiB0aGUgY2FwdHVyZSBrZXJuZWwgdG8gZ2V0IGNvbmZpZ3VyYXRpb24gZGV0YWlscworICogc2V0dXAgaW4gdGhlIGZpcnN0IGtlcm5lbCBhbmQgcGFzc2VkIHRvIHRoZSBmL3cuCisgKi8KK3N0YXRpYyB2b2lkIHJ0YXNfZmFkdW1wX2dldF9jb25maWcoc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mLAorCQkJCSAgIGNvbnN0IHN0cnVjdCBydGFzX2ZhZHVtcF9tZW1fc3RydWN0ICpmZG0pCit7CisJZmFkdW1wX2NvbmYtPmJvb3RfbWVtX2FkZHJbMF0gPQorCQliZTY0X3RvX2NwdShmZG0tPnJtcl9yZWdpb24uc291cmNlX2FkZHJlc3MpOworCWZhZHVtcF9jb25mLT5ib290X21lbV9zelswXSA9IGJlNjRfdG9fY3B1KGZkbS0+cm1yX3JlZ2lvbi5zb3VyY2VfbGVuKTsKKwlmYWR1bXBfY29uZi0+Ym9vdF9tZW1vcnlfc2l6ZSA9IGZhZHVtcF9jb25mLT5ib290X21lbV9zelswXTsKKworCWZhZHVtcF9jb25mLT5ib290X21lbV90b3AgPSBmYWR1bXBfY29uZi0+Ym9vdF9tZW1vcnlfc2l6ZTsKKwlmYWR1bXBfY29uZi0+Ym9vdF9tZW1fcmVnc19jbnQgPSAxOworCisJLyoKKwkgKiBTdGFydCBhZGRyZXNzIG9mIHJlc2VydmUgZHVtcCBhcmVhIChwZXJtYW5lbnQgcmVzZXJ2YXRpb24pIGZvcgorCSAqIHJlLXJlZ2lzdGVyaW5nIEZBRHVtcCBhZnRlciBkdW1wIGNhcHR1cmUuCisJICovCisJZmFkdW1wX2NvbmYtPnJlc2VydmVfZHVtcF9hcmVhX3N0YXJ0ID0KKwkJYmU2NF90b19jcHUoZmRtLT5jcHVfc3RhdGVfZGF0YS5kZXN0aW5hdGlvbl9hZGRyZXNzKTsKKworCXJ0YXNfZmFkdW1wX3VwZGF0ZV9jb25maWcoZmFkdW1wX2NvbmYsIGZkbSk7Cit9CisKK3N0YXRpYyB1NjQgcnRhc19mYWR1bXBfaW5pdF9tZW1fc3RydWN0KHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZikKK3sKKwl1NjQgYWRkciA9IGZhZHVtcF9jb25mLT5yZXNlcnZlX2R1bXBfYXJlYV9zdGFydDsKKworCW1lbXNldCgmZmRtLCAwLCBzaXplb2Yoc3RydWN0IHJ0YXNfZmFkdW1wX21lbV9zdHJ1Y3QpKTsKKwlhZGRyID0gYWRkciAmIFBBR0VfTUFTSzsKKworCWZkbS5oZWFkZXIuZHVtcF9mb3JtYXRfdmVyc2lvbiA9IGNwdV90b19iZTMyKDB4MDAwMDAwMDEpOworCWZkbS5oZWFkZXIuZHVtcF9udW1fc2VjdGlvbnMgPSBjcHVfdG9fYmUxNigzKTsKKwlmZG0uaGVhZGVyLmR1bXBfc3RhdHVzX2ZsYWcgPSAwOworCWZkbS5oZWFkZXIub2Zmc2V0X2ZpcnN0X2R1bXBfc2VjdGlvbiA9CisJCWNwdV90b19iZTMyKCh1MzIpb2Zmc2V0b2Yoc3RydWN0IHJ0YXNfZmFkdW1wX21lbV9zdHJ1Y3QsCisJCQkJCSAgY3B1X3N0YXRlX2RhdGEpKTsKKworCS8qCisJICogRmllbGRzIGZvciBkaXNrIGR1bXAgb3B0aW9uLgorCSAqIFdlIGFyZSBub3QgdXNpbmcgZGlzayBkdW1wIG9wdGlvbiwgaGVuY2Ugc2V0IHRoZXNlIGZpZWxkcyB0byAwLgorCSAqLworCWZkbS5oZWFkZXIuZGRfYmxvY2tfc2l6ZSA9IDA7CisJZmRtLmhlYWRlci5kZF9ibG9ja19vZmZzZXQgPSAwOworCWZkbS5oZWFkZXIuZGRfbnVtX2Jsb2NrcyA9IDA7CisJZmRtLmhlYWRlci5kZF9vZmZzZXRfZGlza19wYXRoID0gMDsKKworCS8qIHNldCAwIHRvIGRpc2FibGUgYW4gYXV0b21hdGljIGR1bXAtcmVib290LiAqLworCWZkbS5oZWFkZXIubWF4X3RpbWVfYXV0byA9IDA7CisKKwkvKiBLZXJuZWwgZHVtcCBzZWN0aW9ucyAqLworCS8qIGNwdSBzdGF0ZSBkYXRhIHNlY3Rpb24uICovCisJZmRtLmNwdV9zdGF0ZV9kYXRhLnJlcXVlc3RfZmxhZyA9CisJCWNwdV90b19iZTMyKFJUQVNfRkFEVU1QX1JFUVVFU1RfRkxBRyk7CisJZmRtLmNwdV9zdGF0ZV9kYXRhLnNvdXJjZV9kYXRhX3R5cGUgPQorCQljcHVfdG9fYmUxNihSVEFTX0ZBRFVNUF9DUFVfU1RBVEVfREFUQSk7CisJZmRtLmNwdV9zdGF0ZV9kYXRhLnNvdXJjZV9hZGRyZXNzID0gMDsKKwlmZG0uY3B1X3N0YXRlX2RhdGEuc291cmNlX2xlbiA9CisJCWNwdV90b19iZTY0KGZhZHVtcF9jb25mLT5jcHVfc3RhdGVfZGF0YV9zaXplKTsKKwlmZG0uY3B1X3N0YXRlX2RhdGEuZGVzdGluYXRpb25fYWRkcmVzcyA9IGNwdV90b19iZTY0KGFkZHIpOworCWFkZHIgKz0gZmFkdW1wX2NvbmYtPmNwdV9zdGF0ZV9kYXRhX3NpemU7CisKKwkvKiBocHRlIHJlZ2lvbiBzZWN0aW9uICovCisJZmRtLmhwdGVfcmVnaW9uLnJlcXVlc3RfZmxhZyA9IGNwdV90b19iZTMyKFJUQVNfRkFEVU1QX1JFUVVFU1RfRkxBRyk7CisJZmRtLmhwdGVfcmVnaW9uLnNvdXJjZV9kYXRhX3R5cGUgPQorCQljcHVfdG9fYmUxNihSVEFTX0ZBRFVNUF9IUFRFX1JFR0lPTik7CisJZmRtLmhwdGVfcmVnaW9uLnNvdXJjZV9hZGRyZXNzID0gMDsKKwlmZG0uaHB0ZV9yZWdpb24uc291cmNlX2xlbiA9CisJCWNwdV90b19iZTY0KGZhZHVtcF9jb25mLT5ocHRlX3JlZ2lvbl9zaXplKTsKKwlmZG0uaHB0ZV9yZWdpb24uZGVzdGluYXRpb25fYWRkcmVzcyA9IGNwdV90b19iZTY0KGFkZHIpOworCWFkZHIgKz0gZmFkdW1wX2NvbmYtPmhwdGVfcmVnaW9uX3NpemU7CisKKwkvKiBSTUEgcmVnaW9uIHNlY3Rpb24gKi8KKwlmZG0ucm1yX3JlZ2lvbi5yZXF1ZXN0X2ZsYWcgPSBjcHVfdG9fYmUzMihSVEFTX0ZBRFVNUF9SRVFVRVNUX0ZMQUcpOworCWZkbS5ybXJfcmVnaW9uLnNvdXJjZV9kYXRhX3R5cGUgPQorCQljcHVfdG9fYmUxNihSVEFTX0ZBRFVNUF9SRUFMX01PREVfUkVHSU9OKTsKKwlmZG0ucm1yX3JlZ2lvbi5zb3VyY2VfYWRkcmVzcyA9IGNwdV90b19iZTY0KDApOworCWZkbS5ybXJfcmVnaW9uLnNvdXJjZV9sZW4gPSBjcHVfdG9fYmU2NChmYWR1bXBfY29uZi0+Ym9vdF9tZW1vcnlfc2l6ZSk7CisJZmRtLnJtcl9yZWdpb24uZGVzdGluYXRpb25fYWRkcmVzcyA9IGNwdV90b19iZTY0KGFkZHIpOworCWFkZHIgKz0gZmFkdW1wX2NvbmYtPmJvb3RfbWVtb3J5X3NpemU7CisKKwlydGFzX2ZhZHVtcF91cGRhdGVfY29uZmlnKGZhZHVtcF9jb25mLCAmZmRtKTsKKworCXJldHVybiBhZGRyOworfQorCitzdGF0aWMgdTY0IHJ0YXNfZmFkdW1wX2dldF9ib290bWVtX21pbih2b2lkKQoreworCXJldHVybiBSVEFTX0ZBRFVNUF9NSU5fQk9PVF9NRU07Cit9CisKK3N0YXRpYyBpbnQgcnRhc19mYWR1bXBfcmVnaXN0ZXIoc3RydWN0IGZ3X2R1bXAgKmZhZHVtcF9jb25mKQoreworCXVuc2lnbmVkIGludCB3YWl0X3RpbWU7CisJaW50IHJjLCBlcnIgPSAtRUlPOworCisJLyogVE9ETzogQWRkIHVwcGVyIHRpbWUgbGltaXQgZm9yIHRoZSBkZWxheSAqLworCWRvIHsKKwkJcmMgPSAgcnRhc19jYWxsKGZhZHVtcF9jb25mLT5pYm1fY29uZmlndXJlX2tlcm5lbF9kdW1wLCAzLCAxLAorCQkJCU5VTEwsIEZBRFVNUF9SRUdJU1RFUiwgJmZkbSwKKwkJCQlzaXplb2Yoc3RydWN0IHJ0YXNfZmFkdW1wX21lbV9zdHJ1Y3QpKTsKKworCQl3YWl0X3RpbWUgPSBydGFzX2J1c3lfZGVsYXlfdGltZShyYyk7CisJCWlmICh3YWl0X3RpbWUpCisJCQltZGVsYXkod2FpdF90aW1lKTsKKworCX0gd2hpbGUgKHdhaXRfdGltZSk7CisKKwlzd2l0Y2ggKHJjKSB7CisJY2FzZSAwOgorCQlwcl9pbmZvKCJSZWdpc3RyYXRpb24gaXMgc3VjY2Vzc2Z1bCFcbiIpOworCQlmYWR1bXBfY29uZi0+ZHVtcF9yZWdpc3RlcmVkID0gMTsKKwkJZXJyID0gMDsKKwkJYnJlYWs7CisJY2FzZSAtMToKKwkJcHJfZXJyKCJGYWlsZWQgdG8gcmVnaXN0ZXIuIEhhcmR3YXJlIEVycm9yKCVkKS5cbiIsIHJjKTsKKwkJYnJlYWs7CisJY2FzZSAtMzoKKwkJaWYgKCFpc19mYWR1bXBfYm9vdF9tZW1fY29udGlndW91cygpKQorCQkJcHJfZXJyKCJDYW4ndCBoYXZlIGhvbGVzIGluIGJvb3QgbWVtb3J5IGFyZWEuXG4iKTsKKwkJZWxzZSBpZiAoIWlzX2ZhZHVtcF9yZXNlcnZlZF9tZW1fY29udGlndW91cygpKQorCQkJcHJfZXJyKCJDYW4ndCBoYXZlIGhvbGVzIGluIHJlc2VydmVkIG1lbW9yeSBhcmVhLlxuIik7CisKKwkJcHJfZXJyKCJGYWlsZWQgdG8gcmVnaXN0ZXIuIFBhcmFtZXRlciBFcnJvciglZCkuXG4iLCByYyk7CisJCWVyciA9IC1FSU5WQUw7CisJCWJyZWFrOworCWNhc2UgLTk6CisJCXByX2VycigiQWxyZWFkeSByZWdpc3RlcmVkIVxuIik7CisJCWZhZHVtcF9jb25mLT5kdW1wX3JlZ2lzdGVyZWQgPSAxOworCQllcnIgPSAtRUVYSVNUOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwcl9lcnIoIkZhaWxlZCB0byByZWdpc3Rlci4gVW5rbm93biBFcnJvciglZCkuXG4iLCByYyk7CisJCWJyZWFrOworCX0KKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgcnRhc19mYWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYpCit7CisJdW5zaWduZWQgaW50IHdhaXRfdGltZTsKKwlpbnQgcmM7CisKKwkvKiBUT0RPOiBBZGQgdXBwZXIgdGltZSBsaW1pdCBmb3IgdGhlIGRlbGF5ICovCisJZG8geworCQlyYyA9ICBydGFzX2NhbGwoZmFkdW1wX2NvbmYtPmlibV9jb25maWd1cmVfa2VybmVsX2R1bXAsIDMsIDEsCisJCQkJTlVMTCwgRkFEVU1QX1VOUkVHSVNURVIsICZmZG0sCisJCQkJc2l6ZW9mKHN0cnVjdCBydGFzX2ZhZHVtcF9tZW1fc3RydWN0KSk7CisKKwkJd2FpdF90aW1lID0gcnRhc19idXN5X2RlbGF5X3RpbWUocmMpOworCQlpZiAod2FpdF90aW1lKQorCQkJbWRlbGF5KHdhaXRfdGltZSk7CisJfSB3aGlsZSAod2FpdF90aW1lKTsKKworCWlmIChyYykgeworCQlwcl9lcnIoIkZhaWxlZCB0byB1bi1yZWdpc3RlciAtIHVuZXhwZWN0ZWQgZXJyb3IoJWQpLlxuIiwgcmMpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwlmYWR1bXBfY29uZi0+ZHVtcF9yZWdpc3RlcmVkID0gMDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBydGFzX2ZhZHVtcF9pbnZhbGlkYXRlKHN0cnVjdCBmd19kdW1wICpmYWR1bXBfY29uZikKK3sKKwl1bnNpZ25lZCBpbnQgd2FpdF90aW1lOworCWludCByYzsKKworCS8qIFRPRE86IEFkZCB1cHBlciB0aW1lIGxpbWl0IGZvciB0aGUgZGVsYXkgKi8KKwlkbyB7CisJCXJjID0gIHJ0YXNfY2FsbChmYWR1bXBfY29uZi0+aWJtX2NvbmZpZ3VyZV9rZXJuZWxfZHVtcCwgMywgMSwKKwkJCQlOVUxMLCBGQURVTVBfSU5WQUxJREFURSwgZmRtX2FjdGl2ZSwKKwkJCQlzaXplb2Yoc3RydWN0IHJ0YXNfZmFkdW1wX21lbV9zdHJ1Y3QpKTsKKworCQl3YWl0X3RpbWUgPSBydGFzX2J1c3lfZGVsYXlfdGltZShyYyk7CisJCWlmICh3YWl0X3RpbWUpCisJCQltZGVsYXkod2FpdF90aW1lKTsKKwl9IHdoaWxlICh3YWl0X3RpbWUpOworCisJaWYgKHJjKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGludmFsaWRhdGUgLSB1bmV4cGVjdGVkIGVycm9yICglZCkuXG4iLCByYyk7CisJCXJldHVybiAtRUlPOworCX0KKworCWZhZHVtcF9jb25mLT5kdW1wX2FjdGl2ZSA9IDA7CisJZmRtX2FjdGl2ZSA9IE5VTEw7CisJcmV0dXJuIDA7Cit9CisKKyNkZWZpbmUgUlRBU19GQURVTVBfR1BSX01BU0sJCTB4ZmZmZmZmMDAwMDAwMDAwMAorc3RhdGljIGlubGluZSBpbnQgcnRhc19mYWR1bXBfZ3ByX2luZGV4KHU2NCBpZCkKK3sKKwljaGFyIHN0clszXTsKKwlpbnQgaSA9IC0xOworCisJaWYgKChpZCAmIFJUQVNfRkFEVU1QX0dQUl9NQVNLKSA9PSBmYWR1bXBfc3RyX3RvX3U2NCgiR1BSIikpIHsKKwkJLyogZ2V0IHRoZSBkaWdpdHMgYXQgdGhlIGVuZCAqLworCQlpZCAmPSB+UlRBU19GQURVTVBfR1BSX01BU0s7CisJCWlkID4+PSAyNDsKKwkJc3RyWzJdID0gJ1wwJzsKKwkJc3RyWzFdID0gaWQgJiAweGZmOworCQlzdHJbMF0gPSAoaWQgPj4gOCkgJiAweGZmOworCQlpZiAoa3N0cnRvaW50KHN0ciwgMTAsICZpKSkKKwkJCWkgPSAtRUlOVkFMOworCQlpZiAoaSA+IDMxKQorCQkJaSA9IC0xOworCX0KKwlyZXR1cm4gaTsKK30KKwordm9pZCBydGFzX2ZhZHVtcF9zZXRfcmVndmFsKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1NjQgcmVnX2lkLCB1NjQgcmVnX3ZhbCkKK3sKKwlpbnQgaTsKKworCWkgPSBydGFzX2ZhZHVtcF9ncHJfaW5kZXgocmVnX2lkKTsKKwlpZiAoaSA+PSAwKQorCQlyZWdzLT5ncHJbaV0gPSAodW5zaWduZWQgbG9uZylyZWdfdmFsOworCWVsc2UgaWYgKHJlZ19pZCA9PSBmYWR1bXBfc3RyX3RvX3U2NCgiTklBIikpCisJCXJlZ3MtPm5pcCA9ICh1bnNpZ25lZCBsb25nKXJlZ192YWw7CisJZWxzZSBpZiAocmVnX2lkID09IGZhZHVtcF9zdHJfdG9fdTY0KCJNU1IiKSkKKwkJcmVncy0+bXNyID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKKwllbHNlIGlmIChyZWdfaWQgPT0gZmFkdW1wX3N0cl90b191NjQoIkNUUiIpKQorCQlyZWdzLT5jdHIgPSAodW5zaWduZWQgbG9uZylyZWdfdmFsOworCWVsc2UgaWYgKHJlZ19pZCA9PSBmYWR1bXBfc3RyX3RvX3U2NCgiTFIiKSkKKwkJcmVncy0+bGluayA9ICh1bnNpZ25lZCBsb25nKXJlZ192YWw7CisJZWxzZSBpZiAocmVnX2lkID09IGZhZHVtcF9zdHJfdG9fdTY0KCJYRVIiKSkKKwkJcmVncy0+eGVyID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKKwllbHNlIGlmIChyZWdfaWQgPT0gZmFkdW1wX3N0cl90b191NjQoIkNSIikpCisJCXJlZ3MtPmNjciA9ICh1bnNpZ25lZCBsb25nKXJlZ192YWw7CisJZWxzZSBpZiAocmVnX2lkID09IGZhZHVtcF9zdHJfdG9fdTY0KCJEQVIiKSkKKwkJcmVncy0+ZGFyID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKKwllbHNlIGlmIChyZWdfaWQgPT0gZmFkdW1wX3N0cl90b191NjQoIkRTSVNSIikpCisJCXJlZ3MtPmRzaXNyID0gKHVuc2lnbmVkIGxvbmcpcmVnX3ZhbDsKK30KKworc3RhdGljIHN0cnVjdCBydGFzX2ZhZHVtcF9yZWdfZW50cnkqCitydGFzX2ZhZHVtcF9yZWFkX3JlZ3Moc3RydWN0IHJ0YXNfZmFkdW1wX3JlZ19lbnRyeSAqcmVnX2VudHJ5LAorCQkgICAgICBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwltZW1zZXQocmVncywgMCwgc2l6ZW9mKHN0cnVjdCBwdF9yZWdzKSk7CisKKwl3aGlsZSAoYmU2NF90b19jcHUocmVnX2VudHJ5LT5yZWdfaWQpICE9IGZhZHVtcF9zdHJfdG9fdTY0KCJDUFVFTkQiKSkgeworCQlydGFzX2ZhZHVtcF9zZXRfcmVndmFsKHJlZ3MsIGJlNjRfdG9fY3B1KHJlZ19lbnRyeS0+cmVnX2lkKSwKKwkJCQkgICAgICAgYmU2NF90b19jcHUocmVnX2VudHJ5LT5yZWdfdmFsdWUpKTsKKwkJcmVnX2VudHJ5Kys7CisJfQorCXJlZ19lbnRyeSsrOworCXJldHVybiByZWdfZW50cnk7Cit9CisKKy8qCisgKiBSZWFkIENQVSBzdGF0ZSBkdW1wIGRhdGEgYW5kIGNvbnZlcnQgaXQgaW50byBFTEYgbm90ZXMuCisgKiBUaGUgQ1BVIGR1bXAgc3RhcnRzIHdpdGggbWFnaWMgbnVtYmVyICJSRUdTQVZFIi4gTnVtQ3B1c09mZnNldCBzaG91bGQgYmUKKyAqIHVzZWQgdG8gYWNjZXNzIHRoZSBkYXRhIHRvIGFsbG93IGZvciBhZGRpdGlvbmFsIGZpZWxkcyB0byBiZSBhZGRlZCB3aXRob3V0CisgKiBhZmZlY3RpbmcgY29tcGF0aWJpbGl0eS4gRWFjaCBsaXN0IG9mIHJlZ2lzdGVycyBmb3IgYSBDUFUgc3RhcnRzIHdpdGgKKyAqICJDUFVTVFJUIiBhbmQgZW5kcyB3aXRoICJDUFVFTkQiLiBFYWNoIHJlZ2lzdGVyIGVudHJ5IGlzIG9mIDE2IGJ5dGVzLAorICogOCBCeXRlIEFTQ0lJIGlkZW50aWZpZXIgYW5kIDggQnl0ZSByZWdpc3RlciB2YWx1ZS4gVGhlIHJlZ2lzdGVyIGVudHJ5CisgKiB3aXRoIGlkZW50aWZpZXIgIkNQVVNUUlQiIGFuZCAiQ1BVRU5EIiBjb250YWlucyA0IGJ5dGUgY3B1IGlkIGFzIHBhcnQKKyAqIG9mIHJlZ2lzdGVyIHZhbHVlLiBGb3IgbW9yZSBkZXRhaWxzIHJlZmVyIHRvIFBBUFIgZG9jdW1lbnQuCisgKgorICogT25seSBmb3IgdGhlIGNyYXNoaW5nIGNwdSB3ZSBpZ25vcmUgdGhlIENQVSBkdW1wIGRhdGEgYW5kIGdldCBleGFjdAorICogc3RhdGUgZnJvbSBmYWR1bXAgY3Jhc2ggaW5mbyBzdHJ1Y3R1cmUgcG9wdWxhdGVkIGJ5IGZpcnN0IGtlcm5lbCBhdCB0aGUKKyAqIHRpbWUgb2YgY3Jhc2guCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IHJ0YXNfZmFkdW1wX2J1aWxkX2NwdV9ub3RlcyhzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYpCit7CisJc3RydWN0IHJ0YXNfZmFkdW1wX3JlZ19zYXZlX2FyZWFfaGVhZGVyICpyZWdfaGVhZGVyOworCXN0cnVjdCBmYWR1bXBfY3Jhc2hfaW5mb19oZWFkZXIgKmZkaCA9IE5VTEw7CisJc3RydWN0IHJ0YXNfZmFkdW1wX3JlZ19lbnRyeSAqcmVnX2VudHJ5OworCXUzMiBudW1fY3B1cywgKm5vdGVfYnVmOworCWludCBpLCByYyA9IDAsIGNwdSA9IDA7CisJc3RydWN0IHB0X3JlZ3MgcmVnczsKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJdm9pZCAqdmFkZHI7CisKKwlhZGRyID0gYmU2NF90b19jcHUoZmRtX2FjdGl2ZS0+Y3B1X3N0YXRlX2RhdGEuZGVzdGluYXRpb25fYWRkcmVzcyk7CisJdmFkZHIgPSBfX3ZhKGFkZHIpOworCisJcmVnX2hlYWRlciA9IHZhZGRyOworCWlmIChiZTY0X3RvX2NwdShyZWdfaGVhZGVyLT5tYWdpY19udW1iZXIpICE9CisJICAgIGZhZHVtcF9zdHJfdG9fdTY0KCJSRUdTQVZFIikpIHsKKwkJcHJfZXJyKCJVbmFibGUgdG8gcmVhZCByZWdpc3RlciBzYXZlIGFyZWEuXG4iKTsKKwkJcmV0dXJuIC1FTk9FTlQ7CisJfQorCisJcHJfZGVidWcoIi0tLS0tLS0tQ1BVIFN0YXRlIERhdGEtLS0tLS0tLS0tLS1cbiIpOworCXByX2RlYnVnKCJNYWdpYyBOdW1iZXI6ICVsbHhcbiIsIGJlNjRfdG9fY3B1KHJlZ19oZWFkZXItPm1hZ2ljX251bWJlcikpOworCXByX2RlYnVnKCJOdW1DcHVPZmZzZXQ6ICV4XG4iLCBiZTMyX3RvX2NwdShyZWdfaGVhZGVyLT5udW1fY3B1X29mZnNldCkpOworCisJdmFkZHIgKz0gYmUzMl90b19jcHUocmVnX2hlYWRlci0+bnVtX2NwdV9vZmZzZXQpOworCW51bV9jcHVzID0gYmUzMl90b19jcHUoKigoX19iZTMyICopKHZhZGRyKSkpOworCXByX2RlYnVnKCJOdW1DcHVzICAgICA6ICV1XG4iLCBudW1fY3B1cyk7CisJdmFkZHIgKz0gc2l6ZW9mKHUzMik7CisJcmVnX2VudHJ5ID0gKHN0cnVjdCBydGFzX2ZhZHVtcF9yZWdfZW50cnkgKil2YWRkcjsKKworCXJjID0gZmFkdW1wX3NldHVwX2NwdV9ub3Rlc19idWYobnVtX2NwdXMpOworCWlmIChyYyAhPSAwKQorCQlyZXR1cm4gcmM7CisKKwlub3RlX2J1ZiA9ICh1MzIgKilmYWR1bXBfY29uZi0+Y3B1X25vdGVzX2J1Zl92YWRkcjsKKworCWlmIChmYWR1bXBfY29uZi0+ZmFkdW1waGRyX2FkZHIpCisJCWZkaCA9IF9fdmEoZmFkdW1wX2NvbmYtPmZhZHVtcGhkcl9hZGRyKTsKKworCWZvciAoaSA9IDA7IGkgPCBudW1fY3B1czsgaSsrKSB7CisJCWlmIChiZTY0X3RvX2NwdShyZWdfZW50cnktPnJlZ19pZCkgIT0KKwkJICAgIGZhZHVtcF9zdHJfdG9fdTY0KCJDUFVTVFJUIikpIHsKKwkJCXByX2VycigiVW5hYmxlIHRvIHJlYWQgQ1BVIHN0YXRlIGRhdGFcbiIpOworCQkJcmMgPSAtRU5PRU5UOworCQkJZ290byBlcnJvcl9vdXQ7CisJCX0KKwkJLyogTG93ZXIgNCBieXRlcyBvZiByZWdfdmFsdWUgY29udGFpbnMgbG9naWNhbCBjcHUgaWQgKi8KKwkJY3B1ID0gKGJlNjRfdG9fY3B1KHJlZ19lbnRyeS0+cmVnX3ZhbHVlKSAmCisJCSAgICAgICBSVEFTX0ZBRFVNUF9DUFVfSURfTUFTSyk7CisJCWlmIChmZGggJiYgIWNwdW1hc2tfdGVzdF9jcHUoY3B1LCAmZmRoLT5vbmxpbmVfbWFzaykpIHsKKwkJCVJUQVNfRkFEVU1QX1NLSVBfVE9fTkVYVF9DUFUocmVnX2VudHJ5KTsKKwkJCWNvbnRpbnVlOworCQl9CisJCXByX2RlYnVnKCJSZWFkaW5nIHJlZ2lzdGVyIGRhdGEgZm9yIGNwdSAlZC4uLlxuIiwgY3B1KTsKKwkJaWYgKGZkaCAmJiBmZGgtPmNyYXNoaW5nX2NwdSA9PSBjcHUpIHsKKwkJCXJlZ3MgPSBmZGgtPnJlZ3M7CisJCQlub3RlX2J1ZiA9IGZhZHVtcF9yZWdzX3RvX2VsZl9ub3Rlcyhub3RlX2J1ZiwgJnJlZ3MpOworCQkJUlRBU19GQURVTVBfU0tJUF9UT19ORVhUX0NQVShyZWdfZW50cnkpOworCQl9IGVsc2UgeworCQkJcmVnX2VudHJ5Kys7CisJCQlyZWdfZW50cnkgPSBydGFzX2ZhZHVtcF9yZWFkX3JlZ3MocmVnX2VudHJ5LCAmcmVncyk7CisJCQlub3RlX2J1ZiA9IGZhZHVtcF9yZWdzX3RvX2VsZl9ub3Rlcyhub3RlX2J1ZiwgJnJlZ3MpOworCQl9CisJfQorCWZpbmFsX25vdGUobm90ZV9idWYpOworCisJaWYgKGZkaCkgeworCQlwcl9kZWJ1ZygiVXBkYXRpbmcgZWxmY29yZSBoZWFkZXIgKCVsbHgpIHdpdGggY3B1IG5vdGVzXG4iLAorCQkJIGZkaC0+ZWxmY29yZWhkcl9hZGRyKTsKKwkJZmFkdW1wX3VwZGF0ZV9lbGZjb3JlX2hlYWRlcihfX3ZhKGZkaC0+ZWxmY29yZWhkcl9hZGRyKSk7CisJfQorCXJldHVybiAwOworCitlcnJvcl9vdXQ6CisJZmFkdW1wX2ZyZWVfY3B1X25vdGVzX2J1ZigpOworCXJldHVybiByYzsKKworfQorCisvKgorICogVmFsaWRhdGUgYW5kIHByb2Nlc3MgdGhlIGR1bXAgZGF0YSBzdG9yZWQgYnkgZmlybXdhcmUgYmVmb3JlIGV4cG9ydGluZworICogaXQgdGhyb3VnaCAnL3Byb2Mvdm1jb3JlJy4KKyAqLworc3RhdGljIGludCBfX2luaXQgcnRhc19mYWR1bXBfcHJvY2VzcyhzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYpCit7CisJc3RydWN0IGZhZHVtcF9jcmFzaF9pbmZvX2hlYWRlciAqZmRoOworCWludCByYyA9IDA7CisKKwlpZiAoIWZkbV9hY3RpdmUgfHwgIWZhZHVtcF9jb25mLT5mYWR1bXBoZHJfYWRkcikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBDaGVjayBpZiB0aGUgZHVtcCBkYXRhIGlzIHZhbGlkLiAqLworCWlmICgoYmUxNl90b19jcHUoZmRtX2FjdGl2ZS0+aGVhZGVyLmR1bXBfc3RhdHVzX2ZsYWcpID09CisJCQlSVEFTX0ZBRFVNUF9FUlJPUl9GTEFHKSB8fAorCQkJKGZkbV9hY3RpdmUtPmNwdV9zdGF0ZV9kYXRhLmVycm9yX2ZsYWdzICE9IDApIHx8CisJCQkoZmRtX2FjdGl2ZS0+cm1yX3JlZ2lvbi5lcnJvcl9mbGFncyAhPSAwKSkgeworCQlwcl9lcnIoIkR1bXAgdGFrZW4gYnkgcGxhdGZvcm0gaXMgbm90IHZhbGlkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlmICgoZmRtX2FjdGl2ZS0+cm1yX3JlZ2lvbi5ieXRlc19kdW1wZWQgIT0KKwkJCWZkbV9hY3RpdmUtPnJtcl9yZWdpb24uc291cmNlX2xlbikgfHwKKwkJCSFmZG1fYWN0aXZlLT5jcHVfc3RhdGVfZGF0YS5ieXRlc19kdW1wZWQpIHsKKwkJcHJfZXJyKCJEdW1wIHRha2VuIGJ5IHBsYXRmb3JtIGlzIGluY29tcGxldGVcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBWYWxpZGF0ZSB0aGUgZmFkdW1wIGNyYXNoIGluZm8gaGVhZGVyICovCisJZmRoID0gX192YShmYWR1bXBfY29uZi0+ZmFkdW1waGRyX2FkZHIpOworCWlmIChmZGgtPm1hZ2ljX251bWJlciAhPSBGQURVTVBfQ1JBU0hfSU5GT19NQUdJQykgeworCQlwcl9lcnIoIkNyYXNoIGluZm8gaGVhZGVyIGlzIG5vdCB2YWxpZC5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyYyA9IHJ0YXNfZmFkdW1wX2J1aWxkX2NwdV9ub3RlcyhmYWR1bXBfY29uZik7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwkvKgorCSAqIFdlIGFyZSBkb25lIHZhbGlkYXRpbmcgZHVtcCBpbmZvIGFuZCBlbGZjb3JlIGhlYWRlciBpcyBub3cgcmVhZHkKKwkgKiB0byBiZSBleHBvcnRlZC4gc2V0IGVsZmNvcmVoZHJfYWRkciBzbyB0aGF0IHZtY29yZSBtb2R1bGUgd2lsbAorCSAqIGV4cG9ydCB0aGUgZWxmY29yZSBoZWFkZXIgdGhyb3VnaCAnL3Byb2Mvdm1jb3JlJy4KKwkgKi8KKwllbGZjb3JlaGRyX2FkZHIgPSBmZGgtPmVsZmNvcmVoZHJfYWRkcjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBydGFzX2ZhZHVtcF9yZWdpb25fc2hvdyhzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYsCisJCQkJICAgIHN0cnVjdCBzZXFfZmlsZSAqbSkKK3sKKwljb25zdCBzdHJ1Y3QgcnRhc19mYWR1bXBfc2VjdGlvbiAqY3B1X2RhdGFfc2VjdGlvbjsKKwljb25zdCBzdHJ1Y3QgcnRhc19mYWR1bXBfbWVtX3N0cnVjdCAqZmRtX3B0cjsKKworCWlmIChmZG1fYWN0aXZlKQorCQlmZG1fcHRyID0gZmRtX2FjdGl2ZTsKKwllbHNlCisJCWZkbV9wdHIgPSAmZmRtOworCisJY3B1X2RhdGFfc2VjdGlvbiA9ICYoZmRtX3B0ci0+Y3B1X3N0YXRlX2RhdGEpOworCXNlcV9wcmludGYobSwgIkNQVSA6WyUjMDE2bGx4LSUjMDE2bGx4XSAlI2xseCBieXRlcywgRHVtcGVkOiAlI2xseFxuIiwKKwkJICAgYmU2NF90b19jcHUoY3B1X2RhdGFfc2VjdGlvbi0+ZGVzdGluYXRpb25fYWRkcmVzcyksCisJCSAgIGJlNjRfdG9fY3B1KGNwdV9kYXRhX3NlY3Rpb24tPmRlc3RpbmF0aW9uX2FkZHJlc3MpICsKKwkJICAgYmU2NF90b19jcHUoY3B1X2RhdGFfc2VjdGlvbi0+c291cmNlX2xlbikgLSAxLAorCQkgICBiZTY0X3RvX2NwdShjcHVfZGF0YV9zZWN0aW9uLT5zb3VyY2VfbGVuKSwKKwkJICAgYmU2NF90b19jcHUoY3B1X2RhdGFfc2VjdGlvbi0+Ynl0ZXNfZHVtcGVkKSk7CisKKwlzZXFfcHJpbnRmKG0sICJIUFRFOlslIzAxNmxseC0lIzAxNmxseF0gJSNsbHggYnl0ZXMsIER1bXBlZDogJSNsbHhcbiIsCisJCSAgIGJlNjRfdG9fY3B1KGZkbV9wdHItPmhwdGVfcmVnaW9uLmRlc3RpbmF0aW9uX2FkZHJlc3MpLAorCQkgICBiZTY0X3RvX2NwdShmZG1fcHRyLT5ocHRlX3JlZ2lvbi5kZXN0aW5hdGlvbl9hZGRyZXNzKSArCisJCSAgIGJlNjRfdG9fY3B1KGZkbV9wdHItPmhwdGVfcmVnaW9uLnNvdXJjZV9sZW4pIC0gMSwKKwkJICAgYmU2NF90b19jcHUoZmRtX3B0ci0+aHB0ZV9yZWdpb24uc291cmNlX2xlbiksCisJCSAgIGJlNjRfdG9fY3B1KGZkbV9wdHItPmhwdGVfcmVnaW9uLmJ5dGVzX2R1bXBlZCkpOworCisJc2VxX3ByaW50ZihtLCAiRFVNUDogU3JjOiAlIzAxNmxseCwgRGVzdDogJSMwMTZsbHgsICIsCisJCSAgIGJlNjRfdG9fY3B1KGZkbV9wdHItPnJtcl9yZWdpb24uc291cmNlX2FkZHJlc3MpLAorCQkgICBiZTY0X3RvX2NwdShmZG1fcHRyLT5ybXJfcmVnaW9uLmRlc3RpbmF0aW9uX2FkZHJlc3MpKTsKKwlzZXFfcHJpbnRmKG0sICJTaXplOiAlI2xseCwgRHVtcGVkOiAlI2xseCBieXRlc1xuIiwKKwkJICAgYmU2NF90b19jcHUoZmRtX3B0ci0+cm1yX3JlZ2lvbi5zb3VyY2VfbGVuKSwKKwkJICAgYmU2NF90b19jcHUoZmRtX3B0ci0+cm1yX3JlZ2lvbi5ieXRlc19kdW1wZWQpKTsKKworCS8qIER1bXAgaXMgYWN0aXZlLiBTaG93IHJlc2VydmVkIGFyZWEgc3RhcnQgYWRkcmVzcy4gKi8KKwlpZiAoZmRtX2FjdGl2ZSkgeworCQlzZXFfcHJpbnRmKG0sICJcbk1lbW9yeSBhYm92ZSAlIzAxNmx4IGlzIHJlc2VydmVkIGZvciBzYXZpbmcgY3Jhc2ggZHVtcFxuIiwKKwkJCSAgIGZhZHVtcF9jb25mLT5yZXNlcnZlX2R1bXBfYXJlYV9zdGFydCk7CisJfQorfQorCitzdGF0aWMgdm9pZCBydGFzX2ZhZHVtcF90cmlnZ2VyKHN0cnVjdCBmYWR1bXBfY3Jhc2hfaW5mb19oZWFkZXIgKmZkaCwKKwkJCQljb25zdCBjaGFyICptc2cpCit7CisJLyogQ2FsbCBpYm0sb3MtdGVybSBydGFzIGNhbGwgdG8gdHJpZ2dlciBmaXJtd2FyZSBhc3Npc3RlZCBkdW1wICovCisJcnRhc19vc190ZXJtKChjaGFyICopbXNnKTsKK30KKworc3RhdGljIHN0cnVjdCBmYWR1bXBfb3BzIHJ0YXNfZmFkdW1wX29wcyA9IHsKKwkuZmFkdW1wX2luaXRfbWVtX3N0cnVjdAkJPSBydGFzX2ZhZHVtcF9pbml0X21lbV9zdHJ1Y3QsCisJLmZhZHVtcF9nZXRfYm9vdG1lbV9taW4JCT0gcnRhc19mYWR1bXBfZ2V0X2Jvb3RtZW1fbWluLAorCS5mYWR1bXBfcmVnaXN0ZXIJCT0gcnRhc19mYWR1bXBfcmVnaXN0ZXIsCisJLmZhZHVtcF91bnJlZ2lzdGVyCQk9IHJ0YXNfZmFkdW1wX3VucmVnaXN0ZXIsCisJLmZhZHVtcF9pbnZhbGlkYXRlCQk9IHJ0YXNfZmFkdW1wX2ludmFsaWRhdGUsCisJLmZhZHVtcF9wcm9jZXNzCQkJPSBydGFzX2ZhZHVtcF9wcm9jZXNzLAorCS5mYWR1bXBfcmVnaW9uX3Nob3cJCT0gcnRhc19mYWR1bXBfcmVnaW9uX3Nob3csCisJLmZhZHVtcF90cmlnZ2VyCQkJPSBydGFzX2ZhZHVtcF90cmlnZ2VyLAorfTsKKwordm9pZCBfX2luaXQgcnRhc19mYWR1bXBfZHRfc2NhbihzdHJ1Y3QgZndfZHVtcCAqZmFkdW1wX2NvbmYsIHU2NCBub2RlKQoreworCWludCBpLCBzaXplLCBudW1fc2VjdGlvbnM7CisJY29uc3QgX19iZTMyICpzZWN0aW9uczsKKwljb25zdCBfX2JlMzIgKnRva2VuOworCisJLyoKKwkgKiBDaGVjayBpZiBGaXJtd2FyZSBBc3Npc3RlZCBkdW1wIGlzIHN1cHBvcnRlZC4gaWYgeWVzLCBjaGVjaworCSAqIGlmIGR1bXAgaGFzIGJlZW4gaW5pdGlhdGVkIG9uIGxhc3QgcmVib290LgorCSAqLworCXRva2VuID0gb2ZfZ2V0X2ZsYXRfZHRfcHJvcChub2RlLCAiaWJtLGNvbmZpZ3VyZS1rZXJuZWwtZHVtcCIsIE5VTEwpOworCWlmICghdG9rZW4pCisJCXJldHVybjsKKworCWZhZHVtcF9jb25mLT5pYm1fY29uZmlndXJlX2tlcm5lbF9kdW1wID0gYmUzMl90b19jcHUoKnRva2VuKTsKKwlmYWR1bXBfY29uZi0+b3BzCQk9ICZydGFzX2ZhZHVtcF9vcHM7CisJZmFkdW1wX2NvbmYtPmZhZHVtcF9zdXBwb3J0ZWQJPSAxOworCisJLyogRmlybXdhcmUgc3VwcG9ydHMgNjQtYml0IHZhbHVlIGZvciBzaXplLCBhbGlnbiBpdCB0byBwYWdlc2l6ZS4gKi8KKwlmYWR1bXBfY29uZi0+bWF4X2NvcHlfc2l6ZSA9IF9BTElHTl9ET1dOKFU2NF9NQVgsIFBBR0VfU0laRSk7CisKKwkvKgorCSAqIFRoZSAnaWJtLGtlcm5lbC1kdW1wJyBydGFzIG5vZGUgaXMgcHJlc2VudCBvbmx5IGlmIHRoZXJlIGlzCisJICogZHVtcCBkYXRhIHdhaXRpbmcgZm9yIHVzLgorCSAqLworCWZkbV9hY3RpdmUgPSBvZl9nZXRfZmxhdF9kdF9wcm9wKG5vZGUsICJpYm0sa2VybmVsLWR1bXAiLCBOVUxMKTsKKwlpZiAoZmRtX2FjdGl2ZSkgeworCQlwcl9pbmZvKCJGaXJtd2FyZS1hc3Npc3RlZCBkdW1wIGlzIGFjdGl2ZS5cbiIpOworCQlmYWR1bXBfY29uZi0+ZHVtcF9hY3RpdmUgPSAxOworCQlydGFzX2ZhZHVtcF9nZXRfY29uZmlnKGZhZHVtcF9jb25mLCAodm9pZCAqKV9fcGEoZmRtX2FjdGl2ZSkpOworCX0KKworCS8qIEdldCB0aGUgc2l6ZXMgcmVxdWlyZWQgdG8gc3RvcmUgZHVtcCBkYXRhIGZvciB0aGUgZmlybXdhcmUgcHJvdmlkZWQKKwkgKiBkdW1wIHNlY3Rpb25zLgorCSAqIEZvciBlYWNoIGR1bXAgc2VjdGlvbiB0eXBlIHN1cHBvcnRlZCwgYSAzMmJpdCBjZWxsIHdoaWNoIGRlZmluZXMKKwkgKiB0aGUgSUQgb2YgYSBzdXBwb3J0ZWQgc2VjdGlvbiBmb2xsb3dlZCBieSB0d28gMzIgYml0IGNlbGxzIHdoaWNoCisJICogZ2l2ZXMgdGhlIHNpemUgb2YgdGhlIHNlY3Rpb24gaW4gYnl0ZXMuCisJICovCisJc2VjdGlvbnMgPSBvZl9nZXRfZmxhdF9kdF9wcm9wKG5vZGUsICJpYm0sY29uZmlndXJlLWtlcm5lbC1kdW1wLXNpemVzIiwKKwkJCQkJJnNpemUpOworCisJaWYgKCFzZWN0aW9ucykKKwkJcmV0dXJuOworCisJbnVtX3NlY3Rpb25zID0gc2l6ZSAvICgzICogc2l6ZW9mKHUzMikpOworCisJZm9yIChpID0gMDsgaSA8IG51bV9zZWN0aW9uczsgaSsrLCBzZWN0aW9ucyArPSAzKSB7CisJCXUzMiB0eXBlID0gKHUzMilvZl9yZWFkX251bWJlcihzZWN0aW9ucywgMSk7CisKKwkJc3dpdGNoICh0eXBlKSB7CisJCWNhc2UgUlRBU19GQURVTVBfQ1BVX1NUQVRFX0RBVEE6CisJCQlmYWR1bXBfY29uZi0+Y3B1X3N0YXRlX2RhdGFfc2l6ZSA9CisJCQkJCW9mX3JlYWRfdWxvbmcoJnNlY3Rpb25zWzFdLCAyKTsKKwkJCWJyZWFrOworCQljYXNlIFJUQVNfRkFEVU1QX0hQVEVfUkVHSU9OOgorCQkJZmFkdW1wX2NvbmYtPmhwdGVfcmVnaW9uX3NpemUgPQorCQkJCQlvZl9yZWFkX3Vsb25nKCZzZWN0aW9uc1sxXSwgMik7CisJCQlicmVhazsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9ydGFzLWZhZHVtcC5oIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3J0YXMtZmFkdW1wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ1OWJkNwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9ydGFzLWZhZHVtcC5oCkBAIC0wLDAgKzEsMTE0IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlciAqLworLyoKKyAqIEZpcm13YXJlLUFzc2lzdGVkIER1bXAgc3VwcG9ydCBvbiBQT1dFUlZNIHBsYXRmb3JtLgorICoKKyAqIENvcHlyaWdodCAyMDExLCBNYWhlc2ggU2FsZ2FvbmthciwgSUJNIENvcnBvcmF0aW9uLgorICogQ29weXJpZ2h0IDIwMTksIEhhcmkgQmF0aGluaSwgSUJNIENvcnBvcmF0aW9uLgorICovCisKKyNpZm5kZWYgX1BTRVJJRVNfUlRBU19GQURVTVBfSAorI2RlZmluZSBfUFNFUklFU19SVEFTX0ZBRFVNUF9ICisKKy8qCisgKiBPbiBzb21lIFBvd2VyIHN5c3RlbXMgd2hlcmUgUk1PIGlzIDEyOE1CLCBpdCBzdGlsbCByZXF1aXJlcyBtaW5pbXVtIG9mCisgKiAyNTZNQiBmb3Iga2VybmVsIHRvIGJvb3Qgc3VjY2Vzc2Z1bGx5LiBXaGVuIGtkdW1wIGluZnJhc3RydWN0dXJlIGlzCisgKiBjb25maWd1cmVkIHRvIHNhdmUgdm1jb3JlIG92ZXIgbmV0d29yaywgd2UgcnVuIGludG8gT09NIGlzc3VlIHdoaWxlCisgKiBsb2FkaW5nIG1vZHVsZXMgcmVsYXRlZCB0byBuZXR3b3JrIHNldHVwLiBIZW5jZSB3ZSBuZWVkIGFkZGl0aW9uYWwgNjRNCisgKiBvZiBtZW1vcnkgdG8gYXZvaWQgT09NIGlzc3VlLgorICovCisjZGVmaW5lIFJUQVNfRkFEVU1QX01JTl9CT09UX01FTQkoKDB4MVVMIDw8IDI4KSArICgweDFVTCA8PCAyNikpCisKKy8qIEZpcm13YXJlIHByb3ZpZGVkIGR1bXAgc2VjdGlvbnMgKi8KKyNkZWZpbmUgUlRBU19GQURVTVBfQ1BVX1NUQVRFX0RBVEEJMHgwMDAxCisjZGVmaW5lIFJUQVNfRkFEVU1QX0hQVEVfUkVHSU9OCQkweDAwMDIKKyNkZWZpbmUgUlRBU19GQURVTVBfUkVBTF9NT0RFX1JFR0lPTgkweDAwMTEKKworLyogRHVtcCByZXF1ZXN0IGZsYWcgKi8KKyNkZWZpbmUgUlRBU19GQURVTVBfUkVRVUVTVF9GTEFHCTB4MDAwMDAwMDEKKworLyogRHVtcCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBSVEFTX0ZBRFVNUF9FUlJPUl9GTEFHCQkweDIwMDAKKworLyogS2VybmVsIER1bXAgc2VjdGlvbiBpbmZvICovCitzdHJ1Y3QgcnRhc19mYWR1bXBfc2VjdGlvbiB7CisJX19iZTMyCXJlcXVlc3RfZmxhZzsKKwlfX2JlMTYJc291cmNlX2RhdGFfdHlwZTsKKwlfX2JlMTYJZXJyb3JfZmxhZ3M7CisJX19iZTY0CXNvdXJjZV9hZGRyZXNzOworCV9fYmU2NAlzb3VyY2VfbGVuOworCV9fYmU2NAlieXRlc19kdW1wZWQ7CisJX19iZTY0CWRlc3RpbmF0aW9uX2FkZHJlc3M7Cit9OworCisvKiBpYm0sY29uZmlndXJlLWtlcm5lbC1kdW1wIGhlYWRlci4gKi8KK3N0cnVjdCBydGFzX2ZhZHVtcF9zZWN0aW9uX2hlYWRlciB7CisJX19iZTMyCWR1bXBfZm9ybWF0X3ZlcnNpb247CisJX19iZTE2CWR1bXBfbnVtX3NlY3Rpb25zOworCV9fYmUxNglkdW1wX3N0YXR1c19mbGFnOworCV9fYmUzMglvZmZzZXRfZmlyc3RfZHVtcF9zZWN0aW9uOworCisJLyogRmllbGRzIGZvciBkaXNrIGR1bXAgb3B0aW9uLiAqLworCV9fYmUzMglkZF9ibG9ja19zaXplOworCV9fYmU2NAlkZF9ibG9ja19vZmZzZXQ7CisJX19iZTY0CWRkX251bV9ibG9ja3M7CisJX19iZTMyCWRkX29mZnNldF9kaXNrX3BhdGg7CisKKwkvKiBNYXhpbXVtIHRpbWUgYWxsb3dlZCB0byBwcmV2ZW50IGFuIGF1dG9tYXRpYyBkdW1wLXJlYm9vdC4gKi8KKwlfX2JlMzIJbWF4X3RpbWVfYXV0bzsKK307CisKKy8qCisgKiBGaXJtd2FyZSBBc3Npc3RlZCBkdW1wIG1lbW9yeSBzdHJ1Y3R1cmUuIFRoaXMgc3RydWN0dXJlIGlzIHJlcXVpcmVkIGZvcgorICogcmVnaXN0ZXJpbmcgZnV0dXJlIGtlcm5lbCBkdW1wIHdpdGggcG93ZXIgZmlybXdhcmUgdGhyb3VnaCBydGFzIGNhbGwuCisgKgorICogTm8gZGlzayBkdW1wIG9wdGlvbi4gSGVuY2UgZGlzayBkdW1wIHBhdGggc3RyaW5nIHNlY3Rpb24gaXMgbm90IGluY2x1ZGVkLgorICovCitzdHJ1Y3QgcnRhc19mYWR1bXBfbWVtX3N0cnVjdCB7CisJc3RydWN0IHJ0YXNfZmFkdW1wX3NlY3Rpb25faGVhZGVyCWhlYWRlcjsKKworCS8qIEtlcm5lbCBkdW1wIHNlY3Rpb25zICovCisJc3RydWN0IHJ0YXNfZmFkdW1wX3NlY3Rpb24JCWNwdV9zdGF0ZV9kYXRhOworCXN0cnVjdCBydGFzX2ZhZHVtcF9zZWN0aW9uCQlocHRlX3JlZ2lvbjsKKworCS8qCisJICogVE9ETzogRXh0ZW5kIG11bHRpcGxlIGJvb3QgbWVtb3J5IHJlZ2lvbnMgc3VwcG9ydCBpbiB0aGUga2VybmVsCisJICogICAgICAgZm9yIHRoaXMgcGxhdGZvcm0uCisJICovCisJc3RydWN0IHJ0YXNfZmFkdW1wX3NlY3Rpb24JCXJtcl9yZWdpb247Cit9OworCisvKgorICogVGhlIGZpcm13YXJlLWFzc2lzdGVkIGR1bXAgZm9ybWF0LgorICoKKyAqIFRoZSByZWdpc3RlciBzYXZlIGFyZWEgaXMgYW4gYXJlYSBpbiB0aGUgcGFydGl0aW9uJ3MgbWVtb3J5IHVzZWQgdG8gcHJlc2VydmUKKyAqIHRoZSByZWdpc3RlciBjb250ZW50cyAoQ1BVIHN0YXRlIGRhdGEpIGZvciB0aGUgYWN0aXZlIENQVXMgZHVyaW5nIGEgZmlybXdhcmUKKyAqIGFzc2lzdGVkIGR1bXAuIFRoZSBkdW1wIGZvcm1hdCBjb250YWlucyByZWdpc3RlciBzYXZlIGFyZWEgaGVhZGVyIGZvbGxvd2VkCisgKiBieSByZWdpc3RlciBlbnRyaWVzLiBFYWNoIGxpc3Qgb2YgcmVnaXN0ZXJzIGZvciBhIENQVSBzdGFydHMgd2l0aCAiQ1BVU1RSVCIKKyAqIGFuZCBlbmRzIHdpdGggIkNQVUVORCIuCisgKi8KKworLyogUmVnaXN0ZXIgc2F2ZSBhcmVhIGhlYWRlci4gKi8KK3N0cnVjdCBydGFzX2ZhZHVtcF9yZWdfc2F2ZV9hcmVhX2hlYWRlciB7CisJX19iZTY0CQltYWdpY19udW1iZXI7CisJX19iZTMyCQl2ZXJzaW9uOworCV9fYmUzMgkJbnVtX2NwdV9vZmZzZXQ7Cit9OworCisvKiBSZWdpc3RlciBlbnRyeS4gKi8KK3N0cnVjdCBydGFzX2ZhZHVtcF9yZWdfZW50cnkgeworCV9fYmU2NAkJcmVnX2lkOworCV9fYmU2NAkJcmVnX3ZhbHVlOworfTsKKworLyogVXRpbGl0eSBtYWNyb3MgKi8KKyNkZWZpbmUgUlRBU19GQURVTVBfU0tJUF9UT19ORVhUX0NQVShyZWdfZW50cnkpCQkJCVwKKyh7CQkJCQkJCQkJXAorCXdoaWxlIChiZTY0X3RvX2NwdShyZWdfZW50cnktPnJlZ19pZCkgIT0JCQlcCisJICAgICAgIGZhZHVtcF9zdHJfdG9fdTY0KCJDUFVFTkQiKSkJCQkJXAorCQlyZWdfZW50cnkrKzsJCQkJCQlcCisJcmVnX2VudHJ5Kys7CQkJCQkJCVwKK30pCisKKyNkZWZpbmUgUlRBU19GQURVTVBfQ1BVX0lEX01BU0sJCQkoKDFVTCA8PCAzMikgLSAxKQorCisjZW5kaWYgLyogX1BTRVJJRVNfUlRBU19GQURVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuYwppbmRleCBmNTk0MGNjLi4wYTQwMjAxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuYwpAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgPGFzbS9zZWN1cml0eV9mZWF0dXJlcy5oPgogI2luY2x1ZGUgPGFzbS9hc20tY29uc3QuaD4KICNpbmNsdWRlIDxhc20vc3dpb3RsYi5oPgorI2luY2x1ZGUgPGFzbS9zdm0uaD4KIAogI2luY2x1ZGUgInBzZXJpZXMuaCIKICNpbmNsdWRlICIuLi8uLi8uLi8uLi9kcml2ZXJzL3BjaS9wY2kuaCIKQEAgLTE0MSwxNyArMTQyLDE5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBmd25taV9pbml0KHZvaWQpCiAJfQogCiAjaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjQKLQkvKiBBbGxvY2F0ZSBwZXIgY3B1IHNsYiBhcmVhIHRvIHNhdmUgb2xkIHNsYiBjb250ZW50cyBkdXJpbmcgTUNFICovCi0Jc2l6ZSA9IHNpemVvZihzdHJ1Y3Qgc2xiX2VudHJ5KSAqIG1tdV9zbGJfc2l6ZSAqIG5yX2NwdXM7Ci0Jc2xiX3B0ciA9IG1lbWJsb2NrX2FsbG9jX3RyeV9uaWRfcmF3KHNpemUsIHNpemVvZihzdHJ1Y3Qgc2xiX2VudHJ5KSwKLQkJCQkJTUVNQkxPQ0tfTE9XX0xJTUlULCBwcGM2NF9ybWFfc2l6ZSwKLQkJCQkJTlVNQV9OT19OT0RFKTsKLQlpZiAoIXNsYl9wdHIpCi0JCXBhbmljKCJGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzIGJlbG93ICVwYSBmb3Igc2xiIGFyZWFcbiIsCi0JCSAgICAgIHNpemUsICZwcGM2NF9ybWFfc2l6ZSk7CisJaWYgKCFyYWRpeF9lbmFibGVkKCkpIHsKKwkJLyogQWxsb2NhdGUgcGVyIGNwdSBhcmVhIHRvIHNhdmUgb2xkIHNsYiBjb250ZW50cyBkdXJpbmcgTUNFICovCisJCXNpemUgPSBzaXplb2Yoc3RydWN0IHNsYl9lbnRyeSkgKiBtbXVfc2xiX3NpemUgKiBucl9jcHVzOworCQlzbGJfcHRyID0gbWVtYmxvY2tfYWxsb2NfdHJ5X25pZF9yYXcoc2l6ZSwKKwkJCQlzaXplb2Yoc3RydWN0IHNsYl9lbnRyeSksIE1FTUJMT0NLX0xPV19MSU1JVCwKKwkJCQlwcGM2NF9ybWFfc2l6ZSwgTlVNQV9OT19OT0RFKTsKKwkJaWYgKCFzbGJfcHRyKQorCQkJcGFuaWMoIkZhaWxlZCB0byBhbGxvY2F0ZSAlenUgYnl0ZXMgYmVsb3cgJXBhIGZvciBzbGIgYXJlYVxuIiwKKwkJCSAgICAgIHNpemUsICZwcGM2NF9ybWFfc2l6ZSk7CiAKLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkKLQkJcGFjYV9wdHJzW2ldLT5tY2VfZmF1bHR5X3NsYnMgPSBzbGJfcHRyICsgKG1tdV9zbGJfc2l6ZSAqIGkpOworCQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkKKwkJCXBhY2FfcHRyc1tpXS0+bWNlX2ZhdWx0eV9zbGJzID0gc2xiX3B0ciArIChtbXVfc2xiX3NpemUgKiBpKTsKKwl9CiAjZW5kaWYKIH0KIApAQCAtMjk3LDggKzMwMCwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBhbGxvY19kaXNwYXRjaF9sb2dzKHZvaWQpCiAKIHN0YXRpYyBpbnQgYWxsb2NfZGlzcGF0Y2hfbG9nX2ttZW1fY2FjaGUodm9pZCkKIHsKKwl2b2lkICgqY3Rvcikodm9pZCAqKSA9IGdldF9kdGxfY2FjaGVfY3RvcigpOworCiAJZHRsX2NhY2hlID0ga21lbV9jYWNoZV9jcmVhdGUoImR0bCIsIERJU1BBVENIX0xPR19CWVRFUywKLQkJCQkJCURJU1BBVENIX0xPR19CWVRFUywgMCwgTlVMTCk7CisJCQkJCQlESVNQQVRDSF9MT0dfQllURVMsIDAsIGN0b3IpOwogCWlmICghZHRsX2NhY2hlKSB7CiAJCXByX3dhcm4oIkZhaWxlZCB0byBjcmVhdGUgZGlzcGF0Y2ggdHJhY2UgbG9nIGJ1ZmZlciBjYWNoZVxuIik7CiAJCXByX3dhcm4oIlN0b2xlbiB0aW1lIHN0YXRpc3RpY3Mgd2lsbCBiZSB1bnJlbGlhYmxlXG4iKTsKQEAgLTMxNiw2ICszMjEsOSBAQCBzdGF0aWMgdm9pZCBwc2VyaWVzX2xwYXJfaWRsZSh2b2lkKQogCSAqIGxvdyBwb3dlciBtb2RlIGJ5IGNlZGluZyBwcm9jZXNzb3IgdG8gaHlwZXJ2aXNvcgogCSAqLwogCisJaWYgKCFwcmVwX2lycV9mb3JfaWRsZSgpKQorCQlyZXR1cm47CisKIAkvKiBJbmRpY2F0ZSB0byBoeXBlcnZpc29yIHRoYXQgd2UgYXJlIGlkbGUuICovCiAJZ2V0X2xwcGFjYSgpLT5pZGxlID0gMTsKIApAQCAtNzM2LDYgKzc0NCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwU2VyaWVzX3NldHVwX2FyY2godm9pZCkKIAogCXBzZXJpZXNfc2V0dXBfcmZpX2ZsdXNoKCk7CiAJc2V0dXBfc3RmX2JhcnJpZXIoKTsKKwlwc2VyaWVzX2xwYXJfcmVhZF9oYmxrcm1fY2hhcmFjdGVyaXN0aWNzKCk7CiAKIAkvKiBCeSBkZWZhdWx0LCBvbmx5IHByb2JlIFBDSSAoY2FuIGJlIG92ZXJyaWRkZW4gYnkgcnRhc19wY2kpICovCiAJcGNpX2FkZF9mbGFncyhQQ0lfUFJPQkVfT05MWSk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc21wLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc21wLmMKaW5kZXggNGIzZWY4ZC4uYWQ2MWU5MCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NtcC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zbXAuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPGFzbS9kYmVsbC5oPgogI2luY2x1ZGUgPGFzbS9wbHBhcl93cmFwcGVycy5oPgogI2luY2x1ZGUgPGFzbS9jb2RlLXBhdGNoaW5nLmg+CisjaW5jbHVkZSA8YXNtL3N2bS5oPgogCiAjaW5jbHVkZSAicHNlcmllcy5oIgogI2luY2x1ZGUgIm9mZmxpbmVfc3RhdGVzLmgiCkBAIC0yMjEsNyArMjIyLDcgQEAgc3RhdGljIF9faW5pdCB2b2lkIHBTZXJpZXNfc21wX3Byb2JlX3hpY3Modm9pZCkKIHsKIAl4aWNzX3NtcF9wcm9iZSgpOwogCi0JaWYgKGNwdV9oYXNfZmVhdHVyZShDUFVfRlRSX0RCRUxMKSkKKwlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfREJFTEwpICYmICFpc19zZWN1cmVfZ3Vlc3QoKSkKIAkJc21wX29wcy0+Y2F1c2VfaXBpID0gc21wX3BzZXJpZXNfY2F1c2VfaXBpOwogCWVsc2UKIAkJc21wX29wcy0+Y2F1c2VfaXBpID0gaWNwX29wcy0+Y2F1c2VfaXBpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3N2bS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3N2bS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwYzA2MzcKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc3ZtLmMKQEAgLTAsMCArMSw4NSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisvKgorICogU2VjdXJlIFZNIHBsYXRmb3JtCisgKgorICogQ29weXJpZ2h0IDIwMTggSUJNIENvcnBvcmF0aW9uCisgKiBBdXRob3I6IEFuc2h1bWFuIEtoYW5kdWFsIDxraGFuZHVhbEBsaW51eC52bmV0LmlibS5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8YXNtL21hY2hkZXAuaD4KKyNpbmNsdWRlIDxhc20vc3ZtLmg+CisjaW5jbHVkZSA8YXNtL3N3aW90bGIuaD4KKyNpbmNsdWRlIDxhc20vdWx0cmF2aXNvci5oPgorCitzdGF0aWMgaW50IF9faW5pdCBpbml0X3N2bSh2b2lkKQoreworCWlmICghaXNfc2VjdXJlX2d1ZXN0KCkpCisJCXJldHVybiAwOworCisJLyogRG9uJ3QgcmVsZWFzZSB0aGUgU1dJT1RMQiBidWZmZXIuICovCisJcHBjX3N3aW90bGJfZW5hYmxlID0gMTsKKworCS8qCisJICogU2luY2UgdGhlIGd1ZXN0IG1lbW9yeSBpcyBpbmFjY2Vzc2libGUgdG8gdGhlIGhvc3QsIGRldmljZXMgYWx3YXlzCisJICogbmVlZCB0byB1c2UgdGhlIFNXSU9UTEIgYnVmZmVyIGZvciBETUEgZXZlbiBpZiBkbWFfY2FwYWJsZSgpIHNheXMKKwkgKiBvdGhlcndpc2UuCisJICovCisJc3dpb3RsYl9mb3JjZSA9IFNXSU9UTEJfRk9SQ0U7CisKKwkvKiBTaGFyZSB0aGUgU1dJT1RMQiBidWZmZXIgd2l0aCB0aGUgaG9zdC4gKi8KKwlzd2lvdGxiX3VwZGF0ZV9tZW1fYXR0cmlidXRlcygpOworCisJcmV0dXJuIDA7Cit9CittYWNoaW5lX2Vhcmx5X2luaXRjYWxsKHBzZXJpZXMsIGluaXRfc3ZtKTsKKworaW50IHNldF9tZW1vcnlfZW5jcnlwdGVkKHVuc2lnbmVkIGxvbmcgYWRkciwgaW50IG51bXBhZ2VzKQoreworCWlmICghUEFHRV9BTElHTkVEKGFkZHIpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXV2X3Vuc2hhcmVfcGFnZShQSFlTX1BGTihfX3BhKGFkZHIpKSwgbnVtcGFnZXMpOworCisJcmV0dXJuIDA7Cit9CisKK2ludCBzZXRfbWVtb3J5X2RlY3J5cHRlZCh1bnNpZ25lZCBsb25nIGFkZHIsIGludCBudW1wYWdlcykKK3sKKwlpZiAoIVBBR0VfQUxJR05FRChhZGRyKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl1dl9zaGFyZV9wYWdlKFBIWVNfUEZOKF9fcGEoYWRkcikpLCBudW1wYWdlcyk7CisKKwlyZXR1cm4gMDsKK30KKworLyogVGhlcmUncyBvbmUgZGlzcGF0Y2ggbG9nIHBlciBDUFUuICovCisjZGVmaW5lIE5SX0RUTF9QQUdFIChESVNQQVRDSF9MT0dfQllURVMgKiBDT05GSUdfTlJfQ1BVUyAvIFBBR0VfU0laRSkKKworc3RhdGljIHN0cnVjdCBwYWdlICpkdGxfcGFnZV9zdG9yZVtOUl9EVExfUEFHRV07CitzdGF0aWMgbG9uZyBkdGxfbnJfcGFnZXM7CisKK3N0YXRpYyBib29sIGlzX2R0bF9wYWdlX3NoYXJlZChzdHJ1Y3QgcGFnZSAqcGFnZSkKK3sKKwlsb25nIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZHRsX25yX3BhZ2VzOyBpKyspCisJCWlmIChkdGxfcGFnZV9zdG9yZVtpXSA9PSBwYWdlKQorCQkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgZHRsX2NhY2hlX2N0b3Iodm9pZCAqYWRkcikKK3sKKwl1bnNpZ25lZCBsb25nIHBmbiA9IFBIWVNfUEZOKF9fcGEoYWRkcikpOworCXN0cnVjdCBwYWdlICpwYWdlID0gcGZuX3RvX3BhZ2UocGZuKTsKKworCWlmICghaXNfZHRsX3BhZ2Vfc2hhcmVkKHBhZ2UpKSB7CisJCWR0bF9wYWdlX3N0b3JlW2R0bF9ucl9wYWdlc10gPSBwYWdlOworCQlkdGxfbnJfcGFnZXMrKzsKKwkJV0FSTl9PTihkdGxfbnJfcGFnZXMgPj0gTlJfRFRMX1BBR0UpOworCQl1dl9zaGFyZV9wYWdlKHBmbiwgMSk7CisJfQorfQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3Zpby5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3Zpby5jCmluZGV4IDY2MDFiOWQuLjc5ZTIyODcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy92aW8uYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvdmlvLmMKQEAgLTYwNSw2ICs2MDUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIHZpb19kbWFfbWFwcGluZ19vcHMgPSB7CiAJLnVubWFwX3BhZ2UgICAgICAgID0gdmlvX2RtYV9pb21tdV91bm1hcF9wYWdlLAogCS5kbWFfc3VwcG9ydGVkICAgICA9IGRtYV9pb21tdV9kbWFfc3VwcG9ydGVkLAogCS5nZXRfcmVxdWlyZWRfbWFzayA9IGRtYV9pb21tdV9nZXRfcmVxdWlyZWRfbWFzaywKKwkubW1hcAkJICAgPSBkbWFfY29tbW9uX21tYXAsCisJLmdldF9zZ3RhYmxlCSAgID0gZG1hX2NvbW1vbl9nZXRfc2d0YWJsZSwKIH07CiAKIC8qKgpAQCAtMTE5MSw3ICsxMTkzLDcgQEAgc3RhdGljIHN0cnVjdCBpb21tdV90YWJsZSAqdmlvX2J1aWxkX2lvbW11X3RhYmxlKHN0cnVjdCB2aW9fZGV2ICpkZXYpCiAJZWxzZQogCQl0YmwtPml0X29wcyA9ICZpb21tdV90YWJsZV9wc2VyaWVzX29wczsKIAotCXJldHVybiBpb21tdV9pbml0X3RhYmxlKHRibCwgLTEpOworCXJldHVybiBpb21tdV9pbml0X3RhYmxlKHRibCwgLTEsIDAsIDApOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvS2NvbmZpZyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYvS2NvbmZpZwppbmRleCBkMjMyODhjLi45ZWJjYzEzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L0tjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9LY29uZmlnCkBAIC0yOCwxMyArMjgsNiBAQAogc291cmNlICJhcmNoL3Bvd2VycGMvc3lzZGV2L3hpY3MvS2NvbmZpZyIKIHNvdXJjZSAiYXJjaC9wb3dlcnBjL3N5c2Rldi94aXZlL0tjb25maWciCiAKLWNvbmZpZyBQUENfU0NPTQotCWJvb2wKLQotY29uZmlnIFNDT01fREVCVUdGUwotCWJvb2wgIkV4cG9zZSBTQ09NIGNvbnRyb2xsZXJzIHZpYSBkZWJ1Z2ZzIgotCWRlcGVuZHMgb24gUFBDX1NDT00gJiYgREVCVUdfRlMKLQogY29uZmlnIEdFX0ZQR0EKIAlib29sCiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvTWFrZWZpbGUgYi9hcmNoL3Bvd2VycGMvc3lzZGV2L01ha2VmaWxlCmluZGV4IDlkNzNkZmQuLjYwM2IzYzYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9NYWtlZmlsZQpAQCAtNDksOCArNDksNiBAQAogb2JqLSQoQ09ORklHX1BQQ19CT09LM1NfMzIpCSs9IDZ4eC1zdXNwZW5kLm8KIGVuZGlmCiAKLW9iai0kKENPTkZJR19QUENfU0NPTSkJCSs9IHNjb20ubwotCiBvYmotJChDT05GSUdfUFBDX0VBUkxZX0RFQlVHX01FTUNPTlMpCSs9IHVkYmdfbWVtY29ucy5vCiAKIG9iai0kKENPTkZJR19QUENfWElDUykJCSs9IHhpY3MvCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvc3lzZGV2L2RhcnRfaW9tbXUuYyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYvZGFydF9pb21tdS5jCmluZGV4IDIxYTFmYWUuLjZiNGEzNGIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvZGFydF9pb21tdS5jCisrKyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYvZGFydF9pb21tdS5jCkBAIC0zNDQsNyArMzQ0LDcgQEAgc3RhdGljIHZvaWQgaW9tbXVfdGFibGVfZGFydF9zZXR1cCh2b2lkKQogCWlvbW11X3RhYmxlX2RhcnQuaXRfaW5kZXggPSAwOwogCWlvbW11X3RhYmxlX2RhcnQuaXRfYmxvY2tzaXplID0gMTsKIAlpb21tdV90YWJsZV9kYXJ0Lml0X29wcyA9ICZpb21tdV9kYXJ0X29wczsKLQlpb21tdV9pbml0X3RhYmxlKCZpb21tdV90YWJsZV9kYXJ0LCAtMSk7CisJaW9tbXVfaW5pdF90YWJsZSgmaW9tbXVfdGFibGVfZGFydCwgLTEsIDAsIDApOwogCiAJLyogUmVzZXJ2ZSB0aGUgbGFzdCBwYWdlIG9mIHRoZSBEQVJUIHRvIGF2b2lkIHBvc3NpYmxlIHByZWZldGNoCiAJICogcGFzdCB0aGUgREFSVCBtYXBwZWQgYXJlYQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9zY29tLmMgYi9hcmNoL3Bvd2VycGMvc3lzZGV2L3Njb20uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRlODg1Yi4uMDAwMDAwMAotLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L3Njb20uYworKysgL2Rldi9udWxsCkBAIC0xLDIyMyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgotLyoKLSAqIENvcHlyaWdodCAyMDEwIEJlbmphbWluIEhlcnJlbnNjaG1pZHQsIElCTSBDb3JwCi0gKiAgICAgICAgICAgICAgICA8YmVuaEBrZXJuZWwuY3Jhc2hpbmcub3JnPgotICogICAgIGFuZCAgICAgICAgRGF2aWQgR2lic29uLCBJQk0gQ29ycG9yYXRpb24uCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KLSNpbmNsdWRlIDxhc20vZGVidWdmcy5oPgotI2luY2x1ZGUgPGFzbS9wcm9tLmg+Ci0jaW5jbHVkZSA8YXNtL3Njb20uaD4KLSNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+Ci0KLWNvbnN0IHN0cnVjdCBzY29tX2NvbnRyb2xsZXIgKnNjb21fY29udHJvbGxlcjsKLUVYUE9SVF9TWU1CT0xfR1BMKHNjb21fY29udHJvbGxlcik7Ci0KLXN0cnVjdCBkZXZpY2Vfbm9kZSAqc2NvbV9maW5kX3BhcmVudChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCi17Ci0Jc3RydWN0IGRldmljZV9ub2RlICpwYXIsICp0bXA7Ci0JY29uc3QgdTMyICpwOwotCi0JZm9yIChwYXIgPSBvZl9ub2RlX2dldChub2RlKTsgcGFyOykgewotCQlpZiAob2ZfZ2V0X3Byb3BlcnR5KHBhciwgInNjb20tY29udHJvbGxlciIsIE5VTEwpKQotCQkJYnJlYWs7Ci0JCXAgPSBvZl9nZXRfcHJvcGVydHkocGFyLCAic2NvbS1wYXJlbnQiLCBOVUxMKTsKLQkJdG1wID0gcGFyOwotCQlpZiAocCA9PSBOVUxMKQotCQkJcGFyID0gb2ZfZ2V0X3BhcmVudChwYXIpOwotCQllbHNlCi0JCQlwYXIgPSBvZl9maW5kX25vZGVfYnlfcGhhbmRsZSgqcCk7Ci0JCW9mX25vZGVfcHV0KHRtcCk7Ci0JfQotCXJldHVybiBwYXI7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChzY29tX2ZpbmRfcGFyZW50KTsKLQotc2NvbV9tYXBfdCBzY29tX21hcF9kZXZpY2Uoc3RydWN0IGRldmljZV9ub2RlICpkZXYsIGludCBpbmRleCkKLXsKLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhcmVudDsKLQl1bnNpZ25lZCBpbnQgY2VsbHMsIHNpemU7Ci0JY29uc3QgX19iZTMyICpwcm9wLCAqc3Byb3A7Ci0JdTY0IHJlZywgY250OwotCXNjb21fbWFwX3QgcmV0OwotCi0JcGFyZW50ID0gc2NvbV9maW5kX3BhcmVudChkZXYpOwotCi0JaWYgKHBhcmVudCA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKLQotCS8qCi0JICogV2Ugc3VwcG9ydCAic2NvbS1yZWciIHByb3BlcnRpZXMgZm9yIGFkZGluZyBzY29tIHJlZ2lzdGVycwotCSAqIHRvIGEgcmFuZG9tIGRldmljZS10cmVlIG5vZGUgd2l0aCBhbiBleHBsaWNpdCBzY29tLXBhcmVudAotCSAqCi0JICogV2UgYWxzbyBzdXBwb3J0IHRoZSBzaW1wbGUgInJlZyIgcHJvcGVydHkgaWYgdGhlIGRldmljZSBpcwotCSAqIGEgZGlyZWN0IGNoaWxkIG9mIGEgc2NvbSBjb250cm9sbGVyLgotCSAqCi0JICogSW4gY2FzZSBib3RoIGV4aXN0LCAic2NvbS1yZWciIHRha2VzIHByZWNlZGVuY2UuCi0JICovCi0JcHJvcCA9IG9mX2dldF9wcm9wZXJ0eShkZXYsICJzY29tLXJlZyIsICZzaXplKTsKLQlzcHJvcCA9IG9mX2dldF9wcm9wZXJ0eShwYXJlbnQsICIjc2NvbS1jZWxscyIsIE5VTEwpOwotCWlmICghcHJvcCAmJiBwYXJlbnQgPT0gZGV2LT5wYXJlbnQpIHsKLQkJcHJvcCA9IG9mX2dldF9wcm9wZXJ0eShkZXYsICJyZWciLCAmc2l6ZSk7Ci0JCXNwcm9wID0gb2ZfZ2V0X3Byb3BlcnR5KHBhcmVudCwgIiNhZGRyZXNzLWNlbGxzIiwgTlVMTCk7Ci0JfQotCWlmICghcHJvcCkKLQkJcmV0dXJuIE5VTEw7Ci0JY2VsbHMgPSBzcHJvcCA/IGJlMzJfdG9fY3B1cChzcHJvcCkgOiAxOwotCXNpemUgPj49IDI7Ci0KLQlpZiAoaW5kZXggPj0gKHNpemUgLyAoMipjZWxscykpKQotCQlyZXR1cm4gTlVMTDsKLQotCXJlZyA9IG9mX3JlYWRfbnVtYmVyKCZwcm9wW2luZGV4ICogY2VsbHMgKiAyXSwgY2VsbHMpOwotCWNudCA9IG9mX3JlYWRfbnVtYmVyKCZwcm9wW2luZGV4ICogY2VsbHMgKiAyICsgY2VsbHNdLCBjZWxscyk7Ci0KLQlyZXQgPSBzY29tX21hcChwYXJlbnQsIHJlZywgY250KTsKLQlvZl9ub2RlX3B1dChwYXJlbnQpOwotCi0JcmV0dXJuIHJldDsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKHNjb21fbWFwX2RldmljZSk7Ci0KLSNpZmRlZiBDT05GSUdfU0NPTV9ERUJVR0ZTCi1zdHJ1Y3Qgc2NvbV9kZWJ1Z19lbnRyeSB7Ci0Jc3RydWN0IGRldmljZV9ub2RlICpkbjsKLQlzdHJ1Y3QgZGVidWdmc19ibG9iX3dyYXBwZXIgcGF0aDsKLQljaGFyIG5hbWVbMTZdOwotfTsKLQotc3RhdGljIHNzaXplX3Qgc2NvbV9kZWJ1Z19yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKLQkJCSAgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKLXsKLQlzdHJ1Y3Qgc2NvbV9kZWJ1Z19lbnRyeSAqZW50ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotCXU2NCBfX3VzZXIgKnVidWY2NCA9ICh1NjQgX191c2VyICopdWJ1ZjsKLQlsb2ZmX3Qgb2ZmID0gKnBwb3M7Ci0Jc3NpemVfdCBkb25lID0gMDsgCi0JdTY0IHJlZywgcmVnX2NudCwgdmFsOwotCXNjb21fbWFwX3QgbWFwOwotCWludCByYzsKLQotCWlmIChvZmYgPCAwIHx8IChvZmYgJiA3KSB8fCAoY291bnQgJiA3KSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JcmVnID0gb2ZmID4+IDM7Ci0JcmVnX2NudCA9IGNvdW50ID4+IDM7Ci0KLQltYXAgPSBzY29tX21hcChlbnQtPmRuLCByZWcsIHJlZ19jbnQpOwotCWlmICghc2NvbV9tYXBfb2sobWFwKSkKLQkJcmV0dXJuIC1FTlhJTzsKLQotCWZvciAocmVnID0gMDsgcmVnIDwgcmVnX2NudDsgcmVnKyspIHsKLQkJcmMgPSBzY29tX3JlYWQobWFwLCByZWcsICZ2YWwpOwotCQlpZiAoIXJjKQotCQkJcmMgPSBwdXRfdXNlcih2YWwsIHVidWY2NCk7Ci0JCWlmIChyYykgewotCQkJaWYgKCFkb25lKQotCQkJCWRvbmUgPSByYzsKLQkJCWJyZWFrOwotCQl9Ci0JCXVidWY2NCsrOwotCQkqcHBvcyArPSA4OwotCQlkb25lICs9IDg7Ci0JfQotCXNjb21fdW5tYXAobWFwKTsKLQlyZXR1cm4gZG9uZTsKLX0KLQotc3RhdGljIHNzaXplX3Qgc2NvbV9kZWJ1Z193cml0ZShzdHJ1Y3QgZmlsZSogZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCi0JCQkJc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCi17Ci0Jc3RydWN0IHNjb21fZGVidWdfZW50cnkgKmVudCA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQl1NjQgX191c2VyICp1YnVmNjQgPSAodTY0IF9fdXNlciAqKXVidWY7Ci0JbG9mZl90IG9mZiA9ICpwcG9zOwotCXNzaXplX3QgZG9uZSA9IDA7IAotCXU2NCByZWcsIHJlZ19jbnQsIHZhbDsKLQlzY29tX21hcF90IG1hcDsKLQlpbnQgcmM7Ci0KLQlpZiAob2ZmIDwgMCB8fCAob2ZmICYgNykgfHwgKGNvdW50ICYgNykpCi0JCXJldHVybiAtRUlOVkFMOwotCXJlZyA9IG9mZiA+PiAzOwotCXJlZ19jbnQgPSBjb3VudCA+PiAzOwotCi0JbWFwID0gc2NvbV9tYXAoZW50LT5kbiwgcmVnLCByZWdfY250KTsKLQlpZiAoIXNjb21fbWFwX29rKG1hcCkpCi0JCXJldHVybiAtRU5YSU87Ci0KLQlmb3IgKHJlZyA9IDA7IHJlZyA8IHJlZ19jbnQ7IHJlZysrKSB7Ci0JCXJjID0gZ2V0X3VzZXIodmFsLCB1YnVmNjQpOwotCQlpZiAoIXJjKQotCQkJcmMgPSBzY29tX3dyaXRlKG1hcCwgcmVnLCAgdmFsKTsKLQkJaWYgKHJjKSB7Ci0JCQlpZiAoIWRvbmUpCi0JCQkJZG9uZSA9IHJjOwotCQkJYnJlYWs7Ci0JCX0KLQkJdWJ1ZjY0Kys7Ci0JCWRvbmUgKz0gODsKLQl9Ci0Jc2NvbV91bm1hcChtYXApOwotCXJldHVybiBkb25lOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBzY29tX2RlYnVnX2ZvcHMgPSB7Ci0JLnJlYWQgPQkJc2NvbV9kZWJ1Z19yZWFkLAotCS53cml0ZSA9CXNjb21fZGVidWdfd3JpdGUsCi0JLm9wZW4gPQkJc2ltcGxlX29wZW4sCi0JLmxsc2VlayA9CWRlZmF1bHRfbGxzZWVrLAotfTsKLQotc3RhdGljIGludCBzY29tX2RlYnVnX2luaXRfb25lKHN0cnVjdCBkZW50cnkgKnJvb3QsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4sCi0JCQkgICAgICAgaW50IGkpCi17Ci0Jc3RydWN0IHNjb21fZGVidWdfZW50cnkgKmVudDsKLQlzdHJ1Y3QgZGVudHJ5ICpkaXI7Ci0KLQllbnQgPSBremFsbG9jKHNpemVvZigqZW50KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFlbnQpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZW50LT5kbiA9IG9mX25vZGVfZ2V0KGRuKTsKLQlzbnByaW50ZihlbnQtPm5hbWUsIDE2LCAiJTA4eCIsIGkpOwotCWVudC0+cGF0aC5kYXRhID0gKHZvaWQqKWthc3ByaW50ZihHRlBfS0VSTkVMLCAiJXBPRiIsIGRuKTsKLQllbnQtPnBhdGguc2l6ZSA9IHN0cmxlbigoY2hhciAqKWVudC0+cGF0aC5kYXRhKTsKLQotCWRpciA9IGRlYnVnZnNfY3JlYXRlX2RpcihlbnQtPm5hbWUsIHJvb3QpOwotCWlmICghZGlyKSB7Ci0JCW9mX25vZGVfcHV0KGRuKTsKLQkJa2ZyZWUoZW50LT5wYXRoLmRhdGEpOwotCQlrZnJlZShlbnQpOwotCQlyZXR1cm4gLTE7Ci0JfQotCi0JZGVidWdmc19jcmVhdGVfYmxvYigiZGV2c3BlYyIsIDA0MDAsIGRpciwgJmVudC0+cGF0aCk7Ci0JZGVidWdmc19jcmVhdGVfZmlsZSgiYWNjZXNzIiwgMDYwMCwgZGlyLCBlbnQsICZzY29tX2RlYnVnX2ZvcHMpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc2NvbV9kZWJ1Z19pbml0KHZvaWQpCi17Ci0Jc3RydWN0IGRldmljZV9ub2RlICpkbjsKLQlzdHJ1Y3QgZGVudHJ5ICpyb290OwotCWludCBpLCByYzsKLQotCXJvb3QgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoInNjb20iLCBwb3dlcnBjX2RlYnVnZnNfcm9vdCk7Ci0JaWYgKCFyb290KQotCQlyZXR1cm4gLTE7Ci0KLQlpID0gcmMgPSAwOwotCWZvcl9lYWNoX25vZGVfd2l0aF9wcm9wZXJ0eShkbiwgInNjb20tY29udHJvbGxlciIpIHsKLQkJaW50IGlkID0gb2ZfZ2V0X2libV9jaGlwX2lkKGRuKTsKLQkJaWYgKGlkID09IC0xKQotCQkJaWQgPSBpOwotCQlyYyB8PSBzY29tX2RlYnVnX2luaXRfb25lKHJvb3QsIGRuLCBpZCk7Ci0JCWkrKzsKLQl9Ci0KLQlyZXR1cm4gcmM7Ci19Ci1kZXZpY2VfaW5pdGNhbGwoc2NvbV9kZWJ1Z19pbml0KTsKLSNlbmRpZiAvKiBDT05GSUdfU0NPTV9ERUJVR0ZTICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvc3lzZGV2L3hpY3MvaWNwLW5hdGl2ZS5jIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi94aWNzL2ljcC1uYXRpdmUuYwppbmRleCA0ODU1NjlmLi43ZDEzZDJlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L3hpY3MvaWNwLW5hdGl2ZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYveGljcy9pY3AtbmF0aXZlLmMKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGljcF9uYXRpdmVfZ2V0X2lycSh2b2lkKQogCiBzdGF0aWMgdm9pZCBpY3BfbmF0aXZlX2NhdXNlX2lwaShpbnQgY3B1KQogewotCWt2bXBwY19zZXRfaG9zdF9pcGkoY3B1LCAxKTsKKwlrdm1wcGNfc2V0X2hvc3RfaXBpKGNwdSk7CiAJaWNwX25hdGl2ZV9zZXRfcWlycihjcHUsIElQSV9QUklPUklUWSk7CiB9CiAKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIGljcF9uYXRpdmVfZmx1c2hfaW50ZXJydXB0KHZvaWQpCiAJaWYgKHZlYyA9PSBYSUNTX0lQSSkgewogCQkvKiBDbGVhciBwZW5kaW5nIElQSSAqLwogCQlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCQlrdm1wcGNfc2V0X2hvc3RfaXBpKGNwdSwgMCk7CisJCWt2bXBwY19jbGVhcl9ob3N0X2lwaShjcHUpOwogCQlpY3BfbmF0aXZlX3NldF9xaXJyKGNwdSwgMHhmZik7CiAJfSBlbHNlIHsKIAkJcHJfZXJyKCJYSUNTOiBodyBpbnRlcnJ1cHQgMHgleCB0byBvZmZsaW5lIGNwdSwgZGlzYWJsaW5nXG4iLApAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpY3BfbmF0aXZlX2lwaV9hY3Rpb24oaW50IGlycSwgdm9pZCAqZGV2X2lkKQogewogCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLQlrdm1wcGNfc2V0X2hvc3RfaXBpKGNwdSwgMCk7CisJa3ZtcHBjX2NsZWFyX2hvc3RfaXBpKGNwdSk7CiAJaWNwX25hdGl2ZV9zZXRfcWlycihjcHUsIDB4ZmYpOwogCiAJcmV0dXJuIHNtcF9pcGlfZGVtdXgoKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYveGljcy9pY3Atb3BhbC5jIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi94aWNzL2ljcC1vcGFsLmMKaW5kZXggOGJiOGRkNy4uNjhmZDI1NCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3N5c2Rldi94aWNzL2ljcC1vcGFsLmMKKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi94aWNzL2ljcC1vcGFsLmMKQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMgdm9pZCBpY3Bfb3BhbF9jYXVzZV9pcGkoaW50IGNwdSkKIHsKIAlpbnQgaHdfY3B1ID0gZ2V0X2hhcmRfc21wX3Byb2Nlc3Nvcl9pZChjcHUpOwogCi0Ja3ZtcHBjX3NldF9ob3N0X2lwaShjcHUsIDEpOworCWt2bXBwY19zZXRfaG9zdF9pcGkoY3B1KTsKIAlvcGFsX2ludF9zZXRfbWZycihod19jcHUsIElQSV9QUklPUklUWSk7CiB9CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaWNwX29wYWxfaXBpX2FjdGlvbihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7CiAJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAotCWt2bXBwY19zZXRfaG9zdF9pcGkoY3B1LCAwKTsKKwlrdm1wcGNfY2xlYXJfaG9zdF9pcGkoY3B1KTsKIAlvcGFsX2ludF9zZXRfbWZycihnZXRfaGFyZF9zbXBfcHJvY2Vzc29yX2lkKGNwdSksIDB4ZmYpOwogCiAJcmV0dXJuIHNtcF9pcGlfZGVtdXgoKTsKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIGljcF9vcGFsX2ZsdXNoX2ludGVycnVwdCh2b2lkKQogCQlpZiAodmVjID09IFhJQ1NfSVBJKSB7CiAJCQkvKiBDbGVhciBwZW5kaW5nIElQSSAqLwogCQkJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLQkJCWt2bXBwY19zZXRfaG9zdF9pcGkoY3B1LCAwKTsKKwkJCWt2bXBwY19jbGVhcl9ob3N0X2lwaShjcHUpOwogCQkJb3BhbF9pbnRfc2V0X21mcnIoZ2V0X2hhcmRfc21wX3Byb2Nlc3Nvcl9pZChjcHUpLCAweGZmKTsKIAkJfSBlbHNlIHsKIAkJCXByX2VycigiWElDUzogaHcgaW50ZXJydXB0IDB4JXggdG8gb2ZmbGluZSBjcHUsICIKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYveGl2ZS9jb21tb24uYyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYveGl2ZS9jb21tb24uYwppbmRleCBiZTg2ZmNlLi5kZjgzMmIwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L3hpdmUvY29tbW9uLmMKKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi94aXZlL2NvbW1vbi5jCkBAIC0xOTYsNyArMTk2LDcgQEAgc3RhdGljIHUzMiB4aXZlX3NjYW5faW50ZXJydXB0cyhzdHJ1Y3QgeGl2ZV9jcHUgKnhjLCBib29sIGp1c3RfcGVlaykKIAogLyoKICAqIFRoaXMgaXMgdXNlZCB0byBwZXJmb3JtIHRoZSBtYWdpYyBsb2FkcyBmcm9tIGFuIEVTQgotICogZGVzY3JpYmVkIGluIHhpdmUuaAorICogZGVzY3JpYmVkIGluIHhpdmUtcmVncy5oCiAgKi8KIHN0YXRpYyBub3RyYWNlIHU4IHhpdmVfZXNiX3JlYWQoc3RydWN0IHhpdmVfaXJxX2RhdGEgKnhkLCB1MzIgb2Zmc2V0KQogewpAQCAtMjM3LDI2ICsyMzcsNjEgQEAgc3RhdGljIG5vdHJhY2Ugdm9pZCB4aXZlX2R1bXBfZXEoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHhpdmVfcSAqcSkKIAlpMCA9IGJlMzJfdG9fY3B1cChxLT5xcGFnZSArIGlkeCk7CiAJaWR4ID0gKGlkeCArIDEpICYgcS0+bXNrOwogCWkxID0gYmUzMl90b19jcHVwKHEtPnFwYWdlICsgaWR4KTsKLQl4bW9uX3ByaW50ZigiICAlcyBRIFQ9JWQgJTA4eCAlMDh4IC4uLlxuIiwgbmFtZSwKLQkJICAgIHEtPnRvZ2dsZSwgaTAsIGkxKTsKKwl4bW9uX3ByaW50ZigiJXMgaWR4PSVkIFQ9JWQgJTA4eCAlMDh4IC4uLiIsIG5hbWUsCisJCSAgICAgcS0+aWR4LCBxLT50b2dnbGUsIGkwLCBpMSk7CiB9CiAKIG5vdHJhY2Ugdm9pZCB4bW9uX3hpdmVfZG9fZHVtcChpbnQgY3B1KQogewogCXN0cnVjdCB4aXZlX2NwdSAqeGMgPSBwZXJfY3B1KHhpdmVfY3B1LCBjcHUpOwogCi0JeG1vbl9wcmludGYoIlhJVkUgc3RhdGUgZm9yIENQVSAlZDpcbiIsIGNwdSk7Ci0JeG1vbl9wcmludGYoIiAgcHA9JTAyeCBjcHByPSUwMnhcbiIsIHhjLT5wZW5kaW5nX3ByaW8sIHhjLT5jcHByKTsKLQl4aXZlX2R1bXBfZXEoIklSUSIsICZ4Yy0+cXVldWVbeGl2ZV9pcnFfcHJpb3JpdHldKTsKKwl4bW9uX3ByaW50ZigiQ1BVICVkOiIsIGNwdSk7CisJaWYgKHhjKSB7CisJCXhtb25fcHJpbnRmKCJwcD0lMDJ4IENQUFI9JTAyeCAiLCB4Yy0+cGVuZGluZ19wcmlvLCB4Yy0+Y3Bwcik7CisKICNpZmRlZiBDT05GSUdfU01QCi0JewotCQl1NjQgdmFsID0geGl2ZV9lc2JfcmVhZCgmeGMtPmlwaV9kYXRhLCBYSVZFX0VTQl9HRVQpOwotCQl4bW9uX3ByaW50ZigiICBJUEkgc3RhdGU6ICV4OiVjJWNcbiIsIHhjLT5od19pcGksCi0JCQl2YWwgJiBYSVZFX0VTQl9WQUxfUCA/ICdQJyA6ICdwJywKLQkJCXZhbCAmIFhJVkVfRVNCX1ZBTF9RID8gJ1EnIDogJ3EnKTsKLQl9CisJCXsKKwkJCXU2NCB2YWwgPSB4aXZlX2VzYl9yZWFkKCZ4Yy0+aXBpX2RhdGEsIFhJVkVfRVNCX0dFVCk7CisKKwkJCXhtb25fcHJpbnRmKCJJUEk9MHglMDh4IFBRPSVjJWMgIiwgeGMtPmh3X2lwaSwKKwkJCQkgICAgdmFsICYgWElWRV9FU0JfVkFMX1AgPyAnUCcgOiAnLScsCisJCQkJICAgIHZhbCAmIFhJVkVfRVNCX1ZBTF9RID8gJ1EnIDogJy0nKTsKKwkJfQogI2VuZGlmCisJCXhpdmVfZHVtcF9lcSgiRVEiLCAmeGMtPnF1ZXVlW3hpdmVfaXJxX3ByaW9yaXR5XSk7CisJfQorCXhtb25fcHJpbnRmKCJcbiIpOwogfQorCitpbnQgeG1vbl94aXZlX2dldF9pcnFfY29uZmlnKHUzMiBod19pcnEsIHN0cnVjdCBpcnFfZGF0YSAqZCkKK3sKKwlpbnQgcmM7CisJdTMyIHRhcmdldDsKKwl1OCBwcmlvOworCXUzMiBsaXJxOworCisJcmMgPSB4aXZlX29wcy0+Z2V0X2lycV9jb25maWcoaHdfaXJxLCAmdGFyZ2V0LCAmcHJpbywgJmxpcnEpOworCWlmIChyYykgeworCQl4bW9uX3ByaW50ZigiSVJRIDB4JTA4eCA6IG5vIGNvbmZpZyByYz0lZFxuIiwgaHdfaXJxLCByYyk7CisJCXJldHVybiByYzsKKwl9CisKKwl4bW9uX3ByaW50ZigiSVJRIDB4JTA4eCA6IHRhcmdldD0weCV4IHByaW89JTAyeCBsaXJxPTB4JXggIiwKKwkJICAgIGh3X2lycSwgdGFyZ2V0LCBwcmlvLCBsaXJxKTsKKworCWlmIChkKSB7CisJCXN0cnVjdCB4aXZlX2lycV9kYXRhICp4ZCA9IGlycV9kYXRhX2dldF9pcnFfaGFuZGxlcl9kYXRhKGQpOworCQl1NjQgdmFsID0geGl2ZV9lc2JfcmVhZCh4ZCwgWElWRV9FU0JfR0VUKTsKKworCQl4bW9uX3ByaW50ZigiUFE9JWMlYyIsCisJCQkgICAgdmFsICYgWElWRV9FU0JfVkFMX1AgPyAnUCcgOiAnLScsCisJCQkgICAgdmFsICYgWElWRV9FU0JfVkFMX1EgPyAnUScgOiAnLScpOworCX0KKworCXhtb25fcHJpbnRmKCJcbiIpOworCXJldHVybiAwOworfQorCiAjZW5kaWYgLyogQ09ORklHX1hNT04gKi8KIAogc3RhdGljIHVuc2lnbmVkIGludCB4aXZlX2dldF9pcnEodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYveGl2ZS9uYXRpdmUuYyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYveGl2ZS9uYXRpdmUuYwppbmRleCAzNzk4N2M4Li4wZmY2YjczIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L3hpdmUvbmF0aXZlLmMKKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi94aXZlL25hdGl2ZS5jCkBAIC0xMTEsNiArMTExLDIwIEBAIGludCB4aXZlX25hdGl2ZV9jb25maWd1cmVfaXJxKHUzMiBod19pcnEsIHUzMiB0YXJnZXQsIHU4IHByaW8sIHUzMiBzd19pcnEpCiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh4aXZlX25hdGl2ZV9jb25maWd1cmVfaXJxKTsKIAorc3RhdGljIGludCB4aXZlX25hdGl2ZV9nZXRfaXJxX2NvbmZpZyh1MzIgaHdfaXJxLCB1MzIgKnRhcmdldCwgdTggKnByaW8sCisJCQkJICAgICAgdTMyICpzd19pcnEpCit7CisJczY0IHJjOworCV9fYmU2NCB2cDsKKwlfX2JlMzIgbGlycTsKKworCXJjID0gb3BhbF94aXZlX2dldF9pcnFfY29uZmlnKGh3X2lycSwgJnZwLCBwcmlvLCAmbGlycSk7CisKKwkqdGFyZ2V0ID0gYmU2NF90b19jcHUodnApOworCSpzd19pcnEgPSBiZTMyX3RvX2NwdShsaXJxKTsKKworCXJldHVybiByYyA9PSAwID8gMCA6IC1FTlhJTzsKK30KIAogLyogVGhpcyBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWUgdG8gY2hhbmdlIGEgcXVldWUgY29uZmlndXJhdGlvbiAqLwogaW50IHhpdmVfbmF0aXZlX2NvbmZpZ3VyZV9xdWV1ZSh1MzIgdnBfaWQsIHN0cnVjdCB4aXZlX3EgKnEsIHU4IHByaW8sCkBAIC0yMzEsNiArMjQ1LDE3IEBAIHN0YXRpYyBib29sIHhpdmVfbmF0aXZlX21hdGNoKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSkKIAlyZXR1cm4gb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobm9kZSwgImlibSxvcGFsLXhpdmUtdmMiKTsKIH0KIAorc3RhdGljIHM2NCBvcGFsX3hpdmVfYWxsb2NhdGVfaXJxKHUzMiBjaGlwX2lkKQoreworCXM2NCBpcnEgPSBvcGFsX3hpdmVfYWxsb2NhdGVfaXJxX3JhdyhjaGlwX2lkKTsKKworCS8qCisJICogT2xkIHZlcnNpb25zIG9mIHNraWJvb3QgY2FuIGluY29ycmVjdGx5IHJldHVybiAweGZmZmZmZmZmIHRvCisJICogaW5kaWNhdGUgbm8gc3BhY2UsIGZpeCBpdCB1cCBoZXJlLgorCSAqLworCXJldHVybiBpcnEgPT0gMHhmZmZmZmZmZiA/IE9QQUxfUkVTT1VSQ0UgOiBpcnE7Cit9CisKICNpZmRlZiBDT05GSUdfU01QCiBzdGF0aWMgaW50IHhpdmVfbmF0aXZlX2dldF9pcGkodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IHhpdmVfY3B1ICp4YykKIHsKQEAgLTQ0Miw2ICs0NjcsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTCh4aXZlX25hdGl2ZV9zeW5jX3F1ZXVlKTsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGl2ZV9vcHMgeGl2ZV9uYXRpdmVfb3BzID0gewogCS5wb3B1bGF0ZV9pcnFfZGF0YQk9IHhpdmVfbmF0aXZlX3BvcHVsYXRlX2lycV9kYXRhLAogCS5jb25maWd1cmVfaXJxCQk9IHhpdmVfbmF0aXZlX2NvbmZpZ3VyZV9pcnEsCisJLmdldF9pcnFfY29uZmlnCQk9IHhpdmVfbmF0aXZlX2dldF9pcnFfY29uZmlnLAogCS5zZXR1cF9xdWV1ZQkJPSB4aXZlX25hdGl2ZV9zZXR1cF9xdWV1ZSwKIAkuY2xlYW51cF9xdWV1ZQkJPSB4aXZlX25hdGl2ZV9jbGVhbnVwX3F1ZXVlLAogCS5tYXRjaAkJCT0geGl2ZV9uYXRpdmVfbWF0Y2gsCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvc3lzZGV2L3hpdmUvc3BhcHIuYyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYveGl2ZS9zcGFwci5jCmluZGV4IDhlZjljZjQuLjMzYzEwNzQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9zeXNkZXYveGl2ZS9zcGFwci5jCisrKyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYveGl2ZS9zcGFwci5jCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyBpbnQgeGl2ZV9pcnFfYml0bWFwX2FkZChpbnQgYmFzZSwgaW50IGNvdW50KQogewogCXN0cnVjdCB4aXZlX2lycV9iaXRtYXAgKnhpYm07CiAKLQl4aWJtID0ga3phbGxvYyhzaXplb2YoKnhpYm0pLCBHRlBfQVRPTUlDKTsKKwl4aWJtID0ga3phbGxvYyhzaXplb2YoKnhpYm0pLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXhpYm0pCiAJCXJldHVybiAtRU5PTUVNOwogCkBAIC01Myw2ICs1MywxMCBAQCBzdGF0aWMgaW50IHhpdmVfaXJxX2JpdG1hcF9hZGQoaW50IGJhc2UsIGludCBjb3VudCkKIAl4aWJtLT5iYXNlID0gYmFzZTsKIAl4aWJtLT5jb3VudCA9IGNvdW50OwogCXhpYm0tPmJpdG1hcCA9IGt6YWxsb2MoeGlibS0+Y291bnQsIEdGUF9LRVJORUwpOworCWlmICgheGlibS0+Yml0bWFwKSB7CisJCWtmcmVlKHhpYm0pOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CiAJbGlzdF9hZGQoJnhpYm0tPmxpc3QsICZ4aXZlX2lycV9iaXRtYXBzKTsKIAogCXByX2luZm8oIlVzaW5nIElSUSByYW5nZSBbJXgtJXhdIiwgeGlibS0+YmFzZSwKQEAgLTIxMSw2ICsyMTUsMzggQEAgc3RhdGljIGxvbmcgcGxwYXJfaW50X3NldF9zb3VyY2VfY29uZmlnKHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBsb25nIHBscGFyX2ludF9nZXRfc291cmNlX2NvbmZpZyh1bnNpZ25lZCBsb25nIGZsYWdzLAorCQkJCQl1bnNpZ25lZCBsb25nIGxpc24sCisJCQkJCXVuc2lnbmVkIGxvbmcgKnRhcmdldCwKKwkJCQkJdW5zaWduZWQgbG9uZyAqcHJpbywKKwkJCQkJdW5zaWduZWQgbG9uZyAqc3dfaXJxKQoreworCXVuc2lnbmVkIGxvbmcgcmV0YnVmW1BMUEFSX0hDQUxMX0JVRlNJWkVdOworCWxvbmcgcmM7CisKKwlwcl9kZXZlbCgiSF9JTlRfR0VUX1NPVVJDRV9DT05GSUcgZmxhZ3M9JWx4IGxpc249JWx4XG4iLCBmbGFncywgbGlzbik7CisKKwlkbyB7CisJCXJjID0gcGxwYXJfaGNhbGwoSF9JTlRfR0VUX1NPVVJDRV9DT05GSUcsIHJldGJ1ZiwgZmxhZ3MsIGxpc24sCisJCQkJIHRhcmdldCwgcHJpbywgc3dfaXJxKTsKKwl9IHdoaWxlIChwbHBhcl9idXN5X2RlbGF5KHJjKSk7CisKKwlpZiAocmMpIHsKKwkJcHJfZXJyKCJIX0lOVF9HRVRfU09VUkNFX0NPTkZJRyBsaXNuPSVsZCBmYWlsZWQgJWxkXG4iLAorCQkgICAgICAgbGlzbiwgcmMpOworCQlyZXR1cm4gcmM7CisJfQorCisJKnRhcmdldCA9IHJldGJ1ZlswXTsKKwkqcHJpbyAgID0gcmV0YnVmWzFdOworCSpzd19pcnEgPSByZXRidWZbMl07CisKKwlwcl9kZXZlbCgiSF9JTlRfR0VUX1NPVVJDRV9DT05GSUcgdGFyZ2V0PSVseCBwcmlvPSVseCBzd19pcnE9JWx4XG4iLAorCQlyZXRidWZbMF0sIHJldGJ1ZlsxXSwgcmV0YnVmWzJdKTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgbG9uZyBwbHBhcl9pbnRfZ2V0X3F1ZXVlX2luZm8odW5zaWduZWQgbG9uZyBmbGFncywKIAkJCQkgICAgIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LAogCQkJCSAgICAgdW5zaWduZWQgbG9uZyBwcmlvcml0eSwKQEAgLTM5NCw2ICs0MzAsMjQgQEAgc3RhdGljIGludCB4aXZlX3NwYXByX2NvbmZpZ3VyZV9pcnEodTMyIGh3X2lycSwgdTMyIHRhcmdldCwgdTggcHJpbywgdTMyIHN3X2lycSkKIAlyZXR1cm4gcmMgPT0gMCA/IDAgOiAtRU5YSU87CiB9CiAKK3N0YXRpYyBpbnQgeGl2ZV9zcGFwcl9nZXRfaXJxX2NvbmZpZyh1MzIgaHdfaXJxLCB1MzIgKnRhcmdldCwgdTggKnByaW8sCisJCQkJICAgICB1MzIgKnN3X2lycSkKK3sKKwlsb25nIHJjOworCXVuc2lnbmVkIGxvbmcgaF90YXJnZXQ7CisJdW5zaWduZWQgbG9uZyBoX3ByaW87CisJdW5zaWduZWQgbG9uZyBoX3N3X2lycTsKKworCXJjID0gcGxwYXJfaW50X2dldF9zb3VyY2VfY29uZmlnKDAsIGh3X2lycSwgJmhfdGFyZ2V0LCAmaF9wcmlvLAorCQkJCQkgJmhfc3dfaXJxKTsKKworCSp0YXJnZXQgPSBoX3RhcmdldDsKKwkqcHJpbyA9IGhfcHJpbzsKKwkqc3dfaXJxID0gaF9zd19pcnE7CisKKwlyZXR1cm4gcmMgPT0gMCA/IDAgOiAtRU5YSU87Cit9CisKIC8qIFRoaXMgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lIHRvIGNoYW5nZSBhIHF1ZXVlIGNvbmZpZ3VyYXRpb24gKi8KIHN0YXRpYyBpbnQgeGl2ZV9zcGFwcl9jb25maWd1cmVfcXVldWUodTMyIHRhcmdldCwgc3RydWN0IHhpdmVfcSAqcSwgdTggcHJpbywKIAkJCQkgICBfX2JlMzIgKnFwYWdlLCB1MzIgb3JkZXIpCkBAIC01ODYsNiArNjQwLDcgQEAgc3RhdGljIHZvaWQgeGl2ZV9zcGFwcl9zeW5jX3NvdXJjZSh1MzIgaHdfaXJxKQogc3RhdGljIGNvbnN0IHN0cnVjdCB4aXZlX29wcyB4aXZlX3NwYXByX29wcyA9IHsKIAkucG9wdWxhdGVfaXJxX2RhdGEJPSB4aXZlX3NwYXByX3BvcHVsYXRlX2lycV9kYXRhLAogCS5jb25maWd1cmVfaXJxCQk9IHhpdmVfc3BhcHJfY29uZmlndXJlX2lycSwKKwkuZ2V0X2lycV9jb25maWcJCT0geGl2ZV9zcGFwcl9nZXRfaXJxX2NvbmZpZywKIAkuc2V0dXBfcXVldWUJCT0geGl2ZV9zcGFwcl9zZXR1cF9xdWV1ZSwKIAkuY2xlYW51cF9xdWV1ZQkJPSB4aXZlX3NwYXByX2NsZWFudXBfcXVldWUsCiAJLm1hdGNoCQkJPSB4aXZlX3NwYXByX21hdGNoLApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3N5c2Rldi94aXZlL3hpdmUtaW50ZXJuYWwuaCBiL2FyY2gvcG93ZXJwYy9zeXNkZXYveGl2ZS94aXZlLWludGVybmFsLmgKaW5kZXggMjExNzI1ZC4uNTljZDM2NiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3N5c2Rldi94aXZlL3hpdmUtaW50ZXJuYWwuaAorKysgYi9hcmNoL3Bvd2VycGMvc3lzZGV2L3hpdmUveGl2ZS1pbnRlcm5hbC5oCkBAIC0zMyw2ICszMyw4IEBAIHN0cnVjdCB4aXZlX2NwdSB7CiBzdHJ1Y3QgeGl2ZV9vcHMgewogCWludAkoKnBvcHVsYXRlX2lycV9kYXRhKSh1MzIgaHdfaXJxLCBzdHJ1Y3QgeGl2ZV9pcnFfZGF0YSAqZGF0YSk7CiAJaW50IAkoKmNvbmZpZ3VyZV9pcnEpKHUzMiBod19pcnEsIHUzMiB0YXJnZXQsIHU4IHByaW8sIHUzMiBzd19pcnEpOworCWludAkoKmdldF9pcnFfY29uZmlnKSh1MzIgaHdfaXJxLCB1MzIgKnRhcmdldCwgdTggKnByaW8sCisJCQkJICB1MzIgKnN3X2lycSk7CiAJaW50CSgqc2V0dXBfcXVldWUpKHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCB4aXZlX2NwdSAqeGMsIHU4IHByaW8pOwogCXZvaWQJKCpjbGVhbnVwX3F1ZXVlKSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgeGl2ZV9jcHUgKnhjLCB1OCBwcmlvKTsKIAl2b2lkCSgqc2V0dXBfY3B1KSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgeGl2ZV9jcHUgKnhjKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy94bW9uL3htb24uYyBiL2FyY2gvcG93ZXJwYy94bW9uL3htb24uYwppbmRleCAxNGU1NmMyLi5kODMzNjRlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMveG1vbi94bW9uLmMKKysrIGIvYXJjaC9wb3dlcnBjL3htb24veG1vbi5jCkBAIC0yNTM0LDEzICsyNTM0LDE2IEBAIHN0YXRpYyB2b2lkIGR1bXBfcGFjYXModm9pZCkKIHN0YXRpYyB2b2lkIGR1bXBfb25lX3hpdmUoaW50IGNwdSkKIHsKIAl1bnNpZ25lZCBpbnQgaHdpZCA9IGdldF9oYXJkX3NtcF9wcm9jZXNzb3JfaWQoY3B1KTsKKwlib29sIGh2ID0gY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfSFZNT0RFKTsKIAotCW9wYWxfeGl2ZV9kdW1wKFhJVkVfRFVNUF9UTV9IWVAsIGh3aWQpOwotCW9wYWxfeGl2ZV9kdW1wKFhJVkVfRFVNUF9UTV9QT09MLCBod2lkKTsKLQlvcGFsX3hpdmVfZHVtcChYSVZFX0RVTVBfVE1fT1MsIGh3aWQpOwotCW9wYWxfeGl2ZV9kdW1wKFhJVkVfRFVNUF9UTV9VU0VSLCBod2lkKTsKLQlvcGFsX3hpdmVfZHVtcChYSVZFX0RVTVBfVlAsIGh3aWQpOwotCW9wYWxfeGl2ZV9kdW1wKFhJVkVfRFVNUF9FTVVfU1RBVEUsIGh3aWQpOworCWlmIChodikgeworCQlvcGFsX3hpdmVfZHVtcChYSVZFX0RVTVBfVE1fSFlQLCBod2lkKTsKKwkJb3BhbF94aXZlX2R1bXAoWElWRV9EVU1QX1RNX1BPT0wsIGh3aWQpOworCQlvcGFsX3hpdmVfZHVtcChYSVZFX0RVTVBfVE1fT1MsIGh3aWQpOworCQlvcGFsX3hpdmVfZHVtcChYSVZFX0RVTVBfVE1fVVNFUiwgaHdpZCk7CisJCW9wYWxfeGl2ZV9kdW1wKFhJVkVfRFVNUF9WUCwgaHdpZCk7CisJCW9wYWxfeGl2ZV9kdW1wKFhJVkVfRFVNUF9FTVVfU1RBVEUsIGh3aWQpOworCX0KIAogCWlmIChzZXRqbXAoYnVzX2Vycm9yX2ptcCkgIT0gMCkgewogCQljYXRjaF9tZW1vcnlfZXJyb3JzID0gMDsKQEAgLTI1NjksMTYgKzI1NzIsMjggQEAgc3RhdGljIHZvaWQgZHVtcF9hbGxfeGl2ZXModm9pZCkKIAkJZHVtcF9vbmVfeGl2ZShjcHUpOwogfQogCi1zdGF0aWMgdm9pZCBkdW1wX29uZV94aXZlX2lycSh1MzIgbnVtKQorc3RhdGljIHZvaWQgZHVtcF9vbmVfeGl2ZV9pcnEodTMyIG51bSwgc3RydWN0IGlycV9kYXRhICpkKQogewotCXM2NCByYzsKLQlfX2JlNjQgdnA7Ci0JdTggcHJpbzsKLQlfX2JlMzIgbGlycTsKKwl4bW9uX3hpdmVfZ2V0X2lycV9jb25maWcobnVtLCBkKTsKK30KIAotCXJjID0gb3BhbF94aXZlX2dldF9pcnFfY29uZmlnKG51bSwgJnZwLCAmcHJpbywgJmxpcnEpOwotCXhtb25fcHJpbnRmKCJJUlEgMHgleCBjb25maWc6IHZwPTB4JWxseCBwcmlvPSVkIGxpcnE9MHgleCAocmM9JWxsZClcbiIsCi0JCSAgICBudW0sIGJlNjRfdG9fY3B1KHZwKSwgcHJpbywgYmUzMl90b19jcHUobGlycSksIHJjKTsKK3N0YXRpYyB2b2lkIGR1bXBfYWxsX3hpdmVfaXJxKHZvaWQpCit7CisJdW5zaWduZWQgaW50IGk7CisJc3RydWN0IGlycV9kZXNjICpkZXNjOworCisJZm9yX2VhY2hfaXJxX2Rlc2MoaSwgZGVzYykgeworCQlzdHJ1Y3QgaXJxX2RhdGEgKmQgPSBpcnFfZGVzY19nZXRfaXJxX2RhdGEoZGVzYyk7CisJCXVuc2lnbmVkIGludCBod2lycTsKKworCQlpZiAoIWQpCisJCQljb250aW51ZTsKKworCQlod2lycSA9ICh1bnNpZ25lZCBpbnQpaXJxZF90b19od2lycShkKTsKKwkJLyogSVBJcyBhcmUgc3BlY2lhbCAoSFcgbnVtYmVyIDApICovCisJCWlmIChod2lycSkKKwkJCWR1bXBfb25lX3hpdmVfaXJxKGh3aXJxLCBkKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGR1bXBfeGl2ZXModm9pZCkKQEAgLTI1OTcsNyArMjYxMiw5IEBAIHN0YXRpYyB2b2lkIGR1bXBfeGl2ZXModm9pZCkKIAkJcmV0dXJuOwogCX0gZWxzZSBpZiAoYyA9PSAnaScpIHsKIAkJaWYgKHNjYW5oZXgoJm51bSkpCi0JCQlkdW1wX29uZV94aXZlX2lycShudW0pOworCQkJZHVtcF9vbmVfeGl2ZV9pcnEobnVtLCBOVUxMKTsKKwkJZWxzZQorCQkJZHVtcF9hbGxfeGl2ZV9pcnEoKTsKIAkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9LY29uZmlnIGIvYXJjaC9yaXNjdi9LY29uZmlnCmluZGV4IDEyMTE1NDMuLjhlZWJiYzggMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvS2NvbmZpZworKysgYi9hcmNoL3Jpc2N2L0tjb25maWcKQEAgLTMxLDYgKzMxLDcgQEAKIAlzZWxlY3QgR0VORVJJQ19TTVBfSURMRV9USFJFQUQKIAlzZWxlY3QgR0VORVJJQ19BVE9NSUM2NCBpZiAhNjRCSVQKIAlzZWxlY3QgSEFWRV9BUkNIX0FVRElUU1lTQ0FMTAorCXNlbGVjdCBIQVZFX0FTTV9NT0RWRVJTSU9OUwogCXNlbGVjdCBIQVZFX01FTUJMT0NLX05PREVfTUFQCiAJc2VsZWN0IEhBVkVfRE1BX0NPTlRJR1VPVVMKIAlzZWxlY3QgSEFWRV9GVVRFWF9DTVBYQ0hHIGlmIEZVVEVYCkBAIC01OCw2ICs1OSwxOCBAQAogCXNlbGVjdCBBUkNIX0hBU19HSUdBTlRJQ19QQUdFCiAJc2VsZWN0IEFSQ0hfV0FOVF9IVUdFX1BNRF9TSEFSRSBpZiA2NEJJVAogCXNlbGVjdCBTUEFSU0VNRU1fU1RBVElDIGlmIDMyQklUCisJc2VsZWN0IEFSQ0hfV0FOVF9ERUZBVUxUX1RPUERPV05fTU1BUF9MQVlPVVQgaWYgTU1VCisJc2VsZWN0IEhBVkVfQVJDSF9NTUFQX1JORF9CSVRTCisKK2NvbmZpZyBBUkNIX01NQVBfUk5EX0JJVFNfTUlOCisJZGVmYXVsdCAxOCBpZiA2NEJJVAorCWRlZmF1bHQgOAorCisjIG1heCBiaXRzIGRldGVybWluZWQgYnkgdGhlIGZvbGxvd2luZyBmb3JtdWxhOgorIyAgVkFfQklUUyAtIFBBR0VfU0hJRlQgLSAzCitjb25maWcgQVJDSF9NTUFQX1JORF9CSVRTX01BWAorCWRlZmF1bHQgMjQgaWYgNjRCSVQgIyBTVjM5IGJhc2VkCisJZGVmYXVsdCAxNwogCiBjb25maWcgTU1VCiAJZGVmX2Jvb2wgeQpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvTWFrZWZpbGUKaW5kZXggNGYwYTNkMi4uZjVlOTE0MiAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9NYWtlZmlsZQorKysgYi9hcmNoL3Jpc2N2L01ha2VmaWxlCkBAIC01Miw3ICs1Miw3IEBACiAJS0JVSUxEX0NGTEFHUyArPSAtbWNtb2RlbD1tZWRhbnkKIGVuZGlmCiBpZmVxICgkKENPTkZJR19NT0RVTEVfU0VDVElPTlMpLHkpCi0JS0JVSUxEX0xERkxBR1NfTU9EVUxFICs9IC1UICQoc3JjdHJlZSkvYXJjaC9yaXNjdi9rZXJuZWwvbW9kdWxlLmxkcworCUtCVUlMRF9MRFNfTU9EVUxFICs9ICQoc3JjdHJlZSkvYXJjaC9yaXNjdi9rZXJuZWwvbW9kdWxlLmxkcwogZW5kaWYKIGlmZXEgKCQoQ09ORklHX1BFUkZfRVZFTlRTKSx5KQogICAgICAgICBLQlVJTERfQ0ZMQUdTICs9IC1mbm8tb21pdC1mcmFtZS1wb2ludGVyCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3NpZml2ZS9mdTU0MC1jMDAwLmR0c2kgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3NpZml2ZS9mdTU0MC1jMDAwLmR0c2kKaW5kZXggNDJiNWVjMi4uYWZhNDNjNyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9ib290L2R0cy9zaWZpdmUvZnU1NDAtYzAwMC5kdHNpCisrKyBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc2lmaXZlL2Z1NTQwLWMwMDAuZHRzaQpAQCAtMTMsNiArMTMsNyBAQAogCWFsaWFzZXMgewogCQlzZXJpYWwwID0gJnVhcnQwOwogCQlzZXJpYWwxID0gJnVhcnQxOworCQlldGhlcm5ldDAgPSAmZXRoMDsKIAl9OwogCiAJY2hvc2VuIHsKQEAgLTYwLDcgKzYxLDYgQEAKIAkJCX07CiAJCX07CiAJCWNwdTI6IGNwdUAyIHsKLQkJCWNsb2NrLWZyZXF1ZW5jeSA9IDwwPjsKIAkJCWNvbXBhdGlibGUgPSAic2lmaXZlLHU1NC1tYyIsICJzaWZpdmUscm9ja2V0MCIsICJyaXNjdiI7CiAJCQlkLWNhY2hlLWJsb2NrLXNpemUgPSA8NjQ+OwogCQkJZC1jYWNoZS1zZXRzID0gPDY0PjsKQEAgLTg0LDcgKzg0LDYgQEAKIAkJCX07CiAJCX07CiAJCWNwdTM6IGNwdUAzIHsKLQkJCWNsb2NrLWZyZXF1ZW5jeSA9IDwwPjsKIAkJCWNvbXBhdGlibGUgPSAic2lmaXZlLHU1NC1tYyIsICJzaWZpdmUscm9ja2V0MCIsICJyaXNjdiI7CiAJCQlkLWNhY2hlLWJsb2NrLXNpemUgPSA8NjQ+OwogCQkJZC1jYWNoZS1zZXRzID0gPDY0PjsKQEAgLTEwOCw3ICsxMDcsNiBAQAogCQkJfTsKIAkJfTsKIAkJY3B1NDogY3B1QDQgewotCQkJY2xvY2stZnJlcXVlbmN5ID0gPDA+OwogCQkJY29tcGF0aWJsZSA9ICJzaWZpdmUsdTU0LW1jIiwgInNpZml2ZSxyb2NrZXQwIiwgInJpc2N2IjsKIAkJCWQtY2FjaGUtYmxvY2stc2l6ZSA9IDw2ND47CiAJCQlkLWNhY2hlLXNldHMgPSA8NjQ+OwpAQCAtMjMwLDYgKzIyOCwyNCBAQAogCQkJI3NpemUtY2VsbHMgPSA8MD47CiAJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwogCQl9OworCQlwd20wOiBwd21AMTAwMjAwMDAgeworCQkJY29tcGF0aWJsZSA9ICJzaWZpdmUsZnU1NDAtYzAwMC1wd20iLCAic2lmaXZlLHB3bTAiOworCQkJcmVnID0gPDB4MCAweDEwMDIwMDAwIDB4MCAweDEwMDA+OworCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmcGxpYzA+OworCQkJaW50ZXJydXB0cyA9IDw0MiA0MyA0NCA0NT47CisJCQljbG9ja3MgPSA8JnByY2kgUFJDSV9DTEtfVExDTEs+OworCQkJI3B3bS1jZWxscyA9IDwzPjsKKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJCX07CisJCXB3bTE6IHB3bUAxMDAyMTAwMCB7CisJCQljb21wYXRpYmxlID0gInNpZml2ZSxmdTU0MC1jMDAwLXB3bSIsICJzaWZpdmUscHdtMCI7CisJCQlyZWcgPSA8MHgwIDB4MTAwMjEwMDAgMHgwIDB4MTAwMD47CisJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZwbGljMD47CisJCQlpbnRlcnJ1cHRzID0gPDQ2IDQ3IDQ4IDQ5PjsKKwkJCWNsb2NrcyA9IDwmcHJjaSBQUkNJX0NMS19UTENMSz47CisJCQkjcHdtLWNlbGxzID0gPDM+OworCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKwkJfTsKIAogCX07CiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290L2R0cy9zaWZpdmUvaGlmaXZlLXVubGVhc2hlZC1hMDAuZHRzIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zaWZpdmUvaGlmaXZlLXVubGVhc2hlZC1hMDAuZHRzCmluZGV4IDkzZDY4Y2IuLjEwNGQzMzQgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc2lmaXZlL2hpZml2ZS11bmxlYXNoZWQtYTAwLmR0cworKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3NpZml2ZS9oaWZpdmUtdW5sZWFzaGVkLWEwMC5kdHMKQEAgLTg1LDMgKzg1LDExIEBACiAJCXJlZyA9IDwwPjsKIAl9OwogfTsKKworJnB3bTAgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZwd20xIHsKKwlzdGF0dXMgPSAib2theSI7Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZyBiL2FyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWcKaW5kZXggM2VmZmY1NS4uNDIwYTBkYiAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZworKysgYi9hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnCkBAIC0yOSw2ICsyOSw4IEBACiBDT05GSUdfSVBfUE5QX0JPT1RQPXkKIENPTkZJR19JUF9QTlBfUkFSUD15CiBDT05GSUdfTkVUTElOS19ESUFHPXkKK0NPTkZJR19ORVRfOVA9eQorQ09ORklHX05FVF85UF9WSVJUSU89eQogQ09ORklHX1BDST15CiBDT05GSUdfUENJRVBPUlRCVVM9eQogQ09ORklHX1BDSV9IT1NUX0dFTkVSSUM9eQpAQCAtMzksNiArNDEsNyBAQAogQ09ORklHX1ZJUlRJT19CTEs9eQogQ09ORklHX0JMS19ERVZfU0Q9eQogQ09ORklHX0JMS19ERVZfU1I9eQorQ09ORklHX1NDU0lfVklSVElPPXkKIENPTkZJR19BVEE9eQogQ09ORklHX1NBVEFfQUhDST15CiBDT05GSUdfU0FUQV9BSENJX1BMQVRGT1JNPXkKQEAgLTU0LDYgKzU3LDcgQEAKIENPTkZJR19TRVJJQUxfT0ZfUExBVEZPUk09eQogQ09ORklHX1NFUklBTF9FQVJMWUNPTl9SSVNDVl9TQkk9eQogQ09ORklHX0hWQ19SSVNDVl9TQkk9eQorQ09ORklHX1ZJUlRJT19DT05TT0xFPXkKIENPTkZJR19IV19SQU5ET009eQogQ09ORklHX0hXX1JBTkRPTV9WSVJUSU89eQogQ09ORklHX1NQST15CkBAIC02MSw2ICs2NSw3IEBACiAjIENPTkZJR19QVFBfMTU4OF9DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfRFJNPXkKIENPTkZJR19EUk1fUkFERU9OPXkKK0NPTkZJR19EUk1fVklSVElPX0dQVT15CiBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15CiBDT05GSUdfVVNCPXkKIENPTkZJR19VU0JfWEhDSV9IQ0Q9eQpAQCAtNzMsNyArNzgsMTIgQEAKIENPTkZJR19VU0JfVUFTPXkKIENPTkZJR19NTUM9eQogQ09ORklHX01NQ19TUEk9eQorQ09ORklHX1ZJUlRJT19QQ0k9eQorQ09ORklHX1ZJUlRJT19CQUxMT09OPXkKK0NPTkZJR19WSVJUSU9fSU5QVVQ9eQogQ09ORklHX1ZJUlRJT19NTUlPPXkKK0NPTkZJR19SUE1TR19DSEFSPXkKK0NPTkZJR19SUE1TR19WSVJUSU89eQogQ09ORklHX0VYVDRfRlM9eQogQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXkKIENPTkZJR19BVVRPRlM0X0ZTPXkKQEAgLTg2LDYgKzk2LDcgQEAKIENPTkZJR19ORlNfVjRfMT15CiBDT05GSUdfTkZTX1Y0XzI9eQogQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR185UF9GUz15CiBDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX0hBU0g9eQogQ09ORklHX0NSWVBUT19ERVZfVklSVElPPXkKIENPTkZJR19QUklOVEtfVElNRT15CmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2NvbmZpZ3MvcnYzMl9kZWZjb25maWcgYi9hcmNoL3Jpc2N2L2NvbmZpZ3MvcnYzMl9kZWZjb25maWcKaW5kZXggN2RhOTNlNC4uODdlZTZlNiAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9jb25maWdzL3J2MzJfZGVmY29uZmlnCisrKyBiL2FyY2gvcmlzY3YvY29uZmlncy9ydjMyX2RlZmNvbmZpZwpAQCAtMjksNiArMjksOCBAQAogQ09ORklHX0lQX1BOUF9CT09UUD15CiBDT05GSUdfSVBfUE5QX1JBUlA9eQogQ09ORklHX05FVExJTktfRElBRz15CitDT05GSUdfTkVUXzlQPXkKK0NPTkZJR19ORVRfOVBfVklSVElPPXkKIENPTkZJR19QQ0k9eQogQ09ORklHX1BDSUVQT1JUQlVTPXkKIENPTkZJR19QQ0lfSE9TVF9HRU5FUklDPXkKQEAgLTM5LDYgKzQxLDcgQEAKIENPTkZJR19WSVJUSU9fQkxLPXkKIENPTkZJR19CTEtfREVWX1NEPXkKIENPTkZJR19CTEtfREVWX1NSPXkKK0NPTkZJR19TQ1NJX1ZJUlRJTz15CiBDT05GSUdfQVRBPXkKIENPTkZJR19TQVRBX0FIQ0k9eQogQ09ORklHX1NBVEFfQUhDSV9QTEFURk9STT15CkBAIC01NCwxMSArNTcsMTMgQEAKIENPTkZJR19TRVJJQUxfT0ZfUExBVEZPUk09eQogQ09ORklHX1NFUklBTF9FQVJMWUNPTl9SSVNDVl9TQkk9eQogQ09ORklHX0hWQ19SSVNDVl9TQkk9eQorQ09ORklHX1ZJUlRJT19DT05TT0xFPXkKIENPTkZJR19IV19SQU5ET009eQogQ09ORklHX0hXX1JBTkRPTV9WSVJUSU89eQogIyBDT05GSUdfUFRQXzE1ODhfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX0RSTT15CiBDT05GSUdfRFJNX1JBREVPTj15CitDT05GSUdfRFJNX1ZJUlRJT19HUFU9eQogQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQogQ09ORklHX1VTQj15CiBDT05GSUdfVVNCX1hIQ0lfSENEPXkKQEAgLTY5LDcgKzc0LDEyIEBACiBDT05GSUdfVVNCX09IQ0lfSENEX1BMQVRGT1JNPXkKIENPTkZJR19VU0JfU1RPUkFHRT15CiBDT05GSUdfVVNCX1VBUz15CitDT05GSUdfVklSVElPX1BDST15CitDT05GSUdfVklSVElPX0JBTExPT049eQorQ09ORklHX1ZJUlRJT19JTlBVVD15CiBDT05GSUdfVklSVElPX01NSU89eQorQ09ORklHX1JQTVNHX0NIQVI9eQorQ09ORklHX1JQTVNHX1ZJUlRJTz15CiBDT05GSUdfU0lGSVZFX1BMSUM9eQogQ09ORklHX0VYVDRfRlM9eQogQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXkKQEAgLTgzLDYgKzkzLDcgQEAKIENPTkZJR19ORlNfVjRfMT15CiBDT05GSUdfTkZTX1Y0XzI9eQogQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR185UF9GUz15CiBDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX0hBU0g9eQogQ09ORklHX0NSWVBUT19ERVZfVklSVElPPXkKIENPTkZJR19QUklOVEtfVElNRT15CmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BnYWxsb2MuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IDU2YTY3ZDYuLmQ1OWVhOTIgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGdhbGxvYy5oCkBAIC03OCwxMiArNzgsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcG1kX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBtZF90ICpwbWQpCiAKICNkZWZpbmUgX19wdGVfZnJlZV90bGIodGxiLCBwdGUsIGJ1ZikgICBcCiBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCXBndGFibGVfcGFnZV9kdG9yKHB0ZSk7ICAgICAgICAgXAorCXBndGFibGVfcHRlX3BhZ2VfZHRvcihwdGUpOyAgICAgXAogCXRsYl9yZW1vdmVfcGFnZSgodGxiKSwgcHRlKTsgICAgXAogfSB3aGlsZSAoMCkKIAotc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX3BndF9jYWNoZSh2b2lkKQotewotfQotCiAjZW5kaWYgLyogX0FTTV9SSVNDVl9QR0FMTE9DX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggODA5MDViMi4uNzI1NWYyZCAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTgzLDYgKzgzLDE4IEBAIGV4dGVybiBwZ2RfdCBzd2FwcGVyX3BnX2RpcltdOwogI2RlZmluZSBfX1MxMTAJUEFHRV9TSEFSRURfRVhFQwogI2RlZmluZSBfX1MxMTEJUEFHRV9TSEFSRURfRVhFQwogCisjZGVmaW5lIFZNQUxMT0NfU0laRSAgICAgKEtFUk5fVklSVF9TSVpFID4+IDEpCisjZGVmaW5lIFZNQUxMT0NfRU5EICAgICAgKFBBR0VfT0ZGU0VUIC0gMSkKKyNkZWZpbmUgVk1BTExPQ19TVEFSVCAgICAoUEFHRV9PRkZTRVQgLSBWTUFMTE9DX1NJWkUpCisKKyNkZWZpbmUgRklYQUREUl9UT1AgICAgICBWTUFMTE9DX1NUQVJUCisjaWZkZWYgQ09ORklHXzY0QklUCisjZGVmaW5lIEZJWEFERFJfU0laRSAgICAgUE1EX1NJWkUKKyNlbHNlCisjZGVmaW5lIEZJWEFERFJfU0laRSAgICAgUEdESVJfU0laRQorI2VuZGlmCisjZGVmaW5lIEZJWEFERFJfU1RBUlQgICAgKEZJWEFERFJfVE9QIC0gRklYQUREUl9TSVpFKQorCiAvKgogICogUm91Z2hseSBzaXplIHRoZSB2bWVtbWFwIHNwYWNlIHRvIGJlIGxhcmdlIGVub3VnaCB0byBmaXQgZW5vdWdoCiAgKiBzdHJ1Y3QgcGFnZXMgdG8gbWFwIGhhbGYgdGhlIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4gVGhlbgpAQCAtNDI0LDIzICs0MzYsNiBAQCBleHRlcm4gdm9pZCAqZHRiX2Vhcmx5X3ZhOwogZXh0ZXJuIHZvaWQgc2V0dXBfYm9vdG1lbSh2b2lkKTsKIGV4dGVybiB2b2lkIHBhZ2luZ19pbml0KHZvaWQpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgcGd0YWJsZV9jYWNoZV9pbml0KHZvaWQpCi17Ci0JLyogTm8gcGFnZSB0YWJsZSBjYWNoZXMgdG8gaW5pdGlhbGl6ZSAqLwotfQotCi0jZGVmaW5lIFZNQUxMT0NfU0laRSAgICAgKEtFUk5fVklSVF9TSVpFID4+IDEpCi0jZGVmaW5lIFZNQUxMT0NfRU5EICAgICAgKFBBR0VfT0ZGU0VUIC0gMSkKLSNkZWZpbmUgVk1BTExPQ19TVEFSVCAgICAoUEFHRV9PRkZTRVQgLSBWTUFMTE9DX1NJWkUpCi0KLSNkZWZpbmUgRklYQUREUl9UT1AgICAgICBWTUFMTE9DX1NUQVJUCi0jaWZkZWYgQ09ORklHXzY0QklUCi0jZGVmaW5lIEZJWEFERFJfU0laRSAgICAgUE1EX1NJWkUKLSNlbHNlCi0jZGVmaW5lIEZJWEFERFJfU0laRSAgICAgUEdESVJfU0laRQotI2VuZGlmCi0jZGVmaW5lIEZJWEFERFJfU1RBUlQgICAgKEZJWEFERFJfVE9QIC0gRklYQUREUl9TSVpFKQotCiAvKgogICogVGFzayBzaXplIGlzIDB4NDAwMDAwMDAwMCBmb3IgUlY2NCBvciAweDlmYzAwMDAwIGZvciBSVjMyLgogICogTm90ZSB0aGF0IFBHRElSX1NJWkUgbXVzdCBldmVubHkgZGl2aWRlIFRBU0tfU0laRS4KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2VudHJ5LlMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9lbnRyeS5TCmluZGV4IDc0Y2NmZDQuLmRhN2FhODggMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL2VudHJ5LlMKKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvZW50cnkuUwpAQCAtMTY2LDkgKzE2NiwxMyBAQAogCW1vdmUgYTAsIHNwIC8qIHB0X3JlZ3MgKi8KIAl0YWlsIGRvX0lSUQogMToKLQkvKiBFeGNlcHRpb25zIHJ1biB3aXRoIGludGVycnVwdHMgZW5hYmxlZCAqLworCS8qIEV4Y2VwdGlvbnMgcnVuIHdpdGggaW50ZXJydXB0cyBlbmFibGVkIG9yIGRpc2FibGVkCisJICAgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSBvZiBzc3RhdHVzLlNSX1NQSUUgKi8KKwlhbmRpIHQwLCBzMSwgU1JfU1BJRQorCWJlcXogdDAsIDFmCiAJY3NycyBDU1JfU1NUQVRVUywgU1JfU0lFCiAKKzE6CiAJLyogSGFuZGxlIHN5c2NhbGxzICovCiAJbGkgdDAsIEVYQ19TWVNDQUxMCiAJYmVxIHM0LCB0MCwgaGFuZGxlX3N5c2NhbGwKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2hlYWQuUyBiL2FyY2gvcmlzY3Yva2VybmVsL2hlYWQuUwppbmRleCAxNWE5MTg5Li43MmY4OWI3IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMKKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvaGVhZC5TCkBAIC02Myw2ICs2MywxMSBAQAogCWxpIHQwLCBTUl9GUwogCWNzcmMgQ1NSX1NTVEFUVVMsIHQwCiAKKyNpZmRlZiBDT05GSUdfU01QCisJbGkgdDAsIENPTkZJR19OUl9DUFVTCisJYmdldSBhMCwgdDAsIC5Mc2Vjb25kYXJ5X3BhcmsKKyNlbmRpZgorCiAJLyogUGljayBvbmUgaGFydCB0byBydW4gdGhlIG1haW4gYm9vdCBzZXF1ZW5jZSAqLwogCWxhIGEzLCBoYXJ0X2xvdHRlcnkKIAlsaSBhMiwgMQpAQCAtMTU0LDkgKzE1OSw2IEBACiAKIC5Mc2Vjb25kYXJ5X3N0YXJ0OgogI2lmZGVmIENPTkZJR19TTVAKLQlsaSBhMSwgQ09ORklHX05SX0NQVVMKLQliZ2V1IGEwLCBhMSwgLkxzZWNvbmRhcnlfcGFyawotCiAJLyogU2V0IHRyYXAgdmVjdG9yIHRvIHNwaW4gZm9yZXZlciB0byBoZWxwIGRlYnVnICovCiAJbGEgYTMsIC5Mc2Vjb25kYXJ5X3BhcmsKIAljc3J3IENTUl9TVFZFQywgYTMKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3NtcC5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvc21wLmMKaW5kZXggMzgzNjc2MC4uYjE4Y2Q2YyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvc21wLmMKKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvc21wLmMKQEAgLTIwNiwzICsyMDYsNCBAQCB2b2lkIHNtcF9zZW5kX3Jlc2NoZWR1bGUoaW50IGNwdSkKIHsKIAlzZW5kX2lwaV9zaW5nbGUoY3B1LCBJUElfUkVTQ0hFRFVMRSk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChzbXBfc2VuZF9yZXNjaGVkdWxlKTsKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3RpbWUuYyBiL2FyY2gvcmlzY3Yva2VybmVsL3RpbWUuYwppbmRleCA1NDFhMmI4Li45ZGQxZjJlIDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC90aW1lLmMKKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvdGltZS5jCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPGFzbS9zYmkuaD4KIAogdW5zaWduZWQgbG9uZyByaXNjdl90aW1lYmFzZTsKK0VYUE9SVF9TWU1CT0xfR1BMKHJpc2N2X3RpbWViYXNlKTsKIAogdm9pZCBfX2luaXQgdGltZV9pbml0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvS2NvbmZpZyBiL2FyY2gvczM5MC9LY29uZmlnCmluZGV4IDhjNWIwNWQuLjQzYTgxZDAgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9LY29uZmlnCisrKyBiL2FyY2gvczM5MC9LY29uZmlnCkBAIC0xLDcgKzEsNCBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAotY29uZmlnIEFSQ0hfSEFTX01FTV9FTkNSWVBUCi0gICAgICAgIGRlZl9ib29sIHkKLQogY29uZmlnIE1NVQogCWRlZl9ib29sIHkKIApAQCAtNjgsNiArNjUsNyBAQAogCXNlbGVjdCBBUkNIX0hBU19HQ09WX1BST0ZJTEVfQUxMCiAJc2VsZWN0IEFSQ0hfSEFTX0dJR0FOVElDX1BBR0UKIAlzZWxlY3QgQVJDSF9IQVNfS0NPVgorCXNlbGVjdCBBUkNIX0hBU19NRU1fRU5DUllQVAogCXNlbGVjdCBBUkNIX0hBU19QVEVfU1BFQ0lBTAogCXNlbGVjdCBBUkNIX0hBU19TRVRfTUVNT1JZCiAJc2VsZWN0IEFSQ0hfSEFTX1NUUklDVF9LRVJORUxfUldYCkBAIC0xMzIsNiArMTMwLDcgQEAKIAlzZWxlY3QgSEFWRV9BUkNIX1RSQUNFSE9PSwogCXNlbGVjdCBIQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0UKIAlzZWxlY3QgSEFWRV9BUkNIX1ZNQVBfU1RBQ0sKKwlzZWxlY3QgSEFWRV9BU01fTU9EVkVSU0lPTlMKIAlzZWxlY3QgSEFWRV9FQlBGX0pJVCBpZiBQQUNLX1NUQUNLICYmIEhBVkVfTUFSQ0hfWjE5Nl9GRUFUVVJFUwogCXNlbGVjdCBIQVZFX0NNUFhDSEdfRE9VQkxFCiAJc2VsZWN0IEhBVkVfQ01QWENIR19MT0NBTApAQCAtNTU1LDkgKzU1NCw5IEBACiAJZGVmX2Jvb2wgeQogCWRlcGVuZHMgb24gS0VYRUNfRklMRQogCi1jb25maWcgS0VYRUNfVkVSSUZZX1NJRworY29uZmlnIEtFWEVDX1NJRwogCWJvb2wgIlZlcmlmeSBrZXJuZWwgc2lnbmF0dXJlIGR1cmluZyBrZXhlY19maWxlX2xvYWQoKSBzeXNjYWxsIgotCWRlcGVuZHMgb24gS0VYRUNfRklMRSAmJiBTWVNURU1fREFUQV9WRVJJRklDQVRJT04KKwlkZXBlbmRzIG9uIEtFWEVDX0ZJTEUgJiYgTU9EVUxFX1NJR19GT1JNQVQKIAloZWxwCiAJICBUaGlzIG9wdGlvbiBtYWtlcyBrZXJuZWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBtYW5kYXRvcnkgZm9yCiAJICB0aGUga2V4ZWNfZmlsZV9sb2FkKCkgc3lzY2FsbC4KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9oeXBmcy9pbm9kZS5jIGIvYXJjaC9zMzkwL2h5cGZzL2lub2RlLmMKaW5kZXggYTQ0MThmYy4uNzAxMzlkMCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2h5cGZzL2lub2RlLmMKKysrIGIvYXJjaC9zMzkwL2h5cGZzL2lub2RlLmMKQEAgLTEyLDE3ICsxMiwxNyBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzX2NvbnRleHQuaD4KKyNpbmNsdWRlIDxsaW51eC9mc19wYXJzZXIuaD4KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPgogI2luY2x1ZGUgPGxpbnV4L3Zmcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BhcnNlci5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+CiAjaW5jbHVkZSA8bGludXgvdWlvLmg+CiAjaW5jbHVkZSA8YXNtL2ViY2RpYy5oPgogI2luY2x1ZGUgImh5cGZzLmgiCkBAIC0yMDcsNTIgKzIwNyw0NCBAQCBzdGF0aWMgaW50IGh5cGZzX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiAJcmV0dXJuIDA7CiB9CiAKLWVudW0geyBvcHRfdWlkLCBvcHRfZ2lkLCBvcHRfZXJyIH07CitlbnVtIHsgT3B0X3VpZCwgT3B0X2dpZCwgfTsKIAotc3RhdGljIGNvbnN0IG1hdGNoX3RhYmxlX3QgaHlwZnNfdG9rZW5zID0gewotCXtvcHRfdWlkLCAidWlkPSV1In0sCi0Je29wdF9naWQsICJnaWQ9JXUifSwKLQl7b3B0X2VyciwgTlVMTH0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnNfcGFyYW1ldGVyX3NwZWMgaHlwZnNfcGFyYW1fc3BlY3NbXSA9IHsKKwlmc3BhcmFtX3UzMigiZ2lkIiwgT3B0X2dpZCksCisJZnNwYXJhbV91MzIoInVpZCIsIE9wdF91aWQpLAorCXt9CiB9OwogCi1zdGF0aWMgaW50IGh5cGZzX3BhcnNlX29wdGlvbnMoY2hhciAqb3B0aW9ucywgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnNfcGFyYW1ldGVyX2Rlc2NyaXB0aW9uIGh5cGZzX2ZzX3BhcmFtZXRlcnMgPSB7CisJLm5hbWUJCT0gImh5cGZzIiwKKwkuc3BlY3MJCT0gaHlwZnNfcGFyYW1fc3BlY3MsCit9OworCitzdGF0aWMgaW50IGh5cGZzX3BhcnNlX3BhcmFtKHN0cnVjdCBmc19jb250ZXh0ICpmYywgc3RydWN0IGZzX3BhcmFtZXRlciAqcGFyYW0pCiB7Ci0JY2hhciAqc3RyOwotCXN1YnN0cmluZ190IGFyZ3NbTUFYX09QVF9BUkdTXTsKKwlzdHJ1Y3QgaHlwZnNfc2JfaW5mbyAqaHlwZnNfaW5mbyA9IGZjLT5zX2ZzX2luZm87CisJc3RydWN0IGZzX3BhcnNlX3Jlc3VsdCByZXN1bHQ7CiAJa3VpZF90IHVpZDsKIAlrZ2lkX3QgZ2lkOworCWludCBvcHQ7CiAKLQlpZiAoIW9wdGlvbnMpCi0JCXJldHVybiAwOwotCXdoaWxlICgoc3RyID0gc3Ryc2VwKCZvcHRpb25zLCAiLCIpKSAhPSBOVUxMKSB7Ci0JCWludCB0b2tlbiwgb3B0aW9uOwotCQlzdHJ1Y3QgaHlwZnNfc2JfaW5mbyAqaHlwZnNfaW5mbyA9IHNiLT5zX2ZzX2luZm87CisJb3B0ID0gZnNfcGFyc2UoZmMsICZoeXBmc19mc19wYXJhbWV0ZXJzLCBwYXJhbSwgJnJlc3VsdCk7CisJaWYgKG9wdCA8IDApCisJCXJldHVybiBvcHQ7CiAKLQkJaWYgKCEqc3RyKQotCQkJY29udGludWU7Ci0JCXRva2VuID0gbWF0Y2hfdG9rZW4oc3RyLCBoeXBmc190b2tlbnMsIGFyZ3MpOwotCQlzd2l0Y2ggKHRva2VuKSB7Ci0JCWNhc2Ugb3B0X3VpZDoKLQkJCWlmIChtYXRjaF9pbnQoJmFyZ3NbMF0sICZvcHRpb24pKQotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJdWlkID0gbWFrZV9rdWlkKGN1cnJlbnRfdXNlcl9ucygpLCBvcHRpb24pOwotCQkJaWYgKCF1aWRfdmFsaWQodWlkKSkKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCWh5cGZzX2luZm8tPnVpZCA9IHVpZDsKLQkJCWJyZWFrOwotCQljYXNlIG9wdF9naWQ6Ci0JCQlpZiAobWF0Y2hfaW50KCZhcmdzWzBdLCAmb3B0aW9uKSkKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCWdpZCA9IG1ha2Vfa2dpZChjdXJyZW50X3VzZXJfbnMoKSwgb3B0aW9uKTsKLQkJCWlmICghZ2lkX3ZhbGlkKGdpZCkpCi0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQloeXBmc19pbmZvLT5naWQgPSBnaWQ7Ci0JCQlicmVhazsKLQkJY2FzZSBvcHRfZXJyOgotCQlkZWZhdWx0OgotCQkJcHJfZXJyKCIlcyBpcyBub3QgYSB2YWxpZCBtb3VudCBvcHRpb25cbiIsIHN0cik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQorCXN3aXRjaCAob3B0KSB7CisJY2FzZSBPcHRfdWlkOgorCQl1aWQgPSBtYWtlX2t1aWQoY3VycmVudF91c2VyX25zKCksIHJlc3VsdC51aW50XzMyKTsKKwkJaWYgKCF1aWRfdmFsaWQodWlkKSkKKwkJCXJldHVybiBpbnZhbGYoZmMsICJVbmtub3duIHVpZCIpOworCQloeXBmc19pbmZvLT51aWQgPSB1aWQ7CisJCWJyZWFrOworCWNhc2UgT3B0X2dpZDoKKwkJZ2lkID0gbWFrZV9rZ2lkKGN1cnJlbnRfdXNlcl9ucygpLCByZXN1bHQudWludF8zMik7CisJCWlmICghZ2lkX3ZhbGlkKGdpZCkpCisJCQlyZXR1cm4gaW52YWxmKGZjLCAiVW5rbm93biBnaWQiKTsKKwkJaHlwZnNfaW5mby0+Z2lkID0gZ2lkOworCQlicmVhazsKIAl9CiAJcmV0dXJuIDA7CiB9CkBAIC0yNjYsMjYgKzI1OCwxOCBAQCBzdGF0aWMgaW50IGh5cGZzX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBkZW50cnkgKnJvb3QpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaHlwZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQorc3RhdGljIGludCBoeXBmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKKwlzdHJ1Y3QgaHlwZnNfc2JfaW5mbyAqc2JpID0gc2ItPnNfZnNfaW5mbzsKIAlzdHJ1Y3QgaW5vZGUgKnJvb3RfaW5vZGU7Ci0Jc3RydWN0IGRlbnRyeSAqcm9vdF9kZW50cnk7Ci0JaW50IHJjID0gMDsKLQlzdHJ1Y3QgaHlwZnNfc2JfaW5mbyAqc2JpOworCXN0cnVjdCBkZW50cnkgKnJvb3RfZGVudHJ5LCAqdXBkYXRlX2ZpbGU7CisJaW50IHJjOwogCi0Jc2JpID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGh5cGZzX3NiX2luZm8pLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXNiaSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0JbXV0ZXhfaW5pdCgmc2JpLT5sb2NrKTsKLQlzYmktPnVpZCA9IGN1cnJlbnRfdWlkKCk7Ci0Jc2JpLT5naWQgPSBjdXJyZW50X2dpZCgpOwotCXNiLT5zX2ZzX2luZm8gPSBzYmk7CiAJc2ItPnNfYmxvY2tzaXplID0gUEFHRV9TSVpFOwogCXNiLT5zX2Jsb2Nrc2l6ZV9iaXRzID0gUEFHRV9TSElGVDsKIAlzYi0+c19tYWdpYyA9IEhZUEZTX01BR0lDOwogCXNiLT5zX29wID0gJmh5cGZzX3Nfb3BzOwotCWlmIChoeXBmc19wYXJzZV9vcHRpb25zKGRhdGEsIHNiKSkKLQkJcmV0dXJuIC1FSU5WQUw7CisKIAlyb290X2lub2RlID0gaHlwZnNfbWFrZV9pbm9kZShzYiwgU19JRkRJUiB8IDA3NTUpOwogCWlmICghcm9vdF9pbm9kZSkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC0zMDAsMTggKzI4NCw0NiBAQCBzdGF0aWMgaW50IGh5cGZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAkJcmMgPSBoeXBmc19kaWFnX2NyZWF0ZV9maWxlcyhyb290X2RlbnRyeSk7CiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7Ci0Jc2JpLT51cGRhdGVfZmlsZSA9IGh5cGZzX2NyZWF0ZV91cGRhdGVfZmlsZShyb290X2RlbnRyeSk7Ci0JaWYgKElTX0VSUihzYmktPnVwZGF0ZV9maWxlKSkKLQkJcmV0dXJuIFBUUl9FUlIoc2JpLT51cGRhdGVfZmlsZSk7CisJdXBkYXRlX2ZpbGUgPSBoeXBmc19jcmVhdGVfdXBkYXRlX2ZpbGUocm9vdF9kZW50cnkpOworCWlmIChJU19FUlIodXBkYXRlX2ZpbGUpKQorCQlyZXR1cm4gUFRSX0VSUih1cGRhdGVfZmlsZSk7CisJc2JpLT51cGRhdGVfZmlsZSA9IHVwZGF0ZV9maWxlOwogCWh5cGZzX3VwZGF0ZV91cGRhdGUoc2IpOwogCXByX2luZm8oIkh5cGVydmlzb3IgZmlsZXN5c3RlbSBtb3VudGVkXG4iKTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBkZW50cnkgKmh5cGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc3QsIGludCBmbGFncywKLQkJCWNvbnN0IGNoYXIgKmRldm5hbWUsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGh5cGZzX2dldF90cmVlKHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKLQlyZXR1cm4gbW91bnRfc2luZ2xlKGZzdCwgZmxhZ3MsIGRhdGEsIGh5cGZzX2ZpbGxfc3VwZXIpOworCXJldHVybiBnZXRfdHJlZV9zaW5nbGUoZmMsIGh5cGZzX2ZpbGxfc3VwZXIpOworfQorCitzdGF0aWMgdm9pZCBoeXBmc19mcmVlX2ZjKHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlrZnJlZShmYy0+c19mc19pbmZvKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc19jb250ZXh0X29wZXJhdGlvbnMgaHlwZnNfY29udGV4dF9vcHMgPSB7CisJLmZyZWUJCT0gaHlwZnNfZnJlZV9mYywKKwkucGFyc2VfcGFyYW0JPSBoeXBmc19wYXJzZV9wYXJhbSwKKwkuZ2V0X3RyZWUJPSBoeXBmc19nZXRfdHJlZSwKK307CisKK3N0YXRpYyBpbnQgaHlwZnNfaW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlzdHJ1Y3QgaHlwZnNfc2JfaW5mbyAqc2JpOworCisJc2JpID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGh5cGZzX3NiX2luZm8pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXNiaSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltdXRleF9pbml0KCZzYmktPmxvY2spOworCXNiaS0+dWlkID0gY3VycmVudF91aWQoKTsKKwlzYmktPmdpZCA9IGN1cnJlbnRfZ2lkKCk7CisKKwlmYy0+c19mc19pbmZvID0gc2JpOworCWZjLT5vcHMgPSAmaHlwZnNfY29udGV4dF9vcHM7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGh5cGZzX2tpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTQ0Miw3ICs0NTQsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBoeXBmc19maWxlX29wcyA9IHsKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBoeXBmc190eXBlID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkubmFtZQkJPSAiczM5MF9oeXBmcyIsCi0JLm1vdW50CQk9IGh5cGZzX21vdW50LAorCS5pbml0X2ZzX2NvbnRleHQgPSBoeXBmc19pbml0X2ZzX2NvbnRleHQsCisJLnBhcmFtZXRlcnMJPSAmaHlwZnNfZnNfcGFyYW1ldGVycywKIAkua2lsbF9zYgk9IGh5cGZzX2tpbGxfc3VwZXIKIH07CiAKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9jcHVfbWYuaCBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9jcHVfbWYuaAppbmRleCBhZTNlMzIyMS4uY2VlYjU1MiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2NwdV9tZi5oCisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9jcHVfbWYuaApAQCAtNzAsNyArNzAsNyBAQCBzdHJ1Y3QgaHdzX3FzaV9pbmZvX2Jsb2NrIHsJICAgIC8qIEJpdChzKSAqLwogCXVuc2lnbmVkIGxvbmcgdGVhcjsJICAgIC8qIDI0LTMxOiBURUFSIGNvbnRlbnRzCQkgKi8KIAl1bnNpZ25lZCBsb25nIGRlYXI7CSAgICAvKiAzMi0zOTogREVBUiBjb250ZW50cwkJICovCiAJdW5zaWduZWQgaW50IHJzdnJkMDsJICAgIC8qIDQwLTQzOiByZXNlcnZlZAkJCSAqLwotCXVuc2lnbmVkIGludCBjcHVfc3BlZWQ7ICAgICAvKiA0NC00NzogQ1BVIHNwZWVkIAkJICovCisJdW5zaWduZWQgaW50IGNwdV9zcGVlZDsgICAgIC8qIDQ0LTQ3OiBDUFUgc3BlZWQJCQkgKi8KIAl1bnNpZ25lZCBsb25nIGxvbmcgcnN2cmQxOyAgLyogNDgtNTU6IHJlc2VydmVkCQkJICovCiAJdW5zaWduZWQgbG9uZyBsb25nIHJzdnJkMjsgIC8qIDU2LTYzOiByZXNlcnZlZAkJCSAqLwogfSBfX3BhY2tlZDsKQEAgLTg5LDEwICs4OSwxMCBAQCBzdHJ1Y3QgaHdzX2xzY3RsX3JlcXVlc3RfYmxvY2sgewogCXVuc2lnbmVkIGxvbmcgdGVhcjsJICAgIC8qIDE2LTIzOiBURUFSIGNvbnRlbnRzCQkgKi8KIAl1bnNpZ25lZCBsb25nIGRlYXI7CSAgICAvKiAyNC0zMTogREVBUiBjb250ZW50cwkJICovCiAJLyogMzItNjM6CQkJCQkJCSAqLwotCXVuc2lnbmVkIGxvbmcgcnN2cmQxOwkgICAgLyogcmVzZXJ2ZWQgCQkJICovCi0JdW5zaWduZWQgbG9uZyByc3ZyZDI7CSAgICAvKiByZXNlcnZlZCAJCQkgKi8KLQl1bnNpZ25lZCBsb25nIHJzdnJkMzsJICAgIC8qIHJlc2VydmVkIAkJCSAqLwotCXVuc2lnbmVkIGxvbmcgcnN2cmQ0OwkgICAgLyogcmVzZXJ2ZWQgCQkJICovCisJdW5zaWduZWQgbG9uZyByc3ZyZDE7CSAgICAvKiByZXNlcnZlZAkJCQkgKi8KKwl1bnNpZ25lZCBsb25nIHJzdnJkMjsJICAgIC8qIHJlc2VydmVkCQkJCSAqLworCXVuc2lnbmVkIGxvbmcgcnN2cmQzOwkgICAgLyogcmVzZXJ2ZWQJCQkJICovCisJdW5zaWduZWQgbG9uZyByc3ZyZDQ7CSAgICAvKiByZXNlcnZlZAkJCQkgKi8KIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBod3NfYmFzaWNfZW50cnkgewpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbWVtX2VuY3J5cHQuaAppbmRleCAzZWIwMTg1Li4yNTQyY2JmIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbWVtX2VuY3J5cHQuaAorKysgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbWVtX2VuY3J5cHQuaApAQCAtNCwxMCArNCw3IEBACiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKLSNkZWZpbmUgc21lX21lX21hc2sJMFVMTAotCi1zdGF0aWMgaW5saW5lIGJvb2wgc21lX2FjdGl2ZSh2b2lkKSB7IHJldHVybiBmYWxzZTsgfQotZXh0ZXJuIGJvb2wgc2V2X2FjdGl2ZSh2b2lkKTsKK3N0YXRpYyBpbmxpbmUgYm9vbCBtZW1fZW5jcnlwdF9hY3RpdmUodm9pZCkgeyByZXR1cm4gZmFsc2U7IH0KIAogaW50IHNldF9tZW1vcnlfZW5jcnlwdGVkKHVuc2lnbmVkIGxvbmcgYWRkciwgaW50IG51bXBhZ2VzKTsKIGludCBzZXRfbWVtb3J5X2RlY3J5cHRlZCh1bnNpZ25lZCBsb25nIGFkZHIsIGludCBudW1wYWdlcyk7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vcGVyZl9ldmVudC5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3BlcmZfZXZlbnQuaAppbmRleCA1NjBkOGY3Li40NjUyZmZmIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vcGVyZl9ldmVudC5oCisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9wZXJmX2V2ZW50LmgKQEAgLTYwLDYgKzYwLDcgQEAgc3RydWN0IHBlcmZfc2Zfc2RlX3JlZ3MgewogI2RlZmluZSBQRVJGX0NQVU1fU0ZfTU9ERV9NQVNLCQkoUEVSRl9DUFVNX1NGX0JBU0lDX01PREV8IFwKIAkJCQkJIFBFUkZfQ1BVTV9TRl9ESUFHX01PREUpCiAjZGVmaW5lIFBFUkZfQ1BVTV9TRl9GVUxMX0JMT0NLUwkweDAwMDQJICAvKiBQcm9jZXNzIGZ1bGwgU0RCcyBvbmx5ICovCisjZGVmaW5lIFBFUkZfQ1BVTV9TRl9GUkVRX01PREUJCTB4MDAwOAkgIC8qIFNhbXBsaW5nIHdpdGggZnJlcXVlbmN5ICovCiAKICNkZWZpbmUgUkVHX05PTkUJCTAKICNkZWZpbmUgUkVHX09WRVJGTE9XCQkxCkBAIC03MCw1ICs3MSw2IEBAIHN0cnVjdCBwZXJmX3NmX3NkZV9yZWdzIHsKICNkZWZpbmUgU0FNUExfRkxBR1MoaHdjKQkoKGh3YyktPmNvbmZpZ19iYXNlKQogI2RlZmluZSBTQU1QTF9ESUFHX01PREUoaHdjKQkoU0FNUExfRkxBR1MoaHdjKSAmIFBFUkZfQ1BVTV9TRl9ESUFHX01PREUpCiAjZGVmaW5lIFNEQl9GVUxMX0JMT0NLUyhod2MpCShTQU1QTF9GTEFHUyhod2MpICYgUEVSRl9DUFVNX1NGX0ZVTExfQkxPQ0tTKQorI2RlZmluZSBTQU1QTEVfRlJFUV9NT0RFKGh3YykJKFNBTVBMX0ZMQUdTKGh3YykgJiBQRVJGX0NQVU1fU0ZfRlJFUV9NT0RFKQogCiAjZW5kaWYgLyogX0FTTV9TMzkwX1BFUkZfRVZFTlRfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3BndGFibGUuaCBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggMGM0NjAwNy4uMzZjNTc4YyAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3BndGFibGUuaAorKysgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vcGd0YWJsZS5oCkBAIC0xNjgyLDEyICsxNjgyLDYgQEAgZXh0ZXJuIHZvaWQgczM5MF9yZXNldF9jbW1hKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKICNkZWZpbmUgSEFWRV9BUkNIX1VOTUFQUEVEX0FSRUEKICNkZWZpbmUgSEFWRV9BUkNIX1VOTUFQUEVEX0FSRUFfVE9QRE9XTgogCi0vKgotICogTm8gcGFnZSB0YWJsZSBjYWNoZXMgdG8gaW5pdGlhbGlzZQotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgcGd0YWJsZV9jYWNoZV9pbml0KHZvaWQpIHsgfQotc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX3BndF9jYWNoZSh2b2lkKSB7IH0KLQogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3BndGFibGUuaD4KIAogI2VuZGlmIC8qIF9TMzkwX1BBR0VfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vemNyeXB0LmggYi9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS96Y3J5cHQuaAppbmRleCA4YzU3NTVmLi5mOWU1ZTFmIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS96Y3J5cHQuaAorKysgYi9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS96Y3J5cHQuaApAQCAtNCw3ICs0LDcgQEAKICAqCiAgKiAgemNyeXB0IDIuMi4xICh1c2VyLXZpc2libGUgaGVhZGVyKQogICoKLSAqICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDEsIDIwMTgKKyAqICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDEsIDIwMTkKICAqICBBdXRob3Iocyk6IFJvYmVydCBCdXJyb3VnaHMKICAqCSAgICAgICBFcmljIFJvc3NtYW4gKGVkcm9zc21hQHVzLmlibS5jb20pCiAgKgpAQCAtMjg2LDcgKzI4Niw3IEBAIHN0cnVjdCB6Y3J5cHRfZGV2aWNlX21hdHJpeF9leHQgewogICoJIDB4MDg6IENFWDNBCiAgKgkgMHgwYTogQ0VYNAogICoJIDB4MGI6IENFWDUKLSAqCSAweDBjOiBDRVg2CisgKgkgMHgwYzogQ0VYNiBhbmQgQ0VYNwogICoJIDB4MGQ6IGRldmljZSBpcyBkaXNhYmxlZAogICoKICAqICAgWkNSWVBUX1FERVBUSF9NQVNLCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2tleGVjX2VsZi5jIGIvYXJjaC9zMzkwL2tlcm5lbC9rZXhlY19lbGYuYwppbmRleCA2ZDA2MzVjLi45ZGE2ZmEzIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL2tleGVjX2VsZi5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwva2V4ZWNfZWxmLmMKQEAgLTEzMCw3ICsxMzAsNyBAQCBzdGF0aWMgaW50IHMzOTBfZWxmX3Byb2JlKGNvbnN0IGNoYXIgKmJ1ZiwgdW5zaWduZWQgbG9uZyBsZW4pCiBjb25zdCBzdHJ1Y3Qga2V4ZWNfZmlsZV9vcHMgczM5MF9rZXhlY19lbGZfb3BzID0gewogCS5wcm9iZSA9IHMzOTBfZWxmX3Byb2JlLAogCS5sb2FkID0gczM5MF9lbGZfbG9hZCwKLSNpZmRlZiBDT05GSUdfS0VYRUNfVkVSSUZZX1NJRworI2lmZGVmIENPTkZJR19LRVhFQ19TSUcKIAkudmVyaWZ5X3NpZyA9IHMzOTBfdmVyaWZ5X3NpZywKLSNlbmRpZiAvKiBDT05GSUdfS0VYRUNfVkVSSUZZX1NJRyAqLworI2VuZGlmIC8qIENPTkZJR19LRVhFQ19TSUcgKi8KIH07CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2tleGVjX2ltYWdlLmMgYi9hcmNoL3MzOTAva2VybmVsL2tleGVjX2ltYWdlLmMKaW5kZXggNTgzMThiZi4uYWYyM2VmZiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9rZXhlY19pbWFnZS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwva2V4ZWNfaW1hZ2UuYwpAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgaW50IHMzOTBfaW1hZ2VfcHJvYmUoY29uc3QgY2hhciAqYnVmLCB1bnNpZ25lZCBsb25nIGxlbikKIGNvbnN0IHN0cnVjdCBrZXhlY19maWxlX29wcyBzMzkwX2tleGVjX2ltYWdlX29wcyA9IHsKIAkucHJvYmUgPSBzMzkwX2ltYWdlX3Byb2JlLAogCS5sb2FkID0gczM5MF9pbWFnZV9sb2FkLAotI2lmZGVmIENPTkZJR19LRVhFQ19WRVJJRllfU0lHCisjaWZkZWYgQ09ORklHX0tFWEVDX1NJRwogCS52ZXJpZnlfc2lnID0gczM5MF92ZXJpZnlfc2lnLAotI2VuZGlmIC8qIENPTkZJR19LRVhFQ19WRVJJRllfU0lHICovCisjZW5kaWYgLyogQ09ORklHX0tFWEVDX1NJRyAqLwogfTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvbWFjaGluZV9rZXhlY19maWxlLmMgYi9hcmNoL3MzOTAva2VybmVsL21hY2hpbmVfa2V4ZWNfZmlsZS5jCmluZGV4IGZiZGQzZWEuLjg0MTVhZTcgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvbWFjaGluZV9rZXhlY19maWxlLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjX2ZpbGUuYwpAQCAtMTAsNyArMTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2VsZi5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVfc2lnbmF0dXJlLmg+CiAjaW5jbHVkZSA8bGludXgvdmVyaWZpY2F0aW9uLmg+CiAjaW5jbHVkZSA8YXNtL2Jvb3RfZGF0YS5oPgogI2luY2x1ZGUgPGFzbS9pcGwuaD4KQEAgLTIyLDI5ICsyMiw3IEBAIGNvbnN0IHN0cnVjdCBrZXhlY19maWxlX29wcyAqIGNvbnN0IGtleGVjX2ZpbGVfbG9hZGVyc1tdID0gewogCU5VTEwsCiB9OwogCi0jaWZkZWYgQ09ORklHX0tFWEVDX1ZFUklGWV9TSUcKLS8qCi0gKiBNb2R1bGUgc2lnbmF0dXJlIGluZm9ybWF0aW9uIGJsb2NrLgotICoKLSAqIFRoZSBjb25zdGl0dWVudHMgb2YgdGhlIHNpZ25hdHVyZSBzZWN0aW9uIGFyZSwgaW4gb3JkZXI6Ci0gKgotICoJLSBTaWduZXIncyBuYW1lCi0gKgktIEtleSBpZGVudGlmaWVyCi0gKgktIFNpZ25hdHVyZSBkYXRhCi0gKgktIEluZm9ybWF0aW9uIGJsb2NrCi0gKi8KLXN0cnVjdCBtb2R1bGVfc2lnbmF0dXJlIHsKLQl1OAlhbGdvOwkJLyogUHVibGljLWtleSBjcnlwdG8gYWxnb3JpdGhtIFswXSAqLwotCXU4CWhhc2g7CQkvKiBEaWdlc3QgYWxnb3JpdGhtIFswXSAqLwotCXU4CWlkX3R5cGU7CS8qIEtleSBpZGVudGlmaWVyIHR5cGUgW1BLRVlfSURfUEtDUzddICovCi0JdTgJc2lnbmVyX2xlbjsJLyogTGVuZ3RoIG9mIHNpZ25lcidzIG5hbWUgWzBdICovCi0JdTgJa2V5X2lkX2xlbjsJLyogTGVuZ3RoIG9mIGtleSBpZGVudGlmaWVyIFswXSAqLwotCXU4CV9fcGFkWzNdOwotCV9fYmUzMglzaWdfbGVuOwkvKiBMZW5ndGggb2Ygc2lnbmF0dXJlIGRhdGEgKi8KLX07Ci0KLSNkZWZpbmUgUEtFWV9JRF9QS0NTNyAyCi0KKyNpZmRlZiBDT05GSUdfS0VYRUNfU0lHCiBpbnQgczM5MF92ZXJpZnlfc2lnKGNvbnN0IGNoYXIgKmtlcm5lbCwgdW5zaWduZWQgbG9uZyBrZXJuZWxfbGVuKQogewogCWNvbnN0IHVuc2lnbmVkIGxvbmcgbWFya2VyX2xlbiA9IHNpemVvZihNT0RVTEVfU0lHX1NUUklORykgLSAxOwpAQCAtOTAsNyArNjgsNyBAQCBpbnQgczM5MF92ZXJpZnlfc2lnKGNvbnN0IGNoYXIgKmtlcm5lbCwgdW5zaWduZWQgbG9uZyBrZXJuZWxfbGVuKQogCQkJCSAgICAgIFZFUklGWUlOR19NT0RVTEVfU0lHTkFUVVJFLAogCQkJCSAgICAgIE5VTEwsIE5VTEwpOwogfQotI2VuZGlmIC8qIENPTkZJR19LRVhFQ19WRVJJRllfU0lHICovCisjZW5kaWYgLyogQ09ORklHX0tFWEVDX1NJRyAqLwogCiBzdGF0aWMgaW50IGtleGVjX2ZpbGVfdXBkYXRlX3B1cmdhdG9yeShzdHJ1Y3Qga2ltYWdlICppbWFnZSwKIAkJCQkgICAgICAgc3RydWN0IHMzOTBfbG9hZF9kYXRhICpkYXRhKQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9wZXJmX2NwdW1fc2YuYyBiL2FyY2gvczM5MC9rZXJuZWwvcGVyZl9jcHVtX3NmLmMKaW5kZXggMjkyYTQ1Mi4uNTQ0YTAyZSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9wZXJmX2NwdW1fc2YuYworKysgYi9hcmNoL3MzOTAva2VybmVsL3BlcmZfY3B1bV9zZi5jCkBAIC02NzMsMTMgKzY3Myw4OSBAQCBzdGF0aWMgdm9pZCBjcHVtc2Zfb3V0cHV0X2V2ZW50X3BpZChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsCiAJcmN1X3JlYWRfdW5sb2NrKCk7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldHJhdGUoYm9vbCBmcmVxLCB1bnNpZ25lZCBsb25nIHNhbXBsZSwKKwkJCSAgICAgc3RydWN0IGh3c19xc2lfaW5mb19ibG9jayAqc2kpCit7CisJdW5zaWduZWQgbG9uZyByYXRlOworCisJaWYgKGZyZXEpIHsKKwkJcmF0ZSA9IGZyZXFfdG9fc2FtcGxlX3JhdGUoc2ksIHNhbXBsZSk7CisJCXJhdGUgPSBod19saW1pdF9yYXRlKHNpLCByYXRlKTsKKwl9IGVsc2UgeworCQkvKiBUaGUgbWluL21heCBzYW1wbGluZyByYXRlcyBzcGVjaWZpZXMgdGhlIHZhbGlkIHJhbmdlCisJCSAqIG9mIHNhbXBsZSBwZXJpb2RzLiAgSWYgdGhlIHNwZWNpZmllZCBzYW1wbGUgcGVyaW9kIGlzCisJCSAqIG91dCBvZiByYW5nZSwgbGltaXQgdGhlIHBlcmlvZCB0byB0aGUgcmFuZ2UgYm91bmRhcnkuCisJCSAqLworCQlyYXRlID0gaHdfbGltaXRfcmF0ZShzaSwgc2FtcGxlKTsKKworCQkvKiBUaGUgcGVyZiBjb3JlIG1haW50YWlucyBhIG1heGltdW0gc2FtcGxlIHJhdGUgdGhhdCBpcworCQkgKiBjb25maWd1cmFibGUgdGhyb3VnaCB0aGUgc3lzY3RsIGludGVyZmFjZS4gIEVuc3VyZSB0aGUKKwkJICogc2FtcGxpbmcgcmF0ZSBkb2VzIG5vdCBleGNlZWQgdGhpcyB2YWx1ZS4gIFRoaXMgYWxzbyBoZWxwcworCQkgKiB0byBhdm9pZCB0aHJvdHRsaW5nIHdoZW4gcHVzaGluZyBzYW1wbGVzIHdpdGgKKwkJICogcGVyZl9ldmVudF9vdmVyZmxvdygpLgorCQkgKi8KKwkJaWYgKHNhbXBsZV9yYXRlX3RvX2ZyZXEoc2ksIHJhdGUpID4KKwkJICAgIHN5c2N0bF9wZXJmX2V2ZW50X3NhbXBsZV9yYXRlKSB7CisJCQlkZWJ1Z19zcHJpbnRmX2V2ZW50KHNmZGJnLCAxLAorCQkJCQkgICAgIlNhbXBsaW5nIHJhdGUgZXhjZWVkcyBtYXhpbXVtICIKKwkJCQkJICAgICJwZXJmIHNhbXBsZSByYXRlXG4iKTsKKwkJCXJhdGUgPSAwOworCQl9CisJfQorCXJldHVybiByYXRlOworfQorCisvKiBUaGUgc2FtcGxpbmcgaW5mb3JtYXRpb24gKHNpKSBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUKKyAqIG1pbi9tYXggc2FtcGxpbmcgaW50ZXJ2YWxzIGFuZCB0aGUgQ1BVIHNwZWVkLiAgU28gY2FsY3VsYXRlIHRoZQorICogY29ycmVjdCBzYW1wbGluZyBpbnRlcnZhbCBhbmQgYXZvaWQgdGhlIHdob2xlIHBlcmlvZCBhZGp1c3QKKyAqIGZlZWRiYWNrIGxvb3AuCisgKgorICogU2luY2UgdGhlIENQVSBNZWFzdXJlbWVudCBzYW1wbGluZyBmYWNpbGl0eSBjYW4gbm90IGhhbmRsZSBmcmVxdWVuY3kKKyAqIGNhbGN1bGF0ZSB0aGUgc2FtcGxpbmcgaW50ZXJ2YWwgd2hlbiBmcmVxdWVuY3kgaXMgc3BlY2lmaWVkIHVzaW5nCisgKiB0aGlzIGZvcm11bGE6CisgKglpbnRlcnZhbCA6PSBjcHVfc3BlZWQgKiAxMDAwMDAwIC8gc2FtcGxlX2ZyZXEKKyAqCisgKiBSZXR1cm5zIGVycm5vIG9uIGJhZCBpbnB1dCBhbmQgemVybyBvbiBzdWNjZXNzIHdpdGggcGFyYW1ldGVyIGludGVydmFsCisgKiBzZXQgdG8gdGhlIGNvcnJlY3Qgc2FtcGxpbmcgcmF0ZS4KKyAqCisgKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIHR1cm5zIG9mZiBmcmVxIGJpdCB0byBhdm9pZCBjYWxsaW5nIGZ1bmN0aW9uCisgKiBwZXJmX2FkanVzdF9wZXJpb2QoKS4gVGhpcyBjYXVzZXMgZnJlcXVlbmN5IGFkanVzdG1lbnQgaW4gdGhlIGNvbW1vbgorICogY29kZSBwYXJ0IHdoaWNoIGNhdXNlcyB0cmVtZW5kb3VzIHZhcmlhdGlvbnMgaW4gdGhlIGNvdW50ZXIgdmFsdWVzLgorICovCitzdGF0aWMgaW50IF9faHdfcGVyZl9ldmVudF9pbml0X3JhdGUoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50LAorCQkJCSAgICAgc3RydWN0IGh3c19xc2lfaW5mb19ibG9jayAqc2kpCit7CisJc3RydWN0IHBlcmZfZXZlbnRfYXR0ciAqYXR0ciA9ICZldmVudC0+YXR0cjsKKwlzdHJ1Y3QgaHdfcGVyZl9ldmVudCAqaHdjID0gJmV2ZW50LT5odzsKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisKKwlpZiAoYXR0ci0+ZnJlcSkgeworCQlpZiAoIWF0dHItPnNhbXBsZV9mcmVxKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJCXJhdGUgPSBnZXRyYXRlKGF0dHItPmZyZXEsIGF0dHItPnNhbXBsZV9mcmVxLCBzaSk7CisJCWF0dHItPmZyZXEgPSAwOwkJLyogRG9uJ3QgY2FsbCAgcGVyZl9hZGp1c3RfcGVyaW9kKCkgKi8KKwkJU0FNUExfRkxBR1MoaHdjKSB8PSBQRVJGX0NQVU1fU0ZfRlJFUV9NT0RFOworCX0gZWxzZSB7CisJCXJhdGUgPSBnZXRyYXRlKGF0dHItPmZyZXEsIGF0dHItPnNhbXBsZV9wZXJpb2QsIHNpKTsKKwkJaWYgKCFyYXRlKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWF0dHItPnNhbXBsZV9wZXJpb2QgPSByYXRlOworCVNBTVBMX1JBVEUoaHdjKSA9IHJhdGU7CisJaHdfaW5pdF9wZXJpb2QoaHdjLCBTQU1QTF9SQVRFKGh3YykpOworCWRlYnVnX3NwcmludGZfZXZlbnQoc2ZkYmcsIDQsICJfX2h3X3BlcmZfZXZlbnRfaW5pdF9yYXRlOiIKKwkJCSAgICAiY3B1OiVkIHBlcmlvZDolbGx4IGZyZXE6JWQsJSNseFxuIiwgZXZlbnQtPmNwdSwKKwkJCSAgICBldmVudC0+YXR0ci5zYW1wbGVfcGVyaW9kLCBldmVudC0+YXR0ci5mcmVxLAorCQkJICAgIFNBTVBMRV9GUkVRX01PREUoaHdjKSk7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgX19od19wZXJmX2V2ZW50X2luaXQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogewogCXN0cnVjdCBjcHVfaHdfc2YgKmNwdWh3OwogCXN0cnVjdCBod3NfcXNpX2luZm9fYmxvY2sgc2k7CiAJc3RydWN0IHBlcmZfZXZlbnRfYXR0ciAqYXR0ciA9ICZldmVudC0+YXR0cjsKIAlzdHJ1Y3QgaHdfcGVyZl9ldmVudCAqaHdjID0gJmV2ZW50LT5odzsKLQl1bnNpZ25lZCBsb25nIHJhdGU7CiAJaW50IGNwdSwgZXJyOwogCiAJLyogUmVzZXJ2ZSBDUFUtbWVhc3VyZW1lbnQgc2FtcGxpbmcgZmFjaWxpdHkgKi8KQEAgLTc0NSw0MyArODIxLDkgQEAgc3RhdGljIGludCBfX2h3X3BlcmZfZXZlbnRfaW5pdChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJaWYgKGF0dHItPmNvbmZpZzEgJiBQRVJGX0NQVU1fU0ZfRlVMTF9CTE9DS1MpCiAJCVNBTVBMX0ZMQUdTKGh3YykgfD0gUEVSRl9DUFVNX1NGX0ZVTExfQkxPQ0tTOwogCi0JLyogVGhlIHNhbXBsaW5nIGluZm9ybWF0aW9uIChzaSkgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlCi0JICogbWluL21heCBzYW1wbGluZyBpbnRlcnZhbHMgYW5kIHRoZSBDUFUgc3BlZWQuICBTbyBjYWxjdWxhdGUgdGhlCi0JICogY29ycmVjdCBzYW1wbGluZyBpbnRlcnZhbCBhbmQgYXZvaWQgdGhlIHdob2xlIHBlcmlvZCBhZGp1c3QKLQkgKiBmZWVkYmFjayBsb29wLgotCSAqLwotCXJhdGUgPSAwOwotCWlmIChhdHRyLT5mcmVxKSB7Ci0JCWlmICghYXR0ci0+c2FtcGxlX2ZyZXEpIHsKLQkJCWVyciA9IC1FSU5WQUw7Ci0JCQlnb3RvIG91dDsKLQkJfQotCQlyYXRlID0gZnJlcV90b19zYW1wbGVfcmF0ZSgmc2ksIGF0dHItPnNhbXBsZV9mcmVxKTsKLQkJcmF0ZSA9IGh3X2xpbWl0X3JhdGUoJnNpLCByYXRlKTsKLQkJYXR0ci0+ZnJlcSA9IDA7Ci0JCWF0dHItPnNhbXBsZV9wZXJpb2QgPSByYXRlOwotCX0gZWxzZSB7Ci0JCS8qIFRoZSBtaW4vbWF4IHNhbXBsaW5nIHJhdGVzIHNwZWNpZmllcyB0aGUgdmFsaWQgcmFuZ2UKLQkJICogb2Ygc2FtcGxlIHBlcmlvZHMuICBJZiB0aGUgc3BlY2lmaWVkIHNhbXBsZSBwZXJpb2QgaXMKLQkJICogb3V0IG9mIHJhbmdlLCBsaW1pdCB0aGUgcGVyaW9kIHRvIHRoZSByYW5nZSBib3VuZGFyeS4KLQkJICovCi0JCXJhdGUgPSBod19saW1pdF9yYXRlKCZzaSwgaHdjLT5zYW1wbGVfcGVyaW9kKTsKLQotCQkvKiBUaGUgcGVyZiBjb3JlIG1haW50YWlucyBhIG1heGltdW0gc2FtcGxlIHJhdGUgdGhhdCBpcwotCQkgKiBjb25maWd1cmFibGUgdGhyb3VnaCB0aGUgc3lzY3RsIGludGVyZmFjZS4gIEVuc3VyZSB0aGUKLQkJICogc2FtcGxpbmcgcmF0ZSBkb2VzIG5vdCBleGNlZWQgdGhpcyB2YWx1ZS4gIFRoaXMgYWxzbyBoZWxwcwotCQkgKiB0byBhdm9pZCB0aHJvdHRsaW5nIHdoZW4gcHVzaGluZyBzYW1wbGVzIHdpdGgKLQkJICogcGVyZl9ldmVudF9vdmVyZmxvdygpLgotCQkgKi8KLQkJaWYgKHNhbXBsZV9yYXRlX3RvX2ZyZXEoJnNpLCByYXRlKSA+Ci0JCSAgICAgIHN5c2N0bF9wZXJmX2V2ZW50X3NhbXBsZV9yYXRlKSB7Ci0JCQllcnIgPSAtRUlOVkFMOwotCQkJZGVidWdfc3ByaW50Zl9ldmVudChzZmRiZywgMSwgIlNhbXBsaW5nIHJhdGUgZXhjZWVkcyBtYXhpbXVtIHBlcmYgc2FtcGxlIHJhdGVcbiIpOwotCQkJZ290byBvdXQ7Ci0JCX0KLQl9Ci0JU0FNUExfUkFURShod2MpID0gcmF0ZTsKLQlod19pbml0X3BlcmlvZChod2MsIFNBTVBMX1JBVEUoaHdjKSk7CisJZXJyID0gIF9faHdfcGVyZl9ldmVudF9pbml0X3JhdGUoZXZlbnQsICZzaSk7CisJaWYgKGVycikKKwkJZ290byBvdXQ7CiAKIAkvKiBJbml0aWFsaXplIHNhbXBsZSBkYXRhIG92ZXJmbG93IGFjY291bnRpbmcgKi8KIAlod2MtPmV4dHJhX3JlZy5yZWcgPSBSRUdfT1ZFUkZMT1c7CkBAIC05MDQsNiArOTQ2LDggQEAgc3RhdGljIHZvaWQgY3B1bXNmX3BtdV9lbmFibGUoc3RydWN0IHBtdSAqcG11KQogCQkJaWYgKHNmYl9oYXNfcGVuZGluZ19hbGxvY3MoJmNwdWh3LT5zZmIsIGh3YykpCiAJCQkJZXh0ZW5kX3NhbXBsaW5nX2J1ZmZlcigmY3B1aHctPnNmYiwgaHdjKTsKIAkJfQorCQkvKiBSYXRlIG1heSBiZSBhZGp1c3RlZCB3aXRoIGlvY3RsKCkgKi8KKwkJY3B1aHctPmxzY3RsLmludGVydmFsID0gU0FNUExfUkFURSgmY3B1aHctPmV2ZW50LT5odyk7CiAJfQogCiAJLyogKFJlKWVuYWJsZSB0aGUgUE1VIGFuZCBzYW1wbGluZyBmYWNpbGl0eSAqLwpAQCAtOTIyLDggKzk2Niw5IEBAIHN0YXRpYyB2b2lkIGNwdW1zZl9wbXVfZW5hYmxlKHN0cnVjdCBwbXUgKnBtdSkKIAlscHAoJlMzOTBfbG93Y29yZS5scHApOwogCiAJZGVidWdfc3ByaW50Zl9ldmVudChzZmRiZywgNiwgInBtdV9lbmFibGU6IGVzPSVpIGNzPSVpIGVkPSVpIGNkPSVpICIKLQkJCSAgICAidGVhcj0lcCBkZWFyPSVwXG4iLCBjcHVody0+bHNjdGwuZXMsCi0JCQkgICAgY3B1aHctPmxzY3RsLmNzLCBjcHVody0+bHNjdGwuZWQsIGNwdWh3LT5sc2N0bC5jZCwKKwkJCSAgICAiaW50ZXJ2YWw6JWx4IHRlYXI9JXAgZGVhcj0lcFxuIiwKKwkJCSAgICBjcHVody0+bHNjdGwuZXMsIGNwdWh3LT5sc2N0bC5jcywgY3B1aHctPmxzY3RsLmVkLAorCQkJICAgIGNwdWh3LT5sc2N0bC5jZCwgY3B1aHctPmxzY3RsLmludGVydmFsLAogCQkJICAgICh2b2lkICopIGNwdWh3LT5sc2N0bC50ZWFyLAogCQkJICAgICh2b2lkICopIGNwdWh3LT5sc2N0bC5kZWFyKTsKIH0KQEAgLTE3MTcsNiArMTc2Miw0NCBAQCBzdGF0aWMgdm9pZCBjcHVtc2ZfcG11X3JlYWQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCS8qIE5vdGhpbmcgdG8gZG8gLi4uIHVwZGF0ZXMgYXJlIGludGVycnVwdC1kcml2ZW4gKi8KIH0KIAorLyogQ2hlY2sgaWYgdGhlIG5ldyBzYW1wbGluZyBwZXJpb2QvZnJlcWV1bmN5IGlzIGFwcHJvcHJpYXRlLgorICoKKyAqIFJldHVybiBub24temVybyBvbiBlcnJvciBhbmQgemVybyBvbiBwYXNzZWQgY2hlY2tzLgorICovCitzdGF0aWMgaW50IGNwdW1zZl9wbXVfY2hlY2tfcGVyaW9kKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCwgdTY0IHZhbHVlKQoreworCXN0cnVjdCBod3NfcXNpX2luZm9fYmxvY2sgc2k7CisJdW5zaWduZWQgbG9uZyByYXRlOworCWJvb2wgZG9fZnJlcTsKKworCW1lbXNldCgmc2ksIDAsIHNpemVvZihzaSkpOworCWlmIChldmVudC0+Y3B1ID09IC0xKSB7CisJCWlmIChxc2koJnNpKSkKKwkJCXJldHVybiAtRU5PREVWOworCX0gZWxzZSB7CisJCS8qIEV2ZW50IGlzIHBpbm5lZCB0byBhIHBhcnRpY3VsYXIgQ1BVLCByZXRyaWV2ZSB0aGUgcGVyLUNQVQorCQkgKiBzYW1wbGluZyBzdHJ1Y3R1cmUgZm9yIGFjY2Vzc2luZyB0aGUgQ1BVLXNwZWNpZmljIFFTSS4KKwkJICovCisJCXN0cnVjdCBjcHVfaHdfc2YgKmNwdWh3ID0gJnBlcl9jcHUoY3B1X2h3X3NmLCBldmVudC0+Y3B1KTsKKworCQlzaSA9IGNwdWh3LT5xc2k7CisJfQorCisJZG9fZnJlcSA9ICEhU0FNUExFX0ZSRVFfTU9ERSgmZXZlbnQtPmh3KTsKKwlyYXRlID0gZ2V0cmF0ZShkb19mcmVxLCB2YWx1ZSwgJnNpKTsKKwlpZiAoIXJhdGUpCisJCXJldHVybiAtRUlOVkFMOworCisJZXZlbnQtPmF0dHIuc2FtcGxlX3BlcmlvZCA9IHJhdGU7CisJU0FNUExfUkFURSgmZXZlbnQtPmh3KSA9IHJhdGU7CisJaHdfaW5pdF9wZXJpb2QoJmV2ZW50LT5odywgU0FNUExfUkFURSgmZXZlbnQtPmh3KSk7CisJZGVidWdfc3ByaW50Zl9ldmVudChzZmRiZywgNCwgImNwdW1zZl9wbXVfY2hlY2tfcGVyaW9kOiIKKwkJCSAgICAiY3B1OiVkIHZhbHVlOiVsbHggcGVyaW9kOiVsbHggZnJlcTolZFxuIiwKKwkJCSAgICBldmVudC0+Y3B1LCB2YWx1ZSwKKwkJCSAgICBldmVudC0+YXR0ci5zYW1wbGVfcGVyaW9kLCBkb19mcmVxKTsKKwlyZXR1cm4gMDsKK30KKwogLyogQWN0aXZhdGUgc2FtcGxpbmcgY29udHJvbC4KICAqIE5leHQgY2FsbCBvZiBwbXVfZW5hYmxlKCkgc3RhcnRzIHNhbXBsaW5nLgogICovCkBAIC0xOTA4LDYgKzE5OTEsOCBAQCBzdGF0aWMgc3RydWN0IHBtdSBjcHVtZl9zYW1wbGluZyA9IHsKIAogCS5zZXR1cF9hdXggICAgPSBhdXhfYnVmZmVyX3NldHVwLAogCS5mcmVlX2F1eCAgICAgPSBhdXhfYnVmZmVyX2ZyZWUsCisKKwkuY2hlY2tfcGVyaW9kID0gY3B1bXNmX3BtdV9jaGVja19wZXJpb2QsCiB9OwogCiBzdGF0aWMgdm9pZCBjcHVtZl9tZWFzdXJlbWVudF9hbGVydChzdHJ1Y3QgZXh0X2NvZGUgZXh0X2NvZGUsCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3RvcG9sb2d5LmMgYi9hcmNoL3MzOTAva2VybmVsL3RvcG9sb2d5LmMKaW5kZXggMmRiNmZiNC4uMzYyNzk1MyAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuYwpAQCAtMzExLDcgKzMxMSw4IEBAIGludCBhcmNoX3VwZGF0ZV9jcHVfdG9wb2xvZ3kodm9pZCkKIAlvbl9lYWNoX2NwdShfX2FyY2hfdXBkYXRlX2RlZGljYXRlZF9mbGFnLCBOVUxMLCAwKTsKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgewogCQlkZXYgPSBnZXRfY3B1X2RldmljZShjcHUpOwotCQlrb2JqZWN0X3VldmVudCgmZGV2LT5rb2JqLCBLT0JKX0NIQU5HRSk7CisJCWlmIChkZXYpCisJCQlrb2JqZWN0X3VldmVudCgmZGV2LT5rb2JqLCBLT0JKX0NIQU5HRSk7CiAJfQogCXJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9nbWFwLmMgYi9hcmNoL3MzOTAvbW0vZ21hcC5jCmluZGV4IGNkOGUwM2YuLmVkY2RjYTkgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9tbS9nbWFwLmMKKysrIGIvYXJjaC9zMzkwL21tL2dtYXAuYwpAQCAtOSw3ICs5LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wYWdld2Fsay5oPgogI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgpAQCAtMjUyMSwxMyArMjUyMSw5IEBAIHN0YXRpYyBpbnQgX196YXBfemVyb19wYWdlcyhwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgemFwX3plcm9fcGFnZXMoc3RydWN0IG1tX3N0cnVjdCAqbW0pCi17Ci0Jc3RydWN0IG1tX3dhbGsgd2FsayA9IHsgLnBtZF9lbnRyeSA9IF9femFwX3plcm9fcGFnZXMgfTsKLQotCXdhbGsubW0gPSBtbTsKLQl3YWxrX3BhZ2VfcmFuZ2UoMCwgVEFTS19TSVpFLCAmd2Fsayk7Ci19CitzdGF0aWMgY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzIHphcF96ZXJvX3dhbGtfb3BzID0geworCS5wbWRfZW50cnkJPSBfX3phcF96ZXJvX3BhZ2VzLAorfTsKIAogLyoKICAqIHN3aXRjaCBvbiBwZ3N0ZXMgZm9yIGl0cyB1c2Vyc3BhY2UgcHJvY2VzcyAoZm9yIGt2bSkKQEAgLTI1NDYsNyArMjU0Miw3IEBAIGludCBzMzkwX2VuYWJsZV9zaWUodm9pZCkKIAltbS0+Y29udGV4dC5oYXNfcGdzdGUgPSAxOwogCS8qIHNwbGl0IHRocCBtYXBwaW5ncyBhbmQgZGlzYWJsZSB0aHAgZm9yIGZ1dHVyZSBtYXBwaW5ncyAqLwogCXRocF9zcGxpdF9tbShtbSk7Ci0JemFwX3plcm9fcGFnZXMobW0pOworCXdhbGtfcGFnZV9yYW5nZShtbSwgMCwgVEFTS19TSVpFLCAmemFwX3plcm9fd2Fsa19vcHMsIE5VTEwpOwogCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOwogCXJldHVybiAwOwogfQpAQCAtMjU4OSwxMiArMjU4NSwxMyBAQCBzdGF0aWMgaW50IF9fczM5MF9lbmFibGVfc2tleV9odWdldGxiKHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBlbmFibGVfc2tleV93YWxrX29wcyA9IHsKKwkuaHVnZXRsYl9lbnRyeQkJPSBfX3MzOTBfZW5hYmxlX3NrZXlfaHVnZXRsYiwKKwkucHRlX2VudHJ5CQk9IF9fczM5MF9lbmFibGVfc2tleV9wdGUsCit9OworCiBpbnQgczM5MF9lbmFibGVfc2tleSh2b2lkKQogewotCXN0cnVjdCBtbV93YWxrIHdhbGsgPSB7Ci0JCS5odWdldGxiX2VudHJ5ID0gX19zMzkwX2VuYWJsZV9za2V5X2h1Z2V0bGIsCi0JCS5wdGVfZW50cnkgPSBfX3MzOTBfZW5hYmxlX3NrZXlfcHRlLAotCX07CiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBjdXJyZW50LT5tbTsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKIAlpbnQgcmMgPSAwOwpAQCAtMjYxNCw4ICsyNjExLDcgQEAgaW50IHMzOTBfZW5hYmxlX3NrZXkodm9pZCkKIAl9CiAJbW0tPmRlZl9mbGFncyAmPSB+Vk1fTUVSR0VBQkxFOwogCi0Jd2Fsay5tbSA9IG1tOwotCXdhbGtfcGFnZV9yYW5nZSgwLCBUQVNLX1NJWkUsICZ3YWxrKTsKKwl3YWxrX3BhZ2VfcmFuZ2UobW0sIDAsIFRBU0tfU0laRSwgJmVuYWJsZV9za2V5X3dhbGtfb3BzLCBOVUxMKTsKIAogb3V0X3VwOgogCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOwpAQCAtMjYzMywxMyArMjYyOSwxNCBAQCBzdGF0aWMgaW50IF9fczM5MF9yZXNldF9jbW1hKHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyByZXNldF9jbW1hX3dhbGtfb3BzID0geworCS5wdGVfZW50cnkJCT0gX19zMzkwX3Jlc2V0X2NtbWEsCit9OworCiB2b2lkIHMzOTBfcmVzZXRfY21tYShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIHsKLQlzdHJ1Y3QgbW1fd2FsayB3YWxrID0geyAucHRlX2VudHJ5ID0gX19zMzkwX3Jlc2V0X2NtbWEgfTsKLQogCWRvd25fd3JpdGUoJm1tLT5tbWFwX3NlbSk7Ci0Jd2Fsay5tbSA9IG1tOwotCXdhbGtfcGFnZV9yYW5nZSgwLCBUQVNLX1NJWkUsICZ3YWxrKTsKKwl3YWxrX3BhZ2VfcmFuZ2UobW0sIDAsIFRBU0tfU0laRSwgJnJlc2V0X2NtbWFfd2Fsa19vcHMsIE5VTEwpOwogCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoczM5MF9yZXNldF9jbW1hKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9pbml0LmMgYi9hcmNoL3MzOTAvbW0vaW5pdC5jCmluZGV4IDIwMzQwYTAuLmExMjRmMTkgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9tbS9pbml0LmMKKysrIGIvYXJjaC9zMzkwL21tL2luaXQuYwpAQCAtMTU2LDE0ICsxNTYsOSBAQCBpbnQgc2V0X21lbW9yeV9kZWNyeXB0ZWQodW5zaWduZWQgbG9uZyBhZGRyLCBpbnQgbnVtcGFnZXMpCiB9CiAKIC8qIGFyZSB3ZSBhIHByb3RlY3RlZCB2aXJ0dWFsaXphdGlvbiBndWVzdD8gKi8KLWJvb2wgc2V2X2FjdGl2ZSh2b2lkKQotewotCXJldHVybiBpc19wcm90X3ZpcnRfZ3Vlc3QoKTsKLX0KLQogYm9vbCBmb3JjZV9kbWFfdW5lbmNyeXB0ZWQoc3RydWN0IGRldmljZSAqZGV2KQogewotCXJldHVybiBzZXZfYWN0aXZlKCk7CisJcmV0dXJuIGlzX3Byb3RfdmlydF9ndWVzdCgpOwogfQogCiAvKiBwcm90ZWN0ZWQgdmlydHVhbGl6YXRpb24gKi8KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9wZ2FsbG9jLmMgYi9hcmNoL3MzOTAvbW0vcGdhbGxvYy5jCmluZGV4IDU0ZmNkZjYuLjNkZDI1M2YgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9tbS9wZ2FsbG9jLmMKKysrIGIvYXJjaC9zMzkwL21tL3BnYWxsb2MuYwpAQCAtMjEwLDcgKzIxMCw3IEBAIHVuc2lnbmVkIGxvbmcgKnBhZ2VfdGFibGVfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCiAJcGFnZSA9IGFsbG9jX3BhZ2UoR0ZQX0tFUk5FTCk7CiAJaWYgKCFwYWdlKQogCQlyZXR1cm4gTlVMTDsKLQlpZiAoIXBndGFibGVfcGFnZV9jdG9yKHBhZ2UpKSB7CisJaWYgKCFwZ3RhYmxlX3B0ZV9wYWdlX2N0b3IocGFnZSkpIHsKIAkJX19mcmVlX3BhZ2UocGFnZSk7CiAJCXJldHVybiBOVUxMOwogCX0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIHBhZ2VfdGFibGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyAqdGFibGUpCiAJCWF0b21pY194b3JfYml0cygmcGFnZS0+X3JlZmNvdW50LCAzVSA8PCAyNCk7CiAJfQogCi0JcGd0YWJsZV9wYWdlX2R0b3IocGFnZSk7CisJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHBhZ2UpOwogCV9fZnJlZV9wYWdlKHBhZ2UpOwogfQogCkBAIC0zMDgsNyArMzA4LDcgQEAgdm9pZCBfX3RsYl9yZW1vdmVfdGFibGUodm9pZCAqX3RhYmxlKQogCWNhc2UgMzoJCS8qIDRLIHBhZ2UgdGFibGUgd2l0aCBwZ3N0ZXMgKi8KIAkJaWYgKG1hc2sgJiAzKQogCQkJYXRvbWljX3hvcl9iaXRzKCZwYWdlLT5fcmVmY291bnQsIDMgPDwgMjQpOwotCQlwZ3RhYmxlX3BhZ2VfZHRvcihwYWdlKTsKKwkJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHBhZ2UpOwogCQlfX2ZyZWVfcGFnZShwYWdlKTsKIAkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL3BjaS9wY2lfZG1hLmMgYi9hcmNoL3MzOTAvcGNpL3BjaV9kbWEuYwppbmRleCBmYjJjN2RiLi42NGIxMzk5IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvcGNpL3BjaV9kbWEuYworKysgYi9hcmNoL3MzOTAvcGNpL3BjaV9kbWEuYwpAQCAtNjY4LDYgKzY2OCw4IEBAIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBzMzkwX3BjaV9kbWFfb3BzID0gewogCS51bm1hcF9zZwk9IHMzOTBfZG1hX3VubWFwX3NnLAogCS5tYXBfcGFnZQk9IHMzOTBfZG1hX21hcF9wYWdlcywKIAkudW5tYXBfcGFnZQk9IHMzOTBfZG1hX3VubWFwX3BhZ2VzLAorCS5tbWFwCQk9IGRtYV9jb21tb25fbW1hcCwKKwkuZ2V0X3NndGFibGUJPSBkbWFfY29tbW9uX2dldF9zZ3RhYmxlLAogCS8qIGRtYV9zdXBwb3J0ZWQgaXMgdW5jb25kaXRpb25hbGx5IHRydWUgd2l0aG91dCBhIGNhbGxiYWNrICovCiB9OwogRVhQT1JUX1NZTUJPTF9HUEwoczM5MF9wY2lfZG1hX29wcyk7CmRpZmYgLS1naXQgYS9hcmNoL3NoL0tjb25maWcgYi9hcmNoL3NoL0tjb25maWcKaW5kZXggNmIxYjU5NC4uZjM1NmVlNiAxMDA2NDQKLS0tIGEvYXJjaC9zaC9LY29uZmlnCisrKyBiL2FyY2gvc2gvS2NvbmZpZwpAQCAtNSw3ICs1LDYgQEAKIAlzZWxlY3QgQVJDSF9IQVNfUFRFX1NQRUNJQUwKIAlzZWxlY3QgQVJDSF9IQVNfVElDS19CUk9BRENBU1QgaWYgR0VORVJJQ19DTE9DS0VWRU5UU19CUk9BRENBU1QKIAlzZWxlY3QgQVJDSF9NSUdIVF9IQVZFX1BDX1BBUlBPUlQKLQlzZWxlY3QgQVJDSF9OT19DT0hFUkVOVF9ETUFfTU1BUCBpZiAhTU1VCiAJc2VsZWN0IEhBVkVfUEFUQV9QTEFURk9STQogCXNlbGVjdCBDTEtERVZfTE9PS1VQCiAJc2VsZWN0IERNQV9ERUNMQVJFX0NPSEVSRU5UCmRpZmYgLS1naXQgYS9hcmNoL3NoL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCBiL2FyY2gvc2gvaW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IGI1NmY5MDguLjIyZDk2OGIgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvc2gvaW5jbHVkZS9hc20vcGdhbGxvYy5oCkBAIC0yLDEwICsyLDggQEAKICNpZm5kZWYgX19BU01fU0hfUEdBTExPQ19ICiAjZGVmaW5lIF9fQVNNX1NIX1BHQUxMT0NfSAogCi0jaW5jbHVkZSA8bGludXgvcXVpY2tsaXN0Lmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLQotI2RlZmluZSBRVUlDS19QVCAwCS8qIE90aGVyIHBhZ2UgdGFibGUgcGFnZXMgdGhhdCBhcmUgemVybyBvbiBmcmVlICovCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGdhbGxvYy5oPgogCiBleHRlcm4gcGdkX3QgKnBnZF9hbGxvYyhzdHJ1Y3QgbW1fc3RydWN0ICopOwogZXh0ZXJuIHZvaWQgcGdkX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpOwpAQCAtMjksNDQgKzI3LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHBtZF9wb3B1bGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcG1kX3QgKnBtZCwKIH0KICNkZWZpbmUgcG1kX3BndGFibGUocG1kKSBwbWRfcGFnZShwbWQpCiAKLS8qCi0gKiBBbGxvY2F0ZSBhbmQgZnJlZSBwYWdlIHRhYmxlcy4KLSAqLwotc3RhdGljIGlubGluZSBwdGVfdCAqcHRlX2FsbG9jX29uZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0pCi17Ci0JcmV0dXJuIHF1aWNrbGlzdF9hbGxvYyhRVUlDS19QVCwgR0ZQX0tFUk5FTCwgTlVMTCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGd0YWJsZV90IHB0ZV9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0pCi17Ci0Jc3RydWN0IHBhZ2UgKnBhZ2U7Ci0Jdm9pZCAqcGc7Ci0KLQlwZyA9IHF1aWNrbGlzdF9hbGxvYyhRVUlDS19QVCwgR0ZQX0tFUk5FTCwgTlVMTCk7Ci0JaWYgKCFwZykKLQkJcmV0dXJuIE5VTEw7Ci0JcGFnZSA9IHZpcnRfdG9fcGFnZShwZyk7Ci0JaWYgKCFwZ3RhYmxlX3BhZ2VfY3RvcihwYWdlKSkgewotCQlxdWlja2xpc3RfZnJlZShRVUlDS19QVCwgTlVMTCwgcGcpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0JcmV0dXJuIHBhZ2U7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHB0ZV90ICpwdGUpCi17Ci0JcXVpY2tsaXN0X2ZyZWUoUVVJQ0tfUFQsIE5VTEwsIHB0ZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGd0YWJsZV90IHB0ZSkKLXsKLQlwZ3RhYmxlX3BhZ2VfZHRvcihwdGUpOwotCXF1aWNrbGlzdF9mcmVlX3BhZ2UoUVVJQ0tfUFQsIE5VTEwsIHB0ZSk7Ci19Ci0KICNkZWZpbmUgX19wdGVfZnJlZV90bGIodGxiLHB0ZSxhZGRyKQkJCVwKIGRvIHsJCQkJCQkJXAotCXBndGFibGVfcGFnZV9kdG9yKHB0ZSk7CQkJCVwKKwlwZ3RhYmxlX3B0ZV9wYWdlX2R0b3IocHRlKTsJCQlcCiAJdGxiX3JlbW92ZV9wYWdlKCh0bGIpLCAocHRlKSk7CQkJXAogfSB3aGlsZSAoMCkKIApAQCAtNzksOSArNDIsNCBAQCBkbyB7CQkJCQkJCVwKIH0gd2hpbGUgKDApOwogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19wZ3RfY2FjaGUodm9pZCkKLXsKLQlxdWlja2xpc3RfdHJpbShRVUlDS19QVCwgTlVMTCwgMjUsIDE2KTsKLX0KLQogI2VuZGlmIC8qIF9fQVNNX1NIX1BHQUxMT0NfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL3NoL2luY2x1ZGUvYXNtL3BndGFibGUuaAppbmRleCA5MDg1ZDExLi5jYmQwZjNjIDEwMDY0NAotLS0gYS9hcmNoL3NoL2luY2x1ZGUvYXNtL3BndGFibGUuaAorKysgYi9hcmNoL3NoL2luY2x1ZGUvYXNtL3BndGFibGUuaApAQCAtMTIzLDExICsxMjMsNiBAQCB0eXBlZGVmIHB0ZV90ICpwdGVfYWRkcl90OwogCiAjZGVmaW5lIHB0ZV9wZm4oeCkJCSgodW5zaWduZWQgbG9uZykoKCh4KS5wdGVfbG93ID4+IFBBR0VfU0hJRlQpKSkKIAotLyoKLSAqIEluaXRpYWxpc2UgdGhlIHBhZ2UgdGFibGUgY2FjaGVzCi0gKi8KLWV4dGVybiB2b2lkIHBndGFibGVfY2FjaGVfaW5pdCh2b2lkKTsKLQogc3RydWN0IHZtX2FyZWFfc3RydWN0Owogc3RydWN0IG1tX3N0cnVjdDsKIApkaWZmIC0tZ2l0IGEvYXJjaC9zaC9tbS9LY29uZmlnIGIvYXJjaC9zaC9tbS9LY29uZmlnCmluZGV4IDAyZWQyZGYuLjVjOGEyZWIgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvbW0vS2NvbmZpZworKysgYi9hcmNoL3NoL21tL0tjb25maWcKQEAgLTEsOSArMSw2IEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiBtZW51ICJNZW1vcnkgbWFuYWdlbWVudCBvcHRpb25zIgogCi1jb25maWcgUVVJQ0tMSVNUCi0JZGVmX2Jvb2wgeQotCiBjb25maWcgTU1VCiAgICAgICAgIGJvb2wgIlN1cHBvcnQgZm9yIG1lbW9yeSBtYW5hZ2VtZW50IGhhcmR3YXJlIgogCWRlcGVuZHMgb24gIUNQVV9TSDIKZGlmZiAtLWdpdCBhL2FyY2gvc2gvbW0vbm9tbXUuYyBiL2FyY2gvc2gvbW0vbm9tbXUuYwppbmRleCBjYzc3OWE5Li5kY2E5NDZmIDEwMDY0NAotLS0gYS9hcmNoL3NoL21tL25vbW11LmMKKysrIGIvYXJjaC9zaC9tbS9ub21tdS5jCkBAIC05Nyw3ICs5NywzIEBAIHZvaWQgX19pbml0IHBhZ2VfdGFibGVfcmFuZ2VfaW5pdCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKIHZvaWQgX19zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBwcm90KQogewogfQotCi12b2lkIHBndGFibGVfY2FjaGVfaW5pdCh2b2lkKQotewotfQpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9LY29uZmlnIGIvYXJjaC9zcGFyYy9LY29uZmlnCmluZGV4IDc5MjZhMmUuLmZiYzFhZWMgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvS2NvbmZpZworKysgYi9hcmNoL3NwYXJjL0tjb25maWcKQEAgLTE3LDYgKzE3LDcgQEAKIAlzZWxlY3QgQVJDSF9NSUdIVF9IQVZFX1BDX1NFUklPCiAJc2VsZWN0IE9GCiAJc2VsZWN0IE9GX1BST01UUkVFCisJc2VsZWN0IEhBVkVfQVNNX01PRFZFUlNJT05TCiAJc2VsZWN0IEhBVkVfSURFCiAJc2VsZWN0IEhBVkVfT1BST0ZJTEUKIAlzZWxlY3QgSEFWRV9BUkNIX0tHREIgaWYgIVNNUCB8fCBTUEFSQzY0CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BjaS5oIGIvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9wY2kuaAppbmRleCBjZmVjNzliLi40ZGVkZGY0IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BjaS5oCisrKyBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vcGNpLmgKQEAgLTM4LDggKzM4LDYgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpX3Byb2NfZG9tYWluKHN0cnVjdCBwY2lfYnVzICpidXMpCiAjZGVmaW5lIGFyY2hfY2FuX3BjaV9tbWFwX2lvKCkJMQogI2RlZmluZSBIQVZFX0FSQ0hfUENJX0dFVF9VTk1BUFBFRF9BUkVBCiAjZGVmaW5lIGdldF9wY2lfdW5tYXBwZWRfYXJlYSBnZXRfZmJfdW5tYXBwZWRfYXJlYQotCi0jZGVmaW5lIEhBVkVfQVJDSF9QQ0lfUkVTT1VSQ0VfVE9fVVNFUgogI2VuZGlmIC8qIENPTkZJR19TUEFSQzY0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19TUEFSQzY0KSB8fCBkZWZpbmVkKENPTkZJR19MRU9OX1BDSSkKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vcGdhbGxvY18zMi5oIGIvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9wZ2FsbG9jXzMyLmgKaW5kZXggMjgyYmU1MC4uMTA1MzhhNCAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9wZ2FsbG9jXzMyLmgKKysrIGIvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9wZ2FsbG9jXzMyLmgKQEAgLTE3LDggKzE3LDYgQEAgdm9pZCBzcm1tdV9mcmVlX25vY2FjaGUodm9pZCAqYWRkciwgaW50IHNpemUpOwogCiBleHRlcm4gc3RydWN0IHJlc291cmNlIHNwYXJjX2lvbWFwOwogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpCWRvIHsgfSB3aGlsZSAoMCkKLQogcGdkX3QgKmdldF9wZ2RfZmFzdCh2b2lkKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBmcmVlX3BnZF9mYXN0KHBnZF90ICpwZ2QpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BnYWxsb2NfNjQuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vcGdhbGxvY182NC5oCmluZGV4IDQ4YWJjY2IuLjlkM2U1Y2MgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vcGdhbGxvY182NC5oCisrKyBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vcGdhbGxvY182NC5oCkBAIC02OSw4ICs2OSw2IEBAIHZvaWQgcHRlX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBndGFibGVfdCBwdGVwYWdlKTsKICNkZWZpbmUgcG1kX3BvcHVsYXRlKE1NLCBQTUQsIFBURSkJCXBtZF9zZXQoTU0sIFBNRCwgUFRFKQogI2RlZmluZSBwbWRfcGd0YWJsZShQTUQpCQkJKChwdGVfdCAqKV9fcG1kX3BhZ2UoUE1EKSkKIAotI2RlZmluZSBjaGVja19wZ3RfY2FjaGUoKQlkbyB7IH0gd2hpbGUgKDApCi0KIHZvaWQgcGd0YWJsZV9mcmVlKHZvaWQgKnRhYmxlLCBib29sIGlzX3BhZ2UpOwogCiAjaWZkZWYgQ09ORklHX1NNUApkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9wZ3RhYmxlXzMyLmggYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BndGFibGVfMzIuaAppbmRleCA0ZWViZWQ2Li4zMWRhNDQ4IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BndGFibGVfMzIuaAorKysgYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BndGFibGVfMzIuaApAQCAtNDQ1LDkgKzQ0NSw0IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlvX3JlbWFwX3Bmbl9yYW5nZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIC8qIFdlIHByb3ZpZGUgb3VyIG93biBnZXRfdW5tYXBwZWRfYXJlYSB0byBjb3BlIHdpdGggVkEgaG9sZXMgZm9yIHVzZXJsYW5kICovCiAjZGVmaW5lIEhBVkVfQVJDSF9VTk1BUFBFRF9BUkVBCiAKLS8qCi0gKiBObyBwYWdlIHRhYmxlIGNhY2hlcyB0byBpbml0aWFsaXNlCi0gKi8KLSNkZWZpbmUgcGd0YWJsZV9jYWNoZV9pbml0KCkJZG8geyB9IHdoaWxlICgwKQotCiAjZW5kaWYgLyogIShfU1BBUkNfUEdUQUJMRV9IKSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmggYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BndGFibGVfNjQuaAppbmRleCAxNTk5ZGU3Li42YWU4MDE2IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BndGFibGVfNjQuaAorKysgYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BndGFibGVfNjQuaApAQCAtMTA3OCw3ICsxMDc4LDcgQEAgc3RhdGljIGlubGluZSBpbnQgaW9fcmVtYXBfcGZuX3JhbmdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogfQogI2RlZmluZSBpb19yZW1hcF9wZm5fcmFuZ2UgaW9fcmVtYXBfcGZuX3JhbmdlIAogCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdW50YWdnZWRfYWRkcih1bnNpZ25lZCBsb25nIHN0YXJ0KQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIF9fdW50YWdnZWRfYWRkcih1bnNpZ25lZCBsb25nIHN0YXJ0KQogewogCWlmIChhZGlfY2FwYWJsZSgpKSB7CiAJCWxvbmcgYWRkciA9IHN0YXJ0OwpAQCAtMTA5OCw3ICsxMDk4LDggQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHVudGFnZ2VkX2FkZHIodW5zaWduZWQgbG9uZyBzdGFydCkKIAogCXJldHVybiBzdGFydDsKIH0KLSNkZWZpbmUgdW50YWdnZWRfYWRkciB1bnRhZ2dlZF9hZGRyCisjZGVmaW5lIHVudGFnZ2VkX2FkZHIoYWRkcikgXAorCSgoX190eXBlb2ZfXyhhZGRyKSkoX191bnRhZ2dlZF9hZGRyKCh1bnNpZ25lZCBsb25nKShhZGRyKSkpKQogCiBzdGF0aWMgaW5saW5lIGJvb2wgcHRlX2FjY2Vzc19wZXJtaXR0ZWQocHRlX3QgcHRlLCBib29sIHdyaXRlKQogewpAQCAtMTEzNSw3ICsxMTM2LDYgQEAgdW5zaWduZWQgbG9uZyBnZXRfZmJfdW5tYXBwZWRfYXJlYShzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZywKIAkJCQkgICB1bnNpZ25lZCBsb25nKTsKICNkZWZpbmUgSEFWRV9BUkNIX0ZCX1VOTUFQUEVEX0FSRUEKIAotdm9pZCBwZ3RhYmxlX2NhY2hlX2luaXQodm9pZCk7CiB2b2lkIHN1bjR2X3JlZ2lzdGVyX2ZhdWx0X3N0YXR1cyh2b2lkKTsKIHZvaWQgc3VuNHZfa3RzYl9yZWdpc3Rlcih2b2lkKTsKIHZvaWQgX19pbml0IGNoZWV0YWhfZWNhY2hlX2ZsdXNoX2luaXQodm9pZCk7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL21tL2luaXRfMzIuYyBiL2FyY2gvc3BhcmMvbW0vaW5pdF8zMi5jCmluZGV4IDA0NmFiMTEuLjkwNmVkYTExIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL21tL2luaXRfMzIuYworKysgYi9hcmNoL3NwYXJjL21tL2luaXRfMzIuYwpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlIDxhc20vdmFkZHJzLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4JLyogYnVnIGluIGFzbS1nZW5lcmljL3RsYi5oOiBjaGVja19wZ3RfY2FjaGUgKi8KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KICNpbmNsdWRlIDxhc20vdGxiLmg+CiAjaW5jbHVkZSA8YXNtL3Byb20uaD4KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvbW0vaW5pdF82NC5jIGIvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMKaW5kZXggNGIwOTlkZC4uZTZkOTE4MSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMKKysrIGIvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMKQEAgLTI5MDMsNyArMjkwMyw3IEBAIHBndGFibGVfdCBwdGVfYWxsb2Nfb25lKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogCXN0cnVjdCBwYWdlICpwYWdlID0gYWxsb2NfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CiAJaWYgKCFwYWdlKQogCQlyZXR1cm4gTlVMTDsKLQlpZiAoIXBndGFibGVfcGFnZV9jdG9yKHBhZ2UpKSB7CisJaWYgKCFwZ3RhYmxlX3B0ZV9wYWdlX2N0b3IocGFnZSkpIHsKIAkJZnJlZV91bnJlZl9wYWdlKHBhZ2UpOwogCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC0yOTE5LDcgKzI5MTksNyBAQCBzdGF0aWMgdm9pZCBfX3B0ZV9mcmVlKHBndGFibGVfdCBwdGUpCiB7CiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSB2aXJ0X3RvX3BhZ2UocHRlKTsKIAotCXBndGFibGVfcGFnZV9kdG9yKHBhZ2UpOworCXBndGFibGVfcHRlX3BhZ2VfZHRvcihwYWdlKTsKIAlfX2ZyZWVfcGFnZShwYWdlKTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9tbS9zcm1tdS5jIGIvYXJjaC9zcGFyYy9tbS9zcm1tdS5jCmluZGV4IGFhZWJiYzAuLmNjM2FkNjQgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvbW0vc3JtbXUuYworKysgYi9hcmNoL3NwYXJjL21tL3NybW11LmMKQEAgLTM3OCw3ICszNzgsNyBAQCBwZ3RhYmxlX3QgcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIAlpZiAoKHB0ZSA9ICh1bnNpZ25lZCBsb25nKXB0ZV9hbGxvY19vbmVfa2VybmVsKG1tKSkgPT0gMCkKIAkJcmV0dXJuIE5VTEw7CiAJcGFnZSA9IHBmbl90b19wYWdlKF9fbm9jYWNoZV9wYShwdGUpID4+IFBBR0VfU0hJRlQpOwotCWlmICghcGd0YWJsZV9wYWdlX2N0b3IocGFnZSkpIHsKKwlpZiAoIXBndGFibGVfcHRlX3BhZ2VfY3RvcihwYWdlKSkgewogCQlfX2ZyZWVfcGFnZShwYWdlKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtMzg5LDcgKzM4OSw3IEBAIHZvaWQgcHRlX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBndGFibGVfdCBwdGUpCiB7CiAJdW5zaWduZWQgbG9uZyBwOwogCi0JcGd0YWJsZV9wYWdlX2R0b3IocHRlKTsKKwlwZ3RhYmxlX3B0ZV9wYWdlX2R0b3IocHRlKTsKIAlwID0gKHVuc2lnbmVkIGxvbmcpcGFnZV9hZGRyZXNzKHB0ZSk7CS8qIENhY2hlZCBhZGRyZXNzIChmb3IgdGVzdCkgKi8KIAlpZiAocCA9PSAwKQogCQlCVUcoKTsKZGlmZiAtLWdpdCBhL2FyY2gvdW0vS2NvbmZpZyBiL2FyY2gvdW0vS2NvbmZpZwppbmRleCAzYzNhZGZjLi5mZWM2YjRjIDEwMDY0NAotLS0gYS9hcmNoL3VtL0tjb25maWcKKysrIGIvYXJjaC91bS9LY29uZmlnCkBAIC05LDYgKzksNyBAQAogCXNlbGVjdCBBUkNIX05PX1BSRUVNUFQKIAlzZWxlY3QgSEFWRV9BUkNIX0FVRElUU1lTQ0FMTAogCXNlbGVjdCBIQVZFX0FSQ0hfU0VDQ09NUF9GSUxURVIKKwlzZWxlY3QgSEFWRV9BU01fTU9EVkVSU0lPTlMKIAlzZWxlY3QgSEFWRV9VSUQxNgogCXNlbGVjdCBIQVZFX0ZVVEVYX0NNUFhDSEcgaWYgRlVURVgKIAlzZWxlY3QgSEFWRV9ERUJVR19LTUVNTEVBSwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL0tjb25maWcgYi9hcmNoL3VtL2RyaXZlcnMvS2NvbmZpZwppbmRleCAyNjM4ZTQ2Li5mZWE1YTBkIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvS2NvbmZpZworKysgYi9hcmNoL3VtL2RyaXZlcnMvS2NvbmZpZwpAQCAtMzM1LDMgKzMzNSwxMCBAQAogCSAgU3RhcnR1cCBleGFtcGxlOiAiZXRoMD1zbGlycCxGRTpGRDowMTowMjowMzowNCwvdXNyL2xvY2FsL2Jpbi9zbGlycCIKIAogZW5kbWVudQorCitjb25maWcgVklSVElPX1VNTAorCXRyaXN0YXRlICJVTUwgZHJpdmVyIGZvciB2aXJ0aW8gZGV2aWNlcyIKKwlzZWxlY3QgVklSVElPCisJaGVscAorCSAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdmlydGlvIGJhc2VkIHBhcmF2aXJ0dWFsIGRldmljZQorCSAgZHJpdmVycyBvdmVyIHZob3N0LXVzZXIgc29ja2V0cy4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9NYWtlZmlsZSBiL2FyY2gvdW0vZHJpdmVycy9NYWtlZmlsZQppbmRleCA2OTMzMTk4My4uYTI5MDgyMSAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL01ha2VmaWxlCisrKyBiL2FyY2gvdW0vZHJpdmVycy9NYWtlZmlsZQpAQCAtMSw2ICsxLDYgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKICMgCiAjIENvcHlyaWdodCAoQykgMjAwMCwgMjAwMiwgMjAwMyBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICMKIAogIyBwY2FwIGlzIGJyb2tlbiBpbiAyLjUgYmVjYXVzZSBrYnVpbGQgZG9lc24ndCBhbGxvdyBwY2FwLmEgdG8gYmUgbGlua2VkCkBAIC02MSw2ICs2MSw3IEBACiBvYmotJChDT05GSUdfVU1MX1dBVENIRE9HKSArPSBoYXJkZG9nLm8KIG9iai0kKENPTkZJR19CTEtfREVWX0NPV19DT01NT04pICs9IGNvd191c2VyLm8KIG9iai0kKENPTkZJR19VTUxfUkFORE9NKSArPSByYW5kb20ubworb2JqLSQoQ09ORklHX1ZJUlRJT19VTUwpICs9IHZpcnRpb191bWwubwogCiAjIHBjYXBfdXNlci5vIG11c3QgYmUgYWRkZWQgZXhwbGljaXRseS4KIFVTRVJfT0JKUyA6PSBmZC5vIG51bGwubyBwdHkubyB0dHkubyB4dGVybS5vIHNsaXBfY29tbW9uLm8gcGNhcF91c2VyLm8gdmRlX3VzZXIubyB2ZWN0b3JfdXNlci5vCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvY2hhbi5oIGIvYXJjaC91bS9kcml2ZXJzL2NoYW4uaAppbmRleCBjNTEyYjAzLi5jMzdjYzRmIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvY2hhbi5oCisrKyBiL2FyY2gvdW0vZHJpdmVycy9jaGFuLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19DSEFOX0tFUk5fSF9fCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvY2hhbl9rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvY2hhbl9rZXJuLmMKaW5kZXggNzQ5ZDJiZi4uNjI5OTcwNSAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL2NoYW5fa2Vybi5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9jaGFuX2tlcm4uYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHtsaW51eC5pbnRlbCxhZGR0b2l0fS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9jaGFuX3VzZXIuYyBiL2FyY2gvdW0vZHJpdmVycy9jaGFuX3VzZXIuYwppbmRleCAzZmQ3YzNlLi40ZDgwNTI2IDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvY2hhbl91c2VyLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL2NoYW5fdXNlci5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2xpbnV4LmludGVsLGFkZHRvaXR9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8c3RkbGliLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvY2hhbl91c2VyLmggYi9hcmNoL3VtL2RyaXZlcnMvY2hhbl91c2VyLmgKaW5kZXggMDNmMWI1Ni4uNzIyMjJiYiAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL2NoYW5fdXNlci5oCisrKyBiL2FyY2gvdW0vZHJpdmVycy9jaGFuX3VzZXIuaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxIEplZmYgRGlrZSAoamRpa2VAa2FyYXlhLmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fQ0hBTl9VU0VSX0hfXwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL2Nvd191c2VyLmMgYi9hcmNoL3VtL2RyaXZlcnMvY293X3VzZXIuYwppbmRleCAwZWU5Y2M2Li43NGIwYzI2IDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvY293X3VzZXIuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvY293X3VzZXIuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2xpbnV4LmludGVsLGFkZHRvaXR9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL2RhZW1vbi5oIGIvYXJjaC91bS9kcml2ZXJzL2RhZW1vbi5oCmluZGV4IGMyZGQxOTUuLjE1MDljYzcgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9kYWVtb24uaAorKysgYi9hcmNoL3VtL2RyaXZlcnMvZGFlbW9uLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19EQUVNT05fSF9fCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvZGFlbW9uX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVycy9kYWVtb25fa2Vybi5jCmluZGV4IDc1NjhjYzIuLmZkMjQwMjYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9kYWVtb25fa2Vybi5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9kYWVtb25fa2Vybi5jCkBAIC0xLDkgKzEsOSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgTGVubmVydCBCdXl0ZW5oZWsgKGJ1eXRlbmhAZ251Lm9yZykgYW5kCiAgKiBKYW1lcyBMZXUgKGpsZXVAbWluZHNwcmluZy5uZXQpLgogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgYnkgdmFyaW91cyBvdGhlciBwZW9wbGUgd2hvIGRpZG4ndCBwdXQgdGhlaXIgbmFtZSBoZXJlLgotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTC4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL2RhZW1vbl91c2VyLmMgYi9hcmNoL3VtL2RyaXZlcnMvZGFlbW9uX3VzZXIuYwppbmRleCA4ODEzYzEwLi4zNjk1ODIxIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvZGFlbW9uX3VzZXIuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvZGFlbW9uX3VzZXIuYwpAQCAtMSw5ICsxLDkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgTGVubmVydCBCdXl0ZW5oZWsgKGJ1eXRlbmhAZ251Lm9yZykgYW5kCiAgKiBKYW1lcyBMZXUgKGpsZXVAbWluZHNwcmluZy5uZXQpLgogICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IHZhcmlvdXMgb3RoZXIgcGVvcGxlIHdobyBkaWRuJ3QgcHV0IHRoZWlyIG5hbWUgaGVyZS4KLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGludC5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL2ZkLmMgYi9hcmNoL3VtL2RyaXZlcnMvZmQuYwppbmRleCBhMTNhNDI3Li4wODJkNzM5IDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvZmQuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvZmQuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHtsaW51eC5pbnRlbCxhZGR0b2l0fS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvaGFyZGRvZ191c2VyLmMgYi9hcmNoL3VtL2RyaXZlcnMvaGFyZGRvZ191c2VyLmMKaW5kZXggM2FhOGIwZC4uMDcwNDY4ZCAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL2hhcmRkb2dfdXNlci5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9oYXJkZG9nX3VzZXIuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvaG9zdGF1ZGlvX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVycy9ob3N0YXVkaW9fa2Vybi5jCmluZGV4IDdmOWRiZGIuLmJmNzViMWMgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9ob3N0YXVkaW9fa2Vybi5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9ob3N0YXVkaW9fa2Vybi5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgU3RldmUgU2NobWlkdGtlCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvbGluZS5jIGIvYXJjaC91bS9kcml2ZXJzL2xpbmUuYwppbmRleCBlMGU2MzkzLi40ZjJhNGFjIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvbGluZS5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9saW5lLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxsaW51eC9pcnFyZXR1cm4uaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9saW5lLmggYi9hcmNoL3VtL2RyaXZlcnMvbGluZS5oCmluZGV4IDEzOGExNDUuLmExNTFmZjUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9saW5lLmgKKysrIGIvYXJjaC91bS9kcml2ZXJzL2xpbmUuaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX0xJTkVfSF9fCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvbWNvbnNvbGUuaCBiL2FyY2gvdW0vZHJpdmVycy9tY29uc29sZS5oCmluZGV4IDQ0YWY3MzcuLjYzNTYzNzggMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9tY29uc29sZS5oCisrKyBiL2FyY2gvdW0vZHJpdmVycy9tY29uc29sZS5oCkBAIC0xLDcgKzEsNyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgTGVubmVydCBCdXl0ZW5oZWsgKGJ1eXRlbmhAZ251Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19NQ09OU09MRV9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9tY29uc29sZV9rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvbWNvbnNvbGVfa2Vybi5jCmluZGV4IGZmM2FiNzIuLjAxMTc0ODkgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9tY29uc29sZV9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL21jb25zb2xlX2tlcm4uYwpAQCAtMSw3ICsxLDcgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIExlbm5lcnQgQnV5dGVuaGVrIChidXl0ZW5oQGdudS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDA4IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL21jb25zb2xlX2tlcm4uaCBiL2FyY2gvdW0vZHJpdmVycy9tY29uc29sZV9rZXJuLmgKaW5kZXggN2EwYzZhMS4uNTZkOGQ2YSAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL21jb25zb2xlX2tlcm4uaAorKysgYi9hcmNoL3VtL2RyaXZlcnMvbWNvbnNvbGVfa2Vybi5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19NQ09OU09MRV9LRVJOX0hfXwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL21jb25zb2xlX3VzZXIuYyBiL2FyY2gvdW0vZHJpdmVycy9tY29uc29sZV91c2VyLmMKaW5kZXggOTkyMDk4Mi4uZTI0Mjk4YSAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL21jb25zb2xlX3VzZXIuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvbWNvbnNvbGVfdXNlci5jCkBAIC0xLDcgKzEsNyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgTGVubmVydCBCdXl0ZW5oZWsgKGJ1eXRlbmhAZ251Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxlcnJuby5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL25ldF9rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvbmV0X2tlcm4uYwppbmRleCA2ZTViZTVmLi4zMjdiNzI4IDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvbmV0X2tlcm4uYworKysgYi9hcmNoL3VtL2RyaXZlcnMvbmV0X2tlcm4uYwpAQCAtMSw5ICsxLDkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgTGVubmVydCBCdXl0ZW5oZWsgKGJ1eXRlbmhAZ251Lm9yZykgYW5kCiAgKiBKYW1lcyBMZXUgKGpsZXVAbWluZHNwcmluZy5uZXQpLgogICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IHZhcmlvdXMgb3RoZXIgcGVvcGxlIHdobyBkaWRuJ3QgcHV0IHRoZWlyIG5hbWUgaGVyZS4KLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21lbWJsb2NrLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvbmV0X3VzZXIuYyBiL2FyY2gvdW0vZHJpdmVycy9uZXRfdXNlci5jCmluZGV4IGU5Zjg0NDUuLjRjOTU3NjQgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9uZXRfdXNlci5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9uZXRfdXNlci5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9udWxsLmMgYi9hcmNoL3VtL2RyaXZlcnMvbnVsbC5jCmluZGV4IDEwNDk1NzQuLjg3MDg3NzYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9udWxsLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL251bGwuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHtsaW51eC5pbnRlbCxhZGR0b2l0fS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGRlZi5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3BjYXBfa2Vybi5jIGIvYXJjaC91bS9kcml2ZXJzL3BjYXBfa2Vybi5jCmluZGV4IGJlMGZiNTdiZC4uY2ZlNGNiMSAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3BjYXBfa2Vybi5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9wY2FwX2tlcm4uYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvcGNhcF91c2VyLmMgYi9hcmNoL3VtL2RyaXZlcnMvcGNhcF91c2VyLmMKaW5kZXggYzA3YjljNy4uYmJkMjA2MyAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3BjYXBfdXNlci5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9wY2FwX3VzZXIuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMLgogICovCiAKICNpbmNsdWRlIDxlcnJuby5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3BjYXBfdXNlci5oIGIvYXJjaC91bS9kcml2ZXJzL3BjYXBfdXNlci5oCmluZGV4IDFjYTdjNzYuLjIxNjI0NmYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9wY2FwX3VzZXIuaAorKysgYi9hcmNoL3VtL2RyaXZlcnMvcGNhcF91c2VyLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxuZXRfdXNlci5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3BvcnQuaCBiL2FyY2gvdW0vZHJpdmVycy9wb3J0LmgKaW5kZXggMzcyYTgwYy4uOTA4NWIzMyAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3BvcnQuaAorKysgYi9hcmNoL3VtL2RyaXZlcnMvcG9ydC5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qIAogICogQ29weXJpZ2h0IChDKSAyMDAxIEplZmYgRGlrZSAoamRpa2VAa2FyYXlhLmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fUE9SVF9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9wb3J0X2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVycy9wb3J0X2tlcm4uYwppbmRleCBiMGU5ZmYzLi5hNDdjYTUzIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvcG9ydF9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL3BvcnRfa2Vybi5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2xpbnV4LmludGVsLGFkZHRvaXR9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3BvcnRfdXNlci5jIGIvYXJjaC91bS9kcml2ZXJzL3BvcnRfdXNlci5jCmluZGV4IDVmNTZkMTEuLjViNWI2NGMgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9wb3J0X3VzZXIuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvcG9ydF91c2VyLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7bGludXguaW50ZWwsYWRkdG9pdH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3B0eS5jIGIvYXJjaC91bS9kcml2ZXJzL3B0eS5jCmluZGV4IGYxZmNjMmMuLjM5YzYwMDYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9wdHkuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvcHR5LmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3NsaXBfa2Vybi5jIGIvYXJjaC91bS9kcml2ZXJzL3NsaXBfa2Vybi5jCmluZGV4IGVkNTI0OWYuLmM1OGNjZGMgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9zbGlwX2tlcm4uYworKysgYi9hcmNoL3VtL2RyaXZlcnMvc2xpcF9rZXJuLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9pZl9hcnAuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9zbGlwX3VzZXIuYyBiL2FyY2gvdW0vZHJpdmVycy9zbGlwX3VzZXIuYwppbmRleCAwZDZiNjZjLi44MDE2ZDMyIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvc2xpcF91c2VyLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL3NsaXBfdXNlci5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTC4KICAqLwogCiAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9zbGlycF9rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvc2xpcnBfa2Vybi5jCmluZGV4IDRlZjExY2EuLjJkOTc2OTIgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9zbGlycF9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL3NsaXJwX2tlcm4uYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2lmX2FycC5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3NsaXJwX3VzZXIuYyBiL2FyY2gvdW0vZHJpdmVycy9zbGlycF91c2VyLmMKaW5kZXggOThiNmE0MS4uOGY2MzNlMiAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3NsaXJwX3VzZXIuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvc2xpcnBfdXNlci5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTC4KICAqLwogCiAjaW5jbHVkZSA8dW5pc3RkLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvc3NsLmMgYi9hcmNoL3VtL2RyaXZlcnMvc3NsLmMKaW5kZXggN2FlNDA3ZC4uYjIxMzIwMSAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3NzbC5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9zc2wuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMCwgMjAwMiBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvc3RkaW9fY29uc29sZS5jIGIvYXJjaC91bS9kcml2ZXJzL3N0ZGlvX2NvbnNvbGUuYwppbmRleCBjOTA4MTdiLi4wMDIxZDdmIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvc3RkaW9fY29uc29sZS5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9zdGRpb19jb25zb2xlLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxsaW51eC9wb3NpeF90eXBlcy5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3N0ZGlvX2NvbnNvbGUuaCBiL2FyY2gvdW0vZHJpdmVycy9zdGRpb19jb25zb2xlLmgKaW5kZXggNmQ4Mjc1Zi4uM2E0MDllYyAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3N0ZGlvX2NvbnNvbGUuaAorKysgYi9hcmNoL3VtL2RyaXZlcnMvc3RkaW9fY29uc29sZS5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qIAogICogQ29weXJpZ2h0IChDKSAyMDAwIEplZmYgRGlrZSAoamRpa2VAa2FyYXlhLmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fU1RESU9fQ09OU09MRV9ICmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdHR5LmMgYi9hcmNoL3VtL2RyaXZlcnMvdHR5LmMKaW5kZXggZWFhMjAxYi4uODg0YTc2MiAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3R0eS5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy90dHkuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHtsaW51eC5pbnRlbCxhZGR0b2l0fS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGVycm5vLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdWJkLmggYi9hcmNoL3VtL2RyaXZlcnMvdWJkLmgKaW5kZXggY2MxY2M4NS4uZjAxNmZlMSAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3ViZC5oCisrKyBiL2FyY2gvdW0vZHJpdmVycy91YmQuaApAQCAtMSw3ICsxLDcgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMCBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgUmlkZ2VSdW4sIEluYyAoZ2xvbm5vbkByaWRnZXJ1bi5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1VNX1VCRF9VU0VSX0gKZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy91YmRfa2Vybi5jIGIvYXJjaC91bS9kcml2ZXJzL3ViZF9rZXJuLmMKaW5kZXggMzNjMWNkNi4uNjEyNTM1YyAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3ViZF9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL3ViZF9rZXJuLmMKQEAgLTEsOCArMSw4IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxOCBDYW1icmlkZ2UgR3JleXMgTHRkCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBbnRvbiBJdmFub3YgKGFpdmFub3ZAYnJvY2FkZS5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKIC8qIDIwMDEtMDktMjguLi4yMDAyLTA0LTE3CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdWJkX3VzZXIuYyBiL2FyY2gvdW0vZHJpdmVycy91YmRfdXNlci5jCmluZGV4IDZmNzQ0NzkuLmExYWZlNDEgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy91YmRfdXNlci5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy91YmRfdXNlci5jCkBAIC0xLDggKzEsOCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQW50b24gSXZhbm92IChhaXZhbm92QGJyb2NhZGUuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAyMDAyIEplZmYgRGlrZSAoamRpa2VAa2FyYXlhLmNvbSkKICAqIENvcHlyaWdodCAoQykgMjAwMSBSaWRnZXJ1bixJbmMgKGdsb25ub25AcmlkZ2VydW4uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxzdGRkZWYuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy91bWNhc3QuaCBiL2FyY2gvdW0vZHJpdmVycy91bWNhc3QuaAppbmRleCBjMTkwYzY0Li5mZTM5YmVlIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvdW1jYXN0LmgKKysrIGIvYXJjaC91bS9kcml2ZXJzL3VtY2FzdC5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fRFJJVkVSU19VTUNBU1RfSApkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3VtY2FzdF9rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvdW1jYXN0X2tlcm4uYwppbmRleCBmNWJhNmUzLi41OTVhNTRmIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvdW1jYXN0X2tlcm4uYworKysgYi9hcmNoL3VtL2RyaXZlcnMvdW1jYXN0X2tlcm4uYwpAQCAtMSwzICsxLDQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogdXNlci1tb2RlLWxpbnV4IG5ldHdvcmtpbmcgbXVsdGljYXN0IHRyYW5zcG9ydAogICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBnbnVtb25rcy5vcmc+CkBAIC04LDcgKzksNiBAQAogICogSmFtZXMgTGV1IChqbGV1QG1pbmRzcHJpbmcubmV0KS4KICAqIENvcHlyaWdodCAoQykgMjAwMSBieSB2YXJpb3VzIG90aGVyIHBlb3BsZSB3aG8gZGlkbid0IHB1dCB0aGVpciBuYW1lIGhlcmUuCiAgKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTC4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3VtY2FzdF91c2VyLmMgYi9hcmNoL3VtL2RyaXZlcnMvdW1jYXN0X3VzZXIuYwppbmRleCA2MDc0MTg0Li5iNTBiMTNjIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvdW1jYXN0X3VzZXIuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvdW1jYXN0X3VzZXIuYwpAQCAtMSwzICsxLDQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogdXNlci1tb2RlLWxpbnV4IG5ldHdvcmtpbmcgbXVsdGljYXN0IHRyYW5zcG9ydAogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCkBAIC04LDcgKzksNiBAQAogICogSmFtZXMgTGV1IChqbGV1QG1pbmRzcHJpbmcubmV0KS4KICAqIENvcHlyaWdodCAoQykgMjAwMSBieSB2YXJpb3VzIG90aGVyIHBlb3BsZSB3aG8gZGlkbid0IHB1dCB0aGVpciBuYW1lIGhlcmUuCiAgKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTC4KICAqCiAgKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3ZkZS5oIGIvYXJjaC91bS9kcml2ZXJzL3ZkZS5oCmluZGV4IGZjM2EwNTkuLmNhYjAzNzkgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy92ZGUuaAorKysgYi9hcmNoL3VtL2RyaXZlcnMvdmRlLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBMdWNhIEJpZ2xpYXJkaSAoc2hhbW1hc2hAYXJ0aGEub3JnKS4KLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuCiAgKi8KIAogI2lmbmRlZiBfX1VNX1ZERV9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy92ZGVfa2Vybi5jIGIvYXJjaC91bS9kcml2ZXJzL3ZkZV9rZXJuLmMKaW5kZXggNmEzNjVmYS4uYmM2ZjIyYyAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3ZkZV9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL3ZkZV9rZXJuLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBMdWNhIEJpZ2xpYXJkaSAoc2hhbW1hc2hAYXJ0aGEub3JnKS4KLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuCiAgKgogICogVHJhbnNwb3J0IHVzYWdlOgogICogIGV0aE49dmRlLDx2ZGVfc3dpdGNoPiw8bWFjIGFkZHI+LDxwb3J0Piw8Z3JvdXA+LDxtb2RlPiw8ZGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdmRlX3VzZXIuYyBiL2FyY2gvdW0vZHJpdmVycy92ZGVfdXNlci5jCmluZGV4IDY0Y2I2MzAuLmJjN2RjNGUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy92ZGVfdXNlci5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy92ZGVfdXNlci5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgTHVjYSBCaWdsaWFyZGkgKHNoYW1tYXNoQGFydGhhLm9yZykuCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMLgogICovCiAKICNpbmNsdWRlIDxzdGRkZWYuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jIGIvYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmMKaW5kZXggZTE5MGU0Yy4uNzY5ZmZiZCAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmMKQEAgLTEsMyArMSw0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNyAtIENhbWJyaWRnZSBHcmV5cyBMaW1pdGVkCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgLSAyMDE0IENpc2NvIFN5c3RlbXMgSW5jCkBAIC01LDcgKzYsNiBAQAogICogQ29weXJpZ2h0IChDKSAyMDAxIExlbm5lcnQgQnV5dGVuaGVrIChidXl0ZW5oQGdudS5vcmcpIGFuZAogICogSmFtZXMgTGV1IChqbGV1QG1pbmRzcHJpbmcubmV0KS4KICAqIENvcHlyaWdodCAoQykgMjAwMSBieSB2YXJpb3VzIG90aGVyIHBlb3BsZSB3aG8gZGlkbid0IHB1dCB0aGVpciBuYW1lIGhlcmUuCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMLgogICovCiAKICNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CkBAIC03Niw2ICs3Niw3IEBAIHN0YXRpYyB2b2lkIHZlY3Rvcl9ldGhfY29uZmlndXJlKGludCBuLCBzdHJ1Y3QgYXJnbGlzdCAqZGVmKTsKICNkZWZpbmUgREVGQVVMVF9WRUNUT1JfU0laRSA2NAogI2RlZmluZSBUWF9TTUFMTF9QQUNLRVQgMTI4CiAjZGVmaW5lIE1BWF9JT1ZfU0laRSAoTUFYX1NLQl9GUkFHUyArIDEpCisjZGVmaW5lIE1BWF9JVEVSQVRJT05TIDY0CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCWNvbnN0IGNoYXIgc3RyaW5nW0VUSF9HU1RSSU5HX0xFTl07CkBAIC0xMjEsNyArMTIyLDggQEAgc3RhdGljIGludCBnZXRfbXR1KHN0cnVjdCBhcmdsaXN0ICpkZWYpCiAKIAlpZiAobXR1ICE9IE5VTEwpIHsKIAkJaWYgKGtzdHJ0b3VsKG10dSwgMTAsICZyZXN1bHQpID09IDApCi0JCQlyZXR1cm4gcmVzdWx0OworCQkJaWYgKChyZXN1bHQgPCAoMSA8PCAxNikgLSAxKSAmJiAocmVzdWx0ID49IDU3NikpCisJCQkJcmV0dXJuIHJlc3VsdDsKIAl9CiAJcmV0dXJuIEVUSF9NQVhfUEFDS0VUOwogfQpAQCAtMTg2LDYgKzE4OCw4IEBAIHN0YXRpYyBpbnQgZ2V0X3RyYW5zcG9ydF9vcHRpb25zKHN0cnVjdCBhcmdsaXN0ICpkZWYpCiAKIAogCWlmIChzdHJuY21wKHRyYW5zcG9ydCwgVFJBTlNfVEFQLCBUUkFOU19UQVBfTEVOKSA9PSAwKQorCQlyZXR1cm4gMDsKKwlpZiAoc3RybmNtcCh0cmFuc3BvcnQsIFRSQU5TX0hZQlJJRCwgVFJBTlNfSFlCUklEX0xFTikgPT0gMCkKIAkJcmV0dXJuICh2ZWNfcnggfCBWRUNUT1JfQlBGKTsKIAlpZiAoc3RybmNtcCh0cmFuc3BvcnQsIFRSQU5TX1JBVywgVFJBTlNfUkFXX0xFTikgPT0gMCkKIAkJcmV0dXJuICh2ZWNfcnggfCB2ZWNfdHggfCBWRUNUT1JfUURJU0NfQllQQVNTKTsKQEAgLTQxNSw2ICs0MTksNyBAQCBzdGF0aWMgaW50IHZlY3Rvcl9zZW5kKHN0cnVjdCB2ZWN0b3JfcXVldWUgKnFpKQogCQkJCQlpZiAobmV0X3JhdGVsaW1pdCgpKQogCQkJCQkJbmV0ZGV2X2Vycih2cC0+ZGV2LCAic2VuZG1tc2cgZXJyPSVpXG4iLAogCQkJCQkJCXJlc3VsdCk7CisJCQkJCXZwLT5pbl9lcnJvciA9IHRydWU7CiAJCQkJCXJlc3VsdCA9IHNlbmRfbGVuOwogCQkJCX0KIAkJCQlpZiAocmVzdWx0ID4gMCkgewpAQCAtODQyLDYgKzg0NywxMCBAQCBzdGF0aWMgaW50IHZlY3Rvcl9sZWdhY3lfcngoc3RydWN0IHZlY3Rvcl9wcml2YXRlICp2cCkKIAl9CiAKIAlwa3RfbGVuID0gdW1sX3ZlY3Rvcl9yZWN2bXNnKHZwLT5mZHMtPnJ4X2ZkLCAmaGRyLCAwKTsKKwlpZiAocGt0X2xlbiA8IDApIHsKKwkJdnAtPmluX2Vycm9yID0gdHJ1ZTsKKwkJcmV0dXJuIHBrdF9sZW47CisJfQogCiAJaWYgKHNrYiAhPSBOVUxMKSB7CiAJCWlmIChwa3RfbGVuID4gdnAtPmhlYWRlcl9zaXplKSB7CkBAIC04ODgsMTIgKzg5NywxNiBAQCBzdGF0aWMgaW50IHdyaXRldl90eChzdHJ1Y3QgdmVjdG9yX3ByaXZhdGUgKnZwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJaWYgKGlvdl9jb3VudCA8IDEpCiAJCWdvdG8gZHJvcDsKKwogCXBrdF9sZW4gPSB1bWxfdmVjdG9yX3dyaXRldigKIAkJdnAtPmZkcy0+dHhfZmQsCiAJCShzdHJ1Y3QgaW92ZWMgKikgJmlvdiwKIAkJaW92X2NvdW50CiAJKTsKIAorCWlmIChwa3RfbGVuIDwgMCkKKwkJZ290byBkcm9wOworCiAJbmV0aWZfdHJhbnNfdXBkYXRlKHZwLT5kZXYpOwogCW5ldGlmX3dha2VfcXVldWUodnAtPmRldik7CiAKQEAgLTkwOCw2ICs5MjEsOCBAQCBzdGF0aWMgaW50IHdyaXRldl90eChzdHJ1Y3QgdmVjdG9yX3ByaXZhdGUgKnZwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogZHJvcDoKIAl2cC0+ZGV2LT5zdGF0cy50eF9kcm9wcGVkKys7CiAJY29uc3VtZV9za2Ioc2tiKTsKKwlpZiAocGt0X2xlbiA8IDApCisJCXZwLT5pbl9lcnJvciA9IHRydWU7CiAJcmV0dXJuIHBrdF9sZW47CiB9CiAKQEAgLTkzNiw2ICs5NTEsOSBAQCBzdGF0aWMgaW50IHZlY3Rvcl9tbXNnX3J4KHN0cnVjdCB2ZWN0b3JfcHJpdmF0ZSAqdnApCiAJcGFja2V0X2NvdW50ID0gdW1sX3ZlY3Rvcl9yZWN2bW1zZygKIAkJdnAtPmZkcy0+cnhfZmQsIHFpLT5tbXNnX3ZlY3RvciwgcWktPm1heF9kZXB0aCwgMCk7CiAKKwlpZiAocGFja2V0X2NvdW50IDwgMCkKKwkJdnAtPmluX2Vycm9yID0gdHJ1ZTsKKwogCWlmIChwYWNrZXRfY291bnQgPD0gMCkKIAkJcmV0dXJuIHBhY2tldF9jb3VudDsKIApAQCAtMTAwNSwxNSArMTAyMywxOCBAQCBzdGF0aWMgaW50IHZlY3Rvcl9tbXNnX3J4KHN0cnVjdCB2ZWN0b3JfcHJpdmF0ZSAqdnApCiBzdGF0aWMgdm9pZCB2ZWN0b3Jfcngoc3RydWN0IHZlY3Rvcl9wcml2YXRlICp2cCkKIHsKIAlpbnQgZXJyOworCWludCBpdGVyID0gMDsKIAogCWlmICgodnAtPm9wdGlvbnMgJiBWRUNUT1JfUlgpID4gMCkKLQkJd2hpbGUgKChlcnIgPSB2ZWN0b3JfbW1zZ19yeCh2cCkpID4gMCkKLQkJCTsKKwkJd2hpbGUgKCgoZXJyID0gdmVjdG9yX21tc2dfcngodnApKSA+IDApICYmIChpdGVyIDwgTUFYX0lURVJBVElPTlMpKQorCQkJaXRlcisrOwogCWVsc2UKLQkJd2hpbGUgKChlcnIgPSB2ZWN0b3JfbGVnYWN5X3J4KHZwKSkgPiAwKQotCQkJOworCQl3aGlsZSAoKChlcnIgPSB2ZWN0b3JfbGVnYWN5X3J4KHZwKSkgPiAwKSAmJiAoaXRlciA8IE1BWF9JVEVSQVRJT05TKSkKKwkJCWl0ZXIrKzsKIAlpZiAoKGVyciAhPSAwKSAmJiBuZXRfcmF0ZWxpbWl0KCkpCiAJCW5ldGRldl9lcnIodnAtPmRldiwgInZlY3Rvcl9yeDogZXJyb3IoJWQpXG4iLCBlcnIpOworCWlmIChpdGVyID09IE1BWF9JVEVSQVRJT05TKQorCQluZXRkZXZfZXJyKHZwLT5kZXYsICJ2ZWN0b3Jfcng6IGRldmljZSBzdHVjaywgcmVtb3RlIGVuZCBtYXkgaGF2ZSBjbG9zZWQgdGhlIGNvbm5lY3Rpb25cbiIpOwogfQogCiBzdGF0aWMgaW50IHZlY3Rvcl9uZXRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQpAQCAtMTAyMSw2ICsxMDQyLDEzIEBAIHN0YXRpYyBpbnQgdmVjdG9yX25ldF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJc3RydWN0IHZlY3Rvcl9wcml2YXRlICp2cCA9IG5ldGRldl9wcml2KGRldik7CiAJaW50IHF1ZXVlX2RlcHRoID0gMDsKIAorCWlmICh2cC0+aW5fZXJyb3IpIHsKKwkJZGVhY3RpdmF0ZV9mZCh2cC0+ZmRzLT5yeF9mZCwgdnAtPnJ4X2lycSk7CisJCWlmICgodnAtPmZkcy0+cnhfZmQgIT0gdnAtPmZkcy0+dHhfZmQpICYmICh2cC0+dHhfaXJxICE9IDApKQorCQkJZGVhY3RpdmF0ZV9mZCh2cC0+ZmRzLT50eF9mZCwgdnAtPnR4X2lycSk7CisJCXJldHVybiBORVRERVZfVFhfQlVTWTsKKwl9CisKIAlpZiAoKHZwLT5vcHRpb25zICYgVkVDVE9SX1RYKSA9PSAwKSB7CiAJCXdyaXRldl90eCh2cCwgc2tiKTsKIAkJcmV0dXJuIE5FVERFVl9UWF9PSzsKQEAgLTExMzEsNiArMTE1OSw3IEBAIHN0YXRpYyBpbnQgdmVjdG9yX25ldF9jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXZwLT5mZHMgPSBOVUxMOwogCXNwaW5fbG9ja19pcnFzYXZlKCZ2cC0+bG9jaywgZmxhZ3MpOwogCXZwLT5vcGVuZWQgPSBmYWxzZTsKKwl2cC0+aW5fZXJyb3IgPSBmYWxzZTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2cC0+bG9jaywgZmxhZ3MpOwogCXJldHVybiAwOwogfQpAQCAtMTQ5OCw3ICsxNTI3LDggQEAgc3RhdGljIHZvaWQgdmVjdG9yX2V0aF9jb25maWd1cmUoCiAJCS50cmFuc3BvcnRfZGF0YQkJPSBOVUxMLAogCQkuaW5fd3JpdGVfcG9sbAkJPSBmYWxzZSwKIAkJLmNvYWxlc2NlCQk9IDIsCi0JCS5yZXFfc2l6ZQkJPSBnZXRfcmVxX3NpemUoZGVmKQorCQkucmVxX3NpemUJCT0gZ2V0X3JlcV9zaXplKGRlZiksCisJCS5pbl9lcnJvcgkJPSBmYWxzZQogCQl9KTsKIAogCWRldi0+ZmVhdHVyZXMgPSBkZXYtPmh3X2ZlYXR1cmVzID0gKE5FVElGX0ZfU0cgfCBORVRJRl9GX0ZSQUdMSVNUKTsKZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5oIGIvYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmgKaW5kZXggMGIwYTc2Ny4uNGQyOTJlNiAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmgKKysrIGIvYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMiAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fVU1fVkVDVE9SX0tFUk5fSApAQCAtMTE2LDYgKzExNiw3IEBAIHN0cnVjdCB2ZWN0b3JfcHJpdmF0ZSB7CiAJYm9vbCByZXhtaXRfc2NoZWR1bGVkOwogCWJvb2wgb3BlbmVkOwogCWJvb2wgaW5fd3JpdGVfcG9sbDsKKwlib29sIGluX2Vycm9yOwogCiAJLyogZXRodG9vbCBzdGF0cyAqLwogCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX3RyYW5zcG9ydHMuYyBiL2FyY2gvdW0vZHJpdmVycy92ZWN0b3JfdHJhbnNwb3J0cy5jCmluZGV4IDc3ZTRlYmMuLjA3OTRkMjMgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy92ZWN0b3JfdHJhbnNwb3J0cy5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy92ZWN0b3JfdHJhbnNwb3J0cy5jCkBAIC0xLDcgKzEsNyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgLSBDYW1icmlkZ2UgR3JleXMgTGltaXRlZAogICogQ29weXJpZ2h0IChDKSAyMDExIC0gMjAxNCBDaXNjbyBTeXN0ZW1zIEluYwotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTC4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXRoZXJkZXZpY2UuaD4KQEAgLTQxOCw3ICs0MTgsNyBAQCBzdGF0aWMgaW50IGJ1aWxkX3Jhd190cmFuc3BvcnRfZGF0YShzdHJ1Y3QgdmVjdG9yX3ByaXZhdGUgKnZwKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGJ1aWxkX3RhcF90cmFuc3BvcnRfZGF0YShzdHJ1Y3QgdmVjdG9yX3ByaXZhdGUgKnZwKQorc3RhdGljIGludCBidWlsZF9oeWJyaWRfdHJhbnNwb3J0X2RhdGEoc3RydWN0IHZlY3Rvcl9wcml2YXRlICp2cCkKIHsKIAlpZiAodW1sX3Jhd19lbmFibGVfdm5ldF9oZWFkZXJzKHZwLT5mZHMtPnJ4X2ZkKSkgewogCQl2cC0+Zm9ybV9oZWFkZXIgPSAmcmF3X2Zvcm1faGVhZGVyOwpAQCAtNDMyLDcgKzQzMiw3IEBAIHN0YXRpYyBpbnQgYnVpbGRfdGFwX3RyYW5zcG9ydF9kYXRhKHN0cnVjdCB2ZWN0b3JfcHJpdmF0ZSAqdnApCiAJCQkJTkVUSUZfRl9UU08gfCBORVRJRl9GX0dTTyB8IE5FVElGX0ZfR1JPKTsKIAkJbmV0ZGV2X2luZm8oCiAJCQl2cC0+ZGV2LAotCQkJInRhcC9yYXc6IHVzaW5nIHZuZXQgaGVhZGVycyBmb3IgdHNvIGFuZCB0eC9yeCBjaGVja3N1bSIKKwkJCSJ0YXAvcmF3IGh5YnJpZDogdXNpbmcgdm5ldCBoZWFkZXJzIGZvciB0c28gYW5kIHR4L3J4IGNoZWNrc3VtIgogCQkpOwogCX0gZWxzZSB7CiAJCXJldHVybiAwOyAvKiBkbyBub3QgdHJ5IHRvIGVuYWJsZSB0YXAgdG9vIGlmIHJhdyBmYWlsZWQgKi8KQEAgLTQ0Miw2ICs0NDIsMzggQEAgc3RhdGljIGludCBidWlsZF90YXBfdHJhbnNwb3J0X2RhdGEoc3RydWN0IHZlY3Rvcl9wcml2YXRlICp2cCkKIAlyZXR1cm4gLTE7CiB9CiAKK3N0YXRpYyBpbnQgYnVpbGRfdGFwX3RyYW5zcG9ydF9kYXRhKHN0cnVjdCB2ZWN0b3JfcHJpdmF0ZSAqdnApCit7CisJLyogIlB1cmUiIHRhcCB1c2VzIHRoZSBzYW1lIGZkIGZvciByeCBhbmQgdHggKi8KKwlpZiAodW1sX3RhcF9lbmFibGVfdm5ldF9oZWFkZXJzKHZwLT5mZHMtPnR4X2ZkKSkgeworCQl2cC0+Zm9ybV9oZWFkZXIgPSAmcmF3X2Zvcm1faGVhZGVyOworCQl2cC0+dmVyaWZ5X2hlYWRlciA9ICZyYXdfdmVyaWZ5X2hlYWRlcjsKKwkJdnAtPmhlYWRlcl9zaXplID0gc2l6ZW9mKHN0cnVjdCB2aXJ0aW9fbmV0X2hkcik7CisJCXZwLT5yeF9oZWFkZXJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgdmlydGlvX25ldF9oZHIpOworCQl2cC0+ZGV2LT5od19mZWF0dXJlcyB8PQorCQkJKE5FVElGX0ZfVFNPIHwgTkVUSUZfRl9HU08gfCBORVRJRl9GX0dSTyk7CisJCXZwLT5kZXYtPmZlYXR1cmVzIHw9CisJCQkoTkVUSUZfRl9SWENTVU0gfCBORVRJRl9GX0hXX0NTVU0gfAorCQkJCU5FVElGX0ZfVFNPIHwgTkVUSUZfRl9HU08gfCBORVRJRl9GX0dSTyk7CisJCW5ldGRldl9pbmZvKAorCQkJdnAtPmRldiwKKwkJCSJ0YXA6IHVzaW5nIHZuZXQgaGVhZGVycyBmb3IgdHNvIGFuZCB0eC9yeCBjaGVja3N1bSIKKwkJKTsKKwkJcmV0dXJuIDA7CisJfQorCXJldHVybiAtMTsKK30KKworCitzdGF0aWMgaW50IGJ1aWxkX2Jlc3NfdHJhbnNwb3J0X2RhdGEoc3RydWN0IHZlY3Rvcl9wcml2YXRlICp2cCkKK3sKKwl2cC0+Zm9ybV9oZWFkZXIgPSBOVUxMOworCXZwLT52ZXJpZnlfaGVhZGVyID0gTlVMTDsKKwl2cC0+aGVhZGVyX3NpemUgPSAwOworCXZwLT5yeF9oZWFkZXJfc2l6ZSA9IDA7CisJcmV0dXJuIDA7Cit9CisKIGludCBidWlsZF90cmFuc3BvcnRfZGF0YShzdHJ1Y3QgdmVjdG9yX3ByaXZhdGUgKnZwKQogewogCWNoYXIgKnRyYW5zcG9ydCA9IHVtbF92ZWN0b3JfZmV0Y2hfYXJnKHZwLT5wYXJzZWQsICJ0cmFuc3BvcnQiKTsKQEAgLTQ1NCw2ICs0ODYsMTAgQEAgaW50IGJ1aWxkX3RyYW5zcG9ydF9kYXRhKHN0cnVjdCB2ZWN0b3JfcHJpdmF0ZSAqdnApCiAJCXJldHVybiBidWlsZF9yYXdfdHJhbnNwb3J0X2RhdGEodnApOwogCWlmIChzdHJuY21wKHRyYW5zcG9ydCwgVFJBTlNfVEFQLCBUUkFOU19UQVBfTEVOKSA9PSAwKQogCQlyZXR1cm4gYnVpbGRfdGFwX3RyYW5zcG9ydF9kYXRhKHZwKTsKKwlpZiAoc3RybmNtcCh0cmFuc3BvcnQsIFRSQU5TX0hZQlJJRCwgVFJBTlNfSFlCUklEX0xFTikgPT0gMCkKKwkJcmV0dXJuIGJ1aWxkX2h5YnJpZF90cmFuc3BvcnRfZGF0YSh2cCk7CisJaWYgKHN0cm5jbXAodHJhbnNwb3J0LCBUUkFOU19CRVNTLCBUUkFOU19CRVNTX0xFTikgPT0gMCkKKwkJcmV0dXJuIGJ1aWxkX2Jlc3NfdHJhbnNwb3J0X2RhdGEodnApOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX3VzZXIuYyBiL2FyY2gvdW0vZHJpdmVycy92ZWN0b3JfdXNlci5jCmluZGV4IGIzZjdiM2MuLmUyYzk2OWIgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy92ZWN0b3JfdXNlci5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy92ZWN0b3JfdXNlci5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHN5cy91bi5oPgogI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgogI2luY2x1ZGUgPG5ldGluZXQvaXAuaD4KICNpbmNsdWRlIDxuZXRpbmV0L2V0aGVyLmg+CkBAIC0zMyw3ICszNCw4IEBACiAKICNkZWZpbmUgSURfR1JFIDAKICNkZWZpbmUgSURfTDJUUFYzIDEKLSNkZWZpbmUgSURfTUFYIDEKKyNkZWZpbmUgSURfQkVTUyAyCisjZGVmaW5lIElEX01BWCAyCiAKICNkZWZpbmUgVE9LRU5fSUZOQU1FICJpZm5hbWUiCiAKQEAgLTQzLDggKzQ1LDExIEBACiAjZGVmaW5lIFZORVRfSERSX0ZBSUwgImNvdWxkIG5vdCBlbmFibGUgdm5ldCBoZWFkZXJzIG9uIGZkICVkIgogI2RlZmluZSBUVU5fR0VUX0ZfRkFJTCAidGFwcmF3OiBUVU5HRVRGRUFUVVJFUyBmYWlsZWQ6ICVzIgogI2RlZmluZSBMMlRQVjNfQklORF9GQUlMICJsMnRwdjNfb3BlbiA6IGNvdWxkIG5vdCBiaW5kIHNvY2tldCBlcnI9JWkiCisjZGVmaW5lIFVOSVhfQklORF9GQUlMICJ1bml4X29wZW4gOiBjb3VsZCBub3QgYmluZCBzb2NrZXQgZXJyPSVpIgogI2RlZmluZSBCUEZfQVRUQUNIX0ZBSUwgIkZhaWxlZCB0byBhdHRhY2ggZmlsdGVyIHNpemUgJWQgdG8gJWQsIGVyciAlZFxuIgogCisjZGVmaW5lIE1BWF9VTl9MRU4gMTA3CisKIC8qIFRoaXMgaXMgdmVyeSB1Z2x5IGFuZCBicnV0ZSBmb3JjZSBsb29rdXAsIGJ1dCBpdCBpcyBkb25lCiAgKiBvbmx5IG9uY2UgYXQgaW5pdGlhbGl6YXRpb24gc28gbm90IHdvcnRoIGRvaW5nIGhhc2hlcyBvcgogICogYW55dGhpbmcgbW9yZSBpbnRlbGxpZ2VudApAQCAtMTE0LDEyICsxMTksNzYgQEAgc3RydWN0IGFyZ2xpc3QgKnVtbF9wYXJzZV92ZWN0b3JfaWZzcGVjKGNoYXIgKmFyZykKIAogI2RlZmluZSBQQVRIX05FVF9UVU4gIi9kZXYvbmV0L3R1biIKIAotc3RhdGljIHN0cnVjdCB2ZWN0b3JfZmRzICp1c2VyX2luaXRfdGFwX2ZkcyhzdHJ1Y3QgYXJnbGlzdCAqaWZzcGVjKQorCitzdGF0aWMgaW50IGNyZWF0ZV90YXBfZmQoY2hhciAqaWZhY2UpCit7CisJc3RydWN0IGlmcmVxIGlmcjsKKwlpbnQgZmQgPSAtMTsKKwlpbnQgZXJyID0gLUVOT01FTSwgb2ZmbG9hZDsKKworCWZkID0gb3BlbihQQVRIX05FVF9UVU4sIE9fUkRXUik7CisJaWYgKGZkIDwgMCkgeworCQlwcmludGsoVU1fS0VSTl9FUlIgInVtbF90YXA6IGZhaWxlZCB0byBvcGVuIHR1biBkZXZpY2VcbiIpOworCQlnb3RvIHRhcF9mZF9jbGVhbnVwOworCX0KKwltZW1zZXQoJmlmciwgMCwgc2l6ZW9mKGlmcikpOworCWlmci5pZnJfZmxhZ3MgPSBJRkZfVEFQIHwgSUZGX05PX1BJIHwgSUZGX1ZORVRfSERSOworCXN0cm5jcHkoKGNoYXIgKikmaWZyLmlmcl9uYW1lLCBpZmFjZSwgc2l6ZW9mKGlmci5pZnJfbmFtZSkgLSAxKTsKKworCWVyciA9IGlvY3RsKGZkLCBUVU5TRVRJRkYsICh2b2lkICopICZpZnIpOworCWlmIChlcnIgIT0gMCkgeworCQlwcmludGsoVU1fS0VSTl9FUlIgInVtbF90YXA6IGZhaWxlZCB0byBzZWxlY3QgdGFwIGludGVyZmFjZVxuIik7CisJCWdvdG8gdGFwX2ZkX2NsZWFudXA7CisJfQorCisJb2ZmbG9hZCA9IFRVTl9GX0NTVU0gfCBUVU5fRl9UU080IHwgVFVOX0ZfVFNPNjsKKwlpb2N0bChmZCwgVFVOU0VUT0ZGTE9BRCwgb2ZmbG9hZCk7CisJcmV0dXJuIGZkOwordGFwX2ZkX2NsZWFudXA6CisJaWYgKGZkID49IDApCisJCW9zX2Nsb3NlX2ZpbGUoZmQpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgY3JlYXRlX3Jhd19mZChjaGFyICppZmFjZSwgaW50IGZsYWdzLCBpbnQgcHJvdG8pCiB7CiAJc3RydWN0IGlmcmVxIGlmcjsKIAlpbnQgZmQgPSAtMTsKIAlzdHJ1Y3Qgc29ja2FkZHJfbGwgc29jazsKLQlpbnQgZXJyID0gLUVOT01FTSwgb2ZmbG9hZDsKKwlpbnQgZXJyID0gLUVOT01FTTsKKworCWZkID0gc29ja2V0KEFGX1BBQ0tFVCwgU09DS19SQVcsIGZsYWdzKTsKKwlpZiAoZmQgPT0gLTEpIHsKKwkJZXJyID0gLWVycm5vOworCQlnb3RvIHJhd19mZF9jbGVhbnVwOworCX0KKwltZW1zZXQoJmlmciwgMCwgc2l6ZW9mKGlmcikpOworCXN0cm5jcHkoKGNoYXIgKikmaWZyLmlmcl9uYW1lLCBpZmFjZSwgc2l6ZW9mKGlmci5pZnJfbmFtZSkgLSAxKTsKKwlpZiAoaW9jdGwoZmQsIFNJT0NHSUZJTkRFWCwgKHZvaWQgKikgJmlmcikgPCAwKSB7CisJCWVyciA9IC1lcnJubzsKKwkJZ290byByYXdfZmRfY2xlYW51cDsKKwl9CisKKwlzb2NrLnNsbF9mYW1pbHkgPSBBRl9QQUNLRVQ7CisJc29jay5zbGxfcHJvdG9jb2wgPSBodG9ucyhwcm90byk7CisJc29jay5zbGxfaWZpbmRleCA9IGlmci5pZnJfaWZpbmRleDsKKworCWlmIChiaW5kKGZkLAorCQkoc3RydWN0IHNvY2thZGRyICopICZzb2NrLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2xsKSkgPCAwKSB7CisJCWVyciA9IC1lcnJubzsKKwkJZ290byByYXdfZmRfY2xlYW51cDsKKwl9CisJcmV0dXJuIGZkOworcmF3X2ZkX2NsZWFudXA6CisJcHJpbnRrKFVNX0tFUk5fRVJSICJ1c2VyX2luaXRfcmF3OiBpbml0IGZhaWxlZCwgZXJyb3IgJWQiLCBlcnIpOworCWlmIChmZCA+PSAwKQorCQlvc19jbG9zZV9maWxlKGZkKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgc3RydWN0IHZlY3Rvcl9mZHMgKnVzZXJfaW5pdF90YXBfZmRzKHN0cnVjdCBhcmdsaXN0ICppZnNwZWMpCit7CisJaW50IGZkID0gLTE7CiAJY2hhciAqaWZhY2U7CiAJc3RydWN0IHZlY3Rvcl9mZHMgKnJlc3VsdCA9IE5VTEw7CiAKQEAgLTE0MSwxMTcgKzIxMCwxNjcgQEAgc3RhdGljIHN0cnVjdCB2ZWN0b3JfZmRzICp1c2VyX2luaXRfdGFwX2ZkcyhzdHJ1Y3QgYXJnbGlzdCAqaWZzcGVjKQogCiAJLyogVEFQICovCiAKLQlmZCA9IG9wZW4oUEFUSF9ORVRfVFVOLCBPX1JEV1IpOworCWZkID0gY3JlYXRlX3RhcF9mZChpZmFjZSk7CiAJaWYgKGZkIDwgMCkgewotCQlwcmludGsoVU1fS0VSTl9FUlIgInVtbF90YXA6IGZhaWxlZCB0byBvcGVuIHR1biBkZXZpY2VcbiIpOworCQlwcmludGsoVU1fS0VSTl9FUlIgInVtbF90YXA6IGZhaWxlZCB0byBjcmVhdGUgdHVuIGludGVyZmFjZVxuIik7CiAJCWdvdG8gdGFwX2NsZWFudXA7CiAJfQogCXJlc3VsdC0+dHhfZmQgPSBmZDsKLQltZW1zZXQoJmlmciwgMCwgc2l6ZW9mKGlmcikpOwotCWlmci5pZnJfZmxhZ3MgPSBJRkZfVEFQIHwgSUZGX05PX1BJIHwgSUZGX1ZORVRfSERSOwotCXN0cm5jcHkoKGNoYXIgKikmaWZyLmlmcl9uYW1lLCBpZmFjZSwgc2l6ZW9mKGlmci5pZnJfbmFtZSkgLSAxKTsKLQotCWVyciA9IGlvY3RsKGZkLCBUVU5TRVRJRkYsICh2b2lkICopICZpZnIpOwotCWlmIChlcnIgIT0gMCkgewotCQlwcmludGsoVU1fS0VSTl9FUlIgInVtbF90YXA6IGZhaWxlZCB0byBzZWxlY3QgdGFwIGludGVyZmFjZVxuIik7Ci0JCWdvdG8gdGFwX2NsZWFudXA7Ci0JfQotCi0Jb2ZmbG9hZCA9IFRVTl9GX0NTVU0gfCBUVU5fRl9UU080IHwgVFVOX0ZfVFNPNjsKLQlpb2N0bChmZCwgVFVOU0VUT0ZGTE9BRCwgb2ZmbG9hZCk7Ci0KLQkvKiBSQVcgKi8KLQotCWZkID0gc29ja2V0KEFGX1BBQ0tFVCwgU09DS19SQVcsIGh0b25zKEVUSF9QX0FMTCkpOwotCWlmIChmZCA9PSAtMSkgewotCQlwcmludGsoVU1fS0VSTl9FUlIKLQkJCSJ1bWxfdGFwOiBmYWlsZWQgdG8gY3JlYXRlIHNvY2tldDogJWlcbiIsIC1lcnJubyk7Ci0JCWdvdG8gdGFwX2NsZWFudXA7Ci0JfQogCXJlc3VsdC0+cnhfZmQgPSBmZDsKLQltZW1zZXQoJmlmciwgMCwgc2l6ZW9mKGlmcikpOwotCXN0cm5jcHkoKGNoYXIgKikmaWZyLmlmcl9uYW1lLCBpZmFjZSwgc2l6ZW9mKGlmci5pZnJfbmFtZSkgLSAxKTsKLQlpZiAoaW9jdGwoZmQsIFNJT0NHSUZJTkRFWCwgKHZvaWQgKikgJmlmcikgPCAwKSB7Ci0JCXByaW50ayhVTV9LRVJOX0VSUgotCQkJInVtbF90YXA6IGZhaWxlZCB0byBzZXQgaW50ZXJmYWNlOiAlaVxuIiwgLWVycm5vKTsKLQkJZ290byB0YXBfY2xlYW51cDsKLQl9Ci0KLQlzb2NrLnNsbF9mYW1pbHkgPSBBRl9QQUNLRVQ7Ci0Jc29jay5zbGxfcHJvdG9jb2wgPSBodG9ucyhFVEhfUF9BTEwpOwotCXNvY2suc2xsX2lmaW5kZXggPSBpZnIuaWZyX2lmaW5kZXg7Ci0KLQlpZiAoYmluZChmZCwKLQkJKHN0cnVjdCBzb2NrYWRkciAqKSAmc29jaywgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9sbCkpIDwgMCkgewotCQlwcmludGsoVU1fS0VSTl9FUlIKLQkJCSJ1c2VyX2luaXRfdGFwOiBmYWlsZWQgdG8gYmluZCByYXcgcGFpciwgZXJyICVkXG4iLAotCQkJCS1lcnJubyk7Ci0JCWdvdG8gdGFwX2NsZWFudXA7Ci0JfQogCXJldHVybiByZXN1bHQ7CiB0YXBfY2xlYW51cDoKLQlwcmludGsoVU1fS0VSTl9FUlIgInVzZXJfaW5pdF90YXA6IGluaXQgZmFpbGVkLCBlcnJvciAlZCIsIGVycik7Ci0JaWYgKHJlc3VsdCAhPSBOVUxMKSB7Ci0JCWlmIChyZXN1bHQtPnJ4X2ZkID49IDApCi0JCQlvc19jbG9zZV9maWxlKHJlc3VsdC0+cnhfZmQpOwotCQlpZiAocmVzdWx0LT50eF9mZCA+PSAwKQotCQkJb3NfY2xvc2VfZmlsZShyZXN1bHQtPnR4X2ZkKTsKKwlwcmludGsoVU1fS0VSTl9FUlIgInVzZXJfaW5pdF90YXA6IGluaXQgZmFpbGVkLCBlcnJvciAlZCIsIGZkKTsKKwlpZiAocmVzdWx0ICE9IE5VTEwpCiAJCWtmcmVlKHJlc3VsdCk7Ci0JfQogCXJldHVybiBOVUxMOwogfQogCitzdGF0aWMgc3RydWN0IHZlY3Rvcl9mZHMgKnVzZXJfaW5pdF9oeWJyaWRfZmRzKHN0cnVjdCBhcmdsaXN0ICppZnNwZWMpCit7CisJY2hhciAqaWZhY2U7CisJc3RydWN0IHZlY3Rvcl9mZHMgKnJlc3VsdCA9IE5VTEw7CisKKwlpZmFjZSA9IHVtbF92ZWN0b3JfZmV0Y2hfYXJnKGlmc3BlYywgVE9LRU5fSUZOQU1FKTsKKwlpZiAoaWZhY2UgPT0gTlVMTCkgeworCQlwcmludGsoVU1fS0VSTl9FUlIgInVtbF90YXA6IGZhaWxlZCB0byBwYXJzZSBpbnRlcmZhY2Ugc3BlY1xuIik7CisJCWdvdG8gaHlicmlkX2NsZWFudXA7CisJfQorCisJcmVzdWx0ID0gdW1sX2ttYWxsb2Moc2l6ZW9mKHN0cnVjdCB2ZWN0b3JfZmRzKSwgVU1fR0ZQX0tFUk5FTCk7CisJaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisJCXByaW50ayhVTV9LRVJOX0VSUiAidW1sX3RhcDogZmFpbGVkIHRvIGFsbG9jYXRlIGZpbGUgZGVzY3JpcHRvcnNcbiIpOworCQlnb3RvIGh5YnJpZF9jbGVhbnVwOworCX0KKwlyZXN1bHQtPnJ4X2ZkID0gLTE7CisJcmVzdWx0LT50eF9mZCA9IC0xOworCXJlc3VsdC0+cmVtb3RlX2FkZHIgPSBOVUxMOworCXJlc3VsdC0+cmVtb3RlX2FkZHJfc2l6ZSA9IDA7CisKKwkvKiBUQVAgKi8KKworCXJlc3VsdC0+dHhfZmQgPSBjcmVhdGVfdGFwX2ZkKGlmYWNlKTsKKwlpZiAocmVzdWx0LT50eF9mZCA8IDApIHsKKwkJcHJpbnRrKFVNX0tFUk5fRVJSICJ1bWxfdGFwOiBmYWlsZWQgdG8gY3JlYXRlIHR1biBpbnRlcmZhY2U6ICVpXG4iLCByZXN1bHQtPnR4X2ZkKTsKKwkJZ290byBoeWJyaWRfY2xlYW51cDsKKwl9CisKKwkvKiBSQVcgKi8KKworCXJlc3VsdC0+cnhfZmQgPSBjcmVhdGVfcmF3X2ZkKGlmYWNlLCBFVEhfUF9BTEwsIEVUSF9QX0FMTCk7CisJaWYgKHJlc3VsdC0+cnhfZmQgPT0gLTEpIHsKKwkJcHJpbnRrKFVNX0tFUk5fRVJSCisJCQkidW1sX3RhcDogZmFpbGVkIHRvIGNyZWF0ZSBwYWlyZWQgcmF3IHNvY2tldDogJWlcbiIsIHJlc3VsdC0+cnhfZmQpOworCQlnb3RvIGh5YnJpZF9jbGVhbnVwOworCX0KKwlyZXR1cm4gcmVzdWx0OworaHlicmlkX2NsZWFudXA6CisJcHJpbnRrKFVNX0tFUk5fRVJSICJ1c2VyX2luaXRfaHlicmlkOiBpbml0IGZhaWxlZCIpOworCWlmIChyZXN1bHQgIT0gTlVMTCkKKwkJa2ZyZWUocmVzdWx0KTsKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHN0cnVjdCB2ZWN0b3JfZmRzICp1c2VyX2luaXRfdW5peF9mZHMoc3RydWN0IGFyZ2xpc3QgKmlmc3BlYywgaW50IGlkKQoreworCWludCBmZCA9IC0xOworCWludCBzb2NrdHlwZTsKKwljaGFyICpzcmMsICpkc3Q7CisJc3RydWN0IHZlY3Rvcl9mZHMgKnJlc3VsdCA9IE5VTEw7CisJc3RydWN0IHNvY2thZGRyX3VuICpsb2NhbF9hZGRyID0gTlVMTCwgKnJlbW90ZV9hZGRyID0gTlVMTDsKKworCXNyYyA9IHVtbF92ZWN0b3JfZmV0Y2hfYXJnKGlmc3BlYywgInNyYyIpOworCWRzdCA9IHVtbF92ZWN0b3JfZmV0Y2hfYXJnKGlmc3BlYywgImRzdCIpOworCXJlc3VsdCA9IHVtbF9rbWFsbG9jKHNpemVvZihzdHJ1Y3QgdmVjdG9yX2ZkcyksIFVNX0dGUF9LRVJORUwpOworCWlmIChyZXN1bHQgPT0gTlVMTCkgeworCQlwcmludGsoVU1fS0VSTl9FUlIgInVuaXggb3BlbjpjYW5ub3QgYWxsb2NhdGUgcmVtb3RlIGFkZHIiKTsKKwkJZ290byB1bml4X2NsZWFudXA7CisJfQorCXJlbW90ZV9hZGRyID0gdW1sX2ttYWxsb2Moc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl91biksIFVNX0dGUF9LRVJORUwpOworCWlmIChyZW1vdGVfYWRkciA9PSBOVUxMKSB7CisJCXByaW50ayhVTV9LRVJOX0VSUiAidW5peCBvcGVuOmNhbm5vdCBhbGxvY2F0ZSByZW1vdGUgYWRkciIpOworCQlnb3RvIHVuaXhfY2xlYW51cDsKKwl9CisKKwlzd2l0Y2ggKGlkKSB7CisJY2FzZSBJRF9CRVNTOgorCQlzb2NrdHlwZSA9IFNPQ0tfU0VRUEFDS0VUOworCQlpZiAoKHNyYyAhPSBOVUxMKSAmJiAoc3RybGVuKHNyYykgPD0gTUFYX1VOX0xFTikpIHsKKwkJCWxvY2FsX2FkZHIgPSB1bWxfa21hbGxvYyhzaXplb2Yoc3RydWN0IHNvY2thZGRyX3VuKSwgVU1fR0ZQX0tFUk5FTCk7CisJCQlpZiAobG9jYWxfYWRkciA9PSBOVUxMKSB7CisJCQkJcHJpbnRrKFVNX0tFUk5fRVJSICJiZXNzIG9wZW46Y2Fubm90IGFsbG9jYXRlIGxvY2FsIGFkZHIiKTsKKwkJCQlnb3RvIHVuaXhfY2xlYW51cDsKKwkJCX0KKwkJCWxvY2FsX2FkZHItPnN1bl9mYW1pbHkgPSBBRl9VTklYOworCQkJbWVtY3B5KGxvY2FsX2FkZHItPnN1bl9wYXRoLCBzcmMsIHN0cmxlbihzcmMpICsgMSk7CisJCX0KKwkJaWYgKChkc3QgPT0gTlVMTCkgfHwgKHN0cmxlbihkc3QpID4gTUFYX1VOX0xFTikpCisJCQlnb3RvIHVuaXhfY2xlYW51cDsKKwkJcmVtb3RlX2FkZHItPnN1bl9mYW1pbHkgPSBBRl9VTklYOworCQltZW1jcHkocmVtb3RlX2FkZHItPnN1bl9wYXRoLCBkc3QsIHN0cmxlbihkc3QpICsgMSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXByaW50ayhLRVJOX0VSUiAiVW5zdXBwb3J0ZWQgdW5peCBzb2NrZXQgdHlwZVxuIik7CisJCXJldHVybiBOVUxMOworCX0KKworCWZkID0gc29ja2V0KEFGX1VOSVgsIHNvY2t0eXBlLCAwKTsKKwlpZiAoZmQgPT0gLTEpIHsKKwkJcHJpbnRrKFVNX0tFUk5fRVJSCisJCQkidW5peCBvcGVuOiBjb3VsZCBub3Qgb3BlbiBzb2NrZXQsIGVycm9yID0gJWQiLAorCQkJLWVycm5vCisJCSk7CisJCWdvdG8gdW5peF9jbGVhbnVwOworCX0KKwlpZiAobG9jYWxfYWRkciAhPSBOVUxMKSB7CisJCWlmIChiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICopIGxvY2FsX2FkZHIsIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfdW4pKSkgeworCQkJcHJpbnRrKFVNX0tFUk5fRVJSIFVOSVhfQklORF9GQUlMLCBlcnJubyk7CisJCQlnb3RvIHVuaXhfY2xlYW51cDsKKwkJfQorCX0KKwlzd2l0Y2ggKGlkKSB7CisJY2FzZSBJRF9CRVNTOgorCQlpZiAoY29ubmVjdChmZCwgcmVtb3RlX2FkZHIsIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfdW4pKSA8IDApIHsKKwkJCXByaW50ayhVTV9LRVJOX0VSUiAiYmVzcyBvcGVuOmNhbm5vdCBjb25uZWN0IHRvICVzICVpIiwgcmVtb3RlX2FkZHItPnN1bl9wYXRoLCAtZXJybm8pOworCQkJZ290byB1bml4X2NsZWFudXA7CisJCX0KKwkJYnJlYWs7CisJfQorCXJlc3VsdC0+cnhfZmQgPSBmZDsKKwlyZXN1bHQtPnR4X2ZkID0gZmQ7CisJcmVzdWx0LT5yZW1vdGVfYWRkcl9zaXplID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl91bik7CisJcmVzdWx0LT5yZW1vdGVfYWRkciA9IHJlbW90ZV9hZGRyOworCXJldHVybiByZXN1bHQ7Cit1bml4X2NsZWFudXA6CisJaWYgKGZkID49IDApCisJCW9zX2Nsb3NlX2ZpbGUoZmQpOworCWlmIChyZW1vdGVfYWRkciAhPSBOVUxMKQorCQlrZnJlZShyZW1vdGVfYWRkcik7CisJaWYgKHJlc3VsdCAhPSBOVUxMKQorCQlrZnJlZShyZXN1bHQpOworCXJldHVybiBOVUxMOworfQogCiBzdGF0aWMgc3RydWN0IHZlY3Rvcl9mZHMgKnVzZXJfaW5pdF9yYXdfZmRzKHN0cnVjdCBhcmdsaXN0ICppZnNwZWMpCiB7Ci0Jc3RydWN0IGlmcmVxIGlmcjsKIAlpbnQgcnhmZCA9IC0xLCB0eGZkID0gLTE7Ci0Jc3RydWN0IHNvY2thZGRyX2xsIHNvY2s7CiAJaW50IGVyciA9IC1FTk9NRU07CiAJY2hhciAqaWZhY2U7CiAJc3RydWN0IHZlY3Rvcl9mZHMgKnJlc3VsdCA9IE5VTEw7CiAKIAlpZmFjZSA9IHVtbF92ZWN0b3JfZmV0Y2hfYXJnKGlmc3BlYywgVE9LRU5fSUZOQU1FKTsKIAlpZiAoaWZhY2UgPT0gTlVMTCkKLQkJZ290byBjbGVhbnVwOworCQlnb3RvIHJhd19jbGVhbnVwOwogCi0JcnhmZCA9IHNvY2tldChBRl9QQUNLRVQsIFNPQ0tfUkFXLCBFVEhfUF9BTEwpOworCXJ4ZmQgPSBjcmVhdGVfcmF3X2ZkKGlmYWNlLCBFVEhfUF9BTEwsIEVUSF9QX0FMTCk7CiAJaWYgKHJ4ZmQgPT0gLTEpIHsKIAkJZXJyID0gLWVycm5vOwotCQlnb3RvIGNsZWFudXA7CisJCWdvdG8gcmF3X2NsZWFudXA7CiAJfQotCXR4ZmQgPSBzb2NrZXQoQUZfUEFDS0VULCBTT0NLX1JBVywgMCk7IC8qIFR1cm4gb2ZmIFJYIG9uIHRoaXMgZmQgKi8KKwl0eGZkID0gY3JlYXRlX3Jhd19mZChpZmFjZSwgMCwgRVRIX1BfSVApOyAvKiBUdXJuIG9mZiBSWCBvbiB0aGlzIGZkICovCiAJaWYgKHR4ZmQgPT0gLTEpIHsKIAkJZXJyID0gLWVycm5vOwotCQlnb3RvIGNsZWFudXA7CisJCWdvdG8gcmF3X2NsZWFudXA7CiAJfQotCW1lbXNldCgmaWZyLCAwLCBzaXplb2YoaWZyKSk7Ci0Jc3RybmNweSgoY2hhciAqKSZpZnIuaWZyX25hbWUsIGlmYWNlLCBzaXplb2YoaWZyLmlmcl9uYW1lKSAtIDEpOwotCWlmIChpb2N0bChyeGZkLCBTSU9DR0lGSU5ERVgsICh2b2lkICopICZpZnIpIDwgMCkgewotCQllcnIgPSAtZXJybm87Ci0JCWdvdG8gY2xlYW51cDsKLQl9Ci0KLQlzb2NrLnNsbF9mYW1pbHkgPSBBRl9QQUNLRVQ7Ci0Jc29jay5zbGxfcHJvdG9jb2wgPSBodG9ucyhFVEhfUF9BTEwpOwotCXNvY2suc2xsX2lmaW5kZXggPSBpZnIuaWZyX2lmaW5kZXg7Ci0KLQlpZiAoYmluZChyeGZkLAotCQkoc3RydWN0IHNvY2thZGRyICopICZzb2NrLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2xsKSkgPCAwKSB7Ci0JCWVyciA9IC1lcnJubzsKLQkJZ290byBjbGVhbnVwOwotCX0KLQotCXNvY2suc2xsX2ZhbWlseSA9IEFGX1BBQ0tFVDsKLQlzb2NrLnNsbF9wcm90b2NvbCA9IGh0b25zKEVUSF9QX0lQKTsKLQlzb2NrLnNsbF9pZmluZGV4ID0gaWZyLmlmcl9pZmluZGV4OwotCi0JaWYgKGJpbmQodHhmZCwKLQkJKHN0cnVjdCBzb2NrYWRkciAqKSAmc29jaywgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9sbCkpIDwgMCkgewotCQllcnIgPSAtZXJybm87Ci0JCWdvdG8gY2xlYW51cDsKLQl9Ci0KIAlyZXN1bHQgPSB1bWxfa21hbGxvYyhzaXplb2Yoc3RydWN0IHZlY3Rvcl9mZHMpLCBVTV9HRlBfS0VSTkVMKTsKIAlpZiAocmVzdWx0ICE9IE5VTEwpIHsKIAkJcmVzdWx0LT5yeF9mZCA9IHJ4ZmQ7CkBAIC0yNjAsMTMgKzM3OSwxMCBAQCBzdGF0aWMgc3RydWN0IHZlY3Rvcl9mZHMgKnVzZXJfaW5pdF9yYXdfZmRzKHN0cnVjdCBhcmdsaXN0ICppZnNwZWMpCiAJCXJlc3VsdC0+cmVtb3RlX2FkZHJfc2l6ZSA9IDA7CiAJfQogCXJldHVybiByZXN1bHQ7Ci1jbGVhbnVwOgorcmF3X2NsZWFudXA6CiAJcHJpbnRrKFVNX0tFUk5fRVJSICJ1c2VyX2luaXRfcmF3OiBpbml0IGZhaWxlZCwgZXJyb3IgJWQiLCBlcnIpOwotCWlmIChyeGZkID49IDApCi0JCW9zX2Nsb3NlX2ZpbGUocnhmZCk7Ci0JaWYgKHR4ZmQgPj0gMCkKLQkJb3NfY2xvc2VfZmlsZSh0eGZkKTsKLQlrZnJlZShyZXN1bHQpOworCWlmIChyZXN1bHQgIT0gTlVMTCkKKwkJa2ZyZWUocmVzdWx0KTsKIAlyZXR1cm4gTlVMTDsKIH0KIApAQCAtNDU2LDEyICs1NzIsMTYgQEAgc3RydWN0IHZlY3Rvcl9mZHMgKnVtbF92ZWN0b3JfdXNlcl9vcGVuKAogCX0KIAlpZiAoc3RybmNtcCh0cmFuc3BvcnQsIFRSQU5TX1JBVywgVFJBTlNfUkFXX0xFTikgPT0gMCkKIAkJcmV0dXJuIHVzZXJfaW5pdF9yYXdfZmRzKHBhcnNlZCk7CisJaWYgKHN0cm5jbXAodHJhbnNwb3J0LCBUUkFOU19IWUJSSUQsIFRSQU5TX0hZQlJJRF9MRU4pID09IDApCisJCXJldHVybiB1c2VyX2luaXRfaHlicmlkX2ZkcyhwYXJzZWQpOwogCWlmIChzdHJuY21wKHRyYW5zcG9ydCwgVFJBTlNfVEFQLCBUUkFOU19UQVBfTEVOKSA9PSAwKQogCQlyZXR1cm4gdXNlcl9pbml0X3RhcF9mZHMocGFyc2VkKTsKIAlpZiAoc3RybmNtcCh0cmFuc3BvcnQsIFRSQU5TX0dSRSwgVFJBTlNfR1JFX0xFTikgPT0gMCkKIAkJcmV0dXJuIHVzZXJfaW5pdF9zb2NrZXRfZmRzKHBhcnNlZCwgSURfR1JFKTsKIAlpZiAoc3RybmNtcCh0cmFuc3BvcnQsIFRSQU5TX0wyVFBWMywgVFJBTlNfTDJUUFYzX0xFTikgPT0gMCkKIAkJcmV0dXJuIHVzZXJfaW5pdF9zb2NrZXRfZmRzKHBhcnNlZCwgSURfTDJUUFYzKTsKKwlpZiAoc3RybmNtcCh0cmFuc3BvcnQsIFRSQU5TX0JFU1MsIFRSQU5TX0JFU1NfTEVOKSA9PSAwKQorCQlyZXR1cm4gdXNlcl9pbml0X3VuaXhfZmRzKHBhcnNlZCwgSURfQkVTUyk7CiAJcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTQ4Miw4ICs2MDIsOSBAQCBpbnQgdW1sX3ZlY3Rvcl9zZW5kbXNnKGludCBmZCwgdm9pZCAqaGRyLCBpbnQgZmxhZ3MpCiBpbnQgdW1sX3ZlY3Rvcl9yZWN2bXNnKGludCBmZCwgdm9pZCAqaGRyLCBpbnQgZmxhZ3MpCiB7CiAJaW50IG47CisJc3RydWN0IG1zZ2hkciAqbXNnID0gKHN0cnVjdCBtc2doZHIgKikgaGRyOwogCi0JQ0FUQ0hfRUlOVFIobiA9IHJlY3Ztc2coZmQsIChzdHJ1Y3QgbXNnaGRyICopIGhkciwgIGZsYWdzKSk7CisJQ0FUQ0hfRUlOVFIobiA9IHJlYWR2KGZkLCBtc2ctPm1zZ19pb3YsIG1zZy0+bXNnX2lvdmxlbikpOwogCWlmICgobiA8IDApICYmIChlcnJubyA9PSBFQUdBSU4pKQogCQlyZXR1cm4gMDsKIAlpZiAobiA+PSAwKQpAQCAtNDk3LDcgKzYxOCw3IEBAIGludCB1bWxfdmVjdG9yX3dyaXRldihpbnQgZmQsIHZvaWQgKmhkciwgaW50IGlvdmNvdW50KQogCWludCBuOwogCiAJQ0FUQ0hfRUlOVFIobiA9IHdyaXRldihmZCwgKHN0cnVjdCBpb3ZlYyAqKSBoZHIsICBpb3Zjb3VudCkpOwotCWlmICgobiA8IDApICYmIChlcnJubyA9PSBFQUdBSU4pKQorCWlmICgobiA8IDApICYmICgoZXJybm8gPT0gRUFHQUlOKSB8fCAoZXJybm8gPT0gRU5PQlVGUykpKQogCQlyZXR1cm4gMDsKIAlpZiAobiA+PSAwKQogCQlyZXR1cm4gbjsKQEAgLTUxNCw3ICs2MzUsNyBAQCBpbnQgdW1sX3ZlY3Rvcl9zZW5kbW1zZygKIAlpbnQgbjsKIAogCUNBVENIX0VJTlRSKG4gPSBzZW5kbW1zZyhmZCwgKHN0cnVjdCBtbXNnaGRyICopIG1zZ3ZlYywgdmxlbiwgZmxhZ3MpKTsKLQlpZiAoKG4gPCAwKSAmJiAoZXJybm8gPT0gRUFHQUlOKSkKKwlpZiAoKG4gPCAwKSAmJiAoKGVycm5vID09IEVBR0FJTikgfHwgKGVycm5vID09IEVOT0JVRlMpKSkKIAkJcmV0dXJuIDA7CiAJaWYgKG4gPj0gMCkKIAkJcmV0dXJuIG47CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX3VzZXIuaCBiL2FyY2gvdW0vZHJpdmVycy92ZWN0b3JfdXNlci5oCmluZGV4IGQ3Y2JmZjcuLjY0OWVjMjUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy92ZWN0b3JfdXNlci5oCisrKyBiL2FyY2gvdW0vZHJpdmVycy92ZWN0b3JfdXNlci5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1VNX1ZFQ1RPUl9VU0VSX0gKQEAgLTE2LDEzICsxNiwxOCBAQAogI2RlZmluZSBUUkFOU19UQVAgInRhcCIKICNkZWZpbmUgVFJBTlNfVEFQX0xFTiBzdHJsZW4oVFJBTlNfVEFQKQogCi0KICNkZWZpbmUgVFJBTlNfR1JFICJncmUiCiAjZGVmaW5lIFRSQU5TX0dSRV9MRU4gc3RybGVuKFRSQU5TX1JBVykKIAogI2RlZmluZSBUUkFOU19MMlRQVjMgImwydHB2MyIKICNkZWZpbmUgVFJBTlNfTDJUUFYzX0xFTiBzdHJsZW4oVFJBTlNfTDJUUFYzKQogCisjZGVmaW5lIFRSQU5TX0hZQlJJRCAiaHlicmlkIgorI2RlZmluZSBUUkFOU19IWUJSSURfTEVOIHN0cmxlbihUUkFOU19IWUJSSUQpCisKKyNkZWZpbmUgVFJBTlNfQkVTUyAiYmVzcyIKKyNkZWZpbmUgVFJBTlNfQkVTU19MRU4gc3RybGVuKFRSQU5TX0JFU1MpCisKICNpZm5kZWYgSVBQUk9UT19HUkUKICNkZWZpbmUgSVBQUk9UT19HUkUgMHgyRgogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdmhvc3RfdXNlci5oIGIvYXJjaC91bS9kcml2ZXJzL3Zob3N0X3VzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWZmNWVhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC91bS9kcml2ZXJzL3Zob3N0X3VzZXIuaApAQCAtMCwwICsxLDExNyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKy8qIFZob3N0LXVzZXIgcHJvdG9jb2wgKi8KKworI2lmbmRlZiBfX1ZIT1NUX1VTRVJfSF9fCisjZGVmaW5lIF9fVkhPU1RfVVNFUl9IX18KKworLyogTWVzc2FnZSBmbGFncyAqLworI2RlZmluZSBWSE9TVF9VU0VSX0ZMQUdfUkVQTFkJCUJJVCgyKQorI2RlZmluZSBWSE9TVF9VU0VSX0ZMQUdfTkVFRF9SRVBMWQlCSVQoMykKKy8qIEZlYXR1cmUgYml0cyAqLworI2RlZmluZSBWSE9TVF9VU0VSX0ZfUFJPVE9DT0xfRkVBVFVSRVMJMzAKKy8qIFByb3RvY29sIGZlYXR1cmUgYml0cyAqLworI2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLCQkzCisjZGVmaW5lIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9TTEFWRV9SRVEJCTUKKyNkZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX0NPTkZJRwkJOQorLyogVnJpbmcgc3RhdGUgaW5kZXggbWFza3MgKi8KKyNkZWZpbmUgVkhPU1RfVVNFUl9WUklOR19JTkRFWF9NQVNLCTB4ZmYKKyNkZWZpbmUgVkhPU1RfVVNFUl9WUklOR19QT0xMX01BU0sJQklUKDgpCisKKy8qIFN1cHBvcnRlZCB2ZXJzaW9uICovCisjZGVmaW5lIFZIT1NUX1VTRVJfVkVSU0lPTgkJMQorLyogU3VwcG9ydGVkIHRyYW5zcG9ydCBmZWF0dXJlcyAqLworI2RlZmluZSBWSE9TVF9VU0VSX1NVUFBPUlRFRF9GCQlCSVRfVUxMKFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUykKKy8qIFN1cHBvcnRlZCBwcm90b2NvbCBmZWF0dXJlcyAqLworI2RlZmluZSBWSE9TVF9VU0VSX1NVUFBPUlRFRF9QUk9UT0NPTF9GCShCSVRfVUxMKFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9SRVBMWV9BQ0spIHwgXAorCQkJCQkgQklUX1VMTChWSE9TVF9VU0VSX1BST1RPQ09MX0ZfU0xBVkVfUkVRKSB8IFwKKwkJCQkJIEJJVF9VTEwoVkhPU1RfVVNFUl9QUk9UT0NPTF9GX0NPTkZJRykpCisKK2VudW0gdmhvc3RfdXNlcl9yZXF1ZXN0IHsKKwlWSE9TVF9VU0VSX0dFVF9GRUFUVVJFUyA9IDEsCisJVkhPU1RfVVNFUl9TRVRfRkVBVFVSRVMgPSAyLAorCVZIT1NUX1VTRVJfU0VUX09XTkVSID0gMywKKwlWSE9TVF9VU0VSX1JFU0VUX09XTkVSID0gNCwKKwlWSE9TVF9VU0VSX1NFVF9NRU1fVEFCTEUgPSA1LAorCVZIT1NUX1VTRVJfU0VUX0xPR19CQVNFID0gNiwKKwlWSE9TVF9VU0VSX1NFVF9MT0dfRkQgPSA3LAorCVZIT1NUX1VTRVJfU0VUX1ZSSU5HX05VTSA9IDgsCisJVkhPU1RfVVNFUl9TRVRfVlJJTkdfQUREUiA9IDksCisJVkhPU1RfVVNFUl9TRVRfVlJJTkdfQkFTRSA9IDEwLAorCVZIT1NUX1VTRVJfR0VUX1ZSSU5HX0JBU0UgPSAxMSwKKwlWSE9TVF9VU0VSX1NFVF9WUklOR19LSUNLID0gMTIsCisJVkhPU1RfVVNFUl9TRVRfVlJJTkdfQ0FMTCA9IDEzLAorCVZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VSUiA9IDE0LAorCVZIT1NUX1VTRVJfR0VUX1BST1RPQ09MX0ZFQVRVUkVTID0gMTUsCisJVkhPU1RfVVNFUl9TRVRfUFJPVE9DT0xfRkVBVFVSRVMgPSAxNiwKKwlWSE9TVF9VU0VSX0dFVF9RVUVVRV9OVU0gPSAxNywKKwlWSE9TVF9VU0VSX1NFVF9WUklOR19FTkFCTEUgPSAxOCwKKwlWSE9TVF9VU0VSX1NFTkRfUkFSUCA9IDE5LAorCVZIT1NUX1VTRVJfTkVUX1NFTkRfTVRVID0gMjAsCisJVkhPU1RfVVNFUl9TRVRfU0xBVkVfUkVRX0ZEID0gMjEsCisJVkhPU1RfVVNFUl9JT1RMQl9NU0cgPSAyMiwKKwlWSE9TVF9VU0VSX1NFVF9WUklOR19FTkRJQU4gPSAyMywKKwlWSE9TVF9VU0VSX0dFVF9DT05GSUcgPSAyNCwKKwlWSE9TVF9VU0VSX1NFVF9DT05GSUcgPSAyNSwKK307CisKK2VudW0gdmhvc3RfdXNlcl9zbGF2ZV9yZXF1ZXN0IHsKKwlWSE9TVF9VU0VSX1NMQVZFX0lPVExCX01TRyA9IDEsCisJVkhPU1RfVVNFUl9TTEFWRV9DT05GSUdfQ0hBTkdFX01TRyA9IDIsCisJVkhPU1RfVVNFUl9TTEFWRV9WUklOR19IT1NUX05PVElGSUVSX01TRyA9IDMsCit9OworCitzdHJ1Y3Qgdmhvc3RfdXNlcl9oZWFkZXIgeworCS8qCisJICogVXNlIGVudW0gdmhvc3RfdXNlcl9yZXF1ZXN0IGZvciBvdXRnb2luZyBtZXNzYWdlcywKKwkgKiB1c2VzIGVudW0gdmhvc3RfdXNlcl9zbGF2ZV9yZXF1ZXN0IGZvciBpbmNvbWluZyBvbmVzLgorCSAqLworCXUzMiByZXF1ZXN0OworCXUzMiBmbGFnczsKKwl1MzIgc2l6ZTsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCB2aG9zdF91c2VyX2NvbmZpZyB7CisJdTMyIG9mZnNldDsKKwl1MzIgc2l6ZTsKKwl1MzIgZmxhZ3M7CisJdTggcGF5bG9hZFswXTsgLyogVmFyaWFibGUgbGVuZ3RoICovCit9IF9fcGFja2VkOworCitzdHJ1Y3Qgdmhvc3RfdXNlcl92cmluZ19zdGF0ZSB7CisJdTMyIGluZGV4OworCXUzMiBudW07Cit9IF9fcGFja2VkOworCitzdHJ1Y3Qgdmhvc3RfdXNlcl92cmluZ19hZGRyIHsKKwl1MzIgaW5kZXg7CisJdTMyIGZsYWdzOworCXU2NCBkZXNjLCB1c2VkLCBhdmFpbCwgbG9nOworfSBfX3BhY2tlZDsKKworc3RydWN0IHZob3N0X3VzZXJfbWVtX3JlZ2lvbiB7CisJdTY0IGd1ZXN0X2FkZHI7CisJdTY0IHNpemU7CisJdTY0IHVzZXJfYWRkcjsKKwl1NjQgbW1hcF9vZmZzZXQ7Cit9IF9fcGFja2VkOworCitzdHJ1Y3Qgdmhvc3RfdXNlcl9tZW1fcmVnaW9ucyB7CisJdTMyIG51bTsKKwl1MzIgcGFkZGluZzsKKwlzdHJ1Y3Qgdmhvc3RfdXNlcl9tZW1fcmVnaW9uIHJlZ2lvbnNbMl07IC8qIEN1cnJlbnRseSBzdXBwb3J0aW5nIDIgKi8KK30gX19wYWNrZWQ7CisKK3VuaW9uIHZob3N0X3VzZXJfcGF5bG9hZCB7CisJdTY0IGludGVnZXI7CisJc3RydWN0IHZob3N0X3VzZXJfY29uZmlnIGNvbmZpZzsKKwlzdHJ1Y3Qgdmhvc3RfdXNlcl92cmluZ19zdGF0ZSB2cmluZ19zdGF0ZTsKKwlzdHJ1Y3Qgdmhvc3RfdXNlcl92cmluZ19hZGRyIHZyaW5nX2FkZHI7CisJc3RydWN0IHZob3N0X3VzZXJfbWVtX3JlZ2lvbnMgbWVtX3JlZ2lvbnM7Cit9OworCitzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgeworCXN0cnVjdCB2aG9zdF91c2VyX2hlYWRlciBoZWFkZXI7CisJdW5pb24gdmhvc3RfdXNlcl9wYXlsb2FkIHBheWxvYWQ7Cit9IF9fcGFja2VkOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy92aXJ0aW9fdW1sLmMgYi9hcmNoL3VtL2RyaXZlcnMvdmlydGlvX3VtbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjOGM1MmMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3VtL2RyaXZlcnMvdmlydGlvX3VtbC5jCkBAIC0wLDAgKzEsMTE3NyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKy8qCisgKiBWaXJ0aW8gdmhvc3QtdXNlciBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQoYykgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFRoaXMgbW9kdWxlIGFsbG93cyB2aXJ0aW8gZGV2aWNlcyB0byBiZSB1c2VkIG92ZXIgYSB2aG9zdC11c2VyIHNvY2tldC4KKyAqCisgKiBHdWVzdCBkZXZpY2VzIGNhbiBiZSBpbnN0YW50aWF0ZWQgYnkga2VybmVsIG1vZHVsZSBvciBjb21tYW5kIGxpbmUKKyAqIHBhcmFtZXRlcnMuIE9uZSBkZXZpY2Ugd2lsbCBiZSBjcmVhdGVkIGZvciBlYWNoIHBhcmFtZXRlci4gU3ludGF4OgorICoKKyAqCQlbdmlydGlvX3VtbC5dZGV2aWNlPTxzb2NrZXQ+Ojx2aXJ0aW9faWQ+Wzo8cGxhdGZvcm1faWQ+XQorICogd2hlcmU6CisgKgkJPHNvY2tldD4JOj0gdmhvc3QtdXNlciBzb2NrZXQgcGF0aCB0byBjb25uZWN0CisgKgkJPHZpcnRpb19pZD4JOj0gdmlydGlvIGRldmljZSBpZCAoYXMgaW4gdmlydGlvX2lkcy5oKQorICoJCTxwbGF0Zm9ybV9pZD4JOj0gKG9wdGlvbmFsKSBwbGF0Zm9ybSBkZXZpY2UgaWQKKyAqCisgKiBleGFtcGxlOgorICoJCXZpcnRpb191bWwuZGV2aWNlPS92YXIvdW1sLnNvY2tldDoxCisgKgorICogQmFzZWQgb24gVmlydGlvIE1NSU8gZHJpdmVyIGJ5IFBhd2VsIE1vbGwsIGNvcHlyaWdodCAyMDExLTIwMTQsIEFSTSBMdGQuCisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdmlydGlvLmg+CisjaW5jbHVkZSA8bGludXgvdmlydGlvX2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L3ZpcnRpb19yaW5nLmg+CisjaW5jbHVkZSA8c2hhcmVkL2FzLWxheW91dC5oPgorI2luY2x1ZGUgPGlycV9rZXJuLmg+CisjaW5jbHVkZSA8aW5pdC5oPgorI2luY2x1ZGUgPG9zLmg+CisjaW5jbHVkZSAidmhvc3RfdXNlci5oIgorCisvKiBXb3JrYXJvdW5kIGR1ZSB0byBhIGNvbmZsaWN0IGJldHdlZW4gaXJxX3VzZXIuaCBhbmQgaXJxcmV0dXJuLmggKi8KKyNpZmRlZiBJUlFfTk9ORQorI3VuZGVmIElSUV9OT05FCisjZW5kaWYKKworI2RlZmluZSBNQVhfU1VQUE9SVEVEX1FVRVVFX1NJWkUJMjU2CisKKyNkZWZpbmUgdG9fdmlydGlvX3VtbF9kZXZpY2UoX3ZkZXYpIFwKKwljb250YWluZXJfb2YoX3ZkZXYsIHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSwgdmRldikKKworc3RydWN0IHZpcnRpb191bWxfZGV2aWNlIHsKKwlzdHJ1Y3QgdmlydGlvX2RldmljZSB2ZGV2OworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CisKKwlpbnQgc29jaywgcmVxX2ZkOworCXU2NCBmZWF0dXJlczsKKwl1NjQgcHJvdG9jb2xfZmVhdHVyZXM7CisJdTggc3RhdHVzOworfTsKKworc3RydWN0IHZpcnRpb191bWxfdnFfaW5mbyB7CisJaW50IGtpY2tfZmQsIGNhbGxfZmQ7CisJY2hhciBuYW1lWzMyXTsKK307CisKK2V4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgcGh5c21lbV9zaXplLCBoaWdobWVtOworCisjZGVmaW5lIHZ1X2Vycih2dV9kZXYsIC4uLikJZGV2X2VycigmKHZ1X2RldiktPnBkZXYtPmRldiwgX19WQV9BUkdTX18pCisKKy8qIFZob3N0LXVzZXIgcHJvdG9jb2wgKi8KKworc3RhdGljIGludCBmdWxsX3NlbmRtc2dfZmRzKGludCBmZCwgY29uc3Qgdm9pZCAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuLAorCQkJICAgIGNvbnN0IGludCAqZmRzLCB1bnNpZ25lZCBpbnQgZmRzX251bSkKK3sKKwlpbnQgcmM7CisKKwlkbyB7CisJCXJjID0gb3Nfc2VuZG1zZ19mZHMoZmQsIGJ1ZiwgbGVuLCBmZHMsIGZkc19udW0pOworCQlpZiAocmMgPiAwKSB7CisJCQlidWYgKz0gcmM7CisJCQlsZW4gLT0gcmM7CisJCQlmZHMgPSBOVUxMOworCQkJZmRzX251bSA9IDA7CisJCX0KKwl9IHdoaWxlIChsZW4gJiYgKHJjID49IDAgfHwgcmMgPT0gLUVJTlRSKSk7CisKKwlpZiAocmMgPCAwKQorCQlyZXR1cm4gcmM7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZnVsbF9yZWFkKGludCBmZCwgdm9pZCAqYnVmLCBpbnQgbGVuKQoreworCWludCByYzsKKworCWRvIHsKKwkJcmMgPSBvc19yZWFkX2ZpbGUoZmQsIGJ1ZiwgbGVuKTsKKwkJaWYgKHJjID4gMCkgeworCQkJYnVmICs9IHJjOworCQkJbGVuIC09IHJjOworCQl9CisJfSB3aGlsZSAobGVuICYmIChyYyA+IDAgfHwgcmMgPT0gLUVJTlRSKSk7CisKKwlpZiAocmMgPCAwKQorCQlyZXR1cm4gcmM7CisJaWYgKHJjID09IDApCisJCXJldHVybiAtRUNPTk5SRVNFVDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB2aG9zdF91c2VyX3JlY3ZfaGVhZGVyKGludCBmZCwgc3RydWN0IHZob3N0X3VzZXJfbXNnICptc2cpCit7CisJcmV0dXJuIGZ1bGxfcmVhZChmZCwgbXNnLCBzaXplb2YobXNnLT5oZWFkZXIpKTsKK30KKworc3RhdGljIGludCB2aG9zdF91c2VyX3JlY3YoaW50IGZkLCBzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgKm1zZywKKwkJCSAgIHNpemVfdCBtYXhfcGF5bG9hZF9zaXplKQoreworCXNpemVfdCBzaXplOworCWludCByYyA9IHZob3N0X3VzZXJfcmVjdl9oZWFkZXIoZmQsIG1zZyk7CisKKwlpZiAocmMpCisJCXJldHVybiByYzsKKwlzaXplID0gbXNnLT5oZWFkZXIuc2l6ZTsKKwlpZiAoc2l6ZSA+IG1heF9wYXlsb2FkX3NpemUpCisJCXJldHVybiAtRVBST1RPOworCXJldHVybiBmdWxsX3JlYWQoZmQsICZtc2ctPnBheWxvYWQsIHNpemUpOworfQorCitzdGF0aWMgaW50IHZob3N0X3VzZXJfcmVjdl9yZXNwKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJCXN0cnVjdCB2aG9zdF91c2VyX21zZyAqbXNnLAorCQkJCXNpemVfdCBtYXhfcGF5bG9hZF9zaXplKQoreworCWludCByYyA9IHZob3N0X3VzZXJfcmVjdih2dV9kZXYtPnNvY2ssIG1zZywgbWF4X3BheWxvYWRfc2l6ZSk7CisKKwlpZiAocmMpCisJCXJldHVybiByYzsKKworCWlmIChtc2ctPmhlYWRlci5mbGFncyAhPSAoVkhPU1RfVVNFUl9GTEFHX1JFUExZIHwgVkhPU1RfVVNFUl9WRVJTSU9OKSkKKwkJcmV0dXJuIC1FUFJPVE87CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB2aG9zdF91c2VyX3JlY3ZfdTY0KHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJICAgICAgIHU2NCAqdmFsdWUpCit7CisJc3RydWN0IHZob3N0X3VzZXJfbXNnIG1zZzsKKwlpbnQgcmMgPSB2aG9zdF91c2VyX3JlY3ZfcmVzcCh2dV9kZXYsICZtc2csCisJCQkJICAgICAgc2l6ZW9mKG1zZy5wYXlsb2FkLmludGVnZXIpKTsKKworCWlmIChyYykKKwkJcmV0dXJuIHJjOworCWlmIChtc2cuaGVhZGVyLnNpemUgIT0gc2l6ZW9mKG1zZy5wYXlsb2FkLmludGVnZXIpKQorCQlyZXR1cm4gLUVQUk9UTzsKKwkqdmFsdWUgPSBtc2cucGF5bG9hZC5pbnRlZ2VyOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZob3N0X3VzZXJfcmVjdl9yZXEoc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYsCisJCQkgICAgICAgc3RydWN0IHZob3N0X3VzZXJfbXNnICptc2csCisJCQkgICAgICAgc2l6ZV90IG1heF9wYXlsb2FkX3NpemUpCit7CisJaW50IHJjID0gdmhvc3RfdXNlcl9yZWN2KHZ1X2Rldi0+cmVxX2ZkLCBtc2csIG1heF9wYXlsb2FkX3NpemUpOworCisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlpZiAoKG1zZy0+aGVhZGVyLmZsYWdzICYgflZIT1NUX1VTRVJfRkxBR19ORUVEX1JFUExZKSAhPQorCQkJVkhPU1RfVVNFUl9WRVJTSU9OKQorCQlyZXR1cm4gLUVQUk9UTzsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZob3N0X3VzZXJfc2VuZChzdHJ1Y3QgdmlydGlvX3VtbF9kZXZpY2UgKnZ1X2RldiwKKwkJCSAgIGJvb2wgbmVlZF9yZXNwb25zZSwgc3RydWN0IHZob3N0X3VzZXJfbXNnICptc2csCisJCQkgICBpbnQgKmZkcywgc2l6ZV90IG51bV9mZHMpCit7CisJc2l6ZV90IHNpemUgPSBzaXplb2YobXNnLT5oZWFkZXIpICsgbXNnLT5oZWFkZXIuc2l6ZTsKKwlib29sIHJlcXVlc3RfYWNrOworCWludCByYzsKKworCW1zZy0+aGVhZGVyLmZsYWdzIHw9IFZIT1NUX1VTRVJfVkVSU0lPTjsKKworCS8qCisJICogVGhlIG5lZWRfcmVzcG9uc2UgZmxhZyBpbmRpY2F0ZXMgdGhhdCB3ZSBhbHJlYWR5IG5lZWQgYSByZXNwb25zZSwKKwkgKiBlLmcuIHRvIHJlYWQgdGhlIGZlYXR1cmVzLiBJbiB0aGVzZSBjYXNlcywgZG9uJ3QgcmVxdWVzdCBhbiBBQ0sgYXMKKwkgKiBpdCBpcyBtZWFuaW5nbGVzcy4gQWxzbyByZXF1ZXN0IGFuIEFDSyBvbmx5IGlmIHN1cHBvcnRlZC4KKwkgKi8KKwlyZXF1ZXN0X2FjayA9ICFuZWVkX3Jlc3BvbnNlOworCWlmICghKHZ1X2Rldi0+cHJvdG9jb2xfZmVhdHVyZXMgJgorCQkJQklUX1VMTChWSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLKSkpCisJCXJlcXVlc3RfYWNrID0gZmFsc2U7CisKKwlpZiAocmVxdWVzdF9hY2spCisJCW1zZy0+aGVhZGVyLmZsYWdzIHw9IFZIT1NUX1VTRVJfRkxBR19ORUVEX1JFUExZOworCisJcmMgPSBmdWxsX3NlbmRtc2dfZmRzKHZ1X2Rldi0+c29jaywgbXNnLCBzaXplLCBmZHMsIG51bV9mZHMpOworCWlmIChyYyA8IDApCisJCXJldHVybiByYzsKKworCWlmIChyZXF1ZXN0X2FjaykgeworCQl1aW50NjRfdCBzdGF0dXM7CisKKwkJcmMgPSB2aG9zdF91c2VyX3JlY3ZfdTY0KHZ1X2RldiwgJnN0YXR1cyk7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKworCQlpZiAoc3RhdHVzKSB7CisJCQl2dV9lcnIodnVfZGV2LCAic2xhdmUgcmVwb3J0cyBlcnJvcjogJWxsdVxuIiwgc3RhdHVzKTsKKwkJCXJldHVybiAtRUlPOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9zZW5kX25vX3BheWxvYWQoc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYsCisJCQkJICAgICAgYm9vbCBuZWVkX3Jlc3BvbnNlLCB1MzIgcmVxdWVzdCkKK3sKKwlzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgbXNnID0geworCQkuaGVhZGVyLnJlcXVlc3QgPSByZXF1ZXN0LAorCX07CisKKwlyZXR1cm4gdmhvc3RfdXNlcl9zZW5kKHZ1X2RldiwgbmVlZF9yZXNwb25zZSwgJm1zZywgTlVMTCwgMCk7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9zZW5kX25vX3BheWxvYWRfZmQoc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYsCisJCQkJCSB1MzIgcmVxdWVzdCwgaW50IGZkKQoreworCXN0cnVjdCB2aG9zdF91c2VyX21zZyBtc2cgPSB7CisJCS5oZWFkZXIucmVxdWVzdCA9IHJlcXVlc3QsCisJfTsKKworCXJldHVybiB2aG9zdF91c2VyX3NlbmQodnVfZGV2LCBmYWxzZSwgJm1zZywgJmZkLCAxKTsKK30KKworc3RhdGljIGludCB2aG9zdF91c2VyX3NlbmRfdTY0KHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJICAgICAgIHUzMiByZXF1ZXN0LCB1NjQgdmFsdWUpCit7CisJc3RydWN0IHZob3N0X3VzZXJfbXNnIG1zZyA9IHsKKwkJLmhlYWRlci5yZXF1ZXN0ID0gcmVxdWVzdCwKKwkJLmhlYWRlci5zaXplID0gc2l6ZW9mKG1zZy5wYXlsb2FkLmludGVnZXIpLAorCQkucGF5bG9hZC5pbnRlZ2VyID0gdmFsdWUsCisJfTsKKworCXJldHVybiB2aG9zdF91c2VyX3NlbmQodnVfZGV2LCBmYWxzZSwgJm1zZywgTlVMTCwgMCk7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9zZXRfb3duZXIoc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYpCit7CisJcmV0dXJuIHZob3N0X3VzZXJfc2VuZF9ub19wYXlsb2FkKHZ1X2RldiwgZmFsc2UsIFZIT1NUX1VTRVJfU0VUX09XTkVSKTsKK30KKworc3RhdGljIGludCB2aG9zdF91c2VyX2dldF9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlvX3VtbF9kZXZpY2UgKnZ1X2RldiwKKwkJCQkgICB1NjQgKmZlYXR1cmVzKQoreworCWludCByYyA9IHZob3N0X3VzZXJfc2VuZF9ub19wYXlsb2FkKHZ1X2RldiwgdHJ1ZSwKKwkJCQkJICAgIFZIT1NUX1VTRVJfR0VUX0ZFQVRVUkVTKTsKKworCWlmIChyYykKKwkJcmV0dXJuIHJjOworCXJldHVybiB2aG9zdF91c2VyX3JlY3ZfdTY0KHZ1X2RldiwgZmVhdHVyZXMpOworfQorCitzdGF0aWMgaW50IHZob3N0X3VzZXJfc2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJCSAgIHU2NCBmZWF0dXJlcykKK3sKKwlyZXR1cm4gdmhvc3RfdXNlcl9zZW5kX3U2NCh2dV9kZXYsIFZIT1NUX1VTRVJfU0VUX0ZFQVRVUkVTLCBmZWF0dXJlcyk7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9nZXRfcHJvdG9jb2xfZmVhdHVyZXMoc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYsCisJCQkJCSAgICB1NjQgKnByb3RvY29sX2ZlYXR1cmVzKQoreworCWludCByYyA9IHZob3N0X3VzZXJfc2VuZF9ub19wYXlsb2FkKHZ1X2RldiwgdHJ1ZSwKKwkJCVZIT1NUX1VTRVJfR0VUX1BST1RPQ09MX0ZFQVRVUkVTKTsKKworCWlmIChyYykKKwkJcmV0dXJuIHJjOworCXJldHVybiB2aG9zdF91c2VyX3JlY3ZfdTY0KHZ1X2RldiwgcHJvdG9jb2xfZmVhdHVyZXMpOworfQorCitzdGF0aWMgaW50IHZob3N0X3VzZXJfc2V0X3Byb3RvY29sX2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJCQkgICAgdTY0IHByb3RvY29sX2ZlYXR1cmVzKQoreworCXJldHVybiB2aG9zdF91c2VyX3NlbmRfdTY0KHZ1X2RldiwgVkhPU1RfVVNFUl9TRVRfUFJPVE9DT0xfRkVBVFVSRVMsCisJCQkJICAgcHJvdG9jb2xfZmVhdHVyZXMpOworfQorCitzdGF0aWMgdm9pZCB2aG9zdF91c2VyX3JlcGx5KHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJICAgICBzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgKm1zZywgaW50IHJlc3BvbnNlKQoreworCXN0cnVjdCB2aG9zdF91c2VyX21zZyByZXBseSA9IHsKKwkJLnBheWxvYWQuaW50ZWdlciA9IHJlc3BvbnNlLAorCX07CisJc2l6ZV90IHNpemUgPSBzaXplb2YocmVwbHkuaGVhZGVyKSArIHNpemVvZihyZXBseS5wYXlsb2FkLmludGVnZXIpOworCWludCByYzsKKworCXJlcGx5LmhlYWRlciA9IG1zZy0+aGVhZGVyOworCXJlcGx5LmhlYWRlci5mbGFncyAmPSB+VkhPU1RfVVNFUl9GTEFHX05FRURfUkVQTFk7CisJcmVwbHkuaGVhZGVyLmZsYWdzIHw9IFZIT1NUX1VTRVJfRkxBR19SRVBMWTsKKwlyZXBseS5oZWFkZXIuc2l6ZSA9IHNpemVvZihyZXBseS5wYXlsb2FkLmludGVnZXIpOworCisJcmMgPSBmdWxsX3NlbmRtc2dfZmRzKHZ1X2Rldi0+cmVxX2ZkLCAmcmVwbHksIHNpemUsIE5VTEwsIDApOworCisJaWYgKHJjKQorCQl2dV9lcnIodnVfZGV2LAorCQkgICAgICAgInNlbmRpbmcgcmVwbHkgdG8gc2xhdmUgcmVxdWVzdCBmYWlsZWQ6ICVkIChzaXplICV6dSlcbiIsCisJCSAgICAgICByYywgc2l6ZSk7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCB2dV9yZXFfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYgPSBkYXRhOworCWludCByZXNwb25zZSA9IDE7CisJc3RydWN0IHsKKwkJc3RydWN0IHZob3N0X3VzZXJfbXNnIG1zZzsKKwkJdTggZXh0cmFfcGF5bG9hZFs1MTJdOworCX0gbXNnOworCWludCByYzsKKworCXJjID0gdmhvc3RfdXNlcl9yZWN2X3JlcSh2dV9kZXYsICZtc2cubXNnLAorCQkJCSBzaXplb2YobXNnLm1zZy5wYXlsb2FkKSArCisJCQkJIHNpemVvZihtc2cuZXh0cmFfcGF5bG9hZCkpOworCisJaWYgKHJjKQorCQlyZXR1cm4gSVJRX05PTkU7CisKKwlzd2l0Y2ggKG1zZy5tc2cuaGVhZGVyLnJlcXVlc3QpIHsKKwljYXNlIFZIT1NUX1VTRVJfU0xBVkVfQ09ORklHX0NIQU5HRV9NU0c6CisJCXZpcnRpb19jb25maWdfY2hhbmdlZCgmdnVfZGV2LT52ZGV2KTsKKwkJcmVzcG9uc2UgPSAwOworCQlicmVhazsKKwljYXNlIFZIT1NUX1VTRVJfU0xBVkVfSU9UTEJfTVNHOgorCQkvKiBub3Qgc3VwcG9ydGVkIC0gVklSVElPX0ZfSU9NTVVfUExBVEZPUk0gKi8KKwljYXNlIFZIT1NUX1VTRVJfU0xBVkVfVlJJTkdfSE9TVF9OT1RJRklFUl9NU0c6CisJCS8qIG5vdCBzdXBwb3J0ZWQgLSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfSE9TVF9OT1RJRklFUiAqLworCWRlZmF1bHQ6CisJCXZ1X2Vycih2dV9kZXYsICJ1bmV4cGVjdGVkIHNsYXZlIHJlcXVlc3QgJWRcbiIsCisJCSAgICAgICBtc2cubXNnLmhlYWRlci5yZXF1ZXN0KTsKKwl9CisKKwlpZiAobXNnLm1zZy5oZWFkZXIuZmxhZ3MgJiBWSE9TVF9VU0VSX0ZMQUdfTkVFRF9SRVBMWSkKKwkJdmhvc3RfdXNlcl9yZXBseSh2dV9kZXYsICZtc2cubXNnLCByZXNwb25zZSk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9pbml0X3NsYXZlX3JlcShzdHJ1Y3QgdmlydGlvX3VtbF9kZXZpY2UgKnZ1X2RldikKK3sKKwlpbnQgcmMsIHJlcV9mZHNbMl07CisKKwkvKiBVc2UgYSBwaXBlIGZvciBzbGF2ZSByZXEgZmQsIFNJR0lPIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGV2ZW50ZmQgKi8KKwlyYyA9IG9zX3BpcGUocmVxX2ZkcywgdHJ1ZSwgdHJ1ZSk7CisJaWYgKHJjIDwgMCkKKwkJcmV0dXJuIHJjOworCXZ1X2Rldi0+cmVxX2ZkID0gcmVxX2Zkc1swXTsKKworCXJjID0gdW1fcmVxdWVzdF9pcnEoVklSVElPX0lSUSwgdnVfZGV2LT5yZXFfZmQsIElSUV9SRUFELAorCQkJICAgIHZ1X3JlcV9pbnRlcnJ1cHQsIElSUUZfU0hBUkVELAorCQkJICAgIHZ1X2Rldi0+cGRldi0+bmFtZSwgdnVfZGV2KTsKKwlpZiAocmMpCisJCWdvdG8gZXJyX2Nsb3NlOworCisJcmMgPSB2aG9zdF91c2VyX3NlbmRfbm9fcGF5bG9hZF9mZCh2dV9kZXYsIFZIT1NUX1VTRVJfU0VUX1NMQVZFX1JFUV9GRCwKKwkJCQkJICAgcmVxX2Zkc1sxXSk7CisJaWYgKHJjKQorCQlnb3RvIGVycl9mcmVlX2lycTsKKworCWdvdG8gb3V0OworCitlcnJfZnJlZV9pcnE6CisJdW1fZnJlZV9pcnEoVklSVElPX0lSUSwgdnVfZGV2KTsKK2Vycl9jbG9zZToKKwlvc19jbG9zZV9maWxlKHJlcV9mZHNbMF0pOworb3V0OgorCS8qIENsb3NlIHVudXNlZCB3cml0ZSBlbmQgb2YgcmVxdWVzdCBmZHMgKi8KKwlvc19jbG9zZV9maWxlKHJlcV9mZHNbMV0pOworCXJldHVybiByYzsKK30KKworc3RhdGljIGludCB2aG9zdF91c2VyX2luaXQoc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYpCit7CisJaW50IHJjID0gdmhvc3RfdXNlcl9zZXRfb3duZXIodnVfZGV2KTsKKworCWlmIChyYykKKwkJcmV0dXJuIHJjOworCXJjID0gdmhvc3RfdXNlcl9nZXRfZmVhdHVyZXModnVfZGV2LCAmdnVfZGV2LT5mZWF0dXJlcyk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlpZiAodnVfZGV2LT5mZWF0dXJlcyAmIEJJVF9VTEwoVkhPU1RfVVNFUl9GX1BST1RPQ09MX0ZFQVRVUkVTKSkgeworCQlyYyA9IHZob3N0X3VzZXJfZ2V0X3Byb3RvY29sX2ZlYXR1cmVzKHZ1X2RldiwKKwkJCQkmdnVfZGV2LT5wcm90b2NvbF9mZWF0dXJlcyk7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKwkJdnVfZGV2LT5wcm90b2NvbF9mZWF0dXJlcyAmPSBWSE9TVF9VU0VSX1NVUFBPUlRFRF9QUk9UT0NPTF9GOworCQlyYyA9IHZob3N0X3VzZXJfc2V0X3Byb3RvY29sX2ZlYXR1cmVzKHZ1X2RldiwKKwkJCQl2dV9kZXYtPnByb3RvY29sX2ZlYXR1cmVzKTsKKwkJaWYgKHJjKQorCQkJcmV0dXJuIHJjOworCX0KKworCWlmICh2dV9kZXYtPnByb3RvY29sX2ZlYXR1cmVzICYKKwkJCUJJVF9VTEwoVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1NMQVZFX1JFUSkpIHsKKwkJcmMgPSB2aG9zdF91c2VyX2luaXRfc2xhdmVfcmVxKHZ1X2Rldik7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgdmhvc3RfdXNlcl9nZXRfY29uZmlnKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJCSAgdTMyIG9mZnNldCwgdm9pZCAqYnVmLCB1MzIgbGVuKQoreworCXUzMiBjZmdfc2l6ZSA9IG9mZnNldCArIGxlbjsKKwlzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgKm1zZzsKKwlzaXplX3QgcGF5bG9hZF9zaXplID0gc2l6ZW9mKG1zZy0+cGF5bG9hZC5jb25maWcpICsgY2ZnX3NpemU7CisJc2l6ZV90IG1zZ19zaXplID0gc2l6ZW9mKG1zZy0+aGVhZGVyKSArIHBheWxvYWRfc2l6ZTsKKwlpbnQgcmM7CisKKwlpZiAoISh2dV9kZXYtPnByb3RvY29sX2ZlYXR1cmVzICYKKwkgICAgICBCSVRfVUxMKFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9DT05GSUcpKSkKKwkJcmV0dXJuOworCisJbXNnID0ga3phbGxvYyhtc2dfc2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFtc2cpCisJCXJldHVybjsKKwltc2ctPmhlYWRlci5yZXF1ZXN0ID0gVkhPU1RfVVNFUl9HRVRfQ09ORklHOworCW1zZy0+aGVhZGVyLnNpemUgPSBwYXlsb2FkX3NpemU7CisJbXNnLT5wYXlsb2FkLmNvbmZpZy5vZmZzZXQgPSAwOworCW1zZy0+cGF5bG9hZC5jb25maWcuc2l6ZSA9IGNmZ19zaXplOworCisJcmMgPSB2aG9zdF91c2VyX3NlbmQodnVfZGV2LCB0cnVlLCBtc2csIE5VTEwsIDApOworCWlmIChyYykgeworCQl2dV9lcnIodnVfZGV2LCAic2VuZGluZyBWSE9TVF9VU0VSX0dFVF9DT05GSUcgZmFpbGVkOiAlZFxuIiwKKwkJICAgICAgIHJjKTsKKwkJZ290byBmcmVlOworCX0KKworCXJjID0gdmhvc3RfdXNlcl9yZWN2X3Jlc3AodnVfZGV2LCBtc2csIG1zZ19zaXplKTsKKwlpZiAocmMpIHsKKwkJdnVfZXJyKHZ1X2RldiwKKwkJICAgICAgICJyZWNlaXZpbmcgVkhPU1RfVVNFUl9HRVRfQ09ORklHIHJlc3BvbnNlIGZhaWxlZDogJWRcbiIsCisJCSAgICAgICByYyk7CisJCWdvdG8gZnJlZTsKKwl9CisKKwlpZiAobXNnLT5oZWFkZXIuc2l6ZSAhPSBwYXlsb2FkX3NpemUgfHwKKwkgICAgbXNnLT5wYXlsb2FkLmNvbmZpZy5zaXplICE9IGNmZ19zaXplKSB7CisJCXJjID0gLUVQUk9UTzsKKwkJdnVfZXJyKHZ1X2RldiwKKwkJICAgICAgICJJbnZhbGlkIFZIT1NUX1VTRVJfR0VUX0NPTkZJRyBzaXplcyAocGF5bG9hZCAlZCBleHBlY3RlZCAlenUsIGNvbmZpZyAldSBleHBlY3RlZCAldSlcbiIsCisJCSAgICAgICBtc2ctPmhlYWRlci5zaXplLCBwYXlsb2FkX3NpemUsCisJCSAgICAgICBtc2ctPnBheWxvYWQuY29uZmlnLnNpemUsIGNmZ19zaXplKTsKKwkJZ290byBmcmVlOworCX0KKwltZW1jcHkoYnVmLCBtc2ctPnBheWxvYWQuY29uZmlnLnBheWxvYWQgKyBvZmZzZXQsIGxlbik7CisKK2ZyZWU6CisJa2ZyZWUobXNnKTsKK30KKworc3RhdGljIHZvaWQgdmhvc3RfdXNlcl9zZXRfY29uZmlnKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJCSAgdTMyIG9mZnNldCwgY29uc3Qgdm9pZCAqYnVmLCB1MzIgbGVuKQoreworCXN0cnVjdCB2aG9zdF91c2VyX21zZyAqbXNnOworCXNpemVfdCBwYXlsb2FkX3NpemUgPSBzaXplb2YobXNnLT5wYXlsb2FkLmNvbmZpZykgKyBsZW47CisJc2l6ZV90IG1zZ19zaXplID0gc2l6ZW9mKG1zZy0+aGVhZGVyKSArIHBheWxvYWRfc2l6ZTsKKwlpbnQgcmM7CisKKwlpZiAoISh2dV9kZXYtPnByb3RvY29sX2ZlYXR1cmVzICYKKwkgICAgICBCSVRfVUxMKFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9DT05GSUcpKSkKKwkJcmV0dXJuOworCisJbXNnID0ga3phbGxvYyhtc2dfc2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFtc2cpCisJCXJldHVybjsKKwltc2ctPmhlYWRlci5yZXF1ZXN0ID0gVkhPU1RfVVNFUl9TRVRfQ09ORklHOworCW1zZy0+aGVhZGVyLnNpemUgPSBwYXlsb2FkX3NpemU7CisJbXNnLT5wYXlsb2FkLmNvbmZpZy5vZmZzZXQgPSBvZmZzZXQ7CisJbXNnLT5wYXlsb2FkLmNvbmZpZy5zaXplID0gbGVuOworCW1lbWNweShtc2ctPnBheWxvYWQuY29uZmlnLnBheWxvYWQsIGJ1ZiwgbGVuKTsKKworCXJjID0gdmhvc3RfdXNlcl9zZW5kKHZ1X2RldiwgZmFsc2UsIG1zZywgTlVMTCwgMCk7CisJaWYgKHJjKQorCQl2dV9lcnIodnVfZGV2LCAic2VuZGluZyBWSE9TVF9VU0VSX1NFVF9DT05GSUcgZmFpbGVkOiAlZFxuIiwKKwkJICAgICAgIHJjKTsKKworCWtmcmVlKG1zZyk7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9pbml0X21lbV9yZWdpb24odTY0IGFkZHIsIHU2NCBzaXplLCBpbnQgKmZkX291dCwKKwkJCQkgICAgICBzdHJ1Y3Qgdmhvc3RfdXNlcl9tZW1fcmVnaW9uICpyZWdpb25fb3V0KQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBtZW1fb2Zmc2V0OworCWludCByYyA9IHBoeXNfbWFwcGluZyhhZGRyLCAmbWVtX29mZnNldCk7CisKKwlpZiAoV0FSTihyYyA8IDAsICJwaHlzX21hcHBpbmcgb2YgMHglbGx4IHJldHVybmVkICVkXG4iLCBhZGRyLCByYykpCisJCXJldHVybiAtRUZBVUxUOworCSpmZF9vdXQgPSByYzsKKwlyZWdpb25fb3V0LT5ndWVzdF9hZGRyID0gYWRkcjsKKwlyZWdpb25fb3V0LT51c2VyX2FkZHIgPSBhZGRyOworCXJlZ2lvbl9vdXQtPnNpemUgPSBzaXplOworCXJlZ2lvbl9vdXQtPm1tYXBfb2Zmc2V0ID0gbWVtX29mZnNldDsKKworCS8qIEVuc3VyZSBtYXBwaW5nIGlzIHZhbGlkIGZvciB0aGUgZW50aXJlIHJlZ2lvbiAqLworCXJjID0gcGh5c19tYXBwaW5nKGFkZHIgKyBzaXplIC0gMSwgJm1lbV9vZmZzZXQpOworCWlmIChXQVJOKHJjICE9ICpmZF9vdXQsICJwaHlzX21hcHBpbmcgb2YgMHglbGx4IGZhaWxlZDogJWQgIT0gJWRcbiIsCisJCSBhZGRyICsgc2l6ZSAtIDEsIHJjLCAqZmRfb3V0KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9zZXRfbWVtX3RhYmxlKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2KQoreworCXN0cnVjdCB2aG9zdF91c2VyX21zZyBtc2cgPSB7CisJCS5oZWFkZXIucmVxdWVzdCA9IFZIT1NUX1VTRVJfU0VUX01FTV9UQUJMRSwKKwkJLmhlYWRlci5zaXplID0gc2l6ZW9mKG1zZy5wYXlsb2FkLm1lbV9yZWdpb25zKSwKKwkJLnBheWxvYWQubWVtX3JlZ2lvbnMubnVtID0gMSwKKwl9OworCXVuc2lnbmVkIGxvbmcgcmVzZXJ2ZWQgPSB1bWxfcmVzZXJ2ZWQgLSB1bWxfcGh5c21lbTsKKwlpbnQgZmRzWzJdOworCWludCByYzsKKworCS8qCisJICogVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNlZSBhbHNvIHRoZSBjb21tZW50IHdpdGggc2V0dXBfcGh5c21lbSgpLgorCSAqCisJICogRXNzZW50aWFsbHksIHNldHVwX3BoeXNtZW0oKSB1c2VzIGEgZmlsZSB0byBtbWFwKCkgb3VyIHBoeXNtZW0sCisJICogYnV0IHRoZSBjb2RlIGFuZCBkYXRhIHdlICphbHJlYWR5KiBoYXZlIGlzIG9taXR0ZWQuIFRvIHVzLCB0aGlzCisJICogaXMgbm8gZGlmZmVyZW5jZSwgc2luY2UgdGhleSBib3RoIGJlY29tZSBwYXJ0IG9mIG91ciBhZGRyZXNzCisJICogc3BhY2UgYW5kIG1lbW9yeSBjb25zdW1wdGlvbi4gVG8gc29tZWJvZHkgbG9va2luZyBpbiBmcm9tIHRoZQorCSAqIG91dHNpZGUsIGhvd2V2ZXIsIGl0IGlzIGRpZmZlcmVudCBiZWNhdXNlIHRoZSBwYXJ0IG9mIG91ciBtZW1vcnkKKwkgKiBjb25zdW1wdGlvbiB0aGF0J3MgYWxyZWFkeSBwYXJ0IG9mIHRoZSBiaW5hcnkgKGNvZGUvZGF0YSkgaXMgbm90CisJICogbWFwcGVkIGZyb20gdGhlIGZpbGUsIHNvIGl0J3Mgbm90IHZpc2libGUgdG8gYW5vdGhlciBtbWFwIGZyb20KKwkgKiB0aGUgZmlsZSBkZXNjcmlwdG9yLgorCSAqCisJICogVGh1cywgZG9uJ3QgYWR2ZXJ0aXNlIHRoaXMgc3BhY2UgdG8gdGhlIHZob3N0LXVzZXIgc2xhdmUuIFRoaXMKKwkgKiBtZWFucyB0aGF0IHRoZSBzbGF2ZSB3aWxsIGxpa2VseSBhYm9ydCBvciBzaW1pbGFyIHdoZW4gd2UgZ2l2ZQorCSAqIGl0IGFuIGFkZHJlc3MgZnJvbSB0aGUgaGlkZGVuIHJhbmdlLCBzaW5jZSBpdCdzIG5vdCBtYXJrZWQgYXMKKwkgKiBhIHZhbGlkIGFkZHJlc3MsIGJ1dCBhdCBsZWFzdCB0aGF0IHdheSB3ZSBkZXRlY3QgdGhlIGlzc3VlIGFuZAorCSAqIGRvbid0IGp1c3QgaGF2ZSB0aGUgc2xhdmUgcmVhZCBhbiBhbGwtemVyb2VzIGJ1ZmZlciBmcm9tIHRoZQorCSAqIHNoYXJlZCBtZW1vcnkgZmlsZSwgb3Igd3JpdGUgc29tZXRoaW5nIHRoZXJlIHRoYXQgd2UgY2FuIG5ldmVyCisJICogc2VlIChkZXBlbmRpbmcgb24gdGhlIGRpcmVjdGlvbiBvZiB0aGUgdmlydHF1ZXVlIHRyYWZmaWMuKQorCSAqCisJICogU2luY2Ugd2UgdXN1YWxseSBkb24ndCB3YW50IHRvIHVzZSAudGV4dCBmb3IgdmlydGlvIGJ1ZmZlcnMsCisJICogdGhpcyBlZmZlY3RpdmVseSBtZWFucyB0aGF0IHlvdSBjYW5ub3QgdXNlCisJICogIDEpIGdsb2JhbCB2YXJpYWJsZXMsIHdoaWNoIGFyZSBpbiB0aGUgLmJzcyBhbmQgbm90IGluIHRoZSBzaG0KKwkgKiAgICAgZmlsZS1iYWNrZWQgbWVtb3J5CisJICogIDIpIHRoZSBzdGFjayBpbiBzb21lIHByb2Nlc3NlcywgZGVwZW5kaW5nIG9uIHdoZXJlIHRoZXkgaGF2ZQorCSAqICAgICB0aGVpciBzdGFjayAob3IgbWF5YmUgb25seSBubyBpbnRlcnJ1cHQgc3RhY2s/KQorCSAqCisJICogVGhlIHN0YWNrIGlzIGFscmVhZHkgbm90IHR5cGljYWxseSB2YWxpZCBmb3IgRE1BLCBzbyB0aGlzIGlzbid0CisJICogbXVjaCBvZiBhIHJlc3RyaWN0aW9uLCBidXQgZ2xvYmFsIHZhcmlhYmxlcyBtaWdodCBiZSBlbmNvdW50ZXJlZC4KKwkgKgorCSAqIEl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRvIGZpeCBpdCBieSBjb3B5aW5nIGFyb3VuZCB0aGUgZGF0YSB0aGF0J3MKKwkgKiBiZXR3ZWVuIGJzc19zdGFydCBhbmQgd2hlcmUgd2UgbWFwIHRoZSBmaWxlIG5vdywgYnV0IGl0J3Mgbm90CisJICogc29tZXRoaW5nIHRoYXQgeW91IHR5cGljYWxseSBlbmNvdW50ZXIgd2l0aCB2aXJ0aW8gZHJpdmVycywgc28KKwkgKiBpdCBkaWRuJ3Qgc2VlbSB3b3J0aHdoaWxlLgorCSAqLworCXJjID0gdmhvc3RfdXNlcl9pbml0X21lbV9yZWdpb24ocmVzZXJ2ZWQsIHBoeXNtZW1fc2l6ZSAtIHJlc2VydmVkLAorCQkJCQkmZmRzWzBdLAorCQkJCQkmbXNnLnBheWxvYWQubWVtX3JlZ2lvbnMucmVnaW9uc1swXSk7CisKKwlpZiAocmMgPCAwKQorCQlyZXR1cm4gcmM7CisJaWYgKGhpZ2htZW0pIHsKKwkJbXNnLnBheWxvYWQubWVtX3JlZ2lvbnMubnVtKys7CisJCXJjID0gdmhvc3RfdXNlcl9pbml0X21lbV9yZWdpb24oX19wYShlbmRfaW9tZW0pLCBoaWdobWVtLAorCQkJCSZmZHNbMV0sICZtc2cucGF5bG9hZC5tZW1fcmVnaW9ucy5yZWdpb25zWzFdKTsKKwkJaWYgKHJjIDwgMCkKKwkJCXJldHVybiByYzsKKwl9CisKKwlyZXR1cm4gdmhvc3RfdXNlcl9zZW5kKHZ1X2RldiwgZmFsc2UsICZtc2csIGZkcywKKwkJCSAgICAgICBtc2cucGF5bG9hZC5tZW1fcmVnaW9ucy5udW0pOworfQorCitzdGF0aWMgaW50IHZob3N0X3VzZXJfc2V0X3ZyaW5nX3N0YXRlKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJCSAgICAgIHUzMiByZXF1ZXN0LCB1MzIgaW5kZXgsIHUzMiBudW0pCit7CisJc3RydWN0IHZob3N0X3VzZXJfbXNnIG1zZyA9IHsKKwkJLmhlYWRlci5yZXF1ZXN0ID0gcmVxdWVzdCwKKwkJLmhlYWRlci5zaXplID0gc2l6ZW9mKG1zZy5wYXlsb2FkLnZyaW5nX3N0YXRlKSwKKwkJLnBheWxvYWQudnJpbmdfc3RhdGUuaW5kZXggPSBpbmRleCwKKwkJLnBheWxvYWQudnJpbmdfc3RhdGUubnVtID0gbnVtLAorCX07CisKKwlyZXR1cm4gdmhvc3RfdXNlcl9zZW5kKHZ1X2RldiwgZmFsc2UsICZtc2csIE5VTEwsIDApOworfQorCitzdGF0aWMgaW50IHZob3N0X3VzZXJfc2V0X3ZyaW5nX251bShzdHJ1Y3QgdmlydGlvX3VtbF9kZXZpY2UgKnZ1X2RldiwKKwkJCQkgICAgdTMyIGluZGV4LCB1MzIgbnVtKQoreworCXJldHVybiB2aG9zdF91c2VyX3NldF92cmluZ19zdGF0ZSh2dV9kZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX05VTSwKKwkJCQkJICBpbmRleCwgbnVtKTsKK30KKworc3RhdGljIGludCB2aG9zdF91c2VyX3NldF92cmluZ19iYXNlKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJCSAgICAgdTMyIGluZGV4LCB1MzIgb2Zmc2V0KQoreworCXJldHVybiB2aG9zdF91c2VyX3NldF92cmluZ19zdGF0ZSh2dV9kZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0JBU0UsCisJCQkJCSAgaW5kZXgsIG9mZnNldCk7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9zZXRfdnJpbmdfYWRkcihzdHJ1Y3QgdmlydGlvX3VtbF9kZXZpY2UgKnZ1X2RldiwKKwkJCQkgICAgIHUzMiBpbmRleCwgdTY0IGRlc2MsIHU2NCB1c2VkLCB1NjQgYXZhaWwsCisJCQkJICAgICB1NjQgbG9nKQoreworCXN0cnVjdCB2aG9zdF91c2VyX21zZyBtc2cgPSB7CisJCS5oZWFkZXIucmVxdWVzdCA9IFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0FERFIsCisJCS5oZWFkZXIuc2l6ZSA9IHNpemVvZihtc2cucGF5bG9hZC52cmluZ19hZGRyKSwKKwkJLnBheWxvYWQudnJpbmdfYWRkci5pbmRleCA9IGluZGV4LAorCQkucGF5bG9hZC52cmluZ19hZGRyLmRlc2MgPSBkZXNjLAorCQkucGF5bG9hZC52cmluZ19hZGRyLnVzZWQgPSB1c2VkLAorCQkucGF5bG9hZC52cmluZ19hZGRyLmF2YWlsID0gYXZhaWwsCisJCS5wYXlsb2FkLnZyaW5nX2FkZHIubG9nID0gbG9nLAorCX07CisKKwlyZXR1cm4gdmhvc3RfdXNlcl9zZW5kKHZ1X2RldiwgZmFsc2UsICZtc2csIE5VTEwsIDApOworfQorCitzdGF0aWMgaW50IHZob3N0X3VzZXJfc2V0X3ZyaW5nX2ZkKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJCSAgIHUzMiByZXF1ZXN0LCBpbnQgaW5kZXgsIGludCBmZCkKK3sKKwlzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgbXNnID0geworCQkuaGVhZGVyLnJlcXVlc3QgPSByZXF1ZXN0LAorCQkuaGVhZGVyLnNpemUgPSBzaXplb2YobXNnLnBheWxvYWQuaW50ZWdlciksCisJCS5wYXlsb2FkLmludGVnZXIgPSBpbmRleCwKKwl9OworCisJaWYgKGluZGV4ICYgflZIT1NUX1VTRVJfVlJJTkdfSU5ERVhfTUFTSykKKwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKGZkIDwgMCkgeworCQltc2cucGF5bG9hZC5pbnRlZ2VyIHw9IFZIT1NUX1VTRVJfVlJJTkdfUE9MTF9NQVNLOworCQlyZXR1cm4gdmhvc3RfdXNlcl9zZW5kKHZ1X2RldiwgZmFsc2UsICZtc2csIE5VTEwsIDApOworCX0KKwlyZXR1cm4gdmhvc3RfdXNlcl9zZW5kKHZ1X2RldiwgZmFsc2UsICZtc2csICZmZCwgMSk7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9zZXRfdnJpbmdfY2FsbChzdHJ1Y3QgdmlydGlvX3VtbF9kZXZpY2UgKnZ1X2RldiwKKwkJCQkgICAgIGludCBpbmRleCwgaW50IGZkKQoreworCXJldHVybiB2aG9zdF91c2VyX3NldF92cmluZ19mZCh2dV9kZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0NBTEwsCisJCQkJICAgICAgIGluZGV4LCBmZCk7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9zZXRfdnJpbmdfa2ljayhzdHJ1Y3QgdmlydGlvX3VtbF9kZXZpY2UgKnZ1X2RldiwKKwkJCQkgICAgIGludCBpbmRleCwgaW50IGZkKQoreworCXJldHVybiB2aG9zdF91c2VyX3NldF92cmluZ19mZCh2dV9kZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0tJQ0ssCisJCQkJICAgICAgIGluZGV4LCBmZCk7Cit9CisKK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl9zZXRfdnJpbmdfZW5hYmxlKHN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2LAorCQkJCSAgICAgICB1MzIgaW5kZXgsIGJvb2wgZW5hYmxlKQoreworCWlmICghKHZ1X2Rldi0+ZmVhdHVyZXMgJiBCSVRfVUxMKFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUykpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiB2aG9zdF91c2VyX3NldF92cmluZ19zdGF0ZSh2dV9kZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VOQUJMRSwKKwkJCQkJICBpbmRleCwgZW5hYmxlKTsKK30KKworCisvKiBWaXJ0aW8gaW50ZXJmYWNlICovCisKK3N0YXRpYyBib29sIHZ1X25vdGlmeShzdHJ1Y3QgdmlydHF1ZXVlICp2cSkKK3sKKwlzdHJ1Y3QgdmlydGlvX3VtbF92cV9pbmZvICppbmZvID0gdnEtPnByaXY7CisJY29uc3QgdWludDY0X3QgbiA9IDE7CisJaW50IHJjOworCisJZG8geworCQlyYyA9IG9zX3dyaXRlX2ZpbGUoaW5mby0+a2lja19mZCwgJm4sIHNpemVvZihuKSk7CisJfSB3aGlsZSAocmMgPT0gLUVJTlRSKTsKKwlyZXR1cm4gIVdBUk4ocmMgIT0gc2l6ZW9mKG4pLCAid3JpdGUgcmV0dXJuZWQgJWRcbiIsIHJjKTsKK30KKworc3RhdGljIGlycXJldHVybl90IHZ1X2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpvcGFxdWUpCit7CisJc3RydWN0IHZpcnRxdWV1ZSAqdnEgPSBvcGFxdWU7CisJc3RydWN0IHZpcnRpb191bWxfdnFfaW5mbyAqaW5mbyA9IHZxLT5wcml2OworCXVpbnQ2NF90IG47CisJaW50IHJjOworCWlycXJldHVybl90IHJldCA9IElSUV9OT05FOworCisJZG8geworCQlyYyA9IG9zX3JlYWRfZmlsZShpbmZvLT5jYWxsX2ZkLCAmbiwgc2l6ZW9mKG4pKTsKKwkJaWYgKHJjID09IHNpemVvZihuKSkKKwkJCXJldCB8PSB2cmluZ19pbnRlcnJ1cHQoaXJxLCB2cSk7CisJfSB3aGlsZSAocmMgPT0gc2l6ZW9mKG4pIHx8IHJjID09IC1FSU5UUik7CisJV0FSTihyYyAhPSAtRUFHQUlOLCAicmVhZCByZXR1cm5lZCAlZFxuIiwgcmMpOworCXJldHVybiByZXQ7Cit9CisKKworc3RhdGljIHZvaWQgdnVfZ2V0KHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LCB1bnNpZ25lZCBvZmZzZXQsCisJCSAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQgbGVuKQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2ID0gdG9fdmlydGlvX3VtbF9kZXZpY2UodmRldik7CisKKwl2aG9zdF91c2VyX2dldF9jb25maWcodnVfZGV2LCBvZmZzZXQsIGJ1ZiwgbGVuKTsKK30KKworc3RhdGljIHZvaWQgdnVfc2V0KHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LCB1bnNpZ25lZCBvZmZzZXQsCisJCSAgIGNvbnN0IHZvaWQgKmJ1ZiwgdW5zaWduZWQgbGVuKQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2ID0gdG9fdmlydGlvX3VtbF9kZXZpY2UodmRldik7CisKKwl2aG9zdF91c2VyX3NldF9jb25maWcodnVfZGV2LCBvZmZzZXQsIGJ1ZiwgbGVuKTsKK30KKworc3RhdGljIHU4IHZ1X2dldF9zdGF0dXMoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCit7CisJc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYgPSB0b192aXJ0aW9fdW1sX2RldmljZSh2ZGV2KTsKKworCXJldHVybiB2dV9kZXYtPnN0YXR1czsKK30KKworc3RhdGljIHZvaWQgdnVfc2V0X3N0YXR1cyhzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldiwgdTggc3RhdHVzKQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2ID0gdG9fdmlydGlvX3VtbF9kZXZpY2UodmRldik7CisKKwl2dV9kZXYtPnN0YXR1cyA9IHN0YXR1czsKK30KKworc3RhdGljIHZvaWQgdnVfcmVzZXQoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCit7CisJc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYgPSB0b192aXJ0aW9fdW1sX2RldmljZSh2ZGV2KTsKKworCXZ1X2Rldi0+c3RhdHVzID0gMDsKK30KKworc3RhdGljIHZvaWQgdnVfZGVsX3ZxKHN0cnVjdCB2aXJ0cXVldWUgKnZxKQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX3ZxX2luZm8gKmluZm8gPSB2cS0+cHJpdjsKKworCXVtX2ZyZWVfaXJxKFZJUlRJT19JUlEsIHZxKTsKKworCW9zX2Nsb3NlX2ZpbGUoaW5mby0+Y2FsbF9mZCk7CisJb3NfY2xvc2VfZmlsZShpbmZvLT5raWNrX2ZkKTsKKworCXZyaW5nX2RlbF92aXJ0cXVldWUodnEpOworCWtmcmVlKGluZm8pOworfQorCitzdGF0aWMgdm9pZCB2dV9kZWxfdnFzKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2ID0gdG9fdmlydGlvX3VtbF9kZXZpY2UodmRldik7CisJc3RydWN0IHZpcnRxdWV1ZSAqdnEsICpuOworCXU2NCBmZWF0dXJlczsKKworCS8qIE5vdGU6IHJldmVyc2Ugb3JkZXIgYXMgYSB3b3JrYXJvdW5kIHRvIGEgZGVjb2RpbmcgYnVnIGluIHNuYWJiICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKHZxLCAmdmRldi0+dnFzLCBsaXN0KQorCQlXQVJOX09OKHZob3N0X3VzZXJfc2V0X3ZyaW5nX2VuYWJsZSh2dV9kZXYsIHZxLT5pbmRleCwgZmFsc2UpKTsKKworCS8qIEVuc3VyZSBwcmV2aW91cyBtZXNzYWdlcyBoYXZlIGJlZW4gcHJvY2Vzc2VkICovCisJV0FSTl9PTih2aG9zdF91c2VyX2dldF9mZWF0dXJlcyh2dV9kZXYsICZmZWF0dXJlcykpOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZxLCBuLCAmdmRldi0+dnFzLCBsaXN0KQorCQl2dV9kZWxfdnEodnEpOworfQorCitzdGF0aWMgaW50IHZ1X3NldHVwX3ZxX2NhbGxfZmQoc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYsCisJCQkgICAgICAgc3RydWN0IHZpcnRxdWV1ZSAqdnEpCit7CisJc3RydWN0IHZpcnRpb191bWxfdnFfaW5mbyAqaW5mbyA9IHZxLT5wcml2OworCWludCBjYWxsX2Zkc1syXTsKKwlpbnQgcmM7CisKKwkvKiBVc2UgYSBwaXBlIGZvciBjYWxsIGZkLCBzaW5jZSBTSUdJTyBpcyBub3Qgc3VwcG9ydGVkIGZvciBldmVudGZkICovCisJcmMgPSBvc19waXBlKGNhbGxfZmRzLCB0cnVlLCB0cnVlKTsKKwlpZiAocmMgPCAwKQorCQlyZXR1cm4gcmM7CisKKwlpbmZvLT5jYWxsX2ZkID0gY2FsbF9mZHNbMF07CisJcmMgPSB1bV9yZXF1ZXN0X2lycShWSVJUSU9fSVJRLCBpbmZvLT5jYWxsX2ZkLCBJUlFfUkVBRCwKKwkJCSAgICB2dV9pbnRlcnJ1cHQsIElSUUZfU0hBUkVELCBpbmZvLT5uYW1lLCB2cSk7CisJaWYgKHJjKQorCQlnb3RvIGNsb3NlX2JvdGg7CisKKwlyYyA9IHZob3N0X3VzZXJfc2V0X3ZyaW5nX2NhbGwodnVfZGV2LCB2cS0+aW5kZXgsIGNhbGxfZmRzWzFdKTsKKwlpZiAocmMpCisJCWdvdG8gcmVsZWFzZV9pcnE7CisKKwlnb3RvIG91dDsKKworcmVsZWFzZV9pcnE6CisJdW1fZnJlZV9pcnEoVklSVElPX0lSUSwgdnEpOworY2xvc2VfYm90aDoKKwlvc19jbG9zZV9maWxlKGNhbGxfZmRzWzBdKTsKK291dDoKKwkvKiBDbG9zZSAodW51c2VkKSB3cml0ZSBlbmQgb2YgY2FsbCBmZHMgKi8KKwlvc19jbG9zZV9maWxlKGNhbGxfZmRzWzFdKTsKKworCXJldHVybiByYzsKK30KKworc3RhdGljIHN0cnVjdCB2aXJ0cXVldWUgKnZ1X3NldHVwX3ZxKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LAorCQkJCSAgICAgdW5zaWduZWQgaW5kZXgsIHZxX2NhbGxiYWNrX3QgKmNhbGxiYWNrLAorCQkJCSAgICAgY29uc3QgY2hhciAqbmFtZSwgYm9vbCBjdHgpCit7CisJc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYgPSB0b192aXJ0aW9fdW1sX2RldmljZSh2ZGV2KTsKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdnVfZGV2LT5wZGV2OworCXN0cnVjdCB2aXJ0aW9fdW1sX3ZxX2luZm8gKmluZm87CisJc3RydWN0IHZpcnRxdWV1ZSAqdnE7CisJaW50IG51bSA9IE1BWF9TVVBQT1JURURfUVVFVUVfU0laRTsKKwlpbnQgcmM7CisKKwlpbmZvID0ga3phbGxvYyhzaXplb2YoKmluZm8pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWluZm8pIHsKKwkJcmMgPSAtRU5PTUVNOworCQlnb3RvIGVycm9yX2t6YWxsb2M7CisJfQorCXNucHJpbnRmKGluZm8tPm5hbWUsIHNpemVvZihpbmZvLT5uYW1lKSwgIiVzLiVkLSVzIiwgcGRldi0+bmFtZSwKKwkJIHBkZXYtPmlkLCBuYW1lKTsKKworCXZxID0gdnJpbmdfY3JlYXRlX3ZpcnRxdWV1ZShpbmRleCwgbnVtLCBQQUdFX1NJWkUsIHZkZXYsIHRydWUsIHRydWUsCisJCQkJICAgIGN0eCwgdnVfbm90aWZ5LCBjYWxsYmFjaywgaW5mby0+bmFtZSk7CisJaWYgKCF2cSkgeworCQlyYyA9IC1FTk9NRU07CisJCWdvdG8gZXJyb3JfY3JlYXRlOworCX0KKwl2cS0+cHJpdiA9IGluZm87CisJbnVtID0gdmlydHF1ZXVlX2dldF92cmluZ19zaXplKHZxKTsKKworCXJjID0gb3NfZXZlbnRmZCgwLCAwKTsKKwlpZiAocmMgPCAwKQorCQlnb3RvIGVycm9yX2tpY2s7CisJaW5mby0+a2lja19mZCA9IHJjOworCisJcmMgPSB2dV9zZXR1cF92cV9jYWxsX2ZkKHZ1X2RldiwgdnEpOworCWlmIChyYykKKwkJZ290byBlcnJvcl9jYWxsOworCisJcmMgPSB2aG9zdF91c2VyX3NldF92cmluZ19udW0odnVfZGV2LCBpbmRleCwgbnVtKTsKKwlpZiAocmMpCisJCWdvdG8gZXJyb3Jfc2V0dXA7CisKKwlyYyA9IHZob3N0X3VzZXJfc2V0X3ZyaW5nX2Jhc2UodnVfZGV2LCBpbmRleCwgMCk7CisJaWYgKHJjKQorCQlnb3RvIGVycm9yX3NldHVwOworCisJcmMgPSB2aG9zdF91c2VyX3NldF92cmluZ19hZGRyKHZ1X2RldiwgaW5kZXgsCisJCQkJICAgICAgIHZpcnRxdWV1ZV9nZXRfZGVzY19hZGRyKHZxKSwKKwkJCQkgICAgICAgdmlydHF1ZXVlX2dldF91c2VkX2FkZHIodnEpLAorCQkJCSAgICAgICB2aXJ0cXVldWVfZ2V0X2F2YWlsX2FkZHIodnEpLAorCQkJCSAgICAgICAodTY0KSAtMSk7CisJaWYgKHJjKQorCQlnb3RvIGVycm9yX3NldHVwOworCisJcmV0dXJuIHZxOworCitlcnJvcl9zZXR1cDoKKwl1bV9mcmVlX2lycShWSVJUSU9fSVJRLCB2cSk7CisJb3NfY2xvc2VfZmlsZShpbmZvLT5jYWxsX2ZkKTsKK2Vycm9yX2NhbGw6CisJb3NfY2xvc2VfZmlsZShpbmZvLT5raWNrX2ZkKTsKK2Vycm9yX2tpY2s6CisJdnJpbmdfZGVsX3ZpcnRxdWV1ZSh2cSk7CitlcnJvcl9jcmVhdGU6CisJa2ZyZWUoaW5mbyk7CitlcnJvcl9remFsbG9jOgorCXJldHVybiBFUlJfUFRSKHJjKTsKK30KKworc3RhdGljIGludCB2dV9maW5kX3ZxcyhzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldiwgdW5zaWduZWQgbnZxcywKKwkJICAgICAgIHN0cnVjdCB2aXJ0cXVldWUgKnZxc1tdLCB2cV9jYWxsYmFja190ICpjYWxsYmFja3NbXSwKKwkJICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCBuYW1lc1tdLCBjb25zdCBib29sICpjdHgsCisJCSAgICAgICBzdHJ1Y3QgaXJxX2FmZmluaXR5ICpkZXNjKQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2ID0gdG9fdmlydGlvX3VtbF9kZXZpY2UodmRldik7CisJaW50IGksIHF1ZXVlX2lkeCA9IDAsIHJjOworCXN0cnVjdCB2aXJ0cXVldWUgKnZxOworCisJcmMgPSB2aG9zdF91c2VyX3NldF9tZW1fdGFibGUodnVfZGV2KTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKKworCWZvciAoaSA9IDA7IGkgPCBudnFzOyArK2kpIHsKKwkJaWYgKCFuYW1lc1tpXSkgeworCQkJdnFzW2ldID0gTlVMTDsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJdnFzW2ldID0gdnVfc2V0dXBfdnEodmRldiwgcXVldWVfaWR4KyssIGNhbGxiYWNrc1tpXSwgbmFtZXNbaV0sCisJCQkJICAgICBjdHggPyBjdHhbaV0gOiBmYWxzZSk7CisJCWlmIChJU19FUlIodnFzW2ldKSkgeworCQkJcmMgPSBQVFJfRVJSKHZxc1tpXSk7CisJCQlnb3RvIGVycm9yX3NldHVwOworCQl9CisJfQorCisJbGlzdF9mb3JfZWFjaF9lbnRyeSh2cSwgJnZkZXYtPnZxcywgbGlzdCkgeworCQlzdHJ1Y3QgdmlydGlvX3VtbF92cV9pbmZvICppbmZvID0gdnEtPnByaXY7CisKKwkJcmMgPSB2aG9zdF91c2VyX3NldF92cmluZ19raWNrKHZ1X2RldiwgdnEtPmluZGV4LAorCQkJCQkgICAgICAgaW5mby0+a2lja19mZCk7CisJCWlmIChyYykKKwkJCWdvdG8gZXJyb3Jfc2V0dXA7CisKKwkJcmMgPSB2aG9zdF91c2VyX3NldF92cmluZ19lbmFibGUodnVfZGV2LCB2cS0+aW5kZXgsIHRydWUpOworCQlpZiAocmMpCisJCQlnb3RvIGVycm9yX3NldHVwOworCX0KKworCXJldHVybiAwOworCitlcnJvcl9zZXR1cDoKKwl2dV9kZWxfdnFzKHZkZXYpOworCXJldHVybiByYzsKK30KKworc3RhdGljIHU2NCB2dV9nZXRfZmVhdHVyZXMoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCit7CisJc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYgPSB0b192aXJ0aW9fdW1sX2RldmljZSh2ZGV2KTsKKworCXJldHVybiB2dV9kZXYtPmZlYXR1cmVzOworfQorCitzdGF0aWMgaW50IHZ1X2ZpbmFsaXplX2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2ID0gdG9fdmlydGlvX3VtbF9kZXZpY2UodmRldik7CisJdTY0IHN1cHBvcnRlZCA9IHZkZXYtPmZlYXR1cmVzICYgVkhPU1RfVVNFUl9TVVBQT1JURURfRjsKKworCXZyaW5nX3RyYW5zcG9ydF9mZWF0dXJlcyh2ZGV2KTsKKwl2dV9kZXYtPmZlYXR1cmVzID0gdmRldi0+ZmVhdHVyZXMgfCBzdXBwb3J0ZWQ7CisKKwlyZXR1cm4gdmhvc3RfdXNlcl9zZXRfZmVhdHVyZXModnVfZGV2LCB2dV9kZXYtPmZlYXR1cmVzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKnZ1X2J1c19uYW1lKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2ID0gdG9fdmlydGlvX3VtbF9kZXZpY2UodmRldik7CisKKwlyZXR1cm4gdnVfZGV2LT5wZGV2LT5uYW1lOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHZpcnRpb19jb25maWdfb3BzIHZpcnRpb191bWxfY29uZmlnX29wcyA9IHsKKwkuZ2V0ID0gdnVfZ2V0LAorCS5zZXQgPSB2dV9zZXQsCisJLmdldF9zdGF0dXMgPSB2dV9nZXRfc3RhdHVzLAorCS5zZXRfc3RhdHVzID0gdnVfc2V0X3N0YXR1cywKKwkucmVzZXQgPSB2dV9yZXNldCwKKwkuZmluZF92cXMgPSB2dV9maW5kX3ZxcywKKwkuZGVsX3ZxcyA9IHZ1X2RlbF92cXMsCisJLmdldF9mZWF0dXJlcyA9IHZ1X2dldF9mZWF0dXJlcywKKwkuZmluYWxpemVfZmVhdHVyZXMgPSB2dV9maW5hbGl6ZV9mZWF0dXJlcywKKwkuYnVzX25hbWUgPSB2dV9idXNfbmFtZSwKK307CisKK3N0YXRpYyB2b2lkIHZpcnRpb191bWxfcmVsZWFzZV9kZXYoc3RydWN0IGRldmljZSAqZCkKK3sKKwlzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldiA9CisJCQljb250YWluZXJfb2YoZCwgc3RydWN0IHZpcnRpb19kZXZpY2UsIGRldik7CisJc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXYgPSB0b192aXJ0aW9fdW1sX2RldmljZSh2ZGV2KTsKKworCS8qIG1pZ2h0IG5vdCBoYXZlIGJlZW4gb3BlbmVkIGR1ZSB0byBub3QgbmVnb3RpYXRpbmcgdGhlIGZlYXR1cmUgKi8KKwlpZiAodnVfZGV2LT5yZXFfZmQgPj0gMCkgeworCQl1bV9mcmVlX2lycShWSVJUSU9fSVJRLCB2dV9kZXYpOworCQlvc19jbG9zZV9maWxlKHZ1X2Rldi0+cmVxX2ZkKTsKKwl9CisKKwlvc19jbG9zZV9maWxlKHZ1X2Rldi0+c29jayk7Cit9CisKKy8qIFBsYXRmb3JtIGRldmljZSAqLworCitzdHJ1Y3QgdmlydGlvX3VtbF9wbGF0Zm9ybV9kYXRhIHsKKwl1MzIgdmlydGlvX2RldmljZV9pZDsKKwljb25zdCBjaGFyICpzb2NrZXRfcGF0aDsKK307CisKK3N0YXRpYyBpbnQgdmlydGlvX3VtbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX3BsYXRmb3JtX2RhdGEgKnBkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJc3RydWN0IHZpcnRpb191bWxfZGV2aWNlICp2dV9kZXY7CisJaW50IHJjOworCisJaWYgKCFwZGF0YSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl2dV9kZXYgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCp2dV9kZXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXZ1X2RldikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwl2dV9kZXYtPnZkZXYuZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7CisJdnVfZGV2LT52ZGV2LmRldi5yZWxlYXNlID0gdmlydGlvX3VtbF9yZWxlYXNlX2RldjsKKwl2dV9kZXYtPnZkZXYuY29uZmlnID0gJnZpcnRpb191bWxfY29uZmlnX29wczsKKwl2dV9kZXYtPnZkZXYuaWQuZGV2aWNlID0gcGRhdGEtPnZpcnRpb19kZXZpY2VfaWQ7CisJdnVfZGV2LT52ZGV2LmlkLnZlbmRvciA9IFZJUlRJT19ERVZfQU5ZX0lEOworCXZ1X2Rldi0+cGRldiA9IHBkZXY7CisJdnVfZGV2LT5yZXFfZmQgPSAtMTsKKworCWRvIHsKKwkJcmMgPSBvc19jb25uZWN0X3NvY2tldChwZGF0YS0+c29ja2V0X3BhdGgpOworCX0gd2hpbGUgKHJjID09IC1FSU5UUik7CisJaWYgKHJjIDwgMCkKKwkJcmV0dXJuIHJjOworCXZ1X2Rldi0+c29jayA9IHJjOworCisJcmMgPSB2aG9zdF91c2VyX2luaXQodnVfZGV2KTsKKwlpZiAocmMpCisJCWdvdG8gZXJyb3JfaW5pdDsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHZ1X2Rldik7CisKKwlyYyA9IHJlZ2lzdGVyX3ZpcnRpb19kZXZpY2UoJnZ1X2Rldi0+dmRldik7CisJaWYgKHJjKQorCQlwdXRfZGV2aWNlKCZ2dV9kZXYtPnZkZXYuZGV2KTsKKwlyZXR1cm4gcmM7CisKK2Vycm9yX2luaXQ6CisJb3NfY2xvc2VfZmlsZSh2dV9kZXYtPnNvY2spOworCXJldHVybiByYzsKK30KKworc3RhdGljIGludCB2aXJ0aW9fdW1sX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCB2aXJ0aW9fdW1sX2RldmljZSAqdnVfZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwl1bnJlZ2lzdGVyX3ZpcnRpb19kZXZpY2UoJnZ1X2Rldi0+dmRldik7CisJcmV0dXJuIDA7Cit9CisKKy8qIENvbW1hbmQgbGluZSBkZXZpY2UgbGlzdCAqLworCitzdGF0aWMgdm9pZCB2dV9jbWRsaW5lX3JlbGVhc2VfZGV2KHN0cnVjdCBkZXZpY2UgKmQpCit7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlIHZ1X2NtZGxpbmVfcGFyZW50ID0geworCS5pbml0X25hbWUgPSAidmlydGlvLXVtbC1jbWRsaW5lIiwKKwkucmVsZWFzZSA9IHZ1X2NtZGxpbmVfcmVsZWFzZV9kZXYsCit9OworCitzdGF0aWMgYm9vbCB2dV9jbWRsaW5lX3BhcmVudF9yZWdpc3RlcmVkOworc3RhdGljIGludCB2dV9jbWRsaW5lX2lkOworCitzdGF0aWMgaW50IHZ1X2NtZGxpbmVfc2V0KGNvbnN0IGNoYXIgKmRldmljZSwgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSAqa3ApCit7CisJY29uc3QgY2hhciAqaWRzID0gc3RyY2hyKGRldmljZSwgJzonKTsKKwl1bnNpZ25lZCBpbnQgdmlydGlvX2RldmljZV9pZDsKKwlpbnQgcHJvY2Vzc2VkLCBjb25zdW1lZCwgZXJyOworCWNoYXIgKnNvY2tldF9wYXRoOworCXN0cnVjdCB2aXJ0aW9fdW1sX3BsYXRmb3JtX2RhdGEgcGRhdGE7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKKworCWlmICghaWRzIHx8IGlkcyA9PSBkZXZpY2UpCisJCXJldHVybiAtRUlOVkFMOworCisJcHJvY2Vzc2VkID0gc3NjYW5mKGlkcywgIjoldSVuOiVkJW4iLAorCQkJICAgJnZpcnRpb19kZXZpY2VfaWQsICZjb25zdW1lZCwKKwkJCSAgICZ2dV9jbWRsaW5lX2lkLCAmY29uc3VtZWQpOworCisJaWYgKHByb2Nlc3NlZCA8IDEgfHwgaWRzW2NvbnN1bWVkXSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIXZ1X2NtZGxpbmVfcGFyZW50X3JlZ2lzdGVyZWQpIHsKKwkJZXJyID0gZGV2aWNlX3JlZ2lzdGVyKCZ2dV9jbWRsaW5lX3BhcmVudCk7CisJCWlmIChlcnIpIHsKKwkJCXByX2VycigiRmFpbGVkIHRvIHJlZ2lzdGVyIHBhcmVudCBkZXZpY2UhXG4iKTsKKwkJCXB1dF9kZXZpY2UoJnZ1X2NtZGxpbmVfcGFyZW50KTsKKwkJCXJldHVybiBlcnI7CisJCX0KKwkJdnVfY21kbGluZV9wYXJlbnRfcmVnaXN0ZXJlZCA9IHRydWU7CisJfQorCisJc29ja2V0X3BhdGggPSBrbWVtZHVwX251bChkZXZpY2UsIGlkcyAtIGRldmljZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzb2NrZXRfcGF0aCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwZGF0YS52aXJ0aW9fZGV2aWNlX2lkID0gKHUzMikgdmlydGlvX2RldmljZV9pZDsKKwlwZGF0YS5zb2NrZXRfcGF0aCA9IHNvY2tldF9wYXRoOworCisJcHJfaW5mbygiUmVnaXN0ZXJpbmcgZGV2aWNlIHZpcnRpby11bWwuJWQgaWQ9JWQgYXQgJXNcbiIsCisJCXZ1X2NtZGxpbmVfaWQsIHZpcnRpb19kZXZpY2VfaWQsIHNvY2tldF9wYXRoKTsKKworCXBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZGF0YSgmdnVfY21kbGluZV9wYXJlbnQsICJ2aXJ0aW8tdW1sIiwKKwkJCQkJICAgICB2dV9jbWRsaW5lX2lkKyssICZwZGF0YSwKKwkJCQkJICAgICBzaXplb2YocGRhdGEpKTsKKwllcnIgPSBQVFJfRVJSX09SX1pFUk8ocGRldik7CisJaWYgKGVycikKKwkJZ290byBmcmVlOworCXJldHVybiAwOworCitmcmVlOgorCWtmcmVlKHNvY2tldF9wYXRoKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IHZ1X2NtZGxpbmVfZ2V0X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOworCXN0cnVjdCB2aXJ0aW9fdW1sX3BsYXRmb3JtX2RhdGEgKnBkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJY2hhciAqYnVmZmVyID0gZGF0YTsKKwl1bnNpZ25lZCBpbnQgbGVuID0gc3RybGVuKGJ1ZmZlcik7CisKKwlzbnByaW50ZihidWZmZXIgKyBsZW4sIFBBR0VfU0laRSAtIGxlbiwgIiVzOiVkOiVkXG4iLAorCQkgcGRhdGEtPnNvY2tldF9wYXRoLCBwZGF0YS0+dmlydGlvX2RldmljZV9pZCwgcGRldi0+aWQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZ1X2NtZGxpbmVfZ2V0KGNoYXIgKmJ1ZmZlciwgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSAqa3ApCit7CisJYnVmZmVyWzBdID0gJ1wwJzsKKwlpZiAodnVfY21kbGluZV9wYXJlbnRfcmVnaXN0ZXJlZCkKKwkJZGV2aWNlX2Zvcl9lYWNoX2NoaWxkKCZ2dV9jbWRsaW5lX3BhcmVudCwgYnVmZmVyLAorCQkJCSAgICAgIHZ1X2NtZGxpbmVfZ2V0X2RldmljZSk7CisJcmV0dXJuIHN0cmxlbihidWZmZXIpICsgMTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW1fb3BzIHZ1X2NtZGxpbmVfcGFyYW1fb3BzID0geworCS5zZXQgPSB2dV9jbWRsaW5lX3NldCwKKwkuZ2V0ID0gdnVfY21kbGluZV9nZXQsCit9OworCitkZXZpY2VfcGFyYW1fY2IoZGV2aWNlLCAmdnVfY21kbGluZV9wYXJhbV9vcHMsIE5VTEwsIFNfSVJVU1IpOworX191bWxfaGVscCh2dV9jbWRsaW5lX3BhcmFtX29wcywKKyJ2aXJ0aW9fdW1sLmRldmljZT08c29ja2V0Pjo8dmlydGlvX2lkPls6PHBsYXRmb3JtX2lkPl1cbiIKKyIgICAgQ29uZmlndXJlIGEgdmlydGlvIGRldmljZSBvdmVyIGEgdmhvc3QtdXNlciBzb2NrZXQuXG4iCisiICAgIFNlZSB2aXJ0aW9faWRzLmggZm9yIGEgbGlzdCBvZiBwb3NzaWJsZSB2aXJ0aW8gZGV2aWNlIGlkIHZhbHVlcy5cbiIKKyIgICAgT3B0aW9uYWxseSB1c2UgYSBzcGVjaWZpYyBwbGF0Zm9ybV9kZXZpY2UgaWQuXG5cbiIKKyk7CisKKworc3RhdGljIGludCB2dV91bnJlZ2lzdGVyX2NtZGxpbmVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldik7CisJc3RydWN0IHZpcnRpb191bWxfcGxhdGZvcm1fZGF0YSAqcGRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKKworCWtmcmVlKHBkYXRhLT5zb2NrZXRfcGF0aCk7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIocGRldik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHZ1X3VucmVnaXN0ZXJfY21kbGluZV9kZXZpY2VzKHZvaWQpCit7CisJaWYgKHZ1X2NtZGxpbmVfcGFyZW50X3JlZ2lzdGVyZWQpIHsKKwkJZGV2aWNlX2Zvcl9lYWNoX2NoaWxkKCZ2dV9jbWRsaW5lX3BhcmVudCwgTlVMTCwKKwkJCQkgICAgICB2dV91bnJlZ2lzdGVyX2NtZGxpbmVfZGV2aWNlKTsKKwkJZGV2aWNlX3VucmVnaXN0ZXIoJnZ1X2NtZGxpbmVfcGFyZW50KTsKKwkJdnVfY21kbGluZV9wYXJlbnRfcmVnaXN0ZXJlZCA9IGZhbHNlOworCX0KK30KKworLyogUGxhdGZvcm0gZHJpdmVyICovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHZpcnRpb191bWxfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInZpcnRpbyx1bWwiLCB9LAorCXsgfQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHZpcnRpb191bWxfbWF0Y2gpOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB2aXJ0aW9fdW1sX2RyaXZlciA9IHsKKwkucHJvYmUgPSB2aXJ0aW9fdW1sX3Byb2JlLAorCS5yZW1vdmUgPSB2aXJ0aW9fdW1sX3JlbW92ZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJ2aXJ0aW8tdW1sIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gdmlydGlvX3VtbF9tYXRjaCwKKwl9LAorfTsKKworc3RhdGljIGludCBfX2luaXQgdmlydGlvX3VtbF9pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmdmlydGlvX3VtbF9kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgdmlydGlvX3VtbF9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnZpcnRpb191bWxfZHJpdmVyKTsKKwl2dV91bnJlZ2lzdGVyX2NtZGxpbmVfZGV2aWNlcygpOworfQorCittb2R1bGVfaW5pdCh2aXJ0aW9fdW1sX2luaXQpOworbW9kdWxlX2V4aXQodmlydGlvX3VtbF9leGl0KTsKK19fdW1sX2V4aXRjYWxsKHZpcnRpb191bWxfZXhpdCk7CisKK01PRFVMRV9ERVNDUklQVElPTigiVU1MIGRyaXZlciBmb3Igdmhvc3QtdXNlciB2aXJ0aW8gZGV2aWNlcyIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3h0ZXJtLmMgYi9hcmNoL3VtL2RyaXZlcnMveHRlcm0uYwppbmRleCAyMGUzMGJlLi5mYzdmMWU3IDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMveHRlcm0uYworKysgYi9hcmNoL3VtL2RyaXZlcnMveHRlcm0uYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGRlZi5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3h0ZXJtLmggYi9hcmNoL3VtL2RyaXZlcnMveHRlcm0uaAppbmRleCA1NmI5YzRhLi41OTY4ZGEzIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMveHRlcm0uaAorKysgYi9hcmNoL3VtL2RyaXZlcnMveHRlcm0uaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMiBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1hURVJNX0hfXwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3h0ZXJtX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVycy94dGVybV9rZXJuLmMKaW5kZXggZThmOTk1Ny4uZDY0ZWY2ZCAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3h0ZXJtX2tlcm4uYworKysgYi9hcmNoL3VtL2RyaXZlcnMveHRlcm1fa2Vybi5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qIAogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9hc20vS2J1aWxkIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9LYnVpbGQKaW5kZXggYjM1MmVkMC4uMzk4MDA2ZCAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL2FzbS9LYnVpbGQKKysrIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9LYnVpbGQKQEAgLTEsNSArMSw0IEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi1nZW5lcmljLXkgKz0gYmFycmllci5oCiBnZW5lcmljLXkgKz0gYnBmX3BlcmZfZXZlbnQuaAogZ2VuZXJpYy15ICs9IGJ1Zy5oCiBnZW5lcmljLXkgKz0gY29tcGF0LmgKZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9hc20vY29tbW9uLmxkcy5TIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9jb21tb24ubGRzLlMKaW5kZXggNDA0OWYyYy4uZDcwODZiOSAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL2FzbS9jb21tb24ubGRzLlMKKysrIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9jb21tb24ubGRzLlMKQEAgLTgzLDggKzgzLDggQEAKIAlfX3ByZWluaXRfYXJyYXlfZW5kID0gLjsKICAgfQogICAuaW5pdF9hcnJheSA6IHsKKyAgICAgICAgLyogZHVtbXkgLSB3ZSBjYWxsIHRoaXMgb3Vyc2VsdmVzICovCiAJX19pbml0X2FycmF5X3N0YXJ0ID0gLjsKLQkqKC5pbml0X2FycmF5KQogCV9faW5pdF9hcnJheV9lbmQgPSAuOwogICB9CiAgIC5maW5pX2FycmF5IDogewpkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL2FzbS9pcnEuaCBiL2FyY2gvdW0vaW5jbHVkZS9hc20vaXJxLmgKaW5kZXggNDllZDNlMy4uNDJjNjIwNSAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL2FzbS9pcnEuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvYXNtL2lycS5oCkBAIC0xNywxNyArMTcsMTggQEAKICNkZWZpbmUgVEVMTkVURF9JUlEgCQkxMgogI2RlZmluZSBYVEVSTV9JUlEgCQkxMwogI2RlZmluZSBSQU5ET01fSVJRIAkJMTQKKyNkZWZpbmUgVklSVElPX0lSUQkJMTUKIAogI2lmZGVmIENPTkZJR19VTUxfTkVUX1ZFQ1RPUgogCi0jZGVmaW5lIFZFQ1RPUl9CQVNFX0lSUQkJMTUKKyNkZWZpbmUgVkVDVE9SX0JBU0VfSVJRCQkoVklSVElPX0lSUSArIDEpCiAjZGVmaW5lIFZFQ1RPUl9JUlFfU1BBQ0UJOAogCi0jZGVmaW5lIExBU1RfSVJRIChWRUNUT1JfSVJRX1NQQUNFICsgVkVDVE9SX0JBU0VfSVJRKQorI2RlZmluZSBMQVNUX0lSUSAoVkVDVE9SX0lSUV9TUEFDRSArIFZFQ1RPUl9CQVNFX0lSUSAtIDEpCiAKICNlbHNlCiAKLSNkZWZpbmUgTEFTVF9JUlEgUkFORE9NX0lSUQorI2RlZmluZSBMQVNUX0lSUSBWSVJUSU9fSVJRCiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvYXNtL2lycWZsYWdzLmggYi9hcmNoL3VtL2luY2x1ZGUvYXNtL2lycWZsYWdzLmgKaW5kZXggY2JjNmMwMC4uMDY0MmFkOSAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL2FzbS9pcnFmbGFncy5oCisrKyBiL2FyY2gvdW0vaW5jbHVkZS9hc20vaXJxZmxhZ3MuaApAQCAtMzIsNyArMzIsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9sb2NhbF9pcnFfZGlzYWJsZSh2b2lkKQogfQogCiAjZGVmaW5lIEFSQ0hfSVJRX0RJU0FCTEVECTAKLSNkZWZpbmUgQVJDaF9JUlFfRU5BQkxFRAkoU0lHSU98U0lHVlRBTFJNKQogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvaXJxZmxhZ3MuaD4KIApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL2FzbS9rbWFwX3R5cGVzLmggYi9hcmNoL3VtL2luY2x1ZGUvYXNtL2ttYXBfdHlwZXMuaAppbmRleCAyZTBhNmIxLi5iMGJkMTJkIDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvYXNtL2ttYXBfdHlwZXMuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvYXNtL2ttYXBfdHlwZXMuaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMiBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1VNX0tNQVBfVFlQRVNfSApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL2FzbS9tbXUuaCBiL2FyY2gvdW0vaW5jbHVkZS9hc20vbW11LmgKaW5kZXggZGE3MDU0NC4uNWIwNzJhYiAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL2FzbS9tbXUuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvYXNtL21tdS5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qIAogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX0FSQ0hfVU1fTU1VX0gKZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaCBiL2FyY2gvdW0vaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaAppbmRleCAwMGNlZmQzLi41YWVlMDYyIDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qIAogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1VNX01NVV9DT05URVhUX0gKZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9hc20vcGFnZS5oIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9wYWdlLmgKaW5kZXggZjg3OGJlYy4uOTVhZjEyZSAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL2FzbS9wYWdlLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9wYWdlLmgKQEAgLTEsNyArMSw3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMCAtIDIwMDMgSmVmZiBEaWtlIChqZGlrZUBhZGR0b2l0LmNvbSkKICAqIENvcHlyaWdodCAyMDAzIFBhdGhTY2FsZSwgSW5jLgotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19VTV9QQUdFX0gKZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9hc20vcGdhbGxvYy5oIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKaW5kZXggZDdiMjgyZS4uODgxZTc2ZCAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKQEAgLTEsOCArMSw4IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEsIDIwMDIgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQogICogQ29weXJpZ2h0IDIwMDMgUGF0aFNjYWxlLCBJbmMuCiAgKiBEZXJpdmVkIGZyb20gaW5jbHVkZS9hc20taTM4Ni9wZ2FsbG9jLmggYW5kIGluY2x1ZGUvYXNtLWkzODYvcGd0YWJsZS5oCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1VNX1BHQUxMT0NfSApAQCAtMjksNyArMjksNyBAQCBleHRlcm4gdm9pZCBwZ2RfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCk7CiAKICNkZWZpbmUgX19wdGVfZnJlZV90bGIodGxiLHB0ZSwgYWRkcmVzcykJCVwKIGRvIHsJCQkJCQkJXAotCXBndGFibGVfcGFnZV9kdG9yKHB0ZSk7CQkJCVwKKwlwZ3RhYmxlX3B0ZV9wYWdlX2R0b3IocHRlKTsJCQlcCiAJdGxiX3JlbW92ZV9wYWdlKCh0bGIpLChwdGUpKTsJCQlcCiB9IHdoaWxlICgwKQogCkBAIC00Myw3ICs0Myw1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwbWRfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcG1kX3QgKnBtZCkKICNkZWZpbmUgX19wbWRfZnJlZV90bGIodGxiLHgsIGFkZHJlc3MpICAgdGxiX3JlbW92ZV9wYWdlKCh0bGIpLHZpcnRfdG9fcGFnZSh4KSkKICNlbmRpZgogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpCWRvIHsgfSB3aGlsZSAoMCkKLQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9hc20vcGd0YWJsZS0ybGV2ZWwuaCBiL2FyY2gvdW0vaW5jbHVkZS9hc20vcGd0YWJsZS0ybGV2ZWwuaAppbmRleCAxNzljMGVhLi4zMmIzZDI2IDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvYXNtL3BndGFibGUtMmxldmVsLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9wZ3RhYmxlLTJsZXZlbC5oCkBAIC0xLDggKzEsOCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEsIDIwMDIgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQogICogQ29weXJpZ2h0IDIwMDMgUGF0aFNjYWxlLCBJbmMuCiAgKiBEZXJpdmVkIGZyb20gaW5jbHVkZS9hc20taTM4Ni9wZ3RhYmxlLmgKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fVU1fUEdUQUJMRV8yTEVWRUxfSApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL2FzbS9wZ3RhYmxlLTNsZXZlbC5oIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9wZ3RhYmxlLTNsZXZlbC5oCmluZGV4IGM0ZDg3NmQuLjk4MTIyNjkgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9hc20vcGd0YWJsZS0zbGV2ZWwuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvYXNtL3BndGFibGUtM2xldmVsLmgKQEAgLTEsNyArMSw3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyoKICAqIENvcHlyaWdodCAyMDAzIFBhdGhTY2FsZSBJbmMKICAqIERlcml2ZWQgZnJvbSBpbmNsdWRlL2FzbS1pMzg2L3BndGFibGUuaAotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19VTV9QR1RBQkxFXzNMRVZFTF9ICmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvYXNtL3BndGFibGUuaCBiL2FyY2gvdW0vaW5jbHVkZS9hc20vcGd0YWJsZS5oCmluZGV4IGIzNzdkZjcuLjM2YTQ0ZDUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9hc20vcGd0YWJsZS5oCisrKyBiL2FyY2gvdW0vaW5jbHVkZS9hc20vcGd0YWJsZS5oCkBAIC0xLDggKzEsOCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qIAogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCiAgKiBDb3B5cmlnaHQgMjAwMyBQYXRoU2NhbGUsIEluYy4KICAqIERlcml2ZWQgZnJvbSBpbmNsdWRlL2FzbS1pMzg2L3BndGFibGUuaAotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19VTV9QR1RBQkxFX0gKQEAgLTMyLDggKzMyLDYgQEAgZXh0ZXJuIHBnZF90IHN3YXBwZXJfcGdfZGlyW1BUUlNfUEVSX1BHRF07CiAvKiB6ZXJvIHBhZ2UgdXNlZCBmb3IgdW5pbml0aWFsaXplZCBzdHVmZiAqLwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKmVtcHR5X3plcm9fcGFnZTsKIAotI2RlZmluZSBwZ3RhYmxlX2NhY2hlX2luaXQoKSBkbyA7IHdoaWxlICgwKQotCiAvKiBKdXN0IGFueSBhcmJpdHJhcnkgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgdm1hbGxvYyBWTSBhcmVhOiB0aGUKICAqIGN1cnJlbnQgOE1CIHZhbHVlIGp1c3QgbWVhbnMgdGhhdCB0aGVyZSB3aWxsIGJlIGEgOE1CICJob2xlIiBhZnRlciB0aGUKICAqIHBoeXNpY2FsIG1lbW9yeSB1bnRpbCB0aGUga2VybmVsIHZpcnR1YWwgbWVtb3J5IHN0YXJ0cy4gIFRoYXQgbWVhbnMgdGhhdApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL2FzbS9wcm9jZXNzb3ItZ2VuZXJpYy5oIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9wcm9jZXNzb3ItZ2VuZXJpYy5oCmluZGV4IGI1OGI3NDYuLmFmZDliMjYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9hc20vcHJvY2Vzc29yLWdlbmVyaWMuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci1nZW5lcmljLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fVU1fUFJPQ0VTU09SX0dFTkVSSUNfSApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL2FzbS9wdHJhY2UtZ2VuZXJpYy5oIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9wdHJhY2UtZ2VuZXJpYy5oCmluZGV4IDVhYjIwNjIuLjgxYzY0N2UgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9hc20vcHRyYWNlLWdlbmVyaWMuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvYXNtL3B0cmFjZS1nZW5lcmljLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fVU1fUFRSQUNFX0dFTkVSSUNfSApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIGIvYXJjaC91bS9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCmluZGV4IDRlZWNkOTYuLjRjMTljZTQgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19VTV9USFJFQURfSU5GT19ICmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvYXNtL3RsYmZsdXNoLmggYi9hcmNoL3VtL2luY2x1ZGUvYXNtL3RsYmZsdXNoLmgKaW5kZXggNjE0ZjJjMC4uYTViZGE4OSAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL2FzbS90bGJmbHVzaC5oCisrKyBiL2FyY2gvdW0vaW5jbHVkZS9hc20vdGxiZmx1c2guaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1VNX1RMQkZMVVNIX0gKZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9hc20vdWFjY2Vzcy5oIGIvYXJjaC91bS9pbmNsdWRlL2FzbS91YWNjZXNzLmgKaW5kZXggY2MwMGZjNS4uZmU2NmQ2NSAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL2FzbS91YWNjZXNzLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL2FzbS91YWNjZXNzLmgKQEAgLTEsNyArMSw3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDE1IFJpY2hhcmQgV2VpbmJlcmdlciAocmljaGFyZEBub2QuYXQpCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1VNX1VBQ0NFU1NfSApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9hcmNoLmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2FyY2guaAppbmRleCA0ZjQ2YWJkLi44ODBlZTQyIDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2FyY2guaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2FyY2guaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fQVJDSF9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvYXMtbGF5b3V0LmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2FzLWxheW91dC5oCmluZGV4IGNhMTg0M2UuLjVmMjg2ZWYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvYXMtbGF5b3V0LmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9hcy1sYXlvdXQuaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fU1RBUlRfSF9fCmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2VsZl91c2VyLmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2VsZl91c2VyLmgKaW5kZXggNTM1MTZiNjM3Li5mZDQ2MWVlIDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2VsZl91c2VyLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9lbGZfdXNlci5oCkBAIC0xLDcgKzEsNyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQgRnVqaXRzdSBTaWVtZW5zIENvbXB1dGVycyBHbWJICiAgKiBBdXRob3I6IEJvZG8gU3Ryb2Vzc2VyIDxic3Ryb2Vzc2VyQGZ1aml0c3Utc2llbWVucy5jb20+Ci0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX0VMRl9VU0VSX0hfXwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9mcmFtZV9rZXJuLmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2ZyYW1lX2tlcm4uaAppbmRleCBhNWNkZTVjLi5lZDk1MmFjIDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2ZyYW1lX2tlcm4uaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2ZyYW1lX2tlcm4uaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMiBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX0ZSQU1FX0tFUk5fSF8KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvaXJxX2tlcm4uaCBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvaXJxX2tlcm4uaAppbmRleCBlMDViZDY2Li43Y2QxYTEwIDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2lycV9rZXJuLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9pcnFfa2Vybi5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19JUlFfS0VSTl9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvaXJxX3VzZXIuaCBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvaXJxX3VzZXIuaAppbmRleCBlNzI0MmEwLi4xMDc3NTFkIDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2lycV91c2VyLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9pcnFfdXNlci5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fSVJRX1VTRVJfSF9fCmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2tlcm4uaCBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQva2Vybi5oCmluZGV4IDZjZDAxMjQuLjNhOWM3NWEgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQva2Vybi5oCisrKyBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQva2Vybi5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qIAogICogQ29weXJpZ2h0IChDKSAyMDAwIEplZmYgRGlrZSAoamRpa2VAa2FyYXlhLmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fS0VSTl9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQva2Vybl91dGlsLmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL2tlcm5fdXRpbC5oCmluZGV4IDM1YWI5N2UuLmNjYWZiNjIgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQva2Vybl91dGlsLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9rZXJuX3V0aWwuaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX0tFUk5fVVRJTF9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvbG9uZ2ptcC5oIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9sb25nam1wLmgKaW5kZXggYjMzMTVjMS4uODVhMWNjMiAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9sb25nam1wLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9sb25nam1wLmgKQEAgLTE4LDcgKzE4LDcgQEAgZXh0ZXJuIHZvaWQgbG9uZ2ptcChqbXBfYnVmLCBpbnQpOwogCWVuYWJsZSA9IGdldF9zaWduYWxzKCk7IFwKIAluID0gc2V0am1wKCpidWYpOyBcCiAJaWYobiAhPSAwKSBcCi0JCXNldF9zaWduYWxzKGVuYWJsZSk7IFwKKwkJc2V0X3NpZ25hbHNfdHJhY2UoZW5hYmxlKTsgXAogCW47IH0pCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9tZW0uaCBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvbWVtLmgKaW5kZXggNWNkNDBlOS4uNDg2MmM5MSAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9tZW0uaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL21lbS5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qIAogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX01FTV9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvbmV0X2tlcm4uaCBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvbmV0X2tlcm4uaAppbmRleCA0MDQ0MmI5Li5hODdiZTEzIDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL25ldF9rZXJuLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9uZXRfa2Vybi5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1VNX05FVF9LRVJOX0gKZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvbmV0X3VzZXIuaCBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvbmV0X3VzZXIuaAppbmRleCAzZGFiYmUxLi4xYjA1MzE3IDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL25ldF91c2VyLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9uZXRfdXNlci5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fVU1fTkVUX1VTRVJfSF9fCmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL29zLmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL29zLmgKaW5kZXggNGE2MmFjNC4uNTA2YmNkMSAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9vcy5oCisrKyBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvb3MuaApAQCAtMSw4ICsxLDggQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IEFudG9uIEl2YW5vdiAoYWl2YW5vdkB7YnJvY2FkZS5jb20sa290LWJlZ2Vtb3QuY28udWt9KQogICogQ29weXJpZ2h0IChDKSAyMDE1IFRob21hcyBNZXllciAodGhvbWFzQG0zeTNyLmRlKQogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX09TX0hfXwpAQCAtMzYsNiArMzYsOCBAQAogI2RlZmluZSBPU19MSUJfUEFUSAkiL3Vzci9saWIvIgogI2VuZGlmCiAKKyNkZWZpbmUgT1NfU0VORE1TR19NQVhfRkRTIDgKKwogLyoKICAqIHR5cGVzIHRha2VuIGZyb20gc3RhdF9maWxlKCkgaW4gaG9zdGZzX3VzZXIuYwogICogKGlmIHRoZXkgYXJlIHdyb25nIGhlcmUsIHRoZXkgYXJlIHdyb25nIHRoZXJlLi4uKS4KQEAgLTE3Niw2ICsxNzgsOSBAQCBleHRlcm4gdW5zaWduZWQgb3NfbWFqb3IodW5zaWduZWQgbG9uZyBsb25nIGRldik7CiBleHRlcm4gdW5zaWduZWQgb3NfbWlub3IodW5zaWduZWQgbG9uZyBsb25nIGRldik7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIG9zX21ha2VkZXYodW5zaWduZWQgbWFqb3IsIHVuc2lnbmVkIG1pbm9yKTsKIGV4dGVybiBpbnQgb3NfZmFsbG9jX3B1bmNoKGludCBmZCwgdW5zaWduZWQgbG9uZyBsb25nIG9mZnNldCwgaW50IGNvdW50KTsKK2V4dGVybiBpbnQgb3NfZXZlbnRmZCh1bnNpZ25lZCBpbnQgaW5pdHZhbCwgaW50IGZsYWdzKTsKK2V4dGVybiBpbnQgb3Nfc2VuZG1zZ19mZHMoaW50IGZkLCBjb25zdCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4sCisJCQkgIGNvbnN0IGludCAqZmRzLCB1bnNpZ25lZCBpbnQgZmRzX251bSk7CiAKIC8qIHN0YXJ0X3VwLmMgKi8KIGV4dGVybiB2b2lkIG9zX2Vhcmx5X2NoZWNrcyh2b2lkKTsKQEAgLTIzMiw2ICsyMzcsNyBAQCBleHRlcm4gdm9pZCBibG9ja19zaWduYWxzKHZvaWQpOwogZXh0ZXJuIHZvaWQgdW5ibG9ja19zaWduYWxzKHZvaWQpOwogZXh0ZXJuIGludCBnZXRfc2lnbmFscyh2b2lkKTsKIGV4dGVybiBpbnQgc2V0X3NpZ25hbHMoaW50IGVuYWJsZSk7CitleHRlcm4gaW50IHNldF9zaWduYWxzX3RyYWNlKGludCBlbmFibGUpOwogZXh0ZXJuIGludCBvc19pc19zaWduYWxfc3RhY2sodm9pZCk7CiBleHRlcm4gdm9pZCBkZWxpdmVyX2FsYXJtKHZvaWQpOwogCkBAIC0zMTcsNCArMzIzLDEwIEBAIGV4dGVybiB1bnNpZ25lZCBsb25nIG9zX2dldF90b3BfYWRkcmVzcyh2b2lkKTsKIAogbG9uZyBzeXNjYWxsKGxvbmcgbnVtYmVyLCAuLi4pOwogCisvKiBpcnFmbGFncyB0cmFjaW5nICovCitleHRlcm4gdm9pZCBibG9ja19zaWduYWxzX3RyYWNlKHZvaWQpOworZXh0ZXJuIHZvaWQgdW5ibG9ja19zaWduYWxzX3RyYWNlKHZvaWQpOworZXh0ZXJuIHZvaWQgdW1fdHJhY2Vfc2lnbmFsc19vbih2b2lkKTsKK2V4dGVybiB2b2lkIHVtX3RyYWNlX3NpZ25hbHNfb2ZmKHZvaWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvcHRyYWNlX3VzZXIuaCBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvcHRyYWNlX3VzZXIuaAppbmRleCA1NmIyZjI4Li45NTQ1NWU4OSAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9wdHJhY2VfdXNlci5oCisrKyBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvcHRyYWNlX3VzZXIuaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMCAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19QVFJBQ0VfVVNFUl9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvcmVnaXN0ZXJzLmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3JlZ2lzdGVycy5oCmluZGV4IGE3NDQ0OWIuLjBjNTBmYTYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvcmVnaXN0ZXJzLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9yZWdpc3RlcnMuaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0IFBhdGhTY2FsZSwgSW5jCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1JFR0lTVEVSU19ICmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3NpZ2lvLmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3NpZ2lvLmgKaW5kZXggNDM0ZjFhOS4uOGZlOGY1NyAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9zaWdpby5oCisrKyBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvc2lnaW8uaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMiBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1NJR0lPX0hfXwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9za2FzL21tX2lkLmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3NrYXMvbW1faWQuaAppbmRleCA0OGRkMDk4Li40MzM3YjRjIDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3NrYXMvbW1faWQuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3NrYXMvbW1faWQuaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA1IEplZmYgRGlrZSAoamRpa2VAa2FyYXlhLmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fTU1fSURfSApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9za2FzL3NrYXMuaCBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvc2thcy9za2FzLmgKaW5kZXggOTExZjNjNC4uYzkzZDJjYiAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9za2FzL3NrYXMuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3NrYXMvc2thcy5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fU0tBU19ICmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3NrYXMvc3R1Yi1kYXRhLmggYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3NrYXMvc3R1Yi1kYXRhLmgKaW5kZXggMTNmNDA0ZS4uNmIwMWQ5NyAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC9za2FzL3N0dWItZGF0YS5oCisrKyBiL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvc2thcy9zdHViLWRhdGEuaApAQCAtMSw4ICsxLDggQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhvbWFzIE1leWVyICh0aG9tYXNAbTN5M3IuZGUpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19TVFVCX0RBVEFfSApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC90aW1lci1pbnRlcm5hbC5oIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC90aW1lci1pbnRlcm5hbC5oCmluZGV4IDk5OTFlYzIuLjJkMmQxM2MgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvdGltZXItaW50ZXJuYWwuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3RpbWVyLWludGVybmFsLmgKQEAgLTEsNyArMSw3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiAtIDIwMTQgQ2lzY28gU3lzdGVtcwogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1RJTUVSX0lOVEVSTkFMX0hfXwpAQCAtNDMsNiArNDMsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIHRpbWVfdHJhdmVsX3NldF90aW1lcl9leHBpcnkodW5zaWduZWQgbG9uZyBsb25nIGV4cGlyeSkKIHsKIAl0aW1lX3RyYXZlbF90aW1lcl9leHBpcnkgPSBleHBpcnk7CiB9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCB0aW1lX3RyYXZlbF9zZXRfdGltZXJfaW50ZXJ2YWwodW5zaWduZWQgbG9uZyBsb25nIGludGVydmFsKQoreworCXRpbWVfdHJhdmVsX3RpbWVyX2ludGVydmFsID0gaW50ZXJ2YWw7Cit9CiAjZWxzZQogI2RlZmluZSB0aW1lX3RyYXZlbF9tb2RlIFRUX01PREVfT0ZGCiAjZGVmaW5lIHRpbWVfdHJhdmVsX3RpbWUgMApAQCAtNjEsNiArNjYsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHRpbWVfdHJhdmVsX3NldF90aW1lcl9leHBpcnkodW5zaWduZWQgbG9uZyBsb25nIGV4cGlyeSkKIHsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIHRpbWVfdHJhdmVsX3NldF90aW1lcl9pbnRlcnZhbCh1bnNpZ25lZCBsb25nIGxvbmcgaW50ZXJ2YWwpCit7Cit9CisKICNkZWZpbmUgdGltZV90cmF2ZWxfdGltZXJfbW9kZSBUVF9UTVJfRElTQUJMRUQKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3VtX21hbGxvYy5oIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC91bV9tYWxsb2MuaAppbmRleCA2Mzk1ZmVmLi4xM2RhOTMyOCAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC91bV9tYWxsb2MuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL3VtX21hbGxvYy5oCkBAIC0xLDYgKzEsNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgUGFvbG8gJ0JsYWlzb3JibGFkZScgR2lhcnJ1c3NvIDxibGFpc29yYmxhZGVAeWFob28uaXQ+Ci0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2lmbmRlZiBfX1VNX01BTExPQ19IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvdXNlci5oIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC91c2VyLmgKaW5kZXggNGNmZjE5Zi4uZTc5M2U0MiAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC91c2VyLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL3NoYXJlZC91c2VyLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fVVNFUl9IX18KZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL01ha2VmaWxlIGIvYXJjaC91bS9rZXJuZWwvTWFrZWZpbGUKaW5kZXggMmYzNmQ1MS4uNWFhODgyMCAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvTWFrZWZpbGUKKysrIGIvYXJjaC91bS9rZXJuZWwvTWFrZWZpbGUKQEAgLTEsNiArMSw2IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjCiAjIENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eCxpbnRlbH0uY29tKQotIyBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAjCiAKICMgRG9uJ3QgaW5zdHJ1bWVudCBVTUwtc3BlY2lmaWMgY29kZTsgd2l0aG91dCB0aGlzLCB3ZSBtYXkgY3Jhc2ggd2hlbgpAQCAtMTMsNyArMTMsNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgLURFTEZfRk9STUFUPSQoTERTX0VMRl9GT1JNQVQpCVwKIAkJCSQoTERTX0VYVFJBKQogZXh0cmEteSA6PSB2bWxpbnV4LmxkcwotY2xlYW4tZmlsZXMgOj0KIAogb2JqLXkgPSBjb25maWcubyBleGVjLm8gZXhpdGNvZGUubyBpcnEubyBrc3ltcy5vIG1lbS5vIFwKIAlwaHlzbWVtLm8gcHJvY2Vzcy5vIHB0cmFjZS5vIHJlYm9vdC5vIHNpZ2lvLm8gXApkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvY29uZmlnLmMuaW4gYi9hcmNoL3VtL2tlcm5lbC9jb25maWcuYy5pbgppbmRleCA5NzJiZjE2Li4zZWNlM2MzIDEwMDY0NAotLS0gYS9hcmNoL3VtL2tlcm5lbC9jb25maWcuYy5pbgorKysgYi9hcmNoL3VtL2tlcm5lbC9jb25maWcuYy5pbgpAQCAtMSw2ICsxLDYgQEAKLS8qIAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgSmVmZiBEaWtlIChqZGlrZUBrYXJheWEuY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvZHluLmxkcy5TIGIvYXJjaC91bS9rZXJuZWwvZHluLmxkcy5TCmluZGV4IDU1NjhjZjguLmM2OWQ2OWUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL2R5bi5sZHMuUworKysgYi9hcmNoL3VtL2tlcm5lbC9keW4ubGRzLlMKQEAgLTcwLDYgKzcwLDggQEAKICAgICBTQ0hFRF9URVhUCiAgICAgQ1BVSURMRV9URVhUCiAgICAgTE9DS19URVhUCisgICAgSVJRRU5UUllfVEVYVAorICAgIFNPRlRJUlFFTlRSWV9URVhUCiAgICAgKiguZml4dXApCiAgICAgKiguc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwpAQCAtMTAxLDcgKzEwMyw2IEBACiAgICAgIGJlIGVtcHR5LCB3aGljaCBpc24ndCBwcmV0dHkuICAqLwogICAuID0gQUxJR04oMzIgLyA4KTsKICAgLnByZWluaXRfYXJyYXkgICAgIDogeyAqKC5wcmVpbml0X2FycmF5KSB9Ci0gIC5pbml0X2FycmF5ICAgICA6IHsgKiguaW5pdF9hcnJheSkgfQogICAuZmluaV9hcnJheSAgICAgOiB7ICooLmZpbmlfYXJyYXkpIH0KICAgLmRhdGEgICAgICAgICAgIDogewogICAgIElOSVRfVEFTS19EQVRBKEtFUk5FTF9TVEFDS19TSVpFKQpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvZXhlYy5jIGIvYXJjaC91bS9rZXJuZWwvZXhlYy5jCmluZGV4IDc4M2I5MjQuLmU4ZmQ1ZDUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL2V4ZWMuYworKysgYi9hcmNoL3VtL2tlcm5lbC9leGVjLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMCAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL2V4aXRjb2RlLmMgYi9hcmNoL3VtL2tlcm5lbC9leGl0Y29kZS5jCmluZGV4IDU0NjMwMmUuLjM2OWZkODQgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL2V4aXRjb2RlLmMKKysrIGIvYXJjaC91bS9rZXJuZWwvZXhpdGNvZGUuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9nbW9uX3N5bXMuYyBiL2FyY2gvdW0va2VybmVsL2dtb25fc3ltcy5jCmluZGV4IGYxMzhhNGEuLjkzNjFhOGUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL2dtb25fc3ltcy5jCisrKyBiL2FyY2gvdW0va2VybmVsL2dtb25fc3ltcy5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9ncHJvZl9zeW1zLmMgYi9hcmNoL3VtL2tlcm5lbC9ncHJvZl9zeW1zLmMKaW5kZXggNzRkZGI0NC4uODRkNTM2OSAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvZ3Byb2Zfc3ltcy5jCisrKyBiL2FyY2gvdW0va2VybmVsL2dwcm9mX3N5bXMuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL2luaXRyZC5jIGIvYXJjaC91bS9rZXJuZWwvaW5pdHJkLmMKaW5kZXggMWRjZDMxMC4uYzE5ODFmZiAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvaW5pdHJkLmMKKysrIGIvYXJjaC91bS9rZXJuZWwvaW5pdHJkLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMCAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9pcnEuYyBiL2FyY2gvdW0va2VybmVsL2lycS5jCmluZGV4IGVmZGUxZjEuLjM1NzcxMTggMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL2lycS5jCisrKyBiL2FyY2gvdW0va2VybmVsL2lycS5jCkBAIC0xLDggKzEsOCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgLSBDYW1icmlkZ2UgR3JleXMgTHRkCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgLSAyMDE0IENpc2NvIFN5c3RlbXMgSW5jCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqIERlcml2ZWQgKGkuZS4gbW9zdGx5IGNvcGllZCkgZnJvbSBhcmNoL2kzODYva2VybmVsL2lycS5jOgogICoJQ29weXJpZ2h0IChDKSAxOTkyLCAxOTk4IExpbnVzIFRvcnZhbGRzLCBJbmdvIE1vbG5hcgogICovCkBAIC00ODAsNyArNDgwLDcgQEAgdm9pZCBfX2luaXQgaW5pdF9JUlEodm9pZCkKIAlpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoVElNRVJfSVJRLCAmU0lHVlRBTFJNX2lycV90eXBlLCBoYW5kbGVfZWRnZV9pcnEpOwogCiAKLQlmb3IgKGkgPSAxOyBpIDwgTEFTVF9JUlE7IGkrKykKKwlmb3IgKGkgPSAxOyBpIDw9IExBU1RfSVJROyBpKyspCiAJCWlycV9zZXRfY2hpcF9hbmRfaGFuZGxlcihpLCAmbm9ybWFsX2lycV90eXBlLCBoYW5kbGVfZWRnZV9pcnEpOwogCS8qIEluaXRpYWxpemUgRVBPTEwgTG9vcCAqLwogCW9zX3NldHVwX2Vwb2xsKCk7CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9rc3ltcy5jIGIvYXJjaC91bS9rZXJuZWwva3N5bXMuYwppbmRleCAyMzJiMjIzMC4uOGFkZTU0YSAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwva3N5bXMuYworKysgYi9hcmNoL3VtL2tlcm5lbC9rc3ltcy5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qIAogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtMzgsNiArMzgsOCBAQCBFWFBPUlRfU1lNQk9MKHJ1bl9oZWxwZXIpOwogRVhQT1JUX1NZTUJPTChvc19tYWpvcik7CiBFWFBPUlRfU1lNQk9MKG9zX21pbm9yKTsKIEVYUE9SVF9TWU1CT0wob3NfbWFrZWRldik7CitFWFBPUlRfU1lNQk9MKG9zX2V2ZW50ZmQpOworRVhQT1JUX1NZTUJPTChvc19zZW5kbXNnX2Zkcyk7CiAKIEVYUE9SVF9TWU1CT0woYWRkX3NpZ2lvX2ZkKTsKIEVYUE9SVF9TWU1CT0woaWdub3JlX3NpZ2lvX2ZkKTsKZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL21lbS5jIGIvYXJjaC91bS9rZXJuZWwvbWVtLmMKaW5kZXggZGU1OGU5Ny4uNDE3ZmY2NCAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvbWVtLmMKKysrIGIvYXJjaC91bS9rZXJuZWwvbWVtLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMCAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KQEAgLTMxLDYgKzMxLDcgQEAgcGdkX3Qgc3dhcHBlcl9wZ19kaXJbUFRSU19QRVJfUEdEXTsKIAogLyogSW5pdGlhbGl6ZWQgYXQgYm9vdCB0aW1lLCBhbmQgcmVhZG9ubHkgYWZ0ZXIgdGhhdCAqLwogdW5zaWduZWQgbG9uZyBsb25nIGhpZ2htZW07CitFWFBPUlRfU1lNQk9MKGhpZ2htZW0pOwogaW50IGttYWxsb2Nfb2sgPSAwOwogCiAvKiBVc2VkIGR1cmluZyBlYXJseSBib290ICovCmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9waHlzbWVtLmMgYi9hcmNoL3VtL2tlcm5lbC9waHlzbWVtLmMKaW5kZXggNWJmNTZhZi4uZTdjN2I1MyAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvcGh5c21lbS5jCisrKyBiL2FyY2gvdW0va2VybmVsL3BoeXNtZW0uYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtMTQzLDYgKzE0Myw3IEBAIGludCBwaHlzX21hcHBpbmcodW5zaWduZWQgbG9uZyBwaHlzLCB1bnNpZ25lZCBsb25nIGxvbmcgKm9mZnNldF9vdXQpCiAKIAlyZXR1cm4gZmQ7CiB9CitFWFBPUlRfU1lNQk9MKHBoeXNfbWFwcGluZyk7CiAKIHN0YXRpYyBpbnQgX19pbml0IHVtbF9tZW1fc2V0dXAoY2hhciAqbGluZSwgaW50ICphZGQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3VtL2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggNmJlZGU3OC4uMjYzYThmMCAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gvdW0va2VybmVsL3Byb2Nlc3MuYwpAQCAtMSw5ICsxLDkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IEFudG9uIEl2YW5vdiAoYWl2YW5vdkB7YnJvY2FkZS5jb20sa290LWJlZ2Vtb3QuY28udWt9KQogICogQ29weXJpZ2h0IChDKSAyMDE1IFRob21hcyBNZXllciAodGhvbWFzQG0zeTNyLmRlKQogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCiAgKiBDb3B5cmlnaHQgMjAwMyBQYXRoU2NhbGUsIEluYy4KLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+CkBAIC0yMTAsMTUgKzIxMCwyMyBAQCBzdGF0aWMgdm9pZCB0aW1lX3RyYXZlbF9zbGVlcCh1bnNpZ25lZCBsb25nIGxvbmcgZHVyYXRpb24pCiAJaWYgKHRpbWVfdHJhdmVsX21vZGUgIT0gVFRfTU9ERV9JTkZDUFUpCiAJCW9zX3RpbWVyX2Rpc2FibGUoKTsKIAotCWlmICh0aW1lX3RyYXZlbF90aW1lcl9tb2RlICE9IFRUX1RNUl9ESVNBQkxFRCB8fAorCXdoaWxlICh0aW1lX3RyYXZlbF90aW1lcl9tb2RlID09IFRUX1RNUl9QRVJJT0RJQyAmJgorCSAgICAgICB0aW1lX3RyYXZlbF90aW1lcl9leHBpcnkgPCB0aW1lX3RyYXZlbF90aW1lKQorCQl0aW1lX3RyYXZlbF9zZXRfdGltZXJfZXhwaXJ5KHRpbWVfdHJhdmVsX3RpbWVyX2V4cGlyeSArCisJCQkJCSAgICAgdGltZV90cmF2ZWxfdGltZXJfaW50ZXJ2YWwpOworCisJaWYgKHRpbWVfdHJhdmVsX3RpbWVyX21vZGUgIT0gVFRfVE1SX0RJU0FCTEVEICYmCiAJICAgIHRpbWVfdHJhdmVsX3RpbWVyX2V4cGlyeSA8IG5leHQpIHsKIAkJaWYgKHRpbWVfdHJhdmVsX3RpbWVyX21vZGUgPT0gVFRfVE1SX09ORVNIT1QpCiAJCQl0aW1lX3RyYXZlbF9zZXRfdGltZXJfbW9kZShUVF9UTVJfRElTQUJMRUQpOwogCQkvKgotCQkgKiB0aW1lX3RyYXZlbF90aW1lIHdpbGwgYmUgYWRqdXN0ZWQgaW4gdGhlIHRpbWVyCi0JCSAqIElSUSBoYW5kbGVyIHNvIGl0IHdvcmtzIGV2ZW4gd2hlbiB0aGUgc2lnbmFsCi0JCSAqIGNvbWVzIGZyb20gdGhlIE9TIHRpbWVyCisJCSAqIEluIGJhc2ljIG1vZGUsIHRpbWVfdHJhdmVsX3RpbWUgd2lsbCBiZSBhZGp1c3RlZCBpbgorCQkgKiB0aGUgdGltZXIgSVJRIGhhbmRsZXIgc28gaXQgd29ya3MgZXZlbiB3aGVuIHRoZSBzaWduYWwKKwkJICogY29tZXMgZnJvbSB0aGUgT1MgdGltZXIsIHNlZSB0aGVyZS4KIAkJICovCisJCWlmICh0aW1lX3RyYXZlbF9tb2RlICE9IFRUX01PREVfQkFTSUMpCisJCQl0aW1lX3RyYXZlbF9zZXRfdGltZSh0aW1lX3RyYXZlbF90aW1lcl9leHBpcnkpOworCiAJCWRlbGl2ZXJfYWxhcm0oKTsKIAl9IGVsc2UgewogCQl0aW1lX3RyYXZlbF9zZXRfdGltZShuZXh0KTsKZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL3B0cmFjZS5jIGIvYXJjaC91bS9rZXJuZWwvcHRyYWNlLmMKaW5kZXggZGExZTk2Yi4uYjQyNWY0NyAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvcHRyYWNlLmMKKysrIGIvYXJjaC91bS9rZXJuZWwvcHRyYWNlLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMCAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxsaW51eC9hdWRpdC5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvcmVib290LmMgYi9hcmNoL3VtL2tlcm5lbC9yZWJvb3QuYwppbmRleCA3MWYzZTkyLi40OGMwNjEwIDEwMDY0NAotLS0gYS9hcmNoL3VtL2tlcm5lbC9yZWJvb3QuYworKysgYi9hcmNoL3VtL2tlcm5lbC9yZWJvb3QuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMCAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC9zaWduYWwuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL3NpZ2lvLmMgYi9hcmNoL3VtL2tlcm5lbC9zaWdpby5jCmluZGV4IDNmYjZhNDAuLjEwYzk5ZTAgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL3NpZ2lvLmMKKysrIGIvYXJjaC91bS9rZXJuZWwvc2lnaW8uYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHtsaW51eC5pbnRlbCxhZGR0b2l0fS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvc2lnbmFsLmMgYi9hcmNoL3VtL2tlcm5lbC9zaWduYWwuYwppbmRleCA1N2FjYmQ2Li4zZDU3YzcxIDEwMDY0NAotLS0gYS9hcmNoL3VtL2tlcm5lbC9zaWduYWwuYworKysgYi9hcmNoL3VtL2tlcm5lbC9zaWduYWwuYwpAQCAtMSwyMCArMSw0OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KICNpbmNsdWRlIDxhc20vc2lnaW5mby5oPgogI2luY2x1ZGUgPGFzbS9zaWduYWwuaD4KICNpbmNsdWRlIDxhc20vdW5pc3RkLmg+CiAjaW5jbHVkZSA8ZnJhbWVfa2Vybi5oPgogI2luY2x1ZGUgPGtlcm5fdXRpbC5oPgorI2luY2x1ZGUgPG9zLmg+CiAKIEVYUE9SVF9TWU1CT0woYmxvY2tfc2lnbmFscyk7CiBFWFBPUlRfU1lNQk9MKHVuYmxvY2tfc2lnbmFscyk7CiAKK3ZvaWQgYmxvY2tfc2lnbmFsc190cmFjZSh2b2lkKQoreworCWJsb2NrX3NpZ25hbHMoKTsKKwlpZiAoY3VycmVudF90aHJlYWRfaW5mbygpKQorCQl0cmFjZV9oYXJkaXJxc19vZmYoKTsKK30KKwordm9pZCB1bmJsb2NrX3NpZ25hbHNfdHJhY2Uodm9pZCkKK3sKKwlpZiAoY3VycmVudF90aHJlYWRfaW5mbygpKQorCQl0cmFjZV9oYXJkaXJxc19vbigpOworCXVuYmxvY2tfc2lnbmFscygpOworfQorCit2b2lkIHVtX3RyYWNlX3NpZ25hbHNfb24odm9pZCkKK3sKKwlpZiAoY3VycmVudF90aHJlYWRfaW5mbygpKQorCQl0cmFjZV9oYXJkaXJxc19vbigpOworfQorCit2b2lkIHVtX3RyYWNlX3NpZ25hbHNfb2ZmKHZvaWQpCit7CisJaWYgKGN1cnJlbnRfdGhyZWFkX2luZm8oKSkKKwkJdHJhY2VfaGFyZGlycXNfb2ZmKCk7Cit9CisKIC8qCiAgKiBPSywgd2UncmUgaW52b2tpbmcgYSBoYW5kbGVyCiAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL3NrYXMvTWFrZWZpbGUgYi9hcmNoL3VtL2tlcm5lbC9za2FzL01ha2VmaWxlCmluZGV4IDViZDNlZGYuLmYzZDQ5NGEgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL3NrYXMvTWFrZWZpbGUKKysrIGIvYXJjaC91bS9rZXJuZWwvc2thcy9NYWtlZmlsZQpAQCAtMSw2ICsxLDYgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKICMKICMgQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICMKIAogb2JqLXkgOj0gY2xvbmUubyBtbXUubyBwcm9jZXNzLm8gc3lzY2FsbC5vIHVhY2Nlc3MubwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvc2thcy9jbG9uZS5jIGIvYXJjaC91bS9rZXJuZWwvc2thcy9jbG9uZS5jCmluZGV4IDBmMjVkNDEuLmJmYjcwYzQgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL3NrYXMvY2xvbmUuYworKysgYi9hcmNoL3VtL2tlcm5lbC9za2FzL2Nsb25lLmMKQEAgLTEsNyArMSw3IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBUaG9tYXMgTWV5ZXIgKHRob21hc0BtM3kzci5kZSkKICAqIENvcHlyaWdodCAoQykgMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHNpZ25hbC5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvc2thcy9tbXUuYyBiL2FyY2gvdW0va2VybmVsL3NrYXMvbW11LmMKaW5kZXggMjllN2Y1Zi4uYjVlM2Q5MSAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvc2thcy9tbXUuYworKysgYi9hcmNoL3VtL2tlcm5lbC9za2FzL21tdS5jCkBAIC0xLDcgKzEsNyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhvbWFzIE1leWVyICh0aG9tYXNAbTN5M3IuZGUpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW0uaD4KQEAgLTYzLDEyICs2MywxMiBAQCBpbnQgaW5pdF9uZXdfY29udGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogCWlmIChjdXJyZW50LT5tbSAhPSBOVUxMICYmIGN1cnJlbnQtPm1tICE9ICZpbml0X21tKQogCQlmcm9tX21tID0gJmN1cnJlbnQtPm1tLT5jb250ZXh0OwogCi0JYmxvY2tfc2lnbmFscygpOworCWJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKIAlpZiAoZnJvbV9tbSkKIAkJdG9fbW0tPmlkLnUucGlkID0gY29weV9jb250ZXh0X3NrYXMwKHN0YWNrLAogCQkJCQkJICAgICBmcm9tX21tLT5pZC51LnBpZCk7CiAJZWxzZSB0b19tbS0+aWQudS5waWQgPSBzdGFydF91c2Vyc3BhY2Uoc3RhY2spOwotCXVuYmxvY2tfc2lnbmFscygpOworCXVuYmxvY2tfc2lnbmFsc190cmFjZSgpOwogCiAJaWYgKHRvX21tLT5pZC51LnBpZCA8IDApIHsKIAkJcmV0ID0gdG9fbW0tPmlkLnUucGlkOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvc2thcy9wcm9jZXNzLmMgYi9hcmNoL3VtL2tlcm5lbC9za2FzL3Byb2Nlc3MuYwppbmRleCBkNGRiZjA4Ny4uZjJhYzEzNCAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvc2thcy9wcm9jZXNzLmMKKysrIGIvYXJjaC91bS9rZXJuZWwvc2thcy9wcm9jZXNzLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC0xOSw3ICsxOSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHN0YXJ0X2tlcm5lbF9wcm9jKHZvaWQgKnVudXNlZCkKIHsKIAlpbnQgcGlkOwogCi0JYmxvY2tfc2lnbmFscygpOworCWJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKIAlwaWQgPSBvc19nZXRwaWQoKTsKIAogCWNwdV90YXNrc1swXS5waWQgPSBwaWQ7CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9za2FzL3N5c2NhbGwuYyBiL2FyY2gvdW0va2VybmVsL3NrYXMvc3lzY2FsbC5jCmluZGV4IDQ0YmIxMDcuLmY1NzRiMTggMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL3NrYXMvc3lzY2FsbC5jCisrKyBiL2FyY2gvdW0va2VybmVsL3NrYXMvc3lzY2FsbC5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9za2FzL3VhY2Nlc3MuYyBiL2FyY2gvdW0va2VybmVsL3NrYXMvdWFjY2Vzcy5jCmluZGV4IGJkM2NiNjkuLjMyMzYwNTIgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL3NrYXMvdWFjY2Vzcy5jCisrKyBiL2FyY2gvdW0va2VybmVsL3NrYXMvdWFjY2Vzcy5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9zeXNjYWxsLmMgYi9hcmNoL3VtL2tlcm5lbC9zeXNjYWxsLmMKaW5kZXggMzVmNzA0Ny4uZWVkNTRjNSAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvc3lzY2FsbC5jCisrKyBiL2FyY2gvdW0va2VybmVsL3N5c2NhbGwuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL3RpbWUuYyBiL2FyY2gvdW0va2VybmVsL3RpbWUuYwppbmRleCAyMzQ3NTcyLi45NGVhODdiIDEwMDY0NAotLS0gYS9hcmNoL3VtL2tlcm5lbC90aW1lLmMKKysrIGIvYXJjaC91bS9rZXJuZWwvdGltZS5jCkBAIC0xLDkgKzEsOSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW50b24gSXZhbm92IChhaXZhbm92QHticm9jYWRlLmNvbSxrb3QtYmVnZW1vdC5jby51a30pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhvbWFzIE1leWVyICh0aG9tYXNAbTN5M3IuZGUpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBDaXNjbyBTeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgpAQCAtMzksNyArMzksMTUgQEAgdm9pZCB0aW1lcl9oYW5kbGVyKGludCBzaWcsIHN0cnVjdCBzaWdpbmZvICp1bnVzZWRfc2ksIHN0cnVjdCB1bWxfcHRfcmVncyAqcmVncykKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JaWYgKHRpbWVfdHJhdmVsX21vZGUgIT0gVFRfTU9ERV9PRkYpCisJLyoKKwkgKiBJbiBiYXNpYyB0aW1lLXRyYXZlbCBtb2RlIHdlIHN0aWxsIGdldCByZWFsIGludGVycnVwdHMKKwkgKiAoc2lnbmFscykgYnV0IHNpbmNlIHdlIGRvbid0IHJlYWQgdGltZSBmcm9tIHRoZSBPUywgd2UKKwkgKiBtdXN0IHVwZGF0ZSB0aGUgc2ltdWxhdGVkIHRpbWUgaGVyZSB0byB0aGUgZXhwaXJ5IHdoZW4KKwkgKiB3ZSBnZXQgYSBzaWduYWwuCisJICogVGhpcyBpcyBub3QgdGhlIGNhc2UgaW4gaW5mLWNwdSBtb2RlLCBzaW5jZSB0aGVyZSB3ZQorCSAqIG5ldmVyIGdldCBhbnkgcmVhbCBzaWduYWxzIGZyb20gdGhlIE9TLgorCSAqLworCWlmICh0aW1lX3RyYXZlbF9tb2RlID09IFRUX01PREVfQkFTSUMpCiAJCXRpbWVfdHJhdmVsX3NldF90aW1lKHRpbWVfdHJhdmVsX3RpbWVyX2V4cGlyeSk7CiAKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CkBAIC02NSw2ICs3Myw3IEBAIHN0YXRpYyBpbnQgaXRpbWVyX3NldF9wZXJpb2RpYyhzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCiAJaWYgKHRpbWVfdHJhdmVsX21vZGUgIT0gVFRfTU9ERV9PRkYpIHsKIAkJdGltZV90cmF2ZWxfc2V0X3RpbWVyX21vZGUoVFRfVE1SX1BFUklPRElDKTsKIAkJdGltZV90cmF2ZWxfc2V0X3RpbWVyX2V4cGlyeSh0aW1lX3RyYXZlbF90aW1lICsgaW50ZXJ2YWwpOworCQl0aW1lX3RyYXZlbF9zZXRfdGltZXJfaW50ZXJ2YWwoaW50ZXJ2YWwpOwogCX0KIAogCWlmICh0aW1lX3RyYXZlbF9tb2RlICE9IFRUX01PREVfSU5GQ1BVKQpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvdGxiLmMgYi9hcmNoL3VtL2tlcm5lbC90bGIuYwppbmRleCA0NWY3MzliLi5iN2VhZjY1IDEwMDY0NAotLS0gYS9hcmNoL3VtL2tlcm5lbC90bGIuYworKysgYi9hcmNoL3VtL2tlcm5lbC90bGIuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21tLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC90cmFwLmMgYi9hcmNoL3VtL2tlcm5lbC90cmFwLmMKaW5kZXggNThmZTM2OC4uZTYyMjk2YyAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvdHJhcC5jCisrKyBiL2FyY2gvdW0va2VybmVsL3RyYXAuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21tLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC91bV9hcmNoLmMgYi9hcmNoL3VtL2tlcm5lbC91bV9hcmNoLmMKaW5kZXggYTgxOGNjZS4uMGY0MGVjYyAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvdW1fYXJjaC5jCisrKyBiL2FyY2gvdW0va2VybmVsL3VtX2FyY2guYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CkBAIC0xMTMsNiArMTEzLDcgQEAgc3RhdGljIGludCBoYXZlX3Jvb3QgX19pbml0ZGF0YSA9IDA7CiAKIC8qIFNldCBpbiB1bWxfbWVtX3NldHVwIGFuZCBtb2RpZmllZCBpbiBsaW51eF9tYWluICovCiBsb25nIGxvbmcgcGh5c21lbV9zaXplID0gMzIgKiAxMDI0ICogMTAyNDsKK0VYUE9SVF9TWU1CT0wocGh5c21lbV9zaXplKTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKnVzYWdlX3N0cmluZyA9CiAiVXNlciBNb2RlIExpbnV4IHYlc1xuIgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvdW1pZC5jIGIvYXJjaC91bS9rZXJuZWwvdW1pZC5jCmluZGV4IDEwYmY0YWMuLjgwMzFhMDMgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL3VtaWQuYworKysgYi9hcmNoL3VtL2tlcm5lbC91bWlkLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxhc20vZXJybm8uaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL3VtbC5sZHMuUyBiL2FyY2gvdW0va2VybmVsL3VtbC5sZHMuUwppbmRleCAzNmIwN2VjLi45ZjIxNDQzIDEwMDY0NAotLS0gYS9hcmNoL3VtL2tlcm5lbC91bWwubGRzLlMKKysrIGIvYXJjaC91bS9rZXJuZWwvdW1sLmxkcy5TCkBAIC0zMSw2ICszMSw4IEBACiAgICAgU0NIRURfVEVYVAogICAgIENQVUlETEVfVEVYVAogICAgIExPQ0tfVEVYVAorICAgIElSUUVOVFJZX1RFWFQKKyAgICBTT0ZUSVJRRU5UUllfVEVYVAogICAgICooLmZpeHVwKQogICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgICooLmdudS53YXJuaW5nKQpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9NYWtlZmlsZSBiL2FyY2gvdW0vb3MtTGludXgvTWFrZWZpbGUKaW5kZXggNDU1YjUwMC4uODM5OTE1YiAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9NYWtlZmlsZQorKysgYi9hcmNoL3VtL29zLUxpbnV4L01ha2VmaWxlCkBAIC0xLDYgKzEsNiBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogIyAKICMgQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICMKIAogIyBEb24ndCBpbnN0cnVtZW50IFVNTC1zcGVjaWZpYyBjb2RlCmRpZmYgLS1naXQgYS9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvTWFrZWZpbGUgYi9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvTWFrZWZpbGUKaW5kZXggNmM1NDZkYy4uZDc5ZTc1ZiAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9kcml2ZXJzL01ha2VmaWxlCisrKyBiL2FyY2gvdW0vb3MtTGludXgvZHJpdmVycy9NYWtlZmlsZQpAQCAtMSw2ICsxLDYgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKICMgCiAjIENvcHlyaWdodCAoQykgMjAwMCwgMjAwMiBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICMKIAogZXRoZXJ0YXAtb2JqcyA6PSBldGhlcnRhcF9rZXJuLm8gZXRoZXJ0YXBfdXNlci5vCmRpZmYgLS1naXQgYS9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvZXRhcC5oIGIvYXJjaC91bS9vcy1MaW51eC9kcml2ZXJzL2V0YXAuaAppbmRleCA1NDE4M2E2Li5hNDc1MjU5IDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvZXRhcC5oCisrKyBiL2FyY2gvdW0vb3MtTGludXgvZHJpdmVycy9ldGFwLmgKQEAgLTEsNiArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogLyogCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaWZuZGVmIF9fRFJJVkVSU19FVEFQX0gKZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvZHJpdmVycy9ldGhlcnRhcF9rZXJuLmMgYi9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvZXRoZXJ0YXBfa2Vybi5jCmluZGV4IGY0MjQ2MDAuLjMxODJlNzUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvZHJpdmVycy9ldGhlcnRhcF9rZXJuLmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC9kcml2ZXJzL2V0aGVydGFwX2tlcm4uYwpAQCAtMSw5ICsxLDkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIExlbm5lcnQgQnV5dGVuaGVrIChidXl0ZW5oQGdudS5vcmcpIGFuZAogICogSmFtZXMgTGV1IChqbGV1QG1pbmRzcHJpbmcubmV0KS4KICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQogICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IHZhcmlvdXMgb3RoZXIgcGVvcGxlIHdobyBkaWRuJ3QgcHV0IHRoZWlyIG5hbWUgaGVyZS4KLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvZHJpdmVycy9ldGhlcnRhcF91c2VyLmMgYi9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvZXRoZXJ0YXBfdXNlci5jCmluZGV4IDZkNDkxODIuLjk0ODMwMjEgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvZHJpdmVycy9ldGhlcnRhcF91c2VyLmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC9kcml2ZXJzL2V0aGVydGFwX3VzZXIuYwpAQCAtMSw5ICsxLDkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgTGVubmVydCBCdXl0ZW5oZWsgKGJ1eXRlbmhAZ251Lm9yZykgYW5kCiAgKiBKYW1lcyBMZXUgKGpsZXVAbWluZHNwcmluZy5uZXQpLgogICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IHZhcmlvdXMgb3RoZXIgcGVvcGxlIHdobyBkaWRuJ3QgcHV0IHRoZWlyIG5hbWUgaGVyZS4KLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvdHVudGFwLmggYi9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvdHVudGFwLmgKaW5kZXggNzM2NzM1NC4uZTM2NGU0MiAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9kcml2ZXJzL3R1bnRhcC5oCisrKyBiL2FyY2gvdW0vb3MtTGludXgvZHJpdmVycy90dW50YXAuaApAQCAtMSw2ICsxLDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpZm5kZWYgX19VTV9UVU5UQVBfSApkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9kcml2ZXJzL3R1bnRhcF9rZXJuLmMgYi9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvdHVudGFwX2tlcm4uYwppbmRleCBkOWQ1NmU1Li5hZGNiNjcxIDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvdHVudGFwX2tlcm4uYworKysgYi9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvdHVudGFwX2tlcm4uYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L25ldGRldmljZS5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9kcml2ZXJzL3R1bnRhcF91c2VyLmMgYi9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvdHVudGFwX3VzZXIuYwppbmRleCBkYjI0Y2UwLi41M2ViM2Q1IDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvdHVudGFwX3VzZXIuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L2RyaXZlcnMvdHVudGFwX3VzZXIuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKiAKICAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9maWxlLmMgYi9hcmNoL3VtL29zLUxpbnV4L2ZpbGUuYwppbmRleCBmMjViMTEwLi41MTMzZTNhIDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L2ZpbGUuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L2ZpbGUuYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAyIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgogI2luY2x1ZGUgPHN5cy91bi5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9ldmVudGZkLmg+CiAjaW5jbHVkZSA8b3MuaD4KIAogc3RhdGljIHZvaWQgY29weV9zdGF0KHN0cnVjdCB1bWxfc3RhdCAqZHN0LCBjb25zdCBzdHJ1Y3Qgc3RhdDY0ICpzcmMpCkBAIC02MjAsMyArNjIxLDQ2IEBAIGludCBvc19mYWxsb2NfcHVuY2goaW50IGZkLCB1bnNpZ25lZCBsb25nIGxvbmcgb2Zmc2V0LCBpbnQgbGVuKQogCXJldHVybiBuOwogfQogCitpbnQgb3NfZXZlbnRmZCh1bnNpZ25lZCBpbnQgaW5pdHZhbCwgaW50IGZsYWdzKQoreworCWludCBmZCA9IGV2ZW50ZmQoaW5pdHZhbCwgZmxhZ3MpOworCisJaWYgKGZkIDwgMCkKKwkJcmV0dXJuIC1lcnJubzsKKwlyZXR1cm4gZmQ7Cit9CisKK2ludCBvc19zZW5kbXNnX2ZkcyhpbnQgZmQsIGNvbnN0IHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbiwgY29uc3QgaW50ICpmZHMsCisJCSAgIHVuc2lnbmVkIGludCBmZHNfbnVtKQoreworCXN0cnVjdCBpb3ZlYyBpb3YgPSB7CisJCS5pb3ZfYmFzZSA9ICh2b2lkICopIGJ1ZiwKKwkJLmlvdl9sZW4gPSBsZW4sCisJfTsKKwl1bmlvbiB7CisJCWNoYXIgY29udHJvbFtDTVNHX1NQQUNFKHNpemVvZigqZmRzKSAqIE9TX1NFTkRNU0dfTUFYX0ZEUyldOworCQlzdHJ1Y3QgY21zZ2hkciBhbGlnbjsKKwl9IHU7CisJdW5zaWduZWQgaW50IGZkc19zaXplID0gc2l6ZW9mKCpmZHMpICogZmRzX251bTsKKwlzdHJ1Y3QgbXNnaGRyIG1zZyA9IHsKKwkJLm1zZ19pb3YgPSAmaW92LAorCQkubXNnX2lvdmxlbiA9IDEsCisJCS5tc2dfY29udHJvbCA9IHUuY29udHJvbCwKKwkJLm1zZ19jb250cm9sbGVuID0gQ01TR19TUEFDRShmZHNfc2l6ZSksCisJfTsKKwlzdHJ1Y3QgY21zZ2hkciAqY21zZyA9IENNU0dfRklSU1RIRFIoJm1zZyk7CisJaW50IGVycjsKKworCWlmIChmZHNfbnVtID4gT1NfU0VORE1TR19NQVhfRkRTKQorCQlyZXR1cm4gLUVJTlZBTDsKKwltZW1zZXQodS5jb250cm9sLCAwLCBzaXplb2YodS5jb250cm9sKSk7CisJY21zZy0+Y21zZ19sZXZlbCA9IFNPTF9TT0NLRVQ7CisJY21zZy0+Y21zZ190eXBlID0gU0NNX1JJR0hUUzsKKwljbXNnLT5jbXNnX2xlbiA9IENNU0dfTEVOKGZkc19zaXplKTsKKwltZW1jcHkoQ01TR19EQVRBKGNtc2cpLCBmZHMsIGZkc19zaXplKTsKKwllcnIgPSBzZW5kbXNnKGZkLCAmbXNnLCAwKTsKKworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gLWVycm5vOworCXJldHVybiBlcnI7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3VtL29zLUxpbnV4L2hlbHBlci5jIGIvYXJjaC91bS9vcy1MaW51eC9oZWxwZXIuYwppbmRleCAzZjAyZDQyLi45ZmE2ZTQxIDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L2hlbHBlci5jCisrKyBiL2FyY2gvdW0vb3MtTGludXgvaGVscGVyLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxzdGRsaWIuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvaXJxLmMgYi9hcmNoL3VtL29zLUxpbnV4L2lycS5jCmluZGV4IDM2NTgyMzAuLmQ1MDgzMTAgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvaXJxLmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC9pcnEuYwpAQCAtMSw4ICsxLDggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE3IC0gQ2FtYnJpZGdlIEdyZXlzIEx0ZAogICogQ29weXJpZ2h0IChDKSAyMDExIC0gMjAxNCBDaXNjbyBTeXN0ZW1zIEluYwogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGxpYi5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9tYWluLmMgYi9hcmNoL3VtL29zLUxpbnV4L21haW4uYwppbmRleCBmMWZlZTJiLi44MDE0ZGZhIDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L21haW4uYworKysgYi9hcmNoL3VtL29zLUxpbnV4L21haW4uYwpAQCAtMSw3ICsxLDcgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IFRob21hcyBNZXllciAodGhvbWFzQG0zeTNyLmRlKQogICogQ29weXJpZ2h0IChDKSAyMDAwIC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0xNzAsNyArMTcwLDcgQEAgaW50IF9faW5pdCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndiwgY2hhciAqKmVudnApCiAJICogdGhhdCB0aGV5IHdvbid0IGJlIGRlbGl2ZXJlZCBhZnRlciB0aGUgZXhlYywgd2hlbgogCSAqIHRoZXkgYXJlIGRlZmluaXRlbHkgbm90IGV4cGVjdGVkLgogCSAqLwotCXVuYmxvY2tfc2lnbmFscygpOworCXVuYmxvY2tfc2lnbmFsc190cmFjZSgpOwogCiAJb3NfaW5mbygiXG4iKTsKIAkvKiBSZWJvb3QgKi8KZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvbWVtLmMgYi9hcmNoL3VtL29zLUxpbnV4L21lbS5jCmluZGV4IGUxNjJhOTUuLjNjMWI3NzQgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvbWVtLmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC9tZW0uYwpAQCAtMSw2ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvcHJvY2Vzcy5jIGIvYXJjaC91bS9vcy1MaW51eC9wcm9jZXNzLmMKaW5kZXggYjNlMGQ0MC4uZTUyZGQzNyAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9wcm9jZXNzLmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC9wcm9jZXNzLmMKQEAgLTEsNyArMSw3IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBUaG9tYXMgTWV5ZXIgKHRob21hc0BtM3kzci5kZSkKICAqIENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9yZWdpc3RlcnMuYyBiL2FyY2gvdW0vb3MtTGludXgvcmVnaXN0ZXJzLmMKaW5kZXggMmZmOGQ0Zi4uMmQ5MjcwNSAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9yZWdpc3RlcnMuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3JlZ2lzdGVycy5jCkBAIC0xLDcgKzEsNyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQgUGF0aFNjYWxlLCBJbmMKICAqIENvcHlyaWdodCAoQykgMjAwNCAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxlcnJuby5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9zaWdpby5jIGIvYXJjaC91bS9vcy1MaW51eC9zaWdpby5jCmluZGV4IDQ2ZTc2MmYuLjc1NTU4MDggMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvc2lnaW8uYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3NpZ2lvLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDggSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDx1bmlzdGQuaD4KQEAgLTEzMiw3ICsxMzIsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfdGhyZWFkKHZvaWQpCiAJaW50IG47CiAJY2hhciBjOwogCi0JZmxhZ3MgPSBzZXRfc2lnbmFscygwKTsKKwlmbGFncyA9IHNldF9zaWduYWxzX3RyYWNlKDApOwogCUNBVENIX0VJTlRSKG4gPSB3cml0ZShzaWdpb19wcml2YXRlWzBdLCAmYywgc2l6ZW9mKGMpKSk7CiAJaWYgKG4gIT0gc2l6ZW9mKGMpKSB7CiAJCXByaW50ayhVTV9LRVJOX0VSUiAidXBkYXRlX3RocmVhZCA6IHdyaXRlIGZhaWxlZCwgZXJyID0gJWRcbiIsCkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3RocmVhZCh2b2lkKQogCQlnb3RvIGZhaWw7CiAJfQogCi0Jc2V0X3NpZ25hbHMoZmxhZ3MpOworCXNldF9zaWduYWxzX3RyYWNlKGZsYWdzKTsKIAlyZXR1cm47CiAgZmFpbDoKIAkvKiBDcml0aWNhbCBzZWN0aW9uIHN0YXJ0ICovCkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3RocmVhZCh2b2lkKQogCWNsb3NlKHdyaXRlX3NpZ2lvX2Zkc1swXSk7CiAJY2xvc2Uod3JpdGVfc2lnaW9fZmRzWzFdKTsKIAkvKiBDcml0aWNhbCBzZWN0aW9uIGVuZCAqLwotCXNldF9zaWduYWxzKGZsYWdzKTsKKwlzZXRfc2lnbmFsc190cmFjZShmbGFncyk7CiB9CiAKIGludCBhZGRfc2lnaW9fZmQoaW50IGZkKQpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9zaWduYWwuYyBiL2FyY2gvdW0vb3MtTGludXgvc2lnbmFsLmMKaW5kZXggNzViMTAyMy4uYjU4YmM2OCAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9zaWduYWwuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3NpZ25hbC5jCkBAIC0xLDE1ICsxLDE2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbnRvbiBJdmFub3YgKGFpdmFub3ZAe2Jyb2NhZGUuY29tLGtvdC1iZWdlbW90LmNvLnVrfSkKICAqIENvcHlyaWdodCAoQykgMjAxNSBUaG9tYXMgTWV5ZXIgKHRob21hc0BtM3kzci5kZSkKICAqIENvcHlyaWdodCAoQykgMjAwNCBQYXRoU2NhbGUsIEluYwogICogQ29weXJpZ2h0IChDKSAyMDA0IC0gMjAwNyBKZWZmIERpa2UgKGpkaWtlQHthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0ZGFyZy5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8c3RyaW5ncy5oPgogI2luY2x1ZGUgPGFzLWxheW91dC5oPgogI2luY2x1ZGUgPGtlcm5fdXRpbC5oPgpAQCAtMjYsNyArMjcsNiBAQCB2b2lkICgqc2lnX2luZm9bTlNJR10pKGludCwgc3RydWN0IHNpZ2luZm8gKiwgc3RydWN0IHVtbF9wdF9yZWdzICopID0gewogCVtTSUdCVVNdCT0gYnVzX2hhbmRsZXIsCiAJW1NJR1NFR1ZdCT0gc2Vndl9oYW5kbGVyLAogCVtTSUdJT10JCT0gc2lnaW9faGFuZGxlciwKLQlbU0lHQUxSTV0JPSB0aW1lcl9oYW5kbGVyCiB9OwogCiBzdGF0aWMgdm9pZCBzaWdfaGFuZGxlcl9jb21tb24oaW50IHNpZywgc3RydWN0IHNpZ2luZm8gKnNpLCBtY29udGV4dF90ICptYykKQEAgLTQyLDggKzQyLDggQEAgc3RhdGljIHZvaWQgc2lnX2hhbmRsZXJfY29tbW9uKGludCBzaWcsIHN0cnVjdCBzaWdpbmZvICpzaSwgbWNvbnRleHRfdCAqbWMpCiAJfQogCiAJLyogZW5hYmxlIHNpZ25hbHMgaWYgc2lnIGlzbid0IElSUSBzaWduYWwgKi8KLQlpZiAoKHNpZyAhPSBTSUdJTykgJiYgKHNpZyAhPSBTSUdXSU5DSCkgJiYgKHNpZyAhPSBTSUdBTFJNKSkKLQkJdW5ibG9ja19zaWduYWxzKCk7CisJaWYgKChzaWcgIT0gU0lHSU8pICYmIChzaWcgIT0gU0lHV0lOQ0gpKQorCQl1bmJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKIAogCSgqc2lnX2luZm9bc2lnXSkoc2lnLCBzaSwgJnIpOwogCkBAIC03NiwxMSArNzYsMTEgQEAgdm9pZCBzaWdfaGFuZGxlcihpbnQgc2lnLCBzdHJ1Y3Qgc2lnaW5mbyAqc2ksIG1jb250ZXh0X3QgKm1jKQogCQlyZXR1cm47CiAJfQogCi0JYmxvY2tfc2lnbmFscygpOworCWJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKIAogCXNpZ19oYW5kbGVyX2NvbW1vbihzaWcsIHNpLCBtYyk7CiAKLQlzZXRfc2lnbmFscyhlbmFibGVkKTsKKwlzZXRfc2lnbmFsc190cmFjZShlbmFibGVkKTsKIH0KIAogc3RhdGljIHZvaWQgdGltZXJfcmVhbF9hbGFybV9oYW5kbGVyKG1jb250ZXh0X3QgKm1jKQpAQCAtODksNiArODksOCBAQCBzdGF0aWMgdm9pZCB0aW1lcl9yZWFsX2FsYXJtX2hhbmRsZXIobWNvbnRleHRfdCAqbWMpCiAKIAlpZiAobWMgIT0gTlVMTCkKIAkJZ2V0X3JlZ3NfZnJvbV9tYygmcmVncywgbWMpOworCWVsc2UKKwkJbWVtc2V0KCZyZWdzLCAwLCBzaXplb2YocmVncykpOwogCXRpbWVyX2hhbmRsZXIoU0lHQUxSTSwgTlVMTCwgJnJlZ3MpOwogfQogCkBAIC0xMDIsNyArMTA0LDcgQEAgdm9pZCB0aW1lcl9hbGFybV9oYW5kbGVyKGludCBzaWcsIHN0cnVjdCBzaWdpbmZvICp1bnVzZWRfc2ksIG1jb250ZXh0X3QgKm1jKQogCQlyZXR1cm47CiAJfQogCi0JYmxvY2tfc2lnbmFscygpOworCWJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKIAogCXNpZ25hbHNfYWN0aXZlIHw9IFNJR0FMUk1fTUFTSzsKIApAQCAtMTEwLDcgKzExMiw3IEBAIHZvaWQgdGltZXJfYWxhcm1faGFuZGxlcihpbnQgc2lnLCBzdHJ1Y3Qgc2lnaW5mbyAqdW51c2VkX3NpLCBtY29udGV4dF90ICptYykKIAogCXNpZ25hbHNfYWN0aXZlICY9IH5TSUdBTFJNX01BU0s7CiAKLQlzZXRfc2lnbmFscyhlbmFibGVkKTsKKwlzZXRfc2lnbmFsc190cmFjZShlbmFibGVkKTsKIH0KIAogdm9pZCBkZWxpdmVyX2FsYXJtKHZvaWQpIHsKQEAgLTI1MSw2ICsyNTMsOCBAQCB2b2lkIHVuYmxvY2tfc2lnbmFscyh2b2lkKQogCWlmIChzaWduYWxzX2VuYWJsZWQgPT0gMSkKIAkJcmV0dXJuOwogCisJc2lnbmFsc19lbmFibGVkID0gMTsKKwogCS8qCiAJICogV2UgbG9vcCBiZWNhdXNlIHRoZSBJUlEgaGFuZGxlciByZXR1cm5zIHdpdGggaW50ZXJydXB0cyBvZmYuICBTbywKIAkgKiBpbnRlcnJ1cHRzIG1heSBoYXZlIGFycml2ZWQgYW5kIHdlIG5lZWQgdG8gcmUtZW5hYmxlIHRoZW0gYW5kCkBAIC0yNjAsMTIgKzI2NCw5IEBAIHZvaWQgdW5ibG9ja19zaWduYWxzKHZvaWQpCiAJCS8qCiAJCSAqIFNhdmUgYW5kIHJlc2V0IHNhdmVfcGVuZGluZyBhZnRlciBlbmFibGluZyBzaWduYWxzLiAgVGhpcwogCQkgKiB3YXksIHNpZ25hbHNfcGVuZGluZyB3b24ndCBiZSBjaGFuZ2VkIHdoaWxlIHdlJ3JlIHJlYWRpbmcgaXQuCi0JCSAqLwotCQlzaWduYWxzX2VuYWJsZWQgPSAxOwotCi0JCS8qCisJCSAqCiAJCSAqIFNldHRpbmcgc2lnbmFsc19lbmFibGVkIGFuZCByZWFkaW5nIHNpZ25hbHNfcGVuZGluZyBtdXN0Ci0JCSAqIGhhcHBlbiBpbiB0aGlzIG9yZGVyLgorCQkgKiBoYXBwZW4gaW4gdGhpcyBvcmRlciwgc28gaGF2ZSB0aGUgYmFycmllciBoZXJlLgogCQkgKi8KIAkJYmFycmllcigpOwogCkBAIC0yNzgsMTAgKzI3OSwxMyBAQCB2b2lkIHVuYmxvY2tfc2lnbmFscyh2b2lkKQogCQkvKgogCQkgKiBXZSBoYXZlIHBlbmRpbmcgaW50ZXJydXB0cywgc28gZGlzYWJsZSBzaWduYWxzLCBhcyB0aGUKIAkJICogaGFuZGxlcnMgZXhwZWN0IHRoZW0gb2ZmIHdoZW4gdGhleSBhcmUgY2FsbGVkLiAgVGhleSB3aWxsCi0JCSAqIGJlIGVuYWJsZWQgYWdhaW4gYWJvdmUuCisJCSAqIGJlIGVuYWJsZWQgYWdhaW4gYWJvdmUuIFdlIG5lZWQgdG8gdHJhY2UgdGhpcywgYXMgd2UncmUKKwkJICogZXhwZWN0ZWQgdG8gYmUgZW5hYmxpbmcgaW50ZXJydXB0cyBhbHJlYWR5LCBidXQgYW55IG1vcmUKKwkJICogdHJhY2luZyB0aGF0IGhhcHBlbnMgaW5zaWRlIHRoZSBoYW5kbGVycyB3ZSBjYWxsIGZvciB0aGUKKwkJICogcGVuZGluZyBzaWduYWxzIHdpbGwgbWVzcyB1cCB0aGUgdHJhY2luZyBzdGF0ZS4KIAkJICovCi0KIAkJc2lnbmFsc19lbmFibGVkID0gMDsKKwkJdW1fdHJhY2Vfc2lnbmFsc19vZmYoKTsKIAogCQkvKgogCQkgKiBEZWFsIHdpdGggU0lHSU8gZmlyc3QgYmVjYXVzZSB0aGUgYWxhcm0gaGFuZGxlciBtaWdodApAQCAtMzA0LDYgKzMwOCw5IEBAIHZvaWQgdW5ibG9ja19zaWduYWxzKHZvaWQpCiAJCWlmICghKHNpZ25hbHNfcGVuZGluZyAmIFNJR0lPX01BU0spICYmIChzaWduYWxzX2FjdGl2ZSAmIFNJR0FMUk1fTUFTSykpCiAJCQlyZXR1cm47CiAKKwkJLyogUmUtZW5hYmxlIHNpZ25hbHMgYW5kIHRyYWNlIHRoYXQgd2UncmUgZG9pbmcgc28uICovCisJCXVtX3RyYWNlX3NpZ25hbHNfb24oKTsKKwkJc2lnbmFsc19lbmFibGVkID0gMTsKIAl9CiB9CiAKQEAgLTMyNiw2ICszMzMsMjEgQEAgaW50IHNldF9zaWduYWxzKGludCBlbmFibGUpCiAJcmV0dXJuIHJldDsKIH0KIAoraW50IHNldF9zaWduYWxzX3RyYWNlKGludCBlbmFibGUpCit7CisJaW50IHJldDsKKwlpZiAoc2lnbmFsc19lbmFibGVkID09IGVuYWJsZSkKKwkJcmV0dXJuIGVuYWJsZTsKKworCXJldCA9IHNpZ25hbHNfZW5hYmxlZDsKKwlpZiAoZW5hYmxlKQorCQl1bmJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKKwllbHNlCisJCWJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKKworCXJldHVybiByZXQ7Cit9CisKIGludCBvc19pc19zaWduYWxfc3RhY2sodm9pZCkKIHsKIAlzdGFja190IHNzOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9za2FzL01ha2VmaWxlIGIvYXJjaC91bS9vcy1MaW51eC9za2FzL01ha2VmaWxlCmluZGV4IGQyZWEzNDAuLmM0NTY2ZTcgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvc2thcy9NYWtlZmlsZQorKysgYi9hcmNoL3VtL29zLUxpbnV4L3NrYXMvTWFrZWZpbGUKQEAgLTEsNiArMSw2IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjCiAjIENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7bGludXguaW50ZWwsYWRkdG9pdH0uY29tKQotIyBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAjCiAKIG9iai15IDo9IG1lbS5vIHByb2Nlc3MubwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9za2FzL21lbS5jIGIvYXJjaC91bS9vcy1MaW51eC9za2FzL21lbS5jCmluZGV4IDM1MDE1ZTMuLmM1NDZkMTYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvc2thcy9tZW0uYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3NrYXMvbWVtLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxzdGRkZWYuaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvc2thcy9wcm9jZXNzLmMgYi9hcmNoL3VtL29zLUxpbnV4L3NrYXMvcHJvY2Vzcy5jCmluZGV4IGRmNGE5ODUuLjRmYjg3N2IgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvc2thcy9wcm9jZXNzLmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC9za2FzL3Byb2Nlc3MuYwpAQCAtMSw3ICsxLDcgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IFRob21hcyBNZXllciAodGhvbWFzQG0zeTNyLmRlKQogICogQ29weXJpZ2h0IChDKSAyMDAyLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC00MjUsOSArNDI1LDkgQEAgdm9pZCB1c2Vyc3BhY2Uoc3RydWN0IHVtbF9wdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nICphdXhfZnBfcmVncykKIAkJCWNhc2UgU0lHQlVTOgogCQkJY2FzZSBTSUdGUEU6CiAJCQljYXNlIFNJR1dJTkNIOgotCQkJCWJsb2NrX3NpZ25hbHMoKTsKKwkJCQlibG9ja19zaWduYWxzX3RyYWNlKCk7CiAJCQkJKCpzaWdfaW5mb1tzaWddKShzaWcsIChzdHJ1Y3Qgc2lnaW5mbyAqKSZzaSwgcmVncyk7Ci0JCQkJdW5ibG9ja19zaWduYWxzKCk7CisJCQkJdW5ibG9ja19zaWduYWxzX3RyYWNlKCk7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCXByaW50ayhVTV9LRVJOX0VSUiAidXNlcnNwYWNlIC0gY2hpbGQgc3RvcHBlZCAiCkBAIC02MjUsMTAgKzYyNSwxMCBAQCB2b2lkIGluaXRpYWxfdGhyZWFkX2NiX3NrYXModm9pZCAoKnByb2MpKHZvaWQgKiksIHZvaWQgKmFyZykKIAljYl9hcmcgPSBhcmc7CiAJY2JfYmFjayA9ICZoZXJlOwogCi0JYmxvY2tfc2lnbmFscygpOworCWJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKIAlpZiAoVU1MX1NFVEpNUCgmaGVyZSkgPT0gMCkKIAkJVU1MX0xPTkdKTVAoJmluaXRpYWxfam1wYnVmLCBJTklUX0pNUF9DQUxMQkFDSyk7Ci0JdW5ibG9ja19zaWduYWxzKCk7CisJdW5ibG9ja19zaWduYWxzX3RyYWNlKCk7CiAKIAljYl9wcm9jID0gTlVMTDsKIAljYl9hcmcgPSBOVUxMOwpAQCAtNjM3LDEzICs2MzcsMTMgQEAgdm9pZCBpbml0aWFsX3RocmVhZF9jYl9za2FzKHZvaWQgKCpwcm9jKSh2b2lkICopLCB2b2lkICphcmcpCiAKIHZvaWQgaGFsdF9za2FzKHZvaWQpCiB7Ci0JYmxvY2tfc2lnbmFscygpOworCWJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKIAlVTUxfTE9OR0pNUCgmaW5pdGlhbF9qbXBidWYsIElOSVRfSk1QX0hBTFQpOwogfQogCiB2b2lkIHJlYm9vdF9za2FzKHZvaWQpCiB7Ci0JYmxvY2tfc2lnbmFscygpOworCWJsb2NrX3NpZ25hbHNfdHJhY2UoKTsKIAlVTUxfTE9OR0pNUCgmaW5pdGlhbF9qbXBidWYsIElOSVRfSk1QX1JFQk9PVCk7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvc3RhcnRfdXAuYyBiL2FyY2gvdW0vb3MtTGludXgvc3RhcnRfdXAuYwppbmRleCA4MmJmNWY4Li5mNzlkYzMzIDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L3N0YXJ0X3VwLmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC9zdGFydF91cC5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvdGltZS5jIGIvYXJjaC91bS9vcy1MaW51eC90aW1lLmMKaW5kZXggNmQ5NGZmNS4uNDMyZjhlMSAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC90aW1lLmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC90aW1lLmMKQEAgLTEsOSArMSw5IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbnRvbiBJdmFub3YgKGFpdmFub3ZAe2Jyb2NhZGUuY29tLGtvdC1iZWdlbW90LmNvLnVrfSkKICAqIENvcHlyaWdodCAoQykgMjAxNSBUaG9tYXMgTWV5ZXIgKHRob21hc0BtM3kzci5kZSkKICAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0IENpc2NvIFN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAwMCAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZXthZGR0b2l0LGxpbnV4LmludGVsfS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCiAgKi8KIAogI2luY2x1ZGUgPHN0ZGRlZi5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC90dHkuYyBiL2FyY2gvdW0vb3MtTGludXgvdHR5LmMKaW5kZXggNzIxZDhhZi4uZjc4NGRiOCAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC90dHkuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3R0eS5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8c3RkbGliLmg+CmRpZmYgLS1naXQgYS9hcmNoL3VtL29zLUxpbnV4L3VtaWQuYyBiL2FyY2gvdW0vb3MtTGludXgvdW1pZC5jCmluZGV4IGUyNjE2NTYuLjQ0ZGVmNTMgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvdW1pZC5jCisrKyBiL2FyY2gvdW0vb3MtTGludXgvdW1pZC5jCkBAIC0xLDYgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgLSAyMDA3IEplZmYgRGlrZSAoamRpa2VAe2FkZHRvaXQsbGludXguaW50ZWx9LmNvbSkKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKICAqLwogCiAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvdXRpbC5jIGIvYXJjaC91bS9vcy1MaW51eC91dGlsLmMKaW5kZXggOGNjOGIyNi4uZWNmMmYzOSAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC91dGlsLmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC91dGlsLmMKQEAgLTEsNiArMSw2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMCAtIDIwMDcgSmVmZiBEaWtlIChqZGlrZUB7YWRkdG9pdCxsaW51eC5pbnRlbH0uY29tKQotICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgpkaWZmIC0tZ2l0IGEvYXJjaC91bmljb3JlMzIvaW5jbHVkZS9hc20vcGdhbGxvYy5oIGIvYXJjaC91bmljb3JlMzIvaW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IDNmMDkwM2IuLmJhMWM5YTcgMTAwNjQ0Ci0tLSBhL2FyY2gvdW5pY29yZTMyL2luY2x1ZGUvYXNtL3BnYWxsb2MuaAorKysgYi9hcmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKQEAgLTE4LDggKzE4LDYgQEAKICNkZWZpbmUgX19IQVZFX0FSQ0hfUFRFX0FMTE9DX09ORQogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3BnYWxsb2MuaD4KIAotI2RlZmluZSBjaGVja19wZ3RfY2FjaGUoKQkJZG8geyB9IHdoaWxlICgwKQotCiAjZGVmaW5lIF9QQUdFX1VTRVJfVEFCTEUJKFBNRF9UWVBFX1RBQkxFIHwgUE1EX1BSRVNFTlQpCiAjZGVmaW5lIF9QQUdFX0tFUk5FTF9UQUJMRQkoUE1EX1RZUEVfVEFCTEUgfCBQTURfUFJFU0VOVCkKIApkaWZmIC0tZ2l0IGEvYXJjaC91bmljb3JlMzIvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC91bmljb3JlMzIvaW5jbHVkZS9hc20vcGd0YWJsZS5oCmluZGV4IDk0OTJhYTMuLmM4ZjdiYTEgMTAwNjQ0Ci0tLSBhL2FyY2gvdW5pY29yZTMyL2luY2x1ZGUvYXNtL3BndGFibGUuaAorKysgYi9hcmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKQEAgLTE5OCw4ICsxOTgsNiBAQCBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta3NwZWNpYWwocHRlX3QgcHRlKSB7IHJldHVybiBwdGU7IH0KIAlfX3BncHJvdChwZ3Byb3RfdmFsKHByb3QpICYgflBURV9DQUNIRUFCTEUpCiAjZGVmaW5lIHBncHJvdF93cml0ZWNvbWJpbmUocHJvdCkJXAogCV9fcGdwcm90KHBncHJvdF92YWwocHJvdCkgJiB+UFRFX0NBQ0hFQUJMRSkKLSNkZWZpbmUgcGdwcm90X2RtYWNvaGVyZW50KHByb3QpCVwKLQlfX3BncHJvdChwZ3Byb3RfdmFsKHByb3QpICYgflBURV9DQUNIRUFCTEUpCiAKICNkZWZpbmUgcG1kX25vbmUocG1kKQkJKCFwbWRfdmFsKHBtZCkpCiAjZGVmaW5lIHBtZF9wcmVzZW50KHBtZCkJKHBtZF92YWwocG1kKSAmIFBNRF9QUkVTRU5UKQpAQCAtMjg3LDggKzI4NSw2IEBAIGV4dGVybiBwZ2RfdCBzd2FwcGVyX3BnX2RpcltQVFJTX1BFUl9QR0RdOwogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGd0YWJsZS5oPgogCi0jZGVmaW5lIHBndGFibGVfY2FjaGVfaW5pdCgpIGRvIHsgfSB3aGlsZSAoMCkKLQogI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KIAogI2VuZGlmIC8qIF9fVU5JQ09SRV9QR1RBQkxFX0hfXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC91bmljb3JlMzIvaW5jbHVkZS9hc20vdGxiLmggYi9hcmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS90bGIuaAppbmRleCAxMGQyMzU2Li40NjYzZDhjIDEwMDY0NAotLS0gYS9hcmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS90bGIuaAorKysgYi9hcmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS90bGIuaApAQCAtMTUsNyArMTUsNyBAQAogCiAjZGVmaW5lIF9fcHRlX2ZyZWVfdGxiKHRsYiwgcHRlLCBhZGRyKQkJCQlcCiAJZG8gewkJCQkJCQlcCi0JCXBndGFibGVfcGFnZV9kdG9yKHB0ZSk7CQkJCVwKKwkJcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHB0ZSk7CQkJXAogCQl0bGJfcmVtb3ZlX3BhZ2UoKHRsYiksIChwdGUpKTsJCQlcCiAJfSB3aGlsZSAoMCkKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZyBiL2FyY2gveDg2L0tjb25maWcKaW5kZXggNDE5NWY0NC4uZDZlMWZhYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZworKysgYi9hcmNoL3g4Ni9LY29uZmlnCkBAIC02OCw2ICs2OCw3IEBACiAJc2VsZWN0IEFSQ0hfSEFTX0ZPUlRJRllfU09VUkNFCiAJc2VsZWN0IEFSQ0hfSEFTX0dDT1ZfUFJPRklMRV9BTEwKIAlzZWxlY3QgQVJDSF9IQVNfS0NPVgkJCWlmIFg4Nl82NAorCXNlbGVjdCBBUkNIX0hBU19NRU1fRU5DUllQVAogCXNlbGVjdCBBUkNIX0hBU19NRU1CQVJSSUVSX1NZTkNfQ09SRQogCXNlbGVjdCBBUkNIX0hBU19QTUVNX0FQSQkJaWYgWDg2XzY0CiAJc2VsZWN0IEFSQ0hfSEFTX1BURV9ERVZNQVAJCWlmIFg4Nl82NApAQCAtMTQ3LDYgKzE0OCw3IEBACiAJc2VsZWN0IEhBVkVfQVJDSF9UUkFOU1BBUkVOVF9IVUdFUEFHRV9QVUQgaWYgWDg2XzY0CiAJc2VsZWN0IEhBVkVfQVJDSF9WTUFQX1NUQUNLCQlpZiBYODZfNjQKIAlzZWxlY3QgSEFWRV9BUkNIX1dJVEhJTl9TVEFDS19GUkFNRVMKKwlzZWxlY3QgSEFWRV9BU01fTU9EVkVSU0lPTlMKIAlzZWxlY3QgSEFWRV9DTVBYQ0hHX0RPVUJMRQogCXNlbGVjdCBIQVZFX0NNUFhDSEdfTE9DQUwKIAlzZWxlY3QgSEFWRV9DT05URVhUX1RSQUNLSU5HCQlpZiBYODZfNjQKQEAgLTE1MjUsOSArMTUyNyw2IEBACiAJICBoZWxwcyB0byBkZXRlcm1pbmUgdGhlIGVmZmVjdGl2ZW5lc3Mgb2YgcHJlc2VydmluZyBsYXJnZSBhbmQgaHVnZQogCSAgcGFnZSBtYXBwaW5ncyB3aGVuIG1hcHBpbmcgcHJvdGVjdGlvbnMgYXJlIGNoYW5nZWQuCiAKLWNvbmZpZyBBUkNIX0hBU19NRU1fRU5DUllQVAotCWRlZl9ib29sIHkKLQogY29uZmlnIEFNRF9NRU1fRU5DUllQVAogCWJvb2wgIkFNRCBTZWN1cmUgTWVtb3J5IEVuY3J5cHRpb24gKFNNRSkgc3VwcG9ydCIKIAlkZXBlbmRzIG9uIFg4Nl82NCAmJiBDUFVfU1VQX0FNRApAQCAtMjAzMiwyMCArMjAzMSwzMCBAQAogY29uZmlnIEFSQ0hfSEFTX0tFWEVDX1BVUkdBVE9SWQogCWRlZl9ib29sIEtFWEVDX0ZJTEUKIAotY29uZmlnIEtFWEVDX1ZFUklGWV9TSUcKK2NvbmZpZyBLRVhFQ19TSUcKIAlib29sICJWZXJpZnkga2VybmVsIHNpZ25hdHVyZSBkdXJpbmcga2V4ZWNfZmlsZV9sb2FkKCkgc3lzY2FsbCIKIAlkZXBlbmRzIG9uIEtFWEVDX0ZJTEUKIAktLS1oZWxwLS0tCisKKwkgIFRoaXMgb3B0aW9uIG1ha2VzIHRoZSBrZXhlY19maWxlX2xvYWQoKSBzeXNjYWxsIGNoZWNrIGZvciBhIHZhbGlkCisJICBzaWduYXR1cmUgb2YgdGhlIGtlcm5lbCBpbWFnZS4gIFRoZSBpbWFnZSBjYW4gc3RpbGwgYmUgbG9hZGVkIHdpdGhvdXQKKwkgIGEgdmFsaWQgc2lnbmF0dXJlIHVubGVzcyB5b3UgYWxzbyBlbmFibGUgS0VYRUNfU0lHX0ZPUkNFLCB0aG91Z2ggaWYKKwkgIHRoZXJlJ3MgYSBzaWduYXR1cmUgdGhhdCB3ZSBjYW4gY2hlY2ssIHRoZW4gaXQgbXVzdCBiZSB2YWxpZC4KKworCSAgSW4gYWRkaXRpb24gdG8gdGhpcyBvcHRpb24sIHlvdSBuZWVkIHRvIGVuYWJsZSBzaWduYXR1cmUKKwkgIHZlcmlmaWNhdGlvbiBmb3IgdGhlIGNvcnJlc3BvbmRpbmcga2VybmVsIGltYWdlIHR5cGUgYmVpbmcKKwkgIGxvYWRlZCBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLgorCitjb25maWcgS0VYRUNfU0lHX0ZPUkNFCisJYm9vbCAiUmVxdWlyZSBhIHZhbGlkIHNpZ25hdHVyZSBpbiBrZXhlY19maWxlX2xvYWQoKSBzeXNjYWxsIgorCWRlcGVuZHMgb24gS0VYRUNfU0lHCisJLS0taGVscC0tLQogCSAgVGhpcyBvcHRpb24gbWFrZXMga2VybmVsIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gbWFuZGF0b3J5IGZvcgogCSAgdGhlIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGwuCiAKLQkgIEluIGFkZGl0aW9uIHRvIHRoYXQgb3B0aW9uLCB5b3UgbmVlZCB0byBlbmFibGUgc2lnbmF0dXJlCi0JICB2ZXJpZmljYXRpb24gZm9yIHRoZSBjb3JyZXNwb25kaW5nIGtlcm5lbCBpbWFnZSB0eXBlIGJlaW5nCi0JICBsb2FkZWQgaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yay4KLQogY29uZmlnIEtFWEVDX0JaSU1BR0VfVkVSSUZZX1NJRwogCWJvb2wgIkVuYWJsZSBiekltYWdlIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gc3VwcG9ydCIKLQlkZXBlbmRzIG9uIEtFWEVDX1ZFUklGWV9TSUcKKwlkZXBlbmRzIG9uIEtFWEVDX1NJRwogCWRlcGVuZHMgb24gU0lHTkVEX1BFX0ZJTEVfVkVSSUZJQ0FUSU9OCiAJc2VsZWN0IFNZU1RFTV9UUlVTVEVEX0tFWVJJTkcKIAktLS1oZWxwLS0tCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvYWNwaS5jIGIvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL2FjcGkuYwppbmRleCAxNTI1NWYzLi4xNDk3OTVjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvYWNwaS5jCisrKyBiL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9hY3BpLmMKQEAgLTI2LDcgKzI2LDcgQEAgc3RydWN0IG1lbV92ZWN0b3IgaW1tb3ZhYmxlX21lbVtNQVhfTlVNTk9ERVMqMl07CiAgKi8KICNkZWZpbmUgTUFYX0FERFJfTEVOIDE5CiAKLXN0YXRpYyBhY3BpX3BoeXNpY2FsX2FkZHJlc3MgZ2V0X2FjcGlfcnNkcCh2b2lkKQorc3RhdGljIGFjcGlfcGh5c2ljYWxfYWRkcmVzcyBnZXRfY21kbGluZV9hY3BpX3JzZHAodm9pZCkKIHsKIAlhY3BpX3BoeXNpY2FsX2FkZHJlc3MgYWRkciA9IDA7CiAKQEAgLTI3OCwxMCArMjc4LDcgQEAgYWNwaV9waHlzaWNhbF9hZGRyZXNzIGdldF9yc2RwX2FkZHIodm9pZCkKIHsKIAlhY3BpX3BoeXNpY2FsX2FkZHJlc3MgcGE7CiAKLQlwYSA9IGdldF9hY3BpX3JzZHAoKTsKLQotCWlmICghcGEpCi0JCXBhID0gYm9vdF9wYXJhbXMtPmFjcGlfcnNkcF9hZGRyOworCXBhID0gYm9vdF9wYXJhbXMtPmFjcGlfcnNkcF9hZGRyOwogCiAJLyoKIAkgKiBUcnkgdG8gZ2V0IEVGSSBkYXRhIGZyb20gc2V0dXBfZGF0YS4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gd2UncmUgYQpAQCAtMzExLDcgKzMwOCwxNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfYWNwaV9zcmF0X3RhYmxlKHZvaWQpCiAJY2hhciBhcmdbMTBdOwogCXU4ICplbnRyeTsKIAotCXJzZHAgPSAoc3RydWN0IGFjcGlfdGFibGVfcnNkcCAqKShsb25nKWJvb3RfcGFyYW1zLT5hY3BpX3JzZHBfYWRkcjsKKwkvKgorCSAqIENoZWNrIHdoZXRoZXIgd2Ugd2VyZSBnaXZlbiBhbiBSU0RQIG9uIHRoZSBjb21tYW5kIGxpbmUuIFdlIGRvbid0CisJICogc3Rhc2ggdGhpcyBpbiBib290IHBhcmFtcyBiZWNhdXNlIHRoZSBrZXJuZWwgaXRzZWxmIG1heSBoYXZlCisJICogZGlmZmVyZW50IGlkZWFzIGFib3V0IHdoZXRoZXIgdG8gdHJ1c3QgYSBjb21tYW5kLWxpbmUgcGFyYW1ldGVyLgorCSAqLworCXJzZHAgPSAoc3RydWN0IGFjcGlfdGFibGVfcnNkcCAqKWdldF9jbWRsaW5lX2FjcGlfcnNkcCgpOworCisJaWYgKCFyc2RwKQorCQlyc2RwID0gKHN0cnVjdCBhY3BpX3RhYmxlX3JzZHAgKikobG9uZykKKwkJCWJvb3RfcGFyYW1zLT5hY3BpX3JzZHBfYWRkcjsKKwogCWlmICghcnNkcCkKIAkJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L3Zkc28vTWFrZWZpbGUgYi9hcmNoL3g4Ni9lbnRyeS92ZHNvL01ha2VmaWxlCmluZGV4IDhkZjU0OTEuLjBmMjE1NDEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L3Zkc28vTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvZW50cnkvdmRzby9NYWtlZmlsZQpAQCAtODksNiArODksNyBAQAogIwogQ0ZMQUdTX1JFTU9WRV92ZHNvLW5vdGUubyA9IC1wZwogQ0ZMQUdTX1JFTU9WRV92Y2xvY2tfZ2V0dGltZS5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX3Zkc28zMi92Y2xvY2tfZ2V0dGltZS5vID0gLXBnCiBDRkxBR1NfUkVNT1ZFX3ZnZXRjcHUubyA9IC1wZwogQ0ZMQUdTX1JFTU9WRV92dmFyLm8gPSAtcGcKIApAQCAtMTI4LDcgKzEyOSw3IEBACiAkKG9iaikvdmRzb3gzMi5zby5kYmc6ICQob2JqKS92ZHNveDMyLmxkcyAkKHZvYmp4MzJzKSBGT1JDRQogCSQoY2FsbCBpZl9jaGFuZ2VkLHZkc29fYW5kX2NoZWNrKQogCi1DUFBGTEFHU192ZHNvMzIubGRzID0gJChDUFBGTEFHU192ZHNvLmxkcykKK0NQUEZMQUdTX3Zkc28zMi92ZHNvMzIubGRzID0gJChDUFBGTEFHU192ZHNvLmxkcykKIFZEU09fTERGTEFHU192ZHNvMzIubGRzID0gLW0gZWxmX2kzODYgLXNvbmFtZSBsaW51eC1nYXRlLnNvLjEKIAogdGFyZ2V0cyArPSB2ZHNvMzIvdmRzbzMyLmxkcwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oCmluZGV4IGFhYzY4NmUuLmJjOTY5M2MgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hY3BpLmgKQEAgLTExNyw2ICsxMTcsMTIgQEAgc3RhdGljIGlubGluZSBib29sIGFjcGlfaGFzX2NwdV9pbl9tYWR0KHZvaWQpCiAJcmV0dXJuICEhYWNwaV9sYXBpYzsKIH0KIAorI2RlZmluZSBBQ1BJX0hBVkVfQVJDSF9TRVRfUk9PVF9QT0lOVEVSCitzdGF0aWMgaW5saW5lIHZvaWQgYWNwaV9hcmNoX3NldF9yb290X3BvaW50ZXIodTY0IGFkZHIpCit7CisJeDg2X2luaXQuYWNwaS5zZXRfcm9vdF9wb2ludGVyKGFkZHIpOworfQorCiAjZGVmaW5lIEFDUElfSEFWRV9BUkNIX0dFVF9ST09UX1BPSU5URVIKIHN0YXRpYyBpbmxpbmUgdTY0IGFjcGlfYXJjaF9nZXRfcm9vdF9wb2ludGVyKHZvaWQpCiB7CkBAIC0xMjUsNiArMTMxLDcgQEAgc3RhdGljIGlubGluZSB1NjQgYWNwaV9hcmNoX2dldF9yb290X3BvaW50ZXIodm9pZCkKIAogdm9pZCBhY3BpX2dlbmVyaWNfcmVkdWNlZF9od19pbml0KHZvaWQpOwogCit2b2lkIHg4Nl9kZWZhdWx0X3NldF9yb290X3BvaW50ZXIodTY0IGFkZHIpOwogdTY0IHg4Nl9kZWZhdWx0X2dldF9yb290X3BvaW50ZXIodm9pZCk7CiAKICNlbHNlIC8qICFDT05GSUdfQUNQSSAqLwpAQCAtMTM4LDYgKzE0NSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkaXNhYmxlX2FjcGkodm9pZCkgeyB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhY3BpX2dlbmVyaWNfcmVkdWNlZF9od19pbml0KHZvaWQpIHsgfQogCitzdGF0aWMgaW5saW5lIHZvaWQgeDg2X2RlZmF1bHRfc2V0X3Jvb3RfcG9pbnRlcih1NjQgYWRkcikgeyB9CisKIHN0YXRpYyBpbmxpbmUgdTY0IHg4Nl9kZWZhdWx0X2dldF9yb290X3BvaW50ZXIodm9pZCkKIHsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5oCmluZGV4IDA5NGZiYzkuLjEzYWRjYTMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUuaApAQCAtMjAxLDEwICsyMDEsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgYWx0ZXJuYXRpdmVzX3RleHRfcmVzZXJ2ZWQodm9pZCAqc3RhcnQsIHZvaWQgKmVuZCkKICAqIHdpdGhvdXQgdm9sYXRpbGUgYW5kIG1lbW9yeSBjbG9iYmVyLgogICovCiAjZGVmaW5lIGFsdGVybmF0aXZlKG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSkJCQlcCi0JYXNtIHZvbGF0aWxlIChBTFRFUk5BVElWRShvbGRpbnN0ciwgbmV3aW5zdHIsIGZlYXR1cmUpIDogOiA6ICJtZW1vcnkiKQorCWFzbV9pbmxpbmUgdm9sYXRpbGUgKEFMVEVSTkFUSVZFKG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSkgOiA6IDogIm1lbW9yeSIpCiAKICNkZWZpbmUgYWx0ZXJuYXRpdmVfMihvbGRpbnN0ciwgbmV3aW5zdHIxLCBmZWF0dXJlMSwgbmV3aW5zdHIyLCBmZWF0dXJlMikgXAotCWFzbSB2b2xhdGlsZShBTFRFUk5BVElWRV8yKG9sZGluc3RyLCBuZXdpbnN0cjEsIGZlYXR1cmUxLCBuZXdpbnN0cjIsIGZlYXR1cmUyKSA6OjogIm1lbW9yeSIpCisJYXNtX2lubGluZSB2b2xhdGlsZShBTFRFUk5BVElWRV8yKG9sZGluc3RyLCBuZXdpbnN0cjEsIGZlYXR1cmUxLCBuZXdpbnN0cjIsIGZlYXR1cmUyKSA6OjogIm1lbW9yeSIpCiAKIC8qCiAgKiBBbHRlcm5hdGl2ZSBpbmxpbmUgYXNzZW1ibHkgd2l0aCBpbnB1dC4KQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgaW5saW5lIGludCBhbHRlcm5hdGl2ZXNfdGV4dF9yZXNlcnZlZCh2b2lkICpzdGFydCwgdm9pZCAqZW5kKQogICogTGVhdmluZyBhbiB1bnVzZWQgYXJndW1lbnQgMCB0byBrZWVwIEFQSSBjb21wYXRpYmlsaXR5LgogICovCiAjZGVmaW5lIGFsdGVybmF0aXZlX2lucHV0KG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSwgaW5wdXQuLi4pCVwKLQlhc20gdm9sYXRpbGUgKEFMVEVSTkFUSVZFKG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSkJCVwKKwlhc21faW5saW5lIHZvbGF0aWxlIChBTFRFUk5BVElWRShvbGRpbnN0ciwgbmV3aW5zdHIsIGZlYXR1cmUpCVwKIAkJOiA6ICJpIiAoMCksICMjIGlucHV0KQogCiAvKgpAQCAtMjMxLDE4ICsyMzEsMTggQEAgc3RhdGljIGlubGluZSBpbnQgYWx0ZXJuYXRpdmVzX3RleHRfcmVzZXJ2ZWQodm9pZCAqc3RhcnQsIHZvaWQgKmVuZCkKICAqLwogI2RlZmluZSBhbHRlcm5hdGl2ZV9pbnB1dF8yKG9sZGluc3RyLCBuZXdpbnN0cjEsIGZlYXR1cmUxLCBuZXdpbnN0cjIsCSAgICAgXAogCQkJICAgZmVhdHVyZTIsIGlucHV0Li4uKQkJCQkgICAgIFwKLQlhc20gdm9sYXRpbGUoQUxURVJOQVRJVkVfMihvbGRpbnN0ciwgbmV3aW5zdHIxLCBmZWF0dXJlMSwJICAgICBcCisJYXNtX2lubGluZSB2b2xhdGlsZShBTFRFUk5BVElWRV8yKG9sZGluc3RyLCBuZXdpbnN0cjEsIGZlYXR1cmUxLCAgICAgXAogCQluZXdpbnN0cjIsIGZlYXR1cmUyKQkJCQkJICAgICBcCiAJCTogOiAiaSIgKDApLCAjIyBpbnB1dCkKIAogLyogTGlrZSBhbHRlcm5hdGl2ZV9pbnB1dCwgYnV0IHdpdGggYSBzaW5nbGUgb3V0cHV0IGFyZ3VtZW50ICovCiAjZGVmaW5lIGFsdGVybmF0aXZlX2lvKG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSwgb3V0cHV0LCBpbnB1dC4uLikJXAotCWFzbSB2b2xhdGlsZSAoQUxURVJOQVRJVkUob2xkaW5zdHIsIG5ld2luc3RyLCBmZWF0dXJlKQkJXAorCWFzbV9pbmxpbmUgdm9sYXRpbGUgKEFMVEVSTkFUSVZFKG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSkJXAogCQk6IG91dHB1dCA6ICJpIiAoMCksICMjIGlucHV0KQogCiAvKiBMaWtlIGFsdGVybmF0aXZlX2lvLCBidXQgZm9yIHJlcGxhY2luZyBhIGRpcmVjdCBjYWxsIHdpdGggYW5vdGhlciBvbmUuICovCiAjZGVmaW5lIGFsdGVybmF0aXZlX2NhbGwob2xkZnVuYywgbmV3ZnVuYywgZmVhdHVyZSwgb3V0cHV0LCBpbnB1dC4uLikJXAotCWFzbSB2b2xhdGlsZSAoQUxURVJOQVRJVkUoImNhbGwgJVBbb2xkXSIsICJjYWxsICVQW25ld10iLCBmZWF0dXJlKSBcCisJYXNtX2lubGluZSB2b2xhdGlsZSAoQUxURVJOQVRJVkUoImNhbGwgJVBbb2xkXSIsICJjYWxsICVQW25ld10iLCBmZWF0dXJlKSBcCiAJCTogb3V0cHV0IDogW29sZF0gImkiIChvbGRmdW5jKSwgW25ld10gImkiIChuZXdmdW5jKSwgIyMgaW5wdXQpCiAKIC8qCkBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGlubGluZSBpbnQgYWx0ZXJuYXRpdmVzX3RleHRfcmVzZXJ2ZWQodm9pZCAqc3RhcnQsIHZvaWQgKmVuZCkKICAqLwogI2RlZmluZSBhbHRlcm5hdGl2ZV9jYWxsXzIob2xkZnVuYywgbmV3ZnVuYzEsIGZlYXR1cmUxLCBuZXdmdW5jMiwgZmVhdHVyZTIsICAgXAogCQkJICAgb3V0cHV0LCBpbnB1dC4uLikJCQkJICAgICAgXAotCWFzbSB2b2xhdGlsZSAoQUxURVJOQVRJVkVfMigiY2FsbCAlUFtvbGRdIiwgImNhbGwgJVBbbmV3MV0iLCBmZWF0dXJlMSxcCisJYXNtX2lubGluZSB2b2xhdGlsZSAoQUxURVJOQVRJVkVfMigiY2FsbCAlUFtvbGRdIiwgImNhbGwgJVBbbmV3MV0iLCBmZWF0dXJlMSxcCiAJCSJjYWxsICVQW25ldzJdIiwgZmVhdHVyZTIpCQkJCSAgICAgIFwKIAkJOiBvdXRwdXQsIEFTTV9DQUxMX0NPTlNUUkFJTlQJCQkJICAgICAgXAogCQk6IFtvbGRdICJpIiAob2xkZnVuYyksIFtuZXcxXSAiaSIgKG5ld2Z1bmMxKSwJCSAgICAgIFwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2J1Zy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYnVnLmgKaW5kZXggNjgwNGQ2Ni4uZmFjYmE5YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vYnVnLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYnVnLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2RlZmluZSBfQlVHX0ZMQUdTKGlucywgZmxhZ3MpCQkJCQkJXAogZG8gewkJCQkJCQkJCVwKLQlhc20gdm9sYXRpbGUoIjE6XHQiIGlucyAiXG4iCQkJCQlcCisJYXNtX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgaW5zICJcbiIJCQkJXAogCQkgICAgICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iCQlcCiAJCSAgICAgIjI6XHQiIF9fQlVHX1JFTCgxYikgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iCVwKIAkJICAgICAiXHQiICBfX0JVR19SRUwoJWMwKSAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIglcCkBAIC00OSw3ICs0OSw3IEBAIGRvIHsJCQkJCQkJCQlcCiAKICNkZWZpbmUgX0JVR19GTEFHUyhpbnMsIGZsYWdzKQkJCQkJCVwKIGRvIHsJCQkJCQkJCQlcCi0JYXNtIHZvbGF0aWxlKCIxOlx0IiBpbnMgIlxuIgkJCQkJXAorCWFzbV9pbmxpbmUgdm9sYXRpbGUoIjE6XHQiIGlucyAiXG4iCQkJCVwKIAkJICAgICAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIgkJXAogCQkgICAgICIyOlx0IiBfX0JVR19SRUwoMWIpICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIglcCiAJCSAgICAgIlx0LndvcmQgJWMwIiAgICAgICAgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iCVwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h5cGVydi10bGZzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oeXBlcnYtdGxmcy5oCmluZGV4IDdhMjcwNTYuLjc3NDFlMjEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h5cGVydi10bGZzLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vaHlwZXJ2LXRsZnMuaApAQCAtMTgwLDcgKzE4MCwxNSBAQAogLyogUmVjb21tZW5kIHVzaW5nIGVubGlnaHRlbmVkIFZNQ1MgKi8KICNkZWZpbmUgSFZfWDY0X0VOTElHSFRFTkVEX1ZNQ1NfUkVDT01NRU5ERUQJCUJJVCgxNCkKIAorLyoKKyAqIFZpcnR1YWwgcHJvY2Vzc29yIHdpbGwgbmV2ZXIgc2hhcmUgYSBwaHlzaWNhbCBjb3JlIHdpdGggYW5vdGhlciB2aXJ0dWFsCisgKiBwcm9jZXNzb3IsIGV4Y2VwdCBmb3IgdmlydHVhbCBwcm9jZXNzb3JzIHRoYXQgYXJlIHJlcG9ydGVkIGFzIHNpYmxpbmcgU01UCisgKiB0aHJlYWRzLgorICovCisjZGVmaW5lIEhWX1g2NF9OT19OT05BUkNIX0NPUkVTSEFSSU5HICAgICAgICAgICAgICAgICAgQklUKDE4KQorCiAvKiBOZXN0ZWQgZmVhdHVyZXMuIFRoZXNlIGFyZSBIWVBFUlZfQ1BVSURfTkVTVEVEX0ZFQVRVUkVTLkVBWCBiaXRzLiAqLworI2RlZmluZSBIVl9YNjRfTkVTVEVEX0RJUkVDVF9GTFVTSAkJCUJJVCgxNykKICNkZWZpbmUgSFZfWDY0X05FU1RFRF9HVUVTVF9NQVBQSU5HX0ZMVVNICQlCSVQoMTgpCiAjZGVmaW5lIEhWX1g2NF9ORVNURURfTVNSX0JJVE1BUAkJCUJJVCgxOSkKIApAQCAtNTI0LDE0ICs1MzIsMjQgQEAgc3RydWN0IGh2X3RpbWVyX21lc3NhZ2VfcGF5bG9hZCB7CiAJX191NjQgZGVsaXZlcnlfdGltZTsJLyogV2hlbiB0aGUgbWVzc2FnZSB3YXMgZGVsaXZlcmVkICovCiB9IF9fcGFja2VkOwogCitzdHJ1Y3QgaHZfbmVzdGVkX2VubGlnaHRlbm1lbnRzX2NvbnRyb2wgeworCXN0cnVjdCB7CisJCV9fdTMyIGRpcmVjdGh5cGVyY2FsbDoxOworCQlfX3UzMiByZXNlcnZlZDozMTsKKwl9IGZlYXR1cmVzOworCXN0cnVjdCB7CisJCV9fdTMyIHJlc2VydmVkOworCX0gaHlwZXJjYWxsQ29udHJvbHM7Cit9IF9fcGFja2VkOworCiAvKiBEZWZpbmUgdmlydHVhbCBwcm9jZXNzb3IgYXNzaXN0IHBhZ2Ugc3RydWN0dXJlLiAqLwogc3RydWN0IGh2X3ZwX2Fzc2lzdF9wYWdlIHsKIAlfX3UzMiBhcGljX2Fzc2lzdDsKLQlfX3UzMiByZXNlcnZlZDsKLQlfX3U2NCB2dGxfY29udHJvbFsyXTsKLQlfX3U2NCBuZXN0ZWRfZW5saWdodGVubWVudHNfY29udHJvbFsyXTsKLQlfX3UzMiBlbmxpZ2h0ZW5fdm1lbnRyeTsKLQlfX3UzMiBwYWRkaW5nOworCV9fdTMyIHJlc2VydmVkMTsKKwlfX3U2NCB2dGxfY29udHJvbFszXTsKKwlzdHJ1Y3QgaHZfbmVzdGVkX2VubGlnaHRlbm1lbnRzX2NvbnRyb2wgbmVzdGVkX2NvbnRyb2w7CisJX191OCBlbmxpZ2h0ZW5fdm1lbnRyeTsKKwlfX3U4IHJlc2VydmVkMls3XTsKIAlfX3U2NCBjdXJyZW50X25lc3RlZF92bWNzOwogfSBfX3BhY2tlZDsKIApAQCAtODgyLDQgKzkwMCw3IEBAIHN0cnVjdCBodl90bGJfZmx1c2hfZXggewogCXU2NCBndmFfbGlzdFtdOwogfSBfX3BhY2tlZDsKIAorc3RydWN0IGh2X3BhcnRpdGlvbl9hc3Npc3RfcGcgeworCXUzMiB0bGJfbG9ja19jb3VudDsKK307CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCmluZGV4IGEzYTNlYzcuLjIzZWRmNTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaApAQCAtMzIwLDYgKzMyMCw3IEBAIHN0cnVjdCBrdm1fbW11X3BhZ2UgewogCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKIAlzdHJ1Y3QgaGxpc3Rfbm9kZSBoYXNoX2xpbms7CiAJYm9vbCB1bnN5bmM7CisJdTggbW11X3ZhbGlkX2dlbjsKIAlib29sIG1taW9fY2FjaGVkOwogCiAJLyoKQEAgLTMzNSw3ICszMzYsNiBAQCBzdHJ1Y3Qga3ZtX21tdV9wYWdlIHsKIAlpbnQgcm9vdF9jb3VudDsgICAgICAgICAgLyogQ3VycmVudGx5IHNlcnZpbmcgYXMgYWN0aXZlIHJvb3QgKi8KIAl1bnNpZ25lZCBpbnQgdW5zeW5jX2NoaWxkcmVuOwogCXN0cnVjdCBrdm1fcm1hcF9oZWFkIHBhcmVudF9wdGVzOyAvKiBybWFwIHBvaW50ZXJzIHRvIHBhcmVudCBzcHRlcyAqLwotCXVuc2lnbmVkIGxvbmcgbW11X3ZhbGlkX2dlbjsKIAlERUNMQVJFX0JJVE1BUCh1bnN5bmNfY2hpbGRfYml0bWFwLCA1MTIpOwogCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgpAQCAtODQ0LDYgKzg0NCw4IEBAIHN0cnVjdCBrdm1faHYgewogCiAJLyogSG93IG1hbnkgdkNQVXMgaGF2ZSBWUCBpbmRleCAhPSB2Q1BVIGluZGV4ICovCiAJYXRvbWljX3QgbnVtX21pc21hdGNoZWRfdnBfaW5kZXhlczsKKworCXN0cnVjdCBodl9wYXJ0aXRpb25fYXNzaXN0X3BnICpodl9wYV9wZzsKIH07CiAKIGVudW0ga3ZtX2lycWNoaXBfbW9kZSB7CkBAIC04NTcsMTIgKzg1OSwxMyBAQCBzdHJ1Y3Qga3ZtX2FyY2ggewogCXVuc2lnbmVkIGxvbmcgbl9yZXF1ZXN0ZWRfbW11X3BhZ2VzOwogCXVuc2lnbmVkIGxvbmcgbl9tYXhfbW11X3BhZ2VzOwogCXVuc2lnbmVkIGludCBpbmRpcmVjdF9zaGFkb3dfcGFnZXM7Ci0JdW5zaWduZWQgbG9uZyBtbXVfdmFsaWRfZ2VuOworCXU4IG1tdV92YWxpZF9nZW47CiAJc3RydWN0IGhsaXN0X2hlYWQgbW11X3BhZ2VfaGFzaFtLVk1fTlVNX01NVV9QQUdFU107CiAJLyoKIAkgKiBIYXNoIHRhYmxlIG9mIHN0cnVjdCBrdm1fbW11X3BhZ2UuCiAJICovCiAJc3RydWN0IGxpc3RfaGVhZCBhY3RpdmVfbW11X3BhZ2VzOworCXN0cnVjdCBsaXN0X2hlYWQgemFwcGVkX29ic29sZXRlX3BhZ2VzOwogCXN0cnVjdCBrdm1fcGFnZV90cmFja19ub3RpZmllcl9ub2RlIG1tdV9zcF90cmFja2VyOwogCXN0cnVjdCBrdm1fcGFnZV90cmFja19ub3RpZmllcl9oZWFkIHRyYWNrX25vdGlmaWVyX2hlYWQ7CiAKQEAgLTEyMTMsNiArMTIxNiw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB7CiAJYm9vbCAoKm5lZWRfZW11bGF0aW9uX29uX3BhZ2VfZmF1bHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAKIAlib29sICgqYXBpY19pbml0X3NpZ25hbF9ibG9ja2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOworCWludCAoKmVuYWJsZV9kaXJlY3RfdGxiZmx1c2gpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB9OwogCiBzdHJ1Y3Qga3ZtX2FyY2hfYXN5bmNfcGYgewpAQCAtMTMxMiwxOCArMTMxNiw0MiBAQCBleHRlcm4gdTY0ICBrdm1fZGVmYXVsdF90c2Nfc2NhbGluZ19yYXRpbzsKIAogZXh0ZXJuIHU2NCBrdm1fbWNlX2NhcF9zdXBwb3J0ZWQ7CiAKLWVudW0gZW11bGF0aW9uX3Jlc3VsdCB7Ci0JRU1VTEFURV9ET05FLCAgICAgICAgIC8qIG5vIGZ1cnRoZXIgcHJvY2Vzc2luZyAqLwotCUVNVUxBVEVfVVNFUl9FWElULCAgICAvKiBrdm1fcnVuIHJlYWR5IGZvciB1c2Vyc3BhY2UgZXhpdCAqLwotCUVNVUxBVEVfRkFJTCwgICAgICAgICAvKiBjYW4ndCBlbXVsYXRlIHRoaXMgaW5zdHJ1Y3Rpb24gKi8KLX07Ci0KKy8qCisgKiBFTVVMVFlQRV9OT19ERUNPREUgLSBTZXQgd2hlbiByZS1lbXVsYXRpbmcgYW4gaW5zdHJ1Y3Rpb24gKGFmdGVyIGNvbXBsZXRpbmcKKyAqCQkJdXNlcnNwYWNlIEkvTykgdG8gaW5kaWNhdGUgdGhhdCB0aGUgZW11bGF0aW9uIGNvbnRleHQKKyAqCQkJc2hvdWxkIGJlIHJlc3VlZCBhcyBpcywgaS5lLiBza2lwIGluaXRpYWxpemF0aW9uIG9mCisgKgkJCWVtdWxhdGlvbiBjb250ZXh0LCBpbnN0cnVjdGlvbiBmZXRjaCBhbmQgZGVjb2RlLgorICoKKyAqIEVNVUxUWVBFX1RSQVBfVUQgLSBTZXQgd2hlbiBlbXVsYXRpbmcgYW4gaW50ZXJjZXB0ZWQgI1VEIGZyb20gaGFyZHdhcmUuCisgKgkJICAgICAgSW5kaWNhdGVzIHRoYXQgb25seSBzZWxlY3QgaW5zdHJ1Y3Rpb25zICh0YWdnZWQgd2l0aAorICoJCSAgICAgIEVtdWxhdGVPblVEKSBzaG91bGQgYmUgZW11bGF0ZWQgKHRvIG1pbmltaXplIHRoZSBlbXVsYXRvcgorICoJCSAgICAgIGF0dGFjayBzdXJmYWNlKS4gIFNlZSBhbHNvIEVNVUxUWVBFX1RSQVBfVURfRk9SQ0VELgorICoKKyAqIEVNVUxUWVBFX1NLSVAgLSBTZXQgd2hlbiBlbXVsYXRpbmcgc29sZWx5IHRvIHNraXAgYW4gaW5zdHJ1Y3Rpb24sIGkuZS4gdG8KKyAqCQkgICBkZWNvZGUgdGhlIGluc3RydWN0aW9uIGxlbmd0aC4gIEZvciB1c2UgKm9ubHkqIGJ5CisgKgkJICAga3ZtX3g4Nl9vcHMtPnNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oKSBpbXBsZW1lbnRhdGlvbnMuCisgKgorICogRU1VTFRZUEVfQUxMT1dfUkVUUlkgLSBTZXQgd2hlbiB0aGUgZW11bGF0b3Igc2hvdWxkIHJlc3VtZSB0aGUgZ3Vlc3QgdG8KKyAqCQkJICByZXRyeSBuYXRpdmUgZXhlY3V0aW9uIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucy4KKyAqCisgKiBFTVVMVFlQRV9UUkFQX1VEX0ZPUkNFRCAtIFNldCB3aGVuIGVtdWxhdGluZyBhbiBpbnRlcmNlcHRlZCAjVUQgdGhhdCB3YXMKKyAqCQkJICAgICB0cmlnZ2VyZWQgYnkgS1ZNJ3MgbWFnaWMgImZvcmNlIGVtdWxhdGlvbiIgcHJlZml4LAorICoJCQkgICAgIHdoaWNoIGlzIG9wdCBpbiB2aWEgbW9kdWxlIHBhcmFtIChvZmYgYnkgZGVmYXVsdCkuCisgKgkJCSAgICAgQnlwYXNzZXMgRW11bGF0ZU9uVUQgcmVzdHJpY3Rpb24gZGVzcGl0ZSBlbXVsYXRpbmcKKyAqCQkJICAgICBkdWUgdG8gYW4gaW50ZXJjZXB0ZWQgI1VEIChzZWUgRU1VTFRZUEVfVFJBUF9VRCkuCisgKgkJCSAgICAgVXNlZCB0byB0ZXN0IHRoZSBmdWxsIGVtdWxhdG9yIGZyb20gdXNlcnNwYWNlLgorICoKKyAqIEVNVUxUWVBFX1ZNV0FSRV9HUCAtIFNldCB3aGVuIGVtdWxhdGluZyBhbiBpbnRlcmNlcHRlZCAjR1AgZm9yIFZNd2FyZQorICoJCQliYWNrZG9vciBlbXVsYXRpb24sIHdoaWNoIGlzIG9wdCBpbiB2aWEgbW9kdWxlIHBhcmFtLgorICoJCQlWTXdhcmUgYmFja29vciBlbXVsYXRpb24gaGFuZGxlcyBzZWxlY3QgaW5zdHJ1Y3Rpb25zCisgKgkJCWFuZCByZWluamVjdHMgdGhlICNHUCBmb3IgYWxsIG90aGVyIGNhc2VzLgorICovCiAjZGVmaW5lIEVNVUxUWVBFX05PX0RFQ09ERQkgICAgKDEgPDwgMCkKICNkZWZpbmUgRU1VTFRZUEVfVFJBUF9VRAkgICAgKDEgPDwgMSkKICNkZWZpbmUgRU1VTFRZUEVfU0tJUAkJICAgICgxIDw8IDIpCiAjZGVmaW5lIEVNVUxUWVBFX0FMTE9XX1JFVFJZCSAgICAoMSA8PCAzKQotI2RlZmluZSBFTVVMVFlQRV9OT19VRF9PTl9GQUlMCSAgICAoMSA8PCA0KQotI2RlZmluZSBFTVVMVFlQRV9WTVdBUkUJCSAgICAoMSA8PCA1KQorI2RlZmluZSBFTVVMVFlQRV9UUkFQX1VEX0ZPUkNFRAkgICAgKDEgPDwgNCkKKyNkZWZpbmUgRU1VTFRZUEVfVk1XQVJFX0dQCSAgICAoMSA8PCA1KQogaW50IGt2bV9lbXVsYXRlX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IGVtdWxhdGlvbl90eXBlKTsKIGludCBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbl9mcm9tX2J1ZmZlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCQkJCXZvaWQgKmluc24sIGludCBpbnNuX2xlbik7CkBAIC0xNTA2LDcgKzE1MzQsNyBAQCBlbnVtIHsKICNkZWZpbmUga3ZtX2FyY2hfdmNwdV9tZW1zbG90c19pZCh2Y3B1KSAoKHZjcHUpLT5hcmNoLmhmbGFncyAmIEhGX1NNTV9NQVNLID8gMSA6IDApCiAjZGVmaW5lIGt2bV9tZW1zbG90c19mb3Jfc3B0ZV9yb2xlKGt2bSwgcm9sZSkgX19rdm1fbWVtc2xvdHMoa3ZtLCAocm9sZSkuc21tKQogCi1hc21saW5rYWdlIHZvaWQgX19ub3JldHVybiBrdm1fc3B1cmlvdXNfZmF1bHQodm9pZCk7Cithc21saW5rYWdlIHZvaWQga3ZtX3NwdXJpb3VzX2ZhdWx0KHZvaWQpOwogCiAvKgogICogSGFyZHdhcmUgdmlydHVhbGl6YXRpb24gZXh0ZW5zaW9uIGluc3RydWN0aW9ucyBtYXkgZmF1bHQgaWYgYQpAQCAtMTUxNCwyNCArMTU0MiwxNCBAQCBhc21saW5rYWdlIHZvaWQgX19ub3JldHVybiBrdm1fc3B1cmlvdXNfZmF1bHQodm9pZCk7CiAgKiBVc3VhbGx5IGFmdGVyIGNhdGNoaW5nIHRoZSBmYXVsdCB3ZSBqdXN0IHBhbmljOyBkdXJpbmcgcmVib290CiAgKiBpbnN0ZWFkIHRoZSBpbnN0cnVjdGlvbiBpcyBpZ25vcmVkLgogICovCi0jZGVmaW5lIF9fX19rdm1faGFuZGxlX2ZhdWx0X29uX3JlYm9vdChpbnNuLCBjbGVhbnVwX2luc24pCQlcCisjZGVmaW5lIF9fa3ZtX2hhbmRsZV9mYXVsdF9vbl9yZWJvb3QoaW5zbikJCQkJXAogCSI2NjY6IFxuXHQiCQkJCQkJCVwKIAlpbnNuICJcblx0IgkJCQkJCQlcCiAJImptcAk2NjhmIFxuXHQiCQkJCQkJXAogCSI2Njc6IFxuXHQiCQkJCQkJCVwKIAkiY2FsbAlrdm1fc3B1cmlvdXNfZmF1bHQgXG5cdCIJCQkJXAogCSI2Njg6IFxuXHQiCQkJCQkJCVwKLQkiLnB1c2hzZWN0aW9uIC5maXh1cCwgXCJheFwiIFxuXHQiCQkJCVwKLQkiNzAwOiBcblx0IgkJCQkJCQlcCi0JY2xlYW51cF9pbnNuICJcblx0IgkJCQkJCVwKLQkiY21wYgkkMCwga3ZtX3JlYm9vdGluZ1xuXHQiCQkJCQlcCi0JImplCTY2N2IgXG5cdCIJCQkJCQlcCi0JImptcAk2NjhiIFxuXHQiCQkJCQkJXAotCSIucG9wc2VjdGlvbiBcblx0IgkJCQkJCVwKLQlfQVNNX0VYVEFCTEUoNjY2YiwgNzAwYikKLQotI2RlZmluZSBfX2t2bV9oYW5kbGVfZmF1bHRfb25fcmVib290KGluc24pCQlcCi0JX19fX2t2bV9oYW5kbGVfZmF1bHRfb25fcmVib290KGluc24sICIiKQorCV9BU01fRVhUQUJMRSg2NjZiLCA2NjdiKQogCiAjZGVmaW5lIEtWTV9BUkNIX1dBTlRfTU1VX05PVElGSUVSCiBpbnQga3ZtX3VubWFwX2h2YV9yYW5nZShzdHJ1Y3Qga3ZtICprdm0sIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oCmluZGV4IDBjMTk2YzQuLjg0OGNlNDMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vbWVtX2VuY3J5cHQuaApAQCAtOTIsNiArOTIsMTYgQEAgZWFybHlfc2V0X21lbW9yeV9lbmNyeXB0ZWQodW5zaWduZWQgbG9uZyB2YWRkciwgdW5zaWduZWQgbG9uZyBzaXplKSB7IHJldHVybiAwOwogCiBleHRlcm4gY2hhciBfX3N0YXJ0X2Jzc19kZWNyeXB0ZWRbXSwgX19lbmRfYnNzX2RlY3J5cHRlZFtdLCBfX3N0YXJ0X2Jzc19kZWNyeXB0ZWRfdW51c2VkW107CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBtZW1fZW5jcnlwdF9hY3RpdmUodm9pZCkKK3sKKwlyZXR1cm4gc21lX21lX21hc2s7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTY0IHNtZV9nZXRfbWVfbWFzayh2b2lkKQoreworCXJldHVybiBzbWVfbWVfbWFzazsKK30KKwogI2VuZGlmCS8qIF9fQVNTRU1CTFlfXyAqLwogCiAjZW5kaWYJLyogX19YODZfTUVNX0VOQ1JZUFRfSF9fICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzMyLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzMyLmgKaW5kZXggYzc4ZGE4ZS4uMGRjYTdmNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV8zMi5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfMzIuaApAQCAtMjksOCArMjksNiBAQCBleHRlcm4gcGdkX3Qgc3dhcHBlcl9wZ19kaXJbMTAyNF07CiBleHRlcm4gcGdkX3QgaW5pdGlhbF9wYWdlX3RhYmxlWzEwMjRdOwogZXh0ZXJuIHBtZF90IGluaXRpYWxfcGdfcG1kW107CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBwZ3RhYmxlX2NhY2hlX2luaXQodm9pZCkgeyB9Ci1zdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tfcGd0X2NhY2hlKHZvaWQpIHsgfQogdm9pZCBwYWdpbmdfaW5pdCh2b2lkKTsKIHZvaWQgc3luY19pbml0aWFsX3BhZ2VfdGFibGUodm9pZCk7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjQuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjQuaAppbmRleCA0OTkwZDI2Li4wYjZjNDA0MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV82NC5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjQuaApAQCAtMjQxLDkgKzI0MSw2IEBAIGV4dGVybiB2b2lkIGNsZWFudXBfaGlnaG1hcCh2b2lkKTsKICNkZWZpbmUgSEFWRV9BUkNIX1VOTUFQUEVEX0FSRUEKICNkZWZpbmUgSEFWRV9BUkNIX1VOTUFQUEVEX0FSRUFfVE9QRE9XTgogCi0jZGVmaW5lIHBndGFibGVfY2FjaGVfaW5pdCgpICAgZG8geyB9IHdoaWxlICgwKQotI2RlZmluZSBjaGVja19wZ3RfY2FjaGUoKSAgICAgIGRvIHsgfSB3aGlsZSAoMCkKLQogI2RlZmluZSBQQUdFX0FHUCAgICBQQUdFX0tFUk5FTF9OT0NBQ0hFCiAjZGVmaW5lIEhBVkVfUEFHRV9BR1AgMQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zdm0uaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N2bS5oCmluZGV4IGRlYzljMWUuLjZlY2U4NTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N2bS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N2bS5oCkBAIC01Miw2ICs1Miw3IEBAIGVudW0gewogCUlOVEVSQ0VQVF9NV0FJVCwKIAlJTlRFUkNFUFRfTVdBSVRfQ09ORCwKIAlJTlRFUkNFUFRfWFNFVEJWLAorCUlOVEVSQ0VQVF9SRFBSVSwKIH07CiAKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vdm14LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92bXguaAppbmRleCBiMTVlNjQ2Li4xODM1NzY3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92bXguaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92bXguaApAQCAtNjksNiArNjksNyBAQAogI2RlZmluZSBTRUNPTkRBUllfRVhFQ19QVF9VU0VfR1BBCQkweDAxMDAwMDAwCiAjZGVmaW5lIFNFQ09OREFSWV9FWEVDX01PREVfQkFTRURfRVBUX0VYRUMJMHgwMDQwMDAwMAogI2RlZmluZSBTRUNPTkRBUllfRVhFQ19UU0NfU0NBTElORyAgICAgICAgICAgICAgMHgwMjAwMDAwMAorI2RlZmluZSBTRUNPTkRBUllfRVhFQ19FTkFCTEVfVVNSX1dBSVRfUEFVU0UJMHgwNDAwMDAwMAogCiAjZGVmaW5lIFBJTl9CQVNFRF9FWFRfSU5UUl9NQVNLICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiAjZGVmaW5lIFBJTl9CQVNFRF9OTUlfRVhJVElORyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CkBAIC0xMTAsNiArMTExLDcgQEAKICNkZWZpbmUgVk1YX01JU0NfU0FWRV9FRkVSX0xNQQkJCTB4MDAwMDAwMjAKICNkZWZpbmUgVk1YX01JU0NfQUNUSVZJVFlfSExUCQkJMHgwMDAwMDA0MAogI2RlZmluZSBWTVhfTUlTQ19aRVJPX0xFTl9JTlMJCQkweDQwMDAwMDAwCisjZGVmaW5lIFZNWF9NSVNDX01TUl9MSVNUX01VTFRJUExJRVIJCTUxMgogCiAvKiBWTUZVTkMgZnVuY3Rpb25zICovCiAjZGVmaW5lIFZNWF9WTUZVTkNfRVBUUF9TV0lUQ0hJTkcgICAgICAgICAgICAgICAweDAwMDAwMDAxCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaAppbmRleCBhYzA5MzQxLi4xOTQzNTg1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0LmgKQEAgLTEzNCwxMCArMTM0LDEyIEBAIHN0cnVjdCB4ODZfaHlwZXJfaW5pdCB7CiAKIC8qKgogICogc3RydWN0IHg4Nl9pbml0X2FjcGkgLSB4ODYgQUNQSSBpbml0IGZ1bmN0aW9ucworICogQHNldF9yb290X3BvaXRuZXI6CQlzZXQgUlNEUCBhZGRyZXNzCiAgKiBAZ2V0X3Jvb3RfcG9pbnRlcjoJCWdldCBSU0RQIGFkZHJlc3MKICAqIEByZWR1Y2VkX2h3X2Vhcmx5X2luaXQ6CWhhcmR3YXJlIHJlZHVjZWQgcGxhdGZvcm0gZWFybHkgaW5pdAogICovCiBzdHJ1Y3QgeDg2X2luaXRfYWNwaSB7CisJdm9pZCAoKnNldF9yb290X3BvaW50ZXIpKHU2NCBhZGRyKTsKIAl1NjQgKCpnZXRfcm9vdF9wb2ludGVyKSh2b2lkKTsKIAl2b2lkICgqcmVkdWNlZF9od19lYXJseV9pbml0KSh2b2lkKTsKIH07CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaAppbmRleCAxMTY3NzdlLi42M2NkNDFiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9wYWdlLWNvaGVyZW50LmgKQEAgLTIxLDE4ICsyMSw0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZnJlZV9jb2hlcmVudF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc2l6ZV90IHNpemUsCiAJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZykgY3B1X2FkZHIsIGdldF9vcmRlcihzaXplKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKLQkgICAgIGRtYV9hZGRyX3QgZGV2X2FkZHIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwKLQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykgeyB9Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAotCQlzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCQl1bnNpZ25lZCBsb25nIGF0dHJzKSB7IH0KLQotc3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShzdHJ1Y3QgZGV2aWNlICpod2RldiwKLQkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpIHsgfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgeGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAotCQlkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikgeyB9Ci0KICNlbmRpZiAvKiBfQVNNX1g4Nl9YRU5fUEFHRV9DT0hFUkVOVF9IICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3N2bS5oIGIvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zdm0uaAppbmRleCBhOTczMWY4Li4yZThhMzBmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3N2bS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc3ZtLmgKQEAgLTc1LDYgKzc1LDcgQEAKICNkZWZpbmUgU1ZNX0VYSVRfTVdBSVQgICAgICAgICAweDA4YgogI2RlZmluZSBTVk1fRVhJVF9NV0FJVF9DT05EICAgIDB4MDhjCiAjZGVmaW5lIFNWTV9FWElUX1hTRVRCViAgICAgICAgMHgwOGQKKyNkZWZpbmUgU1ZNX0VYSVRfUkRQUlUgICAgICAgICAweDA4ZQogI2RlZmluZSBTVk1fRVhJVF9OUEYgICAgICAgICAgIDB4NDAwCiAjZGVmaW5lIFNWTV9FWElUX0FWSUNfSU5DT01QTEVURV9JUEkJCTB4NDAxCiAjZGVmaW5lIFNWTV9FWElUX0FWSUNfVU5BQ0NFTEVSQVRFRF9BQ0NFU1MJMHg0MDIKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vdm14LmggYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3ZteC5oCmluZGV4IGYwMTk1MGEuLjNlYjg0MTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vdm14LmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS92bXguaApAQCAtODYsNiArODYsOCBAQAogI2RlZmluZSBFWElUX1JFQVNPTl9QTUxfRlVMTCAgICAgICAgICAgIDYyCiAjZGVmaW5lIEVYSVRfUkVBU09OX1hTQVZFUyAgICAgICAgICAgICAgNjMKICNkZWZpbmUgRVhJVF9SRUFTT05fWFJTVE9SUyAgICAgICAgICAgICA2NAorI2RlZmluZSBFWElUX1JFQVNPTl9VTVdBSVQgICAgICAgICAgICAgIDY3CisjZGVmaW5lIEVYSVRfUkVBU09OX1RQQVVTRSAgICAgICAgICAgICAgNjgKIAogI2RlZmluZSBWTVhfRVhJVF9SRUFTT05TIFwKIAl7IEVYSVRfUkVBU09OX0VYQ0VQVElPTl9OTUksICAgICAgICAgIkVYQ0VQVElPTl9OTUkiIH0sIFwKQEAgLTE0NCw3ICsxNDYsOSBAQAogCXsgRVhJVF9SRUFTT05fUkRTRUVELCAgICAgICAgICAgICAgICAiUkRTRUVEIiB9LCBcCiAJeyBFWElUX1JFQVNPTl9QTUxfRlVMTCwgICAgICAgICAgICAgICJQTUxfRlVMTCIgfSwgXAogCXsgRVhJVF9SRUFTT05fWFNBVkVTLCAgICAgICAgICAgICAgICAiWFNBVkVTIiB9LCBcCi0JeyBFWElUX1JFQVNPTl9YUlNUT1JTLCAgICAgICAgICAgICAgICJYUlNUT1JTIiB9CisJeyBFWElUX1JFQVNPTl9YUlNUT1JTLCAgICAgICAgICAgICAgICJYUlNUT1JTIiB9LCBcCisJeyBFWElUX1JFQVNPTl9VTVdBSVQsICAgICAgICAgICAgICAgICJVTVdBSVQiIH0sIFwKKwl7IEVYSVRfUkVBU09OX1RQQVVTRSwgICAgICAgICAgICAgICAgIlRQQVVTRSIgfQogCiAjZGVmaW5lIFZNWF9BQk9SVF9TQVZFX0dVRVNUX01TUl9GQUlMICAgICAgICAxCiAjZGVmaW5lIFZNWF9BQk9SVF9MT0FEX0hPU1RfUERQVEVfRkFJTCAgICAgICAyCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9ib290LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9ib290LmMKaW5kZXggMTdiMzNlZi4uMDQyMDVjZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FjcGkvYm9vdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL2Jvb3QuYwpAQCAtMTc2MCw2ICsxNzYwLDExIEBAIHZvaWQgX19pbml0IGFyY2hfcmVzZXJ2ZV9tZW1fYXJlYShhY3BpX3BoeXNpY2FsX2FkZHJlc3MgYWRkciwgc2l6ZV90IHNpemUpCiAJZTgyMF9fdXBkYXRlX3RhYmxlX3ByaW50KCk7CiB9CiAKK3ZvaWQgeDg2X2RlZmF1bHRfc2V0X3Jvb3RfcG9pbnRlcih1NjQgYWRkcikKK3sKKwlib290X3BhcmFtcy5hY3BpX3JzZHBfYWRkciA9IGFkZHI7Cit9CisKIHU2NCB4ODZfZGVmYXVsdF9nZXRfcm9vdF9wb2ludGVyKHZvaWQpCiB7CiAJcmV0dXJuIGJvb3RfcGFyYW1zLmFjcGlfcnNkcF9hZGRyOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FtZF9nYXJ0XzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYW1kX2dhcnRfNjQuYwppbmRleCBhNTg1ZWE2Li5hNmFjMzcxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYW1kX2dhcnRfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYW1kX2dhcnRfNjQuYwpAQCAtNjc3LDcgKzY3NywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIGdhcnRfZG1hX29wcyA9IHsKIAkudW5tYXBfcGFnZQkJCT0gZ2FydF91bm1hcF9wYWdlLAogCS5hbGxvYwkJCQk9IGdhcnRfYWxsb2NfY29oZXJlbnQsCiAJLmZyZWUJCQkJPSBnYXJ0X2ZyZWVfY29oZXJlbnQsCisJLm1tYXAJCQkJPSBkbWFfY29tbW9uX21tYXAsCisJLmdldF9zZ3RhYmxlCQkJPSBkbWFfY29tbW9uX2dldF9zZ3RhYmxlLAogCS5kbWFfc3VwcG9ydGVkCQkJPSBkbWFfZGlyZWN0X3N1cHBvcnRlZCwKKwkuZ2V0X3JlcXVpcmVkX21hc2sJCT0gZG1hX2RpcmVjdF9nZXRfcmVxdWlyZWRfbWFzaywKIH07CiAKIHN0YXRpYyB2b2lkIGdhcnRfaW9tbXVfc2h1dGRvd24odm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdW13YWl0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Vtd2FpdC5jCmluZGV4IDMyYjRkYzkuLmMyMjJmMjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdW13YWl0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS91bXdhaXQuYwpAQCAtMTcsNiArMTcsMTIgQEAKICAqLwogc3RhdGljIHUzMiB1bXdhaXRfY29udHJvbF9jYWNoZWQgPSBVTVdBSVRfQ1RSTF9WQUwoMTAwMDAwLCBVTVdBSVRfQzAyX0VOQUJMRSk7CiAKK3UzMiBnZXRfdW13YWl0X2NvbnRyb2xfbXNyKHZvaWQpCit7CisJcmV0dXJuIHVtd2FpdF9jb250cm9sX2NhY2hlZDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGdldF91bXdhaXRfY29udHJvbF9tc3IpOworCiAvKgogICogQ2FjaGUgdGhlIG9yaWdpbmFsIElBMzJfVU1XQUlUX0NPTlRST0wgTVNSIHZhbHVlIHdoaWNoIGlzIGNvbmZpZ3VyZWQgYnkKICAqIGhhcmR3YXJlIG9yIEJJT1MgYmVmb3JlIGtlcm5lbCBib290LgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcmFzaF9kdW1wXzY0LmMKaW5kZXggMjIzNjlkZC4uMDQ1ZTgyZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3Jhc2hfZHVtcF82NC5jCkBAIC03MCwzICs3MCw4IEBAIHNzaXplX3QgY29weV9vbGRtZW1fcGFnZV9lbmNyeXB0ZWQodW5zaWduZWQgbG9uZyBwZm4sIGNoYXIgKmJ1Ziwgc2l6ZV90IGNzaXplLAogewogCXJldHVybiBfX2NvcHlfb2xkbWVtX3BhZ2UocGZuLCBidWYsIGNzaXplLCBvZmZzZXQsIHVzZXJidWYsIHRydWUpOwogfQorCitzc2l6ZV90IGVsZmNvcmVoZHJfcmVhZChjaGFyICpidWYsIHNpemVfdCBjb3VudCwgdTY0ICpwcG9zKQoreworCXJldHVybiByZWFkX2Zyb21fb2xkbWVtKGJ1ZiwgY291bnQsIHBwb3MsIDAsIHNldl9hY3RpdmUoKSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMKaW5kZXggNmM0ZjAxNS4uNmY2YjFkMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lYXJseS1xdWlya3MuYwpAQCAtNTQ5LDYgKzU0OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpbnRlbF9lYXJseV9pZHNbXSBfX2luaXRjb25zdCA9IHsKIAlJTlRFTF9DTkxfSURTKCZnZW45X2Vhcmx5X29wcyksCiAJSU5URUxfSUNMXzExX0lEUygmZ2VuMTFfZWFybHlfb3BzKSwKIAlJTlRFTF9FSExfSURTKCZnZW4xMV9lYXJseV9vcHMpLAorCUlOVEVMX1RHTF8xMl9JRFMoJmdlbjExX2Vhcmx5X29wcyksCiB9OwogCiBzdHJ1Y3QgcmVzb3VyY2UgaW50ZWxfZ3JhcGhpY3Nfc3RvbGVuX3JlcyBfX3JvX2FmdGVyX2luaXQgPSBERUZJTkVfUkVTX01FTSgwLCAwKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pbWFfYXJjaC5jIGIvYXJjaC94ODYva2VybmVsL2ltYV9hcmNoLmMKaW5kZXggNGM0MDc4My4uNGQ0ZjVkOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2ltYV9hcmNoLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2ltYV9hcmNoLmMKQEAgLTc0LDkgKzc0LDkgQEAgYm9vbCBhcmNoX2ltYV9nZXRfc2VjdXJlYm9vdCh2b2lkKQogCiAvKiBzZWN1cmVib290IGFyY2ggcnVsZXMgKi8KIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2JfYXJjaF9ydWxlc1tdID0gewotI2lmICFJU19FTkFCTEVEKENPTkZJR19LRVhFQ19WRVJJRllfU0lHKQorI2lmICFJU19FTkFCTEVEKENPTkZJR19LRVhFQ19TSUcpCiAJImFwcHJhaXNlIGZ1bmM9S0VYRUNfS0VSTkVMX0NIRUNLIGFwcHJhaXNlX3R5cGU9aW1hc2lnIiwKLSNlbmRpZiAvKiBDT05GSUdfS0VYRUNfVkVSSUZZX1NJRyAqLworI2VuZGlmIC8qIENPTkZJR19LRVhFQ19TSUcgKi8KIAkibWVhc3VyZSBmdW5jPUtFWEVDX0tFUk5FTF9DSEVDSyIsCiAjaWYgIUlTX0VOQUJMRUQoQ09ORklHX01PRFVMRV9TSUcpCiAJImFwcHJhaXNlIGZ1bmM9TU9EVUxFX0NIRUNLIGFwcHJhaXNlX3R5cGU9aW1hc2lnIiwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pb3BvcnQuYyBiL2FyY2gveDg2L2tlcm5lbC9pb3BvcnQuYwppbmRleCAwZmUxYzg3Li42MWE4OWQzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaW9wb3J0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2lvcG9ydC5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvc21wLmg+CiAjaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgpAQCAtMzEsNyArMzIsOCBAQCBsb25nIGtzeXNfaW9wZXJtKHVuc2lnbmVkIGxvbmcgZnJvbSwgdW5zaWduZWQgbG9uZyBudW0sIGludCB0dXJuX29uKQogCiAJaWYgKChmcm9tICsgbnVtIDw9IGZyb20pIHx8IChmcm9tICsgbnVtID4gSU9fQklUTUFQX0JJVFMpKQogCQlyZXR1cm4gLUVJTlZBTDsKLQlpZiAodHVybl9vbiAmJiAhY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKKwlpZiAodHVybl9vbiAmJiAoIWNhcGFibGUoQ0FQX1NZU19SQVdJTykgfHwKKwkJCXNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX0lPUE9SVCkpKQogCQlyZXR1cm4gLUVQRVJNOwogCiAJLyoKQEAgLTEyNiw3ICsxMjgsOCBAQCBTWVNDQUxMX0RFRklORTEoaW9wbCwgdW5zaWduZWQgaW50LCBsZXZlbCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJLyogVHJ5aW5nIHRvIGdhaW4gbW9yZSBwcml2aWxlZ2VzPyAqLwogCWlmIChsZXZlbCA+IG9sZCkgewotCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19SQVdJTykpCisJCWlmICghY2FwYWJsZShDQVBfU1lTX1JBV0lPKSB8fAorCQkgICAgc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fSU9QT1JUKSkKIAkJCXJldHVybiAtRVBFUk07CiAJfQogCXJlZ3MtPmZsYWdzID0gKHJlZ3MtPmZsYWdzICYgflg4Nl9FRkxBR1NfSU9QTCkgfApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2tleGVjLWJ6aW1hZ2U2NC5jIGIvYXJjaC94ODYva2VybmVsL2tleGVjLWJ6aW1hZ2U2NC5jCmluZGV4IDVlYmNkMDIuLmQyZjRlNzAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9rZXhlYy1iemltYWdlNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwva2V4ZWMtYnppbWFnZTY0LmMKQEAgLTE4MCw2ICsxODAsNyBAQCBzZXR1cF9lZmlfc3RhdGUoc3RydWN0IGJvb3RfcGFyYW1zICpwYXJhbXMsIHVuc2lnbmVkIGxvbmcgcGFyYW1zX2xvYWRfYWRkciwKIAlpZiAoZWZpX2VuYWJsZWQoRUZJX09MRF9NRU1NQVApKQogCQlyZXR1cm4gMDsKIAorCXBhcmFtcy0+c2VjdXJlX2Jvb3QgPSBib290X3BhcmFtcy5zZWN1cmVfYm9vdDsKIAllaS0+ZWZpX2xvYWRlcl9zaWduYXR1cmUgPSBjdXJyZW50X2VpLT5lZmlfbG9hZGVyX3NpZ25hdHVyZTsKIAllaS0+ZWZpX3N5c3RhYiA9IGN1cnJlbnRfZWktPmVmaV9zeXN0YWI7CiAJZWktPmVmaV9zeXN0YWJfaGkgPSBjdXJyZW50X2VpLT5lZmlfc3lzdGFiX2hpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL21zci5jIGIvYXJjaC94ODYva2VybmVsL21zci5jCmluZGV4IDNkYjIyNTIuLjE1NDdiZTMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9tc3IuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbXNyLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxsaW51eC9nZnAuaD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgogCiAjaW5jbHVkZSA8YXNtL2NwdWZlYXR1cmUuaD4KICNpbmNsdWRlIDxhc20vbXNyLmg+CkBAIC03OSw2ICs4MCwxMCBAQCBzdGF0aWMgc3NpemVfdCBtc3Jfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJaW50IGVyciA9IDA7CiAJc3NpemVfdCBieXRlcyA9IDA7CiAKKwllcnIgPSBzZWN1cml0eV9sb2NrZWRfZG93bihMT0NLRE9XTl9NU1IpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAlpZiAoY291bnQgJSA4KQogCQlyZXR1cm4gLUVJTlZBTDsJLyogSW52YWxpZCBjaHVuayBzaXplICovCiAKQEAgLTEzMCw2ICsxMzUsOSBAQCBzdGF0aWMgbG9uZyBtc3JfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBpb2MsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQkJZXJyID0gLUVGQVVMVDsKIAkJCWJyZWFrOwogCQl9CisJCWVyciA9IHNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX01TUik7CisJCWlmIChlcnIpCisJCQlicmVhazsKIAkJZXJyID0gd3Jtc3Jfc2FmZV9yZWdzX29uX2NwdShjcHUsIHJlZ3MpOwogCQlpZiAoZXJyKQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLWNhbGdhcnlfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktY2FsZ2FyeV82NC5jCmluZGV4IDlkNDM0M2EuLjIzZmRlYzAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wY2ktY2FsZ2FyeV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktY2FsZ2FyeV82NC5jCkBAIC00NjgsNiArNDY4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBjYWxnYXJ5X2RtYV9vcHMgPSB7CiAJLm1hcF9wYWdlID0gY2FsZ2FyeV9tYXBfcGFnZSwKIAkudW5tYXBfcGFnZSA9IGNhbGdhcnlfdW5tYXBfcGFnZSwKIAkuZG1hX3N1cHBvcnRlZCA9IGRtYV9kaXJlY3Rfc3VwcG9ydGVkLAorCS5tbWFwID0gZG1hX2NvbW1vbl9tbWFwLAorCS5nZXRfc2d0YWJsZSA9IGRtYV9jb21tb25fZ2V0X3NndGFibGUsCiB9OwogCiBzdGF0aWMgaW5saW5lIHZvaWQgX19pb21lbSAqIGJ1c25vX3RvX2JiYXIodW5zaWduZWQgY2hhciBudW0pCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLXN3aW90bGIuYyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktc3dpb3RsYi5jCmluZGV4IDVmNTMwMjAuLmMyY2ZhNWUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wY2ktc3dpb3RsYi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktc3dpb3RsYi5jCkBAIC0xLDUgKzEsNCBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLS8qIEdsdWUgY29kZSB0byBsaWIvc3dpb3RsYi5jICovCiAKICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9jYWNoZS5oPgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NldHVwLmMgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXAuYwppbmRleCBiYmUzNWJmLi43N2VhOTZiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXAuYwpAQCAtNDg2LDcgKzQ4Niw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHJlc2VydmVfY3Jhc2hrZXJuZWxfbG93KHZvaWQpCiAJcmV0ID0gcGFyc2VfY3Jhc2hrZXJuZWxfbG93KGJvb3RfY29tbWFuZF9saW5lLCB0b3RhbF9sb3dfbWVtLCAmbG93X3NpemUsICZiYXNlKTsKIAlpZiAocmV0KSB7CiAJCS8qCi0JCSAqIHR3byBwYXJ0cyBmcm9tIGxpYi9zd2lvdGxiLmM6CisJCSAqIHR3byBwYXJ0cyBmcm9tIGtlcm5lbC9kbWEvc3dpb3RsYi5jOgogCQkgKiAtc3dpb3RsYiBzaXplOiB1c2VyLXNwZWNpZmllZCB3aXRoIHN3aW90bGI9IG9yIGRlZmF1bHQuCiAJCSAqCiAJCSAqIC1zd2lvdGxiIG92ZXJmbG93IGJ1ZmZlcjogbm93IGhhcmRjb2RlZCB0byAzMmsuIFdlIHJvdW5kIGl0CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwveDg2X2luaXQuYyBiL2FyY2gveDg2L2tlcm5lbC94ODZfaW5pdC5jCmluZGV4IDFiZWY2ODcuLjE4YTc5OWMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC94ODZfaW5pdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC94ODZfaW5pdC5jCkBAIC05NSw2ICs5NSw3IEBAIHN0cnVjdCB4ODZfaW5pdF9vcHMgeDg2X2luaXQgX19pbml0ZGF0YSA9IHsKIAl9LAogCiAJLmFjcGkgPSB7CisJCS5zZXRfcm9vdF9wb2ludGVyCT0geDg2X2RlZmF1bHRfc2V0X3Jvb3RfcG9pbnRlciwKIAkJLmdldF9yb290X3BvaW50ZXIJPSB4ODZfZGVmYXVsdF9nZXRfcm9vdF9wb2ludGVyLAogCQkucmVkdWNlZF9od19lYXJseV9pbml0CT0gYWNwaV9nZW5lcmljX3JlZHVjZWRfaHdfaW5pdCwKIAl9LApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL2NwdWlkLmMgYi9hcmNoL3g4Ni9rdm0vY3B1aWQuYwppbmRleCBkZDU5ODVlLi42MzMxNjAzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vY3B1aWQuYworKysgYi9hcmNoL3g4Ni9rdm0vY3B1aWQuYwpAQCAtMzA0LDcgKzMwNCwxMyBAQCBzdGF0aWMgdm9pZCBkb19ob3N0X2NwdWlkKHN0cnVjdCBrdm1fY3B1aWRfZW50cnkyICplbnRyeSwgdTMyIGZ1bmN0aW9uLAogCWNhc2UgNzoKIAljYXNlIDB4YjoKIAljYXNlIDB4ZDoKKwljYXNlIDB4ZjoKKwljYXNlIDB4MTA6CisJY2FzZSAweDEyOgogCWNhc2UgMHgxNDoKKwljYXNlIDB4MTc6CisJY2FzZSAweDE4OgorCWNhc2UgMHgxZjoKIAljYXNlIDB4ODAwMDAwMWQ6CiAJCWVudHJ5LT5mbGFncyB8PSBLVk1fQ1BVSURfRkxBR19TSUdOSUZDQU5UX0lOREVYOwogCQlicmVhazsKQEAgLTM2MCw3ICszNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZG9fY3B1aWRfN19tYXNrKHN0cnVjdCBrdm1fY3B1aWRfZW50cnkyICplbnRyeSwgaW50IGluZGV4KQogCQlGKEFWWDUxMlZCTUkpIHwgRihMQTU3KSB8IEYoUEtVKSB8IDAgLypPU1BLRSovIHwKIAkJRihBVlg1MTJfVlBPUENOVERRKSB8IEYoVU1JUCkgfCBGKEFWWDUxMl9WQk1JMikgfCBGKEdGTkkpIHwKIAkJRihWQUVTKSB8IEYoVlBDTE1VTFFEUSkgfCBGKEFWWDUxMl9WTk5JKSB8IEYoQVZYNTEyX0JJVEFMRykgfAotCQlGKENMREVNT1RFKSB8IEYoTU9WRElSSSkgfCBGKE1PVkRJUjY0Qik7CisJCUYoQ0xERU1PVEUpIHwgRihNT1ZESVJJKSB8IEYoTU9WRElSNjRCKSB8IDAgLypXQUlUUEtHKi87CiAKIAkvKiBjcHVpZCA3LjAuZWR4Ki8KIAljb25zdCB1MzIga3ZtX2NwdWlkXzdfMF9lZHhfeDg2X2ZlYXR1cmVzID0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9oeXBlcnYuYyBiL2FyY2gveDg2L2t2bS9oeXBlcnYuYwppbmRleCBmZmY3OTBhLi4yM2ZmNjU1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vaHlwZXJ2LmMKKysrIGIvYXJjaC94ODYva3ZtL2h5cGVydi5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiaW9hcGljLmgiCiAjaW5jbHVkZSAiaHlwZXJ2LmgiCiAKKyNpbmNsdWRlIDxsaW51eC9jcHUuaD4KICNpbmNsdWRlIDxsaW51eC9rdm1faG9zdC5oPgogI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC9jcHV0aW1lLmg+CkBAIC02NDUsNyArNjQ2LDkgQEAgc3RhdGljIGludCBzdGltZXJfbm90aWZ5X2RpcmVjdChzdHJ1Y3Qga3ZtX3ZjcHVfaHZfc3RpbWVyICpzdGltZXIpCiAJCS52ZWN0b3IgPSBzdGltZXItPmNvbmZpZy5hcGljX3ZlY3RvcgogCX07CiAKLQlyZXR1cm4gIWt2bV9hcGljX3NldF9pcnEodmNwdSwgJmlycSwgTlVMTCk7CisJaWYgKGxhcGljX2luX2tlcm5lbCh2Y3B1KSkKKwkJcmV0dXJuICFrdm1fYXBpY19zZXRfaXJxKHZjcHUsICZpcnEsIE5VTEwpOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBzdGltZXJfZXhwaXJhdGlvbihzdHJ1Y3Qga3ZtX3ZjcHVfaHZfc3RpbWVyICpzdGltZXIpCkBAIC0xODUyLDcgKzE4NTUsMTMgQEAgaW50IGt2bV92Y3B1X2lvY3RsX2dldF9odl9jcHVpZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fY3B1aWQyICpjcHVpZCwKIAogCQkJZW50LT5lZHggfD0gSFZfRkVBVFVSRV9GUkVRVUVOQ1lfTVNSU19BVkFJTEFCTEU7CiAJCQllbnQtPmVkeCB8PSBIVl9GRUFUVVJFX0dVRVNUX0NSQVNIX01TUl9BVkFJTEFCTEU7Ci0JCQllbnQtPmVkeCB8PSBIVl9TVElNRVJfRElSRUNUX01PREVfQVZBSUxBQkxFOworCisJCQkvKgorCQkJICogRGlyZWN0IFN5bnRoZXRpYyB0aW1lcnMgb25seSBtYWtlIHNlbnNlIHdpdGggaW4ta2VybmVsCisJCQkgKiBMQVBJQworCQkJICovCisJCQlpZiAobGFwaWNfaW5fa2VybmVsKHZjcHUpKQorCQkJCWVudC0+ZWR4IHw9IEhWX1NUSU1FUl9ESVJFQ1RfTU9ERV9BVkFJTEFCTEU7CiAKIAkJCWJyZWFrOwogCkBAIC0xODY0LDcgKzE4NzMsOCBAQCBpbnQga3ZtX3ZjcHVfaW9jdGxfZ2V0X2h2X2NwdWlkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9jcHVpZDIgKmNwdWlkLAogCQkJZW50LT5lYXggfD0gSFZfWDY0X0VYX1BST0NFU1NPUl9NQVNLU19SRUNPTU1FTkRFRDsKIAkJCWlmIChldm1jc192ZXIpCiAJCQkJZW50LT5lYXggfD0gSFZfWDY0X0VOTElHSFRFTkVEX1ZNQ1NfUkVDT01NRU5ERUQ7Ci0KKwkJCWlmICghY3B1X3NtdF9wb3NzaWJsZSgpKQorCQkJCWVudC0+ZWF4IHw9IEhWX1g2NF9OT19OT05BUkNIX0NPUkVTSEFSSU5HOwogCQkJLyoKIAkJCSAqIERlZmF1bHQgbnVtYmVyIG9mIHNwaW5sb2NrIHJldHJ5IGF0dGVtcHRzLCBtYXRjaGVzCiAJCQkgKiBIeXBlclYgMjAxNi4KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5jIGIvYXJjaC94ODYva3ZtL2xhcGljLmMKaW5kZXggODY3NTQ1OC4uM2EzYTY4NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmMKKysrIGIvYXJjaC94ODYva3ZtL2xhcGljLmMKQEAgLTY1LDcgKzY1LDkgQEAKICNkZWZpbmUgQVBJQ19CUk9BRENBU1QJCQkweEZGCiAjZGVmaW5lIFgyQVBJQ19CUk9BRENBU1QJCTB4RkZGRkZGRkZ1bAogCi0jZGVmaW5lIExBUElDX1RJTUVSX0FEVkFOQ0VfQURKVVNUX0RPTkUgMTAwCitzdGF0aWMgYm9vbCBsYXBpY190aW1lcl9hZHZhbmNlX2R5bmFtaWMgX19yZWFkX21vc3RseTsKKyNkZWZpbmUgTEFQSUNfVElNRVJfQURWQU5DRV9BREpVU1RfTUlOIDEwMAorI2RlZmluZSBMQVBJQ19USU1FUl9BRFZBTkNFX0FESlVTVF9NQVggNTAwMAogI2RlZmluZSBMQVBJQ19USU1FUl9BRFZBTkNFX0FESlVTVF9JTklUIDEwMDAKIC8qIHN0ZXAtYnktc3RlcCBhcHByb3hpbWF0aW9uIHRvIG1pdGlnYXRlIGZsdWN0dWF0aW9uICovCiAjZGVmaW5lIExBUElDX1RJTUVSX0FEVkFOQ0VfQURKVVNUX1NURVAgOApAQCAtMTQ4NSwyNiArMTQ4NywyNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0X2xhcGljX3RpbWVyX2FkdmFuY2Uoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCXUzMiB0aW1lcl9hZHZhbmNlX25zID0gYXBpYy0+bGFwaWNfdGltZXIudGltZXJfYWR2YW5jZV9uczsKIAl1NjQgbnM7CiAKKwkvKiBEbyBub3QgYWRqdXN0IGZvciB0aW55IGZsdWN0dWF0aW9ucyBvciBsYXJnZSByYW5kb20gc3Bpa2VzLiAqLworCWlmIChhYnMoYWR2YW5jZV9leHBpcmVfZGVsdGEpID4gTEFQSUNfVElNRVJfQURWQU5DRV9BREpVU1RfTUFYIHx8CisJICAgIGFicyhhZHZhbmNlX2V4cGlyZV9kZWx0YSkgPCBMQVBJQ19USU1FUl9BRFZBTkNFX0FESlVTVF9NSU4pCisJCXJldHVybjsKKwogCS8qIHRvbyBlYXJseSAqLwogCWlmIChhZHZhbmNlX2V4cGlyZV9kZWx0YSA8IDApIHsKIAkJbnMgPSAtYWR2YW5jZV9leHBpcmVfZGVsdGEgKiAxMDAwMDAwVUxMOwogCQlkb19kaXYobnMsIHZjcHUtPmFyY2gudmlydHVhbF90c2Nfa2h6KTsKLQkJdGltZXJfYWR2YW5jZV9ucyAtPSBtaW4oKHUzMilucywKLQkJCXRpbWVyX2FkdmFuY2VfbnMgLyBMQVBJQ19USU1FUl9BRFZBTkNFX0FESlVTVF9TVEVQKTsKKwkJdGltZXJfYWR2YW5jZV9ucyAtPSBucy9MQVBJQ19USU1FUl9BRFZBTkNFX0FESlVTVF9TVEVQOwogCX0gZWxzZSB7CiAJLyogdG9vIGxhdGUgKi8KIAkJbnMgPSBhZHZhbmNlX2V4cGlyZV9kZWx0YSAqIDEwMDAwMDBVTEw7CiAJCWRvX2RpdihucywgdmNwdS0+YXJjaC52aXJ0dWFsX3RzY19raHopOwotCQl0aW1lcl9hZHZhbmNlX25zICs9IG1pbigodTMyKW5zLAotCQkJdGltZXJfYWR2YW5jZV9ucyAvIExBUElDX1RJTUVSX0FEVkFOQ0VfQURKVVNUX1NURVApOworCQl0aW1lcl9hZHZhbmNlX25zICs9IG5zL0xBUElDX1RJTUVSX0FEVkFOQ0VfQURKVVNUX1NURVA7CiAJfQogCi0JaWYgKGFicyhhZHZhbmNlX2V4cGlyZV9kZWx0YSkgPCBMQVBJQ19USU1FUl9BRFZBTkNFX0FESlVTVF9ET05FKQotCQlhcGljLT5sYXBpY190aW1lci50aW1lcl9hZHZhbmNlX2FkanVzdF9kb25lID0gdHJ1ZTsKLQlpZiAodW5saWtlbHkodGltZXJfYWR2YW5jZV9ucyA+IDUwMDApKSB7CisJaWYgKHVubGlrZWx5KHRpbWVyX2FkdmFuY2VfbnMgPiBMQVBJQ19USU1FUl9BRFZBTkNFX0FESlVTVF9NQVgpKQogCQl0aW1lcl9hZHZhbmNlX25zID0gTEFQSUNfVElNRVJfQURWQU5DRV9BREpVU1RfSU5JVDsKLQkJYXBpYy0+bGFwaWNfdGltZXIudGltZXJfYWR2YW5jZV9hZGp1c3RfZG9uZSA9IGZhbHNlOwotCX0KIAlhcGljLT5sYXBpY190aW1lci50aW1lcl9hZHZhbmNlX25zID0gdGltZXJfYWR2YW5jZV9uczsKIH0KIApAQCAtMTUyNCw3ICsxNTI1LDcgQEAgc3RhdGljIHZvaWQgX19rdm1fd2FpdF9sYXBpY19leHBpcmUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCWlmIChndWVzdF90c2MgPCB0c2NfZGVhZGxpbmUpCiAJCV9fd2FpdF9sYXBpY19leHBpcmUodmNwdSwgdHNjX2RlYWRsaW5lIC0gZ3Vlc3RfdHNjKTsKIAotCWlmICh1bmxpa2VseSghYXBpYy0+bGFwaWNfdGltZXIudGltZXJfYWR2YW5jZV9hZGp1c3RfZG9uZSkpCisJaWYgKGxhcGljX3RpbWVyX2FkdmFuY2VfZHluYW1pYykKIAkJYWRqdXN0X2xhcGljX3RpbWVyX2FkdmFuY2UodmNwdSwgYXBpYy0+bGFwaWNfdGltZXIuYWR2YW5jZV9leHBpcmVfZGVsdGEpOwogfQogCkBAIC0yMzAyLDEzICsyMzAzLDEyIEBAIGludCBrdm1fY3JlYXRlX2xhcGljKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHRpbWVyX2FkdmFuY2VfbnMpCiAJYXBpYy0+bGFwaWNfdGltZXIudGltZXIuZnVuY3Rpb24gPSBhcGljX3RpbWVyX2ZuOwogCWlmICh0aW1lcl9hZHZhbmNlX25zID09IC0xKSB7CiAJCWFwaWMtPmxhcGljX3RpbWVyLnRpbWVyX2FkdmFuY2VfbnMgPSBMQVBJQ19USU1FUl9BRFZBTkNFX0FESlVTVF9JTklUOwotCQlhcGljLT5sYXBpY190aW1lci50aW1lcl9hZHZhbmNlX2FkanVzdF9kb25lID0gZmFsc2U7CisJCWxhcGljX3RpbWVyX2FkdmFuY2VfZHluYW1pYyA9IHRydWU7CiAJfSBlbHNlIHsKIAkJYXBpYy0+bGFwaWNfdGltZXIudGltZXJfYWR2YW5jZV9ucyA9IHRpbWVyX2FkdmFuY2VfbnM7Ci0JCWFwaWMtPmxhcGljX3RpbWVyLnRpbWVyX2FkdmFuY2VfYWRqdXN0X2RvbmUgPSB0cnVlOworCQlsYXBpY190aW1lcl9hZHZhbmNlX2R5bmFtaWMgPSBmYWxzZTsKIAl9CiAKLQogCS8qCiAJICogQVBJQyBpcyBjcmVhdGVkIGVuYWJsZWQuIFRoaXMgd2lsbCBwcmV2ZW50IGt2bV9sYXBpY19zZXRfYmFzZSBmcm9tCiAJICogdGhpbmtpbmcgdGhhdCBBUElDIHN0YXRlIGhhcyBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL2xhcGljLmggYi9hcmNoL3g4Ni9rdm0vbGFwaWMuaAppbmRleCA1MDA1M2QyLi4yYWFkN2UyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vbGFwaWMuaAorKysgYi9hcmNoL3g4Ni9rdm0vbGFwaWMuaApAQCAtMzUsNyArMzUsNiBAQCBzdHJ1Y3Qga3ZtX3RpbWVyIHsKIAlzNjQgYWR2YW5jZV9leHBpcmVfZGVsdGE7CiAJYXRvbWljX3QgcGVuZGluZzsJCQkvKiBhY2N1bXVsYXRlZCB0cmlnZ2VyZWQgdGltZXJzICovCiAJYm9vbCBodl90aW1lcl9pbl91c2U7Ci0JYm9vbCB0aW1lcl9hZHZhbmNlX2FkanVzdF9kb25lOwogfTsKIAogc3RydWN0IGt2bV9sYXBpYyB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbW11LmMgYi9hcmNoL3g4Ni9rdm0vbW11LmMKaW5kZXggYTEwYWY5Yy4uNTI2OWFhMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL21tdS5jCisrKyBiL2FyY2gveDg2L2t2bS9tbXUuYwpAQCAtNDAzLDggKzQwMyw2IEBAIHN0YXRpYyB2b2lkIG1hcmtfbW1pb19zcHRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0ICpzcHRlcCwgdTY0IGdmbiwKIAltYXNrIHw9IChncGEgJiBzaGFkb3dfbm9ucHJlc2VudF9vcl9yc3ZkX21hc2spCiAJCTw8IHNoYWRvd19ub25wcmVzZW50X29yX3JzdmRfbWFza19sZW47CiAKLQlwYWdlX2hlYWRlcihfX3BhKHNwdGVwKSktPm1taW9fY2FjaGVkID0gdHJ1ZTsKLQogCXRyYWNlX21hcmtfbW1pb19zcHRlKHNwdGVwLCBnZm4sIGFjY2VzcywgZ2VuKTsKIAltbXVfc3B0ZV9zZXQoc3B0ZXAsIG1hc2spOwogfQpAQCAtMjEwMyw2ICsyMTAxLDcgQEAgc3RhdGljIHN0cnVjdCBrdm1fbW11X3BhZ2UgKmt2bV9tbXVfYWxsb2NfcGFnZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCBkaXJlY3QKIAkgKiBkZXBlbmRzIG9uIHZhbGlkIHBhZ2VzIGJlaW5nIGFkZGVkIHRvIHRoZSBoZWFkIG9mIHRoZSBsaXN0LiAgU2VlCiAJICogY29tbWVudHMgaW4ga3ZtX3phcF9vYnNvbGV0ZV9wYWdlcygpLgogCSAqLworCXNwLT5tbXVfdmFsaWRfZ2VuID0gdmNwdS0+a3ZtLT5hcmNoLm1tdV92YWxpZF9nZW47CiAJbGlzdF9hZGQoJnNwLT5saW5rLCAmdmNwdS0+a3ZtLT5hcmNoLmFjdGl2ZV9tbXVfcGFnZXMpOwogCWt2bV9tb2RfdXNlZF9tbXVfcGFnZXModmNwdS0+a3ZtLCArMSk7CiAJcmV0dXJuIHNwOwpAQCAtMjI1Miw3ICsyMjUxLDcgQEAgc3RhdGljIHZvaWQga3ZtX21tdV9jb21taXRfemFwX3BhZ2Uoc3RydWN0IGt2bSAqa3ZtLAogI2RlZmluZSBmb3JfZWFjaF92YWxpZF9zcChfa3ZtLCBfc3AsIF9nZm4pCQkJCVwKIAlobGlzdF9mb3JfZWFjaF9lbnRyeShfc3AsCQkJCQlcCiAJICAmKF9rdm0pLT5hcmNoLm1tdV9wYWdlX2hhc2hba3ZtX3BhZ2VfdGFibGVfaGFzaGZuKF9nZm4pXSwgaGFzaF9saW5rKSBcCi0JCWlmIChpc19vYnNvbGV0ZV9zcCgoX2t2bSksIChfc3ApKSB8fCAoX3NwKS0+cm9sZS5pbnZhbGlkKSB7ICAgIFwKKwkJaWYgKGlzX29ic29sZXRlX3NwKChfa3ZtKSwgKF9zcCkpKSB7CQkJXAogCQl9IGVsc2UKIAogI2RlZmluZSBmb3JfZWFjaF9nZm5faW5kaXJlY3RfdmFsaWRfc3AoX2t2bSwgX3NwLCBfZ2ZuKQkJCVwKQEAgLTIzMTEsNyArMjMxMCw4IEBAIHN0YXRpYyB2b2lkIG1tdV9hdWRpdF9kaXNhYmxlKHZvaWQpIHsgfQogCiBzdGF0aWMgYm9vbCBpc19vYnNvbGV0ZV9zcChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fbW11X3BhZ2UgKnNwKQogewotCXJldHVybiB1bmxpa2VseShzcC0+bW11X3ZhbGlkX2dlbiAhPSBrdm0tPmFyY2gubW11X3ZhbGlkX2dlbik7CisJcmV0dXJuIHNwLT5yb2xlLmludmFsaWQgfHwKKwkgICAgICAgdW5saWtlbHkoc3AtPm1tdV92YWxpZF9nZW4gIT0ga3ZtLT5hcmNoLm1tdV92YWxpZF9nZW4pOwogfQogCiBzdGF0aWMgYm9vbCBrdm1fc3luY19wYWdlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9tbXVfcGFnZSAqc3AsCkBAIC0yNTM4LDcgKzI1MzgsNiBAQCBzdGF0aWMgc3RydWN0IGt2bV9tbXVfcGFnZSAqa3ZtX21tdV9nZXRfcGFnZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCWlmIChsZXZlbCA+IFBUX1BBR0VfVEFCTEVfTEVWRUwgJiYgbmVlZF9zeW5jKQogCQkJZmx1c2ggfD0ga3ZtX3N5bmNfcGFnZXModmNwdSwgZ2ZuLCAmaW52YWxpZF9saXN0KTsKIAl9Ci0Jc3AtPm1tdV92YWxpZF9nZW4gPSB2Y3B1LT5rdm0tPmFyY2gubW11X3ZhbGlkX2dlbjsKIAljbGVhcl9wYWdlKHNwLT5zcHQpOwogCXRyYWNlX2t2bV9tbXVfZ2V0X3BhZ2Uoc3AsIHRydWUpOwogCkBAIC0yNzUzLDcgKzI3NTIsMTIgQEAgc3RhdGljIGJvb2wgX19rdm1fbW11X3ByZXBhcmVfemFwX3BhZ2Uoc3RydWN0IGt2bSAqa3ZtLAogCX0gZWxzZSB7CiAJCWxpc3RfbW92ZSgmc3AtPmxpbmssICZrdm0tPmFyY2guYWN0aXZlX21tdV9wYWdlcyk7CiAKLQkJaWYgKCFzcC0+cm9sZS5pbnZhbGlkKQorCQkvKgorCQkgKiBPYnNvbGV0ZSBwYWdlcyBjYW5ub3QgYmUgdXNlZCBvbiBhbnkgdkNQVXMsIHNlZSB0aGUgY29tbWVudAorCQkgKiBpbiBrdm1fbW11X3phcF9hbGxfZmFzdCgpLiAgTm90ZSwgaXNfb2Jzb2xldGVfc3AoKSBhbHNvCisJCSAqIHRyZWF0cyBpbnZhbGlkIHNoYWRvdyBwYWdlcyBhcyBiZWluZyBvYnNvbGV0ZS4KKwkJICovCisJCWlmICghaXNfb2Jzb2xldGVfc3Aoa3ZtLCBzcCkpCiAJCQlrdm1fcmVsb2FkX3JlbW90ZV9tbXVzKGt2bSk7CiAJfQogCkBAIC01MzgzLDcgKzUzODcsNiBAQCBpbnQga3ZtX21tdV9wYWdlX2ZhdWx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3ZhX3QgY3IyLCB1NjQgZXJyb3JfY29kZSwKIAkJICAgICAgIHZvaWQgKmluc24sIGludCBpbnNuX2xlbikKIHsKIAlpbnQgciwgZW11bGF0aW9uX3R5cGUgPSAwOwotCWVudW0gZW11bGF0aW9uX3Jlc3VsdCBlcjsKIAlib29sIGRpcmVjdCA9IHZjcHUtPmFyY2gubW11LT5kaXJlY3RfbWFwOwogCiAJLyogV2l0aCBzaGFkb3cgcGFnZSB0YWJsZXMsIGZhdWx0X2FkZHJlc3MgY29udGFpbnMgYSBHVkEgb3IgbkdQQS4gICovCkBAIC01NDUwLDE5ICs1NDUzLDggQEAgaW50IGt2bV9tbXVfcGFnZV9mYXVsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGd2YV90IGNyMiwgdTY0IGVycm9yX2NvZGUsCiAJCQlyZXR1cm4gMTsKIAl9CiAKLQllciA9IHg4Nl9lbXVsYXRlX2luc3RydWN0aW9uKHZjcHUsIGNyMiwgZW11bGF0aW9uX3R5cGUsIGluc24sIGluc25fbGVuKTsKLQotCXN3aXRjaCAoZXIpIHsKLQljYXNlIEVNVUxBVEVfRE9ORToKLQkJcmV0dXJuIDE7Ci0JY2FzZSBFTVVMQVRFX1VTRVJfRVhJVDoKLQkJKyt2Y3B1LT5zdGF0Lm1taW9fZXhpdHM7Ci0JCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRU1VTEFURV9GQUlMOgotCQlyZXR1cm4gMDsKLQlkZWZhdWx0OgotCQlCVUcoKTsKLQl9CisJcmV0dXJuIHg4Nl9lbXVsYXRlX2luc3RydWN0aW9uKHZjcHUsIGNyMiwgZW11bGF0aW9uX3R5cGUsIGluc24sCisJCQkJICAgICAgIGluc25fbGVuKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGt2bV9tbXVfcGFnZV9mYXVsdCk7CiAKQEAgLTU2ODQsMTIgKzU2NzYsMTEgQEAgaW50IGt2bV9tbXVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAlyZXR1cm4gcmV0OwogfQogCi0KKyNkZWZpbmUgQkFUQ0hfWkFQX1BBR0VTCTEwCiBzdGF0aWMgdm9pZCBrdm1femFwX29ic29sZXRlX3BhZ2VzKHN0cnVjdCBrdm0gKmt2bSkKIHsKIAlzdHJ1Y3Qga3ZtX21tdV9wYWdlICpzcCwgKm5vZGU7Ci0JTElTVF9IRUFEKGludmFsaWRfbGlzdCk7Ci0JaW50IGlnbjsKKwlpbnQgbnJfemFwcGVkLCBiYXRjaCA9IDA7CiAKIHJlc3RhcnQ6CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlX3JldmVyc2Uoc3AsIG5vZGUsCkBAIC01NzAyLDQ2ICs1NjkzLDM5IEBAIHN0YXRpYyB2b2lkIGt2bV96YXBfb2Jzb2xldGVfcGFnZXMoc3RydWN0IGt2bSAqa3ZtKQogCQkJYnJlYWs7CiAKIAkJLyoKLQkJICogRG8gbm90IHJlcGVhdGVkbHkgemFwIGEgcm9vdCBwYWdlIHRvIGF2b2lkIHVubmVjZXNzYXJ5Ci0JCSAqIEtWTV9SRVFfTU1VX1JFTE9BRCwgb3RoZXJ3aXNlIHdlIG1heSBub3QgYmUgYWJsZSB0bwotCQkgKiBwcm9ncmVzczoKLQkJICogICAgdmNwdSAwICAgICAgICAgICAgICAgICAgICAgICAgdmNwdSAxCi0JCSAqICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwgdmNwdV9lbnRlcl9ndWVzdCgpOgotCQkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTogaGFuZGxlIEtWTV9SRVFfTU1VX1JFTE9BRAotCQkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHJlcXVpcmUgbW11LWxvY2sgdG8KLQkJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQgbW11Ci0JCSAqIHJlcGVhdDoKLQkJICogICAgMSk6IHphcCByb290IHBhZ2UgYW5kCi0JCSAqICAgICAgICBzZW5kIEtWTV9SRVFfTU1VX1JFTE9BRAotCQkgKgotCQkgKiAgICAyKTogaWYgKGNvbmRfcmVzY2hlZF9sb2NrKG1tdS1sb2NrKSkKLQkJICoKLQkJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgMik6IGhvbGQgbW11LWxvY2sgYW5kIGxvYWQgbW11Ci0JCSAqCi0JCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMpOiBzZWUgS1ZNX1JFUV9NTVVfUkVMT0FEIGJpdAotCQkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gdmNwdS0+cmVxdWVzdHMgaXMgc2V0Ci0JCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHJldHVybiAxIHRvIGNhbGwKLQkJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZjcHVfZW50ZXJfZ3Vlc3QoKSBhZ2Fpbi4KLQkJICogICAgICAgICAgICBnb3RvIHJlcGVhdDsKLQkJICoKLQkJICogU2luY2Ugd2UgYXJlIHJldmVyc2VseSB3YWxraW5nIHRoZSBsaXN0IGFuZCB0aGUgaW52YWxpZAotCQkgKiBsaXN0IHdpbGwgYmUgbW92ZWQgdG8gdGhlIGhlYWQsIHNraXAgdGhlIGludmFsaWQgcGFnZQotCQkgKiBjYW4gaGVscCB1cyB0byBhdm9pZCB0aGUgaW5maW5pdHkgbGlzdCB3YWxraW5nLgorCQkgKiBTa2lwIGludmFsaWQgcGFnZXMgd2l0aCBhIG5vbi16ZXJvIHJvb3QgY291bnQsIHphcHBpbmcgcGFnZXMKKwkJICogd2l0aCBhIG5vbi16ZXJvIHJvb3QgY291bnQgd2lsbCBuZXZlciBzdWNjZWVkLCBpLmUuIHRoZSBwYWdlCisJCSAqIHdpbGwgZ2V0IHRocm93biBiYWNrIG9uIGFjdGl2ZV9tbXVfcGFnZXMgYW5kIHdlJ2xsIGdldCBzdHVjaworCQkgKiBpbiBhbiBpbmZpbml0ZSBsb29wLgogCQkgKi8KLQkJaWYgKHNwLT5yb2xlLmludmFsaWQpCisJCWlmIChzcC0+cm9sZS5pbnZhbGlkICYmIHNwLT5yb290X2NvdW50KQogCQkJY29udGludWU7CiAKLQkJaWYgKG5lZWRfcmVzY2hlZCgpIHx8IHNwaW5fbmVlZGJyZWFrKCZrdm0tPm1tdV9sb2NrKSkgewotCQkJa3ZtX21tdV9jb21taXRfemFwX3BhZ2Uoa3ZtLCAmaW52YWxpZF9saXN0KTsKLQkJCWNvbmRfcmVzY2hlZF9sb2NrKCZrdm0tPm1tdV9sb2NrKTsKKwkJLyoKKwkJICogTm8gbmVlZCB0byBmbHVzaCB0aGUgVExCIHNpbmNlIHdlJ3JlIG9ubHkgemFwcGluZyBzaGFkb3cKKwkJICogcGFnZXMgd2l0aCBhbiBvYnNvbGV0ZSBnZW5lcmF0aW9uIG51bWJlciBhbmQgYWxsIHZDUFVTIGhhdmUKKwkJICogbG9hZGVkIGEgbmV3IHJvb3QsIGkuZS4gdGhlIHNoYWRvdyBwYWdlcyBiZWluZyB6YXBwZWQgY2Fubm90CisJCSAqIGJlIGluIGFjdGl2ZSB1c2UgYnkgdGhlIGd1ZXN0LgorCQkgKi8KKwkJaWYgKGJhdGNoID49IEJBVENIX1pBUF9QQUdFUyAmJgorCQkgICAgY29uZF9yZXNjaGVkX2xvY2soJmt2bS0+bW11X2xvY2spKSB7CisJCQliYXRjaCA9IDA7CiAJCQlnb3RvIHJlc3RhcnQ7CiAJCX0KIAotCQlpZiAoX19rdm1fbW11X3ByZXBhcmVfemFwX3BhZ2Uoa3ZtLCBzcCwgJmludmFsaWRfbGlzdCwgJmlnbikpCisJCWlmIChfX2t2bV9tbXVfcHJlcGFyZV96YXBfcGFnZShrdm0sIHNwLAorCQkJCSZrdm0tPmFyY2guemFwcGVkX29ic29sZXRlX3BhZ2VzLCAmbnJfemFwcGVkKSkgeworCQkJYmF0Y2ggKz0gbnJfemFwcGVkOwogCQkJZ290byByZXN0YXJ0OworCQl9CiAJfQogCi0Ja3ZtX21tdV9jb21taXRfemFwX3BhZ2Uoa3ZtLCAmaW52YWxpZF9saXN0KTsKKwkvKgorCSAqIFRyaWdnZXIgYSByZW1vdGUgVExCIGZsdXNoIGJlZm9yZSBmcmVlaW5nIHRoZSBwYWdlIHRhYmxlcyB0byBlbnN1cmUKKwkgKiBLVk0gaXMgbm90IGluIHRoZSBtaWRkbGUgb2YgYSBsb2NrbGVzcyBzaGFkb3cgcGFnZSB0YWJsZSB3YWxrLCB3aGljaAorCSAqIG1heSByZWZlcmVuY2UgdGhlIHBhZ2VzLgorCSAqLworCWt2bV9tbXVfY29tbWl0X3phcF9wYWdlKGt2bSwgJmt2bS0+YXJjaC56YXBwZWRfb2Jzb2xldGVfcGFnZXMpOwogfQogCiAvKgpAQCAtNTc1NSwxMyArNTczOSwzOSBAQCBzdGF0aWMgdm9pZCBrdm1femFwX29ic29sZXRlX3BhZ2VzKHN0cnVjdCBrdm0gKmt2bSkKICAqLwogc3RhdGljIHZvaWQga3ZtX21tdV96YXBfYWxsX2Zhc3Qoc3RydWN0IGt2bSAqa3ZtKQogeworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmt2bS0+c2xvdHNfbG9jayk7CisKIAlzcGluX2xvY2soJmt2bS0+bW11X2xvY2spOwotCWt2bS0+YXJjaC5tbXVfdmFsaWRfZ2VuKys7CisJdHJhY2Vfa3ZtX21tdV96YXBfYWxsX2Zhc3Qoa3ZtKTsKKworCS8qCisJICogVG9nZ2xlIG1tdV92YWxpZF9nZW4gYmV0d2VlbiAnMCcgYW5kICcxJy4gIEJlY2F1c2Ugc2xvdHNfbG9jayBpcworCSAqIGhlbGQgZm9yIHRoZSBlbnRpcmUgZHVyYXRpb24gb2YgemFwcGluZyBvYnNvbGV0ZSBwYWdlcywgaXQncworCSAqIGltcG9zc2libGUgZm9yIHRoZXJlIHRvIGJlIG11bHRpcGxlIGludmFsaWQgZ2VuZXJhdGlvbnMgYXNzb2NpYXRlZAorCSAqIHdpdGggKnZhbGlkKiBzaGFkb3cgcGFnZXMgYXQgYW55IGdpdmVuIHRpbWUsIGkuZS4gdGhlcmUgaXMgZXhhY3RseQorCSAqIG9uZSB2YWxpZCBnZW5lcmF0aW9uIGFuZCAoYXQgbW9zdCkgb25lIGludmFsaWQgZ2VuZXJhdGlvbi4KKwkgKi8KKwlrdm0tPmFyY2gubW11X3ZhbGlkX2dlbiA9IGt2bS0+YXJjaC5tbXVfdmFsaWRfZ2VuID8gMCA6IDE7CisKKwkvKgorCSAqIE5vdGlmeSBhbGwgdmNwdXMgdG8gcmVsb2FkIGl0cyBzaGFkb3cgcGFnZSB0YWJsZSBhbmQgZmx1c2ggVExCLgorCSAqIFRoZW4gYWxsIHZjcHVzIHdpbGwgc3dpdGNoIHRvIG5ldyBzaGFkb3cgcGFnZSB0YWJsZSB3aXRoIHRoZSBuZXcKKwkgKiBtbXVfdmFsaWRfZ2VuLgorCSAqCisJICogTm90ZTogd2UgbmVlZCB0byBkbyB0aGlzIHVuZGVyIHRoZSBwcm90ZWN0aW9uIG9mIG1tdV9sb2NrLAorCSAqIG90aGVyd2lzZSwgdmNwdSB3b3VsZCBwdXJnZSBzaGFkb3cgcGFnZSBidXQgbWlzcyB0bGIgZmx1c2guCisJICovCisJa3ZtX3JlbG9hZF9yZW1vdGVfbW11cyhrdm0pOwogCiAJa3ZtX3phcF9vYnNvbGV0ZV9wYWdlcyhrdm0pOwogCXNwaW5fdW5sb2NrKCZrdm0tPm1tdV9sb2NrKTsKIH0KIAorc3RhdGljIGJvb2wga3ZtX2hhc196YXBwZWRfb2Jzb2xldGVfcGFnZXMoc3RydWN0IGt2bSAqa3ZtKQoreworCXJldHVybiB1bmxpa2VseSghbGlzdF9lbXB0eV9jYXJlZnVsKCZrdm0tPmFyY2guemFwcGVkX29ic29sZXRlX3BhZ2VzKSk7Cit9CisKIHN0YXRpYyB2b2lkIGt2bV9tbXVfaW52YWxpZGF0ZV96YXBfcGFnZXNfaW5fbWVtc2xvdChzdHJ1Y3Qga3ZtICprdm0sCiAJCQlzdHJ1Y3Qga3ZtX21lbW9yeV9zbG90ICpzbG90LAogCQkJc3RydWN0IGt2bV9wYWdlX3RyYWNrX25vdGlmaWVyX25vZGUgKm5vZGUpCkBAIC01OTU5LDcgKzU5NjksNyBAQCB2b2lkIGt2bV9tbXVfc2xvdF9zZXRfZGlydHkoc3RydWN0IGt2bSAqa3ZtLAogfQogRVhQT1JUX1NZTUJPTF9HUEwoa3ZtX21tdV9zbG90X3NldF9kaXJ0eSk7CiAKLXN0YXRpYyB2b2lkIF9fa3ZtX21tdV96YXBfYWxsKHN0cnVjdCBrdm0gKmt2bSwgYm9vbCBtbWlvX29ubHkpCit2b2lkIGt2bV9tbXVfemFwX2FsbChzdHJ1Y3Qga3ZtICprdm0pCiB7CiAJc3RydWN0IGt2bV9tbXVfcGFnZSAqc3AsICpub2RlOwogCUxJU1RfSEVBRChpbnZhbGlkX2xpc3QpOwpAQCAtNTk2OCwxNCArNTk3OCwxMCBAQCBzdGF0aWMgdm9pZCBfX2t2bV9tbXVfemFwX2FsbChzdHJ1Y3Qga3ZtICprdm0sIGJvb2wgbW1pb19vbmx5KQogCXNwaW5fbG9jaygma3ZtLT5tbXVfbG9jayk7CiByZXN0YXJ0OgogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShzcCwgbm9kZSwgJmt2bS0+YXJjaC5hY3RpdmVfbW11X3BhZ2VzLCBsaW5rKSB7Ci0JCWlmIChtbWlvX29ubHkgJiYgIXNwLT5tbWlvX2NhY2hlZCkKLQkJCWNvbnRpbnVlOwogCQlpZiAoc3AtPnJvbGUuaW52YWxpZCAmJiBzcC0+cm9vdF9jb3VudCkKIAkJCWNvbnRpbnVlOwotCQlpZiAoX19rdm1fbW11X3ByZXBhcmVfemFwX3BhZ2Uoa3ZtLCBzcCwgJmludmFsaWRfbGlzdCwgJmlnbikpIHsKLQkJCVdBUk5fT05fT05DRShtbWlvX29ubHkpOworCQlpZiAoX19rdm1fbW11X3ByZXBhcmVfemFwX3BhZ2Uoa3ZtLCBzcCwgJmludmFsaWRfbGlzdCwgJmlnbikpCiAJCQlnb3RvIHJlc3RhcnQ7Ci0JCX0KIAkJaWYgKGNvbmRfcmVzY2hlZF9sb2NrKCZrdm0tPm1tdV9sb2NrKSkKIAkJCWdvdG8gcmVzdGFydDsKIAl9CkBAIC01OTg0LDExICs1OTkwLDYgQEAgc3RhdGljIHZvaWQgX19rdm1fbW11X3phcF9hbGwoc3RydWN0IGt2bSAqa3ZtLCBib29sIG1taW9fb25seSkKIAlzcGluX3VubG9jaygma3ZtLT5tbXVfbG9jayk7CiB9CiAKLXZvaWQga3ZtX21tdV96YXBfYWxsKHN0cnVjdCBrdm0gKmt2bSkKLXsKLQlyZXR1cm4gX19rdm1fbW11X3phcF9hbGwoa3ZtLCBmYWxzZSk7Ci19Ci0KIHZvaWQga3ZtX21tdV9pbnZhbGlkYXRlX21taW9fc3B0ZXMoc3RydWN0IGt2bSAqa3ZtLCB1NjQgZ2VuKQogewogCVdBUk5fT04oZ2VuICYgS1ZNX01FTVNMT1RfR0VOX1VQREFURV9JTl9QUk9HUkVTUyk7CkBAIC02MDEwLDcgKzYwMTEsNyBAQCB2b2lkIGt2bV9tbXVfaW52YWxpZGF0ZV9tbWlvX3NwdGVzKHN0cnVjdCBrdm0gKmt2bSwgdTY0IGdlbikKIAkgKi8KIAlpZiAodW5saWtlbHkoZ2VuID09IDApKSB7CiAJCWt2bV9kZWJ1Z19yYXRlbGltaXRlZCgia3ZtOiB6YXBwaW5nIHNoYWRvdyBwYWdlcyBmb3IgbW1pbyBnZW5lcmF0aW9uIHdyYXBhcm91bmRcbiIpOwotCQlfX2t2bV9tbXVfemFwX2FsbChrdm0sIHRydWUpOworCQlrdm1fbW11X3phcF9hbGxfZmFzdChrdm0pOwogCX0KIH0KIApAQCAtNjA0MSwxNiArNjA0MiwyNCBAQCBtbXVfc2hyaW5rX3NjYW4oc3RydWN0IHNocmlua2VyICpzaHJpbmssIHN0cnVjdCBzaHJpbmtfY29udHJvbCAqc2MpCiAJCSAqIHdhbnQgdG8gc2hyaW5rIGEgVk0gdGhhdCBvbmx5IHN0YXJ0ZWQgdG8gcG9wdWxhdGUgaXRzIE1NVQogCQkgKiBhbnl3YXkuCiAJCSAqLwotCQlpZiAoIWt2bS0+YXJjaC5uX3VzZWRfbW11X3BhZ2VzKQorCQlpZiAoIWt2bS0+YXJjaC5uX3VzZWRfbW11X3BhZ2VzICYmCisJCSAgICAha3ZtX2hhc196YXBwZWRfb2Jzb2xldGVfcGFnZXMoa3ZtKSkKIAkJCWNvbnRpbnVlOwogCiAJCWlkeCA9IHNyY3VfcmVhZF9sb2NrKCZrdm0tPnNyY3UpOwogCQlzcGluX2xvY2soJmt2bS0+bW11X2xvY2spOwogCisJCWlmIChrdm1faGFzX3phcHBlZF9vYnNvbGV0ZV9wYWdlcyhrdm0pKSB7CisJCQlrdm1fbW11X2NvbW1pdF96YXBfcGFnZShrdm0sCisJCQkgICAgICAma3ZtLT5hcmNoLnphcHBlZF9vYnNvbGV0ZV9wYWdlcyk7CisJCQlnb3RvIHVubG9jazsKKwkJfQorCiAJCWlmIChwcmVwYXJlX3phcF9vbGRlc3RfbW11X3BhZ2Uoa3ZtLCAmaW52YWxpZF9saXN0KSkKIAkJCWZyZWVkKys7CiAJCWt2bV9tbXVfY29tbWl0X3phcF9wYWdlKGt2bSwgJmludmFsaWRfbGlzdCk7CiAKK3VubG9jazoKIAkJc3Bpbl91bmxvY2soJmt2bS0+bW11X2xvY2spOwogCQlzcmN1X3JlYWRfdW5sb2NrKCZrdm0tPnNyY3UsIGlkeCk7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9tbXV0cmFjZS5oIGIvYXJjaC94ODYva3ZtL21tdXRyYWNlLmgKaW5kZXggZDgwMDFiNC4uN2NhODgzMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL21tdXRyYWNlLmgKKysrIGIvYXJjaC94ODYva3ZtL21tdXRyYWNlLmgKQEAgLTgsMTYgKzgsMTggQEAKICN1bmRlZiBUUkFDRV9TWVNURU0KICNkZWZpbmUgVFJBQ0VfU1lTVEVNIGt2bW1tdQogCi0jZGVmaW5lIEtWTV9NTVVfUEFHRV9GSUVMRFMgXAotCV9fZmllbGQoX191NjQsIGdmbikgXAotCV9fZmllbGQoX191MzIsIHJvbGUpIFwKLQlfX2ZpZWxkKF9fdTMyLCByb290X2NvdW50KSBcCisjZGVmaW5lIEtWTV9NTVVfUEFHRV9GSUVMRFMJCVwKKwlfX2ZpZWxkKF9fdTgsIG1tdV92YWxpZF9nZW4pCVwKKwlfX2ZpZWxkKF9fdTY0LCBnZm4pCQlcCisJX19maWVsZChfX3UzMiwgcm9sZSkJCVwKKwlfX2ZpZWxkKF9fdTMyLCByb290X2NvdW50KQlcCiAJX19maWVsZChib29sLCB1bnN5bmMpCiAKLSNkZWZpbmUgS1ZNX01NVV9QQUdFX0FTU0lHTihzcCkJCQkgICAgIFwKLQlfX2VudHJ5LT5nZm4gPSBzcC0+Z2ZuOwkJCSAgICAgXAotCV9fZW50cnktPnJvbGUgPSBzcC0+cm9sZS53b3JkOwkJICAgICBcCi0JX19lbnRyeS0+cm9vdF9jb3VudCA9IHNwLT5yb290X2NvdW50OyAgICAgICAgXAorI2RlZmluZSBLVk1fTU1VX1BBR0VfQVNTSUdOKHNwKQkJCQlcCisJX19lbnRyeS0+bW11X3ZhbGlkX2dlbiA9IHNwLT5tbXVfdmFsaWRfZ2VuOwlcCisJX19lbnRyeS0+Z2ZuID0gc3AtPmdmbjsJCQkJXAorCV9fZW50cnktPnJvbGUgPSBzcC0+cm9sZS53b3JkOwkJCVwKKwlfX2VudHJ5LT5yb290X2NvdW50ID0gc3AtPnJvb3RfY291bnQ7CQlcCiAJX19lbnRyeS0+dW5zeW5jID0gc3AtPnVuc3luYzsKIAogI2RlZmluZSBLVk1fTU1VX1BBR0VfUFJJTlRLKCkgKHsJCQkJICAgICAgICBcCkBAIC0yOSw4ICszMSw5IEBACiAJCQkJCQkJCSAgICAgICAgXAogCXJvbGUud29yZCA9IF9fZW50cnktPnJvbGU7CQkJCQlcCiAJCQkJCQkJCQlcCi0JdHJhY2Vfc2VxX3ByaW50ZihwLCAic3AgZ2ZuICVsbHggbCV1ICV1LWJ5dGUgcSV1JXMgJXMlcyIJXAorCXRyYWNlX3NlcV9wcmludGYocCwgInNwIGdlbiAldSBnZm4gJWxseCBsJXUgJXUtYnl0ZSBxJXUlcyAlcyVzIglcCiAJCQkgIiAlc254ZSAlc2FkIHJvb3QgJXUgJXMlYyIsCQkJXAorCQkJIF9fZW50cnktPm1tdV92YWxpZF9nZW4sCQkJXAogCQkJIF9fZW50cnktPmdmbiwgcm9sZS5sZXZlbCwJCQlcCiAJCQkgcm9sZS5ncHRlX2lzXzhfYnl0ZXMgPyA4IDogNCwJCQlcCiAJCQkgcm9sZS5xdWFkcmFudCwJCQkJCVwKQEAgLTI4MCw2ICsyODMsMjcgQEAgVFJBQ0VfRVZFTlQoCiApOwogCiBUUkFDRV9FVkVOVCgKKwlrdm1fbW11X3phcF9hbGxfZmFzdCwKKwlUUF9QUk9UTyhzdHJ1Y3Qga3ZtICprdm0pLAorCVRQX0FSR1Moa3ZtKSwKKworCVRQX1NUUlVDVF9fZW50cnkoCisJCV9fZmllbGQoX191OCwgbW11X3ZhbGlkX2dlbikKKwkJX19maWVsZCh1bnNpZ25lZCBpbnQsIG1tdV91c2VkX3BhZ2VzKQorCSksCisKKwlUUF9mYXN0X2Fzc2lnbigKKwkJX19lbnRyeS0+bW11X3ZhbGlkX2dlbiA9IGt2bS0+YXJjaC5tbXVfdmFsaWRfZ2VuOworCQlfX2VudHJ5LT5tbXVfdXNlZF9wYWdlcyA9IGt2bS0+YXJjaC5uX3VzZWRfbW11X3BhZ2VzOworCSksCisKKwlUUF9wcmludGsoImt2bS1tbXUtdmFsaWQtZ2VuICV1IHVzZWRfcGFnZXMgJXgiLAorCQkgIF9fZW50cnktPm1tdV92YWxpZF9nZW4sIF9fZW50cnktPm1tdV91c2VkX3BhZ2VzCisJKQorKTsKKworCitUUkFDRV9FVkVOVCgKIAljaGVja19tbWlvX3NwdGUsCiAJVFBfUFJPVE8odTY0IHNwdGUsIHVuc2lnbmVkIGludCBrdm1fZ2VuLCB1bnNpZ25lZCBpbnQgc3B0ZV9nZW4pLAogCVRQX0FSR1Moc3B0ZSwga3ZtX2dlbiwgc3B0ZV9nZW4pLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3N2bS5jIGIvYXJjaC94ODYva3ZtL3N2bS5jCmluZGV4IDA0ZmUyMTguLmY4ZWNiNmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS9zdm0uYworKysgYi9hcmNoL3g4Ni9rdm0vc3ZtLmMKQEAgLTc3NywxNyArNzc3LDE4IEBAIHN0YXRpYyBpbnQgc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJCXN2bS0+bmV4dF9yaXAgPSBzdm0tPnZtY2ItPmNvbnRyb2wubmV4dF9yaXA7CiAJfQogCi0JaWYgKCFzdm0tPm5leHRfcmlwKQotCQlyZXR1cm4ga3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb24odmNwdSwgRU1VTFRZUEVfU0tJUCk7Ci0KLQlpZiAoc3ZtLT5uZXh0X3JpcCAtIGt2bV9yaXBfcmVhZCh2Y3B1KSA+IE1BWF9JTlNUX1NJWkUpCi0JCXByaW50ayhLRVJOX0VSUiAiJXM6IGlwIDB4JWx4IG5leHQgMHglbGx4XG4iLAotCQkgICAgICAgX19mdW5jX18sIGt2bV9yaXBfcmVhZCh2Y3B1KSwgc3ZtLT5uZXh0X3JpcCk7Ci0KLQlrdm1fcmlwX3dyaXRlKHZjcHUsIHN2bS0+bmV4dF9yaXApOworCWlmICghc3ZtLT5uZXh0X3JpcCkgeworCQlpZiAoIWt2bV9lbXVsYXRlX2luc3RydWN0aW9uKHZjcHUsIEVNVUxUWVBFX1NLSVApKQorCQkJcmV0dXJuIDA7CisJfSBlbHNlIHsKKwkJaWYgKHN2bS0+bmV4dF9yaXAgLSBrdm1fcmlwX3JlYWQodmNwdSkgPiBNQVhfSU5TVF9TSVpFKQorCQkJcHJfZXJyKCIlczogaXAgMHglbHggbmV4dCAweCVsbHhcbiIsCisJCQkgICAgICAgX19mdW5jX18sIGt2bV9yaXBfcmVhZCh2Y3B1KSwgc3ZtLT5uZXh0X3JpcCk7CisJCWt2bV9yaXBfd3JpdGUodmNwdSwgc3ZtLT5uZXh0X3JpcCk7CisJfQogCXN2bV9zZXRfaW50ZXJydXB0X3NoYWRvdyh2Y3B1LCAwKTsKIAotCXJldHVybiBFTVVMQVRFX0RPTkU7CisJcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyB2b2lkIHN2bV9xdWV1ZV9leGNlcHRpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQpAQCAtMTUzOSw2ICsxNTQwLDcgQEAgc3RhdGljIHZvaWQgaW5pdF92bWNiKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQogCXNldF9pbnRlcmNlcHQoc3ZtLCBJTlRFUkNFUFRfU0tJTklUKTsKIAlzZXRfaW50ZXJjZXB0KHN2bSwgSU5URVJDRVBUX1dCSU5WRCk7CiAJc2V0X2ludGVyY2VwdChzdm0sIElOVEVSQ0VQVF9YU0VUQlYpOworCXNldF9pbnRlcmNlcHQoc3ZtLCBJTlRFUkNFUFRfUkRQUlUpOwogCXNldF9pbnRlcmNlcHQoc3ZtLCBJTlRFUkNFUFRfUlNNKTsKIAogCWlmICgha3ZtX213YWl0X2luX2d1ZXN0KHN2bS0+dmNwdS5rdm0pKSB7CkBAIC0yNzY4LDE3ICsyNzcwLDE4IEBAIHN0YXRpYyBpbnQgZ3BfaW50ZXJjZXB0aW9uKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQogewogCXN0cnVjdCBrdm1fdmNwdSAqdmNwdSA9ICZzdm0tPnZjcHU7CiAJdTMyIGVycm9yX2NvZGUgPSBzdm0tPnZtY2ItPmNvbnRyb2wuZXhpdF9pbmZvXzE7Ci0JaW50IGVyOwogCiAJV0FSTl9PTl9PTkNFKCFlbmFibGVfdm13YXJlX2JhY2tkb29yKTsKIAotCWVyID0ga3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb24odmNwdSwKLQkJRU1VTFRZUEVfVk1XQVJFIHwgRU1VTFRZUEVfTk9fVURfT05fRkFJTCk7Ci0JaWYgKGVyID09IEVNVUxBVEVfVVNFUl9FWElUKQotCQlyZXR1cm4gMDsKLQllbHNlIGlmIChlciAhPSBFTVVMQVRFX0RPTkUpCisJLyoKKwkgKiBWTXdhcmUgYmFja2Rvb3IgZW11bGF0aW9uIG9uICNHUCBpbnRlcmNlcHRpb24gb25seSBoYW5kbGVzIElOe1N9LAorCSAqIE9VVHtTfSwgYW5kIFJEUE1DLCBub25lIG9mIHdoaWNoIGdlbmVyYXRlIGEgbm9uLXplcm8gZXJyb3IgY29kZS4KKwkgKi8KKwlpZiAoZXJyb3JfY29kZSkgewogCQlrdm1fcXVldWVfZXhjZXB0aW9uX2UodmNwdSwgR1BfVkVDVE9SLCBlcnJvcl9jb2RlKTsKLQlyZXR1cm4gMTsKKwkJcmV0dXJuIDE7CisJfQorCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LCBFTVVMVFlQRV9WTVdBUkVfR1ApOwogfQogCiBzdGF0aWMgYm9vbCBpc19lcnJhdHVtXzM4Myh2b2lkKQpAQCAtMjg3Niw3ICsyODc5LDcgQEAgc3RhdGljIGludCBpb19pbnRlcmNlcHRpb24oc3RydWN0IHZjcHVfc3ZtICpzdm0pCiAJc3RyaW5nID0gKGlvX2luZm8gJiBTVk1fSU9JT19TVFJfTUFTSykgIT0gMDsKIAlpbiA9IChpb19pbmZvICYgU1ZNX0lPSU9fVFlQRV9NQVNLKSAhPSAwOwogCWlmIChzdHJpbmcpCi0JCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LCAwKSA9PSBFTVVMQVRFX0RPTkU7CisJCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LCAwKTsKIAogCXBvcnQgPSBpb19pbmZvID4+IDE2OwogCXNpemUgPSAoaW9faW5mbyAmIFNWTV9JT0lPX1NJWkVfTUFTSykgPj4gU1ZNX0lPSU9fU0laRV9TSElGVDsKQEAgLTM4MzAsNiArMzgzMywxMiBAQCBzdGF0aWMgaW50IHhzZXRidl9pbnRlcmNlcHRpb24oc3RydWN0IHZjcHVfc3ZtICpzdm0pCiAJcmV0dXJuIDE7CiB9CiAKK3N0YXRpYyBpbnQgcmRwcnVfaW50ZXJjZXB0aW9uKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQoreworCWt2bV9xdWV1ZV9leGNlcHRpb24oJnN2bS0+dmNwdSwgVURfVkVDVE9SKTsKKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIGludCB0YXNrX3N3aXRjaF9pbnRlcmNlcHRpb24oc3RydWN0IHZjcHVfc3ZtICpzdm0pCiB7CiAJdTE2IHRzc19zZWxlY3RvcjsKQEAgLTM4ODMsMjQgKzM4OTIsMTUgQEAgc3RhdGljIGludCB0YXNrX3N3aXRjaF9pbnRlcmNlcHRpb24oc3RydWN0IHZjcHVfc3ZtICpzdm0pCiAJICAgIGludF90eXBlID09IFNWTV9FWElUSU5USU5GT19UWVBFX1NPRlQgfHwKIAkgICAgKGludF90eXBlID09IFNWTV9FWElUSU5USU5GT19UWVBFX0VYRVBUICYmCiAJICAgICAoaW50X3ZlYyA9PSBPRl9WRUNUT1IgfHwgaW50X3ZlYyA9PSBCUF9WRUNUT1IpKSkgewotCQlpZiAoc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbigmc3ZtLT52Y3B1KSAhPSBFTVVMQVRFX0RPTkUpCi0JCQlnb3RvIGZhaWw7CisJCWlmICghc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbigmc3ZtLT52Y3B1KSkKKwkJCXJldHVybiAwOwogCX0KIAogCWlmIChpbnRfdHlwZSAhPSBTVk1fRVhJVElOVElORk9fVFlQRV9TT0ZUKQogCQlpbnRfdmVjID0gLTE7CiAKLQlpZiAoa3ZtX3Rhc2tfc3dpdGNoKCZzdm0tPnZjcHUsIHRzc19zZWxlY3RvciwgaW50X3ZlYywgcmVhc29uLAotCQkJCWhhc19lcnJvcl9jb2RlLCBlcnJvcl9jb2RlKSA9PSBFTVVMQVRFX0ZBSUwpCi0JCWdvdG8gZmFpbDsKLQotCXJldHVybiAxOwotCi1mYWlsOgotCXN2bS0+dmNwdS5ydW4tPmV4aXRfcmVhc29uID0gS1ZNX0VYSVRfSU5URVJOQUxfRVJST1I7Ci0Jc3ZtLT52Y3B1LnJ1bi0+aW50ZXJuYWwuc3ViZXJyb3IgPSBLVk1fSU5URVJOQUxfRVJST1JfRU1VTEFUSU9OOwotCXN2bS0+dmNwdS5ydW4tPmludGVybmFsLm5kYXRhID0gMDsKLQlyZXR1cm4gMDsKKwlyZXR1cm4ga3ZtX3Rhc2tfc3dpdGNoKCZzdm0tPnZjcHUsIHRzc19zZWxlY3RvciwgaW50X3ZlYywgcmVhc29uLAorCQkJICAgICAgIGhhc19lcnJvcl9jb2RlLCBlcnJvcl9jb2RlKTsKIH0KIAogc3RhdGljIGludCBjcHVpZF9pbnRlcmNlcHRpb24oc3RydWN0IHZjcHVfc3ZtICpzdm0pCkBAIC0zOTIxLDcgKzM5MjEsNyBAQCBzdGF0aWMgaW50IGlyZXRfaW50ZXJjZXB0aW9uKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQogc3RhdGljIGludCBpbnZscGdfaW50ZXJjZXB0aW9uKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQogewogCWlmICghc3RhdGljX2NwdV9oYXMoWDg2X0ZFQVRVUkVfREVDT0RFQVNTSVNUUykpCi0JCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbigmc3ZtLT52Y3B1LCAwKSA9PSBFTVVMQVRFX0RPTkU7CisJCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbigmc3ZtLT52Y3B1LCAwKTsKIAogCWt2bV9tbXVfaW52bHBnKCZzdm0tPnZjcHUsIHN2bS0+dm1jYi0+Y29udHJvbC5leGl0X2luZm9fMSk7CiAJcmV0dXJuIGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKCZzdm0tPnZjcHUpOwpAQCAtMzkyOSwxMyArMzkyOSwxMiBAQCBzdGF0aWMgaW50IGludmxwZ19pbnRlcmNlcHRpb24oc3RydWN0IHZjcHVfc3ZtICpzdm0pCiAKIHN0YXRpYyBpbnQgZW11bGF0ZV9vbl9pbnRlcmNlcHRpb24oc3RydWN0IHZjcHVfc3ZtICpzdm0pCiB7Ci0JcmV0dXJuIGt2bV9lbXVsYXRlX2luc3RydWN0aW9uKCZzdm0tPnZjcHUsIDApID09IEVNVUxBVEVfRE9ORTsKKwlyZXR1cm4ga3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb24oJnN2bS0+dmNwdSwgMCk7CiB9CiAKIHN0YXRpYyBpbnQgcnNtX2ludGVyY2VwdGlvbihzdHJ1Y3QgdmNwdV9zdm0gKnN2bSkKIHsKLQlyZXR1cm4ga3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb25fZnJvbV9idWZmZXIoJnN2bS0+dmNwdSwKLQkJCQkJcnNtX2luc19ieXRlcywgMikgPT0gRU1VTEFURV9ET05FOworCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbl9mcm9tX2J1ZmZlcigmc3ZtLT52Y3B1LCByc21faW5zX2J5dGVzLCAyKTsKIH0KIAogc3RhdGljIGludCByZHBtY19pbnRlcmNlcHRpb24oc3RydWN0IHZjcHVfc3ZtICpzdm0pCkBAIC00NzI0LDcgKzQ3MjMsNyBAQCBzdGF0aWMgaW50IGF2aWNfdW5hY2NlbGVyYXRlZF9hY2Nlc3NfaW50ZXJjZXB0aW9uKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQogCQlyZXQgPSBhdmljX3VuYWNjZWxfdHJhcF93cml0ZShzdm0pOwogCX0gZWxzZSB7CiAJCS8qIEhhbmRsaW5nIEZhdWx0ICovCi0JCXJldCA9IChrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbigmc3ZtLT52Y3B1LCAwKSA9PSBFTVVMQVRFX0RPTkUpOworCQlyZXQgPSBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbigmc3ZtLT52Y3B1LCAwKTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtNDc5MSw2ICs0NzkwLDcgQEAgc3RhdGljIGludCAoKmNvbnN0IHN2bV9leGl0X2hhbmRsZXJzW10pKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKSA9IHsKIAlbU1ZNX0VYSVRfTU9OSVRPUl0JCQk9IG1vbml0b3JfaW50ZXJjZXB0aW9uLAogCVtTVk1fRVhJVF9NV0FJVF0JCQk9IG13YWl0X2ludGVyY2VwdGlvbiwKIAlbU1ZNX0VYSVRfWFNFVEJWXQkJCT0geHNldGJ2X2ludGVyY2VwdGlvbiwKKwlbU1ZNX0VYSVRfUkRQUlVdCQkJPSByZHBydV9pbnRlcmNlcHRpb24sCiAJW1NWTV9FWElUX05QRl0JCQkJPSBucGZfaW50ZXJjZXB0aW9uLAogCVtTVk1fRVhJVF9SU01dICAgICAgICAgICAgICAgICAgICAgICAgICA9IHJzbV9pbnRlcmNlcHRpb24sCiAJW1NWTV9FWElUX0FWSUNfSU5DT01QTEVURV9JUEldCQk9IGF2aWNfaW5jb21wbGV0ZV9pcGlfaW50ZXJjZXB0aW9uLApAQCAtNzA5OSwxMyArNzA5OSw2IEBAIHN0YXRpYyBpbnQgc3ZtX3VucmVnaXN0ZXJfZW5jX3JlZ2lvbihzdHJ1Y3Qga3ZtICprdm0sCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBuZXN0ZWRfZW5hYmxlX2V2bWNzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKLQkJCQkgICB1aW50MTZfdCAqdm1jc192ZXJzaW9uKQotewotCS8qIEludGVsLW9ubHkgZmVhdHVyZSAqLwotCXJldHVybiAtRU5PREVWOwotfQotCiBzdGF0aWMgYm9vbCBzdm1fbmVlZF9lbXVsYXRpb25fb25fcGFnZV9mYXVsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJdW5zaWduZWQgbG9uZyBjcjQgPSBrdm1fcmVhZF9jcjQodmNwdSk7CkBAIC03MzExLDcgKzczMDQsNyBAQCBzdGF0aWMgc3RydWN0IGt2bV94ODZfb3BzIHN2bV94ODZfb3BzIF9fcm9fYWZ0ZXJfaW5pdCA9IHsKIAkubWVtX2VuY19yZWdfcmVnaW9uID0gc3ZtX3JlZ2lzdGVyX2VuY19yZWdpb24sCiAJLm1lbV9lbmNfdW5yZWdfcmVnaW9uID0gc3ZtX3VucmVnaXN0ZXJfZW5jX3JlZ2lvbiwKIAotCS5uZXN0ZWRfZW5hYmxlX2V2bWNzID0gbmVzdGVkX2VuYWJsZV9ldm1jcywKKwkubmVzdGVkX2VuYWJsZV9ldm1jcyA9IE5VTEwsCiAJLm5lc3RlZF9nZXRfZXZtY3NfdmVyc2lvbiA9IE5VTEwsCiAKIAkubmVlZF9lbXVsYXRpb25fb25fcGFnZV9mYXVsdCA9IHN2bV9uZWVkX2VtdWxhdGlvbl9vbl9wYWdlX2ZhdWx0LApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9jYXBhYmlsaXRpZXMuaCBiL2FyY2gveDg2L2t2bS92bXgvY2FwYWJpbGl0aWVzLmgKaW5kZXggZDY2NjRlZS4uN2FhNjk3MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9jYXBhYmlsaXRpZXMuaAorKysgYi9hcmNoL3g4Ni9rdm0vdm14L2NhcGFiaWxpdGllcy5oCkBAIC0yNDcsNiArMjQ3LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB2bXhfeHNhdmVzX3N1cHBvcnRlZCh2b2lkKQogCQlTRUNPTkRBUllfRVhFQ19YU0FWRVM7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCB2bXhfd2FpdHBrZ19zdXBwb3J0ZWQodm9pZCkKK3sKKwlyZXR1cm4gdm1jc19jb25maWcuY3B1X2Jhc2VkXzJuZF9leGVjX2N0cmwgJgorCQlTRUNPTkRBUllfRVhFQ19FTkFCTEVfVVNSX1dBSVRfUEFVU0U7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBjcHVfaGFzX3ZteF90c2Nfc2NhbGluZyh2b2lkKQogewogCXJldHVybiB2bWNzX2NvbmZpZy5jcHVfYmFzZWRfMm5kX2V4ZWNfY3RybCAmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L2V2bWNzLmggYi9hcmNoL3g4Ni9rdm0vdm14L2V2bWNzLmgKaW5kZXggMzlhMjRlZS4uMDdlYmY2OCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9ldm1jcy5oCisrKyBiL2FyY2gveDg2L2t2bS92bXgvZXZtY3MuaApAQCAtMTc4LDYgKzE3OCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBldm1jc19sb2FkKHU2NCBwaHlzX2FkZHIpCiAJc3RydWN0IGh2X3ZwX2Fzc2lzdF9wYWdlICp2cF9hcCA9CiAJCWh2X2dldF92cF9hc3Npc3RfcGFnZShzbXBfcHJvY2Vzc29yX2lkKCkpOwogCisJaWYgKGN1cnJlbnRfZXZtY3MtPmh2X2VubGlnaHRlbm1lbnRzX2NvbnRyb2wubmVzdGVkX2ZsdXNoX2h5cGVyY2FsbCkKKwkJdnBfYXAtPm5lc3RlZF9jb250cm9sLmZlYXR1cmVzLmRpcmVjdGh5cGVyY2FsbCA9IDE7CiAJdnBfYXAtPmN1cnJlbnRfbmVzdGVkX3ZtY3MgPSBwaHlzX2FkZHI7CiAJdnBfYXAtPmVubGlnaHRlbl92bWVudHJ5ID0gMTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbmVzdGVkLmMgYi9hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jCmluZGV4IDFhMTBjZDMuLjQxYWJjNjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvbmVzdGVkLmMKKysrIGIvYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYwpAQCAtMTk4LDYgKzE5OCwxNiBAQCBzdGF0aWMgdm9pZCBuZXN0ZWRfdm14X2Fib3J0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIGluZGljYXRvcikKIAlwcl9kZWJ1Z19yYXRlbGltaXRlZCgia3ZtOiBuZXN0ZWQgdm14IGFib3J0LCBpbmRpY2F0b3IgJWRcbiIsIGluZGljYXRvcik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCB2bXhfY29udHJvbF92ZXJpZnkodTMyIGNvbnRyb2wsIHUzMiBsb3csIHUzMiBoaWdoKQoreworCXJldHVybiBmaXhlZF9iaXRzX3ZhbGlkKGNvbnRyb2wsIGxvdywgaGlnaCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTY0IHZteF9jb250cm9sX21zcih1MzIgbG93LCB1MzIgaGlnaCkKK3sKKwlyZXR1cm4gbG93IHwgKCh1NjQpaGlnaCA8PCAzMik7Cit9CisKIHN0YXRpYyB2b2lkIHZteF9kaXNhYmxlX3NoYWRvd192bWNzKHN0cnVjdCB2Y3B1X3ZteCAqdm14KQogewogCXNlY29uZGFyeV9leGVjX2NvbnRyb2xzX2NsZWFyYml0KHZteCwgU0VDT05EQVJZX0VYRUNfU0hBRE9XX1ZNQ1MpOwpAQCAtODY2LDE2ICs4NzYsMzQgQEAgc3RhdGljIGludCBuZXN0ZWRfdm14X3N0b3JlX21zcl9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB1MzIgbmVzdGVkX3ZteF9tYXhfYXRvbWljX3N3aXRjaF9tc3JzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3sKKwlzdHJ1Y3QgdmNwdV92bXggKnZteCA9IHRvX3ZteCh2Y3B1KTsKKwl1NjQgdm14X21pc2MgPSB2bXhfY29udHJvbF9tc3Iodm14LT5uZXN0ZWQubXNycy5taXNjX2xvdywKKwkJCQkgICAgICAgdm14LT5uZXN0ZWQubXNycy5taXNjX2hpZ2gpOworCisJcmV0dXJuICh2bXhfbWlzY19tYXhfbXNyKHZteF9taXNjKSArIDEpICogVk1YX01JU0NfTVNSX0xJU1RfTVVMVElQTElFUjsKK30KKwogLyoKICAqIExvYWQgZ3Vlc3Qncy9ob3N0J3MgbXNyIGF0IG5lc3RlZCBlbnRyeS9leGl0LgogICogcmV0dXJuIDAgZm9yIHN1Y2Nlc3MsIGVudHJ5IGluZGV4IGZvciBmYWlsdXJlLgorICoKKyAqIE9uZSBvZiB0aGUgZmFpbHVyZSBtb2RlcyBmb3IgTVNSIGxvYWQvc3RvcmUgaXMgd2hlbiBhIGxpc3QgZXhjZWVkcyB0aGUKKyAqIHZpcnR1YWwgaGFyZHdhcmUncyBjYXBhY2l0eS4gVG8gbWFpbnRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIGhhcmR3YXJlIGluYXNtdWNoCisgKiBhcyBwb3NzaWJsZSwgcHJvY2VzcyBhbGwgdmFsaWQgZW50cmllcyBiZWZvcmUgZmFpbGluZyByYXRoZXIgdGhhbiBwcmVjaGVjaworICogZm9yIGEgY2FwYWNpdHkgdmlvbGF0aW9uLgogICovCiBzdGF0aWMgdTMyIG5lc3RlZF92bXhfbG9hZF9tc3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZ3BhLCB1MzIgY291bnQpCiB7CiAJdTMyIGk7CiAJc3RydWN0IHZteF9tc3JfZW50cnkgZTsKKwl1MzIgbWF4X21zcl9saXN0X3NpemUgPSBuZXN0ZWRfdm14X21heF9hdG9taWNfc3dpdGNoX21zcnModmNwdSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworCQlpZiAodW5saWtlbHkoaSA+PSBtYXhfbXNyX2xpc3Rfc2l6ZSkpCisJCQlnb3RvIGZhaWw7CisKIAkJaWYgKGt2bV92Y3B1X3JlYWRfZ3Vlc3QodmNwdSwgZ3BhICsgaSAqIHNpemVvZihlKSwKIAkJCQkJJmUsIHNpemVvZihlKSkpIHsKIAkJCXByX2RlYnVnX3JhdGVsaW1pdGVkKApAQCAtOTA2LDggKzkzNCwxMiBAQCBzdGF0aWMgaW50IG5lc3RlZF92bXhfc3RvcmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGdwYSwgdTMyIGNvdW50KQogCXU2NCBkYXRhOwogCXUzMiBpOwogCXN0cnVjdCB2bXhfbXNyX2VudHJ5IGU7CisJdTMyIG1heF9tc3JfbGlzdF9zaXplID0gbmVzdGVkX3ZteF9tYXhfYXRvbWljX3N3aXRjaF9tc3JzKHZjcHUpOwogCiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJaWYgKHVubGlrZWx5KGkgPj0gbWF4X21zcl9saXN0X3NpemUpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKIAkJaWYgKGt2bV92Y3B1X3JlYWRfZ3Vlc3QodmNwdSwKIAkJCQkJZ3BhICsgaSAqIHNpemVvZihlKSwKIAkJCQkJJmUsIDIgKiBzaXplb2YodTMyKSkpIHsKQEAgLTEwMTMsMTcgKzEwNDUsNiBAQCBzdGF0aWMgdTE2IG5lc3RlZF9nZXRfdnBpZDAyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAlyZXR1cm4gdm14LT5uZXN0ZWQudnBpZDAyID8gdm14LT5uZXN0ZWQudnBpZDAyIDogdm14LT52cGlkOwogfQogCi0KLXN0YXRpYyBpbmxpbmUgYm9vbCB2bXhfY29udHJvbF92ZXJpZnkodTMyIGNvbnRyb2wsIHUzMiBsb3csIHUzMiBoaWdoKQotewotCXJldHVybiBmaXhlZF9iaXRzX3ZhbGlkKGNvbnRyb2wsIGxvdywgaGlnaCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdTY0IHZteF9jb250cm9sX21zcih1MzIgbG93LCB1MzIgaGlnaCkKLXsKLQlyZXR1cm4gbG93IHwgKCh1NjQpaGlnaCA8PCAzMik7Ci19Ci0KIHN0YXRpYyBib29sIGlzX2JpdHdpc2Vfc3Vic2V0KHU2NCBzdXBlcnNldCwgdTY0IHN1YnNldCwgdTY0IG1hc2spCiB7CiAJc3VwZXJzZXQgJj0gbWFzazsKQEAgLTIwODksNiArMjExMCw3IEBAIHN0YXRpYyB2b2lkIHByZXBhcmVfdm1jczAyX2Vhcmx5KHN0cnVjdCB2Y3B1X3ZteCAqdm14LCBzdHJ1Y3Qgdm1jczEyICp2bWNzMTIpCiAJCQkJICBTRUNPTkRBUllfRVhFQ19FTkFCTEVfSU5WUENJRCB8CiAJCQkJICBTRUNPTkRBUllfRVhFQ19SRFRTQ1AgfAogCQkJCSAgU0VDT05EQVJZX0VYRUNfWFNBVkVTIHwKKwkJCQkgIFNFQ09OREFSWV9FWEVDX0VOQUJMRV9VU1JfV0FJVF9QQVVTRSB8CiAJCQkJICBTRUNPTkRBUllfRVhFQ19WSVJUVUFMX0lOVFJfREVMSVZFUlkgfAogCQkJCSAgU0VDT05EQVJZX0VYRUNfQVBJQ19SRUdJU1RFUl9WSVJUIHwKIAkJCQkgIFNFQ09OREFSWV9FWEVDX0VOQUJMRV9WTUZVTkMpOwpAQCAtMjY0Miw4ICsyNjY0LDIzIEBAIHN0YXRpYyBpbnQgbmVzdGVkX3ZteF9jaGVja19ob3N0X3N0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkgICAgQ0MoIWt2bV9wYXRfdmFsaWQodm1jczEyLT5ob3N0X2lhMzJfcGF0KSkpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWEzMmUgPSAodm1jczEyLT52bV9leGl0X2NvbnRyb2xzICYKLQkJIFZNX0VYSVRfSE9TVF9BRERSX1NQQUNFX1NJWkUpICE9IDA7CisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWlhMzJlID0gISEodmNwdS0+YXJjaC5lZmVyICYgRUZFUl9MTUEpOworI2Vsc2UKKwlpYTMyZSA9IGZhbHNlOworI2VuZGlmCisKKwlpZiAoaWEzMmUpIHsKKwkJaWYgKENDKCEodm1jczEyLT52bV9leGl0X2NvbnRyb2xzICYgVk1fRVhJVF9IT1NUX0FERFJfU1BBQ0VfU0laRSkpIHx8CisJCSAgICBDQyghKHZtY3MxMi0+aG9zdF9jcjQgJiBYODZfQ1I0X1BBRSkpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfSBlbHNlIHsKKwkJaWYgKENDKHZtY3MxMi0+dm1fZXhpdF9jb250cm9scyAmIFZNX0VYSVRfSE9TVF9BRERSX1NQQUNFX1NJWkUpIHx8CisJCSAgICBDQyh2bWNzMTItPnZtX2VudHJ5X2NvbnRyb2xzICYgVk1fRU5UUllfSUEzMkVfTU9ERSkgfHwKKwkJICAgIENDKHZtY3MxMi0+aG9zdF9jcjQgJiBYODZfQ1I0X1BDSURFKSB8fAorCQkgICAgQ0MoKHZtY3MxMi0+aG9zdF9yaXApID4+IDMyKSkKKwkJCXJldHVybiAtRUlOVkFMOworCX0KIAogCWlmIChDQyh2bWNzMTItPmhvc3RfY3Nfc2VsZWN0b3IgJiAoU0VHTUVOVF9SUExfTUFTSyB8IFNFR01FTlRfVElfTUFTSykpIHx8CiAJICAgIENDKHZtY3MxMi0+aG9zdF9zc19zZWxlY3RvciAmIChTRUdNRU5UX1JQTF9NQVNLIHwgU0VHTUVOVF9USV9NQVNLKSkgfHwKQEAgLTI2NjIsNyArMjY5OSw4IEBAIHN0YXRpYyBpbnQgbmVzdGVkX3ZteF9jaGVja19ob3N0X3N0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkgICAgQ0MoaXNfbm9uY2Fub25pY2FsX2FkZHJlc3Modm1jczEyLT5ob3N0X2dzX2Jhc2UsIHZjcHUpKSB8fAogCSAgICBDQyhpc19ub25jYW5vbmljYWxfYWRkcmVzcyh2bWNzMTItPmhvc3RfZ2R0cl9iYXNlLCB2Y3B1KSkgfHwKIAkgICAgQ0MoaXNfbm9uY2Fub25pY2FsX2FkZHJlc3Modm1jczEyLT5ob3N0X2lkdHJfYmFzZSwgdmNwdSkpIHx8Ci0JICAgIENDKGlzX25vbmNhbm9uaWNhbF9hZGRyZXNzKHZtY3MxMi0+aG9zdF90cl9iYXNlLCB2Y3B1KSkpCisJICAgIENDKGlzX25vbmNhbm9uaWNhbF9hZGRyZXNzKHZtY3MxMi0+aG9zdF90cl9iYXNlLCB2Y3B1KSkgfHwKKwkgICAgQ0MoaXNfbm9uY2Fub25pY2FsX2FkZHJlc3Modm1jczEyLT5ob3N0X3JpcCwgdmNwdSkpKQogCQlyZXR1cm4gLUVJTlZBTDsKICNlbmRpZgogCkBAIC01NDQxLDYgKzU0NzksMTAgQEAgYm9vbCBuZXN0ZWRfdm14X2V4aXRfcmVmbGVjdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIGV4aXRfcmVhc29uKQogCWNhc2UgRVhJVF9SRUFTT05fRU5DTFM6CiAJCS8qIFNHWCBpcyBuZXZlciBleHBvc2VkIHRvIEwxICovCiAJCXJldHVybiBmYWxzZTsKKwljYXNlIEVYSVRfUkVBU09OX1VNV0FJVDoKKwljYXNlIEVYSVRfUkVBU09OX1RQQVVTRToKKwkJcmV0dXJuIG5lc3RlZF9jcHVfaGFzMih2bWNzMTIsCisJCQlTRUNPTkRBUllfRVhFQ19FTkFCTEVfVVNSX1dBSVRfUEFVU0UpOwogCWRlZmF1bHQ6CiAJCXJldHVybiB0cnVlOwogCX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvb3BzLmggYi9hcmNoL3g4Ni9rdm0vdm14L29wcy5oCmluZGV4IDIyMDBmYjYuLjQ1ZWFlZGUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvb3BzLmgKKysrIGIvYXJjaC94ODYva3ZtL3ZteC9vcHMuaApAQCAtMTEsOCArMTEsMTMgQEAKICNpbmNsdWRlICJ2bWNzLmgiCiAKICNkZWZpbmUgX19leCh4KSBfX2t2bV9oYW5kbGVfZmF1bHRfb25fcmVib290KHgpCi0jZGVmaW5lIF9fZXhfY2xlYXIoeCwgcmVnKSBcCi0JX19fX2t2bV9oYW5kbGVfZmF1bHRfb25fcmVib290KHgsICJ4b3IgIiByZWcgIiwgIiByZWcpCisKK2FzbWxpbmthZ2Ugdm9pZCB2bXJlYWRfZXJyb3IodW5zaWduZWQgbG9uZyBmaWVsZCwgYm9vbCBmYXVsdCk7Cit2b2lkIHZtd3JpdGVfZXJyb3IodW5zaWduZWQgbG9uZyBmaWVsZCwgdW5zaWduZWQgbG9uZyB2YWx1ZSk7Cit2b2lkIHZtY2xlYXJfZXJyb3Ioc3RydWN0IHZtY3MgKnZtY3MsIHU2NCBwaHlzX2FkZHIpOwordm9pZCB2bXB0cmxkX2Vycm9yKHN0cnVjdCB2bWNzICp2bWNzLCB1NjQgcGh5c19hZGRyKTsKK3ZvaWQgaW52dnBpZF9lcnJvcih1bnNpZ25lZCBsb25nIGV4dCwgdTE2IHZwaWQsIGd2YV90IGd2YSk7Cit2b2lkIGludmVwdF9lcnJvcih1bnNpZ25lZCBsb25nIGV4dCwgdTY0IGVwdHAsIGdwYV90IGdwYSk7CiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCB2bWNzX2NoZWNrMTYodW5zaWduZWQgbG9uZyBmaWVsZCkKIHsKQEAgLTYyLDggKzY3LDIyIEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgbG9uZyBfX3ZtY3NfcmVhZGwodW5zaWduZWQgbG9uZyBmaWVsZCkKIHsKIAl1bnNpZ25lZCBsb25nIHZhbHVlOwogCi0JYXNtIHZvbGF0aWxlIChfX2V4X2NsZWFyKCJ2bXJlYWQgJTEsICUwIiwgIiVrMCIpCi0JCSAgICAgIDogIj1yIih2YWx1ZSkgOiAiciIoZmllbGQpKTsKKwlhc20gdm9sYXRpbGUoIjE6IHZtcmVhZCAlMiwgJTFcblx0IgorCQkgICAgICIuYnl0ZSAweDNlXG5cdCIgLyogYnJhbmNoIHRha2VuIGhpbnQgKi8KKwkJICAgICAiamEgM2Zcblx0IgorCQkgICAgICJtb3YgJTIsICUlIiBfQVNNX0FSRzEgIlxuXHQiCisJCSAgICAgInhvciAlJSIgX0FTTV9BUkcyICIsICUlIiBfQVNNX0FSRzIgIlxuXHQiCisJCSAgICAgIjI6IGNhbGwgdm1yZWFkX2Vycm9yXG5cdCIKKwkJICAgICAieG9yICVrMSwgJWsxXG5cdCIKKwkJICAgICAiMzpcblx0IgorCisJCSAgICAgIi5wdXNoc2VjdGlvbiAuZml4dXAsIFwiYXhcIlxuXHQiCisJCSAgICAgIjQ6IG1vdiAlMiwgJSUiIF9BU01fQVJHMSAiXG5cdCIKKwkJICAgICAibW92ICQxLCAlJSIgX0FTTV9BUkcyICJcblx0IgorCQkgICAgICJqbXAgMmJcblx0IgorCQkgICAgICIucG9wc2VjdGlvblxuXHQiCisJCSAgICAgX0FTTV9FWFRBQkxFKDFiLCA0YikKKwkJICAgICA6IEFTTV9DQUxMX0NPTlNUUkFJTlQsICI9ciIodmFsdWUpIDogInIiKGZpZWxkKSA6ICJjYyIpOwogCXJldHVybiB2YWx1ZTsKIH0KIApAQCAtMTAzLDIxICsxMjIsMzkgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBsb25nIHZtY3NfcmVhZGwodW5zaWduZWQgbG9uZyBmaWVsZCkKIAlyZXR1cm4gX192bWNzX3JlYWRsKGZpZWxkKTsKIH0KIAotc3RhdGljIG5vaW5saW5lIHZvaWQgdm13cml0ZV9lcnJvcih1bnNpZ25lZCBsb25nIGZpZWxkLCB1bnNpZ25lZCBsb25nIHZhbHVlKQotewotCXByaW50ayhLRVJOX0VSUiAidm13cml0ZSBlcnJvcjogcmVnICVseCB2YWx1ZSAlbHggKGVyciAlZClcbiIsCi0JICAgICAgIGZpZWxkLCB2YWx1ZSwgdm1jc19yZWFkMzIoVk1fSU5TVFJVQ1RJT05fRVJST1IpKTsKLQlkdW1wX3N0YWNrKCk7Ci19CisjZGVmaW5lIHZteF9hc20xKGluc24sIG9wMSwgZXJyb3JfYXJncy4uLikJCQkJXAorZG8gewkJCQkJCQkJCVwKKwlhc21fdm9sYXRpbGVfZ290bygiMTogIiBfX3N0cmluZ2lmeShpbnNuKSAiICUwXG5cdCIJCVwKKwkJCSAgIi5ieXRlIDB4MmVcblx0IiAvKiBicmFuY2ggbm90IHRha2VuIGhpbnQgKi8JXAorCQkJICAiam5hICVsW2Vycm9yXVxuXHQiCQkJCVwKKwkJCSAgX0FTTV9FWFRBQkxFKDFiLCAlbFtmYXVsdF0pCQkJXAorCQkJICA6IDogb3AxIDogImNjIiA6IGVycm9yLCBmYXVsdCk7CQlcCisJcmV0dXJuOwkJCQkJCQkJXAorZXJyb3I6CQkJCQkJCQkJXAorCWluc24jI19lcnJvcihlcnJvcl9hcmdzKTsJCQkJCVwKKwlyZXR1cm47CQkJCQkJCQlcCitmYXVsdDoJCQkJCQkJCQlcCisJa3ZtX3NwdXJpb3VzX2ZhdWx0KCk7CQkJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSB2bXhfYXNtMihpbnNuLCBvcDEsIG9wMiwgZXJyb3JfYXJncy4uLikJCQkJXAorZG8gewkJCQkJCQkJCVwKKwlhc21fdm9sYXRpbGVfZ290bygiMTogIiAgX19zdHJpbmdpZnkoaW5zbikgIiAlMSwgJTBcblx0IglcCisJCQkgICIuYnl0ZSAweDJlXG5cdCIgLyogYnJhbmNoIG5vdCB0YWtlbiBoaW50ICovCVwKKwkJCSAgImpuYSAlbFtlcnJvcl1cblx0IgkJCQlcCisJCQkgIF9BU01fRVhUQUJMRSgxYiwgJWxbZmF1bHRdKQkJCVwKKwkJCSAgOiA6IG9wMSwgb3AyIDogImNjIiA6IGVycm9yLCBmYXVsdCk7CQlcCisJcmV0dXJuOwkJCQkJCQkJXAorZXJyb3I6CQkJCQkJCQkJXAorCWluc24jI19lcnJvcihlcnJvcl9hcmdzKTsJCQkJCVwKKwlyZXR1cm47CQkJCQkJCQlcCitmYXVsdDoJCQkJCQkJCQlcCisJa3ZtX3NwdXJpb3VzX2ZhdWx0KCk7CQkJCQkJXAorfSB3aGlsZSAoMCkKIAogc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIF9fdm1jc193cml0ZWwodW5zaWduZWQgbG9uZyBmaWVsZCwgdW5zaWduZWQgbG9uZyB2YWx1ZSkKIHsKLQlib29sIGVycm9yOwotCi0JYXNtIHZvbGF0aWxlIChfX2V4KCJ2bXdyaXRlICUyLCAlMSIpIENDX1NFVChuYSkKLQkJICAgICAgOiBDQ19PVVQobmEpIChlcnJvcikgOiAiciIoZmllbGQpLCAicm0iKHZhbHVlKSk7Ci0JaWYgKHVubGlrZWx5KGVycm9yKSkKLQkJdm13cml0ZV9lcnJvcihmaWVsZCwgdmFsdWUpOworCXZteF9hc20yKHZtd3JpdGUsICJyIihmaWVsZCksICJybSIodmFsdWUpLCBmaWVsZCwgdmFsdWUpOwogfQogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgdm1jc193cml0ZTE2KHVuc2lnbmVkIGxvbmcgZmllbGQsIHUxNiB2YWx1ZSkKQEAgLTE4MiwyOCArMjE5LDE4IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCB2bWNzX3NldF9iaXRzKHVuc2lnbmVkIGxvbmcgZmllbGQsIHUzMiBtYXNrKQogc3RhdGljIGlubGluZSB2b2lkIHZtY3NfY2xlYXIoc3RydWN0IHZtY3MgKnZtY3MpCiB7CiAJdTY0IHBoeXNfYWRkciA9IF9fcGEodm1jcyk7Ci0JYm9vbCBlcnJvcjsKIAotCWFzbSB2b2xhdGlsZSAoX19leCgidm1jbGVhciAlMSIpIENDX1NFVChuYSkKLQkJICAgICAgOiBDQ19PVVQobmEpIChlcnJvcikgOiAibSIocGh5c19hZGRyKSk7Ci0JaWYgKHVubGlrZWx5KGVycm9yKSkKLQkJcHJpbnRrKEtFUk5fRVJSICJrdm06IHZtY2xlYXIgZmFpbDogJXAvJWxseFxuIiwKLQkJICAgICAgIHZtY3MsIHBoeXNfYWRkcik7CisJdm14X2FzbTEodm1jbGVhciwgIm0iKHBoeXNfYWRkciksIHZtY3MsIHBoeXNfYWRkcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB2bWNzX2xvYWQoc3RydWN0IHZtY3MgKnZtY3MpCiB7CiAJdTY0IHBoeXNfYWRkciA9IF9fcGEodm1jcyk7Ci0JYm9vbCBlcnJvcjsKIAogCWlmIChzdGF0aWNfYnJhbmNoX3VubGlrZWx5KCZlbmFibGVfZXZtY3MpKQogCQlyZXR1cm4gZXZtY3NfbG9hZChwaHlzX2FkZHIpOwogCi0JYXNtIHZvbGF0aWxlIChfX2V4KCJ2bXB0cmxkICUxIikgQ0NfU0VUKG5hKQotCQkgICAgICA6IENDX09VVChuYSkgKGVycm9yKSA6ICJtIihwaHlzX2FkZHIpKTsKLQlpZiAodW5saWtlbHkoZXJyb3IpKQotCQlwcmludGsoS0VSTl9FUlIgImt2bTogdm1wdHJsZCAlcC8lbGx4IGZhaWxlZFxuIiwKLQkJICAgICAgIHZtY3MsIHBoeXNfYWRkcik7CisJdm14X2FzbTEodm1wdHJsZCwgIm0iKHBoeXNfYWRkciksIHZtY3MsIHBoeXNfYWRkcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2ludnZwaWQodW5zaWduZWQgbG9uZyBleHQsIHUxNiB2cGlkLCBndmFfdCBndmEpCkBAIC0yMTMsMTEgKzI0MCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2ludnZwaWQodW5zaWduZWQgbG9uZyBleHQsIHUxNiB2cGlkLCBndmFfdCBndmEpCiAJCXU2NCByc3ZkIDogNDg7CiAJCXU2NCBndmE7CiAJfSBvcGVyYW5kID0geyB2cGlkLCAwLCBndmEgfTsKLQlib29sIGVycm9yOwogCi0JYXNtIHZvbGF0aWxlIChfX2V4KCJpbnZ2cGlkICUyLCAlMSIpIENDX1NFVChuYSkKLQkJICAgICAgOiBDQ19PVVQobmEpIChlcnJvcikgOiAiciIoZXh0KSwgIm0iKG9wZXJhbmQpKTsKLQlCVUdfT04oZXJyb3IpOworCXZteF9hc20yKGludnZwaWQsICJyIihleHQpLCAibSIob3BlcmFuZCksIGV4dCwgdnBpZCwgZ3ZhKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIF9faW52ZXB0KHVuc2lnbmVkIGxvbmcgZXh0LCB1NjQgZXB0cCwgZ3BhX3QgZ3BhKQpAQCAtMjI1LDExICsyNDksOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19pbnZlcHQodW5zaWduZWQgbG9uZyBleHQsIHU2NCBlcHRwLCBncGFfdCBncGEpCiAJc3RydWN0IHsKIAkJdTY0IGVwdHAsIGdwYTsKIAl9IG9wZXJhbmQgPSB7ZXB0cCwgZ3BhfTsKLQlib29sIGVycm9yOwogCi0JYXNtIHZvbGF0aWxlIChfX2V4KCJpbnZlcHQgJTIsICUxIikgQ0NfU0VUKG5hKQotCQkgICAgICA6IENDX09VVChuYSkgKGVycm9yKSA6ICJyIihleHQpLCAibSIob3BlcmFuZCkpOwotCUJVR19PTihlcnJvcik7CisJdm14X2FzbTIoaW52ZXB0LCAiciIoZXh0KSwgIm0iKG9wZXJhbmQpLCBleHQsIGVwdHAsIGdwYSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCB2cGlkX3N5bmNfdmNwdV9hZGRyKGludCB2cGlkLCBndmFfdCBhZGRyKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmMKaW5kZXggNGE5OWJlMS4uZDQ1NzVmZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguYworKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCkBAIC0zNDMsNiArMzQzLDQ4IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCB2bXhfZGlzYWJsZV9pbnRlcmNlcHRfZm9yX21zcih1bnNpZ25lZCBsb25nICptc3JfYml0CiAKIHZvaWQgdm14X3ZtZXhpdCh2b2lkKTsKIAorI2RlZmluZSB2bXhfaW5zbl9mYWlsZWQoZm10Li4uKQkJXAorZG8gewkJCQkJXAorCVdBUk5fT05DRSgxLCBmbXQpOwkJXAorCXByX3dhcm5fcmF0ZWxpbWl0ZWQoZm10KTsJXAorfSB3aGlsZSAoMCkKKworYXNtbGlua2FnZSB2b2lkIHZtcmVhZF9lcnJvcih1bnNpZ25lZCBsb25nIGZpZWxkLCBib29sIGZhdWx0KQoreworCWlmIChmYXVsdCkKKwkJa3ZtX3NwdXJpb3VzX2ZhdWx0KCk7CisJZWxzZQorCQl2bXhfaW5zbl9mYWlsZWQoImt2bTogdm1yZWFkIGZhaWxlZDogZmllbGQ9JWx4XG4iLCBmaWVsZCk7Cit9CisKK25vaW5saW5lIHZvaWQgdm13cml0ZV9lcnJvcih1bnNpZ25lZCBsb25nIGZpZWxkLCB1bnNpZ25lZCBsb25nIHZhbHVlKQoreworCXZteF9pbnNuX2ZhaWxlZCgia3ZtOiB2bXdyaXRlIGZhaWxlZDogZmllbGQ9JWx4IHZhbD0lbHggZXJyPSVkXG4iLAorCQkJZmllbGQsIHZhbHVlLCB2bWNzX3JlYWQzMihWTV9JTlNUUlVDVElPTl9FUlJPUikpOworfQorCitub2lubGluZSB2b2lkIHZtY2xlYXJfZXJyb3Ioc3RydWN0IHZtY3MgKnZtY3MsIHU2NCBwaHlzX2FkZHIpCit7CisJdm14X2luc25fZmFpbGVkKCJrdm06IHZtY2xlYXIgZmFpbGVkOiAlcC8lbGx4XG4iLCB2bWNzLCBwaHlzX2FkZHIpOworfQorCitub2lubGluZSB2b2lkIHZtcHRybGRfZXJyb3Ioc3RydWN0IHZtY3MgKnZtY3MsIHU2NCBwaHlzX2FkZHIpCit7CisJdm14X2luc25fZmFpbGVkKCJrdm06IHZtcHRybGQgZmFpbGVkOiAlcC8lbGx4XG4iLCB2bWNzLCBwaHlzX2FkZHIpOworfQorCitub2lubGluZSB2b2lkIGludnZwaWRfZXJyb3IodW5zaWduZWQgbG9uZyBleHQsIHUxNiB2cGlkLCBndmFfdCBndmEpCit7CisJdm14X2luc25fZmFpbGVkKCJrdm06IGludnZwaWQgZmFpbGVkOiBleHQ9MHglbHggdnBpZD0ldSBndmE9MHglbHhcbiIsCisJCQlleHQsIHZwaWQsIGd2YSk7Cit9CisKK25vaW5saW5lIHZvaWQgaW52ZXB0X2Vycm9yKHVuc2lnbmVkIGxvbmcgZXh0LCB1NjQgZXB0cCwgZ3BhX3QgZ3BhKQoreworCXZteF9pbnNuX2ZhaWxlZCgia3ZtOiBpbnZlcHQgZmFpbGVkOiBleHQ9MHglbHggZXB0cD0lbGx4IGdwYT0weCVsbHhcbiIsCisJCQlleHQsIGVwdHAsIGdwYSk7Cit9CisKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qgdm1jcyAqLCB2bXhhcmVhKTsKIERFRklORV9QRVJfQ1BVKHN0cnVjdCB2bWNzICosIGN1cnJlbnRfdm1jcyk7CiAvKgpAQCAtNDg2LDYgKzUyOCwzMSBAQCBzdGF0aWMgaW50IGh2X3JlbW90ZV9mbHVzaF90bGIoc3RydWN0IGt2bSAqa3ZtKQogCXJldHVybiBodl9yZW1vdGVfZmx1c2hfdGxiX3dpdGhfcmFuZ2Uoa3ZtLCBOVUxMKTsKIH0KIAorc3RhdGljIGludCBodl9lbmFibGVfZGlyZWN0X3RsYmZsdXNoKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3sKKwlzdHJ1Y3QgaHZfZW5saWdodGVuZWRfdm1jcyAqZXZtY3M7CisJc3RydWN0IGh2X3BhcnRpdGlvbl9hc3Npc3RfcGcgKipwX2h2X3BhX3BnID0KKwkJCSZ2Y3B1LT5rdm0tPmFyY2guaHlwZXJ2Lmh2X3BhX3BnOworCS8qCisJICogU3ludGhldGljIFZNLUV4aXQgaXMgbm90IGVuYWJsZWQgaW4gY3VycmVudCBjb2RlIGFuZCBzbyBBbGwKKwkgKiBldm1jcyBpbiBzaW5nZSBWTSBzaGFyZXMgc2FtZSBhc3Npc3QgcGFnZS4KKwkgKi8KKwlpZiAoISpwX2h2X3BhX3BnKQorCQkqcF9odl9wYV9wZyA9IGt6YWxsb2MoUEFHRV9TSVpFLCBHRlBfS0VSTkVMKTsKKworCWlmICghKnBfaHZfcGFfcGcpCisJCXJldHVybiAtRU5PTUVNOworCisJZXZtY3MgPSAoc3RydWN0IGh2X2VubGlnaHRlbmVkX3ZtY3MgKil0b192bXgodmNwdSktPmxvYWRlZF92bWNzLT52bWNzOworCisJZXZtY3MtPnBhcnRpdGlvbl9hc3Npc3RfcGFnZSA9CisJCV9fcGEoKnBfaHZfcGFfcGcpOworCWV2bWNzLT5odl92bV9pZCA9ICh1bnNpZ25lZCBsb25nKXZjcHUtPmt2bTsKKwlldm1jcy0+aHZfZW5saWdodGVubWVudHNfY29udHJvbC5uZXN0ZWRfZmx1c2hfaHlwZXJjYWxsID0gMTsKKworCXJldHVybiAwOworfQorCiAjZW5kaWYgLyogSVNfRU5BQkxFRChDT05GSUdfSFlQRVJWKSAqLwogCiAvKgpAQCAtMTQ3MiwyNyArMTUzOSwzMiBAQCBzdGF0aWMgaW50IHZteF9ydGl0X2N0bF9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBkYXRhKQogCXJldHVybiAwOwogfQogCi0vKgotICogUmV0dXJucyBhbiBpbnQgdG8gYmUgY29tcGF0aWJsZSB3aXRoIFNWTSBpbXBsZW1lbnRhdGlvbiAod2hpY2ggY2FuIGZhaWwpLgotICogRG8gbm90IHVzZSBkaXJlY3RseSwgdXNlIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oKSBpbnN0ZWFkLgotICovCi1zdGF0aWMgaW50IF9fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCitzdGF0aWMgaW50IHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCXVuc2lnbmVkIGxvbmcgcmlwOwogCi0JcmlwID0ga3ZtX3JpcF9yZWFkKHZjcHUpOwotCXJpcCArPSB2bWNzX3JlYWQzMihWTV9FWElUX0lOU1RSVUNUSU9OX0xFTik7Ci0Ja3ZtX3JpcF93cml0ZSh2Y3B1LCByaXApOworCS8qCisJICogVXNpbmcgVk1DUy5WTV9FWElUX0lOU1RSVUNUSU9OX0xFTiBvbiBFUFQgbWlzY29uZmlnIGRlcGVuZHMgb24KKwkgKiB1bmRlZmluZWQgYmVoYXZpb3I6IEludGVsJ3MgU0RNIGRvZXNuJ3QgbWFuZGF0ZSB0aGUgVk1DUyBmaWVsZCBiZQorCSAqIHNldCB3aGVuIEVQVCBtaXNjb25maWcgb2NjdXJzLiAgSW4gcHJhY3RpY2UsIHJlYWwgaGFyZHdhcmUgdXBkYXRlcworCSAqIFZNX0VYSVRfSU5TVFJVQ1RJT05fTEVOIG9uIEVQVCBtaXNjb25maWcsIGJ1dCBvdGhlciBoeXBlcnZpc29ycworCSAqIChuYW1lbHkgSHlwZXItVikgZG9uJ3Qgc2V0IGl0IGR1ZSB0byBpdCBiZWluZyB1bmRlZmluZWQgYmVoYXZpb3IsCisJICogaS5lLiB3ZSBlbmQgdXAgYWR2YW5jaW5nIElQIHdpdGggc29tZSByYW5kb20gdmFsdWUuCisJICovCisJaWYgKCFzdGF0aWNfY3B1X2hhcyhYODZfRkVBVFVSRV9IWVBFUlZJU09SKSB8fAorCSAgICB0b192bXgodmNwdSktPmV4aXRfcmVhc29uICE9IEVYSVRfUkVBU09OX0VQVF9NSVNDT05GSUcpIHsKKwkJcmlwID0ga3ZtX3JpcF9yZWFkKHZjcHUpOworCQlyaXAgKz0gdm1jc19yZWFkMzIoVk1fRVhJVF9JTlNUUlVDVElPTl9MRU4pOworCQlrdm1fcmlwX3dyaXRlKHZjcHUsIHJpcCk7CisJfSBlbHNlIHsKKwkJaWYgKCFrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LCBFTVVMVFlQRV9TS0lQKSkKKwkJCXJldHVybiAwOworCX0KIAogCS8qIHNraXBwaW5nIGFuIGVtdWxhdGVkIGluc3RydWN0aW9uIGFsc28gY291bnRzICovCiAJdm14X3NldF9pbnRlcnJ1cHRfc2hhZG93KHZjcHUsIDApOwogCi0JcmV0dXJuIEVNVUxBVEVfRE9ORTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQotewotCSh2b2lkKV9fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbih2Y3B1KTsKKwlyZXR1cm4gMTsKIH0KIAogc3RhdGljIHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCkBAIC0xNTI3LDggKzE1OTksNyBAQCBzdGF0aWMgdm9pZCB2bXhfcXVldWVfZXhjZXB0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkJaW50IGluY19laXAgPSAwOwogCQlpZiAoa3ZtX2V4Y2VwdGlvbl9pc19zb2Z0KG5yKSkKIAkJCWluY19laXAgPSB2Y3B1LT5hcmNoLmV2ZW50X2V4aXRfaW5zdF9sZW47Ci0JCWlmIChrdm1faW5qZWN0X3JlYWxtb2RlX2ludGVycnVwdCh2Y3B1LCBuciwgaW5jX2VpcCkgIT0gRU1VTEFURV9ET05FKQotCQkJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX1RSSVBMRV9GQVVMVCwgdmNwdSk7CisJCWt2bV9pbmplY3RfcmVhbG1vZGVfaW50ZXJydXB0KHZjcHUsIG5yLCBpbmNfZWlwKTsKIAkJcmV0dXJuOwogCX0KIApAQCAtMTcwMCw2ICsxNzcxLDEyIEBAIHN0YXRpYyBpbnQgdm14X2dldF9tc3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgbXNyX2RhdGEgKm1zcl9pbmZvKQogI2VuZGlmCiAJY2FzZSBNU1JfRUZFUjoKIAkJcmV0dXJuIGt2bV9nZXRfbXNyX2NvbW1vbih2Y3B1LCBtc3JfaW5mbyk7CisJY2FzZSBNU1JfSUEzMl9VTVdBSVRfQ09OVFJPTDoKKwkJaWYgKCFtc3JfaW5mby0+aG9zdF9pbml0aWF0ZWQgJiYgIXZteF9oYXNfd2FpdHBrZyh2bXgpKQorCQkJcmV0dXJuIDE7CisKKwkJbXNyX2luZm8tPmRhdGEgPSB2bXgtPm1zcl9pYTMyX3Vtd2FpdF9jb250cm9sOworCQlicmVhazsKIAljYXNlIE1TUl9JQTMyX1NQRUNfQ1RSTDoKIAkJaWYgKCFtc3JfaW5mby0+aG9zdF9pbml0aWF0ZWQgJiYKIAkJICAgICFndWVzdF9jcHVpZF9oYXModmNwdSwgWDg2X0ZFQVRVUkVfU1BFQ19DVFJMKSkKQEAgLTE4NzMsNiArMTk1MCwxNiBAQCBzdGF0aWMgaW50IHZteF9zZXRfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IG1zcl9kYXRhICptc3JfaW5mbykKIAkJCXJldHVybiAxOwogCQl2bWNzX3dyaXRlNjQoR1VFU1RfQk5EQ0ZHUywgZGF0YSk7CiAJCWJyZWFrOworCWNhc2UgTVNSX0lBMzJfVU1XQUlUX0NPTlRST0w6CisJCWlmICghbXNyX2luZm8tPmhvc3RfaW5pdGlhdGVkICYmICF2bXhfaGFzX3dhaXRwa2codm14KSkKKwkJCXJldHVybiAxOworCisJCS8qIFRoZSByZXNlcnZlZCBiaXQgMSBhbmQgbm9uLTMyIGJpdCBbNjM6MzJdIHNob3VsZCBiZSB6ZXJvICovCisJCWlmIChkYXRhICYgKEJJVF9VTEwoMSkgfCBHRU5NQVNLX1VMTCg2MywgMzIpKSkKKwkJCXJldHVybiAxOworCisJCXZteC0+bXNyX2lhMzJfdW13YWl0X2NvbnRyb2wgPSBkYXRhOworCQlicmVhazsKIAljYXNlIE1TUl9JQTMyX1NQRUNfQ1RSTDoKIAkJaWYgKCFtc3JfaW5mby0+aG9zdF9pbml0aWF0ZWQgJiYKIAkJICAgICFndWVzdF9jcHVpZF9oYXModmNwdSwgWDg2X0ZFQVRVUkVfU1BFQ19DVFJMKSkKQEAgLTIyOTAsNiArMjM3Nyw3IEBAIHN0YXRpYyBfX2luaXQgaW50IHNldHVwX3ZtY3NfY29uZmlnKHN0cnVjdCB2bWNzX2NvbmZpZyAqdm1jc19jb25mLAogCQkJU0VDT05EQVJZX0VYRUNfUkRSQU5EX0VYSVRJTkcgfAogCQkJU0VDT05EQVJZX0VYRUNfRU5BQkxFX1BNTCB8CiAJCQlTRUNPTkRBUllfRVhFQ19UU0NfU0NBTElORyB8CisJCQlTRUNPTkRBUllfRVhFQ19FTkFCTEVfVVNSX1dBSVRfUEFVU0UgfAogCQkJU0VDT05EQVJZX0VYRUNfUFRfVVNFX0dQQSB8CiAJCQlTRUNPTkRBUllfRVhFQ19QVF9DT05DRUFMX1ZNWCB8CiAJCQlTRUNPTkRBUllfRVhFQ19FTkFCTEVfVk1GVU5DIHwKQEAgLTQwMjYsNiArNDExNCwyMyBAQCBzdGF0aWMgdm9pZCB2bXhfY29tcHV0ZV9zZWNvbmRhcnlfZXhlY19jb250cm9sKHN0cnVjdCB2Y3B1X3ZteCAqdm14KQogCQl9CiAJfQogCisJaWYgKHZteF93YWl0cGtnX3N1cHBvcnRlZCgpKSB7CisJCWJvb2wgd2FpdHBrZ19lbmFibGVkID0KKwkJCWd1ZXN0X2NwdWlkX2hhcyh2Y3B1LCBYODZfRkVBVFVSRV9XQUlUUEtHKTsKKworCQlpZiAoIXdhaXRwa2dfZW5hYmxlZCkKKwkJCWV4ZWNfY29udHJvbCAmPSB+U0VDT05EQVJZX0VYRUNfRU5BQkxFX1VTUl9XQUlUX1BBVVNFOworCisJCWlmIChuZXN0ZWQpIHsKKwkJCWlmICh3YWl0cGtnX2VuYWJsZWQpCisJCQkJdm14LT5uZXN0ZWQubXNycy5zZWNvbmRhcnlfY3Rsc19oaWdoIHw9CisJCQkJCVNFQ09OREFSWV9FWEVDX0VOQUJMRV9VU1JfV0FJVF9QQVVTRTsKKwkJCWVsc2UKKwkJCQl2bXgtPm5lc3RlZC5tc3JzLnNlY29uZGFyeV9jdGxzX2hpZ2ggJj0KKwkJCQkJflNFQ09OREFSWV9FWEVDX0VOQUJMRV9VU1JfV0FJVF9QQVVTRTsKKwkJfQorCX0KKwogCXZteC0+c2Vjb25kYXJ5X2V4ZWNfY29udHJvbCA9IGV4ZWNfY29udHJvbDsKIH0KIApAQCAtNDE2MCw2ICs0MjY1LDggQEAgc3RhdGljIHZvaWQgdm14X3ZjcHVfcmVzZXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGluaXRfZXZlbnQpCiAJdm14LT5ybW9kZS52bTg2X2FjdGl2ZSA9IDA7CiAJdm14LT5zcGVjX2N0cmwgPSAwOwogCisJdm14LT5tc3JfaWEzMl91bXdhaXRfY29udHJvbCA9IDA7CisKIAl2Y3B1LT5hcmNoLm1pY3JvY29kZV92ZXJzaW9uID0gMHgxMDAwMDAwMDBVTEw7CiAJdm14LT52Y3B1LmFyY2gucmVnc1tWQ1BVX1JFR1NfUkRYXSA9IGdldF9yZHhfaW5pdF92YWwoKTsKIAl2bXgtPmh2X2RlYWRsaW5lX3RzYyA9IC0xOwpAQCAtNDI3Nyw4ICs0Mzg0LDcgQEAgc3RhdGljIHZvaWQgdm14X2luamVjdF9pcnEoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQlpbnQgaW5jX2VpcCA9IDA7CiAJCWlmICh2Y3B1LT5hcmNoLmludGVycnVwdC5zb2Z0KQogCQkJaW5jX2VpcCA9IHZjcHUtPmFyY2guZXZlbnRfZXhpdF9pbnN0X2xlbjsKLQkJaWYgKGt2bV9pbmplY3RfcmVhbG1vZGVfaW50ZXJydXB0KHZjcHUsIGlycSwgaW5jX2VpcCkgIT0gRU1VTEFURV9ET05FKQotCQkJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX1RSSVBMRV9GQVVMVCwgdmNwdSk7CisJCWt2bV9pbmplY3RfcmVhbG1vZGVfaW50ZXJydXB0KHZjcHUsIGlycSwgaW5jX2VpcCk7CiAJCXJldHVybjsKIAl9CiAJaW50ciA9IGlycSB8IElOVFJfSU5GT19WQUxJRF9NQVNLOwpAQCAtNDMxNCw4ICs0NDIwLDcgQEAgc3RhdGljIHZvaWQgdm14X2luamVjdF9ubWkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCXZteC0+bG9hZGVkX3ZtY3MtPm5taV9rbm93bl91bm1hc2tlZCA9IGZhbHNlOwogCiAJaWYgKHZteC0+cm1vZGUudm04Nl9hY3RpdmUpIHsKLQkJaWYgKGt2bV9pbmplY3RfcmVhbG1vZGVfaW50ZXJydXB0KHZjcHUsIE5NSV9WRUNUT1IsIDApICE9IEVNVUxBVEVfRE9ORSkKLQkJCWt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9UUklQTEVfRkFVTFQsIHZjcHUpOworCQlrdm1faW5qZWN0X3JlYWxtb2RlX2ludGVycnVwdCh2Y3B1LCBOTUlfVkVDVE9SLCAwKTsKIAkJcmV0dXJuOwogCX0KIApAQCAtNDQ0Miw3ICs0NTQ3LDcgQEAgc3RhdGljIGludCBoYW5kbGVfcm1vZGVfZXhjZXB0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkgKiBDYXVzZSB0aGUgI1NTIGZhdWx0IHdpdGggMCBlcnJvciBjb2RlIGluIFZNODYgbW9kZS4KIAkgKi8KIAlpZiAoKCh2ZWMgPT0gR1BfVkVDVE9SKSB8fCAodmVjID09IFNTX1ZFQ1RPUikpICYmIGVycl9jb2RlID09IDApIHsKLQkJaWYgKGt2bV9lbXVsYXRlX2luc3RydWN0aW9uKHZjcHUsIDApID09IEVNVUxBVEVfRE9ORSkgeworCQlpZiAoa3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb24odmNwdSwgMCkpIHsKIAkJCWlmICh2Y3B1LT5hcmNoLmhhbHRfcmVxdWVzdCkgewogCQkJCXZjcHUtPmFyY2guaGFsdF9yZXF1ZXN0ID0gMDsKIAkJCQlyZXR1cm4ga3ZtX3ZjcHVfaGFsdCh2Y3B1KTsKQEAgLTQ0OTMsNyArNDU5OCw2IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2V4Y2VwdGlvbl9ubWkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCXUzMiBpbnRyX2luZm8sIGV4X25vLCBlcnJvcl9jb2RlOwogCXVuc2lnbmVkIGxvbmcgY3IyLCByaXAsIGRyNjsKIAl1MzIgdmVjdF9pbmZvOwotCWVudW0gZW11bGF0aW9uX3Jlc3VsdCBlcjsKIAogCXZlY3RfaW5mbyA9IHZteC0+aWR0X3ZlY3RvcmluZ19pbmZvOwogCWludHJfaW5mbyA9IHZteC0+ZXhpdF9pbnRyX2luZm87CkBAIC00NTEwLDEzICs0NjE0LDE3IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2V4Y2VwdGlvbl9ubWkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCiAJaWYgKCF2bXgtPnJtb2RlLnZtODZfYWN0aXZlICYmIGlzX2dwX2ZhdWx0KGludHJfaW5mbykpIHsKIAkJV0FSTl9PTl9PTkNFKCFlbmFibGVfdm13YXJlX2JhY2tkb29yKTsKLQkJZXIgPSBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LAotCQkJRU1VTFRZUEVfVk1XQVJFIHwgRU1VTFRZUEVfTk9fVURfT05fRkFJTCk7Ci0JCWlmIChlciA9PSBFTVVMQVRFX1VTRVJfRVhJVCkKLQkJCXJldHVybiAwOwotCQllbHNlIGlmIChlciAhPSBFTVVMQVRFX0RPTkUpCisKKwkJLyoKKwkJICogVk13YXJlIGJhY2tkb29yIGVtdWxhdGlvbiBvbiAjR1AgaW50ZXJjZXB0aW9uIG9ubHkgaGFuZGxlcworCQkgKiBJTntTfSwgT1VUe1N9LCBhbmQgUkRQTUMsIG5vbmUgb2Ygd2hpY2ggZ2VuZXJhdGUgYSBub24temVybworCQkgKiBlcnJvciBjb2RlIG9uICNHUC4KKwkJICovCisJCWlmIChlcnJvcl9jb2RlKSB7CiAJCQlrdm1fcXVldWVfZXhjZXB0aW9uX2UodmNwdSwgR1BfVkVDVE9SLCBlcnJvcl9jb2RlKTsKLQkJcmV0dXJuIDE7CisJCQlyZXR1cm4gMTsKKwkJfQorCQlyZXR1cm4ga3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb24odmNwdSwgRU1VTFRZUEVfVk1XQVJFX0dQKTsKIAl9CiAKIAkvKgpAQCAtNDU1OCw3ICs0NjY2LDcgQEAgc3RhdGljIGludCBoYW5kbGVfZXhjZXB0aW9uX25taShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJCQl2Y3B1LT5hcmNoLmRyNiAmPSB+RFJfVFJBUF9CSVRTOwogCQkJdmNwdS0+YXJjaC5kcjYgfD0gZHI2IHwgRFI2X1JUTTsKIAkJCWlmIChpc19pY2VicChpbnRyX2luZm8pKQotCQkJCXNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7CisJCQkJV0FSTl9PTighc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbih2Y3B1KSk7CiAKIAkJCWt2bV9xdWV1ZV9leGNlcHRpb24odmNwdSwgREJfVkVDVE9SKTsKIAkJCXJldHVybiAxOwpAQCAtNDYxMyw3ICs0NzIxLDcgQEAgc3RhdGljIGludCBoYW5kbGVfaW8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCSsrdmNwdS0+c3RhdC5pb19leGl0czsKIAogCWlmIChzdHJpbmcpCi0JCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LCAwKSA9PSBFTVVMQVRFX0RPTkU7CisJCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LCAwKTsKIAogCXBvcnQgPSBleGl0X3F1YWxpZmljYXRpb24gPj4gMTY7CiAJc2l6ZSA9IChleGl0X3F1YWxpZmljYXRpb24gJiA3KSArIDE7CkBAIC00Njg3LDcgKzQ3OTUsNyBAQCBzdGF0aWMgaW50IGhhbmRsZV9zZXRfY3I0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyB2YWwpCiBzdGF0aWMgaW50IGhhbmRsZV9kZXNjKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKIAlXQVJOX09OKCEodmNwdS0+YXJjaC5jcjQgJiBYODZfQ1I0X1VNSVApKTsKLQlyZXR1cm4ga3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb24odmNwdSwgMCkgPT0gRU1VTEFURV9ET05FOworCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LCAwKTsKIH0KIAogc3RhdGljIGludCBoYW5kbGVfY3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQpAQCAtNDkwMyw3ICs1MDExLDcgQEAgc3RhdGljIGludCBoYW5kbGVfdm1jYWxsKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAogc3RhdGljIGludCBoYW5kbGVfaW52ZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7Ci0JcmV0dXJuIGt2bV9lbXVsYXRlX2luc3RydWN0aW9uKHZjcHUsIDApID09IEVNVUxBVEVfRE9ORTsKKwlyZXR1cm4ga3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb24odmNwdSwgMCk7CiB9CiAKIHN0YXRpYyBpbnQgaGFuZGxlX2ludmxwZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCkBAIC00OTM3LDIwICs1MDQ1LDYgQEAgc3RhdGljIGludCBoYW5kbGVfeHNldGJ2KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAlyZXR1cm4gMTsKIH0KIAotc3RhdGljIGludCBoYW5kbGVfeHNhdmVzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKLXsKLQlrdm1fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbih2Y3B1KTsKLQlXQVJOKDEsICJ0aGlzIHNob3VsZCBuZXZlciBoYXBwZW5cbiIpOwotCXJldHVybiAxOwotfQotCi1zdGF0aWMgaW50IGhhbmRsZV94cnN0b3JzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKLXsKLQlrdm1fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbih2Y3B1KTsKLQlXQVJOKDEsICJ0aGlzIHNob3VsZCBuZXZlciBoYXBwZW5cbiIpOwotCXJldHVybiAxOwotfQotCiBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2FjY2VzcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJaWYgKGxpa2VseShmYXN0ZW9pKSkgewpAQCAtNDk3MCw3ICs1MDY0LDcgQEAgc3RhdGljIGludCBoYW5kbGVfYXBpY19hY2Nlc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQkJcmV0dXJuIGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpOwogCQl9CiAJfQotCXJldHVybiBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LCAwKSA9PSBFTVVMQVRFX0RPTkU7CisJcmV0dXJuIGt2bV9lbXVsYXRlX2luc3RydWN0aW9uKHZjcHUsIDApOwogfQogCiBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKQEAgLTUwMzksMjMgKzUxMzMsMTUgQEAgc3RhdGljIGludCBoYW5kbGVfdGFza19zd2l0Y2goc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCWlmICghaWR0X3YgfHwgKHR5cGUgIT0gSU5UUl9UWVBFX0hBUkRfRVhDRVBUSU9OICYmCiAJCSAgICAgICB0eXBlICE9IElOVFJfVFlQRV9FWFRfSU5UUiAmJgogCQkgICAgICAgdHlwZSAhPSBJTlRSX1RZUEVfTk1JX0lOVFIpKQotCQlza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpOwotCi0JaWYgKGt2bV90YXNrX3N3aXRjaCh2Y3B1LCB0c3Nfc2VsZWN0b3IsCi0JCQkgICAgdHlwZSA9PSBJTlRSX1RZUEVfU09GVF9JTlRSID8gaWR0X2luZGV4IDogLTEsIHJlYXNvbiwKLQkJCSAgICBoYXNfZXJyb3JfY29kZSwgZXJyb3JfY29kZSkgPT0gRU1VTEFURV9GQUlMKSB7Ci0JCXZjcHUtPnJ1bi0+ZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9JTlRFUk5BTF9FUlJPUjsKLQkJdmNwdS0+cnVuLT5pbnRlcm5hbC5zdWJlcnJvciA9IEtWTV9JTlRFUk5BTF9FUlJPUl9FTVVMQVRJT047Ci0JCXZjcHUtPnJ1bi0+aW50ZXJuYWwubmRhdGEgPSAwOwotCQlyZXR1cm4gMDsKLQl9CisJCVdBUk5fT04oIXNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSkpOwogCiAJLyoKIAkgKiBUT0RPOiBXaGF0IGFib3V0IGRlYnVnIHRyYXBzIG9uIHRzcyBzd2l0Y2g/CiAJICogICAgICAgQXJlIHdlIHN1cHBvc2VkIHRvIGluamVjdCB0aGVtIGFuZCB1cGRhdGUgZHI2PwogCSAqLwotCi0JcmV0dXJuIDE7CisJcmV0dXJuIGt2bV90YXNrX3N3aXRjaCh2Y3B1LCB0c3Nfc2VsZWN0b3IsCisJCQkgICAgICAgdHlwZSA9PSBJTlRSX1RZUEVfU09GVF9JTlRSID8gaWR0X2luZGV4IDogLTEsCisJCQkgICAgICAgcmVhc29uLCBoYXNfZXJyb3JfY29kZSwgZXJyb3JfY29kZSk7CiB9CiAKIHN0YXRpYyBpbnQgaGFuZGxlX2VwdF92aW9sYXRpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQpAQCAtNTExNCwyMSArNTIwMCw3IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2VwdF9taXNjb25maWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCWlmICghaXNfZ3Vlc3RfbW9kZSh2Y3B1KSAmJgogCSAgICAha3ZtX2lvX2J1c193cml0ZSh2Y3B1LCBLVk1fRkFTVF9NTUlPX0JVUywgZ3BhLCAwLCBOVUxMKSkgewogCQl0cmFjZV9rdm1fZmFzdF9tbWlvKGdwYSk7Ci0JCS8qCi0JCSAqIERvaW5nIGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKCkgZGVwZW5kcyBvbiB1bmRlZmluZWQKLQkJICogYmVoYXZpb3I6IEludGVsJ3MgbWFudWFsIGRvZXNuJ3QgbWFuZGF0ZQotCQkgKiBWTV9FWElUX0lOU1RSVUNUSU9OX0xFTiB0byBiZSBzZXQgaW4gVk1DUyB3aGVuIEVQVCBNSVNDT05GSUcKLQkJICogb2NjdXJzIGFuZCB3aGlsZSBvbiByZWFsIGhhcmR3YXJlIGl0IHdhcyBvYnNlcnZlZCB0byBiZSBzZXQsCi0JCSAqIG90aGVyIGh5cGVydmlzb3JzIChuYW1lbHkgSHlwZXItVikgZG9uJ3Qgc2V0IGl0LCB3ZSBlbmQgdXAKLQkJICogYWR2YW5jaW5nIElQIHdpdGggc29tZSByYW5kb20gdmFsdWUuIERpc2FibGUgZmFzdCBtbWlvIHdoZW4KLQkJICogcnVubmluZyBuZXN0ZWQgYW5kIGtlZXAgaXQgZm9yIHJlYWwgaGFyZHdhcmUgaW4gaG9wZSB0aGF0Ci0JCSAqIFZNX0VYSVRfSU5TVFJVQ1RJT05fTEVOIHdpbGwgYWx3YXlzIGJlIHNldCBjb3JyZWN0bHkuCi0JCSAqLwotCQlpZiAoIXN0YXRpY19jcHVfaGFzKFg4Nl9GRUFUVVJFX0hZUEVSVklTT1IpKQotCQkJcmV0dXJuIGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpOwotCQllbHNlCi0JCQlyZXR1cm4ga3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb24odmNwdSwgRU1VTFRZUEVfU0tJUCkgPT0KLQkJCQkJCQkJRU1VTEFURV9ET05FOworCQlyZXR1cm4ga3ZtX3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7CiAJfQogCiAJcmV0dXJuIGt2bV9tbXVfcGFnZV9mYXVsdCh2Y3B1LCBncGEsIFBGRVJSX1JTVkRfTUFTSywgTlVMTCwgMCk7CkBAIC01MTQ3LDggKzUyMTksNiBAQCBzdGF0aWMgaW50IGhhbmRsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHN0YXRpYyBpbnQgaGFuZGxlX2ludmFsaWRfZ3Vlc3Rfc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCXN0cnVjdCB2Y3B1X3ZteCAqdm14ID0gdG9fdm14KHZjcHUpOwotCWVudW0gZW11bGF0aW9uX3Jlc3VsdCBlcnIgPSBFTVVMQVRFX0RPTkU7Ci0JaW50IHJldCA9IDE7CiAJYm9vbCBpbnRyX3dpbmRvd19yZXF1ZXN0ZWQ7CiAJdW5zaWduZWQgY291bnQgPSAxMzA7CiAKQEAgLTUxNjksNDEgKzUyMzksMzUgQEAgc3RhdGljIGludCBoYW5kbGVfaW52YWxpZF9ndWVzdF9zdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJCWlmIChrdm1fdGVzdF9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpKQogCQkJcmV0dXJuIDE7CiAKLQkJZXJyID0ga3ZtX2VtdWxhdGVfaW5zdHJ1Y3Rpb24odmNwdSwgMCk7Ci0KLQkJaWYgKGVyciA9PSBFTVVMQVRFX1VTRVJfRVhJVCkgewotCQkJKyt2Y3B1LT5zdGF0Lm1taW9fZXhpdHM7Ci0JCQlyZXQgPSAwOwotCQkJZ290byBvdXQ7Ci0JCX0KLQotCQlpZiAoZXJyICE9IEVNVUxBVEVfRE9ORSkKLQkJCWdvdG8gZW11bGF0aW9uX2Vycm9yOworCQlpZiAoIWt2bV9lbXVsYXRlX2luc3RydWN0aW9uKHZjcHUsIDApKQorCQkJcmV0dXJuIDA7CiAKIAkJaWYgKHZteC0+ZW11bGF0aW9uX3JlcXVpcmVkICYmICF2bXgtPnJtb2RlLnZtODZfYWN0aXZlICYmCi0JCSAgICB2Y3B1LT5hcmNoLmV4Y2VwdGlvbi5wZW5kaW5nKQotCQkJZ290byBlbXVsYXRpb25fZXJyb3I7CisJCSAgICB2Y3B1LT5hcmNoLmV4Y2VwdGlvbi5wZW5kaW5nKSB7CisJCQl2Y3B1LT5ydW4tPmV4aXRfcmVhc29uID0gS1ZNX0VYSVRfSU5URVJOQUxfRVJST1I7CisJCQl2Y3B1LT5ydW4tPmludGVybmFsLnN1YmVycm9yID0KKwkJCQkJCUtWTV9JTlRFUk5BTF9FUlJPUl9FTVVMQVRJT047CisJCQl2Y3B1LT5ydW4tPmludGVybmFsLm5kYXRhID0gMDsKKwkJCXJldHVybiAwOworCQl9CiAKIAkJaWYgKHZjcHUtPmFyY2guaGFsdF9yZXF1ZXN0KSB7CiAJCQl2Y3B1LT5hcmNoLmhhbHRfcmVxdWVzdCA9IDA7Ci0JCQlyZXQgPSBrdm1fdmNwdV9oYWx0KHZjcHUpOwotCQkJZ290byBvdXQ7CisJCQlyZXR1cm4ga3ZtX3ZjcHVfaGFsdCh2Y3B1KTsKIAkJfQogCisJCS8qCisJCSAqIE5vdGUsIHJldHVybiAxIGFuZCBub3QgMCwgdmNwdV9ydW4oKSBpcyByZXNwb25zaWJsZSBmb3IKKwkJICogbW9ycGhpbmcgdGhlIHBlbmRpbmcgc2lnbmFsIGludG8gdGhlIHByb3BlciByZXR1cm4gY29kZS4KKwkJICovCiAJCWlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KSkKLQkJCWdvdG8gb3V0OworCQkJcmV0dXJuIDE7CisKIAkJaWYgKG5lZWRfcmVzY2hlZCgpKQogCQkJc2NoZWR1bGUoKTsKIAl9CiAKLW91dDoKLQlyZXR1cm4gcmV0OwotCi1lbXVsYXRpb25fZXJyb3I6Ci0JdmNwdS0+cnVuLT5leGl0X3JlYXNvbiA9IEtWTV9FWElUX0lOVEVSTkFMX0VSUk9SOwotCXZjcHUtPnJ1bi0+aW50ZXJuYWwuc3ViZXJyb3IgPSBLVk1fSU5URVJOQUxfRVJST1JfRU1VTEFUSU9OOwotCXZjcHUtPnJ1bi0+aW50ZXJuYWwubmRhdGEgPSAwOwotCXJldHVybiAwOworCXJldHVybiAxOwogfQogCiBzdGF0aWMgdm9pZCBncm93X3BsZV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQpAQCAtNTQ3NCw2ICs1NTM4LDE0IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2VuY2xzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAlyZXR1cm4gMTsKIH0KIAorc3RhdGljIGludCBoYW5kbGVfdW5leHBlY3RlZF92bWV4aXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQoreworCWt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpOworCVdBUk5fT05DRSgxLCAiVW5leHBlY3RlZCBWTS1FeGl0IFJlYXNvbiA9IDB4JXgiLAorCQl2bWNzX3JlYWQzMihWTV9FWElUX1JFQVNPTikpOworCXJldHVybiAxOworfQorCiAvKgogICogVGhlIGV4aXQgaGFuZGxlcnMgcmV0dXJuIDEgaWYgdGhlIGV4aXQgd2FzIGhhbmRsZWQgZnVsbHkgYW5kIGd1ZXN0IGV4ZWN1dGlvbgogICogbWF5IHJlc3VtZS4gIE90aGVyd2lzZSB0aGV5IHNldCB0aGUga3ZtX3J1biBwYXJhbWV0ZXIgdG8gaW5kaWNhdGUgd2hhdCBuZWVkcwpAQCAtNTUyNSwxMyArNTU5NywxNSBAQCBzdGF0aWMgaW50ICgqa3ZtX3ZteF9leGl0X2hhbmRsZXJzW10pKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkgPSB7CiAJW0VYSVRfUkVBU09OX0lOVlZQSURdICAgICAgICAgICAgICAgICA9IGhhbmRsZV92bXhfaW5zdHJ1Y3Rpb24sCiAJW0VYSVRfUkVBU09OX1JEUkFORF0gICAgICAgICAgICAgICAgICA9IGhhbmRsZV9pbnZhbGlkX29wLAogCVtFWElUX1JFQVNPTl9SRFNFRURdICAgICAgICAgICAgICAgICAgPSBoYW5kbGVfaW52YWxpZF9vcCwKLQlbRVhJVF9SRUFTT05fWFNBVkVTXSAgICAgICAgICAgICAgICAgID0gaGFuZGxlX3hzYXZlcywKLQlbRVhJVF9SRUFTT05fWFJTVE9SU10gICAgICAgICAgICAgICAgID0gaGFuZGxlX3hyc3RvcnMsCisJW0VYSVRfUkVBU09OX1hTQVZFU10gICAgICAgICAgICAgICAgICA9IGhhbmRsZV91bmV4cGVjdGVkX3ZtZXhpdCwKKwlbRVhJVF9SRUFTT05fWFJTVE9SU10gICAgICAgICAgICAgICAgID0gaGFuZGxlX3VuZXhwZWN0ZWRfdm1leGl0LAogCVtFWElUX1JFQVNPTl9QTUxfRlVMTF0JCSAgICAgID0gaGFuZGxlX3BtbF9mdWxsLAogCVtFWElUX1JFQVNPTl9JTlZQQ0lEXSAgICAgICAgICAgICAgICAgPSBoYW5kbGVfaW52cGNpZCwKIAlbRVhJVF9SRUFTT05fVk1GVU5DXQkJICAgICAgPSBoYW5kbGVfdm14X2luc3RydWN0aW9uLAogCVtFWElUX1JFQVNPTl9QUkVFTVBUSU9OX1RJTUVSXQkgICAgICA9IGhhbmRsZV9wcmVlbXB0aW9uX3RpbWVyLAogCVtFWElUX1JFQVNPTl9FTkNMU10JCSAgICAgID0gaGFuZGxlX2VuY2xzLAorCVtFWElUX1JFQVNPTl9VTVdBSVRdICAgICAgICAgICAgICAgICAgPSBoYW5kbGVfdW5leHBlY3RlZF92bWV4aXQsCisJW0VYSVRfUkVBU09OX1RQQVVTRV0gICAgICAgICAgICAgICAgICA9IGhhbmRsZV91bmV4cGVjdGVkX3ZtZXhpdCwKIH07CiAKIHN0YXRpYyBjb25zdCBpbnQga3ZtX3ZteF9tYXhfZXhpdF9oYW5kbGVycyA9CkBAIC02MzYyLDYgKzY0MzYsMjMgQEAgc3RhdGljIHZvaWQgYXRvbWljX3N3aXRjaF9wZXJmX21zcnMoc3RydWN0IHZjcHVfdm14ICp2bXgpCiAJCQkJCW1zcnNbaV0uaG9zdCwgZmFsc2UpOwogfQogCitzdGF0aWMgdm9pZCBhdG9taWNfc3dpdGNoX3Vtd2FpdF9jb250cm9sX21zcihzdHJ1Y3QgdmNwdV92bXggKnZteCkKK3sKKwl1MzIgaG9zdF91bXdhaXRfY29udHJvbDsKKworCWlmICghdm14X2hhc193YWl0cGtnKHZteCkpCisJCXJldHVybjsKKworCWhvc3RfdW13YWl0X2NvbnRyb2wgPSBnZXRfdW13YWl0X2NvbnRyb2xfbXNyKCk7CisKKwlpZiAodm14LT5tc3JfaWEzMl91bXdhaXRfY29udHJvbCAhPSBob3N0X3Vtd2FpdF9jb250cm9sKQorCQlhZGRfYXRvbWljX3N3aXRjaF9tc3Iodm14LCBNU1JfSUEzMl9VTVdBSVRfQ09OVFJPTCwKKwkJCXZteC0+bXNyX2lhMzJfdW13YWl0X2NvbnRyb2wsCisJCQlob3N0X3Vtd2FpdF9jb250cm9sLCBmYWxzZSk7CisJZWxzZQorCQljbGVhcl9hdG9taWNfc3dpdGNoX21zcih2bXgsIE1TUl9JQTMyX1VNV0FJVF9DT05UUk9MKTsKK30KKwogc3RhdGljIHZvaWQgdm14X3VwZGF0ZV9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJc3RydWN0IHZjcHVfdm14ICp2bXggPSB0b192bXgodmNwdSk7CkBAIC02NDU2LDYgKzY1NDcsNyBAQCBzdGF0aWMgdm9pZCB2bXhfdmNwdV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCXB0X2d1ZXN0X2VudGVyKHZteCk7CiAKIAlhdG9taWNfc3dpdGNoX3BlcmZfbXNycyh2bXgpOworCWF0b21pY19zd2l0Y2hfdW13YWl0X2NvbnRyb2xfbXNyKHZteCk7CiAKIAlpZiAoZW5hYmxlX3ByZWVtcHRpb25fdGltZXIpCiAJCXZteF91cGRhdGVfaHZfdGltZXIodmNwdSk7CkBAIC02NTExLDYgKzY2MDMsOSBAQCBzdGF0aWMgdm9pZCB2bXhfdmNwdV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQljdXJyZW50X2V2bWNzLT5odl9jbGVhbl9maWVsZHMgfD0KIAkJCUhWX1ZNWF9FTkxJR0hURU5FRF9DTEVBTl9GSUVMRF9BTEw7CiAKKwlpZiAoc3RhdGljX2JyYW5jaF91bmxpa2VseSgmZW5hYmxlX2V2bWNzKSkKKwkJY3VycmVudF9ldm1jcy0+aHZfdnBfaWQgPSB2Y3B1LT5hcmNoLmh5cGVydi52cF9pbmRleDsKKwogCS8qIE1TUl9JQTMyX0RFQlVHQ1RMTVNSIGlzIHplcm9lZCBvbiB2bWV4aXQuIFJlc3RvcmUgaXQgaWYgbmVlZGVkICovCiAJaWYgKHZteC0+aG9zdF9kZWJ1Z2N0bG1zcikKIAkJdXBkYXRlX2RlYnVnY3RsbXNyKHZteC0+aG9zdF9kZWJ1Z2N0bG1zcik7CkBAIC02NTc4LDYgKzY2NzMsNyBAQCBzdGF0aWMgc3RydWN0IGt2bSAqdm14X3ZtX2FsbG9jKHZvaWQpCiAKIHN0YXRpYyB2b2lkIHZteF92bV9mcmVlKHN0cnVjdCBrdm0gKmt2bSkKIHsKKwlrZnJlZShrdm0tPmFyY2guaHlwZXJ2Lmh2X3BhX3BnKTsKIAl2ZnJlZSh0b19rdm1fdm14KGt2bSkpOwogfQogCkBAIC03NzA2LDcgKzc4MDIsNyBAQCBzdGF0aWMgc3RydWN0IGt2bV94ODZfb3BzIHZteF94ODZfb3BzIF9fcm9fYWZ0ZXJfaW5pdCA9IHsKIAogCS5ydW4gPSB2bXhfdmNwdV9ydW4sCiAJLmhhbmRsZV9leGl0ID0gdm14X2hhbmRsZV9leGl0LAotCS5za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uID0gX19za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uLAorCS5za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uID0gc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbiwKIAkuc2V0X2ludGVycnVwdF9zaGFkb3cgPSB2bXhfc2V0X2ludGVycnVwdF9zaGFkb3csCiAJLmdldF9pbnRlcnJ1cHRfc2hhZG93ID0gdm14X2dldF9pbnRlcnJ1cHRfc2hhZG93LAogCS5wYXRjaF9oeXBlcmNhbGwgPSB2bXhfcGF0Y2hfaHlwZXJjYWxsLApAQCAtNzgzNyw2ICs3OTMzLDcgQEAgc3RhdGljIHZvaWQgdm14X2V4aXQodm9pZCkKIAkJCWlmICghdnBfYXApCiAJCQkJY29udGludWU7CiAKKwkJCXZwX2FwLT5uZXN0ZWRfY29udHJvbC5mZWF0dXJlcy5kaXJlY3RoeXBlcmNhbGwgPSAwOwogCQkJdnBfYXAtPmN1cnJlbnRfbmVzdGVkX3ZtY3MgPSAwOwogCQkJdnBfYXAtPmVubGlnaHRlbl92bWVudHJ5ID0gMDsKIAkJfQpAQCAtNzg3Niw2ICs3OTczLDExIEBAIHN0YXRpYyBpbnQgX19pbml0IHZteF9pbml0KHZvaWQpCiAJCQlwcl9pbmZvKCJLVk06IHZteDogdXNpbmcgSHlwZXItViBFbmxpZ2h0ZW5lZCBWTUNTXG4iKTsKIAkJCXN0YXRpY19icmFuY2hfZW5hYmxlKCZlbmFibGVfZXZtY3MpOwogCQl9CisKKwkJaWYgKG1zX2h5cGVydi5uZXN0ZWRfZmVhdHVyZXMgJiBIVl9YNjRfTkVTVEVEX0RJUkVDVF9GTFVTSCkKKwkJCXZteF94ODZfb3BzLmVuYWJsZV9kaXJlY3RfdGxiZmx1c2gKKwkJCQk9IGh2X2VuYWJsZV9kaXJlY3RfdGxiZmx1c2g7CisKIAl9IGVsc2UgewogCQllbmxpZ2h0ZW5lZF92bWNzID0gZmFsc2U7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguaCBiL2FyY2gveDg2L2t2bS92bXgvdm14LmgKaW5kZXggNjRkNWE0OC4uYmVlMTY2OCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguaAorKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5oCkBAIC0xNCw2ICsxNCw4IEBACiBleHRlcm4gY29uc3QgdTMyIHZteF9tc3JfaW5kZXhbXTsKIGV4dGVybiB1NjQgaG9zdF9lZmVyOwogCitleHRlcm4gdTMyIGdldF91bXdhaXRfY29udHJvbF9tc3Iodm9pZCk7CisKICNkZWZpbmUgTVNSX1RZUEVfUgkxCiAjZGVmaW5lIE1TUl9UWVBFX1cJMgogI2RlZmluZSBNU1JfVFlQRV9SVwkzCkBAIC0yMTEsNiArMjEzLDcgQEAgc3RydWN0IHZjcHVfdm14IHsKICNlbmRpZgogCiAJdTY0CQkgICAgICBzcGVjX2N0cmw7CisJdTMyCQkgICAgICBtc3JfaWEzMl91bXdhaXRfY29udHJvbDsKIAogCXUzMiBzZWNvbmRhcnlfZXhlY19jb250cm9sOwogCkBAIC00OTcsNiArNTAwLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkZWNhY2hlX3RzY19tdWx0aXBsaWVyKHN0cnVjdCB2Y3B1X3ZteCAqdm14KQogCXZtY3Nfd3JpdGU2NChUU0NfTVVMVElQTElFUiwgdm14LT5jdXJyZW50X3RzY19yYXRpbyk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCB2bXhfaGFzX3dhaXRwa2coc3RydWN0IHZjcHVfdm14ICp2bXgpCit7CisJcmV0dXJuIHZteC0+c2Vjb25kYXJ5X2V4ZWNfY29udHJvbCAmCisJCVNFQ09OREFSWV9FWEVDX0VOQUJMRV9VU1JfV0FJVF9QQVVTRTsKK30KKwogdm9pZCBkdW1wX3ZtY3Modm9pZCk7CiAKICNlbmRpZiAvKiBfX0tWTV9YODZfVk1YX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBkZmQ2NDEyLi4wZWQwN2Q4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMKKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jCkBAIC0zNjAsNyArMzYwLDggQEAgRVhQT1JUX1NZTUJPTF9HUEwoa3ZtX3NldF9hcGljX2Jhc2UpOwogYXNtbGlua2FnZSBfX3Zpc2libGUgdm9pZCBrdm1fc3B1cmlvdXNfZmF1bHQodm9pZCkKIHsKIAkvKiBGYXVsdCB3aGlsZSBub3QgcmVib290aW5nLiAgV2Ugd2FudCB0aGUgdHJhY2UuICovCi0JQlVHKCk7CisJaWYgKCFrdm1fcmVib290aW5nKQorCQlCVUcoKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGt2bV9zcHVyaW91c19mYXVsdCk7CiAKQEAgLTExNDUsNiArMTE0Niw0NCBAQCBzdGF0aWMgdTMyIG1zcnNfdG9fc2F2ZVtdID0gewogCU1TUl9JQTMyX1JUSVRfQUREUjFfQSwgTVNSX0lBMzJfUlRJVF9BRERSMV9CLAogCU1TUl9JQTMyX1JUSVRfQUREUjJfQSwgTVNSX0lBMzJfUlRJVF9BRERSMl9CLAogCU1TUl9JQTMyX1JUSVRfQUREUjNfQSwgTVNSX0lBMzJfUlRJVF9BRERSM19CLAorCU1TUl9JQTMyX1VNV0FJVF9DT05UUk9MLAorCisJTVNSX0FSQ0hfUEVSRk1PTl9GSVhFRF9DVFIwLCBNU1JfQVJDSF9QRVJGTU9OX0ZJWEVEX0NUUjEsCisJTVNSX0FSQ0hfUEVSRk1PTl9GSVhFRF9DVFIwICsgMiwgTVNSX0FSQ0hfUEVSRk1PTl9GSVhFRF9DVFIwICsgMywKKwlNU1JfQ09SRV9QRVJGX0ZJWEVEX0NUUl9DVFJMLCBNU1JfQ09SRV9QRVJGX0dMT0JBTF9TVEFUVVMsCisJTVNSX0NPUkVfUEVSRl9HTE9CQUxfQ1RSTCwgTVNSX0NPUkVfUEVSRl9HTE9CQUxfT1ZGX0NUUkwsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCwgTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMSwKKwlNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMiwgTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDMsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDQsIE1TUl9BUkNIX1BFUkZNT05fUEVSRkNUUjAgKyA1LAorCU1TUl9BUkNIX1BFUkZNT05fUEVSRkNUUjAgKyA2LCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgNywKKwlNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgOCwgTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDksCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDEwLCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMTEsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDEyLCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMTMsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDE0LCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMTUsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDE2LCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMTcsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDE4LCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMTksCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDIwLCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMjEsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDIyLCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMjMsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDI0LCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMjUsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDI2LCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMjcsCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDI4LCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMjksCisJTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMCArIDMwLCBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwICsgMzEsCisJTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAsIE1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwxLAorCU1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgMiwgTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyAzLAorCU1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgNCwgTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyA1LAorCU1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgNiwgTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyA3LAorCU1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgOCwgTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyA5LAorCU1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgMTAsIE1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgMTEsCisJTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyAxMiwgTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyAxMywKKwlNU1JfQVJDSF9QRVJGTU9OX0VWRU5UU0VMMCArIDE0LCBNU1JfQVJDSF9QRVJGTU9OX0VWRU5UU0VMMCArIDE1LAorCU1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgMTYsIE1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgMTcsCisJTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyAxOCwgTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyAxOSwKKwlNU1JfQVJDSF9QRVJGTU9OX0VWRU5UU0VMMCArIDIwLCBNU1JfQVJDSF9QRVJGTU9OX0VWRU5UU0VMMCArIDIxLAorCU1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgMjIsIE1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgMjMsCisJTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyAyNCwgTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyAyNSwKKwlNU1JfQVJDSF9QRVJGTU9OX0VWRU5UU0VMMCArIDI2LCBNU1JfQVJDSF9QRVJGTU9OX0VWRU5UU0VMMCArIDI3LAorCU1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgMjgsIE1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwICsgMjksCisJTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyAzMCwgTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDAgKyAzMSwKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBudW1fbXNyc190b19zYXZlOwpAQCAtMzE2OSw3ICszMjA4LDYgQEAgaW50IGt2bV92bV9pb2N0bF9jaGVja19leHRlbnNpb24oc3RydWN0IGt2bSAqa3ZtLCBsb25nIGV4dCkKIAljYXNlIEtWTV9DQVBfSFlQRVJWX0VWRU5URkQ6CiAJY2FzZSBLVk1fQ0FQX0hZUEVSVl9UTEJGTFVTSDoKIAljYXNlIEtWTV9DQVBfSFlQRVJWX1NFTkRfSVBJOgotCWNhc2UgS1ZNX0NBUF9IWVBFUlZfRU5MSUdIVEVORURfVk1DUzoKIAljYXNlIEtWTV9DQVBfSFlQRVJWX0NQVUlEOgogCWNhc2UgS1ZNX0NBUF9QQ0lfU0VHTUVOVDoKIAljYXNlIEtWTV9DQVBfREVCVUdSRUdTOgpAQCAtMzI0Niw2ICszMjg0LDEyIEBAIGludCBrdm1fdm1faW9jdGxfY2hlY2tfZXh0ZW5zaW9uKHN0cnVjdCBrdm0gKmt2bSwgbG9uZyBleHQpCiAJCXIgPSBrdm1feDg2X29wcy0+Z2V0X25lc3RlZF9zdGF0ZSA/CiAJCQlrdm1feDg2X29wcy0+Z2V0X25lc3RlZF9zdGF0ZShOVUxMLCBOVUxMLCAwKSA6IDA7CiAJCWJyZWFrOworCWNhc2UgS1ZNX0NBUF9IWVBFUlZfRElSRUNUX1RMQkZMVVNIOgorCQlyID0ga3ZtX3g4Nl9vcHMtPmVuYWJsZV9kaXJlY3RfdGxiZmx1c2ggIT0gTlVMTDsKKwkJYnJlYWs7CisJY2FzZSBLVk1fQ0FQX0hZUEVSVl9FTkxJR0hURU5FRF9WTUNTOgorCQlyID0ga3ZtX3g4Nl9vcHMtPm5lc3RlZF9lbmFibGVfZXZtY3MgIT0gTlVMTDsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJYnJlYWs7CiAJfQpAQCAtNDAxOSw2ICs0MDYzLDExIEBAIHN0YXRpYyBpbnQga3ZtX3ZjcHVfaW9jdGxfZW5hYmxlX2NhcChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCQkJciA9IC1FRkFVTFQ7CiAJCX0KIAkJcmV0dXJuIHI7CisJY2FzZSBLVk1fQ0FQX0hZUEVSVl9ESVJFQ1RfVExCRkxVU0g6CisJCWlmICgha3ZtX3g4Nl9vcHMtPmVuYWJsZV9kaXJlY3RfdGxiZmx1c2gpCisJCQlyZXR1cm4gLUVOT1RUWTsKKworCQlyZXR1cm4ga3ZtX3g4Nl9vcHMtPmVuYWJsZV9kaXJlY3RfdGxiZmx1c2godmNwdSk7CiAKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTUwNTEsNiArNTEwMCwxMSBAQCBzdGF0aWMgdm9pZCBrdm1faW5pdF9tc3JfbGlzdCh2b2lkKQogCXUzMiBkdW1teVsyXTsKIAl1bnNpZ25lZCBpLCBqOwogCisJQlVJTERfQlVHX09OX01TRyhJTlRFTF9QTUNfTUFYX0ZJWEVEICE9IDQsCisJCQkgIlBsZWFzZSB1cGRhdGUgdGhlIGZpeGVkIFBNQ3MgaW4gbXNyc190b19zYXZlW10iKTsKKwlCVUlMRF9CVUdfT05fTVNHKElOVEVMX1BNQ19NQVhfR0VORVJJQyAhPSAzMiwKKwkJCSAiUGxlYXNlIHVwZGF0ZSB0aGUgZ2VuZXJpYyBwZXJmY3RyL2V2ZW50c2VsIE1TUnMgaW4gbXNyc190b19zYXZlW10iKTsKKwogCWZvciAoaSA9IGogPSAwOyBpIDwgQVJSQVlfU0laRShtc3JzX3RvX3NhdmUpOyBpKyspIHsKIAkJaWYgKHJkbXNyX3NhZmUobXNyc190b19zYXZlW2ldLCAmZHVtbXlbMF0sICZkdW1teVsxXSkgPCAwKQogCQkJY29udGludWU7CkBAIC01Mzg5LDcgKzU0NDMsNiBAQCBFWFBPUlRfU1lNQk9MX0dQTChrdm1fd3JpdGVfZ3Vlc3RfdmlydF9zeXN0ZW0pOwogaW50IGhhbmRsZV91ZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJaW50IGVtdWxfdHlwZSA9IEVNVUxUWVBFX1RSQVBfVUQ7Ci0JZW51bSBlbXVsYXRpb25fcmVzdWx0IGVyOwogCWNoYXIgc2lnWzVdOyAvKiB1ZDI7IC5hc2NpaSAia3ZtIiAqLwogCXN0cnVjdCB4ODZfZXhjZXB0aW9uIGU7CiAKQEAgLTUzOTgsMTUgKzU0NTEsMTAgQEAgaW50IGhhbmRsZV91ZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJCQkJc2lnLCBzaXplb2Yoc2lnKSwgJmUpID09IDAgJiYKIAkgICAgbWVtY21wKHNpZywgIlx4Zlx4Ymt2bSIsIHNpemVvZihzaWcpKSA9PSAwKSB7CiAJCWt2bV9yaXBfd3JpdGUodmNwdSwga3ZtX3JpcF9yZWFkKHZjcHUpICsgc2l6ZW9mKHNpZykpOwotCQllbXVsX3R5cGUgPSAwOworCQllbXVsX3R5cGUgPSBFTVVMVFlQRV9UUkFQX1VEX0ZPUkNFRDsKIAl9CiAKLQllciA9IGt2bV9lbXVsYXRlX2luc3RydWN0aW9uKHZjcHUsIGVtdWxfdHlwZSk7Ci0JaWYgKGVyID09IEVNVUxBVEVfVVNFUl9FWElUKQotCQlyZXR1cm4gMDsKLQlpZiAoZXIgIT0gRU1VTEFURV9ET05FKQotCQlrdm1fcXVldWVfZXhjZXB0aW9uKHZjcHUsIFVEX1ZFQ1RPUik7Ci0JcmV0dXJuIDE7CisJcmV0dXJuIGt2bV9lbXVsYXRlX2luc3RydWN0aW9uKHZjcHUsIGVtdWxfdHlwZSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChoYW5kbGVfdWQpOwogCkBAIC02MjI4LDcgKzYyNzYsNyBAQCBzdGF0aWMgdm9pZCBpbml0X2VtdWxhdGVfY3R4dChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJdmNwdS0+YXJjaC5lbXVsYXRlX3JlZ3NfbmVlZF9zeW5jX2Zyb21fdmNwdSA9IGZhbHNlOwogfQogCi1pbnQga3ZtX2luamVjdF9yZWFsbW9kZV9pbnRlcnJ1cHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgaXJxLCBpbnQgaW5jX2VpcCkKK3ZvaWQga3ZtX2luamVjdF9yZWFsbW9kZV9pbnRlcnJ1cHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgaXJxLCBpbnQgaW5jX2VpcCkKIHsKIAlzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCA9ICZ2Y3B1LT5hcmNoLmVtdWxhdGVfY3R4dDsKIAlpbnQgcmV0OwpAQCAtNjI0MCwzNyArNjI4OCw0MyBAQCBpbnQga3ZtX2luamVjdF9yZWFsbW9kZV9pbnRlcnJ1cHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgaXJxLCBpbnQgaW5jX2VpcCkKIAljdHh0LT5fZWlwID0gY3R4dC0+ZWlwICsgaW5jX2VpcDsKIAlyZXQgPSBlbXVsYXRlX2ludF9yZWFsKGN0eHQsIGlycSk7CiAKLQlpZiAocmV0ICE9IFg4NkVNVUxfQ09OVElOVUUpCi0JCXJldHVybiBFTVVMQVRFX0ZBSUw7Ci0KLQljdHh0LT5laXAgPSBjdHh0LT5fZWlwOwotCWt2bV9yaXBfd3JpdGUodmNwdSwgY3R4dC0+ZWlwKTsKLQlrdm1fc2V0X3JmbGFncyh2Y3B1LCBjdHh0LT5lZmxhZ3MpOwotCi0JcmV0dXJuIEVNVUxBVEVfRE9ORTsKKwlpZiAocmV0ICE9IFg4NkVNVUxfQ09OVElOVUUpIHsKKwkJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX1RSSVBMRV9GQVVMVCwgdmNwdSk7CisJfSBlbHNlIHsKKwkJY3R4dC0+ZWlwID0gY3R4dC0+X2VpcDsKKwkJa3ZtX3JpcF93cml0ZSh2Y3B1LCBjdHh0LT5laXApOworCQlrdm1fc2V0X3JmbGFncyh2Y3B1LCBjdHh0LT5lZmxhZ3MpOworCX0KIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGt2bV9pbmplY3RfcmVhbG1vZGVfaW50ZXJydXB0KTsKIAogc3RhdGljIGludCBoYW5kbGVfZW11bGF0aW9uX2ZhaWx1cmUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgZW11bGF0aW9uX3R5cGUpCiB7Ci0JaW50IHIgPSBFTVVMQVRFX0RPTkU7Ci0KIAkrK3ZjcHUtPnN0YXQuaW5zbl9lbXVsYXRpb25fZmFpbDsKIAl0cmFjZV9rdm1fZW11bGF0ZV9pbnNuX2ZhaWxlZCh2Y3B1KTsKIAotCWlmIChlbXVsYXRpb25fdHlwZSAmIEVNVUxUWVBFX05PX1VEX09OX0ZBSUwpCi0JCXJldHVybiBFTVVMQVRFX0ZBSUw7CisJaWYgKGVtdWxhdGlvbl90eXBlICYgRU1VTFRZUEVfVk1XQVJFX0dQKSB7CisJCWt2bV9xdWV1ZV9leGNlcHRpb25fZSh2Y3B1LCBHUF9WRUNUT1IsIDApOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoZW11bGF0aW9uX3R5cGUgJiBFTVVMVFlQRV9TS0lQKSB7CisJCXZjcHUtPnJ1bi0+ZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9JTlRFUk5BTF9FUlJPUjsKKwkJdmNwdS0+cnVuLT5pbnRlcm5hbC5zdWJlcnJvciA9IEtWTV9JTlRFUk5BTF9FUlJPUl9FTVVMQVRJT047CisJCXZjcHUtPnJ1bi0+aW50ZXJuYWwubmRhdGEgPSAwOworCQlyZXR1cm4gMDsKKwl9CisKKwlrdm1fcXVldWVfZXhjZXB0aW9uKHZjcHUsIFVEX1ZFQ1RPUik7CiAKIAlpZiAoIWlzX2d1ZXN0X21vZGUodmNwdSkgJiYga3ZtX3g4Nl9vcHMtPmdldF9jcGwodmNwdSkgPT0gMCkgewogCQl2Y3B1LT5ydW4tPmV4aXRfcmVhc29uID0gS1ZNX0VYSVRfSU5URVJOQUxfRVJST1I7CiAJCXZjcHUtPnJ1bi0+aW50ZXJuYWwuc3ViZXJyb3IgPSBLVk1fSU5URVJOQUxfRVJST1JfRU1VTEFUSU9OOwogCQl2Y3B1LT5ydW4tPmludGVybmFsLm5kYXRhID0gMDsKLQkJciA9IEVNVUxBVEVfVVNFUl9FWElUOworCQlyZXR1cm4gMDsKIAl9CiAKLQlrdm1fcXVldWVfZXhjZXB0aW9uKHZjcHUsIFVEX1ZFQ1RPUik7Ci0KLQlyZXR1cm4gcjsKKwlyZXR1cm4gMTsKIH0KIAogc3RhdGljIGJvb2wgcmVleGVjdXRlX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3ZhX3QgY3IyLApAQCAtNjQyNSw3ICs2NDc5LDcgQEAgc3RhdGljIGludCBrdm1fdmNwdV9jaGVja19od19icCh1bnNpZ25lZCBsb25nIGFkZHIsIHUzMiB0eXBlLCB1MzIgZHI3LAogCXJldHVybiBkcjY7CiB9CiAKLXN0YXRpYyB2b2lkIGt2bV92Y3B1X2RvX3NpbmdsZXN0ZXAoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgKnIpCitzdGF0aWMgaW50IGt2bV92Y3B1X2RvX3NpbmdsZXN0ZXAoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCXN0cnVjdCBrdm1fcnVuICprdm1fcnVuID0gdmNwdS0+cnVuOwogCkBAIC02NDM0LDEwICs2NDg4LDEwIEBAIHN0YXRpYyB2b2lkIGt2bV92Y3B1X2RvX3NpbmdsZXN0ZXAoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgKnIpCiAJCWt2bV9ydW4tPmRlYnVnLmFyY2gucGMgPSB2Y3B1LT5hcmNoLnNpbmdsZXN0ZXBfcmlwOwogCQlrdm1fcnVuLT5kZWJ1Zy5hcmNoLmV4Y2VwdGlvbiA9IERCX1ZFQ1RPUjsKIAkJa3ZtX3J1bi0+ZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9ERUJVRzsKLQkJKnIgPSBFTVVMQVRFX1VTRVJfRVhJVDsKLQl9IGVsc2UgewotCQlrdm1fcXVldWVfZXhjZXB0aW9uX3AodmNwdSwgREJfVkVDVE9SLCBEUjZfQlMpOworCQlyZXR1cm4gMDsKIAl9CisJa3ZtX3F1ZXVlX2V4Y2VwdGlvbl9wKHZjcHUsIERCX1ZFQ1RPUiwgRFI2X0JTKTsKKwlyZXR1cm4gMTsKIH0KIAogaW50IGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKQEAgLTY0NDYsNyArNjUwMCw3IEBAIGludCBrdm1fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJaW50IHI7CiAKIAlyID0ga3ZtX3g4Nl9vcHMtPnNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7Ci0JaWYgKHVubGlrZWx5KHIgIT0gRU1VTEFURV9ET05FKSkKKwlpZiAodW5saWtlbHkoIXIpKQogCQlyZXR1cm4gMDsKIAogCS8qCkBAIC02NDU4LDggKzY1MTIsOCBAQCBpbnQga3ZtX3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCSAqIHRoYXQgc2V0cyB0aGUgVEYgZmxhZyIuCiAJICovCiAJaWYgKHVubGlrZWx5KHJmbGFncyAmIFg4Nl9FRkxBR1NfVEYpKQotCQlrdm1fdmNwdV9kb19zaW5nbGVzdGVwKHZjcHUsICZyKTsKLQlyZXR1cm4gciA9PSBFTVVMQVRFX0RPTkU7CisJCXIgPSBrdm1fdmNwdV9kb19zaW5nbGVzdGVwKHZjcHUpOworCXJldHVybiByOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoa3ZtX3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24pOwogCkBAIC02NDc4LDcgKzY1MzIsNyBAQCBzdGF0aWMgYm9vbCBrdm1fdmNwdV9jaGVja19icmVha3BvaW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50ICpyKQogCQkJa3ZtX3J1bi0+ZGVidWcuYXJjaC5wYyA9IGVpcDsKIAkJCWt2bV9ydW4tPmRlYnVnLmFyY2guZXhjZXB0aW9uID0gREJfVkVDVE9SOwogCQkJa3ZtX3J1bi0+ZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9ERUJVRzsKLQkJCSpyID0gRU1VTEFURV9VU0VSX0VYSVQ7CisJCQkqciA9IDA7CiAJCQlyZXR1cm4gdHJ1ZTsKIAkJfQogCX0KQEAgLTY0OTQsNyArNjU0OCw3IEBAIHN0YXRpYyBib29sIGt2bV92Y3B1X2NoZWNrX2JyZWFrcG9pbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgKnIpCiAJCQl2Y3B1LT5hcmNoLmRyNiAmPSB+RFJfVFJBUF9CSVRTOwogCQkJdmNwdS0+YXJjaC5kcjYgfD0gZHI2IHwgRFI2X1JUTTsKIAkJCWt2bV9xdWV1ZV9leGNlcHRpb24odmNwdSwgREJfVkVDVE9SKTsKLQkJCSpyID0gRU1VTEFURV9ET05FOworCQkJKnIgPSAxOwogCQkJcmV0dXJuIHRydWU7CiAJCX0KIAl9CkBAIC02NTc4LDExICs2NjMyLDE0IEBAIGludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCXRyYWNlX2t2bV9lbXVsYXRlX2luc25fc3RhcnQodmNwdSk7CiAJCSsrdmNwdS0+c3RhdC5pbnNuX2VtdWxhdGlvbjsKIAkJaWYgKHIgIT0gRU1VTEFUSU9OX09LKSAgewotCQkJaWYgKGVtdWxhdGlvbl90eXBlICYgRU1VTFRZUEVfVFJBUF9VRCkKLQkJCQlyZXR1cm4gRU1VTEFURV9GQUlMOworCQkJaWYgKChlbXVsYXRpb25fdHlwZSAmIEVNVUxUWVBFX1RSQVBfVUQpIHx8CisJCQkgICAgKGVtdWxhdGlvbl90eXBlICYgRU1VTFRZUEVfVFJBUF9VRF9GT1JDRUQpKSB7CisJCQkJa3ZtX3F1ZXVlX2V4Y2VwdGlvbih2Y3B1LCBVRF9WRUNUT1IpOworCQkJCXJldHVybiAxOworCQkJfQogCQkJaWYgKHJlZXhlY3V0ZV9pbnN0cnVjdGlvbih2Y3B1LCBjcjIsIHdyaXRlX2ZhdWx0X3RvX3NwdCwKIAkJCQkJCWVtdWxhdGlvbl90eXBlKSkKLQkJCQlyZXR1cm4gRU1VTEFURV9ET05FOworCQkJCXJldHVybiAxOwogCQkJaWYgKGN0eHQtPmhhdmVfZXhjZXB0aW9uKSB7CiAJCQkJLyoKIAkJCQkgKiAjVUQgc2hvdWxkIHJlc3VsdCBpbiBqdXN0IEVNVUxBVElPTl9GQUlMRUQsIGFuZCB0cmFwLWxpa2UKQEAgLTY1OTEsMjggKzY2NDgsMzIgQEAgaW50IHg4Nl9lbXVsYXRlX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJCQlXQVJOX09OX09OQ0UoY3R4dC0+ZXhjZXB0aW9uLnZlY3RvciA9PSBVRF9WRUNUT1IgfHwKIAkJCQkJICAgICBleGNlcHRpb25fdHlwZShjdHh0LT5leGNlcHRpb24udmVjdG9yKSA9PSBFWENQVF9UUkFQKTsKIAkJCQlpbmplY3RfZW11bGF0ZWRfZXhjZXB0aW9uKHZjcHUpOwotCQkJCXJldHVybiBFTVVMQVRFX0RPTkU7CisJCQkJcmV0dXJuIDE7CiAJCQl9Ci0JCQlpZiAoZW11bGF0aW9uX3R5cGUgJiBFTVVMVFlQRV9TS0lQKQotCQkJCXJldHVybiBFTVVMQVRFX0ZBSUw7CiAJCQlyZXR1cm4gaGFuZGxlX2VtdWxhdGlvbl9mYWlsdXJlKHZjcHUsIGVtdWxhdGlvbl90eXBlKTsKIAkJfQogCX0KIAotCWlmICgoZW11bGF0aW9uX3R5cGUgJiBFTVVMVFlQRV9WTVdBUkUpICYmCi0JICAgICFpc192bXdhcmVfYmFja2Rvb3Jfb3Bjb2RlKGN0eHQpKQotCQlyZXR1cm4gRU1VTEFURV9GQUlMOworCWlmICgoZW11bGF0aW9uX3R5cGUgJiBFTVVMVFlQRV9WTVdBUkVfR1ApICYmCisJICAgICFpc192bXdhcmVfYmFja2Rvb3Jfb3Bjb2RlKGN0eHQpKSB7CisJCWt2bV9xdWV1ZV9leGNlcHRpb25fZSh2Y3B1LCBHUF9WRUNUT1IsIDApOworCQlyZXR1cm4gMTsKKwl9CiAKKwkvKgorCSAqIE5vdGUsIEVNVUxUWVBFX1NLSVAgaXMgaW50ZW5kZWQgZm9yIHVzZSAqb25seSogYnkgdmVuZG9yIGNhbGxiYWNrcworCSAqIGZvciBrdm1fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbigpLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKKwkgKiB1cGRhdGluZyBpbnRlcnJ1cHRpYmlsaXR5IHN0YXRlIGFuZCBpbmplY3Rpbmcgc2luZ2xlLXN0ZXAgI0RCcy4KKwkgKi8KIAlpZiAoZW11bGF0aW9uX3R5cGUgJiBFTVVMVFlQRV9TS0lQKSB7CiAJCWt2bV9yaXBfd3JpdGUodmNwdSwgY3R4dC0+X2VpcCk7CiAJCWlmIChjdHh0LT5lZmxhZ3MgJiBYODZfRUZMQUdTX1JGKQogCQkJa3ZtX3NldF9yZmxhZ3ModmNwdSwgY3R4dC0+ZWZsYWdzICYgflg4Nl9FRkxBR1NfUkYpOwotCQlrdm1feDg2X29wcy0+c2V0X2ludGVycnVwdF9zaGFkb3codmNwdSwgMCk7Ci0JCXJldHVybiBFTVVMQVRFX0RPTkU7CisJCXJldHVybiAxOwogCX0KIAogCWlmIChyZXRyeV9pbnN0cnVjdGlvbihjdHh0LCBjcjIsIGVtdWxhdGlvbl90eXBlKSkKLQkJcmV0dXJuIEVNVUxBVEVfRE9ORTsKKwkJcmV0dXJuIDE7CiAKIAkvKiB0aGlzIGlzIG5lZWRlZCBmb3Igdm13YXJlIGJhY2tkb29yIGludGVyZmFjZSB0byB3b3JrIHNpbmNlIGl0CiAJICAgY2hhbmdlcyByZWdpc3RlcnMgdmFsdWVzICBkdXJpbmcgSU8gb3BlcmF0aW9uICovCkBAIC02NjI4LDE4ICs2Njg5LDE4IEBAIGludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJciA9IHg4Nl9lbXVsYXRlX2luc24oY3R4dCk7CiAKIAlpZiAociA9PSBFTVVMQVRJT05fSU5URVJDRVBURUQpCi0JCXJldHVybiBFTVVMQVRFX0RPTkU7CisJCXJldHVybiAxOwogCiAJaWYgKHIgPT0gRU1VTEFUSU9OX0ZBSUxFRCkgewogCQlpZiAocmVleGVjdXRlX2luc3RydWN0aW9uKHZjcHUsIGNyMiwgd3JpdGVfZmF1bHRfdG9fc3B0LAogCQkJCQllbXVsYXRpb25fdHlwZSkpCi0JCQlyZXR1cm4gRU1VTEFURV9ET05FOworCQkJcmV0dXJuIDE7CiAKIAkJcmV0dXJuIGhhbmRsZV9lbXVsYXRpb25fZmFpbHVyZSh2Y3B1LCBlbXVsYXRpb25fdHlwZSk7CiAJfQogCiAJaWYgKGN0eHQtPmhhdmVfZXhjZXB0aW9uKSB7Ci0JCXIgPSBFTVVMQVRFX0RPTkU7CisJCXIgPSAxOwogCQlpZiAoaW5qZWN0X2VtdWxhdGVkX2V4Y2VwdGlvbih2Y3B1KSkKIAkJCXJldHVybiByOwogCX0gZWxzZSBpZiAodmNwdS0+YXJjaC5waW8uY291bnQpIHsKQEAgLTY2NTAsMTYgKzY3MTEsMTggQEAgaW50IHg4Nl9lbXVsYXRlX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJCXdyaXRlYmFjayA9IGZhbHNlOwogCQkJdmNwdS0+YXJjaC5jb21wbGV0ZV91c2Vyc3BhY2VfaW8gPSBjb21wbGV0ZV9lbXVsYXRlZF9waW87CiAJCX0KLQkJciA9IEVNVUxBVEVfVVNFUl9FWElUOworCQlyID0gMDsKIAl9IGVsc2UgaWYgKHZjcHUtPm1taW9fbmVlZGVkKSB7CisJCSsrdmNwdS0+c3RhdC5tbWlvX2V4aXRzOworCiAJCWlmICghdmNwdS0+bW1pb19pc193cml0ZSkKIAkJCXdyaXRlYmFjayA9IGZhbHNlOwotCQlyID0gRU1VTEFURV9VU0VSX0VYSVQ7CisJCXIgPSAwOwogCQl2Y3B1LT5hcmNoLmNvbXBsZXRlX3VzZXJzcGFjZV9pbyA9IGNvbXBsZXRlX2VtdWxhdGVkX21taW87CiAJfSBlbHNlIGlmIChyID09IEVNVUxBVElPTl9SRVNUQVJUKQogCQlnb3RvIHJlc3RhcnQ7CiAJZWxzZQotCQlyID0gRU1VTEFURV9ET05FOworCQlyID0gMTsKIAogCWlmICh3cml0ZWJhY2spIHsKIAkJdW5zaWduZWQgbG9uZyByZmxhZ3MgPSBrdm1feDg2X29wcy0+Z2V0X3JmbGFncyh2Y3B1KTsKQEAgLTY2NjgsOCArNjczMSw4IEBAIGludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCWlmICghY3R4dC0+aGF2ZV9leGNlcHRpb24gfHwKIAkJICAgIGV4Y2VwdGlvbl90eXBlKGN0eHQtPmV4Y2VwdGlvbi52ZWN0b3IpID09IEVYQ1BUX1RSQVApIHsKIAkJCWt2bV9yaXBfd3JpdGUodmNwdSwgY3R4dC0+ZWlwKTsKLQkJCWlmIChyID09IEVNVUxBVEVfRE9ORSAmJiBjdHh0LT50ZikKLQkJCQlrdm1fdmNwdV9kb19zaW5nbGVzdGVwKHZjcHUsICZyKTsKKwkJCWlmIChyICYmIGN0eHQtPnRmKQorCQkJCXIgPSBrdm1fdmNwdV9kb19zaW5nbGVzdGVwKHZjcHUpOwogCQkJX19rdm1fc2V0X3JmbGFncyh2Y3B1LCBjdHh0LT5lZmxhZ3MpOwogCQl9CiAKQEAgLTgyNjMsMTIgKzgzMjYsMTEgQEAgc3RhdGljIGludCB2Y3B1X3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiBzdGF0aWMgaW5saW5lIGludCBjb21wbGV0ZV9lbXVsYXRlZF9pbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJaW50IHI7CisKIAl2Y3B1LT5zcmN1X2lkeCA9IHNyY3VfcmVhZF9sb2NrKCZ2Y3B1LT5rdm0tPnNyY3UpOwogCXIgPSBrdm1fZW11bGF0ZV9pbnN0cnVjdGlvbih2Y3B1LCBFTVVMVFlQRV9OT19ERUNPREUpOwogCXNyY3VfcmVhZF91bmxvY2soJnZjcHUtPmt2bS0+c3JjdSwgdmNwdS0+c3JjdV9pZHgpOwotCWlmIChyICE9IEVNVUxBVEVfRE9ORSkKLQkJcmV0dXJuIDA7Ci0JcmV0dXJuIDE7CisJcmV0dXJuIHI7CiB9CiAKIHN0YXRpYyBpbnQgY29tcGxldGVfZW11bGF0ZWRfcGlvKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKQEAgLTg2MzYsMTQgKzg2OTgsMTcgQEAgaW50IGt2bV90YXNrX3N3aXRjaChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHUxNiB0c3Nfc2VsZWN0b3IsIGludCBpZHRfaW5kZXgsCiAKIAlyZXQgPSBlbXVsYXRvcl90YXNrX3N3aXRjaChjdHh0LCB0c3Nfc2VsZWN0b3IsIGlkdF9pbmRleCwgcmVhc29uLAogCQkJCSAgIGhhc19lcnJvcl9jb2RlLCBlcnJvcl9jb2RlKTsKLQotCWlmIChyZXQpCi0JCXJldHVybiBFTVVMQVRFX0ZBSUw7CisJaWYgKHJldCkgeworCQl2Y3B1LT5ydW4tPmV4aXRfcmVhc29uID0gS1ZNX0VYSVRfSU5URVJOQUxfRVJST1I7CisJCXZjcHUtPnJ1bi0+aW50ZXJuYWwuc3ViZXJyb3IgPSBLVk1fSU5URVJOQUxfRVJST1JfRU1VTEFUSU9OOworCQl2Y3B1LT5ydW4tPmludGVybmFsLm5kYXRhID0gMDsKKwkJcmV0dXJuIDA7CisJfQogCiAJa3ZtX3JpcF93cml0ZSh2Y3B1LCBjdHh0LT5laXApOwogCWt2bV9zZXRfcmZsYWdzKHZjcHUsIGN0eHQtPmVmbGFncyk7CiAJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2Y3B1KTsKLQlyZXR1cm4gRU1VTEFURV9ET05FOworCXJldHVybiAxOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoa3ZtX3Rhc2tfc3dpdGNoKTsKIApAQCAtOTM2MSw2ICs5NDI2LDcgQEAgaW50IGt2bV9hcmNoX2luaXRfdm0oc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBsb25nIHR5cGUpCiAKIAlJTklUX0hMSVNUX0hFQUQoJmt2bS0+YXJjaC5tYXNrX25vdGlmaWVyX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZrdm0tPmFyY2guYWN0aXZlX21tdV9wYWdlcyk7CisJSU5JVF9MSVNUX0hFQUQoJmt2bS0+YXJjaC56YXBwZWRfb2Jzb2xldGVfcGFnZXMpOwogCUlOSVRfTElTVF9IRUFEKCZrdm0tPmFyY2guYXNzaWduZWRfZGV2X2hlYWQpOwogCWF0b21pY19zZXQoJmt2bS0+YXJjaC5ub25jb2hlcmVudF9kbWFfY291bnQsIDApOwogCkBAIC05NjkwLDggKzk3NTYsMTMgQEAgdm9pZCBrdm1fYXJjaF9jb21taXRfbWVtb3J5X3JlZ2lvbihzdHJ1Y3Qga3ZtICprdm0sCiAJICogU2NhbiBzcHRlcyBpZiBkaXJ0eSBsb2dnaW5nIGhhcyBiZWVuIHN0b3BwZWQsIGRyb3BwaW5nIHRob3NlCiAJICogd2hpY2ggY2FuIGJlIGNvbGxhcHNlZCBpbnRvIGEgc2luZ2xlIGxhcmdlLXBhZ2Ugc3B0ZS4gIExhdGVyCiAJICogcGFnZSBmYXVsdHMgd2lsbCBjcmVhdGUgdGhlIGxhcmdlLXBhZ2Ugc3B0ZXMuCisJICoKKwkgKiBUaGVyZSBpcyBubyBuZWVkIHRvIGRvIHRoaXMgaW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgY2FzZXM6CisJICogQ1JFQVRFOglObyBkaXJ0eSBtYXBwaW5ncyB3aWxsIGFscmVhZHkgZXhpc3QuCisJICogTU9WRS9ERUxFVEU6CVRoZSBvbGQgbWFwcGluZ3Mgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiBjbGVhbmVkIHVwIGJ5CisJICoJCWt2bV9hcmNoX2ZsdXNoX3NoYWRvd19tZW1zbG90KCkKIAkgKi8KLQlpZiAoKGNoYW5nZSAhPSBLVk1fTVJfREVMRVRFKSAmJgorCWlmIChjaGFuZ2UgPT0gS1ZNX01SX0ZMQUdTX09OTFkgJiYKIAkJKG9sZC0+ZmxhZ3MgJiBLVk1fTUVNX0xPR19ESVJUWV9QQUdFUykgJiYKIAkJIShuZXctPmZsYWdzICYgS1ZNX01FTV9MT0dfRElSVFlfUEFHRVMpKQogCQlrdm1fbW11X3phcF9jb2xsYXBzaWJsZV9zcHRlcyhrdm0sIG5ldyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmggYi9hcmNoL3g4Ni9rdm0veDg2LmgKaW5kZXggYjUyNzRlMi4uZGJmNzQ0MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5oCisrKyBiL2FyY2gveDg2L2t2bS94ODYuaApAQCAtMjYxLDcgKzI2MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBrdm1fY2hlY2tfaGFzX3F1aXJrKHN0cnVjdCBrdm0gKmt2bSwgdTY0IHF1aXJrKQogfQogCiB2b2lkIGt2bV9zZXRfcGVuZGluZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwotaW50IGt2bV9pbmplY3RfcmVhbG1vZGVfaW50ZXJydXB0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IGlycSwgaW50IGluY19laXApOwordm9pZCBrdm1faW5qZWN0X3JlYWxtb2RlX2ludGVycnVwdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCBpcnEsIGludCBpbmNfZWlwKTsKIAogdm9pZCBrdm1fd3JpdGVfdHNjKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IG1zcl9kYXRhICptc3IpOwogdTY0IGdldF9rdm1jbG9ja19ucyhzdHJ1Y3Qga3ZtICprdm0pOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vbWVtX2VuY3J5cHQuYyBiL2FyY2gveDg2L21tL21lbV9lbmNyeXB0LmMKaW5kZXggZmVjZTMwY2EuLjkyNjhjMTIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL21lbV9lbmNyeXB0LmMKKysrIGIvYXJjaC94ODYvbW0vbWVtX2VuY3J5cHQuYwpAQCAtMzQ0LDEzICszNDQsMTEgQEAgYm9vbCBzbWVfYWN0aXZlKHZvaWQpCiB7CiAJcmV0dXJuIHNtZV9tZV9tYXNrICYmICFzZXZfZW5hYmxlZDsKIH0KLUVYUE9SVF9TWU1CT0woc21lX2FjdGl2ZSk7CiAKIGJvb2wgc2V2X2FjdGl2ZSh2b2lkKQogewogCXJldHVybiBzbWVfbWVfbWFzayAmJiBzZXZfZW5hYmxlZDsKIH0KLUVYUE9SVF9TWU1CT0woc2V2X2FjdGl2ZSk7CiAKIC8qIE92ZXJyaWRlIGZvciBETUEgZGlyZWN0IGFsbG9jYXRpb24gY2hlY2sgLSBBUkNIX0hBU19GT1JDRV9ETUFfVU5FTkNSWVBURUQgKi8KIGJvb2wgZm9yY2VfZG1hX3VuZW5jcnlwdGVkKHN0cnVjdCBkZXZpY2UgKmRldikKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3BhdF9yYnRyZWUuYyBiL2FyY2gveDg2L21tL3BhdF9yYnRyZWUuYwppbmRleCBmYTE2MDM2Zi4uNjVlYmU0YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vcGF0X3JidHJlZS5jCisrKyBiL2FyY2gveDg2L21tL3BhdF9yYnRyZWUuYwpAQCAtNTQsMjMgKzU0LDEwIEBAIHN0YXRpYyB1NjQgZ2V0X3N1YnRyZWVfbWF4X2VuZChzdHJ1Y3QgcmJfbm9kZSAqbm9kZSkKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdTY0IGNvbXB1dGVfc3VidHJlZV9tYXhfZW5kKHN0cnVjdCBtZW10eXBlICpkYXRhKQotewotCXU2NCBtYXhfZW5kID0gZGF0YS0+ZW5kLCBjaGlsZF9tYXhfZW5kOworI2RlZmluZSBOT0RFX0VORChub2RlKSAoKG5vZGUpLT5lbmQpCiAKLQljaGlsZF9tYXhfZW5kID0gZ2V0X3N1YnRyZWVfbWF4X2VuZChkYXRhLT5yYi5yYl9yaWdodCk7Ci0JaWYgKGNoaWxkX21heF9lbmQgPiBtYXhfZW5kKQotCQltYXhfZW5kID0gY2hpbGRfbWF4X2VuZDsKLQotCWNoaWxkX21heF9lbmQgPSBnZXRfc3VidHJlZV9tYXhfZW5kKGRhdGEtPnJiLnJiX2xlZnQpOwotCWlmIChjaGlsZF9tYXhfZW5kID4gbWF4X2VuZCkKLQkJbWF4X2VuZCA9IGNoaWxkX21heF9lbmQ7Ci0KLQlyZXR1cm4gbWF4X2VuZDsKLX0KLQotUkJfREVDTEFSRV9DQUxMQkFDS1Moc3RhdGljLCBtZW10eXBlX3JiX2F1Z21lbnRfY2IsIHN0cnVjdCBtZW10eXBlLCByYiwKLQkJICAgICB1NjQsIHN1YnRyZWVfbWF4X2VuZCwgY29tcHV0ZV9zdWJ0cmVlX21heF9lbmQpCitSQl9ERUNMQVJFX0NBTExCQUNLU19NQVgoc3RhdGljLCBtZW10eXBlX3JiX2F1Z21lbnRfY2IsCisJCQkgc3RydWN0IG1lbXR5cGUsIHJiLCB1NjQsIHN1YnRyZWVfbWF4X2VuZCwgTk9ERV9FTkQpCiAKIC8qIEZpbmQgdGhlIGZpcnN0IChsb3dlc3Qgc3RhcnQgYWRkcikgb3ZlcmxhcHBpbmcgcmFuZ2UgZnJvbSByYiB0cmVlICovCiBzdGF0aWMgc3RydWN0IG1lbXR5cGUgKm1lbXR5cGVfcmJfbG93ZXN0X21hdGNoKHN0cnVjdCByYl9yb290ICpyb290LApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGd0YWJsZS5jIGIvYXJjaC94ODYvbW0vcGd0YWJsZS5jCmluZGV4IDQ0ODE2ZmYuLjNlNGI5MDMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BndGFibGUuYworKysgYi9hcmNoL3g4Ni9tbS9wZ3RhYmxlLmMKQEAgLTQ1LDcgKzQ1LDcgQEAgZWFybHlfcGFyYW0oInVzZXJwdGUiLCBzZXR1cF91c2VycHRlKTsKIAogdm9pZCBfX19wdGVfZnJlZV90bGIoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwgc3RydWN0IHBhZ2UgKnB0ZSkKIHsKLQlwZ3RhYmxlX3BhZ2VfZHRvcihwdGUpOworCXBndGFibGVfcHRlX3BhZ2VfZHRvcihwdGUpOwogCXBhcmF2aXJ0X3JlbGVhc2VfcHRlKHBhZ2VfdG9fcGZuKHB0ZSkpOwogCXBhcmF2aXJ0X3RsYl9yZW1vdmVfdGFibGUodGxiLCBwdGUpOwogfQpAQCAtMzU3LDcgKzM1Nyw3IEBAIHN0YXRpYyB2b2lkIHBnZF9wcmVwb3B1bGF0ZV91c2VyX3BtZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpwZ2RfY2FjaGU7CiAKLXZvaWQgX19pbml0IHBnZF9jYWNoZV9pbml0KHZvaWQpCit2b2lkIF9faW5pdCBwZ3RhYmxlX2NhY2hlX2luaXQodm9pZCkKIHsKIAkvKgogCSAqIFdoZW4gUEFFIGtlcm5lbCBpcyBydW5uaW5nIGFzIGEgWGVuIGRvbWFpbiwgaXQgZG9lcyBub3QgdXNlCkBAIC00MDIsMTAgKzQwMiw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfcGdkX2ZyZWUocGdkX3QgKnBnZCkKIH0KICNlbHNlCiAKLXZvaWQgX19pbml0IHBnZF9jYWNoZV9pbml0KHZvaWQpCi17Ci19Ci0KIHN0YXRpYyBpbmxpbmUgcGdkX3QgKl9wZ2RfYWxsb2Modm9pZCkKIHsKIAlyZXR1cm4gKHBnZF90ICopX19nZXRfZnJlZV9wYWdlcyhHRlBfUEdUQUJMRV9VU0VSLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vdGVzdG1taW90cmFjZS5jIGIvYXJjaC94ODYvbW0vdGVzdG1taW90cmFjZS5jCmluZGV4IDA4ODFlMWYuLmE4YmQ5NTIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3Rlc3RtbWlvdHJhY2UuYworKysgYi9hcmNoL3g4Ni9tbS90ZXN0bW1pb3RyYWNlLmMKQEAgLTgsNiArOCw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9tbWlvdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBtbWlvX2FkZHJlc3M7CiBtb2R1bGVfcGFyYW1faHcobW1pb19hZGRyZXNzLCB1bG9uZywgaW9tZW0sIDApOwpAQCAtMTE1LDYgKzExNiwxMCBAQCBzdGF0aWMgdm9pZCBkb190ZXN0X2J1bGtfaW9yZW1hcHBpbmcodm9pZCkKIHN0YXRpYyBpbnQgX19pbml0IGluaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHNpemUgPSAocmVhZF9mYXIpID8gKDggPDwgMjApIDogKDE2IDw8IDEwKTsKKwlpbnQgcmV0ID0gc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fTU1JT1RSQUNFKTsKKworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAlpZiAobW1pb19hZGRyZXNzID09IDApIHsKIAkJcHJfZXJyKCJ5b3UgaGF2ZSB0byB1c2UgdGhlIG1vZHVsZSBhcmd1bWVudCBtbWlvX2FkZHJlc3MuXG4iKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9zdGEyeDExLWZpeHVwLmMgYi9hcmNoL3g4Ni9wY2kvc3RhMngxMS1maXh1cC5jCmluZGV4IDk3YmJjMTIuLjYyNjlhMTcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9zdGEyeDExLWZpeHVwLmMKKysrIGIvYXJjaC94ODYvcGNpL3N0YTJ4MTEtZml4dXAuYwpAQCAtMSw4ICsxLDYgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKIC8qCi0gKiBhcmNoL3g4Ni9wY2kvc3RhMngxMS1maXh1cC5jCi0gKiBnbHVlIGNvZGUgZm9yIGxpYi9zd2lvdGxiLmMgYW5kIERNQSB0cmFuc2xhdGlvbiBiZXR3ZWVuIFNUQTJ4MTEKLSAqIEFNQkEgbWVtb3J5IG1hcHBpbmcgYW5kIHRoZSBYODYgbWVtb3J5IG1hcHBpbmcKKyAqIERNQSB0cmFuc2xhdGlvbiBiZXR3ZWVuIFNUQTJ4MTEgQU1CQSBtZW1vcnkgbWFwcGluZyBhbmQgdGhlIHg4NiBtZW1vcnkgbWFwcGluZwogICoKICAqIFNUIE1pY3JvZWxlY3Ryb25pY3MgQ29ubmVYdCAoU1RBMlgxMS9TVEEyWDEwKQogICoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3B1cmdhdG9yeS9NYWtlZmlsZSBiL2FyY2gveDg2L3B1cmdhdG9yeS9NYWtlZmlsZQppbmRleCA1Mjc3NDkwLi5mYjRlZTU0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wdXJnYXRvcnkvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvcHVyZ2F0b3J5L01ha2VmaWxlCkBAIC0yNSw2ICsyNSw3IEBACiAKIFBVUkdBVE9SWV9DRkxBR1NfUkVNT1ZFIDo9IC1tY21vZGVsPWtlcm5lbAogUFVSR0FUT1JZX0NGTEFHUyA6PSAtbWNtb2RlbD1sYXJnZSAtZmZyZWVzdGFuZGluZyAtZm5vLXplcm8taW5pdGlhbGl6ZWQtaW4tYnNzCitQVVJHQVRPUllfQ0ZMQUdTICs9ICQoRElTQUJMRV9TVEFDS0xFQUtfUExVR0lOKQogCiAjIERlZmF1bHQgS0JVSUxEX0NGTEFHUyBjYW4gaGF2ZSAtcGcgb3B0aW9uIHNldCB3aGVuIEZUUkFDRSBpcyBlbmFibGVkLiBUaGF0CiAjIGluIHR1cm4gbGVhdmVzIHNvbWUgdW5kZWZpbmVkIHN5bWJvbHMgbGlrZSBfX2ZlbnRyeV9fIGluIHB1cmdhdG9yeSBhbmQgbm90CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni91bS9hc20vYmFycmllci5oIGIvYXJjaC94ODYvdW0vYXNtL2JhcnJpZXIuaAppbmRleCBmMzFlNWQ5Li4xNjViZTdmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni91bS9hc20vYmFycmllci5oCisrKyBiL2FyY2gveDg2L3VtL2FzbS9iYXJyaWVyLmgKQEAgLTIsMTQgKzIsNyBAQAogI2lmbmRlZiBfQVNNX1VNX0JBUlJJRVJfSF8KICNkZWZpbmUgX0FTTV9VTV9CQVJSSUVSX0hfCiAKLSNpbmNsdWRlIDxhc20vYXNtLmg+Ci0jaW5jbHVkZSA8YXNtL3NlZ21lbnQuaD4KLSNpbmNsdWRlIDxhc20vY3B1ZmVhdHVyZXMuaD4KLSNpbmNsdWRlIDxhc20vY21weGNoZy5oPgotI2luY2x1ZGUgPGFzbS9ub3BzLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9pcnFmbGFncy5oPgorI2luY2x1ZGUgPGFzbS9hbHRlcm5hdGl2ZS5oPgogCiAvKgogICogRm9yY2Ugc3RyaWN0IENQVSBvcmRlcmluZy4KQEAgLTMwLDkgKzIzLDYgQEAKIAogI2VuZGlmIC8qIENPTkZJR19YODZfMzIgKi8KIAotI2RlZmluZSBkbWFfcm1iKCkJYmFycmllcigpCi0jZGVmaW5lIGRtYV93bWIoKQliYXJyaWVyKCkKLQogI2luY2x1ZGUgPGFzbS1nZW5lcmljL2JhcnJpZXIuaD4KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni91bS92ZHNvL3VtX3Zkc28uYyBiL2FyY2gveDg2L3VtL3Zkc28vdW1fdmRzby5jCmluZGV4IGFjOWMwMmIuLjg5MTg2ODcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3VtL3Zkc28vdW1fdmRzby5jCisrKyBiL2FyY2gveDg2L3VtL3Zkc28vdW1fdmRzby5jCkBAIC00Nyw3ICs0Nyw3IEBAIHRpbWVfdCBfX3Zkc29fdGltZSh0aW1lX3QgKnQpCiAKIAlyZXR1cm4gc2VjczsKIH0KLWludCB0aW1lKHRpbWVfdCAqdCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIl9fdmRzb190aW1lIikpKTsKK3RpbWVfdCB0aW1lKHRpbWVfdCAqdCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIl9fdmRzb190aW1lIikpKTsKIAogbG9uZwogX192ZHNvX2dldGNwdSh1bnNpZ25lZCAqY3B1LCB1bnNpZ25lZCAqbm9kZSwgc3RydWN0IGdldGNwdV9jYWNoZSAqdW51c2VkKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL21tdV9wdi5jIGIvYXJjaC94ODYveGVuL21tdV9wdi5jCmluZGV4IDI2ZThiMzIuLmM4ZGJlZTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9tbXVfcHYuYworKysgYi9hcmNoL3g4Ni94ZW4vbW11X3B2LmMKQEAgLTI2MjUsNyArMjYyNSw2IEBAIGludCB4ZW5fY3JlYXRlX2NvbnRpZ3VvdXNfcmVnaW9uKHBoeXNfYWRkcl90IHBzdGFydCwgdW5zaWduZWQgaW50IG9yZGVyLAogCSpkbWFfaGFuZGxlID0gdmlydF90b19tYWNoaW5lKHZzdGFydCkubWFkZHI7CiAJcmV0dXJuIHN1Y2Nlc3MgPyAwIDogLUVOT01FTTsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKHhlbl9jcmVhdGVfY29udGlndW91c19yZWdpb24pOwogCiB2b2lkIHhlbl9kZXN0cm95X2NvbnRpZ3VvdXNfcmVnaW9uKHBoeXNfYWRkcl90IHBzdGFydCwgdW5zaWduZWQgaW50IG9yZGVyKQogewpAQCAtMjY2MCw3ICsyNjU5LDYgQEAgdm9pZCB4ZW5fZGVzdHJveV9jb250aWd1b3VzX3JlZ2lvbihwaHlzX2FkZHJfdCBwc3RhcnQsIHVuc2lnbmVkIGludCBvcmRlcikKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnhlbl9yZXNlcnZhdGlvbl9sb2NrLCBmbGFncyk7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTCh4ZW5fZGVzdHJveV9jb250aWd1b3VzX3JlZ2lvbik7CiAKIHN0YXRpYyBub2lubGluZSB2b2lkIHhlbl9mbHVzaF90bGJfYWxsKHZvaWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3h0ZW5zYS9LY29uZmlnIGIvYXJjaC94dGVuc2EvS2NvbmZpZwppbmRleCBmYjY0NDY5Li5hOGU3YmViIDEwMDY0NAotLS0gYS9hcmNoL3h0ZW5zYS9LY29uZmlnCisrKyBiL2FyY2gveHRlbnNhL0tjb25maWcKQEAgLTUsNyArNSw2IEBACiAJc2VsZWN0IEFSQ0hfSEFTX0JJTkZNVF9GTEFUIGlmICFNTVUKIAlzZWxlY3QgQVJDSF9IQVNfU1lOQ19ETUFfRk9SX0NQVQogCXNlbGVjdCBBUkNIX0hBU19TWU5DX0RNQV9GT1JfREVWSUNFCi0Jc2VsZWN0IEFSQ0hfTk9fQ09IRVJFTlRfRE1BX01NQVAgaWYgIU1NVQogCXNlbGVjdCBBUkNIX1VTRV9RVUVVRURfUldMT0NLUwogCXNlbGVjdCBBUkNIX1VTRV9RVUVVRURfU1BJTkxPQ0tTCiAJc2VsZWN0IEFSQ0hfV0FOVF9GUkFNRV9QT0lOVEVSUwpkaWZmIC0tZ2l0IGEvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vcGdhbGxvYy5oIGIvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IGRkNzQ0YWEuLjFkMzhmMGUgMTAwNjQ0Ci0tLSBhL2FyY2gveHRlbnNhL2luY2x1ZGUvYXNtL3BnYWxsb2MuaAorKysgYi9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIGlubGluZSBwZ3RhYmxlX3QgcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIAlpZiAoIXB0ZSkKIAkJcmV0dXJuIE5VTEw7CiAJcGFnZSA9IHZpcnRfdG9fcGFnZShwdGUpOwotCWlmICghcGd0YWJsZV9wYWdlX2N0b3IocGFnZSkpIHsKKwlpZiAoIXBndGFibGVfcHRlX3BhZ2VfY3RvcihwYWdlKSkgewogCQlfX2ZyZWVfcGFnZShwYWdlKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHRlX2ZyZWVfa2VybmVsKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwdGVfdCAqcHRlKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcHRlX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBndGFibGVfdCBwdGUpCiB7Ci0JcGd0YWJsZV9wYWdlX2R0b3IocHRlKTsKKwlwZ3RhYmxlX3B0ZV9wYWdlX2R0b3IocHRlKTsKIAlfX2ZyZWVfcGFnZShwdGUpOwogfQogI2RlZmluZSBwbWRfcGd0YWJsZShwbWQpIHBtZF9wYWdlKHBtZCkKZGlmZiAtLWdpdCBhL2FyY2gveHRlbnNhL2luY2x1ZGUvYXNtL3BndGFibGUuaCBiL2FyY2gveHRlbnNhL2luY2x1ZGUvYXNtL3BndGFibGUuaAppbmRleCBjZTNmZjVlLi4zZjdmZTVhIDEwMDY0NAotLS0gYS9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKKysrIGIvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vcGd0YWJsZS5oCkBAIC0yMzgsNyArMjM4LDYgQEAgZXh0ZXJuIHZvaWQgcGFnaW5nX2luaXQodm9pZCk7CiAjIGRlZmluZSBzd2FwcGVyX3BnX2RpciBOVUxMCiBzdGF0aWMgaW5saW5lIHZvaWQgcGFnaW5nX2luaXQodm9pZCkgeyB9CiAjZW5kaWYKLXN0YXRpYyBpbmxpbmUgdm9pZCBwZ3RhYmxlX2NhY2hlX2luaXQodm9pZCkgeyB9CiAKIC8qCiAgKiBUaGUgcG1kIGNvbnRhaW5zIHRoZSBrZXJuZWwgdmlydHVhbCBhZGRyZXNzIG9mIHRoZSBwdGUgcGFnZS4KZGlmZiAtLWdpdCBhL2FyY2gveHRlbnNhL2luY2x1ZGUvYXNtL3RsYmZsdXNoLmggYi9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS90bGJmbHVzaC5oCmluZGV4IDA2ODc1ZmViLi44NTZlMmRhIDEwMDY0NAotLS0gYS9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS90bGJmbHVzaC5oCisrKyBiL2FyY2gveHRlbnNhL2luY2x1ZGUvYXNtL3RsYmZsdXNoLmgKQEAgLTE2MCw5ICsxNjAsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW52YWxpZGF0ZV9kdGxiX21hcHBpbmcgKHVuc2lnbmVkIGFkZHJlc3MpCiAJCWludmFsaWRhdGVfZHRsYl9lbnRyeSh0bGJfZW50cnkpOwogfQogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpCWRvIHsgfSB3aGlsZSAoMCkKLQotCiAvKgogICogRE8gTk9UIFVTRSBUSEVTRSBGVU5DVElPTlMuICBUaGVzZSBpbnN0cnVjdGlvbnMgYXJlbid0IHBhcnQgb2YgdGhlIFh0ZW5zYQogICogSVNBIGFuZCBleGlzdCBvbmx5IGZvciB0ZXN0IHB1cnBvc2VzLi4KZGlmZiAtLWdpdCBhL2FyY2gveHRlbnNhL2luY2x1ZGUvdWFwaS9hc20vbW1hbi5oIGIvYXJjaC94dGVuc2EvaW5jbHVkZS91YXBpL2FzbS9tbWFuLmgKaW5kZXggZWJiYjQ4OC4uZTVlNjQzNyAxMDA2NDQKLS0tIGEvYXJjaC94dGVuc2EvaW5jbHVkZS91YXBpL2FzbS9tbWFuLmgKKysrIGIvYXJjaC94dGVuc2EvaW5jbHVkZS91YXBpL2FzbS9tbWFuLmgKQEAgLTEwMyw2ICsxMDMsOSBAQAogI2RlZmluZSBNQURWX1dJUEVPTkZPUksgMTgJCS8qIFplcm8gbWVtb3J5IG9uIGZvcmssIGNoaWxkIG9ubHkgKi8KICNkZWZpbmUgTUFEVl9LRUVQT05GT1JLIDE5CQkvKiBVbmRvIE1BRFZfV0lQRU9ORk9SSyAqLwogCisjZGVmaW5lIE1BRFZfQ09MRAkyMAkJLyogZGVhY3RpdmF0ZSB0aGVzZSBwYWdlcyAqLworI2RlZmluZSBNQURWX1BBR0VPVVQJMjEJCS8qIHJlY2xhaW0gdGhlc2UgcGFnZXMgKi8KKwogLyogY29tcGF0aWJpbGl0eSBmbGFncyAqLwogI2RlZmluZSBNQVBfRklMRQkwCiAKZGlmZiAtLWdpdCBhL2FyY2gveHRlbnNhL2tlcm5lbC9wY2ktZG1hLmMgYi9hcmNoL3h0ZW5zYS9rZXJuZWwvcGNpLWRtYS5jCmluZGV4IDY1ZjA1NzcuLjE1NDk3OWQgMTAwNjQ0Ci0tLSBhL2FyY2gveHRlbnNhL2tlcm5lbC9wY2ktZG1hLmMKKysrIGIvYXJjaC94dGVuc2Eva2VybmVsL3BjaS1kbWEuYwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgKmFyY2hfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmhhbmRsZSwKIAlpZiAoUGFnZUhpZ2hNZW0ocGFnZSkpIHsKIAkJdm9pZCAqcDsKIAotCQlwID0gZG1hX2NvbW1vbl9jb250aWd1b3VzX3JlbWFwKHBhZ2UsIHNpemUsIFZNX01BUCwKKwkJcCA9IGRtYV9jb21tb25fY29udGlndW91c19yZW1hcChwYWdlLCBzaXplLAogCQkJCQkJcGdwcm90X25vbmNhY2hlZChQQUdFX0tFUk5FTCksCiAJCQkJCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOwogCQlpZiAoIXApIHsKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIGFyY2hfZG1hX2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgdm9pZCAqdmFkZHIsCiAJCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UocGxhdGZvcm1fdmFkZHJfdG9fY2FjaGVkKHZhZGRyKSk7CiAJfSBlbHNlIHsKICNpZmRlZiBDT05GSUdfTU1VCi0JCWRtYV9jb21tb25fZnJlZV9yZW1hcCh2YWRkciwgc2l6ZSwgVk1fTUFQKTsKKwkJZG1hX2NvbW1vbl9mcmVlX3JlbWFwKHZhZGRyLCBzaXplKTsKICNlbmRpZgogCQlwYWdlID0gcGZuX3RvX3BhZ2UoUEhZU19QRk4oZG1hX3RvX3BoeXMoZGV2LCBkbWFfaGFuZGxlKSkpOwogCX0KZGlmZiAtLWdpdCBhL2Jsb2NrL2JmcS1pb3NjaGVkLmMgYi9ibG9jay9iZnEtaW9zY2hlZC5jCmluZGV4IGIzM2JlOTIuLjAzMTlkNjMgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2JmcS1pb3NjaGVkLmMKKysrIGIvYmxvY2svYmZxLWlvc2NoZWQuYwpAQCAtMjAxNiw3ICsyMDE2LDcgQEAgc3RhdGljIHZvaWQgYmZxX2FkZF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0ICpycSkKIAkJICAgICAoYmZxcS0+bGFzdF9zZXJ2X3RpbWVfbnMgPiAwICYmCiAJCSAgICAgIGJmcWQtPnJxc19pbmplY3RlZCAmJiBiZnFkLT5ycV9pbl9kcml2ZXIgPiAwKSkgJiYKIAkJICAgIHRpbWVfaXNfYmVmb3JlX2VxX2ppZmZpZXMoYmZxcS0+ZGVjcmVhc2VfdGltZV9qaWYgKwotCQkJCQkgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMCkpKSB7CisJCQkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTApKSkgewogCQkJYmZxZC0+bGFzdF9lbXB0eV9vY2N1cGllZF9ucyA9IGt0aW1lX2dldF9ucygpOwogCQkJLyoKIAkJCSAqIFN0YXJ0IHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBtZWFzdXJpbmcgdGhlCkBAIC0yMDI1LDcgKzIwMjUsMjEgQEAgc3RhdGljIHZvaWQgYmZxX2FkZF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0ICpycSkKIAkJCSAqIGJlIHNldCB3aGVuIHJxIHdpbGwgYmUgZGlzcGF0Y2hlZC4KIAkJCSAqLwogCQkJYmZxZC0+d2FpdF9kaXNwYXRjaCA9IHRydWU7Ci0JCQliZnFkLT5ycXNfaW5qZWN0ZWQgPSBmYWxzZTsKKwkJCS8qCisJCQkgKiBJZiB0aGVyZSBpcyBubyBJL08gaW4gc2VydmljZSBpbiB0aGUgZHJpdmUsCisJCQkgKiB0aGVuIHBvc3NpYmxlIGluamVjdGlvbiBvY2N1cnJlZCBiZWZvcmUgdGhlCisJCQkgKiBhcnJpdmFsIG9mIHJxIHdpbGwgbm90IGFmZmVjdCB0aGUgdG90YWwKKwkJCSAqIHNlcnZpY2UgdGltZSBvZiBycS4gU28gdGhlIGluamVjdGlvbiBsaW1pdAorCQkJICogbXVzdCBub3QgYmUgdXBkYXRlZCBhcyBhIGZ1bmN0aW9uIG9mIHN1Y2gKKwkJCSAqIHRvdGFsIHNlcnZpY2UgdGltZSwgdW5sZXNzIG5ldyBpbmplY3Rpb24KKwkJCSAqIG9jY3VycyBiZWZvcmUgcnEgaXMgY29tcGxldGVkLiBUbyBoYXZlIHRoZQorCQkJICogaW5qZWN0aW9uIGxpbWl0IHVwZGF0ZWQgb25seSBpbiB0aGUgbGF0dGVyCisJCQkgKiBjYXNlLCByZXNldCBycXNfaW5qZWN0ZWQgaGVyZSAocnFzX2luamVjdGVkCisJCQkgKiB3aWxsIGJlIHNldCBpbiBjYXNlIGluamVjdGlvbiBpcyBwZXJmb3JtZWQKKwkJCSAqIG9uIGJmcXEgYmVmb3JlIHJxIGlzIGNvbXBsZXRlZCkuCisJCQkgKi8KKwkJCWlmIChiZnFkLT5ycV9pbl9kcml2ZXIgPT0gMCkKKwkJCQliZnFkLT5ycXNfaW5qZWN0ZWQgPSBmYWxzZTsKIAkJfQogCX0KIApAQCAtNTc4NCwxNCArNTc5OCwxNCBAQCBzdGF0aWMgdm9pZCBiZnFfdXBkYXRlX2luamVjdF9saW1pdChzdHJ1Y3QgYmZxX2RhdGEgKmJmcWQsCiAJdTY0IHRvdF90aW1lX25zID0ga3RpbWVfZ2V0X25zKCkgLSBiZnFkLT5sYXN0X2VtcHR5X29jY3VwaWVkX25zOwogCXVuc2lnbmVkIGludCBvbGRfbGltaXQgPSBiZnFxLT5pbmplY3RfbGltaXQ7CiAKLQlpZiAoYmZxcS0+bGFzdF9zZXJ2X3RpbWVfbnMgPiAwKSB7CisJaWYgKGJmcXEtPmxhc3Rfc2Vydl90aW1lX25zID4gMCAmJiBiZnFkLT5ycXNfaW5qZWN0ZWQpIHsKIAkJdTY0IHRocmVzaG9sZCA9IChiZnFxLT5sYXN0X3NlcnZfdGltZV9ucyAqIDMpPj4xOwogCiAJCWlmICh0b3RfdGltZV9ucyA+PSB0aHJlc2hvbGQgJiYgb2xkX2xpbWl0ID4gMCkgewogCQkJYmZxcS0+aW5qZWN0X2xpbWl0LS07CiAJCQliZnFxLT5kZWNyZWFzZV90aW1lX2ppZiA9IGppZmZpZXM7CiAJCX0gZWxzZSBpZiAodG90X3RpbWVfbnMgPCB0aHJlc2hvbGQgJiYKLQkJCSAgIG9sZF9saW1pdCA8IGJmcWQtPm1heF9ycV9pbl9kcml2ZXI8PDEpCisJCQkgICBvbGRfbGltaXQgPD0gYmZxZC0+bWF4X3JxX2luX2RyaXZlcikKIAkJCWJmcXEtPmluamVjdF9saW1pdCsrOwogCX0KIApAQCAtNTgwOSwxMiArNTgyMywxNCBAQCBzdGF0aWMgdm9pZCBiZnFfdXBkYXRlX2luamVjdF9saW1pdChzdHJ1Y3QgYmZxX2RhdGEgKmJmcWQsCiAJICovCiAJaWYgKChiZnFxLT5sYXN0X3NlcnZfdGltZV9ucyA9PSAwICYmIGJmcWQtPnJxX2luX2RyaXZlciA9PSAxKSB8fAogCSAgICB0b3RfdGltZV9ucyA8IGJmcXEtPmxhc3Rfc2Vydl90aW1lX25zKSB7CisJCWlmIChiZnFxLT5sYXN0X3NlcnZfdGltZV9ucyA9PSAwKSB7CisJCQkvKgorCQkJICogTm93IHdlIGNlcnRhaW5seSBoYXZlIGEgYmFzZSB2YWx1ZTogbWFrZSBzdXJlIHdlCisJCQkgKiBzdGFydCB0cnlpbmcgaW5qZWN0aW9uLgorCQkJICovCisJCQliZnFxLT5pbmplY3RfbGltaXQgPSBtYXhfdCh1bnNpZ25lZCBpbnQsIDEsIG9sZF9saW1pdCk7CisJCX0KIAkJYmZxcS0+bGFzdF9zZXJ2X3RpbWVfbnMgPSB0b3RfdGltZV9uczsKLQkJLyoKLQkJICogTm93IHdlIGNlcnRhaW5seSBoYXZlIGEgYmFzZSB2YWx1ZTogbWFrZSBzdXJlIHdlCi0JCSAqIHN0YXJ0IHRyeWluZyBpbmplY3Rpb24uCi0JCSAqLwotCQliZnFxLT5pbmplY3RfbGltaXQgPSBtYXhfdCh1bnNpZ25lZCBpbnQsIDEsIG9sZF9saW1pdCk7CiAJfSBlbHNlIGlmICghYmZxZC0+cnFzX2luamVjdGVkICYmIGJmcWQtPnJxX2luX2RyaXZlciA9PSAxKQogCQkvKgogCQkgKiBObyBJL08gaW5qZWN0ZWQgYW5kIG5vIHJlcXVlc3Qgc3RpbGwgaW4gc2VydmljZSBpbgpAQCAtNTgzMCw2ICs1ODQ2LDcgQEAgc3RhdGljIHZvaWQgYmZxX3VwZGF0ZV9pbmplY3RfbGltaXQoc3RydWN0IGJmcV9kYXRhICpiZnFkLAogCiAJLyogdXBkYXRlIGNvbXBsZXRlLCBub3Qgd2FpdGluZyBmb3IgYW55IHJlcXVlc3QgY29tcGxldGlvbiBhbnkgbG9uZ2VyICovCiAJYmZxZC0+d2FpdGVkX3JxID0gTlVMTDsKKwliZnFkLT5ycXNfaW5qZWN0ZWQgPSBmYWxzZTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1jb3JlLmMgYi9ibG9jay9ibGstY29yZS5jCmluZGV4IDg3NWU4ZDEuLmQ1ZTY2OGUgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1jb3JlLmMKKysrIGIvYmxvY2svYmxrLWNvcmUuYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3JhdGVsaW1pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9ibGstY2dyb3VwLmg+CisjaW5jbHVkZSA8bGludXgvdDEwLXBpLmg+CiAjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgogI2luY2x1ZGUgPGxpbnV4L2JwZi5oPgogI2luY2x1ZGUgPGxpbnV4L3BzaS5oPgpAQCAtMTQzNiw2ICsxNDM3LDEyIEBAIGJvb2wgYmxrX3VwZGF0ZV9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0ICpyZXEsIGJsa19zdGF0dXNfdCBlcnJvciwKIAlpZiAoIXJlcS0+YmlvKQogCQlyZXR1cm4gZmFsc2U7CiAKKyNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkKKwlpZiAoYmxrX2ludGVncml0eV9ycShyZXEpICYmIHJlcV9vcChyZXEpID09IFJFUV9PUF9SRUFEICYmCisJICAgIGVycm9yID09IEJMS19TVFNfT0spCisJCXJlcS0+cS0+aW50ZWdyaXR5LnByb2ZpbGUtPmNvbXBsZXRlX2ZuKHJlcSwgbnJfYnl0ZXMpOworI2VuZGlmCisKIAlpZiAodW5saWtlbHkoZXJyb3IgJiYgIWJsa19ycV9pc19wYXNzdGhyb3VnaChyZXEpICYmCiAJCSAgICAgIShyZXEtPnJxX2ZsYWdzICYgUlFGX1FVSUVUKSkpCiAJCXByaW50X3JlcV9lcnJvcihyZXEsIGVycm9yLCBfX2Z1bmNfXyk7CmRpZmYgLS1naXQgYS9ibG9jay9ibGstZmx1c2guYyBiL2Jsb2NrL2Jsay1mbHVzaC5jCmluZGV4IGFlZGQ5MzIuLjFlZWM5Y2IgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1mbHVzaC5jCisrKyBiL2Jsb2NrL2Jsay1mbHVzaC5jCkBAIC0yMTQsNiArMjE0LDE2IEBAIHN0YXRpYyB2b2lkIGZsdXNoX2VuZF9pbyhzdHJ1Y3QgcmVxdWVzdCAqZmx1c2hfcnEsIGJsa19zdGF0dXNfdCBlcnJvcikKIAogCS8qIHJlbGVhc2UgdGhlIHRhZydzIG93bmVyc2hpcCB0byB0aGUgcmVxIGNsb25lZCBmcm9tICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmZxLT5tcV9mbHVzaF9sb2NrLCBmbGFncyk7CisKKwlpZiAoIXJlZmNvdW50X2RlY19hbmRfdGVzdCgmZmx1c2hfcnEtPnJlZikpIHsKKwkJZnEtPnJxX3N0YXR1cyA9IGVycm9yOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmcS0+bXFfZmx1c2hfbG9jaywgZmxhZ3MpOworCQlyZXR1cm47CisJfQorCisJaWYgKGZxLT5ycV9zdGF0dXMgIT0gQkxLX1NUU19PSykKKwkJZXJyb3IgPSBmcS0+cnFfc3RhdHVzOworCiAJaGN0eCA9IGZsdXNoX3JxLT5tcV9oY3R4OwogCWlmICghcS0+ZWxldmF0b3IpIHsKIAkJYmxrX21xX3RhZ19zZXRfcnEoaGN0eCwgZmx1c2hfcnEtPnRhZywgZnEtPm9yaWdfcnEpOwpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLWludGVncml0eS5jIGIvYmxvY2svYmxrLWludGVncml0eS5jCmluZGV4IGNhMzliNDYuLmZmMTA3MGUgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1pbnRlZ3JpdHkuYworKysgYi9ibG9jay9ibGstaW50ZWdyaXR5LmMKQEAgLTM2OCwxMCArMzY4LDIxIEBAIHN0YXRpYyBibGtfc3RhdHVzX3QgYmxrX2ludGVncml0eV9ub3BfZm4oc3RydWN0IGJsa19pbnRlZ3JpdHlfaXRlciAqaXRlcikKIAlyZXR1cm4gQkxLX1NUU19PSzsKIH0KIAorc3RhdGljIHZvaWQgYmxrX2ludGVncml0eV9ub3BfcHJlcGFyZShzdHJ1Y3QgcmVxdWVzdCAqcnEpCit7Cit9CisKK3N0YXRpYyB2b2lkIGJsa19pbnRlZ3JpdHlfbm9wX2NvbXBsZXRlKHN0cnVjdCByZXF1ZXN0ICpycSwKKwkJdW5zaWduZWQgaW50IG5yX2J5dGVzKQoreworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGJsa19pbnRlZ3JpdHlfcHJvZmlsZSBub3BfcHJvZmlsZSA9IHsKIAkubmFtZSA9ICJub3AiLAogCS5nZW5lcmF0ZV9mbiA9IGJsa19pbnRlZ3JpdHlfbm9wX2ZuLAogCS52ZXJpZnlfZm4gPSBibGtfaW50ZWdyaXR5X25vcF9mbiwKKwkucHJlcGFyZV9mbiA9IGJsa19pbnRlZ3JpdHlfbm9wX3ByZXBhcmUsCisJLmNvbXBsZXRlX2ZuID0gYmxrX2ludGVncml0eV9ub3BfY29tcGxldGUsCiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1pb2Nvc3QuYyBiL2Jsb2NrL2Jsay1pb2Nvc3QuYwppbmRleCAzYjM5ZGViLi4yYTNkYjgwIDEwMDY0NAotLS0gYS9ibG9jay9ibGstaW9jb3N0LmMKKysrIGIvYmxvY2svYmxrLWlvY29zdC5jCkBAIC01MjksOCArNTI5LDggQEAgc3RydWN0IGlvY2dfd2FrZV9jdHggewogc3RhdGljIGNvbnN0IHN0cnVjdCBpb2NfcGFyYW1zIGF1dG9wW10gPSB7CiAJW0FVVE9QX0hERF0gPSB7CiAJCS5xb3MJCQkJPSB7Ci0JCQlbUU9TX1JMQVRdCQk9ICAgICAgICAgNTAwMDAsIC8qIDUwbXMgKi8KLQkJCVtRT1NfV0xBVF0JCT0gICAgICAgICA1MDAwMCwKKwkJCVtRT1NfUkxBVF0JCT0gICAgICAgIDI1MDAwMCwgLyogMjUwbXMgKi8KKwkJCVtRT1NfV0xBVF0JCT0gICAgICAgIDI1MDAwMCwKIAkJCVtRT1NfTUlOXQkJPSBWUkFURV9NSU5fUFBNLAogCQkJW1FPU19NQVhdCQk9IFZSQVRFX01BWF9QUE0sCiAJCX0sCkBAIC0xMzQzLDcgKzEzNDMsNyBAQCBzdGF0aWMgdm9pZCBpb2NfdGltZXJfZm4oc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyKQogCXUzMiBwcG1fd3RociA9IE1JTExJT04gLSBpb2MtPnBhcmFtcy5xb3NbUU9TX1dQUE1dOwogCXUzMiBtaXNzZWRfcHBtWzJdLCBycV93YWl0X3BjdDsKIAl1NjQgcGVyaW9kX3Z0aW1lOwotCWludCBpOworCWludCBwcmV2X2J1c3lfbGV2ZWwsIGk7CiAKIAkvKiBob3cgd2VyZSB0aGUgbGF0ZW5jaWVzIGR1cmluZyB0aGUgcGVyaW9kPyAqLwogCWlvY19sYXRfc3RhdChpb2MsIG1pc3NlZF9wcG0sICZycV93YWl0X3BjdCk7CkBAIC0xNDA3LDcgKzE0MDcsOCBAQCBzdGF0aWMgdm9pZCBpb2NfdGltZXJfZm4oc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyKQogCQkgKiBjb21wYXJpbmcgdmRvbmUgYWdhaW5zdCBwZXJpb2Qgc3RhcnQuICBJZiBsYWdnaW5nIGJlaGluZAogCQkgKiBJT3MgZnJvbSBwYXN0IHBlcmlvZHMsIGRvbid0IGluY3JlYXNlIHZyYXRlLgogCQkgKi8KLQkJaWYgKCFhdG9taWNfcmVhZCgmaW9jZ190b19ibGtnKGlvY2cpLT51c2VfZGVsYXkpICYmCisJCWlmICgocHBtX3J0aHIgIT0gTUlMTElPTiB8fCBwcG1fd3RociAhPSBNSUxMSU9OKSAmJgorCQkgICAgIWF0b21pY19yZWFkKCZpb2NnX3RvX2Jsa2coaW9jZyktPnVzZV9kZWxheSkgJiYKIAkJICAgIHRpbWVfYWZ0ZXI2NCh2dGltZSwgdmRvbmUpICYmCiAJCSAgICB0aW1lX2FmdGVyNjQodnRpbWUsIG5vdy52bm93IC0KIAkJCQkgTUFYX0xBR0dJTkdfUEVSSU9EUyAqIHBlcmlvZF92dGltZSkgJiYKQEAgLTE1MzEsMjYgKzE1MzIsMjkgQEAgc3RhdGljIHZvaWQgaW9jX3RpbWVyX2ZuKHN0cnVjdCB0aW1lcl9saXN0ICp0aW1lcikKIAkgKiBhbmQgZXhwZXJpZW5jaW5nIHNob3J0YWdlcyBidXQgbm90IHN1cnBsdXNlcywgd2UncmUgdG9vIHN0aW5neQogCSAqIGFuZCBzaG91bGQgaW5jcmVhc2UgdnRpbWUgcmF0ZS4KIAkgKi8KKwlwcmV2X2J1c3lfbGV2ZWwgPSBpb2MtPmJ1c3lfbGV2ZWw7CiAJaWYgKHJxX3dhaXRfcGN0ID4gUlFfV0FJVF9CVVNZX1BDVCB8fAogCSAgICBtaXNzZWRfcHBtW1JFQURdID4gcHBtX3J0aHIgfHwKIAkgICAgbWlzc2VkX3BwbVtXUklURV0gPiBwcG1fd3RocikgewogCQlpb2MtPmJ1c3lfbGV2ZWwgPSBtYXgoaW9jLT5idXN5X2xldmVsLCAwKTsKIAkJaW9jLT5idXN5X2xldmVsKys7Ci0JfSBlbHNlIGlmIChucl9sYWdnaW5nKSB7Ci0JCWlvYy0+YnVzeV9sZXZlbCA9IG1heChpb2MtPmJ1c3lfbGV2ZWwsIDApOwotCX0gZWxzZSBpZiAobnJfc2hvcnRhZ2VzICYmICFucl9zdXJwbHVzZXMgJiYKLQkJICAgcnFfd2FpdF9wY3QgPD0gUlFfV0FJVF9CVVNZX1BDVCAqIFVOQlVTWV9USFJfUENUIC8gMTAwICYmCisJfSBlbHNlIGlmIChycV93YWl0X3BjdCA8PSBSUV9XQUlUX0JVU1lfUENUICogVU5CVVNZX1RIUl9QQ1QgLyAxMDAgJiYKIAkJICAgbWlzc2VkX3BwbVtSRUFEXSA8PSBwcG1fcnRociAqIFVOQlVTWV9USFJfUENUIC8gMTAwICYmCiAJCSAgIG1pc3NlZF9wcG1bV1JJVEVdIDw9IHBwbV93dGhyICogVU5CVVNZX1RIUl9QQ1QgLyAxMDApIHsKLQkJaW9jLT5idXN5X2xldmVsID0gbWluKGlvYy0+YnVzeV9sZXZlbCwgMCk7Ci0JCWlvYy0+YnVzeV9sZXZlbC0tOworCQkvKiB0YWtlIGFjdGlvbiBpZmYgdGhlcmUgaXMgY29udGVudGlvbiAqLworCQlpZiAobnJfc2hvcnRhZ2VzICYmICFucl9sYWdnaW5nKSB7CisJCQlpb2MtPmJ1c3lfbGV2ZWwgPSBtaW4oaW9jLT5idXN5X2xldmVsLCAwKTsKKwkJCS8qIHJlZGlzdHJpYnV0ZSBzdXJwbHVzZXMgZmlyc3QgKi8KKwkJCWlmICghbnJfc3VycGx1c2VzKQorCQkJCWlvYy0+YnVzeV9sZXZlbC0tOworCQl9CiAJfSBlbHNlIHsKIAkJaW9jLT5idXN5X2xldmVsID0gMDsKIAl9CiAKIAlpb2MtPmJ1c3lfbGV2ZWwgPSBjbGFtcChpb2MtPmJ1c3lfbGV2ZWwsIC0xMDAwLCAxMDAwKTsKIAotCWlmIChpb2MtPmJ1c3lfbGV2ZWwpIHsKKwlpZiAoaW9jLT5idXN5X2xldmVsID4gMCB8fCAoaW9jLT5idXN5X2xldmVsIDwgMCAmJiAhbnJfbGFnZ2luZykpIHsKIAkJdTY0IHZyYXRlID0gYXRvbWljNjRfcmVhZCgmaW9jLT52dGltZV9yYXRlKTsKIAkJdTY0IHZyYXRlX21pbiA9IGlvYy0+dnJhdGVfbWluLCB2cmF0ZV9tYXggPSBpb2MtPnZyYXRlX21heDsKIApAQCAtMTU5Miw2ICsxNTk2LDEwIEBAIHN0YXRpYyB2b2lkIGlvY190aW1lcl9mbihzdHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIpCiAJCWF0b21pYzY0X3NldCgmaW9jLT52dGltZV9yYXRlLCB2cmF0ZSk7CiAJCWlvYy0+aW51c2VfbWFyZ2luX3Z0aW1lID0gRElWNjRfVTY0X1JPVU5EX1VQKAogCQkJaW9jLT5wZXJpb2RfdXMgKiB2cmF0ZSAqIElOVVNFX01BUkdJTl9QQ1QsIDEwMCk7CisJfSBlbHNlIGlmIChpb2MtPmJ1c3lfbGV2ZWwgIT0gcHJldl9idXN5X2xldmVsIHx8IG5yX2xhZ2dpbmcpIHsKKwkJdHJhY2VfaW9jb3N0X2lvY192cmF0ZV9hZGooaW9jLCBhdG9taWM2NF9yZWFkKCZpb2MtPnZ0aW1lX3JhdGUpLAorCQkJCQkgICAmbWlzc2VkX3BwbSwgcnFfd2FpdF9wY3QsIG5yX2xhZ2dpbmcsCisJCQkJCSAgIG5yX3Nob3J0YWdlcywgbnJfc3VycGx1c2VzKTsKIAl9CiAKIAlpb2NfcmVmcmVzaF9wYXJhbXMoaW9jLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9ibG9jay9ibGstbXEtc2NoZWQuYyBiL2Jsb2NrL2Jsay1tcS1zY2hlZC5jCmluZGV4IGM5ZDE4M2QuLmNhMjJhZmQgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1tcS1zY2hlZC5jCisrKyBiL2Jsb2NrL2Jsay1tcS1zY2hlZC5jCkBAIC01NTUsOCArNTU1LDYgQEAgdm9pZCBibGtfbXFfc2NoZWRfZnJlZV9yZXF1ZXN0cyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKIAlzdHJ1Y3QgYmxrX21xX2h3X2N0eCAqaGN0eDsKIAlpbnQgaTsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnEtPnN5c2ZzX2xvY2spOwotCiAJcXVldWVfZm9yX2VhY2hfaHdfY3R4KHEsIGhjdHgsIGkpIHsKIAkJaWYgKGhjdHgtPnNjaGVkX3RhZ3MpCiAJCQlibGtfbXFfZnJlZV9ycXMocS0+dGFnX3NldCwgaGN0eC0+c2NoZWRfdGFncywgaSk7CmRpZmYgLS1naXQgYS9ibG9jay9ibGstbXEuYyBiL2Jsb2NrL2Jsay1tcS5jCmluZGV4IDIwYTQ5YmUuLjZlM2IxNWYgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1tcS5jCisrKyBiL2Jsb2NrL2Jsay1tcS5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2Jsb2NrLmg+CiAKICNpbmNsdWRlIDxsaW51eC9ibGstbXEuaD4KKyNpbmNsdWRlIDxsaW51eC90MTAtcGkuaD4KICNpbmNsdWRlICJibGsuaCIKICNpbmNsdWRlICJibGstbXEuaCIKICNpbmNsdWRlICJibGstbXEtZGVidWdmcy5oIgpAQCAtNzAwLDYgKzcwMSwxMSBAQCB2b2lkIGJsa19tcV9zdGFydF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0ICpycSkKIAkJICovCiAJCXJxLT5ucl9waHlzX3NlZ21lbnRzKys7CiAJfQorCisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5URUdSSVRZCisJaWYgKGJsa19pbnRlZ3JpdHlfcnEocnEpICYmIHJlcV9vcChycSkgPT0gUkVRX09QX1dSSVRFKQorCQlxLT5pbnRlZ3JpdHkucHJvZmlsZS0+cHJlcGFyZV9mbihycSk7CisjZW5kaWYKIH0KIEVYUE9SVF9TWU1CT0woYmxrX21xX3N0YXJ0X3JlcXVlc3QpOwogCkBAIC05MTIsNyArOTE4LDEwIEBAIHN0YXRpYyBib29sIGJsa19tcV9jaGVja19leHBpcmVkKHN0cnVjdCBibGtfbXFfaHdfY3R4ICpoY3R4LAogCSAqLwogCWlmIChibGtfbXFfcmVxX2V4cGlyZWQocnEsIG5leHQpKQogCQlibGtfbXFfcnFfdGltZWRfb3V0KHJxLCByZXNlcnZlZCk7Ci0JaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgmcnEtPnJlZikpCisKKwlpZiAoaXNfZmx1c2hfcnEocnEsIGhjdHgpKQorCQlycS0+ZW5kX2lvKHJxLCAwKTsKKwllbHNlIGlmIChyZWZjb3VudF9kZWNfYW5kX3Rlc3QoJnJxLT5yZWYpKQogCQlfX2Jsa19tcV9mcmVlX3JlcXVlc3QocnEpOwogCiAJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9ibG9jay9ibGstc2V0dGluZ3MuYyBiL2Jsb2NrL2Jsay1zZXR0aW5ncy5jCmluZGV4IDZiZDFlM2IuLjVmNmRjYzcgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1zZXR0aW5ncy5jCisrKyBiL2Jsb2NrL2Jsay1zZXR0aW5ncy5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbGNtLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgogI2luY2x1ZGUgPGxpbnV4L2dmcC5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAKICNpbmNsdWRlICJibGsuaCIKICNpbmNsdWRlICJibGstd2J0LmgiCkBAIC04NDgsNiArODQ5LDI4IEBAIHZvaWQgYmxrX3F1ZXVlX3JlcXVpcmVkX2VsZXZhdG9yX2ZlYXR1cmVzKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAogfQogRVhQT1JUX1NZTUJPTF9HUEwoYmxrX3F1ZXVlX3JlcXVpcmVkX2VsZXZhdG9yX2ZlYXR1cmVzKTsKIAorLyoqCisgKiBibGtfcXVldWVfY2FuX3VzZV9kbWFfbWFwX21lcmdpbmcgLSBjb25maWd1cmUgcXVldWUgZm9yIG1lcmdpbmcgc2VnbWVudHMuCisgKiBAcToJCXRoZSByZXF1ZXN0IHF1ZXVlIGZvciB0aGUgZGV2aWNlCisgKiBAZGV2Ogl0aGUgZGV2aWNlIHBvaW50ZXIgZm9yIGRtYQorICoKKyAqIFRlbGwgdGhlIGJsb2NrIGxheWVyIGFib3V0IG1lcmdpbmcgdGhlIHNlZ21lbnRzIGJ5IGRtYSBtYXAgb2YgQHEuCisgKi8KK2Jvb2wgYmxrX3F1ZXVlX2Nhbl91c2VfZG1hX21hcF9tZXJnaW5nKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAorCQkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJdW5zaWduZWQgbG9uZyBib3VuZGFyeSA9IGRtYV9nZXRfbWVyZ2VfYm91bmRhcnkoZGV2KTsKKworCWlmICghYm91bmRhcnkpCisJCXJldHVybiBmYWxzZTsKKworCS8qIE5vIG5lZWQgdG8gdXBkYXRlIG1heF9zZWdtZW50X3NpemUuIHNlZSBibGtfcXVldWVfdmlydF9ib3VuZGFyeSgpICovCisJYmxrX3F1ZXVlX3ZpcnRfYm91bmRhcnkocSwgYm91bmRhcnkpOworCisJcmV0dXJuIHRydWU7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChibGtfcXVldWVfY2FuX3VzZV9kbWFfbWFwX21lcmdpbmcpOworCiBzdGF0aWMgaW50IF9faW5pdCBibGtfc2V0dGluZ3NfaW5pdCh2b2lkKQogewogCWJsa19tYXhfbG93X3BmbiA9IG1heF9sb3dfcGZuIC0gMTsKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1zeXNmcy5jIGIvYmxvY2svYmxrLXN5c2ZzLmMKaW5kZXggYjgyNzM2Yy4uNDZmNTE5OCAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLXN5c2ZzLmMKKysrIGIvYmxvY2svYmxrLXN5c2ZzLmMKQEAgLTQ4Miw3ICs0ODIsNiBAQCBzdGF0aWMgc3NpemVfdCBxdWV1ZV93Yl9sYXRfc3RvcmUoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIGNvbnN0IGNoYXIgKnBhZ2UsCiAJYmxrX21xX3F1aWVzY2VfcXVldWUocSk7CiAKIAl3YnRfc2V0X21pbl9sYXQocSwgdmFsKTsKLQl3YnRfdXBkYXRlX2xpbWl0cyhxKTsKIAogCWJsa19tcV91bnF1aWVzY2VfcXVldWUocSk7CiAJYmxrX21xX3VuZnJlZXplX3F1ZXVlKHEpOwpAQCAtOTg5LDEzICs5ODgsMTEgQEAgaW50IGJsa19yZWdpc3Rlcl9xdWV1ZShzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKIAkJYmxrX21xX2RlYnVnZnNfcmVnaXN0ZXIocSk7CiAJfQogCi0JLyoKLQkgKiBUaGUgZmxhZyBvZiBRVUVVRV9GTEFHX1JFR0lTVEVSRUQgaXNuJ3Qgc2V0IHlldCwgc28gZWxldmF0b3IKLQkgKiBzd2l0Y2ggd29uJ3QgaGFwcGVuIGF0IGFsbC4KLQkgKi8KKwltdXRleF9sb2NrKCZxLT5zeXNmc19sb2NrKTsKIAlpZiAocS0+ZWxldmF0b3IpIHsKIAkJcmV0ID0gZWx2X3JlZ2lzdGVyX3F1ZXVlKHEsIGZhbHNlKTsKIAkJaWYgKHJldCkgeworCQkJbXV0ZXhfdW5sb2NrKCZxLT5zeXNmc19sb2NrKTsKIAkJCW11dGV4X3VubG9jaygmcS0+c3lzZnNfZGlyX2xvY2spOwogCQkJa29iamVjdF9kZWwoJnEtPmtvYmopOwogCQkJYmxrX3RyYWNlX3JlbW92ZV9zeXNmcyhkZXYpOwpAQCAtMTAwNSw3ICsxMDAyLDYgQEAgaW50IGJsa19yZWdpc3Rlcl9xdWV1ZShzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKIAkJaGFzX2VsZXZhdG9yID0gdHJ1ZTsKIAl9CiAKLQltdXRleF9sb2NrKCZxLT5zeXNmc19sb2NrKTsKIAlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19SRUdJU1RFUkVELCBxKTsKIAl3YnRfZW5hYmxlX2RlZmF1bHQocSk7CiAJYmxrX3Rocm90bF9yZWdpc3Rlcl9xdWV1ZShxKTsKQEAgLTEwNjIsMTIgKzEwNTgsMTAgQEAgdm9pZCBibGtfdW5yZWdpc3Rlcl9xdWV1ZShzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKIAlrb2JqZWN0X2RlbCgmcS0+a29iaik7CiAJYmxrX3RyYWNlX3JlbW92ZV9zeXNmcyhkaXNrX3RvX2RldihkaXNrKSk7CiAKLQkvKgotCSAqIHEtPmtvYmogaGFzIGJlZW4gcmVtb3ZlZCwgc28gaXQgaXMgc2FmZSB0byBjaGVjayBpZiBlbGV2YXRvcgotCSAqIGV4aXN0cyB3aXRob3V0IGhvbGRpbmcgcS0+c3lzZnNfbG9jay4KLQkgKi8KKwltdXRleF9sb2NrKCZxLT5zeXNmc19sb2NrKTsKIAlpZiAocS0+ZWxldmF0b3IpCiAJCWVsdl91bnJlZ2lzdGVyX3F1ZXVlKHEpOworCW11dGV4X3VubG9jaygmcS0+c3lzZnNfbG9jayk7CiAJbXV0ZXhfdW5sb2NrKCZxLT5zeXNmc19kaXJfbG9jayk7CiAKIAlrb2JqZWN0X3B1dCgmZGlza190b19kZXYoZGlzayktPmtvYmopOwpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLmggYi9ibG9jay9ibGsuaAppbmRleCBlZDM0N2Y3Li40N2ZiYTkzIDEwMDY0NAotLS0gYS9ibG9jay9ibGsuaAorKysgYi9ibG9jay9ibGsuaApAQCAtMTksNiArMTksNyBAQCBzdHJ1Y3QgYmxrX2ZsdXNoX3F1ZXVlIHsKIAl1bnNpZ25lZCBpbnQJCWZsdXNoX3F1ZXVlX2RlbGF5ZWQ6MTsKIAl1bnNpZ25lZCBpbnQJCWZsdXNoX3BlbmRpbmdfaWR4OjE7CiAJdW5zaWduZWQgaW50CQlmbHVzaF9ydW5uaW5nX2lkeDoxOworCWJsa19zdGF0dXNfdCAJCXJxX3N0YXR1czsKIAl1bnNpZ25lZCBsb25nCQlmbHVzaF9wZW5kaW5nX3NpbmNlOwogCXN0cnVjdCBsaXN0X2hlYWQJZmx1c2hfcXVldWVbMl07CiAJc3RydWN0IGxpc3RfaGVhZAlmbHVzaF9kYXRhX2luX2ZsaWdodDsKQEAgLTQ3LDYgKzQ4LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2Jsa19nZXRfcXVldWUoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpCiAJa29iamVjdF9nZXQoJnEtPmtvYmopOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wKK2lzX2ZsdXNoX3JxKHN0cnVjdCByZXF1ZXN0ICpyZXEsIHN0cnVjdCBibGtfbXFfaHdfY3R4ICpoY3R4KQoreworCXJldHVybiBoY3R4LT5mcS0+Zmx1c2hfcnEgPT0gcmVxOworfQorCiBzdHJ1Y3QgYmxrX2ZsdXNoX3F1ZXVlICpibGtfYWxsb2NfZmx1c2hfcXVldWUoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCiAJCWludCBub2RlLCBpbnQgY21kX3NpemUsIGdmcF90IGZsYWdzKTsKIHZvaWQgYmxrX2ZyZWVfZmx1c2hfcXVldWUoc3RydWN0IGJsa19mbHVzaF9xdWV1ZSAqcSk7CkBAIC0xOTQsNiArMjAxLDggQEAgdm9pZCBlbHZfdW5yZWdpc3Rlcl9xdWV1ZShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSk7CiBzdGF0aWMgaW5saW5lIHZvaWQgZWxldmF0b3JfZXhpdChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwKIAkJc3RydWN0IGVsZXZhdG9yX3F1ZXVlICplKQogeworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnEtPnN5c2ZzX2xvY2spOworCiAJYmxrX21xX3NjaGVkX2ZyZWVfcmVxdWVzdHMocSk7CiAJX19lbGV2YXRvcl9leGl0KHEsIGUpOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2svYnNnLWxpYi5jIGIvYmxvY2svYnNnLWxpYi5jCmluZGV4IDc4NWRkNTguLjM0N2RkYTEgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2JzZy1saWIuYworKysgYi9ibG9jay9ic2ctbGliLmMKQEAgLTI2Niw2ICsyNjYsNyBAQCBzdGF0aWMgYmxrX3N0YXR1c190IGJzZ19xdWV1ZV9ycShzdHJ1Y3QgYmxrX21xX2h3X2N0eCAqaGN0eCwKIAlzdHJ1Y3QgcmVxdWVzdCAqcmVxID0gYmQtPnJxOwogCXN0cnVjdCBic2dfc2V0ICpic2V0ID0KIAkJY29udGFpbmVyX29mKHEtPnRhZ19zZXQsIHN0cnVjdCBic2dfc2V0LCB0YWdfc2V0KTsKKwlpbnQgc3RzID0gQkxLX1NUU19JT0VSUjsKIAlpbnQgcmV0OwogCiAJYmxrX21xX3N0YXJ0X3JlcXVlc3QocmVxKTsKQEAgLTI3NCwxNCArMjc1LDE1IEBAIHN0YXRpYyBibGtfc3RhdHVzX3QgYnNnX3F1ZXVlX3JxKHN0cnVjdCBibGtfbXFfaHdfY3R4ICpoY3R4LAogCQlyZXR1cm4gQkxLX1NUU19JT0VSUjsKIAogCWlmICghYnNnX3ByZXBhcmVfam9iKGRldiwgcmVxKSkKLQkJcmV0dXJuIEJMS19TVFNfSU9FUlI7CisJCWdvdG8gb3V0OwogCiAJcmV0ID0gYnNldC0+am9iX2ZuKGJsa19tcV9ycV90b19wZHUocmVxKSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIEJMS19TVFNfSU9FUlI7CisJaWYgKCFyZXQpCisJCXN0cyA9IEJMS19TVFNfT0s7CiAKK291dDoKIAlwdXRfZGV2aWNlKGRldik7Ci0JcmV0dXJuIEJMS19TVFNfT0s7CisJcmV0dXJuIHN0czsKIH0KIAogLyogY2FsbGVkIHJpZ2h0IGFmdGVyIHRoZSByZXF1ZXN0IGlzIGFsbG9jYXRlZCBmb3IgdGhlIHJlcXVlc3RfcXVldWUgKi8KZGlmZiAtLWdpdCBhL2Jsb2NrL2VsZXZhdG9yLmMgYi9ibG9jay9lbGV2YXRvci5jCmluZGV4IGJiYTEwZTguLjU0MzcwNTkgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2VsZXZhdG9yLmMKKysrIGIvYmxvY2svZWxldmF0b3IuYwpAQCAtNTAzLDkgKzUwMyw3IEBAIGludCBlbHZfcmVnaXN0ZXJfcXVldWUoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIGJvb2wgdWV2ZW50KQogCQlpZiAodWV2ZW50KQogCQkJa29iamVjdF91ZXZlbnQoJmUtPmtvYmosIEtPQkpfQUREKTsKIAotCQltdXRleF9sb2NrKCZxLT5zeXNmc19sb2NrKTsKIAkJZS0+cmVnaXN0ZXJlZCA9IDE7Ci0JCW11dGV4X3VubG9jaygmcS0+c3lzZnNfbG9jayk7CiAJfQogCXJldHVybiBlcnJvcjsKIH0KQEAgLTUyMywxMSArNTIxLDkgQEAgdm9pZCBlbHZfdW5yZWdpc3Rlcl9xdWV1ZShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKIAkJa29iamVjdF91ZXZlbnQoJmUtPmtvYmosIEtPQkpfUkVNT1ZFKTsKIAkJa29iamVjdF9kZWwoJmUtPmtvYmopOwogCi0JCW11dGV4X2xvY2soJnEtPnN5c2ZzX2xvY2spOwogCQllLT5yZWdpc3RlcmVkID0gMDsKIAkJLyogUmUtZW5hYmxlIHRocm90dGxpbmcgaW4gY2FzZSBlbGV2YXRvciBkaXNhYmxlZCBpdCAqLwogCQl3YnRfZW5hYmxlX2RlZmF1bHQocSk7Ci0JCW11dGV4X3VubG9jaygmcS0+c3lzZnNfbG9jayk7CiAJfQogfQogCkBAIC01OTAsMzIgKzU4NiwxMSBAQCBpbnQgZWxldmF0b3Jfc3dpdGNoX21xKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnEtPnN5c2ZzX2xvY2spOwogCiAJaWYgKHEtPmVsZXZhdG9yKSB7Ci0JCWlmIChxLT5lbGV2YXRvci0+cmVnaXN0ZXJlZCkgewotCQkJbXV0ZXhfdW5sb2NrKCZxLT5zeXNmc19sb2NrKTsKLQotCQkJLyoKLQkJCSAqIENvbmN1cnJlbnQgZWxldmF0b3Igc3dpdGNoIGNhbid0IGhhcHBlbiBiZWNhc3VlCi0JCQkgKiBzeXNmcyB3cml0ZSBpcyBhbHdheXMgZXhjbHVzaXZlbHkgb24gc2FtZSBmaWxlLgotCQkJICoKLQkJCSAqIEFsc28gdGhlIGVsZXZhdG9yIHF1ZXVlIHdvbid0IGJlIGZyZWVkIGFmdGVyCi0JCQkgKiBzeXNmc19sb2NrIGlzIHJlbGVhc2VkIGJlY2FzdWUga29iamVjdF9kZWwoKSBpbgotCQkJICogYmxrX3VucmVnaXN0ZXJfcXVldWUoKSB3YWl0cyBmb3IgY29tcGxldGlvbiBvZgotCQkJICogLnN0b3JlICYgLnNob3cgb24gaXRzIGF0dHJpYnV0ZXMuCi0JCQkgKi8KKwkJaWYgKHEtPmVsZXZhdG9yLT5yZWdpc3RlcmVkKQogCQkJZWx2X3VucmVnaXN0ZXJfcXVldWUocSk7CiAKLQkJCW11dGV4X2xvY2soJnEtPnN5c2ZzX2xvY2spOwotCQl9CiAJCWlvY19jbGVhcl9xdWV1ZShxKTsKIAkJZWxldmF0b3JfZXhpdChxLCBxLT5lbGV2YXRvcik7Ci0KLQkJLyoKLQkJICogc3lzZnNfbG9jayBtYXkgYmUgZHJvcHBlZCwgc28gcmUtY2hlY2sgaWYgcXVldWUgaXMKLQkJICogdW5yZWdpc3RlcmVkLiBJZiB5ZXMsIGRvbid0IHN3aXRjaCB0byBuZXcgZWxldmF0b3IKLQkJICogYW55IG1vcmUKLQkJICovCi0JCWlmICghYmxrX3F1ZXVlX3JlZ2lzdGVyZWQocSkpCi0JCQlyZXR1cm4gMDsKIAl9CiAKIAlyZXQgPSBibGtfbXFfaW5pdF9zY2hlZChxLCBuZXdfZSk7CkBAIC02MjMsMTEgKzU5OCw3IEBAIGludCBlbGV2YXRvcl9zd2l0Y2hfbXEoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCiAJCWdvdG8gb3V0OwogCiAJaWYgKG5ld19lKSB7Ci0JCW11dGV4X3VubG9jaygmcS0+c3lzZnNfbG9jayk7Ci0KIAkJcmV0ID0gZWx2X3JlZ2lzdGVyX3F1ZXVlKHEsIHRydWUpOwotCi0JCW11dGV4X2xvY2soJnEtPnN5c2ZzX2xvY2spOwogCQlpZiAocmV0KSB7CiAJCQllbGV2YXRvcl9leGl0KHEsIHEtPmVsZXZhdG9yKTsKIAkJCWdvdG8gb3V0OwpkaWZmIC0tZ2l0IGEvYmxvY2svdDEwLXBpLmMgYi9ibG9jay90MTAtcGkuYwppbmRleCAwYzAwOTQ2Li45ODAzYzdlIDEwMDY0NAotLS0gYS9ibG9jay90MTAtcGkuYworKysgYi9ibG9jay90MTAtcGkuYwpAQCAtMjcsNyArMjcsNyBAQCBzdGF0aWMgX19iZTE2IHQxMF9waV9pcF9mbih2b2lkICpkYXRhLCB1bnNpZ25lZCBpbnQgbGVuKQogICogdGFnLgogICovCiBzdGF0aWMgYmxrX3N0YXR1c190IHQxMF9waV9nZW5lcmF0ZShzdHJ1Y3QgYmxrX2ludGVncml0eV9pdGVyICppdGVyLAotCQljc3VtX2ZuICpmbiwgdW5zaWduZWQgaW50IHR5cGUpCisJCWNzdW1fZm4gKmZuLCBlbnVtIHQxMF9kaWZfdHlwZSB0eXBlKQogewogCXVuc2lnbmVkIGludCBpOwogCkBAIC0zNyw3ICszNyw3IEBAIHN0YXRpYyBibGtfc3RhdHVzX3QgdDEwX3BpX2dlbmVyYXRlKHN0cnVjdCBibGtfaW50ZWdyaXR5X2l0ZXIgKml0ZXIsCiAJCXBpLT5ndWFyZF90YWcgPSBmbihpdGVyLT5kYXRhX2J1ZiwgaXRlci0+aW50ZXJ2YWwpOwogCQlwaS0+YXBwX3RhZyA9IDA7CiAKLQkJaWYgKHR5cGUgPT0gMSkKKwkJaWYgKHR5cGUgPT0gVDEwX1BJX1RZUEUxX1BST1RFQ1RJT04pCiAJCQlwaS0+cmVmX3RhZyA9IGNwdV90b19iZTMyKGxvd2VyXzMyX2JpdHMoaXRlci0+c2VlZCkpOwogCQllbHNlCiAJCQlwaS0+cmVmX3RhZyA9IDA7CkBAIC01MSwxNyArNTEsMTggQEAgc3RhdGljIGJsa19zdGF0dXNfdCB0MTBfcGlfZ2VuZXJhdGUoc3RydWN0IGJsa19pbnRlZ3JpdHlfaXRlciAqaXRlciwKIH0KIAogc3RhdGljIGJsa19zdGF0dXNfdCB0MTBfcGlfdmVyaWZ5KHN0cnVjdCBibGtfaW50ZWdyaXR5X2l0ZXIgKml0ZXIsCi0JCWNzdW1fZm4gKmZuLCB1bnNpZ25lZCBpbnQgdHlwZSkKKwkJY3N1bV9mbiAqZm4sIGVudW0gdDEwX2RpZl90eXBlIHR5cGUpCiB7CiAJdW5zaWduZWQgaW50IGk7CiAKKwlCVUdfT04odHlwZSA9PSBUMTBfUElfVFlQRTBfUFJPVEVDVElPTik7CisKIAlmb3IgKGkgPSAwIDsgaSA8IGl0ZXItPmRhdGFfc2l6ZSA7IGkgKz0gaXRlci0+aW50ZXJ2YWwpIHsKIAkJc3RydWN0IHQxMF9waV90dXBsZSAqcGkgPSBpdGVyLT5wcm90X2J1ZjsKIAkJX19iZTE2IGNzdW07CiAKLQkJc3dpdGNoICh0eXBlKSB7Ci0JCWNhc2UgMToKLQkJY2FzZSAyOgorCQlpZiAodHlwZSA9PSBUMTBfUElfVFlQRTFfUFJPVEVDVElPTiB8fAorCQkgICAgdHlwZSA9PSBUMTBfUElfVFlQRTJfUFJPVEVDVElPTikgewogCQkJaWYgKHBpLT5hcHBfdGFnID09IFQxMF9QSV9BUFBfRVNDQVBFKQogCQkJCWdvdG8gbmV4dDsKIApAQCAtNzMsMTIgKzc0LDEwIEBAIHN0YXRpYyBibGtfc3RhdHVzX3QgdDEwX3BpX3ZlcmlmeShzdHJ1Y3QgYmxrX2ludGVncml0eV9pdGVyICppdGVyLAogCQkJCSAgICAgICBpdGVyLT5zZWVkLCBiZTMyX3RvX2NwdShwaS0+cmVmX3RhZykpOwogCQkJCXJldHVybiBCTEtfU1RTX1BST1RFQ1RJT047CiAJCQl9Ci0JCQlicmVhazsKLQkJY2FzZSAzOgorCQl9IGVsc2UgaWYgKHR5cGUgPT0gVDEwX1BJX1RZUEUzX1BST1RFQ1RJT04pIHsKIAkJCWlmIChwaS0+YXBwX3RhZyA9PSBUMTBfUElfQVBQX0VTQ0FQRSAmJgogCQkJICAgIHBpLT5yZWZfdGFnID09IFQxMF9QSV9SRUZfRVNDQVBFKQogCQkJCWdvdG8gbmV4dDsKLQkJCWJyZWFrOwogCQl9CiAKIAkJY3N1bSA9IGZuKGl0ZXItPmRhdGFfYnVmLCBpdGVyLT5pbnRlcnZhbCk7CkBAIC0xMDIsOTQgKzEwMSw0MCBAQCBzdGF0aWMgYmxrX3N0YXR1c190IHQxMF9waV92ZXJpZnkoc3RydWN0IGJsa19pbnRlZ3JpdHlfaXRlciAqaXRlciwKIAogc3RhdGljIGJsa19zdGF0dXNfdCB0MTBfcGlfdHlwZTFfZ2VuZXJhdGVfY3JjKHN0cnVjdCBibGtfaW50ZWdyaXR5X2l0ZXIgKml0ZXIpCiB7Ci0JcmV0dXJuIHQxMF9waV9nZW5lcmF0ZShpdGVyLCB0MTBfcGlfY3JjX2ZuLCAxKTsKKwlyZXR1cm4gdDEwX3BpX2dlbmVyYXRlKGl0ZXIsIHQxMF9waV9jcmNfZm4sIFQxMF9QSV9UWVBFMV9QUk9URUNUSU9OKTsKIH0KIAogc3RhdGljIGJsa19zdGF0dXNfdCB0MTBfcGlfdHlwZTFfZ2VuZXJhdGVfaXAoc3RydWN0IGJsa19pbnRlZ3JpdHlfaXRlciAqaXRlcikKIHsKLQlyZXR1cm4gdDEwX3BpX2dlbmVyYXRlKGl0ZXIsIHQxMF9waV9pcF9mbiwgMSk7CisJcmV0dXJuIHQxMF9waV9nZW5lcmF0ZShpdGVyLCB0MTBfcGlfaXBfZm4sIFQxMF9QSV9UWVBFMV9QUk9URUNUSU9OKTsKIH0KIAogc3RhdGljIGJsa19zdGF0dXNfdCB0MTBfcGlfdHlwZTFfdmVyaWZ5X2NyYyhzdHJ1Y3QgYmxrX2ludGVncml0eV9pdGVyICppdGVyKQogewotCXJldHVybiB0MTBfcGlfdmVyaWZ5KGl0ZXIsIHQxMF9waV9jcmNfZm4sIDEpOworCXJldHVybiB0MTBfcGlfdmVyaWZ5KGl0ZXIsIHQxMF9waV9jcmNfZm4sIFQxMF9QSV9UWVBFMV9QUk9URUNUSU9OKTsKIH0KIAogc3RhdGljIGJsa19zdGF0dXNfdCB0MTBfcGlfdHlwZTFfdmVyaWZ5X2lwKHN0cnVjdCBibGtfaW50ZWdyaXR5X2l0ZXIgKml0ZXIpCiB7Ci0JcmV0dXJuIHQxMF9waV92ZXJpZnkoaXRlciwgdDEwX3BpX2lwX2ZuLCAxKTsKKwlyZXR1cm4gdDEwX3BpX3ZlcmlmeShpdGVyLCB0MTBfcGlfaXBfZm4sIFQxMF9QSV9UWVBFMV9QUk9URUNUSU9OKTsKIH0KIAotc3RhdGljIGJsa19zdGF0dXNfdCB0MTBfcGlfdHlwZTNfZ2VuZXJhdGVfY3JjKHN0cnVjdCBibGtfaW50ZWdyaXR5X2l0ZXIgKml0ZXIpCi17Ci0JcmV0dXJuIHQxMF9waV9nZW5lcmF0ZShpdGVyLCB0MTBfcGlfY3JjX2ZuLCAzKTsKLX0KLQotc3RhdGljIGJsa19zdGF0dXNfdCB0MTBfcGlfdHlwZTNfZ2VuZXJhdGVfaXAoc3RydWN0IGJsa19pbnRlZ3JpdHlfaXRlciAqaXRlcikKLXsKLQlyZXR1cm4gdDEwX3BpX2dlbmVyYXRlKGl0ZXIsIHQxMF9waV9pcF9mbiwgMyk7Ci19Ci0KLXN0YXRpYyBibGtfc3RhdHVzX3QgdDEwX3BpX3R5cGUzX3ZlcmlmeV9jcmMoc3RydWN0IGJsa19pbnRlZ3JpdHlfaXRlciAqaXRlcikKLXsKLQlyZXR1cm4gdDEwX3BpX3ZlcmlmeShpdGVyLCB0MTBfcGlfY3JjX2ZuLCAzKTsKLX0KLQotc3RhdGljIGJsa19zdGF0dXNfdCB0MTBfcGlfdHlwZTNfdmVyaWZ5X2lwKHN0cnVjdCBibGtfaW50ZWdyaXR5X2l0ZXIgKml0ZXIpCi17Ci0JcmV0dXJuIHQxMF9waV92ZXJpZnkoaXRlciwgdDEwX3BpX2lwX2ZuLCAzKTsKLX0KLQotY29uc3Qgc3RydWN0IGJsa19pbnRlZ3JpdHlfcHJvZmlsZSB0MTBfcGlfdHlwZTFfY3JjID0gewotCS5uYW1lCQkJPSAiVDEwLURJRi1UWVBFMS1DUkMiLAotCS5nZW5lcmF0ZV9mbgkJPSB0MTBfcGlfdHlwZTFfZ2VuZXJhdGVfY3JjLAotCS52ZXJpZnlfZm4JCT0gdDEwX3BpX3R5cGUxX3ZlcmlmeV9jcmMsCi19OwotRVhQT1JUX1NZTUJPTCh0MTBfcGlfdHlwZTFfY3JjKTsKLQotY29uc3Qgc3RydWN0IGJsa19pbnRlZ3JpdHlfcHJvZmlsZSB0MTBfcGlfdHlwZTFfaXAgPSB7Ci0JLm5hbWUJCQk9ICJUMTAtRElGLVRZUEUxLUlQIiwKLQkuZ2VuZXJhdGVfZm4JCT0gdDEwX3BpX3R5cGUxX2dlbmVyYXRlX2lwLAotCS52ZXJpZnlfZm4JCT0gdDEwX3BpX3R5cGUxX3ZlcmlmeV9pcCwKLX07Ci1FWFBPUlRfU1lNQk9MKHQxMF9waV90eXBlMV9pcCk7Ci0KLWNvbnN0IHN0cnVjdCBibGtfaW50ZWdyaXR5X3Byb2ZpbGUgdDEwX3BpX3R5cGUzX2NyYyA9IHsKLQkubmFtZQkJCT0gIlQxMC1ESUYtVFlQRTMtQ1JDIiwKLQkuZ2VuZXJhdGVfZm4JCT0gdDEwX3BpX3R5cGUzX2dlbmVyYXRlX2NyYywKLQkudmVyaWZ5X2ZuCQk9IHQxMF9waV90eXBlM192ZXJpZnlfY3JjLAotfTsKLUVYUE9SVF9TWU1CT0wodDEwX3BpX3R5cGUzX2NyYyk7Ci0KLWNvbnN0IHN0cnVjdCBibGtfaW50ZWdyaXR5X3Byb2ZpbGUgdDEwX3BpX3R5cGUzX2lwID0gewotCS5uYW1lCQkJPSAiVDEwLURJRi1UWVBFMy1JUCIsCi0JLmdlbmVyYXRlX2ZuCQk9IHQxMF9waV90eXBlM19nZW5lcmF0ZV9pcCwKLQkudmVyaWZ5X2ZuCQk9IHQxMF9waV90eXBlM192ZXJpZnlfaXAsCi19OwotRVhQT1JUX1NZTUJPTCh0MTBfcGlfdHlwZTNfaXApOwotCiAvKioKLSAqIHQxMF9waV9wcmVwYXJlIC0gcHJlcGFyZSBQSSBwcmlvciBzdWJtaXR0aW5nIHJlcXVlc3QgdG8gZGV2aWNlCisgKiB0MTBfcGlfdHlwZTFfcHJlcGFyZSAtIHByZXBhcmUgUEkgcHJpb3Igc3VibWl0dGluZyByZXF1ZXN0IHRvIGRldmljZQogICogQHJxOiAgICAgICAgICAgICAgcmVxdWVzdCB3aXRoIFBJIHRoYXQgc2hvdWxkIGJlIHByZXBhcmVkCi0gKiBAcHJvdGVjdGlvbl90eXBlOiBQSSB0eXBlIChUeXBlIDEvVHlwZSAyL1R5cGUgMykKICAqCiAgKiBGb3IgVHlwZSAxL1R5cGUgMiwgdGhlIHZpcnR1YWwgc3RhcnQgc2VjdG9yIGlzIHRoZSBvbmUgdGhhdCB3YXMKICAqIG9yaWdpbmFsbHkgc3VibWl0dGVkIGJ5IHRoZSBibG9jayBsYXllciBmb3IgdGhlIHJlZl90YWcgdXNhZ2UuIER1ZSB0bwogICogcGFydGl0aW9uaW5nLCBNRC9ETSBjbG9uaW5nLCBldGMuIHRoZSBhY3R1YWwgcGh5c2ljYWwgc3RhcnQgc2VjdG9yIGlzCiAgKiBsaWtlbHkgdG8gYmUgZGlmZmVyZW50LiBSZW1hcCBwcm90ZWN0aW9uIGluZm9ybWF0aW9uIHRvIG1hdGNoIHRoZQogICogcGh5c2ljYWwgTEJBLgotICoKLSAqIFR5cGUgMyBkb2VzIG5vdCBoYXZlIGEgcmVmZXJlbmNlIHRhZyBzbyBubyByZW1hcHBpbmcgaXMgcmVxdWlyZWQuCiAgKi8KLXZvaWQgdDEwX3BpX3ByZXBhcmUoc3RydWN0IHJlcXVlc3QgKnJxLCB1OCBwcm90ZWN0aW9uX3R5cGUpCitzdGF0aWMgdm9pZCB0MTBfcGlfdHlwZTFfcHJlcGFyZShzdHJ1Y3QgcmVxdWVzdCAqcnEpCiB7CiAJY29uc3QgaW50IHR1cGxlX3N6ID0gcnEtPnEtPmludGVncml0eS50dXBsZV9zaXplOwogCXUzMiByZWZfdGFnID0gdDEwX3BpX3JlZl90YWcocnEpOwogCXN0cnVjdCBiaW8gKmJpbzsKIAotCWlmIChwcm90ZWN0aW9uX3R5cGUgPT0gVDEwX1BJX1RZUEUzX1BST1RFQ1RJT04pCi0JCXJldHVybjsKLQogCV9fcnFfZm9yX2VhY2hfYmlvKGJpbywgcnEpIHsKIAkJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0gYmlvX2ludGVncml0eShiaW8pOwogCQl1MzIgdmlydCA9IGJpcF9nZXRfc2VlZChiaXApICYgMHhmZmZmZmZmZjsKQEAgLTIyMiwxMyArMTY3LDExIEBAIHZvaWQgdDEwX3BpX3ByZXBhcmUoc3RydWN0IHJlcXVlc3QgKnJxLCB1OCBwcm90ZWN0aW9uX3R5cGUpCiAJCWJpcC0+YmlwX2ZsYWdzIHw9IEJJUF9NQVBQRURfSU5URUdSSVRZOwogCX0KIH0KLUVYUE9SVF9TWU1CT0wodDEwX3BpX3ByZXBhcmUpOwogCiAvKioKLSAqIHQxMF9waV9jb21wbGV0ZSAtIHByZXBhcmUgUEkgcHJpb3IgcmV0dXJuaW5nIHJlcXVlc3QgdG8gdGhlIGJsb2NrIGxheWVyCisgKiB0MTBfcGlfdHlwZTFfY29tcGxldGUgLSBwcmVwYXJlIFBJIHByaW9yIHJldHVybmluZyByZXF1ZXN0IHRvIHRoZSBibGsgbGF5ZXIKICAqIEBycTogICAgICAgICAgICAgIHJlcXVlc3Qgd2l0aCBQSSB0aGF0IHNob3VsZCBiZSBwcmVwYXJlZAotICogQHByb3RlY3Rpb25fdHlwZTogUEkgdHlwZSAoVHlwZSAxL1R5cGUgMi9UeXBlIDMpCi0gKiBAaW50ZXJ2YWxzOiAgICAgICB0b3RhbCBlbGVtZW50cyB0byBwcmVwYXJlCisgKiBAbnJfYnl0ZXM6ICAgICAgICB0b3RhbCBieXRlcyB0byBwcmVwYXJlCiAgKgogICogRm9yIFR5cGUgMS9UeXBlIDIsIHRoZSB2aXJ0dWFsIHN0YXJ0IHNlY3RvciBpcyB0aGUgb25lIHRoYXQgd2FzCiAgKiBvcmlnaW5hbGx5IHN1Ym1pdHRlZCBieSB0aGUgYmxvY2sgbGF5ZXIgZm9yIHRoZSByZWZfdGFnIHVzYWdlLiBEdWUgdG8KQEAgLTIzNiwxOSArMTc5LDE0IEBAIEVYUE9SVF9TWU1CT0wodDEwX3BpX3ByZXBhcmUpOwogICogbGlrZWx5IHRvIGJlIGRpZmZlcmVudC4gU2luY2UgdGhlIHBoeXNpY2FsIHN0YXJ0IHNlY3RvciB3YXMgc3VibWl0dGVkCiAgKiB0byB0aGUgZGV2aWNlLCB3ZSBzaG91bGQgcmVtYXAgaXQgYmFjayB0byB2aXJ0dWFsIHZhbHVlcyBleHBlY3RlZCBieSB0aGUKICAqIGJsb2NrIGxheWVyLgotICoKLSAqIFR5cGUgMyBkb2VzIG5vdCBoYXZlIGEgcmVmZXJlbmNlIHRhZyBzbyBubyByZW1hcHBpbmcgaXMgcmVxdWlyZWQuCiAgKi8KLXZvaWQgdDEwX3BpX2NvbXBsZXRlKHN0cnVjdCByZXF1ZXN0ICpycSwgdTggcHJvdGVjdGlvbl90eXBlLAotCQkgICAgIHVuc2lnbmVkIGludCBpbnRlcnZhbHMpCitzdGF0aWMgdm9pZCB0MTBfcGlfdHlwZTFfY29tcGxldGUoc3RydWN0IHJlcXVlc3QgKnJxLCB1bnNpZ25lZCBpbnQgbnJfYnl0ZXMpCiB7CisJdW5zaWduZWQgaW50ZXJ2YWxzID0gbnJfYnl0ZXMgPj4gcnEtPnEtPmludGVncml0eS5pbnRlcnZhbF9leHA7CiAJY29uc3QgaW50IHR1cGxlX3N6ID0gcnEtPnEtPmludGVncml0eS50dXBsZV9zaXplOwogCXUzMiByZWZfdGFnID0gdDEwX3BpX3JlZl90YWcocnEpOwogCXN0cnVjdCBiaW8gKmJpbzsKIAotCWlmIChwcm90ZWN0aW9uX3R5cGUgPT0gVDEwX1BJX1RZUEUzX1BST1RFQ1RJT04pCi0JCXJldHVybjsKLQogCV9fcnFfZm9yX2VhY2hfYmlvKGJpbywgcnEpIHsKIAkJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0gYmlvX2ludGVncml0eShiaW8pOwogCQl1MzIgdmlydCA9IGJpcF9nZXRfc2VlZChiaXApICYgMHhmZmZmZmZmZjsKQEAgLTI3Niw0ICsyMTQsNzMgQEAgdm9pZCB0MTBfcGlfY29tcGxldGUoc3RydWN0IHJlcXVlc3QgKnJxLCB1OCBwcm90ZWN0aW9uX3R5cGUsCiAJCX0KIAl9CiB9Ci1FWFBPUlRfU1lNQk9MKHQxMF9waV9jb21wbGV0ZSk7CisKK3N0YXRpYyBibGtfc3RhdHVzX3QgdDEwX3BpX3R5cGUzX2dlbmVyYXRlX2NyYyhzdHJ1Y3QgYmxrX2ludGVncml0eV9pdGVyICppdGVyKQoreworCXJldHVybiB0MTBfcGlfZ2VuZXJhdGUoaXRlciwgdDEwX3BpX2NyY19mbiwgVDEwX1BJX1RZUEUzX1BST1RFQ1RJT04pOworfQorCitzdGF0aWMgYmxrX3N0YXR1c190IHQxMF9waV90eXBlM19nZW5lcmF0ZV9pcChzdHJ1Y3QgYmxrX2ludGVncml0eV9pdGVyICppdGVyKQoreworCXJldHVybiB0MTBfcGlfZ2VuZXJhdGUoaXRlciwgdDEwX3BpX2lwX2ZuLCBUMTBfUElfVFlQRTNfUFJPVEVDVElPTik7Cit9CisKK3N0YXRpYyBibGtfc3RhdHVzX3QgdDEwX3BpX3R5cGUzX3ZlcmlmeV9jcmMoc3RydWN0IGJsa19pbnRlZ3JpdHlfaXRlciAqaXRlcikKK3sKKwlyZXR1cm4gdDEwX3BpX3ZlcmlmeShpdGVyLCB0MTBfcGlfY3JjX2ZuLCBUMTBfUElfVFlQRTNfUFJPVEVDVElPTik7Cit9CisKK3N0YXRpYyBibGtfc3RhdHVzX3QgdDEwX3BpX3R5cGUzX3ZlcmlmeV9pcChzdHJ1Y3QgYmxrX2ludGVncml0eV9pdGVyICppdGVyKQoreworCXJldHVybiB0MTBfcGlfdmVyaWZ5KGl0ZXIsIHQxMF9waV9pcF9mbiwgVDEwX1BJX1RZUEUzX1BST1RFQ1RJT04pOworfQorCisvKioKKyAqIFR5cGUgMyBkb2VzIG5vdCBoYXZlIGEgcmVmZXJlbmNlIHRhZyBzbyBubyByZW1hcHBpbmcgaXMgcmVxdWlyZWQuCisgKi8KK3N0YXRpYyB2b2lkIHQxMF9waV90eXBlM19wcmVwYXJlKHN0cnVjdCByZXF1ZXN0ICpycSkKK3sKK30KKworLyoqCisgKiBUeXBlIDMgZG9lcyBub3QgaGF2ZSBhIHJlZmVyZW5jZSB0YWcgc28gbm8gcmVtYXBwaW5nIGlzIHJlcXVpcmVkLgorICovCitzdGF0aWMgdm9pZCB0MTBfcGlfdHlwZTNfY29tcGxldGUoc3RydWN0IHJlcXVlc3QgKnJxLCB1bnNpZ25lZCBpbnQgbnJfYnl0ZXMpCit7Cit9CisKK2NvbnN0IHN0cnVjdCBibGtfaW50ZWdyaXR5X3Byb2ZpbGUgdDEwX3BpX3R5cGUxX2NyYyA9IHsKKwkubmFtZQkJCT0gIlQxMC1ESUYtVFlQRTEtQ1JDIiwKKwkuZ2VuZXJhdGVfZm4JCT0gdDEwX3BpX3R5cGUxX2dlbmVyYXRlX2NyYywKKwkudmVyaWZ5X2ZuCQk9IHQxMF9waV90eXBlMV92ZXJpZnlfY3JjLAorCS5wcmVwYXJlX2ZuCQk9IHQxMF9waV90eXBlMV9wcmVwYXJlLAorCS5jb21wbGV0ZV9mbgkJPSB0MTBfcGlfdHlwZTFfY29tcGxldGUsCit9OworRVhQT1JUX1NZTUJPTCh0MTBfcGlfdHlwZTFfY3JjKTsKKworY29uc3Qgc3RydWN0IGJsa19pbnRlZ3JpdHlfcHJvZmlsZSB0MTBfcGlfdHlwZTFfaXAgPSB7CisJLm5hbWUJCQk9ICJUMTAtRElGLVRZUEUxLUlQIiwKKwkuZ2VuZXJhdGVfZm4JCT0gdDEwX3BpX3R5cGUxX2dlbmVyYXRlX2lwLAorCS52ZXJpZnlfZm4JCT0gdDEwX3BpX3R5cGUxX3ZlcmlmeV9pcCwKKwkucHJlcGFyZV9mbgkJPSB0MTBfcGlfdHlwZTFfcHJlcGFyZSwKKwkuY29tcGxldGVfZm4JCT0gdDEwX3BpX3R5cGUxX2NvbXBsZXRlLAorfTsKK0VYUE9SVF9TWU1CT0wodDEwX3BpX3R5cGUxX2lwKTsKKworY29uc3Qgc3RydWN0IGJsa19pbnRlZ3JpdHlfcHJvZmlsZSB0MTBfcGlfdHlwZTNfY3JjID0geworCS5uYW1lCQkJPSAiVDEwLURJRi1UWVBFMy1DUkMiLAorCS5nZW5lcmF0ZV9mbgkJPSB0MTBfcGlfdHlwZTNfZ2VuZXJhdGVfY3JjLAorCS52ZXJpZnlfZm4JCT0gdDEwX3BpX3R5cGUzX3ZlcmlmeV9jcmMsCisJLnByZXBhcmVfZm4JCT0gdDEwX3BpX3R5cGUzX3ByZXBhcmUsCisJLmNvbXBsZXRlX2ZuCQk9IHQxMF9waV90eXBlM19jb21wbGV0ZSwKK307CitFWFBPUlRfU1lNQk9MKHQxMF9waV90eXBlM19jcmMpOworCitjb25zdCBzdHJ1Y3QgYmxrX2ludGVncml0eV9wcm9maWxlIHQxMF9waV90eXBlM19pcCA9IHsKKwkubmFtZQkJCT0gIlQxMC1ESUYtVFlQRTMtSVAiLAorCS5nZW5lcmF0ZV9mbgkJPSB0MTBfcGlfdHlwZTNfZ2VuZXJhdGVfaXAsCisJLnZlcmlmeV9mbgkJPSB0MTBfcGlfdHlwZTNfdmVyaWZ5X2lwLAorCS5wcmVwYXJlX2ZuCQk9IHQxMF9waV90eXBlM19wcmVwYXJlLAorCS5jb21wbGV0ZV9mbgkJPSB0MTBfcGlfdHlwZTNfY29tcGxldGUsCit9OworRVhQT1JUX1NZTUJPTCh0MTBfcGlfdHlwZTNfaXApOwpkaWZmIC0tZ2l0IGEvY2VydHMvc3lzdGVtX2tleXJpbmcuYyBiL2NlcnRzL3N5c3RlbV9rZXlyaW5nLmMKaW5kZXggMWViYTA4YS4uNzk4MjkxMSAxMDA2NDQKLS0tIGEvY2VydHMvc3lzdGVtX2tleXJpbmcuYworKysgYi9jZXJ0cy9zeXN0ZW1fa2V5cmluZy5jCkBAIC0xOTAsMzMgKzE5MCwyNyBAQCBsYXRlX2luaXRjYWxsKGxvYWRfc3lzdGVtX2NlcnRpZmljYXRlX2xpc3QpOwogI2lmZGVmIENPTkZJR19TWVNURU1fREFUQV9WRVJJRklDQVRJT04KIAogLyoqCi0gKiB2ZXJpZnlfcGtjczdfc2lnbmF0dXJlIC0gVmVyaWZ5IGEgUEtDUyM3LWJhc2VkIHNpZ25hdHVyZSBvbiBzeXN0ZW0gZGF0YS4KKyAqIHZlcmlmeV9wa2NzN19tZXNzYWdlX3NpZyAtIFZlcmlmeSBhIFBLQ1MjNy1iYXNlZCBzaWduYXR1cmUgb24gc3lzdGVtIGRhdGEuCiAgKiBAZGF0YTogVGhlIGRhdGEgdG8gYmUgdmVyaWZpZWQgKE5VTEwgaWYgZXhwZWN0aW5nIGludGVybmFsIGRhdGEpLgogICogQGxlbjogU2l6ZSBvZiBAZGF0YS4KLSAqIEByYXdfcGtjczc6IFRoZSBQS0NTIzcgbWVzc2FnZSB0aGF0IGlzIHRoZSBzaWduYXR1cmUuCi0gKiBAcGtjczdfbGVuOiBUaGUgc2l6ZSBvZiBAcmF3X3BrY3M3LgorICogQHBrY3M3OiBUaGUgUEtDUyM3IG1lc3NhZ2UgdGhhdCBpcyB0aGUgc2lnbmF0dXJlLgogICogQHRydXN0ZWRfa2V5czogVHJ1c3RlZCBrZXlzIHRvIHVzZSAoTlVMTCBmb3IgYnVpbHRpbiB0cnVzdGVkIGtleXMgb25seSwKICAqCQkJCQkodm9pZCAqKTFVTCBmb3IgYWxsIHRydXN0ZWQga2V5cykuCiAgKiBAdXNhZ2U6IFRoZSB1c2UgdG8gd2hpY2ggdGhlIGtleSBpcyBiZWluZyBwdXQuCiAgKiBAdmlld19jb250ZW50OiBDYWxsYmFjayB0byBnYWluIGFjY2VzcyB0byBjb250ZW50LgogICogQGN0eDogQ29udGV4dCBmb3IgY2FsbGJhY2suCiAgKi8KLWludCB2ZXJpZnlfcGtjczdfc2lnbmF0dXJlKGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4sCi0JCQkgICBjb25zdCB2b2lkICpyYXdfcGtjczcsIHNpemVfdCBwa2NzN19sZW4sCi0JCQkgICBzdHJ1Y3Qga2V5ICp0cnVzdGVkX2tleXMsCi0JCQkgICBlbnVtIGtleV9iZWluZ191c2VkX2ZvciB1c2FnZSwKLQkJCSAgIGludCAoKnZpZXdfY29udGVudCkodm9pZCAqY3R4LAotCQkJCQkgICAgICAgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbiwKLQkJCQkJICAgICAgIHNpemVfdCBhc24xaGRybGVuKSwKLQkJCSAgIHZvaWQgKmN0eCkKK2ludCB2ZXJpZnlfcGtjczdfbWVzc2FnZV9zaWcoY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbiwKKwkJCSAgICAgc3RydWN0IHBrY3M3X21lc3NhZ2UgKnBrY3M3LAorCQkJICAgICBzdHJ1Y3Qga2V5ICp0cnVzdGVkX2tleXMsCisJCQkgICAgIGVudW0ga2V5X2JlaW5nX3VzZWRfZm9yIHVzYWdlLAorCQkJICAgICBpbnQgKCp2aWV3X2NvbnRlbnQpKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuLAorCQkJCQkJIHNpemVfdCBhc24xaGRybGVuKSwKKwkJCSAgICAgdm9pZCAqY3R4KQogewotCXN0cnVjdCBwa2NzN19tZXNzYWdlICpwa2NzNzsKIAlpbnQgcmV0OwogCi0JcGtjczcgPSBwa2NzN19wYXJzZV9tZXNzYWdlKHJhd19wa2NzNywgcGtjczdfbGVuKTsKLQlpZiAoSVNfRVJSKHBrY3M3KSkKLQkJcmV0dXJuIFBUUl9FUlIocGtjczcpOwotCiAJLyogVGhlIGRhdGEgc2hvdWxkIGJlIGRldGFjaGVkIC0gc28gd2UgbmVlZCB0byBzdXBwbHkgaXQuICovCiAJaWYgKGRhdGEgJiYgcGtjczdfc3VwcGx5X2RldGFjaGVkX2RhdGEocGtjczcsIGRhdGEsIGxlbikgPCAwKSB7CiAJCXByX2VycigiUEtDUyM3IHNpZ25hdHVyZSB3aXRoIG5vbi1kZXRhY2hlZCBkYXRhXG4iKTsKQEAgLTI2OSw2ICsyNjMsNDEgQEAgaW50IHZlcmlmeV9wa2NzN19zaWduYXR1cmUoY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbiwKIAl9CiAKIGVycm9yOgorCXByX2RldmVsKCI8PT0lcygpID0gJWRcbiIsIF9fZnVuY19fLCByZXQpOworCXJldHVybiByZXQ7Cit9CisKKy8qKgorICogdmVyaWZ5X3BrY3M3X3NpZ25hdHVyZSAtIFZlcmlmeSBhIFBLQ1MjNy1iYXNlZCBzaWduYXR1cmUgb24gc3lzdGVtIGRhdGEuCisgKiBAZGF0YTogVGhlIGRhdGEgdG8gYmUgdmVyaWZpZWQgKE5VTEwgaWYgZXhwZWN0aW5nIGludGVybmFsIGRhdGEpLgorICogQGxlbjogU2l6ZSBvZiBAZGF0YS4KKyAqIEByYXdfcGtjczc6IFRoZSBQS0NTIzcgbWVzc2FnZSB0aGF0IGlzIHRoZSBzaWduYXR1cmUuCisgKiBAcGtjczdfbGVuOiBUaGUgc2l6ZSBvZiBAcmF3X3BrY3M3LgorICogQHRydXN0ZWRfa2V5czogVHJ1c3RlZCBrZXlzIHRvIHVzZSAoTlVMTCBmb3IgYnVpbHRpbiB0cnVzdGVkIGtleXMgb25seSwKKyAqCQkJCQkodm9pZCAqKTFVTCBmb3IgYWxsIHRydXN0ZWQga2V5cykuCisgKiBAdXNhZ2U6IFRoZSB1c2UgdG8gd2hpY2ggdGhlIGtleSBpcyBiZWluZyBwdXQuCisgKiBAdmlld19jb250ZW50OiBDYWxsYmFjayB0byBnYWluIGFjY2VzcyB0byBjb250ZW50LgorICogQGN0eDogQ29udGV4dCBmb3IgY2FsbGJhY2suCisgKi8KK2ludCB2ZXJpZnlfcGtjczdfc2lnbmF0dXJlKGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4sCisJCQkgICBjb25zdCB2b2lkICpyYXdfcGtjczcsIHNpemVfdCBwa2NzN19sZW4sCisJCQkgICBzdHJ1Y3Qga2V5ICp0cnVzdGVkX2tleXMsCisJCQkgICBlbnVtIGtleV9iZWluZ191c2VkX2ZvciB1c2FnZSwKKwkJCSAgIGludCAoKnZpZXdfY29udGVudCkodm9pZCAqY3R4LAorCQkJCQkgICAgICAgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbiwKKwkJCQkJICAgICAgIHNpemVfdCBhc24xaGRybGVuKSwKKwkJCSAgIHZvaWQgKmN0eCkKK3sKKwlzdHJ1Y3QgcGtjczdfbWVzc2FnZSAqcGtjczc7CisJaW50IHJldDsKKworCXBrY3M3ID0gcGtjczdfcGFyc2VfbWVzc2FnZShyYXdfcGtjczcsIHBrY3M3X2xlbik7CisJaWYgKElTX0VSUihwa2NzNykpCisJCXJldHVybiBQVFJfRVJSKHBrY3M3KTsKKworCXJldCA9IHZlcmlmeV9wa2NzN19tZXNzYWdlX3NpZyhkYXRhLCBsZW4sIHBrY3M3LCB0cnVzdGVkX2tleXMsIHVzYWdlLAorCQkJCSAgICAgICB2aWV3X2NvbnRlbnQsIGN0eCk7CisKIAlwa2NzN19mcmVlX21lc3NhZ2UocGtjczcpOwogCXByX2RldmVsKCI8PT0lcygpID0gJWRcbiIsIF9fZnVuY19fLCByZXQpOwogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9jcnlwdG8vS2NvbmZpZyBiL2NyeXB0by9LY29uZmlnCmluZGV4IGFkODY0NjMuLjllNTI0MDQgMTAwNjQ0Ci0tLSBhL2NyeXB0by9LY29uZmlnCisrKyBiL2NyeXB0by9LY29uZmlnCkBAIC00ODcsNiArNDg3LDM0IEBACiAKIAkgIElmIHVuc3VyZSwgc2F5IE4uCiAKK2NvbmZpZyBDUllQVE9fRVNTSVYKKwl0cmlzdGF0ZSAiRVNTSVYgc3VwcG9ydCBmb3IgYmxvY2sgZW5jcnlwdGlvbiIKKwlzZWxlY3QgQ1JZUFRPX0FVVEhFTkMKKwloZWxwCisJICBFbmNyeXB0ZWQgc2FsdC1zZWN0b3IgaW5pdGlhbGl6YXRpb24gdmVjdG9yIChFU1NJVikgaXMgYW4gSVYKKwkgIGdlbmVyYXRpb24gbWV0aG9kIHRoYXQgaXMgdXNlZCBpbiBzb21lIGNhc2VzIGJ5IGZzY3J5cHQgYW5kL29yCisJICBkbS1jcnlwdC4gSXQgdXNlcyB0aGUgaGFzaCBvZiB0aGUgYmxvY2sgZW5jcnlwdGlvbiBrZXkgYXMgdGhlCisJICBzeW1tZXRyaWMga2V5IGZvciBhIGJsb2NrIGVuY3J5cHRpb24gcGFzcyBhcHBsaWVkIHRvIHRoZSBpbnB1dAorCSAgSVYsIG1ha2luZyBsb3cgZW50cm9weSBJViBzb3VyY2VzIG1vcmUgc3VpdGFibGUgZm9yIGJsb2NrCisJICBlbmNyeXB0aW9uLgorCisJICBUaGlzIGRyaXZlciBpbXBsZW1lbnRzIGEgY3J5cHRvIEFQSSB0ZW1wbGF0ZSB0aGF0IGNhbiBiZQorCSAgaW5zdGFudGlhdGVkIGVpdGhlciBhcyBhIHNrY2lwaGVyIG9yIGFzIGEgYWVhZCAoZGVwZW5kaW5nIG9uIHRoZQorCSAgdHlwZSBvZiB0aGUgZmlyc3QgdGVtcGxhdGUgYXJndW1lbnQpLCBhbmQgd2hpY2ggZGVmZXJzIGVuY3J5cHRpb24KKwkgIGFuZCBkZWNyeXB0aW9uIHJlcXVlc3RzIHRvIHRoZSBlbmNhcHN1bGF0ZWQgY2lwaGVyIGFmdGVyIGFwcGx5aW5nCisJICBFU1NJViB0byB0aGUgaW5wdXQgSVYuIE5vdGUgdGhhdCBpbiB0aGUgYWVhZCBjYXNlLCBpdCBpcyBhc3N1bWVkCisJICB0aGF0IHRoZSBrZXlzIGFyZSBwcmVzZW50ZWQgaW4gdGhlIHNhbWUgZm9ybWF0IHVzZWQgYnkgdGhlIGF1dGhlbmMKKwkgIHRlbXBsYXRlLCBhbmQgdGhhdCB0aGUgSVYgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHRoZSBhdXRoZW50aWNhdGVkCisJICBhc3NvY2lhdGVkIGRhdGEgKEFBRCkgcmVnaW9uICh3aGljaCBpcyBob3cgZG0tY3J5cHQgdXNlcyBpdC4pCisKKwkgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIEVTU0lWIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgbmV3IGRlcGxveW1lbnRzLAorCSAgYW5kIHNvIHRoaXMgb25seSBuZWVkcyB0byBiZSBlbmFibGVkIHdoZW4gaW50ZXJvcGVyYWJpbGl0eSB3aXRoCisJICBleGlzdGluZyBlbmNyeXB0ZWQgdm9sdW1lcyBvZiBmaWxlc3lzdGVtcyBpcyByZXF1aXJlZCwgb3Igd2hlbgorCSAgYnVpbGRpbmcgZm9yIGEgcGFydGljdWxhciBzeXN0ZW0gdGhhdCByZXF1aXJlcyBpdCAoZS5nLiwgd2hlbgorCSAgdGhlIFNvQyBpbiBxdWVzdGlvbiBoYXMgYWNjZWxlcmF0ZWQgQ0JDIGJ1dCBub3QgWFRTLCBtYWtpbmcgQ0JDCisJICBjb21iaW5lZCB3aXRoIEVTU0lWIHRoZSBvbmx5IGZlYXNpYmxlIG1vZGUgZm9yIGgvdyBhY2NlbGVyYXRlZAorCSAgYmxvY2sgZW5jcnlwdGlvbikKKwogY29tbWVudCAiSGFzaCBtb2RlcyIKIAogY29uZmlnIENSWVBUT19DTUFDCmRpZmYgLS1naXQgYS9jcnlwdG8vTWFrZWZpbGUgYi9jcnlwdG8vTWFrZWZpbGUKaW5kZXggMGQyY2RkNS4uZmNiMWVlNiAxMDA2NDQKLS0tIGEvY3J5cHRvL01ha2VmaWxlCisrKyBiL2NyeXB0by9NYWtlZmlsZQpAQCAtMTY1LDYgKzE2NSw3IEBACiBvYmotJChDT05GSUdfQ1JZUFRPX1pTVEQpICs9IHpzdGQubwogb2JqLSQoQ09ORklHX0NSWVBUT19PRkIpICs9IG9mYi5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0VDQykgKz0gZWNjLm8KK29iai0kKENPTkZJR19DUllQVE9fRVNTSVYpICs9IGVzc2l2Lm8KIAogZWNkaF9nZW5lcmljLXkgKz0gZWNkaC5vCiBlY2RoX2dlbmVyaWMteSArPSBlY2RoX2hlbHBlci5vCmRpZmYgLS1naXQgYS9jcnlwdG8vYXN5bW1ldHJpY19rZXlzL3BrY3M3X3ZlcmlmeS5jIGIvY3J5cHRvL2FzeW1tZXRyaWNfa2V5cy9wa2NzN192ZXJpZnkuYwppbmRleCAxMWJlZTY3Li5jZTQ5ODIwIDEwMDY0NAotLS0gYS9jcnlwdG8vYXN5bW1ldHJpY19rZXlzL3BrY3M3X3ZlcmlmeS5jCisrKyBiL2NyeXB0by9hc3ltbWV0cmljX2tleXMvcGtjczdfdmVyaWZ5LmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9hc24xLmg+CiAjaW5jbHVkZSA8Y3J5cHRvL2hhc2guaD4KKyNpbmNsdWRlIDxjcnlwdG8vaGFzaF9pbmZvLmg+CiAjaW5jbHVkZSA8Y3J5cHRvL3B1YmxpY19rZXkuaD4KICNpbmNsdWRlICJwa2NzN19wYXJzZXIuaCIKIApAQCAtMjksNiArMzAsMTAgQEAgc3RhdGljIGludCBwa2NzN19kaWdlc3Qoc3RydWN0IHBrY3M3X21lc3NhZ2UgKnBrY3M3LAogCiAJa2VudGVyKCIsJXUsJXMiLCBzaW5mby0+aW5kZXgsIHNpbmZvLT5zaWctPmhhc2hfYWxnbyk7CiAKKwkvKiBUaGUgZGlnZXN0IHdhcyBjYWxjdWxhdGVkIGFscmVhZHkuICovCisJaWYgKHNpZy0+ZGlnZXN0KQorCQlyZXR1cm4gMDsKKwogCWlmICghc2luZm8tPnNpZy0+aGFzaF9hbGdvKQogCQlyZXR1cm4gLUVOT1BLRzsKIApAQCAtMTE3LDYgKzEyMiwzNCBAQCBzdGF0aWMgaW50IHBrY3M3X2RpZ2VzdChzdHJ1Y3QgcGtjczdfbWVzc2FnZSAqcGtjczcsCiAJcmV0dXJuIHJldDsKIH0KIAoraW50IHBrY3M3X2dldF9kaWdlc3Qoc3RydWN0IHBrY3M3X21lc3NhZ2UgKnBrY3M3LCBjb25zdCB1OCAqKmJ1ZiwgdTMyICpsZW4sCisJCSAgICAgZW51bSBoYXNoX2FsZ28gKmhhc2hfYWxnbykKK3sKKwlzdHJ1Y3QgcGtjczdfc2lnbmVkX2luZm8gKnNpbmZvID0gcGtjczctPnNpZ25lZF9pbmZvczsKKwlpbnQgaSwgcmV0OworCisJLyoKKwkgKiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBtZXNzYWdlcyB3aXRoIG1vcmUgdGhhbiBvbmUgc2lnbmF0dXJlLgorCSAqLworCWlmIChzaW5mbyA9PSBOVUxMIHx8IHNpbmZvLT5uZXh0ICE9IE5VTEwpCisJCXJldHVybiAtRUJBRE1TRzsKKworCXJldCA9IHBrY3M3X2RpZ2VzdChwa2NzNywgc2luZm8pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwkqYnVmID0gc2luZm8tPnNpZy0+ZGlnZXN0OworCSpsZW4gPSBzaW5mby0+c2lnLT5kaWdlc3Rfc2l6ZTsKKworCWZvciAoaSA9IDA7IGkgPCBIQVNIX0FMR09fX0xBU1Q7IGkrKykKKwkJaWYgKCFzdHJjbXAoaGFzaF9hbGdvX25hbWVbaV0sIHNpbmZvLT5zaWctPmhhc2hfYWxnbykpIHsKKwkJCSpoYXNoX2FsZ28gPSBpOworCQkJYnJlYWs7CisJCX0KKworCXJldHVybiAwOworfQorCiAvKgogICogRmluZCB0aGUga2V5IChYLjUwOSBjZXJ0aWZpY2F0ZSkgdG8gdXNlIHRvIHZlcmlmeSBhIFBLQ1MjNyBtZXNzYWdlLiAgUEtDUyM3CiAgKiB1c2VzIHRoZSBpc3N1ZXIncyBuYW1lIGFuZCB0aGUgaXNzdWluZyBjZXJ0aWZpY2F0ZSBzZXJpYWwgbnVtYmVyIGZvcgpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzeW1tZXRyaWNfa2V5cy92ZXJpZnlfcGVmaWxlLmMgYi9jcnlwdG8vYXN5bW1ldHJpY19rZXlzL3ZlcmlmeV9wZWZpbGUuYwppbmRleCAzYjMwM2ZlLi5jYzlkYmNlIDEwMDY0NAotLS0gYS9jcnlwdG8vYXN5bW1ldHJpY19rZXlzL3ZlcmlmeV9wZWZpbGUuYworKysgYi9jcnlwdG8vYXN5bW1ldHJpY19rZXlzL3ZlcmlmeV9wZWZpbGUuYwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgaW50IHBlZmlsZV9wYXJzZV9iaW5hcnkoY29uc3Qgdm9pZCAqcGVidWYsIHVuc2lnbmVkIGludCBwZWxlbiwKIAogCWlmICghZGRpci0+Y2VydHMudmlydHVhbF9hZGRyZXNzIHx8ICFkZGlyLT5jZXJ0cy5zaXplKSB7CiAJCXByX2RlYnVnKCJVbnNpZ25lZCBQRSBiaW5hcnlcbiIpOwotCQlyZXR1cm4gLUVLRVlSRUpFQ1RFRDsKKwkJcmV0dXJuIC1FTk9EQVRBOwogCX0KIAogCWNoa2FkZHIoY3R4LT5oZWFkZXJfc2l6ZSwgZGRpci0+Y2VydHMudmlydHVhbF9hZGRyZXNzLApAQCAtNDAzLDYgKzQwMyw4IEBAIHN0YXRpYyBpbnQgcGVmaWxlX2RpZ2VzdF9wZShjb25zdCB2b2lkICpwZWJ1ZiwgdW5zaWduZWQgaW50IHBlbGVuLAogICogICgqKSAwIGlmIGF0IGxlYXN0IG9uZSBzaWduYXR1cmUgY2hhaW4gaW50ZXJzZWN0cyB3aXRoIHRoZSBrZXlzIGluIHRoZSB0cnVzdAogICoJa2V5cmluZywgb3I6CiAgKgorICogICgqKSAtRU5PREFUQSBpZiB0aGVyZSBpcyBubyBzaWduYXR1cmUgcHJlc2VudC4KKyAqCiAgKiAgKCopIC1FTk9QS0cgaWYgYSBzdWl0YWJsZSBjcnlwdG8gbW9kdWxlIGNvdWxkbid0IGJlIGZvdW5kIGZvciBhIGNoZWNrIG9uIGEKICAqCWNoYWluLgogICoKZGlmZiAtLWdpdCBhL2NyeXB0by9lc3Npdi5jIGIvY3J5cHRvL2Vzc2l2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThiZWZjOAotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9lc3Npdi5jCkBAIC0wLDAgKzEsNjYzIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIEVTU0lWIHNrY2lwaGVyIGFuZCBhZWFkIHRlbXBsYXRlIGZvciBibG9jayBlbmNyeXB0aW9uCisgKgorICogVGhpcyB0ZW1wbGF0ZSBlbmNhcHN1bGF0ZXMgdGhlIEVTU0lWIElWIGdlbmVyYXRpb24gYWxnb3JpdGhtIHVzZWQgYnkKKyAqIGRtLWNyeXB0IGFuZCBmc2NyeXB0LCB3aGljaCBjb252ZXJ0cyB0aGUgaW5pdGlhbCB2ZWN0b3IgZm9yIHRoZSBza2NpcGhlcgorICogdXNlZCBmb3IgYmxvY2sgZW5jcnlwdGlvbiwgYnkgZW5jcnlwdGluZyBpdCB1c2luZyB0aGUgaGFzaCBvZiB0aGUKKyAqIHNrY2lwaGVyIGtleSBhcyBlbmNyeXB0aW9uIGtleS4gVXN1YWxseSwgdGhlIGlucHV0IElWIGlzIGEgNjQtYml0IHNlY3RvcgorICogbnVtYmVyIGluIExFIHJlcHJlc2VudGF0aW9uIHplcm8tcGFkZGVkIHRvIHRoZSBzaXplIG9mIHRoZSBJViwgYnV0IHRoaXMKKyAqIGlzIG5vdCBhc3N1bWVkIGJ5IHRoaXMgZHJpdmVyLgorICoKKyAqIFRoZSB0eXBpY2FsIHVzZSBvZiB0aGlzIHRlbXBsYXRlIGlzIHRvIGluc3RhbnRpYXRlIHRoZSBza2NpcGhlcgorICogJ2Vzc2l2KGNiYyhhZXMpLHNoYTI1NiknLCB3aGljaCBpcyB0aGUgb25seSBpbnN0YW50aWF0aW9uIHVzZWQgYnkKKyAqIGZzY3J5cHQsIGFuZCB0aGUgbW9zdCByZWxldmFudCBvbmUgZm9yIGRtLWNyeXB0LiBIb3dldmVyLCBkbS1jcnlwdAorICogYWxzbyBwZXJtaXRzIEVTU0lWIHRvIGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgYXV0aGVuYyB0ZW1wbGF0ZSwKKyAqIGUuZy4sICdlc3NpdihhdXRoZW5jKGhtYWMoc2hhMjU2KSxjYmMoYWVzKSksc2hhMjU2KScsIGluIHdoaWNoIGNhc2UKKyAqIHdlIG5lZWQgdG8gaW5zdGFudGlhdGUgYW4gYWVhZCB0aGF0IGFjY2VwdHMgdGhlIHNhbWUgc3BlY2lhbCBrZXkgZm9ybWF0CisgKiBhcyB0aGUgYXV0aGVuYyB0ZW1wbGF0ZSwgYW5kIGRlYWxzIHdpdGggdGhlIHdheSB0aGUgZW5jcnlwdGVkIElWIGlzCisgKiBlbWJlZGRlZCBpbnRvIHRoZSBBQUQgYXJlYSBvZiB0aGUgYWVhZCByZXF1ZXN0LiBUaGlzIG1lYW5zIHRoZSBBRUFECisgKiBmbGF2b3IgcHJvZHVjZWQgYnkgdGhpcyB0ZW1wbGF0ZSBpcyB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIHdheSBkbS1jcnlwdAorICogaGFwcGVucyB0byB1c2UgaXQuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE5IExpbmFybywgTHRkLiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4KKyAqCisgKiBIZWF2aWx5IGJhc2VkIG9uOgorICogYWRpYW50dW0gbGVuZ3RoLXByZXNlcnZpbmcgZW5jcnlwdGlvbiBtb2RlCisgKgorICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQworICovCisKKyNpbmNsdWRlIDxjcnlwdG8vYXV0aGVuYy5oPgorI2luY2x1ZGUgPGNyeXB0by9pbnRlcm5hbC9hZWFkLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KKyNpbmNsdWRlIDxjcnlwdG8vaW50ZXJuYWwvc2tjaXBoZXIuaD4KKyNpbmNsdWRlIDxjcnlwdG8vc2NhdHRlcndhbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKworI2luY2x1ZGUgImludGVybmFsLmgiCisKK3N0cnVjdCBlc3Npdl9pbnN0YW5jZV9jdHggeworCXVuaW9uIHsKKwkJc3RydWN0IGNyeXB0b19za2NpcGhlcl9zcGF3bglza2NpcGhlcl9zcGF3bjsKKwkJc3RydWN0IGNyeXB0b19hZWFkX3NwYXduCWFlYWRfc3Bhd247CisJfSB1OworCWNoYXIJZXNzaXZfY2lwaGVyX25hbWVbQ1JZUFRPX01BWF9BTEdfTkFNRV07CisJY2hhcglzaGFzaF9kcml2ZXJfbmFtZVtDUllQVE9fTUFYX0FMR19OQU1FXTsKK307CisKK3N0cnVjdCBlc3Npdl90Zm1fY3R4IHsKKwl1bmlvbiB7CisJCXN0cnVjdCBjcnlwdG9fc2tjaXBoZXIJKnNrY2lwaGVyOworCQlzdHJ1Y3QgY3J5cHRvX2FlYWQJKmFlYWQ7CisJfSB1OworCXN0cnVjdCBjcnlwdG9fY2lwaGVyCQkqZXNzaXZfY2lwaGVyOworCXN0cnVjdCBjcnlwdG9fc2hhc2gJCSpoYXNoOworCWludAkJCQlpdm9mZnNldDsKK307CisKK3N0cnVjdCBlc3Npdl9hZWFkX3JlcXVlc3RfY3R4IHsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QJCXNnWzRdOworCXU4CQkJCSphc3NvYzsKKwlzdHJ1Y3QgYWVhZF9yZXF1ZXN0CQlhZWFkX3JlcTsKK307CisKK3N0YXRpYyBpbnQgZXNzaXZfc2tjaXBoZXJfc2V0a2V5KHN0cnVjdCBjcnlwdG9fc2tjaXBoZXIgKnRmbSwKKwkJCQkgY29uc3QgdTggKmtleSwgdW5zaWduZWQgaW50IGtleWxlbikKK3sKKwlzdHJ1Y3QgZXNzaXZfdGZtX2N0eCAqdGN0eCA9IGNyeXB0b19za2NpcGhlcl9jdHgodGZtKTsKKwlTSEFTSF9ERVNDX09OX1NUQUNLKGRlc2MsIHRjdHgtPmhhc2gpOworCXU4IHNhbHRbSEFTSF9NQVhfRElHRVNUU0laRV07CisJaW50IGVycjsKKworCWNyeXB0b19za2NpcGhlcl9jbGVhcl9mbGFncyh0Y3R4LT51LnNrY2lwaGVyLCBDUllQVE9fVEZNX1JFUV9NQVNLKTsKKwljcnlwdG9fc2tjaXBoZXJfc2V0X2ZsYWdzKHRjdHgtPnUuc2tjaXBoZXIsCisJCQkJICBjcnlwdG9fc2tjaXBoZXJfZ2V0X2ZsYWdzKHRmbSkgJgorCQkJCSAgQ1JZUFRPX1RGTV9SRVFfTUFTSyk7CisJZXJyID0gY3J5cHRvX3NrY2lwaGVyX3NldGtleSh0Y3R4LT51LnNrY2lwaGVyLCBrZXksIGtleWxlbik7CisJY3J5cHRvX3NrY2lwaGVyX3NldF9mbGFncyh0Zm0sCisJCQkJICBjcnlwdG9fc2tjaXBoZXJfZ2V0X2ZsYWdzKHRjdHgtPnUuc2tjaXBoZXIpICYKKwkJCQkgIENSWVBUT19URk1fUkVTX01BU0spOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlkZXNjLT50Zm0gPSB0Y3R4LT5oYXNoOworCWVyciA9IGNyeXB0b19zaGFzaF9kaWdlc3QoZGVzYywga2V5LCBrZXlsZW4sIHNhbHQpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwljcnlwdG9fY2lwaGVyX2NsZWFyX2ZsYWdzKHRjdHgtPmVzc2l2X2NpcGhlciwgQ1JZUFRPX1RGTV9SRVFfTUFTSyk7CisJY3J5cHRvX2NpcGhlcl9zZXRfZmxhZ3ModGN0eC0+ZXNzaXZfY2lwaGVyLAorCQkJCWNyeXB0b19za2NpcGhlcl9nZXRfZmxhZ3ModGZtKSAmCisJCQkJQ1JZUFRPX1RGTV9SRVFfTUFTSyk7CisJZXJyID0gY3J5cHRvX2NpcGhlcl9zZXRrZXkodGN0eC0+ZXNzaXZfY2lwaGVyLCBzYWx0LAorCQkJCSAgIGNyeXB0b19zaGFzaF9kaWdlc3RzaXplKHRjdHgtPmhhc2gpKTsKKwljcnlwdG9fc2tjaXBoZXJfc2V0X2ZsYWdzKHRmbSwKKwkJCQkgIGNyeXB0b19jaXBoZXJfZ2V0X2ZsYWdzKHRjdHgtPmVzc2l2X2NpcGhlcikgJgorCQkJCSAgQ1JZUFRPX1RGTV9SRVNfTUFTSyk7CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGVzc2l2X2FlYWRfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtLCBjb25zdCB1OCAqa2V5LAorCQkJICAgICB1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCBlc3Npdl90Zm1fY3R4ICp0Y3R4ID0gY3J5cHRvX2FlYWRfY3R4KHRmbSk7CisJU0hBU0hfREVTQ19PTl9TVEFDSyhkZXNjLCB0Y3R4LT5oYXNoKTsKKwlzdHJ1Y3QgY3J5cHRvX2F1dGhlbmNfa2V5cyBrZXlzOworCXU4IHNhbHRbSEFTSF9NQVhfRElHRVNUU0laRV07CisJaW50IGVycjsKKworCWNyeXB0b19hZWFkX2NsZWFyX2ZsYWdzKHRjdHgtPnUuYWVhZCwgQ1JZUFRPX1RGTV9SRVFfTUFTSyk7CisJY3J5cHRvX2FlYWRfc2V0X2ZsYWdzKHRjdHgtPnUuYWVhZCwgY3J5cHRvX2FlYWRfZ2V0X2ZsYWdzKHRmbSkgJgorCQkJCQkgICAgQ1JZUFRPX1RGTV9SRVFfTUFTSyk7CisJZXJyID0gY3J5cHRvX2FlYWRfc2V0a2V5KHRjdHgtPnUuYWVhZCwga2V5LCBrZXlsZW4pOworCWNyeXB0b19hZWFkX3NldF9mbGFncyh0Zm0sIGNyeXB0b19hZWFkX2dldF9mbGFncyh0Y3R4LT51LmFlYWQpICYKKwkJCQkgICBDUllQVE9fVEZNX1JFU19NQVNLKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJaWYgKGNyeXB0b19hdXRoZW5jX2V4dHJhY3RrZXlzKCZrZXlzLCBrZXksIGtleWxlbikgIT0gMCkgeworCQljcnlwdG9fYWVhZF9zZXRfZmxhZ3ModGZtLCBDUllQVE9fVEZNX1JFU19CQURfS0VZX0xFTik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRlc2MtPnRmbSA9IHRjdHgtPmhhc2g7CisJZXJyID0gY3J5cHRvX3NoYXNoX2luaXQoZGVzYykgPzoKKwkgICAgICBjcnlwdG9fc2hhc2hfdXBkYXRlKGRlc2MsIGtleXMuZW5ja2V5LCBrZXlzLmVuY2tleWxlbikgPzoKKwkgICAgICBjcnlwdG9fc2hhc2hfZmludXAoZGVzYywga2V5cy5hdXRoa2V5LCBrZXlzLmF1dGhrZXlsZW4sIHNhbHQpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwljcnlwdG9fY2lwaGVyX2NsZWFyX2ZsYWdzKHRjdHgtPmVzc2l2X2NpcGhlciwgQ1JZUFRPX1RGTV9SRVFfTUFTSyk7CisJY3J5cHRvX2NpcGhlcl9zZXRfZmxhZ3ModGN0eC0+ZXNzaXZfY2lwaGVyLCBjcnlwdG9fYWVhZF9nZXRfZmxhZ3ModGZtKSAmCisJCQkJCQkgICAgQ1JZUFRPX1RGTV9SRVFfTUFTSyk7CisJZXJyID0gY3J5cHRvX2NpcGhlcl9zZXRrZXkodGN0eC0+ZXNzaXZfY2lwaGVyLCBzYWx0LAorCQkJCSAgIGNyeXB0b19zaGFzaF9kaWdlc3RzaXplKHRjdHgtPmhhc2gpKTsKKwljcnlwdG9fYWVhZF9zZXRfZmxhZ3ModGZtLCBjcnlwdG9fY2lwaGVyX2dldF9mbGFncyh0Y3R4LT5lc3Npdl9jaXBoZXIpICYKKwkJCQkgICBDUllQVE9fVEZNX1JFU19NQVNLKTsKKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgZXNzaXZfYWVhZF9zZXRhdXRoc2l6ZShzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSwKKwkJCQkgIHVuc2lnbmVkIGludCBhdXRoc2l6ZSkKK3sKKwlzdHJ1Y3QgZXNzaXZfdGZtX2N0eCAqdGN0eCA9IGNyeXB0b19hZWFkX2N0eCh0Zm0pOworCisJcmV0dXJuIGNyeXB0b19hZWFkX3NldGF1dGhzaXplKHRjdHgtPnUuYWVhZCwgYXV0aHNpemUpOworfQorCitzdGF0aWMgdm9pZCBlc3Npdl9za2NpcGhlcl9kb25lKHN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCAqYXJlcSwgaW50IGVycikKK3sKKwlzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCAqcmVxID0gYXJlcS0+ZGF0YTsKKworCXNrY2lwaGVyX3JlcXVlc3RfY29tcGxldGUocmVxLCBlcnIpOworfQorCitzdGF0aWMgaW50IGVzc2l2X3NrY2lwaGVyX2NyeXB0KHN0cnVjdCBza2NpcGhlcl9yZXF1ZXN0ICpyZXEsIGJvb2wgZW5jKQoreworCXN0cnVjdCBjcnlwdG9fc2tjaXBoZXIgKnRmbSA9IGNyeXB0b19za2NpcGhlcl9yZXF0Zm0ocmVxKTsKKwljb25zdCBzdHJ1Y3QgZXNzaXZfdGZtX2N0eCAqdGN0eCA9IGNyeXB0b19za2NpcGhlcl9jdHgodGZtKTsKKwlzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCAqc3VicmVxID0gc2tjaXBoZXJfcmVxdWVzdF9jdHgocmVxKTsKKworCWNyeXB0b19jaXBoZXJfZW5jcnlwdF9vbmUodGN0eC0+ZXNzaXZfY2lwaGVyLCByZXEtPml2LCByZXEtPml2KTsKKworCXNrY2lwaGVyX3JlcXVlc3Rfc2V0X3RmbShzdWJyZXEsIHRjdHgtPnUuc2tjaXBoZXIpOworCXNrY2lwaGVyX3JlcXVlc3Rfc2V0X2NyeXB0KHN1YnJlcSwgcmVxLT5zcmMsIHJlcS0+ZHN0LCByZXEtPmNyeXB0bGVuLAorCQkJCSAgIHJlcS0+aXYpOworCXNrY2lwaGVyX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKHN1YnJlcSwgc2tjaXBoZXJfcmVxdWVzdF9mbGFncyhyZXEpLAorCQkJCSAgICAgIGVzc2l2X3NrY2lwaGVyX2RvbmUsIHJlcSk7CisKKwlyZXR1cm4gZW5jID8gY3J5cHRvX3NrY2lwaGVyX2VuY3J5cHQoc3VicmVxKSA6CisJCSAgICAgY3J5cHRvX3NrY2lwaGVyX2RlY3J5cHQoc3VicmVxKTsKK30KKworc3RhdGljIGludCBlc3Npdl9za2NpcGhlcl9lbmNyeXB0KHN0cnVjdCBza2NpcGhlcl9yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIGVzc2l2X3NrY2lwaGVyX2NyeXB0KHJlcSwgdHJ1ZSk7Cit9CisKK3N0YXRpYyBpbnQgZXNzaXZfc2tjaXBoZXJfZGVjcnlwdChzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBlc3Npdl9za2NpcGhlcl9jcnlwdChyZXEsIGZhbHNlKTsKK30KKworc3RhdGljIHZvaWQgZXNzaXZfYWVhZF9kb25lKHN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCAqYXJlcSwgaW50IGVycikKK3sKKwlzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEgPSBhcmVxLT5kYXRhOworCXN0cnVjdCBlc3Npdl9hZWFkX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWVhZF9yZXF1ZXN0X2N0eChyZXEpOworCisJaWYgKHJjdHgtPmFzc29jKQorCQlrZnJlZShyY3R4LT5hc3NvYyk7CisJYWVhZF9yZXF1ZXN0X2NvbXBsZXRlKHJlcSwgZXJyKTsKK30KKworc3RhdGljIGludCBlc3Npdl9hZWFkX2NyeXB0KHN0cnVjdCBhZWFkX3JlcXVlc3QgKnJlcSwgYm9vbCBlbmMpCit7CisJc3RydWN0IGNyeXB0b19hZWFkICp0Zm0gPSBjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKTsKKwljb25zdCBzdHJ1Y3QgZXNzaXZfdGZtX2N0eCAqdGN0eCA9IGNyeXB0b19hZWFkX2N0eCh0Zm0pOworCXN0cnVjdCBlc3Npdl9hZWFkX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWVhZF9yZXF1ZXN0X2N0eChyZXEpOworCXN0cnVjdCBhZWFkX3JlcXVlc3QgKnN1YnJlcSA9ICZyY3R4LT5hZWFkX3JlcTsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNyYyA9IHJlcS0+c3JjOworCWludCBlcnI7CisKKwljcnlwdG9fY2lwaGVyX2VuY3J5cHRfb25lKHRjdHgtPmVzc2l2X2NpcGhlciwgcmVxLT5pdiwgcmVxLT5pdik7CisKKwkvKgorCSAqIGRtLWNyeXB0IGVtYmVkcyB0aGUgc2VjdG9yIG51bWJlciBhbmQgdGhlIElWIGluIHRoZSBBQUQgcmVnaW9uLCBzbworCSAqIHdlIGhhdmUgdG8gY29weSB0aGUgY29udmVydGVkIElWIGludG8gdGhlIHJpZ2h0IHNjYXR0ZXJsaXN0IGJlZm9yZQorCSAqIHdlIHBhc3MgaXQgb24uCisJICovCisJcmN0eC0+YXNzb2MgPSBOVUxMOworCWlmIChyZXEtPnNyYyA9PSByZXEtPmRzdCB8fCAhZW5jKSB7CisJCXNjYXR0ZXJ3YWxrX21hcF9hbmRfY29weShyZXEtPml2LCByZXEtPmRzdCwKKwkJCQkJIHJlcS0+YXNzb2NsZW4gLSBjcnlwdG9fYWVhZF9pdnNpemUodGZtKSwKKwkJCQkJIGNyeXB0b19hZWFkX2l2c2l6ZSh0Zm0pLCAxKTsKKwl9IGVsc2UgeworCQl1OCAqaXYgPSAodTggKilhZWFkX3JlcXVlc3RfY3R4KHJlcSkgKyB0Y3R4LT5pdm9mZnNldDsKKwkJaW50IGl2c2l6ZSA9IGNyeXB0b19hZWFkX2l2c2l6ZSh0Zm0pOworCQlpbnQgc3NpemUgPSByZXEtPmFzc29jbGVuIC0gaXZzaXplOworCQlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCQlpbnQgbmVudHM7CisKKwkJaWYgKHNzaXplIDwgMCkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCW5lbnRzID0gc2dfbmVudHNfZm9yX2xlbihyZXEtPnNyYywgc3NpemUpOworCQlpZiAobmVudHMgPCAwKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJbWVtY3B5KGl2LCByZXEtPml2LCBpdnNpemUpOworCQlzZ19pbml0X3RhYmxlKHJjdHgtPnNnLCA0KTsKKworCQlpZiAodW5saWtlbHkobmVudHMgPiAxKSkgeworCQkJLyoKKwkJCSAqIFRoaXMgaXMgYSBjYXNlIHRoYXQgcmFyZWx5IG9jY3VycyBpbiBwcmFjdGljZSwgYnV0CisJCQkgKiBmb3IgY29ycmVjdG5lc3MsIHdlIGhhdmUgdG8gZGVhbCB3aXRoIGl0IG5vbmV0aGVsZXNzLgorCQkJICovCisJCQlyY3R4LT5hc3NvYyA9IGttYWxsb2Moc3NpemUsIEdGUF9BVE9NSUMpOworCQkJaWYgKCFyY3R4LT5hc3NvYykKKwkJCQlyZXR1cm4gLUVOT01FTTsKKworCQkJc2NhdHRlcndhbGtfbWFwX2FuZF9jb3B5KHJjdHgtPmFzc29jLCByZXEtPnNyYywgMCwKKwkJCQkJCSBzc2l6ZSwgMCk7CisJCQlzZ19zZXRfYnVmKHJjdHgtPnNnLCByY3R4LT5hc3NvYywgc3NpemUpOworCQl9IGVsc2UgeworCQkJc2dfc2V0X3BhZ2UocmN0eC0+c2csIHNnX3BhZ2UocmVxLT5zcmMpLCBzc2l6ZSwKKwkJCQkgICAgcmVxLT5zcmMtPm9mZnNldCk7CisJCX0KKworCQlzZ19zZXRfYnVmKHJjdHgtPnNnICsgMSwgaXYsIGl2c2l6ZSk7CisJCXNnID0gc2NhdHRlcndhbGtfZmZ3ZChyY3R4LT5zZyArIDIsIHJlcS0+c3JjLCByZXEtPmFzc29jbGVuKTsKKwkJaWYgKHNnICE9IHJjdHgtPnNnICsgMikKKwkJCXNnX2NoYWluKHJjdHgtPnNnLCAzLCBzZyk7CisKKwkJc3JjID0gcmN0eC0+c2c7CisJfQorCisJYWVhZF9yZXF1ZXN0X3NldF90Zm0oc3VicmVxLCB0Y3R4LT51LmFlYWQpOworCWFlYWRfcmVxdWVzdF9zZXRfYWQoc3VicmVxLCByZXEtPmFzc29jbGVuKTsKKwlhZWFkX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKHN1YnJlcSwgYWVhZF9yZXF1ZXN0X2ZsYWdzKHJlcSksCisJCQkJICBlc3Npdl9hZWFkX2RvbmUsIHJlcSk7CisJYWVhZF9yZXF1ZXN0X3NldF9jcnlwdChzdWJyZXEsIHNyYywgcmVxLT5kc3QsIHJlcS0+Y3J5cHRsZW4sIHJlcS0+aXYpOworCisJZXJyID0gZW5jID8gY3J5cHRvX2FlYWRfZW5jcnlwdChzdWJyZXEpIDoKKwkJICAgIGNyeXB0b19hZWFkX2RlY3J5cHQoc3VicmVxKTsKKworCWlmIChyY3R4LT5hc3NvYyAmJiBlcnIgIT0gLUVJTlBST0dSRVNTKQorCQlrZnJlZShyY3R4LT5hc3NvYyk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBlc3Npdl9hZWFkX2VuY3J5cHQoc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBlc3Npdl9hZWFkX2NyeXB0KHJlcSwgdHJ1ZSk7Cit9CisKK3N0YXRpYyBpbnQgZXNzaXZfYWVhZF9kZWNyeXB0KHN0cnVjdCBhZWFkX3JlcXVlc3QgKnJlcSkKK3sKKwlyZXR1cm4gZXNzaXZfYWVhZF9jcnlwdChyZXEsIGZhbHNlKTsKK30KKworc3RhdGljIGludCBlc3Npdl9pbml0X3RmbShzdHJ1Y3QgZXNzaXZfaW5zdGFuY2VfY3R4ICppY3R4LAorCQkJICBzdHJ1Y3QgZXNzaXZfdGZtX2N0eCAqdGN0eCkKK3sKKwlzdHJ1Y3QgY3J5cHRvX2NpcGhlciAqZXNzaXZfY2lwaGVyOworCXN0cnVjdCBjcnlwdG9fc2hhc2ggKmhhc2g7CisJaW50IGVycjsKKworCWVzc2l2X2NpcGhlciA9IGNyeXB0b19hbGxvY19jaXBoZXIoaWN0eC0+ZXNzaXZfY2lwaGVyX25hbWUsIDAsIDApOworCWlmIChJU19FUlIoZXNzaXZfY2lwaGVyKSkKKwkJcmV0dXJuIFBUUl9FUlIoZXNzaXZfY2lwaGVyKTsKKworCWhhc2ggPSBjcnlwdG9fYWxsb2Nfc2hhc2goaWN0eC0+c2hhc2hfZHJpdmVyX25hbWUsIDAsIDApOworCWlmIChJU19FUlIoaGFzaCkpIHsKKwkJZXJyID0gUFRSX0VSUihoYXNoKTsKKwkJZ290byBlcnJfZnJlZV9lc3Npdl9jaXBoZXI7CisJfQorCisJdGN0eC0+ZXNzaXZfY2lwaGVyID0gZXNzaXZfY2lwaGVyOworCXRjdHgtPmhhc2ggPSBoYXNoOworCisJcmV0dXJuIDA7CisKK2Vycl9mcmVlX2Vzc2l2X2NpcGhlcjoKKwljcnlwdG9fZnJlZV9jaXBoZXIoZXNzaXZfY2lwaGVyKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGVzc2l2X3NrY2lwaGVyX2luaXRfdGZtKHN0cnVjdCBjcnlwdG9fc2tjaXBoZXIgKnRmbSkKK3sKKwlzdHJ1Y3Qgc2tjaXBoZXJfaW5zdGFuY2UgKmluc3QgPSBza2NpcGhlcl9hbGdfaW5zdGFuY2UodGZtKTsKKwlzdHJ1Y3QgZXNzaXZfaW5zdGFuY2VfY3R4ICppY3R4ID0gc2tjaXBoZXJfaW5zdGFuY2VfY3R4KGluc3QpOworCXN0cnVjdCBlc3Npdl90Zm1fY3R4ICp0Y3R4ID0gY3J5cHRvX3NrY2lwaGVyX2N0eCh0Zm0pOworCXN0cnVjdCBjcnlwdG9fc2tjaXBoZXIgKnNrY2lwaGVyOworCWludCBlcnI7CisKKwlza2NpcGhlciA9IGNyeXB0b19zcGF3bl9za2NpcGhlcigmaWN0eC0+dS5za2NpcGhlcl9zcGF3bik7CisJaWYgKElTX0VSUihza2NpcGhlcikpCisJCXJldHVybiBQVFJfRVJSKHNrY2lwaGVyKTsKKworCWNyeXB0b19za2NpcGhlcl9zZXRfcmVxc2l6ZSh0Zm0sIHNpemVvZihzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCkgKworCQkJCSAgICAgICAgIGNyeXB0b19za2NpcGhlcl9yZXFzaXplKHNrY2lwaGVyKSk7CisKKwllcnIgPSBlc3Npdl9pbml0X3RmbShpY3R4LCB0Y3R4KTsKKwlpZiAoZXJyKSB7CisJCWNyeXB0b19mcmVlX3NrY2lwaGVyKHNrY2lwaGVyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwl0Y3R4LT51LnNrY2lwaGVyID0gc2tjaXBoZXI7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZXNzaXZfYWVhZF9pbml0X3RmbShzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSkKK3sKKwlzdHJ1Y3QgYWVhZF9pbnN0YW5jZSAqaW5zdCA9IGFlYWRfYWxnX2luc3RhbmNlKHRmbSk7CisJc3RydWN0IGVzc2l2X2luc3RhbmNlX2N0eCAqaWN0eCA9IGFlYWRfaW5zdGFuY2VfY3R4KGluc3QpOworCXN0cnVjdCBlc3Npdl90Zm1fY3R4ICp0Y3R4ID0gY3J5cHRvX2FlYWRfY3R4KHRmbSk7CisJc3RydWN0IGNyeXB0b19hZWFkICphZWFkOworCXVuc2lnbmVkIGludCBzdWJyZXFfc2l6ZTsKKwlpbnQgZXJyOworCisJQlVJTERfQlVHX09OKG9mZnNldG9mZW5kKHN0cnVjdCBlc3Npdl9hZWFkX3JlcXVlc3RfY3R4LCBhZWFkX3JlcSkgIT0KKwkJICAgICBzaXplb2Yoc3RydWN0IGVzc2l2X2FlYWRfcmVxdWVzdF9jdHgpKTsKKworCWFlYWQgPSBjcnlwdG9fc3Bhd25fYWVhZCgmaWN0eC0+dS5hZWFkX3NwYXduKTsKKwlpZiAoSVNfRVJSKGFlYWQpKQorCQlyZXR1cm4gUFRSX0VSUihhZWFkKTsKKworCXN1YnJlcV9zaXplID0gRklFTERfU0laRU9GKHN0cnVjdCBlc3Npdl9hZWFkX3JlcXVlc3RfY3R4LCBhZWFkX3JlcSkgKworCQkgICAgICBjcnlwdG9fYWVhZF9yZXFzaXplKGFlYWQpOworCisJdGN0eC0+aXZvZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgZXNzaXZfYWVhZF9yZXF1ZXN0X2N0eCwgYWVhZF9yZXEpICsKKwkJCSBzdWJyZXFfc2l6ZTsKKwljcnlwdG9fYWVhZF9zZXRfcmVxc2l6ZSh0Zm0sIHRjdHgtPml2b2Zmc2V0ICsgY3J5cHRvX2FlYWRfaXZzaXplKGFlYWQpKTsKKworCWVyciA9IGVzc2l2X2luaXRfdGZtKGljdHgsIHRjdHgpOworCWlmIChlcnIpIHsKKwkJY3J5cHRvX2ZyZWVfYWVhZChhZWFkKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwl0Y3R4LT51LmFlYWQgPSBhZWFkOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBlc3Npdl9za2NpcGhlcl9leGl0X3RmbShzdHJ1Y3QgY3J5cHRvX3NrY2lwaGVyICp0Zm0pCit7CisJc3RydWN0IGVzc2l2X3RmbV9jdHggKnRjdHggPSBjcnlwdG9fc2tjaXBoZXJfY3R4KHRmbSk7CisKKwljcnlwdG9fZnJlZV9za2NpcGhlcih0Y3R4LT51LnNrY2lwaGVyKTsKKwljcnlwdG9fZnJlZV9jaXBoZXIodGN0eC0+ZXNzaXZfY2lwaGVyKTsKKwljcnlwdG9fZnJlZV9zaGFzaCh0Y3R4LT5oYXNoKTsKK30KKworc3RhdGljIHZvaWQgZXNzaXZfYWVhZF9leGl0X3RmbShzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSkKK3sKKwlzdHJ1Y3QgZXNzaXZfdGZtX2N0eCAqdGN0eCA9IGNyeXB0b19hZWFkX2N0eCh0Zm0pOworCisJY3J5cHRvX2ZyZWVfYWVhZCh0Y3R4LT51LmFlYWQpOworCWNyeXB0b19mcmVlX2NpcGhlcih0Y3R4LT5lc3Npdl9jaXBoZXIpOworCWNyeXB0b19mcmVlX3NoYXNoKHRjdHgtPmhhc2gpOworfQorCitzdGF0aWMgdm9pZCBlc3Npdl9za2NpcGhlcl9mcmVlX2luc3RhbmNlKHN0cnVjdCBza2NpcGhlcl9pbnN0YW5jZSAqaW5zdCkKK3sKKwlzdHJ1Y3QgZXNzaXZfaW5zdGFuY2VfY3R4ICppY3R4ID0gc2tjaXBoZXJfaW5zdGFuY2VfY3R4KGluc3QpOworCisJY3J5cHRvX2Ryb3Bfc2tjaXBoZXIoJmljdHgtPnUuc2tjaXBoZXJfc3Bhd24pOworCWtmcmVlKGluc3QpOworfQorCitzdGF0aWMgdm9pZCBlc3Npdl9hZWFkX2ZyZWVfaW5zdGFuY2Uoc3RydWN0IGFlYWRfaW5zdGFuY2UgKmluc3QpCit7CisJc3RydWN0IGVzc2l2X2luc3RhbmNlX2N0eCAqaWN0eCA9IGFlYWRfaW5zdGFuY2VfY3R4KGluc3QpOworCisJY3J5cHRvX2Ryb3BfYWVhZCgmaWN0eC0+dS5hZWFkX3NwYXduKTsKKwlrZnJlZShpbnN0KTsKK30KKworc3RhdGljIGJvb2wgcGFyc2VfY2lwaGVyX25hbWUoY2hhciAqZXNzaXZfY2lwaGVyX25hbWUsIGNvbnN0IGNoYXIgKmNyYV9uYW1lKQoreworCWNvbnN0IGNoYXIgKnAsICpxOworCWludCBsZW47CisKKwkvKiBmaW5kIHRoZSBsYXN0IG9wZW5pbmcgcGFyZW5zICovCisJcCA9IHN0cnJjaHIoY3JhX25hbWUsICcoJyk7CisJaWYgKCFwKyspCisJCXJldHVybiBmYWxzZTsKKworCS8qIGZpbmQgdGhlIGZpcnN0IGNsb3NpbmcgcGFyZW5zIGluIHRoZSB0YWlsIG9mIHRoZSBzdHJpbmcgKi8KKwlxID0gc3RyY2hyKHAsICcpJyk7CisJaWYgKCFxKQorCQlyZXR1cm4gZmFsc2U7CisKKwlsZW4gPSBxIC0gcDsKKwlpZiAobGVuID49IENSWVBUT19NQVhfQUxHX05BTUUpCisJCXJldHVybiBmYWxzZTsKKworCW1lbWNweShlc3Npdl9jaXBoZXJfbmFtZSwgcCwgbGVuKTsKKwllc3Npdl9jaXBoZXJfbmFtZVtsZW5dID0gJ1wwJzsKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgZXNzaXZfc3VwcG9ydGVkX2FsZ29yaXRobXMoY29uc3QgY2hhciAqZXNzaXZfY2lwaGVyX25hbWUsCisJCQkJICAgICAgIHN0cnVjdCBzaGFzaF9hbGcgKmhhc2hfYWxnLAorCQkJCSAgICAgICBpbnQgaXZzaXplKQoreworCXN0cnVjdCBjcnlwdG9fYWxnICphbGc7CisJYm9vbCByZXQgPSBmYWxzZTsKKworCWFsZyA9IGNyeXB0b19hbGdfbW9kX2xvb2t1cChlc3Npdl9jaXBoZXJfbmFtZSwKKwkJCQkgICAgQ1JZUFRPX0FMR19UWVBFX0NJUEhFUiwKKwkJCQkgICAgQ1JZUFRPX0FMR19UWVBFX01BU0spOworCWlmIChJU19FUlIoYWxnKSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGhhc2hfYWxnLT5kaWdlc3RzaXplIDwgYWxnLT5jcmFfY2lwaGVyLmNpYV9taW5fa2V5c2l6ZSB8fAorCSAgICBoYXNoX2FsZy0+ZGlnZXN0c2l6ZSA+IGFsZy0+Y3JhX2NpcGhlci5jaWFfbWF4X2tleXNpemUpCisJCWdvdG8gb3V0OworCisJaWYgKGl2c2l6ZSAhPSBhbGctPmNyYV9ibG9ja3NpemUpCisJCWdvdG8gb3V0OworCisJaWYgKGNyeXB0b19zaGFzaF9hbGdfaGFzX3NldGtleShoYXNoX2FsZykpCisJCWdvdG8gb3V0OworCisJcmV0ID0gdHJ1ZTsKKworb3V0OgorCWNyeXB0b19tb2RfcHV0KGFsZyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBlc3Npdl9jcmVhdGUoc3RydWN0IGNyeXB0b190ZW1wbGF0ZSAqdG1wbCwgc3RydWN0IHJ0YXR0ciAqKnRiKQoreworCXN0cnVjdCBjcnlwdG9fYXR0cl90eXBlICphbGd0OworCWNvbnN0IGNoYXIgKmlubmVyX2NpcGhlcl9uYW1lOworCWNvbnN0IGNoYXIgKnNoYXNoX25hbWU7CisJc3RydWN0IHNrY2lwaGVyX2luc3RhbmNlICpza2NpcGhlcl9pbnN0ID0gTlVMTDsKKwlzdHJ1Y3QgYWVhZF9pbnN0YW5jZSAqYWVhZF9pbnN0ID0gTlVMTDsKKwlzdHJ1Y3QgY3J5cHRvX2luc3RhbmNlICppbnN0OworCXN0cnVjdCBjcnlwdG9fYWxnICpiYXNlLCAqYmxvY2tfYmFzZTsKKwlzdHJ1Y3QgZXNzaXZfaW5zdGFuY2VfY3R4ICppY3R4OworCXN0cnVjdCBza2NpcGhlcl9hbGcgKnNrY2lwaGVyX2FsZyA9IE5VTEw7CisJc3RydWN0IGFlYWRfYWxnICphZWFkX2FsZyA9IE5VTEw7CisJc3RydWN0IGNyeXB0b19hbGcgKl9oYXNoX2FsZzsKKwlzdHJ1Y3Qgc2hhc2hfYWxnICpoYXNoX2FsZzsKKwlpbnQgaXZzaXplOworCXUzMiB0eXBlOworCWludCBlcnI7CisKKwlhbGd0ID0gY3J5cHRvX2dldF9hdHRyX3R5cGUodGIpOworCWlmIChJU19FUlIoYWxndCkpCisJCXJldHVybiBQVFJfRVJSKGFsZ3QpOworCisJaW5uZXJfY2lwaGVyX25hbWUgPSBjcnlwdG9fYXR0cl9hbGdfbmFtZSh0YlsxXSk7CisJaWYgKElTX0VSUihpbm5lcl9jaXBoZXJfbmFtZSkpCisJCXJldHVybiBQVFJfRVJSKGlubmVyX2NpcGhlcl9uYW1lKTsKKworCXNoYXNoX25hbWUgPSBjcnlwdG9fYXR0cl9hbGdfbmFtZSh0YlsyXSk7CisJaWYgKElTX0VSUihzaGFzaF9uYW1lKSkKKwkJcmV0dXJuIFBUUl9FUlIoc2hhc2hfbmFtZSk7CisKKwl0eXBlID0gYWxndC0+dHlwZSAmIGFsZ3QtPm1hc2s7CisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIENSWVBUT19BTEdfVFlQRV9CTEtDSVBIRVI6CisJCXNrY2lwaGVyX2luc3QgPSBremFsbG9jKHNpemVvZigqc2tjaXBoZXJfaW5zdCkgKworCQkJCQlzaXplb2YoKmljdHgpLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFza2NpcGhlcl9pbnN0KQorCQkJcmV0dXJuIC1FTk9NRU07CisJCWluc3QgPSBza2NpcGhlcl9jcnlwdG9faW5zdGFuY2Uoc2tjaXBoZXJfaW5zdCk7CisJCWJhc2UgPSAmc2tjaXBoZXJfaW5zdC0+YWxnLmJhc2U7CisJCWljdHggPSBjcnlwdG9faW5zdGFuY2VfY3R4KGluc3QpOworCisJCS8qIFN5bW1ldHJpYyBjaXBoZXIsIGUuZy4sICJjYmMoYWVzKSIgKi8KKwkJY3J5cHRvX3NldF9za2NpcGhlcl9zcGF3bigmaWN0eC0+dS5za2NpcGhlcl9zcGF3biwgaW5zdCk7CisJCWVyciA9IGNyeXB0b19ncmFiX3NrY2lwaGVyKCZpY3R4LT51LnNrY2lwaGVyX3NwYXduLAorCQkJCQkgICBpbm5lcl9jaXBoZXJfbmFtZSwgMCwKKwkJCQkJICAgY3J5cHRvX3JlcXVpcmVzX3N5bmMoYWxndC0+dHlwZSwKKwkJCQkJCQkJYWxndC0+bWFzaykpOworCQlpZiAoZXJyKQorCQkJZ290byBvdXRfZnJlZV9pbnN0OworCQlza2NpcGhlcl9hbGcgPSBjcnlwdG9fc3Bhd25fc2tjaXBoZXJfYWxnKCZpY3R4LT51LnNrY2lwaGVyX3NwYXduKTsKKwkJYmxvY2tfYmFzZSA9ICZza2NpcGhlcl9hbGctPmJhc2U7CisJCWl2c2l6ZSA9IGNyeXB0b19za2NpcGhlcl9hbGdfaXZzaXplKHNrY2lwaGVyX2FsZyk7CisJCWJyZWFrOworCisJY2FzZSBDUllQVE9fQUxHX1RZUEVfQUVBRDoKKwkJYWVhZF9pbnN0ID0ga3phbGxvYyhzaXplb2YoKmFlYWRfaW5zdCkgKworCQkJCSAgICBzaXplb2YoKmljdHgpLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFhZWFkX2luc3QpCisJCQlyZXR1cm4gLUVOT01FTTsKKwkJaW5zdCA9IGFlYWRfY3J5cHRvX2luc3RhbmNlKGFlYWRfaW5zdCk7CisJCWJhc2UgPSAmYWVhZF9pbnN0LT5hbGcuYmFzZTsKKwkJaWN0eCA9IGNyeXB0b19pbnN0YW5jZV9jdHgoaW5zdCk7CisKKwkJLyogQUVBRCBjaXBoZXIsIGUuZy4sICJhdXRoZW5jKGhtYWMoc2hhMjU2KSxjYmMoYWVzKSkiICovCisJCWNyeXB0b19zZXRfYWVhZF9zcGF3bigmaWN0eC0+dS5hZWFkX3NwYXduLCBpbnN0KTsKKwkJZXJyID0gY3J5cHRvX2dyYWJfYWVhZCgmaWN0eC0+dS5hZWFkX3NwYXduLAorCQkJCSAgICAgICBpbm5lcl9jaXBoZXJfbmFtZSwgMCwKKwkJCQkgICAgICAgY3J5cHRvX3JlcXVpcmVzX3N5bmMoYWxndC0+dHlwZSwKKwkJCQkJCQkgICAgYWxndC0+bWFzaykpOworCQlpZiAoZXJyKQorCQkJZ290byBvdXRfZnJlZV9pbnN0OworCQlhZWFkX2FsZyA9IGNyeXB0b19zcGF3bl9hZWFkX2FsZygmaWN0eC0+dS5hZWFkX3NwYXduKTsKKwkJYmxvY2tfYmFzZSA9ICZhZWFkX2FsZy0+YmFzZTsKKwkJaWYgKCFzdHJzdGFydHMoYmxvY2tfYmFzZS0+Y3JhX25hbWUsICJhdXRoZW5jKCIpKSB7CisJCQlwcl93YXJuKCJPbmx5IGF1dGhlbmMoKSB0eXBlIEFFQURzIGFyZSBzdXBwb3J0ZWQgYnkgRVNTSVZcbiIpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gb3V0X2Ryb3Bfc2tjaXBoZXI7CisJCX0KKwkJaXZzaXplID0gYWVhZF9hbGctPml2c2l6ZTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoIXBhcnNlX2NpcGhlcl9uYW1lKGljdHgtPmVzc2l2X2NpcGhlcl9uYW1lLCBibG9ja19iYXNlLT5jcmFfbmFtZSkpIHsKKwkJcHJfd2FybigiRmFpbGVkIHRvIHBhcnNlIEVTU0lWIGNpcGhlciBuYW1lIGZyb20gc2tjaXBoZXIgY3JhX25hbWVcbiIpOworCQllcnIgPSAtRUlOVkFMOworCQlnb3RvIG91dF9kcm9wX3NrY2lwaGVyOworCX0KKworCS8qIFN5bmNocm9ub3VzIGhhc2gsIGUuZy4sICJzaGEyNTYiICovCisJX2hhc2hfYWxnID0gY3J5cHRvX2FsZ19tb2RfbG9va3VwKHNoYXNoX25hbWUsCisJCQkJCSAgQ1JZUFRPX0FMR19UWVBFX1NIQVNILAorCQkJCQkgIENSWVBUT19BTEdfVFlQRV9NQVNLKTsKKwlpZiAoSVNfRVJSKF9oYXNoX2FsZykpIHsKKwkJZXJyID0gUFRSX0VSUihfaGFzaF9hbGcpOworCQlnb3RvIG91dF9kcm9wX3NrY2lwaGVyOworCX0KKwloYXNoX2FsZyA9IF9fY3J5cHRvX3NoYXNoX2FsZyhfaGFzaF9hbGcpOworCisJLyogQ2hlY2sgdGhlIHNldCBvZiBhbGdvcml0aG1zICovCisJaWYgKCFlc3Npdl9zdXBwb3J0ZWRfYWxnb3JpdGhtcyhpY3R4LT5lc3Npdl9jaXBoZXJfbmFtZSwgaGFzaF9hbGcsCisJCQkJCWl2c2l6ZSkpIHsKKwkJcHJfd2FybigiVW5zdXBwb3J0ZWQgZXNzaXYgaW5zdGFudGlhdGlvbjogZXNzaXYoJXMsJXMpXG4iLAorCQkJYmxvY2tfYmFzZS0+Y3JhX25hbWUsIGhhc2hfYWxnLT5iYXNlLmNyYV9uYW1lKTsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBvdXRfZnJlZV9oYXNoOworCX0KKworCS8qIHJlY29yZCB0aGUgZHJpdmVyIG5hbWUgc28gd2UgY2FuIGluc3RhbnRpYXRlIHRoaXMgZXhhY3QgYWxnbyBsYXRlciAqLworCXN0cmxjcHkoaWN0eC0+c2hhc2hfZHJpdmVyX25hbWUsIGhhc2hfYWxnLT5iYXNlLmNyYV9kcml2ZXJfbmFtZSwKKwkJQ1JZUFRPX01BWF9BTEdfTkFNRSk7CisKKwkvKiBJbnN0YW5jZSBmaWVsZHMgKi8KKworCWVyciA9IC1FTkFNRVRPT0xPTkc7CisJaWYgKHNucHJpbnRmKGJhc2UtPmNyYV9uYW1lLCBDUllQVE9fTUFYX0FMR19OQU1FLAorCQkgICAgICJlc3NpdiglcywlcykiLCBibG9ja19iYXNlLT5jcmFfbmFtZSwKKwkJICAgICBoYXNoX2FsZy0+YmFzZS5jcmFfbmFtZSkgPj0gQ1JZUFRPX01BWF9BTEdfTkFNRSkKKwkJZ290byBvdXRfZnJlZV9oYXNoOworCWlmIChzbnByaW50ZihiYXNlLT5jcmFfZHJpdmVyX25hbWUsIENSWVBUT19NQVhfQUxHX05BTUUsCisJCSAgICAgImVzc2l2KCVzLCVzKSIsIGJsb2NrX2Jhc2UtPmNyYV9kcml2ZXJfbmFtZSwKKwkJICAgICBoYXNoX2FsZy0+YmFzZS5jcmFfZHJpdmVyX25hbWUpID49IENSWVBUT19NQVhfQUxHX05BTUUpCisJCWdvdG8gb3V0X2ZyZWVfaGFzaDsKKworCWJhc2UtPmNyYV9mbGFncwkJPSBibG9ja19iYXNlLT5jcmFfZmxhZ3MgJiBDUllQVE9fQUxHX0FTWU5DOworCWJhc2UtPmNyYV9ibG9ja3NpemUJPSBibG9ja19iYXNlLT5jcmFfYmxvY2tzaXplOworCWJhc2UtPmNyYV9jdHhzaXplCT0gc2l6ZW9mKHN0cnVjdCBlc3Npdl90Zm1fY3R4KTsKKwliYXNlLT5jcmFfYWxpZ25tYXNrCT0gYmxvY2tfYmFzZS0+Y3JhX2FsaWdubWFzazsKKwliYXNlLT5jcmFfcHJpb3JpdHkJPSBibG9ja19iYXNlLT5jcmFfcHJpb3JpdHk7CisKKwlpZiAodHlwZSA9PSBDUllQVE9fQUxHX1RZUEVfQkxLQ0lQSEVSKSB7CisJCXNrY2lwaGVyX2luc3QtPmFsZy5zZXRrZXkJPSBlc3Npdl9za2NpcGhlcl9zZXRrZXk7CisJCXNrY2lwaGVyX2luc3QtPmFsZy5lbmNyeXB0CT0gZXNzaXZfc2tjaXBoZXJfZW5jcnlwdDsKKwkJc2tjaXBoZXJfaW5zdC0+YWxnLmRlY3J5cHQJPSBlc3Npdl9za2NpcGhlcl9kZWNyeXB0OworCQlza2NpcGhlcl9pbnN0LT5hbGcuaW5pdAkJPSBlc3Npdl9za2NpcGhlcl9pbml0X3RmbTsKKwkJc2tjaXBoZXJfaW5zdC0+YWxnLmV4aXQJCT0gZXNzaXZfc2tjaXBoZXJfZXhpdF90Zm07CisKKwkJc2tjaXBoZXJfaW5zdC0+YWxnLm1pbl9rZXlzaXplCT0gY3J5cHRvX3NrY2lwaGVyX2FsZ19taW5fa2V5c2l6ZShza2NpcGhlcl9hbGcpOworCQlza2NpcGhlcl9pbnN0LT5hbGcubWF4X2tleXNpemUJPSBjcnlwdG9fc2tjaXBoZXJfYWxnX21heF9rZXlzaXplKHNrY2lwaGVyX2FsZyk7CisJCXNrY2lwaGVyX2luc3QtPmFsZy5pdnNpemUJPSBpdnNpemU7CisJCXNrY2lwaGVyX2luc3QtPmFsZy5jaHVua3NpemUJPSBjcnlwdG9fc2tjaXBoZXJfYWxnX2NodW5rc2l6ZShza2NpcGhlcl9hbGcpOworCQlza2NpcGhlcl9pbnN0LT5hbGcud2Fsa3NpemUJPSBjcnlwdG9fc2tjaXBoZXJfYWxnX3dhbGtzaXplKHNrY2lwaGVyX2FsZyk7CisKKwkJc2tjaXBoZXJfaW5zdC0+ZnJlZQkJPSBlc3Npdl9za2NpcGhlcl9mcmVlX2luc3RhbmNlOworCisJCWVyciA9IHNrY2lwaGVyX3JlZ2lzdGVyX2luc3RhbmNlKHRtcGwsIHNrY2lwaGVyX2luc3QpOworCX0gZWxzZSB7CisJCWFlYWRfaW5zdC0+YWxnLnNldGtleQkJPSBlc3Npdl9hZWFkX3NldGtleTsKKwkJYWVhZF9pbnN0LT5hbGcuc2V0YXV0aHNpemUJPSBlc3Npdl9hZWFkX3NldGF1dGhzaXplOworCQlhZWFkX2luc3QtPmFsZy5lbmNyeXB0CQk9IGVzc2l2X2FlYWRfZW5jcnlwdDsKKwkJYWVhZF9pbnN0LT5hbGcuZGVjcnlwdAkJPSBlc3Npdl9hZWFkX2RlY3J5cHQ7CisJCWFlYWRfaW5zdC0+YWxnLmluaXQJCT0gZXNzaXZfYWVhZF9pbml0X3RmbTsKKwkJYWVhZF9pbnN0LT5hbGcuZXhpdAkJPSBlc3Npdl9hZWFkX2V4aXRfdGZtOworCisJCWFlYWRfaW5zdC0+YWxnLml2c2l6ZQkJPSBpdnNpemU7CisJCWFlYWRfaW5zdC0+YWxnLm1heGF1dGhzaXplCT0gY3J5cHRvX2FlYWRfYWxnX21heGF1dGhzaXplKGFlYWRfYWxnKTsKKwkJYWVhZF9pbnN0LT5hbGcuY2h1bmtzaXplCT0gY3J5cHRvX2FlYWRfYWxnX2NodW5rc2l6ZShhZWFkX2FsZyk7CisKKwkJYWVhZF9pbnN0LT5mcmVlCQkJPSBlc3Npdl9hZWFkX2ZyZWVfaW5zdGFuY2U7CisKKwkJZXJyID0gYWVhZF9yZWdpc3Rlcl9pbnN0YW5jZSh0bXBsLCBhZWFkX2luc3QpOworCX0KKworCWlmIChlcnIpCisJCWdvdG8gb3V0X2ZyZWVfaGFzaDsKKworCWNyeXB0b19tb2RfcHV0KF9oYXNoX2FsZyk7CisJcmV0dXJuIDA7CisKK291dF9mcmVlX2hhc2g6CisJY3J5cHRvX21vZF9wdXQoX2hhc2hfYWxnKTsKK291dF9kcm9wX3NrY2lwaGVyOgorCWlmICh0eXBlID09IENSWVBUT19BTEdfVFlQRV9CTEtDSVBIRVIpCisJCWNyeXB0b19kcm9wX3NrY2lwaGVyKCZpY3R4LT51LnNrY2lwaGVyX3NwYXduKTsKKwllbHNlCisJCWNyeXB0b19kcm9wX2FlYWQoJmljdHgtPnUuYWVhZF9zcGF3bik7CitvdXRfZnJlZV9pbnN0OgorCWtmcmVlKHNrY2lwaGVyX2luc3QpOworCWtmcmVlKGFlYWRfaW5zdCk7CisJcmV0dXJuIGVycjsKK30KKworLyogZXNzaXYoY2lwaGVyX25hbWUsIHNoYXNoX25hbWUpICovCitzdGF0aWMgc3RydWN0IGNyeXB0b190ZW1wbGF0ZSBlc3Npdl90bXBsID0geworCS5uYW1lCT0gImVzc2l2IiwKKwkuY3JlYXRlCT0gZXNzaXZfY3JlYXRlLAorCS5tb2R1bGUJPSBUSElTX01PRFVMRSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGVzc2l2X21vZHVsZV9pbml0KHZvaWQpCit7CisJcmV0dXJuIGNyeXB0b19yZWdpc3Rlcl90ZW1wbGF0ZSgmZXNzaXZfdG1wbCk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBlc3Npdl9tb2R1bGVfZXhpdCh2b2lkKQoreworCWNyeXB0b191bnJlZ2lzdGVyX3RlbXBsYXRlKCZlc3Npdl90bXBsKTsKK30KKworc3Vic3lzX2luaXRjYWxsKGVzc2l2X21vZHVsZV9pbml0KTsKK21vZHVsZV9leGl0KGVzc2l2X21vZHVsZV9leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJFU1NJViBza2NpcGhlci9hZWFkIHdyYXBwZXIgZm9yIGJsb2NrIGVuY3J5cHRpb24iKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKK01PRFVMRV9BTElBU19DUllQVE8oImVzc2l2Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvYWNwaV9hcGQuYyBiL2RyaXZlcnMvYWNwaS9hY3BpX2FwZC5jCmluZGV4IDdjZDBjOWEuLjcxNTExYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9hY3BpX2FwZC5jCisrKyBiL2RyaXZlcnMvYWNwaS9hY3BpX2FwZC5jCkBAIC0xNjAsMTEgKzE2MCwxNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFwZF9kZXZpY2VfZGVzYyBoaXAwOF9pMmNfZGVzYyA9IHsKIAkuc2V0dXAgPSBhY3BpX2FwZF9zZXR1cCwKIAkuZml4ZWRfY2xrX3JhdGUgPSAyNTAwMDAwMDAsCiB9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFwZF9kZXZpY2VfZGVzYyB0aHVuZGVyeDJfaTJjX2Rlc2MgPSB7CiAJLnNldHVwID0gYWNwaV9hcGRfc2V0dXAsCiAJLmZpeGVkX2Nsa19yYXRlID0gMTI1MDAwMDAwLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBhcGRfZGV2aWNlX2Rlc2MgbnhwX2kyY19kZXNjID0geworCS5zZXR1cCA9IGFjcGlfYXBkX3NldHVwLAorCS5maXhlZF9jbGtfcmF0ZSA9IDM1MDAwMDAwMCwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXBkX2RldmljZV9kZXNjIGhpcDA4X3NwaV9kZXNjID0gewogCS5zZXR1cCA9IGFjcGlfYXBkX3NldHVwLAogCS5maXhlZF9jbGtfcmF0ZSA9IDI1MDAwMDAwMCwKQEAgLTIzOCw2ICsyNDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkIGFjcGlfYXBkX2RldmljZV9pZHNbXSA9IHsKIAl7ICJISVNJMDJBMSIsIEFQRF9BRERSKGhpcDA3X2kyY19kZXNjKSB9LAogCXsgIkhJU0kwMkEyIiwgQVBEX0FERFIoaGlwMDhfaTJjX2Rlc2MpIH0sCiAJeyAiSElTSTAxNzMiLCBBUERfQUREUihoaXAwOF9zcGlfZGVzYykgfSwKKwl7ICJOWFAwMDAxIiwgQVBEX0FERFIobnhwX2kyY19kZXNjKSB9LAogI2VuZGlmCiAJeyB9CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2N1c3RvbV9tZXRob2QuYyBiL2RyaXZlcnMvYWNwaS9jdXN0b21fbWV0aG9kLmMKaW5kZXggZmQ2NmE3My4uYjA5N2VmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL2N1c3RvbV9tZXRob2QuYworKysgYi9kcml2ZXJzL2FjcGkvY3VzdG9tX21ldGhvZC5jCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvYWNwaS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogCkBAIC0yOSw2ICszMCwxMSBAQCBzdGF0aWMgc3NpemVfdCBjbV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKiB1c2VyX2J1ZiwKIAogCXN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciB0YWJsZTsKIAlhY3BpX3N0YXR1cyBzdGF0dXM7CisJaW50IHJldDsKKworCXJldCA9IHNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX0FDUElfVEFCTEVTKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJaWYgKCEoKnBwb3MpKSB7CiAJCS8qIHBhcnNlIHRoZSB0YWJsZSBoZWFkZXIgdG8gZ2V0IHRoZSB0YWJsZSBsZW5ndGggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9uZml0L2ludGVsLmMgYi9kcml2ZXJzL2FjcGkvbmZpdC9pbnRlbC5jCmluZGV4IGNkZGQwZmMuLjExMTNiNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9uZml0L2ludGVsLmMKKysrIGIvZHJpdmVycy9hY3BpL25maXQvaW50ZWwuYwpAQCAtNywxMCArNywxMSBAQAogI2luY2x1ZGUgImludGVsLmgiCiAjaW5jbHVkZSAibmZpdC5oIgogCi1zdGF0aWMgZW51bSBudmRpbW1fc2VjdXJpdHlfc3RhdGUgaW50ZWxfc2VjdXJpdHlfc3RhdGUoc3RydWN0IG52ZGltbSAqbnZkaW1tLAorc3RhdGljIHVuc2lnbmVkIGxvbmcgaW50ZWxfc2VjdXJpdHlfZmxhZ3Moc3RydWN0IG52ZGltbSAqbnZkaW1tLAogCQllbnVtIG52ZGltbV9wYXNzcGhyYXNlX3R5cGUgcHR5cGUpCiB7CiAJc3RydWN0IG5maXRfbWVtICpuZml0X21lbSA9IG52ZGltbV9wcm92aWRlcl9kYXRhKG52ZGltbSk7CisJdW5zaWduZWQgbG9uZyBzZWN1cml0eV9mbGFncyA9IDA7CiAJc3RydWN0IHsKIAkJc3RydWN0IG5kX2NtZF9wa2cgcGtnOwogCQlzdHJ1Y3QgbmRfaW50ZWxfZ2V0X3NlY3VyaXR5X3N0YXRlIGNtZDsKQEAgLTI3LDcgKzI4LDcgQEAgc3RhdGljIGVudW0gbnZkaW1tX3NlY3VyaXR5X3N0YXRlIGludGVsX3NlY3VyaXR5X3N0YXRlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwKIAlpbnQgcmM7CiAKIAlpZiAoIXRlc3RfYml0KE5WRElNTV9JTlRFTF9HRVRfU0VDVVJJVFlfU1RBVEUsICZuZml0X21lbS0+ZHNtX21hc2spKQotCQlyZXR1cm4gLUVOWElPOworCQlyZXR1cm4gMDsKIAogCS8qCiAJICogU2hvcnQgY2lyY3VpdCB0aGUgc3RhdGUgcmV0cmlldmFsIHdoaWxlIHdlIGFyZSBkb2luZyBvdmVyd3JpdGUuCkBAIC0zNSwzOCArMzYsNDIgQEAgc3RhdGljIGVudW0gbnZkaW1tX3NlY3VyaXR5X3N0YXRlIGludGVsX3NlY3VyaXR5X3N0YXRlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwKIAkgKiB1bnRpbCB0aGUgb3ZlcndyaXRlIERTTSBjb21wbGV0ZXMuCiAJICovCiAJaWYgKG52ZGltbV9pbl9vdmVyd3JpdGUobnZkaW1tKSAmJiBwdHlwZSA9PSBOVkRJTU1fVVNFUikKLQkJcmV0dXJuIE5WRElNTV9TRUNVUklUWV9PVkVSV1JJVEU7CisJCXJldHVybiBCSVQoTlZESU1NX1NFQ1VSSVRZX09WRVJXUklURSk7CiAKIAlyYyA9IG52ZGltbV9jdGwobnZkaW1tLCBORF9DTURfQ0FMTCwgJm5kX2NtZCwgc2l6ZW9mKG5kX2NtZCksIE5VTEwpOwotCWlmIChyYyA8IDApCi0JCXJldHVybiByYzsKLQlpZiAobmRfY21kLmNtZC5zdGF0dXMpCi0JCXJldHVybiAtRUlPOworCWlmIChyYyA8IDAgfHwgbmRfY21kLmNtZC5zdGF0dXMpIHsKKwkJcHJfZXJyKCIlczogc2VjdXJpdHkgc3RhdGUgcmV0cmlldmFsIGZhaWxlZCAoJWQ6JSN4KVxuIiwKKwkJCQludmRpbW1fbmFtZShudmRpbW0pLCByYywgbmRfY21kLmNtZC5zdGF0dXMpOworCQlyZXR1cm4gMDsKKwl9CiAKIAkvKiBjaGVjayBhbmQgc2VlIGlmIHNlY3VyaXR5IGlzIGVuYWJsZWQgYW5kIGxvY2tlZCAqLwogCWlmIChwdHlwZSA9PSBOVkRJTU1fTUFTVEVSKSB7CiAJCWlmIChuZF9jbWQuY21kLmV4dGVuZGVkX3N0YXRlICYgTkRfSU5URUxfU0VDX0VTVEFURV9FTkFCTEVEKQotCQkJcmV0dXJuIE5WRElNTV9TRUNVUklUWV9VTkxPQ0tFRDsKLQkJZWxzZSBpZiAobmRfY21kLmNtZC5leHRlbmRlZF9zdGF0ZSAmCi0JCQkJTkRfSU5URUxfU0VDX0VTVEFURV9QTElNSVQpCi0JCQlyZXR1cm4gTlZESU1NX1NFQ1VSSVRZX0ZST1pFTjsKLQl9IGVsc2UgewotCQlpZiAobmRfY21kLmNtZC5zdGF0ZSAmIE5EX0lOVEVMX1NFQ19TVEFURV9VTlNVUFBPUlRFRCkKLQkJCXJldHVybiAtRU5YSU87Ci0JCWVsc2UgaWYgKG5kX2NtZC5jbWQuc3RhdGUgJiBORF9JTlRFTF9TRUNfU1RBVEVfRU5BQkxFRCkgewotCQkJaWYgKG5kX2NtZC5jbWQuc3RhdGUgJiBORF9JTlRFTF9TRUNfU1RBVEVfTE9DS0VEKQotCQkJCXJldHVybiBOVkRJTU1fU0VDVVJJVFlfTE9DS0VEOwotCQkJZWxzZSBpZiAobmRfY21kLmNtZC5zdGF0ZSAmIE5EX0lOVEVMX1NFQ19TVEFURV9GUk9aRU4KLQkJCQkJfHwgbmRfY21kLmNtZC5zdGF0ZSAmCi0JCQkJCU5EX0lOVEVMX1NFQ19TVEFURV9QTElNSVQpCi0JCQkJcmV0dXJuIE5WRElNTV9TRUNVUklUWV9GUk9aRU47Ci0JCQllbHNlCi0JCQkJcmV0dXJuIE5WRElNTV9TRUNVUklUWV9VTkxPQ0tFRDsKLQkJfQorCQkJc2V0X2JpdChOVkRJTU1fU0VDVVJJVFlfVU5MT0NLRUQsICZzZWN1cml0eV9mbGFncyk7CisJCWVsc2UKKwkJCXNldF9iaXQoTlZESU1NX1NFQ1VSSVRZX0RJU0FCTEVELCAmc2VjdXJpdHlfZmxhZ3MpOworCQlpZiAobmRfY21kLmNtZC5leHRlbmRlZF9zdGF0ZSAmIE5EX0lOVEVMX1NFQ19FU1RBVEVfUExJTUlUKQorCQkJc2V0X2JpdChOVkRJTU1fU0VDVVJJVFlfRlJPWkVOLCAmc2VjdXJpdHlfZmxhZ3MpOworCQlyZXR1cm4gc2VjdXJpdHlfZmxhZ3M7CiAJfQogCi0JLyogdGhpcyBzaG91bGQgY292ZXIgbWFzdGVyIHNlY3VyaXR5IGRpc2FibGVkIGFzIHdlbGwgKi8KLQlyZXR1cm4gTlZESU1NX1NFQ1VSSVRZX0RJU0FCTEVEOworCWlmIChuZF9jbWQuY21kLnN0YXRlICYgTkRfSU5URUxfU0VDX1NUQVRFX1VOU1VQUE9SVEVEKQorCQlyZXR1cm4gMDsKKworCWlmIChuZF9jbWQuY21kLnN0YXRlICYgTkRfSU5URUxfU0VDX1NUQVRFX0VOQUJMRUQpIHsKKwkJaWYgKG5kX2NtZC5jbWQuc3RhdGUgJiBORF9JTlRFTF9TRUNfU1RBVEVfRlJPWkVOIHx8CisJCSAgICBuZF9jbWQuY21kLnN0YXRlICYgTkRfSU5URUxfU0VDX1NUQVRFX1BMSU1JVCkKKwkJCXNldF9iaXQoTlZESU1NX1NFQ1VSSVRZX0ZST1pFTiwgJnNlY3VyaXR5X2ZsYWdzKTsKKworCQlpZiAobmRfY21kLmNtZC5zdGF0ZSAmIE5EX0lOVEVMX1NFQ19TVEFURV9MT0NLRUQpCisJCQlzZXRfYml0KE5WRElNTV9TRUNVUklUWV9MT0NLRUQsICZzZWN1cml0eV9mbGFncyk7CisJCWVsc2UKKwkJCXNldF9iaXQoTlZESU1NX1NFQ1VSSVRZX1VOTE9DS0VELCAmc2VjdXJpdHlfZmxhZ3MpOworCX0gZWxzZQorCQlzZXRfYml0KE5WRElNTV9TRUNVUklUWV9ESVNBQkxFRCwgJnNlY3VyaXR5X2ZsYWdzKTsKKworCXJldHVybiBzZWN1cml0eV9mbGFnczsKIH0KIAogc3RhdGljIGludCBpbnRlbF9zZWN1cml0eV9mcmVlemUoc3RydWN0IG52ZGltbSAqbnZkaW1tKQpAQCAtMzcxLDcgKzM3Niw3IEBAIHN0YXRpYyB2b2lkIG52ZGltbV9pbnZhbGlkYXRlX2NhY2hlKHZvaWQpCiAjZW5kaWYKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBudmRpbW1fc2VjdXJpdHlfb3BzIF9faW50ZWxfc2VjdXJpdHlfb3BzID0gewotCS5zdGF0ZSA9IGludGVsX3NlY3VyaXR5X3N0YXRlLAorCS5nZXRfZmxhZ3MgPSBpbnRlbF9zZWN1cml0eV9mbGFncywKIAkuZnJlZXplID0gaW50ZWxfc2VjdXJpdHlfZnJlZXplLAogCS5jaGFuZ2Vfa2V5ID0gaW50ZWxfc2VjdXJpdHlfY2hhbmdlX2tleSwKIAkuZGlzYWJsZSA9IGludGVsX3NlY3VyaXR5X2Rpc2FibGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvb3NsLmMgYi9kcml2ZXJzL2FjcGkvb3NsLmMKaW5kZXggMmY5ZDBkMi4uYTJlODQ0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL29zbC5jCisrKyBiL2RyaXZlcnMvYWNwaS9vc2wuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAjaW5jbHVkZSA8bGludXgvc2VtYXBob3JlLmg+CisjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KIAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KQEAgLTE4Miw4ICsxODMsMTkgQEAgYWNwaV9waHlzaWNhbF9hZGRyZXNzIF9faW5pdCBhY3BpX29zX2dldF9yb290X3BvaW50ZXIodm9pZCkKIAlhY3BpX3BoeXNpY2FsX2FkZHJlc3MgcGE7CiAKICNpZmRlZiBDT05GSUdfS0VYRUMKLQlpZiAoYWNwaV9yc2RwKQorCS8qCisJICogV2UgbWF5IGhhdmUgYmVlbiBwcm92aWRlZCB3aXRoIGFuIFJTRFAgb24gdGhlIGNvbW1hbmQgbGluZSwKKwkgKiBidXQgaWYgYSBtYWxpY2lvdXMgdXNlciBoYXMgZG9uZSBzbyB0aGV5IG1heSBiZSBwb2ludGluZyB1cworCSAqIGF0IG1vZGlmaWVkIEFDUEkgdGFibGVzIHRoYXQgY291bGQgYWx0ZXIga2VybmVsIGJlaGF2aW91ciAtCisJICogc28sIHdlIGNoZWNrIHRoZSBsb2NrZG93biBzdGF0dXMgYmVmb3JlIG1ha2luZyB1c2Ugb2YKKwkgKiBpdC4gSWYgd2UgdHJ1c3QgaXQgdGhlbiBhbHNvIHN0YXNoIGl0IGluIGFuIGFyY2hpdGVjdHVyZQorCSAqIHNwZWNpZmljIGxvY2F0aW9uIChpZiBhcHByb3ByaWF0ZSkgc28gaXQgY2FuIGJlIGNhcnJpZWQKKwkgKiBvdmVyIGZ1cnRoZXIga2V4ZWMoKXMuCisJICovCisJaWYgKGFjcGlfcnNkcCAmJiAhc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fQUNQSV9UQUJMRVMpKSB7CisJCWFjcGlfYXJjaF9zZXRfcm9vdF9wb2ludGVyKGFjcGlfcnNkcCk7CiAJCXJldHVybiBhY3BpX3JzZHA7CisJfQogI2VuZGlmCiAJcGEgPSBhY3BpX2FyY2hfZ2V0X3Jvb3RfcG9pbnRlcigpOwogCWlmIChwYSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9wY2lfcm9vdC5jIGIvZHJpdmVycy9hY3BpL3BjaV9yb290LmMKaW5kZXggMzE0YTE4Ny4uZDFlNjY2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL3BjaV9yb290LmMKKysrIGIvZHJpdmVycy9hY3BpL3BjaV9yb290LmMKQEAgLTE1LDcgKzE1LDYgQEAKICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLWFjcGkuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYXIuaD4KICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3RhYmxlcy5jIGIvZHJpdmVycy9hY3BpL3RhYmxlcy5jCmluZGV4IGIzMjMyNzcuLjE4MGFjNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS90YWJsZXMuYworKysgYi9kcml2ZXJzL2FjcGkvdGFibGVzLmMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tZW1ibG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2Vhcmx5Y3Bpby5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXRyZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKIAogI2lmZGVmIENPTkZJR19BQ1BJX0NVU1RPTV9EU0RUCkBAIC01NzgsNiArNTc5LDExIEBAIHZvaWQgX19pbml0IGFjcGlfdGFibGVfdXBncmFkZSh2b2lkKQogCWlmICh0YWJsZV9uciA9PSAwKQogCQlyZXR1cm47CiAKKwlpZiAoc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fQUNQSV9UQUJMRVMpKSB7CisJCXByX25vdGljZSgia2VybmVsIGlzIGxvY2tlZCBkb3duLCBpZ25vcmluZyB0YWJsZSBvdmVycmlkZVxuIik7CisJCXJldHVybjsKKwl9CisKIAlhY3BpX3RhYmxlc19hZGRyID0KIAkJbWVtYmxvY2tfZmluZF9pbl9yYW5nZSgwLCBBQ1BJX1RBQkxFX1VQR1JBREVfTUFYX1BIWVMsCiAJCQkJICAgICAgIGFsbF90YWJsZXNfc2l6ZSwgUEFHRV9TSVpFKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYW1iYS9idXMuYyBiL2RyaXZlcnMvYW1iYS9idXMuYwppbmRleCAxMDBlNzk4Li5mMzlmMDc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FtYmEvYnVzLmMKKysrIGIvZHJpdmVycy9hbWJhL2J1cy5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvbGltaXRzLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrL2Nsay1jb25mLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KIAogI2luY2x1ZGUgPGFzbS9pcnEuaD4KIApAQCAtNDAxLDYgKzQwMiwxOSBAQCBzdGF0aWMgaW50IGFtYmFfZGV2aWNlX3RyeV9hZGQoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYsIHN0cnVjdCByZXNvdXJjZSAqcGFyZW50KQogCXJldCA9IGFtYmFfZ2V0X2VuYWJsZV9wY2xrKGRldik7CiAJaWYgKHJldCA9PSAwKSB7CiAJCXUzMiBwaWQsIGNpZDsKKwkJc3RydWN0IHJlc2V0X2NvbnRyb2wgKnJzdGM7CisKKwkJLyoKKwkJICogRmluZCByZXNldCBjb250cm9sKHMpIG9mIHRoZSBhbWJhIGJ1cyBhbmQgZGUtYXNzZXJ0IHRoZW0uCisJCSAqLworCQlyc3RjID0gb2ZfcmVzZXRfY29udHJvbF9hcnJheV9nZXRfb3B0aW9uYWxfc2hhcmVkKGRldi0+ZGV2Lm9mX25vZGUpOworCQlpZiAoSVNfRVJSKHJzdGMpKSB7CisJCQlpZiAoUFRSX0VSUihyc3RjKSAhPSAtRVBST0JFX0RFRkVSKQorCQkJCWRldl9lcnIoJmRldi0+ZGV2LCAiQ2FuJ3QgZ2V0IGFtYmEgcmVzZXQhXG4iKTsKKwkJCXJldHVybiBQVFJfRVJSKHJzdGMpOworCQl9CisJCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocnN0Yyk7CisJCXJlc2V0X2NvbnRyb2xfcHV0KHJzdGMpOwogCiAJCS8qCiAJCSAqIFJlYWQgcGlkIGFuZCBjaWQgYmFzZWQgb24gc2l6ZSBvZiByZXNvdXJjZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYWhjaV9wbGF0Zm9ybS5jIGIvZHJpdmVycy9hdGEvbGliYWhjaV9wbGF0Zm9ybS5jCmluZGV4IDllOTU4M2EuLmU3NDI3ODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2xpYmFoY2lfcGxhdGZvcm0uYworKysgYi9kcml2ZXJzL2F0YS9saWJhaGNpX3BsYXRmb3JtLmMKQEAgLTQ5Nyw2ICs0OTcsNyBAQCBzdHJ1Y3QgYWhjaV9ob3N0X3ByaXYgKmFoY2lfcGxhdGZvcm1fZ2V0X3Jlc291cmNlcyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCiAJCQlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIoY2hpbGQsICJyZWciLCAmcG9ydCkpIHsKIAkJCQlyYyA9IC1FSU5WQUw7CisJCQkJb2Zfbm9kZV9wdXQoY2hpbGQpOwogCQkJCWdvdG8gZXJyX291dDsKIAkJCX0KIApAQCAtNTE0LDE0ICs1MTUsMTggQEAgc3RydWN0IGFoY2lfaG9zdF9wcml2ICphaGNpX3BsYXRmb3JtX2dldF9yZXNvdXJjZXMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCWlmIChwb3J0X2RldikgewogCQkJCXJjID0gYWhjaV9wbGF0Zm9ybV9nZXRfcmVndWxhdG9yKGhwcml2LCBwb3J0LAogCQkJCQkJCQkmcG9ydF9kZXYtPmRldik7Ci0JCQkJaWYgKHJjID09IC1FUFJPQkVfREVGRVIpCisJCQkJaWYgKHJjID09IC1FUFJPQkVfREVGRVIpIHsKKwkJCQkJb2Zfbm9kZV9wdXQoY2hpbGQpOwogCQkJCQlnb3RvIGVycl9vdXQ7CisJCQkJfQogCQkJfQogI2VuZGlmCiAKIAkJCXJjID0gYWhjaV9wbGF0Zm9ybV9nZXRfcGh5KGhwcml2LCBwb3J0LCBkZXYsIGNoaWxkKTsKLQkJCWlmIChyYykKKwkJCWlmIChyYykgeworCQkJCW9mX25vZGVfcHV0KGNoaWxkKTsKIAkJCQlnb3RvIGVycl9vdXQ7CisJCQl9CiAKIAkJCWVuYWJsZWRfcG9ydHMrKzsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL2RldnRtcGZzLmMgYi9kcml2ZXJzL2Jhc2UvZGV2dG1wZnMuYwppbmRleCBiYTVjODA5MC4uMzBkMDUyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL2RldnRtcGZzLmMKKysrIGIvZHJpdmVycy9iYXNlL2RldnRtcGZzLmMKQEAgLTU2LDIwICs1NiwzMiBAQCBzdGF0aWMgaW50IF9faW5pdCBtb3VudF9wYXJhbShjaGFyICpzdHIpCiB9CiBfX3NldHVwKCJkZXZ0bXBmcy5tb3VudD0iLCBtb3VudF9wYXJhbSk7CiAKLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpkZXZfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsIGludCBmbGFncywKK3N0YXRpYyBzdHJ1Y3QgdmZzbW91bnQgKm1udDsKKworc3RhdGljIHN0cnVjdCBkZW50cnkgKnB1YmxpY19kZXZfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsIGludCBmbGFncywKIAkJICAgICAgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpCiB7Ci0jaWZkZWYgQ09ORklHX1RNUEZTCi0JcmV0dXJuIG1vdW50X3NpbmdsZShmc190eXBlLCBmbGFncywgZGF0YSwgc2htZW1fZmlsbF9zdXBlcik7Ci0jZWxzZQotCXJldHVybiBtb3VudF9zaW5nbGUoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIHJhbWZzX2ZpbGxfc3VwZXIpOwotI2VuZGlmCisJc3RydWN0IHN1cGVyX2Jsb2NrICpzID0gbW50LT5tbnRfc2I7CisJYXRvbWljX2luYygmcy0+c19hY3RpdmUpOworCWRvd25fd3JpdGUoJnMtPnNfdW1vdW50KTsKKwlyZXR1cm4gZGdldChzLT5zX3Jvb3QpOwogfQogCitzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgaW50ZXJuYWxfZnNfdHlwZSA9IHsKKwkubmFtZSA9ICJkZXZ0bXBmcyIsCisjaWZkZWYgQ09ORklHX1RNUEZTCisJLmluaXRfZnNfY29udGV4dCA9IHNobWVtX2luaXRfZnNfY29udGV4dCwKKwkucGFyYW1ldGVycwk9ICZzaG1lbV9mc19wYXJhbWV0ZXJzLAorI2Vsc2UKKwkuaW5pdF9mc19jb250ZXh0ID0gcmFtZnNfaW5pdF9mc19jb250ZXh0LAorCS5wYXJhbWV0ZXJzCT0gJnJhbWZzX2ZzX3BhcmFtZXRlcnMsCisjZW5kaWYKKwkua2lsbF9zYiA9IGtpbGxfbGl0dGVyX3N1cGVyLAorfTsKKwogc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIGRldl9mc190eXBlID0gewogCS5uYW1lID0gImRldnRtcGZzIiwKLQkubW91bnQgPSBkZXZfbW91bnQsCi0JLmtpbGxfc2IgPSBraWxsX2xpdHRlcl9zdXBlciwKKwkubW91bnQgPSBwdWJsaWNfZGV2X21vdW50LAogfTsKIAogI2lmZGVmIENPTkZJR19CTE9DSwpAQCAtMzc4LDEyICszOTAsMTEgQEAgc3RhdGljIGludCBoYW5kbGUoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLCBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAogCiBzdGF0aWMgaW50IGRldnRtcGZzZCh2b2lkICpwKQogewotCWNoYXIgb3B0aW9uc1tdID0gIm1vZGU9MDc1NSI7CiAJaW50ICplcnIgPSBwOwogCSplcnIgPSBrc3lzX3Vuc2hhcmUoQ0xPTkVfTkVXTlMpOwogCWlmICgqZXJyKQogCQlnb3RvIG91dDsKLQkqZXJyID0ga3N5c19tb3VudCgiZGV2dG1wZnMiLCAiLyIsICJkZXZ0bXBmcyIsIE1TX1NJTEVOVCwgb3B0aW9ucyk7CisJKmVyciA9IGtzeXNfbW91bnQoImRldnRtcGZzIiwgIi8iLCAiZGV2dG1wZnMiLCBNU19TSUxFTlQsIE5VTEwpOwogCWlmICgqZXJyKQogCQlnb3RvIG91dDsKIAlrc3lzX2NoZGlyKCIvLi4iKTsgLyogd2lsbCB0cmF2ZXJzZSBpbnRvIG92ZXJtb3VudGVkIHJvb3QgKi8KQEAgLTQyMCw3ICs0MzEsMTYgQEAgc3RhdGljIGludCBkZXZ0bXBmc2Qodm9pZCAqcCkKICAqLwogaW50IF9faW5pdCBkZXZ0bXBmc19pbml0KHZvaWQpCiB7Ci0JaW50IGVyciA9IHJlZ2lzdGVyX2ZpbGVzeXN0ZW0oJmRldl9mc190eXBlKTsKKwljaGFyIG9wdHNbXSA9ICJtb2RlPTA3NTUiOworCWludCBlcnI7CisKKwltbnQgPSB2ZnNfa2Vybl9tb3VudCgmaW50ZXJuYWxfZnNfdHlwZSwgMCwgImRldnRtcGZzIiwgb3B0cyk7CisJaWYgKElTX0VSUihtbnQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiZGV2dG1wZnM6IHVuYWJsZSB0byBjcmVhdGUgZGV2dG1wZnMgJWxkXG4iLAorCQkJCVBUUl9FUlIobW50KSk7CisJCXJldHVybiBQVFJfRVJSKG1udCk7CisJfQorCWVyciA9IHJlZ2lzdGVyX2ZpbGVzeXN0ZW0oJmRldl9mc190eXBlKTsKIAlpZiAoZXJyKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiZGV2dG1wZnM6IHVuYWJsZSB0byByZWdpc3RlciBkZXZ0bXBmcyAiCiAJCSAgICAgICAidHlwZSAlaVxuIiwgZXJyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9tZW1vcnkuYyBiL2RyaXZlcnMvYmFzZS9tZW1vcnkuYwppbmRleCAyMGMzOWQxLi42YmVhNGYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvbWVtb3J5LmMKKysrIGIvZHJpdmVycy9iYXNlL21lbW9yeS5jCkBAIC0xMDAsMjYgKzEwMCw5IEBAIHVuc2lnbmVkIGxvbmcgX193ZWFrIG1lbW9yeV9ibG9ja19zaXplX2J5dGVzKHZvaWQpCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChtZW1vcnlfYmxvY2tfc2l6ZV9ieXRlcyk7CiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9tZW1vcnlfYmxvY2tfc2l6ZSh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgYmxvY2tfc3o7Ci0KLQlibG9ja19zeiA9IG1lbW9yeV9ibG9ja19zaXplX2J5dGVzKCk7Ci0KLQkvKiBWYWxpZGF0ZSBibGtfc3ogaXMgYSBwb3dlciBvZiAyIGFuZCBub3QgbGVzcyB0aGFuIHNlY3Rpb24gc2l6ZSAqLwotCWlmICgoYmxvY2tfc3ogJiAoYmxvY2tfc3ogLSAxKSkgfHwgKGJsb2NrX3N6IDwgTUlOX01FTU9SWV9CTE9DS19TSVpFKSkgewotCQlXQVJOX09OKDEpOwotCQlibG9ja19zeiA9IE1JTl9NRU1PUllfQkxPQ0tfU0laRTsKLQl9Ci0KLQlyZXR1cm4gYmxvY2tfc3o7Ci19Ci0KIC8qCi0gKiB1c2UgdGhpcyBhcyB0aGUgcGh5c2ljYWwgc2VjdGlvbiBpbmRleCB0aGF0IHRoaXMgbWVtc2VjdGlvbgotICogdXNlcy4KKyAqIFNob3cgdGhlIGZpcnN0IHBoeXNpY2FsIHNlY3Rpb24gaW5kZXggKG51bWJlcikgb2YgdGhpcyBtZW1vcnkgYmxvY2suCiAgKi8KLQogc3RhdGljIHNzaXplX3QgcGh5c19pbmRleF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewpAQCAtMTMxLDcgKzExNCwxMCBAQCBzdGF0aWMgc3NpemVfdCBwaHlzX2luZGV4X3Nob3coc3RydWN0IGRldmljZSAqZGV2LAogfQogCiAvKgotICogU2hvdyB3aGV0aGVyIHRoZSBzZWN0aW9uIG9mIG1lbW9yeSBpcyBsaWtlbHkgdG8gYmUgaG90LXJlbW92YWJsZQorICogU2hvdyB3aGV0aGVyIHRoZSBtZW1vcnkgYmxvY2sgaXMgbGlrZWx5IHRvIGJlIG9mZmxpbmVhYmxlIChvciBpcyBhbHJlYWR5CisgKiBvZmZsaW5lKS4gT25jZSBvZmZsaW5lLCB0aGUgbWVtb3J5IGJsb2NrIGNvdWxkIGJlIHJlbW92ZWQuIFRoZSByZXR1cm4KKyAqIHZhbHVlIGRvZXMsIGhvd2V2ZXIsIG5vdCBpbmRpY2F0ZSB0aGF0IHRoZXJlIGlzIGEgd2F5IHRvIHJlbW92ZSB0aGUKKyAqIG1lbW9yeSBibG9jay4KICAqLwogc3RhdGljIHNzaXplX3QgcmVtb3ZhYmxlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJCSAgICAgIGNoYXIgKmJ1ZikKQEAgLTQ1NSwxMiArNDQxLDEyIEBAIHN0YXRpYyBERVZJQ0VfQVRUUl9STyhwaHlzX2RldmljZSk7CiBzdGF0aWMgREVWSUNFX0FUVFJfUk8ocmVtb3ZhYmxlKTsKIAogLyoKLSAqIEJsb2NrIHNpemUgYXR0cmlidXRlIHN0dWZmCisgKiBTaG93IHRoZSBtZW1vcnkgYmxvY2sgc2l6ZSAoc2hhcmVkIGJ5IGFsbCBtZW1vcnkgYmxvY2tzKS4KICAqLwogc3RhdGljIHNzaXplX3QgYmxvY2tfc2l6ZV9ieXRlc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJCQkgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7Ci0JcmV0dXJuIHNwcmludGYoYnVmLCAiJWx4XG4iLCBnZXRfbWVtb3J5X2Jsb2NrX3NpemUoKSk7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWx4XG4iLCBtZW1vcnlfYmxvY2tfc2l6ZV9ieXRlcygpKTsKIH0KIAogc3RhdGljIERFVklDRV9BVFRSX1JPKGJsb2NrX3NpemVfYnl0ZXMpOwpAQCAtNjcwLDEwICs2NTYsMTAgQEAgc3RhdGljIGludCBpbml0X21lbW9yeV9ibG9jayhzdHJ1Y3QgbWVtb3J5X2Jsb2NrICoqbWVtb3J5LAogCQlyZXR1cm4gLUVOT01FTTsKIAogCW1lbS0+c3RhcnRfc2VjdGlvbl9uciA9IGJsb2NrX2lkICogc2VjdGlvbnNfcGVyX2Jsb2NrOwotCW1lbS0+ZW5kX3NlY3Rpb25fbnIgPSBtZW0tPnN0YXJ0X3NlY3Rpb25fbnIgKyBzZWN0aW9uc19wZXJfYmxvY2sgLSAxOwogCW1lbS0+c3RhdGUgPSBzdGF0ZTsKIAlzdGFydF9wZm4gPSBzZWN0aW9uX25yX3RvX3BmbihtZW0tPnN0YXJ0X3NlY3Rpb25fbnIpOwogCW1lbS0+cGh5c19kZXZpY2UgPSBhcmNoX2dldF9tZW1vcnlfcGh5c19kZXZpY2Uoc3RhcnRfcGZuKTsKKwltZW0tPm5pZCA9IE5VTUFfTk9fTk9ERTsKIAogCXJldCA9IHJlZ2lzdGVyX21lbW9yeShtZW0pOwogCkBAIC04MTAsMTkgKzc5NiwyMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqbWVtb3J5X3Jvb3RfYXR0cl9ncm91cHNbXSA9IHsKIC8qCiAgKiBJbml0aWFsaXplIHRoZSBzeXNmcyBzdXBwb3J0IGZvciBtZW1vcnkgZGV2aWNlcy4uLgogICovCi1pbnQgX19pbml0IG1lbW9yeV9kZXZfaW5pdCh2b2lkKQordm9pZCBfX2luaXQgbWVtb3J5X2Rldl9pbml0KHZvaWQpCiB7CiAJaW50IHJldDsKIAlpbnQgZXJyOwogCXVuc2lnbmVkIGxvbmcgYmxvY2tfc3osIG5yOwogCisJLyogVmFsaWRhdGUgdGhlIGNvbmZpZ3VyZWQgbWVtb3J5IGJsb2NrIHNpemUgKi8KKwlibG9ja19zeiA9IG1lbW9yeV9ibG9ja19zaXplX2J5dGVzKCk7CisJaWYgKCFpc19wb3dlcl9vZl8yKGJsb2NrX3N6KSB8fCBibG9ja19zeiA8IE1JTl9NRU1PUllfQkxPQ0tfU0laRSkKKwkJcGFuaWMoIk1lbW9yeSBibG9jayBzaXplIG5vdCBzdWl0YWJsZTogMHglbHhcbiIsIGJsb2NrX3N6KTsKKwlzZWN0aW9uc19wZXJfYmxvY2sgPSBibG9ja19zeiAvIE1JTl9NRU1PUllfQkxPQ0tfU0laRTsKKwogCXJldCA9IHN1YnN5c19zeXN0ZW1fcmVnaXN0ZXIoJm1lbW9yeV9zdWJzeXMsIG1lbW9yeV9yb290X2F0dHJfZ3JvdXBzKTsKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKIAotCWJsb2NrX3N6ID0gZ2V0X21lbW9yeV9ibG9ja19zaXplKCk7Ci0Jc2VjdGlvbnNfcGVyX2Jsb2NrID0gYmxvY2tfc3ogLyBNSU5fTUVNT1JZX0JMT0NLX1NJWkU7Ci0KIAkvKgogCSAqIENyZWF0ZSBlbnRyaWVzIGZvciBtZW1vcnkgc2VjdGlvbnMgdGhhdCB3ZXJlIGZvdW5kCiAJICogZHVyaW5nIGJvb3QgYW5kIGhhdmUgYmVlbiBpbml0aWFsaXplZApAQCAtODM4LDggKzgyNyw3IEBAIGludCBfX2luaXQgbWVtb3J5X2Rldl9pbml0KHZvaWQpCiAKIG91dDoKIAlpZiAocmV0KQotCQlwcmludGsoS0VSTl9FUlIgIiVzKCkgZmFpbGVkOiAlZFxuIiwgX19mdW5jX18sIHJldCk7Ci0JcmV0dXJuIHJldDsKKwkJcGFuaWMoIiVzKCkgZmFpbGVkOiAlZFxuIiwgX19mdW5jX18sIHJldCk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL25vZGUuYyBiL2RyaXZlcnMvYmFzZS9ub2RlLmMKaW5kZXggNzViN2U2Zi4uMjk2NTQ2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL25vZGUuYworKysgYi9kcml2ZXJzL2Jhc2Uvbm9kZS5jCkBAIC00MjcsNiArNDI3LDggQEAgc3RhdGljIHNzaXplX3Qgbm9kZV9yZWFkX21lbWluZm8oc3RydWN0IGRldmljZSAqZGV2LAogCQkgICAgICAgIk5vZGUgJWQgQW5vbkh1Z2VQYWdlczogICU4bHUga0JcbiIKIAkJICAgICAgICJOb2RlICVkIFNobWVtSHVnZVBhZ2VzOiAlOGx1IGtCXG4iCiAJCSAgICAgICAiTm9kZSAlZCBTaG1lbVBtZE1hcHBlZDogJThsdSBrQlxuIgorCQkgICAgICAgIk5vZGUgJWQgRmlsZUh1Z2VQYWdlczogJThsdSBrQlxuIgorCQkgICAgICAgIk5vZGUgJWQgRmlsZVBtZE1hcHBlZDogJThsdSBrQlxuIgogI2VuZGlmCiAJCQksCiAJCSAgICAgICBuaWQsIEsobm9kZV9wYWdlX3N0YXRlKHBnZGF0LCBOUl9GSUxFX0RJUlRZKSksCkBAIC00NTIsNiArNDU0LDEwIEBAIHN0YXRpYyBzc2l6ZV90IG5vZGVfcmVhZF9tZW1pbmZvKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJICAgICAgIG5pZCwgSyhub2RlX3BhZ2Vfc3RhdGUocGdkYXQsIE5SX1NITUVNX1RIUFMpICoKIAkJCQkgICAgICAgSFBBR0VfUE1EX05SKSwKIAkJICAgICAgIG5pZCwgSyhub2RlX3BhZ2Vfc3RhdGUocGdkYXQsIE5SX1NITUVNX1BNRE1BUFBFRCkgKgorCQkJCSAgICAgICBIUEFHRV9QTURfTlIpLAorCQkgICAgICAgbmlkLCBLKG5vZGVfcGFnZV9zdGF0ZShwZ2RhdCwgTlJfRklMRV9USFBTKSAqCisJCQkJICAgICAgIEhQQUdFX1BNRF9OUiksCisJCSAgICAgICBuaWQsIEsobm9kZV9wYWdlX3N0YXRlKHBnZGF0LCBOUl9GSUxFX1BNRE1BUFBFRCkgKgogCQkJCSAgICAgICBIUEFHRV9QTURfTlIpCiAjZW5kaWYKIAkJICAgICAgICk7CkBAIC03NTYsMTUgKzc2MiwxMyBAQCBzdGF0aWMgaW50IF9fcmVmIGdldF9uaWRfZm9yX3Bmbih1bnNpZ25lZCBsb25nIHBmbikKIHN0YXRpYyBpbnQgcmVnaXN0ZXJfbWVtX3NlY3RfdW5kZXJfbm9kZShzdHJ1Y3QgbWVtb3J5X2Jsb2NrICptZW1fYmxrLAogCQkJCQkgdm9pZCAqYXJnKQogeworCXVuc2lnbmVkIGxvbmcgbWVtb3J5X2Jsb2NrX3BmbnMgPSBtZW1vcnlfYmxvY2tfc2l6ZV9ieXRlcygpIC8gUEFHRV9TSVpFOworCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuID0gc2VjdGlvbl9ucl90b19wZm4obWVtX2Jsay0+c3RhcnRfc2VjdGlvbl9ucik7CisJdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gc3RhcnRfcGZuICsgbWVtb3J5X2Jsb2NrX3BmbnMgLSAxOwogCWludCByZXQsIG5pZCA9ICooaW50ICopYXJnOwotCXVuc2lnbmVkIGxvbmcgcGZuLCBzZWN0X3N0YXJ0X3Bmbiwgc2VjdF9lbmRfcGZuOworCXVuc2lnbmVkIGxvbmcgcGZuOwogCi0JbWVtX2Jsay0+bmlkID0gbmlkOwotCi0Jc2VjdF9zdGFydF9wZm4gPSBzZWN0aW9uX25yX3RvX3BmbihtZW1fYmxrLT5zdGFydF9zZWN0aW9uX25yKTsKLQlzZWN0X2VuZF9wZm4gPSBzZWN0aW9uX25yX3RvX3BmbihtZW1fYmxrLT5lbmRfc2VjdGlvbl9ucik7Ci0Jc2VjdF9lbmRfcGZuICs9IFBBR0VTX1BFUl9TRUNUSU9OIC0gMTsKLQlmb3IgKHBmbiA9IHNlY3Rfc3RhcnRfcGZuOyBwZm4gPD0gc2VjdF9lbmRfcGZuOyBwZm4rKykgeworCWZvciAocGZuID0gc3RhcnRfcGZuOyBwZm4gPD0gZW5kX3BmbjsgcGZuKyspIHsKIAkJaW50IHBhZ2VfbmlkOwogCiAJCS8qCkBAIC03ODksNiArNzkzLDEzIEBAIHN0YXRpYyBpbnQgcmVnaXN0ZXJfbWVtX3NlY3RfdW5kZXJfbm9kZShzdHJ1Y3QgbWVtb3J5X2Jsb2NrICptZW1fYmxrLAogCQkJaWYgKHBhZ2VfbmlkICE9IG5pZCkKIAkJCQljb250aW51ZTsKIAkJfQorCisJCS8qCisJCSAqIElmIHRoaXMgbWVtb3J5IGJsb2NrIHNwYW5zIG11bHRpcGxlIG5vZGVzLCB3ZSBvbmx5IGluZGljYXRlCisJCSAqIHRoZSBsYXN0IHByb2Nlc3NlZCBub2RlLgorCQkgKi8KKwkJbWVtX2Jsay0+bmlkID0gbmlkOworCiAJCXJldCA9IHN5c2ZzX2NyZWF0ZV9saW5rX25vd2Fybigmbm9kZV9kZXZpY2VzW25pZF0tPmRldi5rb2JqLAogCQkJCQkmbWVtX2Jsay0+ZGV2LmtvYmosCiAJCQkJCWtvYmplY3RfbmFtZSgmbWVtX2Jsay0+ZGV2LmtvYmopKTsKQEAgLTgwNCwzMiArODE1LDE4IEBAIHN0YXRpYyBpbnQgcmVnaXN0ZXJfbWVtX3NlY3RfdW5kZXJfbm9kZShzdHJ1Y3QgbWVtb3J5X2Jsb2NrICptZW1fYmxrLAogfQogCiAvKgotICogVW5yZWdpc3RlciBtZW1vcnkgYmxvY2sgZGV2aWNlIHVuZGVyIGFsbCBub2RlcyB0aGF0IGl0IHNwYW5zLgotICogSGFzIHRvIGJlIGNhbGxlZCB3aXRoIG1lbV9zeXNmc19tdXRleCBoZWxkIChkdWUgdG8gdW5saW5rZWRfbm9kZXMpLgorICogVW5yZWdpc3RlciBhIG1lbW9yeSBibG9jayBkZXZpY2UgdW5kZXIgdGhlIG5vZGUgaXQgc3BhbnMuIE1lbW9yeSBibG9ja3MKKyAqIHdpdGggbXVsdGlwbGUgbm9kZXMgY2Fubm90IGJlIG9mZmxpbmVkIGFuZCB0aGVyZWZvcmUgYWxzbyBuZXZlciBiZSByZW1vdmVkLgogICovCiB2b2lkIHVucmVnaXN0ZXJfbWVtb3J5X2Jsb2NrX3VuZGVyX25vZGVzKHN0cnVjdCBtZW1vcnlfYmxvY2sgKm1lbV9ibGspCiB7Ci0JdW5zaWduZWQgbG9uZyBwZm4sIHNlY3Rfc3RhcnRfcGZuLCBzZWN0X2VuZF9wZm47Ci0Jc3RhdGljIG5vZGVtYXNrX3QgdW5saW5rZWRfbm9kZXM7CisJaWYgKG1lbV9ibGstPm5pZCA9PSBOVU1BX05PX05PREUpCisJCXJldHVybjsKIAotCW5vZGVzX2NsZWFyKHVubGlua2VkX25vZGVzKTsKLQlzZWN0X3N0YXJ0X3BmbiA9IHNlY3Rpb25fbnJfdG9fcGZuKG1lbV9ibGstPnN0YXJ0X3NlY3Rpb25fbnIpOwotCXNlY3RfZW5kX3BmbiA9IHNlY3Rpb25fbnJfdG9fcGZuKG1lbV9ibGstPmVuZF9zZWN0aW9uX25yKTsKLQlmb3IgKHBmbiA9IHNlY3Rfc3RhcnRfcGZuOyBwZm4gPD0gc2VjdF9lbmRfcGZuOyBwZm4rKykgewotCQlpbnQgbmlkOwotCi0JCW5pZCA9IGdldF9uaWRfZm9yX3BmbihwZm4pOwotCQlpZiAobmlkIDwgMCkKLQkJCWNvbnRpbnVlOwotCQlpZiAoIW5vZGVfb25saW5lKG5pZCkpCi0JCQljb250aW51ZTsKLQkJaWYgKG5vZGVfdGVzdF9hbmRfc2V0KG5pZCwgdW5saW5rZWRfbm9kZXMpKQotCQkJY29udGludWU7Ci0JCXN5c2ZzX3JlbW92ZV9saW5rKCZub2RlX2RldmljZXNbbmlkXS0+ZGV2LmtvYmosCi0JCQkga29iamVjdF9uYW1lKCZtZW1fYmxrLT5kZXYua29iaikpOwotCQlzeXNmc19yZW1vdmVfbGluaygmbWVtX2Jsay0+ZGV2LmtvYmosCi0JCQkga29iamVjdF9uYW1lKCZub2RlX2RldmljZXNbbmlkXS0+ZGV2LmtvYmopKTsKLQl9CisJc3lzZnNfcmVtb3ZlX2xpbmsoJm5vZGVfZGV2aWNlc1ttZW1fYmxrLT5uaWRdLT5kZXYua29iaiwKKwkJCSAga29iamVjdF9uYW1lKCZtZW1fYmxrLT5kZXYua29iaikpOworCXN5c2ZzX3JlbW92ZV9saW5rKCZtZW1fYmxrLT5kZXYua29iaiwKKwkJCSAga29iamVjdF9uYW1lKCZub2RlX2RldmljZXNbbWVtX2Jsay0+bmlkXS0+ZGV2LmtvYmopKTsKIH0KIAogaW50IGxpbmtfbWVtX3NlY3Rpb25zKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9pbnRlcnZhbC5jIGIvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfaW50ZXJ2YWwuYwppbmRleCBjNTg5ODY1Li42NTFiZDAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9pbnRlcnZhbC5jCisrKyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX2ludGVydmFsLmMKQEAgLTEzLDMzICsxMywxMCBAQCBzZWN0b3JfdCBpbnRlcnZhbF9lbmQoc3RydWN0IHJiX25vZGUgKm5vZGUpCiAJcmV0dXJuIHRoaXMtPmVuZDsKIH0KIAotLyoqCi0gKiBjb21wdXRlX3N1YnRyZWVfbGFzdCAgLSAgY29tcHV0ZSBlbmQgb2YgQG5vZGUKLSAqCi0gKiBUaGUgZW5kIG9mIGFuIGludGVydmFsIGlzIHRoZSBoaWdoZXN0IChzdGFydCArIChzaXplID4+IDkpKSB2YWx1ZSBvZiB0aGlzCi0gKiBub2RlIGFuZCBvZiBpdHMgY2hpbGRyZW4uICBDYWxsZWQgZm9yIEBub2RlIGFuZCBpdHMgcGFyZW50cyB3aGVuZXZlciB0aGUgZW5kCi0gKiBtYXkgaGF2ZSBjaGFuZ2VkLgotICovCi1zdGF0aWMgaW5saW5lIHNlY3Rvcl90Ci1jb21wdXRlX3N1YnRyZWVfbGFzdChzdHJ1Y3QgZHJiZF9pbnRlcnZhbCAqbm9kZSkKLXsKLQlzZWN0b3JfdCBtYXggPSBub2RlLT5zZWN0b3IgKyAobm9kZS0+c2l6ZSA+PiA5KTsKKyNkZWZpbmUgTk9ERV9FTkQobm9kZSkgKChub2RlKS0+c2VjdG9yICsgKChub2RlKS0+c2l6ZSA+PiA5KSkKIAotCWlmIChub2RlLT5yYi5yYl9sZWZ0KSB7Ci0JCXNlY3Rvcl90IGxlZnQgPSBpbnRlcnZhbF9lbmQobm9kZS0+cmIucmJfbGVmdCk7Ci0JCWlmIChsZWZ0ID4gbWF4KQotCQkJbWF4ID0gbGVmdDsKLQl9Ci0JaWYgKG5vZGUtPnJiLnJiX3JpZ2h0KSB7Ci0JCXNlY3Rvcl90IHJpZ2h0ID0gaW50ZXJ2YWxfZW5kKG5vZGUtPnJiLnJiX3JpZ2h0KTsKLQkJaWYgKHJpZ2h0ID4gbWF4KQotCQkJbWF4ID0gcmlnaHQ7Ci0JfQotCXJldHVybiBtYXg7Ci19Ci0KLVJCX0RFQ0xBUkVfQ0FMTEJBQ0tTKHN0YXRpYywgYXVnbWVudF9jYWxsYmFja3MsIHN0cnVjdCBkcmJkX2ludGVydmFsLCByYiwKLQkJICAgICBzZWN0b3JfdCwgZW5kLCBjb21wdXRlX3N1YnRyZWVfbGFzdCk7CitSQl9ERUNMQVJFX0NBTExCQUNLU19NQVgoc3RhdGljLCBhdWdtZW50X2NhbGxiYWNrcywKKwkJCSBzdHJ1Y3QgZHJiZF9pbnRlcnZhbCwgcmIsIHNlY3Rvcl90LCBlbmQsIE5PREVfRU5EKTsKIAogLyoqCiAgKiBkcmJkX2luc2VydF9pbnRlcnZhbCAgLSAgaW5zZXJ0IGEgbmV3IGludGVydmFsIGludG8gYSB0cmVlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL25iZC5jIGIvZHJpdmVycy9ibG9jay9uYmQuYwppbmRleCBhOGUzODE1Li5hYzA3ZThjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL25iZC5jCisrKyBiL2RyaXZlcnMvYmxvY2svbmJkLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgpAQCAtNzEsMTQgKzcyLDE3IEBAIHN0cnVjdCBsaW5rX2RlYWRfYXJncyB7CiAJaW50IGluZGV4OwogfTsKIAotI2RlZmluZSBOQkRfVElNRURPVVQJCQkwCisjZGVmaW5lIE5CRF9SVF9USU1FRE9VVAkJCTAKKyNkZWZpbmUgTkJEX1JUX0RJU0NPTk5FQ1RfUkVRVUVTVEVECTEKKyNkZWZpbmUgTkJEX1JUX0RJU0NPTk5FQ1RFRAkJMgorI2RlZmluZSBOQkRfUlRfSEFTX1BJRF9GSUxFCQkzCisjZGVmaW5lIE5CRF9SVF9IQVNfQ09ORklHX1JFRgkJNAorI2RlZmluZSBOQkRfUlRfQk9VTkQJCQk1CisjZGVmaW5lIE5CRF9SVF9ERVNUUk9ZX09OX0RJU0NPTk5FQ1QJNgorI2RlZmluZSBOQkRfUlRfRElTQ09OTkVDVF9PTl9DTE9TRQk3CisKKyNkZWZpbmUgTkJEX0RFU1RST1lfT05fRElTQ09OTkVDVAkwCiAjZGVmaW5lIE5CRF9ESVNDT05ORUNUX1JFUVVFU1RFRAkxCi0jZGVmaW5lIE5CRF9ESVNDT05ORUNURUQJCTIKLSNkZWZpbmUgTkJEX0hBU19QSURfRklMRQkJMwotI2RlZmluZSBOQkRfSEFTX0NPTkZJR19SRUYJCTQKLSNkZWZpbmUgTkJEX0JPVU5ECQkJNQotI2RlZmluZSBOQkRfREVTVFJPWV9PTl9ESVNDT05ORUNUCTYKLSNkZWZpbmUgTkJEX0RJU0NPTk5FQ1RfT05fQ0xPU0UgCTcKIAogc3RydWN0IG5iZF9jb25maWcgewogCXUzMiBmbGFnczsKQEAgLTExMyw2ICsxMTcsOSBAQCBzdHJ1Y3QgbmJkX2RldmljZSB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFza19yZWN2OwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFza19zZXR1cDsKKworCXN0cnVjdCBjb21wbGV0aW9uICpkZXN0cm95X2NvbXBsZXRlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiB9OwogCiAjZGVmaW5lIE5CRF9DTURfUkVRVUVVRUQJMQpAQCAtMjIzLDYgKzIzMCwxNiBAQCBzdGF0aWMgdm9pZCBuYmRfZGV2X3JlbW92ZShzdHJ1Y3QgbmJkX2RldmljZSAqbmJkKQogCQlkaXNrLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCQlwdXRfZGlzayhkaXNrKTsKIAl9CisKKwkvKgorCSAqIFBsYWNlIHRoaXMgaW4gdGhlIGxhc3QganVzdCBiZWZvcmUgdGhlIG5iZCBpcyBmcmVlZCB0bworCSAqIG1ha2Ugc3VyZSB0aGF0IHRoZSBkaXNrIGFuZCB0aGUgcmVsYXRlZCBrb2JqZWN0IGFyZSBhbHNvCisJICogdG90YWxseSByZW1vdmVkIHRvIGF2b2lkIGR1cGxpY2F0ZSBjcmVhdGlvbiBvZiB0aGUgc2FtZQorCSAqIG9uZS4KKwkgKi8KKwlpZiAodGVzdF9iaXQoTkJEX0RFU1RST1lfT05fRElTQ09OTkVDVCwgJm5iZC0+ZmxhZ3MpICYmIG5iZC0+ZGVzdHJveV9jb21wbGV0ZSkKKwkJY29tcGxldGUobmJkLT5kZXN0cm95X2NvbXBsZXRlKTsKKwogCWtmcmVlKG5iZCk7CiB9CiAKQEAgLTIzOCw4ICsyNTUsOCBAQCBzdGF0aWMgdm9pZCBuYmRfcHV0KHN0cnVjdCBuYmRfZGV2aWNlICpuYmQpCiAKIHN0YXRpYyBpbnQgbmJkX2Rpc2Nvbm5lY3RlZChzdHJ1Y3QgbmJkX2NvbmZpZyAqY29uZmlnKQogewotCXJldHVybiB0ZXN0X2JpdChOQkRfRElTQ09OTkVDVEVELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSB8fAotCQl0ZXN0X2JpdChOQkRfRElTQ09OTkVDVF9SRVFVRVNURUQsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpOworCXJldHVybiB0ZXN0X2JpdChOQkRfUlRfRElTQ09OTkVDVEVELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSB8fAorCQl0ZXN0X2JpdChOQkRfUlRfRElTQ09OTkVDVF9SRVFVRVNURUQsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpOwogfQogCiBzdGF0aWMgdm9pZCBuYmRfbWFya19uc29ja19kZWFkKHN0cnVjdCBuYmRfZGV2aWNlICpuYmQsIHN0cnVjdCBuYmRfc29jayAqbnNvY2ssCkBAIC0yNTcsOSArMjc0LDkgQEAgc3RhdGljIHZvaWQgbmJkX21hcmtfbnNvY2tfZGVhZChzdHJ1Y3QgbmJkX2RldmljZSAqbmJkLCBzdHJ1Y3QgbmJkX3NvY2sgKm5zb2NrLAogCWlmICghbnNvY2stPmRlYWQpIHsKIAkJa2VybmVsX3NvY2tfc2h1dGRvd24obnNvY2stPnNvY2ssIFNIVVRfUkRXUik7CiAJCWlmIChhdG9taWNfZGVjX3JldHVybigmbmJkLT5jb25maWctPmxpdmVfY29ubmVjdGlvbnMpID09IDApIHsKLQkJCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTkJEX0RJU0NPTk5FQ1RfUkVRVUVTVEVELAorCQkJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChOQkRfUlRfRElTQ09OTkVDVF9SRVFVRVNURUQsCiAJCQkJCSAgICAgICAmbmJkLT5jb25maWctPnJ1bnRpbWVfZmxhZ3MpKSB7Ci0JCQkJc2V0X2JpdChOQkRfRElTQ09OTkVDVEVELAorCQkJCXNldF9iaXQoTkJEX1JUX0RJU0NPTk5FQ1RFRCwKIAkJCQkJJm5iZC0+Y29uZmlnLT5ydW50aW1lX2ZsYWdzKTsKIAkJCQlkZXZfaW5mbyhuYmRfdG9fZGV2KG5iZCksCiAJCQkJCSJEaXNjb25uZWN0ZWQgZHVlIHRvIHVzZXIgcmVxdWVzdC5cbiIpOwpAQCAtMzMzLDcgKzM1MCw3IEBAIHN0YXRpYyB2b2lkIHNvY2tfc2h1dGRvd24oc3RydWN0IG5iZF9kZXZpY2UgKm5iZCkKIAogCWlmIChjb25maWctPm51bV9jb25uZWN0aW9ucyA9PSAwKQogCQlyZXR1cm47Ci0JaWYgKHRlc3RfYW5kX3NldF9iaXQoTkJEX0RJU0NPTk5FQ1RFRCwgJmNvbmZpZy0+cnVudGltZV9mbGFncykpCisJaWYgKHRlc3RfYW5kX3NldF9iaXQoTkJEX1JUX0RJU0NPTk5FQ1RFRCwgJmNvbmZpZy0+cnVudGltZV9mbGFncykpCiAJCXJldHVybjsKIAogCWZvciAoaSA9IDA7IGkgPCBjb25maWctPm51bV9jb25uZWN0aW9uczsgaSsrKSB7CkBAIC00MjcsNyArNDQ0LDcgQEAgc3RhdGljIGVudW0gYmxrX2VoX3RpbWVyX3JldHVybiBuYmRfeG1pdF90aW1lb3V0KHN0cnVjdCByZXF1ZXN0ICpyZXEsCiAJfQogCiAJZGV2X2Vycl9yYXRlbGltaXRlZChuYmRfdG9fZGV2KG5iZCksICJDb25uZWN0aW9uIHRpbWVkIG91dFxuIik7Ci0Jc2V0X2JpdChOQkRfVElNRURPVVQsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpOworCXNldF9iaXQoTkJEX1JUX1RJTUVET1VULCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKTsKIAljbWQtPnN0YXR1cyA9IEJMS19TVFNfSU9FUlI7CiAJbXV0ZXhfdW5sb2NrKCZjbWQtPmxvY2spOwogCXNvY2tfc2h1dGRvd24obmJkKTsKQEAgLTc5NSw3ICs4MTIsNyBAQCBzdGF0aWMgaW50IGZpbmRfZmFsbGJhY2soc3RydWN0IG5iZF9kZXZpY2UgKm5iZCwgaW50IGluZGV4KQogCXN0cnVjdCBuYmRfc29jayAqbnNvY2sgPSBjb25maWctPnNvY2tzW2luZGV4XTsKIAlpbnQgZmFsbGJhY2sgPSBuc29jay0+ZmFsbGJhY2tfaW5kZXg7CiAKLQlpZiAodGVzdF9iaXQoTkJEX0RJU0NPTk5FQ1RFRCwgJmNvbmZpZy0+cnVudGltZV9mbGFncykpCisJaWYgKHRlc3RfYml0KE5CRF9SVF9ESVNDT05ORUNURUQsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpKQogCQlyZXR1cm4gbmV3X2luZGV4OwogCiAJaWYgKGNvbmZpZy0+bnVtX2Nvbm5lY3Rpb25zIDw9IDEpIHsKQEAgLTgzNiw3ICs4NTMsNyBAQCBzdGF0aWMgaW50IHdhaXRfZm9yX3JlY29ubmVjdChzdHJ1Y3QgbmJkX2RldmljZSAqbmJkKQogCXN0cnVjdCBuYmRfY29uZmlnICpjb25maWcgPSBuYmQtPmNvbmZpZzsKIAlpZiAoIWNvbmZpZy0+ZGVhZF9jb25uX3RpbWVvdXQpCiAJCXJldHVybiAwOwotCWlmICh0ZXN0X2JpdChOQkRfRElTQ09OTkVDVEVELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSkKKwlpZiAodGVzdF9iaXQoTkJEX1JUX0RJU0NPTk5FQ1RFRCwgJmNvbmZpZy0+cnVudGltZV9mbGFncykpCiAJCXJldHVybiAwOwogCXJldHVybiB3YWl0X2V2ZW50X3RpbWVvdXQoY29uZmlnLT5jb25uX3dhaXQsCiAJCQkJICBhdG9taWNfcmVhZCgmY29uZmlnLT5saXZlX2Nvbm5lY3Rpb25zKSA+IDAsCkBAIC05NjksMTIgKzk4NiwxMiBAQCBzdGF0aWMgaW50IG5iZF9hZGRfc29ja2V0KHN0cnVjdCBuYmRfZGV2aWNlICpuYmQsIHVuc2lnbmVkIGxvbmcgYXJnLAogCQlyZXR1cm4gZXJyOwogCiAJaWYgKCFuZXRsaW5rICYmICFuYmQtPnRhc2tfc2V0dXAgJiYKLQkgICAgIXRlc3RfYml0KE5CRF9CT1VORCwgJmNvbmZpZy0+cnVudGltZV9mbGFncykpCisJICAgICF0ZXN0X2JpdChOQkRfUlRfQk9VTkQsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpKQogCQluYmQtPnRhc2tfc2V0dXAgPSBjdXJyZW50OwogCiAJaWYgKCFuZXRsaW5rICYmCiAJICAgIChuYmQtPnRhc2tfc2V0dXAgIT0gY3VycmVudCB8fAotCSAgICAgdGVzdF9iaXQoTkJEX0JPVU5ELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSkpIHsKKwkgICAgIHRlc3RfYml0KE5CRF9SVF9CT1VORCwgJmNvbmZpZy0+cnVudGltZV9mbGFncykpKSB7CiAJCWRldl9lcnIoZGlza190b19kZXYobmJkLT5kaXNrKSwKIAkJCSJEZXZpY2UgYmVpbmcgc2V0dXAgYnkgYW5vdGhlciB0YXNrIik7CiAJCXNvY2tmZF9wdXQoc29jayk7CkBAIC0xMDUzLDcgKzEwNzAsNyBAQCBzdGF0aWMgaW50IG5iZF9yZWNvbm5lY3Rfc29ja2V0KHN0cnVjdCBuYmRfZGV2aWNlICpuYmQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQltdXRleF91bmxvY2soJm5zb2NrLT50eF9sb2NrKTsKIAkJc29ja2ZkX3B1dChvbGQpOwogCi0JCWNsZWFyX2JpdChOQkRfRElTQ09OTkVDVEVELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKTsKKwkJY2xlYXJfYml0KE5CRF9SVF9ESVNDT05ORUNURUQsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpOwogCiAJCS8qIFdlIHRha2UgdGhlIHR4X211dGV4IGluIGFuIGVycm9yIHBhdGggaW4gdGhlIHJlY3Zfd29yaywgc28gd2UKIAkJICogbmVlZCB0byBxdWV1ZV93b3JrIG91dHNpZGUgb2YgdGhlIHR4X211dGV4LgpAQCAtMTEyNCw3ICsxMTQxLDggQEAgc3RhdGljIGludCBuYmRfZGlzY29ubmVjdChzdHJ1Y3QgbmJkX2RldmljZSAqbmJkKQogCXN0cnVjdCBuYmRfY29uZmlnICpjb25maWcgPSBuYmQtPmNvbmZpZzsKIAogCWRldl9pbmZvKGRpc2tfdG9fZGV2KG5iZC0+ZGlzayksICJOQkRfRElTQ09OTkVDVFxuIik7Ci0Jc2V0X2JpdChOQkRfRElTQ09OTkVDVF9SRVFVRVNURUQsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpOworCXNldF9iaXQoTkJEX1JUX0RJU0NPTk5FQ1RfUkVRVUVTVEVELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKTsKKwlzZXRfYml0KE5CRF9ESVNDT05ORUNUX1JFUVVFU1RFRCwgJm5iZC0+ZmxhZ3MpOwogCXNlbmRfZGlzY29ubmVjdHMobmJkKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTExNDMsNyArMTE2MSw3IEBAIHN0YXRpYyB2b2lkIG5iZF9jb25maWdfcHV0KHN0cnVjdCBuYmRfZGV2aWNlICpuYmQpCiAJCXN0cnVjdCBuYmRfY29uZmlnICpjb25maWcgPSBuYmQtPmNvbmZpZzsKIAkJbmJkX2Rldl9kYmdfY2xvc2UobmJkKTsKIAkJbmJkX3NpemVfY2xlYXIobmJkKTsKLQkJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChOQkRfSEFTX1BJRF9GSUxFLAorCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5CRF9SVF9IQVNfUElEX0ZJTEUsCiAJCQkJICAgICAgICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpKQogCQkJZGV2aWNlX3JlbW92ZV9maWxlKGRpc2tfdG9fZGV2KG5iZC0+ZGlzayksICZwaWRfYXR0cik7CiAJCW5iZC0+dGFza19yZWN2ID0gTlVMTDsKQEAgLTEyMDksNyArMTIyNyw3IEBAIHN0YXRpYyBpbnQgbmJkX3N0YXJ0X2RldmljZShzdHJ1Y3QgbmJkX2RldmljZSAqbmJkKQogCQlkZXZfZXJyKGRpc2tfdG9fZGV2KG5iZC0+ZGlzayksICJkZXZpY2VfY3JlYXRlX2ZpbGUgZmFpbGVkIVxuIik7CiAJCXJldHVybiBlcnJvcjsKIAl9Ci0Jc2V0X2JpdChOQkRfSEFTX1BJRF9GSUxFLCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKTsKKwlzZXRfYml0KE5CRF9SVF9IQVNfUElEX0ZJTEUsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpOwogCiAJbmJkX2Rldl9kYmdfaW5pdChuYmQpOwogCWZvciAoaSA9IDA7IGkgPCBudW1fY29ubmVjdGlvbnM7IGkrKykgewpAQCAtMTI1Niw5ICsxMjc0LDkgQEAgc3RhdGljIGludCBuYmRfc3RhcnRfZGV2aWNlX2lvY3RsKHN0cnVjdCBuYmRfZGV2aWNlICpuYmQsIHN0cnVjdCBibG9ja19kZXZpY2UgKmIKIAltdXRleF9sb2NrKCZuYmQtPmNvbmZpZ19sb2NrKTsKIAluYmRfYmRldl9yZXNldChiZGV2KTsKIAkvKiB1c2VyIHJlcXVlc3RlZCwgaWdub3JlIHNvY2tldCBlcnJvcnMgKi8KLQlpZiAodGVzdF9iaXQoTkJEX0RJU0NPTk5FQ1RfUkVRVUVTVEVELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSkKKwlpZiAodGVzdF9iaXQoTkJEX1JUX0RJU0NPTk5FQ1RfUkVRVUVTVEVELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSkKIAkJcmV0ID0gMDsKLQlpZiAodGVzdF9iaXQoTkJEX1RJTUVET1VULCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSkKKwlpZiAodGVzdF9iaXQoTkJEX1JUX1RJTUVET1VULCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSkKIAkJcmV0ID0gLUVUSU1FRE9VVDsKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTI2OSw3ICsxMjg3LDcgQEAgc3RhdGljIHZvaWQgbmJkX2NsZWFyX3NvY2tfaW9jdGwoc3RydWN0IG5iZF9kZXZpY2UgKm5iZCwKIAlzb2NrX3NodXRkb3duKG5iZCk7CiAJX19pbnZhbGlkYXRlX2RldmljZShiZGV2LCB0cnVlKTsKIAluYmRfYmRldl9yZXNldChiZGV2KTsKLQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5CRF9IQVNfQ09ORklHX1JFRiwKKwlpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5CRF9SVF9IQVNfQ09ORklHX1JFRiwKIAkJCSAgICAgICAmbmJkLT5jb25maWctPnJ1bnRpbWVfZmxhZ3MpKQogCQluYmRfY29uZmlnX3B1dChuYmQpOwogfQpAQCAtMTM2NCw3ICsxMzgyLDcgQEAgc3RhdGljIGludCBuYmRfaW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVfdCBtb2RlLAogCS8qIERvbid0IGFsbG93IGlvY3RsIG9wZXJhdGlvbnMgb24gYSBuYmQgZGV2aWNlIHRoYXQgd2FzIGNyZWF0ZWQgd2l0aAogCSAqIG5ldGxpbmssIHVubGVzcyBpdCdzIERJU0NPTk5FQ1Qgb3IgQ0xFQVJfU09DSywgd2hpY2ggYXJlIGZpbmUuCiAJICovCi0JaWYgKCF0ZXN0X2JpdChOQkRfQk9VTkQsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpIHx8CisJaWYgKCF0ZXN0X2JpdChOQkRfUlRfQk9VTkQsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpIHx8CiAJICAgIChjbWQgPT0gTkJEX0RJU0NPTk5FQ1QgfHwgY21kID09IE5CRF9DTEVBUl9TT0NLKSkKIAkJZXJyb3IgPSBfX25iZF9pb2N0bChiZGV2LCBuYmQsIGNtZCwgYXJnKTsKIAllbHNlCkBAIC0xNDM1LDcgKzE0NTMsNyBAQCBzdGF0aWMgdm9pZCBuYmRfcmVsZWFzZShzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgZm1vZGVfdCBtb2RlKQogCXN0cnVjdCBuYmRfZGV2aWNlICpuYmQgPSBkaXNrLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiA9IGJkZ2V0X2Rpc2soZGlzaywgMCk7CiAKLQlpZiAodGVzdF9iaXQoTkJEX0RJU0NPTk5FQ1RfT05fQ0xPU0UsICZuYmQtPmNvbmZpZy0+cnVudGltZV9mbGFncykgJiYKKwlpZiAodGVzdF9iaXQoTkJEX1JUX0RJU0NPTk5FQ1RfT05fQ0xPU0UsICZuYmQtPmNvbmZpZy0+cnVudGltZV9mbGFncykgJiYKIAkJCWJkZXYtPmJkX29wZW5lcnMgPT0gMCkKIAkJbmJkX2Rpc2Nvbm5lY3RfYW5kX3B1dChuYmQpOwogCkBAIC0xNjM2LDYgKzE2NTQsNyBAQCBzdGF0aWMgaW50IG5iZF9kZXZfYWRkKGludCBpbmRleCkKIAluYmQtPnRhZ19zZXQuZmxhZ3MgPSBCTEtfTVFfRl9TSE9VTERfTUVSR0UgfAogCQlCTEtfTVFfRl9CTE9DS0lORzsKIAluYmQtPnRhZ19zZXQuZHJpdmVyX2RhdGEgPSBuYmQ7CisJbmJkLT5kZXN0cm95X2NvbXBsZXRlID0gTlVMTDsKIAogCWVyciA9IGJsa19tcV9hbGxvY190YWdfc2V0KCZuYmQtPnRhZ19zZXQpOwogCWlmIChlcnIpCkBAIC0xNzUwLDYgKzE3NjksNyBAQCBzdGF0aWMgaW50IG5iZF9nZW5sX3NpemVfc2V0KHN0cnVjdCBnZW5sX2luZm8gKmluZm8sIHN0cnVjdCBuYmRfZGV2aWNlICpuYmQpCiAKIHN0YXRpYyBpbnQgbmJkX2dlbmxfY29ubmVjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogeworCURFQ0xBUkVfQ09NUExFVElPTl9PTlNUQUNLKGRlc3Ryb3lfY29tcGxldGUpOwogCXN0cnVjdCBuYmRfZGV2aWNlICpuYmQgPSBOVUxMOwogCXN0cnVjdCBuYmRfY29uZmlnICpjb25maWc7CiAJaW50IGluZGV4ID0gLTE7CkBAIC0xODAxLDYgKzE4MjEsMTcgQEAgc3RhdGljIGludCBuYmRfZ2VubF9jb25uZWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAJCW11dGV4X3VubG9jaygmbmJkX2luZGV4X211dGV4KTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQorCisJaWYgKHRlc3RfYml0KE5CRF9ERVNUUk9ZX09OX0RJU0NPTk5FQ1QsICZuYmQtPmZsYWdzKSAmJgorCSAgICB0ZXN0X2JpdChOQkRfRElTQ09OTkVDVF9SRVFVRVNURUQsICZuYmQtPmZsYWdzKSkgeworCQluYmQtPmRlc3Ryb3lfY29tcGxldGUgPSAmZGVzdHJveV9jb21wbGV0ZTsKKwkJbXV0ZXhfdW5sb2NrKCZuYmRfaW5kZXhfbXV0ZXgpOworCisJCS8qIFdhaXQgdW50aWxsIHRoZSB0aGUgbmJkIHN0dWZmIGlzIHRvdGFsbHkgZGVzdHJveWVkICovCisJCXdhaXRfZm9yX2NvbXBsZXRpb24oJmRlc3Ryb3lfY29tcGxldGUpOworCQlnb3RvIGFnYWluOworCX0KKwogCWlmICghcmVmY291bnRfaW5jX25vdF96ZXJvKCZuYmQtPnJlZnMpKSB7CiAJCW11dGV4X3VubG9jaygmbmJkX2luZGV4X211dGV4KTsKIAkJaWYgKGluZGV4ID09IC0xKQpAQCAtMTgzMyw3ICsxODY0LDcgQEAgc3RhdGljIGludCBuYmRfZ2VubF9jb25uZWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAlyZWZjb3VudF9zZXQoJm5iZC0+Y29uZmlnX3JlZnMsIDEpOwotCXNldF9iaXQoTkJEX0JPVU5ELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKTsKKwlzZXRfYml0KE5CRF9SVF9CT1VORCwgJmNvbmZpZy0+cnVudGltZV9mbGFncyk7CiAKIAlyZXQgPSBuYmRfZ2VubF9zaXplX3NldChpbmZvLCBuYmQpOwogCWlmIChyZXQpCkBAIC0xODUzLDEyICsxODg0LDE1IEBAIHN0YXRpYyBpbnQgbmJkX2dlbmxfY29ubmVjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCWlmIChpbmZvLT5hdHRyc1tOQkRfQVRUUl9DTElFTlRfRkxBR1NdKSB7CiAJCXU2NCBmbGFncyA9IG5sYV9nZXRfdTY0KGluZm8tPmF0dHJzW05CRF9BVFRSX0NMSUVOVF9GTEFHU10pOwogCQlpZiAoZmxhZ3MgJiBOQkRfQ0ZMQUdfREVTVFJPWV9PTl9ESVNDT05ORUNUKSB7Ci0JCQlzZXRfYml0KE5CRF9ERVNUUk9ZX09OX0RJU0NPTk5FQ1QsCisJCQlzZXRfYml0KE5CRF9SVF9ERVNUUk9ZX09OX0RJU0NPTk5FQ1QsCiAJCQkJJmNvbmZpZy0+cnVudGltZV9mbGFncyk7CisJCQlzZXRfYml0KE5CRF9ERVNUUk9ZX09OX0RJU0NPTk5FQ1QsICZuYmQtPmZsYWdzKTsKIAkJCXB1dF9kZXYgPSB0cnVlOworCQl9IGVsc2UgeworCQkJY2xlYXJfYml0KE5CRF9ERVNUUk9ZX09OX0RJU0NPTk5FQ1QsICZuYmQtPmZsYWdzKTsKIAkJfQogCQlpZiAoZmxhZ3MgJiBOQkRfQ0ZMQUdfRElTQ09OTkVDVF9PTl9DTE9TRSkgewotCQkJc2V0X2JpdChOQkRfRElTQ09OTkVDVF9PTl9DTE9TRSwKKwkJCXNldF9iaXQoTkJEX1JUX0RJU0NPTk5FQ1RfT05fQ0xPU0UsCiAJCQkJJmNvbmZpZy0+cnVudGltZV9mbGFncyk7CiAJCX0KIAl9CkBAIC0xODk3LDcgKzE5MzEsNyBAQCBzdGF0aWMgaW50IG5iZF9nZW5sX2Nvbm5lY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIG91dDoKIAltdXRleF91bmxvY2soJm5iZC0+Y29uZmlnX2xvY2spOwogCWlmICghcmV0KSB7Ci0JCXNldF9iaXQoTkJEX0hBU19DT05GSUdfUkVGLCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKTsKKwkJc2V0X2JpdChOQkRfUlRfSEFTX0NPTkZJR19SRUYsICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpOwogCQlyZWZjb3VudF9pbmMoJm5iZC0+Y29uZmlnX3JlZnMpOwogCQluYmRfY29ubmVjdF9yZXBseShpbmZvLCBuYmQtPmluZGV4KTsKIAl9CkBAIC0xOTE5LDcgKzE5NTMsNyBAQCBzdGF0aWMgdm9pZCBuYmRfZGlzY29ubmVjdF9hbmRfcHV0KHN0cnVjdCBuYmRfZGV2aWNlICpuYmQpCiAJICogcXVldWUuCiAJICovCiAJZmx1c2hfd29ya3F1ZXVlKG5iZC0+cmVjdl93b3JrcSk7Ci0JaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChOQkRfSEFTX0NPTkZJR19SRUYsCisJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChOQkRfUlRfSEFTX0NPTkZJR19SRUYsCiAJCQkgICAgICAgJm5iZC0+Y29uZmlnLT5ydW50aW1lX2ZsYWdzKSkKIAkJbmJkX2NvbmZpZ19wdXQobmJkKTsKIH0KQEAgLTIwMDMsNyArMjAzNyw3IEBAIHN0YXRpYyBpbnQgbmJkX2dlbmxfcmVjb25maWd1cmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAogCW11dGV4X2xvY2soJm5iZC0+Y29uZmlnX2xvY2spOwogCWNvbmZpZyA9IG5iZC0+Y29uZmlnOwotCWlmICghdGVzdF9iaXQoTkJEX0JPVU5ELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSB8fAorCWlmICghdGVzdF9iaXQoTkJEX1JUX0JPVU5ELCAmY29uZmlnLT5ydW50aW1lX2ZsYWdzKSB8fAogCSAgICAhbmJkLT50YXNrX3JlY3YpIHsKIAkJZGV2X2VycihuYmRfdG9fZGV2KG5iZCksCiAJCQkibm90IGNvbmZpZ3VyZWQsIGNhbm5vdCByZWNvbmZpZ3VyZVxuIik7CkBAIC0yMDI2LDIwICsyMDYwLDIyIEBAIHN0YXRpYyBpbnQgbmJkX2dlbmxfcmVjb25maWd1cmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAlpZiAoaW5mby0+YXR0cnNbTkJEX0FUVFJfQ0xJRU5UX0ZMQUdTXSkgewogCQl1NjQgZmxhZ3MgPSBubGFfZ2V0X3U2NChpbmZvLT5hdHRyc1tOQkRfQVRUUl9DTElFTlRfRkxBR1NdKTsKIAkJaWYgKGZsYWdzICYgTkJEX0NGTEFHX0RFU1RST1lfT05fRElTQ09OTkVDVCkgewotCQkJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KE5CRF9ERVNUUk9ZX09OX0RJU0NPTk5FQ1QsCisJCQlpZiAoIXRlc3RfYW5kX3NldF9iaXQoTkJEX1JUX0RFU1RST1lfT05fRElTQ09OTkVDVCwKIAkJCQkJICAgICAgJmNvbmZpZy0+cnVudGltZV9mbGFncykpCiAJCQkJcHV0X2RldiA9IHRydWU7CisJCQlzZXRfYml0KE5CRF9ERVNUUk9ZX09OX0RJU0NPTk5FQ1QsICZuYmQtPmZsYWdzKTsKIAkJfSBlbHNlIHsKLQkJCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTkJEX0RFU1RST1lfT05fRElTQ09OTkVDVCwKKwkJCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTkJEX1JUX0RFU1RST1lfT05fRElTQ09OTkVDVCwKIAkJCQkJICAgICAgICZjb25maWctPnJ1bnRpbWVfZmxhZ3MpKQogCQkJCXJlZmNvdW50X2luYygmbmJkLT5yZWZzKTsKKwkJCWNsZWFyX2JpdChOQkRfREVTVFJPWV9PTl9ESVNDT05ORUNULCAmbmJkLT5mbGFncyk7CiAJCX0KIAogCQlpZiAoZmxhZ3MgJiBOQkRfQ0ZMQUdfRElTQ09OTkVDVF9PTl9DTE9TRSkgewotCQkJc2V0X2JpdChOQkRfRElTQ09OTkVDVF9PTl9DTE9TRSwKKwkJCXNldF9iaXQoTkJEX1JUX0RJU0NPTk5FQ1RfT05fQ0xPU0UsCiAJCQkJCSZjb25maWctPnJ1bnRpbWVfZmxhZ3MpOwogCQl9IGVsc2UgewotCQkJY2xlYXJfYml0KE5CRF9ESVNDT05ORUNUX09OX0NMT1NFLAorCQkJY2xlYXJfYml0KE5CRF9SVF9ESVNDT05ORUNUX09OX0NMT1NFLAogCQkJCQkmY29uZmlnLT5ydW50aW1lX2ZsYWdzKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svcGt0Y2R2ZC5jIGIvZHJpdmVycy9ibG9jay9wa3RjZHZkLmMKaW5kZXggMDI0MDYwMS4uNzY0NTcwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9wa3RjZHZkLmMKKysrIGIvZHJpdmVycy9ibG9jay9wa3RjZHZkLmMKQEAgLTI1OTQsNyArMjU5NCw2IEBAIHN0YXRpYyBpbnQgcGt0X25ld19kZXYoc3RydWN0IHBrdGNkdmRfZGV2aWNlICpwZCwgZGV2X3QgZGV2KQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAJaWYgKCFibGtfcXVldWVfc2NzaV9wYXNzdGhyb3VnaChiZGV2X2dldF9xdWV1ZShiZGV2KSkpIHsKLQkJV0FSTl9PTkNFKHRydWUsICJBdHRlbXB0IHRvIHJlZ2lzdGVyIGEgbm9uLVNDU0kgcXVldWVcbiIpOwogCQlibGtkZXZfcHV0KGJkZXYsIEZNT0RFX1JFQUQgfCBGTU9ERV9OREVMQVkpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3JiZC5jIGIvZHJpdmVycy9ibG9jay9yYmQuYwppbmRleCBjOGZiODg2Li43YzQzNTBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3JiZC5jCisrKyBiL2RyaXZlcnMvYmxvY2svcmJkLmMKQEAgLTE3NTQsOCArMTc1NCw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmJkX2ltZ19yZXF1ZXN0ICpyYmRfaW1nX3JlcXVlc3RfY3JlYXRlKAogCW11dGV4X2luaXQoJmltZ19yZXF1ZXN0LT5zdGF0ZV9tdXRleCk7CiAJa3JlZl9pbml0KCZpbWdfcmVxdWVzdC0+a3JlZik7CiAKLQlkb3V0KCIlczogcmJkX2RldiAlcCAlcyAtPiBpbWcgJXBcbiIsIF9fZnVuY19fLCByYmRfZGV2LAotCSAgICAgb2JqX29wX25hbWUob3BfdHlwZSksIGltZ19yZXF1ZXN0KTsKIAlyZXR1cm4gaW1nX3JlcXVlc3Q7CiB9CiAKQEAgLTI5NDQsNiArMjk0Miw5IEBAIHN0YXRpYyBpbnQgcmJkX29ial9yZWFkX2Zyb21fcGFyZW50KHN0cnVjdCByYmRfb2JqX3JlcXVlc3QgKm9ial9yZXEpCiAJX19zZXRfYml0KElNR19SRVFfQ0hJTEQsICZjaGlsZF9pbWdfcmVxLT5mbGFncyk7CiAJY2hpbGRfaW1nX3JlcS0+b2JqX3JlcXVlc3QgPSBvYmpfcmVxOwogCisJZG91dCgiJXMgY2hpbGRfaW1nX3JlcSAlcCBmb3Igb2JqX3JlcSAlcFxuIiwgX19mdW5jX18sIGNoaWxkX2ltZ19yZXEsCisJICAgICBvYmpfcmVxKTsKKwogCWlmICghcmJkX2ltZ19pc193cml0ZShpbWdfcmVxKSkgewogCQlzd2l0Y2ggKGltZ19yZXEtPmRhdGFfdHlwZSkgewogCQljYXNlIE9CSl9SRVFVRVNUX0JJTzoKQEAgLTQ4NzcsNiArNDg3OCw5IEBAIHN0YXRpYyB2b2lkIHJiZF9xdWV1ZV93b3JrZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWltZ19yZXF1ZXN0LT5ycSA9IHJxOwogCXNuYXBjID0gTlVMTDsgLyogaW1nX3JlcXVlc3QgY29uc3VtZXMgYSByZWYgKi8KIAorCWRvdXQoIiVzIHJiZF9kZXYgJXAgaW1nX3JlcSAlcCAlcyAlbGx1fiVsbHVcbiIsIF9fZnVuY19fLCByYmRfZGV2LAorCSAgICAgaW1nX3JlcXVlc3QsIG9ial9vcF9uYW1lKG9wX3R5cGUpLCBvZmZzZXQsIGxlbmd0aCk7CisKIAlpZiAob3BfdHlwZSA9PSBPQkpfT1BfRElTQ0FSRCB8fCBvcF90eXBlID09IE9CSl9PUF9aRVJPT1VUKQogCQlyZXN1bHQgPSByYmRfaW1nX2ZpbGxfbm9kYXRhKGltZ19yZXF1ZXN0LCBvZmZzZXQsIGxlbmd0aCk7CiAJZWxzZQpAQCAtNTY2OSwxNyArNTY3MywyMCBAQCBzdGF0aWMgaW50IHJiZF9kZXZfdjJfaW1hZ2Vfc2l6ZShzdHJ1Y3QgcmJkX2RldmljZSAqcmJkX2RldikKIAogc3RhdGljIGludCByYmRfZGV2X3YyX29iamVjdF9wcmVmaXgoc3RydWN0IHJiZF9kZXZpY2UgKnJiZF9kZXYpCiB7CisJc2l6ZV90IHNpemU7CiAJdm9pZCAqcmVwbHlfYnVmOwogCWludCByZXQ7CiAJdm9pZCAqcDsKIAotCXJlcGx5X2J1ZiA9IGt6YWxsb2MoUkJEX09CSl9QUkVGSVhfTEVOX01BWCwgR0ZQX0tFUk5FTCk7CisJLyogUmVzcG9uc2Ugd2lsbCBiZSBhbiBlbmNvZGVkIHN0cmluZywgd2hpY2ggaW5jbHVkZXMgYSBsZW5ndGggKi8KKwlzaXplID0gc2l6ZW9mKF9fbGUzMikgKyBSQkRfT0JKX1BSRUZJWF9MRU5fTUFYOworCXJlcGx5X2J1ZiA9IGt6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFyZXBseV9idWYpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJcmV0ID0gcmJkX29ial9tZXRob2Rfc3luYyhyYmRfZGV2LCAmcmJkX2Rldi0+aGVhZGVyX29pZCwKIAkJCQkgICZyYmRfZGV2LT5oZWFkZXJfb2xvYywgImdldF9vYmplY3RfcHJlZml4IiwKLQkJCQkgIE5VTEwsIDAsIHJlcGx5X2J1ZiwgUkJEX09CSl9QUkVGSVhfTEVOX01BWCk7CisJCQkJICBOVUxMLCAwLCByZXBseV9idWYsIHNpemUpOwogCWRvdXQoIiVzOiByYmRfb2JqX21ldGhvZF9zeW5jIHJldHVybmVkICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBvdXQ7CkBAIC02Njk2LDcgKzY3MDMsNiBAQCBzdGF0aWMgaW50IHJiZF9kZXZfaW1hZ2VfaWQoc3RydWN0IHJiZF9kZXZpY2UgKnJiZF9kZXYpCiAJZG91dCgicmJkIGlkIG9iamVjdCBuYW1lIGlzICVzXG4iLCBvaWQubmFtZSk7CiAKIAkvKiBSZXNwb25zZSB3aWxsIGJlIGFuIGVuY29kZWQgc3RyaW5nLCB3aGljaCBpbmNsdWRlcyBhIGxlbmd0aCAqLwotCiAJc2l6ZSA9IHNpemVvZiAoX19sZTMyKSArIFJCRF9JTUFHRV9JRF9MRU5fTUFYOwogCXJlc3BvbnNlID0ga3phbGxvYyhzaXplLCBHRlBfTk9JTyk7CiAJaWYgKCFyZXNwb25zZSkgewpAQCAtNjcwOCw3ICs2NzE0LDcgQEAgc3RhdGljIGludCByYmRfZGV2X2ltYWdlX2lkKHN0cnVjdCByYmRfZGV2aWNlICpyYmRfZGV2KQogCiAJcmV0ID0gcmJkX29ial9tZXRob2Rfc3luYyhyYmRfZGV2LCAmb2lkLCAmcmJkX2Rldi0+aGVhZGVyX29sb2MsCiAJCQkJICAiZ2V0X2lkIiwgTlVMTCwgMCwKLQkJCQkgIHJlc3BvbnNlLCBSQkRfSU1BR0VfSURfTEVOX01BWCk7CisJCQkJICByZXNwb25zZSwgc2l6ZSk7CiAJZG91dCgiJXM6IHJiZF9vYmpfbWV0aG9kX3N5bmMgcmV0dXJuZWQgJWRcbiIsIF9fZnVuY19fLCByZXQpOwogCWlmIChyZXQgPT0gLUVOT0VOVCkgewogCQlpbWFnZV9pZCA9IGtzdHJkdXAoIiIsIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9idXMvdGktc3lzYy5jIGIvZHJpdmVycy9idXMvdGktc3lzYy5jCmluZGV4IDJkYjQ3NGEuLjkyMDdhYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYnVzL3RpLXN5c2MuYworKysgYi9kcml2ZXJzL2J1cy90aS1zeXNjLmMKQEAgLTEsMTQgKzEsNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiB0aS1zeXNjLmMgLSBUZXhhcyBJbnN0cnVtZW50cyBzeXNjIGludGVyY29ubmVjdCB0YXJnZXQgZHJpdmVyCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgImFzIGlzIiBXSVRIT1VUIEFOWSBXQVJSQU5UWSBvZiBhbnkKLSAqIGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkKLSAqIG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CkBAIC02MiwxOCArNTQsMjYgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjbG9ja19uYW1lc1tTWVNDX01BWF9DTE9DS1NdID0gewogICogQG1vZHVsZV9zaXplOiBzaXplIG9mIHRoZSBpbnRlcmNvbm5lY3QgdGFyZ2V0IG1vZHVsZQogICogQG1vZHVsZV92YTogdmlydHVhbCBhZGRyZXNzIG9mIHRoZSBpbnRlcmNvbm5lY3QgdGFyZ2V0IG1vZHVsZQogICogQG9mZnNldHM6IHJlZ2lzdGVyIG9mZnNldHMgZnJvbSBtb2R1bGUgYmFzZQorICogQG1kYXRhOiB0aS1zeXNjIHRvIGh3bW9kIHRyYW5zbGF0aW9uIGRhdGEgZm9yIGEgbW9kdWxlCiAgKiBAY2xvY2tzOiBjbG9ja3MgdXNlZCBieSB0aGUgaW50ZXJjb25uZWN0IHRhcmdldCBtb2R1bGUKICAqIEBjbG9ja19yb2xlczogY2xvY2sgcm9sZSBuYW1lcyBmb3IgdGhlIGZvdW5kIGNsb2NrcwogICogQG5yX2Nsb2NrczogbnVtYmVyIG9mIGNsb2NrcyB1c2VkIGJ5IHRoZSBpbnRlcmNvbm5lY3QgdGFyZ2V0IG1vZHVsZQorICogQHJzdHM6IHJlc2V0cyB1c2VkIGJ5IHRoZSBpbnRlcmNvbm5lY3QgdGFyZ2V0IG1vZHVsZQogICogQGxlZ2FjeV9tb2RlOiBjb25maWd1cmVkIGZvciBsZWdhY3kgbW9kZSBpZiBzZXQKICAqIEBjYXA6IGludGVyY29ubmVjdCB0YXJnZXQgbW9kdWxlIGNhcGFiaWxpdGllcwogICogQGNmZzogaW50ZXJjb25uZWN0IHRhcmdldCBtb2R1bGUgY29uZmlndXJhdGlvbgorICogQGNvb2tpZTogZGF0YSB1c2VkIGJ5IGxlZ2FjeSBwbGF0Zm9ybSBjYWxsYmFja3MKICAqIEBuYW1lOiBuYW1lIGlmIGF2YWlsYWJsZQogICogQHJldmlzaW9uOiBpbnRlcmNvbm5lY3QgdGFyZ2V0IG1vZHVsZSByZXZpc2lvbgorICogQGVuYWJsZWQ6IHN5c2MgcnVudGltZSBlbmFibGVkIHN0YXR1cwogICogQG5lZWRzX3Jlc3VtZTogcnVudGltZSByZXN1bWUgbmVlZGVkIG9uIHJlc3VtZSBmcm9tIHN1c3BlbmQKKyAqIEBjaGlsZF9uZWVkc19yZXN1bWU6IHJ1bnRpbWUgcmVzdW1lIG5lZWRlZCBmb3IgY2hpbGQgb24gcmVzdW1lIGZyb20gc3VzcGVuZAorICogQGRpc2FibGVfb25faWRsZTogc3RhdHVzIGZsYWcgdXNlZCBmb3IgZGlzYWJsaW5nIG1vZHVsZXMgd2l0aCByZXNldHMKKyAqIEBpZGxlX3dvcms6IHdvcmsgc3RydWN0dXJlIHVzZWQgdG8gcGVyZm9ybSBkZWxheWVkIGlkbGUgb24gYSBtb2R1bGUKICAqIEBjbGtfZW5hYmxlX3F1aXJrOiBtb2R1bGUgc3BlY2lmaWMgY2xvY2sgZW5hYmxlIHF1aXJrCiAgKiBAY2xrX2Rpc2FibGVfcXVpcms6IG1vZHVsZSBzcGVjaWZpYyBjbG9jayBkaXNhYmxlIHF1aXJrCiAgKiBAcmVzZXRfZG9uZV9xdWlyazogbW9kdWxlIHNwZWNpZmljIHJlc2V0IGRvbmUgcXVpcmsKKyAqIEBtb2R1bGVfZW5hYmxlX3F1aXJrOiBtb2R1bGUgc3BlY2lmaWMgZW5hYmxlIHF1aXJrCiAgKi8KIHN0cnVjdCBzeXNjIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CkBAIC05NSwxMSArOTUsMTEgQEAgc3RydWN0IHN5c2MgewogCXVuc2lnbmVkIGludCBlbmFibGVkOjE7CiAJdW5zaWduZWQgaW50IG5lZWRzX3Jlc3VtZToxOwogCXVuc2lnbmVkIGludCBjaGlsZF9uZWVkc19yZXN1bWU6MTsKLQl1bnNpZ25lZCBpbnQgZGlzYWJsZV9vbl9pZGxlOjE7CiAJc3RydWN0IGRlbGF5ZWRfd29yayBpZGxlX3dvcms7CiAJdm9pZCAoKmNsa19lbmFibGVfcXVpcmspKHN0cnVjdCBzeXNjICpzeXNjKTsKIAl2b2lkICgqY2xrX2Rpc2FibGVfcXVpcmspKHN0cnVjdCBzeXNjICpzeXNjKTsKIAl2b2lkICgqcmVzZXRfZG9uZV9xdWlyaykoc3RydWN0IHN5c2MgKnN5c2MpOworCXZvaWQgKCptb2R1bGVfZW5hYmxlX3F1aXJrKShzdHJ1Y3Qgc3lzYyAqc3lzYyk7CiB9OwogCiBzdGF0aWMgdm9pZCBzeXNjX3BhcnNlX2R0c19xdWlya3Moc3RydWN0IHN5c2MgKmRkYXRhLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLApAQCAtNTAzLDcgKzUwMyw3IEBAIHN0YXRpYyB2b2lkIHN5c2NfY2xrZG1fYWxsb3dfaWRsZShzdHJ1Y3Qgc3lzYyAqZGRhdGEpCiBzdGF0aWMgaW50IHN5c2NfaW5pdF9yZXNldHMoc3RydWN0IHN5c2MgKmRkYXRhKQogewogCWRkYXRhLT5yc3RzID0KLQkJZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbChkZGF0YS0+ZGV2LCAicnN0Y3RybCIpOworCQlkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X29wdGlvbmFsX3NoYXJlZChkZGF0YS0+ZGV2LCAicnN0Y3RybCIpOwogCWlmIChJU19FUlIoZGRhdGEtPnJzdHMpKQogCQlyZXR1cm4gUFRSX0VSUihkZGF0YS0+cnN0cyk7CiAKQEAgLTYxNSw4ICs2MTUsOCBAQCBzdGF0aWMgdm9pZCBzeXNjX2NoZWNrX3F1aXJrX3N0ZG91dChzdHJ1Y3Qgc3lzYyAqZGRhdGEsCiAgKiBub2RlIGJ1dCBjaGlsZHJlbiBoYXZlICJ0aSxod21vZHMiLiBUaGVzZSBiZWxvbmcgdG8gdGhlIGludGVyY29ubmVjdAogICogdGFyZ2V0IG5vZGUgYW5kIGFyZSBtYW5hZ2VkIGJ5IHRoaXMgZHJpdmVyLgogICovCi1zdGF0aWMgaW50IHN5c2NfY2hlY2tfb25lX2NoaWxkKHN0cnVjdCBzeXNjICpkZGF0YSwKLQkJCQlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQorc3RhdGljIHZvaWQgc3lzY19jaGVja19vbmVfY2hpbGQoc3RydWN0IHN5c2MgKmRkYXRhLAorCQkJCSBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogewogCWNvbnN0IGNoYXIgKm5hbWU7CiAKQEAgLTYyNiwyMiArNjI2LDE0IEBAIHN0YXRpYyBpbnQgc3lzY19jaGVja19vbmVfY2hpbGQoc3RydWN0IHN5c2MgKmRkYXRhLAogCiAJc3lzY19jaGVja19xdWlya19zdGRvdXQoZGRhdGEsIG5wKTsKIAlzeXNjX3BhcnNlX2R0c19xdWlya3MoZGRhdGEsIG5wLCB0cnVlKTsKLQotCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHN5c2NfY2hlY2tfY2hpbGRyZW4oc3RydWN0IHN5c2MgKmRkYXRhKQorc3RhdGljIHZvaWQgc3lzY19jaGVja19jaGlsZHJlbihzdHJ1Y3Qgc3lzYyAqZGRhdGEpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICpjaGlsZDsKLQlpbnQgZXJyb3I7CiAKLQlmb3JfZWFjaF9jaGlsZF9vZl9ub2RlKGRkYXRhLT5kZXYtPm9mX25vZGUsIGNoaWxkKSB7Ci0JCWVycm9yID0gc3lzY19jaGVja19vbmVfY2hpbGQoZGRhdGEsIGNoaWxkKTsKLQkJaWYgKGVycm9yKQotCQkJcmV0dXJuIGVycm9yOwotCX0KLQotCXJldHVybiAwOworCWZvcl9lYWNoX2NoaWxkX29mX25vZGUoZGRhdGEtPmRldi0+b2Zfbm9kZSwgY2hpbGQpCisJCXN5c2NfY2hlY2tfb25lX2NoaWxkKGRkYXRhLCBjaGlsZCk7CiB9CiAKIC8qCkBAIC03OTQsOSArNzg2LDcgQEAgc3RhdGljIGludCBzeXNjX21hcF9hbmRfY2hlY2tfcmVnaXN0ZXJzKHN0cnVjdCBzeXNjICpkZGF0YSkKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAotCWVycm9yID0gc3lzY19jaGVja19jaGlsZHJlbihkZGF0YSk7Ci0JaWYgKGVycm9yKQotCQlyZXR1cm4gZXJyb3I7CisJc3lzY19jaGVja19jaGlsZHJlbihkZGF0YSk7CiAKIAllcnJvciA9IHN5c2NfcGFyc2VfcmVnaXN0ZXJzKGRkYXRhKTsKIAlpZiAoZXJyb3IpCkBAIC05NDAsNiArOTMwLDkgQEAgc3RhdGljIGludCBzeXNjX2VuYWJsZV9tb2R1bGUoc3RydWN0IGRldmljZSAqZGV2KQogCQlzeXNjX3dyaXRlKGRkYXRhLCBkZGF0YS0+b2Zmc2V0c1tTWVNDX1NZU0NPTkZJR10sIHJlZyk7CiAJfQogCisJaWYgKGRkYXRhLT5tb2R1bGVfZW5hYmxlX3F1aXJrKQorCQlkZGF0YS0+bW9kdWxlX2VuYWJsZV9xdWlyayhkZGF0YSk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTAzMSw4ICsxMDI0LDcgQEAgc3RhdGljIGludCBfX21heWJlX3VudXNlZCBzeXNjX3J1bnRpbWVfc3VzcGVuZF9sZWdhY3koc3RydWN0IGRldmljZSAqZGV2LAogCQlkZXZfZXJyKGRldiwgIiVzOiBjb3VsZCBub3QgaWRsZTogJWlcbiIsCiAJCQlfX2Z1bmNfXywgZXJyb3IpOwogCi0JaWYgKGRkYXRhLT5kaXNhYmxlX29uX2lkbGUpCi0JCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KGRkYXRhLT5yc3RzKTsKKwlyZXNldF9jb250cm9sX2Fzc2VydChkZGF0YS0+cnN0cyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEwNDMsOCArMTAzNSw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc3lzY19ydW50aW1lX3Jlc3VtZV9sZWdhY3koc3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCB0aV9zeXNjX3BsYXRmb3JtX2RhdGEgKnBkYXRhOwogCWludCBlcnJvcjsKIAotCWlmIChkZGF0YS0+ZGlzYWJsZV9vbl9pZGxlKQotCQlyZXNldF9jb250cm9sX2RlYXNzZXJ0KGRkYXRhLT5yc3RzKTsKKwlyZXNldF9jb250cm9sX2RlYXNzZXJ0KGRkYXRhLT5yc3RzKTsKIAogCXBkYXRhID0gZGV2X2dldF9wbGF0ZGF0YShkZGF0YS0+ZGV2KTsKIAlpZiAoIXBkYXRhKQpAQCAtMTA5MSwxMCArMTA4Miw5IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc3lzY19ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogCWRkYXRhLT5lbmFibGVkID0gZmFsc2U7CiAKIGVycl9hbGxvd19pZGxlOgotCXN5c2NfY2xrZG1fYWxsb3dfaWRsZShkZGF0YSk7CisJcmVzZXRfY29udHJvbF9hc3NlcnQoZGRhdGEtPnJzdHMpOwogCi0JaWYgKGRkYXRhLT5kaXNhYmxlX29uX2lkbGUpCi0JCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KGRkYXRhLT5yc3RzKTsKKwlzeXNjX2Nsa2RtX2FsbG93X2lkbGUoZGRhdGEpOwogCiAJcmV0dXJuIGVycm9yOwogfQpAQCAtMTEwOSwxMSArMTA5OSwxMSBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIHN5c2NfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogCWlmIChkZGF0YS0+ZW5hYmxlZCkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoZGRhdGEtPmRpc2FibGVfb25faWRsZSkKLQkJcmVzZXRfY29udHJvbF9kZWFzc2VydChkZGF0YS0+cnN0cyk7CiAKIAlzeXNjX2Nsa2RtX2RlbnlfaWRsZShkZGF0YSk7CiAKKwlyZXNldF9jb250cm9sX2RlYXNzZXJ0KGRkYXRhLT5yc3RzKTsKKwogCWlmIChzeXNjX29wdF9jbGtzX25lZWRlZChkZGF0YSkpIHsKIAkJZXJyb3IgPSBzeXNjX2VuYWJsZV9vcHRfY2xvY2tzKGRkYXRhKTsKIAkJaWYgKGVycm9yKQpAQCAtMTI1Niw2ICsxMjQ2LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzeXNjX3JldmlzaW9uX3F1aXJrIHN5c2NfcmV2aXNpb25fcXVpcmtzW10gPSB7CiAJCSAgIFNZU0NfTU9EVUxFX1FVSVJLX0kyQyksCiAJU1lTQ19RVUlSSygiaTJjIiwgMCwgMCwgMHgxMCwgMHg5MCwgMHg1MDQwMDAwYSwgMHhmZmZmZjBmMCwKIAkJICAgU1lTQ19NT0RVTEVfUVVJUktfSTJDKSwKKwlTWVNDX1FVSVJLKCJncHUiLCAweDUwMDAwMDAwLCAweDE0LCAtMSwgLTEsIDB4MDAwMTAyMDEsIDB4ZmZmZmZmZmYsIDApLAorCVNZU0NfUVVJUksoImdwdSIsIDB4NTAwMDAwMDAsIDB4ZmUwMCwgMHhmZTEwLCAtMSwgMHg0MDAwMDAwMCAsIDB4ZmZmZmZmZmYsCisJCSAgIFNZU0NfTU9EVUxFX1FVSVJLX1NHWCksCiAJU1lTQ19RVUlSSygid2R0IiwgMCwgMCwgMHgxMCwgMHgxNCwgMHg1MDJhMDUwMCwgMHhmZmZmZjBmMCwKIAkJICAgU1lTQ19NT0RVTEVfUVVJUktfV0RUKSwKIApAQCAtMTI3MSw4ICsxMjY0LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lzY19yZXZpc2lvbl9xdWlyayBzeXNjX3JldmlzaW9uX3F1aXJrc1tdID0gewogCVNZU0NfUVVJUksoImRjYW4iLCAwLCAweDIwLCAtMSwgLTEsIDB4NGVkYjE5MDIsIDB4ZmZmZmZmZmYsIDApLAogCVNZU0NfUVVJUksoImRtaWMiLCAwLCAwLCAweDEwLCAtMSwgMHg1MDAxMDAwMCwgMHhmZmZmZmZmZiwgMCksCiAJU1lTQ19RVUlSSygiZHdjMyIsIDAsIDAsIDB4MTAsIC0xLCAweDUwMGEwMjAwLCAweGZmZmZmZmZmLCAwKSwKKwlTWVNDX1FVSVJLKCJkMmQiLCAweDRhMGI2MDAwLCAwLCAweDEwLCAweDE0LCAweDAwMDAwMDEwLCAweGZmZmZmZmZmLCAwKSwKKwlTWVNDX1FVSVJLKCJkMmQiLCAweDRhMGNkMDAwLCAwLCAweDEwLCAweDE0LCAweDAwMDAwMDEwLCAweGZmZmZmZmZmLCAwKSwKIAlTWVNDX1FVSVJLKCJlcHdtc3MiLCAwLCAwLCAweDQsIC0xLCAweDQ3NDAwMDAxLCAweGZmZmZmZmZmLCAwKSwKIAlTWVNDX1FVSVJLKCJncHUiLCAwLCAweDFmYzAwLCAweDFmYzEwLCAtMSwgMCwgMCwgMCksCisJU1lTQ19RVUlSSygiZ3B1IiwgMCwgMHhmZTAwLCAweGZlMTAsIC0xLCAweDQwMDAwMDAwICwgMHhmZmZmZmZmZiwgMCksCiAJU1lTQ19RVUlSSygiaHNpIiwgMCwgMCwgMHgxMCwgMHgxNCwgMHg1MDA0MzEwMSwgMHhmZmZmZmZmZiwgMCksCiAJU1lTQ19RVUlSSygiaXNzIiwgMCwgMCwgMHgxMCwgLTEsIDB4NDAwMDAxMDEsIDB4ZmZmZmZmZmYsIDApLAogCVNZU0NfUVVJUksoImxjZGMiLCAwLCAwLCAweDU0LCAtMSwgMHg0ZjIwMTAwMCwgMHhmZmZmZmZmZiwgMCksCkBAIC0xNDI0LDYgKzE0MjAsMTUgQEAgc3RhdGljIHZvaWQgc3lzY19jbGtfZGlzYWJsZV9xdWlya19pMmMoc3RydWN0IHN5c2MgKmRkYXRhKQogCXN5c2NfY2xrX3F1aXJrX2kyYyhkZGF0YSwgZmFsc2UpOwogfQogCisvKiAzNnh4IFNHWCBuZWVkcyBhIHF1aXJrIGZvciB0byBieXBhc3MgT0NQIElQRyBpbnRlcnJ1cHQgbG9naWMgKi8KK3N0YXRpYyB2b2lkIHN5c2NfbW9kdWxlX2VuYWJsZV9xdWlya19zZ3goc3RydWN0IHN5c2MgKmRkYXRhKQoreworCWludCBvZmZzZXQgPSAweGZmMDg7CS8qIE9DUF9ERUJVR19DT05GSUcgKi8KKwl1MzIgdmFsID0gQklUKDMxKTsJLyogVEhBTElBX0lOVF9CWVBBU1MgKi8KKworCXN5c2Nfd3JpdGUoZGRhdGEsIG9mZnNldCwgdmFsKTsKK30KKwogLyogV2F0Y2hkb2cgdGltZXIgbmVlZHMgYSBkaXNhYmxlIHNlcXVlbmNlIGFmdGVyIHJlc2V0ICovCiBzdGF0aWMgdm9pZCBzeXNjX3Jlc2V0X2RvbmVfcXVpcmtfd2R0KHN0cnVjdCBzeXNjICpkZGF0YSkKIHsKQEAgLTE0NjYsNiArMTQ3MSw5IEBAIHN0YXRpYyB2b2lkIHN5c2NfaW5pdF9tb2R1bGVfcXVpcmtzKHN0cnVjdCBzeXNjICpkZGF0YSkKIAkJcmV0dXJuOwogCX0KIAorCWlmIChkZGF0YS0+Y2ZnLnF1aXJrcyAmIFNZU0NfTU9EVUxFX1FVSVJLX1NHWCkKKwkJZGRhdGEtPm1vZHVsZV9lbmFibGVfcXVpcmsgPSBzeXNjX21vZHVsZV9lbmFibGVfcXVpcmtfc2d4OworCiAJaWYgKGRkYXRhLT5jZmcucXVpcmtzICYgU1lTQ19NT0RVTEVfUVVJUktfV0RUKQogCQlkZGF0YS0+cmVzZXRfZG9uZV9xdWlyayA9IHN5c2NfcmVzZXRfZG9uZV9xdWlya193ZHQ7CiB9CkBAIC0xNTMyLDcgKzE1NDAsNyBAQCBzdGF0aWMgaW50IHN5c2NfbGVnYWN5X2luaXQoc3RydWN0IHN5c2MgKmRkYXRhKQogICovCiBzdGF0aWMgaW50IHN5c2NfcnN0Y3RybF9yZXNldF9kZWFzc2VydChzdHJ1Y3Qgc3lzYyAqZGRhdGEsIGJvb2wgcmVzZXQpCiB7Ci0JaW50IGVycm9yLCB2YWw7CisJaW50IGVycm9yOwogCiAJaWYgKCFkZGF0YS0+cnN0cykKIAkJcmV0dXJuIDA7CkBAIC0xNTQzLDE0ICsxNTUxLDkgQEAgc3RhdGljIGludCBzeXNjX3JzdGN0cmxfcmVzZXRfZGVhc3NlcnQoc3RydWN0IHN5c2MgKmRkYXRhLCBib29sIHJlc2V0KQogCQkJcmV0dXJuIGVycm9yOwogCX0KIAotCWVycm9yID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChkZGF0YS0+cnN0cyk7Ci0JaWYgKGVycm9yID09IC1FRVhJU1QpCi0JCXJldHVybiAwOworCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoZGRhdGEtPnJzdHMpOwogCi0JZXJyb3IgPSByZWFkeF9wb2xsX3RpbWVvdXQocmVzZXRfY29udHJvbF9zdGF0dXMsIGRkYXRhLT5yc3RzLCB2YWwsCi0JCQkJICAgdmFsID09IDAsIDEwMCwgTUFYX01PRFVMRV9TT0ZUUkVTRVRfV0FJVCk7Ci0KLQlyZXR1cm4gZXJyb3I7CisJcmV0dXJuIDA7CiB9CiAKIC8qCkBAIC0xNTU5LDEyICsxNTYyLDExIEBAIHN0YXRpYyBpbnQgc3lzY19yc3RjdHJsX3Jlc2V0X2RlYXNzZXJ0KHN0cnVjdCBzeXNjICpkZGF0YSwgYm9vbCByZXNldCkKICAqLwogc3RhdGljIGludCBzeXNjX3Jlc2V0KHN0cnVjdCBzeXNjICpkZGF0YSkKIHsKLQlpbnQgc3lzY19vZmZzZXQsIHN5c3Nfb2Zmc2V0LCBzeXNjX3ZhbCwgcnN0dmFsLCBxdWlya3MsIGVycm9yID0gMDsKKwlpbnQgc3lzY19vZmZzZXQsIHN5c3Nfb2Zmc2V0LCBzeXNjX3ZhbCwgcnN0dmFsLCBlcnJvciA9IDA7CiAJdTMyIHN5c2NfbWFzaywgc3lzc19kb25lOwogCiAJc3lzY19vZmZzZXQgPSBkZGF0YS0+b2Zmc2V0c1tTWVNDX1NZU0NPTkZJR107CiAJc3lzc19vZmZzZXQgPSBkZGF0YS0+b2Zmc2V0c1tTWVNDX1NZU1NUQVRVU107Ci0JcXVpcmtzID0gZGRhdGEtPmNmZy5xdWlya3M7CiAKIAlpZiAoZGRhdGEtPmxlZ2FjeV9tb2RlIHx8IHN5c2Nfb2Zmc2V0IDwgMCB8fAogCSAgICBkZGF0YS0+Y2FwLT5yZWdiaXRzLT5zcnN0X3NoaWZ0IDwgMCB8fApAQCAtMjQyNyw2ICsyNDI5LDEwIEBAIHN0YXRpYyBpbnQgc3lzY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlnb3RvIHVucHJlcGFyZTsKIAl9CiAKKwkvKiBCYWxhbmNlIHJlc2V0IGNvdW50cyAqLworCWlmIChkZGF0YS0+cnN0cykKKwkJcmVzZXRfY29udHJvbF9hc3NlcnQoZGRhdGEtPnJzdHMpOworCiAJc3lzY19zaG93X3JlZ2lzdGVycyhkZGF0YSk7CiAKIAlkZGF0YS0+ZGV2LT50eXBlID0gJnN5c2NfZGV2aWNlX3R5cGU7CkBAIC0yNDQ2LDkgKzI0NTIsNiBAQCBzdGF0aWMgaW50IHN5c2NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcG1fcnVudGltZV9wdXQoJnBkZXYtPmRldik7CiAJfQogCi0JaWYgKCFvZl9nZXRfYXZhaWxhYmxlX2NoaWxkX2NvdW50KGRkYXRhLT5kZXYtPm9mX25vZGUpKQotCQlkZGF0YS0+ZGlzYWJsZV9vbl9pZGxlID0gdHJ1ZTsKLQogCXJldHVybiAwOwogCiBlcnI6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL2NvcmUuYyBiL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCmluZGV4IGJkYWI1ZDkuLjgwYjg1MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCisrKyBiL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyB2b2lkIGFkZF9lYXJseV9yYW5kb21uZXNzKHN0cnVjdCBod3JuZyAqcm5nKQogCXNpemVfdCBzaXplID0gbWluX3Qoc2l6ZV90LCAxNiwgcm5nX2J1ZmZlcl9zaXplKCkpOwogCiAJbXV0ZXhfbG9jaygmcmVhZGluZ19tdXRleCk7Ci0JYnl0ZXNfcmVhZCA9IHJuZ19nZXRfZGF0YShybmcsIHJuZ19idWZmZXIsIHNpemUsIDEpOworCWJ5dGVzX3JlYWQgPSBybmdfZ2V0X2RhdGEocm5nLCBybmdfYnVmZmVyLCBzaXplLCAwKTsKIAltdXRleF91bmxvY2soJnJlYWRpbmdfbXV0ZXgpOwogCWlmIChieXRlc19yZWFkID4gMCkKIAkJYWRkX2RldmljZV9yYW5kb21uZXNzKHJuZ19idWZmZXIsIGJ5dGVzX3JlYWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9kbWkuYyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZG1pLmMKaW5kZXggZjM4ZTY1MS4uYmJmNzAyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9kbWkuYworKysgYi9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RtaS5jCkBAIC0xMiw3ICsxMiw2IEBACiAjaW5jbHVkZSA8bGludXgvZG1pLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvcGVydHkuaD4KLSNpbmNsdWRlICJpcG1pX3NpX3NtLmgiCiAjaW5jbHVkZSAiaXBtaV9kbWkuaCIKICNpbmNsdWRlICJpcG1pX3BsYXRfZGF0YS5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RtaS5oIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9kbWkuaAppbmRleCAyZGJlYzA0Li5lMTZhOWRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RtaS5oCisrKyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZG1pLmgKQEAgLTIsNiArMiw3IEBACiAvKgogICogRE1JIGRlZmluZXMgZm9yIHVzZSBieSBJUE1JCiAgKi8KKyNpbmNsdWRlICJpcG1pX3NpLmgiCiAKICNpZmRlZiBDT05GSUdfSVBNSV9ETUlfREVDT0RFCiBpbnQgaXBtaV9kbWlfZ2V0X3NsYXZlX2FkZHIoZW51bSBzaV90eXBlIHNpX3R5cGUsIHVuc2lnbmVkIGludCBzcGFjZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfbXNnaGFuZGxlci5jIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmMKaW5kZXggNjcwNzY1OS4uMmFhYjgwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmMKKysrIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmMKQEAgLTkwNCwxMiArOTA0LDE0IEBAIHN0YXRpYyBpbnQgZGVsaXZlcl9yZXNwb25zZShzdHJ1Y3QgaXBtaV9zbWkgKmludGYsIHN0cnVjdCBpcG1pX3JlY3ZfbXNnICptc2cpCiAJCQlydiA9IC1FSU5WQUw7CiAJCX0KIAkJaXBtaV9mcmVlX3JlY3ZfbXNnKG1zZyk7Ci0JfSBlbHNlIGlmICghb29wc19pbl9wcm9ncmVzcykgeworCX0gZWxzZSBpZiAob29wc19pbl9wcm9ncmVzcykgewogCQkvKgogCQkgKiBJZiB3ZSBhcmUgcnVubmluZyBpbiB0aGUgcGFuaWMgY29udGV4dCwgY2FsbGluZyB0aGUKIAkJICogcmVjZWl2ZSBoYW5kbGVyIGRvZXNuJ3QgbXVjaCBtZWFuaW5nIGFuZCBoYXMgYSBkZWFkbG9jawogCQkgKiByaXNrLiAgQXQgdGhpcyBtb21lbnQsIHNpbXBseSBza2lwIGl0IGluIHRoYXQgY2FzZS4KIAkJICovCisJCWlwbWlfZnJlZV9yZWN2X21zZyhtc2cpOworCX0gZWxzZSB7CiAJCWludCBpbmRleDsKIAkJc3RydWN0IGlwbWlfdXNlciAqdXNlciA9IGFjcXVpcmVfaXBtaV91c2VyKG1zZy0+dXNlciwgJmluZGV4KTsKIApAQCAtMjIyMCw3ICsyMjIyLDggQEAgc3RhdGljIGludCBpX2lwbWlfcmVxdWVzdChzdHJ1Y3QgaXBtaV91c2VyICAgICAqdXNlciwKIAllbHNlIHsKIAkJc21pX21zZyA9IGlwbWlfYWxsb2Nfc21pX21zZygpOwogCQlpZiAoc21pX21zZyA9PSBOVUxMKSB7Ci0JCQlpcG1pX2ZyZWVfcmVjdl9tc2cocmVjdl9tc2cpOworCQkJaWYgKCFzdXBwbGllZF9yZWN2KQorCQkJCWlwbWlfZnJlZV9yZWN2X21zZyhyZWN2X21zZyk7CiAJCQlydiA9IC1FTk9NRU07CiAJCQlnb3RvIG91dDsKIAkJfQpAQCAtNDIxNSw3ICs0MjE4LDUzIEBAIHN0YXRpYyBpbnQgaGFuZGxlX29uZV9yZWN2X21zZyhzdHJ1Y3QgaXBtaV9zbWkgKmludGYsCiAJaW50IGNoYW47CiAKIAlpcG1pX2RlYnVnX21zZygiUmVjdjoiLCBtc2ctPnJzcCwgbXNnLT5yc3Bfc2l6ZSk7Ci0JaWYgKG1zZy0+cnNwX3NpemUgPCAyKSB7CisKKwlpZiAoKG1zZy0+ZGF0YV9zaXplID49IDIpCisJICAgICYmIChtc2ctPmRhdGFbMF0gPT0gKElQTUlfTkVURk5fQVBQX1JFUVVFU1QgPDwgMikpCisJICAgICYmIChtc2ctPmRhdGFbMV0gPT0gSVBNSV9TRU5EX01TR19DTUQpCisJICAgICYmIChtc2ctPnVzZXJfZGF0YSA9PSBOVUxMKSkgeworCisJCWlmIChpbnRmLT5pbl9zaHV0ZG93bikKKwkJCWdvdG8gZnJlZV9tc2c7CisKKwkJLyoKKwkJICogVGhpcyBpcyB0aGUgbG9jYWwgcmVzcG9uc2UgdG8gYSBjb21tYW5kIHNlbmQsIHN0YXJ0CisJCSAqIHRoZSB0aW1lciBmb3IgdGhlc2UuICBUaGUgdXNlcl9kYXRhIHdpbGwgbm90IGJlCisJCSAqIE5VTEwgaWYgdGhpcyBpcyBhIHJlc3BvbnNlIHNlbmQsIGFuZCB3ZSB3aWxsIGxldAorCQkgKiByZXNwb25zZSBzZW5kcyBqdXN0IGdvIHRocm91Z2guCisJCSAqLworCisJCS8qCisJCSAqIENoZWNrIGZvciBlcnJvcnMsIGlmIHdlIGdldCBjZXJ0YWluIGVycm9ycyAob25lcworCQkgKiB0aGF0IG1lYW4gYmFzaWNhbGx5IHdlIGNhbiB0cnkgYWdhaW4gbGF0ZXIpLCB3ZQorCQkgKiBpZ25vcmUgdGhlbSBhbmQgc3RhcnQgdGhlIHRpbWVyLiAgT3RoZXJ3aXNlIHdlCisJCSAqIHJlcG9ydCB0aGUgZXJyb3IgaW1tZWRpYXRlbHkuCisJCSAqLworCQlpZiAoKG1zZy0+cnNwX3NpemUgPj0gMykgJiYgKG1zZy0+cnNwWzJdICE9IDApCisJCSAgICAmJiAobXNnLT5yc3BbMl0gIT0gSVBNSV9OT0RFX0JVU1lfRVJSKQorCQkgICAgJiYgKG1zZy0+cnNwWzJdICE9IElQTUlfTE9TVF9BUkJJVFJBVElPTl9FUlIpCisJCSAgICAmJiAobXNnLT5yc3BbMl0gIT0gSVBNSV9CVVNfRVJSKQorCQkgICAgJiYgKG1zZy0+cnNwWzJdICE9IElQTUlfTkFLX09OX1dSSVRFX0VSUikpIHsKKwkJCWludCBjaCA9IG1zZy0+cnNwWzNdICYgMHhmOworCQkJc3RydWN0IGlwbWlfY2hhbm5lbCAqY2hhbnM7CisKKwkJCS8qIEdvdCBhbiBlcnJvciBzZW5kaW5nIHRoZSBtZXNzYWdlLCBoYW5kbGUgaXQuICovCisKKwkJCWNoYW5zID0gUkVBRF9PTkNFKGludGYtPmNoYW5uZWxfbGlzdCktPmM7CisJCQlpZiAoKGNoYW5zW2NoXS5tZWRpdW0gPT0gSVBNSV9DSEFOTkVMX01FRElVTV84MDIzTEFOKQorCQkJICAgIHx8IChjaGFuc1tjaF0ubWVkaXVtID09IElQTUlfQ0hBTk5FTF9NRURJVU1fQVNZTkMpKQorCQkJCWlwbWlfaW5jX3N0YXQoaW50Ziwgc2VudF9sYW5fY29tbWFuZF9lcnJzKTsKKwkJCWVsc2UKKwkJCQlpcG1pX2luY19zdGF0KGludGYsIHNlbnRfaXBtYl9jb21tYW5kX2VycnMpOworCQkJaW50Zl9lcnJfc2VxKGludGYsIG1zZy0+bXNnaWQsIG1zZy0+cnNwWzJdKTsKKwkJfSBlbHNlCisJCQkvKiBUaGUgbWVzc2FnZSB3YXMgc2VudCwgc3RhcnQgdGhlIHRpbWVyLiAqLworCQkJaW50Zl9zdGFydF9zZXFfdGltZXIoaW50ZiwgbXNnLT5tc2dpZCk7CitmcmVlX21zZzoKKwkJcmVxdWV1ZSA9IDA7CisJCWdvdG8gb3V0OworCisJfSBlbHNlIGlmIChtc2ctPnJzcF9zaXplIDwgMikgewogCQkvKiBNZXNzYWdlIGlzIHRvbyBzbWFsbCB0byBiZSBjb3JyZWN0LiAqLwogCQlkZXZfd2FybihpbnRmLT5zaV9kZXYsCiAJCQkgIkJNQyByZXR1cm5lZCB0b28gc21hbGwgYSBtZXNzYWdlIGZvciBuZXRmbiAleCBjbWQgJXgsIGdvdCAlZCBieXRlc1xuIiwKQEAgLTQ0NzIsNjIgKzQ1MjEsMTYgQEAgdm9pZCBpcG1pX3NtaV9tc2dfcmVjZWl2ZWQoc3RydWN0IGlwbWlfc21pICppbnRmLAogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSAwOyAvKiBrZWVwIHVzIHdhcm5pbmctZnJlZS4gKi8KIAlpbnQgcnVuX3RvX2NvbXBsZXRpb24gPSBpbnRmLT5ydW5fdG9fY29tcGxldGlvbjsKIAotCWlmICgobXNnLT5kYXRhX3NpemUgPj0gMikKLQkgICAgJiYgKG1zZy0+ZGF0YVswXSA9PSAoSVBNSV9ORVRGTl9BUFBfUkVRVUVTVCA8PCAyKSkKLQkgICAgJiYgKG1zZy0+ZGF0YVsxXSA9PSBJUE1JX1NFTkRfTVNHX0NNRCkKLQkgICAgJiYgKG1zZy0+dXNlcl9kYXRhID09IE5VTEwpKSB7Ci0KLQkJaWYgKGludGYtPmluX3NodXRkb3duKQotCQkJZ290byBmcmVlX21zZzsKLQotCQkvKgotCQkgKiBUaGlzIGlzIHRoZSBsb2NhbCByZXNwb25zZSB0byBhIGNvbW1hbmQgc2VuZCwgc3RhcnQKLQkJICogdGhlIHRpbWVyIGZvciB0aGVzZS4gIFRoZSB1c2VyX2RhdGEgd2lsbCBub3QgYmUKLQkJICogTlVMTCBpZiB0aGlzIGlzIGEgcmVzcG9uc2Ugc2VuZCwgYW5kIHdlIHdpbGwgbGV0Ci0JCSAqIHJlc3BvbnNlIHNlbmRzIGp1c3QgZ28gdGhyb3VnaC4KLQkJICovCi0KLQkJLyoKLQkJICogQ2hlY2sgZm9yIGVycm9ycywgaWYgd2UgZ2V0IGNlcnRhaW4gZXJyb3JzIChvbmVzCi0JCSAqIHRoYXQgbWVhbiBiYXNpY2FsbHkgd2UgY2FuIHRyeSBhZ2FpbiBsYXRlciksIHdlCi0JCSAqIGlnbm9yZSB0aGVtIGFuZCBzdGFydCB0aGUgdGltZXIuICBPdGhlcndpc2Ugd2UKLQkJICogcmVwb3J0IHRoZSBlcnJvciBpbW1lZGlhdGVseS4KLQkJICovCi0JCWlmICgobXNnLT5yc3Bfc2l6ZSA+PSAzKSAmJiAobXNnLT5yc3BbMl0gIT0gMCkKLQkJICAgICYmIChtc2ctPnJzcFsyXSAhPSBJUE1JX05PREVfQlVTWV9FUlIpCi0JCSAgICAmJiAobXNnLT5yc3BbMl0gIT0gSVBNSV9MT1NUX0FSQklUUkFUSU9OX0VSUikKLQkJICAgICYmIChtc2ctPnJzcFsyXSAhPSBJUE1JX0JVU19FUlIpCi0JCSAgICAmJiAobXNnLT5yc3BbMl0gIT0gSVBNSV9OQUtfT05fV1JJVEVfRVJSKSkgewotCQkJaW50IGNoID0gbXNnLT5yc3BbM10gJiAweGY7Ci0JCQlzdHJ1Y3QgaXBtaV9jaGFubmVsICpjaGFuczsKLQotCQkJLyogR290IGFuIGVycm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UsIGhhbmRsZSBpdC4gKi8KLQotCQkJY2hhbnMgPSBSRUFEX09OQ0UoaW50Zi0+Y2hhbm5lbF9saXN0KS0+YzsKLQkJCWlmICgoY2hhbnNbY2hdLm1lZGl1bSA9PSBJUE1JX0NIQU5ORUxfTUVESVVNXzgwMjNMQU4pCi0JCQkgICAgfHwgKGNoYW5zW2NoXS5tZWRpdW0gPT0gSVBNSV9DSEFOTkVMX01FRElVTV9BU1lOQykpCi0JCQkJaXBtaV9pbmNfc3RhdChpbnRmLCBzZW50X2xhbl9jb21tYW5kX2VycnMpOwotCQkJZWxzZQotCQkJCWlwbWlfaW5jX3N0YXQoaW50Ziwgc2VudF9pcG1iX2NvbW1hbmRfZXJycyk7Ci0JCQlpbnRmX2Vycl9zZXEoaW50ZiwgbXNnLT5tc2dpZCwgbXNnLT5yc3BbMl0pOwotCQl9IGVsc2UKLQkJCS8qIFRoZSBtZXNzYWdlIHdhcyBzZW50LCBzdGFydCB0aGUgdGltZXIuICovCi0JCQlpbnRmX3N0YXJ0X3NlcV90aW1lcihpbnRmLCBtc2ctPm1zZ2lkKTsKLQotZnJlZV9tc2c6Ci0JCWlwbWlfZnJlZV9zbWlfbXNnKG1zZyk7Ci0JfSBlbHNlIHsKLQkJLyoKLQkJICogVG8gcHJlc2VydmUgbWVzc2FnZSBvcmRlciwgd2Uga2VlcCBhIHF1ZXVlIGFuZCBkZWxpdmVyIGZyb20KLQkJICogYSB0YXNrbGV0LgotCQkgKi8KLQkJaWYgKCFydW5fdG9fY29tcGxldGlvbikKLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZpbnRmLT53YWl0aW5nX3Jjdl9tc2dzX2xvY2ssIGZsYWdzKTsKLQkJbGlzdF9hZGRfdGFpbCgmbXNnLT5saW5rLCAmaW50Zi0+d2FpdGluZ19yY3ZfbXNncyk7Ci0JCWlmICghcnVuX3RvX2NvbXBsZXRpb24pCi0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpbnRmLT53YWl0aW5nX3Jjdl9tc2dzX2xvY2ssCi0JCQkJCSAgICAgICBmbGFncyk7Ci0JfQorCS8qCisJICogVG8gcHJlc2VydmUgbWVzc2FnZSBvcmRlciwgd2Uga2VlcCBhIHF1ZXVlIGFuZCBkZWxpdmVyIGZyb20KKwkgKiBhIHRhc2tsZXQuCisJICovCisJaWYgKCFydW5fdG9fY29tcGxldGlvbikKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmludGYtPndhaXRpbmdfcmN2X21zZ3NfbG9jaywgZmxhZ3MpOworCWxpc3RfYWRkX3RhaWwoJm1zZy0+bGluaywgJmludGYtPndhaXRpbmdfcmN2X21zZ3MpOworCWlmICghcnVuX3RvX2NvbXBsZXRpb24pCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmludGYtPndhaXRpbmdfcmN2X21zZ3NfbG9jaywKKwkJCQkgICAgICAgZmxhZ3MpOwogCiAJaWYgKCFydW5fdG9fY29tcGxldGlvbikKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmludGYtPnhtaXRfbXNnc19sb2NrLCBmbGFncyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpLmggYi9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpLmgKaW5kZXggMzU3YTIyOS4uYmFjMGZmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaS5oCisrKyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2kuaApAQCAtNiwxNCArNiw2NSBAQAogICogZXRjKSB0byB0aGUgYmFzZSBpcG1pIHN5c3RlbSBpbnRlcmZhY2UgY29kZS4KICAqLwogCisjaWZuZGVmIF9fSVBNSV9TSV9IX18KKyNkZWZpbmUgX19JUE1JX1NJX0hfXworCisjaW5jbHVkZSA8bGludXgvaXBtaS5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgImlwbWlfc2lfc20uaCIKKworI2RlZmluZSBTSV9ERVZJQ0VfTkFNRSAiaXBtaV9zaSIKIAogI2RlZmluZSBERUZBVUxUX1JFR1NQQUNJTkcJMQogI2RlZmluZSBERUZBVUxUX1JFR1NJWkUJCTEKIAotI2RlZmluZSBERVZJQ0VfTkFNRSAiaXBtaV9zaSIKK2VudW0gc2lfdHlwZSB7CisJU0lfVFlQRV9JTlZBTElELCBTSV9LQ1MsIFNJX1NNSUMsIFNJX0JUCit9OworCitlbnVtIGlwbWlfYWRkcl9zcGFjZSB7CisJSVBNSV9JT19BRERSX1NQQUNFLCBJUE1JX01FTV9BRERSX1NQQUNFCit9OworCisvKgorICogVGhlIHN0cnVjdHVyZSBmb3IgZG9pbmcgSS9PIGluIHRoZSBzdGF0ZSBtYWNoaW5lLiAgVGhlIHN0YXRlCisgKiBtYWNoaW5lIGRvZXNuJ3QgaGF2ZSB0aGUgYWN0dWFsIEkvTyByb3V0aW5lcywgdGhleSBhcmUgZG9uZSB0aHJvdWdoCisgKiB0aGlzIGludGVyZmFjZS4KKyAqLworc3RydWN0IHNpX3NtX2lvIHsKKwl1bnNpZ25lZCBjaGFyICgqaW5wdXRiKShjb25zdCBzdHJ1Y3Qgc2lfc21faW8gKmlvLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KTsKKwl2b2lkICgqb3V0cHV0YikoY29uc3Qgc3RydWN0IHNpX3NtX2lvICppbywKKwkJCXVuc2lnbmVkIGludCAgb2Zmc2V0LAorCQkJdW5zaWduZWQgY2hhciBiKTsKKworCS8qCisJICogR2VuZXJpYyBpbmZvIHVzZWQgYnkgdGhlIGFjdHVhbCBoYW5kbGluZyByb3V0aW5lcywgdGhlCisJICogc3RhdGUgbWFjaGluZSBzaG91bGRuJ3QgdG91Y2ggdGhlc2UuCisJICovCisJdm9pZCBfX2lvbWVtICphZGRyOworCXVuc2lnbmVkIGludCByZWdzcGFjaW5nOworCXVuc2lnbmVkIGludCByZWdzaXplOworCXVuc2lnbmVkIGludCByZWdzaGlmdDsKKwllbnVtIGlwbWlfYWRkcl9zcGFjZSBhZGRyX3NwYWNlOworCXVuc2lnbmVkIGxvbmcgYWRkcl9kYXRhOworCWVudW0gaXBtaV9hZGRyX3NyYyBhZGRyX3NvdXJjZTsgLyogQUNQSSwgUENJLCBTTUJJT1MsIGhhcmRjb2RlLCBldGMuICovCisJdm9pZCAoKmFkZHJfc291cmNlX2NsZWFudXApKHN0cnVjdCBzaV9zbV9pbyAqaW8pOworCXZvaWQgKmFkZHJfc291cmNlX2RhdGE7CisJdW5pb24gaXBtaV9zbWlfaW5mb191bmlvbiBhZGRyX2luZm87CisKKwlpbnQgKCppb19zZXR1cCkoc3RydWN0IHNpX3NtX2lvICppbmZvKTsKKwl2b2lkICgqaW9fY2xlYW51cCkoc3RydWN0IHNpX3NtX2lvICppbmZvKTsKKwl1bnNpZ25lZCBpbnQgaW9fc2l6ZTsKKworCWludCBpcnE7CisJaW50ICgqaXJxX3NldHVwKShzdHJ1Y3Qgc2lfc21faW8gKmlvKTsKKwl2b2lkICppcnFfaGFuZGxlcl9kYXRhOworCXZvaWQgKCppcnFfY2xlYW51cCkoc3RydWN0IHNpX3NtX2lvICppbyk7CisKKwl1OCBzbGF2ZV9hZGRyOworCWVudW0gc2lfdHlwZSBzaV90eXBlOworCXN0cnVjdCBkZXZpY2UgKmRldjsKK307CiAKIGludCBpcG1pX3NpX2FkZF9zbWkoc3RydWN0IHNpX3NtX2lvICppbyk7CiBpcnFyZXR1cm5fdCBpcG1pX3NpX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpOwpAQCAtNTAsMyArMTAxLDUgQEAgc3RhdGljIGlubGluZSB2b2lkIGlwbWlfc2lfcGFyaXNjX3NodXRkb3duKHZvaWQpIHsgfQogCiBpbnQgaXBtaV9zaV9wb3J0X3NldHVwKHN0cnVjdCBzaV9zbV9pbyAqaW8pOwogaW50IGlwbWlfc2lfbWVtX3NldHVwKHN0cnVjdCBzaV9zbV9pbyAqaW8pOworCisjZW5kaWYgLyogX19JUE1JX1NJX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9pbnRmLmMgYi9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX2ludGYuYwppbmRleCBkYTViNjcyLi42YjlhMDU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX2ludGYuYworKysgYi9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX2ludGYuYwpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lwbWkuaD4KICNpbmNsdWRlIDxsaW51eC9pcG1pX3NtaS5oPgogI2luY2x1ZGUgImlwbWlfc2kuaCIKKyNpbmNsdWRlICJpcG1pX3NpX3NtLmgiCiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KIApAQCAtMjIxLDYgKzIyMiw5IEBAIHN0cnVjdCBzbWlfaW5mbyB7CiAJICovCiAJYm9vbCBpcnFfZW5hYmxlX2Jyb2tlbjsKIAorCS8qIElzIHRoZSBkcml2ZXIgaW4gbWFpbnRlbmFuY2UgbW9kZT8gKi8KKwlib29sIGluX21haW50ZW5hbmNlX21vZGU7CisKIAkvKgogCSAqIERpZCB3ZSBnZXQgYW4gYXR0ZW50aW9uIHRoYXQgd2UgZGlkIG5vdCBoYW5kbGU/CiAJICovCkBAIC0yNjEsMTAgKzI2NSwxMCBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwX2lwbWlfc2kodm9pZCk7CiAjaWZkZWYgREVCVUdfVElNSU5HCiB2b2lkIGRlYnVnX3RpbWVzdGFtcChjaGFyICptc2cpCiB7Ci0Jc3RydWN0IHRpbWVzcGVjNjQgdDsKKwlzdHJ1Y3QgdGltZXNwZWMgdDsKIAotCWt0aW1lX2dldF90czY0KCZ0KTsKLQlwcl9kZWJ1ZygiKiolczogJWxsZC4lOS45bGRcbiIsIG1zZywgKGxvbmcgbG9uZykgdC50dl9zZWMsIHQudHZfbnNlYyk7CisJa3RpbWVfZ2V0X3RzKCZ0KTsKKwlwcl9kZWJ1ZygiKiolczogJWxkLiU5LjlsZFxuIiwgbXNnLCAobG9uZykgdC50dl9zZWMsIHQudHZfbnNlYyk7CiB9CiAjZWxzZQogI2RlZmluZSBkZWJ1Z190aW1lc3RhbXAoeCkKQEAgLTkzNSwxOCArOTM5LDE4IEBAIHN0YXRpYyB2b2lkIHNldF9ydW5fdG9fY29tcGxldGlvbih2b2lkICpzZW5kX2luZm8sIGJvb2wgaV9ydW5fdG9fY29tcGxldGlvbikKICAqIHdlIGFyZSBzcGlubmluZyBpbiBraXBtaWQgbG9va2luZyBmb3Igc29tZXRoaW5nIGFuZCBub3QgZGVsYXlpbmcKICAqIGJldHdlZW4gY2hlY2tzCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBpcG1pX3NpX3NldF9ub3RfYnVzeShzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCitzdGF0aWMgaW5saW5lIHZvaWQgaXBtaV9zaV9zZXRfbm90X2J1c3koc3RydWN0IHRpbWVzcGVjICp0cykKIHsKIAl0cy0+dHZfbnNlYyA9IC0xOwogfQotc3RhdGljIGlubGluZSBpbnQgaXBtaV9zaV9pc19idXN5KHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKK3N0YXRpYyBpbmxpbmUgaW50IGlwbWlfc2lfaXNfYnVzeShzdHJ1Y3QgdGltZXNwZWMgKnRzKQogewogCXJldHVybiB0cy0+dHZfbnNlYyAhPSAtMTsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgaXBtaV90aHJlYWRfYnVzeV93YWl0KGVudW0gc2lfc21fcmVzdWx0IHNtaV9yZXN1bHQsCi0JCQkJCWNvbnN0IHN0cnVjdCBzbWlfaW5mbyAqc21pX2luZm8sCi0JCQkJCXN0cnVjdCB0aW1lc3BlYzY0ICpidXN5X3VudGlsKQorc3RhdGljIGlubGluZSBib29sIGlwbWlfdGhyZWFkX2J1c3lfd2FpdChlbnVtIHNpX3NtX3Jlc3VsdCBzbWlfcmVzdWx0LAorCQkJCQkgY29uc3Qgc3RydWN0IHNtaV9pbmZvICpzbWlfaW5mbywKKwkJCQkJIHN0cnVjdCB0aW1lc3BlYyAqYnVzeV91bnRpbCkKIHsKIAl1bnNpZ25lZCBpbnQgbWF4X2J1c3lfdXMgPSAwOwogCkBAIC05NTUsMTggKzk1OSwxOCBAQCBzdGF0aWMgaW5saW5lIGludCBpcG1pX3RocmVhZF9idXN5X3dhaXQoZW51bSBzaV9zbV9yZXN1bHQgc21pX3Jlc3VsdCwKIAlpZiAobWF4X2J1c3lfdXMgPT0gMCB8fCBzbWlfcmVzdWx0ICE9IFNJX1NNX0NBTExfV0lUSF9ERUxBWSkKIAkJaXBtaV9zaV9zZXRfbm90X2J1c3koYnVzeV91bnRpbCk7CiAJZWxzZSBpZiAoIWlwbWlfc2lfaXNfYnVzeShidXN5X3VudGlsKSkgewotCQlrdGltZV9nZXRfdHM2NChidXN5X3VudGlsKTsKLQkJdGltZXNwZWM2NF9hZGRfbnMoYnVzeV91bnRpbCwgbWF4X2J1c3lfdXMqTlNFQ19QRVJfVVNFQyk7CisJCWt0aW1lX2dldF90cyhidXN5X3VudGlsKTsKKwkJdGltZXNwZWNfYWRkX25zKGJ1c3lfdW50aWwsIG1heF9idXN5X3VzICogTlNFQ19QRVJfVVNFQyk7CiAJfSBlbHNlIHsKLQkJc3RydWN0IHRpbWVzcGVjNjQgbm93OworCQlzdHJ1Y3QgdGltZXNwZWMgbm93OwogCi0JCWt0aW1lX2dldF90czY0KCZub3cpOwotCQlpZiAodW5saWtlbHkodGltZXNwZWM2NF9jb21wYXJlKCZub3csIGJ1c3lfdW50aWwpID4gMCkpIHsKKwkJa3RpbWVfZ2V0X3RzKCZub3cpOworCQlpZiAodW5saWtlbHkodGltZXNwZWNfY29tcGFyZSgmbm93LCBidXN5X3VudGlsKSA+IDApKSB7CiAJCQlpcG1pX3NpX3NldF9ub3RfYnVzeShidXN5X3VudGlsKTsKLQkJCXJldHVybiAwOworCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJfQotCXJldHVybiAxOworCXJldHVybiB0cnVlOwogfQogCiAKQEAgLTk4NCw3ICs5ODgsNyBAQCBzdGF0aWMgaW50IGlwbWlfdGhyZWFkKHZvaWQgKmRhdGEpCiAJc3RydWN0IHNtaV9pbmZvICpzbWlfaW5mbyA9IGRhdGE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAllbnVtIHNpX3NtX3Jlc3VsdCBzbWlfcmVzdWx0OwotCXN0cnVjdCB0aW1lc3BlYzY0IGJ1c3lfdW50aWw7CisJc3RydWN0IHRpbWVzcGVjIGJ1c3lfdW50aWwgPSB7IDAsIDAgfTsKIAogCWlwbWlfc2lfc2V0X25vdF9idXN5KCZidXN5X3VudGlsKTsKIAlzZXRfdXNlcl9uaWNlKGN1cnJlbnQsIE1BWF9OSUNFKTsKQEAgLTEwMDcsMTEgKzEwMTEsMjAgQEAgc3RhdGljIGludCBpcG1pX3RocmVhZCh2b2lkICpkYXRhKQogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCYoc21pX2luZm8tPnNpX2xvY2spLCBmbGFncyk7CiAJCWJ1c3lfd2FpdCA9IGlwbWlfdGhyZWFkX2J1c3lfd2FpdChzbWlfcmVzdWx0LCBzbWlfaW5mbywKIAkJCQkJCSAgJmJ1c3lfdW50aWwpOwotCQlpZiAoc21pX3Jlc3VsdCA9PSBTSV9TTV9DQUxMX1dJVEhPVVRfREVMQVkpCisJCWlmIChzbWlfcmVzdWx0ID09IFNJX1NNX0NBTExfV0lUSE9VVF9ERUxBWSkgewogCQkJOyAvKiBkbyBub3RoaW5nICovCi0JCWVsc2UgaWYgKHNtaV9yZXN1bHQgPT0gU0lfU01fQ0FMTF9XSVRIX0RFTEFZICYmIGJ1c3lfd2FpdCkKLQkJCXNjaGVkdWxlKCk7Ci0JCWVsc2UgaWYgKHNtaV9yZXN1bHQgPT0gU0lfU01fSURMRSkgeworCQl9IGVsc2UgaWYgKHNtaV9yZXN1bHQgPT0gU0lfU01fQ0FMTF9XSVRIX0RFTEFZICYmIGJ1c3lfd2FpdCkgeworCQkJLyoKKwkJCSAqIEluIG1haW50ZW5hbmNlIG1vZGUgd2UgcnVuIGFzIGZhc3QgYXMKKwkJCSAqIHBvc3NpYmxlIHRvIGFsbG93IGZpcm13YXJlIHVwZGF0ZXMgdG8KKwkJCSAqIGNvbXBsZXRlIGFzIGZhc3QgYXMgcG9zc2libGUsIGJ1dCBub3JtYWxseQorCQkJICogZG9uJ3QgYmFuZyBvbiB0aGUgc2NoZWR1bGVyLgorCQkJICovCisJCQlpZiAoc21pX2luZm8tPmluX21haW50ZW5hbmNlX21vZGUpCisJCQkJc2NoZWR1bGUoKTsKKwkJCWVsc2UKKwkJCQl1c2xlZXBfcmFuZ2UoMTAwLCAyMDApOworCQl9IGVsc2UgaWYgKHNtaV9yZXN1bHQgPT0gU0lfU01fSURMRSkgewogCQkJaWYgKGF0b21pY19yZWFkKCZzbWlfaW5mby0+bmVlZF93YXRjaCkpIHsKIAkJCQlzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUoMTAwKTsKIAkJCX0gZWxzZSB7CkBAIC0xMDE5LDggKzEwMzIsOSBAQCBzdGF0aWMgaW50IGlwbWlfdGhyZWFkKHZvaWQgKmRhdGEpCiAJCQkJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOwogCQkJCXNjaGVkdWxlKCk7CiAJCQl9Ci0JCX0gZWxzZQorCQl9IGVsc2UgewogCQkJc2NoZWR1bGVfdGltZW91dF9pbnRlcnJ1cHRpYmxlKDEpOworCQl9CiAJfQogCXJldHVybiAwOwogfQpAQCAtMTE5OCw2ICsxMjEyLDcgQEAgc3RhdGljIHZvaWQgc2V0X21haW50ZW5hbmNlX21vZGUodm9pZCAqc2VuZF9pbmZvLCBib29sIGVuYWJsZSkKIAogCWlmICghZW5hYmxlKQogCQlhdG9taWNfc2V0KCZzbWlfaW5mby0+cmVxX2V2ZW50cywgMCk7CisJc21pX2luZm8tPmluX21haW50ZW5hbmNlX21vZGUgPSBlbmFibGU7CiB9CiAKIHN0YXRpYyB2b2lkIHNodXRkb3duX3NtaSh2b2lkICpzZW5kX2luZm8pOwpAQCAtMTI2NiwxMiArMTI4MSwxMiBAQCBpbnQgaXBtaV9zdGRfaXJxX3NldHVwKHN0cnVjdCBzaV9zbV9pbyAqaW8pCiAJcnYgPSByZXF1ZXN0X2lycShpby0+aXJxLAogCQkJIGlwbWlfc2lfaXJxX2hhbmRsZXIsCiAJCQkgSVJRRl9TSEFSRUQsCi0JCQkgREVWSUNFX05BTUUsCisJCQkgU0lfREVWSUNFX05BTUUsCiAJCQkgaW8tPmlycV9oYW5kbGVyX2RhdGEpOwogCWlmIChydikgewogCQlkZXZfd2Fybihpby0+ZGV2LCAiJXMgdW5hYmxlIHRvIGNsYWltIGludGVycnVwdCAlZCwiCiAJCQkgIiBydW5uaW5nIHBvbGxlZFxuIiwKLQkJCSBERVZJQ0VfTkFNRSwgaW8tPmlycSk7CisJCQkgU0lfREVWSUNFX05BTUUsIGlvLT5pcnEpOwogCQlpby0+aXJxID0gMDsKIAl9IGVsc2UgewogCQlpby0+aXJxX2NsZWFudXAgPSBzdGRfaXJxX2NsZWFudXA7CkBAIC0xNTg2LDM3ICsxNjAxLDM3IEBAIHN0YXRpYyBpbnQgdHJ5X2VuYWJsZV9ldmVudF9idWZmZXIoc3RydWN0IHNtaV9pbmZvICpzbWlfaW5mbykKIH0KIAogI2RlZmluZSBJUE1JX1NJX0FUVFIobmFtZSkgXAotc3RhdGljIHNzaXplX3QgaXBtaV8jI25hbWUjI19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwJCQlcCi0JCQkJICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwJXAotCQkJCSAgY2hhciAqYnVmKQkJCQlcCitzdGF0aWMgc3NpemVfdCBuYW1lIyNfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCQkJXAorCQkJICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCQlcCisJCQkgICBjaGFyICpidWYpCQkJCQlcCiB7CQkJCQkJCQkJXAogCXN0cnVjdCBzbWlfaW5mbyAqc21pX2luZm8gPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsJCVwKIAkJCQkJCQkJCVwKIAlyZXR1cm4gc25wcmludGYoYnVmLCAxMCwgIiV1XG4iLCBzbWlfZ2V0X3N0YXQoc21pX2luZm8sIG5hbWUpKTsJXAogfQkJCQkJCQkJCVwKLXN0YXRpYyBERVZJQ0VfQVRUUihuYW1lLCBTX0lSVUdPLCBpcG1pXyMjbmFtZSMjX3Nob3csIE5VTEwpCitzdGF0aWMgREVWSUNFX0FUVFIobmFtZSwgMDQ0NCwgbmFtZSMjX3Nob3csIE5VTEwpCiAKLXN0YXRpYyBzc2l6ZV90IGlwbWlfdHlwZV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCSAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAotCQkJICAgICAgY2hhciAqYnVmKQorc3RhdGljIHNzaXplX3QgdHlwZV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSBjaGFyICpidWYpCiB7CiAJc3RydWN0IHNtaV9pbmZvICpzbWlfaW5mbyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCiAJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgMTAsICIlc1xuIiwgc2lfdG9fc3RyW3NtaV9pbmZvLT5pby5zaV90eXBlXSk7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIodHlwZSwgU19JUlVHTywgaXBtaV90eXBlX3Nob3csIE5VTEwpOworc3RhdGljIERFVklDRV9BVFRSKHR5cGUsIDA0NDQsIHR5cGVfc2hvdywgTlVMTCk7CiAKLXN0YXRpYyBzc2l6ZV90IGlwbWlfaW50ZXJydXB0c19lbmFibGVkX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAotCQkJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCi0JCQkJCSAgICBjaGFyICpidWYpCitzdGF0aWMgc3NpemVfdCBpbnRlcnJ1cHRzX2VuYWJsZWRfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCSAgICAgICBjaGFyICpidWYpCiB7CiAJc3RydWN0IHNtaV9pbmZvICpzbWlfaW5mbyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCWludCBlbmFibGVkID0gc21pX2luZm8tPmlvLmlycSAmJiAhc21pX2luZm8tPmludGVycnVwdF9kaXNhYmxlZDsKIAogCXJldHVybiBzbnByaW50ZihidWYsIDEwLCAiJWRcbiIsIGVuYWJsZWQpOwogfQotc3RhdGljIERFVklDRV9BVFRSKGludGVycnVwdHNfZW5hYmxlZCwgU19JUlVHTywKLQkJICAgaXBtaV9pbnRlcnJ1cHRzX2VuYWJsZWRfc2hvdywgTlVMTCk7CitzdGF0aWMgREVWSUNFX0FUVFIoaW50ZXJydXB0c19lbmFibGVkLCAwNDQ0LAorCQkgICBpbnRlcnJ1cHRzX2VuYWJsZWRfc2hvdywgTlVMTCk7CiAKIElQTUlfU0lfQVRUUihzaG9ydF90aW1lb3V0cyk7CiBJUE1JX1NJX0FUVFIobG9uZ190aW1lb3V0cyk7CkBAIC0xNjMwLDkgKzE2NDUsOSBAQCBJUE1JX1NJX0FUVFIoZXZlbnRzKTsKIElQTUlfU0lfQVRUUih3YXRjaGRvZ19wcmV0aW1lb3V0cyk7CiBJUE1JX1NJX0FUVFIoaW5jb21pbmdfbWVzc2FnZXMpOwogCi1zdGF0aWMgc3NpemVfdCBpcG1pX3BhcmFtc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKLQkJCQljaGFyICpidWYpCitzdGF0aWMgc3NpemVfdCBwYXJhbXNfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSAgIGNoYXIgKmJ1ZikKIHsKIAlzdHJ1Y3Qgc21pX2luZm8gKnNtaV9pbmZvID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKQEAgLTE2NDcsNyArMTY2Miw3IEBAIHN0YXRpYyBzc2l6ZV90IGlwbWlfcGFyYW1zX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAogCQkJc21pX2luZm8tPmlvLmlycSwKIAkJCXNtaV9pbmZvLT5pby5zbGF2ZV9hZGRyKTsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihwYXJhbXMsIFNfSVJVR08sIGlwbWlfcGFyYW1zX3Nob3csIE5VTEwpOworc3RhdGljIERFVklDRV9BVFRSKHBhcmFtcywgMDQ0NCwgcGFyYW1zX3Nob3csIE5VTEwpOwogCiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqaXBtaV9zaV9kZXZfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfdHlwZS5hdHRyLApAQCAtMTgyOCw4ICsxODQzLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHN0b3BfdGltZXJfYW5kX3RocmVhZChzdHJ1Y3Qgc21pX2luZm8gKnNtaV9pbmZvKQogCX0KIAogCXNtaV9pbmZvLT50aW1lcl9jYW5fc3RhcnQgPSBmYWxzZTsKLQlpZiAoc21pX2luZm8tPnRpbWVyX3J1bm5pbmcpCi0JCWRlbF90aW1lcl9zeW5jKCZzbWlfaW5mby0+c2lfdGltZXIpOworCWRlbF90aW1lcl9zeW5jKCZzbWlfaW5mby0+c2lfdGltZXIpOwogfQogCiBzdGF0aWMgc3RydWN0IHNtaV9pbmZvICpmaW5kX2R1cF9zaShzdHJ1Y3Qgc21pX2luZm8gKmluZm8pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX21lbV9pby5jIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9tZW1faW8uYwppbmRleCA3NTU4MzYxLi44NmI5MmU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX21lbV9pby5jCisrKyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfbWVtX2lvLmMKQEAgLTExOCw3ICsxMTgsNyBAQCBpbnQgaXBtaV9zaV9tZW1fc2V0dXAoc3RydWN0IHNpX3NtX2lvICppbykKIAkgKi8KIAlmb3IgKGlkeCA9IDA7IGlkeCA8IGlvLT5pb19zaXplOyBpZHgrKykgewogCQlpZiAocmVxdWVzdF9tZW1fcmVnaW9uKGFkZHIgKyBpZHggKiBpby0+cmVnc3BhY2luZywKLQkJCQkgICAgICAgaW8tPnJlZ3NpemUsIERFVklDRV9OQU1FKSA9PSBOVUxMKSB7CisJCQkJICAgICAgIGlvLT5yZWdzaXplLCBTSV9ERVZJQ0VfTkFNRSkgPT0gTlVMTCkgewogCQkJLyogVW5kbyBhbGxvY2F0aW9ucyAqLwogCQkJbWVtX3JlZ2lvbl9jbGVhbnVwKGlvLCBpZHgpOwogCQkJcmV0dXJuIC1FSU87CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX3BjaS5jIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9wY2kuYwppbmRleCBjZTkzZmM3Li45NWJiY2ZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX3BjaS5jCisrKyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfcGNpLmMKQEAgLTE1MCw3ICsxNTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaXBtaV9wY2lfZGV2aWNlc1tdID0gewogTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGlwbWlfcGNpX2RldmljZXMpOwogCiBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaXBtaV9wY2lfZHJpdmVyID0gewotCS5uYW1lID0gICAgICAgICBERVZJQ0VfTkFNRSwKKwkubmFtZSA9ICAgICAgICAgU0lfREVWSUNFX05BTUUsCiAJLmlkX3RhYmxlID0gICAgIGlwbWlfcGNpX2RldmljZXMsCiAJLnByb2JlID0gICAgICAgIGlwbWlfcGNpX3Byb2JlLAogCS5yZW1vdmUgPSAgICAgICBpcG1pX3BjaV9yZW1vdmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX3BsYXRmb3JtLmMgYi9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX3BsYXRmb3JtLmMKaW5kZXggMjJmNmM5Yi4uYzc4MTI3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9wbGF0Zm9ybS5jCisrKyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfcGxhdGZvcm0uYwpAQCAtNDU3LDcgKzQ1Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIHNpX3BsYXRfaWRzW10gPSB7CiAKIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgaXBtaV9wbGF0Zm9ybV9kcml2ZXIgPSB7CiAJLmRyaXZlciA9IHsKLQkJLm5hbWUgPSBERVZJQ0VfTkFNRSwKKwkJLm5hbWUgPSBTSV9ERVZJQ0VfTkFNRSwKIAkJLm9mX21hdGNoX3RhYmxlID0gb2ZfaXBtaV9tYXRjaCwKIAkJLmFjcGlfbWF0Y2hfdGFibGUgPSBBQ1BJX1BUUihhY3BpX2lwbWlfbWF0Y2gpLAogCX0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX3BvcnRfaW8uYyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfcG9ydF9pby5jCmluZGV4IDAzOTI0YzMuLjdkNjZmNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfcG9ydF9pby5jCisrKyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfcG9ydF9pby5jCkBAIC05OSw3ICs5OSw3IEBAIGludCBpcG1pX3NpX3BvcnRfc2V0dXAoc3RydWN0IHNpX3NtX2lvICppbykKIAkgKi8KIAlmb3IgKGlkeCA9IDA7IGlkeCA8IGlvLT5pb19zaXplOyBpZHgrKykgewogCQlpZiAocmVxdWVzdF9yZWdpb24oYWRkciArIGlkeCAqIGlvLT5yZWdzcGFjaW5nLAotCQkJCSAgIGlvLT5yZWdzaXplLCBERVZJQ0VfTkFNRSkgPT0gTlVMTCkgeworCQkJCSAgIGlvLT5yZWdzaXplLCBTSV9ERVZJQ0VfTkFNRSkgPT0gTlVMTCkgewogCQkJLyogVW5kbyBhbGxvY2F0aW9ucyAqLwogCQkJd2hpbGUgKGlkeC0tKQogCQkJCXJlbGVhc2VfcmVnaW9uKGFkZHIgKyBpZHggKiBpby0+cmVnc3BhY2luZywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfc20uaCBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfc20uaAppbmRleCA0OTlkYjgyLi5jM2NkYmNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX3NtLmgKKysrIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9zbS5oCkBAIC0xNCw3ICsxNCwxMCBAQAogICogQ29weXJpZ2h0IDIwMDIgTW9udGFWaXN0YSBTb2Z0d2FyZSBJbmMuCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2lwbWkuaD4KKyNpZm5kZWYgX19JUE1JX1NJX1NNX0hfXworI2RlZmluZSBfX0lQTUlfU0lfU01fSF9fCisKKyNpbmNsdWRlICJpcG1pX3NpLmgiCiAKIC8qCiAgKiBUaGlzIGlzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmVzIHRoZW1zZWx2ZXMsIGl0IGlzIGFuIG9wYXF1ZQpAQCAtMjIsNTQgKzI1LDYgQEAKICAqLwogc3RydWN0IHNpX3NtX2RhdGE7CiAKLWVudW0gc2lfdHlwZSB7Ci0JU0lfVFlQRV9JTlZBTElELCBTSV9LQ1MsIFNJX1NNSUMsIFNJX0JUCi19OwotCi1lbnVtIGlwbWlfYWRkcl9zcGFjZSB7Ci0JSVBNSV9JT19BRERSX1NQQUNFLCBJUE1JX01FTV9BRERSX1NQQUNFCi19OwotCi0vKgotICogVGhlIHN0cnVjdHVyZSBmb3IgZG9pbmcgSS9PIGluIHRoZSBzdGF0ZSBtYWNoaW5lLiAgVGhlIHN0YXRlCi0gKiBtYWNoaW5lIGRvZXNuJ3QgaGF2ZSB0aGUgYWN0dWFsIEkvTyByb3V0aW5lcywgdGhleSBhcmUgZG9uZSB0aHJvdWdoCi0gKiB0aGlzIGludGVyZmFjZS4KLSAqLwotc3RydWN0IHNpX3NtX2lvIHsKLQl1bnNpZ25lZCBjaGFyICgqaW5wdXRiKShjb25zdCBzdHJ1Y3Qgc2lfc21faW8gKmlvLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KTsKLQl2b2lkICgqb3V0cHV0YikoY29uc3Qgc3RydWN0IHNpX3NtX2lvICppbywKLQkJCXVuc2lnbmVkIGludCAgb2Zmc2V0LAotCQkJdW5zaWduZWQgY2hhciBiKTsKLQotCS8qCi0JICogR2VuZXJpYyBpbmZvIHVzZWQgYnkgdGhlIGFjdHVhbCBoYW5kbGluZyByb3V0aW5lcywgdGhlCi0JICogc3RhdGUgbWFjaGluZSBzaG91bGRuJ3QgdG91Y2ggdGhlc2UuCi0JICovCi0Jdm9pZCBfX2lvbWVtICphZGRyOwotCXVuc2lnbmVkIGludCByZWdzcGFjaW5nOwotCXVuc2lnbmVkIGludCByZWdzaXplOwotCXVuc2lnbmVkIGludCByZWdzaGlmdDsKLQllbnVtIGlwbWlfYWRkcl9zcGFjZSBhZGRyX3NwYWNlOwotCXVuc2lnbmVkIGxvbmcgYWRkcl9kYXRhOwotCWVudW0gaXBtaV9hZGRyX3NyYyBhZGRyX3NvdXJjZTsgLyogQUNQSSwgUENJLCBTTUJJT1MsIGhhcmRjb2RlLCBldGMuICovCi0Jdm9pZCAoKmFkZHJfc291cmNlX2NsZWFudXApKHN0cnVjdCBzaV9zbV9pbyAqaW8pOwotCXZvaWQgKmFkZHJfc291cmNlX2RhdGE7Ci0JdW5pb24gaXBtaV9zbWlfaW5mb191bmlvbiBhZGRyX2luZm87Ci0KLQlpbnQgKCppb19zZXR1cCkoc3RydWN0IHNpX3NtX2lvICppbmZvKTsKLQl2b2lkICgqaW9fY2xlYW51cCkoc3RydWN0IHNpX3NtX2lvICppbmZvKTsKLQl1bnNpZ25lZCBpbnQgaW9fc2l6ZTsKLQotCWludCBpcnE7Ci0JaW50ICgqaXJxX3NldHVwKShzdHJ1Y3Qgc2lfc21faW8gKmlvKTsKLQl2b2lkICppcnFfaGFuZGxlcl9kYXRhOwotCXZvaWQgKCppcnFfY2xlYW51cCkoc3RydWN0IHNpX3NtX2lvICppbyk7Ci0KLQl1OCBzbGF2ZV9hZGRyOwotCWVudW0gc2lfdHlwZSBzaV90eXBlOwotCXN0cnVjdCBkZXZpY2UgKmRldjsKLX07Ci0KIC8qIFJlc3VsdHMgb2YgU01JIGV2ZW50cy4gKi8KIGVudW0gc2lfc21fcmVzdWx0IHsKIAlTSV9TTV9DQUxMX1dJVEhPVVRfREVMQVksIC8qIENhbGwgdGhlIGRyaXZlciBhZ2FpbiBpbW1lZGlhdGVseSAqLwpAQCAtMTQ2LDMgKzEwMSw0IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc2lfc21faGFuZGxlcnMga2NzX3NtaV9oYW5kbGVyczsKIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc2lfc21faGFuZGxlcnMgc21pY19zbWlfaGFuZGxlcnM7CiBleHRlcm4gY29uc3Qgc3RydWN0IHNpX3NtX2hhbmRsZXJzIGJ0X3NtaV9oYW5kbGVyczsKIAorI2VuZGlmIC8qIF9fSVBNSV9TSV9TTV9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc3NpZi5jIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zc2lmLmMKaW5kZXggMzA1ZmE1MDUuLjIyYzZhMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc3NpZi5jCisrKyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc3NpZi5jCkBAIC01Miw3ICs1Miw2IEBACiAjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZTY0Lmg+Ci0jaW5jbHVkZSAiaXBtaV9zaV9zbS5oIgogI2luY2x1ZGUgImlwbWlfZG1pLmgiCiAKICNkZWZpbmUgREVWSUNFX05BTUUgImlwbWlfc3NpZiIKQEAgLTE0MjgsNiArMTQyNywxMCBAQCBzdGF0aWMgc3RydWN0IHNzaWZfYWRkcl9pbmZvICpzc2lmX2luZm9fZmluZCh1bnNpZ25lZCBzaG9ydCBhZGRyLAogcmVzdGFydDoKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGluZm8sICZzc2lmX2luZm9zLCBsaW5rKSB7CiAJCWlmIChpbmZvLT5iaW5mby5hZGRyID09IGFkZHIpIHsKKwkJCWlmIChpbmZvLT5hZGRyX3NyYyA9PSBTSV9TTUJJT1MpCisJCQkJaW5mby0+YWRhcHRlcl9uYW1lID0ga3N0cmR1cChhZGFwdGVyX25hbWUsCisJCQkJCQkJICAgICBHRlBfS0VSTkVMKTsKKwogCQkJaWYgKGluZm8tPmFkYXB0ZXJfbmFtZSB8fCBhZGFwdGVyX25hbWUpIHsKIAkJCQlpZiAoIWluZm8tPmFkYXB0ZXJfbmFtZSAhPSAhYWRhcHRlcl9uYW1lKSB7CiAJCQkJCS8qIE9uZSBpcyBOVUxMIGFuZCBvbmUgaXMgbm90ICovCkBAIC0xNjAzLDYgKzE2MDYsNjAgQEAgc3RhdGljIHZvaWQgdGVzdF9tdWx0aXBhcnRfbWVzc2FnZXMoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKICNkZWZpbmUgR0xPQkFMX0VOQUJMRVNfTUFTSyAoSVBNSV9CTUNfRVZUX01TR19CVUZGIHwgSVBNSV9CTUNfUkNWX01TR19JTlRSIHwgXAogCQkJICAgICBJUE1JX0JNQ19FVlRfTVNHX0lOVFIpCiAKK3N0YXRpYyB2b2lkIHNzaWZfcmVtb3ZlX2R1cChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQoreworCXN0cnVjdCBzc2lmX2luZm8gKnNzaWZfaW5mbyA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOworCisJaXBtaV91bnJlZ2lzdGVyX3NtaShzc2lmX2luZm8tPmludGYpOworCWtmcmVlKHNzaWZfaW5mbyk7Cit9CisKK3N0YXRpYyBpbnQgc3NpZl9hZGRfaW5mb3Moc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3Qgc3NpZl9hZGRyX2luZm8gKmluZm87CisKKwlpbmZvID0ga3phbGxvYyhzaXplb2YoKmluZm8pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWluZm8pCisJCXJldHVybiAtRU5PTUVNOworCWluZm8tPmFkZHJfc3JjID0gU0lfQUNQSTsKKwlpbmZvLT5jbGllbnQgPSBjbGllbnQ7CisJaW5mby0+YWRhcHRlcl9uYW1lID0ga3N0cmR1cChjbGllbnQtPmFkYXB0ZXItPm5hbWUsIEdGUF9LRVJORUwpOworCWluZm8tPmJpbmZvLmFkZHIgPSBjbGllbnQtPmFkZHI7CisJbGlzdF9hZGRfdGFpbCgmaW5mby0+bGluaywgJnNzaWZfaW5mb3MpOworCXJldHVybiAwOworfQorCisvKgorICogUHJlZmVyIEFDUEkgb3ZlciBTTUJJT1MsIGlmIGJvdGggYXJlIGF2YWlsYWJsZS4KKyAqIFNvIGlmIHdlIGdldCBhbiBBQ1BJIGludGVyZmFjZSBhbmQgaGF2ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgYSBTTUJJT1MKKyAqIGludGVyZmFjZSBhdCB0aGUgc2FtZSBhZGRyZXNzLCByZW1vdmUgdGhlIFNNQklPUyBhbmQgYWRkIHRoZSBBQ1BJIG9uZS4KKyAqLworc3RhdGljIGludCBzc2lmX2NoZWNrX2FuZF9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKKwkJCSAgICAgIHN0cnVjdCBzc2lmX2luZm8gKnNzaWZfaW5mbykKK3sKKwlzdHJ1Y3Qgc3NpZl9hZGRyX2luZm8gKmluZm87CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGluZm8sICZzc2lmX2luZm9zLCBsaW5rKSB7CisJCWlmICghaW5mby0+Y2xpZW50KQorCQkJcmV0dXJuIDA7CisJCWlmICghc3RyY21wKGluZm8tPmFkYXB0ZXJfbmFtZSwgY2xpZW50LT5hZGFwdGVyLT5uYW1lKSAmJgorCQkgICAgaW5mby0+YmluZm8uYWRkciA9PSBjbGllbnQtPmFkZHIpIHsKKwkJCWlmIChpbmZvLT5hZGRyX3NyYyA9PSBTSV9BQ1BJKQorCQkJCXJldHVybiAtRUVYSVNUOworCisJCQlpZiAoc3NpZl9pbmZvLT5hZGRyX3NvdXJjZSA9PSBTSV9BQ1BJICYmCisJCQkgICAgaW5mby0+YWRkcl9zcmMgPT0gU0lfU01CSU9TKSB7CisJCQkJZGV2X2luZm8oJmNsaWVudC0+ZGV2LAorCQkJCQkgIlJlbW92aW5nICVzLXNwZWNpZmllZCBTU0lGIGludGVyZmFjZSBpbiBmYXZvciBvZiBBQ1BJXG4iLAorCQkJCQkgaXBtaV9hZGRyX3NyY190b19zdHIoaW5mby0+YWRkcl9zcmMpKTsKKwkJCQlzc2lmX3JlbW92ZV9kdXAoaW5mby0+Y2xpZW50KTsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBzc2lmX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKIHsKIAl1bnNpZ25lZCBjaGFyICAgICBtc2dbM107CkBAIC0xNjE0LDEzICsxNjcxLDE3IEBAIHN0YXRpYyBpbnQgc3NpZl9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCiAJdTgJCSAgc2xhdmVfYWRkciA9IDA7CiAJc3RydWN0IHNzaWZfYWRkcl9pbmZvICphZGRyX2luZm8gPSBOVUxMOwogCisJbXV0ZXhfbG9jaygmc3NpZl9pbmZvc19tdXRleCk7CiAJcmVzcCA9IGttYWxsb2MoSVBNSV9NQVhfTVNHX0xFTkdUSCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFyZXNwKQorCWlmICghcmVzcCkgeworCQltdXRleF91bmxvY2soJnNzaWZfaW5mb3NfbXV0ZXgpOwogCQlyZXR1cm4gLUVOT01FTTsKKwl9CiAKIAlzc2lmX2luZm8gPSBremFsbG9jKHNpemVvZigqc3NpZl9pbmZvKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzc2lmX2luZm8pIHsKIAkJa2ZyZWUocmVzcCk7CisJCW11dGV4X3VubG9jaygmc3NpZl9pbmZvc19tdXRleCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIApAQCAtMTYzOSw2ICsxNzAwLDE5IEBAIHN0YXRpYyBpbnQgc3NpZl9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCiAJCX0KIAl9CiAKKwlydiA9IHNzaWZfY2hlY2tfYW5kX3JlbW92ZShjbGllbnQsIHNzaWZfaW5mbyk7CisJLyogSWYgcnYgaXMgMCBhbmQgYWRkciBzb3VyY2UgaXMgbm90IFNJX0FDUEksIGNvbnRpbnVlIHByb2JpbmcgKi8KKwlpZiAoIXJ2ICYmIHNzaWZfaW5mby0+YWRkcl9zb3VyY2UgPT0gU0lfQUNQSSkgeworCQlydiA9IHNzaWZfYWRkX2luZm9zKGNsaWVudCk7CisJCWlmIChydikgeworCQkJZGV2X2VycigmY2xpZW50LT5kZXYsICJPdXQgb2YgbWVtb3J5ISwgZXhpdGluZyAuLlxuIik7CisJCQlnb3RvIG91dDsKKwkJfQorCX0gZWxzZSBpZiAocnYpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJOb3QgcHJvYmluZywgSW50ZXJmYWNlIGFscmVhZHkgcHJlc2VudFxuIik7CisJCWdvdG8gb3V0OworCX0KKwogCXNsYXZlX2FkZHIgPSBmaW5kX3NsYXZlX2FkZHJlc3MoY2xpZW50LCBzbGF2ZV9hZGRyKTsKIAogCWRldl9pbmZvKCZjbGllbnQtPmRldiwKQEAgLTE4NTEsNiArMTkyNSw3IEBAIHN0YXRpYyBpbnQgc3NpZl9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCiAJCWtmcmVlKHNzaWZfaW5mbyk7CiAJfQogCWtmcmVlKHJlc3ApOworCW11dGV4X3VubG9jaygmc3NpZl9pbmZvc19tdXRleCk7CiAJcmV0dXJuIHJ2OwogCiBvdXRfcmVtb3ZlX2F0dHI6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbWVtLmMgYi9kcml2ZXJzL2NoYXIvbWVtLmMKaW5kZXggOWViNTY0Yy4uNDNkZDA4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL21lbS5jCisrKyBiL2RyaXZlcnMvY2hhci9tZW0uYwpAQCAtMjksOCArMjksOCBAQAogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvdWlvLmg+Ci0KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KIAogI2lmZGVmIENPTkZJR19JQTY0CiAjIGluY2x1ZGUgPGxpbnV4L2VmaS5oPgpAQCAtODA3LDcgKzgwNywxMCBAQCBzdGF0aWMgbG9mZl90IG1lbW9yeV9sc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWcpCiAKIHN0YXRpYyBpbnQgb3Blbl9wb3J0KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewotCXJldHVybiBjYXBhYmxlKENBUF9TWVNfUkFXSU8pID8gMCA6IC1FUEVSTTsKKwlpZiAoIWNhcGFibGUoQ0FQX1NZU19SQVdJTykpCisJCXJldHVybiAtRVBFUk07CisKKwlyZXR1cm4gc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fREVWX01FTSk7CiB9CiAKICNkZWZpbmUgemVyb19sc2VlawludWxsX2xzZWVrCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdHBtL3RwbS1pbnRlcmZhY2UuYyBiL2RyaXZlcnMvY2hhci90cG0vdHBtLWludGVyZmFjZS5jCmluZGV4IDFiNGY5NWMuLmQ3YTM4ODggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90cG0vdHBtLWludGVyZmFjZS5jCisrKyBiL2RyaXZlcnMvY2hhci90cG0vdHBtLWludGVyZmFjZS5jCkBAIC0zMjAsMTggKzMyMCwyMiBAQCBpbnQgdHBtX3Bjcl9leHRlbmQoc3RydWN0IHRwbV9jaGlwICpjaGlwLCB1MzIgcGNyX2lkeCwKIAlpZiAoIWNoaXApCiAJCXJldHVybiAtRU5PREVWOwogCi0JZm9yIChpID0gMDsgaSA8IGNoaXAtPm5yX2FsbG9jYXRlZF9iYW5rczsgaSsrKQotCQlpZiAoZGlnZXN0c1tpXS5hbGdfaWQgIT0gY2hpcC0+YWxsb2NhdGVkX2JhbmtzW2ldLmFsZ19pZCkKLQkJCXJldHVybiAtRUlOVkFMOworCWZvciAoaSA9IDA7IGkgPCBjaGlwLT5ucl9hbGxvY2F0ZWRfYmFua3M7IGkrKykgeworCQlpZiAoZGlnZXN0c1tpXS5hbGdfaWQgIT0gY2hpcC0+YWxsb2NhdGVkX2JhbmtzW2ldLmFsZ19pZCkgeworCQkJcmMgPSBFSU5WQUw7CisJCQlnb3RvIG91dDsKKwkJfQorCX0KIAogCWlmIChjaGlwLT5mbGFncyAmIFRQTV9DSElQX0ZMQUdfVFBNMikgewogCQlyYyA9IHRwbTJfcGNyX2V4dGVuZChjaGlwLCBwY3JfaWR4LCBkaWdlc3RzKTsKLQkJdHBtX3B1dF9vcHMoY2hpcCk7Ci0JCXJldHVybiByYzsKKwkJZ290byBvdXQ7CiAJfQogCiAJcmMgPSB0cG0xX3Bjcl9leHRlbmQoY2hpcCwgcGNyX2lkeCwgZGlnZXN0c1swXS5kaWdlc3QsCiAJCQkgICAgICJhdHRlbXB0aW5nIGV4dGVuZCBhIFBDUiB2YWx1ZSIpOworCitvdXQ6CiAJdHBtX3B1dF9vcHMoY2hpcCk7CiAJcmV0dXJuIHJjOwogfQpAQCAtMzU0LDE0ICszNTgsOSBAQCBpbnQgdHBtX3NlbmQoc3RydWN0IHRwbV9jaGlwICpjaGlwLCB2b2lkICpjbWQsIHNpemVfdCBidWZsZW4pCiAJaWYgKCFjaGlwKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCXJjID0gdHBtX2J1Zl9pbml0KCZidWYsIDAsIDApOwotCWlmIChyYykKLQkJZ290byBvdXQ7Ci0KLQltZW1jcHkoYnVmLmRhdGEsIGNtZCwgYnVmbGVuKTsKKwlidWYuZGF0YSA9IGNtZDsKIAlyYyA9IHRwbV90cmFuc21pdF9jbWQoY2hpcCwgJmJ1ZiwgMCwgImF0dGVtcHRpbmcgdG8gYSBzZW5kIGEgY29tbWFuZCIpOwotCXRwbV9idWZfZGVzdHJveSgmYnVmKTsKLW91dDoKKwogCXRwbV9wdXRfb3BzKGNoaXApOwogCXJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci94aWxseWJ1cy94aWxseWJ1c19wY2llLmMgYi9kcml2ZXJzL2NoYXIveGlsbHlidXMveGlsbHlidXNfcGNpZS5jCmluZGV4IDAyYzE1OTUuLjE4YjBjMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci94aWxseWJ1cy94aWxseWJ1c19wY2llLmMKKysrIGIvZHJpdmVycy9jaGFyL3hpbGx5YnVzL3hpbGx5YnVzX3BjaWUuYwpAQCAtOSw3ICs5LDYgQEAKIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgotI2luY2x1ZGUgPGxpbnV4L3BjaS1hc3BtLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgInhpbGx5YnVzLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL0tjb25maWcgYi9kcml2ZXJzL2Nsay9LY29uZmlnCmluZGV4IDgwMWZhMWMuLmM0NDI0N2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL0tjb25maWcKKysrIGIvZHJpdmVycy9jbGsvS2NvbmZpZwpAQCAtMTE2LDcgKzExNiw2IEBACiAJZGVwZW5kcyBvbiBPRgogCXNlbGVjdCBSRUdNQVBfSTJDCiAJaGVscAotCS0tLWhlbHAtLS0KIAkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBTaWxpY29uIExhYnMgNTE0IHByb2dyYW1tYWJsZSBjbG9jawogCSAgZ2VuZXJhdG9yLgogCkBAIC0xMjUsNyArMTI0LDYgQEAKIAlkZXBlbmRzIG9uIEkyQwogCXNlbGVjdCBSRUdNQVBfSTJDCiAJaGVscAotCS0tLWhlbHAtLS0KIAkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBTaWxpY29uIExhYnMgNTQ0IHByb2dyYW1tYWJsZSBjbG9jawogCSAgZ2VuZXJhdG9yLgogCkBAIC0xMzUsNyArMTMzLDYgQEAKIAlkZXBlbmRzIG9uIE9GCiAJc2VsZWN0IFJFR01BUF9JMkMKIAloZWxwCi0JLS0taGVscC0tLQogCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgU2lsaWNvbiBMYWJzIDU3MC81NzEvNTk4LzU5OSBwcm9ncmFtbWFibGUKIAkgIGNsb2NrIGdlbmVyYXRvcnMuCiAKQEAgLTE1Myw3ICsxNTAsNiBAQAogCWRlcGVuZHMgb24gT0YKIAlzZWxlY3QgUkVHTUFQX0kyQwogCWhlbHAKLQktLS1oZWxwLS0tCiAJICBUaGlzIGRyaXZlciBzdXBwb3J0cyB0aGUgVEkgQ0RDRTkxMy85MjUvOTM3Lzk0OSBwcm9ncmFtbWFibGUgY2xvY2sKIAkgIHN5bnRoZXNpemVyLiBFYWNoIGNoaXAgaGFzIGRpZmZlcmVudCBudW1iZXIgb2YgUExMcyBhbmQgb3V0cHV0cy4KIAkgIEZvciBleGFtcGxlLCB0aGUgQ0RDRTkyNSBjb250YWlucyB0d28gUExMcyB3aXRoIHNwcmVhZC1zcGVjdHJ1bQpAQCAtMjEyLDcgKzIwOCw2IEBACiAJdHJpc3RhdGUgIkFYSSBjbGtnZW4gZHJpdmVyIgogCWRlcGVuZHMgb24gQVJDSF9aWU5RIHx8IE1JQ1JPQkxBWkUgfHwgQ09NUElMRV9URVNUCiAJaGVscAotCS0tLWhlbHAtLS0KIAkgIFN1cHBvcnQgZm9yIHRoZSBBbmFsb2cgRGV2aWNlcyBheGktY2xrZ2VuIHBjb3JlIGNsb2NrIGdlbmVyYXRvciBmb3IgWGlsaW54CiAJICBGUEdBcy4gSXQgaXMgY29tbW9ubHkgdXNlZCBpbiBBbmFsb2cgRGV2aWNlcycgcmVmZXJlbmNlIGRlc2lnbnMuCiAKQEAgLTI3OSwyNiArMjc0LDIyIEBACiAJZGVwZW5kcyBvbiBPRgogCXNlbGVjdCBSRUdNQVBfSTJDCiAJaGVscAotCS0tLWhlbHAtLS0KIAkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBJRFQgVmVyc2FDbG9jayA1IGFuZCBWZXJzYUNsb2NrIDYKIAkgIHByb2dyYW1tYWJsZSBjbG9jayBnZW5lcmF0b3JzLgogCiBjb25maWcgQ09NTU9OX0NMS19TVE0zMk1QMTU3CiAJZGVmX2Jvb2wgQ09NTU9OX0NMSyAmJiBNQUNIX1NUTTMyTVAxNTcKIAloZWxwCi0JLS0taGVscC0tLQogCSAgU3VwcG9ydCBmb3Igc3RtMzJtcDE1NyBTb0MgZmFtaWx5IGNsb2NrcwogCiBjb25maWcgQ09NTU9OX0NMS19TVE0zMkYKIAlkZWZfYm9vbCBDT01NT05fQ0xLICYmIChNQUNIX1NUTTMyRjQyOSB8fCBNQUNIX1NUTTMyRjQ2OSB8fCBNQUNIX1NUTTMyRjc0NikKIAloZWxwCi0JLS0taGVscC0tLQogCSAgU3VwcG9ydCBmb3Igc3RtMzJmNCBhbmQgc3RtMzJmNyBTb0MgZmFtaWxpZXMgY2xvY2tzCiAKIGNvbmZpZyBDT01NT05fQ0xLX1NUTTMySDcKIAlkZWZfYm9vbCBDT01NT05fQ0xLICYmIE1BQ0hfU1RNMzJINzQzCiAJaGVscAotCS0tLWhlbHAtLS0KIAkgIFN1cHBvcnQgZm9yIHN0bTMyaDcgU29DIGZhbWlseSBjbG9ja3MKIAogY29uZmlnIENPTU1PTl9DTEtfQkQ3MThYWApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay9NYWtlZmlsZQppbmRleCAwY2FkNzYwLi4wMTM4ZmIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2Nsay9NYWtlZmlsZQpAQCAtMzAsNiArMzAsNyBAQAogb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfRklYRURfTU1JTykJKz0gY2xrLWZpeGVkLW1taW8ubwogb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfR0VNSU5JKQkJKz0gY2xrLWdlbWluaS5vCiBvYmotJChDT05GSUdfQ09NTU9OX0NMS19BU1BFRUQpCQkrPSBjbGstYXNwZWVkLm8KK29iai0kKENPTkZJR19NQUNIX0FTUEVFRF9HNikJCSs9IGNsay1hc3QyNjAwLm8KIG9iai0kKENPTkZJR19BUkNIX0hJR0hCQU5LKQkJKz0gY2xrLWhpZ2hiYW5rLm8KIG9iai0kKENPTkZJR19DTEtfSFNESykJCQkrPSBjbGstaHNkay1wbGwubwogb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTE9DSE5BR0FSKQkrPSBjbGstbG9jaG5hZ2FyLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2FjdGlvbnMvb3dsLWNvbW1vbi5jIGIvZHJpdmVycy9jbGsvYWN0aW9ucy9vd2wtY29tbW9uLmMKaW5kZXggMzJkZDI5ZS4uNGRlOTdjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvYWN0aW9ucy9vd2wtY29tbW9uLmMKKysrIGIvZHJpdmVycy9jbGsvYWN0aW9ucy9vd2wtY29tbW9uLmMKQEAgLTY4LDE2ICs2OCwxNyBAQCBpbnQgb3dsX2Nsa19wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhICpod19jbGtzKQogCXN0cnVjdCBjbGtfaHcgKmh3OwogCiAJZm9yIChpID0gMDsgaSA8IGh3X2Nsa3MtPm51bTsgaSsrKSB7CisJCWNvbnN0IGNoYXIgKm5hbWU7CiAKIAkJaHcgPSBod19jbGtzLT5od3NbaV07Ci0KIAkJaWYgKElTX0VSUl9PUl9OVUxMKGh3KSkKIAkJCWNvbnRpbnVlOwogCisJCW5hbWUgPSBody0+aW5pdC0+bmFtZTsKIAkJcmV0ID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIoZGV2LCBodyk7CiAJCWlmIChyZXQpIHsKIAkJCWRldl9lcnIoZGV2LCAiQ291bGRuJ3QgcmVnaXN0ZXIgY2xvY2sgJWQgLSAlc1xuIiwKLQkJCQlpLCBody0+aW5pdC0+bmFtZSk7CisJCQkJaSwgbmFtZSk7CiAJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvYWN0aW9ucy9vd2wtZmFjdG9yLmMgYi9kcml2ZXJzL2Nsay9hY3Rpb25zL293bC1mYWN0b3IuYwppbmRleCAzMTdkNGE5Li5mMTVlMjYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9hY3Rpb25zL293bC1mYWN0b3IuYworKysgYi9kcml2ZXJzL2Nsay9hY3Rpb25zL293bC1mYWN0b3IuYwpAQCAtNjQsMTEgKzY0LDEwIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgX2dldF90YWJsZV92YWwoY29uc3Qgc3RydWN0IGNsa19mYWN0b3JfdGFibGUgKnRhYmxlLAogCXJldHVybiB2YWw7CiB9CiAKLXN0YXRpYyBpbnQgY2xrX3ZhbF9iZXN0KHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCitzdGF0aWMgaW50IG93bF9jbGtfdmFsX2Jlc3QoY29uc3Qgc3RydWN0IG93bF9mYWN0b3JfaHcgKmZhY3Rvcl9odywKKwkJCXN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJCQl1bnNpZ25lZCBsb25nICpiZXN0X3BhcmVudF9yYXRlKQogewotCXN0cnVjdCBvd2xfZmFjdG9yICpmYWN0b3IgPSBod190b19vd2xfZmFjdG9yKGh3KTsKLQlzdHJ1Y3Qgb3dsX2ZhY3Rvcl9odyAqZmFjdG9yX2h3ID0gJmZhY3Rvci0+ZmFjdG9yX2h3OwogCWNvbnN0IHN0cnVjdCBjbGtfZmFjdG9yX3RhYmxlICpjbGt0ID0gZmFjdG9yX2h3LT50YWJsZTsKIAl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlLCB0cnlfcGFyZW50X3JhdGUsIGJlc3QgPSAwLCBjdXJfcmF0ZTsKIAl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlX3NhdmVkID0gKmJlc3RfcGFyZW50X3JhdGU7CkBAIC0xMjYsNyArMTI1LDcgQEAgbG9uZyBvd2xfZmFjdG9yX2hlbHBlcl9yb3VuZF9yYXRlKHN0cnVjdCBvd2xfY2xrX2NvbW1vbiAqY29tbW9uLAogCWNvbnN0IHN0cnVjdCBjbGtfZmFjdG9yX3RhYmxlICpjbGt0ID0gZmFjdG9yX2h3LT50YWJsZTsKIAl1bnNpZ25lZCBpbnQgdmFsLCBtdWwgPSAwLCBkaXYgPSAxOwogCi0JdmFsID0gY2xrX3ZhbF9iZXN0KCZjb21tb24tPmh3LCByYXRlLCBwYXJlbnRfcmF0ZSk7CisJdmFsID0gb3dsX2Nsa192YWxfYmVzdChmYWN0b3JfaHcsICZjb21tb24tPmh3LCByYXRlLCBwYXJlbnRfcmF0ZSk7CiAJX2dldF90YWJsZV9kaXZfbXVsKGNsa3QsIHZhbCwgJm11bCwgJmRpdik7CiAKIAlyZXR1cm4gKnBhcmVudF9yYXRlICogbXVsIC8gZGl2OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvYXQ5MS9jbGstbWFpbi5jIGIvZHJpdmVycy9jbGsvYXQ5MS9jbGstbWFpbi5jCmluZGV4IGY2MDdlZTcuLjg3MDgzYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2F0OTEvY2xrLW1haW4uYworKysgYi9kcml2ZXJzL2Nsay9hdDkxL2Nsay1tYWluLmMKQEAgLTIxLDYgKzIxLDEwIEBACiAKICNkZWZpbmUgTU9SX0tFWV9NQVNLCQkoMHhmZiA8PCAxNikKIAorI2RlZmluZSBjbGtfbWFpbl9wYXJlbnRfc2VsZWN0KHMpCSgoKHMpICYgXAorCQkJCQkoQVQ5MV9QTUNfTU9TQ0VOIHwgXAorCQkJCQlBVDkxX1BNQ19PU0NCWVBBU1MpKSA/IDEgOiAwKQorCiBzdHJ1Y3QgY2xrX21haW5fb3NjIHsKIAlzdHJ1Y3QgY2xrX2h3IGh3OwogCXN0cnVjdCByZWdtYXAgKnJlZ21hcDsKQEAgLTExMyw3ICsxMTcsNyBAQCBzdGF0aWMgaW50IGNsa19tYWluX29zY19pc19wcmVwYXJlZChzdHJ1Y3QgY2xrX2h3ICpodykKIAogCXJlZ21hcF9yZWFkKHJlZ21hcCwgQVQ5MV9QTUNfU1IsICZzdGF0dXMpOwogCi0JcmV0dXJuIChzdGF0dXMgJiBBVDkxX1BNQ19NT1NDUykgJiYgKHRtcCAmIEFUOTFfUE1DX01PU0NFTik7CisJcmV0dXJuIChzdGF0dXMgJiBBVDkxX1BNQ19NT1NDUykgJiYgY2xrX21haW5fcGFyZW50X3NlbGVjdCh0bXApOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgbWFpbl9vc2Nfb3BzID0gewpAQCAtMTUyLDcgKzE1Niw3IEBAIGF0OTFfY2xrX3JlZ2lzdGVyX21haW5fb3NjKHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKIAlpZiAoYnlwYXNzKQogCQlyZWdtYXBfdXBkYXRlX2JpdHMocmVnbWFwLAogCQkJCSAgIEFUOTFfQ0tHUl9NT1IsIE1PUl9LRVlfTUFTSyB8Ci0JCQkJICAgQVQ5MV9QTUNfTU9TQ0VOLAorCQkJCSAgIEFUOTFfUE1DX09TQ0JZUEFTUywKIAkJCQkgICBBVDkxX1BNQ19PU0NCWVBBU1MgfCBBVDkxX1BNQ19LRVkpOwogCiAJaHcgPSAmb3NjLT5odzsKQEAgLTQ1MCw3ICs0NTQsNyBAQCBzdGF0aWMgdTggY2xrX3NhbTl4NV9tYWluX2dldF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHcpCiAKIAlyZWdtYXBfcmVhZChjbGttYWluLT5yZWdtYXAsIEFUOTFfQ0tHUl9NT1IsICZzdGF0dXMpOwogCi0JcmV0dXJuIHN0YXR1cyAmIEFUOTFfUE1DX01PU0NFTiA/IDEgOiAwOworCXJldHVybiBjbGtfbWFpbl9wYXJlbnRfc2VsZWN0KHN0YXR1cyk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBzYW05eDVfbWFpbl9vcHMgPSB7CkBAIC00OTIsNyArNDk2LDcgQEAgYXQ5MV9jbGtfcmVnaXN0ZXJfc2FtOXg1X21haW4oc3RydWN0IHJlZ21hcCAqcmVnbWFwLAogCWNsa21haW4tPmh3LmluaXQgPSAmaW5pdDsKIAljbGttYWluLT5yZWdtYXAgPSByZWdtYXA7CiAJcmVnbWFwX3JlYWQoY2xrbWFpbi0+cmVnbWFwLCBBVDkxX0NLR1JfTU9SLCAmc3RhdHVzKTsKLQljbGttYWluLT5wYXJlbnQgPSBzdGF0dXMgJiBBVDkxX1BNQ19NT1NDRU4gPyAxIDogMDsKKwljbGttYWluLT5wYXJlbnQgPSBjbGtfbWFpbl9wYXJlbnRfc2VsZWN0KHN0YXR1cyk7CiAKIAlodyA9ICZjbGttYWluLT5odzsKIAlyZXQgPSBjbGtfaHdfcmVnaXN0ZXIoTlVMTCwgJmNsa21haW4tPmh3KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2F0OTEvc2FtYTVkMi5jIGIvZHJpdmVycy9jbGsvYXQ5MS9zYW1hNWQyLmMKaW5kZXggNjUwOWQwOS4uMGRlMTEwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvYXQ5MS9zYW1hNWQyLmMKKysrIGIvZHJpdmVycy9jbGsvYXQ5MS9zYW1hNWQyLmMKQEAgLTIxLDcgKzIxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcmFuZ2UgcGxsYV9vdXRwdXRzW10gPSB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wbGxfY2hhcmFjdGVyaXN0aWNzIHBsbGFfY2hhcmFjdGVyaXN0aWNzID0gewotCS5pbnB1dCA9IHsgLm1pbiA9IDEyMDAwMDAwLCAubWF4ID0gMTIwMDAwMDAgfSwKKwkuaW5wdXQgPSB7IC5taW4gPSAxMjAwMDAwMCwgLm1heCA9IDI0MDAwMDAwIH0sCiAJLm51bV9vdXRwdXQgPSBBUlJBWV9TSVpFKHBsbGFfb3V0cHV0cyksCiAJLm91dHB1dCA9IHBsbGFfb3V0cHV0cywKIAkuaWNwbGwgPSBwbGxhX2ljcGxsLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvYmNtL2Nsay1iY20yODM1LmMgYi9kcml2ZXJzL2Nsay9iY20vY2xrLWJjbTI4MzUuYwppbmRleCA4NjdhZTNjLi44MDJlNDg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9iY20vY2xrLWJjbTI4MzUuYworKysgYi9kcml2ZXJzL2Nsay9iY20vY2xrLWJjbTI4MzUuYwpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9iY20yODM1Lmg+CkBAIC0xMTQsNiArMTE0LDggQEAKICNkZWZpbmUgQ01fQVZFT0RJVgkJMHgxYmMKICNkZWZpbmUgQ01fRU1NQ0NUTAkJMHgxYzAKICNkZWZpbmUgQ01fRU1NQ0RJVgkJMHgxYzQKKyNkZWZpbmUgQ01fRU1NQzJDVEwJCTB4MWQwCisjZGVmaW5lIENNX0VNTUMyRElWCQkweDFkNAogCiAvKiBHZW5lcmFsIGJpdHMgZm9yIHRoZSBDTV8qQ1RMIHJlZ3MgKi8KICMgZGVmaW5lIENNX0VOQUJMRQkJCUJJVCg0KQpAQCAtMjg5LDYgKzI5MSwxMCBAQAogI2RlZmluZSBMT0NLX1RJTUVPVVRfTlMJCTEwMDAwMDAwMAogI2RlZmluZSBCQ00yODM1X01BWF9GQl9SQVRFCTE3NTAwMDAwMDB1CiAKKyNkZWZpbmUgU09DX0JDTTI4MzUJCUJJVCgwKQorI2RlZmluZSBTT0NfQkNNMjcxMQkJQklUKDEpCisjZGVmaW5lIFNPQ19BTEwJCQkoU09DX0JDTTI4MzUgfCBTT0NfQkNNMjcxMSkKKwogLyoKICAqIE5hbWVzIG9mIGNsb2NrcyB1c2VkIHdpdGhpbiB0aGUgZHJpdmVyIHRoYXQgbmVlZCB0byBiZSByZXBsYWNlZAogICogd2l0aCBhbiBleHRlcm5hbCBwYXJlbnQncyBuYW1lLiAgVGhpcyBhcnJheSBpcyBpbiB0aGUgb3JkZXIgdGhhdApAQCAtMzIwLDYgKzMyNiwxMCBAQCBzdHJ1Y3QgYmNtMjgzNV9jcHJtYW4gewogCXN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhIG9uZWNlbGw7CiB9OwogCitzdHJ1Y3QgY3BybWFuX3BsYXRfZGF0YSB7CisJdW5zaWduZWQgaW50IHNvYzsKK307CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHJtYW5fd3JpdGUoc3RydWN0IGJjbTI4MzVfY3BybWFuICpjcHJtYW4sIHUzMiByZWcsIHUzMiB2YWwpCiB7CiAJd3JpdGVsKENNX1BBU1NXT1JEIHwgdmFsLCBjcHJtYW4tPnJlZ3MgKyByZWcpOwpAQCAtMTQ1MSwyMiArMTQ2MSwyOCBAQCB0eXBlZGVmIHN0cnVjdCBjbGtfaHcgKigqYmNtMjgzNV9jbGtfcmVnaXN0ZXIpKHN0cnVjdCBiY20yODM1X2Nwcm1hbiAqY3BybWFuLAogCQkJCQkgICAgICAgY29uc3Qgdm9pZCAqZGF0YSk7CiBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyB7CiAJYmNtMjgzNV9jbGtfcmVnaXN0ZXIgY2xrX3JlZ2lzdGVyOworCXVuc2lnbmVkIGludCBzdXBwb3J0ZWQ7CiAJY29uc3Qgdm9pZCAqZGF0YTsKIH07CiAKIC8qIGFzc2lnbm1lbnQgaGVscGVyIG1hY3JvcyBmb3IgZGlmZmVyZW50IGNsb2NrIHR5cGVzICovCi0jZGVmaW5lIF9SRUdJU1RFUihmLCAuLi4pIHsgLmNsa19yZWdpc3RlciA9IChiY20yODM1X2Nsa19yZWdpc3RlcilmLCBcCi0JCQkgICAgLmRhdGEgPSBfX1ZBX0FSR1NfXyB9Ci0jZGVmaW5lIFJFR0lTVEVSX1BMTCguLi4pCV9SRUdJU1RFUigmYmNtMjgzNV9yZWdpc3Rlcl9wbGwsCVwKKyNkZWZpbmUgX1JFR0lTVEVSKGYsIHMsIC4uLikgeyAuY2xrX3JlZ2lzdGVyID0gKGJjbTI4MzVfY2xrX3JlZ2lzdGVyKWYsIFwKKwkJCSAgICAgICAuc3VwcG9ydGVkID0gcywJCQkJXAorCQkJICAgICAgIC5kYXRhID0gX19WQV9BUkdTX18gfQorI2RlZmluZSBSRUdJU1RFUl9QTEwocywgLi4uKQlfUkVHSVNURVIoJmJjbTI4MzVfcmVnaXN0ZXJfcGxsLAlcCisJCQkJCSAgcywJCQkJXAogCQkJCQkgICYoc3RydWN0IGJjbTI4MzVfcGxsX2RhdGEpCVwKIAkJCQkJICB7X19WQV9BUkdTX199KQotI2RlZmluZSBSRUdJU1RFUl9QTExfRElWKC4uLikJX1JFR0lTVEVSKCZiY20yODM1X3JlZ2lzdGVyX3BsbF9kaXZpZGVyLCBcCi0JCQkJCSAgJihzdHJ1Y3QgYmNtMjgzNV9wbGxfZGl2aWRlcl9kYXRhKSBcCi0JCQkJCSAge19fVkFfQVJHU19ffSkKLSNkZWZpbmUgUkVHSVNURVJfQ0xLKC4uLikJX1JFR0lTVEVSKCZiY20yODM1X3JlZ2lzdGVyX2Nsb2NrLAlcCisjZGVmaW5lIFJFR0lTVEVSX1BMTF9ESVYocywgLi4uKSBfUkVHSVNURVIoJmJjbTI4MzVfcmVnaXN0ZXJfcGxsX2RpdmlkZXIsIFwKKwkJCQkJICAgcywJCQkJICBcCisJCQkJCSAgICYoc3RydWN0IGJjbTI4MzVfcGxsX2RpdmlkZXJfZGF0YSkgXAorCQkJCQkgICB7X19WQV9BUkdTX199KQorI2RlZmluZSBSRUdJU1RFUl9DTEsocywgLi4uKQlfUkVHSVNURVIoJmJjbTI4MzVfcmVnaXN0ZXJfY2xvY2ssCVwKKwkJCQkJICBzLAkJCQlcCiAJCQkJCSAgJihzdHJ1Y3QgYmNtMjgzNV9jbG9ja19kYXRhKQlcCiAJCQkJCSAge19fVkFfQVJHU19ffSkKLSNkZWZpbmUgUkVHSVNURVJfR0FURSguLi4pCV9SRUdJU1RFUigmYmNtMjgzNV9yZWdpc3Rlcl9nYXRlLAlcCisjZGVmaW5lIFJFR0lTVEVSX0dBVEUocywgLi4uKQlfUkVHSVNURVIoJmJjbTI4MzVfcmVnaXN0ZXJfZ2F0ZSwJXAorCQkJCQkgIHMsCQkJCVwKIAkJCQkJICAmKHN0cnVjdCBiY20yODM1X2dhdGVfZGF0YSkJXAogCQkJCQkgIHtfX1ZBX0FSR1NfX30pCiAKQEAgLTE0ODAsNyArMTQ5Niw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBiY20yODM1X2Nsb2NrX29zY19wYXJlbnRzW10gPSB7CiAJInRlc3RkZWJ1ZzEiCiB9OwogCi0jZGVmaW5lIFJFR0lTVEVSX09TQ19DTEsoLi4uKQlSRUdJU1RFUl9DTEsoCQkJCVwKKyNkZWZpbmUgUkVHSVNURVJfT1NDX0NMSyhzLCAuLi4pCVJFR0lTVEVSX0NMSygJCQlcCisJcywJCQkJCQkJCVwKIAkubnVtX211eF9wYXJlbnRzID0gQVJSQVlfU0laRShiY20yODM1X2Nsb2NrX29zY19wYXJlbnRzKSwJXAogCS5wYXJlbnRzID0gYmNtMjgzNV9jbG9ja19vc2NfcGFyZW50cywJCQkJXAogCV9fVkFfQVJHU19fKQpAQCAtMTQ5Nyw3ICsxNTE0LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGJjbTI4MzVfY2xvY2tfcGVyX3BhcmVudHNbXSA9IHsKIAkicGxsaF9hdXgiLAogfTsKIAotI2RlZmluZSBSRUdJU1RFUl9QRVJfQ0xLKC4uLikJUkVHSVNURVJfQ0xLKAkJCQlcCisjZGVmaW5lIFJFR0lTVEVSX1BFUl9DTEsocywgLi4uKQlSRUdJU1RFUl9DTEsoCQkJXAorCXMsCQkJCQkJCQlcCiAJLm51bV9tdXhfcGFyZW50cyA9IEFSUkFZX1NJWkUoYmNtMjgzNV9jbG9ja19wZXJfcGFyZW50cyksCVwKIAkucGFyZW50cyA9IGJjbTI4MzVfY2xvY2tfcGVyX3BhcmVudHMsCQkJCVwKIAlfX1ZBX0FSR1NfXykKQEAgLTE1MjIsNyArMTU0MCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBiY20yODM1X3BjbV9wZXJfcGFyZW50c1tdID0gewogCSItIiwKIH07CiAKLSNkZWZpbmUgUkVHSVNURVJfUENNX0NMSyguLi4pCVJFR0lTVEVSX0NMSygJCQkJXAorI2RlZmluZSBSRUdJU1RFUl9QQ01fQ0xLKHMsIC4uLikJUkVHSVNURVJfQ0xLKAkJCVwKKwlzLAkJCQkJCQkJXAogCS5udW1fbXV4X3BhcmVudHMgPSBBUlJBWV9TSVpFKGJjbTI4MzVfcGNtX3Blcl9wYXJlbnRzKSwJCVwKIAkucGFyZW50cyA9IGJjbTI4MzVfcGNtX3Blcl9wYXJlbnRzLAkJCQlcCiAJX19WQV9BUkdTX18pCkBAIC0xNTQxLDcgKzE1NjAsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgYmNtMjgzNV9jbG9ja192cHVfcGFyZW50c1tdID0gewogCSJwbGxjX2NvcmUyIiwKIH07CiAKLSNkZWZpbmUgUkVHSVNURVJfVlBVX0NMSyguLi4pCVJFR0lTVEVSX0NMSygJCQkJXAorI2RlZmluZSBSRUdJU1RFUl9WUFVfQ0xLKHMsIC4uLikJUkVHSVNURVJfQ0xLKAkJCVwKKwlzLAkJCQkJCQkJXAogCS5udW1fbXV4X3BhcmVudHMgPSBBUlJBWV9TSVpFKGJjbTI4MzVfY2xvY2tfdnB1X3BhcmVudHMpLAlcCiAJLnBhcmVudHMgPSBiY20yODM1X2Nsb2NrX3ZwdV9wYXJlbnRzLAkJCQlcCiAJX19WQV9BUkdTX18pCkBAIC0xNTc3LDEyICsxNTk3LDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBiY20yODM1X2Nsb2NrX2RzaTFfcGFyZW50c1tdID0gewogCSJkc2kxX2J5dGVfaW52IiwKIH07CiAKLSNkZWZpbmUgUkVHSVNURVJfRFNJMF9DTEsoLi4uKQlSRUdJU1RFUl9DTEsoCQkJCVwKKyNkZWZpbmUgUkVHSVNURVJfRFNJMF9DTEsocywgLi4uKQlSRUdJU1RFUl9DTEsoCQkJXAorCXMsCQkJCQkJCQlcCiAJLm51bV9tdXhfcGFyZW50cyA9IEFSUkFZX1NJWkUoYmNtMjgzNV9jbG9ja19kc2kwX3BhcmVudHMpLAlcCiAJLnBhcmVudHMgPSBiY20yODM1X2Nsb2NrX2RzaTBfcGFyZW50cywJCQkJXAogCV9fVkFfQVJHU19fKQogCi0jZGVmaW5lIFJFR0lTVEVSX0RTSTFfQ0xLKC4uLikJUkVHSVNURVJfQ0xLKAkJCQlcCisjZGVmaW5lIFJFR0lTVEVSX0RTSTFfQ0xLKHMsIC4uLikJUkVHSVNURVJfQ0xLKAkJCVwKKwlzLAkJCQkJCQkJXAogCS5udW1fbXV4X3BhcmVudHMgPSBBUlJBWV9TSVpFKGJjbTI4MzVfY2xvY2tfZHNpMV9wYXJlbnRzKSwJXAogCS5wYXJlbnRzID0gYmNtMjgzNV9jbG9ja19kc2kxX3BhcmVudHMsCQkJCVwKIAlfX1ZBX0FSR1NfXykKQEAgLTE2MDIsNiArMTYyNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCSAqIEFVRElPIGRvbWFpbiBpcyBvbi4KIAkgKi8KIAlbQkNNMjgzNV9QTExBXQkJPSBSRUdJU1RFUl9QTEwoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInBsbGEiLAogCQkuY21fY3RybF9yZWcgPSBDTV9QTExBLAogCQkuYTJ3X2N0cmxfcmVnID0gQTJXX1BMTEFfQ1RSTCwKQEAgLTE2MTYsNiArMTYzOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkubWF4X3JhdGUgPSAyNDAwMDAwMDAwdSwKIAkJLm1heF9mYl9yYXRlID0gQkNNMjgzNV9NQVhfRkJfUkFURSksCiAJW0JDTTI4MzVfUExMQV9DT1JFXQk9IFJFR0lTVEVSX1BMTF9ESVYoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInBsbGFfY29yZSIsCiAJCS5zb3VyY2VfcGxsID0gInBsbGEiLAogCQkuY21fcmVnID0gQ01fUExMQSwKQEAgLTE2MjUsNiArMTY0OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkuZml4ZWRfZGl2aWRlciA9IDEsCiAJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQpLAogCVtCQ00yODM1X1BMTEFfUEVSXQk9IFJFR0lTVEVSX1BMTF9ESVYoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInBsbGFfcGVyIiwKIAkJLnNvdXJjZV9wbGwgPSAicGxsYSIsCiAJCS5jbV9yZWcgPSBDTV9QTExBLApAQCAtMTYzNCw2ICsxNjU5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5maXhlZF9kaXZpZGVyID0gMSwKIAkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCksCiAJW0JDTTI4MzVfUExMQV9EU0kwXQk9IFJFR0lTVEVSX1BMTF9ESVYoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInBsbGFfZHNpMCIsCiAJCS5zb3VyY2VfcGxsID0gInBsbGEiLAogCQkuY21fcmVnID0gQ01fUExMQSwKQEAgLTE2NDIsNiArMTY2OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkuaG9sZF9tYXNrID0gQ01fUExMQV9IT0xERFNJMCwKIAkJLmZpeGVkX2RpdmlkZXIgPSAxKSwKIAlbQkNNMjgzNV9QTExBX0NDUDJdCT0gUkVHSVNURVJfUExMX0RJVigKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAicGxsYV9jY3AyIiwKIAkJLnNvdXJjZV9wbGwgPSAicGxsYSIsCiAJCS5jbV9yZWcgPSBDTV9QTExBLApAQCAtMTY2Myw2ICsxNjkwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJICogQVVESU8gZG9tYWluIGlzIG9uLgogCSAqLwogCVtCQ00yODM1X1BMTENdCQk9IFJFR0lTVEVSX1BMTCgKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAicGxsYyIsCiAJCS5jbV9jdHJsX3JlZyA9IENNX1BMTEMsCiAJCS5hMndfY3RybF9yZWcgPSBBMldfUExMQ19DVFJMLApAQCAtMTY3Nyw2ICsxNzA1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5tYXhfcmF0ZSA9IDMwMDAwMDAwMDB1LAogCQkubWF4X2ZiX3JhdGUgPSBCQ00yODM1X01BWF9GQl9SQVRFKSwKIAlbQkNNMjgzNV9QTExDX0NPUkUwXQk9IFJFR0lTVEVSX1BMTF9ESVYoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInBsbGNfY29yZTAiLAogCQkuc291cmNlX3BsbCA9ICJwbGxjIiwKIAkJLmNtX3JlZyA9IENNX1BMTEMsCkBAIC0xNjg2LDYgKzE3MTUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmZpeGVkX2RpdmlkZXIgPSAxLAogCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5UKSwKIAlbQkNNMjgzNV9QTExDX0NPUkUxXQk9IFJFR0lTVEVSX1BMTF9ESVYoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInBsbGNfY29yZTEiLAogCQkuc291cmNlX3BsbCA9ICJwbGxjIiwKIAkJLmNtX3JlZyA9IENNX1BMTEMsCkBAIC0xNjk1LDYgKzE3MjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmZpeGVkX2RpdmlkZXIgPSAxLAogCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5UKSwKIAlbQkNNMjgzNV9QTExDX0NPUkUyXQk9IFJFR0lTVEVSX1BMTF9ESVYoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInBsbGNfY29yZTIiLAogCQkuc291cmNlX3BsbCA9ICJwbGxjIiwKIAkJLmNtX3JlZyA9IENNX1BMTEMsCkBAIC0xNzA0LDYgKzE3MzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmZpeGVkX2RpdmlkZXIgPSAxLAogCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5UKSwKIAlbQkNNMjgzNV9QTExDX1BFUl0JPSBSRUdJU1RFUl9QTExfRElWKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJwbGxjX3BlciIsCiAJCS5zb3VyY2VfcGxsID0gInBsbGMiLAogCQkuY21fcmVnID0gQ01fUExMQywKQEAgLTE3MjAsNiArMTc1Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCSAqIEFVRElPIGRvbWFpbiBpcyBvbi4KIAkgKi8KIAlbQkNNMjgzNV9QTExEXQkJPSBSRUdJU1RFUl9QTEwoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInBsbGQiLAogCQkuY21fY3RybF9yZWcgPSBDTV9QTExELAogCQkuYTJ3X2N0cmxfcmVnID0gQTJXX1BMTERfQ1RSTCwKQEAgLTE3MzQsNiArMTc2Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkubWF4X3JhdGUgPSAyNDAwMDAwMDAwdSwKIAkJLm1heF9mYl9yYXRlID0gQkNNMjgzNV9NQVhfRkJfUkFURSksCiAJW0JDTTI4MzVfUExMRF9DT1JFXQk9IFJFR0lTVEVSX1BMTF9ESVYoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInBsbGRfY29yZSIsCiAJCS5zb3VyY2VfcGxsID0gInBsbGQiLAogCQkuY21fcmVnID0gQ01fUExMRCwKQEAgLTE3NDIsNyArMTc3NiwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmhvbGRfbWFzayA9IENNX1BMTERfSE9MRENPUkUsCiAJCS5maXhlZF9kaXZpZGVyID0gMSwKIAkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCksCisJLyoKKwkgKiBWUFUgZmlybXdhcmUgYXNzdW1lcyB0aGF0IFBMTERfUEVSIGlzbid0IGRpc2FibGVkIGJ5IHRoZSBBUk0gY29yZS4KKwkgKiBPdGhlcndpc2UgdGhpcyBjb3VsZCBjYXVzZSBmaXJtd2FyZSBsb29rdXBzLiBUaGF0J3Mgd2h5IHdlIG1hcmsKKwkgKiBpdCBhcyBjcml0aWNhbC4KKwkgKi8KIAlbQkNNMjgzNV9QTExEX1BFUl0JPSBSRUdJU1RFUl9QTExfRElWKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJwbGxkX3BlciIsCiAJCS5zb3VyY2VfcGxsID0gInBsbGQiLAogCQkuY21fcmVnID0gQ01fUExMRCwKQEAgLTE3NTAsOCArMTc5MCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkubG9hZF9tYXNrID0gQ01fUExMRF9MT0FEUEVSLAogCQkuaG9sZF9tYXNrID0gQ01fUExMRF9IT0xEUEVSLAogCQkuZml4ZWRfZGl2aWRlciA9IDEsCi0JCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQpLAorCQkuZmxhZ3MgPSBDTEtfSVNfQ1JJVElDQUwgfCBDTEtfU0VUX1JBVEVfUEFSRU5UKSwKIAlbQkNNMjgzNV9QTExEX0RTSTBdCT0gUkVHSVNURVJfUExMX0RJVigKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAicGxsZF9kc2kwIiwKIAkJLnNvdXJjZV9wbGwgPSAicGxsZCIsCiAJCS5jbV9yZWcgPSBDTV9QTExELApAQCAtMTc2MCw2ICsxODAxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5ob2xkX21hc2sgPSBDTV9QTExEX0hPTEREU0kwLAogCQkuZml4ZWRfZGl2aWRlciA9IDEpLAogCVtCQ00yODM1X1BMTERfRFNJMV0JPSBSRUdJU1RFUl9QTExfRElWKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJwbGxkX2RzaTEiLAogCQkuc291cmNlX3BsbCA9ICJwbGxkIiwKIAkJLmNtX3JlZyA9IENNX1BMTEQsCkBAIC0xNzc1LDYgKzE4MTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkgKiBJdCBpcyBpbiB0aGUgSERNSSBwb3dlciBkb21haW4uCiAJICovCiAJW0JDTTI4MzVfUExMSF0JCT0gUkVHSVNURVJfUExMKAorCQlTT0NfQkNNMjgzNSwKIAkJInBsbGgiLAogCQkuY21fY3RybF9yZWcgPSBDTV9QTExILAogCQkuYTJ3X2N0cmxfcmVnID0gQTJXX1BMTEhfQ1RSTCwKQEAgLTE3ODksNiArMTgzMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkubWF4X3JhdGUgPSAzMDAwMDAwMDAwdSwKIAkJLm1heF9mYl9yYXRlID0gQkNNMjgzNV9NQVhfRkJfUkFURSksCiAJW0JDTTI4MzVfUExMSF9SQ0FMXQk9IFJFR0lTVEVSX1BMTF9ESVYoCisJCVNPQ19CQ00yODM1LAogCQkubmFtZSA9ICJwbGxoX3JjYWwiLAogCQkuc291cmNlX3BsbCA9ICJwbGxoIiwKIAkJLmNtX3JlZyA9IENNX1BMTEgsCkBAIC0xNzk4LDYgKzE4NDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmZpeGVkX2RpdmlkZXIgPSAxMCwKIAkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCksCiAJW0JDTTI4MzVfUExMSF9BVVhdCT0gUkVHSVNURVJfUExMX0RJVigKKwkJU09DX0JDTTI4MzUsCiAJCS5uYW1lID0gInBsbGhfYXV4IiwKIAkJLnNvdXJjZV9wbGwgPSAicGxsaCIsCiAJCS5jbV9yZWcgPSBDTV9QTExILApAQCAtMTgwNyw2ICsxODUyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5maXhlZF9kaXZpZGVyID0gMSwKIAkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCksCiAJW0JDTTI4MzVfUExMSF9QSVhdCT0gUkVHSVNURVJfUExMX0RJVigKKwkJU09DX0JDTTI4MzUsCiAJCS5uYW1lID0gInBsbGhfcGl4IiwKIAkJLnNvdXJjZV9wbGwgPSAicGxsaCIsCiAJCS5jbV9yZWcgPSBDTV9QTExILApAQCAtMTgyMiw2ICsxODY4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAKIAkvKiBPbmUgVGltZSBQcm9ncmFtbWFibGUgTWVtb3J5IGNsb2NrLiAgTWF4aW11bSAxME1oei4gKi8KIAlbQkNNMjgzNV9DTE9DS19PVFBdCT0gUkVHSVNURVJfT1NDX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAib3RwIiwKIAkJLmN0bF9yZWcgPSBDTV9PVFBDVEwsCiAJCS5kaXZfcmVnID0gQ01fT1RQRElWLApAQCAtMTgzMyw2ICsxODgwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJICogYnl0aGUgd2F0Y2hkb2cgdGltZXIgYW5kIHRoZSBjYW1lcmEgcHVsc2UgZ2VuZXJhdG9yLgogCSAqLwogCVtCQ00yODM1X0NMT0NLX1RJTUVSXQk9IFJFR0lTVEVSX09TQ19DTEsoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInRpbWVyIiwKIAkJLmN0bF9yZWcgPSBDTV9USU1FUkNUTCwKIAkJLmRpdl9yZWcgPSBDTV9USU1FUkRJViwKQEAgLTE4NDMsMTIgKzE4OTEsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJICogR2VuZXJhbGx5IHJ1biBhdCAyTWh6LCBtYXggNU1oei4KIAkgKi8KIAlbQkNNMjgzNV9DTE9DS19UU0VOU10JPSBSRUdJU1RFUl9PU0NfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJ0c2VucyIsCiAJCS5jdGxfcmVnID0gQ01fVFNFTlNDVEwsCiAJCS5kaXZfcmVnID0gQ01fVFNFTlNESVYsCiAJCS5pbnRfYml0cyA9IDUsCiAJCS5mcmFjX2JpdHMgPSAwKSwKIAlbQkNNMjgzNV9DTE9DS19URUNdCT0gUkVHSVNURVJfT1NDX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAidGVjIiwKIAkJLmN0bF9yZWcgPSBDTV9URUNDVEwsCiAJCS5kaXZfcmVnID0gQ01fVEVDRElWLApAQCAtMTg1Nyw2ICsxOTA3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAKIAkvKiBjbG9ja3Mgd2l0aCB2cHUgcGFyZW50IG11eCAqLwogCVtCQ00yODM1X0NMT0NLX0gyNjRdCT0gUkVHSVNURVJfVlBVX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAiaDI2NCIsCiAJCS5jdGxfcmVnID0gQ01fSDI2NENUTCwKIAkJLmRpdl9yZWcgPSBDTV9IMjY0RElWLApAQCAtMTg2NCw2ICsxOTE1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5mcmFjX2JpdHMgPSA4LAogCQkudGNudF9tdXggPSAxKSwKIAlbQkNNMjgzNV9DTE9DS19JU1BdCT0gUkVHSVNURVJfVlBVX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAiaXNwIiwKIAkJLmN0bF9yZWcgPSBDTV9JU1BDVEwsCiAJCS5kaXZfcmVnID0gQ01fSVNQRElWLApAQCAtMTg3Niw2ICsxOTI4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJICogaW4gdGhlIFNEUkFNIGNvbnRyb2xsZXIgY2FuJ3QgYmUgdXNlZC4KIAkgKi8KIAlbQkNNMjgzNV9DTE9DS19TRFJBTV0JPSBSRUdJU1RFUl9WUFVfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJzZHJhbSIsCiAJCS5jdGxfcmVnID0gQ01fU0RDQ1RMLAogCQkuZGl2X3JlZyA9IENNX1NEQ0RJViwKQEAgLTE4ODMsNiArMTkzNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkuZnJhY19iaXRzID0gMCwKIAkJLnRjbnRfbXV4ID0gMyksCiAJW0JDTTI4MzVfQ0xPQ0tfVjNEXQk9IFJFR0lTVEVSX1ZQVV9DTEsoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInYzZCIsCiAJCS5jdGxfcmVnID0gQ01fVjNEQ1RMLAogCQkuZGl2X3JlZyA9IENNX1YzRERJViwKQEAgLTE4OTYsNiArMTk1MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCSAqIGluIHZhcmlvdXMgaGFyZHdhcmUgZG9jdW1lbnRhdGlvbi4KIAkgKi8KIAlbQkNNMjgzNV9DTE9DS19WUFVdCT0gUkVHSVNURVJfVlBVX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAidnB1IiwKIAkJLmN0bF9yZWcgPSBDTV9WUFVDVEwsCiAJCS5kaXZfcmVnID0gQ01fVlBVRElWLApAQCAtMTkwNyw2ICsxOTYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAKIAkvKiBjbG9ja3Mgd2l0aCBwZXIgcGFyZW50IG11eCAqLwogCVtCQ00yODM1X0NMT0NLX0FWRU9dCT0gUkVHSVNURVJfUEVSX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAiYXZlbyIsCiAJCS5jdGxfcmVnID0gQ01fQVZFT0NUTCwKIAkJLmRpdl9yZWcgPSBDTV9BVkVPRElWLApAQCAtMTkxNCw2ICsxOTcwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5mcmFjX2JpdHMgPSAwLAogCQkudGNudF9tdXggPSAzOCksCiAJW0JDTTI4MzVfQ0xPQ0tfQ0FNMF0JPSBSRUdJU1RFUl9QRVJfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJjYW0wIiwKIAkJLmN0bF9yZWcgPSBDTV9DQU0wQ1RMLAogCQkuZGl2X3JlZyA9IENNX0NBTTBESVYsCkBAIC0xOTIxLDYgKzE5NzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmZyYWNfYml0cyA9IDgsCiAJCS50Y250X211eCA9IDE0KSwKIAlbQkNNMjgzNV9DTE9DS19DQU0xXQk9IFJFR0lTVEVSX1BFUl9DTEsoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gImNhbTEiLAogCQkuY3RsX3JlZyA9IENNX0NBTTFDVEwsCiAJCS5kaXZfcmVnID0gQ01fQ0FNMURJViwKQEAgLTE5MjgsMTIgKzE5ODYsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5mcmFjX2JpdHMgPSA4LAogCQkudGNudF9tdXggPSAxNSksCiAJW0JDTTI4MzVfQ0xPQ0tfREZUXQk9IFJFR0lTVEVSX1BFUl9DTEsoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gImRmdCIsCiAJCS5jdGxfcmVnID0gQ01fREZUQ1RMLAogCQkuZGl2X3JlZyA9IENNX0RGVERJViwKIAkJLmludF9iaXRzID0gNSwKIAkJLmZyYWNfYml0cyA9IDApLAogCVtCQ00yODM1X0NMT0NLX0RQSV0JPSBSRUdJU1RFUl9QRVJfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJkcGkiLAogCQkuY3RsX3JlZyA9IENNX0RQSUNUTCwKIAkJLmRpdl9yZWcgPSBDTV9EUElESVYsCkBAIC0xOTQzLDYgKzIwMDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAogCS8qIEFyYXNhbiBFTU1DIGNsb2NrICovCiAJW0JDTTI4MzVfQ0xPQ0tfRU1NQ10JPSBSRUdJU1RFUl9QRVJfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJlbW1jIiwKIAkJLmN0bF9yZWcgPSBDTV9FTU1DQ1RMLAogCQkuZGl2X3JlZyA9IENNX0VNTUNESVYsCkBAIC0xOTUwLDggKzIwMTEsMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5mcmFjX2JpdHMgPSA4LAogCQkudGNudF9tdXggPSAzOSksCiAKKwkvKiBFTU1DMiBjbG9jayAob25seSBhdmFpbGFibGUgZm9yIEJDTTI3MTEpICovCisJW0JDTTI3MTFfQ0xPQ0tfRU1NQzJdCT0gUkVHSVNURVJfUEVSX0NMSygKKwkJU09DX0JDTTI3MTEsCisJCS5uYW1lID0gImVtbWMyIiwKKwkJLmN0bF9yZWcgPSBDTV9FTU1DMkNUTCwKKwkJLmRpdl9yZWcgPSBDTV9FTU1DMkRJViwKKwkJLmludF9iaXRzID0gNCwKKwkJLmZyYWNfYml0cyA9IDgsCisJCS50Y250X211eCA9IDQyKSwKKwogCS8qIEdlbmVyYWwgcHVycG9zZSAoR1BJTykgY2xvY2tzICovCiAJW0JDTTI4MzVfQ0xPQ0tfR1AwXQk9IFJFR0lTVEVSX1BFUl9DTEsoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gImdwMCIsCiAJCS5jdGxfcmVnID0gQ01fR1AwQ1RMLAogCQkuZGl2X3JlZyA9IENNX0dQMERJViwKQEAgLTE5NjAsNiArMjAzMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkuaXNfbWFzaF9jbG9jayA9IHRydWUsCiAJCS50Y250X211eCA9IDIwKSwKIAlbQkNNMjgzNV9DTE9DS19HUDFdCT0gUkVHSVNURVJfUEVSX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAiZ3AxIiwKIAkJLmN0bF9yZWcgPSBDTV9HUDFDVEwsCiAJCS5kaXZfcmVnID0gQ01fR1AxRElWLApAQCAtMTk2OSw2ICsyMDQyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5pc19tYXNoX2Nsb2NrID0gdHJ1ZSwKIAkJLnRjbnRfbXV4ID0gMjEpLAogCVtCQ00yODM1X0NMT0NLX0dQMl0JPSBSRUdJU1RFUl9QRVJfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJncDIiLAogCQkuY3RsX3JlZyA9IENNX0dQMkNUTCwKIAkJLmRpdl9yZWcgPSBDTV9HUDJESVYsCkBAIC0xOTc4LDYgKzIwNTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAogCS8qIEhETUkgc3RhdGUgbWFjaGluZSAqLwogCVtCQ00yODM1X0NMT0NLX0hTTV0JPSBSRUdJU1RFUl9QRVJfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJoc20iLAogCQkuY3RsX3JlZyA9IENNX0hTTUNUTCwKIAkJLmRpdl9yZWcgPSBDTV9IU01ESVYsCkBAIC0xOTg1LDYgKzIwNjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmZyYWNfYml0cyA9IDgsCiAJCS50Y250X211eCA9IDIyKSwKIAlbQkNNMjgzNV9DTE9DS19QQ01dCT0gUkVHSVNURVJfUENNX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAicGNtIiwKIAkJLmN0bF9yZWcgPSBDTV9QQ01DVEwsCiAJCS5kaXZfcmVnID0gQ01fUENNRElWLApAQCAtMTk5NCw2ICsyMDcwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJCS5sb3dfaml0dGVyID0gdHJ1ZSwKIAkJLnRjbnRfbXV4ID0gMjMpLAogCVtCQ00yODM1X0NMT0NLX1BXTV0JPSBSRUdJU1RFUl9QRVJfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJwd20iLAogCQkuY3RsX3JlZyA9IENNX1BXTUNUTCwKIAkJLmRpdl9yZWcgPSBDTV9QV01ESVYsCkBAIC0yMDAyLDYgKzIwNzksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmlzX21hc2hfY2xvY2sgPSB0cnVlLAogCQkudGNudF9tdXggPSAyNCksCiAJW0JDTTI4MzVfQ0xPQ0tfU0xJTV0JPSBSRUdJU1RFUl9QRVJfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJzbGltIiwKIAkJLmN0bF9yZWcgPSBDTV9TTElNQ1RMLAogCQkuZGl2X3JlZyA9IENNX1NMSU1ESVYsCkBAIC0yMDEwLDYgKzIwODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmlzX21hc2hfY2xvY2sgPSB0cnVlLAogCQkudGNudF9tdXggPSAyNSksCiAJW0JDTTI4MzVfQ0xPQ0tfU01JXQk9IFJFR0lTVEVSX1BFUl9DTEsoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInNtaSIsCiAJCS5jdGxfcmVnID0gQ01fU01JQ1RMLAogCQkuZGl2X3JlZyA9IENNX1NNSURJViwKQEAgLTIwMTcsNiArMjA5Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkuZnJhY19iaXRzID0gOCwKIAkJLnRjbnRfbXV4ID0gMjcpLAogCVtCQ00yODM1X0NMT0NLX1VBUlRdCT0gUkVHSVNURVJfUEVSX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAidWFydCIsCiAJCS5jdGxfcmVnID0gQ01fVUFSVENUTCwKIAkJLmRpdl9yZWcgPSBDTV9VQVJURElWLApAQCAtMjAyNiw2ICsyMTA2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAKIAkvKiBUViBlbmNvZGVyIGNsb2NrLiAgT25seSBvcGVyYXRpbmcgZnJlcXVlbmN5IGlzIDEwOE1oei4gICovCiAJW0JDTTI4MzVfQ0xPQ0tfVkVDXQk9IFJFR0lTVEVSX1BFUl9DTEsoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gInZlYyIsCiAJCS5jdGxfcmVnID0gQ01fVkVDQ1RMLAogCQkuZGl2X3JlZyA9IENNX1ZFQ0RJViwKQEAgLTIwNDAsNiArMjEyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCiAJLyogZHNpIGNsb2NrcyAqLwogCVtCQ00yODM1X0NMT0NLX0RTSTBFXQk9IFJFR0lTVEVSX1BFUl9DTEsoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gImRzaTBlIiwKIAkJLmN0bF9yZWcgPSBDTV9EU0kwRUNUTCwKIAkJLmRpdl9yZWcgPSBDTV9EU0kwRURJViwKQEAgLTIwNDcsNiArMjEyOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkuZnJhY19iaXRzID0gOCwKIAkJLnRjbnRfbXV4ID0gMTgpLAogCVtCQ00yODM1X0NMT0NLX0RTSTFFXQk9IFJFR0lTVEVSX1BFUl9DTEsoCisJCVNPQ19BTEwsCiAJCS5uYW1lID0gImRzaTFlIiwKIAkJLmN0bF9yZWcgPSBDTV9EU0kxRUNUTCwKIAkJLmRpdl9yZWcgPSBDTV9EU0kxRURJViwKQEAgLTIwNTQsNiArMjEzNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtMjgzNV9jbGtfZGVzYyBjbGtfZGVzY19hcnJheVtdID0gewogCQkuZnJhY19iaXRzID0gOCwKIAkJLnRjbnRfbXV4ID0gMTkpLAogCVtCQ00yODM1X0NMT0NLX0RTSTBQXQk9IFJFR0lTVEVSX0RTSTBfQ0xLKAorCQlTT0NfQUxMLAogCQkubmFtZSA9ICJkc2kwcCIsCiAJCS5jdGxfcmVnID0gQ01fRFNJMFBDVEwsCiAJCS5kaXZfcmVnID0gQ01fRFNJMFBESVYsCkBAIC0yMDYxLDYgKzIxNDUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTI4MzVfY2xrX2Rlc2MgY2xrX2Rlc2NfYXJyYXlbXSA9IHsKIAkJLmZyYWNfYml0cyA9IDAsCiAJCS50Y250X211eCA9IDEyKSwKIAlbQkNNMjgzNV9DTE9DS19EU0kxUF0JPSBSRUdJU1RFUl9EU0kxX0NMSygKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAiZHNpMXAiLAogCQkuY3RsX3JlZyA9IENNX0RTSTFQQ1RMLAogCQkuZGl2X3JlZyA9IENNX0RTSTFQRElWLApAQCAtMjA3Nyw2ICsyMTYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjIGNsa19kZXNjX2FycmF5W10gPSB7CiAJICogbm9uLXN0b3AgdnB1IGNsb2NrLgogCSAqLwogCVtCQ00yODM1X0NMT0NLX1BFUklfSU1BR0VdID0gUkVHSVNURVJfR0FURSgKKwkJU09DX0FMTCwKIAkJLm5hbWUgPSAicGVyaV9pbWFnZSIsCiAJCS5wYXJlbnQgPSAidnB1IiwKIAkJLmN0bF9yZWcgPSBDTV9QRVJJSUNUTCksCkBAIC0yMTA5LDkgKzIxOTUsMTQgQEAgc3RhdGljIGludCBiY20yODM1X2Nsa19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCWNvbnN0IHN0cnVjdCBiY20yODM1X2Nsa19kZXNjICpkZXNjOwogCWNvbnN0IHNpemVfdCBhc2l6ZSA9IEFSUkFZX1NJWkUoY2xrX2Rlc2NfYXJyYXkpOworCWNvbnN0IHN0cnVjdCBjcHJtYW5fcGxhdF9kYXRhICpwZGF0YTsKIAlzaXplX3QgaTsKIAlpbnQgcmV0OwogCisJcGRhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7CisJaWYgKCFwZGF0YSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAljcHJtYW4gPSBkZXZtX2t6YWxsb2MoZGV2LAogCQkJICAgICAgc3RydWN0X3NpemUoY3BybWFuLCBvbmVjZWxsLmh3cywgYXNpemUpLAogCQkJICAgICAgR0ZQX0tFUk5FTCk7CkBAIC0yMTQ3LDggKzIyMzgsMTAgQEAgc3RhdGljIGludCBiY20yODM1X2Nsa19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJZm9yIChpID0gMDsgaSA8IGFzaXplOyBpKyspIHsKIAkJZGVzYyA9ICZjbGtfZGVzY19hcnJheVtpXTsKLQkJaWYgKGRlc2MtPmNsa19yZWdpc3RlciAmJiBkZXNjLT5kYXRhKQorCQlpZiAoZGVzYy0+Y2xrX3JlZ2lzdGVyICYmIGRlc2MtPmRhdGEgJiYKKwkJICAgIChkZXNjLT5zdXBwb3J0ZWQgJiBwZGF0YS0+c29jKSkgewogCQkJaHdzW2ldID0gZGVzYy0+Y2xrX3JlZ2lzdGVyKGNwcm1hbiwgZGVzYy0+ZGF0YSk7CisJCX0KIAl9CiAKIAlyZXQgPSBiY20yODM1X21hcmtfc2RjX3BhcmVudF9jcml0aWNhbChod3NbQkNNMjgzNV9DTE9DS19TRFJBTV0tPmNsayk7CkBAIC0yMTU5LDggKzIyNTIsMTcgQEAgc3RhdGljIGludCBiY20yODM1X2Nsa19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQkJCSAgICAgICZjcHJtYW4tPm9uZWNlbGwpOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IGNwcm1hbl9wbGF0X2RhdGEgY3BybWFuX2JjbTI4MzVfcGxhdF9kYXRhID0geworCS5zb2MgPSBTT0NfQkNNMjgzNSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY3BybWFuX3BsYXRfZGF0YSBjcHJtYW5fYmNtMjcxMV9wbGF0X2RhdGEgPSB7CisJLnNvYyA9IFNPQ19CQ00yNzExLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYmNtMjgzNV9jbGtfb2ZfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gImJyY20sYmNtMjgzNS1jcHJtYW4iLCB9LAorCXsgLmNvbXBhdGlibGUgPSAiYnJjbSxiY20yODM1LWNwcm1hbiIsIC5kYXRhID0gJmNwcm1hbl9iY20yODM1X3BsYXRfZGF0YSB9LAorCXsgLmNvbXBhdGlibGUgPSAiYnJjbSxiY20yNzExLWNwcm1hbiIsIC5kYXRhID0gJmNwcm1hbl9iY20yNzExX3BsYXRfZGF0YSB9LAogCXt9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYmNtMjgzNV9jbGtfb2ZfbWF0Y2gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvYmNtL2Nsay1iY202M3h4LWdhdGUuYyBiL2RyaXZlcnMvY2xrL2JjbS9jbGstYmNtNjN4eC1nYXRlLmMKaW5kZXggOWUxZGNkNC4uOThlODg0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvYmNtL2Nsay1iY202M3h4LWdhdGUuYworKysgYi9kcml2ZXJzL2Nsay9iY20vY2xrLWJjbTYzeHgtZ2F0ZS5jCkBAIC0xNDYsNyArMTQ2LDYgQEAgc3RhdGljIGludCBjbGtfYmNtNjN4eF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCWNvbnN0IHN0cnVjdCBjbGtfYmNtNjN4eF90YWJsZV9lbnRyeSAqZW50cnksICp0YWJsZTsKIAlzdHJ1Y3QgY2xrX2JjbTYzeHhfaHcgKmh3OwotCXN0cnVjdCByZXNvdXJjZSAqcjsKIAl1OCBtYXhiaXQgPSAwOwogCWludCBpLCByZXQ7CiAKQEAgLTE3MCw4ICsxNjksNyBAQCBzdGF0aWMgaW50IGNsa19iY202M3h4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZm9yIChpID0gMDsgaSA8IG1heGJpdDsgaSsrKQogCQlody0+ZGF0YS5od3NbaV0gPSBFUlJfUFRSKC1FTk9ERVYpOwogCi0JciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JaHctPnJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcik7CisJaHctPnJlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7CiAJaWYgKElTX0VSUihody0+cmVncykpCiAJCXJldHVybiBQVFJfRVJSKGh3LT5yZWdzKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLWFzcGVlZC5jIGIvZHJpdmVycy9jbGsvY2xrLWFzcGVlZC5jCmluZGV4IDQyYjRkZjYuLmFiZjA2ZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Nsay1hc3BlZWQuYworKysgYi9kcml2ZXJzL2Nsay9jbGstYXNwZWVkLmMKQEAgLTEsMTkgKzEsMTkgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLy8gQ29weXJpZ2h0IElCTSBDb3JwCiAKICNkZWZpbmUgcHJfZm10KGZtdCkgImNsay1hc3BlZWQ6ICIgZm10CiAKLSNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2V0LWNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KIAogI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL2FzcGVlZC1jbG9jay5oPgogCisjaW5jbHVkZSAiY2xrLWFzcGVlZC5oIgorCiAjZGVmaW5lIEFTUEVFRF9OVU1fQ0xLUwkJMzYKIAogI2RlZmluZSBBU1BFRURfUkVTRVQyX09GRlNFVAkzMgpAQCAtNDIsNDggKzQyLDYgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhICphc3BlZWRfY2xrX2RhdGE7CiAKIHN0YXRpYyB2b2lkIF9faW9tZW0gKnNjdV9iYXNlOwogCi0vKioKLSAqIHN0cnVjdCBhc3BlZWRfZ2F0ZV9kYXRhIC0gQXNwZWVkIGdhdGVkIGNsb2NrcwotICogQGNsb2NrX2lkeDogYml0IHVzZWQgdG8gZ2F0ZSB0aGlzIGNsb2NrIGluIHRoZSBjbG9jayByZWdpc3RlcgotICogQHJlc2V0X2lkeDogYml0IHVzZWQgdG8gcmVzZXQgdGhpcyBJUCBpbiB0aGUgcmVzZXQgcmVnaXN0ZXIuIC0xIGlmIG5vCi0gKiAgICAgICAgICAgICByZXNldCBpcyByZXF1aXJlZCB3aGVuIGVuYWJsaW5nIHRoZSBjbG9jawotICogQG5hbWU6IHRoZSBjbG9jayBuYW1lCi0gKiBAcGFyZW50X25hbWU6IHRoZSBuYW1lIG9mIHRoZSBwYXJlbnQgY2xvY2sKLSAqIEBmbGFnczogc3RhbmRhcmQgY2xvY2sgZnJhbWV3b3JrIGZsYWdzCi0gKi8KLXN0cnVjdCBhc3BlZWRfZ2F0ZV9kYXRhIHsKLQl1OAkJY2xvY2tfaWR4OwotCXM4CQlyZXNldF9pZHg7Ci0JY29uc3QgY2hhcgkqbmFtZTsKLQljb25zdCBjaGFyCSpwYXJlbnRfbmFtZTsKLQl1bnNpZ25lZCBsb25nCWZsYWdzOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgYXNwZWVkX2Nsa19nYXRlIC0gQXNwZWVkIHNwZWNpZmljIGNsa19nYXRlIHN0cnVjdHVyZQotICogQGh3OgkJaGFuZGxlIGJldHdlZW4gY29tbW9uIGFuZCBoYXJkd2FyZS1zcGVjaWZpYyBpbnRlcmZhY2VzCi0gKiBAcmVnOglyZWdpc3RlciBjb250cm9sbGluZyBnYXRlCi0gKiBAY2xvY2tfaWR4OgliaXQgdXNlZCB0byBnYXRlIHRoaXMgY2xvY2sgaW4gdGhlIGNsb2NrIHJlZ2lzdGVyCi0gKiBAcmVzZXRfaWR4OgliaXQgdXNlZCB0byByZXNldCB0aGlzIElQIGluIHRoZSByZXNldCByZWdpc3Rlci4gLTEgaWYgbm8KLSAqCQlyZXNldCBpcyByZXF1aXJlZCB3aGVuIGVuYWJsaW5nIHRoZSBjbG9jawotICogQGZsYWdzOgloYXJkd2FyZS1zcGVjaWZpYyBmbGFncwotICogQGxvY2s6CXJlZ2lzdGVyIGxvY2sKLSAqCi0gKiBTb21lIG9mIHRoZSBjbG9ja3MgaW4gdGhlIEFzcGVlZCBTb0MgbXVzdCBiZSBwdXQgaW4gcmVzZXQgYmVmb3JlIGVuYWJsaW5nLgotICogVGhpcyBtb2RpZmllZCB2ZXJzaW9uIG9mIGNsa19nYXRlIGFsbG93cyBhbiBvcHRpb25hbCByZXNldCBiaXQgdG8gYmUKLSAqIHNwZWNpZmllZC4KLSAqLwotc3RydWN0IGFzcGVlZF9jbGtfZ2F0ZSB7Ci0Jc3RydWN0IGNsa19odwlodzsKLQlzdHJ1Y3QgcmVnbWFwCSptYXA7Ci0JdTgJCWNsb2NrX2lkeDsKLQlzOAkJcmVzZXRfaWR4OwotCXU4CQlmbGFnczsKLQlzcGlubG9ja190CSpsb2NrOwotfTsKLQotI2RlZmluZSB0b19hc3BlZWRfY2xrX2dhdGUoX2h3KSBjb250YWluZXJfb2YoX2h3LCBzdHJ1Y3QgYXNwZWVkX2Nsa19nYXRlLCBodykKLQogLyogVE9ETzogYXNrIEFzcGVlZCBhYm91dCB0aGUgYWN0dWFsIHBhcmVudCBkYXRhICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFzcGVlZF9nYXRlX2RhdGEgYXNwZWVkX2dhdGVzW10gPSB7CiAJLyoJCQkJIGNsayByc3QgICBuYW1lCQkJcGFyZW50CWZsYWdzICovCkBAIC0yMDgsMTMgKzE2Niw2IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3ICphc3BlZWRfYXN0MjUwMF9jYWxjX3BsbChjb25zdCBjaGFyICpuYW1lLCB1MzIgdmFsKQogCQkJbXVsdCwgZGl2KTsKIH0KIAotc3RydWN0IGFzcGVlZF9jbGtfc29jX2RhdGEgewotCWNvbnN0IHN0cnVjdCBjbGtfZGl2X3RhYmxlICpkaXZfdGFibGU7Ci0JY29uc3Qgc3RydWN0IGNsa19kaXZfdGFibGUgKmVjbGtfZGl2X3RhYmxlOwotCWNvbnN0IHN0cnVjdCBjbGtfZGl2X3RhYmxlICptYWNfZGl2X3RhYmxlOwotCXN0cnVjdCBjbGtfaHcgKigqY2FsY19wbGwpKGNvbnN0IGNoYXIgKm5hbWUsIHUzMiB2YWwpOwotfTsKLQogc3RhdGljIGNvbnN0IHN0cnVjdCBhc3BlZWRfY2xrX3NvY19kYXRhIGFzdDI1MDBfZGF0YSA9IHsKIAkuZGl2X3RhYmxlID0gYXN0MjUwMF9kaXZfdGFibGUsCiAJLmVjbGtfZGl2X3RhYmxlID0gYXN0MjUwMF9lY2xrX2Rpdl90YWJsZSwKQEAgLTMxNSwxOCArMjY2LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGFzcGVlZF9jbGtfZ2F0ZV9vcHMgPSB7CiAJLmlzX2VuYWJsZWQgPSBhc3BlZWRfY2xrX2lzX2VuYWJsZWQsCiB9OwogCi0vKioKLSAqIHN0cnVjdCBhc3BlZWRfcmVzZXQgLSBBc3BlZWQgcmVzZXQgY29udHJvbGxlcgotICogQG1hcDogcmVnbWFwIHRvIGFjY2VzcyB0aGUgY29udGFpbmluZyBzeXN0ZW0gY29udHJvbGxlcgotICogQHJjZGV2OiByZXNldCBjb250cm9sbGVyIGRldmljZQotICovCi1zdHJ1Y3QgYXNwZWVkX3Jlc2V0IHsKLQlzdHJ1Y3QgcmVnbWFwCQkJKm1hcDsKLQlzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYJcmNkZXY7Ci19OwotCi0jZGVmaW5lIHRvX2FzcGVlZF9yZXNldChwKSBjb250YWluZXJfb2YoKHApLCBzdHJ1Y3QgYXNwZWVkX3Jlc2V0LCByY2RldikKLQogc3RhdGljIGNvbnN0IHU4IGFzcGVlZF9yZXNldHNbXSA9IHsKIAkvKiBTQ1UwNCByZXNldHMgKi8KIAlbQVNQRUVEX1JFU0VUX1hETUFdCT0gMjUsCkBAIC01MDAsOSArNDM5LDE0IEBAIHN0YXRpYyBpbnQgYXNwZWVkX2Nsa19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gUFRSX0VSUihodyk7CiAJYXNwZWVkX2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19NUExMXSA9CWh3OwogCi0JLyogU0QvU0RJTyBjbG9jayBkaXZpZGVyIChUT0RPOiBUaGVyZSdzIGEgZ2F0ZSB0b28pICovCi0JaHcgPSBjbGtfaHdfcmVnaXN0ZXJfZGl2aWRlcl90YWJsZShkZXYsICJzZGlvIiwgImhwbGwiLCAwLAotCQkJc2N1X2Jhc2UgKyBBU1BFRURfQ0xLX1NFTEVDVElPTiwgMTIsIDMsIDAsCisJLyogU0QvU0RJTyBjbG9jayBkaXZpZGVyIGFuZCBnYXRlICovCisJaHcgPSBjbGtfaHdfcmVnaXN0ZXJfZ2F0ZShkZXYsICJzZF9leHRjbGtfZ2F0ZSIsICJocGxsIiwgMCwKKwkJCQkgIHNjdV9iYXNlICsgQVNQRUVEX0NMS19TRUxFQ1RJT04sIDE1LCAwLAorCQkJCSAgJmFzcGVlZF9jbGtfbG9jayk7CisJaWYgKElTX0VSUihodykpCisJCXJldHVybiBQVFJfRVJSKGh3KTsKKwlodyA9IGNsa19od19yZWdpc3Rlcl9kaXZpZGVyX3RhYmxlKGRldiwgInNkX2V4dGNsayIsICJzZF9leHRjbGtfZ2F0ZSIsCisJCQkwLCBzY3VfYmFzZSArIEFTUEVFRF9DTEtfU0VMRUNUSU9OLCAxMiwgMywgMCwKIAkJCXNvY19kYXRhLT5kaXZfdGFibGUsCiAJCQkmYXNwZWVkX2Nsa19sb2NrKTsKIAlpZiAoSVNfRVJSKGh3KSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay1hc3BlZWQuaCBiL2RyaXZlcnMvY2xrL2Nsay1hc3BlZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Mjk2YjE1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvY2xrLWFzcGVlZC5oCkBAIC0wLDAgKzEsODIgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCisvKgorICogU3RydWN0dXJlcyB1c2VkIGJ5IEFTUEVFRCBjbG9jayBkcml2ZXJzCisgKgorICogQ29weXJpZ2h0IDIwMTkgSUJNIENvcnAuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3Jlc2V0LWNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorCitzdHJ1Y3QgY2xrX2Rpdl90YWJsZTsKK3N0cnVjdCByZWdtYXA7CisKKy8qKgorICogc3RydWN0IGFzcGVlZF9nYXRlX2RhdGEgLSBBc3BlZWQgZ2F0ZWQgY2xvY2tzCisgKiBAY2xvY2tfaWR4OiBiaXQgdXNlZCB0byBnYXRlIHRoaXMgY2xvY2sgaW4gdGhlIGNsb2NrIHJlZ2lzdGVyCisgKiBAcmVzZXRfaWR4OiBiaXQgdXNlZCB0byByZXNldCB0aGlzIElQIGluIHRoZSByZXNldCByZWdpc3Rlci4gLTEgaWYgbm8KKyAqICAgICAgICAgICAgIHJlc2V0IGlzIHJlcXVpcmVkIHdoZW4gZW5hYmxpbmcgdGhlIGNsb2NrCisgKiBAbmFtZTogdGhlIGNsb2NrIG5hbWUKKyAqIEBwYXJlbnRfbmFtZTogdGhlIG5hbWUgb2YgdGhlIHBhcmVudCBjbG9jaworICogQGZsYWdzOiBzdGFuZGFyZCBjbG9jayBmcmFtZXdvcmsgZmxhZ3MKKyAqLworc3RydWN0IGFzcGVlZF9nYXRlX2RhdGEgeworCXU4CQljbG9ja19pZHg7CisJczgJCXJlc2V0X2lkeDsKKwljb25zdCBjaGFyCSpuYW1lOworCWNvbnN0IGNoYXIJKnBhcmVudF9uYW1lOworCXVuc2lnbmVkIGxvbmcJZmxhZ3M7Cit9OworCisvKioKKyAqIHN0cnVjdCBhc3BlZWRfY2xrX2dhdGUgLSBBc3BlZWQgc3BlY2lmaWMgY2xrX2dhdGUgc3RydWN0dXJlCisgKiBAaHc6CQloYW5kbGUgYmV0d2VlbiBjb21tb24gYW5kIGhhcmR3YXJlLXNwZWNpZmljIGludGVyZmFjZXMKKyAqIEByZWc6CXJlZ2lzdGVyIGNvbnRyb2xsaW5nIGdhdGUKKyAqIEBjbG9ja19pZHg6CWJpdCB1c2VkIHRvIGdhdGUgdGhpcyBjbG9jayBpbiB0aGUgY2xvY2sgcmVnaXN0ZXIKKyAqIEByZXNldF9pZHg6CWJpdCB1c2VkIHRvIHJlc2V0IHRoaXMgSVAgaW4gdGhlIHJlc2V0IHJlZ2lzdGVyLiAtMSBpZiBubworICoJCXJlc2V0IGlzIHJlcXVpcmVkIHdoZW4gZW5hYmxpbmcgdGhlIGNsb2NrCisgKiBAZmxhZ3M6CWhhcmR3YXJlLXNwZWNpZmljIGZsYWdzCisgKiBAbG9jazoJcmVnaXN0ZXIgbG9jaworICoKKyAqIFNvbWUgb2YgdGhlIGNsb2NrcyBpbiB0aGUgQXNwZWVkIFNvQyBtdXN0IGJlIHB1dCBpbiByZXNldCBiZWZvcmUgZW5hYmxpbmcuCisgKiBUaGlzIG1vZGlmaWVkIHZlcnNpb24gb2YgY2xrX2dhdGUgYWxsb3dzIGFuIG9wdGlvbmFsIHJlc2V0IGJpdCB0byBiZQorICogc3BlY2lmaWVkLgorICovCitzdHJ1Y3QgYXNwZWVkX2Nsa19nYXRlIHsKKwlzdHJ1Y3QgY2xrX2h3CWh3OworCXN0cnVjdCByZWdtYXAJKm1hcDsKKwl1OAkJY2xvY2tfaWR4OworCXM4CQlyZXNldF9pZHg7CisJdTgJCWZsYWdzOworCXNwaW5sb2NrX3QJKmxvY2s7Cit9OworCisjZGVmaW5lIHRvX2FzcGVlZF9jbGtfZ2F0ZShfaHcpIGNvbnRhaW5lcl9vZihfaHcsIHN0cnVjdCBhc3BlZWRfY2xrX2dhdGUsIGh3KQorCisvKioKKyAqIHN0cnVjdCBhc3BlZWRfcmVzZXQgLSBBc3BlZWQgcmVzZXQgY29udHJvbGxlcgorICogQG1hcDogcmVnbWFwIHRvIGFjY2VzcyB0aGUgY29udGFpbmluZyBzeXN0ZW0gY29udHJvbGxlcgorICogQHJjZGV2OiByZXNldCBjb250cm9sbGVyIGRldmljZQorICovCitzdHJ1Y3QgYXNwZWVkX3Jlc2V0IHsKKwlzdHJ1Y3QgcmVnbWFwCQkJKm1hcDsKKwlzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYJcmNkZXY7Cit9OworCisjZGVmaW5lIHRvX2FzcGVlZF9yZXNldChwKSBjb250YWluZXJfb2YoKHApLCBzdHJ1Y3QgYXNwZWVkX3Jlc2V0LCByY2RldikKKworLyoqCisgKiBzdHJ1Y3QgYXNwZWVkX2Nsa19zb2NfZGF0YSAtIEFzcGVlZCBTb0Mgc3BlY2lmaWMgZGl2aXNvciBpbmZvcm1hdGlvbgorICogQGRpdl90YWJsZTogQ29tbW9uIGRpdmlkZXIgbG9va3VwIHRhYmxlCisgKiBAZWNsa19kaXZfdGFibGU6IERpdmlkZXIgbG9va3VwIHRhYmxlIGZvciBFQ0xLCisgKiBAbWFjX2Rpdl90YWJsZTogRGl2aWRlciBsb29rdXAgdGFibGUgZm9yIE1BQyAoRXRoZXJuZXQpIGNsb2NrcworICogQGNhbGNfcGxsOiBDYWxsYmFjayB0byBtYWN1bGF0ZSBjb21tb24gUExMIHNldHRpbmdzCisgKi8KK3N0cnVjdCBhc3BlZWRfY2xrX3NvY19kYXRhIHsKKwljb25zdCBzdHJ1Y3QgY2xrX2Rpdl90YWJsZSAqZGl2X3RhYmxlOworCWNvbnN0IHN0cnVjdCBjbGtfZGl2X3RhYmxlICplY2xrX2Rpdl90YWJsZTsKKwljb25zdCBzdHJ1Y3QgY2xrX2Rpdl90YWJsZSAqbWFjX2Rpdl90YWJsZTsKKwlzdHJ1Y3QgY2xrX2h3ICooKmNhbGNfcGxsKShjb25zdCBjaGFyICpuYW1lLCB1MzIgdmFsKTsKK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9jbGstYXN0MjYwMC5jIGIvZHJpdmVycy9jbGsvY2xrLWFzdDI2MDAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzFiYjM5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvY2xrLWFzdDI2MDAuYwpAQCAtMCwwICsxLDcwNCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKy8vIENvcHlyaWdodCBJQk0gQ29ycAorLy8gQ29weXJpZ2h0IEFTUEVFRCBUZWNobm9sb2d5CisKKyNkZWZpbmUgcHJfZm10KGZtdCkgImNsay1hc3QyNjAwOiAiIGZtdAorCisjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9hc3QyNjAwLWNsb2NrLmg+CisKKyNpbmNsdWRlICJjbGstYXNwZWVkLmgiCisKKyNkZWZpbmUgQVNQRUVEX0c2X05VTV9DTEtTCQk2NworCisjZGVmaW5lIEFTUEVFRF9HNl9TSUxJQ09OX1JFVgkJMHgwMDQKKworI2RlZmluZSBBU1BFRURfRzZfUkVTRVRfQ1RSTAkJMHgwNDAKKyNkZWZpbmUgQVNQRUVEX0c2X1JFU0VUX0NUUkwyCQkweDA1MAorCisjZGVmaW5lIEFTUEVFRF9HNl9DTEtfU1RPUF9DVFJMCQkweDA4MAorI2RlZmluZSBBU1BFRURfRzZfQ0xLX1NUT1BfQ1RSTDIJMHgwOTAKKworI2RlZmluZSBBU1BFRURfRzZfTUlTQ19DVFJMCQkweDBDMAorI2RlZmluZSAgVUFSVF9ESVYxM19FTgkJCUJJVCgxMikKKworI2RlZmluZSBBU1BFRURfRzZfQ0xLX1NFTEVDVElPTjEJMHgzMDAKKyNkZWZpbmUgQVNQRUVEX0c2X0NMS19TRUxFQ1RJT04yCTB4MzA0CisjZGVmaW5lIEFTUEVFRF9HNl9DTEtfU0VMRUNUSU9ONAkweDMxMAorCisjZGVmaW5lIEFTUEVFRF9IUExMX1BBUkFNCQkweDIwMAorI2RlZmluZSBBU1BFRURfQVBMTF9QQVJBTQkJMHgyMTAKKyNkZWZpbmUgQVNQRUVEX01QTExfUEFSQU0JCTB4MjIwCisjZGVmaW5lIEFTUEVFRF9FUExMX1BBUkFNCQkweDI0MAorI2RlZmluZSBBU1BFRURfRFBMTF9QQVJBTQkJMHgyNjAKKworI2RlZmluZSBBU1BFRURfRzZfU1RSQVAxCQkweDUwMAorCisvKiBHbG9iYWxseSB2aXNpYmxlIGNsb2NrcyAqLworc3RhdGljIERFRklORV9TUElOTE9DSyhhc3BlZWRfZzZfY2xrX2xvY2spOworCisvKiBLZWVwcyB0cmFjayBvZiBhbGwgY2xvY2tzICovCitzdGF0aWMgc3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgKmFzcGVlZF9nNl9jbGtfZGF0YTsKKworc3RhdGljIHZvaWQgX19pb21lbSAqc2N1X2c2X2Jhc2U7CisKKy8qCisgKiBDbG9ja3MgbWFya2VkIHdpdGggQ0xLX0lTX0NSSVRJQ0FMOgorICoKKyAqICByZWYwIGFuZCByZWYxIGFyZSBlc3NlbnRpYWwgZm9yIHRoZSBTb0MgdG8gb3BlcmF0ZQorICogIG1wbGwgaXMgcmVxdWlyZWQgaWYgU0RSQU0gaXMgdXNlZAorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGFzcGVlZF9nYXRlX2RhdGEgYXNwZWVkX2c2X2dhdGVzW10gPSB7CisJLyoJCQkJICAgIGNsayByc3QgIG5hbWUJCXBhcmVudAkgZmxhZ3MgKi8KKwlbQVNQRUVEX0NMS19HQVRFX01DTEtdCQk9IHsgIDAsIC0xLCAibWNsay1nYXRlIiwJIm1wbGwiLAkgQ0xLX0lTX0NSSVRJQ0FMIH0sIC8qIFNEUkFNICovCisJW0FTUEVFRF9DTEtfR0FURV9FQ0xLXQkJPSB7ICAxLCAtMSwgImVjbGstZ2F0ZSIsCSJlY2xrIiwJIDAgfSwJLyogVmlkZW8gRW5naW5lICovCisJW0FTUEVFRF9DTEtfR0FURV9HQ0xLXQkJPSB7ICAyLCAgNywgImdjbGstZ2F0ZSIsCU5VTEwsCSAwIH0sCS8qIDJEIGVuZ2luZSAqLworCS8qIHZjbGsgcGFyZW50IC0gZGNsay9kMWNsay9oY2xrL21jbGsgKi8KKwlbQVNQRUVEX0NMS19HQVRFX1ZDTEtdCQk9IHsgIDMsICA2LCAidmNsay1nYXRlIiwJTlVMTCwJIDAgfSwJLyogVmlkZW8gQ2FwdHVyZSAqLworCVtBU1BFRURfQ0xLX0dBVEVfQkNMS10JCT0geyAgNCwgIDgsICJiY2xrLWdhdGUiLAkiYmNsayIsCSAwIH0sIC8qIFBDSWUvUENJICovCisJLyogRnJvbSBkcGxsICovCisJW0FTUEVFRF9DTEtfR0FURV9EQ0xLXQkJPSB7ICA1LCAtMSwgImRjbGstZ2F0ZSIsCU5VTEwsCSBDTEtfSVNfQ1JJVElDQUwgfSwgLyogREFDICovCisJW0FTUEVFRF9DTEtfR0FURV9SRUYwQ0xLXQk9IHsgIDYsIC0xLCAicmVmMGNsay1nYXRlIiwJImNsa2luIiwgQ0xLX0lTX0NSSVRJQ0FMIH0sCisJW0FTUEVFRF9DTEtfR0FURV9VU0JQT1JUMkNMS10JPSB7ICA3LCAgMywgInVzYi1wb3J0Mi1nYXRlIiwJTlVMTCwJIDAgfSwJLyogVVNCMi4wIEhvc3QgcG9ydCAyICovCisJLyogUmVzZXJ2ZWQgOCAqLworCVtBU1BFRURfQ0xLX0dBVEVfVVNCVUhDSUNMS10JPSB7ICA5LCAxNSwgInVzYi11aGNpLWdhdGUiLAlOVUxMLAkgMCB9LAkvKiBVU0IxLjEgKHJlcXVpcmVzIHBvcnQgMiBlbmFibGVkKSAqLworCS8qIEZyb20gZHBsbC9lcGxsLzQwbWh6IHVzYiBwMSBwaHkvZ3Bpb2M2L2RwIHBoeSBwbGwgKi8KKwlbQVNQRUVEX0NMS19HQVRFX0QxQ0xLXQkJPSB7IDEwLCAxMywgImQxY2xrLWdhdGUiLAkiZDFjbGsiLCAwIH0sCS8qIEdGWCBDUlQgKi8KKwkvKiBSZXNlcnZlZCAxMS8xMiAqLworCVtBU1BFRURfQ0xLX0dBVEVfWUNMS10JCT0geyAxMywgIDQsICJ5Y2xrLWdhdGUiLAlOVUxMLAkgMCB9LAkvKiBIQUMgKi8KKwlbQVNQRUVEX0NMS19HQVRFX1VTQlBPUlQxQ0xLXQk9IHsgMTQsIDE0LCAidXNiLXBvcnQxLWdhdGUiLAlOVUxMLAkgMCB9LAkvKiBVU0IyIGh1Yi9VU0IyIGhvc3QgcG9ydCAxL1VTQjEuMSBkZXYgKi8KKwlbQVNQRUVEX0NMS19HQVRFX1VBUlQ1Q0xLXQk9IHsgMTUsIC0xLCAidWFydDVjbGstZ2F0ZSIsCSJ1YXJ0IiwJIDAgfSwJLyogVUFSVDUgKi8KKwkvKiBSZXNlcnZlZCAxNi8xOSAqLworCVtBU1BFRURfQ0xLX0dBVEVfTUFDMUNMS10JPSB7IDIwLCAxMSwgIm1hYzFjbGstZ2F0ZSIsCSJtYWMxMiIsIDAgfSwJLyogTUFDMSAqLworCVtBU1BFRURfQ0xLX0dBVEVfTUFDMkNMS10JPSB7IDIxLCAxMiwgIm1hYzJjbGstZ2F0ZSIsCSJtYWMxMiIsIDAgfSwJLyogTUFDMiAqLworCS8qIFJlc2VydmVkIDIyLzIzICovCisJW0FTUEVFRF9DTEtfR0FURV9SU0FDTEtdCT0geyAyNCwgIDQsICJyc2FjbGstZ2F0ZSIsCU5VTEwsCSAwIH0sCS8qIEhBQyAqLworCVtBU1BFRURfQ0xLX0dBVEVfUlZBU0NMS10JPSB7IDI1LCAgOSwgInJ2YXNjbGstZ2F0ZSIsCU5VTEwsCSAwIH0sCS8qIFJWQVMgKi8KKwkvKiBSZXNlcnZlZCAyNiAqLworCVtBU1BFRURfQ0xLX0dBVEVfRU1NQ0NMS10JPSB7IDI3LCAxNiwgImVtbWNjbGstZ2F0ZSIsCU5VTEwsCSAwIH0sCS8qIEZvciBjYXJkIGNsayAqLworCS8qIFJlc2VydmVkIDI4LzI5LzMwICovCisJW0FTUEVFRF9DTEtfR0FURV9MQ0xLXQkJPSB7IDMyLCAzMiwgImxjbGstZ2F0ZSIsCU5VTEwsCSAwIH0sIC8qIExQQyAqLworCVtBU1BFRURfQ0xLX0dBVEVfRVNQSUNMS10JPSB7IDMzLCAtMSwgImVzcGljbGstZ2F0ZSIsCU5VTEwsCSAwIH0sIC8qIGVTUEkgKi8KKwlbQVNQRUVEX0NMS19HQVRFX1JFRjFDTEtdCT0geyAzNCwgLTEsICJyZWYxY2xrLWdhdGUiLAkiY2xraW4iLCBDTEtfSVNfQ1JJVElDQUwgfSwKKwkvKiBSZXNlcnZlZCAzNSAqLworCVtBU1BFRURfQ0xLX0dBVEVfU0RDTEtdCQk9IHsgMzYsIDU2LCAic2RjbGstZ2F0ZSIsCU5VTEwsCSAwIH0sCS8qIFNESU8vU0QgKi8KKwlbQVNQRUVEX0NMS19HQVRFX0xIQ0NMS10JPSB7IDM3LCAtMSwgImxoY2xrLWdhdGUiLAkibGhjbGsiLCAwIH0sCS8qIExQQyBtYXN0ZXIvTFBDKyAqLworCS8qIFJlc2VydmVkIDM4IFJTQTogbm8gbG9uZ2VyIHVzZWQgKi8KKwkvKiBSZXNlcnZlZCAzOSAqLworCVtBU1BFRURfQ0xLX0dBVEVfSTNDMENMS10JPSB7IDQwLCAgNDAsICJpM2MwY2xrLWdhdGUiLAlOVUxMLAkgMCB9LAkvKiBJM0MwICovCisJW0FTUEVFRF9DTEtfR0FURV9JM0MxQ0xLXQk9IHsgNDEsICA0MSwgImkzYzFjbGstZ2F0ZSIsCU5VTEwsCSAwIH0sCS8qIEkzQzEgKi8KKwlbQVNQRUVEX0NMS19HQVRFX0kzQzJDTEtdCT0geyA0MiwgIDQyLCAiaTNjMmNsay1nYXRlIiwJTlVMTCwJIDAgfSwJLyogSTNDMiAqLworCVtBU1BFRURfQ0xLX0dBVEVfSTNDM0NMS10JPSB7IDQzLCAgNDMsICJpM2MzY2xrLWdhdGUiLAlOVUxMLAkgMCB9LAkvKiBJM0MzICovCisJW0FTUEVFRF9DTEtfR0FURV9JM0M0Q0xLXQk9IHsgNDQsICA0NCwgImkzYzRjbGstZ2F0ZSIsCU5VTEwsCSAwIH0sCS8qIEkzQzQgKi8KKwlbQVNQRUVEX0NMS19HQVRFX0kzQzVDTEtdCT0geyA0NSwgIDQ1LCAiaTNjNWNsay1nYXRlIiwJTlVMTCwJIDAgfSwJLyogSTNDNSAqLworCVtBU1BFRURfQ0xLX0dBVEVfSTNDNkNMS10JPSB7IDQ2LCAgNDYsICJpM2M2Y2xrLWdhdGUiLAlOVUxMLAkgMCB9LAkvKiBJM0M2ICovCisJW0FTUEVFRF9DTEtfR0FURV9JM0M3Q0xLXQk9IHsgNDcsICA0NywgImkzYzdjbGstZ2F0ZSIsCU5VTEwsCSAwIH0sCS8qIEkzQzcgKi8KKwlbQVNQRUVEX0NMS19HQVRFX1VBUlQxQ0xLXQk9IHsgNDgsICAtMSwgInVhcnQxY2xrLWdhdGUiLAkidWFydCIsCSAwIH0sCS8qIFVBUlQxICovCisJW0FTUEVFRF9DTEtfR0FURV9VQVJUMkNMS10JPSB7IDQ5LCAgLTEsICJ1YXJ0MmNsay1nYXRlIiwJInVhcnQiLAkgMCB9LAkvKiBVQVJUMiAqLworCVtBU1BFRURfQ0xLX0dBVEVfVUFSVDNDTEtdCT0geyA1MCwgIC0xLCAidWFydDNjbGstZ2F0ZSIsCSJ1YXJ0IiwgIDAgfSwJLyogVUFSVDMgKi8KKwlbQVNQRUVEX0NMS19HQVRFX1VBUlQ0Q0xLXQk9IHsgNTEsICAtMSwgInVhcnQ0Y2xrLWdhdGUiLAkidWFydCIsCSAwIH0sCS8qIFVBUlQ0ICovCisJW0FTUEVFRF9DTEtfR0FURV9NQUMzQ0xLXQk9IHsgNTIsICA1MiwgIm1hYzNjbGstZ2F0ZSIsCSJtYWMzNCIsIDAgfSwJLyogTUFDMyAqLworCVtBU1BFRURfQ0xLX0dBVEVfTUFDNENMS10JPSB7IDUzLCAgNTMsICJtYWM0Y2xrLWdhdGUiLAkibWFjMzQiLCAwIH0sCS8qIE1BQzQgKi8KKwlbQVNQRUVEX0NMS19HQVRFX1VBUlQ2Q0xLXQk9IHsgNTQsICAtMSwgInVhcnQ2Y2xrLWdhdGUiLAkidWFydHgiLCAwIH0sCS8qIFVBUlQ2ICovCisJW0FTUEVFRF9DTEtfR0FURV9VQVJUN0NMS10JPSB7IDU1LCAgLTEsICJ1YXJ0N2Nsay1nYXRlIiwJInVhcnR4IiwgMCB9LAkvKiBVQVJUNyAqLworCVtBU1BFRURfQ0xLX0dBVEVfVUFSVDhDTEtdCT0geyA1NiwgIC0xLCAidWFydDhjbGstZ2F0ZSIsCSJ1YXJ0eCIsIDAgfSwJLyogVUFSVDggKi8KKwlbQVNQRUVEX0NMS19HQVRFX1VBUlQ5Q0xLXQk9IHsgNTcsICAtMSwgInVhcnQ5Y2xrLWdhdGUiLAkidWFydHgiLCAwIH0sCS8qIFVBUlQ5ICovCisJW0FTUEVFRF9DTEtfR0FURV9VQVJUMTBDTEtdCT0geyA1OCwgIC0xLCAidWFydDEwY2xrLWdhdGUiLAkidWFydHgiLCAwIH0sCS8qIFVBUlQxMCAqLworCVtBU1BFRURfQ0xLX0dBVEVfVUFSVDExQ0xLXQk9IHsgNTksICAtMSwgInVhcnQxMWNsay1nYXRlIiwJInVhcnR4IiwgMCB9LAkvKiBVQVJUMTEgKi8KKwlbQVNQRUVEX0NMS19HQVRFX1VBUlQxMkNMS10JPSB7IDYwLCAgLTEsICJ1YXJ0MTJjbGstZ2F0ZSIsCSJ1YXJ0eCIsIDAgfSwJLyogVUFSVDEyICovCisJW0FTUEVFRF9DTEtfR0FURV9VQVJUMTNDTEtdCT0geyA2MSwgIC0xLCAidWFydDEzY2xrLWdhdGUiLAkidWFydHgiLCAwIH0sCS8qIFVBUlQxMyAqLworCVtBU1BFRURfQ0xLX0dBVEVfRlNJQ0xLXQk9IHsgNjIsICA1OSwgImZzaWNsay1nYXRlIiwJTlVMTCwJIDAgfSwJLyogRlNJICovCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVjbGtfcGFyZW50X25hbWVzW10gPSB7ICJtcGxsIiwgImhwbGwiLCAiZHBsbCIgfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfZGl2X3RhYmxlIGFzdDI2MDBfZWNsa19kaXZfdGFibGVbXSA9IHsKKwl7IDB4MCwgMiB9LAorCXsgMHgxLCAyIH0sCisJeyAweDIsIDMgfSwKKwl7IDB4MywgNCB9LAorCXsgMHg0LCA1IH0sCisJeyAweDUsIDYgfSwKKwl7IDB4NiwgNyB9LAorCXsgMHg3LCA4IH0sCisJeyAwIH0KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2Rpdl90YWJsZSBhc3QyNjAwX21hY19kaXZfdGFibGVbXSA9IHsKKwl7IDB4MCwgNCB9LAorCXsgMHgxLCA0IH0sCisJeyAweDIsIDYgfSwKKwl7IDB4MywgOCB9LAorCXsgMHg0LCAxMCB9LAorCXsgMHg1LCAxMiB9LAorCXsgMHg2LCAxNCB9LAorCXsgMHg3LCAxNiB9LAorCXsgMCB9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19kaXZfdGFibGUgYXN0MjYwMF9kaXZfdGFibGVbXSA9IHsKKwl7IDB4MCwgNCB9LAorCXsgMHgxLCA4IH0sCisJeyAweDIsIDEyIH0sCisJeyAweDMsIDE2IH0sCisJeyAweDQsIDIwIH0sCisJeyAweDUsIDI0IH0sCisJeyAweDYsIDI4IH0sCisJeyAweDcsIDMyIH0sCisJeyAwIH0KK307CisKKy8qIEZvciBocGxsL2RwbGwvZXBsbC9tcGxsICovCitzdGF0aWMgc3RydWN0IGNsa19odyAqYXN0MjYwMF9jYWxjX3BsbChjb25zdCBjaGFyICpuYW1lLCB1MzIgdmFsKQoreworCXVuc2lnbmVkIGludCBtdWx0LCBkaXY7CisKKwlpZiAodmFsICYgQklUKDI0KSkgeworCQkvKiBQYXNzIHRocm91Z2ggbW9kZSAqLworCQltdWx0ID0gZGl2ID0gMTsKKwl9IGVsc2UgeworCQkvKiBGID0gMjVNaHogKiBbKE0gKyAyKSAvIChuICsgMSldIC8gKHAgKyAxKSAqLworCQl1MzIgbSA9IHZhbCAgJiAweDFmZmY7CisJCXUzMiBuID0gKHZhbCA+PiAxMykgJiAweDNmOworCQl1MzIgcCA9ICh2YWwgPj4gMTkpICYgMHhmOworCQltdWx0ID0gKG0gKyAxKSAvIChuICsgMSk7CisJCWRpdiA9IChwICsgMSk7CisJfQorCXJldHVybiBjbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKE5VTEwsIG5hbWUsICJjbGtpbiIsIDAsCisJCQltdWx0LCBkaXYpOworfTsKKworc3RhdGljIHN0cnVjdCBjbGtfaHcgKmFzdDI2MDBfY2FsY19hcGxsKGNvbnN0IGNoYXIgKm5hbWUsIHUzMiB2YWwpCit7CisJdW5zaWduZWQgaW50IG11bHQsIGRpdjsKKworCWlmICh2YWwgJiBCSVQoMjApKSB7CisJCS8qIFBhc3MgdGhyb3VnaCBtb2RlICovCisJCW11bHQgPSBkaXYgPSAxOworCX0gZWxzZSB7CisJCS8qIEYgPSAyNU1oeiAqICgyLW9kKSAqIFsobSArIDIpIC8gKG4gKyAxKV0gKi8KKwkJdTMyIG0gPSAodmFsID4+IDUpICYgMHgzZjsKKwkJdTMyIG9kID0gKHZhbCA+PiA0KSAmIDB4MTsKKwkJdTMyIG4gPSB2YWwgJiAweGY7CisKKwkJbXVsdCA9ICgyIC0gb2QpICogKG0gKyAyKTsKKwkJZGl2ID0gbiArIDE7CisJfQorCXJldHVybiBjbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKE5VTEwsIG5hbWUsICJjbGtpbiIsIDAsCisJCQltdWx0LCBkaXYpOworfTsKKworc3RhdGljIHUzMiBnZXRfYml0KHU4IGlkeCkKK3sKKwlyZXR1cm4gQklUKGlkeCAlIDMyKTsKK30KKworc3RhdGljIHUzMiBnZXRfcmVzZXRfcmVnKHN0cnVjdCBhc3BlZWRfY2xrX2dhdGUgKmdhdGUpCit7CisJaWYgKGdhdGUtPnJlc2V0X2lkeCA8IDMyKQorCQlyZXR1cm4gQVNQRUVEX0c2X1JFU0VUX0NUUkw7CisKKwlyZXR1cm4gQVNQRUVEX0c2X1JFU0VUX0NUUkwyOworfQorCitzdGF0aWMgdTMyIGdldF9jbG9ja19yZWcoc3RydWN0IGFzcGVlZF9jbGtfZ2F0ZSAqZ2F0ZSkKK3sKKwlpZiAoZ2F0ZS0+Y2xvY2tfaWR4IDwgMzIpCisJCXJldHVybiBBU1BFRURfRzZfQ0xLX1NUT1BfQ1RSTDsKKworCXJldHVybiBBU1BFRURfRzZfQ0xLX1NUT1BfQ1RSTDI7Cit9CisKK3N0YXRpYyBpbnQgYXNwZWVkX2c2X2Nsa19pc19lbmFibGVkKHN0cnVjdCBjbGtfaHcgKmh3KQoreworCXN0cnVjdCBhc3BlZWRfY2xrX2dhdGUgKmdhdGUgPSB0b19hc3BlZWRfY2xrX2dhdGUoaHcpOworCXUzMiBjbGsgPSBnZXRfYml0KGdhdGUtPmNsb2NrX2lkeCk7CisJdTMyIHJzdCA9IGdldF9iaXQoZ2F0ZS0+cmVzZXRfaWR4KTsKKwl1MzIgcmVnOworCXUzMiBlbnZhbDsKKworCS8qCisJICogSWYgdGhlIElQIGlzIGluIHJlc2V0LCB0cmVhdCB0aGUgY2xvY2sgYXMgbm90IGVuYWJsZWQsCisJICogdGhpcyBoYXBwZW5zIHdpdGggc29tZSBjbG9ja3Mgc3VjaCBhcyB0aGUgVVNCIG9uZSB3aGVuCisJICogY29taW5nIGZyb20gY29sZCByZXNldC4gV2l0aG91dCB0aGlzLCBhc3BlZWRfY2xrX2VuYWJsZSgpCisJICogd2lsbCBmYWlsIHRvIGxpZnQgdGhlIHJlc2V0LgorCSAqLworCWlmIChnYXRlLT5yZXNldF9pZHggPj0gMCkgeworCQlyZWdtYXBfcmVhZChnYXRlLT5tYXAsIGdldF9yZXNldF9yZWcoZ2F0ZSksICZyZWcpOworCisJCWlmIChyZWcgJiByc3QpCisJCQlyZXR1cm4gMDsKKwl9CisKKwlyZWdtYXBfcmVhZChnYXRlLT5tYXAsIGdldF9jbG9ja19yZWcoZ2F0ZSksICZyZWcpOworCisJZW52YWwgPSAoZ2F0ZS0+ZmxhZ3MgJiBDTEtfR0FURV9TRVRfVE9fRElTQUJMRSkgPyAwIDogY2xrOworCisJcmV0dXJuICgocmVnICYgY2xrKSA9PSBlbnZhbCkgPyAxIDogMDsKK30KKworc3RhdGljIGludCBhc3BlZWRfZzZfY2xrX2VuYWJsZShzdHJ1Y3QgY2xrX2h3ICpodykKK3sKKwlzdHJ1Y3QgYXNwZWVkX2Nsa19nYXRlICpnYXRlID0gdG9fYXNwZWVkX2Nsa19nYXRlKGh3KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXUzMiBjbGsgPSBnZXRfYml0KGdhdGUtPmNsb2NrX2lkeCk7CisJdTMyIHJzdCA9IGdldF9iaXQoZ2F0ZS0+cmVzZXRfaWR4KTsKKworCXNwaW5fbG9ja19pcnFzYXZlKGdhdGUtPmxvY2ssIGZsYWdzKTsKKworCWlmIChhc3BlZWRfZzZfY2xrX2lzX2VuYWJsZWQoaHcpKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZ2F0ZS0+bG9jaywgZmxhZ3MpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoZ2F0ZS0+cmVzZXRfaWR4ID49IDApIHsKKwkJLyogUHV0IElQIGluIHJlc2V0ICovCisJCXJlZ21hcF93cml0ZShnYXRlLT5tYXAsIGdldF9yZXNldF9yZWcoZ2F0ZSksIHJzdCk7CisJCS8qIERlbGF5IDEwMHVzICovCisJCXVkZWxheSgxMDApOworCX0KKworCS8qIEVuYWJsZSBjbG9jayAqLworCWlmIChnYXRlLT5mbGFncyAmIENMS19HQVRFX1NFVF9UT19ESVNBQkxFKSB7CisJCXJlZ21hcF93cml0ZShnYXRlLT5tYXAsIGdldF9jbG9ja19yZWcoZ2F0ZSksIGNsayk7CisJfSBlbHNlIHsKKwkJLyogVXNlIHNldCB0byBjbGVhciByZWdpc3RlciAqLworCQlyZWdtYXBfd3JpdGUoZ2F0ZS0+bWFwLCBnZXRfY2xvY2tfcmVnKGdhdGUpICsgMHgwNCwgY2xrKTsKKwl9CisKKwlpZiAoZ2F0ZS0+cmVzZXRfaWR4ID49IDApIHsKKwkJLyogQSBkZWxheSBvZiAxMG1zIGlzIHNwZWNpZmllZCBieSB0aGUgQVNQRUVEIGRvY3MgKi8KKwkJbWRlbGF5KDEwKTsKKwkJLyogVGFrZSBJUCBvdXQgb2YgcmVzZXQgKi8KKwkJcmVnbWFwX3dyaXRlKGdhdGUtPm1hcCwgZ2V0X3Jlc2V0X3JlZyhnYXRlKSArIDB4NCwgcnN0KTsKKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKGdhdGUtPmxvY2ssIGZsYWdzKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBhc3BlZWRfZzZfY2xrX2Rpc2FibGUoc3RydWN0IGNsa19odyAqaHcpCit7CisJc3RydWN0IGFzcGVlZF9jbGtfZ2F0ZSAqZ2F0ZSA9IHRvX2FzcGVlZF9jbGtfZ2F0ZShodyk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1MzIgY2xrID0gZ2V0X2JpdChnYXRlLT5jbG9ja19pZHgpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoZ2F0ZS0+bG9jaywgZmxhZ3MpOworCisJaWYgKGdhdGUtPmZsYWdzICYgQ0xLX0dBVEVfU0VUX1RPX0RJU0FCTEUpIHsKKwkJcmVnbWFwX3dyaXRlKGdhdGUtPm1hcCwgZ2V0X2Nsb2NrX3JlZyhnYXRlKSwgY2xrKTsKKwl9IGVsc2UgeworCQkvKiBVc2Ugc2V0IHRvIGNsZWFyIHJlZ2lzdGVyICovCisJCXJlZ21hcF93cml0ZShnYXRlLT5tYXAsIGdldF9jbG9ja19yZWcoZ2F0ZSkgKyAweDQsIGNsayk7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShnYXRlLT5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBhc3BlZWRfZzZfY2xrX2dhdGVfb3BzID0geworCS5lbmFibGUgPSBhc3BlZWRfZzZfY2xrX2VuYWJsZSwKKwkuZGlzYWJsZSA9IGFzcGVlZF9nNl9jbGtfZGlzYWJsZSwKKwkuaXNfZW5hYmxlZCA9IGFzcGVlZF9nNl9jbGtfaXNfZW5hYmxlZCwKK307CisKK3N0YXRpYyBpbnQgYXNwZWVkX2c2X3Jlc2V0X2RlYXNzZXJ0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCisJCQkJICAgIHVuc2lnbmVkIGxvbmcgaWQpCit7CisJc3RydWN0IGFzcGVlZF9yZXNldCAqYXIgPSB0b19hc3BlZWRfcmVzZXQocmNkZXYpOworCXUzMiByc3QgPSBnZXRfYml0KGlkKTsKKwl1MzIgcmVnID0gaWQgPj0gMzIgPyBBU1BFRURfRzZfUkVTRVRfQ1RSTDIgOiBBU1BFRURfRzZfUkVTRVRfQ1RSTDsKKworCS8qIFVzZSBzZXQgdG8gY2xlYXIgcmVnaXN0ZXIgKi8KKwlyZXR1cm4gcmVnbWFwX3dyaXRlKGFyLT5tYXAsIHJlZyArIDB4MDQsIHJzdCk7Cit9CisKK3N0YXRpYyBpbnQgYXNwZWVkX2c2X3Jlc2V0X2Fzc2VydChzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorCQkJCSAgdW5zaWduZWQgbG9uZyBpZCkKK3sKKwlzdHJ1Y3QgYXNwZWVkX3Jlc2V0ICphciA9IHRvX2FzcGVlZF9yZXNldChyY2Rldik7CisJdTMyIHJzdCA9IGdldF9iaXQoaWQpOworCXUzMiByZWcgPSBpZCA+PSAzMiA/IEFTUEVFRF9HNl9SRVNFVF9DVFJMMiA6IEFTUEVFRF9HNl9SRVNFVF9DVFJMOworCisJcmV0dXJuIHJlZ21hcF93cml0ZShhci0+bWFwLCByZWcsIHJzdCk7Cit9CisKK3N0YXRpYyBpbnQgYXNwZWVkX2c2X3Jlc2V0X3N0YXR1cyhzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorCQkJCSAgdW5zaWduZWQgbG9uZyBpZCkKK3sKKwlzdHJ1Y3QgYXNwZWVkX3Jlc2V0ICphciA9IHRvX2FzcGVlZF9yZXNldChyY2Rldik7CisJaW50IHJldDsKKwl1MzIgdmFsOworCXUzMiByc3QgPSBnZXRfYml0KGlkKTsKKwl1MzIgcmVnID0gaWQgPj0gMzIgPyBBU1BFRURfRzZfUkVTRVRfQ1RSTDIgOiBBU1BFRURfRzZfUkVTRVRfQ1RSTDsKKworCXJldCA9IHJlZ21hcF9yZWFkKGFyLT5tYXAsIHJlZywgJnZhbCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAhISh2YWwgJiByc3QpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlc2V0X2NvbnRyb2xfb3BzIGFzcGVlZF9nNl9yZXNldF9vcHMgPSB7CisJLmFzc2VydCA9IGFzcGVlZF9nNl9yZXNldF9hc3NlcnQsCisJLmRlYXNzZXJ0ID0gYXNwZWVkX2c2X3Jlc2V0X2RlYXNzZXJ0LAorCS5zdGF0dXMgPSBhc3BlZWRfZzZfcmVzZXRfc3RhdHVzLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfaHcgKmFzcGVlZF9nNl9jbGtfaHdfcmVnaXN0ZXJfZ2F0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCWNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLCB1bnNpZ25lZCBsb25nIGZsYWdzLAorCQlzdHJ1Y3QgcmVnbWFwICptYXAsIHU4IGNsb2NrX2lkeCwgdTggcmVzZXRfaWR4LAorCQl1OCBjbGtfZ2F0ZV9mbGFncywgc3BpbmxvY2tfdCAqbG9jaykKK3sKKwlzdHJ1Y3QgYXNwZWVkX2Nsa19nYXRlICpnYXRlOworCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CisJc3RydWN0IGNsa19odyAqaHc7CisJaW50IHJldDsKKworCWdhdGUgPSBremFsbG9jKHNpemVvZigqZ2F0ZSksIEdGUF9LRVJORUwpOworCWlmICghZ2F0ZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlpbml0Lm5hbWUgPSBuYW1lOworCWluaXQub3BzID0gJmFzcGVlZF9nNl9jbGtfZ2F0ZV9vcHM7CisJaW5pdC5mbGFncyA9IGZsYWdzOworCWluaXQucGFyZW50X25hbWVzID0gcGFyZW50X25hbWUgPyAmcGFyZW50X25hbWUgOiBOVUxMOworCWluaXQubnVtX3BhcmVudHMgPSBwYXJlbnRfbmFtZSA/IDEgOiAwOworCisJZ2F0ZS0+bWFwID0gbWFwOworCWdhdGUtPmNsb2NrX2lkeCA9IGNsb2NrX2lkeDsKKwlnYXRlLT5yZXNldF9pZHggPSByZXNldF9pZHg7CisJZ2F0ZS0+ZmxhZ3MgPSBjbGtfZ2F0ZV9mbGFnczsKKwlnYXRlLT5sb2NrID0gbG9jazsKKwlnYXRlLT5ody5pbml0ID0gJmluaXQ7CisKKwlodyA9ICZnYXRlLT5odzsKKwlyZXQgPSBjbGtfaHdfcmVnaXN0ZXIoZGV2LCBodyk7CisJaWYgKHJldCkgeworCQlrZnJlZShnYXRlKTsKKwkJaHcgPSBFUlJfUFRSKHJldCk7CisJfQorCisJcmV0dXJuIGh3OworfQorCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjbGtfcGFyZW50X25hbWVzW10gPSB7CisJImRwbGwiLAorCSJkMXBsbCIsCisJImhjbGsiLAorCSJtY2xrIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZDFjbGtfcGFyZW50X25hbWVzW10gPSB7CisJImRwbGwiLAorCSJlcGxsIiwKKwkidXNiLXBoeS00MG0iLAorCSJncGlvYzZfY2xraW4iLAorCSJkcF9waHlfcGxsIiwKK307CisKK3N0YXRpYyBpbnQgYXNwZWVkX2c2X2Nsa19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisJc3RydWN0IGFzcGVlZF9yZXNldCAqYXI7CisJc3RydWN0IHJlZ21hcCAqbWFwOworCXN0cnVjdCBjbGtfaHcgKmh3OworCXUzMiB2YWwsIHJhdGU7CisJaW50IGksIHJldDsKKworCW1hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChkZXYtPm9mX25vZGUpOworCWlmIChJU19FUlIobWFwKSkgeworCQlkZXZfZXJyKGRldiwgIm5vIHN5c2NvbiByZWdtYXBcbiIpOworCQlyZXR1cm4gUFRSX0VSUihtYXApOworCX0KKworCWFyID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCphciksIEdGUF9LRVJORUwpOworCWlmICghYXIpCisJCXJldHVybiAtRU5PTUVNOworCisJYXItPm1hcCA9IG1hcDsKKworCWFyLT5yY2Rldi5vd25lciA9IFRISVNfTU9EVUxFOworCWFyLT5yY2Rldi5ucl9yZXNldHMgPSA2NDsKKwlhci0+cmNkZXYub3BzID0gJmFzcGVlZF9nNl9yZXNldF9vcHM7CisJYXItPnJjZGV2Lm9mX25vZGUgPSBkZXYtPm9mX25vZGU7CisKKwlyZXQgPSBkZXZtX3Jlc2V0X2NvbnRyb2xsZXJfcmVnaXN0ZXIoZGV2LCAmYXItPnJjZGV2KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiY291bGQgbm90IHJlZ2lzdGVyIHJlc2V0IGNvbnRyb2xsZXJcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qIFVBUlQgY2xvY2sgZGl2MTMgc2V0dGluZyAqLworCXJlZ21hcF9yZWFkKG1hcCwgQVNQRUVEX0c2X01JU0NfQ1RSTCwgJnZhbCk7CisJaWYgKHZhbCAmIFVBUlRfRElWMTNfRU4pCisJCXJhdGUgPSAyNDAwMDAwMCAvIDEzOworCWVsc2UKKwkJcmF0ZSA9IDI0MDAwMDAwOworCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2ZpeGVkX3JhdGUoZGV2LCAidWFydCIsIE5VTEwsIDAsIHJhdGUpOworCWlmIChJU19FUlIoaHcpKQorCQlyZXR1cm4gUFRSX0VSUihodyk7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19VQVJUXSA9IGh3OworCisJLyogVUFSVDZ+MTMgY2xvY2sgZGl2MTMgc2V0dGluZyAqLworCXJlZ21hcF9yZWFkKG1hcCwgMHg4MCwgJnZhbCk7CisJaWYgKHZhbCAmIEJJVCgzMSkpCisJCXJhdGUgPSAyNDAwMDAwMCAvIDEzOworCWVsc2UKKwkJcmF0ZSA9IDI0MDAwMDAwOworCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2ZpeGVkX3JhdGUoZGV2LCAidWFydHgiLCBOVUxMLCAwLCByYXRlKTsKKwlpZiAoSVNfRVJSKGh3KSkKKwkJcmV0dXJuIFBUUl9FUlIoaHcpOworCWFzcGVlZF9nNl9jbGtfZGF0YS0+aHdzW0FTUEVFRF9DTEtfVUFSVFhdID0gaHc7CisKKwkvKiBFTU1DIGV4dCBjbG9jayBkaXZpZGVyICovCisJaHcgPSBjbGtfaHdfcmVnaXN0ZXJfZ2F0ZShkZXYsICJlbW1jX2V4dGNsa19nYXRlIiwgImhwbGwiLCAwLAorCQkJc2N1X2c2X2Jhc2UgKyBBU1BFRURfRzZfQ0xLX1NFTEVDVElPTjEsIDE1LCAwLAorCQkJJmFzcGVlZF9nNl9jbGtfbG9jayk7CisJaWYgKElTX0VSUihodykpCisJCXJldHVybiBQVFJfRVJSKGh3KTsKKwlodyA9IGNsa19od19yZWdpc3Rlcl9kaXZpZGVyX3RhYmxlKGRldiwgImVtbWNfZXh0Y2xrIiwgImVtbWNfZXh0Y2xrX2dhdGUiLCAwLAorCQkJc2N1X2c2X2Jhc2UgKyBBU1BFRURfRzZfQ0xLX1NFTEVDVElPTjEsIDEyLCAzLCAwLAorCQkJYXN0MjYwMF9kaXZfdGFibGUsCisJCQkmYXNwZWVkX2c2X2Nsa19sb2NrKTsKKwlpZiAoSVNfRVJSKGh3KSkKKwkJcmV0dXJuIFBUUl9FUlIoaHcpOworCWFzcGVlZF9nNl9jbGtfZGF0YS0+aHdzW0FTUEVFRF9DTEtfRU1NQ10gPSBodzsKKworCS8qIFNEL1NESU8gY2xvY2sgZGl2aWRlciBhbmQgZ2F0ZSAqLworCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2dhdGUoZGV2LCAic2RfZXh0Y2xrX2dhdGUiLCAiaHBsbCIsIDAsCisJCQlzY3VfZzZfYmFzZSArIEFTUEVFRF9HNl9DTEtfU0VMRUNUSU9ONCwgMzEsIDAsCisJCQkmYXNwZWVkX2c2X2Nsa19sb2NrKTsKKwlpZiAoSVNfRVJSKGh3KSkKKwkJcmV0dXJuIFBUUl9FUlIoaHcpOworCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2RpdmlkZXJfdGFibGUoZGV2LCAic2RfZXh0Y2xrIiwgInNkX2V4dGNsa19nYXRlIiwKKwkJCTAsIHNjdV9nNl9iYXNlICsgQVNQRUVEX0c2X0NMS19TRUxFQ1RJT040LCAyOCwgMywgMCwKKwkJCWFzdDI2MDBfZGl2X3RhYmxlLAorCQkJJmFzcGVlZF9nNl9jbGtfbG9jayk7CisJaWYgKElTX0VSUihodykpCisJCXJldHVybiBQVFJfRVJSKGh3KTsKKwlhc3BlZWRfZzZfY2xrX2RhdGEtPmh3c1tBU1BFRURfQ0xLX1NESU9dID0gaHc7CisKKwkvKiBNQUMxLzIgQUhCIGJ1cyBjbG9jayBkaXZpZGVyICovCisJaHcgPSBjbGtfaHdfcmVnaXN0ZXJfZGl2aWRlcl90YWJsZShkZXYsICJtYWMxMiIsICJocGxsIiwgMCwKKwkJCXNjdV9nNl9iYXNlICsgQVNQRUVEX0c2X0NMS19TRUxFQ1RJT04xLCAxNiwgMywgMCwKKwkJCWFzdDI2MDBfbWFjX2Rpdl90YWJsZSwKKwkJCSZhc3BlZWRfZzZfY2xrX2xvY2spOworCWlmIChJU19FUlIoaHcpKQorCQlyZXR1cm4gUFRSX0VSUihodyk7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19NQUMxMl0gPSBodzsKKworCS8qIE1BQzMvNCBBSEIgYnVzIGNsb2NrIGRpdmlkZXIgKi8KKwlodyA9IGNsa19od19yZWdpc3Rlcl9kaXZpZGVyX3RhYmxlKGRldiwgIm1hYzM0IiwgImhwbGwiLCAwLAorCQkJc2N1X2c2X2Jhc2UgKyAweDMxMCwgMjQsIDMsIDAsCisJCQlhc3QyNjAwX21hY19kaXZfdGFibGUsCisJCQkmYXNwZWVkX2c2X2Nsa19sb2NrKTsKKwlpZiAoSVNfRVJSKGh3KSkKKwkJcmV0dXJuIFBUUl9FUlIoaHcpOworCWFzcGVlZF9nNl9jbGtfZGF0YS0+aHdzW0FTUEVFRF9DTEtfTUFDMzRdID0gaHc7CisKKwkvKiBMUEMgSG9zdCAoTEhDTEspIGNsb2NrIGRpdmlkZXIgKi8KKwlodyA9IGNsa19od19yZWdpc3Rlcl9kaXZpZGVyX3RhYmxlKGRldiwgImxoY2xrIiwgImhwbGwiLCAwLAorCQkJc2N1X2c2X2Jhc2UgKyBBU1BFRURfRzZfQ0xLX1NFTEVDVElPTjEsIDIwLCAzLCAwLAorCQkJYXN0MjYwMF9kaXZfdGFibGUsCisJCQkmYXNwZWVkX2c2X2Nsa19sb2NrKTsKKwlpZiAoSVNfRVJSKGh3KSkKKwkJcmV0dXJuIFBUUl9FUlIoaHcpOworCWFzcGVlZF9nNl9jbGtfZGF0YS0+aHdzW0FTUEVFRF9DTEtfTEhDTEtdID0gaHc7CisKKwkvKiBnZnggZDFjbGsgOiB1c2UgZHAgY2xrICovCisJcmVnbWFwX3VwZGF0ZV9iaXRzKG1hcCwgQVNQRUVEX0c2X0NMS19TRUxFQ1RJT04xLCBHRU5NQVNLKDEwLCA4KSwgQklUKDEwKSk7CisJLyogU29DIERpc3BsYXkgY2xvY2sgc2VsZWN0aW9uICovCisJaHcgPSBjbGtfaHdfcmVnaXN0ZXJfbXV4KGRldiwgImQxY2xrIiwgZDFjbGtfcGFyZW50X25hbWVzLAorCQkJQVJSQVlfU0laRShkMWNsa19wYXJlbnRfbmFtZXMpLCAwLAorCQkJc2N1X2c2X2Jhc2UgKyBBU1BFRURfRzZfQ0xLX1NFTEVDVElPTjEsIDgsIDMsIDAsCisJCQkmYXNwZWVkX2c2X2Nsa19sb2NrKTsKKwlpZiAoSVNfRVJSKGh3KSkKKwkJcmV0dXJuIFBUUl9FUlIoaHcpOworCWFzcGVlZF9nNl9jbGtfZGF0YS0+aHdzW0FTUEVFRF9DTEtfRDFDTEtdID0gaHc7CisKKwkvKiBkMSBjbGsgZGl2IDB4MzA4WzE3OjE1XSB4IFsxNDoxMl0gLSA4LDcsNiw1LDQsMywyLDEgKi8KKwlyZWdtYXBfd3JpdGUobWFwLCAweDMwOCwgMHgxMjAwMCk7IC8qIDN4MyA9IDkgKi8KKworCS8qIFAtQnVzIChCQ0xLKSBjbG9jayBkaXZpZGVyICovCisJaHcgPSBjbGtfaHdfcmVnaXN0ZXJfZGl2aWRlcl90YWJsZShkZXYsICJiY2xrIiwgImhwbGwiLCAwLAorCQkJc2N1X2c2X2Jhc2UgKyBBU1BFRURfRzZfQ0xLX1NFTEVDVElPTjEsIDIwLCAzLCAwLAorCQkJYXN0MjYwMF9kaXZfdGFibGUsCisJCQkmYXNwZWVkX2c2X2Nsa19sb2NrKTsKKwlpZiAoSVNfRVJSKGh3KSkKKwkJcmV0dXJuIFBUUl9FUlIoaHcpOworCWFzcGVlZF9nNl9jbGtfZGF0YS0+aHdzW0FTUEVFRF9DTEtfQkNMS10gPSBodzsKKworCS8qIFZpZGVvIENhcHR1cmUgY2xvY2sgc2VsZWN0aW9uICovCisJaHcgPSBjbGtfaHdfcmVnaXN0ZXJfbXV4KGRldiwgInZjbGsiLCB2Y2xrX3BhcmVudF9uYW1lcywKKwkJCUFSUkFZX1NJWkUodmNsa19wYXJlbnRfbmFtZXMpLCAwLAorCQkJc2N1X2c2X2Jhc2UgKyBBU1BFRURfRzZfQ0xLX1NFTEVDVElPTjIsIDEyLCAzLCAwLAorCQkJJmFzcGVlZF9nNl9jbGtfbG9jayk7CisJaWYgKElTX0VSUihodykpCisJCXJldHVybiBQVFJfRVJSKGh3KTsKKwlhc3BlZWRfZzZfY2xrX2RhdGEtPmh3c1tBU1BFRURfQ0xLX1ZDTEtdID0gaHc7CisKKwkvKiBWaWRlbyBFbmdpbmUgY2xvY2sgZGl2aWRlciAqLworCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2RpdmlkZXJfdGFibGUoZGV2LCAiZWNsayIsIE5VTEwsIDAsCisJCQlzY3VfZzZfYmFzZSArIEFTUEVFRF9HNl9DTEtfU0VMRUNUSU9OMSwgMjgsIDMsIDAsCisJCQlhc3QyNjAwX2VjbGtfZGl2X3RhYmxlLAorCQkJJmFzcGVlZF9nNl9jbGtfbG9jayk7CisJaWYgKElTX0VSUihodykpCisJCXJldHVybiBQVFJfRVJSKGh3KTsKKwlhc3BlZWRfZzZfY2xrX2RhdGEtPmh3c1tBU1BFRURfQ0xLX0VDTEtdID0gaHc7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhc3BlZWRfZzZfZ2F0ZXMpOyBpKyspIHsKKwkJY29uc3Qgc3RydWN0IGFzcGVlZF9nYXRlX2RhdGEgKmdkID0gJmFzcGVlZF9nNl9nYXRlc1tpXTsKKwkJdTMyIGdhdGVfZmxhZ3M7CisKKwkJLyoKKwkJICogU3BlY2lhbCBjYXNlOiB0aGUgVVNCIHBvcnQgMSBjbG9jayAoYml0IDE0KSBpcyBhbHdheXMKKwkJICogd29ya2luZyB0aGUgb3Bwb3NpdGUgd2F5IGZyb20gdGhlIG90aGVyIG9uZXMuCisJCSAqLworCQlnYXRlX2ZsYWdzID0gKGdkLT5jbG9ja19pZHggPT0gMTQpID8gMCA6IENMS19HQVRFX1NFVF9UT19ESVNBQkxFOworCQlodyA9IGFzcGVlZF9nNl9jbGtfaHdfcmVnaXN0ZXJfZ2F0ZShkZXYsCisJCQkJZ2QtPm5hbWUsCisJCQkJZ2QtPnBhcmVudF9uYW1lLAorCQkJCWdkLT5mbGFncywKKwkJCQltYXAsCisJCQkJZ2QtPmNsb2NrX2lkeCwKKwkJCQlnZC0+cmVzZXRfaWR4LAorCQkJCWdhdGVfZmxhZ3MsCisJCQkJJmFzcGVlZF9nNl9jbGtfbG9jayk7CisJCWlmIChJU19FUlIoaHcpKQorCQkJcmV0dXJuIFBUUl9FUlIoaHcpOworCQlhc3BlZWRfZzZfY2xrX2RhdGEtPmh3c1tpXSA9IGh3OworCX0KKworCXJldHVybiAwOworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXNwZWVkX2c2X2Nsa19kdF9pZHNbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImFzcGVlZCxhc3QyNjAwLXNjdSIgfSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFzcGVlZF9nNl9jbGtfZHJpdmVyID0geworCS5wcm9iZSAgPSBhc3BlZWRfZzZfY2xrX3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImFzdDI2MDAtY2xrIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gYXNwZWVkX2c2X2Nsa19kdF9pZHMsCisJCS5zdXBwcmVzc19iaW5kX2F0dHJzID0gdHJ1ZSwKKwl9LAorfTsKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGFzcGVlZF9nNl9jbGtfZHJpdmVyKTsKKworc3RhdGljIGNvbnN0IHUzMiBhc3QyNjAwX2EwX2F4aV9haGJfZGl2X3RhYmxlW10gPSB7CisJMiwgMiwgMywgNSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgYXN0MjYwMF9hMV9heGlfYWhiX2Rpdl90YWJsZVtdID0geworCTQsIDYsIDIsIDQsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgYXNwZWVkX2c2X2NjKHN0cnVjdCByZWdtYXAgKm1hcCkKK3sKKwlzdHJ1Y3QgY2xrX2h3ICpodzsKKwl1MzIgdmFsLCBkaXYsIGNoaXBfaWQsIGF4aV9kaXYsIGFoYl9kaXY7CisKKwljbGtfaHdfcmVnaXN0ZXJfZml4ZWRfcmF0ZShOVUxMLCAiY2xraW4iLCBOVUxMLCAwLCAyNTAwMDAwMCk7CisKKwkvKgorCSAqIEhpZ2gtc3BlZWQgUExMIGNsb2NrIGRlcml2ZWQgZnJvbSB0aGUgY3J5c3RhbC4gVGhpcyB0aGUgQ1BVIGNsb2NrLAorCSAqIGFuZCB3ZSBhc3N1bWUgdGhhdCBpdCBpcyBlbmFibGVkCisJICovCisJcmVnbWFwX3JlYWQobWFwLCBBU1BFRURfSFBMTF9QQVJBTSwgJnZhbCk7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19IUExMXSA9IGFzdDI2MDBfY2FsY19wbGwoImhwbGwiLCB2YWwpOworCisJcmVnbWFwX3JlYWQobWFwLCBBU1BFRURfTVBMTF9QQVJBTSwgJnZhbCk7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19NUExMXSA9IGFzdDI2MDBfY2FsY19wbGwoIm1wbGwiLCB2YWwpOworCisJcmVnbWFwX3JlYWQobWFwLCBBU1BFRURfRFBMTF9QQVJBTSwgJnZhbCk7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19EUExMXSA9IGFzdDI2MDBfY2FsY19wbGwoImRwbGwiLCB2YWwpOworCisJcmVnbWFwX3JlYWQobWFwLCBBU1BFRURfRVBMTF9QQVJBTSwgJnZhbCk7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19FUExMXSA9IGFzdDI2MDBfY2FsY19wbGwoImVwbGwiLCB2YWwpOworCisJcmVnbWFwX3JlYWQobWFwLCBBU1BFRURfQVBMTF9QQVJBTSwgJnZhbCk7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19BUExMXSA9IGFzdDI2MDBfY2FsY19hcGxsKCJhcGxsIiwgdmFsKTsKKworCS8qIFN0cmFwIGJpdHMgMTI6MTEgZGVmaW5lIHRoZSBBWEkvQUhCIGNsb2NrIGZyZXF1ZW5jeSByYXRpbyAoYWthIEhDTEspKi8KKwlyZWdtYXBfcmVhZChtYXAsIEFTUEVFRF9HNl9TVFJBUDEsICZ2YWwpOworCWlmICh2YWwgJiBCSVQoMTYpKQorCQlheGlfZGl2ID0gMTsKKwllbHNlCisJCWF4aV9kaXYgPSAyOworCisJcmVnbWFwX3JlYWQobWFwLCBBU1BFRURfRzZfU0lMSUNPTl9SRVYsICZjaGlwX2lkKTsKKwlpZiAoY2hpcF9pZCAmIEJJVCgxNikpCisJCWFoYl9kaXYgPSBhc3QyNjAwX2ExX2F4aV9haGJfZGl2X3RhYmxlWyh2YWwgPj4gMTEpICYgMHgzXTsKKwllbHNlCisJCWFoYl9kaXYgPSBhc3QyNjAwX2EwX2F4aV9haGJfZGl2X3RhYmxlWyh2YWwgPj4gMTEpICYgMHgzXTsKKworCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihOVUxMLCAiYWhiIiwgImhwbGwiLCAwLCAxLCBheGlfZGl2ICogYWhiX2Rpdik7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19BSEJdID0gaHc7CisKKwlyZWdtYXBfcmVhZChtYXAsIEFTUEVFRF9HNl9DTEtfU0VMRUNUSU9OMSwgJnZhbCk7CisJdmFsID0gKHZhbCA+PiAyMykgJiAweDc7CisJZGl2ID0gNCAqICh2YWwgKyAxKTsKKwlodyA9IGNsa19od19yZWdpc3Rlcl9maXhlZF9mYWN0b3IoTlVMTCwgImFwYjEiLCAiaHBsbCIsIDAsIDEsIGRpdik7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbQVNQRUVEX0NMS19BUEIxXSA9IGh3OworCisJcmVnbWFwX3JlYWQobWFwLCBBU1BFRURfRzZfQ0xLX1NFTEVDVElPTjQsICZ2YWwpOworCXZhbCA9ICh2YWwgPj4gOSkgJiAweDc7CisJZGl2ID0gMiAqICh2YWwgKyAxKTsKKwlodyA9IGNsa19od19yZWdpc3Rlcl9maXhlZF9mYWN0b3IoTlVMTCwgImFwYjIiLCAiYWhiIiwgMCwgMSwgZGl2KTsKKwlhc3BlZWRfZzZfY2xrX2RhdGEtPmh3c1tBU1BFRURfQ0xLX0FQQjJdID0gaHc7CisKKwkvKiBVU0IgMi4wIHBvcnQxIHBoeSA0ME1IeiBjbG9jayAqLworCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2ZpeGVkX3JhdGUoTlVMTCwgInVzYi1waHktNDBtIiwgTlVMTCwgMCwgNDAwMDAwMDApOworCWFzcGVlZF9nNl9jbGtfZGF0YS0+aHdzW0FTUEVFRF9DTEtfVVNCUEhZXzQwTV0gPSBodzsKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBhc3BlZWRfZzZfY2NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQoreworCXN0cnVjdCByZWdtYXAgKm1hcDsKKwlpbnQgcmV0OworCWludCBpOworCisJc2N1X2c2X2Jhc2UgPSBvZl9pb21hcChucCwgMCk7CisJaWYgKCFzY3VfZzZfYmFzZSkKKwkJcmV0dXJuOworCisJYXNwZWVkX2c2X2Nsa19kYXRhID0ga3phbGxvYyhzdHJ1Y3Rfc2l6ZShhc3BlZWRfZzZfY2xrX2RhdGEsIGh3cywKKwkJCQkgICAgICBBU1BFRURfRzZfTlVNX0NMS1MpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWFzcGVlZF9nNl9jbGtfZGF0YSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBUaGlzIHdheSBhbGwgY2xvY2tzIGZldGNoZWQgYmVmb3JlIHRoZSBwbGF0Zm9ybSBkZXZpY2UgcHJvYmVzLAorCSAqIGV4Y2VwdCB0aG9zZSB3ZSBhc3NpZ24gaGVyZSBmb3IgZWFybHkgdXNlLCB3aWxsIGJlIGRlZmVycmVkLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBBU1BFRURfRzZfTlVNX0NMS1M7IGkrKykKKwkJYXNwZWVkX2c2X2Nsa19kYXRhLT5od3NbaV0gPSBFUlJfUFRSKC1FUFJPQkVfREVGRVIpOworCisJLyoKKwkgKiBXZSBjaGVjayB0aGF0IHRoZSByZWdtYXAgd29ya3Mgb24gdGhpcyB2ZXJ5IGZpcnN0IGFjY2VzcywKKwkgKiBidXQgYXMgdGhpcyBpcyBhbiBNTUlPLWJhY2tlZCByZWdtYXAsIHN1YnNlcXVlbnQgcmVnbWFwCisJICogYWNjZXNzIGlzIG5vdCBnb2luZyB0byBmYWlsIGFuZCB3ZSBza2lwIGVycm9yIGNoZWNrcyBmcm9tCisJICogdGhpcyBwb2ludC4KKwkgKi8KKwltYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAobnApOworCWlmIChJU19FUlIobWFwKSkgeworCQlwcl9lcnIoIm5vIHN5c2NvbiByZWdtYXBcbiIpOworCQlyZXR1cm47CisJfQorCisJYXNwZWVkX2c2X2NjKG1hcCk7CisJYXNwZWVkX2c2X2Nsa19kYXRhLT5udW0gPSBBU1BFRURfRzZfTlVNX0NMS1M7CisJcmV0ID0gb2ZfY2xrX2FkZF9od19wcm92aWRlcihucCwgb2ZfY2xrX2h3X29uZWNlbGxfZ2V0LCBhc3BlZWRfZzZfY2xrX2RhdGEpOworCWlmIChyZXQpCisJCXByX2VycigiZmFpbGVkIHRvIGFkZCBEVCBwcm92aWRlcjogJWRcbiIsIHJldCk7Cit9OworQ0xLX09GX0RFQ0xBUkVfRFJJVkVSKGFzcGVlZF9jY19nNiwgImFzcGVlZCxhc3QyNjAwLXNjdSIsIGFzcGVlZF9nNl9jY19pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay1idWxrLmMgYi9kcml2ZXJzL2Nsay9jbGstYnVsay5jCmluZGV4IDUyNGJmOWEuLmU5ZTE2NDI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9jbGstYnVsay5jCisrKyBiL2RyaXZlcnMvY2xrL2Nsay1idWxrLmMKQEAgLTE4LDEwICsxOCwxMyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBvZl9jbGtfYnVsa19nZXQoc3RydWN0IGRldmljZV9ub2RlICpucCwgaW50IG51bV9jbGtzLAogCWludCByZXQ7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgbnVtX2Nsa3M7IGkrKykKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2Nsa3M7IGkrKykgeworCQljbGtzW2ldLmlkID0gTlVMTDsKIAkJY2xrc1tpXS5jbGsgPSBOVUxMOworCX0KIAogCWZvciAoaSA9IDA7IGkgPCBudW1fY2xrczsgaSsrKSB7CisJCW9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nX2luZGV4KG5wLCAiY2xvY2stbmFtZXMiLCBpLCAmY2xrc1tpXS5pZCk7CiAJCWNsa3NbaV0uY2xrID0gb2ZfY2xrX2dldChucCwgaSk7CiAJCWlmIChJU19FUlIoY2xrc1tpXS5jbGspKSB7CiAJCQlyZXQgPSBQVFJfRVJSKGNsa3NbaV0uY2xrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay1jZGNlOTI1LmMgYi9kcml2ZXJzL2Nsay9jbGstY2RjZTkyNS5jCmluZGV4IDIzYzkzMjYuLjMwOGIzNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Nsay1jZGNlOTI1LmMKKysrIGIvZHJpdmVycy9jbGsvY2xrLWNkY2U5MjUuYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9nY2QuaD4KIApAQCAtNjAyLDYgKzYwMywzMCBAQCBvZl9jbGtfY2RjZTkyNV9nZXQoc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3BlYywgdm9pZCAqX2RhdGEpCiAJcmV0dXJuICZkYXRhLT5jbGtbaWR4XS5odzsKIH0KIAorc3RhdGljIHZvaWQgY2RjZTkyNV9yZWd1bGF0b3JfZGlzYWJsZSh2b2lkICpyZWd1bGF0b3IpCit7CisJcmVndWxhdG9yX2Rpc2FibGUocmVndWxhdG9yKTsKK30KKworc3RhdGljIGludCBjZGNlOTI1X3JlZ3VsYXRvcl9lbmFibGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lKQoreworCXN0cnVjdCByZWd1bGF0b3IgKnJlZ3VsYXRvcjsKKwlpbnQgZXJyOworCisJcmVndWxhdG9yID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldiwgbmFtZSk7CisJaWYgKElTX0VSUihyZWd1bGF0b3IpKQorCQlyZXR1cm4gUFRSX0VSUihyZWd1bGF0b3IpOworCisJZXJyID0gcmVndWxhdG9yX2VuYWJsZShyZWd1bGF0b3IpOworCWlmIChlcnIpIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZW5hYmxlICVzOiAlZFxuIiwgbmFtZSwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwlyZXR1cm4gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRldiwgY2RjZTkyNV9yZWd1bGF0b3JfZGlzYWJsZSwKKwkJCQkJcmVndWxhdG9yKTsKK30KKwogLyogVGhlIENEQ0U5MjUgdXNlcyBhIGZ1bmt5IHdheSB0byByZWFkL3dyaXRlIHJlZ2lzdGVycy4gQnVsayBtb2RlIGlzCiAgKiBqdXN0IHdlaXJkLCBzbyBqdXN0IHVzZSB0aGUgc2luZ2xlIGJ5dGUgbW9kZSBleGNsdXNpdmVseS4gKi8KIHN0YXRpYyBzdHJ1Y3QgcmVnbWFwX2J1cyByZWdtYXBfY2RjZTkyNV9idXMgPSB7CkBAIC02MzAsNiArNjU1LDE1IEBAIHN0YXRpYyBpbnQgY2RjZTkyNV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCX07CiAKIAlkZXZfZGJnKCZjbGllbnQtPmRldiwgIiVzXG4iLCBfX2Z1bmNfXyk7CisKKwllcnIgPSBjZGNlOTI1X3JlZ3VsYXRvcl9lbmFibGUoJmNsaWVudC0+ZGV2LCAidmRkIik7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IGNkY2U5MjVfcmVndWxhdG9yX2VuYWJsZSgmY2xpZW50LT5kZXYsICJ2ZGRvdXQiKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCiAJZGF0YSA9IGRldm1fa3phbGxvYygmY2xpZW50LT5kZXYsIHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwpOwogCWlmICghZGF0YSkKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9jbGstY29tcG9zaXRlLmMgYi9kcml2ZXJzL2Nsay9jbGstY29tcG9zaXRlLmMKaW5kZXggYjA2MDM4Yi4uNGYxM2E2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLWNvbXBvc2l0ZS5jCisrKyBiL2RyaXZlcnMvY2xrL2Nsay1jb21wb3NpdGUuYwpAQCAtMyw3ICszLDYgQEAKICAqIENvcHlyaWdodCAoYykgMjAxMyBOVklESUEgQ09SUE9SQVRJT04uICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9jbGstbG9jaG5hZ2FyLmMgYi9kcml2ZXJzL2Nsay9jbGstbG9jaG5hZ2FyLmMKaW5kZXggZmE4YzkxNy4uNTY1YmNkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLWxvY2huYWdhci5jCisrKyBiL2RyaXZlcnMvY2xrL2Nsay1sb2NobmFnYXIuYwpAQCAtMTk4LDcgKzE5OCw3IEBAIHN0YXRpYyB1OCBsb2NobmFnYXJfY2xrX2dldF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHcpCiAJaWYgKHJldCA8IDApIHsKIAkJZGV2X2RiZyhwcml2LT5kZXYsICJGYWlsZWQgdG8gcmVhZCBwYXJlbnQgb2YgJXM6ICVkXG4iLAogCQkJbGNsay0+bmFtZSwgcmV0KTsKLQkJcmV0dXJuIGh3LT5pbml0LT5udW1fcGFyZW50czsKKwkJcmV0dXJuIGNsa19od19nZXRfbnVtX3BhcmVudHMoaHcpOwogCX0KIAogCXZhbCAmPSBsY2xrLT5zcmNfbWFzazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay1taWxiZWF1dC5jIGIvZHJpdmVycy9jbGsvY2xrLW1pbGJlYXV0LmMKaW5kZXggNWZjNzhmYS4uODBiOWQ3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLW1pbGJlYXV0LmMKKysrIGIvZHJpdmVycy9jbGsvY2xrLW1pbGJlYXV0LmMKQEAgLTQzNyw3ICs0MzcsNyBAQCBzdGF0aWMgaW50IG0xMHZfY2xrX2RpdmlkZXJfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAkJaWYgKHJlYWRsX3BvbGxfdGltZW91dChkaXZpZGVyLT53cml0ZV92YWxpZF9yZWcsIHZhbCwKIAkJCSF2YWwsIE0xMFZfVVBPTExfUkFURSwgTTEwVl9VVElNRU9VVCkpCiAJCQlwcl9lcnIoIiVzOiVzIGNvdWxkbid0IHN0YWJpbGl6ZVxuIiwKLQkJCQlfX2Z1bmNfXywgZGl2aWRlci0+aHcuaW5pdC0+bmFtZSk7CisJCQkJX19mdW5jX18sIGNsa19od19nZXRfbmFtZShodykpOwogCX0KIAogCWlmIChkaXZpZGVyLT5sb2NrKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLXFvcmlxLmMgYi9kcml2ZXJzL2Nsay9jbGstcW9yaXEuYwppbmRleCAwN2YzYjI1Li5iZWQxNDBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9jbGstcW9yaXEuYworKysgYi9kcml2ZXJzL2Nsay9jbGstcW9yaXEuYwpAQCAtNjg2LDcgKzY4Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xvY2tnZW5fY2hpcGluZm8gY2hpcGluZm9bXSA9IHsKIAkJLmd1dHNfY29tcGF0ID0gImZzbCxxb3JpcS1kZXZpY2UtY29uZmlnLTEuMCIsCiAJCS5pbml0X3BlcmlwaCA9IHA1MDIwX2luaXRfcGVyaXBoLAogCQkuY211eF9ncm91cHMgPSB7Ci0JCQkmcDIwNDFfY211eF9ncnAxLCAmcDIwNDFfY211eF9ncnAyCisJCQkmcDUwMjBfY211eF9ncnAxLCAmcDUwMjBfY211eF9ncnAyCiAJCX0sCiAJCS5jbXV4X3RvX2dyb3VwID0gewogCQkJMCwgMSwgLTEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay1zaTUzNDEuYyBiL2RyaXZlcnMvY2xrL2Nsay1zaTUzNDEuYwppbmRleCA3MjQyNGViLi42ZTc4MGMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9jbGstc2k1MzQxLmMKKysrIGIvZHJpdmVycy9jbGsvY2xrLXNpNTM0MS5jCkBAIC01NDcsNyArNTQ3LDYgQEAgc3RhdGljIGludCBzaTUzNDFfc3ludGhfY2xrX3NldF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJYm9vbCBpc19pbnRlZ2VyOwogCiAJbl9udW0gPSBzeW50aC0+ZGF0YS0+ZnJlcV92Y287Ci0Jbl9kZW4gPSByYXRlOwogCiAJLyogc2VlIGlmIHRoZXJlJ3MgYW4gaW50ZWdlciBzb2x1dGlvbiAqLwogCXIgPSBkb19kaXYobl9udW0sIHJhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLmMgYi9kcml2ZXJzL2Nsay9jbGsuYwppbmRleCBjYTk5ZTlkLi4xYzY3N2Q3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9jbGsuYworKysgYi9kcml2ZXJzL2Nsay9jbGsuYwpAQCAtMzcsNiArMzcsMTIgQEAgc3RhdGljIEhMSVNUX0hFQUQoY2xrX3Jvb3RfbGlzdCk7CiBzdGF0aWMgSExJU1RfSEVBRChjbGtfb3JwaGFuX2xpc3QpOwogc3RhdGljIExJU1RfSEVBRChjbGtfbm90aWZpZXJfbGlzdCk7CiAKK3N0YXRpYyBzdHJ1Y3QgaGxpc3RfaGVhZCAqYWxsX2xpc3RzW10gPSB7CisJJmNsa19yb290X2xpc3QsCisJJmNsa19vcnBoYW5fbGlzdCwKKwlOVUxMLAorfTsKKwogLyoqKiAgICBwcml2YXRlIGRhdGEgc3RydWN0dXJlcyAgICAqKiovCiAKIHN0cnVjdCBjbGtfcGFyZW50X21hcCB7CkBAIC02MTUsNiArNjIxLDggQEAgc3RhdGljIHZvaWQgY2xrX2NvcmVfZ2V0X2JvdW5kYXJpZXMoc3RydWN0IGNsa19jb3JlICpjb3JlLAogewogCXN0cnVjdCBjbGsgKmNsa191c2VyOwogCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmcHJlcGFyZV9sb2NrKTsKKwogCSptaW5fcmF0ZSA9IGNvcmUtPm1pbl9yYXRlOwogCSptYXhfcmF0ZSA9IGNvcmUtPm1heF9yYXRlOwogCkBAIC0yNDYwLDcgKzI0NjgsNyBAQCBzdGF0aWMgaW50IGNsa19jb3JlX3NldF9wYXJlbnRfbm9sb2NrKHN0cnVjdCBjbGtfY29yZSAqY29yZSwKIAlpZiAoY29yZS0+cGFyZW50ID09IHBhcmVudCkKIAkJcmV0dXJuIDA7CiAKLQkvKiB2ZXJpZnkgb3BzIGZvciBmb3IgbXVsdGktcGFyZW50IGNsa3MgKi8KKwkvKiB2ZXJpZnkgb3BzIGZvciBtdWx0aS1wYXJlbnQgY2xrcyAqLwogCWlmIChjb3JlLT5udW1fcGFyZW50cyA+IDEgJiYgIWNvcmUtPm9wcy0+c2V0X3BhcmVudCkKIAkJcmV0dXJuIC1FUEVSTTsKIApAQCAtMjg2MiwxMiArMjg3MCw2IEBAIHN0YXRpYyBpbnQgaW5pdGVkID0gMDsKIHN0YXRpYyBERUZJTkVfTVVURVgoY2xrX2RlYnVnX2xvY2spOwogc3RhdGljIEhMSVNUX0hFQUQoY2xrX2RlYnVnX2xpc3QpOwogCi1zdGF0aWMgc3RydWN0IGhsaXN0X2hlYWQgKmFsbF9saXN0c1tdID0gewotCSZjbGtfcm9vdF9saXN0LAotCSZjbGtfb3JwaGFuX2xpc3QsCi0JTlVMTCwKLX07Ci0KIHN0YXRpYyBzdHJ1Y3QgaGxpc3RfaGVhZCAqb3JwaGFuX2xpc3RbXSA9IHsKIAkmY2xrX29ycGhhbl9saXN0LAogCU5VTEwsCkBAIC0yODc2LDkgKzI4NzgsNiBAQCBzdGF0aWMgc3RydWN0IGhsaXN0X2hlYWQgKm9ycGhhbl9saXN0W10gPSB7CiBzdGF0aWMgdm9pZCBjbGtfc3VtbWFyeV9zaG93X29uZShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBjbGtfY29yZSAqYywKIAkJCQkgaW50IGxldmVsKQogewotCWlmICghYykKLQkJcmV0dXJuOwotCiAJc2VxX3ByaW50ZihzLCAiJSpzJS0qcyAlN2QgJThkICU4ZCAlMTFsdSAlMTBsdSAlNWQgJTZkXG4iLAogCQkgICBsZXZlbCAqIDMgKyAxLCAiIiwKIAkJICAgMzAgLSBsZXZlbCAqIDMsIGMtPm5hbWUsCkBAIC0yODkzLDkgKzI4OTIsNiBAQCBzdGF0aWMgdm9pZCBjbGtfc3VtbWFyeV9zaG93X3N1YnRyZWUoc3RydWN0IHNlcV9maWxlICpzLCBzdHJ1Y3QgY2xrX2NvcmUgKmMsCiB7CiAJc3RydWN0IGNsa19jb3JlICpjaGlsZDsKIAotCWlmICghYykKLQkJcmV0dXJuOwotCiAJY2xrX3N1bW1hcnlfc2hvd19vbmUocywgYywgbGV2ZWwpOwogCiAJaGxpc3RfZm9yX2VhY2hfZW50cnkoY2hpbGQsICZjLT5jaGlsZHJlbiwgY2hpbGRfbm9kZSkKQEAgLTI5MjUsOCArMjkyMSw5IEBAIERFRklORV9TSE9XX0FUVFJJQlVURShjbGtfc3VtbWFyeSk7CiAKIHN0YXRpYyB2b2lkIGNsa19kdW1wX29uZShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBjbGtfY29yZSAqYywgaW50IGxldmVsKQogewotCWlmICghYykKLQkJcmV0dXJuOworCXVuc2lnbmVkIGxvbmcgbWluX3JhdGUsIG1heF9yYXRlOworCisJY2xrX2NvcmVfZ2V0X2JvdW5kYXJpZXMoYywgJm1pbl9yYXRlLCAmbWF4X3JhdGUpOwogCiAJLyogVGhpcyBzaG91bGQgYmUgSlNPTiBmb3JtYXQsIGkuZS4gZWxlbWVudHMgc2VwYXJhdGVkIHdpdGggYSBjb21tYSAqLwogCXNlcV9wcmludGYocywgIlwiJXNcIjogeyAiLCBjLT5uYW1lKTsKQEAgLTI5MzQsNiArMjkzMSw4IEBAIHN0YXRpYyB2b2lkIGNsa19kdW1wX29uZShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBjbGtfY29yZSAqYywgaW50IGxldmVsKQogCXNlcV9wcmludGYocywgIlwicHJlcGFyZV9jb3VudFwiOiAlZCwiLCBjLT5wcmVwYXJlX2NvdW50KTsKIAlzZXFfcHJpbnRmKHMsICJcInByb3RlY3RfY291bnRcIjogJWQsIiwgYy0+cHJvdGVjdF9jb3VudCk7CiAJc2VxX3ByaW50ZihzLCAiXCJyYXRlXCI6ICVsdSwiLCBjbGtfY29yZV9nZXRfcmF0ZShjKSk7CisJc2VxX3ByaW50ZihzLCAiXCJtaW5fcmF0ZVwiOiAlbHUsIiwgbWluX3JhdGUpOworCXNlcV9wcmludGYocywgIlwibWF4X3JhdGVcIjogJWx1LCIsIG1heF9yYXRlKTsKIAlzZXFfcHJpbnRmKHMsICJcImFjY3VyYWN5XCI6ICVsdSwiLCBjbGtfY29yZV9nZXRfYWNjdXJhY3koYykpOwogCXNlcV9wcmludGYocywgIlwicGhhc2VcIjogJWQsIiwgY2xrX2NvcmVfZ2V0X3BoYXNlKGMpKTsKIAlzZXFfcHJpbnRmKHMsICJcImR1dHlfY3ljbGVcIjogJXUiLApAQCAtMjk0NCw5ICsyOTQzLDYgQEAgc3RhdGljIHZvaWQgY2xrX2R1bXBfc3VidHJlZShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBjbGtfY29yZSAqYywgaW50IGxldmVsKQogewogCXN0cnVjdCBjbGtfY29yZSAqY2hpbGQ7CiAKLQlpZiAoIWMpCi0JCXJldHVybjsKLQogCWNsa19kdW1wX29uZShzLCBjLCBsZXZlbCk7CiAKIAlobGlzdF9mb3JfZWFjaF9lbnRyeShjaGlsZCwgJmMtPmNoaWxkcmVuLCBjaGlsZF9ub2RlKSB7CkBAIC0zMDQyLDE1ICszMDM4LDE1IEBAIHN0YXRpYyB2b2lkIHBvc3NpYmxlX3BhcmVudF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IGNsa19jb3JlICpjb3JlLAogCSAqLwogCXBhcmVudCA9IGNsa19jb3JlX2dldF9wYXJlbnRfYnlfaW5kZXgoY29yZSwgaSk7CiAJaWYgKHBhcmVudCkKLQkJc2VxX3ByaW50ZihzLCAiJXMiLCBwYXJlbnQtPm5hbWUpOworCQlzZXFfcHV0cyhzLCBwYXJlbnQtPm5hbWUpOwogCWVsc2UgaWYgKGNvcmUtPnBhcmVudHNbaV0ubmFtZSkKLQkJc2VxX3ByaW50ZihzLCAiJXMiLCBjb3JlLT5wYXJlbnRzW2ldLm5hbWUpOworCQlzZXFfcHV0cyhzLCBjb3JlLT5wYXJlbnRzW2ldLm5hbWUpOwogCWVsc2UgaWYgKGNvcmUtPnBhcmVudHNbaV0uZndfbmFtZSkKIAkJc2VxX3ByaW50ZihzLCAiPCVzPihmdykiLCBjb3JlLT5wYXJlbnRzW2ldLmZ3X25hbWUpOwogCWVsc2UgaWYgKGNvcmUtPnBhcmVudHNbaV0uaW5kZXggPj0gMCkKLQkJc2VxX3ByaW50ZihzLCAiJXMiLAotCQkJICAgb2ZfY2xrX2dldF9wYXJlbnRfbmFtZShjb3JlLT5vZl9ub2RlLAotCQkJCQkJICBjb3JlLT5wYXJlbnRzW2ldLmluZGV4KSk7CisJCXNlcV9wdXRzKHMsCisJCQkgb2ZfY2xrX2dldF9wYXJlbnRfbmFtZShjb3JlLT5vZl9ub2RlLAorCQkJCQkJY29yZS0+cGFyZW50c1tpXS5pbmRleCkpOwogCWVsc2UKIAkJc2VxX3B1dHMocywgIihtaXNzaW5nKSIpOwogCkBAIC0zMDkzLDYgKzMwODksMzQgQEAgc3RhdGljIGludCBjbGtfZHV0eV9jeWNsZV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSkKIH0KIERFRklORV9TSE9XX0FUVFJJQlVURShjbGtfZHV0eV9jeWNsZSk7CiAKK3N0YXRpYyBpbnQgY2xrX21pbl9yYXRlX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBjbGtfY29yZSAqY29yZSA9IHMtPnByaXZhdGU7CisJdW5zaWduZWQgbG9uZyBtaW5fcmF0ZSwgbWF4X3JhdGU7CisKKwljbGtfcHJlcGFyZV9sb2NrKCk7CisJY2xrX2NvcmVfZ2V0X2JvdW5kYXJpZXMoY29yZSwgJm1pbl9yYXRlLCAmbWF4X3JhdGUpOworCWNsa19wcmVwYXJlX3VubG9jaygpOworCXNlcV9wcmludGYocywgIiVsdVxuIiwgbWluX3JhdGUpOworCisJcmV0dXJuIDA7Cit9CitERUZJTkVfU0hPV19BVFRSSUJVVEUoY2xrX21pbl9yYXRlKTsKKworc3RhdGljIGludCBjbGtfbWF4X3JhdGVfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGNsa19jb3JlICpjb3JlID0gcy0+cHJpdmF0ZTsKKwl1bnNpZ25lZCBsb25nIG1pbl9yYXRlLCBtYXhfcmF0ZTsKKworCWNsa19wcmVwYXJlX2xvY2soKTsKKwljbGtfY29yZV9nZXRfYm91bmRhcmllcyhjb3JlLCAmbWluX3JhdGUsICZtYXhfcmF0ZSk7CisJY2xrX3ByZXBhcmVfdW5sb2NrKCk7CisJc2VxX3ByaW50ZihzLCAiJWx1XG4iLCBtYXhfcmF0ZSk7CisKKwlyZXR1cm4gMDsKK30KK0RFRklORV9TSE9XX0FUVFJJQlVURShjbGtfbWF4X3JhdGUpOworCiBzdGF0aWMgdm9pZCBjbGtfZGVidWdfY3JlYXRlX29uZShzdHJ1Y3QgY2xrX2NvcmUgKmNvcmUsIHN0cnVjdCBkZW50cnkgKnBkZW50cnkpCiB7CiAJc3RydWN0IGRlbnRyeSAqcm9vdDsKQEAgLTMxMDQsNiArMzEyOCw4IEBAIHN0YXRpYyB2b2lkIGNsa19kZWJ1Z19jcmVhdGVfb25lKHN0cnVjdCBjbGtfY29yZSAqY29yZSwgc3RydWN0IGRlbnRyeSAqcGRlbnRyeSkKIAljb3JlLT5kZW50cnkgPSByb290OwogCiAJZGVidWdmc19jcmVhdGVfdWxvbmcoImNsa19yYXRlIiwgMDQ0NCwgcm9vdCwgJmNvcmUtPnJhdGUpOworCWRlYnVnZnNfY3JlYXRlX2ZpbGUoImNsa19taW5fcmF0ZSIsIDA0NDQsIHJvb3QsIGNvcmUsICZjbGtfbWluX3JhdGVfZm9wcyk7CisJZGVidWdmc19jcmVhdGVfZmlsZSgiY2xrX21heF9yYXRlIiwgMDQ0NCwgcm9vdCwgY29yZSwgJmNsa19tYXhfcmF0ZV9mb3BzKTsKIAlkZWJ1Z2ZzX2NyZWF0ZV91bG9uZygiY2xrX2FjY3VyYWN5IiwgMDQ0NCwgcm9vdCwgJmNvcmUtPmFjY3VyYWN5KTsKIAlkZWJ1Z2ZzX2NyZWF0ZV91MzIoImNsa19waGFzZSIsIDA0NDQsIHJvb3QsICZjb3JlLT5waGFzZSk7CiAJZGVidWdmc19jcmVhdGVfZmlsZSgiY2xrX2ZsYWdzIiwgMDQ0NCwgcm9vdCwgY29yZSwgJmNsa19mbGFnc19mb3BzKTsKQEAgLTM1MTMsOSArMzUzOSw5IEBAIHN0YXRpYyBpbnQgY2xrX2NweV9uYW1lKGNvbnN0IGNoYXIgKipkc3RfcCwgY29uc3QgY2hhciAqc3JjLCBib29sIG11c3RfZXhpc3QpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY2xrX2NvcmVfcG9wdWxhdGVfcGFyZW50X21hcChzdHJ1Y3QgY2xrX2NvcmUgKmNvcmUpCitzdGF0aWMgaW50IGNsa19jb3JlX3BvcHVsYXRlX3BhcmVudF9tYXAoc3RydWN0IGNsa19jb3JlICpjb3JlLAorCQkJCQljb25zdCBzdHJ1Y3QgY2xrX2luaXRfZGF0YSAqaW5pdCkKIHsKLQljb25zdCBzdHJ1Y3QgY2xrX2luaXRfZGF0YSAqaW5pdCA9IGNvcmUtPmh3LT5pbml0OwogCXU4IG51bV9wYXJlbnRzID0gaW5pdC0+bnVtX3BhcmVudHM7CiAJY29uc3QgY2hhciAqIGNvbnN0ICpwYXJlbnRfbmFtZXMgPSBpbml0LT5wYXJlbnRfbmFtZXM7CiAJY29uc3Qgc3RydWN0IGNsa19odyAqKnBhcmVudF9od3MgPSBpbml0LT5wYXJlbnRfaHdzOwpAQCAtMzU5NSw2ICszNjIxLDE0IEBAIF9fY2xrX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpucCwgc3RydWN0IGNsa19odyAqaHcpCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3QgY2xrX2NvcmUgKmNvcmU7CisJY29uc3Qgc3RydWN0IGNsa19pbml0X2RhdGEgKmluaXQgPSBody0+aW5pdDsKKworCS8qCisJICogVGhlIGluaXQgZGF0YSBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBvdXRzaWRlIG9mIHJlZ2lzdHJhdGlvbiBwYXRoLgorCSAqIFNldCBpdCB0byBOVUxMIHNvIHRoYXQgcHJvdmlkZXIgZHJpdmVycyBjYW4ndCB1c2UgaXQgZWl0aGVyIGFuZCBzbyB0aGF0CisJICogd2UgY2F0Y2ggdXNlIG9mIGh3LT5pbml0IGVhcmx5IG9uIGluIHRoZSBjb3JlLgorCSAqLworCWh3LT5pbml0ID0gTlVMTDsKIAogCWNvcmUgPSBremFsbG9jKHNpemVvZigqY29yZSksIEdGUF9LRVJORUwpOwogCWlmICghY29yZSkgewpAQCAtMzYwMiwxNyArMzYzNiwxNyBAQCBfX2Nsa19yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBjbGtfaHcgKmh3KQogCQlnb3RvIGZhaWxfb3V0OwogCX0KIAotCWNvcmUtPm5hbWUgPSBrc3RyZHVwX2NvbnN0KGh3LT5pbml0LT5uYW1lLCBHRlBfS0VSTkVMKTsKKwljb3JlLT5uYW1lID0ga3N0cmR1cF9jb25zdChpbml0LT5uYW1lLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNvcmUtPm5hbWUpIHsKIAkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBmYWlsX25hbWU7CiAJfQogCi0JaWYgKFdBUk5fT04oIWh3LT5pbml0LT5vcHMpKSB7CisJaWYgKFdBUk5fT04oIWluaXQtPm9wcykpIHsKIAkJcmV0ID0gLUVJTlZBTDsKIAkJZ290byBmYWlsX29wczsKIAl9Ci0JY29yZS0+b3BzID0gaHctPmluaXQtPm9wczsKKwljb3JlLT5vcHMgPSBpbml0LT5vcHM7CiAKIAlpZiAoZGV2ICYmIHBtX3J1bnRpbWVfZW5hYmxlZChkZXYpKQogCQljb3JlLT5ycG1fZW5hYmxlZCA9IHRydWU7CkBAIC0zNjIxLDEzICszNjU1LDEzIEBAIF9fY2xrX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpucCwgc3RydWN0IGNsa19odyAqaHcpCiAJaWYgKGRldiAmJiBkZXYtPmRyaXZlcikKIAkJY29yZS0+b3duZXIgPSBkZXYtPmRyaXZlci0+b3duZXI7CiAJY29yZS0+aHcgPSBodzsKLQljb3JlLT5mbGFncyA9IGh3LT5pbml0LT5mbGFnczsKLQljb3JlLT5udW1fcGFyZW50cyA9IGh3LT5pbml0LT5udW1fcGFyZW50czsKKwljb3JlLT5mbGFncyA9IGluaXQtPmZsYWdzOworCWNvcmUtPm51bV9wYXJlbnRzID0gaW5pdC0+bnVtX3BhcmVudHM7CiAJY29yZS0+bWluX3JhdGUgPSAwOwogCWNvcmUtPm1heF9yYXRlID0gVUxPTkdfTUFYOwogCWh3LT5jb3JlID0gY29yZTsKIAotCXJldCA9IGNsa19jb3JlX3BvcHVsYXRlX3BhcmVudF9tYXAoY29yZSk7CisJcmV0ID0gY2xrX2NvcmVfcG9wdWxhdGVfcGFyZW50X21hcChjb3JlLCBpbml0KTsKIAlpZiAocmV0KQogCQlnb3RvIGZhaWxfcGFyZW50czsKIApAQCAtMzc2Niw2ICszODAwLDM0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBjbGtfbm9kcnZfb3BzID0gewogCS5zZXRfcGFyZW50CT0gY2xrX25vZHJ2X3NldF9wYXJlbnQsCiB9OwogCitzdGF0aWMgdm9pZCBjbGtfY29yZV9ldmljdF9wYXJlbnRfY2FjaGVfc3VidHJlZShzdHJ1Y3QgY2xrX2NvcmUgKnJvb3QsCisJCQkJCQlzdHJ1Y3QgY2xrX2NvcmUgKnRhcmdldCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNoaWxkOworCisJZm9yIChpID0gMDsgaSA8IHJvb3QtPm51bV9wYXJlbnRzOyBpKyspCisJCWlmIChyb290LT5wYXJlbnRzW2ldLmNvcmUgPT0gdGFyZ2V0KQorCQkJcm9vdC0+cGFyZW50c1tpXS5jb3JlID0gTlVMTDsKKworCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KGNoaWxkLCAmcm9vdC0+Y2hpbGRyZW4sIGNoaWxkX25vZGUpCisJCWNsa19jb3JlX2V2aWN0X3BhcmVudF9jYWNoZV9zdWJ0cmVlKGNoaWxkLCB0YXJnZXQpOworfQorCisvKiBSZW1vdmUgdGhpcyBjbGsgZnJvbSBhbGwgcGFyZW50IGNhY2hlcyAqLworc3RhdGljIHZvaWQgY2xrX2NvcmVfZXZpY3RfcGFyZW50X2NhY2hlKHN0cnVjdCBjbGtfY29yZSAqY29yZSkKK3sKKwlzdHJ1Y3QgaGxpc3RfaGVhZCAqKmxpc3RzOworCXN0cnVjdCBjbGtfY29yZSAqcm9vdDsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnByZXBhcmVfbG9jayk7CisKKwlmb3IgKGxpc3RzID0gYWxsX2xpc3RzOyAqbGlzdHM7IGxpc3RzKyspCisJCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KHJvb3QsICpsaXN0cywgY2hpbGRfbm9kZSkKKwkJCWNsa19jb3JlX2V2aWN0X3BhcmVudF9jYWNoZV9zdWJ0cmVlKHJvb3QsIGNvcmUpOworCit9CisKIC8qKgogICogY2xrX3VucmVnaXN0ZXIgLSB1bnJlZ2lzdGVyIGEgY3VycmVudGx5IHJlZ2lzdGVyZWQgY2xvY2sKICAqIEBjbGs6IGNsb2NrIHRvIHVucmVnaXN0ZXIKQEAgLTM4MDQsNiArMzg2Niw4IEBAIHZvaWQgY2xrX3VucmVnaXN0ZXIoc3RydWN0IGNsayAqY2xrKQogCQkJY2xrX2NvcmVfc2V0X3BhcmVudF9ub2xvY2soY2hpbGQsIE5VTEwpOwogCX0KIAorCWNsa19jb3JlX2V2aWN0X3BhcmVudF9jYWNoZShjbGstPmNvcmUpOworCiAJaGxpc3RfZGVsX2luaXQoJmNsay0+Y29yZS0+Y2hpbGRfbm9kZSk7CiAKIAlpZiAoY2xrLT5jb3JlLT5wcmVwYXJlX2NvdW50KQpAQCAtNDM0NSwxMiArNDQwOSw0MyBAQCB2b2lkIGRldm1fb2ZfY2xrX2RlbF9wcm92aWRlcihzdHJ1Y3QgZGV2aWNlICpkZXYpCiB9CiBFWFBPUlRfU1lNQk9MKGRldm1fb2ZfY2xrX2RlbF9wcm92aWRlcik7CiAKLS8qCi0gKiBCZXdhcmUgdGhlIHJldHVybiB2YWx1ZXMgd2hlbiBucCBpcyB2YWxpZCwgYnV0IG5vIGNsb2NrIHByb3ZpZGVyIGlzIGZvdW5kLgotICogSWYgbmFtZSA9PSBOVUxMLCB0aGUgZnVuY3Rpb24gcmV0dXJucyAtRU5PRU5ULgotICogSWYgbmFtZSAhPSBOVUxMLCB0aGUgZnVuY3Rpb24gcmV0dXJucyAtRUlOVkFMLiBUaGlzIGlzIGJlY2F1c2UKLSAqIG9mX3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzKCkgaXMgY2FsbGVkIGV2ZW4gaWYgb2ZfcHJvcGVydHlfbWF0Y2hfc3RyaW5nKCkKLSAqIHJldHVybnMgYW4gZXJyb3IuCisvKioKKyAqIG9mX3BhcnNlX2Nsa3NwZWMoKSAtIFBhcnNlIGEgRFQgY2xvY2sgc3BlY2lmaWVyIGZvciBhIGdpdmVuIGRldmljZSBub2RlCisgKiBAbnA6IGRldmljZSBub2RlIHRvIHBhcnNlIGNsb2NrIHNwZWNpZmllciBmcm9tCisgKiBAaW5kZXg6IGluZGV4IG9mIHBoYW5kbGUgdG8gcGFyc2UgY2xvY2sgb3V0IG9mLiBJZiBpbmRleCA8IDAsIEBuYW1lIGlzIHVzZWQKKyAqIEBuYW1lOiBjbG9jayBuYW1lIHRvIGZpbmQgYW5kIHBhcnNlLiBJZiBuYW1lIGlzIE5VTEwsIHRoZSBpbmRleCBpcyB1c2VkCisgKiBAb3V0X2FyZ3M6IFJlc3VsdCBvZiBwYXJzaW5nIHRoZSBjbG9jayBzcGVjaWZpZXIKKyAqCisgKiBQYXJzZXMgYSBkZXZpY2Ugbm9kZSdzICJjbG9ja3MiIGFuZCAiY2xvY2stbmFtZXMiIHByb3BlcnRpZXMgdG8gZmluZCB0aGUKKyAqIHBoYW5kbGUgYW5kIGNlbGxzIGZvciB0aGUgaW5kZXggb3IgbmFtZSB0aGF0IGlzIGRlc2lyZWQuIFRoZSByZXN1bHRpbmcgY2xvY2sKKyAqIHNwZWNpZmllciBpcyBwbGFjZWQgaW50byBAb3V0X2FyZ3MsIG9yIGFuIGVycm5vIGlzIHJldHVybmVkIHdoZW4gdGhlcmUncyBhCisgKiBwYXJzaW5nIGVycm9yLiBUaGUgQGluZGV4IGFyZ3VtZW50IGlzIGlnbm9yZWQgaWYgQG5hbWUgaXMgbm9uLU5VTEwuCisgKgorICogRXhhbXBsZToKKyAqCisgKiBwaGFuZGxlMTogY2xvY2stY29udHJvbGxlckAxIHsKKyAqCSNjbG9jay1jZWxscyA9IDwyPjsKKyAqIH0KKyAqCisgKiBwaGFuZGxlMjogY2xvY2stY29udHJvbGxlckAyIHsKKyAqCSNjbG9jay1jZWxscyA9IDwxPjsKKyAqIH0KKyAqCisgKiBjbG9jay1jb25zdW1lckAzIHsKKyAqCWNsb2NrcyA9IDwmcGhhbmRsZTEgMSAyICZwaGFuZGxlMiAzPjsKKyAqCWNsb2NrLW5hbWVzID0gIm5hbWUxIiwgIm5hbWUyIjsKKyAqIH0KKyAqCisgKiBUbyBnZXQgYSBkZXZpY2Vfbm9kZSBmb3IgYGNsb2NrLWNvbnRyb2xsZXJAMicgbm9kZSB5b3UgbWF5IGNhbGwgdGhpcworICogZnVuY3Rpb24gYSBmZXcgZGlmZmVyZW50IHdheXM6CisgKgorICogICBvZl9wYXJzZV9jbGtzcGVjKGNsb2NrLWNvbnN1bWVyQDMsIC0xLCAibmFtZTIiLCAmYXJncyk7CisgKiAgIG9mX3BhcnNlX2Nsa3NwZWMoY2xvY2stY29uc3VtZXJAMywgMSwgTlVMTCwgJmFyZ3MpOworICogICBvZl9wYXJzZV9jbGtzcGVjKGNsb2NrLWNvbnN1bWVyQDMsIDEsICJuYW1lMiIsICZhcmdzKTsKKyAqCisgKiBSZXR1cm46IDAgdXBvbiBzdWNjZXNzZnVsbHkgcGFyc2luZyB0aGUgY2xvY2sgc3BlY2lmaWVyLiBPdGhlcndpc2UsIC1FTk9FTlQKKyAqIGlmIEBuYW1lIGlzIE5VTEwgb3IgLUVJTlZBTCBpZiBAbmFtZSBpcyBub24tTlVMTCBhbmQgaXQgY2FuJ3QgYmUgZm91bmQgaW4KKyAqIHRoZSAiY2xvY2stbmFtZXMiIHByb3BlcnR5IG9mIEBucC4KICAqLwogc3RhdGljIGludCBvZl9wYXJzZV9jbGtzcGVjKGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIGludCBpbmRleCwKIAkJCSAgICBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzICpvdXRfYXJncykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2RhdmluY2kvcGxsLmMgYi9kcml2ZXJzL2Nsay9kYXZpbmNpL3BsbC5jCmluZGV4IDFjOTllOTkuLjFhYzExYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2RhdmluY2kvcGxsLmMKKysrIGIvZHJpdmVycy9jbGsvZGF2aW5jaS9wbGwuYwpAQCAtNzc4LDEyICs3NzgsMTUgQEAgaW50IG9mX2RhdmluY2lfcGxsX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJCWludCBpOwogCiAJCWNsa19kYXRhID0ga3phbGxvYyhzaXplb2YoKmNsa19kYXRhKSwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghY2xrX2RhdGEpCisJCWlmICghY2xrX2RhdGEpIHsKKwkJCW9mX25vZGVfcHV0KGNoaWxkKTsKIAkJCXJldHVybiAtRU5PTUVNOworCQl9CiAKIAkJY2xrcyA9IGttYWxsb2NfYXJyYXkobl9jbGtzLCBzaXplb2YoKmNsa3MpLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFjbGtzKSB7CiAJCQlrZnJlZShjbGtfZGF0YSk7CisJCQlvZl9ub2RlX3B1dChjaGlsZCk7CiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9pbXgvY2xrLWlteDd1bHAuYyBiL2RyaXZlcnMvY2xrL2lteC9jbGstaW14N3VscC5jCmluZGV4IDQyZTQ2NjcuLjIwMjJkOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2lteC9jbGstaW14N3VscC5jCisrKyBiL2RyaXZlcnMvY2xrL2lteC9jbGstaW14N3VscC5jCkBAIC00Miw2ICs0MiwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19kaXZfdGFibGUgdWxwX2Rpdl90YWJsZVtdID0gewogCXsgLnZhbCA9IDcsIC5kaXYgPSA2NCwgfSwKIH07CiAKK3N0YXRpYyBjb25zdCBpbnQgcGNjMl91YXJ0X2Nsa19pZHNbXSBfX2luaXRjb25zdCA9IHsKKwlJTVg3VUxQX0NMS19MUFVBUlQ0LAorCUlNWDdVTFBfQ0xLX0xQVUFSVDUsCit9OworCitzdGF0aWMgY29uc3QgaW50IHBjYzNfdWFydF9jbGtfaWRzW10gX19pbml0Y29uc3QgPSB7CisJSU1YN1VMUF9DTEtfTFBVQVJUNiwKKwlJTVg3VUxQX0NMS19MUFVBUlQ3LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgKipwY2MyX3VhcnRfY2xrc1tBUlJBWV9TSVpFKHBjYzJfdWFydF9jbGtfaWRzKSArIDFdIF9faW5pdGRhdGE7CitzdGF0aWMgc3RydWN0IGNsayAqKnBjYzNfdWFydF9jbGtzW0FSUkFZX1NJWkUocGNjM191YXJ0X2Nsa19pZHMpICsgMV0gX19pbml0ZGF0YTsKKwogc3RhdGljIHZvaWQgX19pbml0IGlteDd1bHBfY2xrX3NjZzFfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogewogCXN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsKQEAgLTEzNSw2ICsxNDgsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaW14N3VscF9jbGtfcGNjMl9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJc3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOwogCXN0cnVjdCBjbGtfaHcgKipjbGtzOwogCXZvaWQgX19pb21lbSAqYmFzZTsKKwlpbnQgaTsKIAogCWNsa19kYXRhID0ga3phbGxvYyhzdHJ1Y3Rfc2l6ZShjbGtfZGF0YSwgaHdzLCBJTVg3VUxQX0NMS19QQ0MyX0VORCksCiAJCQkgICBHRlBfS0VSTkVMKTsKQEAgLTE3Myw2ICsxODcsMTQgQEAgc3RhdGljIHZvaWQgX19pbml0IGlteDd1bHBfY2xrX3BjYzJfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCWlteF9jaGVja19jbGtfaHdzKGNsa3MsIGNsa19kYXRhLT5udW0pOwogCiAJb2ZfY2xrX2FkZF9od19wcm92aWRlcihucCwgb2ZfY2xrX2h3X29uZWNlbGxfZ2V0LCBjbGtfZGF0YSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwY2MyX3VhcnRfY2xrX2lkcyk7IGkrKykgeworCQlpbnQgaW5kZXggPSBwY2MyX3VhcnRfY2xrX2lkc1tpXTsKKworCQlwY2MyX3VhcnRfY2xrc1tpXSA9ICZjbGtzW2luZGV4XS0+Y2xrOworCX0KKworCWlteF9yZWdpc3Rlcl91YXJ0X2Nsb2NrcyhwY2MyX3VhcnRfY2xrcyk7CiB9CiBDTEtfT0ZfREVDTEFSRShpbXg3dWxwX2Nsa19wY2MyLCAiZnNsLGlteDd1bHAtcGNjMiIsIGlteDd1bHBfY2xrX3BjYzJfaW5pdCk7CiAKQEAgLTE4MSw2ICsyMDMsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaW14N3VscF9jbGtfcGNjM19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJc3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOwogCXN0cnVjdCBjbGtfaHcgKipjbGtzOwogCXZvaWQgX19pb21lbSAqYmFzZTsKKwlpbnQgaTsKIAogCWNsa19kYXRhID0ga3phbGxvYyhzdHJ1Y3Rfc2l6ZShjbGtfZGF0YSwgaHdzLCBJTVg3VUxQX0NMS19QQ0MzX0VORCksCiAJCQkgICBHRlBfS0VSTkVMKTsKQEAgLTIxOCw2ICsyNDEsMTQgQEAgc3RhdGljIHZvaWQgX19pbml0IGlteDd1bHBfY2xrX3BjYzNfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCWlteF9jaGVja19jbGtfaHdzKGNsa3MsIGNsa19kYXRhLT5udW0pOwogCiAJb2ZfY2xrX2FkZF9od19wcm92aWRlcihucCwgb2ZfY2xrX2h3X29uZWNlbGxfZ2V0LCBjbGtfZGF0YSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwY2MzX3VhcnRfY2xrX2lkcyk7IGkrKykgeworCQlpbnQgaW5kZXggPSBwY2MzX3VhcnRfY2xrX2lkc1tpXTsKKworCQlwY2MzX3VhcnRfY2xrc1tpXSA9ICZjbGtzW2luZGV4XS0+Y2xrOworCX0KKworCWlteF9yZWdpc3Rlcl91YXJ0X2Nsb2NrcyhwY2MzX3VhcnRfY2xrcyk7CiB9CiBDTEtfT0ZfREVDTEFSRShpbXg3dWxwX2Nsa19wY2MzLCAiZnNsLGlteDd1bHAtcGNjMyIsIGlteDd1bHBfY2xrX3BjYzNfaW5pdCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2lteC9jbGstaW14OG1tLmMgYi9kcml2ZXJzL2Nsay9pbXgvY2xrLWlteDhtbS5jCmluZGV4IDQzZmE5YzMuLjA2N2FiODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2lteC9jbGstaW14OG1tLmMKKysrIGIvZHJpdmVycy9jbGsvaW14L2Nsay1pbXg4bW0uYwpAQCAtMjIsNyArMjIsNyBAQCBzdGF0aWMgdTMyIHNoYXJlX2NvdW50X3NhaTM7CiBzdGF0aWMgdTMyIHNoYXJlX2NvdW50X3NhaTQ7CiBzdGF0aWMgdTMyIHNoYXJlX2NvdW50X3NhaTU7CiBzdGF0aWMgdTMyIHNoYXJlX2NvdW50X3NhaTY7Ci1zdGF0aWMgdTMyIHNoYXJlX2NvdW50X2Rjc3M7CitzdGF0aWMgdTMyIHNoYXJlX2NvdW50X2Rpc3A7CiBzdGF0aWMgdTMyIHNoYXJlX2NvdW50X3BkbTsKIHN0YXRpYyB1MzIgc2hhcmVfY291bnRfbmFuZDsKIApAQCAtMzgsOCArMzgsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteF9wbGwxNHh4X3JhdGVfdGFibGUgaW14OG1tX3BsbDE0MTZ4X3RibFtdID0gewogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbXhfcGxsMTR4eF9yYXRlX3RhYmxlIGlteDhtbV9hdWRpb3BsbF90YmxbXSA9IHsKLQlQTExfMTQ0M1hfUkFURSg3ODY0MzIwMDBVLCA2NTUsIDUsIDIsIDIzNTkzKSwKLQlQTExfMTQ0M1hfUkFURSg3MjI1MzQ0MDBVLCAzMDEsIDUsIDEsIDM2NzApLAorCVBMTF8xNDQzWF9SQVRFKDM5MzIxNjAwMFUsIDI2MiwgMiwgMywgOTQzNyksCisJUExMXzE0NDNYX1JBVEUoMzYxMjY3MjAwVSwgMzYxLCAzLCAzLCAxNzUxMSksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGlteF9wbGwxNHh4X3JhdGVfdGFibGUgaW14OG1tX3ZpZGVvcGxsX3RibFtdID0gewpAQCAtNTEsNDMgKzUxLDQzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14X3BsbDE0eHhfcmF0ZV90YWJsZSBpbXg4bW1fZHJhbXBsbF90YmxbXSA9IHsKIAlQTExfMTQ0M1hfUkFURSg2NTAwMDAwMDBVLCAzMjUsIDMsIDIsIDApLAogfTsKIAotc3RhdGljIHN0cnVjdCBpbXhfcGxsMTR4eF9jbGsgaW14OG1tX2F1ZGlvX3BsbCBfX2luaXRkYXRhID0geworc3RhdGljIHN0cnVjdCBpbXhfcGxsMTR4eF9jbGsgaW14OG1tX2F1ZGlvX3BsbCA9IHsKIAkJLnR5cGUgPSBQTExfMTQ0M1gsCiAJCS5yYXRlX3RhYmxlID0gaW14OG1tX2F1ZGlvcGxsX3RibCwKIAkJLnJhdGVfY291bnQgPSBBUlJBWV9TSVpFKGlteDhtbV9hdWRpb3BsbF90YmwpLAogfTsKIAotc3RhdGljIHN0cnVjdCBpbXhfcGxsMTR4eF9jbGsgaW14OG1tX3ZpZGVvX3BsbCBfX2luaXRkYXRhID0geworc3RhdGljIHN0cnVjdCBpbXhfcGxsMTR4eF9jbGsgaW14OG1tX3ZpZGVvX3BsbCA9IHsKIAkJLnR5cGUgPSBQTExfMTQ0M1gsCiAJCS5yYXRlX3RhYmxlID0gaW14OG1tX3ZpZGVvcGxsX3RibCwKIAkJLnJhdGVfY291bnQgPSBBUlJBWV9TSVpFKGlteDhtbV92aWRlb3BsbF90YmwpLAogfTsKIAotc3RhdGljIHN0cnVjdCBpbXhfcGxsMTR4eF9jbGsgaW14OG1tX2RyYW1fcGxsIF9faW5pdGRhdGEgPSB7CitzdGF0aWMgc3RydWN0IGlteF9wbGwxNHh4X2NsayBpbXg4bW1fZHJhbV9wbGwgPSB7CiAJCS50eXBlID0gUExMXzE0NDNYLAogCQkucmF0ZV90YWJsZSA9IGlteDhtbV9kcmFtcGxsX3RibCwKIAkJLnJhdGVfY291bnQgPSBBUlJBWV9TSVpFKGlteDhtbV9kcmFtcGxsX3RibCksCiB9OwogCi1zdGF0aWMgc3RydWN0IGlteF9wbGwxNHh4X2NsayBpbXg4bW1fYXJtX3BsbCBfX2luaXRkYXRhID0geworc3RhdGljIHN0cnVjdCBpbXhfcGxsMTR4eF9jbGsgaW14OG1tX2FybV9wbGwgPSB7CiAJCS50eXBlID0gUExMXzE0MTZYLAogCQkucmF0ZV90YWJsZSA9IGlteDhtbV9wbGwxNDE2eF90YmwsCiAJCS5yYXRlX2NvdW50ID0gQVJSQVlfU0laRShpbXg4bW1fcGxsMTQxNnhfdGJsKSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgaW14X3BsbDE0eHhfY2xrIGlteDhtbV9ncHVfcGxsIF9faW5pdGRhdGEgPSB7CitzdGF0aWMgc3RydWN0IGlteF9wbGwxNHh4X2NsayBpbXg4bW1fZ3B1X3BsbCA9IHsKIAkJLnR5cGUgPSBQTExfMTQxNlgsCiAJCS5yYXRlX3RhYmxlID0gaW14OG1tX3BsbDE0MTZ4X3RibCwKIAkJLnJhdGVfY291bnQgPSBBUlJBWV9TSVpFKGlteDhtbV9wbGwxNDE2eF90YmwpLAogfTsKIAotc3RhdGljIHN0cnVjdCBpbXhfcGxsMTR4eF9jbGsgaW14OG1tX3ZwdV9wbGwgX19pbml0ZGF0YSA9IHsKK3N0YXRpYyBzdHJ1Y3QgaW14X3BsbDE0eHhfY2xrIGlteDhtbV92cHVfcGxsID0gewogCQkudHlwZSA9IFBMTF8xNDE2WCwKIAkJLnJhdGVfdGFibGUgPSBpbXg4bW1fcGxsMTQxNnhfdGJsLAogCQkucmF0ZV9jb3VudCA9IEFSUkFZX1NJWkUoaW14OG1tX3BsbDE0MTZ4X3RibCksCiB9OwogCi1zdGF0aWMgc3RydWN0IGlteF9wbGwxNHh4X2NsayBpbXg4bW1fc3lzX3BsbCBfX2luaXRkYXRhID0geworc3RhdGljIHN0cnVjdCBpbXhfcGxsMTR4eF9jbGsgaW14OG1tX3N5c19wbGwgPSB7CiAJCS50eXBlID0gUExMXzE0MTZYLAogCQkucmF0ZV90YWJsZSA9IGlteDhtbV9wbGwxNDE2eF90YmwsCiAJCS5yYXRlX2NvdW50ID0gQVJSQVlfU0laRShpbXg4bW1fcGxsMTQxNnhfdGJsKSwKQEAgLTE3NSwxMCArMTc1LDEwIEBAIHN0YXRpYyBjb25zdCBjaGFyICppbXg4bW1fdnB1X2cxX3NlbHNbXSA9IHsib3NjXzI0bSIsICJ2cHVfcGxsX291dCIsICJzeXNfcGxsMV84CiBzdGF0aWMgY29uc3QgY2hhciAqaW14OG1tX3ZwdV9nMl9zZWxzW10gPSB7Im9zY18yNG0iLCAidnB1X3BsbF9vdXQiLCAic3lzX3BsbDFfODAwbSIsICJzeXNfcGxsMl8xMDAwbSIsCiAJCQkJCSAgICJzeXNfcGxsMV8xMDBtIiwgInN5c19wbGwyXzEyNW0iLCAic3lzX3BsbDNfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKmlteDhtbV9kaXNwX2R0cmNfc2Vsc1tdID0geyJvc2NfMjRtIiwgInZpZGVvX3BsbDJfb3V0IiwgInN5c19wbGwxXzgwMG0iLCAic3lzX3BsbDJfMTAwMG0iLAorc3RhdGljIGNvbnN0IGNoYXIgKmlteDhtbV9kaXNwX2R0cmNfc2Vsc1tdID0geyJvc2NfMjRtIiwgImR1bW15IiwgInN5c19wbGwxXzgwMG0iLCAic3lzX3BsbDJfMTAwMG0iLAogCQkJCQkgICAgICAic3lzX3BsbDFfMTYwbSIsICJ2aWRlb19wbGwxX291dCIsICJzeXNfcGxsM19vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqaW14OG1tX2Rpc3BfZGM4MDAwX3NlbHNbXSA9IHsib3NjXzI0bSIsICJ2aWRlb19wbGwyX291dCIsICJzeXNfcGxsMV84MDBtIiwgInN5c19wbGwyXzEwMDBtIiwKK3N0YXRpYyBjb25zdCBjaGFyICppbXg4bW1fZGlzcF9kYzgwMDBfc2Vsc1tdID0geyJvc2NfMjRtIiwgImR1bW15IiwgInN5c19wbGwxXzgwMG0iLCAic3lzX3BsbDJfMTAwMG0iLAogCQkJCQkJInN5c19wbGwxXzE2MG0iLCAidmlkZW9fcGxsMV9vdXQiLCAic3lzX3BsbDNfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmlteDhtbV9wY2llMV9jdHJsX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMl8yNTBtIiwgInN5c19wbGwyXzIwMG0iLCAic3lzX3BsbDFfMjY2bSIsCkBAIC0yMzIsNyArMjMyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmlteDhtbV9lbmV0X3BoeV9zZWxzW10gPSB7Im9zY18yNG0iLCAic3lzX3BsbDJfNTBtIiwgInN5c19wbGwKIHN0YXRpYyBjb25zdCBjaGFyICppbXg4bW1fbmFuZF9zZWxzW10gPSB7Im9zY18yNG0iLCAic3lzX3BsbDJfNTAwbSIsICJhdWRpb19wbGwxX291dCIsICJzeXNfcGxsMV80MDBtIiwKIAkJCQkJICJhdWRpb19wbGwyX291dCIsICJzeXNfcGxsM19vdXQiLCAic3lzX3BsbDJfMjUwbSIsICJ2aWRlb19wbGwxX291dCIsIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICppbXg4bW1fcXNwaV9zZWxzW10gPSB7Im9zY18yNG0iLCAic3lzX3BsbDFfNDAwbSIsICJzeXNfcGxsMV84MDBtIiwgInN5c19wbGwyXzUwMG0iLAorc3RhdGljIGNvbnN0IGNoYXIgKmlteDhtbV9xc3BpX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMV80MDBtIiwgInN5c19wbGwyXzMzM20iLCAic3lzX3BsbDJfNTAwbSIsCiAJCQkJCSAiYXVkaW9fcGxsMl9vdXQiLCAic3lzX3BsbDFfMjY2bSIsICJzeXNfcGxsM19vdXQiLCAic3lzX3BsbDFfMTAwbSIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICppbXg4bW1fdXNkaGMxX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMV80MDBtIiwgInN5c19wbGwxXzgwMG0iLCAic3lzX3BsbDJfNTAwbSIsCkBAIC0yODcsMTMgKzI4NywxMyBAQCBzdGF0aWMgY29uc3QgY2hhciAqaW14OG1tX3B3bTJfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwyXzEwMG0iLCAic3lzX3BsbDFfMQogCQkJCQkgInN5c19wbGwzX291dCIsICJjbGtfZXh0MSIsICJzeXNfcGxsMV84MG0iLCAidmlkZW9fcGxsMV9vdXQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqaW14OG1tX3B3bTNfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwyXzEwMG0iLCAic3lzX3BsbDFfMTYwbSIsICJzeXNfcGxsMV80MG0iLAotCQkJCQkgInN5czNfcGxsMl9vdXQiLCAiY2xrX2V4dDIiLCAic3lzX3BsbDFfODBtIiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKKwkJCQkJICJzeXNfcGxsM19vdXQiLCAiY2xrX2V4dDIiLCAic3lzX3BsbDFfODBtIiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmlteDhtbV9wd200X3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMl8xMDBtIiwgInN5c19wbGwxXzE2MG0iLCAic3lzX3BsbDFfNDBtIiwKIAkJCQkJICJzeXNfcGxsM19vdXQiLCAiY2xrX2V4dDIiLCAic3lzX3BsbDFfODBtIiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmlteDhtbV9ncHQxX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMl8xMDBtIiwgInN5c19wbGwxXzQwMG0iLCAic3lzX3BsbDFfNDBtIiwKLQkJCQkJICJ2aWRlb19wbGwxX291dCIsICJzeXNfcGxsMV84MDBtIiwgImF1ZGlvX3BsbDFfb3V0IiwgImNsa19leHQxIiB9OworCQkJCQkgInZpZGVvX3BsbDFfb3V0IiwgInN5c19wbGwxXzgwbSIsICJhdWRpb19wbGwxX291dCIsICJjbGtfZXh0MSIgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmlteDhtbV93ZG9nX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMV8xMzNtIiwgInN5c19wbGwxXzE2MG0iLCAidnB1X3BsbF9vdXQiLAogCQkJCQkgInN5c19wbGwyXzEyNW0iLCAic3lzX3BsbDNfb3V0IiwgInN5c19wbGwxXzgwbSIsICJzeXNfcGxsMl8xNjZtIiwgfTsKQEAgLTM0Nyw3ICszNDcsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqaW14OG1tX3BkbV9zZWxzW10gPSB7Im9zY18yNG0iLCAic3lzX3BsbDJfMTAwbSIsICJhdWRpb19wbGwxXwogCQkJCQkic3lzX3BsbDJfMTAwMG0iLCAic3lzX3BsbDNfb3V0IiwgImNsa19leHQzIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmlteDhtbV92cHVfaDFfc2Vsc1tdID0geyJvc2NfMjRtIiwgInZwdV9wbGxfb3V0IiwgInN5c19wbGwxXzgwMG0iLCAic3lzX3BsbDJfMTAwMG0iLAotCQkJCQkgICAiYXVkaW9fcGxsMl9vdXQiLCAic3lzX3BsbDJfMTI1bSIsICJzeXNfcGxsM19jbGsiLCAiYXVkaW9fcGxsMV9vdXQiLCB9OworCQkJCQkgICAiYXVkaW9fcGxsMl9vdXQiLCAic3lzX3BsbDJfMTI1bSIsICJzeXNfcGxsM19vdXQiLCAiYXVkaW9fcGxsMV9vdXQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqaW14OG1tX2RyYW1fY29yZV9zZWxzW10gPSB7ImRyYW1fcGxsX291dCIsICJkcmFtX2FsdF9yb290IiwgfTsKIApAQCAtMzU3LDcgKzM1Nyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICppbXg4bW1fY2xrbzFfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwxXzgwMG0iLCAib3NjXzI3bSIsCiBzdGF0aWMgc3RydWN0IGNsayAqY2xrc1tJTVg4TU1fQ0xLX0VORF07CiBzdGF0aWMgc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgY2xrX2RhdGE7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICoqIGNvbnN0IHVhcnRfY2xrc1tdIF9faW5pdGNvbnN0ID0geworc3RhdGljIHN0cnVjdCBjbGsgKiogY29uc3QgdWFydF9jbGtzW10gPSB7CiAJJmNsa3NbSU1YOE1NX0NMS19VQVJUMV9ST09UXSwKIAkmY2xrc1tJTVg4TU1fQ0xLX1VBUlQyX1JPT1RdLAogCSZjbGtzW0lNWDhNTV9DTEtfVUFSVDNfUk9PVF0sCkBAIC0zNjUsMTkgKzM2NSwyMCBAQCBzdGF0aWMgc3RydWN0IGNsayAqKiBjb25zdCB1YXJ0X2Nsa3NbXSBfX2luaXRjb25zdCA9IHsKIAlOVUxMCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBpbXg4bW1fY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpjY21fbm9kZSkKK3N0YXRpYyBpbnQgaW14OG1tX2Nsb2Nrc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewotCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnA7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZGV2LT5vZl9ub2RlOwogCXZvaWQgX19pb21lbSAqYmFzZTsKIAlpbnQgcmV0OwogCiAJY2xrc1tJTVg4TU1fQ0xLX0RVTU1ZXSA9IGlteF9jbGtfZml4ZWQoImR1bW15IiwgMCk7Ci0JY2xrc1tJTVg4TU1fQ0xLXzI0TV0gPSBvZl9jbGtfZ2V0X2J5X25hbWUoY2NtX25vZGUsICJvc2NfMjRtIik7Ci0JY2xrc1tJTVg4TU1fQ0xLXzMyS10gPSBvZl9jbGtfZ2V0X2J5X25hbWUoY2NtX25vZGUsICJvc2NfMzJrIik7Ci0JY2xrc1tJTVg4TU1fQ0xLX0VYVDFdID0gb2ZfY2xrX2dldF9ieV9uYW1lKGNjbV9ub2RlLCAiY2xrX2V4dDEiKTsKLQljbGtzW0lNWDhNTV9DTEtfRVhUMl0gPSBvZl9jbGtfZ2V0X2J5X25hbWUoY2NtX25vZGUsICJjbGtfZXh0MiIpOwotCWNsa3NbSU1YOE1NX0NMS19FWFQzXSA9IG9mX2Nsa19nZXRfYnlfbmFtZShjY21fbm9kZSwgImNsa19leHQzIik7Ci0JY2xrc1tJTVg4TU1fQ0xLX0VYVDRdID0gb2ZfY2xrX2dldF9ieV9uYW1lKGNjbV9ub2RlLCAiY2xrX2V4dDQiKTsKKwljbGtzW0lNWDhNTV9DTEtfMjRNXSA9IG9mX2Nsa19nZXRfYnlfbmFtZShucCwgIm9zY18yNG0iKTsKKwljbGtzW0lNWDhNTV9DTEtfMzJLXSA9IG9mX2Nsa19nZXRfYnlfbmFtZShucCwgIm9zY18zMmsiKTsKKwljbGtzW0lNWDhNTV9DTEtfRVhUMV0gPSBvZl9jbGtfZ2V0X2J5X25hbWUobnAsICJjbGtfZXh0MSIpOworCWNsa3NbSU1YOE1NX0NMS19FWFQyXSA9IG9mX2Nsa19nZXRfYnlfbmFtZShucCwgImNsa19leHQyIik7CisJY2xrc1tJTVg4TU1fQ0xLX0VYVDNdID0gb2ZfY2xrX2dldF9ieV9uYW1lKG5wLCAiY2xrX2V4dDMiKTsKKwljbGtzW0lNWDhNTV9DTEtfRVhUNF0gPSBvZl9jbGtfZ2V0X2J5X25hbWUobnAsICJjbGtfZXh0NCIpOwogCiAJbnAgPSBvZl9maW5kX2NvbXBhdGlibGVfbm9kZShOVUxMLCBOVUxMLCAiZnNsLGlteDhtbS1hbmF0b3AiKTsKIAliYXNlID0gb2ZfaW9tYXAobnAsIDApOwpAQCAtNDA3LDI4ICs0MDgsMTYgQEAgc3RhdGljIGludCBfX2luaXQgaW14OG1tX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY2NtX25vZGUpCiAJY2xrc1tJTVg4TU1fU1lTX1BMTDNdID0gaW14X2Nsa19wbGwxNHh4KCJzeXNfcGxsMyIsICJzeXNfcGxsM19yZWZfc2VsIiwgYmFzZSArIDB4MTE0LCAmaW14OG1tX3N5c19wbGwpOwogCiAJLyogUExMIGJ5cGFzcyBvdXQgKi8KLQljbGtzW0lNWDhNTV9BVURJT19QTEwxX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiYXVkaW9fcGxsMV9ieXBhc3MiLCBiYXNlLCA0LCAxLCBhdWRpb19wbGwxX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKGF1ZGlvX3BsbDFfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQljbGtzW0lNWDhNTV9BVURJT19QTEwyX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiYXVkaW9fcGxsMl9ieXBhc3MiLCBiYXNlICsgMHgxNCwgNCwgMSwgYXVkaW9fcGxsMl9ieXBhc3Nfc2VscywgQVJSQVlfU0laRShhdWRpb19wbGwyX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Ci0JY2xrc1tJTVg4TU1fVklERU9fUExMMV9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInZpZGVvX3BsbDFfYnlwYXNzIiwgYmFzZSArIDB4MjgsIDQsIDEsIHZpZGVvX3BsbDFfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUodmlkZW9fcGxsMV9ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOwotCWNsa3NbSU1YOE1NX0RSQU1fUExMX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiZHJhbV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4NTAsIDQsIDEsIGRyYW1fcGxsX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKGRyYW1fcGxsX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Ci0JY2xrc1tJTVg4TU1fR1BVX1BMTF9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoImdwdV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4NjQsIDQsIDEsIGdwdV9wbGxfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoZ3B1X3BsbF9ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOwotCWNsa3NbSU1YOE1NX1ZQVV9QTExfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJ2cHVfcGxsX2J5cGFzcyIsIGJhc2UgKyAweDc0LCA0LCAxLCB2cHVfcGxsX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKHZwdV9wbGxfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQljbGtzW0lNWDhNTV9BUk1fUExMX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiYXJtX3BsbF9ieXBhc3MiLCBiYXNlICsgMHg4NCwgNCwgMSwgYXJtX3BsbF9ieXBhc3Nfc2VscywgQVJSQVlfU0laRShhcm1fcGxsX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Ci0JY2xrc1tJTVg4TU1fU1lTX1BMTDFfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJzeXNfcGxsMV9ieXBhc3MiLCBiYXNlICsgMHg5NCwgNCwgMSwgc3lzX3BsbDFfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoc3lzX3BsbDFfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQljbGtzW0lNWDhNTV9TWVNfUExMMl9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInN5c19wbGwyX2J5cGFzcyIsIGJhc2UgKyAweDEwNCwgNCwgMSwgc3lzX3BsbDJfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoc3lzX3BsbDJfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQljbGtzW0lNWDhNTV9TWVNfUExMM19CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInN5c19wbGwzX2J5cGFzcyIsIGJhc2UgKyAweDExNCwgNCwgMSwgc3lzX3BsbDNfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoc3lzX3BsbDNfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQotCS8qIHVuYnlwYXNzIGFsbCB0aGUgcGxscyAqLwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1NX0FVRElPX1BMTDFfQllQQVNTXSwgY2xrc1tJTVg4TU1fQVVESU9fUExMMV0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1NX0FVRElPX1BMTDJfQllQQVNTXSwgY2xrc1tJTVg4TU1fQVVESU9fUExMMl0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1NX1ZJREVPX1BMTDFfQllQQVNTXSwgY2xrc1tJTVg4TU1fVklERU9fUExMMV0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1NX0RSQU1fUExMX0JZUEFTU10sIGNsa3NbSU1YOE1NX0RSQU1fUExMXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg4TU1fR1BVX1BMTF9CWVBBU1NdLCBjbGtzW0lNWDhNTV9HUFVfUExMXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg4TU1fVlBVX1BMTF9CWVBBU1NdLCBjbGtzW0lNWDhNTV9WUFVfUExMXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg4TU1fQVJNX1BMTF9CWVBBU1NdLCBjbGtzW0lNWDhNTV9BUk1fUExMXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg4TU1fU1lTX1BMTDFfQllQQVNTXSwgY2xrc1tJTVg4TU1fU1lTX1BMTDFdKTsKLQljbGtfc2V0X3BhcmVudChjbGtzW0lNWDhNTV9TWVNfUExMMl9CWVBBU1NdLCBjbGtzW0lNWDhNTV9TWVNfUExMMl0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1NX1NZU19QTEwzX0JZUEFTU10sIGNsa3NbSU1YOE1NX1NZU19QTEwzXSk7CisJY2xrc1tJTVg4TU1fQVVESU9fUExMMV9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoImF1ZGlvX3BsbDFfYnlwYXNzIiwgYmFzZSwgMTYsIDEsIGF1ZGlvX3BsbDFfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoYXVkaW9fcGxsMV9ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOworCWNsa3NbSU1YOE1NX0FVRElPX1BMTDJfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJhdWRpb19wbGwyX2J5cGFzcyIsIGJhc2UgKyAweDE0LCAxNiwgMSwgYXVkaW9fcGxsMl9ieXBhc3Nfc2VscywgQVJSQVlfU0laRShhdWRpb19wbGwyX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7CisJY2xrc1tJTVg4TU1fVklERU9fUExMMV9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInZpZGVvX3BsbDFfYnlwYXNzIiwgYmFzZSArIDB4MjgsIDE2LCAxLCB2aWRlb19wbGwxX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKHZpZGVvX3BsbDFfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKKwljbGtzW0lNWDhNTV9EUkFNX1BMTF9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoImRyYW1fcGxsX2J5cGFzcyIsIGJhc2UgKyAweDUwLCAxNiwgMSwgZHJhbV9wbGxfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoZHJhbV9wbGxfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKKwljbGtzW0lNWDhNTV9HUFVfUExMX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiZ3B1X3BsbF9ieXBhc3MiLCBiYXNlICsgMHg2NCwgMjgsIDEsIGdwdV9wbGxfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoZ3B1X3BsbF9ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOworCWNsa3NbSU1YOE1NX1ZQVV9QTExfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJ2cHVfcGxsX2J5cGFzcyIsIGJhc2UgKyAweDc0LCAyOCwgMSwgdnB1X3BsbF9ieXBhc3Nfc2VscywgQVJSQVlfU0laRSh2cHVfcGxsX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7CisJY2xrc1tJTVg4TU1fQVJNX1BMTF9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoImFybV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4ODQsIDI4LCAxLCBhcm1fcGxsX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKGFybV9wbGxfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKKwljbGtzW0lNWDhNTV9TWVNfUExMMV9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInN5c19wbGwxX2J5cGFzcyIsIGJhc2UgKyAweDk0LCAyOCwgMSwgc3lzX3BsbDFfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoc3lzX3BsbDFfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKKwljbGtzW0lNWDhNTV9TWVNfUExMMl9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInN5c19wbGwyX2J5cGFzcyIsIGJhc2UgKyAweDEwNCwgMjgsIDEsIHN5c19wbGwyX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKHN5c19wbGwyX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7CisJY2xrc1tJTVg4TU1fU1lTX1BMTDNfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJzeXNfcGxsM19ieXBhc3MiLCBiYXNlICsgMHgxMTQsIDI4LCAxLCBzeXNfcGxsM19ieXBhc3Nfc2VscywgQVJSQVlfU0laRShzeXNfcGxsM19ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOwogCiAJLyogUExMIG91dCBnYXRlICovCiAJY2xrc1tJTVg4TU1fQVVESU9fUExMMV9PVVRdID0gaW14X2Nsa19nYXRlKCJhdWRpb19wbGwxX291dCIsICJhdWRpb19wbGwxX2J5cGFzcyIsIGJhc2UsIDEzKTsKQEAgLTQ2MywxMCArNDUyLDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGlteDhtbV9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKmNjbV9ub2RlKQogCWNsa3NbSU1YOE1NX1NZU19QTEwyXzUwME1dID0gaW14X2Nsa19maXhlZF9mYWN0b3IoInN5c19wbGwyXzUwMG0iLCAic3lzX3BsbDJfb3V0IiwgMSwgMik7CiAJY2xrc1tJTVg4TU1fU1lTX1BMTDJfMTAwME1dID0gaW14X2Nsa19maXhlZF9mYWN0b3IoInN5c19wbGwyXzEwMDBtIiwgInN5c19wbGwyX291dCIsIDEsIDEpOwogCi0JbnAgPSBjY21fbm9kZTsKLQliYXNlID0gb2ZfaW9tYXAobnAsIDApOwotCWlmIChXQVJOX09OKCFiYXNlKSkKLQkJcmV0dXJuIC1FTk9NRU07CisJbnAgPSBkZXYtPm9mX25vZGU7CisJYmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKwlpZiAoV0FSTl9PTihJU19FUlIoYmFzZSkpKQorCQlyZXR1cm4gUFRSX0VSUihiYXNlKTsKIAogCS8qIENvcmUgU2xpY2UgKi8KIAljbGtzW0lNWDhNTV9DTEtfQTUzX1NSQ10gPSBpbXhfY2xrX211eDIoImFybV9hNTNfc3JjIiwgYmFzZSArIDB4ODAwMCwgMjQsIDMsIGlteDhtbV9hNTNfc2VscywgQVJSQVlfU0laRShpbXg4bW1fYTUzX3NlbHMpKTsKQEAgLTYxNCw3ICs2MDMsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBpbXg4bW1fY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpjY21fbm9kZSkKIAljbGtzW0lNWDhNTV9DTEtfVUFSVDJfUk9PVF0gPSBpbXhfY2xrX2dhdGU0KCJ1YXJ0Ml9yb290X2NsayIsICJ1YXJ0MiIsIGJhc2UgKyAweDQ0YTAsIDApOwogCWNsa3NbSU1YOE1NX0NMS19VQVJUM19ST09UXSA9IGlteF9jbGtfZ2F0ZTQoInVhcnQzX3Jvb3RfY2xrIiwgInVhcnQzIiwgYmFzZSArIDB4NDRiMCwgMCk7CiAJY2xrc1tJTVg4TU1fQ0xLX1VBUlQ0X1JPT1RdID0gaW14X2Nsa19nYXRlNCgidWFydDRfcm9vdF9jbGsiLCAidWFydDQiLCBiYXNlICsgMHg0NGMwLCAwKTsKLQljbGtzW0lNWDhNTV9DTEtfVVNCMV9DVFJMX1JPT1RdID0gaW14X2Nsa19nYXRlNCgidXNiMV9jdHJsX3Jvb3RfY2xrIiwgInVzYl9jb3JlX3JlZiIsIGJhc2UgKyAweDQ0ZDAsIDApOworCWNsa3NbSU1YOE1NX0NMS19VU0IxX0NUUkxfUk9PVF0gPSBpbXhfY2xrX2dhdGU0KCJ1c2IxX2N0cmxfcm9vdF9jbGsiLCAidXNiX2J1cyIsIGJhc2UgKyAweDQ0ZDAsIDApOwogCWNsa3NbSU1YOE1NX0NMS19HUFUzRF9ST09UXSA9IGlteF9jbGtfZ2F0ZTQoImdwdTNkX3Jvb3RfY2xrIiwgImdwdTNkX2RpdiIsIGJhc2UgKyAweDQ0ZjAsIDApOwogCWNsa3NbSU1YOE1NX0NMS19VU0RIQzFfUk9PVF0gPSBpbXhfY2xrX2dhdGU0KCJ1c2RoYzFfcm9vdF9jbGsiLCAidXNkaGMxIiwgYmFzZSArIDB4NDUxMCwgMCk7CiAJY2xrc1tJTVg4TU1fQ0xLX1VTREhDMl9ST09UXSA9IGlteF9jbGtfZ2F0ZTQoInVzZGhjMl9yb290X2NsayIsICJ1c2RoYzIiLCBiYXNlICsgMHg0NTIwLCAwKTsKQEAgLTYyNywxMCArNjE2LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGlteDhtbV9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKmNjbV9ub2RlKQogCWNsa3NbSU1YOE1NX0NMS19WUFVfRzJfUk9PVF0gPSBpbXhfY2xrX2dhdGU0KCJ2cHVfZzJfcm9vdF9jbGsiLCAidnB1X2cyIiwgYmFzZSArIDB4NDVhMCwgMCk7CiAJY2xrc1tJTVg4TU1fQ0xLX1BETV9ST09UXSA9IGlteF9jbGtfZ2F0ZTJfc2hhcmVkMigicGRtX3Jvb3RfY2xrIiwgInBkbSIsIGJhc2UgKyAweDQ1YjAsIDAsICZzaGFyZV9jb3VudF9wZG0pOwogCWNsa3NbSU1YOE1NX0NMS19QRE1fSVBHXSAgPSBpbXhfY2xrX2dhdGUyX3NoYXJlZDIoInBkbV9pcGdfY2xrIiwgImlwZ19hdWRpb19yb290IiwgYmFzZSArIDB4NDViMCwgMCwgJnNoYXJlX2NvdW50X3BkbSk7Ci0JY2xrc1tJTVg4TU1fQ0xLX0RJU1BfUk9PVF0gPSBpbXhfY2xrX2dhdGUyX3NoYXJlZDIoImRpc3Bfcm9vdF9jbGsiLCAiZGlzcF9kYzgwMDAiLCBiYXNlICsgMHg0NWQwLCAwLCAmc2hhcmVfY291bnRfZGNzcyk7Ci0JY2xrc1tJTVg4TU1fQ0xLX0RJU1BfQVhJX1JPT1RdICA9IGlteF9jbGtfZ2F0ZTJfc2hhcmVkMigiZGlzcF9heGlfcm9vdF9jbGsiLCAiZGlzcF9heGkiLCBiYXNlICsgMHg0NWQwLCAwLCAmc2hhcmVfY291bnRfZGNzcyk7Ci0JY2xrc1tJTVg4TU1fQ0xLX0RJU1BfQVBCX1JPT1RdICA9IGlteF9jbGtfZ2F0ZTJfc2hhcmVkMigiZGlzcF9hcGJfcm9vdF9jbGsiLCAiZGlzcF9hcGIiLCBiYXNlICsgMHg0NWQwLCAwLCAmc2hhcmVfY291bnRfZGNzcyk7Ci0JY2xrc1tJTVg4TU1fQ0xLX0RJU1BfUlRSTV9ST09UXSA9IGlteF9jbGtfZ2F0ZTJfc2hhcmVkMigiZGlzcF9ydHJtX3Jvb3RfY2xrIiwgImRpc3BfcnRybSIsIGJhc2UgKyAweDQ1ZDAsIDAsICZzaGFyZV9jb3VudF9kY3NzKTsKKwljbGtzW0lNWDhNTV9DTEtfRElTUF9ST09UXSA9IGlteF9jbGtfZ2F0ZTJfc2hhcmVkMigiZGlzcF9yb290X2NsayIsICJkaXNwX2RjODAwMCIsIGJhc2UgKyAweDQ1ZDAsIDAsICZzaGFyZV9jb3VudF9kaXNwKTsKKwljbGtzW0lNWDhNTV9DTEtfRElTUF9BWElfUk9PVF0gID0gaW14X2Nsa19nYXRlMl9zaGFyZWQyKCJkaXNwX2F4aV9yb290X2NsayIsICJkaXNwX2F4aSIsIGJhc2UgKyAweDQ1ZDAsIDAsICZzaGFyZV9jb3VudF9kaXNwKTsKKwljbGtzW0lNWDhNTV9DTEtfRElTUF9BUEJfUk9PVF0gID0gaW14X2Nsa19nYXRlMl9zaGFyZWQyKCJkaXNwX2FwYl9yb290X2NsayIsICJkaXNwX2FwYiIsIGJhc2UgKyAweDQ1ZDAsIDAsICZzaGFyZV9jb3VudF9kaXNwKTsKKwljbGtzW0lNWDhNTV9DTEtfRElTUF9SVFJNX1JPT1RdID0gaW14X2Nsa19nYXRlMl9zaGFyZWQyKCJkaXNwX3J0cm1fcm9vdF9jbGsiLCAiZGlzcF9ydHJtIiwgYmFzZSArIDB4NDVkMCwgMCwgJnNoYXJlX2NvdW50X2Rpc3ApOwogCWNsa3NbSU1YOE1NX0NMS19VU0RIQzNfUk9PVF0gPSBpbXhfY2xrX2dhdGU0KCJ1c2RoYzNfcm9vdF9jbGsiLCAidXNkaGMzIiwgYmFzZSArIDB4NDVlMCwgMCk7CiAJY2xrc1tJTVg4TU1fQ0xLX1RNVV9ST09UXSA9IGlteF9jbGtfZ2F0ZTQoInRtdV9yb290X2NsayIsICJpcGdfcm9vdCIsIGJhc2UgKyAweDQ2MjAsIDApOwogCWNsa3NbSU1YOE1NX0NMS19WUFVfREVDX1JPT1RdID0gaW14X2Nsa19nYXRlNCgidnB1X2RlY19yb290X2NsayIsICJ2cHVfYnVzIiwgYmFzZSArIDB4NDYzMCwgMCk7CkBAIC02NTgsMTEgKzY0NywzMCBAQCBzdGF0aWMgaW50IF9faW5pdCBpbXg4bW1fY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpjY21fbm9kZSkKIAlyZXQgPSBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5wLCBvZl9jbGtfc3JjX29uZWNlbGxfZ2V0LCAmY2xrX2RhdGEpOwogCWlmIChyZXQgPCAwKSB7CiAJCXByX2VycigiZmFpbGVkIHRvIHJlZ2lzdGVyIGNsa3MgZm9yIGkuTVg4TU1cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKKwkJZ290byB1bnJlZ2lzdGVyX2Nsa3M7CiAJfQogCiAJaW14X3JlZ2lzdGVyX3VhcnRfY2xvY2tzKHVhcnRfY2xrcyk7CiAKIAlyZXR1cm4gMDsKKwordW5yZWdpc3Rlcl9jbGtzOgorCWlteF91bnJlZ2lzdGVyX2Nsb2NrcyhjbGtzLCBBUlJBWV9TSVpFKGNsa3MpKTsKKworCXJldHVybiByZXQ7CiB9Ci1DTEtfT0ZfREVDTEFSRV9EUklWRVIoaW14OG1tLCAiZnNsLGlteDhtbS1jY20iLCBpbXg4bW1fY2xvY2tzX2luaXQpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbXg4bW1fY2xrX29mX21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJmc2wsaW14OG1tLWNjbSIgfSwKKwl7IC8qIFNlbnRpbmVsICovIH0sCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaW14OG1tX2Nsa19vZl9tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlteDhtbV9jbGtfZHJpdmVyID0geworCS5wcm9iZSA9IGlteDhtbV9jbG9ja3NfcHJvYmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiaW14OG1tLWNjbSIsCisJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0cihpbXg4bW1fY2xrX29mX21hdGNoKSwKKwl9LAorfTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoaW14OG1tX2Nsa19kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvaW14L2Nsay1pbXg4bW4uYyBiL2RyaXZlcnMvY2xrL2lteC9jbGstaW14OG1uLmMKaW5kZXggMDc0ODFhNS4uNDdhNGI0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvaW14L2Nsay1pbXg4bW4uYworKysgYi9kcml2ZXJzL2Nsay9pbXgvY2xrLWlteDhtbi5jCkBAIC00Miw2ICs0Miw4IEBAIGVudW0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBpbXhfcGxsMTR4eF9yYXRlX3RhYmxlIGlteDhtbl9wbGwxNDE2eF90YmxbXSA9IHsKIAlQTExfMTQxNlhfUkFURSgxODAwMDAwMDAwVSwgMjI1LCAzLCAwKSwKIAlQTExfMTQxNlhfUkFURSgxNjAwMDAwMDAwVSwgMjAwLCAzLCAwKSwKKwlQTExfMTQxNlhfUkFURSgxNTAwMDAwMDAwVSwgMzc1LCAzLCAxKSwKKwlQTExfMTQxNlhfUkFURSgxNDAwMDAwMDAwVSwgMzUwLCAzLCAxKSwKIAlQTExfMTQxNlhfUkFURSgxMjAwMDAwMDAwVSwgMzAwLCAzLCAxKSwKIAlQTExfMTQxNlhfUkFURSgxMDAwMDAwMDAwVSwgMjUwLCAzLCAxKSwKIAlQTExfMTQxNlhfUkFURSg4MDAwMDAwMDBVLCAgMjAwLCAzLCAxKSwKQEAgLTUxLDggKzUzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbXhfcGxsMTR4eF9yYXRlX3RhYmxlIGlteDhtbl9wbGwxNDE2eF90YmxbXSA9IHsKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14X3BsbDE0eHhfcmF0ZV90YWJsZSBpbXg4bW5fYXVkaW9wbGxfdGJsW10gPSB7Ci0JUExMXzE0NDNYX1JBVEUoNzg2NDMyMDAwVSwgNjU1LCA1LCAyLCAyMzU5MyksCi0JUExMXzE0NDNYX1JBVEUoNzIyNTM0NDAwVSwgMzAxLCA1LCAxLCAzNjcwKSwKKwlQTExfMTQ0M1hfUkFURSgzOTMyMTYwMDBVLCAyNjIsIDIsIDMsIDk0MzcpLAorCVBMTF8xNDQzWF9SQVRFKDM2MTI2NzIwMFUsIDM2MSwgMywgMywgMTc1MTEpLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbXhfcGxsMTR4eF9yYXRlX3RhYmxlIGlteDhtbl92aWRlb3BsbF90YmxbXSA9IHsKQEAgLTY3LDM2ICs2OSw0MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteF9wbGwxNHh4X3JhdGVfdGFibGUgaW14OG1uX2RyYW1wbGxfdGJsW10gPSB7CiBzdGF0aWMgc3RydWN0IGlteF9wbGwxNHh4X2NsayBpbXg4bW5fYXVkaW9fcGxsID0gewogCQkudHlwZSA9IFBMTF8xNDQzWCwKIAkJLnJhdGVfdGFibGUgPSBpbXg4bW5fYXVkaW9wbGxfdGJsLAorCQkucmF0ZV9jb3VudCA9IEFSUkFZX1NJWkUoaW14OG1uX2F1ZGlvcGxsX3RibCksCiB9OwogCiBzdGF0aWMgc3RydWN0IGlteF9wbGwxNHh4X2NsayBpbXg4bW5fdmlkZW9fcGxsID0gewogCQkudHlwZSA9IFBMTF8xNDQzWCwKIAkJLnJhdGVfdGFibGUgPSBpbXg4bW5fdmlkZW9wbGxfdGJsLAorCQkucmF0ZV9jb3VudCA9IEFSUkFZX1NJWkUoaW14OG1uX3ZpZGVvcGxsX3RibCksCiB9OwogCiBzdGF0aWMgc3RydWN0IGlteF9wbGwxNHh4X2NsayBpbXg4bW5fZHJhbV9wbGwgPSB7CiAJCS50eXBlID0gUExMXzE0NDNYLAogCQkucmF0ZV90YWJsZSA9IGlteDhtbl9kcmFtcGxsX3RibCwKKwkJLnJhdGVfY291bnQgPSBBUlJBWV9TSVpFKGlteDhtbl9kcmFtcGxsX3RibCksCiB9OwogCiBzdGF0aWMgc3RydWN0IGlteF9wbGwxNHh4X2NsayBpbXg4bW5fYXJtX3BsbCA9IHsKIAkJLnR5cGUgPSBQTExfMTQxNlgsCiAJCS5yYXRlX3RhYmxlID0gaW14OG1uX3BsbDE0MTZ4X3RibCwKKwkJLnJhdGVfY291bnQgPSBBUlJBWV9TSVpFKGlteDhtbl9wbGwxNDE2eF90YmwpLAogfTsKIAogc3RhdGljIHN0cnVjdCBpbXhfcGxsMTR4eF9jbGsgaW14OG1uX2dwdV9wbGwgPSB7CiAJCS50eXBlID0gUExMXzE0MTZYLAogCQkucmF0ZV90YWJsZSA9IGlteDhtbl9wbGwxNDE2eF90YmwsCisJCS5yYXRlX2NvdW50ID0gQVJSQVlfU0laRShpbXg4bW5fcGxsMTQxNnhfdGJsKSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgaW14X3BsbDE0eHhfY2xrIGlteDhtbl92cHVfcGxsID0gewogCQkudHlwZSA9IFBMTF8xNDE2WCwKIAkJLnJhdGVfdGFibGUgPSBpbXg4bW5fcGxsMTQxNnhfdGJsLAorCQkucmF0ZV9jb3VudCA9IEFSUkFZX1NJWkUoaW14OG1uX3BsbDE0MTZ4X3RibCksCiB9OwogCiBzdGF0aWMgc3RydWN0IGlteF9wbGwxNHh4X2NsayBpbXg4bW5fc3lzX3BsbCA9IHsKIAkJLnR5cGUgPSBQTExfMTQxNlgsCiAJCS5yYXRlX3RhYmxlID0gaW14OG1uX3BsbDE0MTZ4X3RibCwKKwkJLnJhdGVfY291bnQgPSBBUlJBWV9TSVpFKGlteDhtbl9wbGwxNDE2eF90YmwpLAogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwbGxfcmVmX3NlbHNbXSA9IHsgIm9zY18yNG0iLCAiZHVtbXkiLCAiZHVtbXkiLCAiZHVtbXkiLCB9OwpAQCAtMTQwLDcgKzE0OSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1uX2Rpc3BfYXhpX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMl8xMDAwbSIsCiAJCQkJCQkgICAgImNsa19leHQxIiwgImNsa19leHQ0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bW5fZGlzcF9hcGJfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwyXzEyNW0iLCAic3lzX3BsbDFfODAwbSIsCi0JCQkJCQkgICAgInN5c19wbGwzX291dCIsICJzeXMxX3BsbF80MG0iLCAiYXVkaW9fcGxsMl9vdXQiLAorCQkJCQkJICAgICJzeXNfcGxsM19vdXQiLCAic3lzX3BsbDFfNDBtIiwgImF1ZGlvX3BsbDJfb3V0IiwKIAkJCQkJCSAgICAiY2xrX2V4dDEiLCAiY2xrX2V4dDMiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtbl91c2JfYnVzX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMl81MDBtIiwgInN5c19wbGwxXzgwMG0iLApAQCAtMjE5LDkgKzIyOCw5IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1uX25hbmRfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwyXzUwMG0iLCAiYXVkCiAJCQkJCQkic3lzX3BsbDFfNDAwbSIsICJhdWRpb19wbGwyX291dCIsICJzeXNfcGxsM19vdXQiLAogCQkJCQkJInN5c19wbGwyXzI1MG0iLCAidmlkZW9fcGxsMV9vdXQiLCB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtbl9xc3BpX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXMxX3BsbF80MDBtIiwgInN5c19wbGwxXzgwMG0iLAotCQkJCQkJInN5czJfcGxsXzUwMG0iLCAiYXVkaW9fcGxsMl9vdXQiLCAic3lzMV9wbGxfMjY2bSIsCi0JCQkJCQkic3lzM19wbGwyX291dCIsICJzeXMxX3BsbF8xMDBtIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1uX3FzcGlfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwxXzQwMG0iLCAic3lzX3BsbDJfMzMzbSIsCisJCQkJCQkic3lzX3BsbDJfNTAwbSIsICJhdWRpb19wbGwyX291dCIsICJzeXNfcGxsMV8yNjZtIiwKKwkJCQkJCSJzeXNfcGxsM19vdXQiLCAic3lzX3BsbDFfMTAwbSIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1uX3VzZGhjMV9zZWxzW10gPSB7Im9zY18yNG0iLCAic3lzX3BsbDFfNDAwbSIsICJzeXNfcGxsMV84MDBtIiwKIAkJCQkJCSAgInN5c19wbGwyXzUwMG0iLCAic3lzX3BsbDNfb3V0IiwgInN5c19wbGwxXzI2Nm0iLApAQCAtMjcxLDYgKzI4MCwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtbl91c2JfcGh5X3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMV8xMDBtIiwgIgogCQkJCQkJICAgInN5c19wbGwyXzEwMG0iLCAic3lzX3BsbDJfMjAwbSIsICJjbGtfZXh0MiIsCiAJCQkJCQkgICAiY2xrX2V4dDMiLCAiYXVkaW9fcGxsMl9vdXQiLCB9OwogCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtbl9naWNfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwyXzIwMG0iLCAic3lzX3BsbDFfNDBtIiwKKwkJCQkJInN5c19wbGwyXzEwMG0iLCAic3lzX3BsbDFfODAwbSIsICJjbGtfZXh0MiIsCisJCQkJCSJjbGtfZXh0NCIsICJhdWRpb19wbGwyX291dCIgfTsKKwogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bW5fZWNzcGkxX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMl8yMDBtIiwgInN5c19wbGwxXzQwbSIsCiAJCQkJCQkgICJzeXNfcGxsMV8xNjBtIiwgInN5c19wbGwxXzgwMG0iLCAic3lzX3BsbDNfb3V0IiwKIAkJCQkJCSAgInN5c19wbGwyXzI1MG0iLCAiYXVkaW9fcGxsMl9vdXQiLCB9OwpAQCAtMjg4LDcgKzMwMSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1uX3B3bTJfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwyXzEwMG0iLCAic3lzCiAJCQkJCQkic3lzX3BsbDFfODBtIiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bW5fcHdtM19zZWxzW10gPSB7Im9zY18yNG0iLCAic3lzX3BsbDJfMTAwbSIsICJzeXNfcGxsMV8xNjBtIiwKLQkJCQkJCSJzeXNfcGxsMV80MG0iLCAic3lzM19wbGwyX291dCIsICJjbGtfZXh0MiIsCisJCQkJCQkic3lzX3BsbDFfNDBtIiwgInN5c19wbGwzX291dCIsICJjbGtfZXh0MiIsCiAJCQkJCQkic3lzX3BsbDFfODBtIiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bW5fcHdtNF9zZWxzW10gPSB7Im9zY18yNG0iLCAic3lzX3BsbDJfMTAwbSIsICJzeXNfcGxsMV8xNjBtIiwKQEAgLTMxNyw3ICszMzAsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtbl9kc2lfZGJpX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMV8yNjZtIiwgIgogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtbl91c2RoYzNfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwxXzQwMG0iLCAic3lzX3BsbDFfODAwbSIsCiAJCQkJCQkgICJzeXNfcGxsMl81MDBtIiwgInN5c19wbGwzX291dCIsICJzeXNfcGxsMV8yNjZtIiwKLQkJCQkJCSAgImF1ZGlvX3BsbDJfY2xrIiwgInN5c19wbGwxXzEwMG0iLCB9OworCQkJCQkJICAiYXVkaW9fcGxsMl9vdXQiLCAic3lzX3BsbDFfMTAwbSIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1uX2NhbWVyYV9waXhlbF9zZWxzW10gPSB7Im9zY18yNG0iLCAic3lzX3BsbDFfMjY2bSIsICJzeXNfcGxsMl8yNTBtIiwKIAkJCQkJCQkic3lzX3BsbDFfODAwbSIsICJzeXNfcGxsMl8xMDAwbSIsICJzeXNfcGxsM19vdXQiLApAQCAtMzQ2LDcgKzM1OSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1uX3BkbV9zZWxzW10gPSB7Im9zY18yNG0iLCAic3lzX3BsbDJfMTAwbSIsICJhdWRpCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtbl9kcmFtX2NvcmVfc2Vsc1tdID0geyJkcmFtX3BsbF9vdXQiLCAiZHJhbV9hbHRfcm9vdCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1uX2Nsa28xX3NlbHNbXSA9IHsib3NjXzI0bSIsICJzeXNfcGxsMV84MDBtIiwgIm9zY18yN20iLAotCQkJCQkJICJzeXNfcGxsMV8yMDBtIiwgImF1ZGlvX3BsbDJfY2xrIiwgInZwdV9wbGwiLAorCQkJCQkJICJzeXNfcGxsMV8yMDBtIiwgImF1ZGlvX3BsbDJfb3V0IiwgInZwdV9wbGwiLAogCQkJCQkJICJzeXNfcGxsMV84MG0iLCB9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bW5fY2xrbzJfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwyXzIwMG0iLCAic3lzX3BsbDFfNDAwbSIsCiAJCQkJCQkgInN5c19wbGwyXzE2Nm0iLCAic3lzX3BsbDNfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwKQEAgLTM1NSw2ICszNjgsMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bW5fY2xrbzJfc2Vsc1tdID0geyJvc2NfMjRtIiwgInN5c19wbGwyXzIwMG0iLCAic3kKIHN0YXRpYyBzdHJ1Y3QgY2xrICpjbGtzW0lNWDhNTl9DTEtfRU5EXTsKIHN0YXRpYyBzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIAorc3RhdGljIHN0cnVjdCBjbGsgKiogY29uc3QgdWFydF9jbGtzW10gPSB7CisJJmNsa3NbSU1YOE1OX0NMS19VQVJUMV9ST09UXSwKKwkmY2xrc1tJTVg4TU5fQ0xLX1VBUlQyX1JPT1RdLAorCSZjbGtzW0lNWDhNTl9DTEtfVUFSVDNfUk9PVF0sCisJJmNsa3NbSU1YOE1OX0NMS19VQVJUNF9ST09UXSwKKwlOVUxMCit9OworCiBzdGF0aWMgaW50IGlteDhtbl9jbG9ja3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwpAQCAtNDAwLDQwICs0MjEsMjggQEAgc3RhdGljIGludCBpbXg4bW5fY2xvY2tzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJY2xrc1tJTVg4TU5fU1lTX1BMTDNdID0gaW14X2Nsa19wbGwxNHh4KCJzeXNfcGxsMyIsICJzeXNfcGxsM19yZWZfc2VsIiwgYmFzZSArIDB4MTE0LCAmaW14OG1uX3N5c19wbGwpOwogCiAJLyogUExMIGJ5cGFzcyBvdXQgKi8KLQljbGtzW0lNWDhNTl9BVURJT19QTEwxX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiYXVkaW9fcGxsMV9ieXBhc3MiLCBiYXNlLCA0LCAxLCBhdWRpb19wbGwxX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKGF1ZGlvX3BsbDFfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQljbGtzW0lNWDhNTl9BVURJT19QTEwyX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiYXVkaW9fcGxsMl9ieXBhc3MiLCBiYXNlICsgMHgxNCwgNCwgMSwgYXVkaW9fcGxsMl9ieXBhc3Nfc2VscywgQVJSQVlfU0laRShhdWRpb19wbGwyX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Ci0JY2xrc1tJTVg4TU5fVklERU9fUExMMV9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInZpZGVvX3BsbDFfYnlwYXNzIiwgYmFzZSArIDB4MjgsIDQsIDEsIHZpZGVvX3BsbDFfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUodmlkZW9fcGxsMV9ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOwotCWNsa3NbSU1YOE1OX0RSQU1fUExMX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiZHJhbV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4NTAsIDQsIDEsIGRyYW1fcGxsX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKGRyYW1fcGxsX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Ci0JY2xrc1tJTVg4TU5fR1BVX1BMTF9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoImdwdV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4NjQsIDQsIDEsIGdwdV9wbGxfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoZ3B1X3BsbF9ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOwotCWNsa3NbSU1YOE1OX1ZQVV9QTExfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJ2cHVfcGxsX2J5cGFzcyIsIGJhc2UgKyAweDc0LCA0LCAxLCB2cHVfcGxsX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKHZwdV9wbGxfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQljbGtzW0lNWDhNTl9BUk1fUExMX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiYXJtX3BsbF9ieXBhc3MiLCBiYXNlICsgMHg4NCwgNCwgMSwgYXJtX3BsbF9ieXBhc3Nfc2VscywgQVJSQVlfU0laRShhcm1fcGxsX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Ci0JY2xrc1tJTVg4TU5fU1lTX1BMTDFfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJzeXNfcGxsMV9ieXBhc3MiLCBiYXNlICsgMHg5NCwgNCwgMSwgc3lzX3BsbDFfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoc3lzX3BsbDFfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQljbGtzW0lNWDhNTl9TWVNfUExMMl9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInN5c19wbGwyX2J5cGFzcyIsIGJhc2UgKyAweDEwNCwgNCwgMSwgc3lzX3BsbDJfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoc3lzX3BsbDJfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQljbGtzW0lNWDhNTl9TWVNfUExMM19CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInN5c19wbGwzX2J5cGFzcyIsIGJhc2UgKyAweDExNCwgNCwgMSwgc3lzX3BsbDNfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoc3lzX3BsbDNfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKLQotCS8qIHVuYnlwYXNzIGFsbCB0aGUgcGxscyAqLwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1OX0FVRElPX1BMTDFfQllQQVNTXSwgY2xrc1tJTVg4TU5fQVVESU9fUExMMV0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1OX0FVRElPX1BMTDJfQllQQVNTXSwgY2xrc1tJTVg4TU5fQVVESU9fUExMMl0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1OX1ZJREVPX1BMTDFfQllQQVNTXSwgY2xrc1tJTVg4TU5fVklERU9fUExMMV0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1OX0RSQU1fUExMX0JZUEFTU10sIGNsa3NbSU1YOE1OX0RSQU1fUExMXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg4TU5fR1BVX1BMTF9CWVBBU1NdLCBjbGtzW0lNWDhNTl9HUFVfUExMXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg4TU5fVlBVX1BMTF9CWVBBU1NdLCBjbGtzW0lNWDhNTl9WUFVfUExMXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg4TU5fQVJNX1BMTF9CWVBBU1NdLCBjbGtzW0lNWDhNTl9BUk1fUExMXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg4TU5fU1lTX1BMTDFfQllQQVNTXSwgY2xrc1tJTVg4TU5fU1lTX1BMTDFdKTsKLQljbGtfc2V0X3BhcmVudChjbGtzW0lNWDhNTl9TWVNfUExMMl9CWVBBU1NdLCBjbGtzW0lNWDhNTl9TWVNfUExMMl0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YOE1OX1NZU19QTEwzX0JZUEFTU10sIGNsa3NbSU1YOE1OX1NZU19QTEwzXSk7CisJY2xrc1tJTVg4TU5fQVVESU9fUExMMV9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoImF1ZGlvX3BsbDFfYnlwYXNzIiwgYmFzZSwgMTYsIDEsIGF1ZGlvX3BsbDFfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoYXVkaW9fcGxsMV9ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOworCWNsa3NbSU1YOE1OX0FVRElPX1BMTDJfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJhdWRpb19wbGwyX2J5cGFzcyIsIGJhc2UgKyAweDE0LCAxNiwgMSwgYXVkaW9fcGxsMl9ieXBhc3Nfc2VscywgQVJSQVlfU0laRShhdWRpb19wbGwyX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7CisJY2xrc1tJTVg4TU5fVklERU9fUExMMV9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInZpZGVvX3BsbDFfYnlwYXNzIiwgYmFzZSArIDB4MjgsIDE2LCAxLCB2aWRlb19wbGwxX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKHZpZGVvX3BsbDFfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKKwljbGtzW0lNWDhNTl9EUkFNX1BMTF9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoImRyYW1fcGxsX2J5cGFzcyIsIGJhc2UgKyAweDUwLCAxNiwgMSwgZHJhbV9wbGxfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoZHJhbV9wbGxfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKKwljbGtzW0lNWDhNTl9HUFVfUExMX0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygiZ3B1X3BsbF9ieXBhc3MiLCBiYXNlICsgMHg2NCwgMjgsIDEsIGdwdV9wbGxfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoZ3B1X3BsbF9ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOworCWNsa3NbSU1YOE1OX1ZQVV9QTExfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJ2cHVfcGxsX2J5cGFzcyIsIGJhc2UgKyAweDc0LCAyOCwgMSwgdnB1X3BsbF9ieXBhc3Nfc2VscywgQVJSQVlfU0laRSh2cHVfcGxsX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7CisJY2xrc1tJTVg4TU5fQVJNX1BMTF9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoImFybV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4ODQsIDI4LCAxLCBhcm1fcGxsX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKGFybV9wbGxfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKKwljbGtzW0lNWDhNTl9TWVNfUExMMV9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInN5c19wbGwxX2J5cGFzcyIsIGJhc2UgKyAweDk0LCAyOCwgMSwgc3lzX3BsbDFfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUoc3lzX3BsbDFfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKKwljbGtzW0lNWDhNTl9TWVNfUExMMl9CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInN5c19wbGwyX2J5cGFzcyIsIGJhc2UgKyAweDEwNCwgMjgsIDEsIHN5c19wbGwyX2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKHN5c19wbGwyX2J5cGFzc19zZWxzKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7CisJY2xrc1tJTVg4TU5fU1lTX1BMTDNfQllQQVNTXSA9IGlteF9jbGtfbXV4X2ZsYWdzKCJzeXNfcGxsM19ieXBhc3MiLCBiYXNlICsgMHgxMTQsIDI4LCAxLCBzeXNfcGxsM19ieXBhc3Nfc2VscywgQVJSQVlfU0laRShzeXNfcGxsM19ieXBhc3Nfc2VscyksIENMS19TRVRfUkFURV9QQVJFTlQpOwogCiAJLyogUExMIG91dCBnYXRlICovCiAJY2xrc1tJTVg4TU5fQVVESU9fUExMMV9PVVRdID0gaW14X2Nsa19nYXRlKCJhdWRpb19wbGwxX291dCIsICJhdWRpb19wbGwxX2J5cGFzcyIsIGJhc2UsIDEzKTsKIAljbGtzW0lNWDhNTl9BVURJT19QTEwyX09VVF0gPSBpbXhfY2xrX2dhdGUoImF1ZGlvX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDJfYnlwYXNzIiwgYmFzZSArIDB4MTQsIDEzKTsKIAljbGtzW0lNWDhNTl9WSURFT19QTEwxX09VVF0gPSBpbXhfY2xrX2dhdGUoInZpZGVvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfYnlwYXNzIiwgYmFzZSArIDB4MjgsIDEzKTsKIAljbGtzW0lNWDhNTl9EUkFNX1BMTF9PVVRdID0gaW14X2Nsa19nYXRlKCJkcmFtX3BsbF9vdXQiLCAiZHJhbV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4NTAsIDEzKTsKLQljbGtzW0lNWDhNTl9HUFVfUExMX09VVF0gPSBpbXhfY2xrX2dhdGUoImdwdV9wbGxfb3V0IiwgImdwdV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4NjQsIDEzKTsKLQljbGtzW0lNWDhNTl9WUFVfUExMX09VVF0gPSBpbXhfY2xrX2dhdGUoInZwdV9wbGxfb3V0IiwgInZwdV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4NzQsIDEzKTsKLQljbGtzW0lNWDhNTl9BUk1fUExMX09VVF0gPSBpbXhfY2xrX2dhdGUoImFybV9wbGxfb3V0IiwgImFybV9wbGxfYnlwYXNzIiwgYmFzZSArIDB4ODQsIDEzKTsKLQljbGtzW0lNWDhNTl9TWVNfUExMMV9PVVRdID0gaW14X2Nsa19nYXRlKCJzeXNfcGxsMV9vdXQiLCAic3lzX3BsbDFfYnlwYXNzIiwgYmFzZSArIDB4OTQsIDEzKTsKLQljbGtzW0lNWDhNTl9TWVNfUExMMl9PVVRdID0gaW14X2Nsa19nYXRlKCJzeXNfcGxsMl9vdXQiLCAic3lzX3BsbDJfYnlwYXNzIiwgYmFzZSArIDB4MTA0LCAxMyk7Ci0JY2xrc1tJTVg4TU5fU1lTX1BMTDNfT1VUXSA9IGlteF9jbGtfZ2F0ZSgic3lzX3BsbDNfb3V0IiwgInN5c19wbGwzX2J5cGFzcyIsIGJhc2UgKyAweDExNCwgMTMpOworCWNsa3NbSU1YOE1OX0dQVV9QTExfT1VUXSA9IGlteF9jbGtfZ2F0ZSgiZ3B1X3BsbF9vdXQiLCAiZ3B1X3BsbF9ieXBhc3MiLCBiYXNlICsgMHg2NCwgMTEpOworCWNsa3NbSU1YOE1OX1ZQVV9QTExfT1VUXSA9IGlteF9jbGtfZ2F0ZSgidnB1X3BsbF9vdXQiLCAidnB1X3BsbF9ieXBhc3MiLCBiYXNlICsgMHg3NCwgMTEpOworCWNsa3NbSU1YOE1OX0FSTV9QTExfT1VUXSA9IGlteF9jbGtfZ2F0ZSgiYXJtX3BsbF9vdXQiLCAiYXJtX3BsbF9ieXBhc3MiLCBiYXNlICsgMHg4NCwgMTEpOworCWNsa3NbSU1YOE1OX1NZU19QTEwxX09VVF0gPSBpbXhfY2xrX2dhdGUoInN5c19wbGwxX291dCIsICJzeXNfcGxsMV9ieXBhc3MiLCBiYXNlICsgMHg5NCwgMTEpOworCWNsa3NbSU1YOE1OX1NZU19QTEwyX09VVF0gPSBpbXhfY2xrX2dhdGUoInN5c19wbGwyX291dCIsICJzeXNfcGxsMl9ieXBhc3MiLCBiYXNlICsgMHgxMDQsIDExKTsKKwljbGtzW0lNWDhNTl9TWVNfUExMM19PVVRdID0gaW14X2Nsa19nYXRlKCJzeXNfcGxsM19vdXQiLCAic3lzX3BsbDNfYnlwYXNzIiwgYmFzZSArIDB4MTE0LCAxMSk7CiAKIAkvKiBTWVMgUExMIGZpeGVkIG91dHB1dCAqLwogCWNsa3NbSU1YOE1OX1NZU19QTEwxXzQwTV0gPSBpbXhfY2xrX2ZpeGVkX2ZhY3Rvcigic3lzX3BsbDFfNDBtIiwgInN5c19wbGwxX291dCIsIDEsIDIwKTsKQEAgLTUxNiw2ICs1MjUsNyBAQCBzdGF0aWMgaW50IGlteDhtbl9jbG9ja3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAljbGtzW0lNWDhNTl9DTEtfVUFSVDRdID0gaW14OG1fY2xrX2NvbXBvc2l0ZSgidWFydDQiLCBpbXg4bW5fdWFydDRfc2VscywgYmFzZSArIDB4YjA4MCk7CiAJY2xrc1tJTVg4TU5fQ0xLX1VTQl9DT1JFX1JFRl0gPSBpbXg4bV9jbGtfY29tcG9zaXRlKCJ1c2JfY29yZV9yZWYiLCBpbXg4bW5fdXNiX2NvcmVfc2VscywgYmFzZSArIDB4YjEwMCk7CiAJY2xrc1tJTVg4TU5fQ0xLX1VTQl9QSFlfUkVGXSA9IGlteDhtX2Nsa19jb21wb3NpdGUoInVzYl9waHlfcmVmIiwgaW14OG1uX3VzYl9waHlfc2VscywgYmFzZSArIDB4YjE4MCk7CisJY2xrc1tJTVg4TU5fQ0xLX0dJQ10gPSBpbXg4bV9jbGtfY29tcG9zaXRlX2NyaXRpY2FsKCJnaWMiLCBpbXg4bW5fZ2ljX3NlbHMsIGJhc2UgKyAweGIyMDApOwogCWNsa3NbSU1YOE1OX0NMS19FQ1NQSTFdID0gaW14OG1fY2xrX2NvbXBvc2l0ZSgiZWNzcGkxIiwgaW14OG1uX2Vjc3BpMV9zZWxzLCBiYXNlICsgMHhiMjgwKTsKIAljbGtzW0lNWDhNTl9DTEtfRUNTUEkyXSA9IGlteDhtX2Nsa19jb21wb3NpdGUoImVjc3BpMiIsIGlteDhtbl9lY3NwaTJfc2VscywgYmFzZSArIDB4YjMwMCk7CiAJY2xrc1tJTVg4TU5fQ0xLX1BXTTFdID0gaW14OG1fY2xrX2NvbXBvc2l0ZSgicHdtMSIsIGlteDhtbl9wd20xX3NlbHMsIGJhc2UgKyAweGIzODApOwpAQCAtNjEyLDYgKzYyMiw4IEBAIHN0YXRpYyBpbnQgaW14OG1uX2Nsb2Nrc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlnb3RvIHVucmVnaXN0ZXJfY2xrczsKIAl9CiAKKwlpbXhfcmVnaXN0ZXJfdWFydF9jbG9ja3ModWFydF9jbGtzKTsKKwogCXJldHVybiAwOwogCiB1bnJlZ2lzdGVyX2Nsa3M6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9pbXgvY2xrLWlteDhtcS5jIGIvZHJpdmVycy9jbGsvaW14L2Nsay1pbXg4bXEuYwppbmRleCBkNDA3YTA3Li40MWZjOWM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9pbXgvY2xrLWlteDhtcS5jCisrKyBiL2RyaXZlcnMvY2xrL2lteC9jbGstaW14OG1xLmMKQEAgLTQxLDM0ICs0MSwzNCBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRyYW1fcGxsX291dF9zZWxzW10gPSB7ImRyYW1fcGxsMV9yZWZfc2VsIiwgfTsKIAogLyogQ0NNIFJPT1QgKi8KIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2E1M19zZWxzW10gPSB7Im9zY18yNW0iLCAiYXJtX3BsbF9vdXQiLCAic3lzMl9wbGxfNTAwbSIsICJzeXMyX3BsbF8xMDAwbSIsCi0JCQkJCSJzeXMxX3BsbF84MDBtIiwgInN5czFfcGxsXzQwMG0iLCAiYXVkaW9fcGxsMV9vdXQiLCAic3lzM19wbGwyX291dCIsIH07CisJCQkJCSJzeXMxX3BsbF84MDBtIiwgInN5czFfcGxsXzQwMG0iLCAiYXVkaW9fcGxsMV9vdXQiLCAic3lzM19wbGxfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfYXJtX200X3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8yMDBtIiwgInN5czJfcGxsXzI1MG0iLCAic3lzMV9wbGxfMjY2bSIsCi0JCQkJCSJzeXMxX3BsbF84MDBtIiwgImF1ZGlvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgInN5czNfcGxsMl9vdXQiLCB9OworCQkJCQkic3lzMV9wbGxfODAwbSIsICJhdWRpb19wbGwxX291dCIsICJ2aWRlb19wbGwxX291dCIsICJzeXMzX3BsbF9vdXQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV92cHVfc2Vsc1tdID0geyJvc2NfMjVtIiwgImFybV9wbGxfb3V0IiwgInN5czJfcGxsXzUwMG0iLCAic3lzMl9wbGxfMTAwMG0iLAogCQkJCQkic3lzMV9wbGxfODAwbSIsICJzeXMxX3BsbF80MDBtIiwgImF1ZGlvX3BsbDFfb3V0IiwgInZwdV9wbGxfb3V0IiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZ3B1X2NvcmVfc2Vsc1tdID0geyJvc2NfMjVtIiwgImdwdV9wbGxfb3V0IiwgInN5czFfcGxsXzgwMG0iLCAic3lzM19wbGwyX291dCIsCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9ncHVfY29yZV9zZWxzW10gPSB7Im9zY18yNW0iLCAiZ3B1X3BsbF9vdXQiLCAic3lzMV9wbGxfODAwbSIsICJzeXMzX3BsbF9vdXQiLAogCQkJCQkgICAgICJzeXMyX3BsbF8xMDAwbSIsICJhdWRpb19wbGwxX291dCIsICJ2aWRlb19wbGwxX291dCIsICJhdWRpb19wbGwyX291dCIsIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2dwdV9zaGFkZXJfc2Vsc1tdID0geyJvc2NfMjVtIiwgImdwdV9wbGxfb3V0IiwgInN5czFfcGxsXzgwMG0iLCAic3lzM19wbGwyX291dCIsCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9ncHVfc2hhZGVyX3NlbHNbXSA9IHsib3NjXzI1bSIsICJncHVfcGxsX291dCIsICJzeXMxX3BsbF84MDBtIiwgInN5czNfcGxsX291dCIsCiAJCQkJCSAgICAgICAic3lzMl9wbGxfMTAwMG0iLCAiYXVkaW9fcGxsMV9vdXQiLCAidmlkZW9fcGxsMV9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9tYWluX2F4aV9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMzMzbSIsICJzeXMxX3BsbF84MDBtIiwgInN5czJfcGxsXzI1MG0iLAogCQkJCQkgICAgICJzeXMyX3BsbF8xMDAwbSIsICJhdWRpb19wbGwxX291dCIsICJ2aWRlb19wbGwxX291dCIsICJzeXMxX3BsbF8xMDBtIix9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9lbmV0X2F4aV9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfMjY2bSIsICJzeXMxX3BsbF84MDBtIiwgInN5czJfcGxsXzI1MG0iLAotCQkJCQkgICAgICJzeXMyX3BsbF8yMDBtIiwgImF1ZGlvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgInN5czNfcGxsMl9vdXQiLCB9OworCQkJCQkgICAgICJzeXMyX3BsbF8yMDBtIiwgImF1ZGlvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgInN5czNfcGxsX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX25hbmRfdXNkaGNfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzI2Nm0iLCAic3lzMV9wbGxfODAwbSIsICJzeXMyX3BsbF8yMDBtIiwKLQkJCQkJICAgICAgICJzeXMxX3BsbF8xMzNtIiwgInN5czNfcGxsMl9vdXQiLCAic3lzMl9wbGxfMjUwbSIsICJhdWRpb19wbGwxX291dCIsIH07CisJCQkJCSAgICAgICAic3lzMV9wbGxfMTMzbSIsICJzeXMzX3BsbF9vdXQiLCAic3lzMl9wbGxfMjUwbSIsICJhdWRpb19wbGwxX291dCIsIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3ZwdV9idXNfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzgwMG0iLCAidnB1X3BsbF9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCAic3lzM19wbGwyX291dCIsICJzeXMyX3BsbF8xMDAwbSIsICJzeXMyX3BsbF8yMDBtIiwgInN5czFfcGxsXzEwMG0iLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfdnB1X2J1c19zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfODAwbSIsICJ2cHVfcGxsX291dCIsICJhdWRpb19wbGwyX291dCIsICJzeXMzX3BsbF9vdXQiLCAic3lzMl9wbGxfMTAwMG0iLCAic3lzMl9wbGxfMjAwbSIsICJzeXMxX3BsbF8xMDBtIiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZGlzcF9heGlfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzEyNW0iLCAic3lzMV9wbGxfODAwbSIsICJzeXMzX3BsbDJfb3V0IiwgInN5czFfcGxsXzQwMG0iLCAiYXVkaW9fcGxsMl9vdXQiLCAiY2xrX2V4dDEiLCAiY2xrX2V4dDQiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZGlzcF9heGlfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzEyNW0iLCAic3lzMV9wbGxfODAwbSIsICJzeXMzX3BsbF9vdXQiLCAic3lzMV9wbGxfNDAwbSIsICJhdWRpb19wbGwyX291dCIsICJjbGtfZXh0MSIsICJjbGtfZXh0NCIsIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2Rpc3BfYXBiX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8xMjVtIiwgInN5czFfcGxsXzgwMG0iLCAic3lzM19wbGwyX291dCIsCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9kaXNwX2FwYl9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMTI1bSIsICJzeXMxX3BsbF84MDBtIiwgInN5czNfcGxsX291dCIsCiAJCQkJCSAgICAgInN5czFfcGxsXzQwbSIsICJhdWRpb19wbGwyX291dCIsICJjbGtfZXh0MSIsICJjbGtfZXh0MyIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2Rpc3BfcnRybV9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfODAwbSIsICJzeXMyX3BsbF8yMDBtIiwgInN5czFfcGxsXzQwMG0iLApAQCAtNzcsNTMgKzc3LDUzIEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2Rpc3BfcnRybV9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfODAwbSIsCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV91c2JfYnVzX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF81MDBtIiwgInN5czFfcGxsXzgwMG0iLCAic3lzMl9wbGxfMTAwbSIsCiAJCQkJCSAgICAic3lzMl9wbGxfMjAwbSIsICJjbGtfZXh0MiIsICJjbGtfZXh0NCIsICJhdWRpb19wbGwyX291dCIsIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2dwdV9heGlfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzgwMG0iLCAiZ3B1X3BsbF9vdXQiLCAic3lzM19wbGwyX291dCIsICJzeXMyX3BsbF8xMDAwbSIsCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9ncHVfYXhpX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF84MDBtIiwgImdwdV9wbGxfb3V0IiwgInN5czNfcGxsX291dCIsICJzeXMyX3BsbF8xMDAwbSIsCiAJCQkJCSAgICAiYXVkaW9fcGxsMV9vdXQiLCAidmlkZW9fcGxsMV9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9ncHVfYWhiX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF84MDBtIiwgImdwdV9wbGxfb3V0IiwgInN5czNfcGxsMl9vdXQiLCAic3lzMl9wbGxfMTAwMG0iLAorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZ3B1X2FoYl9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfODAwbSIsICJncHVfcGxsX291dCIsICJzeXMzX3BsbF9vdXQiLCAic3lzMl9wbGxfMTAwMG0iLAogCQkJCQkgICAgImF1ZGlvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfbm9jX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF84MDBtIiwgInN5czNfcGxsMl9vdXQiLCAic3lzMl9wbGxfMTAwMG0iLCAic3lzMl9wbGxfNTAwbSIsCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9ub2Nfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzgwMG0iLCAic3lzM19wbGxfb3V0IiwgInN5czJfcGxsXzEwMDBtIiwgInN5czJfcGxsXzUwMG0iLAogCQkJCQkiYXVkaW9fcGxsMV9vdXQiLCAidmlkZW9fcGxsMV9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9ub2NfYXBiX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF80MDBtIiwgInN5czNfcGxsMl9vdXQiLCAic3lzMl9wbGxfMzMzbSIsICJzeXMyX3BsbF8yMDBtIiwKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX25vY19hcGJfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzQwMG0iLCAic3lzM19wbGxfb3V0IiwgInN5czJfcGxsXzMzM20iLCAic3lzMl9wbGxfMjAwbSIsCiAJCQkJCSAgICAic3lzMV9wbGxfODAwbSIsICJhdWRpb19wbGwxX291dCIsICJ2aWRlb19wbGwxX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2FoYl9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfMTMzbSIsICJzeXMxX3BsbF84MDBtIiwgInN5czFfcGxsXzQwMG0iLAotCQkJCQkic3lzMl9wbGxfMTI1bSIsICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKKwkJCQkJInN5czJfcGxsXzEyNW0iLCAic3lzM19wbGxfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfYXVkaW9fYWhiX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF81MDBtIiwgInN5czFfcGxsXzgwMG0iLCAic3lzMl9wbGxfMTAwMG0iLAotCQkJCQkJICAic3lzMl9wbGxfMTY2bSIsICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKKwkJCQkJCSAgInN5czJfcGxsXzE2Nm0iLCAic3lzM19wbGxfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZHNpX2FoYl9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMTAwbSIsICJzeXMxX3BsbF84MG0iLCAic3lzMV9wbGxfODAwbSIsCi0JCQkJCQkic3lzMl9wbGxfMTAwMG0iLCAic3lzM19wbGwyX291dCIsICJjbGtfZXh0MyIsICJhdWRpb19wbGwyX291dCJ9OworCQkJCQkJInN5czJfcGxsXzEwMDBtIiwgInN5czNfcGxsX291dCIsICJjbGtfZXh0MyIsICJhdWRpb19wbGwyX291dCJ9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9kcmFtX2FsdF9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfODAwbSIsICJzeXMxX3BsbF8xMDBtIiwgInN5czJfcGxsXzUwMG0iLAogCQkJCQkJInN5czJfcGxsXzI1MG0iLCAic3lzMV9wbGxfNDAwbSIsICJhdWRpb19wbGwxX291dCIsICJzeXMxX3BsbF8yNjZtIiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZHJhbV9hcGJfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzIwMG0iLCAic3lzMV9wbGxfNDBtIiwgInN5czFfcGxsXzE2MG0iLAotCQkJCQkJInN5czFfcGxsXzgwMG0iLCAic3lzM19wbGwyX291dCIsICJzeXMyX3BsbF8yNTBtIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKKwkJCQkJCSJzeXMxX3BsbF84MDBtIiwgInN5czNfcGxsX291dCIsICJzeXMyX3BsbF8yNTBtIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfdnB1X2cxX3NlbHNbXSA9IHsib3NjXzI1bSIsICJ2cHVfcGxsX291dCIsICJzeXMxX3BsbF84MDBtIiwgInN5czJfcGxsXzEwMDBtIiwgInN5czFfcGxsXzEwMG0iLCAic3lzMl9wbGxfMTI1bSIsICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3ZwdV9nMV9zZWxzW10gPSB7Im9zY18yNW0iLCAidnB1X3BsbF9vdXQiLCAic3lzMV9wbGxfODAwbSIsICJzeXMyX3BsbF8xMDAwbSIsICJzeXMxX3BsbF8xMDBtIiwgInN5czJfcGxsXzEyNW0iLCAic3lzM19wbGxfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfdnB1X2cyX3NlbHNbXSA9IHsib3NjXzI1bSIsICJ2cHVfcGxsX291dCIsICJzeXMxX3BsbF84MDBtIiwgInN5czJfcGxsXzEwMDBtIiwgInN5czFfcGxsXzEwMG0iLCAic3lzMl9wbGxfMTI1bSIsICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3ZwdV9nMl9zZWxzW10gPSB7Im9zY18yNW0iLCAidnB1X3BsbF9vdXQiLCAic3lzMV9wbGxfODAwbSIsICJzeXMyX3BsbF8xMDAwbSIsICJzeXMxX3BsbF8xMDBtIiwgInN5czJfcGxsXzEyNW0iLCAic3lzM19wbGxfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZGlzcF9kdHJjX3NlbHNbXSA9IHsib3NjXzI1bSIsICJ2cHVfcGxsX291dCIsICJzeXMxX3BsbF84MDBtIiwgInN5czJfcGxsXzEwMDBtIiwgInN5czFfcGxsXzE2MG0iLCAic3lzMl9wbGxfMTAwbSIsICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2Rpc3BfZHRyY19zZWxzW10gPSB7Im9zY18yNW0iLCAidnB1X3BsbF9vdXQiLCAic3lzMV9wbGxfODAwbSIsICJzeXMyX3BsbF8xMDAwbSIsICJzeXMxX3BsbF8xNjBtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzM19wbGxfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZGlzcF9kYzgwMDBfc2Vsc1tdID0geyJvc2NfMjVtIiwgInZwdV9wbGxfb3V0IiwgInN5czFfcGxsXzgwMG0iLCAic3lzMl9wbGxfMTAwMG0iLCAic3lzMV9wbGxfMTYwbSIsICJzeXMyX3BsbF8xMDBtIiwgInN5czNfcGxsMl9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZGlzcF9kYzgwMDBfc2Vsc1tdID0geyJvc2NfMjVtIiwgInZwdV9wbGxfb3V0IiwgInN5czFfcGxsXzgwMG0iLCAic3lzMl9wbGxfMTAwMG0iLCAic3lzMV9wbGxfMTYwbSIsICJzeXMyX3BsbF8xMDBtIiwgInN5czNfcGxsX291dCIsICJhdWRpb19wbGwyX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3BjaWUxX2N0cmxfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzI1MG0iLCAic3lzMl9wbGxfMjAwbSIsICJzeXMxX3BsbF8yNjZtIiwKLQkJCQkJICAgICAgICJzeXMxX3BsbF84MDBtIiwgInN5czJfcGxsXzUwMG0iLCAic3lzMl9wbGxfMjUwbSIsICJzeXMzX3BsbDJfb3V0IiwgfTsKKwkJCQkJICAgICAgICJzeXMxX3BsbF84MDBtIiwgInN5czJfcGxsXzUwMG0iLCAic3lzMl9wbGxfMjUwbSIsICJzeXMzX3BsbF9vdXQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9wY2llMV9waHlfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzMl9wbGxfNTAwbSIsICJjbGtfZXh0MSIsICJjbGtfZXh0MiIsCiAJCQkJCSAgICAgICJjbGtfZXh0MyIsICJjbGtfZXh0NCIsIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3BjaWUxX2F1eF9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMjAwbSIsICJzeXMyX3BsbF81MDBtIiwgInN5czNfcGxsMl9vdXQiLAorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfcGNpZTFfYXV4X3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8yMDBtIiwgInN5czJfcGxsXzUwMG0iLCAic3lzM19wbGxfb3V0IiwKIAkJCQkJICAgICAgInN5czJfcGxsXzEwMG0iLCAic3lzMV9wbGxfODBtIiwgInN5czFfcGxsXzE2MG0iLCAic3lzMV9wbGxfMjAwbSIsIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2RjX3BpeGVsX3NlbHNbXSA9IHsib3NjXzI1bSIsICJ2aWRlb19wbGwxX291dCIsICJhdWRpb19wbGwyX291dCIsICJhdWRpb19wbGwxX291dCIsICJzeXMxX3BsbF84MDBtIiwgInN5czJfcGxsXzEwMDBtIiwgInN5czNfcGxsMl9vdXQiLCAiY2xrX2V4dDQiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZGNfcGl4ZWxfc2Vsc1tdID0geyJvc2NfMjVtIiwgInZpZGVvX3BsbDFfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgInN5czFfcGxsXzgwMG0iLCAic3lzMl9wbGxfMTAwMG0iLCAic3lzM19wbGxfb3V0IiwgImNsa19leHQ0IiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfbGNkaWZfcGl4ZWxfc2Vsc1tdID0geyJvc2NfMjVtIiwgInZpZGVvX3BsbDFfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgInN5czFfcGxsXzgwMG0iLCAic3lzMl9wbGxfMTAwMG0iLCAic3lzM19wbGwyX291dCIsICJjbGtfZXh0NCIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9sY2RpZl9waXhlbF9zZWxzW10gPSB7Im9zY18yNW0iLCAidmlkZW9fcGxsMV9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCAiYXVkaW9fcGxsMV9vdXQiLCAic3lzMV9wbGxfODAwbSIsICJzeXMyX3BsbF8xMDAwbSIsICJzeXMzX3BsbF9vdXQiLCAiY2xrX2V4dDQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9zYWkxX3NlbHNbXSA9IHsib3NjXzI1bSIsICJhdWRpb19wbGwxX291dCIsICJhdWRpb19wbGwyX291dCIsICJ2aWRlb19wbGwxX291dCIsICJzeXMxX3BsbF8xMzNtIiwgIm9zY18yN20iLCAiY2xrX2V4dDEiLCAiY2xrX2V4dDIiLCB9OwogCkBAIC0xNTEsNDAgKzE1MSw0MCBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9lbmV0X3BoeV9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfNTBtIiwgIgogCQkJCQkgICAgICJhdWRpb19wbGwxX291dCIsICJ2aWRlb19wbGwxX291dCIsICJhdWRpb19wbGwyX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX25hbmRfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzUwMG0iLCAiYXVkaW9fcGxsMV9vdXQiLCAic3lzMV9wbGxfNDAwbSIsCi0JCQkJCSAiYXVkaW9fcGxsMl9vdXQiLCAic3lzM19wbGwyX291dCIsICJzeXMyX3BsbF8yNTBtIiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKKwkJCQkJICJhdWRpb19wbGwyX291dCIsICJzeXMzX3BsbF9vdXQiLCAic3lzMl9wbGxfMjUwbSIsICJ2aWRlb19wbGwxX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3FzcGlfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzQwMG0iLCAic3lzMV9wbGxfODAwbSIsICJzeXMyX3BsbF81MDBtIiwKLQkJCQkJICJhdWRpb19wbGwyX291dCIsICJzeXMxX3BsbF8yNjZtIiwgInN5czNfcGxsMl9vdXQiLCAic3lzMV9wbGxfMTAwbSIsIH07CisJCQkJCSAiYXVkaW9fcGxsMl9vdXQiLCAic3lzMV9wbGxfMjY2bSIsICJzeXMzX3BsbF9vdXQiLCAic3lzMV9wbGxfMTAwbSIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3VzZGhjMV9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfNDAwbSIsICJzeXMxX3BsbF84MDBtIiwgInN5czJfcGxsXzUwMG0iLAotCQkJCQkgImF1ZGlvX3BsbDJfb3V0IiwgInN5czFfcGxsXzI2Nm0iLCAic3lzM19wbGwyX291dCIsICJzeXMxX3BsbF8xMDBtIiwgfTsKKwkJCQkJICJhdWRpb19wbGwyX291dCIsICJzeXMxX3BsbF8yNjZtIiwgInN5czNfcGxsX291dCIsICJzeXMxX3BsbF8xMDBtIiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfdXNkaGMyX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF80MDBtIiwgInN5czFfcGxsXzgwMG0iLCAic3lzMl9wbGxfNTAwbSIsCi0JCQkJCSAiYXVkaW9fcGxsMl9vdXQiLCAic3lzMV9wbGxfMjY2bSIsICJzeXMzX3BsbDJfb3V0IiwgInN5czFfcGxsXzEwMG0iLCB9OworCQkJCQkgImF1ZGlvX3BsbDJfb3V0IiwgInN5czFfcGxsXzI2Nm0iLCAic3lzM19wbGxfb3V0IiwgInN5czFfcGxsXzEwMG0iLCB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9pMmMxX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF8xNjBtIiwgInN5czJfcGxsXzUwbSIsICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2kyYzFfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzE2MG0iLCAic3lzMl9wbGxfNTBtIiwgInN5czNfcGxsX291dCIsICJhdWRpb19wbGwxX291dCIsCiAJCQkJCSAidmlkZW9fcGxsMV9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCAic3lzMV9wbGxfMTMzbSIsIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2kyYzJfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzE2MG0iLCAic3lzMl9wbGxfNTBtIiwgInN5czNfcGxsMl9vdXQiLCAiYXVkaW9fcGxsMV9vdXQiLAorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfaTJjMl9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfMTYwbSIsICJzeXMyX3BsbF81MG0iLCAic3lzM19wbGxfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwKIAkJCQkJICJ2aWRlb19wbGwxX291dCIsICJhdWRpb19wbGwyX291dCIsICJzeXMxX3BsbF8xMzNtIiwgfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfaTJjM19zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfMTYwbSIsICJzeXMyX3BsbF81MG0iLCAic3lzM19wbGwyX291dCIsICJhdWRpb19wbGwxX291dCIsCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9pMmMzX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF8xNjBtIiwgInN5czJfcGxsXzUwbSIsICJzeXMzX3BsbF9vdXQiLCAiYXVkaW9fcGxsMV9vdXQiLAogCQkJCQkgInZpZGVvX3BsbDFfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgInN5czFfcGxsXzEzM20iLCB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9pMmM0X3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF8xNjBtIiwgInN5czJfcGxsXzUwbSIsICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2kyYzRfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzE2MG0iLCAic3lzMl9wbGxfNTBtIiwgInN5czNfcGxsX291dCIsICJhdWRpb19wbGwxX291dCIsCiAJCQkJCSAidmlkZW9fcGxsMV9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCAic3lzMV9wbGxfMTMzbSIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3VhcnQxX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF84MG0iLCAic3lzMl9wbGxfMjAwbSIsICJzeXMyX3BsbF8xMDBtIiwKLQkJCQkJICAic3lzM19wbGwyX291dCIsICJjbGtfZXh0MiIsICJjbGtfZXh0NCIsICJhdWRpb19wbGwyX291dCIsIH07CisJCQkJCSAgInN5czNfcGxsX291dCIsICJjbGtfZXh0MiIsICJjbGtfZXh0NCIsICJhdWRpb19wbGwyX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3VhcnQyX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF84MG0iLCAic3lzMl9wbGxfMjAwbSIsICJzeXMyX3BsbF8xMDBtIiwKLQkJCQkJICAic3lzM19wbGwyX291dCIsICJjbGtfZXh0MiIsICJjbGtfZXh0MyIsICJhdWRpb19wbGwyX291dCIsIH07CisJCQkJCSAgInN5czNfcGxsX291dCIsICJjbGtfZXh0MiIsICJjbGtfZXh0MyIsICJhdWRpb19wbGwyX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3VhcnQzX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF84MG0iLCAic3lzMl9wbGxfMjAwbSIsICJzeXMyX3BsbF8xMDBtIiwKLQkJCQkJICAic3lzM19wbGwyX291dCIsICJjbGtfZXh0MiIsICJjbGtfZXh0NCIsICJhdWRpb19wbGwyX291dCIsIH07CisJCQkJCSAgInN5czNfcGxsX291dCIsICJjbGtfZXh0MiIsICJjbGtfZXh0NCIsICJhdWRpb19wbGwyX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3VhcnQ0X3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF84MG0iLCAic3lzMl9wbGxfMjAwbSIsICJzeXMyX3BsbF8xMDBtIiwKLQkJCQkJICAic3lzM19wbGwyX291dCIsICJjbGtfZXh0MiIsICJjbGtfZXh0MyIsICJhdWRpb19wbGwyX291dCIsIH07CisJCQkJCSAgInN5czNfcGxsX291dCIsICJjbGtfZXh0MiIsICJjbGtfZXh0MyIsICJhdWRpb19wbGwyX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3VzYl9jb3JlX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF8xMDBtIiwgInN5czFfcGxsXzQwbSIsICJzeXMyX3BsbF8xMDBtIiwKIAkJCQkJICAgICAic3lzMl9wbGxfMjAwbSIsICJjbGtfZXh0MiIsICJjbGtfZXh0MyIsICJhdWRpb19wbGwyX291dCIsIH07CkBAIC0xOTYsNzkgKzE5Niw3OSBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9naWNfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzIwMG0iLCAic3lzMQogCQkJCQkgICAgICAgInN5czJfcGxsXzIwMG0iLCAiY2xrX2V4dDIiLCAiY2xrX2V4dDMiLCAiYXVkaW9fcGxsMl9vdXQiIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2Vjc3BpMV9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMjAwbSIsICJzeXMxX3BsbF80MG0iLCAic3lzMV9wbGxfMTYwbSIsCi0JCQkJCSAgICJzeXMxX3BsbF84MDBtIiwgInN5czNfcGxsMl9vdXQiLCAic3lzMl9wbGxfMjUwbSIsICJhdWRpb19wbGwyX291dCIsIH07CisJCQkJCSAgICJzeXMxX3BsbF84MDBtIiwgInN5czNfcGxsX291dCIsICJzeXMyX3BsbF8yNTBtIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZWNzcGkyX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8yMDBtIiwgInN5czFfcGxsXzQwbSIsICJzeXMxX3BsbF8xNjBtIiwKLQkJCQkJICAgInN5czFfcGxsXzgwMG0iLCAic3lzM19wbGwyX291dCIsICJzeXMyX3BsbF8yNTBtIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKKwkJCQkJICAgInN5czFfcGxsXzgwMG0iLCAic3lzM19wbGxfb3V0IiwgInN5czJfcGxsXzI1MG0iLCAiYXVkaW9fcGxsMl9vdXQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9wd20xX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8xMDBtIiwgInN5czFfcGxsXzE2MG0iLCAic3lzMV9wbGxfNDBtIiwKLQkJCQkJICJzeXMzX3BsbDJfb3V0IiwgImNsa19leHQxIiwgInN5czFfcGxsXzgwbSIsICJ2aWRlb19wbGwxX291dCIsIH07CisJCQkJCSAic3lzM19wbGxfb3V0IiwgImNsa19leHQxIiwgInN5czFfcGxsXzgwbSIsICJ2aWRlb19wbGwxX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3B3bTJfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzMV9wbGxfMTYwbSIsICJzeXMxX3BsbF80MG0iLAotCQkJCQkgInN5czNfcGxsMl9vdXQiLCAiY2xrX2V4dDEiLCAic3lzMV9wbGxfODBtIiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKKwkJCQkJICJzeXMzX3BsbF9vdXQiLCAiY2xrX2V4dDEiLCAic3lzMV9wbGxfODBtIiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfcHdtM19zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMTAwbSIsICJzeXMxX3BsbF8xNjBtIiwgInN5czFfcGxsXzQwbSIsCi0JCQkJCSAic3lzM19wbGwyX291dCIsICJjbGtfZXh0MiIsICJzeXMxX3BsbF84MG0iLCAidmlkZW9fcGxsMV9vdXQiLCB9OworCQkJCQkgInN5czNfcGxsX291dCIsICJjbGtfZXh0MiIsICJzeXMxX3BsbF84MG0iLCAidmlkZW9fcGxsMV9vdXQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9wd200X3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8xMDBtIiwgInN5czFfcGxsXzE2MG0iLCAic3lzMV9wbGxfNDBtIiwKLQkJCQkJICJzeXMzX3BsbDJfb3V0IiwgImNsa19leHQyIiwgInN5czFfcGxsXzgwbSIsICJ2aWRlb19wbGwxX291dCIsIH07CisJCQkJCSAic3lzM19wbGxfb3V0IiwgImNsa19leHQyIiwgInN5czFfcGxsXzgwbSIsICJ2aWRlb19wbGwxX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2dwdDFfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzMV9wbGxfNDAwbSIsICJzeXMxX3BsbF80MG0iLAogCQkJCQkgInN5czFfcGxsXzgwbSIsICJhdWRpb19wbGwxX291dCIsICJjbGtfZXh0MSIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3dkb2dfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czFfcGxsXzEzM20iLCAic3lzMV9wbGxfMTYwbSIsICJ2cHVfcGxsX291dCIsCi0JCQkJCSAic3lzMl9wbGxfMTI1bSIsICJzeXMzX3BsbDJfb3V0IiwgInN5czFfcGxsXzgwbSIsICJzeXMyX3BsbF8xNjZtIiwgfTsKKwkJCQkJICJzeXMyX3BsbF8xMjVtIiwgInN5czNfcGxsX291dCIsICJzeXMxX3BsbF84MG0iLCAic3lzMl9wbGxfMTY2bSIsIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3dyY2xrX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF80MG0iLCAidnB1X3BsbF9vdXQiLCAic3lzM19wbGwyX291dCIsICJzeXMyX3BsbF8yMDBtIiwKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3dyY2xrX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF80MG0iLCAidnB1X3BsbF9vdXQiLCAic3lzM19wbGxfb3V0IiwgInN5czJfcGxsXzIwMG0iLAogCQkJCQkgICJzeXMxX3BsbF8yNjZtIiwgInN5czJfcGxsXzUwMG0iLCAic3lzMV9wbGxfMTAwbSIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2RzaV9jb3JlX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF8yNjZtIiwgInN5czJfcGxsXzI1MG0iLCAic3lzMV9wbGxfODAwbSIsCi0JCQkJCSAgICAgInN5czJfcGxsXzEwMDBtIiwgInN5czNfcGxsMl9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCAidmlkZW9fcGxsMV9vdXQiLCB9OworCQkJCQkgICAgICJzeXMyX3BsbF8xMDAwbSIsICJzeXMzX3BsbF9vdXQiLCAiYXVkaW9fcGxsMl9vdXQiLCAidmlkZW9fcGxsMV9vdXQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9kc2lfcGh5X3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8xMjVtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzMV9wbGxfODAwbSIsCiAJCQkJCSAgICAic3lzMl9wbGxfMTAwMG0iLCAiY2xrX2V4dDIiLCAiYXVkaW9fcGxsMl9vdXQiLCAidmlkZW9fcGxsMV9vdXQiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9kc2lfZGJpX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF8yNjZtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzMV9wbGxfODAwbSIsCi0JCQkJCSAgICAic3lzMl9wbGxfMTAwMG0iLCAic3lzM19wbGwyX291dCIsICJhdWRpb19wbGwyX291dCIsICJ2aWRlb19wbGwxX291dCIsIH07CisJCQkJCSAgICAic3lzMl9wbGxfMTAwMG0iLCAic3lzM19wbGxfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZHNpX2VzY19zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMTAwbSIsICJzeXMxX3BsbF84MG0iLCAic3lzMV9wbGxfODAwbSIsCi0JCQkJCSAgICAic3lzMl9wbGxfMTAwMG0iLCAic3lzM19wbGwyX291dCIsICJjbGtfZXh0MyIsICJhdWRpb19wbGwyX291dCIsIH07CisJCQkJCSAgICAic3lzMl9wbGxfMTAwMG0iLCAic3lzM19wbGxfb3V0IiwgImNsa19leHQzIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfY3NpMV9jb3JlX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF8yNjZtIiwgInN5czJfcGxsXzI1MG0iLCAic3lzMV9wbGxfODAwbSIsCi0JCQkJCSAgICAgICJzeXMyX3BsbF8xMDAwbSIsICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKKwkJCQkJICAgICAgInN5czJfcGxsXzEwMDBtIiwgInN5czNfcGxsX291dCIsICJhdWRpb19wbGwyX291dCIsICJ2aWRlb19wbGwxX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2NzaTFfcGh5X3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8xMjVtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzMV9wbGxfODAwbSIsCiAJCQkJCSAgICAgInN5czJfcGxsXzEwMDBtIiwgImNsa19leHQyIiwgImF1ZGlvX3BsbDJfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfY3NpMV9lc2Nfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzMV9wbGxfODBtIiwgInN5czFfcGxsXzgwMG0iLAotCQkJCQkgICAgICJzeXMyX3BsbF8xMDAwbSIsICJzeXMzX3BsbDJfb3V0IiwgImNsa19leHQzIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKKwkJCQkJICAgICAic3lzMl9wbGxfMTAwMG0iLCAic3lzM19wbGxfb3V0IiwgImNsa19leHQzIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfY3NpMl9jb3JlX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMxX3BsbF8yNjZtIiwgInN5czJfcGxsXzI1MG0iLCAic3lzMV9wbGxfODAwbSIsCi0JCQkJCSAgICAgICJzeXMyX3BsbF8xMDAwbSIsICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDJfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKKwkJCQkJICAgICAgInN5czJfcGxsXzEwMDBtIiwgInN5czNfcGxsX291dCIsICJhdWRpb19wbGwyX291dCIsICJ2aWRlb19wbGwxX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX2NzaTJfcGh5X3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8xMjVtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzMV9wbGxfODAwbSIsCiAJCQkJCSAgICAgInN5czJfcGxsXzEwMDBtIiwgImNsa19leHQyIiwgImF1ZGlvX3BsbDJfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfY3NpMl9lc2Nfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzEwMG0iLCAic3lzMV9wbGxfODBtIiwgInN5czFfcGxsXzgwMG0iLAotCQkJCQkgICAgICJzeXMyX3BsbF8xMDAwbSIsICJzeXMzX3BsbDJfb3V0IiwgImNsa19leHQzIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKKwkJCQkJICAgICAic3lzMl9wbGxfMTAwMG0iLCAic3lzM19wbGxfb3V0IiwgImNsa19leHQzIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfcGNpZTJfY3RybF9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMjUwbSIsICJzeXMyX3BsbF8yMDBtIiwgInN5czFfcGxsXzI2Nm0iLAotCQkJCQkgICAgICAgInN5czFfcGxsXzgwMG0iLCAic3lzMl9wbGxfNTAwbSIsICJzeXMyX3BsbF8zMzNtIiwgInN5czNfcGxsMl9vdXQiLCB9OworCQkJCQkgICAgICAgInN5czFfcGxsXzgwMG0iLCAic3lzMl9wbGxfNTAwbSIsICJzeXMyX3BsbF8zMzNtIiwgInN5czNfcGxsX291dCIsIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14OG1xX3BjaWUyX3BoeV9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMTAwbSIsICJzeXMyX3BsbF81MDBtIiwgImNsa19leHQxIiwKIAkJCQkJICAgICAgImNsa19leHQyIiwgImNsa19leHQzIiwgImNsa19leHQ0IiwgInN5czFfcGxsXzQwMG0iLCB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9wY2llMl9hdXhfc2Vsc1tdID0geyJvc2NfMjVtIiwgInN5czJfcGxsXzIwMG0iLCAic3lzMl9wbGxfNTBtIiwgInN5czNfcGxsMl9vdXQiLAorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfcGNpZTJfYXV4X3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8yMDBtIiwgInN5czJfcGxsXzUwbSIsICJzeXMzX3BsbF9vdXQiLAogCQkJCQkgICAgICAic3lzMl9wbGxfMTAwbSIsICJzeXMxX3BsbF84MG0iLCAic3lzMV9wbGxfMTYwbSIsICJzeXMxX3BsbF8yMDBtIiwgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZWNzcGkzX3NlbHNbXSA9IHsib3NjXzI1bSIsICJzeXMyX3BsbF8yMDBtIiwgInN5czFfcGxsXzQwbSIsICJzeXMxX3BsbF8xNjBtIiwKLQkJCQkJICAgInN5czFfcGxsXzgwMG0iLCAic3lzM19wbGwyX291dCIsICJzeXMyX3BsbF8yNTBtIiwgImF1ZGlvX3BsbDJfb3V0IiwgfTsKKwkJCQkJICAgInN5czFfcGxsXzgwMG0iLCAic3lzM19wbGxfb3V0IiwgInN5czJfcGxsXzI1MG0iLCAiYXVkaW9fcGxsMl9vdXQiLCB9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbXg4bXFfZHJhbV9jb3JlX3NlbHNbXSA9IHsiZHJhbV9wbGxfb3V0IiwgImRyYW1fYWx0X3Jvb3QiLCB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9jbGtvMV9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMV9wbGxfODAwbSIsICJvc2NfMjdtIiwgInN5czFfcGxsXzIwMG0iLAogCQkJCQkgICJhdWRpb19wbGwyX291dCIsICJzeXMyX3BsbF81MDBtIiwgInZwdV9wbGxfb3V0IiwgInN5czFfcGxsXzgwbSIsIH07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlteDhtcV9jbGtvMl9zZWxzW10gPSB7Im9zY18yNW0iLCAic3lzMl9wbGxfMjAwbSIsICJzeXMxX3BsbF80MDBtIiwgInN5czJfcGxsXzE2Nm0iLAotCQkJCQkgICJzeXMzX3BsbDJfb3V0IiwgImF1ZGlvX3BsbDFfb3V0IiwgInZpZGVvX3BsbDFfb3V0IiwgImNraWwiLCB9OworCQkJCQkgICJzeXMzX3BsbF9vdXQiLCAiYXVkaW9fcGxsMV9vdXQiLCAidmlkZW9fcGxsMV9vdXQiLCAiY2tpbCIsIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIApAQCAtNDA2LDcgKzQwNiw4IEBAIHN0YXRpYyBpbnQgaW14OG1xX2Nsb2Nrc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWNsa3NbSU1YOE1RX0NMS19OT0NfQVBCXSA9IGlteDhtX2Nsa19jb21wb3NpdGVfY3JpdGljYWwoIm5vY19hcGIiLCBpbXg4bXFfbm9jX2FwYl9zZWxzLCBiYXNlICsgMHg4ZDgwKTsKIAogCS8qIEFIQiAqLwotCWNsa3NbSU1YOE1RX0NMS19BSEJdID0gaW14OG1fY2xrX2NvbXBvc2l0ZSgiYWhiIiwgaW14OG1xX2FoYl9zZWxzLCBiYXNlICsgMHg5MDAwKTsKKwkvKiBBSEIgY2xvY2sgaXMgdXNlZCBieSB0aGUgQUhCIGJ1cyB0aGVyZWZvcmUgbWFya2VkIGFzIGNyaXRpY2FsICovCisJY2xrc1tJTVg4TVFfQ0xLX0FIQl0gPSBpbXg4bV9jbGtfY29tcG9zaXRlX2NyaXRpY2FsKCJhaGIiLCBpbXg4bXFfYWhiX3NlbHMsIGJhc2UgKyAweDkwMDApOwogCWNsa3NbSU1YOE1RX0NMS19BVURJT19BSEJdID0gaW14OG1fY2xrX2NvbXBvc2l0ZSgiYXVkaW9fYWhiIiwgaW14OG1xX2F1ZGlvX2FoYl9zZWxzLCBiYXNlICsgMHg5MTAwKTsKIAogCS8qIElQRyAqLwpAQCAtNTIzLDggKzUyNCw4IEBAIHN0YXRpYyBpbnQgaW14OG1xX2Nsb2Nrc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWNsa3NbSU1YOE1RX0NMS19VQVJUMl9ST09UXSA9IGlteF9jbGtfZ2F0ZTQoInVhcnQyX3Jvb3RfY2xrIiwgInVhcnQyIiwgYmFzZSArIDB4NDRhMCwgMCk7CiAJY2xrc1tJTVg4TVFfQ0xLX1VBUlQzX1JPT1RdID0gaW14X2Nsa19nYXRlNCgidWFydDNfcm9vdF9jbGsiLCAidWFydDMiLCBiYXNlICsgMHg0NGIwLCAwKTsKIAljbGtzW0lNWDhNUV9DTEtfVUFSVDRfUk9PVF0gPSBpbXhfY2xrX2dhdGU0KCJ1YXJ0NF9yb290X2NsayIsICJ1YXJ0NCIsIGJhc2UgKyAweDQ0YzAsIDApOwotCWNsa3NbSU1YOE1RX0NMS19VU0IxX0NUUkxfUk9PVF0gPSBpbXhfY2xrX2dhdGU0KCJ1c2IxX2N0cmxfcm9vdF9jbGsiLCAidXNiX2NvcmVfcmVmIiwgYmFzZSArIDB4NDRkMCwgMCk7Ci0JY2xrc1tJTVg4TVFfQ0xLX1VTQjJfQ1RSTF9ST09UXSA9IGlteF9jbGtfZ2F0ZTQoInVzYjJfY3RybF9yb290X2NsayIsICJ1c2JfY29yZV9yZWYiLCBiYXNlICsgMHg0NGUwLCAwKTsKKwljbGtzW0lNWDhNUV9DTEtfVVNCMV9DVFJMX1JPT1RdID0gaW14X2Nsa19nYXRlNCgidXNiMV9jdHJsX3Jvb3RfY2xrIiwgInVzYl9idXMiLCBiYXNlICsgMHg0NGQwLCAwKTsKKwljbGtzW0lNWDhNUV9DTEtfVVNCMl9DVFJMX1JPT1RdID0gaW14X2Nsa19nYXRlNCgidXNiMl9jdHJsX3Jvb3RfY2xrIiwgInVzYl9idXMiLCBiYXNlICsgMHg0NGUwLCAwKTsKIAljbGtzW0lNWDhNUV9DTEtfVVNCMV9QSFlfUk9PVF0gPSBpbXhfY2xrX2dhdGU0KCJ1c2IxX3BoeV9yb290X2NsayIsICJ1c2JfcGh5X3JlZiIsIGJhc2UgKyAweDQ0ZjAsIDApOwogCWNsa3NbSU1YOE1RX0NMS19VU0IyX1BIWV9ST09UXSA9IGlteF9jbGtfZ2F0ZTQoInVzYjJfcGh5X3Jvb3RfY2xrIiwgInVzYl9waHlfcmVmIiwgYmFzZSArIDB4NDUwMCwgMCk7CiAJY2xrc1tJTVg4TVFfQ0xLX1VTREhDMV9ST09UXSA9IGlteF9jbGtfZ2F0ZTQoInVzZGhjMV9yb290X2NsayIsICJ1c2RoYzEiLCBiYXNlICsgMHg0NTEwLCAwKTsKQEAgLTUzOSw3ICs1NDAsNyBAQCBzdGF0aWMgaW50IGlteDhtcV9jbG9ja3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAljbGtzW0lNWDhNUV9DTEtfRElTUF9BWElfUk9PVF0gID0gaW14X2Nsa19nYXRlMl9zaGFyZWQyKCJkaXNwX2F4aV9yb290X2NsayIsICJkaXNwX2F4aSIsIGJhc2UgKyAweDQ1ZDAsIDAsICZzaGFyZV9jb3VudF9kY3NzKTsKIAljbGtzW0lNWDhNUV9DTEtfRElTUF9BUEJfUk9PVF0gID0gaW14X2Nsa19nYXRlMl9zaGFyZWQyKCJkaXNwX2FwYl9yb290X2NsayIsICJkaXNwX2FwYiIsIGJhc2UgKyAweDQ1ZDAsIDAsICZzaGFyZV9jb3VudF9kY3NzKTsKIAljbGtzW0lNWDhNUV9DTEtfRElTUF9SVFJNX1JPT1RdID0gaW14X2Nsa19nYXRlMl9zaGFyZWQyKCJkaXNwX3J0cm1fcm9vdF9jbGsiLCAiZGlzcF9ydHJtIiwgYmFzZSArIDB4NDVkMCwgMCwgJnNoYXJlX2NvdW50X2Rjc3MpOwotCWNsa3NbSU1YOE1RX0NMS19UTVVfUk9PVF0gPSBpbXhfY2xrX2dhdGU0X2ZsYWdzKCJ0bXVfcm9vdF9jbGsiLCAiaXBnX3Jvb3QiLCBiYXNlICsgMHg0NjIwLCAwLCBDTEtfSVNfQ1JJVElDQUwpOworCWNsa3NbSU1YOE1RX0NMS19UTVVfUk9PVF0gPSBpbXhfY2xrX2dhdGU0KCJ0bXVfcm9vdF9jbGsiLCAiaXBnX3Jvb3QiLCBiYXNlICsgMHg0NjIwLCAwKTsKIAljbGtzW0lNWDhNUV9DTEtfVlBVX0RFQ19ST09UXSA9IGlteF9jbGtfZ2F0ZTJfZmxhZ3MoInZwdV9kZWNfcm9vdF9jbGsiLCAidnB1X2J1cyIsIGJhc2UgKyAweDQ2MzAsIDAsIENMS19TRVRfUkFURV9QQVJFTlQgfCBDTEtfT1BTX1BBUkVOVF9FTkFCTEUpOwogCWNsa3NbSU1YOE1RX0NMS19DU0kxX1JPT1RdID0gaW14X2Nsa19nYXRlNCgiY3NpMV9yb290X2NsayIsICJjc2kxX2NvcmUiLCBiYXNlICsgMHg0NjUwLCAwKTsKIAljbGtzW0lNWDhNUV9DTEtfQ1NJMl9ST09UXSA9IGlteF9jbGtfZ2F0ZTQoImNzaTJfcm9vdF9jbGsiLCAiY3NpMl9jb3JlIiwgYmFzZSArIDB4NDY2MCwgMCk7CkBAIC01NjEsMTAgKzU2MiwxOCBAQCBzdGF0aWMgaW50IGlteDhtcV9jbG9ja3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAljbGtfZGF0YS5jbGtfbnVtID0gQVJSQVlfU0laRShjbGtzKTsKIAogCWVyciA9IG9mX2Nsa19hZGRfcHJvdmlkZXIobnAsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsICZjbGtfZGF0YSk7Ci0JV0FSTl9PTihlcnIpOworCWlmIChlcnIgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGNsa3MgZm9yIGkuTVg4TVFcbiIpOworCQlnb3RvIHVucmVnaXN0ZXJfY2xrczsKKwl9CiAKIAlpbXhfcmVnaXN0ZXJfdWFydF9jbG9ja3ModWFydF9jbGtzKTsKIAorCXJldHVybiAwOworCit1bnJlZ2lzdGVyX2Nsa3M6CisJaW14X3VucmVnaXN0ZXJfY2xvY2tzKGNsa3MsIEFSUkFZX1NJWkUoY2xrcykpOworCiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvaW14L2Nsay1wbGwxNHh4LmMgYi9kcml2ZXJzL2Nsay9pbXgvY2xrLXBsbDE0eHguYwppbmRleCBiNzIxMzAyLi43YTgxNWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9pbXgvY2xrLXBsbDE0eHguYworKysgYi9kcml2ZXJzL2Nsay9pbXgvY2xrLXBsbDE0eHguYwpAQCAtMTkxLDYgKzE5MSwxMCBAQCBzdGF0aWMgaW50IGNsa19wbGwxNDE2eF9zZXRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyBkcmF0ZSwKIAl0bXAgJj0gflJTVF9NQVNLOwogCXdyaXRlbF9yZWxheGVkKHRtcCwgcGxsLT5iYXNlKTsKIAorCS8qIEVuYWJsZSBCWVBBU1MgKi8KKwl0bXAgfD0gQllQQVNTX01BU0s7CisJd3JpdGVsKHRtcCwgcGxsLT5iYXNlKTsKKwogCWRpdl92YWwgPSAocmF0ZS0+bWRpdiA8PCBNRElWX1NISUZUKSB8IChyYXRlLT5wZGl2IDw8IFBESVZfU0hJRlQpIHwKIAkJKHJhdGUtPnNkaXYgPDwgU0RJVl9TSElGVCk7CiAJd3JpdGVsX3JlbGF4ZWQoZGl2X3ZhbCwgcGxsLT5iYXNlICsgMHg0KTsKQEAgLTI1MCw2ICsyNTQsMTAgQEAgc3RhdGljIGludCBjbGtfcGxsMTQ0M3hfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgZHJhdGUsCiAJdG1wICY9IH5SU1RfTUFTSzsKIAl3cml0ZWxfcmVsYXhlZCh0bXAsIHBsbC0+YmFzZSk7CiAKKwkvKiBFbmFibGUgQllQQVNTICovCisJdG1wIHw9IEJZUEFTU19NQVNLOworCXdyaXRlbF9yZWxheGVkKHRtcCwgcGxsLT5iYXNlKTsKKwogCWRpdl92YWwgPSAocmF0ZS0+bWRpdiA8PCBNRElWX1NISUZUKSB8IChyYXRlLT5wZGl2IDw8IFBESVZfU0hJRlQpIHwKIAkJKHJhdGUtPnNkaXYgPDwgU0RJVl9TSElGVCk7CiAJd3JpdGVsX3JlbGF4ZWQoZGl2X3ZhbCwgcGxsLT5iYXNlICsgMHg0KTsKQEAgLTI4MywxNiArMjkxLDI4IEBAIHN0YXRpYyBpbnQgY2xrX3BsbDE0eHhfcHJlcGFyZShzdHJ1Y3QgY2xrX2h3ICpodykKIHsKIAlzdHJ1Y3QgY2xrX3BsbDE0eHggKnBsbCA9IHRvX2Nsa19wbGwxNHh4KGh3KTsKIAl1MzIgdmFsOworCWludCByZXQ7CiAKIAkvKgogCSAqIFJFU0VUQiA9IDEgZnJvbSAwLCBQTEwgc3RhcnRzIGl0cyBub3JtYWwKIAkgKiBvcGVyYXRpb24gYWZ0ZXIgbG9jayB0aW1lCiAJICovCiAJdmFsID0gcmVhZGxfcmVsYXhlZChwbGwtPmJhc2UgKyBHTlJMX0NUTCk7CisJaWYgKHZhbCAmIFJTVF9NQVNLKQorCQlyZXR1cm4gMDsKKwl2YWwgfD0gQllQQVNTX01BU0s7CisJd3JpdGVsX3JlbGF4ZWQodmFsLCBwbGwtPmJhc2UgKyBHTlJMX0NUTCk7CiAJdmFsIHw9IFJTVF9NQVNLOwogCXdyaXRlbF9yZWxheGVkKHZhbCwgcGxsLT5iYXNlICsgR05STF9DVEwpOwogCi0JcmV0dXJuIGNsa19wbGwxNHh4X3dhaXRfbG9jayhwbGwpOworCXJldCA9IGNsa19wbGwxNHh4X3dhaXRfbG9jayhwbGwpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwl2YWwgJj0gfkJZUEFTU19NQVNLOworCXdyaXRlbF9yZWxheGVkKHZhbCwgcGxsLT5iYXNlICsgR05STF9DVEwpOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgY2xrX3BsbDE0eHhfaXNfcHJlcGFyZWQoc3RydWN0IGNsa19odyAqaHcpCkBAIC0zNDgsNiArMzY4LDcgQEAgc3RydWN0IGNsayAqaW14X2Nsa19wbGwxNHh4KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCXN0cnVjdCBjbGtfcGxsMTR4eCAqcGxsOwogCXN0cnVjdCBjbGsgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OworCXUzMiB2YWw7CiAKIAlwbGwgPSBremFsbG9jKHNpemVvZigqcGxsKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwbGwpCkBAIC0zNzksNiArNDAwLDEwIEBAIHN0cnVjdCBjbGsgKmlteF9jbGtfcGxsMTR4eChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAlwbGwtPnJhdGVfdGFibGUgPSBwbGxfY2xrLT5yYXRlX3RhYmxlOwogCXBsbC0+cmF0ZV9jb3VudCA9IHBsbF9jbGstPnJhdGVfY291bnQ7CiAKKwl2YWwgPSByZWFkbF9yZWxheGVkKHBsbC0+YmFzZSArIEdOUkxfQ1RMKTsKKwl2YWwgJj0gfkJZUEFTU19NQVNLOworCXdyaXRlbF9yZWxheGVkKHZhbCwgcGxsLT5iYXNlICsgR05STF9DVEwpOworCiAJY2xrID0gY2xrX3JlZ2lzdGVyKE5VTEwsICZwbGwtPmh3KTsKIAlpZiAoSVNfRVJSKGNsaykpIHsKIAkJcHJfZXJyKCIlczogZmFpbGVkIHRvIHJlZ2lzdGVyIHBsbCAlcyAlbHVcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9pbXgvY2xrLmggYi9kcml2ZXJzL2Nsay9pbXgvY2xrLmgKaW5kZXggYmI0ZWMxYi4uZjdhMzg5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvaW14L2Nsay5oCisrKyBiL2RyaXZlcnMvY2xrL2lteC9jbGsuaApAQCAtMTAsNyArMTAsNiBAQCBleHRlcm4gc3BpbmxvY2tfdCBpbXhfY2NtX2xvY2s7CiB2b2lkIGlteF9jaGVja19jbG9ja3Moc3RydWN0IGNsayAqY2xrc1tdLCB1bnNpZ25lZCBpbnQgY291bnQpOwogdm9pZCBpbXhfY2hlY2tfY2xrX2h3cyhzdHJ1Y3QgY2xrX2h3ICpjbGtzW10sIHVuc2lnbmVkIGludCBjb3VudCk7CiB2b2lkIGlteF9yZWdpc3Rlcl91YXJ0X2Nsb2NrcyhzdHJ1Y3QgY2xrICoqIGNvbnN0IGNsa3NbXSk7Ci12b2lkIGlteF9yZWdpc3Rlcl91YXJ0X2Nsb2Nrc19od3Moc3RydWN0IGNsa19odyAqKiBjb25zdCBod3NbXSk7CiB2b2lkIGlteF9tbWRjX21hc2tfaGFuZHNoYWtlKHZvaWQgX19pb21lbSAqY2NtX2Jhc2UsIHVuc2lnbmVkIGludCBjaG4pOwogdm9pZCBpbXhfdW5yZWdpc3Rlcl9jbG9ja3Moc3RydWN0IGNsayAqY2xrc1tdLCB1bnNpZ25lZCBpbnQgY291bnQpOwogCkBAIC01MSwxMiArNTAsNiBAQCBzdHJ1Y3QgaW14X3BsbDE0eHhfY2xrIHsKIAlpbnQgZmxhZ3M7CiB9OwogCi0jZGVmaW5lIGlteF9jbGtfYnVzeV9kaXZpZGVyKG5hbWUsIHBhcmVudF9uYW1lLCByZWcsIHNoaWZ0LCB3aWR0aCwgYnVzeV9yZWcsIGJ1c3lfc2hpZnQpIFwKLQlpbXhfY2xrX2h3X2J1c3lfZGl2aWRlcihuYW1lLCBwYXJlbnRfbmFtZSwgcmVnLCBzaGlmdCwgd2lkdGgsIGJ1c3lfcmVnLCBidXN5X3NoaWZ0KS0+Y2xrCi0KLSNkZWZpbmUgaW14X2Nsa19idXN5X211eChuYW1lLCByZWcsIHNoaWZ0LCB3aWR0aCwgYnVzeV9yZWcsIGJ1c3lfc2hpZnQsIHBhcmVudF9uYW1lcywgbnVtX3BhcmVudHMpIFwKLQlpbXhfY2xrX2h3X2J1c3lfbXV4KG5hbWUsIHJlZywgc2hpZnQsIHdpZHRoLCBidXN5X3JlZywgYnVzeV9zaGlmdCwgcGFyZW50X25hbWVzLCBudW1fcGFyZW50cyktPmNsawotCiAjZGVmaW5lIGlteF9jbGtfY3B1KG5hbWUsIHBhcmVudF9uYW1lLCBkaXYsIG11eCwgcGxsLCBzdGVwKSBcCiAJaW14X2Nsa19od19jcHUobmFtZSwgcGFyZW50X25hbWUsIGRpdiwgbXV4LCBwbGwsIHN0ZXApLT5jbGsKIApAQCAtNzQsMTUgKzY3LDYgQEAgc3RydWN0IGlteF9wbGwxNHh4X2NsayB7CiAjZGVmaW5lIGlteF9jbGtfZ2F0ZV9leGNsdXNpdmUobmFtZSwgcGFyZW50LCByZWcsIHNoaWZ0LCBleGNsdXNpdmVfbWFzaykgXAogCWlteF9jbGtfaHdfZ2F0ZV9leGNsdXNpdmUobmFtZSwgcGFyZW50LCByZWcsIHNoaWZ0LCBleGNsdXNpdmVfbWFzayktPmNsawogCi0jZGVmaW5lIGlteF9jbGtfZml4dXBfZGl2aWRlcihuYW1lLCBwYXJlbnQsIHJlZywgc2hpZnQsIHdpZHRoLCBmaXh1cCkgXAotCWlteF9jbGtfaHdfZml4dXBfZGl2aWRlcihuYW1lLCBwYXJlbnQsIHJlZywgc2hpZnQsIHdpZHRoLCBmaXh1cCktPmNsawotCi0jZGVmaW5lIGlteF9jbGtfZml4dXBfbXV4KG5hbWUsIHJlZywgc2hpZnQsIHdpZHRoLCBwYXJlbnRzLCBudW1fcGFyZW50cywgZml4dXApIFwKLQlpbXhfY2xrX2h3X2ZpeHVwX211eChuYW1lLCByZWcsIHNoaWZ0LCB3aWR0aCwgcGFyZW50cywgbnVtX3BhcmVudHMsIGZpeHVwKS0+Y2xrCi0KLSNkZWZpbmUgaW14X2Nsa19tdXhfbGRiKG5hbWUsIHJlZywgc2hpZnQsIHdpZHRoLCBwYXJlbnRzLCBudW1fcGFyZW50cykgXAotCWlteF9jbGtfaHdfbXV4X2xkYihuYW1lLCByZWcsIHNoaWZ0LCB3aWR0aCwgcGFyZW50cywgbnVtX3BhcmVudHMpLT5jbGsKLQogI2RlZmluZSBpbXhfY2xrX2ZpeGVkX2ZhY3RvcihuYW1lLCBwYXJlbnQsIG11bHQsIGRpdikgXAogCWlteF9jbGtfaHdfZml4ZWRfZmFjdG9yKG5hbWUsIHBhcmVudCwgbXVsdCwgZGl2KS0+Y2xrCiAKQEAgLTkyLDIxICs3NiwxMiBAQCBzdHJ1Y3QgaW14X3BsbDE0eHhfY2xrIHsKICNkZWZpbmUgaW14X2Nsa19nYXRlX2RpcyhuYW1lLCBwYXJlbnQsIHJlZywgc2hpZnQpIFwKIAlpbXhfY2xrX2h3X2dhdGVfZGlzKG5hbWUsIHBhcmVudCwgcmVnLCBzaGlmdCktPmNsawogCi0jZGVmaW5lIGlteF9jbGtfZ2F0ZV9kaXNfZmxhZ3MobmFtZSwgcGFyZW50LCByZWcsIHNoaWZ0LCBmbGFncykgXAotCWlteF9jbGtfaHdfZ2F0ZV9kaXNfZmxhZ3MobmFtZSwgcGFyZW50LCByZWcsIHNoaWZ0LCBmbGFncyktPmNsawotCi0jZGVmaW5lIGlteF9jbGtfZ2F0ZV9mbGFncyhuYW1lLCBwYXJlbnQsIHJlZywgc2hpZnQsIGZsYWdzKSBcCi0JaW14X2Nsa19od19nYXRlX2ZsYWdzKG5hbWUsIHBhcmVudCwgcmVnLCBzaGlmdCwgZmxhZ3MpLT5jbGsKLQogI2RlZmluZSBpbXhfY2xrX2dhdGUyKG5hbWUsIHBhcmVudCwgcmVnLCBzaGlmdCkgXAogCWlteF9jbGtfaHdfZ2F0ZTIobmFtZSwgcGFyZW50LCByZWcsIHNoaWZ0KS0+Y2xrCiAKICNkZWZpbmUgaW14X2Nsa19nYXRlMl9mbGFncyhuYW1lLCBwYXJlbnQsIHJlZywgc2hpZnQsIGZsYWdzKSBcCiAJaW14X2Nsa19od19nYXRlMl9mbGFncyhuYW1lLCBwYXJlbnQsIHJlZywgc2hpZnQsIGZsYWdzKS0+Y2xrCiAKLSNkZWZpbmUgaW14X2Nsa19nYXRlMl9zaGFyZWQobmFtZSwgcGFyZW50LCByZWcsIHNoaWZ0LCBzaGFyZV9jb3VudCkgXAotCWlteF9jbGtfaHdfZ2F0ZTJfc2hhcmVkKG5hbWUsIHBhcmVudCwgcmVnLCBzaGlmdCwgc2hhcmVfY291bnQpLT5jbGsKLQogI2RlZmluZSBpbXhfY2xrX2dhdGUyX3NoYXJlZDIobmFtZSwgcGFyZW50LCByZWcsIHNoaWZ0LCBzaGFyZV9jb3VudCkgXAogCWlteF9jbGtfaHdfZ2F0ZTJfc2hhcmVkMihuYW1lLCBwYXJlbnQsIHJlZywgc2hpZnQsIHNoYXJlX2NvdW50KS0+Y2xrCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2luZ2VuaWMvS2NvbmZpZyBiL2RyaXZlcnMvY2xrL2luZ2VuaWMvS2NvbmZpZwppbmRleCBmZThkYjkzLi4xY2I0ODk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9pbmdlbmljL0tjb25maWcKKysrIGIvZHJpdmVycy9jbGsvaW5nZW5pYy9LY29uZmlnCkBAIC0xLDUgKzEsNSBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci1tZW51ICJJbmdlbmljIEpaNDd4eCBDR1UgZHJpdmVycyIKK21lbnUgIkluZ2VuaWMgU29DcyBkcml2ZXJzIgogCWRlcGVuZHMgb24gTUlQUwogCiBjb25maWcgSU5HRU5JQ19DR1VfQ09NTU9OCkBAIC00NSw0ICs0NSwxMiBAQAogCiAJICBJZiBidWlsZGluZyBmb3IgYSBKWjQ3ODAgU29DLCB5b3Ugd2FudCB0byBzYXkgWSBoZXJlLgogCitjb25maWcgSU5HRU5JQ19UQ1VfQ0xLCisJYm9vbCAiSW5nZW5pYyBKWjQ3eHggVENVIGNsb2NrcyBkcml2ZXIiCisJZGVmYXVsdCBNQUNIX0lOR0VOSUMKKwlzZWxlY3QgTUZEX1NZU0NPTgorCWhlbHAKKwkgIFN1cHBvcnQgdGhlIGNsb2NrcyBvZiB0aGUgVGltZXIvQ291bnRlciBVbml0IChUQ1UpIG9mIHRoZSBJbmdlbmljCisJICBKWjQ3eHggU29Dcy4KKwogZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvaW5nZW5pYy9NYWtlZmlsZSBiL2RyaXZlcnMvY2xrL2luZ2VuaWMvTWFrZWZpbGUKaW5kZXggMjUwNTcwYS4uMDk3MjIwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvaW5nZW5pYy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2Nsay9pbmdlbmljL01ha2VmaWxlCkBAIC00LDMgKzQsNCBAQAogb2JqLSQoQ09ORklHX0lOR0VOSUNfQ0dVX0paNDcyNUIpCSs9IGp6NDcyNWItY2d1Lm8KIG9iai0kKENPTkZJR19JTkdFTklDX0NHVV9KWjQ3NzApCSs9IGp6NDc3MC1jZ3Uubwogb2JqLSQoQ09ORklHX0lOR0VOSUNfQ0dVX0paNDc4MCkJKz0gano0NzgwLWNndS5vCitvYmotJChDT05GSUdfSU5HRU5JQ19UQ1VfQ0xLKQkJKz0gdGN1Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2luZ2VuaWMvano0NzI1Yi1jZ3UuYyBiL2RyaXZlcnMvY2xrL2luZ2VuaWMvano0NzI1Yi1jZ3UuYwppbmRleCAyNjQyZDM2Li5hM2I0NjM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9pbmdlbmljL2p6NDcyNWItY2d1LmMKKysrIGIvZHJpdmVycy9jbGsvaW5nZW5pYy9qejQ3MjViLWNndS5jCkBAIC0yNTcsNCArMjU3LDQgQEAgc3RhdGljIHZvaWQgX19pbml0IGp6NDcyNWJfY2d1X2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAogCWluZ2VuaWNfY2d1X3JlZ2lzdGVyX3N5c2NvcmVfb3BzKGNndSk7CiB9Ci1DTEtfT0ZfREVDTEFSRShqejQ3MjViX2NndSwgImluZ2VuaWMsano0NzI1Yi1jZ3UiLCBqejQ3MjViX2NndV9pbml0KTsKK0NMS19PRl9ERUNMQVJFX0RSSVZFUihqejQ3MjViX2NndSwgImluZ2VuaWMsano0NzI1Yi1jZ3UiLCBqejQ3MjViX2NndV9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2luZ2VuaWMvano0NzQwLWNndS5jIGIvZHJpdmVycy9jbGsvaW5nZW5pYy9qejQ3NDAtY2d1LmMKaW5kZXggNGMwYTIwOS4uNGYwZTkyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvaW5nZW5pYy9qejQ3NDAtY2d1LmMKKysrIGIvZHJpdmVycy9jbGsvaW5nZW5pYy9qejQ3NDAtY2d1LmMKQEAgLTUzLDYgKzUzLDEwIEBAIHN0YXRpYyBjb25zdCB1OCBqejQ3NDBfY2d1X2NwY2NyX2Rpdl90YWJsZVtdID0gewogCTEsIDIsIDMsIDQsIDYsIDgsIDEyLCAxNiwgMjQsIDMyLAogfTsKIAorc3RhdGljIGNvbnN0IHU4IGp6NDc0MF9jZ3VfcGxsX2hhbGZfZGl2X3RhYmxlW10gPSB7CisJMiwgMSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5nZW5pY19jZ3VfY2xrX2luZm8gano0NzQwX2NndV9jbG9ja3NbXSA9IHsKIAogCS8qIEV4dGVybmFsIGNsb2NrcyAqLwpAQCAtODYsNyArOTAsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbmdlbmljX2NndV9jbGtfaW5mbyBqejQ3NDBfY2d1X2Nsb2Nrc1tdID0gewogCVtKWjQ3NDBfQ0xLX1BMTF9IQUxGXSA9IHsKIAkJInBsbCBoYWxmIiwgQ0dVX0NMS19ESVYsCiAJCS5wYXJlbnRzID0geyBKWjQ3NDBfQ0xLX1BMTCwgLTEsIC0xLCAtMSB9LAotCQkuZGl2ID0geyBDR1VfUkVHX0NQQ0NSLCAyMSwgMSwgMSwgLTEsIC0xLCAtMSB9LAorCQkuZGl2ID0geworCQkJQ0dVX1JFR19DUENDUiwgMjEsIDEsIDEsIC0xLCAtMSwgLTEsCisJCQlqejQ3NDBfY2d1X3BsbF9oYWxmX2Rpdl90YWJsZSwKKwkJfSwKIAl9LAogCiAJW0paNDc0MF9DTEtfQ0NMS10gPSB7CkBAIC0yMjIsNiArMjI5LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5nZW5pY19jZ3VfY2xrX2luZm8gano0NzQwX2NndV9jbG9ja3NbXSA9IHsKIAkJLnBhcmVudHMgPSB7IEpaNDc0MF9DTEtfRVhULCAtMSwgLTEsIC0xIH0sCiAJCS5nYXRlID0geyBDR1VfUkVHX0NMS0dSLCA1IH0sCiAJfSwKKworCVtKWjQ3NDBfQ0xLX1RDVV0gPSB7CisJCSJ0Y3UiLCBDR1VfQ0xLX0dBVEUsCisJCS5wYXJlbnRzID0geyBKWjQ3NDBfQ0xLX0VYVCwgLTEsIC0xLCAtMSB9LAorCQkuZ2F0ZSA9IHsgQ0dVX1JFR19DTEtHUiwgMSB9LAorCX0sCiB9OwogCiBzdGF0aWMgdm9pZCBfX2luaXQgano0NzQwX2NndV9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCkBAIC0yNDEsNCArMjU0LDQgQEAgc3RhdGljIHZvaWQgX19pbml0IGp6NDc0MF9jZ3VfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCiAJaW5nZW5pY19jZ3VfcmVnaXN0ZXJfc3lzY29yZV9vcHMoY2d1KTsKIH0KLUNMS19PRl9ERUNMQVJFKGp6NDc0MF9jZ3UsICJpbmdlbmljLGp6NDc0MC1jZ3UiLCBqejQ3NDBfY2d1X2luaXQpOworQ0xLX09GX0RFQ0xBUkVfRFJJVkVSKGp6NDc0MF9jZ3UsICJpbmdlbmljLGp6NDc0MC1jZ3UiLCBqejQ3NDBfY2d1X2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvaW5nZW5pYy9qejQ3NzAtY2d1LmMgYi9kcml2ZXJzL2Nsay9pbmdlbmljL2p6NDc3MC1jZ3UuYwppbmRleCBlZWJjMWJlLi45NTZkZDY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9pbmdlbmljL2p6NDc3MC1jZ3UuYworKysgYi9kcml2ZXJzL2Nsay9pbmdlbmljL2p6NDc3MC1jZ3UuYwpAQCAtNDQzLDQgKzQ0Myw0IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBqejQ3NzBfY2d1X2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIH0KIAogLyogV2Ugb25seSBwcm9iZSB2aWEgZGV2aWNldHJlZSwgbm8gbmVlZCBmb3IgYSBwbGF0Zm9ybSBkcml2ZXIgKi8KLUNMS19PRl9ERUNMQVJFKGp6NDc3MF9jZ3UsICJpbmdlbmljLGp6NDc3MC1jZ3UiLCBqejQ3NzBfY2d1X2luaXQpOworQ0xLX09GX0RFQ0xBUkVfRFJJVkVSKGp6NDc3MF9jZ3UsICJpbmdlbmljLGp6NDc3MC1jZ3UiLCBqejQ3NzBfY2d1X2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvaW5nZW5pYy9qejQ3ODAtY2d1LmMgYi9kcml2ZXJzL2Nsay9pbmdlbmljL2p6NDc4MC1jZ3UuYwppbmRleCA4YzY3Zjg5Li5lYTkwNWZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9pbmdlbmljL2p6NDc4MC1jZ3UuYworKysgYi9kcml2ZXJzL2Nsay9pbmdlbmljL2p6NDc4MC1jZ3UuYwpAQCAtNzI1LDQgKzcyNSw0IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBqejQ3ODBfY2d1X2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAogCWluZ2VuaWNfY2d1X3JlZ2lzdGVyX3N5c2NvcmVfb3BzKGNndSk7CiB9Ci1DTEtfT0ZfREVDTEFSRShqejQ3ODBfY2d1LCAiaW5nZW5pYyxqejQ3ODAtY2d1Iiwgano0NzgwX2NndV9pbml0KTsKK0NMS19PRl9ERUNMQVJFX0RSSVZFUihqejQ3ODBfY2d1LCAiaW5nZW5pYyxqejQ3ODAtY2d1Iiwgano0NzgwX2NndV9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2luZ2VuaWMvdGN1LmMgYi9kcml2ZXJzL2Nsay9pbmdlbmljL3RjdS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExYTVmOWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2Nsay9pbmdlbmljL3RjdS5jCkBAIC0wLDAgKzEsNDc0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIEpaNDd4eCBTb0NzIFRDVSBjbG9ja3MgZHJpdmVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgUGF1bCBDZXJjdWVpbCA8cGF1bEBjcmFwb3VpbGxvdS5uZXQ+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsb2NrY2hpcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvaW5nZW5pYy10Y3UuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2NvcmVfb3BzLmg+CisKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9pbmdlbmljLHRjdS5oPgorCisvKiA4IGNoYW5uZWxzIG1heCArIHdhdGNoZG9nICsgT1NUICovCisjZGVmaW5lIFRDVV9DTEtfQ09VTlQJMTAKKworI3VuZGVmIHByX2ZtdAorI2RlZmluZSBwcl9mbXQoZm10KSAiaW5nZW5pYy10Y3UtY2xrOiAiIGZtdAorCitlbnVtIHRjdV9jbGtfcGFyZW50IHsKKwlUQ1VfUEFSRU5UX1BDTEssCisJVENVX1BBUkVOVF9SVEMsCisJVENVX1BBUkVOVF9FWFQsCit9OworCitzdHJ1Y3QgaW5nZW5pY19zb2NfaW5mbyB7CisJdW5zaWduZWQgaW50IG51bV9jaGFubmVsczsKKwlib29sIGhhc19vc3Q7CisJYm9vbCBoYXNfdGN1X2NsazsKK307CisKK3N0cnVjdCBpbmdlbmljX3RjdV9jbGtfaW5mbyB7CisJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdF9kYXRhOworCXU4IGdhdGVfYml0OworCXU4IHRjc3JfcmVnOworfTsKKworc3RydWN0IGluZ2VuaWNfdGN1X2NsayB7CisJc3RydWN0IGNsa19odyBodzsKKwl1bnNpZ25lZCBpbnQgaWR4OworCXN0cnVjdCBpbmdlbmljX3RjdSAqdGN1OworCWNvbnN0IHN0cnVjdCBpbmdlbmljX3RjdV9jbGtfaW5mbyAqaW5mbzsKK307CisKK3N0cnVjdCBpbmdlbmljX3RjdSB7CisJY29uc3Qgc3RydWN0IGluZ2VuaWNfc29jX2luZm8gKnNvY19pbmZvOworCXN0cnVjdCByZWdtYXAgKm1hcDsKKwlzdHJ1Y3QgY2xrICpjbGs7CisKKwlzdHJ1Y3QgY2xrX2h3X29uZWNlbGxfZGF0YSAqY2xvY2tzOworfTsKKworc3RhdGljIHN0cnVjdCBpbmdlbmljX3RjdSAqaW5nZW5pY190Y3U7CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGluZ2VuaWNfdGN1X2NsayAqdG9fdGN1X2NsayhzdHJ1Y3QgY2xrX2h3ICpodykKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGh3LCBzdHJ1Y3QgaW5nZW5pY190Y3VfY2xrLCBodyk7Cit9CisKK3N0YXRpYyBpbnQgaW5nZW5pY190Y3VfZW5hYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQoreworCXN0cnVjdCBpbmdlbmljX3RjdV9jbGsgKnRjdV9jbGsgPSB0b190Y3VfY2xrKGh3KTsKKwljb25zdCBzdHJ1Y3QgaW5nZW5pY190Y3VfY2xrX2luZm8gKmluZm8gPSB0Y3VfY2xrLT5pbmZvOworCXN0cnVjdCBpbmdlbmljX3RjdSAqdGN1ID0gdGN1X2Nsay0+dGN1OworCisJcmVnbWFwX3dyaXRlKHRjdS0+bWFwLCBUQ1VfUkVHX1RTQ1IsIEJJVChpbmZvLT5nYXRlX2JpdCkpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGluZ2VuaWNfdGN1X2Rpc2FibGUoc3RydWN0IGNsa19odyAqaHcpCit7CisJc3RydWN0IGluZ2VuaWNfdGN1X2NsayAqdGN1X2NsayA9IHRvX3RjdV9jbGsoaHcpOworCWNvbnN0IHN0cnVjdCBpbmdlbmljX3RjdV9jbGtfaW5mbyAqaW5mbyA9IHRjdV9jbGstPmluZm87CisJc3RydWN0IGluZ2VuaWNfdGN1ICp0Y3UgPSB0Y3VfY2xrLT50Y3U7CisKKwlyZWdtYXBfd3JpdGUodGN1LT5tYXAsIFRDVV9SRUdfVFNTUiwgQklUKGluZm8tPmdhdGVfYml0KSk7Cit9CisKK3N0YXRpYyBpbnQgaW5nZW5pY190Y3VfaXNfZW5hYmxlZChzdHJ1Y3QgY2xrX2h3ICpodykKK3sKKwlzdHJ1Y3QgaW5nZW5pY190Y3VfY2xrICp0Y3VfY2xrID0gdG9fdGN1X2Nsayhodyk7CisJY29uc3Qgc3RydWN0IGluZ2VuaWNfdGN1X2Nsa19pbmZvICppbmZvID0gdGN1X2Nsay0+aW5mbzsKKwl1bnNpZ25lZCBpbnQgdmFsdWU7CisKKwlyZWdtYXBfcmVhZCh0Y3VfY2xrLT50Y3UtPm1hcCwgVENVX1JFR19UU1IsICZ2YWx1ZSk7CisKKwlyZXR1cm4gISh2YWx1ZSAmIEJJVChpbmZvLT5nYXRlX2JpdCkpOworfQorCitzdGF0aWMgYm9vbCBpbmdlbmljX3RjdV9lbmFibGVfcmVncyhzdHJ1Y3QgY2xrX2h3ICpodykKK3sKKwlzdHJ1Y3QgaW5nZW5pY190Y3VfY2xrICp0Y3VfY2xrID0gdG9fdGN1X2Nsayhodyk7CisJY29uc3Qgc3RydWN0IGluZ2VuaWNfdGN1X2Nsa19pbmZvICppbmZvID0gdGN1X2Nsay0+aW5mbzsKKwlzdHJ1Y3QgaW5nZW5pY190Y3UgKnRjdSA9IHRjdV9jbGstPnRjdTsKKwlib29sIGVuYWJsZWQgPSBmYWxzZTsKKworCS8qCisJICogSWYgdGhlIFNvQyBoYXMgbm8gZ2xvYmFsIFRDVSBjbG9jaywgd2UgbXVzdCB1bmdhdGUgdGhlIGNoYW5uZWwncworCSAqIGNsb2NrIHRvIGJlIGFibGUgdG8gYWNjZXNzIGl0cyByZWdpc3RlcnMuCisJICogSWYgd2UgaGF2ZSBhIFRDVSBjbG9jaywgaXQgd2lsbCBiZSBlbmFibGVkIGF1dG9tYXRpY2FsbHkgYXMgaXQgaGFzCisJICogYmVlbiBhdHRhY2hlZCB0byB0aGUgcmVnbWFwLgorCSAqLworCWlmICghdGN1LT5jbGspIHsKKwkJZW5hYmxlZCA9ICEhaW5nZW5pY190Y3VfaXNfZW5hYmxlZChodyk7CisJCXJlZ21hcF93cml0ZSh0Y3UtPm1hcCwgVENVX1JFR19UU0NSLCBCSVQoaW5mby0+Z2F0ZV9iaXQpKTsKKwl9CisKKwlyZXR1cm4gZW5hYmxlZDsKK30KKworc3RhdGljIHZvaWQgaW5nZW5pY190Y3VfZGlzYWJsZV9yZWdzKHN0cnVjdCBjbGtfaHcgKmh3KQoreworCXN0cnVjdCBpbmdlbmljX3RjdV9jbGsgKnRjdV9jbGsgPSB0b190Y3VfY2xrKGh3KTsKKwljb25zdCBzdHJ1Y3QgaW5nZW5pY190Y3VfY2xrX2luZm8gKmluZm8gPSB0Y3VfY2xrLT5pbmZvOworCXN0cnVjdCBpbmdlbmljX3RjdSAqdGN1ID0gdGN1X2Nsay0+dGN1OworCisJaWYgKCF0Y3UtPmNsaykKKwkJcmVnbWFwX3dyaXRlKHRjdS0+bWFwLCBUQ1VfUkVHX1RTU1IsIEJJVChpbmZvLT5nYXRlX2JpdCkpOworfQorCitzdGF0aWMgdTggaW5nZW5pY190Y3VfZ2V0X3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpodykKK3sKKwlzdHJ1Y3QgaW5nZW5pY190Y3VfY2xrICp0Y3VfY2xrID0gdG9fdGN1X2Nsayhodyk7CisJY29uc3Qgc3RydWN0IGluZ2VuaWNfdGN1X2Nsa19pbmZvICppbmZvID0gdGN1X2Nsay0+aW5mbzsKKwl1bnNpZ25lZCBpbnQgdmFsID0gMDsKKwlpbnQgcmV0OworCisJcmV0ID0gcmVnbWFwX3JlYWQodGN1X2Nsay0+dGN1LT5tYXAsIGluZm8tPnRjc3JfcmVnLCAmdmFsKTsKKwlXQVJOX09OQ0UocmV0IDwgMCwgIlVuYWJsZSB0byByZWFkIFRDU1IgJWQiLCB0Y3VfY2xrLT5pZHgpOworCisJcmV0dXJuIGZmcyh2YWwgJiBUQ1VfVENTUl9QQVJFTlRfQ0xPQ0tfTUFTSykgLSAxOworfQorCitzdGF0aWMgaW50IGluZ2VuaWNfdGN1X3NldF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHcsIHU4IGlkeCkKK3sKKwlzdHJ1Y3QgaW5nZW5pY190Y3VfY2xrICp0Y3VfY2xrID0gdG9fdGN1X2Nsayhodyk7CisJY29uc3Qgc3RydWN0IGluZ2VuaWNfdGN1X2Nsa19pbmZvICppbmZvID0gdGN1X2Nsay0+aW5mbzsKKwlib29sIHdhc19lbmFibGVkOworCWludCByZXQ7CisKKwl3YXNfZW5hYmxlZCA9IGluZ2VuaWNfdGN1X2VuYWJsZV9yZWdzKGh3KTsKKworCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyh0Y3VfY2xrLT50Y3UtPm1hcCwgaW5mby0+dGNzcl9yZWcsCisJCQkJIFRDVV9UQ1NSX1BBUkVOVF9DTE9DS19NQVNLLCBCSVQoaWR4KSk7CisJV0FSTl9PTkNFKHJldCA8IDAsICJVbmFibGUgdG8gdXBkYXRlIFRDU1IgJWQiLCB0Y3VfY2xrLT5pZHgpOworCisJaWYgKCF3YXNfZW5hYmxlZCkKKwkJaW5nZW5pY190Y3VfZGlzYWJsZV9yZWdzKGh3KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbmdlbmljX3RjdV9yZWNhbGNfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKKwkJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKK3sKKwlzdHJ1Y3QgaW5nZW5pY190Y3VfY2xrICp0Y3VfY2xrID0gdG9fdGN1X2Nsayhodyk7CisJY29uc3Qgc3RydWN0IGluZ2VuaWNfdGN1X2Nsa19pbmZvICppbmZvID0gdGN1X2Nsay0+aW5mbzsKKwl1bnNpZ25lZCBpbnQgcHJlc2NhbGU7CisJaW50IHJldDsKKworCXJldCA9IHJlZ21hcF9yZWFkKHRjdV9jbGstPnRjdS0+bWFwLCBpbmZvLT50Y3NyX3JlZywgJnByZXNjYWxlKTsKKwlXQVJOX09OQ0UocmV0IDwgMCwgIlVuYWJsZSB0byByZWFkIFRDU1IgJWQiLCB0Y3VfY2xrLT5pZHgpOworCisJcHJlc2NhbGUgPSAocHJlc2NhbGUgJiBUQ1VfVENTUl9QUkVTQ0FMRV9NQVNLKSA+PiBUQ1VfVENTUl9QUkVTQ0FMRV9MU0I7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgPj4gKHByZXNjYWxlICogMik7Cit9CisKK3N0YXRpYyB1OCBpbmdlbmljX3RjdV9nZXRfcHJlc2NhbGUodW5zaWduZWQgbG9uZyByYXRlLCB1bnNpZ25lZCBsb25nIHJlcV9yYXRlKQoreworCXU4IHByZXNjYWxlOworCisJZm9yIChwcmVzY2FsZSA9IDA7IHByZXNjYWxlIDwgNTsgcHJlc2NhbGUrKykKKwkJaWYgKChyYXRlID4+IChwcmVzY2FsZSAqIDIpKSA8PSByZXFfcmF0ZSkKKwkJCXJldHVybiBwcmVzY2FsZTsKKworCXJldHVybiA1OyAvKiAvMTAyNCBkaXZpZGVyICovCit9CisKK3N0YXRpYyBsb25nIGluZ2VuaWNfdGN1X3JvdW5kX3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmVxX3JhdGUsCisJCXVuc2lnbmVkIGxvbmcgKnBhcmVudF9yYXRlKQoreworCXVuc2lnbmVkIGxvbmcgcmF0ZSA9ICpwYXJlbnRfcmF0ZTsKKwl1OCBwcmVzY2FsZTsKKworCWlmIChyZXFfcmF0ZSA+IHJhdGUpCisJCXJldHVybiAtRUlOVkFMOworCisJcHJlc2NhbGUgPSBpbmdlbmljX3RjdV9nZXRfcHJlc2NhbGUocmF0ZSwgcmVxX3JhdGUpOworCisJcmV0dXJuIHJhdGUgPj4gKHByZXNjYWxlICogMik7Cit9CisKK3N0YXRpYyBpbnQgaW5nZW5pY190Y3Vfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmVxX3JhdGUsCisJCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpCit7CisJc3RydWN0IGluZ2VuaWNfdGN1X2NsayAqdGN1X2NsayA9IHRvX3RjdV9jbGsoaHcpOworCWNvbnN0IHN0cnVjdCBpbmdlbmljX3RjdV9jbGtfaW5mbyAqaW5mbyA9IHRjdV9jbGstPmluZm87CisJdTggcHJlc2NhbGUgPSBpbmdlbmljX3RjdV9nZXRfcHJlc2NhbGUocGFyZW50X3JhdGUsIHJlcV9yYXRlKTsKKwlib29sIHdhc19lbmFibGVkOworCWludCByZXQ7CisKKwl3YXNfZW5hYmxlZCA9IGluZ2VuaWNfdGN1X2VuYWJsZV9yZWdzKGh3KTsKKworCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyh0Y3VfY2xrLT50Y3UtPm1hcCwgaW5mby0+dGNzcl9yZWcsCisJCQkJIFRDVV9UQ1NSX1BSRVNDQUxFX01BU0ssCisJCQkJIHByZXNjYWxlIDw8IFRDVV9UQ1NSX1BSRVNDQUxFX0xTQik7CisJV0FSTl9PTkNFKHJldCA8IDAsICJVbmFibGUgdG8gdXBkYXRlIFRDU1IgJWQiLCB0Y3VfY2xrLT5pZHgpOworCisJaWYgKCF3YXNfZW5hYmxlZCkKKwkJaW5nZW5pY190Y3VfZGlzYWJsZV9yZWdzKGh3KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgaW5nZW5pY190Y3VfY2xrX29wcyA9IHsKKwkuZ2V0X3BhcmVudAk9IGluZ2VuaWNfdGN1X2dldF9wYXJlbnQsCisJLnNldF9wYXJlbnQJPSBpbmdlbmljX3RjdV9zZXRfcGFyZW50LAorCisJLnJlY2FsY19yYXRlCT0gaW5nZW5pY190Y3VfcmVjYWxjX3JhdGUsCisJLnJvdW5kX3JhdGUJPSBpbmdlbmljX3RjdV9yb3VuZF9yYXRlLAorCS5zZXRfcmF0ZQk9IGluZ2VuaWNfdGN1X3NldF9yYXRlLAorCisJLmVuYWJsZQkJPSBpbmdlbmljX3RjdV9lbmFibGUsCisJLmRpc2FibGUJPSBpbmdlbmljX3RjdV9kaXNhYmxlLAorCS5pc19lbmFibGVkCT0gaW5nZW5pY190Y3VfaXNfZW5hYmxlZCwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW5nZW5pY190Y3VfdGltZXJfcGFyZW50c1tdID0geworCVtUQ1VfUEFSRU5UX1BDTEtdID0gInBjbGsiLAorCVtUQ1VfUEFSRU5UX1JUQ10gID0gInJ0YyIsCisJW1RDVV9QQVJFTlRfRVhUXSAgPSAiZXh0IiwKK307CisKKyNkZWZpbmUgREVGX1RJTUVSKF9uYW1lLCBfZ2F0ZV9iaXQsIF90Y3NyKQkJCQlcCisJewkJCQkJCQkJXAorCQkuaW5pdF9kYXRhID0gewkJCQkJCVwKKwkJCS5uYW1lID0gX25hbWUsCQkJCQlcCisJCQkucGFyZW50X25hbWVzID0gaW5nZW5pY190Y3VfdGltZXJfcGFyZW50cywJXAorCQkJLm51bV9wYXJlbnRzID0gQVJSQVlfU0laRShpbmdlbmljX3RjdV90aW1lcl9wYXJlbnRzKSxcCisJCQkub3BzID0gJmluZ2VuaWNfdGN1X2Nsa19vcHMsCQkJXAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1VOR0FURSwJCQlcCisJCX0sCQkJCQkJCVwKKwkJLmdhdGVfYml0ID0gX2dhdGVfYml0LAkJCQkJXAorCQkudGNzcl9yZWcgPSBfdGNzciwJCQkJCVwKKwl9CitzdGF0aWMgY29uc3Qgc3RydWN0IGluZ2VuaWNfdGN1X2Nsa19pbmZvIGluZ2VuaWNfdGN1X2Nsa19pbmZvW10gPSB7CisJW1RDVV9DTEtfVElNRVIwXSA9IERFRl9USU1FUigidGltZXIwIiwgMCwgVENVX1JFR19UQ1NSYygwKSksCisJW1RDVV9DTEtfVElNRVIxXSA9IERFRl9USU1FUigidGltZXIxIiwgMSwgVENVX1JFR19UQ1NSYygxKSksCisJW1RDVV9DTEtfVElNRVIyXSA9IERFRl9USU1FUigidGltZXIyIiwgMiwgVENVX1JFR19UQ1NSYygyKSksCisJW1RDVV9DTEtfVElNRVIzXSA9IERFRl9USU1FUigidGltZXIzIiwgMywgVENVX1JFR19UQ1NSYygzKSksCisJW1RDVV9DTEtfVElNRVI0XSA9IERFRl9USU1FUigidGltZXI0IiwgNCwgVENVX1JFR19UQ1NSYyg0KSksCisJW1RDVV9DTEtfVElNRVI1XSA9IERFRl9USU1FUigidGltZXI1IiwgNSwgVENVX1JFR19UQ1NSYyg1KSksCisJW1RDVV9DTEtfVElNRVI2XSA9IERFRl9USU1FUigidGltZXI2IiwgNiwgVENVX1JFR19UQ1NSYyg2KSksCisJW1RDVV9DTEtfVElNRVI3XSA9IERFRl9USU1FUigidGltZXI3IiwgNywgVENVX1JFR19UQ1NSYyg3KSksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGluZ2VuaWNfdGN1X2Nsa19pbmZvIGluZ2VuaWNfdGN1X3dhdGNoZG9nX2Nsa19pbmZvID0KKwkJCQkJIERFRl9USU1FUigid2R0IiwgMTYsIFRDVV9SRUdfV0RUX1RDU1IpOworc3RhdGljIGNvbnN0IHN0cnVjdCBpbmdlbmljX3RjdV9jbGtfaW5mbyBpbmdlbmljX3RjdV9vc3RfY2xrX2luZm8gPQorCQkJCQkgREVGX1RJTUVSKCJvc3QiLCAxNSwgVENVX1JFR19PU1RfVENTUik7CisjdW5kZWYgREVGX1RJTUVSCisKK3N0YXRpYyBpbnQgX19pbml0IGluZ2VuaWNfdGN1X3JlZ2lzdGVyX2Nsb2NrKHN0cnVjdCBpbmdlbmljX3RjdSAqdGN1LAorCQkJdW5zaWduZWQgaW50IGlkeCwgZW51bSB0Y3VfY2xrX3BhcmVudCBwYXJlbnQsCisJCQljb25zdCBzdHJ1Y3QgaW5nZW5pY190Y3VfY2xrX2luZm8gKmluZm8sCisJCQlzdHJ1Y3QgY2xrX2h3X29uZWNlbGxfZGF0YSAqY2xvY2tzKQoreworCXN0cnVjdCBpbmdlbmljX3RjdV9jbGsgKnRjdV9jbGs7CisJaW50IGVycjsKKworCXRjdV9jbGsgPSBremFsbG9jKHNpemVvZigqdGN1X2NsayksIEdGUF9LRVJORUwpOworCWlmICghdGN1X2NsaykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwl0Y3VfY2xrLT5ody5pbml0ID0gJmluZm8tPmluaXRfZGF0YTsKKwl0Y3VfY2xrLT5pZHggPSBpZHg7CisJdGN1X2Nsay0+aW5mbyA9IGluZm87CisJdGN1X2Nsay0+dGN1ID0gdGN1OworCisJLyogUmVzZXQgY2hhbm5lbCBhbmQgY2xvY2sgZGl2aWRlciwgc2V0IGRlZmF1bHQgcGFyZW50ICovCisJaW5nZW5pY190Y3VfZW5hYmxlX3JlZ3MoJnRjdV9jbGstPmh3KTsKKwlyZWdtYXBfdXBkYXRlX2JpdHModGN1LT5tYXAsIGluZm8tPnRjc3JfcmVnLCAweGZmZmYsIEJJVChwYXJlbnQpKTsKKwlpbmdlbmljX3RjdV9kaXNhYmxlX3JlZ3MoJnRjdV9jbGstPmh3KTsKKworCWVyciA9IGNsa19od19yZWdpc3RlcihOVUxMLCAmdGN1X2Nsay0+aHcpOworCWlmIChlcnIpIHsKKwkJa2ZyZWUodGN1X2Nsayk7CisJCXJldHVybiBlcnI7CisJfQorCisJY2xvY2tzLT5od3NbaWR4XSA9ICZ0Y3VfY2xrLT5odzsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGluZ2VuaWNfc29jX2luZm8gano0NzQwX3NvY19pbmZvID0geworCS5udW1fY2hhbm5lbHMgPSA4LAorCS5oYXNfb3N0ID0gZmFsc2UsCisJLmhhc190Y3VfY2xrID0gdHJ1ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW5nZW5pY19zb2NfaW5mbyBqejQ3MjViX3NvY19pbmZvID0geworCS5udW1fY2hhbm5lbHMgPSA2LAorCS5oYXNfb3N0ID0gdHJ1ZSwKKwkuaGFzX3RjdV9jbGsgPSB0cnVlLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbmdlbmljX3NvY19pbmZvIGp6NDc3MF9zb2NfaW5mbyA9IHsKKwkubnVtX2NoYW5uZWxzID0gOCwKKwkuaGFzX29zdCA9IHRydWUsCisJLmhhc190Y3VfY2xrID0gZmFsc2UsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbmdlbmljX3RjdV9vZl9tYXRjaFtdIF9faW5pdGNvbnN0ID0geworCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtdGN1IiwgLmRhdGEgPSAmano0NzQwX3NvY19pbmZvLCB9LAorCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3MjViLXRjdSIsIC5kYXRhID0gJmp6NDcyNWJfc29jX2luZm8sIH0sCisJeyAuY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDc3MC10Y3UiLCAuZGF0YSA9ICZqejQ3NzBfc29jX2luZm8sIH0sCisJeyAvKiBzZW50aW5lbCAqLyB9Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBpbmdlbmljX3RjdV9wcm9iZShzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQoreworCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKmlkID0gb2ZfbWF0Y2hfbm9kZShpbmdlbmljX3RjdV9vZl9tYXRjaCwgbnApOworCXN0cnVjdCBpbmdlbmljX3RjdSAqdGN1OworCXN0cnVjdCByZWdtYXAgKm1hcDsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0OworCisJbWFwID0gZGV2aWNlX25vZGVfdG9fcmVnbWFwKG5wKTsKKwlpZiAoSVNfRVJSKG1hcCkpCisJCXJldHVybiBQVFJfRVJSKG1hcCk7CisKKwl0Y3UgPSBremFsbG9jKHNpemVvZigqdGN1KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF0Y3UpCisJCXJldHVybiAtRU5PTUVNOworCisJdGN1LT5tYXAgPSBtYXA7CisJdGN1LT5zb2NfaW5mbyA9IGlkLT5kYXRhOworCisJaWYgKHRjdS0+c29jX2luZm8tPmhhc190Y3VfY2xrKSB7CisJCXRjdS0+Y2xrID0gb2ZfY2xrX2dldF9ieV9uYW1lKG5wLCAidGN1Iik7CisJCWlmIChJU19FUlIodGN1LT5jbGspKSB7CisJCQlyZXQgPSBQVFJfRVJSKHRjdS0+Y2xrKTsKKwkJCXByX2NyaXQoIkNhbm5vdCBnZXQgVENVIGNsb2NrXG4iKTsKKwkJCWdvdG8gZXJyX2ZyZWVfdGN1OworCQl9CisKKwkJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHRjdS0+Y2xrKTsKKwkJaWYgKHJldCkgeworCQkJcHJfY3JpdCgiVW5hYmxlIHRvIGVuYWJsZSBUQ1UgY2xvY2tcbiIpOworCQkJZ290byBlcnJfcHV0X2NsazsKKwkJfQorCX0KKworCXRjdS0+Y2xvY2tzID0ga3phbGxvYyhzaXplb2YoKnRjdS0+Y2xvY2tzKSArCisJCQkgICAgICBzaXplb2YoKnRjdS0+Y2xvY2tzLT5od3MpICogVENVX0NMS19DT1VOVCwKKwkJCSAgICAgIEdGUF9LRVJORUwpOworCWlmICghdGN1LT5jbG9ja3MpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfY2xrX2Rpc2FibGU7CisJfQorCisJdGN1LT5jbG9ja3MtPm51bSA9IFRDVV9DTEtfQ09VTlQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgdGN1LT5zb2NfaW5mby0+bnVtX2NoYW5uZWxzOyBpKyspIHsKKwkJcmV0ID0gaW5nZW5pY190Y3VfcmVnaXN0ZXJfY2xvY2sodGN1LCBpLCBUQ1VfUEFSRU5UX0VYVCwKKwkJCQkJCSAmaW5nZW5pY190Y3VfY2xrX2luZm9baV0sCisJCQkJCQkgdGN1LT5jbG9ja3MpOworCQlpZiAocmV0KSB7CisJCQlwcl9jcml0KCJjYW5ub3QgcmVnaXN0ZXIgY2xvY2sgJWRcbiIsIGkpOworCQkJZ290byBlcnJfdW5yZWdpc3Rlcl90aW1lcl9jbG9ja3M7CisJCX0KKwl9CisKKwkvKgorCSAqIFdlIHNldCBFWFQgYXMgdGhlIGRlZmF1bHQgcGFyZW50IGNsb2NrIGZvciBhbGwgdGhlIFRDVSBjbG9ja3MKKwkgKiBleGNlcHQgZm9yIHRoZSB3YXRjaGRvZyBvbmUsIHdoZXJlIHdlIHNldCB0aGUgUlRDIGNsb2NrIGFzIHRoZQorCSAqIHBhcmVudC4gU2luY2UgdGhlIEVYVCBhbmQgUENMSyBhcmUgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgUlRDIGNsb2NrLAorCSAqIHRoZSB3YXRjaGRvZyB3b3VsZCBraWNrIGFmdGVyIGEgbWF4aW11bSB0aW1lIG9mIDVzLCBhbmQgd2UgbWlnaHQKKwkgKiB3YW50IGEgc2xvd2VyIGtpY2tpbmcgdGltZS4KKwkgKi8KKwlyZXQgPSBpbmdlbmljX3RjdV9yZWdpc3Rlcl9jbG9jayh0Y3UsIFRDVV9DTEtfV0RULCBUQ1VfUEFSRU5UX1JUQywKKwkJCQkJICZpbmdlbmljX3RjdV93YXRjaGRvZ19jbGtfaW5mbywKKwkJCQkJIHRjdS0+Y2xvY2tzKTsKKwlpZiAocmV0KSB7CisJCXByX2NyaXQoImNhbm5vdCByZWdpc3RlciB3YXRjaGRvZyBjbG9ja1xuIik7CisJCWdvdG8gZXJyX3VucmVnaXN0ZXJfdGltZXJfY2xvY2tzOworCX0KKworCWlmICh0Y3UtPnNvY19pbmZvLT5oYXNfb3N0KSB7CisJCXJldCA9IGluZ2VuaWNfdGN1X3JlZ2lzdGVyX2Nsb2NrKHRjdSwgVENVX0NMS19PU1QsCisJCQkJCQkgVENVX1BBUkVOVF9FWFQsCisJCQkJCQkgJmluZ2VuaWNfdGN1X29zdF9jbGtfaW5mbywKKwkJCQkJCSB0Y3UtPmNsb2Nrcyk7CisJCWlmIChyZXQpIHsKKwkJCXByX2NyaXQoImNhbm5vdCByZWdpc3RlciBvc3QgY2xvY2tcbiIpOworCQkJZ290byBlcnJfdW5yZWdpc3Rlcl93YXRjaGRvZ19jbG9jazsKKwkJfQorCX0KKworCXJldCA9IG9mX2Nsa19hZGRfaHdfcHJvdmlkZXIobnAsIG9mX2Nsa19od19vbmVjZWxsX2dldCwgdGN1LT5jbG9ja3MpOworCWlmIChyZXQpIHsKKwkJcHJfY3JpdCgiY2Fubm90IGFkZCBPRiBjbG9jayBwcm92aWRlclxuIik7CisJCWdvdG8gZXJyX3VucmVnaXN0ZXJfb3N0X2Nsb2NrOworCX0KKworCWluZ2VuaWNfdGN1ID0gdGN1OworCisJcmV0dXJuIDA7CisKK2Vycl91bnJlZ2lzdGVyX29zdF9jbG9jazoKKwlpZiAodGN1LT5zb2NfaW5mby0+aGFzX29zdCkKKwkJY2xrX2h3X3VucmVnaXN0ZXIodGN1LT5jbG9ja3MtPmh3c1tpICsgMV0pOworZXJyX3VucmVnaXN0ZXJfd2F0Y2hkb2dfY2xvY2s6CisJY2xrX2h3X3VucmVnaXN0ZXIodGN1LT5jbG9ja3MtPmh3c1tpXSk7CitlcnJfdW5yZWdpc3Rlcl90aW1lcl9jbG9ja3M6CisJZm9yIChpID0gMDsgaSA8IHRjdS0+Y2xvY2tzLT5udW07IGkrKykKKwkJaWYgKHRjdS0+Y2xvY2tzLT5od3NbaV0pCisJCQljbGtfaHdfdW5yZWdpc3Rlcih0Y3UtPmNsb2Nrcy0+aHdzW2ldKTsKKwlrZnJlZSh0Y3UtPmNsb2Nrcyk7CitlcnJfY2xrX2Rpc2FibGU6CisJaWYgKHRjdS0+c29jX2luZm8tPmhhc190Y3VfY2xrKQorCQljbGtfZGlzYWJsZV91bnByZXBhcmUodGN1LT5jbGspOworZXJyX3B1dF9jbGs6CisJaWYgKHRjdS0+c29jX2luZm8tPmhhc190Y3VfY2xrKQorCQljbGtfcHV0KHRjdS0+Y2xrKTsKK2Vycl9mcmVlX3RjdToKKwlrZnJlZSh0Y3UpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgdGN1X3BtX3N1c3BlbmQodm9pZCkKK3sKKwlzdHJ1Y3QgaW5nZW5pY190Y3UgKnRjdSA9IGluZ2VuaWNfdGN1OworCisJaWYgKHRjdS0+Y2xrKQorCQljbGtfZGlzYWJsZSh0Y3UtPmNsayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQgdGN1X3BtX3Jlc3VtZSh2b2lkKQoreworCXN0cnVjdCBpbmdlbmljX3RjdSAqdGN1ID0gaW5nZW5pY190Y3U7CisKKwlpZiAodGN1LT5jbGspCisJCWNsa19lbmFibGUodGN1LT5jbGspOworfQorCitzdGF0aWMgc3RydWN0IHN5c2NvcmVfb3BzIF9fbWF5YmVfdW51c2VkIHRjdV9wbV9vcHMgPSB7CisJLnN1c3BlbmQgPSB0Y3VfcG1fc3VzcGVuZCwKKwkucmVzdW1lID0gdGN1X3BtX3Jlc3VtZSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpbmdlbmljX3RjdV9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCit7CisJaW50IHJldCA9IGluZ2VuaWNfdGN1X3Byb2JlKG5wKTsKKworCWlmIChyZXQpCisJCXByX2NyaXQoIkZhaWxlZCB0byBpbml0aWFsaXplIFRDVSBjbG9ja3M6ICVkXG4iLCByZXQpOworCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BNX1NMRUVQKSkKKwkJcmVnaXN0ZXJfc3lzY29yZV9vcHMoJnRjdV9wbV9vcHMpOworfQorCitDTEtfT0ZfREVDTEFSRV9EUklWRVIoano0NzQwX2NndSwgImluZ2VuaWMsano0NzQwLXRjdSIsIGluZ2VuaWNfdGN1X2luaXQpOworQ0xLX09GX0RFQ0xBUkVfRFJJVkVSKGp6NDcyNWJfY2d1LCAiaW5nZW5pYyxqejQ3MjViLXRjdSIsIGluZ2VuaWNfdGN1X2luaXQpOworQ0xLX09GX0RFQ0xBUkVfRFJJVkVSKGp6NDc3MF9jZ3UsICJpbmdlbmljLGp6NDc3MC10Y3UiLCBpbmdlbmljX3RjdV9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL0tjb25maWcgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9LY29uZmlnCmluZGV4IGNlM2Q5YjMuLjdlZmMzNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL0tjb25maWcKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvS2NvbmZpZwpAQCAtMTE3LDYgKzExNyw2MiBAQAogCS0tLWhlbHAtLS0KIAkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1lZGlhVGVrIE1UMjcxMiB2ZW5jc3lzIGNsb2Nrcy4KIAorY29uZmlnIENPTU1PTl9DTEtfTVQ2Nzc5CisJYm9vbCAiQ2xvY2sgZHJpdmVyIGZvciBNZWRpYVRlayBNVDY3NzkiCisJZGVwZW5kcyBvbiAoQVJDSF9NRURJQVRFSyAmJiBBUk02NCkgfHwgQ09NUElMRV9URVNUCisJc2VsZWN0IENPTU1PTl9DTEtfTUVESUFURUsKKwlkZWZhdWx0IEFSQ0hfTUVESUFURUsgJiYgQVJNNjQKKwloZWxwCisJICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3NzkgYmFzaWMgY2xvY2tzLgorCitjb25maWcgQ09NTU9OX0NMS19NVDY3NzlfTU1TWVMKKwlib29sICJDbG9jayBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNjc3OSBtbXN5cyIKKwlkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ2Nzc5CisJaGVscAorCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWVkaWFUZWsgTVQ2Nzc5IG1tc3lzIGNsb2Nrcy4KKworY29uZmlnIENPTU1PTl9DTEtfTVQ2Nzc5X0lNR1NZUworCWJvb2wgIkNsb2NrIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ2Nzc5IGltZ3N5cyIKKwlkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ2Nzc5CisJaGVscAorCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWVkaWFUZWsgTVQ2Nzc5IGltZ3N5cyBjbG9ja3MuCisKK2NvbmZpZyBDT01NT05fQ0xLX01UNjc3OV9JUEVTWVMKKwlib29sICJDbG9jayBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNjc3OSBpcGVzeXMiCisJZGVwZW5kcyBvbiBDT01NT05fQ0xLX01UNjc3OQorCWhlbHAKKwkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1lZGlhVGVrIE1UNjc3OSBpcGVzeXMgY2xvY2tzLgorCitjb25maWcgQ09NTU9OX0NMS19NVDY3NzlfQ0FNU1lTCisJYm9vbCAiQ2xvY2sgZHJpdmVyIGZvciBNZWRpYVRlayBNVDY3NzkgY2Ftc3lzIgorCWRlcGVuZHMgb24gQ09NTU9OX0NMS19NVDY3NzkKKwloZWxwCisJICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3NzkgY2Ftc3lzIGNsb2Nrcy4KKworY29uZmlnIENPTU1PTl9DTEtfTVQ2Nzc5X1ZERUNTWVMKKwlib29sICJDbG9jayBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNjc3OSB2ZGVjc3lzIgorCWRlcGVuZHMgb24gQ09NTU9OX0NMS19NVDY3NzkKKwloZWxwCisJICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3NzkgdmRlY3N5cyBjbG9ja3MuCisKK2NvbmZpZyBDT01NT05fQ0xLX01UNjc3OV9WRU5DU1lTCisJYm9vbCAiQ2xvY2sgZHJpdmVyIGZvciBNZWRpYVRlayBNVDY3NzkgdmVuY3N5cyIKKwlkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ2Nzc5CisJaGVscAorCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWVkaWFUZWsgTVQ2Nzc5IHZlbmNzeXMgY2xvY2tzLgorCitjb25maWcgQ09NTU9OX0NMS19NVDY3NzlfTUZHQ0ZHCisJYm9vbCAiQ2xvY2sgZHJpdmVyIGZvciBNZWRpYVRlayBNVDY3NzkgbWZnY2ZnIgorCWRlcGVuZHMgb24gQ09NTU9OX0NMS19NVDY3NzkKKwloZWxwCisJICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3NzkgbWZnY2ZnIGNsb2Nrcy4KKworY29uZmlnIENPTU1PTl9DTEtfTVQ2Nzc5X0FVRFNZUworCWJvb2wgIkNsb2NrIGRyaXZlciBmb3IgTWVkaWF0ZWsgTVQ2Nzc5IGF1ZHN5cyIKKwlkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ2Nzc5CisJaGVscAorCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWVkaWF0ZWsgTVQ2Nzc5IGF1ZHN5cyBjbG9ja3MuCisKIGNvbmZpZyBDT01NT05fQ0xLX01UNjc5NwogICAgICAgIGJvb2wgIkNsb2NrIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ2Nzk3IgogICAgICAgIGRlcGVuZHMgb24gKEFSQ0hfTUVESUFURUsgJiYgQVJNNjQpIHx8IENPTVBJTEVfVEVTVApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9NYWtlZmlsZQppbmRleCA2NzJkZTAwLi44Y2RiNzZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9NYWtlZmlsZQpAQCAtMSw2ICsxLDE1IEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiBvYmotJChDT05GSUdfQ09NTU9OX0NMS19NRURJQVRFSykgKz0gY2xrLW10ay5vIGNsay1wbGwubyBjbGstZ2F0ZS5vIGNsay1hcG1peGVkLm8gY2xrLWNwdW11eC5vIHJlc2V0Lm8gY2xrLW11eC5vCiAKK29iai0kKENPTkZJR19DT01NT05fQ0xLX01UNjc3OSkgKz0gY2xrLW10Njc3OS5vCitvYmotJChDT05GSUdfQ09NTU9OX0NMS19NVDY3NzlfTU1TWVMpICs9IGNsay1tdDY3NzktbW0ubworb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ2Nzc5X0lNR1NZUykgKz0gY2xrLW10Njc3OS1pbWcubworb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ2Nzc5X0lQRVNZUykgKz0gY2xrLW10Njc3OS1pcGUubworb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ2Nzc5X0NBTVNZUykgKz0gY2xrLW10Njc3OS1jYW0ubworb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ2Nzc5X1ZERUNTWVMpICs9IGNsay1tdDY3NzktdmRlYy5vCitvYmotJChDT05GSUdfQ09NTU9OX0NMS19NVDY3NzlfVkVOQ1NZUykgKz0gY2xrLW10Njc3OS12ZW5jLm8KK29iai0kKENPTkZJR19DT01NT05fQ0xLX01UNjc3OV9NRkdDRkcpICs9IGNsay1tdDY3NzktbWZnLm8KK29iai0kKENPTkZJR19DT01NT05fQ0xLX01UNjc3OV9BVURTWVMpICs9IGNsay1tdDY3NzktYXVkLm8KIG9iai0kKENPTkZJR19DT01NT05fQ0xLX01UNjc5NykgKz0gY2xrLW10Njc5Ny5vCiBvYmotJChDT05GSUdfQ09NTU9OX0NMS19NVDY3OTdfSU1HU1lTKSArPSBjbGstbXQ2Nzk3LWltZy5vCiBvYmotJChDT05GSUdfQ09NTU9OX0NMS19NVDY3OTdfTU1TWVMpICs9IGNsay1tdDY3OTctbW0ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLWdhdGUuYyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1nYXRlLmMKaW5kZXggODAzYmYwYS4uYTM1Y2YwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLWdhdGUuYworKysgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstZ2F0ZS5jCkBAIC0xNTAsNyArMTUwLDggQEAgc3RydWN0IGNsayAqbXRrX2Nsa19yZWdpc3Rlcl9nYXRlKAogCQlpbnQgc3RhX29mcywKIAkJdTggYml0LAogCQljb25zdCBzdHJ1Y3QgY2xrX29wcyAqb3BzLAotCQl1bnNpZ25lZCBsb25nIGZsYWdzKQorCQl1bnNpZ25lZCBsb25nIGZsYWdzLAorCQlzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IG10a19jbGtfZ2F0ZSAqY2c7CiAJc3RydWN0IGNsayAqY2xrOwpAQCAtMTc0LDcgKzE3NSw3IEBAIHN0cnVjdCBjbGsgKm10a19jbGtfcmVnaXN0ZXJfZ2F0ZSgKIAogCWNnLT5ody5pbml0ID0gJmluaXQ7CiAKLQljbGsgPSBjbGtfcmVnaXN0ZXIoTlVMTCwgJmNnLT5odyk7CisJY2xrID0gY2xrX3JlZ2lzdGVyKGRldiwgJmNnLT5odyk7CiAJaWYgKElTX0VSUihjbGspKQogCQlrZnJlZShjZyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1nYXRlLmggYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstZ2F0ZS5oCmluZGV4IGUwNWM3MzYuLjNjMzMyOWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1nYXRlLmgKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLWdhdGUuaApAQCAtNDAsNyArNDAsOCBAQCBzdHJ1Y3QgY2xrICptdGtfY2xrX3JlZ2lzdGVyX2dhdGUoCiAJCWludCBzdGFfb2ZzLAogCQl1OCBiaXQsCiAJCWNvbnN0IHN0cnVjdCBjbGtfb3BzICpvcHMsCi0JCXVuc2lnbmVkIGxvbmcgZmxhZ3MpOworCQl1bnNpZ25lZCBsb25nIGZsYWdzLAorCQlzdHJ1Y3QgZGV2aWNlICpkZXYpOwogCiAjZGVmaW5lIEdBVEVfTVRLX0ZMQUdTKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9yZWdzLCBfc2hpZnQsCVwKIAkJCV9vcHMsIF9mbGFncykgewkJCQlcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2Nzc5LWF1ZC5jIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1hdWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWIyMDlmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1hdWQuYwpAQCAtMCwwICsxLDExNyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkgTWVkaWFUZWsgSW5jLgorICogQXV0aG9yOiBXZW5kZWxsIExpbiA8d2VuZGVsbC5saW5AbWVkaWF0ZWsuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgImNsay1tdGsuaCIKKyNpbmNsdWRlICJjbGstZ2F0ZS5oIgorCisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svbXQ2Nzc5LWNsay5oPgorCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgYXVkaW8wX2NnX3JlZ3MgPSB7CisJLnNldF9vZnMgPSAweDAsCisJLmNscl9vZnMgPSAweDAsCisJLnN0YV9vZnMgPSAweDAsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgYXVkaW8xX2NnX3JlZ3MgPSB7CisJLnNldF9vZnMgPSAweDQsCisJLmNscl9vZnMgPSAweDQsCisJLnN0YV9vZnMgPSAweDQsCit9OworCisjZGVmaW5lIEdBVEVfQVVESU8wKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkJCVwKKwlHQVRFX01USyhfaWQsIF9uYW1lLCBfcGFyZW50LCAmYXVkaW8wX2NnX3JlZ3MsIF9zaGlmdCwJXAorCQkmbXRrX2Nsa19nYXRlX29wc19ub19zZXRjbHIpCisjZGVmaW5lIEdBVEVfQVVESU8xKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkJCVwKKwlHQVRFX01USyhfaWQsIF9uYW1lLCBfcGFyZW50LCAmYXVkaW8xX2NnX3JlZ3MsIF9zaGlmdCwJXAorCQkmbXRrX2Nsa19nYXRlX29wc19ub19zZXRjbHIpCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGUgYXVkaW9fY2xrc1tdID0geworCS8qIEFVRElPMCAqLworCUdBVEVfQVVESU8wKENMS19BVURfQUZFLCAiYXVkX2FmZSIsICJhdWRpb19zZWwiLCAyKSwKKwlHQVRFX0FVRElPMChDTEtfQVVEXzIyTSwgImF1ZF8yMm0iLCAiYXVkX2VuZzFfc2VsIiwgOCksCisJR0FURV9BVURJTzAoQ0xLX0FVRF8yNE0sICJhdWRfMjRtIiwgImF1ZF9lbmcyX3NlbCIsIDkpLAorCUdBVEVfQVVESU8wKENMS19BVURfQVBMTDJfVFVORVIsICJhdWRfYXBsbDJfdHVuZXIiLAorCQkgICAgImF1ZF9lbmcyX3NlbCIsIDE4KSwKKwlHQVRFX0FVRElPMChDTEtfQVVEX0FQTExfVFVORVIsICJhdWRfYXBsbF90dW5lciIsCisJCSAgICAiYXVkX2VuZzFfc2VsIiwgMTkpLAorCUdBVEVfQVVESU8wKENMS19BVURfVERNLCAiYXVkX3RkbSIsICJhdWRfZW5nMV9zZWwiLCAyMCksCisJR0FURV9BVURJTzAoQ0xLX0FVRF9BREMsICJhdWRfYWRjIiwgImF1ZGlvX3NlbCIsIDI0KSwKKwlHQVRFX0FVRElPMChDTEtfQVVEX0RBQywgImF1ZF9kYWMiLCAiYXVkaW9fc2VsIiwgMjUpLAorCUdBVEVfQVVESU8wKENMS19BVURfREFDX1BSRURJUywgImF1ZF9kYWNfcHJlZGlzIiwKKwkJICAgICJhdWRpb19zZWwiLCAyNiksCisJR0FURV9BVURJTzAoQ0xLX0FVRF9UTUwsICJhdWRfdG1sIiwgImF1ZGlvX3NlbCIsIDI3KSwKKwlHQVRFX0FVRElPMChDTEtfQVVEX05MRSwgImF1ZF9ubGUiLCAiYXVkaW9fc2VsIiwgMjgpLAorCS8qIEFVRElPMSAqLworCUdBVEVfQVVESU8xKENMS19BVURfSTJTMV9CQ0xLX1NXLCAiYXVkX2kyczFfYmNsayIsCisJCSAgICAiYXVkaW9fc2VsIiwgNCksCisJR0FURV9BVURJTzEoQ0xLX0FVRF9JMlMyX0JDTEtfU1csICJhdWRfaTJzMl9iY2xrIiwKKwkJICAgICJhdWRpb19zZWwiLCA1KSwKKwlHQVRFX0FVRElPMShDTEtfQVVEX0kyUzNfQkNMS19TVywgImF1ZF9pMnMzX2JjbGsiLAorCQkgICAgImF1ZGlvX3NlbCIsIDYpLAorCUdBVEVfQVVESU8xKENMS19BVURfSTJTNF9CQ0xLX1NXLCAiYXVkX2kyczRfYmNsayIsCisJCSAgICAiYXVkaW9fc2VsIiwgNyksCisJR0FURV9BVURJTzEoQ0xLX0FVRF9JMlM1X0JDTEtfU1csICJhdWRfaTJzNV9iY2xrIiwKKwkJICAgICJhdWRpb19zZWwiLCA4KSwKKwlHQVRFX0FVRElPMShDTEtfQVVEX0NPTk5fSTJTX0FTUkMsICJhdWRfY29ubl9pMnMiLAorCQkgICAgImF1ZGlvX3NlbCIsIDEyKSwKKwlHQVRFX0FVRElPMShDTEtfQVVEX0dFTkVSQUwxX0FTUkMsICJhdWRfZ2VuZXJhbDEiLAorCQkgICAgImF1ZGlvX3NlbCIsIDEzKSwKKwlHQVRFX0FVRElPMShDTEtfQVVEX0dFTkVSQUwyX0FTUkMsICJhdWRfZ2VuZXJhbDIiLAorCQkgICAgImF1ZGlvX3NlbCIsIDE0KSwKKwlHQVRFX0FVRElPMShDTEtfQVVEX0RBQ19ISVJFUywgImF1ZF9kYWNfaGlyZXMiLAorCQkgICAgImF1ZGlvX2hfc2VsIiwgMTUpLAorCUdBVEVfQVVESU8xKENMS19BVURfQURDX0hJUkVTLCAiYXVkX2FkY19oaXJlcyIsCisJCSAgICAiYXVkaW9faF9zZWwiLCAxNiksCisJR0FURV9BVURJTzEoQ0xLX0FVRF9BRENfSElSRVNfVE1MLCAiYXVkX2FkY19oaXJlc190bWwiLAorCQkgICAgImF1ZGlvX2hfc2VsIiwgMTcpLAorCUdBVEVfQVVESU8xKENMS19BVURfUEROX0FEREE2X0FEQywgImF1ZF9wZG5fYWRkYTZfYWRjIiwKKwkJICAgICJhdWRpb19zZWwiLCAyMCksCisJR0FURV9BVURJTzEoQ0xLX0FVRF9BRERBNl9BRENfSElSRVMsICJhdWRfYWRkYTZfYWRjX2hpcmVzIiwKKwkJICAgICJhdWRpb19oX3NlbCIsCisJCSAgICAyMSksCisJR0FURV9BVURJTzEoQ0xLX0FVRF8zUkRfREFDLCAiYXVkXzNyZF9kYWMiLCAiYXVkaW9fc2VsIiwKKwkJICAgIDI4KSwKKwlHQVRFX0FVRElPMShDTEtfQVVEXzNSRF9EQUNfUFJFRElTLCAiYXVkXzNyZF9kYWNfcHJlZGlzIiwKKwkJICAgICJhdWRpb19zZWwiLCAyOSksCisJR0FURV9BVURJTzEoQ0xLX0FVRF8zUkRfREFDX1RNTCwgImF1ZF8zcmRfZGFjX3RtbCIsCisJCSAgICAiYXVkaW9fc2VsIiwgMzApLAorCUdBVEVfQVVESU8xKENMS19BVURfM1JEX0RBQ19ISVJFUywgImF1ZF8zcmRfZGFjX2hpcmVzIiwKKwkJICAgICJhdWRpb19oX3NlbCIsIDMxKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX21hdGNoX2Nsa19tdDY3NzlfYXVkW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDY3NzktYXVkaW8iLCB9LAorCXt9Cit9OworCitzdGF0aWMgaW50IGNsa19tdDY3NzlfYXVkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOworCisJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xLX0FVRF9OUl9DTEspOworCisJbXRrX2Nsa19yZWdpc3Rlcl9nYXRlcyhub2RlLCBhdWRpb19jbGtzLCBBUlJBWV9TSVpFKGF1ZGlvX2Nsa3MpLAorCQkJICAgICAgIGNsa19kYXRhKTsKKworCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2xrX210Njc3OV9hdWRfZHJ2ID0geworCS5wcm9iZSA9IGNsa19tdDY3NzlfYXVkX3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImNsay1tdDY3NzktYXVkIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210Njc3OV9hdWQsCisJfSwKK307CisKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGNsa19tdDY3NzlfYXVkX2Rydik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2Nzc5LWNhbS5jIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1jYW0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDRkNDIwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1jYW0uYwpAQCAtMCwwICsxLDY2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBNZWRpYVRlayBJbmMuCisgKiBBdXRob3I6IFdlbmRlbGwgTGluIDx3ZW5kZWxsLmxpbkBtZWRpYXRlay5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL210Njc3OS1jbGsuaD4KKworI2luY2x1ZGUgImNsay1tdGsuaCIKKyNpbmNsdWRlICJjbGstZ2F0ZS5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgY2FtX2NnX3JlZ3MgPSB7CisJLnNldF9vZnMgPSAweDAwMDQsCisJLmNscl9vZnMgPSAweDAwMDgsCisJLnN0YV9vZnMgPSAweDAwMDAsCit9OworCisjZGVmaW5lIEdBVEVfQ0FNKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkJCQlcCisJR0FURV9NVEsoX2lkLCBfbmFtZSwgX3BhcmVudCwgJmNhbV9jZ19yZWdzLCBfc2hpZnQsCVwKKwkJJm10a19jbGtfZ2F0ZV9vcHNfc2V0Y2xyKQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlIGNhbV9jbGtzW10gPSB7CisJR0FURV9DQU0oQ0xLX0NBTV9MQVJCMTAsICJjYW1zeXNfbGFyYjEwIiwgImNhbV9zZWwiLCAwKSwKKwlHQVRFX0NBTShDTEtfQ0FNX0RGUF9WQUQsICJjYW1zeXNfZGZwX3ZhZCIsICJjYW1fc2VsIiwgMSksCisJR0FURV9DQU0oQ0xLX0NBTV9MQVJCMTEsICJjYW1zeXNfbGFyYjExIiwgImNhbV9zZWwiLCAyKSwKKwlHQVRFX0NBTShDTEtfQ0FNX0xBUkI5LCAiY2Ftc3lzX2xhcmI5IiwgImNhbV9zZWwiLCAzKSwKKwlHQVRFX0NBTShDTEtfQ0FNX0NBTSwgImNhbXN5c19jYW0iLCAiY2FtX3NlbCIsIDYpLAorCUdBVEVfQ0FNKENMS19DQU1fQ0FNVEcsICJjYW1zeXNfY2FtdGciLCAiY2FtX3NlbCIsIDcpLAorCUdBVEVfQ0FNKENMS19DQU1fU0VOSU5GLCAiY2Ftc3lzX3NlbmluZiIsICJjYW1fc2VsIiwgOCksCisJR0FURV9DQU0oQ0xLX0NBTV9DQU1TVjAsICJjYW1zeXNfY2Ftc3YwIiwgImNhbV9zZWwiLCA5KSwKKwlHQVRFX0NBTShDTEtfQ0FNX0NBTVNWMSwgImNhbXN5c19jYW1zdjEiLCAiY2FtX3NlbCIsIDEwKSwKKwlHQVRFX0NBTShDTEtfQ0FNX0NBTVNWMiwgImNhbXN5c19jYW1zdjIiLCAiY2FtX3NlbCIsIDExKSwKKwlHQVRFX0NBTShDTEtfQ0FNX0NBTVNWMywgImNhbXN5c19jYW1zdjMiLCAiY2FtX3NlbCIsIDEyKSwKKwlHQVRFX0NBTShDTEtfQ0FNX0NDVSwgImNhbXN5c19jY3UiLCAiY2FtX3NlbCIsIDEzKSwKKwlHQVRFX0NBTShDTEtfQ0FNX0ZBS0VfRU5HLCAiY2Ftc3lzX2Zha2VfZW5nIiwgImNhbV9zZWwiLCAxNCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tYXRjaF9jbGtfbXQ2Nzc5X2NhbVtdID0geworCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2Nzc5LWNhbXN5cyIsIH0sCisJe30KK307CisKK3N0YXRpYyBpbnQgY2xrX210Njc3OV9jYW1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSAqY2xrX2RhdGE7CisJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7CisKKwljbGtfZGF0YSA9IG10a19hbGxvY19jbGtfZGF0YShDTEtfQ0FNX05SX0NMSyk7CisKKwltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUsIGNhbV9jbGtzLCBBUlJBWV9TSVpFKGNhbV9jbGtzKSwKKwkJCSAgICAgICBjbGtfZGF0YSk7CisKKwlyZXR1cm4gb2ZfY2xrX2FkZF9wcm92aWRlcihub2RlLCBvZl9jbGtfc3JjX29uZWNlbGxfZ2V0LCBjbGtfZGF0YSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGNsa19tdDY3NzlfY2FtX2RydiA9IHsKKwkucHJvYmUgPSBjbGtfbXQ2Nzc5X2NhbV9wcm9iZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJjbGstbXQ2Nzc5LWNhbSIsCisJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX2Nsa19tdDY3NzlfY2FtLAorCX0sCit9OworCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihjbGtfbXQ2Nzc5X2NhbV9kcnYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1pbWcuYyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NzktaW1nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYyOTJhNAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NzktaW1nLmMKQEAgLTAsMCArMSw1OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkgTWVkaWFUZWsgSW5jLgorICogQXV0aG9yOiBXZW5kZWxsIExpbiA8d2VuZGVsbC5saW5AbWVkaWF0ZWsuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9tdDY3NzktY2xrLmg+CisKKyNpbmNsdWRlICJjbGstbXRrLmgiCisjaW5jbHVkZSAiY2xrLWdhdGUuaCIKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZV9yZWdzIGltZ19jZ19yZWdzID0geworCS5zZXRfb2ZzID0gMHgwMDA0LAorCS5jbHJfb2ZzID0gMHgwMDA4LAorCS5zdGFfb2ZzID0gMHgwMDAwLAorfTsKKworI2RlZmluZSBHQVRFX0lNRyhfaWQsIF9uYW1lLCBfcGFyZW50LCBfc2hpZnQpCQkJXAorCUdBVEVfTVRLKF9pZCwgX25hbWUsIF9wYXJlbnQsICZpbWdfY2dfcmVncywgX3NoaWZ0LAlcCisJCSZtdGtfY2xrX2dhdGVfb3BzX3NldGNscikKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZSBpbWdfY2xrc1tdID0geworCUdBVEVfSU1HKENMS19JTUdfTEFSQjUsICJpbWdzeXNfbGFyYjUiLCAiaW1nX3NlbCIsIDApLAorCUdBVEVfSU1HKENMS19JTUdfTEFSQjYsICJpbWdzeXNfbGFyYjYiLCAiaW1nX3NlbCIsIDEpLAorCUdBVEVfSU1HKENMS19JTUdfRElQLCAiaW1nc3lzX2RpcCIsICJpbWdfc2VsIiwgMiksCisJR0FURV9JTUcoQ0xLX0lNR19NRkIsICJpbWdzeXNfbWZiIiwgImltZ19zZWwiLCA2KSwKKwlHQVRFX0lNRyhDTEtfSU1HX1dQRV9BLCAiaW1nc3lzX3dwZV9hIiwgImltZ19zZWwiLCA3KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX21hdGNoX2Nsa19tdDY3NzlfaW1nW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDY3NzktaW1nc3lzIiwgfSwKKwl7fQorfTsKKworc3RhdGljIGludCBjbGtfbXQ2Nzc5X2ltZ19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKKworCWNsa19kYXRhID0gbXRrX2FsbG9jX2Nsa19kYXRhKENMS19JTUdfTlJfQ0xLKTsKKworCW10a19jbGtfcmVnaXN0ZXJfZ2F0ZXMobm9kZSwgaW1nX2Nsa3MsIEFSUkFZX1NJWkUoaW1nX2Nsa3MpLAorCQkJICAgICAgIGNsa19kYXRhKTsKKworCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2xrX210Njc3OV9pbWdfZHJ2ID0geworCS5wcm9iZSA9IGNsa19tdDY3NzlfaW1nX3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImNsay1tdDY3NzktaW1nIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210Njc3OV9pbWcsCisJfSwKK307CisKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGNsa19tdDY3NzlfaW1nX2Rydik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2Nzc5LWlwZS5jIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1pcGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjUxOTA3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1pcGUuYwpAQCAtMCwwICsxLDYwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBNZWRpYVRlayBJbmMuCisgKiBBdXRob3I6IFdlbmRlbGwgTGluIDx3ZW5kZWxsLmxpbkBtZWRpYXRlay5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL210Njc3OS1jbGsuaD4KKworI2luY2x1ZGUgImNsay1tdGsuaCIKKyNpbmNsdWRlICJjbGstZ2F0ZS5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgaXBlX2NnX3JlZ3MgPSB7CisJLnNldF9vZnMgPSAweDAwMDQsCisJLmNscl9vZnMgPSAweDAwMDgsCisJLnN0YV9vZnMgPSAweDAwMDAsCit9OworCisjZGVmaW5lIEdBVEVfSVBFKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkJCQlcCisJR0FURV9NVEsoX2lkLCBfbmFtZSwgX3BhcmVudCwgJmlwZV9jZ19yZWdzLCBfc2hpZnQsCVwKKwkJJm10a19jbGtfZ2F0ZV9vcHNfc2V0Y2xyKQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlIGlwZV9jbGtzW10gPSB7CisJR0FURV9JUEUoQ0xLX0lQRV9MQVJCNywgImlwZV9sYXJiNyIsICJpcGVfc2VsIiwgMCksCisJR0FURV9JUEUoQ0xLX0lQRV9MQVJCOCwgImlwZV9sYXJiOCIsICJpcGVfc2VsIiwgMSksCisJR0FURV9JUEUoQ0xLX0lQRV9TTUlfU1VCQ09NLCAiaXBlX3NtaV9zdWJjb20iLCAiaXBlX3NlbCIsIDIpLAorCUdBVEVfSVBFKENMS19JUEVfRkQsICJpcGVfZmQiLCAiaXBlX3NlbCIsIDMpLAorCUdBVEVfSVBFKENMS19JUEVfRkUsICJpcGVfZmUiLCAiaXBlX3NlbCIsIDQpLAorCUdBVEVfSVBFKENMS19JUEVfUlNDLCAiaXBlX3JzYyIsICJpcGVfc2VsIiwgNSksCisJR0FURV9JUEUoQ0xLX0lQRV9EUEUsICJpcGVfZHBlIiwgImlwZV9zZWwiLCA2KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX21hdGNoX2Nsa19tdDY3NzlfaXBlW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDY3NzktaXBlc3lzIiwgfSwKKwl7fQorfTsKKworc3RhdGljIGludCBjbGtfbXQ2Nzc5X2lwZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKKworCWNsa19kYXRhID0gbXRrX2FsbG9jX2Nsa19kYXRhKENMS19JUEVfTlJfQ0xLKTsKKworCW10a19jbGtfcmVnaXN0ZXJfZ2F0ZXMobm9kZSwgaXBlX2Nsa3MsIEFSUkFZX1NJWkUoaXBlX2Nsa3MpLAorCQkJICAgICAgIGNsa19kYXRhKTsKKworCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2xrX210Njc3OV9pcGVfZHJ2ID0geworCS5wcm9iZSA9IGNsa19tdDY3NzlfaXBlX3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImNsay1tdDY3NzktaXBlIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210Njc3OV9pcGUsCisJfSwKK307CisKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGNsa19tdDY3NzlfaXBlX2Rydik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2Nzc5LW1mZy5jIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1tZmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmVlMmE4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1tZmcuYwpAQCAtMCwwICsxLDU1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBNZWRpYVRlayBJbmMuCisgKiBBdXRob3I6IFdlbmRlbGwgTGluIDx3ZW5kZWxsLmxpbkBtZWRpYXRlay5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCisjaW5jbHVkZSAiY2xrLW10ay5oIgorI2luY2x1ZGUgImNsay1nYXRlLmgiCisKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9tdDY3NzktY2xrLmg+CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBtZmdfY2dfcmVncyA9IHsKKwkuc2V0X29mcyA9IDB4NCwKKwkuY2xyX29mcyA9IDB4OCwKKwkuc3RhX29mcyA9IDB4MCwKK307CisKKyNkZWZpbmUgR0FURV9NRkcoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQkJCVwKKwlHQVRFX01USyhfaWQsIF9uYW1lLCBfcGFyZW50LCAmbWZnX2NnX3JlZ3MsIF9zaGlmdCwJXAorCQkmbXRrX2Nsa19nYXRlX29wc19zZXRjbHIpCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGUgbWZnX2Nsa3NbXSA9IHsKKwlHQVRFX01GRyhDTEtfTUZHQ0ZHX0JHM0QsICJtZmdfYmczZCIsICJtZmdfc2VsIiwgMCksCit9OworCitzdGF0aWMgaW50IGNsa19tdDY3NzlfbWZnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOworCisJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xLX01GR0NGR19OUl9DTEspOworCisJbXRrX2Nsa19yZWdpc3Rlcl9nYXRlcyhub2RlLCBtZmdfY2xrcywgQVJSQVlfU0laRShtZmdfY2xrcyksCisJCQkgICAgICAgY2xrX2RhdGEpOworCisJcmV0dXJuIG9mX2Nsa19hZGRfcHJvdmlkZXIobm9kZSwgb2ZfY2xrX3NyY19vbmVjZWxsX2dldCwgY2xrX2RhdGEpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tYXRjaF9jbGtfbXQ2Nzc5X21mZ1tdID0geworCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2Nzc5LW1mZ2NmZyIsIH0sCisJe30KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGNsa19tdDY3NzlfbWZnX2RydiA9IHsKKwkucHJvYmUgPSBjbGtfbXQ2Nzc5X21mZ19wcm9iZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJjbGstbXQ2Nzc5LW1mZyIsCisJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX2Nsa19tdDY3NzlfbWZnLAorCX0sCit9OworCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihjbGtfbXQ2Nzc5X21mZ19kcnYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1tbS5jIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1tbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNWZiYjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2Nzc5LW1tLmMKQEAgLTAsMCArMSwxMTMgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE5IE1lZGlhVGVrIEluYy4KKyAqIEF1dGhvcjogV2VuZGVsbCBMaW4gPHdlbmRlbGwubGluQG1lZGlhdGVrLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svbXQ2Nzc5LWNsay5oPgorCisjaW5jbHVkZSAiY2xrLW10ay5oIgorI2luY2x1ZGUgImNsay1nYXRlLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBtbTBfY2dfcmVncyA9IHsKKwkuc2V0X29mcyA9IDB4MDEwNCwKKwkuY2xyX29mcyA9IDB4MDEwOCwKKwkuc3RhX29mcyA9IDB4MDEwMCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBtbTFfY2dfcmVncyA9IHsKKwkuc2V0X29mcyA9IDB4MDExNCwKKwkuY2xyX29mcyA9IDB4MDExOCwKKwkuc3RhX29mcyA9IDB4MDExMCwKK307CisKKyNkZWZpbmUgR0FURV9NTTAoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQkJCVwKKwlHQVRFX01USyhfaWQsIF9uYW1lLCBfcGFyZW50LCAmbW0wX2NnX3JlZ3MsIF9zaGlmdCwJXAorCQkmbXRrX2Nsa19nYXRlX29wc19zZXRjbHIpCisjZGVmaW5lIEdBVEVfTU0xKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkJCQlcCisJR0FURV9NVEsoX2lkLCBfbmFtZSwgX3BhcmVudCwgJm1tMV9jZ19yZWdzLCBfc2hpZnQsCVwKKwkJJm10a19jbGtfZ2F0ZV9vcHNfc2V0Y2xyKQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlIG1tX2Nsa3NbXSA9IHsKKwkvKiBNTTAgKi8KKwlHQVRFX01NMChDTEtfTU1fU01JX0NPTU1PTiwgIm1tX3NtaV9jb21tb24iLCAibW1fc2VsIiwgMCksCisJR0FURV9NTTAoQ0xLX01NX1NNSV9MQVJCMCwgIm1tX3NtaV9sYXJiMCIsICJtbV9zZWwiLCAxKSwKKwlHQVRFX01NMChDTEtfTU1fU01JX0xBUkIxLCAibW1fc21pX2xhcmIxIiwgIm1tX3NlbCIsIDIpLAorCUdBVEVfTU0wKENMS19NTV9HQUxTX0NPTU0wLCAibW1fZ2Fsc19jb21tMCIsICJtbV9zZWwiLCAzKSwKKwlHQVRFX01NMChDTEtfTU1fR0FMU19DT01NMSwgIm1tX2dhbHNfY29tbTEiLCAibW1fc2VsIiwgNCksCisJR0FURV9NTTAoQ0xLX01NX0dBTFNfQ0NVMk1NLCAibW1fZ2Fsc19jY3UybW0iLCAibW1fc2VsIiwgNSksCisJR0FURV9NTTAoQ0xLX01NX0dBTFNfSVBVMTJNTSwgIm1tX2dhbHNfaXB1MTJtbSIsICJtbV9zZWwiLCA2KSwKKwlHQVRFX01NMChDTEtfTU1fR0FMU19JTUcyTU0sICJtbV9nYWxzX2ltZzJtbSIsICJtbV9zZWwiLCA3KSwKKwlHQVRFX01NMChDTEtfTU1fR0FMU19DQU0yTU0sICJtbV9nYWxzX2NhbTJtbSIsICJtbV9zZWwiLCA4KSwKKwlHQVRFX01NMChDTEtfTU1fR0FMU19JUFUyTU0sICJtbV9nYWxzX2lwdTJtbSIsICJtbV9zZWwiLCA5KSwKKwlHQVRFX01NMChDTEtfTU1fTURQX0RMX1RYQ0ssICJtbV9tZHBfZGxfdHhjayIsICJtbV9zZWwiLCAxMCksCisJR0FURV9NTTAoQ0xLX01NX0lQVV9ETF9UWENLLCAibW1faXB1X2RsX3R4Y2siLCAibW1fc2VsIiwgMTEpLAorCUdBVEVfTU0wKENMS19NTV9NRFBfUkRNQTAsICJtbV9tZHBfcmRtYTAiLCAibW1fc2VsIiwgMTIpLAorCUdBVEVfTU0wKENMS19NTV9NRFBfUkRNQTEsICJtbV9tZHBfcmRtYTEiLCAibW1fc2VsIiwgMTMpLAorCUdBVEVfTU0wKENMS19NTV9NRFBfUlNaMCwgIm1tX21kcF9yc3owIiwgIm1tX3NlbCIsIDE0KSwKKwlHQVRFX01NMChDTEtfTU1fTURQX1JTWjEsICJtbV9tZHBfcnN6MSIsICJtbV9zZWwiLCAxNSksCisJR0FURV9NTTAoQ0xLX01NX01EUF9URFNIUCwgIm1tX21kcF90ZHNocCIsICJtbV9zZWwiLCAxNiksCisJR0FURV9NTTAoQ0xLX01NX01EUF9XUk9UMCwgIm1tX21kcF93cm90MCIsICJtbV9zZWwiLCAxNyksCisJR0FURV9NTTAoQ0xLX01NX01EUF9XUk9UMSwgIm1tX21kcF93cm90MSIsICJtbV9zZWwiLCAxOCksCisJR0FURV9NTTAoQ0xLX01NX0ZBS0VfRU5HLCAibW1fZmFrZV9lbmciLCAibW1fc2VsIiwgMTkpLAorCUdBVEVfTU0wKENMS19NTV9ESVNQX09WTDAsICJtbV9kaXNwX292bDAiLCAibW1fc2VsIiwgMjApLAorCUdBVEVfTU0wKENMS19NTV9ESVNQX09WTDBfMkwsICJtbV9kaXNwX292bDBfMmwiLCAibW1fc2VsIiwgMjEpLAorCUdBVEVfTU0wKENMS19NTV9ESVNQX09WTDFfMkwsICJtbV9kaXNwX292bDFfMmwiLCAibW1fc2VsIiwgMjIpLAorCUdBVEVfTU0wKENMS19NTV9ESVNQX1JETUEwLCAibW1fZGlzcF9yZG1hMCIsICJtbV9zZWwiLCAyMyksCisJR0FURV9NTTAoQ0xLX01NX0RJU1BfUkRNQTEsICJtbV9kaXNwX3JkbWExIiwgIm1tX3NlbCIsIDI0KSwKKwlHQVRFX01NMChDTEtfTU1fRElTUF9XRE1BMCwgIm1tX2Rpc3Bfd2RtYTAiLCAibW1fc2VsIiwgMjUpLAorCUdBVEVfTU0wKENMS19NTV9ESVNQX0NPTE9SMCwgIm1tX2Rpc3BfY29sb3IwIiwgIm1tX3NlbCIsIDI2KSwKKwlHQVRFX01NMChDTEtfTU1fRElTUF9DQ09SUjAsICJtbV9kaXNwX2Njb3JyMCIsICJtbV9zZWwiLCAyNyksCisJR0FURV9NTTAoQ0xLX01NX0RJU1BfQUFMMCwgIm1tX2Rpc3BfYWFsMCIsICJtbV9zZWwiLCAyOCksCisJR0FURV9NTTAoQ0xLX01NX0RJU1BfR0FNTUEwLCAibW1fZGlzcF9nYW1tYTAiLCAibW1fc2VsIiwgMjkpLAorCUdBVEVfTU0wKENMS19NTV9ESVNQX0RJVEhFUjAsICJtbV9kaXNwX2RpdGhlcjAiLCAibW1fc2VsIiwgMzApLAorCUdBVEVfTU0wKENMS19NTV9ESVNQX1NQTElULCAibW1fZGlzcF9zcGxpdCIsICJtbV9zZWwiLCAzMSksCisJLyogTU0xICovCisJR0FURV9NTTEoQ0xLX01NX0RTSTBfTU1fQ0ssICJtbV9kc2kwX21tY2siLCAibW1fc2VsIiwgMCksCisJR0FURV9NTTEoQ0xLX01NX0RTSTBfSUZfQ0ssICJtbV9kc2kwX2lmY2siLCAibW1fc2VsIiwgMSksCisJR0FURV9NTTEoQ0xLX01NX0RQSV9NTV9DSywgIm1tX2RwaV9tbWNrIiwgIm1tX3NlbCIsIDIpLAorCUdBVEVfTU0xKENMS19NTV9EUElfSUZfQ0ssICJtbV9kcGlfaWZjayIsICJkcGkwX3NlbCIsIDMpLAorCUdBVEVfTU0xKENMS19NTV9GQUtFX0VORzIsICJtbV9mYWtlX2VuZzIiLCAibW1fc2VsIiwgNCksCisJR0FURV9NTTEoQ0xLX01NX01EUF9ETF9SWF9DSywgIm1tX21kcF9kbF9yeGNrIiwgIm1tX3NlbCIsIDUpLAorCUdBVEVfTU0xKENMS19NTV9JUFVfRExfUlhfQ0ssICJtbV9pcHVfZGxfcnhjayIsICJtbV9zZWwiLCA2KSwKKwlHQVRFX01NMShDTEtfTU1fMjZNLCAibW1fMjZtIiwgImZfZjI2bV9jayIsIDcpLAorCUdBVEVfTU0xKENMS19NTV9NTV9SMlksICJtbV9tbXN5c19yMnkiLCAibW1fc2VsIiwgOCksCisJR0FURV9NTTEoQ0xLX01NX0RJU1BfUlNaLCAibW1fZGlzcF9yc3oiLCAibW1fc2VsIiwgOSksCisJR0FURV9NTTEoQ0xLX01NX01EUF9BQUwsICJtbV9tZHBfYWFsIiwgIm1tX3NlbCIsIDEwKSwKKwlHQVRFX01NMShDTEtfTU1fTURQX0hEUiwgIm1tX21kcF9oZHIiLCAibW1fc2VsIiwgMTEpLAorCUdBVEVfTU0xKENMS19NTV9EQklfTU1fQ0ssICJtbV9kYmlfbW1jayIsICJtbV9zZWwiLCAxMiksCisJR0FURV9NTTEoQ0xLX01NX0RCSV9JRl9DSywgIm1tX2RiaV9pZmNrIiwgImRwaTBfc2VsIiwgMTMpLAorCUdBVEVfTU0xKENMS19NTV9ESVNQX1BPU1RNQVNLMCwgIm1tX2Rpc3BfcG0wIiwgIm1tX3NlbCIsIDE0KSwKKwlHQVRFX01NMShDTEtfTU1fRElTUF9IUlRfQlcsICJtbV9kaXNwX2hydF9idyIsICJtbV9zZWwiLCAxNSksCisJR0FURV9NTTEoQ0xLX01NX0RJU1BfT1ZMX0ZCREMsICJtbV9kaXNwX292bF9mYmRjIiwgIm1tX3NlbCIsIDE2KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX21hdGNoX2Nsa19tdDY3NzlfbW1bXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10Njc3OS1tbXN5cyIsIH0sCisJe30KK307CisKK3N0YXRpYyBpbnQgY2xrX210Njc3OV9tbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKKworCWNsa19kYXRhID0gbXRrX2FsbG9jX2Nsa19kYXRhKENMS19NTV9OUl9DTEspOworCisJbXRrX2Nsa19yZWdpc3Rlcl9nYXRlcyhub2RlLCBtbV9jbGtzLCBBUlJBWV9TSVpFKG1tX2Nsa3MpLAorCQkJICAgICAgIGNsa19kYXRhKTsKKworCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2xrX210Njc3OV9tbV9kcnYgPSB7CisJLnByb2JlID0gY2xrX210Njc3OV9tbV9wcm9iZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJjbGstbXQ2Nzc5LW1tIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210Njc3OV9tbSwKKwl9LAorfTsKKworYnVpbHRpbl9wbGF0Zm9ybV9kcml2ZXIoY2xrX210Njc3OV9tbV9kcnYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS12ZGVjLmMgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2Nzc5LXZkZWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTAwZGEyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS12ZGVjLmMKQEAgLTAsMCArMSw2NyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkgTWVkaWFUZWsgSW5jLgorICogQXV0aG9yOiBXZW5kZWxsIExpbiA8d2VuZGVsbC5saW5AbWVkaWF0ZWsuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgImNsay1tdGsuaCIKKyNpbmNsdWRlICJjbGstZ2F0ZS5oIgorCisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svbXQ2Nzc5LWNsay5oPgorCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgdmRlYzBfY2dfcmVncyA9IHsKKwkuc2V0X29mcyA9IDB4MDAwMCwKKwkuY2xyX29mcyA9IDB4MDAwNCwKKwkuc3RhX29mcyA9IDB4MDAwMCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyB2ZGVjMV9jZ19yZWdzID0geworCS5zZXRfb2ZzID0gMHgwMDA4LAorCS5jbHJfb2ZzID0gMHgwMDBjLAorCS5zdGFfb2ZzID0gMHgwMDA4LAorfTsKKworI2RlZmluZSBHQVRFX1ZERUMwX0koX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQkJXAorCUdBVEVfTVRLKF9pZCwgX25hbWUsIF9wYXJlbnQsICZ2ZGVjMF9jZ19yZWdzLCBfc2hpZnQsCVwKKwkJJm10a19jbGtfZ2F0ZV9vcHNfc2V0Y2xyX2ludikKKyNkZWZpbmUgR0FURV9WREVDMV9JKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkJCVwKKwlHQVRFX01USyhfaWQsIF9uYW1lLCBfcGFyZW50LCAmdmRlYzFfY2dfcmVncywgX3NoaWZ0LAlcCisJCSZtdGtfY2xrX2dhdGVfb3BzX3NldGNscl9pbnYpCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGUgdmRlY19jbGtzW10gPSB7CisJLyogVkRFQzAgKi8KKwlHQVRFX1ZERUMwX0koQ0xLX1ZERUNfVkRFQywgInZkZWNfY2tlbiIsICJ2ZGVjX3NlbCIsIDApLAorCS8qIFZERUMxICovCisJR0FURV9WREVDMV9JKENMS19WREVDX0xBUkIxLCAidmRlY19sYXJiMV9ja2VuIiwgInZkZWNfc2VsIiwgMCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tYXRjaF9jbGtfbXQ2Nzc5X3ZkZWNbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10Njc3OS12ZGVjc3lzIiwgfSwKKwl7fQorfTsKKworc3RhdGljIGludCBjbGtfbXQ2Nzc5X3ZkZWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSAqY2xrX2RhdGE7CisJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7CisKKwljbGtfZGF0YSA9IG10a19hbGxvY19jbGtfZGF0YShDTEtfVkRFQ19HQ09OX05SX0NMSyk7CisKKwltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUsIHZkZWNfY2xrcywgQVJSQVlfU0laRSh2ZGVjX2Nsa3MpLAorCQkJICAgICAgIGNsa19kYXRhKTsKKworCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2xrX210Njc3OV92ZGVjX2RydiA9IHsKKwkucHJvYmUgPSBjbGtfbXQ2Nzc5X3ZkZWNfcHJvYmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiY2xrLW10Njc3OS12ZGVjIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210Njc3OV92ZGVjLAorCX0sCit9OworCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihjbGtfbXQ2Nzc5X3ZkZWNfZHJ2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NzktdmVuYy5jIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS12ZW5jLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQxZDFmOAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NzktdmVuYy5jCkBAIC0wLDAgKzEsNTggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE5IE1lZGlhVGVrIEluYy4KKyAqIEF1dGhvcjogV2VuZGVsbCBMaW4gPHdlbmRlbGwubGluQG1lZGlhdGVrLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNpbmNsdWRlICJjbGstbXRrLmgiCisjaW5jbHVkZSAiY2xrLWdhdGUuaCIKKworI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL210Njc3OS1jbGsuaD4KKworc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZV9yZWdzIHZlbmNfY2dfcmVncyA9IHsKKwkuc2V0X29mcyA9IDB4MDAwNCwKKwkuY2xyX29mcyA9IDB4MDAwOCwKKwkuc3RhX29mcyA9IDB4MDAwMCwKK307CisKKyNkZWZpbmUgR0FURV9WRU5DX0koX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQkJXAorCUdBVEVfTVRLKF9pZCwgX25hbWUsIF9wYXJlbnQsICZ2ZW5jX2NnX3JlZ3MsIF9zaGlmdCwJXAorCQkmbXRrX2Nsa19nYXRlX29wc19zZXRjbHJfaW52KQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlIHZlbmNfY2xrc1tdID0geworCUdBVEVfVkVOQ19JKENMS19WRU5DX0dDT05fTEFSQiwgInZlbmNfbGFyYiIsICJ2ZW5jX3NlbCIsIDApLAorCUdBVEVfVkVOQ19JKENMS19WRU5DX0dDT05fVkVOQywgInZlbmNfdmVuYyIsICJ2ZW5jX3NlbCIsIDQpLAorCUdBVEVfVkVOQ19JKENMS19WRU5DX0dDT05fSlBHRU5DLCAidmVuY19qcGdlbmMiLCAidmVuY19zZWwiLCA4KSwKKwlHQVRFX1ZFTkNfSShDTEtfVkVOQ19HQ09OX0dBTFMsICJ2ZW5jX2dhbHMiLCAidmVuY19zZWwiLCAyOCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tYXRjaF9jbGtfbXQ2Nzc5X3ZlbmNbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10Njc3OS12ZW5jc3lzIiwgfSwKKwl7fQorfTsKKworc3RhdGljIGludCBjbGtfbXQ2Nzc5X3ZlbmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSAqY2xrX2RhdGE7CisJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7CisKKwljbGtfZGF0YSA9IG10a19hbGxvY19jbGtfZGF0YShDTEtfVkVOQ19HQ09OX05SX0NMSyk7CisKKwltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUsIHZlbmNfY2xrcywgQVJSQVlfU0laRSh2ZW5jX2Nsa3MpLAorCQkJICAgICAgIGNsa19kYXRhKTsKKworCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2xrX210Njc3OV92ZW5jX2RydiA9IHsKKwkucHJvYmUgPSBjbGtfbXQ2Nzc5X3ZlbmNfcHJvYmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiY2xrLW10Njc3OS12ZW5jIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210Njc3OV92ZW5jLAorCX0sCit9OworCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihjbGtfbXQ2Nzc5X3ZlbmNfZHJ2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NzkuYyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NzkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDhhOWE2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc3OS5jCkBAIC0wLDAgKzEsMTMxNSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkgTWVkaWFUZWsgSW5jLgorICogQXV0aG9yOiBXZW5kZWxsIExpbiA8d2VuZGVsbC5saW5AbWVkaWF0ZWsuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgImNsay1tdGsuaCIKKyNpbmNsdWRlICJjbGstbXV4LmgiCisjaW5jbHVkZSAiY2xrLWdhdGUuaCIKKworI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL210Njc3OS1jbGsuaD4KKworc3RhdGljIERFRklORV9TUElOTE9DSyhtdDY3NzlfY2xrX2xvY2spOworCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19maXhlZF9jbGsgdG9wX2ZpeGVkX2Nsa3NbXSA9IHsKKwlGSVhFRF9DTEsoQ0xLX1RPUF9DTEsyNk0sICJmX2YyNm1fY2siLCAiY2xrMjZtIiwgMjYwMDAwMDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZml4ZWRfZmFjdG9yIHRvcF9kaXZzW10gPSB7CisJRkFDVE9SKENMS19UT1BfQ0xLMTNNLCAiY2xrMTNtIiwgImNsazI2bSIsIDEsIDIpLAorCUZBQ1RPUihDTEtfVE9QX0YyNk1fQ0tfRDIsICJjc3dfZjI2bV9ja19kMiIsICJjbGsyNm0iLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9NQUlOUExMX0NLLCAibWFpbnBsbF9jayIsICJtYWlucGxsIiwgMSwgMSksCisJRkFDVE9SKENMS19UT1BfTUFJTlBMTF9EMiwgIm1haW5wbGxfZDIiLCAibWFpbnBsbF9jayIsIDEsIDIpLAorCUZBQ1RPUihDTEtfVE9QX01BSU5QTExfRDJfRDIsICJtYWlucGxsX2QyX2QyIiwgIm1haW5wbGxfZDIiLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9NQUlOUExMX0QyX0Q0LCAibWFpbnBsbF9kMl9kNCIsICJtYWlucGxsX2QyIiwgMSwgNCksCisJRkFDVE9SKENMS19UT1BfTUFJTlBMTF9EMl9EOCwgIm1haW5wbGxfZDJfZDgiLCAibWFpbnBsbF9kMiIsIDEsIDgpLAorCUZBQ1RPUihDTEtfVE9QX01BSU5QTExfRDJfRDE2LCAibWFpbnBsbF9kMl9kMTYiLCAibWFpbnBsbF9kMiIsIDEsIDE2KSwKKwlGQUNUT1IoQ0xLX1RPUF9NQUlOUExMX0QzLCAibWFpbnBsbF9kMyIsICJtYWlucGxsIiwgMSwgMyksCisJRkFDVE9SKENMS19UT1BfTUFJTlBMTF9EM19EMiwgIm1haW5wbGxfZDNfZDIiLCAibWFpbnBsbF9kMyIsIDEsIDIpLAorCUZBQ1RPUihDTEtfVE9QX01BSU5QTExfRDNfRDQsICJtYWlucGxsX2QzX2Q0IiwgIm1haW5wbGxfZDMiLCAxLCA0KSwKKwlGQUNUT1IoQ0xLX1RPUF9NQUlOUExMX0QzX0Q4LCAibWFpbnBsbF9kM19kOCIsICJtYWlucGxsX2QzIiwgMSwgOCksCisJRkFDVE9SKENMS19UT1BfTUFJTlBMTF9ENSwgIm1haW5wbGxfZDUiLCAibWFpbnBsbCIsIDEsIDUpLAorCUZBQ1RPUihDTEtfVE9QX01BSU5QTExfRDVfRDIsICJtYWlucGxsX2Q1X2QyIiwgIm1haW5wbGxfZDUiLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9NQUlOUExMX0Q1X0Q0LCAibWFpbnBsbF9kNV9kNCIsICJtYWlucGxsX2Q1IiwgMSwgNCksCisJRkFDVE9SKENMS19UT1BfTUFJTlBMTF9ENywgIm1haW5wbGxfZDciLCAibWFpbnBsbCIsIDEsIDcpLAorCUZBQ1RPUihDTEtfVE9QX01BSU5QTExfRDdfRDIsICJtYWlucGxsX2Q3X2QyIiwgIm1haW5wbGxfZDciLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9NQUlOUExMX0Q3X0Q0LCAibWFpbnBsbF9kN19kNCIsICJtYWlucGxsX2Q3IiwgMSwgNCksCisJRkFDVE9SKENMS19UT1BfVU5JVlBMTF9DSywgInVuaXZwbGwiLCAidW5pdjJwbGwiLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9VTklWUExMX0QyLCAidW5pdnBsbF9kMiIsICJ1bml2cGxsIiwgMSwgMiksCisJRkFDVE9SKENMS19UT1BfVU5JVlBMTF9EMl9EMiwgInVuaXZwbGxfZDJfZDIiLCAidW5pdnBsbF9kMiIsIDEsIDIpLAorCUZBQ1RPUihDTEtfVE9QX1VOSVZQTExfRDJfRDQsICJ1bml2cGxsX2QyX2Q0IiwgInVuaXZwbGxfZDIiLCAxLCA0KSwKKwlGQUNUT1IoQ0xLX1RPUF9VTklWUExMX0QyX0Q4LCAidW5pdnBsbF9kMl9kOCIsICJ1bml2cGxsX2QyIiwgMSwgOCksCisJRkFDVE9SKENMS19UT1BfVU5JVlBMTF9EMywgInVuaXZwbGxfZDMiLCAidW5pdnBsbCIsIDEsIDMpLAorCUZBQ1RPUihDTEtfVE9QX1VOSVZQTExfRDNfRDIsICJ1bml2cGxsX2QzX2QyIiwgInVuaXZwbGxfZDMiLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9VTklWUExMX0QzX0Q0LCAidW5pdnBsbF9kM19kNCIsICJ1bml2cGxsX2QzIiwgMSwgNCksCisJRkFDVE9SKENMS19UT1BfVU5JVlBMTF9EM19EOCwgInVuaXZwbGxfZDNfZDgiLCAidW5pdnBsbF9kMyIsIDEsIDgpLAorCUZBQ1RPUihDTEtfVE9QX1VOSVZQTExfRDNfRDE2LCAidW5pdnBsbF9kM19kMTYiLCAidW5pdnBsbF9kMyIsIDEsIDE2KSwKKwlGQUNUT1IoQ0xLX1RPUF9VTklWUExMX0Q1LCAidW5pdnBsbF9kNSIsICJ1bml2cGxsIiwgMSwgNSksCisJRkFDVE9SKENMS19UT1BfVU5JVlBMTF9ENV9EMiwgInVuaXZwbGxfZDVfZDIiLCAidW5pdnBsbF9kNSIsIDEsIDIpLAorCUZBQ1RPUihDTEtfVE9QX1VOSVZQTExfRDVfRDQsICJ1bml2cGxsX2Q1X2Q0IiwgInVuaXZwbGxfZDUiLCAxLCA0KSwKKwlGQUNUT1IoQ0xLX1RPUF9VTklWUExMX0Q1X0Q4LCAidW5pdnBsbF9kNV9kOCIsICJ1bml2cGxsX2Q1IiwgMSwgOCksCisJRkFDVE9SKENMS19UT1BfVU5JVlBMTF9ENywgInVuaXZwbGxfZDciLCAidW5pdnBsbCIsIDEsIDcpLAorCUZBQ1RPUihDTEtfVE9QX1VOSVZQXzE5Mk1fQ0ssICJ1bml2cGxsXzE5Mm1fY2siLCAidW5pdjJwbGwiLCAxLCAxMyksCisJRkFDVE9SKENMS19UT1BfVU5JVlBfMTkyTV9EMiwgInVuaXZwbGxfMTkybV9kMiIsICJ1bml2cGxsXzE5Mm1fY2siLAorCSAgICAgICAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9VTklWUF8xOTJNX0Q0LCAidW5pdnBsbF8xOTJtX2Q0IiwgInVuaXZwbGxfMTkybV9jayIsCisJICAgICAgIDEsIDQpLAorCUZBQ1RPUihDTEtfVE9QX1VOSVZQXzE5Mk1fRDgsICJ1bml2cGxsXzE5Mm1fZDgiLCAidW5pdnBsbF8xOTJtX2NrIiwKKwkgICAgICAgMSwgOCksCisJRkFDVE9SKENMS19UT1BfVU5JVlBfMTkyTV9EMTYsICJ1bml2cGxsXzE5Mm1fZDE2IiwgInVuaXZwbGxfMTkybV9jayIsCisJICAgICAgIDEsIDE2KSwKKwlGQUNUT1IoQ0xLX1RPUF9VTklWUF8xOTJNX0QzMiwgInVuaXZwbGxfMTkybV9kMzIiLCAidW5pdnBsbF8xOTJtX2NrIiwKKwkgICAgICAgMSwgMzIpLAorCUZBQ1RPUihDTEtfVE9QX0FQTEwxX0NLLCAiYXBsbDFfY2siLCAiYXBsbDEiLCAxLCAxKSwKKwlGQUNUT1IoQ0xLX1RPUF9BUExMMV9EMiwgImFwbGwxX2QyIiwgImFwbGwxIiwgMSwgMiksCisJRkFDVE9SKENMS19UT1BfQVBMTDFfRDQsICJhcGxsMV9kNCIsICJhcGxsMSIsIDEsIDQpLAorCUZBQ1RPUihDTEtfVE9QX0FQTEwxX0Q4LCAiYXBsbDFfZDgiLCAiYXBsbDEiLCAxLCA4KSwKKwlGQUNUT1IoQ0xLX1RPUF9BUExMMl9DSywgImFwbGwyX2NrIiwgImFwbGwyIiwgMSwgMSksCisJRkFDVE9SKENMS19UT1BfQVBMTDJfRDIsICJhcGxsMl9kMiIsICJhcGxsMiIsIDEsIDIpLAorCUZBQ1RPUihDTEtfVE9QX0FQTEwyX0Q0LCAiYXBsbDJfZDQiLCAiYXBsbDIiLCAxLCA0KSwKKwlGQUNUT1IoQ0xLX1RPUF9BUExMMl9EOCwgImFwbGwyX2Q4IiwgImFwbGwyIiwgMSwgOCksCisJRkFDVE9SKENMS19UT1BfVFZEUExMX0NLLCAidHZkcGxsX2NrIiwgInR2ZHBsbCIsIDEsIDEpLAorCUZBQ1RPUihDTEtfVE9QX1RWRFBMTF9EMiwgInR2ZHBsbF9kMiIsICJ0dmRwbGxfY2siLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9UVkRQTExfRDQsICJ0dmRwbGxfZDQiLCAidHZkcGxsIiwgMSwgNCksCisJRkFDVE9SKENMS19UT1BfVFZEUExMX0Q4LCAidHZkcGxsX2Q4IiwgInR2ZHBsbCIsIDEsIDgpLAorCUZBQ1RPUihDTEtfVE9QX1RWRFBMTF9EMTYsICJ0dmRwbGxfZDE2IiwgInR2ZHBsbCIsIDEsIDE2KSwKKwlGQUNUT1IoQ0xLX1RPUF9NTVBMTF9DSywgIm1tcGxsX2NrIiwgIm1tcGxsIiwgMSwgMSksCisJRkFDVE9SKENMS19UT1BfTU1QTExfRDQsICJtbXBsbF9kNCIsICJtbXBsbCIsIDEsIDQpLAorCUZBQ1RPUihDTEtfVE9QX01NUExMX0Q0X0QyLCAibW1wbGxfZDRfZDIiLCAibW1wbGxfZDQiLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9NTVBMTF9ENF9ENCwgIm1tcGxsX2Q0X2Q0IiwgIm1tcGxsX2Q0IiwgMSwgNCksCisJRkFDVE9SKENMS19UT1BfTU1QTExfRDUsICJtbXBsbF9kNSIsICJtbXBsbCIsIDEsIDUpLAorCUZBQ1RPUihDTEtfVE9QX01NUExMX0Q1X0QyLCAibW1wbGxfZDVfZDIiLCAibW1wbGxfZDUiLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9NTVBMTF9ENV9ENCwgIm1tcGxsX2Q1X2Q0IiwgIm1tcGxsX2Q1IiwgMSwgNCksCisJRkFDVE9SKENMS19UT1BfTU1QTExfRDYsICJtbXBsbF9kNiIsICJtbXBsbCIsIDEsIDYpLAorCUZBQ1RPUihDTEtfVE9QX01NUExMX0Q3LCAibW1wbGxfZDciLCAibW1wbGwiLCAxLCA3KSwKKwlGQUNUT1IoQ0xLX1RPUF9NRkdQTExfQ0ssICJtZmdwbGxfY2siLCAibWZncGxsIiwgMSwgMSksCisJRkFDVE9SKENMS19UT1BfQURTUFBMTF9DSywgImFkc3BwbGxfY2siLCAiYWRzcHBsbCIsIDEsIDEpLAorCUZBQ1RPUihDTEtfVE9QX0FEU1BQTExfRDQsICJhZHNwcGxsX2Q0IiwgImFkc3BwbGwiLCAxLCA0KSwKKwlGQUNUT1IoQ0xLX1RPUF9BRFNQUExMX0Q1LCAiYWRzcHBsbF9kNSIsICJhZHNwcGxsIiwgMSwgNSksCisJRkFDVE9SKENMS19UT1BfQURTUFBMTF9ENiwgImFkc3BwbGxfZDYiLCAiYWRzcHBsbCIsIDEsIDYpLAorCUZBQ1RPUihDTEtfVE9QX01TRENQTExfQ0ssICJtc2RjcGxsX2NrIiwgIm1zZGNwbGwiLCAxLCAxKSwKKwlGQUNUT1IoQ0xLX1RPUF9NU0RDUExMX0QyLCAibXNkY3BsbF9kMiIsICJtc2RjcGxsIiwgMSwgMiksCisJRkFDVE9SKENMS19UT1BfTVNEQ1BMTF9ENCwgIm1zZGNwbGxfZDQiLCAibXNkY3BsbCIsIDEsIDQpLAorCUZBQ1RPUihDTEtfVE9QX01TRENQTExfRDgsICJtc2RjcGxsX2Q4IiwgIm1zZGNwbGwiLCAxLCA4KSwKKwlGQUNUT1IoQ0xLX1RPUF9NU0RDUExMX0QxNiwgIm1zZGNwbGxfZDE2IiwgIm1zZGNwbGwiLCAxLCAxNiksCisJRkFDVE9SKENMS19UT1BfQURfT1NDX0NLLCAiYWRfb3NjX2NrIiwgIm9zYyIsIDEsIDEpLAorCUZBQ1RPUihDTEtfVE9QX09TQ19EMiwgIm9zY19kMiIsICJvc2MiLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9PU0NfRDQsICJvc2NfZDQiLCAib3NjIiwgMSwgNCksCisJRkFDVE9SKENMS19UT1BfT1NDX0Q4LCAib3NjX2Q4IiwgIm9zYyIsIDEsIDgpLAorCUZBQ1RPUihDTEtfVE9QX09TQ19EMTAsICJvc2NfZDEwIiwgIm9zYyIsIDEsIDEwKSwKKwlGQUNUT1IoQ0xLX1RPUF9PU0NfRDE2LCAib3NjX2QxNiIsICJvc2MiLCAxLCAxNiksCisJRkFDVE9SKENMS19UT1BfQURfT1NDMl9DSywgImFkX29zYzJfY2siLCAib3NjMiIsIDEsIDEpLAorCUZBQ1RPUihDTEtfVE9QX09TQzJfRDIsICJvc2MyX2QyIiwgIm9zYzIiLCAxLCAyKSwKKwlGQUNUT1IoQ0xLX1RPUF9PU0MyX0QzLCAib3NjMl9kMyIsICJvc2MyIiwgMSwgMyksCisJRkFDVE9SKENMS19UT1BfVFZEUExMX01BSU5QTExfRDJfQ0ssICJ0dmRwbGxfbWFpbnBsbF9kMl9jayIsCisJICAgICAgICJ0dmRwbGwiLCAxLCAxKSwKKwlGQUNUT1IoQ0xLX1RPUF9GTUVNXzQ2Nk1fQ0ssICJmbWVtXzQ2Nm1fY2siLCAiZm1lbSIsIDEsIDEpLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBheGlfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJtYWlucGxsX2QyX2Q0IiwKKwkibWFpbnBsbF9kNyIsCisJIm9zY19kNCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbW1fcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJ0dmRwbGxfbWFpbnBsbF9kMl9jayIsCisJIm1tcGxsX2Q3IiwKKwkibW1wbGxfZDVfZDIiLAorCSJtYWlucGxsX2QyX2QyIiwKKwkibWFpbnBsbF9kM19kMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2NwX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF9kMl9kOCIsCisJIm1haW5wbGxfZDJfZDQiLAorCSJtYWlucGxsX2QzIiwKKwkidW5pdnBsbF9kMyIsCisJImFkX29zYzJfY2siLAorCSJvc2MyX2QyIiwKKwkib3NjMl9kMyIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW1nX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkibWFpbnBsbF9kMiIsCisJIm1haW5wbGxfZDIiLAorCSJ1bml2cGxsX2QzIiwKKwkibWFpbnBsbF9kMyIsCisJIm1tcGxsX2Q1X2QyIiwKKwkidHZkcGxsX21haW5wbGxfZDJfY2siLAorCSJtYWlucGxsX2Q1IgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpcGVfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJtYWlucGxsX2QyIiwKKwkibW1wbGxfZDciLAorCSJ1bml2cGxsX2QzIiwKKwkibWFpbnBsbF9kMyIsCisJIm1tcGxsX2Q1X2QyIiwKKwkibWFpbnBsbF9kMl9kMiIsCisJIm1haW5wbGxfZDUiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRwZV9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJIm1haW5wbGxfZDIiLAorCSJtbXBsbF9kNyIsCisJInVuaXZwbGxfZDMiLAorCSJtYWlucGxsX2QzIiwKKwkibW1wbGxfZDVfZDIiLAorCSJtYWlucGxsX2QyX2QyIiwKKwkibWFpbnBsbF9kNSIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY2FtX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkibWFpbnBsbF9kMiIsCisJIm1tcGxsX2Q2IiwKKwkibWFpbnBsbF9kMyIsCisJIm1tcGxsX2Q3IiwKKwkidW5pdnBsbF9kMyIsCisJIm1tcGxsX2Q1X2QyIiwKKwkiYWRzcHBsbF9kNSIsCisJInR2ZHBsbF9tYWlucGxsX2QyX2NrIiwKKwkidW5pdnBsbF9kM19kMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY2N1X3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkibWFpbnBsbF9kMiIsCisJIm1tcGxsX2Q2IiwKKwkibWFpbnBsbF9kMyIsCisJIm1tcGxsX2Q3IiwKKwkidW5pdnBsbF9kMyIsCisJIm1tcGxsX2Q1X2QyIiwKKwkibWFpbnBsbF9kMl9kMiIsCisJImFkc3BwbGxfZDUiLAorCSJ1bml2cGxsX2QzX2QyIgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkc3BfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJ1bml2cGxsX2QzX2Q4IiwKKwkidW5pdnBsbF9kM19kNCIsCisJIm1haW5wbGxfZDJfZDQiLAorCSJ1bml2cGxsX2QzX2QyIiwKKwkibWFpbnBsbF9kMl9kMiIsCisJInVuaXZwbGxfZDJfZDIiLAorCSJtYWlucGxsX2QzIiwKKwkidW5pdnBsbF9kMyIsCisJIm1tcGxsX2Q3IiwKKwkibW1wbGxfZDYiLAorCSJhZHNwcGxsX2Q1IiwKKwkidHZkcGxsX2NrIiwKKwkidHZkcGxsX21haW5wbGxfZDJfY2siLAorCSJ1bml2cGxsX2QyIiwKKwkiYWRzcHBsbF9kNCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZHNwMV9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJInVuaXZwbGxfZDNfZDgiLAorCSJ1bml2cGxsX2QzX2Q0IiwKKwkibWFpbnBsbF9kMl9kNCIsCisJInVuaXZwbGxfZDNfZDIiLAorCSJtYWlucGxsX2QyX2QyIiwKKwkidW5pdnBsbF9kMl9kMiIsCisJIm1haW5wbGxfZDMiLAorCSJ1bml2cGxsX2QzIiwKKwkibW1wbGxfZDciLAorCSJtbXBsbF9kNiIsCisJImFkc3BwbGxfZDUiLAorCSJ0dmRwbGxfY2siLAorCSJ0dmRwbGxfbWFpbnBsbF9kMl9jayIsCisJInVuaXZwbGxfZDIiLAorCSJhZHNwcGxsX2Q0IgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkc3AyX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF9kM19kOCIsCisJInVuaXZwbGxfZDNfZDQiLAorCSJtYWlucGxsX2QyX2Q0IiwKKwkidW5pdnBsbF9kM19kMiIsCisJIm1haW5wbGxfZDJfZDIiLAorCSJ1bml2cGxsX2QyX2QyIiwKKwkibWFpbnBsbF9kMyIsCisJInVuaXZwbGxfZDMiLAorCSJtbXBsbF9kNyIsCisJIm1tcGxsX2Q2IiwKKwkiYWRzcHBsbF9kNSIsCisJInR2ZHBsbF9jayIsCisJInR2ZHBsbF9tYWlucGxsX2QyX2NrIiwKKwkidW5pdnBsbF9kMiIsCisJImFkc3BwbGxfZDQiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRzcDNfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJ1bml2cGxsX2QzX2Q4IiwKKwkibWFpbnBsbF9kMl9kNCIsCisJInVuaXZwbGxfZDNfZDIiLAorCSJtYWlucGxsX2QyX2QyIiwKKwkidW5pdnBsbF9kMl9kMiIsCisJIm1haW5wbGxfZDMiLAorCSJ1bml2cGxsX2QzIiwKKwkibW1wbGxfZDciLAorCSJtbXBsbF9kNiIsCisJIm1haW5wbGxfZDIiLAorCSJ0dmRwbGxfY2siLAorCSJ0dmRwbGxfbWFpbnBsbF9kMl9jayIsCisJInVuaXZwbGxfZDIiLAorCSJhZHNwcGxsX2Q0IiwKKwkibW1wbGxfZDQiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlwdV9pZl9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJInVuaXZwbGxfZDNfZDgiLAorCSJ1bml2cGxsX2QzX2Q0IiwKKwkibWFpbnBsbF9kMl9kNCIsCisJInVuaXZwbGxfZDNfZDIiLAorCSJtYWlucGxsX2QyX2QyIiwKKwkidW5pdnBsbF9kMl9kMiIsCisJIm1haW5wbGxfZDMiLAorCSJ1bml2cGxsX2QzIiwKKwkibW1wbGxfZDciLAorCSJtbXBsbF9kNiIsCisJImFkc3BwbGxfZDUiLAorCSJ0dmRwbGxfY2siLAorCSJ0dmRwbGxfbWFpbnBsbF9kMl9jayIsCisJInVuaXZwbGxfZDIiLAorCSJhZHNwcGxsX2Q0IgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtZmdfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJtZmdwbGxfY2siLAorCSJ1bml2cGxsX2QzIiwKKwkibWFpbnBsbF9kNSIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZjUybV9tZmdfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJ1bml2cGxsX2QzX2QyIiwKKwkidW5pdnBsbF9kM19kNCIsCisJInVuaXZwbGxfZDNfZDgiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNhbXRnX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF8xOTJtX2Q4IiwKKwkidW5pdnBsbF9kM19kOCIsCisJInVuaXZwbGxfMTkybV9kNCIsCisJInVuaXZwbGxfZDNfZDE2IiwKKwkiY3N3X2YyNm1fY2tfZDIiLAorCSJ1bml2cGxsXzE5Mm1fZDE2IiwKKwkidW5pdnBsbF8xOTJtX2QzMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY2FtdGcyX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF8xOTJtX2Q4IiwKKwkidW5pdnBsbF9kM19kOCIsCisJInVuaXZwbGxfMTkybV9kNCIsCisJInVuaXZwbGxfZDNfZDE2IiwKKwkiY3N3X2YyNm1fY2tfZDIiLAorCSJ1bml2cGxsXzE5Mm1fZDE2IiwKKwkidW5pdnBsbF8xOTJtX2QzMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY2FtdGczX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF8xOTJtX2Q4IiwKKwkidW5pdnBsbF9kM19kOCIsCisJInVuaXZwbGxfMTkybV9kNCIsCisJInVuaXZwbGxfZDNfZDE2IiwKKwkiY3N3X2YyNm1fY2tfZDIiLAorCSJ1bml2cGxsXzE5Mm1fZDE2IiwKKwkidW5pdnBsbF8xOTJtX2QzMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY2FtdGc0X3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF8xOTJtX2Q4IiwKKwkidW5pdnBsbF9kM19kOCIsCisJInVuaXZwbGxfMTkybV9kNCIsCisJInVuaXZwbGxfZDNfZDE2IiwKKwkiY3N3X2YyNm1fY2tfZDIiLAorCSJ1bml2cGxsXzE5Mm1fZDE2IiwKKwkidW5pdnBsbF8xOTJtX2QzMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydF9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJInVuaXZwbGxfZDNfZDgiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaV9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJIm1haW5wbGxfZDVfZDIiLAorCSJtYWlucGxsX2QzX2Q0IiwKKwkibXNkY3BsbF9kNCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXNkYzUwX2hjbGtfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJtYWlucGxsX2QyX2QyIiwKKwkibWFpbnBsbF9kM19kMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXNkYzUwXzBfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJtc2RjcGxsX2NrIiwKKwkibXNkY3BsbF9kMiIsCisJInVuaXZwbGxfZDJfZDQiLAorCSJtYWlucGxsX2QzX2QyIiwKKwkidW5pdnBsbF9kMl9kMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXNkYzMwXzFfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJ1bml2cGxsX2QzX2QyIiwKKwkibWFpbnBsbF9kM19kMiIsCisJIm1haW5wbGxfZDciLAorCSJtc2RjcGxsX2QyIgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhdWRpb19wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJIm1haW5wbGxfZDVfZDQiLAorCSJtYWlucGxsX2Q3X2Q0IiwKKwkibWFpbnBsbF9kMl9kMTYiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF1ZF9pbnRidXNfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJtYWlucGxsX2QyX2Q0IiwKKwkibWFpbnBsbF9kN19kMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZnB3cmFwX3VscG9zY19wYXJlbnRzW10gPSB7CisJIm9zY19kMTAiLAorCSJjbGsyNm0iLAorCSJvc2NfZDQiLAorCSJvc2NfZDgiLAorCSJvc2NfZDE2IgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhdGJfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJtYWlucGxsX2QyX2QyIiwKKwkibWFpbnBsbF9kNSIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3NwbV9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJInVuaXZwbGxfZDJfZDQiLAorCSJtYWlucGxsX2QyX2QyIiwKKwkidW5pdnBsbF9kMl9kMiIsCisJIm1haW5wbGxfZDMiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRwaTBfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJ0dmRwbGxfZDIiLAorCSJ0dmRwbGxfZDQiLAorCSJ0dmRwbGxfZDgiLAorCSJ0dmRwbGxfZDE2IgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzY2FtX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkibWFpbnBsbF9kNV9kMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZGlzcHB3bV9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJInVuaXZwbGxfZDNfZDQiLAorCSJvc2NfZDIiLAorCSJvc2NfZDQiLAorCSJvc2NfZDE2IgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1c2JfdG9wX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF9kNV9kNCIsCisJInVuaXZwbGxfZDNfZDQiLAorCSJ1bml2cGxsX2Q1X2QyIgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzc3VzYl90b3BfeGhjaV9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJInVuaXZwbGxfZDVfZDQiLAorCSJ1bml2cGxsX2QzX2Q0IiwKKwkidW5pdnBsbF9kNV9kMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3BtX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkib3NjX2Q4IiwKKwkibWFpbnBsbF9kMl9kOCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaTJjX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkibWFpbnBsbF9kMl9kOCIsCisJInVuaXZwbGxfZDVfZDIiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlbmluZl9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJInVuaXZwbGxfZDciLAorCSJ1bml2cGxsX2QzX2QyIiwKKwkidW5pdnBsbF9kMl9kMiIsCisJIm1haW5wbGxfZDMiLAorCSJtbXBsbF9kNF9kMiIsCisJIm1tcGxsX2Q3IiwKKwkibW1wbGxfZDYiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlbmluZjFfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJ1bml2cGxsX2Q3IiwKKwkidW5pdnBsbF9kM19kMiIsCisJInVuaXZwbGxfZDJfZDIiLAorCSJtYWlucGxsX2QzIiwKKwkibW1wbGxfZDRfZDIiLAorCSJtbXBsbF9kNyIsCisJIm1tcGxsX2Q2IgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzZW5pbmYyX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF9kNyIsCisJInVuaXZwbGxfZDNfZDIiLAorCSJ1bml2cGxsX2QyX2QyIiwKKwkibWFpbnBsbF9kMyIsCisJIm1tcGxsX2Q0X2QyIiwKKwkibW1wbGxfZDciLAorCSJtbXBsbF9kNiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZHhjY19wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJIm1haW5wbGxfZDJfZDIiLAorCSJtYWlucGxsX2QyX2Q0IiwKKwkibWFpbnBsbF9kMl9kOCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXVkX2VuZ2VuMV9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJImFwbGwxX2QyIiwKKwkiYXBsbDFfZDQiLAorCSJhcGxsMV9kOCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXVkX2VuZ2VuMl9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJImFwbGwyX2QyIiwKKwkiYXBsbDJfZDQiLAorCSJhcGxsMl9kOCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZmFlc191ZnNmZGVfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJtYWlucGxsX2QyIiwKKwkibWFpbnBsbF9kMl9kMiIsCisJIm1haW5wbGxfZDMiLAorCSJtYWlucGxsX2QyX2Q0IiwKKwkidW5pdnBsbF9kMyIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZnVmc19wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJIm1haW5wbGxfZDJfZDQiLAorCSJtYWlucGxsX2QyX2Q4IiwKKwkibWFpbnBsbF9kMl9kMTYiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF1ZF8xX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkiYXBsbDFfY2siCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF1ZF8yX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkiYXBsbDJfY2siCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFkc3BfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJtYWlucGxsX2QzIiwKKwkidW5pdnBsbF9kMl9kNCIsCisJInVuaXZwbGxfZDIiLAorCSJtbXBsbF9kNCIsCisJImFkc3BwbGxfZDQiLAorCSJhZHNwcGxsX2Q2IgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkcG1haWZfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJ1bml2cGxsX2QyX2Q0IiwKKwkibWFpbnBsbF9kMyIsCisJIm1haW5wbGxfZDJfZDIiLAorCSJ1bml2cGxsX2QyX2QyIiwKKwkidW5pdnBsbF9kMyIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmVuY19wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJIm1tcGxsX2Q3IiwKKwkibWFpbnBsbF9kMyIsCisJInVuaXZwbGxfZDJfZDIiLAorCSJtYWlucGxsX2QyX2QyIiwKKwkidW5pdnBsbF9kMyIsCisJIm1tcGxsX2Q2IiwKKwkibWFpbnBsbF9kNSIsCisJIm1haW5wbGxfZDNfZDIiLAorCSJtbXBsbF9kNF9kMiIsCisJInVuaXZwbGxfZDJfZDQiLAorCSJtbXBsbF9kNSIsCisJInVuaXZwbGxfMTkybV9kMiIKKworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2ZGVjX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF9kMl9kNCIsCisJIm1haW5wbGxfZDMiLAorCSJ1bml2cGxsX2QyX2QyIiwKKwkibWFpbnBsbF9kMl9kMiIsCisJInVuaXZwbGxfZDMiLAorCSJ1bml2cGxsX2Q1IiwKKwkidW5pdnBsbF9kNV9kMiIsCisJIm1haW5wbGxfZDIiLAorCSJ1bml2cGxsX2QyIiwKKwkidW5pdnBsbF8xOTJtX2QyIgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjYW10bV9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJInVuaXZwbGxfZDciLAorCSJ1bml2cGxsX2QzX2QyIiwKKwkidW5pdnBsbF9kMl9kMiIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcHdtX3BhcmVudHNbXSA9IHsKKwkiY2xrMjZtIiwKKwkidW5pdnBsbF9kMl9kOCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXVkaW9faF9wYXJlbnRzW10gPSB7CisJImNsazI2bSIsCisJInVuaXZwbGxfZDciLAorCSJhcGxsMV9jayIsCisJImFwbGwyX2NrIgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjYW10ZzVfcGFyZW50c1tdID0geworCSJjbGsyNm0iLAorCSJ1bml2cGxsXzE5Mm1fZDgiLAorCSJ1bml2cGxsX2QzX2Q4IiwKKwkidW5pdnBsbF8xOTJtX2Q0IiwKKwkidW5pdnBsbF9kM19kMTYiLAorCSJjc3dfZjI2bV9ja19kMiIsCisJInVuaXZwbGxfMTkybV9kMTYiLAorCSJ1bml2cGxsXzE5Mm1fZDMyIgorfTsKKworLyoKKyAqIENSSVRJQ0FMIENMT0NLOgorICogYXhpX3NlbCBpcyB0aGUgbWFpbiBidXMgY2xvY2sgb2Ygd2hvbGUgU09DLgorICogc3BtX3NlbCBpcyB0aGUgY2xvY2sgb2YgdGhlIGFsd2F5cy1vbiBjby1wcm9jZXNzb3IuCisgKiBzc3BtX3NlbCBpcyB0aGUgY2xvY2sgb2YgdGhlIGFsd2F5cy1vbiBjby1wcm9jZXNzb3IuCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX211eCB0b3BfbXV4ZXNbXSA9IHsKKwkvKiBDTEtfQ0ZHXzAgKi8KKwlNVVhfR0FURV9DTFJfU0VUX1VQRF9GTEFHUyhDTEtfVE9QX0FYSSwgImF4aV9zZWwiLCBheGlfcGFyZW50cywKKwkJCQkgICAweDIwLCAweDI0LCAweDI4LCAwLCAyLCA3LAorCQkJCSAgIDB4MDA0LCAwLCBDTEtfSVNfQ1JJVElDQUwpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfTU0sICJtbV9zZWwiLCBtbV9wYXJlbnRzLAorCQkJICAgICAweDIwLCAweDI0LCAweDI4LCA4LCAzLCAxNSwgMHgwMDQsIDEpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfU0NQLCAic2NwX3NlbCIsIHNjcF9wYXJlbnRzLAorCQkJICAgICAweDIwLCAweDI0LCAweDI4LCAxNiwgMywgMjMsIDB4MDA0LCAyKSwKKwkvKiBDTEtfQ0ZHXzEgKi8KKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0lNRywgImltZ19zZWwiLCBpbWdfcGFyZW50cywKKwkJCSAgICAgMHgzMCwgMHgzNCwgMHgzOCwgMCwgMywgNywgMHgwMDQsIDQpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfSVBFLCAiaXBlX3NlbCIsIGlwZV9wYXJlbnRzLAorCQkJICAgICAweDMwLCAweDM0LCAweDM4LCA4LCAzLCAxNSwgMHgwMDQsIDUpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfRFBFLCAiZHBlX3NlbCIsIGRwZV9wYXJlbnRzLAorCQkJICAgICAweDMwLCAweDM0LCAweDM4LCAxNiwgMywgMjMsIDB4MDA0LCA2KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0NBTSwgImNhbV9zZWwiLCBjYW1fcGFyZW50cywKKwkJCSAgICAgMHgzMCwgMHgzNCwgMHgzOCwgMjQsIDQsIDMxLCAweDAwNCwgNyksCisJLyogQ0xLX0NGR18yICovCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9DQ1UsICJjY3Vfc2VsIiwgY2N1X3BhcmVudHMsCisJCQkgICAgIDB4NDAsIDB4NDQsIDB4NDgsIDAsIDQsIDcsIDB4MDA0LCA4KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0RTUCwgImRzcF9zZWwiLCBkc3BfcGFyZW50cywKKwkJCSAgICAgMHg0MCwgMHg0NCwgMHg0OCwgOCwgNCwgMTUsIDB4MDA0LCA5KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0RTUDEsICJkc3AxX3NlbCIsIGRzcDFfcGFyZW50cywKKwkJCSAgICAgMHg0MCwgMHg0NCwgMHg0OCwgMTYsIDQsIDIzLCAweDAwNCwgMTApLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfRFNQMiwgImRzcDJfc2VsIiwgZHNwMl9wYXJlbnRzLAorCQkJICAgICAweDQwLCAweDQ0LCAweDQ4LCAyNCwgNCwgMzEsIDB4MDA0LCAxMSksCisJLyogQ0xLX0NGR18zICovCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9EU1AzLCAiZHNwM19zZWwiLCBkc3AzX3BhcmVudHMsCisJCQkgICAgIDB4NTAsIDB4NTQsIDB4NTgsIDAsIDQsIDcsIDB4MDA0LCAxMiksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9JUFVfSUYsICJpcHVfaWZfc2VsIiwgaXB1X2lmX3BhcmVudHMsCisJCQkgICAgIDB4NTAsIDB4NTQsIDB4NTgsIDgsIDQsIDE1LCAweDAwNCwgMTMpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfTUZHLCAibWZnX3NlbCIsIG1mZ19wYXJlbnRzLAorCQkJICAgICAweDUwLCAweDU0LCAweDU4LCAxNiwgMiwgMjMsIDB4MDA0LCAxNCksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9GNTJNX01GRywgImY1Mm1fbWZnX3NlbCIsCisJCQkgICAgIGY1Mm1fbWZnX3BhcmVudHMsIDB4NTAsIDB4NTQsIDB4NTgsCisJCQkgICAgIDI0LCAyLCAzMSwgMHgwMDQsIDE1KSwKKwkvKiBDTEtfQ0ZHXzQgKi8KKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0NBTVRHLCAiY2FtdGdfc2VsIiwgY2FtdGdfcGFyZW50cywKKwkJCSAgICAgMHg2MCwgMHg2NCwgMHg2OCwgMCwgMywgNywgMHgwMDQsIDE2KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0NBTVRHMiwgImNhbXRnMl9zZWwiLCBjYW10ZzJfcGFyZW50cywKKwkJCSAgICAgMHg2MCwgMHg2NCwgMHg2OCwgOCwgMywgMTUsIDB4MDA0LCAxNyksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9DQU1URzMsICJjYW10ZzNfc2VsIiwgY2FtdGczX3BhcmVudHMsCisJCQkgICAgIDB4NjAsIDB4NjQsIDB4NjgsIDE2LCAzLCAyMywgMHgwMDQsIDE4KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0NBTVRHNCwgImNhbXRnNF9zZWwiLCBjYW10ZzRfcGFyZW50cywKKwkJCSAgICAgMHg2MCwgMHg2NCwgMHg2OCwgMjQsIDMsIDMxLCAweDAwNCwgMTkpLAorCS8qIENMS19DRkdfNSAqLworCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfVUFSVCwgInVhcnRfc2VsIiwgdWFydF9wYXJlbnRzLAorCQkJICAgICAweDcwLCAweDc0LCAweDc4LCAwLCAxLCA3LCAweDAwNCwgMjApLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfU1BJLCAic3BpX3NlbCIsIHNwaV9wYXJlbnRzLAorCQkJICAgICAweDcwLCAweDc0LCAweDc4LCA4LCAyLCAxNSwgMHgwMDQsIDIxKSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX01TREM1MF8wX0hDTEssICJtc2RjNTBfaGNsa19zZWwiLAorCQkJICAgICBtc2RjNTBfaGNsa19wYXJlbnRzLCAweDcwLCAweDc0LCAweDc4LAorCQkJICAgICAxNiwgMiwgMjMsIDB4MDA0LCAyMiksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9NU0RDNTBfMCwgIm1zZGM1MF8wX3NlbCIsCisJCQkgICAgIG1zZGM1MF8wX3BhcmVudHMsIDB4NzAsIDB4NzQsIDB4NzgsCisJCQkgICAgIDI0LCAzLCAzMSwgMHgwMDQsIDIzKSwKKwkvKiBDTEtfQ0ZHXzYgKi8KKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX01TREMzMF8xLCAibXNkYzMwXzFfc2VsIiwKKwkJCSAgICAgbXNkYzMwXzFfcGFyZW50cywgMHg4MCwgMHg4NCwgMHg4OCwKKwkJCSAgICAgMCwgMywgNywgMHgwMDQsIDI0KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0FVRCwgImF1ZGlvX3NlbCIsIGF1ZGlvX3BhcmVudHMsCisJCQkgICAgIDB4ODAsIDB4ODQsIDB4ODgsIDgsIDIsIDE1LCAweDAwNCwgMjUpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfQVVEX0lOVEJVUywgImF1ZF9pbnRidXNfc2VsIiwKKwkJCSAgICAgYXVkX2ludGJ1c19wYXJlbnRzLCAweDgwLCAweDg0LCAweDg4LAorCQkJICAgICAxNiwgMiwgMjMsIDB4MDA0LCAyNiksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9GUFdSQVBfVUxQT1NDLCAiZnB3cmFwX3VscG9zY19zZWwiLAorCQkJICAgICBmcHdyYXBfdWxwb3NjX3BhcmVudHMsIDB4ODAsIDB4ODQsIDB4ODgsCisJCQkgICAgIDI0LCAzLCAzMSwgMHgwMDQsIDI3KSwKKwkvKiBDTEtfQ0ZHXzcgKi8KKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0FUQiwgImF0Yl9zZWwiLCBhdGJfcGFyZW50cywKKwkJCSAgICAgMHg5MCwgMHg5NCwgMHg5OCwgMCwgMiwgNywgMHgwMDQsIDI4KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRF9GTEFHUyhDTEtfVE9QX1NTUE0sICJzc3BtX3NlbCIsIHNzcG1fcGFyZW50cywKKwkJCQkgICAweDkwLCAweDk0LCAweDk4LCA4LCAzLCAxNSwKKwkJCQkgICAweDAwNCwgMjksIENMS19JU19DUklUSUNBTCksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9EUEkwLCAiZHBpMF9zZWwiLCBkcGkwX3BhcmVudHMsCisJCQkgICAgIDB4OTAsIDB4OTQsIDB4OTgsIDE2LCAzLCAyMywgMHgwMDQsIDMwKSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX1NDQU0sICJzY2FtX3NlbCIsIHNjYW1fcGFyZW50cywKKwkJCSAgICAgMHg5MCwgMHg5NCwgMHg5OCwgMjQsIDEsIDMxLCAweDAwNCwgMCksCisJLyogQ0xLX0NGR184ICovCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9ESVNQX1BXTSwgImRpc3Bwd21fc2VsIiwKKwkJCSAgICAgZGlzcHB3bV9wYXJlbnRzLCAweGEwLCAweGE0LCAweGE4LAorCQkJICAgICAwLCAzLCA3LCAweDAwOCwgMSksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9VU0JfVE9QLCAidXNiX3RvcF9zZWwiLAorCQkJICAgICB1c2JfdG9wX3BhcmVudHMsIDB4YTAsIDB4YTQsIDB4YTgsCisJCQkgICAgIDgsIDIsIDE1LCAweDAwOCwgMiksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9TU1VTQl9UT1BfWEhDSSwgInNzdXNiX3RvcF94aGNpX3NlbCIsCisJCQkgICAgIHNzdXNiX3RvcF94aGNpX3BhcmVudHMsIDB4YTAsIDB4YTQsIDB4YTgsCisJCQkgICAgIDE2LCAyLCAyMywgMHgwMDgsIDMpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEX0ZMQUdTKENMS19UT1BfU1BNLCAic3BtX3NlbCIsIHNwbV9wYXJlbnRzLAorCQkJCSAgIDB4YTAsIDB4YTQsIDB4YTgsIDI0LCAyLCAzMSwKKwkJCQkgICAweDAwOCwgNCwgQ0xLX0lTX0NSSVRJQ0FMKSwKKwkvKiBDTEtfQ0ZHXzkgKi8KKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0kyQywgImkyY19zZWwiLCBpMmNfcGFyZW50cywKKwkJCSAgICAgMHhiMCwgMHhiNCwgMHhiOCwgMCwgMiwgNywgMHgwMDgsIDUpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfU0VOSU5GLCAic2VuaW5mX3NlbCIsIHNlbmluZl9wYXJlbnRzLAorCQkJICAgICAweGIwLCAweGI0LCAweGI4LCA4LCAyLCAxNSwgMHgwMDgsIDYpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfU0VOSU5GMSwgInNlbmluZjFfc2VsIiwKKwkJCSAgICAgc2VuaW5mMV9wYXJlbnRzLCAweGIwLCAweGI0LCAweGI4LAorCQkJICAgICAxNiwgMiwgMjMsIDB4MDA4LCA3KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX1NFTklORjIsICJzZW5pbmYyX3NlbCIsCisJCQkgICAgIHNlbmluZjJfcGFyZW50cywgMHhiMCwgMHhiNCwgMHhiOCwKKwkJCSAgICAgMjQsIDIsIDMxLCAweDAwOCwgOCksCisJLyogQ0xLX0NGR18xMCAqLworCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfRFhDQywgImR4Y2Nfc2VsIiwgZHhjY19wYXJlbnRzLAorCQkJICAgICAweGMwLCAweGM0LCAweGM4LCAwLCAyLCA3LCAweDAwOCwgOSksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9BVURfRU5HMSwgImF1ZF9lbmcxX3NlbCIsCisJCQkgICAgIGF1ZF9lbmdlbjFfcGFyZW50cywgMHhjMCwgMHhjNCwgMHhjOCwKKwkJCSAgICAgOCwgMiwgMTUsIDB4MDA4LCAxMCksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9BVURfRU5HMiwgImF1ZF9lbmcyX3NlbCIsCisJCQkgICAgIGF1ZF9lbmdlbjJfcGFyZW50cywgMHhjMCwgMHhjNCwgMHhjOCwKKwkJCSAgICAgMTYsIDIsIDIzLCAweDAwOCwgMTEpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfRkFFU19VRlNGREUsICJmYWVzX3Vmc2ZkZV9zZWwiLAorCQkJICAgICBmYWVzX3Vmc2ZkZV9wYXJlbnRzLCAweGMwLCAweGM0LCAweGM4LAorCQkJICAgICAyNCwgMywgMzEsCisJCQkgICAgIDB4MDA4LCAxMiksCisJLyogQ0xLX0NGR18xMSAqLworCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfRlVGUywgImZ1ZnNfc2VsIiwgZnVmc19wYXJlbnRzLAorCQkJICAgICAweGQwLCAweGQ0LCAweGQ4LCAwLCAyLCA3LCAweDAwOCwgMTMpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfQVVEXzEsICJhdWRfMV9zZWwiLCBhdWRfMV9wYXJlbnRzLAorCQkJICAgICAweGQwLCAweGQ0LCAweGQ4LCA4LCAxLCAxNSwgMHgwMDgsIDE0KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0FVRF8yLCAiYXVkXzJfc2VsIiwgYXVkXzJfcGFyZW50cywKKwkJCSAgICAgMHhkMCwgMHhkNCwgMHhkOCwgMTYsIDEsIDIzLCAweDAwOCwgMTUpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfQURTUCwgImFkc3Bfc2VsIiwgYWRzcF9wYXJlbnRzLAorCQkJICAgICAweGQwLCAweGQ0LCAweGQ4LCAyNCwgMywgMzEsIDB4MDA4LCAxNiksCisJLyogQ0xLX0NGR18xMiAqLworCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfRFBNQUlGLCAiZHBtYWlmX3NlbCIsIGRwbWFpZl9wYXJlbnRzLAorCQkJICAgICAweGUwLCAweGU0LCAweGU4LCAwLCAzLCA3LCAweDAwOCwgMTcpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfVkVOQywgInZlbmNfc2VsIiwgdmVuY19wYXJlbnRzLAorCQkJICAgICAweGUwLCAweGU0LCAweGU4LCA4LCA0LCAxNSwgMHgwMDgsIDE4KSwKKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX1ZERUMsICJ2ZGVjX3NlbCIsIHZkZWNfcGFyZW50cywKKwkJCSAgICAgMHhlMCwgMHhlNCwgMHhlOCwgMTYsIDQsIDIzLCAweDAwOCwgMTkpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfQ0FNVE0sICJjYW10bV9zZWwiLCBjYW10bV9wYXJlbnRzLAorCQkJICAgICAweGUwLCAweGU0LCAweGU4LCAyNCwgMiwgMzEsIDB4MDA0LCAyMCksCisJLyogQ0xLX0NGR18xMyAqLworCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfUFdNLCAicHdtX3NlbCIsIHB3bV9wYXJlbnRzLAorCQkJICAgICAweGYwLCAweGY0LCAweGY4LCAwLCAxLCA3LCAweDAwOCwgMjEpLAorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfQVVEX0gsICJhdWRpb19oX3NlbCIsCisJCQkgICAgIGF1ZGlvX2hfcGFyZW50cywgMHhmMCwgMHhmNCwgMHhmOCwKKwkJCSAgICAgOCwgMiwgMTUsIDB4MDA4LCAyMiksCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9DQU1URzUsICJjYW10ZzVfc2VsIiwgY2FtdGc1X3BhcmVudHMsCisJCQkgICAgIDB4ZjAsIDB4ZjQsIDB4ZjgsIDI0LCAzLCAzMSwgMHgwMDgsIDI0KSwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaTJzMF9tX2NrX3BhcmVudHNbXSA9IHsKKwkiYXVkXzFfc2VsIiwKKwkiYXVkXzJfc2VsIgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpMnMxX21fY2tfcGFyZW50c1tdID0geworCSJhdWRfMV9zZWwiLAorCSJhdWRfMl9zZWwiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGkyczJfbV9ja19wYXJlbnRzW10gPSB7CisJImF1ZF8xX3NlbCIsCisJImF1ZF8yX3NlbCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaTJzM19tX2NrX3BhcmVudHNbXSA9IHsKKwkiYXVkXzFfc2VsIiwKKwkiYXVkXzJfc2VsIgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpMnM0X21fY2tfcGFyZW50c1tdID0geworCSJhdWRfMV9zZWwiLAorCSJhdWRfMl9zZWwiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGkyczVfbV9ja19wYXJlbnRzW10gPSB7CisJImF1ZF8xX3NlbCIsCisJImF1ZF8yX3NlbCIKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2NvbXBvc2l0ZSB0b3BfYXVkX211eGVzW10gPSB7CisJTVVYKENMS19UT1BfSTJTMF9NX1NFTCwgImkyczBfbV9ja19zZWwiLCBpMnMwX21fY2tfcGFyZW50cywKKwkgICAgMHgzMjAsIDgsIDEpLAorCU1VWChDTEtfVE9QX0kyUzFfTV9TRUwsICJpMnMxX21fY2tfc2VsIiwgaTJzMV9tX2NrX3BhcmVudHMsCisJICAgIDB4MzIwLCA5LCAxKSwKKwlNVVgoQ0xLX1RPUF9JMlMyX01fU0VMLCAiaTJzMl9tX2NrX3NlbCIsIGkyczJfbV9ja19wYXJlbnRzLAorCSAgICAweDMyMCwgMTAsIDEpLAorCU1VWChDTEtfVE9QX0kyUzNfTV9TRUwsICJpMnMzX21fY2tfc2VsIiwgaTJzM19tX2NrX3BhcmVudHMsCisJICAgIDB4MzIwLCAxMSwgMSksCisJTVVYKENMS19UT1BfSTJTNF9NX1NFTCwgImkyczRfbV9ja19zZWwiLCBpMnM0X21fY2tfcGFyZW50cywKKwkgICAgMHgzMjAsIDEyLCAxKSwKKwlNVVgoQ0xLX1RPUF9JMlM1X01fU0VMLCAiaTJzNV9tX2NrX3NlbCIsIGkyczVfbV9ja19wYXJlbnRzLAorCSAgICAweDMyOCwgMjAsIDEpLAorfTsKKworc3RhdGljIHN0cnVjdCBtdGtfY29tcG9zaXRlIHRvcF9hdWRfZGl2c1tdID0geworCURJVl9HQVRFKENMS19UT1BfQVBMTDEyX0RJVjAsICJhcGxsMTJfZGl2MCIsICJpMnMwX21fY2tfc2VsIiwKKwkJIDB4MzIwLCAyLCAweDMyNCwgOCwgMCksCisJRElWX0dBVEUoQ0xLX1RPUF9BUExMMTJfRElWMSwgImFwbGwxMl9kaXYxIiwgImkyczFfbV9ja19zZWwiLAorCQkgMHgzMjAsIDMsIDB4MzI0LCA4LCA4KSwKKwlESVZfR0FURShDTEtfVE9QX0FQTEwxMl9ESVYyLCAiYXBsbDEyX2RpdjIiLCAiaTJzMl9tX2NrX3NlbCIsCisJCSAweDMyMCwgNCwgMHgzMjQsIDgsIDE2KSwKKwlESVZfR0FURShDTEtfVE9QX0FQTEwxMl9ESVYzLCAiYXBsbDEyX2RpdjMiLCAiaTJzM19tX2NrX3NlbCIsCisJCSAweDMyMCwgNSwgMHgzMjQsIDgsIDI0KSwKKwlESVZfR0FURShDTEtfVE9QX0FQTEwxMl9ESVY0LCAiYXBsbDEyX2RpdjQiLCAiaTJzNF9tX2NrX3NlbCIsCisJCSAweDMyMCwgNiwgMHgzMjgsIDgsIDApLAorCURJVl9HQVRFKENMS19UT1BfQVBMTDEyX0RJVkIsICJhcGxsMTJfZGl2YiIsICJhcGxsMTJfZGl2NCIsCisJCSAweDMyMCwgNywgMHgzMjgsIDgsIDgpLAorCURJVl9HQVRFKENMS19UT1BfQVBMTDEyX0RJVjUsICJhcGxsMTJfZGl2NSIsICJpMnM1X21fY2tfc2VsIiwKKwkJIDB4MzI4LCAxNiwgMHgzMjgsIDQsIDI4KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBpbmZyYTBfY2dfcmVncyA9IHsKKwkuc2V0X29mcyA9IDB4ODAsCisJLmNscl9vZnMgPSAweDg0LAorCS5zdGFfb2ZzID0gMHg5MCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBpbmZyYTFfY2dfcmVncyA9IHsKKwkuc2V0X29mcyA9IDB4ODgsCisJLmNscl9vZnMgPSAweDhjLAorCS5zdGFfb2ZzID0gMHg5NCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBpbmZyYTJfY2dfcmVncyA9IHsKKwkuc2V0X29mcyA9IDB4YTQsCisJLmNscl9vZnMgPSAweGE4LAorCS5zdGFfb2ZzID0gMHhhYywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBpbmZyYTNfY2dfcmVncyA9IHsKKwkuc2V0X29mcyA9IDB4YzAsCisJLmNscl9vZnMgPSAweGM0LAorCS5zdGFfb2ZzID0gMHhjOCwKK307CisKKyNkZWZpbmUgR0FURV9JTkZSQTAoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQkJXAorCUdBVEVfTVRLKF9pZCwgX25hbWUsIF9wYXJlbnQsICZpbmZyYTBfY2dfcmVncywgX3NoaWZ0LAlcCisJCSZtdGtfY2xrX2dhdGVfb3BzX3NldGNscikKKyNkZWZpbmUgR0FURV9JTkZSQTEoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQkJXAorCUdBVEVfTVRLKF9pZCwgX25hbWUsIF9wYXJlbnQsICZpbmZyYTFfY2dfcmVncywgX3NoaWZ0LAlcCisJCSZtdGtfY2xrX2dhdGVfb3BzX3NldGNscikKKyNkZWZpbmUgR0FURV9JTkZSQTIoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQkJXAorCUdBVEVfTVRLKF9pZCwgX25hbWUsIF9wYXJlbnQsICZpbmZyYTJfY2dfcmVncywgX3NoaWZ0LAlcCisJCSZtdGtfY2xrX2dhdGVfb3BzX3NldGNscikKKyNkZWZpbmUgR0FURV9JTkZSQTMoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQkJXAorCUdBVEVfTVRLKF9pZCwgX25hbWUsIF9wYXJlbnQsICZpbmZyYTNfY2dfcmVncywgX3NoaWZ0LAlcCisJCSZtdGtfY2xrX2dhdGVfb3BzX3NldGNscikKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZSBpbmZyYV9jbGtzW10gPSB7CisJLyogSU5GUkEwICovCisJR0FURV9JTkZSQTAoQ0xLX0lORlJBX1BNSUNfVE1SLCAiaW5mcmFfcG1pY190bXIiLAorCQkgICAgImF4aV9zZWwiLCAwKSwKKwlHQVRFX0lORlJBMChDTEtfSU5GUkFfUE1JQ19BUCwgImluZnJhX3BtaWNfYXAiLAorCQkgICAgImF4aV9zZWwiLCAxKSwKKwlHQVRFX0lORlJBMChDTEtfSU5GUkFfUE1JQ19NRCwgImluZnJhX3BtaWNfbWQiLAorCQkgICAgImF4aV9zZWwiLCAyKSwKKwlHQVRFX0lORlJBMChDTEtfSU5GUkFfUE1JQ19DT05OLCAiaW5mcmFfcG1pY19jb25uIiwKKwkJICAgICJheGlfc2VsIiwgMyksCisJR0FURV9JTkZSQTAoQ0xLX0lORlJBX1NDUFNZUywgImluZnJhX3NjcCIsCisJCSAgICAiYXhpX3NlbCIsIDQpLAorCUdBVEVfSU5GUkEwKENMS19JTkZSQV9TRUosICJpbmZyYV9zZWoiLAorCQkgICAgImZfZjI2bV9jayIsIDUpLAorCUdBVEVfSU5GUkEwKENMS19JTkZSQV9BUFhHUFQsICJpbmZyYV9hcHhncHQiLAorCQkgICAgImF4aV9zZWwiLCA2KSwKKwlHQVRFX0lORlJBMChDTEtfSU5GUkFfSUNVU0IsICJpbmZyYV9pY3VzYiIsCisJCSAgICAiYXhpX3NlbCIsIDgpLAorCUdBVEVfSU5GUkEwKENMS19JTkZSQV9HQ0UsICJpbmZyYV9nY2UiLAorCQkgICAgImF4aV9zZWwiLCA5KSwKKwlHQVRFX0lORlJBMChDTEtfSU5GUkFfVEhFUk0sICJpbmZyYV90aGVybSIsCisJCSAgICAiYXhpX3NlbCIsIDEwKSwKKwlHQVRFX0lORlJBMChDTEtfSU5GUkFfSTJDMCwgImluZnJhX2kyYzAiLAorCQkgICAgImkyY19zZWwiLCAxMSksCisJR0FURV9JTkZSQTAoQ0xLX0lORlJBX0kyQzEsICJpbmZyYV9pMmMxIiwKKwkJICAgICJpMmNfc2VsIiwgMTIpLAorCUdBVEVfSU5GUkEwKENMS19JTkZSQV9JMkMyLCAiaW5mcmFfaTJjMiIsCisJCSAgICAiaTJjX3NlbCIsIDEzKSwKKwlHQVRFX0lORlJBMChDTEtfSU5GUkFfSTJDMywgImluZnJhX2kyYzMiLAorCQkgICAgImkyY19zZWwiLCAxNCksCisJR0FURV9JTkZSQTAoQ0xLX0lORlJBX1BXTV9IQ0xLLCAiaW5mcmFfcHdtX2hjbGsiLAorCQkgICAgInB3bV9zZWwiLCAxNSksCisJR0FURV9JTkZSQTAoQ0xLX0lORlJBX1BXTTEsICJpbmZyYV9wd20xIiwKKwkJICAgICJwd21fc2VsIiwgMTYpLAorCUdBVEVfSU5GUkEwKENMS19JTkZSQV9QV00yLCAiaW5mcmFfcHdtMiIsCisJCSAgICAicHdtX3NlbCIsIDE3KSwKKwlHQVRFX0lORlJBMChDTEtfSU5GUkFfUFdNMywgImluZnJhX3B3bTMiLAorCQkgICAgInB3bV9zZWwiLCAxOCksCisJR0FURV9JTkZSQTAoQ0xLX0lORlJBX1BXTTQsICJpbmZyYV9wd200IiwKKwkJICAgICJwd21fc2VsIiwgMTkpLAorCUdBVEVfSU5GUkEwKENMS19JTkZSQV9QV00sICJpbmZyYV9wd20iLAorCQkgICAgInB3bV9zZWwiLCAyMSksCisJR0FURV9JTkZSQTAoQ0xLX0lORlJBX1VBUlQxLCAiaW5mcmFfdWFydDEiLAorCQkgICAgInVhcnRfc2VsIiwgMjMpLAorCUdBVEVfSU5GUkEwKENMS19JTkZSQV9VQVJUMiwgImluZnJhX3VhcnQyIiwKKwkJICAgICJ1YXJ0X3NlbCIsIDI0KSwKKwlHQVRFX0lORlJBMChDTEtfSU5GUkFfVUFSVDMsICJpbmZyYV91YXJ0MyIsCisJCSAgICAidWFydF9zZWwiLCAyNSksCisJR0FURV9JTkZSQTAoQ0xLX0lORlJBX0dDRV8yNk0sICJpbmZyYV9nY2VfMjZtIiwKKwkJICAgICJheGlfc2VsIiwgMjcpLAorCUdBVEVfSU5GUkEwKENMS19JTkZSQV9DUV9ETUFfRlBDLCAiaW5mcmFfY3FkbWFfZnBjIiwKKwkJICAgICJheGlfc2VsIiwgMjgpLAorCUdBVEVfSU5GUkEwKENMS19JTkZSQV9CVElGLCAiaW5mcmFfYnRpZiIsCisJCSAgICAiYXhpX3NlbCIsIDMxKSwKKwkvKiBJTkZSQTEgKi8KKwlHQVRFX0lORlJBMShDTEtfSU5GUkFfU1BJMCwgImluZnJhX3NwaTAiLAorCQkgICAgInNwaV9zZWwiLCAxKSwKKwlHQVRFX0lORlJBMShDTEtfSU5GUkFfTVNEQzAsICJpbmZyYV9tc2RjMCIsCisJCSAgICAibXNkYzUwX2hjbGtfc2VsIiwgMiksCisJR0FURV9JTkZSQTEoQ0xLX0lORlJBX01TREMxLCAiaW5mcmFfbXNkYzEiLAorCQkgICAgImF4aV9zZWwiLCA0KSwKKwlHQVRFX0lORlJBMShDTEtfSU5GUkFfTVNEQzIsICJpbmZyYV9tc2RjMiIsCisJCSAgICAiYXhpX3NlbCIsIDUpLAorCUdBVEVfSU5GUkExKENMS19JTkZSQV9NU0RDMF9TQ0ssICJpbmZyYV9tc2RjMF9zY2siLAorCQkgICAgIm1zZGM1MF8wX3NlbCIsIDYpLAorCUdBVEVfSU5GUkExKENMS19JTkZSQV9EVkZTUkMsICJpbmZyYV9kdmZzcmMiLAorCQkgICAgImZfZjI2bV9jayIsIDcpLAorCUdBVEVfSU5GUkExKENMS19JTkZSQV9HQ1BVLCAiaW5mcmFfZ2NwdSIsCisJCSAgICAiYXhpX3NlbCIsIDgpLAorCUdBVEVfSU5GUkExKENMS19JTkZSQV9UUk5HLCAiaW5mcmFfdHJuZyIsCisJCSAgICAiYXhpX3NlbCIsIDkpLAorCUdBVEVfSU5GUkExKENMS19JTkZSQV9BVVhBREMsICJpbmZyYV9hdXhhZGMiLAorCQkgICAgImZfZjI2bV9jayIsIDEwKSwKKwlHQVRFX0lORlJBMShDTEtfSU5GUkFfQ1BVTSwgImluZnJhX2NwdW0iLAorCQkgICAgImF4aV9zZWwiLCAxMSksCisJR0FURV9JTkZSQTEoQ0xLX0lORlJBX0NDSUYxX0FQLCAiaW5mcmFfY2NpZjFfYXAiLAorCQkgICAgImF4aV9zZWwiLCAxMiksCisJR0FURV9JTkZSQTEoQ0xLX0lORlJBX0NDSUYxX01ELCAiaW5mcmFfY2NpZjFfbWQiLAorCQkgICAgImF4aV9zZWwiLCAxMyksCisJR0FURV9JTkZSQTEoQ0xLX0lORlJBX0FVWEFEQ19NRCwgImluZnJhX2F1eGFkY19tZCIsCisJCSAgICAiZl9mMjZtX2NrIiwgMTQpLAorCUdBVEVfSU5GUkExKENMS19JTkZSQV9NU0RDMV9TQ0ssICJpbmZyYV9tc2RjMV9zY2siLAorCQkgICAgIm1zZGMzMF8xX3NlbCIsIDE2KSwKKwlHQVRFX0lORlJBMShDTEtfSU5GUkFfTVNEQzJfU0NLLCAiaW5mcmFfbXNkYzJfc2NrIiwKKwkJICAgICJtc2RjMzBfMl9zZWwiLCAxNyksCisJR0FURV9JTkZSQTEoQ0xLX0lORlJBX0FQX0RNQSwgImluZnJhX2FwZG1hIiwKKwkJICAgICJheGlfc2VsIiwgMTgpLAorCUdBVEVfSU5GUkExKENMS19JTkZSQV9YSVUsICJpbmZyYV94aXUiLAorCQkgICAgImF4aV9zZWwiLCAxOSksCisJR0FURV9JTkZSQTEoQ0xLX0lORlJBX0RFVklDRV9BUEMsICJpbmZyYV9kZXZpY2VfYXBjIiwKKwkJICAgICJheGlfc2VsIiwgMjApLAorCUdBVEVfSU5GUkExKENMS19JTkZSQV9DQ0lGX0FQLCAiaW5mcmFfY2NpZl9hcCIsCisJCSAgICAiYXhpX3NlbCIsIDIzKSwKKwlHQVRFX0lORlJBMShDTEtfSU5GUkFfREVCVUdTWVMsICJpbmZyYV9kZWJ1Z3N5cyIsCisJCSAgICAiYXhpX3NlbCIsIDI0KSwKKwlHQVRFX0lORlJBMShDTEtfSU5GUkFfQVVELCAiaW5mcmFfYXVkaW8iLAorCQkgICAgImF4aV9zZWwiLCAyNSksCisJR0FURV9JTkZSQTEoQ0xLX0lORlJBX0NDSUZfTUQsICJpbmZyYV9jY2lmX21kIiwKKwkJICAgICJheGlfc2VsIiwgMjYpLAorCUdBVEVfSU5GUkExKENMS19JTkZSQV9EWENDX1NFQ19DT1JFLCAiaW5mcmFfZHhjY19zZWNfY29yZSIsCisJCSAgICAiZHhjY19zZWwiLCAyNyksCisJR0FURV9JTkZSQTEoQ0xLX0lORlJBX0RYQ0NfQU8sICJpbmZyYV9keGNjX2FvIiwKKwkJICAgICJkeGNjX3NlbCIsIDI4KSwKKwlHQVRFX0lORlJBMShDTEtfSU5GUkFfREVWTVBVX0JDTEssICJpbmZyYV9kZXZtcHVfYmNsayIsCisJCSAgICAiYXhpX3NlbCIsIDMwKSwKKwlHQVRFX0lORlJBMShDTEtfSU5GUkFfRFJBTUNfRjI2TSwgImluZnJhX2RyYW1jX2YyNm0iLAorCQkgICAgImZfZjI2bV9jayIsIDMxKSwKKwkvKiBJTkZSQTIgKi8KKwlHQVRFX0lORlJBMihDTEtfSU5GUkFfSVJUWCwgImluZnJhX2lydHgiLAorCQkgICAgImZfZjI2bV9jayIsIDApLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9VU0IsICJpbmZyYV91c2IiLAorCQkgICAgInVzYl90b3Bfc2VsIiwgMSksCisJR0FURV9JTkZSQTIoQ0xLX0lORlJBX0RJU1BfUFdNLCAiaW5mcmFfZGlzcHB3bSIsCisJCSAgICAiYXhpX3NlbCIsIDIpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9BVURfMjZNX0JDTEssCisJCSAgICAiaW5mcmFjZmdfYW9fYXVkaW9fMjZtX2JjbGsiLCAiZl9mMjZtX2NrIiwgNCksCisJR0FURV9JTkZSQTIoQ0xLX0lORlJBX1NQSTEsICJpbmZyYV9zcGkxIiwKKwkJICAgICJzcGlfc2VsIiwgNiksCisJR0FURV9JTkZSQTIoQ0xLX0lORlJBX0kyQzQsICJpbmZyYV9pMmM0IiwKKwkJICAgICJpMmNfc2VsIiwgNyksCisJR0FURV9JTkZSQTIoQ0xLX0lORlJBX01PREVNX1RFTVBfU0hBUkUsICJpbmZyYV9tZF90bXBfc2hhcmUiLAorCQkgICAgImZfZjI2bV9jayIsIDgpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9TUEkyLCAiaW5mcmFfc3BpMiIsCisJCSAgICAic3BpX3NlbCIsIDkpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9TUEkzLCAiaW5mcmFfc3BpMyIsCisJCSAgICAic3BpX3NlbCIsIDEwKSwKKwlHQVRFX0lORlJBMihDTEtfSU5GUkFfVU5JUFJPX1NDSywgImluZnJhX3VuaXByb19zY2siLAorCQkgICAgImZ1ZnNfc2VsIiwgMTEpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9VTklQUk9fVElDSywgImluZnJhX3VuaXByb190aWNrIiwKKwkJICAgICJmdWZzX3NlbCIsIDEyKSwKKwlHQVRFX0lORlJBMihDTEtfSU5GUkFfVUZTX01QX1NBUF9CQ0xLLCAiaW5mcmFfdWZzX21wX3NhcF9iY2siLAorCQkgICAgImZ1ZnNfc2VsIiwgMTMpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9NRDMyX0JDTEssICJpbmZyYV9tZDMyX2JjbGsiLAorCQkgICAgImF4aV9zZWwiLCAxNCksCisJR0FURV9JTkZSQTIoQ0xLX0lORlJBX1VOSVBST19NQklTVCwgImluZnJhX3VuaXByb19tYmlzdCIsCisJCSAgICAiYXhpX3NlbCIsIDE2KSwKKwlHQVRFX0lORlJBMihDTEtfSU5GUkFfU1NQTV9CVVNfSENMSywgImluZnJhX3NzcG1fYnVzX2hjbGsiLAorCQkgICAgImF4aV9zZWwiLCAxNyksCisJR0FURV9JTkZSQTIoQ0xLX0lORlJBX0kyQzUsICJpbmZyYV9pMmM1IiwKKwkJICAgICJpMmNfc2VsIiwgMTgpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9JMkM1X0FSQklURVIsICJpbmZyYV9pMmM1X2FyYml0ZXIiLAorCQkgICAgImkyY19zZWwiLCAxOSksCisJR0FURV9JTkZSQTIoQ0xLX0lORlJBX0kyQzVfSU1NLCAiaW5mcmFfaTJjNV9pbW0iLAorCQkgICAgImkyY19zZWwiLCAyMCksCisJR0FURV9JTkZSQTIoQ0xLX0lORlJBX0kyQzFfQVJCSVRFUiwgImluZnJhX2kyYzFfYXJiaXRlciIsCisJCSAgICAiaTJjX3NlbCIsIDIxKSwKKwlHQVRFX0lORlJBMihDTEtfSU5GUkFfSTJDMV9JTU0sICJpbmZyYV9pMmMxX2ltbSIsCisJCSAgICAiaTJjX3NlbCIsIDIyKSwKKwlHQVRFX0lORlJBMihDTEtfSU5GUkFfSTJDMl9BUkJJVEVSLCAiaW5mcmFfaTJjMl9hcmJpdGVyIiwKKwkJICAgICJpMmNfc2VsIiwgMjMpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9JMkMyX0lNTSwgImluZnJhX2kyYzJfaW1tIiwKKwkJICAgICJpMmNfc2VsIiwgMjQpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9TUEk0LCAiaW5mcmFfc3BpNCIsCisJCSAgICAic3BpX3NlbCIsIDI1KSwKKwlHQVRFX0lORlJBMihDTEtfSU5GUkFfU1BJNSwgImluZnJhX3NwaTUiLAorCQkgICAgInNwaV9zZWwiLCAyNiksCisJR0FURV9JTkZSQTIoQ0xLX0lORlJBX0NRX0RNQSwgImluZnJhX2NxZG1hIiwKKwkJICAgICJheGlfc2VsIiwgMjcpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9VRlMsICJpbmZyYV91ZnMiLAorCQkgICAgImZ1ZnNfc2VsIiwgMjgpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9BRVNfVUZTRkRFLCAiaW5mcmFfYWVzX3Vmc2ZkZSIsCisJCSAgICAiZmFlc191ZnNmZGVfc2VsIiwgMjkpLAorCUdBVEVfSU5GUkEyKENMS19JTkZSQV9VRlNfVElDSywgImluZnJhX3Vmc190aWNrIiwKKwkJICAgICJmdWZzX3NlbCIsIDMwKSwKKwlHQVRFX0lORlJBMihDTEtfSU5GUkFfU1NVU0JfWEhDSSwgImluZnJhX3NzdXNiX3hoY2kiLAorCQkgICAgInNzdXNiX3RvcF94aGNpX3NlbCIsIDMxKSwKKwkvKiBJTkZSQTMgKi8KKwlHQVRFX0lORlJBMyhDTEtfSU5GUkFfTVNEQzBfU0VMRiwgImluZnJhX21zZGMwX3NlbGYiLAorCQkgICAgIm1zZGM1MF8wX3NlbCIsIDApLAorCUdBVEVfSU5GUkEzKENMS19JTkZSQV9NU0RDMV9TRUxGLCAiaW5mcmFfbXNkYzFfc2VsZiIsCisJCSAgICAibXNkYzUwXzBfc2VsIiwgMSksCisJR0FURV9JTkZSQTMoQ0xLX0lORlJBX01TREMyX1NFTEYsICJpbmZyYV9tc2RjMl9zZWxmIiwKKwkJICAgICJtc2RjNTBfMF9zZWwiLCAyKSwKKwlHQVRFX0lORlJBMyhDTEtfSU5GUkFfU1NQTV8yNk1fU0VMRiwgImluZnJhX3NzcG1fMjZtX3NlbGYiLAorCQkgICAgImZfZjI2bV9jayIsIDMpLAorCUdBVEVfSU5GUkEzKENMS19JTkZSQV9TU1BNXzMyS19TRUxGLCAiaW5mcmFfc3NwbV8zMmtfc2VsZiIsCisJCSAgICAiZl9mMjZtX2NrIiwgNCksCisJR0FURV9JTkZSQTMoQ0xLX0lORlJBX1VGU19BWEksICJpbmZyYV91ZnNfYXhpIiwKKwkJICAgICJheGlfc2VsIiwgNSksCisJR0FURV9JTkZSQTMoQ0xLX0lORlJBX0kyQzYsICJpbmZyYV9pMmM2IiwKKwkJICAgICJpMmNfc2VsIiwgNiksCisJR0FURV9JTkZSQTMoQ0xLX0lORlJBX0FQX01TREMwLCAiaW5mcmFfYXBfbXNkYzAiLAorCQkgICAgIm1zZGM1MF9oY2xrX3NlbCIsIDcpLAorCUdBVEVfSU5GUkEzKENMS19JTkZSQV9NRF9NU0RDMCwgImluZnJhX21kX21zZGMwIiwKKwkJICAgICJtc2RjNTBfaGNsa19zZWwiLCA4KSwKKwlHQVRFX0lORlJBMyhDTEtfSU5GUkFfQ0NJRjJfQVAsICJpbmZyYV9jY2lmMl9hcCIsCisJCSAgICAiYXhpX3NlbCIsIDE2KSwKKwlHQVRFX0lORlJBMyhDTEtfSU5GUkFfQ0NJRjJfTUQsICJpbmZyYV9jY2lmMl9tZCIsCisJCSAgICAiYXhpX3NlbCIsIDE3KSwKKwlHQVRFX0lORlJBMyhDTEtfSU5GUkFfQ0NJRjNfQVAsICJpbmZyYV9jY2lmM19hcCIsCisJCSAgICAiYXhpX3NlbCIsIDE4KSwKKwlHQVRFX0lORlJBMyhDTEtfSU5GUkFfQ0NJRjNfTUQsICJpbmZyYV9jY2lmM19tZCIsCisJCSAgICAiYXhpX3NlbCIsIDE5KSwKKwlHQVRFX0lORlJBMyhDTEtfSU5GUkFfU0VKX0YxM00sICJpbmZyYV9zZWpfZjEzbSIsCisJCSAgICAiZl9mMjZtX2NrIiwgMjApLAorCUdBVEVfSU5GUkEzKENMS19JTkZSQV9BRVNfQkNMSywgImluZnJhX2Flc19iY2xrIiwKKwkJICAgICJheGlfc2VsIiwgMjEpLAorCUdBVEVfSU5GUkEzKENMS19JTkZSQV9JMkM3LCAiaW5mcmFfaTJjNyIsCisJCSAgICAiaTJjX3NlbCIsIDIyKSwKKwlHQVRFX0lORlJBMyhDTEtfSU5GUkFfSTJDOCwgImluZnJhX2kyYzgiLAorCQkgICAgImkyY19zZWwiLCAyMyksCisJR0FURV9JTkZSQTMoQ0xLX0lORlJBX0ZCSVNUMkZQQywgImluZnJhX2ZiaXN0MmZwYyIsCisJCSAgICAibXNkYzUwXzBfc2VsIiwgMjQpLAorCUdBVEVfSU5GUkEzKENMS19JTkZSQV9EUE1BSUZfQ0ssICJpbmZyYV9kcG1haWYiLAorCQkgICAgImRwbWFpZl9zZWwiLCAyNiksCisJR0FURV9JTkZSQTMoQ0xLX0lORlJBX0ZBRFNQLCAiaW5mcmFfZmFkc3AiLAorCQkgICAgImFkc3Bfc2VsIiwgMjcpLAorCUdBVEVfSU5GUkEzKENMS19JTkZSQV9DQ0lGNF9BUCwgImluZnJhX2NjaWY0X2FwIiwKKwkJICAgICJheGlfc2VsIiwgMjgpLAorCUdBVEVfSU5GUkEzKENMS19JTkZSQV9DQ0lGNF9NRCwgImluZnJhX2NjaWY0X21kIiwKKwkJICAgICJheGlfc2VsIiwgMjkpLAorCUdBVEVfSU5GUkEzKENMS19JTkZSQV9TUEk2LCAiaW5mcmFfc3BpNiIsCisJCSAgICAic3BpX3NlbCIsIDMwKSwKKwlHQVRFX0lORlJBMyhDTEtfSU5GUkFfU1BJNywgImluZnJhX3NwaTciLAorCQkgICAgInNwaV9zZWwiLCAzMSksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgYXBtaXhlZF9jZ19yZWdzID0geworCS5zZXRfb2ZzID0gMHgyMCwKKwkuY2xyX29mcyA9IDB4MjAsCisJLnN0YV9vZnMgPSAweDIwLAorfTsKKworI2RlZmluZSBHQVRFX0FQTUlYRURfRkxBR1MoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0LCBfZmxhZ3MpCVwKKwlHQVRFX01US19GTEFHUyhfaWQsIF9uYW1lLCBfcGFyZW50LCAmYXBtaXhlZF9jZ19yZWdzLAkJXAorCQlfc2hpZnQsICZtdGtfY2xrX2dhdGVfb3BzX25vX3NldGNscl9pbnYsIF9mbGFncykKKworI2RlZmluZSBHQVRFX0FQTUlYRUQoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQlcCisJR0FURV9BUE1JWEVEX0ZMQUdTKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCwJMCkKKworLyoKKyAqIENSSVRJQ0FMIENMT0NLOgorICogYXBtaXhlZF9hcHBsbDI2bSBpcyB0aGUgdG9wcGVzdCBjbG9jayBnYXRlIG9mIGFsbCBQTExzLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlIGFwbWl4ZWRfY2xrc1tdID0geworCUdBVEVfQVBNSVhFRChDTEtfQVBNSVhFRF9TU1VTQjI2TSwgImFwbWl4ZWRfc3N1c2IyNm0iLAorCQkgICAgICJmX2YyNm1fY2siLCA0KSwKKwlHQVRFX0FQTUlYRURfRkxBR1MoQ0xLX0FQTUlYRURfQVBQTEwyNk0sICJhcG1peGVkX2FwcGxsMjZtIiwKKwkJCSAgICJmX2YyNm1fY2siLCA1LCBDTEtfSVNfQ1JJVElDQUwpLAorCUdBVEVfQVBNSVhFRChDTEtfQVBNSVhFRF9NSVBJQzBfMjZNLCAiYXBtaXhlZF9taXBpYzAyNm0iLAorCQkgICAgICJmX2YyNm1fY2siLCA2KSwKKwlHQVRFX0FQTUlYRUQoQ0xLX0FQTUlYRURfTURQTExHUDI2TSwgImFwbWl4ZWRfbWRwbGwyNm0iLAorCQkgICAgICJmX2YyNm1fY2siLCA3KSwKKwlHQVRFX0FQTUlYRUQoQ0xLX0FQTUlYRURfTU1fRjI2TSwgImFwbWl4ZWRfbW1zeXMyNm0iLAorCQkgICAgICJmX2YyNm1fY2siLCA4KSwKKwlHQVRFX0FQTUlYRUQoQ0xLX0FQTUlYRURfVUZTMjZNLCAiYXBtaXhlZF91ZnMyNm0iLAorCQkgICAgICJmX2YyNm1fY2siLCA5KSwKKwlHQVRFX0FQTUlYRUQoQ0xLX0FQTUlYRURfTUlQSUMxXzI2TSwgImFwbWl4ZWRfbWlwaWMxMjZtIiwKKwkJICAgICAiZl9mMjZtX2NrIiwgMTEpLAorCUdBVEVfQVBNSVhFRChDTEtfQVBNSVhFRF9NRU1QTEwyNk0sICJhcG1peGVkX21lbXBsbDI2bSIsCisJCSAgICAgImZfZjI2bV9jayIsIDEzKSwKKwlHQVRFX0FQTUlYRUQoQ0xLX0FQTUlYRURfQ0xLU1FfTFZQTExfMjZNLCAiYXBtaXhlZF9sdnBsbDI2bSIsCisJCSAgICAgImZfZjI2bV9jayIsIDE0KSwKKwlHQVRFX0FQTUlYRUQoQ0xLX0FQTUlYRURfTUlQSUQwXzI2TSwgImFwbWl4ZWRfbWlwaWQwMjZtIiwKKwkJICAgICAiZl9mMjZtX2NrIiwgMTYpLAorCUdBVEVfQVBNSVhFRChDTEtfQVBNSVhFRF9NSVBJRDFfMjZNLCAiYXBtaXhlZF9taXBpZDEyNm0iLAorCQkgICAgICJmX2YyNm1fY2siLCAxNyksCit9OworCisjZGVmaW5lIE1UNjc3OV9QTExfRk1BWAkJKDM4MDBVTCAqIE1IWikKKyNkZWZpbmUgTVQ2Nzc5X1BMTF9GTUlOCQkoMTUwMFVMICogTUhaKQorCisjZGVmaW5lIFBMTF9CKF9pZCwgX25hbWUsIF9yZWcsIF9wd3JfcmVnLCBfZW5fbWFzaywgX2ZsYWdzLAkJXAorCQkJX3JzdF9iYXJfbWFzaywgX3Bjd2JpdHMsIF9wY3dpYml0cywgX3BkX3JlZywJXAorCQkJX3BkX3NoaWZ0LCBfdHVuZXJfcmVnLCAgX3R1bmVyX2VuX3JlZywJCVwKKwkJCV90dW5lcl9lbl9iaXQsIF9wY3dfcmVnLCBfcGN3X3NoaWZ0LAkJXAorCQkJX3Bjd19jaGdfcmVnLCBfZGl2X3RhYmxlKSB7CQkJXAorCQkuaWQgPSBfaWQsCQkJCQkJXAorCQkubmFtZSA9IF9uYW1lLAkJCQkJCVwKKwkJLnJlZyA9IF9yZWcsCQkJCQkJXAorCQkucHdyX3JlZyA9IF9wd3JfcmVnLAkJCQkJXAorCQkuZW5fbWFzayA9IF9lbl9tYXNrLAkJCQkJXAorCQkuZmxhZ3MgPSBfZmxhZ3MsCQkJCQlcCisJCS5yc3RfYmFyX21hc2sgPSBfcnN0X2Jhcl9tYXNrLAkJCQlcCisJCS5mbWF4ID0gTVQ2Nzc5X1BMTF9GTUFYLAkJCQlcCisJCS5mbWluID0gTVQ2Nzc5X1BMTF9GTUlOLAkJCQlcCisJCS5wY3diaXRzID0gX3Bjd2JpdHMsCQkJCQlcCisJCS5wY3dpYml0cyA9IF9wY3dpYml0cywJCQkJCVwKKwkJLnBkX3JlZyA9IF9wZF9yZWcsCQkJCQlcCisJCS5wZF9zaGlmdCA9IF9wZF9zaGlmdCwJCQkJCVwKKwkJLnR1bmVyX3JlZyA9IF90dW5lcl9yZWcsCQkJCVwKKwkJLnR1bmVyX2VuX3JlZyA9IF90dW5lcl9lbl9yZWcsCQkJCVwKKwkJLnR1bmVyX2VuX2JpdCA9IF90dW5lcl9lbl9iaXQsCQkJCVwKKwkJLnBjd19yZWcgPSBfcGN3X3JlZywJCQkJCVwKKwkJLnBjd19zaGlmdCA9IF9wY3dfc2hpZnQsCQkJCVwKKwkJLnBjd19jaGdfcmVnID0gX3Bjd19jaGdfcmVnLAkJCQlcCisJCS5kaXZfdGFibGUgPSBfZGl2X3RhYmxlLAkJCQlcCisJfQorCisjZGVmaW5lIFBMTChfaWQsIF9uYW1lLCBfcmVnLCBfcHdyX3JlZywgX2VuX21hc2ssIF9mbGFncywJCVwKKwkJCV9yc3RfYmFyX21hc2ssIF9wY3diaXRzLCBfcGN3aWJpdHMsIF9wZF9yZWcsCVwKKwkJCV9wZF9zaGlmdCwgX3R1bmVyX3JlZywgX3R1bmVyX2VuX3JlZywJCVwKKwkJCV90dW5lcl9lbl9iaXQsIF9wY3dfcmVnLCBfcGN3X3NoaWZ0LAkJXAorCQkJX3Bjd19jaGdfcmVnKQkJCQkJXAorCQlQTExfQihfaWQsIF9uYW1lLCBfcmVnLCBfcHdyX3JlZywgX2VuX21hc2ssIF9mbGFncywJXAorCQkJX3JzdF9iYXJfbWFzaywgX3Bjd2JpdHMsIF9wY3dpYml0cywgX3BkX3JlZywJXAorCQkJX3BkX3NoaWZ0LCBfdHVuZXJfcmVnLCBfdHVuZXJfZW5fcmVnLAkJXAorCQkJX3R1bmVyX2VuX2JpdCwgX3Bjd19yZWcsIF9wY3dfc2hpZnQsCQlcCisJCQlfcGN3X2NoZ19yZWcsIE5VTEwpCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3BsbF9kYXRhIHBsbHNbXSA9IHsKKwlQTEwoQ0xLX0FQTUlYRURfQVJNUExMX0xMLCAiYXJtcGxsX2xsIiwgMHgwMjAwLCAweDAyMEMsIEJJVCgwKSwKKwkgICAgUExMX0FPLCAwLCAyMiwgOCwgMHgwMjA0LCAyNCwgMCwgMCwgMCwgMHgwMjA0LCAwLCAwKSwKKwlQTEwoQ0xLX0FQTUlYRURfQVJNUExMX0JMLCAiYXJtcGxsX2JsIiwgMHgwMjEwLCAweDAyMUMsIEJJVCgwKSwKKwkgICAgUExMX0FPLCAwLCAyMiwgOCwgMHgwMjE0LCAyNCwgMCwgMCwgMCwgMHgwMjE0LCAwLCAwKSwKKwlQTEwoQ0xLX0FQTUlYRURfQ0NJUExMLCAiY2NpcGxsIiwgMHgwMkEwLCAweDAyQUMsIEJJVCgwKSwKKwkgICAgUExMX0FPLCAwLCAyMiwgOCwgMHgwMkE0LCAyNCwgMCwgMCwgMCwgMHgwMkE0LCAwLCAwKSwKKwlQTEwoQ0xLX0FQTUlYRURfTUFJTlBMTCwgIm1haW5wbGwiLCAweDAyMzAsIDB4MDIzQywgQklUKDApLAorCSAgICAoSEFWRV9SU1RfQkFSKSwgQklUKDI0KSwgMjIsIDgsIDB4MDIzNCwgMjQsIDAsIDAsIDAsCisJICAgIDB4MDIzNCwgMCwgMCksCisJUExMKENMS19BUE1JWEVEX1VOSVYyUExMLCAidW5pdjJwbGwiLCAweDAyNDAsIDB4MDI0QywgQklUKDApLAorCSAgICAoSEFWRV9SU1RfQkFSKSwgQklUKDI0KSwgMjIsIDgsIDB4MDI0NCwgMjQsCisJICAgIDAsIDAsIDAsIDB4MDI0NCwgMCwgMCksCisJUExMKENMS19BUE1JWEVEX01GR1BMTCwgIm1mZ3BsbCIsIDB4MDI1MCwgMHgwMjVDLCBCSVQoMCksCisJICAgIDAsIDAsIDIyLCA4LCAweDAyNTQsIDI0LCAwLCAwLCAwLCAweDAyNTQsIDAsIDApLAorCVBMTChDTEtfQVBNSVhFRF9NU0RDUExMLCAibXNkY3BsbCIsIDB4MDI2MCwgMHgwMjZDLCBCSVQoMCksCisJICAgIDAsIDAsIDIyLCA4LCAweDAyNjQsIDI0LCAwLCAwLCAwLCAweDAyNjQsIDAsIDApLAorCVBMTChDTEtfQVBNSVhFRF9UVkRQTEwsICJ0dmRwbGwiLCAweDAyNzAsIDB4MDI3QywgQklUKDApLAorCSAgICAwLCAwLCAyMiwgOCwgMHgwMjc0LCAyNCwgMCwgMCwgMCwgMHgwMjc0LCAwLCAwKSwKKwlQTEwoQ0xLX0FQTUlYRURfQURTUFBMTCwgImFkc3BwbGwiLCAweDAyYjAsIDB4MDJiQywgQklUKDApLAorCSAgICAoSEFWRV9SU1RfQkFSKSwgQklUKDIzKSwgMjIsIDgsIDB4MDJiNCwgMjQsCisJICAgIDAsIDAsIDAsIDB4MDJiNCwgMCwgMCksCisJUExMKENMS19BUE1JWEVEX01NUExMLCAibW1wbGwiLCAweDAyODAsIDB4MDI4QywgQklUKDApLAorCSAgICAoSEFWRV9SU1RfQkFSKSwgQklUKDIzKSwgMjIsIDgsIDB4MDI4NCwgMjQsCisJICAgIDAsIDAsIDAsIDB4MDI4NCwgMCwgMCksCisJUExMKENMS19BUE1JWEVEX0FQTEwxLCAiYXBsbDEiLCAweDAyQzAsIDB4MDJEMCwgQklUKDApLAorCSAgICAwLCAwLCAzMiwgOCwgMHgwMkMwLCAxLCAwLCAweDE0LCAwLCAweDAyQzQsIDAsIDB4MkMwKSwKKwlQTEwoQ0xLX0FQTUlYRURfQVBMTDIsICJhcGxsMiIsIDB4MDJENCwgMHgwMkU0LCBCSVQoMCksCisJICAgIDAsIDAsIDMyLCA4LCAweDAyRDQsIDEsIDAsIDB4MTQsIDEsIDB4MDJEOCwgMCwgMHgwMkQ0KSwKK307CisKK3N0YXRpYyBpbnQgY2xrX210Njc3OV9hcG1peGVkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOworCisJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xLX0FQTUlYRURfTlJfQ0xLKTsKKworCW10a19jbGtfcmVnaXN0ZXJfcGxscyhub2RlLCBwbGxzLCBBUlJBWV9TSVpFKHBsbHMpLCBjbGtfZGF0YSk7CisKKwltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUsIGFwbWl4ZWRfY2xrcywKKwkJCSAgICAgICBBUlJBWV9TSVpFKGFwbWl4ZWRfY2xrcyksIGNsa19kYXRhKTsKKworCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKK30KKworc3RhdGljIGludCBjbGtfbXQ2Nzc5X3RvcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCByZXNvdXJjZSAqcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwl2b2lkIF9faW9tZW0gKmJhc2U7CisJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOworCisJYmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOworCWlmIChJU19FUlIoYmFzZSkpCisJCXJldHVybiBQVFJfRVJSKGJhc2UpOworCisJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xLX1RPUF9OUl9DTEspOworCisJbXRrX2Nsa19yZWdpc3Rlcl9maXhlZF9jbGtzKHRvcF9maXhlZF9jbGtzLCBBUlJBWV9TSVpFKHRvcF9maXhlZF9jbGtzKSwKKwkJCQkgICAgY2xrX2RhdGEpOworCisJbXRrX2Nsa19yZWdpc3Rlcl9mYWN0b3JzKHRvcF9kaXZzLCBBUlJBWV9TSVpFKHRvcF9kaXZzKSwgY2xrX2RhdGEpOworCisJbXRrX2Nsa19yZWdpc3Rlcl9tdXhlcyh0b3BfbXV4ZXMsIEFSUkFZX1NJWkUodG9wX211eGVzKSwKKwkJCSAgICAgICBub2RlLCAmbXQ2Nzc5X2Nsa19sb2NrLCBjbGtfZGF0YSk7CisKKwltdGtfY2xrX3JlZ2lzdGVyX2NvbXBvc2l0ZXModG9wX2F1ZF9tdXhlcywgQVJSQVlfU0laRSh0b3BfYXVkX211eGVzKSwKKwkJCQkgICAgYmFzZSwgJm10Njc3OV9jbGtfbG9jaywgY2xrX2RhdGEpOworCisJbXRrX2Nsa19yZWdpc3Rlcl9jb21wb3NpdGVzKHRvcF9hdWRfZGl2cywgQVJSQVlfU0laRSh0b3BfYXVkX2RpdnMpLAorCQkJCSAgICBiYXNlLCAmbXQ2Nzc5X2Nsa19sb2NrLCBjbGtfZGF0YSk7CisKKwlyZXR1cm4gb2ZfY2xrX2FkZF9wcm92aWRlcihub2RlLCBvZl9jbGtfc3JjX29uZWNlbGxfZ2V0LCBjbGtfZGF0YSk7Cit9CisKK3N0YXRpYyBpbnQgY2xrX210Njc3OV9pbmZyYV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKKworCWNsa19kYXRhID0gbXRrX2FsbG9jX2Nsa19kYXRhKENMS19JTkZSQV9OUl9DTEspOworCisJbXRrX2Nsa19yZWdpc3Rlcl9nYXRlcyhub2RlLCBpbmZyYV9jbGtzLCBBUlJBWV9TSVpFKGluZnJhX2Nsa3MpLAorCQkJICAgICAgIGNsa19kYXRhKTsKKworCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgb2ZfbWF0Y2hfY2xrX210Njc3OVtdID0geworCXsKKwkJLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2Nzc5LWFwbWl4ZWQiLAorCQkuZGF0YSA9IGNsa19tdDY3NzlfYXBtaXhlZF9wcm9iZSwKKwl9LCB7CisJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10Njc3OS10b3Bja2dlbiIsCisJCS5kYXRhID0gY2xrX210Njc3OV90b3BfcHJvYmUsCisJfSwgeworCQkuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDY3NzktaW5mcmFjZmdfYW8iLAorCQkuZGF0YSA9IGNsa19tdDY3NzlfaW5mcmFfcHJvYmUsCisJfSwgeworCQkvKiBzZW50aW5lbCAqLworCX0KK307CisKK3N0YXRpYyBpbnQgY2xrX210Njc3OV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCWludCAoKmNsa19wcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7CisJaW50IHI7CisKKwljbGtfcHJvYmUgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7CisJaWYgKCFjbGtfcHJvYmUpCisJCXJldHVybiAtRUlOVkFMOworCisJciA9IGNsa19wcm9iZShwZGV2KTsKKwlpZiAocikKKwkJZGV2X2VycigmcGRldi0+ZGV2LAorCQkJImNvdWxkIG5vdCByZWdpc3RlciBjbG9jayBwcm92aWRlcjogJXM6ICVkXG4iLAorCQkJcGRldi0+bmFtZSwgcik7CisKKwlyZXR1cm4gcjsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2xrX210Njc3OV9kcnYgPSB7CisJLnByb2JlID0gY2xrX210Njc3OV9wcm9iZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJjbGstbXQ2Nzc5IiwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210Njc3OSwKKwl9LAorfTsKKworc3RhdGljIGludCBfX2luaXQgY2xrX210Njc3OV9pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmY2xrX210Njc3OV9kcnYpOworfQorCithcmNoX2luaXRjYWxsKGNsa19tdDY3NzlfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ4MTgzLW1mZ2NmZy5jIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10ODE4My1tZmdjZmcuYwppbmRleCA5OWE2YjAyLi4zN2I0MTYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ4MTgzLW1mZ2NmZy5jCisrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDgxODMtbWZnY2ZnLmMKQEAgLTUsNiArNSw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAKICNpbmNsdWRlICJjbGstbXRrLmgiCiAjaW5jbHVkZSAiY2xrLWdhdGUuaCIKQEAgLTMwLDEwICszMSwxMiBAQCBzdGF0aWMgaW50IGNsa19tdDgxODNfbWZnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOwogCisJcG1fcnVudGltZV9lbmFibGUoJnBkZXYtPmRldik7CisKIAljbGtfZGF0YSA9IG10a19hbGxvY19jbGtfZGF0YShDTEtfTUZHX05SX0NMSyk7CiAKLQltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUsIG1mZ19jbGtzLCBBUlJBWV9TSVpFKG1mZ19jbGtzKSwKLQkJCWNsa19kYXRhKTsKKwltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzX3dpdGhfZGV2KG5vZGUsIG1mZ19jbGtzLCBBUlJBWV9TSVpFKG1mZ19jbGtzKSwKKwkJCWNsa19kYXRhLCAmcGRldi0+ZGV2KTsKIAogCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDgxODMuYyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDgxODMuYwppbmRleCA3M2I3ZTIzLi41MWM4ZDVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ4MTgzLmMKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10ODE4My5jCkBAIC0xNyw2ICsxNyw5IEBACiAKICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9tdDgxODMtY2xrLmg+CiAKKy8qIEluZnJhIGdsb2JhbCBjb250cm9sbGVyIHJlc2V0IHNldCByZWdpc3RlciAqLworI2RlZmluZSBJTkZSQV9SU1QwX1NFVF9PRkZTRVQJCTB4MTIwCisKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobXQ4MTgzX2Nsa19sb2NrKTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZml4ZWRfY2xrIHRvcF9maXhlZF9jbGtzW10gPSB7CkBAIC0xMDAxLDYgKzEwMDQsMjAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZSBpbmZyYV9jbGtzW10gPSB7CiAJCSJtc2RjNTBfMF9zZWwiLCAyNCksCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgcGVyaV9jZ19yZWdzID0geworCS5zZXRfb2ZzID0gMHgyMGMsCisJLmNscl9vZnMgPSAweDIwYywKKwkuc3RhX29mcyA9IDB4MjBjLAorfTsKKworI2RlZmluZSBHQVRFX1BFUkkoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KQkJCVwKKwlHQVRFX01USyhfaWQsIF9uYW1lLCBfcGFyZW50LCAmcGVyaV9jZ19yZWdzLCBfc2hpZnQsCVwKKwkJJm10a19jbGtfZ2F0ZV9vcHNfbm9fc2V0Y2xyX2ludikKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZSBwZXJpX2Nsa3NbXSA9IHsKKwlHQVRFX1BFUkkoQ0xLX1BFUklfQVhJLCAicGVyaV9heGkiLCAiYXhpX3NlbCIsIDMxKSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBhcG1peGVkX2NnX3JlZ3MgPSB7CiAJLnNldF9vZnMgPSAweDIwLAogCS5jbHJfb2ZzID0gMHgyMCwKQEAgLTEyMDcsMTIgKzEyMjQsMzYgQEAgc3RhdGljIGludCBjbGtfbXQ4MTgzX2luZnJhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOworCWludCByOwogCiAJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xLX0lORlJBX05SX0NMSyk7CiAKIAltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUsIGluZnJhX2Nsa3MsIEFSUkFZX1NJWkUoaW5mcmFfY2xrcyksCiAJCWNsa19kYXRhKTsKIAorCXIgPSBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsKKwlpZiAocikgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsCisJCQkiJXMoKTogY291bGQgbm90IHJlZ2lzdGVyIGNsb2NrIHByb3ZpZGVyOiAlZFxuIiwKKwkJCV9fZnVuY19fLCByKTsKKwkJcmV0dXJuIHI7CisJfQorCisJbXRrX3JlZ2lzdGVyX3Jlc2V0X2NvbnRyb2xsZXJfc2V0X2Nscihub2RlLCA0LCBJTkZSQV9SU1QwX1NFVF9PRkZTRVQpOworCisJcmV0dXJuIHI7Cit9CisKK3N0YXRpYyBpbnQgY2xrX210ODE4M19wZXJpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOworCisJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xLX1BFUklfTlJfQ0xLKTsKKworCW10a19jbGtfcmVnaXN0ZXJfZ2F0ZXMobm9kZSwgcGVyaV9jbGtzLCBBUlJBWV9TSVpFKHBlcmlfY2xrcyksCisJCQkgICAgICAgY2xrX2RhdGEpOworCiAJcmV0dXJuIG9mX2Nsa19hZGRfcHJvdmlkZXIobm9kZSwgb2ZfY2xrX3NyY19vbmVjZWxsX2dldCwgY2xrX2RhdGEpOwogfQogCkBAIC0xMjQ2LDYgKzEyODcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tYXRjaF9jbGtfbXQ4MTgzW10gPSB7CiAJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE4My1pbmZyYWNmZyIsCiAJCS5kYXRhID0gY2xrX210ODE4M19pbmZyYV9wcm9iZSwKIAl9LCB7CisJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE4My1wZXJpY2ZnIiwKKwkJLmRhdGEgPSBjbGtfbXQ4MTgzX3BlcmlfcHJvYmUsCisJfSwgewogCQkuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxODMtbWN1Y2ZnIiwKIAkJLmRhdGEgPSBjbGtfbXQ4MTgzX21jdV9wcm9iZSwKIAl9LCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXRrLmMgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXRrLmMKaW5kZXggZDI4NzkwYy4uY2VjMWM4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10ay5jCisrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdGsuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogCiAjaW5jbHVkZSAiY2xrLW10ay5oIgogI2luY2x1ZGUgImNsay1nYXRlLmgiCkBAIC05Myw5ICs5NCwxMCBAQCB2b2lkIG10a19jbGtfcmVnaXN0ZXJfZmFjdG9ycyhjb25zdCBzdHJ1Y3QgbXRrX2ZpeGVkX2ZhY3RvciAqY2xrcywKIAl9CiB9CiAKLWludCBtdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKK2ludCBtdGtfY2xrX3JlZ2lzdGVyX2dhdGVzX3dpdGhfZGV2KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIAkJY29uc3Qgc3RydWN0IG10a19nYXRlICpjbGtzLAotCQlpbnQgbnVtLCBzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSAqY2xrX2RhdGEpCisJCWludCBudW0sIHN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YSwKKwkJc3RydWN0IGRldmljZSAqZGV2KQogewogCWludCBpOwogCXN0cnVjdCBjbGsgKmNsazsKQEAgLTEyMiw3ICsxMjQsNyBAQCBpbnQgbXRrX2Nsa19yZWdpc3Rlcl9nYXRlcyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJCQkJZ2F0ZS0+cmVncy0+c2V0X29mcywKIAkJCQlnYXRlLT5yZWdzLT5jbHJfb2ZzLAogCQkJCWdhdGUtPnJlZ3MtPnN0YV9vZnMsCi0JCQkJZ2F0ZS0+c2hpZnQsIGdhdGUtPm9wcywgZ2F0ZS0+ZmxhZ3MpOworCQkJCWdhdGUtPnNoaWZ0LCBnYXRlLT5vcHMsIGdhdGUtPmZsYWdzLCBkZXYpOwogCiAJCWlmIChJU19FUlIoY2xrKSkgewogCQkJcHJfZXJyKCJGYWlsZWQgdG8gcmVnaXN0ZXIgY2xrICVzOiAlbGRcbiIsCkBAIC0xMzYsNiArMTM4LDE0IEBAIGludCBtdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIAlyZXR1cm4gMDsKIH0KIAoraW50IG10a19jbGtfcmVnaXN0ZXJfZ2F0ZXMoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAorCQljb25zdCBzdHJ1Y3QgbXRrX2dhdGUgKmNsa3MsCisJCWludCBudW0sIHN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YSkKK3sKKwlyZXR1cm4gbXRrX2Nsa19yZWdpc3Rlcl9nYXRlc193aXRoX2Rldihub2RlLAorCQljbGtzLCBudW0sIGNsa19kYXRhLCBOVUxMKTsKK30KKwogc3RydWN0IGNsayAqbXRrX2Nsa19yZWdpc3Rlcl9jb21wb3NpdGUoY29uc3Qgc3RydWN0IG10a19jb21wb3NpdGUgKm1jLAogCQl2b2lkIF9faW9tZW0gKmJhc2UsIHNwaW5sb2NrX3QgKmxvY2spCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXRrLmggYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXRrLmgKaW5kZXggNzMzYTExZC4uYzNkNjc1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10ay5oCisrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdGsuaApAQCAtMTY5LDYgKzE2OSwxMSBAQCBpbnQgbXRrX2Nsa19yZWdpc3Rlcl9nYXRlcyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJCQljb25zdCBzdHJ1Y3QgbXRrX2dhdGUgKmNsa3MsIGludCBudW0sCiAJCQlzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSAqY2xrX2RhdGEpOwogCitpbnQgbXRrX2Nsa19yZWdpc3Rlcl9nYXRlc193aXRoX2RldihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCisJCWNvbnN0IHN0cnVjdCBtdGtfZ2F0ZSAqY2xrcywKKwkJaW50IG51bSwgc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhLAorCQlzdHJ1Y3QgZGV2aWNlICpkZXYpOworCiBzdHJ1Y3QgbXRrX2Nsa19kaXZpZGVyIHsKIAlpbnQgaWQ7CiAJY29uc3QgY2hhciAqbmFtZTsKQEAgLTI0MCw0ICsyNDUsNyBAQCBzdHJ1Y3QgY2xrICptdGtfY2xrX3JlZ2lzdGVyX3JlZjJ1c2JfdHgoY29uc3QgY2hhciAqbmFtZSwKIHZvaWQgbXRrX3JlZ2lzdGVyX3Jlc2V0X2NvbnRyb2xsZXIoc3RydWN0IGRldmljZV9ub2RlICpucCwKIAkJCXVuc2lnbmVkIGludCBudW1fcmVncywgaW50IHJlZ29mcyk7CiAKK3ZvaWQgbXRrX3JlZ2lzdGVyX3Jlc2V0X2NvbnRyb2xsZXJfc2V0X2NscihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAorCXVuc2lnbmVkIGludCBudW1fcmVncywgaW50IHJlZ29mcyk7CisKICNlbmRpZiAvKiBfX0RSVl9DTEtfTVRLX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL3Jlc2V0LmMgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9yZXNldC5jCmluZGV4IGQ4Mzc2YjkuLmNiOTM5YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL3Jlc2V0LmMKKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvcmVzZXQuYwpAQCAtMTksNiArMTksMjQgQEAgc3RydWN0IG10a19yZXNldCB7CiAJc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2IHJjZGV2OwogfTsKIAorc3RhdGljIGludCBtdGtfcmVzZXRfYXNzZXJ0X3NldF9jbHIoc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2ICpyY2RldiwKKwl1bnNpZ25lZCBsb25nIGlkKQoreworCXN0cnVjdCBtdGtfcmVzZXQgKmRhdGEgPSBjb250YWluZXJfb2YocmNkZXYsIHN0cnVjdCBtdGtfcmVzZXQsIHJjZGV2KTsKKwl1bnNpZ25lZCBpbnQgcmVnID0gZGF0YS0+cmVnb2ZzICsgKChpZCAvIDMyKSA8PCA0KTsKKworCXJldHVybiByZWdtYXBfd3JpdGUoZGF0YS0+cmVnbWFwLCByZWcsIDEpOworfQorCitzdGF0aWMgaW50IG10a19yZXNldF9kZWFzc2VydF9zZXRfY2xyKHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCisJdW5zaWduZWQgbG9uZyBpZCkKK3sKKwlzdHJ1Y3QgbXRrX3Jlc2V0ICpkYXRhID0gY29udGFpbmVyX29mKHJjZGV2LCBzdHJ1Y3QgbXRrX3Jlc2V0LCByY2Rldik7CisJdW5zaWduZWQgaW50IHJlZyA9IGRhdGEtPnJlZ29mcyArICgoaWQgLyAzMikgPDwgNCkgKyAweDQ7CisKKwlyZXR1cm4gcmVnbWFwX3dyaXRlKGRhdGEtPnJlZ21hcCwgcmVnLCAxKTsKK30KKwogc3RhdGljIGludCBtdGtfcmVzZXRfYXNzZXJ0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIGlkKQogewpAQCAtNDksMTQgKzY3LDMyIEBAIHN0YXRpYyBpbnQgbXRrX3Jlc2V0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCiAJcmV0dXJuIG10a19yZXNldF9kZWFzc2VydChyY2RldiwgaWQpOwogfQogCitzdGF0aWMgaW50IG10a19yZXNldF9zZXRfY2xyKHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCisJdW5zaWduZWQgbG9uZyBpZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gbXRrX3Jlc2V0X2Fzc2VydF9zZXRfY2xyKHJjZGV2LCBpZCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwlyZXR1cm4gbXRrX3Jlc2V0X2RlYXNzZXJ0X3NldF9jbHIocmNkZXYsIGlkKTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCByZXNldF9jb250cm9sX29wcyBtdGtfcmVzZXRfb3BzID0gewogCS5hc3NlcnQgPSBtdGtfcmVzZXRfYXNzZXJ0LAogCS5kZWFzc2VydCA9IG10a19yZXNldF9kZWFzc2VydCwKIAkucmVzZXQgPSBtdGtfcmVzZXQsCiB9OwogCi12b2lkIG10a19yZWdpc3Rlcl9yZXNldF9jb250cm9sbGVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCi0JCQl1bnNpZ25lZCBpbnQgbnVtX3JlZ3MsIGludCByZWdvZnMpCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlc2V0X2NvbnRyb2xfb3BzIG10a19yZXNldF9vcHNfc2V0X2NsciA9IHsKKwkuYXNzZXJ0ID0gbXRrX3Jlc2V0X2Fzc2VydF9zZXRfY2xyLAorCS5kZWFzc2VydCA9IG10a19yZXNldF9kZWFzc2VydF9zZXRfY2xyLAorCS5yZXNldCA9IG10a19yZXNldF9zZXRfY2xyLAorfTsKKworc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Jlc2V0X2NvbnRyb2xsZXJfY29tbW9uKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCisJCQl1bnNpZ25lZCBpbnQgbnVtX3JlZ3MsIGludCByZWdvZnMsCisJCQljb25zdCBzdHJ1Y3QgcmVzZXRfY29udHJvbF9vcHMgKnJlc2V0X29wcykKIHsKIAlzdHJ1Y3QgbXRrX3Jlc2V0ICpkYXRhOwogCWludCByZXQ7CkBAIC03Nyw3ICsxMTMsNyBAQCB2b2lkIG10a19yZWdpc3Rlcl9yZXNldF9jb250cm9sbGVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJZGF0YS0+cmVnb2ZzID0gcmVnb2ZzOwogCWRhdGEtPnJjZGV2Lm93bmVyID0gVEhJU19NT0RVTEU7CiAJZGF0YS0+cmNkZXYubnJfcmVzZXRzID0gbnVtX3JlZ3MgKiAzMjsKLQlkYXRhLT5yY2Rldi5vcHMgPSAmbXRrX3Jlc2V0X29wczsKKwlkYXRhLT5yY2Rldi5vcHMgPSByZXNldF9vcHM7CiAJZGF0YS0+cmNkZXYub2Zfbm9kZSA9IG5wOwogCiAJcmV0ID0gcmVzZXRfY29udHJvbGxlcl9yZWdpc3RlcigmZGF0YS0+cmNkZXYpOwpAQCAtODcsMyArMTIzLDE3IEBAIHZvaWQgbXRrX3JlZ2lzdGVyX3Jlc2V0X2NvbnRyb2xsZXIoc3RydWN0IGRldmljZV9ub2RlICpucCwKIAkJcmV0dXJuOwogCX0KIH0KKwordm9pZCBtdGtfcmVnaXN0ZXJfcmVzZXRfY29udHJvbGxlcihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAorCXVuc2lnbmVkIGludCBudW1fcmVncywgaW50IHJlZ29mcykKK3sKKwltdGtfcmVnaXN0ZXJfcmVzZXRfY29udHJvbGxlcl9jb21tb24obnAsIG51bV9yZWdzLCByZWdvZnMsCisJCSZtdGtfcmVzZXRfb3BzKTsKK30KKwordm9pZCBtdGtfcmVnaXN0ZXJfcmVzZXRfY29udHJvbGxlcl9zZXRfY2xyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCisJdW5zaWduZWQgaW50IG51bV9yZWdzLCBpbnQgcmVnb2ZzKQoreworCW10a19yZWdpc3Rlcl9yZXNldF9jb250cm9sbGVyX2NvbW1vbihucCwgbnVtX3JlZ3MsIHJlZ29mcywKKwkJJm10a19yZXNldF9vcHNfc2V0X2Nscik7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZXNvbi9heGctYXVkaW8uYyBiL2RyaXZlcnMvY2xrL21lc29uL2F4Zy1hdWRpby5jCmluZGV4IDc0MWRmN2UuLjE4YjIzY2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL21lc29uL2F4Zy1hdWRpby5jCisrKyBiL2RyaXZlcnMvY2xrL21lc29uL2F4Zy1hdWRpby5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KKyNpbmNsdWRlIDxsaW51eC9yZXNldC1jb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogCiAjaW5jbHVkZSAiYXhnLWF1ZGlvLmgiCkBAIC05MTgsNiArOTE5LDg0IEBAIHN0YXRpYyBpbnQgZGV2bV9jbGtfZ2V0X2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNoYXIgKmlkKQogCXJldHVybiAwOwogfQogCitzdHJ1Y3QgYXhnX2F1ZGlvX3Jlc2V0X2RhdGEgeworCXN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiByc3RjOworCXN0cnVjdCByZWdtYXAgKm1hcDsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0OworfTsKKworc3RhdGljIHZvaWQgYXhnX2F1ZGlvX3Jlc2V0X3JlZ19hbmRfYml0KHN0cnVjdCBheGdfYXVkaW9fcmVzZXRfZGF0YSAqcnN0LAorCQkJCQl1bnNpZ25lZCBsb25nIGlkLAorCQkJCQl1bnNpZ25lZCBpbnQgKnJlZywKKwkJCQkJdW5zaWduZWQgaW50ICpiaXQpCit7CisJdW5zaWduZWQgaW50IHN0cmlkZSA9IHJlZ21hcF9nZXRfcmVnX3N0cmlkZShyc3QtPm1hcCk7CisKKwkqcmVnID0gKGlkIC8gKHN0cmlkZSAqIEJJVFNfUEVSX0JZVEUpKSAqIHN0cmlkZTsKKwkqcmVnICs9IHJzdC0+b2Zmc2V0OworCSpiaXQgPSBpZCAlIChzdHJpZGUgKiBCSVRTX1BFUl9CWVRFKTsKK30KKworc3RhdGljIGludCBheGdfYXVkaW9fcmVzZXRfdXBkYXRlKHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCisJCQkJdW5zaWduZWQgbG9uZyBpZCwgYm9vbCBhc3NlcnQpCit7CisJc3RydWN0IGF4Z19hdWRpb19yZXNldF9kYXRhICpyc3QgPQorCQljb250YWluZXJfb2YocmNkZXYsIHN0cnVjdCBheGdfYXVkaW9fcmVzZXRfZGF0YSwgcnN0Yyk7CisJdW5zaWduZWQgaW50IG9mZnNldCwgYml0OworCisJYXhnX2F1ZGlvX3Jlc2V0X3JlZ19hbmRfYml0KHJzdCwgaWQsICZvZmZzZXQsICZiaXQpOworCisJcmVnbWFwX3VwZGF0ZV9iaXRzKHJzdC0+bWFwLCBvZmZzZXQsIEJJVChiaXQpLAorCQkJYXNzZXJ0ID8gQklUKGJpdCkgOiAwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF4Z19hdWRpb19yZXNldF9zdGF0dXMoc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2ICpyY2RldiwKKwkJCQl1bnNpZ25lZCBsb25nIGlkKQoreworCXN0cnVjdCBheGdfYXVkaW9fcmVzZXRfZGF0YSAqcnN0ID0KKwkJY29udGFpbmVyX29mKHJjZGV2LCBzdHJ1Y3QgYXhnX2F1ZGlvX3Jlc2V0X2RhdGEsIHJzdGMpOworCXVuc2lnbmVkIGludCB2YWwsIG9mZnNldCwgYml0OworCisJYXhnX2F1ZGlvX3Jlc2V0X3JlZ19hbmRfYml0KHJzdCwgaWQsICZvZmZzZXQsICZiaXQpOworCisJcmVnbWFwX3JlYWQocnN0LT5tYXAsIG9mZnNldCwgJnZhbCk7CisKKwlyZXR1cm4gISEodmFsICYgQklUKGJpdCkpOworfQorCitzdGF0aWMgaW50IGF4Z19hdWRpb19yZXNldF9hc3NlcnQoc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2ICpyY2RldiwKKwkJCQl1bnNpZ25lZCBsb25nIGlkKQoreworCXJldHVybiBheGdfYXVkaW9fcmVzZXRfdXBkYXRlKHJjZGV2LCBpZCwgdHJ1ZSk7Cit9CisKK3N0YXRpYyBpbnQgYXhnX2F1ZGlvX3Jlc2V0X2RlYXNzZXJ0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCisJCQkJdW5zaWduZWQgbG9uZyBpZCkKK3sKKwlyZXR1cm4gYXhnX2F1ZGlvX3Jlc2V0X3VwZGF0ZShyY2RldiwgaWQsIGZhbHNlKTsKK30KKworc3RhdGljIGludCBheGdfYXVkaW9fcmVzZXRfdG9nZ2xlKHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCisJCQkJdW5zaWduZWQgbG9uZyBpZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gYXhnX2F1ZGlvX3Jlc2V0X2Fzc2VydChyY2RldiwgaWQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gYXhnX2F1ZGlvX3Jlc2V0X2RlYXNzZXJ0KHJjZGV2LCBpZCk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzZXRfY29udHJvbF9vcHMgYXhnX2F1ZGlvX3JzdGNfb3BzID0geworCS5hc3NlcnQgPSBheGdfYXVkaW9fcmVzZXRfYXNzZXJ0LAorCS5kZWFzc2VydCA9IGF4Z19hdWRpb19yZXNldF9kZWFzc2VydCwKKwkucmVzZXQgPSBheGdfYXVkaW9fcmVzZXRfdG9nZ2xlLAorCS5zdGF0dXMgPSBheGdfYXVkaW9fcmVzZXRfc3RhdHVzLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGF4Z19hdWRpb19yZWdtYXBfY2ZnID0gewogCS5yZWdfYml0cwk9IDMyLAogCS52YWxfYml0cwk9IDMyLApAQCAtOTI3LDEyICsxMDA2LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBheGdfYXVkaW9fcmVnbWFwX2NmZyA9IHsKIAogc3RydWN0IGF1ZGlvY2xrX2RhdGEgewogCXN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhICpod19vbmVjZWxsX2RhdGE7CisJdW5zaWduZWQgaW50IHJlc2V0X29mZnNldDsKKwl1bnNpZ25lZCBpbnQgcmVzZXRfbnVtOwogfTsKIAogc3RhdGljIGludCBheGdfYXVkaW9fY2xrY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CiAJY29uc3Qgc3RydWN0IGF1ZGlvY2xrX2RhdGEgKmRhdGE7CisJc3RydWN0IGF4Z19hdWRpb19yZXNldF9kYXRhICpyc3Q7CiAJc3RydWN0IHJlZ21hcCAqbWFwOwogCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCXZvaWQgX19pb21lbSAqcmVnczsKQEAgLTk3MSwyMSArMTA1Myw0MyBAQCBzdGF0aWMgaW50IGF4Z19hdWRpb19jbGtjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkvKiBUYWtlIGNhcmUgdG8gc2tpcCB0aGUgcmVnaXN0ZXJlZCBpbnB1dCBjbG9ja3MgKi8KIAlmb3IgKGkgPSBBVURfQ0xLSURfRERSX0FSQjsgaSA8IGRhdGEtPmh3X29uZWNlbGxfZGF0YS0+bnVtOyBpKyspIHsKKwkJY29uc3QgY2hhciAqbmFtZTsKKwogCQlodyA9IGRhdGEtPmh3X29uZWNlbGxfZGF0YS0+aHdzW2ldOwogCQkvKiBhcnJheSBtaWdodCBiZSBzcGFyc2UgKi8KIAkJaWYgKCFodykKIAkJCWNvbnRpbnVlOwogCisJCW5hbWUgPSBody0+aW5pdC0+bmFtZTsKKwogCQlyZXQgPSBkZXZtX2Nsa19od19yZWdpc3RlcihkZXYsIGh3KTsKIAkJaWYgKHJldCkgewotCQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgY2xvY2sgJXNcbiIsCi0JCQkJaHctPmluaXQtPm5hbWUpOworCQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgY2xvY2sgJXNcbiIsIG5hbWUpOwogCQkJcmV0dXJuIHJldDsKIAkJfQogCX0KIAotCXJldHVybiBkZXZtX29mX2Nsa19hZGRfaHdfcHJvdmlkZXIoZGV2LCBvZl9jbGtfaHdfb25lY2VsbF9nZXQsCi0JCQkJCSAgIGRhdGEtPmh3X29uZWNlbGxfZGF0YSk7CisJcmV0ID0gZGV2bV9vZl9jbGtfYWRkX2h3X3Byb3ZpZGVyKGRldiwgb2ZfY2xrX2h3X29uZWNlbGxfZ2V0LAorCQkJCQlkYXRhLT5od19vbmVjZWxsX2RhdGEpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwkvKiBTdG9wIGhlcmUgaWYgdGhlcmUgaXMgbm8gcmVzZXQgKi8KKwlpZiAoIWRhdGEtPnJlc2V0X251bSkKKwkJcmV0dXJuIDA7CisKKwlyc3QgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnJzdCksIEdGUF9LRVJORUwpOworCWlmICghcnN0KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJzdC0+bWFwID0gbWFwOworCXJzdC0+b2Zmc2V0ID0gZGF0YS0+cmVzZXRfb2Zmc2V0OworCXJzdC0+cnN0Yy5ucl9yZXNldHMgPSBkYXRhLT5yZXNldF9udW07CisJcnN0LT5yc3RjLm9wcyA9ICZheGdfYXVkaW9fcnN0Y19vcHM7CisJcnN0LT5yc3RjLm9mX25vZGUgPSBkZXYtPm9mX25vZGU7CisJcnN0LT5yc3RjLm93bmVyID0gVEhJU19NT0RVTEU7CisKKwlyZXR1cm4gZGV2bV9yZXNldF9jb250cm9sbGVyX3JlZ2lzdGVyKGRldiwgJnJzdC0+cnN0Yyk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXVkaW9jbGtfZGF0YSBheGdfYXVkaW9jbGtfZGF0YSA9IHsKQEAgLTk5NCw2ICsxMDk4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdWRpb2Nsa19kYXRhIGF4Z19hdWRpb2Nsa19kYXRhID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGF1ZGlvY2xrX2RhdGEgZzEyYV9hdWRpb2Nsa19kYXRhID0gewogCS5od19vbmVjZWxsX2RhdGEgPSAmZzEyYV9hdWRpb19od19vbmVjZWxsX2RhdGEsCisJLnJlc2V0X29mZnNldCA9IEFVRElPX1NXX1JFU0VULAorCS5yZXNldF9udW0gPSAyNiwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGNsa2NfbWF0Y2hfdGFibGVbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lc29uL2F4Zy1hdWRpby5oIGIvZHJpdmVycy9jbGsvbWVzb24vYXhnLWF1ZGlvLmgKaW5kZXggNWQ5NzJkNS4uYzAwZTI4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbWVzb24vYXhnLWF1ZGlvLmgKKysrIGIvZHJpdmVycy9jbGsvbWVzb24vYXhnLWF1ZGlvLmgKQEAgLTIyLDYgKzIyLDcgQEAKICNkZWZpbmUgQVVESU9fTUNMS19GX0NUUkwJMHgwMTgKICNkZWZpbmUgQVVESU9fTVNUX1BBRF9DVFJMMAkweDAxYwogI2RlZmluZSBBVURJT19NU1RfUEFEX0NUUkwxCTB4MDIwCisjZGVmaW5lIEFVRElPX1NXX1JFU0VUCQkweDAyNAogI2RlZmluZSBBVURJT19NU1RfQV9TQ0xLX0NUUkwwCTB4MDQwCiAjZGVmaW5lIEFVRElPX01TVF9BX1NDTEtfQ1RSTDEJMHgwNDQKICNkZWZpbmUgQVVESU9fTVNUX0JfU0NMS19DVFJMMAkweDA0OApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVzb24vZzEyYS5jIGIvZHJpdmVycy9jbGsvbWVzb24vZzEyYS5jCmluZGV4IGMzZjBmZmMuLmVhNGM3OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL21lc29uL2cxMmEuYworKysgYi9kcml2ZXJzL2Nsay9tZXNvbi9nMTJhLmMKQEAgLTY3Niw2ICs2NzYsMjI2IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCBnMTJiX2NwdWJfY2xrID0gewogCX0sCiB9OwogCitzdGF0aWMgc3RydWN0IGNsa19yZWdtYXAgc20xX2dwMV9wbGw7CisKKy8qIERhdGFzaGVldCBuYW1lcyB0aGlzIGZpZWxkIGFzICJwcmVtdXgwIiAqLworc3RhdGljIHN0cnVjdCBjbGtfcmVnbWFwIHNtMV9kc3VfY2xrX3ByZW11eDAgPSB7CisJLmRhdGEgPSAmKHN0cnVjdCBjbGtfcmVnbWFwX211eF9kYXRhKXsKKwkJLm9mZnNldCA9IEhISV9TWVNfQ1BVX0NMS19DTlRMNSwKKwkJLm1hc2sgPSAweDMsCisJCS5zaGlmdCA9IDAsCisJfSwKKwkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJkc3VfY2xrX2R5bjBfc2VsIiwKKwkJLm9wcyA9ICZjbGtfcmVnbWFwX211eF9yb19vcHMsCisJCS5wYXJlbnRfZGF0YSA9IChjb25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIFtdKSB7CisJCQl7IC5md19uYW1lID0gInh0YWwiLCB9LAorCQkJeyAuaHcgPSAmZzEyYV9mY2xrX2RpdjIuaHcgfSwKKwkJCXsgLmh3ID0gJmcxMmFfZmNsa19kaXYzLmh3IH0sCisJCQl7IC5odyA9ICZzbTFfZ3AxX3BsbC5odyB9LAorCQl9LAorCQkubnVtX3BhcmVudHMgPSA0LAorCX0sCit9OworCisvKiBEYXRhc2hlZXQgbmFtZXMgdGhpcyBmaWVsZCBhcyAicHJlbXV4MSIgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCBzbTFfZHN1X2Nsa19wcmVtdXgxID0geworCS5kYXRhID0gJihzdHJ1Y3QgY2xrX3JlZ21hcF9tdXhfZGF0YSl7CisJCS5vZmZzZXQgPSBISElfU1lTX0NQVV9DTEtfQ05UTDUsCisJCS5tYXNrID0gMHgzLAorCQkuc2hpZnQgPSAxNiwKKwl9LAorCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImRzdV9jbGtfZHluMV9zZWwiLAorCQkub3BzID0gJmNsa19yZWdtYXBfbXV4X3JvX29wcywKKwkJLnBhcmVudF9kYXRhID0gKGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgW10pIHsKKwkJCXsgLmZ3X25hbWUgPSAieHRhbCIsIH0sCisJCQl7IC5odyA9ICZnMTJhX2ZjbGtfZGl2Mi5odyB9LAorCQkJeyAuaHcgPSAmZzEyYV9mY2xrX2RpdjMuaHcgfSwKKwkJCXsgLmh3ID0gJnNtMV9ncDFfcGxsLmh3IH0sCisJCX0sCisJCS5udW1fcGFyZW50cyA9IDQsCisJfSwKK307CisKKy8qIERhdGFzaGVldCBuYW1lcyB0aGlzIGZpZWxkIGFzICJNdXgwX2Rpdm5fdGNudCIgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCBzbTFfZHN1X2Nsa19tdXgwX2RpdiA9IHsKKwkuZGF0YSA9ICYoc3RydWN0IGNsa19yZWdtYXBfZGl2X2RhdGEpeworCQkub2Zmc2V0ID0gSEhJX1NZU19DUFVfQ0xLX0NOVEw1LAorCQkuc2hpZnQgPSA0LAorCQkud2lkdGggPSA2LAorCX0sCisJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZHN1X2Nsa19keW4wX2RpdiIsCisJCS5vcHMgPSAmY2xrX3JlZ21hcF9kaXZpZGVyX3JvX29wcywKKwkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10pIHsKKwkJCSZzbTFfZHN1X2Nsa19wcmVtdXgwLmh3CisJCX0sCisJCS5udW1fcGFyZW50cyA9IDEsCisJfSwKK307CisKKy8qIERhdGFzaGVldCBuYW1lcyB0aGlzIGZpZWxkIGFzICJwb3N0bXV4MCIgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCBzbTFfZHN1X2Nsa19wb3N0bXV4MCA9IHsKKwkuZGF0YSA9ICYoc3RydWN0IGNsa19yZWdtYXBfbXV4X2RhdGEpeworCQkub2Zmc2V0ID0gSEhJX1NZU19DUFVfQ0xLX0NOVEw1LAorCQkubWFzayA9IDB4MSwKKwkJLnNoaWZ0ID0gMiwKKwl9LAorCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImRzdV9jbGtfZHluMCIsCisJCS5vcHMgPSAmY2xrX3JlZ21hcF9tdXhfcm9fb3BzLAorCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSkgeworCQkJJnNtMV9kc3VfY2xrX3ByZW11eDAuaHcsCisJCQkmc20xX2RzdV9jbGtfbXV4MF9kaXYuaHcsCisJCX0sCisJCS5udW1fcGFyZW50cyA9IDIsCisJfSwKK307CisKKy8qIERhdGFzaGVldCBuYW1lcyB0aGlzIGZpZWxkIGFzICJNdXgxX2Rpdm5fdGNudCIgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCBzbTFfZHN1X2Nsa19tdXgxX2RpdiA9IHsKKwkuZGF0YSA9ICYoc3RydWN0IGNsa19yZWdtYXBfZGl2X2RhdGEpeworCQkub2Zmc2V0ID0gSEhJX1NZU19DUFVfQ0xLX0NOVEw1LAorCQkuc2hpZnQgPSAyMCwKKwkJLndpZHRoID0gNiwKKwl9LAorCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImRzdV9jbGtfZHluMV9kaXYiLAorCQkub3BzID0gJmNsa19yZWdtYXBfZGl2aWRlcl9yb19vcHMsCisJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKSB7CisJCQkmc20xX2RzdV9jbGtfcHJlbXV4MS5odworCQl9LAorCQkubnVtX3BhcmVudHMgPSAxLAorCX0sCit9OworCisvKiBEYXRhc2hlZXQgbmFtZXMgdGhpcyBmaWVsZCBhcyAicG9zdG11eDEiICovCitzdGF0aWMgc3RydWN0IGNsa19yZWdtYXAgc20xX2RzdV9jbGtfcG9zdG11eDEgPSB7CisJLmRhdGEgPSAmKHN0cnVjdCBjbGtfcmVnbWFwX211eF9kYXRhKXsKKwkJLm9mZnNldCA9IEhISV9TWVNfQ1BVX0NMS19DTlRMNSwKKwkJLm1hc2sgPSAweDEsCisJCS5zaGlmdCA9IDE4LAorCX0sCisJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZHN1X2Nsa19keW4xIiwKKwkJLm9wcyA9ICZjbGtfcmVnbWFwX211eF9yb19vcHMsCisJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKSB7CisJCQkmc20xX2RzdV9jbGtfcHJlbXV4MS5odywKKwkJCSZzbTFfZHN1X2Nsa19tdXgxX2Rpdi5odywKKwkJfSwKKwkJLm51bV9wYXJlbnRzID0gMiwKKwl9LAorfTsKKworLyogRGF0YXNoZWV0IG5hbWVzIHRoaXMgZmllbGQgYXMgIkZpbmFsX2R5bl9tdXhfc2VsIiAqLworc3RhdGljIHN0cnVjdCBjbGtfcmVnbWFwIHNtMV9kc3VfY2xrX2R5biA9IHsKKwkuZGF0YSA9ICYoc3RydWN0IGNsa19yZWdtYXBfbXV4X2RhdGEpeworCQkub2Zmc2V0ID0gSEhJX1NZU19DUFVfQ0xLX0NOVEw1LAorCQkubWFzayA9IDB4MSwKKwkJLnNoaWZ0ID0gMTAsCisJfSwKKwkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJkc3VfY2xrX2R5biIsCisJCS5vcHMgPSAmY2xrX3JlZ21hcF9tdXhfcm9fb3BzLAorCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSkgeworCQkJJnNtMV9kc3VfY2xrX3Bvc3RtdXgwLmh3LAorCQkJJnNtMV9kc3VfY2xrX3Bvc3RtdXgxLmh3LAorCQl9LAorCQkubnVtX3BhcmVudHMgPSAyLAorCX0sCit9OworCisvKiBEYXRhc2hlZXQgbmFtZXMgdGhpcyBmaWVsZCBhcyAiRmluYWxfbXV4X3NlbCIgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCBzbTFfZHN1X2ZpbmFsX2NsayA9IHsKKwkuZGF0YSA9ICYoc3RydWN0IGNsa19yZWdtYXBfbXV4X2RhdGEpeworCQkub2Zmc2V0ID0gSEhJX1NZU19DUFVfQ0xLX0NOVEw1LAorCQkubWFzayA9IDB4MSwKKwkJLnNoaWZ0ID0gMTEsCisJfSwKKwkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJkc3VfY2xrX2ZpbmFsIiwKKwkJLm9wcyA9ICZjbGtfcmVnbWFwX211eF9yb19vcHMsCisJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKSB7CisJCQkmc20xX2RzdV9jbGtfZHluLmh3LAorCQkJJmcxMmFfc3lzX3BsbC5odywKKwkJfSwKKwkJLm51bV9wYXJlbnRzID0gMiwKKwl9LAorfTsKKworLyogRGF0YXNoZWV0IG5hbWVzIHRoaXMgZmllbGQgYXMgIkNwdV9jbGtfc3luY19tdXhfc2VsIiBiaXQgMCAqLworc3RhdGljIHN0cnVjdCBjbGtfcmVnbWFwIHNtMV9jcHUxX2NsayA9IHsKKwkuZGF0YSA9ICYoc3RydWN0IGNsa19yZWdtYXBfbXV4X2RhdGEpeworCQkub2Zmc2V0ID0gSEhJX1NZU19DUFVfQ0xLX0NOVEw2LAorCQkubWFzayA9IDB4MSwKKwkJLnNoaWZ0ID0gMjQsCisJfSwKKwkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJjcHUxX2NsayIsCisJCS5vcHMgPSAmY2xrX3JlZ21hcF9tdXhfcm9fb3BzLAorCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSkgeworCQkJJmcxMmFfY3B1X2Nsay5odywKKwkJCS8qIFRoaXMgQ1BVIGFsc28gaGF2ZSBhIGRlZGljYXRlZCBjbG9jayB0cmVlICovCisJCX0sCisJCS5udW1fcGFyZW50cyA9IDEsCisJfSwKK307CisKKy8qIERhdGFzaGVldCBuYW1lcyB0aGlzIGZpZWxkIGFzICJDcHVfY2xrX3N5bmNfbXV4X3NlbCIgYml0IDEgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCBzbTFfY3B1Ml9jbGsgPSB7CisJLmRhdGEgPSAmKHN0cnVjdCBjbGtfcmVnbWFwX211eF9kYXRhKXsKKwkJLm9mZnNldCA9IEhISV9TWVNfQ1BVX0NMS19DTlRMNiwKKwkJLm1hc2sgPSAweDEsCisJCS5zaGlmdCA9IDI1LAorCX0sCisJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiY3B1Ml9jbGsiLAorCQkub3BzID0gJmNsa19yZWdtYXBfbXV4X3JvX29wcywKKwkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10pIHsKKwkJCSZnMTJhX2NwdV9jbGsuaHcsCisJCQkvKiBUaGlzIENQVSBhbHNvIGhhdmUgYSBkZWRpY2F0ZWQgY2xvY2sgdHJlZSAqLworCQl9LAorCQkubnVtX3BhcmVudHMgPSAxLAorCX0sCit9OworCisvKiBEYXRhc2hlZXQgbmFtZXMgdGhpcyBmaWVsZCBhcyAiQ3B1X2Nsa19zeW5jX211eF9zZWwiIGJpdCAyICovCitzdGF0aWMgc3RydWN0IGNsa19yZWdtYXAgc20xX2NwdTNfY2xrID0geworCS5kYXRhID0gJihzdHJ1Y3QgY2xrX3JlZ21hcF9tdXhfZGF0YSl7CisJCS5vZmZzZXQgPSBISElfU1lTX0NQVV9DTEtfQ05UTDYsCisJCS5tYXNrID0gMHgxLAorCQkuc2hpZnQgPSAyNiwKKwl9LAorCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImNwdTNfY2xrIiwKKwkJLm9wcyA9ICZjbGtfcmVnbWFwX211eF9yb19vcHMsCisJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKSB7CisJCQkmZzEyYV9jcHVfY2xrLmh3LAorCQkJLyogVGhpcyBDUFUgYWxzbyBoYXZlIGEgZGVkaWNhdGVkIGNsb2NrIHRyZWUgKi8KKwkJfSwKKwkJLm51bV9wYXJlbnRzID0gMSwKKwl9LAorfTsKKworLyogRGF0YXNoZWV0IG5hbWVzIHRoaXMgZmllbGQgYXMgIkNwdV9jbGtfc3luY19tdXhfc2VsIiBiaXQgNCAqLworc3RhdGljIHN0cnVjdCBjbGtfcmVnbWFwIHNtMV9kc3VfY2xrID0geworCS5kYXRhID0gJihzdHJ1Y3QgY2xrX3JlZ21hcF9tdXhfZGF0YSl7CisJCS5vZmZzZXQgPSBISElfU1lTX0NQVV9DTEtfQ05UTDYsCisJCS5tYXNrID0gMHgxLAorCQkuc2hpZnQgPSAyNywKKwl9LAorCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImRzdV9jbGsiLAorCQkub3BzID0gJmNsa19yZWdtYXBfbXV4X3JvX29wcywKKwkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10pIHsKKwkJCSZnMTJhX2NwdV9jbGsuaHcsCisJCQkmc20xX2RzdV9maW5hbF9jbGsuaHcsCisJCX0sCisJCS5udW1fcGFyZW50cyA9IDIsCisJfSwKK307CisKIHN0YXRpYyBpbnQgZzEyYV9jcHVfY2xrX211eF9ub3RpZmllcl9jYihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAogCQkJCQl1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpkYXRhKQogewpAQCAtMTQ0Myw2ICsxNjYzLDY5IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCBnMTJhX2dwMF9wbGwgPSB7CiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCBzbTFfZ3AxX3BsbF9kY28gPSB7CisJLmRhdGEgPSAmKHN0cnVjdCBtZXNvbl9jbGtfcGxsX2RhdGEpeworCQkuZW4gPSB7CisJCQkucmVnX29mZiA9IEhISV9HUDFfUExMX0NOVEwwLAorCQkJLnNoaWZ0ICAgPSAyOCwKKwkJCS53aWR0aCAgID0gMSwKKwkJfSwKKwkJLm0gPSB7CisJCQkucmVnX29mZiA9IEhISV9HUDFfUExMX0NOVEwwLAorCQkJLnNoaWZ0ICAgPSAwLAorCQkJLndpZHRoICAgPSA4LAorCQl9LAorCQkubiA9IHsKKwkJCS5yZWdfb2ZmID0gSEhJX0dQMV9QTExfQ05UTDAsCisJCQkuc2hpZnQgICA9IDEwLAorCQkJLndpZHRoICAgPSA1LAorCQl9LAorCQkuZnJhYyA9IHsKKwkJCS5yZWdfb2ZmID0gSEhJX0dQMV9QTExfQ05UTDEsCisJCQkuc2hpZnQgICA9IDAsCisJCQkud2lkdGggICA9IDE3LAorCQl9LAorCQkubCA9IHsKKwkJCS5yZWdfb2ZmID0gSEhJX0dQMV9QTExfQ05UTDAsCisJCQkuc2hpZnQgICA9IDMxLAorCQkJLndpZHRoICAgPSAxLAorCQl9LAorCQkucnN0ID0geworCQkJLnJlZ19vZmYgPSBISElfR1AxX1BMTF9DTlRMMCwKKwkJCS5zaGlmdCAgID0gMjksCisJCQkud2lkdGggICA9IDEsCisJCX0sCisJfSwKKwkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJncDFfcGxsX2RjbyIsCisJCS5vcHMgPSAmbWVzb25fY2xrX3BsbF9yb19vcHMsCisJCS5wYXJlbnRfZGF0YSA9ICYoY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSkgeworCQkJLmZ3X25hbWUgPSAieHRhbCIsCisJCX0sCisJCS5udW1fcGFyZW50cyA9IDEsCisJCS8qIFRoaXMgY2xvY2sgZmVlZHMgdGhlIERTVSwgYXZvaWQgZGlzYWJsaW5nIGl0ICovCisJCS5mbGFncyA9IENMS19JU19DUklUSUNBTCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmVnbWFwIHNtMV9ncDFfcGxsID0geworCS5kYXRhID0gJihzdHJ1Y3QgY2xrX3JlZ21hcF9kaXZfZGF0YSl7CisJCS5vZmZzZXQgPSBISElfR1AxX1BMTF9DTlRMMCwKKwkJLnNoaWZ0ID0gMTYsCisJCS53aWR0aCA9IDMsCisJCS5mbGFncyA9IChDTEtfRElWSURFUl9QT1dFUl9PRl9UV08gfAorCQkJICBDTEtfRElWSURFUl9ST1VORF9DTE9TRVNUKSwKKwl9LAorCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdwMV9wbGwiLAorCQkub3BzID0gJmNsa19yZWdtYXBfZGl2aWRlcl9yb19vcHMsCisJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKSB7CisJCQkmc20xX2dwMV9wbGxfZGNvLmh3CisJCX0sCisJCS5udW1fcGFyZW50cyA9IDEsCisJfSwKK307CisKIC8qCiAgKiBJbnRlcm5hbCBoaWZpIHBsbCBlbXVsYXRpb24gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCiAgKi8KQEAgLTQxMjEsNiArNDQwNCwyNDAgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhIGcxMmJfaHdfb25lY2VsbF9kYXRhID0gewogCS5udW0gPSBOUl9DTEtTLAogfTsKIAorc3RhdGljIHN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhIHNtMV9od19vbmVjZWxsX2RhdGEgPSB7CisJLmh3cyA9IHsKKwkJW0NMS0lEX1NZU19QTExdCQkJPSAmZzEyYV9zeXNfcGxsLmh3LAorCQlbQ0xLSURfRklYRURfUExMXQkJPSAmZzEyYV9maXhlZF9wbGwuaHcsCisJCVtDTEtJRF9GQ0xLX0RJVjJdCQk9ICZnMTJhX2ZjbGtfZGl2Mi5odywKKwkJW0NMS0lEX0ZDTEtfRElWM10JCT0gJmcxMmFfZmNsa19kaXYzLmh3LAorCQlbQ0xLSURfRkNMS19ESVY0XQkJPSAmZzEyYV9mY2xrX2RpdjQuaHcsCisJCVtDTEtJRF9GQ0xLX0RJVjVdCQk9ICZnMTJhX2ZjbGtfZGl2NS5odywKKwkJW0NMS0lEX0ZDTEtfRElWN10JCT0gJmcxMmFfZmNsa19kaXY3Lmh3LAorCQlbQ0xLSURfRkNMS19ESVYyUDVdCQk9ICZnMTJhX2ZjbGtfZGl2MnA1Lmh3LAorCQlbQ0xLSURfR1AwX1BMTF0JCQk9ICZnMTJhX2dwMF9wbGwuaHcsCisJCVtDTEtJRF9NUEVHX1NFTF0JCT0gJmcxMmFfbXBlZ19jbGtfc2VsLmh3LAorCQlbQ0xLSURfTVBFR19ESVZdCQk9ICZnMTJhX21wZWdfY2xrX2Rpdi5odywKKwkJW0NMS0lEX0NMSzgxXQkJCT0gJmcxMmFfY2xrODEuaHcsCisJCVtDTEtJRF9NUExMMF0JCQk9ICZnMTJhX21wbGwwLmh3LAorCQlbQ0xLSURfTVBMTDFdCQkJPSAmZzEyYV9tcGxsMS5odywKKwkJW0NMS0lEX01QTEwyXQkJCT0gJmcxMmFfbXBsbDIuaHcsCisJCVtDTEtJRF9NUExMM10JCQk9ICZnMTJhX21wbGwzLmh3LAorCQlbQ0xLSURfRERSXQkJCT0gJmcxMmFfZGRyLmh3LAorCQlbQ0xLSURfRE9TXQkJCT0gJmcxMmFfZG9zLmh3LAorCQlbQ0xLSURfQVVESU9fTE9DS0VSXQkJPSAmZzEyYV9hdWRpb19sb2NrZXIuaHcsCisJCVtDTEtJRF9NSVBJX0RTSV9IT1NUXQkJPSAmZzEyYV9taXBpX2RzaV9ob3N0Lmh3LAorCQlbQ0xLSURfRVRIX1BIWV0JCQk9ICZnMTJhX2V0aF9waHkuaHcsCisJCVtDTEtJRF9JU0FdCQkJPSAmZzEyYV9pc2EuaHcsCisJCVtDTEtJRF9QTDMwMV0JCQk9ICZnMTJhX3BsMzAxLmh3LAorCQlbQ0xLSURfUEVSSVBIU10JCQk9ICZnMTJhX3BlcmlwaHMuaHcsCisJCVtDTEtJRF9TUElDQzBdCQkJPSAmZzEyYV9zcGljY18wLmh3LAorCQlbQ0xLSURfSTJDXQkJCT0gJmcxMmFfaTJjLmh3LAorCQlbQ0xLSURfU0FOQV0JCQk9ICZnMTJhX3NhbmEuaHcsCisJCVtDTEtJRF9TRF0JCQk9ICZnMTJhX3NkLmh3LAorCQlbQ0xLSURfUk5HMF0JCQk9ICZnMTJhX3JuZzAuaHcsCisJCVtDTEtJRF9VQVJUMF0JCQk9ICZnMTJhX3VhcnQwLmh3LAorCQlbQ0xLSURfU1BJQ0MxXQkJCT0gJmcxMmFfc3BpY2NfMS5odywKKwkJW0NMS0lEX0hJVV9JRkFDRV0JCT0gJmcxMmFfaGl1X3JlZy5odywKKwkJW0NMS0lEX01JUElfRFNJX1BIWV0JCT0gJmcxMmFfbWlwaV9kc2lfcGh5Lmh3LAorCQlbQ0xLSURfQVNTSVNUX01JU0NdCQk9ICZnMTJhX2Fzc2lzdF9taXNjLmh3LAorCQlbQ0xLSURfU0RfRU1NQ19BXQkJPSAmZzEyYV9lbW1jX2EuaHcsCisJCVtDTEtJRF9TRF9FTU1DX0JdCQk9ICZnMTJhX2VtbWNfYi5odywKKwkJW0NMS0lEX1NEX0VNTUNfQ10JCT0gJmcxMmFfZW1tY19jLmh3LAorCQlbQ0xLSURfQVVESU9fQ09ERUNdCQk9ICZnMTJhX2F1ZGlvX2NvZGVjLmh3LAorCQlbQ0xLSURfQVVESU9dCQkJPSAmZzEyYV9hdWRpby5odywKKwkJW0NMS0lEX0VUSF0JCQk9ICZnMTJhX2V0aF9jb3JlLmh3LAorCQlbQ0xLSURfREVNVVhdCQkJPSAmZzEyYV9kZW11eC5odywKKwkJW0NMS0lEX0FVRElPX0lGSUZPXQkJPSAmZzEyYV9hdWRpb19pZmlmby5odywKKwkJW0NMS0lEX0FEQ10JCQk9ICZnMTJhX2FkYy5odywKKwkJW0NMS0lEX1VBUlQxXQkJCT0gJmcxMmFfdWFydDEuaHcsCisJCVtDTEtJRF9HMkRdCQkJPSAmZzEyYV9nMmQuaHcsCisJCVtDTEtJRF9SRVNFVF0JCQk9ICZnMTJhX3Jlc2V0Lmh3LAorCQlbQ0xLSURfUENJRV9DT01CXQkJPSAmZzEyYV9wY2llX2NvbWIuaHcsCisJCVtDTEtJRF9QQVJTRVJdCQkJPSAmZzEyYV9wYXJzZXIuaHcsCisJCVtDTEtJRF9VU0JdCQkJPSAmZzEyYV91c2JfZ2VuZXJhbC5odywKKwkJW0NMS0lEX1BDSUVfUEhZXQkJPSAmZzEyYV9wY2llX3BoeS5odywKKwkJW0NMS0lEX0FIQl9BUkIwXQkJPSAmZzEyYV9haGJfYXJiMC5odywKKwkJW0NMS0lEX0FIQl9EQVRBX0JVU10JCT0gJmcxMmFfYWhiX2RhdGFfYnVzLmh3LAorCQlbQ0xLSURfQUhCX0NUUkxfQlVTXQkJPSAmZzEyYV9haGJfY3RybF9idXMuaHcsCisJCVtDTEtJRF9IVFhfSERDUDIyXQkJPSAmZzEyYV9odHhfaGRjcDIyLmh3LAorCQlbQ0xLSURfSFRYX1BDTEtdCQk9ICZnMTJhX2h0eF9wY2xrLmh3LAorCQlbQ0xLSURfQlQ2NTZdCQkJPSAmZzEyYV9idDY1Ni5odywKKwkJW0NMS0lEX1VTQjFfRERSX0JSSURHRV0JCT0gJmcxMmFfdXNiMV90b19kZHIuaHcsCisJCVtDTEtJRF9NTUNfUENMS10JCT0gJmcxMmFfbW1jX3BjbGsuaHcsCisJCVtDTEtJRF9VQVJUMl0JCQk9ICZnMTJhX3VhcnQyLmh3LAorCQlbQ0xLSURfVlBVX0lOVFJdCQk9ICZnMTJhX3ZwdV9pbnRyLmh3LAorCQlbQ0xLSURfR0lDXQkJCT0gJmcxMmFfZ2ljLmh3LAorCQlbQ0xLSURfU0RfRU1NQ19BX0NMSzBfU0VMXQk9ICZnMTJhX3NkX2VtbWNfYV9jbGswX3NlbC5odywKKwkJW0NMS0lEX1NEX0VNTUNfQV9DTEswX0RJVl0JPSAmZzEyYV9zZF9lbW1jX2FfY2xrMF9kaXYuaHcsCisJCVtDTEtJRF9TRF9FTU1DX0FfQ0xLMF0JCT0gJmcxMmFfc2RfZW1tY19hX2NsazAuaHcsCisJCVtDTEtJRF9TRF9FTU1DX0JfQ0xLMF9TRUxdCT0gJmcxMmFfc2RfZW1tY19iX2NsazBfc2VsLmh3LAorCQlbQ0xLSURfU0RfRU1NQ19CX0NMSzBfRElWXQk9ICZnMTJhX3NkX2VtbWNfYl9jbGswX2Rpdi5odywKKwkJW0NMS0lEX1NEX0VNTUNfQl9DTEswXQkJPSAmZzEyYV9zZF9lbW1jX2JfY2xrMC5odywKKwkJW0NMS0lEX1NEX0VNTUNfQ19DTEswX1NFTF0JPSAmZzEyYV9zZF9lbW1jX2NfY2xrMF9zZWwuaHcsCisJCVtDTEtJRF9TRF9FTU1DX0NfQ0xLMF9ESVZdCT0gJmcxMmFfc2RfZW1tY19jX2NsazBfZGl2Lmh3LAorCQlbQ0xLSURfU0RfRU1NQ19DX0NMSzBdCQk9ICZnMTJhX3NkX2VtbWNfY19jbGswLmh3LAorCQlbQ0xLSURfTVBMTDBfRElWXQkJPSAmZzEyYV9tcGxsMF9kaXYuaHcsCisJCVtDTEtJRF9NUExMMV9ESVZdCQk9ICZnMTJhX21wbGwxX2Rpdi5odywKKwkJW0NMS0lEX01QTEwyX0RJVl0JCT0gJmcxMmFfbXBsbDJfZGl2Lmh3LAorCQlbQ0xLSURfTVBMTDNfRElWXQkJPSAmZzEyYV9tcGxsM19kaXYuaHcsCisJCVtDTEtJRF9GQ0xLX0RJVjJfRElWXQkJPSAmZzEyYV9mY2xrX2RpdjJfZGl2Lmh3LAorCQlbQ0xLSURfRkNMS19ESVYzX0RJVl0JCT0gJmcxMmFfZmNsa19kaXYzX2Rpdi5odywKKwkJW0NMS0lEX0ZDTEtfRElWNF9ESVZdCQk9ICZnMTJhX2ZjbGtfZGl2NF9kaXYuaHcsCisJCVtDTEtJRF9GQ0xLX0RJVjVfRElWXQkJPSAmZzEyYV9mY2xrX2RpdjVfZGl2Lmh3LAorCQlbQ0xLSURfRkNMS19ESVY3X0RJVl0JCT0gJmcxMmFfZmNsa19kaXY3X2Rpdi5odywKKwkJW0NMS0lEX0ZDTEtfRElWMlA1X0RJVl0JCT0gJmcxMmFfZmNsa19kaXYycDVfZGl2Lmh3LAorCQlbQ0xLSURfSElGSV9QTExdCQk9ICZnMTJhX2hpZmlfcGxsLmh3LAorCQlbQ0xLSURfVkNMSzJfVkVOQ0kwXQkJPSAmZzEyYV92Y2xrMl92ZW5jaTAuaHcsCisJCVtDTEtJRF9WQ0xLMl9WRU5DSTFdCQk9ICZnMTJhX3ZjbGsyX3ZlbmNpMS5odywKKwkJW0NMS0lEX1ZDTEsyX1ZFTkNQMF0JCT0gJmcxMmFfdmNsazJfdmVuY3AwLmh3LAorCQlbQ0xLSURfVkNMSzJfVkVOQ1AxXQkJPSAmZzEyYV92Y2xrMl92ZW5jcDEuaHcsCisJCVtDTEtJRF9WQ0xLMl9WRU5DVDBdCQk9ICZnMTJhX3ZjbGsyX3ZlbmN0MC5odywKKwkJW0NMS0lEX1ZDTEsyX1ZFTkNUMV0JCT0gJmcxMmFfdmNsazJfdmVuY3QxLmh3LAorCQlbQ0xLSURfVkNMSzJfT1RIRVJdCQk9ICZnMTJhX3ZjbGsyX290aGVyLmh3LAorCQlbQ0xLSURfVkNMSzJfRU5DSV0JCT0gJmcxMmFfdmNsazJfZW5jaS5odywKKwkJW0NMS0lEX1ZDTEsyX0VOQ1BdCQk9ICZnMTJhX3ZjbGsyX2VuY3AuaHcsCisJCVtDTEtJRF9EQUNfQ0xLXQkJCT0gJmcxMmFfZGFjX2Nsay5odywKKwkJW0NMS0lEX0FPQ0xLXQkJCT0gJmcxMmFfYW9jbGtfZ2F0ZS5odywKKwkJW0NMS0lEX0lFQzk1OF0JCQk9ICZnMTJhX2llYzk1OF9nYXRlLmh3LAorCQlbQ0xLSURfRU5DNDgwUF0JCQk9ICZnMTJhX2VuYzQ4MHAuaHcsCisJCVtDTEtJRF9STkcxXQkJCT0gJmcxMmFfcm5nMS5odywKKwkJW0NMS0lEX1ZDTEsyX0VOQ1RdCQk9ICZnMTJhX3ZjbGsyX2VuY3QuaHcsCisJCVtDTEtJRF9WQ0xLMl9FTkNMXQkJPSAmZzEyYV92Y2xrMl9lbmNsLmh3LAorCQlbQ0xLSURfVkNMSzJfVkVOQ0xNTUNdCQk9ICZnMTJhX3ZjbGsyX3ZlbmNsbW1jLmh3LAorCQlbQ0xLSURfVkNMSzJfVkVOQ0xdCQk9ICZnMTJhX3ZjbGsyX3ZlbmNsLmh3LAorCQlbQ0xLSURfVkNMSzJfT1RIRVIxXQkJPSAmZzEyYV92Y2xrMl9vdGhlcjEuaHcsCisJCVtDTEtJRF9GSVhFRF9QTExfRENPXQkJPSAmZzEyYV9maXhlZF9wbGxfZGNvLmh3LAorCQlbQ0xLSURfU1lTX1BMTF9EQ09dCQk9ICZnMTJhX3N5c19wbGxfZGNvLmh3LAorCQlbQ0xLSURfR1AwX1BMTF9EQ09dCQk9ICZnMTJhX2dwMF9wbGxfZGNvLmh3LAorCQlbQ0xLSURfSElGSV9QTExfRENPXQkJPSAmZzEyYV9oaWZpX3BsbF9kY28uaHcsCisJCVtDTEtJRF9ETUFdCQkJPSAmZzEyYV9kbWEuaHcsCisJCVtDTEtJRF9FRlVTRV0JCQk9ICZnMTJhX2VmdXNlLmh3LAorCQlbQ0xLSURfUk9NX0JPT1RdCQk9ICZnMTJhX3JvbV9ib290Lmh3LAorCQlbQ0xLSURfUkVTRVRfU0VDXQkJPSAmZzEyYV9yZXNldF9zZWMuaHcsCisJCVtDTEtJRF9TRUNfQUhCX0FQQjNdCQk9ICZnMTJhX3NlY19haGJfYXBiMy5odywKKwkJW0NMS0lEX01QTExfUFJFRElWXQkJPSAmZzEyYV9tcGxsX3ByZWRpdi5odywKKwkJW0NMS0lEX1ZQVV8wX1NFTF0JCT0gJmcxMmFfdnB1XzBfc2VsLmh3LAorCQlbQ0xLSURfVlBVXzBfRElWXQkJPSAmZzEyYV92cHVfMF9kaXYuaHcsCisJCVtDTEtJRF9WUFVfMF0JCQk9ICZnMTJhX3ZwdV8wLmh3LAorCQlbQ0xLSURfVlBVXzFfU0VMXQkJPSAmZzEyYV92cHVfMV9zZWwuaHcsCisJCVtDTEtJRF9WUFVfMV9ESVZdCQk9ICZnMTJhX3ZwdV8xX2Rpdi5odywKKwkJW0NMS0lEX1ZQVV8xXQkJCT0gJmcxMmFfdnB1XzEuaHcsCisJCVtDTEtJRF9WUFVdCQkJPSAmZzEyYV92cHUuaHcsCisJCVtDTEtJRF9WQVBCXzBfU0VMXQkJPSAmZzEyYV92YXBiXzBfc2VsLmh3LAorCQlbQ0xLSURfVkFQQl8wX0RJVl0JCT0gJmcxMmFfdmFwYl8wX2Rpdi5odywKKwkJW0NMS0lEX1ZBUEJfMF0JCQk9ICZnMTJhX3ZhcGJfMC5odywKKwkJW0NMS0lEX1ZBUEJfMV9TRUxdCQk9ICZnMTJhX3ZhcGJfMV9zZWwuaHcsCisJCVtDTEtJRF9WQVBCXzFfRElWXQkJPSAmZzEyYV92YXBiXzFfZGl2Lmh3LAorCQlbQ0xLSURfVkFQQl8xXQkJCT0gJmcxMmFfdmFwYl8xLmh3LAorCQlbQ0xLSURfVkFQQl9TRUxdCQk9ICZnMTJhX3ZhcGJfc2VsLmh3LAorCQlbQ0xLSURfVkFQQl0JCQk9ICZnMTJhX3ZhcGIuaHcsCisJCVtDTEtJRF9IRE1JX1BMTF9EQ09dCQk9ICZnMTJhX2hkbWlfcGxsX2Rjby5odywKKwkJW0NMS0lEX0hETUlfUExMX09EXQkJPSAmZzEyYV9oZG1pX3BsbF9vZC5odywKKwkJW0NMS0lEX0hETUlfUExMX09EMl0JCT0gJmcxMmFfaGRtaV9wbGxfb2QyLmh3LAorCQlbQ0xLSURfSERNSV9QTExdCQk9ICZnMTJhX2hkbWlfcGxsLmh3LAorCQlbQ0xLSURfVklEX1BMTF0JCQk9ICZnMTJhX3ZpZF9wbGxfZGl2Lmh3LAorCQlbQ0xLSURfVklEX1BMTF9TRUxdCQk9ICZnMTJhX3ZpZF9wbGxfc2VsLmh3LAorCQlbQ0xLSURfVklEX1BMTF9ESVZdCQk9ICZnMTJhX3ZpZF9wbGwuaHcsCisJCVtDTEtJRF9WQ0xLX1NFTF0JCT0gJmcxMmFfdmNsa19zZWwuaHcsCisJCVtDTEtJRF9WQ0xLMl9TRUxdCQk9ICZnMTJhX3ZjbGsyX3NlbC5odywKKwkJW0NMS0lEX1ZDTEtfSU5QVVRdCQk9ICZnMTJhX3ZjbGtfaW5wdXQuaHcsCisJCVtDTEtJRF9WQ0xLMl9JTlBVVF0JCT0gJmcxMmFfdmNsazJfaW5wdXQuaHcsCisJCVtDTEtJRF9WQ0xLX0RJVl0JCT0gJmcxMmFfdmNsa19kaXYuaHcsCisJCVtDTEtJRF9WQ0xLMl9ESVZdCQk9ICZnMTJhX3ZjbGsyX2Rpdi5odywKKwkJW0NMS0lEX1ZDTEtdCQkJPSAmZzEyYV92Y2xrLmh3LAorCQlbQ0xLSURfVkNMSzJdCQkJPSAmZzEyYV92Y2xrMi5odywKKwkJW0NMS0lEX1ZDTEtfRElWMV0JCT0gJmcxMmFfdmNsa19kaXYxLmh3LAorCQlbQ0xLSURfVkNMS19ESVYyX0VOXQkJPSAmZzEyYV92Y2xrX2RpdjJfZW4uaHcsCisJCVtDTEtJRF9WQ0xLX0RJVjRfRU5dCQk9ICZnMTJhX3ZjbGtfZGl2NF9lbi5odywKKwkJW0NMS0lEX1ZDTEtfRElWNl9FTl0JCT0gJmcxMmFfdmNsa19kaXY2X2VuLmh3LAorCQlbQ0xLSURfVkNMS19ESVYxMl9FTl0JCT0gJmcxMmFfdmNsa19kaXYxMl9lbi5odywKKwkJW0NMS0lEX1ZDTEsyX0RJVjFdCQk9ICZnMTJhX3ZjbGsyX2RpdjEuaHcsCisJCVtDTEtJRF9WQ0xLMl9ESVYyX0VOXQkJPSAmZzEyYV92Y2xrMl9kaXYyX2VuLmh3LAorCQlbQ0xLSURfVkNMSzJfRElWNF9FTl0JCT0gJmcxMmFfdmNsazJfZGl2NF9lbi5odywKKwkJW0NMS0lEX1ZDTEsyX0RJVjZfRU5dCQk9ICZnMTJhX3ZjbGsyX2RpdjZfZW4uaHcsCisJCVtDTEtJRF9WQ0xLMl9ESVYxMl9FTl0JCT0gJmcxMmFfdmNsazJfZGl2MTJfZW4uaHcsCisJCVtDTEtJRF9WQ0xLX0RJVjJdCQk9ICZnMTJhX3ZjbGtfZGl2Mi5odywKKwkJW0NMS0lEX1ZDTEtfRElWNF0JCT0gJmcxMmFfdmNsa19kaXY0Lmh3LAorCQlbQ0xLSURfVkNMS19ESVY2XQkJPSAmZzEyYV92Y2xrX2RpdjYuaHcsCisJCVtDTEtJRF9WQ0xLX0RJVjEyXQkJPSAmZzEyYV92Y2xrX2RpdjEyLmh3LAorCQlbQ0xLSURfVkNMSzJfRElWMl0JCT0gJmcxMmFfdmNsazJfZGl2Mi5odywKKwkJW0NMS0lEX1ZDTEsyX0RJVjRdCQk9ICZnMTJhX3ZjbGsyX2RpdjQuaHcsCisJCVtDTEtJRF9WQ0xLMl9ESVY2XQkJPSAmZzEyYV92Y2xrMl9kaXY2Lmh3LAorCQlbQ0xLSURfVkNMSzJfRElWMTJdCQk9ICZnMTJhX3ZjbGsyX2RpdjEyLmh3LAorCQlbQ0xLSURfQ1RTX0VOQ0lfU0VMXQkJPSAmZzEyYV9jdHNfZW5jaV9zZWwuaHcsCisJCVtDTEtJRF9DVFNfRU5DUF9TRUxdCQk9ICZnMTJhX2N0c19lbmNwX3NlbC5odywKKwkJW0NMS0lEX0NUU19WREFDX1NFTF0JCT0gJmcxMmFfY3RzX3ZkYWNfc2VsLmh3LAorCQlbQ0xLSURfSERNSV9UWF9TRUxdCQk9ICZnMTJhX2hkbWlfdHhfc2VsLmh3LAorCQlbQ0xLSURfQ1RTX0VOQ0ldCQk9ICZnMTJhX2N0c19lbmNpLmh3LAorCQlbQ0xLSURfQ1RTX0VOQ1BdCQk9ICZnMTJhX2N0c19lbmNwLmh3LAorCQlbQ0xLSURfQ1RTX1ZEQUNdCQk9ICZnMTJhX2N0c192ZGFjLmh3LAorCQlbQ0xLSURfSERNSV9UWF0JCQk9ICZnMTJhX2hkbWlfdHguaHcsCisJCVtDTEtJRF9IRE1JX1NFTF0JCT0gJmcxMmFfaGRtaV9zZWwuaHcsCisJCVtDTEtJRF9IRE1JX0RJVl0JCT0gJmcxMmFfaGRtaV9kaXYuaHcsCisJCVtDTEtJRF9IRE1JXQkJCT0gJmcxMmFfaGRtaS5odywKKwkJW0NMS0lEX01BTElfMF9TRUxdCQk9ICZnMTJhX21hbGlfMF9zZWwuaHcsCisJCVtDTEtJRF9NQUxJXzBfRElWXQkJPSAmZzEyYV9tYWxpXzBfZGl2Lmh3LAorCQlbQ0xLSURfTUFMSV8wXQkJCT0gJmcxMmFfbWFsaV8wLmh3LAorCQlbQ0xLSURfTUFMSV8xX1NFTF0JCT0gJmcxMmFfbWFsaV8xX3NlbC5odywKKwkJW0NMS0lEX01BTElfMV9ESVZdCQk9ICZnMTJhX21hbGlfMV9kaXYuaHcsCisJCVtDTEtJRF9NQUxJXzFdCQkJPSAmZzEyYV9tYWxpXzEuaHcsCisJCVtDTEtJRF9NQUxJXQkJCT0gJmcxMmFfbWFsaS5odywKKwkJW0NMS0lEX01QTExfNTBNX0RJVl0JCT0gJmcxMmFfbXBsbF81MG1fZGl2Lmh3LAorCQlbQ0xLSURfTVBMTF81ME1dCQk9ICZnMTJhX21wbGxfNTBtLmh3LAorCQlbQ0xLSURfU1lTX1BMTF9ESVYxNl9FTl0JPSAmZzEyYV9zeXNfcGxsX2RpdjE2X2VuLmh3LAorCQlbQ0xLSURfU1lTX1BMTF9ESVYxNl0JCT0gJmcxMmFfc3lzX3BsbF9kaXYxNi5odywKKwkJW0NMS0lEX0NQVV9DTEtfRFlOMF9TRUxdCT0gJmcxMmFfY3B1X2Nsa19wcmVtdXgwLmh3LAorCQlbQ0xLSURfQ1BVX0NMS19EWU4wX0RJVl0JPSAmZzEyYV9jcHVfY2xrX211eDBfZGl2Lmh3LAorCQlbQ0xLSURfQ1BVX0NMS19EWU4wXQkJPSAmZzEyYV9jcHVfY2xrX3Bvc3RtdXgwLmh3LAorCQlbQ0xLSURfQ1BVX0NMS19EWU4xX1NFTF0JPSAmZzEyYV9jcHVfY2xrX3ByZW11eDEuaHcsCisJCVtDTEtJRF9DUFVfQ0xLX0RZTjFfRElWXQk9ICZnMTJhX2NwdV9jbGtfbXV4MV9kaXYuaHcsCisJCVtDTEtJRF9DUFVfQ0xLX0RZTjFdCQk9ICZnMTJhX2NwdV9jbGtfcG9zdG11eDEuaHcsCisJCVtDTEtJRF9DUFVfQ0xLX0RZTl0JCT0gJmcxMmFfY3B1X2Nsa19keW4uaHcsCisJCVtDTEtJRF9DUFVfQ0xLXQkJCT0gJmcxMmFfY3B1X2Nsay5odywKKwkJW0NMS0lEX0NQVV9DTEtfRElWMTZfRU5dCT0gJmcxMmFfY3B1X2Nsa19kaXYxNl9lbi5odywKKwkJW0NMS0lEX0NQVV9DTEtfRElWMTZdCQk9ICZnMTJhX2NwdV9jbGtfZGl2MTYuaHcsCisJCVtDTEtJRF9DUFVfQ0xLX0FQQl9ESVZdCQk9ICZnMTJhX2NwdV9jbGtfYXBiX2Rpdi5odywKKwkJW0NMS0lEX0NQVV9DTEtfQVBCXQkJPSAmZzEyYV9jcHVfY2xrX2FwYi5odywKKwkJW0NMS0lEX0NQVV9DTEtfQVRCX0RJVl0JCT0gJmcxMmFfY3B1X2Nsa19hdGJfZGl2Lmh3LAorCQlbQ0xLSURfQ1BVX0NMS19BVEJdCQk9ICZnMTJhX2NwdV9jbGtfYXRiLmh3LAorCQlbQ0xLSURfQ1BVX0NMS19BWElfRElWXQkJPSAmZzEyYV9jcHVfY2xrX2F4aV9kaXYuaHcsCisJCVtDTEtJRF9DUFVfQ0xLX0FYSV0JCT0gJmcxMmFfY3B1X2Nsa19heGkuaHcsCisJCVtDTEtJRF9DUFVfQ0xLX1RSQUNFX0RJVl0JPSAmZzEyYV9jcHVfY2xrX3RyYWNlX2Rpdi5odywKKwkJW0NMS0lEX0NQVV9DTEtfVFJBQ0VdCQk9ICZnMTJhX2NwdV9jbGtfdHJhY2UuaHcsCisJCVtDTEtJRF9QQ0lFX1BMTF9EQ09dCQk9ICZnMTJhX3BjaWVfcGxsX2Rjby5odywKKwkJW0NMS0lEX1BDSUVfUExMX0RDT19ESVYyXQk9ICZnMTJhX3BjaWVfcGxsX2Rjb19kaXYyLmh3LAorCQlbQ0xLSURfUENJRV9QTExfT0RdCQk9ICZnMTJhX3BjaWVfcGxsX29kLmh3LAorCQlbQ0xLSURfUENJRV9QTExdCQk9ICZnMTJhX3BjaWVfcGxsLmh3LAorCQlbQ0xLSURfVkRFQ18xX1NFTF0JCT0gJmcxMmFfdmRlY18xX3NlbC5odywKKwkJW0NMS0lEX1ZERUNfMV9ESVZdCQk9ICZnMTJhX3ZkZWNfMV9kaXYuaHcsCisJCVtDTEtJRF9WREVDXzFdCQkJPSAmZzEyYV92ZGVjXzEuaHcsCisJCVtDTEtJRF9WREVDX0hFVkNfU0VMXQkJPSAmZzEyYV92ZGVjX2hldmNfc2VsLmh3LAorCQlbQ0xLSURfVkRFQ19IRVZDX0RJVl0JCT0gJmcxMmFfdmRlY19oZXZjX2Rpdi5odywKKwkJW0NMS0lEX1ZERUNfSEVWQ10JCT0gJmcxMmFfdmRlY19oZXZjLmh3LAorCQlbQ0xLSURfVkRFQ19IRVZDRl9TRUxdCQk9ICZnMTJhX3ZkZWNfaGV2Y2Zfc2VsLmh3LAorCQlbQ0xLSURfVkRFQ19IRVZDRl9ESVZdCQk9ICZnMTJhX3ZkZWNfaGV2Y2ZfZGl2Lmh3LAorCQlbQ0xLSURfVkRFQ19IRVZDRl0JCT0gJmcxMmFfdmRlY19oZXZjZi5odywKKwkJW0NMS0lEX1RTX0RJVl0JCQk9ICZnMTJhX3RzX2Rpdi5odywKKwkJW0NMS0lEX1RTXQkJCT0gJmcxMmFfdHMuaHcsCisJCVtDTEtJRF9HUDFfUExMX0RDT10JCT0gJnNtMV9ncDFfcGxsX2Rjby5odywKKwkJW0NMS0lEX0dQMV9QTExdCQkJPSAmc20xX2dwMV9wbGwuaHcsCisJCVtDTEtJRF9EU1VfQ0xLX0RZTjBfU0VMXQk9ICZzbTFfZHN1X2Nsa19wcmVtdXgwLmh3LAorCQlbQ0xLSURfRFNVX0NMS19EWU4wX0RJVl0JPSAmc20xX2RzdV9jbGtfcHJlbXV4MS5odywKKwkJW0NMS0lEX0RTVV9DTEtfRFlOMF0JCT0gJnNtMV9kc3VfY2xrX211eDBfZGl2Lmh3LAorCQlbQ0xLSURfRFNVX0NMS19EWU4xX1NFTF0JPSAmc20xX2RzdV9jbGtfcG9zdG11eDAuaHcsCisJCVtDTEtJRF9EU1VfQ0xLX0RZTjFfRElWXQk9ICZzbTFfZHN1X2Nsa19tdXgxX2Rpdi5odywKKwkJW0NMS0lEX0RTVV9DTEtfRFlOMV0JCT0gJnNtMV9kc3VfY2xrX3Bvc3RtdXgxLmh3LAorCQlbQ0xLSURfRFNVX0NMS19EWU5dCQk9ICZzbTFfZHN1X2Nsa19keW4uaHcsCisJCVtDTEtJRF9EU1VfQ0xLX0ZJTkFMXQkJPSAmc20xX2RzdV9maW5hbF9jbGsuaHcsCisJCVtDTEtJRF9EU1VfQ0xLXQkJCT0gJnNtMV9kc3VfY2xrLmh3LAorCQlbQ0xLSURfQ1BVMV9DTEtdCQk9ICZzbTFfY3B1MV9jbGsuaHcsCisJCVtDTEtJRF9DUFUyX0NMS10JCT0gJnNtMV9jcHUyX2Nsay5odywKKwkJW0NMS0lEX0NQVTNfQ0xLXQkJPSAmc20xX2NwdTNfY2xrLmh3LAorCQlbTlJfQ0xLU10JCQk9IE5VTEwsCisJfSwKKwkubnVtID0gTlJfQ0xLUywKK307CisKIC8qIENvbnZlbmllbmNlIHRhYmxlIHRvIHBvcHVsYXRlIHJlZ21hcCBpbiAucHJvYmUgKi8KIHN0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCAqY29uc3QgZzEyYV9jbGtfcmVnbWFwc1tdID0gewogCSZnMTJhX2NsazgxLApAQCAtNDMzNiw2ICs0ODUzLDIwIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCAqY29uc3QgZzEyYV9jbGtfcmVnbWFwc1tdID0gewogCSZnMTJiX2NwdWJfY2xrX2F4aSwKIAkmZzEyYl9jcHViX2Nsa190cmFjZV9zZWwsCiAJJmcxMmJfY3B1Yl9jbGtfdHJhY2UsCisJJnNtMV9ncDFfcGxsX2RjbywKKwkmc20xX2dwMV9wbGwsCisJJnNtMV9kc3VfY2xrX3ByZW11eDAsCisJJnNtMV9kc3VfY2xrX3ByZW11eDEsCisJJnNtMV9kc3VfY2xrX211eDBfZGl2LAorCSZzbTFfZHN1X2Nsa19wb3N0bXV4MCwKKwkmc20xX2RzdV9jbGtfbXV4MV9kaXYsCisJJnNtMV9kc3VfY2xrX3Bvc3RtdXgxLAorCSZzbTFfZHN1X2Nsa19keW4sCisJJnNtMV9kc3VfZmluYWxfY2xrLAorCSZzbTFfZHN1X2NsaywKKwkmc20xX2NwdTFfY2xrLAorCSZzbTFfY3B1Ml9jbGssCisJJnNtMV9jcHUzX2NsaywKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnX3NlcXVlbmNlIGcxMmFfaW5pdF9yZWdzW10gPSB7CkBAIC00NTMyLDYgKzUwNjMsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZXNvbl9nMTJhX2RhdGEgZzEyYl9jbGtjX2RhdGEgPSB7CiAJLmR2ZnNfc2V0dXAgPSBtZXNvbl9nMTJiX2R2ZnNfc2V0dXAsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IG1lc29uX2cxMmFfZGF0YSBzbTFfY2xrY19kYXRhID0geworCS5lZWNsa2NfZGF0YSA9IHsKKwkJLnJlZ21hcF9jbGtzID0gZzEyYV9jbGtfcmVnbWFwcywKKwkJLnJlZ21hcF9jbGtfbnVtID0gQVJSQVlfU0laRShnMTJhX2Nsa19yZWdtYXBzKSwKKwkJLmh3X29uZWNlbGxfZGF0YSA9ICZzbTFfaHdfb25lY2VsbF9kYXRhLAorCX0sCisJLmR2ZnNfc2V0dXAgPSBtZXNvbl9nMTJhX2R2ZnNfc2V0dXAsCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBjbGtjX21hdGNoX3RhYmxlW10gPSB7CiAJewogCQkuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLGcxMmEtY2xrYyIsCkBAIC00NTQxLDYgKzUwODEsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgY2xrY19tYXRjaF90YWJsZVtdID0gewogCQkuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLGcxMmItY2xrYyIsCiAJCS5kYXRhID0gJmcxMmJfY2xrY19kYXRhLmVlY2xrY19kYXRhCiAJfSwKKwl7CisJCS5jb21wYXRpYmxlID0gImFtbG9naWMsc20xLWNsa2MiLAorCQkuZGF0YSA9ICZzbTFfY2xrY19kYXRhLmVlY2xrY19kYXRhCisJfSwKIAl7fQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVzb24vZzEyYS5oIGIvZHJpdmVycy9jbGsvbWVzb24vZzEyYS5oCmluZGV4IDU1OWEzNGMuLjlkZjQwNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL21lc29uL2cxMmEuaAorKysgYi9kcml2ZXJzL2Nsay9tZXNvbi9nMTJhLmgKQEAgLTI5LDYgKzI5LDE0IEBACiAjZGVmaW5lIEhISV9HUDBfUExMX0NOVEw1CQkweDA1NAogI2RlZmluZSBISElfR1AwX1BMTF9DTlRMNgkJMHgwNTgKICNkZWZpbmUgSEhJX0dQMF9QTExfU1RTCQkJMHgwNUMKKyNkZWZpbmUgSEhJX0dQMV9QTExfQ05UTDAJCTB4MDYwCisjZGVmaW5lIEhISV9HUDFfUExMX0NOVEwxCQkweDA2NAorI2RlZmluZSBISElfR1AxX1BMTF9DTlRMMgkJMHgwNjgKKyNkZWZpbmUgSEhJX0dQMV9QTExfQ05UTDMJCTB4MDZDCisjZGVmaW5lIEhISV9HUDFfUExMX0NOVEw0CQkweDA3MAorI2RlZmluZSBISElfR1AxX1BMTF9DTlRMNQkJMHgwNzQKKyNkZWZpbmUgSEhJX0dQMV9QTExfQ05UTDYJCTB4MDc4CisjZGVmaW5lIEhISV9HUDFfUExMX1NUUwkJCTB4MDdDCiAjZGVmaW5lIEhISV9QQ0lFX1BMTF9DTlRMMAkJMHgwOTgKICNkZWZpbmUgSEhJX1BDSUVfUExMX0NOVEwxCQkweDA5QwogI2RlZmluZSBISElfUENJRV9QTExfQ05UTDIJCTB4MEEwCkBAIC03Miw2ICs4MCwxMSBAQAogI2RlZmluZSBISElfU1lTX0NQVUJfQ0xLX0NOVEwxCQkweDIwMAogI2RlZmluZSBISElfU1lTX0NQVUJfQ0xLX0NOVEwJCTB4MjA4CiAjZGVmaW5lIEhISV9WUFVfQ0xLQl9DTlRMCQkweDIwQworI2RlZmluZSBISElfU1lTX0NQVV9DTEtfQ05UTDIJCTB4MjEwCisjZGVmaW5lIEhISV9TWVNfQ1BVX0NMS19DTlRMMwkJMHgyMTQKKyNkZWZpbmUgSEhJX1NZU19DUFVfQ0xLX0NOVEw0CQkweDIxOAorI2RlZmluZSBISElfU1lTX0NQVV9DTEtfQ05UTDUJCTB4MjFjCisjZGVmaW5lIEhISV9TWVNfQ1BVX0NMS19DTlRMNgkJMHgyMjAKICNkZWZpbmUgSEhJX0dFTl9DTEtfQ05UTAkJMHgyMjgKICNkZWZpbmUgSEhJX1ZESU5fTUVBU19DTEtfQ05UTAkJMHgyNTAKICNkZWZpbmUgSEhJX01JUElEU0lfUEhZX0NMS19DTlRMCTB4MjU0CkBAIC0yMzMsOCArMjQ2LDE3IEBACiAjZGVmaW5lIENMS0lEX0NQVUJfQ0xLX0FYSQkJCTIzOQogI2RlZmluZSBDTEtJRF9DUFVCX0NMS19UUkFDRV9TRUwJCTI0MAogI2RlZmluZSBDTEtJRF9DUFVCX0NMS19UUkFDRQkJCTI0MQorI2RlZmluZSBDTEtJRF9HUDFfUExMX0RDTwkJCTI0MgorI2RlZmluZSBDTEtJRF9EU1VfQ0xLX0RZTjBfU0VMCQkJMjQ0CisjZGVmaW5lIENMS0lEX0RTVV9DTEtfRFlOMF9ESVYJCQkyNDUKKyNkZWZpbmUgQ0xLSURfRFNVX0NMS19EWU4wCQkJMjQ2CisjZGVmaW5lIENMS0lEX0RTVV9DTEtfRFlOMV9TRUwJCQkyNDcKKyNkZWZpbmUgQ0xLSURfRFNVX0NMS19EWU4xX0RJVgkJCTI0OAorI2RlZmluZSBDTEtJRF9EU1VfQ0xLX0RZTjEJCQkyNDkKKyNkZWZpbmUgQ0xLSURfRFNVX0NMS19EWU4JCQkyNTAKKyNkZWZpbmUgQ0xLSURfRFNVX0NMS19GSU5BTAkJCTI1MQogCi0jZGVmaW5lIE5SX0NMS1MJCQkJCTI0MgorI2RlZmluZSBOUl9DTEtTCQkJCQkyNTYKIAogLyogaW5jbHVkZSB0aGUgQ0xLSURzIHRoYXQgaGF2ZSBiZWVuIG1hZGUgcGFydCBvZiB0aGUgRFQgYmluZGluZyAqLwogI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL2cxMmEtY2xrYy5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbXZlYnUvS2NvbmZpZyBiL2RyaXZlcnMvY2xrL212ZWJ1L0tjb25maWcKaW5kZXggYjA5ZjZkZS4uNDE1ZTY5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbXZlYnUvS2NvbmZpZworKysgYi9kcml2ZXJzL2Nsay9tdmVidS9LY29uZmlnCkBAIC04LDYgKzgsOSBAQAogY29uZmlnIE1WRUJVX0NMS19DT1JFRElWCiAJYm9vbAogCitjb25maWcgQVJNQURBX0FQX0NQX0hFTFBFUgorCWJvb2wKKwogY29uZmlnIEFSTUFEQV8zNzBfQ0xLCiAJYm9vbAogCXNlbGVjdCBNVkVCVV9DTEtfQ09NTU9OCkBAIC0zNSw5ICszOCwxNCBAQAogCiBjb25maWcgQVJNQURBX0FQODA2X1NZU0NPTgogCWJvb2wKKwlzZWxlY3QgQVJNQURBX0FQX0NQX0hFTFBFUgorCitjb25maWcgQVJNQURBX0FQX0NQVV9DTEsKKwlib29sCiAKIGNvbmZpZyBBUk1BREFfQ1AxMTBfU1lTQ09OCiAJYm9vbAorCXNlbGVjdCBBUk1BREFfQVBfQ1BfSEVMUEVSCiAKIGNvbmZpZyBET1ZFX0NMSwogCWJvb2wKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL212ZWJ1L01ha2VmaWxlIGIvZHJpdmVycy9jbGsvbXZlYnUvTWFrZWZpbGUKaW5kZXggOTNhYzM2OC4uMDQ0NjRjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbXZlYnUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9jbGsvbXZlYnUvTWFrZWZpbGUKQEAgLTIsNiArMiw3IEBACiBvYmotJChDT05GSUdfTVZFQlVfQ0xLX0NPTU1PTikJKz0gY29tbW9uLm8KIG9iai0kKENPTkZJR19NVkVCVV9DTEtfQ1BVKSAJKz0gY2xrLWNwdS5vCiBvYmotJChDT05GSUdfTVZFQlVfQ0xLX0NPUkVESVYpCSs9IGNsay1jb3JlZGl2Lm8KK29iai0kKENPTkZJR19BUk1BREFfQVBfQ1BfSEVMUEVSKSArPSBhcm1hZGFfYXBfY3BfaGVscGVyLm8KIAogb2JqLSQoQ09ORklHX0FSTUFEQV8zNzBfQ0xLKQkrPSBhcm1hZGEtMzcwLm8KIG9iai0kKENPTkZJR19BUk1BREFfMzc1X0NMSykJKz0gYXJtYWRhLTM3NS5vCkBAIC0xMiw2ICsxMyw3IEBACiBvYmotJChDT05GSUdfQVJNQURBXzM3WFhfQ0xLKQkrPSBhcm1hZGEtMzd4eC1wZXJpcGgubwogb2JqLSQoQ09ORklHX0FSTUFEQV9YUF9DTEspCSs9IGFybWFkYS14cC5vIG12OThkeDMyMzYubwogb2JqLSQoQ09ORklHX0FSTUFEQV9BUDgwNl9TWVNDT04pICs9IGFwODA2LXN5c3RlbS1jb250cm9sbGVyLm8KK29iai0kKENPTkZJR19BUk1BREFfQVBfQ1BVX0NMSykgKz0gYXAtY3B1LWNsay5vCiBvYmotJChDT05GSUdfQVJNQURBX0NQMTEwX1NZU0NPTikgKz0gY3AxMTAtc3lzdGVtLWNvbnRyb2xsZXIubwogb2JqLSQoQ09ORklHX0RPVkVfQ0xLKQkJKz0gZG92ZS5vIGRvdmUtZGl2aWRlci5vCiBvYmotJChDT05GSUdfS0lSS1dPT0RfQ0xLKQkrPSBraXJrd29vZC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tdmVidS9hcC1jcHUtY2xrLmMgYi9kcml2ZXJzL2Nsay9tdmVidS9hcC1jcHUtY2xrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY1ZTVhYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvY2xrL212ZWJ1L2FwLWNwdS1jbGsuYwpAQCAtMCwwICsxLDM1NiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisvKgorICogTWFydmVsbCBBcm1hZGEgQVAgQ1BVIENsb2NrIENvbnRyb2xsZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggTWFydmVsbAorICoKKyAqIE9tcmkgSXRhY2ggPG9tcmlpQG1hcnZlbGwuY29tPgorICogR3JlZ29yeSBDbGVtZW50IDxncmVnb3J5LmNsZW1lbnRAYm9vdGxpbi5jb20+CisgKi8KKworI2RlZmluZSBwcl9mbXQoZm10KSAiYXAtY3B1LWNsazogIiBmbXQKKworI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorI2luY2x1ZGUgImFybWFkYV9hcF9jcF9oZWxwZXIuaCIKKworI2RlZmluZSBBUDgwNl9DUFVfQ0xVU1RFUjAJCTAKKyNkZWZpbmUgQVA4MDZfQ1BVX0NMVVNURVIxCQkxCisjZGVmaW5lIEFQODA2X0NQVVNfUEVSX0NMVVNURVIJCTIKKyNkZWZpbmUgQVBOODA2X0NQVTFfTUFTSwkJMHgxCisKKyNkZWZpbmUgQVBOODA2X0NMVVNURVJfTlVNX09GRlNFVAk4CisjZGVmaW5lIEFQTjgwNl9DTFVTVEVSX05VTV9NQVNLCQlCSVQoQVBOODA2X0NMVVNURVJfTlVNX09GRlNFVCkKKworI2RlZmluZSBBUE44MDZfTUFYX0RJVklERVIJCTMyCisKKy8qKgorICogc3RydWN0IGNwdV9kZnNfcmVnczogQ1BVIERGUyByZWdpc3RlciBtYXBwaW5nCisgKiBAZGl2aWRlcl9yZWc6IGZ1bGwgaW50ZWdlciByYXRpbyBmcm9tIFBMTCBmcmVxdWVuY3kgdG8gQ1BVIGNsb2NrIGZyZXF1ZW5jeQorICogQGZvcmNlX3JlZzogcmVxdWVzdCB0byBmb3JjZSBuZXcgcmF0aW8gcmVnYXJkbGVzcyBvZiByZWxhdGlvbiB0byBvdGhlciBjbG9ja3MKKyAqIEByYXRpb19yZWc6IGNlbnRyYWwgcmVxdWVzdCB0byBzd2l0Y2ggcmF0aW9zCisgKi8KK3N0cnVjdCBjcHVfZGZzX3JlZ3MgeworCXVuc2lnbmVkIGludCBkaXZpZGVyX3JlZzsKKwl1bnNpZ25lZCBpbnQgZm9yY2VfcmVnOworCXVuc2lnbmVkIGludCByYXRpb19yZWc7CisJdW5zaWduZWQgaW50IHJhdGlvX3N0YXRlX3JlZzsKKwl1bnNpZ25lZCBpbnQgZGl2aWRlcl9tYXNrOworCXVuc2lnbmVkIGludCBjbHVzdGVyX29mZnNldDsKKwl1bnNpZ25lZCBpbnQgZm9yY2VfbWFzazsKKwlpbnQgZGl2aWRlcl9vZmZzZXQ7CisJaW50IGRpdmlkZXJfcmF0aW87CisJaW50IHJhdGlvX29mZnNldDsKKwlpbnQgcmF0aW9fc3RhdGVfb2Zmc2V0OworCWludCByYXRpb19zdGF0ZV9jbHVzdGVyX29mZnNldDsKK307CisKKy8qIEFQODA2IENQVSBERlMgcmVnaXN0ZXIgbWFwcGluZyovCisjZGVmaW5lIEFQODA2X0NBNzJNUDJfMF9QTExfQ1JfMF9SRUdfT0ZGU0VUCQkweDI3OAorI2RlZmluZSBBUDgwNl9DQTcyTVAyXzBfUExMX0NSXzFfUkVHX09GRlNFVAkJMHgyODAKKyNkZWZpbmUgQVA4MDZfQ0E3Mk1QMl8wX1BMTF9DUl8yX1JFR19PRkZTRVQJCTB4Mjg0CisjZGVmaW5lIEFQODA2X0NBNzJNUDJfMF9QTExfU1JfUkVHX09GRlNFVAkJMHhDOTQKKworI2RlZmluZSBBUDgwNl9DQTcyTVAyXzBfUExMX0NSX0NMVVNURVJfT0ZGU0VUCQkweDE0CisjZGVmaW5lIEFQODA2X1BMTF9DUl8wX0NQVV9DTEtfRElWX1JBVElPX09GRlNFVAkJMAorI2RlZmluZSBBUDgwNl9QTExfQ1JfQ1BVX0NMS19ESVZfUkFUSU8JCQkwCisjZGVmaW5lIEFQODA2X1BMTF9DUl8wX0NQVV9DTEtfRElWX1JBVElPX01BU0sgXAorCQkJKDB4M2YgPDwgQVA4MDZfUExMX0NSXzBfQ1BVX0NMS19ESVZfUkFUSU9fT0ZGU0VUKQorI2RlZmluZSBBUDgwNl9QTExfQ1JfMF9DUFVfQ0xLX1JFTE9BRF9GT1JDRV9PRkZTRVQJMjQKKyNkZWZpbmUgQVA4MDZfUExMX0NSXzBfQ1BVX0NMS19SRUxPQURfRk9SQ0VfTUFTSyBcCisJCQkoMHgxIDw8IEFQODA2X1BMTF9DUl8wX0NQVV9DTEtfUkVMT0FEX0ZPUkNFX09GRlNFVCkKKyNkZWZpbmUgQVA4MDZfUExMX0NSXzBfQ1BVX0NMS19SRUxPQURfUkFUSU9fT0ZGU0VUCTE2CisjZGVmaW5lIEFQODA2X0NBNzJNUDJfMF9QTExfUkFUSU9fU1RBQkxFX09GRlNFVAkwCisjZGVmaW5lIEFQODA2X0NBNzJNUDJfMF9QTExfUkFUSU9fU1RBVEUJCQkxMQorCisjZGVmaW5lIFNUQVRVU19QT0xMX1BFUklPRF9VUwkJMQorI2RlZmluZSBTVEFUVVNfUE9MTF9USU1FT1VUX1VTCQkxMDAwMDAwCisKKyNkZWZpbmUgdG9fYXBfY3B1X2NsayhfaHcpIGNvbnRhaW5lcl9vZihfaHcsIHN0cnVjdCBhcF9jcHVfY2xrLCBodykKKworc3RhdGljIGNvbnN0IHN0cnVjdCBjcHVfZGZzX3JlZ3MgYXA4MDZfZGZzX3JlZ3MgPSB7CisJLmRpdmlkZXJfcmVnID0gQVA4MDZfQ0E3Mk1QMl8wX1BMTF9DUl8wX1JFR19PRkZTRVQsCisJLmZvcmNlX3JlZyA9IEFQODA2X0NBNzJNUDJfMF9QTExfQ1JfMV9SRUdfT0ZGU0VULAorCS5yYXRpb19yZWcgPSBBUDgwNl9DQTcyTVAyXzBfUExMX0NSXzJfUkVHX09GRlNFVCwKKwkucmF0aW9fc3RhdGVfcmVnID0gQVA4MDZfQ0E3Mk1QMl8wX1BMTF9TUl9SRUdfT0ZGU0VULAorCS5kaXZpZGVyX21hc2sgPSBBUDgwNl9QTExfQ1JfMF9DUFVfQ0xLX0RJVl9SQVRJT19NQVNLLAorCS5jbHVzdGVyX29mZnNldCA9IEFQODA2X0NBNzJNUDJfMF9QTExfQ1JfQ0xVU1RFUl9PRkZTRVQsCisJLmZvcmNlX21hc2sgPSBBUDgwNl9QTExfQ1JfMF9DUFVfQ0xLX1JFTE9BRF9GT1JDRV9NQVNLLAorCS5kaXZpZGVyX29mZnNldCA9IEFQODA2X1BMTF9DUl8wX0NQVV9DTEtfRElWX1JBVElPX09GRlNFVCwKKwkuZGl2aWRlcl9yYXRpbyA9IEFQODA2X1BMTF9DUl9DUFVfQ0xLX0RJVl9SQVRJTywKKwkucmF0aW9fb2Zmc2V0ID0gQVA4MDZfUExMX0NSXzBfQ1BVX0NMS19SRUxPQURfUkFUSU9fT0ZGU0VULAorCS5yYXRpb19zdGF0ZV9vZmZzZXQgPSBBUDgwNl9DQTcyTVAyXzBfUExMX1JBVElPX1NUQUJMRV9PRkZTRVQsCisJLnJhdGlvX3N0YXRlX2NsdXN0ZXJfb2Zmc2V0ID0gQVA4MDZfQ0E3Mk1QMl8wX1BMTF9SQVRJT19TVEFCTEVfT0ZGU0VULAorfTsKKworLyogQVA4MDcgQ1BVIERGUyByZWdpc3RlciBtYXBwaW5nICovCisjZGVmaW5lIEFQODA3X0RFVklDRV9HRU5FUkFMX0NPTlRST0xfMTBfUkVHX09GRlNFVAkJMHgyNzgKKyNkZWZpbmUgQVA4MDdfREVWSUNFX0dFTkVSQUxfQ09OVFJPTF8xMV9SRUdfT0ZGU0VUCQkweDI3YworI2RlZmluZSBBUDgwN19ERVZJQ0VfR0VORVJBTF9TVEFUVVNfNl9SRUdfT0ZGU0VUCQkweGM5OAorI2RlZmluZSBBUDgwN19DQTcyTVAyXzBfUExMX0NSX0NMVVNURVJfT0ZGU0VUCQkJMHg4CisjZGVmaW5lIEFQODA3X1BMTF9DUl8wX0NQVV9DTEtfRElWX1JBVElPX09GRlNFVAkJCTE4CisjZGVmaW5lIEFQODA3X1BMTF9DUl8wX0NQVV9DTEtfRElWX1JBVElPX01BU0sgXAorCQkoMHgzZiA8PCBBUDgwN19QTExfQ1JfMF9DUFVfQ0xLX0RJVl9SQVRJT19PRkZTRVQpCisjZGVmaW5lIEFQODA3X1BMTF9DUl8xX0NQVV9DTEtfRElWX1JBVElPX09GRlNFVAkJCTEyCisjZGVmaW5lIEFQODA3X1BMTF9DUl8xX0NQVV9DTEtfRElWX1JBVElPX01BU0sgXAorCQkoMHgzZiA8PCBBUDgwN19QTExfQ1JfMV9DUFVfQ0xLX0RJVl9SQVRJT19PRkZTRVQpCisjZGVmaW5lIEFQODA3X1BMTF9DUl9DUFVfQ0xLX0RJVl9SQVRJTwkJCQkzCisjZGVmaW5lIEFQODA3X1BMTF9DUl8wX0NQVV9DTEtfUkVMT0FEX0ZPUkNFX09GRlNFVAkJMAorI2RlZmluZSBBUDgwN19QTExfQ1JfMF9DUFVfQ0xLX1JFTE9BRF9GT1JDRV9NQVNLIFwKKwkJKDB4MyA8PCBBUDgwN19QTExfQ1JfMF9DUFVfQ0xLX1JFTE9BRF9GT1JDRV9PRkZTRVQpCisjZGVmaW5lIEFQODA3X1BMTF9DUl8wX0NQVV9DTEtfUkVMT0FEX1JBVElPX09GRlNFVAkJNgorI2RlZmluZQlBUDgwN19DQTcyTVAyXzBfUExMX0NMS0RJVl9SQVRJT19TVEFCTEVfT0ZGU0VUCQkyMAorI2RlZmluZSBBUDgwN19DQTcyTVAyXzBfUExMX0NMS0RJVl9SQVRJT19TVEFCTEVfQ0xVU1RFUl9PRkZTRVQJMworCitzdGF0aWMgY29uc3Qgc3RydWN0IGNwdV9kZnNfcmVncyBhcDgwN19kZnNfcmVncyA9IHsKKwkuZGl2aWRlcl9yZWcgPSBBUDgwN19ERVZJQ0VfR0VORVJBTF9DT05UUk9MXzEwX1JFR19PRkZTRVQsCisJLmZvcmNlX3JlZyA9IEFQODA3X0RFVklDRV9HRU5FUkFMX0NPTlRST0xfMTFfUkVHX09GRlNFVCwKKwkucmF0aW9fcmVnID0gQVA4MDdfREVWSUNFX0dFTkVSQUxfQ09OVFJPTF8xMV9SRUdfT0ZGU0VULAorCS5yYXRpb19zdGF0ZV9yZWcgPSBBUDgwN19ERVZJQ0VfR0VORVJBTF9TVEFUVVNfNl9SRUdfT0ZGU0VULAorCS5kaXZpZGVyX21hc2sgPSBBUDgwN19QTExfQ1JfMF9DUFVfQ0xLX0RJVl9SQVRJT19NQVNLLAorCS5jbHVzdGVyX29mZnNldCA9IEFQODA3X0NBNzJNUDJfMF9QTExfQ1JfQ0xVU1RFUl9PRkZTRVQsCisJLmZvcmNlX21hc2sgPSBBUDgwN19QTExfQ1JfMF9DUFVfQ0xLX1JFTE9BRF9GT1JDRV9NQVNLLAorCS5kaXZpZGVyX29mZnNldCA9IEFQODA3X1BMTF9DUl8wX0NQVV9DTEtfRElWX1JBVElPX09GRlNFVCwKKwkuZGl2aWRlcl9yYXRpbyA9IEFQODA3X1BMTF9DUl9DUFVfQ0xLX0RJVl9SQVRJTywKKwkucmF0aW9fb2Zmc2V0ID0gQVA4MDdfUExMX0NSXzBfQ1BVX0NMS19SRUxPQURfUkFUSU9fT0ZGU0VULAorCS5yYXRpb19zdGF0ZV9vZmZzZXQgPSBBUDgwN19DQTcyTVAyXzBfUExMX0NMS0RJVl9SQVRJT19TVEFCTEVfT0ZGU0VULAorCS5yYXRpb19zdGF0ZV9jbHVzdGVyX29mZnNldCA9CisJCUFQODA3X0NBNzJNUDJfMF9QTExfQ0xLRElWX1JBVElPX1NUQUJMRV9DTFVTVEVSX09GRlNFVAorfTsKKworLyoKKyAqIHN0cnVjdCBhcDgwNl9jbGs6IENQVSBjbHVzdGVyIGNsb2NrIGNvbnRyb2xsZXIgaW5zdGFuY2UKKyAqIEBjbHVzdGVyOiBDbHVzdGVyIGNsb2NrIGNvbnRyb2xsZXIgaW5kZXgKKyAqIEBjbGtfbmFtZTogQ2x1c3RlciBjbG9jayBjb250cm9sbGVyIG5hbWUKKyAqIEBkZXYgOiBDbHVzdGVyIGNsb2NrIGRldmljZQorICogQGh3OiBIVyBzcGVjaWZpYyBzdHJ1Y3R1cmUgb2YgQ2x1c3RlciBjbG9jayBjb250cm9sbGVyCisgKiBAcGxsX2NyX2Jhc2U6IENBNzJNUDIgUmVnaXN0ZXIgYmFzZSAoRGV2aWNlIFNhbXBsZSBhdCBSZXNldCByZWdpc3RlcikKKyAqLworc3RydWN0IGFwX2NwdV9jbGsgeworCXVuc2lnbmVkIGludCBjbHVzdGVyOworCWNvbnN0IGNoYXIgKmNsa19uYW1lOworCXN0cnVjdCBkZXZpY2UgKmRldjsKKwlzdHJ1Y3QgY2xrX2h3IGh3OworCXN0cnVjdCByZWdtYXAgKnBsbF9jcl9iYXNlOworCWNvbnN0IHN0cnVjdCBjcHVfZGZzX3JlZ3MgKnBsbF9yZWdzOworfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgYXBfY3B1X2Nsa19yZWNhbGNfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKKwkJCQkJICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpCit7CisJc3RydWN0IGFwX2NwdV9jbGsgKmNsayA9IHRvX2FwX2NwdV9jbGsoaHcpOworCXVuc2lnbmVkIGludCBjcHVfY2xrZGl2X3JlZzsKKwlpbnQgY3B1X2Nsa2Rpdl9yYXRpbzsKKworCWNwdV9jbGtkaXZfcmVnID0gY2xrLT5wbGxfcmVncy0+ZGl2aWRlcl9yZWcgKworCQkoY2xrLT5jbHVzdGVyICogY2xrLT5wbGxfcmVncy0+Y2x1c3Rlcl9vZmZzZXQpOworCXJlZ21hcF9yZWFkKGNsay0+cGxsX2NyX2Jhc2UsIGNwdV9jbGtkaXZfcmVnLCAmY3B1X2Nsa2Rpdl9yYXRpbyk7CisJY3B1X2Nsa2Rpdl9yYXRpbyAmPSBjbGstPnBsbF9yZWdzLT5kaXZpZGVyX21hc2s7CisJY3B1X2Nsa2Rpdl9yYXRpbyA+Pj0gY2xrLT5wbGxfcmVncy0+ZGl2aWRlcl9vZmZzZXQ7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyBjcHVfY2xrZGl2X3JhdGlvOworfQorCitzdGF0aWMgaW50IGFwX2NwdV9jbGtfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQoreworCXN0cnVjdCBhcF9jcHVfY2xrICpjbGsgPSB0b19hcF9jcHVfY2xrKGh3KTsKKwlpbnQgcmV0LCByZWcsIGRpdmlkZXIgPSBwYXJlbnRfcmF0ZSAvIHJhdGU7CisJdW5zaWduZWQgaW50IGNwdV9jbGtkaXZfcmVnLCBjcHVfZm9yY2VfcmVnLCBjcHVfcmF0aW9fcmVnLCBzdGFibGVfYml0OworCisJY3B1X2Nsa2Rpdl9yZWcgPSBjbGstPnBsbF9yZWdzLT5kaXZpZGVyX3JlZyArCisJCShjbGstPmNsdXN0ZXIgKiBjbGstPnBsbF9yZWdzLT5jbHVzdGVyX29mZnNldCk7CisJY3B1X2ZvcmNlX3JlZyA9IGNsay0+cGxsX3JlZ3MtPmZvcmNlX3JlZyArCisJCShjbGstPmNsdXN0ZXIgKiBjbGstPnBsbF9yZWdzLT5jbHVzdGVyX29mZnNldCk7CisJY3B1X3JhdGlvX3JlZyA9IGNsay0+cGxsX3JlZ3MtPnJhdGlvX3JlZyArCisJCShjbGstPmNsdXN0ZXIgKiBjbGstPnBsbF9yZWdzLT5jbHVzdGVyX29mZnNldCk7CisKKwlyZWdtYXBfcmVhZChjbGstPnBsbF9jcl9iYXNlLCBjcHVfY2xrZGl2X3JlZywgJnJlZyk7CisJcmVnICY9IH4oY2xrLT5wbGxfcmVncy0+ZGl2aWRlcl9tYXNrKTsKKwlyZWcgfD0gKGRpdmlkZXIgPDwgY2xrLT5wbGxfcmVncy0+ZGl2aWRlcl9vZmZzZXQpOworCisJLyoKKwkgKiBBUDgwNyBDUFUgZGl2aWRlciBoYXMgdHdvIGNoYW5uZWxzIHdpdGggcmF0aW8gMTozIGFuZCBkaXZpZGVyX3JhdGlvCisJICogaXMgMS4gT3RoZXJ3aXNlLCBpbiB0aGUgY2FzZSBvZiB0aGUgQVA4MDYsIGRpdmlkZXJfcmF0aW8gaXMgMC4KKwkgKi8KKwlpZiAoY2xrLT5wbGxfcmVncy0+ZGl2aWRlcl9yYXRpbykgeworCQlyZWcgJj0gfihBUDgwN19QTExfQ1JfMV9DUFVfQ0xLX0RJVl9SQVRJT19NQVNLKTsKKwkJcmVnIHw9ICgoZGl2aWRlciAqIGNsay0+cGxsX3JlZ3MtPmRpdmlkZXJfcmF0aW8pIDw8CisJCQkJQVA4MDdfUExMX0NSXzFfQ1BVX0NMS19ESVZfUkFUSU9fT0ZGU0VUKTsKKwl9CisJcmVnbWFwX3dyaXRlKGNsay0+cGxsX2NyX2Jhc2UsIGNwdV9jbGtkaXZfcmVnLCByZWcpOworCisKKwlyZWdtYXBfdXBkYXRlX2JpdHMoY2xrLT5wbGxfY3JfYmFzZSwgY3B1X2ZvcmNlX3JlZywKKwkJCSAgIGNsay0+cGxsX3JlZ3MtPmZvcmNlX21hc2ssCisJCQkgICBjbGstPnBsbF9yZWdzLT5mb3JjZV9tYXNrKTsKKworCXJlZ21hcF91cGRhdGVfYml0cyhjbGstPnBsbF9jcl9iYXNlLCBjcHVfcmF0aW9fcmVnLAorCQkJICAgQklUKGNsay0+cGxsX3JlZ3MtPnJhdGlvX29mZnNldCksCisJCQkgICBCSVQoY2xrLT5wbGxfcmVncy0+cmF0aW9fb2Zmc2V0KSk7CisKKwlzdGFibGVfYml0ID0gQklUKGNsay0+cGxsX3JlZ3MtPnJhdGlvX3N0YXRlX29mZnNldCArCisJCQkgY2xrLT5jbHVzdGVyICoKKwkJCSBjbGstPnBsbF9yZWdzLT5yYXRpb19zdGF0ZV9jbHVzdGVyX29mZnNldCksCisJcmV0ID0gcmVnbWFwX3JlYWRfcG9sbF90aW1lb3V0KGNsay0+cGxsX2NyX2Jhc2UsCisJCQkJICAgICAgIGNsay0+cGxsX3JlZ3MtPnJhdGlvX3N0YXRlX3JlZywgcmVnLAorCQkJCSAgICAgICByZWcgJiBzdGFibGVfYml0LCBTVEFUVVNfUE9MTF9QRVJJT0RfVVMsCisJCQkJICAgICAgIFNUQVRVU19QT0xMX1RJTUVPVVRfVVMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZWdtYXBfdXBkYXRlX2JpdHMoY2xrLT5wbGxfY3JfYmFzZSwgY3B1X3JhdGlvX3JlZywKKwkJCSAgIEJJVChjbGstPnBsbF9yZWdzLT5yYXRpb19vZmZzZXQpLCAwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgbG9uZyBhcF9jcHVfY2xrX3JvdW5kX3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgKnBhcmVudF9yYXRlKQoreworCWludCBkaXZpZGVyID0gKnBhcmVudF9yYXRlIC8gcmF0ZTsKKworCWRpdmlkZXIgPSBtaW4oZGl2aWRlciwgQVBOODA2X01BWF9ESVZJREVSKTsKKworCXJldHVybiAqcGFyZW50X3JhdGUgLyBkaXZpZGVyOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgYXBfY3B1X2Nsa19vcHMgPSB7CisJLnJlY2FsY19yYXRlCT0gYXBfY3B1X2Nsa19yZWNhbGNfcmF0ZSwKKwkucm91bmRfcmF0ZQk9IGFwX2NwdV9jbGtfcm91bmRfcmF0ZSwKKwkuc2V0X3JhdGUJPSBhcF9jcHVfY2xrX3NldF9yYXRlLAorfTsKKworc3RhdGljIGludCBhcF9jcHVfY2xvY2tfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlpbnQgcmV0LCBuY2x1c3RlcnMgPSAwLCBjbHVzdGVyX2luZGV4ID0gMDsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4sICpucCA9IGRldi0+b2Zfbm9kZTsKKwlzdHJ1Y3QgY2xrX2h3X29uZWNlbGxfZGF0YSAqYXBfY3B1X2RhdGE7CisJc3RydWN0IGFwX2NwdV9jbGsgKmFwX2NwdV9jbGs7CisJc3RydWN0IHJlZ21hcCAqcmVnbWFwOworCisJcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG5wLT5wYXJlbnQpOworCWlmIChJU19FUlIocmVnbWFwKSkgeworCQlwcl9lcnIoImNhbm5vdCBnZXQgcGxsX2NyX2Jhc2UgcmVnbWFwXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIocmVnbWFwKTsKKwl9CisKKwkvKgorCSAqIEFQODA2IGhhcyA0IGNwdXMgYW5kIERGUyBmb3IgQVA4MDYgaXMgY29udHJvbGxlZCBwZXIKKwkgKiBjbHVzdGVyICgyIENQVXMgcGVyIGNsdXN0ZXIpLCBjcHUwIGFuZCBjcHUxIGFyZSBmaXhlZCB0bworCSAqIGNsdXN0ZXIwIHdoaWxlIGNwdTIgYW5kIGNwdTMgYXJlIGZpeGVkIHRvIGNsdXN0ZXIxIHdoZXRoZXIKKwkgKiB0aGV5IGFyZSBlbmFibGVkIG9yIG5vdC4gIFNpbmNlIGNwdTAgaXMgdGhlIGJvb3QgY3B1LCB0aGVuCisJICogY2x1c3RlcjAgbXVzdCBleGlzdC4gIElmIGNwdTIgb3IgY3B1MyBpcyBlbmFibGVkLCBjbHVzdGVyMQorCSAqIHdpbGwgZXhpc3QgYW5kIHRoZSBjbHVzdGVyIG51bWJlciBpcyAyOyBvdGhlcndpc2UgdGhlCisJICogY2x1c3RlciBudW1iZXIgaXMgMS4KKwkgKi8KKwluY2x1c3RlcnMgPSAxOworCWZvcl9lYWNoX29mX2NwdV9ub2RlKGRuKSB7CisJCWludCBjcHUsIGVycjsKKworCQllcnIgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihkbiwgInJlZyIsICZjcHUpOworCQlpZiAoV0FSTl9PTihlcnIpKQorCQkJcmV0dXJuIGVycjsKKworCQkvKiBJZiBjcHUyIG9yIGNwdTMgaXMgZW5hYmxlZCAqLworCQlpZiAoY3B1ICYgQVBOODA2X0NMVVNURVJfTlVNX01BU0spIHsKKwkJCW5jbHVzdGVycyA9IDI7CisJCQlicmVhazsKKwkJfQorCX0KKwkvKgorCSAqIERGUyBmb3IgQVA4MDYgaXMgY29udHJvbGxlZCBwZXIgY2x1c3RlciAoMiBDUFVzIHBlciBjbHVzdGVyKSwKKwkgKiBzbyBhbGxvY2F0ZSBzdHJ1Y3RzIHBlciBjbHVzdGVyCisJICovCisJYXBfY3B1X2NsayA9IGRldm1fa2NhbGxvYyhkZXYsIG5jbHVzdGVycywgc2l6ZW9mKCphcF9jcHVfY2xrKSwKKwkJCQkgIEdGUF9LRVJORUwpOworCWlmICghYXBfY3B1X2NsaykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlhcF9jcHVfZGF0YSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqYXBfY3B1X2RhdGEpICsKKwkJCQlzaXplb2Yoc3RydWN0IGNsa19odyAqKSAqIG5jbHVzdGVycywKKwkJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIWFwX2NwdV9kYXRhKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvcl9lYWNoX29mX2NwdV9ub2RlKGRuKSB7CisJCWNoYXIgKmNsa19uYW1lID0gImNwdS1jbHVzdGVyLTAiOworCQlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OworCQljb25zdCBjaGFyICpwYXJlbnRfbmFtZTsKKwkJc3RydWN0IGNsayAqcGFyZW50OworCQlpbnQgY3B1LCBlcnI7CisKKwkJZXJyID0gb2ZfcHJvcGVydHlfcmVhZF91MzIoZG4sICJyZWciLCAmY3B1KTsKKwkJaWYgKFdBUk5fT04oZXJyKSkKKwkJCXJldHVybiBlcnI7CisKKwkJY2x1c3Rlcl9pbmRleCA9IGNwdSAmIEFQTjgwNl9DTFVTVEVSX05VTV9NQVNLOworCQljbHVzdGVyX2luZGV4ID4+PSBBUE44MDZfQ0xVU1RFUl9OVU1fT0ZGU0VUOworCisJCS8qIEluaXRpYWxpemUgb25jZSBmb3Igb25lIGNsdXN0ZXIgKi8KKwkJaWYgKGFwX2NwdV9kYXRhLT5od3NbY2x1c3Rlcl9pbmRleF0pCisJCQljb250aW51ZTsKKworCQlwYXJlbnQgPSBvZl9jbGtfZ2V0KG5wLCBjbHVzdGVyX2luZGV4KTsKKwkJaWYgKElTX0VSUihwYXJlbnQpKSB7CisJCQlkZXZfZXJyKGRldiwgIkNvdWxkIG5vdCBnZXQgdGhlIGNsb2NrIHBhcmVudFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlwYXJlbnRfbmFtZSA9ICBfX2Nsa19nZXRfbmFtZShwYXJlbnQpOworCQljbGtfbmFtZVsxMl0gKz0gY2x1c3Rlcl9pbmRleDsKKwkJYXBfY3B1X2Nsa1tjbHVzdGVyX2luZGV4XS5jbGtfbmFtZSA9CisJCQlhcF9jcF91bmlxdWVfbmFtZShkZXYsIG5wLT5wYXJlbnQsIGNsa19uYW1lKTsKKwkJYXBfY3B1X2Nsa1tjbHVzdGVyX2luZGV4XS5jbHVzdGVyID0gY2x1c3Rlcl9pbmRleDsKKwkJYXBfY3B1X2Nsa1tjbHVzdGVyX2luZGV4XS5wbGxfY3JfYmFzZSA9IHJlZ21hcDsKKwkJYXBfY3B1X2Nsa1tjbHVzdGVyX2luZGV4XS5ody5pbml0ID0gJmluaXQ7CisJCWFwX2NwdV9jbGtbY2x1c3Rlcl9pbmRleF0uZGV2ID0gZGV2OworCQlhcF9jcHVfY2xrW2NsdXN0ZXJfaW5kZXhdLnBsbF9yZWdzID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOworCisJCWluaXQubmFtZSA9IGFwX2NwdV9jbGtbY2x1c3Rlcl9pbmRleF0uY2xrX25hbWU7CisJCWluaXQub3BzID0gJmFwX2NwdV9jbGtfb3BzOworCQlpbml0Lm51bV9wYXJlbnRzID0gMTsKKwkJaW5pdC5wYXJlbnRfbmFtZXMgPSAmcGFyZW50X25hbWU7CisKKwkJcmV0ID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIoZGV2LCAmYXBfY3B1X2Nsa1tjbHVzdGVyX2luZGV4XS5odyk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCQlhcF9jcHVfZGF0YS0+aHdzW2NsdXN0ZXJfaW5kZXhdID0gJmFwX2NwdV9jbGtbY2x1c3Rlcl9pbmRleF0uaHc7CisJfQorCisJYXBfY3B1X2RhdGEtPm51bSA9IGNsdXN0ZXJfaW5kZXggKyAxOworCisJcmV0ID0gb2ZfY2xrX2FkZF9od19wcm92aWRlcihucCwgb2ZfY2xrX2h3X29uZWNlbGxfZ2V0LCBhcF9jcHVfZGF0YSk7CisJaWYgKHJldCkKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgT0YgY2xvY2sgcHJvdmlkZXJcbiIpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXBfY3B1X2Nsb2NrX29mX21hdGNoW10gPSB7CisJeworCQkuY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFwODA2LWNwdS1jbG9jayIsCisJCS5kYXRhID0gJmFwODA2X2Rmc19yZWdzLAorCX0sCisJeworCQkuY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFwODA3LWNwdS1jbG9jayIsCisJCS5kYXRhID0gJmFwODA3X2Rmc19yZWdzLAorCX0sCisJeyB9Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhcF9jcHVfY2xvY2tfZHJpdmVyID0geworCS5wcm9iZSA9IGFwX2NwdV9jbG9ja19wcm9iZSwKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAibWFydmVsbC1hcC1jcHUtY2xvY2siLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBhcF9jcHVfY2xvY2tfb2ZfbWF0Y2gsCisJCS5zdXBwcmVzc19iaW5kX2F0dHJzID0gdHJ1ZSwKKwl9LAorfTsKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGFwX2NwdV9jbG9ja19kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbXZlYnUvYXA4MDYtc3lzdGVtLWNvbnRyb2xsZXIuYyBiL2RyaXZlcnMvY2xrL212ZWJ1L2FwODA2LXN5c3RlbS1jb250cm9sbGVyLmMKaW5kZXggZWE1NGE4Ny4uOTQ4YmQxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbXZlYnUvYXA4MDYtc3lzdGVtLWNvbnRyb2xsZXIuYworKysgYi9kcml2ZXJzL2Nsay9tdmVidS9hcDgwNi1zeXN0ZW0tY29udHJvbGxlci5jCkBAIC0xMCwxOCArMTAsMTggQEAKIAogI2RlZmluZSBwcl9mbXQoZm10KSAiYXA4MDYtc3lzdGVtLWNvbnRyb2xsZXI6ICIgZm10CiAKKyNpbmNsdWRlICJhcm1hZGFfYXBfY3BfaGVscGVyLmgiCiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgotI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KIAogI2RlZmluZSBBUDgwNl9TQVJfUkVHCQkJMHg0MDAKICNkZWZpbmUgQVA4MDZfU0FSX0NMS0ZSRVFfTU9ERV9NQVNLCTB4MWYKIAotI2RlZmluZSBBUDgwNl9DTEtfTlVNCQkJNQorI2RlZmluZSBBUDgwNl9DTEtfTlVNCQkJNgogCiBzdGF0aWMgc3RydWN0IGNsayAqYXA4MDZfY2xrc1tBUDgwNl9DTEtfTlVNXTsKIApAQCAtMzAsMjIgKzMwLDEwNiBAQCBzdGF0aWMgc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgYXA4MDZfY2xrX2RhdGEgPSB7CiAJLmNsa19udW0gPSBBUDgwNl9DTEtfTlVNLAogfTsKIAotc3RhdGljIGNoYXIgKmFwODA2X3VuaXF1ZV9uYW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpucCwKLQkJCSAgICAgICBjaGFyICpuYW1lKQorc3RhdGljIGludCBhcDgwNl9nZXRfc2FyX2Nsb2Nrcyh1bnNpZ25lZCBpbnQgZnJlcV9tb2RlLAorCQkJCXVuc2lnbmVkIGludCAqY3B1Y2xrX2ZyZXEsCisJCQkJdW5zaWduZWQgaW50ICpkY2xrX2ZyZXEpCiB7Ci0JY29uc3QgX19iZTMyICpyZWc7Ci0JdTY0IGFkZHI7CisJc3dpdGNoIChmcmVxX21vZGUpIHsKKwljYXNlIDB4MDoKKwkJKmNwdWNsa19mcmVxID0gMjAwMDsKKwkJKmRjbGtfZnJlcSA9IDYwMDsKKwkJYnJlYWs7CisJY2FzZSAweDE6CisJCSpjcHVjbGtfZnJlcSA9IDIwMDA7CisJCSpkY2xrX2ZyZXEgPSA1MjU7CisJCWJyZWFrOworCWNhc2UgMHg2OgorCQkqY3B1Y2xrX2ZyZXEgPSAxODAwOworCQkqZGNsa19mcmVxID0gNjAwOworCQlicmVhazsKKwljYXNlIDB4NzoKKwkJKmNwdWNsa19mcmVxID0gMTgwMDsKKwkJKmRjbGtfZnJlcSA9IDUyNTsKKwkJYnJlYWs7CisJY2FzZSAweDQ6CisJCSpjcHVjbGtfZnJlcSA9IDE2MDA7CisJCSpkY2xrX2ZyZXEgPSA0MDA7CisJCWJyZWFrOworCWNhc2UgMHhCOgorCQkqY3B1Y2xrX2ZyZXEgPSAxNjAwOworCQkqZGNsa19mcmVxID0gNDUwOworCQlicmVhazsKKwljYXNlIDB4RDoKKwkJKmNwdWNsa19mcmVxID0gMTYwMDsKKwkJKmRjbGtfZnJlcSA9IDUyNTsKKwkJYnJlYWs7CisJY2FzZSAweDFhOgorCQkqY3B1Y2xrX2ZyZXEgPSAxNDAwOworCQkqZGNsa19mcmVxID0gNDAwOworCQlicmVhazsKKwljYXNlIDB4MTQ6CisJCSpjcHVjbGtfZnJlcSA9IDEzMDA7CisJCSpkY2xrX2ZyZXEgPSA0MDA7CisJCWJyZWFrOworCWNhc2UgMHgxNzoKKwkJKmNwdWNsa19mcmVxID0gMTMwMDsKKwkJKmRjbGtfZnJlcSA9IDMyNTsKKwkJYnJlYWs7CisJY2FzZSAweDE5OgorCQkqY3B1Y2xrX2ZyZXEgPSAxMjAwOworCQkqZGNsa19mcmVxID0gNDAwOworCQlicmVhazsKKwljYXNlIDB4MTM6CisJCSpjcHVjbGtfZnJlcSA9IDEwMDA7CisJCSpkY2xrX2ZyZXEgPSAzMjU7CisJCWJyZWFrOworCWNhc2UgMHgxZDoKKwkJKmNwdWNsa19mcmVxID0gMTAwMDsKKwkJKmRjbGtfZnJlcSA9IDQwMDsKKwkJYnJlYWs7CisJY2FzZSAweDFjOgorCQkqY3B1Y2xrX2ZyZXEgPSA4MDA7CisJCSpkY2xrX2ZyZXEgPSA0MDA7CisJCWJyZWFrOworCWNhc2UgMHgxYjoKKwkJKmNwdWNsa19mcmVxID0gNjAwOworCQkqZGNsa19mcmVxID0gNDAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKLQlyZWcgPSBvZl9nZXRfcHJvcGVydHkobnAsICJyZWciLCBOVUxMKTsKLQlhZGRyID0gb2ZfdHJhbnNsYXRlX2FkZHJlc3MobnAsIHJlZyk7Ci0JcmV0dXJuIGRldm1fa2FzcHJpbnRmKGRldiwgR0ZQX0tFUk5FTCwgIiVsbHgtJXMiLAotCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylhZGRyLCBuYW1lKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhcDgwN19nZXRfc2FyX2Nsb2Nrcyh1bnNpZ25lZCBpbnQgZnJlcV9tb2RlLAorCQkJCXVuc2lnbmVkIGludCAqY3B1Y2xrX2ZyZXEsCisJCQkJdW5zaWduZWQgaW50ICpkY2xrX2ZyZXEpCit7CisJc3dpdGNoIChmcmVxX21vZGUpIHsKKwljYXNlIDB4MDoKKwkJKmNwdWNsa19mcmVxID0gMjAwMDsKKwkJKmRjbGtfZnJlcSA9IDEyMDA7CisJCWJyZWFrOworCWNhc2UgMHg2OgorCQkqY3B1Y2xrX2ZyZXEgPSAyMjAwOworCQkqZGNsa19mcmVxID0gMTIwMDsKKwkJYnJlYWs7CisJY2FzZSAweEQ6CisJCSpjcHVjbGtfZnJlcSA9IDE2MDA7CisJCSpkY2xrX2ZyZXEgPSAxMjAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBhcDgwNl9zeXNjb25fY29tbW9uX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCQkJICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnN5c2Nvbl9ub2RlKQogewotCXVuc2lnbmVkIGludCBmcmVxX21vZGUsIGNwdWNsa19mcmVxOworCXVuc2lnbmVkIGludCBmcmVxX21vZGUsIGNwdWNsa19mcmVxLCBkY2xrX2ZyZXE7CiAJY29uc3QgY2hhciAqbmFtZSwgKmZpeGVkY2xrX25hbWU7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZGV2LT5vZl9ub2RlOwpAQCAtNjYsNTAgKzE1MCwyOSBAQCBzdGF0aWMgaW50IGFwODA2X3N5c2Nvbl9jb21tb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAl9CiAKIAlmcmVxX21vZGUgPSByZWcgJiBBUDgwNl9TQVJfQ0xLRlJFUV9NT0RFX01BU0s7Ci0Jc3dpdGNoIChmcmVxX21vZGUpIHsKLQljYXNlIDB4MDoKLQljYXNlIDB4MToKLQkJY3B1Y2xrX2ZyZXEgPSAyMDAwOwotCQlicmVhazsKLQljYXNlIDB4NjoKLQljYXNlIDB4NzoKLQkJY3B1Y2xrX2ZyZXEgPSAxODAwOwotCQlicmVhazsKLQljYXNlIDB4NDoKLQljYXNlIDB4QjoKLQljYXNlIDB4RDoKLQkJY3B1Y2xrX2ZyZXEgPSAxNjAwOwotCQlicmVhazsKLQljYXNlIDB4MWE6Ci0JCWNwdWNsa19mcmVxID0gMTQwMDsKLQkJYnJlYWs7Ci0JY2FzZSAweDE0OgotCWNhc2UgMHgxNzoKLQkJY3B1Y2xrX2ZyZXEgPSAxMzAwOwotCQlicmVhazsKLQljYXNlIDB4MTk6Ci0JCWNwdWNsa19mcmVxID0gMTIwMDsKLQkJYnJlYWs7Ci0JY2FzZSAweDEzOgotCWNhc2UgMHgxZDoKLQkJY3B1Y2xrX2ZyZXEgPSAxMDAwOwotCQlicmVhazsKLQljYXNlIDB4MWM6Ci0JCWNwdWNsa19mcmVxID0gODAwOwotCQlicmVhazsKLQljYXNlIDB4MWI6Ci0JCWNwdWNsa19mcmVxID0gNjAwOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlkZXZfZXJyKGRldiwgImludmFsaWQgU0FSIHZhbHVlXG4iKTsKKworCWlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShwZGV2LT5kZXYub2Zfbm9kZSwKKwkJCQkgICAgIm1hcnZlbGwsYXA4MDYtY2xvY2siKSkgeworCQlyZXQgPSBhcDgwNl9nZXRfc2FyX2Nsb2NrcyhmcmVxX21vZGUsICZjcHVjbGtfZnJlcSwgJmRjbGtfZnJlcSk7CisJfSBlbHNlIGlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShwZGV2LT5kZXYub2Zfbm9kZSwKKwkJCQkJICAgIm1hcnZlbGwsYXA4MDctY2xvY2siKSkgeworCQlyZXQgPSBhcDgwN19nZXRfc2FyX2Nsb2NrcyhmcmVxX21vZGUsICZjcHVjbGtfZnJlcSwgJmRjbGtfZnJlcSk7CisJfSBlbHNlIHsKKwkJZGV2X2VycihkZXYsICJjb21wYXRpYmxlIG5vdCBzdXBwb3J0ZWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiaW52YWxpZCBTYW1wbGUgYXQgUmVzZXQgdmFsdWVcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKwogCS8qIENvbnZlcnQgdG8gaGVydHogKi8KIAljcHVjbGtfZnJlcSAqPSAxMDAwICogMTAwMDsKKwlkY2xrX2ZyZXEgKj0gMTAwMCAqIDEwMDA7CiAKIAkvKiBDUFUgY2xvY2tzIGRlcGVuZCBvbiB0aGUgU2FtcGxlIEF0IFJlc2V0IGNvbmZpZ3VyYXRpb24gKi8KLQluYW1lID0gYXA4MDZfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgImNwdS1jbHVzdGVyLTAiKTsKKwluYW1lID0gYXBfY3BfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgInBsbC1jbHVzdGVyLTAiKTsKIAlhcDgwNl9jbGtzWzBdID0gY2xrX3JlZ2lzdGVyX2ZpeGVkX3JhdGUoZGV2LCBuYW1lLCBOVUxMLAogCQkJCQkJMCwgY3B1Y2xrX2ZyZXEpOwogCWlmIChJU19FUlIoYXA4MDZfY2xrc1swXSkpIHsKQEAgLTExNyw3ICsxODAsNyBAQCBzdGF0aWMgaW50IGFwODA2X3N5c2Nvbl9jb21tb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJZ290byBmYWlsMDsKIAl9CiAKLQluYW1lID0gYXA4MDZfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgImNwdS1jbHVzdGVyLTEiKTsKKwluYW1lID0gYXBfY3BfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgInBsbC1jbHVzdGVyLTEiKTsKIAlhcDgwNl9jbGtzWzFdID0gY2xrX3JlZ2lzdGVyX2ZpeGVkX3JhdGUoZGV2LCBuYW1lLCBOVUxMLCAwLAogCQkJCQkJY3B1Y2xrX2ZyZXEpOwogCWlmIChJU19FUlIoYXA4MDZfY2xrc1sxXSkpIHsKQEAgLTEyNiw3ICsxODksNyBAQCBzdGF0aWMgaW50IGFwODA2X3N5c2Nvbl9jb21tb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAl9CiAKIAkvKiBGaXhlZCBjbG9jayBpcyBhbHdheXMgMTIwMCBNaHogKi8KLQlmaXhlZGNsa19uYW1lID0gYXA4MDZfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgImZpeGVkIik7CisJZml4ZWRjbGtfbmFtZSA9IGFwX2NwX3VuaXF1ZV9uYW1lKGRldiwgc3lzY29uX25vZGUsICJmaXhlZCIpOwogCWFwODA2X2Nsa3NbMl0gPSBjbGtfcmVnaXN0ZXJfZml4ZWRfcmF0ZShkZXYsIGZpeGVkY2xrX25hbWUsIE5VTEwsCiAJCQkJCQkwLCAxMjAwICogMTAwMCAqIDEwMDApOwogCWlmIChJU19FUlIoYXA4MDZfY2xrc1syXSkpIHsKQEAgLTEzNSw3ICsxOTgsNyBAQCBzdGF0aWMgaW50IGFwODA2X3N5c2Nvbl9jb21tb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAl9CiAKIAkvKiBNU1MgQ2xvY2sgaXMgZml4ZWQgY2xvY2sgZGl2aWRlZCBieSA2ICovCi0JbmFtZSA9IGFwODA2X3VuaXF1ZV9uYW1lKGRldiwgc3lzY29uX25vZGUsICJtc3MiKTsKKwluYW1lID0gYXBfY3BfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgIm1zcyIpOwogCWFwODA2X2Nsa3NbM10gPSBjbGtfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKE5VTEwsIG5hbWUsIGZpeGVkY2xrX25hbWUsCiAJCQkJCQkgIDAsIDEsIDYpOwogCWlmIChJU19FUlIoYXA4MDZfY2xrc1szXSkpIHsKQEAgLTE0NCw3ICsyMDcsNyBAQCBzdGF0aWMgaW50IGFwODA2X3N5c2Nvbl9jb21tb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAl9CiAKIAkvKiBTRElPKC9lTU1DKSBDbG9jayBpcyBmaXhlZCBjbG9jayBkaXZpZGVkIGJ5IDMgKi8KLQluYW1lID0gYXA4MDZfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgInNkaW8iKTsKKwluYW1lID0gYXBfY3BfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgInNkaW8iKTsKIAlhcDgwNl9jbGtzWzRdID0gY2xrX3JlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihOVUxMLCBuYW1lLAogCQkJCQkJICBmaXhlZGNsa19uYW1lLAogCQkJCQkJICAwLCAxLCAzKTsKQEAgLTE1Myw2ICsyMTYsMTQgQEAgc3RhdGljIGludCBhcDgwNl9zeXNjb25fY29tbW9uX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCWdvdG8gZmFpbDQ7CiAJfQogCisJLyogQVAtRENMSyhIQ0xLKSBDbG9jayBpcyBERFIgY2xvY2sgZGl2aWRlZCBieSAyICovCisJbmFtZSA9IGFwX2NwX3VuaXF1ZV9uYW1lKGRldiwgc3lzY29uX25vZGUsICJhcC1kY2xrIik7CisJYXA4MDZfY2xrc1s1XSA9IGNsa19yZWdpc3Rlcl9maXhlZF9yYXRlKGRldiwgbmFtZSwgTlVMTCwgMCwgZGNsa19mcmVxKTsKKwlpZiAoSVNfRVJSKGFwODA2X2Nsa3NbNV0pKSB7CisJCXJldCA9IFBUUl9FUlIoYXA4MDZfY2xrc1s1XSk7CisJCWdvdG8gZmFpbDU7CisJfQorCiAJcmV0ID0gb2ZfY2xrX2FkZF9wcm92aWRlcihucCwgb2ZfY2xrX3NyY19vbmVjZWxsX2dldCwgJmFwODA2X2Nsa19kYXRhKTsKIAlpZiAocmV0KQogCQlnb3RvIGZhaWxfY2xrX2FkZDsKQEAgLTE2MCw2ICsyMzEsOCBAQCBzdGF0aWMgaW50IGFwODA2X3N5c2Nvbl9jb21tb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAlyZXR1cm4gMDsKIAogZmFpbF9jbGtfYWRkOgorCWNsa191bnJlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihhcDgwNl9jbGtzWzVdKTsKK2ZhaWw1OgogCWNsa191bnJlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihhcDgwNl9jbGtzWzRdKTsKIGZhaWw0OgogCWNsa191bnJlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihhcDgwNl9jbGtzWzNdKTsKQEAgLTIwNiw2ICsyNzksNyBAQCBidWlsdGluX3BsYXRmb3JtX2RyaXZlcihhcDgwNl9zeXNjb25fbGVnYWN5X2RyaXZlcik7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFwODA2X2Nsb2NrX29mX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFwODA2LWNsb2NrIiwgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1hcnZlbGwsYXA4MDctY2xvY2siLCB9LAogCXsgfQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbXZlYnUvYXJtYWRhX2FwX2NwX2hlbHBlci5jIGIvZHJpdmVycy9jbGsvbXZlYnUvYXJtYWRhX2FwX2NwX2hlbHBlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhOTMwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2Nsay9tdmVidS9hcm1hZGFfYXBfY3BfaGVscGVyLmMKQEAgLTAsMCArMSwzMCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisvKgorICogTWFydmVsbCBBcm1hZGEgQVAgYW5kIENQMTEwIGhlbHBlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBNYXJ2ZWxsCisgKgorICogR3JlZ29yeSBDbGVtZW50IDxncmVnb3J5LmNsZW1lbnRAYm9vdGxpbi5jb20+CisgKgorICovCisKKyNpbmNsdWRlICJhcm1hZGFfYXBfY3BfaGVscGVyLmgiCisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+CisKK2NoYXIgKmFwX2NwX3VuaXF1ZV9uYW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpucCwKKwkJCWNvbnN0IGNoYXIgKm5hbWUpCit7CisJY29uc3QgX19iZTMyICpyZWc7CisJdTY0IGFkZHI7CisKKwkvKiBEbyBub3QgY3JlYXRlIGEgbmFtZSBpZiB0aGVyZSBpcyBubyBjbG9jayAqLworCWlmICghbmFtZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZWcgPSBvZl9nZXRfcHJvcGVydHkobnAsICJyZWciLCBOVUxMKTsKKwlhZGRyID0gb2ZfdHJhbnNsYXRlX2FkZHJlc3MobnAsIHJlZyk7CisJcmV0dXJuIGRldm1fa2FzcHJpbnRmKGRldiwgR0ZQX0tFUk5FTCwgIiVsbHgtJXMiLAorCQkJICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylhZGRyLCBuYW1lKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL212ZWJ1L2FybWFkYV9hcF9jcF9oZWxwZXIuaCBiL2RyaXZlcnMvY2xrL212ZWJ1L2FybWFkYV9hcF9jcF9oZWxwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTBhZjFlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvbXZlYnUvYXJtYWRhX2FwX2NwX2hlbHBlci5oCkBAIC0wLDAgKzEsMTEgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqLworCisjaWZuZGVmIF9fQVJNQURBX0FQX0NQX0hFTFBFUl9ICisjZGVmaW5lIF9fQVJNQURBX0FQX0NQX0hFTFBFUl9ICisKK3N0cnVjdCBkZXZpY2U7CitzdHJ1Y3QgZGV2aWNlX25vZGU7CisKK2NoYXIgKmFwX2NwX3VuaXF1ZV9uYW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpucCwKKwkJCWNvbnN0IGNoYXIgKm5hbWUpOworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tdmVidS9jcDExMC1zeXN0ZW0tY29udHJvbGxlci5jIGIvZHJpdmVycy9jbGsvbXZlYnUvY3AxMTAtc3lzdGVtLWNvbnRyb2xsZXIuYwppbmRleCBiNmRlMjgzLi44MDg0NjMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9tdmVidS9jcDExMC1zeXN0ZW0tY29udHJvbGxlci5jCisrKyBiL2RyaXZlcnMvY2xrL212ZWJ1L2NwMTEwLXN5c3RlbS1jb250cm9sbGVyLmMKQEAgLTI2LDExICsyNiwxMSBAQAogCiAjZGVmaW5lIHByX2ZtdChmbXQpICJjcDExMC1zeXN0ZW0tY29udHJvbGxlcjogIiBmbXQKIAorI2luY2x1ZGUgImFybWFkYV9hcF9jcF9oZWxwZXIuaCIKICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KQEAgLTIxMiwyMiArMjEyLDYgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHcgKmNwMTEwX29mX2Nsa19nZXQoc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3BlYywKIAlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIH0KIAotc3RhdGljIGNoYXIgKmNwMTEwX3VuaXF1ZV9uYW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpucCwKLQkJCSAgICAgICBjb25zdCBjaGFyICpuYW1lKQotewotCWNvbnN0IF9fYmUzMiAqcmVnOwotCXU2NCBhZGRyOwotCi0JLyogRG8gbm90IGNyZWF0ZSBhIG5hbWUgaWYgdGhlcmUgaXMgbm8gY2xvY2sgKi8KLQlpZiAoIW5hbWUpCi0JCXJldHVybiBOVUxMOwotCi0JcmVnID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAicmVnIiwgTlVMTCk7Ci0JYWRkciA9IG9mX3RyYW5zbGF0ZV9hZGRyZXNzKG5wLCByZWcpOwotCXJldHVybiBkZXZtX2thc3ByaW50ZihkZXYsIEdGUF9LRVJORUwsICIlbGx4LSVzIiwKLQkJCSAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpYWRkciwgbmFtZSk7Ci19Ci0KIHN0YXRpYyBpbnQgY3AxMTBfc3lzY29uX2NvbW1vbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCQkJCSAgICAgc3RydWN0IGRldmljZV9ub2RlICpzeXNjb25fbm9kZSkKIHsKQEAgLTI2MSw3ICsyNDUsNyBAQCBzdGF0aWMgaW50IGNwMTEwX3N5c2Nvbl9jb21tb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAljcDExMF9jbGtfZGF0YS0+bnVtID0gQ1AxMTBfQ0xLX05VTTsKIAogCS8qIFJlZ2lzdGVyIHRoZSBQTEwwIHdoaWNoIGlzIHRoZSByb290IG9mIHRoZSBodyB0cmVlICovCi0JcGxsMF9uYW1lID0gY3AxMTBfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgInBsbDAiKTsKKwlwbGwwX25hbWUgPSBhcF9jcF91bmlxdWVfbmFtZShkZXYsIHN5c2Nvbl9ub2RlLCAicGxsMCIpOwogCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2ZpeGVkX3JhdGUoTlVMTCwgcGxsMF9uYW1lLCBOVUxMLCAwLAogCQkJCQkxMDAwICogMTAwMCAqIDEwMDApOwogCWlmIChJU19FUlIoaHcpKSB7CkBAIC0yNzIsNyArMjU2LDcgQEAgc3RhdGljIGludCBjcDExMF9zeXNjb25fY29tbW9uX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJY3AxMTBfY2xrc1tDUDExMF9DT1JFX1BMTDBdID0gaHc7CiAKIAkvKiBQUHYyIGlzIFBMTDAvMyAqLwotCXBwdjJfbmFtZSA9IGNwMTEwX3VuaXF1ZV9uYW1lKGRldiwgc3lzY29uX25vZGUsICJwcHYyLWNvcmUiKTsKKwlwcHYyX25hbWUgPSBhcF9jcF91bmlxdWVfbmFtZShkZXYsIHN5c2Nvbl9ub2RlLCAicHB2Mi1jb3JlIik7CiAJaHcgPSBjbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKE5VTEwsIHBwdjJfbmFtZSwgcGxsMF9uYW1lLCAwLCAxLCAzKTsKIAlpZiAoSVNfRVJSKGh3KSkgewogCQlyZXQgPSBQVFJfRVJSKGh3KTsKQEAgLTI4Miw3ICsyNjYsNyBAQCBzdGF0aWMgaW50IGNwMTEwX3N5c2Nvbl9jb21tb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAljcDExMF9jbGtzW0NQMTEwX0NPUkVfUFBWMl0gPSBodzsKIAogCS8qIFgyQ09SRSBjbG9jayBpcyBQTEwwLzIgKi8KLQl4MmNvcmVfbmFtZSA9IGNwMTEwX3VuaXF1ZV9uYW1lKGRldiwgc3lzY29uX25vZGUsICJ4MmNvcmUiKTsKKwl4MmNvcmVfbmFtZSA9IGFwX2NwX3VuaXF1ZV9uYW1lKGRldiwgc3lzY29uX25vZGUsICJ4MmNvcmUiKTsKIAlodyA9IGNsa19od19yZWdpc3Rlcl9maXhlZF9mYWN0b3IoTlVMTCwgeDJjb3JlX25hbWUsIHBsbDBfbmFtZSwKIAkJCQkJICAwLCAxLCAyKTsKIAlpZiAoSVNfRVJSKGh3KSkgewpAQCAtMjkzLDcgKzI3Nyw3IEBAIHN0YXRpYyBpbnQgY3AxMTBfc3lzY29uX2NvbW1vbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCWNwMTEwX2Nsa3NbQ1AxMTBfQ09SRV9YMkNPUkVdID0gaHc7CiAKIAkvKiBDb3JlIGNsb2NrIGlzIFgyQ09SRS8yICovCi0JY29yZV9uYW1lID0gY3AxMTBfdW5pcXVlX25hbWUoZGV2LCBzeXNjb25fbm9kZSwgImNvcmUiKTsKKwljb3JlX25hbWUgPSBhcF9jcF91bmlxdWVfbmFtZShkZXYsIHN5c2Nvbl9ub2RlLCAiY29yZSIpOwogCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihOVUxMLCBjb3JlX25hbWUsIHgyY29yZV9uYW1lLAogCQkJCQkgIDAsIDEsIDIpOwogCWlmIChJU19FUlIoaHcpKSB7CkBAIC0zMDMsNyArMjg3LDcgQEAgc3RhdGljIGludCBjcDExMF9zeXNjb25fY29tbW9uX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAKIAljcDExMF9jbGtzW0NQMTEwX0NPUkVfQ09SRV0gPSBodzsKIAkvKiBOQU5EIGNhbiBiZSBlaXRoZXIgUExMMC8yLjUgb3IgY29yZSBjbG9jayAqLwotCW5hbmRfbmFtZSA9IGNwMTEwX3VuaXF1ZV9uYW1lKGRldiwgc3lzY29uX25vZGUsICJuYW5kLWNvcmUiKTsKKwluYW5kX25hbWUgPSBhcF9jcF91bmlxdWVfbmFtZShkZXYsIHN5c2Nvbl9ub2RlLCAibmFuZC1jb3JlIik7CiAJaWYgKG5hbmRfY2xrX2N0cmwgJiBORl9DTE9DS19TRUxfNDAwX01BU0spCiAJCWh3ID0gY2xrX2h3X3JlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihOVUxMLCBuYW5kX25hbWUsCiAJCQkJCQkgICBwbGwwX25hbWUsIDAsIDIsIDUpOwpAQCAtMzE4LDcgKzMwMiw3IEBAIHN0YXRpYyBpbnQgY3AxMTBfc3lzY29uX2NvbW1vbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCWNwMTEwX2Nsa3NbQ1AxMTBfQ09SRV9OQU5EXSA9IGh3OwogCiAJLyogU0RJTyBjbG9jayBpcyBQTEwwLzIuNSAqLwotCXNkaW9fbmFtZSA9IGNwMTEwX3VuaXF1ZV9uYW1lKGRldiwgc3lzY29uX25vZGUsICJzZGlvLWNvcmUiKTsKKwlzZGlvX25hbWUgPSBhcF9jcF91bmlxdWVfbmFtZShkZXYsIHN5c2Nvbl9ub2RlLCAic2Rpby1jb3JlIik7CiAJaHcgPSBjbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKE5VTEwsIHNkaW9fbmFtZSwKIAkJCQkJICBwbGwwX25hbWUsIDAsIDIsIDUpOwogCWlmIChJU19FUlIoaHcpKSB7CkBAIC0zMzAsNyArMzE0LDcgQEAgc3RhdGljIGludCBjcDExMF9zeXNjb25fY29tbW9uX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAKIAkvKiBjcmVhdGUgdGhlIHVuaXF1ZSBuYW1lIGZvciBhbGwgdGhlIGdhdGUgY2xvY2tzICovCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZ2F0ZV9iYXNlX25hbWVzKTsgaSsrKQotCQlnYXRlX25hbWVbaV0gPQljcDExMF91bmlxdWVfbmFtZShkZXYsIHN5c2Nvbl9ub2RlLAorCQlnYXRlX25hbWVbaV0gPQlhcF9jcF91bmlxdWVfbmFtZShkZXYsIHN5c2Nvbl9ub2RlLAogCQkJCQkJICBnYXRlX2Jhc2VfbmFtZXNbaV0pOwogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZ2F0ZV9iYXNlX25hbWVzKTsgaSsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9xY29tL0tjb25maWcgYi9kcml2ZXJzL2Nsay9xY29tL0tjb25maWcKaW5kZXggZTFmZjgzYy4uMzJkYmI0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcWNvbS9LY29uZmlnCisrKyBiL2RyaXZlcnMvY2xrL3Fjb20vS2NvbmZpZwpAQCAtMjEsNyArMjEsNiBAQAogCiBjb25maWcgUUNPTV9BNTNQTEwKIAl0cmlzdGF0ZSAiTVNNODkxNiBBNTMgUExMIgotCWRlZmF1bHQgQVJDSF9RQ09NCiAJaGVscAogCSAgU3VwcG9ydCBmb3IgdGhlIEE1MyBQTEwgb24gTVNNODkxNiBkZXZpY2VzLiBJdCBwcm92aWRlcwogCSAgdGhlIENQVSB3aXRoIGZyZXF1ZW5jaWVzIGFib3ZlIDFHSHouCkBAIC0zMSw3ICszMCw2IEBACiBjb25maWcgUUNPTV9DTEtfQVBDU19NU004OTE2CiAJdHJpc3RhdGUgIk1TTTg5MTYgQVBDUyBDbG9jayBDb250cm9sbGVyIgogCWRlcGVuZHMgb24gUUNPTV9BUENTX0lQQyB8fCBDT01QSUxFX1RFU1QKLQlkZWZhdWx0IEFSQ0hfUUNPTQogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIHRoZSBBUENTIENsb2NrIENvbnRyb2xsZXIgb24gbXNtODkxNiBkZXZpY2VzLiBUaGUKIAkgIEFQQ1MgaXMgbWFuYWdpbmcgdGhlIG11eCBhbmQgZGl2aWRlciB3aGljaCBmZWVkcyB0aGUgQ1BVcy4KQEAgLTI5Miw2ICsyOTAsMTMgQEAKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgTFBBU1MgYnJhbmNoIGNsb2NrcyBvZiB0aGUgTFBBU1MgY2xvY2sKIAkgIGNvbnRyb2xsZXIgdG8gcmVzZXQgdGhlIExQQVNTIHN1YnN5c3RlbS4KIAorY29uZmlnIFNNX0dDQ184MTUwCisJdHJpc3RhdGUgIlNNODE1MCBHbG9iYWwgQ2xvY2sgQ29udHJvbGxlciIKKwloZWxwCisJICBTdXBwb3J0IGZvciB0aGUgZ2xvYmFsIGNsb2NrIGNvbnRyb2xsZXIgb24gU004MTUwIGRldmljZXMuCisJICBTYXkgWSBpZiB5b3Ugd2FudCB0byB1c2UgcGVyaXBoZXJhbCBkZXZpY2VzIHN1Y2ggYXMgVUFSVCwKKwkgIFNQSSwgSTJDLCBVU0IsIFNEL1VGUywgUENJZSBldGMuCisKIGNvbmZpZyBTUE1JX1BNSUNfQ0xLRElWCiAJdHJpc3RhdGUgIlNQTUkgUE1JQyBjbGtkaXYgU3VwcG9ydCIKIAlkZXBlbmRzIG9uIFNQTUkgfHwgQ09NUElMRV9URVNUCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9xY29tL01ha2VmaWxlIGIvZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZQppbmRleCBmMDc2OGZiLi40YTgxM2I0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9xY29tL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvY2xrL3Fjb20vTWFrZWZpbGUKQEAgLTUwLDYgKzUwLDcgQEAKIG9iai0kKENPTkZJR19TRE1fR1BVQ0NfODQ1KSArPSBncHVjYy1zZG04NDUubwogb2JqLSQoQ09ORklHX1NETV9MUEFTU0NDXzg0NSkgKz0gbHBhc3NjYy1zZG04NDUubwogb2JqLSQoQ09ORklHX1NETV9WSURFT0NDXzg0NSkgKz0gdmlkZW9jYy1zZG04NDUubworb2JqLSQoQ09ORklHX1NNX0dDQ184MTUwKSArPSBnY2Mtc204MTUwLm8KIG9iai0kKENPTkZJR19TUE1JX1BNSUNfQ0xLRElWKSArPSBjbGstc3BtaS1wbWljLWRpdi5vCiBvYmotJChDT05GSUdfS1BTU19YQ0MpICs9IGtwc3MteGNjLm8KIG9iai0kKENPTkZJR19RQ09NX0hGUExMKSArPSBoZnBsbC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9xY29tL2Nsay1hbHBoYS1wbGwuYyBiL2RyaXZlcnMvY2xrL3Fjb20vY2xrLWFscGhhLXBsbC5jCmluZGV4IDBjZWQ0YTUuLjA1NTMxOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vY2xrLWFscGhhLXBsbC5jCisrKyBiL2RyaXZlcnMvY2xrL3Fjb20vY2xrLWFscGhhLXBsbC5jCkBAIC0zMiw2ICszMiw3IEBACiAjIGRlZmluZSBQTExfTE9DS19ERVQJCUJJVCgzMSkKIAogI2RlZmluZSBQTExfTF9WQUwocCkJCSgocCktPm9mZnNldCArIChwKS0+cmVnc1tQTExfT0ZGX0xfVkFMXSkKKyNkZWZpbmUgUExMX0NBTF9MX1ZBTChwKQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9DQUxfTF9WQUxdKQogI2RlZmluZSBQTExfQUxQSEFfVkFMKHApCSgocCktPm9mZnNldCArIChwKS0+cmVnc1tQTExfT0ZGX0FMUEhBX1ZBTF0pCiAjZGVmaW5lIFBMTF9BTFBIQV9WQUxfVShwKQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9BTFBIQV9WQUxfVV0pCiAKQEAgLTQ0LDE0ICs0NSwxNyBAQAogIyBkZWZpbmUgUExMX1ZDT19NQVNLCQkweDMKIAogI2RlZmluZSBQTExfVVNFUl9DVExfVShwKQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9VU0VSX0NUTF9VXSkKKyNkZWZpbmUgUExMX1VTRVJfQ1RMX1UxKHApCSgocCktPm9mZnNldCArIChwKS0+cmVnc1tQTExfT0ZGX1VTRVJfQ1RMX1UxXSkKIAogI2RlZmluZSBQTExfQ09ORklHX0NUTChwKQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9DT05GSUdfQ1RMXSkKICNkZWZpbmUgUExMX0NPTkZJR19DVExfVShwKQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9DT05GSUdfQ1RMX1VdKQorI2RlZmluZSBQTExfQ09ORklHX0NUTF9VMShwKQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9DT05GSUdfQ1RMX1UxXSkKICNkZWZpbmUgUExMX1RFU1RfQ1RMKHApCQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9URVNUX0NUTF0pCiAjZGVmaW5lIFBMTF9URVNUX0NUTF9VKHApCSgocCktPm9mZnNldCArIChwKS0+cmVnc1tQTExfT0ZGX1RFU1RfQ1RMX1VdKQogI2RlZmluZSBQTExfU1RBVFVTKHApCQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9TVEFUVVNdKQogI2RlZmluZSBQTExfT1BNT0RFKHApCQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9PUE1PREVdKQogI2RlZmluZSBQTExfRlJBQyhwKQkJKChwKS0+b2Zmc2V0ICsgKHApLT5yZWdzW1BMTF9PRkZfRlJBQ10pCisjZGVmaW5lIFBMTF9DQUxfVkFMKHApCQkoKHApLT5vZmZzZXQgKyAocCktPnJlZ3NbUExMX09GRl9DQUxfVkFMXSkKIAogY29uc3QgdTggY2xrX2FscGhhX3BsbF9yZWdzW11bUExMX09GRl9NQVhfUkVHU10gPSB7CiAJW0NMS19BTFBIQV9QTExfVFlQRV9ERUZBVUxUXSA9ICB7CkBAIC05Niw2ICsxMDAsMjIgQEAgY29uc3QgdTggY2xrX2FscGhhX3BsbF9yZWdzW11bUExMX09GRl9NQVhfUkVHU10gPSB7CiAJCVtQTExfT0ZGX09QTU9ERV0gPSAweDJjLAogCQlbUExMX09GRl9GUkFDXSA9IDB4MzgsCiAJfSwKKwlbQ0xLX0FMUEhBX1BMTF9UWVBFX1RSSU9OXSA9IHsKKwkJW1BMTF9PRkZfTF9WQUxdID0gMHgwNCwKKwkJW1BMTF9PRkZfQ0FMX0xfVkFMXSA9IDB4MDgsCisJCVtQTExfT0ZGX1VTRVJfQ1RMXSA9IDB4MGMsCisJCVtQTExfT0ZGX1VTRVJfQ1RMX1VdID0gMHgxMCwKKwkJW1BMTF9PRkZfVVNFUl9DVExfVTFdID0gMHgxNCwKKwkJW1BMTF9PRkZfQ09ORklHX0NUTF0gPSAweDE4LAorCQlbUExMX09GRl9DT05GSUdfQ1RMX1VdID0gMHgxYywKKwkJW1BMTF9PRkZfQ09ORklHX0NUTF9VMV0gPSAweDIwLAorCQlbUExMX09GRl9URVNUX0NUTF0gPSAweDI0LAorCQlbUExMX09GRl9URVNUX0NUTF9VXSA9IDB4MjgsCisJCVtQTExfT0ZGX1NUQVRVU10gPSAweDMwLAorCQlbUExMX09GRl9PUE1PREVdID0gMHgzOCwKKwkJW1BMTF9PRkZfQUxQSEFfVkFMXSA9IDB4NDAsCisJCVtQTExfT0ZGX0NBTF9WQUxdID0gMHg0NCwKKwl9LAogfTsKIEVYUE9SVF9TWU1CT0xfR1BMKGNsa19hbHBoYV9wbGxfcmVncyk7CiAKQEAgLTEyMCw2ICsxNDAsMTAgQEAgRVhQT1JUX1NZTUJPTF9HUEwoY2xrX2FscGhhX3BsbF9yZWdzKTsKICNkZWZpbmUgRkFCSUFfUExMX09VVF9NQVNLCTB4NwogI2RlZmluZSBGQUJJQV9QTExfUkFURV9NQVJHSU4JNTAwCiAKKyNkZWZpbmUgVFJJT05fUExMX1NUQU5EQlkJMHgwCisjZGVmaW5lIFRSSU9OX1BMTF9SVU4JCTB4MQorI2RlZmluZSBUUklPTl9QTExfT1VUX01BU0sJMHg3CisKICNkZWZpbmUgcGxsX2FscGhhX3dpZHRoKHApCQkJCQlcCiAJCSgoUExMX0FMUEhBX1ZBTF9VKHApIC0gUExMX0FMUEhBX1ZBTChwKSA9PSA0KSA/CVwKIAkJCQkgQUxQSEFfUkVHX0JJVFdJRFRIIDogQUxQSEFfUkVHXzE2QklUX1dJRFRIKQpAQCAtNzMwLDYgKzc1NCwxMzAgQEAgc3RhdGljIGxvbmcgYWxwaGFfcGxsX2h1YXlyYV9yb3VuZF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJcmV0dXJuIGFscGhhX2h1YXlyYV9wbGxfcm91bmRfcmF0ZShyYXRlLCAqcHJhdGUsICZsLCAmYSk7CiB9CiAKK3N0YXRpYyBpbnQgdHJpb25fcGxsX2lzX2VuYWJsZWQoc3RydWN0IGNsa19hbHBoYV9wbGwgKnBsbCwKKwkJCQlzdHJ1Y3QgcmVnbWFwICpyZWdtYXApCit7CisJdTMyIG1vZGVfcmVndmFsLCBvcG1vZGVfcmVndmFsOworCWludCByZXQ7CisKKwlyZXQgPSByZWdtYXBfcmVhZChyZWdtYXAsIFBMTF9NT0RFKHBsbCksICZtb2RlX3JlZ3ZhbCk7CisJcmV0IHw9IHJlZ21hcF9yZWFkKHJlZ21hcCwgUExMX09QTU9ERShwbGwpLCAmb3Btb2RlX3JlZ3ZhbCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gKChvcG1vZGVfcmVndmFsICYgVFJJT05fUExMX1JVTikgJiYgKG1vZGVfcmVndmFsICYgUExMX09VVENUUkwpKTsKK30KKworc3RhdGljIGludCBjbGtfdHJpb25fcGxsX2lzX2VuYWJsZWQoc3RydWN0IGNsa19odyAqaHcpCit7CisJc3RydWN0IGNsa19hbHBoYV9wbGwgKnBsbCA9IHRvX2Nsa19hbHBoYV9wbGwoaHcpOworCisJcmV0dXJuIHRyaW9uX3BsbF9pc19lbmFibGVkKHBsbCwgcGxsLT5jbGtyLnJlZ21hcCk7Cit9CisKK3N0YXRpYyBpbnQgY2xrX3RyaW9uX3BsbF9lbmFibGUoc3RydWN0IGNsa19odyAqaHcpCit7CisJc3RydWN0IGNsa19hbHBoYV9wbGwgKnBsbCA9IHRvX2Nsa19hbHBoYV9wbGwoaHcpOworCXN0cnVjdCByZWdtYXAgKnJlZ21hcCA9IHBsbC0+Y2xrci5yZWdtYXA7CisJdTMyIHZhbDsKKwlpbnQgcmV0OworCisJcmV0ID0gcmVnbWFwX3JlYWQocmVnbWFwLCBQTExfTU9ERShwbGwpLCAmdmFsKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyogSWYgaW4gRlNNIG1vZGUsIGp1c3Qgdm90ZSBmb3IgaXQgKi8KKwlpZiAodmFsICYgUExMX1ZPVEVfRlNNX0VOQSkgeworCQlyZXQgPSBjbGtfZW5hYmxlX3JlZ21hcChodyk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCQlyZXR1cm4gd2FpdF9mb3JfcGxsX2VuYWJsZV9hY3RpdmUocGxsKTsKKwl9CisKKwkvKiBTZXQgb3BlcmF0aW9uIG1vZGUgdG8gUlVOICovCisJcmVnbWFwX3dyaXRlKHJlZ21hcCwgUExMX09QTU9ERShwbGwpLCBUUklPTl9QTExfUlVOKTsKKworCXJldCA9IHdhaXRfZm9yX3BsbF9lbmFibGVfbG9jayhwbGwpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwkvKiBFbmFibGUgdGhlIFBMTCBvdXRwdXRzICovCisJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21hcCwgUExMX1VTRVJfQ1RMKHBsbCksCisJCQkJIFRSSU9OX1BMTF9PVVRfTUFTSywgVFJJT05fUExMX09VVF9NQVNLKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyogRW5hYmxlIHRoZSBnbG9iYWwgUExMIG91dHB1dHMgKi8KKwlyZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21hcCwgUExMX01PREUocGxsKSwKKwkJCQkgUExMX09VVENUUkwsIFBMTF9PVVRDVFJMKTsKK30KKworc3RhdGljIHZvaWQgY2xrX3RyaW9uX3BsbF9kaXNhYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQoreworCXN0cnVjdCBjbGtfYWxwaGFfcGxsICpwbGwgPSB0b19jbGtfYWxwaGFfcGxsKGh3KTsKKwlzdHJ1Y3QgcmVnbWFwICpyZWdtYXAgPSBwbGwtPmNsa3IucmVnbWFwOworCXUzMiB2YWw7CisJaW50IHJldDsKKworCXJldCA9IHJlZ21hcF9yZWFkKHJlZ21hcCwgUExMX01PREUocGxsKSwgJnZhbCk7CisJaWYgKHJldCkKKwkJcmV0dXJuOworCisJLyogSWYgaW4gRlNNIG1vZGUsIGp1c3QgdW52b3RlIGl0ICovCisJaWYgKHZhbCAmIFBMTF9WT1RFX0ZTTV9FTkEpIHsKKwkJY2xrX2Rpc2FibGVfcmVnbWFwKGh3KTsKKwkJcmV0dXJuOworCX0KKworCS8qIERpc2FibGUgdGhlIGdsb2JhbCBQTEwgb3V0cHV0ICovCisJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21hcCwgUExMX01PREUocGxsKSwgUExMX09VVENUUkwsIDApOworCWlmIChyZXQpCisJCXJldHVybjsKKworCS8qIERpc2FibGUgdGhlIFBMTCBvdXRwdXRzICovCisJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21hcCwgUExMX1VTRVJfQ1RMKHBsbCksCisJCQkJIFRSSU9OX1BMTF9PVVRfTUFTSywgMCk7CisJaWYgKHJldCkKKwkJcmV0dXJuOworCisJLyogUGxhY2UgdGhlIFBMTCBtb2RlIGluIFNUQU5EQlkgKi8KKwlyZWdtYXBfd3JpdGUocmVnbWFwLCBQTExfT1BNT0RFKHBsbCksIFRSSU9OX1BMTF9TVEFOREJZKTsKKwlyZWdtYXBfdXBkYXRlX2JpdHMocmVnbWFwLCBQTExfTU9ERShwbGwpLCBQTExfUkVTRVRfTiwgUExMX1JFU0VUX04pOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZworY2xrX3RyaW9uX3BsbF9yZWNhbGNfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKK3sKKwlzdHJ1Y3QgY2xrX2FscGhhX3BsbCAqcGxsID0gdG9fY2xrX2FscGhhX3BsbChodyk7CisJc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gcGxsLT5jbGtyLnJlZ21hcDsKKwl1MzIgbCwgZnJhYzsKKwl1NjQgcHJhdGUgPSBwYXJlbnRfcmF0ZTsKKworCXJlZ21hcF9yZWFkKHJlZ21hcCwgUExMX0xfVkFMKHBsbCksICZsKTsKKwlyZWdtYXBfcmVhZChyZWdtYXAsIFBMTF9BTFBIQV9WQUwocGxsKSwgJmZyYWMpOworCisJcmV0dXJuIGFscGhhX3BsbF9jYWxjX3JhdGUocHJhdGUsIGwsIGZyYWMsIEFMUEhBX1JFR18xNkJJVF9XSURUSCk7Cit9CisKK3N0YXRpYyBsb25nIGNsa190cmlvbl9wbGxfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAorCQkJCSAgICAgdW5zaWduZWQgbG9uZyAqcHJhdGUpCit7CisJc3RydWN0IGNsa19hbHBoYV9wbGwgKnBsbCA9IHRvX2Nsa19hbHBoYV9wbGwoaHcpOworCXVuc2lnbmVkIGxvbmcgbWluX2ZyZXEsIG1heF9mcmVxOworCXUzMiBsOworCXU2NCBhOworCisJcmF0ZSA9IGFscGhhX3BsbF9yb3VuZF9yYXRlKHJhdGUsICpwcmF0ZSwKKwkJCQkgICAgJmwsICZhLCBBTFBIQV9SRUdfMTZCSVRfV0lEVEgpOworCWlmICghcGxsLT52Y29fdGFibGUgfHwgYWxwaGFfcGxsX2ZpbmRfdmNvKHBsbCwgcmF0ZSkpCisJCXJldHVybiByYXRlOworCisJbWluX2ZyZXEgPSBwbGwtPnZjb190YWJsZVswXS5taW5fZnJlcTsKKwltYXhfZnJlcSA9IHBsbC0+dmNvX3RhYmxlW3BsbC0+bnVtX3ZjbyAtIDFdLm1heF9mcmVxOworCisJcmV0dXJuIGNsYW1wKHJhdGUsIG1pbl9mcmVxLCBtYXhfZnJlcSk7Cit9CisKIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGNsa19hbHBoYV9wbGxfb3BzID0gewogCS5lbmFibGUgPSBjbGtfYWxwaGFfcGxsX2VuYWJsZSwKIAkuZGlzYWJsZSA9IGNsa19hbHBoYV9wbGxfZGlzYWJsZSwKQEAgLTc2MCw2ICs5MDgsMTUgQEAgY29uc3Qgc3RydWN0IGNsa19vcHMgY2xrX2FscGhhX3BsbF9od2ZzbV9vcHMgPSB7CiB9OwogRVhQT1JUX1NZTUJPTF9HUEwoY2xrX2FscGhhX3BsbF9od2ZzbV9vcHMpOwogCitjb25zdCBzdHJ1Y3QgY2xrX29wcyBjbGtfdHJpb25fZml4ZWRfcGxsX29wcyA9IHsKKwkuZW5hYmxlID0gY2xrX3RyaW9uX3BsbF9lbmFibGUsCisJLmRpc2FibGUgPSBjbGtfdHJpb25fcGxsX2Rpc2FibGUsCisJLmlzX2VuYWJsZWQgPSBjbGtfdHJpb25fcGxsX2lzX2VuYWJsZWQsCisJLnJlY2FsY19yYXRlID0gY2xrX3RyaW9uX3BsbF9yZWNhbGNfcmF0ZSwKKwkucm91bmRfcmF0ZSA9IGNsa190cmlvbl9wbGxfcm91bmRfcmF0ZSwKK307CitFWFBPUlRfU1lNQk9MX0dQTChjbGtfdHJpb25fZml4ZWRfcGxsX29wcyk7CisKIHN0YXRpYyB1bnNpZ25lZCBsb25nCiBjbGtfYWxwaGFfcGxsX3Bvc3RkaXZfcmVjYWxjX3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpCiB7CkBAIC04MzIsNyArOTg5LDcgQEAgc3RhdGljIGludCBjbGtfYWxwaGFfcGxsX3Bvc3RkaXZfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAlpbnQgZGl2OwogCiAJLyogMTYgLT4gMHhmLCA4IC0+IDB4NywgNCAtPiAweDMsIDIgLT4gMHgxLCAxIC0+IDB4MCAqLwotCWRpdiA9IERJVl9ST1VORF9VUF9VTEwoKHU2NClwYXJlbnRfcmF0ZSwgcmF0ZSkgLSAxOworCWRpdiA9IERJVl9ST1VORF9VUF9VTEwocGFyZW50X3JhdGUsIHJhdGUpIC0gMTsKIAogCXJldHVybiByZWdtYXBfdXBkYXRlX2JpdHMocGxsLT5jbGtyLnJlZ21hcCwgUExMX1VTRVJfQ1RMKHBsbCksCiAJCQkJICBQTExfUE9TVF9ESVZfTUFTSyhwbGwpIDw8IFBMTF9QT1NUX0RJVl9TSElGVCwKQEAgLTEwMzYsMTEgKzExOTMsNiBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfYWxwaGFfcGxsX3Bvc3RkaXZfZmFiaWFfcmVjYWxjX3JhdGUoc3RydWN0IGNsa19odyAqaHcsCiAJdTMyIGksIGRpdiA9IDEsIHZhbDsKIAlpbnQgcmV0OwogCi0JaWYgKCFwbGwtPnBvc3RfZGl2X3RhYmxlKSB7Ci0JCXByX2VycigiTWlzc2luZyB0aGUgcG9zdF9kaXZfdGFibGUgZm9yIHRoZSBQTExcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KIAlyZXQgPSByZWdtYXBfcmVhZChwbGwtPmNsa3IucmVnbWFwLCBQTExfVVNFUl9DVEwocGxsKSwgJnZhbCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTEwNTgsMTYgKzEyMTAsNzEgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX2FscGhhX3BsbF9wb3N0ZGl2X2ZhYmlhX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAogCXJldHVybiAocGFyZW50X3JhdGUgLyBkaXYpOwogfQogCitzdGF0aWMgdW5zaWduZWQgbG9uZworY2xrX3RyaW9uX3BsbF9wb3N0ZGl2X3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQoreworCXN0cnVjdCBjbGtfYWxwaGFfcGxsX3Bvc3RkaXYgKnBsbCA9IHRvX2Nsa19hbHBoYV9wbGxfcG9zdGRpdihodyk7CisJc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gcGxsLT5jbGtyLnJlZ21hcDsKKwl1MzIgaSwgZGl2ID0gMSwgdmFsOworCisJcmVnbWFwX3JlYWQocmVnbWFwLCBQTExfVVNFUl9DVEwocGxsKSwgJnZhbCk7CisKKwl2YWwgPj49IHBsbC0+cG9zdF9kaXZfc2hpZnQ7CisJdmFsICY9IFBMTF9QT1NUX0RJVl9NQVNLKHBsbCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgcGxsLT5udW1fcG9zdF9kaXY7IGkrKykgeworCQlpZiAocGxsLT5wb3N0X2Rpdl90YWJsZVtpXS52YWwgPT0gdmFsKSB7CisJCQlkaXYgPSBwbGwtPnBvc3RfZGl2X3RhYmxlW2ldLmRpdjsKKwkJCWJyZWFrOworCQl9CisJfQorCisJcmV0dXJuIChwYXJlbnRfcmF0ZSAvIGRpdik7Cit9CisKK3N0YXRpYyBsb25nCitjbGtfdHJpb25fcGxsX3Bvc3RkaXZfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAorCQkJCSB1bnNpZ25lZCBsb25nICpwcmF0ZSkKK3sKKwlzdHJ1Y3QgY2xrX2FscGhhX3BsbF9wb3N0ZGl2ICpwbGwgPSB0b19jbGtfYWxwaGFfcGxsX3Bvc3RkaXYoaHcpOworCisJcmV0dXJuIGRpdmlkZXJfcm91bmRfcmF0ZShodywgcmF0ZSwgcHJhdGUsIHBsbC0+cG9zdF9kaXZfdGFibGUsCisJCQkJICBwbGwtPndpZHRoLCBDTEtfRElWSURFUl9ST1VORF9DTE9TRVNUKTsKK307CisKK3N0YXRpYyBpbnQKK2Nsa190cmlvbl9wbGxfcG9zdGRpdl9zZXRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAorCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpCit7CisJc3RydWN0IGNsa19hbHBoYV9wbGxfcG9zdGRpdiAqcGxsID0gdG9fY2xrX2FscGhhX3BsbF9wb3N0ZGl2KGh3KTsKKwlzdHJ1Y3QgcmVnbWFwICpyZWdtYXAgPSBwbGwtPmNsa3IucmVnbWFwOworCWludCBpLCB2YWwgPSAwLCBkaXY7CisKKwlkaXYgPSBESVZfUk9VTkRfVVBfVUxMKHBhcmVudF9yYXRlLCByYXRlKTsKKwlmb3IgKGkgPSAwOyBpIDwgcGxsLT5udW1fcG9zdF9kaXY7IGkrKykgeworCQlpZiAocGxsLT5wb3N0X2Rpdl90YWJsZVtpXS5kaXYgPT0gZGl2KSB7CisJCQl2YWwgPSBwbGwtPnBvc3RfZGl2X3RhYmxlW2ldLnZhbDsKKwkJCWJyZWFrOworCQl9CisJfQorCisJcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIFBMTF9VU0VSX0NUTChwbGwpLAorCQkJCSAgUExMX1BPU1RfRElWX01BU0socGxsKSA8PCBQTExfUE9TVF9ESVZfU0hJRlQsCisJCQkJICB2YWwgPDwgUExMX1BPU1RfRElWX1NISUZUKTsKK30KKworY29uc3Qgc3RydWN0IGNsa19vcHMgY2xrX3RyaW9uX3BsbF9wb3N0ZGl2X29wcyA9IHsKKwkucmVjYWxjX3JhdGUgPSBjbGtfdHJpb25fcGxsX3Bvc3RkaXZfcmVjYWxjX3JhdGUsCisJLnJvdW5kX3JhdGUgPSBjbGtfdHJpb25fcGxsX3Bvc3RkaXZfcm91bmRfcmF0ZSwKKwkuc2V0X3JhdGUgPSBjbGtfdHJpb25fcGxsX3Bvc3RkaXZfc2V0X3JhdGUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoY2xrX3RyaW9uX3BsbF9wb3N0ZGl2X29wcyk7CisKIHN0YXRpYyBsb25nIGNsa19hbHBoYV9wbGxfcG9zdGRpdl9mYWJpYV9yb3VuZF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAogCQkJCXVuc2lnbmVkIGxvbmcgcmF0ZSwgdW5zaWduZWQgbG9uZyAqcHJhdGUpCiB7CiAJc3RydWN0IGNsa19hbHBoYV9wbGxfcG9zdGRpdiAqcGxsID0gdG9fY2xrX2FscGhhX3BsbF9wb3N0ZGl2KGh3KTsKIAotCWlmICghcGxsLT5wb3N0X2Rpdl90YWJsZSkgewotCQlwcl9lcnIoIk1pc3NpbmcgdGhlIHBvc3RfZGl2X3RhYmxlIGZvciB0aGUgUExMXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCiAJcmV0dXJuIGRpdmlkZXJfcm91bmRfcmF0ZShodywgcmF0ZSwgcHJhdGUsIHBsbC0+cG9zdF9kaXZfdGFibGUsCiAJCQkJcGxsLT53aWR0aCwgQ0xLX0RJVklERVJfUk9VTkRfQ0xPU0VTVCk7CiB9CkBAIC0xMDg5LDEyICsxMjk2LDcgQEAgc3RhdGljIGludCBjbGtfYWxwaGFfcGxsX3Bvc3RkaXZfZmFiaWFfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsCiAJaWYgKHZhbCAmIFBMTF9WT1RFX0ZTTV9FTkEpCiAJCXJldHVybiAwOwogCi0JaWYgKCFwbGwtPnBvc3RfZGl2X3RhYmxlKSB7Ci0JCXByX2VycigiTWlzc2luZyB0aGUgcG9zdF9kaXZfdGFibGUgZm9yIHRoZSBQTExcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkaXYgPSBESVZfUk9VTkRfVVBfVUxMKCh1NjQpcGFyZW50X3JhdGUsIHJhdGUpOworCWRpdiA9IERJVl9ST1VORF9VUF9VTEwocGFyZW50X3JhdGUsIHJhdGUpOwogCWZvciAoaSA9IDA7IGkgPCBwbGwtPm51bV9wb3N0X2RpdjsgaSsrKSB7CiAJCWlmIChwbGwtPnBvc3RfZGl2X3RhYmxlW2ldLmRpdiA9PSBkaXYpIHsKIAkJCXZhbCA9IHBsbC0+cG9zdF9kaXZfdGFibGVbaV0udmFsOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcWNvbS9jbGstYWxwaGEtcGxsLmggYi9kcml2ZXJzL2Nsay9xY29tL2Nsay1hbHBoYS1wbGwuaAppbmRleCA2Njc1NWYwLi4xNWYyN2Y0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9xY29tL2Nsay1hbHBoYS1wbGwuaAorKysgYi9kcml2ZXJzL2Nsay9xY29tL2Nsay1hbHBoYS1wbGwuaApAQCAtMTMsMjIgKzEzLDI3IEBAIGVudW0gewogCUNMS19BTFBIQV9QTExfVFlQRV9IVUFZUkEsCiAJQ0xLX0FMUEhBX1BMTF9UWVBFX0JSQU1NTywKIAlDTEtfQUxQSEFfUExMX1RZUEVfRkFCSUEsCisJQ0xLX0FMUEhBX1BMTF9UWVBFX1RSSU9OLAogCUNMS19BTFBIQV9QTExfVFlQRV9NQVgsCiB9OwogCiBlbnVtIHsKIAlQTExfT0ZGX0xfVkFMLAorCVBMTF9PRkZfQ0FMX0xfVkFMLAogCVBMTF9PRkZfQUxQSEFfVkFMLAogCVBMTF9PRkZfQUxQSEFfVkFMX1UsCiAJUExMX09GRl9VU0VSX0NUTCwKIAlQTExfT0ZGX1VTRVJfQ1RMX1UsCisJUExMX09GRl9VU0VSX0NUTF9VMSwKIAlQTExfT0ZGX0NPTkZJR19DVEwsCiAJUExMX09GRl9DT05GSUdfQ1RMX1UsCisJUExMX09GRl9DT05GSUdfQ1RMX1UxLAogCVBMTF9PRkZfVEVTVF9DVEwsCiAJUExMX09GRl9URVNUX0NUTF9VLAogCVBMTF9PRkZfU1RBVFVTLAogCVBMTF9PRkZfT1BNT0RFLAogCVBMTF9PRkZfRlJBQywKKwlQTExfT0ZGX0NBTF9WQUwsCiAJUExMX09GRl9NQVhfUkVHUwogfTsKIApAQCAtMTE3LDUgKzEyMiw3IEBAIHZvaWQgY2xrX2FscGhhX3BsbF9jb25maWd1cmUoc3RydWN0IGNsa19hbHBoYV9wbGwgKnBsbCwgc3RydWN0IHJlZ21hcCAqcmVnbWFwLAogCQkJICAgICBjb25zdCBzdHJ1Y3QgYWxwaGFfcGxsX2NvbmZpZyAqY29uZmlnKTsKIHZvaWQgY2xrX2ZhYmlhX3BsbF9jb25maWd1cmUoc3RydWN0IGNsa19hbHBoYV9wbGwgKnBsbCwgc3RydWN0IHJlZ21hcCAqcmVnbWFwLAogCQkJCWNvbnN0IHN0cnVjdCBhbHBoYV9wbGxfY29uZmlnICpjb25maWcpOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGNsa190cmlvbl9maXhlZF9wbGxfb3BzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGNsa190cmlvbl9wbGxfcG9zdGRpdl9vcHM7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcWNvbS9jbGstcmNnMi5jIGIvZHJpdmVycy9jbGsvcWNvbS9jbGstcmNnMi5jCmluZGV4IDhjMDJiZmYuLmI5OGI4MWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vY2xrLXJjZzIuYworKysgYi9kcml2ZXJzL2Nsay9xY29tL2Nsay1yY2cyLmMKQEAgLTExOSw3ICsxMTksNyBAQCBzdGF0aWMgaW50IHVwZGF0ZV9jb25maWcoc3RydWN0IGNsa19yY2cyICpyY2cpCiAJfQogCiAJV0FSTigxLCAiJXM6IHJjZyBkaWRuJ3QgdXBkYXRlIGl0cyBjb25maWd1cmF0aW9uLiIsIG5hbWUpOwotCXJldHVybiAwOworCXJldHVybiAtRUJVU1k7CiB9CiAKIHN0YXRpYyBpbnQgY2xrX3JjZzJfc2V0X3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpodywgdTggaW5kZXgpCkBAIC0xMTA1LDggKzExMDUsNiBAQCBzdGF0aWMgaW50IGNsa19yY2cyX2VuYWJsZV9kZnMoY29uc3Qgc3RydWN0IGNsa19yY2dfZGZzX2RhdGEgKmRhdGEsCiAKIAlyY2ctPmZyZXFfdGJsID0gTlVMTDsKIAotCXByX2RlYnVnKCJERlMgcmVnaXN0ZXJlZCBmb3IgY2xrICVzXG4iLCBpbml0LT5uYW1lKTsKLQogCXJldHVybiAwOwogfQogCkBAIC0xMTE3LDEyICsxMTE1LDggQEAgaW50IHFjb21fY2NfcmVnaXN0ZXJfcmNnX2RmcyhzdHJ1Y3QgcmVnbWFwICpyZWdtYXAsCiAKIAlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKIAkJcmV0ID0gY2xrX3JjZzJfZW5hYmxlX2RmcygmcmNnc1tpXSwgcmVnbWFwKTsKLQkJaWYgKHJldCkgewotCQkJY29uc3QgY2hhciAqbmFtZSA9IHJjZ3NbaV0uaW5pdC0+bmFtZTsKLQotCQkJcHJfZXJyKCJERlMgcmVnaXN0ZXIgZmFpbGVkIGZvciBjbGsgJXNcbiIsIG5hbWUpOworCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKLQkJfQogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcWNvbS9jbGstcnBtaC5jIGIvZHJpdmVycy9jbGsvcWNvbS9jbGstcnBtaC5jCmluZGV4IGEzMmJmYWUuLjk2YTM2ZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vY2xrLXJwbWguYworKysgYi9kcml2ZXJzL2Nsay9xY29tL2Nsay1ycG1oLmMKQEAgLTg1LDcgKzg1LDEwIEBAIHN0YXRpYyBERUZJTkVfTVVURVgocnBtaF9jbGtfbG9jayk7CiAJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CQkJXAogCQkJLm9wcyA9ICZjbGtfcnBtaF9vcHMsCQkJCVwKIAkJCS5uYW1lID0gI19uYW1lLAkJCQkJXAotCQkJLnBhcmVudF9uYW1lcyA9IChjb25zdCBjaGFyICpbXSl7ICJ4b19ib2FyZCIgfSwJXAorCQkJLnBhcmVudF9kYXRhID0gICYoY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSl7IFwKKwkJCQkJLmZ3X25hbWUgPSAieG8iLAkJXAorCQkJCQkubmFtZSA9ICJ4b19ib2FyZCIsCQlcCisJCQl9LAkJCQkJCVwKIAkJCS5udW1fcGFyZW50cyA9IDEsCQkJCVwKIAkJfSwJCQkJCQkJXAogCX07CQkJCQkJCQlcCkBAIC0xMDAsNyArMTAzLDEwIEBAIHN0YXRpYyBERUZJTkVfTVVURVgocnBtaF9jbGtfbG9jayk7CiAJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CQkJXAogCQkJLm9wcyA9ICZjbGtfcnBtaF9vcHMsCQkJCVwKIAkJCS5uYW1lID0gI19uYW1lX2FjdGl2ZSwJCQkJXAotCQkJLnBhcmVudF9uYW1lcyA9IChjb25zdCBjaGFyICpbXSl7ICJ4b19ib2FyZCIgfSwJXAorCQkJLnBhcmVudF9kYXRhID0gICYoY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSl7IFwKKwkJCQkJLmZ3X25hbWUgPSAieG8iLAkJXAorCQkJCQkubmFtZSA9ICJ4b19ib2FyZCIsCQlcCisJCQl9LAkJCQkJCVwKIAkJCS5udW1fcGFyZW50cyA9IDEsCQkJCVwKIAkJfSwJCQkJCQkJXAogCX0KQEAgLTM1OCw2ICszNjQsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcnBtaF9kZXNjIGNsa19ycG1oX3NkbTg0NSA9IHsKIAkubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKHNkbTg0NV9ycG1oX2Nsb2NrcyksCiB9OwogCitERUZJTkVfQ0xLX1JQTUhfQVJDKHNtODE1MCwgYmlfdGN4bywgYmlfdGN4b19hbywgInhvLmx2bCIsIDB4MywgMik7CitERUZJTkVfQ0xLX1JQTUhfVlJNKHNtODE1MCwgbG5fYmJfY2xrMiwgbG5fYmJfY2xrMl9hbywgImxuYmNsa2EyIiwgMik7CitERUZJTkVfQ0xLX1JQTUhfVlJNKHNtODE1MCwgbG5fYmJfY2xrMywgbG5fYmJfY2xrM19hbywgImxuYmNsa2EzIiwgMik7CitERUZJTkVfQ0xLX1JQTUhfVlJNKHNtODE1MCwgcmZfY2xrMSwgcmZfY2xrMV9hbywgInJmY2xrYTEiLCAxKTsKK0RFRklORV9DTEtfUlBNSF9WUk0oc204MTUwLCByZl9jbGsyLCByZl9jbGsyX2FvLCAicmZjbGthMiIsIDEpOworREVGSU5FX0NMS19SUE1IX1ZSTShzbTgxNTAsIHJmX2NsazMsIHJmX2NsazNfYW8sICJyZmNsa2EzIiwgMSk7CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2h3ICpzbTgxNTBfcnBtaF9jbG9ja3NbXSA9IHsKKwlbUlBNSF9DWE9fQ0xLXQkJPSAmc204MTUwX2JpX3RjeG8uaHcsCisJW1JQTUhfQ1hPX0NMS19BXQk9ICZzbTgxNTBfYmlfdGN4b19hby5odywKKwlbUlBNSF9MTl9CQl9DTEsyXQk9ICZzbTgxNTBfbG5fYmJfY2xrMi5odywKKwlbUlBNSF9MTl9CQl9DTEsyX0FdCT0gJnNtODE1MF9sbl9iYl9jbGsyX2FvLmh3LAorCVtSUE1IX0xOX0JCX0NMSzNdCT0gJnNtODE1MF9sbl9iYl9jbGszLmh3LAorCVtSUE1IX0xOX0JCX0NMSzNfQV0JPSAmc204MTUwX2xuX2JiX2NsazNfYW8uaHcsCisJW1JQTUhfUkZfQ0xLMV0JCT0gJnNtODE1MF9yZl9jbGsxLmh3LAorCVtSUE1IX1JGX0NMSzFfQV0JPSAmc204MTUwX3JmX2NsazFfYW8uaHcsCisJW1JQTUhfUkZfQ0xLMl0JCT0gJnNtODE1MF9yZl9jbGsyLmh3LAorCVtSUE1IX1JGX0NMSzJfQV0JPSAmc204MTUwX3JmX2NsazJfYW8uaHcsCisJW1JQTUhfUkZfQ0xLM10JCT0gJnNtODE1MF9yZl9jbGszLmh3LAorCVtSUE1IX1JGX0NMSzNfQV0JPSAmc204MTUwX3JmX2NsazNfYW8uaHcsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19ycG1oX2Rlc2MgY2xrX3JwbWhfc204MTUwID0geworCS5jbGtzID0gc204MTUwX3JwbWhfY2xvY2tzLAorCS5udW1fY2xrcyA9IEFSUkFZX1NJWkUoc204MTUwX3JwbWhfY2xvY2tzKSwKK307CisKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3ICpvZl9jbGtfcnBtaF9od19nZXQoc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3BlYywKIAkJCQkJIHZvaWQgKmRhdGEpCiB7CkBAIC0zODYsNiArNDE5LDcgQEAgc3RhdGljIGludCBjbGtfcnBtaF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWh3X2Nsa3MgPSBkZXNjLT5jbGtzOwogCiAJZm9yIChpID0gMDsgaSA8IGRlc2MtPm51bV9jbGtzOyBpKyspIHsKKwkJY29uc3QgY2hhciAqbmFtZSA9IGh3X2Nsa3NbaV0tPmluaXQtPm5hbWU7CiAJCXUzMiByZXNfYWRkcjsKIAkJc2l6ZV90IGF1eF9kYXRhX2xlbjsKIAkJY29uc3Qgc3RydWN0IGJjbV9kYiAqZGF0YTsKQEAgLTQxNiw4ICs0NTAsNyBAQCBzdGF0aWMgaW50IGNsa19ycG1oX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkJcmV0ID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIoJnBkZXYtPmRldiwgaHdfY2xrc1tpXSk7CiAJCWlmIChyZXQpIHsKLQkJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZWdpc3RlciAlc1xuIiwKLQkJCQlod19jbGtzW2ldLT5pbml0LT5uYW1lKTsKKwkJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZWdpc3RlciAlc1xuIiwgbmFtZSk7CiAJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQpAQCAtNDM3LDYgKzQ3MCw3IEBAIHN0YXRpYyBpbnQgY2xrX3JwbWhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgY2xrX3JwbWhfbWF0Y2hfdGFibGVbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gInFjb20sc2RtODQ1LXJwbWgtY2xrIiwgLmRhdGEgPSAmY2xrX3JwbWhfc2RtODQ1fSwKKwl7IC5jb21wYXRpYmxlID0gInFjb20sc204MTUwLXJwbWgtY2xrIiwgLmRhdGEgPSAmY2xrX3JwbWhfc204MTUwfSwKIAl7IH0KIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBjbGtfcnBtaF9tYXRjaF90YWJsZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9xY29tL2NvbW1vbi5jIGIvZHJpdmVycy9jbGsvcWNvbS9jb21tb24uYwppbmRleCBhNmIyZjg2MS4uMjhkZGM3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcWNvbS9jb21tb24uYworKysgYi9kcml2ZXJzL2Nsay9xY29tL2NvbW1vbi5jCkBAIC0zMDYsNCArMzA2LDI0IEBAIGludCBxY29tX2NjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIGNvbnN0IHN0cnVjdCBxY29tX2NjX2Rlc2MgKmRlc2MpCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChxY29tX2NjX3Byb2JlKTsKIAoraW50IHFjb21fY2NfcHJvYmVfYnlfaW5kZXgoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgaW50IGluZGV4LAorCQkJICAgY29uc3Qgc3RydWN0IHFjb21fY2NfZGVzYyAqZGVzYykKK3sKKwlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7CisJc3RydWN0IHJlc291cmNlICpyZXM7CisJdm9pZCBfX2lvbWVtICpiYXNlOworCisJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCBpbmRleCk7CisJYmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOworCWlmIChJU19FUlIoYmFzZSkpCisJCXJldHVybiAtRU5PTUVNOworCisJcmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9tbWlvKCZwZGV2LT5kZXYsIGJhc2UsIGRlc2MtPmNvbmZpZyk7CisJaWYgKElTX0VSUihyZWdtYXApKQorCQlyZXR1cm4gUFRSX0VSUihyZWdtYXApOworCisJcmV0dXJuIHFjb21fY2NfcmVhbGx5X3Byb2JlKHBkZXYsIGRlc2MsIHJlZ21hcCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChxY29tX2NjX3Byb2JlX2J5X2luZGV4KTsKKwogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcWNvbS9jb21tb24uaCBiL2RyaXZlcnMvY2xrL3Fjb20vY29tbW9uLmgKaW5kZXggMWUyYThiZC4uYmIzOWE3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcWNvbS9jb21tb24uaAorKysgYi9kcml2ZXJzL2Nsay9xY29tL2NvbW1vbi5oCkBAIC02MSw1ICs2MSw3IEBAIGV4dGVybiBpbnQgcWNvbV9jY19yZWFsbHlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQlzdHJ1Y3QgcmVnbWFwICpyZWdtYXApOwogZXh0ZXJuIGludCBxY29tX2NjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCQkgY29uc3Qgc3RydWN0IHFjb21fY2NfZGVzYyAqZGVzYyk7CitleHRlcm4gaW50IHFjb21fY2NfcHJvYmVfYnlfaW5kZXgoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgaW50IGluZGV4LAorCQkJCSAgY29uc3Qgc3RydWN0IHFjb21fY2NfZGVzYyAqZGVzYyk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcWNvbS9nY2MtaXBxODA3NC5jIGIvZHJpdmVycy9jbGsvcWNvbS9nY2MtaXBxODA3NC5jCmluZGV4IDM5YWRlNTguLmUwMWY1ZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vZ2NjLWlwcTgwNzQuYworKysgYi9kcml2ZXJzL2Nsay9xY29tL2djYy1pcHE4MDc0LmMKQEAgLTExMDgsNyArMTEwOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgc2RjYzJfYXBwc19jbGtfc3JjID0gewogCQkubmFtZSA9ICJzZGNjMl9hcHBzX2Nsa19zcmMiLAogCQkucGFyZW50X25hbWVzID0gZ2NjX3hvX2dwbGwwX2dwbGwyX2dwbGwwX291dF9tYWluX2RpdjIsCiAJCS5udW1fcGFyZW50cyA9IDQsCi0JCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCQkub3BzID0gJmNsa19yY2cyX2Zsb29yX29wcywKIAl9LAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcWNvbS9nY2MtbXNtODk5OC5jIGIvZHJpdmVycy9jbGsvcWNvbS9nY2MtbXNtODk5OC5jCmluZGV4IDAzMzY4ODIuLjA5MWFjZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vZ2NjLW1zbTg5OTguYworKysgYi9kcml2ZXJzL2Nsay9xY29tL2djYy1tc204OTk4LmMKQEAgLTEwNDIsNyArMTA0Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgc2RjYzJfYXBwc19jbGtfc3JjID0gewogCQkubmFtZSA9ICJzZGNjMl9hcHBzX2Nsa19zcmMiLAogCQkucGFyZW50X25hbWVzID0gZ2NjX3BhcmVudF9uYW1lc180LAogCQkubnVtX3BhcmVudHMgPSA0LAotCQkub3BzID0gJmNsa19yY2cyX29wcywKKwkJLm9wcyA9ICZjbGtfcmNnMl9mbG9vcl9vcHMsCiAJfSwKIH07CiAKQEAgLTEwNjYsNyArMTA2Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgc2RjYzRfYXBwc19jbGtfc3JjID0gewogCQkubmFtZSA9ICJzZGNjNF9hcHBzX2Nsa19zcmMiLAogCQkucGFyZW50X25hbWVzID0gZ2NjX3BhcmVudF9uYW1lc18xLAogCQkubnVtX3BhcmVudHMgPSAzLAotCQkub3BzID0gJmNsa19yY2cyX29wcywKKwkJLm9wcyA9ICZjbGtfcmNnMl9mbG9vcl9vcHMsCiAJfSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Fjb20vZ2NjLXFjczQwNC5jIGIvZHJpdmVycy9jbGsvcWNvbS9nY2MtcWNzNDA0LmMKaW5kZXggMjljZjQ2NC4uYmQzMjIxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcWNvbS9nY2MtcWNzNDA0LmMKKysrIGIvZHJpdmVycy9jbGsvcWNvbS9nY2MtcWNzNDA0LmMKQEAgLTEwNTcsNyArMTA1Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgc2RjYzFfYXBwc19jbGtfc3JjID0gewogCQkubmFtZSA9ICJzZGNjMV9hcHBzX2Nsa19zcmMiLAogCQkucGFyZW50X25hbWVzID0gZ2NjX3BhcmVudF9uYW1lc18xMywKIAkJLm51bV9wYXJlbnRzID0gNSwKLQkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJCS5vcHMgPSAmY2xrX3JjZzJfZmxvb3Jfb3BzLAogCX0sCiB9OwogCkBAIC0xMTAzLDcgKzExMDMsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19yY2cyIHNkY2MyX2FwcHNfY2xrX3NyYyA9IHsKIAkJLm5hbWUgPSAic2RjYzJfYXBwc19jbGtfc3JjIiwKIAkJLnBhcmVudF9uYW1lcyA9IGdjY19wYXJlbnRfbmFtZXNfMTQsCiAJCS5udW1fcGFyZW50cyA9IDQsCi0JCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCQkub3BzID0gJmNsa19yY2cyX2Zsb29yX29wcywKIAl9LAogfTsKIApAQCAtMjYwNCw2ICsyNjA0LDMyIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdXNiX2hzX3N5c3RlbV9jbGsgPSB7CiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2Nfd2RzcF9xNnNzX2FoYnNfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MWUwMDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDFlMDA0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2Nfd2RzcF9xNnNzX2FoYnNfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3dkc3BfcTZzc19heGltX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDFlMDA4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHgxZTAwOCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3dkc3BfcTZzc19heGltX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKwogc3RhdGljIHN0cnVjdCBjbGtfaHcgKmdjY19xY3M0MDRfaHdzW10gPSB7CiAJJmN4by5odywKIH07CkBAIC0yNzQ5LDYgKzI3NzUsOSBAQCBzdGF0aWMgc3RydWN0IGNsa19yZWdtYXAgKmdjY19xY3M0MDRfY2xvY2tzW10gPSB7CiAJW0dDQ19RRFNTX0RBUF9DTEtdID0gJmdjY19xZHNzX2RhcF9jbGsuY2xrciwKIAlbR0NDX0RDQ19DTEtdID0gJmdjY19kY2NfY2xrLmNsa3IsCiAJW0dDQ19EQ0NfWE9fQ0xLXSA9ICZnY2NfZGNjX3hvX2Nsay5jbGtyLAorCVtHQ0NfV0NTU19RNl9BSEJfQ0xLXSA9ICZnY2Nfd2RzcF9xNnNzX2FoYnNfY2xrLmNsa3IsCisJW0dDQ19XQ1NTX1E2X0FYSU1fQ0xLXSA9ICAmZ2NjX3dkc3BfcTZzc19heGltX2Nsay5jbGtyLAorCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHFjb21fcmVzZXRfbWFwIGdjY19xY3M0MDRfcmVzZXRzW10gPSB7CkBAIC0yNzc0LDYgKzI4MDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHFjb21fcmVzZXRfbWFwIGdjY19xY3M0MDRfcmVzZXRzW10gPSB7CiAJW0dDQ19QQ0lFXzBfU0xFRVBfQVJFU10gPSB7IDB4M2UwNDAsIDEgfSwKIAlbR0NDX1BDSUVfMF9QSVBFX0FSRVNdID0geyAweDNlMDQwLCAwIH0sCiAJW0dDQ19FTUFDX0JDUl0gPSB7IDB4NGUwMDAgfSwKKwlbR0NDX1dEU1BfUkVTVEFSVF0gPSB7MHgxOTAwMH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgZ2NjX3FjczQwNF9yZWdtYXBfY29uZmlnID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcWNvbS9nY2Mtc2RtNjYwLmMgYi9kcml2ZXJzL2Nsay9xY29tL2djYy1zZG02NjAuYwppbmRleCA4ODI3ZGIyLi5iZjU3MzA4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcWNvbS9nY2Mtc2RtNjYwLmMKKysrIGIvZHJpdmVycy9jbGsvcWNvbS9nY2Mtc2RtNjYwLmMKQEAgLTc4Nyw3ICs3ODcsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19yY2cyIHNkY2MyX2FwcHNfY2xrX3NyYyA9IHsKIAkJLm5hbWUgPSAic2RjYzJfYXBwc19jbGtfc3JjIiwKIAkJLnBhcmVudF9uYW1lcyA9IGdjY19wYXJlbnRfbmFtZXNfeG9fZ3BsbDBfZ3BsbDBfZWFybHlfZGl2X2dwbGw0LAogCQkubnVtX3BhcmVudHMgPSA0LAotCQkub3BzID0gJmNsa19yY2cyX29wcywKKwkJLm9wcyA9ICZjbGtfcmNnMl9mbG9vcl9vcHMsCiAJfSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Fjb20vZ2NjLXNkbTg0NS5jIGIvZHJpdmVycy9jbGsvcWNvbS9nY2Mtc2RtODQ1LmMKaW5kZXggNzEzMWRjZi4uOTViZTEyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcWNvbS9nY2Mtc2RtODQ1LmMKKysrIGIvZHJpdmVycy9jbGsvcWNvbS9nY2Mtc2RtODQ1LmMKQEAgLTY4NSw3ICs2ODUsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19zZGNjMl9hcHBzX2Nsa19zcmMgPSB7CiAJCS5uYW1lID0gImdjY19zZGNjMl9hcHBzX2Nsa19zcmMiLAogCQkucGFyZW50X25hbWVzID0gZ2NjX3BhcmVudF9uYW1lc18xMCwKIAkJLm51bV9wYXJlbnRzID0gNSwKLQkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJCS5vcHMgPSAmY2xrX3JjZzJfZmxvb3Jfb3BzLAogCX0sCiB9OwogCkBAIC03MDksNyArNzA5LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2Nfc2RjYzRfYXBwc19jbGtfc3JjID0gewogCQkubmFtZSA9ICJnY2Nfc2RjYzRfYXBwc19jbGtfc3JjIiwKIAkJLnBhcmVudF9uYW1lcyA9IGdjY19wYXJlbnRfbmFtZXNfMCwKIAkJLm51bV9wYXJlbnRzID0gNCwKLQkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJCS5vcHMgPSAmY2xrX3JjZzJfZmxvb3Jfb3BzLAogCX0sCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9xY29tL2djYy1zbTgxNTAuYyBiL2RyaXZlcnMvY2xrL3Fjb20vZ2NjLXNtODE1MC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwODc3MjEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2Nsay9xY29tL2djYy1zbTgxNTAuYwpAQCAtMCwwICsxLDM1ODggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvLyBDb3B5cmlnaHQgKGMpIDIwMTctMjAxOSwgVGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L3Jlc2V0LWNvbnRyb2xsZXIuaD4KKworI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL3Fjb20sZ2NjLXNtODE1MC5oPgorCisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAiY2xrLWFscGhhLXBsbC5oIgorI2luY2x1ZGUgImNsay1icmFuY2guaCIKKyNpbmNsdWRlICJjbGstcGxsLmgiCisjaW5jbHVkZSAiY2xrLXJjZy5oIgorI2luY2x1ZGUgImNsay1yZWdtYXAuaCIKKyNpbmNsdWRlICJyZXNldC5oIgorCitlbnVtIHsKKwlQX0JJX1RDWE8sCisJUF9BVURfUkVGX0NMSywKKwlQX0NPUkVfQklfUExMX1RFU1RfU0UsCisJUF9HUExMMF9PVVRfRVZFTiwKKwlQX0dQTEwwX09VVF9NQUlOLAorCVBfR1BMTDdfT1VUX01BSU4sCisJUF9HUExMOV9PVVRfTUFJTiwKKwlQX1NMRUVQX0NMSywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGxsX3ZjbyB0cmlvbl92Y29bXSA9IHsKKwl7IDI0OTYwMDAwMCwgMjAwMDAwMDAwMCwgMCB9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYWxwaGFfcGxsIGdwbGwwID0geworCS5vZmZzZXQgPSAweDAsCisJLnZjb190YWJsZSA9IHRyaW9uX3ZjbywKKwkubnVtX3ZjbyA9IEFSUkFZX1NJWkUodHJpb25fdmNvKSwKKwkucmVncyA9IGNsa19hbHBoYV9wbGxfcmVnc1tDTEtfQUxQSEFfUExMX1RZUEVfVFJJT05dLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMDAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdwbGwwIiwKKwkJCS5wYXJlbnRfZGF0YSA9ICYoY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSl7CisJCQkJLmZ3X25hbWUgPSAiYmlfdGN4byIsCisJCQkJLm5hbWUgPSAiYmlfdGN4byIsCisJCQl9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5vcHMgPSAmY2xrX3RyaW9uX2ZpeGVkX3BsbF9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2Rpdl90YWJsZSBwb3N0X2Rpdl90YWJsZV90cmlvbl9ldmVuW10gPSB7CisJeyAweDAsIDEgfSwKKwl7IDB4MSwgMiB9LAorCXsgMHgzLCA0IH0sCisJeyAweDcsIDggfSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2FscGhhX3BsbF9wb3N0ZGl2IGdwbGwwX291dF9ldmVuID0geworCS5vZmZzZXQgPSAweDAsCisJLnBvc3RfZGl2X3NoaWZ0ID0gOCwKKwkucG9zdF9kaXZfdGFibGUgPSBwb3N0X2Rpdl90YWJsZV90cmlvbl9ldmVuLAorCS5udW1fcG9zdF9kaXYgPSBBUlJBWV9TSVpFKHBvc3RfZGl2X3RhYmxlX3RyaW9uX2V2ZW4pLAorCS5yZWdzID0gY2xrX2FscGhhX3BsbF9yZWdzW0NMS19BTFBIQV9QTExfVFlQRV9UUklPTl0sCisJLndpZHRoID0gNCwKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdwbGwwX291dF9ldmVuIiwKKwkJLnBhcmVudF9kYXRhID0gJihjb25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhKXsKKwkJCS5md19uYW1lID0gImJpX3RjeG8iLAorCQkJLm5hbWUgPSAiYmlfdGN4byIsCisJCX0sCisJCS5udW1fcGFyZW50cyA9IDEsCisJCS5vcHMgPSAmY2xrX3RyaW9uX3BsbF9wb3N0ZGl2X29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYWxwaGFfcGxsIGdwbGw3ID0geworCS5vZmZzZXQgPSAweDFhMDAwLAorCS52Y29fdGFibGUgPSB0cmlvbl92Y28sCisJLm51bV92Y28gPSBBUlJBWV9TSVpFKHRyaW9uX3ZjbyksCisJLnJlZ3MgPSBjbGtfYWxwaGFfcGxsX3JlZ3NbQ0xLX0FMUEhBX1BMTF9UWVBFX1RSSU9OXSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDAwLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoNyksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJncGxsNyIsCisJCQkucGFyZW50X2RhdGEgPSAmKGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEpeworCQkJCS5md19uYW1lID0gImJpX3RjeG8iLAorCQkJCS5uYW1lID0gImJpX3RjeG8iLAorCQkJfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkub3BzID0gJmNsa190cmlvbl9maXhlZF9wbGxfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19hbHBoYV9wbGwgZ3BsbDkgPSB7CisJLm9mZnNldCA9IDB4MWMwMDAsCisJLnZjb190YWJsZSA9IHRyaW9uX3ZjbywKKwkubnVtX3ZjbyA9IEFSUkFZX1NJWkUodHJpb25fdmNvKSwKKwkucmVncyA9IGNsa19hbHBoYV9wbGxfcmVnc1tDTEtfQUxQSEFfUExMX1RZUEVfVFJJT05dLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMDAsCisJCS5lbmFibGVfbWFzayA9IEJJVCg5KSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdwbGw5IiwKKwkJCS5wYXJlbnRfZGF0YSA9ICYoY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSl7CisJCQkJLmZ3X25hbWUgPSAiYmlfdGN4byIsCisJCQkJLm5hbWUgPSAiYmlfdGN4byIsCisJCQl9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5vcHMgPSAmY2xrX3RyaW9uX2ZpeGVkX3BsbF9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGFyZW50X21hcCBnY2NfcGFyZW50X21hcF8wW10gPSB7CisJeyBQX0JJX1RDWE8sIDAgfSwKKwl7IFBfR1BMTDBfT1VUX01BSU4sIDEgfSwKKwl7IFBfR1BMTDBfT1VUX0VWRU4sIDYgfSwKKwl7IFBfQ09SRV9CSV9QTExfVEVTVF9TRSwgNyB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgZ2NjX3BhcmVudHNfMFtdID0geworCXsgLmZ3X25hbWUgPSAiYmlfdGN4byIsIC5uYW1lID0gImJpX3RjeG8iIH0sCisJeyAuaHcgPSAmZ3BsbDAuY2xrci5odyB9LAorCXsgLmh3ID0gJmdwbGwwX291dF9ldmVuLmNsa3IuaHcgfSwKKwl7IC5md19uYW1lID0gImNvcmVfYmlfcGxsX3Rlc3Rfc2UiIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHBhcmVudF9tYXAgZ2NjX3BhcmVudF9tYXBfMVtdID0geworCXsgUF9CSV9UQ1hPLCAwIH0sCisJeyBQX0dQTEwwX09VVF9NQUlOLCAxIH0sCisJeyBQX1NMRUVQX0NMSywgNSB9LAorCXsgUF9HUExMMF9PVVRfRVZFTiwgNiB9LAorCXsgUF9DT1JFX0JJX1BMTF9URVNUX1NFLCA3IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSBnY2NfcGFyZW50c18xW10gPSB7CisJeyAuZndfbmFtZSA9ICJiaV90Y3hvIiwgLm5hbWUgPSAiYmlfdGN4byIgfSwKKwl7IC5odyA9ICZncGxsMC5jbGtyLmh3IH0sCisJeyAuZndfbmFtZSA9ICJzbGVlcF9jbGsiLCAubmFtZSA9ICJzbGVlcF9jbGsiIH0sCisJeyAuaHcgPSAmZ3BsbDBfb3V0X2V2ZW4uY2xrci5odyB9LAorCXsgLmZ3X25hbWUgPSAiY29yZV9iaV9wbGxfdGVzdF9zZSIgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGFyZW50X21hcCBnY2NfcGFyZW50X21hcF8yW10gPSB7CisJeyBQX0JJX1RDWE8sIDAgfSwKKwl7IFBfU0xFRVBfQ0xLLCA1IH0sCisJeyBQX0NPUkVfQklfUExMX1RFU1RfU0UsIDcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIGdjY19wYXJlbnRzXzJbXSA9IHsKKwl7IC5md19uYW1lID0gImJpX3RjeG8iLCAubmFtZSA9ICJiaV90Y3hvIiB9LAorCXsgLmZ3X25hbWUgPSAic2xlZXBfY2xrIiwgLm5hbWUgPSAic2xlZXBfY2xrIiB9LAorCXsgLmZ3X25hbWUgPSAiY29yZV9iaV9wbGxfdGVzdF9zZSIgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGFyZW50X21hcCBnY2NfcGFyZW50X21hcF8zW10gPSB7CisJeyBQX0JJX1RDWE8sIDAgfSwKKwl7IFBfR1BMTDBfT1VUX01BSU4sIDEgfSwKKwl7IFBfQ09SRV9CSV9QTExfVEVTVF9TRSwgNyB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgZ2NjX3BhcmVudHNfM1tdID0geworCXsgLmZ3X25hbWUgPSAiYmlfdGN4byIsIC5uYW1lID0gImJpX3RjeG8iIH0sCisJeyAuaHcgPSAmZ3BsbDAuY2xrci5odyB9LAorCXsgLmZ3X25hbWUgPSAiY29yZV9iaV9wbGxfdGVzdF9zZSJ9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwYXJlbnRfbWFwIGdjY19wYXJlbnRfbWFwXzRbXSA9IHsKKwl7IFBfQklfVENYTywgMCB9LAorCXsgUF9DT1JFX0JJX1BMTF9URVNUX1NFLCA3IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSBnY2NfcGFyZW50c180W10gPSB7CisJeyAuZndfbmFtZSA9ICJiaV90Y3hvIiwgLm5hbWUgPSAiYmlfdGN4byIgfSwKKwl7IC5md19uYW1lID0gImNvcmVfYmlfcGxsX3Rlc3Rfc2UiIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHBhcmVudF9tYXAgZ2NjX3BhcmVudF9tYXBfNVtdID0geworCXsgUF9CSV9UQ1hPLCAwIH0sCisJeyBQX0dQTEwwX09VVF9NQUlOLCAxIH0sCisJeyBQX0dQTEw3X09VVF9NQUlOLCAzIH0sCisJeyBQX0dQTEwwX09VVF9FVkVOLCA2IH0sCisJeyBQX0NPUkVfQklfUExMX1RFU1RfU0UsIDcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIGdjY19wYXJlbnRzXzVbXSA9IHsKKwl7IC5md19uYW1lID0gImJpX3RjeG8iLCAubmFtZSA9ICJiaV90Y3hvIiB9LAorCXsgLmh3ID0gJmdwbGwwLmNsa3IuaHcgfSwKKwl7IC5odyA9ICZncGxsNy5jbGtyLmh3IH0sCisJeyAuaHcgPSAmZ3BsbDBfb3V0X2V2ZW4uY2xrci5odyB9LAorCXsgLmZ3X25hbWUgPSAiY29yZV9iaV9wbGxfdGVzdF9zZSIgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGFyZW50X21hcCBnY2NfcGFyZW50X21hcF82W10gPSB7CisJeyBQX0JJX1RDWE8sIDAgfSwKKwl7IFBfR1BMTDBfT1VUX01BSU4sIDEgfSwKKwl7IFBfR1BMTDlfT1VUX01BSU4sIDIgfSwKKwl7IFBfR1BMTDBfT1VUX0VWRU4sIDYgfSwKKwl7IFBfQ09SRV9CSV9QTExfVEVTVF9TRSwgNyB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgZ2NjX3BhcmVudHNfNltdID0geworCXsgLmZ3X25hbWUgPSAiYmlfdGN4byIsIC5uYW1lID0gImJpX3RjeG8iIH0sCisJeyAuaHcgPSAmZ3BsbDAuY2xrci5odyB9LAorCXsgLmh3ID0gJmdwbGw5LmNsa3IuaHcgfSwKKwl7IC5odyA9ICZncGxsMF9vdXRfZXZlbi5jbGtyLmh3IH0sCisJeyAuZndfbmFtZSA9ICJjb3JlX2JpX3BsbF90ZXN0X3NlIiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwYXJlbnRfbWFwIGdjY19wYXJlbnRfbWFwXzdbXSA9IHsKKwl7IFBfQklfVENYTywgMCB9LAorCXsgUF9HUExMMF9PVVRfTUFJTiwgMSB9LAorCXsgUF9BVURfUkVGX0NMSywgMiB9LAorCXsgUF9HUExMMF9PVVRfRVZFTiwgNiB9LAorCXsgUF9DT1JFX0JJX1BMTF9URVNUX1NFLCA3IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSBnY2NfcGFyZW50c183W10gPSB7CisJeyAuZndfbmFtZSA9ICJiaV90Y3hvIiwgLm5hbWUgPSAiYmlfdGN4byIgfSwKKwl7IC5odyA9ICZncGxsMC5jbGtyLmh3IH0sCisJeyAuZndfbmFtZSA9ICJhdWRfcmVmX2NsayIsIC5uYW1lID0gImF1ZF9yZWZfY2xrIiB9LAorCXsgLmh3ID0gJmdwbGwwX291dF9ldmVuLmNsa3IuaHcgfSwKKwl7IC5md19uYW1lID0gImNvcmVfYmlfcGxsX3Rlc3Rfc2UiIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZyZXFfdGJsIGZ0YmxfZ2NjX2NwdXNzX2FoYl9jbGtfc3JjW10gPSB7CisJRigxOTIwMDAwMCwgUF9CSV9UQ1hPLCAxLCAwLCAwKSwKKwlGKDUwMDAwMDAwLCBQX0dQTEwwX09VVF9NQUlOLCAxMiwgMCwgMCksCisJRigxMDAwMDAwMDAsIFBfR1BMTDBfT1VUX01BSU4sIDYsIDAsIDApLAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfY3B1c3NfYWhiX2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHg0ODAxNCwKKwkubW5kX3dpZHRoID0gMCwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfY3B1c3NfYWhiX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfY3B1c3NfYWhiX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmcmVxX3RibCBmdGJsX2djY19lbWFjX3B0cF9jbGtfc3JjW10gPSB7CisJRigxOTIwMDAwMCwgUF9CSV9UQ1hPLCAxLCAwLCAwKSwKKwlGKDUwMDAwMDAwLCBQX0dQTEwwX09VVF9FVkVOLCA2LCAwLCAwKSwKKwlGKDEyNTAwMDAwMCwgUF9HUExMN19PVVRfTUFJTiwgNCwgMCwgMCksCisJRigyNTAwMDAwMDAsIFBfR1BMTDdfT1VUX01BSU4sIDIsIDAsIDApLAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfZW1hY19wdHBfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDYwMzgsCisJLm1uZF93aWR0aCA9IDAsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF81LAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX2VtYWNfcHRwX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfZW1hY19wdHBfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzUsCisJCS5udW1fcGFyZW50cyA9IDUsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZyZXFfdGJsIGZ0YmxfZ2NjX2VtYWNfcmdtaWlfY2xrX3NyY1tdID0geworCUYoMjUwMDAwMCwgUF9CSV9UQ1hPLCAxLCAyNSwgMTkyKSwKKwlGKDUwMDAwMDAsIFBfQklfVENYTywgMSwgMjUsIDk2KSwKKwlGKDE5MjAwMDAwLCBQX0JJX1RDWE8sIDEsIDAsIDApLAorCUYoMjUwMDAwMDAsIFBfR1BMTDBfT1VUX0VWRU4sIDEyLCAwLCAwKSwKKwlGKDUwMDAwMDAwLCBQX0dQTEwwX09VVF9FVkVOLCA2LCAwLCAwKSwKKwlGKDEyNTAwMDAwMCwgUF9HUExMN19PVVRfTUFJTiwgNCwgMCwgMCksCisJRigyNTAwMDAwMDAsIFBfR1BMTDdfT1VUX01BSU4sIDIsIDAsIDApLAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfZW1hY19yZ21paV9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4NjAxYywKKwkubW5kX3dpZHRoID0gOCwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzUsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfZW1hY19yZ21paV9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX2VtYWNfcmdtaWlfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzUsCisJCS5udW1fcGFyZW50cyA9IDUsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZyZXFfdGJsIGZ0YmxfZ2NjX2dwMV9jbGtfc3JjW10gPSB7CisJRigxOTIwMDAwMCwgUF9CSV9UQ1hPLCAxLCAwLCAwKSwKKwlGKDI1MDAwMDAwLCBQX0dQTEwwX09VVF9FVkVOLCAxMiwgMCwgMCksCisJRig1MDAwMDAwMCwgUF9HUExMMF9PVVRfRVZFTiwgNiwgMCwgMCksCisJRigxMDAwMDAwMDAsIFBfR1BMTDBfT1VUX01BSU4sIDYsIDAsIDApLAorCUYoMjAwMDAwMDAwLCBQX0dQTEwwX09VVF9NQUlOLCAzLCAwLCAwKSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX2dwMV9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4NjQwMDQsCisJLm1uZF93aWR0aCA9IDgsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8xLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX2dwMV9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX2dwMV9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMSwKKwkJLm51bV9wYXJlbnRzID0gNSwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX2dwMl9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4NjUwMDQsCisJLm1uZF93aWR0aCA9IDgsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8xLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX2dwMV9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX2dwMl9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMSwKKwkJLm51bV9wYXJlbnRzID0gNSwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX2dwM19jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4NjYwMDQsCisJLm1uZF93aWR0aCA9IDgsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8xLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX2dwMV9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX2dwM19jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMSwKKwkJLm51bV9wYXJlbnRzID0gNSwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnJlcV90YmwgZnRibF9nY2NfcGNpZV8wX2F1eF9jbGtfc3JjW10gPSB7CisJRig5NjAwMDAwLCBQX0JJX1RDWE8sIDIsIDAsIDApLAorCUYoMTkyMDAwMDAsIFBfQklfVENYTywgMSwgMCwgMCksCisJeyB9Cit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19wY2llXzBfYXV4X2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHg2YjAyYywKKwkubW5kX3dpZHRoID0gMTYsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8yLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3BjaWVfMF9hdXhfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY19wY2llXzBfYXV4X2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18yLAorCQkubnVtX3BhcmVudHMgPSAzLAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfcGNpZV8xX2F1eF9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4OGQwMmMsCisJLm1uZF93aWR0aCA9IDE2LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMiwKKwkuZnJlcV90YmwgPSBmdGJsX2djY19wY2llXzBfYXV4X2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfcGNpZV8xX2F1eF9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMiwKKwkJLm51bV9wYXJlbnRzID0gMywKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnJlcV90YmwgZnRibF9nY2NfcGNpZV9waHlfcmVmZ2VuX2Nsa19zcmNbXSA9IHsKKwlGKDE5MjAwMDAwLCBQX0JJX1RDWE8sIDEsIDAsIDApLAorCUYoMTAwMDAwMDAwLCBQX0dQTEwwX09VVF9NQUlOLCA2LCAwLCAwKSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3BjaWVfcGh5X3JlZmdlbl9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4NmYwMTQsCisJLm1uZF93aWR0aCA9IDAsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3BjaWVfcGh5X3JlZmdlbl9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3BjaWVfcGh5X3JlZmdlbl9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMCwKKwkJLm51bV9wYXJlbnRzID0gNCwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnJlcV90YmwgZnRibF9nY2NfcGRtMl9jbGtfc3JjW10gPSB7CisJRig5NjAwMDAwLCBQX0JJX1RDWE8sIDIsIDAsIDApLAorCUYoMTkyMDAwMDAsIFBfQklfVENYTywgMSwgMCwgMCksCisJRig2MDAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgMTAsIDAsIDApLAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfcGRtMl9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MzMwMTAsCisJLm1uZF93aWR0aCA9IDAsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3BkbTJfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY19wZG0yX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmcmVxX3RibCBmdGJsX2djY19xc3BpX2NvcmVfY2xrX3NyY1tdID0geworCUYoMTkyMDAwMDAsIFBfQklfVENYTywgMSwgMCwgMCksCisJRig3NTAwMDAwMCwgUF9HUExMMF9PVVRfRVZFTiwgNCwgMCwgMCksCisJRigxNTAwMDAwMDAsIFBfR1BMTDBfT1VUX01BSU4sIDQsIDAsIDApLAorCUYoMzAwMDAwMDAwLCBQX0dQTEwwX09VVF9NQUlOLCAyLCAwLCAwKSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3FzcGlfY29yZV9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4NGIwMDgsCisJLm1uZF93aWR0aCA9IDAsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3FzcGlfY29yZV9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3FzcGlfY29yZV9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMCwKKwkJLm51bV9wYXJlbnRzID0gNCwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnJlcV90YmwgZnRibF9nY2NfcXVwdjNfd3JhcDBfczBfY2xrX3NyY1tdID0geworCUYoNzM3MjgwMCwgUF9HUExMMF9PVVRfRVZFTiwgMSwgMzg0LCAxNTYyNSksCisJRigxNDc0NTYwMCwgUF9HUExMMF9PVVRfRVZFTiwgMSwgNzY4LCAxNTYyNSksCisJRigxOTIwMDAwMCwgUF9CSV9UQ1hPLCAxLCAwLCAwKSwKKwlGKDI5NDkxMjAwLCBQX0dQTEwwX09VVF9FVkVOLCAxLCAxNTM2LCAxNTYyNSksCisJRigzMjAwMDAwMCwgUF9HUExMMF9PVVRfRVZFTiwgMSwgOCwgNzUpLAorCUYoNDgwMDAwMDAsIFBfR1BMTDBfT1VUX0VWRU4sIDEsIDQsIDI1KSwKKwlGKDY0MDAwMDAwLCBQX0dQTEwwX09VVF9FVkVOLCAxLCAxNiwgNzUpLAorCUYoODAwMDAwMDAsIFBfR1BMTDBfT1VUX0VWRU4sIDEsIDQsIDE1KSwKKwlGKDk2MDAwMDAwLCBQX0dQTEwwX09VVF9FVkVOLCAxLCA4LCAyNSksCisJRigxMDAwMDAwMDAsIFBfR1BMTDBfT1VUX0VWRU4sIDMsIDAsIDApLAorCUYoMTAyNDAwMDAwLCBQX0dQTEwwX09VVF9FVkVOLCAxLCAxMjgsIDM3NSksCisJRigxMTIwMDAwMDAsIFBfR1BMTDBfT1VUX0VWRU4sIDEsIDI4LCA3NSksCisJRigxMTc5NjQ4MDAsIFBfR1BMTDBfT1VUX0VWRU4sIDEsIDYxNDQsIDE1NjI1KSwKKwlGKDEyMDAwMDAwMCwgUF9HUExMMF9PVVRfRVZFTiwgMi41LCAwLCAwKSwKKwlGKDEyODAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgMSwgMTYsIDc1KSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHgxNzE0OCwKKwkubW5kX3dpZHRoID0gMTYsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcDBfczBfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19xdXB2M193cmFwMF9zMV9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MTcyNzgsCisJLm1uZF93aWR0aCA9IDE2LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY19xdXB2M193cmFwMF9zMF9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3MxX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfcXVwdjNfd3JhcDBfczJfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDE3M2E4LAorCS5tbmRfd2lkdGggPSAxNiwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfcXVwdjNfd3JhcDBfczBfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY19xdXB2M193cmFwMF9zMl9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMCwKKwkJLm51bV9wYXJlbnRzID0gNCwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3F1cHYzX3dyYXAwX3MzX2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHgxNzRkOCwKKwkubW5kX3dpZHRoID0gMTYsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcDBfczNfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19xdXB2M193cmFwMF9zNF9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MTc2MDgsCisJLm1uZF93aWR0aCA9IDE2LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY19xdXB2M193cmFwMF9zMF9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3M0X2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfcXVwdjNfd3JhcDBfczVfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDE3NzM4LAorCS5tbmRfd2lkdGggPSAxNiwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfcXVwdjNfd3JhcDBfczBfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY19xdXB2M193cmFwMF9zNV9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMCwKKwkJLm51bV9wYXJlbnRzID0gNCwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3F1cHYzX3dyYXAwX3M2X2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHgxNzg2OCwKKwkubW5kX3dpZHRoID0gMTYsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcDBfczZfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19xdXB2M193cmFwMF9zN19jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MTc5OTgsCisJLm1uZF93aWR0aCA9IDE2LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY19xdXB2M193cmFwMF9zMF9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3M3X2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfcXVwdjNfd3JhcDFfczBfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDE4MTQ4LAorCS5tbmRfd2lkdGggPSAxNiwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfcXVwdjNfd3JhcDBfczBfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY19xdXB2M193cmFwMV9zMF9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMCwKKwkJLm51bV9wYXJlbnRzID0gNCwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3F1cHYzX3dyYXAxX3MxX2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHgxODI3OCwKKwkubW5kX3dpZHRoID0gMTYsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcDFfczFfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19xdXB2M193cmFwMV9zMl9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MTgzYTgsCisJLm1uZF93aWR0aCA9IDE2LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY19xdXB2M193cmFwMF9zMF9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAxX3MyX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfcXVwdjNfd3JhcDFfczNfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDE4NGQ4LAorCS5tbmRfd2lkdGggPSAxNiwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfcXVwdjNfd3JhcDBfczBfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY19xdXB2M193cmFwMV9zM19jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMCwKKwkJLm51bV9wYXJlbnRzID0gNCwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3F1cHYzX3dyYXAxX3M0X2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHgxODYwOCwKKwkubW5kX3dpZHRoID0gMTYsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcDFfczRfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19xdXB2M193cmFwMV9zNV9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MTg3MzgsCisJLm1uZF93aWR0aCA9IDE2LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY19xdXB2M193cmFwMF9zMF9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAxX3M1X2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfcXVwdjNfd3JhcDJfczBfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDFlMTQ4LAorCS5tbmRfd2lkdGggPSAxNiwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfcXVwdjNfd3JhcDBfczBfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY19xdXB2M193cmFwMl9zMF9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMCwKKwkJLm51bV9wYXJlbnRzID0gNCwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3F1cHYzX3dyYXAyX3MxX2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHgxZTI3OCwKKwkubW5kX3dpZHRoID0gMTYsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcDJfczFfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19xdXB2M193cmFwMl9zMl9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MWUzYTgsCisJLm1uZF93aWR0aCA9IDE2LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY19xdXB2M193cmFwMF9zMF9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAyX3MyX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfcXVwdjNfd3JhcDJfczNfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDFlNGQ4LAorCS5tbmRfd2lkdGggPSAxNiwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfcXVwdjNfd3JhcDBfczBfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY19xdXB2M193cmFwMl9zM19jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMCwKKwkJLm51bV9wYXJlbnRzID0gNCwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3F1cHYzX3dyYXAyX3M0X2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHgxZTYwOCwKKwkubW5kX3dpZHRoID0gMTYsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcDJfczRfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19xdXB2M193cmFwMl9zNV9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MWU3MzgsCisJLm1uZF93aWR0aCA9IDE2LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY19xdXB2M193cmFwMF9zMF9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAyX3M1X2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmcmVxX3RibCBmdGJsX2djY19zZGNjMl9hcHBzX2Nsa19zcmNbXSA9IHsKKwlGKDQwMDAwMCwgUF9CSV9UQ1hPLCAxMiwgMSwgNCksCisJRig5NjAwMDAwLCBQX0JJX1RDWE8sIDIsIDAsIDApLAorCUYoMTkyMDAwMDAsIFBfQklfVENYTywgMSwgMCwgMCksCisJRigyNTAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgMTIsIDEsIDIpLAorCUYoNTAwMDAwMDAsIFBfR1BMTDBfT1VUX01BSU4sIDEyLCAwLCAwKSwKKwlGKDEwMDAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgNiwgMCwgMCksCisJRigyMDIwMDAwMDAsIFBfR1BMTDlfT1VUX01BSU4sIDQsIDAsIDApLAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2Nfc2RjYzJfYXBwc19jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MTQwMGMsCisJLm1uZF93aWR0aCA9IDgsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF82LAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3NkY2MyX2FwcHNfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY19zZGNjMl9hcHBzX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c182LAorCQkubnVtX3BhcmVudHMgPSA1LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX2Zsb29yX29wcywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmcmVxX3RibCBmdGJsX2djY19zZGNjNF9hcHBzX2Nsa19zcmNbXSA9IHsKKwlGKDQwMDAwMCwgUF9CSV9UQ1hPLCAxMiwgMSwgNCksCisJRig5NjAwMDAwLCBQX0JJX1RDWE8sIDIsIDAsIDApLAorCUYoMTkyMDAwMDAsIFBfQklfVENYTywgMSwgMCwgMCksCisJRigyNTAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgMTIsIDEsIDIpLAorCUYoNTAwMDAwMDAsIFBfR1BMTDBfT1VUX01BSU4sIDEyLCAwLCAwKSwKKwlGKDEwMDAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgNiwgMCwgMCksCisJeyB9Cit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY19zZGNjNF9hcHBzX2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHgxNjAwYywKKwkubW5kX3dpZHRoID0gOCwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzMsCisJLmZyZXFfdGJsID0gZnRibF9nY2Nfc2RjYzRfYXBwc19jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3NkY2M0X2FwcHNfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzMsCisJCS5udW1fcGFyZW50cyA9IDMsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfZmxvb3Jfb3BzLAorCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZyZXFfdGJsIGZ0YmxfZ2NjX3RzaWZfcmVmX2Nsa19zcmNbXSA9IHsKKwlGKDEwNTQ5NSwgUF9CSV9UQ1hPLCAyLCAxLCA5MSksCisJeyB9Cit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY190c2lmX3JlZl9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4MzYwMTAsCisJLm1uZF93aWR0aCA9IDgsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF83LAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3RzaWZfcmVmX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfdHNpZl9yZWZfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzcsCisJCS5udW1fcGFyZW50cyA9IDUsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZyZXFfdGJsIGZ0YmxfZ2NjX3Vmc19jYXJkX2F4aV9jbGtfc3JjW10gPSB7CisJRigyNTAwMDAwMCwgUF9HUExMMF9PVVRfRVZFTiwgMTIsIDAsIDApLAorCUYoNTAwMDAwMDAsIFBfR1BMTDBfT1VUX0VWRU4sIDYsIDAsIDApLAorCUYoMTAwMDAwMDAwLCBQX0dQTEwwX09VVF9NQUlOLCA2LCAwLCAwKSwKKwlGKDIwMDAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgMywgMCwgMCksCisJRigyNDAwMDAwMDAsIFBfR1BMTDBfT1VUX01BSU4sIDIuNSwgMCwgMCksCisJeyB9Cit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY191ZnNfY2FyZF9heGlfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDc1MDIwLAorCS5tbmRfd2lkdGggPSA4LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY191ZnNfY2FyZF9heGlfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY191ZnNfY2FyZF9heGlfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZyZXFfdGJsIGZ0YmxfZ2NjX3Vmc19jYXJkX2ljZV9jb3JlX2Nsa19zcmNbXSA9IHsKKwlGKDM3NTAwMDAwLCBQX0dQTEwwX09VVF9FVkVOLCA4LCAwLCAwKSwKKwlGKDc1MDAwMDAwLCBQX0dQTEwwX09VVF9FVkVOLCA0LCAwLCAwKSwKKwlGKDE1MDAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgNCwgMCwgMCksCisJRigzMDAwMDAwMDAsIFBfR1BMTDBfT1VUX01BSU4sIDIsIDAsIDApLAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfdWZzX2NhcmRfaWNlX2NvcmVfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDc1MDYwLAorCS5tbmRfd2lkdGggPSAwLAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY191ZnNfY2FyZF9pY2VfY29yZV9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3Vmc19jYXJkX2ljZV9jb3JlX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmcmVxX3RibCBmdGJsX2djY191ZnNfY2FyZF9waHlfYXV4X2Nsa19zcmNbXSA9IHsKKwlGKDE5MjAwMDAwLCBQX0JJX1RDWE8sIDEsIDAsIDApLAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfdWZzX2NhcmRfcGh5X2F1eF9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4NzUwOTQsCisJLm1uZF93aWR0aCA9IDAsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF80LAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3Vmc19jYXJkX3BoeV9hdXhfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY191ZnNfY2FyZF9waHlfYXV4X2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c180LAorCQkubnVtX3BhcmVudHMgPSAyLAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmcmVxX3RibCBmdGJsX2djY191ZnNfY2FyZF91bmlwcm9fY29yZV9jbGtfc3JjW10gPSB7CisJRigzNzUwMDAwMCwgUF9HUExMMF9PVVRfRVZFTiwgOCwgMCwgMCksCisJRig3NTAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgOCwgMCwgMCksCisJRigxNTAwMDAwMDAsIFBfR1BMTDBfT1VUX01BSU4sIDQsIDAsIDApLAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfdWZzX2NhcmRfdW5pcHJvX2NvcmVfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDc1MDc4LAorCS5tbmRfd2lkdGggPSAwLAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY191ZnNfY2FyZF91bmlwcm9fY29yZV9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3Vmc19jYXJkX3VuaXByb19jb3JlX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmcmVxX3RibCBmdGJsX2djY191ZnNfcGh5X2F4aV9jbGtfc3JjW10gPSB7CisJRigyNTAwMDAwMCwgUF9HUExMMF9PVVRfRVZFTiwgMTIsIDAsIDApLAorCUYoMzc1MDAwMDAsIFBfR1BMTDBfT1VUX0VWRU4sIDgsIDAsIDApLAorCUYoNzUwMDAwMDAsIFBfR1BMTDBfT1VUX0VWRU4sIDQsIDAsIDApLAorCUYoMTUwMDAwMDAwLCBQX0dQTEwwX09VVF9NQUlOLCA0LCAwLCAwKSwKKwlGKDMwMDAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgMiwgMCwgMCksCisJeyB9Cit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY191ZnNfcGh5X2F4aV9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4NzcwMjAsCisJLm1uZF93aWR0aCA9IDgsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8wLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3Vmc19waHlfYXhpX2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfdWZzX3BoeV9heGlfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY191ZnNfcGh5X2ljZV9jb3JlX2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHg3NzA2MCwKKwkubW5kX3dpZHRoID0gMCwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfdWZzX2NhcmRfaWNlX2NvcmVfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY191ZnNfcGh5X2ljZV9jb3JlX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfdWZzX3BoeV9waHlfYXV4X2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHg3NzA5NCwKKwkubW5kX3dpZHRoID0gMCwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzQsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfcGNpZV8wX2F1eF9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3Vmc19waHlfcGh5X2F1eF9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfNCwKKwkJLm51bV9wYXJlbnRzID0gMiwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3Vmc19waHlfdW5pcHJvX2NvcmVfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDc3MDc4LAorCS5tbmRfd2lkdGggPSAwLAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY191ZnNfY2FyZF9pY2VfY29yZV9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3Vmc19waHlfdW5pcHJvX2NvcmVfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZyZXFfdGJsIGZ0YmxfZ2NjX3VzYjMwX3ByaW1fbWFzdGVyX2Nsa19zcmNbXSA9IHsKKwlGKDMzMzMzMzMzLCBQX0dQTEwwX09VVF9FVkVOLCA5LCAwLCAwKSwKKwlGKDY2NjY2NjY3LCBQX0dQTEwwX09VVF9FVkVOLCA0LjUsIDAsIDApLAorCUYoMTMzMzMzMzMzLCBQX0dQTEwwX09VVF9NQUlOLCA0LjUsIDAsIDApLAorCUYoMjAwMDAwMDAwLCBQX0dQTEwwX09VVF9NQUlOLCAzLCAwLCAwKSwKKwlGKDI0MDAwMDAwMCwgUF9HUExMMF9PVVRfTUFJTiwgMi41LCAwLCAwKSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3VzYjMwX3ByaW1fbWFzdGVyX2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHhmMDFjLAorCS5tbmRfd2lkdGggPSA4LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY191c2IzMF9wcmltX21hc3Rlcl9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3VzYjMwX3ByaW1fbWFzdGVyX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmcmVxX3RibCBmdGJsX2djY191c2IzMF9wcmltX21vY2tfdXRtaV9jbGtfc3JjW10gPSB7CisJRigxOTIwMDAwMCwgUF9CSV9UQ1hPLCAxLCAwLCAwKSwKKwlGKDIwMDAwMDAwLCBQX0dQTEwwX09VVF9FVkVOLCAxNSwgMCwgMCksCisJRig2MDAwMDAwMCwgUF9HUExMMF9PVVRfRVZFTiwgNSwgMCwgMCksCisJeyB9Cit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY191c2IzMF9wcmltX21vY2tfdXRtaV9jbGtfc3JjID0geworCS5jbWRfcmNnciA9IDB4ZjAzNCwKKwkubW5kX3dpZHRoID0gMCwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfdXNiMzBfcHJpbV9tb2NrX3V0bWlfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY191c2IzMF9wcmltX21vY2tfdXRtaV9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMCwKKwkJLm51bV9wYXJlbnRzID0gNCwKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3VzYjMwX3NlY19tYXN0ZXJfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDEwMDFjLAorCS5tbmRfd2lkdGggPSA4LAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMCwKKwkuZnJlcV90YmwgPSBmdGJsX2djY191c2IzMF9wcmltX21hc3Rlcl9jbGtfc3JjLAorCS5jbGtyLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJLm5hbWUgPSAiZ2NjX3VzYjMwX3NlY19tYXN0ZXJfY2xrX3NyYyIsCisJCS5wYXJlbnRfZGF0YSA9IGdjY19wYXJlbnRzXzAsCisJCS5udW1fcGFyZW50cyA9IDQsCisJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCS5vcHMgPSAmY2xrX3JjZzJfb3BzLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19yY2cyIGdjY191c2IzMF9zZWNfbW9ja191dG1pX2Nsa19zcmMgPSB7CisJLmNtZF9yY2dyID0gMHgxMDAzNCwKKwkubW5kX3dpZHRoID0gMCwKKwkuaGlkX3dpZHRoID0gNSwKKwkucGFyZW50X21hcCA9IGdjY19wYXJlbnRfbWFwXzAsCisJLmZyZXFfdGJsID0gZnRibF9nY2NfdXNiMzBfcHJpbV9tb2NrX3V0bWlfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY191c2IzMF9zZWNfbW9ja191dG1pX2Nsa19zcmMiLAorCQkucGFyZW50X2RhdGEgPSBnY2NfcGFyZW50c18wLAorCQkubnVtX3BhcmVudHMgPSA0LAorCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkub3BzID0gJmNsa19yY2cyX29wcywKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmNnMiBnY2NfdXNiM19wcmltX3BoeV9hdXhfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweGYwNjAsCisJLm1uZF93aWR0aCA9IDAsCisJLmhpZF93aWR0aCA9IDUsCisJLnBhcmVudF9tYXAgPSBnY2NfcGFyZW50X21hcF8yLAorCS5mcmVxX3RibCA9IGZ0YmxfZ2NjX3Vmc19jYXJkX3BoeV9hdXhfY2xrX3NyYywKKwkuY2xrci5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCS5uYW1lID0gImdjY191c2IzX3ByaW1fcGh5X2F1eF9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMiwKKwkJLm51bV9wYXJlbnRzID0gMywKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX3JjZzIgZ2NjX3VzYjNfc2VjX3BoeV9hdXhfY2xrX3NyYyA9IHsKKwkuY21kX3JjZ3IgPSAweDEwMDYwLAorCS5tbmRfd2lkdGggPSAwLAorCS5oaWRfd2lkdGggPSA1LAorCS5wYXJlbnRfbWFwID0gZ2NjX3BhcmVudF9tYXBfMiwKKwkuZnJlcV90YmwgPSBmdGJsX2djY191ZnNfY2FyZF9waHlfYXV4X2Nsa19zcmMsCisJLmNsa3IuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkubmFtZSA9ICJnY2NfdXNiM19zZWNfcGh5X2F1eF9jbGtfc3JjIiwKKwkJLnBhcmVudF9kYXRhID0gZ2NjX3BhcmVudHNfMiwKKwkJLm51bV9wYXJlbnRzID0gMywKKwkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJLm9wcyA9ICZjbGtfcmNnMl9vcHMsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfYWdncmVfbm9jX3BjaWVfdGJ1X2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDkwMDE4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg5MDAxOCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2FnZ3JlX25vY19wY2llX3RidV9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfYWdncmVfdWZzX2NhcmRfYXhpX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDc1MGMwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHg3NTBjMCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzUwYzAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19hZ2dyZV91ZnNfY2FyZF9heGlfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3Vmc19jYXJkX2F4aV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfYWdncmVfdWZzX2NhcmRfYXhpX2h3X2N0bF9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg3NTBjMCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5od2NnX3JlZyA9IDB4NzUwYzAsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDc1MGMwLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMSksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfYWdncmVfdWZzX2NhcmRfYXhpX2h3X2N0bF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfYWdncmVfdWZzX2NhcmRfYXhpX2Nsay5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaF9zaW1wbGVfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2FnZ3JlX3Vmc19waHlfYXhpX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDc3MGMwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHg3NzBjMCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzcwYzAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19hZ2dyZV91ZnNfcGh5X2F4aV9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdWZzX3BoeV9heGlfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2FnZ3JlX3Vmc19waHlfYXhpX2h3X2N0bF9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg3NzBjMCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5od2NnX3JlZyA9IDB4NzcwYzAsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDc3MGMwLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMSksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfYWdncmVfdWZzX3BoeV9heGlfaHdfY3RsX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19hZ2dyZV91ZnNfcGh5X2F4aV9jbGsuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2hfc2ltcGxlX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19hZ2dyZV91c2IzX3ByaW1fYXhpX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweGYwN2MsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweGYwN2MsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19hZ2dyZV91c2IzX3ByaW1fYXhpX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY191c2IzMF9wcmltX21hc3Rlcl9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfYWdncmVfdXNiM19zZWNfYXhpX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDEwMDdjLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHgxMDA3YywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2FnZ3JlX3VzYjNfc2VjX2F4aV9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdXNiMzBfc2VjX21hc3Rlcl9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfYm9vdF9yb21fYWhiX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDM4MDA0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFRfVk9URUQsCisJLmh3Y2dfcmVnID0gMHgzODAwNCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMDQsCisJCS5lbmFibGVfbWFzayA9IEJJVCgxMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfYm9vdF9yb21fYWhiX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworLyoKKyAqIENsb2NrIE9OIGRlcGVuZHMgb24gZXh0ZXJuYWwgcGFyZW50ICdjb25maWcgbm9jJywgc28gY2FudCBwb2xsCisgKiBkZWxheSBhbmQgYWxzbyBtYXJrIGFzIGNydGl0aWNhbCBmb3IgY2Ftc3MgYm9vdAorICovCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2NhbWVyYV9haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4YjAwOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX0RFTEFZLAorCS5od2NnX3JlZyA9IDB4YjAwOCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4YjAwOCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2NhbWVyYV9haGJfY2xrIiwKKwkJCS5mbGFncyA9IENMS19JU19DUklUSUNBTCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2NhbWVyYV9oZl9heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4YjAzMCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4YjAzMCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2NhbWVyYV9oZl9heGlfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2NhbWVyYV9zZl9heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4YjAzNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4YjAzNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2NhbWVyYV9zZl9heGlfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCisvKiBYTyBjcml0aWNhbCBpbnB1dCB0byBjYW1zcywgc28gbm8gbmVlZCB0byBwb2xsICovCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2NhbWVyYV94b19jbGsgPSB7CisJLmhhbHRfcmVnID0gMHhiMDQ0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFRfREVMQVksCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHhiMDQ0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfY2FtZXJhX3hvX2NsayIsCisJCQkuZmxhZ3MgPSBDTEtfSVNfQ1JJVElDQUwsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19jZmdfbm9jX3VzYjNfcHJpbV9heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4ZjA3OCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4ZjA3OCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2NmZ19ub2NfdXNiM19wcmltX2F4aV9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdXNiMzBfcHJpbV9tYXN0ZXJfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2NmZ19ub2NfdXNiM19zZWNfYXhpX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDEwMDc4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHgxMDA3OCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2NmZ19ub2NfdXNiM19zZWNfYXhpX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY191c2IzMF9zZWNfbWFzdGVyX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19jcHVzc19haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NDgwMDAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDA0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjEpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2NwdXNzX2FoYl9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfY3B1c3NfYWhiX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCSAvKiByZXF1aXJlZCBmb3IgY3B1c3MgKi8KKwkJCS5mbGFncyA9IENMS19JU19DUklUSUNBTCB8IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19jcHVzc19kdm1fYnVzX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDQ4MTkwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg0ODE5MCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2NwdXNzX2R2bV9idXNfY2xrIiwKKwkJCSAvKiByZXF1aXJlZCBmb3IgY3B1c3MgKi8KKwkJCS5mbGFncyA9IENMS19JU19DUklUSUNBTCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2NwdXNzX2dub2NfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NDgwMDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuaHdjZ19yZWcgPSAweDQ4MDA0LAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg1MjAwNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDIyKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19jcHVzc19nbm9jX2NsayIsCisJCQkgLyogcmVxdWlyZWQgZm9yIGNwdXNzICovCisJCQkuZmxhZ3MgPSBDTEtfSVNfQ1JJVElDQUwsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19jcHVzc19yYmNwcl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg0ODAwOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NDgwMDgsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19jcHVzc19yYmNwcl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfZGRyc3NfZ3B1X2F4aV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg3MTE1NCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDcxMTU0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfZGRyc3NfZ3B1X2F4aV9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKKy8qCisgKiBDbG9jayBPTiBkZXBlbmRzIG9uIGV4dGVybmFsIHBhcmVudCAnY29uZmlnIG5vYycsIHNvIGNhbnQgcG9sbAorICogZGVsYXkgYW5kIGFsc28gbWFyayBhcyBjcnRpdGljYWwgZm9yIGRpc3AgYm9vdAorICovCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2Rpc3BfYWhiX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweGIwMGMsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9ERUxBWSwKKwkuaHdjZ19yZWcgPSAweGIwMGMsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweGIwMGMsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19kaXNwX2FoYl9jbGsiLAorCQkJLmZsYWdzID0gQ0xLX0lTX0NSSVRJQ0FMLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfZGlzcF9oZl9heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4YjAzOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4YjAzOCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2Rpc3BfaGZfYXhpX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19kaXNwX3NmX2F4aV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHhiMDNjLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHhiMDNjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfZGlzcF9zZl9heGlfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCisvKiBYTyBjcml0aWNhbCBpbnB1dCB0byBkaXNwLCBzbyBubyBuZWVkIHRvIHBvbGwgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfZGlzcF94b19jbGsgPSB7CisJLmhhbHRfcmVnID0gMHhiMDQ4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFRfREVMQVksCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHhiMDQ4LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfZGlzcF94b19jbGsiLAorCQkJLmZsYWdzID0gQ0xLX0lTX0NSSVRJQ0FMLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfZW1hY19heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NjAxMCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NjAxMCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2VtYWNfYXhpX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19lbWFjX3B0cF9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg2MDM0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg2MDM0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfZW1hY19wdHBfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX2VtYWNfcHRwX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19lbWFjX3JnbWlpX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDYwMTgsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDYwMTgsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19lbWFjX3JnbWlpX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19lbWFjX3JnbWlpX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19lbWFjX3Nsdl9haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NjAxNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5od2NnX3JlZyA9IDB4NjAxNCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NjAxNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2VtYWNfc2x2X2FoYl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfZ3AxX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDY0MDAwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg2NDAwMCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2dwMV9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfZ3AxX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19ncDJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NjUwMDAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDY1MDAwLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfZ3AyX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19ncDJfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2dwM19jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg2NjAwMCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NjYwMDAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19ncDNfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX2dwM19jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfZ3B1X2NmZ19haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NzEwMDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDcxMDA0LAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg3MTAwNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX2dwdV9jZmdfYWhiX2NsayIsCisJCQkgLyogcmVxdWlyZWQgZm9yIGdwdSAqLworCQkJLmZsYWdzID0gQ0xLX0lTX0NSSVRJQ0FMLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfZ3B1X2lyZWZfY2xrID0geworCS5oYWx0X3JlZyA9IDB4OGMwMTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDhjMDEwLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfZ3B1X2lyZWZfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX2dwdV9tZW1ub2NfZ2Z4X2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDcxMDBjLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX1ZPVEVELAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzEwMGMsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19ncHVfbWVtbm9jX2dmeF9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfZ3B1X3Nub2NfZHZtX2dmeF9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg3MTAxOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzEwMTgsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19ncHVfc25vY19kdm1fZ2Z4X2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19ucHVfYXRfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NGQwMTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfVk9URUQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg0ZDAxMCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX25wdV9hdF9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfbnB1X2F4aV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg0ZDAwOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDRkMDA4LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfbnB1X2F4aV9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfbnB1X2NmZ19haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NGQwMDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDRkMDA0LAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg0ZDAwNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX25wdV9jZmdfYWhiX2NsayIsCisJCQkgLyogcmVxdWlyZWQgZm9yIG5wdSAqLworCQkJLmZsYWdzID0gQ0xLX0lTX0NSSVRJQ0FMLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfbnB1X3RyaWdfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NGQwMGMsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfVk9URUQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg0ZDAwYywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX25wdV90cmlnX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wY2llMF9waHlfcmVmZ2VuX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDZmMDJjLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg2ZjAyYywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWUwX3BoeV9yZWZnZW5fY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3BjaWVfcGh5X3JlZmdlbl9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcGNpZTFfcGh5X3JlZmdlbl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg2ZjAzMCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NmYwMzAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19wY2llMV9waHlfcmVmZ2VuX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19wY2llX3BoeV9yZWZnZW5fY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3BjaWVfMF9hdXhfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NmIwMjAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMyksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcGNpZV8wX2F1eF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfcGNpZV8wX2F1eF9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcGNpZV8wX2NmZ19haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NmIwMWMsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuaHdjZ19yZWcgPSAweDZiMDFjLAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg1MjAwYywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDIpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWVfMF9jZmdfYWhiX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wY2llXzBfY2xrcmVmX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDhjMDBjLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg4YzAwYywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWVfMF9jbGtyZWZfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3BjaWVfMF9tc3RyX2F4aV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg2YjAxOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX1ZPVEVELAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMGMsCisJCS5lbmFibGVfbWFzayA9IEJJVCgxKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19wY2llXzBfbXN0cl9heGlfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCisvKiBDbG9jayBPTiBkZXBlbmRzIG9uIGV4dGVybmFsIHBhcmVudCAnUElQRScgY2xvY2ssIHNvIGRvbnQgcG9sbCAqLworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wY2llXzBfcGlwZV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg2YjAyNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX0RFTEFZLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMGMsCisJCS5lbmFibGVfbWFzayA9IEJJVCg0KSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19wY2llXzBfcGlwZV9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcGNpZV8wX3Nsdl9heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NmIwMTQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuaHdjZ19yZWcgPSAweDZiMDE0LAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg1MjAwYywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWVfMF9zbHZfYXhpX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wY2llXzBfc2x2X3EyYV9heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NmIwMTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoNSksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcGNpZV8wX3Nsdl9xMmFfYXhpX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wY2llXzFfYXV4X2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDhkMDIwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFRfVk9URUQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg1MjAwNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDI5KSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19wY2llXzFfYXV4X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19wY2llXzFfYXV4X2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wY2llXzFfY2ZnX2FoYl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg4ZDAxYywKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX1ZPVEVELAorCS5od2NnX3JlZyA9IDB4OGQwMWMsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDA0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjgpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWVfMV9jZmdfYWhiX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wY2llXzFfY2xrcmVmX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDhjMDJjLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg4YzAyYywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWVfMV9jbGtyZWZfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3BjaWVfMV9tc3RyX2F4aV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg4ZDAxOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX1ZPVEVELAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMDQsCisJCS5lbmFibGVfbWFzayA9IEJJVCgyNyksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcGNpZV8xX21zdHJfYXhpX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworLyogQ2xvY2sgT04gZGVwZW5kcyBvbiBleHRlcm5hbCBwYXJlbnQgJ1BJUEUnIGNsb2NrLCBzbyBkb250IHBvbGwgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcGNpZV8xX3BpcGVfY2xrID0geworCS5oYWx0X3JlZyA9IDB4OGQwMjQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9ERUxBWSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDA0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMzApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWVfMV9waXBlX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wY2llXzFfc2x2X2F4aV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg4ZDAxNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX1ZPVEVELAorCS5od2NnX3JlZyA9IDB4OGQwMTQsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDA0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjYpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWVfMV9zbHZfYXhpX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wY2llXzFfc2x2X3EyYV9heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4OGQwMTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDA0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjUpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWVfMV9zbHZfcTJhX2F4aV9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcGNpZV9waHlfYXV4X2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDZmMDA0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg2ZjAwNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BjaWVfcGh5X2F1eF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfcGNpZV8wX2F1eF9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcGRtMl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgzMzAwYywKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4MzMwMGMsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19wZG0yX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19wZG0yX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wZG1fYWhiX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDMzMDA0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHgzMzAwNCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4MzMwMDQsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19wZG1fYWhiX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19wZG1feG80X2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDMzMDA4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHgzMzAwOCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3BkbV94bzRfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3BybmdfYWhiX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDM0MDA0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFRfVk9URUQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg1MjAwNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDEzKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19wcm5nX2FoYl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcW1pcF9jYW1lcmFfbnJ0X2FoYl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHhiMDE4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHhiMDE4LAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHhiMDE4LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcW1pcF9jYW1lcmFfbnJ0X2FoYl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcW1pcF9jYW1lcmFfcnRfYWhiX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweGIwMWMsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweGIwMWMsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweGIwMWMsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19xbWlwX2NhbWVyYV9ydF9haGJfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3FtaXBfZGlzcF9haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4YjAyMCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5od2NnX3JlZyA9IDB4YjAyMCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4YjAyMCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3FtaXBfZGlzcF9haGJfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3FtaXBfdmlkZW9fY3ZwX2FoYl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHhiMDEwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHhiMDEwLAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHhiMDEwLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcW1pcF92aWRlb19jdnBfYWhiX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19xbWlwX3ZpZGVvX3Zjb2RlY19haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4YjAxNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5od2NnX3JlZyA9IDB4YjAxNCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4YjAxNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3FtaXBfdmlkZW9fdmNvZGVjX2FoYl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXNwaV9jbm9jX3BlcmlwaF9haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NGIwMDAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDRiMDAwLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcXNwaV9jbm9jX3BlcmlwaF9haGJfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3FzcGlfY29yZV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg0YjAwNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NGIwMDQsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19xc3BpX2NvcmVfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3FzcGlfY29yZV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDBfczBfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTcxNDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMTApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3MwX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMF9zMF9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDBfczFfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTcyNzQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMTEpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3MxX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMF9zMV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDBfczJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTczYTQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMTIpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3MyX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMF9zMl9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDBfczNfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTc0ZDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMTMpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3MzX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMF9zM19jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDBfczRfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTc2MDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMTQpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3M0X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMF9zNF9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDBfczVfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTc3MzQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMTUpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3M1X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMF9zNV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDBfczZfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTc4NjQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMTYpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3M2X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMF9zNl9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDBfczdfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTc5OTQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMTcpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAwX3M3X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMF9zN19jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDFfczBfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTgxNDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjIpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAxX3MwX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMV9zMF9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDFfczFfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTgyNzQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjMpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAxX3MxX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMV9zMV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDFfczJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTgzYTQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjQpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAxX3MyX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMV9zMl9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDFfczNfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTg0ZDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjUpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAxX3MzX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMV9zM19jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDFfczRfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTg2MDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjYpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAxX3M0X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMV9zNF9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDFfczVfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTg3MzQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDBjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMjcpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAxX3M1X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMV9zNV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDJfczBfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MWUxNDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDE0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoNCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcDJfczBfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3F1cHYzX3dyYXAyX3MwX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19xdXB2M193cmFwMl9zMV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgxZTI3NCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX1ZPVEVELAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMTQsCisJCS5lbmFibGVfbWFzayA9IEJJVCg1KSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19xdXB2M193cmFwMl9zMV9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfcXVwdjNfd3JhcDJfczFfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3F1cHYzX3dyYXAyX3MyX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDFlM2E0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFRfVk9URUQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg1MjAxNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDYpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAyX3MyX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMl9zMl9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcDJfczNfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MWU0ZDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDE0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoNyksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcDJfczNfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3F1cHYzX3dyYXAyX3MzX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19xdXB2M193cmFwMl9zNF9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgxZTYwNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX1ZPVEVELAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMTQsCisJCS5lbmFibGVfbWFzayA9IEJJVCg4KSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19xdXB2M193cmFwMl9zNF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfcXVwdjNfd3JhcDJfczRfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3F1cHYzX3dyYXAyX3M1X2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDFlNzM0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFRfVk9URUQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg1MjAxNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDkpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXAyX3M1X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY19xdXB2M193cmFwMl9zNV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcF8wX21fYWhiX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDE3MDA0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFRfVk9URUQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg1MjAwYywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDYpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3F1cHYzX3dyYXBfMF9tX2FoYl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfcXVwdjNfd3JhcF8wX3NfYWhiX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDE3MDA4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFRfVk9URUQsCisJLmh3Y2dfcmVnID0gMHgxNzAwOCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMGMsCisJCS5lbmFibGVfbWFzayA9IEJJVCg3KSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19xdXB2M193cmFwXzBfc19haGJfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3F1cHYzX3dyYXBfMV9tX2FoYl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgxODAwNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX1ZPVEVELAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMGMsCisJCS5lbmFibGVfbWFzayA9IEJJVCgyMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcF8xX21fYWhiX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19xdXB2M193cmFwXzFfc19haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTgwMDgsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuaHdjZ19yZWcgPSAweDE4MDA4LAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg1MjAwYywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDIxKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19xdXB2M193cmFwXzFfc19haGJfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3F1cHYzX3dyYXBfMl9tX2FoYl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgxZTAwNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX1ZPVEVELAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NTIwMTQsCisJCS5lbmFibGVfbWFzayA9IEJJVCgyKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19xdXB2M193cmFwXzJfbV9haGJfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3F1cHYzX3dyYXBfMl9zX2FoYl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgxZTAwOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX1ZPVEVELAorCS5od2NnX3JlZyA9IDB4MWUwMDgsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDE0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMSksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfcXVwdjNfd3JhcF8yX3NfYWhiX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19zZGNjMl9haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTQwMDgsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDE0MDA4LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2Nfc2RjYzJfYWhiX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY19zZGNjMl9hcHBzX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDE0MDA0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHgxNDAwNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3NkY2MyX2FwcHNfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3NkY2MyX2FwcHNfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3NkY2M0X2FoYl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgxNjAwOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4MTYwMDgsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY19zZGNjNF9haGJfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3NkY2M0X2FwcHNfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTYwMDQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDE2MDA0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2Nfc2RjYzRfYXBwc19jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2Nfc2RjYzRfYXBwc19jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2Nfc3lzX25vY19jcHVzc19haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NDgxOWMsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVF9WT1RFRCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDUyMDA0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2Nfc3lzX25vY19jcHVzc19haGJfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX2NwdXNzX2FoYl9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkvKiByZXF1aXJlZCBmb3IgY3B1c3MgKi8KKwkJCS5mbGFncyA9IENMS19JU19DUklUSUNBTCB8IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY190c2lmX2FoYl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgzNjAwNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4MzYwMDQsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY190c2lmX2FoYl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdHNpZl9pbmFjdGl2aXR5X3RpbWVyc19jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgzNjAwYywKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4MzYwMGMsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY190c2lmX2luYWN0aXZpdHlfdGltZXJzX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY190c2lmX3JlZl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgzNjAwOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4MzYwMDgsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY190c2lmX3JlZl9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdHNpZl9yZWZfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3Vmc19jYXJkX2FoYl9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg3NTAxNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5od2NnX3JlZyA9IDB4NzUwMTQsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDc1MDE0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdWZzX2NhcmRfYWhiX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY191ZnNfY2FyZF9heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NzUwMTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDc1MDEwLAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg3NTAxMCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3Vmc19jYXJkX2F4aV9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdWZzX2NhcmRfYXhpX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY191ZnNfY2FyZF9heGlfaHdfY3RsX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDc1MDEwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHg3NTAxMCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzUwMTAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgxKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191ZnNfY2FyZF9heGlfaHdfY3RsX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY191ZnNfY2FyZF9heGlfY2xrLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoX3NpbXBsZV9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdWZzX2NhcmRfY2xrcmVmX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDhjMDA0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg4YzAwNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3Vmc19jYXJkX2Nsa3JlZl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdWZzX2NhcmRfaWNlX2NvcmVfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NzUwNWMsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDc1MDVjLAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg3NTA1YywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3Vmc19jYXJkX2ljZV9jb3JlX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY191ZnNfY2FyZF9pY2VfY29yZV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdWZzX2NhcmRfaWNlX2NvcmVfaHdfY3RsX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDc1MDVjLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHg3NTA1YywKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzUwNWMsCisJCS5lbmFibGVfbWFzayA9IEJJVCgxKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191ZnNfY2FyZF9pY2VfY29yZV9od19jdGxfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3Vmc19jYXJkX2ljZV9jb3JlX2Nsay5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaF9zaW1wbGVfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3Vmc19jYXJkX3BoeV9hdXhfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NzUwOTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDc1MDkwLAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg3NTA5MCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3Vmc19jYXJkX3BoeV9hdXhfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3Vmc19jYXJkX3BoeV9hdXhfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3Vmc19jYXJkX3BoeV9hdXhfaHdfY3RsX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDc1MDkwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHg3NTA5MCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzUwOTAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgxKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191ZnNfY2FyZF9waHlfYXV4X2h3X2N0bF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdWZzX2NhcmRfcGh5X2F1eF9jbGsuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2hfc2ltcGxlX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY191ZnNfY2FyZF91bmlwcm9fY29yZV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg3NTA1OCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5od2NnX3JlZyA9IDB4NzUwNTgsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDc1MDU4LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdWZzX2NhcmRfdW5pcHJvX2NvcmVfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkmZ2NjX3Vmc19jYXJkX3VuaXByb19jb3JlX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY191ZnNfY2FyZF91bmlwcm9fY29yZV9od19jdGxfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NzUwNTgsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDc1MDU4LAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg3NTA1OCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDEpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3Vmc19jYXJkX3VuaXByb19jb3JlX2h3X2N0bF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdWZzX2NhcmRfdW5pcHJvX2NvcmVfY2xrLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoX3NpbXBsZV9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdWZzX21lbV9jbGtyZWZfY2xrID0geworCS5oYWx0X3JlZyA9IDB4OGMwMDAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDhjMDAwLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdWZzX21lbV9jbGtyZWZfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3Vmc19waHlfYWhiX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDc3MDE0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHg3NzAxNCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzcwMTQsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191ZnNfcGh5X2FoYl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdWZzX3BoeV9heGlfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NzcwMTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDc3MDEwLAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg3NzAxMCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3Vmc19waHlfYXhpX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJJmdjY191ZnNfcGh5X2F4aV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdWZzX3BoeV9heGlfaHdfY3RsX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDc3MDEwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHg3NzAxMCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzcwMTAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgxKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191ZnNfcGh5X2F4aV9od19jdGxfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3Vmc19waHlfYXhpX2Nsay5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaF9zaW1wbGVfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3Vmc19waHlfaWNlX2NvcmVfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NzcwNWMsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDc3MDVjLAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg3NzA1YywKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3Vmc19waHlfaWNlX2NvcmVfY2xrIiwKKwkJCS5wYXJlbnRfaHdzID0gKGNvbnN0IHN0cnVjdCBjbGtfaHcgKltdKXsKKwkJCQkgICAgICAmZ2NjX3Vmc19waHlfaWNlX2NvcmVfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3Vmc19waHlfaWNlX2NvcmVfaHdfY3RsX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDc3MDVjLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHg3NzA1YywKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzcwNWMsCisJCS5lbmFibGVfbWFzayA9IEJJVCgxKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191ZnNfcGh5X2ljZV9jb3JlX2h3X2N0bF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdWZzX3BoeV9pY2VfY29yZV9jbGsuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2hfc2ltcGxlX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY191ZnNfcGh5X3BoeV9hdXhfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NzcwOTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDc3MDkwLAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg3NzA5MCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3Vmc19waHlfcGh5X2F1eF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdWZzX3BoeV9waHlfYXV4X2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY191ZnNfcGh5X3BoeV9hdXhfaHdfY3RsX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDc3MDkwLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmh3Y2dfcmVnID0gMHg3NzA5MCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4NzcwOTAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgxKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191ZnNfcGh5X3BoeV9hdXhfaHdfY3RsX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY191ZnNfcGh5X3BoeV9hdXhfY2xrLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoX3NpbXBsZV9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdWZzX3BoeV91bmlwcm9fY29yZV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHg3NzA1OCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5od2NnX3JlZyA9IDB4NzcwNTgsCisJLmh3Y2dfYml0ID0gMSwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDc3MDU4LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdWZzX3BoeV91bmlwcm9fY29yZV9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSZnY2NfdWZzX3BoeV91bmlwcm9fY29yZV9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdWZzX3BoeV91bmlwcm9fY29yZV9od19jdGxfY2xrID0geworCS5oYWx0X3JlZyA9IDB4NzcwNTgsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuaHdjZ19yZWcgPSAweDc3MDU4LAorCS5od2NnX2JpdCA9IDEsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg3NzA1OCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDEpLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3Vmc19waHlfdW5pcHJvX2NvcmVfaHdfY3RsX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY191ZnNfcGh5X3VuaXByb19jb3JlX2Nsay5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaF9zaW1wbGVfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3VzYjMwX3ByaW1fbWFzdGVyX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweGYwMTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweGYwMTAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191c2IzMF9wcmltX21hc3Rlcl9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdXNiMzBfcHJpbV9tYXN0ZXJfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3VzYjMwX3ByaW1fbW9ja191dG1pX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweGYwMTgsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweGYwMTgsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191c2IzMF9wcmltX21vY2tfdXRtaV9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSZnY2NfdXNiMzBfcHJpbV9tb2NrX3V0bWlfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3VzYjMwX3ByaW1fc2xlZXBfY2xrID0geworCS5oYWx0X3JlZyA9IDB4ZjAxNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4ZjAxNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3VzYjMwX3ByaW1fc2xlZXBfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3VzYjMwX3NlY19tYXN0ZXJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTAwMTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDEwMDEwLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdXNiMzBfc2VjX21hc3Rlcl9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdXNiMzBfc2VjX21hc3Rlcl9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdXNiMzBfc2VjX21vY2tfdXRtaV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgxMDAxOCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4MTAwMTgsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191c2IzMF9zZWNfbW9ja191dG1pX2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJJmdjY191c2IzMF9zZWNfbW9ja191dG1pX2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY191c2IzMF9zZWNfc2xlZXBfY2xrID0geworCS5oYWx0X3JlZyA9IDB4MTAwMTQsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweDEwMDE0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdXNiMzBfc2VjX3NsZWVwX2NsayIsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY191c2IzX3ByaW1fY2xrcmVmX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDhjMDA4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg4YzAwOCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3VzYjNfcHJpbV9jbGtyZWZfY2xrIiwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3VzYjNfcHJpbV9waHlfYXV4X2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweGYwNTAsCisJLmhhbHRfY2hlY2sgPSBCUkFOQ0hfSEFMVCwKKwkuY2xrciA9IHsKKwkJLmVuYWJsZV9yZWcgPSAweGYwNTAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191c2IzX3ByaW1fcGh5X2F1eF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdXNiM19wcmltX3BoeV9hdXhfY2xrX3NyYy5jbGtyLmh3IH0sCisJCQkubnVtX3BhcmVudHMgPSAxLAorCQkJLmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCS5vcHMgPSAmY2xrX2JyYW5jaDJfb3BzLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsa19icmFuY2ggZ2NjX3VzYjNfcHJpbV9waHlfY29tX2F1eF9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHhmMDU0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHhmMDU0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdXNiM19wcmltX3BoeV9jb21fYXV4X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY191c2IzX3ByaW1fcGh5X2F1eF9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdXNiM19zZWNfY2xrcmVmX2NsayA9IHsKKwkuaGFsdF9yZWcgPSAweDhjMDI4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHg4YzAyOCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3VzYjNfc2VjX2Nsa3JlZl9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdXNiM19zZWNfcGh5X2F1eF9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgxMDA1MCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4MTAwNTAsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191c2IzX3NlY19waHlfYXV4X2NsayIsCisJCQkucGFyZW50X2h3cyA9IChjb25zdCBzdHJ1Y3QgY2xrX2h3ICpbXSl7CisJCQkJICAgICAgJmdjY191c2IzX3NlY19waHlfYXV4X2Nsa19zcmMuY2xrci5odyB9LAorCQkJLm51bV9wYXJlbnRzID0gMSwKKwkJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY191c2IzX3NlY19waHlfY29tX2F1eF9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHgxMDA1NCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxULAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4MTAwNTQsCisJCS5lbmFibGVfbWFzayA9IEJJVCgwKSwKKwkJLmh3LmluaXQgPSAmKHN0cnVjdCBjbGtfaW5pdF9kYXRhKXsKKwkJCS5uYW1lID0gImdjY191c2IzX3NlY19waHlfY29tX2F1eF9jbGsiLAorCQkJLnBhcmVudF9od3MgPSAoY29uc3Qgc3RydWN0IGNsa19odyAqW10peworCQkJCSAgICAgICZnY2NfdXNiM19zZWNfcGh5X2F1eF9jbGtfc3JjLmNsa3IuaHcgfSwKKwkJCS5udW1fcGFyZW50cyA9IDEsCisJCQkuZmxhZ3MgPSBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKKy8qCisgKiBDbG9jayBPTiBkZXBlbmRzIG9uIGV4dGVybmFsIHBhcmVudCAnY29uZmlnIG5vYycsIHNvIGNhbnQgcG9sbAorICogZGVsYXkgYW5kIGFsc28gbWFyayBhcyBjcnRpdGljYWwgZm9yIHZpZGVvIGJvb3QKKyAqLworc3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIGdjY192aWRlb19haGJfY2xrID0geworCS5oYWx0X3JlZyA9IDB4YjAwNCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX0RFTEFZLAorCS5od2NnX3JlZyA9IDB4YjAwNCwKKwkuaHdjZ19iaXQgPSAxLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4YjAwNCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3ZpZGVvX2FoYl9jbGsiLAorCQkJLmZsYWdzID0gQ0xLX0lTX0NSSVRJQ0FMLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdmlkZW9fYXhpMF9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHhiMDI0LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHhiMDI0LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdmlkZW9fYXhpMF9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdmlkZW9fYXhpMV9jbGsgPSB7CisJLmhhbHRfcmVnID0gMHhiMDI4LAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHhiMDI4LAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdmlkZW9fYXhpMV9jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdmlkZW9fYXhpY19jbGsgPSB7CisJLmhhbHRfcmVnID0gMHhiMDJjLAorCS5oYWx0X2NoZWNrID0gQlJBTkNIX0hBTFQsCisJLmNsa3IgPSB7CisJCS5lbmFibGVfcmVnID0gMHhiMDJjLAorCQkuZW5hYmxlX21hc2sgPSBCSVQoMCksCisJCS5ody5pbml0ID0gJihzdHJ1Y3QgY2xrX2luaXRfZGF0YSl7CisJCQkubmFtZSA9ICJnY2NfdmlkZW9fYXhpY19jbGsiLAorCQkJLm9wcyA9ICZjbGtfYnJhbmNoMl9vcHMsCisJCX0sCisJfSwKK307CisKKy8qIFhPIGNyaXRpY2FsIGlucHV0IHRvIHZpZGVvLCBzbyBubyBuZWVkIHRvIHBvbGwgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrX2JyYW5jaCBnY2NfdmlkZW9feG9fY2xrID0geworCS5oYWx0X3JlZyA9IDB4YjA0MCwKKwkuaGFsdF9jaGVjayA9IEJSQU5DSF9IQUxUX0RFTEFZLAorCS5jbGtyID0geworCQkuZW5hYmxlX3JlZyA9IDB4YjA0MCwKKwkJLmVuYWJsZV9tYXNrID0gQklUKDApLAorCQkuaHcuaW5pdCA9ICYoc3RydWN0IGNsa19pbml0X2RhdGEpeworCQkJLm5hbWUgPSAiZ2NjX3ZpZGVvX3hvX2NsayIsCisJCQkuZmxhZ3MgPSBDTEtfSVNfQ1JJVElDQUwsCisJCQkub3BzID0gJmNsa19icmFuY2gyX29wcywKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGtfcmVnbWFwICpnY2Nfc204MTUwX2Nsb2Nrc1tdID0geworCVtHQ0NfQUdHUkVfTk9DX1BDSUVfVEJVX0NMS10gPSAmZ2NjX2FnZ3JlX25vY19wY2llX3RidV9jbGsuY2xrciwKKwlbR0NDX0FHR1JFX1VGU19DQVJEX0FYSV9DTEtdID0gJmdjY19hZ2dyZV91ZnNfY2FyZF9heGlfY2xrLmNsa3IsCisJW0dDQ19BR0dSRV9VRlNfQ0FSRF9BWElfSFdfQ1RMX0NMS10gPQorCQkmZ2NjX2FnZ3JlX3Vmc19jYXJkX2F4aV9od19jdGxfY2xrLmNsa3IsCisJW0dDQ19BR0dSRV9VRlNfUEhZX0FYSV9DTEtdID0gJmdjY19hZ2dyZV91ZnNfcGh5X2F4aV9jbGsuY2xrciwKKwlbR0NDX0FHR1JFX1VGU19QSFlfQVhJX0hXX0NUTF9DTEtdID0KKwkJJmdjY19hZ2dyZV91ZnNfcGh5X2F4aV9od19jdGxfY2xrLmNsa3IsCisJW0dDQ19BR0dSRV9VU0IzX1BSSU1fQVhJX0NMS10gPSAmZ2NjX2FnZ3JlX3VzYjNfcHJpbV9heGlfY2xrLmNsa3IsCisJW0dDQ19BR0dSRV9VU0IzX1NFQ19BWElfQ0xLXSA9ICZnY2NfYWdncmVfdXNiM19zZWNfYXhpX2Nsay5jbGtyLAorCVtHQ0NfQk9PVF9ST01fQUhCX0NMS10gPSAmZ2NjX2Jvb3Rfcm9tX2FoYl9jbGsuY2xrciwKKwlbR0NDX0NBTUVSQV9BSEJfQ0xLXSA9ICZnY2NfY2FtZXJhX2FoYl9jbGsuY2xrciwKKwlbR0NDX0NBTUVSQV9IRl9BWElfQ0xLXSA9ICZnY2NfY2FtZXJhX2hmX2F4aV9jbGsuY2xrciwKKwlbR0NDX0NBTUVSQV9TRl9BWElfQ0xLXSA9ICZnY2NfY2FtZXJhX3NmX2F4aV9jbGsuY2xrciwKKwlbR0NDX0NBTUVSQV9YT19DTEtdID0gJmdjY19jYW1lcmFfeG9fY2xrLmNsa3IsCisJW0dDQ19DRkdfTk9DX1VTQjNfUFJJTV9BWElfQ0xLXSA9ICZnY2NfY2ZnX25vY191c2IzX3ByaW1fYXhpX2Nsay5jbGtyLAorCVtHQ0NfQ0ZHX05PQ19VU0IzX1NFQ19BWElfQ0xLXSA9ICZnY2NfY2ZnX25vY191c2IzX3NlY19heGlfY2xrLmNsa3IsCisJW0dDQ19DUFVTU19BSEJfQ0xLXSA9ICZnY2NfY3B1c3NfYWhiX2Nsay5jbGtyLAorCVtHQ0NfQ1BVU1NfQUhCX0NMS19TUkNdID0gJmdjY19jcHVzc19haGJfY2xrX3NyYy5jbGtyLAorCVtHQ0NfQ1BVU1NfRFZNX0JVU19DTEtdID0gJmdjY19jcHVzc19kdm1fYnVzX2Nsay5jbGtyLAorCVtHQ0NfQ1BVU1NfR05PQ19DTEtdID0gJmdjY19jcHVzc19nbm9jX2Nsay5jbGtyLAorCVtHQ0NfQ1BVU1NfUkJDUFJfQ0xLXSA9ICZnY2NfY3B1c3NfcmJjcHJfY2xrLmNsa3IsCisJW0dDQ19ERFJTU19HUFVfQVhJX0NMS10gPSAmZ2NjX2RkcnNzX2dwdV9heGlfY2xrLmNsa3IsCisJW0dDQ19ESVNQX0FIQl9DTEtdID0gJmdjY19kaXNwX2FoYl9jbGsuY2xrciwKKwlbR0NDX0RJU1BfSEZfQVhJX0NMS10gPSAmZ2NjX2Rpc3BfaGZfYXhpX2Nsay5jbGtyLAorCVtHQ0NfRElTUF9TRl9BWElfQ0xLXSA9ICZnY2NfZGlzcF9zZl9heGlfY2xrLmNsa3IsCisJW0dDQ19ESVNQX1hPX0NMS10gPSAmZ2NjX2Rpc3BfeG9fY2xrLmNsa3IsCisJW0dDQ19FTUFDX0FYSV9DTEtdID0gJmdjY19lbWFjX2F4aV9jbGsuY2xrciwKKwlbR0NDX0VNQUNfUFRQX0NMS10gPSAmZ2NjX2VtYWNfcHRwX2Nsay5jbGtyLAorCVtHQ0NfRU1BQ19QVFBfQ0xLX1NSQ10gPSAmZ2NjX2VtYWNfcHRwX2Nsa19zcmMuY2xrciwKKwlbR0NDX0VNQUNfUkdNSUlfQ0xLXSA9ICZnY2NfZW1hY19yZ21paV9jbGsuY2xrciwKKwlbR0NDX0VNQUNfUkdNSUlfQ0xLX1NSQ10gPSAmZ2NjX2VtYWNfcmdtaWlfY2xrX3NyYy5jbGtyLAorCVtHQ0NfRU1BQ19TTFZfQUhCX0NMS10gPSAmZ2NjX2VtYWNfc2x2X2FoYl9jbGsuY2xrciwKKwlbR0NDX0dQMV9DTEtdID0gJmdjY19ncDFfY2xrLmNsa3IsCisJW0dDQ19HUDFfQ0xLX1NSQ10gPSAmZ2NjX2dwMV9jbGtfc3JjLmNsa3IsCisJW0dDQ19HUDJfQ0xLXSA9ICZnY2NfZ3AyX2Nsay5jbGtyLAorCVtHQ0NfR1AyX0NMS19TUkNdID0gJmdjY19ncDJfY2xrX3NyYy5jbGtyLAorCVtHQ0NfR1AzX0NMS10gPSAmZ2NjX2dwM19jbGsuY2xrciwKKwlbR0NDX0dQM19DTEtfU1JDXSA9ICZnY2NfZ3AzX2Nsa19zcmMuY2xrciwKKwlbR0NDX0dQVV9DRkdfQUhCX0NMS10gPSAmZ2NjX2dwdV9jZmdfYWhiX2Nsay5jbGtyLAorCVtHQ0NfR1BVX0lSRUZfQ0xLXSA9ICZnY2NfZ3B1X2lyZWZfY2xrLmNsa3IsCisJW0dDQ19HUFVfTUVNTk9DX0dGWF9DTEtdID0gJmdjY19ncHVfbWVtbm9jX2dmeF9jbGsuY2xrciwKKwlbR0NDX0dQVV9TTk9DX0RWTV9HRlhfQ0xLXSA9ICZnY2NfZ3B1X3Nub2NfZHZtX2dmeF9jbGsuY2xrciwKKwlbR0NDX05QVV9BVF9DTEtdID0gJmdjY19ucHVfYXRfY2xrLmNsa3IsCisJW0dDQ19OUFVfQVhJX0NMS10gPSAmZ2NjX25wdV9heGlfY2xrLmNsa3IsCisJW0dDQ19OUFVfQ0ZHX0FIQl9DTEtdID0gJmdjY19ucHVfY2ZnX2FoYl9jbGsuY2xrciwKKwlbR0NDX05QVV9UUklHX0NMS10gPSAmZ2NjX25wdV90cmlnX2Nsay5jbGtyLAorCVtHQ0NfUENJRTBfUEhZX1JFRkdFTl9DTEtdID0gJmdjY19wY2llMF9waHlfcmVmZ2VuX2Nsay5jbGtyLAorCVtHQ0NfUENJRTFfUEhZX1JFRkdFTl9DTEtdID0gJmdjY19wY2llMV9waHlfcmVmZ2VuX2Nsay5jbGtyLAorCVtHQ0NfUENJRV8wX0FVWF9DTEtdID0gJmdjY19wY2llXzBfYXV4X2Nsay5jbGtyLAorCVtHQ0NfUENJRV8wX0FVWF9DTEtfU1JDXSA9ICZnY2NfcGNpZV8wX2F1eF9jbGtfc3JjLmNsa3IsCisJW0dDQ19QQ0lFXzBfQ0ZHX0FIQl9DTEtdID0gJmdjY19wY2llXzBfY2ZnX2FoYl9jbGsuY2xrciwKKwlbR0NDX1BDSUVfMF9DTEtSRUZfQ0xLXSA9ICZnY2NfcGNpZV8wX2Nsa3JlZl9jbGsuY2xrciwKKwlbR0NDX1BDSUVfMF9NU1RSX0FYSV9DTEtdID0gJmdjY19wY2llXzBfbXN0cl9heGlfY2xrLmNsa3IsCisJW0dDQ19QQ0lFXzBfUElQRV9DTEtdID0gJmdjY19wY2llXzBfcGlwZV9jbGsuY2xrciwKKwlbR0NDX1BDSUVfMF9TTFZfQVhJX0NMS10gPSAmZ2NjX3BjaWVfMF9zbHZfYXhpX2Nsay5jbGtyLAorCVtHQ0NfUENJRV8wX1NMVl9RMkFfQVhJX0NMS10gPSAmZ2NjX3BjaWVfMF9zbHZfcTJhX2F4aV9jbGsuY2xrciwKKwlbR0NDX1BDSUVfMV9BVVhfQ0xLXSA9ICZnY2NfcGNpZV8xX2F1eF9jbGsuY2xrciwKKwlbR0NDX1BDSUVfMV9BVVhfQ0xLX1NSQ10gPSAmZ2NjX3BjaWVfMV9hdXhfY2xrX3NyYy5jbGtyLAorCVtHQ0NfUENJRV8xX0NGR19BSEJfQ0xLXSA9ICZnY2NfcGNpZV8xX2NmZ19haGJfY2xrLmNsa3IsCisJW0dDQ19QQ0lFXzFfQ0xLUkVGX0NMS10gPSAmZ2NjX3BjaWVfMV9jbGtyZWZfY2xrLmNsa3IsCisJW0dDQ19QQ0lFXzFfTVNUUl9BWElfQ0xLXSA9ICZnY2NfcGNpZV8xX21zdHJfYXhpX2Nsay5jbGtyLAorCVtHQ0NfUENJRV8xX1BJUEVfQ0xLXSA9ICZnY2NfcGNpZV8xX3BpcGVfY2xrLmNsa3IsCisJW0dDQ19QQ0lFXzFfU0xWX0FYSV9DTEtdID0gJmdjY19wY2llXzFfc2x2X2F4aV9jbGsuY2xrciwKKwlbR0NDX1BDSUVfMV9TTFZfUTJBX0FYSV9DTEtdID0gJmdjY19wY2llXzFfc2x2X3EyYV9heGlfY2xrLmNsa3IsCisJW0dDQ19QQ0lFX1BIWV9BVVhfQ0xLXSA9ICZnY2NfcGNpZV9waHlfYXV4X2Nsay5jbGtyLAorCVtHQ0NfUENJRV9QSFlfUkVGR0VOX0NMS19TUkNdID0gJmdjY19wY2llX3BoeV9yZWZnZW5fY2xrX3NyYy5jbGtyLAorCVtHQ0NfUERNMl9DTEtdID0gJmdjY19wZG0yX2Nsay5jbGtyLAorCVtHQ0NfUERNMl9DTEtfU1JDXSA9ICZnY2NfcGRtMl9jbGtfc3JjLmNsa3IsCisJW0dDQ19QRE1fQUhCX0NMS10gPSAmZ2NjX3BkbV9haGJfY2xrLmNsa3IsCisJW0dDQ19QRE1fWE80X0NMS10gPSAmZ2NjX3BkbV94bzRfY2xrLmNsa3IsCisJW0dDQ19QUk5HX0FIQl9DTEtdID0gJmdjY19wcm5nX2FoYl9jbGsuY2xrciwKKwlbR0NDX1FNSVBfQ0FNRVJBX05SVF9BSEJfQ0xLXSA9ICZnY2NfcW1pcF9jYW1lcmFfbnJ0X2FoYl9jbGsuY2xrciwKKwlbR0NDX1FNSVBfQ0FNRVJBX1JUX0FIQl9DTEtdID0gJmdjY19xbWlwX2NhbWVyYV9ydF9haGJfY2xrLmNsa3IsCisJW0dDQ19RTUlQX0RJU1BfQUhCX0NMS10gPSAmZ2NjX3FtaXBfZGlzcF9haGJfY2xrLmNsa3IsCisJW0dDQ19RTUlQX1ZJREVPX0NWUF9BSEJfQ0xLXSA9ICZnY2NfcW1pcF92aWRlb19jdnBfYWhiX2Nsay5jbGtyLAorCVtHQ0NfUU1JUF9WSURFT19WQ09ERUNfQUhCX0NMS10gPSAmZ2NjX3FtaXBfdmlkZW9fdmNvZGVjX2FoYl9jbGsuY2xrciwKKwlbR0NDX1FTUElfQ05PQ19QRVJJUEhfQUhCX0NMS10gPSAmZ2NjX3FzcGlfY25vY19wZXJpcGhfYWhiX2Nsay5jbGtyLAorCVtHQ0NfUVNQSV9DT1JFX0NMS10gPSAmZ2NjX3FzcGlfY29yZV9jbGsuY2xrciwKKwlbR0NDX1FTUElfQ09SRV9DTEtfU1JDXSA9ICZnY2NfcXNwaV9jb3JlX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAwX1MwX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDBfUzBfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAwX3MwX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAwX1MxX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAwX3MxX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDBfUzFfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAwX3MxX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAwX1MyX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAwX3MyX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDBfUzJfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAwX3MyX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAwX1MzX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAwX3MzX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDBfUzNfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAwX3MzX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAwX1M0X0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAwX3M0X2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDBfUzRfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAwX3M0X2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAwX1M1X0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAwX3M1X2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDBfUzVfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAwX3M1X2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAwX1M2X0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAwX3M2X2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDBfUzZfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAwX3M2X2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAwX1M3X0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAwX3M3X2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDBfUzdfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAwX3M3X2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAxX1MwX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAxX3MwX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDFfUzBfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAxX3MwX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAxX1MxX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAxX3MxX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDFfUzFfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAxX3MxX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAxX1MyX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAxX3MyX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDFfUzJfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAxX3MyX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAxX1MzX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAxX3MzX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDFfUzNfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAxX3MzX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAxX1M0X0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAxX3M0X2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDFfUzRfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAxX3M0X2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAxX1M1X0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAxX3M1X2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDFfUzVfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAxX3M1X2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAyX1MwX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAyX3MwX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDJfUzBfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAyX3MwX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAyX1MxX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAyX3MxX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDJfUzFfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAyX3MxX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAyX1MyX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAyX3MyX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDJfUzJfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAyX3MyX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAyX1MzX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAyX3MzX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDJfUzNfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAyX3MzX2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAyX1M0X0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAyX3M0X2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDJfUzRfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAyX3M0X2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVAyX1M1X0NMS10gPSAmZ2NjX3F1cHYzX3dyYXAyX3M1X2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUDJfUzVfQ0xLX1NSQ10gPSAmZ2NjX3F1cHYzX3dyYXAyX3M1X2Nsa19zcmMuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVBfMF9NX0FIQl9DTEtdID0gJmdjY19xdXB2M193cmFwXzBfbV9haGJfY2xrLmNsa3IsCisJW0dDQ19RVVBWM19XUkFQXzBfU19BSEJfQ0xLXSA9ICZnY2NfcXVwdjNfd3JhcF8wX3NfYWhiX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUF8xX01fQUhCX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXBfMV9tX2FoYl9jbGsuY2xrciwKKwlbR0NDX1FVUFYzX1dSQVBfMV9TX0FIQl9DTEtdID0gJmdjY19xdXB2M193cmFwXzFfc19haGJfY2xrLmNsa3IsCisJW0dDQ19RVVBWM19XUkFQXzJfTV9BSEJfQ0xLXSA9ICZnY2NfcXVwdjNfd3JhcF8yX21fYWhiX2Nsay5jbGtyLAorCVtHQ0NfUVVQVjNfV1JBUF8yX1NfQUhCX0NMS10gPSAmZ2NjX3F1cHYzX3dyYXBfMl9zX2FoYl9jbGsuY2xrciwKKwlbR0NDX1NEQ0MyX0FIQl9DTEtdID0gJmdjY19zZGNjMl9haGJfY2xrLmNsa3IsCisJW0dDQ19TRENDMl9BUFBTX0NMS10gPSAmZ2NjX3NkY2MyX2FwcHNfY2xrLmNsa3IsCisJW0dDQ19TRENDMl9BUFBTX0NMS19TUkNdID0gJmdjY19zZGNjMl9hcHBzX2Nsa19zcmMuY2xrciwKKwlbR0NDX1NEQ0M0X0FIQl9DTEtdID0gJmdjY19zZGNjNF9haGJfY2xrLmNsa3IsCisJW0dDQ19TRENDNF9BUFBTX0NMS10gPSAmZ2NjX3NkY2M0X2FwcHNfY2xrLmNsa3IsCisJW0dDQ19TRENDNF9BUFBTX0NMS19TUkNdID0gJmdjY19zZGNjNF9hcHBzX2Nsa19zcmMuY2xrciwKKwlbR0NDX1NZU19OT0NfQ1BVU1NfQUhCX0NMS10gPSAmZ2NjX3N5c19ub2NfY3B1c3NfYWhiX2Nsay5jbGtyLAorCVtHQ0NfVFNJRl9BSEJfQ0xLXSA9ICZnY2NfdHNpZl9haGJfY2xrLmNsa3IsCisJW0dDQ19UU0lGX0lOQUNUSVZJVFlfVElNRVJTX0NMS10gPSAmZ2NjX3RzaWZfaW5hY3Rpdml0eV90aW1lcnNfY2xrLmNsa3IsCisJW0dDQ19UU0lGX1JFRl9DTEtdID0gJmdjY190c2lmX3JlZl9jbGsuY2xrciwKKwlbR0NDX1RTSUZfUkVGX0NMS19TUkNdID0gJmdjY190c2lmX3JlZl9jbGtfc3JjLmNsa3IsCisJW0dDQ19VRlNfQ0FSRF9BSEJfQ0xLXSA9ICZnY2NfdWZzX2NhcmRfYWhiX2Nsay5jbGtyLAorCVtHQ0NfVUZTX0NBUkRfQVhJX0NMS10gPSAmZ2NjX3Vmc19jYXJkX2F4aV9jbGsuY2xrciwKKwlbR0NDX1VGU19DQVJEX0FYSV9DTEtfU1JDXSA9ICZnY2NfdWZzX2NhcmRfYXhpX2Nsa19zcmMuY2xrciwKKwlbR0NDX1VGU19DQVJEX0FYSV9IV19DVExfQ0xLXSA9ICZnY2NfdWZzX2NhcmRfYXhpX2h3X2N0bF9jbGsuY2xrciwKKwlbR0NDX1VGU19DQVJEX0NMS1JFRl9DTEtdID0gJmdjY191ZnNfY2FyZF9jbGtyZWZfY2xrLmNsa3IsCisJW0dDQ19VRlNfQ0FSRF9JQ0VfQ09SRV9DTEtdID0gJmdjY191ZnNfY2FyZF9pY2VfY29yZV9jbGsuY2xrciwKKwlbR0NDX1VGU19DQVJEX0lDRV9DT1JFX0NMS19TUkNdID0gJmdjY191ZnNfY2FyZF9pY2VfY29yZV9jbGtfc3JjLmNsa3IsCisJW0dDQ19VRlNfQ0FSRF9JQ0VfQ09SRV9IV19DVExfQ0xLXSA9CisJCSZnY2NfdWZzX2NhcmRfaWNlX2NvcmVfaHdfY3RsX2Nsay5jbGtyLAorCVtHQ0NfVUZTX0NBUkRfUEhZX0FVWF9DTEtdID0gJmdjY191ZnNfY2FyZF9waHlfYXV4X2Nsay5jbGtyLAorCVtHQ0NfVUZTX0NBUkRfUEhZX0FVWF9DTEtfU1JDXSA9ICZnY2NfdWZzX2NhcmRfcGh5X2F1eF9jbGtfc3JjLmNsa3IsCisJW0dDQ19VRlNfQ0FSRF9QSFlfQVVYX0hXX0NUTF9DTEtdID0KKwkJJmdjY191ZnNfY2FyZF9waHlfYXV4X2h3X2N0bF9jbGsuY2xrciwKKwlbR0NDX1VGU19DQVJEX1VOSVBST19DT1JFX0NMS10gPSAmZ2NjX3Vmc19jYXJkX3VuaXByb19jb3JlX2Nsay5jbGtyLAorCVtHQ0NfVUZTX0NBUkRfVU5JUFJPX0NPUkVfQ0xLX1NSQ10gPQorCQkmZ2NjX3Vmc19jYXJkX3VuaXByb19jb3JlX2Nsa19zcmMuY2xrciwKKwlbR0NDX1VGU19DQVJEX1VOSVBST19DT1JFX0hXX0NUTF9DTEtdID0KKwkJJmdjY191ZnNfY2FyZF91bmlwcm9fY29yZV9od19jdGxfY2xrLmNsa3IsCisJW0dDQ19VRlNfTUVNX0NMS1JFRl9DTEtdID0gJmdjY191ZnNfbWVtX2Nsa3JlZl9jbGsuY2xrciwKKwlbR0NDX1VGU19QSFlfQUhCX0NMS10gPSAmZ2NjX3Vmc19waHlfYWhiX2Nsay5jbGtyLAorCVtHQ0NfVUZTX1BIWV9BWElfQ0xLXSA9ICZnY2NfdWZzX3BoeV9heGlfY2xrLmNsa3IsCisJW0dDQ19VRlNfUEhZX0FYSV9DTEtfU1JDXSA9ICZnY2NfdWZzX3BoeV9heGlfY2xrX3NyYy5jbGtyLAorCVtHQ0NfVUZTX1BIWV9BWElfSFdfQ1RMX0NMS10gPSAmZ2NjX3Vmc19waHlfYXhpX2h3X2N0bF9jbGsuY2xrciwKKwlbR0NDX1VGU19QSFlfSUNFX0NPUkVfQ0xLXSA9ICZnY2NfdWZzX3BoeV9pY2VfY29yZV9jbGsuY2xrciwKKwlbR0NDX1VGU19QSFlfSUNFX0NPUkVfQ0xLX1NSQ10gPSAmZ2NjX3Vmc19waHlfaWNlX2NvcmVfY2xrX3NyYy5jbGtyLAorCVtHQ0NfVUZTX1BIWV9JQ0VfQ09SRV9IV19DVExfQ0xLXSA9CisJCSZnY2NfdWZzX3BoeV9pY2VfY29yZV9od19jdGxfY2xrLmNsa3IsCisJW0dDQ19VRlNfUEhZX1BIWV9BVVhfQ0xLXSA9ICZnY2NfdWZzX3BoeV9waHlfYXV4X2Nsay5jbGtyLAorCVtHQ0NfVUZTX1BIWV9QSFlfQVVYX0NMS19TUkNdID0gJmdjY191ZnNfcGh5X3BoeV9hdXhfY2xrX3NyYy5jbGtyLAorCVtHQ0NfVUZTX1BIWV9QSFlfQVVYX0hXX0NUTF9DTEtdID0gJmdjY191ZnNfcGh5X3BoeV9hdXhfaHdfY3RsX2Nsay5jbGtyLAorCVtHQ0NfVUZTX1BIWV9VTklQUk9fQ09SRV9DTEtdID0gJmdjY191ZnNfcGh5X3VuaXByb19jb3JlX2Nsay5jbGtyLAorCVtHQ0NfVUZTX1BIWV9VTklQUk9fQ09SRV9DTEtfU1JDXSA9CisJCSZnY2NfdWZzX3BoeV91bmlwcm9fY29yZV9jbGtfc3JjLmNsa3IsCisJW0dDQ19VRlNfUEhZX1VOSVBST19DT1JFX0hXX0NUTF9DTEtdID0KKwkJJmdjY191ZnNfcGh5X3VuaXByb19jb3JlX2h3X2N0bF9jbGsuY2xrciwKKwlbR0NDX1VTQjMwX1BSSU1fTUFTVEVSX0NMS10gPSAmZ2NjX3VzYjMwX3ByaW1fbWFzdGVyX2Nsay5jbGtyLAorCVtHQ0NfVVNCMzBfUFJJTV9NQVNURVJfQ0xLX1NSQ10gPSAmZ2NjX3VzYjMwX3ByaW1fbWFzdGVyX2Nsa19zcmMuY2xrciwKKwlbR0NDX1VTQjMwX1BSSU1fTU9DS19VVE1JX0NMS10gPSAmZ2NjX3VzYjMwX3ByaW1fbW9ja191dG1pX2Nsay5jbGtyLAorCVtHQ0NfVVNCMzBfUFJJTV9NT0NLX1VUTUlfQ0xLX1NSQ10gPQorCQkmZ2NjX3VzYjMwX3ByaW1fbW9ja191dG1pX2Nsa19zcmMuY2xrciwKKwlbR0NDX1VTQjMwX1BSSU1fU0xFRVBfQ0xLXSA9ICZnY2NfdXNiMzBfcHJpbV9zbGVlcF9jbGsuY2xrciwKKwlbR0NDX1VTQjMwX1NFQ19NQVNURVJfQ0xLXSA9ICZnY2NfdXNiMzBfc2VjX21hc3Rlcl9jbGsuY2xrciwKKwlbR0NDX1VTQjMwX1NFQ19NQVNURVJfQ0xLX1NSQ10gPSAmZ2NjX3VzYjMwX3NlY19tYXN0ZXJfY2xrX3NyYy5jbGtyLAorCVtHQ0NfVVNCMzBfU0VDX01PQ0tfVVRNSV9DTEtdID0gJmdjY191c2IzMF9zZWNfbW9ja191dG1pX2Nsay5jbGtyLAorCVtHQ0NfVVNCMzBfU0VDX01PQ0tfVVRNSV9DTEtfU1JDXSA9CisJCSZnY2NfdXNiMzBfc2VjX21vY2tfdXRtaV9jbGtfc3JjLmNsa3IsCisJW0dDQ19VU0IzMF9TRUNfU0xFRVBfQ0xLXSA9ICZnY2NfdXNiMzBfc2VjX3NsZWVwX2Nsay5jbGtyLAorCVtHQ0NfVVNCM19QUklNX0NMS1JFRl9DTEtdID0gJmdjY191c2IzX3ByaW1fY2xrcmVmX2Nsay5jbGtyLAorCVtHQ0NfVVNCM19QUklNX1BIWV9BVVhfQ0xLXSA9ICZnY2NfdXNiM19wcmltX3BoeV9hdXhfY2xrLmNsa3IsCisJW0dDQ19VU0IzX1BSSU1fUEhZX0FVWF9DTEtfU1JDXSA9ICZnY2NfdXNiM19wcmltX3BoeV9hdXhfY2xrX3NyYy5jbGtyLAorCVtHQ0NfVVNCM19QUklNX1BIWV9DT01fQVVYX0NMS10gPSAmZ2NjX3VzYjNfcHJpbV9waHlfY29tX2F1eF9jbGsuY2xrciwKKwlbR0NDX1VTQjNfU0VDX0NMS1JFRl9DTEtdID0gJmdjY191c2IzX3NlY19jbGtyZWZfY2xrLmNsa3IsCisJW0dDQ19VU0IzX1NFQ19QSFlfQVVYX0NMS10gPSAmZ2NjX3VzYjNfc2VjX3BoeV9hdXhfY2xrLmNsa3IsCisJW0dDQ19VU0IzX1NFQ19QSFlfQVVYX0NMS19TUkNdID0gJmdjY191c2IzX3NlY19waHlfYXV4X2Nsa19zcmMuY2xrciwKKwlbR0NDX1VTQjNfU0VDX1BIWV9DT01fQVVYX0NMS10gPSAmZ2NjX3VzYjNfc2VjX3BoeV9jb21fYXV4X2Nsay5jbGtyLAorCVtHQ0NfVklERU9fQUhCX0NMS10gPSAmZ2NjX3ZpZGVvX2FoYl9jbGsuY2xrciwKKwlbR0NDX1ZJREVPX0FYSTBfQ0xLXSA9ICZnY2NfdmlkZW9fYXhpMF9jbGsuY2xrciwKKwlbR0NDX1ZJREVPX0FYSTFfQ0xLXSA9ICZnY2NfdmlkZW9fYXhpMV9jbGsuY2xrciwKKwlbR0NDX1ZJREVPX0FYSUNfQ0xLXSA9ICZnY2NfdmlkZW9fYXhpY19jbGsuY2xrciwKKwlbR0NDX1ZJREVPX1hPX0NMS10gPSAmZ2NjX3ZpZGVvX3hvX2Nsay5jbGtyLAorCVtHUExMMF0gPSAmZ3BsbDAuY2xrciwKKwlbR1BMTDBfT1VUX0VWRU5dID0gJmdwbGwwX291dF9ldmVuLmNsa3IsCisJW0dQTEw3XSA9ICZncGxsNy5jbGtyLAorCVtHUExMOV0gPSAmZ3BsbDkuY2xrciwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcWNvbV9yZXNldF9tYXAgZ2NjX3NtODE1MF9yZXNldHNbXSA9IHsKKwlbR0NDX0VNQUNfQkNSXSA9IHsgMHg2MDAwIH0sCisJW0dDQ19HUFVfQkNSXSA9IHsgMHg3MTAwMCB9LAorCVtHQ0NfTU1TU19CQ1JdID0geyAweGIwMDAgfSwKKwlbR0NDX05QVV9CQ1JdID0geyAweDRkMDAwIH0sCisJW0dDQ19QQ0lFXzBfQkNSXSA9IHsgMHg2YjAwMCB9LAorCVtHQ0NfUENJRV8wX1BIWV9CQ1JdID0geyAweDZjMDFjIH0sCisJW0dDQ19QQ0lFXzFfQkNSXSA9IHsgMHg4ZDAwMCB9LAorCVtHQ0NfUENJRV8xX1BIWV9CQ1JdID0geyAweDhlMDFjIH0sCisJW0dDQ19QQ0lFX1BIWV9CQ1JdID0geyAweDZmMDAwIH0sCisJW0dDQ19QRE1fQkNSXSA9IHsgMHgzMzAwMCB9LAorCVtHQ0NfUFJOR19CQ1JdID0geyAweDM0MDAwIH0sCisJW0dDQ19RU1BJX0JDUl0gPSB7IDB4MjQwMDggfSwKKwlbR0NDX1FVUFYzX1dSQVBQRVJfMF9CQ1JdID0geyAweDE3MDAwIH0sCisJW0dDQ19RVVBWM19XUkFQUEVSXzFfQkNSXSA9IHsgMHgxODAwMCB9LAorCVtHQ0NfUVVQVjNfV1JBUFBFUl8yX0JDUl0gPSB7IDB4MWUwMDAgfSwKKwlbR0NDX1FVU0IyUEhZX1BSSU1fQkNSXSA9IHsgMHgxMjAwMCB9LAorCVtHQ0NfUVVTQjJQSFlfU0VDX0JDUl0gPSB7IDB4MTIwMDQgfSwKKwlbR0NDX1VTQjNfUEhZX1BSSU1fQkNSXSA9IHsgMHg1MDAwMCB9LAorCVtHQ0NfVVNCM19EUF9QSFlfUFJJTV9CQ1JdID0geyAweDUwMDA4IH0sCisJW0dDQ19VU0IzX1BIWV9TRUNfQkNSXSA9IHsgMHg1MDAwYyB9LAorCVtHQ0NfVVNCM1BIWV9QSFlfU0VDX0JDUl0gPSB7IDB4NTAwMTAgfSwKKwlbR0NDX1NEQ0MyX0JDUl0gPSB7IDB4MTQwMDAgfSwKKwlbR0NDX1NEQ0M0X0JDUl0gPSB7IDB4MTYwMDAgfSwKKwlbR0NDX1RTSUZfQkNSXSA9IHsgMHgzNjAwMCB9LAorCVtHQ0NfVUZTX0NBUkRfQkNSXSA9IHsgMHg3NTAwMCB9LAorCVtHQ0NfVUZTX1BIWV9CQ1JdID0geyAweDc3MDAwIH0sCisJW0dDQ19VU0IzMF9QUklNX0JDUl0gPSB7IDB4ZjAwMCB9LAorCVtHQ0NfVVNCMzBfU0VDX0JDUl0gPSB7IDB4MTAwMDAgfSwKKwlbR0NDX1VTQl9QSFlfQ0ZHX0FIQjJQSFlfQkNSXSA9IHsgMHg2YTAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGdjY19zbTgxNTBfcmVnbWFwX2NvbmZpZyA9IHsKKwkucmVnX2JpdHMJPSAzMiwKKwkucmVnX3N0cmlkZQk9IDQsCisJLnZhbF9iaXRzCT0gMzIsCisJLm1heF9yZWdpc3Rlcgk9IDB4OWMwNDAsCisJLmZhc3RfaW8JPSB0cnVlLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBxY29tX2NjX2Rlc2MgZ2NjX3NtODE1MF9kZXNjID0geworCS5jb25maWcgPSAmZ2NjX3NtODE1MF9yZWdtYXBfY29uZmlnLAorCS5jbGtzID0gZ2NjX3NtODE1MF9jbG9ja3MsCisJLm51bV9jbGtzID0gQVJSQVlfU0laRShnY2Nfc204MTUwX2Nsb2NrcyksCisJLnJlc2V0cyA9IGdjY19zbTgxNTBfcmVzZXRzLAorCS5udW1fcmVzZXRzID0gQVJSQVlfU0laRShnY2Nfc204MTUwX3Jlc2V0cyksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBnY2Nfc204MTUwX21hdGNoX3RhYmxlW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJxY29tLGdjYy1zbTgxNTAiIH0sCisJeyB9Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZ2NjX3NtODE1MF9tYXRjaF90YWJsZSk7CisKK3N0YXRpYyBpbnQgZ2NjX3NtODE1MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCByZWdtYXAgKnJlZ21hcDsKKworCXJlZ21hcCA9IHFjb21fY2NfbWFwKHBkZXYsICZnY2Nfc204MTUwX2Rlc2MpOworCWlmIChJU19FUlIocmVnbWFwKSkKKwkJcmV0dXJuIFBUUl9FUlIocmVnbWFwKTsKKworCS8qIERpc2FibGUgdGhlIEdQTEwwIGFjdGl2ZSBpbnB1dCB0byBOUFUgYW5kIEdQVSB2aWEgTUlTQyByZWdpc3RlcnMgKi8KKwlyZWdtYXBfdXBkYXRlX2JpdHMocmVnbWFwLCAweDRkMTEwLCAweDMsIDB4Myk7CisJcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21hcCwgMHg3MTAyOCwgMHgzLCAweDMpOworCisJcmV0dXJuIHFjb21fY2NfcmVhbGx5X3Byb2JlKHBkZXYsICZnY2Nfc204MTUwX2Rlc2MsIHJlZ21hcCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGdjY19zbTgxNTBfZHJpdmVyID0geworCS5wcm9iZQkJPSBnY2Nfc204MTUwX3Byb2JlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJnY2Mtc204MTUwIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gZ2NjX3NtODE1MF9tYXRjaF90YWJsZSwKKwl9LAorfTsKKworc3RhdGljIGludCBfX2luaXQgZ2NjX3NtODE1MF9pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmZ2NjX3NtODE1MF9kcml2ZXIpOworfQorc3Vic3lzX2luaXRjYWxsKGdjY19zbTgxNTBfaW5pdCk7CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBnY2Nfc204MTUwX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmZ2NjX3NtODE1MF9kcml2ZXIpOworfQorbW9kdWxlX2V4aXQoZ2NjX3NtODE1MF9leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJRVEkgR0NDIFNNODE1MCBEcml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Fjb20vbHBhc3NjYy1zZG04NDUuYyBiL2RyaXZlcnMvY2xrL3Fjb20vbHBhc3NjYy1zZG04NDUuYwppbmRleCBlMjQ2Yjk5Li41NmQzZTk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9xY29tL2xwYXNzY2Mtc2RtODQ1LmMKKysrIGIvZHJpdmVycy9jbGsvcWNvbS9scGFzc2NjLXNkbTg0NS5jCkBAIC0xMTIsMjUgKzExMiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcWNvbV9jY19kZXNjIGxwYXNzX3Fkc3A2c3Nfc2RtODQ1X2Rlc2MgPSB7CiAJLm51bV9jbGtzID0gQVJSQVlfU0laRShscGFzc19xZHNwNnNzX3NkbTg0NV9jbG9ja3MpLAogfTsKIAotc3RhdGljIGludCBscGFzc19jbG9ja3Nfc2RtODQ1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIGludCBpbmRleCwKLQkJCQkgICAgIGNvbnN0IHN0cnVjdCBxY29tX2NjX2Rlc2MgKmRlc2MpCi17Ci0Jc3RydWN0IHJlZ21hcCAqcmVnbWFwOwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotCXZvaWQgX19pb21lbSAqYmFzZTsKLQotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgaW5kZXgpOwotCWJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKLQlpZiAoSVNfRVJSKGJhc2UpKQotCQlyZXR1cm4gUFRSX0VSUihiYXNlKTsKLQotCXJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXRfbW1pbygmcGRldi0+ZGV2LCBiYXNlLCBkZXNjLT5jb25maWcpOwotCWlmIChJU19FUlIocmVnbWFwKSkKLQkJcmV0dXJuIFBUUl9FUlIocmVnbWFwKTsKLQotCXJldHVybiBxY29tX2NjX3JlYWxseV9wcm9iZShwZGV2LCBkZXNjLCByZWdtYXApOwotfQotCiBzdGF0aWMgaW50IGxwYXNzX2NjX3NkbTg0NV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCWNvbnN0IHN0cnVjdCBxY29tX2NjX2Rlc2MgKmRlc2M7CkBAIC0xMzksMTQgKzEyMCwxNCBAQCBzdGF0aWMgaW50IGxwYXNzX2NjX3NkbTg0NV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWxwYXNzX3JlZ21hcF9jb25maWcubmFtZSA9ICJjYyI7CiAJZGVzYyA9ICZscGFzc19jY19zZG04NDVfZGVzYzsKIAotCXJldCA9IGxwYXNzX2Nsb2Nrc19zZG04NDVfcHJvYmUocGRldiwgMCwgZGVzYyk7CisJcmV0ID0gcWNvbV9jY19wcm9iZV9ieV9pbmRleChwZGV2LCAwLCBkZXNjKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCiAJbHBhc3NfcmVnbWFwX2NvbmZpZy5uYW1lID0gInFkc3A2c3MiOwogCWRlc2MgPSAmbHBhc3NfcWRzcDZzc19zZG04NDVfZGVzYzsKIAotCXJldHVybiBscGFzc19jbG9ja3Nfc2RtODQ1X3Byb2JlKHBkZXYsIDEsIGRlc2MpOworCXJldHVybiBxY29tX2NjX3Byb2JlX2J5X2luZGV4KHBkZXYsIDEsIGRlc2MpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBscGFzc19jY19zZG04NDVfbWF0Y2hfdGFibGVbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Fjb20vdHVyaW5nY2MtcWNzNDA0LmMgYi9kcml2ZXJzL2Nsay9xY29tL3R1cmluZ2NjLXFjczQwNC5jCmluZGV4IGFhODU5ZTYuLjRjZmJiZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vdHVyaW5nY2MtcWNzNDA0LmMKKysrIGIvZHJpdmVycy9jbGsvcWNvbS90dXJpbmdjYy1xY3M0MDQuYwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgdHVyaW5nY2NfcmVnbWFwX2NvbmZpZyA9IHsKIAkucmVnX2JpdHMJPSAzMiwKIAkucmVnX3N0cmlkZQk9IDQsCiAJLnZhbF9iaXRzCT0gMzIsCi0JLm1heF9yZWdpc3Rlcgk9IDB4MzAwMDAsCisJLm1heF9yZWdpc3Rlcgk9IDB4MjMwMDQsCiAJLmZhc3RfaW8JPSB0cnVlLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcmVuZXNhcy9jbGstbXN0cC5jIGIvZHJpdmVycy9jbGsvcmVuZXNhcy9jbGstbXN0cC5jCmluZGV4IDJkYjkwOTMuLmUzMjZlNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3JlbmVzYXMvY2xrLW1zdHAuYworKysgYi9kcml2ZXJzL2Nsay9yZW5lc2FzL2Nsay1tc3RwLmMKQEAgLTMzNCw3ICszMzQsOCBAQCB2b2lkIF9faW5pdCBjcGdfbXN0cF9hZGRfY2xrX2RvbWFpbihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQlyZXR1cm47CiAKIAlwZC0+bmFtZSA9IG5wLT5uYW1lOwotCXBkLT5mbGFncyA9IEdFTlBEX0ZMQUdfUE1fQ0xLIHwgR0VOUERfRkxBR19BQ1RJVkVfV0FLRVVQOworCXBkLT5mbGFncyA9IEdFTlBEX0ZMQUdfUE1fQ0xLIHwgR0VOUERfRkxBR19BTFdBWVNfT04gfAorCQkgICAgR0VOUERfRkxBR19BQ1RJVkVfV0FLRVVQOwogCXBkLT5hdHRhY2hfZGV2ID0gY3BnX21zdHBfYXR0YWNoX2RldjsKIAlwZC0+ZGV0YWNoX2RldiA9IGNwZ19tc3RwX2RldGFjaF9kZXY7CiAJcG1fZ2VucGRfaW5pdChwZCwgJnBtX2RvbWFpbl9hbHdheXNfb25fZ292LCBmYWxzZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9yZW5lc2FzL3I5YTA2ZzAzMi1jbG9ja3MuYyBiL2RyaXZlcnMvY2xrL3JlbmVzYXMvcjlhMDZnMDMyLWNsb2Nrcy5jCmluZGV4IGIzM2UxMzguLjE5MDdlZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3JlbmVzYXMvcjlhMDZnMDMyLWNsb2Nrcy5jCisrKyBiL2RyaXZlcnMvY2xrL3JlbmVzYXMvcjlhMDZnMDMyLWNsb2Nrcy5jCkBAIC00MjEsNyArNDIxLDggQEAgc3RhdGljIGludCByOWEwNmcwMzJfYWRkX2Nsa19kb21haW4oc3RydWN0IGRldmljZSAqZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAogCXBkLT5uYW1lID0gbnAtPm5hbWU7Ci0JcGQtPmZsYWdzID0gR0VOUERfRkxBR19QTV9DTEsgfCBHRU5QRF9GTEFHX0FDVElWRV9XQUtFVVA7CisJcGQtPmZsYWdzID0gR0VOUERfRkxBR19QTV9DTEsgfCBHRU5QRF9GTEFHX0FMV0FZU19PTiB8CisJCSAgICBHRU5QRF9GTEFHX0FDVElWRV9XQUtFVVA7CiAJcGQtPmF0dGFjaF9kZXYgPSByOWEwNmcwMzJfYXR0YWNoX2RldjsKIAlwZC0+ZGV0YWNoX2RldiA9IHI5YTA2ZzAzMl9kZXRhY2hfZGV2OwogCXBtX2dlbnBkX2luaXQocGQsICZwbV9kb21haW5fYWx3YXlzX29uX2dvdiwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcmVuZXNhcy9yY2FyLXVzYjItY2xvY2stc2VsLmMgYi9kcml2ZXJzL2Nsay9yZW5lc2FzL3JjYXItdXNiMi1jbG9jay1zZWwuYwppbmRleCBjYzkwYjExLi5iOTdmNWY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9yZW5lc2FzL3JjYXItdXNiMi1jbG9jay1zZWwuYworKysgYi9kcml2ZXJzL2Nsay9yZW5lc2FzL3JjYXItdXNiMi1jbG9jay1zZWwuYwpAQCAtMTE3LDcgKzExNyw2IEBAIHN0YXRpYyBpbnQgcmNhcl91c2IyX2Nsb2NrX3NlbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CiAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IGRldi0+b2Zfbm9kZTsKIAlzdHJ1Y3QgdXNiMl9jbG9ja19zZWxfcHJpdiAqcHJpdjsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAlzdHJ1Y3QgY2xrICpjbGs7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIApAQCAtMTI1LDggKzEyNCw3IEBAIHN0YXRpYyBpbnQgcmNhcl91c2IyX2Nsb2NrX3NlbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghcHJpdikKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwotCXByaXYtPmJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOworCXByaXYtPmJhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7CiAJaWYgKElTX0VSUihwcml2LT5iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIocHJpdi0+YmFzZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3JlbmVzYXMvcmVuZXNhcy1jcGctbXNzci5jIGIvZHJpdmVycy9jbGsvcmVuZXNhcy9yZW5lc2FzLWNwZy1tc3NyLmMKaW5kZXggZDQwNzViMS4uMTMyY2M5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcmVuZXNhcy9yZW5lc2FzLWNwZy1tc3NyLmMKKysrIGIvZHJpdmVycy9jbGsvcmVuZXNhcy9yZW5lc2FzLWNwZy1tc3NyLmMKQEAgLTU1MSw3ICs1NTEsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBjcGdfbXNzcl9hZGRfY2xrX2RvbWFpbihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAKIAlnZW5wZCA9ICZwZC0+Z2VucGQ7CiAJZ2VucGQtPm5hbWUgPSBucC0+bmFtZTsKLQlnZW5wZC0+ZmxhZ3MgPSBHRU5QRF9GTEFHX1BNX0NMSyB8IEdFTlBEX0ZMQUdfQUNUSVZFX1dBS0VVUDsKKwlnZW5wZC0+ZmxhZ3MgPSBHRU5QRF9GTEFHX1BNX0NMSyB8IEdFTlBEX0ZMQUdfQUxXQVlTX09OIHwKKwkJICAgICAgIEdFTlBEX0ZMQUdfQUNUSVZFX1dBS0VVUDsKIAlnZW5wZC0+YXR0YWNoX2RldiA9IGNwZ19tc3NyX2F0dGFjaF9kZXY7CiAJZ2VucGQtPmRldGFjaF9kZXYgPSBjcGdfbXNzcl9kZXRhY2hfZGV2OwogCXBtX2dlbnBkX2luaXQoZ2VucGQsICZwbV9kb21haW5fYWx3YXlzX29uX2dvdiwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcm9ja2NoaXAvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay9yb2NrY2hpcC9NYWtlZmlsZQppbmRleCBmZjM1YWI0Li43YzViNTgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9yb2NrY2hpcC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2Nsay9yb2NrY2hpcC9NYWtlZmlsZQpAQCAtMjAsNiArMjAsNyBAQAogb2JqLXkJKz0gY2xrLXJrMzE4OC5vCiBvYmoteQkrPSBjbGstcmszMjI4Lm8KIG9iai15CSs9IGNsay1yazMyODgubworb2JqLXkJKz0gY2xrLXJrMzMwOC5vCiBvYmoteQkrPSBjbGstcmszMzI4Lm8KIG9iai15CSs9IGNsay1yazMzNjgubwogb2JqLXkJKz0gY2xrLXJrMzM5OS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGstcmszMzA4LmMgYi9kcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGstcmszMzA4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBiYWY4NwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1yazMzMDguYwpAQCAtMCwwICsxLDk1NSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9ja2NoaXAgRWxlY3Ryb25pY3MgQ28uIEx0ZC4KKyAqIEF1dGhvcjogRmlubGV5IFhpYW8gPGZpbmxleS54aWFvQHJvY2stY2hpcHMuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2NvcmVfb3BzLmg+CisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svcmszMzA4LWNydS5oPgorI2luY2x1ZGUgImNsay5oIgorCisjZGVmaW5lIFJLMzMwOF9HUkZfU09DX1NUQVRVUzAJCTB4MzgwCisKK2VudW0gcmszMzA4X3BsbHMgeworCWFwbGwsIGRwbGwsIHZwbGwwLCB2cGxsMSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfcGxsX3JhdGVfdGFibGUgcmszMzA4X3BsbF9yYXRlc1tdID0geworCS8qIF9taHosIF9yZWZkaXYsIF9mYmRpdiwgX3Bvc3RkaXYxLCBfcG9zdGRpdjIsIF9kc21wZCwgX2ZyYWMgKi8KKwlSSzMwMzZfUExMX1JBVEUoMTYwODAwMDAwMCwgMSwgNjcsIDEsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSgxNTg0MDAwMDAwLCAxLCA2NiwgMSwgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDE1NjAwMDAwMDAsIDEsIDY1LCAxLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoMTUzNjAwMDAwMCwgMSwgNjQsIDEsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSgxNTEyMDAwMDAwLCAxLCA2MywgMSwgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDE0ODgwMDAwMDAsIDEsIDYyLCAxLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoMTQ2NDAwMDAwMCwgMSwgNjEsIDEsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSgxNDQwMDAwMDAwLCAxLCA2MCwgMSwgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDE0MTYwMDAwMDAsIDEsIDU5LCAxLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoMTM5MjAwMDAwMCwgMSwgNTgsIDEsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSgxMzY4MDAwMDAwLCAxLCA1NywgMSwgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDEzNDQwMDAwMDAsIDEsIDU2LCAxLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoMTMyMDAwMDAwMCwgMSwgNTUsIDEsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSgxMjk2MDAwMDAwLCAxLCA1NCwgMSwgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDEyNzIwMDAwMDAsIDEsIDUzLCAxLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoMTI0ODAwMDAwMCwgMSwgNTIsIDEsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSgxMjAwMDAwMDAwLCAxLCA1MCwgMSwgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDExODgwMDAwMDAsIDIsIDk5LCAxLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoMTEwNDAwMDAwMCwgMSwgNDYsIDEsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSgxMTAwMDAwMDAwLCAxMiwgNTUwLCAxLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoMTAwODAwMDAwMCwgMSwgODQsIDIsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSgxMDAwMDAwMDAwLCA2LCA1MDAsIDIsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSg5ODQwMDAwMDAsIDEsIDgyLCAyLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoOTYwMDAwMDAwLCAxLCA4MCwgMiwgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDkzNjAwMDAwMCwgMSwgNzgsIDIsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSg5MTIwMDAwMDAsIDEsIDc2LCAyLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoOTAwMDAwMDAwLCA0LCAzMDAsIDIsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSg4ODgwMDAwMDAsIDEsIDc0LCAyLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoODY0MDAwMDAwLCAxLCA3MiwgMiwgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDg0MDAwMDAwMCwgMSwgNzAsIDIsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSg4MTYwMDAwMDAsIDEsIDY4LCAyLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoODAwMDAwMDAwLCA2LCA0MDAsIDIsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSg3MDAwMDAwMDAsIDYsIDM1MCwgMiwgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDY5NjAwMDAwMCwgMSwgNTgsIDIsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSg2MjQwMDAwMDAsIDEsIDUyLCAyLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoNjAwMDAwMDAwLCAxLCA3NSwgMywgMSwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDU5NDAwMDAwMCwgMiwgOTksIDIsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSg1MDQwMDAwMDAsIDEsIDYzLCAzLCAxLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoNTAwMDAwMDAwLCA2LCAyNTAsIDIsIDEsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSg0MDgwMDAwMDAsIDEsIDY4LCAyLCAyLCAxLCAwKSwKKwlSSzMwMzZfUExMX1JBVEUoMzEyMDAwMDAwLCAxLCA1MiwgMiwgMiwgMSwgMCksCisJUkszMDM2X1BMTF9SQVRFKDIxNjAwMDAwMCwgMSwgNzIsIDQsIDIsIDEsIDApLAorCVJLMzAzNl9QTExfUkFURSg5NjAwMDAwMCwgMSwgNjQsIDQsIDQsIDEsIDApLAorCXsgLyogc2VudGluZWwgKi8gfSwKK307CisKKyNkZWZpbmUgUkszMzA4X0RJVl9BQ0xLTV9NQVNLCQkweDcKKyNkZWZpbmUgUkszMzA4X0RJVl9BQ0xLTV9TSElGVAkJMTIKKyNkZWZpbmUgUkszMzA4X0RJVl9QQ0xLX0RCR19NQVNLCTB4ZgorI2RlZmluZSBSSzMzMDhfRElWX1BDTEtfREJHX1NISUZUCTgKKworI2RlZmluZSBSSzMzMDhfQ0xLU0VMMChfYWNsa19jb3JlLCBfcGNsa19kYmcpCQkJCVwKK3sJCQkJCQkJCQlcCisJLnJlZyA9IFJLMzMwOF9DTEtTRUxfQ09OKDApLAkJCQkJXAorCS52YWwgPSBISVdPUkRfVVBEQVRFKF9hY2xrX2NvcmUsIFJLMzMwOF9ESVZfQUNMS01fTUFTSywJCVwKKwkJCSAgICAgUkszMzA4X0RJVl9BQ0xLTV9TSElGVCkgfAkJCVwKKwkgICAgICAgSElXT1JEX1VQREFURShfcGNsa19kYmcsIFJLMzMwOF9ESVZfUENMS19EQkdfTUFTSywJXAorCQkJICAgICBSSzMzMDhfRElWX1BDTEtfREJHX1NISUZUKSwJCVwKK30KKworI2RlZmluZSBSSzMzMDhfQ1BVQ0xLX1JBVEUoX3ByYXRlLCBfYWNsa19jb3JlLCBfcGNsa19kYmcpCQlcCit7CQkJCQkJCQkJXAorCS5wcmF0ZSA9IF9wcmF0ZSwJCQkJCQlcCisJLmRpdnMgPSB7CQkJCQkJCVwKKwkJUkszMzA4X0NMS1NFTDAoX2FjbGtfY29yZSwgX3BjbGtfZGJnKSwJCQlcCisJfSwJCQkJCQkJCVwKK30KKworc3RhdGljIHN0cnVjdCByb2NrY2hpcF9jcHVjbGtfcmF0ZV90YWJsZSByazMzMDhfY3B1Y2xrX3JhdGVzW10gX19pbml0ZGF0YSA9IHsKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoMTYwODAwMDAwMCwgMSwgNyksCisJUkszMzA4X0NQVUNMS19SQVRFKDE1MTIwMDAwMDAsIDEsIDcpLAorCVJLMzMwOF9DUFVDTEtfUkFURSgxNDg4MDAwMDAwLCAxLCA1KSwKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoMTQxNjAwMDAwMCwgMSwgNSksCisJUkszMzA4X0NQVUNMS19SQVRFKDEzOTIwMDAwMDAsIDEsIDUpLAorCVJLMzMwOF9DUFVDTEtfUkFURSgxMjk2MDAwMDAwLCAxLCA1KSwKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoMTIwMDAwMDAwMCwgMSwgNSksCisJUkszMzA4X0NQVUNMS19SQVRFKDExMDQwMDAwMDAsIDEsIDUpLAorCVJLMzMwOF9DUFVDTEtfUkFURSgxMDA4MDAwMDAwLCAxLCA1KSwKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoOTEyMDAwMDAwLCAxLCA1KSwKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoODE2MDAwMDAwLCAxLCAzKSwKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoNjk2MDAwMDAwLCAxLCAzKSwKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoNjAwMDAwMDAwLCAxLCAzKSwKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoNDA4MDAwMDAwLCAxLCAxKSwKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoMzEyMDAwMDAwLCAxLCAxKSwKKwlSSzMzMDhfQ1BVQ0xLX1JBVEUoMjE2MDAwMDAwLCAgMSwgMSksCisJUkszMzA4X0NQVUNMS19SQVRFKDk2MDAwMDAwLCAxLCAxKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfY3B1Y2xrX3JlZ19kYXRhIHJrMzMwOF9jcHVjbGtfZGF0YSA9IHsKKwkuY29yZV9yZWcgPSBSSzMzMDhfQ0xLU0VMX0NPTigwKSwKKwkuZGl2X2NvcmVfc2hpZnQgPSAwLAorCS5kaXZfY29yZV9tYXNrID0gMHhmLAorCS5tdXhfY29yZV9hbHQgPSAxLAorCS5tdXhfY29yZV9tYWluID0gMCwKKwkubXV4X2NvcmVfc2hpZnQgPSA2LAorCS5tdXhfY29yZV9tYXNrID0gMHgzLAorfTsKKworUE5BTUUobXV4X3BsbF9wKQkJPSB7ICJ4aW4yNG0iIH07CitQTkFNRShtdXhfdXNiNDgwbV9wKQkJPSB7ICJ4aW4yNG0iLCAidXNiNDgwbV9waHkiLCAiY2xrX3J0YzMyayIgfTsKK1BOQU1FKG11eF9hcm1jbGtfcCkJCT0geyAiYXBsbF9jb3JlIiwgInZwbGwwX2NvcmUiLCAidnBsbDFfY29yZSIgfTsKK1BOQU1FKG11eF9kcGxsX3ZwbGwwX3ApCQk9IHsgImRwbGwiLCAidnBsbDAiIH07CitQTkFNRShtdXhfZHBsbF92cGxsMF94aW4yNG1fcCkJPSB7ICJkcGxsIiwgInZwbGwwIiwgInhpbjI0bSIgfTsKK1BOQU1FKG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3ApCT0geyAiZHBsbCIsICJ2cGxsMCIsICJ2cGxsMSIgfTsKK1BOQU1FKG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3hpbjI0bV9wKQk9IHsgImRwbGwiLCAidnBsbDAiLCAidnBsbDEiLCAieGluMjRtIiB9OworUE5BTUUobXV4X2RwbGxfdnBsbDBfdnBsbDFfdXNiNDgwbV94aW4yNG1fcCkJPSB7ICJkcGxsIiwgInZwbGwwIiwgInZwbGwxIiwgInVzYjQ4MG0iLCAieGluMjRtIiB9OworUE5BTUUobXV4X3ZwbGwwX3ZwbGwxX3ApCT0geyAidnBsbDAiLCAidnBsbDEiIH07CitQTkFNRShtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3ApCT0geyAidnBsbDAiLCAidnBsbDEiLCAieGluMjRtIiB9OworUE5BTUUobXV4X3VhcnQwX3ApCQk9IHsgImNsa191YXJ0MF9zcmMiLCAiZHVtbXkiLCAiY2xrX3VhcnQwX2ZyYWMiIH07CitQTkFNRShtdXhfdWFydDFfcCkJCT0geyAiY2xrX3VhcnQxX3NyYyIsICJkdW1teSIsICJjbGtfdWFydDFfZnJhYyIgfTsKK1BOQU1FKG11eF91YXJ0Ml9wKQkJPSB7ICJjbGtfdWFydDJfc3JjIiwgImR1bW15IiwgImNsa191YXJ0Ml9mcmFjIiB9OworUE5BTUUobXV4X3VhcnQzX3ApCQk9IHsgImNsa191YXJ0M19zcmMiLCAiZHVtbXkiLCAiY2xrX3VhcnQzX2ZyYWMiIH07CitQTkFNRShtdXhfdWFydDRfcCkJCT0geyAiY2xrX3VhcnQ0X3NyYyIsICJkdW1teSIsICJjbGtfdWFydDRfZnJhYyIgfTsKK1BOQU1FKG11eF90aW1lcl9zcmNfcCkJCT0geyAieGluMjRtIiwgImNsa19ydGMzMmsiIH07CitQTkFNRShtdXhfZGNsa192b3BfcCkJCT0geyAiZGNsa192b3Bfc3JjIiwgImRjbGtfdm9wX2ZyYWMiLCAieGluMjRtIiB9OworUE5BTUUobXV4X25hbmRjX3ApCQk9IHsgImNsa19uYW5kY19kaXYiLCAiY2xrX25hbmRjX2RpdjUwIiB9OworUE5BTUUobXV4X3NkbW1jX3ApCQk9IHsgImNsa19zZG1tY19kaXYiLCAiY2xrX3NkbW1jX2RpdjUwIiB9OworUE5BTUUobXV4X3NkaW9fcCkJCT0geyAiY2xrX3NkaW9fZGl2IiwgImNsa19zZGlvX2RpdjUwIiB9OworUE5BTUUobXV4X2VtbWNfcCkJCT0geyAiY2xrX2VtbWNfZGl2IiwgImNsa19lbW1jX2RpdjUwIiB9OworUE5BTUUobXV4X21hY19wKQkJPSB7ICJjbGtfbWFjX3NyYyIsICJtYWNfY2xraW4iIH07CitQTkFNRShtdXhfbWFjX3JtaWlfc2VsX3ApCT0geyAiY2xrX21hY19yeF90eF9kaXYyMCIsICJjbGtfbWFjX3J4X3R4X2RpdjIiIH07CitQTkFNRShtdXhfZGRyc3RkYnlfcCkJCT0geyAiY2xrX2RkcnBoeTF4X291dCIsICJjbGtfZGRyX3N0ZGJ5X2RpdjQiIH07CitQTkFNRShtdXhfcnRjMzJrX3ApCQk9IHsgInhpbjMyayIsICJjbGtfcHZ0bV8zMmsiLCAiY2xrX3J0YzMya19mcmFjIiwgImNsa19ydGMzMmtfZGl2IiB9OworUE5BTUUobXV4X3VzYnBoeV9yZWZfcCkJCT0geyAieGluMjRtIiwgImNsa191c2JwaHlfcmVmX3NyYyIgfTsKK1BOQU1FKG11eF93aWZpX3NyY19wKQkJPSB7ICJjbGtfd2lmaV9kcGxsIiwgImNsa193aWZpX3ZwbGwwIiB9OworUE5BTUUobXV4X3dpZmlfcCkJCT0geyAiY2xrX3dpZmlfb3NjIiwgImNsa193aWZpX3NyYyIgfTsKK1BOQU1FKG11eF9wZG1fcCkJCT0geyAiY2xrX3BkbV9zcmMiLCAiY2xrX3BkbV9mcmFjIiB9OworUE5BTUUobXV4X2kyczBfOGNoX3R4X3ApCT0geyAiY2xrX2kyczBfOGNoX3R4X3NyYyIsICJjbGtfaTJzMF84Y2hfdHhfZnJhYyIsICJtY2xrX2kyczBfOGNoX2luIiB9OworUE5BTUUobXV4X2kyczBfOGNoX3R4X3J4X3ApCT0geyAiY2xrX2kyczBfOGNoX3R4X211eCIsICJjbGtfaTJzMF84Y2hfcnhfbXV4In07CitQTkFNRShtdXhfaTJzMF84Y2hfdHhfb3V0X3ApCT0geyAiY2xrX2kyczBfOGNoX3R4IiwgInhpbjEybSIgfTsKK1BOQU1FKG11eF9pMnMwXzhjaF9yeF9wKQk9IHsgImNsa19pMnMwXzhjaF9yeF9zcmMiLCAiY2xrX2kyczBfOGNoX3J4X2ZyYWMiLCAibWNsa19pMnMwXzhjaF9pbiIgfTsKK1BOQU1FKG11eF9pMnMwXzhjaF9yeF90eF9wKQk9IHsgImNsa19pMnMwXzhjaF9yeF9tdXgiLCAiY2xrX2kyczBfOGNoX3R4X211eCJ9OworUE5BTUUobXV4X2kyczFfOGNoX3R4X3ApCT0geyAiY2xrX2kyczFfOGNoX3R4X3NyYyIsICJjbGtfaTJzMV84Y2hfdHhfZnJhYyIsICJtY2xrX2kyczFfOGNoX2luIiB9OworUE5BTUUobXV4X2kyczFfOGNoX3R4X3J4X3ApCT0geyAiY2xrX2kyczFfOGNoX3R4X211eCIsICJjbGtfaTJzMV84Y2hfcnhfbXV4In07CitQTkFNRShtdXhfaTJzMV84Y2hfdHhfb3V0X3ApCT0geyAiY2xrX2kyczFfOGNoX3R4IiwgInhpbjEybSIgfTsKK1BOQU1FKG11eF9pMnMxXzhjaF9yeF9wKQk9IHsgImNsa19pMnMxXzhjaF9yeF9zcmMiLCAiY2xrX2kyczFfOGNoX3J4X2ZyYWMiLCAibWNsa19pMnMxXzhjaF9pbiIgfTsKK1BOQU1FKG11eF9pMnMxXzhjaF9yeF90eF9wKQk9IHsgImNsa19pMnMxXzhjaF9yeF9tdXgiLCAiY2xrX2kyczFfOGNoX3R4X211eCJ9OworUE5BTUUobXV4X2kyczJfOGNoX3R4X3ApCT0geyAiY2xrX2kyczJfOGNoX3R4X3NyYyIsICJjbGtfaTJzMl84Y2hfdHhfZnJhYyIsICJtY2xrX2kyczJfOGNoX2luIiB9OworUE5BTUUobXV4X2kyczJfOGNoX3R4X3J4X3ApCT0geyAiY2xrX2kyczJfOGNoX3R4X211eCIsICJjbGtfaTJzMl84Y2hfcnhfbXV4In07CitQTkFNRShtdXhfaTJzMl84Y2hfdHhfb3V0X3ApCT0geyAiY2xrX2kyczJfOGNoX3R4IiwgInhpbjEybSIgfTsKK1BOQU1FKG11eF9pMnMyXzhjaF9yeF9wKQk9IHsgImNsa19pMnMyXzhjaF9yeF9zcmMiLCAiY2xrX2kyczJfOGNoX3J4X2ZyYWMiLCAibWNsa19pMnMyXzhjaF9pbiIgfTsKK1BOQU1FKG11eF9pMnMyXzhjaF9yeF90eF9wKQk9IHsgImNsa19pMnMyXzhjaF9yeF9tdXgiLCAiY2xrX2kyczJfOGNoX3R4X211eCJ9OworUE5BTUUobXV4X2kyczNfOGNoX3R4X3ApCT0geyAiY2xrX2kyczNfOGNoX3R4X3NyYyIsICJjbGtfaTJzM184Y2hfdHhfZnJhYyIsICJtY2xrX2kyczNfOGNoX2luIiB9OworUE5BTUUobXV4X2kyczNfOGNoX3R4X3J4X3ApCT0geyAiY2xrX2kyczNfOGNoX3R4X211eCIsICJjbGtfaTJzM184Y2hfcnhfbXV4In07CitQTkFNRShtdXhfaTJzM184Y2hfdHhfb3V0X3ApCT0geyAiY2xrX2kyczNfOGNoX3R4IiwgInhpbjEybSIgfTsKK1BOQU1FKG11eF9pMnMzXzhjaF9yeF9wKQk9IHsgImNsa19pMnMzXzhjaF9yeF9zcmMiLCAiY2xrX2kyczNfOGNoX3J4X2ZyYWMiLCAibWNsa19pMnMzXzhjaF9pbiIgfTsKK1BOQU1FKG11eF9pMnMzXzhjaF9yeF90eF9wKQk9IHsgImNsa19pMnMzXzhjaF9yeF9tdXgiLCAiY2xrX2kyczNfOGNoX3R4X211eCJ9OworUE5BTUUobXV4X2kyczBfMmNoX3ApCQk9IHsgImNsa19pMnMwXzJjaF9zcmMiLCAiY2xrX2kyczBfMmNoX2ZyYWMiLCAibWNsa19pMnMwXzJjaF9pbiIgfTsKK1BOQU1FKG11eF9pMnMwXzJjaF9vdXRfcCkJPSB7ICJjbGtfaTJzMF8yY2giLCAieGluMTJtIiB9OworUE5BTUUobXV4X2kyczFfMmNoX3ApCQk9IHsgImNsa19pMnMxXzJjaF9zcmMiLCAiY2xrX2kyczFfMmNoX2ZyYWMiLCAibWNsa19pMnMxXzJjaF9pbiJ9OworUE5BTUUobXV4X2kyczFfMmNoX291dF9wKQk9IHsgImNsa19pMnMxXzJjaCIsICJ4aW4xMm0iIH07CitQTkFNRShtdXhfc3BkaWZfdHhfc3JjX3ApCT0geyAiY2xrX3NwZGlmX3R4X2RpdiIsICJjbGtfc3BkaWZfdHhfZGl2NTAiIH07CitQTkFNRShtdXhfc3BkaWZfdHhfcCkJCT0geyAiY2xrX3NwZGlmX3R4X3NyYyIsICJjbGtfc3BkaWZfdHhfZnJhYyIsICJtY2xrX2kyczBfMmNoX2luIiB9OworUE5BTUUobXV4X3NwZGlmX3J4X3NyY19wKQk9IHsgImNsa19zcGRpZl9yeF9kaXYiLCAiY2xrX3NwZGlmX3J4X2RpdjUwIiB9OworUE5BTUUobXV4X3NwZGlmX3J4X3ApCQk9IHsgImNsa19zcGRpZl9yeF9zcmMiLCAiY2xrX3NwZGlmX3J4X2ZyYWMiIH07CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfcGxsX2Nsb2NrIHJrMzMwOF9wbGxfY2xrc1tdIF9faW5pdGRhdGEgPSB7CisJW2FwbGxdID0gUExMKHBsbF9yazMzMjgsIFBMTF9BUExMLCAiYXBsbCIsIG11eF9wbGxfcCwKKwkJICAgICAwLCBSSzMzMDhfUExMX0NPTigwKSwKKwkJICAgICBSSzMzMDhfTU9ERV9DT04sIDAsIDAsIDAsIHJrMzMwOF9wbGxfcmF0ZXMpLAorCVtkcGxsXSA9IFBMTChwbGxfcmszMzI4LCBQTExfRFBMTCwgImRwbGwiLCBtdXhfcGxsX3AsCisJCSAgICAgMCwgUkszMzA4X1BMTF9DT04oOCksCisJCSAgICAgUkszMzA4X01PREVfQ09OLCAyLCAxLCAwLCByazMzMDhfcGxsX3JhdGVzKSwKKwlbdnBsbDBdID0gUExMKHBsbF9yazMzMjgsIFBMTF9WUExMMCwgInZwbGwwIiwgbXV4X3BsbF9wLAorCQkgICAgIDAsIFJLMzMwOF9QTExfQ09OKDE2KSwKKwkJICAgICBSSzMzMDhfTU9ERV9DT04sIDQsIDIsIDAsIHJrMzMwOF9wbGxfcmF0ZXMpLAorCVt2cGxsMV0gPSBQTEwocGxsX3JrMzMyOCwgUExMX1ZQTEwxLCAidnBsbDEiLCBtdXhfcGxsX3AsCisJCSAgICAgMCwgUkszMzA4X1BMTF9DT04oMjQpLAorCQkgICAgIFJLMzMwOF9NT0RFX0NPTiwgNiwgMywgMCwgcmszMzA4X3BsbF9yYXRlcyksCit9OworCisjZGVmaW5lIE1GTEFHUyBDTEtfTVVYX0hJV09SRF9NQVNLCisjZGVmaW5lIERGTEFHUyBDTEtfRElWSURFUl9ISVdPUkRfTUFTSworI2RlZmluZSBHRkxBR1MgKENMS19HQVRFX0hJV09SRF9NQVNLIHwgQ0xLX0dBVEVfU0VUX1RPX0RJU0FCTEUpCisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfdWFydDBfZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoMCwgImNsa191YXJ0MF9tdXgiLCBtdXhfdWFydDBfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDExKSwgMTQsIDIsIE1GTEFHUyk7CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfdWFydDFfZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoMCwgImNsa191YXJ0MV9tdXgiLCBtdXhfdWFydDFfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDE0KSwgMTQsIDIsIE1GTEFHUyk7CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfdWFydDJfZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoMCwgImNsa191YXJ0Ml9tdXgiLCBtdXhfdWFydDJfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDE3KSwgMTQsIDIsIE1GTEFHUyk7CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfdWFydDNfZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoMCwgImNsa191YXJ0M19tdXgiLCBtdXhfdWFydDNfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDIwKSwgMTQsIDIsIE1GTEFHUyk7CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfdWFydDRfZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoMCwgImNsa191YXJ0NF9tdXgiLCBtdXhfdWFydDRfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDIzKSwgMTQsIDIsIE1GTEFHUyk7CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfZGNsa192b3BfZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoMCwgImRjbGtfdm9wX211eCIsIG11eF9kY2xrX3ZvcF9wLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oOCksIDE0LCAyLCBNRkxBR1MpOworCitzdGF0aWMgc3RydWN0IHJvY2tjaGlwX2Nsa19icmFuY2ggcmszMzA4X3J0YzMya19mcmFjbXV4IF9faW5pdGRhdGEgPQorCU1VWChTQ0xLX1JUQzMySywgImNsa19ydGMzMmsiLCBtdXhfcnRjMzJrX3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigyKSwgOCwgMiwgTUZMQUdTKTsKKworc3RhdGljIHN0cnVjdCByb2NrY2hpcF9jbGtfYnJhbmNoIHJrMzMwOF9wZG1fZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoMCwgImNsa19wZG1fbXV4IiwgbXV4X3BkbV9wLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNDYpLCAxNSwgMSwgTUZMQUdTKTsKKworc3RhdGljIHN0cnVjdCByb2NrY2hpcF9jbGtfYnJhbmNoIHJrMzMwOF9pMnMwXzhjaF90eF9mcmFjbXV4IF9faW5pdGRhdGEgPQorCU1VWChTQ0xLX0kyUzBfOENIX1RYX01VWCwgImNsa19pMnMwXzhjaF90eF9tdXgiLCBtdXhfaTJzMF84Y2hfdHhfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDUyKSwgMTAsIDIsIE1GTEFHUyk7CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfaTJzMF84Y2hfcnhfZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoU0NMS19JMlMwXzhDSF9SWF9NVVgsICJjbGtfaTJzMF84Y2hfcnhfbXV4IiwgbXV4X2kyczBfOGNoX3J4X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig1NCksIDEwLCAyLCBNRkxBR1MpOworCitzdGF0aWMgc3RydWN0IHJvY2tjaGlwX2Nsa19icmFuY2ggcmszMzA4X2kyczFfOGNoX3R4X2ZyYWNtdXggX19pbml0ZGF0YSA9CisJTVVYKFNDTEtfSTJTMV84Q0hfVFhfTVVYLCAiY2xrX2kyczFfOGNoX3R4X211eCIsIG11eF9pMnMxXzhjaF90eF9wLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNTYpLCAxMCwgMiwgTUZMQUdTKTsKKworc3RhdGljIHN0cnVjdCByb2NrY2hpcF9jbGtfYnJhbmNoIHJrMzMwOF9pMnMxXzhjaF9yeF9mcmFjbXV4IF9faW5pdGRhdGEgPQorCU1VWChTQ0xLX0kyUzFfOENIX1JYX01VWCwgImNsa19pMnMxXzhjaF9yeF9tdXgiLCBtdXhfaTJzMV84Y2hfcnhfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDU4KSwgMTAsIDIsIE1GTEFHUyk7CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfaTJzMl84Y2hfdHhfZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoU0NMS19JMlMyXzhDSF9UWF9NVVgsICJjbGtfaTJzMl84Y2hfdHhfbXV4IiwgbXV4X2kyczJfOGNoX3R4X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2MCksIDEwLCAyLCBNRkxBR1MpOworCitzdGF0aWMgc3RydWN0IHJvY2tjaGlwX2Nsa19icmFuY2ggcmszMzA4X2kyczJfOGNoX3J4X2ZyYWNtdXggX19pbml0ZGF0YSA9CisJTVVYKFNDTEtfSTJTMl84Q0hfUlhfTVVYLCAiY2xrX2kyczJfOGNoX3J4X211eCIsIG11eF9pMnMyXzhjaF9yeF9wLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNjIpLCAxMCwgMiwgTUZMQUdTKTsKKworc3RhdGljIHN0cnVjdCByb2NrY2hpcF9jbGtfYnJhbmNoIHJrMzMwOF9pMnMzXzhjaF90eF9mcmFjbXV4IF9faW5pdGRhdGEgPQorCU1VWChTQ0xLX0kyUzNfOENIX1RYX01VWCwgImNsa19pMnMzXzhjaF90eF9tdXgiLCBtdXhfaTJzM184Y2hfdHhfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDY0KSwgMTAsIDIsIE1GTEFHUyk7CisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfaTJzM184Y2hfcnhfZnJhY211eCBfX2luaXRkYXRhID0KKwlNVVgoU0NMS19JMlMzXzhDSF9SWF9NVVgsICJjbGtfaTJzM184Y2hfcnhfbXV4IiwgbXV4X2kyczNfOGNoX3J4X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2NiksIDEwLCAyLCBNRkxBR1MpOworCitzdGF0aWMgc3RydWN0IHJvY2tjaGlwX2Nsa19icmFuY2ggcmszMzA4X2kyczBfMmNoX2ZyYWNtdXggX19pbml0ZGF0YSA9CisJTVVYKDAsICJjbGtfaTJzMF8yY2hfbXV4IiwgbXV4X2kyczBfMmNoX3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2OCksIDEwLCAyLCBNRkxBR1MpOworCitzdGF0aWMgc3RydWN0IHJvY2tjaGlwX2Nsa19icmFuY2ggcmszMzA4X2kyczFfMmNoX2ZyYWNtdXggX19pbml0ZGF0YSA9CisJTVVYKDAsICJjbGtfaTJzMV8yY2hfbXV4IiwgbXV4X2kyczFfMmNoX3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig3MCksIDEwLCAyLCBNRkxBR1MpOworCitzdGF0aWMgc3RydWN0IHJvY2tjaGlwX2Nsa19icmFuY2ggcmszMzA4X3NwZGlmX3R4X2ZyYWNtdXggX19pbml0ZGF0YSA9CisJTVVYKDAsICJjbGtfc3BkaWZfdHhfbXV4IiwgbXV4X3NwZGlmX3R4X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0OCksIDE0LCAyLCBNRkxBR1MpOworCitzdGF0aWMgc3RydWN0IHJvY2tjaGlwX2Nsa19icmFuY2ggcmszMzA4X3NwZGlmX3J4X2ZyYWNtdXggX19pbml0ZGF0YSA9CisJTVVYKDAsICJjbGtfc3BkaWZfcnhfbXV4IiwgbXV4X3NwZGlmX3J4X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig1MCksIDE1LCAxLCBNRkxBR1MpOworCisKK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCByazMzMDhfY2xrX2JyYW5jaGVzW10gX19pbml0ZGF0YSA9IHsKKwkvKgorCSAqIENsb2NrLUFyY2hpdGVjdHVyZSBEaWFncmFtIDEKKwkgKi8KKworCU1VWChVU0I0ODBNLCAidXNiNDgwbSIsIG11eF91c2I0ODBtX3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfTU9ERV9DT04sIDgsIDIsIE1GTEFHUyksCisJRkFDVE9SKDAsICJ4aW4xMm0iLCAieGluMjRtIiwgMCwgMSwgMiksCisKKwkvKgorCSAqIENsb2NrLUFyY2hpdGVjdHVyZSBEaWFncmFtIDIKKwkgKi8KKworCUdBVEUoMCwgImFwbGxfY29yZSIsICJhcGxsIiwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMCksIDAsIEdGTEFHUyksCisJR0FURSgwLCAidnBsbDBfY29yZSIsICJ2cGxsMCIsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDApLCAwLCBHRkxBR1MpLAorCUdBVEUoMCwgInZwbGwxX2NvcmUiLCAidnBsbDEiLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigwKSwgMCwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfTk9NVVgoMCwgInBjbGtfY29yZV9kYmciLCAiYXJtY2xrIiwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigwKSwgOCwgNCwgREZMQUdTIHwgQ0xLX0RJVklERVJfUkVBRF9PTkxZLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDApLCAyLCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT01VWCgwLCAiYWNsa19jb3JlIiwgImFybWNsayIsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS1NFTF9DT04oMCksIDEyLCAzLCBERkxBR1MgfCBDTEtfRElWSURFUl9SRUFEX09OTFksCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMCksIDEsIEdGTEFHUyksCisKKwlHQVRFKDAsICJjbGtfanRhZyIsICJqdGFnX2Nsa2luIiwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMCksIDMsIEdGTEFHUyksCisKKwlHQVRFKFNDTEtfUFZUTV9DT1JFLCAiY2xrX3B2dG1fY29yZSIsICJ4aW4yNG0iLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDApLCA0LCBHRkxBR1MpLAorCisJLyoKKwkgKiBDbG9jay1BcmNoaXRlY3R1cmUgRGlhZ3JhbSAzCisJICovCisKKwlDT01QT1NJVEVfTk9ESVYoQUNMS19CVVNfU1JDLCAiY2xrX2J1c19zcmMiLCBtdXhfZHBsbF92cGxsMF92cGxsMV9wLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDUpLCA2LCAyLCBNRkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMSksIDAsIEdGTEFHUyksCisJQ09NUE9TSVRFX05PTVVYKFBDTEtfQlVTLCAicGNsa19idXMiLCAiY2xrX2J1c19zcmMiLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDYpLCA4LCA1LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMSksIDMsIEdGTEFHUyksCisJR0FURShQQ0xLX0REUiwgInBjbGtfZGRyIiwgInBjbGtfYnVzIiwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oNCksIDE1LCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT01VWChIQ0xLX0JVUywgImhjbGtfYnVzIiwgImNsa19idXNfc3JjIiwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2KSwgMCwgNSwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEpLCAyLCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT01VWChBQ0xLX0JVUywgImFjbGtfYnVzIiwgImNsa19idXNfc3JjIiwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig1KSwgMCwgNSwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEpLCAxLCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKDAsICJjbGtfdWFydDBfc3JjIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFfdXNiNDgwbV94aW4yNG1fcCwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDEwKSwgMTMsIDMsIE1GTEFHUywgMCwgNSwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEpLCA5LCBHRkxBR1MpLAorCUNPTVBPU0lURV9GUkFDTVVYKDAsICJjbGtfdWFydDBfZnJhYyIsICJjbGtfdWFydDBfc3JjIiwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDEyKSwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxKSwgMTEsIEdGTEFHUywKKwkJCSZyazMzMDhfdWFydDBfZnJhY211eCksCisJR0FURShTQ0xLX1VBUlQwLCAiY2xrX3VhcnQwIiwgImNsa191YXJ0MF9tdXgiLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEpLCAxMiwgR0ZMQUdTKSwKKworCUNPTVBPU0lURSgwLCAiY2xrX3VhcnQxX3NyYyIsIG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3VzYjQ4MG1feGluMjRtX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigxMyksIDEzLCAzLCBNRkxBR1MsIDAsIDUsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxKSwgMTMsIEdGTEFHUyksCisJQ09NUE9TSVRFX0ZSQUNNVVgoMCwgImNsa191YXJ0MV9mcmFjIiwgImNsa191YXJ0MV9zcmMiLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oMTUpLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEpLCAxNSwgR0ZMQUdTLAorCQkJJnJrMzMwOF91YXJ0MV9mcmFjbXV4KSwKKwlHQVRFKFNDTEtfVUFSVDEsICJjbGtfdWFydDEiLCAiY2xrX3VhcnQxX211eCIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMiksIDAsIEdGTEFHUyksCisKKwlDT01QT1NJVEUoMCwgImNsa191YXJ0Ml9zcmMiLCBtdXhfZHBsbF92cGxsMF92cGxsMV91c2I0ODBtX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMTYpLCAxMywgMywgTUZMQUdTLCAwLCA1LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMiksIDEsIEdGTEFHUyksCisJQ09NUE9TSVRFX0ZSQUNNVVgoMCwgImNsa191YXJ0Ml9mcmFjIiwgImNsa191YXJ0Ml9zcmMiLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oMTgpLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDIpLCAzLCBHRkxBR1MsCisJCQkmcmszMzA4X3VhcnQyX2ZyYWNtdXgpLAorCUdBVEUoU0NMS19VQVJUMiwgImNsa191YXJ0MiIsICJjbGtfdWFydDJfbXV4IiwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigyKSwgNCwgR0ZMQUdTKSwKKworCUNPTVBPU0lURSgwLCAiY2xrX3VhcnQzX3NyYyIsIG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3VzYjQ4MG1feGluMjRtX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigxOSksIDEzLCAzLCBNRkxBR1MsIDAsIDUsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigyKSwgNSwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfRlJBQ01VWCgwLCAiY2xrX3VhcnQzX2ZyYWMiLCAiY2xrX3VhcnQzX3NyYyIsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigyMSksIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMiksIDcsIEdGTEFHUywKKwkJCSZyazMzMDhfdWFydDNfZnJhY211eCksCisJR0FURShTQ0xLX1VBUlQzLCAiY2xrX3VhcnQzIiwgImNsa191YXJ0M19tdXgiLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDIpLCA4LCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKDAsICJjbGtfdWFydDRfc3JjIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFfdXNiNDgwbV94aW4yNG1fcCwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDIyKSwgMTMsIDMsIE1GTEFHUywgMCwgNSwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDIpLCA5LCBHRkxBR1MpLAorCUNPTVBPU0lURV9GUkFDTVVYKDAsICJjbGtfdWFydDRfZnJhYyIsICJjbGtfdWFydDRfc3JjIiwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDI0KSwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigyKSwgMTEsIEdGTEFHUywKKwkJCSZyazMzMDhfdWFydDRfZnJhY211eCksCisJR0FURShTQ0xLX1VBUlQ0LCAiY2xrX3VhcnQ0IiwgImNsa191YXJ0NF9tdXgiLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDIpLCAxMiwgR0ZMQUdTKSwKKworCUNPTVBPU0lURShTQ0xLX0kyQzAsICJjbGtfaTJjMCIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMjUpLCAxNCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMiksIDEzLCBHRkxBR1MpLAorCUNPTVBPU0lURShTQ0xLX0kyQzEsICJjbGtfaTJjMSIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMjYpLCAxNCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMiksIDE0LCBHRkxBR1MpLAorCUNPTVBPU0lURShTQ0xLX0kyQzIsICJjbGtfaTJjMiIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMjcpLCAxNCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMiksIDE1LCBHRkxBR1MpLAorCUNPTVBPU0lURShTQ0xLX0kyQzMsICJjbGtfaTJjMyIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMjgpLCAxNCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMyksIDAsIEdGTEFHUyksCisKKwlDT01QT1NJVEUoU0NMS19QV00wLCAiY2xrX3B3bTAiLCBtdXhfZHBsbF92cGxsMF94aW4yNG1fcCwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDI5KSwgMTQsIDIsIE1GTEFHUywgMCwgNywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDMpLCAxLCBHRkxBR1MpLAorCUNPTVBPU0lURShTQ0xLX1BXTTEsICJjbGtfcHdtMSIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oNzQpLCAxNCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTUpLCAwLCBHRkxBR1MpLAorCUNPTVBPU0lURShTQ0xLX1BXTTIsICJjbGtfcHdtMiIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oNzUpLCAxNCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTUpLCAxLCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKFNDTEtfU1BJMCwgImNsa19zcGkwIiwgbXV4X2RwbGxfdnBsbDBfeGluMjRtX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigzMCksIDE0LCAyLCBNRkxBR1MsIDAsIDcsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigzKSwgMiwgR0ZMQUdTKSwKKwlDT01QT1NJVEUoU0NMS19TUEkxLCAiY2xrX3NwaTEiLCBtdXhfZHBsbF92cGxsMF94aW4yNG1fcCwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDMxKSwgMTQsIDIsIE1GTEFHUywgMCwgNywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDMpLCAzLCBHRkxBR1MpLAorCUNPTVBPU0lURShTQ0xLX1NQSTIsICJjbGtfc3BpMiIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMzIpLCAxNCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMyksIDQsIEdGTEFHUyksCisKKwlHQVRFKFNDTEtfVElNRVIwLCAic2Nsa190aW1lcjAiLCAieGluMjRtIiwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigzKSwgMTAsIEdGTEFHUyksCisJR0FURShTQ0xLX1RJTUVSMSwgInNjbGtfdGltZXIxIiwgInhpbjI0bSIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMyksIDExLCBHRkxBR1MpLAorCUdBVEUoU0NMS19USU1FUjIsICJzY2xrX3RpbWVyMiIsICJ4aW4yNG0iLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDMpLCAxMiwgR0ZMQUdTKSwKKwlHQVRFKFNDTEtfVElNRVIzLCAic2Nsa190aW1lcjMiLCAieGluMjRtIiwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigzKSwgMTMsIEdGTEFHUyksCisJR0FURShTQ0xLX1RJTUVSNCwgInNjbGtfdGltZXI0IiwgInhpbjI0bSIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMyksIDE0LCBHRkxBR1MpLAorCUdBVEUoU0NMS19USU1FUjUsICJzY2xrX3RpbWVyNSIsICJ4aW4yNG0iLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDMpLCAxNSwgR0ZMQUdTKSwKKworCUNPTVBPU0lURV9OT01VWChTQ0xLX1RTQURDLCAiY2xrX3RzYWRjIiwgInhpbjI0bSIsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigzMyksIDAsIDExLCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMyksIDUsIEdGTEFHUyksCisJQ09NUE9TSVRFX05PTVVYKFNDTEtfU0FSQURDLCAiY2xrX3NhcmFkYyIsICJ4aW4yNG0iLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMzQpLCAwLCAxMSwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDMpLCA2LCBHRkxBR1MpLAorCisJQ09NUE9TSVRFX05PTVVYKFNDTEtfT1RQLCAiY2xrX290cCIsICJ4aW4yNG0iLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMzUpLCAwLCA0LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMyksIDcsIEdGTEFHUyksCisJQ09NUE9TSVRFX05PTVVYKFNDTEtfT1RQX1VTUiwgImNsa19vdHBfdXNyIiwgImNsa19vdHAiLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMzUpLCA0LCAyLCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMyksIDgsIEdGTEFHUyksCisKKwlHQVRFKFNDTEtfQ1BVX0JPT1NULCAiY2xrX2NwdV9ib29zdCIsICJ4aW4yNG0iLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigzKSwgOSwgR0ZMQUdTKSwKKworCUNPTVBPU0lURShTQ0xLX0NSWVBUTywgImNsa19jcnlwdG8iLCBtdXhfZHBsbF92cGxsMF92cGxsMV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oNyksIDYsIDIsIE1GTEFHUywgMCwgNSwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEpLCA0LCBHRkxBR1MpLAorCUNPTVBPU0lURShTQ0xLX0NSWVBUT19BUEssICJjbGtfY3J5cHRvX2FwayIsIG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig3KSwgMTQsIDIsIE1GTEFHUywgOCwgNSwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEpLCA1LCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKDAsICJkY2xrX3ZvcF9zcmMiLCBtdXhfZHBsbF92cGxsMF92cGxsMV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oOCksIDEwLCAyLCBNRkxBR1MsIDAsIDgsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxKSwgNiwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfRlJBQ01VWCgwLCAiZGNsa192b3BfZnJhYyIsICJkY2xrX3ZvcF9zcmMiLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oOSksIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMSksIDcsIEdGTEFHUywKKwkJCSZyazMzMDhfZGNsa192b3BfZnJhY211eCksCisJR0FURShEQ0xLX1ZPUCwgImRjbGtfdm9wIiwgImRjbGtfdm9wX211eCIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMSksIDgsIEdGTEFHUyksCisKKwkvKgorCSAqIENsb2NrLUFyY2hpdGVjdHVyZSBEaWFncmFtIDQKKwkgKi8KKworCUNPTVBPU0lURV9OT0RJVihBQ0xLX1BFUklfU1JDLCAiY2xrX3Blcmlfc3JjIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFfcCwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigzNiksIDYsIDIsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig4KSwgMCwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfTk9NVVgoQUNMS19QRVJJLCAiYWNsa19wZXJpIiwgImNsa19wZXJpX3NyYyIsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS1NFTF9DT04oMzYpLCAwLCA1LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oOCksIDEsIEdGTEFHUyksCisJQ09NUE9TSVRFX05PTVVYKEhDTEtfUEVSSSwgImhjbGtfcGVyaSIsICJjbGtfcGVyaV9zcmMiLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDM3KSwgMCwgNSwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDgpLCAyLCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT01VWChQQ0xLX1BFUkksICJwY2xrX3BlcmkiLCAiY2xrX3Blcmlfc3JjIiwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigzNyksIDgsIDUsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig4KSwgMywgR0ZMQUdTKSwKKworCUNPTVBPU0lURShTQ0xLX05BTkRDX0RJViwgImNsa19uYW5kY19kaXYiLCBtdXhfZHBsbF92cGxsMF92cGxsMV9wLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDM4KSwgNiwgMiwgTUZMQUdTLCAwLCA1LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oOCksIDQsIEdGTEFHUyksCisJQ09NUE9TSVRFKFNDTEtfTkFORENfRElWNTAsICJjbGtfbmFuZGNfZGl2NTAiLCBtdXhfZHBsbF92cGxsMF92cGxsMV9wLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDM4KSwgNiwgMiwgTUZMQUdTLCAwLCA1LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oOCksIDQsIEdGTEFHUyksCisJQ09NUE9TSVRFX05PRElWKFNDTEtfTkFOREMsICJjbGtfbmFuZGMiLCBtdXhfbmFuZGNfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCB8IENMS19TRVRfUkFURV9OT19SRVBBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDM4KSwgMTUsIDEsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig4KSwgNSwgR0ZMQUdTKSwKKworCUNPTVBPU0lURShTQ0xLX1NETU1DX0RJViwgImNsa19zZG1tY19kaXYiLCBtdXhfZHBsbF92cGxsMF92cGxsMV94aW4yNG1fcCwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTigzOSksIDgsIDIsIE1GTEFHUywgMCwgOCwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDgpLCA2LCBHRkxBR1MpLAorCUNPTVBPU0lURShTQ0xLX1NETU1DX0RJVjUwLCAiY2xrX3NkbW1jX2RpdjUwIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFfeGluMjRtX3AsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS1NFTF9DT04oMzkpLCA4LCAyLCBNRkxBR1MsIDAsIDgsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig4KSwgNiwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfTk9ESVYoU0NMS19TRE1NQywgImNsa19zZG1tYyIsIG11eF9zZG1tY19wLCBDTEtfU0VUX1JBVEVfUEFSRU5UIHwgQ0xLX1NFVF9SQVRFX05PX1JFUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oMzkpLCAxNSwgMSwgTUZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDgpLCA3LCBHRkxBR1MpLAorCU1NQyhTQ0xLX1NETU1DX0RSViwgICAgICJzZG1tY19kcnYiLCAgICAiY2xrX3NkbW1jIiwgUkszMzA4X1NETU1DX0NPTjAsIDEpLAorCU1NQyhTQ0xLX1NETU1DX1NBTVBMRSwgICJzZG1tY19zYW1wbGUiLCAiY2xrX3NkbW1jIiwgUkszMzA4X1NETU1DX0NPTjEsIDEpLAorCisJQ09NUE9TSVRFKFNDTEtfU0RJT19ESVYsICJjbGtfc2Rpb19kaXYiLCBtdXhfZHBsbF92cGxsMF92cGxsMV94aW4yNG1fcCwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0MCksIDgsIDIsIE1GTEFHUywgMCwgOCwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDgpLCA4LCBHRkxBR1MpLAorCUNPTVBPU0lURShTQ0xLX1NESU9fRElWNTAsICJjbGtfc2Rpb19kaXY1MCIsIG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDQwKSwgOCwgMiwgTUZMQUdTLCAwLCA4LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oOCksIDgsIEdGTEFHUyksCisJQ09NUE9TSVRFX05PRElWKFNDTEtfU0RJTywgImNsa19zZGlvIiwgbXV4X3NkaW9fcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCB8IENMS19TRVRfUkFURV9OT19SRVBBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDQwKSwgMTUsIDEsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig4KSwgOSwgR0ZMQUdTKSwKKwlNTUMoU0NMS19TRElPX0RSViwJCSJzZGlvX2RydiIsICAgICJjbGtfc2RpbyIsCVJLMzMwOF9TRElPX0NPTjAsICAxKSwKKwlNTUMoU0NMS19TRElPX1NBTVBMRSwJInNkaW9fc2FtcGxlIiwgImNsa19zZGlvIiwJUkszMzA4X1NESU9fQ09OMSwgIDEpLAorCisJQ09NUE9TSVRFKFNDTEtfRU1NQ19ESVYsICJjbGtfZW1tY19kaXYiLCBtdXhfZHBsbF92cGxsMF92cGxsMV94aW4yNG1fcCwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0MSksIDgsIDIsIE1GTEFHUywgMCwgOCwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDgpLCAxMCwgR0ZMQUdTKSwKKwlDT01QT1NJVEUoU0NMS19FTU1DX0RJVjUwLCAiY2xrX2VtbWNfZGl2NTAiLCBtdXhfZHBsbF92cGxsMF92cGxsMV94aW4yNG1fcCwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0MSksIDgsIDIsIE1GTEFHUywgMCwgOCwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDgpLCAxMCwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfTk9ESVYoU0NMS19FTU1DLCAiY2xrX2VtbWMiLCBtdXhfZW1tY19wLCBDTEtfU0VUX1JBVEVfUEFSRU5UIHwgQ0xLX1NFVF9SQVRFX05PX1JFUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNDEpLCAxNSwgMSwgTUZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDgpLCAxMSwgR0ZMQUdTKSwKKwlNTUMoU0NMS19FTU1DX0RSViwgICAgICJlbW1jX2RydiIsICAgICAiY2xrX2VtbWMiLCAgUkszMzA4X0VNTUNfQ09OMCwgIDEpLAorCU1NQyhTQ0xLX0VNTUNfU0FNUExFLCAgImVtbWNfc2FtcGxlIiwgICJjbGtfZW1tYyIsICBSSzMzMDhfRU1NQ19DT04xLCAgMSksCisKKwlDT01QT1NJVEUoU0NMS19TRkMsICJjbGtfc2ZjIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFfcCwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDQyKSwgMTQsIDIsIE1GTEFHUywgMCwgNywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDgpLCAxMiwgR0ZMQUdTKSwKKworCUdBVEUoU0NMS19PVEdfQURQLCAiY2xrX290Z19hZHAiLCAiY2xrX3J0YzMyayIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oOCksIDEzLCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKFNDTEtfTUFDX1NSQywgImNsa19tYWNfc3JjIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFfcCwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDQzKSwgNiwgMiwgTUZMQUdTLCAwLCA1LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oOCksIDE0LCBHRkxBR1MpLAorCU1VWChTQ0xLX01BQywgImNsa19tYWMiLCBtdXhfbWFjX3AsICBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNDMpLCAxNCwgMSwgTUZMQUdTKSwKKwlHQVRFKFNDTEtfTUFDX1JFRiwgImNsa19tYWNfcmVmIiwgImNsa19tYWMiLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDkpLCAxLCBHRkxBR1MpLAorCUdBVEUoU0NMS19NQUNfUlhfVFgsICJjbGtfbWFjX3J4X3R4IiwgImNsa19tYWMiLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDkpLCAwLCBHRkxBR1MpLAorCUZBQ1RPUigwLCAiY2xrX21hY19yeF90eF9kaXYyIiwgImNsa19tYWNfcnhfdHgiLCAwLCAxLCAyKSwKKwlGQUNUT1IoMCwgImNsa19tYWNfcnhfdHhfZGl2MjAiLCAiY2xrX21hY19yeF90eCIsIDAsIDEsIDIwKSwKKwlNVVgoU0NMS19NQUNfUk1JSSwgImNsa19tYWNfcm1paV9zZWwiLCBtdXhfbWFjX3JtaWlfc2VsX3AsICBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNDMpLCAxNSwgMSwgTUZMQUdTKSwKKworCUNPTVBPU0lURShTQ0xLX09XSVJFLCAiY2xrX293aXJlIiwgbXV4X2RwbGxfdnBsbDBfeGluMjRtX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0NCksIDE0LCAyLCBNRkxBR1MsIDgsIDYsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig4KSwgMTUsIEdGTEFHUyksCisKKwkvKgorCSAqIENsb2NrLUFyY2hpdGVjdHVyZSBEaWFncmFtIDUKKwkgKi8KKworCUdBVEUoMCwgImNsa19kZHJfbW9uX3RpbWVyIiwgInhpbjI0bSIsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDApLCAxMiwgR0ZMQUdTKSwKKworCUdBVEUoMCwgImNsa19kZHJfbW9uIiwgImNsa19kZHJwaHkxeF9vdXQiLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig0KSwgMTAsIEdGTEFHUyksCisJR0FURSgwLCAiY2xrX2Rkcl91cGN0cmwiLCAiY2xrX2RkcnBoeTF4X291dCIsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDQpLCAxMSwgR0ZMQUdTKSwKKwlHQVRFKDAsICJjbGtfZGRyX21zY2giLCAiY2xrX2RkcnBoeTF4X291dCIsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDQpLCAxMiwgR0ZMQUdTKSwKKwlHQVRFKDAsICJjbGtfZGRyX21zY2hfcGVyaWJ1cyIsICJjbGtfZGRycGh5MXhfb3V0IiwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oNCksIDEzLCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKFNDTEtfRERSQ0xLLCAiY2xrX2RkcnBoeTR4X3NyYyIsIG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3AsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS1NFTF9DT04oMSksIDYsIDIsIE1GTEFHUywgMCwgMywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDApLCAxMCwgR0ZMQUdTKSwKKwlHQVRFKDAsICJjbGtfZGRycGh5NHgiLCAiY2xrX2RkcnBoeTR4X3NyYyIsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDApLCAxMSwgR0ZMQUdTKSwKKwlGQUNUT1JfR0FURSgwLCAiY2xrX2Rkcl9zdGRieV9kaXY0IiwgImNsa19kZHJwaHk0eCIsIENMS19JR05PUkVfVU5VU0VELCAxLCA0LAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDApLCAxMywgR0ZMQUdTKSwKKwlDT01QT1NJVEVfTk9ESVYoMCwgImNsa19kZHJzdGRieSIsIG11eF9kZHJzdGRieV9wLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDEpLCA4LCAxLCBNRkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oNCksIDE0LCBHRkxBR1MpLAorCisJLyoKKwkgKiBDbG9jay1BcmNoaXRlY3R1cmUgRGlhZ3JhbSA2CisJICovCisKKwlHQVRFKFBDTEtfUE1VLCAicGNsa19wbXUiLCAicGNsa19idXMiLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig0KSwgNSwgR0ZMQUdTKSwKKwlHQVRFKFNDTEtfUE1VLCAiY2xrX3BtdSIsICJwY2xrX2J1cyIsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDQpLCA2LCBHRkxBR1MpLAorCisJQ09NUE9TSVRFX0ZSQUNNVVgoMCwgImNsa19ydGMzMmtfZnJhYyIsICJ4aW4yNG0iLCBDTEtfSUdOT1JFX1VOVVNFRCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDMpLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDQpLCAzLCBHRkxBR1MsCisJCQkmcmszMzA4X3J0YzMya19mcmFjbXV4KSwKKwlNVVgoMCwgImNsa19ydGMzMmtfZGl2X3NyYyIsIG11eF92cGxsMF92cGxsMV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oMiksIDEwLCAxLCBNRkxBR1MpLAorCUNPTVBPU0lURV9OT01VWCgwLCAiY2xrX3J0YzMya19kaXYiLCAiY2xrX3J0YzMya19kaXZfc3JjIiwgQ0xLX0lHTk9SRV9VTlVTRUQgfCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNCksIDAsIDE2LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oNCksIDIsIEdGTEFHUyksCisKKwlDT01QT1NJVEUoMCwgImNsa191c2JwaHlfcmVmX3NyYyIsIG11eF9kcGxsX3ZwbGwwX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig3MiksIDYsIDEsIE1GTEFHUywgMCwgNiwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDQpLCA3LCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT0RJVihTQ0xLX1VTQlBIWV9SRUYsICJjbGtfdXNicGh5X3JlZiIsIG11eF91c2JwaHlfcmVmX3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig3MiksIDcsIDEsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig0KSwgOCwgR0ZMQUdTKSwKKworCUdBVEUoMCwgImNsa193aWZpX2RwbGwiLCAiZHBsbCIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTUpLCAyLCBHRkxBR1MpLAorCUdBVEUoMCwgImNsa193aWZpX3ZwbGwwIiwgInZwbGwwIiwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxNSksIDMsIEdGTEFHUyksCisJR0FURSgwLCAiY2xrX3dpZmlfb3NjIiwgInhpbjI0bSIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTUpLCA0LCBHRkxBR1MpLAorCUNPTVBPU0lURSgwLCAiY2xrX3dpZmlfc3JjIiwgbXV4X3dpZmlfc3JjX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0NCksIDYsIDEsIE1GTEFHUywgMCwgNiwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDQpLCAwLCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT0RJVihTQ0xLX1dJRkksICJjbGtfd2lmaSIsIG11eF93aWZpX3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0NCksIDcsIDEsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTig0KSwgMSwgR0ZMQUdTKSwKKworCUdBVEUoU0NMS19QVlRNX1BNVSwgImNsa19wdnRtX3BtdSIsICJ4aW4yNG0iLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDQpLCA0LCBHRkxBR1MpLAorCisJLyoKKwkgKiBDbG9jay1BcmNoaXRlY3R1cmUgRGlhZ3JhbSA3CisJICovCisKKwlDT01QT1NJVEVfTk9ESVYoMCwgImNsa19hdWRpb19zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0NSksIDYsIDIsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMCksIDAsIEdGTEFHUyksCisJQ09NUE9TSVRFX05PTVVYKEhDTEtfQVVESU8sICJoY2xrX2F1ZGlvIiwgImNsa19hdWRpb19zcmMiLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oNDUpLCAwLCA1LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTApLCAxLCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT01VWChQQ0xLX0FVRElPLCAicGNsa19hdWRpbyIsICJjbGtfYXVkaW9fc3JjIiwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDQ1KSwgOCwgNSwgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEwKSwgMiwgR0ZMQUdTKSwKKworCUNPTVBPU0lURSgwLCAiY2xrX3BkbV9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0NiksIDgsIDIsIE1GTEFHUywgMCwgNywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEwKSwgMywgR0ZMQUdTKSwKKwlDT01QT1NJVEVfRlJBQ01VWCgwLCAiY2xrX3BkbV9mcmFjIiwgImNsa19wZG1fc3JjIiwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDQ3KSwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMCksIDQsIEdGTEFHUywKKwkJCSZyazMzMDhfcGRtX2ZyYWNtdXgpLAorCUdBVEUoU0NMS19QRE0sICJjbGtfcGRtIiwgImNsa19wZG1fbXV4IiwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMCksIDUsIEdGTEFHUyksCisKKwlDT01QT1NJVEUoU0NMS19JMlMwXzhDSF9UWF9TUkMsICJjbGtfaTJzMF84Y2hfdHhfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oNTIpLCA4LCAyLCBNRkxBR1MsIDAsIDcsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMCksIDEyLCBHRkxBR1MpLAorCUNPTVBPU0lURV9GUkFDTVVYKDAsICJjbGtfaTJzMF84Y2hfdHhfZnJhYyIsICJjbGtfaTJzMF84Y2hfdHhfc3JjIiwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDUzKSwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMCksIDEzLCBHRkxBR1MsCisJCQkmcmszMzA4X2kyczBfOGNoX3R4X2ZyYWNtdXgpLAorCUNPTVBPU0lURV9OT0RJVihTQ0xLX0kyUzBfOENIX1RYLCAiY2xrX2kyczBfOGNoX3R4IiwgbXV4X2kyczBfOGNoX3R4X3J4X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig1MiksIDEyLCAxLCBNRkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTApLCAxNCwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfTk9ESVYoU0NMS19JMlMwXzhDSF9UWF9PVVQsICJjbGtfaTJzMF84Y2hfdHhfb3V0IiwgbXV4X2kyczBfOGNoX3R4X291dF9wLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNTIpLCAxNSwgMSwgTUZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEwKSwgMTUsIEdGTEFHUyksCisKKwlDT01QT1NJVEUoU0NMS19JMlMwXzhDSF9SWF9TUkMsICJjbGtfaTJzMF84Y2hfcnhfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oNTQpLCA4LCAyLCBNRkxBR1MsIDAsIDcsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMSksIDAsIEdGTEFHUyksCisJQ09NUE9TSVRFX0ZSQUNNVVgoMCwgImNsa19pMnMwXzhjaF9yeF9mcmFjIiwgImNsa19pMnMwXzhjaF9yeF9zcmMiLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNTUpLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDExKSwgMSwgR0ZMQUdTLAorCQkJJnJrMzMwOF9pMnMwXzhjaF9yeF9mcmFjbXV4KSwKKwlDT01QT1NJVEVfTk9ESVYoU0NMS19JMlMwXzhDSF9SWCwgImNsa19pMnMwXzhjaF9yeCIsIG11eF9pMnMwXzhjaF9yeF90eF9wLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNTQpLCAxMiwgMSwgTUZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDExKSwgMiwgR0ZMQUdTKSwKKwlHQVRFKFNDTEtfSTJTMF84Q0hfUlhfT1VULCAiY2xrX2kyczBfOGNoX3J4X291dCIsICJjbGtfaTJzMF84Y2hfcngiLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDExKSwgMywgR0ZMQUdTKSwKKworCUNPTVBPU0lURShTQ0xLX0kyUzFfOENIX1RYX1NSQywgImNsa19pMnMxXzhjaF90eF9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig1NiksIDgsIDIsIE1GTEFHUywgMCwgNywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDExKSwgNCwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfRlJBQ01VWCgwLCAiY2xrX2kyczFfOGNoX3R4X2ZyYWMiLCAiY2xrX2kyczFfOGNoX3R4X3NyYyIsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig1NyksIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTEpLCA1LCBHRkxBR1MsCisJCQkmcmszMzA4X2kyczFfOGNoX3R4X2ZyYWNtdXgpLAorCUNPTVBPU0lURV9OT0RJVihTQ0xLX0kyUzFfOENIX1RYLCAiY2xrX2kyczFfOGNoX3R4IiwgbXV4X2kyczFfOGNoX3R4X3J4X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig1NiksIDEyLCAxLCBNRkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTEpLCA2LCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT0RJVihTQ0xLX0kyUzFfOENIX1RYX09VVCwgImNsa19pMnMxXzhjaF90eF9vdXQiLCBtdXhfaTJzMV84Y2hfdHhfb3V0X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig1NiksIDE1LCAxLCBNRkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTEpLCA3LCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKFNDTEtfSTJTMV84Q0hfUlhfU1JDLCAiY2xrX2kyczFfOGNoX3J4X3NyYyIsIG11eF92cGxsMF92cGxsMV94aW4yNG1fcCwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDU4KSwgOCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTEpLCA4LCBHRkxBR1MpLAorCUNPTVBPU0lURV9GUkFDTVVYKDAsICJjbGtfaTJzMV84Y2hfcnhfZnJhYyIsICJjbGtfaTJzMV84Y2hfcnhfc3JjIiwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDU5KSwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMSksIDksIEdGTEFHUywKKwkJCSZyazMzMDhfaTJzMV84Y2hfcnhfZnJhY211eCksCisJQ09NUE9TSVRFX05PRElWKFNDTEtfSTJTMV84Q0hfUlgsICJjbGtfaTJzMV84Y2hfcngiLCBtdXhfaTJzMV84Y2hfcnhfdHhfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDU4KSwgMTIsIDEsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMSksIDEwLCBHRkxBR1MpLAorCUdBVEUoU0NMS19JMlMxXzhDSF9SWF9PVVQsICJjbGtfaTJzMV84Y2hfcnhfb3V0IiwgImNsa19pMnMxXzhjaF9yeCIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTEpLCAxMSwgR0ZMQUdTKSwKKworCUNPTVBPU0lURShTQ0xLX0kyUzJfOENIX1RYX1NSQywgImNsa19pMnMyXzhjaF90eF9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2MCksIDgsIDIsIE1GTEFHUywgMCwgNywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDExKSwgMTIsIEdGTEFHUyksCisJQ09NUE9TSVRFX0ZSQUNNVVgoMCwgImNsa19pMnMyXzhjaF90eF9mcmFjIiwgImNsa19pMnMyXzhjaF90eF9zcmMiLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNjEpLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDExKSwgMTMsIEdGTEFHUywKKwkJCSZyazMzMDhfaTJzMl84Y2hfdHhfZnJhY211eCksCisJQ09NUE9TSVRFX05PRElWKFNDTEtfSTJTMl84Q0hfVFgsICJjbGtfaTJzMl84Y2hfdHgiLCBtdXhfaTJzMl84Y2hfdHhfcnhfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDYwKSwgMTIsIDEsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMSksIDE0LCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT0RJVihTQ0xLX0kyUzJfOENIX1RYX09VVCwgImNsa19pMnMyXzhjaF90eF9vdXQiLCBtdXhfaTJzMl84Y2hfdHhfb3V0X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2MCksIDE1LCAxLCBNRkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTEpLCAxNSwgR0ZMQUdTKSwKKworCUNPTVBPU0lURShTQ0xLX0kyUzJfOENIX1JYX1NSQywgImNsa19pMnMyXzhjaF9yeF9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIDAsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2MiksIDgsIDIsIE1GTEFHUywgMCwgNywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEyKSwgMCwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfRlJBQ01VWCgwLCAiY2xrX2kyczJfOGNoX3J4X2ZyYWMiLCAiY2xrX2kyczJfOGNoX3J4X3NyYyIsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2MyksIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTIpLCAxLCBHRkxBR1MsCisJCQkmcmszMzA4X2kyczJfOGNoX3J4X2ZyYWNtdXgpLAorCUNPTVBPU0lURV9OT0RJVihTQ0xLX0kyUzJfOENIX1JYLCAiY2xrX2kyczJfOGNoX3J4IiwgbXV4X2kyczJfOGNoX3J4X3R4X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2MiksIDEyLCAxLCBNRkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTIpLCAyLCBHRkxBR1MpLAorCUdBVEUoU0NMS19JMlMyXzhDSF9SWF9PVVQsICJjbGtfaTJzMl84Y2hfcnhfb3V0IiwgImNsa19pMnMyXzhjaF9yeCIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTIpLCAzLCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKFNDTEtfSTJTM184Q0hfVFhfU1JDLCAiY2xrX2kyczNfOGNoX3R4X3NyYyIsIG11eF92cGxsMF92cGxsMV94aW4yNG1fcCwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDY0KSwgOCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTIpLCA0LCBHRkxBR1MpLAorCUNPTVBPU0lURV9GUkFDTVVYKDAsICJjbGtfaTJzM184Y2hfdHhfZnJhYyIsICJjbGtfaTJzM184Y2hfdHhfc3JjIiwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDY1KSwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMiksIDUsIEdGTEFHUywKKwkJCSZyazMzMDhfaTJzM184Y2hfdHhfZnJhY211eCksCisJQ09NUE9TSVRFX05PRElWKFNDTEtfSTJTM184Q0hfVFgsICJjbGtfaTJzM184Y2hfdHgiLCBtdXhfaTJzM184Y2hfdHhfcnhfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDY0KSwgMTIsIDEsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMiksIDYsIEdGTEFHUyksCisJQ09NUE9TSVRFX05PRElWKFNDTEtfSTJTM184Q0hfVFhfT1VULCAiY2xrX2kyczNfOGNoX3R4X291dCIsIG11eF9pMnMzXzhjaF90eF9vdXRfcCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDY0KSwgMTUsIDEsIE1GTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMiksIDcsIEdGTEFHUyksCisKKwlDT01QT1NJVEUoU0NMS19JMlMzXzhDSF9SWF9TUkMsICJjbGtfaTJzM184Y2hfcnhfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oNjYpLCA4LCAyLCBNRkxBR1MsIDAsIDcsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMiksIDgsIEdGTEFHUyksCisJQ09NUE9TSVRFX0ZSQUNNVVgoMCwgImNsa19pMnMzXzhjaF9yeF9mcmFjIiwgImNsa19pMnMzXzhjaF9yeF9zcmMiLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNjcpLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEyKSwgOSwgR0ZMQUdTLAorCQkJJnJrMzMwOF9pMnMzXzhjaF9yeF9mcmFjbXV4KSwKKwlDT01QT1NJVEVfTk9ESVYoU0NMS19JMlMzXzhDSF9SWCwgImNsa19pMnMzXzhjaF9yeCIsIG11eF9pMnMzXzhjaF9yeF90eF9wLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNjYpLCAxMiwgMSwgTUZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEyKSwgMTAsIEdGTEFHUyksCisJR0FURShTQ0xLX0kyUzNfOENIX1JYX09VVCwgImNsa19pMnMzXzhjaF9yeF9vdXQiLCAiY2xrX2kyczNfOGNoX3J4IiwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMiksIDExLCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKFNDTEtfSTJTMF8yQ0hfU1JDLCAiY2xrX2kyczBfMmNoX3NyYyIsIG11eF92cGxsMF92cGxsMV94aW4yNG1fcCwgMCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDY4KSwgOCwgMiwgTUZMQUdTLCAwLCA3LCBERkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTIpLCAxMiwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfRlJBQ01VWCgwLCAiY2xrX2kyczBfMmNoX2ZyYWMiLCAiY2xrX2kyczBfMmNoX3NyYyIsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig2OSksIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTIpLCAxMywgR0ZMQUdTLAorCQkJJnJrMzMwOF9pMnMwXzJjaF9mcmFjbXV4KSwKKwlHQVRFKFNDTEtfSTJTMF8yQ0gsICJjbGtfaTJzMF8yY2giLCAiY2xrX2kyczBfMmNoX211eCIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTIpLCAxNCwgR0ZMQUdTKSwKKwlDT01QT1NJVEVfTk9ESVYoU0NMS19JMlMwXzJDSF9PVVQsICJjbGtfaTJzMF8yY2hfb3V0IiwgbXV4X2kyczBfMmNoX291dF9wLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNjgpLCAxNSwgMSwgTUZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEyKSwgMTUsIEdGTEFHUyksCisKKwlDT01QT1NJVEUoU0NMS19JMlMxXzJDSF9TUkMsICJjbGtfaTJzMV8yY2hfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCAwLAorCQkJUkszMzA4X0NMS1NFTF9DT04oNzApLCA4LCAyLCBNRkxBR1MsIDAsIDcsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMyksIDAsIEdGTEFHUyksCisJQ09NUE9TSVRFX0ZSQUNNVVgoMCwgImNsa19pMnMxXzJjaF9mcmFjIiwgImNsa19pMnMxXzJjaF9zcmMiLCBDTEtfU0VUX1JBVEVfUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNzEpLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEzKSwgMSwgR0ZMQUdTLAorCQkJJnJrMzMwOF9pMnMxXzJjaF9mcmFjbXV4KSwKKwlHQVRFKFNDTEtfSTJTMV8yQ0gsICJjbGtfaTJzMV8yY2giLCAiY2xrX2kyczFfMmNoX211eCIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTMpLCAyLCBHRkxBR1MpLAorCUNPTVBPU0lURV9OT0RJVihTQ0xLX0kyUzFfMkNIX09VVCwgImNsa19pMnMxXzJjaF9vdXQiLCBtdXhfaTJzMV8yY2hfb3V0X3AsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig3MCksIDE1LCAxLCBNRkxBR1MsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTMpLCAzLCBHRkxBR1MpLAorCisJQ09NUE9TSVRFKFNDTEtfU1BESUZfVFhfRElWLCAiY2xrX3NwZGlmX3R4X2RpdiIsIG11eF92cGxsMF92cGxsMV94aW4yNG1fcCwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0OCksIDgsIDIsIE1GTEFHUywgMCwgNywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEwKSwgNiwgR0ZMQUdTKSwKKwlDT01QT1NJVEUoU0NMS19TUERJRl9UWF9ESVY1MCwgImNsa19zcGRpZl90eF9kaXY1MCIsIG11eF92cGxsMF92cGxsMV94aW4yNG1fcCwgQ0xLX0lHTk9SRV9VTlVTRUQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0OCksIDgsIDIsIE1GTEFHUywgMCwgNywgREZMQUdTLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEwKSwgNiwgR0ZMQUdTKSwKKwlNVVgoMCwgImNsa19zcGRpZl90eF9zcmMiLCBtdXhfc3BkaWZfdHhfc3JjX3AsIENMS19TRVRfUkFURV9QQVJFTlQgfCBDTEtfU0VUX1JBVEVfTk9fUkVQQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig0OCksIDEyLCAxLCBNRkxBR1MpLAorCUNPTVBPU0lURV9GUkFDTVVYKDAsICJjbGtfc3BkaWZfdHhfZnJhYyIsICJjbGtfc3BkaWZfdHhfc3JjIiwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwKKwkJCVJLMzMwOF9DTEtTRUxfQ09OKDQ5KSwgMCwKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMCksIDcsIEdGTEFHUywKKwkJCSZyazMzMDhfc3BkaWZfdHhfZnJhY211eCksCisJR0FURShTQ0xLX1NQRElGX1RYLCAiY2xrX3NwZGlmX3R4IiwgImNsa19zcGRpZl90eF9tdXgiLCAwLAorCQkJUkszMzA4X0NMS0dBVEVfQ09OKDEwKSwgOCwgR0ZMQUdTKSwKKworCUNPTVBPU0lURShTQ0xLX1NQRElGX1JYX0RJViwgImNsa19zcGRpZl9yeF9kaXYiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS1NFTF9DT04oNTApLCA4LCAyLCBNRkxBR1MsIDAsIDcsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMCksIDksIEdGTEFHUyksCisJQ09NUE9TSVRFKFNDTEtfU1BESUZfUlhfRElWNTAsICJjbGtfc3BkaWZfcnhfZGl2NTAiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIENMS19JR05PUkVfVU5VU0VELAorCQkJUkszMzA4X0NMS1NFTF9DT04oNTApLCA4LCAyLCBNRkxBR1MsIDAsIDcsIERGTEFHUywKKwkJCVJLMzMwOF9DTEtHQVRFX0NPTigxMCksIDksIEdGTEFHUyksCisJTVVYKDAsICJjbGtfc3BkaWZfcnhfc3JjIiwgbXV4X3NwZGlmX3J4X3NyY19wLCBDTEtfU0VUX1JBVEVfUEFSRU5UIHwgQ0xLX1NFVF9SQVRFX05PX1JFUEFSRU5ULAorCQkJUkszMzA4X0NMS1NFTF9DT04oNTApLCAxNCwgMSwgTUZMQUdTKSwKKwlDT01QT1NJVEVfRlJBQ01VWCgwLCAiY2xrX3NwZGlmX3J4X2ZyYWMiLCAiY2xrX3NwZGlmX3J4X3NyYyIsIENMS19TRVRfUkFURV9QQVJFTlQsCisJCQlSSzMzMDhfQ0xLU0VMX0NPTig1MSksIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTApLCAxMCwgR0ZMQUdTLAorCQkJJnJrMzMwOF9zcGRpZl9yeF9mcmFjbXV4KSwKKwlHQVRFKFNDTEtfU1BESUZfUlgsICJjbGtfc3BkaWZfcngiLCAiY2xrX3NwZGlmX3J4X211eCIsIDAsCisJCQlSSzMzMDhfQ0xLR0FURV9DT04oMTApLCAxMSwgR0ZMQUdTKSwKKworCS8qCisJICogQ2xvY2stQXJjaGl0ZWN0dXJlIERpYWdyYW0gOAorCSAqLworCisJR0FURSgwLCAiYWNsa19jb3JlX25pdSIsICJhY2xrX2NvcmUiLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDApLCA1LCBHRkxBR1MpLAorCUdBVEUoMCwgInBjbGtfY29yZV9kYmdfbml1IiwgImFjbGtfY29yZSIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oMCksIDYsIEdGTEFHUyksCisJR0FURSgwLCAicGNsa19jb3JlX2RiZ19kYXBsaXRlIiwgInBjbGtfY29yZV9kYmciLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDApLCA3LCBHRkxBR1MpLAorCUdBVEUoMCwgImFjbGtfY29yZV9wZXJmIiwgInBjbGtfY29yZV9kYmciLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDApLCA4LCBHRkxBR1MpLAorCUdBVEUoMCwgInBjbGtfY29yZV9ncmYiLCAicGNsa19jb3JlX2RiZyIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oMCksIDksIEdGTEFHUyksCisKKwlHQVRFKDAsICJhY2xrX3Blcmlfbml1IiwgImFjbGtfcGVyaSIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oOSksIDIsIEdGTEFHUyksCisJR0FURSgwLCAiYWNsa19wZXJpYnVzX25pdSIsICJhY2xrX3BlcmkiLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDkpLCAzLCBHRkxBR1MpLAorCUdBVEUoQUNMS19NQUMsICJhY2xrX21hYyIsICJhY2xrX3BlcmkiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oOSksIDQsIEdGTEFHUyksCisKKwlHQVRFKDAsICJoY2xrX3Blcmlfbml1IiwgImhjbGtfcGVyaSIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oOSksIDUsIEdGTEFHUyksCisJR0FURShIQ0xLX05BTkRDLCAiaGNsa19uYW5kYyIsICJoY2xrX3BlcmkiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oOSksIDYsIEdGTEFHUyksCisJR0FURShIQ0xLX1NETU1DLCAiaGNsa19zZG1tYyIsICJoY2xrX3BlcmkiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oOSksIDcsIEdGTEFHUyksCisJR0FURShIQ0xLX1NESU8sICJoY2xrX3NkaW8iLCAiaGNsa19wZXJpIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDkpLCA4LCBHRkxBR1MpLAorCUdBVEUoSENMS19FTU1DLCAiaGNsa19lbW1jIiwgImhjbGtfcGVyaSIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig5KSwgOSwgR0ZMQUdTKSwKKwlHQVRFKEhDTEtfU0ZDLCAiaGNsa19zZmMiLCAiaGNsa19wZXJpIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDkpLCAxMCwgR0ZMQUdTKSwKKwlHQVRFKEhDTEtfT1RHLCAiaGNsa19vdGciLCAiaGNsa19wZXJpIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDkpLCAxMSwgR0ZMQUdTKSwKKwlHQVRFKEhDTEtfSE9TVCwgImhjbGtfaG9zdCIsICJoY2xrX3BlcmkiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oOSksIDEyLCBHRkxBR1MpLAorCUdBVEUoSENMS19IT1NUX0FSQiwgImhjbGtfaG9zdF9hcmIiLCAiaGNsa19wZXJpIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDkpLCAxMywgR0ZMQUdTKSwKKworCUdBVEUoMCwgInBjbGtfcGVyaV9uaXUiLCAicGNsa19wZXJpIiwgQ0xLX0lHTk9SRV9VTlVTRUQsIFJLMzMwOF9DTEtHQVRFX0NPTig5KSwgMTQsIEdGTEFHUyksCisJR0FURShQQ0xLX01BQywgInBjbGtfbWFjIiwgInBjbGtfcGVyaSIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig5KSwgMTUsIEdGTEFHUyksCisKKwlHQVRFKDAsICJoY2xrX2F1ZGlvX25pdSIsICJoY2xrX2F1ZGlvIiwgQ0xLX0lHTk9SRV9VTlVTRUQsIFJLMzMwOF9DTEtHQVRFX0NPTigxNCksIDAsIEdGTEFHUyksCisJR0FURShIQ0xLX1BETSwgImhjbGtfcGRtIiwgImhjbGtfYXVkaW8iLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oMTQpLCAxLCBHRkxBR1MpLAorCUdBVEUoSENMS19TUERJRlRYLCAiaGNsa19zcGRpZnR4IiwgImhjbGtfYXVkaW8iLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oMTQpLCAyLCBHRkxBR1MpLAorCUdBVEUoSENMS19TUERJRlJYLCAiaGNsa19zcGRpZnJ4IiwgImhjbGtfYXVkaW8iLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oMTQpLCAzLCBHRkxBR1MpLAorCUdBVEUoSENMS19JMlMwXzhDSCwgImhjbGtfaTJzMF84Y2giLCAiaGNsa19hdWRpbyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTigxNCksIDQsIEdGTEFHUyksCisJR0FURShIQ0xLX0kyUzFfOENILCAiaGNsa19pMnMxXzhjaCIsICJoY2xrX2F1ZGlvIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDE0KSwgNSwgR0ZMQUdTKSwKKwlHQVRFKEhDTEtfSTJTMl84Q0gsICJoY2xrX2kyczJfOGNoIiwgImhjbGtfYXVkaW8iLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oMTQpLCA2LCBHRkxBR1MpLAorCUdBVEUoSENMS19JMlMzXzhDSCwgImhjbGtfaTJzM184Y2giLCAiaGNsa19hdWRpbyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTigxNCksIDcsIEdGTEFHUyksCisJR0FURShIQ0xLX0kyUzBfMkNILCAiaGNsa19pMnMwXzJjaCIsICJoY2xrX2F1ZGlvIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDE0KSwgOCwgR0ZMQUdTKSwKKwlHQVRFKEhDTEtfSTJTMV8yQ0gsICJoY2xrX2kyczFfMmNoIiwgImhjbGtfYXVkaW8iLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oMTQpLCA5LCBHRkxBR1MpLAorCUdBVEUoSENMS19WQUQsICJoY2xrX3ZhZCIsICJoY2xrX2F1ZGlvIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDE0KSwgMTAsIEdGTEFHUyksCisKKwlHQVRFKDAsICJwY2xrX2F1ZGlvX25pdSIsICJwY2xrX2F1ZGlvIiwgQ0xLX0lHTk9SRV9VTlVTRUQsIFJLMzMwOF9DTEtHQVRFX0NPTigxNCksIDExLCBHRkxBR1MpLAorCUdBVEUoUENMS19BQ09ERUMsICJwY2xrX2Fjb2RlYyIsICJwY2xrX2F1ZGlvIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDE0KSwgMTIsIEdGTEFHUyksCisKKwlHQVRFKDAsICJhY2xrX2J1c19uaXUiLCAiYWNsa19idXMiLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDUpLCAwLCBHRkxBR1MpLAorCUdBVEUoMCwgImFjbGtfaW50bWVtIiwgImFjbGtfYnVzIiwgQ0xLX0lHTk9SRV9VTlVTRUQsIFJLMzMwOF9DTEtHQVRFX0NPTig1KSwgMSwgR0ZMQUdTKSwKKwlHQVRFKEFDTEtfQ1JZUFRPLCAiYWNsa19jcnlwdG8iLCAiYWNsa19idXMiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oNSksIDIsIEdGTEFHUyksCisJR0FURShBQ0xLX1ZPUCwgImFjbGtfdm9wIiwgImFjbGtfYnVzIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDUpLCAzLCBHRkxBR1MpLAorCUdBVEUoMCwgImFjbGtfZ2ljIiwgImFjbGtfYnVzIiwgQ0xLX0lHTk9SRV9VTlVTRUQsIFJLMzMwOF9DTEtHQVRFX0NPTig1KSwgNCwgR0ZMQUdTKSwKKwkvKiBhY2xrX2RtYWNpMCBpcyBjb250cm9sbGVkIGJ5IHNncmZfY2xrZ2F0X2Nvbi4gKi8KKwlTR1JGX0dBVEUoQUNMS19ETUFDMCwgImFjbGtfZG1hYzAiLCAiYWNsa19idXMiKSwKKwkvKiBhY2xrX2RtYWMxIGlzIGNvbnRyb2xsZWQgYnkgc2dyZl9jbGtnYXRfY29uLiAqLworCVNHUkZfR0FURShBQ0xLX0RNQUMxLCAiYWNsa19kbWFjMSIsICJhY2xrX2J1cyIpLAorCS8qIHdhdGNoZG9nIHBjbGsgaXMgY29udHJvbGxlZCBieSBzZ3JmX2Nsa2dhdF9jb24uICovCisJU0dSRl9HQVRFKFBDTEtfV0RULCAicGNsa193ZHQiLCAicGNsa19idXMiKSwKKworCUdBVEUoMCwgImhjbGtfYnVzX25pdSIsICJoY2xrX2J1cyIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oNSksIDUsIEdGTEFHUyksCisJR0FURSgwLCAiaGNsa19yb20iLCAiaGNsa19idXMiLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDUpLCA2LCBHRkxBR1MpLAorCUdBVEUoSENMS19DUllQVE8sICJoY2xrX2NyeXB0byIsICJoY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig1KSwgNywgR0ZMQUdTKSwKKwlHQVRFKEhDTEtfVk9QLCAiaGNsa192b3AiLCAiaGNsa19idXMiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oNSksIDgsIEdGTEFHUyksCisKKwlHQVRFKDAsICJwY2xrX2J1c19uaXUiLCAicGNsa19idXMiLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDUpLCA5LCBHRkxBR1MpLAorCUdBVEUoUENMS19VQVJUMCwgInBjbGtfdWFydDAiLCAicGNsa19idXMiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oNSksIDEwLCBHRkxBR1MpLAorCUdBVEUoUENMS19VQVJUMSwgInBjbGtfdWFydDEiLCAicGNsa19idXMiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oNSksIDExLCBHRkxBR1MpLAorCUdBVEUoUENMS19VQVJUMiwgInBjbGtfdWFydDIiLCAicGNsa19idXMiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oNSksIDEyLCBHRkxBR1MpLAorCUdBVEUoUENMS19VQVJUMywgInBjbGtfdWFydDMiLCAicGNsa19idXMiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oNSksIDEzLCBHRkxBR1MpLAorCUdBVEUoUENMS19VQVJUNCwgInBjbGtfdWFydDQiLCAicGNsa19idXMiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oNSksIDE0LCBHRkxBR1MpLAorCUdBVEUoUENMS19JMkMwLCAicGNsa19pMmMwIiwgInBjbGtfYnVzIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDUpLCAxNSwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfSTJDMSwgInBjbGtfaTJjMSIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgMCwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfSTJDMiwgInBjbGtfaTJjMiIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgMSwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfSTJDMywgInBjbGtfaTJjMyIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgMiwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfUFdNMCwgInBjbGtfcHdtMCIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgMywgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfU1BJMCwgInBjbGtfc3BpMCIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgNCwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfU1BJMSwgInBjbGtfc3BpMSIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgNSwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfU1BJMiwgInBjbGtfc3BpMiIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgNiwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfU0FSQURDLCAicGNsa19zYXJhZGMiLCAicGNsa19idXMiLCAwLCBSSzMzMDhfQ0xLR0FURV9DT04oNiksIDcsIEdGTEFHUyksCisJR0FURShQQ0xLX1RTQURDLCAicGNsa190c2FkYyIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgOCwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfVElNRVIsICJwY2xrX3RpbWVyIiwgInBjbGtfYnVzIiwgMCwgUkszMzA4X0NMS0dBVEVfQ09OKDYpLCA5LCBHRkxBR1MpLAorCUdBVEUoUENMS19PVFBfTlMsICJwY2xrX290cF9ucyIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgMTAsIEdGTEFHUyksCisJR0FURShQQ0xLX0dQSU8wLCAicGNsa19ncGlvMCIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgMTIsIEdGTEFHUyksCisJR0FURShQQ0xLX0dQSU8xLCAicGNsa19ncGlvMSIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgMTMsIEdGTEFHUyksCisJR0FURShQQ0xLX0dQSU8yLCAicGNsa19ncGlvMiIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgMTQsIEdGTEFHUyksCisJR0FURShQQ0xLX0dQSU8zLCAicGNsa19ncGlvMyIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig2KSwgMTUsIEdGTEFHUyksCisJR0FURShQQ0xLX0dQSU80LCAicGNsa19ncGlvNCIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig3KSwgMCwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfU0dSRiwgInBjbGtfc2dyZiIsICJwY2xrX2J1cyIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oNyksIDEsIEdGTEFHUyksCisJR0FURShQQ0xLX0dSRiwgInBjbGtfZ3JmIiwgInBjbGtfYnVzIiwgQ0xLX0lHTk9SRV9VTlVTRUQsIFJLMzMwOF9DTEtHQVRFX0NPTig3KSwgMiwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfVVNCU0RfREVULCAicGNsa191c2JzZF9kZXQiLCAicGNsa19idXMiLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDcpLCAzLCBHRkxBR1MpLAorCUdBVEUoUENMS19ERFJfVVBDVEwsICJwY2xrX2Rkcl91cGN0bCIsICJwY2xrX2J1cyIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oNyksIDQsIEdGTEFHUyksCisJR0FURShQQ0xLX0REUl9NT04sICJwY2xrX2Rkcl9tb24iLCAicGNsa19idXMiLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDcpLCA1LCBHRkxBR1MpLAorCUdBVEUoUENMS19ERFJQSFksICJwY2xrX2RkcnBoeSIsICJwY2xrX2J1cyIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oNyksIDYsIEdGTEFHUyksCisJR0FURShQQ0xLX0REUl9TVERCWSwgInBjbGtfZGRyX3N0ZGJ5IiwgInBjbGtfYnVzIiwgQ0xLX0lHTk9SRV9VTlVTRUQsIFJLMzMwOF9DTEtHQVRFX0NPTig3KSwgNywgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfVVNCX0dSRiwgInBjbGtfdXNiX2dyZiIsICJwY2xrX2J1cyIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oNyksIDgsIEdGTEFHUyksCisJR0FURShQQ0xLX0NSVSwgInBjbGtfY3J1IiwgInBjbGtfYnVzIiwgQ0xLX0lHTk9SRV9VTlVTRUQsIFJLMzMwOF9DTEtHQVRFX0NPTig3KSwgOSwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfT1RQX1BIWSwgInBjbGtfb3RwX3BoeSIsICJwY2xrX2J1cyIsIDAsIFJLMzMwOF9DTEtHQVRFX0NPTig3KSwgMTAsIEdGTEFHUyksCisJR0FURShQQ0xLX0NQVV9CT09TVCwgInBjbGtfY3B1X2Jvb3N0IiwgInBjbGtfYnVzIiwgQ0xLX0lHTk9SRV9VTlVTRUQsIFJLMzMwOF9DTEtHQVRFX0NPTig3KSwgMTEsIEdGTEFHUyksCisJR0FURShQQ0xLX1BXTTEsICJwY2xrX3B3bTEiLCAicGNsa19idXMiLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDcpLCAxMiwgR0ZMQUdTKSwKKwlHQVRFKFBDTEtfUFdNMiwgInBjbGtfcHdtMiIsICJwY2xrX2J1cyIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oNyksIDEzLCBHRkxBR1MpLAorCUdBVEUoUENMS19DQU4sICJwY2xrX2NhbiIsICJwY2xrX2J1cyIsIENMS19JR05PUkVfVU5VU0VELCBSSzMzMDhfQ0xLR0FURV9DT04oNyksIDE0LCBHRkxBR1MpLAorCUdBVEUoUENMS19PV0lSRSwgInBjbGtfb3dpcmUiLCAicGNsa19idXMiLCBDTEtfSUdOT1JFX1VOVVNFRCwgUkszMzA4X0NMS0dBVEVfQ09OKDcpLCAxNSwgR0ZMQUdTKSwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCByazMzMDhfY3JpdGljYWxfY2xvY2tzW10gX19pbml0Y29uc3QgPSB7CisJImFjbGtfYnVzIiwKKwkiaGNsa19idXMiLAorCSJwY2xrX2J1cyIsCisJImFjbGtfcGVyaSIsCisJImhjbGtfcGVyaSIsCisJInBjbGtfcGVyaSIsCisJImhjbGtfYXVkaW8iLAorCSJwY2xrX2F1ZGlvIiwKKwkic2Nsa19kZHJjIiwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCByazMzMDhfY2xrX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKK3sKKwlzdHJ1Y3Qgcm9ja2NoaXBfY2xrX3Byb3ZpZGVyICpjdHg7CisJdm9pZCBfX2lvbWVtICpyZWdfYmFzZTsKKworCXJlZ19iYXNlID0gb2ZfaW9tYXAobnAsIDApOworCWlmICghcmVnX2Jhc2UpIHsKKwkJcHJfZXJyKCIlczogY291bGQgbm90IG1hcCBjcnUgcmVnaW9uXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybjsKKwl9CisKKwljdHggPSByb2NrY2hpcF9jbGtfaW5pdChucCwgcmVnX2Jhc2UsIENMS19OUl9DTEtTKTsKKwlpZiAoSVNfRVJSKGN0eCkpIHsKKwkJcHJfZXJyKCIlczogcm9ja2NoaXAgY2xrIGluaXQgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7CisJCWlvdW5tYXAocmVnX2Jhc2UpOworCQlyZXR1cm47CisJfQorCisJcm9ja2NoaXBfY2xrX3JlZ2lzdGVyX3BsbHMoY3R4LCByazMzMDhfcGxsX2Nsa3MsCisJCQkJICAgQVJSQVlfU0laRShyazMzMDhfcGxsX2Nsa3MpLAorCQkJCSAgIFJLMzMwOF9HUkZfU09DX1NUQVRVUzApOworCXJvY2tjaGlwX2Nsa19yZWdpc3Rlcl9icmFuY2hlcyhjdHgsIHJrMzMwOF9jbGtfYnJhbmNoZXMsCisJCQkJICAgICAgIEFSUkFZX1NJWkUocmszMzA4X2Nsa19icmFuY2hlcykpOworCXJvY2tjaGlwX2Nsa19wcm90ZWN0X2NyaXRpY2FsKHJrMzMwOF9jcml0aWNhbF9jbG9ja3MsCisJCQkJICAgICAgQVJSQVlfU0laRShyazMzMDhfY3JpdGljYWxfY2xvY2tzKSk7CisKKwlyb2NrY2hpcF9jbGtfcmVnaXN0ZXJfYXJtY2xrKGN0eCwgQVJNQ0xLLCAiYXJtY2xrIiwKKwkJCQkgICAgIG11eF9hcm1jbGtfcCwgQVJSQVlfU0laRShtdXhfYXJtY2xrX3ApLAorCQkJCSAgICAgJnJrMzMwOF9jcHVjbGtfZGF0YSwgcmszMzA4X2NwdWNsa19yYXRlcywKKwkJCQkgICAgIEFSUkFZX1NJWkUocmszMzA4X2NwdWNsa19yYXRlcykpOworCisJcm9ja2NoaXBfcmVnaXN0ZXJfc29mdHJzdChucCwgMTAsIHJlZ19iYXNlICsgUkszMzA4X1NPRlRSU1RfQ09OKDApLAorCQkJCSAgUk9DS0NISVBfU09GVFJTVF9ISVdPUkRfTUFTSyk7CisKKwlyb2NrY2hpcF9yZWdpc3Rlcl9yZXN0YXJ0X25vdGlmaWVyKGN0eCwgUkszMzA4X0dMQl9TUlNUX0ZTVCwgTlVMTCk7CisKKwlyb2NrY2hpcF9jbGtfb2ZfYWRkX3Byb3ZpZGVyKG5wLCBjdHgpOworfQorCitDTEtfT0ZfREVDTEFSRShyazMzMDhfY3J1LCAicm9ja2NoaXAscmszMzA4LWNydSIsIHJrMzMwOF9jbGtfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGstcnYxMTA4LmMgYi9kcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGstcnYxMTA4LmMKaW5kZXggOTZjYzZhZi4uNTk0N2QzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLXJ2MTEwOC5jCisrKyBiL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1ydjExMDguYwpAQCAtMTIyLDcgKzEyMiw2IEBAIFBOQU1FKG11eF91c2I0ODBtX3ByZV9wKQk9IHsgInVzYnBoeSIsICJ4aW4yNG0iIH07CiBQTkFNRShtdXhfaGRtaXBoeV9waHlfcCkJPSB7ICJoZG1pcGh5IiwgInhpbjI0bSIgfTsKIFBOQU1FKG11eF9kY2xrX2hkbWlwaHlfcHJlX3ApCT0geyAiZGNsa19oZG1pcGh5X3NyY19ncGxsIiwgImRjbGtfaGRtaXBoeV9zcmNfZHBsbCIgfTsKIFBOQU1FKG11eF9wbGxfc3JjXzRwbGxzX3ApCT0geyAiZHBsbCIsICJncGxsIiwgImhkbWlwaHkiLCAidXNiNDgwbSIgfTsKLVBOQU1FKG11eF9wbGxfc3JjXzNwbGxzX3ApCT0geyAiYXBsbCIsICJncGxsIiwgImRwbGwiIH07CiBQTkFNRShtdXhfcGxsX3NyY18ycGxsc19wKQk9IHsgImRwbGwiLCAiZ3BsbCIgfTsKIFBOQU1FKG11eF9wbGxfc3JjX2FwbGxfZ3BsbF9wKQk9IHsgImFwbGwiLCAiZ3BsbCIgfTsKIFBOQU1FKG11eF9hY2xrX3Blcmlfc3JjX3ApCT0geyAiYWNsa19wZXJpX3NyY19ncGxsIiwgImFjbGtfcGVyaV9zcmNfZHBsbCIgfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay5oIGIvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLmgKaW5kZXggYjgxMTU5Ny4uMjI3MWE4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLmgKKysrIGIvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLmgKQEAgLTEyMSw2ICsxMjEsMTkgQEAgc3RydWN0IGNsazsKICNkZWZpbmUgUkszMjg4X0VNTUNfQ09OMAkJMHgyMTgKICNkZWZpbmUgUkszMjg4X0VNTUNfQ09OMQkJMHgyMWMKIAorI2RlZmluZSBSSzMzMDhfUExMX0NPTih4KQkJUksyOTI4X1BMTF9DT04oeCkKKyNkZWZpbmUgUkszMzA4X0NMS1NFTF9DT04oeCkJCSgoeCkgKiAweDQgKyAweDEwMCkKKyNkZWZpbmUgUkszMzA4X0NMS0dBVEVfQ09OKHgpCQkoKHgpICogMHg0ICsgMHgzMDApCisjZGVmaW5lIFJLMzMwOF9HTEJfU1JTVF9GU1QJCTB4YjgKKyNkZWZpbmUgUkszMzA4X1NPRlRSU1RfQ09OKHgpCQkoKHgpICogMHg0ICsgMHg0MDApCisjZGVmaW5lIFJLMzMwOF9NT0RFX0NPTgkJCTB4YTAKKyNkZWZpbmUgUkszMzA4X1NETU1DX0NPTjAJCTB4NDgwCisjZGVmaW5lIFJLMzMwOF9TRE1NQ19DT04xCQkweDQ4NAorI2RlZmluZSBSSzMzMDhfU0RJT19DT04wCQkweDQ4OAorI2RlZmluZSBSSzMzMDhfU0RJT19DT04xCQkweDQ4YworI2RlZmluZSBSSzMzMDhfRU1NQ19DT04wCQkweDQ5MAorI2RlZmluZSBSSzMzMDhfRU1NQ19DT04xCQkweDQ5NAorCiAjZGVmaW5lIFJLMzMyOF9QTExfQ09OKHgpCQlSSzI5MjhfUExMX0NPTih4KQogI2RlZmluZSBSSzMzMjhfQ0xLU0VMX0NPTih4KQkJKCh4KSAqIDB4NCArIDB4MTAwKQogI2RlZmluZSBSSzMzMjhfQ0xLR0FURV9DT04oeCkJCSgoeCkgKiAweDQgKyAweDIwMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NpcmYvY2xrLWNvbW1vbi5jIGIvZHJpdmVycy9jbGsvc2lyZi9jbGstY29tbW9uLmMKaW5kZXggYWQ3OTUxYi4uZGNmNGUyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc2lyZi9jbGstY29tbW9uLmMKKysrIGIvZHJpdmVycy9jbGsvc2lyZi9jbGstY29tbW9uLmMKQEAgLTI5Nyw5ICsyOTcsMTAgQEAgc3RhdGljIHU4IGRtbl9jbGtfZ2V0X3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpodykKIHsKIAlzdHJ1Y3QgY2xrX2RtbiAqY2xrID0gdG9fZG1uY2xrKGh3KTsKIAl1MzIgY2ZnID0gY2xrY19yZWFkbChjbGstPnJlZ29mcyk7CisJY29uc3QgY2hhciAqbmFtZSA9IGNsa19od19nZXRfbmFtZShodyk7CiAKIAkvKiBwYXJlbnQgb2YgaW8gZG9tYWluIGNhbiBvbmx5IGJlIHBsbDMgKi8KLQlpZiAoc3RyY21wKGh3LT5pbml0LT5uYW1lLCAiaW8iKSA9PSAwKQorCWlmIChzdHJjbXAobmFtZSwgImlvIikgPT0gMCkKIAkJcmV0dXJuIDQ7CiAKIAlXQVJOX09OKChjZmcgJiAoQklUKDMpIC0gMSkpID4gNCk7CkBAIC0zMTEsOSArMzEyLDEwIEBAIHN0YXRpYyBpbnQgZG1uX2Nsa19zZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3LCB1OCBwYXJlbnQpCiB7CiAJc3RydWN0IGNsa19kbW4gKmNsayA9IHRvX2RtbmNsayhodyk7CiAJdTMyIGNmZyA9IGNsa2NfcmVhZGwoY2xrLT5yZWdvZnMpOworCWNvbnN0IGNoYXIgKm5hbWUgPSBjbGtfaHdfZ2V0X25hbWUoaHcpOwogCiAJLyogcGFyZW50IG9mIGlvIGRvbWFpbiBjYW4gb25seSBiZSBwbGwzICovCi0JaWYgKHN0cmNtcChody0+aW5pdC0+bmFtZSwgImlvIikgPT0gMCkKKwlpZiAoc3RyY21wKG5hbWUsICJpbyIpID09IDApCiAJCXJldHVybiAtRUlOVkFMOwogCiAJY2ZnICY9IH4oQklUKDMpIC0gMSk7CkBAIC0zNTMsNyArMzU1LDggQEAgc3RhdGljIGxvbmcgZG1uX2Nsa19yb3VuZF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiB7CiAJdW5zaWduZWQgbG9uZyBmaW47CiAJdW5zaWduZWQgcmF0aW8sIHdhaXQsIGhvbGQ7Ci0JdW5zaWduZWQgYml0cyA9IChzdHJjbXAoaHctPmluaXQtPm5hbWUsICJtZW0iKSA9PSAwKSA/IDMgOiA0OworCWNvbnN0IGNoYXIgKm5hbWUgPSBjbGtfaHdfZ2V0X25hbWUoaHcpOworCXVuc2lnbmVkIGJpdHMgPSAoc3RyY21wKG5hbWUsICJtZW0iKSA9PSAwKSA/IDMgOiA0OwogCiAJZmluID0gKnBhcmVudF9yYXRlOwogCXJhdGlvID0gZmluIC8gcmF0ZTsKQEAgLTM3NSw3ICszNzgsOCBAQCBzdGF0aWMgaW50IGRtbl9jbGtfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAlzdHJ1Y3QgY2xrX2RtbiAqY2xrID0gdG9fZG1uY2xrKGh3KTsKIAl1bnNpZ25lZCBsb25nIGZpbjsKIAl1bnNpZ25lZCByYXRpbywgd2FpdCwgaG9sZCwgcmVnOwotCXVuc2lnbmVkIGJpdHMgPSAoc3RyY21wKGh3LT5pbml0LT5uYW1lLCAibWVtIikgPT0gMCkgPyAzIDogNDsKKwljb25zdCBjaGFyICpuYW1lID0gY2xrX2h3X2dldF9uYW1lKGh3KTsKKwl1bnNpZ25lZCBiaXRzID0gKHN0cmNtcChuYW1lLCAibWVtIikgPT0gMCkgPyAzIDogNDsKIAogCWZpbiA9IHBhcmVudF9yYXRlOwogCXJhdGlvID0gZmluIC8gcmF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NvY2ZwZ2EvY2xrLWdhdGUuYyBiL2RyaXZlcnMvY2xrL3NvY2ZwZ2EvY2xrLWdhdGUuYwppbmRleCAzOTY2Y2Q0Li40M2VjZDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zb2NmcGdhL2Nsay1nYXRlLmMKKysrIGIvZHJpdmVycy9jbGsvc29jZnBnYS9jbGstZ2F0ZS5jCkBAIC0zMCwyMiArMzAsMjMgQEAgc3RhdGljIHU4IHNvY2ZwZ2FfY2xrX2dldF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHdjbGspCiB7CiAJdTMyIGw0X3NyYzsKIAl1MzIgcGVycGxsX3NyYzsKKwljb25zdCBjaGFyICpuYW1lID0gY2xrX2h3X2dldF9uYW1lKGh3Y2xrKTsKIAotCWlmIChzdHJlcShod2Nsay0+aW5pdC0+bmFtZSwgU09DRlBHQV9MNF9NUF9DTEspKSB7CisJaWYgKHN0cmVxKG5hbWUsIFNPQ0ZQR0FfTDRfTVBfQ0xLKSkgewogCQlsNF9zcmMgPSByZWFkbChjbGtfbWdyX2Jhc2VfYWRkciArIENMS01HUl9MNFNSQyk7CiAJCXJldHVybiBsNF9zcmMgJj0gMHgxOwogCX0KLQlpZiAoc3RyZXEoaHdjbGstPmluaXQtPm5hbWUsIFNPQ0ZQR0FfTDRfU1BfQ0xLKSkgeworCWlmIChzdHJlcShuYW1lLCBTT0NGUEdBX0w0X1NQX0NMSykpIHsKIAkJbDRfc3JjID0gcmVhZGwoY2xrX21ncl9iYXNlX2FkZHIgKyBDTEtNR1JfTDRTUkMpOwogCQlyZXR1cm4gISEobDRfc3JjICYgMik7CiAJfQogCiAJcGVycGxsX3NyYyA9IHJlYWRsKGNsa19tZ3JfYmFzZV9hZGRyICsgQ0xLTUdSX1BFUlBMTF9TUkMpOwotCWlmIChzdHJlcShod2Nsay0+aW5pdC0+bmFtZSwgU09DRlBHQV9NTUNfQ0xLKSkKKwlpZiAoc3RyZXEobmFtZSwgU09DRlBHQV9NTUNfQ0xLKSkKIAkJcmV0dXJuIHBlcnBsbF9zcmMgJj0gMHgzOwotCWlmIChzdHJlcShod2Nsay0+aW5pdC0+bmFtZSwgU09DRlBHQV9OQU5EX0NMSykgfHwKLQkJCXN0cmVxKGh3Y2xrLT5pbml0LT5uYW1lLCBTT0NGUEdBX05BTkRfWF9DTEspKQotCQkJcmV0dXJuIChwZXJwbGxfc3JjID4+IDIpICYgMzsKKwlpZiAoc3RyZXEobmFtZSwgU09DRlBHQV9OQU5EX0NMSykgfHwKKwkgICAgc3RyZXEobmFtZSwgU09DRlBHQV9OQU5EX1hfQ0xLKSkKKwkJcmV0dXJuIChwZXJwbGxfc3JjID4+IDIpICYgMzsKIAogCS8qIFFTUEkgY2xvY2sgKi8KIAlyZXR1cm4gKHBlcnBsbF9zcmMgPj4gNCkgJiAzOwpAQCAtNTUsMjQgKzU2LDI1IEBAIHN0YXRpYyB1OCBzb2NmcGdhX2Nsa19nZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3Y2xrKQogc3RhdGljIGludCBzb2NmcGdhX2Nsa19zZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3Y2xrLCB1OCBwYXJlbnQpCiB7CiAJdTMyIHNyY19yZWc7CisJY29uc3QgY2hhciAqbmFtZSA9IGNsa19od19nZXRfbmFtZShod2Nsayk7CiAKLQlpZiAoc3RyZXEoaHdjbGstPmluaXQtPm5hbWUsIFNPQ0ZQR0FfTDRfTVBfQ0xLKSkgeworCWlmIChzdHJlcShuYW1lLCBTT0NGUEdBX0w0X01QX0NMSykpIHsKIAkJc3JjX3JlZyA9IHJlYWRsKGNsa19tZ3JfYmFzZV9hZGRyICsgQ0xLTUdSX0w0U1JDKTsKIAkJc3JjX3JlZyAmPSB+MHgxOwogCQlzcmNfcmVnIHw9IHBhcmVudDsKIAkJd3JpdGVsKHNyY19yZWcsIGNsa19tZ3JfYmFzZV9hZGRyICsgQ0xLTUdSX0w0U1JDKTsKLQl9IGVsc2UgaWYgKHN0cmVxKGh3Y2xrLT5pbml0LT5uYW1lLCBTT0NGUEdBX0w0X1NQX0NMSykpIHsKKwl9IGVsc2UgaWYgKHN0cmVxKG5hbWUsIFNPQ0ZQR0FfTDRfU1BfQ0xLKSkgewogCQlzcmNfcmVnID0gcmVhZGwoY2xrX21ncl9iYXNlX2FkZHIgKyBDTEtNR1JfTDRTUkMpOwogCQlzcmNfcmVnICY9IH4weDI7CiAJCXNyY19yZWcgfD0gKHBhcmVudCA8PCAxKTsKIAkJd3JpdGVsKHNyY19yZWcsIGNsa19tZ3JfYmFzZV9hZGRyICsgQ0xLTUdSX0w0U1JDKTsKIAl9IGVsc2UgewogCQlzcmNfcmVnID0gcmVhZGwoY2xrX21ncl9iYXNlX2FkZHIgKyBDTEtNR1JfUEVSUExMX1NSQyk7Ci0JCWlmIChzdHJlcShod2Nsay0+aW5pdC0+bmFtZSwgU09DRlBHQV9NTUNfQ0xLKSkgeworCQlpZiAoc3RyZXEobmFtZSwgU09DRlBHQV9NTUNfQ0xLKSkgewogCQkJc3JjX3JlZyAmPSB+MHgzOwogCQkJc3JjX3JlZyB8PSBwYXJlbnQ7Ci0JCX0gZWxzZSBpZiAoc3RyZXEoaHdjbGstPmluaXQtPm5hbWUsIFNPQ0ZQR0FfTkFORF9DTEspIHx8Ci0JCQlzdHJlcShod2Nsay0+aW5pdC0+bmFtZSwgU09DRlBHQV9OQU5EX1hfQ0xLKSkgeworCQl9IGVsc2UgaWYgKHN0cmVxKG5hbWUsIFNPQ0ZQR0FfTkFORF9DTEspIHx8CisJCQlzdHJlcShuYW1lLCBTT0NGUEdBX05BTkRfWF9DTEspKSB7CiAJCQlzcmNfcmVnICY9IH4weEM7CiAJCQlzcmNfcmVnIHw9IChwYXJlbnQgPDwgMik7CiAJCX0gZWxzZSB7LyogUVNQSSBjbG9jayAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc29jZnBnYS9jbGstcGVyaXBoLWExMC5jIGIvZHJpdmVycy9jbGsvc29jZnBnYS9jbGstcGVyaXBoLWExMC5jCmluZGV4IGE4ZmY3MjIuLjNlMGM1NTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3NvY2ZwZ2EvY2xrLXBlcmlwaC1hMTAuYworKysgYi9kcml2ZXJzL2Nsay9zb2NmcGdhL2Nsay1wZXJpcGgtYTEwLmMKQEAgLTQwLDExICs0MCwxMiBAQCBzdGF0aWMgdTggY2xrX3BlcmljbGtfZ2V0X3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpod2NsaykKIHsKIAlzdHJ1Y3Qgc29jZnBnYV9wZXJpcGhfY2xrICpzb2NmcGdhY2xrID0gdG9fc29jZnBnYV9wZXJpcGhfY2xrKGh3Y2xrKTsKIAl1MzIgY2xrX3NyYzsKKwljb25zdCBjaGFyICpuYW1lID0gY2xrX2h3X2dldF9uYW1lKGh3Y2xrKTsKIAogCWNsa19zcmMgPSByZWFkbChzb2NmcGdhY2xrLT5ody5yZWcpOwotCWlmIChzdHJlcShod2Nsay0+aW5pdC0+bmFtZSwgU09DRlBHQV9NUFVfRlJFRV9DTEspIHx8Ci0JICAgIHN0cmVxKGh3Y2xrLT5pbml0LT5uYW1lLCBTT0NGUEdBX05PQ19GUkVFX0NMSykgfHwKLQkgICAgc3RyZXEoaHdjbGstPmluaXQtPm5hbWUsIFNPQ0ZQR0FfU0RNTUNfRlJFRV9DTEspKQorCWlmIChzdHJlcShuYW1lLCBTT0NGUEdBX01QVV9GUkVFX0NMSykgfHwKKwkgICAgc3RyZXEobmFtZSwgU09DRlBHQV9OT0NfRlJFRV9DTEspIHx8CisJICAgIHN0cmVxKG5hbWUsIFNPQ0ZQR0FfU0RNTUNfRlJFRV9DTEspKQogCQlyZXR1cm4gKGNsa19zcmMgPj4gQ0xLX01HUl9GUkVFX1NISUZUKSAmCiAJCQlDTEtfTUdSX0ZSRUVfTUFTSzsKIAllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zcGVhci9zcGVhcjEzNDBfY2xvY2suYyBiL2RyaXZlcnMvY2xrL3NwZWFyL3NwZWFyMTM0MF9jbG9jay5jCmluZGV4IGU1YmM4YzguLjkxNjNiYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3NwZWFyL3NwZWFyMTM0MF9jbG9jay5jCisrKyBiL2RyaXZlcnMvY2xrL3NwZWFyL3NwZWFyMTM0MF9jbG9jay5jCkBAIC0zMzUsNyArMzM1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdXhfY2xrX21hc2tzIGkyc19wcnMxX21hc2tzID0gewogfTsKIAogLyogaTJzIHNjbGsgKGJpdCBjbG9jaykgc3l5bnRoZXNpemVycyBtYXNrcyAqLwotc3RhdGljIHN0cnVjdCBhdXhfY2xrX21hc2tzIGkyc19zY2xrX21hc2tzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBhdXhfY2xrX21hc2tzIGkyc19zY2xrX21hc2tzID0gewogCS5lcV9zZWxfbWFzayA9IEFVWF9FUV9TRUxfTUFTSywKIAkuZXFfc2VsX3NoaWZ0ID0gU1BFQVIxMzQwX0kyU19TQ0xLX0VRX1NFTF9TSElGVCwKIAkuZXExX21hc2sgPSBBVVhfRVExX1NFTCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NwcmQvY29tbW9uLmMgYi9kcml2ZXJzL2Nsay9zcHJkL2NvbW1vbi5jCmluZGV4IGE1YmRjYTEuLjlkNTZlYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3NwcmQvY29tbW9uLmMKKysrIGIvZHJpdmVycy9jbGsvc3ByZC9jb21tb24uYwpAQCAtNzYsMTYgKzc2LDE3IEBAIGludCBzcHJkX2Nsa19wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhICpjbGtodykKIAlzdHJ1Y3QgY2xrX2h3ICpodzsKIAogCWZvciAoaSA9IDA7IGkgPCBjbGtody0+bnVtOyBpKyspIHsKKwkJY29uc3QgY2hhciAqbmFtZTsKIAogCQlodyA9IGNsa2h3LT5od3NbaV07Ci0KIAkJaWYgKCFodykKIAkJCWNvbnRpbnVlOwogCisJCW5hbWUgPSBody0+aW5pdC0+bmFtZTsKIAkJcmV0ID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIoZGV2LCBodyk7CiAJCWlmIChyZXQpIHsKIAkJCWRldl9lcnIoZGV2LCAiQ291bGRuJ3QgcmVnaXN0ZXIgY2xvY2sgJWQgLSAlc1xuIiwKLQkJCQlpLCBody0+aW5pdC0+bmFtZSk7CisJCQkJaSwgbmFtZSk7CiAJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3ByZC9wbGwuYyBiL2RyaXZlcnMvY2xrL3NwcmQvcGxsLmMKaW5kZXggMzZiNDQwMi4uNjQwMjcwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc3ByZC9wbGwuYworKysgYi9kcml2ZXJzL2Nsay9zcHJkL3BsbC5jCkBAIC0xMzYsNiArMTM2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgX3NwcmRfcGxsX3JlY2FsY19yYXRlKGNvbnN0IHN0cnVjdCBzcHJkX3BsbCAqcGxsLAogCQkJCQkgazIgKyByZWZpbiAqIG5pbnQgKiBDTEtfUExMXzFNOwogCX0KIAorCWtmcmVlKGNmZyk7CiAJcmV0dXJuIHJhdGU7CiB9CiAKQEAgLTIyMiw2ICsyMjMsNyBAQCBzdGF0aWMgaW50IF9zcHJkX3BsbF9zZXRfcmF0ZShjb25zdCBzdHJ1Y3Qgc3ByZF9wbGwgKnBsbCwKIAlpZiAoIXJldCkKIAkJdWRlbGF5KHBsbC0+dWRlbGF5KTsKIAorCWtmcmVlKGNmZyk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3QvY2xrLWZsZXhnZW4uYyBiL2RyaXZlcnMvY2xrL3N0L2Nsay1mbGV4Z2VuLmMKaW5kZXggZDE4ZTQ5Yi4uNDQxM2I2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc3QvY2xrLWZsZXhnZW4uYworKysgYi9kcml2ZXJzL2Nsay9zdC9jbGstZmxleGdlbi5jCkBAIC0zMjYsNiArMzI2LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHN0X29mX2ZsZXhnZW5fc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAkJcmV0dXJuOwogCiAJcmVnID0gb2ZfaW9tYXAocG5vZGUsIDApOworCW9mX25vZGVfcHV0KHBub2RlKTsKIAlpZiAoIXJlZykKIAkJcmV0dXJuOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdC9jbGtnZW4tZnN5bi5jIGIvZHJpdmVycy9jbGsvc3QvY2xrZ2VuLWZzeW4uYwppbmRleCBjYTFjY2RiLi5hMTU2YmQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zdC9jbGtnZW4tZnN5bi5jCisrKyBiL2RyaXZlcnMvY2xrL3N0L2Nsa2dlbi1mc3luLmMKQEAgLTY3LDcgKzY3LDYgQEAgc3RydWN0IGNsa2dlbl9xdWFkZnNfZGF0YSB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgc3RfcXVhZGZzX3BsbF9jMzJfb3BzOwotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHN0X3F1YWRmc19mczY2MGMzMl9vcHM7CiAKIHN0YXRpYyBpbnQgY2xrX2ZzNjYwYzMyX2RpZ19nZXRfcGFyYW1zKHVuc2lnbmVkIGxvbmcgaW5wdXQsCiAJCXVuc2lnbmVkIGxvbmcgb3V0cHV0LCBzdHJ1Y3Qgc3RtX2ZzICpmcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdC9jbGtnZW4tcGxsLmMgYi9kcml2ZXJzL2Nsay9zdC9jbGtnZW4tcGxsLmMKaW5kZXggZDhhNjg4Yi4uYzM5NTJmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc3QvY2xrZ2VuLXBsbC5jCisrKyBiL2RyaXZlcnMvY2xrL3N0L2Nsa2dlbi1wbGwuYwpAQCAtNjEsMTkgKzYxLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHN0bV9wbGwzMjAwYzMyX29wczsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBzdG1fcGxsMzIwMGMzMl9hOV9vcHM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgc3RtX3BsbDQ2MDBjMjhfb3BzOwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa2dlbl9wbGxfZGF0YSBzdF9wbGwzMjAwYzMyXzQwN19hMCA9IHsKLQkvKiA0MDcgQTAgKi8KLQkucGRuX3N0YXR1cwk9IENMS0dFTl9GSUVMRCgweDJhMCwJMHgxLAkJCTgpLAotCS5wZG5fY3RybAk9IENMS0dFTl9GSUVMRCgweDJhMCwJMHgxLAkJCTgpLAotCS5sb2NrZWRfc3RhdHVzCT0gQ0xLR0VOX0ZJRUxEKDB4MmEwLAkweDEsCQkJMjQpLAotCS5uZGl2CQk9IENMS0dFTl9GSUVMRCgweDJhNCwJQzMyX05ESVZfTUFTSywJCTE2KSwKLQkuaWRmCQk9IENMS0dFTl9GSUVMRCgweDJhNCwJQzMyX0lERl9NQVNLLAkJMHgwKSwKLQkubnVtX29kZnMgPSAxLAotCS5vZGYJCT0geyBDTEtHRU5fRklFTEQoMHgyYjQsIEMzMl9PREZfTUFTSywJCTApIH0sCi0JLm9kZl9nYXRlCT0geyBDTEtHRU5fRklFTEQoMHgyYjQsCTB4MSwJCQk2KSB9LAotCS5vcHMJCT0gJnN0bV9wbGwzMjAwYzMyX29wcywKLX07Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrZ2VuX3BsbF9kYXRhIHN0X3BsbDMyMDBjMzJfY3hfMCA9IHsKIAkvKiA0MDcgQzAgUExMMCAqLwogCS5wZG5fc3RhdHVzCT0gQ0xLR0VOX0ZJRUxEKDB4MmEwLAkweDEsCQkJOCksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuNTBpLWg2LmMgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuNTBpLWg2LmMKaW5kZXggYWViZWY0YS4uZDg5MzUzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjUwaS1oNi5jCisrKyBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW41MGktaDYuYwpAQCAtNTA1LDcgKzUwNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2N1X2RpdiBpMnMzX2NsayA9IHsKIAkJLmh3LmluaXQJPSBDTEtfSFdfSU5JVF9QQVJFTlRTKCJpMnMzIiwKIAkJCQkJCSAgICAgIGF1ZGlvX3BhcmVudHMsCiAJCQkJCQkgICAgICAmY2N1X2Rpdl9vcHMsCi0JCQkJCQkgICAgICAwKSwKKwkJCQkJCSAgICAgIENMS19TRVRfUkFURV9QQVJFTlQpLAogCX0sCiB9OwogCkBAIC01MTgsNyArNTE4LDcgQEAgc3RhdGljIHN0cnVjdCBjY3VfZGl2IGkyczBfY2xrID0gewogCQkuaHcuaW5pdAk9IENMS19IV19JTklUX1BBUkVOVFMoImkyczAiLAogCQkJCQkJICAgICAgYXVkaW9fcGFyZW50cywKIAkJCQkJCSAgICAgICZjY3VfZGl2X29wcywKLQkJCQkJCSAgICAgIDApLAorCQkJCQkJICAgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCksCiAJfSwKIH07CiAKQEAgLTUzMSw3ICs1MzEsNyBAQCBzdGF0aWMgc3RydWN0IGNjdV9kaXYgaTJzMV9jbGsgPSB7CiAJCS5ody5pbml0CT0gQ0xLX0hXX0lOSVRfUEFSRU5UUygiaTJzMSIsCiAJCQkJCQkgICAgICBhdWRpb19wYXJlbnRzLAogCQkJCQkJICAgICAgJmNjdV9kaXZfb3BzLAotCQkJCQkJICAgICAgMCksCisJCQkJCQkgICAgICBDTEtfU0VUX1JBVEVfUEFSRU5UKSwKIAl9LAogfTsKIApAQCAtNTQ0LDcgKzU0NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2N1X2RpdiBpMnMyX2NsayA9IHsKIAkJLmh3LmluaXQJPSBDTEtfSFdfSU5JVF9QQVJFTlRTKCJpMnMyIiwKIAkJCQkJCSAgICAgIGF1ZGlvX3BhcmVudHMsCiAJCQkJCQkgICAgICAmY2N1X2Rpdl9vcHMsCi0JCQkJCQkgICAgICAwKSwKKwkJCQkJCSAgICAgIENMS19TRVRfUkFURV9QQVJFTlQpLAogCX0sCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjNzLmMgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjNzLmMKaW5kZXggOWIzOTM5Zi4uNWM3NzllZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXYzcy5jCisrKyBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12M3MuYwpAQCAtNzcsNyArNzcsNyBAQCBzdGF0aWMgU1VOWElfQ0NVX05NX1dJVEhfRlJBQ19HQVRFX0xPQ0socGxsX3ZlX2NsaywgInBsbC12ZSIsCiAJCQkJCUJJVCgyOCksCS8qIGxvY2sgKi8KIAkJCQkJMCk7CiAKLXN0YXRpYyBTVU5YSV9DQ1VfTktNX1dJVEhfR0FURV9MT0NLKHBsbF9kZHJfY2xrLCAicGxsLWRkciIsCitzdGF0aWMgU1VOWElfQ0NVX05LTV9XSVRIX0dBVEVfTE9DSyhwbGxfZGRyMF9jbGssICJwbGwtZGRyMCIsCiAJCQkJICAgICJvc2MyNE0iLCAweDAyMCwKIAkJCQkgICAgOCwgNSwJLyogTiAqLwogCQkJCSAgICA0LCAyLAkvKiBLICovCkBAIC0xMTYsNiArMTE2LDE0IEBAIHN0YXRpYyBTVU5YSV9DQ1VfTktfV0lUSF9HQVRFX0xPQ0tfUE9TVERJVihwbGxfcGVyaXBoMV9jbGssICJwbGwtcGVyaXBoMSIsCiAJCQkJCSAgIDIsCQkvKiBwb3N0LWRpdiAqLwogCQkJCQkgICAwKTsKIAorc3RhdGljIFNVTlhJX0NDVV9OTV9XSVRIX0dBVEVfTE9DSyhwbGxfZGRyMV9jbGssICJwbGwtZGRyMSIsCisJCQkJICAgIm9zYzI0TSIsIDB4MDRjLAorCQkJCSAgIDgsIDcsCS8qIE4gKi8KKwkJCQkgICAwLCAyLAkvKiBNICovCisJCQkJICAgQklUKDMxKSwJLyogZ2F0ZSAqLworCQkJCSAgIEJJVCgyOCksCS8qIGxvY2sgKi8KKwkJCQkgICAwKTsKKwogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjcHVfcGFyZW50c1tdID0geyAib3NjMzJrIiwgIm9zYzI0TSIsCiAJCQkJCSAgICAgInBsbC1jcHUiLCAicGxsLWNwdSIgfTsKIHN0YXRpYyBTVU5YSV9DQ1VfTVVYKGNwdV9jbGssICJjcHUiLCBjcHVfcGFyZW50cywKQEAgLTIyNyw2ICsyMzUsOCBAQCBzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2NvZGVjX2NsaywJImJ1cy1jb2RlYyIsCSJhcGIxIiwKIAkJICAgICAgMHgwNjgsIEJJVCgwKSwgMCk7CiBzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX3Bpb19jbGssCSJidXMtcGlvIiwJImFwYjEiLAogCQkgICAgICAweDA2OCwgQklUKDUpLCAwKTsKK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfaTJzMF9jbGssCSJidXMtaTJzMCIsCSJhcGIxIiwKKwkJICAgICAgMHgwNjgsIEJJVCgxMiksIDApOwogCiBzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2kyYzBfY2xrLAkiYnVzLWkyYzAiLAkiYXBiMiIsCiAJCSAgICAgIDB4MDZjLCBCSVQoMCksIDApOwpAQCAtMjk4LDEyICszMDgsMTggQEAgc3RhdGljIFNVTlhJX0NDVV9NUF9XSVRIX01VWF9HQVRFKHNwaTBfY2xrLCAic3BpMCIsIG1vZDBfZGVmYXVsdF9wYXJlbnRzLCAweDBhMCwKIAkJCQkgIEJJVCgzMSksCS8qIGdhdGUgKi8KIAkJCQkgIDApOwogCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGkyc19wYXJlbnRzW10gPSB7ICJwbGwtYXVkaW8tOHgiLCAicGxsLWF1ZGlvLTR4IiwKKwkJCQkJICAgICJwbGwtYXVkaW8tMngiLCAicGxsLWF1ZGlvIiB9Oworc3RhdGljIFNVTlhJX0NDVV9NVVhfV0lUSF9HQVRFKGkyczBfY2xrLCAiaTJzMCIsIGkyc19wYXJlbnRzLAorCQkJICAgICAgIDB4MGIwLCAxNiwgMiwgQklUKDMxKSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7CisKIHN0YXRpYyBTVU5YSV9DQ1VfR0FURSh1c2JfcGh5MF9jbGssCSJ1c2ItcGh5MCIsCSJvc2MyNE0iLAogCQkgICAgICAweDBjYywgQklUKDgpLCAwKTsKIHN0YXRpYyBTVU5YSV9DQ1VfR0FURSh1c2Jfb2hjaTBfY2xrLAkidXNiLW9oY2kwIiwJIm9zYzI0TSIsCiAJCSAgICAgIDB4MGNjLCBCSVQoMTYpLCAwKTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkcmFtX3BhcmVudHNbXSA9IHsgInBsbC1kZHIiLCAicGxsLXBlcmlwaDAtMngiIH07CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRyYW1fcGFyZW50c1tdID0geyAicGxsLWRkcjAiLCAicGxsLWRkcjEiLAorCQkJCQkgICAgICJwbGwtcGVyaXBoMC0yeCIgfTsKIHN0YXRpYyBTVU5YSV9DQ1VfTV9XSVRIX01VWChkcmFtX2NsaywgImRyYW0iLCBkcmFtX3BhcmVudHMsCiAJCQkgICAgMHgwZjQsIDAsIDQsIDIwLCAyLCBDTEtfSVNfQ1JJVElDQUwpOwogCkBAIC0zNjMsMTAgKzM3OSwxMSBAQCBzdGF0aWMgc3RydWN0IGNjdV9jb21tb24gKnN1bjhpX3Yzc19jY3VfY2xrc1tdID0gewogCSZwbGxfYXVkaW9fYmFzZV9jbGsuY29tbW9uLAogCSZwbGxfdmlkZW9fY2xrLmNvbW1vbiwKIAkmcGxsX3ZlX2Nsay5jb21tb24sCi0JJnBsbF9kZHJfY2xrLmNvbW1vbiwKKwkmcGxsX2RkcjBfY2xrLmNvbW1vbiwKIAkmcGxsX3BlcmlwaDBfY2xrLmNvbW1vbiwKIAkmcGxsX2lzcF9jbGsuY29tbW9uLAogCSZwbGxfcGVyaXBoMV9jbGsuY29tbW9uLAorCSZwbGxfZGRyMV9jbGsuY29tbW9uLAogCSZjcHVfY2xrLmNvbW1vbiwKIAkmYXhpX2Nsay5jb21tb24sCiAJJmFoYjFfY2xrLmNvbW1vbiwKQEAgLTQzMyw2ICs0NTAsODAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfaHcgKmNsa19wYXJlbnRfcGxsX2F1ZGlvW10gPSB7CiAJJnBsbF9hdWRpb19iYXNlX2Nsay5jb21tb24uaHcKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgY2N1X2NvbW1vbiAqc3VuOGlfdjNfY2N1X2Nsa3NbXSA9IHsKKwkmcGxsX2NwdV9jbGsuY29tbW9uLAorCSZwbGxfYXVkaW9fYmFzZV9jbGsuY29tbW9uLAorCSZwbGxfdmlkZW9fY2xrLmNvbW1vbiwKKwkmcGxsX3ZlX2Nsay5jb21tb24sCisJJnBsbF9kZHIwX2Nsay5jb21tb24sCisJJnBsbF9wZXJpcGgwX2Nsay5jb21tb24sCisJJnBsbF9pc3BfY2xrLmNvbW1vbiwKKwkmcGxsX3BlcmlwaDFfY2xrLmNvbW1vbiwKKwkmcGxsX2RkcjFfY2xrLmNvbW1vbiwKKwkmY3B1X2Nsay5jb21tb24sCisJJmF4aV9jbGsuY29tbW9uLAorCSZhaGIxX2Nsay5jb21tb24sCisJJmFwYjFfY2xrLmNvbW1vbiwKKwkmYXBiMl9jbGsuY29tbW9uLAorCSZhaGIyX2Nsay5jb21tb24sCisJJmJ1c19jZV9jbGsuY29tbW9uLAorCSZidXNfZG1hX2Nsay5jb21tb24sCisJJmJ1c19tbWMwX2Nsay5jb21tb24sCisJJmJ1c19tbWMxX2Nsay5jb21tb24sCisJJmJ1c19tbWMyX2Nsay5jb21tb24sCisJJmJ1c19kcmFtX2Nsay5jb21tb24sCisJJmJ1c19lbWFjX2Nsay5jb21tb24sCisJJmJ1c19oc3RpbWVyX2Nsay5jb21tb24sCisJJmJ1c19zcGkwX2Nsay5jb21tb24sCisJJmJ1c19vdGdfY2xrLmNvbW1vbiwKKwkmYnVzX2VoY2kwX2Nsay5jb21tb24sCisJJmJ1c19vaGNpMF9jbGsuY29tbW9uLAorCSZidXNfdmVfY2xrLmNvbW1vbiwKKwkmYnVzX3Rjb24wX2Nsay5jb21tb24sCisJJmJ1c19jc2lfY2xrLmNvbW1vbiwKKwkmYnVzX2RlX2Nsay5jb21tb24sCisJJmJ1c19jb2RlY19jbGsuY29tbW9uLAorCSZidXNfcGlvX2Nsay5jb21tb24sCisJJmJ1c19pMnMwX2Nsay5jb21tb24sCisJJmJ1c19pMmMwX2Nsay5jb21tb24sCisJJmJ1c19pMmMxX2Nsay5jb21tb24sCisJJmJ1c191YXJ0MF9jbGsuY29tbW9uLAorCSZidXNfdWFydDFfY2xrLmNvbW1vbiwKKwkmYnVzX3VhcnQyX2Nsay5jb21tb24sCisJJmJ1c19lcGh5X2Nsay5jb21tb24sCisJJmJ1c19kYmdfY2xrLmNvbW1vbiwKKwkmbW1jMF9jbGsuY29tbW9uLAorCSZtbWMwX3NhbXBsZV9jbGsuY29tbW9uLAorCSZtbWMwX291dHB1dF9jbGsuY29tbW9uLAorCSZtbWMxX2Nsay5jb21tb24sCisJJm1tYzFfc2FtcGxlX2Nsay5jb21tb24sCisJJm1tYzFfb3V0cHV0X2Nsay5jb21tb24sCisJJm1tYzJfY2xrLmNvbW1vbiwKKwkmbW1jMl9zYW1wbGVfY2xrLmNvbW1vbiwKKwkmbW1jMl9vdXRwdXRfY2xrLmNvbW1vbiwKKwkmY2VfY2xrLmNvbW1vbiwKKwkmc3BpMF9jbGsuY29tbW9uLAorCSZpMnMwX2Nsay5jb21tb24sCisJJnVzYl9waHkwX2Nsay5jb21tb24sCisJJnVzYl9vaGNpMF9jbGsuY29tbW9uLAorCSZkcmFtX2Nsay5jb21tb24sCisJJmRyYW1fdmVfY2xrLmNvbW1vbiwKKwkmZHJhbV9jc2lfY2xrLmNvbW1vbiwKKwkmZHJhbV9vaGNpX2Nsay5jb21tb24sCisJJmRyYW1fZWhjaV9jbGsuY29tbW9uLAorCSZkZV9jbGsuY29tbW9uLAorCSZ0Y29uX2Nsay5jb21tb24sCisJJmNzaV9taXNjX2Nsay5jb21tb24sCisJJmNzaTBfbWNsa19jbGsuY29tbW9uLAorCSZjc2kxX3NjbGtfY2xrLmNvbW1vbiwKKwkmY3NpMV9tY2xrX2Nsay5jb21tb24sCisJJnZlX2Nsay5jb21tb24sCisJJmFjX2RpZ19jbGsuY29tbW9uLAorCSZhdnNfY2xrLmNvbW1vbiwKKwkmbWJ1c19jbGsuY29tbW9uLAorCSZtaXBpX2NzaV9jbGsuY29tbW9uLAorfTsKKwogLyogV2UgaGFyZGNvZGUgdGhlIGRpdmlkZXIgdG8gNCBmb3Igbm93ICovCiBzdGF0aWMgQ0xLX0ZJWEVEX0ZBQ1RPUl9IV1MocGxsX2F1ZGlvX2NsaywgInBsbC1hdWRpbyIsCiAJCQkgICAgY2xrX3BhcmVudF9wbGxfYXVkaW8sCkBAIC00NjAsMTEgKzU1MSwxMiBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgc3VuOGlfdjNzX2h3X2Nsa3MgPSB7CiAJCVtDTEtfUExMX0FVRElPXzhYXQk9ICZwbGxfYXVkaW9fOHhfY2xrLmh3LAogCQlbQ0xLX1BMTF9WSURFT10JCT0gJnBsbF92aWRlb19jbGsuY29tbW9uLmh3LAogCQlbQ0xLX1BMTF9WRV0JCT0gJnBsbF92ZV9jbGsuY29tbW9uLmh3LAotCQlbQ0xLX1BMTF9ERFJdCQk9ICZwbGxfZGRyX2Nsay5jb21tb24uaHcsCisJCVtDTEtfUExMX0REUjBdCQk9ICZwbGxfZGRyMF9jbGsuY29tbW9uLmh3LAogCQlbQ0xLX1BMTF9QRVJJUEgwXQk9ICZwbGxfcGVyaXBoMF9jbGsuY29tbW9uLmh3LAogCQlbQ0xLX1BMTF9QRVJJUEgwXzJYXQk9ICZwbGxfcGVyaXBoMF8yeF9jbGsuaHcsCiAJCVtDTEtfUExMX0lTUF0JCT0gJnBsbF9pc3BfY2xrLmNvbW1vbi5odywKIAkJW0NMS19QTExfUEVSSVBIMV0JPSAmcGxsX3BlcmlwaDFfY2xrLmNvbW1vbi5odywKKwkJW0NMS19QTExfRERSMV0JCT0gJnBsbF9kZHIxX2Nsay5jb21tb24uaHcsCiAJCVtDTEtfQ1BVXQkJPSAmY3B1X2Nsay5jb21tb24uaHcsCiAJCVtDTEtfQVhJXQkJPSAmYXhpX2Nsay5jb21tb24uaHcsCiAJCVtDTEtfQUhCMV0JCT0gJmFoYjFfY2xrLmNvbW1vbi5odywKQEAgLTUwMiw2ICs1OTQsOSBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgc3VuOGlfdjNzX2h3X2Nsa3MgPSB7CiAJCVtDTEtfTU1DMV0JCT0gJm1tYzFfY2xrLmNvbW1vbi5odywKIAkJW0NMS19NTUMxX1NBTVBMRV0JPSAmbW1jMV9zYW1wbGVfY2xrLmNvbW1vbi5odywKIAkJW0NMS19NTUMxX09VVFBVVF0JPSAmbW1jMV9vdXRwdXRfY2xrLmNvbW1vbi5odywKKwkJW0NMS19NTUMyXQkJPSAmbW1jMl9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX01NQzJfU0FNUExFXQk9ICZtbWMyX3NhbXBsZV9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX01NQzJfT1VUUFVUXQk9ICZtbWMyX291dHB1dF9jbGsuY29tbW9uLmh3LAogCQlbQ0xLX0NFXQkJPSAmY2VfY2xrLmNvbW1vbi5odywKIAkJW0NMS19TUEkwXQkJPSAmc3BpMF9jbGsuY29tbW9uLmh3LAogCQlbQ0xLX1VTQl9QSFkwXQkJPSAmdXNiX3BoeTBfY2xrLmNvbW1vbi5odywKQEAgLTUyNiw2ICs2MjEsODggQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhIHN1bjhpX3Yzc19od19jbGtzID0gewogCS5udW0JPSBDTEtfTlVNQkVSLAogfTsKIAorc3RhdGljIHN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhIHN1bjhpX3YzX2h3X2Nsa3MgPSB7CisJLmh3cwk9IHsKKwkJW0NMS19QTExfQ1BVXQkJPSAmcGxsX2NwdV9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX1BMTF9BVURJT19CQVNFXQk9ICZwbGxfYXVkaW9fYmFzZV9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX1BMTF9BVURJT10JCT0gJnBsbF9hdWRpb19jbGsuaHcsCisJCVtDTEtfUExMX0FVRElPXzJYXQk9ICZwbGxfYXVkaW9fMnhfY2xrLmh3LAorCQlbQ0xLX1BMTF9BVURJT180WF0JPSAmcGxsX2F1ZGlvXzR4X2Nsay5odywKKwkJW0NMS19QTExfQVVESU9fOFhdCT0gJnBsbF9hdWRpb184eF9jbGsuaHcsCisJCVtDTEtfUExMX1ZJREVPXQkJPSAmcGxsX3ZpZGVvX2Nsay5jb21tb24uaHcsCisJCVtDTEtfUExMX1ZFXQkJPSAmcGxsX3ZlX2Nsay5jb21tb24uaHcsCisJCVtDTEtfUExMX0REUjBdCQk9ICZwbGxfZGRyMF9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX1BMTF9QRVJJUEgwXQk9ICZwbGxfcGVyaXBoMF9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX1BMTF9QRVJJUEgwXzJYXQk9ICZwbGxfcGVyaXBoMF8yeF9jbGsuaHcsCisJCVtDTEtfUExMX0lTUF0JCT0gJnBsbF9pc3BfY2xrLmNvbW1vbi5odywKKwkJW0NMS19QTExfUEVSSVBIMV0JPSAmcGxsX3BlcmlwaDFfY2xrLmNvbW1vbi5odywKKwkJW0NMS19QTExfRERSMV0JCT0gJnBsbF9kZHIxX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQ1BVXQkJPSAmY3B1X2Nsay5jb21tb24uaHcsCisJCVtDTEtfQVhJXQkJPSAmYXhpX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQUhCMV0JCT0gJmFoYjFfY2xrLmNvbW1vbi5odywKKwkJW0NMS19BUEIxXQkJPSAmYXBiMV9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0FQQjJdCQk9ICZhcGIyX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQUhCMl0JCT0gJmFoYjJfY2xrLmNvbW1vbi5odywKKwkJW0NMS19CVVNfQ0VdCQk9ICZidXNfY2VfY2xrLmNvbW1vbi5odywKKwkJW0NMS19CVVNfRE1BXQkJPSAmYnVzX2RtYV9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0JVU19NTUMwXQkJPSAmYnVzX21tYzBfY2xrLmNvbW1vbi5odywKKwkJW0NMS19CVVNfTU1DMV0JCT0gJmJ1c19tbWMxX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQlVTX01NQzJdCQk9ICZidXNfbW1jMl9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0JVU19EUkFNXQkJPSAmYnVzX2RyYW1fY2xrLmNvbW1vbi5odywKKwkJW0NMS19CVVNfRU1BQ10JCT0gJmJ1c19lbWFjX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQlVTX0hTVElNRVJdCT0gJmJ1c19oc3RpbWVyX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQlVTX1NQSTBdCQk9ICZidXNfc3BpMF9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0JVU19PVEddCQk9ICZidXNfb3RnX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQlVTX0VIQ0kwXQkJPSAmYnVzX2VoY2kwX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQlVTX09IQ0kwXQkJPSAmYnVzX29oY2kwX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQlVTX1ZFXQkJPSAmYnVzX3ZlX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQlVTX1RDT04wXQkJPSAmYnVzX3Rjb24wX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQlVTX0NTSV0JCT0gJmJ1c19jc2lfY2xrLmNvbW1vbi5odywKKwkJW0NMS19CVVNfREVdCQk9ICZidXNfZGVfY2xrLmNvbW1vbi5odywKKwkJW0NMS19CVVNfQ09ERUNdCQk9ICZidXNfY29kZWNfY2xrLmNvbW1vbi5odywKKwkJW0NMS19CVVNfUElPXQkJPSAmYnVzX3Bpb19jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0JVU19JMlMwXQkJPSAmYnVzX2kyczBfY2xrLmNvbW1vbi5odywKKwkJW0NMS19CVVNfSTJDMF0JCT0gJmJ1c19pMmMwX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQlVTX0kyQzFdCQk9ICZidXNfaTJjMV9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0JVU19VQVJUMF0JCT0gJmJ1c191YXJ0MF9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0JVU19VQVJUMV0JCT0gJmJ1c191YXJ0MV9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0JVU19VQVJUMl0JCT0gJmJ1c191YXJ0Ml9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0JVU19FUEhZXQkJPSAmYnVzX2VwaHlfY2xrLmNvbW1vbi5odywKKwkJW0NMS19CVVNfREJHXQkJPSAmYnVzX2RiZ19jbGsuY29tbW9uLmh3LAorCQlbQ0xLX01NQzBdCQk9ICZtbWMwX2Nsay5jb21tb24uaHcsCisJCVtDTEtfTU1DMF9TQU1QTEVdCT0gJm1tYzBfc2FtcGxlX2Nsay5jb21tb24uaHcsCisJCVtDTEtfTU1DMF9PVVRQVVRdCT0gJm1tYzBfb3V0cHV0X2Nsay5jb21tb24uaHcsCisJCVtDTEtfTU1DMV0JCT0gJm1tYzFfY2xrLmNvbW1vbi5odywKKwkJW0NMS19NTUMxX1NBTVBMRV0JPSAmbW1jMV9zYW1wbGVfY2xrLmNvbW1vbi5odywKKwkJW0NMS19NTUMxX09VVFBVVF0JPSAmbW1jMV9vdXRwdXRfY2xrLmNvbW1vbi5odywKKwkJW0NMS19NTUMyXQkJPSAmbW1jMl9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX01NQzJfU0FNUExFXQk9ICZtbWMyX3NhbXBsZV9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX01NQzJfT1VUUFVUXQk9ICZtbWMyX291dHB1dF9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0NFXQkJPSAmY2VfY2xrLmNvbW1vbi5odywKKwkJW0NMS19TUEkwXQkJPSAmc3BpMF9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0kyUzBdCQk9ICZpMnMwX2Nsay5jb21tb24uaHcsCisJCVtDTEtfVVNCX1BIWTBdCQk9ICZ1c2JfcGh5MF9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX1VTQl9PSENJMF0JCT0gJnVzYl9vaGNpMF9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0RSQU1dCQk9ICZkcmFtX2Nsay5jb21tb24uaHcsCisJCVtDTEtfRFJBTV9WRV0JCT0gJmRyYW1fdmVfY2xrLmNvbW1vbi5odywKKwkJW0NMS19EUkFNX0NTSV0JCT0gJmRyYW1fY3NpX2Nsay5jb21tb24uaHcsCisJCVtDTEtfRFJBTV9FSENJXQkJPSAmZHJhbV9laGNpX2Nsay5jb21tb24uaHcsCisJCVtDTEtfRFJBTV9PSENJXQkJPSAmZHJhbV9vaGNpX2Nsay5jb21tb24uaHcsCisJCVtDTEtfREVdCQk9ICZkZV9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX1RDT04wXQkJPSAmdGNvbl9jbGsuY29tbW9uLmh3LAorCQlbQ0xLX0NTSV9NSVNDXQkJPSAmY3NpX21pc2NfY2xrLmNvbW1vbi5odywKKwkJW0NMS19DU0kwX01DTEtdCQk9ICZjc2kwX21jbGtfY2xrLmNvbW1vbi5odywKKwkJW0NMS19DU0kxX1NDTEtdCQk9ICZjc2kxX3NjbGtfY2xrLmNvbW1vbi5odywKKwkJW0NMS19DU0kxX01DTEtdCQk9ICZjc2kxX21jbGtfY2xrLmNvbW1vbi5odywKKwkJW0NMS19WRV0JCT0gJnZlX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQUNfRElHXQkJPSAmYWNfZGlnX2Nsay5jb21tb24uaHcsCisJCVtDTEtfQVZTXQkJPSAmYXZzX2Nsay5jb21tb24uaHcsCisJCVtDTEtfTUJVU10JCT0gJm1idXNfY2xrLmNvbW1vbi5odywKKwkJW0NMS19NSVBJX0NTSV0JCT0gJm1pcGlfY3NpX2Nsay5jb21tb24uaHcsCisJfSwKKwkubnVtCT0gQ0xLX05VTUJFUiwKK307CisKIHN0YXRpYyBzdHJ1Y3QgY2N1X3Jlc2V0X21hcCBzdW44aV92M3NfY2N1X3Jlc2V0c1tdID0gewogCVtSU1RfVVNCX1BIWTBdCQk9ICB7IDB4MGNjLCBCSVQoMCkgfSwKIApAQCAtNTYxLDYgKzczOCw0MiBAQCBzdGF0aWMgc3RydWN0IGNjdV9yZXNldF9tYXAgc3VuOGlfdjNzX2NjdV9yZXNldHNbXSA9IHsKIAlbUlNUX0JVU19VQVJUMl0JCT0gIHsgMHgyZDgsIEJJVCgxOCkgfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgY2N1X3Jlc2V0X21hcCBzdW44aV92M19jY3VfcmVzZXRzW10gPSB7CisJW1JTVF9VU0JfUEhZMF0JCT0gIHsgMHgwY2MsIEJJVCgwKSB9LAorCisJW1JTVF9NQlVTXQkJPSAgeyAweDBmYywgQklUKDMxKSB9LAorCisJW1JTVF9CVVNfQ0VdCQk9ICB7IDB4MmMwLCBCSVQoNSkgfSwKKwlbUlNUX0JVU19ETUFdCQk9ICB7IDB4MmMwLCBCSVQoNikgfSwKKwlbUlNUX0JVU19NTUMwXQkJPSAgeyAweDJjMCwgQklUKDgpIH0sCisJW1JTVF9CVVNfTU1DMV0JCT0gIHsgMHgyYzAsIEJJVCg5KSB9LAorCVtSU1RfQlVTX01NQzJdCQk9ICB7IDB4MmMwLCBCSVQoMTApIH0sCisJW1JTVF9CVVNfRFJBTV0JCT0gIHsgMHgyYzAsIEJJVCgxNCkgfSwKKwlbUlNUX0JVU19FTUFDXQkJPSAgeyAweDJjMCwgQklUKDE3KSB9LAorCVtSU1RfQlVTX0hTVElNRVJdCT0gIHsgMHgyYzAsIEJJVCgxOSkgfSwKKwlbUlNUX0JVU19TUEkwXQkJPSAgeyAweDJjMCwgQklUKDIwKSB9LAorCVtSU1RfQlVTX09UR10JCT0gIHsgMHgyYzAsIEJJVCgyNCkgfSwKKwlbUlNUX0JVU19FSENJMF0JCT0gIHsgMHgyYzAsIEJJVCgyNikgfSwKKwlbUlNUX0JVU19PSENJMF0JCT0gIHsgMHgyYzAsIEJJVCgyOSkgfSwKKworCVtSU1RfQlVTX1ZFXQkJPSAgeyAweDJjNCwgQklUKDApIH0sCisJW1JTVF9CVVNfVENPTjBdCQk9ICB7IDB4MmM0LCBCSVQoNCkgfSwKKwlbUlNUX0JVU19DU0ldCQk9ICB7IDB4MmM0LCBCSVQoOCkgfSwKKwlbUlNUX0JVU19ERV0JCT0gIHsgMHgyYzQsIEJJVCgxMikgfSwKKwlbUlNUX0JVU19EQkddCQk9ICB7IDB4MmM0LCBCSVQoMzEpIH0sCisKKwlbUlNUX0JVU19FUEhZXQkJPSAgeyAweDJjOCwgQklUKDIpIH0sCisKKwlbUlNUX0JVU19DT0RFQ10JCT0gIHsgMHgyZDAsIEJJVCgwKSB9LAorCVtSU1RfQlVTX0kyUzBdCQk9ICB7IDB4MmQwLCBCSVQoMTIpIH0sCisKKwlbUlNUX0JVU19JMkMwXQkJPSAgeyAweDJkOCwgQklUKDApIH0sCisJW1JTVF9CVVNfSTJDMV0JCT0gIHsgMHgyZDgsIEJJVCgxKSB9LAorCVtSU1RfQlVTX1VBUlQwXQkJPSAgeyAweDJkOCwgQklUKDE2KSB9LAorCVtSU1RfQlVTX1VBUlQxXQkJPSAgeyAweDJkOCwgQklUKDE3KSB9LAorCVtSU1RfQlVTX1VBUlQyXQkJPSAgeyAweDJkOCwgQklUKDE4KSB9LAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBzdW54aV9jY3VfZGVzYyBzdW44aV92M3NfY2N1X2Rlc2MgPSB7CiAJLmNjdV9jbGtzCT0gc3VuOGlfdjNzX2NjdV9jbGtzLAogCS5udW1fY2N1X2Nsa3MJPSBBUlJBWV9TSVpFKHN1bjhpX3Yzc19jY3VfY2xrcyksCkBAIC01NzEsNyArNzg0LDE4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VueGlfY2N1X2Rlc2Mgc3VuOGlfdjNzX2NjdV9kZXNjID0gewogCS5udW1fcmVzZXRzCT0gQVJSQVlfU0laRShzdW44aV92M3NfY2N1X3Jlc2V0cyksCiB9OwogCi1zdGF0aWMgdm9pZCBfX2luaXQgc3VuOGlfdjNzX2NjdV9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCitzdGF0aWMgY29uc3Qgc3RydWN0IHN1bnhpX2NjdV9kZXNjIHN1bjhpX3YzX2NjdV9kZXNjID0geworCS5jY3VfY2xrcwk9IHN1bjhpX3YzX2NjdV9jbGtzLAorCS5udW1fY2N1X2Nsa3MJPSBBUlJBWV9TSVpFKHN1bjhpX3YzX2NjdV9jbGtzKSwKKworCS5od19jbGtzCT0gJnN1bjhpX3YzX2h3X2Nsa3MsCisKKwkucmVzZXRzCQk9IHN1bjhpX3YzX2NjdV9yZXNldHMsCisJLm51bV9yZXNldHMJPSBBUlJBWV9TSVpFKHN1bjhpX3YzX2NjdV9yZXNldHMpLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHN1bjhpX3YzX3Yzc19jY3VfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCisJCQkJCSBjb25zdCBzdHJ1Y3Qgc3VueGlfY2N1X2Rlc2MgKmNjdV9kZXNjKQogewogCXZvaWQgX19pb21lbSAqcmVnOwogCXUzMiB2YWw7CkBAIC01ODcsNyArODExLDIxIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBzdW44aV92M3NfY2N1X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSkKIAl2YWwgJj0gfkdFTk1BU0soMTksIDE2KTsKIAl3cml0ZWwodmFsIHwgKDMgPDwgMTYpLCByZWcgKyBTVU44SV9WM1NfUExMX0FVRElPX1JFRyk7CiAKLQlzdW54aV9jY3VfcHJvYmUobm9kZSwgcmVnLCAmc3VuOGlfdjNzX2NjdV9kZXNjKTsKKwlzdW54aV9jY3VfcHJvYmUobm9kZSwgcmVnLCBjY3VfZGVzYyk7CiB9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzdW44aV92M3NfY2N1X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSkKK3sKKwlzdW44aV92M192M3NfY2N1X2luaXQobm9kZSwgJnN1bjhpX3Yzc19jY3VfZGVzYyk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzdW44aV92M19jY3Vfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpub2RlKQoreworCXN1bjhpX3YzX3Yzc19jY3VfaW5pdChub2RlLCAmc3VuOGlfdjNfY2N1X2Rlc2MpOworfQorCiBDTEtfT0ZfREVDTEFSRShzdW44aV92M3NfY2N1LCAiYWxsd2lubmVyLHN1bjhpLXYzcy1jY3UiLAogCSAgICAgICBzdW44aV92M3NfY2N1X3NldHVwKTsKKworQ0xLX09GX0RFQ0xBUkUoc3VuOGlfdjNfY2N1LCAiYWxsd2lubmVyLHN1bjhpLXYzLWNjdSIsCisJICAgICAgIHN1bjhpX3YzX2NjdV9zZXR1cCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjNzLmggYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjNzLmgKaW5kZXggZmJjMWRhOC4uYjAxNjBkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXYzcy5oCisrKyBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12M3MuaApAQCAtMjAsNyArMjAsNyBAQAogI2RlZmluZSBDTEtfUExMX0FVRElPXzhYCTUKICNkZWZpbmUgQ0xLX1BMTF9WSURFTwkJNgogI2RlZmluZSBDTEtfUExMX1ZFCQk3Ci0jZGVmaW5lIENMS19QTExfRERSCQk4CisjZGVmaW5lIENMS19QTExfRERSMAkJOAogI2RlZmluZSBDTEtfUExMX1BFUklQSDAJCTkKICNkZWZpbmUgQ0xLX1BMTF9QRVJJUEgwXzJYCTEwCiAjZGVmaW5lIENMS19QTExfSVNQCQkxMQpAQCAtNDksNiArNDksOCBAQAogCiAvKiBBbmQgdGhlIEdQVSBtb2R1bGUgY2xvY2sgaXMgZXhwb3J0ZWQgKi8KIAotI2RlZmluZSBDTEtfTlVNQkVSCQkoQ0xLX01JUElfQ1NJICsgMSkKKyNkZWZpbmUgQ0xLX1BMTF9ERFIxCQk3NAorCisjZGVmaW5lIENMS19OVU1CRVIJCShDTEtfSTJTMCArIDEpCiAKICNlbmRpZiAvKiBfQ0NVX1NVTjhJX0gzX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3VfY29tbW9uLmMgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3VfY29tbW9uLmMKaW5kZXggN2ZlM2FjOS4uMmUyMGU2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1X2NvbW1vbi5jCisrKyBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdV9jb21tb24uYwpAQCAtOTcsMTQgKzk3LDE1IEBAIGludCBzdW54aV9jY3VfcHJvYmUoc3RydWN0IGRldmljZV9ub2RlICpub2RlLCB2b2lkIF9faW9tZW0gKnJlZywKIAogCWZvciAoaSA9IDA7IGkgPCBkZXNjLT5od19jbGtzLT5udW0gOyBpKyspIHsKIAkJc3RydWN0IGNsa19odyAqaHcgPSBkZXNjLT5od19jbGtzLT5od3NbaV07CisJCWNvbnN0IGNoYXIgKm5hbWU7CiAKIAkJaWYgKCFodykKIAkJCWNvbnRpbnVlOwogCisJCW5hbWUgPSBody0+aW5pdC0+bmFtZTsKIAkJcmV0ID0gb2ZfY2xrX2h3X3JlZ2lzdGVyKG5vZGUsIGh3KTsKIAkJaWYgKHJldCkgewotCQkJcHJfZXJyKCJDb3VsZG4ndCByZWdpc3RlciBjbG9jayAlZCAtICVzXG4iLAotCQkJICAgICAgIGksIGNsa19od19nZXRfbmFtZShodykpOworCQkJcHJfZXJyKCJDb3VsZG4ndCByZWdpc3RlciBjbG9jayAlZCAtICVzXG4iLCBpLCBuYW1lKTsKIAkJCWdvdG8gZXJyX2Nsa191bnJlZzsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3RpL2FwbGwuYyBiL2RyaXZlcnMvY2xrL3RpL2FwbGwuYwppbmRleCAwMTVhNjU3Li5hYzViYzg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay90aS9hcGxsLmMKKysrIGIvZHJpdmVycy9jbGsvdGkvYXBsbC5jCkBAIC0xNDAsNiArMTQwLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IG9tYXBfY2xrX3JlZ2lzdGVyX2FwbGwodm9pZCAqdXNlciwKIAlzdHJ1Y3QgY2xrX2h3X29tYXAgKmNsa19odyA9IHRvX2Nsa19od19vbWFwKGh3KTsKIAlzdHJ1Y3QgZHBsbF9kYXRhICphZCA9IGNsa19ody0+ZHBsbF9kYXRhOwogCXN0cnVjdCBjbGsgKmNsazsKKwljb25zdCBzdHJ1Y3QgY2xrX2luaXRfZGF0YSAqaW5pdCA9IGNsa19ody0+aHcuaW5pdDsKIAogCWNsayA9IG9mX2Nsa19nZXQobm9kZSwgMCk7CiAJaWYgKElTX0VSUihjbGspKSB7CkBAIC0xNjgsMTUgKzE2OSwxNSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb21hcF9jbGtfcmVnaXN0ZXJfYXBsbCh2b2lkICp1c2VyLAogCWNsayA9IHRpX2Nsa19yZWdpc3Rlcl9vbWFwX2h3KE5VTEwsICZjbGtfaHctPmh3LCBub2RlLT5uYW1lKTsKIAlpZiAoIUlTX0VSUihjbGspKSB7CiAJCW9mX2Nsa19hZGRfcHJvdmlkZXIobm9kZSwgb2ZfY2xrX3NyY19zaW1wbGVfZ2V0LCBjbGspOwotCQlrZnJlZShjbGtfaHctPmh3LmluaXQtPnBhcmVudF9uYW1lcyk7Ci0JCWtmcmVlKGNsa19ody0+aHcuaW5pdCk7CisJCWtmcmVlKGluaXQtPnBhcmVudF9uYW1lcyk7CisJCWtmcmVlKGluaXQpOwogCQlyZXR1cm47CiAJfQogCiBjbGVhbnVwOgogCWtmcmVlKGNsa19ody0+ZHBsbF9kYXRhKTsKLQlrZnJlZShjbGtfaHctPmh3LmluaXQtPnBhcmVudF9uYW1lcyk7Ci0Ja2ZyZWUoY2xrX2h3LT5ody5pbml0KTsKKwlrZnJlZShpbml0LT5wYXJlbnRfbmFtZXMpOworCWtmcmVlKGluaXQpOwogCWtmcmVlKGNsa19odyk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3RpL2Nsay01NHh4LmMgYi9kcml2ZXJzL2Nsay90aS9jbGstNTR4eC5jCmluZGV4IGRhZmVmN2UuLmU2NzVlMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3RpL2Nsay01NHh4LmMKKysrIGIvZHJpdmVycy9jbGsvdGkvY2xrLTU0eHguYwpAQCAtMzE0LDYgKzMxNCwzOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfY2xrY3RybF9yZWdfZGF0YSBvbWFwNV9kc3NfY2xrY3RybF9yZWdzW10gX19pbml0Y29uc3QgPQogCXsgMCB9LAogfTsKIAorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBvbWFwNV9ncHVfY29yZV9tdXhfcGFyZW50c1tdIF9faW5pdGNvbnN0ID0geworCSJkcGxsX2NvcmVfaDE0eDJfY2siLAorCSJkcGxsX3Blcl9oMTR4Ml9jayIsCisJTlVMTCwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgb21hcDVfZ3B1X2h5ZF9tdXhfcGFyZW50c1tdIF9faW5pdGNvbnN0ID0geworCSJkcGxsX2NvcmVfaDE0eDJfY2siLAorCSJkcGxsX3Blcl9oMTR4Ml9jayIsCisJTlVMTCwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgb21hcDVfZ3B1X3N5c19jbGtfcGFyZW50c1tdIF9faW5pdGNvbnN0ID0geworCSJzeXNfY2xraW4iLAorCU5VTEwsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfY2xrY3RybF9kaXZfZGF0YSBvbWFwNV9ncHVfc3lzX2Nsa19kYXRhIF9faW5pdGNvbnN0ID0geworCS5tYXhfZGl2ID0gMiwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9jbGtjdHJsX2JpdF9kYXRhIG9tYXA1X2dwdV9jb3JlX2JpdF9kYXRhW10gX19pbml0Y29uc3QgPSB7CisJeyAyNCwgVElfQ0xLX01VWCwgb21hcDVfZ3B1X2NvcmVfbXV4X3BhcmVudHMsIE5VTEwgfSwKKwl7IDI1LCBUSV9DTEtfTVVYLCBvbWFwNV9ncHVfaHlkX211eF9wYXJlbnRzLCBOVUxMIH0sCisJeyAyNiwgVElfQ0xLX0RJVklERVIsIG9tYXA1X2dwdV9zeXNfY2xrX3BhcmVudHMsICZvbWFwNV9ncHVfc3lzX2Nsa19kYXRhIH0sCisJeyAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfY2xrY3RybF9yZWdfZGF0YSBvbWFwNV9ncHVfY2xrY3RybF9yZWdzW10gX19pbml0Y29uc3QgPSB7CisJeyBPTUFQNV9HUFVfQ0xLQ1RSTCwgb21hcDVfZ3B1X2NvcmVfYml0X2RhdGEsIENMS0ZfU1dfU1VQLCAiZ3B1X2NtOmNsazowMDAwOjI0IiB9LAorCXsgMCB9LAorfTsKKwogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBvbWFwNV9tbWMxX2ZjbGtfbXV4X3BhcmVudHNbXSBfX2luaXRjb25zdCA9IHsKIAkiZnVuY18xMjhtX2NsayIsCiAJImRwbGxfcGVyX20yeDJfY2siLApAQCAtNDcwLDYgKzUwMyw3IEBAIGNvbnN0IHN0cnVjdCBvbWFwX2Nsa2N0cmxfZGF0YSBvbWFwNV9jbGtjdHJsX2RhdGFbXSBfX2luaXRjb25zdCA9IHsKIAl7IDB4NGEwMDhlMjAsIG9tYXA1X2wzaW5zdHJfY2xrY3RybF9yZWdzIH0sCiAJeyAweDRhMDA5MDIwLCBvbWFwNV9sNHBlcl9jbGtjdHJsX3JlZ3MgfSwKIAl7IDB4NGEwMDk0MjAsIG9tYXA1X2Rzc19jbGtjdHJsX3JlZ3MgfSwKKwl7IDB4NGEwMDk1MjAsIG9tYXA1X2dwdV9jbGtjdHJsX3JlZ3MgfSwKIAl7IDB4NGEwMDk2MjAsIG9tYXA1X2wzaW5pdF9jbGtjdHJsX3JlZ3MgfSwKIAl7IDB4NGFlMDc5MjAsIG9tYXA1X3drdXBhb25fY2xrY3RybF9yZWdzIH0sCiAJeyAwIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay90aS9jbGstODE0eC5jIGIvZHJpdmVycy9jbGsvdGkvY2xrLTgxNHguYwppbmRleCBlOGNlZTZmLi4wODdjZmE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay90aS9jbGstODE0eC5jCisrKyBiL2RyaXZlcnMvY2xrL3RpL2Nsay04MTR4LmMKQEAgLTY2LDYgKzY2LDcgQEAgc3RhdGljIGludCBfX2luaXQgZG04MTR4X2FkcGxsX2Vhcmx5X2luaXQodm9pZCkKIAl9CiAKIAlvZl9wbGF0Zm9ybV9wb3B1bGF0ZShucCwgTlVMTCwgTlVMTCwgTlVMTCk7CisJb2Zfbm9kZV9wdXQobnApOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay90aS9kcGxsLmMgYi9kcml2ZXJzL2Nsay90aS9kcGxsLmMKaW5kZXggNjU5ZGFkYi4uMjQ3NTEwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGkvZHBsbC5jCisrKyBiL2RyaXZlcnMvY2xrL3RpL2RwbGwuYwpAQCAtMTY1LDYgKzE2NSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBfcmVnaXN0ZXJfZHBsbCh2b2lkICp1c2VyLAogCXN0cnVjdCBjbGtfaHdfb21hcCAqY2xrX2h3ID0gdG9fY2xrX2h3X29tYXAoaHcpOwogCXN0cnVjdCBkcGxsX2RhdGEgKmRkID0gY2xrX2h3LT5kcGxsX2RhdGE7CiAJc3RydWN0IGNsayAqY2xrOworCWNvbnN0IHN0cnVjdCBjbGtfaW5pdF9kYXRhICppbml0ID0gaHctPmluaXQ7CiAKIAljbGsgPSBvZl9jbGtfZ2V0KG5vZGUsIDApOwogCWlmIChJU19FUlIoY2xrKSkgewpAQCAtMTk2LDE1ICsxOTcsMTUgQEAgc3RhdGljIHZvaWQgX19pbml0IF9yZWdpc3Rlcl9kcGxsKHZvaWQgKnVzZXIsCiAKIAlpZiAoIUlTX0VSUihjbGspKSB7CiAJCW9mX2Nsa19hZGRfcHJvdmlkZXIobm9kZSwgb2ZfY2xrX3NyY19zaW1wbGVfZ2V0LCBjbGspOwotCQlrZnJlZShjbGtfaHctPmh3LmluaXQtPnBhcmVudF9uYW1lcyk7Ci0JCWtmcmVlKGNsa19ody0+aHcuaW5pdCk7CisJCWtmcmVlKGluaXQtPnBhcmVudF9uYW1lcyk7CisJCWtmcmVlKGluaXQpOwogCQlyZXR1cm47CiAJfQogCiBjbGVhbnVwOgogCWtmcmVlKGNsa19ody0+ZHBsbF9kYXRhKTsKLQlrZnJlZShjbGtfaHctPmh3LmluaXQtPnBhcmVudF9uYW1lcyk7Ci0Ja2ZyZWUoY2xrX2h3LT5ody5pbml0KTsKKwlrZnJlZShpbml0LT5wYXJlbnRfbmFtZXMpOworCWtmcmVlKGluaXQpOwogCWtmcmVlKGNsa19odyk7CiB9CiAKQEAgLTI5MSwxNCArMjkyLDEyIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvZl90aV9kcGxsX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIAlzdHJ1Y3QgZHBsbF9kYXRhICpkZCA9IE5VTEw7CiAJdTggZHBsbF9tb2RlID0gMDsKIAotCWRkID0ga3phbGxvYyhzaXplb2YoKmRkKSwgR0ZQX0tFUk5FTCk7CisJZGQgPSBrbWVtZHVwKGRkdCwgc2l6ZW9mKCpkZCksIEdGUF9LRVJORUwpOwogCWNsa19odyA9IGt6YWxsb2Moc2l6ZW9mKCpjbGtfaHcpLCBHRlBfS0VSTkVMKTsKIAlpbml0ID0ga3phbGxvYyhzaXplb2YoKmluaXQpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWRkIHx8ICFjbGtfaHcgfHwgIWluaXQpCiAJCWdvdG8gY2xlYW51cDsKIAotCW1lbWNweShkZCwgZGR0LCBzaXplb2YoKmRkKSk7Ci0KIAljbGtfaHctPmRwbGxfZGF0YSA9IGRkOwogCWNsa19ody0+b3BzID0gJmNsa2h3b3BzX29tYXAzX2RwbGw7CiAJY2xrX2h3LT5ody5pbml0ID0gaW5pdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstdmVyc2F0aWxlLmMgYi9kcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLXZlcnNhdGlsZS5jCmluZGV4IDkwYmIwYjAuLmZkNTRkNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstdmVyc2F0aWxlLmMKKysrIGIvZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay12ZXJzYXRpbGUuYwpAQCAtNzAsNiArNzAsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgY21fb3NjX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJCQlyZXR1cm47CiAJCX0KIAkJY21fYmFzZSA9IG9mX2lvbWFwKHBhcmVudCwgMCk7CisJCW9mX25vZGVfcHV0KHBhcmVudCk7CiAJCWlmICghY21fYmFzZSkgewogCQkJcHJfZXJyKCJjb3VsZCBub3QgcmVtYXAgY29yZSBtb2R1bGUgYmFzZVxuIik7CiAJCQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay96dGUvY2xrLXp4Mjk2NzE4LmMgYi9kcml2ZXJzL2Nsay96dGUvY2xrLXp4Mjk2NzE4LmMKaW5kZXggZmQ2YzM0Ny4uZGQ3MDQ1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvenRlL2Nsay16eDI5NjcxOC5jCisrKyBiL2RyaXZlcnMvY2xrL3p0ZS9jbGstengyOTY3MTguYwpAQCAtNTY0LDYgKzU2NCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHRvcF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogewogCXZvaWQgX19pb21lbSAqcmVnX2Jhc2U7CiAJaW50IGksIHJldDsKKwljb25zdCBjaGFyICpuYW1lOwogCiAJcmVnX2Jhc2UgPSBvZl9pb21hcChucCwgMCk7CiAJaWYgKCFyZWdfYmFzZSkgewpAQCAtNTczLDExICs1NzQsMTAgQEAgc3RhdGljIGludCBfX2luaXQgdG9wX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh6eDI5NjcxOF9wbGxfY2xrKTsgaSsrKSB7CiAJCXp4Mjk2NzE4X3BsbF9jbGtbaV0ucmVnX2Jhc2UgKz0gKHVpbnRwdHJfdClyZWdfYmFzZTsKKwkJbmFtZSA9IHp4Mjk2NzE4X3BsbF9jbGtbaV0uaHcuaW5pdC0+bmFtZTsKIAkJcmV0ID0gY2xrX2h3X3JlZ2lzdGVyKE5VTEwsICZ6eDI5NjcxOF9wbGxfY2xrW2ldLmh3KTsKLQkJaWYgKHJldCkgewotCQkJcHJfd2FybigidG9wIGNsayAlcyBpbml0IGVycm9yIVxuIiwKLQkJCQl6eDI5NjcxOF9wbGxfY2xrW2ldLmh3LmluaXQtPm5hbWUpOwotCQl9CisJCWlmIChyZXQpCisJCQlwcl93YXJuKCJ0b3AgY2xrICVzIGluaXQgZXJyb3IhXG4iLCBuYW1lKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0b3BfZmZhY3Rvcl9jbGspOyBpKyspIHsKQEAgLTU4NSwxMSArNTg1LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IHRvcF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQkJdG9wX2h3X29uZWNlbGxfZGF0YS5od3NbdG9wX2ZmYWN0b3JfY2xrW2ldLmlkXSA9CiAJCQkJCSZ0b3BfZmZhY3Rvcl9jbGtbaV0uZmFjdG9yLmh3OwogCisJCW5hbWUgPSB0b3BfZmZhY3Rvcl9jbGtbaV0uZmFjdG9yLmh3LmluaXQtPm5hbWU7CiAJCXJldCA9IGNsa19od19yZWdpc3RlcihOVUxMLCAmdG9wX2ZmYWN0b3JfY2xrW2ldLmZhY3Rvci5odyk7Ci0JCWlmIChyZXQpIHsKLQkJCXByX3dhcm4oInRvcCBjbGsgJXMgaW5pdCBlcnJvciFcbiIsCi0JCQkJdG9wX2ZmYWN0b3JfY2xrW2ldLmZhY3Rvci5ody5pbml0LT5uYW1lKTsKLQkJfQorCQlpZiAocmV0KQorCQkJcHJfd2FybigidG9wIGNsayAlcyBpbml0IGVycm9yIVxuIiwgbmFtZSk7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodG9wX211eF9jbGspOyBpKyspIHsKQEAgLTU5OCwxMSArNTk3LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IHRvcF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQkJCQkmdG9wX211eF9jbGtbaV0ubXV4Lmh3OwogCiAJCXRvcF9tdXhfY2xrW2ldLm11eC5yZWcgKz0gKHVpbnRwdHJfdClyZWdfYmFzZTsKKwkJbmFtZSA9IHRvcF9tdXhfY2xrW2ldLm11eC5ody5pbml0LT5uYW1lOwogCQlyZXQgPSBjbGtfaHdfcmVnaXN0ZXIoTlVMTCwgJnRvcF9tdXhfY2xrW2ldLm11eC5odyk7Ci0JCWlmIChyZXQpIHsKLQkJCXByX3dhcm4oInRvcCBjbGsgJXMgaW5pdCBlcnJvciFcbiIsCi0JCQkJdG9wX211eF9jbGtbaV0ubXV4Lmh3LmluaXQtPm5hbWUpOwotCQl9CisJCWlmIChyZXQpCisJCQlwcl93YXJuKCJ0b3AgY2xrICVzIGluaXQgZXJyb3IhXG4iLCBuYW1lKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0b3BfZ2F0ZV9jbGspOyBpKyspIHsKQEAgLTYxMSwxMSArNjA5LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IHRvcF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQkJCQkmdG9wX2dhdGVfY2xrW2ldLmdhdGUuaHc7CiAKIAkJdG9wX2dhdGVfY2xrW2ldLmdhdGUucmVnICs9ICh1aW50cHRyX3QpcmVnX2Jhc2U7CisJCW5hbWUgPSB0b3BfZ2F0ZV9jbGtbaV0uZ2F0ZS5ody5pbml0LT5uYW1lOwogCQlyZXQgPSBjbGtfaHdfcmVnaXN0ZXIoTlVMTCwgJnRvcF9nYXRlX2Nsa1tpXS5nYXRlLmh3KTsKLQkJaWYgKHJldCkgewotCQkJcHJfd2FybigidG9wIGNsayAlcyBpbml0IGVycm9yIVxuIiwKLQkJCQl0b3BfZ2F0ZV9jbGtbaV0uZ2F0ZS5ody5pbml0LT5uYW1lKTsKLQkJfQorCQlpZiAocmV0KQorCQkJcHJfd2FybigidG9wIGNsayAlcyBpbml0IGVycm9yIVxuIiwgbmFtZSk7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodG9wX2Rpdl9jbGspOyBpKyspIHsKQEAgLTYyNCwxMSArNjIxLDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IHRvcF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQkJCQkmdG9wX2Rpdl9jbGtbaV0uZGl2Lmh3OwogCiAJCXRvcF9kaXZfY2xrW2ldLmRpdi5yZWcgKz0gKHVpbnRwdHJfdClyZWdfYmFzZTsKKwkJbmFtZSA9IHRvcF9kaXZfY2xrW2ldLmRpdi5ody5pbml0LT5uYW1lOwogCQlyZXQgPSBjbGtfaHdfcmVnaXN0ZXIoTlVMTCwgJnRvcF9kaXZfY2xrW2ldLmRpdi5odyk7Ci0JCWlmIChyZXQpIHsKLQkJCXByX3dhcm4oInRvcCBjbGsgJXMgaW5pdCBlcnJvciFcbiIsCi0JCQkJdG9wX2Rpdl9jbGtbaV0uZGl2Lmh3LmluaXQtPm5hbWUpOwotCQl9CisJCWlmIChyZXQpCisJCQlwcl93YXJuKCJ0b3AgY2xrICVzIGluaXQgZXJyb3IhXG4iLCBuYW1lKTsKIAl9CiAKIAlyZXQgPSBvZl9jbGtfYWRkX2h3X3Byb3ZpZGVyKG5wLCBvZl9jbGtfaHdfb25lY2VsbF9nZXQsCkBAIC03NTQsNiArNzUwLDcgQEAgc3RhdGljIGludCBfX2luaXQgbHNwMF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogewogCXZvaWQgX19pb21lbSAqcmVnX2Jhc2U7CiAJaW50IGksIHJldDsKKwljb25zdCBjaGFyICpuYW1lOwogCiAJcmVnX2Jhc2UgPSBvZl9pb21hcChucCwgMCk7CiAJaWYgKCFyZWdfYmFzZSkgewpAQCAtNzY3LDExICs3NjQsMTAgQEAgc3RhdGljIGludCBfX2luaXQgbHNwMF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQkJCQkmbHNwMF9tdXhfY2xrW2ldLm11eC5odzsKIAogCQlsc3AwX211eF9jbGtbaV0ubXV4LnJlZyArPSAodWludHB0cl90KXJlZ19iYXNlOworCQluYW1lID0gbHNwMF9tdXhfY2xrW2ldLm11eC5ody5pbml0LT5uYW1lOwogCQlyZXQgPSBjbGtfaHdfcmVnaXN0ZXIoTlVMTCwgJmxzcDBfbXV4X2Nsa1tpXS5tdXguaHcpOwotCQlpZiAocmV0KSB7Ci0JCQlwcl93YXJuKCJsc3AwIGNsayAlcyBpbml0IGVycm9yIVxuIiwKLQkJCQlsc3AwX211eF9jbGtbaV0ubXV4Lmh3LmluaXQtPm5hbWUpOwotCQl9CisJCWlmIChyZXQpCisJCQlwcl93YXJuKCJsc3AwIGNsayAlcyBpbml0IGVycm9yIVxuIiwgbmFtZSk7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUobHNwMF9nYXRlX2Nsayk7IGkrKykgewpAQCAtNzgwLDExICs3NzYsMTAgQEAgc3RhdGljIGludCBfX2luaXQgbHNwMF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQkJCQkmbHNwMF9nYXRlX2Nsa1tpXS5nYXRlLmh3OwogCiAJCWxzcDBfZ2F0ZV9jbGtbaV0uZ2F0ZS5yZWcgKz0gKHVpbnRwdHJfdClyZWdfYmFzZTsKKwkJbmFtZSA9IGxzcDBfZ2F0ZV9jbGtbaV0uZ2F0ZS5ody5pbml0LT5uYW1lOwogCQlyZXQgPSBjbGtfaHdfcmVnaXN0ZXIoTlVMTCwgJmxzcDBfZ2F0ZV9jbGtbaV0uZ2F0ZS5odyk7Ci0JCWlmIChyZXQpIHsKLQkJCXByX3dhcm4oImxzcDAgY2xrICVzIGluaXQgZXJyb3IhXG4iLAotCQkJCWxzcDBfZ2F0ZV9jbGtbaV0uZ2F0ZS5ody5pbml0LT5uYW1lKTsKLQkJfQorCQlpZiAocmV0KQorCQkJcHJfd2FybigibHNwMCBjbGsgJXMgaW5pdCBlcnJvciFcbiIsIG5hbWUpOwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGxzcDBfZGl2X2Nsayk7IGkrKykgewpAQCAtNzkzLDExICs3ODgsMTAgQEAgc3RhdGljIGludCBfX2luaXQgbHNwMF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQkJCQkmbHNwMF9kaXZfY2xrW2ldLmRpdi5odzsKIAogCQlsc3AwX2Rpdl9jbGtbaV0uZGl2LnJlZyArPSAodWludHB0cl90KXJlZ19iYXNlOworCQluYW1lID0gbHNwMF9kaXZfY2xrW2ldLmRpdi5ody5pbml0LT5uYW1lOwogCQlyZXQgPSBjbGtfaHdfcmVnaXN0ZXIoTlVMTCwgJmxzcDBfZGl2X2Nsa1tpXS5kaXYuaHcpOwotCQlpZiAocmV0KSB7Ci0JCQlwcl93YXJuKCJsc3AwIGNsayAlcyBpbml0IGVycm9yIVxuIiwKLQkJCQlsc3AwX2Rpdl9jbGtbaV0uZGl2Lmh3LmluaXQtPm5hbWUpOwotCQl9CisJCWlmIChyZXQpCisJCQlwcl93YXJuKCJsc3AwIGNsayAlcyBpbml0IGVycm9yIVxuIiwgbmFtZSk7CiAJfQogCiAJcmV0ID0gb2ZfY2xrX2FkZF9od19wcm92aWRlcihucCwgb2ZfY2xrX2h3X29uZWNlbGxfZ2V0LApAQCAtODYyLDYgKzg1Niw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGxzcDFfY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIHsKIAl2b2lkIF9faW9tZW0gKnJlZ19iYXNlOwogCWludCBpLCByZXQ7CisJY29uc3QgY2hhciAqbmFtZTsKIAogCXJlZ19iYXNlID0gb2ZfaW9tYXAobnAsIDApOwogCWlmICghcmVnX2Jhc2UpIHsKQEAgLTg3NSwxMSArODcwLDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGxzcDFfY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAkJCQkJJmxzcDBfbXV4X2Nsa1tpXS5tdXguaHc7CiAKIAkJbHNwMV9tdXhfY2xrW2ldLm11eC5yZWcgKz0gKHVpbnRwdHJfdClyZWdfYmFzZTsKKwkJbmFtZSA9IGxzcDFfbXV4X2Nsa1tpXS5tdXguaHcuaW5pdC0+bmFtZTsKIAkJcmV0ID0gY2xrX2h3X3JlZ2lzdGVyKE5VTEwsICZsc3AxX211eF9jbGtbaV0ubXV4Lmh3KTsKLQkJaWYgKHJldCkgewotCQkJcHJfd2FybigibHNwMSBjbGsgJXMgaW5pdCBlcnJvciFcbiIsCi0JCQkJbHNwMV9tdXhfY2xrW2ldLm11eC5ody5pbml0LT5uYW1lKTsKLQkJfQorCQlpZiAocmV0KQorCQkJcHJfd2FybigibHNwMSBjbGsgJXMgaW5pdCBlcnJvciFcbiIsIG5hbWUpOwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGxzcDFfZ2F0ZV9jbGspOyBpKyspIHsKQEAgLTg4OCwxMSArODgyLDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGxzcDFfY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAkJCQkJJmxzcDFfZ2F0ZV9jbGtbaV0uZ2F0ZS5odzsKIAogCQlsc3AxX2dhdGVfY2xrW2ldLmdhdGUucmVnICs9ICh1aW50cHRyX3QpcmVnX2Jhc2U7CisJCW5hbWUgPSBsc3AxX2dhdGVfY2xrW2ldLmdhdGUuaHcuaW5pdC0+bmFtZTsKIAkJcmV0ID0gY2xrX2h3X3JlZ2lzdGVyKE5VTEwsICZsc3AxX2dhdGVfY2xrW2ldLmdhdGUuaHcpOwotCQlpZiAocmV0KSB7Ci0JCQlwcl93YXJuKCJsc3AxIGNsayAlcyBpbml0IGVycm9yIVxuIiwKLQkJCQlsc3AxX2dhdGVfY2xrW2ldLmdhdGUuaHcuaW5pdC0+bmFtZSk7Ci0JCX0KKwkJaWYgKHJldCkKKwkJCXByX3dhcm4oImxzcDEgY2xrICVzIGluaXQgZXJyb3IhXG4iLCBuYW1lKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShsc3AxX2Rpdl9jbGspOyBpKyspIHsKQEAgLTkwMSwxMSArODk0LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGxzcDFfY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAkJCQkJJmxzcDFfZGl2X2Nsa1tpXS5kaXYuaHc7CiAKIAkJbHNwMV9kaXZfY2xrW2ldLmRpdi5yZWcgKz0gKHVpbnRwdHJfdClyZWdfYmFzZTsKKwkJbmFtZSA9IGxzcDFfZGl2X2Nsa1tpXS5kaXYuaHcuaW5pdC0+bmFtZTsKIAkJcmV0ID0gY2xrX2h3X3JlZ2lzdGVyKE5VTEwsICZsc3AxX2Rpdl9jbGtbaV0uZGl2Lmh3KTsKLQkJaWYgKHJldCkgewotCQkJcHJfd2FybigibHNwMSBjbGsgJXMgaW5pdCBlcnJvciFcbiIsCi0JCQkJbHNwMV9kaXZfY2xrW2ldLmRpdi5ody5pbml0LT5uYW1lKTsKLQkJfQorCQlpZiAocmV0KQorCQkJcHJfd2FybigibHNwMSBjbGsgJXMgaW5pdCBlcnJvciFcbiIsIG5hbWUpOwogCX0KIAogCXJldCA9IG9mX2Nsa19hZGRfaHdfcHJvdmlkZXIobnAsIG9mX2Nsa19od19vbmVjZWxsX2dldCwKQEAgLTk3OSw2ICs5NzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBhdWRpb19jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogewogCXZvaWQgX19pb21lbSAqcmVnX2Jhc2U7CiAJaW50IGksIHJldDsKKwljb25zdCBjaGFyICpuYW1lOwogCiAJcmVnX2Jhc2UgPSBvZl9pb21hcChucCwgMCk7CiAJaWYgKCFyZWdfYmFzZSkgewpAQCAtOTkyLDExICs5ODUsMTAgQEAgc3RhdGljIGludCBfX2luaXQgYXVkaW9fY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAkJCQkJJmF1ZGlvX211eF9jbGtbaV0ubXV4Lmh3OwogCiAJCWF1ZGlvX211eF9jbGtbaV0ubXV4LnJlZyArPSAodWludHB0cl90KXJlZ19iYXNlOworCQluYW1lID0gYXVkaW9fbXV4X2Nsa1tpXS5tdXguaHcuaW5pdC0+bmFtZTsKIAkJcmV0ID0gY2xrX2h3X3JlZ2lzdGVyKE5VTEwsICZhdWRpb19tdXhfY2xrW2ldLm11eC5odyk7Ci0JCWlmIChyZXQpIHsKLQkJCXByX3dhcm4oImF1ZGlvIGNsayAlcyBpbml0IGVycm9yIVxuIiwKLQkJCQlhdWRpb19tdXhfY2xrW2ldLm11eC5ody5pbml0LT5uYW1lKTsKLQkJfQorCQlpZiAocmV0KQorCQkJcHJfd2FybigiYXVkaW8gY2xrICVzIGluaXQgZXJyb3IhXG4iLCBuYW1lKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhdWRpb19hZGl2X2Nsayk7IGkrKykgewpAQCAtMTAwNSwxMSArOTk3LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGF1ZGlvX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJCQkJCSZhdWRpb19hZGl2X2Nsa1tpXS5odzsKIAogCQlhdWRpb19hZGl2X2Nsa1tpXS5yZWdfYmFzZSArPSAodWludHB0cl90KXJlZ19iYXNlOworCQluYW1lID0gYXVkaW9fYWRpdl9jbGtbaV0uaHcuaW5pdC0+bmFtZTsKIAkJcmV0ID0gY2xrX2h3X3JlZ2lzdGVyKE5VTEwsICZhdWRpb19hZGl2X2Nsa1tpXS5odyk7Ci0JCWlmIChyZXQpIHsKLQkJCXByX3dhcm4oImF1ZGlvIGNsayAlcyBpbml0IGVycm9yIVxuIiwKLQkJCQlhdWRpb19hZGl2X2Nsa1tpXS5ody5pbml0LT5uYW1lKTsKLQkJfQorCQlpZiAocmV0KQorCQkJcHJfd2FybigiYXVkaW8gY2xrICVzIGluaXQgZXJyb3IhXG4iLCBuYW1lKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhdWRpb19kaXZfY2xrKTsgaSsrKSB7CkBAIC0xMDE4LDExICsxMDA5LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGF1ZGlvX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJCQkJCSZhdWRpb19kaXZfY2xrW2ldLmRpdi5odzsKIAogCQlhdWRpb19kaXZfY2xrW2ldLmRpdi5yZWcgKz0gKHVpbnRwdHJfdClyZWdfYmFzZTsKKwkJbmFtZSA9IGF1ZGlvX2Rpdl9jbGtbaV0uZGl2Lmh3LmluaXQtPm5hbWU7CiAJCXJldCA9IGNsa19od19yZWdpc3RlcihOVUxMLCAmYXVkaW9fZGl2X2Nsa1tpXS5kaXYuaHcpOwotCQlpZiAocmV0KSB7Ci0JCQlwcl93YXJuKCJhdWRpbyBjbGsgJXMgaW5pdCBlcnJvciFcbiIsCi0JCQkJYXVkaW9fZGl2X2Nsa1tpXS5kaXYuaHcuaW5pdC0+bmFtZSk7Ci0JCX0KKwkJaWYgKHJldCkKKwkJCXByX3dhcm4oImF1ZGlvIGNsayAlcyBpbml0IGVycm9yIVxuIiwgbmFtZSk7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYXVkaW9fZ2F0ZV9jbGspOyBpKyspIHsKQEAgLTEwMzEsMTEgKzEwMjEsMTAgQEAgc3RhdGljIGludCBfX2luaXQgYXVkaW9fY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAkJCQkJJmF1ZGlvX2dhdGVfY2xrW2ldLmdhdGUuaHc7CiAKIAkJYXVkaW9fZ2F0ZV9jbGtbaV0uZ2F0ZS5yZWcgKz0gKHVpbnRwdHJfdClyZWdfYmFzZTsKKwkJbmFtZSA9IGF1ZGlvX2dhdGVfY2xrW2ldLmdhdGUuaHcuaW5pdC0+bmFtZTsKIAkJcmV0ID0gY2xrX2h3X3JlZ2lzdGVyKE5VTEwsICZhdWRpb19nYXRlX2Nsa1tpXS5nYXRlLmh3KTsKLQkJaWYgKHJldCkgewotCQkJcHJfd2FybigiYXVkaW8gY2xrICVzIGluaXQgZXJyb3IhXG4iLAotCQkJCWF1ZGlvX2dhdGVfY2xrW2ldLmdhdGUuaHcuaW5pdC0+bmFtZSk7Ci0JCX0KKwkJaWYgKHJldCkKKwkJCXByX3dhcm4oImF1ZGlvIGNsayAlcyBpbml0IGVycm9yIVxuIiwgbmFtZSk7CiAJfQogCiAJcmV0ID0gb2ZfY2xrX2FkZF9od19wcm92aWRlcihucCwgb2ZfY2xrX2h3X29uZWNlbGxfZ2V0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9ja3NvdXJjZS9LY29uZmlnIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9LY29uZmlnCmluZGV4IGE2NDJjMjMuLmYzNWE1M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvS2NvbmZpZworKysgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL0tjb25maWcKQEAgLTY4NSw0ICs2ODUsMTUgQEAKIAloZWxwCiAJICBFbmFibGVzIHRoZSBzdXBwb3J0IGZvciBNaWxiZWF1dCB0aW1lciBkcml2ZXIuCiAKK2NvbmZpZyBJTkdFTklDX1RJTUVSCisJYm9vbCAiQ2xvY2tzb3VyY2UvdGltZXIgdXNpbmcgdGhlIFRDVSBpbiBJbmdlbmljIEpaIFNvQ3MiCisJZGVmYXVsdCBNQUNIX0lOR0VOSUMKKwlkZXBlbmRzIG9uIE1JUFMgfHwgQ09NUElMRV9URVNUCisJZGVwZW5kcyBvbiBDT01NT05fQ0xLCisJc2VsZWN0IE1GRF9TWVNDT04KKwlzZWxlY3QgVElNRVJfT0YKKwlzZWxlY3QgSVJRX0RPTUFJTgorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHRoZSB0aW1lci9jb3VudGVyIHVuaXQgb2YgdGhlIEluZ2VuaWMgSlogU29Dcy4KKwogZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9ja3NvdXJjZS9NYWtlZmlsZSBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvTWFrZWZpbGUKaW5kZXggMmU3OTM2ZS4uNGRmZTQyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbG9ja3NvdXJjZS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL01ha2VmaWxlCkBAIC04MCw2ICs4MCw3IEBACiBvYmotJChDT05GSUdfSDgzMDBfVE1SOCkJCSs9IGg4MzAwX3RpbWVyOC5vCiBvYmotJChDT05GSUdfSDgzMDBfVE1SMTYpCQkrPSBoODMwMF90aW1lcjE2Lm8KIG9iai0kKENPTkZJR19IODMwMF9UUFUpCQkJKz0gaDgzMDBfdHB1Lm8KK29iai0kKENPTkZJR19JTkdFTklDX1RJTUVSKQkJKz0gaW5nZW5pYy10aW1lci5vCiBvYmotJChDT05GSUdfQ0xLU1JDX1NUX0xQQykJCSs9IGNsa3NyY19zdF9scGMubwogb2JqLSQoQ09ORklHX1g4Nl9OVU1BQ0hJUCkJCSs9IG51bWFjaGlwLm8KIG9iai0kKENPTkZJR19BVENQSVQxMDBfVElNRVIpCQkrPSB0aW1lci1hdGNwaXQxMDAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9ja3NvdXJjZS9pbmdlbmljLXRpbWVyLmMgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL2luZ2VuaWMtdGltZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmJkYjNkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9pbmdlbmljLXRpbWVyLmMKQEAgLTAsMCArMSwzNTYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogSlo0N3h4IFNvQ3MgVENVIElSUSBkcml2ZXIKKyAqIENvcHlyaWdodCAoQykgMjAxOSBQYXVsIENlcmN1ZWlsIDxwYXVsQGNyYXBvdWlsbG91Lm5ldD4KKyAqLworCisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2luZ2VuaWMtdGN1Lmg+CisjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWRfY2xvY2suaD4KKworI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL2luZ2VuaWMsdGN1Lmg+CisKK3N0cnVjdCBpbmdlbmljX3NvY19pbmZvIHsKKwl1bnNpZ25lZCBpbnQgbnVtX2NoYW5uZWxzOworfTsKKworc3RydWN0IGluZ2VuaWNfdGN1IHsKKwlzdHJ1Y3QgcmVnbWFwICptYXA7CisJc3RydWN0IGNsayAqdGltZXJfY2xrLCAqY3NfY2xrOworCXVuc2lnbmVkIGludCB0aW1lcl9jaGFubmVsLCBjc19jaGFubmVsOworCXN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgY2V2dDsKKwlzdHJ1Y3QgY2xvY2tzb3VyY2UgY3M7CisJY2hhciBuYW1lWzRdOworCXVuc2lnbmVkIGxvbmcgcHdtX2NoYW5uZWxzX21hc2s7Cit9OworCitzdGF0aWMgc3RydWN0IGluZ2VuaWNfdGN1ICppbmdlbmljX3RjdTsKKworc3RhdGljIHU2NCBub3RyYWNlIGluZ2VuaWNfdGN1X3RpbWVyX3JlYWQodm9pZCkKK3sKKwlzdHJ1Y3QgaW5nZW5pY190Y3UgKnRjdSA9IGluZ2VuaWNfdGN1OworCXVuc2lnbmVkIGludCBjb3VudDsKKworCXJlZ21hcF9yZWFkKHRjdS0+bWFwLCBUQ1VfUkVHX1RDTlRjKHRjdS0+Y3NfY2hhbm5lbCksICZjb3VudCk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyB1NjQgbm90cmFjZSBpbmdlbmljX3RjdV90aW1lcl9jc19yZWFkKHN0cnVjdCBjbG9ja3NvdXJjZSAqY3MpCit7CisJcmV0dXJuIGluZ2VuaWNfdGN1X3RpbWVyX3JlYWQoKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgaW5nZW5pY190Y3UgKnRvX2luZ2VuaWNfdGN1KHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGV2dCwgc3RydWN0IGluZ2VuaWNfdGN1LCBjZXZ0KTsKK30KKworc3RhdGljIGludCBpbmdlbmljX3RjdV9jZXZ0X3NldF9zdGF0ZV9zaHV0ZG93bihzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCit7CisJc3RydWN0IGluZ2VuaWNfdGN1ICp0Y3UgPSB0b19pbmdlbmljX3RjdShldnQpOworCisJcmVnbWFwX3dyaXRlKHRjdS0+bWFwLCBUQ1VfUkVHX1RFQ1IsIEJJVCh0Y3UtPnRpbWVyX2NoYW5uZWwpKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGluZ2VuaWNfdGN1X2NldnRfc2V0X25leHQodW5zaWduZWQgbG9uZyBuZXh0LAorCQkJCSAgICAgc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQoreworCXN0cnVjdCBpbmdlbmljX3RjdSAqdGN1ID0gdG9faW5nZW5pY190Y3UoZXZ0KTsKKworCWlmIChuZXh0ID4gMHhmZmZmKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJlZ21hcF93cml0ZSh0Y3UtPm1hcCwgVENVX1JFR19UREZSYyh0Y3UtPnRpbWVyX2NoYW5uZWwpLCBuZXh0KTsKKwlyZWdtYXBfd3JpdGUodGN1LT5tYXAsIFRDVV9SRUdfVENOVGModGN1LT50aW1lcl9jaGFubmVsKSwgMCk7CisJcmVnbWFwX3dyaXRlKHRjdS0+bWFwLCBUQ1VfUkVHX1RFU1IsIEJJVCh0Y3UtPnRpbWVyX2NoYW5uZWwpKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3QgaW5nZW5pY190Y3VfY2V2dF9jYihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0ID0gZGV2X2lkOworCXN0cnVjdCBpbmdlbmljX3RjdSAqdGN1ID0gdG9faW5nZW5pY190Y3UoZXZ0KTsKKworCXJlZ21hcF93cml0ZSh0Y3UtPm1hcCwgVENVX1JFR19URUNSLCBCSVQodGN1LT50aW1lcl9jaGFubmVsKSk7CisKKwlpZiAoZXZ0LT5ldmVudF9oYW5kbGVyKQorCQlldnQtPmV2ZW50X2hhbmRsZXIoZXZ0KTsKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQgaW5nZW5pY190Y3VfZ2V0X2Nsb2NrKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIGludCBpZCkKK3sKKwlzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzIGFyZ3M7CisKKwlhcmdzLm5wID0gbnA7CisJYXJncy5hcmdzX2NvdW50ID0gMTsKKwlhcmdzLmFyZ3NbMF0gPSBpZDsKKworCXJldHVybiBvZl9jbGtfZ2V0X2Zyb21fcHJvdmlkZXIoJmFyZ3MpOworfQorCitzdGF0aWMgaW50IF9faW5pdCBpbmdlbmljX3RjdV90aW1lcl9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCisJCQkJCSBzdHJ1Y3QgaW5nZW5pY190Y3UgKnRjdSkKK3sKKwl1bnNpZ25lZCBpbnQgdGltZXJfdmlycSwgY2hhbm5lbCA9IHRjdS0+dGltZXJfY2hhbm5lbDsKKwlzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluOworCXVuc2lnbmVkIGxvbmcgcmF0ZTsKKwlpbnQgZXJyOworCisJdGN1LT50aW1lcl9jbGsgPSBpbmdlbmljX3RjdV9nZXRfY2xvY2sobnAsIGNoYW5uZWwpOworCWlmIChJU19FUlIodGN1LT50aW1lcl9jbGspKQorCQlyZXR1cm4gUFRSX0VSUih0Y3UtPnRpbWVyX2Nsayk7CisKKwllcnIgPSBjbGtfcHJlcGFyZV9lbmFibGUodGN1LT50aW1lcl9jbGspOworCWlmIChlcnIpCisJCWdvdG8gZXJyX2Nsa19wdXQ7CisKKwlyYXRlID0gY2xrX2dldF9yYXRlKHRjdS0+dGltZXJfY2xrKTsKKwlpZiAoIXJhdGUpIHsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBlcnJfY2xrX2Rpc2FibGU7CisJfQorCisJZG9tYWluID0gaXJxX2ZpbmRfaG9zdChucCk7CisJaWYgKCFkb21haW4pIHsKKwkJZXJyID0gLUVOT0RFVjsKKwkJZ290byBlcnJfY2xrX2Rpc2FibGU7CisJfQorCisJdGltZXJfdmlycSA9IGlycV9jcmVhdGVfbWFwcGluZyhkb21haW4sIGNoYW5uZWwpOworCWlmICghdGltZXJfdmlycSkgeworCQllcnIgPSAtRUlOVkFMOworCQlnb3RvIGVycl9jbGtfZGlzYWJsZTsKKwl9CisKKwlzbnByaW50Zih0Y3UtPm5hbWUsIHNpemVvZih0Y3UtPm5hbWUpLCAiVENVIik7CisKKwllcnIgPSByZXF1ZXN0X2lycSh0aW1lcl92aXJxLCBpbmdlbmljX3RjdV9jZXZ0X2NiLCBJUlFGX1RJTUVSLAorCQkJICB0Y3UtPm5hbWUsICZ0Y3UtPmNldnQpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX2lycV9kaXNwb3NlX21hcHBpbmc7CisKKwl0Y3UtPmNldnQuY3B1bWFzayA9IGNwdW1hc2tfb2Yoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwl0Y3UtPmNldnQuZmVhdHVyZXMgPSBDTE9DS19FVlRfRkVBVF9PTkVTSE9UOworCXRjdS0+Y2V2dC5uYW1lID0gdGN1LT5uYW1lOworCXRjdS0+Y2V2dC5yYXRpbmcgPSAyMDA7CisJdGN1LT5jZXZ0LnNldF9zdGF0ZV9zaHV0ZG93biA9IGluZ2VuaWNfdGN1X2NldnRfc2V0X3N0YXRlX3NodXRkb3duOworCXRjdS0+Y2V2dC5zZXRfbmV4dF9ldmVudCA9IGluZ2VuaWNfdGN1X2NldnRfc2V0X25leHQ7CisKKwljbG9ja2V2ZW50c19jb25maWdfYW5kX3JlZ2lzdGVyKCZ0Y3UtPmNldnQsIHJhdGUsIDEwLCAweGZmZmYpOworCisJcmV0dXJuIDA7CisKK2Vycl9pcnFfZGlzcG9zZV9tYXBwaW5nOgorCWlycV9kaXNwb3NlX21hcHBpbmcodGltZXJfdmlycSk7CitlcnJfY2xrX2Rpc2FibGU6CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHRjdS0+dGltZXJfY2xrKTsKK2Vycl9jbGtfcHV0OgorCWNsa19wdXQodGN1LT50aW1lcl9jbGspOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluZ2VuaWNfdGN1X2Nsb2Nrc291cmNlX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCwKKwkJCQkJICAgICAgIHN0cnVjdCBpbmdlbmljX3RjdSAqdGN1KQoreworCXVuc2lnbmVkIGludCBjaGFubmVsID0gdGN1LT5jc19jaGFubmVsOworCXN0cnVjdCBjbG9ja3NvdXJjZSAqY3MgPSAmdGN1LT5jczsKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisJaW50IGVycjsKKworCXRjdS0+Y3NfY2xrID0gaW5nZW5pY190Y3VfZ2V0X2Nsb2NrKG5wLCBjaGFubmVsKTsKKwlpZiAoSVNfRVJSKHRjdS0+Y3NfY2xrKSkKKwkJcmV0dXJuIFBUUl9FUlIodGN1LT5jc19jbGspOworCisJZXJyID0gY2xrX3ByZXBhcmVfZW5hYmxlKHRjdS0+Y3NfY2xrKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9jbGtfcHV0OworCisJcmF0ZSA9IGNsa19nZXRfcmF0ZSh0Y3UtPmNzX2Nsayk7CisJaWYgKCFyYXRlKSB7CisJCWVyciA9IC1FSU5WQUw7CisJCWdvdG8gZXJyX2Nsa19kaXNhYmxlOworCX0KKworCS8qIFJlc2V0IGNoYW5uZWwgKi8KKwlyZWdtYXBfdXBkYXRlX2JpdHModGN1LT5tYXAsIFRDVV9SRUdfVENTUmMoY2hhbm5lbCksCisJCQkgICAweGZmZmYgJiB+VENVX1RDU1JfUkVTRVJWRURfQklUUywgMCk7CisKKwkvKiBSZXNldCBjb3VudGVyICovCisJcmVnbWFwX3dyaXRlKHRjdS0+bWFwLCBUQ1VfUkVHX1RERlJjKGNoYW5uZWwpLCAweGZmZmYpOworCXJlZ21hcF93cml0ZSh0Y3UtPm1hcCwgVENVX1JFR19UQ05UYyhjaGFubmVsKSwgMCk7CisKKwkvKiBFbmFibGUgY2hhbm5lbCAqLworCXJlZ21hcF93cml0ZSh0Y3UtPm1hcCwgVENVX1JFR19URVNSLCBCSVQoY2hhbm5lbCkpOworCisJY3MtPm5hbWUgPSAiaW5nZW5pYy10aW1lciI7CisJY3MtPnJhdGluZyA9IDIwMDsKKwljcy0+ZmxhZ3MgPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUzsKKwljcy0+bWFzayA9IENMT0NLU09VUkNFX01BU0soMTYpOworCWNzLT5yZWFkID0gaW5nZW5pY190Y3VfdGltZXJfY3NfcmVhZDsKKworCWVyciA9IGNsb2Nrc291cmNlX3JlZ2lzdGVyX2h6KGNzLCByYXRlKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9jbGtfZGlzYWJsZTsKKworCXJldHVybiAwOworCitlcnJfY2xrX2Rpc2FibGU6CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHRjdS0+Y3NfY2xrKTsKK2Vycl9jbGtfcHV0OgorCWNsa19wdXQodGN1LT5jc19jbGspOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW5nZW5pY19zb2NfaW5mbyBqejQ3NDBfc29jX2luZm8gPSB7CisJLm51bV9jaGFubmVscyA9IDgsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGluZ2VuaWNfc29jX2luZm8gano0NzI1Yl9zb2NfaW5mbyA9IHsKKwkubnVtX2NoYW5uZWxzID0gNiwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGluZ2VuaWNfdGN1X29mX21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDc0MC10Y3UiLCAuZGF0YSA9ICZqejQ3NDBfc29jX2luZm8sIH0sCisJeyAuY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDcyNWItdGN1IiwgLmRhdGEgPSAmano0NzI1Yl9zb2NfaW5mbywgfSwKKwl7IC5jb21wYXRpYmxlID0gImluZ2VuaWMsano0NzcwLXRjdSIsIC5kYXRhID0gJmp6NDc0MF9zb2NfaW5mbywgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0KK307CisKK3N0YXRpYyBpbnQgX19pbml0IGluZ2VuaWNfdGN1X2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKK3sKKwljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICppZCA9IG9mX21hdGNoX25vZGUoaW5nZW5pY190Y3Vfb2ZfbWF0Y2gsIG5wKTsKKwljb25zdCBzdHJ1Y3QgaW5nZW5pY19zb2NfaW5mbyAqc29jX2luZm8gPSBpZC0+ZGF0YTsKKwlzdHJ1Y3QgaW5nZW5pY190Y3UgKnRjdTsKKwlzdHJ1Y3QgcmVnbWFwICptYXA7CisJbG9uZyByYXRlOworCWludCByZXQ7CisKKwlvZl9ub2RlX2NsZWFyX2ZsYWcobnAsIE9GX1BPUFVMQVRFRCk7CisKKwltYXAgPSBkZXZpY2Vfbm9kZV90b19yZWdtYXAobnApOworCWlmIChJU19FUlIobWFwKSkKKwkJcmV0dXJuIFBUUl9FUlIobWFwKTsKKworCXRjdSA9IGt6YWxsb2Moc2l6ZW9mKCp0Y3UpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXRjdSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwkvKiBFbmFibGUgYWxsIFRDVSBjaGFubmVscyBmb3IgUFdNIHVzZSBieSBkZWZhdWx0IGV4Y2VwdCBjaGFubmVscyAwLzEgKi8KKwl0Y3UtPnB3bV9jaGFubmVsc19tYXNrID0gR0VOTUFTSyhzb2NfaW5mby0+bnVtX2NoYW5uZWxzIC0gMSwgMik7CisJb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJpbmdlbmljLHB3bS1jaGFubmVscy1tYXNrIiwKKwkJCSAgICAgKHUzMiAqKSZ0Y3UtPnB3bV9jaGFubmVsc19tYXNrKTsKKworCS8qIFZlcmlmeSB0aGF0IHdlIGhhdmUgYXQgbGVhc3QgdHdvIGZyZWUgY2hhbm5lbHMgKi8KKwlpZiAoaHdlaWdodDgodGN1LT5wd21fY2hhbm5lbHNfbWFzaykgPiBzb2NfaW5mby0+bnVtX2NoYW5uZWxzIC0gMikgeworCQlwcl9jcml0KCIlczogSW52YWxpZCBQV00gY2hhbm5lbCBtYXNrOiAweCUwMmx4XG4iLCBfX2Z1bmNfXywKKwkJCXRjdS0+cHdtX2NoYW5uZWxzX21hc2spOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGVycl9mcmVlX2luZ2VuaWNfdGN1OworCX0KKworCXRjdS0+bWFwID0gbWFwOworCWluZ2VuaWNfdGN1ID0gdGN1OworCisJdGN1LT50aW1lcl9jaGFubmVsID0gZmluZF9maXJzdF96ZXJvX2JpdCgmdGN1LT5wd21fY2hhbm5lbHNfbWFzaywKKwkJCQkJCSBzb2NfaW5mby0+bnVtX2NoYW5uZWxzKTsKKwl0Y3UtPmNzX2NoYW5uZWwgPSBmaW5kX25leHRfemVyb19iaXQoJnRjdS0+cHdtX2NoYW5uZWxzX21hc2ssCisJCQkJCSAgICAgc29jX2luZm8tPm51bV9jaGFubmVscywKKwkJCQkJICAgICB0Y3UtPnRpbWVyX2NoYW5uZWwgKyAxKTsKKworCXJldCA9IGluZ2VuaWNfdGN1X2Nsb2Nrc291cmNlX2luaXQobnAsIHRjdSk7CisJaWYgKHJldCkgeworCQlwcl9jcml0KCIlczogVW5hYmxlIHRvIGluaXQgY2xvY2tzb3VyY2U6ICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsKKwkJZ290byBlcnJfZnJlZV9pbmdlbmljX3RjdTsKKwl9CisKKwlyZXQgPSBpbmdlbmljX3RjdV90aW1lcl9pbml0KG5wLCB0Y3UpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3RjdV9jbG9ja3NvdXJjZV9jbGVhbnVwOworCisJLyogUmVnaXN0ZXIgdGhlIHNjaGVkX2Nsb2NrIGF0IHRoZSBlbmQgYXMgdGhlcmUncyBubyB3YXkgdG8gdW5kbyBpdCAqLworCXJhdGUgPSBjbGtfZ2V0X3JhdGUodGN1LT5jc19jbGspOworCXNjaGVkX2Nsb2NrX3JlZ2lzdGVyKGluZ2VuaWNfdGN1X3RpbWVyX3JlYWQsIDE2LCByYXRlKTsKKworCXJldHVybiAwOworCitlcnJfdGN1X2Nsb2Nrc291cmNlX2NsZWFudXA6CisJY2xvY2tzb3VyY2VfdW5yZWdpc3RlcigmdGN1LT5jcyk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHRjdS0+Y3NfY2xrKTsKKwljbGtfcHV0KHRjdS0+Y3NfY2xrKTsKK2Vycl9mcmVlX2luZ2VuaWNfdGN1OgorCWtmcmVlKHRjdSk7CisJcmV0dXJuIHJldDsKK30KKworVElNRVJfT0ZfREVDTEFSRShqejQ3NDBfdGN1X2ludGMsICAiaW5nZW5pYyxqejQ3NDAtdGN1IiwgIGluZ2VuaWNfdGN1X2luaXQpOworVElNRVJfT0ZfREVDTEFSRShqejQ3MjViX3RjdV9pbnRjLCAiaW5nZW5pYyxqejQ3MjViLXRjdSIsIGluZ2VuaWNfdGN1X2luaXQpOworVElNRVJfT0ZfREVDTEFSRShqejQ3NzBfdGN1X2ludGMsICAiaW5nZW5pYyxqejQ3NzAtdGN1IiwgIGluZ2VuaWNfdGN1X2luaXQpOworCisKK3N0YXRpYyBpbnQgX19pbml0IGluZ2VuaWNfdGN1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgaW5nZW5pY190Y3UpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgaW5nZW5pY190Y3Vfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGluZ2VuaWNfdGN1ICp0Y3UgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCWNsa19kaXNhYmxlKHRjdS0+Y3NfY2xrKTsKKwljbGtfZGlzYWJsZSh0Y3UtPnRpbWVyX2Nsayk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgaW5nZW5pY190Y3VfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgaW5nZW5pY190Y3UgKnRjdSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludCByZXQ7CisKKwlyZXQgPSBjbGtfZW5hYmxlKHRjdS0+dGltZXJfY2xrKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gY2xrX2VuYWJsZSh0Y3UtPmNzX2Nsayk7CisJaWYgKHJldCkgeworCQljbGtfZGlzYWJsZSh0Y3UtPnRpbWVyX2Nsayk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBfX21heWJlX3VudXNlZCBpbmdlbmljX3RjdV9wbV9vcHMgPSB7CisJLyogX25vaXJxOiBXZSB3YW50IHRoZSBUQ1UgY2xvY2tzIHRvIGJlIGdhdGVkIGxhc3QgLyB1bmdhdGVkIGZpcnN0ICovCisJLnN1c3BlbmRfbm9pcnEgPSBpbmdlbmljX3RjdV9zdXNwZW5kLAorCS5yZXN1bWVfbm9pcnEgID0gaW5nZW5pY190Y3VfcmVzdW1lLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgaW5nZW5pY190Y3VfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lCT0gImluZ2VuaWMtdGN1LXRpbWVyIiwKKyNpZmRlZiBDT05GSUdfUE1fU0xFRVAKKwkJLnBtCT0gJmluZ2VuaWNfdGN1X3BtX29wcywKKyNlbmRpZgorCQkub2ZfbWF0Y2hfdGFibGUgPSBpbmdlbmljX3RjdV9vZl9tYXRjaCwKKwl9LAorfTsKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyX3Byb2JlKGluZ2VuaWNfdGN1X2RyaXZlciwgaW5nZW5pY190Y3VfcHJvYmUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vY2hlbHNpby9jaHRscy9jaHRsc19pby5jIGIvZHJpdmVycy9jcnlwdG8vY2hlbHNpby9jaHRscy9jaHRsc19pby5jCmluZGV4IGM3MGNiNWYuLjA4OTFhYjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL2NoZWxzaW8vY2h0bHMvY2h0bHNfaW8uYworKysgYi9kcml2ZXJzL2NyeXB0by9jaGVsc2lvL2NodGxzL2NodGxzX2lvLmMKQEAgLTEwNzgsNyArMTA3OCw3IEBAIGludCBjaHRsc19zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qgc2l6ZSkKIAkJCWJvb2wgbWVyZ2U7CiAKIAkJCWlmIChwYWdlKQotCQkJCXBnX3NpemUgPDw9IGNvbXBvdW5kX29yZGVyKHBhZ2UpOworCQkJCXBnX3NpemUgPSBwYWdlX3NpemUocGFnZSk7CiAJCQlpZiAob2ZmIDwgcGdfc2l6ZSAmJgogCQkJICAgIHNrYl9jYW5fY29hbGVzY2Uoc2tiLCBpLCBwYWdlLCBvZmYpKSB7CiAJCQkJbWVyZ2UgPSAxOwpAQCAtMTEwNSw4ICsxMTA1LDcgQEAgaW50IGNodGxzX3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBzaXplKQogCQkJCQkJCSAgIF9fR0ZQX05PUkVUUlksCiAJCQkJCQkJICAgb3JkZXIpOwogCQkJCQlpZiAocGFnZSkKLQkJCQkJCXBnX3NpemUgPDw9Ci0JCQkJCQkJY29tcG91bmRfb3JkZXIocGFnZSk7CisJCQkJCQlwZ19zaXplIDw8PSBvcmRlcjsKIAkJCQl9CiAJCQkJaWYgKCFwYWdlKSB7CiAJCQkJCXBhZ2UgPSBhbGxvY19wYWdlKGdmcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9oaXNpbGljb24vc2VjL3NlY19hbGdzLmMgYi9kcml2ZXJzL2NyeXB0by9oaXNpbGljb24vc2VjL3NlY19hbGdzLmMKaW5kZXggZTA1MDhlYS4uYzI3ZTcxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vaGlzaWxpY29uL3NlYy9zZWNfYWxncy5jCisrKyBiL2RyaXZlcnMvY3J5cHRvL2hpc2lsaWNvbi9zZWMvc2VjX2FsZ3MuYwpAQCAtMTUzLDYgKzE1MywyNCBAQCBzdGF0aWMgdm9pZCBzZWNfYWxnX3NrY2lwaGVyX2luaXRfY29udGV4dChzdHJ1Y3QgY3J5cHRvX3NrY2lwaGVyICphdGZtLAogCQkJCSAgICAgICBjdHgtPmNpcGhlcl9hbGcpOwogfQogCitzdGF0aWMgdm9pZCBzZWNfZnJlZV9od19zZ2woc3RydWN0IHNlY19od19zZ2wgKmh3X3NnbCwKKwkJCSAgICBkbWFfYWRkcl90IHBzZWNfc2dsLCBzdHJ1Y3Qgc2VjX2Rldl9pbmZvICppbmZvKQoreworCXN0cnVjdCBzZWNfaHdfc2dsICpzZ2xfY3VycmVudCwgKnNnbF9uZXh0OworCWRtYV9hZGRyX3Qgc2dsX25leHRfZG1hOworCisJc2dsX2N1cnJlbnQgPSBod19zZ2w7CisJd2hpbGUgKHNnbF9jdXJyZW50KSB7CisJCXNnbF9uZXh0ID0gc2dsX2N1cnJlbnQtPm5leHQ7CisJCXNnbF9uZXh0X2RtYSA9IHNnbF9jdXJyZW50LT5uZXh0X3NnbDsKKworCQlkbWFfcG9vbF9mcmVlKGluZm8tPmh3X3NnbF9wb29sLCBzZ2xfY3VycmVudCwgcHNlY19zZ2wpOworCisJCXNnbF9jdXJyZW50ID0gc2dsX25leHQ7CisJCXBzZWNfc2dsID0gc2dsX25leHRfZG1hOworCX0KK30KKwogc3RhdGljIGludCBzZWNfYWxsb2NfYW5kX2ZpbGxfaHdfc2dsKHN0cnVjdCBzZWNfaHdfc2dsICoqc2VjX3NnbCwKIAkJCQkgICAgIGRtYV9hZGRyX3QgKnBzZWNfc2dsLAogCQkJCSAgICAgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2wsCkBAIC0xOTksMzUgKzIxNywxMiBAQCBzdGF0aWMgaW50IHNlY19hbGxvY19hbmRfZmlsbF9od19zZ2woc3RydWN0IHNlY19od19zZ2wgKipzZWNfc2dsLAogCXJldHVybiAwOwogCiBlcnJfZnJlZV9od19zZ2xzOgotCXNnbF9jdXJyZW50ID0gKnNlY19zZ2w7Ci0Jd2hpbGUgKHNnbF9jdXJyZW50KSB7Ci0JCXNnbF9uZXh0ID0gc2dsX2N1cnJlbnQtPm5leHQ7Ci0JCWRtYV9wb29sX2ZyZWUoaW5mby0+aHdfc2dsX3Bvb2wsIHNnbF9jdXJyZW50LAotCQkJICAgICAgc2dsX2N1cnJlbnQtPm5leHRfc2dsKTsKLQkJc2dsX2N1cnJlbnQgPSBzZ2xfbmV4dDsKLQl9CisJc2VjX2ZyZWVfaHdfc2dsKCpzZWNfc2dsLCAqcHNlY19zZ2wsIGluZm8pOwogCSpwc2VjX3NnbCA9IDA7CiAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdm9pZCBzZWNfZnJlZV9od19zZ2woc3RydWN0IHNlY19od19zZ2wgKmh3X3NnbCwKLQkJCSAgICBkbWFfYWRkcl90IHBzZWNfc2dsLCBzdHJ1Y3Qgc2VjX2Rldl9pbmZvICppbmZvKQotewotCXN0cnVjdCBzZWNfaHdfc2dsICpzZ2xfY3VycmVudCwgKnNnbF9uZXh0OwotCi0JaWYgKCFod19zZ2wpCi0JCXJldHVybjsKLQlzZ2xfY3VycmVudCA9IGh3X3NnbDsKLQl3aGlsZSAoc2dsX2N1cnJlbnQtPm5leHQpIHsKLQkJc2dsX25leHQgPSBzZ2xfY3VycmVudC0+bmV4dDsKLQkJZG1hX3Bvb2xfZnJlZShpbmZvLT5od19zZ2xfcG9vbCwgc2dsX2N1cnJlbnQsCi0JCQkgICAgICBzZ2xfY3VycmVudC0+bmV4dF9zZ2wpOwotCQlzZ2xfY3VycmVudCA9IHNnbF9uZXh0OwotCX0KLQlkbWFfcG9vbF9mcmVlKGluZm8tPmh3X3NnbF9wb29sLCBod19zZ2wsIHBzZWNfc2dsKTsKLX0KLQogc3RhdGljIGludCBzZWNfYWxnX3NrY2lwaGVyX3NldGtleShzdHJ1Y3QgY3J5cHRvX3NrY2lwaGVyICp0Zm0sCiAJCQkJICAgY29uc3QgdTggKmtleSwgdW5zaWduZWQgaW50IGtleWxlbiwKIAkJCQkgICBlbnVtIHNlY19jaXBoZXJfYWxnIGFsZykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2hpc2lsaWNvbi96aXAvemlwX2NyeXB0by5jIGIvZHJpdmVycy9jcnlwdG8vaGlzaWxpY29uL3ppcC96aXBfY3J5cHRvLmMKaW5kZXggNWEzZjg0ZC4uNTkwMjM1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vaGlzaWxpY29uL3ppcC96aXBfY3J5cHRvLmMKKysrIGIvZHJpdmVycy9jcnlwdG8vaGlzaWxpY29uL3ppcC96aXBfY3J5cHRvLmMKQEAgLTU1OSw3ICs1NTksNyBAQCBzdGF0aWMgaW50IGhpc2lfemlwX2Fjb21wcmVzcyhzdHJ1Y3QgYWNvbXBfcmVxICphY29tcF9yZXEpCiAJc3RydWN0IGhpc2lfemlwX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgoYWNvbXBfcmVxLT5iYXNlLnRmbSk7CiAJc3RydWN0IGhpc2lfemlwX3FwX2N0eCAqcXBfY3R4ID0gJmN0eC0+cXBfY3R4W1FQQ19DT01QXTsKIAlzdHJ1Y3QgaGlzaV96aXBfcmVxICpyZXE7Ci0Jc2l6ZV90IGhlYWRfc2l6ZTsKKwlpbnQgaGVhZF9zaXplOwogCWludCByZXQ7CiAKIAkvKiBsZXQncyBvdXRwdXQgY29tcHJlc3Npb24gaGVhZCBub3cgKi8KQEAgLTU2Nyw3ICs1NjcsNyBAQCBzdGF0aWMgaW50IGhpc2lfemlwX2Fjb21wcmVzcyhzdHJ1Y3QgYWNvbXBfcmVxICphY29tcF9yZXEpCiAJaWYgKGhlYWRfc2l6ZSA8IDApCiAJCXJldHVybiAtRU5PTUVNOwogCi0JcmVxID0gaGlzaV96aXBfY3JlYXRlX3JlcShhY29tcF9yZXEsIHFwX2N0eCwgaGVhZF9zaXplLCB0cnVlKTsKKwlyZXEgPSBoaXNpX3ppcF9jcmVhdGVfcmVxKGFjb21wX3JlcSwgcXBfY3R4LCAoc2l6ZV90KWhlYWRfc2l6ZSwgdHJ1ZSk7CiAJaWYgKElTX0VSUihyZXEpKQogCQlyZXR1cm4gUFRSX0VSUihyZXEpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9oaXNpbGljb24vemlwL3ppcF9tYWluLmMgYi9kcml2ZXJzL2NyeXB0by9oaXNpbGljb24vemlwL3ppcF9tYWluLmMKaW5kZXggNmUwY2E3NS4uMWIyZWU5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vaGlzaWxpY29uL3ppcC96aXBfbWFpbi5jCisrKyBiL2RyaXZlcnMvY3J5cHRvL2hpc2lsaWNvbi96aXAvemlwX21haW4uYwpAQCAtNzg1LDcgKzc4NSw2IEBAIHN0YXRpYyBpbnQgaGlzaV96aXBfY2xlYXJfdmZ0X2NvbmZpZyhzdHJ1Y3QgaGlzaV96aXAgKmhpc2lfemlwKQogCiBzdGF0aWMgaW50IGhpc2lfemlwX3NyaW92X2VuYWJsZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG1heF92ZnMpCiB7Ci0jaWZkZWYgQ09ORklHX1BDSV9JT1YKIAlzdHJ1Y3QgaGlzaV96aXAgKmhpc2lfemlwID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCWludCBwcmVfZXhpc3RpbmdfdmZzLCBudW1fdmZzLCByZXQ7CiAKQEAgLTgxNSw5ICs4MTQsNiBAQCBzdGF0aWMgaW50IGhpc2lfemlwX3NyaW92X2VuYWJsZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG1heF92ZnMpCiAJfQogCiAJcmV0dXJuIG51bV92ZnM7Ci0jZWxzZQotCXJldHVybiAwOwotI2VuZGlmCiB9CiAKIHN0YXRpYyBpbnQgaGlzaV96aXBfc3Jpb3ZfZGlzYWJsZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKQEAgLTk0OCw3ICs5NDQsOCBAQCBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaGlzaV96aXBfcGNpX2RyaXZlciA9IHsKIAkuaWRfdGFibGUJCT0gaGlzaV96aXBfZGV2X2lkcywKIAkucHJvYmUJCQk9IGhpc2lfemlwX3Byb2JlLAogCS5yZW1vdmUJCQk9IGhpc2lfemlwX3JlbW92ZSwKLQkuc3Jpb3ZfY29uZmlndXJlCT0gaGlzaV96aXBfc3Jpb3ZfY29uZmlndXJlLAorCS5zcmlvdl9jb25maWd1cmUJPSBJU19FTkFCTEVEKENPTkZJR19QQ0lfSU9WKSA/CisJCQkJCWhpc2lfemlwX3NyaW92X2NvbmZpZ3VyZSA6IDAsCiAJLmVycl9oYW5kbGVyCQk9ICZoaXNpX3ppcF9lcnJfaGFuZGxlciwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2luc2lkZS1zZWN1cmUvc2FmZXhjZWwuYyBiL2RyaXZlcnMvY3J5cHRvL2luc2lkZS1zZWN1cmUvc2FmZXhjZWwuYwppbmRleCBiNDU2Yjg1Li40YWIxYmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NyeXB0by9pbnNpZGUtc2VjdXJlL3NhZmV4Y2VsLmMKKysrIGIvZHJpdmVycy9jcnlwdG8vaW5zaWRlLXNlY3VyZS9zYWZleGNlbC5jCkBAIC0xNzg5LDMyICsxNzg5LDUwIEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzYWZleGNlbF9wY2lfZHJpdmVyID0gewogfTsKICNlbmRpZgogCisvKiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIHRvIHJlc29ydCB0byBnbG9iYWwgdmFyaWFibGVzIGhlcmUgKi8KKyNpZiBJU19FTkFCTEVEKENPTkZJR19QQ0kpCitpbnQgcGNpcmVnX3JjID0gLUVJTlZBTDsgLyogRGVmYXVsdCBzYWZlIHZhbHVlICovCisjZW5kaWYKKyNpZiBJU19FTkFCTEVEKENPTkZJR19PRikKK2ludCBvZnJlZ19yYyA9IC1FSU5WQUw7IC8qIERlZmF1bHQgc2FmZSB2YWx1ZSAqLworI2VuZGlmCisKIHN0YXRpYyBpbnQgX19pbml0IHNhZmV4Y2VsX2luaXQodm9pZCkKIHsKLQlpbnQgcmM7CisjaWYgSVNfRU5BQkxFRChDT05GSUdfUENJKQorCS8qIFJlZ2lzdGVyIFBDSSBkcml2ZXIgKi8KKwlwY2lyZWdfcmMgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKCZzYWZleGNlbF9wY2lfZHJpdmVyKTsKKyNlbmRpZgogCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfT0YpCi0JCS8qIFJlZ2lzdGVyIHBsYXRmb3JtIGRyaXZlciAqLwotCQlwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmNyeXB0b19zYWZleGNlbCk7CisJLyogUmVnaXN0ZXIgcGxhdGZvcm0gZHJpdmVyICovCisJb2ZyZWdfcmMgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmNyeXB0b19zYWZleGNlbCk7CisgI2lmIElTX0VOQUJMRUQoQ09ORklHX1BDSSkKKwkvKiBSZXR1cm4gc3VjY2VzcyBpZiBlaXRoZXIgUENJIG9yIE9GIHJlZ2lzdGVyZWQgT0sgKi8KKwlyZXR1cm4gcGNpcmVnX3JjID8gb2ZyZWdfcmMgOiAwOworICNlbHNlCisJcmV0dXJuIG9mcmVnX3JjOworICNlbmRpZgorI2Vsc2UKKyAjaWYgSVNfRU5BQkxFRChDT05GSUdfUENJKQorCXJldHVybiBwY2lyZWdfcmM7CisgI2Vsc2UKKwlyZXR1cm4gLUVJTlZBTDsKKyAjZW5kaWYKICNlbmRpZgotCi0jaWYgSVNfRU5BQkxFRChDT05GSUdfUENJKQotCQkvKiBSZWdpc3RlciBQQ0kgZHJpdmVyICovCi0JCXJjID0gcGNpX3JlZ2lzdGVyX2RyaXZlcigmc2FmZXhjZWxfcGNpX2RyaXZlcik7Ci0jZW5kaWYKLQotCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBfX2V4aXQgc2FmZXhjZWxfZXhpdCh2b2lkKQogewogI2lmIElTX0VOQUJMRUQoQ09ORklHX09GKQotCQkvKiBVbnJlZ2lzdGVyIHBsYXRmb3JtIGRyaXZlciAqLworCS8qIFVucmVnaXN0ZXIgcGxhdGZvcm0gZHJpdmVyICovCisJaWYgKCFvZnJlZ19yYykKIAkJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmNyeXB0b19zYWZleGNlbCk7CiAjZW5kaWYKIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX1BDSSkKLQkJLyogVW5yZWdpc3RlciBQQ0kgZHJpdmVyIGlmIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIGJlZm9yZSAqLworCS8qIFVucmVnaXN0ZXIgUENJIGRyaXZlciBpZiBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCBiZWZvcmUgKi8KKwlpZiAoIXBjaXJlZ19yYykKIAkJcGNpX3VucmVnaXN0ZXJfZHJpdmVyKCZzYWZleGNlbF9wY2lfZHJpdmVyKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5jIGIvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5jCmluZGV4IGNiNmMxMGIuLjU2ZTMwNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL3RhbGl0b3MuYworKysgYi9kcml2ZXJzL2NyeXB0by90YWxpdG9zLmMKQEAgLTMxMTYsNiArMzExNiw3IEBAIHN0YXRpYyBpbnQgdGFsaXRvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb2ZkZXYpCiAJCQlicmVhazsKIAkJY2FzZSBDUllQVE9fQUxHX1RZUEVfQUVBRDoKIAkJCWNyeXB0b191bnJlZ2lzdGVyX2FlYWQoJnRfYWxnLT5hbGd0LmFsZy5hZWFkKTsKKwkJCWJyZWFrOwogCQljYXNlIENSWVBUT19BTEdfVFlQRV9BSEFTSDoKIAkJCWNyeXB0b191bnJlZ2lzdGVyX2FoYXNoKCZ0X2FsZy0+YWxndC5hbGcuaGFzaCk7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9LY29uZmlnIGIvZHJpdmVycy9kbWEtYnVmL0tjb25maWcKaW5kZXggYjZhOWMyZi4uYTIzYjY3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL0tjb25maWcKKysrIGIvZHJpdmVycy9kbWEtYnVmL0tjb25maWcKQEAgLTM5LDQgKzM5LDkgQEAKIAkgIEEgZHJpdmVyIHRvIGxldCB1c2Vyc3BhY2UgdHVybiBtZW1mZCByZWdpb25zIGludG8gZG1hLWJ1ZnMuCiAJICBRZW11IGNhbiB1c2UgdGhpcyB0byBjcmVhdGUgaG9zdCBkbWFidWZzIGZvciBndWVzdCBmcmFtZWJ1ZmZlcnMuCiAKK2NvbmZpZyBETUFCVUZfU0VMRlRFU1RTCisJdHJpc3RhdGUgIlNlbGZ0ZXN0cyBmb3IgdGhlIGRtYS1idWYgaW50ZXJmYWNlcyIKKwlkZWZhdWx0IG4KKwlkZXBlbmRzIG9uIERNQV9TSEFSRURfQlVGRkVSCisKIGVuZG1lbnUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZSBiL2RyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZQppbmRleCBlOGM3MzEwLi4wMzQ3OWRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlCkBAIC0xLDYgKzEsMTIgQEAKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQogb2JqLXkgOj0gZG1hLWJ1Zi5vIGRtYS1mZW5jZS5vIGRtYS1mZW5jZS1hcnJheS5vIGRtYS1mZW5jZS1jaGFpbi5vIFwKLQkgcmVzZXJ2YXRpb24ubyBzZXFuby1mZW5jZS5vCisJIGRtYS1yZXN2Lm8gc2Vxbm8tZmVuY2Uubwogb2JqLSQoQ09ORklHX1NZTkNfRklMRSkJCSs9IHN5bmNfZmlsZS5vCiBvYmotJChDT05GSUdfU1dfU1lOQykJCSs9IHN3X3N5bmMubyBzeW5jX2RlYnVnLm8KIG9iai0kKENPTkZJR19VRE1BQlVGKQkJKz0gdWRtYWJ1Zi5vCisKK2RtYWJ1Zl9zZWxmdGVzdHMteSA6PSBcCisJc2VsZnRlc3QubyBcCisJc3QtZG1hLWZlbmNlLm8KKworb2JqLSQoQ09ORklHX0RNQUJVRl9TRUxGVEVTVFMpCSs9IGRtYWJ1Zl9zZWxmdGVzdHMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKaW5kZXggZjQ1YmZiMi4uNDMzZDkxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYworKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCkBAIC0yMSw3ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KICNpbmNsdWRlIDxsaW51eC9wc2V1ZG9fZnMuaD4KQEAgLTEwNCw4ICsxMDQsOCBAQCBzdGF0aWMgaW50IGRtYV9idWZfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIAlsaXN0X2RlbCgmZG1hYnVmLT5saXN0X25vZGUpOwogCW11dGV4X3VubG9jaygmZGJfbGlzdC5sb2NrKTsKIAotCWlmIChkbWFidWYtPnJlc3YgPT0gKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKikmZG1hYnVmWzFdKQotCQlyZXNlcnZhdGlvbl9vYmplY3RfZmluaShkbWFidWYtPnJlc3YpOworCWlmIChkbWFidWYtPnJlc3YgPT0gKHN0cnVjdCBkbWFfcmVzdiAqKSZkbWFidWZbMV0pCisJCWRtYV9yZXN2X2ZpbmkoZG1hYnVmLT5yZXN2KTsKIAogCW1vZHVsZV9wdXQoZG1hYnVmLT5vd25lcik7CiAJa2ZyZWUoZG1hYnVmKTsKQEAgLTE2NSw3ICsxNjUsNyBAQCBzdGF0aWMgbG9mZl90IGRtYV9idWZfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKQogICogVG8gc3VwcG9ydCBjcm9zcy1kZXZpY2UgYW5kIGNyb3NzLWRyaXZlciBzeW5jaHJvbml6YXRpb24gb2YgYnVmZmVyIGFjY2VzcwogICogaW1wbGljaXQgZmVuY2VzIChyZXByZXNlbnRlZCBpbnRlcm5hbGx5IGluIHRoZSBrZXJuZWwgd2l0aCAmc3RydWN0IGZlbmNlKSBjYW4KICAqIGJlIGF0dGFjaGVkIHRvIGEgJmRtYV9idWYuIFRoZSBnbHVlIGZvciB0aGF0IGFuZCBhIGZldyByZWxhdGVkIHRoaW5ncyBhcmUKLSAqIHByb3ZpZGVkIGluIHRoZSAmcmVzZXJ2YXRpb25fb2JqZWN0IHN0cnVjdHVyZS4KKyAqIHByb3ZpZGVkIGluIHRoZSAmZG1hX3Jlc3Ygc3RydWN0dXJlLgogICoKICAqIFVzZXJzcGFjZSBjYW4gcXVlcnkgdGhlIHN0YXRlIG9mIHRoZXNlIGltcGxpY2l0bHkgdHJhY2tlZCBmZW5jZXMgdXNpbmcgcG9sbCgpCiAgKiBhbmQgcmVsYXRlZCBzeXN0ZW0gY2FsbHM6CkBAIC0xOTUsOCArMTk1LDggQEAgc3RhdGljIHZvaWQgZG1hX2J1Zl9wb2xsX2NiKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYikKIHN0YXRpYyBfX3BvbGxfdCBkbWFfYnVmX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKnBvbGwpCiB7CiAJc3RydWN0IGRtYV9idWYgKmRtYWJ1ZjsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iajsKKwlzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3Y7CisJc3RydWN0IGRtYV9yZXN2X2xpc3QgKmZvYmo7CiAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2VfZXhjbDsKIAlfX3BvbGxfdCBldmVudHM7CiAJdW5zaWduZWQgc2hhcmVkX2NvdW50LCBzZXE7CkBAIC01MDYsMTMgKzUwNiwxMyBAQCBzdGF0aWMgc3RydWN0IGZpbGUgKmRtYV9idWZfZ2V0ZmlsZShzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBpbnQgZmxhZ3MpCiBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gKmV4cF9pbmZvKQogewogCXN0cnVjdCBkbWFfYnVmICpkbWFidWY7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IGV4cF9pbmZvLT5yZXN2OworCXN0cnVjdCBkbWFfcmVzdiAqcmVzdiA9IGV4cF9pbmZvLT5yZXN2OwogCXN0cnVjdCBmaWxlICpmaWxlOwogCXNpemVfdCBhbGxvY19zaXplID0gc2l6ZW9mKHN0cnVjdCBkbWFfYnVmKTsKIAlpbnQgcmV0OwogCiAJaWYgKCFleHBfaW5mby0+cmVzdikKLQkJYWxsb2Nfc2l6ZSArPSBzaXplb2Yoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCk7CisJCWFsbG9jX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBkbWFfcmVzdik7CiAJZWxzZQogCQkvKiBwcmV2ZW50ICZkbWFfYnVmWzFdID09IGRtYV9idWYtPnJlc3YgKi8KIAkJYWxsb2Nfc2l6ZSArPSAxOwpAQCAtNTQ0LDggKzU0NCw4IEBAIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmX2V4cG9ydChjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mbyAqZXhwX2luZm8pCiAJZG1hYnVmLT5jYl9leGNsLmFjdGl2ZSA9IGRtYWJ1Zi0+Y2Jfc2hhcmVkLmFjdGl2ZSA9IDA7CiAKIAlpZiAoIXJlc3YpIHsKLQkJcmVzdiA9IChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICopJmRtYWJ1ZlsxXTsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2luaXQocmVzdik7CisJCXJlc3YgPSAoc3RydWN0IGRtYV9yZXN2ICopJmRtYWJ1ZlsxXTsKKwkJZG1hX3Jlc3ZfaW5pdChyZXN2KTsKIAl9CiAJZG1hYnVmLT5yZXN2ID0gcmVzdjsKIApAQCAtOTA5LDExICs5MDksMTEgQEAgc3RhdGljIGludCBfX2RtYV9idWZfYmVnaW5fY3B1X2FjY2VzcyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLAogewogCWJvb2wgd3JpdGUgPSAoZGlyZWN0aW9uID09IERNQV9CSURJUkVDVElPTkFMIHx8CiAJCSAgICAgIGRpcmVjdGlvbiA9PSBETUFfVE9fREVWSUNFKTsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2ID0gZG1hYnVmLT5yZXN2OworCXN0cnVjdCBkbWFfcmVzdiAqcmVzdiA9IGRtYWJ1Zi0+cmVzdjsKIAlsb25nIHJldDsKIAogCS8qIFdhaXQgb24gYW55IGltcGxpY2l0IHJlbmRlcmluZyBmZW5jZXMgKi8KLQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShyZXN2LCB3cml0ZSwgdHJ1ZSwKKwlyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KHJlc3YsIHdyaXRlLCB0cnVlLAogCQkJCQkJICBNQVhfU0NIRURVTEVfVElNRU9VVCk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC0xMTU0LDggKzExNTQsOCBAQCBzdGF0aWMgaW50IGRtYV9idWZfZGVidWdfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZCkKIAlpbnQgcmV0OwogCXN0cnVjdCBkbWFfYnVmICpidWZfb2JqOwogCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaF9vYmo7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcm9iajsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmo7CisJc3RydWN0IGRtYV9yZXN2ICpyb2JqOworCXN0cnVjdCBkbWFfcmVzdl9saXN0ICpmb2JqOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXVuc2lnbmVkIHNlcTsKIAlpbnQgY291bnQgPSAwLCBhdHRhY2hfY291bnQsIHNoYXJlZF9jb3VudCwgaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UtYXJyYXkuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UtYXJyYXkuYwppbmRleCAxMmM2ZjY0Li5kM2ZiZDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLWFycmF5LmMKKysrIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS1hcnJheS5jCkBAIC0xMyw2ICsxMyw4IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS1hcnJheS5oPgogCisjZGVmaW5lIFBFTkRJTkdfRVJST1IgMQorCiBzdGF0aWMgY29uc3QgY2hhciAqZG1hX2ZlbmNlX2FycmF5X2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gImRtYV9mZW5jZV9hcnJheSI7CkBAIC0yMywxMCArMjUsMjkgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmRtYV9mZW5jZV9hcnJheV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIAlyZXR1cm4gInVuYm91bmQiOwogfQogCitzdGF0aWMgdm9pZCBkbWFfZmVuY2VfYXJyYXlfc2V0X3BlbmRpbmdfZXJyb3Ioc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXksCisJCQkJCSAgICAgIGludCBlcnJvcikKK3sKKwkvKgorCSAqIFByb3BhZ2F0ZSB0aGUgZmlyc3QgZXJyb3IgcmVwb3J0ZWQgYnkgYW55IG9mIG91ciBmZW5jZXMsIGJ1dCBvbmx5CisJICogYmVmb3JlIHdlIG91cnNlbHZlcyBhcmUgc2lnbmFsZWQuCisJICovCisJaWYgKGVycm9yKQorCQljbXB4Y2hnKCZhcnJheS0+YmFzZS5lcnJvciwgUEVORElOR19FUlJPUiwgZXJyb3IpOworfQorCitzdGF0aWMgdm9pZCBkbWFfZmVuY2VfYXJyYXlfY2xlYXJfcGVuZGluZ19lcnJvcihzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5ICphcnJheSkKK3sKKwkvKiBDbGVhciB0aGUgZXJyb3IgZmxhZyBpZiBub3QgYWN0dWFsbHkgc2V0LiAqLworCWNtcHhjaGcoJmFycmF5LT5iYXNlLmVycm9yLCBQRU5ESU5HX0VSUk9SLCAwKTsKK30KKwogc3RhdGljIHZvaWQgaXJxX2RtYV9mZW5jZV9hcnJheV93b3JrKHN0cnVjdCBpcnFfd29yayAqd3JrKQogewogCXN0cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmFycmF5ID0gY29udGFpbmVyX29mKHdyaywgdHlwZW9mKCphcnJheSksIHdvcmspOwogCisJZG1hX2ZlbmNlX2FycmF5X2NsZWFyX3BlbmRpbmdfZXJyb3IoYXJyYXkpOworCiAJZG1hX2ZlbmNlX3NpZ25hbCgmYXJyYXktPmJhc2UpOwogCWRtYV9mZW5jZV9wdXQoJmFycmF5LT5iYXNlKTsKIH0KQEAgLTM4LDYgKzU5LDggQEAgc3RhdGljIHZvaWQgZG1hX2ZlbmNlX2FycmF5X2NiX2Z1bmMoc3RydWN0IGRtYV9mZW5jZSAqZiwKIAkJY29udGFpbmVyX29mKGNiLCBzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5X2NiLCBjYik7CiAJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkgPSBhcnJheV9jYi0+YXJyYXk7CiAKKwlkbWFfZmVuY2VfYXJyYXlfc2V0X3BlbmRpbmdfZXJyb3IoYXJyYXksIGYtPmVycm9yKTsKKwogCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZhcnJheS0+bnVtX3BlbmRpbmcpKQogCQlpcnFfd29ya19xdWV1ZSgmYXJyYXktPndvcmspOwogCWVsc2UKQEAgLTYzLDkgKzg2LDE0IEBAIHN0YXRpYyBib29sIGRtYV9mZW5jZV9hcnJheV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogCQlkbWFfZmVuY2VfZ2V0KCZhcnJheS0+YmFzZSk7CiAJCWlmIChkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGFycmF5LT5mZW5jZXNbaV0sICZjYltpXS5jYiwKIAkJCQkJICAgZG1hX2ZlbmNlX2FycmF5X2NiX2Z1bmMpKSB7CisJCQlpbnQgZXJyb3IgPSBhcnJheS0+ZmVuY2VzW2ldLT5lcnJvcjsKKworCQkJZG1hX2ZlbmNlX2FycmF5X3NldF9wZW5kaW5nX2Vycm9yKGFycmF5LCBlcnJvcik7CiAJCQlkbWFfZmVuY2VfcHV0KCZhcnJheS0+YmFzZSk7Ci0JCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmYXJyYXktPm51bV9wZW5kaW5nKSkKKwkJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZhcnJheS0+bnVtX3BlbmRpbmcpKSB7CisJCQkJZG1hX2ZlbmNlX2FycmF5X2NsZWFyX3BlbmRpbmdfZXJyb3IoYXJyYXkpOwogCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KIAkJfQogCX0KIApAQCAtMTQyLDYgKzE3MCw4IEBAIHN0cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmRtYV9mZW5jZV9hcnJheV9jcmVhdGUoaW50IG51bV9mZW5jZXMsCiAJYXRvbWljX3NldCgmYXJyYXktPm51bV9wZW5kaW5nLCBzaWduYWxfb25fYW55ID8gMSA6IG51bV9mZW5jZXMpOwogCWFycmF5LT5mZW5jZXMgPSBmZW5jZXM7CiAKKwlhcnJheS0+YmFzZS5lcnJvciA9IFBFTkRJTkdfRVJST1I7CisKIAlyZXR1cm4gYXJyYXk7CiB9CiBFWFBPUlRfU1lNQk9MKGRtYV9mZW5jZV9hcnJheV9jcmVhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS1jaGFpbi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS1jaGFpbi5jCmluZGV4IGI1MDg5ZjYuLjQ0YTc0MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UtY2hhaW4uYworKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLWNoYWluLmMKQEAgLTE3OCw4ICsxNzgsMzAgQEAgc3RhdGljIGJvb2wgZG1hX2ZlbmNlX2NoYWluX3NpZ25hbGVkKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogc3RhdGljIHZvaWQgZG1hX2ZlbmNlX2NoYWluX3JlbGVhc2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IGRtYV9mZW5jZV9jaGFpbiAqY2hhaW4gPSB0b19kbWFfZmVuY2VfY2hhaW4oZmVuY2UpOworCXN0cnVjdCBkbWFfZmVuY2UgKnByZXY7CiAKLQlkbWFfZmVuY2VfcHV0KHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoY2hhaW4tPnByZXYsIHRydWUpKTsKKwkvKiBNYW51YWxseSB1bmxpbmsgdGhlIGNoYWluIGFzIG11Y2ggYXMgcG9zc2libGUgdG8gYXZvaWQgcmVjdXJzaW9uCisJICogYW5kIHBvdGVudGlhbCBzdGFjayBvdmVyZmxvdy4KKwkgKi8KKwl3aGlsZSAoKHByZXYgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGNoYWluLT5wcmV2LCB0cnVlKSkpIHsKKwkJc3RydWN0IGRtYV9mZW5jZV9jaGFpbiAqcHJldl9jaGFpbjsKKworCQlpZiAoa3JlZl9yZWFkKCZwcmV2LT5yZWZjb3VudCkgPiAxKQorCQkgICAgICAgYnJlYWs7CisKKwkJcHJldl9jaGFpbiA9IHRvX2RtYV9mZW5jZV9jaGFpbihwcmV2KTsKKwkJaWYgKCFwcmV2X2NoYWluKQorCQkJYnJlYWs7CisKKwkJLyogTm8gbmVlZCBmb3IgYXRvbWljIG9wZXJhdGlvbnMgc2luY2Ugd2UgaG9sZCB0aGUgbGFzdAorCQkgKiByZWZlcmVuY2UgdG8gcHJldl9jaGFpbi4KKwkJICovCisJCWNoYWluLT5wcmV2ID0gcHJldl9jaGFpbi0+cHJldjsKKwkJUkNVX0lOSVRfUE9JTlRFUihwcmV2X2NoYWluLT5wcmV2LCBOVUxMKTsKKwkJZG1hX2ZlbmNlX3B1dChwcmV2KTsKKwl9CisJZG1hX2ZlbmNlX3B1dChwcmV2KTsKKwogCWRtYV9mZW5jZV9wdXQoY2hhaW4tPmZlbmNlKTsKIAlkbWFfZmVuY2VfZnJlZShmZW5jZSk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMKaW5kZXggNTlhYzk2ZS4uMmMxMzZhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYwpAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgYXRvbWljNjRfdCBkbWFfZmVuY2VfY29udGV4dF9jb3VudGVyID0gQVRPTUlDNjRfSU5JVCgxKTsKICAqCiAgKiAtIFRoZW4gdGhlcmUncyBhbHNvIGltcGxpY2l0IGZlbmNpbmcsIHdoZXJlIHRoZSBzeW5jaHJvbml6YXRpb24gcG9pbnRzIGFyZQogICogICBpbXBsaWNpdGx5IHBhc3NlZCBhcm91bmQgYXMgcGFydCBvZiBzaGFyZWQgJmRtYV9idWYgaW5zdGFuY2VzLiBTdWNoCi0gKiAgIGltcGxpY2l0IGZlbmNlcyBhcmUgc3RvcmVkIGluICZzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0IHRocm91Z2ggdGhlCisgKiAgIGltcGxpY2l0IGZlbmNlcyBhcmUgc3RvcmVkIGluICZzdHJ1Y3QgZG1hX3Jlc3YgdGhyb3VnaCB0aGUKICAqICAgJmRtYV9idWYucmVzdiBwb2ludGVyLgogICovCiAKQEAgLTEyOSwzMSArMTI5LDI3IEBAIEVYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MpOwogaW50IGRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBkbWFfZmVuY2VfY2IgKmN1ciwgKnRtcDsKLQlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGNiX2xpc3Q7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKGZlbmNlLT5sb2NrKTsKIAotCWlmIChXQVJOX09OKCFmZW5jZSkpCisJaWYgKHVubGlrZWx5KHRlc3RfYW5kX3NldF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULAorCQkJCSAgICAgICZmZW5jZS0+ZmxhZ3MpKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAodGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7Ci0JCXJldCA9IC1FSU5WQUw7CisJLyogU3Rhc2ggdGhlIGNiX2xpc3QgYmVmb3JlIHJlcGxhY2luZyBpdCB3aXRoIHRoZSB0aW1lc3RhbXAgKi8KKwlsaXN0X3JlcGxhY2UoJmZlbmNlLT5jYl9saXN0LCAmY2JfbGlzdCk7CiAKLQkJLyoKLQkJICogd2UgbWlnaHQgaGF2ZSByYWNlZCB3aXRoIHRoZSB1bmxvY2tlZCBkbWFfZmVuY2Vfc2lnbmFsLAotCQkgKiBzdGlsbCBydW4gdGhyb3VnaCBhbGwgY2FsbGJhY2tzCi0JCSAqLwotCX0gZWxzZSB7Ci0JCWZlbmNlLT50aW1lc3RhbXAgPSBrdGltZV9nZXQoKTsKLQkJc2V0X2JpdChETUFfRkVOQ0VfRkxBR19USU1FU1RBTVBfQklULCAmZmVuY2UtPmZsYWdzKTsKLQkJdHJhY2VfZG1hX2ZlbmNlX3NpZ25hbGVkKGZlbmNlKTsKLQl9CisJZmVuY2UtPnRpbWVzdGFtcCA9IGt0aW1lX2dldCgpOworCXNldF9iaXQoRE1BX0ZFTkNFX0ZMQUdfVElNRVNUQU1QX0JJVCwgJmZlbmNlLT5mbGFncyk7CisJdHJhY2VfZG1hX2ZlbmNlX3NpZ25hbGVkKGZlbmNlKTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwgJmZlbmNlLT5jYl9saXN0LCBub2RlKSB7Ci0JCWxpc3RfZGVsX2luaXQoJmN1ci0+bm9kZSk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1ciwgdG1wLCAmY2JfbGlzdCwgbm9kZSkgeworCQlJTklUX0xJU1RfSEVBRCgmY3VyLT5ub2RlKTsKIAkJY3VyLT5mdW5jKGZlbmNlLCBjdXIpOwogCX0KLQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKGRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKTsKIApAQCAtMTczLDI4ICsxNjksMTYgQEAgRVhQT1JUX1NZTUJPTChkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZCk7CiBpbnQgZG1hX2ZlbmNlX3NpZ25hbChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CiAKIAlpZiAoIWZlbmNlKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmICh0ZXN0X2FuZF9zZXRfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCi0JCXJldHVybiAtRUlOVkFMOworCXNwaW5fbG9ja19pcnFzYXZlKGZlbmNlLT5sb2NrLCBmbGFncyk7CisJcmV0ID0gZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoZmVuY2UpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZmVuY2UtPmxvY2ssIGZsYWdzKTsKIAotCWZlbmNlLT50aW1lc3RhbXAgPSBrdGltZV9nZXQoKTsKLQlzZXRfYml0KERNQV9GRU5DRV9GTEFHX1RJTUVTVEFNUF9CSVQsICZmZW5jZS0+ZmxhZ3MpOwotCXRyYWNlX2RtYV9mZW5jZV9zaWduYWxlZChmZW5jZSk7Ci0KLQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7Ci0JCXN0cnVjdCBkbWFfZmVuY2VfY2IgKmN1ciwgKnRtcDsKLQotCQlzcGluX2xvY2tfaXJxc2F2ZShmZW5jZS0+bG9jaywgZmxhZ3MpOwotCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY3VyLCB0bXAsICZmZW5jZS0+Y2JfbGlzdCwgbm9kZSkgewotCQkJbGlzdF9kZWxfaW5pdCgmY3VyLT5ub2RlKTsKLQkJCWN1ci0+ZnVuYyhmZW5jZSwgY3VyKTsKLQkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGZlbmNlLT5sb2NrLCBmbGFncyk7Ci0JfQotCXJldHVybiAwOworCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRtYV9mZW5jZV9zaWduYWwpOwogCkBAIC0yNDgsNyArMjMyLDggQEAgdm9pZCBkbWFfZmVuY2VfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZikKIAogCXRyYWNlX2RtYV9mZW5jZV9kZXN0cm95KGZlbmNlKTsKIAotCWlmIChXQVJOKCFsaXN0X2VtcHR5KCZmZW5jZS0+Y2JfbGlzdCksCisJaWYgKFdBUk4oIWxpc3RfZW1wdHkoJmZlbmNlLT5jYl9saXN0KSAmJgorCQkgIXRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncyksCiAJCSAiRmVuY2UgJXM6JXM6JWxseDolbGx4IHJlbGVhc2VkIHdpdGggcGVuZGluZyBzaWduYWxzIVxuIiwKIAkJIGZlbmNlLT5vcHMtPmdldF9kcml2ZXJfbmFtZShmZW5jZSksCiAJCSBmZW5jZS0+b3BzLT5nZXRfdGltZWxpbmVfbmFtZShmZW5jZSksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLXJlc3YuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtcmVzdi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYThmM2YKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLXJlc3YuYwpAQCAtMCwwICsxLDY1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0IENhbm9uaWNhbCBMdGQgKE1hYXJ0ZW4gTGFua2hvcnN0KQorICoKKyAqIEJhc2VkIG9uIGJvLmMgd2hpY2ggYmVhcnMgdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQgbm90aWNlLAorICogYnV0IGlzIGR1YWwgbGljZW5zZWQ6CisgKgorICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDkgVk13YXJlLCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNBCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisgKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisgKiBkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCisgKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQorICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKKyAqIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUywgQVVUSE9SUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKKyAqIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgorICogT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRQorICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogQXV0aG9yczogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbS1hdC12bXdhcmUtZG90LWNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KKyNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KKworLyoqCisgKiBET0M6IFJlc2VydmF0aW9uIE9iamVjdCBPdmVydmlldworICoKKyAqIFRoZSByZXNlcnZhdGlvbiBvYmplY3QgcHJvdmlkZXMgYSBtZWNoYW5pc20gdG8gbWFuYWdlIHNoYXJlZCBhbmQKKyAqIGV4Y2x1c2l2ZSBmZW5jZXMgYXNzb2NpYXRlZCB3aXRoIGEgYnVmZmVyLiAgQSByZXNlcnZhdGlvbiBvYmplY3QKKyAqIGNhbiBoYXZlIGF0dGFjaGVkIG9uZSBleGNsdXNpdmUgZmVuY2UgKG5vcm1hbGx5IGFzc29jaWF0ZWQgd2l0aAorICogd3JpdGUgb3BlcmF0aW9ucykgb3IgTiBzaGFyZWQgZmVuY2VzIChyZWFkIG9wZXJhdGlvbnMpLiAgVGhlIFJDVQorICogbWVjaGFuaXNtIGlzIHVzZWQgdG8gcHJvdGVjdCByZWFkIGFjY2VzcyB0byBmZW5jZXMgZnJvbSBsb2NrZWQKKyAqIHdyaXRlLXNpZGUgdXBkYXRlcy4KKyAqLworCitERUZJTkVfV0RfQ0xBU1MocmVzZXJ2YXRpb25fd3dfY2xhc3MpOworRVhQT1JUX1NZTUJPTChyZXNlcnZhdGlvbl93d19jbGFzcyk7CisKK3N0cnVjdCBsb2NrX2NsYXNzX2tleSByZXNlcnZhdGlvbl9zZXFjb3VudF9jbGFzczsKK0VYUE9SVF9TWU1CT0wocmVzZXJ2YXRpb25fc2VxY291bnRfY2xhc3MpOworCitjb25zdCBjaGFyIHJlc2VydmF0aW9uX3NlcWNvdW50X3N0cmluZ1tdID0gInJlc2VydmF0aW9uX3NlcWNvdW50IjsKK0VYUE9SVF9TWU1CT0wocmVzZXJ2YXRpb25fc2VxY291bnRfc3RyaW5nKTsKKworLyoqCisgKiBkbWFfcmVzdl9saXN0X2FsbG9jIC0gYWxsb2NhdGUgZmVuY2UgbGlzdAorICogQHNoYXJlZF9tYXg6IG51bWJlciBvZiBmZW5jZXMgd2UgbmVlZCBzcGFjZSBmb3IKKyAqCisgKiBBbGxvY2F0ZSBhIG5ldyBkbWFfcmVzdl9saXN0IGFuZCBtYWtlIHN1cmUgdG8gY29ycmVjdGx5IGluaXRpYWxpemUKKyAqIHNoYXJlZF9tYXguCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqZG1hX3Jlc3ZfbGlzdF9hbGxvYyh1bnNpZ25lZCBpbnQgc2hhcmVkX21heCkKK3sKKwlzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqbGlzdDsKKworCWxpc3QgPSBrbWFsbG9jKG9mZnNldG9mKHR5cGVvZigqbGlzdCksIHNoYXJlZFtzaGFyZWRfbWF4XSksIEdGUF9LRVJORUwpOworCWlmICghbGlzdCkKKwkJcmV0dXJuIE5VTEw7CisKKwlsaXN0LT5zaGFyZWRfbWF4ID0gKGtzaXplKGxpc3QpIC0gb2Zmc2V0b2YodHlwZW9mKCpsaXN0KSwgc2hhcmVkKSkgLworCQlzaXplb2YoKmxpc3QtPnNoYXJlZCk7CisKKwlyZXR1cm4gbGlzdDsKK30KKworLyoqCisgKiBkbWFfcmVzdl9saXN0X2ZyZWUgLSBmcmVlIGZlbmNlIGxpc3QKKyAqIEBsaXN0OiBsaXN0IHRvIGZyZWUKKyAqCisgKiBGcmVlIGEgZG1hX3Jlc3ZfbGlzdCBhbmQgbWFrZSBzdXJlIHRvIGRyb3AgYWxsIHJlZmVyZW5jZXMuCisgKi8KK3N0YXRpYyB2b2lkIGRtYV9yZXN2X2xpc3RfZnJlZShzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqbGlzdCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWlmICghbGlzdCkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgaSA8IGxpc3QtPnNoYXJlZF9jb3VudDsgKytpKQorCQlkbWFfZmVuY2VfcHV0KHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobGlzdC0+c2hhcmVkW2ldLCB0cnVlKSk7CisKKwlrZnJlZV9yY3UobGlzdCwgcmN1KTsKK30KKworLyoqCisgKiBkbWFfcmVzdl9pbml0IC0gaW5pdGlhbGl6ZSBhIHJlc2VydmF0aW9uIG9iamVjdAorICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAorICovCit2b2lkIGRtYV9yZXN2X2luaXQoc3RydWN0IGRtYV9yZXN2ICpvYmopCit7CisJd3dfbXV0ZXhfaW5pdCgmb2JqLT5sb2NrLCAmcmVzZXJ2YXRpb25fd3dfY2xhc3MpOworCisJX19zZXFjb3VudF9pbml0KCZvYmotPnNlcSwgcmVzZXJ2YXRpb25fc2VxY291bnRfc3RyaW5nLAorCQkJJnJlc2VydmF0aW9uX3NlcWNvdW50X2NsYXNzKTsKKwlSQ1VfSU5JVF9QT0lOVEVSKG9iai0+ZmVuY2UsIE5VTEwpOworCVJDVV9JTklUX1BPSU5URVIob2JqLT5mZW5jZV9leGNsLCBOVUxMKTsKK30KK0VYUE9SVF9TWU1CT0woZG1hX3Jlc3ZfaW5pdCk7CisKKy8qKgorICogZG1hX3Jlc3ZfZmluaSAtIGRlc3Ryb3lzIGEgcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKi8KK3ZvaWQgZG1hX3Jlc3ZfZmluaShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaikKK3sKKwlzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqZm9iajsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpleGNsOworCisJLyoKKwkgKiBUaGlzIG9iamVjdCBzaG91bGQgYmUgZGVhZCBhbmQgYWxsIHJlZmVyZW5jZXMgbXVzdCBoYXZlCisJICogYmVlbiByZWxlYXNlZCB0byBpdCwgc28gbm8gbmVlZCB0byBiZSBwcm90ZWN0ZWQgd2l0aCByY3UuCisJICovCisJZXhjbCA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQob2JqLT5mZW5jZV9leGNsLCAxKTsKKwlpZiAoZXhjbCkKKwkJZG1hX2ZlbmNlX3B1dChleGNsKTsKKworCWZvYmogPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ZmVuY2UsIDEpOworCWRtYV9yZXN2X2xpc3RfZnJlZShmb2JqKTsKKwl3d19tdXRleF9kZXN0cm95KCZvYmotPmxvY2spOworfQorRVhQT1JUX1NZTUJPTChkbWFfcmVzdl9maW5pKTsKKworLyoqCisgKiBkbWFfcmVzdl9yZXNlcnZlX3NoYXJlZCAtIFJlc2VydmUgc3BhY2UgdG8gYWRkIHNoYXJlZCBmZW5jZXMgdG8KKyAqIGEgZG1hX3Jlc3YuCisgKiBAb2JqOiByZXNlcnZhdGlvbiBvYmplY3QKKyAqIEBudW1fZmVuY2VzOiBudW1iZXIgb2YgZmVuY2VzIHdlIHdhbnQgdG8gYWRkCisgKgorICogU2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZSgpLiAgTXVzdAorICogYmUgY2FsbGVkIHdpdGggb2JqLT5sb2NrIGhlbGQuCisgKgorICogUkVUVVJOUworICogWmVybyBmb3Igc3VjY2Vzcywgb3IgLWVycm5vCisgKi8KK2ludCBkbWFfcmVzdl9yZXNlcnZlX3NoYXJlZChzdHJ1Y3QgZG1hX3Jlc3YgKm9iaiwgdW5zaWduZWQgaW50IG51bV9mZW5jZXMpCit7CisJc3RydWN0IGRtYV9yZXN2X2xpc3QgKm9sZCwgKm5ldzsKKwl1bnNpZ25lZCBpbnQgaSwgaiwgaywgbWF4OworCisJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQob2JqKTsKKworCW9sZCA9IGRtYV9yZXN2X2dldF9saXN0KG9iaik7CisKKwlpZiAob2xkICYmIG9sZC0+c2hhcmVkX21heCkgeworCQlpZiAoKG9sZC0+c2hhcmVkX2NvdW50ICsgbnVtX2ZlbmNlcykgPD0gb2xkLT5zaGFyZWRfbWF4KQorCQkJcmV0dXJuIDA7CisJCWVsc2UKKwkJCW1heCA9IG1heChvbGQtPnNoYXJlZF9jb3VudCArIG51bV9mZW5jZXMsCisJCQkJICBvbGQtPnNoYXJlZF9tYXggKiAyKTsKKwl9IGVsc2UgeworCQltYXggPSA0OworCX0KKworCW5ldyA9IGRtYV9yZXN2X2xpc3RfYWxsb2MobWF4KTsKKwlpZiAoIW5ldykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwkvKgorCSAqIG5vIG5lZWQgdG8gYnVtcCBmZW5jZSByZWZjb3VudHMsIHJjdV9yZWFkIGFjY2VzcworCSAqIHJlcXVpcmVzIHRoZSB1c2Ugb2Yga3JlZl9nZXRfdW5sZXNzX3plcm8sIGFuZCB0aGUKKwkgKiByZWZlcmVuY2VzIGZyb20gdGhlIG9sZCBzdHJ1Y3QgYXJlIGNhcnJpZWQgb3ZlciB0bworCSAqIHRoZSBuZXcuCisJICovCisJZm9yIChpID0gMCwgaiA9IDAsIGsgPSBtYXg7IGkgPCAob2xkID8gb2xkLT5zaGFyZWRfY291bnQgOiAwKTsgKytpKSB7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCisJCWZlbmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvbGQtPnNoYXJlZFtpXSwKKwkJCQkJCSAgZG1hX3Jlc3ZfaGVsZChvYmopKTsKKwkJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCisJCQlSQ1VfSU5JVF9QT0lOVEVSKG5ldy0+c2hhcmVkWy0ta10sIGZlbmNlKTsKKwkJZWxzZQorCQkJUkNVX0lOSVRfUE9JTlRFUihuZXctPnNoYXJlZFtqKytdLCBmZW5jZSk7CisJfQorCW5ldy0+c2hhcmVkX2NvdW50ID0gajsKKworCS8qCisJICogV2UgYXJlIG5vdCBjaGFuZ2luZyB0aGUgZWZmZWN0aXZlIHNldCBvZiBmZW5jZXMgaGVyZSBzbyBjYW4KKwkgKiBtZXJlbHkgdXBkYXRlIHRoZSBwb2ludGVyIHRvIHRoZSBuZXcgYXJyYXk7IGJvdGggZXhpc3RpbmcKKwkgKiByZWFkZXJzIGFuZCBuZXcgcmVhZGVycyB3aWxsIHNlZSBleGFjdGx5IHRoZSBzYW1lIHNldCBvZgorCSAqIGFjdGl2ZSAodW5zaWduYWxlZCkgc2hhcmVkIGZlbmNlcy4gSW5kaXZpZHVhbCBmZW5jZXMgYW5kIHRoZQorCSAqIG9sZCBhcnJheSBhcmUgcHJvdGVjdGVkIGJ5IFJDVSBhbmQgc28gd2lsbCBub3QgdmFuaXNoIHVuZGVyCisJICogdGhlIGdhemUgb2YgdGhlIHJjdV9yZWFkX2xvY2soKSByZWFkZXJzLgorCSAqLworCXJjdV9hc3NpZ25fcG9pbnRlcihvYmotPmZlbmNlLCBuZXcpOworCisJaWYgKCFvbGQpCisJCXJldHVybiAwOworCisJLyogRHJvcCB0aGUgcmVmZXJlbmNlcyB0byB0aGUgc2lnbmFsZWQgZmVuY2VzICovCisJZm9yIChpID0gazsgaSA8IG1heDsgKytpKSB7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCisJCWZlbmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChuZXctPnNoYXJlZFtpXSwKKwkJCQkJCSAgZG1hX3Jlc3ZfaGVsZChvYmopKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJfQorCWtmcmVlX3JjdShvbGQsIHJjdSk7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQpOworCisvKioKKyAqIGRtYV9yZXN2X2FkZF9zaGFyZWRfZmVuY2UgLSBBZGQgYSBmZW5jZSB0byBhIHNoYXJlZCBzbG90CisgKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAZmVuY2U6IHRoZSBzaGFyZWQgZmVuY2UgdG8gYWRkCisgKgorICogQWRkIGEgZmVuY2UgdG8gYSBzaGFyZWQgc2xvdCwgb2JqLT5sb2NrIG11c3QgYmUgaGVsZCwgYW5kCisgKiBkbWFfcmVzdl9yZXNlcnZlX3NoYXJlZCgpIGhhcyBiZWVuIGNhbGxlZC4KKyAqLwordm9pZCBkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNlKHN0cnVjdCBkbWFfcmVzdiAqb2JqLCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqZm9iajsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpvbGQ7CisJdW5zaWduZWQgaW50IGksIGNvdW50OworCisJZG1hX2ZlbmNlX2dldChmZW5jZSk7CisKKwlkbWFfcmVzdl9hc3NlcnRfaGVsZChvYmopOworCisJZm9iaiA9IGRtYV9yZXN2X2dldF9saXN0KG9iaik7CisJY291bnQgPSBmb2JqLT5zaGFyZWRfY291bnQ7CisKKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwl3cml0ZV9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOworCisJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKworCQlvbGQgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKKwkJCQkJCWRtYV9yZXN2X2hlbGQob2JqKSk7CisJCWlmIChvbGQtPmNvbnRleHQgPT0gZmVuY2UtPmNvbnRleHQgfHwKKwkJICAgIGRtYV9mZW5jZV9pc19zaWduYWxlZChvbGQpKQorCQkJZ290byByZXBsYWNlOworCX0KKworCUJVR19PTihmb2JqLT5zaGFyZWRfY291bnQgPj0gZm9iai0+c2hhcmVkX21heCk7CisJb2xkID0gTlVMTDsKKwljb3VudCsrOworCityZXBsYWNlOgorCVJDVV9JTklUX1BPSU5URVIoZm9iai0+c2hhcmVkW2ldLCBmZW5jZSk7CisJLyogcG9pbnRlciB1cGRhdGUgbXVzdCBiZSB2aXNpYmxlIGJlZm9yZSB3ZSBleHRlbmQgdGhlIHNoYXJlZF9jb3VudCAqLworCXNtcF9zdG9yZV9tYihmb2JqLT5zaGFyZWRfY291bnQsIGNvdW50KTsKKworCXdyaXRlX3NlcWNvdW50X2VuZCgmb2JqLT5zZXEpOworCXByZWVtcHRfZW5hYmxlKCk7CisJZG1hX2ZlbmNlX3B1dChvbGQpOworfQorRVhQT1JUX1NZTUJPTChkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNlKTsKKworLyoqCisgKiBkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZSAtIEFkZCBhbiBleGNsdXNpdmUgZmVuY2UuCisgKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAZmVuY2U6IHRoZSBzaGFyZWQgZmVuY2UgdG8gYWRkCisgKgorICogQWRkIGEgZmVuY2UgdG8gdGhlIGV4Y2x1c2l2ZSBzbG90LiAgVGhlIG9iai0+bG9jayBtdXN0IGJlIGhlbGQuCisgKi8KK3ZvaWQgZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2Uoc3RydWN0IGRtYV9yZXN2ICpvYmosIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQoreworCXN0cnVjdCBkbWFfZmVuY2UgKm9sZF9mZW5jZSA9IGRtYV9yZXN2X2dldF9leGNsKG9iaik7CisJc3RydWN0IGRtYV9yZXN2X2xpc3QgKm9sZDsKKwl1MzIgaSA9IDA7CisKKwlkbWFfcmVzdl9hc3NlcnRfaGVsZChvYmopOworCisJb2xkID0gZG1hX3Jlc3ZfZ2V0X2xpc3Qob2JqKTsKKwlpZiAob2xkKQorCQlpID0gb2xkLT5zaGFyZWRfY291bnQ7CisKKwlpZiAoZmVuY2UpCisJCWRtYV9mZW5jZV9nZXQoZmVuY2UpOworCisJcHJlZW1wdF9kaXNhYmxlKCk7CisJd3JpdGVfc2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsKKwkvKiB3cml0ZV9zZXFjb3VudF9iZWdpbiBwcm92aWRlcyB0aGUgbmVjZXNzYXJ5IG1lbW9yeSBiYXJyaWVyICovCisJUkNVX0lOSVRfUE9JTlRFUihvYmotPmZlbmNlX2V4Y2wsIGZlbmNlKTsKKwlpZiAob2xkKQorCQlvbGQtPnNoYXJlZF9jb3VudCA9IDA7CisJd3JpdGVfc2VxY291bnRfZW5kKCZvYmotPnNlcSk7CisJcHJlZW1wdF9lbmFibGUoKTsKKworCS8qIGlucGxhY2UgdXBkYXRlLCBubyBzaGFyZWQgZmVuY2VzICovCisJd2hpbGUgKGktLSkKKwkJZG1hX2ZlbmNlX3B1dChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLAorCQkJCQkJZG1hX3Jlc3ZfaGVsZChvYmopKSk7CisKKwlkbWFfZmVuY2VfcHV0KG9sZF9mZW5jZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKTsKKworLyoqCisqIGRtYV9yZXN2X2NvcHlfZmVuY2VzIC0gQ29weSBhbGwgZmVuY2VzIGZyb20gc3JjIHRvIGRzdC4KKyogQGRzdDogdGhlIGRlc3RpbmF0aW9uIHJlc2VydmF0aW9uIG9iamVjdAorKiBAc3JjOiB0aGUgc291cmNlIHJlc2VydmF0aW9uIG9iamVjdAorKgorKiBDb3B5IGFsbCBmZW5jZXMgZnJvbSBzcmMgdG8gZHN0LiBkc3QtbG9jayBtdXN0IGJlIGhlbGQuCisqLworaW50IGRtYV9yZXN2X2NvcHlfZmVuY2VzKHN0cnVjdCBkbWFfcmVzdiAqZHN0LCBzdHJ1Y3QgZG1hX3Jlc3YgKnNyYykKK3sKKwlzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqc3JjX2xpc3QsICpkc3RfbGlzdDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpvbGQsICpuZXc7CisJdW5zaWduZWQgaTsKKworCWRtYV9yZXN2X2Fzc2VydF9oZWxkKGRzdCk7CisKKwlyY3VfcmVhZF9sb2NrKCk7CisJc3JjX2xpc3QgPSByY3VfZGVyZWZlcmVuY2Uoc3JjLT5mZW5jZSk7CisKK3JldHJ5OgorCWlmIChzcmNfbGlzdCkgeworCQl1bnNpZ25lZCBzaGFyZWRfY291bnQgPSBzcmNfbGlzdC0+c2hhcmVkX2NvdW50OworCisJCXJjdV9yZWFkX3VubG9jaygpOworCisJCWRzdF9saXN0ID0gZG1hX3Jlc3ZfbGlzdF9hbGxvYyhzaGFyZWRfY291bnQpOworCQlpZiAoIWRzdF9saXN0KQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJcmN1X3JlYWRfbG9jaygpOworCQlzcmNfbGlzdCA9IHJjdV9kZXJlZmVyZW5jZShzcmMtPmZlbmNlKTsKKwkJaWYgKCFzcmNfbGlzdCB8fCBzcmNfbGlzdC0+c2hhcmVkX2NvdW50ID4gc2hhcmVkX2NvdW50KSB7CisJCQlrZnJlZShkc3RfbGlzdCk7CisJCQlnb3RvIHJldHJ5OworCQl9CisKKwkJZHN0X2xpc3QtPnNoYXJlZF9jb3VudCA9IDA7CisJCWZvciAoaSA9IDA7IGkgPCBzcmNfbGlzdC0+c2hhcmVkX2NvdW50OyArK2kpIHsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCisJCQlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZShzcmNfbGlzdC0+c2hhcmVkW2ldKTsKKwkJCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsCisJCQkJICAgICAmZmVuY2UtPmZsYWdzKSkKKwkJCQljb250aW51ZTsKKworCQkJaWYgKCFkbWFfZmVuY2VfZ2V0X3JjdShmZW5jZSkpIHsKKwkJCQlkbWFfcmVzdl9saXN0X2ZyZWUoZHN0X2xpc3QpOworCQkJCXNyY19saXN0ID0gcmN1X2RlcmVmZXJlbmNlKHNyYy0+ZmVuY2UpOworCQkJCWdvdG8gcmV0cnk7CisJCQl9CisKKwkJCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKSB7CisJCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJCQkJY29udGludWU7CisJCQl9CisKKwkJCXJjdV9hc3NpZ25fcG9pbnRlcihkc3RfbGlzdC0+c2hhcmVkW2RzdF9saXN0LT5zaGFyZWRfY291bnQrK10sIGZlbmNlKTsKKwkJfQorCX0gZWxzZSB7CisJCWRzdF9saXN0ID0gTlVMTDsKKwl9CisKKwluZXcgPSBkbWFfZmVuY2VfZ2V0X3JjdV9zYWZlKCZzcmMtPmZlbmNlX2V4Y2wpOworCXJjdV9yZWFkX3VubG9jaygpOworCisJc3JjX2xpc3QgPSBkbWFfcmVzdl9nZXRfbGlzdChkc3QpOworCW9sZCA9IGRtYV9yZXN2X2dldF9leGNsKGRzdCk7CisKKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwl3cml0ZV9zZXFjb3VudF9iZWdpbigmZHN0LT5zZXEpOworCS8qIHdyaXRlX3NlcWNvdW50X2JlZ2luIHByb3ZpZGVzIHRoZSBuZWNlc3NhcnkgbWVtb3J5IGJhcnJpZXIgKi8KKwlSQ1VfSU5JVF9QT0lOVEVSKGRzdC0+ZmVuY2VfZXhjbCwgbmV3KTsKKwlSQ1VfSU5JVF9QT0lOVEVSKGRzdC0+ZmVuY2UsIGRzdF9saXN0KTsKKwl3cml0ZV9zZXFjb3VudF9lbmQoJmRzdC0+c2VxKTsKKwlwcmVlbXB0X2VuYWJsZSgpOworCisJZG1hX3Jlc3ZfbGlzdF9mcmVlKHNyY19saXN0KTsKKwlkbWFfZmVuY2VfcHV0KG9sZCk7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZG1hX3Jlc3ZfY29weV9mZW5jZXMpOworCisvKioKKyAqIGRtYV9yZXN2X2dldF9mZW5jZXNfcmN1IC0gR2V0IGFuIG9iamVjdCdzIHNoYXJlZCBhbmQgZXhjbHVzaXZlCisgKiBmZW5jZXMgd2l0aG91dCB1cGRhdGUgc2lkZSBsb2NrIGhlbGQKKyAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QKKyAqIEBwZmVuY2VfZXhjbDogdGhlIHJldHVybmVkIGV4Y2x1c2l2ZSBmZW5jZSAob3IgTlVMTCkKKyAqIEBwc2hhcmVkX2NvdW50OiB0aGUgbnVtYmVyIG9mIHNoYXJlZCBmZW5jZXMgcmV0dXJuZWQKKyAqIEBwc2hhcmVkOiB0aGUgYXJyYXkgb2Ygc2hhcmVkIGZlbmNlIHB0cnMgcmV0dXJuZWQgKGFycmF5IGlzIGtyZWFsbG9jJ2QgdG8KKyAqIHRoZSByZXF1aXJlZCBzaXplLCBhbmQgbXVzdCBiZSBmcmVlZCBieSBjYWxsZXIpCisgKgorICogUmV0cmlldmUgYWxsIGZlbmNlcyBmcm9tIHRoZSByZXNlcnZhdGlvbiBvYmplY3QuIElmIHRoZSBwb2ludGVyIGZvciB0aGUKKyAqIGV4Y2x1c2l2ZSBmZW5jZSBpcyBub3Qgc3BlY2lmaWVkIHRoZSBmZW5jZSBpcyBwdXQgaW50byB0aGUgYXJyYXkgb2YgdGhlCisgKiBzaGFyZWQgZmVuY2VzIGFzIHdlbGwuIFJldHVybnMgZWl0aGVyIHplcm8gb3IgLUVOT01FTS4KKyAqLworaW50IGRtYV9yZXN2X2dldF9mZW5jZXNfcmN1KHN0cnVjdCBkbWFfcmVzdiAqb2JqLAorCQkJICAgIHN0cnVjdCBkbWFfZmVuY2UgKipwZmVuY2VfZXhjbCwKKwkJCSAgICB1bnNpZ25lZCAqcHNoYXJlZF9jb3VudCwKKwkJCSAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqKnBzaGFyZWQpCit7CisJc3RydWN0IGRtYV9mZW5jZSAqKnNoYXJlZCA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2VfZXhjbDsKKwl1bnNpZ25lZCBpbnQgc2hhcmVkX2NvdW50OworCWludCByZXQgPSAxOworCisJZG8geworCQlzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqZm9iajsKKwkJdW5zaWduZWQgaW50IGksIHNlcTsKKwkJc2l6ZV90IHN6ID0gMDsKKworCQlzaGFyZWRfY291bnQgPSBpID0gMDsKKworCQlyY3VfcmVhZF9sb2NrKCk7CisJCXNlcSA9IHJlYWRfc2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsKKworCQlmZW5jZV9leGNsID0gcmN1X2RlcmVmZXJlbmNlKG9iai0+ZmVuY2VfZXhjbCk7CisJCWlmIChmZW5jZV9leGNsICYmICFkbWFfZmVuY2VfZ2V0X3JjdShmZW5jZV9leGNsKSkKKwkJCWdvdG8gdW5sb2NrOworCisJCWZvYmogPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZSk7CisJCWlmIChmb2JqKQorCQkJc3ogKz0gc2l6ZW9mKCpzaGFyZWQpICogZm9iai0+c2hhcmVkX21heDsKKworCQlpZiAoIXBmZW5jZV9leGNsICYmIGZlbmNlX2V4Y2wpCisJCQlzeiArPSBzaXplb2YoKnNoYXJlZCk7CisKKwkJaWYgKHN6KSB7CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICoqbnNoYXJlZDsKKworCQkJbnNoYXJlZCA9IGtyZWFsbG9jKHNoYXJlZCwgc3osCisJCQkJCSAgIEdGUF9OT1dBSVQgfCBfX0dGUF9OT1dBUk4pOworCQkJaWYgKCFuc2hhcmVkKSB7CisJCQkJcmN1X3JlYWRfdW5sb2NrKCk7CisKKwkJCQlkbWFfZmVuY2VfcHV0KGZlbmNlX2V4Y2wpOworCQkJCWZlbmNlX2V4Y2wgPSBOVUxMOworCisJCQkJbnNoYXJlZCA9IGtyZWFsbG9jKHNoYXJlZCwgc3osIEdGUF9LRVJORUwpOworCQkJCWlmIChuc2hhcmVkKSB7CisJCQkJCXNoYXJlZCA9IG5zaGFyZWQ7CisJCQkJCWNvbnRpbnVlOworCQkJCX0KKworCQkJCXJldCA9IC1FTk9NRU07CisJCQkJYnJlYWs7CisJCQl9CisJCQlzaGFyZWQgPSBuc2hhcmVkOworCQkJc2hhcmVkX2NvdW50ID0gZm9iaiA/IGZvYmotPnNoYXJlZF9jb3VudCA6IDA7CisJCQlmb3IgKGkgPSAwOyBpIDwgc2hhcmVkX2NvdW50OyArK2kpIHsKKwkJCQlzaGFyZWRbaV0gPSByY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKKwkJCQlpZiAoIWRtYV9mZW5jZV9nZXRfcmN1KHNoYXJlZFtpXSkpCisJCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJaWYgKGkgIT0gc2hhcmVkX2NvdW50IHx8IHJlYWRfc2VxY291bnRfcmV0cnkoJm9iai0+c2VxLCBzZXEpKSB7CisJCQl3aGlsZSAoaS0tKQorCQkJCWRtYV9mZW5jZV9wdXQoc2hhcmVkW2ldKTsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2VfZXhjbCk7CisJCQlnb3RvIHVubG9jazsKKwkJfQorCisJCXJldCA9IDA7Cit1bmxvY2s6CisJCXJjdV9yZWFkX3VubG9jaygpOworCX0gd2hpbGUgKHJldCk7CisKKwlpZiAocGZlbmNlX2V4Y2wpCisJCSpwZmVuY2VfZXhjbCA9IGZlbmNlX2V4Y2w7CisJZWxzZSBpZiAoZmVuY2VfZXhjbCkKKwkJc2hhcmVkWysrc2hhcmVkX2NvdW50XSA9IGZlbmNlX2V4Y2w7CisKKwlpZiAoIXNoYXJlZF9jb3VudCkgeworCQlrZnJlZShzaGFyZWQpOworCQlzaGFyZWQgPSBOVUxMOworCX0KKworCSpwc2hhcmVkX2NvdW50ID0gc2hhcmVkX2NvdW50OworCSpwc2hhcmVkID0gc2hhcmVkOworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdSk7CisKKy8qKgorICogZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdSAtIFdhaXQgb24gcmVzZXJ2YXRpb24ncyBvYmplY3RzCisgKiBzaGFyZWQgYW5kL29yIGV4Y2x1c2l2ZSBmZW5jZXMuCisgKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAd2FpdF9hbGw6IGlmIHRydWUsIHdhaXQgb24gYWxsIGZlbmNlcywgZWxzZSB3YWl0IG9uIGp1c3QgZXhjbHVzaXZlIGZlbmNlCisgKiBAaW50cjogaWYgdHJ1ZSwgZG8gaW50ZXJydXB0aWJsZSB3YWl0CisgKiBAdGltZW91dDogdGltZW91dCB2YWx1ZSBpbiBqaWZmaWVzIG9yIHplcm8gdG8gcmV0dXJuIGltbWVkaWF0ZWx5CisgKgorICogUkVUVVJOUworICogUmV0dXJucyAtRVJFU1RBUlRTWVMgaWYgaW50ZXJydXB0ZWQsIDAgaWYgdGhlIHdhaXQgdGltZWQgb3V0LCBvcgorICogZ3JlYXRlciB0aGFuIHplciBvbiBzdWNjZXNzLgorICovCitsb25nIGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3Uoc3RydWN0IGRtYV9yZXN2ICpvYmosCisJCQkgICAgICAgYm9vbCB3YWl0X2FsbCwgYm9vbCBpbnRyLAorCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCkKK3sKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKwl1bnNpZ25lZCBzZXEsIHNoYXJlZF9jb3VudDsKKwlsb25nIHJldCA9IHRpbWVvdXQgPyB0aW1lb3V0IDogMTsKKwlpbnQgaTsKKworcmV0cnk6CisJc2hhcmVkX2NvdW50ID0gMDsKKwlzZXEgPSByZWFkX3NlcWNvdW50X2JlZ2luKCZvYmotPnNlcSk7CisJcmN1X3JlYWRfbG9jaygpOworCWkgPSAtMTsKKworCWZlbmNlID0gcmN1X2RlcmVmZXJlbmNlKG9iai0+ZmVuY2VfZXhjbCk7CisJaWYgKGZlbmNlICYmICF0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7CisJCWlmICghZG1hX2ZlbmNlX2dldF9yY3UoZmVuY2UpKQorCQkJZ290byB1bmxvY2tfcmV0cnk7CisKKwkJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkpIHsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOworCQkJZmVuY2UgPSBOVUxMOworCQl9CisKKwl9IGVsc2UgeworCQlmZW5jZSA9IE5VTEw7CisJfQorCisJaWYgKHdhaXRfYWxsKSB7CisJCXN0cnVjdCBkbWFfcmVzdl9saXN0ICpmb2JqID0gcmN1X2RlcmVmZXJlbmNlKG9iai0+ZmVuY2UpOworCisJCWlmIChmb2JqKQorCQkJc2hhcmVkX2NvdW50ID0gZm9iai0+c2hhcmVkX2NvdW50OworCisJCWZvciAoaSA9IDA7ICFmZW5jZSAmJiBpIDwgc2hhcmVkX2NvdW50OyArK2kpIHsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmxmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZShmb2JqLT5zaGFyZWRbaV0pOworCisJCQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULAorCQkJCSAgICAgJmxmZW5jZS0+ZmxhZ3MpKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoIWRtYV9mZW5jZV9nZXRfcmN1KGxmZW5jZSkpCisJCQkJZ290byB1bmxvY2tfcmV0cnk7CisKKwkJCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQobGZlbmNlKSkgeworCQkJCWRtYV9mZW5jZV9wdXQobGZlbmNlKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJZmVuY2UgPSBsZmVuY2U7CisJCQlicmVhazsKKwkJfQorCX0KKworCXJjdV9yZWFkX3VubG9jaygpOworCWlmIChmZW5jZSkgeworCQlpZiAocmVhZF9zZXFjb3VudF9yZXRyeSgmb2JqLT5zZXEsIHNlcSkpIHsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOworCQkJZ290byByZXRyeTsKKwkJfQorCisJCXJldCA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZmVuY2UsIGludHIsIHJldCk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOworCQlpZiAocmV0ID4gMCAmJiB3YWl0X2FsbCAmJiAoaSArIDEgPCBzaGFyZWRfY291bnQpKQorCQkJZ290byByZXRyeTsKKwl9CisJcmV0dXJuIHJldDsKKwordW5sb2NrX3JldHJ5OgorCXJjdV9yZWFkX3VubG9jaygpOworCWdvdG8gcmV0cnk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KTsKKworCitzdGF0aWMgaW5saW5lIGludCBkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3NpbmdsZShzdHJ1Y3QgZG1hX2ZlbmNlICpwYXNzZWRfZmVuY2UpCit7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsICpsZmVuY2UgPSBwYXNzZWRfZmVuY2U7CisJaW50IHJldCA9IDE7CisKKwlpZiAoIXRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmxmZW5jZS0+ZmxhZ3MpKSB7CisJCWZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3UobGZlbmNlKTsKKwkJaWYgKCFmZW5jZSkKKwkJCXJldHVybiAtMTsKKworCQlyZXQgPSAhIWRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOworCX0KKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIGRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfcmN1IC0gVGVzdCBpZiBhIHJlc2VydmF0aW9uIG9iamVjdCdzCisgKiBmZW5jZXMgaGF2ZSBiZWVuIHNpZ25hbGVkLgorICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAorICogQHRlc3RfYWxsOiBpZiB0cnVlLCB0ZXN0IGFsbCBmZW5jZXMsIG90aGVyd2lzZSBvbmx5IHRlc3QgdGhlIGV4Y2x1c2l2ZQorICogZmVuY2UKKyAqCisgKiBSRVRVUk5TCisgKiB0cnVlIGlmIGFsbCBmZW5jZXMgc2lnbmFsZWQsIGVsc2UgZmFsc2UKKyAqLworYm9vbCBkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaiwgYm9vbCB0ZXN0X2FsbCkKK3sKKwl1bnNpZ25lZCBzZXEsIHNoYXJlZF9jb3VudDsKKwlpbnQgcmV0OworCisJcmN1X3JlYWRfbG9jaygpOworcmV0cnk6CisJcmV0ID0gdHJ1ZTsKKwlzaGFyZWRfY291bnQgPSAwOworCXNlcSA9IHJlYWRfc2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsKKworCWlmICh0ZXN0X2FsbCkgeworCQl1bnNpZ25lZCBpOworCisJCXN0cnVjdCBkbWFfcmVzdl9saXN0ICpmb2JqID0gcmN1X2RlcmVmZXJlbmNlKG9iai0+ZmVuY2UpOworCisJCWlmIChmb2JqKQorCQkJc2hhcmVkX2NvdW50ID0gZm9iai0+c2hhcmVkX2NvdW50OworCisJCWZvciAoaSA9IDA7IGkgPCBzaGFyZWRfY291bnQ7ICsraSkgeworCQkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKKworCQkJcmV0ID0gZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9zaW5nbGUoZmVuY2UpOworCQkJaWYgKHJldCA8IDApCisJCQkJZ290byByZXRyeTsKKwkJCWVsc2UgaWYgKCFyZXQpCisJCQkJYnJlYWs7CisJCX0KKworCQlpZiAocmVhZF9zZXFjb3VudF9yZXRyeSgmb2JqLT5zZXEsIHNlcSkpCisJCQlnb3RvIHJldHJ5OworCX0KKworCWlmICghc2hhcmVkX2NvdW50KSB7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlX2V4Y2wgPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZV9leGNsKTsKKworCQlpZiAoZmVuY2VfZXhjbCkgeworCQkJcmV0ID0gZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9zaW5nbGUoZmVuY2VfZXhjbCk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlnb3RvIHJldHJ5OworCisJCQlpZiAocmVhZF9zZXFjb3VudF9yZXRyeSgmb2JqLT5zZXEsIHNlcSkpCisJCQkJZ290byByZXRyeTsKKwkJfQorCX0KKworCXJjdV9yZWFkX3VubG9jaygpOworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYyBiL2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDQ3ZTEzLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jCisrKyAvZGV2L251bGwKQEAgLTEsNTkxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBDYW5vbmljYWwgTHRkIChNYWFydGVuIExhbmtob3JzdCkKLSAqCi0gKiBCYXNlZCBvbiBiby5jIHdoaWNoIGJlYXJzIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0IG5vdGljZSwKLSAqIGJ1dCBpcyBkdWFsIGxpY2Vuc2VkOgotICoKLSAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA5IFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKLSAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCi0gKiBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQ09QWVJJR0hUIEhPTERFUlMsIEFVVEhPUlMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCi0gKiBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKLSAqIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKLSAqIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoKLSAqIEF1dGhvcnM6IFRob21hcyBIZWxsc3Ryb20gPHRoZWxsc3Ryb20tYXQtdm13YXJlLWRvdC1jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3Jlc2VydmF0aW9uLmg+Ci0jaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+Ci0KLS8qKgotICogRE9DOiBSZXNlcnZhdGlvbiBPYmplY3QgT3ZlcnZpZXcKLSAqCi0gKiBUaGUgcmVzZXJ2YXRpb24gb2JqZWN0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIHRvIG1hbmFnZSBzaGFyZWQgYW5kCi0gKiBleGNsdXNpdmUgZmVuY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGJ1ZmZlci4gIEEgcmVzZXJ2YXRpb24gb2JqZWN0Ci0gKiBjYW4gaGF2ZSBhdHRhY2hlZCBvbmUgZXhjbHVzaXZlIGZlbmNlIChub3JtYWxseSBhc3NvY2lhdGVkIHdpdGgKLSAqIHdyaXRlIG9wZXJhdGlvbnMpIG9yIE4gc2hhcmVkIGZlbmNlcyAocmVhZCBvcGVyYXRpb25zKS4gIFRoZSBSQ1UKLSAqIG1lY2hhbmlzbSBpcyB1c2VkIHRvIHByb3RlY3QgcmVhZCBhY2Nlc3MgdG8gZmVuY2VzIGZyb20gbG9ja2VkCi0gKiB3cml0ZS1zaWRlIHVwZGF0ZXMuCi0gKi8KLQotREVGSU5FX1dEX0NMQVNTKHJlc2VydmF0aW9uX3d3X2NsYXNzKTsKLUVYUE9SVF9TWU1CT0wocmVzZXJ2YXRpb25fd3dfY2xhc3MpOwotCi1zdHJ1Y3QgbG9ja19jbGFzc19rZXkgcmVzZXJ2YXRpb25fc2VxY291bnRfY2xhc3M7Ci1FWFBPUlRfU1lNQk9MKHJlc2VydmF0aW9uX3NlcWNvdW50X2NsYXNzKTsKLQotY29uc3QgY2hhciByZXNlcnZhdGlvbl9zZXFjb3VudF9zdHJpbmdbXSA9ICJyZXNlcnZhdGlvbl9zZXFjb3VudCI7Ci1FWFBPUlRfU1lNQk9MKHJlc2VydmF0aW9uX3NlcWNvdW50X3N0cmluZyk7Ci0KLS8qKgotICogcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkIC0gUmVzZXJ2ZSBzcGFjZSB0byBhZGQgc2hhcmVkIGZlbmNlcyB0bwotICogYSByZXNlcnZhdGlvbl9vYmplY3QuCi0gKiBAb2JqOiByZXNlcnZhdGlvbiBvYmplY3QKLSAqIEBudW1fZmVuY2VzOiBudW1iZXIgb2YgZmVuY2VzIHdlIHdhbnQgdG8gYWRkCi0gKgotICogU2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UoKS4gIE11c3QKLSAqIGJlIGNhbGxlZCB3aXRoIG9iai0+bG9jayBoZWxkLgotICoKLSAqIFJFVFVSTlMKLSAqIFplcm8gZm9yIHN1Y2Nlc3MsIG9yIC1lcnJubwotICovCi1pbnQgcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICB1bnNpZ25lZCBpbnQgbnVtX2ZlbmNlcykKLXsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKm9sZCwgKm5ldzsKLQl1bnNpZ25lZCBpbnQgaSwgaiwgaywgbWF4OwotCi0JcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKG9iaik7Ci0KLQlvbGQgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3Qob2JqKTsKLQotCWlmIChvbGQgJiYgb2xkLT5zaGFyZWRfbWF4KSB7Ci0JCWlmICgob2xkLT5zaGFyZWRfY291bnQgKyBudW1fZmVuY2VzKSA8PSBvbGQtPnNoYXJlZF9tYXgpCi0JCQlyZXR1cm4gMDsKLQkJZWxzZQotCQkJbWF4ID0gbWF4KG9sZC0+c2hhcmVkX2NvdW50ICsgbnVtX2ZlbmNlcywKLQkJCQkgIG9sZC0+c2hhcmVkX21heCAqIDIpOwotCX0gZWxzZSB7Ci0JCW1heCA9IDQ7Ci0JfQotCi0JbmV3ID0ga21hbGxvYyhvZmZzZXRvZih0eXBlb2YoKm5ldyksIHNoYXJlZFttYXhdKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFuZXcpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JLyoKLQkgKiBubyBuZWVkIHRvIGJ1bXAgZmVuY2UgcmVmY291bnRzLCByY3VfcmVhZCBhY2Nlc3MKLQkgKiByZXF1aXJlcyB0aGUgdXNlIG9mIGtyZWZfZ2V0X3VubGVzc196ZXJvLCBhbmQgdGhlCi0JICogcmVmZXJlbmNlcyBmcm9tIHRoZSBvbGQgc3RydWN0IGFyZSBjYXJyaWVkIG92ZXIgdG8KLQkgKiB0aGUgbmV3LgotCSAqLwotCWZvciAoaSA9IDAsIGogPSAwLCBrID0gbWF4OyBpIDwgKG9sZCA/IG9sZC0+c2hhcmVkX2NvdW50IDogMCk7ICsraSkgewotCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKLQotCQlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQob2xkLT5zaGFyZWRbaV0sCi0JCQkJCQkgIHJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iaikpOwotCQlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKLQkJCVJDVV9JTklUX1BPSU5URVIobmV3LT5zaGFyZWRbLS1rXSwgZmVuY2UpOwotCQllbHNlCi0JCQlSQ1VfSU5JVF9QT0lOVEVSKG5ldy0+c2hhcmVkW2orK10sIGZlbmNlKTsKLQl9Ci0JbmV3LT5zaGFyZWRfY291bnQgPSBqOwotCW5ldy0+c2hhcmVkX21heCA9IG1heDsKLQotCXByZWVtcHRfZGlzYWJsZSgpOwotCXdyaXRlX3NlcWNvdW50X2JlZ2luKCZvYmotPnNlcSk7Ci0JLyoKLQkgKiBSQ1VfSU5JVF9QT0lOVEVSIGNhbiBiZSB1c2VkIGhlcmUsCi0JICogc2VxY291bnQgcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBiYXJyaWVycwotCSAqLwotCVJDVV9JTklUX1BPSU5URVIob2JqLT5mZW5jZSwgbmV3KTsKLQl3cml0ZV9zZXFjb3VudF9lbmQoJm9iai0+c2VxKTsKLQlwcmVlbXB0X2VuYWJsZSgpOwotCi0JaWYgKCFvbGQpCi0JCXJldHVybiAwOwotCi0JLyogRHJvcCB0aGUgcmVmZXJlbmNlcyB0byB0aGUgc2lnbmFsZWQgZmVuY2VzICovCi0JZm9yIChpID0gazsgaSA8IG5ldy0+c2hhcmVkX21heDsgKytpKSB7Ci0JCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwotCi0JCWZlbmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChuZXctPnNoYXJlZFtpXSwKLQkJCQkJCSAgcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSk7Ci0JCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwotCX0KLQlrZnJlZV9yY3Uob2xkLCByY3UpOwotCi0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MKHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZCk7Ci0KLS8qKgotICogcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UgLSBBZGQgYSBmZW5jZSB0byBhIHNoYXJlZCBzbG90Ci0gKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0Ci0gKiBAZmVuY2U6IHRoZSBzaGFyZWQgZmVuY2UgdG8gYWRkCi0gKgotICogQWRkIGEgZmVuY2UgdG8gYSBzaGFyZWQgc2xvdCwgb2JqLT5sb2NrIG11c3QgYmUgaGVsZCwgYW5kCi0gKiByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoKSBoYXMgYmVlbiBjYWxsZWQuCi0gKi8KLXZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAotCQkJCQkgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCi17Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOwotCXVuc2lnbmVkIGludCBpLCBjb3VudDsKLQotCWRtYV9mZW5jZV9nZXQoZmVuY2UpOwotCi0JcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKG9iaik7Ci0KLQlmb2JqID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KG9iaik7Ci0JY291bnQgPSBmb2JqLT5zaGFyZWRfY291bnQ7Ci0KLQlwcmVlbXB0X2Rpc2FibGUoKTsKLQl3cml0ZV9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOwotCi0JZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLQkJc3RydWN0IGRtYV9mZW5jZSAqb2xkX2ZlbmNlOwotCi0JCW9sZF9mZW5jZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoZm9iai0+c2hhcmVkW2ldLAotCQkJCQkJICAgICAgcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSk7Ci0JCWlmIChvbGRfZmVuY2UtPmNvbnRleHQgPT0gZmVuY2UtPmNvbnRleHQgfHwKLQkJICAgIGRtYV9mZW5jZV9pc19zaWduYWxlZChvbGRfZmVuY2UpKSB7Ci0JCQlkbWFfZmVuY2VfcHV0KG9sZF9mZW5jZSk7Ci0JCQlnb3RvIHJlcGxhY2U7Ci0JCX0KLQl9Ci0KLQlCVUdfT04oZm9iai0+c2hhcmVkX2NvdW50ID49IGZvYmotPnNoYXJlZF9tYXgpOwotCWNvdW50Kys7Ci0KLXJlcGxhY2U6Ci0JUkNVX0lOSVRfUE9JTlRFUihmb2JqLT5zaGFyZWRbaV0sIGZlbmNlKTsKLQkvKiBwb2ludGVyIHVwZGF0ZSBtdXN0IGJlIHZpc2libGUgYmVmb3JlIHdlIGV4dGVuZCB0aGUgc2hhcmVkX2NvdW50ICovCi0Jc21wX3N0b3JlX21iKGZvYmotPnNoYXJlZF9jb3VudCwgY291bnQpOwotCi0Jd3JpdGVfc2VxY291bnRfZW5kKCZvYmotPnNlcSk7Ci0JcHJlZW1wdF9lbmFibGUoKTsKLX0KLUVYUE9SVF9TWU1CT0wocmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UpOwotCi0vKioKLSAqIHJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZSAtIEFkZCBhbiBleGNsdXNpdmUgZmVuY2UuCi0gKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0Ci0gKiBAZmVuY2U6IHRoZSBzaGFyZWQgZmVuY2UgdG8gYWRkCi0gKgotICogQWRkIGEgZmVuY2UgdG8gdGhlIGV4Y2x1c2l2ZSBzbG90LiAgVGhlIG9iai0+bG9jayBtdXN0IGJlIGhlbGQuCi0gKi8KLXZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCi17Ci0Jc3RydWN0IGRtYV9mZW5jZSAqb2xkX2ZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKG9iaik7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpvbGQ7Ci0JdTMyIGkgPSAwOwotCi0JcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKG9iaik7Ci0KLQlvbGQgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3Qob2JqKTsKLQlpZiAob2xkKQotCQlpID0gb2xkLT5zaGFyZWRfY291bnQ7Ci0KLQlpZiAoZmVuY2UpCi0JCWRtYV9mZW5jZV9nZXQoZmVuY2UpOwotCi0JcHJlZW1wdF9kaXNhYmxlKCk7Ci0Jd3JpdGVfc2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsKLQkvKiB3cml0ZV9zZXFjb3VudF9iZWdpbiBwcm92aWRlcyB0aGUgbmVjZXNzYXJ5IG1lbW9yeSBiYXJyaWVyICovCi0JUkNVX0lOSVRfUE9JTlRFUihvYmotPmZlbmNlX2V4Y2wsIGZlbmNlKTsKLQlpZiAob2xkKQotCQlvbGQtPnNoYXJlZF9jb3VudCA9IDA7Ci0Jd3JpdGVfc2VxY291bnRfZW5kKCZvYmotPnNlcSk7Ci0JcHJlZW1wdF9lbmFibGUoKTsKLQotCS8qIGlucGxhY2UgdXBkYXRlLCBubyBzaGFyZWQgZmVuY2VzICovCi0Jd2hpbGUgKGktLSkKLQkJZG1hX2ZlbmNlX3B1dChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLAotCQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSkpOwotCi0JZG1hX2ZlbmNlX3B1dChvbGRfZmVuY2UpOwotfQotRVhQT1JUX1NZTUJPTChyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UpOwotCi0vKioKLSogcmVzZXJ2YXRpb25fb2JqZWN0X2NvcHlfZmVuY2VzIC0gQ29weSBhbGwgZmVuY2VzIGZyb20gc3JjIHRvIGRzdC4KLSogQGRzdDogdGhlIGRlc3RpbmF0aW9uIHJlc2VydmF0aW9uIG9iamVjdAotKiBAc3JjOiB0aGUgc291cmNlIHJlc2VydmF0aW9uIG9iamVjdAotKgotKiBDb3B5IGFsbCBmZW5jZXMgZnJvbSBzcmMgdG8gZHN0LiBkc3QtbG9jayBtdXN0IGJlIGhlbGQuCi0qLwotaW50IHJlc2VydmF0aW9uX29iamVjdF9jb3B5X2ZlbmNlcyhzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpkc3QsCi0JCQkJICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqc3JjKQotewotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqc3JjX2xpc3QsICpkc3RfbGlzdDsKLQlzdHJ1Y3QgZG1hX2ZlbmNlICpvbGQsICpuZXc7Ci0Jc2l6ZV90IHNpemU7Ci0JdW5zaWduZWQgaTsKLQotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChkc3QpOwotCi0JcmN1X3JlYWRfbG9jaygpOwotCXNyY19saXN0ID0gcmN1X2RlcmVmZXJlbmNlKHNyYy0+ZmVuY2UpOwotCi1yZXRyeToKLQlpZiAoc3JjX2xpc3QpIHsKLQkJdW5zaWduZWQgc2hhcmVkX2NvdW50ID0gc3JjX2xpc3QtPnNoYXJlZF9jb3VudDsKLQotCQlzaXplID0gb2Zmc2V0b2YodHlwZW9mKCpzcmNfbGlzdCksIHNoYXJlZFtzaGFyZWRfY291bnRdKTsKLQkJcmN1X3JlYWRfdW5sb2NrKCk7Ci0KLQkJZHN0X2xpc3QgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwotCQlpZiAoIWRzdF9saXN0KQotCQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkJcmN1X3JlYWRfbG9jaygpOwotCQlzcmNfbGlzdCA9IHJjdV9kZXJlZmVyZW5jZShzcmMtPmZlbmNlKTsKLQkJaWYgKCFzcmNfbGlzdCB8fCBzcmNfbGlzdC0+c2hhcmVkX2NvdW50ID4gc2hhcmVkX2NvdW50KSB7Ci0JCQlrZnJlZShkc3RfbGlzdCk7Ci0JCQlnb3RvIHJldHJ5OwotCQl9Ci0KLQkJZHN0X2xpc3QtPnNoYXJlZF9jb3VudCA9IDA7Ci0JCWRzdF9saXN0LT5zaGFyZWRfbWF4ID0gc2hhcmVkX2NvdW50OwotCQlmb3IgKGkgPSAwOyBpIDwgc3JjX2xpc3QtPnNoYXJlZF9jb3VudDsgKytpKSB7Ci0JCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKLQotCQkJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2Uoc3JjX2xpc3QtPnNoYXJlZFtpXSk7Ci0JCQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULAotCQkJCSAgICAgJmZlbmNlLT5mbGFncykpCi0JCQkJY29udGludWU7Ci0KLQkJCWlmICghZG1hX2ZlbmNlX2dldF9yY3UoZmVuY2UpKSB7Ci0JCQkJa2ZyZWUoZHN0X2xpc3QpOwotCQkJCXNyY19saXN0ID0gcmN1X2RlcmVmZXJlbmNlKHNyYy0+ZmVuY2UpOwotCQkJCWdvdG8gcmV0cnk7Ci0JCQl9Ci0KLQkJCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKSB7Ci0JCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7Ci0JCQkJY29udGludWU7Ci0JCQl9Ci0KLQkJCXJjdV9hc3NpZ25fcG9pbnRlcihkc3RfbGlzdC0+c2hhcmVkW2RzdF9saXN0LT5zaGFyZWRfY291bnQrK10sIGZlbmNlKTsKLQkJfQotCX0gZWxzZSB7Ci0JCWRzdF9saXN0ID0gTlVMTDsKLQl9Ci0KLQluZXcgPSBkbWFfZmVuY2VfZ2V0X3JjdV9zYWZlKCZzcmMtPmZlbmNlX2V4Y2wpOwotCXJjdV9yZWFkX3VubG9jaygpOwotCi0Jc3JjX2xpc3QgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3QoZHN0KTsKLQlvbGQgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2woZHN0KTsKLQotCXByZWVtcHRfZGlzYWJsZSgpOwotCXdyaXRlX3NlcWNvdW50X2JlZ2luKCZkc3QtPnNlcSk7Ci0JLyogd3JpdGVfc2VxY291bnRfYmVnaW4gcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBtZW1vcnkgYmFycmllciAqLwotCVJDVV9JTklUX1BPSU5URVIoZHN0LT5mZW5jZV9leGNsLCBuZXcpOwotCVJDVV9JTklUX1BPSU5URVIoZHN0LT5mZW5jZSwgZHN0X2xpc3QpOwotCXdyaXRlX3NlcWNvdW50X2VuZCgmZHN0LT5zZXEpOwotCXByZWVtcHRfZW5hYmxlKCk7Ci0KLQlpZiAoc3JjX2xpc3QpCi0JCWtmcmVlX3JjdShzcmNfbGlzdCwgcmN1KTsKLQlkbWFfZmVuY2VfcHV0KG9sZCk7Ci0KLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0wocmVzZXJ2YXRpb25fb2JqZWN0X2NvcHlfZmVuY2VzKTsKLQotLyoqCi0gKiByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2ZlbmNlc19yY3UgLSBHZXQgYW4gb2JqZWN0J3Mgc2hhcmVkIGFuZCBleGNsdXNpdmUKLSAqIGZlbmNlcyB3aXRob3V0IHVwZGF0ZSBzaWRlIGxvY2sgaGVsZAotICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAotICogQHBmZW5jZV9leGNsOiB0aGUgcmV0dXJuZWQgZXhjbHVzaXZlIGZlbmNlIChvciBOVUxMKQotICogQHBzaGFyZWRfY291bnQ6IHRoZSBudW1iZXIgb2Ygc2hhcmVkIGZlbmNlcyByZXR1cm5lZAotICogQHBzaGFyZWQ6IHRoZSBhcnJheSBvZiBzaGFyZWQgZmVuY2UgcHRycyByZXR1cm5lZCAoYXJyYXkgaXMga3JlYWxsb2MnZCB0bwotICogdGhlIHJlcXVpcmVkIHNpemUsIGFuZCBtdXN0IGJlIGZyZWVkIGJ5IGNhbGxlcikKLSAqCi0gKiBSZXRyaWV2ZSBhbGwgZmVuY2VzIGZyb20gdGhlIHJlc2VydmF0aW9uIG9iamVjdC4gSWYgdGhlIHBvaW50ZXIgZm9yIHRoZQotICogZXhjbHVzaXZlIGZlbmNlIGlzIG5vdCBzcGVjaWZpZWQgdGhlIGZlbmNlIGlzIHB1dCBpbnRvIHRoZSBhcnJheSBvZiB0aGUKLSAqIHNoYXJlZCBmZW5jZXMgYXMgd2VsbC4gUmV0dXJucyBlaXRoZXIgemVybyBvciAtRU5PTUVNLgotICovCi1pbnQgcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqcGZlbmNlX2V4Y2wsCi0JCQkJICAgICAgdW5zaWduZWQgKnBzaGFyZWRfY291bnQsCi0JCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKipwc2hhcmVkKQotewotCXN0cnVjdCBkbWFfZmVuY2UgKipzaGFyZWQgPSBOVUxMOwotCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlX2V4Y2w7Ci0JdW5zaWduZWQgaW50IHNoYXJlZF9jb3VudDsKLQlpbnQgcmV0ID0gMTsKLQotCWRvIHsKLQkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOwotCQl1bnNpZ25lZCBpbnQgaSwgc2VxOwotCQlzaXplX3Qgc3ogPSAwOwotCi0JCXNoYXJlZF9jb3VudCA9IGkgPSAwOwotCi0JCXJjdV9yZWFkX2xvY2soKTsKLQkJc2VxID0gcmVhZF9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOwotCi0JCWZlbmNlX2V4Y2wgPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZV9leGNsKTsKLQkJaWYgKGZlbmNlX2V4Y2wgJiYgIWRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlX2V4Y2wpKQotCQkJZ290byB1bmxvY2s7Ci0KLQkJZm9iaiA9IHJjdV9kZXJlZmVyZW5jZShvYmotPmZlbmNlKTsKLQkJaWYgKGZvYmopCi0JCQlzeiArPSBzaXplb2YoKnNoYXJlZCkgKiBmb2JqLT5zaGFyZWRfbWF4OwotCi0JCWlmICghcGZlbmNlX2V4Y2wgJiYgZmVuY2VfZXhjbCkKLQkJCXN6ICs9IHNpemVvZigqc2hhcmVkKTsKLQotCQlpZiAoc3opIHsKLQkJCXN0cnVjdCBkbWFfZmVuY2UgKipuc2hhcmVkOwotCi0JCQluc2hhcmVkID0ga3JlYWxsb2Moc2hhcmVkLCBzeiwKLQkJCQkJICAgR0ZQX05PV0FJVCB8IF9fR0ZQX05PV0FSTik7Ci0JCQlpZiAoIW5zaGFyZWQpIHsKLQkJCQlyY3VfcmVhZF91bmxvY2soKTsKLQotCQkJCWRtYV9mZW5jZV9wdXQoZmVuY2VfZXhjbCk7Ci0JCQkJZmVuY2VfZXhjbCA9IE5VTEw7Ci0KLQkJCQluc2hhcmVkID0ga3JlYWxsb2Moc2hhcmVkLCBzeiwgR0ZQX0tFUk5FTCk7Ci0JCQkJaWYgKG5zaGFyZWQpIHsKLQkJCQkJc2hhcmVkID0gbnNoYXJlZDsKLQkJCQkJY29udGludWU7Ci0JCQkJfQotCi0JCQkJcmV0ID0gLUVOT01FTTsKLQkJCQlicmVhazsKLQkJCX0KLQkJCXNoYXJlZCA9IG5zaGFyZWQ7Ci0JCQlzaGFyZWRfY291bnQgPSBmb2JqID8gZm9iai0+c2hhcmVkX2NvdW50IDogMDsKLQkJCWZvciAoaSA9IDA7IGkgPCBzaGFyZWRfY291bnQ7ICsraSkgewotCQkJCXNoYXJlZFtpXSA9IHJjdV9kZXJlZmVyZW5jZShmb2JqLT5zaGFyZWRbaV0pOwotCQkJCWlmICghZG1hX2ZlbmNlX2dldF9yY3Uoc2hhcmVkW2ldKSkKLQkJCQkJYnJlYWs7Ci0JCQl9Ci0KLQkJCWlmICghcGZlbmNlX2V4Y2wgJiYgZmVuY2VfZXhjbCkgewotCQkJCXNoYXJlZFtpXSA9IGZlbmNlX2V4Y2w7Ci0JCQkJZmVuY2VfZXhjbCA9IE5VTEw7Ci0JCQkJKytpOwotCQkJCSsrc2hhcmVkX2NvdW50OwotCQkJfQotCQl9Ci0KLQkJaWYgKGkgIT0gc2hhcmVkX2NvdW50IHx8IHJlYWRfc2VxY291bnRfcmV0cnkoJm9iai0+c2VxLCBzZXEpKSB7Ci0JCQl3aGlsZSAoaS0tKQotCQkJCWRtYV9mZW5jZV9wdXQoc2hhcmVkW2ldKTsKLQkJCWRtYV9mZW5jZV9wdXQoZmVuY2VfZXhjbCk7Ci0JCQlnb3RvIHVubG9jazsKLQkJfQotCi0JCXJldCA9IDA7Ci11bmxvY2s6Ci0JCXJjdV9yZWFkX3VubG9jaygpOwotCX0gd2hpbGUgKHJldCk7Ci0KLQlpZiAoIXNoYXJlZF9jb3VudCkgewotCQlrZnJlZShzaGFyZWQpOwotCQlzaGFyZWQgPSBOVUxMOwotCX0KLQotCSpwc2hhcmVkX2NvdW50ID0gc2hhcmVkX2NvdW50OwotCSpwc2hhcmVkID0gc2hhcmVkOwotCWlmIChwZmVuY2VfZXhjbCkKLQkJKnBmZW5jZV9leGNsID0gZmVuY2VfZXhjbDsKLQotCXJldHVybiByZXQ7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChyZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2ZlbmNlc19yY3UpOwotCi0vKioKLSAqIHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1IC0gV2FpdCBvbiByZXNlcnZhdGlvbidzIG9iamVjdHMKLSAqIHNoYXJlZCBhbmQvb3IgZXhjbHVzaXZlIGZlbmNlcy4KLSAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QKLSAqIEB3YWl0X2FsbDogaWYgdHJ1ZSwgd2FpdCBvbiBhbGwgZmVuY2VzLCBlbHNlIHdhaXQgb24ganVzdCBleGNsdXNpdmUgZmVuY2UKLSAqIEBpbnRyOiBpZiB0cnVlLCBkbyBpbnRlcnJ1cHRpYmxlIHdhaXQKLSAqIEB0aW1lb3V0OiB0aW1lb3V0IHZhbHVlIGluIGppZmZpZXMgb3IgemVybyB0byByZXR1cm4gaW1tZWRpYXRlbHkKLSAqCi0gKiBSRVRVUk5TCi0gKiBSZXR1cm5zIC1FUkVTVEFSVFNZUyBpZiBpbnRlcnJ1cHRlZCwgMCBpZiB0aGUgd2FpdCB0aW1lZCBvdXQsIG9yCi0gKiBncmVhdGVyIHRoYW4gemVyIG9uIHN1Y2Nlc3MuCi0gKi8KLWxvbmcgcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAotCQkJCQkgYm9vbCB3YWl0X2FsbCwgYm9vbCBpbnRyLAotCQkJCQkgdW5zaWduZWQgbG9uZyB0aW1lb3V0KQotewotCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwotCXVuc2lnbmVkIHNlcSwgc2hhcmVkX2NvdW50OwotCWxvbmcgcmV0ID0gdGltZW91dCA/IHRpbWVvdXQgOiAxOwotCWludCBpOwotCi1yZXRyeToKLQlzaGFyZWRfY291bnQgPSAwOwotCXNlcSA9IHJlYWRfc2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsKLQlyY3VfcmVhZF9sb2NrKCk7Ci0JaSA9IC0xOwotCi0JZmVuY2UgPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZV9leGNsKTsKLQlpZiAoZmVuY2UgJiYgIXRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpIHsKLQkJaWYgKCFkbWFfZmVuY2VfZ2V0X3JjdShmZW5jZSkpCi0JCQlnb3RvIHVubG9ja19yZXRyeTsKLQotCQlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkgewotCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7Ci0JCQlmZW5jZSA9IE5VTEw7Ci0JCX0KLQotCX0gZWxzZSB7Ci0JCWZlbmNlID0gTlVMTDsKLQl9Ci0KLQlpZiAod2FpdF9hbGwpIHsKLQkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqID0KLQkJCQkJCXJjdV9kZXJlZmVyZW5jZShvYmotPmZlbmNlKTsKLQotCQlpZiAoZm9iaikKLQkJCXNoYXJlZF9jb3VudCA9IGZvYmotPnNoYXJlZF9jb3VudDsKLQotCQlmb3IgKGkgPSAwOyAhZmVuY2UgJiYgaSA8IHNoYXJlZF9jb3VudDsgKytpKSB7Ci0JCQlzdHJ1Y3QgZG1hX2ZlbmNlICpsZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKLQotCQkJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwKLQkJCQkgICAgICZsZmVuY2UtPmZsYWdzKSkKLQkJCQljb250aW51ZTsKLQotCQkJaWYgKCFkbWFfZmVuY2VfZ2V0X3JjdShsZmVuY2UpKQotCQkJCWdvdG8gdW5sb2NrX3JldHJ5OwotCi0JCQlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGxmZW5jZSkpIHsKLQkJCQlkbWFfZmVuY2VfcHV0KGxmZW5jZSk7Ci0JCQkJY29udGludWU7Ci0JCQl9Ci0KLQkJCWZlbmNlID0gbGZlbmNlOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0KLQlyY3VfcmVhZF91bmxvY2soKTsKLQlpZiAoZmVuY2UpIHsKLQkJaWYgKHJlYWRfc2VxY291bnRfcmV0cnkoJm9iai0+c2VxLCBzZXEpKSB7Ci0JCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKLQkJCWdvdG8gcmV0cnk7Ci0JCX0KLQotCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGZlbmNlLCBpbnRyLCByZXQpOwotCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKLQkJaWYgKHJldCA+IDAgJiYgd2FpdF9hbGwgJiYgKGkgKyAxIDwgc2hhcmVkX2NvdW50KSkKLQkJCWdvdG8gcmV0cnk7Ci0JfQotCXJldHVybiByZXQ7Ci0KLXVubG9ja19yZXRyeToKLQlyY3VfcmVhZF91bmxvY2soKTsKLQlnb3RvIHJldHJ5OwotfQotRVhQT1JUX1NZTUJPTF9HUEwocmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3UpOwotCi0KLXN0YXRpYyBpbmxpbmUgaW50Ci1yZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxlZF9zaW5nbGUoc3RydWN0IGRtYV9mZW5jZSAqcGFzc2VkX2ZlbmNlKQotewotCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCAqbGZlbmNlID0gcGFzc2VkX2ZlbmNlOwotCWludCByZXQgPSAxOwotCi0JaWYgKCF0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZsZmVuY2UtPmZsYWdzKSkgewotCQlmZW5jZSA9IGRtYV9mZW5jZV9nZXRfcmN1KGxmZW5jZSk7Ci0JCWlmICghZmVuY2UpCi0JCQlyZXR1cm4gLTE7Ci0KLQkJcmV0ID0gISFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpOwotCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKLQl9Ci0JcmV0dXJuIHJldDsKLX0KLQotLyoqCi0gKiByZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxlZF9yY3UgLSBUZXN0IGlmIGEgcmVzZXJ2YXRpb24gb2JqZWN0J3MKLSAqIGZlbmNlcyBoYXZlIGJlZW4gc2lnbmFsZWQuCi0gKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0Ci0gKiBAdGVzdF9hbGw6IGlmIHRydWUsIHRlc3QgYWxsIGZlbmNlcywgb3RoZXJ3aXNlIG9ubHkgdGVzdCB0aGUgZXhjbHVzaXZlCi0gKiBmZW5jZQotICoKLSAqIFJFVFVSTlMKLSAqIHRydWUgaWYgYWxsIGZlbmNlcyBzaWduYWxlZCwgZWxzZSBmYWxzZQotICovCi1ib29sIHJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJCSAgYm9vbCB0ZXN0X2FsbCkKLXsKLQl1bnNpZ25lZCBzZXEsIHNoYXJlZF9jb3VudDsKLQlpbnQgcmV0OwotCi0JcmN1X3JlYWRfbG9jaygpOwotcmV0cnk6Ci0JcmV0ID0gdHJ1ZTsKLQlzaGFyZWRfY291bnQgPSAwOwotCXNlcSA9IHJlYWRfc2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsKLQotCWlmICh0ZXN0X2FsbCkgewotCQl1bnNpZ25lZCBpOwotCi0JCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iaiA9Ci0JCQkJCQlyY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZSk7Ci0KLQkJaWYgKGZvYmopCi0JCQlzaGFyZWRfY291bnQgPSBmb2JqLT5zaGFyZWRfY291bnQ7Ci0KLQkJZm9yIChpID0gMDsgaSA8IHNoYXJlZF9jb3VudDsgKytpKSB7Ci0JCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZShmb2JqLT5zaGFyZWRbaV0pOwotCi0JCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxlZF9zaW5nbGUoZmVuY2UpOwotCQkJaWYgKHJldCA8IDApCi0JCQkJZ290byByZXRyeTsKLQkJCWVsc2UgaWYgKCFyZXQpCi0JCQkJYnJlYWs7Ci0JCX0KLQotCQlpZiAocmVhZF9zZXFjb3VudF9yZXRyeSgmb2JqLT5zZXEsIHNlcSkpCi0JCQlnb3RvIHJldHJ5OwotCX0KLQotCWlmICghc2hhcmVkX2NvdW50KSB7Ci0JCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlX2V4Y2wgPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZV9leGNsKTsKLQotCQlpZiAoZmVuY2VfZXhjbCkgewotCQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfc2luZ2xlKAotCQkJCQkJCQlmZW5jZV9leGNsKTsKLQkJCWlmIChyZXQgPCAwKQotCQkJCWdvdG8gcmV0cnk7Ci0KLQkJCWlmIChyZWFkX3NlcWNvdW50X3JldHJ5KCZvYmotPnNlcSwgc2VxKSkKLQkJCQlnb3RvIHJldHJ5OwotCQl9Ci0JfQotCi0JcmN1X3JlYWRfdW5sb2NrKCk7Ci0JcmV0dXJuIHJldDsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKHJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvc2VsZnRlc3QuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9zZWxmdGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2MGI2OTQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2RtYS1idWYvc2VsZnRlc3QuYwpAQCAtMCwwICsxLDE2NyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC9zaWduYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisKKyNpbmNsdWRlICJzZWxmdGVzdC5oIgorCitlbnVtIHsKKyNkZWZpbmUgc2VsZnRlc3QobiwgZnVuYykgX19pZHhfIyNuLAorI2luY2x1ZGUgInNlbGZ0ZXN0cy5oIgorI3VuZGVmIHNlbGZ0ZXN0Cit9OworCisjZGVmaW5lIHNlbGZ0ZXN0KG4sIGYpIFtfX2lkeF8jI25dID0geyAubmFtZSA9ICNuLCAuZnVuYyA9IGYgfSwKK3N0YXRpYyBzdHJ1Y3Qgc2VsZnRlc3QgeworCWJvb2wgZW5hYmxlZDsKKwljb25zdCBjaGFyICpuYW1lOworCWludCAoKmZ1bmMpKHZvaWQpOworfSBzZWxmdGVzdHNbXSA9IHsKKyNpbmNsdWRlICJzZWxmdGVzdHMuaCIKK307CisjdW5kZWYgc2VsZnRlc3QKKworLyogRW1iZWQgdGhlIGxpbmUgbnVtYmVyIGludG8gdGhlIHBhcmFtZXRlciBuYW1lIHNvIHRoYXQgd2UgY2FuIG9yZGVyIHRlc3RzICovCisjZGVmaW5lIHBhcmFtKG4pIF9fUEFTVEUoaWd0X18sIF9fUEFTVEUoX19QQVNURShfX0xJTkVfXywgX18pLCBuKSkKKyNkZWZpbmUgc2VsZnRlc3RfMChuLCBmdW5jLCBpZCkgXAorbW9kdWxlX3BhcmFtX25hbWVkKGlkLCBzZWxmdGVzdHNbX19pZHhfIyNuXS5lbmFibGVkLCBib29sLCAwNDAwKTsKKyNkZWZpbmUgc2VsZnRlc3QobiwgZnVuYykgc2VsZnRlc3RfMChuLCBmdW5jLCBwYXJhbShuKSkKKyNpbmNsdWRlICJzZWxmdGVzdHMuaCIKKyN1bmRlZiBzZWxmdGVzdAorCitpbnQgX19zYW5pdHljaGVja19fKHZvaWQpCit7CisJcHJfZGVidWcoIkhlbGxvIFdvcmxkIVxuIik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjaGFyICpfX3N0X2ZpbHRlcjsKKworc3RhdGljIGJvb2wgYXBwbHlfc3VidGVzdF9maWx0ZXIoY29uc3QgY2hhciAqY2FsbGVyLCBjb25zdCBjaGFyICpuYW1lKQoreworCWNoYXIgKmZpbHRlciwgKnNlcCwgKnRvazsKKwlib29sIHJlc3VsdCA9IHRydWU7CisKKwlmaWx0ZXIgPSBrc3RyZHVwKF9fc3RfZmlsdGVyLCBHRlBfS0VSTkVMKTsKKwlmb3IgKHNlcCA9IGZpbHRlcjsgKHRvayA9IHN0cnNlcCgmc2VwLCAiLCIpKTspIHsKKwkJYm9vbCBhbGxvdyA9IHRydWU7CisJCWNoYXIgKnNsOworCisJCWlmICgqdG9rID09ICchJykgeworCQkJYWxsb3cgPSBmYWxzZTsKKwkJCXRvaysrOworCQl9CisKKwkJaWYgKCp0b2sgPT0gJ1wwJykKKwkJCWNvbnRpbnVlOworCisJCXNsID0gc3RyY2hyKHRvaywgJy8nKTsKKwkJaWYgKHNsKSB7CisJCQkqc2wrKyA9ICdcMCc7CisJCQlpZiAoc3RyY21wKHRvaywgY2FsbGVyKSkgeworCQkJCWlmIChhbGxvdykKKwkJCQkJcmVzdWx0ID0gZmFsc2U7CisJCQkJY29udGludWU7CisJCQl9CisJCQl0b2sgPSBzbDsKKwkJfQorCisJCWlmIChzdHJjbXAodG9rLCBuYW1lKSkgeworCQkJaWYgKGFsbG93KQorCQkJCXJlc3VsdCA9IGZhbHNlOworCQkJY29udGludWU7CisJCX0KKworCQlyZXN1bHQgPSBhbGxvdzsKKwkJYnJlYWs7CisJfQorCWtmcmVlKGZpbHRlcik7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCitpbnQKK19fc3VidGVzdHMoY29uc3QgY2hhciAqY2FsbGVyLCBjb25zdCBzdHJ1Y3Qgc3VidGVzdCAqc3QsIGludCBjb3VudCwgdm9pZCAqZGF0YSkKK3sKKwlpbnQgZXJyOworCisJZm9yICg7IGNvdW50LS07IHN0KyspIHsKKwkJY29uZF9yZXNjaGVkKCk7CisJCWlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KSkKKwkJCXJldHVybiAtRUlOVFI7CisKKwkJaWYgKCFhcHBseV9zdWJ0ZXN0X2ZpbHRlcihjYWxsZXIsIHN0LT5uYW1lKSkKKwkJCWNvbnRpbnVlOworCisJCXByX2luZm8oImRtYS1idWY6IFJ1bm5pbmcgJXMvJXNcbiIsIGNhbGxlciwgc3QtPm5hbWUpOworCisJCWVyciA9IHN0LT5mdW5jKGRhdGEpOworCQlpZiAoZXJyICYmIGVyciAhPSAtRUlOVFIpIHsKKwkJCXByX2VycigiZG1hLWJ1Zi8lczogJXMgZmFpbGVkIHdpdGggZXJyb3IgJWRcbiIsCisJCQkgICAgICAgY2FsbGVyLCBzdC0+bmFtZSwgZXJyKTsKKwkJCXJldHVybiBlcnI7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgc2V0X2RlZmF1bHRfdGVzdF9hbGwoc3RydWN0IHNlbGZ0ZXN0ICpzdCwgdW5zaWduZWQgbG9uZyBjb3VudCkKK3sKKwl1bnNpZ25lZCBsb25nIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKwkJaWYgKHN0W2ldLmVuYWJsZWQpCisJCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKwkJc3RbaV0uZW5hYmxlZCA9IHRydWU7Cit9CisKK3N0YXRpYyBpbnQgcnVuX3NlbGZ0ZXN0cyhzdHJ1Y3Qgc2VsZnRlc3QgKnN0LCB1bnNpZ25lZCBsb25nIGNvdW50KQoreworCWludCBlcnIgPSAwOworCisJc2V0X2RlZmF1bHRfdGVzdF9hbGwoc3QsIGNvdW50KTsKKworCS8qIFRlc3RzIGFyZSBsaXN0ZWQgaW4gbmF0dXJhbCBvcmRlciBpbiBzZWxmdGVzdHMuaCAqLworCWZvciAoOyBjb3VudC0tOyBzdCsrKSB7CisJCWlmICghc3QtPmVuYWJsZWQpCisJCQljb250aW51ZTsKKworCQlwcl9pbmZvKCJkbWEtYnVmOiBSdW5uaW5nICVzXG4iLCBzdC0+bmFtZSk7CisJCWVyciA9IHN0LT5mdW5jKCk7CisJCWlmIChlcnIpCisJCQlicmVhazsKKwl9CisKKwlpZiAoV0FSTihlcnIgPiAwIHx8IGVyciA9PSAtRU5PVFRZLAorCQkgIiVzIHJldHVybmVkICVkLCBjb25mbGljdGluZyB3aXRoIHNlbGZ0ZXN0J3MgbWFnaWMgdmFsdWVzIVxuIiwKKwkJIHN0LT5uYW1lLCBlcnIpKQorCQllcnIgPSAtMTsKKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHN0X2luaXQodm9pZCkKK3sKKwlyZXR1cm4gcnVuX3NlbGZ0ZXN0cyhzZWxmdGVzdHMsIEFSUkFZX1NJWkUoc2VsZnRlc3RzKSk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBzdF9leGl0KHZvaWQpCit7Cit9CisKK21vZHVsZV9wYXJhbV9uYW1lZChzdF9maWx0ZXIsIF9fc3RfZmlsdGVyLCBjaGFycCwgMDQwMCk7Cittb2R1bGVfaW5pdChzdF9pbml0KTsKK21vZHVsZV9leGl0KHN0X2V4aXQpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNlbGYtdGVzdCBoYXJuZXNzIGZvciBkbWEtYnVmIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIGFuZCBhZGRpdGlvbmFsIHJpZ2h0cyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3NlbGZ0ZXN0LmggYi9kcml2ZXJzL2RtYS1idWYvc2VsZnRlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTc5M2FmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9kbWEtYnVmL3NlbGZ0ZXN0LmgKQEAgLTAsMCArMSwzMCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fU0VMRlRFU1RfSF9fCisjZGVmaW5lIF9fU0VMRlRFU1RfSF9fCisKKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorCisjZGVmaW5lIHNlbGZ0ZXN0KG5hbWUsIGZ1bmMpIGludCBmdW5jKHZvaWQpOworI2luY2x1ZGUgInNlbGZ0ZXN0cy5oIgorI3VuZGVmIHNlbGZ0ZXN0CisKK3N0cnVjdCBzdWJ0ZXN0IHsKKwlpbnQgKCpmdW5jKSh2b2lkICpkYXRhKTsKKwljb25zdCBjaGFyICpuYW1lOworfTsKKworaW50IF9fc3VidGVzdHMoY29uc3QgY2hhciAqY2FsbGVyLAorCSAgICAgICBjb25zdCBzdHJ1Y3Qgc3VidGVzdCAqc3QsCisJICAgICAgIGludCBjb3VudCwKKwkgICAgICAgdm9pZCAqZGF0YSk7CisjZGVmaW5lIHN1YnRlc3RzKFQsIGRhdGEpIFwKKwlfX3N1YnRlc3RzKF9fZnVuY19fLCBULCBBUlJBWV9TSVpFKFQpLCBkYXRhKQorCisjZGVmaW5lIFNVQlRFU1QoeCkgeyB4LCAjeCB9CisKKyNlbmRpZiAvKiBfX1NFTEZURVNUX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3NlbGZ0ZXN0cy5oIGIvZHJpdmVycy9kbWEtYnVmL3NlbGZ0ZXN0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzMjAzODYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2RtYS1idWYvc2VsZnRlc3RzLmgKQEAgLTAsMCArMSwxMyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyogTGlzdCBlYWNoIHVuaXQgdGVzdCBhcyBzZWxmdGVzdChuYW1lLCBmdW5jdGlvbikKKyAqCisgKiBUaGUgbmFtZSBpcyB1c2VkIGFzIGJvdGggYW4gZW51bSBhbmQgZXhwYW5kZWQgYXMgc3VidGVzdF9fbmFtZSB0byBjcmVhdGUKKyAqIGEgbW9kdWxlIHBhcmFtZXRlci4gSXQgbXVzdCBiZSB1bmlxdWUgYW5kIGxlZ2FsIGZvciBhIEMgaWRlbnRpZmllci4KKyAqCisgKiBUaGUgZnVuY3Rpb24gc2hvdWxkIGJlIG9mIHR5cGUgaW50IGZ1bmN0aW9uKHZvaWQpLiBJdCBtYXkgYmUgY29uZGl0aW9uYWxseQorICogY29tcGlsZWQgdXNpbmcgI2lmIElTX0VOQUJMRUQoRFJNX0k5MTVfU0VMRlRFU1QpLgorICoKKyAqIFRlc3RzIGFyZSBleGVjdXRlZCBpbiBvcmRlciBieSBpZ3QvZG1hYnVmX3NlbGZ0ZXN0CisgKi8KK3NlbGZ0ZXN0KHNhbml0eWNoZWNrLCBfX3Nhbml0eWNoZWNrX18pIC8qIGtlZXAgZmlyc3QgKGlndCBzZWxmY2hlY2spICovCitzZWxmdGVzdChkbWFfZmVuY2UsIGRtYV9mZW5jZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9zdC1kbWEtZmVuY2UuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9zdC1kbWEtZmVuY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTkzMDY0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9kbWEtYnVmL3N0LWRtYS1mZW5jZS5jCkBAIC0wLDAgKzEsNTc0IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC9zaWduYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKworI2luY2x1ZGUgInNlbGZ0ZXN0LmgiCisKK3N0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYl9mZW5jZXM7CisKK3N0YXRpYyBzdHJ1Y3QgbW9ja19mZW5jZSB7CisJc3RydWN0IGRtYV9mZW5jZSBiYXNlOworCXN0cnVjdCBzcGlubG9jayBsb2NrOworfSAqdG9fbW9ja19mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKSB7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihmLCBzdHJ1Y3QgbW9ja19mZW5jZSwgYmFzZSk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICptb2NrX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZikKK3sKKwlyZXR1cm4gIm1vY2siOworfQorCitzdGF0aWMgdm9pZCBtb2NrX2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGRtYV9mZW5jZSAqZikKK3sKKwlrbWVtX2NhY2hlX2ZyZWUoc2xhYl9mZW5jZXMsIHRvX21vY2tfZmVuY2UoZikpOworfQorCitzdHJ1Y3Qgd2FpdF9jYiB7CisJc3RydWN0IGRtYV9mZW5jZV9jYiBjYjsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7Cit9OworCitzdGF0aWMgdm9pZCBtb2NrX3dha2V1cChzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYikKK3sKKwl3YWtlX3VwX3Byb2Nlc3MoY29udGFpbmVyX29mKGNiLCBzdHJ1Y3Qgd2FpdF9jYiwgY2IpLT50YXNrKTsKK30KKworc3RhdGljIGxvbmcgbW9ja193YWl0KHN0cnVjdCBkbWFfZmVuY2UgKmYsIGJvb2wgaW50ciwgbG9uZyB0aW1lb3V0KQoreworCWNvbnN0IGludCBzdGF0ZSA9IGludHIgPyBUQVNLX0lOVEVSUlVQVElCTEUgOiBUQVNLX1VOSU5URVJSVVBUSUJMRTsKKwlzdHJ1Y3Qgd2FpdF9jYiBjYiA9IHsgLnRhc2sgPSBjdXJyZW50IH07CisKKwlpZiAoZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhmLCAmY2IuY2IsIG1vY2tfd2FrZXVwKSkKKwkJcmV0dXJuIHRpbWVvdXQ7CisKKwl3aGlsZSAodGltZW91dCkgeworCQlzZXRfY3VycmVudF9zdGF0ZShzdGF0ZSk7CisKKwkJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmYtPmZsYWdzKSkKKwkJCWJyZWFrOworCisJCWlmIChzaWduYWxfcGVuZGluZ19zdGF0ZShzdGF0ZSwgY3VycmVudCkpCisJCQlicmVhazsKKworCQl0aW1lb3V0ID0gc2NoZWR1bGVfdGltZW91dCh0aW1lb3V0KTsKKwl9CisJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOworCisJaWYgKCFkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNrKGYsICZjYi5jYikpCisJCXJldHVybiB0aW1lb3V0OworCisJaWYgKHNpZ25hbF9wZW5kaW5nX3N0YXRlKHN0YXRlLCBjdXJyZW50KSkKKwkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKworCXJldHVybiAtRVRJTUU7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBtb2NrX29wcyA9IHsKKwkuZ2V0X2RyaXZlcl9uYW1lID0gbW9ja19uYW1lLAorCS5nZXRfdGltZWxpbmVfbmFtZSA9IG1vY2tfbmFtZSwKKwkud2FpdCA9IG1vY2tfd2FpdCwKKwkucmVsZWFzZSA9IG1vY2tfZmVuY2VfcmVsZWFzZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlICptb2NrX2ZlbmNlKHZvaWQpCit7CisJc3RydWN0IG1vY2tfZmVuY2UgKmY7CisKKwlmID0ga21lbV9jYWNoZV9hbGxvYyhzbGFiX2ZlbmNlcywgR0ZQX0tFUk5FTCk7CisJaWYgKCFmKQorCQlyZXR1cm4gTlVMTDsKKworCXNwaW5fbG9ja19pbml0KCZmLT5sb2NrKTsKKwlkbWFfZmVuY2VfaW5pdCgmZi0+YmFzZSwgJm1vY2tfb3BzLCAmZi0+bG9jaywgMCwgMCk7CisKKwlyZXR1cm4gJmYtPmJhc2U7Cit9CisKK3N0YXRpYyBpbnQgc2FuaXR5Y2hlY2sodm9pZCAqYXJnKQoreworCXN0cnVjdCBkbWFfZmVuY2UgKmY7CisKKwlmID0gbW9ja19mZW5jZSgpOworCWlmICghZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkbWFfZmVuY2Vfc2lnbmFsKGYpOworCWRtYV9mZW5jZV9wdXQoZik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0ZXN0X3NpZ25hbGluZyh2b2lkICphcmcpCit7CisJc3RydWN0IGRtYV9mZW5jZSAqZjsKKwlpbnQgZXJyID0gLUVJTlZBTDsKKworCWYgPSBtb2NrX2ZlbmNlKCk7CisJaWYgKCFmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZikpIHsKKwkJcHJfZXJyKCJGZW5jZSB1bmV4cGVjdGVkbHkgc2lnbmFsZWQgb24gY3JlYXRpb25cbiIpOworCQlnb3RvIGVycl9mcmVlOworCX0KKworCWlmIChkbWFfZmVuY2Vfc2lnbmFsKGYpKSB7CisJCXByX2VycigiRmVuY2UgcmVwb3J0ZWQgYmVpbmcgYWxyZWFkeSBzaWduYWxlZFxuIik7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJaWYgKCFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZikpIHsKKwkJcHJfZXJyKCJGZW5jZSBub3QgcmVwb3J0aW5nIHNpZ25hbGVkXG4iKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwlpZiAoIWRtYV9mZW5jZV9zaWduYWwoZikpIHsKKwkJcHJfZXJyKCJGZW5jZSByZXBvcnRlZCBub3QgYmVpbmcgYWxyZWFkeSBzaWduYWxlZFxuIik7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJZXJyID0gMDsKK2Vycl9mcmVlOgorCWRtYV9mZW5jZV9wdXQoZik7CisJcmV0dXJuIGVycjsKK30KKworc3RydWN0IHNpbXBsZV9jYiB7CisJc3RydWN0IGRtYV9mZW5jZV9jYiBjYjsKKwlib29sIHNlZW47Cit9OworCitzdGF0aWMgdm9pZCBzaW1wbGVfY2FsbGJhY2soc3RydWN0IGRtYV9mZW5jZSAqZiwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCit7CisJc21wX3N0b3JlX21iKGNvbnRhaW5lcl9vZihjYiwgc3RydWN0IHNpbXBsZV9jYiwgY2IpLT5zZWVuLCB0cnVlKTsKK30KKworc3RhdGljIGludCB0ZXN0X2FkZF9jYWxsYmFjayh2b2lkICphcmcpCit7CisJc3RydWN0IHNpbXBsZV9jYiBjYiA9IHt9OworCXN0cnVjdCBkbWFfZmVuY2UgKmY7CisJaW50IGVyciA9IC1FSU5WQUw7CisKKwlmID0gbW9ja19mZW5jZSgpOworCWlmICghZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpZiAoZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhmLCAmY2IuY2IsIHNpbXBsZV9jYWxsYmFjaykpIHsKKwkJcHJfZXJyKCJGYWlsZWQgdG8gYWRkIGNhbGxiYWNrLCBmZW5jZSBhbHJlYWR5IHNpZ25hbGVkIVxuIik7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJZG1hX2ZlbmNlX3NpZ25hbChmKTsKKwlpZiAoIWNiLnNlZW4pIHsKKwkJcHJfZXJyKCJDYWxsYmFjayBmYWlsZWQhXG4iKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwllcnIgPSAwOworZXJyX2ZyZWU6CisJZG1hX2ZlbmNlX3B1dChmKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IHRlc3RfbGF0ZV9hZGRfY2FsbGJhY2sodm9pZCAqYXJnKQoreworCXN0cnVjdCBzaW1wbGVfY2IgY2IgPSB7fTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmOworCWludCBlcnIgPSAtRUlOVkFMOworCisJZiA9IG1vY2tfZmVuY2UoKTsKKwlpZiAoIWYpCisJCXJldHVybiAtRU5PTUVNOworCisJZG1hX2ZlbmNlX3NpZ25hbChmKTsKKworCWlmICghZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhmLCAmY2IuY2IsIHNpbXBsZV9jYWxsYmFjaykpIHsKKwkJcHJfZXJyKCJBZGRlZCBjYWxsYmFjaywgYnV0IGZlbmNlIHdhcyBhbHJlYWR5IHNpZ25hbGVkIVxuIik7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJZG1hX2ZlbmNlX3NpZ25hbChmKTsKKwlpZiAoY2Iuc2VlbikgeworCQlwcl9lcnIoIkNhbGxiYWNrIGNhbGxlZCBhZnRlciBmYWlsZWQgYXR0YWNobWVudCAhXG4iKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwllcnIgPSAwOworZXJyX2ZyZWU6CisJZG1hX2ZlbmNlX3B1dChmKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IHRlc3Rfcm1fY2FsbGJhY2sodm9pZCAqYXJnKQoreworCXN0cnVjdCBzaW1wbGVfY2IgY2IgPSB7fTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmOworCWludCBlcnIgPSAtRUlOVkFMOworCisJZiA9IG1vY2tfZmVuY2UoKTsKKwlpZiAoIWYpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZiwgJmNiLmNiLCBzaW1wbGVfY2FsbGJhY2spKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGFkZCBjYWxsYmFjaywgZmVuY2UgYWxyZWFkeSBzaWduYWxlZCFcbiIpOworCQlnb3RvIGVycl9mcmVlOworCX0KKworCWlmICghZG1hX2ZlbmNlX3JlbW92ZV9jYWxsYmFjayhmLCAmY2IuY2IpKSB7CisJCXByX2VycigiRmFpbGVkIHRvIHJlbW92ZSBjYWxsYmFjayFcbiIpOworCQlnb3RvIGVycl9mcmVlOworCX0KKworCWRtYV9mZW5jZV9zaWduYWwoZik7CisJaWYgKGNiLnNlZW4pIHsKKwkJcHJfZXJyKCJDYWxsYmFjayBzdGlsbCBzaWduYWxlZCBhZnRlciByZW1vdmFsIVxuIik7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJZXJyID0gMDsKK2Vycl9mcmVlOgorCWRtYV9mZW5jZV9wdXQoZik7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCB0ZXN0X2xhdGVfcm1fY2FsbGJhY2sodm9pZCAqYXJnKQoreworCXN0cnVjdCBzaW1wbGVfY2IgY2IgPSB7fTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmOworCWludCBlcnIgPSAtRUlOVkFMOworCisJZiA9IG1vY2tfZmVuY2UoKTsKKwlpZiAoIWYpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZiwgJmNiLmNiLCBzaW1wbGVfY2FsbGJhY2spKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGFkZCBjYWxsYmFjaywgZmVuY2UgYWxyZWFkeSBzaWduYWxlZCFcbiIpOworCQlnb3RvIGVycl9mcmVlOworCX0KKworCWRtYV9mZW5jZV9zaWduYWwoZik7CisJaWYgKCFjYi5zZWVuKSB7CisJCXByX2VycigiQ2FsbGJhY2sgZmFpbGVkIVxuIik7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJaWYgKGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2soZiwgJmNiLmNiKSkgeworCQlwcl9lcnIoIkNhbGxiYWNrIHJlbW92YWwgc3VjY2VlZCBhZnRlciBiZWluZyBleGVjdXRlZCFcbiIpOworCQlnb3RvIGVycl9mcmVlOworCX0KKworCWVyciA9IDA7CitlcnJfZnJlZToKKwlkbWFfZmVuY2VfcHV0KGYpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgdGVzdF9zdGF0dXModm9pZCAqYXJnKQoreworCXN0cnVjdCBkbWFfZmVuY2UgKmY7CisJaW50IGVyciA9IC1FSU5WQUw7CisKKwlmID0gbW9ja19mZW5jZSgpOworCWlmICghZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpZiAoZG1hX2ZlbmNlX2dldF9zdGF0dXMoZikpIHsKKwkJcHJfZXJyKCJGZW5jZSB1bmV4cGVjdGVkbHkgaGFzIHNpZ25hbGVkIHN0YXR1cyBvbiBjcmVhdGlvblxuIik7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJZG1hX2ZlbmNlX3NpZ25hbChmKTsKKwlpZiAoIWRtYV9mZW5jZV9nZXRfc3RhdHVzKGYpKSB7CisJCXByX2VycigiRmVuY2Ugbm90IHJlcG9ydGluZyBzaWduYWxlZCBzdGF0dXNcbiIpOworCQlnb3RvIGVycl9mcmVlOworCX0KKworCWVyciA9IDA7CitlcnJfZnJlZToKKwlkbWFfZmVuY2VfcHV0KGYpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgdGVzdF9lcnJvcih2b2lkICphcmcpCit7CisJc3RydWN0IGRtYV9mZW5jZSAqZjsKKwlpbnQgZXJyID0gLUVJTlZBTDsKKworCWYgPSBtb2NrX2ZlbmNlKCk7CisJaWYgKCFmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRtYV9mZW5jZV9zZXRfZXJyb3IoZiwgLUVJTyk7CisKKwlpZiAoZG1hX2ZlbmNlX2dldF9zdGF0dXMoZikpIHsKKwkJcHJfZXJyKCJGZW5jZSB1bmV4cGVjdGVkbHkgaGFzIGVycm9yIHN0YXR1cyBiZWZvcmUgc2lnbmFsXG4iKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwlkbWFfZmVuY2Vfc2lnbmFsKGYpOworCWlmIChkbWFfZmVuY2VfZ2V0X3N0YXR1cyhmKSAhPSAtRUlPKSB7CisJCXByX2VycigiRmVuY2Ugbm90IHJlcG9ydGluZyBlcnJvciBzdGF0dXMsIGdvdCAlZFxuIiwKKwkJICAgICAgIGRtYV9mZW5jZV9nZXRfc3RhdHVzKGYpKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwllcnIgPSAwOworZXJyX2ZyZWU6CisJZG1hX2ZlbmNlX3B1dChmKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IHRlc3Rfd2FpdCh2b2lkICphcmcpCit7CisJc3RydWN0IGRtYV9mZW5jZSAqZjsKKwlpbnQgZXJyID0gLUVJTlZBTDsKKworCWYgPSBtb2NrX2ZlbmNlKCk7CisJaWYgKCFmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGYsIGZhbHNlLCAwKSAhPSAtRVRJTUUpIHsKKwkJcHJfZXJyKCJXYWl0IHJlcG9ydGVkIGNvbXBsZXRlIGJlZm9yZSBiZWluZyBzaWduYWxlZFxuIik7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJZG1hX2ZlbmNlX3NpZ25hbChmKTsKKworCWlmIChkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGYsIGZhbHNlLCAwKSAhPSAwKSB7CisJCXByX2VycigiV2FpdCByZXBvcnRlZCBpbmNvbXBsZXRlIGFmdGVyIGJlaW5nIHNpZ25hbGVkXG4iKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwllcnIgPSAwOworZXJyX2ZyZWU6CisJZG1hX2ZlbmNlX3NpZ25hbChmKTsKKwlkbWFfZmVuY2VfcHV0KGYpOworCXJldHVybiBlcnI7Cit9CisKK3N0cnVjdCB3YWl0X3RpbWVyIHsKKwlzdHJ1Y3QgdGltZXJfbGlzdCB0aW1lcjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmOworfTsKKworc3RhdGljIHZvaWQgd2FpdF90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIpCit7CisJc3RydWN0IHdhaXRfdGltZXIgKnd0ID0gZnJvbV90aW1lcih3dCwgdGltZXIsIHRpbWVyKTsKKworCWRtYV9mZW5jZV9zaWduYWwod3QtPmYpOworfQorCitzdGF0aWMgaW50IHRlc3Rfd2FpdF90aW1lb3V0KHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qgd2FpdF90aW1lciB3dDsKKwlpbnQgZXJyID0gLUVJTlZBTDsKKworCXRpbWVyX3NldHVwX29uX3N0YWNrKCZ3dC50aW1lciwgd2FpdF90aW1lciwgMCk7CisKKwl3dC5mID0gbW9ja19mZW5jZSgpOworCWlmICghd3QuZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpZiAoZG1hX2ZlbmNlX3dhaXRfdGltZW91dCh3dC5mLCBmYWxzZSwgMSkgIT0gLUVUSU1FKSB7CisJCXByX2VycigiV2FpdCByZXBvcnRlZCBjb21wbGV0ZSBiZWZvcmUgYmVpbmcgc2lnbmFsZWRcbiIpOworCQlnb3RvIGVycl9mcmVlOworCX0KKworCW1vZF90aW1lcigmd3QudGltZXIsIGppZmZpZXMgKyAxKTsKKworCWlmIChkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KHd0LmYsIGZhbHNlLCAyKSA9PSAtRVRJTUUpIHsKKwkJaWYgKHRpbWVyX3BlbmRpbmcoJnd0LnRpbWVyKSkgeworCQkJcHJfbm90aWNlKCJUaW1lciBkaWQgbm90IGZpcmUgd2l0aGluIHRoZSBqaWZmaWUhXG4iKTsKKwkJCWVyciA9IDA7IC8qIG5vdCBvdXIgZmF1bHQhICovCisJCX0gZWxzZSB7CisJCQlwcl9lcnIoIldhaXQgcmVwb3J0ZWQgaW5jb21wbGV0ZSBhZnRlciB0aW1lb3V0XG4iKTsKKwkJfQorCQlnb3RvIGVycl9mcmVlOworCX0KKworCWVyciA9IDA7CitlcnJfZnJlZToKKwlkZWxfdGltZXJfc3luYygmd3QudGltZXIpOworCWRlc3Ryb3lfdGltZXJfb25fc3RhY2soJnd0LnRpbWVyKTsKKwlkbWFfZmVuY2Vfc2lnbmFsKHd0LmYpOworCWRtYV9mZW5jZV9wdXQod3QuZik7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCB0ZXN0X3N0dWIodm9pZCAqYXJnKQoreworCXN0cnVjdCBkbWFfZmVuY2UgKmZbNjRdOworCWludCBlcnIgPSAtRUlOVkFMOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZik7IGkrKykgeworCQlmW2ldID0gZG1hX2ZlbmNlX2dldF9zdHViKCk7CisJCWlmICghZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZbaV0pKSB7CisJCQlwcl9lcnIoIk9idGFpbmVkIHVuc2lnbmFsZWQgc3R1YiBmZW5jZSFcbiIpOworCQkJZ290byBlcnI7CisJCX0KKwl9CisKKwllcnIgPSAwOworZXJyOgorCXdoaWxlIChpLS0pCisJCWRtYV9mZW5jZV9wdXQoZltpXSk7CisJcmV0dXJuIGVycjsKK30KKworLyogTm93IG9mZiB0byB0aGUgcmFjZXMhICovCisKK3N0cnVjdCByYWNlX3RocmVhZCB7CisJc3RydWN0IGRtYV9mZW5jZSBfX3JjdSAqKmZlbmNlczsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CisJYm9vbCBiZWZvcmU7CisJaW50IGlkOworfTsKKworc3RhdGljIHZvaWQgX193YWl0X2Zvcl9jYWxsYmFja3Moc3RydWN0IGRtYV9mZW5jZSAqZikKK3sKKwlzcGluX2xvY2tfaXJxKGYtPmxvY2spOworCXNwaW5fdW5sb2NrX2lycShmLT5sb2NrKTsKK30KKworc3RhdGljIGludCB0aHJlYWRfc2lnbmFsX2NhbGxiYWNrKHZvaWQgKmFyZykKK3sKKwljb25zdCBzdHJ1Y3QgcmFjZV90aHJlYWQgKnQgPSBhcmc7CisJdW5zaWduZWQgbG9uZyBwYXNzID0gMDsKKwl1bnNpZ25lZCBsb25nIG1pc3MgPSAwOworCWludCBlcnIgPSAwOworCisJd2hpbGUgKCFlcnIgJiYgIWt0aHJlYWRfc2hvdWxkX3N0b3AoKSkgeworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmMSwgKmYyOworCQlzdHJ1Y3Qgc2ltcGxlX2NiIGNiOworCisJCWYxID0gbW9ja19mZW5jZSgpOworCQlpZiAoIWYxKSB7CisJCQllcnIgPSAtRU5PTUVNOworCQkJYnJlYWs7CisJCX0KKworCQlyY3VfYXNzaWduX3BvaW50ZXIodC0+ZmVuY2VzW3QtPmlkXSwgZjEpOworCQlzbXBfd21iKCk7CisKKwkJcmN1X3JlYWRfbG9jaygpOworCQlkbyB7CisJCQlmMiA9IGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoJnQtPmZlbmNlc1shdC0+aWRdKTsKKwkJfSB3aGlsZSAoIWYyICYmICFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpOworCQlyY3VfcmVhZF91bmxvY2soKTsKKworCQlpZiAodC0+YmVmb3JlKQorCQkJZG1hX2ZlbmNlX3NpZ25hbChmMSk7CisKKwkJc21wX3N0b3JlX21iKGNiLnNlZW4sIGZhbHNlKTsKKwkJaWYgKCFmMiB8fCBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGYyLCAmY2IuY2IsIHNpbXBsZV9jYWxsYmFjaykpCisJCQltaXNzKyssIGNiLnNlZW4gPSB0cnVlOworCisJCWlmICghdC0+YmVmb3JlKQorCQkJZG1hX2ZlbmNlX3NpZ25hbChmMSk7CisKKwkJaWYgKCFjYi5zZWVuKSB7CisJCQlkbWFfZmVuY2Vfd2FpdChmMiwgZmFsc2UpOworCQkJX193YWl0X2Zvcl9jYWxsYmFja3MoZjIpOworCQl9CisKKwkJaWYgKCFSRUFEX09OQ0UoY2Iuc2VlbikpIHsKKwkJCXByX2VycigiQ2FsbGJhY2sgbm90IHNlZW4gb24gdGhyZWFkICVkLCBwYXNzICVsdSAoJWx1IG1pc3NlcyksIHNpZ25hbGluZyAlcyBhZGRfY2FsbGJhY2s7IGZlbmNlIHNpZ25hbGVkPyAlc1xuIiwKKwkJCSAgICAgICB0LT5pZCwgcGFzcywgbWlzcywKKwkJCSAgICAgICB0LT5iZWZvcmUgPyAiYmVmb3JlIiA6ICJhZnRlciIsCisJCQkgICAgICAgZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGYyKSA/ICJ5ZXMiIDogIm5vIik7CisJCQllcnIgPSAtRUlOVkFMOworCQl9CisKKwkJZG1hX2ZlbmNlX3B1dChmMik7CisKKwkJcmN1X2Fzc2lnbl9wb2ludGVyKHQtPmZlbmNlc1t0LT5pZF0sIE5VTEwpOworCQlzbXBfd21iKCk7CisKKwkJZG1hX2ZlbmNlX3B1dChmMSk7CisKKwkJcGFzcysrOworCX0KKworCXByX2luZm8oIiVzWyVkXSBjb21wbGV0ZWQgJWx1IHBhc3NlcywgJWx1IG1pc3Nlc1xuIiwKKwkJX19mdW5jX18sIHQtPmlkLCBwYXNzLCBtaXNzKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IHJhY2Vfc2lnbmFsX2NhbGxiYWNrKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgZG1hX2ZlbmNlIF9fcmN1ICpmWzJdID0ge307CisJaW50IHJldCA9IDA7CisJaW50IHBhc3M7CisKKwlmb3IgKHBhc3MgPSAwOyAhcmV0ICYmIHBhc3MgPD0gMTsgcGFzcysrKSB7CisJCXN0cnVjdCByYWNlX3RocmVhZCB0WzJdOworCQlpbnQgaTsKKworCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0KTsgaSsrKSB7CisJCQl0W2ldLmZlbmNlcyA9IGY7CisJCQl0W2ldLmlkID0gaTsKKwkJCXRbaV0uYmVmb3JlID0gcGFzczsKKwkJCXRbaV0udGFzayA9IGt0aHJlYWRfcnVuKHRocmVhZF9zaWduYWxfY2FsbGJhY2ssICZ0W2ldLAorCQkJCQkJImRtYS1mZW5jZTolZCIsIGkpOworCQkJZ2V0X3Rhc2tfc3RydWN0KHRbaV0udGFzayk7CisJCX0KKworCQltc2xlZXAoNTApOworCisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHQpOyBpKyspIHsKKwkJCWludCBlcnI7CisKKwkJCWVyciA9IGt0aHJlYWRfc3RvcCh0W2ldLnRhc2spOworCQkJaWYgKGVyciAmJiAhcmV0KQorCQkJCXJldCA9IGVycjsKKworCQkJcHV0X3Rhc2tfc3RydWN0KHRbaV0udGFzayk7CisJCX0KKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQgZG1hX2ZlbmNlKHZvaWQpCit7CisJc3RhdGljIGNvbnN0IHN0cnVjdCBzdWJ0ZXN0IHRlc3RzW10gPSB7CisJCVNVQlRFU1Qoc2FuaXR5Y2hlY2spLAorCQlTVUJURVNUKHRlc3Rfc2lnbmFsaW5nKSwKKwkJU1VCVEVTVCh0ZXN0X2FkZF9jYWxsYmFjayksCisJCVNVQlRFU1QodGVzdF9sYXRlX2FkZF9jYWxsYmFjayksCisJCVNVQlRFU1QodGVzdF9ybV9jYWxsYmFjayksCisJCVNVQlRFU1QodGVzdF9sYXRlX3JtX2NhbGxiYWNrKSwKKwkJU1VCVEVTVCh0ZXN0X3N0YXR1cyksCisJCVNVQlRFU1QodGVzdF9lcnJvciksCisJCVNVQlRFU1QodGVzdF93YWl0KSwKKwkJU1VCVEVTVCh0ZXN0X3dhaXRfdGltZW91dCksCisJCVNVQlRFU1QodGVzdF9zdHViKSwKKwkJU1VCVEVTVChyYWNlX3NpZ25hbF9jYWxsYmFjayksCisJfTsKKwlpbnQgcmV0OworCisJcHJfaW5mbygic2l6ZW9mKGRtYV9mZW5jZSk9JXp1XG4iLCBzaXplb2Yoc3RydWN0IGRtYV9mZW5jZSkpOworCisJc2xhYl9mZW5jZXMgPSBLTUVNX0NBQ0hFKG1vY2tfZmVuY2UsCisJCQkJIFNMQUJfVFlQRVNBRkVfQllfUkNVIHwKKwkJCQkgU0xBQl9IV0NBQ0hFX0FMSUdOKTsKKwlpZiAoIXNsYWJfZmVuY2VzKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJldCA9IHN1YnRlc3RzKHRlc3RzLCBOVUxMKTsKKworCWttZW1fY2FjaGVfZGVzdHJveShzbGFiX2ZlbmNlcyk7CisKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3N3X3N5bmMuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9zd19zeW5jLmMKaW5kZXggMDUxZjZjMi4uNjcxM2NmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL3N3X3N5bmMuYworKysgYi9kcml2ZXJzL2RtYS1idWYvc3dfc3luYy5jCkBAIC0xMzIsMTcgKzEzMiwxNCBAQCBzdGF0aWMgdm9pZCB0aW1lbGluZV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBzeW5jX3B0ICpwdCA9IGRtYV9mZW5jZV90b19zeW5jX3B0KGZlbmNlKTsKIAlzdHJ1Y3Qgc3luY190aW1lbGluZSAqcGFyZW50ID0gZG1hX2ZlbmNlX3BhcmVudChmZW5jZSk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAorCXNwaW5fbG9ja19pcnFzYXZlKGZlbmNlLT5sb2NrLCBmbGFncyk7CiAJaWYgKCFsaXN0X2VtcHR5KCZwdC0+bGluaykpIHsKLQkJdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCQlzcGluX2xvY2tfaXJxc2F2ZShmZW5jZS0+bG9jaywgZmxhZ3MpOwotCQlpZiAoIWxpc3RfZW1wdHkoJnB0LT5saW5rKSkgewotCQkJbGlzdF9kZWwoJnB0LT5saW5rKTsKLQkJCXJiX2VyYXNlKCZwdC0+bm9kZSwgJnBhcmVudC0+cHRfdHJlZSk7Ci0JCX0KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShmZW5jZS0+bG9jaywgZmxhZ3MpOworCQlsaXN0X2RlbCgmcHQtPmxpbmspOworCQlyYl9lcmFzZSgmcHQtPm5vZGUsICZwYXJlbnQtPnB0X3RyZWUpOwogCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKGZlbmNlLT5sb2NrLCBmbGFncyk7CiAKIAlzeW5jX3RpbWVsaW5lX3B1dChwYXJlbnQpOwogCWRtYV9mZW5jZV9mcmVlKGZlbmNlKTsKQEAgLTI2NSw3ICsyNjIsOCBAQCBzdGF0aWMgc3RydWN0IHN5bmNfcHQgKnN5bmNfcHRfY3JlYXRlKHN0cnVjdCBzeW5jX3RpbWVsaW5lICpvYmosCiAJCQkJcCA9ICZwYXJlbnQtPnJiX2xlZnQ7CiAJCQl9IGVsc2UgewogCQkJCWlmIChkbWFfZmVuY2VfZ2V0X3JjdSgmb3RoZXItPmJhc2UpKSB7Ci0JCQkJCWRtYV9mZW5jZV9wdXQoJnB0LT5iYXNlKTsKKwkJCQkJc3luY190aW1lbGluZV9wdXQob2JqKTsKKwkJCQkJa2ZyZWUocHQpOwogCQkJCQlwdCA9IG90aGVyOwogCQkJCQlnb3RvIHVubG9jazsKIAkJCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvc3luY19maWxlLmMgYi9kcml2ZXJzL2RtYS1idWYvc3luY19maWxlLmMKaW5kZXggZWU0ZDFhOS4uMjVjNWMwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL3N5bmNfZmlsZS5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2ZpbGUuYwpAQCAtNDE5LDcgKzQxOSw3IEBAIHN0YXRpYyBsb25nIHN5bmNfZmlsZV9pb2N0bF9mZW5jZV9pbmZvKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAkgKiBpbmZvLT5udW1fZmVuY2VzLgogCSAqLwogCWlmICghaW5mby5udW1fZmVuY2VzKSB7Ci0JCWluZm8uc3RhdHVzID0gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHN5bmNfZmlsZS0+ZmVuY2UpOworCQlpbmZvLnN0YXR1cyA9IGRtYV9mZW5jZV9nZXRfc3RhdHVzKHN5bmNfZmlsZS0+ZmVuY2UpOwogCQlnb3RvIG5vX2ZlbmNlczsKIAl9IGVsc2UgewogCQlpbmZvLnN0YXR1cyA9IDE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9LY29uZmlnIGIvZHJpdmVycy9kbWEvS2NvbmZpZwppbmRleCA3YzUxMWUzLi43YWY4NzRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZG1hL0tjb25maWcKQEAgLTEzNywxMiArMTM3LDYgQEAKIAlzZWxlY3QgRE1BX0VOR0lORQogCXNlbGVjdCBETUFfVklSVFVBTF9DSEFOTkVMUwogCi1jb25maWcgRE1BX0paNDc0MAotCXRyaXN0YXRlICJKWjQ3NDAgRE1BIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBNQUNIX0paNDc0MCB8fCBDT01QSUxFX1RFU1QKLQlzZWxlY3QgRE1BX0VOR0lORQotCXNlbGVjdCBETUFfVklSVFVBTF9DSEFOTkVMUwotCiBjb25maWcgRE1BX0paNDc4MAogCXRyaXN0YXRlICJKWjQ3ODAgRE1BIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBNSVBTIHx8IENPTVBJTEVfVEVTVApkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvTWFrZWZpbGUgYi9kcml2ZXJzL2RtYS9NYWtlZmlsZQppbmRleCA1YmRkZjZmLi5mNWNlODY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2RtYS9NYWtlZmlsZQpAQCAtMjIsNyArMjIsNiBAQAogb2JqLSQoQ09ORklHX0JDTV9TQkFfUkFJRCkgKz0gYmNtLXNiYS1yYWlkLm8KIG9iai0kKENPTkZJR19DT0g5MDEzMTgpICs9IGNvaDkwMTMxOC5vIGNvaDkwMTMxOF9sbGkubwogb2JqLSQoQ09ORklHX0RNQV9CQ00yODM1KSArPSBiY20yODM1LWRtYS5vCi1vYmotJChDT05GSUdfRE1BX0paNDc0MCkgKz0gZG1hLWp6NDc0MC5vCiBvYmotJChDT05GSUdfRE1BX0paNDc4MCkgKz0gZG1hLWp6NDc4MC5vCiBvYmotJChDT05GSUdfRE1BX1NBMTFYMCkgKz0gc2ExMXgwLWRtYS5vCiBvYmotJChDT05GSUdfRE1BX1NVTjRJKSArPSBzdW40aS1kbWEubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvZG1hLWp6NDc0MC5jIGIvZHJpdmVycy9kbWEvZG1hLWp6NDc0MC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOWM2NzZjLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZG1hL2RtYS1qejQ3NDAuYworKysgL2Rldi9udWxsCkBAIC0xLDYyMyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTMsIExhcnMtUGV0ZXIgQ2xhdXNlbiA8bGFyc0BtZXRhZm9vLmRlPgotICogIEpaNDc0MCBETUFDIHN1cHBvcnQKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZG1hZW5naW5lLmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbGlzdC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgotI2luY2x1ZGUgPGxpbnV4L2lycS5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgotCi0jaW5jbHVkZSAidmlydC1kbWEuaCIKLQotI2RlZmluZSBKWl9ETUFfTlJfQ0hBTlMgNgotCi0jZGVmaW5lIEpaX1JFR19ETUFfU1JDX0FERFIoeCkJCSgweDAwICsgKHgpICogMHgyMCkKLSNkZWZpbmUgSlpfUkVHX0RNQV9EU1RfQUREUih4KQkJKDB4MDQgKyAoeCkgKiAweDIwKQotI2RlZmluZSBKWl9SRUdfRE1BX1RSQU5TRkVSX0NPVU5UKHgpCSgweDA4ICsgKHgpICogMHgyMCkKLSNkZWZpbmUgSlpfUkVHX0RNQV9SRVFfVFlQRSh4KQkJKDB4MEMgKyAoeCkgKiAweDIwKQotI2RlZmluZSBKWl9SRUdfRE1BX1NUQVRVU19DVFJMKHgpCSgweDEwICsgKHgpICogMHgyMCkKLSNkZWZpbmUgSlpfUkVHX0RNQV9DTUQoeCkJCSgweDE0ICsgKHgpICogMHgyMCkKLSNkZWZpbmUgSlpfUkVHX0RNQV9ERVNDX0FERFIoeCkJCSgweDE4ICsgKHgpICogMHgyMCkKLQotI2RlZmluZSBKWl9SRUdfRE1BX0NUUkwJCQkweDMwMAotI2RlZmluZSBKWl9SRUdfRE1BX0lSUQkJCTB4MzA0Ci0jZGVmaW5lIEpaX1JFR19ETUFfRE9PUkJFTEwJCTB4MzA4Ci0jZGVmaW5lIEpaX1JFR19ETUFfRE9PUkJFTExfU0VUCQkweDMwQwotCi0jZGVmaW5lIEpaX0RNQV9TVEFUVVNfQ1RSTF9OT19ERVNDCQlCSVQoMzEpCi0jZGVmaW5lIEpaX0RNQV9TVEFUVVNfQ1RSTF9ERVNDX0lOVgkJQklUKDYpCi0jZGVmaW5lIEpaX0RNQV9TVEFUVVNfQ1RSTF9BRERSX0VSUgkJQklUKDQpCi0jZGVmaW5lIEpaX0RNQV9TVEFUVVNfQ1RSTF9UUkFOU0ZFUl9ET05FCUJJVCgzKQotI2RlZmluZSBKWl9ETUFfU1RBVFVTX0NUUkxfSEFMVAkJCUJJVCgyKQotI2RlZmluZSBKWl9ETUFfU1RBVFVTX0NUUkxfQ09VTlRfVEVSTUlOQVRFCUJJVCgxKQotI2RlZmluZSBKWl9ETUFfU1RBVFVTX0NUUkxfRU5BQkxFCQlCSVQoMCkKLQotI2RlZmluZSBKWl9ETUFfQ01EX1NSQ19JTkMJCQlCSVQoMjMpCi0jZGVmaW5lIEpaX0RNQV9DTURfRFNUX0lOQwkJCUJJVCgyMikKLSNkZWZpbmUgSlpfRE1BX0NNRF9SRElMX01BU0sJCQkoMHhmIDw8IDE2KQotI2RlZmluZSBKWl9ETUFfQ01EX1NSQ19XSURUSF9NQVNLCQkoMHgzIDw8IDE0KQotI2RlZmluZSBKWl9ETUFfQ01EX0RTVF9XSURUSF9NQVNLCQkoMHgzIDw8IDEyKQotI2RlZmluZSBKWl9ETUFfQ01EX0lOVEVSVkFMX0xFTkdUSF9NQVNLCQkoMHg3IDw8IDgpCi0jZGVmaW5lIEpaX0RNQV9DTURfQkxPQ0tfTU9ERQkJCUJJVCg3KQotI2RlZmluZSBKWl9ETUFfQ01EX0RFU0NfVkFMSUQJCQlCSVQoNCkKLSNkZWZpbmUgSlpfRE1BX0NNRF9ERVNDX1ZBTElEX01PREUJCUJJVCgzKQotI2RlZmluZSBKWl9ETUFfQ01EX1ZBTElEX0lSUV9FTkFCTEUJCUJJVCgyKQotI2RlZmluZSBKWl9ETUFfQ01EX1RSQU5TRkVSX0lSUV9FTkFCTEUJCUJJVCgxKQotI2RlZmluZSBKWl9ETUFfQ01EX0xJTktfRU5BQkxFCQkJQklUKDApCi0KLSNkZWZpbmUgSlpfRE1BX0NNRF9GTEFHU19PRkZTRVQgMjIKLSNkZWZpbmUgSlpfRE1BX0NNRF9SRElMX09GRlNFVCAxNgotI2RlZmluZSBKWl9ETUFfQ01EX1NSQ19XSURUSF9PRkZTRVQgMTQKLSNkZWZpbmUgSlpfRE1BX0NNRF9EU1RfV0lEVEhfT0ZGU0VUIDEyCi0jZGVmaW5lIEpaX0RNQV9DTURfVFJBTlNGRVJfU0laRV9PRkZTRVQgOAotI2RlZmluZSBKWl9ETUFfQ01EX01PREVfT0ZGU0VUIDcKLQotI2RlZmluZSBKWl9ETUFfQ1RSTF9QUklPUklUWV9NQVNLCQkoMHgzIDw8IDgpCi0jZGVmaW5lIEpaX0RNQV9DVFJMX0hBTFQJCQlCSVQoMykKLSNkZWZpbmUgSlpfRE1BX0NUUkxfQUREUkVTU19FUlJPUgkJQklUKDIpCi0jZGVmaW5lIEpaX0RNQV9DVFJMX0VOQUJMRQkJCUJJVCgwKQotCi1lbnVtIGp6NDc0MF9kbWFfd2lkdGggewotCUpaNDc0MF9ETUFfV0lEVEhfMzJCSVQJPSAwLAotCUpaNDc0MF9ETUFfV0lEVEhfOEJJVAk9IDEsCi0JSlo0NzQwX0RNQV9XSURUSF8xNkJJVAk9IDIsCi19OwotCi1lbnVtIGp6NDc0MF9kbWFfdHJhbnNmZXJfc2l6ZSB7Ci0JSlo0NzQwX0RNQV9UUkFOU0ZFUl9TSVpFXzRCWVRFCT0gMCwKLQlKWjQ3NDBfRE1BX1RSQU5TRkVSX1NJWkVfMUJZVEUJPSAxLAotCUpaNDc0MF9ETUFfVFJBTlNGRVJfU0laRV8yQllURQk9IDIsCi0JSlo0NzQwX0RNQV9UUkFOU0ZFUl9TSVpFXzE2QllURSA9IDMsCi0JSlo0NzQwX0RNQV9UUkFOU0ZFUl9TSVpFXzMyQllURSA9IDQsCi19OwotCi1lbnVtIGp6NDc0MF9kbWFfZmxhZ3MgewotCUpaNDc0MF9ETUFfU1JDX0FVVE9JTkMgPSAweDIsCi0JSlo0NzQwX0RNQV9EU1RfQVVUT0lOQyA9IDB4MSwKLX07Ci0KLWVudW0gano0NzQwX2RtYV9tb2RlIHsKLQlKWjQ3NDBfRE1BX01PREVfU0lOR0xFCT0gMCwKLQlKWjQ3NDBfRE1BX01PREVfQkxPQ0sJPSAxLAotfTsKLQotc3RydWN0IGp6NDc0MF9kbWFfc2cgewotCWRtYV9hZGRyX3QgYWRkcjsKLQl1bnNpZ25lZCBpbnQgbGVuOwotfTsKLQotc3RydWN0IGp6NDc0MF9kbWFfZGVzYyB7Ci0Jc3RydWN0IHZpcnRfZG1hX2Rlc2MgdmRlc2M7Ci0KLQllbnVtIGRtYV90cmFuc2Zlcl9kaXJlY3Rpb24gZGlyZWN0aW9uOwotCWJvb2wgY3ljbGljOwotCi0JdW5zaWduZWQgaW50IG51bV9zZ3M7Ci0Jc3RydWN0IGp6NDc0MF9kbWFfc2cgc2dbXTsKLX07Ci0KLXN0cnVjdCBqejQ3NDBfZG1hZW5naW5lX2NoYW4gewotCXN0cnVjdCB2aXJ0X2RtYV9jaGFuIHZjaGFuOwotCXVuc2lnbmVkIGludCBpZDsKLQlzdHJ1Y3QgZG1hX3NsYXZlX2NvbmZpZyBjb25maWc7Ci0KLQlkbWFfYWRkcl90IGZpZm9fYWRkcjsKLQl1bnNpZ25lZCBpbnQgdHJhbnNmZXJfc2hpZnQ7Ci0KLQlzdHJ1Y3Qgano0NzQwX2RtYV9kZXNjICpkZXNjOwotCXVuc2lnbmVkIGludCBuZXh0X3NnOwotfTsKLQotc3RydWN0IGp6NDc0MF9kbWFfZGV2IHsKLQlzdHJ1Y3QgZG1hX2RldmljZSBkZGV2OwotCXZvaWQgX19pb21lbSAqYmFzZTsKLQlzdHJ1Y3QgY2xrICpjbGs7Ci0KLQlzdHJ1Y3Qgano0NzQwX2RtYWVuZ2luZV9jaGFuIGNoYW5bSlpfRE1BX05SX0NIQU5TXTsKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgano0NzQwX2RtYV9kZXYgKmp6NDc0MF9kbWFfY2hhbl9nZXRfZGV2KAotCXN0cnVjdCBqejQ3NDBfZG1hZW5naW5lX2NoYW4gKmNoYW4pCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihjaGFuLT52Y2hhbi5jaGFuLmRldmljZSwgc3RydWN0IGp6NDc0MF9kbWFfZGV2LAotCQlkZGV2KTsKLX0KLQotc3RhdGljIHN0cnVjdCBqejQ3NDBfZG1hZW5naW5lX2NoYW4gKnRvX2p6NDc0MF9kbWFfY2hhbihzdHJ1Y3QgZG1hX2NoYW4gKmMpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihjLCBzdHJ1Y3Qgano0NzQwX2RtYWVuZ2luZV9jaGFuLCB2Y2hhbi5jaGFuKTsKLX0KLQotc3RhdGljIHN0cnVjdCBqejQ3NDBfZG1hX2Rlc2MgKnRvX2p6NDc0MF9kbWFfZGVzYyhzdHJ1Y3QgdmlydF9kbWFfZGVzYyAqdmRlc2MpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZih2ZGVzYywgc3RydWN0IGp6NDc0MF9kbWFfZGVzYywgdmRlc2MpOwotfQotCi1zdGF0aWMgaW5saW5lIHVpbnQzMl90IGp6NDc0MF9kbWFfcmVhZChzdHJ1Y3Qgano0NzQwX2RtYV9kZXYgKmRtYWRldiwKLQl1bnNpZ25lZCBpbnQgcmVnKQotewotCXJldHVybiByZWFkbChkbWFkZXYtPmJhc2UgKyByZWcpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgano0NzQwX2RtYV93cml0ZShzdHJ1Y3Qgano0NzQwX2RtYV9kZXYgKmRtYWRldiwKLQl1bnNpZ25lZCByZWcsIHVpbnQzMl90IHZhbCkKLXsKLQl3cml0ZWwodmFsLCBkbWFkZXYtPmJhc2UgKyByZWcpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgano0NzQwX2RtYV93cml0ZV9tYXNrKHN0cnVjdCBqejQ3NDBfZG1hX2RldiAqZG1hZGV2LAotCXVuc2lnbmVkIGludCByZWcsIHVpbnQzMl90IHZhbCwgdWludDMyX3QgbWFzaykKLXsKLQl1aW50MzJfdCB0bXA7Ci0KLQl0bXAgPSBqejQ3NDBfZG1hX3JlYWQoZG1hZGV2LCByZWcpOwotCXRtcCAmPSB+bWFzazsKLQl0bXAgfD0gdmFsOwotCWp6NDc0MF9kbWFfd3JpdGUoZG1hZGV2LCByZWcsIHRtcCk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgano0NzQwX2RtYV9kZXNjICpqejQ3NDBfZG1hX2FsbG9jX2Rlc2ModW5zaWduZWQgaW50IG51bV9zZ3MpCi17Ci0JcmV0dXJuIGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBqejQ3NDBfZG1hX2Rlc2MpICsKLQkJc2l6ZW9mKHN0cnVjdCBqejQ3NDBfZG1hX3NnKSAqIG51bV9zZ3MsIEdGUF9BVE9NSUMpOwotfQotCi1zdGF0aWMgZW51bSBqejQ3NDBfZG1hX3dpZHRoIGp6NDc0MF9kbWFfd2lkdGgoZW51bSBkbWFfc2xhdmVfYnVzd2lkdGggd2lkdGgpCi17Ci0Jc3dpdGNoICh3aWR0aCkgewotCWNhc2UgRE1BX1NMQVZFX0JVU1dJRFRIXzFfQllURToKLQkJcmV0dXJuIEpaNDc0MF9ETUFfV0lEVEhfOEJJVDsKLQljYXNlIERNQV9TTEFWRV9CVVNXSURUSF8yX0JZVEVTOgotCQlyZXR1cm4gSlo0NzQwX0RNQV9XSURUSF8xNkJJVDsKLQljYXNlIERNQV9TTEFWRV9CVVNXSURUSF80X0JZVEVTOgotCQlyZXR1cm4gSlo0NzQwX0RNQV9XSURUSF8zMkJJVDsKLQlkZWZhdWx0OgotCQlyZXR1cm4gSlo0NzQwX0RNQV9XSURUSF8zMkJJVDsKLQl9Ci19Ci0KLXN0YXRpYyBlbnVtIGp6NDc0MF9kbWFfdHJhbnNmZXJfc2l6ZSBqejQ3NDBfZG1hX21heGJ1cnN0KHUzMiBtYXhidXJzdCkKLXsKLQlpZiAobWF4YnVyc3QgPD0gMSkKLQkJcmV0dXJuIEpaNDc0MF9ETUFfVFJBTlNGRVJfU0laRV8xQllURTsKLQllbHNlIGlmIChtYXhidXJzdCA8PSAzKQotCQlyZXR1cm4gSlo0NzQwX0RNQV9UUkFOU0ZFUl9TSVpFXzJCWVRFOwotCWVsc2UgaWYgKG1heGJ1cnN0IDw9IDE1KQotCQlyZXR1cm4gSlo0NzQwX0RNQV9UUkFOU0ZFUl9TSVpFXzRCWVRFOwotCWVsc2UgaWYgKG1heGJ1cnN0IDw9IDMxKQotCQlyZXR1cm4gSlo0NzQwX0RNQV9UUkFOU0ZFUl9TSVpFXzE2QllURTsKLQotCXJldHVybiBKWjQ3NDBfRE1BX1RSQU5TRkVSX1NJWkVfMzJCWVRFOwotfQotCi1zdGF0aWMgaW50IGp6NDc0MF9kbWFfc2xhdmVfY29uZmlnX3dyaXRlKHN0cnVjdCBkbWFfY2hhbiAqYywKLQkJCQkgICBzdHJ1Y3QgZG1hX3NsYXZlX2NvbmZpZyAqY29uZmlnLAotCQkJCSAgIGVudW0gZG1hX3RyYW5zZmVyX2RpcmVjdGlvbiBkaXJlY3Rpb24pCi17Ci0Jc3RydWN0IGp6NDc0MF9kbWFlbmdpbmVfY2hhbiAqY2hhbiA9IHRvX2p6NDc0MF9kbWFfY2hhbihjKTsKLQlzdHJ1Y3Qgano0NzQwX2RtYV9kZXYgKmRtYWRldiA9IGp6NDc0MF9kbWFfY2hhbl9nZXRfZGV2KGNoYW4pOwotCWVudW0gano0NzQwX2RtYV93aWR0aCBzcmNfd2lkdGg7Ci0JZW51bSBqejQ3NDBfZG1hX3dpZHRoIGRzdF93aWR0aDsKLQllbnVtIGp6NDc0MF9kbWFfdHJhbnNmZXJfc2l6ZSB0cmFuc2Zlcl9zaXplOwotCWVudW0gano0NzQwX2RtYV9mbGFncyBmbGFnczsKLQl1aW50MzJfdCBjbWQ7Ci0KLQlzd2l0Y2ggKGRpcmVjdGlvbikgewotCWNhc2UgRE1BX01FTV9UT19ERVY6Ci0JCWZsYWdzID0gSlo0NzQwX0RNQV9TUkNfQVVUT0lOQzsKLQkJdHJhbnNmZXJfc2l6ZSA9IGp6NDc0MF9kbWFfbWF4YnVyc3QoY29uZmlnLT5kc3RfbWF4YnVyc3QpOwotCQljaGFuLT5maWZvX2FkZHIgPSBjb25maWctPmRzdF9hZGRyOwotCQlicmVhazsKLQljYXNlIERNQV9ERVZfVE9fTUVNOgotCQlmbGFncyA9IEpaNDc0MF9ETUFfRFNUX0FVVE9JTkM7Ci0JCXRyYW5zZmVyX3NpemUgPSBqejQ3NDBfZG1hX21heGJ1cnN0KGNvbmZpZy0+c3JjX21heGJ1cnN0KTsKLQkJY2hhbi0+Zmlmb19hZGRyID0gY29uZmlnLT5zcmNfYWRkcjsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0Jc3JjX3dpZHRoID0gano0NzQwX2RtYV93aWR0aChjb25maWctPnNyY19hZGRyX3dpZHRoKTsKLQlkc3Rfd2lkdGggPSBqejQ3NDBfZG1hX3dpZHRoKGNvbmZpZy0+ZHN0X2FkZHJfd2lkdGgpOwotCi0Jc3dpdGNoICh0cmFuc2Zlcl9zaXplKSB7Ci0JY2FzZSBKWjQ3NDBfRE1BX1RSQU5TRkVSX1NJWkVfMkJZVEU6Ci0JCWNoYW4tPnRyYW5zZmVyX3NoaWZ0ID0gMTsKLQkJYnJlYWs7Ci0JY2FzZSBKWjQ3NDBfRE1BX1RSQU5TRkVSX1NJWkVfNEJZVEU6Ci0JCWNoYW4tPnRyYW5zZmVyX3NoaWZ0ID0gMjsKLQkJYnJlYWs7Ci0JY2FzZSBKWjQ3NDBfRE1BX1RSQU5TRkVSX1NJWkVfMTZCWVRFOgotCQljaGFuLT50cmFuc2Zlcl9zaGlmdCA9IDQ7Ci0JCWJyZWFrOwotCWNhc2UgSlo0NzQwX0RNQV9UUkFOU0ZFUl9TSVpFXzMyQllURToKLQkJY2hhbi0+dHJhbnNmZXJfc2hpZnQgPSA1OwotCQlicmVhazsKLQlkZWZhdWx0OgotCQljaGFuLT50cmFuc2Zlcl9zaGlmdCA9IDA7Ci0JCWJyZWFrOwotCX0KLQotCWNtZCA9IGZsYWdzIDw8IEpaX0RNQV9DTURfRkxBR1NfT0ZGU0VUOwotCWNtZCB8PSBzcmNfd2lkdGggPDwgSlpfRE1BX0NNRF9TUkNfV0lEVEhfT0ZGU0VUOwotCWNtZCB8PSBkc3Rfd2lkdGggPDwgSlpfRE1BX0NNRF9EU1RfV0lEVEhfT0ZGU0VUOwotCWNtZCB8PSB0cmFuc2Zlcl9zaXplIDw8IEpaX0RNQV9DTURfVFJBTlNGRVJfU0laRV9PRkZTRVQ7Ci0JY21kIHw9IEpaNDc0MF9ETUFfTU9ERV9TSU5HTEUgPDwgSlpfRE1BX0NNRF9NT0RFX09GRlNFVDsKLQljbWQgfD0gSlpfRE1BX0NNRF9UUkFOU0ZFUl9JUlFfRU5BQkxFOwotCi0Jano0NzQwX2RtYV93cml0ZShkbWFkZXYsIEpaX1JFR19ETUFfQ01EKGNoYW4tPmlkKSwgY21kKTsKLQlqejQ3NDBfZG1hX3dyaXRlKGRtYWRldiwgSlpfUkVHX0RNQV9TVEFUVVNfQ1RSTChjaGFuLT5pZCksIDApOwotCWp6NDc0MF9kbWFfd3JpdGUoZG1hZGV2LCBKWl9SRUdfRE1BX1JFUV9UWVBFKGNoYW4tPmlkKSwKLQkJY29uZmlnLT5zbGF2ZV9pZCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBqejQ3NDBfZG1hX3NsYXZlX2NvbmZpZyhzdHJ1Y3QgZG1hX2NoYW4gKmMsCi0JCQkJICAgc3RydWN0IGRtYV9zbGF2ZV9jb25maWcgKmNvbmZpZykKLXsKLQlzdHJ1Y3Qgano0NzQwX2RtYWVuZ2luZV9jaGFuICpjaGFuID0gdG9fano0NzQwX2RtYV9jaGFuKGMpOwotCi0JbWVtY3B5KCZjaGFuLT5jb25maWcsIGNvbmZpZywgc2l6ZW9mKCpjb25maWcpKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBqejQ3NDBfZG1hX3Rlcm1pbmF0ZV9hbGwoc3RydWN0IGRtYV9jaGFuICpjKQotewotCXN0cnVjdCBqejQ3NDBfZG1hZW5naW5lX2NoYW4gKmNoYW4gPSB0b19qejQ3NDBfZG1hX2NoYW4oYyk7Ci0Jc3RydWN0IGp6NDc0MF9kbWFfZGV2ICpkbWFkZXYgPSBqejQ3NDBfZG1hX2NoYW5fZ2V0X2RldihjaGFuKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCUxJU1RfSEVBRChoZWFkKTsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjaGFuLT52Y2hhbi5sb2NrLCBmbGFncyk7Ci0Jano0NzQwX2RtYV93cml0ZV9tYXNrKGRtYWRldiwgSlpfUkVHX0RNQV9TVEFUVVNfQ1RSTChjaGFuLT5pZCksIDAsCi0JCQlKWl9ETUFfU1RBVFVTX0NUUkxfRU5BQkxFKTsKLQljaGFuLT5kZXNjID0gTlVMTDsKLQl2Y2hhbl9nZXRfYWxsX2Rlc2NyaXB0b3JzKCZjaGFuLT52Y2hhbiwgJmhlYWQpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoYW4tPnZjaGFuLmxvY2ssIGZsYWdzKTsKLQotCXZjaGFuX2RtYV9kZXNjX2ZyZWVfbGlzdCgmY2hhbi0+dmNoYW4sICZoZWFkKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGp6NDc0MF9kbWFfc3RhcnRfdHJhbnNmZXIoc3RydWN0IGp6NDc0MF9kbWFlbmdpbmVfY2hhbiAqY2hhbikKLXsKLQlzdHJ1Y3Qgano0NzQwX2RtYV9kZXYgKmRtYWRldiA9IGp6NDc0MF9kbWFfY2hhbl9nZXRfZGV2KGNoYW4pOwotCWRtYV9hZGRyX3Qgc3JjX2FkZHIsIGRzdF9hZGRyOwotCXN0cnVjdCB2aXJ0X2RtYV9kZXNjICp2ZGVzYzsKLQlzdHJ1Y3Qgano0NzQwX2RtYV9zZyAqc2c7Ci0KLQlqejQ3NDBfZG1hX3dyaXRlX21hc2soZG1hZGV2LCBKWl9SRUdfRE1BX1NUQVRVU19DVFJMKGNoYW4tPmlkKSwgMCwKLQkJCUpaX0RNQV9TVEFUVVNfQ1RSTF9FTkFCTEUpOwotCi0JaWYgKCFjaGFuLT5kZXNjKSB7Ci0JCXZkZXNjID0gdmNoYW5fbmV4dF9kZXNjKCZjaGFuLT52Y2hhbik7Ci0JCWlmICghdmRlc2MpCi0JCQlyZXR1cm4gMDsKLQkJY2hhbi0+ZGVzYyA9IHRvX2p6NDc0MF9kbWFfZGVzYyh2ZGVzYyk7Ci0JCWNoYW4tPm5leHRfc2cgPSAwOwotCX0KLQotCWlmIChjaGFuLT5uZXh0X3NnID09IGNoYW4tPmRlc2MtPm51bV9zZ3MpCi0JCWNoYW4tPm5leHRfc2cgPSAwOwotCi0Jc2cgPSAmY2hhbi0+ZGVzYy0+c2dbY2hhbi0+bmV4dF9zZ107Ci0KLQlpZiAoY2hhbi0+ZGVzYy0+ZGlyZWN0aW9uID09IERNQV9NRU1fVE9fREVWKSB7Ci0JCXNyY19hZGRyID0gc2ctPmFkZHI7Ci0JCWRzdF9hZGRyID0gY2hhbi0+Zmlmb19hZGRyOwotCX0gZWxzZSB7Ci0JCXNyY19hZGRyID0gY2hhbi0+Zmlmb19hZGRyOwotCQlkc3RfYWRkciA9IHNnLT5hZGRyOwotCX0KLQlqejQ3NDBfZG1hX3dyaXRlKGRtYWRldiwgSlpfUkVHX0RNQV9TUkNfQUREUihjaGFuLT5pZCksIHNyY19hZGRyKTsKLQlqejQ3NDBfZG1hX3dyaXRlKGRtYWRldiwgSlpfUkVHX0RNQV9EU1RfQUREUihjaGFuLT5pZCksIGRzdF9hZGRyKTsKLQlqejQ3NDBfZG1hX3dyaXRlKGRtYWRldiwgSlpfUkVHX0RNQV9UUkFOU0ZFUl9DT1VOVChjaGFuLT5pZCksCi0JCQlzZy0+bGVuID4+IGNoYW4tPnRyYW5zZmVyX3NoaWZ0KTsKLQotCWNoYW4tPm5leHRfc2crKzsKLQotCWp6NDc0MF9kbWFfd3JpdGVfbWFzayhkbWFkZXYsIEpaX1JFR19ETUFfU1RBVFVTX0NUUkwoY2hhbi0+aWQpLAotCQkJSlpfRE1BX1NUQVRVU19DVFJMX05PX0RFU0MgfCBKWl9ETUFfU1RBVFVTX0NUUkxfRU5BQkxFLAotCQkJSlpfRE1BX1NUQVRVU19DVFJMX0hBTFQgfCBKWl9ETUFfU1RBVFVTX0NUUkxfTk9fREVTQyB8Ci0JCQlKWl9ETUFfU1RBVFVTX0NUUkxfRU5BQkxFKTsKLQotCWp6NDc0MF9kbWFfd3JpdGVfbWFzayhkbWFkZXYsIEpaX1JFR19ETUFfQ1RSTCwKLQkJCUpaX0RNQV9DVFJMX0VOQUJMRSwKLQkJCUpaX0RNQV9DVFJMX0hBTFQgfCBKWl9ETUFfQ1RSTF9FTkFCTEUpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGp6NDc0MF9kbWFfY2hhbl9pcnEoc3RydWN0IGp6NDc0MF9kbWFlbmdpbmVfY2hhbiAqY2hhbikKLXsKLQlzcGluX2xvY2soJmNoYW4tPnZjaGFuLmxvY2spOwotCWlmIChjaGFuLT5kZXNjKSB7Ci0JCWlmIChjaGFuLT5kZXNjLT5jeWNsaWMpIHsKLQkJCXZjaGFuX2N5Y2xpY19jYWxsYmFjaygmY2hhbi0+ZGVzYy0+dmRlc2MpOwotCQl9IGVsc2UgewotCQkJaWYgKGNoYW4tPm5leHRfc2cgPT0gY2hhbi0+ZGVzYy0+bnVtX3NncykgewotCQkJCWxpc3RfZGVsKCZjaGFuLT5kZXNjLT52ZGVzYy5ub2RlKTsKLQkJCQl2Y2hhbl9jb29raWVfY29tcGxldGUoJmNoYW4tPmRlc2MtPnZkZXNjKTsKLQkJCQljaGFuLT5kZXNjID0gTlVMTDsKLQkJCX0KLQkJfQotCX0KLQlqejQ3NDBfZG1hX3N0YXJ0X3RyYW5zZmVyKGNoYW4pOwotCXNwaW5fdW5sb2NrKCZjaGFuLT52Y2hhbi5sb2NrKTsKLX0KLQotc3RhdGljIGlycXJldHVybl90IGp6NDc0MF9kbWFfaXJxKGludCBpcnEsIHZvaWQgKmRldmlkKQotewotCXN0cnVjdCBqejQ3NDBfZG1hX2RldiAqZG1hZGV2ID0gZGV2aWQ7Ci0JdWludDMyX3QgaXJxX3N0YXR1czsKLQl1bnNpZ25lZCBpbnQgaTsKLQotCWlycV9zdGF0dXMgPSByZWFkbChkbWFkZXYtPmJhc2UgKyBKWl9SRUdfRE1BX0lSUSk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgNjsgKytpKSB7Ci0JCWlmIChpcnFfc3RhdHVzICYgKDEgPDwgaSkpIHsKLQkJCWp6NDc0MF9kbWFfd3JpdGVfbWFzayhkbWFkZXYsCi0JCQkJSlpfUkVHX0RNQV9TVEFUVVNfQ1RSTChpKSwgMCwKLQkJCQlKWl9ETUFfU1RBVFVTX0NUUkxfRU5BQkxFIHwKLQkJCQlKWl9ETUFfU1RBVFVTX0NUUkxfVFJBTlNGRVJfRE9ORSk7Ci0KLQkJCWp6NDc0MF9kbWFfY2hhbl9pcnEoJmRtYWRldi0+Y2hhbltpXSk7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyB2b2lkIGp6NDc0MF9kbWFfaXNzdWVfcGVuZGluZyhzdHJ1Y3QgZG1hX2NoYW4gKmMpCi17Ci0Jc3RydWN0IGp6NDc0MF9kbWFlbmdpbmVfY2hhbiAqY2hhbiA9IHRvX2p6NDc0MF9kbWFfY2hhbihjKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoYW4tPnZjaGFuLmxvY2ssIGZsYWdzKTsKLQlpZiAodmNoYW5faXNzdWVfcGVuZGluZygmY2hhbi0+dmNoYW4pICYmICFjaGFuLT5kZXNjKQotCQlqejQ3NDBfZG1hX3N0YXJ0X3RyYW5zZmVyKGNoYW4pOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoYW4tPnZjaGFuLmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqano0NzQwX2RtYV9wcmVwX3NsYXZlX3NnKAotCXN0cnVjdCBkbWFfY2hhbiAqYywgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2wsCi0JdW5zaWduZWQgaW50IHNnX2xlbiwgZW51bSBkbWFfdHJhbnNmZXJfZGlyZWN0aW9uIGRpcmVjdGlvbiwKLQl1bnNpZ25lZCBsb25nIGZsYWdzLCB2b2lkICpjb250ZXh0KQotewotCXN0cnVjdCBqejQ3NDBfZG1hZW5naW5lX2NoYW4gKmNoYW4gPSB0b19qejQ3NDBfZG1hX2NoYW4oYyk7Ci0Jc3RydWN0IGp6NDc0MF9kbWFfZGVzYyAqZGVzYzsKLQlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOwotCXVuc2lnbmVkIGludCBpOwotCi0JZGVzYyA9IGp6NDc0MF9kbWFfYWxsb2NfZGVzYyhzZ19sZW4pOwotCWlmICghZGVzYykKLQkJcmV0dXJuIE5VTEw7Ci0KLQlmb3JfZWFjaF9zZyhzZ2wsIHNnLCBzZ19sZW4sIGkpIHsKLQkJZGVzYy0+c2dbaV0uYWRkciA9IHNnX2RtYV9hZGRyZXNzKHNnKTsKLQkJZGVzYy0+c2dbaV0ubGVuID0gc2dfZG1hX2xlbihzZyk7Ci0JfQotCi0JZGVzYy0+bnVtX3NncyA9IHNnX2xlbjsKLQlkZXNjLT5kaXJlY3Rpb24gPSBkaXJlY3Rpb247Ci0JZGVzYy0+Y3ljbGljID0gZmFsc2U7Ci0KLQlqejQ3NDBfZG1hX3NsYXZlX2NvbmZpZ193cml0ZShjLCAmY2hhbi0+Y29uZmlnLCBkaXJlY3Rpb24pOwotCi0JcmV0dXJuIHZjaGFuX3R4X3ByZXAoJmNoYW4tPnZjaGFuLCAmZGVzYy0+dmRlc2MsIGZsYWdzKTsKLX0KLQotc3RhdGljIHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqano0NzQwX2RtYV9wcmVwX2RtYV9jeWNsaWMoCi0Jc3RydWN0IGRtYV9jaGFuICpjLCBkbWFfYWRkcl90IGJ1Zl9hZGRyLCBzaXplX3QgYnVmX2xlbiwKLQlzaXplX3QgcGVyaW9kX2xlbiwgZW51bSBkbWFfdHJhbnNmZXJfZGlyZWN0aW9uIGRpcmVjdGlvbiwKLQl1bnNpZ25lZCBsb25nIGZsYWdzKQotewotCXN0cnVjdCBqejQ3NDBfZG1hZW5naW5lX2NoYW4gKmNoYW4gPSB0b19qejQ3NDBfZG1hX2NoYW4oYyk7Ci0Jc3RydWN0IGp6NDc0MF9kbWFfZGVzYyAqZGVzYzsKLQl1bnNpZ25lZCBpbnQgbnVtX3BlcmlvZHMsIGk7Ci0KLQlpZiAoYnVmX2xlbiAlIHBlcmlvZF9sZW4pCi0JCXJldHVybiBOVUxMOwotCi0JbnVtX3BlcmlvZHMgPSBidWZfbGVuIC8gcGVyaW9kX2xlbjsKLQotCWRlc2MgPSBqejQ3NDBfZG1hX2FsbG9jX2Rlc2MobnVtX3BlcmlvZHMpOwotCWlmICghZGVzYykKLQkJcmV0dXJuIE5VTEw7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbnVtX3BlcmlvZHM7IGkrKykgewotCQlkZXNjLT5zZ1tpXS5hZGRyID0gYnVmX2FkZHI7Ci0JCWRlc2MtPnNnW2ldLmxlbiA9IHBlcmlvZF9sZW47Ci0JCWJ1Zl9hZGRyICs9IHBlcmlvZF9sZW47Ci0JfQotCi0JZGVzYy0+bnVtX3NncyA9IG51bV9wZXJpb2RzOwotCWRlc2MtPmRpcmVjdGlvbiA9IGRpcmVjdGlvbjsKLQlkZXNjLT5jeWNsaWMgPSB0cnVlOwotCi0Jano0NzQwX2RtYV9zbGF2ZV9jb25maWdfd3JpdGUoYywgJmNoYW4tPmNvbmZpZywgZGlyZWN0aW9uKTsKLQotCXJldHVybiB2Y2hhbl90eF9wcmVwKCZjaGFuLT52Y2hhbiwgJmRlc2MtPnZkZXNjLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyBzaXplX3Qgano0NzQwX2RtYV9kZXNjX3Jlc2lkdWUoc3RydWN0IGp6NDc0MF9kbWFlbmdpbmVfY2hhbiAqY2hhbiwKLQlzdHJ1Y3Qgano0NzQwX2RtYV9kZXNjICpkZXNjLCB1bnNpZ25lZCBpbnQgbmV4dF9zZykKLXsKLQlzdHJ1Y3Qgano0NzQwX2RtYV9kZXYgKmRtYWRldiA9IGp6NDc0MF9kbWFfY2hhbl9nZXRfZGV2KGNoYW4pOwotCXVuc2lnbmVkIGludCByZXNpZHVlLCBjb3VudDsKLQl1bnNpZ25lZCBpbnQgaTsKLQotCXJlc2lkdWUgPSAwOwotCi0JZm9yIChpID0gbmV4dF9zZzsgaSA8IGRlc2MtPm51bV9zZ3M7IGkrKykKLQkJcmVzaWR1ZSArPSBkZXNjLT5zZ1tpXS5sZW47Ci0KLQlpZiAobmV4dF9zZyAhPSAwKSB7Ci0JCWNvdW50ID0gano0NzQwX2RtYV9yZWFkKGRtYWRldiwKLQkJCUpaX1JFR19ETUFfVFJBTlNGRVJfQ09VTlQoY2hhbi0+aWQpKTsKLQkJcmVzaWR1ZSArPSBjb3VudCA8PCBjaGFuLT50cmFuc2Zlcl9zaGlmdDsKLQl9Ci0KLQlyZXR1cm4gcmVzaWR1ZTsKLX0KLQotc3RhdGljIGVudW0gZG1hX3N0YXR1cyBqejQ3NDBfZG1hX3R4X3N0YXR1cyhzdHJ1Y3QgZG1hX2NoYW4gKmMsCi0JZG1hX2Nvb2tpZV90IGNvb2tpZSwgc3RydWN0IGRtYV90eF9zdGF0ZSAqc3RhdGUpCi17Ci0Jc3RydWN0IGp6NDc0MF9kbWFlbmdpbmVfY2hhbiAqY2hhbiA9IHRvX2p6NDc0MF9kbWFfY2hhbihjKTsKLQlzdHJ1Y3QgdmlydF9kbWFfZGVzYyAqdmRlc2M7Ci0JZW51bSBkbWFfc3RhdHVzIHN0YXR1czsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3RhdHVzID0gZG1hX2Nvb2tpZV9zdGF0dXMoYywgY29va2llLCBzdGF0ZSk7Ci0JaWYgKHN0YXR1cyA9PSBETUFfQ09NUExFVEUgfHwgIXN0YXRlKQotCQlyZXR1cm4gc3RhdHVzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoYW4tPnZjaGFuLmxvY2ssIGZsYWdzKTsKLQl2ZGVzYyA9IHZjaGFuX2ZpbmRfZGVzYygmY2hhbi0+dmNoYW4sIGNvb2tpZSk7Ci0JaWYgKGNvb2tpZSA9PSBjaGFuLT5kZXNjLT52ZGVzYy50eC5jb29raWUpIHsKLQkJc3RhdGUtPnJlc2lkdWUgPSBqejQ3NDBfZG1hX2Rlc2NfcmVzaWR1ZShjaGFuLCBjaGFuLT5kZXNjLAotCQkJCWNoYW4tPm5leHRfc2cpOwotCX0gZWxzZSBpZiAodmRlc2MpIHsKLQkJc3RhdGUtPnJlc2lkdWUgPSBqejQ3NDBfZG1hX2Rlc2NfcmVzaWR1ZShjaGFuLAotCQkJCXRvX2p6NDc0MF9kbWFfZGVzYyh2ZGVzYyksIDApOwotCX0gZWxzZSB7Ci0JCXN0YXRlLT5yZXNpZHVlID0gMDsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hhbi0+dmNoYW4ubG9jaywgZmxhZ3MpOwotCi0JcmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdGljIHZvaWQgano0NzQwX2RtYV9mcmVlX2NoYW5fcmVzb3VyY2VzKHN0cnVjdCBkbWFfY2hhbiAqYykKLXsKLQl2Y2hhbl9mcmVlX2NoYW5fcmVzb3VyY2VzKHRvX3ZpcnRfY2hhbihjKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGp6NDc0MF9kbWFfZGVzY19mcmVlKHN0cnVjdCB2aXJ0X2RtYV9kZXNjICp2ZGVzYykKLXsKLQlrZnJlZShjb250YWluZXJfb2YodmRlc2MsIHN0cnVjdCBqejQ3NDBfZG1hX2Rlc2MsIHZkZXNjKSk7Ci19Ci0KLSNkZWZpbmUgSlo0NzQwX0RNQV9CVVNXSURUSFMgKEJJVChETUFfU0xBVkVfQlVTV0lEVEhfMV9CWVRFKSB8IFwKLQlCSVQoRE1BX1NMQVZFX0JVU1dJRFRIXzJfQllURVMpIHwgQklUKERNQV9TTEFWRV9CVVNXSURUSF80X0JZVEVTKSkKLQotc3RhdGljIGludCBqejQ3NDBfZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IGp6NDc0MF9kbWFlbmdpbmVfY2hhbiAqY2hhbjsKLQlzdHJ1Y3Qgano0NzQwX2RtYV9kZXYgKmRtYWRldjsKLQlzdHJ1Y3QgZG1hX2RldmljZSAqZGQ7Ci0JdW5zaWduZWQgaW50IGk7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0JaW50IHJldDsKLQlpbnQgaXJxOwotCi0JZG1hZGV2ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqZG1hZGV2KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFkbWFkZXYpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZGQgPSAmZG1hZGV2LT5kZGV2OwotCi0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlkbWFkZXYtPmJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKLQlpZiAoSVNfRVJSKGRtYWRldi0+YmFzZSkpCi0JCXJldHVybiBQVFJfRVJSKGRtYWRldi0+YmFzZSk7Ci0KLQlkbWFkZXYtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgImRtYSIpOwotCWlmIChJU19FUlIoZG1hZGV2LT5jbGspKQotCQlyZXR1cm4gUFRSX0VSUihkbWFkZXYtPmNsayk7Ci0KLQljbGtfcHJlcGFyZV9lbmFibGUoZG1hZGV2LT5jbGspOwotCi0JZG1hX2NhcF9zZXQoRE1BX1NMQVZFLCBkZC0+Y2FwX21hc2spOwotCWRtYV9jYXBfc2V0KERNQV9DWUNMSUMsIGRkLT5jYXBfbWFzayk7Ci0JZGQtPmRldmljZV9mcmVlX2NoYW5fcmVzb3VyY2VzID0gano0NzQwX2RtYV9mcmVlX2NoYW5fcmVzb3VyY2VzOwotCWRkLT5kZXZpY2VfdHhfc3RhdHVzID0gano0NzQwX2RtYV90eF9zdGF0dXM7Ci0JZGQtPmRldmljZV9pc3N1ZV9wZW5kaW5nID0gano0NzQwX2RtYV9pc3N1ZV9wZW5kaW5nOwotCWRkLT5kZXZpY2VfcHJlcF9zbGF2ZV9zZyA9IGp6NDc0MF9kbWFfcHJlcF9zbGF2ZV9zZzsKLQlkZC0+ZGV2aWNlX3ByZXBfZG1hX2N5Y2xpYyA9IGp6NDc0MF9kbWFfcHJlcF9kbWFfY3ljbGljOwotCWRkLT5kZXZpY2VfY29uZmlnID0gano0NzQwX2RtYV9zbGF2ZV9jb25maWc7Ci0JZGQtPmRldmljZV90ZXJtaW5hdGVfYWxsID0gano0NzQwX2RtYV90ZXJtaW5hdGVfYWxsOwotCWRkLT5zcmNfYWRkcl93aWR0aHMgPSBKWjQ3NDBfRE1BX0JVU1dJRFRIUzsKLQlkZC0+ZHN0X2FkZHJfd2lkdGhzID0gSlo0NzQwX0RNQV9CVVNXSURUSFM7Ci0JZGQtPmRpcmVjdGlvbnMgPSBCSVQoRE1BX0RFVl9UT19NRU0pIHwgQklUKERNQV9NRU1fVE9fREVWKTsKLQlkZC0+cmVzaWR1ZV9ncmFudWxhcml0eSA9IERNQV9SRVNJRFVFX0dSQU5VTEFSSVRZX0JVUlNUOwotCWRkLT5kZXYgPSAmcGRldi0+ZGV2OwotCUlOSVRfTElTVF9IRUFEKCZkZC0+Y2hhbm5lbHMpOwotCi0JZm9yIChpID0gMDsgaSA8IEpaX0RNQV9OUl9DSEFOUzsgaSsrKSB7Ci0JCWNoYW4gPSAmZG1hZGV2LT5jaGFuW2ldOwotCQljaGFuLT5pZCA9IGk7Ci0JCWNoYW4tPnZjaGFuLmRlc2NfZnJlZSA9IGp6NDc0MF9kbWFfZGVzY19mcmVlOwotCQl2Y2hhbl9pbml0KCZjaGFuLT52Y2hhbiwgZGQpOwotCX0KLQotCXJldCA9IGRtYV9hc3luY19kZXZpY2VfcmVnaXN0ZXIoZGQpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2NsazsKLQotCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JcmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBqejQ3NDBfZG1hX2lycSwgMCwgZGV2X25hbWUoJnBkZXYtPmRldiksIGRtYWRldik7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfdW5yZWdpc3RlcjsKLQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRtYWRldik7Ci0KLQlyZXR1cm4gMDsKLQotZXJyX3VucmVnaXN0ZXI6Ci0JZG1hX2FzeW5jX2RldmljZV91bnJlZ2lzdGVyKGRkKTsKLWVycl9jbGs6Ci0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRtYWRldi0+Y2xrKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBqejQ3NDBfY2xlYW51cF92Y2hhbihzdHJ1Y3QgZG1hX2RldmljZSAqZG1hZGV2KQotewotCXN0cnVjdCBqejQ3NDBfZG1hZW5naW5lX2NoYW4gKmNoYW4sICpfY2hhbjsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjaGFuLCBfY2hhbiwKLQkJCQkmZG1hZGV2LT5jaGFubmVscywgdmNoYW4uY2hhbi5kZXZpY2Vfbm9kZSkgewotCQlsaXN0X2RlbCgmY2hhbi0+dmNoYW4uY2hhbi5kZXZpY2Vfbm9kZSk7Ci0JCXRhc2tsZXRfa2lsbCgmY2hhbi0+dmNoYW4udGFzayk7Ci0JfQotfQotCi0KLXN0YXRpYyBpbnQgano0NzQwX2RtYV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlzdHJ1Y3Qgano0NzQwX2RtYV9kZXYgKmRtYWRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotCWludCBpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCi0JZnJlZV9pcnEoaXJxLCBkbWFkZXYpOwotCi0Jano0NzQwX2NsZWFudXBfdmNoYW4oJmRtYWRldi0+ZGRldik7Ci0JZG1hX2FzeW5jX2RldmljZV91bnJlZ2lzdGVyKCZkbWFkZXYtPmRkZXYpOwotCWNsa19kaXNhYmxlX3VucHJlcGFyZShkbWFkZXYtPmNsayk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgano0NzQwX2RtYV9kcml2ZXIgPSB7Ci0JLnByb2JlID0gano0NzQwX2RtYV9wcm9iZSwKLQkucmVtb3ZlID0gano0NzQwX2RtYV9yZW1vdmUsCi0JLmRyaXZlciA9IHsKLQkJLm5hbWUgPSAiano0NzQwLWRtYSIsCi0JfSwKLX07Ci1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGp6NDc0MF9kbWFfZHJpdmVyKTsKLQotTU9EVUxFX0FVVEhPUigiTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIkpaNDc0MCBETUEgZHJpdmVyIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvS2NvbmZpZyBiL2RyaXZlcnMvZWRhYy9LY29uZmlnCmluZGV4IDJhMjYwM2IuLjQxN2RhZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9LY29uZmlnCisrKyBiL2RyaXZlcnMvZWRhYy9LY29uZmlnCkBAIC00NjYsNiArNDY2LDEzIEBACiAJaGVscAogCSAgU3VwcG9ydCBmb3IgZXJyb3IgZGV0ZWN0aW9uIGFuZCBjb3JyZWN0aW9uIG9uIHRoZSBTaUZpdmUgU29Dcy4KIAorY29uZmlnIEVEQUNfQVJNQURBX1hQCisJYm9vbCAiTWFydmVsbCBBcm1hZGEgWFAgRERSIGFuZCBMMiBDYWNoZSBFQ0MiCisJZGVwZW5kcyBvbiBNQUNIX01WRUJVX1Y3CisJaGVscAorCSAgU3VwcG9ydCBmb3IgZXJyb3IgY29ycmVjdGlvbiBhbmQgZGV0ZWN0aW9uIG9uIHRoZSBNYXJ2ZWxsIEFyYW1hZGEgWFAKKwkgIEREUiBSQU0gYW5kIEwyIGNhY2hlIGNvbnRyb2xsZXJzLgorCiBjb25maWcgRURBQ19TWU5PUFNZUwogCXRyaXN0YXRlICJTeW5vcHN5cyBERFIgTWVtb3J5IENvbnRyb2xsZXIiCiAJZGVwZW5kcyBvbiBBUkNIX1pZTlEgfHwgQVJDSF9aWU5RTVAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9NYWtlZmlsZSBiL2RyaXZlcnMvZWRhYy9NYWtlZmlsZQppbmRleCBkMjY1ZmY5Li5kNzcyMDBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2VkYWMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9lZGFjL01ha2VmaWxlCkBAIC04MCw2ICs4MCw3IEBACiAKIG9iai0kKENPTkZJR19FREFDX0FMVEVSQSkJCSs9IGFsdGVyYV9lZGFjLm8KIG9iai0kKENPTkZJR19FREFDX1NJRklWRSkJCSs9IHNpZml2ZV9lZGFjLm8KK29iai0kKENPTkZJR19FREFDX0FSTUFEQV9YUCkJCSs9IGFybWFkYV94cF9lZGFjLm8KIG9iai0kKENPTkZJR19FREFDX1NZTk9QU1lTKQkJKz0gc3lub3BzeXNfZWRhYy5vCiBvYmotJChDT05GSUdfRURBQ19YR0VORSkJCSs9IHhnZW5lX2VkYWMubwogb2JqLSQoQ09ORklHX0VEQUNfVEkpCQkJKz0gdGlfZWRhYy5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvYXJtYWRhX3hwX2VkYWMuYyBiL2RyaXZlcnMvZWRhYy9hcm1hZGFfeHBfZWRhYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmMjI3YmQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2VkYWMvYXJtYWRhX3hwX2VkYWMuYwpAQCAtMCwwICsxLDYzNSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgUGVuZ3V0cm9uaXgsIEphbiBMdWViYmUgPGtlcm5lbEBwZW5ndXRyb25peC5kZT4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZWRhYy5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUvY2FjaGUtbDJ4MC5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9jYWNoZS1hdXJvcmEtbDIuaD4KKworI2luY2x1ZGUgImVkYWNfbWMuaCIKKyNpbmNsdWRlICJlZGFjX2RldmljZS5oIgorI2luY2x1ZGUgImVkYWNfbW9kdWxlLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKiogRURBQyBNQyAoRERSIFJBTSkgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgU0RSQU1fTlVNX0NTIDQKKworI2RlZmluZSBTRFJBTV9DT05GSUdfUkVHICAgICAgICAweDAKKyNkZWZpbmUgU0RSQU1fQ09ORklHX0VDQ19NQVNLICAgICAgICAgQklUKDE4KQorI2RlZmluZSBTRFJBTV9DT05GSUdfUkVHSVNURVJFRF9NQVNLICBCSVQoMTcpCisjZGVmaW5lIFNEUkFNX0NPTkZJR19CVVNfV0lEVEhfTUFTSyAgIEJJVCgxNSkKKworI2RlZmluZSBTRFJBTV9BRERSX0NUUkxfUkVHICAgICAweDEwCisjZGVmaW5lIFNEUkFNX0FERFJfQ1RSTF9TSVpFX0hJR0hfT0ZGU0VUKGNzKSAoMjArY3MpCisjZGVmaW5lIFNEUkFNX0FERFJfQ1RSTF9TSVpFX0hJR0hfTUFTSyhjcykgICAoMHgxIDw8IFNEUkFNX0FERFJfQ1RSTF9TSVpFX0hJR0hfT0ZGU0VUKGNzKSkKKyNkZWZpbmUgU0RSQU1fQUREUl9DVFJMX0FERFJfU0VMX01BU0soY3MpICAgIEJJVCgxNitjcykKKyNkZWZpbmUgU0RSQU1fQUREUl9DVFJMX1NJWkVfTE9XX09GRlNFVChjcykgIChjcyo0KzIpCisjZGVmaW5lIFNEUkFNX0FERFJfQ1RSTF9TSVpFX0xPV19NQVNLKGNzKSAgICAoMHgzIDw8IFNEUkFNX0FERFJfQ1RSTF9TSVpFX0xPV19PRkZTRVQoY3MpKQorI2RlZmluZSBTRFJBTV9BRERSX0NUUkxfU1RSVUNUX09GRlNFVChjcykgICAgKGNzKjQpCisjZGVmaW5lIFNEUkFNX0FERFJfQ1RSTF9TVFJVQ1RfTUFTSyhjcykgICAgICAoMHgzIDw8IFNEUkFNX0FERFJfQ1RSTF9TVFJVQ1RfT0ZGU0VUKGNzKSkKKworI2RlZmluZSBTRFJBTV9FUlJfREFUQV9IX1JFRyAgICAweDQwCisjZGVmaW5lIFNEUkFNX0VSUl9EQVRBX0xfUkVHICAgIDB4NDQKKworI2RlZmluZSBTRFJBTV9FUlJfUkVDVl9FQ0NfUkVHICAweDQ4CisjZGVmaW5lIFNEUkFNX0VSUl9SRUNWX0VDQ19WQUxVRV9NQVNLIDB4ZmYKKworI2RlZmluZSBTRFJBTV9FUlJfQ0FMQ19FQ0NfUkVHICAweDRjCisjZGVmaW5lIFNEUkFNX0VSUl9DQUxDX0VDQ19ST1dfT0ZGU0VUIDgKKyNkZWZpbmUgU0RSQU1fRVJSX0NBTENfRUNDX1JPV19NQVNLICAgKDB4ZmZmZiA8PCBTRFJBTV9FUlJfQ0FMQ19FQ0NfUk9XX09GRlNFVCkKKyNkZWZpbmUgU0RSQU1fRVJSX0NBTENfRUNDX1ZBTFVFX01BU0sgMHhmZgorCisjZGVmaW5lIFNEUkFNX0VSUl9BRERSX1JFRyAgICAgIDB4NTAKKyNkZWZpbmUgU0RSQU1fRVJSX0FERFJfQkFOS19PRkZTRVQgICAgMjMKKyNkZWZpbmUgU0RSQU1fRVJSX0FERFJfQkFOS19NQVNLICAgICAgKDB4NyA8PCBTRFJBTV9FUlJfQUREUl9CQU5LX09GRlNFVCkKKyNkZWZpbmUgU0RSQU1fRVJSX0FERFJfQ09MX09GRlNFVCAgICAgOAorI2RlZmluZSBTRFJBTV9FUlJfQUREUl9DT0xfTUFTSyAgICAgICAoMHg3ZmZmIDw8IFNEUkFNX0VSUl9BRERSX0NPTF9PRkZTRVQpCisjZGVmaW5lIFNEUkFNX0VSUl9BRERSX0NTX09GRlNFVCAgICAgIDEKKyNkZWZpbmUgU0RSQU1fRVJSX0FERFJfQ1NfTUFTSyAgICAgICAgKDB4MyA8PCBTRFJBTV9FUlJfQUREUl9DU19PRkZTRVQpCisjZGVmaW5lIFNEUkFNX0VSUl9BRERSX1RZUEVfTUFTSyAgICAgIEJJVCgwKQorCisjZGVmaW5lIFNEUkFNX0VSUl9DVFJMX1JFRyAgICAgIDB4NTQKKyNkZWZpbmUgU0RSQU1fRVJSX0NUUkxfVEhSX09GRlNFVCAgICAgMTYKKyNkZWZpbmUgU0RSQU1fRVJSX0NUUkxfVEhSX01BU0sgICAgICAgKDB4ZmYgPDwgU0RSQU1fRVJSX0NUUkxfVEhSX09GRlNFVCkKKyNkZWZpbmUgU0RSQU1fRVJSX0NUUkxfUFJPUF9NQVNLICAgICAgQklUKDkpCisKKyNkZWZpbmUgU0RSQU1fRVJSX1NCRV9DT1VOVF9SRUcgMHg1OAorI2RlZmluZSBTRFJBTV9FUlJfREJFX0NPVU5UX1JFRyAweDVjCisKKyNkZWZpbmUgU0RSQU1fRVJSX0NBVVNFX0VSUl9SRUcgMHhkMAorI2RlZmluZSBTRFJBTV9FUlJfQ0FVU0VfTVNHX1JFRyAweGQ4CisjZGVmaW5lIFNEUkFNX0VSUl9DQVVTRV9EQkVfTUFTSyAgICAgIEJJVCgxKQorI2RlZmluZSBTRFJBTV9FUlJfQ0FVU0VfU0JFX01BU0sgICAgICBCSVQoMCkKKworI2RlZmluZSBTRFJBTV9SQU5LX0NUUkxfUkVHIDB4MWUwCisjZGVmaW5lIFNEUkFNX1JBTktfQ1RSTF9FWElTVF9NQVNLKGNzKSBCSVQoY3MpCisKK3N0cnVjdCBheHBfbWNfZHJ2ZGF0YSB7CisJdm9pZCBfX2lvbWVtICpiYXNlOworCS8qIHdpZHRoIGluIGJ5dGVzICovCisJdW5zaWduZWQgaW50IHdpZHRoOworCS8qIGJhbmsgaW50ZXJsZWF2aW5nICovCisJYm9vbCBjc19hZGRyX3NlbFtTRFJBTV9OVU1fQ1NdOworCisJY2hhciBtc2dbMTI4XTsKK307CisKKy8qIGRlcml2ZWQgZnJvbSAiRFJBTSBBZGRyZXNzIE11bHRpcGxleGluZyIgaW4gdGhlIEFSQU1EQSBYUCBGdW5jdGlvbmFsIFNwZWMgKi8KK3N0YXRpYyB1aW50MzJfdCBheHBfbWNfY2FsY19hZGRyZXNzKHN0cnVjdCBheHBfbWNfZHJ2ZGF0YSAqZHJ2ZGF0YSwKKwkJCQkgICAgdWludDhfdCBjcywgdWludDhfdCBiYW5rLCB1aW50MTZfdCByb3csCisJCQkJICAgIHVpbnQxNl90IGNvbCkKK3sKKwlpZiAoZHJ2ZGF0YS0+d2lkdGggPT0gOCkgeworCQkvKiA2NCBiaXQgKi8KKwkJaWYgKGRydmRhdGEtPmNzX2FkZHJfc2VsW2NzXSkKKwkJCS8qIGJhbmsgaW50ZXJsZWF2ZWQgKi8KKwkJCXJldHVybiAoKChyb3cgJiAweGZmZjgpIDw8IDE2KSB8CisJCQkJKChiYW5rICYgMHg3KSA8PCAxNikgfAorCQkJCSgocm93ICYgMHg3KSA8PCAxMykgfAorCQkJCSgoY29sICYgMHgzZmYpIDw8IDMpKTsKKwkJZWxzZQorCQkJcmV0dXJuICgoKHJvdyAmIDB4ZmZmZiA8PCAxNikgfAorCQkJCSAoKGJhbmsgJiAweDcpIDw8IDEzKSB8CisJCQkJICgoY29sICYgMHgzZmYpKSA8PCAzKSk7CisJfSBlbHNlIGlmIChkcnZkYXRhLT53aWR0aCA9PSA0KSB7CisJCS8qIDMyIGJpdCAqLworCQlpZiAoZHJ2ZGF0YS0+Y3NfYWRkcl9zZWxbY3NdKQorCQkJLyogYmFuayBpbnRlcmxlYXZlZCAqLworCQkJcmV0dXJuICgoKHJvdyAmIDB4ZmZmMCkgPDwgMTUpIHwKKwkJCQkoKGJhbmsgJiAweDcpIDw8IDE2KSB8CisJCQkJKChyb3cgJiAweGYpIDw8IDEyKSB8CisJCQkJKChjb2wgJiAweDNmZikgPDwgMikpOworCQllbHNlCisJCQlyZXR1cm4gKCgocm93ICYgMHhmZmZmIDw8IDE1KSB8CisJCQkJICgoYmFuayAmIDB4NykgPDwgMTIpIHwKKwkJCQkgKChjb2wgJiAweDNmZikpIDw8IDIpKTsKKwl9IGVsc2UgeworCQkvKiAxNiBiaXQgKi8KKwkJaWYgKGRydmRhdGEtPmNzX2FkZHJfc2VsW2NzXSkKKwkJCS8qIGJhbmsgaW50ZXJsZWF2ZWQgKi8KKwkJCXJldHVybiAoKChyb3cgJiAweGZmZTApIDw8IDE0KSB8CisJCQkJKChiYW5rICYgMHg3KSA8PCAxNikgfAorCQkJCSgocm93ICYgMHgxZikgPDwgMTEpIHwKKwkJCQkoKGNvbCAmIDB4M2ZmKSA8PCAxKSk7CisJCWVsc2UKKwkJCXJldHVybiAoKChyb3cgJiAweGZmZmYgPDwgMTQpIHwKKwkJCQkgKChiYW5rICYgMHg3KSA8PCAxMSkgfAorCQkJCSAoKGNvbCAmIDB4M2ZmKSkgPDwgMSkpOworCX0KK30KKworc3RhdGljIHZvaWQgYXhwX21jX2NoZWNrKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkKK3sKKwlzdHJ1Y3QgYXhwX21jX2RydmRhdGEgKmRydmRhdGEgPSBtY2ktPnB2dF9pbmZvOworCXVpbnQzMl90IGRhdGFfaCwgZGF0YV9sLCByZWN2X2VjYywgY2FsY19lY2MsIGFkZHI7CisJdWludDMyX3QgY250X3NiZSwgY250X2RiZSwgY2F1c2VfZXJyLCBjYXVzZV9tc2c7CisJdWludDMyX3Qgcm93X3ZhbCwgY29sX3ZhbCwgYmFua192YWwsIGFkZHJfdmFsOworCXVpbnQ4X3Qgc3luZHJvbWVfdmFsLCBjc192YWw7CisJY2hhciAqbXNnID0gZHJ2ZGF0YS0+bXNnOworCisJZGF0YV9oICAgID0gcmVhZGwoZHJ2ZGF0YS0+YmFzZSArIFNEUkFNX0VSUl9EQVRBX0hfUkVHKTsKKwlkYXRhX2wgICAgPSByZWFkbChkcnZkYXRhLT5iYXNlICsgU0RSQU1fRVJSX0RBVEFfTF9SRUcpOworCXJlY3ZfZWNjICA9IHJlYWRsKGRydmRhdGEtPmJhc2UgKyBTRFJBTV9FUlJfUkVDVl9FQ0NfUkVHKTsKKwljYWxjX2VjYyAgPSByZWFkbChkcnZkYXRhLT5iYXNlICsgU0RSQU1fRVJSX0NBTENfRUNDX1JFRyk7CisJYWRkciAgICAgID0gcmVhZGwoZHJ2ZGF0YS0+YmFzZSArIFNEUkFNX0VSUl9BRERSX1JFRyk7CisJY250X3NiZSAgID0gcmVhZGwoZHJ2ZGF0YS0+YmFzZSArIFNEUkFNX0VSUl9TQkVfQ09VTlRfUkVHKTsKKwljbnRfZGJlICAgPSByZWFkbChkcnZkYXRhLT5iYXNlICsgU0RSQU1fRVJSX0RCRV9DT1VOVF9SRUcpOworCWNhdXNlX2VyciA9IHJlYWRsKGRydmRhdGEtPmJhc2UgKyBTRFJBTV9FUlJfQ0FVU0VfRVJSX1JFRyk7CisJY2F1c2VfbXNnID0gcmVhZGwoZHJ2ZGF0YS0+YmFzZSArIFNEUkFNX0VSUl9DQVVTRV9NU0dfUkVHKTsKKworCS8qIGNsZWFyIGNhdXNlIHJlZ2lzdGVycyAqLworCXdyaXRlbCh+KFNEUkFNX0VSUl9DQVVTRV9EQkVfTUFTSyB8IFNEUkFNX0VSUl9DQVVTRV9TQkVfTUFTSyksCisJICAgICAgIGRydmRhdGEtPmJhc2UgKyBTRFJBTV9FUlJfQ0FVU0VfRVJSX1JFRyk7CisJd3JpdGVsKH4oU0RSQU1fRVJSX0NBVVNFX0RCRV9NQVNLIHwgU0RSQU1fRVJSX0NBVVNFX1NCRV9NQVNLKSwKKwkgICAgICAgZHJ2ZGF0YS0+YmFzZSArIFNEUkFNX0VSUl9DQVVTRV9NU0dfUkVHKTsKKworCS8qIGNsZWFyIGVycm9yIGNvdW50ZXIgcmVnaXN0ZXJzICovCisJaWYgKGNudF9zYmUpCisJCXdyaXRlbCgwLCBkcnZkYXRhLT5iYXNlICsgU0RSQU1fRVJSX1NCRV9DT1VOVF9SRUcpOworCWlmIChjbnRfZGJlKQorCQl3cml0ZWwoMCwgZHJ2ZGF0YS0+YmFzZSArIFNEUkFNX0VSUl9EQkVfQ09VTlRfUkVHKTsKKworCWlmICghY250X3NiZSAmJiAhY250X2RiZSkKKwkJcmV0dXJuOworCisJaWYgKCEoYWRkciAmIFNEUkFNX0VSUl9BRERSX1RZUEVfTUFTSykpIHsKKwkJaWYgKGNudF9zYmUpCisJCQljbnRfc2JlLS07CisJCWVsc2UKKwkJCWRldl93YXJuKG1jaS0+cGRldiwgImluY29uc2lzdGVudCBTQkUgY291bnQgZGV0ZWN0ZWQiKTsKKwl9IGVsc2UgeworCQlpZiAoY250X2RiZSkKKwkJCWNudF9kYmUtLTsKKwkJZWxzZQorCQkJZGV2X3dhcm4obWNpLT5wZGV2LCAiaW5jb25zaXN0ZW50IERCRSBjb3VudCBkZXRlY3RlZCIpOworCX0KKworCS8qIHJlcG9ydCBlYXJsaWVyIGVycm9ycyAqLworCWlmIChjbnRfc2JlKQorCQllZGFjX21jX2hhbmRsZV9lcnJvcihIV19FVkVOVF9FUlJfQ09SUkVDVEVELCBtY2ksCisJCQkJICAgICBjbnRfc2JlLCAvKiBlcnJvciBjb3VudCAqLworCQkJCSAgICAgMCwgMCwgMCwgLyogcGZuLCBvZmZzZXQsIHN5bmRyb21lICovCisJCQkJICAgICAtMSwgLTEsIC0xLCAvKiB0b3AsIG1pZCwgbG93IGxheWVyICovCisJCQkJICAgICBtY2ktPmN0bF9uYW1lLAorCQkJCSAgICAgImRldGFpbHMgdW5hdmFpbGFibGUgKG11bHRpcGxlIGVycm9ycykiKTsKKwlpZiAoY250X2RiZSkKKwkJZWRhY19tY19oYW5kbGVfZXJyb3IoSFdfRVZFTlRfRVJSX1VOQ09SUkVDVEVELCBtY2ksCisJCQkJICAgICBjbnRfc2JlLCAvKiBlcnJvciBjb3VudCAqLworCQkJCSAgICAgMCwgMCwgMCwgLyogcGZuLCBvZmZzZXQsIHN5bmRyb21lICovCisJCQkJICAgICAtMSwgLTEsIC0xLCAvKiB0b3AsIG1pZCwgbG93IGxheWVyICovCisJCQkJICAgICBtY2ktPmN0bF9uYW1lLAorCQkJCSAgICAgImRldGFpbHMgdW5hdmFpbGFibGUgKG11bHRpcGxlIGVycm9ycykiKTsKKworCS8qIHJlcG9ydCBkZXRhaWxzIGZvciBtb3N0IHJlY2VudCBlcnJvciAqLworCWNzX3ZhbCAgID0gKGFkZHIgJiBTRFJBTV9FUlJfQUREUl9DU19NQVNLKSA+PiBTRFJBTV9FUlJfQUREUl9DU19PRkZTRVQ7CisJYmFua192YWwgPSAoYWRkciAmIFNEUkFNX0VSUl9BRERSX0JBTktfTUFTSykgPj4gU0RSQU1fRVJSX0FERFJfQkFOS19PRkZTRVQ7CisJcm93X3ZhbCAgPSAoY2FsY19lY2MgJiBTRFJBTV9FUlJfQ0FMQ19FQ0NfUk9XX01BU0spID4+IFNEUkFNX0VSUl9DQUxDX0VDQ19ST1dfT0ZGU0VUOworCWNvbF92YWwgID0gKGFkZHIgJiBTRFJBTV9FUlJfQUREUl9DT0xfTUFTSykgPj4gU0RSQU1fRVJSX0FERFJfQ09MX09GRlNFVDsKKwlzeW5kcm9tZV92YWwgPSAocmVjdl9lY2MgXiBjYWxjX2VjYykgJiAweGZmOworCWFkZHJfdmFsID0gYXhwX21jX2NhbGNfYWRkcmVzcyhkcnZkYXRhLCBjc192YWwsIGJhbmtfdmFsLCByb3dfdmFsLAorCQkJCSAgICAgICBjb2xfdmFsKTsKKwltc2cgKz0gc3ByaW50Zihtc2csICJyb3c9MHglMDR4ICIsIHJvd192YWwpOyAvKiAxMSBjaGFycyAqLworCW1zZyArPSBzcHJpbnRmKG1zZywgImJhbms9MHgleCAiLCBiYW5rX3ZhbCk7IC8qICA5IGNoYXJzICovCisJbXNnICs9IHNwcmludGYobXNnLCAiY29sPTB4JTA0eCAiLCBjb2xfdmFsKTsgLyogMTEgY2hhcnMgKi8KKwltc2cgKz0gc3ByaW50Zihtc2csICJjcz0lZCIsIGNzX3ZhbCk7CSAgICAgLyogIDQgY2hhcnMgKi8KKworCWlmICghKGFkZHIgJiBTRFJBTV9FUlJfQUREUl9UWVBFX01BU0spKSB7CisJCWVkYWNfbWNfaGFuZGxlX2Vycm9yKEhXX0VWRU5UX0VSUl9DT1JSRUNURUQsIG1jaSwKKwkJCQkgICAgIDEsCS8qIGVycm9yIGNvdW50ICovCisJCQkJICAgICBhZGRyX3ZhbCA+PiBQQUdFX1NISUZULAorCQkJCSAgICAgYWRkcl92YWwgJiB+UEFHRV9NQVNLLAorCQkJCSAgICAgc3luZHJvbWVfdmFsLAorCQkJCSAgICAgY3NfdmFsLCAtMSwgLTEsIC8qIHRvcCwgbWlkLCBsb3cgbGF5ZXIgKi8KKwkJCQkgICAgIG1jaS0+Y3RsX25hbWUsIGRydmRhdGEtPm1zZyk7CisJfSBlbHNlIHsKKwkJZWRhY19tY19oYW5kbGVfZXJyb3IoSFdfRVZFTlRfRVJSX1VOQ09SUkVDVEVELCBtY2ksCisJCQkJICAgICAxLAkvKiBlcnJvciBjb3VudCAqLworCQkJCSAgICAgYWRkcl92YWwgPj4gUEFHRV9TSElGVCwKKwkJCQkgICAgIGFkZHJfdmFsICYgflBBR0VfTUFTSywKKwkJCQkgICAgIHN5bmRyb21lX3ZhbCwKKwkJCQkgICAgIGNzX3ZhbCwgLTEsIC0xLCAvKiB0b3AsIG1pZCwgbG93IGxheWVyICovCisJCQkJICAgICBtY2ktPmN0bF9uYW1lLCBkcnZkYXRhLT5tc2cpOworCX0KK30KKworc3RhdGljIHZvaWQgYXhwX21jX3JlYWRfY29uZmlnKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkKK3sKKwlzdHJ1Y3QgYXhwX21jX2RydmRhdGEgKmRydmRhdGEgPSBtY2ktPnB2dF9pbmZvOworCXVpbnQzMl90IGNvbmZpZywgYWRkcl9jdHJsLCByYW5rX2N0cmw7CisJdW5zaWduZWQgaW50IGksIGNzX3N0cnVjdCwgY3Nfc2l6ZTsKKwlzdHJ1Y3QgZGltbV9pbmZvICpkaW1tOworCisJY29uZmlnID0gcmVhZGwoZHJ2ZGF0YS0+YmFzZSArIFNEUkFNX0NPTkZJR19SRUcpOworCWlmIChjb25maWcgJiBTRFJBTV9DT05GSUdfQlVTX1dJRFRIX01BU0spCisJCS8qIDY0IGJpdCAqLworCQlkcnZkYXRhLT53aWR0aCA9IDg7CisJZWxzZQorCQkvKiAzMiBiaXQgKi8KKwkJZHJ2ZGF0YS0+d2lkdGggPSA0OworCisJYWRkcl9jdHJsID0gcmVhZGwoZHJ2ZGF0YS0+YmFzZSArIFNEUkFNX0FERFJfQ1RSTF9SRUcpOworCXJhbmtfY3RybCA9IHJlYWRsKGRydmRhdGEtPmJhc2UgKyBTRFJBTV9SQU5LX0NUUkxfUkVHKTsKKwlmb3IgKGkgPSAwOyBpIDwgU0RSQU1fTlVNX0NTOyBpKyspIHsKKwkJZGltbSA9IG1jaS0+ZGltbXNbaV07CisKKwkJaWYgKCEocmFua19jdHJsICYgU0RSQU1fUkFOS19DVFJMX0VYSVNUX01BU0soaSkpKQorCQkJY29udGludWU7CisKKwkJZHJ2ZGF0YS0+Y3NfYWRkcl9zZWxbaV0gPQorCQkJISEoYWRkcl9jdHJsICYgU0RSQU1fQUREUl9DVFJMX0FERFJfU0VMX01BU0soaSkpOworCisJCWNzX3N0cnVjdCA9IChhZGRyX2N0cmwgJiBTRFJBTV9BRERSX0NUUkxfU1RSVUNUX01BU0soaSkpID4+IFNEUkFNX0FERFJfQ1RSTF9TVFJVQ1RfT0ZGU0VUKGkpOworCQljc19zaXplICAgPSAoKGFkZHJfY3RybCAmIFNEUkFNX0FERFJfQ1RSTF9TSVpFX0hJR0hfTUFTSyhpKSkgPj4gKFNEUkFNX0FERFJfQ1RSTF9TSVpFX0hJR0hfT0ZGU0VUKGkpIC0gMikgfAorCQkJICAgICgoYWRkcl9jdHJsICYgU0RSQU1fQUREUl9DVFJMX1NJWkVfTE9XX01BU0soaSkpID4+IFNEUkFNX0FERFJfQ1RSTF9TSVpFX0xPV19PRkZTRVQoaSkpKTsKKworCQlzd2l0Y2ggKGNzX3NpemUpIHsKKwkJY2FzZSAwOiAvKiAyR0JpdCAqLworCQkJZGltbS0+bnJfcGFnZXMgPSA1MjQyODg7CisJCQlicmVhazsKKwkJY2FzZSAxOiAvKiAyNTZNQml0ICovCisJCQlkaW1tLT5ucl9wYWdlcyA9IDY1NTM2OworCQkJYnJlYWs7CisJCWNhc2UgMjogLyogNTEyTUJpdCAqLworCQkJZGltbS0+bnJfcGFnZXMgPSAxMzEwNzI7CisJCQlicmVhazsKKwkJY2FzZSAzOiAvKiAxR0JpdCAqLworCQkJZGltbS0+bnJfcGFnZXMgPSAyNjIxNDQ7CisJCQlicmVhazsKKwkJY2FzZSA0OiAvKiA0R0JpdCAqLworCQkJZGltbS0+bnJfcGFnZXMgPSAxMDQ4NTc2OworCQkJYnJlYWs7CisJCWNhc2UgNTogLyogOEdCaXQgKi8KKwkJCWRpbW0tPm5yX3BhZ2VzID0gMjA5NzE1MjsKKwkJCWJyZWFrOworCQl9CisJCWRpbW0tPmdyYWluID0gODsKKwkJZGltbS0+ZHR5cGUgPSBjc19zdHJ1Y3QgPyBERVZfWDE2IDogREVWX1g4OworCQlkaW1tLT5tdHlwZSA9IChjb25maWcgJiBTRFJBTV9DT05GSUdfUkVHSVNURVJFRF9NQVNLKSA/CisJCQlNRU1fUkREUjMgOiBNRU1fRERSMzsKKwkJZGltbS0+ZWRhY19tb2RlID0gRURBQ19TRUNERUQ7CisJfQorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBheHBfbWNfb2ZfbWF0Y2hbXSA9IHsKKwl7LmNvbXBhdGlibGUgPSAibWFydmVsbCxhcm1hZGEteHAtc2RyYW0tY29udHJvbGxlciIsfSwKKwl7fSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBheHBfbWNfb2ZfbWF0Y2gpOworCitzdGF0aWMgaW50IGF4cF9tY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBheHBfbWNfZHJ2ZGF0YSAqZHJ2ZGF0YTsKKwlzdHJ1Y3QgZWRhY19tY19sYXllciBsYXllcnNbMV07CisJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqaWQ7CisJc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpOworCXN0cnVjdCByZXNvdXJjZSAqcjsKKwl2b2lkIF9faW9tZW0gKmJhc2U7CisJdWludDMyX3QgY29uZmlnOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJaWYgKCFyKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIlVuYWJsZSB0byBnZXQgbWVtIHJlc291cmNlXG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJYmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByKTsKKwlpZiAoSVNfRVJSKGJhc2UpKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIlVuYWJsZSB0byBtYXAgcmVnc1xuIik7CisJCXJldHVybiBQVFJfRVJSKGJhc2UpOworCX0KKworCWNvbmZpZyA9IHJlYWRsKGJhc2UgKyBTRFJBTV9DT05GSUdfUkVHKTsKKwlpZiAoIShjb25maWcgJiBTRFJBTV9DT05GSUdfRUNDX01BU0spKSB7CisJCWRldl93YXJuKCZwZGV2LT5kZXYsICJTRFJBTSBFQ0MgaXMgbm90IGVuYWJsZWQiKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJbGF5ZXJzWzBdLnR5cGUgPSBFREFDX01DX0xBWUVSX0NISVBfU0VMRUNUOworCWxheWVyc1swXS5zaXplID0gU0RSQU1fTlVNX0NTOworCWxheWVyc1swXS5pc192aXJ0X2Nzcm93ID0gdHJ1ZTsKKworCW1jaSA9IGVkYWNfbWNfYWxsb2MoMCwgQVJSQVlfU0laRShsYXllcnMpLCBsYXllcnMsIHNpemVvZigqZHJ2ZGF0YSkpOworCWlmICghbWNpKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRydmRhdGEgPSBtY2ktPnB2dF9pbmZvOworCWRydmRhdGEtPmJhc2UgPSBiYXNlOworCW1jaS0+cGRldiA9ICZwZGV2LT5kZXY7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgbWNpKTsKKworCWlkID0gb2ZfbWF0Y2hfZGV2aWNlKGF4cF9tY19vZl9tYXRjaCwgJnBkZXYtPmRldik7CisJbWNpLT5lZGFjX2NoZWNrID0gYXhwX21jX2NoZWNrOworCW1jaS0+bXR5cGVfY2FwID0gTUVNX0ZMQUdfRERSMzsKKwltY2ktPmVkYWNfY2FwID0gRURBQ19GTEFHX1NFQ0RFRDsKKwltY2ktPm1vZF9uYW1lID0gcGRldi0+ZGV2LmRyaXZlci0+bmFtZTsKKwltY2ktPmN0bF9uYW1lID0gaWQgPyBpZC0+Y29tcGF0aWJsZSA6ICJ1bmtub3duIjsKKwltY2ktPmRldl9uYW1lID0gZGV2X25hbWUoJnBkZXYtPmRldik7CisJbWNpLT5zY3J1Yl9tb2RlID0gU0NSVUJfTk9ORTsKKworCWF4cF9tY19yZWFkX2NvbmZpZyhtY2kpOworCisJLyogVGhlc2UgU29DcyBoYXZlIGEgcmVkdWNlZCB3aWR0aCBidXMgKi8KKwlpZiAob2ZfbWFjaGluZV9pc19jb21wYXRpYmxlKCJtYXJ2ZWxsLGFybWFkYTM4MCIpIHx8CisJICAgIG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgibWFydmVsbCxhcm1hZGF4cC05OGR4MzIzNiIpKQorCQlkcnZkYXRhLT53aWR0aCAvPSAyOworCisJLyogY29uZmlndXJlIFNCRSB0aHJlc2hvbGQgKi8KKwkvKiBpdCBzZWVtcyB0aGF0IFNCRXMgYXJlIG5vdCBjYXB0dXJlZCBvdGhlcndpc2UgKi8KKwl3cml0ZWwoMSA8PCBTRFJBTV9FUlJfQ1RSTF9USFJfT0ZGU0VULCBkcnZkYXRhLT5iYXNlICsgU0RSQU1fRVJSX0NUUkxfUkVHKTsKKworCS8qIGNsZWFyIGNhdXNlIHJlZ2lzdGVycyAqLworCXdyaXRlbCh+KFNEUkFNX0VSUl9DQVVTRV9EQkVfTUFTSyB8IFNEUkFNX0VSUl9DQVVTRV9TQkVfTUFTSyksIGRydmRhdGEtPmJhc2UgKyBTRFJBTV9FUlJfQ0FVU0VfRVJSX1JFRyk7CisJd3JpdGVsKH4oU0RSQU1fRVJSX0NBVVNFX0RCRV9NQVNLIHwgU0RSQU1fRVJSX0NBVVNFX1NCRV9NQVNLKSwgZHJ2ZGF0YS0+YmFzZSArIFNEUkFNX0VSUl9DQVVTRV9NU0dfUkVHKTsKKworCS8qIGNsZWFyIGNvdW50ZXIgcmVnaXN0ZXJzICovCisJd3JpdGVsKDAsIGRydmRhdGEtPmJhc2UgKyBTRFJBTV9FUlJfU0JFX0NPVU5UX1JFRyk7CisJd3JpdGVsKDAsIGRydmRhdGEtPmJhc2UgKyBTRFJBTV9FUlJfREJFX0NPVU5UX1JFRyk7CisKKwlpZiAoZWRhY19tY19hZGRfbWMobWNpKSkgeworCQllZGFjX21jX2ZyZWUobWNpKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWVkYWNfb3Bfc3RhdGUgPSBFREFDX09QU1RBVEVfUE9MTDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF4cF9tY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWVkYWNfbWNfZGVsX21jKCZwZGV2LT5kZXYpOworCWVkYWNfbWNfZnJlZShtY2kpOworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF4cF9tY19kcml2ZXIgPSB7CisJLnByb2JlID0gYXhwX21jX3Byb2JlLAorCS5yZW1vdmUgPSBheHBfbWNfcmVtb3ZlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImFybWFkYV94cF9tY19lZGFjIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfcHRyKGF4cF9tY19vZl9tYXRjaCksCisJfSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKiogRURBQyBEZXZpY2UgKEwyIENhY2hlKSAqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0cnVjdCBhdXJvcmFfbDJfZHJ2ZGF0YSB7CisJdm9pZCBfX2lvbWVtICpiYXNlOworCisJY2hhciBtc2dbMTI4XTsKKworCS8qIGVycm9yIGluamVjdGlvbiB2aWEgZGVidWdmcyAqLworCXVpbnQzMl90IGluamVjdF9hZGRyOworCXVpbnQzMl90IGluamVjdF9tYXNrOworCXVpbnQ4X3QgaW5qZWN0X2N0bDsKKworCXN0cnVjdCBkZW50cnkgKmRlYnVnZnM7Cit9OworCisjaWZkZWYgQ09ORklHX0VEQUNfREVCVUcKK3N0YXRpYyB2b2lkIGF1cm9yYV9sMl9pbmplY3Qoc3RydWN0IGF1cm9yYV9sMl9kcnZkYXRhICpkcnZkYXRhKQoreworCWRydmRhdGEtPmluamVjdF9hZGRyICY9IEFVUk9SQV9FUlJfSU5KRUNUX0NUTF9BRERSX01BU0s7CisJZHJ2ZGF0YS0+aW5qZWN0X2N0bCAmPSBBVVJPUkFfRVJSX0lOSkVDVF9DVExfRU5fTUFTSzsKKwl3cml0ZWwoMCwgZHJ2ZGF0YS0+YmFzZSArIEFVUk9SQV9FUlJfSU5KRUNUX0NUTF9SRUcpOworCXdyaXRlbChkcnZkYXRhLT5pbmplY3RfbWFzaywgZHJ2ZGF0YS0+YmFzZSArIEFVUk9SQV9FUlJfSU5KRUNUX01BU0tfUkVHKTsKKwl3cml0ZWwoZHJ2ZGF0YS0+aW5qZWN0X2FkZHIgfCBkcnZkYXRhLT5pbmplY3RfY3RsLCBkcnZkYXRhLT5iYXNlICsgQVVST1JBX0VSUl9JTkpFQ1RfQ1RMX1JFRyk7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgYXVyb3JhX2wyX2NoZWNrKHN0cnVjdCBlZGFjX2RldmljZV9jdGxfaW5mbyAqZGNpKQoreworCXN0cnVjdCBhdXJvcmFfbDJfZHJ2ZGF0YSAqZHJ2ZGF0YSA9IGRjaS0+cHZ0X2luZm87CisJdWludDMyX3QgY250LCBzcmMsIHR4biwgZXJyLCBhdHRyX2NhcCwgYWRkcl9jYXAsIHdheV9jYXA7CisJdW5zaWduZWQgaW50IGNudF9jZSwgY250X3VlOworCWNoYXIgKm1zZyA9IGRydmRhdGEtPm1zZzsKKwlzaXplX3Qgc2l6ZSA9IHNpemVvZihkcnZkYXRhLT5tc2cpOworCXNpemVfdCBsZW4gPSAwOworCisJY250ID0gcmVhZGwoZHJ2ZGF0YS0+YmFzZSArIEFVUk9SQV9FUlJfQ05UX1JFRyk7CisJYXR0cl9jYXAgPSByZWFkbChkcnZkYXRhLT5iYXNlICsgQVVST1JBX0VSUl9BVFRSX0NBUF9SRUcpOworCWFkZHJfY2FwID0gcmVhZGwoZHJ2ZGF0YS0+YmFzZSArIEFVUk9SQV9FUlJfQUREUl9DQVBfUkVHKTsKKwl3YXlfY2FwID0gcmVhZGwoZHJ2ZGF0YS0+YmFzZSArIEFVUk9SQV9FUlJfV0FZX0NBUF9SRUcpOworCisJY250X2NlID0gKGNudCAmIEFVUk9SQV9FUlJfQ05UX0NFX01BU0spID4+IEFVUk9SQV9FUlJfQ05UX0NFX09GRlNFVDsKKwljbnRfdWUgPSAoY250ICYgQVVST1JBX0VSUl9DTlRfVUVfTUFTSykgPj4gQVVST1JBX0VSUl9DTlRfVUVfT0ZGU0VUOworCS8qIGNsZWFyIGVycm9yIGNvdW50ZXIgcmVnaXN0ZXJzICovCisJaWYgKGNudF9jZSB8fCBjbnRfdWUpCisJCXdyaXRlbChBVVJPUkFfRVJSX0NOVF9DTFIsIGRydmRhdGEtPmJhc2UgKyBBVVJPUkFfRVJSX0NOVF9SRUcpOworCisJaWYgKCEoYXR0cl9jYXAgJiBBVVJPUkFfRVJSX0FUVFJfQ0FQX1ZBTElEKSkKKwkJZ290byBjbGVhcl9yZW1haW5pbmc7CisKKwlzcmMgPSAoYXR0cl9jYXAgJiBBVVJPUkFfRVJSX0FUVFJfU1JDX01TSykgPj4gQVVST1JBX0VSUl9BVFRSX1NSQ19PRkY7CisJaWYgKHNyYyA8PSAzKQorCQlsZW4gKz0gc25wcmludGYobXNnK2xlbiwgc2l6ZS1sZW4sICJzcmM9Q1BVJWQgIiwgc3JjKTsKKwllbHNlCisJCWxlbiArPSBzbnByaW50Zihtc2crbGVuLCBzaXplLWxlbiwgInNyYz1JTyAiKTsKKworCXR4biA9ICAoYXR0cl9jYXAgJiBBVVJPUkFfRVJSX0FUVFJfVFhOX01TSykgPj4gQVVST1JBX0VSUl9BVFRSX1RYTl9PRkY7CisJc3dpdGNoICh0eG4pIHsKKwljYXNlIDA6CisJCWxlbiArPSBzbnByaW50Zihtc2crbGVuLCBzaXplLWxlbiwgInR4bj1EYXRhLVJlYWQgIik7CisJCWJyZWFrOworCWNhc2UgMToKKwkJbGVuICs9IHNucHJpbnRmKG1zZytsZW4sIHNpemUtbGVuLCAidHhuPUlzbi1SZWFkICIpOworCQlicmVhazsKKwljYXNlIDI6CisJCWxlbiArPSBzbnByaW50Zihtc2crbGVuLCBzaXplLWxlbiwgInR4bj1DbGVhbi1GbHVzaCAiKTsKKwkJYnJlYWs7CisJY2FzZSAzOgorCQlsZW4gKz0gc25wcmludGYobXNnK2xlbiwgc2l6ZS1sZW4sICJ0eG49RXZpY3Rpb24gIik7CisJCWJyZWFrOworCWNhc2UgNDoKKwkJbGVuICs9IHNucHJpbnRmKG1zZytsZW4sIHNpemUtbGVuLAorCQkJCSJ0eG49UmVhZC1Nb2RpZnktV3JpdGUgIik7CisJCWJyZWFrOworCX0KKworCWVyciA9IChhdHRyX2NhcCAmIEFVUk9SQV9FUlJfQVRUUl9FUlJfTVNLKSA+PiBBVVJPUkFfRVJSX0FUVFJfRVJSX09GRjsKKwlzd2l0Y2ggKGVycikgeworCWNhc2UgMDoKKwkJbGVuICs9IHNucHJpbnRmKG1zZytsZW4sIHNpemUtbGVuLCAiZXJyPUNvcnJFQ0MgIik7CisJCWJyZWFrOworCWNhc2UgMToKKwkJbGVuICs9IHNucHJpbnRmKG1zZytsZW4sIHNpemUtbGVuLCAiZXJyPVVuQ29yckVDQyAiKTsKKwkJYnJlYWs7CisJY2FzZSAyOgorCQlsZW4gKz0gc25wcmludGYobXNnK2xlbiwgc2l6ZS1sZW4sICJlcnI9VGFnUGFyaXR5ICIpOworCQlicmVhazsKKwl9CisKKwlsZW4gKz0gc25wcmludGYobXNnK2xlbiwgc2l6ZS1sZW4sICJhZGRyPTB4JXggIiwgYWRkcl9jYXAgJiBBVVJPUkFfRVJSX0FERFJfQ0FQX0FERFJfTUFTSyk7CisJbGVuICs9IHNucHJpbnRmKG1zZytsZW4sIHNpemUtbGVuLCAiaW5kZXg9MHgleCAiLCAod2F5X2NhcCAmIEFVUk9SQV9FUlJfV0FZX0lEWF9NU0spID4+IEFVUk9SQV9FUlJfV0FZX0lEWF9PRkYpOworCWxlbiArPSBzbnByaW50Zihtc2crbGVuLCBzaXplLWxlbiwgIndheT0weCV4IiwgKHdheV9jYXAgJiBBVVJPUkFfRVJSX1dBWV9DQVBfV0FZX01BU0spID4+IEFVUk9SQV9FUlJfV0FZX0NBUF9XQVlfT0ZGU0VUKTsKKworCS8qIGNsZWFyIGVycm9yIGNhcHR1cmUgcmVnaXN0ZXJzICovCisJd3JpdGVsKEFVUk9SQV9FUlJfQVRUUl9DQVBfVkFMSUQsIGRydmRhdGEtPmJhc2UgKyBBVVJPUkFfRVJSX0FUVFJfQ0FQX1JFRyk7CisJaWYgKGVycikgeworCQkvKiBVbkNvcnJFQ0Mgb3IgVGFnUGFyaXR5ICovCisJCWlmIChjbnRfdWUpCisJCQljbnRfdWUtLTsKKwkJZWRhY19kZXZpY2VfaGFuZGxlX3VlKGRjaSwgMCwgMCwgZHJ2ZGF0YS0+bXNnKTsKKwl9IGVsc2UgeworCQlpZiAoY250X2NlKQorCQkJY250X2NlLS07CisJCWVkYWNfZGV2aWNlX2hhbmRsZV9jZShkY2ksIDAsIDAsIGRydmRhdGEtPm1zZyk7CisJfQorCitjbGVhcl9yZW1haW5pbmc6CisJLyogcmVwb3J0IHJlbWFpbmluZyBlcnJvcnMgKi8KKwl3aGlsZSAoY250X3VlLS0pCisJCWVkYWNfZGV2aWNlX2hhbmRsZV91ZShkY2ksIDAsIDAsICJkZXRhaWxzIHVuYXZhaWxhYmxlIChtdWx0aXBsZSBlcnJvcnMpIik7CisJd2hpbGUgKGNudF9jZS0tKQorCQllZGFjX2RldmljZV9oYW5kbGVfdWUoZGNpLCAwLCAwLCAiZGV0YWlscyB1bmF2YWlsYWJsZSAobXVsdGlwbGUgZXJyb3JzKSIpOworfQorCitzdGF0aWMgdm9pZCBhdXJvcmFfbDJfcG9sbChzdHJ1Y3QgZWRhY19kZXZpY2VfY3RsX2luZm8gKmRjaSkKK3sKKyNpZmRlZiBDT05GSUdfRURBQ19ERUJVRworCXN0cnVjdCBhdXJvcmFfbDJfZHJ2ZGF0YSAqZHJ2ZGF0YSA9IGRjaS0+cHZ0X2luZm87CisjZW5kaWYKKworCWF1cm9yYV9sMl9jaGVjayhkY2kpOworI2lmZGVmIENPTkZJR19FREFDX0RFQlVHCisJYXVyb3JhX2wyX2luamVjdChkcnZkYXRhKTsKKyNlbmRpZgorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhdXJvcmFfbDJfb2ZfbWF0Y2hbXSA9IHsKKwl7LmNvbXBhdGlibGUgPSAibWFydmVsbCxhdXJvcmEtc3lzdGVtLWNhY2hlIix9LAorCXt9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF1cm9yYV9sMl9vZl9tYXRjaCk7CisKK3N0YXRpYyBpbnQgYXVyb3JhX2wyX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGF1cm9yYV9sMl9kcnZkYXRhICpkcnZkYXRhOworCXN0cnVjdCBlZGFjX2RldmljZV9jdGxfaW5mbyAqZGNpOworCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKmlkOworCXVpbnQzMl90IGwyeDBfYXV4X2N0cmw7CisJdm9pZCBfX2lvbWVtICpiYXNlOworCXN0cnVjdCByZXNvdXJjZSAqcjsKKworCXIgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCWlmICghcikgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJVbmFibGUgdG8gZ2V0IG1lbSByZXNvdXJjZVxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcik7CisJaWYgKElTX0VSUihiYXNlKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJVbmFibGUgdG8gbWFwIHJlZ3NcbiIpOworCQlyZXR1cm4gUFRSX0VSUihiYXNlKTsKKwl9CisKKwlsMngwX2F1eF9jdHJsID0gcmVhZGwoYmFzZSArIEwyWDBfQVVYX0NUUkwpOworCWlmICghKGwyeDBfYXV4X2N0cmwgJiBBVVJPUkFfQUNSX1BBUklUWV9FTikpCisJCWRldl93YXJuKCZwZGV2LT5kZXYsICJ0YWcgcGFyaXR5IGlzIG5vdCBlbmFibGVkIik7CisJaWYgKCEobDJ4MF9hdXhfY3RybCAmIEFVUk9SQV9BQ1JfRUNDX0VOKSkKKwkJZGV2X3dhcm4oJnBkZXYtPmRldiwgImRhdGEgRUNDIGlzIG5vdCBlbmFibGVkIik7CisKKwlkY2kgPSBlZGFjX2RldmljZV9hbGxvY19jdGxfaW5mbyhzaXplb2YoKmRydmRhdGEpLAorCQkJCQkgImNwdSIsIDEsICJMIiwgMSwgMiwgTlVMTCwgMCwgMCk7CisJaWYgKCFkY2kpCisJCXJldHVybiAtRU5PTUVNOworCisJZHJ2ZGF0YSA9IGRjaS0+cHZ0X2luZm87CisJZHJ2ZGF0YS0+YmFzZSA9IGJhc2U7CisJZGNpLT5kZXYgPSAmcGRldi0+ZGV2OworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRjaSk7CisKKwlpZCA9IG9mX21hdGNoX2RldmljZShhdXJvcmFfbDJfb2ZfbWF0Y2gsICZwZGV2LT5kZXYpOworCWRjaS0+ZWRhY19jaGVjayA9IGF1cm9yYV9sMl9wb2xsOworCWRjaS0+bW9kX25hbWUgPSBwZGV2LT5kZXYuZHJpdmVyLT5uYW1lOworCWRjaS0+Y3RsX25hbWUgPSBpZCA/IGlkLT5jb21wYXRpYmxlIDogInVua25vd24iOworCWRjaS0+ZGV2X25hbWUgPSBkZXZfbmFtZSgmcGRldi0+ZGV2KTsKKworCS8qIGNsZWFyIHJlZ2lzdGVycyAqLworCXdyaXRlbChBVVJPUkFfRVJSX0NOVF9DTFIsIGRydmRhdGEtPmJhc2UgKyBBVVJPUkFfRVJSX0NOVF9SRUcpOworCXdyaXRlbChBVVJPUkFfRVJSX0FUVFJfQ0FQX1ZBTElELCBkcnZkYXRhLT5iYXNlICsgQVVST1JBX0VSUl9BVFRSX0NBUF9SRUcpOworCisJaWYgKGVkYWNfZGV2aWNlX2FkZF9kZXZpY2UoZGNpKSkgeworCQllZGFjX2RldmljZV9mcmVlX2N0bF9pbmZvKGRjaSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworI2lmZGVmIENPTkZJR19FREFDX0RFQlVHCisJZHJ2ZGF0YS0+ZGVidWdmcyA9IGVkYWNfZGVidWdmc19jcmVhdGVfZGlyKGRldl9uYW1lKCZwZGV2LT5kZXYpKTsKKwlpZiAoZHJ2ZGF0YS0+ZGVidWdmcykgeworCQllZGFjX2RlYnVnZnNfY3JlYXRlX3gzMigiaW5qZWN0X2FkZHIiLCAwNjQ0LAorCQkJCQlkcnZkYXRhLT5kZWJ1Z2ZzLAorCQkJCQkmZHJ2ZGF0YS0+aW5qZWN0X2FkZHIpOworCQllZGFjX2RlYnVnZnNfY3JlYXRlX3gzMigiaW5qZWN0X21hc2siLCAwNjQ0LAorCQkJCQlkcnZkYXRhLT5kZWJ1Z2ZzLAorCQkJCQkmZHJ2ZGF0YS0+aW5qZWN0X21hc2spOworCQllZGFjX2RlYnVnZnNfY3JlYXRlX3g4KCJpbmplY3RfY3RsIiwgMDY0NCwKKwkJCQkgICAgICAgZHJ2ZGF0YS0+ZGVidWdmcywgJmRydmRhdGEtPmluamVjdF9jdGwpOworCX0KKyNlbmRpZgorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXVyb3JhX2wyX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBlZGFjX2RldmljZV9jdGxfaW5mbyAqZGNpID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisjaWZkZWYgQ09ORklHX0VEQUNfREVCVUcKKwlzdHJ1Y3QgYXVyb3JhX2wyX2RydmRhdGEgKmRydmRhdGEgPSBkY2ktPnB2dF9pbmZvOworCisJZWRhY19kZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoZHJ2ZGF0YS0+ZGVidWdmcyk7CisjZW5kaWYKKwllZGFjX2RldmljZV9kZWxfZGV2aWNlKCZwZGV2LT5kZXYpOworCWVkYWNfZGV2aWNlX2ZyZWVfY3RsX2luZm8oZGNpKTsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhdXJvcmFfbDJfZHJpdmVyID0geworCS5wcm9iZSA9IGF1cm9yYV9sMl9wcm9iZSwKKwkucmVtb3ZlID0gYXVyb3JhX2wyX3JlbW92ZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJhdXJvcmFfbDJfZWRhYyIsCisJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0cihhdXJvcmFfbDJfb2ZfbWF0Y2gpLAorCX0sCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqIERyaXZlciByZWdpc3RyYXRpb24gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqIGNvbnN0IGRyaXZlcnNbXSA9IHsKKwkmYXhwX21jX2RyaXZlciwKKwkmYXVyb3JhX2wyX2RyaXZlciwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGFybWFkYV94cF9lZGFjX2luaXQodm9pZCkKK3sKKwlpbnQgcmVzOworCisJLyogb25seSBwb2xsaW5nIGlzIHN1cHBvcnRlZCAqLworCWVkYWNfb3Bfc3RhdGUgPSBFREFDX09QU1RBVEVfUE9MTDsKKworCXJlcyA9IHBsYXRmb3JtX3JlZ2lzdGVyX2RyaXZlcnMoZHJpdmVycywgQVJSQVlfU0laRShkcml2ZXJzKSk7CisJaWYgKHJlcykKKwkJcHJfd2FybigiQXJhbWRhIFhQIEVEQUMgZHJpdmVycyBmYWlsIHRvIHJlZ2lzdGVyXG4iKTsKKworCXJldHVybiAwOworfQorbW9kdWxlX2luaXQoYXJtYWRhX3hwX2VkYWNfaW5pdCk7CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBhcm1hZGFfeHBfZWRhY19leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fdW5yZWdpc3Rlcl9kcml2ZXJzKGRyaXZlcnMsIEFSUkFZX1NJWkUoZHJpdmVycykpOworfQorbW9kdWxlX2V4aXQoYXJtYWRhX3hwX2VkYWNfZXhpdCk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKK01PRFVMRV9BVVRIT1IoIlBlbmd1dHJvbml4Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkVEQUMgRHJpdmVycyBmb3IgTWFydmVsbCBBcm1hZGEgWFAgU0RSQU0gYW5kIEwyIENhY2hlIENvbnRyb2xsZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2VkYWMvZGVidWdmcy5jCmluZGV4IDFmOTQzNTkuLjQ4MDQzMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9lZGFjL2RlYnVnZnMuYwpAQCAtMTM4LDMgKzEzOCwxNCBAQCB2b2lkIGVkYWNfZGVidWdmc19jcmVhdGVfeDE2KGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKIAlkZWJ1Z2ZzX2NyZWF0ZV94MTYobmFtZSwgbW9kZSwgcGFyZW50LCB2YWx1ZSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChlZGFjX2RlYnVnZnNfY3JlYXRlX3gxNik7CisKKy8qIFdyYXBwZXIgZm9yIGRlYnVnZnNfY3JlYXRlX3gzMigpICovCit2b2lkIGVkYWNfZGVidWdmc19jcmVhdGVfeDMyKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKKwkJCSAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB1MzIgKnZhbHVlKQoreworCWlmICghcGFyZW50KQorCQlwYXJlbnQgPSBlZGFjX2RlYnVnZnM7CisKKwlkZWJ1Z2ZzX2NyZWF0ZV94MzIobmFtZSwgbW9kZSwgcGFyZW50LCB2YWx1ZSk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChlZGFjX2RlYnVnZnNfY3JlYXRlX3gzMik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvZWRhY19tb2R1bGUuaCBiL2RyaXZlcnMvZWRhYy9lZGFjX21vZHVsZS5oCmluZGV4IGIyZjU5ZWUuLjM4ODQyN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9lZGFjX21vZHVsZS5oCisrKyBiL2RyaXZlcnMvZWRhYy9lZGFjX21vZHVsZS5oCkBAIC04Miw2ICs4Miw4IEBAIHZvaWQgZWRhY19kZWJ1Z2ZzX2NyZWF0ZV94OChjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCiAJCQkgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB1OCAqdmFsdWUpOwogdm9pZCBlZGFjX2RlYnVnZnNfY3JlYXRlX3gxNihjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCiAJCQkgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdTE2ICp2YWx1ZSk7Cit2b2lkIGVkYWNfZGVidWdmc19jcmVhdGVfeDMyKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKKwkJCSAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB1MzIgKnZhbHVlKTsKICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQgZWRhY19kZWJ1Z2ZzX2luaXQodm9pZCkJCQkJCXsgfQogc3RhdGljIGlubGluZSB2b2lkIGVkYWNfZGVidWdmc19leGl0KHZvaWQpCQkJCQl7IH0KQEAgLTk2LDYgKzk4LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGVkYWNfZGVidWdmc19jcmVhdGVfeDgoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogCQkJCQkgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdTggKnZhbHVlKQl7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBlZGFjX2RlYnVnZnNfY3JlYXRlX3gxNihjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCiAJCQkJCSAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdTE2ICp2YWx1ZSkJeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgZWRhY19kZWJ1Z2ZzX2NyZWF0ZV94MzIoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLAorCQkgICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB1MzIgKnZhbHVlKQkJCXsgfQogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2V4dGNvbi9LY29uZmlnIGIvZHJpdmVycy9leHRjb24vS2NvbmZpZwppbmRleCBmYTE4MDQ0Li5hYWM1MDdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2V4dGNvbi9LY29uZmlnCisrKyBiL2RyaXZlcnMvZXh0Y29uL0tjb25maWcKQEAgLTE4MSw3ICsxODEsNyBAQAogCiBjb25maWcgRVhUQ09OX1VTQkNfQ1JPU19FQwogCXRyaXN0YXRlICJDaHJvbWVPUyBFbWJlZGRlZCBDb250cm9sbGVyIEVYVENPTiBzdXBwb3J0IgotCWRlcGVuZHMgb24gTUZEX0NST1NfRUMKKwlkZXBlbmRzIG9uIENST1NfRUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGVuYWJsZSBVU0IgVHlwZSBDIGNhYmxlIGRldGVjdGlvbiBleHRjb24gc3VwcG9ydCB3aGVuCiAJICB1c2luZyBDaHJvbWUgT1MgRUMgYmFzZWQgVVNCIFR5cGUtQyBwb3J0cy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZXh0Y29uL2V4dGNvbi11c2JjLWNyb3MtZWMuYyBiL2RyaXZlcnMvZXh0Y29uL2V4dGNvbi11c2JjLWNyb3MtZWMuYwppbmRleCA0M2MwYTkzLi41MjkwY2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2V4dGNvbi9leHRjb24tdXNiYy1jcm9zLWVjLmMKKysrIGIvZHJpdmVycy9leHRjb24vZXh0Y29uLXVzYmMtY3Jvcy1lYy5jCkBAIC02LDEwICs2LDExIEBACiAKICNpbmNsdWRlIDxsaW51eC9leHRjb24tcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvYnJvYWRjb20vS2NvbmZpZyBiL2RyaXZlcnMvZmlybXdhcmUvYnJvYWRjb20vS2NvbmZpZwppbmRleCA2NDY4MDgyLi5kMDNlZDhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Zpcm13YXJlL2Jyb2FkY29tL0tjb25maWcKKysrIGIvZHJpdmVycy9maXJtd2FyZS9icm9hZGNvbS9LY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CiBjb25maWcgQkNNNDdYWF9OVlJBTQogCWJvb2wgIkJyb2FkY29tIE5WUkFNIGRyaXZlciIKLQlkZXBlbmRzIG9uIEJDTTQ3WFggfHwgQVJDSF9CQ01fNTMwMVgKKwlkZXBlbmRzIG9uIEJDTTQ3WFggfHwgQVJDSF9CQ01fNTMwMVggfHwgQ09NUElMRV9URVNUCiAJaGVscAogCSAgQnJvYWRjb20gaG9tZSByb3V0ZXJzIGNvbnRhaW4gZmxhc2ggcGFydGl0aW9uIGNhbGxlZCAibnZyYW0iIHdpdGggYWxsCiAJICBpbXBvcnRhbnQgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBhcyB3ZWxsIGFzIHNvbWUgbWlub3IgdXNlciBzZXR1cC4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvYnJvYWRjb20vYmNtNDd4eF9udnJhbS5jIGIvZHJpdmVycy9maXJtd2FyZS9icm9hZGNvbS9iY200N3h4X252cmFtLmMKaW5kZXggNzdlYjc0NjYuLmRhMDRmZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlybXdhcmUvYnJvYWRjb20vYmNtNDd4eF9udnJhbS5jCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvYnJvYWRjb20vYmNtNDd4eF9udnJhbS5jCkBAIC05Niw3ICs5Niw3IEBAIHN0YXRpYyBpbnQgbnZyYW1fZmluZF9hbmRfY29weSh2b2lkIF9faW9tZW0gKmlvYmFzZSwgdTMyIGxpbSkKIAkJbnZyYW1fbGVuID0gc2l6ZTsKIAl9CiAJaWYgKG52cmFtX2xlbiA+PSBOVlJBTV9TUEFDRSkgewotCQlwcl9lcnIoIm52cmFtIG9uIGZsYXNoICglaSBieXRlcykgaXMgYmlnZ2VyIHRoYW4gdGhlIHJlc2VydmVkIHNwYWNlIGluIG1lbW9yeSwgd2lsbCBqdXN0IGNvcHkgdGhlIGZpcnN0ICVpIGJ5dGVzXG4iLAorCQlwcl9lcnIoIm52cmFtIG9uIGZsYXNoICglenUgYnl0ZXMpIGlzIGJpZ2dlciB0aGFuIHRoZSByZXNlcnZlZCBzcGFjZSBpbiBtZW1vcnksIHdpbGwganVzdCBjb3B5IHRoZSBmaXJzdCAlaSBieXRlc1xuIiwKIAkJICAgICAgIG52cmFtX2xlbiwgTlZSQU1fU1BBQ0UgLSAxKTsKIAkJbnZyYW1fbGVuID0gTlZSQU1fU1BBQ0UgLSAxOwogCX0KQEAgLTE0OCw4ICsxNDgsOCBAQCBzdGF0aWMgaW50IG52cmFtX2luaXQodm9pZCkKIAkgICAgaGVhZGVyLmxlbiA+IHNpemVvZihoZWFkZXIpKSB7CiAJCW52cmFtX2xlbiA9IGhlYWRlci5sZW47CiAJCWlmIChudnJhbV9sZW4gPj0gTlZSQU1fU1BBQ0UpIHsKLQkJCXByX2VycigibnZyYW0gb24gZmxhc2ggKCVpIGJ5dGVzKSBpcyBiaWdnZXIgdGhhbiB0aGUgcmVzZXJ2ZWQgc3BhY2UgaW4gbWVtb3J5LCB3aWxsIGp1c3QgY29weSB0aGUgZmlyc3QgJWkgYnl0ZXNcbiIsCi0JCQkJaGVhZGVyLmxlbiwgTlZSQU1fU1BBQ0UpOworCQkJcHJfZXJyKCJudnJhbSBvbiBmbGFzaCAoJXp1IGJ5dGVzKSBpcyBiaWdnZXIgdGhhbiB0aGUgcmVzZXJ2ZWQgc3BhY2UgaW4gbWVtb3J5LCB3aWxsIGp1c3QgY29weSB0aGUgZmlyc3QgJWkgYnl0ZXNcbiIsCisJCQkJbnZyYW1fbGVuLCBOVlJBTV9TUEFDRSk7CiAJCQludnJhbV9sZW4gPSBOVlJBTV9TUEFDRSAtIDE7CiAJCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9lZmkvZWZpLmMgYi9kcml2ZXJzL2Zpcm13YXJlL2VmaS9lZmkuYwppbmRleCA4ZjFhYjA0Li44ZDNlNzc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Zpcm13YXJlL2VmaS9lZmkuYworKysgYi9kcml2ZXJzL2Zpcm13YXJlL2VmaS9lZmkuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KICNpbmNsdWRlIDxsaW51eC91Y3MyX3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L21lbWJsb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KIAogI2luY2x1ZGUgPGFzbS9lYXJseV9pb3JlbWFwLmg+CiAKQEAgLTIyMSw2ICsyMjIsMTEgQEAgc3RhdGljIHZvaWQgZ2VuZXJpY19vcHNfdW5yZWdpc3Rlcih2b2lkKQogc3RhdGljIGNoYXIgZWZpdmFyX3NzZHRbRUZJVkFSX1NTRFRfTkFNRV9NQVhdIF9faW5pdGRhdGE7CiBzdGF0aWMgaW50IF9faW5pdCBlZml2YXJfc3NkdF9zZXR1cChjaGFyICpzdHIpCiB7CisJaW50IHJldCA9IHNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX0FDUElfVEFCTEVTKTsKKworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAlpZiAoc3RybGVuKHN0cikgPCBzaXplb2YoZWZpdmFyX3NzZHQpKQogCQltZW1jcHkoZWZpdmFyX3NzZHQsIHN0ciwgc3RybGVuKHN0cikpOwogCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3Bpby9ncGlvLW12ZWJ1LmMgYi9kcml2ZXJzL2dwaW8vZ3Bpby1tdmVidS5jCmluZGV4IDg2OWQ0N2YuLjZjMDY4NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3Bpby9ncGlvLW12ZWJ1LmMKKysrIGIvZHJpdmVycy9ncGlvL2dwaW8tbXZlYnUuYwpAQCAtNjk0LDcgKzY5NCw3IEBAIHN0YXRpYyB2b2lkIG12ZWJ1X3B3bV9nZXRfc3RhdGUoc3RydWN0IHB3bV9jaGlwICpjaGlwLAogfQogCiBzdGF0aWMgaW50IG12ZWJ1X3B3bV9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCi0JCQkgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBtdmVidV9wd20gKm12cHdtID0gdG9fbXZlYnVfcHdtKGNoaXApOwogCXN0cnVjdCBtdmVidV9ncGlvX2NoaXAgKm12Y2hpcCA9IG12cHdtLT5tdmNoaXA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwaW8vZ3Bpb2xpYi5jIGIvZHJpdmVycy9ncGlvL2dwaW9saWIuYwppbmRleCA4MjI5ODg4Li5iZGJjMTY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwaW8vZ3Bpb2xpYi5jCisrKyBiL2RyaXZlcnMvZ3Bpby9ncGlvbGliLmMKQEAgLTEwODQsNyArMTA4NCw4IEBAIHN0YXRpYyBsb25nIGdwaW9faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQkgICAgdGVzdF9iaXQoRkxBR19JU19IT0dHRUQsICZkZXNjLT5mbGFncykgfHwKIAkJICAgIHRlc3RfYml0KEZMQUdfVVNFRF9BU19JUlEsICZkZXNjLT5mbGFncykgfHwKIAkJICAgIHRlc3RfYml0KEZMQUdfRVhQT1JULCAmZGVzYy0+ZmxhZ3MpIHx8Ci0JCSAgICB0ZXN0X2JpdChGTEFHX1NZU0ZTLCAmZGVzYy0+ZmxhZ3MpKQorCQkgICAgdGVzdF9iaXQoRkxBR19TWVNGUywgJmRlc2MtPmZsYWdzKSB8fAorCQkgICAgIXBpbmN0cmxfZ3Bpb19jYW5fdXNlX2xpbmUoY2hpcC0+YmFzZSArIGxpbmVpbmZvLmxpbmVfb2Zmc2V0KSkKIAkJCWxpbmVpbmZvLmZsYWdzIHw9IEdQSU9MSU5FX0ZMQUdfS0VSTkVMOwogCQlpZiAodGVzdF9iaXQoRkxBR19JU19PVVQsICZkZXNjLT5mbGFncykpCiAJCQlsaW5laW5mby5mbGFncyB8PSBHUElPTElORV9GTEFHX0lTX09VVDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKaW5kZXggM2M4ODQyMC4uZTY3YzE5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKQEAgLTI0LDYgKzI0LDEwIEBACiAJICBkZXRhaWxzLiAgWW91IHNob3VsZCBhbHNvIHNlbGVjdCBhbmQgY29uZmlndXJlIEFHUAogCSAgKC9kZXYvYWdwZ2FydCkgc3VwcG9ydCBpZiBpdCBpcyBhdmFpbGFibGUgZm9yIHlvdXIgcGxhdGZvcm0uCiAKK2NvbmZpZyBEUk1fTUlQSV9EQkkKKwl0cmlzdGF0ZQorCWRlcGVuZHMgb24gRFJNCisKIGNvbmZpZyBEUk1fTUlQSV9EU0kKIAlib29sCiAJZGVwZW5kcyBvbiBEUk0KQEAgLTMzNiw3ICszNDAsNyBAQAogCiBzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS9tZXNvbi9LY29uZmlnIgogCi1zb3VyY2UgImRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL0tjb25maWciCitzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWciCiAKIHNvdXJjZSAiZHJpdmVycy9ncHUvZHJtL3BsMTExL0tjb25maWciCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQppbmRleCA5ZjBkMmVlLi44MmZmODI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCkBAIC01NSw2ICs1NSw3IEBACiBvYmotJChDT05GSUdfRFJNX0RFQlVHX1NFTEZURVNUKSArPSBzZWxmdGVzdHMvCiAKIG9iai0kKENPTkZJR19EUk0pCSs9IGRybS5vCitvYmotJChDT05GSUdfRFJNX01JUElfREJJKSArPSBkcm1fbWlwaV9kYmkubwogb2JqLSQoQ09ORklHX0RSTV9NSVBJX0RTSSkgKz0gZHJtX21pcGlfZHNpLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfT1JJRU5UQVRJT05fUVVJUktTKSArPSBkcm1fcGFuZWxfb3JpZW50YXRpb25fcXVpcmtzLm8KIG9iai15CQkJKz0gYXJtLwpAQCAtNjIsNyArNjMsNiBAQAogb2JqLSQoQ09ORklHX0RSTV9TQ0hFRCkJKz0gc2NoZWR1bGVyLwogb2JqLSQoQ09ORklHX0RSTV9UREZYKQkrPSB0ZGZ4Lwogb2JqLSQoQ09ORklHX0RSTV9SMTI4KQkrPSByMTI4Lwotb2JqLSQoQ09ORklHX0hTQV9BTUQpICs9IGFtZC9hbWRrZmQvCiBvYmotJChDT05GSUdfRFJNX1JBREVPTikrPSByYWRlb24vCiBvYmotJChDT05GSUdfRFJNX0FNREdQVSkrPSBhbWQvYW1kZ3B1Lwogb2JqLSQoQ09ORklHX0RSTV9NR0EpCSs9IG1nYS8KQEAgLTExMSw3ICsxMTEsNyBAQAogb2JqLXkJCQkrPSBoaXNpbGljb24vCiBvYmotJChDT05GSUdfRFJNX1pURSkJKz0genRlLwogb2JqLSQoQ09ORklHX0RSTV9NWFNGQikJKz0gbXhzZmIvCi1vYmotJChDT05GSUdfRFJNX1RJTllEUk0pICs9IHRpbnlkcm0vCitvYmoteQkJCSs9IHRpbnkvCiBvYmotJChDT05GSUdfRFJNX1BMMTExKSArPSBwbDExMS8KIG9iai0kKENPTkZJR19EUk1fVFZFMjAwKSArPSB0dmUyMDAvCiBvYmotJChDT05GSUdfRFJNX1hFTikgKz0geGVuLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L0tjb25maWcKaW5kZXggZjZlNWMwMi4uMmU5OGMwMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZwpAQCAtMjcsNyArMjcsOSBAQAogY29uZmlnIERSTV9BTURHUFVfVVNFUlBUUgogCWJvb2wgIkFsd2F5cyBlbmFibGUgdXNlcnB0ciB3cml0ZSBzdXBwb3J0IgogCWRlcGVuZHMgb24gRFJNX0FNREdQVQotCWRlcGVuZHMgb24gSE1NX01JUlJPUgorCWRlcGVuZHMgb24gTU1VCisJc2VsZWN0IEhNTV9NSVJST1IKKwlzZWxlY3QgTU1VX05PVElGSUVSCiAJaGVscAogCSAgVGhpcyBvcHRpb24gc2VsZWN0cyBDT05GSUdfSE1NIGFuZCBDT05GSUdfSE1NX01JUlJPUiBpZiBpdAogCSAgaXNuJ3QgYWxyZWFkeSBzZWxlY3RlZCB0byBlbmFibGVkIGZ1bGwgdXNlcnB0ciBzdXBwb3J0LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQppbmRleCA1NmUwODQzLi40MmUyYzFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQpAQCAtNTQsNyArNTQsNyBAQAogCWFtZGdwdV9ndHRfbWdyLm8gYW1kZ3B1X3ZyYW1fbWdyLm8gYW1kZ3B1X3ZpcnQubyBhbWRncHVfYXRvbWZpcm13YXJlLm8gXAogCWFtZGdwdV92Zl9lcnJvci5vIGFtZGdwdV9zY2hlZC5vIGFtZGdwdV9kZWJ1Z2ZzLm8gYW1kZ3B1X2lkcy5vIFwKIAlhbWRncHVfZ21jLm8gYW1kZ3B1X3hnbWkubyBhbWRncHVfY3NhLm8gYW1kZ3B1X3Jhcy5vIGFtZGdwdV92bV9jcHUubyBcCi0JYW1kZ3B1X3ZtX3NkbWEubyBhbWRncHVfZGlzY292ZXJ5Lm8KKwlhbWRncHVfdm1fc2RtYS5vIGFtZGdwdV9wbXUubyBhbWRncHVfZGlzY292ZXJ5Lm8gYW1kZ3B1X3Jhc19lZXByb20ubyBzbXVfdjExXzBfaTJjLm8KIAogYW1kZ3B1LSQoQ09ORklHX1BFUkZfRVZFTlRTKSArPSBhbWRncHVfcG11Lm8KIApAQCAtNjYsNyArNjYsOCBAQAogCiBhbWRncHUteSArPSBcCiAJdmkubyBteGdwdV92aS5vIG5iaW9fdjZfMS5vIHNvYzE1Lm8gZW11X3NvYy5vIG14Z3B1X2FpLm8gbmJpb192N18wLm8gdmVnYTEwX3JlZ19pbml0Lm8gXAotCXZlZ2EyMF9yZWdfaW5pdC5vIG5iaW9fdjdfNC5vIG5iaW9fdjJfMy5vIG52Lm8gbmF2aTEwX3JlZ19pbml0Lm8KKwl2ZWdhMjBfcmVnX2luaXQubyBuYmlvX3Y3XzQubyBuYmlvX3YyXzMubyBudi5vIG5hdmkxMF9yZWdfaW5pdC5vIG5hdmkxNF9yZWdfaW5pdC5vIFwKKwlhcmN0X3JlZ19pbml0Lm8gbmF2aTEyX3JlZ19pbml0Lm8KIAogIyBhZGQgREYgYmxvY2sKIGFtZGdwdS15ICs9IFwKQEAgLTc3LDkgKzc4LDEzIEBACiBhbWRncHUteSArPSBcCiAJZ21jX3Y3XzAubyBcCiAJZ21jX3Y4XzAubyBcCi0JZ2Z4aHViX3YxXzAubyBtbWh1Yl92MV8wLm8gZ21jX3Y5XzAubyBnZnhodWJfdjFfMS5vIFwKKwlnZnhodWJfdjFfMC5vIG1taHViX3YxXzAubyBnbWNfdjlfMC5vIGdmeGh1Yl92MV8xLm8gbW1odWJfdjlfNC5vIFwKIAlnZnhodWJfdjJfMC5vIG1taHViX3YyXzAubyBnbWNfdjEwXzAubwogCisjIGFkZCBVTUMgYmxvY2sKK2FtZGdwdS15ICs9IFwKKwl1bWNfdjZfMS5vCisKICMgYWRkIElIIGJsb2NrCiBhbWRncHUteSArPSBcCiAJYW1kZ3B1X2lycS5vIFwKQEAgLTk1LDcgKzEwMCw4IEBACiAJYW1kZ3B1X3BzcC5vIFwKIAlwc3BfdjNfMS5vIFwKIAlwc3BfdjEwXzAubyBcCi0JcHNwX3YxMV8wLm8KKwlwc3BfdjExXzAubyBcCisJcHNwX3YxMl8wLm8KIAogIyBhZGQgU01DIGJsb2NrCiBhbWRncHUteSArPSBcCkBAIC0xNDQsMTAgKzE1MCwxMiBAQAogYW1kZ3B1LXkgKz0gXAogCWFtZGdwdV92Y24ubyBcCiAJdmNuX3YxXzAubyBcCi0JdmNuX3YyXzAubworCXZjbl92Ml8wLm8gXAorCXZjbl92Ml81Lm8KIAogIyBhZGQgQVRIVUIgYmxvY2sKIGFtZGdwdS15ICs9IFwKKwlhdGh1Yl92MV8wLm8gXAogCWF0aHViX3YyXzAubwogCiAjIGFkZCBhbWRrZmQgaW50ZXJmYWNlcwpAQCAtMTYyLDYgKzE3MCw3IEBACiAJIGFtZGdwdV9hbWRrZmRfZ3B1dm0ubyBcCiAJIGFtZGdwdV9hbWRrZmRfZ2Z4X3Y4Lm8gXAogCSBhbWRncHVfYW1ka2ZkX2dmeF92OS5vIFwKKwkgYW1kZ3B1X2FtZGtmZF9hcmN0dXJ1cy5vIFwKIAkgYW1kZ3B1X2FtZGtmZF9nZnhfdjEwLm8KIAogaWZuZXEgKCQoQ09ORklHX0RSTV9BTURHUFVfQ0lLKSwpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4IDgxOTlkMjAuLmJkMzdkZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCkBAIC04Niw2ICs4Niw4IEBACiAjaW5jbHVkZSAiYW1kZ3B1X3NtdS5oIgogI2luY2x1ZGUgImFtZGdwdV9kaXNjb3ZlcnkuaCIKICNpbmNsdWRlICJhbWRncHVfbWVzLmgiCisjaW5jbHVkZSAiYW1kZ3B1X3VtYy5oIgorI2luY2x1ZGUgImFtZGdwdV9tbWh1Yi5oIgogCiAjZGVmaW5lIE1BWF9HUFVfSU5TVEFOQ0UJCTE2CiAKQEAgLTUzMiw2ICs1MzQsMTQgQEAgc3RydWN0IGFtZGdwdV9hbGxvd2VkX3JlZ2lzdGVyX2VudHJ5IHsKIAlib29sIGdyYm1faW5kZXhlZDsKIH07CiAKK2VudW0gYW1kX3Jlc2V0X21ldGhvZCB7CisJQU1EX1JFU0VUX01FVEhPRF9MRUdBQ1kgPSAwLAorCUFNRF9SRVNFVF9NRVRIT0RfTU9ERTAsCisJQU1EX1JFU0VUX01FVEhPRF9NT0RFMSwKKwlBTURfUkVTRVRfTUVUSE9EX01PREUyLAorCUFNRF9SRVNFVF9NRVRIT0RfQkFDTworfTsKKwogLyoKICAqIEFTSUMgc3BlY2lmaWMgZnVuY3Rpb25zLgogICovCkBAIC01NDMsNiArNTUzLDcgQEAgc3RydWN0IGFtZGdwdV9hc2ljX2Z1bmNzIHsKIAkJCSAgICAgdTMyIHNoX251bSwgdTMyIHJlZ19vZmZzZXQsIHUzMiAqdmFsdWUpOwogCXZvaWQgKCpzZXRfdmdhX3N0YXRlKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCBzdGF0ZSk7CiAJaW50ICgqcmVzZXQpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKKwllbnVtIGFtZF9yZXNldF9tZXRob2QgKCpyZXNldF9tZXRob2QpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIAkvKiBnZXQgdGhlIHJlZmVyZW5jZSBjbG9jayAqLwogCXUzMiAoKmdldF94Y2xrKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAJLyogTU0gYmxvY2sgY2xvY2tzICovCkBAIC02MjcsNiArNjM4LDkgQEAgdm9pZCBhbWRncHVfY2dzX2Rlc3Ryb3lfZGV2aWNlKHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlKTsKIHR5cGVkZWYgdWludDMyX3QgKCphbWRncHVfcnJlZ190KShzdHJ1Y3QgYW1kZ3B1X2RldmljZSosIHVpbnQzMl90KTsKIHR5cGVkZWYgdm9pZCAoKmFtZGdwdV93cmVnX3QpKHN0cnVjdCBhbWRncHVfZGV2aWNlKiwgdWludDMyX3QsIHVpbnQzMl90KTsKIAordHlwZWRlZiB1aW50NjRfdCAoKmFtZGdwdV9ycmVnNjRfdCkoc3RydWN0IGFtZGdwdV9kZXZpY2UqLCB1aW50MzJfdCk7Cit0eXBlZGVmIHZvaWQgKCphbWRncHVfd3JlZzY0X3QpKHN0cnVjdCBhbWRncHVfZGV2aWNlKiwgdWludDMyX3QsIHVpbnQ2NF90KTsKKwogdHlwZWRlZiB1aW50MzJfdCAoKmFtZGdwdV9ibG9ja19ycmVnX3QpKHN0cnVjdCBhbWRncHVfZGV2aWNlKiwgdWludDMyX3QsIHVpbnQzMl90KTsKIHR5cGVkZWYgdm9pZCAoKmFtZGdwdV9ibG9ja193cmVnX3QpKHN0cnVjdCBhbWRncHVfZGV2aWNlKiwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7CiAKQEAgLTY0OCw2ICs2NjIsMTIgQEAgc3RydWN0IG5iaW9faGRwX2ZsdXNoX3JlZyB7CiAJdTMyIHJlZl9hbmRfbWFza19jcDk7CiAJdTMyIHJlZl9hbmRfbWFza19zZG1hMDsKIAl1MzIgcmVmX2FuZF9tYXNrX3NkbWExOworCXUzMiByZWZfYW5kX21hc2tfc2RtYTI7CisJdTMyIHJlZl9hbmRfbWFza19zZG1hMzsKKwl1MzIgcmVmX2FuZF9tYXNrX3NkbWE0OworCXUzMiByZWZfYW5kX21hc2tfc2RtYTU7CisJdTMyIHJlZl9hbmRfbWFza19zZG1hNjsKKwl1MzIgcmVmX2FuZF9tYXNrX3NkbWE3OwogfTsKIAogc3RydWN0IGFtZGdwdV9tbWlvX3JlbWFwIHsKQEAgLTY2OCw3ICs2ODgsNyBAQCBzdHJ1Y3QgYW1kZ3B1X25iaW9fZnVuY3MgewogCXZvaWQgKCpzZG1hX2Rvb3JiZWxsX3JhbmdlKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGluc3RhbmNlLAogCQkJYm9vbCB1c2VfZG9vcmJlbGwsIGludCBkb29yYmVsbF9pbmRleCwgaW50IGRvb3JiZWxsX3NpemUpOwogCXZvaWQgKCp2Y25fZG9vcmJlbGxfcmFuZ2UpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIHVzZV9kb29yYmVsbCwKLQkJCWludCBkb29yYmVsbF9pbmRleCk7CisJCQkJICAgaW50IGRvb3JiZWxsX2luZGV4LCBpbnQgaW5zdGFuY2UpOwogCXZvaWQgKCplbmFibGVfZG9vcmJlbGxfYXBlcnR1cmUpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCQkgYm9vbCBlbmFibGUpOwogCXZvaWQgKCplbmFibGVfZG9vcmJlbGxfc2VsZnJpbmdfYXBlcnR1cmUpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LApAQCAtNzA1LDYgKzcyNSw5IEBAIHN0cnVjdCBhbWRncHVfZGZfZnVuY3MgewogCQkJCQkgaW50IGlzX2Rpc2FibGUpOwogCXZvaWQgKCpwbWNfZ2V0X2NvdW50KShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3QgY29uZmlnLAogCQkJCQkgdWludDY0X3QgKmNvdW50KTsKKwl1aW50NjRfdCAoKmdldF9maWNhKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3QgZmljYWFfdmFsKTsKKwl2b2lkICgqc2V0X2ZpY2EpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCBmaWNhYV92YWwsCisJCQkgdWludDMyX3QgZmljYWRsX3ZhbCwgdWludDMyX3QgZmljYWRoX3ZhbCk7CiB9OwogLyogRGVmaW5lIHRoZSBIVyBJUCBibG9ja3Mgd2lsbCBiZSB1c2VkIGluIGRyaXZlciAsIGFkZCBtb3JlIGlmIG5lY2Vzc2FyeSAqLwogZW51bSBhbWRfaHdfaXBfYmxvY2tfdHlwZSB7CkBAIC03MTIsNiArNzM1LDEyIEBAIGVudW0gYW1kX2h3X2lwX2Jsb2NrX3R5cGUgewogCUhEUF9IV0lQLAogCVNETUEwX0hXSVAsCiAJU0RNQTFfSFdJUCwKKwlTRE1BMl9IV0lQLAorCVNETUEzX0hXSVAsCisJU0RNQTRfSFdJUCwKKwlTRE1BNV9IV0lQLAorCVNETUE2X0hXSVAsCisJU0RNQTdfSFdJUCwKIAlNTUhVQl9IV0lQLAogCUFUSFVCX0hXSVAsCiAJTkJJT19IV0lQLApAQCAtNzI4LDEwICs3NTcsMTIgQEAgZW51bSBhbWRfaHdfaXBfYmxvY2tfdHlwZSB7CiAJTkJJRl9IV0lQLAogCVRITV9IV0lQLAogCUNMS19IV0lQLAorCVVNQ19IV0lQLAorCVJTTVVfSFdJUCwKIAlNQVhfSFdJUAogfTsKIAotI2RlZmluZSBIV0lQX01BWF9JTlNUQU5DRQk2CisjZGVmaW5lIEhXSVBfTUFYX0lOU1RBTkNFCTgKIAogc3RydWN0IGFtZF9wb3dlcnBsYXkgewogCXZvaWQgKnBwX2hhbmRsZTsKQEAgLTc1OCw3ICs3ODksNiBAQCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSB7CiAJaW50CQkJCXVzZWNfdGltZW91dDsKIAljb25zdCBzdHJ1Y3QgYW1kZ3B1X2FzaWNfZnVuY3MJKmFzaWNfZnVuY3M7CiAJYm9vbAkJCQlzaHV0ZG93bjsKLQlib29sCQkJCW5lZWRfZG1hMzI7CiAJYm9vbAkJCQluZWVkX3N3aW90bGI7CiAJYm9vbAkJCQlhY2NlbF93b3JraW5nOwogCXN0cnVjdCBub3RpZmllcl9ibG9jawkJYWNwaV9uYjsKQEAgLTgwMyw2ICs4MzMsOCBAQCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSB7CiAJYW1kZ3B1X3dyZWdfdAkJCXBjaWVfd3JlZzsKIAlhbWRncHVfcnJlZ190CQkJcGNpZXBfcnJlZzsKIAlhbWRncHVfd3JlZ190CQkJcGNpZXBfd3JlZzsKKwlhbWRncHVfcnJlZzY0X3QJCQlwY2llX3JyZWc2NDsKKwlhbWRncHVfd3JlZzY0X3QJCQlwY2llX3dyZWc2NDsKIAkvKiBwcm90ZWN0cyBjb25jdXJyZW50IFVWRCByZWdpc3RlciBhY2Nlc3MgKi8KIAlzcGlubG9ja190IHV2ZF9jdHhfaWR4X2xvY2s7CiAJYW1kZ3B1X3JyZWdfdAkJCXV2ZF9jdHhfcnJlZzsKQEAgLTgzNiw2ICs4NjgsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSB7CiAJZG1hX2FkZHJfdAkJCWR1bW15X3BhZ2VfYWRkcjsKIAlzdHJ1Y3QgYW1kZ3B1X3ZtX21hbmFnZXIJdm1fbWFuYWdlcjsKIAlzdHJ1Y3QgYW1kZ3B1X3ZtaHViICAgICAgICAgICAgIHZtaHViW0FNREdQVV9NQVhfVk1IVUJTXTsKKwl1bnNpZ25lZAkJCW51bV92bWh1YnM7CiAKIAkvKiBtZW1vcnkgbWFuYWdlbWVudCAqLwogCXN0cnVjdCBhbWRncHVfbW1hbgkJbW1hbjsKQEAgLTkxNSw2ICs5NDgsOSBAQCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSB7CiAJLyogS0ZEICovCiAJc3RydWN0IGFtZGdwdV9rZmRfZGV2CQlrZmQ7CiAKKwkvKiBVTUMgKi8KKwlzdHJ1Y3QgYW1kZ3B1X3VtYwkJdW1jOworCiAJLyogZGlzcGxheSByZWxhdGVkIGZ1bmN0aW9uYWxpdHkgKi8KIAlzdHJ1Y3QgYW1kZ3B1X2Rpc3BsYXlfbWFuYWdlciBkbTsKIApAQCAtOTQwLDYgKzk3Niw3IEBAIHN0cnVjdCBhbWRncHVfZGV2aWNlIHsKIAogCWNvbnN0IHN0cnVjdCBhbWRncHVfbmJpb19mdW5jcwkqbmJpb19mdW5jczsKIAljb25zdCBzdHJ1Y3QgYW1kZ3B1X2RmX2Z1bmNzCSpkZl9mdW5jczsKKwljb25zdCBzdHJ1Y3QgYW1kZ3B1X21taHViX2Z1bmNzCSptbWh1Yl9mdW5jczsKIAogCS8qIGRlbGF5ZWQgd29ya19mdW5jIGZvciBkZWZlcnJpbmcgY2xvY2tnYXRpbmcgZHVyaW5nIHJlc3VtZSAqLwogCXN0cnVjdCBkZWxheWVkX3dvcmsgICAgIGRlbGF5ZWRfaW5pdF93b3JrOwpAQCAtOTY1LDYgKzEwMDIsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSB7CiAJLyogcmVjb3JkIGxhc3QgbW0gaW5kZXggYmVpbmcgd3JpdHRlbiB0aHJvdWdoIFdSRUczMiovCiAJdW5zaWduZWQgbG9uZyBsYXN0X21tX2luZGV4OwogCWJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fZ3B1X3Jlc2V0OworCWVudW0gcHBfbXAxX3N0YXRlICAgICAgICAgICAgICAgbXAxX3N0YXRlOwogCXN0cnVjdCBtdXRleCAgbG9ja19yZXNldDsKIAlzdHJ1Y3QgYW1kZ3B1X2Rvb3JiZWxsX2luZGV4IGRvb3JiZWxsX2luZGV4OwogCkBAIC0xMDMzLDYgKzEwNzEsOCBAQCBpbnQgZW11X3NvY19hc2ljX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogI2RlZmluZSBXUkVHMzJfUENJRShyZWcsIHYpIGFkZXYtPnBjaWVfd3JlZyhhZGV2LCAocmVnKSwgKHYpKQogI2RlZmluZSBSUkVHMzJfUENJRV9QT1JUKHJlZykgYWRldi0+cGNpZXBfcnJlZyhhZGV2LCAocmVnKSkKICNkZWZpbmUgV1JFRzMyX1BDSUVfUE9SVChyZWcsIHYpIGFkZXYtPnBjaWVwX3dyZWcoYWRldiwgKHJlZyksICh2KSkKKyNkZWZpbmUgUlJFRzY0X1BDSUUocmVnKSBhZGV2LT5wY2llX3JyZWc2NChhZGV2LCAocmVnKSkKKyNkZWZpbmUgV1JFRzY0X1BDSUUocmVnLCB2KSBhZGV2LT5wY2llX3dyZWc2NChhZGV2LCAocmVnKSwgKHYpKQogI2RlZmluZSBSUkVHMzJfU01DKHJlZykgYWRldi0+c21jX3JyZWcoYWRldiwgKHJlZykpCiAjZGVmaW5lIFdSRUczMl9TTUMocmVnLCB2KSBhZGV2LT5zbWNfd3JlZyhhZGV2LCAocmVnKSwgKHYpKQogI2RlZmluZSBSUkVHMzJfVVZEX0NUWChyZWcpIGFkZXYtPnV2ZF9jdHhfcnJlZyhhZGV2LCAocmVnKSkKQEAgLTEwOTMsNiArMTEzMyw3IEBAIGludCBlbXVfc29jX2FzaWNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAgKi8KICNkZWZpbmUgYW1kZ3B1X2FzaWNfc2V0X3ZnYV9zdGF0ZShhZGV2LCBzdGF0ZSkgKGFkZXYpLT5hc2ljX2Z1bmNzLT5zZXRfdmdhX3N0YXRlKChhZGV2KSwgKHN0YXRlKSkKICNkZWZpbmUgYW1kZ3B1X2FzaWNfcmVzZXQoYWRldikgKGFkZXYpLT5hc2ljX2Z1bmNzLT5yZXNldCgoYWRldikpCisjZGVmaW5lIGFtZGdwdV9hc2ljX3Jlc2V0X21ldGhvZChhZGV2KSAoYWRldiktPmFzaWNfZnVuY3MtPnJlc2V0X21ldGhvZCgoYWRldikpCiAjZGVmaW5lIGFtZGdwdV9hc2ljX2dldF94Y2xrKGFkZXYpIChhZGV2KS0+YXNpY19mdW5jcy0+Z2V0X3hjbGsoKGFkZXYpKQogI2RlZmluZSBhbWRncHVfYXNpY19zZXRfdXZkX2Nsb2NrcyhhZGV2LCB2LCBkKSAoYWRldiktPmFzaWNfZnVuY3MtPnNldF91dmRfY2xvY2tzKChhZGV2KSwgKHYpLCAoZCkpCiAjZGVmaW5lIGFtZGdwdV9hc2ljX3NldF92Y2VfY2xvY2tzKGFkZXYsIGV2LCBlYykgKGFkZXYpLT5hc2ljX2Z1bmNzLT5zZXRfdmNlX2Nsb2NrcygoYWRldiksIChldiksIChlYykpCkBAIC0xMTEwLDYgKzExNTEsNyBAQCBpbnQgZW11X3NvY19hc2ljX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogI2RlZmluZSBhbWRncHVfYXNpY19nZXRfcGNpZV91c2FnZShhZGV2LCBjbnQwLCBjbnQxKSAoKGFkZXYpLT5hc2ljX2Z1bmNzLT5nZXRfcGNpZV91c2FnZSgoYWRldiksIChjbnQwKSwgKGNudDEpKSkKICNkZWZpbmUgYW1kZ3B1X2FzaWNfbmVlZF9yZXNldF9vbl9pbml0KGFkZXYpIChhZGV2KS0+YXNpY19mdW5jcy0+bmVlZF9yZXNldF9vbl9pbml0KChhZGV2KSkKICNkZWZpbmUgYW1kZ3B1X2FzaWNfZ2V0X3BjaWVfcmVwbGF5X2NvdW50KGFkZXYpICgoYWRldiktPmFzaWNfZnVuY3MtPmdldF9wY2llX3JlcGxheV9jb3VudCgoYWRldikpKQorI2RlZmluZSBhbWRncHVfaW5jX3ZyYW1fbG9zdChhZGV2KSBhdG9taWNfaW5jKCYoKGFkZXYpLT52cmFtX2xvc3RfY291bnRlcikpOwogCiAvKiBDb21tb24gZnVuY3Rpb25zICovCiBib29sIGFtZGdwdV9kZXZpY2Vfc2hvdWxkX3JlY292ZXJfZ3B1KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYwppbmRleCA5ZmE0ZjI1Li4wN2ViMjk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5jCkBAIC04Nyw3ICs4NywxMiBAQCB2b2lkIGFtZGdwdV9hbWRrZmRfZGV2aWNlX3Byb2JlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWNhc2UgQ0hJUF9SQVZFTjoKIAkJa2ZkMmtnZCA9IGFtZGdwdV9hbWRrZmRfZ2Z4XzlfMF9nZXRfZnVuY3Rpb25zKCk7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9BUkNUVVJVUzoKKwkJa2ZkMmtnZCA9IGFtZGdwdV9hbWRrZmRfYXJjdHVydXNfZ2V0X2Z1bmN0aW9ucygpOworCQlicmVhazsKIAljYXNlIENISVBfTkFWSTEwOgorCWNhc2UgQ0hJUF9OQVZJMTQ6CisJY2FzZSBDSElQX05BVkkxMjoKIAkJa2ZkMmtnZCA9IGFtZGdwdV9hbWRrZmRfZ2Z4XzEwXzBfZ2V0X2Z1bmN0aW9ucygpOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtNjUxLDggKzY1NiwxMiBAQCB2b2lkIGFtZGdwdV9hbWRrZmRfc2V0X2NvbXB1dGVfaWRsZShzdHJ1Y3Qga2dkX2RldiAqa2dkLCBib29sIGlkbGUpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilrZ2Q7CiAKLQlpZiAoYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzICYmCi0JICAgIGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+c3dpdGNoX3Bvd2VyX3Byb2ZpbGUpCisJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQorCQlzbXVfc3dpdGNoX3Bvd2VyX3Byb2ZpbGUoJmFkZXYtPnNtdSwKKwkJCQkJIFBQX1NNQ19QT1dFUl9QUk9GSUxFX0NPTVBVVEUsCisJCQkJCSAhaWRsZSk7CisJZWxzZSBpZiAoYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzICYmCisJCSBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnN3aXRjaF9wb3dlcl9wcm9maWxlKQogCQlhbWRncHVfZHBtX3N3aXRjaF9wb3dlcl9wcm9maWxlKGFkZXYsCiAJCQkJCQlQUF9TTUNfUE9XRVJfUFJPRklMRV9DT01QVVRFLAogCQkJCQkJIWlkbGUpOwpAQCAtNzE1LDYgKzcyNCwxMSBAQCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfOV8wX2dldF9mdW5jdGlvbnModm9pZCkKIAlyZXR1cm4gTlVMTDsKIH0KIAorc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmFtZGdwdV9hbWRrZmRfYXJjdHVydXNfZ2V0X2Z1bmN0aW9ucyh2b2lkKQoreworCXJldHVybiBOVUxMOworfQorCiBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfMTBfMF9nZXRfZnVuY3Rpb25zKHZvaWQpCiB7CiAJcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmgKaW5kZXggYjYwNzZkMS4uZTUxOWRmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuaApAQCAtMTQwLDYgKzE0MCw3IEBAIGJvb2wgYW1kZ3B1X2FtZGtmZF9oYXZlX2F0b21pY3Nfc3VwcG9ydChzdHJ1Y3Qga2dkX2RldiAqa2dkKTsKIHN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRncHVfYW1ka2ZkX2dmeF83X2dldF9mdW5jdGlvbnModm9pZCk7CiBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfOF8wX2dldF9mdW5jdGlvbnModm9pZCk7CiBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfOV8wX2dldF9mdW5jdGlvbnModm9pZCk7CitzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9hcmN0dXJ1c19nZXRfZnVuY3Rpb25zKHZvaWQpOwogc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmFtZGdwdV9hbWRrZmRfZ2Z4XzEwXzBfZ2V0X2Z1bmN0aW9ucyh2b2lkKTsKIAogYm9vbCBhbWRncHVfYW1ka2ZkX2lzX2tmZF92bWlkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgdm1pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2FyY3R1cnVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2FyY3R1cnVzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc5YWFlYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfYXJjdHVydXMuYwpAQCAtMCwwICsxLDMyMyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjdW5kZWYgcHJfZm10CisjZGVmaW5lIHByX2ZtdChmbXQpICJrZmQya2dkOiAiIGZtdAorCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZmR0YWJsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9tbXVfY29udGV4dC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSAiYW1kZ3B1LmgiCisjaW5jbHVkZSAiYW1kZ3B1X2FtZGtmZC5oIgorI2luY2x1ZGUgInNkbWEwL3NkbWEwXzRfMl8yX29mZnNldC5oIgorI2luY2x1ZGUgInNkbWEwL3NkbWEwXzRfMl8yX3NoX21hc2suaCIKKyNpbmNsdWRlICJzZG1hMS9zZG1hMV80XzJfMl9vZmZzZXQuaCIKKyNpbmNsdWRlICJzZG1hMS9zZG1hMV80XzJfMl9zaF9tYXNrLmgiCisjaW5jbHVkZSAic2RtYTIvc2RtYTJfNF8yXzJfb2Zmc2V0LmgiCisjaW5jbHVkZSAic2RtYTIvc2RtYTJfNF8yXzJfc2hfbWFzay5oIgorI2luY2x1ZGUgInNkbWEzL3NkbWEzXzRfMl8yX29mZnNldC5oIgorI2luY2x1ZGUgInNkbWEzL3NkbWEzXzRfMl8yX3NoX21hc2suaCIKKyNpbmNsdWRlICJzZG1hNC9zZG1hNF80XzJfMl9vZmZzZXQuaCIKKyNpbmNsdWRlICJzZG1hNC9zZG1hNF80XzJfMl9zaF9tYXNrLmgiCisjaW5jbHVkZSAic2RtYTUvc2RtYTVfNF8yXzJfb2Zmc2V0LmgiCisjaW5jbHVkZSAic2RtYTUvc2RtYTVfNF8yXzJfc2hfbWFzay5oIgorI2luY2x1ZGUgInNkbWE2L3NkbWE2XzRfMl8yX29mZnNldC5oIgorI2luY2x1ZGUgInNkbWE2L3NkbWE2XzRfMl8yX3NoX21hc2suaCIKKyNpbmNsdWRlICJzZG1hNy9zZG1hN180XzJfMl9vZmZzZXQuaCIKKyNpbmNsdWRlICJzZG1hNy9zZG1hN180XzJfMl9zaF9tYXNrLmgiCisjaW5jbHVkZSAidjlfc3RydWN0cy5oIgorI2luY2x1ZGUgInNvYzE1LmgiCisjaW5jbHVkZSAic29jMTVkLmgiCisjaW5jbHVkZSAiYW1kZ3B1X2FtZGtmZF9nZnhfdjkuaCIKKworI2RlZmluZSBIUURfTl9SRUdTIDU2CisjZGVmaW5lIERVTVBfUkVHKGFkZHIpIGRvIHsJCQkJXAorCQlpZiAoV0FSTl9PTl9PTkNFKGkgPj0gSFFEX05fUkVHUykpCVwKKwkJCWJyZWFrOwkJCQlcCisJCSgqZHVtcClbaV1bMF0gPSAoYWRkcikgPDwgMjsJCVwKKwkJKCpkdW1wKVtpKytdWzFdID0gUlJFRzMyKGFkZHIpOwkJXAorCX0gd2hpbGUgKDApCisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmdldF9hbWRncHVfZGV2aWNlKHN0cnVjdCBrZ2RfZGV2ICprZ2QpCit7CisJcmV0dXJuIChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWtnZDsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3Qgdjlfc2RtYV9tcWQgKmdldF9zZG1hX21xZCh2b2lkICptcWQpCit7CisJcmV0dXJuIChzdHJ1Y3Qgdjlfc2RtYV9tcWQgKiltcWQ7Cit9CisKK3N0YXRpYyB1aW50MzJfdCBnZXRfc2RtYV9iYXNlX2FkZHIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJdW5zaWduZWQgaW50IGVuZ2luZV9pZCwKKwkJCQl1bnNpZ25lZCBpbnQgcXVldWVfaWQpCit7CisJdWludDMyX3QgYmFzZVs4XSA9IHsKKwkJU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwKKwkJCQkgbW1TRE1BMF9STEMwX1JCX0NOVEwpIC0gbW1TRE1BMF9STEMwX1JCX0NOVEwsCisJCVNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsCisJCQkJIG1tU0RNQTFfUkxDMF9SQl9DTlRMKSAtIG1tU0RNQTFfUkxDMF9SQl9DTlRMLAorCQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEyLCAwLAorCQkJCSBtbVNETUEyX1JMQzBfUkJfQ05UTCkgLSBtbVNETUEyX1JMQzBfUkJfQ05UTCwKKwkJU09DMTVfUkVHX09GRlNFVChTRE1BMywgMCwKKwkJCQkgbW1TRE1BM19STEMwX1JCX0NOVEwpIC0gbW1TRE1BM19STEMwX1JCX0NOVEwsCisJCVNPQzE1X1JFR19PRkZTRVQoU0RNQTQsIDAsCisJCQkJIG1tU0RNQTRfUkxDMF9SQl9DTlRMKSAtIG1tU0RNQTRfUkxDMF9SQl9DTlRMLAorCQlTT0MxNV9SRUdfT0ZGU0VUKFNETUE1LCAwLAorCQkJCSBtbVNETUE1X1JMQzBfUkJfQ05UTCkgLSBtbVNETUE1X1JMQzBfUkJfQ05UTCwKKwkJU09DMTVfUkVHX09GRlNFVChTRE1BNiwgMCwKKwkJCQkgbW1TRE1BNl9STEMwX1JCX0NOVEwpIC0gbW1TRE1BNl9STEMwX1JCX0NOVEwsCisJCVNPQzE1X1JFR19PRkZTRVQoU0RNQTcsIDAsCisJCQkJIG1tU0RNQTdfUkxDMF9SQl9DTlRMKSAtIG1tU0RNQTdfUkxDMF9SQl9DTlRMCisJfTsKKwl1aW50MzJfdCByZXR2YWw7CisKKwlyZXR2YWwgPSBiYXNlW2VuZ2luZV9pZF0gKyBxdWV1ZV9pZCAqIChtbVNETUEwX1JMQzFfUkJfQ05UTCAtCisJCQkJCSAgICAgICBtbVNETUEwX1JMQzBfUkJfQ05UTCk7CisKKwlwcl9kZWJ1Zygic2RtYSBiYXNlIGFkZHJlc3M6IDB4JXhcbiIsIHJldHZhbCk7CisKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgdTMyIHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJdTMyIGluc3RhbmNlLCB1MzIgb2Zmc2V0KQoreworCXN3aXRjaCAoaW5zdGFuY2UpIHsKKwljYXNlIDA6CisJCXJldHVybiAoYWRldi0+cmVnX29mZnNldFtTRE1BMF9IV0lQXVswXVswXSArIG9mZnNldCk7CisJY2FzZSAxOgorCQlyZXR1cm4gKGFkZXYtPnJlZ19vZmZzZXRbU0RNQTFfSFdJUF1bMF1bMV0gKyBvZmZzZXQpOworCWNhc2UgMjoKKwkJcmV0dXJuIChhZGV2LT5yZWdfb2Zmc2V0W1NETUEyX0hXSVBdWzBdWzFdICsgb2Zmc2V0KTsKKwljYXNlIDM6CisJCXJldHVybiAoYWRldi0+cmVnX29mZnNldFtTRE1BM19IV0lQXVswXVsxXSArIG9mZnNldCk7CisJY2FzZSA0OgorCQlyZXR1cm4gKGFkZXYtPnJlZ19vZmZzZXRbU0RNQTRfSFdJUF1bMF1bMV0gKyBvZmZzZXQpOworCWNhc2UgNToKKwkJcmV0dXJuIChhZGV2LT5yZWdfb2Zmc2V0W1NETUE1X0hXSVBdWzBdWzFdICsgb2Zmc2V0KTsKKwljYXNlIDY6CisJCXJldHVybiAoYWRldi0+cmVnX29mZnNldFtTRE1BNl9IV0lQXVswXVsxXSArIG9mZnNldCk7CisJY2FzZSA3OgorCQlyZXR1cm4gKGFkZXYtPnJlZ19vZmZzZXRbU0RNQTdfSFdJUF1bMF1bMV0gKyBvZmZzZXQpOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBrZ2RfaHFkX3NkbWFfbG9hZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB2b2lkICptcWQsCisJCQkgICAgIHVpbnQzMl90IF9fdXNlciAqd3B0ciwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2QpOworCXN0cnVjdCB2OV9zZG1hX21xZCAqbTsKKwl1aW50MzJfdCBzZG1hX2Jhc2VfYWRkciwgc2RtYXhfZ2Z4X2NvbnRleHRfY250bDsKKwl1bnNpZ25lZCBsb25nIGVuZF9qaWZmaWVzOworCXVpbnQzMl90IGRhdGE7CisJdWludDY0X3QgZGF0YTY0OworCXVpbnQ2NF90IF9fdXNlciAqd3B0cjY0ID0gKHVpbnQ2NF90IF9fdXNlciAqKXdwdHI7CisKKwltID0gZ2V0X3NkbWFfbXFkKG1xZCk7CisJc2RtYV9iYXNlX2FkZHIgPSBnZXRfc2RtYV9iYXNlX2FkZHIoYWRldiwgbS0+c2RtYV9lbmdpbmVfaWQsCisJCQkJCSAgICBtLT5zZG1hX3F1ZXVlX2lkKTsKKwlzZG1heF9nZnhfY29udGV4dF9jbnRsID0gc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsCisJCQltLT5zZG1hX2VuZ2luZV9pZCwgbW1TRE1BMF9HRlhfQ09OVEVYVF9DTlRMKTsKKworCVdSRUczMihzZG1hX2Jhc2VfYWRkciArIG1tU0RNQTBfUkxDMF9SQl9DTlRMLAorCQltLT5zZG1heF9ybGN4X3JiX2NudGwgJiAoflNETUEwX1JMQzBfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0spKTsKKworCWVuZF9qaWZmaWVzID0gbXNlY3NfdG9famlmZmllcygyMDAwKSArIGppZmZpZXM7CisJd2hpbGUgKHRydWUpIHsKKwkJZGF0YSA9IFJSRUczMihzZG1hX2Jhc2VfYWRkciArIG1tU0RNQTBfUkxDMF9DT05URVhUX1NUQVRVUyk7CisJCWlmIChkYXRhICYgU0RNQTBfUkxDMF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLKQorCQkJYnJlYWs7CisJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIGVuZF9qaWZmaWVzKSkKKwkJCXJldHVybiAtRVRJTUU7CisJCXVzbGVlcF9yYW5nZSg1MDAsIDEwMDApOworCX0KKwlkYXRhID0gUlJFRzMyKHNkbWF4X2dmeF9jb250ZXh0X2NudGwpOworCWRhdGEgPSBSRUdfU0VUX0ZJRUxEKGRhdGEsIFNETUEwX0dGWF9DT05URVhUX0NOVEwsCisJCQkgICAgIFJFU1VNRV9DVFgsIDApOworCVdSRUczMihzZG1heF9nZnhfY29udGV4dF9jbnRsLCBkYXRhKTsKKworCVdSRUczMihzZG1hX2Jhc2VfYWRkciArIG1tU0RNQTBfUkxDMF9ET09SQkVMTF9PRkZTRVQsCisJICAgICAgIG0tPnNkbWF4X3JsY3hfZG9vcmJlbGxfb2Zmc2V0KTsKKworCWRhdGEgPSBSRUdfU0VUX0ZJRUxEKG0tPnNkbWF4X3JsY3hfZG9vcmJlbGwsIFNETUEwX1JMQzBfRE9PUkJFTEwsCisJCQkgICAgIEVOQUJMRSwgMSk7CisJV1JFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX0RPT1JCRUxMLCBkYXRhKTsKKwlXUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfUkJfUlBUUiwgbS0+c2RtYXhfcmxjeF9yYl9ycHRyKTsKKwlXUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfUkJfUlBUUl9ISSwKKwkJCQltLT5zZG1heF9ybGN4X3JiX3JwdHJfaGkpOworCisJV1JFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX01JTk9SX1BUUl9VUERBVEUsIDEpOworCWlmIChyZWFkX3VzZXJfd3B0cihtbSwgd3B0cjY0LCBkYXRhNjQpKSB7CisJCVdSRUczMihzZG1hX2Jhc2VfYWRkciArIG1tU0RNQTBfUkxDMF9SQl9XUFRSLAorCQkgICAgICAgbG93ZXJfMzJfYml0cyhkYXRhNjQpKTsKKwkJV1JFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX1dQVFJfSEksCisJCSAgICAgICB1cHBlcl8zMl9iaXRzKGRhdGE2NCkpOworCX0gZWxzZSB7CisJCVdSRUczMihzZG1hX2Jhc2VfYWRkciArIG1tU0RNQTBfUkxDMF9SQl9XUFRSLAorCQkgICAgICAgbS0+c2RtYXhfcmxjeF9yYl9ycHRyKTsKKwkJV1JFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX1dQVFJfSEksCisJCSAgICAgICBtLT5zZG1heF9ybGN4X3JiX3JwdHJfaGkpOworCX0KKwlXUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfTUlOT1JfUFRSX1VQREFURSwgMCk7CisKKwlXUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfUkJfQkFTRSwgbS0+c2RtYXhfcmxjeF9yYl9iYXNlKTsKKwlXUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfUkJfQkFTRV9ISSwKKwkJCW0tPnNkbWF4X3JsY3hfcmJfYmFzZV9oaSk7CisJV1JFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX1JQVFJfQUREUl9MTywKKwkJCW0tPnNkbWF4X3JsY3hfcmJfcnB0cl9hZGRyX2xvKTsKKwlXUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfUkJfUlBUUl9BRERSX0hJLAorCQkJbS0+c2RtYXhfcmxjeF9yYl9ycHRyX2FkZHJfaGkpOworCisJZGF0YSA9IFJFR19TRVRfRklFTEQobS0+c2RtYXhfcmxjeF9yYl9jbnRsLCBTRE1BMF9STEMwX1JCX0NOVEwsCisJCQkgICAgIFJCX0VOQUJMRSwgMSk7CisJV1JFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX0NOVEwsIGRhdGEpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQga2dkX2hxZF9zZG1hX2R1bXAoc3RydWN0IGtnZF9kZXYgKmtnZCwKKwkJCSAgICAgdWludDMyX3QgZW5naW5lX2lkLCB1aW50MzJfdCBxdWV1ZV9pZCwKKwkJCSAgICAgdWludDMyX3QgKCoqZHVtcClbMl0sIHVpbnQzMl90ICpuX3JlZ3MpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2QpOworCXVpbnQzMl90IHNkbWFfYmFzZV9hZGRyID0gZ2V0X3NkbWFfYmFzZV9hZGRyKGFkZXYsIGVuZ2luZV9pZCwgcXVldWVfaWQpOworCXVpbnQzMl90IGkgPSAwLCByZWc7CisjdW5kZWYgSFFEX05fUkVHUworI2RlZmluZSBIUURfTl9SRUdTICgxOSs2KzcrMTApCisKKwkqZHVtcCA9IGttYWxsb2NfYXJyYXkoSFFEX05fUkVHUyAqIDIsIHNpemVvZih1aW50MzJfdCksIEdGUF9LRVJORUwpOworCWlmICgqZHVtcCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAocmVnID0gbW1TRE1BMF9STEMwX1JCX0NOVEw7IHJlZyA8PSBtbVNETUEwX1JMQzBfRE9PUkJFTEw7IHJlZysrKQorCQlEVU1QX1JFRyhzZG1hX2Jhc2VfYWRkciArIHJlZyk7CisJZm9yIChyZWcgPSBtbVNETUEwX1JMQzBfU1RBVFVTOyByZWcgPD0gbW1TRE1BMF9STEMwX0NTQV9BRERSX0hJOyByZWcrKykKKwkJRFVNUF9SRUcoc2RtYV9iYXNlX2FkZHIgKyByZWcpOworCWZvciAocmVnID0gbW1TRE1BMF9STEMwX0lCX1NVQl9SRU1BSU47CisJICAgICByZWcgPD0gbW1TRE1BMF9STEMwX01JTk9SX1BUUl9VUERBVEU7IHJlZysrKQorCQlEVU1QX1JFRyhzZG1hX2Jhc2VfYWRkciArIHJlZyk7CisJZm9yIChyZWcgPSBtbVNETUEwX1JMQzBfTUlEQ01EX0RBVEEwOworCSAgICAgcmVnIDw9IG1tU0RNQTBfUkxDMF9NSURDTURfQ05UTDsgcmVnKyspCisJCURVTVBfUkVHKHNkbWFfYmFzZV9hZGRyICsgcmVnKTsKKworCVdBUk5fT05fT05DRShpICE9IEhRRF9OX1JFR1MpOworCSpuX3JlZ3MgPSBpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBib29sIGtnZF9ocWRfc2RtYV9pc19vY2N1cGllZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB2b2lkICptcWQpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2QpOworCXN0cnVjdCB2OV9zZG1hX21xZCAqbTsKKwl1aW50MzJfdCBzZG1hX2Jhc2VfYWRkcjsKKwl1aW50MzJfdCBzZG1hX3JsY19yYl9jbnRsOworCisJbSA9IGdldF9zZG1hX21xZChtcWQpOworCXNkbWFfYmFzZV9hZGRyID0gZ2V0X3NkbWFfYmFzZV9hZGRyKGFkZXYsIG0tPnNkbWFfZW5naW5lX2lkLAorCQkJCQkgICAgbS0+c2RtYV9xdWV1ZV9pZCk7CisKKwlzZG1hX3JsY19yYl9jbnRsID0gUlJFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX0NOVEwpOworCisJaWYgKHNkbWFfcmxjX3JiX2NudGwgJiBTRE1BMF9STEMwX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGludCBrZ2RfaHFkX3NkbWFfZGVzdHJveShzdHJ1Y3Qga2dkX2RldiAqa2dkLCB2b2lkICptcWQsCisJCQkJdW5zaWduZWQgaW50IHV0aW1lb3V0KQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZ2V0X2FtZGdwdV9kZXZpY2Uoa2dkKTsKKwlzdHJ1Y3Qgdjlfc2RtYV9tcWQgKm07CisJdWludDMyX3Qgc2RtYV9iYXNlX2FkZHI7CisJdWludDMyX3QgdGVtcDsKKwl1bnNpZ25lZCBsb25nIGVuZF9qaWZmaWVzID0gKHV0aW1lb3V0ICogSFogLyAxMDAwKSArIGppZmZpZXM7CisKKwltID0gZ2V0X3NkbWFfbXFkKG1xZCk7CisJc2RtYV9iYXNlX2FkZHIgPSBnZXRfc2RtYV9iYXNlX2FkZHIoYWRldiwgbS0+c2RtYV9lbmdpbmVfaWQsCisJCQkJCSAgICBtLT5zZG1hX3F1ZXVlX2lkKTsKKworCXRlbXAgPSBSUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfUkJfQ05UTCk7CisJdGVtcCA9IHRlbXAgJiB+U0RNQTBfUkxDMF9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSzsKKwlXUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfUkJfQ05UTCwgdGVtcCk7CisKKwl3aGlsZSAodHJ1ZSkgeworCQl0ZW1wID0gUlJFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTKTsKKwkJaWYgKHRlbXAgJiBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0spCisJCQlicmVhazsKKwkJaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgZW5kX2ppZmZpZXMpKQorCQkJcmV0dXJuIC1FVElNRTsKKwkJdXNsZWVwX3JhbmdlKDUwMCwgMTAwMCk7CisJfQorCisJV1JFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX0RPT1JCRUxMLCAwKTsKKwlXUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfUkJfQ05UTCwKKwkJUlJFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX0NOVEwpIHwKKwkJU0RNQTBfUkxDMF9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyk7CisKKwltLT5zZG1heF9ybGN4X3JiX3JwdHIgPSBSUkVHMzIoc2RtYV9iYXNlX2FkZHIgKyBtbVNETUEwX1JMQzBfUkJfUlBUUik7CisJbS0+c2RtYXhfcmxjeF9yYl9ycHRyX2hpID0KKwkJUlJFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX1JQVFJfSEkpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBrZmQya2dkID0geworCS5wcm9ncmFtX3NoX21lbV9zZXR0aW5ncyA9IGtnZF9nZnhfdjlfcHJvZ3JhbV9zaF9tZW1fc2V0dGluZ3MsCisJLnNldF9wYXNpZF92bWlkX21hcHBpbmcgPSBrZ2RfZ2Z4X3Y5X3NldF9wYXNpZF92bWlkX21hcHBpbmcsCisJLmluaXRfaW50ZXJydXB0cyA9IGtnZF9nZnhfdjlfaW5pdF9pbnRlcnJ1cHRzLAorCS5ocWRfbG9hZCA9IGtnZF9nZnhfdjlfaHFkX2xvYWQsCisJLmhxZF9zZG1hX2xvYWQgPSBrZ2RfaHFkX3NkbWFfbG9hZCwKKwkuaHFkX2R1bXAgPSBrZ2RfZ2Z4X3Y5X2hxZF9kdW1wLAorCS5ocWRfc2RtYV9kdW1wID0ga2dkX2hxZF9zZG1hX2R1bXAsCisJLmhxZF9pc19vY2N1cGllZCA9IGtnZF9nZnhfdjlfaHFkX2lzX29jY3VwaWVkLAorCS5ocWRfc2RtYV9pc19vY2N1cGllZCA9IGtnZF9ocWRfc2RtYV9pc19vY2N1cGllZCwKKwkuaHFkX2Rlc3Ryb3kgPSBrZ2RfZ2Z4X3Y5X2hxZF9kZXN0cm95LAorCS5ocWRfc2RtYV9kZXN0cm95ID0ga2dkX2hxZF9zZG1hX2Rlc3Ryb3ksCisJLmFkZHJlc3Nfd2F0Y2hfZGlzYWJsZSA9IGtnZF9nZnhfdjlfYWRkcmVzc193YXRjaF9kaXNhYmxlLAorCS5hZGRyZXNzX3dhdGNoX2V4ZWN1dGUgPSBrZ2RfZ2Z4X3Y5X2FkZHJlc3Nfd2F0Y2hfZXhlY3V0ZSwKKwkud2F2ZV9jb250cm9sX2V4ZWN1dGUgPSBrZ2RfZ2Z4X3Y5X3dhdmVfY29udHJvbF9leGVjdXRlLAorCS5hZGRyZXNzX3dhdGNoX2dldF9vZmZzZXQgPSBrZ2RfZ2Z4X3Y5X2FkZHJlc3Nfd2F0Y2hfZ2V0X29mZnNldCwKKwkuZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfcGFzaWQgPQorCQkJa2dkX2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ19wYXNpZCwKKwkuZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfdmFsaWQgPQorCQkJa2dkX2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ192YWxpZCwKKwkuc2V0X3NjcmF0Y2hfYmFja2luZ192YSA9IGtnZF9nZnhfdjlfc2V0X3NjcmF0Y2hfYmFja2luZ192YSwKKwkuZ2V0X3RpbGVfY29uZmlnID0ga2dkX2dmeF92OV9nZXRfdGlsZV9jb25maWcsCisJLnNldF92bV9jb250ZXh0X3BhZ2VfdGFibGVfYmFzZSA9IGtnZF9nZnhfdjlfc2V0X3ZtX2NvbnRleHRfcGFnZV90YWJsZV9iYXNlLAorCS5pbnZhbGlkYXRlX3RsYnMgPSBrZ2RfZ2Z4X3Y5X2ludmFsaWRhdGVfdGxicywKKwkuaW52YWxpZGF0ZV90bGJzX3ZtaWQgPSBrZ2RfZ2Z4X3Y5X2ludmFsaWRhdGVfdGxic192bWlkLAorCS5nZXRfaGl2ZV9pZCA9IGFtZGdwdV9hbWRrZmRfZ2V0X2hpdmVfaWQsCit9OworCitzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9hcmN0dXJ1c19nZXRfZnVuY3Rpb25zKHZvaWQpCit7CisJcmV0dXJuIChzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqKSZrZmQya2dkOworfQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92MTAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3YxMC5jCmluZGV4IDA3MjNmODAuLmQxMGY0ODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3YxMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3YxMC5jCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CiAjaW5jbHVkZSA8bGludXgvbW11X2NvbnRleHQuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgImFtZGdwdS5oIgogI2luY2x1ZGUgImFtZGdwdV9hbWRrZmQuaCIKICNpbmNsdWRlICJhbWRncHVfdWNvZGUuaCIKQEAgLTgwMiw0MiArODAxLDYgQEAgc3RhdGljIHVpbnQxNl90IGdldF9hdGNfdm1pZF9wYXNpZF9tYXBwaW5nX3Bhc2lkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCiAJcmV0dXJuIHJlZyAmIEFUQ19WTUlEMF9QQVNJRF9NQVBQSU5HX19QQVNJRF9NQVNLOwogfQogCi1zdGF0aWMgdm9pZCB3cml0ZV92bWlkX2ludmFsaWRhdGVfcmVxdWVzdChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50OF90IHZtaWQpCi17Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKikga2dkOwotCXVpbnQzMl90IHJlcSA9ICgxIDw8IHZtaWQpIHwKLQkJKDAgPDwgR0NWTV9JTlZBTElEQVRFX0VORzBfUkVRX19GTFVTSF9UWVBFX19TSElGVCkgfC8qIGxlZ2FjeSAqLwotCQlHQ1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLIHwKLQkJR0NWTV9JTlZBTElEQVRFX0VORzBfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyB8Ci0JCUdDVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgfAotCQlHQ1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLIHwKLQkJR0NWTV9JTlZBTElEQVRFX0VORzBfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSzsKLQotCW11dGV4X2xvY2soJmFkZXYtPnNyYm1fbXV0ZXgpOwotCi0JLyogVXNlIGxpZ2h0IHdlaWdodCBpbnZhbGlkYXRpb24uCi0JICoKLQkgKiBUT0RPIDE6IGFncmVlIG9uIHRoZSByaWdodCBzZXQgb2YgaW52YWxpZGF0aW9uIHJlZ2lzdGVycyBmb3IKLQkgKiBLRkQgdXNlLiBVc2UgdGhlIGxhc3Qgb25lIGZvciBub3cuIEludmFsaWRhdGUgb25seSBHQ0hVQiBhcwotCSAqIFNETUEgaXMgbm93IG1vdmVkIHRvIEdDSFVCCi0JICoKLQkgKiBUT0RPIDI6IHN1cHBvcnQgcmFuZ2UtYmFzZWQgaW52YWxpZGF0aW9uLCByZXF1aXJlcyBrZmcya2dkCi0JICogaW50ZXJmYWNlIGNoYW5nZQotCSAqLwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdDVk1fSU5WQUxJREFURV9FTkcwX0FERFJfUkFOR0VfTE8zMiksCi0JCQkJMHhmZmZmZmZmZik7Ci0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0NWTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9ISTMyKSwKLQkJCQkweDAwMDAwMDFmKTsKLQotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdDVk1fSU5WQUxJREFURV9FTkcwX1JFUSksIHJlcSk7Ci0KLQl3aGlsZSAoIShSUkVHMzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HQ1ZNX0lOVkFMSURBVEVfRU5HMF9BQ0spKSAmCi0JCQkJCSgxIDw8IHZtaWQpKSkKLQkJY3B1X3JlbGF4KCk7Ci0KLQltdXRleF91bmxvY2soJmFkZXYtPnNyYm1fbXV0ZXgpOwotfQotCiBzdGF0aWMgaW50IGludmFsaWRhdGVfdGxic193aXRoX2tpcShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDE2X3QgcGFzaWQpCiB7CiAJc2lnbmVkIGxvbmcgcjsKQEAgLTg3OCw3ICs4NDEsOCBAQCBzdGF0aWMgaW50IGludmFsaWRhdGVfdGxicyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MTZfdCBwYXNpZCkKIAkJaWYgKGdldF9hdGNfdm1pZF9wYXNpZF9tYXBwaW5nX3ZhbGlkKGtnZCwgdm1pZCkpIHsKIAkJCWlmIChnZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ19wYXNpZChrZ2QsIHZtaWQpCiAJCQkJPT0gcGFzaWQpIHsKLQkJCQl3cml0ZV92bWlkX2ludmFsaWRhdGVfcmVxdWVzdChrZ2QsIHZtaWQpOworCQkJCWFtZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihhZGV2LCB2bWlkLAorCQkJCQkJQU1ER1BVX0dGWEhVQl8wLCAwKTsKIAkJCQlicmVhazsKIAkJCX0KIAkJfQpAQCAtODk2LDcgKzg2MCw3IEBAIHN0YXRpYyBpbnQgaW52YWxpZGF0ZV90bGJzX3ZtaWQoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDE2X3Qgdm1pZCkKIAkJcmV0dXJuIDA7CiAJfQogCi0Jd3JpdGVfdm1pZF9pbnZhbGlkYXRlX3JlcXVlc3Qoa2dkLCB2bWlkKTsKKwlhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgdm1pZCwgQU1ER1BVX0dGWEhVQl8wLCAwKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmMKaW5kZXggODUzOTVmMi4uZTI2MmYyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5jCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAic29jMTVkLmgiCiAjaW5jbHVkZSAibW1odWJfdjFfMC5oIgogI2luY2x1ZGUgImdmeGh1Yl92MV8wLmgiCisjaW5jbHVkZSAiZ21jX3Y5XzAuaCIKIAogCiAjZGVmaW5lIFY5X1BJUEVfUEVSX01FQwkJKDQpCkBAIC01OCw2NiArNTksMTEgQEAgZW51bSBocWRfZGVxdWV1ZV9yZXF1ZXN0X3R5cGUgewogCVJFU0VUX1dBVkVTCiB9OwogCi0vKgotICogUmVnaXN0ZXIgYWNjZXNzIGZ1bmN0aW9ucwotICovCi0KLXN0YXRpYyB2b2lkIGtnZF9wcm9ncmFtX3NoX21lbV9zZXR0aW5ncyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCB2bWlkLAotCQl1aW50MzJfdCBzaF9tZW1fY29uZmlnLAotCQl1aW50MzJfdCBzaF9tZW1fYXBlMV9iYXNlLCB1aW50MzJfdCBzaF9tZW1fYXBlMV9saW1pdCwKLQkJdWludDMyX3Qgc2hfbWVtX2Jhc2VzKTsKLXN0YXRpYyBpbnQga2dkX3NldF9wYXNpZF92bWlkX21hcHBpbmcoc3RydWN0IGtnZF9kZXYgKmtnZCwgdW5zaWduZWQgaW50IHBhc2lkLAotCQl1bnNpZ25lZCBpbnQgdm1pZCk7Ci1zdGF0aWMgaW50IGtnZF9pbml0X2ludGVycnVwdHMoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDMyX3QgcGlwZV9pZCk7Ci1zdGF0aWMgaW50IGtnZF9ocWRfbG9hZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB2b2lkICptcWQsIHVpbnQzMl90IHBpcGVfaWQsCi0JCQl1aW50MzJfdCBxdWV1ZV9pZCwgdWludDMyX3QgX191c2VyICp3cHRyLAotCQkJdWludDMyX3Qgd3B0cl9zaGlmdCwgdWludDMyX3Qgd3B0cl9tYXNrLAotCQkJc3RydWN0IG1tX3N0cnVjdCAqbW0pOwotc3RhdGljIGludCBrZ2RfaHFkX2R1bXAoc3RydWN0IGtnZF9kZXYgKmtnZCwKLQkJCXVpbnQzMl90IHBpcGVfaWQsIHVpbnQzMl90IHF1ZXVlX2lkLAotCQkJdWludDMyX3QgKCoqZHVtcClbMl0sIHVpbnQzMl90ICpuX3JlZ3MpOwotc3RhdGljIGludCBrZ2RfaHFkX3NkbWFfbG9hZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB2b2lkICptcWQsCi0JCQkgICAgIHVpbnQzMl90IF9fdXNlciAqd3B0ciwgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwotc3RhdGljIGludCBrZ2RfaHFkX3NkbWFfZHVtcChzdHJ1Y3Qga2dkX2RldiAqa2dkLAotCQkJICAgICB1aW50MzJfdCBlbmdpbmVfaWQsIHVpbnQzMl90IHF1ZXVlX2lkLAotCQkJICAgICB1aW50MzJfdCAoKipkdW1wKVsyXSwgdWludDMyX3QgKm5fcmVncyk7Ci1zdGF0aWMgYm9vbCBrZ2RfaHFkX2lzX29jY3VwaWVkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQ2NF90IHF1ZXVlX2FkZHJlc3MsCi0JCXVpbnQzMl90IHBpcGVfaWQsIHVpbnQzMl90IHF1ZXVlX2lkKTsKLXN0YXRpYyBib29sIGtnZF9ocWRfc2RtYV9pc19vY2N1cGllZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB2b2lkICptcWQpOwotc3RhdGljIGludCBrZ2RfaHFkX2Rlc3Ryb3koc3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkLAotCQkJCWVudW0ga2ZkX3ByZWVtcHRfdHlwZSByZXNldF90eXBlLAotCQkJCXVuc2lnbmVkIGludCB1dGltZW91dCwgdWludDMyX3QgcGlwZV9pZCwKLQkJCQl1aW50MzJfdCBxdWV1ZV9pZCk7Ci1zdGF0aWMgaW50IGtnZF9ocWRfc2RtYV9kZXN0cm95KHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKm1xZCwKLQkJCQl1bnNpZ25lZCBpbnQgdXRpbWVvdXQpOwotc3RhdGljIGludCBrZ2RfYWRkcmVzc193YXRjaF9kaXNhYmxlKHN0cnVjdCBrZ2RfZGV2ICprZ2QpOwotc3RhdGljIGludCBrZ2RfYWRkcmVzc193YXRjaF9leGVjdXRlKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCi0JCQkJCXVuc2lnbmVkIGludCB3YXRjaF9wb2ludF9pZCwKLQkJCQkJdWludDMyX3QgY250bF92YWwsCi0JCQkJCXVpbnQzMl90IGFkZHJfaGksCi0JCQkJCXVpbnQzMl90IGFkZHJfbG8pOwotc3RhdGljIGludCBrZ2Rfd2F2ZV9jb250cm9sX2V4ZWN1dGUoc3RydWN0IGtnZF9kZXYgKmtnZCwKLQkJCQkJdWludDMyX3QgZ2Z4X2luZGV4X3ZhbCwKLQkJCQkJdWludDMyX3Qgc3FfY21kKTsKLXN0YXRpYyB1aW50MzJfdCBrZ2RfYWRkcmVzc193YXRjaF9nZXRfb2Zmc2V0KHN0cnVjdCBrZ2RfZGV2ICprZ2QsCi0JCQkJCXVuc2lnbmVkIGludCB3YXRjaF9wb2ludF9pZCwKLQkJCQkJdW5zaWduZWQgaW50IHJlZ19vZmZzZXQpOwotCi1zdGF0aWMgYm9vbCBnZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ192YWxpZChzdHJ1Y3Qga2dkX2RldiAqa2dkLAotCQl1aW50OF90IHZtaWQpOwotc3RhdGljIHVpbnQxNl90IGdldF9hdGNfdm1pZF9wYXNpZF9tYXBwaW5nX3Bhc2lkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCi0JCXVpbnQ4X3Qgdm1pZCk7Ci1zdGF0aWMgdm9pZCBzZXRfdm1fY29udGV4dF9wYWdlX3RhYmxlX2Jhc2Uoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDMyX3Qgdm1pZCwKLQkJdWludDY0X3QgcGFnZV90YWJsZV9iYXNlKTsKLXN0YXRpYyB2b2lkIHNldF9zY3JhdGNoX2JhY2tpbmdfdmEoc3RydWN0IGtnZF9kZXYgKmtnZCwKLQkJCQkJdWludDY0X3QgdmEsIHVpbnQzMl90IHZtaWQpOwotc3RhdGljIGludCBpbnZhbGlkYXRlX3RsYnMoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDE2X3QgcGFzaWQpOwotc3RhdGljIGludCBpbnZhbGlkYXRlX3RsYnNfdm1pZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MTZfdCB2bWlkKTsKIAogLyogQmVjYXVzZSBvZiBSRUdfR0VUX0ZJRUxEKCkgYmVpbmcgdXNlZCwgd2UgcHV0IHRoaXMgZnVuY3Rpb24gaW4gdGhlCiAgKiBhc2ljIHNwZWNpZmljIGZpbGUuCiAgKi8KLXN0YXRpYyBpbnQgYW1kZ3B1X2FtZGtmZF9nZXRfdGlsZV9jb25maWcoc3RydWN0IGtnZF9kZXYgKmtnZCwKK2ludCBrZ2RfZ2Z4X3Y5X2dldF90aWxlX2NvbmZpZyhzdHJ1Y3Qga2dkX2RldiAqa2dkLAogCQlzdHJ1Y3QgdGlsZV9jb25maWcgKmNvbmZpZykKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWtnZDsKQEAgLTEzNSwzOSArODEsNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9hbWRrZmRfZ2V0X3RpbGVfY29uZmlnKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBrZmQya2dkID0gewotCS5wcm9ncmFtX3NoX21lbV9zZXR0aW5ncyA9IGtnZF9wcm9ncmFtX3NoX21lbV9zZXR0aW5ncywKLQkuc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyA9IGtnZF9zZXRfcGFzaWRfdm1pZF9tYXBwaW5nLAotCS5pbml0X2ludGVycnVwdHMgPSBrZ2RfaW5pdF9pbnRlcnJ1cHRzLAotCS5ocWRfbG9hZCA9IGtnZF9ocWRfbG9hZCwKLQkuaHFkX3NkbWFfbG9hZCA9IGtnZF9ocWRfc2RtYV9sb2FkLAotCS5ocWRfZHVtcCA9IGtnZF9ocWRfZHVtcCwKLQkuaHFkX3NkbWFfZHVtcCA9IGtnZF9ocWRfc2RtYV9kdW1wLAotCS5ocWRfaXNfb2NjdXBpZWQgPSBrZ2RfaHFkX2lzX29jY3VwaWVkLAotCS5ocWRfc2RtYV9pc19vY2N1cGllZCA9IGtnZF9ocWRfc2RtYV9pc19vY2N1cGllZCwKLQkuaHFkX2Rlc3Ryb3kgPSBrZ2RfaHFkX2Rlc3Ryb3ksCi0JLmhxZF9zZG1hX2Rlc3Ryb3kgPSBrZ2RfaHFkX3NkbWFfZGVzdHJveSwKLQkuYWRkcmVzc193YXRjaF9kaXNhYmxlID0ga2dkX2FkZHJlc3Nfd2F0Y2hfZGlzYWJsZSwKLQkuYWRkcmVzc193YXRjaF9leGVjdXRlID0ga2dkX2FkZHJlc3Nfd2F0Y2hfZXhlY3V0ZSwKLQkud2F2ZV9jb250cm9sX2V4ZWN1dGUgPSBrZ2Rfd2F2ZV9jb250cm9sX2V4ZWN1dGUsCi0JLmFkZHJlc3Nfd2F0Y2hfZ2V0X29mZnNldCA9IGtnZF9hZGRyZXNzX3dhdGNoX2dldF9vZmZzZXQsCi0JLmdldF9hdGNfdm1pZF9wYXNpZF9tYXBwaW5nX3Bhc2lkID0KLQkJCWdldF9hdGNfdm1pZF9wYXNpZF9tYXBwaW5nX3Bhc2lkLAotCS5nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ192YWxpZCA9Ci0JCQlnZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ192YWxpZCwKLQkuc2V0X3NjcmF0Y2hfYmFja2luZ192YSA9IHNldF9zY3JhdGNoX2JhY2tpbmdfdmEsCi0JLmdldF90aWxlX2NvbmZpZyA9IGFtZGdwdV9hbWRrZmRfZ2V0X3RpbGVfY29uZmlnLAotCS5zZXRfdm1fY29udGV4dF9wYWdlX3RhYmxlX2Jhc2UgPSBzZXRfdm1fY29udGV4dF9wYWdlX3RhYmxlX2Jhc2UsCi0JLmludmFsaWRhdGVfdGxicyA9IGludmFsaWRhdGVfdGxicywKLQkuaW52YWxpZGF0ZV90bGJzX3ZtaWQgPSBpbnZhbGlkYXRlX3RsYnNfdm1pZCwKLQkuZ2V0X2hpdmVfaWQgPSBhbWRncHVfYW1ka2ZkX2dldF9oaXZlX2lkLAotfTsKLQotc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmFtZGdwdV9hbWRrZmRfZ2Z4XzlfMF9nZXRfZnVuY3Rpb25zKHZvaWQpCi17Ci0JcmV0dXJuIChzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqKSZrZmQya2dkOwotfQotCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVfZGV2aWNlICpnZXRfYW1kZ3B1X2RldmljZShzdHJ1Y3Qga2dkX2RldiAqa2dkKQogewogCXJldHVybiAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilrZ2Q7CkBAIC0yMTUsNyArMTI4LDcgQEAgc3RhdGljIHZvaWQgcmVsZWFzZV9xdWV1ZShzdHJ1Y3Qga2dkX2RldiAqa2dkKQogCXVubG9ja19zcmJtKGtnZCk7CiB9CiAKLXN0YXRpYyB2b2lkIGtnZF9wcm9ncmFtX3NoX21lbV9zZXR0aW5ncyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCB2bWlkLAordm9pZCBrZ2RfZ2Z4X3Y5X3Byb2dyYW1fc2hfbWVtX3NldHRpbmdzKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHZtaWQsCiAJCQkJCXVpbnQzMl90IHNoX21lbV9jb25maWcsCiAJCQkJCXVpbnQzMl90IHNoX21lbV9hcGUxX2Jhc2UsCiAJCQkJCXVpbnQzMl90IHNoX21lbV9hcGUxX2xpbWl0LApAQCAtMjMyLDcgKzE0NSw3IEBAIHN0YXRpYyB2b2lkIGtnZF9wcm9ncmFtX3NoX21lbV9zZXR0aW5ncyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCB2bWlkLAogCXVubG9ja19zcmJtKGtnZCk7CiB9CiAKLXN0YXRpYyBpbnQga2dkX3NldF9wYXNpZF92bWlkX21hcHBpbmcoc3RydWN0IGtnZF9kZXYgKmtnZCwgdW5zaWduZWQgaW50IHBhc2lkLAoraW50IGtnZF9nZnhfdjlfc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1bnNpZ25lZCBpbnQgcGFzaWQsCiAJCQkJCXVuc2lnbmVkIGludCB2bWlkKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZ2V0X2FtZGdwdV9kZXZpY2Uoa2dkKTsKQEAgLTI5Myw3ICsyMDYsNyBAQCBzdGF0aWMgaW50IGtnZF9zZXRfcGFzaWRfdm1pZF9tYXBwaW5nKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVuc2lnbmVkIGludCBwYXNpZCwKICAqIGJ1dCBzdGlsbCB3b3JrcwogICovCiAKLXN0YXRpYyBpbnQga2dkX2luaXRfaW50ZXJydXB0cyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCBwaXBlX2lkKQoraW50IGtnZF9nZnhfdjlfaW5pdF9pbnRlcnJ1cHRzKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHBpcGVfaWQpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2QpOwogCXVpbnQzMl90IG1lYzsKQEAgLTM0Myw3ICsyNTYsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCB2OV9zZG1hX21xZCAqZ2V0X3NkbWFfbXFkKHZvaWQgKm1xZCkKIAlyZXR1cm4gKHN0cnVjdCB2OV9zZG1hX21xZCAqKW1xZDsKIH0KIAotc3RhdGljIGludCBrZ2RfaHFkX2xvYWQoc3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkLCB1aW50MzJfdCBwaXBlX2lkLAoraW50IGtnZF9nZnhfdjlfaHFkX2xvYWQoc3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkLCB1aW50MzJfdCBwaXBlX2lkLAogCQkJdWludDMyX3QgcXVldWVfaWQsIHVpbnQzMl90IF9fdXNlciAqd3B0ciwKIAkJCXVpbnQzMl90IHdwdHJfc2hpZnQsIHVpbnQzMl90IHdwdHJfbWFzaywKIAkJCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQpAQCAtNDM4LDcgKzM1MSw3IEBAIHN0YXRpYyBpbnQga2dkX2hxZF9sb2FkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKm1xZCwgdWludDMyX3QgcGlwZV9pZCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBrZ2RfaHFkX2R1bXAoc3RydWN0IGtnZF9kZXYgKmtnZCwKK2ludCBrZ2RfZ2Z4X3Y5X2hxZF9kdW1wKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCiAJCQl1aW50MzJfdCBwaXBlX2lkLCB1aW50MzJfdCBxdWV1ZV9pZCwKIAkJCXVpbnQzMl90ICgqKmR1bXApWzJdLCB1aW50MzJfdCAqbl9yZWdzKQogewpAQCAtNTc1LDcgKzQ4OCw3IEBAIHN0YXRpYyBpbnQga2dkX2hxZF9zZG1hX2R1bXAoc3RydWN0IGtnZF9kZXYgKmtnZCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGJvb2wga2dkX2hxZF9pc19vY2N1cGllZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50NjRfdCBxdWV1ZV9hZGRyZXNzLAorYm9vbCBrZ2RfZ2Z4X3Y5X2hxZF9pc19vY2N1cGllZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50NjRfdCBxdWV1ZV9hZGRyZXNzLAogCQkJCXVpbnQzMl90IHBpcGVfaWQsIHVpbnQzMl90IHF1ZXVlX2lkKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZ2V0X2FtZGdwdV9kZXZpY2Uoa2dkKTsKQEAgLTYxNiw3ICs1MjksNyBAQCBzdGF0aWMgYm9vbCBrZ2RfaHFkX3NkbWFfaXNfb2NjdXBpZWQoc3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkKQogCXJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGludCBrZ2RfaHFkX2Rlc3Ryb3koc3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkLAoraW50IGtnZF9nZnhfdjlfaHFkX2Rlc3Ryb3koc3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkLAogCQkJCWVudW0ga2ZkX3ByZWVtcHRfdHlwZSByZXNldF90eXBlLAogCQkJCXVuc2lnbmVkIGludCB1dGltZW91dCwgdWludDMyX3QgcGlwZV9pZCwKIAkJCQl1aW50MzJfdCBxdWV1ZV9pZCkKQEAgLTcwNCw3ICs2MTcsNyBAQCBzdGF0aWMgaW50IGtnZF9ocWRfc2RtYV9kZXN0cm95KHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKm1xZCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGJvb2wgZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfdmFsaWQoc3RydWN0IGtnZF9kZXYgKmtnZCwKK2Jvb2wga2dkX2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ192YWxpZChzdHJ1Y3Qga2dkX2RldiAqa2dkLAogCQkJCQkJCXVpbnQ4X3Qgdm1pZCkKIHsKIAl1aW50MzJfdCByZWc7CkBAIC03MTUsNyArNjI4LDcgQEAgc3RhdGljIGJvb2wgZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfdmFsaWQoc3RydWN0IGtnZF9kZXYgKmtnZCwKIAlyZXR1cm4gcmVnICYgQVRDX1ZNSUQwX1BBU0lEX01BUFBJTkdfX1ZBTElEX01BU0s7CiB9CiAKLXN0YXRpYyB1aW50MTZfdCBnZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ19wYXNpZChzdHJ1Y3Qga2dkX2RldiAqa2dkLAordWludDE2X3Qga2dkX2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ19wYXNpZChzdHJ1Y3Qga2dkX2RldiAqa2dkLAogCQkJCQkJCQl1aW50OF90IHZtaWQpCiB7CiAJdWludDMyX3QgcmVnOwpAQCAtNzU0LDEwICs2NjcsMTAgQEAgc3RhdGljIGludCBpbnZhbGlkYXRlX3RsYnNfd2l0aF9raXEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQxNl90IHBhc2lkLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGludmFsaWRhdGVfdGxicyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MTZfdCBwYXNpZCkKK2ludCBrZ2RfZ2Z4X3Y5X2ludmFsaWRhdGVfdGxicyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MTZfdCBwYXNpZCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKSBrZ2Q7Ci0JaW50IHZtaWQ7CisJaW50IHZtaWQsIGk7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPmdmeC5raXEucmluZzsKIAl1aW50MzJfdCBmbHVzaF90eXBlID0gMDsKIApAQCAtNzczLDExICs2ODYsMTIgQEAgc3RhdGljIGludCBpbnZhbGlkYXRlX3RsYnMoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDE2X3QgcGFzaWQpCiAJZm9yICh2bWlkID0gMDsgdm1pZCA8IDE2OyB2bWlkKyspIHsKIAkJaWYgKCFhbWRncHVfYW1ka2ZkX2lzX2tmZF92bWlkKGFkZXYsIHZtaWQpKQogCQkJY29udGludWU7Ci0JCWlmIChnZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ192YWxpZChrZ2QsIHZtaWQpKSB7Ci0JCQlpZiAoZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfcGFzaWQoa2dkLCB2bWlkKQorCQlpZiAoa2dkX2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ192YWxpZChrZ2QsIHZtaWQpKSB7CisJCQlpZiAoa2dkX2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ19wYXNpZChrZ2QsIHZtaWQpCiAJCQkJPT0gcGFzaWQpIHsKLQkJCQlhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgdm1pZCwKLQkJCQkJCQkgZmx1c2hfdHlwZSk7CisJCQkJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV92bWh1YnM7IGkrKykKKwkJCQkJYW1kZ3B1X2dtY19mbHVzaF9ncHVfdGxiKGFkZXYsIHZtaWQsCisJCQkJCQkJCWksIGZsdXNoX3R5cGUpOwogCQkJCWJyZWFrOwogCQkJfQogCQl9CkBAIC03ODYsOSArNzAwLDEwIEBAIHN0YXRpYyBpbnQgaW52YWxpZGF0ZV90bGJzKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQxNl90IHBhc2lkKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGludmFsaWRhdGVfdGxic192bWlkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQxNl90IHZtaWQpCitpbnQga2dkX2dmeF92OV9pbnZhbGlkYXRlX3RsYnNfdm1pZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MTZfdCB2bWlkKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopIGtnZDsKKwlpbnQgaTsKIAogCWlmICghYW1kZ3B1X2FtZGtmZF9pc19rZmRfdm1pZChhZGV2LCB2bWlkKSkgewogCQlwcl9lcnIoIm5vbiBrZmQgdm1pZCAlZFxuIiwgdm1pZCk7CkBAIC04MTAsMTYgKzcyNSwxOCBAQCBzdGF0aWMgaW50IGludmFsaWRhdGVfdGxic192bWlkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQxNl90IHZtaWQpCiAJICogVE9ETyAyOiBzdXBwb3J0IHJhbmdlLWJhc2VkIGludmFsaWRhdGlvbiwgcmVxdWlyZXMga2ZnMmtnZAogCSAqIGludGVyZmFjZSBjaGFuZ2UKIAkgKi8KLQlhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgdm1pZCwgMCk7CisJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV92bWh1YnM7IGkrKykKKwkJYW1kZ3B1X2dtY19mbHVzaF9ncHVfdGxiKGFkZXYsIHZtaWQsIGksIDApOworCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQga2dkX2FkZHJlc3Nfd2F0Y2hfZGlzYWJsZShzdHJ1Y3Qga2dkX2RldiAqa2dkKQoraW50IGtnZF9nZnhfdjlfYWRkcmVzc193YXRjaF9kaXNhYmxlKHN0cnVjdCBrZ2RfZGV2ICprZ2QpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQga2dkX2FkZHJlc3Nfd2F0Y2hfZXhlY3V0ZShzdHJ1Y3Qga2dkX2RldiAqa2dkLAoraW50IGtnZF9nZnhfdjlfYWRkcmVzc193YXRjaF9leGVjdXRlKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCiAJCQkJCXVuc2lnbmVkIGludCB3YXRjaF9wb2ludF9pZCwKIAkJCQkJdWludDMyX3QgY250bF92YWwsCiAJCQkJCXVpbnQzMl90IGFkZHJfaGksCkBAIC04MjgsNyArNzQ1LDcgQEAgc3RhdGljIGludCBrZ2RfYWRkcmVzc193YXRjaF9leGVjdXRlKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQga2dkX3dhdmVfY29udHJvbF9leGVjdXRlKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCitpbnQga2dkX2dmeF92OV93YXZlX2NvbnRyb2xfZXhlY3V0ZShzdHJ1Y3Qga2dkX2RldiAqa2dkLAogCQkJCQl1aW50MzJfdCBnZnhfaW5kZXhfdmFsLAogCQkJCQl1aW50MzJfdCBzcV9jbWQpCiB7CkBAIC04NTMsMTQgKzc3MCwxNCBAQCBzdGF0aWMgaW50IGtnZF93YXZlX2NvbnRyb2xfZXhlY3V0ZShzdHJ1Y3Qga2dkX2RldiAqa2dkLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdWludDMyX3Qga2dkX2FkZHJlc3Nfd2F0Y2hfZ2V0X29mZnNldChzdHJ1Y3Qga2dkX2RldiAqa2dkLAordWludDMyX3Qga2dkX2dmeF92OV9hZGRyZXNzX3dhdGNoX2dldF9vZmZzZXQoc3RydWN0IGtnZF9kZXYgKmtnZCwKIAkJCQkJdW5zaWduZWQgaW50IHdhdGNoX3BvaW50X2lkLAogCQkJCQl1bnNpZ25lZCBpbnQgcmVnX29mZnNldCkKIHsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgc2V0X3NjcmF0Y2hfYmFja2luZ192YShzdHJ1Y3Qga2dkX2RldiAqa2dkLAordm9pZCBrZ2RfZ2Z4X3Y5X3NldF9zY3JhdGNoX2JhY2tpbmdfdmEoc3RydWN0IGtnZF9kZXYgKmtnZCwKIAkJCQkJdWludDY0X3QgdmEsIHVpbnQzMl90IHZtaWQpCiB7CiAJLyogTm8gbG9uZ2VyIG5lZWRlZCBvbiBHRlh2OS4gVGhlIHNjcmF0Y2ggYmFzZSBhZGRyZXNzIGlzCkBAIC04NjksNyArNzg2LDcgQEAgc3RhdGljIHZvaWQgc2V0X3NjcmF0Y2hfYmFja2luZ192YShzdHJ1Y3Qga2dkX2RldiAqa2dkLAogCSAqLwogfQogCi1zdGF0aWMgdm9pZCBzZXRfdm1fY29udGV4dF9wYWdlX3RhYmxlX2Jhc2Uoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDMyX3Qgdm1pZCwKK3ZvaWQga2dkX2dmeF92OV9zZXRfdm1fY29udGV4dF9wYWdlX3RhYmxlX2Jhc2Uoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDMyX3Qgdm1pZCwKIAkJdWludDY0X3QgcGFnZV90YWJsZV9iYXNlKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZ2V0X2FtZGdwdV9kZXZpY2Uoa2dkKTsKQEAgLTg4NCw3ICs4MDEsNDUgQEAgc3RhdGljIHZvaWQgc2V0X3ZtX2NvbnRleHRfcGFnZV90YWJsZV9iYXNlKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHZtaWQsCiAJICogbm93LCBhbGwgcHJvY2Vzc2VzIHNoYXJlIHRoZSBzYW1lIGFkZHJlc3Mgc3BhY2Ugc2l6ZSwgbGlrZQogCSAqIG9uIEdGWDggYW5kIG9sZGVyLgogCSAqLwotCW1taHViX3YxXzBfc2V0dXBfdm1fcHRfcmVncyhhZGV2LCB2bWlkLCBwYWdlX3RhYmxlX2Jhc2UpOworCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9BUkNUVVJVUykgeworCQkvKiBUd28gTU1IVUJzICovCisJCW1taHViX3Y5XzRfc2V0dXBfdm1fcHRfcmVncyhhZGV2LCAwLCB2bWlkLCBwYWdlX3RhYmxlX2Jhc2UpOworCQltbWh1Yl92OV80X3NldHVwX3ZtX3B0X3JlZ3MoYWRldiwgMSwgdm1pZCwgcGFnZV90YWJsZV9iYXNlKTsKKwl9IGVsc2UKKwkJbW1odWJfdjFfMF9zZXR1cF92bV9wdF9yZWdzKGFkZXYsIHZtaWQsIHBhZ2VfdGFibGVfYmFzZSk7CiAKIAlnZnhodWJfdjFfMF9zZXR1cF92bV9wdF9yZWdzKGFkZXYsIHZtaWQsIHBhZ2VfdGFibGVfYmFzZSk7CiB9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBrZmQya2dkID0geworCS5wcm9ncmFtX3NoX21lbV9zZXR0aW5ncyA9IGtnZF9nZnhfdjlfcHJvZ3JhbV9zaF9tZW1fc2V0dGluZ3MsCisJLnNldF9wYXNpZF92bWlkX21hcHBpbmcgPSBrZ2RfZ2Z4X3Y5X3NldF9wYXNpZF92bWlkX21hcHBpbmcsCisJLmluaXRfaW50ZXJydXB0cyA9IGtnZF9nZnhfdjlfaW5pdF9pbnRlcnJ1cHRzLAorCS5ocWRfbG9hZCA9IGtnZF9nZnhfdjlfaHFkX2xvYWQsCisJLmhxZF9zZG1hX2xvYWQgPSBrZ2RfaHFkX3NkbWFfbG9hZCwKKwkuaHFkX2R1bXAgPSBrZ2RfZ2Z4X3Y5X2hxZF9kdW1wLAorCS5ocWRfc2RtYV9kdW1wID0ga2dkX2hxZF9zZG1hX2R1bXAsCisJLmhxZF9pc19vY2N1cGllZCA9IGtnZF9nZnhfdjlfaHFkX2lzX29jY3VwaWVkLAorCS5ocWRfc2RtYV9pc19vY2N1cGllZCA9IGtnZF9ocWRfc2RtYV9pc19vY2N1cGllZCwKKwkuaHFkX2Rlc3Ryb3kgPSBrZ2RfZ2Z4X3Y5X2hxZF9kZXN0cm95LAorCS5ocWRfc2RtYV9kZXN0cm95ID0ga2dkX2hxZF9zZG1hX2Rlc3Ryb3ksCisJLmFkZHJlc3Nfd2F0Y2hfZGlzYWJsZSA9IGtnZF9nZnhfdjlfYWRkcmVzc193YXRjaF9kaXNhYmxlLAorCS5hZGRyZXNzX3dhdGNoX2V4ZWN1dGUgPSBrZ2RfZ2Z4X3Y5X2FkZHJlc3Nfd2F0Y2hfZXhlY3V0ZSwKKwkud2F2ZV9jb250cm9sX2V4ZWN1dGUgPSBrZ2RfZ2Z4X3Y5X3dhdmVfY29udHJvbF9leGVjdXRlLAorCS5hZGRyZXNzX3dhdGNoX2dldF9vZmZzZXQgPSBrZ2RfZ2Z4X3Y5X2FkZHJlc3Nfd2F0Y2hfZ2V0X29mZnNldCwKKwkuZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfcGFzaWQgPQorCQkJa2dkX2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ19wYXNpZCwKKwkuZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfdmFsaWQgPQorCQkJa2dkX2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ192YWxpZCwKKwkuc2V0X3NjcmF0Y2hfYmFja2luZ192YSA9IGtnZF9nZnhfdjlfc2V0X3NjcmF0Y2hfYmFja2luZ192YSwKKwkuZ2V0X3RpbGVfY29uZmlnID0ga2dkX2dmeF92OV9nZXRfdGlsZV9jb25maWcsCisJLnNldF92bV9jb250ZXh0X3BhZ2VfdGFibGVfYmFzZSA9IGtnZF9nZnhfdjlfc2V0X3ZtX2NvbnRleHRfcGFnZV90YWJsZV9iYXNlLAorCS5pbnZhbGlkYXRlX3RsYnMgPSBrZ2RfZ2Z4X3Y5X2ludmFsaWRhdGVfdGxicywKKwkuaW52YWxpZGF0ZV90bGJzX3ZtaWQgPSBrZ2RfZ2Z4X3Y5X2ludmFsaWRhdGVfdGxic192bWlkLAorCS5nZXRfaGl2ZV9pZCA9IGFtZGdwdV9hbWRrZmRfZ2V0X2hpdmVfaWQsCit9OworCitzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfOV8wX2dldF9mdW5jdGlvbnModm9pZCkKK3sKKwlyZXR1cm4gKHN0cnVjdCBrZmQya2dkX2NhbGxzICopJmtmZDJrZ2Q7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmQ4ODc5YgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisKKwordm9pZCBrZ2RfZ2Z4X3Y5X3Byb2dyYW1fc2hfbWVtX3NldHRpbmdzKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHZtaWQsCisJCXVpbnQzMl90IHNoX21lbV9jb25maWcsCisJCXVpbnQzMl90IHNoX21lbV9hcGUxX2Jhc2UsIHVpbnQzMl90IHNoX21lbV9hcGUxX2xpbWl0LAorCQl1aW50MzJfdCBzaF9tZW1fYmFzZXMpOworaW50IGtnZF9nZnhfdjlfc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1bnNpZ25lZCBpbnQgcGFzaWQsCisJCXVuc2lnbmVkIGludCB2bWlkKTsKK2ludCBrZ2RfZ2Z4X3Y5X2luaXRfaW50ZXJydXB0cyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCBwaXBlX2lkKTsKK2ludCBrZ2RfZ2Z4X3Y5X2hxZF9sb2FkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKm1xZCwgdWludDMyX3QgcGlwZV9pZCwKKwkJCXVpbnQzMl90IHF1ZXVlX2lkLCB1aW50MzJfdCBfX3VzZXIgKndwdHIsCisJCQl1aW50MzJfdCB3cHRyX3NoaWZ0LCB1aW50MzJfdCB3cHRyX21hc2ssCisJCQlzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CitpbnQga2dkX2dmeF92OV9ocWRfZHVtcChzdHJ1Y3Qga2dkX2RldiAqa2dkLAorCQkJdWludDMyX3QgcGlwZV9pZCwgdWludDMyX3QgcXVldWVfaWQsCisJCQl1aW50MzJfdCAoKipkdW1wKVsyXSwgdWludDMyX3QgKm5fcmVncyk7Citib29sIGtnZF9nZnhfdjlfaHFkX2lzX29jY3VwaWVkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQ2NF90IHF1ZXVlX2FkZHJlc3MsCisJCXVpbnQzMl90IHBpcGVfaWQsIHVpbnQzMl90IHF1ZXVlX2lkKTsKK2ludCBrZ2RfZ2Z4X3Y5X2hxZF9kZXN0cm95KHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKm1xZCwKKwkJCQllbnVtIGtmZF9wcmVlbXB0X3R5cGUgcmVzZXRfdHlwZSwKKwkJCQl1bnNpZ25lZCBpbnQgdXRpbWVvdXQsIHVpbnQzMl90IHBpcGVfaWQsCisJCQkJdWludDMyX3QgcXVldWVfaWQpOworaW50IGtnZF9nZnhfdjlfYWRkcmVzc193YXRjaF9kaXNhYmxlKHN0cnVjdCBrZ2RfZGV2ICprZ2QpOworaW50IGtnZF9nZnhfdjlfYWRkcmVzc193YXRjaF9leGVjdXRlKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCisJCQkJCXVuc2lnbmVkIGludCB3YXRjaF9wb2ludF9pZCwKKwkJCQkJdWludDMyX3QgY250bF92YWwsCisJCQkJCXVpbnQzMl90IGFkZHJfaGksCisJCQkJCXVpbnQzMl90IGFkZHJfbG8pOworaW50IGtnZF9nZnhfdjlfd2F2ZV9jb250cm9sX2V4ZWN1dGUoc3RydWN0IGtnZF9kZXYgKmtnZCwKKwkJCQkJdWludDMyX3QgZ2Z4X2luZGV4X3ZhbCwKKwkJCQkJdWludDMyX3Qgc3FfY21kKTsKK3VpbnQzMl90IGtnZF9nZnhfdjlfYWRkcmVzc193YXRjaF9nZXRfb2Zmc2V0KHN0cnVjdCBrZ2RfZGV2ICprZ2QsCisJCQkJCXVuc2lnbmVkIGludCB3YXRjaF9wb2ludF9pZCwKKwkJCQkJdW5zaWduZWQgaW50IHJlZ19vZmZzZXQpOworCitib29sIGtnZF9nZnhfdjlfZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfdmFsaWQoc3RydWN0IGtnZF9kZXYgKmtnZCwKKwkJdWludDhfdCB2bWlkKTsKK3VpbnQxNl90IGtnZF9nZnhfdjlfZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfcGFzaWQoc3RydWN0IGtnZF9kZXYgKmtnZCwKKwkJdWludDhfdCB2bWlkKTsKK3ZvaWQga2dkX2dmeF92OV9zZXRfdm1fY29udGV4dF9wYWdlX3RhYmxlX2Jhc2Uoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDMyX3Qgdm1pZCwKKwkJdWludDY0X3QgcGFnZV90YWJsZV9iYXNlKTsKK3ZvaWQga2dkX2dmeF92OV9zZXRfc2NyYXRjaF9iYWNraW5nX3ZhKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCisJCQkJCXVpbnQ2NF90IHZhLCB1aW50MzJfdCB2bWlkKTsKK2ludCBrZ2RfZ2Z4X3Y5X2ludmFsaWRhdGVfdGxicyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MTZfdCBwYXNpZCk7CitpbnQga2dkX2dmeF92OV9pbnZhbGlkYXRlX3RsYnNfdm1pZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MTZfdCB2bWlkKTsKK2ludCBrZ2RfZ2Z4X3Y5X2dldF90aWxlX2NvbmZpZyhzdHJ1Y3Qga2dkX2RldiAqa2dkLAorCQlzdHJ1Y3QgdGlsZV9jb25maWcgKmNvbmZpZyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMKaW5kZXggNmE1Yzk2ZS4uNmQwMjFlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwpAQCAtMjE4LDE0ICsyMTgsMTQgQEAgdm9pZCBhbWRncHVfYW1ka2ZkX3VucmVzZXJ2ZV9tZW1vcnlfbGltaXQoc3RydWN0IGFtZGdwdV9ibyAqYm8pCiBzdGF0aWMgaW50IGFtZGdwdV9hbWRrZmRfcmVtb3ZlX2V2aWN0aW9uX2ZlbmNlKHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCQkJCQlzdHJ1Y3QgYW1kZ3B1X2FtZGtmZF9mZW5jZSAqZWYpCiB7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IGJvLT50Ym8ucmVzdjsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKm9sZCwgKm5ldzsKKwlzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YgPSBiby0+dGJvLmJhc2UucmVzdjsKKwlzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqb2xkLCAqbmV3OwogCXVuc2lnbmVkIGludCBpLCBqLCBrOwogCiAJaWYgKCFlZikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlvbGQgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3QocmVzdik7CisJb2xkID0gZG1hX3Jlc3ZfZ2V0X2xpc3QocmVzdik7CiAJaWYgKCFvbGQpCiAJCXJldHVybiAwOwogCkBAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGljIGludCBhbWRncHVfYW1ka2ZkX3JlbW92ZV9ldmljdGlvbl9mZW5jZShzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJc3RydWN0IGRtYV9mZW5jZSAqZjsKIAogCQlmID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvbGQtPnNoYXJlZFtpXSwKLQkJCQkJICAgICAgcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQocmVzdikpOworCQkJCQkgICAgICBkbWFfcmVzdl9oZWxkKHJlc3YpKTsKIAogCQlpZiAoZi0+Y29udGV4dCA9PSBlZi0+YmFzZS5jb250ZXh0KQogCQkJUkNVX0lOSVRfUE9JTlRFUihuZXctPnNoYXJlZFstLWpdLCBmKTsKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9hbWRrZmRfcmVtb3ZlX2V2aWN0aW9uX2ZlbmNlKHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwogCiAJCWYgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG5ldy0+c2hhcmVkW2ldLAotCQkJCQkgICAgICByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChyZXN2KSk7CisJCQkJCSAgICAgIGRtYV9yZXN2X2hlbGQocmVzdikpOwogCQlkbWFfZmVuY2VfcHV0KGYpOwogCX0KIAlrZnJlZV9yY3Uob2xkLCByY3UpOwpAQCAtODEyLDcgKzgxMiw3IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19zeW5jX3Bkc19yZXN2KHN0cnVjdCBhbWRrZmRfcHJvY2Vzc19pbmZvICpwcm9jZXNzX2luZm8sCiAJCXN0cnVjdCBhbWRncHVfYm8gKnBkID0gcGVlcl92bS0+cm9vdC5iYXNlLmJvOwogCiAJCXJldCA9IGFtZGdwdV9zeW5jX3Jlc3YoTlVMTCwKLQkJCQkJc3luYywgcGQtPnRiby5yZXN2LAorCQkJCQlzeW5jLCBwZC0+dGJvLmJhc2UucmVzdiwKIAkJCQkJQU1ER1BVX0ZFTkNFX09XTkVSX0tGRCwgZmFsc2UpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKQEAgLTg4Nyw3ICs4ODcsNyBAQCBzdGF0aWMgaW50IGluaXRfa2ZkX3ZtKHN0cnVjdCBhbWRncHVfdm0gKnZtLCB2b2lkICoqcHJvY2Vzc19pbmZvLAogCQkJCSAgQU1ER1BVX0ZFTkNFX09XTkVSX0tGRCwgZmFsc2UpOwogCWlmIChyZXQpCiAJCWdvdG8gd2FpdF9wZF9mYWlsOwotCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZCh2bS0+cm9vdC5iYXNlLmJvLT50Ym8ucmVzdiwgMSk7CisJcmV0ID0gZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQodm0tPnJvb3QuYmFzZS5iby0+dGJvLmJhc2UucmVzdiwgMSk7CiAJaWYgKHJldCkKIAkJZ290byByZXNlcnZlX3NoYXJlZF9mYWlsOwogCWFtZGdwdV9ib19mZW5jZSh2bS0+cm9vdC5iYXNlLmJvLApAQCAtMTA5MCw3ICsxMDkwLDcgQEAgaW50IGFtZGdwdV9hbWRrZmRfZ3B1dm1fYWxsb2NfbWVtb3J5X29mX2dwdSgKIAkgKi8KIAlpZiAoZmxhZ3MgJiBBTExPQ19NRU1fRkxBR1NfVlJBTSkgewogCQlkb21haW4gPSBhbGxvY19kb21haW4gPSBBTURHUFVfR0VNX0RPTUFJTl9WUkFNOwotCQlhbGxvY19mbGFncyA9IEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ0xFQVJFRDsKKwkJYWxsb2NfZmxhZ3MgPSBBTURHUFVfR0VNX0NSRUFURV9WUkFNX1dJUEVfT05fUkVMRUFTRTsKIAkJYWxsb2NfZmxhZ3MgfD0gKGZsYWdzICYgQUxMT0NfTUVNX0ZMQUdTX1BVQkxJQykgPwogCQkJQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCA6CiAJCQlBTURHUFVfR0VNX0NSRUFURV9OT19DUFVfQUNDRVNTOwpAQCAtMTEwMyw3ICsxMTAzLDcgQEAgaW50IGFtZGdwdV9hbWRrZmRfZ3B1dm1fYWxsb2NfbWVtb3J5X29mX2dwdSgKIAkJYWxsb2NfZmxhZ3MgPSAwOwogCQlpZiAoIW9mZnNldCB8fCAhKm9mZnNldCkKIAkJCXJldHVybiAtRUlOVkFMOwotCQl1c2VyX2FkZHIgPSAqb2Zmc2V0OworCQl1c2VyX2FkZHIgPSB1bnRhZ2dlZF9hZGRyKCpvZmZzZXQpOwogCX0gZWxzZSBpZiAoZmxhZ3MgJiAoQUxMT0NfTUVNX0ZMQUdTX0RPT1JCRUxMIHwKIAkJCUFMTE9DX01FTV9GTEFHU19NTUlPX1JFTUFQKSkgewogCQlkb21haW4gPSBBTURHUFVfR0VNX0RPTUFJTl9HVFQ7CkBAIC0yMTMzLDcgKzIxMzMsNyBAQCBpbnQgYW1kZ3B1X2FtZGtmZF9hZGRfZ3dzX3RvX3Byb2Nlc3Modm9pZCAqaW5mbywgdm9pZCAqZ3dzLCBzdHJ1Y3Qga2dkX21lbSAqKm1lbQogCSAqIEFkZCBwcm9jZXNzIGV2aWN0aW9uIGZlbmNlIHRvIGJvIHNvIHRoZXkgY2FuCiAJICogZXZpY3QgZWFjaCBvdGhlci4KIAkgKi8KLQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoZ3dzX2JvLT50Ym8ucmVzdiwgMSk7CisJcmV0ID0gZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQoZ3dzX2JvLT50Ym8uYmFzZS5yZXN2LCAxKTsKIAlpZiAocmV0KQogCQlnb3RvIHJlc2VydmVfc2hhcmVkX2ZhaWw7CiAJYW1kZ3B1X2JvX2ZlbmNlKGd3c19ibywgJnByb2Nlc3NfaW5mby0+ZXZpY3Rpb25fZmVuY2UtPmJhc2UsIHRydWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jb25uZWN0b3JzLmMKaW5kZXggNzNiMmVkZS4uZWNlNTVjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5jCkBAIC0xNTA1LDYgKzE1MDUsNyBAQCBhbWRncHVfY29ubmVjdG9yX2FkZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5lY3Rvcl9hdG9tX2RpZyAqYW1kZ3B1X2RpZ19jb25uZWN0b3I7CiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXI7CisJc3RydWN0IGkyY19hZGFwdGVyICpkZGMgPSBOVUxMOwogCXVpbnQzMl90IHN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxOb25lOwogCWJvb2wgc2hhcmVkX2RkYyA9IGZhbHNlOwogCWJvb2wgaXNfZHBfYnJpZGdlID0gZmFsc2U7CkBAIC0xNTc0LDE3ICsxNTc1LDIxIEBAIGFtZGdwdV9jb25uZWN0b3JfYWRkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlhbWRncHVfY29ubmVjdG9yLT5jb25fcHJpdiA9IGFtZGdwdV9kaWdfY29ubmVjdG9yOwogCQlpZiAoaTJjX2J1cy0+dmFsaWQpIHsKIAkJCWFtZGdwdV9jb25uZWN0b3ItPmRkY19idXMgPSBhbWRncHVfaTJjX2xvb2t1cChhZGV2LCBpMmNfYnVzKTsKLQkJCWlmIChhbWRncHVfY29ubmVjdG9yLT5kZGNfYnVzKQorCQkJaWYgKGFtZGdwdV9jb25uZWN0b3ItPmRkY19idXMpIHsKIAkJCQloYXNfYXV4ID0gdHJ1ZTsKLQkJCWVsc2UKKwkJCQlkZGMgPSAmYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cy0+YWRhcHRlcjsKKwkJCX0gZWxzZSB7CiAJCQkJRFJNX0VSUk9SKCJEUDogRmFpbGVkIHRvIGFzc2lnbiBkZGMgYnVzISBDaGVjayBkbWVzZyBmb3IgaTJjIGVycm9ycy5cbiIpOworCQkJfQogCQl9CiAJCXN3aXRjaCAoY29ubmVjdG9yX3R5cGUpIHsKIAkJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfVkdBOgogCQljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9EVklBOgogCQlkZWZhdWx0OgotCQkJZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwgJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsCi0JCQkJCSAgICZhbWRncHVfY29ubmVjdG9yX2RwX2Z1bmNzLCBjb25uZWN0b3JfdHlwZSk7CisJCQlkcm1fY29ubmVjdG9yX2luaXRfd2l0aF9kZGMoZGV2LCAmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwKKwkJCQkJCSAgICAmYW1kZ3B1X2Nvbm5lY3Rvcl9kcF9mdW5jcywKKwkJCQkJCSAgICBjb25uZWN0b3JfdHlwZSwKKwkJCQkJCSAgICBkZGMpOwogCQkJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZhbWRncHVfY29ubmVjdG9yLT5iYXNlLAogCQkJCQkJICZhbWRncHVfY29ubmVjdG9yX2RwX2hlbHBlcl9mdW5jcyk7CiAJCQljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gdHJ1ZTsKQEAgLTE2MDIsOCArMTYwNywxMCBAQCBhbWRncHVfY29ubmVjdG9yX2FkZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUE6CiAJCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0hETUlCOgogCQljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydDoKLQkJCWRybV9jb25uZWN0b3JfaW5pdChkZXYsICZhbWRncHVfY29ubmVjdG9yLT5iYXNlLAotCQkJCQkgICAmYW1kZ3B1X2Nvbm5lY3Rvcl9kcF9mdW5jcywgY29ubmVjdG9yX3R5cGUpOworCQkJZHJtX2Nvbm5lY3Rvcl9pbml0X3dpdGhfZGRjKGRldiwgJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsCisJCQkJCQkgICAgJmFtZGdwdV9jb25uZWN0b3JfZHBfZnVuY3MsCisJCQkJCQkgICAgY29ubmVjdG9yX3R5cGUsCisJCQkJCQkgICAgZGRjKTsKIAkJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwKIAkJCQkJCSAmYW1kZ3B1X2Nvbm5lY3Rvcl9kcF9oZWxwZXJfZnVuY3MpOwogCQkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UuYmFzZSwKQEAgLTE2NDQsOCArMTY1MSwxMCBAQCBhbWRncHVfY29ubmVjdG9yX2FkZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCWJyZWFrOwogCQljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9MVkRTOgogCQljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9lRFA6Ci0JCQlkcm1fY29ubmVjdG9yX2luaXQoZGV2LCAmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwKLQkJCQkJICAgJmFtZGdwdV9jb25uZWN0b3JfZWRwX2Z1bmNzLCBjb25uZWN0b3JfdHlwZSk7CisJCQlkcm1fY29ubmVjdG9yX2luaXRfd2l0aF9kZGMoZGV2LCAmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwKKwkJCQkJCSAgICAmYW1kZ3B1X2Nvbm5lY3Rvcl9lZHBfZnVuY3MsCisJCQkJCQkgICAgY29ubmVjdG9yX3R5cGUsCisJCQkJCQkgICAgZGRjKTsKIAkJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwKIAkJCQkJCSAmYW1kZ3B1X2Nvbm5lY3Rvcl9kcF9oZWxwZXJfZnVuY3MpOwogCQkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UuYmFzZSwKQEAgLTE2NTksMTMgKzE2NjgsMTggQEAgYW1kZ3B1X2Nvbm5lY3Rvcl9hZGQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJfSBlbHNlIHsKIAkJc3dpdGNoIChjb25uZWN0b3JfdHlwZSkgewogCQljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9WR0E6Ci0JCQlkcm1fY29ubmVjdG9yX2luaXQoZGV2LCAmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwgJmFtZGdwdV9jb25uZWN0b3JfdmdhX2Z1bmNzLCBjb25uZWN0b3JfdHlwZSk7Ci0JCQlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsICZhbWRncHVfY29ubmVjdG9yX3ZnYV9oZWxwZXJfZnVuY3MpOwogCQkJaWYgKGkyY19idXMtPnZhbGlkKSB7CiAJCQkJYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cyA9IGFtZGdwdV9pMmNfbG9va3VwKGFkZXYsIGkyY19idXMpOwogCQkJCWlmICghYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cykKIAkJCQkJRFJNX0VSUk9SKCJWR0E6IEZhaWxlZCB0byBhc3NpZ24gZGRjIGJ1cyEgQ2hlY2sgZG1lc2cgZm9yIGkyYyBlcnJvcnMuXG4iKTsKKwkJCQllbHNlCisJCQkJCWRkYyA9ICZhbWRncHVfY29ubmVjdG9yLT5kZGNfYnVzLT5hZGFwdGVyOwogCQkJfQorCQkJZHJtX2Nvbm5lY3Rvcl9pbml0X3dpdGhfZGRjKGRldiwgJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsCisJCQkJCQkgICAgJmFtZGdwdV9jb25uZWN0b3JfdmdhX2Z1bmNzLAorCQkJCQkJICAgIGNvbm5lY3Rvcl90eXBlLAorCQkJCQkJICAgIGRkYyk7CisJCQlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsICZhbWRncHVfY29ubmVjdG9yX3ZnYV9oZWxwZXJfZnVuY3MpOwogCQkJYW1kZ3B1X2Nvbm5lY3Rvci0+ZGFjX2xvYWRfZGV0ZWN0ID0gdHJ1ZTsKIAkJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZhbWRncHVfY29ubmVjdG9yLT5iYXNlLmJhc2UsCiAJCQkJCQkgICAgICBhZGV2LT5tb2RlX2luZm8ubG9hZF9kZXRlY3RfcHJvcGVydHksCkBAIC0xNjc5LDEzICsxNjkzLDE4IEBAIGFtZGdwdV9jb25uZWN0b3JfYWRkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJY29ubmVjdG9yLT5kb3VibGVzY2FuX2FsbG93ZWQgPSB0cnVlOwogCQkJYnJlYWs7CiAJCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0RWSUE6Ci0JCQlkcm1fY29ubmVjdG9yX2luaXQoZGV2LCAmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwgJmFtZGdwdV9jb25uZWN0b3JfdmdhX2Z1bmNzLCBjb25uZWN0b3JfdHlwZSk7Ci0JCQlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsICZhbWRncHVfY29ubmVjdG9yX3ZnYV9oZWxwZXJfZnVuY3MpOwogCQkJaWYgKGkyY19idXMtPnZhbGlkKSB7CiAJCQkJYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cyA9IGFtZGdwdV9pMmNfbG9va3VwKGFkZXYsIGkyY19idXMpOwogCQkJCWlmICghYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cykKIAkJCQkJRFJNX0VSUk9SKCJEVklBOiBGYWlsZWQgdG8gYXNzaWduIGRkYyBidXMhIENoZWNrIGRtZXNnIGZvciBpMmMgZXJyb3JzLlxuIik7CisJCQkJZWxzZQorCQkJCQlkZGMgPSAmYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cy0+YWRhcHRlcjsKIAkJCX0KKwkJCWRybV9jb25uZWN0b3JfaW5pdF93aXRoX2RkYyhkZXYsICZhbWRncHVfY29ubmVjdG9yLT5iYXNlLAorCQkJCQkJICAgICZhbWRncHVfY29ubmVjdG9yX3ZnYV9mdW5jcywKKwkJCQkJCSAgICBjb25uZWN0b3JfdHlwZSwKKwkJCQkJCSAgICBkZGMpOworCQkJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZhbWRncHVfY29ubmVjdG9yLT5iYXNlLCAmYW1kZ3B1X2Nvbm5lY3Rvcl92Z2FfaGVscGVyX2Z1bmNzKTsKIAkJCWFtZGdwdV9jb25uZWN0b3ItPmRhY19sb2FkX2RldGVjdCA9IHRydWU7CiAJCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZS5iYXNlLAogCQkJCQkJICAgICAgYWRldi0+bW9kZV9pbmZvLmxvYWRfZGV0ZWN0X3Byb3BlcnR5LApAQCAtMTcwNCwxMyArMTcyMywxOCBAQCBhbWRncHVfY29ubmVjdG9yX2FkZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCWlmICghYW1kZ3B1X2RpZ19jb25uZWN0b3IpCiAJCQkJZ290byBmYWlsZWQ7CiAJCQlhbWRncHVfY29ubmVjdG9yLT5jb25fcHJpdiA9IGFtZGdwdV9kaWdfY29ubmVjdG9yOwotCQkJZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwgJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsICZhbWRncHVfY29ubmVjdG9yX2R2aV9mdW5jcywgY29ubmVjdG9yX3R5cGUpOwotCQkJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZhbWRncHVfY29ubmVjdG9yLT5iYXNlLCAmYW1kZ3B1X2Nvbm5lY3Rvcl9kdmlfaGVscGVyX2Z1bmNzKTsKIAkJCWlmIChpMmNfYnVzLT52YWxpZCkgewogCQkJCWFtZGdwdV9jb25uZWN0b3ItPmRkY19idXMgPSBhbWRncHVfaTJjX2xvb2t1cChhZGV2LCBpMmNfYnVzKTsKIAkJCQlpZiAoIWFtZGdwdV9jb25uZWN0b3ItPmRkY19idXMpCiAJCQkJCURSTV9FUlJPUigiRFZJOiBGYWlsZWQgdG8gYXNzaWduIGRkYyBidXMhIENoZWNrIGRtZXNnIGZvciBpMmMgZXJyb3JzLlxuIik7CisJCQkJZWxzZQorCQkJCQlkZGMgPSAmYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cy0+YWRhcHRlcjsKIAkJCX0KKwkJCWRybV9jb25uZWN0b3JfaW5pdF93aXRoX2RkYyhkZXYsICZhbWRncHVfY29ubmVjdG9yLT5iYXNlLAorCQkJCQkJICAgICZhbWRncHVfY29ubmVjdG9yX2R2aV9mdW5jcywKKwkJCQkJCSAgICBjb25uZWN0b3JfdHlwZSwKKwkJCQkJCSAgICBkZGMpOworCQkJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZhbWRncHVfY29ubmVjdG9yLT5iYXNlLCAmYW1kZ3B1X2Nvbm5lY3Rvcl9kdmlfaGVscGVyX2Z1bmNzKTsKIAkJCXN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwogCQkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UuYmFzZSwKIAkJCQkJCSAgICAgIGFkZXYtPm1vZGVfaW5mby5jb2hlcmVudF9tb2RlX3Byb3BlcnR5LApAQCAtMTc1NCwxMyArMTc3OCwxOCBAQCBhbWRncHVfY29ubmVjdG9yX2FkZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCWlmICghYW1kZ3B1X2RpZ19jb25uZWN0b3IpCiAJCQkJZ290byBmYWlsZWQ7CiAJCQlhbWRncHVfY29ubmVjdG9yLT5jb25fcHJpdiA9IGFtZGdwdV9kaWdfY29ubmVjdG9yOwotCQkJZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwgJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsICZhbWRncHVfY29ubmVjdG9yX2R2aV9mdW5jcywgY29ubmVjdG9yX3R5cGUpOwotCQkJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZhbWRncHVfY29ubmVjdG9yLT5iYXNlLCAmYW1kZ3B1X2Nvbm5lY3Rvcl9kdmlfaGVscGVyX2Z1bmNzKTsKIAkJCWlmIChpMmNfYnVzLT52YWxpZCkgewogCQkJCWFtZGdwdV9jb25uZWN0b3ItPmRkY19idXMgPSBhbWRncHVfaTJjX2xvb2t1cChhZGV2LCBpMmNfYnVzKTsKIAkJCQlpZiAoIWFtZGdwdV9jb25uZWN0b3ItPmRkY19idXMpCiAJCQkJCURSTV9FUlJPUigiSERNSTogRmFpbGVkIHRvIGFzc2lnbiBkZGMgYnVzISBDaGVjayBkbWVzZyBmb3IgaTJjIGVycm9ycy5cbiIpOworCQkJCWVsc2UKKwkJCQkJZGRjID0gJmFtZGdwdV9jb25uZWN0b3ItPmRkY19idXMtPmFkYXB0ZXI7CiAJCQl9CisJCQlkcm1fY29ubmVjdG9yX2luaXRfd2l0aF9kZGMoZGV2LCAmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwKKwkJCQkJCSAgICAmYW1kZ3B1X2Nvbm5lY3Rvcl9kdmlfZnVuY3MsCisJCQkJCQkgICAgY29ubmVjdG9yX3R5cGUsCisJCQkJCQkgICAgZGRjKTsKKwkJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwgJmFtZGdwdV9jb25uZWN0b3JfZHZpX2hlbHBlcl9mdW5jcyk7CiAJCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZS5iYXNlLAogCQkJCQkJICAgICAgYWRldi0+bW9kZV9pbmZvLmNvaGVyZW50X21vZGVfcHJvcGVydHksCiAJCQkJCQkgICAgICAxKTsKQEAgLTE3OTYsMTUgKzE4MjUsMjAgQEAgYW1kZ3B1X2Nvbm5lY3Rvcl9hZGQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQlpZiAoIWFtZGdwdV9kaWdfY29ubmVjdG9yKQogCQkJCWdvdG8gZmFpbGVkOwogCQkJYW1kZ3B1X2Nvbm5lY3Rvci0+Y29uX3ByaXYgPSBhbWRncHVfZGlnX2Nvbm5lY3RvcjsKLQkJCWRybV9jb25uZWN0b3JfaW5pdChkZXYsICZhbWRncHVfY29ubmVjdG9yLT5iYXNlLCAmYW1kZ3B1X2Nvbm5lY3Rvcl9kcF9mdW5jcywgY29ubmVjdG9yX3R5cGUpOwotCQkJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZhbWRncHVfY29ubmVjdG9yLT5iYXNlLCAmYW1kZ3B1X2Nvbm5lY3Rvcl9kcF9oZWxwZXJfZnVuY3MpOwogCQkJaWYgKGkyY19idXMtPnZhbGlkKSB7CiAJCQkJYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cyA9IGFtZGdwdV9pMmNfbG9va3VwKGFkZXYsIGkyY19idXMpOwotCQkJCWlmIChhbWRncHVfY29ubmVjdG9yLT5kZGNfYnVzKQorCQkJCWlmIChhbWRncHVfY29ubmVjdG9yLT5kZGNfYnVzKSB7CiAJCQkJCWhhc19hdXggPSB0cnVlOwotCQkJCWVsc2UKKwkJCQkJZGRjID0gJmFtZGdwdV9jb25uZWN0b3ItPmRkY19idXMtPmFkYXB0ZXI7CisJCQkJfSBlbHNlIHsKIAkJCQkJRFJNX0VSUk9SKCJEUDogRmFpbGVkIHRvIGFzc2lnbiBkZGMgYnVzISBDaGVjayBkbWVzZyBmb3IgaTJjIGVycm9ycy5cbiIpOworCQkJCX0KIAkJCX0KKwkJCWRybV9jb25uZWN0b3JfaW5pdF93aXRoX2RkYyhkZXYsICZhbWRncHVfY29ubmVjdG9yLT5iYXNlLAorCQkJCQkJICAgICZhbWRncHVfY29ubmVjdG9yX2RwX2Z1bmNzLAorCQkJCQkJICAgIGNvbm5lY3Rvcl90eXBlLAorCQkJCQkJICAgIGRkYyk7CisJCQlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsICZhbWRncHVfY29ubmVjdG9yX2RwX2hlbHBlcl9mdW5jcyk7CiAJCQlzdWJwaXhlbF9vcmRlciA9IFN1YlBpeGVsSG9yaXpvbnRhbFJHQjsKIAkJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZhbWRncHVfY29ubmVjdG9yLT5iYXNlLmJhc2UsCiAJCQkJCQkgICAgICBhZGV2LT5tb2RlX2luZm8uY29oZXJlbnRfbW9kZV9wcm9wZXJ0eSwKQEAgLTE4MzgsMTUgKzE4NzIsMjAgQEAgYW1kZ3B1X2Nvbm5lY3Rvcl9hZGQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQlpZiAoIWFtZGdwdV9kaWdfY29ubmVjdG9yKQogCQkJCWdvdG8gZmFpbGVkOwogCQkJYW1kZ3B1X2Nvbm5lY3Rvci0+Y29uX3ByaXYgPSBhbWRncHVfZGlnX2Nvbm5lY3RvcjsKLQkJCWRybV9jb25uZWN0b3JfaW5pdChkZXYsICZhbWRncHVfY29ubmVjdG9yLT5iYXNlLCAmYW1kZ3B1X2Nvbm5lY3Rvcl9lZHBfZnVuY3MsIGNvbm5lY3Rvcl90eXBlKTsKLQkJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwgJmFtZGdwdV9jb25uZWN0b3JfZHBfaGVscGVyX2Z1bmNzKTsKIAkJCWlmIChpMmNfYnVzLT52YWxpZCkgewogCQkJCWFtZGdwdV9jb25uZWN0b3ItPmRkY19idXMgPSBhbWRncHVfaTJjX2xvb2t1cChhZGV2LCBpMmNfYnVzKTsKLQkJCQlpZiAoYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cykKKwkJCQlpZiAoYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cykgewogCQkJCQloYXNfYXV4ID0gdHJ1ZTsKLQkJCQllbHNlCisJCQkJCWRkYyA9ICZhbWRncHVfY29ubmVjdG9yLT5kZGNfYnVzLT5hZGFwdGVyOworCQkJCX0gZWxzZSB7CiAJCQkJCURSTV9FUlJPUigiRFA6IEZhaWxlZCB0byBhc3NpZ24gZGRjIGJ1cyEgQ2hlY2sgZG1lc2cgZm9yIGkyYyBlcnJvcnMuXG4iKTsKKwkJCQl9CiAJCQl9CisJCQlkcm1fY29ubmVjdG9yX2luaXRfd2l0aF9kZGMoZGV2LCAmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwKKwkJCQkJCSAgICAmYW1kZ3B1X2Nvbm5lY3Rvcl9lZHBfZnVuY3MsCisJCQkJCQkgICAgY29ubmVjdG9yX3R5cGUsCisJCQkJCQkgICAgZGRjKTsKKwkJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwgJmFtZGdwdV9jb25uZWN0b3JfZHBfaGVscGVyX2Z1bmNzKTsKIAkJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZhbWRncHVfY29ubmVjdG9yLT5iYXNlLmJhc2UsCiAJCQkJCQkgICAgICBkZXYtPm1vZGVfY29uZmlnLnNjYWxpbmdfbW9kZV9wcm9wZXJ0eSwKIAkJCQkJCSAgICAgIERSTV9NT0RFX1NDQUxFX0ZVTExTQ1JFRU4pOwpAQCAtMTg1OSwxMyArMTg5OCwxOCBAQCBhbWRncHVfY29ubmVjdG9yX2FkZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCWlmICghYW1kZ3B1X2RpZ19jb25uZWN0b3IpCiAJCQkJZ290byBmYWlsZWQ7CiAJCQlhbWRncHVfY29ubmVjdG9yLT5jb25fcHJpdiA9IGFtZGdwdV9kaWdfY29ubmVjdG9yOwotCQkJZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwgJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UsICZhbWRncHVfY29ubmVjdG9yX2x2ZHNfZnVuY3MsIGNvbm5lY3Rvcl90eXBlKTsKLQkJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwgJmFtZGdwdV9jb25uZWN0b3JfbHZkc19oZWxwZXJfZnVuY3MpOwogCQkJaWYgKGkyY19idXMtPnZhbGlkKSB7CiAJCQkJYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cyA9IGFtZGdwdV9pMmNfbG9va3VwKGFkZXYsIGkyY19idXMpOwogCQkJCWlmICghYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cykKIAkJCQkJRFJNX0VSUk9SKCJMVkRTOiBGYWlsZWQgdG8gYXNzaWduIGRkYyBidXMhIENoZWNrIGRtZXNnIGZvciBpMmMgZXJyb3JzLlxuIik7CisJCQkJZWxzZQorCQkJCQlkZGMgPSAmYW1kZ3B1X2Nvbm5lY3Rvci0+ZGRjX2J1cy0+YWRhcHRlcjsKIAkJCX0KKwkJCWRybV9jb25uZWN0b3JfaW5pdF93aXRoX2RkYyhkZXYsICZhbWRncHVfY29ubmVjdG9yLT5iYXNlLAorCQkJCQkJICAgICZhbWRncHVfY29ubmVjdG9yX2x2ZHNfZnVuY3MsCisJCQkJCQkgICAgY29ubmVjdG9yX3R5cGUsCisJCQkJCQkgICAgZGRjKTsKKwkJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmYW1kZ3B1X2Nvbm5lY3Rvci0+YmFzZSwgJmFtZGdwdV9jb25uZWN0b3JfbHZkc19oZWxwZXJfZnVuY3MpOwogCQkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmFtZGdwdV9jb25uZWN0b3ItPmJhc2UuYmFzZSwKIAkJCQkJCSAgICAgIGRldi0+bW9kZV9jb25maWcuc2NhbGluZ19tb2RlX3Byb3BlcnR5LAogCQkJCQkJICAgICAgRFJNX01PREVfU0NBTEVfRlVMTFNDUkVFTik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCmluZGV4IDhiMjZjOTcuLjJlNTNmZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCkBAIC00MDIsNyArNDAyLDcgQEAgc3RhdGljIGludCBhbWRncHVfY3NfYm9fdmFsaWRhdGUoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKIAkJLmludGVycnVwdGlibGUgPSB0cnVlLAogCQkubm9fd2FpdF9ncHUgPSBmYWxzZSwKLQkJLnJlc3YgPSBiby0+dGJvLnJlc3YsCisJCS5yZXN2ID0gYm8tPnRiby5iYXNlLnJlc3YsCiAJCS5mbGFncyA9IDAKIAl9OwogCXVpbnQzMl90IGRvbWFpbjsKQEAgLTczMCw3ICs3MzAsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19zeW5jX3JpbmdzKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShlLCAmcC0+dmFsaWRhdGVkLCB0di5oZWFkKSB7CiAJCXN0cnVjdCBhbWRncHVfYm8gKmJvID0gdHRtX3RvX2FtZGdwdV9ibyhlLT50di5ibyk7Ci0JCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YgPSBiby0+dGJvLnJlc3Y7CisJCXN0cnVjdCBkbWFfcmVzdiAqcmVzdiA9IGJvLT50Ym8uYmFzZS5yZXN2OwogCiAJCXIgPSBhbWRncHVfc3luY19yZXN2KHAtPmFkZXYsICZwLT5qb2ItPnN5bmMsIHJlc3YsIHAtPmZpbHAsCiAJCQkJICAgICBhbWRncHVfYm9fZXhwbGljaXRfc3luYyhibykpOwpAQCAtMTczMiw3ICsxNzMyLDcgQEAgaW50IGFtZGdwdV9jc19maW5kX21hcHBpbmcoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwKIAkqbWFwID0gbWFwcGluZzsKIAogCS8qIERvdWJsZSBjaGVjayB0aGF0IHRoZSBCTyBpcyByZXNlcnZlZCBieSB0aGlzIENTICovCi0JaWYgKFJFQURfT05DRSgoKmJvKS0+dGJvLnJlc3YtPmxvY2suY3R4KSAhPSAmcGFyc2VyLT50aWNrZXQpCisJaWYgKGRtYV9yZXN2X2xvY2tpbmdfY3R4KCgqYm8pLT50Ym8uYmFzZS5yZXN2KSAhPSAmcGFyc2VyLT50aWNrZXQpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKCEoKCpibyktPmZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdVT1VTKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jCmluZGV4IDczOThiNDguLjY2MTRkOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMKQEAgLTQyLDcgKzQyLDcgQEAgY29uc3QgdW5zaWduZWQgaW50IGFtZGdwdV9jdHhfbnVtX2VudGl0aWVzW0FNREdQVV9IV19JUF9OVU1dID0gewogCVtBTURHUFVfSFdfSVBfVkNOX0pQRUddCT0JMSwKIH07CiAKLXN0YXRpYyBpbnQgYW1kZ3B1dF9jdHhfdG90YWxfbnVtX2VudGl0aWVzKHZvaWQpCitzdGF0aWMgaW50IGFtZGdwdV9jdHhfdG90YWxfbnVtX2VudGl0aWVzKHZvaWQpCiB7CiAJdW5zaWduZWQgaSwgbnVtX2VudGl0aWVzID0gMDsKIApAQCAtNzMsOCArNzMsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9jdHhfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlscCwKIAkJCSAgIHN0cnVjdCBhbWRncHVfY3R4ICpjdHgpCiB7Ci0JdW5zaWduZWQgbnVtX2VudGl0aWVzID0gYW1kZ3B1dF9jdHhfdG90YWxfbnVtX2VudGl0aWVzKCk7Ci0JdW5zaWduZWQgaSwgajsKKwl1bnNpZ25lZCBudW1fZW50aXRpZXMgPSBhbWRncHVfY3R4X3RvdGFsX251bV9lbnRpdGllcygpOworCXVuc2lnbmVkIGksIGosIGs7CiAJaW50IHI7CiAKIAlpZiAocHJpb3JpdHkgPCAwIHx8IHByaW9yaXR5ID49IERSTV9TQ0hFRF9QUklPUklUWV9NQVgpCkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIGludCBhbWRncHVfY3R4X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJZm9yIChpID0gMDsgaSA8IEFNREdQVV9IV19JUF9OVU07ICsraSkgewogCQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmdzW0FNREdQVV9NQVhfUklOR1NdOwogCQlzdHJ1Y3QgZHJtX3NjaGVkX3JxICpycXNbQU1ER1BVX01BWF9SSU5HU107Ci0JCXVuc2lnbmVkIG51bV9yaW5nczsKKwkJdW5zaWduZWQgbnVtX3JpbmdzID0gMDsKIAkJdW5zaWduZWQgbnVtX3JxcyA9IDA7CiAKIAkJc3dpdGNoIChpKSB7CkBAIC0xNTQsMTYgKzE1NCwyNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9jdHhfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCW51bV9yaW5ncyA9IDE7CiAJCQlicmVhazsKIAkJY2FzZSBBTURHUFVfSFdfSVBfVkNOX0RFQzoKLQkJCXJpbmdzWzBdID0gJmFkZXYtPnZjbi5yaW5nX2RlYzsKLQkJCW51bV9yaW5ncyA9IDE7CisJCQlmb3IgKGogPSAwOyBqIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytqKSB7CisJCQkJaWYgKGFkZXYtPnZjbi5oYXJ2ZXN0X2NvbmZpZyAmICgxIDw8IGopKQorCQkJCQljb250aW51ZTsKKwkJCQlyaW5nc1tudW1fcmluZ3MrK10gPSAmYWRldi0+dmNuLmluc3Rbal0ucmluZ19kZWM7CisJCQl9CiAJCQlicmVhazsKIAkJY2FzZSBBTURHUFVfSFdfSVBfVkNOX0VOQzoKLQkJCXJpbmdzWzBdID0gJmFkZXYtPnZjbi5yaW5nX2VuY1swXTsKLQkJCW51bV9yaW5ncyA9IDE7CisJCQlmb3IgKGogPSAwOyBqIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytqKSB7CisJCQkJaWYgKGFkZXYtPnZjbi5oYXJ2ZXN0X2NvbmZpZyAmICgxIDw8IGopKQorCQkJCQljb250aW51ZTsKKwkJCQlmb3IgKGsgPSAwOyBrIDwgYWRldi0+dmNuLm51bV9lbmNfcmluZ3M7ICsraykKKwkJCQkJcmluZ3NbbnVtX3JpbmdzKytdID0gJmFkZXYtPnZjbi5pbnN0W2pdLnJpbmdfZW5jW2tdOworCQkJfQogCQkJYnJlYWs7CiAJCWNhc2UgQU1ER1BVX0hXX0lQX1ZDTl9KUEVHOgotCQkJcmluZ3NbMF0gPSAmYWRldi0+dmNuLnJpbmdfanBlZzsKLQkJCW51bV9yaW5ncyA9IDE7CisJCQlmb3IgKGogPSAwOyBqIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytqKSB7CisJCQkJaWYgKGFkZXYtPnZjbi5oYXJ2ZXN0X2NvbmZpZyAmICgxIDw8IGopKQorCQkJCQljb250aW51ZTsKKwkJCQlyaW5nc1tudW1fcmluZ3MrK10gPSAmYWRldi0+dmNuLmluc3Rbal0ucmluZ19qcGVnOworCQkJfQogCQkJYnJlYWs7CiAJCX0KIApAQCAtMTk3LDcgKzIwNyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2N0eF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogc3RhdGljIHZvaWQgYW1kZ3B1X2N0eF9maW5pKHN0cnVjdCBrcmVmICpyZWYpCiB7CiAJc3RydWN0IGFtZGdwdV9jdHggKmN0eCA9IGNvbnRhaW5lcl9vZihyZWYsIHN0cnVjdCBhbWRncHVfY3R4LCByZWZjb3VudCk7Ci0JdW5zaWduZWQgbnVtX2VudGl0aWVzID0gYW1kZ3B1dF9jdHhfdG90YWxfbnVtX2VudGl0aWVzKCk7CisJdW5zaWduZWQgbnVtX2VudGl0aWVzID0gYW1kZ3B1X2N0eF90b3RhbF9udW1fZW50aXRpZXMoKTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGN0eC0+YWRldjsKIAl1bnNpZ25lZCBpLCBqOwogCkBAIC0yNzksMTAgKzI4OSw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jdHhfZG9fcmVsZWFzZShzdHJ1Y3Qga3JlZiAqcmVmKQogCiAJY3R4ID0gY29udGFpbmVyX29mKHJlZiwgc3RydWN0IGFtZGdwdV9jdHgsIHJlZmNvdW50KTsKIAotCW51bV9lbnRpdGllcyA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IEFNREdQVV9IV19JUF9OVU07IGkrKykKLQkJbnVtX2VudGl0aWVzICs9IGFtZGdwdV9jdHhfbnVtX2VudGl0aWVzW2ldOwotCisJbnVtX2VudGl0aWVzID0gYW1kZ3B1X2N0eF90b3RhbF9udW1fZW50aXRpZXMoKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2VudGl0aWVzOyBpKyspCiAJCWRybV9zY2hlZF9lbnRpdHlfZGVzdHJveSgmY3R4LT5lbnRpdGllc1swXVtpXS5lbnRpdHkpOwogCkBAIC0zNDQsNyArMzUxLDcgQEAgc3RhdGljIGludCBhbWRncHVfY3R4X3F1ZXJ5MihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4OwogCXN0cnVjdCBhbWRncHVfY3R4X21nciAqbWdyOwotCXVpbnQzMl90IHJhc19jb3VudGVyOworCXVuc2lnbmVkIGxvbmcgcmFzX2NvdW50ZXI7CiAKIAlpZiAoIWZwcml2KQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTUxNCw3ICs1MjEsNyBAQCBzdHJ1Y3QgZG1hX2ZlbmNlICphbWRncHVfY3R4X2dldF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4LAogdm9pZCBhbWRncHVfY3R4X3ByaW9yaXR5X292ZXJyaWRlKHN0cnVjdCBhbWRncHVfY3R4ICpjdHgsCiAJCQkJICBlbnVtIGRybV9zY2hlZF9wcmlvcml0eSBwcmlvcml0eSkKIHsKLQl1bnNpZ25lZCBudW1fZW50aXRpZXMgPSBhbWRncHV0X2N0eF90b3RhbF9udW1fZW50aXRpZXMoKTsKKwl1bnNpZ25lZCBudW1fZW50aXRpZXMgPSBhbWRncHVfY3R4X3RvdGFsX251bV9lbnRpdGllcygpOwogCWVudW0gZHJtX3NjaGVkX3ByaW9yaXR5IGN0eF9wcmlvOwogCXVuc2lnbmVkIGk7CiAKQEAgLTU2Miw3ICs1NjksNyBAQCB2b2lkIGFtZGdwdV9jdHhfbWdyX2luaXQoc3RydWN0IGFtZGdwdV9jdHhfbWdyICptZ3IpCiAKIGxvbmcgYW1kZ3B1X2N0eF9tZ3JfZW50aXR5X2ZsdXNoKHN0cnVjdCBhbWRncHVfY3R4X21nciAqbWdyLCBsb25nIHRpbWVvdXQpCiB7Ci0JdW5zaWduZWQgbnVtX2VudGl0aWVzID0gYW1kZ3B1dF9jdHhfdG90YWxfbnVtX2VudGl0aWVzKCk7CisJdW5zaWduZWQgbnVtX2VudGl0aWVzID0gYW1kZ3B1X2N0eF90b3RhbF9udW1fZW50aXRpZXMoKTsKIAlzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4OwogCXN0cnVjdCBpZHIgKmlkcDsKIAl1aW50MzJfdCBpZCwgaTsKQEAgLTU4NCw3ICs1OTEsNyBAQCBsb25nIGFtZGdwdV9jdHhfbWdyX2VudGl0eV9mbHVzaChzdHJ1Y3QgYW1kZ3B1X2N0eF9tZ3IgKm1nciwgbG9uZyB0aW1lb3V0KQogCiB2b2lkIGFtZGdwdV9jdHhfbWdyX2VudGl0eV9maW5pKHN0cnVjdCBhbWRncHVfY3R4X21nciAqbWdyKQogewotCXVuc2lnbmVkIG51bV9lbnRpdGllcyA9IGFtZGdwdXRfY3R4X3RvdGFsX251bV9lbnRpdGllcygpOworCXVuc2lnbmVkIG51bV9lbnRpdGllcyA9IGFtZGdwdV9jdHhfdG90YWxfbnVtX2VudGl0aWVzKCk7CiAJc3RydWN0IGFtZGdwdV9jdHggKmN0eDsKIAlzdHJ1Y3QgaWRyICppZHA7CiAJdWludDMyX3QgaWQsIGk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmgKaW5kZXggNWYxYjU0Yy4uZGE4MDg2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHguaApAQCAtNDksOCArNDksOCBAQCBzdHJ1Y3QgYW1kZ3B1X2N0eCB7CiAJZW51bSBkcm1fc2NoZWRfcHJpb3JpdHkJCW92ZXJyaWRlX3ByaW9yaXR5OwogCXN0cnVjdCBtdXRleAkJCWxvY2s7CiAJYXRvbWljX3QJCQlndWlsdHk7Ci0JdWludDMyX3QJCQlyYXNfY291bnRlcl9jZTsKLQl1aW50MzJfdAkJCXJhc19jb3VudGVyX3VlOworCXVuc2lnbmVkIGxvbmcJCQlyYXNfY291bnRlcl9jZTsKKwl1bnNpZ25lZCBsb25nCQkJcmFzX2NvdW50ZXJfdWU7CiB9OwogCiBzdHJ1Y3QgYW1kZ3B1X2N0eF9tZ3IgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCmluZGV4IDVhN2Y4OTMuLjVhMTkzOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKQEAgLTcwLDcgKzcwLDExIEBAIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3ZlZ2ExMl9ncHVfaW5mby5iaW4iKTsKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3JhdmVuX2dwdV9pbmZvLmJpbiIpOwogTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvcGljYXNzb19ncHVfaW5mby5iaW4iKTsKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3JhdmVuMl9ncHVfaW5mby5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L2FyY3R1cnVzX2dwdV9pbmZvLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvcmVub2lyX2dwdV9pbmZvLmJpbiIpOwogTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTEwX2dwdV9pbmZvLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTE0X2dwdV9pbmZvLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTEyX2dwdV9pbmZvLmJpbiIpOwogCiAjZGVmaW5lIEFNREdQVV9SRVNVTUVfTVMJCTIwMDAKIApAQCAtOTgsNyArMTAyLDExIEBAIHN0YXRpYyBjb25zdCBjaGFyICphbWRncHVfYXNpY19uYW1lW10gPSB7CiAJIlZFR0ExMiIsCiAJIlZFR0EyMCIsCiAJIlJBVkVOIiwKKwkiQVJDVFVSVVMiLAorCSJSRU5PSVIiLAogCSJOQVZJMTAiLAorCSJOQVZJMTQiLAorCSJOQVZJMTIiLAogCSJMQVNUIiwKIH07CiAKQEAgLTQxMyw2ICs0MjEsNDAgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2ludmFsaWRfd3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3QgcmVnLCB1aW50MzIKIH0KIAogLyoqCisgKiBhbWRncHVfaW52YWxpZF9ycmVnNjQgLSBkdW1teSA2NCBiaXQgcmVnIHJlYWQgZnVuY3Rpb24KKyAqCisgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2ludGVyCisgKiBAcmVnOiBvZmZzZXQgb2YgcmVnaXN0ZXIKKyAqCisgKiBEdW1teSByZWdpc3RlciByZWFkIGZ1bmN0aW9uLiAgVXNlZCBmb3IgcmVnaXN0ZXIgYmxvY2tzCisgKiB0aGF0IGNlcnRhaW4gYXNpY3MgZG9uJ3QgaGF2ZSAoYWxsIGFzaWNzKS4KKyAqIFJldHVybnMgdGhlIHZhbHVlIGluIHRoZSByZWdpc3Rlci4KKyAqLworc3RhdGljIHVpbnQ2NF90IGFtZGdwdV9pbnZhbGlkX3JyZWc2NChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3QgcmVnKQoreworCURSTV9FUlJPUigiSW52YWxpZCBjYWxsYmFjayB0byByZWFkIDY0IGJpdCByZWdpc3RlciAweCUwNFhcbiIsIHJlZyk7CisJQlVHKCk7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYW1kZ3B1X2ludmFsaWRfd3JlZzY0IC0gZHVtbXkgcmVnIHdyaXRlIGZ1bmN0aW9uCisgKgorICogQGFkZXY6IGFtZGdwdSBkZXZpY2UgcG9pbnRlcgorICogQHJlZzogb2Zmc2V0IG9mIHJlZ2lzdGVyCisgKiBAdjogdmFsdWUgdG8gd3JpdGUgdG8gdGhlIHJlZ2lzdGVyCisgKgorICogRHVtbXkgcmVnaXN0ZXIgcmVhZCBmdW5jdGlvbi4gIFVzZWQgZm9yIHJlZ2lzdGVyIGJsb2NrcworICogdGhhdCBjZXJ0YWluIGFzaWNzIGRvbid0IGhhdmUgKGFsbCBhc2ljcykuCisgKi8KK3N0YXRpYyB2b2lkIGFtZGdwdV9pbnZhbGlkX3dyZWc2NChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3QgcmVnLCB1aW50NjRfdCB2KQoreworCURSTV9FUlJPUigiSW52YWxpZCBjYWxsYmFjayB0byB3cml0ZSA2NCBiaXQgcmVnaXN0ZXIgMHglMDRYIHdpdGggMHglMDhsbFhcbiIsCisJCSAgcmVnLCB2KTsKKwlCVUcoKTsKK30KKworLyoqCiAgKiBhbWRncHVfYmxvY2tfaW52YWxpZF9ycmVnIC0gZHVtbXkgcmVnIHJlYWQgZnVuY3Rpb24KICAqCiAgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2ludGVyCkBAIC0xMzg0LDkgKzE0MjYsMjEgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3BhcnNlX2dwdV9pbmZvX2Z3KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQllbHNlCiAJCQljaGlwX25hbWUgPSAicmF2ZW4iOwogCQlicmVhazsKKwljYXNlIENISVBfQVJDVFVSVVM6CisJCWNoaXBfbmFtZSA9ICJhcmN0dXJ1cyI7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9SRU5PSVI6CisJCWNoaXBfbmFtZSA9ICJyZW5vaXIiOworCQlicmVhazsKIAljYXNlIENISVBfTkFWSTEwOgogCQljaGlwX25hbWUgPSAibmF2aTEwIjsKIAkJYnJlYWs7CisJY2FzZSBDSElQX05BVkkxNDoKKwkJY2hpcF9uYW1lID0gIm5hdmkxNCI7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTI6CisJCWNoaXBfbmFtZSA9ICJuYXZpMTIiOworCQlicmVhazsKIAl9CiAKIAlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfZ3B1X2luZm8uYmluIiwgY2hpcF9uYW1lKTsKQEAgLTE1MjksNyArMTU4MywxMCBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfaXBfZWFybHlfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAljYXNlIENISVBfVkVHQTEyOgogCWNhc2UgQ0hJUF9WRUdBMjA6CiAJY2FzZSBDSElQX1JBVkVOOgotCQlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4pCisJY2FzZSBDSElQX0FSQ1RVUlVTOgorCWNhc2UgQ0hJUF9SRU5PSVI6CisJCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9SQVZFTiB8fAorCQkgICAgYWRldi0+YXNpY190eXBlID09IENISVBfUkVOT0lSKQogCQkJYWRldi0+ZmFtaWx5ID0gQU1ER1BVX0ZBTUlMWV9SVjsKIAkJZWxzZQogCQkJYWRldi0+ZmFtaWx5ID0gQU1ER1BVX0ZBTUlMWV9BSTsKQEAgLTE1MzksNiArMTU5Niw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9pcF9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJcmV0dXJuIHI7CiAJCWJyZWFrOwogCWNhc2UgIENISVBfTkFWSTEwOgorCWNhc2UgIENISVBfTkFWSTE0OgorCWNhc2UgIENISVBfTkFWSTEyOgogCQlhZGV2LT5mYW1pbHkgPSBBTURHUFVfRkFNSUxZX05WOwogCiAJCXIgPSBudl9zZXRfaXBfYmxvY2tzKGFkZXYpOwpAQCAtMTU2MCw5ICsxNjE5LDYgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX2lwX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCXIgPSBhbWRncHVfdmlydF9yZXF1ZXN0X2Z1bGxfZ3B1KGFkZXYsIHRydWUpOwogCQlpZiAocikKIAkJCXJldHVybiAtRUFHQUlOOwotCi0JCS8qIHF1ZXJ5IHRoZSByZWcgYWNjZXNzIG1vZGUgYXQgdGhlIHZlcnkgYmVnaW5uaW5nICovCi0JCWFtZGdwdV92aXJ0X2luaXRfcmVnX2FjY2Vzc19tb2RlKGFkZXYpOwogCX0KIAogCWFkZXYtPnBtLnBwX2ZlYXR1cmUgPSBhbWRncHVfcHBfZmVhdHVyZV9tYXNrOwpAQCAtMTY2NSwyOCArMTcyMSwzNCBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfZndfbG9hZGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCWlmIChhZGV2LT5hc2ljX3R5cGUgPj0gQ0hJUF9WRUdBMTApIHsKIAkJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV9pcF9ibG9ja3M7IGkrKykgewotCQkJaWYgKGFkZXYtPmlwX2Jsb2Nrc1tpXS52ZXJzaW9uLT50eXBlID09IEFNRF9JUF9CTE9DS19UWVBFX1BTUCkgewotCQkJCWlmIChhZGV2LT5pbl9ncHVfcmVzZXQgfHwgYWRldi0+aW5fc3VzcGVuZCkgewotCQkJCQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFkZXYtPmluX2dwdV9yZXNldCkKLQkJCQkJCWJyZWFrOyAvKiBzcmlvdiBncHUgcmVzZXQsIHBzcCBuZWVkIHRvIGRvIGh3X2luaXQgYmVmb3JlIElIIGJlY2F1c2Ugb2YgaHcgbGltaXQgKi8KLQkJCQkJciA9IGFkZXYtPmlwX2Jsb2Nrc1tpXS52ZXJzaW9uLT5mdW5jcy0+cmVzdW1lKGFkZXYpOwotCQkJCQlpZiAocikgewotCQkJCQkJRFJNX0VSUk9SKCJyZXN1bWUgb2YgSVAgYmxvY2sgPCVzPiBmYWlsZWQgJWRcbiIsCisJCQlpZiAoYWRldi0+aXBfYmxvY2tzW2ldLnZlcnNpb24tPnR5cGUgIT0gQU1EX0lQX0JMT0NLX1RZUEVfUFNQKQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBubyBuZWVkIHRvIGRvIHRoZSBmdyBsb2FkaW5nIGFnYWluIGlmIGFscmVhZHkgZG9uZSovCisJCQlpZiAoYWRldi0+aXBfYmxvY2tzW2ldLnN0YXR1cy5odyA9PSB0cnVlKQorCQkJCWJyZWFrOworCisJCQlpZiAoYWRldi0+aW5fZ3B1X3Jlc2V0IHx8IGFkZXYtPmluX3N1c3BlbmQpIHsKKwkJCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLnZlcnNpb24tPmZ1bmNzLT5yZXN1bWUoYWRldik7CisJCQkJaWYgKHIpIHsKKwkJCQkJRFJNX0VSUk9SKCJyZXN1bWUgb2YgSVAgYmxvY2sgPCVzPiBmYWlsZWQgJWRcbiIsCiAJCQkJCQkJICBhZGV2LT5pcF9ibG9ja3NbaV0udmVyc2lvbi0+ZnVuY3MtPm5hbWUsIHIpOwotCQkJCQkJcmV0dXJuIHI7Ci0JCQkJCX0KLQkJCQl9IGVsc2UgewotCQkJCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLnZlcnNpb24tPmZ1bmNzLT5od19pbml0KGFkZXYpOwotCQkJCQlpZiAocikgewotCQkJCQkJRFJNX0VSUk9SKCJod19pbml0IG9mIElQIGJsb2NrIDwlcz4gZmFpbGVkICVkXG4iLAotCQkJCQkJICBhZGV2LT5pcF9ibG9ja3NbaV0udmVyc2lvbi0+ZnVuY3MtPm5hbWUsIHIpOwotCQkJCQkJcmV0dXJuIHI7Ci0JCQkJCX0KKwkJCQkJcmV0dXJuIHI7CiAJCQkJfQotCQkJCWFkZXYtPmlwX2Jsb2Nrc1tpXS5zdGF0dXMuaHcgPSB0cnVlOworCQkJfSBlbHNlIHsKKwkJCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLnZlcnNpb24tPmZ1bmNzLT5od19pbml0KGFkZXYpOworCQkJCWlmIChyKSB7CisJCQkJCURSTV9FUlJPUigiaHdfaW5pdCBvZiBJUCBibG9jayA8JXM+IGZhaWxlZCAlZFxuIiwKKwkJCQkJCQkgIGFkZXYtPmlwX2Jsb2Nrc1tpXS52ZXJzaW9uLT5mdW5jcy0+bmFtZSwgcik7CisJCQkJCXJldHVybiByOworCQkJCX0KIAkJCX0KKworCQkJYWRldi0+aXBfYmxvY2tzW2ldLnN0YXR1cy5odyA9IHRydWU7CisJCQlicmVhazsKIAkJfQogCX0KKwogCXIgPSBhbWRncHVfcG1fbG9hZF9zbXVfZmlybXdhcmUoYWRldiwgJnNtdV92ZXJzaW9uKTsKIAogCXJldHVybiByOwpAQCAtMjEyOCw3ICsyMTkwLDkgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX2lwX3N1c3BlbmRfcGhhc2UxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJaWYgKHIpIHsKIAkJCQlEUk1fRVJST1IoInN1c3BlbmQgb2YgSVAgYmxvY2sgPCVzPiBmYWlsZWQgJWRcbiIsCiAJCQkJCSAgYWRldi0+aXBfYmxvY2tzW2ldLnZlcnNpb24tPmZ1bmNzLT5uYW1lLCByKTsKKwkJCQlyZXR1cm4gcjsKIAkJCX0KKwkJCWFkZXYtPmlwX2Jsb2Nrc1tpXS5zdGF0dXMuaHcgPSBmYWxzZTsKIAkJfQogCX0KIApAQCAtMjE2Myw2ICsyMjI3LDI1IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9pcF9zdXNwZW5kX3BoYXNlMihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCURSTV9FUlJPUigic3VzcGVuZCBvZiBJUCBibG9jayA8JXM+IGZhaWxlZCAlZFxuIiwKIAkJCQkgIGFkZXYtPmlwX2Jsb2Nrc1tpXS52ZXJzaW9uLT5mdW5jcy0+bmFtZSwgcik7CiAJCX0KKwkJYWRldi0+aXBfYmxvY2tzW2ldLnN0YXR1cy5odyA9IGZhbHNlOworCQkvKiBoYW5kbGUgcHV0dGluZyB0aGUgU01DIGluIHRoZSBhcHByb3ByaWF0ZSBzdGF0ZSAqLworCQlpZiAoYWRldi0+aXBfYmxvY2tzW2ldLnZlcnNpb24tPnR5cGUgPT0gQU1EX0lQX0JMT0NLX1RZUEVfU01DKSB7CisJCQlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpIHsKKwkJCQkvKiB0b2RvICovCisJCQl9IGVsc2UgaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcyAmJgorCQkJCQkgICBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnNldF9tcDFfc3RhdGUpIHsKKwkJCQlyID0gYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5zZXRfbXAxX3N0YXRlKAorCQkJCQlhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlLAorCQkJCQlhZGV2LT5tcDFfc3RhdGUpOworCQkJCWlmIChyKSB7CisJCQkJCURSTV9FUlJPUigiU01DIGZhaWxlZCB0byBzZXQgbXAxIHN0YXRlICVkLCAlZFxuIiwKKwkJCQkJCSAgYWRldi0+bXAxX3N0YXRlLCByKTsKKwkJCQkJcmV0dXJuIHI7CisJCQkJfQorCQkJfQorCQl9CisKKwkJYWRldi0+aXBfYmxvY2tzW2ldLnN0YXR1cy5odyA9IGZhbHNlOwogCX0KIAogCXJldHVybiAwOwpAQCAtMjIxNSw2ICsyMjk4LDcgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX2lwX3JlaW5pdF9lYXJseV9zcmlvdihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJZm9yIChqID0gMDsgaiA8IGFkZXYtPm51bV9pcF9ibG9ja3M7IGorKykgewogCQkJYmxvY2sgPSAmYWRldi0+aXBfYmxvY2tzW2pdOwogCisJCQlibG9jay0+c3RhdHVzLmh3ID0gZmFsc2U7CiAJCQlpZiAoYmxvY2stPnZlcnNpb24tPnR5cGUgIT0gaXBfb3JkZXJbaV0gfHwKIAkJCQkhYmxvY2stPnN0YXR1cy52YWxpZCkKIAkJCQljb250aW51ZTsKQEAgLTIyMjMsNiArMjMwNyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9pcF9yZWluaXRfZWFybHlfc3Jpb3Yoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQlEUk1fSU5GTygiUkUtSU5JVC1lYXJseTogJXMgJXNcbiIsIGJsb2NrLT52ZXJzaW9uLT5mdW5jcy0+bmFtZSwgcj8iZmFpbGVkIjoic3VjY2VlZGVkIik7CiAJCQlpZiAocikKIAkJCQlyZXR1cm4gcjsKKwkJCWJsb2NrLT5zdGF0dXMuaHcgPSB0cnVlOwogCQl9CiAJfQogCkBAIC0yMjUwLDEzICsyMzM1LDE1IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9pcF9yZWluaXRfbGF0ZV9zcmlvdihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCWJsb2NrID0gJmFkZXYtPmlwX2Jsb2Nrc1tqXTsKIAogCQkJaWYgKGJsb2NrLT52ZXJzaW9uLT50eXBlICE9IGlwX29yZGVyW2ldIHx8Ci0JCQkJIWJsb2NrLT5zdGF0dXMudmFsaWQpCisJCQkJIWJsb2NrLT5zdGF0dXMudmFsaWQgfHwKKwkJCQlibG9jay0+c3RhdHVzLmh3KQogCQkJCWNvbnRpbnVlOwogCiAJCQlyID0gYmxvY2stPnZlcnNpb24tPmZ1bmNzLT5od19pbml0KGFkZXYpOwogCQkJRFJNX0lORk8oIlJFLUlOSVQtbGF0ZTogJXMgJXNcbiIsIGJsb2NrLT52ZXJzaW9uLT5mdW5jcy0+bmFtZSwgcj8iZmFpbGVkIjoic3VjY2VlZGVkIik7CiAJCQlpZiAocikKIAkJCQlyZXR1cm4gcjsKKwkJCWJsb2NrLT5zdGF0dXMuaHcgPSB0cnVlOwogCQl9CiAJfQogCkBAIC0yMjgwLDE3ICsyMzY3LDE5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9pcF9yZXN1bWVfcGhhc2UxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWludCBpLCByOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV9pcF9ibG9ja3M7IGkrKykgewotCQlpZiAoIWFkZXYtPmlwX2Jsb2Nrc1tpXS5zdGF0dXMudmFsaWQpCisJCWlmICghYWRldi0+aXBfYmxvY2tzW2ldLnN0YXR1cy52YWxpZCB8fCBhZGV2LT5pcF9ibG9ja3NbaV0uc3RhdHVzLmh3KQogCQkJY29udGludWU7CiAJCWlmIChhZGV2LT5pcF9ibG9ja3NbaV0udmVyc2lvbi0+dHlwZSA9PSBBTURfSVBfQkxPQ0tfVFlQRV9DT01NT04gfHwKIAkJICAgIGFkZXYtPmlwX2Jsb2Nrc1tpXS52ZXJzaW9uLT50eXBlID09IEFNRF9JUF9CTE9DS19UWVBFX0dNQyB8fAogCQkgICAgYWRldi0+aXBfYmxvY2tzW2ldLnZlcnNpb24tPnR5cGUgPT0gQU1EX0lQX0JMT0NLX1RZUEVfSUgpIHsKKwogCQkJciA9IGFkZXYtPmlwX2Jsb2Nrc1tpXS52ZXJzaW9uLT5mdW5jcy0+cmVzdW1lKGFkZXYpOwogCQkJaWYgKHIpIHsKIAkJCQlEUk1fRVJST1IoInJlc3VtZSBvZiBJUCBibG9jayA8JXM+IGZhaWxlZCAlZFxuIiwKIAkJCQkJICBhZGV2LT5pcF9ibG9ja3NbaV0udmVyc2lvbi0+ZnVuY3MtPm5hbWUsIHIpOwogCQkJCXJldHVybiByOwogCQkJfQorCQkJYWRldi0+aXBfYmxvY2tzW2ldLnN0YXR1cy5odyA9IHRydWU7CiAJCX0KIAl9CiAKQEAgLTIzMTUsNyArMjQwNCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9pcF9yZXN1bWVfcGhhc2UyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWludCBpLCByOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV9pcF9ibG9ja3M7IGkrKykgewotCQlpZiAoIWFkZXYtPmlwX2Jsb2Nrc1tpXS5zdGF0dXMudmFsaWQpCisJCWlmICghYWRldi0+aXBfYmxvY2tzW2ldLnN0YXR1cy52YWxpZCB8fCBhZGV2LT5pcF9ibG9ja3NbaV0uc3RhdHVzLmh3KQogCQkJY29udGludWU7CiAJCWlmIChhZGV2LT5pcF9ibG9ja3NbaV0udmVyc2lvbi0+dHlwZSA9PSBBTURfSVBfQkxPQ0tfVFlQRV9DT01NT04gfHwKIAkJICAgIGFkZXYtPmlwX2Jsb2Nrc1tpXS52ZXJzaW9uLT50eXBlID09IEFNRF9JUF9CTE9DS19UWVBFX0dNQyB8fApAQCAtMjMyOCw2ICsyNDE3LDcgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX2lwX3Jlc3VtZV9waGFzZTIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQkJICBhZGV2LT5pcF9ibG9ja3NbaV0udmVyc2lvbi0+ZnVuY3MtPm5hbWUsIHIpOwogCQkJcmV0dXJuIHI7CiAJCX0KKwkJYWRldi0+aXBfYmxvY2tzW2ldLnN0YXR1cy5odyA9IHRydWU7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0yNDI2LDYgKzI1MTYsMTEgQEAgYm9vbCBhbWRncHVfZGV2aWNlX2FzaWNfaGFzX2RjX3N1cHBvcnQoZW51bSBhbWRfYXNpY190eXBlIGFzaWNfdHlwZSkKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQogCWNhc2UgQ0hJUF9OQVZJMTA6CisJY2FzZSBDSElQX05BVkkxNDoKKwljYXNlIENISVBfTkFWSTEyOgorI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisJY2FzZSBDSElQX1JFTk9JUjoKICNlbmRpZgogCQlyZXR1cm4gYW1kZ3B1X2RjICE9IDA7CiAjZW5kaWYKQEAgLTI1MDksNiArMjYwNCw4IEBAIGludCBhbWRncHVfZGV2aWNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJYWRldi0+cGNpZV93cmVnID0gJmFtZGdwdV9pbnZhbGlkX3dyZWc7CiAJYWRldi0+cGNpZXBfcnJlZyA9ICZhbWRncHVfaW52YWxpZF9ycmVnOwogCWFkZXYtPnBjaWVwX3dyZWcgPSAmYW1kZ3B1X2ludmFsaWRfd3JlZzsKKwlhZGV2LT5wY2llX3JyZWc2NCA9ICZhbWRncHVfaW52YWxpZF9ycmVnNjQ7CisJYWRldi0+cGNpZV93cmVnNjQgPSAmYW1kZ3B1X2ludmFsaWRfd3JlZzY0OwogCWFkZXYtPnV2ZF9jdHhfcnJlZyA9ICZhbWRncHVfaW52YWxpZF9ycmVnOwogCWFkZXYtPnV2ZF9jdHhfd3JlZyA9ICZhbWRncHVfaW52YWxpZF93cmVnOwogCWFkZXYtPmRpZHRfcnJlZyA9ICZhbWRncHVfaW52YWxpZF9ycmVnOwpAQCAtMzM4OSw3ICszNDg2LDcgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3Jlc2V0X3NyaW92KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWFtZGdwdV92aXJ0X2luaXRfZGF0YV9leGNoYW5nZShhZGV2KTsKIAlhbWRncHVfdmlydF9yZWxlYXNlX2Z1bGxfZ3B1KGFkZXYsIHRydWUpOwogCWlmICghciAmJiBhZGV2LT52aXJ0LmdpbV9mZWF0dXJlICYgQU1ER0lNX0ZFQVRVUkVfR0lNX0ZMUl9WUkFNTE9TVCkgewotCQlhdG9taWNfaW5jKCZhZGV2LT52cmFtX2xvc3RfY291bnRlcik7CisJCWFtZGdwdV9pbmNfdnJhbV9sb3N0KGFkZXYpOwogCQlyID0gYW1kZ3B1X2RldmljZV9yZWNvdmVyX3ZyYW0oYWRldik7CiAJfQogCkBAIC0zNDMxLDYgKzM1MjgsNyBAQCBib29sIGFtZGdwdV9kZXZpY2Vfc2hvdWxkX3JlY292ZXJfZ3B1KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQljYXNlIENISVBfVkVHQTIwOgogCQljYXNlIENISVBfVkVHQTEwOgogCQljYXNlIENISVBfVkVHQTEyOgorCQljYXNlIENISVBfUkFWRU46CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWdvdG8gZGlzYWJsZWQ7CkBAIC0zNTU0LDcgKzM2NTIsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9kb19hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfaGl2ZV9pbmZvICpoaXZlLAogCQkJCXZyYW1fbG9zdCA9IGFtZGdwdV9kZXZpY2VfY2hlY2tfdnJhbV9sb3N0KHRtcF9hZGV2KTsKIAkJCQlpZiAodnJhbV9sb3N0KSB7CiAJCQkJCURSTV9JTkZPKCJWUkFNIGlzIGxvc3QgZHVlIHRvIEdQVSByZXNldCFcbiIpOwotCQkJCQlhdG9taWNfaW5jKCZ0bXBfYWRldi0+dnJhbV9sb3N0X2NvdW50ZXIpOworCQkJCQlhbWRncHVfaW5jX3ZyYW1fbG9zdCh0bXBfYWRldik7CiAJCQkJfQogCiAJCQkJciA9IGFtZGdwdV9ndHRfbWdyX3JlY292ZXIoCkBAIC0zNjI3LDYgKzM3MjUsMTcgQEAgc3RhdGljIGJvb2wgYW1kZ3B1X2RldmljZV9sb2NrX2FkZXYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdHJ5bG9jaykKIAogCWF0b21pY19pbmMoJmFkZXYtPmdwdV9yZXNldF9jb3VudGVyKTsKIAlhZGV2LT5pbl9ncHVfcmVzZXQgPSAxOworCXN3aXRjaCAoYW1kZ3B1X2FzaWNfcmVzZXRfbWV0aG9kKGFkZXYpKSB7CisJY2FzZSBBTURfUkVTRVRfTUVUSE9EX01PREUxOgorCQlhZGV2LT5tcDFfc3RhdGUgPSBQUF9NUDFfU1RBVEVfU0hVVERPV047CisJCWJyZWFrOworCWNhc2UgQU1EX1JFU0VUX01FVEhPRF9NT0RFMjoKKwkJYWRldi0+bXAxX3N0YXRlID0gUFBfTVAxX1NUQVRFX1JFU0VUOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlhZGV2LT5tcDFfc3RhdGUgPSBQUF9NUDFfU1RBVEVfTk9ORTsKKwkJYnJlYWs7CisJfQogCS8qIEJsb2NrIGtmZDogU1JJT1Ygd291bGQgZG8gaXQgc2VwYXJhdGVseSAqLwogCWlmICghYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQogICAgICAgICAgICAgICAgIGFtZGdwdV9hbWRrZmRfcHJlX3Jlc2V0KGFkZXYpOwpAQCAtMzY0MCw2ICszNzQ5LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV91bmxvY2tfYWRldihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkKICAgICAgICAgICAgICAgICBhbWRncHVfYW1ka2ZkX3Bvc3RfcmVzZXQoYWRldik7CiAJYW1kZ3B1X3ZmX2Vycm9yX3RyYW5zX2FsbChhZGV2KTsKKwlhZGV2LT5tcDFfc3RhdGUgPSBQUF9NUDFfU1RBVEVfTk9ORTsKIAlhZGV2LT5pbl9ncHVfcmVzZXQgPSAwOwogCW11dGV4X3VubG9jaygmYWRldi0+bG9ja19yZXNldCk7CiB9CkBAIC0zNjg0LDE0ICszNzk0LDE0IEBAIGludCBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJaWYgKGhpdmUgJiYgIW11dGV4X3RyeWxvY2soJmhpdmUtPnJlc2V0X2xvY2spKSB7CiAJCURSTV9JTkZPKCJCYWlsaW5nIG9uIFREUiBmb3Igc19qb2I6JWxseCwgaGl2ZTogJWxseCBhcyBhbm90aGVyIGFscmVhZHkgaW4gcHJvZ3Jlc3MiLAotCQkJIGpvYi0+YmFzZS5pZCwgaGl2ZS0+aGl2ZV9pZCk7CisJCQkgIGpvYiA/IGpvYi0+YmFzZS5pZCA6IC0xLCBoaXZlLT5oaXZlX2lkKTsKIAkJcmV0dXJuIDA7CiAJfQogCiAJLyogU3RhcnQgd2l0aCBhZGV2IHByZSBhc2ljIHJlc2V0IGZpcnN0IGZvciBzb2Z0IHJlc2V0IGNoZWNrLiovCiAJaWYgKCFhbWRncHVfZGV2aWNlX2xvY2tfYWRldihhZGV2LCAhaGl2ZSkpIHsKIAkJRFJNX0lORk8oIkJhaWxpbmcgb24gVERSIGZvciBzX2pvYjolbGx4LCBhcyBhbm90aGVyIGFscmVhZHkgaW4gcHJvZ3Jlc3MiLAotCQkJCQkgam9iLT5iYXNlLmlkKTsKKwkJCSAgam9iID8gam9iLT5iYXNlLmlkIDogLTEpOwogCQlyZXR1cm4gMDsKIAl9CiAKQEAgLTM3MzIsNyArMzg0Miw3IEBAIGludCBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJaWYgKCFyaW5nIHx8ICFyaW5nLT5zY2hlZC50aHJlYWQpCiAJCQkJY29udGludWU7CiAKLQkJCWRybV9zY2hlZF9zdG9wKCZyaW5nLT5zY2hlZCwgJmpvYi0+YmFzZSk7CisJCQlkcm1fc2NoZWRfc3RvcCgmcmluZy0+c2NoZWQsIGpvYiA/ICZqb2ItPmJhc2UgOiBOVUxMKTsKIAkJfQogCX0KIApAQCAtMzc1Nyw5ICszODY3LDcgQEAgaW50IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIAogCS8qIEd1aWx0eSBqb2Igd2lsbCBiZSBmcmVlZCBhZnRlciB0aGlzKi8KLQlyID0gYW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChhZGV2LAotCQkJCQkgam9iLAotCQkJCQkgJm5lZWRfZnVsbF9yZXNldCk7CisJciA9IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQoYWRldiwgam9iLCAmbmVlZF9mdWxsX3Jlc2V0KTsKIAlpZiAocikgewogCQkvKlRPRE8gU2hvdWxkIHdlIHN0b3AgPyovCiAJCURSTV9FUlJPUigiR1BVIHByZSBhc2ljIHJlc2V0IGZhaWxlZCB3aXRoIGVyciwgJWQgZm9yIGRybSBkZXYsICVzICIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYwppbmRleCA1MzU2NTA5Li4xZDRhYWE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKQEAgLTE5MSw3ICsxOTEsOCBAQCBpbnQgYW1kZ3B1X2Rpc3BsYXlfY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl9CiAKIAlpZiAoIWFkZXYtPmVuYWJsZV92aXJ0dWFsX2Rpc3BsYXkpIHsKLQkJciA9IGFtZGdwdV9ib19waW4obmV3X2FibywgYW1kZ3B1X2Rpc3BsYXlfc3VwcG9ydGVkX2RvbWFpbnMoYWRldikpOworCQlyID0gYW1kZ3B1X2JvX3BpbihuZXdfYWJvLAorCQkJCSAgYW1kZ3B1X2Rpc3BsYXlfc3VwcG9ydGVkX2RvbWFpbnMoYWRldiwgbmV3X2Fiby0+ZmxhZ3MpKTsKIAkJaWYgKHVubGlrZWx5KHIgIT0gMCkpIHsKIAkJCURSTV9FUlJPUigiZmFpbGVkIHRvIHBpbiBuZXcgYWJvIGJ1ZmZlciBiZWZvcmUgZmxpcFxuIik7CiAJCQlnb3RvIHVucmVzZXJ2ZTsKQEAgLTIwNCw3ICsyMDUsNyBAQCBpbnQgYW1kZ3B1X2Rpc3BsYXlfY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJZ290byB1bnBpbjsKIAl9CiAKLQlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KG5ld19hYm8tPnRiby5yZXN2LCAmd29yay0+ZXhjbCwKKwlyID0gZG1hX3Jlc3ZfZ2V0X2ZlbmNlc19yY3UobmV3X2Fiby0+dGJvLmJhc2UucmVzdiwgJndvcmstPmV4Y2wsCiAJCQkJCSAgICAgICZ3b3JrLT5zaGFyZWRfY291bnQsCiAJCQkJCSAgICAgICZ3b3JrLT5zaGFyZWQpOwogCWlmICh1bmxpa2VseShyICE9IDApKSB7CkBAIC00OTUsMTMgKzQ5NiwyNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyBhbWRncHVfZmJfZnVuY3MgPSB7CiAJLmNyZWF0ZV9oYW5kbGUgPSBkcm1fZ2VtX2ZiX2NyZWF0ZV9oYW5kbGUsCiB9OwogCi11aW50MzJfdCBhbWRncHVfZGlzcGxheV9zdXBwb3J0ZWRfZG9tYWlucyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3VpbnQzMl90IGFtZGdwdV9kaXNwbGF5X3N1cHBvcnRlZF9kb21haW5zKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgIHVpbnQ2NF90IGJvX2ZsYWdzKQogewogCXVpbnQzMl90IGRvbWFpbiA9IEFNREdQVV9HRU1fRE9NQUlOX1ZSQU07CiAKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDKQotCWlmIChhZGV2LT5hc2ljX3R5cGUgPj0gQ0hJUF9DQVJSSVpPICYmIGFkZXYtPmFzaWNfdHlwZSA8IENISVBfUkFWRU4gJiYKLQkgICAgYWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVICYmCisJLyoKKwkgKiBpZiBhbWRncHVfYm9fc3VwcG9ydF91c3djIHJldHVybnMgZmFsc2UgaXQgbWVhbnMgdGhhdCBVU1dDIG1hcHBpbmdzCisJICogaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBib2FyZC4gQnV0IHRoaXMgbWFwcGluZyBpcyByZXF1aXJlZAorCSAqIHRvIGF2b2lkIGhhbmcgY2F1c2VkIGJ5IHBsYWNlbWVudCBvZiBzY2Fub3V0IEJPIGluIEdUVCBvbiBjZXJ0YWluCisJICogQVBVcy4gU28gZm9yY2UgdGhlIEJPIHBsYWNlbWVudCB0byBWUkFNIGluIGNhc2UgdGhpcyBhcmNoaXRlY3R1cmUKKwkgKiB3aWxsIG5vdCBhbGxvdyBVU1dDIG1hcHBpbmdzLgorCSAqIEFsc28sIGRvbid0IGFsbG93IEdUVCBkb21haW4gaWYgdGhlIEJPIGRvZW5zJ3QgaGF2ZSBVU1dDIGZhbGcgc2V0LgorCSAqLworCWlmIChhZGV2LT5hc2ljX3R5cGUgPj0gQ0hJUF9DQVJSSVpPICYmCisJICAgIGFkZXYtPmFzaWNfdHlwZSA8PSBDSElQX1JBVkVOICYmCisJICAgIChhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpICYmCisJICAgIChib19mbGFncyAmIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9HVFRfVVNXQykgJiYKKwkgICAgYW1kZ3B1X2JvX3N1cHBvcnRfdXN3Yyhib19mbGFncykgJiYKIAkgICAgYW1kZ3B1X2RldmljZV9hc2ljX2hhc19kY19zdXBwb3J0KGFkZXYtPmFzaWNfdHlwZSkpCiAJCWRvbWFpbiB8PSBBTURHUFVfR0VNX0RPTUFJTl9HVFQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5oCmluZGV4IDA2YjkyMmYuLjM2MjBiMjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuaApAQCAtMzgsNyArMzgsOCBAQAogaW50IGFtZGdwdV9kaXNwbGF5X2ZyZWVzeW5jX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwogdm9pZCBhbWRncHVfZGlzcGxheV91cGRhdGVfcHJpb3JpdHkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwotdWludDMyX3QgYW1kZ3B1X2Rpc3BsYXlfc3VwcG9ydGVkX2RvbWFpbnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwordWludDMyX3QgYW1kZ3B1X2Rpc3BsYXlfc3VwcG9ydGVkX2RvbWFpbnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCSAgdWludDY0X3QgYm9fZmxhZ3MpOwogc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqCiBhbWRncHVfZGlzcGxheV91c2VyX2ZyYW1lYnVmZmVyX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1Zi5jCmluZGV4IDQ4OTA0MWQuLjYxZjEwOGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuYwpAQCAtMTM3LDIzICsxMzcsMjMgQEAgaW50IGFtZGdwdV9nZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIH0KIAogc3RhdGljIGludAotX19yZXNlcnZhdGlvbl9vYmplY3RfbWFrZV9leGNsdXNpdmUoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQorX19kbWFfcmVzdl9tYWtlX2V4Y2x1c2l2ZShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaikKIHsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzOwogCXVuc2lnbmVkIGludCBjb3VudDsKIAlpbnQgcjsKIAotCWlmICghcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KG9iaikpIC8qIG5vIHNoYXJlZCBmZW5jZXMgdG8gY29udmVydCAqLworCWlmICghZG1hX3Jlc3ZfZ2V0X2xpc3Qob2JqKSkgLyogbm8gc2hhcmVkIGZlbmNlcyB0byBjb252ZXJ0ICovCiAJCXJldHVybiAwOwogCi0JciA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShvYmosIE5VTEwsICZjb3VudCwgJmZlbmNlcyk7CisJciA9IGRtYV9yZXN2X2dldF9mZW5jZXNfcmN1KG9iaiwgTlVMTCwgJmNvdW50LCAmZmVuY2VzKTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKIAlpZiAoY291bnQgPT0gMCkgewogCQkvKiBOb3cgdGhhdCB3YXMgdW5leHBlY3RlZC4gKi8KIAl9IGVsc2UgaWYgKGNvdW50ID09IDEpIHsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKG9iaiwgZmVuY2VzWzBdKTsKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2Uob2JqLCBmZW5jZXNbMF0pOwogCQlkbWFfZmVuY2VfcHV0KGZlbmNlc1swXSk7CiAJCWtmcmVlKGZlbmNlcyk7CiAJfSBlbHNlIHsKQEAgLTE2NSw3ICsxNjUsNyBAQCBfX3Jlc2VydmF0aW9uX29iamVjdF9tYWtlX2V4Y2x1c2l2ZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiAJCWlmICghYXJyYXkpCiAJCQlnb3RvIGVycl9mZW5jZXNfcHV0OwogCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShvYmosICZhcnJheS0+YmFzZSk7CisJCWRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKG9iaiwgJmFycmF5LT5iYXNlKTsKIAkJZG1hX2ZlbmNlX3B1dCgmYXJyYXktPmJhc2UpOwogCX0KIApAQCAtMjE2LDcgKzIxNiw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RtYV9idWZfbWFwX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKIAkJICogZmVuY2VzIG9uIHRoZSByZXNlcnZhdGlvbiBvYmplY3QgaW50byBhIHNpbmdsZSBleGNsdXNpdmUKIAkJICogZmVuY2UuCiAJCSAqLwotCQlyID0gX19yZXNlcnZhdGlvbl9vYmplY3RfbWFrZV9leGNsdXNpdmUoYm8tPnRiby5yZXN2KTsKKwkJciA9IF9fZG1hX3Jlc3ZfbWFrZV9leGNsdXNpdmUoYm8tPnRiby5iYXNlLnJlc3YpOwogCQlpZiAocikKIAkJCWdvdG8gZXJyb3JfdW5yZXNlcnZlOwogCX0KQEAgLTI2OCwyMCArMjY4LDYgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RtYV9idWZfbWFwX2RldGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKIH0KIAogLyoqCi0gKiBhbWRncHVfZ2VtX3ByaW1lX3Jlc19vYmogLSAmZHJtX2RyaXZlci5nZW1fcHJpbWVfcmVzX29iaiBpbXBsZW1lbnRhdGlvbgotICogQG9iajogR0VNIEJPCi0gKgotICogUmV0dXJuczoKLSAqIFRoZSBCTydzIHJlc2VydmF0aW9uIG9iamVjdC4KLSAqLwotc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqYW1kZ3B1X2dlbV9wcmltZV9yZXNfb2JqKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQotewotCXN0cnVjdCBhbWRncHVfYm8gKmJvID0gZ2VtX3RvX2FtZGdwdV9ibyhvYmopOwotCi0JcmV0dXJuIGJvLT50Ym8ucmVzdjsKLX0KLQotLyoqCiAgKiBhbWRncHVfZG1hX2J1Zl9iZWdpbl9jcHVfYWNjZXNzIC0gJmRtYV9idWZfb3BzLmJlZ2luX2NwdV9hY2Nlc3MgaW1wbGVtZW50YXRpb24KICAqIEBkbWFfYnVmOiBTaGFyZWQgRE1BIGJ1ZmZlcgogICogQGRpcmVjdGlvbjogRGlyZWN0aW9uIG9mIERNQSB0cmFuc2ZlcgpAQCAtMjk5LDcgKzI4NSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RtYV9idWZfYmVnaW5fY3B1X2FjY2VzcyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKIAlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGdlbV90b19hbWRncHVfYm8oZG1hX2J1Zi0+cHJpdik7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoYm8tPnRiby5iZGV2KTsKIAlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyB0cnVlLCBmYWxzZSB9OwotCXUzMiBkb21haW4gPSBhbWRncHVfZGlzcGxheV9zdXBwb3J0ZWRfZG9tYWlucyhhZGV2KTsKKwl1MzIgZG9tYWluID0gYW1kZ3B1X2Rpc3BsYXlfc3VwcG9ydGVkX2RvbWFpbnMoYWRldiwgYm8tPmZsYWdzKTsKIAlpbnQgcmV0OwogCWJvb2wgcmVhZHMgPSAoZGlyZWN0aW9uID09IERNQV9CSURJUkVDVElPTkFMIHx8CiAJCSAgICAgIGRpcmVjdGlvbiA9PSBETUFfRlJPTV9ERVZJQ0UpOwpAQCAtMzM5LDE0ICszMjUsMTIgQEAgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIGFtZGdwdV9kbWFidWZfb3BzID0gewogICogQGdvYmo6IEdFTSBCTwogICogQGZsYWdzOiBGbGFncyBzdWNoIGFzIERSTV9DTE9FWEVDIGFuZCBEUk1fUkRXUi4KICAqCi0gKiBUaGUgbWFpbiB3b3JrIGlzIGRvbmUgYnkgdGhlICZkcm1fZ2VtX3ByaW1lX2V4cG9ydCBoZWxwZXIsIHdoaWNoIGluIHR1cm4KLSAqIHVzZXMgJmFtZGdwdV9nZW1fcHJpbWVfcmVzX29iai4KKyAqIFRoZSBtYWluIHdvcmsgaXMgZG9uZSBieSB0aGUgJmRybV9nZW1fcHJpbWVfZXhwb3J0IGhlbHBlci4KICAqCiAgKiBSZXR1cm5zOgogICogU2hhcmVkIERNQSBidWZmZXIgcmVwcmVzZW50aW5nIHRoZSBHRU0gQk8gZnJvbSB0aGUgZ2l2ZW4gZGV2aWNlLgogICovCi1zdHJ1Y3QgZG1hX2J1ZiAqYW1kZ3B1X2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqLAorc3RydWN0IGRtYV9idWYgKmFtZGdwdV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaiwKIAkJCQkJaW50IGZsYWdzKQogewogCXN0cnVjdCBhbWRncHVfYm8gKmJvID0gZ2VtX3RvX2FtZGdwdV9ibyhnb2JqKTsKQEAgLTM1Niw5ICszNDAsOSBAQCBzdHJ1Y3QgZG1hX2J1ZiAqYW1kZ3B1X2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkgICAgYm8tPmZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfVk1fQUxXQVlTX1ZBTElEKQogCQlyZXR1cm4gRVJSX1BUUigtRVBFUk0pOwogCi0JYnVmID0gZHJtX2dlbV9wcmltZV9leHBvcnQoZGV2LCBnb2JqLCBmbGFncyk7CisJYnVmID0gZHJtX2dlbV9wcmltZV9leHBvcnQoZ29iaiwgZmxhZ3MpOwogCWlmICghSVNfRVJSKGJ1ZikpIHsKLQkJYnVmLT5maWxlLT5mX21hcHBpbmcgPSBkZXYtPmFub25faW5vZGUtPmlfbWFwcGluZzsKKwkJYnVmLT5maWxlLT5mX21hcHBpbmcgPSBnb2JqLT5kZXYtPmFub25faW5vZGUtPmlfbWFwcGluZzsKIAkJYnVmLT5vcHMgPSAmYW1kZ3B1X2RtYWJ1Zl9vcHM7CiAJfQogCkBAIC0zODMsNyArMzY3LDcgQEAgYW1kZ3B1X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAogCQkJCSBzdHJ1Y3Qgc2dfdGFibGUgKnNnKQogewotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YgPSBhdHRhY2gtPmRtYWJ1Zi0+cmVzdjsKKwlzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YgPSBhdHRhY2gtPmRtYWJ1Zi0+cmVzdjsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGFtZGdwdV9ibyAqYm87CiAJc3RydWN0IGFtZGdwdV9ib19wYXJhbSBicDsKQEAgLTM5Niw3ICszODAsNyBAQCBhbWRncHVfZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWJwLmZsYWdzID0gMDsKIAlicC50eXBlID0gdHRtX2JvX3R5cGVfc2c7CiAJYnAucmVzdiA9IHJlc3Y7Ci0Jd3dfbXV0ZXhfbG9jaygmcmVzdi0+bG9jaywgTlVMTCk7CisJZG1hX3Jlc3ZfbG9jayhyZXN2LCBOVUxMKTsKIAlyZXQgPSBhbWRncHVfYm9fY3JlYXRlKGFkZXYsICZicCwgJmJvKTsKIAlpZiAocmV0KQogCQlnb3RvIGVycm9yOwpAQCAtNDA4LDExICszOTIsMTEgQEAgYW1kZ3B1X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoYXR0YWNoLT5kbWFidWYtPm9wcyAhPSAmYW1kZ3B1X2RtYWJ1Zl9vcHMpCiAJCWJvLT5wcmltZV9zaGFyZWRfY291bnQgPSAxOwogCi0Jd3dfbXV0ZXhfdW5sb2NrKCZyZXN2LT5sb2NrKTsKLQlyZXR1cm4gJmJvLT5nZW1fYmFzZTsKKwlkbWFfcmVzdl91bmxvY2socmVzdik7CisJcmV0dXJuICZiby0+dGJvLmJhc2U7CiAKIGVycm9yOgotCXd3X211dGV4X3VubG9jaygmcmVzdi0+bG9jayk7CisJZG1hX3Jlc3ZfdW5sb2NrKHJlc3YpOwogCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1Zi5oCmluZGV4IGM3MDU2Y2IuLjUwMTJlNmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuaApAQCAtMzAsMTIgKzMwLDEwIEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqCiBhbWRncHVfZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCiAJCQkJIHN0cnVjdCBzZ190YWJsZSAqc2cpOwotc3RydWN0IGRtYV9idWYgKmFtZGdwdV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaiwKK3N0cnVjdCBkbWFfYnVmICphbWRncHVfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmosCiAJCQkJCWludCBmbGFncyk7CiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmFtZGdwdV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSAgICBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zik7Ci1zdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICphbWRncHVfZ2VtX3ByaW1lX3Jlc19vYmooc3RydWN0IGRybV9nZW1fb2JqZWN0ICopOwogdm9pZCAqYW1kZ3B1X2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIHZvaWQgYW1kZ3B1X2dlbV9wcmltZV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKIGludCBhbWRncHVfZ2VtX3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG9vcmJlbGwuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kb29yYmVsbC5oCmluZGV4IDc5MDI2M2QuLjNmYTE4MDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kb29yYmVsbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kb29yYmVsbC5oCkBAIC0xMzAsMTMgKzEzMCwxOCBAQCB0eXBlZGVmIGVudW0gX0FNREdQVV9WRUdBMjBfRE9PUkJFTExfQVNTSUdOTUVOVAogCUFNREdQVV9WRUdBMjBfRE9PUkJFTExfSUggICAgICAgICAgICAgICAgICAgICAgPSAweDE3OCwKIAkvKiBNTVNDSDogMzkyfjQwNwogCSAqIG92ZXJsYXAgdGhlIGRvb3JiZWxsIGFzc2lnbm1lbnQgd2l0aCBWQ04gYXMgdGhleSBhcmUgIG11dHVhbGx5IGV4Y2x1c2l2ZQotCSAqIFZDRSBlbmdpbmUncyBkb29yYmVsbCBpcyAzMiBiaXQgYW5kIHR3byBWQ0UgcmluZyBzaGFyZSBvbmUgUVdPUkQKKwkgKiBWQ04gZW5naW5lJ3MgZG9vcmJlbGwgaXMgMzIgYml0IGFuZCB0d28gVkNOIHJpbmcgc2hhcmUgb25lIFFXT1JECiAJICovCi0JQU1ER1BVX1ZFR0EyMF9ET09SQkVMTDY0X1ZDTjBfMSAgICAgICAgICAgICAgICAgID0gMHgxODgsIC8qIGxvd2VyIDMyIGJpdHMgZm9yIFZOQzAgYW5kIHVwcGVyIDMyIGJpdHMgZm9yIFZOQzEgKi8KKwlBTURHUFVfVkVHQTIwX0RPT1JCRUxMNjRfVkNOMF8xICAgICAgICAgICAgICAgICAgPSAweDE4OCwgLyogVk5DMCAqLwogCUFNREdQVV9WRUdBMjBfRE9PUkJFTEw2NF9WQ04yXzMgICAgICAgICAgICAgICAgICA9IDB4MTg5LAogCUFNREdQVV9WRUdBMjBfRE9PUkJFTEw2NF9WQ040XzUgICAgICAgICAgICAgICAgICA9IDB4MThBLAogCUFNREdQVV9WRUdBMjBfRE9PUkJFTEw2NF9WQ042XzcgICAgICAgICAgICAgICAgICA9IDB4MThCLAogCisJQU1ER1BVX1ZFR0EyMF9ET09SQkVMTDY0X1ZDTjhfOSAgICAgICAgICAgICAgICAgID0gMHgxOEMsIC8qIFZOQzEgKi8KKwlBTURHUFVfVkVHQTIwX0RPT1JCRUxMNjRfVkNOYV9iICAgICAgICAgICAgICAgICAgPSAweDE4RCwKKwlBTURHUFVfVkVHQTIwX0RPT1JCRUxMNjRfVkNOY19kICAgICAgICAgICAgICAgICAgPSAweDE4RSwKKwlBTURHUFVfVkVHQTIwX0RPT1JCRUxMNjRfVkNOZV9mICAgICAgICAgICAgICAgICAgPSAweDE4RiwKKwogCUFNREdQVV9WRUdBMjBfRE9PUkJFTEw2NF9VVkRfUklORzBfMSAgICAgICAgICAgICA9IDB4MTg4LAogCUFNREdQVV9WRUdBMjBfRE9PUkJFTEw2NF9VVkRfUklORzJfMyAgICAgICAgICAgICA9IDB4MTg5LAogCUFNREdQVV9WRUdBMjBfRE9PUkJFTEw2NF9VVkRfUklORzRfNSAgICAgICAgICAgICA9IDB4MThBLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RwbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RwbS5jCmluZGV4IDYxYmQxMDMuLjU4MDNmY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHBtLmMKQEAgLTk0OCw2ICs5NDgsNyBAQCBpbnQgYW1kZ3B1X2RwbV9zZXRfcG93ZXJnYXRpbmdfYnlfc211KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCBibG9jawogCWNhc2UgQU1EX0lQX0JMT0NLX1RZUEVfVVZEOgogCWNhc2UgQU1EX0lQX0JMT0NLX1RZUEVfVkNOOgogCWNhc2UgQU1EX0lQX0JMT0NLX1RZUEVfVkNFOgorCWNhc2UgQU1EX0lQX0JMT0NLX1RZUEVfU0RNQToKIAkJaWYgKHN3c211KQogCQkJcmV0ID0gc211X2RwbV9zZXRfcG93ZXJfZ2F0ZSgmYWRldi0+c211LCBibG9ja190eXBlLCBnYXRlKTsKIAkJZWxzZQpAQCAtOTU2LDcgKzk1Nyw2IEBAIGludCBhbWRncHVfZHBtX3NldF9wb3dlcmdhdGluZ19ieV9zbXUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IGJsb2NrCiAJCWJyZWFrOwogCWNhc2UgQU1EX0lQX0JMT0NLX1RZUEVfR01DOgogCWNhc2UgQU1EX0lQX0JMT0NLX1RZUEVfQUNQOgotCWNhc2UgQU1EX0lQX0JMT0NLX1RZUEVfU0RNQToKIAkJcmV0ID0gKChhZGV2KS0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5zZXRfcG93ZXJnYXRpbmdfYnlfc211KAogCQkJCShhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRsZSwgYmxvY2tfdHlwZSwgZ2F0ZSkpOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwppbmRleCA1Mzc2MzI4Li4yNjQ2NzdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3ZnYV9zd2l0Y2hlcm9vLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9tbXVfbm90aWZpZXIuaD4KIAogI2luY2x1ZGUgImFtZGdwdS5oIgogI2luY2x1ZGUgImFtZGdwdV9pcnEuaCIKQEAgLTc5LDkgKzgwLDEwIEBACiAgKiAtIDMuMzEuMCAtIEFkZCBzdXBwb3J0IGZvciBwZXItZmxpcCB0aWxpbmcgYXR0cmlidXRlIGNoYW5nZXMgd2l0aCBEQwogICogLSAzLjMyLjAgLSBBZGQgc3luY29iaiB0aW1lbGluZSBzdXBwb3J0IHRvIEFNREdQVV9DUy4KICAqIC0gMy4zMy4wIC0gRml4ZXMgZm9yIEdEUyBFTk9NRU0gZmFpbHVyZXMgaW4gQU1ER1BVX0NTLgorICogLSAzLjM0LjAgLSBOb24tREMgY2FuIGZsaXAgY29ycmVjdGx5IGJldHdlZW4gYnVmZmVycyB3aXRoIGRpZmZlcmVudCBwaXRjaGVzCiAgKi8KICNkZWZpbmUgS01TX0RSSVZFUl9NQUpPUgkzCi0jZGVmaW5lIEtNU19EUklWRVJfTUlOT1IJMzMKKyNkZWZpbmUgS01TX0RSSVZFUl9NSU5PUgkzNAogI2RlZmluZSBLTVNfRFJJVkVSX1BBVENITEVWRUwJMAogCiAjZGVmaW5lIEFNREdQVV9NQVhfVElNRU9VVF9QQVJBTV9MRU5USAkyNTYKQEAgLTE0Miw3ICsxNDQsNyBAQCBpbnQgYW1kZ3B1X2FzeW5jX2dmeF9yaW5nID0gMTsKIGludCBhbWRncHVfbWNicCA9IDA7CiBpbnQgYW1kZ3B1X2Rpc2NvdmVyeSA9IC0xOwogaW50IGFtZGdwdV9tZXMgPSAwOwotaW50IGFtZGdwdV9ub3JldHJ5OworaW50IGFtZGdwdV9ub3JldHJ5ID0gMTsKIAogc3RydWN0IGFtZGdwdV9tZ3B1X2luZm8gbWdwdV9pbmZvID0gewogCS5tdXRleCA9IF9fTVVURVhfSU5JVElBTElaRVIobWdwdV9pbmZvLm11dGV4KSwKQEAgLTYxMCw3ICs2MTIsNyBAQCBNT0RVTEVfUEFSTV9ERVNDKG1lcywKIG1vZHVsZV9wYXJhbV9uYW1lZChtZXMsIGFtZGdwdV9tZXMsIGludCwgMDQ0NCk7CiAKIE1PRFVMRV9QQVJNX0RFU0Mobm9yZXRyeSwKLQkiRGlzYWJsZSByZXRyeSBmYXVsdHMgKDAgPSByZXRyeSBlbmFibGVkIChkZWZhdWx0KSwgMSA9IHJldHJ5IGRpc2FibGVkKSIpOworCSJEaXNhYmxlIHJldHJ5IGZhdWx0cyAoMCA9IHJldHJ5IGVuYWJsZWQsIDEgPSByZXRyeSBkaXNhYmxlZCAoZGVmYXVsdCkpIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQobm9yZXRyeSwgYW1kZ3B1X25vcmV0cnksIGludCwgMDY0NCk7CiAKICNpZmRlZiBDT05GSUdfSFNBX0FNRApAQCAtOTk2LDYgKzk5OCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcGNpaWRsaXN0W10gPSB7CiAJLyogUmF2ZW4gKi8KIAl7MHgxMDAyLCAweDE1ZGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUkFWRU58QU1EX0lTX0FQVX0sCiAJezB4MTAwMiwgMHgxNWQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JBVkVOfEFNRF9JU19BUFV9LAorCS8qIEFyY3R1cnVzICovCisJezB4MTAwMiwgMHg3MzhDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX0FSQ1RVUlVTfEFNRF9FWFBfSFdfU1VQUE9SVH0sCisJezB4MTAwMiwgMHg3Mzg4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX0FSQ1RVUlVTfEFNRF9FWFBfSFdfU1VQUE9SVH0sCisJezB4MTAwMiwgMHg3MzhFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX0FSQ1RVUlVTfEFNRF9FWFBfSFdfU1VQUE9SVH0sCisJezB4MTAwMiwgMHg3MzkwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX0FSQ1RVUlVTfEFNRF9FWFBfSFdfU1VQUE9SVH0sCiAJLyogTmF2aTEwICovCiAJezB4MTAwMiwgMHg3MzEwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX05BVkkxMH0sCiAJezB4MTAwMiwgMHg3MzEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX05BVkkxMH0sCkBAIC0xMDA0LDYgKzEwMTEsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaWlkbGlzdFtdID0gewogCXsweDEwMDIsIDB4NzMxQSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9OQVZJMTB9LAogCXsweDEwMDIsIDB4NzMxQiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9OQVZJMTB9LAogCXsweDEwMDIsIDB4NzMxRiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9OQVZJMTB9LAorCS8qIE5hdmkxNCAqLworCXsweDEwMDIsIDB4NzM0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9OQVZJMTR8QU1EX0VYUF9IV19TVVBQT1JUfSwKKwl7MHgxMDAyLCAweDczNDEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfTkFWSTE0fEFNRF9FWFBfSFdfU1VQUE9SVH0sCisJezB4MTAwMiwgMHg3MzQ3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX05BVkkxNHxBTURfRVhQX0hXX1NVUFBPUlR9LAorCisJLyogUmVub2lyICovCisJezB4MTAwMiwgMHgxNjM2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JFTk9JUnxBTURfSVNfQVBVfEFNRF9FWFBfSFdfU1VQUE9SVH0sCisKKwkvKiBOYXZpMTIgKi8KKwl7MHgxMDAyLCAweDczNjAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfTkFWSTEyfEFNRF9FWFBfSFdfU1VQUE9SVH0sCiAKIAl7MCwgMCwgMH0KIH07CkBAIC0xMDkyLDIxICsxMTA5LDIxIEBAIGFtZGdwdV9wY2lfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJICogdW5mb3J0dW5hdGVseSB3ZSBjYW4ndCBkZXRlY3QgY2VydGFpbgogCSAqIGh5cGVydmlzb3JzIHNvIGp1c3QgZG8gdGhpcyBhbGwgdGhlIHRpbWUuCiAJICovCisJYWRldi0+bXAxX3N0YXRlID0gUFBfTVAxX1NUQVRFX1VOTE9BRDsKIAlhbWRncHVfZGV2aWNlX2lwX3N1c3BlbmQoYWRldik7CisJYWRldi0+bXAxX3N0YXRlID0gUFBfTVAxX1NUQVRFX05PTkU7CiB9CiAKIHN0YXRpYyBpbnQgYW1kZ3B1X3Btb3BzX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlyZXR1cm4gYW1kZ3B1X2RldmljZV9zdXNwZW5kKGRybV9kZXYsIHRydWUsIHRydWUpOwogfQogCiBzdGF0aWMgaW50IGFtZGdwdV9wbW9wc19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKIAkvKiBHUFUgY29tZXMgdXAgZW5hYmxlZCBieSB0aGUgYmlvcyBvbiByZXN1bWUgKi8KIAlpZiAoYW1kZ3B1X2RldmljZV9pc19weChkcm1fZGV2KSkgewpAQCAtMTEyMCwzMyArMTEzNywyOSBAQCBzdGF0aWMgaW50IGFtZGdwdV9wbW9wc19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogCiBzdGF0aWMgaW50IGFtZGdwdV9wbW9wc19mcmVlemUoc3RydWN0IGRldmljZSAqZGV2KQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlyZXR1cm4gYW1kZ3B1X2RldmljZV9zdXNwZW5kKGRybV9kZXYsIGZhbHNlLCB0cnVlKTsKIH0KIAogc3RhdGljIGludCBhbWRncHVfcG1vcHNfdGhhdyhzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCXJldHVybiBhbWRncHVfZGV2aWNlX3Jlc3VtZShkcm1fZGV2LCBmYWxzZSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyBpbnQgYW1kZ3B1X3Btb3BzX3Bvd2Vyb2ZmKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCi0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CiAJcmV0dXJuIGFtZGdwdV9kZXZpY2Vfc3VzcGVuZChkcm1fZGV2LCB0cnVlLCB0cnVlKTsKIH0KIAogc3RhdGljIGludCBhbWRncHVfcG1vcHNfcmVzdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCXJldHVybiBhbWRncHVfZGV2aWNlX3Jlc3VtZShkcm1fZGV2LCBmYWxzZSwgdHJ1ZSk7CiB9CiAKQEAgLTEyMDUsOCArMTIxOCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Btb3BzX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIAogc3RhdGljIGludCBhbWRncHVfcG1vcHNfcnVudGltZV9pZGxlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAogCWlmICghYW1kZ3B1X2RldmljZV9pc19weChkcm1fZGV2KSkgewpAQCAtMTM3Myw3ICsxMzg1LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGttc19kcml2ZXIgPSB7CiAJLmRyaXZlcl9mZWF0dXJlcyA9CiAJICAgIERSSVZFUl9VU0VfQUdQIHwgRFJJVkVSX0FUT01JQyB8CiAJICAgIERSSVZFUl9HRU0gfAotCSAgICBEUklWRVJfUFJJTUUgfCBEUklWRVJfUkVOREVSIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfU1lOQ09CSiwKKwkgICAgRFJJVkVSX1JFTkRFUiB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX1NZTkNPQkosCiAJLmxvYWQgPSBhbWRncHVfZHJpdmVyX2xvYWRfa21zLAogCS5vcGVuID0gYW1kZ3B1X2RyaXZlcl9vcGVuX2ttcywKIAkucG9zdGNsb3NlID0gYW1kZ3B1X2RyaXZlcl9wb3N0Y2xvc2Vfa21zLApAQCAtMTM5Nyw3ICsxNDA5LDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGttc19kcml2ZXIgPSB7CiAJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAogCS5nZW1fcHJpbWVfZXhwb3J0ID0gYW1kZ3B1X2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmltZV9pbXBvcnQgPSBhbWRncHVfZ2VtX3ByaW1lX2ltcG9ydCwKLQkuZ2VtX3ByaW1lX3Jlc19vYmogPSBhbWRncHVfZ2VtX3ByaW1lX3Jlc19vYmosCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUgPSBhbWRncHVfZ2VtX3ByaW1lX2dldF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IGFtZGdwdV9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcCA9IGFtZGdwdV9nZW1fcHJpbWVfdm1hcCwKQEAgLTE0NjQsNiArMTQ3NSw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBhbWRncHVfZXhpdCh2b2lkKQogCWFtZGdwdV91bnJlZ2lzdGVyX2F0cHhfaGFuZGxlcigpOwogCWFtZGdwdV9zeW5jX2ZpbmkoKTsKIAlhbWRncHVfZmVuY2Vfc2xhYl9maW5pKCk7CisJbW11X25vdGlmaWVyX3N5bmNocm9uaXplKCk7CiB9CiAKIG1vZHVsZV9pbml0KGFtZGdwdV9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMKaW5kZXggZWIzNTY5Yi4uMTQzNzUzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMKQEAgLTEzMSw2ICsxMzEsMTAgQEAgc3RhdGljIGludCBhbWRncHVmYl9jcmVhdGVfcGlubmVkX29iamVjdChzdHJ1Y3QgYW1kZ3B1X2ZiZGV2ICpyZmJkZXYsCiAJaW50IGFsaWduZWRfc2l6ZSwgc2l6ZTsKIAlpbnQgaGVpZ2h0ID0gbW9kZV9jbWQtPmhlaWdodDsKIAl1MzIgY3BwOworCXU2NCBmbGFncyA9IEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQgfAorCQkJICAgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09OVElHVU9VUyAgICAgfAorCQkJICAgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ0xFQVJFRCAJICAgICB8CisJCQkgICAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0dUVF9VU1dDOwogCiAJaW5mbyA9IGRybV9nZXRfZm9ybWF0X2luZm8oYWRldi0+ZGRldiwgbW9kZV9jbWQpOwogCWNwcCA9IGluZm8tPmNwcFswXTsKQEAgLTEzOCwxNSArMTQyLDExIEBAIHN0YXRpYyBpbnQgYW1kZ3B1ZmJfY3JlYXRlX3Bpbm5lZF9vYmplY3Qoc3RydWN0IGFtZGdwdV9mYmRldiAqcmZiZGV2LAogCS8qIG5lZWQgdG8gYWxpZ24gcGl0Y2ggd2l0aCBjcnRjIGxpbWl0cyAqLwogCW1vZGVfY21kLT5waXRjaGVzWzBdID0gYW1kZ3B1X2FsaWduX3BpdGNoKGFkZXYsIG1vZGVfY21kLT53aWR0aCwgY3BwLAogCQkJCQkJICBmYl90aWxlZCk7Ci0JZG9tYWluID0gYW1kZ3B1X2Rpc3BsYXlfc3VwcG9ydGVkX2RvbWFpbnMoYWRldik7Ci0KKwlkb21haW4gPSBhbWRncHVfZGlzcGxheV9zdXBwb3J0ZWRfZG9tYWlucyhhZGV2LCBmbGFncyk7CiAJaGVpZ2h0ID0gQUxJR04obW9kZV9jbWQtPmhlaWdodCwgOCk7CiAJc2l6ZSA9IG1vZGVfY21kLT5waXRjaGVzWzBdICogaGVpZ2h0OwogCWFsaWduZWRfc2l6ZSA9IEFMSUdOKHNpemUsIFBBR0VfU0laRSk7Ci0JcmV0ID0gYW1kZ3B1X2dlbV9vYmplY3RfY3JlYXRlKGFkZXYsIGFsaWduZWRfc2l6ZSwgMCwgZG9tYWluLAotCQkJCSAgICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVEIHwKLQkJCQkgICAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdVT1VTIHwKLQkJCQkgICAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DTEVBUkVELAorCXJldCA9IGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZShhZGV2LCBhbGlnbmVkX3NpemUsIDAsIGRvbWFpbiwgZmxhZ3MsCiAJCQkJICAgICAgIHR0bV9ib190eXBlX2tlcm5lbCwgTlVMTCwgJmdvYmopOwogCWlmIChyZXQpIHsKIAkJcHJfZXJyKCJmYWlsZWQgdG8gYWxsb2NhdGUgZnJhbWVidWZmZXIgKCVkKVxuIiwgYWxpZ25lZF9zaXplKTsKQEAgLTE2OCw3ICsxNjgsNiBAQCBzdGF0aWMgaW50IGFtZGdwdWZiX2NyZWF0ZV9waW5uZWRfb2JqZWN0KHN0cnVjdCBhbWRncHVfZmJkZXYgKnJmYmRldiwKIAkJCWRldl9lcnIoYWRldi0+ZGV2LCAiRkIgZmFpbGVkIHRvIHNldCB0aWxpbmcgZmxhZ3NcbiIpOwogCX0KIAotCiAJcmV0ID0gYW1kZ3B1X2JvX3BpbihhYm8sIGRvbWFpbik7CiAJaWYgKHJldCkgewogCQlhbWRncHVfYm9fdW5yZXNlcnZlKGFibyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYwppbmRleCBkNzlhYjFkLi41ZThiZGRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKQEAgLTI1MSw3ICsyNTEsOSBAQCBpbnQgYW1kZ3B1X2dhcnRfdW5iaW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50NjRfdCBvZmZzZXQsCiAJfQogCW1iKCk7CiAJYW1kZ3B1X2FzaWNfZmx1c2hfaGRwKGFkZXYsIE5VTEwpOwotCWFtZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwKTsKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bnVtX3ZtaHViczsgaSsrKQorCQlhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgMCwgaSwgMCk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzEwLDkgKzMxMiw5IEBAIGludCBhbWRncHVfZ2FydF9iaW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50NjRfdCBvZmZzZXQsCiAJCSAgICAgdWludDY0X3QgZmxhZ3MpCiB7CiAjaWZkZWYgQ09ORklHX0RSTV9BTURHUFVfR0FSVF9ERUJVR0ZTCi0JdW5zaWduZWQgaSx0LHA7CisJdW5zaWduZWQgdCxwOwogI2VuZGlmCi0JaW50IHI7CisJaW50IHIsIGk7CiAKIAlpZiAoIWFkZXYtPmdhcnQucmVhZHkpIHsKIAkJV0FSTigxLCAidHJ5aW5nIHRvIGJpbmQgbWVtb3J5IHRvIHVuaW5pdGlhbGl6ZWQgR0FSVCAhXG4iKTsKQEAgLTMzNiw3ICszMzgsOCBAQCBpbnQgYW1kZ3B1X2dhcnRfYmluZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3Qgb2Zmc2V0LAogCiAJbWIoKTsKIAlhbWRncHVfYXNpY19mbHVzaF9oZHAoYWRldiwgTlVMTCk7Ci0JYW1kZ3B1X2dtY19mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIDApOworCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5udW1fdm1odWJzOyBpKyspCisJCWFtZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCBpLCAwKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCmluZGV4IDkzOWY4MzAuLjhjZWI0NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBhbWRncHVfZ2VtX29iamVjdF9mcmVlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaikKIGludCBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAkJCSAgICAgaW50IGFsaWdubWVudCwgdTMyIGluaXRpYWxfZG9tYWluLAogCQkJICAgICB1NjQgZmxhZ3MsIGVudW0gdHRtX2JvX3R5cGUgdHlwZSwKLQkJCSAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKKwkJCSAgICAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQkJICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipvYmopCiB7CiAJc3RydWN0IGFtZGdwdV9ibyAqYm87CkBAIC04NSw3ICs4NSw3IEBAIGludCBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAkJfQogCQlyZXR1cm4gcjsKIAl9Ci0JKm9iaiA9ICZiby0+Z2VtX2Jhc2U7CisJKm9iaiA9ICZiby0+dGJvLmJhc2U7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEzNCw3ICsxMzQsNyBAQCBpbnQgYW1kZ3B1X2dlbV9vYmplY3Rfb3BlbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIAkJcmV0dXJuIC1FUEVSTTsKIAogCWlmIChhYm8tPmZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfVk1fQUxXQVlTX1ZBTElEICYmCi0JICAgIGFiby0+dGJvLnJlc3YgIT0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3YpCisJICAgIGFiby0+dGJvLmJhc2UucmVzdiAhPSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8uYmFzZS5yZXN2KQogCQlyZXR1cm4gLUVQRVJNOwogCiAJciA9IGFtZGdwdV9ib19yZXNlcnZlKGFibywgZmFsc2UpOwpAQCAtMjE1LDcgKzIxNSw3IEBAIGludCBhbWRncHVfZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXVuaW9uIGRybV9hbWRncHVfZ2VtX2NyZWF0ZSAqYXJncyA9IGRhdGE7CiAJdWludDY0X3QgZmxhZ3MgPSBhcmdzLT5pbi5kb21haW5fZmxhZ3M7CiAJdWludDY0X3Qgc2l6ZSA9IGFyZ3MtPmluLmJvX3NpemU7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IE5VTEw7CisJc3RydWN0IGRtYV9yZXN2ICpyZXN2ID0gTlVMTDsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmo7CiAJdWludDMyX3QgaGFuZGxlOwogCWludCByOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGludCBhbWRncHVfZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlpZiAocikKIAkJCXJldHVybiByOwogCi0JCXJlc3YgPSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8ucmVzdjsKKwkJcmVzdiA9IHZtLT5yb290LmJhc2UuYm8tPnRiby5iYXNlLnJlc3Y7CiAJfQogCiAJciA9IGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZShhZGV2LCBzaXplLCBhcmdzLT5pbi5hbGlnbm1lbnQsCkBAIC0yOTEsNiArMjkxLDggQEAgaW50IGFtZGdwdV9nZW1fdXNlcnB0cl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXVpbnQzMl90IGhhbmRsZTsKIAlpbnQgcjsKIAorCWFyZ3MtPmFkZHIgPSB1bnRhZ2dlZF9hZGRyKGFyZ3MtPmFkZHIpOworCiAJaWYgKG9mZnNldF9pbl9wYWdlKGFyZ3MtPmFkZHIgfCBhcmdzLT5zaXplKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTQzMyw3ICs0MzUsNyBAQCBpbnQgYW1kZ3B1X2dlbV93YWl0X2lkbGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIC1FTk9FTlQ7CiAJfQogCXJvYmogPSBnZW1fdG9fYW1kZ3B1X2JvKGdvYmopOwotCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KHJvYmotPnRiby5yZXN2LCB0cnVlLCB0cnVlLAorCXJldCA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3Uocm9iai0+dGJvLmJhc2UucmVzdiwgdHJ1ZSwgdHJ1ZSwKIAkJCQkJCSAgdGltZW91dCk7CiAKIAkvKiByZXQgPT0gMCBtZWFucyBub3Qgc2lnbmFsZWQsCkBAIC02ODksNyArNjkxLDcgQEAgaW50IGFtZGdwdV9nZW1fb3BfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJc3RydWN0IGRybV9hbWRncHVfZ2VtX2NyZWF0ZV9pbiBpbmZvOwogCQl2b2lkIF9fdXNlciAqb3V0ID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnZhbHVlKTsKIAotCQlpbmZvLmJvX3NpemUgPSByb2JqLT5nZW1fYmFzZS5zaXplOworCQlpbmZvLmJvX3NpemUgPSByb2JqLT50Ym8uYmFzZS5zaXplOwogCQlpbmZvLmFsaWdubWVudCA9IHJvYmotPnRiby5tZW0ucGFnZV9hbGlnbm1lbnQgPDwgUEFHRV9TSElGVDsKIAkJaW5mby5kb21haW5zID0gcm9iai0+cHJlZmVycmVkX2RvbWFpbnM7CiAJCWluZm8uZG9tYWluX2ZsYWdzID0gcm9iai0+ZmxhZ3M7CkBAIC03NDcsNyArNzQ5LDggQEAgaW50IGFtZGdwdV9tb2RlX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmo7CiAJdWludDMyX3QgaGFuZGxlOwotCXU2NCBmbGFncyA9IEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQ7CisJdTY0IGZsYWdzID0gQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8CisJCSAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfR1RUX1VTV0M7CiAJdTMyIGRvbWFpbjsKIAlpbnQgcjsKIApAQCAtNzY0LDcgKzc2Nyw3IEBAIGludCBhbWRncHVfbW9kZV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIAlhcmdzLT5zaXplID0gKHU2NClhcmdzLT5waXRjaCAqIGFyZ3MtPmhlaWdodDsKIAlhcmdzLT5zaXplID0gQUxJR04oYXJncy0+c2l6ZSwgUEFHRV9TSVpFKTsKIAlkb21haW4gPSBhbWRncHVfYm9fZ2V0X3ByZWZlcnJlZF9waW5fZG9tYWluKGFkZXYsCi0JCQkJYW1kZ3B1X2Rpc3BsYXlfc3VwcG9ydGVkX2RvbWFpbnMoYWRldikpOworCQkJCWFtZGdwdV9kaXNwbGF5X3N1cHBvcnRlZF9kb21haW5zKGFkZXYsIGZsYWdzKSk7CiAJciA9IGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZShhZGV2LCBhcmdzLT5zaXplLCAwLCBkb21haW4sIGZsYWdzLAogCQkJCSAgICAgdHRtX2JvX3R5cGVfZGV2aWNlLCBOVUxMLCAmZ29iaik7CiAJaWYgKHIpCkBAIC04MTksOCArODIyLDggQEAgc3RhdGljIGludCBhbWRncHVfZGVidWdmc19nZW1fYm9faW5mbyhpbnQgaWQsIHZvaWQgKnB0ciwgdm9pZCAqZGF0YSkKIAlpZiAocGluX2NvdW50KQogCQlzZXFfcHJpbnRmKG0sICIgcGluIGNvdW50ICVkIiwgcGluX2NvdW50KTsKIAotCWRtYV9idWYgPSBSRUFEX09OQ0UoYm8tPmdlbV9iYXNlLmRtYV9idWYpOwotCWF0dGFjaG1lbnQgPSBSRUFEX09OQ0UoYm8tPmdlbV9iYXNlLmltcG9ydF9hdHRhY2gpOworCWRtYV9idWYgPSBSRUFEX09OQ0UoYm8tPnRiby5iYXNlLmRtYV9idWYpOworCWF0dGFjaG1lbnQgPSBSRUFEX09OQ0UoYm8tPnRiby5iYXNlLmltcG9ydF9hdHRhY2gpOwogCiAJaWYgKGF0dGFjaG1lbnQpCiAJCXNlcV9wcmludGYobSwgIiBpbXBvcnRlZCBmcm9tICVwIiwgZG1hX2J1Zik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmgKaW5kZXggYjhiYTZlMi4uMGI2NmQyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uaApAQCAtMzEsNyArMzEsNyBAQAogICovCiAKICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fTUFYCQkweDMKLSNkZWZpbmUgZ2VtX3RvX2FtZGdwdV9ibyhnb2JqKSBjb250YWluZXJfb2YoKGdvYmopLCBzdHJ1Y3QgYW1kZ3B1X2JvLCBnZW1fYmFzZSkKKyNkZWZpbmUgZ2VtX3RvX2FtZGdwdV9ibyhnb2JqKSBjb250YWluZXJfb2YoKGdvYmopLCBzdHJ1Y3QgYW1kZ3B1X2JvLCB0Ym8uYmFzZSkKIAogdm9pZCBhbWRncHVfZ2VtX29iamVjdF9mcmVlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIGludCBhbWRncHVfZ2VtX29iamVjdF9vcGVuKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLApAQCAtNDcsNyArNDcsNyBAQCB2b2lkIGFtZGdwdV9nZW1fZm9yY2VfcmVsZWFzZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQgYW1kZ3B1X2dlbV9vYmplY3RfY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1bnNpZ25lZCBsb25nIHNpemUsCiAJCQkgICAgIGludCBhbGlnbm1lbnQsIHUzMiBpbml0aWFsX2RvbWFpbiwKIAkJCSAgICAgdTY0IGZsYWdzLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsCi0JCQkgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCQkgICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKIAkJCSAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqb2JqKTsKIAogaW50IGFtZGdwdV9tb2RlX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dmeC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dmeC5jCmluZGV4IDc0MDY2ZTEuLmY5YmVmMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZnguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmMKQEAgLTM4OSw3ICszODksNyBAQCBpbnQgYW1kZ3B1X2dmeF9tcWRfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQlkZXZfd2FybihhZGV2LT5kZXYsICJubyBtZW1vcnkgdG8gY3JlYXRlIE1RRCBiYWNrdXAgZm9yIHJpbmcgJXNcbiIsIHJpbmctPm5hbWUpOwogCX0KIAotCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9OQVZJMTAgJiYgYW1kZ3B1X2FzeW5jX2dmeF9yaW5nKSB7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSA+PSBDSElQX05BVkkxMCAmJiBhbWRncHVfYXN5bmNfZ2Z4X3JpbmcpIHsKIAkJLyogY3JlYXRlIE1RRCBmb3IgZWFjaCBLR1EgKi8KIAkJZm9yIChpID0gMDsgaSA8IGFkZXYtPmdmeC5udW1fZ2Z4X3JpbmdzOyBpKyspIHsKIAkJCXJpbmcgPSAmYWRldi0+Z2Z4LmdmeF9yaW5nW2ldOwpAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgYW1kZ3B1X2dmeF9tcWRfc3dfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSBOVUxMOwogCWludCBpOwogCi0JaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX05BVkkxMCAmJiBhbWRncHVfYXN5bmNfZ2Z4X3JpbmcpIHsKKwlpZiAoYWRldi0+YXNpY190eXBlID49IENISVBfTkFWSTEwICYmIGFtZGdwdV9hc3luY19nZnhfcmluZykgewogCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+Z2Z4Lm51bV9nZnhfcmluZ3M7IGkrKykgewogCQkJcmluZyA9ICZhZGV2LT5nZnguZ2Z4X3JpbmdbaV07CiAJCQlrZnJlZShhZGV2LT5nZngubWUubXFkX2JhY2t1cFtpXSk7CkBAIC00NTYsNyArNDU2LDcgQEAgdm9pZCBhbWRncHVfZ2Z4X21xZF9zd19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCX0KIAogCXJpbmcgPSAmYWRldi0+Z2Z4LmtpcS5yaW5nOwotCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9OQVZJMTAgJiYgYW1kZ3B1X2FzeW5jX2dmeF9yaW5nKQorCWlmIChhZGV2LT5hc2ljX3R5cGUgPj0gQ0hJUF9OQVZJMTAgJiYgYW1kZ3B1X2FzeW5jX2dmeF9yaW5nKQogCQlrZnJlZShhZGV2LT5nZngubWUubXFkX2JhY2t1cFtBTURHUFVfTUFYX0dGWF9SSU5HU10pOwogCWtmcmVlKGFkZXYtPmdmeC5tZWMubXFkX2JhY2t1cFtBTURHUFVfTUFYX0NPTVBVVEVfUklOR1NdKTsKIAlhbWRncHVfYm9fZnJlZV9rZXJuZWwoJnJpbmctPm1xZF9vYmosCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmgKaW5kZXggMTE5OWI1OC4uNTU0YTU5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dmeC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZnguaApAQCAtMTk2LDYgKzE5Niw4IEBAIHN0cnVjdCBhbWRncHVfZ2Z4X2Z1bmNzIHsKIAkJCQl1aW50MzJfdCAqZHN0KTsKIAl2b2lkICgqc2VsZWN0X21lX3BpcGVfcSkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiBtZSwgdTMyIHBpcGUsCiAJCQkJIHUzMiBxdWV1ZSwgdTMyIHZtaWQpOworCWludCAoKnJhc19lcnJvcl9pbmplY3QpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB2b2lkICppbmplY3RfaWYpOworCWludCAoKnF1ZXJ5X3Jhc19lcnJvcl9jb3VudCkgKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB2b2lkICpyYXNfZXJyb3Jfc3RhdHVzKTsKIH07CiAKIHN0cnVjdCBhbWRncHVfbmdnX2J1ZiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmMKaW5kZXggOTI0ZDgzZS4uNTc5MGRiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuYwpAQCAtMjIwLDYgKzIyMCwxNCBAQCB2b2lkIGFtZGdwdV9nbWNfYWdwX2xvY2F0aW9uKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2dtYyAqbWMpCiAJY29uc3QgdWludDY0X3Qgc2l4dGVlbl9nYl9tYXNrID0gfihzaXh0ZWVuX2diIC0gMSk7CiAJdTY0IHNpemVfYWYsIHNpemVfYmY7CiAKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CisJCW1jLT5hZ3Bfc3RhcnQgPSAweGZmZmZmZmZmOworCQltYy0+YWdwX2VuZCA9IDB4MDsKKwkJbWMtPmFncF9zaXplID0gMDsKKworCQlyZXR1cm47CisJfQorCiAJaWYgKG1jLT5mYl9zdGFydCA+IG1jLT5nYXJ0X3N0YXJ0KSB7CiAJCXNpemVfYmYgPSAobWMtPmZiX3N0YXJ0ICYgc2l4dGVlbl9nYl9tYXNrKSAtCiAJCQlBTElHTihtYy0+Z2FydF9lbmQgKyAxLCBzaXh0ZWVuX2diKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuaAppbmRleCAwNzExNDVhLi5iNmUxZDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5oCkBAIC04OSw4ICs4OSw4IEBAIHN0cnVjdCBhbWRncHVfdm1odWIgewogICovCiBzdHJ1Y3QgYW1kZ3B1X2dtY19mdW5jcyB7CiAJLyogZmx1c2ggdGhlIHZtIHRsYiB2aWEgbW1pbyAqLwotCXZvaWQgKCpmbHVzaF9ncHVfdGxiKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCSAgICAgIHVpbnQzMl90IHZtaWQsIHVpbnQzMl90IGZsdXNoX3R5cGUpOworCXZvaWQgKCpmbHVzaF9ncHVfdGxiKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3Qgdm1pZCwKKwkJCQl1aW50MzJfdCB2bWh1YiwgdWludDMyX3QgZmx1c2hfdHlwZSk7CiAJLyogZmx1c2ggdGhlIHZtIHRsYiB2aWEgcmluZyAqLwogCXVpbnQ2NF90ICgqZW1pdF9mbHVzaF9ncHVfdGxiKShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmVkIHZtaWQsCiAJCQkJICAgICAgIHVpbnQ2NF90IHBkX2FkZHIpOwpAQCAtMTc3LDEwICsxNzcsMTEgQEAgc3RydWN0IGFtZGdwdV9nbWMgewogCiAJc3RydWN0IGFtZGdwdV94Z21pIHhnbWk7CiAJc3RydWN0IGFtZGdwdV9pcnFfc3JjCWVjY19pcnE7Ci0Jc3RydWN0IHJhc19jb21tb25faWYgICAgKnJhc19pZjsKKwlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiAgICAqdW1jX3Jhc19pZjsKKwlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiAgICAqbW1odWJfcmFzX2lmOwogfTsKIAotI2RlZmluZSBhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgdm1pZCwgdHlwZSkgKGFkZXYpLT5nbWMuZ21jX2Z1bmNzLT5mbHVzaF9ncHVfdGxiKChhZGV2KSwgKHZtaWQpLCAodHlwZSkpCisjZGVmaW5lIGFtZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihhZGV2LCB2bWlkLCB2bWh1YiwgdHlwZSkgKChhZGV2KS0+Z21jLmdtY19mdW5jcy0+Zmx1c2hfZ3B1X3RsYigoYWRldiksICh2bWlkKSwgKHZtaHViKSwgKHR5cGUpKSkKICNkZWZpbmUgYW1kZ3B1X2dtY19lbWl0X2ZsdXNoX2dwdV90bGIociwgdm1pZCwgYWRkcikgKHIpLT5hZGV2LT5nbWMuZ21jX2Z1bmNzLT5lbWl0X2ZsdXNoX2dwdV90bGIoKHIpLCAodm1pZCksIChhZGRyKSkKICNkZWZpbmUgYW1kZ3B1X2dtY19lbWl0X3Bhc2lkX21hcHBpbmcociwgdm1pZCwgcGFzaWQpIChyKS0+YWRldi0+Z21jLmdtY19mdW5jcy0+ZW1pdF9wYXNpZF9tYXBwaW5nKChyKSwgKHZtaWQpLCAocGFzaWQpKQogI2RlZmluZSBhbWRncHVfZ21jX2dldF92bV9wZGUoYWRldiwgbGV2ZWwsIGRzdCwgZmxhZ3MpIChhZGV2KS0+Z21jLmdtY19mdW5jcy0+Z2V0X3ZtX3BkZSgoYWRldiksIChsZXZlbCksIChkc3QpLCAoZmxhZ3MpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYwppbmRleCA3ODUwMDg0Li42MDY1NTgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYwpAQCAtMTQzLDcgKzE0Myw4IEBAIGludCBhbWRncHVfaWJfc2NoZWR1bGUoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1bnNpZ25lZCBudW1faWJzLAogCS8qIHJpbmcgdGVzdHMgZG9uJ3QgdXNlIGEgam9iICovCiAJaWYgKGpvYikgewogCQl2bSA9IGpvYi0+dm07Ci0JCWZlbmNlX2N0eCA9IGpvYi0+YmFzZS5zX2ZlbmNlLT5zY2hlZHVsZWQuY29udGV4dDsKKwkJZmVuY2VfY3R4ID0gam9iLT5iYXNlLnNfZmVuY2UgPworCQkJam9iLT5iYXNlLnNfZmVuY2UtPnNjaGVkdWxlZC5jb250ZXh0IDogMDsKIAl9IGVsc2UgewogCQl2bSA9IE5VTEw7CiAJCWZlbmNlX2N0eCA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWRzLmMKaW5kZXggNTdiM2Q4YS4uNTM3MzRkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lkcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuYwpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9wYXNpZF9mcmVlX2NiKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogICoKICAqIEZyZWUgdGhlIHBhc2lkIG9ubHkgYWZ0ZXIgYWxsIHRoZSBmZW5jZXMgaW4gcmVzdiBhcmUgc2lnbmFsZWQuCiAgKi8KLXZvaWQgYW1kZ3B1X3Bhc2lkX2ZyZWVfZGVsYXllZChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAordm9pZCBhbWRncHVfcGFzaWRfZnJlZV9kZWxheWVkKHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKIAkJCSAgICAgICB1bnNpZ25lZCBpbnQgcGFzaWQpCiB7CiAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsICoqZmVuY2VzOwpAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgYW1kZ3B1X3Bhc2lkX2ZyZWVfZGVsYXllZChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAogCXVuc2lnbmVkIGNvdW50OwogCWludCByOwogCi0JciA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShyZXN2LCBOVUxMLCAmY291bnQsICZmZW5jZXMpOworCXIgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShyZXN2LCBOVUxMLCAmY291bnQsICZmZW5jZXMpOwogCWlmIChyKQogCQlnb3RvIGZhbGxiYWNrOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBhbWRncHVfcGFzaWRfZnJlZV9kZWxheWVkKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCiAJLyogTm90IGVub3VnaCBtZW1vcnkgZm9yIHRoZSBkZWxheWVkIGRlbGV0ZSwgYXMgbGFzdCByZXNvcnQKIAkgKiBibG9jayBmb3IgYWxsIHRoZSBmZW5jZXMgdG8gY29tcGxldGUuCiAJICovCi0JcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3UocmVzdiwgdHJ1ZSwgZmFsc2UsCisJZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShyZXN2LCB0cnVlLCBmYWxzZSwKIAkJCQkJICAgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKIAlhbWRncHVfcGFzaWRfZnJlZShwYXNpZCk7CiB9CkBAIC0zNjgsNyArMzY4LDggQEAgc3RhdGljIGludCBhbWRncHVfdm1pZF9ncmFiX3VzZWQoc3RydWN0IGFtZGdwdV92bSAqdm0sCiAJCSAqIGFyZSBicm9rZW4gb24gTmF2aTEwIGFuZCBOYXZpMTQuCiAJCSAqLwogCQlpZiAobmVlZHNfZmx1c2ggJiYgKGFkZXYtPmFzaWNfdHlwZSA8IENISVBfVkVHQTEwIHx8Ci0JCQkJICAgIGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX05BVkkxMCkpCisJCQkJICAgIGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX05BVkkxMCB8fAorCQkJCSAgICBhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9OQVZJMTQpKQogCQkJY29udGludWU7CiAKIAkJLyogR29vZCwgd2UgY2FuIHVzZSB0aGlzIFZNSUQuIFJlbWVtYmVyIHRoaXMgc3VibWlzc2lvbiBhcwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lkcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lkcy5oCmluZGV4IDc2MjU0MTkuLjhlNTgzMjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWRzLmgKQEAgLTcyLDcgKzcyLDcgQEAgc3RydWN0IGFtZGdwdV92bWlkX21nciB7CiAKIGludCBhbWRncHVfcGFzaWRfYWxsb2ModW5zaWduZWQgaW50IGJpdHMpOwogdm9pZCBhbWRncHVfcGFzaWRfZnJlZSh1bnNpZ25lZCBpbnQgcGFzaWQpOwotdm9pZCBhbWRncHVfcGFzaWRfZnJlZV9kZWxheWVkKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCit2b2lkIGFtZGdwdV9wYXNpZF9mcmVlX2RlbGF5ZWQoc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQkJICAgICAgIHVuc2lnbmVkIGludCBwYXNpZCk7CiAKIGJvb2wgYW1kZ3B1X3ZtaWRfaGFkX2dwdV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwppbmRleCAwY2Y3ZTg2Li5mNjE0NzUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCkBAIC00MDgsMjMgKzQwOCwzOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9od19pcF9pbmZvKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlicmVhazsKIAljYXNlIEFNREdQVV9IV19JUF9WQ05fREVDOgogCQl0eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfVkNOOwotCQlpZiAoYWRldi0+dmNuLnJpbmdfZGVjLnNjaGVkLnJlYWR5KQotCQkJKytudW1fcmluZ3M7CisJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52Y24ubnVtX3Zjbl9pbnN0OyBpKyspIHsKKwkJCWlmIChhZGV2LT51dmQuaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCQljb250aW51ZTsKKworCQkJaWYgKGFkZXYtPnZjbi5pbnN0W2ldLnJpbmdfZGVjLnNjaGVkLnJlYWR5KQorCQkJCSsrbnVtX3JpbmdzOworCQl9CiAJCWliX3N0YXJ0X2FsaWdubWVudCA9IDE2OwogCQlpYl9zaXplX2FsaWdubWVudCA9IDE2OwogCQlicmVhazsKIAljYXNlIEFNREdQVV9IV19JUF9WQ05fRU5DOgogCQl0eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfVkNOOwotCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV9lbmNfcmluZ3M7IGkrKykKLQkJCWlmIChhZGV2LT52Y24ucmluZ19lbmNbaV0uc2NoZWQucmVhZHkpCi0JCQkJKytudW1fcmluZ3M7CisJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52Y24ubnVtX3Zjbl9pbnN0OyBpKyspIHsKKwkJCWlmIChhZGV2LT51dmQuaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCQljb250aW51ZTsKKworCQkJZm9yIChqID0gMDsgaiA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyBqKyspCisJCQkJaWYgKGFkZXYtPnZjbi5pbnN0W2ldLnJpbmdfZW5jW2pdLnNjaGVkLnJlYWR5KQorCQkJCQkrK251bV9yaW5nczsKKwkJfQogCQlpYl9zdGFydF9hbGlnbm1lbnQgPSA2NDsKIAkJaWJfc2l6ZV9hbGlnbm1lbnQgPSAxOwogCQlicmVhazsKIAljYXNlIEFNREdQVV9IV19JUF9WQ05fSlBFRzoKIAkJdHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX1ZDTjsKLQkJaWYgKGFkZXYtPnZjbi5yaW5nX2pwZWcuc2NoZWQucmVhZHkpCi0JCQkrK251bV9yaW5nczsKKwkJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fdmNuX2luc3Q7IGkrKykgeworCQkJaWYgKGFkZXYtPnV2ZC5oYXJ2ZXN0X2NvbmZpZyAmICgxIDw8IGkpKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoYWRldi0+dmNuLmluc3RbaV0ucmluZ19qcGVnLnNjaGVkLnJlYWR5KQorCQkJCSsrbnVtX3JpbmdzOworCQl9CiAJCWliX3N0YXJ0X2FsaWdubWVudCA9IDE2OwogCQlpYl9zaXplX2FsaWdubWVudCA9IDE2OwogCQlicmVhazsKQEAgLTY2Miw2ICs2NzcsOSBAQCBzdGF0aWMgaW50IGFtZGdwdV9pbmZvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZQogCQlpZiAoc2hfbnVtID09IEFNREdQVV9JTkZPX01NUl9TSF9JTkRFWF9NQVNLKQogCQkJc2hfbnVtID0gMHhmZmZmZmZmZjsKIAorCQlpZiAoaW5mby0+cmVhZF9tbXJfcmVnLmNvdW50ID4gMTI4KQorCQkJcmV0dXJuIC1FSU5WQUw7CisKIAkJcmVncyA9IGttYWxsb2NfYXJyYXkoaW5mby0+cmVhZF9tbXJfcmVnLmNvdW50LCBzaXplb2YoKnJlZ3MpLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFyZWdzKQogCQkJcmV0dXJuIC1FTk9NRU07CkBAIC0xMDg4LDcgKzExMDYsNyBAQCB2b2lkIGFtZGdwdV9kcml2ZXJfcG9zdGNsb3NlX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWFtZGdwdV92bV9maW5pKGFkZXYsICZmcHJpdi0+dm0pOwogCiAJaWYgKHBhc2lkKQotCQlhbWRncHVfcGFzaWRfZnJlZV9kZWxheWVkKHBkLT50Ym8ucmVzdiwgcGFzaWQpOworCQlhbWRncHVfcGFzaWRfZnJlZV9kZWxheWVkKHBkLT50Ym8uYmFzZS5yZXN2LCBwYXNpZCk7CiAJYW1kZ3B1X2JvX3VucmVmKCZwZCk7CiAKIAlpZHJfZm9yX2VhY2hfZW50cnkoJmZwcml2LT5ib19saXN0X2hhbmRsZXMsIGxpc3QsIGhhbmRsZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbWh1Yi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21taHViLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ3NWVjZgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbWh1Yi5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX19BTURHUFVfTU1IVUJfSF9fCisjZGVmaW5lIF9fQU1ER1BVX01NSFVCX0hfXworCitzdHJ1Y3QgYW1kZ3B1X21taHViX2Z1bmNzIHsKKwl2b2lkICgqcmFzX2luaXQpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKKwl2b2lkICgqcXVlcnlfcmFzX2Vycm9yX2NvdW50KShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkJdm9pZCAqcmFzX2Vycm9yX3N0YXR1cyk7Cit9OworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21uLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYwppbmRleCAzOTcxYzIwLi4zMWQ0ZGViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYwpAQCAtMTc5LDcgKzE3OSw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9tbl9pbnZhbGlkYXRlX25vZGUoc3RydWN0IGFtZGdwdV9tbl9ub2RlICpub2RlLAogCQlpZiAoIWFtZGdwdV90dG1fdHRfYWZmZWN0X3VzZXJwdHIoYm8tPnRiby50dG0sIHN0YXJ0LCBlbmQpKQogCQkJY29udGludWU7CiAKLQkJciA9IHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KGJvLT50Ym8ucmVzdiwKKwkJciA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3UoYm8tPnRiby5iYXNlLnJlc3YsCiAJCQl0cnVlLCBmYWxzZSwgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwogCQlpZiAociA8PSAwKQogCQkJRFJNX0VSUk9SKCIoJWxkKSBmYWlsZWQgdG8gd2FpdCBmb3IgdXNlciBib1xuIiwgcik7CkBAIC0xOTUsMTMgKzE5NSwxNCBAQCBzdGF0aWMgdm9pZCBhbWRncHVfbW5faW52YWxpZGF0ZV9ub2RlKHN0cnVjdCBhbWRncHVfbW5fbm9kZSAqbm9kZSwKICAqIEJsb2NrIGZvciBvcGVyYXRpb25zIG9uIEJPcyB0byBmaW5pc2ggYW5kIG1hcmsgcGFnZXMgYXMgYWNjZXNzZWQgYW5kCiAgKiBwb3RlbnRpYWxseSBkaXJ0eS4KICAqLwotc3RhdGljIGludCBhbWRncHVfbW5fc3luY19wYWdldGFibGVzX2dmeChzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLAotCQkJY29uc3Qgc3RydWN0IGhtbV91cGRhdGUgKnVwZGF0ZSkKK3N0YXRpYyBpbnQKK2FtZGdwdV9tbl9zeW5jX3BhZ2V0YWJsZXNfZ2Z4KHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlICp1cGRhdGUpCiB7CiAJc3RydWN0IGFtZGdwdV9tbiAqYW1uID0gY29udGFpbmVyX29mKG1pcnJvciwgc3RydWN0IGFtZGdwdV9tbiwgbWlycm9yKTsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gdXBkYXRlLT5zdGFydDsKIAl1bnNpZ25lZCBsb25nIGVuZCA9IHVwZGF0ZS0+ZW5kOwotCWJvb2wgYmxvY2thYmxlID0gdXBkYXRlLT5ibG9ja2FibGU7CisJYm9vbCBibG9ja2FibGUgPSBtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKHVwZGF0ZSk7CiAJc3RydWN0IGludGVydmFsX3RyZWVfbm9kZSAqaXQ7CiAKIAkvKiBub3RpZmljYXRpb24gaXMgZXhjbHVzaXZlLCBidXQgaW50ZXJ2YWwgaXMgaW5jbHVzaXZlICovCkBAIC0yNDMsMTMgKzI0NCwxNCBAQCBzdGF0aWMgaW50IGFtZGdwdV9tbl9zeW5jX3BhZ2V0YWJsZXNfZ2Z4KHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IsCiAgKiBuZWNlc3NpdGF0ZXMgZXZpY3RpbmcgYWxsIHVzZXItbW9kZSBxdWV1ZXMgb2YgdGhlIHByb2Nlc3MuIFRoZSBCT3MKICAqIGFyZSByZXN0b3J0ZWQgaW4gYW1kZ3B1X21uX2ludmFsaWRhdGVfcmFuZ2VfZW5kX2hzYS4KICAqLwotc3RhdGljIGludCBhbWRncHVfbW5fc3luY19wYWdldGFibGVzX2hzYShzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLAotCQkJY29uc3Qgc3RydWN0IGhtbV91cGRhdGUgKnVwZGF0ZSkKK3N0YXRpYyBpbnQKK2FtZGdwdV9tbl9zeW5jX3BhZ2V0YWJsZXNfaHNhKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlICp1cGRhdGUpCiB7CiAJc3RydWN0IGFtZGdwdV9tbiAqYW1uID0gY29udGFpbmVyX29mKG1pcnJvciwgc3RydWN0IGFtZGdwdV9tbiwgbWlycm9yKTsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gdXBkYXRlLT5zdGFydDsKIAl1bnNpZ25lZCBsb25nIGVuZCA9IHVwZGF0ZS0+ZW5kOwotCWJvb2wgYmxvY2thYmxlID0gdXBkYXRlLT5ibG9ja2FibGU7CisJYm9vbCBibG9ja2FibGUgPSBtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKHVwZGF0ZSk7CiAJc3RydWN0IGludGVydmFsX3RyZWVfbm9kZSAqaXQ7CiAKIAkvKiBub3RpZmljYXRpb24gaXMgZXhjbHVzaXZlLCBidXQgaW50ZXJ2YWwgaXMgaW5jbHVzaXZlICovCkBAIC00ODIsNiArNDg0LDUgQEAgdm9pZCBhbWRncHVfaG1tX2luaXRfcmFuZ2Uoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiAJCXJhbmdlLT5mbGFncyA9IGhtbV9yYW5nZV9mbGFnczsKIAkJcmFuZ2UtPnZhbHVlcyA9IGhtbV9yYW5nZV92YWx1ZXM7CiAJCXJhbmdlLT5wZm5fc2hpZnQgPSBQQUdFX1NISUZUOwotCQlJTklUX0xJU1RfSEVBRCgmcmFuZ2UtPmxpc3QpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwppbmRleCBiZWE2ZjI5Li4xZmVhZDBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCkBAIC04MCwxNCArODAsMTEgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2JvX2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pCiAJaWYgKGJvLT5waW5fY291bnQgPiAwKQogCQlhbWRncHVfYm9fc3VidHJhY3RfcGluX3NpemUoYm8pOwogCi0JaWYgKGJvLT5rZmRfYm8pCi0JCWFtZGdwdV9hbWRrZmRfdW5yZXNlcnZlX21lbW9yeV9saW1pdChibyk7Ci0KIAlhbWRncHVfYm9fa3VubWFwKGJvKTsKIAotCWlmIChiby0+Z2VtX2Jhc2UuaW1wb3J0X2F0dGFjaCkKLQkJZHJtX3ByaW1lX2dlbV9kZXN0cm95KCZiby0+Z2VtX2Jhc2UsIGJvLT50Ym8uc2cpOwotCWRybV9nZW1fb2JqZWN0X3JlbGVhc2UoJmJvLT5nZW1fYmFzZSk7CisJaWYgKGJvLT50Ym8uYmFzZS5pbXBvcnRfYXR0YWNoKQorCQlkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koJmJvLT50Ym8uYmFzZSwgYm8tPnRiby5zZyk7CisJZHJtX2dlbV9vYmplY3RfcmVsZWFzZSgmYm8tPnRiby5iYXNlKTsKIAkvKiBpbiBjYXNlIGFtZGdwdV9kZXZpY2VfcmVjb3Zlcl92cmFtIGdvdCBOVUxMIG9mIGJvLT5wYXJlbnQgKi8KIAlpZiAoIWxpc3RfZW1wdHkoJmJvLT5zaGFkb3dfbGlzdCkpIHsKIAkJbXV0ZXhfbG9jaygmYWRldi0+c2hhZG93X2xpc3RfbG9jayk7CkBAIC0yNDksOCArMjQ2LDkgQEAgaW50IGFtZGdwdV9ib19jcmVhdGVfcmVzZXJ2ZWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJYnAuc2l6ZSA9IHNpemU7CiAJYnAuYnl0ZV9hbGlnbiA9IGFsaWduOwogCWJwLmRvbWFpbiA9IGRvbWFpbjsKLQlicC5mbGFncyA9IEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQgfAotCQlBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJR1VPVVM7CisJYnAuZmxhZ3MgPSBjcHVfYWRkciA/IEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQKKwkJOiBBTURHUFVfR0VNX0NSRUFURV9OT19DUFVfQUNDRVNTOworCWJwLmZsYWdzIHw9IEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09OVElHVU9VUzsKIAlicC50eXBlID0gdHRtX2JvX3R5cGVfa2VybmVsOwogCWJwLnJlc3YgPSBOVUxMOwogCkBAIC00MTMsNiArNDExLDQwIEBAIHN0YXRpYyBib29sIGFtZGdwdV9ib192YWxpZGF0ZV9zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBhbWRncHVfYm9fc3VwcG9ydF91c3djKHU2NCBib19mbGFncykKK3sKKworI2lmZGVmIENPTkZJR19YODZfMzIKKwkvKiBYWFg6IFdyaXRlLWNvbWJpbmVkIENQVSBtYXBwaW5ncyBvZiBHVFQgc2VlbSBicm9rZW4gb24gMzItYml0CisJICogU2VlIGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NjI3CisJICovCisJcmV0dXJuIGZhbHNlOworI2VsaWYgZGVmaW5lZChDT05GSUdfWDg2KSAmJiAhZGVmaW5lZChDT05GSUdfWDg2X1BBVCkKKwkvKiBEb24ndCB0cnkgdG8gZW5hYmxlIHdyaXRlLWNvbWJpbmluZyB3aGVuIGl0IGNhbid0IHdvcmssIG9yIHRoaW5ncworCSAqIG1heSBiZSBzbG93CisJICogU2VlIGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NzU4CisJICovCisKKyNpZm5kZWYgQ09ORklHX0NPTVBJTEVfVEVTVAorI3dhcm5pbmcgUGxlYXNlIGVuYWJsZSBDT05GSUdfTVRSUiBhbmQgQ09ORklHX1g4Nl9QQVQgZm9yIGJldHRlciBwZXJmb3JtYW5jZSBcCisJIHRoYW5rcyB0byB3cml0ZS1jb21iaW5pbmcKKyNlbmRpZgorCisJaWYgKGJvX2ZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0dUVF9VU1dDKQorCQlEUk1fSU5GT19PTkNFKCJQbGVhc2UgZW5hYmxlIENPTkZJR19NVFJSIGFuZCBDT05GSUdfWDg2X1BBVCBmb3IgIgorCQkJICAgICAgImJldHRlciBwZXJmb3JtYW5jZSB0aGFua3MgdG8gd3JpdGUtY29tYmluaW5nXG4iKTsKKwlyZXR1cm4gZmFsc2U7CisjZWxzZQorCS8qIEZvciBhcmNoaXRlY3R1cmVzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBXQyBtZW1vcnksCisJICogbWFzayBvdXQgdGhlIFdDIGZsYWcgZnJvbSB0aGUgQk8KKwkgKi8KKwlpZiAoIWRybV9hcmNoX2Nhbl93Y19tZW1vcnkoKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKwogc3RhdGljIGludCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfYm9fcGFyYW0gKmJwLAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfYm8gKipib19wdHIpCkBAIC00NTQsNyArNDg2LDcgQEAgc3RhdGljIGludCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWJvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGFtZGdwdV9ibyksIEdGUF9LRVJORUwpOwogCWlmIChibyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKLQlkcm1fZ2VtX3ByaXZhdGVfb2JqZWN0X2luaXQoYWRldi0+ZGRldiwgJmJvLT5nZW1fYmFzZSwgc2l6ZSk7CisJZHJtX2dlbV9wcml2YXRlX29iamVjdF9pbml0KGFkZXYtPmRkZXYsICZiby0+dGJvLmJhc2UsIHNpemUpOwogCUlOSVRfTElTVF9IRUFEKCZiby0+c2hhZG93X2xpc3QpOwogCWJvLT52bV9ibyA9IE5VTEw7CiAJYm8tPnByZWZlcnJlZF9kb21haW5zID0gYnAtPnByZWZlcnJlZF9kb21haW4gPyBicC0+cHJlZmVycmVkX2RvbWFpbiA6CkBAIC00NjYsMzMgKzQ5OCw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX2RvX2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogCWJvLT5mbGFncyA9IGJwLT5mbGFnczsKIAotI2lmZGVmIENPTkZJR19YODZfMzIKLQkvKiBYWFg6IFdyaXRlLWNvbWJpbmVkIENQVSBtYXBwaW5ncyBvZiBHVFQgc2VlbSBicm9rZW4gb24gMzItYml0Ci0JICogU2VlIGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NjI3Ci0JICovCi0JYm8tPmZsYWdzICY9IH5BTURHUFVfR0VNX0NSRUFURV9DUFVfR1RUX1VTV0M7Ci0jZWxpZiBkZWZpbmVkKENPTkZJR19YODYpICYmICFkZWZpbmVkKENPTkZJR19YODZfUEFUKQotCS8qIERvbid0IHRyeSB0byBlbmFibGUgd3JpdGUtY29tYmluaW5nIHdoZW4gaXQgY2FuJ3Qgd29yaywgb3IgdGhpbmdzCi0JICogbWF5IGJlIHNsb3cKLQkgKiBTZWUgaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg3NTgKLQkgKi8KLQotI2lmbmRlZiBDT05GSUdfQ09NUElMRV9URVNUCi0jd2FybmluZyBQbGVhc2UgZW5hYmxlIENPTkZJR19NVFJSIGFuZCBDT05GSUdfWDg2X1BBVCBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlIFwKLQkgdGhhbmtzIHRvIHdyaXRlLWNvbWJpbmluZwotI2VuZGlmCi0KLQlpZiAoYm8tPmZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0dUVF9VU1dDKQotCQlEUk1fSU5GT19PTkNFKCJQbGVhc2UgZW5hYmxlIENPTkZJR19NVFJSIGFuZCBDT05GSUdfWDg2X1BBVCBmb3IgIgotCQkJICAgICAgImJldHRlciBwZXJmb3JtYW5jZSB0aGFua3MgdG8gd3JpdGUtY29tYmluaW5nXG4iKTsKLQliby0+ZmxhZ3MgJj0gfkFNREdQVV9HRU1fQ1JFQVRFX0NQVV9HVFRfVVNXQzsKLSNlbHNlCi0JLyogRm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBkb24ndCBzdXBwb3J0IFdDIG1lbW9yeSwKLQkgKiBtYXNrIG91dCB0aGUgV0MgZmxhZyBmcm9tIHRoZSBCTwotCSAqLwotCWlmICghZHJtX2FyY2hfY2FuX3djX21lbW9yeSgpKQorCWlmICghYW1kZ3B1X2JvX3N1cHBvcnRfdXN3Yyhiby0+ZmxhZ3MpKQogCQliby0+ZmxhZ3MgJj0gfkFNREdQVV9HRU1fQ1JFQVRFX0NQVV9HVFRfVVNXQzsKLSNlbmRpZgogCiAJYm8tPnRiby5iZGV2ID0gJmFkZXYtPm1tYW4uYmRldjsKIAlpZiAoYnAtPmRvbWFpbiAmIChBTURHUFVfR0VNX0RPTUFJTl9HV1MgfCBBTURHUFVfR0VNX0RPTUFJTl9PQSB8CkBAIC01MjEsNyArNTI4LDcgQEAgc3RhdGljIGludCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCSAgICBiby0+dGJvLm1lbS5wbGFjZW1lbnQgJiBUVE1fUExfRkxBR19WUkFNKSB7CiAJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCi0JCXIgPSBhbWRncHVfZmlsbF9idWZmZXIoYm8sIDAsIGJvLT50Ym8ucmVzdiwgJmZlbmNlKTsKKwkJciA9IGFtZGdwdV9maWxsX2J1ZmZlcihibywgMCwgYm8tPnRiby5iYXNlLnJlc3YsICZmZW5jZSk7CiAJCWlmICh1bmxpa2VseShyKSkKIAkJCWdvdG8gZmFpbF91bnJlc2VydmU7CiAKQEAgLTU0NCw3ICs1NTEsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9ib19kb19jcmVhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIGZhaWxfdW5yZXNlcnZlOgogCWlmICghYnAtPnJlc3YpCi0JCXd3X211dGV4X3VubG9jaygmYm8tPnRiby5yZXN2LT5sb2NrKTsKKwkJZG1hX3Jlc3ZfdW5sb2NrKGJvLT50Ym8uYmFzZS5yZXN2KTsKIAlhbWRncHVfYm9fdW5yZWYoJmJvKTsKIAlyZXR1cm4gcjsKIH0KQEAgLTU2NSw3ICs1NzIsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9ib19jcmVhdGVfc2hhZG93KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWJwLmZsYWdzID0gQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0dUVF9VU1dDIHwKIAkJQU1ER1BVX0dFTV9DUkVBVEVfU0hBRE9XOwogCWJwLnR5cGUgPSB0dG1fYm9fdHlwZV9rZXJuZWw7Ci0JYnAucmVzdiA9IGJvLT50Ym8ucmVzdjsKKwlicC5yZXN2ID0gYm8tPnRiby5iYXNlLnJlc3Y7CiAKIAlyID0gYW1kZ3B1X2JvX2RvX2NyZWF0ZShhZGV2LCAmYnAsICZiby0+c2hhZG93KTsKIAlpZiAoIXIpIHsKQEAgLTYwNiwxMyArNjEzLDEzIEBAIGludCBhbWRncHVfYm9fY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJaWYgKChmbGFncyAmIEFNREdQVV9HRU1fQ1JFQVRFX1NIQURPVykgJiYgIShhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpKSB7CiAJCWlmICghYnAtPnJlc3YpCi0JCQlXQVJOX09OKHJlc2VydmF0aW9uX29iamVjdF9sb2NrKCgqYm9fcHRyKS0+dGJvLnJlc3YsCisJCQlXQVJOX09OKGRtYV9yZXN2X2xvY2soKCpib19wdHIpLT50Ym8uYmFzZS5yZXN2LAogCQkJCQkJCU5VTEwpKTsKIAogCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZV9zaGFkb3coYWRldiwgYnAtPnNpemUsICpib19wdHIpOwogCiAJCWlmICghYnAtPnJlc3YpCi0JCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKCgqYm9fcHRyKS0+dGJvLnJlc3YpOworCQkJZG1hX3Jlc3ZfdW5sb2NrKCgqYm9fcHRyKS0+dGJvLmJhc2UucmVzdik7CiAKIAkJaWYgKHIpCiAJCQlhbWRncHVfYm9fdW5yZWYoYm9fcHRyKTsKQEAgLTcwOSw3ICs3MTYsNyBAQCBpbnQgYW1kZ3B1X2JvX2ttYXAoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHZvaWQgKipwdHIpCiAJCXJldHVybiAwOwogCX0KIAotCXIgPSByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShiby0+dGJvLnJlc3YsIGZhbHNlLCBmYWxzZSwKKwlyID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShiby0+dGJvLmJhc2UucmVzdiwgZmFsc2UsIGZhbHNlLAogCQkJCQkJTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwogCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7CkBAIC0xMDg3LDcgKzEwOTQsNyBAQCBpbnQgYW1kZ3B1X2JvX3NldF90aWxpbmdfZmxhZ3Moc3RydWN0IGFtZGdwdV9ibyAqYm8sIHU2NCB0aWxpbmdfZmxhZ3MpCiAgKi8KIHZvaWQgYW1kZ3B1X2JvX2dldF90aWxpbmdfZmxhZ3Moc3RydWN0IGFtZGdwdV9ibyAqYm8sIHU2NCAqdGlsaW5nX2ZsYWdzKQogewotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmJvLT50Ym8ucmVzdi0+bG9jay5iYXNlKTsKKwlkbWFfcmVzdl9hc3NlcnRfaGVsZChiby0+dGJvLmJhc2UucmVzdik7CiAKIAlpZiAodGlsaW5nX2ZsYWdzKQogCQkqdGlsaW5nX2ZsYWdzID0gYm8tPnRpbGluZ19mbGFnczsKQEAgLTEyMTIsNiArMTIxOSw0MiBAQCB2b2lkIGFtZGdwdV9ib19tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogfQogCiAvKioKKyAqIGFtZGdwdV9ib19tb3ZlX25vdGlmeSAtIG5vdGlmaWNhdGlvbiBhYm91dCBhIEJPIGJlaW5nIHJlbGVhc2VkCisgKiBAYm86IHBvaW50ZXIgdG8gYSBidWZmZXIgb2JqZWN0CisgKgorICogV2lwZXMgVlJBTSBidWZmZXJzIHdob3NlIGNvbnRlbnRzIHNob3VsZCBub3QgYmUgbGVha2VkIGJlZm9yZSB0aGUKKyAqIG1lbW9yeSBpcyByZWxlYXNlZC4KKyAqLwordm9pZCBhbWRncHVfYm9fcmVsZWFzZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKK3sKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEw7CisJc3RydWN0IGFtZGdwdV9ibyAqYWJvOworCWludCByOworCisJaWYgKCFhbWRncHVfYm9faXNfYW1kZ3B1X2JvKGJvKSkKKwkJcmV0dXJuOworCisJYWJvID0gdHRtX3RvX2FtZGdwdV9ibyhibyk7CisKKwlpZiAoYWJvLT5rZmRfYm8pCisJCWFtZGdwdV9hbWRrZmRfdW5yZXNlcnZlX21lbW9yeV9saW1pdChhYm8pOworCisJaWYgKGJvLT5tZW0ubWVtX3R5cGUgIT0gVFRNX1BMX1ZSQU0gfHwgIWJvLT5tZW0ubW1fbm9kZSB8fAorCSAgICAhKGFiby0+ZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9WUkFNX1dJUEVfT05fUkVMRUFTRSkpCisJCXJldHVybjsKKworCWRtYV9yZXN2X2xvY2soYm8tPmJhc2UucmVzdiwgTlVMTCk7CisKKwlyID0gYW1kZ3B1X2ZpbGxfYnVmZmVyKGFibywgQU1ER1BVX1BPSVNPTiwgYm8tPmJhc2UucmVzdiwgJmZlbmNlKTsKKwlpZiAoIVdBUk5fT04ocikpIHsKKwkJYW1kZ3B1X2JvX2ZlbmNlKGFibywgZmVuY2UsIGZhbHNlKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJfQorCisJZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOworfQorCisvKioKICAqIGFtZGdwdV9ib19mYXVsdF9yZXNlcnZlX25vdGlmeSAtIG5vdGlmaWNhdGlvbiBhYm91dCBhIG1lbW9yeSBmYXVsdAogICogQGJvOiBwb2ludGVyIHRvIGEgYnVmZmVyIG9iamVjdAogICoKQEAgLTEyODMsMTIgKzEzMjYsMTIgQEAgaW50IGFtZGdwdV9ib19mYXVsdF9yZXNlcnZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogdm9pZCBhbWRncHVfYm9fZmVuY2Uoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkgICAgIGJvb2wgc2hhcmVkKQogewotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YgPSBiby0+dGJvLnJlc3Y7CisJc3RydWN0IGRtYV9yZXN2ICpyZXN2ID0gYm8tPnRiby5iYXNlLnJlc3Y7CiAKIAlpZiAoc2hhcmVkKQotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShyZXN2LCBmZW5jZSk7CisJCWRtYV9yZXN2X2FkZF9zaGFyZWRfZmVuY2UocmVzdiwgZmVuY2UpOwogCWVsc2UKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHJlc3YsIGZlbmNlKTsKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2UocmVzdiwgZmVuY2UpOwogfQogCiAvKioKQEAgLTEzMDgsNyArMTM1MSw3IEBAIGludCBhbWRncHVfYm9fc3luY193YWl0KHN0cnVjdCBhbWRncHVfYm8gKmJvLCB2b2lkICpvd25lciwgYm9vbCBpbnRyKQogCWludCByOwogCiAJYW1kZ3B1X3N5bmNfY3JlYXRlKCZzeW5jKTsKLQlhbWRncHVfc3luY19yZXN2KGFkZXYsICZzeW5jLCBiby0+dGJvLnJlc3YsIG93bmVyLCBmYWxzZSk7CisJYW1kZ3B1X3N5bmNfcmVzdihhZGV2LCAmc3luYywgYm8tPnRiby5iYXNlLnJlc3YsIG93bmVyLCBmYWxzZSk7CiAJciA9IGFtZGdwdV9zeW5jX3dhaXQoJnN5bmMsIGludHIpOwogCWFtZGdwdV9zeW5jX2ZyZWUoJnN5bmMpOwogCkBAIC0xMzI4LDcgKzEzNzEsNyBAQCBpbnQgYW1kZ3B1X2JvX3N5bmNfd2FpdChzdHJ1Y3QgYW1kZ3B1X2JvICpibywgdm9pZCAqb3duZXIsIGJvb2wgaW50cikKIHU2NCBhbWRncHVfYm9fZ3B1X29mZnNldChzdHJ1Y3QgYW1kZ3B1X2JvICpibykKIHsKIAlXQVJOX09OX09OQ0UoYm8tPnRiby5tZW0ubWVtX3R5cGUgPT0gVFRNX1BMX1NZU1RFTSk7Ci0JV0FSTl9PTl9PTkNFKCF3d19tdXRleF9pc19sb2NrZWQoJmJvLT50Ym8ucmVzdi0+bG9jaykgJiYKKwlXQVJOX09OX09OQ0UoIWRtYV9yZXN2X2lzX2xvY2tlZChiby0+dGJvLmJhc2UucmVzdikgJiYKIAkJICAgICAhYm8tPnBpbl9jb3VudCAmJiBiby0+dGJvLnR5cGUgIT0gdHRtX2JvX3R5cGVfa2VybmVsKTsKIAlXQVJOX09OX09OQ0UoYm8tPnRiby5tZW0uc3RhcnQgPT0gQU1ER1BVX0JPX0lOVkFMSURfT0ZGU0VUKTsKIAlXQVJOX09OX09OQ0UoYm8tPnRiby5tZW0ubWVtX3R5cGUgPT0gVFRNX1BMX1ZSQU0gJiYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaAppbmRleCBkNjA1OTNjLi42NThmNGM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCkBAIC00MSw3ICs0MSw3IEBAIHN0cnVjdCBhbWRncHVfYm9fcGFyYW0gewogCXUzMgkJCQlwcmVmZXJyZWRfZG9tYWluOwogCXU2NAkJCQlmbGFnczsKIAllbnVtIHR0bV9ib190eXBlCQl0eXBlOwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QJKnJlc3Y7CisJc3RydWN0IGRtYV9yZXN2CSpyZXN2OwogfTsKIAogLyogYm8gdmlydHVhbCBhZGRyZXNzZXMgaW4gYSB2bSAqLwpAQCAtOTQsNyArOTQsNiBAQCBzdHJ1Y3QgYW1kZ3B1X2JvIHsKIAkvKiBwZXIgVk0gc3RydWN0dXJlIGZvciBwYWdlIHRhYmxlcyBhbmQgd2l0aCB2aXJ0dWFsIGFkZHJlc3NlcyAqLwogCXN0cnVjdCBhbWRncHVfdm1fYm9fYmFzZQkqdm1fYm87CiAJLyogQ29uc3RhbnQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gKi8KLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QJCWdlbV9iYXNlOwogCXN0cnVjdCBhbWRncHVfYm8JCSpwYXJlbnQ7CiAJc3RydWN0IGFtZGdwdV9ibwkJKnNoYWRvdzsKIApAQCAtMTkyLDcgKzE5MSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgYW1kZ3B1X2JvX2dwdV9wYWdlX2FsaWdubWVudChzdHJ1Y3QgYW1kZ3B1X2JvICpibykKICAqLwogc3RhdGljIGlubGluZSB1NjQgYW1kZ3B1X2JvX21tYXBfb2Zmc2V0KHN0cnVjdCBhbWRncHVfYm8gKmJvKQogewotCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJvLT50Ym8udm1hX25vZGUpOworCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJvLT50Ym8uYmFzZS52bWFfbm9kZSk7CiB9CiAKIC8qKgpAQCAtMjY1LDYgKzI2NCw3IEBAIGludCBhbWRncHVfYm9fZ2V0X21ldGFkYXRhKHN0cnVjdCBhbWRncHVfYm8gKmJvLCB2b2lkICpidWZmZXIsCiB2b2lkIGFtZGdwdV9ib19tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJICAgYm9vbCBldmljdCwKIAkJCSAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSk7Cit2b2lkIGFtZGdwdV9ib19yZWxlYXNlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsKIGludCBhbWRncHVfYm9fZmF1bHRfcmVzZXJ2ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7CiB2b2lkIGFtZGdwdV9ib19mZW5jZShzdHJ1Y3QgYW1kZ3B1X2JvICpibywgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCiAJCSAgICAgYm9vbCBzaGFyZWQpOwpAQCAtMzA4LDUgKzMwOCw3IEBAIHZvaWQgYW1kZ3B1X3NhX2JvX2R1bXBfZGVidWdfaW5mbyhzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIgKnNhX21hbmFnZXIsCiAJCQkJCSBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwogI2VuZGlmCiAKK2Jvb2wgYW1kZ3B1X2JvX3N1cHBvcnRfdXN3Yyh1NjQgYm9fZmxhZ3MpOworCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYwppbmRleCAyYjU0NjU2Li4wMzkzMDMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYwpAQCAtMzI1LDEzICszMjUsNiBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X2RwbV9mb3JjZWRfcGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0IGRldmljZSAqZGV2LAogCSAgICAgKGRkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENIX1BPV0VSX09OKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewotCQlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpCi0JCQljdXJyZW50X2xldmVsID0gc211X2dldF9wZXJmb3JtYW5jZV9sZXZlbCgmYWRldi0+c211KTsKLQkJZWxzZSBpZiAoYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5nZXRfcGVyZm9ybWFuY2VfbGV2ZWwpCi0JCQljdXJyZW50X2xldmVsID0gYW1kZ3B1X2RwbV9nZXRfcGVyZm9ybWFuY2VfbGV2ZWwoYWRldik7Ci0JfQotCiAJaWYgKHN0cm5jbXAoImxvdyIsIGJ1Ziwgc3RybGVuKCJsb3ciKSkgPT0gMCkgewogCQlsZXZlbCA9IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0xPVzsKIAl9IGVsc2UgaWYgKHN0cm5jbXAoImhpZ2giLCBidWYsIHN0cmxlbigiaGlnaCIpKSA9PSAwKSB7CkBAIC0zNTUsMTcgKzM0OCwyMyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X2RwbV9mb3JjZWRfcGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0IGRldmljZSAqZGV2LAogCQlnb3RvIGZhaWw7CiAJfQogCi0gICAgICAgIGlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsKLSAgICAgICAgICAgICAgICBpZiAoYW1kZ2ltX2lzX2h3cGVyZihhZGV2KSAmJgotICAgICAgICAgICAgICAgICAgICBhZGV2LT52aXJ0Lm9wcy0+Zm9yY2VfZHBtX2xldmVsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtdXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhZGV2LT52aXJ0Lm9wcy0+Zm9yY2VfZHBtX2xldmVsKGFkZXYsIGxldmVsKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG11dGV4X3VubG9jaygmYWRldi0+cG0ubXV0ZXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKwkvKiBoYW5kbGUgc3Jpb3YgY2FzZSBoZXJlICovCisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgeworCQlpZiAoYW1kZ2ltX2lzX2h3cGVyZihhZGV2KSAmJgorCQkgICAgYWRldi0+dmlydC5vcHMtPmZvcmNlX2RwbV9sZXZlbCkgeworCQkJbXV0ZXhfbG9jaygmYWRldi0+cG0ubXV0ZXgpOworCQkJYWRldi0+dmlydC5vcHMtPmZvcmNlX2RwbV9sZXZlbChhZGV2LCBsZXZlbCk7CisJCQltdXRleF91bmxvY2soJmFkZXYtPnBtLm11dGV4KTsKKwkJCXJldHVybiBjb3VudDsKKwkJfSBlbHNlIHsKKwkJCXJldHVybiAtRUlOVkFMOwogCQl9Ci0gICAgICAgIH0KKwl9CisKKwlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpCisJCWN1cnJlbnRfbGV2ZWwgPSBzbXVfZ2V0X3BlcmZvcm1hbmNlX2xldmVsKCZhZGV2LT5zbXUpOworCWVsc2UgaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+Z2V0X3BlcmZvcm1hbmNlX2xldmVsKQorCQljdXJyZW50X2xldmVsID0gYW1kZ3B1X2RwbV9nZXRfcGVyZm9ybWFuY2VfbGV2ZWwoYWRldik7CiAKIAlpZiAoY3VycmVudF9sZXZlbCA9PSBsZXZlbCkKIAkJcmV0dXJuIGNvdW50OwpAQCAtNzQ2LDEwICs3NDUsMTAgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2dldF9wcF9vZF9jbGtfdm9sdGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiB9CiAKIC8qKgotICogRE9DOiBwcGZlYXR1cmVzCisgKiBET0M6IHBwX2ZlYXR1cmVzCiAgKgogICogVGhlIGFtZGdwdSBkcml2ZXIgcHJvdmlkZXMgYSBzeXNmcyBBUEkgZm9yIGFkanVzdGluZyB3aGF0IHBvd2VycGxheQotICogZmVhdHVyZXMgdG8gYmUgZW5hYmxlZC4gVGhlIGZpbGUgcHBmZWF0dXJlcyBpcyB1c2VkIGZvciB0aGlzLiBBbmQKKyAqIGZlYXR1cmVzIHRvIGJlIGVuYWJsZWQuIFRoZSBmaWxlIHBwX2ZlYXR1cmVzIGlzIHVzZWQgZm9yIHRoaXMuIEFuZAogICogdGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgVmVnYTEwIGFuZCBsYXRlciBkR1BVcy4KICAqCiAgKiBSZWFkaW5nIGJhY2sgdGhlIGZpbGUgd2lsbCBzaG93IHlvdSB0aGUgZm9sbG93aW5nczoKQEAgLTc2MSw3ICs3NjAsNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZ2V0X3BwX29kX2Nsa192b2x0YWdlKHN0cnVjdCBkZXZpY2UgKmRldiwKICAqIHRoZSBjb3JyZXNwb25kaW5nIGJpdCBmcm9tIG9yaWdpbmFsIHBwZmVhdHVyZSBtYXNrcyBhbmQgaW5wdXQgdGhlCiAgKiBuZXcgcHBmZWF0dXJlIG1hc2tzLgogICovCi1zdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X3BwZmVhdHVyZV9zdGF0dXMoc3RydWN0IGRldmljZSAqZGV2LAorc3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9wcF9mZWF0dXJlX3N0YXR1cyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQljb25zdCBjaGFyICpidWYsCiAJCXNpemVfdCBjb3VudCkKQEAgLTc3OCw3ICs3NzcsNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X3BwZmVhdHVyZV9zdGF0dXMoc3RydWN0IGRldmljZSAqZGV2LAogCXByX2RlYnVnKCJmZWF0dXJlbWFzayA9IDB4JWxseFxuIiwgZmVhdHVyZW1hc2spOwogCiAJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKSB7Ci0JCXJldCA9IHNtdV9zZXRfcHBmZWF0dXJlX3N0YXR1cygmYWRldi0+c211LCBmZWF0dXJlbWFzayk7CisJCXJldCA9IHNtdV9zeXNfc2V0X3BwX2ZlYXR1cmVfbWFzaygmYWRldi0+c211LCBmZWF0dXJlbWFzayk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAl9IGVsc2UgaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+c2V0X3BwZmVhdHVyZV9zdGF0dXMpIHsKQEAgLTc5MCw3ICs3ODksNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X3BwZmVhdHVyZV9zdGF0dXMoc3RydWN0IGRldmljZSAqZGV2LAogCXJldHVybiBjb3VudDsKIH0KIAotc3RhdGljIHNzaXplX3QgYW1kZ3B1X2dldF9wcGZlYXR1cmVfc3RhdHVzKHN0cnVjdCBkZXZpY2UgKmRldiwKK3N0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfcHBfZmVhdHVyZV9zdGF0dXMoc3RydWN0IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJY2hhciAqYnVmKQogewpAQCAtNzk4LDcgKzc5Nyw3IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfcHBmZWF0dXJlX3N0YXR1cyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKIAogCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSkgewotCQlyZXR1cm4gc211X2dldF9wcGZlYXR1cmVfc3RhdHVzKCZhZGV2LT5zbXUsIGJ1Zik7CisJCXJldHVybiBzbXVfc3lzX2dldF9wcF9mZWF0dXJlX21hc2soJmFkZXYtPnNtdSwgYnVmKTsKIAl9IGVsc2UgaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+Z2V0X3BwZmVhdHVyZV9zdGF0dXMpCiAJCXJldHVybiBhbWRncHVfZHBtX2dldF9wcGZlYXR1cmVfc3RhdHVzKGFkZXYsIGJ1Zik7CiAKQEAgLTE0NTgsOSArMTQ1Nyw5IEBAIHN0YXRpYyBERVZJQ0VfQVRUUihncHVfYnVzeV9wZXJjZW50LCBTX0lSVUdPLAogc3RhdGljIERFVklDRV9BVFRSKG1lbV9idXN5X3BlcmNlbnQsIFNfSVJVR08sCiAJCWFtZGdwdV9nZXRfbWVtb3J5X2J1c3lfcGVyY2VudCwgTlVMTCk7CiBzdGF0aWMgREVWSUNFX0FUVFIocGNpZV9idywgU19JUlVHTywgYW1kZ3B1X2dldF9wY2llX2J3LCBOVUxMKTsKLXN0YXRpYyBERVZJQ0VfQVRUUihwcGZlYXR1cmVzLCBTX0lSVUdPIHwgU19JV1VTUiwKLQkJYW1kZ3B1X2dldF9wcGZlYXR1cmVfc3RhdHVzLAotCQlhbWRncHVfc2V0X3BwZmVhdHVyZV9zdGF0dXMpOworc3RhdGljIERFVklDRV9BVFRSKHBwX2ZlYXR1cmVzLCBTX0lSVUdPIHwgU19JV1VTUiwKKwkJYW1kZ3B1X2dldF9wcF9mZWF0dXJlX3N0YXR1cywKKwkJYW1kZ3B1X3NldF9wcF9mZWF0dXJlX3N0YXR1cyk7CiBzdGF0aWMgREVWSUNFX0FUVFIodW5pcXVlX2lkLCBTX0lSVUdPLCBhbWRncHVfZ2V0X3VuaXF1ZV9pZCwgTlVMTCk7CiAKIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9od21vbl9zaG93X3RlbXAoc3RydWN0IGRldmljZSAqZGV2LApAQCAtMTYyNSwyMCArMTYyNCwxNiBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfaHdtb25fc2V0X3B3bTFfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkgICAgIChhZGV2LT5kZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgIT0gRFJNX1NXSVRDSF9QT1dFUl9PTikpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKSB7Ci0JCWVyciA9IGtzdHJ0b2ludChidWYsIDEwLCAmdmFsdWUpOwotCQlpZiAoZXJyKQotCQkJcmV0dXJuIGVycjsKKwllcnIgPSBrc3RydG9pbnQoYnVmLCAxMCwgJnZhbHVlKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOwogCisJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKSB7CiAJCXNtdV9zZXRfZmFuX2NvbnRyb2xfbW9kZSgmYWRldi0+c211LCB2YWx1ZSk7CiAJfSBlbHNlIHsKIAkJaWYgKCFhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnNldF9mYW5fY29udHJvbF9tb2RlKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKLQkJZXJyID0ga3N0cnRvaW50KGJ1ZiwgMTAsICZ2YWx1ZSk7Ci0JCWlmIChlcnIpCi0JCQlyZXR1cm4gZXJyOwotCiAJCWFtZGdwdV9kcG1fc2V0X2Zhbl9jb250cm9sX21vZGUoYWRldiwgdmFsdWUpOwogCX0KIApAQCAtMjA1OCwxNiArMjA1MywxOCBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfaHdtb25fc2V0X3Bvd2VyX2NhcChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCXJldHVybiBlcnI7CiAKIAl2YWx1ZSA9IHZhbHVlIC8gMTAwMDAwMDsgLyogY29udmVydCB0byBXYXR0ICovCisKIAlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpIHsKLQkJYWRldi0+c211LmZ1bmNzLT5zZXRfcG93ZXJfbGltaXQoJmFkZXYtPnNtdSwgdmFsdWUpOworCQllcnIgPSBzbXVfc2V0X3Bvd2VyX2xpbWl0KCZhZGV2LT5zbXUsIHZhbHVlKTsKIAl9IGVsc2UgaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcyAmJiBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnNldF9wb3dlcl9saW1pdCkgewogCQllcnIgPSBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnNldF9wb3dlcl9saW1pdChhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlLCB2YWx1ZSk7Ci0JCWlmIChlcnIpCi0JCQlyZXR1cm4gZXJyOwogCX0gZWxzZSB7Ci0JCXJldHVybiAtRUlOVkFMOworCQllcnIgPSAtRUlOVkFMOwogCX0KIAorCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAlyZXR1cm4gY291bnQ7CiB9CiAKQEAgLTIzNTIsNyArMjM0OSw5IEBAIHN0YXRpYyB1bW9kZV90IGh3bW9uX2F0dHJpYnV0ZXNfdmlzaWJsZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJCWVmZmVjdGl2ZV9tb2RlICY9IH5TX0lXVVNSOwogCX0KIAotCWlmICgoYWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVKSAmJgorCWlmICgoKGFkZXYtPmZsYWdzICYgQU1EX0lTX0FQVSkgfHwKKwkgICAgIGFkZXYtPmZhbWlseSA9PSBBTURHUFVfRkFNSUxZX1NJIHx8CS8qIG5vdCBpbXBsZW1lbnRlZCB5ZXQgKi8KKwkgICAgIGFkZXYtPmZhbWlseSA9PSBBTURHUFVfRkFNSUxZX0tWKSAmJgkvKiBub3QgaW1wbGVtZW50ZWQgeWV0ICovCiAJICAgIChhdHRyID09ICZzZW5zb3JfZGV2X2F0dHJfcG93ZXIxX2F2ZXJhZ2UuZGV2X2F0dHIuYXR0ciB8fAogCSAgICAgYXR0ciA9PSAmc2Vuc29yX2Rldl9hdHRyX3Bvd2VyMV9jYXBfbWF4LmRldl9hdHRyLmF0dHIgfHwKIAkgICAgIGF0dHIgPT0gJnNlbnNvcl9kZXZfYXR0cl9wb3dlcjFfY2FwX21pbi5kZXZfYXR0ci5hdHRyfHwKQEAgLTIzNzYsNiArMjM3NSwxMiBAQCBzdGF0aWMgdW1vZGVfdCBod21vbl9hdHRyaWJ1dGVzX3Zpc2libGUoc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCQlyZXR1cm4gMDsKIAl9CiAKKwlpZiAoKGFkZXYtPmZhbWlseSA9PSBBTURHUFVfRkFNSUxZX1NJIHx8CS8qIG5vdCBpbXBsZW1lbnRlZCB5ZXQgKi8KKwkgICAgIGFkZXYtPmZhbWlseSA9PSBBTURHUFVfRkFNSUxZX0tWKSAmJgkvKiBub3QgaW1wbGVtZW50ZWQgeWV0ICovCisJICAgIChhdHRyID09ICZzZW5zb3JfZGV2X2F0dHJfaW4wX2lucHV0LmRldl9hdHRyLmF0dHIgfHwKKwkgICAgIGF0dHIgPT0gJnNlbnNvcl9kZXZfYXR0cl9pbjBfbGFiZWwuZGV2X2F0dHIuYXR0cikpCisJCXJldHVybiAwOworCiAJLyogb25seSBBUFVzIGhhdmUgdmRkbmIgKi8KIAlpZiAoIShhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpICYmCiAJICAgIChhdHRyID09ICZzZW5zb3JfZGV2X2F0dHJfaW4xX2lucHV0LmRldl9hdHRyLmF0dHIgfHwKQEAgLTI4MzEsMTAgKzI4MzYsMTIgQEAgaW50IGFtZGdwdV9wbV9zeXNmc19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY3JlYXRlIGRldmljZSBmaWxlIHBwX2RwbV9zb2NjbGtcbiIpOwogCQkJcmV0dXJuIHJldDsKIAkJfQotCQlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBfZHBtX2RjZWZjbGspOwotCQlpZiAocmV0KSB7Ci0JCQlEUk1fRVJST1IoImZhaWxlZCB0byBjcmVhdGUgZGV2aWNlIGZpbGUgcHBfZHBtX2RjZWZjbGtcbiIpOwotCQkJcmV0dXJuIHJldDsKKwkJaWYgKGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX0FSQ1RVUlVTKSB7CisJCQlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBfZHBtX2RjZWZjbGspOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGNyZWF0ZSBkZXZpY2UgZmlsZSBwcF9kcG1fZGNlZmNsa1xuIik7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KIAkJfQogCX0KIAlpZiAoYWRldi0+YXNpY190eXBlID49IENISVBfVkVHQTIwKSB7CkBAIC0yODQ0LDEwICsyODUxLDEyIEBAIGludCBhbWRncHVfcG1fc3lzZnNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCXJldHVybiByZXQ7CiAJCX0KIAl9Ci0JcmV0ID0gZGV2aWNlX2NyZWF0ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX2RwbV9wY2llKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGNyZWF0ZSBkZXZpY2UgZmlsZSBwcF9kcG1fcGNpZVxuIik7Ci0JCXJldHVybiByZXQ7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX0FSQ1RVUlVTKSB7CisJCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wcF9kcG1fcGNpZSk7CisJCWlmIChyZXQpIHsKKwkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGNyZWF0ZSBkZXZpY2UgZmlsZSBwcF9kcG1fcGNpZVxuIik7CisJCQlyZXR1cm4gcmV0OworCQl9CiAJfQogCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wcF9zY2xrX29kKTsKIAlpZiAocmV0KSB7CkBAIC0yOTE3LDEwICsyOTI2LDEwIEBAIGludCBhbWRncHVfcG1fc3lzZnNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpZiAoKGFkZXYtPmFzaWNfdHlwZSA+PSBDSElQX1ZFR0ExMCkgJiYKIAkgICAgIShhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpKSB7CiAJCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShhZGV2LT5kZXYsCi0JCQkJJmRldl9hdHRyX3BwZmVhdHVyZXMpOworCQkJCSZkZXZfYXR0cl9wcF9mZWF0dXJlcyk7CiAJCWlmIChyZXQpIHsKIAkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGNyZWF0ZSBkZXZpY2UgZmlsZQkiCi0JCQkJCSJwcGZlYXR1cmVzXG4iKTsKKwkJCQkJInBwX2ZlYXR1cmVzXG4iKTsKIAkJCXJldHVybiByZXQ7CiAJCX0KIAl9CkBAIC0yOTUxLDkgKzI5NjAsMTEgQEAgdm9pZCBhbWRncHVfcG1fc3lzZnNfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBfZHBtX21jbGspOwogCWlmIChhZGV2LT5hc2ljX3R5cGUgPj0gQ0hJUF9WRUdBMTApIHsKIAkJZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX2RwbV9zb2NjbGspOwotCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBfZHBtX2RjZWZjbGspOworCQlpZiAoYWRldi0+YXNpY190eXBlICE9IENISVBfQVJDVFVSVVMpCisJCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBfZHBtX2RjZWZjbGspOwogCX0KLQlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBfZHBtX3BjaWUpOworCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9BUkNUVVJVUykKKwkJZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX2RwbV9wY2llKTsKIAlpZiAoYWRldi0+YXNpY190eXBlID49IENISVBfVkVHQTIwKQogCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBfZHBtX2ZjbGspOwogCWRldmljZV9yZW1vdmVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wcF9zY2xrX29kKTsKQEAgLTI5NzQsNyArMjk4NSw3IEBAIHZvaWQgYW1kZ3B1X3BtX3N5c2ZzX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWRldmljZV9yZW1vdmVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl91bmlxdWVfaWQpOwogCWlmICgoYWRldi0+YXNpY190eXBlID49IENISVBfVkVHQTEwKSAmJgogCSAgICAhKGFkZXYtPmZsYWdzICYgQU1EX0lTX0FQVSkpCi0JCWRldmljZV9yZW1vdmVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wcGZlYXR1cmVzKTsKKwkJZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX2ZlYXR1cmVzKTsKIH0KIAogdm9pZCBhbWRncHVfcG1fY29tcHV0ZV9jbG9ja3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHNwLmMKaW5kZXggYzAyN2U1ZS4uNGQ3MTUzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BzcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wc3AuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgInBzcF92M18xLmgiCiAjaW5jbHVkZSAicHNwX3YxMF8wLmgiCiAjaW5jbHVkZSAicHNwX3YxMV8wLmgiCisjaW5jbHVkZSAicHNwX3YxMl8wLmgiCiAKIHN0YXRpYyB2b2lkIHBzcF9zZXRfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogCkBAIC01MywxMyArNTQsMTkgQEAgc3RhdGljIGludCBwc3BfZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiAJCXBzcC0+YXV0b2xvYWRfc3VwcG9ydGVkID0gZmFsc2U7CiAJCWJyZWFrOwogCWNhc2UgQ0hJUF9WRUdBMjA6CisJY2FzZSBDSElQX0FSQ1RVUlVTOgogCQlwc3BfdjExXzBfc2V0X3BzcF9mdW5jcyhwc3ApOwogCQlwc3AtPmF1dG9sb2FkX3N1cHBvcnRlZCA9IGZhbHNlOwogCQlicmVhazsKIAljYXNlIENISVBfTkFWSTEwOgorCWNhc2UgQ0hJUF9OQVZJMTQ6CisJY2FzZSBDSElQX05BVkkxMjoKIAkJcHNwX3YxMV8wX3NldF9wc3BfZnVuY3MocHNwKTsKIAkJcHNwLT5hdXRvbG9hZF9zdXBwb3J0ZWQgPSB0cnVlOwogCQlicmVhazsKKwljYXNlIENISVBfUkVOT0lSOgorCQlwc3BfdjEyXzBfc2V0X3BzcF9mdW5jcyhwc3ApOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMzcsOCArMTQ0LDcgQEAgcHNwX2NtZF9zdWJtaXRfYnVmKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwLAogCW1lbWNweShwc3AtPmNtZF9idWZfbWVtLCBjbWQsIHNpemVvZihzdHJ1Y3QgcHNwX2dmeF9jbWRfcmVzcCkpOwogCiAJaW5kZXggPSBhdG9taWNfaW5jX3JldHVybigmcHNwLT5mZW5jZV92YWx1ZSk7Ci0JcmV0ID0gcHNwX2NtZF9zdWJtaXQocHNwLCB1Y29kZSwgcHNwLT5jbWRfYnVmX21jX2FkZHIsCi0JCQkgICAgIGZlbmNlX21jX2FkZHIsIGluZGV4KTsKKwlyZXQgPSBwc3BfY21kX3N1Ym1pdChwc3AsIHBzcC0+Y21kX2J1Zl9tY19hZGRyLCBmZW5jZV9tY19hZGRyLCBpbmRleCk7CiAJaWYgKHJldCkgewogCQlhdG9taWNfZGVjKCZwc3AtPmZlbmNlX3ZhbHVlKTsKIAkJbXV0ZXhfdW5sb2NrKCZwc3AtPm11dGV4KTsKQEAgLTE2Miw4ICsxNjgsOCBAQCBwc3BfY21kX3N1Ym1pdF9idWYoc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsCiAJCWlmICh1Y29kZSkKIAkJCURSTV9XQVJOKCJmYWlsZWQgdG8gbG9hZCB1Y29kZSBpZCAoJWQpICIsCiAJCQkJICB1Y29kZS0+dWNvZGVfaWQpOwotCQlEUk1fV0FSTigicHNwIGNvbW1hbmQgZmFpbGVkIGFuZCByZXNwb25zZSBzdGF0dXMgaXMgKCVkKVxuIiwKLQkJCSAgcHNwLT5jbWRfYnVmX21lbS0+cmVzcC5zdGF0dXMpOworCQlEUk1fV0FSTigicHNwIGNvbW1hbmQgZmFpbGVkIGFuZCByZXNwb25zZSBzdGF0dXMgaXMgKDB4JVgpXG4iLAorCQkJICBwc3AtPmNtZF9idWZfbWVtLT5yZXNwLnN0YXR1cyAmIEdGWF9DTURfU1RBVFVTX01BU0spOwogCQlpZiAoIXRpbWVvdXQpIHsKIAkJCW11dGV4X3VubG9jaygmcHNwLT5tdXRleCk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTIzMyw2ICsyMzksOCBAQCBzdGF0aWMgaW50IHBzcF90bXJfaW5pdChzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKIHsKIAlpbnQgcmV0OwogCWludCB0bXJfc2l6ZTsKKwl2b2lkICp0bXJfYnVmOworCXZvaWQgKipwcHRyOwogCiAJLyoKIAkgKiBBY2NvcmRpbmcgdG8gSFcgZW5naW5lZXIsIHRoZXkgcHJlZmVyIHRoZSBUTVIgYWRkcmVzcyBiZSAibmF0dXJhbGx5CkBAIC0yNTUsOSArMjYzLDEwIEBAIHN0YXRpYyBpbnQgcHNwX3Rtcl9pbml0KHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQogCQl9CiAJfQogCisJcHB0ciA9IGFtZGdwdV9zcmlvdl92Zihwc3AtPmFkZXYpID8gJnRtcl9idWYgOiBOVUxMOwogCXJldCA9IGFtZGdwdV9ib19jcmVhdGVfa2VybmVsKHBzcC0+YWRldiwgdG1yX3NpemUsIFBTUF9UTVJfU0laRSwKIAkJCQkgICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAotCQkJCSAgICAgICZwc3AtPnRtcl9ibywgJnBzcC0+dG1yX21jX2FkZHIsICZwc3AtPnRtcl9idWYpOworCQkJCSAgICAgICZwc3AtPnRtcl9ibywgJnBzcC0+dG1yX21jX2FkZHIsIHBwdHIpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTgzMSw3ICs4NDAsNiBAQCBzdGF0aWMgaW50IHBzcF9od19zdGFydChzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKIAkJCQkiWEdNSTogRmFpbGVkIHRvIGluaXRpYWxpemUgWEdNSSBzZXNzaW9uXG4iKTsKIAl9CiAKLQogCWlmIChwc3AtPmFkZXYtPnBzcC50YV9mdykgewogCQlyZXQgPSBwc3BfcmFzX2luaXRpYWxpemUocHNwKTsKIAkJaWYgKHJldCkKQEAgLTg1Miw2ICs4NjAsMjQgQEAgc3RhdGljIGludCBwc3BfZ2V0X2Z3X3R5cGUoc3RydWN0IGFtZGdwdV9maXJtd2FyZV9pbmZvICp1Y29kZSwKIAljYXNlIEFNREdQVV9VQ09ERV9JRF9TRE1BMToKIAkJKnR5cGUgPSBHRlhfRldfVFlQRV9TRE1BMTsKIAkJYnJlYWs7CisJY2FzZSBBTURHUFVfVUNPREVfSURfU0RNQTI6CisJCSp0eXBlID0gR0ZYX0ZXX1RZUEVfU0RNQTI7CisJCWJyZWFrOworCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUEzOgorCQkqdHlwZSA9IEdGWF9GV19UWVBFX1NETUEzOworCQlicmVhazsKKwljYXNlIEFNREdQVV9VQ09ERV9JRF9TRE1BNDoKKwkJKnR5cGUgPSBHRlhfRldfVFlQRV9TRE1BNDsKKwkJYnJlYWs7CisJY2FzZSBBTURHUFVfVUNPREVfSURfU0RNQTU6CisJCSp0eXBlID0gR0ZYX0ZXX1RZUEVfU0RNQTU7CisJCWJyZWFrOworCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUE2OgorCQkqdHlwZSA9IEdGWF9GV19UWVBFX1NETUE2OworCQlicmVhazsKKwljYXNlIEFNREdQVV9VQ09ERV9JRF9TRE1BNzoKKwkJKnR5cGUgPSBHRlhfRldfVFlQRV9TRE1BNzsKKwkJYnJlYWs7CiAJY2FzZSBBTURHUFVfVUNPREVfSURfQ1BfQ0U6CiAJCSp0eXBlID0gR0ZYX0ZXX1RZUEVfQ1BfQ0U7CiAJCWJyZWFrOwpAQCAtOTIwLDYgKzk0Niw2MCBAQCBzdGF0aWMgaW50IHBzcF9nZXRfZndfdHlwZShzdHJ1Y3QgYW1kZ3B1X2Zpcm13YXJlX2luZm8gKnVjb2RlLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBwc3BfcHJpbnRfZndfaGRyKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwLAorCQkJICAgICBzdHJ1Y3QgYW1kZ3B1X2Zpcm13YXJlX2luZm8gKnVjb2RlKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcHNwLT5hZGV2OworCWNvbnN0IHN0cnVjdCBzZG1hX2Zpcm13YXJlX2hlYWRlcl92MV8wICpzZG1hX2hkciA9CisJCShjb25zdCBzdHJ1Y3Qgc2RtYV9maXJtd2FyZV9oZWFkZXJfdjFfMCAqKQorCQlhZGV2LT5zZG1hLmluc3RhbmNlW3Vjb2RlLT51Y29kZV9pZCAtIEFNREdQVV9VQ09ERV9JRF9TRE1BMF0uZnctPmRhdGE7CisJY29uc3Qgc3RydWN0IGdmeF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqY2VfaGRyID0KKwkJKGNvbnN0IHN0cnVjdCBnZnhfZmlybXdhcmVfaGVhZGVyX3YxXzAgKilhZGV2LT5nZnguY2VfZnctPmRhdGE7CisJY29uc3Qgc3RydWN0IGdmeF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqcGZwX2hkciA9CisJCShjb25zdCBzdHJ1Y3QgZ2Z4X2Zpcm13YXJlX2hlYWRlcl92MV8wICopYWRldi0+Z2Z4LnBmcF9mdy0+ZGF0YTsKKwljb25zdCBzdHJ1Y3QgZ2Z4X2Zpcm13YXJlX2hlYWRlcl92MV8wICptZV9oZHIgPQorCQkoY29uc3Qgc3RydWN0IGdmeF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqKWFkZXYtPmdmeC5tZV9mdy0+ZGF0YTsKKwljb25zdCBzdHJ1Y3QgZ2Z4X2Zpcm13YXJlX2hlYWRlcl92MV8wICptZWNfaGRyID0KKwkJKGNvbnN0IHN0cnVjdCBnZnhfZmlybXdhcmVfaGVhZGVyX3YxXzAgKilhZGV2LT5nZngubWVjX2Z3LT5kYXRhOworCWNvbnN0IHN0cnVjdCBybGNfZmlybXdhcmVfaGVhZGVyX3YyXzAgKnJsY19oZHIgPQorCQkoY29uc3Qgc3RydWN0IHJsY19maXJtd2FyZV9oZWFkZXJfdjJfMCAqKWFkZXYtPmdmeC5ybGNfZnctPmRhdGE7CisJY29uc3Qgc3RydWN0IHNtY19maXJtd2FyZV9oZWFkZXJfdjFfMCAqc21jX2hkciA9CisJCShjb25zdCBzdHJ1Y3Qgc21jX2Zpcm13YXJlX2hlYWRlcl92MV8wICopYWRldi0+cG0uZnctPmRhdGE7CisKKwlzd2l0Y2ggKHVjb2RlLT51Y29kZV9pZCkgeworCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUEwOgorCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUExOgorCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUEyOgorCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUEzOgorCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUE0OgorCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUE1OgorCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUE2OgorCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUE3OgorCQlhbWRncHVfdWNvZGVfcHJpbnRfc2RtYV9oZHIoJnNkbWFfaGRyLT5oZWFkZXIpOworCQlicmVhazsKKwljYXNlIEFNREdQVV9VQ09ERV9JRF9DUF9DRToKKwkJYW1kZ3B1X3Vjb2RlX3ByaW50X2dmeF9oZHIoJmNlX2hkci0+aGVhZGVyKTsKKwkJYnJlYWs7CisJY2FzZSBBTURHUFVfVUNPREVfSURfQ1BfUEZQOgorCQlhbWRncHVfdWNvZGVfcHJpbnRfZ2Z4X2hkcigmcGZwX2hkci0+aGVhZGVyKTsKKwkJYnJlYWs7CisJY2FzZSBBTURHUFVfVUNPREVfSURfQ1BfTUU6CisJCWFtZGdwdV91Y29kZV9wcmludF9nZnhfaGRyKCZtZV9oZHItPmhlYWRlcik7CisJCWJyZWFrOworCWNhc2UgQU1ER1BVX1VDT0RFX0lEX0NQX01FQzE6CisJCWFtZGdwdV91Y29kZV9wcmludF9nZnhfaGRyKCZtZWNfaGRyLT5oZWFkZXIpOworCQlicmVhazsKKwljYXNlIEFNREdQVV9VQ09ERV9JRF9STENfRzoKKwkJYW1kZ3B1X3Vjb2RlX3ByaW50X3JsY19oZHIoJnJsY19oZHItPmhlYWRlcik7CisJCWJyZWFrOworCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NNQzoKKwkJYW1kZ3B1X3Vjb2RlX3ByaW50X3NtY19oZHIoJnNtY19oZHItPmhlYWRlcik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KK30KKwogc3RhdGljIGludCBwc3BfcHJlcF9sb2FkX2lwX2Z3X2NtZF9idWYoc3RydWN0IGFtZGdwdV9maXJtd2FyZV9pbmZvICp1Y29kZSwKIAkJCQkgICAgICAgc3RydWN0IHBzcF9nZnhfY21kX3Jlc3AgKmNtZCkKIHsKQEAgLTk4MCwxNyArMTA2MCwzMSBAQCBzdGF0aWMgaW50IHBzcF9ucF9md19sb2FkKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQogCQlpZiAodWNvZGUtPnVjb2RlX2lkID09IEFNREdQVV9VQ09ERV9JRF9TTUMgJiYKIAkJICAgIChwc3Bfc211X3JlbG9hZF9xdWlyayhwc3ApIHx8IHBzcC0+YXV0b2xvYWRfc3VwcG9ydGVkKSkKIAkJCWNvbnRpbnVlOworCiAJCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYKIAkJICAgKHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfU0RNQTAKIAkJICAgIHx8IHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfU0RNQTEKKwkJICAgIHx8IHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfU0RNQTIKKwkJICAgIHx8IHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfU0RNQTMKKwkJICAgIHx8IHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfU0RNQTQKKwkJICAgIHx8IHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfU0RNQTUKKwkJICAgIHx8IHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfU0RNQTYKKwkJICAgIHx8IHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfU0RNQTcKIAkJICAgIHx8IHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfUkxDX0cpKQogCQkJLypza2lwIHVjb2RlIGxvYWRpbmcgaW4gU1JJT1YgVkYgKi8KIAkJCWNvbnRpbnVlOworCiAJCWlmIChwc3AtPmF1dG9sb2FkX3N1cHBvcnRlZCAmJgogCQkgICAgKHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfQ1BfTUVDMV9KVCB8fAogCQkgICAgIHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfQ1BfTUVDMl9KVCkpCiAJCQkvKiBza2lwIG1lYyBKVCB3aGVuIGF1dG9sb2FkIGlzIGVuYWJsZWQgKi8KIAkJCWNvbnRpbnVlOworCQkvKiBSZW5vaXIgb25seSBuZWVkcyB0byBsb2FkIG1lYyBqdW1wIHRhYmxlIG9uZSB0aW1lICovCisJCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9SRU5PSVIgJiYKKwkJICAgIHVjb2RlLT51Y29kZV9pZCA9PSBBTURHUFVfVUNPREVfSURfQ1BfTUVDMl9KVCkKKwkJCWNvbnRpbnVlOworCisJCXBzcF9wcmludF9md19oZHIocHNwLCB1Y29kZSk7CiAKIAkJcmV0ID0gcHNwX2V4ZWN1dGVfbnBfZndfbG9hZChwc3AsIHVjb2RlKTsKIAkJaWYgKHJldCkKQEAgLTExMTUsNiArMTIwOSw4IEBAIHN0YXRpYyBpbnQgcHNwX2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCXN0cnVjdCBwc3BfY29udGV4dCAqcHNwID0gJmFkZXYtPnBzcDsKKwl2b2lkICp0bXJfYnVmOworCXZvaWQgKipwcHRyOwogCiAJaWYgKGFkZXYtPmdtYy54Z21pLm51bV9waHlzaWNhbF9ub2RlcyA+IDEgJiYKIAkgICAgcHNwLT54Z21pX2NvbnRleHQuaW5pdGlhbGl6ZWQgPT0gMSkKQEAgLTExMjUsNyArMTIyMSw4IEBAIHN0YXRpYyBpbnQgcHNwX2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogCiAJcHNwX3JpbmdfZGVzdHJveShwc3AsIFBTUF9SSU5HX1RZUEVfX0tNKTsKIAotCWFtZGdwdV9ib19mcmVlX2tlcm5lbCgmcHNwLT50bXJfYm8sICZwc3AtPnRtcl9tY19hZGRyLCAmcHNwLT50bXJfYnVmKTsKKwlwcHRyID0gYW1kZ3B1X3NyaW92X3ZmKHBzcC0+YWRldikgPyAmdG1yX2J1ZiA6IE5VTEw7CisJYW1kZ3B1X2JvX2ZyZWVfa2VybmVsKCZwc3AtPnRtcl9ibywgJnBzcC0+dG1yX21jX2FkZHIsIHBwdHIpOwogCWFtZGdwdV9ib19mcmVlX2tlcm5lbCgmcHNwLT5md19wcmlfYm8sCiAJCQkgICAgICAmcHNwLT5md19wcmlfbWNfYWRkciwgJnBzcC0+ZndfcHJpX2J1Zik7CiAJYW1kZ3B1X2JvX2ZyZWVfa2VybmVsKCZwc3AtPmZlbmNlX2J1Zl9ibywKQEAgLTEzMjksMyArMTQyNiwxMiBAQCBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb24gcHNwX3YxMV8wX2lwX2Jsb2NrID0KIAkucmV2ID0gMCwKIAkuZnVuY3MgPSAmcHNwX2lwX2Z1bmNzLAogfTsKKworY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIHBzcF92MTJfMF9pcF9ibG9jayA9Cit7CisJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9QU1AsCisJLm1ham9yID0gMTIsCisJLm1pbm9yID0gMCwKKwkucmV2ID0gMCwKKwkuZnVuY3MgPSAmcHNwX2lwX2Z1bmNzLAorfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wc3AuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wc3AuaAppbmRleCBlMGZjMmE3Li5iYzA5NDdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHNwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BzcC5oCkBAIC05MCw3ICs5MCw2IEBAIHN0cnVjdCBwc3BfZnVuY3MKIAlpbnQgKCpyaW5nX2Rlc3Ryb3kpKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwLAogCQkJICAgIGVudW0gcHNwX3JpbmdfdHlwZSByaW5nX3R5cGUpOwogCWludCAoKmNtZF9zdWJtaXQpKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwLAotCQkJICBzdHJ1Y3QgYW1kZ3B1X2Zpcm13YXJlX2luZm8gKnVjb2RlLAogCQkJICB1aW50NjRfdCBjbWRfYnVmX21jX2FkZHIsIHVpbnQ2NF90IGZlbmNlX21jX2FkZHIsCiAJCQkgIGludCBpbmRleCk7CiAJYm9vbCAoKmNvbXBhcmVfc3JhbV9kYXRhKShzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCwKQEAgLTE3Miw3ICsxNzEsNiBAQCBzdHJ1Y3QgcHNwX2NvbnRleHQKIAkvKiB0bXIgYnVmZmVyICovCiAJc3RydWN0IGFtZGdwdV9ibwkJKnRtcl9ibzsKIAl1aW50NjRfdAkJCXRtcl9tY19hZGRyOwotCXZvaWQJCQkJKnRtcl9idWY7CiAKIAkvKiBhc2QgZmlybXdhcmUgYW5kIGJ1ZmZlciAqLwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZQkJKmFzZF9mdzsKQEAgLTIyMyw4ICsyMjEsOCBAQCBzdHJ1Y3QgYW1kZ3B1X3BzcF9mdW5jcyB7CiAjZGVmaW5lIHBzcF9yaW5nX2NyZWF0ZShwc3AsIHR5cGUpIChwc3ApLT5mdW5jcy0+cmluZ19jcmVhdGUoKHBzcCksICh0eXBlKSkKICNkZWZpbmUgcHNwX3Jpbmdfc3RvcChwc3AsIHR5cGUpIChwc3ApLT5mdW5jcy0+cmluZ19zdG9wKChwc3ApLCAodHlwZSkpCiAjZGVmaW5lIHBzcF9yaW5nX2Rlc3Ryb3kocHNwLCB0eXBlKSAoKHBzcCktPmZ1bmNzLT5yaW5nX2Rlc3Ryb3koKHBzcCksICh0eXBlKSkpCi0jZGVmaW5lIHBzcF9jbWRfc3VibWl0KHBzcCwgdWNvZGUsIGNtZF9tYywgZmVuY2VfbWMsIGluZGV4KSBcCi0JCShwc3ApLT5mdW5jcy0+Y21kX3N1Ym1pdCgocHNwKSwgKHVjb2RlKSwgKGNtZF9tYyksIChmZW5jZV9tYyksIChpbmRleCkpCisjZGVmaW5lIHBzcF9jbWRfc3VibWl0KHBzcCwgY21kX21jLCBmZW5jZV9tYywgaW5kZXgpIFwKKwkJKHBzcCktPmZ1bmNzLT5jbWRfc3VibWl0KChwc3ApLCAoY21kX21jKSwgKGZlbmNlX21jKSwgKGluZGV4KSkKICNkZWZpbmUgcHNwX2NvbXBhcmVfc3JhbV9kYXRhKHBzcCwgdWNvZGUsIHR5cGUpIFwKIAkJKHBzcCktPmZ1bmNzLT5jb21wYXJlX3NyYW1fZGF0YSgocHNwKSwgKHVjb2RlKSwgKHR5cGUpKQogI2RlZmluZSBwc3BfaW5pdF9taWNyb2NvZGUocHNwKSBcCkBAIC0yNzAsNiArMjY4LDcgQEAgZXh0ZXJuIGludCBwc3Bfd2FpdF9mb3Ioc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsIHVpbnQzMl90IHJlZ19pbmRleCwKIAkJCXVpbnQzMl90IGZpZWxkX3ZhbCwgdWludDMyX3QgbWFzaywgYm9vbCBjaGVja19jaGFuZ2VkKTsKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiBwc3BfdjEwXzBfaXBfYmxvY2s7CitleHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIHBzcF92MTJfMF9pcF9ibG9jazsKIAogaW50IHBzcF9ncHVfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogaW50IHBzcF91cGRhdGVfdmNuX3NyYW0oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBpbnN0X2lkeCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yYXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yYXMuYwppbmRleCBmYWM3YWEyLi4wMTZlYTI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmFzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Jhcy5jCkBAIC0zMCw3NCArMzAsNiBAQAogI2luY2x1ZGUgImFtZGdwdV9yYXMuaCIKICNpbmNsdWRlICJhbWRncHVfYXRvbWZpcm13YXJlLmgiCiAKLXN0cnVjdCByYXNfaWhfZGF0YSB7Ci0JLyogaW50ZXJydXB0IGJvdHRvbSBoYWxmICovCi0Jc3RydWN0IHdvcmtfc3RydWN0IGloX3dvcms7Ci0JaW50IGludXNlOwotCS8qIElQIGNhbGxiYWNrICovCi0JcmFzX2loX2NiIGNiOwotCS8qIGZ1bGwgb2YgZW50cmllcyAqLwotCXVuc2lnbmVkIGNoYXIgKnJpbmc7Ci0JdW5zaWduZWQgaW50IHJpbmdfc2l6ZTsKLQl1bnNpZ25lZCBpbnQgZWxlbWVudF9zaXplOwotCXVuc2lnbmVkIGludCBhbGlnbmVkX2VsZW1lbnRfc2l6ZTsKLQl1bnNpZ25lZCBpbnQgcnB0cjsKLQl1bnNpZ25lZCBpbnQgd3B0cjsKLX07Ci0KLXN0cnVjdCByYXNfZnNfZGF0YSB7Ci0JY2hhciBzeXNmc19uYW1lWzMyXTsKLQljaGFyIGRlYnVnZnNfbmFtZVszMl07Ci19OwotCi1zdHJ1Y3QgcmFzX2Vycl9kYXRhIHsKLQl1bnNpZ25lZCBsb25nIHVlX2NvdW50OwotCXVuc2lnbmVkIGxvbmcgY2VfY291bnQ7Ci19OwotCi1zdHJ1Y3QgcmFzX2Vycl9oYW5kbGVyX2RhdGEgewotCS8qIHBvaW50IHRvIGJhZCBwYWdlcyBhcnJheSAqLwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGxvbmcgYnA7Ci0JCXN0cnVjdCBhbWRncHVfYm8gKmJvOwotCX0gKmJwczsKLQkvKiB0aGUgY291bnQgb2YgZW50cmllcyAqLwotCWludCBjb3VudDsKLQkvKiB0aGUgc3BhY2UgY2FuIHBsYWNlIG5ldyBlbnRyaWVzICovCi0JaW50IHNwYWNlX2xlZnQ7Ci0JLyogbGFzdCByZXNlcnZlZCBlbnRyeSdzIGluZGV4ICsgMSAqLwotCWludCBsYXN0X3Jlc2VydmVkOwotfTsKLQotc3RydWN0IHJhc19tYW5hZ2VyIHsKLQlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiBoZWFkOwotCS8qIHJlZmVyZW5jZSBjb3VudCAqLwotCWludCB1c2U7Ci0JLyogcmFzIGJsb2NrIGxpbmsgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Ci0JLyogdGhlIGRldmljZSAqLwotCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2OwotCS8qIGRlYnVnZnMgKi8KLQlzdHJ1Y3QgZGVudHJ5ICplbnQ7Ci0JLyogc3lzZnMgKi8KLQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBzeXNmc19hdHRyOwotCWludCBhdHRyX2ludXNlOwotCi0JLyogZnMgbm9kZSBuYW1lICovCi0Jc3RydWN0IHJhc19mc19kYXRhIGZzX2RhdGE7Ci0KLQkvKiBJSCBkYXRhICovCi0Jc3RydWN0IHJhc19paF9kYXRhIGloX2RhdGE7Ci0KLQlzdHJ1Y3QgcmFzX2Vycl9kYXRhIGVycl9kYXRhOwotfTsKLQotc3RydWN0IHJhc19iYWRwYWdlIHsKLQl1bnNpZ25lZCBpbnQgYnA7Ci0JdW5zaWduZWQgaW50IHNpemU7Ci0JdW5zaWduZWQgaW50IGZsYWdzOwotfTsKLQogY29uc3QgY2hhciAqcmFzX2Vycm9yX3N0cmluZ1tdID0gewogCSJub25lIiwKIAkicGFyaXR5IiwKQEAgLTEzMCw2ICs2Miw5IEBAIGNvbnN0IGNoYXIgKnJhc19ibG9ja19zdHJpbmdbXSA9IHsKICNkZWZpbmUgQU1ER1BVX1JBU19GTEFHX0lOSVRfTkVFRF9SRVNFVAkJMgogI2RlZmluZSBSQVNfREVGQVVMVF9GTEFHUyAoQU1ER1BVX1JBU19GTEFHX0lOSVRfQllfVkJJT1MpCiAKKy8qIGluamVjdCBhZGRyZXNzIGlzIDUyIGJpdHMgKi8KKyNkZWZpbmUJUkFTX1VNQ19JTkpFQ1RfQUREUl9MSU1JVAkoMHgxVUxMIDw8IDUyKQorCiBzdGF0aWMgaW50IGFtZGdwdV9yYXNfcmVzZXJ2ZV92cmFtKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQl1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90IHNpemUsCiAJCXN0cnVjdCBhbWRncHVfYm8gKipib19wdHIpOwpAQCAtMTk2LDYgKzEzMSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Jhc19kZWJ1Z2ZzX2N0cmxfcGFyc2VfZGF0YShzdHJ1Y3QgZmlsZSAqZiwKIAljaGFyIGVycls5XSA9ICJ1ZSI7CiAJaW50IG9wID0gLTE7CiAJaW50IGJsb2NrX2lkOworCXVpbnQzMl90IHN1Yl9ibG9jazsKIAl1NjQgYWRkcmVzcywgdmFsdWU7CiAKIAlpZiAoKnBvcykKQEAgLTIyMywxNyArMTU5LDIzIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Jhc19kZWJ1Z2ZzX2N0cmxfcGFyc2VfZGF0YShzdHJ1Y3QgZmlsZSAqZiwKIAkJCXJldHVybiAtRUlOVkFMOwogCiAJCWRhdGEtPmhlYWQuYmxvY2sgPSBibG9ja19pZDsKLQkJZGF0YS0+aGVhZC50eXBlID0gbWVtY21wKCJ1ZSIsIGVyciwgMikgPT0gMCA/Ci0JCQlBTURHUFVfUkFTX0VSUk9SX19NVUxUSV9VTkNPUlJFQ1RBQkxFIDoKLQkJCUFNREdQVV9SQVNfRVJST1JfX1NJTkdMRV9DT1JSRUNUQUJMRTsKKwkJLyogb25seSB1ZSBhbmQgY2UgZXJyb3JzIGFyZSBzdXBwb3J0ZWQgKi8KKwkJaWYgKCFtZW1jbXAoInVlIiwgZXJyLCAyKSkKKwkJCWRhdGEtPmhlYWQudHlwZSA9IEFNREdQVV9SQVNfRVJST1JfX01VTFRJX1VOQ09SUkVDVEFCTEU7CisJCWVsc2UgaWYgKCFtZW1jbXAoImNlIiwgZXJyLCAyKSkKKwkJCWRhdGEtPmhlYWQudHlwZSA9IEFNREdQVV9SQVNfRVJST1JfX1NJTkdMRV9DT1JSRUNUQUJMRTsKKwkJZWxzZQorCQkJcmV0dXJuIC1FSU5WQUw7CisKIAkJZGF0YS0+b3AgPSBvcDsKIAogCQlpZiAob3AgPT0gMikgewotCQkJaWYgKHNzY2FuZihzdHIsICIlKnMgJSpzICUqcyAlbGx1ICVsbHUiLAotCQkJCQkJJmFkZHJlc3MsICZ2YWx1ZSkgIT0gMikKLQkJCQlpZiAoc3NjYW5mKHN0ciwgIiUqcyAlKnMgJSpzIDB4JWxseCAweCVsbHgiLAotCQkJCQkJCSZhZGRyZXNzLCAmdmFsdWUpICE9IDIpCisJCQlpZiAoc3NjYW5mKHN0ciwgIiUqcyAlKnMgJSpzICV1ICVsbHUgJWxsdSIsCisJCQkJCQkmc3ViX2Jsb2NrLCAmYWRkcmVzcywgJnZhbHVlKSAhPSAzKQorCQkJCWlmIChzc2NhbmYoc3RyLCAiJSpzICUqcyAlKnMgMHgleCAweCVsbHggMHglbGx4IiwKKwkJCQkJCQkmc3ViX2Jsb2NrLCAmYWRkcmVzcywgJnZhbHVlKSAhPSAzKQogCQkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCWRhdGEtPmhlYWQuc3ViX2Jsb2NrX2luZGV4ID0gc3ViX2Jsb2NrOwogCQkJZGF0YS0+aW5qZWN0LmFkZHJlc3MgPSBhZGRyZXNzOwogCQkJZGF0YS0+aW5qZWN0LnZhbHVlID0gdmFsdWU7CiAJCX0KQEAgLTI3OCw3ICsyMjAsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9yYXNfZGVidWdmc19jdHJsX3BhcnNlX2RhdGEoc3RydWN0IGZpbGUgKmYsCiAgKiB3cml0ZSB0aGUgc3RydWN0IHRvIHRoZSBjb250cm9sIG5vZGUuCiAgKgogICogYmFzaDoKLSAqIGVjaG8gb3AgYmxvY2sgW2Vycm9yIFthZGRyZXNzIHZhbHVlXV0gPiAuLi4vcmFzL3Jhc19jdHJsCisgKiBlY2hvIG9wIGJsb2NrIFtlcnJvciBbc3ViX2JsY29rIGFkZHJlc3MgdmFsdWVdXSA+IC4uLi9yYXMvcmFzX2N0cmwKICAqCW9wOiBkaXNhYmxlLCBlbmFibGUsIGluamVjdAogICoJCWRpc2FibGU6IG9ubHkgYmxvY2sgaXMgbmVlZGVkCiAgKgkJZW5hYmxlOiBibG9jayBhbmQgZXJyb3IgYXJlIG5lZWRlZApAQCAtMjg4LDEwICsyMzAsMTEgQEAgc3RhdGljIGludCBhbWRncHVfcmFzX2RlYnVnZnNfY3RybF9wYXJzZV9kYXRhKHN0cnVjdCBmaWxlICpmLAogICoJZXJyb3I6IHVlLCBjZQogICoJCXVlOiBtdWx0aV91bmNvcnJlY3RhYmxlCiAgKgkJY2U6IHNpbmdsZV9jb3JyZWN0YWJsZQorICoJc3ViX2Jsb2NrOiBzdWIgYmxvY2sgaW5kZXgsIHBhc3MgMCBpZiB0aGVyZSBpcyBubyBzdWIgYmxvY2sKICAqCiAgKiBoZXJlIGFyZSBzb21lIGV4YW1wbGVzIGZvciBiYXNoIGNvbW1hbmRzLAotICoJZWNobyBpbmplY3QgdW1jIHVlIDB4MCAweDAgPiAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC9yYXMvcmFzX2N0cmwKLSAqCWVjaG8gaW5qZWN0IHVtYyBjZSAwIDAgPiAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC9yYXMvcmFzX2N0cmwKKyAqCWVjaG8gaW5qZWN0IHVtYyB1ZSAweDAgMHgwIDB4MCA+IC9zeXMva2VybmVsL2RlYnVnL2RyaS8wL3Jhcy9yYXNfY3RybAorICoJZWNobyBpbmplY3QgdW1jIGNlIDAgMCAwID4gL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAvcmFzL3Jhc19jdHJsCiAgKgllY2hvIGRpc2FibGUgdW1jID4gL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAvcmFzL3Jhc19jdHJsCiAgKgogICogSG93IHRvIGNoZWNrIHRoZSByZXN1bHQ/CkBAIC0zMTAsNyArMjUzLDYgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3Jhc19kZWJ1Z2ZzX2N0cmxfd3JpdGUoc3RydWN0IGZpbGUgKmYsIGNvbnN0IGNoYXIgX191c2VyICoKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWZpbGVfaW5vZGUoZiktPmlfcHJpdmF0ZTsKIAlzdHJ1Y3QgcmFzX2RlYnVnX2lmIGRhdGE7Ci0Jc3RydWN0IGFtZGdwdV9ibyAqYm87CiAJaW50IHJldCA9IDA7CiAKIAlyZXQgPSBhbWRncHVfcmFzX2RlYnVnZnNfY3RybF9wYXJzZV9kYXRhKGYsIGJ1Ziwgc2l6ZSwgcG9zLCAmZGF0YSk7CkBAIC0zMjgsMTcgKzI3MCwxNCBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfcmFzX2RlYnVnZnNfY3RybF93cml0ZShzdHJ1Y3QgZmlsZSAqZiwgY29uc3QgY2hhciBfX3VzZXIgKgogCQlyZXQgPSBhbWRncHVfcmFzX2ZlYXR1cmVfZW5hYmxlKGFkZXYsICZkYXRhLmhlYWQsIDEpOwogCQlicmVhazsKIAljYXNlIDI6Ci0JCXJldCA9IGFtZGdwdV9yYXNfcmVzZXJ2ZV92cmFtKGFkZXYsCi0JCQkJZGF0YS5pbmplY3QuYWRkcmVzcywgUEFHRV9TSVpFLCAmYm8pOwotCQlpZiAocmV0KSB7Ci0JCQkvKiBhZGRyZXNzIHdhcyBvZmZzZXQsIG5vdyBpdCBpcyBhYnNvbHV0ZS4qLwotCQkJZGF0YS5pbmplY3QuYWRkcmVzcyArPSBhZGV2LT5nbWMudnJhbV9zdGFydDsKLQkJCWlmIChkYXRhLmluamVjdC5hZGRyZXNzID4gYWRldi0+Z21jLnZyYW1fZW5kKQotCQkJCWJyZWFrOwotCQl9IGVsc2UKLQkJCWRhdGEuaW5qZWN0LmFkZHJlc3MgPSBhbWRncHVfYm9fZ3B1X29mZnNldChibyk7CisJCWlmICgoZGF0YS5pbmplY3QuYWRkcmVzcyA+PSBhZGV2LT5nbWMubWNfdnJhbV9zaXplKSB8fAorCQkgICAgKGRhdGEuaW5qZWN0LmFkZHJlc3MgPj0gUkFTX1VNQ19JTkpFQ1RfQUREUl9MSU1JVCkpIHsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlicmVhazsKKwkJfQorCisJCS8qIGRhdGEuaW5qZWN0LmFkZHJlc3MgaXMgb2Zmc2V0IGluc3RlYWQgb2YgYWJzb2x1dGUgZ3B1IGFkZHJlc3MgKi8KIAkJcmV0ID0gYW1kZ3B1X3Jhc19lcnJvcl9pbmplY3QoYWRldiwgJmRhdGEuaW5qZWN0KTsKLQkJYW1kZ3B1X3Jhc19yZWxlYXNlX3ZyYW0oYWRldiwgJmJvKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVJTlZBTDsKQEAgLTY1NiwxNCArNTk1LDQ2IEBAIGludCBhbWRncHVfcmFzX2Vycm9yX3F1ZXJ5KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlzdHJ1Y3QgcmFzX3F1ZXJ5X2lmICppbmZvKQogewogCXN0cnVjdCByYXNfbWFuYWdlciAqb2JqID0gYW1kZ3B1X3Jhc19maW5kX29iaihhZGV2LCAmaW5mby0+aGVhZCk7CisJc3RydWN0IHJhc19lcnJfZGF0YSBlcnJfZGF0YSA9IHswLCAwLCAwLCBOVUxMfTsKIAogCWlmICghb2JqKQogCQlyZXR1cm4gLUVJTlZBTDsKLQkvKiBUT0RPIG1pZ2h0IHJlYWQgdGhlIHJlZ2lzdGVyIHRvIHJlYWQgdGhlIGNvdW50ICovCisKKwlzd2l0Y2ggKGluZm8tPmhlYWQuYmxvY2spIHsKKwljYXNlIEFNREdQVV9SQVNfQkxPQ0tfX1VNQzoKKwkJaWYgKGFkZXYtPnVtYy5mdW5jcy0+cXVlcnlfcmFzX2Vycm9yX2NvdW50KQorCQkJYWRldi0+dW1jLmZ1bmNzLT5xdWVyeV9yYXNfZXJyb3JfY291bnQoYWRldiwgJmVycl9kYXRhKTsKKwkJLyogdW1jIHF1ZXJ5X3Jhc19lcnJvcl9hZGRyZXNzIGlzIGFsc28gcmVzcG9uc2libGUgZm9yIGNsZWFyaW5nCisJCSAqIGVycm9yIHN0YXR1cworCQkgKi8KKwkJaWYgKGFkZXYtPnVtYy5mdW5jcy0+cXVlcnlfcmFzX2Vycm9yX2FkZHJlc3MpCisJCQlhZGV2LT51bWMuZnVuY3MtPnF1ZXJ5X3Jhc19lcnJvcl9hZGRyZXNzKGFkZXYsICZlcnJfZGF0YSk7CisJCWJyZWFrOworCWNhc2UgQU1ER1BVX1JBU19CTE9DS19fR0ZYOgorCQlpZiAoYWRldi0+Z2Z4LmZ1bmNzLT5xdWVyeV9yYXNfZXJyb3JfY291bnQpCisJCQlhZGV2LT5nZnguZnVuY3MtPnF1ZXJ5X3Jhc19lcnJvcl9jb3VudChhZGV2LCAmZXJyX2RhdGEpOworCQlicmVhazsKKwljYXNlIEFNREdQVV9SQVNfQkxPQ0tfX01NSFVCOgorCQlpZiAoYWRldi0+bW1odWJfZnVuY3MtPnF1ZXJ5X3Jhc19lcnJvcl9jb3VudCkKKwkJCWFkZXYtPm1taHViX2Z1bmNzLT5xdWVyeV9yYXNfZXJyb3JfY291bnQoYWRldiwgJmVycl9kYXRhKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJb2JqLT5lcnJfZGF0YS51ZV9jb3VudCArPSBlcnJfZGF0YS51ZV9jb3VudDsKKwlvYmotPmVycl9kYXRhLmNlX2NvdW50ICs9IGVycl9kYXRhLmNlX2NvdW50OwogCiAJaW5mby0+dWVfY291bnQgPSBvYmotPmVycl9kYXRhLnVlX2NvdW50OwogCWluZm8tPmNlX2NvdW50ID0gb2JqLT5lcnJfZGF0YS5jZV9jb3VudDsKIAorCWlmIChlcnJfZGF0YS5jZV9jb3VudCkKKwkJZGV2X2luZm8oYWRldi0+ZGV2LCAiJWxkIGNvcnJlY3RhYmxlIGVycm9ycyBkZXRlY3RlZCBpbiAlcyBibG9ja1xuIiwKKwkJCSBvYmotPmVycl9kYXRhLmNlX2NvdW50LCByYXNfYmxvY2tfc3RyKGluZm8tPmhlYWQuYmxvY2spKTsKKwlpZiAoZXJyX2RhdGEudWVfY291bnQpCisJCWRldl9pbmZvKGFkZXYtPmRldiwgIiVsZCB1bmNvcnJlY3RhYmxlIGVycm9ycyBkZXRlY3RlZCBpbiAlcyBibG9ja1xuIiwKKwkJCSBvYmotPmVycl9kYXRhLnVlX2NvdW50LCByYXNfYmxvY2tfc3RyKGluZm8tPmhlYWQuYmxvY2spKTsKKwogCXJldHVybiAwOwogfQogCkBAIC02ODQsMTMgKzY1NSwyMyBAQCBpbnQgYW1kZ3B1X3Jhc19lcnJvcl9pbmplY3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJaWYgKCFvYmopCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKGJsb2NrX2luZm8uYmxvY2tfaWQgIT0gVEFfUkFTX0JMT0NLX19VTUMpIHsKKwlzd2l0Y2ggKGluZm8tPmhlYWQuYmxvY2spIHsKKwljYXNlIEFNREdQVV9SQVNfQkxPQ0tfX0dGWDoKKwkJaWYgKGFkZXYtPmdmeC5mdW5jcy0+cmFzX2Vycm9yX2luamVjdCkKKwkJCXJldCA9IGFkZXYtPmdmeC5mdW5jcy0+cmFzX2Vycm9yX2luamVjdChhZGV2LCBpbmZvKTsKKwkJZWxzZQorCQkJcmV0ID0gLUVJTlZBTDsKKwkJYnJlYWs7CisJY2FzZSBBTURHUFVfUkFTX0JMT0NLX19VTUM6CisJY2FzZSBBTURHUFVfUkFTX0JMT0NLX19NTUhVQjoKKwkJcmV0ID0gcHNwX3Jhc190cmlnZ2VyX2Vycm9yKCZhZGV2LT5wc3AsICZibG9ja19pbmZvKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKIAkJRFJNX0lORk8oIiVzIGVycm9yIGluamVjdGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldFxuIiwKIAkJCSByYXNfYmxvY2tfc3RyKGluZm8tPmhlYWQuYmxvY2spKTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldCA9IC1FSU5WQUw7CiAJfQogCi0JcmV0ID0gcHNwX3Jhc190cmlnZ2VyX2Vycm9yKCZhZGV2LT5wc3AsICZibG9ja19pbmZvKTsKIAlpZiAocmV0KQogCQlEUk1fRVJST1IoIlJBUyBFUlJPUjogaW5qZWN0ICVzIGVycm9yIGZhaWxlZCByZXQgJWRcbiIsCiAJCQkJcmFzX2Jsb2NrX3N0cihpbmZvLT5oZWFkLmJsb2NrKSwKQEAgLTcwNyw3ICs2ODgsNyBAQCBpbnQgYW1kZ3B1X3Jhc19lcnJvcl9jdXJlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogfQogCiAvKiBnZXQgdGhlIHRvdGFsIGVycm9yIGNvdW50cyBvbiBhbGwgSVBzICovCi1pbnQgYW1kZ3B1X3Jhc19xdWVyeV9lcnJvcl9jb3VudChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKK3Vuc2lnbmVkIGxvbmcgYW1kZ3B1X3Jhc19xdWVyeV9lcnJvcl9jb3VudChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJYm9vbCBpc19jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3JhcyAqY29uID0gYW1kZ3B1X3Jhc19nZXRfY29udGV4dChhZGV2KTsKQEAgLTcxNSw3ICs2OTYsNyBAQCBpbnQgYW1kZ3B1X3Jhc19xdWVyeV9lcnJvcl9jb3VudChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlzdHJ1Y3QgcmFzX2Vycl9kYXRhIGRhdGEgPSB7MCwgMH07CiAKIAlpZiAoIWNvbikKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldHVybiAwOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShvYmosICZjb24tPmhlYWQsIG5vZGUpIHsKIAkJc3RydWN0IHJhc19xdWVyeV9pZiBpbmZvID0gewpAQCAtNzIzLDcgKzcwNCw3IEBAIGludCBhbWRncHVfcmFzX3F1ZXJ5X2Vycm9yX2NvdW50KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQl9OwogCiAJCWlmIChhbWRncHVfcmFzX2Vycm9yX3F1ZXJ5KGFkZXYsICZpbmZvKSkKLQkJCXJldHVybiAtRUlOVkFMOworCQkJcmV0dXJuIDA7CiAKIAkJZGF0YS5jZV9jb3VudCArPSBpbmZvLmNlX2NvdW50OwogCQlkYXRhLnVlX2NvdW50ICs9IGluZm8udWVfY291bnQ7CkBAIC04MTIsMzIgKzc5Myw4IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9yYXNfc3lzZnNfZmVhdHVyZXNfcmVhZChzdHJ1Y3QgZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IGFtZGdwdV9yYXMgKmNvbiA9CiAJCWNvbnRhaW5lcl9vZihhdHRyLCBzdHJ1Y3QgYW1kZ3B1X3JhcywgZmVhdHVyZXNfYXR0cik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCByYXNfY29tbW9uX2lmIGhlYWQ7Ci0JaW50IHJhc19ibG9ja19jb3VudCA9IEFNREdQVV9SQVNfQkxPQ0tfQ09VTlQ7Ci0JaW50IGk7Ci0Jc3NpemVfdCBzOwotCXN0cnVjdCByYXNfbWFuYWdlciAqb2JqOwogCi0JcyA9IHNjbnByaW50ZihidWYsIFBBR0VfU0laRSwgImZlYXR1cmUgbWFzazogMHgleFxuIiwgY29uLT5mZWF0dXJlcyk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgcmFzX2Jsb2NrX2NvdW50OyBpKyspIHsKLQkJaGVhZC5ibG9jayA9IGk7Ci0KLQkJaWYgKGFtZGdwdV9yYXNfaXNfZmVhdHVyZV9lbmFibGVkKGFkZXYsICZoZWFkKSkgewotCQkJb2JqID0gYW1kZ3B1X3Jhc19maW5kX29iaihhZGV2LCAmaGVhZCk7Ci0JCQlzICs9IHNjbnByaW50ZigmYnVmW3NdLCBQQUdFX1NJWkUgLSBzLAotCQkJCQkiJXM6ICVzXG4iLAotCQkJCQlyYXNfYmxvY2tfc3RyKGkpLAotCQkJCQlyYXNfZXJyX3N0cihvYmotPmhlYWQudHlwZSkpOwotCQl9IGVsc2UKLQkJCXMgKz0gc2NucHJpbnRmKCZidWZbc10sIFBBR0VfU0laRSAtIHMsCi0JCQkJCSIlczogZGlzYWJsZWRcbiIsCi0JCQkJCXJhc19ibG9ja19zdHIoaSkpOwotCX0KLQotCXJldHVybiBzOworCXJldHVybiBzY25wcmludGYoYnVmLCBQQUdFX1NJWkUsICJmZWF0dXJlIG1hc2s6IDB4JXhcbiIsIGNvbi0+ZmVhdHVyZXMpOwogfQogCiBzdGF0aWMgaW50IGFtZGdwdV9yYXNfc3lzZnNfY3JlYXRlX2ZlYXR1cmVfbm9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKQEAgLTEwNTQsNiArMTAxMSw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9yYXNfaW50ZXJydXB0X2hhbmRsZXIoc3RydWN0IHJhc19tYW5hZ2VyICpvYmopCiAJc3RydWN0IHJhc19paF9kYXRhICpkYXRhID0gJm9iai0+aWhfZGF0YTsKIAlzdHJ1Y3QgYW1kZ3B1X2l2X2VudHJ5IGVudHJ5OwogCWludCByZXQ7CisJc3RydWN0IHJhc19lcnJfZGF0YSBlcnJfZGF0YSA9IHswLCAwLCAwLCBOVUxMfTsKIAogCXdoaWxlIChkYXRhLT5ycHRyICE9IGRhdGEtPndwdHIpIHsKIAkJcm1iKCk7CkBAIC0xMDY4LDE5ICsxMDI2LDE5IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9yYXNfaW50ZXJydXB0X2hhbmRsZXIoc3RydWN0IHJhc19tYW5hZ2VyICpvYmopCiAJCSAqIGZyb20gdGhlIGNhbGxiYWNrIHRvIHVkcGF0ZSB0aGUgZXJyb3IgdHlwZS9jb3VudCwgZXRjCiAJCSAqLwogCQlpZiAoZGF0YS0+Y2IpIHsKLQkJCXJldCA9IGRhdGEtPmNiKG9iai0+YWRldiwgJmVudHJ5KTsKKwkJCXJldCA9IGRhdGEtPmNiKG9iai0+YWRldiwgJmVycl9kYXRhLCAmZW50cnkpOwogCQkJLyogdWUgd2lsbCB0cmlnZ2VyIGFuIGludGVycnVwdCwgYW5kIGluIHRoYXQgY2FzZQogCQkJICogd2UgbmVlZCBkbyBhIHJlc2V0IHRvIHJlY292ZXJ5IHRoZSB3aG9sZSBzeXN0ZW0uCiAJCQkgKiBCdXQgbGVhdmUgSVAgZG8gdGhhdCByZWNvdmVyeSwgaGVyZSB3ZSBqdXN0IGRpc3BhdGNoCiAJCQkgKiB0aGUgZXJyb3IuCiAJCQkgKi8KLQkJCWlmIChyZXQgPT0gQU1ER1BVX1JBU19VRSkgewotCQkJCW9iai0+ZXJyX2RhdGEudWVfY291bnQrKzsKKwkJCWlmIChyZXQgPT0gQU1ER1BVX1JBU19TVUNDRVNTKSB7CisJCQkJLyogdGhlc2UgY291bnRzIGNvdWxkIGJlIGxlZnQgYXMgMCBpZgorCQkJCSAqIHNvbWUgYmxvY2tzIGRvIG5vdCBjb3VudCBlcnJvciBudW1iZXIKKwkJCQkgKi8KKwkJCQlvYmotPmVycl9kYXRhLnVlX2NvdW50ICs9IGVycl9kYXRhLnVlX2NvdW50OworCQkJCW9iai0+ZXJyX2RhdGEuY2VfY291bnQgKz0gZXJyX2RhdGEuY2VfY291bnQ7CiAJCQl9Ci0JCQkvKiBNaWdodCBuZWVkIGdldCBjZSBjb3VudCBieSByZWdpc3RlciwgYnV0IG5vdCBhbGwgSVAKLQkJCSAqIHNhdmVzIGNlIGNvdW50LCBzb21lIElQIGp1c3QgdXNlIG9uZSBiaXQgb3IgdHdvIGJpdHMKLQkJCSAqIHRvIGluZGljYXRlIGNlIGhhcHBlbmVkLgotCQkJICovCiAJCX0KIAl9CiB9CkBAIC0xNTc3LDYgKzE1MzUsMTAgQEAgaW50IGFtZGdwdV9yYXNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpZiAoYW1kZ3B1X3Jhc19mc19pbml0KGFkZXYpKQogCQlnb3RvIGZzX291dDsKIAorCS8qIHJhcyBpbml0IGZvciBlYWNoIHJhcyBibG9jayAqLworCWlmIChhZGV2LT51bWMuZnVuY3MtPnJhc19pbml0KQorCQlhZGV2LT51bWMuZnVuY3MtPnJhc19pbml0KGFkZXYpOworCiAJRFJNX0lORk8oIlJBUyBJTkZPOiByYXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5LCAiCiAJCQkiaGFyZHdhcmUgYWJpbGl0eVsleF0gcmFzX21hc2tbJXhdXG4iLAogCQkJY29uLT5od19zdXBwb3J0ZWQsIGNvbi0+c3VwcG9ydGVkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yYXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yYXMuaAppbmRleCBiMjg0MTE5Li42Yzc2YmIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmFzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Jhcy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiYW1kZ3B1LmgiCiAjaW5jbHVkZSAiYW1kZ3B1X3BzcC5oIgogI2luY2x1ZGUgInRhX3Jhc19pZi5oIgorI2luY2x1ZGUgImFtZGdwdV9yYXNfZWVwcm9tLmgiCiAKIGVudW0gYW1kZ3B1X3Jhc19ibG9jayB7CiAJQU1ER1BVX1JBU19CTE9DS19fVU1DID0gMCwKQEAgLTUyLDYgKzUzLDIzNiBAQCBlbnVtIGFtZGdwdV9yYXNfYmxvY2sgewogI2RlZmluZSBBTURHUFVfUkFTX0JMT0NLX0NPVU5UCUFNREdQVV9SQVNfQkxPQ0tfX0xBU1QKICNkZWZpbmUgQU1ER1BVX1JBU19CTE9DS19NQVNLCSgoMVVMTCA8PCBBTURHUFVfUkFTX0JMT0NLX0NPVU5UKSAtIDEpCiAKK2VudW0gYW1kZ3B1X3Jhc19nZnhfc3ViYmxvY2sgeworCS8qIENQQyAqLworCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9DUENfSU5ERVhfU1RBUlQgPSAwLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9DUENfU0NSQVRDSCA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9DUENfSU5ERVhfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0NQQ19VQ09ERSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRENfU1RBVEVfTUUxLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9EQ19DU0lOVk9DX01FMSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRENfUkVTVE9SRV9NRTEsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0RDX1NUQVRFX01FMiwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRENfQ1NJTlZPQ19NRTIsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0RDX1JFU1RPUkVfTUUyLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9DUENfSU5ERVhfRU5EID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0RDX1JFU1RPUkVfTUUyLAorCS8qIENQRiAqLworCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9DUEZfSU5ERVhfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0NQRl9ST1FfTUUyID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0NQRl9JTkRFWF9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfQ1BGX1JPUV9NRTEsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0NQRl9UQUcsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0NQRl9JTkRFWF9FTkQgPSBBTURHUFVfUkFTX0JMT0NLX19HRlhfQ1BGX1RBRywKKwkvKiBDUEcgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfQ1BHX0lOREVYX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9DUEdfRE1BX1JPUSA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9DUEdfSU5ERVhfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0NQR19ETUFfVEFHLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9DUEdfVEFHLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9DUEdfSU5ERVhfRU5EID0gQU1ER1BVX1JBU19CTE9DS19fR0ZYX0NQR19UQUcsCisJLyogR0RTICovCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0dEU19JTkRFWF9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfR0RTX01FTSA9IEFNREdQVV9SQVNfQkxPQ0tfX0dGWF9HRFNfSU5ERVhfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0dEU19JTlBVVF9RVUVVRSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfR0RTX09BX1BIWV9DTURfUkFNX01FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfR0RTX09BX1BIWV9EQVRBX1JBTV9NRU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0dEU19PQV9QSVBFX01FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfR0RTX0lOREVYX0VORCA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9HRFNfT0FfUElQRV9NRU0sCisJLyogU1BJICovCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NQSV9TUl9NRU0sCisJLyogU1EgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FfSU5ERVhfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRX1NHUFIgPSBBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FfSU5ERVhfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRX0xEU19ELAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUV9MRFNfSSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FfVkdQUiwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FfSU5ERVhfRU5EID0gQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRX1ZHUFIsCisJLyogU1FDICgzIHJhbmdlcykgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0lOREVYX1NUQVJULAorCS8qIFNRQyByYW5nZSAwICovCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDBfU1RBUlQgPQorCQlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0lOREVYX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5TVF9VVENMMV9MRklGTyA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5ERVgwX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9DVTBfV1JJVEVfREFUQV9CVUYsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0NVMF9VVENMMV9MRklGTywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQ1UxX1dSSVRFX0RBVEFfQlVGLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9DVTFfVVRDTDFfTEZJRk8sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0NVMl9XUklURV9EQVRBX0JVRiwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQ1UyX1VUQ0wxX0xGSUZPLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5ERVgwX0VORCA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9DVTJfVVRDTDFfTEZJRk8sCisJLyogU1FDIHJhbmdlIDEgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0lOREVYMV9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0lOU1RfQkFOS0FfVEFHX1JBTSA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5ERVgxX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5TVF9CQU5LQV9VVENMMV9NSVNTX0ZJRk8sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19JTlNUX0JBTktBX01JU1NfRklGTywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0lOU1RfQkFOS0FfQkFOS19SQU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktBX1RBR19SQU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktBX0hJVF9GSUZPLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9CQU5LQV9NSVNTX0ZJRk8sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktBX0RJUlRZX0JJVF9SQU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktBX0JBTktfUkFNLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5ERVgxX0VORCA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9CQU5LQV9CQU5LX1JBTSwKKwkvKiBTUUMgcmFuZ2UgMiAqLworCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5ERVgyX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5TVF9CQU5LQl9UQUdfUkFNID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDJfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19JTlNUX0JBTktCX1VUQ0wxX01JU1NfRklGTywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0lOU1RfQkFOS0JfTUlTU19GSUZPLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5TVF9CQU5LQl9CQU5LX1JBTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQkFOS0JfVEFHX1JBTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQkFOS0JfSElUX0ZJRk8sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktCX01JU1NfRklGTywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQkFOS0JfRElSVFlfQklUX1JBTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQkFOS0JfQkFOS19SQU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDJfRU5EID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktCX0JBTktfUkFNLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5ERVhfRU5EID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDJfRU5ELAorCS8qIFRBICovCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RBX0lOREVYX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQV9GU19ERklGTyA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQV9JTkRFWF9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVEFfRlNfQUZJRk8sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RBX0ZMX0xGSUZPLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQV9GWF9MRklGTywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVEFfRlNfQ0ZJRk8sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RBX0lOREVYX0VORCA9IEFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQV9GU19DRklGTywKKwkvKiBUQ0EgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENBX0lOREVYX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0FfSE9MRV9GSUZPID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQV9JTkRFWF9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENBX1JFUV9GSUZPLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0FfSU5ERVhfRU5EID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQV9SRVFfRklGTywKKwkvKiBUQ0MgKDUgc3ViLXJhbmdlcykgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYX1NUQVJULAorCS8qIFRDQyByYW5nZSAwICovCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDBfU1RBUlQgPQorCQlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfQ0FDSEVfREFUQSA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVgwX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfQ0FDSEVfREFUQV9CQU5LXzBfMSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0NBQ0hFX0RBVEFfQkFOS18xXzAsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19DQUNIRV9EQVRBX0JBTktfMV8xLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfQ0FDSEVfRElSVFlfQkFOS18wLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfQ0FDSEVfRElSVFlfQkFOS18xLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSElHSF9SQVRFX1RBRywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0xPV19SQVRFX1RBRywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYMF9FTkQgPQorCQlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0xPV19SQVRFX1RBRywKKwkvKiBUQ0MgcmFuZ2UgMSAqLworCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVgxX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5fVVNFX0RFQyA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVgxX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5fVVNFX1RSQU5TRkVSLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVgxX0VORCA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5fVVNFX1RSQU5TRkVSLAorCS8qIFRDQyByYW5nZSAyICovCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDJfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19SRVRVUk5fREFUQSA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVgyX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfUkVUVVJOX0NPTlRST0wsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19VQ19BVE9NSUNfRklGTywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX1dSSVRFX1JFVFVSTiwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX1dSSVRFX0NBQ0hFX1JFQUQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19TUkNfRklGTywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX1NSQ19GSUZPX05FWFRfUkFNLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfQ0FDSEVfVEFHX1BST0JFX0ZJRk8sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDJfRU5EID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19DQUNIRV9UQUdfUFJPQkVfRklGTywKKwkvKiBUQ0MgcmFuZ2UgMyAqLworCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVgzX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfTEFURU5DWV9GSUZPID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDNfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19MQVRFTkNZX0ZJRk9fTkVYVF9SQU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDNfRU5EID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19MQVRFTkNZX0ZJRk9fTkVYVF9SQU0sCisJLyogVENDIHJhbmdlIDQgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYNF9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX1dSUkVUX1RBR19XUklURV9SRVRVUk4gPQorCQlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYNF9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0FUT01JQ19SRVRVUk5fQlVGRkVSLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVg0X0VORCA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfQVRPTUlDX1JFVFVSTl9CVUZGRVIsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWF9FTkQgPQorCQlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYNF9FTkQsCisJLyogVENJICovCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDSV9XUklURV9SQU0sCisJLyogVENQICovCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDUF9JTkRFWF9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENQX0NBQ0hFX1JBTSA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ1BfSU5ERVhfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDUF9MRklGT19SQU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDUF9DTURfRklGTywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENQX1ZNX0ZJRk8sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDUF9EQl9SQU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDUF9VVENMMV9MRklGTzAsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDUF9VVENMMV9MRklGTzEsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDUF9JTkRFWF9FTkQgPQorCQlBTURHUFVfUkFTX0JMT0NLX19HRlhfVENQX1VUQ0wxX0xGSUZPMSwKKwkvKiBURCAqLworCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9URF9JTkRFWF9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVERfU1NfRklGT19MTyA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9URF9JTkRFWF9TVEFSVCwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVERfU1NfRklGT19ISSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVERfQ1NfRklGTywKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfVERfSU5ERVhfRU5EID0gQU1ER1BVX1JBU19CTE9DS19fR0ZYX1REX0NTX0ZJRk8sCisJLyogRUEgKDMgc3ViLXJhbmdlcykgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVhfU1RBUlQsCisJLyogRUEgcmFuZ2UgMCAqLworCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9JTkRFWDBfU1RBUlQgPQorCQlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVhfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0VBX0RSQU1SRF9DTURNRU0gPQorCQlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVgwX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9EUkFNV1JfQ01ETUVNLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9EUkFNV1JfREFUQU1FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfUlJFVF9UQUdNRU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0VBX1dSRVRfVEFHTUVNLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9HTUlSRF9DTURNRU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0VBX0dNSVdSX0NNRE1FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfR01JV1JfREFUQU1FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVgwX0VORCA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9HTUlXUl9EQVRBTUVNLAorCS8qIEVBIHJhbmdlIDEgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVgxX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9EUkFNUkRfUEFHRU1FTSA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9JTkRFWDFfU1RBUlQsCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0VBX0RSQU1XUl9QQUdFTUVNLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9JT1JEX0NNRE1FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU9XUl9DTURNRU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0VBX0lPV1JfREFUQU1FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfR01JUkRfUEFHRU1FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfR01JV1JfUEFHRU1FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVgxX0VORCA9CisJCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9HTUlXUl9QQUdFTUVNLAorCS8qIEVBIHJhbmdlIDIgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVgyX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9NQU1fRDBNRU0gPQorCQlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVgyX1NUQVJULAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9NQU1fRDFNRU0sCisJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0VBX01BTV9EMk1FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfTUFNX0QzTUVNLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9FQV9JTkRFWDJfRU5EID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0VBX01BTV9EM01FTSwKKwlBTURHUFVfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVhfRU5EID0KKwkJQU1ER1BVX1JBU19CTE9DS19fR0ZYX0VBX0lOREVYMl9FTkQsCisJLyogVVRDIFZNIEwyIGJhbmsgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19VVENfVk1MMl9CQU5LX0NBQ0hFLAorCS8qIFVUQyBWTSB3YWxrZXIgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19VVENfVk1MMl9XQUxLRVIsCisJLyogVVRDIEFUQyBMMiAyTUIgY2FjaGUgKi8KKwlBTURHUFVfUkFTX0JMT0NLX19VVENfQVRDTDJfQ0FDSEVfMk1fQkFOSywKKwkvKiBVVEMgQVRDIEwyIDRLQiBjYWNoZSAqLworCUFNREdQVV9SQVNfQkxPQ0tfX1VUQ19BVENMMl9DQUNIRV80S19CQU5LLAorCUFNREdQVV9SQVNfQkxPQ0tfX0dGWF9NQVgKK307CisKIGVudW0gYW1kZ3B1X3Jhc19lcnJvcl90eXBlIHsKIAlBTURHUFVfUkFTX0VSUk9SX19OT05FCQkJCQkJCT0gMCwKIAlBTURHUFVfUkFTX0VSUk9SX19QQVJJVFkJCQkJCQk9IDEsCkBAIC03Niw5ICszMDcsNiBAQCBzdHJ1Y3QgcmFzX2NvbW1vbl9pZiB7CiAJY2hhciBuYW1lWzMyXTsKIH07CiAKLXR5cGVkZWYgaW50ICgqcmFzX2loX2NiKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpOwotCiBzdHJ1Y3QgYW1kZ3B1X3JhcyB7CiAJLyogcmFzIGluZnJhc3RydWN0dXJlICovCiAJLyogZm9yIHJhcyBpdHNlbGYuICovCkBAIC0xMDYsMTAgKzMzNCw4NSBAQCBzdHJ1Y3QgYW1kZ3B1X3JhcyB7CiAJc3RydWN0IG11dGV4IHJlY292ZXJ5X2xvY2s7CiAKIAl1aW50MzJfdCBmbGFnczsKKworCXN0cnVjdCBhbWRncHVfcmFzX2VlcHJvbV9jb250cm9sIGVlcHJvbV9jb250cm9sOworfTsKKworc3RydWN0IHJhc19mc19kYXRhIHsKKwljaGFyIHN5c2ZzX25hbWVbMzJdOworCWNoYXIgZGVidWdmc19uYW1lWzMyXTsKK307CisKK3N0cnVjdCByYXNfZXJyX2RhdGEgeworCXVuc2lnbmVkIGxvbmcgdWVfY291bnQ7CisJdW5zaWduZWQgbG9uZyBjZV9jb3VudDsKKwl1bnNpZ25lZCBsb25nIGVycl9hZGRyX2NudDsKKwl1aW50NjRfdCAqZXJyX2FkZHI7Cit9OworCitzdHJ1Y3QgcmFzX2Vycl9oYW5kbGVyX2RhdGEgeworCS8qIHBvaW50IHRvIGJhZCBwYWdlcyBhcnJheSAqLworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGxvbmcgYnA7CisJCXN0cnVjdCBhbWRncHVfYm8gKmJvOworCX0gKmJwczsKKwkvKiB0aGUgY291bnQgb2YgZW50cmllcyAqLworCWludCBjb3VudDsKKwkvKiB0aGUgc3BhY2UgY2FuIHBsYWNlIG5ldyBlbnRyaWVzICovCisJaW50IHNwYWNlX2xlZnQ7CisJLyogbGFzdCByZXNlcnZlZCBlbnRyeSdzIGluZGV4ICsgMSAqLworCWludCBsYXN0X3Jlc2VydmVkOworfTsKKwordHlwZWRlZiBpbnQgKCpyYXNfaWhfY2IpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQlzdHJ1Y3QgcmFzX2Vycl9kYXRhICplcnJfZGF0YSwKKwkJc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpOworCitzdHJ1Y3QgcmFzX2loX2RhdGEgeworCS8qIGludGVycnVwdCBib3R0b20gaGFsZiAqLworCXN0cnVjdCB3b3JrX3N0cnVjdCBpaF93b3JrOworCWludCBpbnVzZTsKKwkvKiBJUCBjYWxsYmFjayAqLworCXJhc19paF9jYiBjYjsKKwkvKiBmdWxsIG9mIGVudHJpZXMgKi8KKwl1bnNpZ25lZCBjaGFyICpyaW5nOworCXVuc2lnbmVkIGludCByaW5nX3NpemU7CisJdW5zaWduZWQgaW50IGVsZW1lbnRfc2l6ZTsKKwl1bnNpZ25lZCBpbnQgYWxpZ25lZF9lbGVtZW50X3NpemU7CisJdW5zaWduZWQgaW50IHJwdHI7CisJdW5zaWduZWQgaW50IHdwdHI7Cit9OworCitzdHJ1Y3QgcmFzX21hbmFnZXIgeworCXN0cnVjdCByYXNfY29tbW9uX2lmIGhlYWQ7CisJLyogcmVmZXJlbmNlIGNvdW50ICovCisJaW50IHVzZTsKKwkvKiByYXMgYmxvY2sgbGluayAqLworCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKKwkvKiB0aGUgZGV2aWNlICovCisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXY7CisJLyogZGVidWdmcyAqLworCXN0cnVjdCBkZW50cnkgKmVudDsKKwkvKiBzeXNmcyAqLworCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIHN5c2ZzX2F0dHI7CisJaW50IGF0dHJfaW51c2U7CisKKwkvKiBmcyBub2RlIG5hbWUgKi8KKwlzdHJ1Y3QgcmFzX2ZzX2RhdGEgZnNfZGF0YTsKKworCS8qIElIIGRhdGEgKi8KKwlzdHJ1Y3QgcmFzX2loX2RhdGEgaWhfZGF0YTsKKworCXN0cnVjdCByYXNfZXJyX2RhdGEgZXJyX2RhdGE7Cit9OworCitzdHJ1Y3QgcmFzX2JhZHBhZ2UgeworCXVuc2lnbmVkIGludCBicDsKKwl1bnNpZ25lZCBpbnQgc2l6ZTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7CiB9OwogCiAvKiBpbnRlcmZhY2VzIGZvciBJUCAqLwotCiBzdHJ1Y3QgcmFzX2ZzX2lmIHsKIAlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiBoZWFkOwogCWNoYXIgc3lzZnNfbmFtZVszMl07CkBAIC0xODQsNyArNDg3LDcgQEAgaW50IGFtZGdwdV9yYXNfcmVxdWVzdF9yZXNldF9vbl9ib290KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogdm9pZCBhbWRncHVfcmFzX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiB2b2lkIGFtZGdwdV9yYXNfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAKLWludCBhbWRncHVfcmFzX3F1ZXJ5X2Vycm9yX2NvdW50KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAordW5zaWduZWQgbG9uZyBhbWRncHVfcmFzX3F1ZXJ5X2Vycm9yX2NvdW50KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlib29sIGlzX2NlKTsKIAogLyogZXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25zICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmFzX2VlcHJvbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Jhc19lZXByb20uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTMyYjVjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Jhc19lZXByb20uYwpAQCAtMCwwICsxLDQ5MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImFtZGdwdV9yYXNfZWVwcm9tLmgiCisjaW5jbHVkZSAiYW1kZ3B1LmgiCisjaW5jbHVkZSAiYW1kZ3B1X3Jhcy5oIgorI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4KKyNpbmNsdWRlICJzbXVfdjExXzBfaTJjLmgiCisKKyNkZWZpbmUgRUVQUk9NX0kyQ19UQVJHRVRfQUREUiAweEEwCisKKy8qCisgKiBUaGUgMiBtYWNyb3MgYmVsbG93IHJlcHJlc2VudCB0aGUgYWN0dWFsIHNpemUgaW4gYnl0ZXMgdGhhdAorICogdGhvc2UgZW50aXRpZXMgb2NjdXB5IGluIHRoZSBFRVBST00gbWVtb3J5LgorICogRUVQUk9NX1RBQkxFX1JFQ09SRF9TSVpFIGlzIGRpZmZlcmVudCB0aGFuIHNpemVvZihlZXByb21fdGFibGVfcmVjb3JkKSB3aGljaAorICogdXNlcyB1aW50NjQgdG8gc3RvcmUgNmIgZmllbGRzIHN1Y2ggYXMgcmV0aXJlZF9wYWdlLgorICovCisjZGVmaW5lIEVFUFJPTV9UQUJMRV9IRUFERVJfU0laRSAyMAorI2RlZmluZSBFRVBST01fVEFCTEVfUkVDT1JEX1NJWkUgMjQKKworI2RlZmluZSBFRVBST01fQUREUkVTU19TSVpFIDB4MgorCisvKiBUYWJsZSBoZHIgaXMgJ0FNRFInICovCisjZGVmaW5lIEVFUFJPTV9UQUJMRV9IRFJfVkFMIDB4NDE0ZDQ0NTIKKyNkZWZpbmUgRUVQUk9NX1RBQkxFX1ZFUiAweDAwMDEwMDAwCisKKy8qIEFzc3VtZSAyIE1iaXQgc2l6ZSAqLworI2RlZmluZSBFRVBST01fU0laRV9CWVRFUyAyNTYwMDAKKyNkZWZpbmUgRUVQUk9NX1BBR0VfX1NJWkVfQllURVMgMjU2CisjZGVmaW5lIEVFUFJPTV9IRFJfU1RBUlQgMAorI2RlZmluZSBFRVBST01fUkVDT1JEX1NUQVJUIChFRVBST01fSERSX1NUQVJUICsgRUVQUk9NX1RBQkxFX0hFQURFUl9TSVpFKQorI2RlZmluZSBFRVBST01fTUFYX1JFQ09SRF9OVU0gKChFRVBST01fU0laRV9CWVRFUyAtIEVFUFJPTV9UQUJMRV9IRUFERVJfU0laRSkgLyBFRVBST01fVEFCTEVfUkVDT1JEX1NJWkUpCisjZGVmaW5lIEVFUFJPTV9BRERSX01TQl9NQVNLIEdFTk1BU0soMTcsIDgpCisKKyNkZWZpbmUgdG9fYW1kZ3B1X2RldmljZSh4KSAoY29udGFpbmVyX29mKHgsIHN0cnVjdCBhbWRncHVfcmFzLCBlZXByb21fY29udHJvbCkpLT5hZGV2CisKK3N0YXRpYyB2b2lkIF9fZW5jb2RlX3RhYmxlX2hlYWRlcl90b19idWZmKHN0cnVjdCBhbWRncHVfcmFzX2VlcHJvbV90YWJsZV9oZWFkZXIgKmhkciwKKwkJCQkJICB1bnNpZ25lZCBjaGFyICpidWZmKQoreworCXVpbnQzMl90ICpwcCA9ICh1aW50MzJfdCAqKSBidWZmOworCisJcHBbMF0gPSBjcHVfdG9fbGUzMihoZHItPmhlYWRlcik7CisJcHBbMV0gPSBjcHVfdG9fbGUzMihoZHItPnZlcnNpb24pOworCXBwWzJdID0gY3B1X3RvX2xlMzIoaGRyLT5maXJzdF9yZWNfb2Zmc2V0KTsKKwlwcFszXSA9IGNwdV90b19sZTMyKGhkci0+dGJsX3NpemUpOworCXBwWzRdID0gY3B1X3RvX2xlMzIoaGRyLT5jaGVja3N1bSk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZGVjb2RlX3RhYmxlX2hlYWRlcl9mcm9tX2J1ZmYoc3RydWN0IGFtZGdwdV9yYXNfZWVwcm9tX3RhYmxlX2hlYWRlciAqaGRyLAorCQkJCQkgIHVuc2lnbmVkIGNoYXIgKmJ1ZmYpCit7CisJdWludDMyX3QgKnBwID0gKHVpbnQzMl90ICopYnVmZjsKKworCWhkci0+aGVhZGVyIAkgICAgICA9IGxlMzJfdG9fY3B1KHBwWzBdKTsKKwloZHItPnZlcnNpb24gCSAgICAgID0gbGUzMl90b19jcHUocHBbMV0pOworCWhkci0+Zmlyc3RfcmVjX29mZnNldCA9IGxlMzJfdG9fY3B1KHBwWzJdKTsKKwloZHItPnRibF9zaXplIAkgICAgICA9IGxlMzJfdG9fY3B1KHBwWzNdKTsKKwloZHItPmNoZWNrc3VtIAkgICAgICA9IGxlMzJfdG9fY3B1KHBwWzRdKTsKK30KKworc3RhdGljIGludCBfX3VwZGF0ZV90YWJsZV9oZWFkZXIoc3RydWN0IGFtZGdwdV9yYXNfZWVwcm9tX2NvbnRyb2wgKmNvbnRyb2wsCisJCQkJIHVuc2lnbmVkIGNoYXIgKmJ1ZmYpCit7CisJaW50IHJldCA9IDA7CisJc3RydWN0IGkyY19tc2cgbXNnID0geworCQkJLmFkZHIJPSBFRVBST01fSTJDX1RBUkdFVF9BRERSLAorCQkJLmZsYWdzCT0gMCwKKwkJCS5sZW4JPSBFRVBST01fQUREUkVTU19TSVpFICsgRUVQUk9NX1RBQkxFX0hFQURFUl9TSVpFLAorCQkJLmJ1Zgk9IGJ1ZmYsCisJfTsKKworCisJKih1aW50MTZfdCAqKWJ1ZmYgPSBFRVBST01fSERSX1NUQVJUOworCV9fZW5jb2RlX3RhYmxlX2hlYWRlcl90b19idWZmKCZjb250cm9sLT50YmxfaGRyLCBidWZmICsgRUVQUk9NX0FERFJFU1NfU0laRSk7CisKKwlyZXQgPSBpMmNfdHJhbnNmZXIoJmNvbnRyb2wtPmVlcHJvbV9hY2Nlc3NvciwgJm1zZywgMSk7CisJaWYgKHJldCA8IDEpCisJCURSTV9FUlJPUigiRmFpbGVkIHRvIHdyaXRlIEVFUFJPTSB0YWJsZSBoZWFkZXIsIHJldDolZCIsIHJldCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdWludDMyX3QgIF9fY2FsY19oZHJfYnl0ZV9zdW0oc3RydWN0IGFtZGdwdV9yYXNfZWVwcm9tX2NvbnRyb2wgKmNvbnRyb2wpOworCitpbnQgYW1kZ3B1X3Jhc19lZXByb21faW5pdChzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCkKK3sKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHRvX2FtZGdwdV9kZXZpY2UoY29udHJvbCk7CisJdW5zaWduZWQgY2hhciBidWZmW0VFUFJPTV9BRERSRVNTX1NJWkUgKyBFRVBST01fVEFCTEVfSEVBREVSX1NJWkVdID0geyAwIH07CisJc3RydWN0IGFtZGdwdV9yYXNfZWVwcm9tX3RhYmxlX2hlYWRlciAqaGRyID0gJmNvbnRyb2wtPnRibF9oZHI7CisJc3RydWN0IGkyY19tc2cgbXNnID0geworCQkJLmFkZHIJPSBFRVBST01fSTJDX1RBUkdFVF9BRERSLAorCQkJLmZsYWdzCT0gSTJDX01fUkQsCisJCQkubGVuCT0gRUVQUk9NX0FERFJFU1NfU0laRSArIEVFUFJPTV9UQUJMRV9IRUFERVJfU0laRSwKKwkJCS5idWYJPSBidWZmLAorCX07CisKKwltdXRleF9pbml0KCZjb250cm9sLT50YmxfbXV0ZXgpOworCisJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKKwljYXNlIENISVBfVkVHQTIwOgorCQlyZXQgPSBzbXVfdjExXzBfaTJjX2VlcHJvbV9jb250cm9sX2luaXQoJmNvbnRyb2wtPmVlcHJvbV9hY2Nlc3Nvcik7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKHJldCkgeworCQlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0IEkyQyBjb250cm9sbGVyLCByZXQ6JWQiLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qIFJlYWQvQ3JlYXRlIHRhYmxlIGhlYWRlciBmcm9tIEVFUFJPTSBhZGRyZXNzIDAgKi8KKwlyZXQgPSBpMmNfdHJhbnNmZXIoJmNvbnRyb2wtPmVlcHJvbV9hY2Nlc3NvciwgJm1zZywgMSk7CisJaWYgKHJldCA8IDEpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVhZCBFRVBST00gdGFibGUgaGVhZGVyLCByZXQ6JWQiLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCV9fZGVjb2RlX3RhYmxlX2hlYWRlcl9mcm9tX2J1ZmYoaGRyLCAmYnVmZlsyXSk7CisKKwlpZiAoaGRyLT5oZWFkZXIgPT0gRUVQUk9NX1RBQkxFX0hEUl9WQUwpIHsKKwkJY29udHJvbC0+bnVtX3JlY3MgPSAoaGRyLT50Ymxfc2l6ZSAtIEVFUFJPTV9UQUJMRV9IRUFERVJfU0laRSkgLworCQkJCSAgICBFRVBST01fVEFCTEVfUkVDT1JEX1NJWkU7CisJCURSTV9ERUJVR19EUklWRVIoIkZvdW5kIGV4aXN0aW5nIEVFUFJPTSB0YWJsZSB3aXRoICVkIHJlY29yZHMiLAorCQkJCSBjb250cm9sLT5udW1fcmVjcyk7CisKKwl9IGVsc2UgeworCQlEUk1fSU5GTygiQ3JlYXRpbmcgbmV3IEVFUFJPTSB0YWJsZSIpOworCisJCWhkci0+aGVhZGVyID0gRUVQUk9NX1RBQkxFX0hEUl9WQUw7CisJCWhkci0+dmVyc2lvbiA9IEVFUFJPTV9UQUJMRV9WRVI7CisJCWhkci0+Zmlyc3RfcmVjX29mZnNldCA9IEVFUFJPTV9SRUNPUkRfU1RBUlQ7CisJCWhkci0+dGJsX3NpemUgPSBFRVBST01fVEFCTEVfSEVBREVSX1NJWkU7CisKKwkJYWRldi0+cHNwLnJhcy5yYXMtPmVlcHJvbV9jb250cm9sLnRibF9ieXRlX3N1bSA9CisJCQkJX19jYWxjX2hkcl9ieXRlX3N1bSgmYWRldi0+cHNwLnJhcy5yYXMtPmVlcHJvbV9jb250cm9sKTsKKwkJcmV0ID0gX191cGRhdGVfdGFibGVfaGVhZGVyKGNvbnRyb2wsIGJ1ZmYpOworCX0KKworCS8qIFN0YXJ0IGluc2VydGluZyByZWNvcmRzIGZyb20gaGVyZSAqLworCWFkZXYtPnBzcC5yYXMucmFzLT5lZXByb21fY29udHJvbC5uZXh0X2FkZHIgPSBFRVBST01fUkVDT1JEX1NUQVJUOworCisJcmV0dXJuIHJldCA9PSAxID8gMCA6IC1FSU87Cit9CisKK3ZvaWQgYW1kZ3B1X3Jhc19lZXByb21fZmluaShzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHRvX2FtZGdwdV9kZXZpY2UoY29udHJvbCk7CisKKwlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgeworCWNhc2UgQ0hJUF9WRUdBMjA6CisJCXNtdV92MTFfMF9pMmNfZWVwcm9tX2NvbnRyb2xfZmluaSgmY29udHJvbC0+ZWVwcm9tX2FjY2Vzc29yKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlyZXR1cm47CisJfQorfQorCitzdGF0aWMgdm9pZCBfX2VuY29kZV90YWJsZV9yZWNvcmRfdG9fYnVmZihzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCwKKwkJCQkJICBzdHJ1Y3QgZWVwcm9tX3RhYmxlX3JlY29yZCAqcmVjb3JkLAorCQkJCQkgIHVuc2lnbmVkIGNoYXIgKmJ1ZmYpCit7CisJX19sZTY0IHRtcCA9IDA7CisJaW50IGkgPSAwOworCisJLyogTmV4dCBhcmUgYWxsIHJlY29yZCBmaWVsZHMgYWNjb3JkaW5nIHRvIEVFUFJPTSBwYWdlIHNwZWMgaW4gTEUgZm9yYW10ICovCisJYnVmZltpKytdID0gcmVjb3JkLT5lcnJfdHlwZTsKKworCWJ1ZmZbaSsrXSA9IHJlY29yZC0+YmFuazsKKworCXRtcCA9IGNwdV90b19sZTY0KHJlY29yZC0+dHMpOworCW1lbWNweShidWZmICsgaSwgJnRtcCwgOCk7CisJaSArPSA4OworCisJdG1wID0gY3B1X3RvX2xlNjQoKHJlY29yZC0+b2Zmc2V0ICYgMHhmZmZmZmZmZmZmZmYpKTsKKwltZW1jcHkoYnVmZiArIGksICZ0bXAsIDYpOworCWkgKz0gNjsKKworCWJ1ZmZbaSsrXSA9IHJlY29yZC0+bWVtX2NoYW5uZWw7CisJYnVmZltpKytdID0gcmVjb3JkLT5tY3VtY19pZDsKKworCXRtcCA9IGNwdV90b19sZTY0KChyZWNvcmQtPnJldGlyZWRfcGFnZSAmIDB4ZmZmZmZmZmZmZmZmKSk7CisJbWVtY3B5KGJ1ZmYgKyBpLCAmdG1wLCA2KTsKK30KKworc3RhdGljIHZvaWQgX19kZWNvZGVfdGFibGVfcmVjb3JkX2Zyb21fYnVmZihzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCwKKwkJCQkJICAgIHN0cnVjdCBlZXByb21fdGFibGVfcmVjb3JkICpyZWNvcmQsCisJCQkJCSAgICB1bnNpZ25lZCBjaGFyICpidWZmKQoreworCV9fbGU2NCB0bXAgPSAwOworCWludCBpID0gIDA7CisKKwkvKiBOZXh0IGFyZSBhbGwgcmVjb3JkIGZpZWxkcyBhY2NvcmRpbmcgdG8gRUVQUk9NIHBhZ2Ugc3BlYyBpbiBMRSBmb3JhbXQgKi8KKwlyZWNvcmQtPmVycl90eXBlID0gYnVmZltpKytdOworCisJcmVjb3JkLT5iYW5rID0gYnVmZltpKytdOworCisJbWVtY3B5KCZ0bXAsIGJ1ZmYgKyBpLCA4KTsKKwlyZWNvcmQtPnRzID0gbGU2NF90b19jcHUodG1wKTsKKwlpICs9IDg7CisKKwltZW1jcHkoJnRtcCwgYnVmZiArIGksIDYpOworCXJlY29yZC0+b2Zmc2V0ID0gKGxlNjRfdG9fY3B1KHRtcCkgJiAweGZmZmZmZmZmZmZmZik7CisJaSArPSA2OworCisJYnVmZltpKytdID0gcmVjb3JkLT5tZW1fY2hhbm5lbDsKKwlidWZmW2krK10gPSByZWNvcmQtPm1jdW1jX2lkOworCisJbWVtY3B5KCZ0bXAsIGJ1ZmYgKyBpLCAgNik7CisJcmVjb3JkLT5yZXRpcmVkX3BhZ2UgPSAobGU2NF90b19jcHUodG1wKSAmIDB4ZmZmZmZmZmZmZmZmKTsKK30KKworLyoKKyAqIFdoZW4gcmVhY2hpbmcgZW5kIG9mIEVFUFJPTSBtZW1vcnkganVtcCBiYWNrIHRvIDAgcmVjb3JkIGFkZHJlc3MKKyAqIFdoZW4gbmV4dCByZWNvcmQgYWNjZXNzIHdpbGwgZ28gYmV5b25kIEVFUFJPTSBwYWdlIGJvdW5kYXJ5IG1vZGlmeSBiaXRzIEExNy9BOAorICogaW4gSTJDIHNlbGVjdG9yIHRvIGdvIHRvIG5leHQgcGFnZQorICovCitzdGF0aWMgdWludDMyX3QgX19jb3JyZWN0X2VlcHJvbV9kZXN0X2FkZHJlc3ModWludDMyX3QgY3Vycl9hZGRyZXNzKQoreworCXVpbnQzMl90IG5leHRfYWRkcmVzcyA9IGN1cnJfYWRkcmVzcyArIEVFUFJPTV9UQUJMRV9SRUNPUkRfU0laRTsKKworCS8qIFdoZW4gYWxsIEVFUFJPTSBtZW1vcnkgdXNlZCBqdW1wIGJhY2sgdG8gMCBhZGRyZXNzICovCisJaWYgKG5leHRfYWRkcmVzcyA+IEVFUFJPTV9TSVpFX0JZVEVTKSB7CisJCURSTV9JTkZPKCJSZWFjaGVkIGVuZCBvZiBFRVBST00gbWVtb3J5LCBqdW1waW5nIHRvIDAgIgorCQkJICJhbmQgb3ZlcnJpZGluZyBvbGQgcmVjb3JkIik7CisJCXJldHVybiBFRVBST01fUkVDT1JEX1NUQVJUOworCX0KKworCS8qCisJICogVG8gY2hlY2sgaWYgd2Ugb3ZlcmZsb3cgcGFnZSBib3VuZGFyeSAgY29tcGFyZSBuZXh0IGFkZHJlc3Mgd2l0aAorCSAqIGN1cnJlbnQgYW5kIHNlZSBpZiBiaXRzIDE3Lzggb2YgdGhlIEVFUFJPTSBhZGRyZXNzIHdpbGwgY2hhbmdlCisJICogSWYgdGhleSBkbyBzdGFydCBmcm9tIHRoZSBuZXh0IDI1NmIgcGFnZQorCSAqCisJICogaHR0cHM6Ly93d3cuc3QuY29tL3Jlc291cmNlL2VuL2RhdGFzaGVldC9tMjRtMDItZHIucGRmIHNlYy4gNS4xLjIKKwkgKi8KKwlpZiAoKGN1cnJfYWRkcmVzcyAmIEVFUFJPTV9BRERSX01TQl9NQVNLKSAhPSAobmV4dF9hZGRyZXNzICYgRUVQUk9NX0FERFJfTVNCX01BU0spKSB7CisJCURSTV9ERUJVR19EUklWRVIoIlJlYWNoZWQgZW5kIG9mIEVFUFJPTSBtZW1vcnkgcGFnZSwganVtcGluZyB0byBuZXh0OiAlbHgiLAorCQkJCShuZXh0X2FkZHJlc3MgJiBFRVBST01fQUREUl9NU0JfTUFTSykpOworCisJCXJldHVybiAgKG5leHRfYWRkcmVzcyAmIEVFUFJPTV9BRERSX01TQl9NQVNLKTsKKwl9CisKKwlyZXR1cm4gY3Vycl9hZGRyZXNzOworfQorCisKK3N0YXRpYyB1aW50MzJfdCAgX19jYWxjX2hkcl9ieXRlX3N1bShzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCkKK3sKKwlpbnQgaTsKKwl1aW50MzJfdCB0Ymxfc3VtID0gMDsKKworCS8qIEhlYWRlciBjaGVja3N1bSwgc2tpcCBjaGVja3N1bSBmaWVsZCBpbiB0aGUgY2FsY3VsYXRpb24gKi8KKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGNvbnRyb2wtPnRibF9oZHIpIC0gc2l6ZW9mKGNvbnRyb2wtPnRibF9oZHIuY2hlY2tzdW0pOyBpKyspCisJCXRibF9zdW0gKz0gKigoKHVuc2lnbmVkIGNoYXIgKikmY29udHJvbC0+dGJsX2hkcikgKyBpKTsKKworCXJldHVybiB0Ymxfc3VtOworfQorCitzdGF0aWMgdWludDMyX3QgIF9fY2FsY19yZWNzX2J5dGVfc3VtKHN0cnVjdCBlZXByb21fdGFibGVfcmVjb3JkICpyZWNvcmRzLAorCQkJCSAgICAgIGludCBudW0pCit7CisJaW50IGksIGo7CisJdWludDMyX3QgdGJsX3N1bSA9IDA7CisKKwkvKiBSZWNvcmRzIGNoZWNrc3VtICovCisJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CisJCXN0cnVjdCBlZXByb21fdGFibGVfcmVjb3JkICpyZWNvcmQgPSAmcmVjb3Jkc1tpXTsKKworCQlmb3IgKGogPSAwOyBqIDwgc2l6ZW9mKCpyZWNvcmQpOyBqKyspIHsKKwkJCXRibF9zdW0gKz0gKigoKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQpICsgaik7CisJCX0KKwl9CisKKwlyZXR1cm4gdGJsX3N1bTsKK30KKworc3RhdGljIGlubGluZSB1aW50MzJfdCAgX19jYWxjX3RibF9ieXRlX3N1bShzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCwKKwkJCQkgIHN0cnVjdCBlZXByb21fdGFibGVfcmVjb3JkICpyZWNvcmRzLCBpbnQgbnVtKQoreworCXJldHVybiBfX2NhbGNfaGRyX2J5dGVfc3VtKGNvbnRyb2wpICsgX19jYWxjX3JlY3NfYnl0ZV9zdW0ocmVjb3JkcywgbnVtKTsKK30KKworLyogQ2hlY2tzdW0gPSAyNTYgLSgoc3VtIG9mIGFsbCB0YWJsZSBlbnRyaWVzKSBtb2QgMjU2KcKgKi8KK3N0YXRpYyB2b2lkIF9fdXBkYXRlX3RibF9jaGVja3N1bShzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCwKKwkJCQkgIHN0cnVjdCBlZXByb21fdGFibGVfcmVjb3JkICpyZWNvcmRzLCBpbnQgbnVtLAorCQkJCSAgdWludDMyX3Qgb2xkX2hkcl9ieXRlX3N1bSkKK3sKKwkvKgorCSAqIFRoaXMgd2lsbCB1cGRhdGUgdGhlIHRhYmxlIHN1bSB3aXRoIG5ldyByZWNvcmRzLgorCSAqCisJICogVE9ETzogV2hhdCBoYXBwZW5zIHdoZW4gdGhlIEVFUFJPTSB0YWJsZSBpcyB0byBiZSB3cmFwcGVkIGFyb3VuZAorCSAqIGFuZCBvbGQgcmVjb3JkcyBmcm9tIHN0YXJ0IHdpbGwgZ2V0IG92ZXJyaWRkZW4uCisJICovCisKKwkvKiBuZWVkIHRvIHJlY2FsY3VsYXRlIHVwZGF0ZWQgaGVhZGVyIGJ5dGUgc3VtICovCisJY29udHJvbC0+dGJsX2J5dGVfc3VtIC09IG9sZF9oZHJfYnl0ZV9zdW07CisJY29udHJvbC0+dGJsX2J5dGVfc3VtICs9IF9fY2FsY190YmxfYnl0ZV9zdW0oY29udHJvbCwgcmVjb3JkcywgbnVtKTsKKworCWNvbnRyb2wtPnRibF9oZHIuY2hlY2tzdW0gPSAyNTYgLSAoY29udHJvbC0+dGJsX2J5dGVfc3VtICUgMjU2KTsKK30KKworLyogdGFibGUgc3VtIG1vZCAyNTYgKyBjaGVja3N1bSBtdXN0IGVxdWFscyAyNTYgKi8KK3N0YXRpYyBib29sIF9fdmFsaWRhdGVfdGJsX2NoZWNrc3VtKHN0cnVjdCBhbWRncHVfcmFzX2VlcHJvbV9jb250cm9sICpjb250cm9sLAorCQkJICAgIHN0cnVjdCBlZXByb21fdGFibGVfcmVjb3JkICpyZWNvcmRzLCBpbnQgbnVtKQoreworCWNvbnRyb2wtPnRibF9ieXRlX3N1bSA9IF9fY2FsY190YmxfYnl0ZV9zdW0oY29udHJvbCwgcmVjb3JkcywgbnVtKTsKKworCWlmIChjb250cm9sLT50YmxfaGRyLmNoZWNrc3VtICsgKGNvbnRyb2wtPnRibF9ieXRlX3N1bSAlIDI1NikgIT0gMjU2KSB7CisJCURSTV9XQVJOKCJDaGVja3N1bSBtaXNtYXRjaCwgY2hlY2tzdW06ICV1ICIsIGNvbnRyb2wtPnRibF9oZHIuY2hlY2tzdW0pOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKK2ludCBhbWRncHVfcmFzX2VlcHJvbV9wcm9jZXNzX3JlY29kcyhzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCwKKwkJCQkJICAgIHN0cnVjdCBlZXByb21fdGFibGVfcmVjb3JkICpyZWNvcmRzLAorCQkJCQkgICAgYm9vbCB3cml0ZSwKKwkJCQkJICAgIGludCBudW0pCit7CisJaW50IGksIHJldCA9IDA7CisJc3RydWN0IGkyY19tc2cgKm1zZ3M7CisJdW5zaWduZWQgY2hhciAqYnVmZnM7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSB0b19hbWRncHVfZGV2aWNlKGNvbnRyb2wpOworCisJaWYgKGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX1ZFR0EyMCkKKwkJcmV0dXJuIDA7CisKKwlidWZmcyA9IGtjYWxsb2MobnVtLCBFRVBST01fQUREUkVTU19TSVpFICsgRUVQUk9NX1RBQkxFX1JFQ09SRF9TSVpFLAorCQkJIEdGUF9LRVJORUwpOworCWlmICghYnVmZnMpCisJCXJldHVybiAtRU5PTUVNOworCisJbXV0ZXhfbG9jaygmY29udHJvbC0+dGJsX211dGV4KTsKKworCW1zZ3MgPSBrY2FsbG9jKG51bSwgc2l6ZW9mKCptc2dzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFtc2dzKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZnJlZV9idWZmOworCX0KKworCS8qIEluIGNhc2Ugb2Ygb3ZlcmZsb3cganVzdCBzdGFydCBmcm9tIGJlZ2lubmluZyB0byBub3QgbG9zZSBuZXdlc3QgcmVjb3JkcyAqLworCWlmICh3cml0ZSAmJiAoY29udHJvbC0+bmV4dF9hZGRyICsgRUVQUk9NX1RBQkxFX1JFQ09SRF9TSVpFICogbnVtID4gRUVQUk9NX1NJWkVfQllURVMpKQorCQljb250cm9sLT5uZXh0X2FkZHIgPSBFRVBST01fUkVDT1JEX1NUQVJUOworCisKKwkvKgorCSAqIFRPRE8gQ3VycmVudGx5IG1ha2VzIEVFUFJPTSB3cml0ZXMgZm9yIGVhY2ggcmVjb3JkLCB0aGlzIGNyZWF0ZXMKKwkgKiBpbnRlcm5hbCBmcmFnbWVudGF0aW9uLiBPcHRpbWl6ZWQgdGhlIGNvZGUgdG8gZG8gZnVsbCBwYWdlIHdyaXRlIG9mCisJICogMjU2YgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgeworCQl1bnNpZ25lZCBjaGFyICpidWZmID0gJmJ1ZmZzW2kgKiAoRUVQUk9NX0FERFJFU1NfU0laRSArIEVFUFJPTV9UQUJMRV9SRUNPUkRfU0laRSldOworCQlzdHJ1Y3QgZWVwcm9tX3RhYmxlX3JlY29yZCAqcmVjb3JkID0gJnJlY29yZHNbaV07CisJCXN0cnVjdCBpMmNfbXNnICptc2cgPSAmbXNnc1tpXTsKKworCQljb250cm9sLT5uZXh0X2FkZHIgPSBfX2NvcnJlY3RfZWVwcm9tX2Rlc3RfYWRkcmVzcyhjb250cm9sLT5uZXh0X2FkZHIpOworCisJCS8qCisJCSAqIFVwZGF0ZSBiaXRzIDE2LDE3IG9mIEVFUFJPTSBhZGRyZXNzIGluIEkyQyBhZGRyZXNzIGJ5IHNldHRpbmcgdGhlbQorCQkgKiB0byBiaXRzIDEsMiBvZiBEZXZpY2UgYWRkcmVzcyBieXRlCisJCSAqLworCQltc2ctPmFkZHIgPSBFRVBST01fSTJDX1RBUkdFVF9BRERSIHwKKwkJCSAgICAgICAoKGNvbnRyb2wtPm5leHRfYWRkciAmIEVFUFJPTV9BRERSX01TQl9NQVNLKSA+PiAxNSk7CisJCW1zZy0+ZmxhZ3MJPSB3cml0ZSA/IDAgOiBJMkNfTV9SRDsKKwkJbXNnLT5sZW4JPSBFRVBST01fQUREUkVTU19TSVpFICsgRUVQUk9NX1RBQkxFX1JFQ09SRF9TSVpFOworCQltc2ctPmJ1Zgk9IGJ1ZmY7CisKKwkJLyogSW5zZXJ0IHRoZSBFRVBST00gZGVzdCBhZGRlc3MsIGJpdHMgMC0xNSAqLworCQlidWZmWzBdID0gKChjb250cm9sLT5uZXh0X2FkZHIgPj4gOCkgJiAweGZmKTsKKwkJYnVmZlsxXSA9IChjb250cm9sLT5uZXh0X2FkZHIgJiAweGZmKTsKKworCQkvKiBFRVBST00gdGFibGUgY29udGVudCBpcyBzdG9yZWQgaW4gTEUgZm9ybWF0ICovCisJCWlmICh3cml0ZSkKKwkJCV9fZW5jb2RlX3RhYmxlX3JlY29yZF90b19idWZmKGNvbnRyb2wsIHJlY29yZCwgYnVmZiArIEVFUFJPTV9BRERSRVNTX1NJWkUpOworCisJCS8qCisJCSAqIFRoZSBkZXN0aW5hdGlvbiBFRVBST00gYWRkcmVzcyBtaWdodCBuZWVkIHRvIGJlIGNvcnJlY3RlZCB0byBhY2NvdW50CisJCSAqIGZvciBwYWdlIG9yIGVudGlyZSBtZW1vcnkgd3JhcHBpbmcKKwkJICovCisJCWNvbnRyb2wtPm5leHRfYWRkciArPSBFRVBST01fVEFCTEVfUkVDT1JEX1NJWkU7CisJfQorCisJcmV0ID0gaTJjX3RyYW5zZmVyKCZjb250cm9sLT5lZXByb21fYWNjZXNzb3IsIG1zZ3MsIG51bSk7CisJaWYgKHJldCA8IDEpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcHJvY2VzcyBFRVBST00gdGFibGUgcmVjb3JkcywgcmV0OiVkIiwgcmV0KTsKKworCQkvKiBUT0RPIFJlc3RvcmUgcHJldiBuZXh0IEVFUFJPTSBhZGRyZXNzID8gKi8KKwkJZ290byBmcmVlX21zZ3M7CisJfQorCisKKwlpZiAoIXdyaXRlKSB7CisJCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgeworCQkJdW5zaWduZWQgY2hhciAqYnVmZiA9ICZidWZmc1tpKihFRVBST01fQUREUkVTU19TSVpFICsgRUVQUk9NX1RBQkxFX1JFQ09SRF9TSVpFKV07CisJCQlzdHJ1Y3QgZWVwcm9tX3RhYmxlX3JlY29yZCAqcmVjb3JkID0gJnJlY29yZHNbaV07CisKKwkJCV9fZGVjb2RlX3RhYmxlX3JlY29yZF9mcm9tX2J1ZmYoY29udHJvbCwgcmVjb3JkLCBidWZmICsgRUVQUk9NX0FERFJFU1NfU0laRSk7CisJCX0KKwl9CisKKwlpZiAod3JpdGUpIHsKKwkJdWludDMyX3Qgb2xkX2hkcl9ieXRlX3N1bSA9IF9fY2FsY19oZHJfYnl0ZV9zdW0oY29udHJvbCk7CisKKwkJLyoKKwkJICogVXBkYXRlIHRhYmxlIGhlYWRlciB3aXRoIHNpemUgYW5kIENSQyBhbmQgYWNjb3VudCBmb3IgdGFibGUKKwkJICogd3JhcCBhcm91bmQgd2hlcmUgdGhlIGFzc3VtcHRpb24gaXMgdGhhdCB3ZSB0cmVhdCBpdCBhcyBlbXB0eQorCQkgKiB0YWJsZQorCQkgKgorCQkgKiBUT0RPIC0gQ2hlY2sgdGhlIGFzc3VtcHRpb24gaXMgY29ycmVjdAorCQkgKi8KKwkJY29udHJvbC0+bnVtX3JlY3MgKz0gbnVtOworCQljb250cm9sLT5udW1fcmVjcyAlPSBFRVBST01fTUFYX1JFQ09SRF9OVU07CisJCWNvbnRyb2wtPnRibF9oZHIudGJsX3NpemUgKz0gRUVQUk9NX1RBQkxFX1JFQ09SRF9TSVpFICogbnVtOworCQlpZiAoY29udHJvbC0+dGJsX2hkci50Ymxfc2l6ZSA+IEVFUFJPTV9TSVpFX0JZVEVTKQorCQkJY29udHJvbC0+dGJsX2hkci50Ymxfc2l6ZSA9IEVFUFJPTV9UQUJMRV9IRUFERVJfU0laRSArCisJCQljb250cm9sLT5udW1fcmVjcyAqIEVFUFJPTV9UQUJMRV9SRUNPUkRfU0laRTsKKworCQlfX3VwZGF0ZV90YmxfY2hlY2tzdW0oY29udHJvbCwgcmVjb3JkcywgbnVtLCBvbGRfaGRyX2J5dGVfc3VtKTsKKworCQlfX3VwZGF0ZV90YWJsZV9oZWFkZXIoY29udHJvbCwgYnVmZnMpOworCX0gZWxzZSBpZiAoIV9fdmFsaWRhdGVfdGJsX2NoZWNrc3VtKGNvbnRyb2wsIHJlY29yZHMsIG51bSkpIHsKKwkJRFJNX1dBUk4oIkVFUFJPTSBUYWJsZSBjaGVja3N1bSBtaXNtYXRjaCEiKTsKKwkJLyogVE9ETyBVbmNvbW1lbnQgd2hlbiBFRVBST00gcmVhZC93cml0ZSBpcyByZWxsaWFibGUgKi8KKwkJLyogcmV0ID0gLUVJTzsgKi8KKwl9CisKK2ZyZWVfbXNnczoKKwlrZnJlZShtc2dzKTsKKworZnJlZV9idWZmOgorCWtmcmVlKGJ1ZmZzKTsKKworCW11dGV4X3VubG9jaygmY29udHJvbC0+dGJsX211dGV4KTsKKworCXJldHVybiByZXQgPT0gbnVtID8gMCA6IC1FSU87Cit9CisKKy8qIFVzZWQgZm9yIHRlc3RpbmcgaWYgYnVncyBlbmNvdW50ZXJlZCAqLworI2lmIDAKK3ZvaWQgYW1kZ3B1X3Jhc19lZXByb21fdGVzdChzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgZWVwcm9tX3RhYmxlX3JlY29yZCAqcmVjcyA9IGtjYWxsb2MoMSwgc2l6ZW9mKCpyZWNzKSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIXJlY3MpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCAxIDsgaSsrKSB7CisJCXJlY3NbaV0uYWRkcmVzcyA9IDB4ZGVhZGJlZWY7CisJCXJlY3NbaV0ucmV0aXJlZF9wYWdlID0gaTsKKwl9CisKKwlpZiAoIWFtZGdwdV9yYXNfZWVwcm9tX3Byb2Nlc3NfcmVjb2RzKGNvbnRyb2wsIHJlY3MsIHRydWUsIDEpKSB7CisKKwkJbWVtc2V0KHJlY3MsIDAsIHNpemVvZigqcmVjcykgKiAxKTsKKworCQljb250cm9sLT5uZXh0X2FkZHIgPSBFRVBST01fUkVDT1JEX1NUQVJUOworCisJCWlmICghYW1kZ3B1X3Jhc19lZXByb21fcHJvY2Vzc19yZWNvZHMoY29udHJvbCwgcmVjcywgZmFsc2UsIDEpKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgMTsgaSsrKQorCQkJCURSTV9JTkZPKCJyZWMuYWRkcmVzcyA6MHglbGx4LCByZWMucmV0aXJlZF9wYWdlIDolbGx1IiwKKwkJCQkJIHJlY3NbaV0uYWRkcmVzcywgcmVjc1tpXS5yZXRpcmVkX3BhZ2UpOworCQl9IGVsc2UKKwkJCURSTV9FUlJPUigiRmFpbGVkIGluIHJlYWRpbmcgZnJvbSB0YWJsZSIpOworCisJfSBlbHNlCisJCURSTV9FUlJPUigiRmFpbGVkIGluIHdyaXRpbmcgdG8gdGFibGUiKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Jhc19lZXByb20uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yYXNfZWVwcm9tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmM2ZjYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yYXNfZWVwcm9tLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2lmbmRlZiBfQU1ER1BVX1JBU19FRVBST01fSAorI2RlZmluZSBfQU1ER1BVX1JBU19FRVBST01fSAorCisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisKK3N0cnVjdCBhbWRncHVfZGV2aWNlOworCitlbnVtIGFtZGdwdV9yYXNfZWVwcm9tX2Vycl90eXBleworCUFNREdQVV9SQVNfRUVQUk9NX0VSUl9QTEFDRV9IT0xERVIsCisJQU1ER1BVX1JBU19FRVBST01fRVJSX1JFQ09WRVJBQkxFLAorCUFNREdQVV9SQVNfRUVQUk9NX0VSUl9OT05fUkVDT1ZFUkFCTEUKK307CisKK3N0cnVjdCBhbWRncHVfcmFzX2VlcHJvbV90YWJsZV9oZWFkZXIgeworCXVpbnQzMl90IGhlYWRlcjsKKwl1aW50MzJfdCB2ZXJzaW9uOworCXVpbnQzMl90IGZpcnN0X3JlY19vZmZzZXQ7CisJdWludDMyX3QgdGJsX3NpemU7CisJdWludDMyX3QgY2hlY2tzdW07Cit9X19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOworCitzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCB7CisJc3RydWN0IGFtZGdwdV9yYXNfZWVwcm9tX3RhYmxlX2hlYWRlciB0YmxfaGRyOworCXN0cnVjdCBpMmNfYWRhcHRlciBlZXByb21fYWNjZXNzb3I7CisJdWludDMyX3QgbmV4dF9hZGRyOworCXVuc2lnbmVkIGludCBudW1fcmVjczsKKwlzdHJ1Y3QgbXV0ZXggdGJsX211dGV4OworCWJvb2wgYnVzX2xvY2tlZDsKKwl1aW50MzJfdCB0YmxfYnl0ZV9zdW07Cit9OworCisvKgorICogUmVwcmVzZW50cyBzaW5nbGUgdGFibGUgcmVjb3JkLiBQYWNrZWQgdG8gYmUgZWFzaWx5IHNlcmlhbGl6ZWQgaW50byBieXRlCisgKiBzdHJlYW0uCisgKi8KK3N0cnVjdCBlZXByb21fdGFibGVfcmVjb3JkIHsKKworCXVuaW9uIHsKKwkJdWludDY0X3QgYWRkcmVzczsKKwkJdWludDY0X3Qgb2Zmc2V0OworCX07CisKKwl1aW50NjRfdCByZXRpcmVkX3BhZ2U7CisJdWludDY0X3QgdHM7CisKKwllbnVtIGFtZGdwdV9yYXNfZWVwcm9tX2Vycl90eXBlIGVycl90eXBlOworCisJdW5pb24geworCQl1bnNpZ25lZCBjaGFyIGJhbms7CisJCXVuc2lnbmVkIGNoYXIgY3U7CisJfTsKKworCXVuc2lnbmVkIGNoYXIgbWVtX2NoYW5uZWw7CisJdW5zaWduZWQgY2hhciBtY3VtY19pZDsKK31fX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7CisKK2ludCBhbWRncHVfcmFzX2VlcHJvbV9pbml0KHN0cnVjdCBhbWRncHVfcmFzX2VlcHJvbV9jb250cm9sICpjb250cm9sKTsKK3ZvaWQgYW1kZ3B1X3Jhc19lZXByb21fZmluaShzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCk7CisKK2ludCBhbWRncHVfcmFzX2VlcHJvbV9wcm9jZXNzX3JlY29kcyhzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCwKKwkJCQkJICAgIHN0cnVjdCBlZXByb21fdGFibGVfcmVjb3JkICpyZWNvcmRzLAorCQkJCQkgICAgYm9vbCB3cml0ZSwKKwkJCQkJICAgIGludCBudW0pOworCit2b2lkIGFtZGdwdV9yYXNfZWVwcm9tX3Rlc3Qoc3RydWN0IGFtZGdwdV9yYXNfZWVwcm9tX2NvbnRyb2wgKmNvbnRyb2wpOworCisjZW5kaWYgLy8gX0FNREdQVV9SQVNfRUVQUk9NX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmluZy5oCmluZGV4IDQ0MTBjOTcuLjkzMDMxNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIAogLyogbWF4IG51bWJlciBvZiByaW5ncyAqLwotI2RlZmluZSBBTURHUFVfTUFYX1JJTkdTCQkyNAorI2RlZmluZSBBTURHUFVfTUFYX1JJTkdTCQkyOAogI2RlZmluZSBBTURHUFVfTUFYX0dGWF9SSU5HUwkJMgogI2RlZmluZSBBTURHUFVfTUFYX0NPTVBVVEVfUklOR1MJOAogI2RlZmluZSBBTURHUFVfTUFYX1ZDRV9SSU5HUwkJMwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NkbWEuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zZG1hLmgKaW5kZXggMzVkZDE1Mi4uYTlhZTBkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NkbWEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc2RtYS5oCkBAIC0yNSwxMSArMjUsMTcgQEAKICNkZWZpbmUgX19BTURHUFVfU0RNQV9IX18KIAogLyogbWF4IG51bWJlciBvZiBJUCBpbnN0YW5jZXMgKi8KLSNkZWZpbmUgQU1ER1BVX01BWF9TRE1BX0lOU1RBTkNFUwkJMgorI2RlZmluZSBBTURHUFVfTUFYX1NETUFfSU5TVEFOQ0VTCQk4CiAKIGVudW0gYW1kZ3B1X3NkbWFfaXJxIHsKIAlBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UwICA9IDAsCiAJQU1ER1BVX1NETUFfSVJRX0lOU1RBTkNFMSwKKwlBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UyLAorCUFNREdQVV9TRE1BX0lSUV9JTlNUQU5DRTMsCisJQU1ER1BVX1NETUFfSVJRX0lOU1RBTkNFNCwKKwlBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0U1LAorCUFNREdQVV9TRE1BX0lSUV9JTlNUQU5DRTYsCisJQU1ER1BVX1NETUFfSVJRX0lOU1RBTkNFNywKIAlBTURHUFVfU0RNQV9JUlFfTEFTVAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zeW5jLmMKaW5kZXggOTgyOGYzYy4uOTVlNWU5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5jCkBAIC0xOTAsMTAgKzE5MCwxMCBAQCBpbnQgYW1kZ3B1X3N5bmNfZmVuY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKICAqLwogaW50IGFtZGdwdV9zeW5jX3Jlc3Yoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCSAgICAgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLAotCQkgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCSAgICAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQkgICAgIHZvaWQgKm93bmVyLCBib29sIGV4cGxpY2l0X3N5bmMpCiB7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmbGlzdDsKKwlzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqZmxpc3Q7CiAJc3RydWN0IGRtYV9mZW5jZSAqZjsKIAl2b2lkICpmZW5jZV9vd25lcjsKIAl1bnNpZ25lZCBpOwpAQCAtMjAzLDE2ICsyMDMsMTYgQEAgaW50IGFtZGdwdV9zeW5jX3Jlc3Yoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCXJldHVybiAtRUlOVkFMOwogCiAJLyogYWx3YXlzIHN5bmMgdG8gdGhlIGV4Y2x1c2l2ZSBmZW5jZSAqLwotCWYgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2wocmVzdik7CisJZiA9IGRtYV9yZXN2X2dldF9leGNsKHJlc3YpOwogCXIgPSBhbWRncHVfc3luY19mZW5jZShhZGV2LCBzeW5jLCBmLCBmYWxzZSk7CiAKLQlmbGlzdCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChyZXN2KTsKKwlmbGlzdCA9IGRtYV9yZXN2X2dldF9saXN0KHJlc3YpOwogCWlmICghZmxpc3QgfHwgcikKIAkJcmV0dXJuIHI7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZmxpc3QtPnNoYXJlZF9jb3VudDsgKytpKSB7CiAJCWYgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZsaXN0LT5zaGFyZWRbaV0sCi0JCQkJCSAgICAgIHJlc2VydmF0aW9uX29iamVjdF9oZWxkKHJlc3YpKTsKKwkJCQkJICAgICAgZG1hX3Jlc3ZfaGVsZChyZXN2KSk7CiAJCS8qIFdlIG9ubHkgd2FudCB0byB0cmlnZ2VyIEtGRCBldmljdGlvbiBmZW5jZXMgb24KIAkJICogZXZpY3Qgb3IgbW92ZSBqb2JzLiBTa2lwIEtGRCBmZW5jZXMgb3RoZXJ3aXNlLgogCQkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zeW5jLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5oCmluZGV4IDEwY2YyM2EuLmI1ZjE3NzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zeW5jLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuaApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2hhc2h0YWJsZS5oPgogCiBzdHJ1Y3QgZG1hX2ZlbmNlOwotc3RydWN0IHJlc2VydmF0aW9uX29iamVjdDsKK3N0cnVjdCBkbWFfcmVzdjsKIHN0cnVjdCBhbWRncHVfZGV2aWNlOwogc3RydWN0IGFtZGdwdV9yaW5nOwogCkBAIC00NCw3ICs0NCw3IEBAIGludCBhbWRncHVfc3luY19mZW5jZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLAogCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBib29sIGV4cGxpY2l0KTsKIGludCBhbWRncHVfc3luY19yZXN2KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkgICAgIHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKLQkJICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAorCQkgICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKIAkJICAgICB2b2lkICpvd25lciwKIAkJICAgICBib29sIGV4cGxpY2l0X3N5bmMpOwogc3RydWN0IGRtYV9mZW5jZSAqYW1kZ3B1X3N5bmNfcGVla19mZW5jZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKaW5kZXggZTUxYjQ4YWMuLmRmZjQxZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKQEAgLTIyNyw3ICsyMjcsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92ZXJpZnlfYWNjZXNzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCBmaWxlICpmaWxwKQogCiAJaWYgKGFtZGdwdV90dG1fdHRfZ2V0X3VzZXJtbShiby0+dHRtKSkKIAkJcmV0dXJuIC1FUEVSTTsKLQlyZXR1cm4gZHJtX3ZtYV9ub2RlX3ZlcmlmeV9hY2Nlc3MoJmFiby0+Z2VtX2Jhc2Uudm1hX25vZGUsCisJcmV0dXJuIGRybV92bWFfbm9kZV92ZXJpZnlfYWNjZXNzKCZhYm8tPnRiby5iYXNlLnZtYV9ub2RlLAogCQkJCQkgIGZpbHAtPnByaXZhdGVfZGF0YSk7CiB9CiAKQEAgLTMwMyw3ICszMDMsNyBAQCBpbnQgYW1kZ3B1X3R0bV9jb3B5X21lbV90b19tZW0oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICAgICAgc3RydWN0IGFtZGdwdV9jb3B5X21lbSAqc3JjLAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfY29weV9tZW0gKmRzdCwKIAkJCSAgICAgICB1aW50NjRfdCBzaXplLAotCQkJICAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCQkgICAgICAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmKQogewogCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IGFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNzX3Jpbmc7CkBAIC00NDAsMTAgKzQ0MCwyNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9tb3ZlX2JsaXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAogCXIgPSBhbWRncHVfdHRtX2NvcHlfbWVtX3RvX21lbShhZGV2LCAmc3JjLCAmZHN0LAogCQkJCSAgICAgICBuZXdfbWVtLT5udW1fcGFnZXMgPDwgUEFHRV9TSElGVCwKLQkJCQkgICAgICAgYm8tPnJlc3YsICZmZW5jZSk7CisJCQkJICAgICAgIGJvLT5iYXNlLnJlc3YsICZmZW5jZSk7CiAJaWYgKHIpCiAJCWdvdG8gZXJyb3I7CiAKKwkvKiBjbGVhciB0aGUgc3BhY2UgYmVpbmcgZnJlZWQgKi8KKwlpZiAob2xkX21lbS0+bWVtX3R5cGUgPT0gVFRNX1BMX1ZSQU0gJiYKKwkgICAgKHR0bV90b19hbWRncHVfYm8oYm8pLT5mbGFncyAmCisJICAgICBBTURHUFVfR0VNX0NSRUFURV9WUkFNX1dJUEVfT05fUkVMRUFTRSkpIHsKKwkJc3RydWN0IGRtYV9mZW5jZSAqd2lwZV9mZW5jZSA9IE5VTEw7CisKKwkJciA9IGFtZGdwdV9maWxsX2J1ZmZlcih0dG1fdG9fYW1kZ3B1X2JvKGJvKSwgQU1ER1BVX1BPSVNPTiwKKwkJCQkgICAgICAgTlVMTCwgJndpcGVfZmVuY2UpOworCQlpZiAocikgeworCQkJZ290byBlcnJvcjsKKwkJfSBlbHNlIGlmICh3aXBlX2ZlbmNlKSB7CisJCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKKwkJCWZlbmNlID0gd2lwZV9mZW5jZTsKKwkJfQorCX0KKwogCS8qIEFsd2F5cyBibG9jayBmb3IgVk0gcGFnZSB0YWJsZXMgYmVmb3JlIGNvbW1pdHRpbmcgdGhlIG5ldyBsb2NhdGlvbiAqLwogCWlmIChiby0+dHlwZSA9PSB0dG1fYm9fdHlwZV9rZXJuZWwpCiAJCXIgPSB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKGJvLCBmZW5jZSwgdHJ1ZSwgbmV3X21lbSk7CkBAIC03NzgsNyArNzk0LDYgQEAgaW50IGFtZGdwdV90dG1fdHRfZ2V0X3VzZXJfcGFnZXMoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHN0cnVjdCBwYWdlICoqcGFnZXMpCiAJc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2U7CiAJdW5zaWduZWQgbG9uZyBpOwogCXVpbnQ2NF90ICpwZm5zOwotCWludCByZXRyeSA9IDA7CiAJaW50IHIgPSAwOwogCiAJaWYgKCFtbSkgLyogSGFwcGVucyBkdXJpbmcgcHJvY2VzcyBzaHV0ZG93biAqLwpAQCAtODE5LDEwICs4MzQsMTEgQEAgaW50IGFtZGdwdV90dG1fdHRfZ2V0X3VzZXJfcGFnZXMoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHN0cnVjdCBwYWdlICoqcGFnZXMpCiAJCQkJMCA6IHJhbmdlLT5mbGFnc1tITU1fUEZOX1dSSVRFXTsKIAlyYW5nZS0+cGZuX2ZsYWdzX21hc2sgPSAwOwogCXJhbmdlLT5wZm5zID0gcGZuczsKLQlobW1fcmFuZ2VfcmVnaXN0ZXIocmFuZ2UsIG1pcnJvciwgc3RhcnQsCi0JCQkgICBzdGFydCArIHR0bS0+bnVtX3BhZ2VzICogUEFHRV9TSVpFLCBQQUdFX1NISUZUKTsKKwlyYW5nZS0+c3RhcnQgPSBzdGFydDsKKwlyYW5nZS0+ZW5kID0gc3RhcnQgKyB0dG0tPm51bV9wYWdlcyAqIFBBR0VfU0laRTsKIAotcmV0cnk6CisJaG1tX3JhbmdlX3JlZ2lzdGVyKHJhbmdlLCBtaXJyb3IpOworCiAJLyoKIAkgKiBKdXN0IHdhaXQgZm9yIHJhbmdlIHRvIGJlIHZhbGlkLCBzYWZlIHRvIGlnbm9yZSByZXR1cm4gdmFsdWUgYXMgd2UKIAkgKiB3aWxsIHVzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGhtbV9yYW5nZV9mYXVsdCgpIGJlbG93IHVuZGVyIHRoZQpAQCAtODMxLDI0ICs4NDcsMTIgQEAgaW50IGFtZGdwdV90dG1fdHRfZ2V0X3VzZXJfcGFnZXMoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHN0cnVjdCBwYWdlICoqcGFnZXMpCiAJaG1tX3JhbmdlX3dhaXRfdW50aWxfdmFsaWQocmFuZ2UsIEhNTV9SQU5HRV9ERUZBVUxUX1RJTUVPVVQpOwogCiAJZG93bl9yZWFkKCZtbS0+bW1hcF9zZW0pOwotCi0JciA9IGhtbV9yYW5nZV9mYXVsdChyYW5nZSwgdHJ1ZSk7Ci0JaWYgKHVubGlrZWx5KHIgPCAwKSkgewotCQlpZiAobGlrZWx5KHIgPT0gLUVBR0FJTikpIHsKLQkJCS8qCi0JCQkgKiByZXR1cm4gLUVBR0FJTiwgbW1hcF9zZW0gaXMgZHJvcHBlZAotCQkJICovCi0JCQlpZiAocmV0cnkrKyA8IE1BWF9SRVRSWV9ITU1fUkFOR0VfRkFVTFQpCi0JCQkJZ290byByZXRyeTsKLQkJCWVsc2UKLQkJCQlwcl9lcnIoIlJldHJ5IGhtbSBmYXVsdCB0b28gbWFueSB0aW1lc1xuIik7Ci0JCX0KLQotCQlnb3RvIG91dF91cF9yZWFkOwotCX0KLQorCXIgPSBobW1fcmFuZ2VfZmF1bHQocmFuZ2UsIDApOwogCXVwX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAKKwlpZiAodW5saWtlbHkociA8IDApKQorCQlnb3RvIG91dF9mcmVlX3BmbnM7CisKIAlmb3IgKGkgPSAwOyBpIDwgdHRtLT5udW1fcGFnZXM7IGkrKykgewogCQlwYWdlc1tpXSA9IGhtbV9kZXZpY2VfZW50cnlfdG9fcGFnZShyYW5nZSwgcGZuc1tpXSk7CiAJCWlmICh1bmxpa2VseSghcGFnZXNbaV0pKSB7CkBAIC04NjQsOSArODY4LDYgQEAgaW50IGFtZGdwdV90dG1fdHRfZ2V0X3VzZXJfcGFnZXMoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHN0cnVjdCBwYWdlICoqcGFnZXMpCiAKIAlyZXR1cm4gMDsKIAotb3V0X3VwX3JlYWQ6Ci0JaWYgKGxpa2VseShyICE9IC1FQUdBSU4pKQotCQl1cF9yZWFkKCZtbS0+bW1hcF9zZW0pOwogb3V0X2ZyZWVfcGZuczoKIAlobW1fcmFuZ2VfdW5yZWdpc3RlcihyYW5nZSk7CiAJa3ZmcmVlKHBmbnMpOwpAQCAtMTQ3MCw3ICsxNDcxLDcgQEAgc3RhdGljIGJvb2wgYW1kZ3B1X3R0bV9ib19ldmljdGlvbl92YWx1YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogewogCXVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzID0gYm8tPm1lbS5udW1fcGFnZXM7CiAJc3RydWN0IGRybV9tbV9ub2RlICpub2RlID0gYm8tPm1lbS5tbV9ub2RlOwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZmxpc3Q7CisJc3RydWN0IGRtYV9yZXN2X2xpc3QgKmZsaXN0OwogCXN0cnVjdCBkbWFfZmVuY2UgKmY7CiAJaW50IGk7CiAKQEAgLTE0NzgsMTggKzE0NzksMTggQEAgc3RhdGljIGJvb2wgYW1kZ3B1X3R0bV9ib19ldmljdGlvbl92YWx1YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCSAqIGNsZWFubHkgaGFuZGxlIHBhZ2UgZmF1bHRzLgogCSAqLwogCWlmIChiby0+dHlwZSA9PSB0dG1fYm9fdHlwZV9rZXJuZWwgJiYKLQkgICAgIXJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShiby0+cmVzdiwgdHJ1ZSkpCisJICAgICFkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdShiby0+YmFzZS5yZXN2LCB0cnVlKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogSWYgYm8gaXMgYSBLRkQgQk8sIGNoZWNrIGlmIHRoZSBibyBiZWxvbmdzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3MuCiAJICogSWYgdHJ1ZSwgdGhlbiByZXR1cm4gZmFsc2UgYXMgYW55IEtGRCBwcm9jZXNzIG5lZWRzIGFsbCBpdHMgQk9zIHRvCiAJICogYmUgcmVzaWRlbnQgdG8gcnVuIHN1Y2Nlc3NmdWxseQogCSAqLwotCWZsaXN0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KGJvLT5yZXN2KTsKKwlmbGlzdCA9IGRtYV9yZXN2X2dldF9saXN0KGJvLT5iYXNlLnJlc3YpOwogCWlmIChmbGlzdCkgewogCQlmb3IgKGkgPSAwOyBpIDwgZmxpc3QtPnNoYXJlZF9jb3VudDsgKytpKSB7CiAJCQlmID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChmbGlzdC0+c2hhcmVkW2ldLAotCQkJCXJlc2VydmF0aW9uX29iamVjdF9oZWxkKGJvLT5yZXN2KSk7CisJCQkJZG1hX3Jlc3ZfaGVsZChiby0+YmFzZS5yZXN2KSk7CiAJCQlpZiAoYW1ka2ZkX2ZlbmNlX2NoZWNrX21tKGYsIGN1cnJlbnQtPm1tKSkKIAkJCQlyZXR1cm4gZmFsc2U7CiAJCX0KQEAgLTE1OTksNiArMTYwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBhbWRncHVfYm9fZHJpdmVyID0gewogCS5tb3ZlID0gJmFtZGdwdV9ib19tb3ZlLAogCS52ZXJpZnlfYWNjZXNzID0gJmFtZGdwdV92ZXJpZnlfYWNjZXNzLAogCS5tb3ZlX25vdGlmeSA9ICZhbWRncHVfYm9fbW92ZV9ub3RpZnksCisJLnJlbGVhc2Vfbm90aWZ5ID0gJmFtZGdwdV9ib19yZWxlYXNlX25vdGlmeSwKIAkuZmF1bHRfcmVzZXJ2ZV9ub3RpZnkgPSAmYW1kZ3B1X2JvX2ZhdWx0X3Jlc2VydmVfbm90aWZ5LAogCS5pb19tZW1fcmVzZXJ2ZSA9ICZhbWRncHVfdHRtX2lvX21lbV9yZXNlcnZlLAogCS5pb19tZW1fZnJlZSA9ICZhbWRncHVfdHRtX2lvX21lbV9mcmVlLApAQCAtMTcyMSw2ICsxNzIzLDcgQEAgaW50IGFtZGdwdV90dG1faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl1aW50NjRfdCBndHRfc2l6ZTsKIAlpbnQgcjsKIAl1NjQgdmlzX3ZyYW1fbGltaXQ7CisJdm9pZCAqc3RvbGVuX3ZnYV9idWY7CiAKIAltdXRleF9pbml0KCZhZGV2LT5tbWFuLmd0dF93aW5kb3dfbG9jayk7CiAKQEAgLTE3MjgsNyArMTczMSw3IEBAIGludCBhbWRncHVfdHRtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJciA9IHR0bV9ib19kZXZpY2VfaW5pdCgmYWRldi0+bW1hbi5iZGV2LAogCQkJICAgICAgICZhbWRncHVfYm9fZHJpdmVyLAogCQkJICAgICAgIGFkZXYtPmRkZXYtPmFub25faW5vZGUtPmlfbWFwcGluZywKLQkJCSAgICAgICBhZGV2LT5uZWVkX2RtYTMyKTsKKwkJCSAgICAgICBkbWFfYWRkcmVzc2luZ19saW1pdGVkKGFkZXYtPmRldikpOwogCWlmIChyKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIGluaXRpYWxpemluZyBidWZmZXIgb2JqZWN0IGRyaXZlciglZCkuXG4iLCByKTsKIAkJcmV0dXJuIHI7CkBAIC0xNzc1LDcgKzE3NzgsNyBAQCBpbnQgYW1kZ3B1X3R0bV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXIgPSBhbWRncHVfYm9fY3JlYXRlX2tlcm5lbChhZGV2LCBhZGV2LT5nbWMuc3RvbGVuX3NpemUsIFBBR0VfU0laRSwKIAkJCQkgICAgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKIAkJCQkgICAgJmFkZXYtPnN0b2xlbl92Z2FfbWVtb3J5LAotCQkJCSAgICBOVUxMLCBOVUxMKTsKKwkJCQkgICAgTlVMTCwgJnN0b2xlbl92Z2FfYnVmKTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAJRFJNX0lORk8oImFtZGdwdTogJXVNIG9mIFZSQU0gbWVtb3J5IHJlYWR5XG4iLApAQCAtMTgzOSw4ICsxODQyLDkgQEAgaW50IGFtZGdwdV90dG1faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKICAqLwogdm9pZCBhbWRncHVfdHRtX2xhdGVfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKKwl2b2lkICpzdG9sZW5fdmdhX2J1ZjsKIAkvKiByZXR1cm4gdGhlIFZHQSBzdG9sZW4gbWVtb3J5IChpZiBhbnkpIGJhY2sgdG8gVlJBTSAqLwotCWFtZGdwdV9ib19mcmVlX2tlcm5lbCgmYWRldi0+c3RvbGVuX3ZnYV9tZW1vcnksIE5VTEwsIE5VTEwpOworCWFtZGdwdV9ib19mcmVlX2tlcm5lbCgmYWRldi0+c3RvbGVuX3ZnYV9tZW1vcnksIE5VTEwsICZzdG9sZW5fdmdhX2J1Zik7CiB9CiAKIC8qKgpAQCAtMTk5Miw3ICsxOTk2LDcgQEAgc3RhdGljIGludCBhbWRncHVfbWFwX2J1ZmZlcihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCiBpbnQgYW1kZ3B1X2NvcHlfYnVmZmVyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDY0X3Qgc3JjX29mZnNldCwKIAkJICAgICAgIHVpbnQ2NF90IGRzdF9vZmZzZXQsIHVpbnQzMl90IGJ5dGVfY291bnQsCi0JCSAgICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAorCQkgICAgICAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLCBib29sIGRpcmVjdF9zdWJtaXQsCiAJCSAgICAgICBib29sIHZtX25lZWRzX2ZsdXNoKQogewpAQCAtMjA2Niw3ICsyMDcwLDcgQEAgaW50IGFtZGdwdV9jb3B5X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQ2NF90IHNyY19vZmZzZXQsCiAKIGludCBhbWRncHVfZmlsbF9idWZmZXIoc3RydWN0IGFtZGdwdV9ibyAqYm8sCiAJCSAgICAgICB1aW50MzJfdCBzcmNfZGF0YSwKLQkJICAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCSAgICAgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoYm8tPnRiby5iZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAppbmRleCBjYWE3NmM2Li4wZGRkZWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oCkBAIC0zOCw2ICszOCw4IEBACiAjZGVmaW5lIEFNREdQVV9HVFRfTUFYX1RSQU5TRkVSX1NJWkUJNTEyCiAjZGVmaW5lIEFNREdQVV9HVFRfTlVNX1RSQU5TRkVSX1dJTkRPV1MJMgogCisjZGVmaW5lIEFNREdQVV9QT0lTT04JMHhkMGJlZDBiZQorCiBzdHJ1Y3QgYW1kZ3B1X21tYW4gewogCXN0cnVjdCB0dG1fYm9fZGV2aWNlCQliZGV2OwogCWJvb2wJCQkJbWVtX2dsb2JhbF9yZWZlcmVuY2VkOwpAQCAtODMsMTggKzg1LDE4IEBAIHZvaWQgYW1kZ3B1X3R0bV9zZXRfYnVmZmVyX2Z1bmNzX3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogaW50IGFtZGdwdV9jb3B5X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQ2NF90IHNyY19vZmZzZXQsCiAJCSAgICAgICB1aW50NjRfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBieXRlX2NvdW50LAotCQkgICAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKKwkJICAgICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKIAkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSwgYm9vbCBkaXJlY3Rfc3VibWl0LAogCQkgICAgICAgYm9vbCB2bV9uZWVkc19mbHVzaCk7CiBpbnQgYW1kZ3B1X3R0bV9jb3B5X21lbV90b19tZW0oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICAgICAgc3RydWN0IGFtZGdwdV9jb3B5X21lbSAqc3JjLAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfY29weV9tZW0gKmRzdCwKIAkJCSAgICAgICB1aW50NjRfdCBzaXplLAotCQkJICAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCQkgICAgICAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmKTsKIGludCBhbWRncHVfZmlsbF9idWZmZXIoc3RydWN0IGFtZGdwdV9ibyAqYm8sCiAJCQl1aW50MzJfdCBzcmNfZGF0YSwKLQkJCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCQlzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCQlzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpOwogCiBpbnQgYW1kZ3B1X21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91Y29kZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Vjb2RlLmMKaW5kZXggYmZhYTBlYS4uM2E2MTE1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Vjb2RlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Vjb2RlLmMKQEAgLTgzLDggKzgzLDggQEAgdm9pZCBhbWRncHVfdWNvZGVfcHJpbnRfc21jX2hkcihjb25zdCBzdHJ1Y3QgY29tbW9uX2Zpcm13YXJlX2hlYWRlciAqaGRyKQogCQljb25zdCBzdHJ1Y3Qgc21jX2Zpcm13YXJlX2hlYWRlcl92Ml8wICp2Ml9oZHIgPQogCQkJY29udGFpbmVyX29mKHYxX2hkciwgc3RydWN0IHNtY19maXJtd2FyZV9oZWFkZXJfdjJfMCwgdjFfMCk7CiAKLQkJRFJNX0lORk8oInBwdF9vZmZzZXRfYnl0ZXM6ICV1XG4iLCBsZTMyX3RvX2NwdSh2Ml9oZHItPnBwdF9vZmZzZXRfYnl0ZXMpKTsKLQkJRFJNX0lORk8oInBwdF9zaXplX2J5dGVzOiAldVxuIiwgbGUzMl90b19jcHUodjJfaGRyLT5wcHRfc2l6ZV9ieXRlcykpOworCQlEUk1fREVCVUcoInBwdF9vZmZzZXRfYnl0ZXM6ICV1XG4iLCBsZTMyX3RvX2NwdSh2Ml9oZHItPnBwdF9vZmZzZXRfYnl0ZXMpKTsKKwkJRFJNX0RFQlVHKCJwcHRfc2l6ZV9ieXRlczogJXVcbiIsIGxlMzJfdG9fY3B1KHYyX2hkci0+cHB0X3NpemVfYnl0ZXMpKTsKIAl9IGVsc2UgewogCQlEUk1fRVJST1IoIlVua25vd24gU01DIHVjb2RlIHZlcnNpb246ICV1LiV1XG4iLCB2ZXJzaW9uX21ham9yLCB2ZXJzaW9uX21pbm9yKTsKIAl9CkBAIC0yNjksNiArMjY5LDE2IEBAIHZvaWQgYW1kZ3B1X3Vjb2RlX3ByaW50X3BzcF9oZHIoY29uc3Qgc3RydWN0IGNvbW1vbl9maXJtd2FyZV9oZWFkZXIgKmhkcikKIAkJCURSTV9ERUJVRygia2RiX3NpemVfYnl0ZXM6ICV1XG4iLAogCQkJCSAgbGUzMl90b19jcHUocHNwX2hkcl92MV8xLT5rZGJfc2l6ZV9ieXRlcykpOwogCQl9CisJCWlmICh2ZXJzaW9uX21pbm9yID09IDIpIHsKKwkJCWNvbnN0IHN0cnVjdCBwc3BfZmlybXdhcmVfaGVhZGVyX3YxXzIgKnBzcF9oZHJfdjFfMiA9CisJCQkJY29udGFpbmVyX29mKHBzcF9oZHIsIHN0cnVjdCBwc3BfZmlybXdhcmVfaGVhZGVyX3YxXzIsIHYxXzApOworCQkJRFJNX0RFQlVHKCJrZGJfaGVhZGVyX3ZlcnNpb246ICV1XG4iLAorCQkJCSAgbGUzMl90b19jcHUocHNwX2hkcl92MV8yLT5rZGJfaGVhZGVyX3ZlcnNpb24pKTsKKwkJCURSTV9ERUJVRygia2RiX29mZnNldF9ieXRlczogJXVcbiIsCisJCQkJICBsZTMyX3RvX2NwdShwc3BfaGRyX3YxXzItPmtkYl9vZmZzZXRfYnl0ZXMpKTsKKwkJCURSTV9ERUJVRygia2RiX3NpemVfYnl0ZXM6ICV1XG4iLAorCQkJCSAgbGUzMl90b19jcHUocHNwX2hkcl92MV8yLT5rZGJfc2l6ZV9ieXRlcykpOworCQl9CiAJfSBlbHNlIHsKIAkJRFJNX0VSUk9SKCJVbmtub3duIFBTUCB1Y29kZSB2ZXJzaW9uOiAldS4ldVxuIiwKIAkJCSAgdmVyc2lvbl9tYWpvciwgdmVyc2lvbl9taW5vcik7CkBAIC0zNTAsMTEgKzM2MCwxNyBAQCBhbWRncHVfdWNvZGVfZ2V0X2xvYWRfdHlwZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGxvYWRfdHlwZSkKIAljYXNlIENISVBfUkFWRU46CiAJY2FzZSBDSElQX1ZFR0ExMjoKIAljYXNlIENISVBfVkVHQTIwOgorCWNhc2UgQ0hJUF9SRU5PSVI6CiAJY2FzZSBDSElQX05BVkkxMDoKKwljYXNlIENISVBfTkFWSTE0OgorCWNhc2UgQ0hJUF9OQVZJMTI6CiAJCWlmICghbG9hZF90eXBlKQogCQkJcmV0dXJuIEFNREdQVV9GV19MT0FEX0RJUkVDVDsKIAkJZWxzZQogCQkJcmV0dXJuIEFNREdQVV9GV19MT0FEX1BTUDsKKwljYXNlIENISVBfQVJDVFVSVVM6CisJCXJldHVybiBBTURHUFVfRldfTE9BRF9ESVJFQ1Q7CisKIAlkZWZhdWx0OgogCQlEUk1fRVJST1IoIlVua25vd24gZmlybXdhcmUgbG9hZCB0eXBlXG4iKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdWNvZGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91Y29kZS5oCmluZGV4IGMxZmI2ZGMuLmIzNGYwMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91Y29kZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91Y29kZS5oCkBAIC05MCw2ICs5MCwxNSBAQCBzdHJ1Y3QgcHNwX2Zpcm13YXJlX2hlYWRlcl92MV8xIHsKIAl1aW50MzJfdCBrZGJfc2l6ZV9ieXRlczsKIH07CiAKKy8qIHZlcnNpb25fbWFqb3I9MSwgdmVyc2lvbl9taW5vcj0yICovCitzdHJ1Y3QgcHNwX2Zpcm13YXJlX2hlYWRlcl92MV8yIHsKKwlzdHJ1Y3QgcHNwX2Zpcm13YXJlX2hlYWRlcl92MV8wIHYxXzA7CisJdWludDMyX3QgcmVzZXJ2ZVszXTsKKwl1aW50MzJfdCBrZGJfaGVhZGVyX3ZlcnNpb247CisJdWludDMyX3Qga2RiX29mZnNldF9ieXRlczsKKwl1aW50MzJfdCBrZGJfc2l6ZV9ieXRlczsKK307CisKIC8qIHZlcnNpb25fbWFqb3I9MSwgdmVyc2lvbl9taW5vcj0wICovCiBzdHJ1Y3QgdGFfZmlybXdhcmVfaGVhZGVyX3YxXzAgewogCXN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyIGhlYWRlcjsKQEAgLTI2Miw2ICsyNzEsMTIgQEAgdW5pb24gYW1kZ3B1X2Zpcm13YXJlX2hlYWRlciB7CiBlbnVtIEFNREdQVV9VQ09ERV9JRCB7CiAJQU1ER1BVX1VDT0RFX0lEX1NETUEwID0gMCwKIAlBTURHUFVfVUNPREVfSURfU0RNQTEsCisJQU1ER1BVX1VDT0RFX0lEX1NETUEyLAorCUFNREdQVV9VQ09ERV9JRF9TRE1BMywKKwlBTURHUFVfVUNPREVfSURfU0RNQTQsCisJQU1ER1BVX1VDT0RFX0lEX1NETUE1LAorCUFNREdQVV9VQ09ERV9JRF9TRE1BNiwKKwlBTURHUFVfVUNPREVfSURfU0RNQTcsCiAJQU1ER1BVX1VDT0RFX0lEX0NQX0NFLAogCUFNREdQVV9VQ09ERV9JRF9DUF9QRlAsCiAJQU1ER1BVX1VDT0RFX0lEX0NQX01FLApAQCAtMjgxLDYgKzI5Niw3IEBAIGVudW0gQU1ER1BVX1VDT0RFX0lEIHsKIAlBTURHUFVfVUNPREVfSURfVVZEMSwKIAlBTURHUFVfVUNPREVfSURfVkNFLAogCUFNREdQVV9VQ09ERV9JRF9WQ04sCisJQU1ER1BVX1VDT0RFX0lEX1ZDTjEsCiAJQU1ER1BVX1VDT0RFX0lEX0RNQ1VfRVJBTSwKIAlBTURHUFVfVUNPREVfSURfRE1DVV9JTlRWLAogCUFNREdQVV9VQ09ERV9JRF9WQ04wX1JBTSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91bWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91bWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzVhZmEwNGQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdW1jLmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfX0FNREdQVV9VTUNfSF9fCisjZGVmaW5lIF9fQU1ER1BVX1VNQ19IX18KKworLyogaW1wbGVtZW50IDY0IGJpdHMgUkVHIG9wZXJhdGlvbnMgdmlhIDMyIGJpdHMgaW50ZXJmYWNlICovCisjZGVmaW5lIFJSRUc2NF9VTUMocmVnKQkoUlJFRzMyKHJlZykgfCBcCisJCQkJKCh1aW50NjRfdClSUkVHMzIoKHJlZykgKyAxKSA8PCAzMikpCisjZGVmaW5lIFdSRUc2NF9VTUMocmVnLCB2KQlcCisJZG8gewlcCisJCVdSRUczMigocmVnKSwgbG93ZXJfMzJfYml0cyh2KSk7CVwKKwkJV1JFRzMyKChyZWcpICsgMSwgdXBwZXJfMzJfYml0cyh2KSk7CVwKKwl9IHdoaWxlICgwKQorCisvKgorICogdm9pZCAoKmZ1bmMpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgcmFzX2Vycl9kYXRhICplcnJfZGF0YSwKKyAqCQkJCXVpbnQzMl90IHVtY19yZWdfb2Zmc2V0LCB1aW50MzJfdCBjaGFubmVsX2luZGV4KQorICovCisjZGVmaW5lIGFtZGdwdV91bWNfZm9yX2VhY2hfY2hhbm5lbChmdW5jKQlcCisJc3RydWN0IHJhc19lcnJfZGF0YSAqZXJyX2RhdGEgPSAoc3RydWN0IHJhc19lcnJfZGF0YSAqKXJhc19lcnJvcl9zdGF0dXM7CVwKKwl1aW50MzJfdCB1bWNfaW5zdCwgY2hhbm5lbF9pbnN0LCB1bWNfcmVnX29mZnNldCwgY2hhbm5lbF9pbmRleDsJXAorCWZvciAodW1jX2luc3QgPSAwOyB1bWNfaW5zdCA8IGFkZXYtPnVtYy51bWNfaW5zdF9udW07IHVtY19pbnN0KyspIHsJXAorCQkvKiBlbmFibGUgdGhlIGluZGV4IG1vZGUgdG8gcXVlcnkgZXJvciBjb3VudCBwZXIgY2hhbm5lbCAqLwlcCisJCWFkZXYtPnVtYy5mdW5jcy0+ZW5hYmxlX3VtY19pbmRleF9tb2RlKGFkZXYsIHVtY19pbnN0KTsJXAorCQlmb3IgKGNoYW5uZWxfaW5zdCA9IDA7CVwKKwkJCWNoYW5uZWxfaW5zdCA8IGFkZXYtPnVtYy5jaGFubmVsX2luc3RfbnVtOwlcCisJCQljaGFubmVsX2luc3QrKykgewlcCisJCQkvKiBjYWxjIHRoZSByZWdpc3RlciBvZmZzZXQgYWNjb3JkaW5nIHRvIGNoYW5uZWwgaW5zdGFuY2UgKi8JXAorCQkJdW1jX3JlZ19vZmZzZXQgPSBhZGV2LT51bWMuY2hhbm5lbF9vZmZzICogY2hhbm5lbF9pbnN0OwlcCisJCQkvKiBnZXQgY2hhbm5lbCBpbmRleCBvZiBpbnRlcmxlYXZlZCBtZW1vcnkgKi8JXAorCQkJY2hhbm5lbF9pbmRleCA9IGFkZXYtPnVtYy5jaGFubmVsX2lkeF90YmxbCVwKKwkJCQl1bWNfaW5zdCAqIGFkZXYtPnVtYy5jaGFubmVsX2luc3RfbnVtICsgY2hhbm5lbF9pbnN0XTsJXAorCQkJKGZ1bmMpKGFkZXYsIGVycl9kYXRhLCB1bWNfcmVnX29mZnNldCwgY2hhbm5lbF9pbmRleCk7CVwKKwkJfQlcCisJfQlcCisJYWRldi0+dW1jLmZ1bmNzLT5kaXNhYmxlX3VtY19pbmRleF9tb2RlKGFkZXYpOworCitzdHJ1Y3QgYW1kZ3B1X3VtY19mdW5jcyB7CisJdm9pZCAoKnJhc19pbml0KShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CisJdm9pZCAoKnF1ZXJ5X3Jhc19lcnJvcl9jb3VudCkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCXZvaWQgKnJhc19lcnJvcl9zdGF0dXMpOworCXZvaWQgKCpxdWVyeV9yYXNfZXJyb3JfYWRkcmVzcykoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCXZvaWQgKnJhc19lcnJvcl9zdGF0dXMpOworCXZvaWQgKCplbmFibGVfdW1jX2luZGV4X21vZGUpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQl1aW50MzJfdCB1bWNfaW5zdGFuY2UpOworCXZvaWQgKCpkaXNhYmxlX3VtY19pbmRleF9tb2RlKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cit9OworCitzdHJ1Y3QgYW1kZ3B1X3VtYyB7CisJLyogbWF4IGVycm9yIGNvdW50IGluIG9uZSByYXMgcXVlcnkgY2FsbCAqLworCXVpbnQzMl90IG1heF9yYXNfZXJyX2NudF9wZXJfcXVlcnk7CisJLyogbnVtYmVyIG9mIHVtYyBjaGFubmVsIGluc3RhbmNlIHdpdGggbWVtb3J5IG1hcCByZWdpc3RlciBhY2Nlc3MgKi8KKwl1aW50MzJfdCBjaGFubmVsX2luc3RfbnVtOworCS8qIG51bWJlciBvZiB1bWMgaW5zdGFuY2Ugd2l0aCBtZW1vcnkgbWFwIHJlZ2lzdGVyIGFjY2VzcyAqLworCXVpbnQzMl90IHVtY19pbnN0X251bTsKKwkvKiBVTUMgcmVnaXNlciBwZXIgY2hhbm5lbCBvZmZzZXQgKi8KKwl1aW50MzJfdCBjaGFubmVsX29mZnM7CisJLyogY2hhbm5lbCBpbmRleCB0YWJsZSBvZiBpbnRlcmxlYXZlZCBtZW1vcnkgKi8KKwljb25zdCB1aW50MzJfdCAqY2hhbm5lbF9pZHhfdGJsOworCisJY29uc3Qgc3RydWN0IGFtZGdwdV91bWNfZnVuY3MgKmZ1bmNzOworfTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKaW5kZXggNWIyZmVhMy4uYjJjMzY0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwpAQCAtMTA3Myw3ICsxMDczLDcgQEAgc3RhdGljIGludCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9ibyAqYm8sCiAJaWItPmxlbmd0aF9kdyA9IDE2OwogCiAJaWYgKGRpcmVjdCkgewotCQlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3UoYm8tPnRiby5yZXN2LAorCQlyID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShiby0+dGJvLmJhc2UucmVzdiwKIAkJCQkJCQl0cnVlLCBmYWxzZSwKIAkJCQkJCQltc2Vjc190b19qaWZmaWVzKDEwKSk7CiAJCWlmIChyID09IDApCkBAIC0xMDg1LDcgKzEwODUsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV91dmRfc2VuZF9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJaWYgKHIpCiAJCQlnb3RvIGVycl9mcmVlOwogCX0gZWxzZSB7Ci0JCXIgPSBhbWRncHVfc3luY19yZXN2KGFkZXYsICZqb2ItPnN5bmMsIGJvLT50Ym8ucmVzdiwKKwkJciA9IGFtZGdwdV9zeW5jX3Jlc3YoYWRldiwgJmpvYi0+c3luYywgYm8tPnRiby5iYXNlLnJlc3YsCiAJCQkJICAgICBBTURHUFVfRkVOQ0VfT1dORVJfVU5ERUZJTkVELCBmYWxzZSk7CiAJCWlmIChyKQogCQkJZ290byBlcnJfZnJlZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uYwppbmRleCAyZTEyZWViLi43YTZiZWIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jCkBAIC00NiwxMiArNDYsMjAgQEAKICNkZWZpbmUgRklSTVdBUkVfUkFWRU4JCSJhbWRncHUvcmF2ZW5fdmNuLmJpbiIKICNkZWZpbmUgRklSTVdBUkVfUElDQVNTTwkiYW1kZ3B1L3BpY2Fzc29fdmNuLmJpbiIKICNkZWZpbmUgRklSTVdBUkVfUkFWRU4yCQkiYW1kZ3B1L3JhdmVuMl92Y24uYmluIgorI2RlZmluZSBGSVJNV0FSRV9BUkNUVVJVUyAJImFtZGdwdS9hcmN0dXJ1c192Y24uYmluIgorI2RlZmluZSBGSVJNV0FSRV9SRU5PSVIgCSJhbWRncHUvcmVub2lyX3Zjbi5iaW4iCiAjZGVmaW5lIEZJUk1XQVJFX05BVkkxMCAJImFtZGdwdS9uYXZpMTBfdmNuLmJpbiIKKyNkZWZpbmUgRklSTVdBUkVfTkFWSTE0IAkiYW1kZ3B1L25hdmkxNF92Y24uYmluIgorI2RlZmluZSBGSVJNV0FSRV9OQVZJMTIgCSJhbWRncHUvbmF2aTEyX3Zjbi5iaW4iCiAKIE1PRFVMRV9GSVJNV0FSRShGSVJNV0FSRV9SQVZFTik7CiBNT0RVTEVfRklSTVdBUkUoRklSTVdBUkVfUElDQVNTTyk7CiBNT0RVTEVfRklSTVdBUkUoRklSTVdBUkVfUkFWRU4yKTsKK01PRFVMRV9GSVJNV0FSRShGSVJNV0FSRV9BUkNUVVJVUyk7CitNT0RVTEVfRklSTVdBUkUoRklSTVdBUkVfUkVOT0lSKTsKIE1PRFVMRV9GSVJNV0FSRShGSVJNV0FSRV9OQVZJMTApOworTU9EVUxFX0ZJUk1XQVJFKEZJUk1XQVJFX05BVkkxNCk7CitNT0RVTEVfRklSTVdBUkUoRklSTVdBUkVfTkFWSTEyKTsKIAogc3RhdGljIHZvaWQgYW1kZ3B1X3Zjbl9pZGxlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogCkBAIC02MSw3ICs2OSw3IEBAIGludCBhbWRncHVfdmNuX3N3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJY29uc3QgY2hhciAqZndfbmFtZTsKIAljb25zdCBzdHJ1Y3QgY29tbW9uX2Zpcm13YXJlX2hlYWRlciAqaGRyOwogCXVuc2lnbmVkIGNoYXIgZndfY2hlY2s7Ci0JaW50IHI7CisJaW50IGksIHI7CiAKIAlJTklUX0RFTEFZRURfV09SSygmYWRldi0+dmNuLmlkbGVfd29yaywgYW1kZ3B1X3Zjbl9pZGxlX3dvcmtfaGFuZGxlcik7CiAKQEAgLTc0LDEyICs4MiwzMyBAQCBpbnQgYW1kZ3B1X3Zjbl9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQllbHNlCiAJCQlmd19uYW1lID0gRklSTVdBUkVfUkFWRU47CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9BUkNUVVJVUzoKKwkJZndfbmFtZSA9IEZJUk1XQVJFX0FSQ1RVUlVTOworCQlicmVhazsKKwljYXNlIENISVBfUkVOT0lSOgorCQlmd19uYW1lID0gRklSTVdBUkVfUkVOT0lSOworCQlpZiAoKGFkZXYtPmZpcm13YXJlLmxvYWRfdHlwZSA9PSBBTURHUFVfRldfTE9BRF9QU1ApICYmCisJCSAgICAoYWRldi0+cGdfZmxhZ3MgJiBBTURfUEdfU1VQUE9SVF9WQ05fRFBHKSkKKwkJCWFkZXYtPnZjbi5pbmRpcmVjdF9zcmFtID0gdHJ1ZTsKKwkJYnJlYWs7CiAJY2FzZSBDSElQX05BVkkxMDoKIAkJZndfbmFtZSA9IEZJUk1XQVJFX05BVkkxMDsKIAkJaWYgKChhZGV2LT5maXJtd2FyZS5sb2FkX3R5cGUgPT0gQU1ER1BVX0ZXX0xPQURfUFNQKSAmJgogCQkgICAgKGFkZXYtPnBnX2ZsYWdzICYgQU1EX1BHX1NVUFBPUlRfVkNOX0RQRykpCiAJCQlhZGV2LT52Y24uaW5kaXJlY3Rfc3JhbSA9IHRydWU7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTQ6CisJCWZ3X25hbWUgPSBGSVJNV0FSRV9OQVZJMTQ7CisJCWlmICgoYWRldi0+ZmlybXdhcmUubG9hZF90eXBlID09IEFNREdQVV9GV19MT0FEX1BTUCkgJiYKKwkJICAgIChhZGV2LT5wZ19mbGFncyAmIEFNRF9QR19TVVBQT1JUX1ZDTl9EUEcpKQorCQkJYWRldi0+dmNuLmluZGlyZWN0X3NyYW0gPSB0cnVlOworCQlicmVhazsKKwljYXNlIENISVBfTkFWSTEyOgorCQlmd19uYW1lID0gRklSTVdBUkVfTkFWSTEyOworCQlpZiAoKGFkZXYtPmZpcm13YXJlLmxvYWRfdHlwZSA9PSBBTURHUFVfRldfTE9BRF9QU1ApICYmCisJCSAgICAoYWRldi0+cGdfZmxhZ3MgJiBBTURfUEdfU1VQUE9SVF9WQ05fRFBHKSkKKwkJCWFkZXYtPnZjbi5pbmRpcmVjdF9zcmFtID0gdHJ1ZTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTMzLDEyICsxNjIsMTggQEAgaW50IGFtZGdwdV92Y25fc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlib19zaXplID0gQU1ER1BVX1ZDTl9TVEFDS19TSVpFICsgQU1ER1BVX1ZDTl9DT05URVhUX1NJWkU7CiAJaWYgKGFkZXYtPmZpcm13YXJlLmxvYWRfdHlwZSAhPSBBTURHUFVfRldfTE9BRF9QU1ApCiAJCWJvX3NpemUgKz0gQU1ER1BVX0dQVV9QQUdFX0FMSUdOKGxlMzJfdG9fY3B1KGhkci0+dWNvZGVfc2l6ZV9ieXRlcykgKyA4KTsKLQlyID0gYW1kZ3B1X2JvX2NyZWF0ZV9rZXJuZWwoYWRldiwgYm9fc2l6ZSwgUEFHRV9TSVpFLAotCQkJCSAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAmYWRldi0+dmNuLnZjcHVfYm8sCi0JCQkJICAgICZhZGV2LT52Y24uZ3B1X2FkZHIsICZhZGV2LT52Y24uY3B1X2FkZHIpOwotCWlmIChyKSB7Ci0JCWRldl9lcnIoYWRldi0+ZGV2LCAiKCVkKSBmYWlsZWQgdG8gYWxsb2NhdGUgdmNuIGJvXG4iLCByKTsKLQkJcmV0dXJuIHI7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgaSsrKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCisJCXIgPSBhbWRncHVfYm9fY3JlYXRlX2tlcm5lbChhZGV2LCBib19zaXplLCBQQUdFX1NJWkUsCisJCQkJCQlBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAmYWRldi0+dmNuLmluc3RbaV0udmNwdV9ibywKKwkJCQkJCSZhZGV2LT52Y24uaW5zdFtpXS5ncHVfYWRkciwgJmFkZXYtPnZjbi5pbnN0W2ldLmNwdV9hZGRyKTsKKwkJaWYgKHIpIHsKKwkJCWRldl9lcnIoYWRldi0+ZGV2LCAiKCVkKSBmYWlsZWQgdG8gYWxsb2NhdGUgdmNuIGJvXG4iLCByKTsKKwkJCXJldHVybiByOworCQl9CiAJfQogCiAJaWYgKGFkZXYtPnZjbi5pbmRpcmVjdF9zcmFtKSB7CkBAIC0xNTYsMjYgKzE5MSwzMCBAQCBpbnQgYW1kZ3B1X3Zjbl9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiBpbnQgYW1kZ3B1X3Zjbl9zd19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCWludCBpOwotCi0Ja3ZmcmVlKGFkZXYtPnZjbi5zYXZlZF9ibyk7CisJaW50IGksIGo7CiAKIAlpZiAoYWRldi0+dmNuLmluZGlyZWN0X3NyYW0pIHsKIAkJYW1kZ3B1X2JvX2ZyZWVfa2VybmVsKCZhZGV2LT52Y24uZHBnX3NyYW1fYm8sCi0JCQkgICAgICAmYWRldi0+dmNuLmRwZ19zcmFtX2dwdV9hZGRyLAotCQkJICAgICAgKHZvaWQgKiopJmFkZXYtPnZjbi5kcGdfc3JhbV9jcHVfYWRkcik7CisJCQkJICAgICAgJmFkZXYtPnZjbi5kcGdfc3JhbV9ncHVfYWRkciwKKwkJCQkgICAgICAodm9pZCAqKikmYWRldi0+dmNuLmRwZ19zcmFtX2NwdV9hZGRyKTsKIAl9CiAKLQlhbWRncHVfYm9fZnJlZV9rZXJuZWwoJmFkZXYtPnZjbi52Y3B1X2JvLAotCQkJICAgICAgJmFkZXYtPnZjbi5ncHVfYWRkciwKLQkJCSAgICAgICh2b2lkICoqKSZhZGV2LT52Y24uY3B1X2FkZHIpOworCWZvciAoaiA9IDA7IGogPCBhZGV2LT52Y24ubnVtX3Zjbl9pbnN0OyArK2opIHsKKwkJaWYgKGFkZXYtPnZjbi5oYXJ2ZXN0X2NvbmZpZyAmICgxIDw8IGopKQorCQkJY29udGludWU7CisJCWt2ZnJlZShhZGV2LT52Y24uaW5zdFtqXS5zYXZlZF9ibyk7CiAKLQlhbWRncHVfcmluZ19maW5pKCZhZGV2LT52Y24ucmluZ19kZWMpOworCQlhbWRncHVfYm9fZnJlZV9rZXJuZWwoJmFkZXYtPnZjbi5pbnN0W2pdLnZjcHVfYm8sCisJCQkJCSAgJmFkZXYtPnZjbi5pbnN0W2pdLmdwdV9hZGRyLAorCQkJCQkgICh2b2lkICoqKSZhZGV2LT52Y24uaW5zdFtqXS5jcHVfYWRkcik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV9lbmNfcmluZ3M7ICsraSkKLQkJYW1kZ3B1X3JpbmdfZmluaSgmYWRldi0+dmNuLnJpbmdfZW5jW2ldKTsKKwkJYW1kZ3B1X3JpbmdfZmluaSgmYWRldi0+dmNuLmluc3Rbal0ucmluZ19kZWMpOwogCi0JYW1kZ3B1X3JpbmdfZmluaSgmYWRldi0+dmNuLnJpbmdfanBlZyk7CisJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52Y24ubnVtX2VuY19yaW5nczsgKytpKQorCQkJYW1kZ3B1X3JpbmdfZmluaSgmYWRldi0+dmNuLmluc3Rbal0ucmluZ19lbmNbaV0pOworCisJCWFtZGdwdV9yaW5nX2ZpbmkoJmFkZXYtPnZjbi5pbnN0W2pdLnJpbmdfanBlZyk7CisJfQogCiAJcmVsZWFzZV9maXJtd2FyZShhZGV2LT52Y24uZncpOwogCkBAIC0xODYsMjEgKzIyNSwyNSBAQCBpbnQgYW1kZ3B1X3Zjbl9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXVuc2lnbmVkIHNpemU7CiAJdm9pZCAqcHRyOworCWludCBpOwogCiAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZhZGV2LT52Y24uaWRsZV93b3JrKTsKIAotCWlmIChhZGV2LT52Y24udmNwdV9ibyA9PSBOVUxMKQotCQlyZXR1cm4gMDsKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytpKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCQlpZiAoYWRldi0+dmNuLmluc3RbaV0udmNwdV9ibyA9PSBOVUxMKQorCQkJcmV0dXJuIDA7CiAKLQlzaXplID0gYW1kZ3B1X2JvX3NpemUoYWRldi0+dmNuLnZjcHVfYm8pOwotCXB0ciA9IGFkZXYtPnZjbi5jcHVfYWRkcjsKKwkJc2l6ZSA9IGFtZGdwdV9ib19zaXplKGFkZXYtPnZjbi5pbnN0W2ldLnZjcHVfYm8pOworCQlwdHIgPSBhZGV2LT52Y24uaW5zdFtpXS5jcHVfYWRkcjsKIAotCWFkZXYtPnZjbi5zYXZlZF9ibyA9IGt2bWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwotCWlmICghYWRldi0+dmNuLnNhdmVkX2JvKQotCQlyZXR1cm4gLUVOT01FTTsKKwkJYWRldi0+dmNuLmluc3RbaV0uc2F2ZWRfYm8gPSBrdm1hbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFhZGV2LT52Y24uaW5zdFtpXS5zYXZlZF9ibykKKwkJCXJldHVybiAtRU5PTUVNOwogCi0JbWVtY3B5X2Zyb21pbyhhZGV2LT52Y24uc2F2ZWRfYm8sIHB0ciwgc2l6ZSk7Ci0KKwkJbWVtY3B5X2Zyb21pbyhhZGV2LT52Y24uaW5zdFtpXS5zYXZlZF9ibywgcHRyLCBzaXplKTsKKwl9CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTIwOCwzMiArMjUxLDM2IEBAIGludCBhbWRncHVfdmNuX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAl1bnNpZ25lZCBzaXplOwogCXZvaWQgKnB0cjsKKwlpbnQgaTsKIAotCWlmIChhZGV2LT52Y24udmNwdV9ibyA9PSBOVUxMKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytpKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCQlpZiAoYWRldi0+dmNuLmluc3RbaV0udmNwdV9ibyA9PSBOVUxMKQorCQkJcmV0dXJuIC1FSU5WQUw7CiAKLQlzaXplID0gYW1kZ3B1X2JvX3NpemUoYWRldi0+dmNuLnZjcHVfYm8pOwotCXB0ciA9IGFkZXYtPnZjbi5jcHVfYWRkcjsKKwkJc2l6ZSA9IGFtZGdwdV9ib19zaXplKGFkZXYtPnZjbi5pbnN0W2ldLnZjcHVfYm8pOworCQlwdHIgPSBhZGV2LT52Y24uaW5zdFtpXS5jcHVfYWRkcjsKIAotCWlmIChhZGV2LT52Y24uc2F2ZWRfYm8gIT0gTlVMTCkgewotCQltZW1jcHlfdG9pbyhwdHIsIGFkZXYtPnZjbi5zYXZlZF9ibywgc2l6ZSk7Ci0JCWt2ZnJlZShhZGV2LT52Y24uc2F2ZWRfYm8pOwotCQlhZGV2LT52Y24uc2F2ZWRfYm8gPSBOVUxMOwotCX0gZWxzZSB7Ci0JCWNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICpoZHI7Ci0JCXVuc2lnbmVkIG9mZnNldDsKKwkJaWYgKGFkZXYtPnZjbi5pbnN0W2ldLnNhdmVkX2JvICE9IE5VTEwpIHsKKwkJCW1lbWNweV90b2lvKHB0ciwgYWRldi0+dmNuLmluc3RbaV0uc2F2ZWRfYm8sIHNpemUpOworCQkJa3ZmcmVlKGFkZXYtPnZjbi5pbnN0W2ldLnNhdmVkX2JvKTsKKwkJCWFkZXYtPnZjbi5pbnN0W2ldLnNhdmVkX2JvID0gTlVMTDsKKwkJfSBlbHNlIHsKKwkJCWNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICpoZHI7CisJCQl1bnNpZ25lZCBvZmZzZXQ7CiAKLQkJaGRyID0gKGNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICopYWRldi0+dmNuLmZ3LT5kYXRhOwotCQlpZiAoYWRldi0+ZmlybXdhcmUubG9hZF90eXBlICE9IEFNREdQVV9GV19MT0FEX1BTUCkgewotCQkJb2Zmc2V0ID0gbGUzMl90b19jcHUoaGRyLT51Y29kZV9hcnJheV9vZmZzZXRfYnl0ZXMpOwotCQkJbWVtY3B5X3RvaW8oYWRldi0+dmNuLmNwdV9hZGRyLCBhZGV2LT52Y24uZnctPmRhdGEgKyBvZmZzZXQsCi0JCQkJICAgIGxlMzJfdG9fY3B1KGhkci0+dWNvZGVfc2l6ZV9ieXRlcykpOwotCQkJc2l6ZSAtPSBsZTMyX3RvX2NwdShoZHItPnVjb2RlX3NpemVfYnl0ZXMpOwotCQkJcHRyICs9IGxlMzJfdG9fY3B1KGhkci0+dWNvZGVfc2l6ZV9ieXRlcyk7CisJCQloZHIgPSAoY29uc3Qgc3RydWN0IGNvbW1vbl9maXJtd2FyZV9oZWFkZXIgKilhZGV2LT52Y24uZnctPmRhdGE7CisJCQlpZiAoYWRldi0+ZmlybXdhcmUubG9hZF90eXBlICE9IEFNREdQVV9GV19MT0FEX1BTUCkgeworCQkJCW9mZnNldCA9IGxlMzJfdG9fY3B1KGhkci0+dWNvZGVfYXJyYXlfb2Zmc2V0X2J5dGVzKTsKKwkJCQltZW1jcHlfdG9pbyhhZGV2LT52Y24uaW5zdFtpXS5jcHVfYWRkciwgYWRldi0+dmNuLmZ3LT5kYXRhICsgb2Zmc2V0LAorCQkJCQkgICAgbGUzMl90b19jcHUoaGRyLT51Y29kZV9zaXplX2J5dGVzKSk7CisJCQkJc2l6ZSAtPSBsZTMyX3RvX2NwdShoZHItPnVjb2RlX3NpemVfYnl0ZXMpOworCQkJCXB0ciArPSBsZTMyX3RvX2NwdShoZHItPnVjb2RlX3NpemVfYnl0ZXMpOworCQkJfQorCQkJbWVtc2V0X2lvKHB0ciwgMCwgc2l6ZSk7CiAJCX0KLQkJbWVtc2V0X2lvKHB0ciwgMCwgc2l6ZSk7CiAJfQotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI0MSwzNSArMjg4LDQwIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV92Y25faWRsZV93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0KIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBhbWRncHVfZGV2aWNlLCB2Y24uaWRsZV93b3JrLndvcmspOwotCXVuc2lnbmVkIGludCBmZW5jZXMgPSAwOwotCXVuc2lnbmVkIGludCBpOworCXVuc2lnbmVkIGludCBmZW5jZXMgPSAwLCBmZW5jZVtBTURHUFVfTUFYX1ZDTl9JTlNUQU5DRVNdID0gezB9OworCXVuc2lnbmVkIGludCBpLCBqOwogCi0JZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyArK2kpIHsKLQkJZmVuY2VzICs9IGFtZGdwdV9mZW5jZV9jb3VudF9lbWl0dGVkKCZhZGV2LT52Y24ucmluZ19lbmNbaV0pOworCWZvciAoaiA9IDA7IGogPCBhZGV2LT52Y24ubnVtX3Zjbl9pbnN0OyArK2opIHsKKwkJaWYgKGFkZXYtPnZjbi5oYXJ2ZXN0X2NvbmZpZyAmICgxIDw8IGopKQorCQkJY29udGludWU7CisJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52Y24ubnVtX2VuY19yaW5nczsgKytpKSB7CisJCQlmZW5jZVtqXSArPSBhbWRncHVfZmVuY2VfY291bnRfZW1pdHRlZCgmYWRldi0+dmNuLmluc3Rbal0ucmluZ19lbmNbaV0pOworCQl9CisKKwkJaWYgKGFkZXYtPnBnX2ZsYWdzICYgQU1EX1BHX1NVUFBPUlRfVkNOX0RQRykJeworCQkJc3RydWN0IGRwZ19wYXVzZV9zdGF0ZSBuZXdfc3RhdGU7CisKKwkJCWlmIChmZW5jZVtqXSkKKwkJCQluZXdfc3RhdGUuZndfYmFzZWQgPSBWQ05fRFBHX1NUQVRFX19QQVVTRTsKKwkJCWVsc2UKKwkJCQluZXdfc3RhdGUuZndfYmFzZWQgPSBWQ05fRFBHX1NUQVRFX19VTlBBVVNFOworCisJCQlpZiAoYW1kZ3B1X2ZlbmNlX2NvdW50X2VtaXR0ZWQoJmFkZXYtPnZjbi5pbnN0W2pdLnJpbmdfanBlZykpCisJCQkJbmV3X3N0YXRlLmpwZWcgPSBWQ05fRFBHX1NUQVRFX19QQVVTRTsKKwkJCWVsc2UKKwkJCQluZXdfc3RhdGUuanBlZyA9IFZDTl9EUEdfU1RBVEVfX1VOUEFVU0U7CisKKwkJCWFkZXYtPnZjbi5wYXVzZV9kcGdfbW9kZShhZGV2LCAmbmV3X3N0YXRlKTsKKwkJfQorCisJCWZlbmNlW2pdICs9IGFtZGdwdV9mZW5jZV9jb3VudF9lbWl0dGVkKCZhZGV2LT52Y24uaW5zdFtqXS5yaW5nX2pwZWcpOworCQlmZW5jZVtqXSArPSBhbWRncHVfZmVuY2VfY291bnRfZW1pdHRlZCgmYWRldi0+dmNuLmluc3Rbal0ucmluZ19kZWMpOworCQlmZW5jZXMgKz0gZmVuY2Vbal07CiAJfQogCi0JaWYgKGFkZXYtPnBnX2ZsYWdzICYgQU1EX1BHX1NVUFBPUlRfVkNOX0RQRykJewotCQlzdHJ1Y3QgZHBnX3BhdXNlX3N0YXRlIG5ld19zdGF0ZTsKLQotCQlpZiAoZmVuY2VzKQotCQkJbmV3X3N0YXRlLmZ3X2Jhc2VkID0gVkNOX0RQR19TVEFURV9fUEFVU0U7Ci0JCWVsc2UKLQkJCW5ld19zdGF0ZS5md19iYXNlZCA9IFZDTl9EUEdfU1RBVEVfX1VOUEFVU0U7Ci0KLQkJaWYgKGFtZGdwdV9mZW5jZV9jb3VudF9lbWl0dGVkKCZhZGV2LT52Y24ucmluZ19qcGVnKSkKLQkJCW5ld19zdGF0ZS5qcGVnID0gVkNOX0RQR19TVEFURV9fUEFVU0U7Ci0JCWVsc2UKLQkJCW5ld19zdGF0ZS5qcGVnID0gVkNOX0RQR19TVEFURV9fVU5QQVVTRTsKLQotCQlhZGV2LT52Y24ucGF1c2VfZHBnX21vZGUoYWRldiwgJm5ld19zdGF0ZSk7Ci0JfQotCi0JZmVuY2VzICs9IGFtZGdwdV9mZW5jZV9jb3VudF9lbWl0dGVkKCZhZGV2LT52Y24ucmluZ19qcGVnKTsKLQlmZW5jZXMgKz0gYW1kZ3B1X2ZlbmNlX2NvdW50X2VtaXR0ZWQoJmFkZXYtPnZjbi5yaW5nX2RlYyk7Ci0KIAlpZiAoZmVuY2VzID09IDApIHsKIAkJYW1kZ3B1X2dmeF9vZmZfY3RybChhZGV2LCB0cnVlKTsKLQkJaWYgKGFkZXYtPmFzaWNfdHlwZSA8IENISVBfTkFWSTEwICYmIGFkZXYtPnBtLmRwbV9lbmFibGVkKQorCQlpZiAoYWRldi0+YXNpY190eXBlIDwgQ0hJUF9BUkNUVVJVUyAmJiBhZGV2LT5wbS5kcG1fZW5hYmxlZCkKIAkJCWFtZGdwdV9kcG1fZW5hYmxlX3V2ZChhZGV2LCBmYWxzZSk7CiAJCWVsc2UKIAkJCWFtZGdwdV9kZXZpY2VfaXBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKGFkZXYsIEFNRF9JUF9CTE9DS19UWVBFX1ZDTiwKQEAgLTI4Niw3ICszMzgsNyBAQCB2b2lkIGFtZGdwdV92Y25fcmluZ19iZWdpbl91c2Uoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCiAJaWYgKHNldF9jbG9ja3MpIHsKIAkJYW1kZ3B1X2dmeF9vZmZfY3RybChhZGV2LCBmYWxzZSk7Ci0JCWlmIChhZGV2LT5hc2ljX3R5cGUgPCBDSElQX05BVkkxMCAmJiBhZGV2LT5wbS5kcG1fZW5hYmxlZCkKKwkJaWYgKGFkZXYtPmFzaWNfdHlwZSA8IENISVBfQVJDVFVSVVMgJiYgYWRldi0+cG0uZHBtX2VuYWJsZWQpCiAJCQlhbWRncHVfZHBtX2VuYWJsZV91dmQoYWRldiwgdHJ1ZSk7CiAJCWVsc2UKIAkJCWFtZGdwdV9kZXZpY2VfaXBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKGFkZXYsIEFNRF9JUF9CTE9DS19UWVBFX1ZDTiwKQEAgLTI5OSwxNCArMzUxLDE0IEBAIHZvaWQgYW1kZ3B1X3Zjbl9yaW5nX2JlZ2luX3VzZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAJCXVuc2lnbmVkIGludCBpOwogCiAJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52Y24ubnVtX2VuY19yaW5nczsgKytpKSB7Ci0JCQlmZW5jZXMgKz0gYW1kZ3B1X2ZlbmNlX2NvdW50X2VtaXR0ZWQoJmFkZXYtPnZjbi5yaW5nX2VuY1tpXSk7CisJCQlmZW5jZXMgKz0gYW1kZ3B1X2ZlbmNlX2NvdW50X2VtaXR0ZWQoJmFkZXYtPnZjbi5pbnN0W3JpbmctPm1lXS5yaW5nX2VuY1tpXSk7CiAJCX0KIAkJaWYgKGZlbmNlcykKIAkJCW5ld19zdGF0ZS5md19iYXNlZCA9IFZDTl9EUEdfU1RBVEVfX1BBVVNFOwogCQllbHNlCiAJCQluZXdfc3RhdGUuZndfYmFzZWQgPSBWQ05fRFBHX1NUQVRFX19VTlBBVVNFOwogCi0JCWlmIChhbWRncHVfZmVuY2VfY291bnRfZW1pdHRlZCgmYWRldi0+dmNuLnJpbmdfanBlZykpCisJCWlmIChhbWRncHVfZmVuY2VfY291bnRfZW1pdHRlZCgmYWRldi0+dmNuLmluc3RbcmluZy0+bWVdLnJpbmdfanBlZykpCiAJCQluZXdfc3RhdGUuanBlZyA9IFZDTl9EUEdfU1RBVEVfX1BBVVNFOwogCQllbHNlCiAJCQluZXdfc3RhdGUuanBlZyA9IFZDTl9EUEdfU1RBVEVfX1VOUEFVU0U7CkBAIC0zMzIsNyArMzg0LDcgQEAgaW50IGFtZGdwdV92Y25fZGVjX3JpbmdfdGVzdF9yaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAl1bnNpZ25lZCBpOwogCWludCByOwogCi0JV1JFRzMyKGFkZXYtPnZjbi5leHRlcm5hbC5zY3JhdGNoOSwgMHhDQUZFREVBRCk7CisJV1JFRzMyKGFkZXYtPnZjbi5pbnN0W3JpbmctPm1lXS5leHRlcm5hbC5zY3JhdGNoOSwgMHhDQUZFREVBRCk7CiAJciA9IGFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDMpOwogCWlmIChyKQogCQlyZXR1cm4gcjsKQEAgLTM0MCw3ICszOTIsNyBAQCBpbnQgYW1kZ3B1X3Zjbl9kZWNfcmluZ190ZXN0X3Jpbmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIDB4REVBREJFRUYpOwogCWFtZGdwdV9yaW5nX2NvbW1pdChyaW5nKTsKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKLQkJdG1wID0gUlJFRzMyKGFkZXYtPnZjbi5leHRlcm5hbC5zY3JhdGNoOSk7CisJCXRtcCA9IFJSRUczMihhZGV2LT52Y24uaW5zdFtyaW5nLT5tZV0uZXh0ZXJuYWwuc2NyYXRjaDkpOwogCQlpZiAodG1wID09IDB4REVBREJFRUYpCiAJCQlicmVhazsKIAkJdWRlbGF5KDEpOwpAQCAtNjUxLDcgKzcwMyw3IEBAIGludCBhbWRncHVfdmNuX2pwZWdfcmluZ190ZXN0X3Jpbmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCXVuc2lnbmVkIGk7CiAJaW50IHI7CiAKLQlXUkVHMzIoYWRldi0+dmNuLmV4dGVybmFsLmpwZWdfcGl0Y2gsIDB4Q0FGRURFQUQpOworCVdSRUczMihhZGV2LT52Y24uaW5zdFtyaW5nLT5tZV0uZXh0ZXJuYWwuanBlZ19waXRjaCwgMHhDQUZFREVBRCk7CiAJciA9IGFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDMpOwogCWlmIChyKQogCQlyZXR1cm4gcjsKQEAgLTY2MSw3ICs3MTMsNyBAQCBpbnQgYW1kZ3B1X3Zjbl9qcGVnX3JpbmdfdGVzdF9yaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAlhbWRncHVfcmluZ19jb21taXQocmluZyk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKLQkJdG1wID0gUlJFRzMyKGFkZXYtPnZjbi5leHRlcm5hbC5qcGVnX3BpdGNoKTsKKwkJdG1wID0gUlJFRzMyKGFkZXYtPnZjbi5pbnN0W3JpbmctPm1lXS5leHRlcm5hbC5qcGVnX3BpdGNoKTsKIAkJaWYgKHRtcCA9PSAweERFQURCRUVGKQogCQkJYnJlYWs7CiAJCXVkZWxheSgxKTsKQEAgLTczNSw3ICs3ODcsNyBAQCBpbnQgYW1kZ3B1X3Zjbl9qcGVnX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKLQkJdG1wID0gUlJFRzMyKGFkZXYtPnZjbi5leHRlcm5hbC5qcGVnX3BpdGNoKTsKKwkJdG1wID0gUlJFRzMyKGFkZXYtPnZjbi5pbnN0W3JpbmctPm1lXS5leHRlcm5hbC5qcGVnX3BpdGNoKTsKIAkJaWYgKHRtcCA9PSAweERFQURCRUVGKQogCQkJYnJlYWs7CiAJCXVkZWxheSgxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uaAppbmRleCAxOTY2MWM2Li5kZmFjZTI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNuLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5oCkBAIC0zMCw2ICszMCwxMSBAQAogI2RlZmluZSBBTURHUFVfVkNOX0ZJUk1XQVJFX09GRlNFVAkyNTYKICNkZWZpbmUgQU1ER1BVX1ZDTl9NQVhfRU5DX1JJTkdTCTMKIAorI2RlZmluZSBBTURHUFVfTUFYX1ZDTl9JTlNUQU5DRVMJMgorCisjZGVmaW5lIEFNREdQVV9WQ05fSEFSVkVTVF9WQ04wICgxIDw8IDApCisjZGVmaW5lIEFNREdQVV9WQ05fSEFSVkVTVF9WQ04xICgxIDw8IDEpCisKICNkZWZpbmUgVkNOX0RFQ19LTURfQ01EIAkJMHg4MDAwMDAwMAogI2RlZmluZSBWQ05fREVDX0NNRF9GRU5DRQkJMHgwMDAwMDAwMAogI2RlZmluZSBWQ05fREVDX0NNRF9UUkFQCQkweDAwMDAwMDAxCkBAIC0xNDYsMzQgKzE1MSw0OSBAQCBzdHJ1Y3QgYW1kZ3B1X3Zjbl9yZWd7CiAJdW5zaWduZWQJZGF0YTE7CiAJdW5zaWduZWQJY21kOwogCXVuc2lnbmVkCW5vcDsKKwl1bnNpZ25lZAljb250ZXh0X2lkOworCXVuc2lnbmVkCWliX3ZtaWQ7CisJdW5zaWduZWQJaWJfYmFyX2xvdzsKKwl1bnNpZ25lZAlpYl9iYXJfaGlnaDsKKwl1bnNpZ25lZAlpYl9zaXplOworCXVuc2lnbmVkCWdwX3NjcmF0Y2g4OwogCXVuc2lnbmVkCXNjcmF0Y2g5OwogCXVuc2lnbmVkCWpwZWdfcGl0Y2g7CiB9OwogCi1zdHJ1Y3QgYW1kZ3B1X3ZjbiB7CitzdHJ1Y3QgYW1kZ3B1X3Zjbl9pbnN0IHsKIAlzdHJ1Y3QgYW1kZ3B1X2JvCSp2Y3B1X2JvOwogCXZvaWQJCQkqY3B1X2FkZHI7CiAJdWludDY0X3QJCWdwdV9hZGRyOwotCXVuc2lnbmVkCQlmd192ZXJzaW9uOwogCXZvaWQJCQkqc2F2ZWRfYm87Ci0Jc3RydWN0IGRlbGF5ZWRfd29yawlpZGxlX3dvcms7Ci0JY29uc3Qgc3RydWN0IGZpcm13YXJlCSpmdzsJLyogVkNOIGZpcm13YXJlICovCiAJc3RydWN0IGFtZGdwdV9yaW5nCXJpbmdfZGVjOwogCXN0cnVjdCBhbWRncHVfcmluZwlyaW5nX2VuY1tBTURHUFVfVkNOX01BWF9FTkNfUklOR1NdOwogCXN0cnVjdCBhbWRncHVfcmluZwlyaW5nX2pwZWc7CiAJc3RydWN0IGFtZGdwdV9pcnFfc3JjCWlycTsKKwlzdHJ1Y3QgYW1kZ3B1X3Zjbl9yZWcJZXh0ZXJuYWw7Cit9OworCitzdHJ1Y3QgYW1kZ3B1X3ZjbiB7CisJdW5zaWduZWQJCWZ3X3ZlcnNpb247CisJc3RydWN0IGRlbGF5ZWRfd29yawlpZGxlX3dvcms7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlCSpmdzsJLyogVkNOIGZpcm13YXJlICovCiAJdW5zaWduZWQJCW51bV9lbmNfcmluZ3M7CiAJZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUgY3VyX3N0YXRlOwogCXN0cnVjdCBkcGdfcGF1c2Vfc3RhdGUgcGF1c2Vfc3RhdGU7Ci0Jc3RydWN0IGFtZGdwdV92Y25fcmVnCWludGVybmFsLCBleHRlcm5hbDsKLQlpbnQgKCpwYXVzZV9kcGdfbW9kZSkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCXN0cnVjdCBkcGdfcGF1c2Vfc3RhdGUgKm5ld19zdGF0ZSk7CiAKIAlib29sCQkJaW5kaXJlY3Rfc3JhbTsKIAlzdHJ1Y3QgYW1kZ3B1X2JvCSpkcGdfc3JhbV9ibzsKIAl2b2lkCQkJKmRwZ19zcmFtX2NwdV9hZGRyOwogCXVpbnQ2NF90CQlkcGdfc3JhbV9ncHVfYWRkcjsKIAl1aW50MzJfdAkJKmRwZ19zcmFtX2N1cnJfYWRkcjsKKworCXVpbnQ4X3QJbnVtX3Zjbl9pbnN0OworCXN0cnVjdCBhbWRncHVfdmNuX2luc3QJaW5zdFtBTURHUFVfTUFYX1ZDTl9JTlNUQU5DRVNdOworCXN0cnVjdCBhbWRncHVfdmNuX3JlZwlpbnRlcm5hbDsKKworCXVuc2lnbmVkCWhhcnZlc3RfY29uZmlnOworCWludCAoKnBhdXNlX2RwZ19tb2RlKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJc3RydWN0IGRwZ19wYXVzZV9zdGF0ZSAqbmV3X3N0YXRlKTsKIH07CiAKIGludCBhbWRncHVfdmNuX3N3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMKaW5kZXggNTlkZDIwNC4uZTMyYWU5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jCkBAIC00MzAsNDggKzQzMCwzIEBAIHVpbnQzMl90IGFtZGdwdV92aXJ0X2dldF9tY2xrKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGxvd2VzdCkKIAogCXJldHVybiBjbGs7CiB9Ci0KLXZvaWQgYW1kZ3B1X3ZpcnRfaW5pdF9yZWdfYWNjZXNzX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCi17Ci0Jc3RydWN0IGFtZGdwdV92aXJ0ICp2aXJ0ID0gJmFkZXYtPnZpcnQ7Ci0KLQlpZiAodmlydC0+b3BzICYmIHZpcnQtPm9wcy0+aW5pdF9yZWdfYWNjZXNzX21vZGUpCi0JCXZpcnQtPm9wcy0+aW5pdF9yZWdfYWNjZXNzX21vZGUoYWRldik7Ci19Ci0KLWJvb2wgYW1kZ3B1X3ZpcnRfc3VwcG9ydF9wc3BfcHJnX2loX3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKLXsKLQlib29sIHJldCA9IGZhbHNlOwotCXN0cnVjdCBhbWRncHVfdmlydCAqdmlydCA9ICZhZGV2LT52aXJ0OwotCi0JaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KQotCQkmJiAodmlydC0+cmVnX2FjY2Vzc19tb2RlICYgQU1ER1BVX1ZJUlRfUkVHX0FDQ0VTU19QU1BfUFJHX0lIKSkKLQkJcmV0ID0gdHJ1ZTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLWJvb2wgYW1kZ3B1X3ZpcnRfc3VwcG9ydF9ybGNfcHJnX3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKLXsKLQlib29sIHJldCA9IGZhbHNlOwotCXN0cnVjdCBhbWRncHVfdmlydCAqdmlydCA9ICZhZGV2LT52aXJ0OwotCi0JaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KQotCQkmJiAodmlydC0+cmVnX2FjY2Vzc19tb2RlICYgQU1ER1BVX1ZJUlRfUkVHX0FDQ0VTU19STEMpCi0JCSYmICEoYW1kZ3B1X3NyaW92X3J1bnRpbWUoYWRldikpKQotCQlyZXQgPSB0cnVlOwotCi0JcmV0dXJuIHJldDsKLX0KLQotYm9vbCBhbWRncHVfdmlydF9zdXBwb3J0X3NraXBfc2V0dGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKLXsKLQlib29sIHJldCA9IGZhbHNlOwotCXN0cnVjdCBhbWRncHVfdmlydCAqdmlydCA9ICZhZGV2LT52aXJ0OwotCi0JaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KQotCQkmJiAodmlydC0+cmVnX2FjY2Vzc19tb2RlICYgQU1ER1BVX1ZJUlRfUkVHX1NLSVBfU0VFVElORykpCi0JCXJldCA9IHRydWU7Ci0KLQlyZXR1cm4gcmV0OwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmgKaW5kZXggZjUxMDc3My4uYjBiMmJkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oCkBAIC00OCwxMiArNDgsNiBAQCBzdHJ1Y3QgYW1kZ3B1X3ZmX2Vycm9yX2J1ZmZlciB7CiAJdWludDY0X3QgZGF0YVtBTURHUFVfVkZfRVJST1JfRU5UUllfU0laRV07CiB9OwogCi0vKiBBY2NvcmRpbmcgdG8gdGhlIGZ3IGZlYXR1cmUsIHNvbWUgbmV3IHJlZyBhY2Nlc3MgbW9kZXMgYXJlIHN1cHBvcnRlZCAqLwotI2RlZmluZSBBTURHUFVfVklSVF9SRUdfQUNDRVNTX0xFR0FDWSAgICAgICAgICAoMSA8PCAwKSAvKiBkaXJlY3RseSBtbWlvICovCi0jZGVmaW5lIEFNREdQVV9WSVJUX1JFR19BQ0NFU1NfUFNQX1BSR19JSCAgICAgICgxIDw8IDEpIC8qIGJ5IFBTUCAqLwotI2RlZmluZSBBTURHUFVfVklSVF9SRUdfQUNDRVNTX1JMQyAgICAgICAgICAgICAoMSA8PCAyKSAvKiBieSBSTEMgKi8KLSNkZWZpbmUgQU1ER1BVX1ZJUlRfUkVHX1NLSVBfU0VFVElORyAgICAgICAgICAgKDEgPDwgMykgLyogU2tpcCBzZXR0aW5nIHJlZyAqLwotCiAvKioKICAqIHN0cnVjdCBhbWRncHVfdmlydF9vcHMgLSBhbWRncHUgZGV2aWNlIHZpcnQgb3BlcmF0aW9ucwogICovCkBAIC02NSw3ICs1OSw2IEBAIHN0cnVjdCBhbWRncHVfdmlydF9vcHMgewogCXZvaWQgKCp0cmFuc19tc2cpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgcmVxLCB1MzIgZGF0YTEsIHUzMiBkYXRhMiwgdTMyIGRhdGEzKTsKIAlpbnQgKCpnZXRfcHBfY2xrKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHR5cGUsIGNoYXIgKmJ1Zik7CiAJaW50ICgqZm9yY2VfZHBtX2xldmVsKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIGxldmVsKTsKLQl2b2lkICgqaW5pdF9yZWdfYWNjZXNzX21vZGUpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIH07CiAKIC8qCkBAIC0zMTUsMTAgKzMwOCw0IEBAIGludCBhbWRncHVfdmlydF9md19yZXNlcnZlX2dldF9jaGVja3N1bSh2b2lkICpvYmosIHVuc2lnbmVkIGxvbmcgb2JqX3NpemUsCiB2b2lkIGFtZGdwdV92aXJ0X2luaXRfZGF0YV9leGNoYW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiB1aW50MzJfdCBhbWRncHVfdmlydF9nZXRfc2NsayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCBsb3dlc3QpOwogdWludDMyX3QgYW1kZ3B1X3ZpcnRfZ2V0X21jbGsoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgbG93ZXN0KTsKLQotdm9pZCBhbWRncHVfdmlydF9pbml0X3JlZ19hY2Nlc3NfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Ci1ib29sIGFtZGdwdV92aXJ0X3N1cHBvcnRfcHNwX3ByZ19paF9yZWcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwotYm9vbCBhbWRncHVfdmlydF9zdXBwb3J0X3JsY19wcmdfcmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKLWJvb2wgYW1kZ3B1X3ZpcnRfc3VwcG9ydF9za2lwX3NldHRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKaW5kZXggMjRjM2MwNS4uZTJmYjE0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKQEAgLTMwMiw3ICszMDIsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfdm1fYm9fYmFzZV9pbml0KHN0cnVjdCBhbWRncHVfdm1fYm9fYmFzZSAqYmFzZSwKIAliYXNlLT5uZXh0ID0gYm8tPnZtX2JvOwogCWJvLT52bV9ibyA9IGJhc2U7CiAKLQlpZiAoYm8tPnRiby5yZXN2ICE9IHZtLT5yb290LmJhc2UuYm8tPnRiby5yZXN2KQorCWlmIChiby0+dGJvLmJhc2UucmVzdiAhPSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8uYmFzZS5yZXN2KQogCQlyZXR1cm47CiAKIAl2bS0+YnVsa19tb3ZlYWJsZSA9IGZhbHNlOwpAQCAtNTgzLDcgKzU4Myw3IEBAIHZvaWQgYW1kZ3B1X3ZtX2RlbF9mcm9tX2xydV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIAlmb3IgKGJvX2Jhc2UgPSBhYm8tPnZtX2JvOyBib19iYXNlOyBib19iYXNlID0gYm9fYmFzZS0+bmV4dCkgewogCQlzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9IGJvX2Jhc2UtPnZtOwogCi0JCWlmIChhYm8tPnRiby5yZXN2ID09IHZtLT5yb290LmJhc2UuYm8tPnRiby5yZXN2KQorCQlpZiAoYWJvLT50Ym8uYmFzZS5yZXN2ID09IHZtLT5yb290LmJhc2UuYm8tPnRiby5iYXNlLnJlc3YpCiAJCQl2bS0+YnVsa19tb3ZlYWJsZSA9IGZhbHNlOwogCX0KIApAQCAtODM0LDcgKzgzNCw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV92bV9ib19wYXJhbShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCiAJCWJwLT5mbGFncyB8PSBBTURHUFVfR0VNX0NSRUFURV9TSEFET1c7CiAJYnAtPnR5cGUgPSB0dG1fYm9fdHlwZV9rZXJuZWw7CiAJaWYgKHZtLT5yb290LmJhc2UuYm8pCi0JCWJwLT5yZXN2ID0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3Y7CisJCWJwLT5yZXN2ID0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLmJhc2UucmVzdjsKIH0KIAogLyoqCkBAIC0xNTc0LDcgKzE1NzQsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9ib19zcGxpdF9tYXBwaW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWZsYWdzICY9IH5BTURHUFVfUFRFX0VYRUNVVEFCTEU7CiAJZmxhZ3MgfD0gbWFwcGluZy0+ZmxhZ3MgJiBBTURHUFVfUFRFX0VYRUNVVEFCTEU7CiAKLQlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfTkFWSTEwKSB7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSA+PSBDSElQX05BVkkxMCkgewogCQlmbGFncyAmPSB+QU1ER1BVX1BURV9NVFlQRV9OVjEwX01BU0s7CiAJCWZsYWdzIHw9IChtYXBwaW5nLT5mbGFncyAmIEFNREdQVV9QVEVfTVRZUEVfTlYxMF9NQVNLKTsKIAl9IGVsc2UgewpAQCAtMTcwMiw3ICsxNzAyLDcgQEAgaW50IGFtZGdwdV92bV9ib191cGRhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQl0dG0gPSBjb250YWluZXJfb2YoYm8tPnRiby50dG0sIHN0cnVjdCB0dG1fZG1hX3R0LCB0dG0pOwogCQkJcGFnZXNfYWRkciA9IHR0bS0+ZG1hX2FkZHJlc3M7CiAJCX0KLQkJZXhjbHVzaXZlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKGJvLT50Ym8ucmVzdik7CisJCWV4Y2x1c2l2ZSA9IGRtYV9yZXN2X2dldF9leGNsKGJvLT50Ym8uYmFzZS5yZXN2KTsKIAl9CiAKIAlpZiAoYm8pIHsKQEAgLTE3MTIsNyArMTcxMiw3IEBAIGludCBhbWRncHVfdm1fYm9fdXBkYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlmbGFncyA9IDB4MDsKIAl9CiAKLQlpZiAoY2xlYXIgfHwgKGJvICYmIGJvLT50Ym8ucmVzdiA9PSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8ucmVzdikpCisJaWYgKGNsZWFyIHx8IChibyAmJiBiby0+dGJvLmJhc2UucmVzdiA9PSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8uYmFzZS5yZXN2KSkKIAkJbGFzdF91cGRhdGUgPSAmdm0tPmxhc3RfdXBkYXRlOwogCWVsc2UKIAkJbGFzdF91cGRhdGUgPSAmYm9fdmEtPmxhc3RfcHRfdXBkYXRlOwpAQCAtMTc0Myw3ICsxNzQzLDcgQEAgaW50IGFtZGdwdV92bV9ib191cGRhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJICogdGhlIGV2aWN0ZWQgbGlzdCBzbyB0aGF0IGl0IGdldHMgdmFsaWRhdGVkIGFnYWluIG9uIHRoZQogCSAqIG5leHQgY29tbWFuZCBzdWJtaXNzaW9uLgogCSAqLwotCWlmIChibyAmJiBiby0+dGJvLnJlc3YgPT0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3YpIHsKKwlpZiAoYm8gJiYgYm8tPnRiby5iYXNlLnJlc3YgPT0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLmJhc2UucmVzdikgewogCQl1aW50MzJfdCBtZW1fdHlwZSA9IGJvLT50Ym8ubWVtLm1lbV90eXBlOwogCiAJCWlmICghKGJvLT5wcmVmZXJyZWRfZG9tYWlucyAmIGFtZGdwdV9tZW1fdHlwZV90b19kb21haW4obWVtX3R5cGUpKSkKQEAgLTE4NzksMTggKzE4NzksMTggQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3ZtX2ZyZWVfbWFwcGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKICAqLwogc3RhdGljIHZvaWQgYW1kZ3B1X3ZtX3BydF9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSkKIHsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2ID0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3Y7CisJc3RydWN0IGRtYV9yZXN2ICpyZXN2ID0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLmJhc2UucmVzdjsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpleGNsLCAqKnNoYXJlZDsKIAl1bnNpZ25lZCBpLCBzaGFyZWRfY291bnQ7CiAJaW50IHI7CiAKLQlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KHJlc3YsICZleGNsLAorCXIgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShyZXN2LCAmZXhjbCwKIAkJCQkJICAgICAgJnNoYXJlZF9jb3VudCwgJnNoYXJlZCk7CiAJaWYgKHIpIHsKIAkJLyogTm90IGVub3VnaCBtZW1vcnkgdG8gZ3JhYiB0aGUgZmVuY2UgbGlzdCwgYXMgbGFzdCByZXNvcnQKIAkJICogYmxvY2sgZm9yIGFsbCB0aGUgZmVuY2VzIHRvIGNvbXBsZXRlLgogCQkgKi8KLQkJcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3UocmVzdiwgdHJ1ZSwgZmFsc2UsCisJCWRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3UocmVzdiwgdHJ1ZSwgZmFsc2UsCiAJCQkJCQkgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwogCQlyZXR1cm47CiAJfQpAQCAtMTk3OCw3ICsxOTc4LDcgQEAgaW50IGFtZGdwdV92bV9oYW5kbGVfbW92ZWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2JvX3ZhICpib192YSwgKnRtcDsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OworCXN0cnVjdCBkbWFfcmVzdiAqcmVzdjsKIAlib29sIGNsZWFyOwogCWludCByOwogCkBAIC0xOTkzLDExICsxOTkzLDExIEBAIGludCBhbWRncHVfdm1faGFuZGxlX21vdmVkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXdoaWxlICghbGlzdF9lbXB0eSgmdm0tPmludmFsaWRhdGVkKSkgewogCQlib192YSA9IGxpc3RfZmlyc3RfZW50cnkoJnZtLT5pbnZhbGlkYXRlZCwgc3RydWN0IGFtZGdwdV9ib192YSwKIAkJCQkJIGJhc2Uudm1fc3RhdHVzKTsKLQkJcmVzdiA9IGJvX3ZhLT5iYXNlLmJvLT50Ym8ucmVzdjsKKwkJcmVzdiA9IGJvX3ZhLT5iYXNlLmJvLT50Ym8uYmFzZS5yZXN2OwogCQlzcGluX3VubG9jaygmdm0tPmludmFsaWRhdGVkX2xvY2spOwogCiAJCS8qIFRyeSB0byByZXNlcnZlIHRoZSBCTyB0byBhdm9pZCBjbGVhcmluZyBpdHMgcHRlcyAqLwotCQlpZiAoIWFtZGdwdV92bV9kZWJ1ZyAmJiByZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhyZXN2KSkKKwkJaWYgKCFhbWRncHVfdm1fZGVidWcgJiYgZG1hX3Jlc3ZfdHJ5bG9jayhyZXN2KSkKIAkJCWNsZWFyID0gZmFsc2U7CiAJCS8qIFNvbWVib2R5IGVsc2UgaXMgdXNpbmcgdGhlIEJPIHJpZ2h0IG5vdyAqLwogCQllbHNlCkBAIC0yMDA4LDcgKzIwMDgsNyBAQCBpbnQgYW1kZ3B1X3ZtX2hhbmRsZV9tb3ZlZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCXJldHVybiByOwogCiAJCWlmICghY2xlYXIpCi0JCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKHJlc3YpOworCQkJZG1hX3Jlc3ZfdW5sb2NrKHJlc3YpOwogCQlzcGluX2xvY2soJnZtLT5pbnZhbGlkYXRlZF9sb2NrKTsKIAl9CiAJc3Bpbl91bmxvY2soJnZtLT5pbnZhbGlkYXRlZF9sb2NrKTsKQEAgLTIwODQsNyArMjA4NCw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV92bV9ib19pbnNlcnRfbWFwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWlmIChtYXBwaW5nLT5mbGFncyAmIEFNREdQVV9QVEVfUFJUKQogCQlhbWRncHVfdm1fcHJ0X2dldChhZGV2KTsKIAotCWlmIChibyAmJiBiby0+dGJvLnJlc3YgPT0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3YgJiYKKwlpZiAoYm8gJiYgYm8tPnRiby5iYXNlLnJlc3YgPT0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLmJhc2UucmVzdiAmJgogCSAgICAhYm9fdmEtPmJhc2UubW92ZWQpIHsKIAkJbGlzdF9tb3ZlKCZib192YS0+YmFzZS52bV9zdGF0dXMsICZ2bS0+bW92ZWQpOwogCX0KQEAgLTI0MTYsNyArMjQxNiw4IEBAIHZvaWQgYW1kZ3B1X3ZtX2JvX3RyYWNlX2NzKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCkKIAkJCXN0cnVjdCBhbWRncHVfYm8gKmJvOwogCiAJCQlibyA9IG1hcHBpbmctPmJvX3ZhLT5iYXNlLmJvOwotCQkJaWYgKFJFQURfT05DRShiby0+dGJvLnJlc3YtPmxvY2suY3R4KSAhPSB0aWNrZXQpCisJCQlpZiAoZG1hX3Jlc3ZfbG9ja2luZ19jdHgoYm8tPnRiby5iYXNlLnJlc3YpICE9CisJCQkgICAgdGlja2V0KQogCQkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTI0NDMsNyArMjQ0NCw3IEBAIHZvaWQgYW1kZ3B1X3ZtX2JvX3JtdihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlzdHJ1Y3QgYW1kZ3B1X3ZtX2JvX2Jhc2UgKipiYXNlOwogCiAJaWYgKGJvKSB7Ci0JCWlmIChiby0+dGJvLnJlc3YgPT0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3YpCisJCWlmIChiby0+dGJvLmJhc2UucmVzdiA9PSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8uYmFzZS5yZXN2KQogCQkJdm0tPmJ1bGtfbW92ZWFibGUgPSBmYWxzZTsKIAogCQlmb3IgKGJhc2UgPSAmYm9fdmEtPmJhc2UuYm8tPnZtX2JvOyAqYmFzZTsKQEAgLTI1MDcsNyArMjUwOCw3IEBAIHZvaWQgYW1kZ3B1X3ZtX2JvX2ludmFsaWRhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJZm9yIChib19iYXNlID0gYm8tPnZtX2JvOyBib19iYXNlOyBib19iYXNlID0gYm9fYmFzZS0+bmV4dCkgewogCQlzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9IGJvX2Jhc2UtPnZtOwogCi0JCWlmIChldmljdGVkICYmIGJvLT50Ym8ucmVzdiA9PSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8ucmVzdikgeworCQlpZiAoZXZpY3RlZCAmJiBiby0+dGJvLmJhc2UucmVzdiA9PSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8uYmFzZS5yZXN2KSB7CiAJCQlhbWRncHVfdm1fYm9fZXZpY3RlZChib19iYXNlKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0yNTE4LDcgKzI1MTksNyBAQCB2b2lkIGFtZGdwdV92bV9ib19pbnZhbGlkYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJCWlmIChiby0+dGJvLnR5cGUgPT0gdHRtX2JvX3R5cGVfa2VybmVsKQogCQkJYW1kZ3B1X3ZtX2JvX3JlbG9jYXRlZChib19iYXNlKTsKLQkJZWxzZSBpZiAoYm8tPnRiby5yZXN2ID09IHZtLT5yb290LmJhc2UuYm8tPnRiby5yZXN2KQorCQllbHNlIGlmIChiby0+dGJvLmJhc2UucmVzdiA9PSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8uYmFzZS5yZXN2KQogCQkJYW1kZ3B1X3ZtX2JvX21vdmVkKGJvX2Jhc2UpOwogCQllbHNlCiAJCQlhbWRncHVfdm1fYm9faW52YWxpZGF0ZWQoYm9fYmFzZSk7CkBAIC0yNjQ4LDcgKzI2NDksNyBAQCB2b2lkIGFtZGdwdV92bV9hZGp1c3Rfc2l6ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3QgbWluX3ZtX3NpemUsCiAgKi8KIGxvbmcgYW1kZ3B1X3ZtX3dhaXRfaWRsZShzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgbG9uZyB0aW1lb3V0KQogewotCXJldHVybiByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdSh2bS0+cm9vdC5iYXNlLmJvLT50Ym8ucmVzdiwKKwlyZXR1cm4gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdSh2bS0+cm9vdC5iYXNlLmJvLT50Ym8uYmFzZS5yZXN2LAogCQkJCQkJICAgdHJ1ZSwgdHJ1ZSwgdGltZW91dCk7CiB9CiAKQEAgLTI3MjMsNyArMjcyNCw3IEBAIGludCBhbWRncHVfdm1faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCiAJaWYgKHIpCiAJCWdvdG8gZXJyb3JfZnJlZV9yb290OwogCi0JciA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChyb290LT50Ym8ucmVzdiwgMSk7CisJciA9IGRtYV9yZXN2X3Jlc2VydmVfc2hhcmVkKHJvb3QtPnRiby5iYXNlLnJlc3YsIDEpOwogCWlmIChyKQogCQlnb3RvIGVycm9yX3VucmVzZXJ2ZTsKIApAQCAtMjg2Miw2ICsyODYzLDEzIEBAIGludCBhbWRncHVfdm1fbWFrZV9jb21wdXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgdW5zCiAJV0FSTl9PTkNFKCh2bS0+dXNlX2NwdV9mb3JfdXBkYXRlICYmICFhbWRncHVfZ21jX3ZyYW1fZnVsbF92aXNpYmxlKCZhZGV2LT5nbWMpKSwKIAkJICAiQ1BVIHVwZGF0ZSBvZiBWTSByZWNvbW1lbmRlZCBvbmx5IGZvciBsYXJnZSBCQVIgc3lzdGVtXG4iKTsKIAorCWlmICh2bS0+dXNlX2NwdV9mb3JfdXBkYXRlKQorCQl2bS0+dXBkYXRlX2Z1bmNzID0gJmFtZGdwdV92bV9jcHVfZnVuY3M7CisJZWxzZQorCQl2bS0+dXBkYXRlX2Z1bmNzID0gJmFtZGdwdV92bV9zZG1hX2Z1bmNzOworCWRtYV9mZW5jZV9wdXQodm0tPmxhc3RfdXBkYXRlKTsKKwl2bS0+bGFzdF91cGRhdGUgPSBOVUxMOworCiAJaWYgKHZtLT5wYXNpZCkgewogCQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC0zMDYwLDEyICszMDY4LDEyIEBAIGludCBhbWRncHVfdm1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxwKQogCXN3aXRjaCAoYXJncy0+aW4ub3ApIHsKIAljYXNlIEFNREdQVV9WTV9PUF9SRVNFUlZFX1ZNSUQ6CiAJCS8qIGN1cnJlbnQsIHdlIG9ubHkgaGF2ZSByZXF1aXJlbWVudCB0byByZXNlcnZlIHZtaWQgZnJvbSBnZnhodWIgKi8KLQkJciA9IGFtZGdwdV92bWlkX2FsbG9jX3Jlc2VydmVkKGFkZXYsICZmcHJpdi0+dm0sIEFNREdQVV9HRlhIVUIpOworCQlyID0gYW1kZ3B1X3ZtaWRfYWxsb2NfcmVzZXJ2ZWQoYWRldiwgJmZwcml2LT52bSwgQU1ER1BVX0dGWEhVQl8wKTsKIAkJaWYgKHIpCiAJCQlyZXR1cm4gcjsKIAkJYnJlYWs7CiAJY2FzZSBBTURHUFVfVk1fT1BfVU5SRVNFUlZFX1ZNSUQ6Ci0JCWFtZGdwdV92bWlkX2ZyZWVfcmVzZXJ2ZWQoYWRldiwgJmZwcml2LT52bSwgQU1ER1BVX0dGWEhVQik7CisJCWFtZGdwdV92bWlkX2ZyZWVfcmVzZXJ2ZWQoYWRldiwgJmZwcml2LT52bSwgQU1ER1BVX0dGWEhVQl8wKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCmluZGV4IDQ4OWExNjIuLjJlZGEzYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCkBAIC05MCw3ICs5MCw3IEBAIHN0cnVjdCBhbWRncHVfYm9fbGlzdF9lbnRyeTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBTURHUFVfUFRFX1dSSVRFQUJMRSAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEFNREdQVV9QVEVfTVRZUEVfVkcxMChBTURHUFVfTVRZUEVfQ0MpKQogCi0vKiBOQVZJMTAgb25seSAqLworLyogZ2Z4MTAgKi8KICNkZWZpbmUgQU1ER1BVX1BURV9NVFlQRV9OVjEwKGEpICAgICAgICgodWludDY0X3QpKGEpIDw8IDQ4KQogI2RlZmluZSBBTURHUFVfUFRFX01UWVBFX05WMTBfTUFTSyAgICAgQU1ER1BVX1BURV9NVFlQRV9OVjEwKDdVTEwpCiAKQEAgLTEwMCw5ICsxMDAsMTAgQEAgc3RydWN0IGFtZGdwdV9ib19saXN0X2VudHJ5OwogI2RlZmluZSBBTURHUFVfVk1fRkFVTFRfU1RPUF9BTFdBWVMJMgogCiAvKiBtYXggbnVtYmVyIG9mIFZNSFVCICovCi0jZGVmaW5lIEFNREdQVV9NQVhfVk1IVUJTCQkJMgotI2RlZmluZSBBTURHUFVfR0ZYSFVCCQkJCTAKLSNkZWZpbmUgQU1ER1BVX01NSFVCCQkJCTEKKyNkZWZpbmUgQU1ER1BVX01BWF9WTUhVQlMJCQkzCisjZGVmaW5lIEFNREdQVV9HRlhIVUJfMAkJCQkwCisjZGVmaW5lIEFNREdQVV9NTUhVQl8wCQkJCTEKKyNkZWZpbmUgQU1ER1BVX01NSFVCXzEJCQkJMgogCiAvKiBoYXJkY29kZSB0aGF0IGxpbWl0IGZvciBub3cgKi8KICNkZWZpbmUgQU1ER1BVX1ZBX1JFU0VSVkVEX1NJWkUJCQkoMVVMTCA8PCAyMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bV9zZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm1fc2RtYS5jCmluZGV4IGRkZDE4MWYuLjYxZmM1ODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bV9zZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtX3NkbWEuYwpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9zZG1hX3ByZXBhcmUoc3RydWN0IGFtZGdwdV92bV91cGRhdGVfcGFyYW1zICpwLAogCWlmIChyKQogCQlyZXR1cm4gcjsKIAotCXIgPSBhbWRncHVfc3luY19yZXN2KHAtPmFkZXYsICZwLT5qb2ItPnN5bmMsIHJvb3QtPnRiby5yZXN2LAorCXIgPSBhbWRncHVfc3luY19yZXN2KHAtPmFkZXYsICZwLT5qb2ItPnN5bmMsIHJvb3QtPnRiby5iYXNlLnJlc3YsCiAJCQkgICAgIG93bmVyLCBmYWxzZSk7CiAJaWYgKHIpCiAJCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3hnbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV94Z21pLmMKaW5kZXggZDExZWJhMC4uNjVhYWU3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3hnbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfeGdtaS5jCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiYW1kZ3B1LmgiCiAjaW5jbHVkZSAiYW1kZ3B1X3hnbWkuaCIKICNpbmNsdWRlICJhbWRncHVfc211LmgiCi0KKyNpbmNsdWRlICJkZi9kZl8zXzZfb2Zmc2V0LmgiCiAKIHN0YXRpYyBERUZJTkVfTVVURVgoeGdtaV9tdXRleCk7CiAKQEAgLTEzMSw5ICsxMzEsMzcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3hnbWlfc2hvd19kZXZpY2VfaWQoc3RydWN0IGRldmljZSAqZGV2LAogCiB9CiAKKyNkZWZpbmUgQU1ER1BVX1hHTUlfU0VUX0ZJQ0FBKG8pCSgobykgfCAweDQ1NjgwMSkKK3N0YXRpYyBzc2l6ZV90IGFtZGdwdV94Z21pX3Nob3dfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCSAgICAgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CisJdWludDMyX3QgZmljYWFfcGllX2N0bF9pbiwgZmljYWFfcGllX3N0YXR1c19pbjsKKwl1aW50NjRfdCBmaWNhX291dDsKKwl1bnNpZ25lZCBpbnQgZXJyb3JfY291bnQgPSAwOworCisJZmljYWFfcGllX2N0bF9pbiA9IEFNREdQVV9YR01JX1NFVF9GSUNBQSgweDIwMCk7CisJZmljYWFfcGllX3N0YXR1c19pbiA9IEFNREdQVV9YR01JX1NFVF9GSUNBQSgweDIwOCk7CisKKwlmaWNhX291dCA9IGFkZXYtPmRmX2Z1bmNzLT5nZXRfZmljYShhZGV2LCBmaWNhYV9waWVfY3RsX2luKTsKKwlpZiAoZmljYV9vdXQgIT0gMHgxZikKKwkJcHJfZXJyKCJ4R01JIGVycm9yIGNvdW50ZXJzIG5vdCBlbmFibGVkIVxuIik7CisKKwlmaWNhX291dCA9IGFkZXYtPmRmX2Z1bmNzLT5nZXRfZmljYShhZGV2LCBmaWNhYV9waWVfc3RhdHVzX2luKTsKKworCWlmICgoZmljYV9vdXQgJiAweGZmZmYpID09IDIpCisJCWVycm9yX2NvdW50ID0gKChmaWNhX291dCA+PiA2MikgJiAweDEpICsgKGZpY2Ffb3V0ID4+IDYzKTsKKworCWFkZXYtPmRmX2Z1bmNzLT5zZXRfZmljYShhZGV2LCBmaWNhYV9waWVfc3RhdHVzX2luLCAwLCAwKTsKKworCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVkXG4iLCBlcnJvcl9jb3VudCk7Cit9CisKIAogc3RhdGljIERFVklDRV9BVFRSKHhnbWlfZGV2aWNlX2lkLCBTX0lSVUdPLCBhbWRncHVfeGdtaV9zaG93X2RldmljZV9pZCwgTlVMTCk7Ci0KK3N0YXRpYyBERVZJQ0VfQVRUUih4Z21pX2Vycm9yLCBTX0lSVUdPLCBhbWRncHVfeGdtaV9zaG93X2Vycm9yLCBOVUxMKTsKIAogc3RhdGljIGludCBhbWRncHVfeGdtaV9zeXNmc19hZGRfZGV2X2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCSBzdHJ1Y3QgYW1kZ3B1X2hpdmVfaW5mbyAqaGl2ZSkKQEAgLTE0OCw2ICsxNzYsMTIgQEAgc3RhdGljIGludCBhbWRncHVfeGdtaV9zeXNmc19hZGRfZGV2X2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCXJldHVybiByZXQ7CiAJfQogCisJLyogQ3JlYXRlIHhnbWkgZXJyb3IgZmlsZSAqLworCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl94Z21pX2Vycm9yKTsKKwlpZiAocmV0KQorCQlwcl9lcnIoImZhaWxlZCB0byBjcmVhdGUgeGdtaV9lcnJvclxuIik7CisKKwogCS8qIENyZWF0ZSBzeXNmcyBsaW5rIHRvIGhpdmUgaW5mbyBmb2xkZXIgb24gdGhlIGZpcnN0IGRldmljZSAqLwogCWlmIChhZGV2ICE9IGhpdmUtPmFkZXYpIHsKIAkJcmV0ID0gc3lzZnNfY3JlYXRlX2xpbmsoJmFkZXYtPmRldi0+a29iaiwgaGl2ZS0+a29iaiwKQEAgLTI0OCw3ICsyODIsNyBAQCBpbnQgYW1kZ3B1X3hnbWlfc2V0X3BzdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IHBzdGF0ZSkKIAogCWRldl9kYmcoYWRldi0+ZGV2LCAiU2V0IHhnbWkgcHN0YXRlICVkLlxuIiwgcHN0YXRlKTsKIAotCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSkKKwlpZiAoaXNfc3VwcG9ydF9zd19zbXVfeGdtaShhZGV2KSkKIAkJcmV0ID0gc211X3NldF94Z21pX3BzdGF0ZSgmYWRldi0+c211LCBwc3RhdGUpOwogCWlmIChyZXQpCiAJCWRldl9lcnIoYWRldi0+ZGV2LApAQCAtMjk2LDIzICszMzAsMjggQEAgaW50IGFtZGdwdV94Z21pX2FkZF9kZXZpY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJc3RydWN0IGFtZGdwdV94Z21pCSplbnRyeTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqdG1wX2FkZXYgPSBOVUxMOwogCi0JaW50IGNvdW50ID0gMCwgcmV0ID0gLUVJTlZBTDsKKwlpbnQgY291bnQgPSAwLCByZXQgPSAwOwogCiAJaWYgKCFhZGV2LT5nbWMueGdtaS5zdXBwb3J0ZWQpCiAJCXJldHVybiAwOwogCi0JcmV0ID0gcHNwX3hnbWlfZ2V0X25vZGVfaWQoJmFkZXYtPnBzcCwgJmFkZXYtPmdtYy54Z21pLm5vZGVfaWQpOwotCWlmIChyZXQpIHsKLQkJZGV2X2VycihhZGV2LT5kZXYsCi0JCQkiWEdNSTogRmFpbGVkIHRvIGdldCBub2RlIGlkXG4iKTsKLQkJcmV0dXJuIHJldDsKLQl9CisJaWYgKGFtZGdwdV9kZXZpY2VfaXBfZ2V0X2lwX2Jsb2NrKGFkZXYsIEFNRF9JUF9CTE9DS19UWVBFX1BTUCkpIHsKKwkJcmV0ID0gcHNwX3hnbWlfZ2V0X2hpdmVfaWQoJmFkZXYtPnBzcCwgJmFkZXYtPmdtYy54Z21pLmhpdmVfaWQpOworCQlpZiAocmV0KSB7CisJCQlkZXZfZXJyKGFkZXYtPmRldiwKKwkJCQkiWEdNSTogRmFpbGVkIHRvIGdldCBoaXZlIGlkXG4iKTsKKwkJCXJldHVybiByZXQ7CisJCX0KIAotCXJldCA9IHBzcF94Z21pX2dldF9oaXZlX2lkKCZhZGV2LT5wc3AsICZhZGV2LT5nbWMueGdtaS5oaXZlX2lkKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoYWRldi0+ZGV2LAotCQkJIlhHTUk6IEZhaWxlZCB0byBnZXQgaGl2ZSBpZFxuIik7Ci0JCXJldHVybiByZXQ7CisJCXJldCA9IHBzcF94Z21pX2dldF9ub2RlX2lkKCZhZGV2LT5wc3AsICZhZGV2LT5nbWMueGdtaS5ub2RlX2lkKTsKKwkJaWYgKHJldCkgeworCQkJZGV2X2VycihhZGV2LT5kZXYsCisJCQkJIlhHTUk6IEZhaWxlZCB0byBnZXQgbm9kZSBpZFxuIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfSBlbHNlIHsKKwkJYWRldi0+Z21jLnhnbWkuaGl2ZV9pZCA9IDE2OworCQlhZGV2LT5nbWMueGdtaS5ub2RlX2lkID0gYWRldi0+Z21jLnhnbWkucGh5c2ljYWxfbm9kZV9pZCArIDE2OwogCX0KIAogCWhpdmUgPSBhbWRncHVfZ2V0X3hnbWlfaGl2ZShhZGV2LCAxKTsKQEAgLTMzMiwyOSArMzcxLDMyIEBAIGludCBhbWRncHVfeGdtaV9hZGRfZGV2aWNlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXRvcF9pbmZvLT5udW1fbm9kZXMgPSBjb3VudDsKIAloaXZlLT5udW1iZXJfZGV2aWNlcyA9IGNvdW50OwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgJmhpdmUtPmRldmljZV9saXN0LCBnbWMueGdtaS5oZWFkKSB7Ci0JCS8qIHVwZGF0ZSBub2RlIGxpc3QgZm9yIG90aGVyIGRldmljZSBpbiB0aGUgaGl2ZSAqLwotCQlpZiAodG1wX2FkZXYgIT0gYWRldikgewotCQkJdG9wX2luZm8gPSAmdG1wX2FkZXYtPnBzcC54Z21pX2NvbnRleHQudG9wX2luZm87Ci0JCQl0b3BfaW5mby0+bm9kZXNbY291bnQgLSAxXS5ub2RlX2lkID0gYWRldi0+Z21jLnhnbWkubm9kZV9pZDsKLQkJCXRvcF9pbmZvLT5udW1fbm9kZXMgPSBjb3VudDsKKwlpZiAoYW1kZ3B1X2RldmljZV9pcF9nZXRfaXBfYmxvY2soYWRldiwgQU1EX0lQX0JMT0NLX1RZUEVfUFNQKSkgeworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRtcF9hZGV2LCAmaGl2ZS0+ZGV2aWNlX2xpc3QsIGdtYy54Z21pLmhlYWQpIHsKKwkJCS8qIHVwZGF0ZSBub2RlIGxpc3QgZm9yIG90aGVyIGRldmljZSBpbiB0aGUgaGl2ZSAqLworCQkJaWYgKHRtcF9hZGV2ICE9IGFkZXYpIHsKKwkJCQl0b3BfaW5mbyA9ICZ0bXBfYWRldi0+cHNwLnhnbWlfY29udGV4dC50b3BfaW5mbzsKKwkJCQl0b3BfaW5mby0+bm9kZXNbY291bnQgLSAxXS5ub2RlX2lkID0KKwkJCQkJYWRldi0+Z21jLnhnbWkubm9kZV9pZDsKKwkJCQl0b3BfaW5mby0+bnVtX25vZGVzID0gY291bnQ7CisJCQl9CisJCQlyZXQgPSBhbWRncHVfeGdtaV91cGRhdGVfdG9wb2xvZ3koaGl2ZSwgdG1wX2FkZXYpOworCQkJaWYgKHJldCkKKwkJCQlnb3RvIGV4aXQ7CiAJCX0KLQkJcmV0ID0gYW1kZ3B1X3hnbWlfdXBkYXRlX3RvcG9sb2d5KGhpdmUsIHRtcF9hZGV2KTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gZXhpdDsKLQl9CiAKLQkvKiBnZXQgbGF0ZXN0IHRvcG9sb2d5IGluZm8gZm9yIGVhY2ggZGV2aWNlIGZyb20gcHNwICovCi0JbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgJmhpdmUtPmRldmljZV9saXN0LCBnbWMueGdtaS5oZWFkKSB7Ci0JCXJldCA9IHBzcF94Z21pX2dldF90b3BvbG9neV9pbmZvKCZ0bXBfYWRldi0+cHNwLCBjb3VudCwKLQkJCQkmdG1wX2FkZXYtPnBzcC54Z21pX2NvbnRleHQudG9wX2luZm8pOwotCQlpZiAocmV0KSB7Ci0JCQlkZXZfZXJyKHRtcF9hZGV2LT5kZXYsCi0JCQkJIlhHTUk6IEdldCB0b3BvbG9neSBmYWlsdXJlIG9uIGRldmljZSAlbGx4LCBoaXZlICVsbHgsIHJldCAlZCIsCi0JCQkJdG1wX2FkZXYtPmdtYy54Z21pLm5vZGVfaWQsCi0JCQkJdG1wX2FkZXYtPmdtYy54Z21pLmhpdmVfaWQsIHJldCk7Ci0JCQkvKiBUbyBkbyA6IGNvbnRpbnVlIHdpdGggc29tZSBub2RlIGZhaWxlZCBvciBkaXNhYmxlIHRoZSB3aG9sZSBoaXZlICovCi0JCQlnb3RvIGV4aXQ7CisJCS8qIGdldCBsYXRlc3QgdG9wb2xvZ3kgaW5mbyBmb3IgZWFjaCBkZXZpY2UgZnJvbSBwc3AgKi8KKwkJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgJmhpdmUtPmRldmljZV9saXN0LCBnbWMueGdtaS5oZWFkKSB7CisJCQlyZXQgPSBwc3BfeGdtaV9nZXRfdG9wb2xvZ3lfaW5mbygmdG1wX2FkZXYtPnBzcCwgY291bnQsCisJCQkJCSZ0bXBfYWRldi0+cHNwLnhnbWlfY29udGV4dC50b3BfaW5mbyk7CisJCQlpZiAocmV0KSB7CisJCQkJZGV2X2Vycih0bXBfYWRldi0+ZGV2LAorCQkJCQkiWEdNSTogR2V0IHRvcG9sb2d5IGZhaWx1cmUgb24gZGV2aWNlICVsbHgsIGhpdmUgJWxseCwgcmV0ICVkIiwKKwkJCQkJdG1wX2FkZXYtPmdtYy54Z21pLm5vZGVfaWQsCisJCQkJCXRtcF9hZGV2LT5nbWMueGdtaS5oaXZlX2lkLCByZXQpOworCQkJCS8qIFRvIGRvIDogY29udGludWUgd2l0aCBzb21lIG5vZGUgZmFpbGVkIG9yIGRpc2FibGUgdGhlIHdob2xlIGhpdmUgKi8KKwkJCQlnb3RvIGV4aXQ7CisJCQl9CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FyY3RfcmVnX2luaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FyY3RfcmVnX2luaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODUzODk5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYXJjdF9yZWdfaW5pdC5jCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaW5jbHVkZSAiYW1kZ3B1LmgiCisjaW5jbHVkZSAic29jMTUuaCIKKworI2luY2x1ZGUgInNvYzE1X2NvbW1vbi5oIgorI2luY2x1ZGUgInNvYzE1X2h3X2lwLmgiCisjaW5jbHVkZSAiYXJjdF9pcF9vZmZzZXQuaCIKKworaW50IGFyY3RfcmVnX2Jhc2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwkvKiBIVyBoYXMgbW9yZSBJUCBibG9ja3MsICBvbmx5IGluaXRpYWxpemVkIHRoZSBibG9jayBuZWVkZWQgYnkgb3VyIGRyaXZlciAgKi8KKwl1aW50MzJfdCBpOworCWZvciAoaSA9IDAgOyBpIDwgTUFYX0lOU1RBTkNFIDsgKytpKSB7CisJCWFkZXYtPnJlZ19vZmZzZXRbR0NfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihHQ19CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbSERQX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoSERQX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtNTUhVQl9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKE1NSFVCX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtBVEhVQl9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKEFUSFVCX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtOQklPX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoTkJJRjBfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W01QMF9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKE1QMF9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbTVAxX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoTVAxX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtVVkRfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihVVkRfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W0RGX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoREZfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W09TU1NZU19IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKE9TU1NZU19CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbU0RNQTBfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihTRE1BMF9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbU0RNQTFfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihTRE1BMV9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbU0RNQTJfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihTRE1BMl9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbU0RNQTNfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihTRE1BM19CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbU0RNQTRfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihTRE1BNF9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbU0RNQTVfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihTRE1BNV9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbU0RNQTZfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihTRE1BNl9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbU0RNQTdfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihTRE1BN19CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbU01VSU9fSFdJUF1baV0gPSAodWludDMyX3QgKikoJihTTVVJT19CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbVEhNX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoVEhNX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYXRodWJfdjFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYXRodWJfdjFfMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5Y2M3NDYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hdGh1Yl92MV8wLmMKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaW5jbHVkZSAiYW1kZ3B1LmgiCisjaW5jbHVkZSAiYXRodWJfdjFfMC5oIgorCisjaW5jbHVkZSAiYXRodWIvYXRodWJfMV8wX29mZnNldC5oIgorI2luY2x1ZGUgImF0aHViL2F0aHViXzFfMF9zaF9tYXNrLmgiCisjaW5jbHVkZSAidmVnYTEwX2VudW0uaCIKKworI2luY2x1ZGUgInNvYzE1X2NvbW1vbi5oIgorCitzdGF0aWMgdm9pZCBhdGh1Yl91cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkJCSAgIGJvb2wgZW5hYmxlKQoreworCXVpbnQzMl90IGRlZiwgZGF0YTsKKworCWRlZiA9IGRhdGEgPSBSUkVHMzJfU09DMTUoQVRIVUIsIDAsIG1tQVRIVUJfTUlTQ19DTlRMKTsKKworCWlmIChlbmFibGUgJiYgKGFkZXYtPmNnX2ZsYWdzICYgQU1EX0NHX1NVUFBPUlRfTUNfTUdDRykpCisJCWRhdGEgfD0gQVRIVUJfTUlTQ19DTlRMX19DR19FTkFCTEVfTUFTSzsKKwllbHNlCisJCWRhdGEgJj0gfkFUSFVCX01JU0NfQ05UTF9fQ0dfRU5BQkxFX01BU0s7CisKKwlpZiAoZGVmICE9IGRhdGEpCisJCVdSRUczMl9TT0MxNShBVEhVQiwgMCwgbW1BVEhVQl9NSVNDX0NOVEwsIGRhdGEpOworfQorCitzdGF0aWMgdm9pZCBhdGh1Yl91cGRhdGVfbWVkaXVtX2dyYWluX2xpZ2h0X3NsZWVwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkJICBib29sIGVuYWJsZSkKK3sKKwl1aW50MzJfdCBkZWYsIGRhdGE7CisKKwlkZWYgPSBkYXRhID0gUlJFRzMyX1NPQzE1KEFUSFVCLCAwLCBtbUFUSFVCX01JU0NfQ05UTCk7CisKKwlpZiAoZW5hYmxlICYmIChhZGV2LT5jZ19mbGFncyAmIEFNRF9DR19TVVBQT1JUX01DX0xTKSAmJgorCSAgICAoYWRldi0+Y2dfZmxhZ3MgJiBBTURfQ0dfU1VQUE9SVF9IRFBfTFMpKQorCQlkYXRhIHw9IEFUSFVCX01JU0NfQ05UTF9fQ0dfTUVNX0xTX0VOQUJMRV9NQVNLOworCWVsc2UKKwkJZGF0YSAmPSB+QVRIVUJfTUlTQ19DTlRMX19DR19NRU1fTFNfRU5BQkxFX01BU0s7CisKKwlpZihkZWYgIT0gZGF0YSkKKwkJV1JFRzMyX1NPQzE1KEFUSFVCLCAwLCBtbUFUSFVCX01JU0NfQ05UTCwgZGF0YSk7Cit9CisKK2ludCBhdGh1Yl92MV8wX3NldF9jbG9ja2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCSAgICAgICBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSkKK3sKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQorCQlyZXR1cm4gMDsKKworCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CisJY2FzZSBDSElQX1ZFR0ExMDoKKwljYXNlIENISVBfVkVHQTEyOgorCWNhc2UgQ0hJUF9WRUdBMjA6CisJY2FzZSBDSElQX1JBVkVOOgorCQlhdGh1Yl91cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhhZGV2LAorCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKKwkJYXRodWJfdXBkYXRlX21lZGl1bV9ncmFpbl9saWdodF9zbGVlcChhZGV2LAorCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgYXRodWJfdjFfMF9nZXRfY2xvY2tnYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiAqZmxhZ3MpCit7CisJaW50IGRhdGE7CisKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQorCQkqZmxhZ3MgPSAwOworCisJLyogQU1EX0NHX1NVUFBPUlRfQVRIVUJfTUdDRyAqLworCWRhdGEgPSBSUkVHMzJfU09DMTUoQVRIVUIsIDAsIG1tQVRIVUJfTUlTQ19DTlRMKTsKKwlpZiAoZGF0YSAmIEFUSFVCX01JU0NfQ05UTF9fQ0dfRU5BQkxFX01BU0spCisJCSpmbGFncyB8PSBBTURfQ0dfU1VQUE9SVF9BVEhVQl9NR0NHOworCisJLyogQU1EX0NHX1NVUFBPUlRfQVRIVUJfTFMgKi8KKwlpZiAoZGF0YSAmIEFUSFVCX01JU0NfQ05UTF9fQ0dfTUVNX0xTX0VOQUJMRV9NQVNLKQorCQkqZmxhZ3MgfD0gQU1EX0NHX1NVUFBPUlRfQVRIVUJfTFM7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hdGh1Yl92MV8wLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hdGh1Yl92MV8wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI3OWFmNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2F0aHViX3YxXzAuaApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworI2lmbmRlZiBfX0FUSFVCX1YxXzBfSF9fCisjZGVmaW5lIF9fQVRIVUJfVjFfMF9IX18KKworaW50IGF0aHViX3YxXzBfc2V0X2Nsb2NrZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJICAgICAgIGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKTsKK3ZvaWQgYXRodWJfdjFfMF9nZXRfY2xvY2tnYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiAqZmxhZ3MpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2F0aHViX3YyXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2F0aHViX3YyXzAuYwppbmRleCA4OWIzMmI2Li5jZWI5YWE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hdGh1Yl92Ml8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYXRodWJfdjJfMC5jCkBAIC03NCw2ICs3NCw4IEBAIGludCBhdGh1Yl92Ml8wX3NldF9jbG9ja2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJY2FzZSBDSElQX05BVkkxMDoKKwljYXNlIENISVBfTkFWSTE0OgorCWNhc2UgQ0hJUF9OQVZJMTI6CiAJCWF0aHViX3YyXzBfdXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwKIAkJCQlzdGF0ZSA9PSBBTURfQ0dfU1RBVEVfR0FURSA/IHRydWUgOiBmYWxzZSk7CiAJCWF0aHViX3YyXzBfdXBkYXRlX21lZGl1bV9ncmFpbl9saWdodF9zbGVlcChhZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWsuYwppbmRleCAxZmZiYzBkLi5iODFiYjQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWsuYwpAQCAtMTI5MSw2ICsxMjkxLDEyIEBAIHN0YXRpYyBpbnQgY2lrX2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9CiAKK3N0YXRpYyBlbnVtIGFtZF9yZXNldF9tZXRob2QKK2Npa19hc2ljX3Jlc2V0X21ldGhvZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwlyZXR1cm4gQU1EX1JFU0VUX01FVEhPRF9MRUdBQ1k7Cit9CisKIHN0YXRpYyB1MzIgY2lrX2dldF9jb25maWdfbWVtc2l6ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlyZXR1cm4gUlJFRzMyKG1tQ09ORklHX01FTVNJWkUpOwpAQCAtMTgyMyw2ICsxODI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfYXNpY19mdW5jcyBjaWtfYXNpY19mdW5jcyA9CiAJLnJlYWRfYmlvc19mcm9tX3JvbSA9ICZjaWtfcmVhZF9iaW9zX2Zyb21fcm9tLAogCS5yZWFkX3JlZ2lzdGVyID0gJmNpa19yZWFkX3JlZ2lzdGVyLAogCS5yZXNldCA9ICZjaWtfYXNpY19yZXNldCwKKwkucmVzZXRfbWV0aG9kID0gJmNpa19hc2ljX3Jlc2V0X21ldGhvZCwKIAkuc2V0X3ZnYV9zdGF0ZSA9ICZjaWtfdmdhX3NldF9zdGF0ZSwKIAkuZ2V0X3hjbGsgPSAmY2lrX2dldF94Y2xrLAogCS5zZXRfdXZkX2Nsb2NrcyA9ICZjaWtfc2V0X3V2ZF9jbG9ja3MsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCmluZGV4IDFmZmQxOTYuLjY0NTU1MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCkBAIC0yMzYsNiArMjM2LDcgQEAgc3RhdGljIHZvaWQgZGNlX3YxMF8wX3BhZ2VfZmxpcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQlpbnQgY3J0Y19pZCwgdTY0IGNydGNfYmFzZSwgYm9vbCBhc3luYykKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2NydGMgKmFtZGdwdV9jcnRjID0gYWRldi0+bW9kZV9pbmZvLmNydGNzW2NydGNfaWRdOworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gYW1kZ3B1X2NydGMtPmJhc2UucHJpbWFyeS0+ZmI7CiAJdTMyIHRtcDsKIAogCS8qIGZsaXAgYXQgaHN5bmMgZm9yIGFzeW5jLCBkZWZhdWx0IGlzIHZzeW5jICovCkBAIC0yNDMsNiArMjQ0LDkgQEAgc3RhdGljIHZvaWQgZGNlX3YxMF8wX3BhZ2VfZmxpcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgR1JQSF9GTElQX0NPTlRST0wsCiAJCQkgICAgR1JQSF9TVVJGQUNFX1VQREFURV9IX1JFVFJBQ0VfRU4sIGFzeW5jID8gMSA6IDApOwogCVdSRUczMihtbUdSUEhfRkxJUF9DT05UUk9MICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCB0bXApOworCS8qIHVwZGF0ZSBwaXRjaCAqLworCVdSRUczMihtbUdSUEhfUElUQ0ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCisJICAgICAgIGZiLT5waXRjaGVzWzBdIC8gZmItPmZvcm1hdC0+Y3BwWzBdKTsKIAkvKiB1cGRhdGUgdGhlIHByaW1hcnkgc2Nhbm91dCBhZGRyZXNzICovCiAJV1JFRzMyKG1tR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAogCSAgICAgICB1cHBlcl8zMl9iaXRzKGNydGNfYmFzZSkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwppbmRleCA5ZTA3ODJiLi5kOWY0NzA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwpAQCAtMjU0LDYgKzI1NCw3IEBAIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9wYWdlX2ZsaXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJaW50IGNydGNfaWQsIHU2NCBjcnRjX2Jhc2UsIGJvb2wgYXN5bmMpCiB7CiAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0YyA9IGFkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjX2lkXTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGFtZGdwdV9jcnRjLT5iYXNlLnByaW1hcnktPmZiOwogCXUzMiB0bXA7CiAKIAkvKiBmbGlwIGltbWVkaWF0ZSBmb3IgYXN5bmMsIGRlZmF1bHQgaXMgdnN5bmMgKi8KQEAgLTI2MSw2ICsyNjIsOSBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfcGFnZV9mbGlwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBHUlBIX0ZMSVBfQ09OVFJPTCwKIAkJCSAgICBHUlBIX1NVUkZBQ0VfVVBEQVRFX0lNTUVESUFURV9FTiwgYXN5bmMgPyAxIDogMCk7CiAJV1JFRzMyKG1tR1JQSF9GTElQX0NPTlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIHRtcCk7CisJLyogdXBkYXRlIHBpdGNoICovCisJV1JFRzMyKG1tR1JQSF9QSVRDSCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKKwkgICAgICAgZmItPnBpdGNoZXNbMF0gLyBmYi0+Zm9ybWF0LT5jcHBbMF0pOwogCS8qIHVwZGF0ZSB0aGUgc2Nhbm91dCBhZGRyZXNzZXMgKi8KIAlXUkVHMzIobW1HUlBIX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCiAJICAgICAgIHVwcGVyXzMyX2JpdHMoY3J0Y19iYXNlKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYwppbmRleCA0YmY0NTNlLi4zZWIyZTc0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCkBAIC0xOTEsMTAgKzE5MSwxNCBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9wYWdlX2ZsaXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICAgICAgaW50IGNydGNfaWQsIHU2NCBjcnRjX2Jhc2UsIGJvb2wgYXN5bmMpCiB7CiAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0YyA9IGFkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjX2lkXTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGFtZGdwdV9jcnRjLT5iYXNlLnByaW1hcnktPmZiOwogCiAJLyogZmxpcCBhdCBoc3luYyBmb3IgYXN5bmMsIGRlZmF1bHQgaXMgdnN5bmMgKi8KIAlXUkVHMzIobW1HUlBIX0ZMSVBfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgYXN5bmMgPwogCSAgICAgICBHUlBIX0ZMSVBfQ09OVFJPTF9fR1JQSF9TVVJGQUNFX1VQREFURV9IX1JFVFJBQ0VfRU5fTUFTSyA6IDApOworCS8qIHVwZGF0ZSBwaXRjaCAqLworCVdSRUczMihtbUdSUEhfUElUQ0ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCisJICAgICAgIGZiLT5waXRjaGVzWzBdIC8gZmItPmZvcm1hdC0+Y3BwWzBdKTsKIAkvKiB1cGRhdGUgdGhlIHNjYW5vdXQgYWRkcmVzc2VzICovCiAJV1JFRzMyKG1tR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAogCSAgICAgICB1cHBlcl8zMl9iaXRzKGNydGNfYmFzZSkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKaW5kZXggYjIzNDE4Yy4uYTE2YzVlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCkBAIC0xODQsMTAgKzE4NCwxNCBAQCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9wYWdlX2ZsaXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICAgICAgaW50IGNydGNfaWQsIHU2NCBjcnRjX2Jhc2UsIGJvb2wgYXN5bmMpCiB7CiAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0YyA9IGFkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjX2lkXTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGFtZGdwdV9jcnRjLT5iYXNlLnByaW1hcnktPmZiOwogCiAJLyogZmxpcCBhdCBoc3luYyBmb3IgYXN5bmMsIGRlZmF1bHQgaXMgdnN5bmMgKi8KIAlXUkVHMzIobW1HUlBIX0ZMSVBfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgYXN5bmMgPwogCSAgICAgICBHUlBIX0ZMSVBfQ09OVFJPTF9fR1JQSF9TVVJGQUNFX1VQREFURV9IX1JFVFJBQ0VfRU5fTUFTSyA6IDApOworCS8qIHVwZGF0ZSBwaXRjaCAqLworCVdSRUczMihtbUdSUEhfUElUQ0ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCisJICAgICAgIGZiLT5waXRjaGVzWzBdIC8gZmItPmZvcm1hdC0+Y3BwWzBdKTsKIAkvKiB1cGRhdGUgdGhlIHByaW1hcnkgc2Nhbm91dCBhZGRyZXNzZXMgKi8KIAlXUkVHMzIobW1HUlBIX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCiAJICAgICAgIHVwcGVyXzMyX2JpdHMoY3J0Y19iYXNlKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdmlydHVhbC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYwppbmRleCAzY2MwYTE2Li5jOTYwOGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdmlydHVhbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92aXJ0dWFsLmMKQEAgLTQ1NCwxMyArNDU0LDggQEAgc3RhdGljIGludCBkY2VfdmlydHVhbF9od19pbml0KHZvaWQgKmhhbmRsZSkKICNlbmRpZgogCQkvKiBubyBEQ0UgKi8KIAkJYnJlYWs7Ci0JY2FzZSBDSElQX1ZFR0ExMDoKLQljYXNlIENISVBfVkVHQTEyOgotCWNhc2UgQ0hJUF9WRUdBMjA6Ci0JY2FzZSBDSElQX05BVkkxMDoKLQkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJRFJNX0VSUk9SKCJWaXJ0dWFsIGRpc3BsYXkgdW5zdXBwb3J0ZWQgQVNJQyB0eXBlOiAweCVYXG4iLCBhZGV2LT5hc2ljX3R5cGUpOworCQlicmVhazsKIAl9CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kZl92M182LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kZl92M182LmMKaW5kZXggZWY2ZTkxZi4uNTg1MGM4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGZfdjNfNi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RmX3YzXzYuYwpAQCAtOTMsNiArOTMsOTYgQEAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZGZfdjNfNl9hdHRyX2dyb3Vwc1tdID0gewogCQlOVUxMCiB9OwogCitzdGF0aWMgdWludDY0X3QgZGZfdjNfNl9nZXRfZmljYShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkgdWludDMyX3QgZmljYWFfdmFsKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIGFkZHJlc3MsIGRhdGE7CisJdWludDMyX3QgZmljYWRsX3ZhbCwgZmljYWRoX3ZhbDsKKworCWFkZHJlc3MgPSBhZGV2LT5uYmlvX2Z1bmNzLT5nZXRfcGNpZV9pbmRleF9vZmZzZXQoYWRldik7CisJZGF0YSA9IGFkZXYtPm5iaW9fZnVuY3MtPmdldF9wY2llX2RhdGFfb2Zmc2V0KGFkZXYpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmFkZXYtPnBjaWVfaWR4X2xvY2ssIGZsYWdzKTsKKwlXUkVHMzIoYWRkcmVzcywgc21uREZfUElFX0FPTl9GYWJyaWNJbmRpcmVjdENvbmZpZ0FjY2Vzc0FkZHJlc3MzKTsKKwlXUkVHMzIoZGF0YSwgZmljYWFfdmFsKTsKKworCVdSRUczMihhZGRyZXNzLCBzbW5ERl9QSUVfQU9OX0ZhYnJpY0luZGlyZWN0Q29uZmlnQWNjZXNzRGF0YUxvMyk7CisJZmljYWRsX3ZhbCA9IFJSRUczMihkYXRhKTsKKworCVdSRUczMihhZGRyZXNzLCBzbW5ERl9QSUVfQU9OX0ZhYnJpY0luZGlyZWN0Q29uZmlnQWNjZXNzRGF0YUhpMyk7CisJZmljYWRoX3ZhbCA9IFJSRUczMihkYXRhKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPnBjaWVfaWR4X2xvY2ssIGZsYWdzKTsKKworCXJldHVybiAoKChmaWNhZGhfdmFsICYgMHhGRkZGRkZGRkZGRkZGRkZGKSA8PCAzMikgfCBmaWNhZGxfdmFsKTsKK30KKworc3RhdGljIHZvaWQgZGZfdjNfNl9zZXRfZmljYShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3QgZmljYWFfdmFsLAorCQkJICAgICB1aW50MzJfdCBmaWNhZGxfdmFsLCB1aW50MzJfdCBmaWNhZGhfdmFsKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIGFkZHJlc3MsIGRhdGE7CisKKwlhZGRyZXNzID0gYWRldi0+bmJpb19mdW5jcy0+Z2V0X3BjaWVfaW5kZXhfb2Zmc2V0KGFkZXYpOworCWRhdGEgPSBhZGV2LT5uYmlvX2Z1bmNzLT5nZXRfcGNpZV9kYXRhX29mZnNldChhZGV2KTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZhZGV2LT5wY2llX2lkeF9sb2NrLCBmbGFncyk7CisJV1JFRzMyKGFkZHJlc3MsIHNtbkRGX1BJRV9BT05fRmFicmljSW5kaXJlY3RDb25maWdBY2Nlc3NBZGRyZXNzMyk7CisJV1JFRzMyKGRhdGEsIGZpY2FhX3ZhbCk7CisKKwlXUkVHMzIoYWRkcmVzcywgc21uREZfUElFX0FPTl9GYWJyaWNJbmRpcmVjdENvbmZpZ0FjY2Vzc0RhdGFMbzMpOworCVdSRUczMihkYXRhLCBmaWNhZGxfdmFsKTsKKworCVdSRUczMihhZGRyZXNzLCBzbW5ERl9QSUVfQU9OX0ZhYnJpY0luZGlyZWN0Q29uZmlnQWNjZXNzRGF0YUhpMyk7CisJV1JFRzMyKGRhdGEsIGZpY2FkaF92YWwpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRldi0+cGNpZV9pZHhfbG9jaywgZmxhZ3MpOworfQorCisvKgorICogZGZfdjNfNl9wZXJmbW9uX3JyZWcgLSByZWFkIHBlcmZtb24gbG8gYW5kIGhpCisgKgorICogcmVxdWlyZWQgdG8gYmUgYXRvbWljLiAgbm8gbW1pbyBtZXRob2QgcHJvdmlkZWQgc28gc3Vic2VxdWVudCByZWFkcyBmb3IgbG8KKyAqIGFuZCBoaSByZXF1aXJlIHRvIHByZXNlcnZlIGRmIGZpbml0ZSBzdGF0ZSBtYWNoaW5lCisgKi8KK3N0YXRpYyB2b2lkIGRmX3YzXzZfcGVyZm1vbl9ycmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJICAgIHVpbnQzMl90IGxvX2FkZHIsIHVpbnQzMl90ICpsb192YWwsCisJCQkgICAgdWludDMyX3QgaGlfYWRkciwgdWludDMyX3QgKmhpX3ZhbCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzLCBhZGRyZXNzLCBkYXRhOworCisJYWRkcmVzcyA9IGFkZXYtPm5iaW9fZnVuY3MtPmdldF9wY2llX2luZGV4X29mZnNldChhZGV2KTsKKwlkYXRhID0gYWRldi0+bmJpb19mdW5jcy0+Z2V0X3BjaWVfZGF0YV9vZmZzZXQoYWRldik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmYWRldi0+cGNpZV9pZHhfbG9jaywgZmxhZ3MpOworCVdSRUczMihhZGRyZXNzLCBsb19hZGRyKTsKKwkqbG9fdmFsID0gUlJFRzMyKGRhdGEpOworCVdSRUczMihhZGRyZXNzLCBoaV9hZGRyKTsKKwkqaGlfdmFsID0gUlJFRzMyKGRhdGEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPnBjaWVfaWR4X2xvY2ssIGZsYWdzKTsKK30KKworLyoKKyAqIGRmX3YzXzZfcGVyZm1vbl93cmVnIC0gd3JpdGUgdG8gcGVyZm1vbiBsbyBhbmQgaGkKKyAqCisgKiByZXF1aXJlZCB0byBiZSBhdG9taWMuICBubyBtbWlvIG1ldGhvZCBwcm92aWRlZCBzbyBzdWJzZXF1ZW50IHJlYWRzIGFmdGVyCisgKiBkYXRhIHdyaXRlcyBjYW5ub3Qgb2NjdXIgdG8gcHJlc2VydmUgZGF0YSBmYWJyaWNzIGZpbml0ZSBzdGF0ZSBtYWNoaW5lLgorICovCitzdGF0aWMgdm9pZCBkZl92M182X3BlcmZtb25fd3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3QgbG9fYWRkciwKKwkJCSAgICB1aW50MzJfdCBsb192YWwsIHVpbnQzMl90IGhpX2FkZHIsIHVpbnQzMl90IGhpX3ZhbCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzLCBhZGRyZXNzLCBkYXRhOworCisJYWRkcmVzcyA9IGFkZXYtPm5iaW9fZnVuY3MtPmdldF9wY2llX2luZGV4X29mZnNldChhZGV2KTsKKwlkYXRhID0gYWRldi0+bmJpb19mdW5jcy0+Z2V0X3BjaWVfZGF0YV9vZmZzZXQoYWRldik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmYWRldi0+cGNpZV9pZHhfbG9jaywgZmxhZ3MpOworCVdSRUczMihhZGRyZXNzLCBsb19hZGRyKTsKKwlXUkVHMzIoZGF0YSwgbG9fdmFsKTsKKwlXUkVHMzIoYWRkcmVzcywgaGlfYWRkcik7CisJV1JFRzMyKGRhdGEsIGhpX3ZhbCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRldi0+cGNpZV9pZHhfbG9jaywgZmxhZ3MpOworfQorCiAvKiBnZXQgdGhlIG51bWJlciBvZiBkZiBjb3VudGVycyBhdmFpbGFibGUgKi8KIHN0YXRpYyBzc2l6ZV90IGRmX3YzXzZfZ2V0X2RmX2NudHJfYXZhaWwoc3RydWN0IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKQEAgLTI2OCw2ICszNTgsMTAgQEAgc3RhdGljIGludCBkZl92M182X3BtY19nZXRfY3RybF9zZXR0aW5ncyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJICB1aW50MzJfdCAqbG9fdmFsLAogCQkJCQkgIHVpbnQzMl90ICpoaV92YWwpCiB7CisKKwl1aW50MzJfdCBldmVudHNlbCwgaW5zdGFuY2UsIHVuaXRtYXNrOworCXVpbnQzMl90IGluc3RhbmNlXzEwLCBpbnN0YW5jZV81NDMyLCBpbnN0YW5jZV83NjsKKwogCWRmX3YzXzZfcG1jX2dldF9hZGRyKGFkZXYsIGNvbmZpZywgMSwgbG9fYmFzZV9hZGRyLCBoaV9iYXNlX2FkZHIpOwogCiAJaWYgKCgqbG9fYmFzZV9hZGRyID09IDApIHx8ICgqaGlfYmFzZV9hZGRyID09IDApKSB7CkBAIC0yNzYsNDAgKzM3MCwzMyBAQCBzdGF0aWMgaW50IGRmX3YzXzZfcG1jX2dldF9jdHJsX3NldHRpbmdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlyZXR1cm4gLUVOWElPOwogCX0KIAotCWlmIChsb192YWwgJiYgaGlfdmFsKSB7Ci0JCXVpbnQzMl90IGV2ZW50c2VsLCBpbnN0YW5jZSwgdW5pdG1hc2s7Ci0JCXVpbnQzMl90IGluc3RhbmNlXzEwLCBpbnN0YW5jZV81NDMyLCBpbnN0YW5jZV83NjsKKwlldmVudHNlbCA9IERGX1YzXzZfR0VUX0VWRU5UKGNvbmZpZykgJiAweDNmOworCXVuaXRtYXNrID0gREZfVjNfNl9HRVRfVU5JVE1BU0soY29uZmlnKSAmIDB4ZjsKKwlpbnN0YW5jZSA9IERGX1YzXzZfR0VUX0lOU1RBTkNFKGNvbmZpZyk7CiAKLQkJZXZlbnRzZWwgPSBERl9WM182X0dFVF9FVkVOVChjb25maWcpICYgMHgzZjsKLQkJdW5pdG1hc2sgPSBERl9WM182X0dFVF9VTklUTUFTSyhjb25maWcpICYgMHhmOwotCQlpbnN0YW5jZSA9IERGX1YzXzZfR0VUX0lOU1RBTkNFKGNvbmZpZyk7CisJaW5zdGFuY2VfMTAgPSBpbnN0YW5jZSAmIDB4MzsKKwlpbnN0YW5jZV81NDMyID0gKGluc3RhbmNlID4+IDIpICYgMHhmOworCWluc3RhbmNlXzc2ID0gKGluc3RhbmNlID4+IDYpICYgMHgzOwogCi0JCWluc3RhbmNlXzEwID0gaW5zdGFuY2UgJiAweDM7Ci0JCWluc3RhbmNlXzU0MzIgPSAoaW5zdGFuY2UgPj4gMikgJiAweGY7Ci0JCWluc3RhbmNlXzc2ID0gKGluc3RhbmNlID4+IDYpICYgMHgzOworCSpsb192YWwgPSAodW5pdG1hc2sgPDwgOCkgfCAoaW5zdGFuY2VfMTAgPDwgNikgfCBldmVudHNlbCB8ICgxIDw8IDIyKTsKKwkqaGlfdmFsID0gKGluc3RhbmNlXzc2IDw8IDI5KSB8IGluc3RhbmNlXzU0MzI7CiAKLQkJKmxvX3ZhbCA9ICh1bml0bWFzayA8PCA4KSB8IChpbnN0YW5jZV8xMCA8PCA2KSB8IGV2ZW50c2VsOwotCQkqaGlfdmFsID0gKGluc3RhbmNlXzc2IDw8IDI5KSB8IGluc3RhbmNlXzU0MzI7Ci0JfQorCURSTV9ERUJVR19EUklWRVIoImNvbmZpZz0lbGx4IGFkZHI9JTA4eDolMDh4IHZhbD0lMDh4OiUwOHgiLAorCQljb25maWcsICpsb19iYXNlX2FkZHIsICpoaV9iYXNlX2FkZHIsICpsb192YWwsICpoaV92YWwpOwogCiAJcmV0dXJuIDA7CiB9CiAKLS8qIGFzc2lnbiBkZiBwZXJmb3JtYW5jZSBjb3VudGVycyBmb3IgcmVhZCAqLwotc3RhdGljIGludCBkZl92M182X3BtY19hc3NpZ25fY250cihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkgICB1aW50NjRfdCBjb25maWcsCi0JCQkJICAgaW50ICppc19hc3NpZ25lZCkKKy8qIGFkZCBkZiBwZXJmb3JtYW5jZSBjb3VudGVycyBmb3IgcmVhZCAqLworc3RhdGljIGludCBkZl92M182X3BtY19hZGRfY250cihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkgICB1aW50NjRfdCBjb25maWcpCiB7CiAJaW50IGksIHRhcmdldF9jbnRyOwogCi0JKmlzX2Fzc2lnbmVkID0gMDsKLQogCXRhcmdldF9jbnRyID0gZGZfdjNfNl9wbWNfY29uZmlnXzJfY250cihhZGV2LCBjb25maWcpOwogCi0JaWYgKHRhcmdldF9jbnRyID49IDApIHsKLQkJKmlzX2Fzc2lnbmVkID0gMTsKKwlpZiAodGFyZ2V0X2NudHIgPj0gMCkKIAkJcmV0dXJuIDA7Ci0JfQogCiAJZm9yIChpID0gMDsgaSA8IERGX1YzXzZfTUFYX0NPVU5URVJTOyBpKyspIHsKIAkJaWYgKGFkZXYtPmRmX3BlcmZtb25fY29uZmlnX2Fzc2lnbl9tYXNrW2ldID09IDBVKSB7CkBAIC0zNDQsNDUgKzQzMSwxMyBAQCBzdGF0aWMgdm9pZCBkZl92M182X3Jlc2V0X3BlcmZtb25fY250cihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlpZiAoKGxvX2Jhc2VfYWRkciA9PSAwKSB8fCAoaGlfYmFzZV9hZGRyID09IDApKQogCQlyZXR1cm47CiAKLQlXUkVHMzJfUENJRShsb19iYXNlX2FkZHIsIDBVTCk7Ci0JV1JFRzMyX1BDSUUoaGlfYmFzZV9hZGRyLCAwVUwpOwotfQotCi0KLXN0YXRpYyBpbnQgZGZfdjNfNl9hZGRfcGVyZm1vbl9jbnRyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCSAgICAgIHVpbnQ2NF90IGNvbmZpZykKLXsKLQl1aW50MzJfdCBsb19iYXNlX2FkZHIsIGhpX2Jhc2VfYWRkciwgbG9fdmFsLCBoaV92YWw7Ci0JaW50IHJldCwgaXNfYXNzaWduZWQ7Ci0KLQlyZXQgPSBkZl92M182X3BtY19hc3NpZ25fY250cihhZGV2LCBjb25maWcsICZpc19hc3NpZ25lZCk7Ci0KLQlpZiAocmV0IHx8IGlzX2Fzc2lnbmVkKQotCQlyZXR1cm4gcmV0OwotCi0JcmV0ID0gZGZfdjNfNl9wbWNfZ2V0X2N0cmxfc2V0dGluZ3MoYWRldiwKLQkJCWNvbmZpZywKLQkJCSZsb19iYXNlX2FkZHIsCi0JCQkmaGlfYmFzZV9hZGRyLAotCQkJJmxvX3ZhbCwKLQkJCSZoaV92YWwpOwotCi0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCURSTV9ERUJVR19EUklWRVIoImNvbmZpZz0lbGx4IGFkZHI9JTA4eDolMDh4IHZhbD0lMDh4OiUwOHgiLAotCQkJY29uZmlnLCBsb19iYXNlX2FkZHIsIGhpX2Jhc2VfYWRkciwgbG9fdmFsLCBoaV92YWwpOwotCi0JV1JFRzMyX1BDSUUobG9fYmFzZV9hZGRyLCBsb192YWwpOwotCVdSRUczMl9QQ0lFKGhpX2Jhc2VfYWRkciwgaGlfdmFsKTsKLQotCXJldHVybiByZXQ7CisJZGZfdjNfNl9wZXJmbW9uX3dyZWcoYWRldiwgbG9fYmFzZV9hZGRyLCAwLCBoaV9iYXNlX2FkZHIsIDApOwogfQogCiBzdGF0aWMgaW50IGRmX3YzXzZfcG1jX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50NjRfdCBjb25maWcsCiAJCQkgICAgIGludCBpc19lbmFibGUpCiB7Ci0JdWludDMyX3QgbG9fYmFzZV9hZGRyLCBoaV9iYXNlX2FkZHIsIGxvX3ZhbDsKKwl1aW50MzJfdCBsb19iYXNlX2FkZHIsIGhpX2Jhc2VfYWRkciwgbG9fdmFsLCBoaV92YWw7CiAJaW50IHJldCA9IDA7CiAKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewpAQCAtMzkxLDI0ICs0NDYsMjAgQEAgc3RhdGljIGludCBkZl92M182X3BtY19zdGFydChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3QgY29uZmlnLAogCQlkZl92M182X3Jlc2V0X3BlcmZtb25fY250cihhZGV2LCBjb25maWcpOwogCiAJCWlmIChpc19lbmFibGUpIHsKLQkJCXJldCA9IGRmX3YzXzZfYWRkX3BlcmZtb25fY250cihhZGV2LCBjb25maWcpOworCQkJcmV0ID0gZGZfdjNfNl9wbWNfYWRkX2NudHIoYWRldiwgY29uZmlnKTsKIAkJfSBlbHNlIHsKIAkJCXJldCA9IGRmX3YzXzZfcG1jX2dldF9jdHJsX3NldHRpbmdzKGFkZXYsCiAJCQkJCWNvbmZpZywKIAkJCQkJJmxvX2Jhc2VfYWRkciwKIAkJCQkJJmhpX2Jhc2VfYWRkciwKLQkJCQkJTlVMTCwKLQkJCQkJTlVMTCk7CisJCQkJCSZsb192YWwsCisJCQkJCSZoaV92YWwpOwogCiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAKLQkJCWxvX3ZhbCA9IFJSRUczMl9QQ0lFKGxvX2Jhc2VfYWRkcik7Ci0KLQkJCURSTV9ERUJVR19EUklWRVIoImNvbmZpZz0lbGx4IGFkZHI9JTA4eDolMDh4IHZhbD0lMDh4IiwKLQkJCQljb25maWcsIGxvX2Jhc2VfYWRkciwgaGlfYmFzZV9hZGRyLCBsb192YWwpOwotCi0JCQlXUkVHMzJfUENJRShsb19iYXNlX2FkZHIsIGxvX3ZhbCB8ICgxVUxMIDw8IDIyKSk7CisJCQlkZl92M182X3BlcmZtb25fd3JlZyhhZGV2LCBsb19iYXNlX2FkZHIsIGxvX3ZhbCwKKwkJCQkJaGlfYmFzZV9hZGRyLCBoaV92YWwpOwogCQl9CiAKIAkJYnJlYWs7CkBAIC00MjIsNyArNDczLDcgQEAgc3RhdGljIGludCBkZl92M182X3BtY19zdGFydChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3QgY29uZmlnLAogc3RhdGljIGludCBkZl92M182X3BtY19zdG9wKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50NjRfdCBjb25maWcsCiAJCQkgICAgaW50IGlzX2Rpc2FibGUpCiB7Ci0JdWludDMyX3QgbG9fYmFzZV9hZGRyLCBoaV9iYXNlX2FkZHIsIGxvX3ZhbDsKKwl1aW50MzJfdCBsb19iYXNlX2FkZHIsIGhpX2Jhc2VfYWRkciwgbG9fdmFsLCBoaV92YWw7CiAJaW50IHJldCA9IDA7CiAKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewpAQCAtNDMxLDE4ICs0ODIsMTMgQEAgc3RhdGljIGludCBkZl92M182X3BtY19zdG9wKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50NjRfdCBjb25maWcsCiAJCQljb25maWcsCiAJCQkmbG9fYmFzZV9hZGRyLAogCQkJJmhpX2Jhc2VfYWRkciwKLQkJCU5VTEwsCi0JCQlOVUxMKTsKKwkJCSZsb192YWwsCisJCQkmaGlfdmFsKTsKIAogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAotCQlsb192YWwgPSBSUkVHMzJfUENJRShsb19iYXNlX2FkZHIpOwotCi0JCURSTV9ERUJVR19EUklWRVIoImNvbmZpZz0lbGx4IGFkZHI9JTA4eDolMDh4IHZhbD0lMDh4IiwKLQkJCQljb25maWcsIGxvX2Jhc2VfYWRkciwgaGlfYmFzZV9hZGRyLCBsb192YWwpOwotCi0JCVdSRUczMl9QQ0lFKGxvX2Jhc2VfYWRkciwgbG9fdmFsICYgfigxVUxMIDw8IDIyKSk7CisJCWRmX3YzXzZfcGVyZm1vbl93cmVnKGFkZXYsIGxvX2Jhc2VfYWRkciwgMCwgaGlfYmFzZV9hZGRyLCAwKTsKIAogCQlpZiAoaXNfZGlzYWJsZSkKIAkJCWRmX3YzXzZfcG1jX3JlbGVhc2VfY250cihhZGV2LCBjb25maWcpOwpAQCAtNDcxLDggKzUxNyw4IEBAIHN0YXRpYyB2b2lkIGRmX3YzXzZfcG1jX2dldF9jb3VudChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJaWYgKChsb19iYXNlX2FkZHIgPT0gMCkgfHwgKGhpX2Jhc2VfYWRkciA9PSAwKSkKIAkJCXJldHVybjsKIAotCQlsb192YWwgPSBSUkVHMzJfUENJRShsb19iYXNlX2FkZHIpOwotCQloaV92YWwgPSBSUkVHMzJfUENJRShoaV9iYXNlX2FkZHIpOworCQlkZl92M182X3BlcmZtb25fcnJlZyhhZGV2LCBsb19iYXNlX2FkZHIsICZsb192YWwsCisJCQkJaGlfYmFzZV9hZGRyLCAmaGlfdmFsKTsKIAogCQkqY291bnQgID0gKChoaV92YWwgfCAwVUxMKSA8PCAzMikgfCAobG9fdmFsIHwgMFVMTCk7CiAKQEAgLTQ4MCw3ICs1MjYsNyBAQCBzdGF0aWMgdm9pZCBkZl92M182X3BtY19nZXRfY291bnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkqY291bnQgPSAwOwogCiAJCURSTV9ERUJVR19EUklWRVIoImNvbmZpZz0lbGx4IGFkZHI9JTA4eDolMDh4IHZhbD0lMDh4OiUwOHgiLAotCQkJY29uZmlnLCBsb19iYXNlX2FkZHIsIGhpX2Jhc2VfYWRkciwgbG9fdmFsLCBoaV92YWwpOworCQkJIGNvbmZpZywgbG9fYmFzZV9hZGRyLCBoaV9iYXNlX2FkZHIsIGxvX3ZhbCwgaGlfdmFsKTsKIAogCQlicmVhazsKIApAQCAtNDk5LDUgKzU0NSw3IEBAIGNvbnN0IHN0cnVjdCBhbWRncHVfZGZfZnVuY3MgZGZfdjNfNl9mdW5jcyA9IHsKIAkuZ2V0X2Nsb2NrZ2F0aW5nX3N0YXRlID0gZGZfdjNfNl9nZXRfY2xvY2tnYXRpbmdfc3RhdGUsCiAJLnBtY19zdGFydCA9IGRmX3YzXzZfcG1jX3N0YXJ0LAogCS5wbWNfc3RvcCA9IGRmX3YzXzZfcG1jX3N0b3AsCi0JLnBtY19nZXRfY291bnQgPSBkZl92M182X3BtY19nZXRfY291bnQKKwkucG1jX2dldF9jb3VudCA9IGRmX3YzXzZfcG1jX2dldF9jb3VudCwKKwkuZ2V0X2ZpY2EgPSBkZl92M182X2dldF9maWNhLAorCS5zZXRfZmljYSA9IGRmX3YzXzZfc2V0X2ZpY2EKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92MTBfMC5jCmluZGV4IGY0MTI4N2YuLjYzOGM4MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92MTBfMC5jCkBAIC0yMCw4ICsyMCwxMiBAQAogICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgogICoKICAqLworCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSAiYW1kZ3B1LmgiCiAjaW5jbHVkZSAiYW1kZ3B1X2dmeC5oIgogI2luY2x1ZGUgImFtZGdwdV9wc3AuaCIKQEAgLTU2LDYgKzYwLDkgQEAKICNkZWZpbmUgRjMyX0NFX1BST0dSQU1fUkFNX1NJWkUJCTY1NTM2CiAjZGVmaW5lIFJMQ0dfVUNPREVfTE9BRElOR19TVEFSVF9BRERSRVNTCTB4MDAwMDIwMDBMCiAKKyNkZWZpbmUgbW1DR1RUX0dTX05HR19DTEtfQ1RSTAkweDUwODcKKyNkZWZpbmUgbW1DR1RUX0dTX05HR19DTEtfQ1RSTF9CQVNFX0lEWAkxCisKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxMF9jZS5iaW4iKTsKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxMF9wZnAuYmluIik7CiBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTBfbWUuYmluIik7CkBAIC02Myw2ICs3MCwyNSBAQCBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTBfbWVjLmJpbiIpOwogTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTEwX21lYzIuYmluIik7CiBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTBfcmxjLmJpbiIpOwogCitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTRfY2Vfd2tzLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTE0X3BmcF93a3MuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTRfbWVfd2tzLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTE0X21lY193a3MuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTRfbWVjMl93a3MuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTRfY2UuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTRfcGZwLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTE0X21lLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTE0X21lYy5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxNF9tZWMyLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTE0X3JsYy5iaW4iKTsKKworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTEyX2NlLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTEyX3BmcC5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxMl9tZS5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxMl9tZWMuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTJfbWVjMi5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxMl9ybGMuYmluIik7CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jMTVfcmVnX2dvbGRlbiBnb2xkZW5fc2V0dGluZ3NfZ2NfMTBfMVtdID0KIHsKIAlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUNCX0hXX0NPTlRST0xfNCwgMHhmZmZmZmZmZiwgMHgwMDQwMDAxNCksCkBAIC0xMDksNiArMTM1LDk5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jMTVfcmVnX2dvbGRlbiBnb2xkZW5fc2V0dGluZ3NfZ2NfMTBfMF9udjEwW10gPQogCS8qIFBlbmRpbmcgb24gZW11bGF0aW9uIGJyaW5nIHVwICovCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvYzE1X3JlZ19nb2xkZW4gZ29sZGVuX3NldHRpbmdzX2djXzEwXzFfMVtdID0KK3sKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUNCX0hXX0NPTlRST0xfNCwgMHhmZmZmZmZmZiwgMHgwMDNjMDAxNCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1DR1RUX0dTX05HR19DTEtfQ1RSTCwgMHhmZmZmOGZmZiwgMHhmZmZmODEwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1DR1RUX0lBX0NMS19DVFJMLCAweGZmZmYwZmZmLCAweGZmZmYwMTAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUNHVFRfU1BJX0NMS19DVFJMLCAweGMwMDAwMDAwLCAweGMwMDAwMTAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUNHVFRfU1FfQ0xLX0NUUkwsIDB4ZjhmZjBmZmYsIDB4NjAwMDAxMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tQ0dUVF9TUUdfQ0xLX0NUUkwsIDB4NDAwMDBmZjAsIDB4NDAwMDAxMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tQ0dUVF9WR1RfQ0xLX0NUUkwsIDB4ZmZmZjhmZmYsIDB4ZmZmZjgxMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tQ0dUVF9XRF9DTEtfQ1RSTCwgMHhmZmZmOGZmZiwgMHhmZmZmODEwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1DSF9QSVBFX1NURUVSLCAweGZmZmZmZmZmLCAweGU0ZTRlNGU0KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUNIX1ZDNV9FTkFCTEUsIDB4MDAwMDAwMDIsIDB4MDAwMDAwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tQ1BfU0RfQ05UTCwgMHg4MDAwMDdmZiwgMHgwMDAwMDVmZiksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1EQl9ERUJVRywgMHhmZmZmZmZmZiwgMHgyMDAwMDAwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1EQl9ERUJVRzIsIDB4ZmZmZmZmZmYsIDB4MDAwMDA0MjApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tREJfREVCVUczLCAweDAwMDAwMjAwLCAweDAwMDAwMjAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbURCX0RFQlVHNCwgMHhmZmZmZmZmZiwgMHgwNDkwMDAwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1EQl9ERlNNX1RJTEVTX0lOX0ZMSUdIVCwgMHgwMDAwZmZmZiwgMHgwMDAwMDAzZiksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1EQl9MQVNUX09GX0JVUlNUX0NPTkZJRywgMHhmZmZmZmZmZiwgMHgwMzg2MDIwNCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1HQ1JfR0VORVJBTF9DTlRMLCAweDFmZjBmZmZmLCAweDAwMDAwNTAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdFX1BSSVZfQ09OVFJPTCwgMHgwMDAwMDdmZiwgMHgwMDAwMDFmZSksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1HTDFfUElQRV9TVEVFUiwgMHhmZmZmZmZmZiwgMHhlNGU0ZTRlNCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1HTDJBX0FERFJfTUFUQ0hfTUFTSywgMHhmZmZmZmZmZiwgMHhmZmZmZmZlNyksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1HTDJDX0FERFJfTUFUQ0hfTUFTSywgMHhmZmZmZmZmZiwgMHhmZmZmZmZlNyksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1HTDJDX0NHVFRfU0NMS19DVFJMLCAweGZmZmYwZmZmLCAweDEwMDAwMTAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdMMkNfQ1RSTDIsIDB4ZmZmZmZmZmYsIDB4MTQwMjAwMmYpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tR0wyQ19DVFJMMywgMHhmZmZmYmZmZiwgMHgwMDAwMDE4OCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1QQV9TQ19FTkhBTkNFLCAweDNmZmZmZmZmLCAweDA4MDAwMDA5KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVBBX1NDX0VOSEFOQ0VfMSwgMHgwMDQwMDAwMCwgMHgwNDQ0MDAwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1QQV9TQ19MSU5FX1NUSVBQTEVfU1RBVEUsIDB4MDAwMGZmMGYsIDB4MDAwMDAwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tUk1JX1NQQVJFLCAweGZmZmZmZmZmLCAweGZmZmYzMTAxKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNRX0FMVV9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1TUV9BUkJfQ09ORklHLCAweDAwMDAwMTMzLCAweDAwMDAwMTMwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNRX0xEU19DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1UQV9DTlRMX0FVWCwgMHhmZmY3ZmZmZiwgMHgwMTAzMDAwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1UQ1BfQ05UTCwgMHg2MDAwMDAxMCwgMHg0NzljMDAxMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1VVENMMV9DVFJMLCAweDAwODAwMDAwLCAweDAwODAwMDAwKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jMTVfcmVnX2dvbGRlbiBnb2xkZW5fc2V0dGluZ3NfZ2NfMTBfMV8yW10gPQoreworCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tQ0JfSFdfQ09OVFJPTF80LCAweDAwM2UwMDFmLCAweDAwM2MwMDE0KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUNHVFRfR1NfTkdHX0NMS19DVFJMLCAweGZmZmY4ZmZmLCAweGZmZmY4MTAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUNHVFRfSUFfQ0xLX0NUUkwsIDB4ZmZmZjBmZmYsIDB4ZmZmZjAxMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tQ0dUVF9TUElfQ0xLX0NUUkwsIDB4ZmY3ZjBmZmYsIDB4YzAwMDAxMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tQ0dUVF9TUV9DTEtfQ1RSTCwgMHhmZmZmY2ZmZiwgMHg2MDAwMDEwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1DR1RUX1NRR19DTEtfQ1RSTCwgMHhmZmZmMGZmZiwgMHg0MDAwMDEwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1DR1RUX1ZHVF9DTEtfQ1RSTCwgMHhmZmZmOGZmZiwgMHhmZmZmODEwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1DR1RUX1dEX0NMS19DVFJMLCAweGZmZmY4ZmZmLCAweGZmZmY4MTAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUNIX1BJUEVfU1RFRVIsIDB4ZmZmZmZmZmYsIDB4ZTRlNGU0ZTQpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tQ0hfVkM1X0VOQUJMRSwgMHgwMDAwMDAwMywgMHgwMDAwMDAwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1DUF9TRF9DTlRMLCAweDgwMDAwN2ZmLCAweDAwMDAwNWZmKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbURCX0RFQlVHLCAweGZmZmZmZmZmLCAweDIwMDAwMDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbURCX0RFQlVHMiwgMHhmZmZmZmZmZiwgMHgwMDAwMDQyMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1EQl9ERUJVRzMsIDB4ZmZmZmZmZmYsIDB4MDAwMDAyMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tREJfREVCVUc0LCAweGZmZmZmZmZmLCAweDA0ODAwMDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbURCX0RGU01fVElMRVNfSU5fRkxJR0hULCAweDAwMDBmZmZmLCAweDAwMDAwMDNmKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbURCX0xBU1RfT0ZfQlVSU1RfQ09ORklHLCAweGZmZmZmZmZmLCAweDAzODYwMjA0KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdDUl9HRU5FUkFMX0NOVEwsIDB4MWZmMGZmZmYsIDB4MDAwMDA1MDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tR0VfUFJJVl9DT05UUk9MLCAweDAwMDA3ZmZmLCAweDAwMDAwMWZlKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdMMV9QSVBFX1NURUVSLCAweGZmZmZmZmZmLCAweGU0ZTRlNGU0KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdMMl9QSVBFX1NURUVSXzAsIDB4Nzc3Nzc3NzcsIDB4MTAzMjEwMzIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tR0wyX1BJUEVfU1RFRVJfMSwgMHg3Nzc3Nzc3NywgMHgwMjMxMDIzMSksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1HTDJBX0FERFJfTUFUQ0hfTUFTSywgMHhmZmZmZmZmZiwgMHhmZmZmZmZjZiksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1HTDJDX0FERFJfTUFUQ0hfTUFTSywgMHhmZmZmZmZmZiwgMHhmZmZmZmZjZiksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1HTDJDX0NHVFRfU0NMS19DVFJMLCAweGZmZmYwZmZmLCAweDEwMDAwMTAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdMMkNfQ1RSTDIsIDB4ZmZmZmZmZmYsIDB4MTQwMjAwMmYpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tR0wyQ19DVFJMMywgMHhmZmZmYmZmZiwgMHgwMDAwMDE4OCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1QQV9TQ19CSU5ORVJfRVZFTlRfQ05UTF8wLCAweGZmZmZmZmZmLCAweDg0MmE0YzAyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVBBX1NDX0JJTk5FUl9USU1FT1VUX0NPVU5URVIsIDB4ZmZmZmZmZmYsIDB4MDAwMDA4MDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tUEFfU0NfRU5IQU5DRSwgMHgzZmZmZmZmZiwgMHgwODAwMDAwOSksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1QQV9TQ19FTkhBTkNFXzEsIDB4ZmZmZmZmZmYsIDB4MDQ0NDAwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tUEFfU0NfRU5IQU5DRV8yLCAweDAwMDAwODIwLCAweDAwMDAwODIwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVBBX1NDX0xJTkVfU1RJUFBMRV9TVEFURSwgMHgwMDAwZmYwZiwgMHgwMDAwMDAwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1STUlfU1BBUkUsIDB4ZmZmZmZmZmYsIDB4ZmZmZjMxMDEpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tU1FfQUxVX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNRX0FSQl9DT05GSUcsIDB4MDAwMDAxMzMsIDB4MDAwMDAxMzApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tU1FfTERTX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVRBX0NOVExfQVVYLCAweGZmZjdmZmZmLCAweDAxMDMwMDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVRDUF9DTlRMLCAweGZmZGY4MGZmLCAweDQ3OWMwMDEwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVVUQ0wxX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDA4MDAwMDApCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvYzE1X3JlZ19nb2xkZW4gZ29sZGVuX3NldHRpbmdzX2djXzEwXzFfbnYxNFtdID0KK3sKKwkvKiBQZW5kaW5nIG9uIGVtdWxhdGlvbiBicmluZyB1cCAqLworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2MxNV9yZWdfZ29sZGVuIGdvbGRlbl9zZXR0aW5nc19nY18xMF8xXzJfbnYxMltdID0KK3sKKwkvKiBQZW5kaW5nIG9uIGVtdWxhdGlvbiBicmluZyB1cCAqLworfTsKKwogI2RlZmluZSBERUZBVUxUX1NIX01FTV9DT05GSUcgXAogCSgoU0hfTUVNX0FERFJFU1NfTU9ERV82NCA8PCBTSF9NRU1fQ09ORklHX19BRERSRVNTX01PREVfX1NISUZUKSB8IFwKIAkgKFNIX01FTV9BTElHTk1FTlRfTU9ERV9VTkFMSUdORUQgPDwgU0hfTUVNX0NPTkZJR19fQUxJR05NRU5UX01PREVfX1NISUZUKSB8IFwKQEAgLTI1MCw2ICszNjksMjIgQEAgc3RhdGljIHZvaWQgZ2Z4X3YxMF8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCQkJCWdvbGRlbl9zZXR0aW5nc19nY18xMF8wX252MTAsCiAJCQkJCQkoY29uc3QgdTMyKUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzEwXzBfbnYxMCkpOwogCQlicmVhazsKKwljYXNlIENISVBfTkFWSTE0OgorCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCisJCQkJCQlnb2xkZW5fc2V0dGluZ3NfZ2NfMTBfMV8xLAorCQkJCQkJKGNvbnN0IHUzMilBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19nY18xMF8xXzEpKTsKKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAorCQkJCQkJZ29sZGVuX3NldHRpbmdzX2djXzEwXzFfbnYxNCwKKwkJCQkJCShjb25zdCB1MzIpQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3NfZ2NfMTBfMV9udjE0KSk7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTI6CisJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKKwkJCQkJCWdvbGRlbl9zZXR0aW5nc19nY18xMF8xXzIsCisJCQkJCQkoY29uc3QgdTMyKUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzEwXzFfMikpOworCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCisJCQkJCQlnb2xkZW5fc2V0dGluZ3NfZ2NfMTBfMV8yX252MTIsCisJCQkJCQkoY29uc3QgdTMyKUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzEwXzFfMl9udjEyKSk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KQEAgLTMzMSw3ICs0NjYsNyBAQCBzdGF0aWMgaW50IGdmeF92MTBfMF9yaW5nX3Rlc3RfcmluZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAJCWlmIChhbWRncHVfZW11X21vZGUgPT0gMSkKIAkJCW1zbGVlcCgxKTsKIAkJZWxzZQotCQkJRFJNX1VERUxBWSgxKTsKKwkJCXVkZWxheSgxKTsKIAl9CiAJaWYgKGkgPCBhZGV2LT51c2VjX3RpbWVvdXQpIHsKIAkJaWYgKGFtZGdwdV9lbXVfbW9kZSA9PSAxKQpAQCAtNDY0LDcgKzU5OSw4IEBAIHN0YXRpYyB2b2lkIGdmeF92MTBfMF9jaGVja19nZnhvZmZfZmxhZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHN0YXRpYyBpbnQgZ2Z4X3YxMF8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCWNvbnN0IGNoYXIgKmNoaXBfbmFtZTsKLQljaGFyIGZ3X25hbWVbMzBdOworCWNoYXIgZndfbmFtZVs0MF07CisJY2hhciB3a3NbMTBdOwogCWludCBlcnI7CiAJc3RydWN0IGFtZGdwdV9maXJtd2FyZV9pbmZvICppbmZvID0gTlVMTDsKIAljb25zdCBzdHJ1Y3QgY29tbW9uX2Zpcm13YXJlX2hlYWRlciAqaGVhZGVyID0gTlVMTDsKQEAgLTQ3NywxNSArNjEzLDI1IEBAIHN0YXRpYyBpbnQgZ2Z4X3YxMF8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJRFJNX0RFQlVHKCJcbiIpOwogCisJbWVtc2V0KHdrcywgMCwgc2l6ZW9mKHdrcykpOwogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJY2FzZSBDSElQX05BVkkxMDoKIAkJY2hpcF9uYW1lID0gIm5hdmkxMCI7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTQ6CisJCWNoaXBfbmFtZSA9ICJuYXZpMTQiOworCQlpZiAoIShhZGV2LT5wZGV2LT5kZXZpY2UgPT0gMHg3MzQwICYmCisJCSAgICAgIGFkZXYtPnBkZXYtPnJldmlzaW9uICE9IDB4MDApKQorCQkJc25wcmludGYod2tzLCBzaXplb2Yod2tzKSwgIl93a3MiKTsKKwkJYnJlYWs7CisJY2FzZSBDSElQX05BVkkxMjoKKwkJY2hpcF9uYW1lID0gIm5hdmkxMiI7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCUJVRygpOwogCX0KIAotCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19wZnAuYmluIiwgY2hpcF9uYW1lKTsKKwlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfcGZwJXMuYmluIiwgY2hpcF9uYW1lLCB3a3MpOwogCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5wZnBfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CkBAIC00OTYsNyArNjQyLDcgQEAgc3RhdGljIGludCBnZnhfdjEwXzBfaW5pdF9taWNyb2NvZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJYWRldi0+Z2Z4LnBmcF9md192ZXJzaW9uID0gbGUzMl90b19jcHUoY3BfaGRyLT5oZWFkZXIudWNvZGVfdmVyc2lvbik7CiAJYWRldi0+Z2Z4LnBmcF9mZWF0dXJlX3ZlcnNpb24gPSBsZTMyX3RvX2NwdShjcF9oZHItPnVjb2RlX2ZlYXR1cmVfdmVyc2lvbik7CiAKLQlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfbWUuYmluIiwgY2hpcF9uYW1lKTsKKwlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfbWUlcy5iaW4iLCBjaGlwX25hbWUsIHdrcyk7CiAJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z2Z4Lm1lX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwpAQCAtNTA3LDcgKzY1Myw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3YxMF8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWFkZXYtPmdmeC5tZV9md192ZXJzaW9uID0gbGUzMl90b19jcHUoY3BfaGRyLT5oZWFkZXIudWNvZGVfdmVyc2lvbik7CiAJYWRldi0+Z2Z4Lm1lX2ZlYXR1cmVfdmVyc2lvbiA9IGxlMzJfdG9fY3B1KGNwX2hkci0+dWNvZGVfZmVhdHVyZV92ZXJzaW9uKTsKIAotCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19jZS5iaW4iLCBjaGlwX25hbWUpOworCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19jZSVzLmJpbiIsIGNoaXBfbmFtZSwgd2tzKTsKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5nZnguY2VfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CkBAIC01NzIsNyArNzE4LDcgQEAgc3RhdGljIGludCBnZnhfdjEwXzBfaW5pdF9taWNyb2NvZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaWYgKGFkZXYtPmdmeC5ybGMuaXNfcmxjX3YyXzEpCiAJCWdmeF92MTBfMF9pbml0X3JsY19leHRfbWljcm9jb2RlKGFkZXYpOwogCi0Jc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX21lYy5iaW4iLCBjaGlwX25hbWUpOworCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19tZWMlcy5iaW4iLCBjaGlwX25hbWUsIHdrcyk7CiAJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z2Z4Lm1lY19mdywgZndfbmFtZSwgYWRldi0+ZGV2KTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTU4Myw3ICs3MjksNyBAQCBzdGF0aWMgaW50IGdmeF92MTBfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlhZGV2LT5nZngubWVjX2Z3X3ZlcnNpb24gPSBsZTMyX3RvX2NwdShjcF9oZHItPmhlYWRlci51Y29kZV92ZXJzaW9uKTsKIAlhZGV2LT5nZngubWVjX2ZlYXR1cmVfdmVyc2lvbiA9IGxlMzJfdG9fY3B1KGNwX2hkci0+dWNvZGVfZmVhdHVyZV92ZXJzaW9uKTsKIAotCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19tZWMyLmJpbiIsIGNoaXBfbmFtZSk7CisJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX21lYzIlcy5iaW4iLCBjaGlwX25hbWUsIHdrcyk7CiAJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z2Z4Lm1lYzJfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7CiAJaWYgKCFlcnIpIHsKIAkJZXJyID0gYW1kZ3B1X3Vjb2RlX3ZhbGlkYXRlKGFkZXYtPmdmeC5tZWMyX2Z3KTsKQEAgLTEwMjYsNiArMTE3Miw4IEBAIHN0YXRpYyB2b2lkIGdmeF92MTBfMF9ncHVfZWFybHlfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJY2FzZSBDSElQX05BVkkxMDoKKwljYXNlIENISVBfTkFWSTE0OgorCWNhc2UgQ0hJUF9OQVZJMTI6CiAJCWFkZXYtPmdmeC5jb25maWcubWF4X2h3X2NvbnRleHRzID0gODsKIAkJYWRldi0+Z2Z4LmNvbmZpZy5zY19wcmltX2ZpZm9fc2l6ZV9mcm9udGVuZCA9IDB4MjA7CiAJCWFkZXYtPmdmeC5jb25maWcuc2NfcHJpbV9maWZvX3NpemVfYmFja2VuZCA9IDB4MTAwOwpAQCAtMTEzMyw2ICsxMjgxLDggQEAgc3RhdGljIGludCBnZnhfdjEwXzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiAKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCWNhc2UgQ0hJUF9OQVZJMTA6CisJY2FzZSBDSElQX05BVkkxNDoKKwljYXNlIENISVBfTkFWSTEyOgogCQlhZGV2LT5nZngubWUubnVtX21lID0gMTsKIAkJYWRldi0+Z2Z4Lm1lLm51bV9waXBlX3Blcl9tZSA9IDI7CiAJCWFkZXYtPmdmeC5tZS5udW1fcXVldWVfcGVyX3BpcGUgPSAxOwpAQCAtMTQ1Miw2ICsxNjAyLDI1IEBAIHN0YXRpYyB2b2lkIGdmeF92MTBfMF9pbml0X2NvbXB1dGVfdm1pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9CiB9CiAKK3N0YXRpYyB2b2lkIGdmeF92MTBfMF9pbml0X2dkc192bWlkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCWludCB2bWlkOworCisJLyoKKwkgKiBJbml0aWFsaXplIGFsbCBjb21wdXRlIGFuZCB1c2VyLWdmeCBWTUlEcyB0byBoYXZlIG5vIEdEUywgR1dTLCBvciBPQQorCSAqIGFjY2Vzcy4gQ29tcHV0ZSBWTUlEcyBzaG91bGQgYmUgZW5hYmxlZCBieSBGVyBmb3IgdGFyZ2V0IFZNSURzLAorCSAqIHRoZSBkcml2ZXIgY2FuIGVuYWJsZSB0aGVtIGZvciBncmFwaGljcy4gVk1JRDAgc2hvdWxkIG1haW50YWluCisJICogYWNjZXNzIHNvIHRoYXQgSFdTIGZpcm13YXJlIGNhbiBzYXZlL3Jlc3RvcmUgZW50cmllcy4KKwkgKi8KKwlmb3IgKHZtaWQgPSAxOyB2bWlkIDwgMTY7IHZtaWQrKykgeworCQlXUkVHMzJfU09DMTVfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMF9CQVNFLCAyICogdm1pZCwgMCk7CisJCVdSRUczMl9TT0MxNV9PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQwX1NJWkUsIDIgKiB2bWlkLCAwKTsKKwkJV1JFRzMyX1NPQzE1X09GRlNFVChHQywgMCwgbW1HRFNfR1dTX1ZNSUQwLCB2bWlkLCAwKTsKKwkJV1JFRzMyX1NPQzE1X09GRlNFVChHQywgMCwgbW1HRFNfT0FfVk1JRDAsIHZtaWQsIDApOworCX0KK30KKworCiBzdGF0aWMgdm9pZCBnZnhfdjEwXzBfdGNwX2hhcnZlc3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJaW50IGksIGosIGs7CkBAIC0xNDYxLDcgKzE2MzAsOCBAQCBzdGF0aWMgdm9pZCBnZnhfdjEwXzBfdGNwX2hhcnZlc3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJdTMyIHV0Y2xfaW52cmVxX2Rpc2FibGUgPSAwOwogCS8qCiAJICogR0NSRF9UQVJHRVRTX0RJU0FCTEUgZmllbGQgY29udGFpbnMKLQkgKiBmb3IgTmF2aTEwOiBHTDFDPVsxODoxNV0sIFNRQz1bMTQ6MTBdLCBUQ1A9Wzk6MF0KKwkgKiBmb3IgTmF2aTEwL05hdmkxMjogR0wxQz1bMTg6MTVdLCBTUUM9WzE0OjEwXSwgVENQPVs5OjBdCisJICogZm9yIE5hdmkxNDogR0wxQz1bMjE6MThdLCBTUUM9WzE3OjEyXSwgVENQPVsxMTowXQogCSAqLwogCXUzMiBnY3JkX3RhcmdldHNfZGlzYWJsZV9tYXNrID0gYW1kZ3B1X2dmeF9jcmVhdGVfYml0bWFzaygKIAkJMiAqIG1heF93Z3BfcGVyX3NoICsgLyogVENQICovCkBAIC0xNDY5LDcgKzE2MzksOCBAQCBzdGF0aWMgdm9pZCBnZnhfdjEwXzBfdGNwX2hhcnZlc3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCTQpOyAvKiBHTDFDICovCiAJLyoKIAkgKiBVVENMMV9VVENMMF9JTlZSRVFfRElTQUJMRSBmaWVsZCBjb250YWlucwotCSAqIGZvciBOYXZpMTA6IFNRRz1bMjRdLCBSTUk9WzIzOjIwXSwgU1FDPVsxOToxMF0sIFRDUD1bOTowXQorCSAqIGZvciBOYXZpMTBOYXZpMTI6IFNRRz1bMjRdLCBSTUk9WzIzOjIwXSwgU1FDPVsxOToxMF0sIFRDUD1bOTowXQorCSAqIGZvciBOYXZpMTQ6IFNRRz1bMjhdLCBSTUk9WzI3OjI0XSwgU1FDPVsyMzoxMl0sIFRDUD1bMTE6MF0KIAkgKi8KIAl1MzIgdXRjbF9pbnZyZXFfZGlzYWJsZV9tYXNrID0gYW1kZ3B1X2dmeF9jcmVhdGVfYml0bWFzaygKIAkJMiAqIG1heF93Z3BfcGVyX3NoICsgLyogVENQICovCkBAIC0xNDc3LDcgKzE2NDgsOSBAQCBzdGF0aWMgdm9pZCBnZnhfdjEwXzBfdGNwX2hhcnZlc3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCTQgKyAvKiBSTUkgKi8KIAkJMSk7IC8qIFNRRyAqLwogCi0JaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX05BVkkxMCkgeworCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9OQVZJMTAgfHwKKwkgICAgYWRldi0+YXNpY190eXBlID09IENISVBfTkFWSTE0IHx8CisJICAgIGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX05BVkkxMikgewogCQltdXRleF9sb2NrKCZhZGV2LT5ncmJtX2lkeF9tdXRleCk7CiAJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5nZnguY29uZmlnLm1heF9zaGFkZXJfZW5naW5lczsgaSsrKSB7CiAJCQlmb3IgKGogPSAwOyBqIDwgYWRldi0+Z2Z4LmNvbmZpZy5tYXhfc2hfcGVyX3NlOyBqKyspIHsKQEAgLTE1MzUsNyArMTcwOCw3IEBAIHN0YXRpYyB2b2lkIGdmeF92MTBfMF9jb25zdGFudHNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkvKiBYWFggU0hfTUVNIHJlZ3MgKi8KIAkvKiB3aGVyZSB0byBwdXQgTERTLCBzY3JhdGNoLCBHUFVWTSBpbiBGU0E2NCBzcGFjZSAqLwogCW11dGV4X2xvY2soJmFkZXYtPnNyYm1fbXV0ZXgpOwotCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52bV9tYW5hZ2VyLmlkX21ncltBTURHUFVfR0ZYSFVCXS5udW1faWRzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dm1fbWFuYWdlci5pZF9tZ3JbQU1ER1BVX0dGWEhVQl8wXS5udW1faWRzOyBpKyspIHsKIAkJbnZfZ3JibV9zZWxlY3QoYWRldiwgMCwgMCwgMCwgaSk7CiAJCS8qIENQIGFuZCBzaGFkZXJzICovCiAJCVdSRUczMl9TT0MxNShHQywgMCwgbW1TSF9NRU1fQ09ORklHLCBERUZBVUxUX1NIX01FTV9DT05GSUcpOwpAQCAtMTU1Miw2ICsxNzI1LDcgQEAgc3RhdGljIHZvaWQgZ2Z4X3YxMF8wX2NvbnN0YW50c19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCW11dGV4X3VubG9jaygmYWRldi0+c3JibV9tdXRleCk7CiAKIAlnZnhfdjEwXzBfaW5pdF9jb21wdXRlX3ZtaWQoYWRldik7CisJZ2Z4X3YxMF8wX2luaXRfZ2RzX3ZtaWQoYWRldik7CiAKIH0KIApAQCAtMTU4NCw5ICsxNzU4LDEyIEBAIHN0YXRpYyB2b2lkIGdmeF92MTBfMF9pbml0X2NzYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogc3RhdGljIHZvaWQgZ2Z4X3YxMF8wX2luaXRfcGcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CisJaW50IGk7CisKIAlnZnhfdjEwXzBfaW5pdF9jc2IoYWRldik7CiAKLQlhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgMCwgMCk7CisJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV92bWh1YnM7IGkrKykKKwkJYW1kZ3B1X2dtY19mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIGksIDApOwogCiAJLyogVE9ETzogaW5pdCBwb3dlciBnYXRpbmcgKi8KIAlyZXR1cm47CkBAIC0xNjI0LDkgKzE4MDEsOSBAQCBzdGF0aWMgdm9pZCBnZnhfdjEwXzBfcmxjX3NtdV9oYW5kc2hha2VfY250bChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJICogaGVuY2Ugbm8gaGFuZHNoYWtlIGJldHdlZW4gU01VICYgUkxDCiAJCSAqIEdGWE9GRiB3aWxsIGJlIGRpc2FibGVkCiAJCSAqLwotCQlybGNfcGdfY250bCB8PSAweDgwMDAwOworCQlybGNfcGdfY250bCB8PSAweDgwMDAwMDsKIAl9IGVsc2UKLQkJcmxjX3BnX2NudGwgJj0gfjB4ODAwMDA7CisJCXJsY19wZ19jbnRsICY9IH4weDgwMDAwMDsKIAlXUkVHMzJfU09DMTUoR0MsIDAsIG1tUkxDX1BHX0NOVEwsIHJsY19wZ19jbnRsKTsKIH0KIApAQCAtMzYxNCwyMCArMzc5MSwxMiBAQCBzdGF0aWMgaW50IGdmeF92MTBfMF9od19maW5pKHZvaWQgKmhhbmRsZSkKIAogc3RhdGljIGludCBnZnhfdjEwXzBfc3VzcGVuZCh2b2lkICpoYW5kbGUpCiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7Ci0KLQlhZGV2LT5pbl9zdXNwZW5kID0gdHJ1ZTsKLQlyZXR1cm4gZ2Z4X3YxMF8wX2h3X2ZpbmkoYWRldik7CisJcmV0dXJuIGdmeF92MTBfMF9od19maW5pKGhhbmRsZSk7CiB9CiAKIHN0YXRpYyBpbnQgZ2Z4X3YxMF8wX3Jlc3VtZSh2b2lkICpoYW5kbGUpCiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7Ci0JaW50IHI7Ci0KLQlyID0gZ2Z4X3YxMF8wX2h3X2luaXQoYWRldik7Ci0JYWRldi0+aW5fc3VzcGVuZCA9IGZhbHNlOwotCXJldHVybiByOworCXJldHVybiBnZnhfdjEwXzBfaHdfaW5pdChoYW5kbGUpOwogfQogCiBzdGF0aWMgYm9vbCBnZnhfdjEwXzBfaXNfaWRsZSh2b2lkICpoYW5kbGUpCkBAIC00MDM3LDYgKzQyMDYsNyBAQCBzdGF0aWMgaW50IGdmeF92MTBfMF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAogCWJvb2wgZW5hYmxlID0gKHN0YXRlID09IEFNRF9QR19TVEFURV9HQVRFKSA/IHRydWUgOiBmYWxzZTsKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCWNhc2UgQ0hJUF9OQVZJMTA6CisJY2FzZSBDSElQX05BVkkxNDoKIAkJaWYgKCFlbmFibGUpIHsKIAkJCWFtZGdwdV9nZnhfb2ZmX2N0cmwoYWRldiwgZmFsc2UpOwogCQkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZhZGV2LT5nZnguZ2Z4X29mZl9kZWxheV93b3JrKTsKQEAgLTQwNTYsNiArNDIyNiw4IEBAIHN0YXRpYyBpbnQgZ2Z4X3YxMF8wX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCiAKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCWNhc2UgQ0hJUF9OQVZJMTA6CisJY2FzZSBDSElQX05BVkkxNDoKKwljYXNlIENISVBfTkFWSTEyOgogCQlnZnhfdjEwXzBfdXBkYXRlX2dmeF9jbG9ja19nYXRpbmcoYWRldiwKIAkJCQkJCSBzdGF0ZSA9PSBBTURfQ0dfU1RBVEVfR0FURSA/IHRydWUgOiBmYWxzZSk7CiAJCWJyZWFrOwpAQCAtNDQ1Myw3ICs0NjI1LDcgQEAgc3RhdGljIGludCBnZnhfdjEwXzBfcmluZ19wcmVlbXB0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAkJaWYgKHJpbmctPnRyYWlsX3NlcSA9PQogCQkgICAgbGUzMl90b19jcHUoKihyaW5nLT50cmFpbF9mZW5jZV9jcHVfYWRkcikpKQogCQkJYnJlYWs7Ci0JCURSTV9VREVMQVkoMSk7CisJCXVkZWxheSgxKTsKIAl9CiAKIAlpZiAoaSA+PSBhZGV2LT51c2VjX3RpbWVvdXQpIHsKQEAgLTQ5MjcsNyArNTA5OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MgZ2Z4X3YxMF8wX3JpbmdfZnVuY3NfZ2Z4ID0gewogCS5hbGlnbl9tYXNrID0gMHhmZiwKIAkubm9wID0gUEFDS0VUMyhQQUNLRVQzX05PUCwgMHgzRkZGKSwKIAkuc3VwcG9ydF82NGJpdF9wdHJzID0gdHJ1ZSwKLQkudm1odWIgPSBBTURHUFVfR0ZYSFVCLAorCS52bWh1YiA9IEFNREdQVV9HRlhIVUJfMCwKIAkuZ2V0X3JwdHIgPSBnZnhfdjEwXzBfcmluZ19nZXRfcnB0cl9nZngsCiAJLmdldF93cHRyID0gZ2Z4X3YxMF8wX3JpbmdfZ2V0X3dwdHJfZ2Z4LAogCS5zZXRfd3B0ciA9IGdmeF92MTBfMF9yaW5nX3NldF93cHRyX2dmeCwKQEAgLTQ5NzgsNyArNTE1MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MgZ2Z4X3YxMF8wX3JpbmdfZnVuY3NfY29tcHV0ZSA9IHsKIAkuYWxpZ25fbWFzayA9IDB4ZmYsCiAJLm5vcCA9IFBBQ0tFVDMoUEFDS0VUM19OT1AsIDB4M0ZGRiksCiAJLnN1cHBvcnRfNjRiaXRfcHRycyA9IHRydWUsCi0JLnZtaHViID0gQU1ER1BVX0dGWEhVQiwKKwkudm1odWIgPSBBTURHUFVfR0ZYSFVCXzAsCiAJLmdldF9ycHRyID0gZ2Z4X3YxMF8wX3JpbmdfZ2V0X3JwdHJfY29tcHV0ZSwKIAkuZ2V0X3dwdHIgPSBnZnhfdjEwXzBfcmluZ19nZXRfd3B0cl9jb21wdXRlLAogCS5zZXRfd3B0ciA9IGdmeF92MTBfMF9yaW5nX3NldF93cHRyX2NvbXB1dGUsCkBAIC01MDExLDcgKzUxODMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIGdmeF92MTBfMF9yaW5nX2Z1bmNzX2tpcSA9IHsKIAkuYWxpZ25fbWFzayA9IDB4ZmYsCiAJLm5vcCA9IFBBQ0tFVDMoUEFDS0VUM19OT1AsIDB4M0ZGRiksCiAJLnN1cHBvcnRfNjRiaXRfcHRycyA9IHRydWUsCi0JLnZtaHViID0gQU1ER1BVX0dGWEhVQiwKKwkudm1odWIgPSBBTURHUFVfR0ZYSFVCXzAsCiAJLmdldF9ycHRyID0gZ2Z4X3YxMF8wX3JpbmdfZ2V0X3JwdHJfY29tcHV0ZSwKIAkuZ2V0X3dwdHIgPSBnZnhfdjEwXzBfcmluZ19nZXRfd3B0cl9jb21wdXRlLAogCS5zZXRfd3B0ciA9IGdmeF92MTBfMF9yaW5nX3NldF93cHRyX2NvbXB1dGUsCkBAIC01MDg4LDYgKzUyNjAsOCBAQCBzdGF0aWMgdm9pZCBnZnhfdjEwXzBfc2V0X3JsY19mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCWNhc2UgQ0hJUF9OQVZJMTA6CisJY2FzZSBDSElQX05BVkkxNDoKKwljYXNlIENISVBfTkFWSTEyOgogCQlhZGV2LT5nZngucmxjLmZ1bmNzID0gJmdmeF92MTBfMF9ybGNfZnVuY3M7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwppbmRleCAyMTE4NzI3Li43OTFiYTM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMKQEAgLTE4OTAsNiArMTg5MCwyNCBAQCBzdGF0aWMgdm9pZCBnZnhfdjdfMF9pbml0X2NvbXB1dGVfdm1pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9CiB9CiAKK3N0YXRpYyB2b2lkIGdmeF92N18wX2luaXRfZ2RzX3ZtaWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJaW50IHZtaWQ7CisKKwkvKgorCSAqIEluaXRpYWxpemUgYWxsIGNvbXB1dGUgYW5kIHVzZXItZ2Z4IFZNSURzIHRvIGhhdmUgbm8gR0RTLCBHV1MsIG9yIE9BCisJICogYWNjZXNzLiBDb21wdXRlIFZNSURzIHNob3VsZCBiZSBlbmFibGVkIGJ5IEZXIGZvciB0YXJnZXQgVk1JRHMsCisJICogdGhlIGRyaXZlciBjYW4gZW5hYmxlIHRoZW0gZm9yIGdyYXBoaWNzLiBWTUlEMCBzaG91bGQgbWFpbnRhaW4KKwkgKiBhY2Nlc3Mgc28gdGhhdCBIV1MgZmlybXdhcmUgY2FuIHNhdmUvcmVzdG9yZSBlbnRyaWVzLgorCSAqLworCWZvciAodm1pZCA9IDE7IHZtaWQgPCAxNjsgdm1pZCsrKSB7CisJCVdSRUczMihhbWRncHVfZ2RzX3JlZ19vZmZzZXRbdm1pZF0ubWVtX2Jhc2UsIDApOworCQlXUkVHMzIoYW1kZ3B1X2dkc19yZWdfb2Zmc2V0W3ZtaWRdLm1lbV9zaXplLCAwKTsKKwkJV1JFRzMyKGFtZGdwdV9nZHNfcmVnX29mZnNldFt2bWlkXS5nd3MsIDApOworCQlXUkVHMzIoYW1kZ3B1X2dkc19yZWdfb2Zmc2V0W3ZtaWRdLm9hLCAwKTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGdmeF92N18wX2NvbmZpZ19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCWFkZXYtPmdmeC5jb25maWcuZG91YmxlX29mZmNoaXBfbGRzX2J1ZiA9IDE7CkBAIC0xOTY4LDYgKzE5ODYsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjdfMF9jb25zdGFudHNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAltdXRleF91bmxvY2soJmFkZXYtPnNyYm1fbXV0ZXgpOwogCiAJZ2Z4X3Y3XzBfaW5pdF9jb21wdXRlX3ZtaWQoYWRldik7CisJZ2Z4X3Y3XzBfaW5pdF9nZHNfdm1pZChhZGV2KTsKIAogCVdSRUczMihtbVNYX0RFQlVHXzEsIDB4MjApOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwppbmRleCBlZTFjY2RjLi44N2RkNTVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKQEAgLTM3NTAsNiArMzc1MCwyNCBAQCBzdGF0aWMgdm9pZCBnZnhfdjhfMF9pbml0X2NvbXB1dGVfdm1pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9CiB9CiAKK3N0YXRpYyB2b2lkIGdmeF92OF8wX2luaXRfZ2RzX3ZtaWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJaW50IHZtaWQ7CisKKwkvKgorCSAqIEluaXRpYWxpemUgYWxsIGNvbXB1dGUgYW5kIHVzZXItZ2Z4IFZNSURzIHRvIGhhdmUgbm8gR0RTLCBHV1MsIG9yIE9BCisJICogYWNjZXNzLiBDb21wdXRlIFZNSURzIHNob3VsZCBiZSBlbmFibGVkIGJ5IEZXIGZvciB0YXJnZXQgVk1JRHMsCisJICogdGhlIGRyaXZlciBjYW4gZW5hYmxlIHRoZW0gZm9yIGdyYXBoaWNzLiBWTUlEMCBzaG91bGQgbWFpbnRhaW4KKwkgKiBhY2Nlc3Mgc28gdGhhdCBIV1MgZmlybXdhcmUgY2FuIHNhdmUvcmVzdG9yZSBlbnRyaWVzLgorCSAqLworCWZvciAodm1pZCA9IDE7IHZtaWQgPCAxNjsgdm1pZCsrKSB7CisJCVdSRUczMihhbWRncHVfZ2RzX3JlZ19vZmZzZXRbdm1pZF0ubWVtX2Jhc2UsIDApOworCQlXUkVHMzIoYW1kZ3B1X2dkc19yZWdfb2Zmc2V0W3ZtaWRdLm1lbV9zaXplLCAwKTsKKwkJV1JFRzMyKGFtZGdwdV9nZHNfcmVnX29mZnNldFt2bWlkXS5nd3MsIDApOworCQlXUkVHMzIoYW1kZ3B1X2dkc19yZWdfb2Zmc2V0W3ZtaWRdLm9hLCAwKTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGdmeF92OF8wX2NvbmZpZ19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CkBAIC0zODE2LDYgKzM4MzQsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjhfMF9jb25zdGFudHNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAltdXRleF91bmxvY2soJmFkZXYtPnNyYm1fbXV0ZXgpOwogCiAJZ2Z4X3Y4XzBfaW5pdF9jb21wdXRlX3ZtaWQoYWRldik7CisJZ2Z4X3Y4XzBfaW5pdF9nZHNfdm1pZChhZGV2KTsKIAogCW11dGV4X2xvY2soJmFkZXYtPmdyYm1faWR4X211dGV4KTsKIAkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMKaW5kZXggYzA2NmUxZC4uZGNhZGM3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jCkBAIC0zNiwxMCArMzYsMTAgQEAKIAogI2luY2x1ZGUgImdjL2djXzlfMF9vZmZzZXQuaCIKICNpbmNsdWRlICJnYy9nY185XzBfc2hfbWFzay5oIgorCiAjaW5jbHVkZSAidmVnYTEwX2VudW0uaCIKICNpbmNsdWRlICJoZHAvaGRwXzRfMF9vZmZzZXQuaCIKIAotI2luY2x1ZGUgInNvYzE1LmgiCiAjaW5jbHVkZSAic29jMTVfY29tbW9uLmgiCiAjaW5jbHVkZSAiY2xlYXJzdGF0ZV9nZng5LmgiCiAjaW5jbHVkZSAidjlfc3RydWN0cy5oIgpAQCAtNjAsNiArNjAsOSBAQAogI2RlZmluZSBQV1JfTUlTQ19DTlRMX1NUQVRVU19fUFdSX0dGWF9STENfQ0dQR19FTl9NQVNLCQkweDAwMDAwMDAxTAogI2RlZmluZSBQV1JfTUlTQ19DTlRMX1NUQVRVU19fUFdSX0dGWE9GRl9TVEFUVVNfTUFTSwkJMHgwMDAwMDAwNkwKIAorI2RlZmluZSBtbUdDRUFfUFJPQkVfTUFQICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzBjCisjZGVmaW5lIG1tR0NFQV9QUk9CRV9NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAwCisKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3ZlZ2ExMF9jZS5iaW4iKTsKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3ZlZ2ExMF9wZnAuYmluIik7CiBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS92ZWdhMTBfbWUuYmluIik7CkBAIC0xMDQsNiArMTA3LDM5NyBAQCBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9yYXZlbjJfbWVjMi5iaW4iKTsKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3JhdmVuMl9ybGMuYmluIik7CiBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9yYXZlbl9raWNrZXJfcmxjLmJpbiIpOwogCitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9hcmN0dXJ1c19tZWMuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9hcmN0dXJ1c19tZWMyLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvYXJjdHVydXNfcmxjLmJpbiIpOworCitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9yZW5vaXJfY2UuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9yZW5vaXJfcGZwLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvcmVub2lyX21lLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvcmVub2lyX21lYy5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3Jlbm9pcl9tZWMyLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvcmVub2lyX3JsYy5iaW4iKTsKKworI2RlZmluZSBtbVRDUF9DSEFOX1NURUVSXzBfQVJDVAkJCQkJCQkJMHgwYjAzCisjZGVmaW5lIG1tVENQX0NIQU5fU1RFRVJfMF9BUkNUX0JBU0VfSURYCQkJCQkJCTAKKyNkZWZpbmUgbW1UQ1BfQ0hBTl9TVEVFUl8xX0FSQ1QJCQkJCQkJCTB4MGIwNAorI2RlZmluZSBtbVRDUF9DSEFOX1NURUVSXzFfQVJDVF9CQVNFX0lEWAkJCQkJCQkwCisjZGVmaW5lIG1tVENQX0NIQU5fU1RFRVJfMl9BUkNUCQkJCQkJCQkweDBiMDkKKyNkZWZpbmUgbW1UQ1BfQ0hBTl9TVEVFUl8yX0FSQ1RfQkFTRV9JRFgJCQkJCQkJMAorI2RlZmluZSBtbVRDUF9DSEFOX1NURUVSXzNfQVJDVAkJCQkJCQkJMHgwYjBhCisjZGVmaW5lIG1tVENQX0NIQU5fU1RFRVJfM19BUkNUX0JBU0VfSURYCQkJCQkJCTAKKyNkZWZpbmUgbW1UQ1BfQ0hBTl9TVEVFUl80X0FSQ1QJCQkJCQkJCTB4MGIwYgorI2RlZmluZSBtbVRDUF9DSEFOX1NURUVSXzRfQVJDVF9CQVNFX0lEWAkJCQkJCQkwCisjZGVmaW5lIG1tVENQX0NIQU5fU1RFRVJfNV9BUkNUCQkJCQkJCQkweDBiMGMKKyNkZWZpbmUgbW1UQ1BfQ0hBTl9TVEVFUl81X0FSQ1RfQkFTRV9JRFgJCQkJCQkJMAorCitlbnVtIHRhX3Jhc19nZnhfc3ViYmxvY2sgeworCS8qQ1BDKi8KKwlUQV9SQVNfQkxPQ0tfX0dGWF9DUENfSU5ERVhfU1RBUlQgPSAwLAorCVRBX1JBU19CTE9DS19fR0ZYX0NQQ19TQ1JBVENIID0gVEFfUkFTX0JMT0NLX19HRlhfQ1BDX0lOREVYX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX0NQQ19VQ09ERSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9EQ19TVEFURV9NRTEsCisJVEFfUkFTX0JMT0NLX19HRlhfRENfQ1NJTlZPQ19NRTEsCisJVEFfUkFTX0JMT0NLX19HRlhfRENfUkVTVE9SRV9NRTEsCisJVEFfUkFTX0JMT0NLX19HRlhfRENfU1RBVEVfTUUyLAorCVRBX1JBU19CTE9DS19fR0ZYX0RDX0NTSU5WT0NfTUUyLAorCVRBX1JBU19CTE9DS19fR0ZYX0RDX1JFU1RPUkVfTUUyLAorCVRBX1JBU19CTE9DS19fR0ZYX0NQQ19JTkRFWF9FTkQgPSBUQV9SQVNfQkxPQ0tfX0dGWF9EQ19SRVNUT1JFX01FMiwKKwkvKiBDUEYqLworCVRBX1JBU19CTE9DS19fR0ZYX0NQRl9JTkRFWF9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9DUEZfUk9RX01FMiA9IFRBX1JBU19CTE9DS19fR0ZYX0NQRl9JTkRFWF9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9DUEZfUk9RX01FMSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9DUEZfVEFHLAorCVRBX1JBU19CTE9DS19fR0ZYX0NQRl9JTkRFWF9FTkQgPSBUQV9SQVNfQkxPQ0tfX0dGWF9DUEZfVEFHLAorCS8qIENQRyovCisJVEFfUkFTX0JMT0NLX19HRlhfQ1BHX0lOREVYX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX0NQR19ETUFfUk9RID0gVEFfUkFTX0JMT0NLX19HRlhfQ1BHX0lOREVYX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX0NQR19ETUFfVEFHLAorCVRBX1JBU19CTE9DS19fR0ZYX0NQR19UQUcsCisJVEFfUkFTX0JMT0NLX19HRlhfQ1BHX0lOREVYX0VORCA9IFRBX1JBU19CTE9DS19fR0ZYX0NQR19UQUcsCisJLyogR0RTKi8KKwlUQV9SQVNfQkxPQ0tfX0dGWF9HRFNfSU5ERVhfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfR0RTX01FTSA9IFRBX1JBU19CTE9DS19fR0ZYX0dEU19JTkRFWF9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9HRFNfSU5QVVRfUVVFVUUsCisJVEFfUkFTX0JMT0NLX19HRlhfR0RTX09BX1BIWV9DTURfUkFNX01FTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9HRFNfT0FfUEhZX0RBVEFfUkFNX01FTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9HRFNfT0FfUElQRV9NRU0sCisJVEFfUkFTX0JMT0NLX19HRlhfR0RTX0lOREVYX0VORCA9IFRBX1JBU19CTE9DS19fR0ZYX0dEU19PQV9QSVBFX01FTSwKKwkvKiBTUEkqLworCVRBX1JBU19CTE9DS19fR0ZYX1NQSV9TUl9NRU0sCisJLyogU1EqLworCVRBX1JBU19CTE9DS19fR0ZYX1NRX0lOREVYX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX1NRX1NHUFIgPSBUQV9SQVNfQkxPQ0tfX0dGWF9TUV9JTkRFWF9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUV9MRFNfRCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUV9MRFNfSSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUV9WR1BSLCAvKiBWR1BSID0gU1AqLworCVRBX1JBU19CTE9DS19fR0ZYX1NRX0lOREVYX0VORCA9IFRBX1JBU19CTE9DS19fR0ZYX1NRX1ZHUFIsCisJLyogU1FDICgzIHJhbmdlcykqLworCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWF9TVEFSVCwKKwkvKiBTUUMgcmFuZ2UgMCovCisJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0lOREVYMF9TVEFSVCA9IFRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWF9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5TVF9VVENMMV9MRklGTyA9CisJCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDBfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQ1UwX1dSSVRFX0RBVEFfQlVGLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0NVMF9VVENMMV9MRklGTywKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9DVTFfV1JJVEVfREFUQV9CVUYsCisJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQ1UxX1VUQ0wxX0xGSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0NVMl9XUklURV9EQVRBX0JVRiwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9DVTJfVVRDTDFfTEZJRk8sCisJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0lOREVYMF9FTkQgPQorCQlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9DVTJfVVRDTDFfTEZJRk8sCisJLyogU1FDIHJhbmdlIDEqLworCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDFfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0lOU1RfQkFOS0FfVEFHX1JBTSA9CisJCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDFfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0lOU1RfQkFOS0FfVVRDTDFfTUlTU19GSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTlNUX0JBTktBX01JU1NfRklGTywKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5TVF9CQU5LQV9CQU5LX1JBTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9CQU5LQV9UQUdfUkFNLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktBX0hJVF9GSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktBX01JU1NfRklGTywKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9CQU5LQV9ESVJUWV9CSVRfUkFNLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktBX0JBTktfUkFNLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDFfRU5EID0KKwkJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQkFOS0FfQkFOS19SQU0sCisJLyogU1FDIHJhbmdlIDIqLworCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDJfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0lOU1RfQkFOS0JfVEFHX1JBTSA9CisJCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDJfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0lOU1RfQkFOS0JfVVRDTDFfTUlTU19GSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTlNUX0JBTktCX01JU1NfRklGTywKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5TVF9CQU5LQl9CQU5LX1JBTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9CQU5LQl9UQUdfUkFNLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktCX0hJVF9GSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktCX01JU1NfRklGTywKKwlUQV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9CQU5LQl9ESVJUWV9CSVRfUkFNLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19EQVRBX0JBTktCX0JBTktfUkFNLAorCVRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDJfRU5EID0KKwkJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0RBVEFfQkFOS0JfQkFOS19SQU0sCisJVEFfUkFTX0JMT0NLX19HRlhfU1FDX0lOREVYX0VORCA9IFRBX1JBU19CTE9DS19fR0ZYX1NRQ19JTkRFWDJfRU5ELAorCS8qIFRBKi8KKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQV9JTkRFWF9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQV9GU19ERklGTyA9IFRBX1JBU19CTE9DS19fR0ZYX1RBX0lOREVYX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX1RBX0ZTX0FGSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1RBX0ZMX0xGSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1RBX0ZYX0xGSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1RBX0ZTX0NGSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1RBX0lOREVYX0VORCA9IFRBX1JBU19CTE9DS19fR0ZYX1RBX0ZTX0NGSUZPLAorCS8qIFRDQSovCisJVEFfUkFTX0JMT0NLX19HRlhfVENBX0lOREVYX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQV9IT0xFX0ZJRk8gPSBUQV9SQVNfQkxPQ0tfX0dGWF9UQ0FfSU5ERVhfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfVENBX1JFUV9GSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQV9JTkRFWF9FTkQgPSBUQV9SQVNfQkxPQ0tfX0dGWF9UQ0FfUkVRX0ZJRk8sCisJLyogVENDICg1IHN1Yi1yYW5nZXMpKi8KKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVhfU1RBUlQsCisJLyogVENDIHJhbmdlIDAqLworCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDBfU1RBUlQgPSBUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVhfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX0NBQ0hFX0RBVEEgPSBUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVgwX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19DQUNIRV9EQVRBX0JBTktfMF8xLAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19DQUNIRV9EQVRBX0JBTktfMV8wLAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19DQUNIRV9EQVRBX0JBTktfMV8xLAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19DQUNIRV9ESVJUWV9CQU5LXzAsCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX0NBQ0hFX0RJUlRZX0JBTktfMSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSElHSF9SQVRFX1RBRywKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfTE9XX1JBVEVfVEFHLAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDBfRU5EID0gVEFfUkFTX0JMT0NLX19HRlhfVENDX0xPV19SQVRFX1RBRywKKwkvKiBUQ0MgcmFuZ2UgMSovCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYMV9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5fVVNFX0RFQyA9IFRBX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDFfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX0lOX1VTRV9UUkFOU0ZFUiwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVgxX0VORCA9CisJCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19JTl9VU0VfVFJBTlNGRVIsCisJLyogVENDIHJhbmdlIDIqLworCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDJfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX1JFVFVSTl9EQVRBID0gVEFfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYMl9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfUkVUVVJOX0NPTlRST0wsCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX1VDX0FUT01JQ19GSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19XUklURV9SRVRVUk4sCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX1dSSVRFX0NBQ0hFX1JFQUQsCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX1NSQ19GSUZPLAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19TUkNfRklGT19ORVhUX1JBTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfQ0FDSEVfVEFHX1BST0JFX0ZJRk8sCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYMl9FTkQgPQorCQlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfQ0FDSEVfVEFHX1BST0JFX0ZJRk8sCisJLyogVENDIHJhbmdlIDMqLworCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDNfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX0xBVEVOQ1lfRklGTyA9IFRBX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDNfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX0xBVEVOQ1lfRklGT19ORVhUX1JBTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVgzX0VORCA9CisJCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19MQVRFTkNZX0ZJRk9fTkVYVF9SQU0sCisJLyogVENDIHJhbmdlIDQqLworCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19JTkRFWDRfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfVENDX1dSUkVUX1RBR19XUklURV9SRVRVUk4gPQorCQlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVg0X1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19BVE9NSUNfUkVUVVJOX0JVRkZFUiwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVg0X0VORCA9CisJCVRBX1JBU19CTE9DS19fR0ZYX1RDQ19BVE9NSUNfUkVUVVJOX0JVRkZFUiwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0NfSU5ERVhfRU5EID0gVEFfUkFTX0JMT0NLX19HRlhfVENDX0lOREVYNF9FTkQsCisJLyogVENJKi8KKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ0lfV1JJVEVfUkFNLAorCS8qIFRDUCovCisJVEFfUkFTX0JMT0NLX19HRlhfVENQX0lOREVYX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX1RDUF9DQUNIRV9SQU0gPSBUQV9SQVNfQkxPQ0tfX0dGWF9UQ1BfSU5ERVhfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfVENQX0xGSUZPX1JBTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ1BfQ01EX0ZJRk8sCisJVEFfUkFTX0JMT0NLX19HRlhfVENQX1ZNX0ZJRk8sCisJVEFfUkFTX0JMT0NLX19HRlhfVENQX0RCX1JBTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9UQ1BfVVRDTDFfTEZJRk8wLAorCVRBX1JBU19CTE9DS19fR0ZYX1RDUF9VVENMMV9MRklGTzEsCisJVEFfUkFTX0JMT0NLX19HRlhfVENQX0lOREVYX0VORCA9IFRBX1JBU19CTE9DS19fR0ZYX1RDUF9VVENMMV9MRklGTzEsCisJLyogVEQqLworCVRBX1JBU19CTE9DS19fR0ZYX1REX0lOREVYX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX1REX1NTX0ZJRk9fTE8gPSBUQV9SQVNfQkxPQ0tfX0dGWF9URF9JTkRFWF9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9URF9TU19GSUZPX0hJLAorCVRBX1JBU19CTE9DS19fR0ZYX1REX0NTX0ZJRk8sCisJVEFfUkFTX0JMT0NLX19HRlhfVERfSU5ERVhfRU5EID0gVEFfUkFTX0JMT0NLX19HRlhfVERfQ1NfRklGTywKKwkvKiBFQSAoMyBzdWItcmFuZ2VzKSovCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVhfU1RBUlQsCisJLyogRUEgcmFuZ2UgMCovCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVgwX1NUQVJUID0gVEFfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVhfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfRFJBTVJEX0NNRE1FTSA9IFRBX1JBU19CTE9DS19fR0ZYX0VBX0lOREVYMF9TVEFSVCwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9FQV9EUkFNV1JfQ01ETUVNLAorCVRBX1JBU19CTE9DS19fR0ZYX0VBX0RSQU1XUl9EQVRBTUVNLAorCVRBX1JBU19CTE9DS19fR0ZYX0VBX1JSRVRfVEFHTUVNLAorCVRBX1JBU19CTE9DS19fR0ZYX0VBX1dSRVRfVEFHTUVNLAorCVRBX1JBU19CTE9DS19fR0ZYX0VBX0dNSVJEX0NNRE1FTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9FQV9HTUlXUl9DTURNRU0sCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfR01JV1JfREFUQU1FTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9FQV9JTkRFWDBfRU5EID0gVEFfUkFTX0JMT0NLX19HRlhfRUFfR01JV1JfREFUQU1FTSwKKwkvKiBFQSByYW5nZSAxKi8KKwlUQV9SQVNfQkxPQ0tfX0dGWF9FQV9JTkRFWDFfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfRFJBTVJEX1BBR0VNRU0gPSBUQV9SQVNfQkxPQ0tfX0dGWF9FQV9JTkRFWDFfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfRFJBTVdSX1BBR0VNRU0sCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfSU9SRF9DTURNRU0sCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfSU9XUl9DTURNRU0sCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfSU9XUl9EQVRBTUVNLAorCVRBX1JBU19CTE9DS19fR0ZYX0VBX0dNSVJEX1BBR0VNRU0sCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfR01JV1JfUEFHRU1FTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9FQV9JTkRFWDFfRU5EID0gVEFfUkFTX0JMT0NLX19HRlhfRUFfR01JV1JfUEFHRU1FTSwKKwkvKiBFQSByYW5nZSAyKi8KKwlUQV9SQVNfQkxPQ0tfX0dGWF9FQV9JTkRFWDJfU1RBUlQsCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfTUFNX0QwTUVNID0gVEFfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVgyX1NUQVJULAorCVRBX1JBU19CTE9DS19fR0ZYX0VBX01BTV9EMU1FTSwKKwlUQV9SQVNfQkxPQ0tfX0dGWF9FQV9NQU1fRDJNRU0sCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfTUFNX0QzTUVNLAorCVRBX1JBU19CTE9DS19fR0ZYX0VBX0lOREVYMl9FTkQgPSBUQV9SQVNfQkxPQ0tfX0dGWF9FQV9NQU1fRDNNRU0sCisJVEFfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVhfRU5EID0gVEFfUkFTX0JMT0NLX19HRlhfRUFfSU5ERVgyX0VORCwKKwkvKiBVVEMgVk0gTDIgYmFuayovCisJVEFfUkFTX0JMT0NLX19VVENfVk1MMl9CQU5LX0NBQ0hFLAorCS8qIFVUQyBWTSB3YWxrZXIqLworCVRBX1JBU19CTE9DS19fVVRDX1ZNTDJfV0FMS0VSLAorCS8qIFVUQyBBVEMgTDIgMk1CIGNhY2hlKi8KKwlUQV9SQVNfQkxPQ0tfX1VUQ19BVENMMl9DQUNIRV8yTV9CQU5LLAorCS8qIFVUQyBBVEMgTDIgNEtCIGNhY2hlKi8KKwlUQV9SQVNfQkxPQ0tfX1VUQ19BVENMMl9DQUNIRV80S19CQU5LLAorCVRBX1JBU19CTE9DS19fR0ZYX01BWAorfTsKKworc3RydWN0IHJhc19nZnhfc3ViYmxvY2sgeworCXVuc2lnbmVkIGNoYXIgKm5hbWU7CisJaW50IHRhX3N1YmJsb2NrOworCWludCBod19zdXBwb3J0ZWRfZXJyb3JfdHlwZTsKKwlpbnQgc3dfc3VwcG9ydGVkX2Vycm9yX3R5cGU7Cit9OworCisjZGVmaW5lIEFNREdQVV9SQVNfU1VCX0JMT0NLKHN1YmJsb2NrLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCVtBTURHUFVfUkFTX0JMT0NLX18jI3N1YmJsb2NrXSA9IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkjc3ViYmxvY2ssICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJCVRBX1JBU19CTE9DS19fIyNzdWJibG9jaywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJKChhKSB8ICgoYikgPDwgMSkgfCAoKGMpIDw8IDIpIHwgKChkKSA8PCAzKSksICAgICAgICAgICAgICAgICAgXAorCQkoKChlKSA8PCAxKSB8ICgoZikgPDwgMykgfCAoZykgfCAoKGgpIDw8IDIpKSwgICAgICAgICAgICAgICAgICBcCisJfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHJhc19nZnhfc3ViYmxvY2sgcmFzX2dmeF9zdWJibG9ja3NbXSA9IHsKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfQ1BDX1NDUkFUQ0gsIDAsIDEsIDEsIDEsIDEsIDAsIDAsIDEpLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9DUENfVUNPREUsIDAsIDEsIDEsIDEsIDEsIDAsIDAsIDEpLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9EQ19TVEFURV9NRTEsIDEsIDAsIDAsIDEsIDAsIDAsIDEsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9EQ19DU0lOVk9DX01FMSwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0RDX1JFU1RPUkVfTUUxLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfRENfU1RBVEVfTUUyLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfRENfQ1NJTlZPQ19NRTIsIDEsIDAsIDAsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9EQ19SRVNUT1JFX01FMiwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0NQRl9ST1FfTUUyLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfQ1BGX1JPUV9NRTEsIDEsIDAsIDAsIDEsIDAsIDAsIDEsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9DUEZfVEFHLCAwLCAxLCAxLCAxLCAxLCAwLCAwLCAxKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfQ1BHX0RNQV9ST1EsIDEsIDAsIDAsIDEsIDAsIDAsIDEsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9DUEdfRE1BX1RBRywgMCwgMSwgMSwgMSwgMCwgMSwgMCwgMSksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0NQR19UQUcsIDAsIDEsIDEsIDEsIDEsIDEsIDAsIDEpLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9HRFNfTUVNLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfR0RTX0lOUFVUX1FVRVVFLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfR0RTX09BX1BIWV9DTURfUkFNX01FTSwgMCwgMSwgMSwgMSwgMCwgMCwgMCwKKwkJCSAgICAgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0dEU19PQV9QSFlfREFUQV9SQU1fTUVNLCAxLCAwLCAwLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfR0RTX09BX1BJUEVfTUVNLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1BJX1NSX01FTSwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRX1NHUFIsIDAsIDEsIDEsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9TUV9MRFNfRCwgMCwgMSwgMSwgMSwgMSwgMCwgMCwgMSksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRX0xEU19JLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FfVkdQUiwgMCwgMSwgMSwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19JTlNUX1VUQ0wxX0xGSUZPLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAxKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQ1UwX1dSSVRFX0RBVEFfQlVGLCAwLCAxLCAxLCAxLCAwLCAwLAorCQkJICAgICAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQ1UwX1VUQ0wxX0xGSUZPLCAwLCAxLCAxLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQ1UxX1dSSVRFX0RBVEFfQlVGLCAwLCAxLCAxLCAxLCAwLCAwLAorCQkJICAgICAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQ1UxX1VUQ0wxX0xGSUZPLCAwLCAxLCAxLCAxLCAxLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQ1UyX1dSSVRFX0RBVEFfQlVGLCAwLCAxLCAxLCAxLCAwLCAwLAorCQkJICAgICAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQ1UyX1VUQ0wxX0xGSUZPLCAwLCAxLCAxLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0lOU1RfQkFOS0FfVEFHX1JBTSwgMCwgMSwgMSwgMSwgMSwgMCwgMCwKKwkJCSAgICAgMSksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19JTlNUX0JBTktBX1VUQ0wxX01JU1NfRklGTywgMSwgMCwgMCwgMSwgMCwKKwkJCSAgICAgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19JTlNUX0JBTktBX01JU1NfRklGTywgMSwgMCwgMCwgMSwgMCwgMCwgMCwKKwkJCSAgICAgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19JTlNUX0JBTktBX0JBTktfUkFNLCAwLCAxLCAxLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQkFOS0FfVEFHX1JBTSwgMCwgMSwgMSwgMSwgMCwgMCwgMCwKKwkJCSAgICAgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19EQVRBX0JBTktBX0hJVF9GSUZPLCAxLCAwLCAwLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQkFOS0FfTUlTU19GSUZPLCAxLCAwLCAwLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQkFOS0FfRElSVFlfQklUX1JBTSwgMSwgMCwgMCwgMSwgMCwgMCwKKwkJCSAgICAgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19EQVRBX0JBTktBX0JBTktfUkFNLCAwLCAxLCAxLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0lOU1RfQkFOS0JfVEFHX1JBTSwgMCwgMSwgMSwgMSwgMSwgMCwgMCwKKwkJCSAgICAgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19JTlNUX0JBTktCX1VUQ0wxX01JU1NfRklGTywgMSwgMCwgMCwgMSwgMCwKKwkJCSAgICAgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19JTlNUX0JBTktCX01JU1NfRklGTywgMSwgMCwgMCwgMSwgMCwgMCwgMCwKKwkJCSAgICAgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19JTlNUX0JBTktCX0JBTktfUkFNLCAwLCAxLCAxLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQkFOS0JfVEFHX1JBTSwgMCwgMSwgMSwgMSwgMCwgMCwgMCwKKwkJCSAgICAgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19EQVRBX0JBTktCX0hJVF9GSUZPLCAxLCAwLCAwLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQkFOS0JfTUlTU19GSUZPLCAxLCAwLCAwLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfU1FDX0RBVEFfQkFOS0JfRElSVFlfQklUX1JBTSwgMSwgMCwgMCwgMSwgMCwgMCwKKwkJCSAgICAgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1NRQ19EQVRBX0JBTktCX0JBTktfUkFNLCAwLCAxLCAxLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVEFfRlNfREZJRk8sIDAsIDEsIDEsIDEsIDEsIDAsIDAsIDEpLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQV9GU19BRklGTywgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RBX0ZMX0xGSUZPLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVEFfRlhfTEZJRk8sIDEsIDAsIDAsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQV9GU19DRklGTywgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDQV9IT0xFX0ZJRk8sIDEsIDAsIDAsIDEsIDAsIDEsIDEsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQ0FfUkVRX0ZJRk8sIDEsIDAsIDAsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQ0NfQ0FDSEVfREFUQSwgMCwgMSwgMSwgMSwgMSwgMCwgMCwgMSksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDQ19DQUNIRV9EQVRBX0JBTktfMF8xLCAwLCAxLCAxLCAxLCAxLCAwLCAwLAorCQkJICAgICAxKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX0NBQ0hFX0RBVEFfQkFOS18xXzAsIDAsIDEsIDEsIDEsIDEsIDAsIDAsCisJCQkgICAgIDEpLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQ0NfQ0FDSEVfREFUQV9CQU5LXzFfMSwgMCwgMSwgMSwgMSwgMSwgMCwgMCwKKwkJCSAgICAgMSksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDQ19DQUNIRV9ESVJUWV9CQU5LXzAsIDAsIDEsIDEsIDEsIDAsIDAsIDAsCisJCQkgICAgIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQ0NfQ0FDSEVfRElSVFlfQkFOS18xLCAwLCAxLCAxLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX0hJR0hfUkFURV9UQUcsIDAsIDEsIDEsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQ0NfTE9XX1JBVEVfVEFHLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX0lOX1VTRV9ERUMsIDEsIDAsIDAsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQ0NfSU5fVVNFX1RSQU5TRkVSLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX1JFVFVSTl9EQVRBLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX1JFVFVSTl9DT05UUk9MLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX1VDX0FUT01JQ19GSUZPLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX1dSSVRFX1JFVFVSTiwgMSwgMCwgMCwgMSwgMCwgMSwgMSwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDQ19XUklURV9DQUNIRV9SRUFELCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX1NSQ19GSUZPLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX1NSQ19GSUZPX05FWFRfUkFNLCAxLCAwLCAwLCAxLCAwLCAwLCAxLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX0NBQ0hFX1RBR19QUk9CRV9GSUZPLCAxLCAwLCAwLCAxLCAwLCAwLCAwLAorCQkJICAgICAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENDX0xBVEVOQ1lfRklGTywgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDQ19MQVRFTkNZX0ZJRk9fTkVYVF9SQU0sIDEsIDAsIDAsIDEsIDAsIDAsIDAsCisJCQkgICAgIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQ0NfV1JSRVRfVEFHX1dSSVRFX1JFVFVSTiwgMSwgMCwgMCwgMSwgMCwgMCwKKwkJCSAgICAgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDQ19BVE9NSUNfUkVUVVJOX0JVRkZFUiwgMSwgMCwgMCwgMSwgMCwgMCwgMCwKKwkJCSAgICAgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDSV9XUklURV9SQU0sIDEsIDAsIDAsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQ1BfQ0FDSEVfUkFNLCAwLCAxLCAxLCAxLCAxLCAwLCAwLCAxKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENQX0xGSUZPX1JBTSwgMCwgMSwgMSwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDUF9DTURfRklGTywgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDUF9WTV9GSUZPLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVENQX0RCX1JBTSwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1RDUF9VVENMMV9MRklGTzAsIDAsIDEsIDEsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9UQ1BfVVRDTDFfTEZJRk8xLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfVERfU1NfRklGT19MTywgMCwgMSwgMSwgMSwgMSwgMCwgMCwgMSksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX1REX1NTX0ZJRk9fSEksIDAsIDEsIDEsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9URF9DU19GSUZPLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfRUFfRFJBTVJEX0NNRE1FTSwgMCwgMSwgMSwgMSwgMSwgMCwgMCwgMSksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0VBX0RSQU1XUl9DTURNRU0sIDAsIDEsIDEsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9FQV9EUkFNV1JfREFUQU1FTSwgMCwgMSwgMSwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0VBX1JSRVRfVEFHTUVNLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfRUFfV1JFVF9UQUdNRU0sIDAsIDEsIDEsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9FQV9HTUlSRF9DTURNRU0sIDAsIDEsIDEsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9FQV9HTUlXUl9DTURNRU0sIDAsIDEsIDEsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9FQV9HTUlXUl9EQVRBTUVNLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfRUFfRFJBTVJEX1BBR0VNRU0sIDEsIDAsIDAsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9FQV9EUkFNV1JfUEFHRU1FTSwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0VBX0lPUkRfQ01ETUVNLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfRUFfSU9XUl9DTURNRU0sIDEsIDAsIDAsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9FQV9JT1dSX0RBVEFNRU0sIDEsIDAsIDAsIDEsIDAsIDAsIDAsIDApLAorCUFNREdQVV9SQVNfU1VCX0JMT0NLKEdGWF9FQV9HTUlSRF9QQUdFTUVNLCAxLCAwLCAwLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhHRlhfRUFfR01JV1JfUEFHRU1FTSwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0VBX01BTV9EME1FTSwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0VBX01BTV9EMU1FTSwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0VBX01BTV9EMk1FTSwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soR0ZYX0VBX01BTV9EM01FTSwgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soVVRDX1ZNTDJfQkFOS19DQUNIRSwgMCwgMSwgMSwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soVVRDX1ZNTDJfV0FMS0VSLCAwLCAxLCAxLCAxLCAwLCAwLCAwLCAwKSwKKwlBTURHUFVfUkFTX1NVQl9CTE9DSyhVVENfQVRDTDJfQ0FDSEVfMk1fQkFOSywgMSwgMCwgMCwgMSwgMCwgMCwgMCwgMCksCisJQU1ER1BVX1JBU19TVUJfQkxPQ0soVVRDX0FUQ0wyX0NBQ0hFXzRLX0JBTkssIDAsIDEsIDEsIDEsIDAsIDAsIDAsIDApLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBzb2MxNV9yZWdfZ29sZGVuIGdvbGRlbl9zZXR0aW5nc19nY185XzBbXSA9CiB7CiAJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1EQl9ERUJVRzIsIDB4ZjAwZmZmZmYsIDB4MDAwMDA0MDApLApAQCAtMjI3LDYgKzYyMSwyMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNvYzE1X3JlZ19nb2xkZW4gZ29sZGVuX3NldHRpbmdzX2djXzlfMV9ydjJbXSA9CiAJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1XRF9VVENMMV9DTlRMLCAweDNmOGZmZmZmLCAweDA4MDAwMDgwKSwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jMTVfcmVnX2dvbGRlbiBnb2xkZW5fc2V0dGluZ3NfZ2NfOV8xX3JuW10gPQoreworCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tQ0JfSFdfQ09OVFJPTCwgMHhmZmZkZjNjZiwgMHgwMDAxNDEwNCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1DQl9IV19DT05UUk9MXzIsIDB4ZmY3ZmZmZmYsIDB4MGEwMDAwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tREJfREVCVUcyLCAweGYwMGZmZmZmLCAweDAwMDAwNDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdCX0FERFJfQ09ORklHLCAweGYzZTc3N2ZmLCAweDI0MDAwMDQyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdCX0FERFJfQ09ORklHX1JFQUQsIDB4ZjNlNzc3ZmYsIDB4MjQwMDAwNDIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tUEFfU0NfRU5IQU5DRSwgMHgzZmZmZmZmZiwgMHgwMDAwMDAwMSksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1QQV9TQ19FTkhBTkNFXzEsIDB4ZmZmZmZmZmYsIDB4MDQwNDAwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tUEFfU0NfTElORV9TVElQUExFX1NUQVRFLCAweDAwMDBmZjBmLCAweDAwMDAwMDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVRBX0NOVExfQVVYLCAweGZmZmZmZWVmLCAweDAxMGIwMDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVRDUF9DSEFOX1NURUVSX0hJLCAweGZmZmZmZmZmLCAweDAwMDAwMDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVRDUF9DSEFOX1NURUVSX0xPLCAweGZmZmZmZmZmLCAweDAwMDAzMTIwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdDRUFfUFJPQkVfTUFQLCAweGZmZmZmZmZmLCAweDAwMDBjY2NjKSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jMTVfcmVnX2dvbGRlbiBnb2xkZW5fc2V0dGluZ3NfZ2NfOV94X2NvbW1vbltdID0KIHsKIAlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUNQX1NEX0NOVEwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxZmYpLApAQCAtMjcxLDYgKzY4MSwxOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNvYzE1X3JlZ19nb2xkZW4gZ29sZGVuX3NldHRpbmdzX2djXzlfMl8xX3ZnMTJbXSA9CiAJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1DUF9ERUJVRywgMHgwMDAwMDAwMCwgMHgwMDAwODAwMCkKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jMTVfcmVnX2dvbGRlbiBnb2xkZW5fc2V0dGluZ3NfZ2NfOV80XzFfYXJjdFtdID0KK3sKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbUdCX0FERFJfQ09ORklHLCAweGZmZmY3N2ZmLCAweDJhMTE0MDQyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVRBX0NOVExfQVVYLCAweGZmZmZmZWVmLCAweDEwYjAwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tVENQX0NIQU5fU1RFRVJfMF9BUkNULCAweDNmZmZmZmZmLCAweDM0NmYwYTRlKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVRDUF9DSEFOX1NURUVSXzFfQVJDVCwgMHgzZmZmZmZmZiwgMHgxYzY0MmNhKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVRDUF9DSEFOX1NURUVSXzJfQVJDVCwgMHgzZmZmZmZmZiwgMHgyNmY0NTA5OCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1UQ1BfQ0hBTl9TVEVFUl8zX0FSQ1QsIDB4M2ZmZmZmZmYsIDB4MmViZDlmZTMpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tVENQX0NIQU5fU1RFRVJfNF9BUkNULCAweDNmZmZmZmZmLCAweGI5MGY1YjEpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tVENQX0NIQU5fU1RFRVJfNV9BUkNULCAweDNmZiwgMHgxMzUpLAorfTsKKwogc3RhdGljIGNvbnN0IHUzMiBHRlhfUkxDX1NSTV9JTkRFWF9DTlRMX0FERFJfT0ZGU0VUU1tdID0KIHsKIAltbVJMQ19TUk1fSU5ERVhfQ05UTF9BRERSXzAgLSBtbVJMQ19TUk1fSU5ERVhfQ05UTF9BRERSXzAsCkBAIC0zMTAsMTkgKzczMiwyMSBAQCBzdGF0aWMgdWludDY0X3QgZ2Z4X3Y5XzBfZ2V0X2dwdV9jbG9ja19jb3VudGVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHN0YXRpYyB2b2lkIGdmeF92OV8wX3NlbGVjdF9zZV9zaChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHNlX251bSwgdTMyIHNoX251bSwgdTMyIGluc3RhbmNlKTsKIHN0YXRpYyB2b2lkIGdmeF92OV8wX3JpbmdfZW1pdF9kZV9tZXRhKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7CiBzdGF0aWMgdTY0IGdmeF92OV8wX3JpbmdfZ2V0X3JwdHJfY29tcHV0ZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOworc3RhdGljIGludCBnZnhfdjlfMF9xdWVyeV9yYXNfZXJyb3JfY291bnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCSAgdm9pZCAqcmFzX2Vycm9yX3N0YXR1cyk7CitzdGF0aWMgaW50IGdmeF92OV8wX3Jhc19lcnJvcl9pbmplY3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJICAgICB2b2lkICppbmplY3RfaWYpOwogCiBzdGF0aWMgdm9pZCBnZnhfdjlfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKIAljYXNlIENISVBfVkVHQTEwOgotCQlpZiAoIWFtZGdwdV92aXJ0X3N1cHBvcnRfc2tpcF9zZXR0aW5nKGFkZXYpKSB7Ci0JCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCi0JCQkJCQkJIGdvbGRlbl9zZXR0aW5nc19nY185XzAsCi0JCQkJCQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMCkpOwotCQkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAotCQkJCQkJCSBnb2xkZW5fc2V0dGluZ3NfZ2NfOV8wX3ZnMTAsCi0JCQkJCQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMF92ZzEwKSk7Ci0JCX0KKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAorCQkJCQkJZ29sZGVuX3NldHRpbmdzX2djXzlfMCwKKwkJCQkJCUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMCkpOworCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCisJCQkJCQlnb2xkZW5fc2V0dGluZ3NfZ2NfOV8wX3ZnMTAsCisJCQkJCQlBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19nY185XzBfdmcxMCkpOwogCQlicmVhazsKIAljYXNlIENISVBfVkVHQTEyOgogCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCkBAIC0zNDAsNiArNzY0LDExIEBAIHN0YXRpYyB2b2lkIGdmeF92OV8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCQkJCWdvbGRlbl9zZXR0aW5nc19nY185XzBfdmcyMCwKIAkJCQkJCUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMF92ZzIwKSk7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9BUkNUVVJVUzoKKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAorCQkJCQkJZ29sZGVuX3NldHRpbmdzX2djXzlfNF8xX2FyY3QsCisJCQkJCQlBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19nY185XzRfMV9hcmN0KSk7CisJCWJyZWFrOwogCWNhc2UgQ0hJUF9SQVZFTjoKIAkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LCBnb2xkZW5fc2V0dGluZ3NfZ2NfOV8xLAogCQkJCQkJQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3NfZ2NfOV8xKSk7CkBAIC0zNTIsMTIgKzc4MSwxOCBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQkJCQkJZ29sZGVuX3NldHRpbmdzX2djXzlfMV9ydjEsCiAJCQkJCQkJQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3NfZ2NfOV8xX3J2MSkpOwogCQlicmVhazsKKwkgY2FzZSBDSElQX1JFTk9JUjoKKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAorCQkJCQkJZ29sZGVuX3NldHRpbmdzX2djXzlfMV9ybiwKKwkJCQkJCUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMV9ybikpOworCQlyZXR1cm47IC8qIGZvciByZW5vaXIsIGRvbid0IG5lZWQgY29tbW9uIGdvbGRlbnNldHRpbmcgKi8KIAlkZWZhdWx0OgogCQlicmVhazsKIAl9CiAKLQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsIGdvbGRlbl9zZXR0aW5nc19nY185X3hfY29tbW9uLAotCQkJCQkoY29uc3QgdTMyKUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfeF9jb21tb24pKTsKKwlpZiAoYWRldi0+YXNpY190eXBlICE9IENISVBfQVJDVFVSVVMpCisJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwgZ29sZGVuX3NldHRpbmdzX2djXzlfeF9jb21tb24sCisJCQkJCQkoY29uc3QgdTMyKUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfeF9jb21tb24pKTsKIH0KIAogc3RhdGljIHZvaWQgZ2Z4X3Y5XzBfc2NyYXRjaF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQpAQCAtNjE0LDQ0ICsxMDQ5LDE0IEBAIHN0YXRpYyB2b2lkIGdmeF92OV8wX2NoZWNrX2lmX25lZWRfZ2Z4b2ZmKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCX0KIH0KIAotc3RhdGljIGludCBnZnhfdjlfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZ2Z4X3Y5XzBfaW5pdF9jcF9nZnhfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgIGNvbnN0IGNoYXIgKmNoaXBfbmFtZSkKIHsKLQljb25zdCBjaGFyICpjaGlwX25hbWU7CiAJY2hhciBmd19uYW1lWzMwXTsKIAlpbnQgZXJyOwogCXN0cnVjdCBhbWRncHVfZmlybXdhcmVfaW5mbyAqaW5mbyA9IE5VTEw7CiAJY29uc3Qgc3RydWN0IGNvbW1vbl9maXJtd2FyZV9oZWFkZXIgKmhlYWRlciA9IE5VTEw7CiAJY29uc3Qgc3RydWN0IGdmeF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqY3BfaGRyOwotCWNvbnN0IHN0cnVjdCBybGNfZmlybXdhcmVfaGVhZGVyX3YyXzAgKnJsY19oZHI7Ci0JdW5zaWduZWQgaW50ICp0bXAgPSBOVUxMOwotCXVuc2lnbmVkIGludCBpID0gMDsKLQl1aW50MTZfdCB2ZXJzaW9uX21ham9yOwotCXVpbnQxNl90IHZlcnNpb25fbWlub3I7Ci0JdWludDMyX3Qgc211X3ZlcnNpb247Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewotCWNhc2UgQ0hJUF9WRUdBMTA6Ci0JCWNoaXBfbmFtZSA9ICJ2ZWdhMTAiOwotCQlicmVhazsKLQljYXNlIENISVBfVkVHQTEyOgotCQljaGlwX25hbWUgPSAidmVnYTEyIjsKLQkJYnJlYWs7Ci0JY2FzZSBDSElQX1ZFR0EyMDoKLQkJY2hpcF9uYW1lID0gInZlZ2EyMCI7Ci0JCWJyZWFrOwotCWNhc2UgQ0hJUF9SQVZFTjoKLQkJaWYgKGFkZXYtPnJldl9pZCA+PSA4KQotCQkJY2hpcF9uYW1lID0gInJhdmVuMiI7Ci0JCWVsc2UgaWYgKGFkZXYtPnBkZXYtPmRldmljZSA9PSAweDE1ZDgpCi0JCQljaGlwX25hbWUgPSAicGljYXNzbyI7Ci0JCWVsc2UKLQkJCWNoaXBfbmFtZSA9ICJyYXZlbiI7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCUJVRygpOwotCX0KIAogCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19wZnAuYmluIiwgY2hpcF9uYW1lKTsKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5nZngucGZwX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwpAQCAtNjg2LDYgKzEwOTEsNTggQEAgc3RhdGljIGludCBnZnhfdjlfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlhZGV2LT5nZnguY2VfZndfdmVyc2lvbiA9IGxlMzJfdG9fY3B1KGNwX2hkci0+aGVhZGVyLnVjb2RlX3ZlcnNpb24pOwogCWFkZXYtPmdmeC5jZV9mZWF0dXJlX3ZlcnNpb24gPSBsZTMyX3RvX2NwdShjcF9oZHItPnVjb2RlX2ZlYXR1cmVfdmVyc2lvbik7CiAKKwlpZiAoYWRldi0+ZmlybXdhcmUubG9hZF90eXBlID09IEFNREdQVV9GV19MT0FEX1BTUCkgeworCQlpbmZvID0gJmFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9DUF9QRlBdOworCQlpbmZvLT51Y29kZV9pZCA9IEFNREdQVV9VQ09ERV9JRF9DUF9QRlA7CisJCWluZm8tPmZ3ID0gYWRldi0+Z2Z4LnBmcF9mdzsKKwkJaGVhZGVyID0gKGNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICopaW5mby0+ZnctPmRhdGE7CisJCWFkZXYtPmZpcm13YXJlLmZ3X3NpemUgKz0KKwkJCUFMSUdOKGxlMzJfdG9fY3B1KGhlYWRlci0+dWNvZGVfc2l6ZV9ieXRlcyksIFBBR0VfU0laRSk7CisKKwkJaW5mbyA9ICZhZGV2LT5maXJtd2FyZS51Y29kZVtBTURHUFVfVUNPREVfSURfQ1BfTUVdOworCQlpbmZvLT51Y29kZV9pZCA9IEFNREdQVV9VQ09ERV9JRF9DUF9NRTsKKwkJaW5mby0+ZncgPSBhZGV2LT5nZngubWVfZnc7CisJCWhlYWRlciA9IChjb25zdCBzdHJ1Y3QgY29tbW9uX2Zpcm13YXJlX2hlYWRlciAqKWluZm8tPmZ3LT5kYXRhOworCQlhZGV2LT5maXJtd2FyZS5md19zaXplICs9CisJCQlBTElHTihsZTMyX3RvX2NwdShoZWFkZXItPnVjb2RlX3NpemVfYnl0ZXMpLCBQQUdFX1NJWkUpOworCisJCWluZm8gPSAmYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX0NQX0NFXTsKKwkJaW5mby0+dWNvZGVfaWQgPSBBTURHUFVfVUNPREVfSURfQ1BfQ0U7CisJCWluZm8tPmZ3ID0gYWRldi0+Z2Z4LmNlX2Z3OworCQloZWFkZXIgPSAoY29uc3Qgc3RydWN0IGNvbW1vbl9maXJtd2FyZV9oZWFkZXIgKilpbmZvLT5mdy0+ZGF0YTsKKwkJYWRldi0+ZmlybXdhcmUuZndfc2l6ZSArPQorCQkJQUxJR04obGUzMl90b19jcHUoaGVhZGVyLT51Y29kZV9zaXplX2J5dGVzKSwgUEFHRV9TSVpFKTsKKwl9CisKK291dDoKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoYWRldi0+ZGV2LAorCQkJImdmeDk6IEZhaWxlZCB0byBsb2FkIGZpcm13YXJlIFwiJXNcIlxuIiwKKwkJCWZ3X25hbWUpOworCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYtPmdmeC5wZnBfZncpOworCQlhZGV2LT5nZngucGZwX2Z3ID0gTlVMTDsKKwkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5nZngubWVfZncpOworCQlhZGV2LT5nZngubWVfZncgPSBOVUxMOworCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYtPmdmeC5jZV9mdyk7CisJCWFkZXYtPmdmeC5jZV9mdyA9IE5VTEw7CisJfQorCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgZ2Z4X3Y5XzBfaW5pdF9ybGNfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgIGNvbnN0IGNoYXIgKmNoaXBfbmFtZSkKK3sKKwljaGFyIGZ3X25hbWVbMzBdOworCWludCBlcnI7CisJc3RydWN0IGFtZGdwdV9maXJtd2FyZV9pbmZvICppbmZvID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgY29tbW9uX2Zpcm13YXJlX2hlYWRlciAqaGVhZGVyID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgcmxjX2Zpcm13YXJlX2hlYWRlcl92Ml8wICpybGNfaGRyOworCXVuc2lnbmVkIGludCAqdG1wID0gTlVMTDsKKwl1bnNpZ25lZCBpbnQgaSA9IDA7CisJdWludDE2X3QgdmVyc2lvbl9tYWpvcjsKKwl1aW50MTZfdCB2ZXJzaW9uX21pbm9yOworCXVpbnQzMl90IHNtdV92ZXJzaW9uOworCiAJLyoKIAkgKiBGb3IgUGljYXNzbyAmJiBBTTQgU09DS0VUIGJvYXJkLCB3ZSB1c2UgcGljYXNzb19ybGNfYW00LmJpbgogCSAqIGluc3RlYWQgb2YgcGljYXNzb19ybGMuYmluLgpAQCAtNzYwLDYgKzEyMTcsNTggQEAgc3RhdGljIGludCBnZnhfdjlfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpZiAoYWRldi0+Z2Z4LnJsYy5pc19ybGNfdjJfMSkKIAkJZ2Z4X3Y5XzBfaW5pdF9ybGNfZXh0X21pY3JvY29kZShhZGV2KTsKIAorCWlmIChhZGV2LT5maXJtd2FyZS5sb2FkX3R5cGUgPT0gQU1ER1BVX0ZXX0xPQURfUFNQKSB7CisJCWluZm8gPSAmYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX1JMQ19HXTsKKwkJaW5mby0+dWNvZGVfaWQgPSBBTURHUFVfVUNPREVfSURfUkxDX0c7CisJCWluZm8tPmZ3ID0gYWRldi0+Z2Z4LnJsY19mdzsKKwkJaGVhZGVyID0gKGNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICopaW5mby0+ZnctPmRhdGE7CisJCWFkZXYtPmZpcm13YXJlLmZ3X3NpemUgKz0KKwkJCUFMSUdOKGxlMzJfdG9fY3B1KGhlYWRlci0+dWNvZGVfc2l6ZV9ieXRlcyksIFBBR0VfU0laRSk7CisKKwkJaWYgKGFkZXYtPmdmeC5ybGMuaXNfcmxjX3YyXzEgJiYKKwkJICAgIGFkZXYtPmdmeC5ybGMuc2F2ZV9yZXN0b3JlX2xpc3RfY250bF9zaXplX2J5dGVzICYmCisJCSAgICBhZGV2LT5nZngucmxjLnNhdmVfcmVzdG9yZV9saXN0X2dwbV9zaXplX2J5dGVzICYmCisJCSAgICBhZGV2LT5nZngucmxjLnNhdmVfcmVzdG9yZV9saXN0X3NybV9zaXplX2J5dGVzKSB7CisJCQlpbmZvID0gJmFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9STENfUkVTVE9SRV9MSVNUX0NOVExdOworCQkJaW5mby0+dWNvZGVfaWQgPSBBTURHUFVfVUNPREVfSURfUkxDX1JFU1RPUkVfTElTVF9DTlRMOworCQkJaW5mby0+ZncgPSBhZGV2LT5nZngucmxjX2Z3OworCQkJYWRldi0+ZmlybXdhcmUuZndfc2l6ZSArPQorCQkJCUFMSUdOKGFkZXYtPmdmeC5ybGMuc2F2ZV9yZXN0b3JlX2xpc3RfY250bF9zaXplX2J5dGVzLCBQQUdFX1NJWkUpOworCisJCQlpbmZvID0gJmFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9STENfUkVTVE9SRV9MSVNUX0dQTV9NRU1dOworCQkJaW5mby0+dWNvZGVfaWQgPSBBTURHUFVfVUNPREVfSURfUkxDX1JFU1RPUkVfTElTVF9HUE1fTUVNOworCQkJaW5mby0+ZncgPSBhZGV2LT5nZngucmxjX2Z3OworCQkJYWRldi0+ZmlybXdhcmUuZndfc2l6ZSArPQorCQkJCUFMSUdOKGFkZXYtPmdmeC5ybGMuc2F2ZV9yZXN0b3JlX2xpc3RfZ3BtX3NpemVfYnl0ZXMsIFBBR0VfU0laRSk7CisKKwkJCWluZm8gPSAmYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX1JMQ19SRVNUT1JFX0xJU1RfU1JNX01FTV07CisJCQlpbmZvLT51Y29kZV9pZCA9IEFNREdQVV9VQ09ERV9JRF9STENfUkVTVE9SRV9MSVNUX1NSTV9NRU07CisJCQlpbmZvLT5mdyA9IGFkZXYtPmdmeC5ybGNfZnc7CisJCQlhZGV2LT5maXJtd2FyZS5md19zaXplICs9CisJCQkJQUxJR04oYWRldi0+Z2Z4LnJsYy5zYXZlX3Jlc3RvcmVfbGlzdF9zcm1fc2l6ZV9ieXRlcywgUEFHRV9TSVpFKTsKKwkJfQorCX0KKworb3V0OgorCWlmIChlcnIpIHsKKwkJZGV2X2VycihhZGV2LT5kZXYsCisJCQkiZ2Z4OTogRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgXCIlc1wiXG4iLAorCQkJZndfbmFtZSk7CisJCXJlbGVhc2VfZmlybXdhcmUoYWRldi0+Z2Z4LnJsY19mdyk7CisJCWFkZXYtPmdmeC5ybGNfZncgPSBOVUxMOworCX0KKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGdmeF92OV8wX2luaXRfY3BfY29tcHV0ZV9taWNyb2NvZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCSAgY29uc3QgY2hhciAqY2hpcF9uYW1lKQoreworCWNoYXIgZndfbmFtZVszMF07CisJaW50IGVycjsKKwlzdHJ1Y3QgYW1kZ3B1X2Zpcm13YXJlX2luZm8gKmluZm8gPSBOVUxMOworCWNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICpoZWFkZXIgPSBOVUxMOworCWNvbnN0IHN0cnVjdCBnZnhfZmlybXdhcmVfaGVhZGVyX3YxXzAgKmNwX2hkcjsKKwogCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19tZWMuYmluIiwgY2hpcF9uYW1lKTsKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5nZngubWVjX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwogCWlmIChlcnIpCkBAIC03OTAsNTcgKzEyOTksNiBAQCBzdGF0aWMgaW50IGdmeF92OV8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCX0KIAogCWlmIChhZGV2LT5maXJtd2FyZS5sb2FkX3R5cGUgPT0gQU1ER1BVX0ZXX0xPQURfUFNQKSB7Ci0JCWluZm8gPSAmYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX0NQX1BGUF07Ci0JCWluZm8tPnVjb2RlX2lkID0gQU1ER1BVX1VDT0RFX0lEX0NQX1BGUDsKLQkJaW5mby0+ZncgPSBhZGV2LT5nZngucGZwX2Z3OwotCQloZWFkZXIgPSAoY29uc3Qgc3RydWN0IGNvbW1vbl9maXJtd2FyZV9oZWFkZXIgKilpbmZvLT5mdy0+ZGF0YTsKLQkJYWRldi0+ZmlybXdhcmUuZndfc2l6ZSArPQotCQkJQUxJR04obGUzMl90b19jcHUoaGVhZGVyLT51Y29kZV9zaXplX2J5dGVzKSwgUEFHRV9TSVpFKTsKLQotCQlpbmZvID0gJmFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9DUF9NRV07Ci0JCWluZm8tPnVjb2RlX2lkID0gQU1ER1BVX1VDT0RFX0lEX0NQX01FOwotCQlpbmZvLT5mdyA9IGFkZXYtPmdmeC5tZV9mdzsKLQkJaGVhZGVyID0gKGNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICopaW5mby0+ZnctPmRhdGE7Ci0JCWFkZXYtPmZpcm13YXJlLmZ3X3NpemUgKz0KLQkJCUFMSUdOKGxlMzJfdG9fY3B1KGhlYWRlci0+dWNvZGVfc2l6ZV9ieXRlcyksIFBBR0VfU0laRSk7Ci0KLQkJaW5mbyA9ICZhZGV2LT5maXJtd2FyZS51Y29kZVtBTURHUFVfVUNPREVfSURfQ1BfQ0VdOwotCQlpbmZvLT51Y29kZV9pZCA9IEFNREdQVV9VQ09ERV9JRF9DUF9DRTsKLQkJaW5mby0+ZncgPSBhZGV2LT5nZnguY2VfZnc7Ci0JCWhlYWRlciA9IChjb25zdCBzdHJ1Y3QgY29tbW9uX2Zpcm13YXJlX2hlYWRlciAqKWluZm8tPmZ3LT5kYXRhOwotCQlhZGV2LT5maXJtd2FyZS5md19zaXplICs9Ci0JCQlBTElHTihsZTMyX3RvX2NwdShoZWFkZXItPnVjb2RlX3NpemVfYnl0ZXMpLCBQQUdFX1NJWkUpOwotCi0JCWluZm8gPSAmYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX1JMQ19HXTsKLQkJaW5mby0+dWNvZGVfaWQgPSBBTURHUFVfVUNPREVfSURfUkxDX0c7Ci0JCWluZm8tPmZ3ID0gYWRldi0+Z2Z4LnJsY19mdzsKLQkJaGVhZGVyID0gKGNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICopaW5mby0+ZnctPmRhdGE7Ci0JCWFkZXYtPmZpcm13YXJlLmZ3X3NpemUgKz0KLQkJCUFMSUdOKGxlMzJfdG9fY3B1KGhlYWRlci0+dWNvZGVfc2l6ZV9ieXRlcyksIFBBR0VfU0laRSk7Ci0KLQkJaWYgKGFkZXYtPmdmeC5ybGMuaXNfcmxjX3YyXzEgJiYKLQkJICAgIGFkZXYtPmdmeC5ybGMuc2F2ZV9yZXN0b3JlX2xpc3RfY250bF9zaXplX2J5dGVzICYmCi0JCSAgICBhZGV2LT5nZngucmxjLnNhdmVfcmVzdG9yZV9saXN0X2dwbV9zaXplX2J5dGVzICYmCi0JCSAgICBhZGV2LT5nZngucmxjLnNhdmVfcmVzdG9yZV9saXN0X3NybV9zaXplX2J5dGVzKSB7Ci0JCQlpbmZvID0gJmFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9STENfUkVTVE9SRV9MSVNUX0NOVExdOwotCQkJaW5mby0+dWNvZGVfaWQgPSBBTURHUFVfVUNPREVfSURfUkxDX1JFU1RPUkVfTElTVF9DTlRMOwotCQkJaW5mby0+ZncgPSBhZGV2LT5nZngucmxjX2Z3OwotCQkJYWRldi0+ZmlybXdhcmUuZndfc2l6ZSArPQotCQkJCUFMSUdOKGFkZXYtPmdmeC5ybGMuc2F2ZV9yZXN0b3JlX2xpc3RfY250bF9zaXplX2J5dGVzLCBQQUdFX1NJWkUpOwotCi0JCQlpbmZvID0gJmFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9STENfUkVTVE9SRV9MSVNUX0dQTV9NRU1dOwotCQkJaW5mby0+dWNvZGVfaWQgPSBBTURHUFVfVUNPREVfSURfUkxDX1JFU1RPUkVfTElTVF9HUE1fTUVNOwotCQkJaW5mby0+ZncgPSBhZGV2LT5nZngucmxjX2Z3OwotCQkJYWRldi0+ZmlybXdhcmUuZndfc2l6ZSArPQotCQkJCUFMSUdOKGFkZXYtPmdmeC5ybGMuc2F2ZV9yZXN0b3JlX2xpc3RfZ3BtX3NpemVfYnl0ZXMsIFBBR0VfU0laRSk7Ci0KLQkJCWluZm8gPSAmYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX1JMQ19SRVNUT1JFX0xJU1RfU1JNX01FTV07Ci0JCQlpbmZvLT51Y29kZV9pZCA9IEFNREdQVV9VQ09ERV9JRF9STENfUkVTVE9SRV9MSVNUX1NSTV9NRU07Ci0JCQlpbmZvLT5mdyA9IGFkZXYtPmdmeC5ybGNfZnc7Ci0JCQlhZGV2LT5maXJtd2FyZS5md19zaXplICs9Ci0JCQkJQUxJR04oYWRldi0+Z2Z4LnJsYy5zYXZlX3Jlc3RvcmVfbGlzdF9zcm1fc2l6ZV9ieXRlcywgUEFHRV9TSVpFKTsKLQkJfQotCiAJCWluZm8gPSAmYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX0NQX01FQzFdOwogCQlpbmZvLT51Y29kZV9pZCA9IEFNREdQVV9VQ09ERV9JRF9DUF9NRUMxOwogCQlpbmZvLT5mdyA9IGFkZXYtPmdmeC5tZWNfZnc7CkBAIC04NjMsMTMgKzEzMjEsMTggQEAgc3RhdGljIGludCBnZnhfdjlfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCWNwX2hkciA9IChjb25zdCBzdHJ1Y3QgZ2Z4X2Zpcm13YXJlX2hlYWRlcl92MV8wICopaW5mby0+ZnctPmRhdGE7CiAJCQlhZGV2LT5maXJtd2FyZS5md19zaXplICs9CiAJCQkJQUxJR04obGUzMl90b19jcHUoaGVhZGVyLT51Y29kZV9zaXplX2J5dGVzKSAtIGxlMzJfdG9fY3B1KGNwX2hkci0+anRfc2l6ZSkgKiA0LCBQQUdFX1NJWkUpOwotCQkJaW5mbyA9ICZhZGV2LT5maXJtd2FyZS51Y29kZVtBTURHUFVfVUNPREVfSURfQ1BfTUVDMl9KVF07Ci0JCQlpbmZvLT51Y29kZV9pZCA9IEFNREdQVV9VQ09ERV9JRF9DUF9NRUMyX0pUOwotCQkJaW5mby0+ZncgPSBhZGV2LT5nZngubWVjMl9mdzsKLQkJCWFkZXYtPmZpcm13YXJlLmZ3X3NpemUgKz0KLQkJCQlBTElHTihsZTMyX3RvX2NwdShjcF9oZHItPmp0X3NpemUpICogNCwgUEFHRV9TSVpFKTsKLQkJfQogCisJCQkvKiBUT0RPOiBEZXRlcm1pbmUgaWYgTUVDMiBKVCBGVyBsb2FkaW5nIGNhbiBiZSByZW1vdmVkCisJCQkJIGZvciBhbGwgR0ZYIFY5IGFzaWMgYW5kIGFib3ZlICovCisJCQlpZiAoYWRldi0+YXNpY190eXBlICE9IENISVBfQVJDVFVSVVMpIHsKKwkJCQlpbmZvID0gJmFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9DUF9NRUMyX0pUXTsKKwkJCQlpbmZvLT51Y29kZV9pZCA9IEFNREdQVV9VQ09ERV9JRF9DUF9NRUMyX0pUOworCQkJCWluZm8tPmZ3ID0gYWRldi0+Z2Z4Lm1lYzJfZnc7CisJCQkJYWRldi0+ZmlybXdhcmUuZndfc2l6ZSArPQorCQkJCQlBTElHTihsZTMyX3RvX2NwdShjcF9oZHItPmp0X3NpemUpICogNCwKKwkJCQkJUEFHRV9TSVpFKTsKKwkJCX0KKwkJfQogCX0KIAogb3V0OgpAQCAtODc5LDE0ICsxMzQyLDYgQEAgc3RhdGljIGludCBnZnhfdjlfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJZGV2X2VycihhZGV2LT5kZXYsCiAJCQkiZ2Z4OTogRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgXCIlc1wiXG4iLAogCQkJZndfbmFtZSk7Ci0JCXJlbGVhc2VfZmlybXdhcmUoYWRldi0+Z2Z4LnBmcF9mdyk7Ci0JCWFkZXYtPmdmeC5wZnBfZncgPSBOVUxMOwotCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYtPmdmeC5tZV9mdyk7Ci0JCWFkZXYtPmdmeC5tZV9mdyA9IE5VTEw7Ci0JCXJlbGVhc2VfZmlybXdhcmUoYWRldi0+Z2Z4LmNlX2Z3KTsKLQkJYWRldi0+Z2Z4LmNlX2Z3ID0gTlVMTDsKLQkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5nZngucmxjX2Z3KTsKLQkJYWRldi0+Z2Z4LnJsY19mdyA9IE5VTEw7CiAJCXJlbGVhc2VfZmlybXdhcmUoYWRldi0+Z2Z4Lm1lY19mdyk7CiAJCWFkZXYtPmdmeC5tZWNfZncgPSBOVUxMOwogCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYtPmdmeC5tZWMyX2Z3KTsKQEAgLTg5NSw2ICsxMzUwLDU5IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBfaW5pdF9taWNyb2NvZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBnZnhfdjlfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwljb25zdCBjaGFyICpjaGlwX25hbWU7CisJaW50IHI7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgeworCWNhc2UgQ0hJUF9WRUdBMTA6CisJCWNoaXBfbmFtZSA9ICJ2ZWdhMTAiOworCQlicmVhazsKKwljYXNlIENISVBfVkVHQTEyOgorCQljaGlwX25hbWUgPSAidmVnYTEyIjsKKwkJYnJlYWs7CisJY2FzZSBDSElQX1ZFR0EyMDoKKwkJY2hpcF9uYW1lID0gInZlZ2EyMCI7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9SQVZFTjoKKwkJaWYgKGFkZXYtPnJldl9pZCA+PSA4KQorCQkJY2hpcF9uYW1lID0gInJhdmVuMiI7CisJCWVsc2UgaWYgKGFkZXYtPnBkZXYtPmRldmljZSA9PSAweDE1ZDgpCisJCQljaGlwX25hbWUgPSAicGljYXNzbyI7CisJCWVsc2UKKwkJCWNoaXBfbmFtZSA9ICJyYXZlbiI7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9BUkNUVVJVUzoKKwkJY2hpcF9uYW1lID0gImFyY3R1cnVzIjsKKwkJYnJlYWs7CisJY2FzZSBDSElQX1JFTk9JUjoKKwkJY2hpcF9uYW1lID0gInJlbm9pciI7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCUJVRygpOworCX0KKworCS8qIE5vIENQRyBpbiBBcmN0dXJ1cyAqLworCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9BUkNUVVJVUykgeworCQlyID0gZ2Z4X3Y5XzBfaW5pdF9jcF9nZnhfbWljcm9jb2RlKGFkZXYsIGNoaXBfbmFtZSk7CisJCWlmIChyKQorCQkJcmV0dXJuIHI7CisJfQorCisJciA9IGdmeF92OV8wX2luaXRfcmxjX21pY3JvY29kZShhZGV2LCBjaGlwX25hbWUpOworCWlmIChyKQorCQlyZXR1cm4gcjsKKworCXIgPSBnZnhfdjlfMF9pbml0X2NwX2NvbXB1dGVfbWljcm9jb2RlKGFkZXYsIGNoaXBfbmFtZSk7CisJaWYgKHIpCisJCXJldHVybiByOworCisJcmV0dXJuIHI7Cit9CisKIHN0YXRpYyB1MzIgZ2Z4X3Y5XzBfZ2V0X2NzYl9zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXUzMiBjb3VudCA9IDA7CkBAIC0xMTMyLDcgKzE2NDAsNyBAQCBzdGF0aWMgaW50IGdmeF92OV8wX3JsY19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJcmV0dXJuIHI7CiAJfQogCi0JaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOKSB7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOIHx8IGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JFTk9JUikgewogCQkvKiBUT0RPOiBkb3VibGUgY2hlY2sgdGhlIGNwX3RhYmxlX3NpemUgZm9yIFJWICovCiAJCWFkZXYtPmdmeC5ybGMuY3BfdGFibGVfc2l6ZSA9IEFMSUdOKDk2ICogNSAqIDQsIDIwNDgpICsgKDY0ICogMTAyNCk7IC8qIEpUICsgR0RTICovCiAJCXIgPSBhbWRncHVfZ2Z4X3JsY19pbml0X2NwdChhZGV2KTsKQEAgLTEzMjgsNyArMTgzNiw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2dmeF9mdW5jcyBnZnhfdjlfMF9nZnhfZnVuY3MgPSB7CiAJLnJlYWRfd2F2ZV9kYXRhID0gJmdmeF92OV8wX3JlYWRfd2F2ZV9kYXRhLAogCS5yZWFkX3dhdmVfc2dwcnMgPSAmZ2Z4X3Y5XzBfcmVhZF93YXZlX3NncHJzLAogCS5yZWFkX3dhdmVfdmdwcnMgPSAmZ2Z4X3Y5XzBfcmVhZF93YXZlX3ZncHJzLAotCS5zZWxlY3RfbWVfcGlwZV9xID0gJmdmeF92OV8wX3NlbGVjdF9tZV9waXBlX3EKKwkuc2VsZWN0X21lX3BpcGVfcSA9ICZnZnhfdjlfMF9zZWxlY3RfbWVfcGlwZV9xLAorCS5yYXNfZXJyb3JfaW5qZWN0ID0gJmdmeF92OV8wX3Jhc19lcnJvcl9pbmplY3QsCisJLnF1ZXJ5X3Jhc19lcnJvcl9jb3VudCA9ICZnZnhfdjlfMF9xdWVyeV9yYXNfZXJyb3JfY291bnQKIH07CiAKIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBfZ3B1X2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCkBAIC0xMzgxLDYgKzE4OTEsMjYgQEAgc3RhdGljIGludCBnZnhfdjlfMF9ncHVfZWFybHlfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJZWxzZQogCQkJZ2JfYWRkcl9jb25maWcgPSBSQVZFTl9HQl9BRERSX0NPTkZJR19HT0xERU47CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9BUkNUVVJVUzoKKwkJYWRldi0+Z2Z4LmNvbmZpZy5tYXhfaHdfY29udGV4dHMgPSA4OworCQlhZGV2LT5nZnguY29uZmlnLnNjX3ByaW1fZmlmb19zaXplX2Zyb250ZW5kID0gMHgyMDsKKwkJYWRldi0+Z2Z4LmNvbmZpZy5zY19wcmltX2ZpZm9fc2l6ZV9iYWNrZW5kID0gMHgxMDA7CisJCWFkZXYtPmdmeC5jb25maWcuc2NfaGl6X3RpbGVfZmlmb19zaXplID0gMHgzMDsKKwkJYWRldi0+Z2Z4LmNvbmZpZy5zY19lYXJseXpfdGlsZV9maWZvX3NpemUgPSAweDRDMDsKKwkJZ2JfYWRkcl9jb25maWcgPSBSUkVHMzJfU09DMTUoR0MsIDAsIG1tR0JfQUREUl9DT05GSUcpOworCQlnYl9hZGRyX2NvbmZpZyAmPSB+MHhmM2U3NzdmZjsKKwkJZ2JfYWRkcl9jb25maWcgfD0gMHgyMjAxNDA0MjsKKwkJYnJlYWs7CisJY2FzZSBDSElQX1JFTk9JUjoKKwkJYWRldi0+Z2Z4LmNvbmZpZy5tYXhfaHdfY29udGV4dHMgPSA4OworCQlhZGV2LT5nZnguY29uZmlnLnNjX3ByaW1fZmlmb19zaXplX2Zyb250ZW5kID0gMHgyMDsKKwkJYWRldi0+Z2Z4LmNvbmZpZy5zY19wcmltX2ZpZm9fc2l6ZV9iYWNrZW5kID0gMHgxMDA7CisJCWFkZXYtPmdmeC5jb25maWcuc2NfaGl6X3RpbGVfZmlmb19zaXplID0gMHg4MDsKKwkJYWRldi0+Z2Z4LmNvbmZpZy5zY19lYXJseXpfdGlsZV9maWZvX3NpemUgPSAweDRDMDsKKwkJZ2JfYWRkcl9jb25maWcgPSBSUkVHMzJfU09DMTUoR0MsIDAsIG1tR0JfQUREUl9DT05GSUcpOworCQlnYl9hZGRyX2NvbmZpZyAmPSB+MHhmM2U3NzdmZjsKKwkJZ2JfYWRkcl9jb25maWcgfD0gMHgyMjAxMDA0MjsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJQlVHKCk7CiAJCWJyZWFrOwpAQCAtMTY1Nyw2ICsyMTg3LDggQEAgc3RhdGljIGludCBnZnhfdjlfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIAljYXNlIENISVBfVkVHQTEyOgogCWNhc2UgQ0hJUF9WRUdBMjA6CiAJY2FzZSBDSElQX1JBVkVOOgorCWNhc2UgQ0hJUF9BUkNUVVJVUzoKKwljYXNlIENISVBfUkVOT0lSOgogCQlhZGV2LT5nZngubWVjLm51bV9tZWMgPSAyOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMTgxNCw3ICsyMzQ2LDcgQEAgc3RhdGljIGludCBnZnhfdjlfMF9zd19maW5pKHZvaWQgKmhhbmRsZSkKIAlnZnhfdjlfMF9tZWNfZmluaShhZGV2KTsKIAlnZnhfdjlfMF9uZ2dfZmluaShhZGV2KTsKIAlhbWRncHVfYm9fdW5yZWYoJmFkZXYtPmdmeC5ybGMuY2xlYXJfc3RhdGVfb2JqKTsKLQlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4pIHsKKwlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4gfHwgYWRldi0+YXNpY190eXBlID09IENISVBfUkVOT0lSKSB7CiAJCWFtZGdwdV9ib19mcmVlX2tlcm5lbCgmYWRldi0+Z2Z4LnJsYy5jcF90YWJsZV9vYmosCiAJCQkJJmFkZXYtPmdmeC5ybGMuY3BfdGFibGVfZ3B1X2FkZHIsCiAJCQkJKHZvaWQgKiopJmFkZXYtPmdmeC5ybGMuY3BfdGFibGVfcHRyKTsKQEAgLTE5MzMsNiArMjQ2NSwyNCBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF9pbml0X2NvbXB1dGVfdm1pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9CiB9CiAKK3N0YXRpYyB2b2lkIGdmeF92OV8wX2luaXRfZ2RzX3ZtaWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJaW50IHZtaWQ7CisKKwkvKgorCSAqIEluaXRpYWxpemUgYWxsIGNvbXB1dGUgYW5kIHVzZXItZ2Z4IFZNSURzIHRvIGhhdmUgbm8gR0RTLCBHV1MsIG9yIE9BCisJICogYWNjZXNzLiBDb21wdXRlIFZNSURzIHNob3VsZCBiZSBlbmFibGVkIGJ5IEZXIGZvciB0YXJnZXQgVk1JRHMsCisJICogdGhlIGRyaXZlciBjYW4gZW5hYmxlIHRoZW0gZm9yIGdyYXBoaWNzLiBWTUlEMCBzaG91bGQgbWFpbnRhaW4KKwkgKiBhY2Nlc3Mgc28gdGhhdCBIV1MgZmlybXdhcmUgY2FuIHNhdmUvcmVzdG9yZSBlbnRyaWVzLgorCSAqLworCWZvciAodm1pZCA9IDE7IHZtaWQgPCAxNjsgdm1pZCsrKSB7CisJCVdSRUczMl9TT0MxNV9PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQwX0JBU0UsIDIgKiB2bWlkLCAwKTsKKwkJV1JFRzMyX1NPQzE1X09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDBfU0laRSwgMiAqIHZtaWQsIDApOworCQlXUkVHMzJfU09DMTVfT0ZGU0VUKEdDLCAwLCBtbUdEU19HV1NfVk1JRDAsIHZtaWQsIDApOworCQlXUkVHMzJfU09DMTVfT0ZGU0VUKEdDLCAwLCBtbUdEU19PQV9WTUlEMCwgdm1pZCwgMCk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBnZnhfdjlfMF9jb25zdGFudHNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAl1MzIgdG1wOwpAQCAtMTk0OSw3ICsyNDk5LDcgQEAgc3RhdGljIHZvaWQgZ2Z4X3Y5XzBfY29uc3RhbnRzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJLyogWFhYIFNIX01FTSByZWdzICovCiAJLyogd2hlcmUgdG8gcHV0IExEUywgc2NyYXRjaCwgR1BVVk0gaW4gRlNBNjQgc3BhY2UgKi8KIAltdXRleF9sb2NrKCZhZGV2LT5zcmJtX211dGV4KTsKLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dm1fbWFuYWdlci5pZF9tZ3JbQU1ER1BVX0dGWEhVQl0ubnVtX2lkczsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZtX21hbmFnZXIuaWRfbWdyW0FNREdQVV9HRlhIVUJfMF0ubnVtX2lkczsgaSsrKSB7CiAJCXNvYzE1X2dyYm1fc2VsZWN0KGFkZXYsIDAsIDAsIDAsIGkpOwogCQkvKiBDUCBhbmQgc2hhZGVycyAqLwogCQlpZiAoaSA9PSAwKSB7CkBAIC0xOTc3LDYgKzI1MjcsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF9jb25zdGFudHNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAltdXRleF91bmxvY2soJmFkZXYtPnNyYm1fbXV0ZXgpOwogCiAJZ2Z4X3Y5XzBfaW5pdF9jb21wdXRlX3ZtaWQoYWRldik7CisJZ2Z4X3Y5XzBfaW5pdF9nZHNfdm1pZChhZGV2KTsKIH0KIAogc3RhdGljIHZvaWQgZ2Z4X3Y5XzBfd2FpdF9mb3JfcmxjX3NlcmRlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKQEAgLTI4NTMsNiArMzQwNCwxMCBAQCBzdGF0aWMgaW50IGdmeF92OV8wX21xZF9pbml0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAltcWQtPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMSA9IDB4ZmZmZmZmZmY7CiAJbXFkLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTIgPSAweGZmZmZmZmZmOwogCW1xZC0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2UzID0gMHhmZmZmZmZmZjsKKwltcWQtPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlNCA9IDB4ZmZmZmZmZmY7CisJbXFkLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTUgPSAweGZmZmZmZmZmOworCW1xZC0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2U2ID0gMHhmZmZmZmZmZjsKKwltcWQtPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlNyA9IDB4ZmZmZmZmZmY7CiAJbXFkLT5jb21wdXRlX21pc2NfcmVzZXJ2ZWQgPSAweDAwMDAwMDAzOwogCiAJbXFkLT5keW5hbWljX2N1X21hc2tfYWRkcl9sbyA9CkBAIC0zMjU2LDEwICszODExLDEyIEBAIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBfY3BfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlnZnhfdjlfMF9lbmFibGVfZ3VpX2lkbGVfaW50ZXJydXB0KGFkZXYsIGZhbHNlKTsKIAogCWlmIChhZGV2LT5maXJtd2FyZS5sb2FkX3R5cGUgIT0gQU1ER1BVX0ZXX0xPQURfUFNQKSB7Ci0JCS8qIGxlZ2FjeSBmaXJtd2FyZSBsb2FkaW5nICovCi0JCXIgPSBnZnhfdjlfMF9jcF9nZnhfbG9hZF9taWNyb2NvZGUoYWRldik7Ci0JCWlmIChyKQotCQkJcmV0dXJuIHI7CisJCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9BUkNUVVJVUykgeworCQkJLyogbGVnYWN5IGZpcm13YXJlIGxvYWRpbmcgKi8KKwkJCXIgPSBnZnhfdjlfMF9jcF9nZnhfbG9hZF9taWNyb2NvZGUoYWRldik7CisJCQlpZiAocikKKwkJCQlyZXR1cm4gcjsKKwkJfQogCiAJCXIgPSBnZnhfdjlfMF9jcF9jb21wdXRlX2xvYWRfbWljcm9jb2RlKGFkZXYpOwogCQlpZiAocikKQEAgLTMyNzAsMTggKzM4MjcsMjIgQEAgc3RhdGljIGludCBnZnhfdjlfMF9jcF9yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaWYgKHIpCiAJCXJldHVybiByOwogCi0JciA9IGdmeF92OV8wX2NwX2dmeF9yZXN1bWUoYWRldik7Ci0JaWYgKHIpCi0JCXJldHVybiByOworCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9BUkNUVVJVUykgeworCQlyID0gZ2Z4X3Y5XzBfY3BfZ2Z4X3Jlc3VtZShhZGV2KTsKKwkJaWYgKHIpCisJCQlyZXR1cm4gcjsKKwl9CiAKIAlyID0gZ2Z4X3Y5XzBfa2NxX3Jlc3VtZShhZGV2KTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKLQlyaW5nID0gJmFkZXYtPmdmeC5nZnhfcmluZ1swXTsKLQlyID0gYW1kZ3B1X3JpbmdfdGVzdF9oZWxwZXIocmluZyk7Ci0JaWYgKHIpCi0JCXJldHVybiByOworCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9BUkNUVVJVUykgeworCQlyaW5nID0gJmFkZXYtPmdmeC5nZnhfcmluZ1swXTsKKwkJciA9IGFtZGdwdV9yaW5nX3Rlc3RfaGVscGVyKHJpbmcpOworCQlpZiAocikKKwkJCXJldHVybiByOworCX0KIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5nZngubnVtX2NvbXB1dGVfcmluZ3M7IGkrKykgewogCQlyaW5nID0gJmFkZXYtPmdmeC5jb21wdXRlX3JpbmdbaV07CkBAIC0zMjk1LDcgKzM4NTYsOCBAQCBzdGF0aWMgaW50IGdmeF92OV8wX2NwX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogc3RhdGljIHZvaWQgZ2Z4X3Y5XzBfY3BfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGVuYWJsZSkKIHsKLQlnZnhfdjlfMF9jcF9nZnhfZW5hYmxlKGFkZXYsIGVuYWJsZSk7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX0FSQ1RVUlVTKQorCQlnZnhfdjlfMF9jcF9nZnhfZW5hYmxlKGFkZXYsIGVuYWJsZSk7CiAJZ2Z4X3Y5XzBfY3BfY29tcHV0ZV9lbmFibGUoYWRldiwgZW5hYmxlKTsKIH0KIApAQCAtMzMwNCw3ICszODY2LDggQEAgc3RhdGljIGludCBnZnhfdjlfMF9od19pbml0KHZvaWQgKmhhbmRsZSkKIAlpbnQgcjsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAotCWdmeF92OV8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhhZGV2KTsKKwlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkKKwkJZ2Z4X3Y5XzBfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKGFkZXYpOwogCiAJZ2Z4X3Y5XzBfY29uc3RhbnRzX2luaXQoYWRldik7CiAKQEAgLTMzMjAsOSArMzg4MywxMSBAQCBzdGF0aWMgaW50IGdmeF92OV8wX2h3X2luaXQodm9pZCAqaGFuZGxlKQogCWlmIChyKQogCQlyZXR1cm4gcjsKIAotCXIgPSBnZnhfdjlfMF9uZ2dfZW4oYWRldik7Ci0JaWYgKHIpCi0JCXJldHVybiByOworCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9BUkNUVVJVUykgeworCQlyID0gZ2Z4X3Y5XzBfbmdnX2VuKGFkZXYpOworCQlpZiAocikKKwkJCXJldHVybiByOworCX0KIAogCXJldHVybiByOwogfQpAQCAtMzQ3MCw4ICs0MDM1LDkgQEAgc3RhdGljIGludCBnZnhfdjlfMF9zb2Z0X3Jlc2V0KHZvaWQgKmhhbmRsZSkKIAkJLyogc3RvcCB0aGUgcmxjICovCiAJCWFkZXYtPmdmeC5ybGMuZnVuY3MtPnN0b3AoYWRldik7CiAKLQkJLyogRGlzYWJsZSBHRlggcGFyc2luZy9wcmVmZXRjaGluZyAqLwotCQlnZnhfdjlfMF9jcF9nZnhfZW5hYmxlKGFkZXYsIGZhbHNlKTsKKwkJaWYgKGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX0FSQ1RVUlVTKQorCQkJLyogRGlzYWJsZSBHRlggcGFyc2luZy9wcmVmZXRjaGluZyAqLworCQkJZ2Z4X3Y5XzBfY3BfZ2Z4X2VuYWJsZShhZGV2LCBmYWxzZSk7CiAKIAkJLyogRGlzYWJsZSBNRUMgcGFyc2luZy9wcmVmZXRjaGluZyAqLwogCQlnZnhfdjlfMF9jcF9jb21wdXRlX2VuYWJsZShhZGV2LCBmYWxzZSk7CkBAIC0zODE0LDcgKzQzODAsMTAgQEAgc3RhdGljIGludCBnZnhfdjlfMF9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAotCWFkZXYtPmdmeC5udW1fZ2Z4X3JpbmdzID0gR0ZYOV9OVU1fR0ZYX1JJTkdTOworCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9BUkNUVVJVUykKKwkJYWRldi0+Z2Z4Lm51bV9nZnhfcmluZ3MgPSAwOworCWVsc2UKKwkJYWRldi0+Z2Z4Lm51bV9nZnhfcmluZ3MgPSBHRlg5X05VTV9HRlhfUklOR1M7CiAJYWRldi0+Z2Z4Lm51bV9jb21wdXRlX3JpbmdzID0gQU1ER1BVX01BWF9DT01QVVRFX1JJTkdTOwogCWdmeF92OV8wX3NldF9yaW5nX2Z1bmNzKGFkZXYpOwogCWdmeF92OV8wX3NldF9pcnFfZnVuY3MoYWRldik7CkBAIC0zODI1LDYgKzQzOTQsNyBAQCBzdGF0aWMgaW50IGdmeF92OV8wX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogfQogCiBzdGF0aWMgaW50IGdmeF92OV8wX3Byb2Nlc3NfcmFzX2RhdGFfY2Ioc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCXN0cnVjdCByYXNfZXJyX2RhdGEgKmVycl9kYXRhLAogCQlzdHJ1Y3QgYW1kZ3B1X2l2X2VudHJ5ICplbnRyeSk7CiAKIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBfZWNjX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCkBAIC0zOTkwLDYgKzQ1NjAsOSBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF91cGRhdGVfZ2Z4X2NnX3Bvd2VyX2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIHsKIAlhbWRncHVfZ2Z4X3JsY19lbnRlcl9zYWZlX21vZGUoYWRldik7CiAKKwlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikgJiYgIWVuYWJsZSkKKwkJc211X3NldF9nZnhfY2dwZygmYWRldi0+c211LCBlbmFibGUpOworCiAJaWYgKChhZGV2LT5wZ19mbGFncyAmIEFNRF9QR19TVVBQT1JUX0dGWF9QRykgJiYgZW5hYmxlKSB7CiAJCWdmeF92OV8wX2VuYWJsZV9nZnhfY2dfcG93ZXJfZ2F0aW5nKGFkZXYsIHRydWUpOwogCQlpZiAoYWRldi0+cGdfZmxhZ3MgJiBBTURfUEdfU1VQUE9SVF9HRlhfUElQRUxJTkUpCkBAIC00MTAxLDYgKzQ2NzQsOSBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF91cGRhdGVfM2RfY2xvY2tfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogewogCXVpbnQzMl90IGRhdGEsIGRlZjsKIAorCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9BUkNUVVJVUykKKwkJcmV0dXJuOworCiAJYW1kZ3B1X2dmeF9ybGNfZW50ZXJfc2FmZV9tb2RlKGFkZXYpOwogCiAJLyogRW5hYmxlIDNEIENHQ0cvQ0dMUyAqLwpAQCAtNDE2Niw4ICs0NzQyLDEyIEBAIHN0YXRpYyB2b2lkIGdmeF92OV8wX3VwZGF0ZV9jb2Fyc2VfZ3JhaW5fY2xvY2tfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2CiAJCS8qIGVuYWJsZSBjZ2NnIEZTTSgweDAwMDAzNjNGKSAqLwogCQlkZWYgPSBSUkVHMzJfU09DMTUoR0MsIDAsIG1tUkxDX0NHQ0dfQ0dMU19DVFJMKTsKIAotCQlkYXRhID0gKDB4MzYgPDwgUkxDX0NHQ0dfQ0dMU19DVFJMX19DR0NHX0dGWF9JRExFX1RIUkVTSE9MRF9fU0hJRlQpIHwKLQkJCVJMQ19DR0NHX0NHTFNfQ1RSTF9fQ0dDR19FTl9NQVNLOworCQlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfQVJDVFVSVVMpCisJCQlkYXRhID0gKDB4MjAwMCA8PCBSTENfQ0dDR19DR0xTX0NUUkxfX0NHQ0dfR0ZYX0lETEVfVEhSRVNIT0xEX19TSElGVCkgfAorCQkJCVJMQ19DR0NHX0NHTFNfQ1RSTF9fQ0dDR19FTl9NQVNLOworCQllbHNlCisJCQlkYXRhID0gKDB4MzYgPDwgUkxDX0NHQ0dfQ0dMU19DVFJMX19DR0NHX0dGWF9JRExFX1RIUkVTSE9MRF9fU0hJRlQpIHwKKwkJCQlSTENfQ0dDR19DR0xTX0NUUkxfX0NHQ0dfRU5fTUFTSzsKIAkJaWYgKGFkZXYtPmNnX2ZsYWdzICYgQU1EX0NHX1NVUFBPUlRfR0ZYX0NHTFMpCiAJCQlkYXRhIHw9ICgweDAwMEYgPDwgUkxDX0NHQ0dfQ0dMU19DVFJMX19DR0xTX1JFUF9DT01QQU5TQVRfREVMQVlfX1NISUZUKSB8CiAJCQkJUkxDX0NHQ0dfQ0dMU19DVFJMX19DR0xTX0VOX01BU0s7CkBAIC00MjM5LDYgKzQ4MTksNyBAQCBzdGF0aWMgaW50IGdmeF92OV8wX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCiAKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCWNhc2UgQ0hJUF9SQVZFTjoKKwljYXNlIENISVBfUkVOT0lSOgogCQlpZiAoIWVuYWJsZSkgewogCQkJYW1kZ3B1X2dmeF9vZmZfY3RybChhZGV2LCBmYWxzZSk7CiAJCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmFkZXYtPmdmeC5nZnhfb2ZmX2RlbGF5X3dvcmspOwpAQCAtNDI1Nyw2ICs0ODM4LDggQEAgc3RhdGljIGludCBnZnhfdjlfMF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAogCQkJZ2Z4X3Y5XzBfZW5hYmxlX2NwX3Bvd2VyX2dhdGluZyhhZGV2LCBmYWxzZSk7CiAKIAkJLyogdXBkYXRlIGdmeCBjZ3BnIHN0YXRlICovCisJCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSAmJiBlbmFibGUpCisJCQlzbXVfc2V0X2dmeF9jZ3BnKCZhZGV2LT5zbXUsIGVuYWJsZSk7CiAJCWdmeF92OV8wX3VwZGF0ZV9nZnhfY2dfcG93ZXJfZ2F0aW5nKGFkZXYsIGVuYWJsZSk7CiAKIAkJLyogdXBkYXRlIG1nY2cgc3RhdGUgKi8KQEAgLTQyOTMsNiArNDg3Niw4IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKIAljYXNlIENISVBfVkVHQTEyOgogCWNhc2UgQ0hJUF9WRUdBMjA6CiAJY2FzZSBDSElQX1JBVkVOOgorCWNhc2UgQ0hJUF9BUkNUVVJVUzoKKwljYXNlIENISVBfUkVOT0lSOgogCQlnZnhfdjlfMF91cGRhdGVfZ2Z4X2Nsb2NrX2dhdGluZyhhZGV2LAogCQkJCQkJIHN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKIAkJYnJlYWs7CkBAIC00MzM0LDE0ICs0OTE5LDE2IEBAIHN0YXRpYyB2b2lkIGdmeF92OV8wX2dldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsIHUzMiAqZmxhZ3MpCiAJaWYgKGRhdGEgJiBDUF9NRU1fU0xQX0NOVExfX0NQX01FTV9MU19FTl9NQVNLKQogCQkqZmxhZ3MgfD0gQU1EX0NHX1NVUFBPUlRfR0ZYX0NQX0xTIHwgQU1EX0NHX1NVUFBPUlRfR0ZYX01HTFM7CiAKLQkvKiBBTURfQ0dfU1VQUE9SVF9HRlhfM0RfQ0dDRyAqLwotCWRhdGEgPSBSUkVHMzJfU09DMTUoR0MsIDAsIG1tUkxDX0NHQ0dfQ0dMU19DVFJMXzNEKTsKLQlpZiAoZGF0YSAmIFJMQ19DR0NHX0NHTFNfQ1RSTF8zRF9fQ0dDR19FTl9NQVNLKQotCQkqZmxhZ3MgfD0gQU1EX0NHX1NVUFBPUlRfR0ZYXzNEX0NHQ0c7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX0FSQ1RVUlVTKSB7CisJCS8qIEFNRF9DR19TVVBQT1JUX0dGWF8zRF9DR0NHICovCisJCWRhdGEgPSBSUkVHMzJfU09DMTUoR0MsIDAsIG1tUkxDX0NHQ0dfQ0dMU19DVFJMXzNEKTsKKwkJaWYgKGRhdGEgJiBSTENfQ0dDR19DR0xTX0NUUkxfM0RfX0NHQ0dfRU5fTUFTSykKKwkJCSpmbGFncyB8PSBBTURfQ0dfU1VQUE9SVF9HRlhfM0RfQ0dDRzsKIAotCS8qIEFNRF9DR19TVVBQT1JUX0dGWF8zRF9DR0xTICovCi0JaWYgKGRhdGEgJiBSTENfQ0dDR19DR0xTX0NUUkxfM0RfX0NHTFNfRU5fTUFTSykKLQkJKmZsYWdzIHw9IEFNRF9DR19TVVBQT1JUX0dGWF8zRF9DR0xTOworCQkvKiBBTURfQ0dfU1VQUE9SVF9HRlhfM0RfQ0dMUyAqLworCQlpZiAoZGF0YSAmIFJMQ19DR0NHX0NHTFNfQ1RSTF8zRF9fQ0dMU19FTl9NQVNLKQorCQkJKmZsYWdzIHw9IEFNRF9DR19TVVBQT1JUX0dGWF8zRF9DR0xTOworCX0KIH0KIAogc3RhdGljIHU2NCBnZnhfdjlfMF9yaW5nX2dldF9ycHRyX2dmeChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCkBAIC01MTM3LDEyICs1NzI0LDQyMyBAQCBzdGF0aWMgaW50IGdmeF92OV8wX3ByaXZfaW5zdF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiB9CiAKIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBfcHJvY2Vzc19yYXNfZGF0YV9jYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJc3RydWN0IHJhc19lcnJfZGF0YSAqZXJyX2RhdGEsCiAJCXN0cnVjdCBhbWRncHVfaXZfZW50cnkgKmVudHJ5KQogewogCS8qIFRPRE8gdWUgd2lsbCB0cmlnZ2VyIGFuIGludGVycnVwdC4gKi8KIAlrZ2Qya2ZkX3NldF9zcmFtX2VjY19mbGFnKGFkZXYtPmtmZC5kZXYpOworCWlmIChhZGV2LT5nZnguZnVuY3MtPnF1ZXJ5X3Jhc19lcnJvcl9jb3VudCkKKwkJYWRldi0+Z2Z4LmZ1bmNzLT5xdWVyeV9yYXNfZXJyb3JfY291bnQoYWRldiwgZXJyX2RhdGEpOwogCWFtZGdwdV9yYXNfcmVzZXRfZ3B1KGFkZXYsIDApOwotCXJldHVybiBBTURHUFVfUkFTX1VFOworCXJldHVybiBBTURHUFVfUkFTX1NVQ0NFU1M7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeworCWNvbnN0IGNoYXIgKm5hbWU7CisJdWludDMyX3QgaXA7CisJdWludDMyX3QgaW5zdDsKKwl1aW50MzJfdCBzZWc7CisJdWludDMyX3QgcmVnX29mZnNldDsKKwl1aW50MzJfdCBwZXJfc2VfaW5zdGFuY2U7CisJaW50MzJfdCBudW1faW5zdGFuY2U7CisJdWludDMyX3Qgc2VjX2NvdW50X21hc2s7CisJdWludDMyX3QgZGVkX2NvdW50X21hc2s7Cit9IGdmeF9yYXNfZWRjX3JlZ3NbXSA9IHsKKwl7ICJDUENfU0NSQVRDSCIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUENfRURDX1NDUkFUQ0hfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKENQQ19FRENfU0NSQVRDSF9DTlQsIFNFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhDUENfRURDX1NDUkFUQ0hfQ05ULCBERURfQ09VTlQpIH0sCisJeyAiQ1BDX1VDT0RFIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQQ19FRENfVUNPREVfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKENQQ19FRENfVUNPREVfQ05ULCBTRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soQ1BDX0VEQ19VQ09ERV9DTlQsIERFRF9DT1VOVCkgfSwKKwl7ICJDUEZfUk9RX01FMSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUEZfRURDX1JPUV9DTlQpLCAwLCAxLAorCSAgUkVHX0ZJRUxEX01BU0soQ1BGX0VEQ19ST1FfQ05ULCBDT1VOVF9NRTEpLCAwIH0sCisJeyAiQ1BGX1JPUV9NRTIiLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BGX0VEQ19ST1FfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKENQRl9FRENfUk9RX0NOVCwgQ09VTlRfTUUyKSwgMCB9LAorCXsgIkNQRl9UQUciLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BGX0VEQ19UQUdfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKENQRl9FRENfVEFHX0NOVCwgU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKENQRl9FRENfVEFHX0NOVCwgREVEX0NPVU5UKSB9LAorCXsgIkNQR19ETUFfUk9RIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQR19FRENfRE1BX0NOVCksIDAsIDEsCisJICBSRUdfRklFTERfTUFTSyhDUEdfRURDX0RNQV9DTlQsIFJPUV9DT1VOVCksIDAgfSwKKwl7ICJDUEdfRE1BX1RBRyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUEdfRURDX0RNQV9DTlQpLCAwLCAxLAorCSAgUkVHX0ZJRUxEX01BU0soQ1BHX0VEQ19ETUFfQ05ULCBUQUdfU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKENQR19FRENfRE1BX0NOVCwgVEFHX0RFRF9DT1VOVCkgfSwKKwl7ICJDUEdfVEFHIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQR19FRENfVEFHX0NOVCksIDAsIDEsCisJICBSRUdfRklFTERfTUFTSyhDUEdfRURDX1RBR19DTlQsIFNFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhDUEdfRURDX1RBR19DTlQsIERFRF9DT1VOVCkgfSwKKwl7ICJEQ19DU0lOVk9DIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbURDX0VEQ19DU0lOVk9DX0NOVCksIDAsIDEsCisJICBSRUdfRklFTERfTUFTSyhEQ19FRENfQ1NJTlZPQ19DTlQsIENPVU5UX01FMSksIDAgfSwKKwl7ICJEQ19SRVNUT1JFIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbURDX0VEQ19SRVNUT1JFX0NOVCksIDAsIDEsCisJICBSRUdfRklFTERfTUFTSyhEQ19FRENfUkVTVE9SRV9DTlQsIENPVU5UX01FMSksIDAgfSwKKwl7ICJEQ19TVEFURSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1EQ19FRENfU1RBVEVfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKERDX0VEQ19TVEFURV9DTlQsIENPVU5UX01FMSksIDAgfSwKKwl7ICJHRFNfTUVNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdEU19FRENfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKEdEU19FRENfQ05ULCBHRFNfTUVNX1NFQyksCisJICBSRUdfRklFTERfTUFTSyhHRFNfRURDX0NOVCwgR0RTX01FTV9ERUQpIH0sCisJeyAiR0RTX0lOUFVUX1FVRVVFIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdEU19FRENfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKEdEU19FRENfQ05ULCBHRFNfSU5QVVRfUVVFVUVfU0VEKSwgMCB9LAorCXsgIkdEU19NRTBfQ1NfUElQRV9NRU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0RTX0VEQ19PQV9QSFlfQ05UKSwKKwkgIDAsIDEsIFJFR19GSUVMRF9NQVNLKEdEU19FRENfT0FfUEhZX0NOVCwgTUUwX0NTX1BJUEVfTUVNX1NFQyksCisJICBSRUdfRklFTERfTUFTSyhHRFNfRURDX09BX1BIWV9DTlQsIE1FMF9DU19QSVBFX01FTV9ERUQpIH0sCisJeyAiR0RTX09BX1BIWV9QSFlfQ01EX1JBTV9NRU0iLAorCSAgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdEU19FRENfT0FfUEhZX0NOVCksIDAsIDEsCisJICBSRUdfRklFTERfTUFTSyhHRFNfRURDX09BX1BIWV9DTlQsIFBIWV9DTURfUkFNX01FTV9TRUMpLAorCSAgUkVHX0ZJRUxEX01BU0soR0RTX0VEQ19PQV9QSFlfQ05ULCBQSFlfQ01EX1JBTV9NRU1fREVEKSB9LAorCXsgIkdEU19PQV9QSFlfUEhZX0RBVEFfUkFNX01FTSIsCisJICBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0RTX0VEQ19PQV9QSFlfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKEdEU19FRENfT0FfUEhZX0NOVCwgUEhZX0RBVEFfUkFNX01FTV9TRUQpLCAwIH0sCisJeyAiR0RTX09BX1BJUEVfTUUxX1BJUEUwX1BJUEVfTUVNIiwKKwkgIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HRFNfRURDX09BX1BJUEVfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKEdEU19FRENfT0FfUElQRV9DTlQsIE1FMV9QSVBFMF9QSVBFX01FTV9TRUMpLAorCSAgUkVHX0ZJRUxEX01BU0soR0RTX0VEQ19PQV9QSVBFX0NOVCwgTUUxX1BJUEUwX1BJUEVfTUVNX0RFRCkgfSwKKwl7ICJHRFNfT0FfUElQRV9NRTFfUElQRTFfUElQRV9NRU0iLAorCSAgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdEU19FRENfT0FfUElQRV9DTlQpLCAwLCAxLAorCSAgUkVHX0ZJRUxEX01BU0soR0RTX0VEQ19PQV9QSVBFX0NOVCwgTUUxX1BJUEUxX1BJUEVfTUVNX1NFQyksCisJICBSRUdfRklFTERfTUFTSyhHRFNfRURDX09BX1BJUEVfQ05ULCBNRTFfUElQRTFfUElQRV9NRU1fREVEKSB9LAorCXsgIkdEU19PQV9QSVBFX01FMV9QSVBFMl9QSVBFX01FTSIsCisJICBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0RTX0VEQ19PQV9QSVBFX0NOVCksIDAsIDEsCisJICBSRUdfRklFTERfTUFTSyhHRFNfRURDX09BX1BJUEVfQ05ULCBNRTFfUElQRTJfUElQRV9NRU1fU0VDKSwKKwkgIFJFR19GSUVMRF9NQVNLKEdEU19FRENfT0FfUElQRV9DTlQsIE1FMV9QSVBFMl9QSVBFX01FTV9ERUQpIH0sCisJeyAiR0RTX09BX1BJUEVfTUUxX1BJUEUzX1BJUEVfTUVNIiwKKwkgIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HRFNfRURDX09BX1BJUEVfQ05UKSwgMCwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKEdEU19FRENfT0FfUElQRV9DTlQsIE1FMV9QSVBFM19QSVBFX01FTV9TRUMpLAorCSAgUkVHX0ZJRUxEX01BU0soR0RTX0VEQ19PQV9QSVBFX0NOVCwgTUUxX1BJUEUzX1BJUEVfTUVNX0RFRCkgfSwKKwl7ICJTUElfU1JfTUVNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNQSV9FRENfQ05UKSwgMSwgMSwKKwkgIFJFR19GSUVMRF9NQVNLKFNQSV9FRENfQ05ULCBTUElfU1JfTUVNX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJUQV9GU19ERklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQV9FRENfQ05UKSwgMSwgMTYsCisJICBSRUdfRklFTERfTUFTSyhUQV9FRENfQ05ULCBUQV9GU19ERklGT19TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soVEFfRURDX0NOVCwgVEFfRlNfREZJRk9fREVEX0NPVU5UKSB9LAorCXsgIlRBX0ZTX0FGSUZPIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRBX0VEQ19DTlQpLCAxLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFRBX0VEQ19DTlQsIFRBX0ZTX0FGSUZPX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJUQV9GTF9MRklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQV9FRENfQ05UKSwgMSwgMTYsCisJICBSRUdfRklFTERfTUFTSyhUQV9FRENfQ05ULCBUQV9GTF9MRklGT19TRURfQ09VTlQpLCAwIH0sCisJeyAiVEFfRlhfTEZJRk8iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVEFfRURDX0NOVCksIDEsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVEFfRURDX0NOVCwgVEFfRlhfTEZJRk9fU0VEX0NPVU5UKSwgMCB9LAorCXsgIlRBX0ZTX0NGSUZPIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRBX0VEQ19DTlQpLCAxLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFRBX0VEQ19DTlQsIFRBX0ZTX0NGSUZPX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJUQ0FfSE9MRV9GSUZPIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDQV9FRENfQ05UKSwgMCwgMiwKKwkgIFJFR19GSUVMRF9NQVNLKFRDQV9FRENfQ05ULCBIT0xFX0ZJRk9fU0VEX0NPVU5UKSwgMCB9LAorCXsgIlRDQV9SRVFfRklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ0FfRURDX0NOVCksIDAsIDIsCisJICBSRUdfRklFTERfTUFTSyhUQ0FfRURDX0NOVCwgUkVRX0ZJRk9fU0VEX0NPVU5UKSwgMCB9LAorCXsgIlRDQ19DQUNIRV9EQVRBIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDQ19FRENfQ05UKSwgMCwgMTYsCisJICBSRUdfRklFTERfTUFTSyhUQ0NfRURDX0NOVCwgQ0FDSEVfREFUQV9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soVENDX0VEQ19DTlQsIENBQ0hFX0RBVEFfREVEX0NPVU5UKSB9LAorCXsgIlRDQ19DQUNIRV9ESVJUWSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ0NfRURDX0NOVCksIDAsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVENDX0VEQ19DTlQsIENBQ0hFX0RJUlRZX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhUQ0NfRURDX0NOVCwgQ0FDSEVfRElSVFlfREVEX0NPVU5UKSB9LAorCXsgIlRDQ19ISUdIX1JBVEVfVEFHIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDQ19FRENfQ05UKSwgMCwgMTYsCisJICBSRUdfRklFTERfTUFTSyhUQ0NfRURDX0NOVCwgSElHSF9SQVRFX1RBR19TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soVENDX0VEQ19DTlQsIEhJR0hfUkFURV9UQUdfREVEX0NPVU5UKSB9LAorCXsgIlRDQ19MT1dfUkFURV9UQUciLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVENDX0VEQ19DTlQpLCAwLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFRDQ19FRENfQ05ULCBMT1dfUkFURV9UQUdfU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFRDQ19FRENfQ05ULCBMT1dfUkFURV9UQUdfREVEX0NPVU5UKSB9LAorCXsgIlRDQ19TUkNfRklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ0NfRURDX0NOVCksIDAsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVENDX0VEQ19DTlQsIFNSQ19GSUZPX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhUQ0NfRURDX0NOVCwgU1JDX0ZJRk9fREVEX0NPVU5UKSB9LAorCXsgIlRDQ19JTl9VU0VfREVDIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDQ19FRENfQ05UKSwgMCwgMTYsCisJICBSRUdfRklFTERfTUFTSyhUQ0NfRURDX0NOVCwgSU5fVVNFX0RFQ19TRURfQ09VTlQpLCAwIH0sCisJeyAiVENDX0lOX1VTRV9UUkFOU0ZFUiIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ0NfRURDX0NOVCksIDAsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVENDX0VEQ19DTlQsIElOX1VTRV9UUkFOU0ZFUl9TRURfQ09VTlQpLCAwIH0sCisJeyAiVENDX0xBVEVOQ1lfRklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ0NfRURDX0NOVCksIDAsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVENDX0VEQ19DTlQsIExBVEVOQ1lfRklGT19TRURfQ09VTlQpLCAwIH0sCisJeyAiVENDX1JFVFVSTl9EQVRBIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDQ19FRENfQ05UKSwgMCwgMTYsCisJICBSRUdfRklFTERfTUFTSyhUQ0NfRURDX0NOVCwgUkVUVVJOX0RBVEFfU0VEX0NPVU5UKSwgMCB9LAorCXsgIlRDQ19SRVRVUk5fQ09OVFJPTCIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ0NfRURDX0NOVCksIDAsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVENDX0VEQ19DTlQsIFJFVFVSTl9DT05UUk9MX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJUQ0NfVUNfQVRPTUlDX0ZJRk8iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVENDX0VEQ19DTlQpLCAwLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFRDQ19FRENfQ05ULCBVQ19BVE9NSUNfRklGT19TRURfQ09VTlQpLCAwIH0sCisJeyAiVENDX1dSSVRFX1JFVFVSTiIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ0NfRURDX0NOVDIpLCAwLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFRDQ19FRENfQ05UMiwgV1JJVEVfUkVUVVJOX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJUQ0NfV1JJVEVfQ0FDSEVfUkVBRCIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ0NfRURDX0NOVDIpLCAwLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFRDQ19FRENfQ05UMiwgV1JJVEVfQ0FDSEVfUkVBRF9TRURfQ09VTlQpLCAwIH0sCisJeyAiVENDX1NSQ19GSUZPX05FWFRfUkFNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDQ19FRENfQ05UMiksIDAsCisJICAxNiwgUkVHX0ZJRUxEX01BU0soVENDX0VEQ19DTlQyLCBTUkNfRklGT19ORVhUX1JBTV9TRURfQ09VTlQpLCAwIH0sCisJeyAiVENDX0xBVEVOQ1lfRklGT19ORVhUX1JBTSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ0NfRURDX0NOVDIpLAorCSAgMCwgMTYsIFJFR19GSUVMRF9NQVNLKFRDQ19FRENfQ05UMiwgTEFURU5DWV9GSUZPX05FWFRfUkFNX1NFRF9DT1VOVCksCisJICAwIH0sCisJeyAiVENDX0NBQ0hFX1RBR19QUk9CRV9GSUZPIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDQ19FRENfQ05UMiksIDAsCisJICAxNiwgUkVHX0ZJRUxEX01BU0soVENDX0VEQ19DTlQyLCBDQUNIRV9UQUdfUFJPQkVfRklGT19TRURfQ09VTlQpLCAwIH0sCisJeyAiVENDX1dSUkVUX1RBR19XUklURV9SRVRVUk4iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVENDX0VEQ19DTlQyKSwKKwkgIDAsIDE2LCBSRUdfRklFTERfTUFTSyhUQ0NfRURDX0NOVDIsIFdSUkVUX1RBR19XUklURV9SRVRVUk5fU0VEX0NPVU5UKSwKKwkgIDAgfSwKKwl7ICJUQ0NfQVRPTUlDX1JFVFVSTl9CVUZGRVIiLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVENDX0VEQ19DTlQyKSwgMCwKKwkgIDE2LCBSRUdfRklFTERfTUFTSyhUQ0NfRURDX0NOVDIsIEFUT01JQ19SRVRVUk5fQlVGRkVSX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJUQ0lfV1JJVEVfUkFNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDSV9FRENfQ05UKSwgMCwgNzIsCisJICBSRUdfRklFTERfTUFTSyhUQ0lfRURDX0NOVCwgV1JJVEVfUkFNX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJUQ1BfQ0FDSEVfUkFNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDUF9FRENfQ05UX05FVyksIDEsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVENQX0VEQ19DTlRfTkVXLCBDQUNIRV9SQU1fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFRDUF9FRENfQ05UX05FVywgQ0FDSEVfUkFNX0RFRF9DT1VOVCkgfSwKKwl7ICJUQ1BfTEZJRk9fUkFNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDUF9FRENfQ05UX05FVyksIDEsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVENQX0VEQ19DTlRfTkVXLCBMRklGT19SQU1fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFRDUF9FRENfQ05UX05FVywgTEZJRk9fUkFNX0RFRF9DT1VOVCkgfSwKKwl7ICJUQ1BfQ01EX0ZJRk8iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVENQX0VEQ19DTlRfTkVXKSwgMSwgMTYsCisJICBSRUdfRklFTERfTUFTSyhUQ1BfRURDX0NOVF9ORVcsIENNRF9GSUZPX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJUQ1BfVk1fRklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ1BfRURDX0NOVF9ORVcpLCAxLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFRDUF9FRENfQ05UX05FVywgVk1fRklGT19TRUNfQ09VTlQpLCAwIH0sCisJeyAiVENQX0RCX1JBTSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ1BfRURDX0NOVF9ORVcpLCAxLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFRDUF9FRENfQ05UX05FVywgREJfUkFNX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJUQ1BfVVRDTDFfTEZJRk8wIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDUF9FRENfQ05UX05FVyksIDEsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVENQX0VEQ19DTlRfTkVXLCBVVENMMV9MRklGTzBfU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFRDUF9FRENfQ05UX05FVywgVVRDTDFfTEZJRk8wX0RFRF9DT1VOVCkgfSwKKwl7ICJUQ1BfVVRDTDFfTEZJRk8xIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDUF9FRENfQ05UX05FVyksIDEsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVENQX0VEQ19DTlRfTkVXLCBVVENMMV9MRklGTzFfU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFRDUF9FRENfQ05UX05FVywgVVRDTDFfTEZJRk8xX0RFRF9DT1VOVCkgfSwKKwl7ICJURF9TU19GSUZPX0xPIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVREX0VEQ19DTlQpLCAxLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFREX0VEQ19DTlQsIFNTX0ZJRk9fTE9fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFREX0VEQ19DTlQsIFNTX0ZJRk9fTE9fREVEX0NPVU5UKSB9LAorCXsgIlREX1NTX0ZJRk9fSEkiLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVERfRURDX0NOVCksIDEsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soVERfRURDX0NOVCwgU1NfRklGT19ISV9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soVERfRURDX0NOVCwgU1NfRklGT19ISV9ERURfQ09VTlQpIH0sCisJeyAiVERfQ1NfRklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1URF9FRENfQ05UKSwgMSwgMTYsCisJICBSRUdfRklFTERfTUFTSyhURF9FRENfQ05ULCBDU19GSUZPX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJTUV9MRFNfRCIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUV9FRENfQ05UKSwgMSwgMTYsCisJICBSRUdfRklFTERfTUFTSyhTUV9FRENfQ05ULCBMRFNfRF9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soU1FfRURDX0NOVCwgTERTX0RfREVEX0NPVU5UKSB9LAorCXsgIlNRX0xEU19JIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRX0VEQ19DTlQpLCAxLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFNRX0VEQ19DTlQsIExEU19JX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhTUV9FRENfQ05ULCBMRFNfSV9ERURfQ09VTlQpIH0sCisJeyAiU1FfU0dQUiIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUV9FRENfQ05UKSwgMSwgMTYsCisJICBSRUdfRklFTERfTUFTSyhTUV9FRENfQ05ULCBTR1BSX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhTUV9FRENfQ05ULCBTR1BSX0RFRF9DT1VOVCkgfSwKKwl7ICJTUV9WR1BSMCIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUV9FRENfQ05UKSwgMSwgMTYsCisJICBSRUdfRklFTERfTUFTSyhTUV9FRENfQ05ULCBWR1BSMF9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soU1FfRURDX0NOVCwgVkdQUjBfREVEX0NPVU5UKSB9LAorCXsgIlNRX1ZHUFIxIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRX0VEQ19DTlQpLCAxLCAxNiwKKwkgIFJFR19GSUVMRF9NQVNLKFNRX0VEQ19DTlQsIFZHUFIxX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhTUV9FRENfQ05ULCBWR1BSMV9ERURfQ09VTlQpIH0sCisJeyAiU1FfVkdQUjIiLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FfRURDX0NOVCksIDEsIDE2LAorCSAgUkVHX0ZJRUxEX01BU0soU1FfRURDX0NOVCwgVkdQUjJfU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFNRX0VEQ19DTlQsIFZHUFIyX0RFRF9DT1VOVCkgfSwKKwl7ICJTUV9WR1BSMyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUV9FRENfQ05UKSwgMSwgMTYsCisJICBSRUdfRklFTERfTUFTSyhTUV9FRENfQ05ULCBWR1BSM19TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soU1FfRURDX0NOVCwgVkdQUjNfREVEX0NPVU5UKSB9LAorCXsgIlNRQ19EQVRBX0NVMF9XUklURV9EQVRBX0JVRiIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUUNfRURDX0NOVCksCisJICAxLCA2LCBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVCwgREFUQV9DVTBfV1JJVEVfREFUQV9CVUZfU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05ULCBEQVRBX0NVMF9XUklURV9EQVRBX0JVRl9ERURfQ09VTlQpIH0sCisJeyAiU1FDX0RBVEFfQ1UwX1VUQ0wxX0xGSUZPIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRQ19FRENfQ05UKSwgMSwKKwkgIDYsIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05ULCBEQVRBX0NVMF9VVENMMV9MRklGT19TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQsIERBVEFfQ1UwX1VUQ0wxX0xGSUZPX0RFRF9DT1VOVCkgfSwKKwl7ICJTUUNfREFUQV9DVTFfV1JJVEVfREFUQV9CVUYiLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0VEQ19DTlQpLAorCSAgMSwgNiwgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQsIERBVEFfQ1UxX1dSSVRFX0RBVEFfQlVGX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVCwgREFUQV9DVTFfV1JJVEVfREFUQV9CVUZfREVEX0NPVU5UKSB9LAorCXsgIlNRQ19EQVRBX0NVMV9VVENMMV9MRklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUUNfRURDX0NOVCksIDEsCisJICA2LCBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVCwgREFUQV9DVTFfVVRDTDFfTEZJRk9fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05ULCBEQVRBX0NVMV9VVENMMV9MRklGT19ERURfQ09VTlQpIH0sCisJeyAiU1FDX0RBVEFfQ1UyX1dSSVRFX0RBVEFfQlVGIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRQ19FRENfQ05UKSwKKwkgIDEsIDYsIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05ULCBEQVRBX0NVMl9XUklURV9EQVRBX0JVRl9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQsIERBVEFfQ1UyX1dSSVRFX0RBVEFfQlVGX0RFRF9DT1VOVCkgfSwKKwl7ICJTUUNfREFUQV9DVTJfVVRDTDFfTEZJRk8iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0VEQ19DTlQpLCAxLAorCSAgNiwgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQsIERBVEFfQ1UyX1VUQ0wxX0xGSUZPX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVCwgREFUQV9DVTJfVVRDTDFfTEZJRk9fREVEX0NPVU5UKSB9LAorCXsgIlNRQ19JTlNUX0JBTktBX1RBR19SQU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0VEQ19DTlQyKSwgMSwKKwkgIDYsIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05UMiwgSU5TVF9CQU5LQV9UQUdfUkFNX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDIsIElOU1RfQkFOS0FfVEFHX1JBTV9ERURfQ09VTlQpIH0sCisJeyAiU1FDX0lOU1RfQkFOS0FfQkFOS19SQU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0VEQ19DTlQyKSwgMSwKKwkgIDYsIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05UMiwgSU5TVF9CQU5LQV9CQU5LX1JBTV9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQyLCBJTlNUX0JBTktBX0JBTktfUkFNX0RFRF9DT1VOVCkgfSwKKwl7ICJTUUNfREFUQV9CQU5LQV9UQUdfUkFNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRQ19FRENfQ05UMiksIDEsCisJICA2LCBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDIsIERBVEFfQkFOS0FfVEFHX1JBTV9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQyLCBEQVRBX0JBTktBX1RBR19SQU1fREVEX0NPVU5UKSB9LAorCXsgIlNRQ19EQVRBX0JBTktBX0JBTktfUkFNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRQ19FRENfQ05UMiksIDEsCisJICA2LCBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDIsIERBVEFfQkFOS0FfQkFOS19SQU1fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05UMiwgREFUQV9CQU5LQV9CQU5LX1JBTV9ERURfQ09VTlQpIH0sCisJeyAiU1FDX0lOU1RfQkFOS0FfVVRDTDFfTUlTU19GSUZPIiwKKwkgIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUUNfRURDX0NOVDIpLCAxLCA2LAorCSAgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQyLCBJTlNUX0JBTktBX1VUQ0wxX01JU1NfRklGT19TRURfQ09VTlQpLAorCSAgMCB9LAorCXsgIlNRQ19JTlNUX0JBTktBX01JU1NfRklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUUNfRURDX0NOVDIpLCAxLAorCSAgNiwgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQyLCBJTlNUX0JBTktBX01JU1NfRklGT19TRURfQ09VTlQpLCAwIH0sCisJeyAiU1FDX0RBVEFfQkFOS0FfSElUX0ZJRk8iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0VEQ19DTlQyKSwgMSwKKwkgIDYsIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05UMiwgREFUQV9CQU5LQV9ISVRfRklGT19TRURfQ09VTlQpLCAwIH0sCisJeyAiU1FDX0RBVEFfQkFOS0FfTUlTU19GSUZPIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRQ19FRENfQ05UMiksIDEsCisJICA2LCBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDIsIERBVEFfQkFOS0FfTUlTU19GSUZPX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJTUUNfREFUQV9CQU5LQV9ESVJUWV9CSVRfUkFNIiwKKwkgIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUUNfRURDX0NOVDIpLCAxLCA2LAorCSAgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQyLCBEQVRBX0JBTktBX0RJUlRZX0JJVF9SQU1fU0VEX0NPVU5UKSwgMCB9LAorCXsgIlNRQ19JTlNUX1VUQ0wxX0xGSUZPIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRQ19FRENfQ05UMiksIDEsIDYsCisJICBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDIsIElOU1RfVVRDTDFfTEZJRk9fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05UMiwgSU5TVF9VVENMMV9MRklGT19ERURfQ09VTlQpIH0sCisJeyAiU1FDX0lOU1RfQkFOS0JfVEFHX1JBTSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUUNfRURDX0NOVDMpLCAxLAorCSAgNiwgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQzLCBJTlNUX0JBTktCX1RBR19SQU1fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05UMywgSU5TVF9CQU5LQl9UQUdfUkFNX0RFRF9DT1VOVCkgfSwKKwl7ICJTUUNfSU5TVF9CQU5LQl9CQU5LX1JBTSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUUNfRURDX0NOVDMpLCAxLAorCSAgNiwgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQzLCBJTlNUX0JBTktCX0JBTktfUkFNX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDMsIElOU1RfQkFOS0JfQkFOS19SQU1fREVEX0NPVU5UKSB9LAorCXsgIlNRQ19EQVRBX0JBTktCX1RBR19SQU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0VEQ19DTlQzKSwgMSwKKwkgIDYsIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05UMywgREFUQV9CQU5LQl9UQUdfUkFNX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDMsIERBVEFfQkFOS0JfVEFHX1JBTV9ERURfQ09VTlQpIH0sCisJeyAiU1FDX0RBVEFfQkFOS0JfQkFOS19SQU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0VEQ19DTlQzKSwgMSwKKwkgIDYsIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05UMywgREFUQV9CQU5LQl9CQU5LX1JBTV9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQzLCBEQVRBX0JBTktCX0JBTktfUkFNX0RFRF9DT1VOVCkgfSwKKwl7ICJTUUNfSU5TVF9CQU5LQl9VVENMMV9NSVNTX0ZJRk8iLAorCSAgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRQ19FRENfQ05UMyksIDEsIDYsCisJICBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDMsIElOU1RfQkFOS0JfVVRDTDFfTUlTU19GSUZPX1NFRF9DT1VOVCksCisJICAwIH0sCisJeyAiU1FDX0lOU1RfQkFOS0JfTUlTU19GSUZPIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRQ19FRENfQ05UMyksIDEsCisJICA2LCBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDMsIElOU1RfQkFOS0JfTUlTU19GSUZPX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJTUUNfREFUQV9CQU5LQl9ISVRfRklGTyIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1TUUNfRURDX0NOVDMpLCAxLAorCSAgNiwgUkVHX0ZJRUxEX01BU0soU1FDX0VEQ19DTlQzLCBEQVRBX0JBTktCX0hJVF9GSUZPX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJTUUNfREFUQV9CQU5LQl9NSVNTX0ZJRk8iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0VEQ19DTlQzKSwgMSwKKwkgIDYsIFJFR19GSUVMRF9NQVNLKFNRQ19FRENfQ05UMywgREFUQV9CQU5LQl9NSVNTX0ZJRk9fU0VEX0NPVU5UKSwgMCB9LAorCXsgIlNRQ19EQVRBX0JBTktCX0RJUlRZX0JJVF9SQU0iLAorCSAgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNRQ19FRENfQ05UMyksIDEsIDYsCisJICBSRUdfRklFTERfTUFTSyhTUUNfRURDX0NOVDMsIERBVEFfQkFOS0JfRElSVFlfQklUX1JBTV9TRURfQ09VTlQpLCAwIH0sCisJeyAiRUFfRFJBTVJEX0NNRE1FTSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HQ0VBX0VEQ19DTlQpLCAwLCAzMiwKKwkgIFJFR19GSUVMRF9NQVNLKEdDRUFfRURDX0NOVCwgRFJBTVJEX0NNRE1FTV9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05ULCBEUkFNUkRfQ01ETUVNX0RFRF9DT1VOVCkgfSwKKwl7ICJFQV9EUkFNV1JfQ01ETUVNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdDRUFfRURDX0NOVCksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05ULCBEUkFNV1JfQ01ETUVNX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhHQ0VBX0VEQ19DTlQsIERSQU1XUl9DTURNRU1fREVEX0NPVU5UKSB9LAorCXsgIkVBX0RSQU1XUl9EQVRBTUVNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdDRUFfRURDX0NOVCksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05ULCBEUkFNV1JfREFUQU1FTV9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05ULCBEUkFNV1JfREFUQU1FTV9ERURfQ09VTlQpIH0sCisJeyAiRUFfUlJFVF9UQUdNRU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0NFQV9FRENfQ05UKSwgMCwgMzIsCisJICBSRUdfRklFTERfTUFTSyhHQ0VBX0VEQ19DTlQsIFJSRVRfVEFHTUVNX1NFQ19DT1VOVCksCisJICBSRUdfRklFTERfTUFTSyhHQ0VBX0VEQ19DTlQsIFJSRVRfVEFHTUVNX0RFRF9DT1VOVCkgfSwKKwl7ICJFQV9XUkVUX1RBR01FTSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HQ0VBX0VEQ19DTlQpLCAwLCAzMiwKKwkgIFJFR19GSUVMRF9NQVNLKEdDRUFfRURDX0NOVCwgV1JFVF9UQUdNRU1fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKEdDRUFfRURDX0NOVCwgV1JFVF9UQUdNRU1fREVEX0NPVU5UKSB9LAorCXsgIkVBX0RSQU1SRF9QQUdFTUVNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdDRUFfRURDX0NOVCksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05ULCBEUkFNUkRfUEFHRU1FTV9TRURfQ09VTlQpLCAwIH0sCisJeyAiRUFfRFJBTVdSX1BBR0VNRU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0NFQV9FRENfQ05UKSwgMCwgMzIsCisJICBSRUdfRklFTERfTUFTSyhHQ0VBX0VEQ19DTlQsIERSQU1XUl9QQUdFTUVNX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJFQV9JT1JEX0NNRE1FTSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HQ0VBX0VEQ19DTlQpLCAwLCAzMiwKKwkgIFJFR19GSUVMRF9NQVNLKEdDRUFfRURDX0NOVCwgSU9SRF9DTURNRU1fU0VEX0NPVU5UKSwgMCB9LAorCXsgIkVBX0lPV1JfQ01ETUVNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdDRUFfRURDX0NOVCksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05ULCBJT1dSX0NNRE1FTV9TRURfQ09VTlQpLCAwIH0sCisJeyAiRUFfSU9XUl9EQVRBTUVNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdDRUFfRURDX0NOVCksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05ULCBJT1dSX0RBVEFNRU1fU0VEX0NPVU5UKSwgMCB9LAorCXsgIkdNSVJEX0NNRE1FTSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HQ0VBX0VEQ19DTlQyKSwgMCwgMzIsCisJICBSRUdfRklFTERfTUFTSyhHQ0VBX0VEQ19DTlQyLCBHTUlSRF9DTURNRU1fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKEdDRUFfRURDX0NOVDIsIEdNSVJEX0NNRE1FTV9ERURfQ09VTlQpIH0sCisJeyAiR01JV1JfQ01ETUVNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdDRUFfRURDX0NOVDIpLCAwLCAzMiwKKwkgIFJFR19GSUVMRF9NQVNLKEdDRUFfRURDX0NOVDIsIEdNSVdSX0NNRE1FTV9TRUNfQ09VTlQpLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05UMiwgR01JV1JfQ01ETUVNX0RFRF9DT1VOVCkgfSwKKwl7ICJHTUlXUl9EQVRBTUVNIiwgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdDRUFfRURDX0NOVDIpLCAwLCAzMiwKKwkgIFJFR19GSUVMRF9NQVNLKEdDRUFfRURDX0NOVDIsIEdNSVdSX0RBVEFNRU1fU0VDX0NPVU5UKSwKKwkgIFJFR19GSUVMRF9NQVNLKEdDRUFfRURDX0NOVDIsIEdNSVdSX0RBVEFNRU1fREVEX0NPVU5UKSB9LAorCXsgIkdNSVJEX1BBR0VNRU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0NFQV9FRENfQ05UMiksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05UMiwgR01JUkRfUEFHRU1FTV9TRURfQ09VTlQpLCAwIH0sCisJeyAiR01JV1JfUEFHRU1FTSIsIFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HQ0VBX0VEQ19DTlQyKSwgMCwgMzIsCisJICBSRUdfRklFTERfTUFTSyhHQ0VBX0VEQ19DTlQyLCBHTUlXUl9QQUdFTUVNX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJNQU1fRDBNRU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0NFQV9FRENfQ05UMiksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05UMiwgTUFNX0QwTUVNX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJNQU1fRDFNRU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0NFQV9FRENfQ05UMiksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05UMiwgTUFNX0QxTUVNX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJNQU1fRDJNRU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0NFQV9FRENfQ05UMiksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05UMiwgTUFNX0QyTUVNX1NFRF9DT1VOVCksIDAgfSwKKwl7ICJNQU1fRDNNRU0iLCBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0NFQV9FRENfQ05UMiksIDAsIDMyLAorCSAgUkVHX0ZJRUxEX01BU0soR0NFQV9FRENfQ05UMiwgTUFNX0QzTUVNX1NFRF9DT1VOVCksIDAgfSwKK307CisKK3N0YXRpYyBpbnQgZ2Z4X3Y5XzBfcmFzX2Vycm9yX2luamVjdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkgICAgIHZvaWQgKmluamVjdF9pZikKK3sKKwlzdHJ1Y3QgcmFzX2luamVjdF9pZiAqaW5mbyA9IChzdHJ1Y3QgcmFzX2luamVjdF9pZiAqKWluamVjdF9pZjsKKwlpbnQgcmV0OworCXN0cnVjdCB0YV9yYXNfdHJpZ2dlcl9lcnJvcl9pbnB1dCBibG9ja19pbmZvID0geyAwIH07CisKKwlpZiAoYWRldi0+YXNpY190eXBlICE9IENISVBfVkVHQTIwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChpbmZvLT5oZWFkLnN1Yl9ibG9ja19pbmRleCA+PSBBUlJBWV9TSVpFKHJhc19nZnhfc3ViYmxvY2tzKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIXJhc19nZnhfc3ViYmxvY2tzW2luZm8tPmhlYWQuc3ViX2Jsb2NrX2luZGV4XS5uYW1lKQorCQlyZXR1cm4gLUVQRVJNOworCisJaWYgKCEocmFzX2dmeF9zdWJibG9ja3NbaW5mby0+aGVhZC5zdWJfYmxvY2tfaW5kZXhdLmh3X3N1cHBvcnRlZF9lcnJvcl90eXBlICYKKwkgICAgICBpbmZvLT5oZWFkLnR5cGUpKSB7CisJCURSTV9FUlJPUigiR0ZYIFN1YmJsb2NrICVzLCBoYXJkd2FyZSBkbyBub3Qgc3VwcG9ydCB0eXBlIDB4JXhcbiIsCisJCQlyYXNfZ2Z4X3N1YmJsb2Nrc1tpbmZvLT5oZWFkLnN1Yl9ibG9ja19pbmRleF0ubmFtZSwKKwkJCWluZm8tPmhlYWQudHlwZSk7CisJCXJldHVybiAtRVBFUk07CisJfQorCisJaWYgKCEocmFzX2dmeF9zdWJibG9ja3NbaW5mby0+aGVhZC5zdWJfYmxvY2tfaW5kZXhdLnN3X3N1cHBvcnRlZF9lcnJvcl90eXBlICYKKwkgICAgICBpbmZvLT5oZWFkLnR5cGUpKSB7CisJCURSTV9FUlJPUigiR0ZYIFN1YmJsb2NrICVzLCBkcml2ZXIgZG8gbm90IHN1cHBvcnQgdHlwZSAweCV4XG4iLAorCQkJcmFzX2dmeF9zdWJibG9ja3NbaW5mby0+aGVhZC5zdWJfYmxvY2tfaW5kZXhdLm5hbWUsCisJCQlpbmZvLT5oZWFkLnR5cGUpOworCQlyZXR1cm4gLUVQRVJNOworCX0KKworCWJsb2NrX2luZm8uYmxvY2tfaWQgPSBhbWRncHVfcmFzX2Jsb2NrX3RvX3RhKGluZm8tPmhlYWQuYmxvY2spOworCWJsb2NrX2luZm8uc3ViX2Jsb2NrX2luZGV4ID0KKwkJcmFzX2dmeF9zdWJibG9ja3NbaW5mby0+aGVhZC5zdWJfYmxvY2tfaW5kZXhdLnRhX3N1YmJsb2NrOworCWJsb2NrX2luZm8uaW5qZWN0X2Vycm9yX3R5cGUgPSBhbWRncHVfcmFzX2Vycm9yX3RvX3RhKGluZm8tPmhlYWQudHlwZSk7CisJYmxvY2tfaW5mby5hZGRyZXNzID0gaW5mby0+YWRkcmVzczsKKwlibG9ja19pbmZvLnZhbHVlID0gaW5mby0+dmFsdWU7CisKKwltdXRleF9sb2NrKCZhZGV2LT5ncmJtX2lkeF9tdXRleCk7CisJcmV0ID0gcHNwX3Jhc190cmlnZ2VyX2Vycm9yKCZhZGV2LT5wc3AsICZibG9ja19pbmZvKTsKKwltdXRleF91bmxvY2soJmFkZXYtPmdyYm1faWR4X211dGV4KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZ2Z4X3Y5XzBfcXVlcnlfcmFzX2Vycm9yX2NvdW50KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgIHZvaWQgKnJhc19lcnJvcl9zdGF0dXMpCit7CisJc3RydWN0IHJhc19lcnJfZGF0YSAqZXJyX2RhdGEgPSAoc3RydWN0IHJhc19lcnJfZGF0YSAqKXJhc19lcnJvcl9zdGF0dXM7CisJdWludDMyX3Qgc2VjX2NvdW50LCBkZWRfY291bnQ7CisJdWludDMyX3QgaTsKKwl1aW50MzJfdCByZWdfdmFsdWU7CisJdWludDMyX3Qgc2VfaWQsIGluc3RhbmNlX2lkOworCisJaWYgKGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX1ZFR0EyMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwllcnJfZGF0YS0+dWVfY291bnQgPSAwOworCWVycl9kYXRhLT5jZV9jb3VudCA9IDA7CisKKwltdXRleF9sb2NrKCZhZGV2LT5ncmJtX2lkeF9tdXRleCk7CisJZm9yIChzZV9pZCA9IDA7IHNlX2lkIDwgYWRldi0+Z2Z4LmNvbmZpZy5tYXhfc2hhZGVyX2VuZ2luZXM7IHNlX2lkKyspIHsKKwkJZm9yIChpbnN0YW5jZV9pZCA9IDA7IGluc3RhbmNlX2lkIDwgMjU2OyBpbnN0YW5jZV9pZCsrKSB7CisJCQlmb3IgKGkgPSAwOworCQkJICAgICBpIDwgc2l6ZW9mKGdmeF9yYXNfZWRjX3JlZ3MpIC8gc2l6ZW9mKGdmeF9yYXNfZWRjX3JlZ3NbMF0pOworCQkJICAgICBpKyspIHsKKwkJCQlpZiAoc2VfaWQgIT0gMCAmJgorCQkJCSAgICAhZ2Z4X3Jhc19lZGNfcmVnc1tpXS5wZXJfc2VfaW5zdGFuY2UpCisJCQkJCWNvbnRpbnVlOworCQkJCWlmIChpbnN0YW5jZV9pZCA+PSBnZnhfcmFzX2VkY19yZWdzW2ldLm51bV9pbnN0YW5jZSkKKwkJCQkJY29udGludWU7CisKKwkJCQlnZnhfdjlfMF9zZWxlY3Rfc2Vfc2goYWRldiwgc2VfaWQsIDAsCisJCQkJCQkgICAgICBpbnN0YW5jZV9pZCk7CisKKwkJCQlyZWdfdmFsdWUgPSBSUkVHMzIoCisJCQkJCWFkZXYtPnJlZ19vZmZzZXRbZ2Z4X3Jhc19lZGNfcmVnc1tpXS5pcF0KKwkJCQkJCQlbZ2Z4X3Jhc19lZGNfcmVnc1tpXS5pbnN0XQorCQkJCQkJCVtnZnhfcmFzX2VkY19yZWdzW2ldLnNlZ10gKworCQkJCQlnZnhfcmFzX2VkY19yZWdzW2ldLnJlZ19vZmZzZXQpOworCQkJCXNlY19jb3VudCA9IHJlZ192YWx1ZSAmCisJCQkJCSAgICBnZnhfcmFzX2VkY19yZWdzW2ldLnNlY19jb3VudF9tYXNrOworCQkJCWRlZF9jb3VudCA9IHJlZ192YWx1ZSAmCisJCQkJCSAgICBnZnhfcmFzX2VkY19yZWdzW2ldLmRlZF9jb3VudF9tYXNrOworCQkJCWlmIChzZWNfY291bnQpIHsKKwkJCQkJRFJNX0lORk8oCisJCQkJCQkiSW5zdGFuY2VbJWRdWyVkXTogU3ViQmxvY2sgJXMsIFNFQyAlZFxuIiwKKwkJCQkJCXNlX2lkLCBpbnN0YW5jZV9pZCwKKwkJCQkJCWdmeF9yYXNfZWRjX3JlZ3NbaV0ubmFtZSwKKwkJCQkJCXNlY19jb3VudCk7CisJCQkJCWVycl9kYXRhLT5jZV9jb3VudCsrOworCQkJCX0KKworCQkJCWlmIChkZWRfY291bnQpIHsKKwkJCQkJRFJNX0lORk8oCisJCQkJCQkiSW5zdGFuY2VbJWRdWyVkXTogU3ViQmxvY2sgJXMsIERFRCAlZFxuIiwKKwkJCQkJCXNlX2lkLCBpbnN0YW5jZV9pZCwKKwkJCQkJCWdmeF9yYXNfZWRjX3JlZ3NbaV0ubmFtZSwKKwkJCQkJCWRlZF9jb3VudCk7CisJCQkJCWVycl9kYXRhLT51ZV9jb3VudCsrOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKwlnZnhfdjlfMF9zZWxlY3Rfc2Vfc2goYWRldiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7CisJbXV0ZXhfdW5sb2NrKCZhZGV2LT5ncmJtX2lkeF9tdXRleCk7CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBnZnhfdjlfMF9jcF9lY2NfZXJyb3JfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LApAQCAtNTE4Nyw3ICs2MTg1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyBnZnhfdjlfMF9yaW5nX2Z1bmNzX2dmeCA9IHsKIAkuYWxpZ25fbWFzayA9IDB4ZmYsCiAJLm5vcCA9IFBBQ0tFVDMoUEFDS0VUM19OT1AsIDB4M0ZGRiksCiAJLnN1cHBvcnRfNjRiaXRfcHRycyA9IHRydWUsCi0JLnZtaHViID0gQU1ER1BVX0dGWEhVQiwKKwkudm1odWIgPSBBTURHUFVfR0ZYSFVCXzAsCiAJLmdldF9ycHRyID0gZ2Z4X3Y5XzBfcmluZ19nZXRfcnB0cl9nZngsCiAJLmdldF93cHRyID0gZ2Z4X3Y5XzBfcmluZ19nZXRfd3B0cl9nZngsCiAJLnNldF93cHRyID0gZ2Z4X3Y5XzBfcmluZ19zZXRfd3B0cl9nZngsCkBAIC01MjM4LDcgKzYyMzYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIGdmeF92OV8wX3JpbmdfZnVuY3NfY29tcHV0ZSA9IHsKIAkuYWxpZ25fbWFzayA9IDB4ZmYsCiAJLm5vcCA9IFBBQ0tFVDMoUEFDS0VUM19OT1AsIDB4M0ZGRiksCiAJLnN1cHBvcnRfNjRiaXRfcHRycyA9IHRydWUsCi0JLnZtaHViID0gQU1ER1BVX0dGWEhVQiwKKwkudm1odWIgPSBBTURHUFVfR0ZYSFVCXzAsCiAJLmdldF9ycHRyID0gZ2Z4X3Y5XzBfcmluZ19nZXRfcnB0cl9jb21wdXRlLAogCS5nZXRfd3B0ciA9IGdmeF92OV8wX3JpbmdfZ2V0X3dwdHJfY29tcHV0ZSwKIAkuc2V0X3dwdHIgPSBnZnhfdjlfMF9yaW5nX3NldF93cHRyX2NvbXB1dGUsCkBAIC01MjczLDcgKzYyNzEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIGdmeF92OV8wX3JpbmdfZnVuY3Nfa2lxID0gewogCS5hbGlnbl9tYXNrID0gMHhmZiwKIAkubm9wID0gUEFDS0VUMyhQQUNLRVQzX05PUCwgMHgzRkZGKSwKIAkuc3VwcG9ydF82NGJpdF9wdHJzID0gdHJ1ZSwKLQkudm1odWIgPSBBTURHUFVfR0ZYSFVCLAorCS52bWh1YiA9IEFNREdQVV9HRlhIVUJfMCwKIAkuZ2V0X3JwdHIgPSBnZnhfdjlfMF9yaW5nX2dldF9ycHRyX2NvbXB1dGUsCiAJLmdldF93cHRyID0gZ2Z4X3Y5XzBfcmluZ19nZXRfd3B0cl9jb21wdXRlLAogCS5zZXRfd3B0ciA9IGdmeF92OV8wX3Jpbmdfc2V0X3dwdHJfY29tcHV0ZSwKQEAgLTUzNTMsNiArNjM1MSw4IEBAIHN0YXRpYyB2b2lkIGdmeF92OV8wX3NldF9ybGNfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJY2FzZSBDSElQX1ZFR0ExMjoKIAljYXNlIENISVBfVkVHQTIwOgogCWNhc2UgQ0hJUF9SQVZFTjoKKwljYXNlIENISVBfQVJDVFVSVVM6CisJY2FzZSBDSElQX1JFTk9JUjoKIAkJYWRldi0+Z2Z4LnJsYy5mdW5jcyA9ICZnZnhfdjlfMF9ybGNfZnVuY3M7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC01MzcwLDYgKzYzNzAsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF9zZXRfZ2RzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWFkZXYtPmdkcy5nZHNfc2l6ZSA9IDB4MTAwMDA7CiAJCWJyZWFrOwogCWNhc2UgQ0hJUF9SQVZFTjoKKwljYXNlIENISVBfQVJDVFVSVVM6CiAJCWFkZXYtPmdkcy5nZHNfc2l6ZSA9IDB4MTAwMDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTUzOTEsNiArNjM5Miw5IEBAIHN0YXRpYyB2b2lkIGdmeF92OV8wX3NldF9nZHNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJZWxzZQogCQkJYWRldi0+Z2RzLmdkc19jb21wdXRlX21heF93YXZlX2lkID0gMHgxNWY7IC8qIHJhdmVuMSAqLwogCQlicmVhazsKKwljYXNlIENISVBfQVJDVFVSVVM6CisJCWFkZXYtPmdkcy5nZHNfY29tcHV0ZV9tYXhfd2F2ZV9pZCA9IDB4ZmZmOworCQlicmVhazsKIAlkZWZhdWx0OgogCQkvKiB0aGlzIHJlYWxseSBkZXBlbmRzIG9uIHRoZSBjaGlwICovCiAJCWFkZXYtPmdkcy5nZHNfY29tcHV0ZV9tYXhfd2F2ZV9pZCA9IDB4N2ZmOwpAQCAtNTQzNSwxMiArNjQzOSwyMSBAQCBzdGF0aWMgaW50IGdmeF92OV8wX2dldF9jdV9pbmZvKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogewogCWludCBpLCBqLCBrLCBjb3VudGVyLCBhY3RpdmVfY3VfbnVtYmVyID0gMDsKIAl1MzIgbWFzaywgYml0bWFwLCBhb19iaXRtYXAsIGFvX2N1X21hc2sgPSAwOwotCXVuc2lnbmVkIGRpc2FibGVfbWFza3NbNCAqIDJdOworCXVuc2lnbmVkIGRpc2FibGVfbWFza3NbNCAqIDRdOwogCiAJaWYgKCFhZGV2IHx8ICFjdV9pbmZvKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWFtZGdwdV9nZnhfcGFyc2VfZGlzYWJsZV9jdShkaXNhYmxlX21hc2tzLCA0LCAyKTsKKwkvKgorCSAqIDE2IGNvbWVzIGZyb20gYml0bWFwIGFycmF5IHNpemUgNCo0LCBhbmQgaXQgY2FuIGNvdmVyIGFsbCBnZng5IEFTSUNzCisJICovCisJaWYgKGFkZXYtPmdmeC5jb25maWcubWF4X3NoYWRlcl9lbmdpbmVzICoKKwkJYWRldi0+Z2Z4LmNvbmZpZy5tYXhfc2hfcGVyX3NlID4gMTYpCisJCXJldHVybiAtRUlOVkFMOworCisJYW1kZ3B1X2dmeF9wYXJzZV9kaXNhYmxlX2N1KGRpc2FibGVfbWFza3MsCisJCQkJICAgIGFkZXYtPmdmeC5jb25maWcubWF4X3NoYWRlcl9lbmdpbmVzLAorCQkJCSAgICBhZGV2LT5nZnguY29uZmlnLm1heF9zaF9wZXJfc2UpOwogCiAJbXV0ZXhfbG9jaygmYWRldi0+Z3JibV9pZHhfbXV0ZXgpOwogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5nZnguY29uZmlnLm1heF9zaGFkZXJfZW5naW5lczsgaSsrKSB7CkBAIC01NDQ5LDExICs2NDYyLDIzIEBAIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBfZ2V0X2N1X2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQlhb19iaXRtYXAgPSAwOwogCQkJY291bnRlciA9IDA7CiAJCQlnZnhfdjlfMF9zZWxlY3Rfc2Vfc2goYWRldiwgaSwgaiwgMHhmZmZmZmZmZik7Ci0JCQlpZiAoaSA8IDQgJiYgaiA8IDIpCi0JCQkJZ2Z4X3Y5XzBfc2V0X3VzZXJfY3VfaW5hY3RpdmVfYml0bWFwKAotCQkJCQlhZGV2LCBkaXNhYmxlX21hc2tzW2kgKiAyICsgal0pOworCQkJZ2Z4X3Y5XzBfc2V0X3VzZXJfY3VfaW5hY3RpdmVfYml0bWFwKAorCQkJCWFkZXYsIGRpc2FibGVfbWFza3NbaSAqIGFkZXYtPmdmeC5jb25maWcubWF4X3NoX3Blcl9zZSArIGpdKTsKIAkJCWJpdG1hcCA9IGdmeF92OV8wX2dldF9jdV9hY3RpdmVfYml0bWFwKGFkZXYpOwotCQkJY3VfaW5mby0+Yml0bWFwW2ldW2pdID0gYml0bWFwOworCisJCQkvKgorCQkJICogVGhlIGJpdG1hcChhbmQgYW9fY3VfYml0bWFwKSBpbiBjdV9pbmZvIHN0cnVjdHVyZSBpcworCQkJICogNHg0IHNpemUgYXJyYXksIGFuZCBpdCdzIHVzdWFsbHkgc3VpdGFibGUgZm9yIFZlZ2EKKwkJCSAqIEFTSUNzIHdoaWNoIGhhcyA0KjIgU0UvU0ggbGF5b3V0LgorCQkJICogQnV0IGZvciBBcmN0dXJ1cywgU0UvU0ggbGF5b3V0IGlzIGNoYW5nZWQgdG8gOCoxLgorCQkJICogVG8gbW9zdGx5IHJlZHVjZSB0aGUgaW1wYWN0LCB3ZSBtYWtlIGl0IGNvbXBhdGlibGUKKwkJCSAqIHdpdGggY3VycmVudCBiaXRtYXAgYXJyYXkgYXMgYmVsb3c6CisJCQkgKiAgICBTRTQsU0gwIC0tPiBiaXRtYXBbMF1bMV0KKwkJCSAqICAgIFNFNSxTSDAgLS0+IGJpdG1hcFsxXVsxXQorCQkJICogICAgU0U2LFNIMCAtLT4gYml0bWFwWzJdWzFdCisJCQkgKiAgICBTRTcsU0gwIC0tPiBiaXRtYXBbM11bMV0KKwkJCSAqLworCQkJY3VfaW5mby0+Yml0bWFwW2kgJSA0XVtqICsgaSAvIDRdID0gYml0bWFwOwogCiAJCQlmb3IgKGsgPSAwOyBrIDwgYWRldi0+Z2Z4LmNvbmZpZy5tYXhfY3VfcGVyX3NoOyBrICsrKSB7CiAJCQkJaWYgKGJpdG1hcCAmIG1hc2spIHsKQEAgLTU0NjYsNyArNjQ5MSw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBfZ2V0X2N1X2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQlhY3RpdmVfY3VfbnVtYmVyICs9IGNvdW50ZXI7CiAJCQlpZiAoaSA8IDIgJiYgaiA8IDIpCiAJCQkJYW9fY3VfbWFzayB8PSAoYW9fYml0bWFwIDw8IChpICogMTYgKyBqICogOCkpOwotCQkJY3VfaW5mby0+YW9fY3VfYml0bWFwW2ldW2pdID0gYW9fYml0bWFwOworCQkJY3VfaW5mby0+YW9fY3VfYml0bWFwW2kgJSA0XVtqICsgaSAvIDRdID0gYW9fYml0bWFwOwogCQl9CiAJfQogCWdmeF92OV8wX3NlbGVjdF9zZV9zaChhZGV2LCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeGh1Yl92MV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhodWJfdjFfMC5jCmluZGV4IDE1OTg2NzQuLjZjZTM3Y2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeGh1Yl92MV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4aHViX3YxXzAuYwpAQCAtMzU3LDcgKzM1Nyw3IEBAIHZvaWQgZ2Z4aHViX3YxXzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiB2b2lkIGdmeGh1Yl92MV8wX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0Jc3RydWN0IGFtZGdwdV92bWh1YiAqaHViID0gJmFkZXYtPnZtaHViW0FNREdQVV9HRlhIVUJdOworCXN0cnVjdCBhbWRncHVfdm1odWIgKmh1YiA9ICZhZGV2LT52bWh1YltBTURHUFVfR0ZYSFVCXzBdOwogCiAJaHViLT5jdHgwX3B0Yl9hZGRyX2xvMzIgPQogCQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4aHViX3YyXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeGh1Yl92Ml8wLmMKaW5kZXggZDYwNWI0OS4uOGI3ODlmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4aHViX3YyXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhodWJfdjJfMC5jCkBAIC0xNDAsNyArMTQwLDcgQEAgc3RhdGljIHZvaWQgZ2Z4aHViX3YyXzBfaW5pdF9jYWNoZV9yZWdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCS8qIFhYWCBmb3IgZW11bGF0aW9uLCBSZWZlciB0byBjbG9zZWQgc291cmNlIGNvZGUuKi8KIAl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgR0NWTV9MMl9DTlRMLAogCQkJICAgIEwyX1BERTBfQ0FDSEVfVEFHX0dFTkVSQVRJT05fTU9ERSwgMCk7Ci0JdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIEdDVk1fTDJfQ05UTCwgUERFX0ZBVUxUX0NMQVNTSUZJQ0FUSU9OLCAxKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgR0NWTV9MMl9DTlRMLCBQREVfRkFVTFRfQ0xBU1NJRklDQVRJT04sIDApOwogCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBHQ1ZNX0wyX0NOVEwsIENPTlRFWFQxX0lERU5USVRZX0FDQ0VTU19NT0RFLCAxKTsKIAl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgR0NWTV9MMl9DTlRMLCBJREVOVElUWV9NT0RFX0ZSQUdNRU5UX1NJWkUsIDApOwogCVdSRUczMl9TT0MxNShHQywgMCwgbW1HQ1ZNX0wyX0NOVEwsIHRtcCk7CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBnZnhodWJfdjJfMF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIHZvaWQgZ2Z4aHViX3YyXzBfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X3ZtaHViICpodWIgPSAmYWRldi0+dm1odWJbQU1ER1BVX0dGWEhVQl07CisJc3RydWN0IGFtZGdwdV92bWh1YiAqaHViID0gJmFkZXYtPnZtaHViW0FNREdQVV9HRlhIVUJfMF07CiAKIAlodWItPmN0eDBfcHRiX2FkZHJfbG8zMiA9CiAJCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jCmluZGV4IDVlZWI3MmYuLjI0MWE0ZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jCkBAIC02Miw3ICs2Miw3IEBAIGdtY192MTBfMF92bV9mYXVsdF9pbnRlcnJ1cHRfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJc3RydWN0IGFtZGdwdV92bWh1YiAqaHViOwogCXUzMiB0bXAsIHJlZywgYml0c1tBTURHUFVfTUFYX1ZNSFVCU10sIGk7CiAKLQliaXRzW0FNREdQVV9HRlhIVUJdID0gR0NWTV9DT05URVhUMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyB8CisJYml0c1tBTURHUFVfR0ZYSFVCXzBdID0gR0NWTV9DT05URVhUMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyB8CiAJCUdDVk1fQ09OVEVYVDFfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyB8CiAJCUdDVk1fQ09OVEVYVDFfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyB8CiAJCUdDVk1fQ09OVEVYVDFfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgfApAQCAtNzAsNyArNzAsNyBAQCBnbWNfdjEwXzBfdm1fZmF1bHRfaW50ZXJydXB0X3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlHQ1ZNX0NPTlRFWFQxX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLIHwKIAkJR0NWTV9DT05URVhUMV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLOwogCi0JYml0c1tBTURHUFVfTU1IVUJdID0gTU1WTV9DT05URVhUMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyB8CisJYml0c1tBTURHUFVfTU1IVUJfMF0gPSBNTVZNX0NPTlRFWFQxX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLIHwKIAkJTU1WTV9DT05URVhUMV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLIHwKIAkJTU1WTV9DT05URVhUMV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLIHwKIAkJTU1WTV9DT05URVhUMV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyB8CkBAIC04MSwzOSArODEsMzkgQEAgZ21jX3YxMF8wX3ZtX2ZhdWx0X2ludGVycnVwdF9zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlzd2l0Y2ggKHN0YXRlKSB7CiAJY2FzZSBBTURHUFVfSVJRX1NUQVRFX0RJU0FCTEU6CiAJCS8qIE1NIEhVQiAqLwotCQlodWIgPSAmYWRldi0+dm1odWJbQU1ER1BVX01NSFVCXTsKKwkJaHViID0gJmFkZXYtPnZtaHViW0FNREdQVV9NTUhVQl8wXTsKIAkJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKIAkJCXJlZyA9IGh1Yi0+dm1fY29udGV4dDBfY250bCArIGk7CiAJCQl0bXAgPSBSUkVHMzIocmVnKTsKLQkJCXRtcCAmPSB+Yml0c1tBTURHUFVfTU1IVUJdOworCQkJdG1wICY9IH5iaXRzW0FNREdQVV9NTUhVQl8wXTsKIAkJCVdSRUczMihyZWcsIHRtcCk7CiAJCX0KIAogCQkvKiBHRlggSFVCICovCi0JCWh1YiA9ICZhZGV2LT52bWh1YltBTURHUFVfR0ZYSFVCXTsKKwkJaHViID0gJmFkZXYtPnZtaHViW0FNREdQVV9HRlhIVUJfMF07CiAJCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7CiAJCQlyZWcgPSBodWItPnZtX2NvbnRleHQwX2NudGwgKyBpOwogCQkJdG1wID0gUlJFRzMyKHJlZyk7Ci0JCQl0bXAgJj0gfmJpdHNbQU1ER1BVX0dGWEhVQl07CisJCQl0bXAgJj0gfmJpdHNbQU1ER1BVX0dGWEhVQl8wXTsKIAkJCVdSRUczMihyZWcsIHRtcCk7CiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBBTURHUFVfSVJRX1NUQVRFX0VOQUJMRToKIAkJLyogTU0gSFVCICovCi0JCWh1YiA9ICZhZGV2LT52bWh1YltBTURHUFVfTU1IVUJdOworCQlodWIgPSAmYWRldi0+dm1odWJbQU1ER1BVX01NSFVCXzBdOwogCQlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgewogCQkJcmVnID0gaHViLT52bV9jb250ZXh0MF9jbnRsICsgaTsKIAkJCXRtcCA9IFJSRUczMihyZWcpOwotCQkJdG1wIHw9IGJpdHNbQU1ER1BVX01NSFVCXTsKKwkJCXRtcCB8PSBiaXRzW0FNREdQVV9NTUhVQl8wXTsKIAkJCVdSRUczMihyZWcsIHRtcCk7CiAJCX0KIAogCQkvKiBHRlggSFVCICovCi0JCWh1YiA9ICZhZGV2LT52bWh1YltBTURHUFVfR0ZYSFVCXTsKKwkJaHViID0gJmFkZXYtPnZtaHViW0FNREdQVV9HRlhIVUJfMF07CiAJCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7CiAJCQlyZWcgPSBodWItPnZtX2NvbnRleHQwX2NudGwgKyBpOwogCQkJdG1wID0gUlJFRzMyKHJlZyk7Ci0JCQl0bXAgfD0gYml0c1tBTURHUFVfR0ZYSFVCXTsKKwkJCXRtcCB8PSBiaXRzW0FNREdQVV9HRlhIVUJfMF07CiAJCQlXUkVHMzIocmVnLCB0bXApOwogCQl9CiAJCWJyZWFrOwpAQCAtMTM2LDIyICsxMzYsNTMgQEAgc3RhdGljIGludCBnbWNfdjEwXzBfcHJvY2Vzc19pbnRlcnJ1cHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJYWRkciB8PSAoKHU2NCllbnRyeS0+c3JjX2RhdGFbMV0gJiAweGYpIDw8IDQ0OwogCiAJaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsKKwkJLyoKKwkJICogSXNzdWUgYSBkdW1teSByZWFkIHRvIHdhaXQgZm9yIHRoZSBzdGF0dXMgcmVnaXN0ZXIgdG8KKwkJICogYmUgdXBkYXRlZCB0byBhdm9pZCByZWFkaW5nIGFuIGluY29ycmVjdCB2YWx1ZSBkdWUgdG8KKwkJICogdGhlIG5ldyBmYXN0IEdSQk0gaW50ZXJmYWNlLgorCQkgKi8KKwkJaWYgKGVudHJ5LT52bWlkX3NyYyA9PSBBTURHUFVfR0ZYSFVCXzApCisJCQlSUkVHMzIoaHViLT52bV9sMl9wcm9fZmF1bHRfc3RhdHVzKTsKKwogCQlzdGF0dXMgPSBSUkVHMzIoaHViLT52bV9sMl9wcm9fZmF1bHRfc3RhdHVzKTsKIAkJV1JFRzMyX1AoaHViLT52bV9sMl9wcm9fZmF1bHRfY250bCwgMSwgfjEpOwogCX0KIAogCWlmIChwcmludGtfcmF0ZWxpbWl0KCkpIHsKKwkJc3RydWN0IGFtZGdwdV90YXNrX2luZm8gdGFza19pbmZvOworCisJCW1lbXNldCgmdGFza19pbmZvLCAwLCBzaXplb2Yoc3RydWN0IGFtZGdwdV90YXNrX2luZm8pKTsKKwkJYW1kZ3B1X3ZtX2dldF90YXNrX2luZm8oYWRldiwgZW50cnktPnBhc2lkLCAmdGFza19pbmZvKTsKKwogCQlkZXZfZXJyKGFkZXYtPmRldiwKLQkJCSJbJXNdIFZNQyBwYWdlIGZhdWx0IChzcmNfaWQ6JXUgcmluZzoldSB2bWlkOiV1IHBhc2lkOiV1KVxuIiwKKwkJCSJbJXNdIHBhZ2UgZmF1bHQgKHNyY19pZDoldSByaW5nOiV1IHZtaWQ6JXUgcGFzaWQ6JXUsICIKKwkJCSJmb3IgcHJvY2VzcyAlcyBwaWQgJWQgdGhyZWFkICVzIHBpZCAlZClcbiIsCiAJCQllbnRyeS0+dm1pZF9zcmMgPyAibW1odWIiIDogImdmeGh1YiIsCiAJCQllbnRyeS0+c3JjX2lkLCBlbnRyeS0+cmluZ19pZCwgZW50cnktPnZtaWQsCi0JCQllbnRyeS0+cGFzaWQpOwotCQlkZXZfZXJyKGFkZXYtPmRldiwgIiAgYXQgcGFnZSAweCUwMTZsbHggZnJvbSAlZFxuIiwKKwkJCWVudHJ5LT5wYXNpZCwgdGFza19pbmZvLnByb2Nlc3NfbmFtZSwgdGFza19pbmZvLnRnaWQsCisJCQl0YXNrX2luZm8udGFza19uYW1lLCB0YXNrX2luZm8ucGlkKTsKKwkJZGV2X2VycihhZGV2LT5kZXYsICIgIGluIHBhZ2Ugc3RhcnRpbmcgYXQgYWRkcmVzcyAweCUwMTZsbHggZnJvbSBjbGllbnQgJWRcbiIsCiAJCQlhZGRyLCBlbnRyeS0+Y2xpZW50X2lkKTsKLQkJaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpCisJCWlmICghYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CiAJCQlkZXZfZXJyKGFkZXYtPmRldiwKLQkJCQkiVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVM6MHglMDhYXG4iLAorCQkJCSJHQ1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTOjB4JTA4WFxuIiwKIAkJCQlzdGF0dXMpOworCQkJZGV2X2VycihhZGV2LT5kZXYsICJcdCBNT1JFX0ZBVUxUUzogMHglbHhcbiIsCisJCQkJUkVHX0dFVF9GSUVMRChzdGF0dXMsCisJCQkJR0NWTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVUywgTU9SRV9GQVVMVFMpKTsKKwkJCWRldl9lcnIoYWRldi0+ZGV2LCAiXHQgV0FMS0VSX0VSUk9SOiAweCVseFxuIiwKKwkJCQlSRUdfR0VUX0ZJRUxEKHN0YXR1cywKKwkJCQlHQ1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTLCBXQUxLRVJfRVJST1IpKTsKKwkJCWRldl9lcnIoYWRldi0+ZGV2LCAiXHQgUEVSTUlTU0lPTl9GQVVMVFM6IDB4JWx4XG4iLAorCQkJCVJFR19HRVRfRklFTEQoc3RhdHVzLAorCQkJCUdDVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVMsIFBFUk1JU1NJT05fRkFVTFRTKSk7CisJCQlkZXZfZXJyKGFkZXYtPmRldiwgIlx0IE1BUFBJTkdfRVJST1I6IDB4JWx4XG4iLAorCQkJCVJFR19HRVRfRklFTEQoc3RhdHVzLAorCQkJCUdDVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVMsIE1BUFBJTkdfRVJST1IpKTsKKwkJCWRldl9lcnIoYWRldi0+ZGV2LCAiXHQgUlc6IDB4JWx4XG4iLAorCQkJCVJFR19HRVRfRklFTEQoc3RhdHVzLAorCQkJCUdDVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVMsIFJXKSk7CisJCX0KIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTIwNiw2ICsyMzcsMTMgQEAgc3RhdGljIHZvaWQgZ21jX3YxMF8wX2ZsdXNoX3ZtX2h1YihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3Qgdm1pZCwKIAogCVdSRUczMl9OT19LSVEoaHViLT52bV9pbnZfZW5nMF9yZXEgKyBlbmcsIHRtcCk7CiAKKwkvKgorCSAqIElzc3VlIGEgZHVtbXkgcmVhZCB0byB3YWl0IGZvciB0aGUgQUNLIHJlZ2lzdGVyIHRvIGJlIGNsZWFyZWQKKwkgKiB0byBhdm9pZCBhIGZhbHNlIEFDSyBkdWUgdG8gdGhlIG5ldyBmYXN0IEdSQk0gaW50ZXJmYWNlLgorCSAqLworCWlmICh2bWh1YiA9PSBBTURHUFVfR0ZYSFVCXzApCisJCVJSRUczMl9OT19LSVEoaHViLT52bV9pbnZfZW5nMF9yZXEgKyBlbmcpOworCiAJLyogV2FpdCBmb3IgQUNLIHdpdGggYSBkZWxheS4qLwogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgewogCQl0bXAgPSBSUkVHMzJfTk9fS0lRKGh1Yi0+dm1faW52X2VuZzBfYWNrICsgZW5nKTsKQEAgLTIzMCw4ICsyNjgsOCBAQCBzdGF0aWMgdm9pZCBnbWNfdjEwXzBfZmx1c2hfdm1faHViKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCB2bWlkLAogICoKICAqIEZsdXNoIHRoZSBUTEIgZm9yIHRoZSByZXF1ZXN0ZWQgcGFnZSB0YWJsZS4KICAqLwotc3RhdGljIHZvaWQgZ21jX3YxMF8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJICAgIHVpbnQzMl90IHZtaWQsIHVpbnQzMl90IGZsdXNoX3R5cGUpCitzdGF0aWMgdm9pZCBnbWNfdjEwXzBfZmx1c2hfZ3B1X3RsYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3Qgdm1pZCwKKwkJCQkJdWludDMyX3Qgdm1odWIsIHVpbnQzMl90IGZsdXNoX3R5cGUpCiB7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZzsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKQEAgLTI0NCwxMSArMjgyLDE4IEBAIHN0YXRpYyB2b2lkIGdtY192MTBfMF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJbXV0ZXhfbG9jaygmYWRldi0+bW1hbi5ndHRfd2luZG93X2xvY2spOwogCi0JZ21jX3YxMF8wX2ZsdXNoX3ZtX2h1YihhZGV2LCB2bWlkLCBBTURHUFVfTU1IVUIsIDApOworCWlmICh2bWh1YiA9PSBBTURHUFVfTU1IVUJfMCkgeworCQlnbWNfdjEwXzBfZmx1c2hfdm1faHViKGFkZXYsIHZtaWQsIEFNREdQVV9NTUhVQl8wLCAwKTsKKwkJbXV0ZXhfdW5sb2NrKCZhZGV2LT5tbWFuLmd0dF93aW5kb3dfbG9jayk7CisJCXJldHVybjsKKwl9CisKKwlCVUdfT04odm1odWIgIT0gQU1ER1BVX0dGWEhVQl8wKTsKKwogCWlmICghYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfZW5hYmxlZCB8fAogCSAgICAhYWRldi0+aWJfcG9vbF9yZWFkeSB8fAogCSAgICBhZGV2LT5pbl9ncHVfcmVzZXQpIHsKLQkJZ21jX3YxMF8wX2ZsdXNoX3ZtX2h1YihhZGV2LCB2bWlkLCBBTURHUFVfR0ZYSFVCLCAwKTsKKwkJZ21jX3YxMF8wX2ZsdXNoX3ZtX2h1YihhZGV2LCB2bWlkLCBBTURHUFVfR0ZYSFVCXzAsIDApOwogCQltdXRleF91bmxvY2soJmFkZXYtPm1tYW4uZ3R0X3dpbmRvd19sb2NrKTsKIAkJcmV0dXJuOwogCX0KQEAgLTMxMyw3ICszNTgsNyBAQCBzdGF0aWMgdm9pZCBnbWNfdjEwXzBfZW1pdF9wYXNpZF9tYXBwaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdW5zaWduZWQgdm1pZAogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAl1aW50MzJfdCByZWc7CiAKLQlpZiAocmluZy0+ZnVuY3MtPnZtaHViID09IEFNREdQVV9HRlhIVUIpCisJaWYgKHJpbmctPmZ1bmNzLT52bWh1YiA9PSBBTURHUFVfR0ZYSFVCXzApCiAJCXJlZyA9IFNPQzE1X1JFR19PRkZTRVQoT1NTU1lTLCAwLCBtbUlIX1ZNSURfMF9MVVQpICsgdm1pZDsKIAllbHNlCiAJCXJlZyA9IFNPQzE1X1JFR19PRkZTRVQoT1NTU1lTLCAwLCBtbUlIX1ZNSURfMF9MVVRfTU0pICsgdm1pZDsKQEAgLTUyNCw2ICs1NjksOCBAQCBzdGF0aWMgaW50IGdtY192MTBfMF9tY19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWlmIChhbWRncHVfZ2FydF9zaXplID09IC0xKSB7CiAJCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJCWNhc2UgQ0hJUF9OQVZJMTA6CisJCWNhc2UgQ0hJUF9OQVZJMTQ6CisJCWNhc2UgQ0hJUF9OQVZJMTI6CiAJCWRlZmF1bHQ6CiAJCQlhZGV2LT5nbWMuZ2FydF9zaXplID0gNTEyVUxMIDw8IDIwOwogCQkJYnJlYWs7CkBAIC01OTAsNyArNjM3LDYgQEAgc3RhdGljIHVuc2lnbmVkIGdtY192MTBfMF9nZXRfdmJpb3NfZmJfc2l6ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHN0YXRpYyBpbnQgZ21jX3YxMF8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogewogCWludCByOwotCWludCBkbWFfYml0czsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWdmeGh1Yl92Ml8wX2luaXQoYWRldik7CkBAIC02MDEsOSArNjQ3LDEyIEBAIHN0YXRpYyBpbnQgZ21jX3YxMF8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCWFkZXYtPmdtYy52cmFtX3R5cGUgPSBhbWRncHVfYXRvbWZpcm13YXJlX2dldF92cmFtX3R5cGUoYWRldik7CiAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKIAljYXNlIENISVBfTkFWSTEwOgorCWNhc2UgQ0hJUF9OQVZJMTQ6CisJY2FzZSBDSElQX05BVkkxMjoKKwkJYWRldi0+bnVtX3ZtaHVicyA9IDI7CiAJCS8qCiAJCSAqIFRvIGZ1bGZpbGwgNC1sZXZlbCBwYWdlIHN1cHBvcnQsCi0JCSAqIHZtIHNpemUgaXMgMjU2VEIgKDQ4Yml0KSwgbWF4aW11bSBzaXplIG9mIE5hdmkxMCwKKwkJICogdm0gc2l6ZSBpcyAyNTZUQiAoNDhiaXQpLCBtYXhpbXVtIHNpemUgb2YgTmF2aTEwL05hdmkxNC9OYXZpMTIsCiAJCSAqIGJsb2NrIHNpemUgNTEyICg5Yml0KQogCQkgKi8KIAkJYW1kZ3B1X3ZtX2FkanVzdF9zaXplKGFkZXYsIDI1NiAqIDEwMjQsIDksIDMsIDQ4KTsKQEAgLTYzNywyNiArNjg2LDEwIEBAIHN0YXRpYyBpbnQgZ21jX3YxMF8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCWVsc2UKIAkJYWRldi0+Z21jLnN0b2xlbl9zaXplID0gOSAqIDEwMjQgKjEwMjQ7CiAKLQkvKgotCSAqIFNldCBETUEgbWFzayArIG5lZWRfZG1hMzIgZmxhZ3MuCi0JICogUENJRSAtIGNhbiBoYW5kbGUgNDQtYml0cy4KLQkgKiBJR1AgLSBjYW4gaGFuZGxlIDQ0LWJpdHMKLQkgKiBQQ0kgLSBkbWEzMiBmb3IgbGVnYWN5IHBjaSBnYXJ0LCA0NCBiaXRzIG9uIG5hdmkxMAotCSAqLwotCWFkZXYtPm5lZWRfZG1hMzIgPSBmYWxzZTsKLQlkbWFfYml0cyA9IGFkZXYtPm5lZWRfZG1hMzIgPyAzMiA6IDQ0OwotCi0JciA9IHBjaV9zZXRfZG1hX21hc2soYWRldi0+cGRldiwgRE1BX0JJVF9NQVNLKGRtYV9iaXRzKSk7CisJciA9IGRtYV9zZXRfbWFza19hbmRfY29oZXJlbnQoYWRldi0+ZGV2LCBETUFfQklUX01BU0soNDQpKTsKIAlpZiAocikgewotCQlhZGV2LT5uZWVkX2RtYTMyID0gdHJ1ZTsKLQkJZG1hX2JpdHMgPSAzMjsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiYW1kZ3B1OiBObyBzdWl0YWJsZSBETUEgYXZhaWxhYmxlLlxuIik7Ci0JfQotCi0JciA9IHBjaV9zZXRfY29uc2lzdGVudF9kbWFfbWFzayhhZGV2LT5wZGV2LCBETUFfQklUX01BU0soZG1hX2JpdHMpKTsKLQlpZiAocikgewotCQlwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2soYWRldi0+cGRldiwgRE1BX0JJVF9NQVNLKDMyKSk7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgImFtZGdwdTogTm8gY29oZXJlbnQgRE1BIGF2YWlsYWJsZS5cbiIpOworCQlyZXR1cm4gcjsKIAl9CiAKIAlyID0gZ21jX3YxMF8wX21jX2luaXQoYWRldik7CkBAIC02ODAsOCArNzEzLDggQEAgc3RhdGljIGludCBnbWNfdjEwXzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiAJICogYW1kZ3B1IGdyYXBoaWNzL2NvbXB1dGUgd2lsbCB1c2UgVk1JRHMgMS03CiAJICogYW1ka2ZkIHdpbGwgdXNlIFZNSURzIDgtMTUKIAkgKi8KLQlhZGV2LT52bV9tYW5hZ2VyLmlkX21ncltBTURHUFVfR0ZYSFVCXS5udW1faWRzID0gQU1ER1BVX05VTV9PRl9WTUlEUzsKLQlhZGV2LT52bV9tYW5hZ2VyLmlkX21ncltBTURHUFVfTU1IVUJdLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOworCWFkZXYtPnZtX21hbmFnZXIuaWRfbWdyW0FNREdQVV9HRlhIVUJfMF0ubnVtX2lkcyA9IEFNREdQVV9OVU1fT0ZfVk1JRFM7CisJYWRldi0+dm1fbWFuYWdlci5pZF9tZ3JbQU1ER1BVX01NSFVCXzBdLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOwogCiAJYW1kZ3B1X3ZtX21hbmFnZXJfaW5pdChhZGV2KTsKIApAQCAtNzE3LDYgKzc1MCw4IEBAIHN0YXRpYyB2b2lkIGdtY192MTBfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKIAljYXNlIENISVBfTkFWSTEwOgorCWNhc2UgQ0hJUF9OQVZJMTQ6CisJY2FzZSBDSElQX05BVkkxMjoKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJYnJlYWs7CkBAIC03NjYsNyArODAxLDggQEAgc3RhdGljIGludCBnbWNfdjEwXzBfZ2FydF9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIAlnZnhodWJfdjJfMF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQoYWRldiwgdmFsdWUpOwogCW1taHViX3YyXzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0KGFkZXYsIHZhbHVlKTsKLQlnbWNfdjEwXzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwKTsKKwlnbWNfdjEwXzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCBBTURHUFVfTU1IVUJfMCwgMCk7CisJZ21jX3YxMF8wX2ZsdXNoX2dwdV90bGIoYWRldiwgMCwgQU1ER1BVX0dGWEhVQl8wLCAwKTsKIAogCURSTV9JTkZPKCJQQ0lFIEdBUlQgb2YgJXVNIGVuYWJsZWQgKHRhYmxlIGF0IDB4JTAxNmxsWCkuXG4iLAogCQkgKHVuc2lnbmVkKShhZGV2LT5nbWMuZ2FydF9zaXplID4+IDIwKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jCmluZGV4IGNhOGRiZTkuLjlmYjE3NjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYwpAQCAtMzYyLDggKzM2Miw4IEBAIHN0YXRpYyBpbnQgZ21jX3Y2XzBfbWNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZ21jX3Y2XzBfZmx1c2hfZ3B1X3RsYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQl1aW50MzJfdCB2bWlkLCB1aW50MzJfdCBmbHVzaF90eXBlKQorc3RhdGljIHZvaWQgZ21jX3Y2XzBfZmx1c2hfZ3B1X3RsYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3Qgdm1pZCwKKwkJCQkJdWludDMyX3Qgdm1odWIsIHVpbnQzMl90IGZsdXNoX3R5cGUpCiB7CiAJV1JFRzMyKG1tVk1fSU5WQUxJREFURV9SRVFVRVNULCAxIDw8IHZtaWQpOwogfQpAQCAtNTcxLDcgKzU3MSw3IEBAIHN0YXRpYyBpbnQgZ21jX3Y2XzBfZ2FydF9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJZWxzZQogCQlnbWNfdjZfMF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQoYWRldiwgdHJ1ZSk7CiAKLQlnbWNfdjZfMF9mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIDApOworCWdtY192Nl8wX2ZsdXNoX2dwdV90bGIoYWRldiwgMCwgMCwgMCk7CiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiUENJRSBHQVJUIG9mICV1TSBlbmFibGVkICh0YWJsZSBhdCAweCUwMTZsbFgpLlxuIiwKIAkJICh1bnNpZ25lZCkoYWRldi0+Z21jLmdhcnRfc2l6ZSA+PiAyMCksCiAJCSAodW5zaWduZWQgbG9uZyBsb25nKXRhYmxlX2FkZHIpOwpAQCAtODM5LDkgKzgzOSwxMCBAQCBzdGF0aWMgdW5zaWduZWQgZ21jX3Y2XzBfZ2V0X3ZiaW9zX2ZiX3NpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiBzdGF0aWMgaW50IGdtY192Nl8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogewogCWludCByOwotCWludCBkbWFfYml0czsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAorCWFkZXYtPm51bV92bWh1YnMgPSAxOworCiAJaWYgKGFkZXYtPmZsYWdzICYgQU1EX0lTX0FQVSkgewogCQlhZGV2LT5nbWMudnJhbV90eXBlID0gQU1ER1BVX1ZSQU1fVFlQRV9VTktOT1dOOwogCX0gZWxzZSB7CkBAIC04NjIsMjAgKzg2MywxMiBAQCBzdGF0aWMgaW50IGdtY192Nl8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCiAJYWRldi0+Z21jLm1jX21hc2sgPSAweGZmZmZmZmZmZmZVTEw7CiAKLQlhZGV2LT5uZWVkX2RtYTMyID0gZmFsc2U7Ci0JZG1hX2JpdHMgPSBhZGV2LT5uZWVkX2RtYTMyID8gMzIgOiA0MDsKLQlyID0gcGNpX3NldF9kbWFfbWFzayhhZGV2LT5wZGV2LCBETUFfQklUX01BU0soZG1hX2JpdHMpKTsKKwlyID0gZG1hX3NldF9tYXNrX2FuZF9jb2hlcmVudChhZGV2LT5kZXYsIERNQV9CSVRfTUFTSyg0NCkpOwogCWlmIChyKSB7Ci0JCWFkZXYtPm5lZWRfZG1hMzIgPSB0cnVlOwotCQlkbWFfYml0cyA9IDMyOwogCQlkZXZfd2FybihhZGV2LT5kZXYsICJhbWRncHU6IE5vIHN1aXRhYmxlIERNQSBhdmFpbGFibGUuXG4iKTsKKwkJcmV0dXJuIHI7CiAJfQotCXIgPSBwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2soYWRldi0+cGRldiwgRE1BX0JJVF9NQVNLKGRtYV9iaXRzKSk7Ci0JaWYgKHIpIHsKLQkJcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKGFkZXYtPnBkZXYsIERNQV9CSVRfTUFTSygzMikpOwotCQlkZXZfd2FybihhZGV2LT5kZXYsICJhbWRncHU6IE5vIGNvaGVyZW50IERNQSBhdmFpbGFibGUuXG4iKTsKLQl9Ci0JYWRldi0+bmVlZF9zd2lvdGxiID0gZHJtX25lZWRfc3dpb3RsYihkbWFfYml0cyk7CisJYWRldi0+bmVlZF9zd2lvdGxiID0gZHJtX25lZWRfc3dpb3RsYig0NCk7CiAKIAlyID0gZ21jX3Y2XzBfaW5pdF9taWNyb2NvZGUoYWRldik7CiAJaWYgKHIpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCmluZGV4IDU3ZjgwMDYuLjBjM2Q5YmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwpAQCAtNDMzLDggKzQzMyw4IEBAIHN0YXRpYyBpbnQgZ21jX3Y3XzBfbWNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKICAqCiAgKiBGbHVzaCB0aGUgVExCIGZvciB0aGUgcmVxdWVzdGVkIHBhZ2UgdGFibGUgKENJSykuCiAgKi8KLXN0YXRpYyB2b2lkIGdtY192N18wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJdWludDMyX3Qgdm1pZCwgdWludDMyX3QgZmx1c2hfdHlwZSkKK3N0YXRpYyB2b2lkIGdtY192N18wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IHZtaWQsCisJCQkJCXVpbnQzMl90IHZtaHViLCB1aW50MzJfdCBmbHVzaF90eXBlKQogewogCS8qIGJpdHMgMC0xNSBhcmUgdGhlIFZNIGNvbnRleHRzMC0xNSAqLwogCVdSRUczMihtbVZNX0lOVkFMSURBVEVfUkVRVUVTVCwgMSA8PCB2bWlkKTsKQEAgLTY3Nyw3ICs2NzcsNyBAQCBzdGF0aWMgaW50IGdtY192N18wX2dhcnRfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlXUkVHMzIobW1DSFVCX0NPTlRST0wsIHRtcCk7CiAJfQogCi0JZ21jX3Y3XzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwKTsKKwlnbWNfdjdfMF9mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIDAsIDApOwogCURSTV9JTkZPKCJQQ0lFIEdBUlQgb2YgJXVNIGVuYWJsZWQgKHRhYmxlIGF0IDB4JTAxNmxsWCkuXG4iLAogCQkgKHVuc2lnbmVkKShhZGV2LT5nbWMuZ2FydF9zaXplID4+IDIwKSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcpdGFibGVfYWRkcik7CkBAIC05NTksOSArOTU5LDEwIEBAIHN0YXRpYyB1bnNpZ25lZCBnbWNfdjdfMF9nZXRfdmJpb3NfZmJfc2l6ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHN0YXRpYyBpbnQgZ21jX3Y3XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7Ci0JaW50IGRtYV9iaXRzOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCisJYWRldi0+bnVtX3ZtaHVicyA9IDE7CisKIAlpZiAoYWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVKSB7CiAJCWFkZXYtPmdtYy52cmFtX3R5cGUgPSBBTURHUFVfVlJBTV9UWVBFX1VOS05PV047CiAJfSBlbHNlIHsKQEAgLTk5MCwyNSArOTkxLDEyIEBAIHN0YXRpYyBpbnQgZ21jX3Y3XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiAJICovCiAJYWRldi0+Z21jLm1jX21hc2sgPSAweGZmZmZmZmZmZmZVTEw7IC8qIDQwIGJpdCBNQyAqLwogCi0JLyogc2V0IERNQSBtYXNrICsgbmVlZF9kbWEzMiBmbGFncy4KLQkgKiBQQ0lFIC0gY2FuIGhhbmRsZSA0MC1iaXRzLgotCSAqIElHUCAtIGNhbiBoYW5kbGUgNDAtYml0cwotCSAqIFBDSSAtIGRtYTMyIGZvciBsZWdhY3kgcGNpIGdhcnQsIDQwIGJpdHMgb24gbmV3ZXIgYXNpY3MKLQkgKi8KLQlhZGV2LT5uZWVkX2RtYTMyID0gZmFsc2U7Ci0JZG1hX2JpdHMgPSBhZGV2LT5uZWVkX2RtYTMyID8gMzIgOiA0MDsKLQlyID0gcGNpX3NldF9kbWFfbWFzayhhZGV2LT5wZGV2LCBETUFfQklUX01BU0soZG1hX2JpdHMpKTsKKwlyID0gZG1hX3NldF9tYXNrX2FuZF9jb2hlcmVudChhZGV2LT5kZXYsIERNQV9CSVRfTUFTSyg0MCkpOwogCWlmIChyKSB7Ci0JCWFkZXYtPm5lZWRfZG1hMzIgPSB0cnVlOwotCQlkbWFfYml0cyA9IDMyOwogCQlwcl93YXJuKCJhbWRncHU6IE5vIHN1aXRhYmxlIERNQSBhdmFpbGFibGVcbiIpOworCQlyZXR1cm4gcjsKIAl9Ci0JciA9IHBjaV9zZXRfY29uc2lzdGVudF9kbWFfbWFzayhhZGV2LT5wZGV2LCBETUFfQklUX01BU0soZG1hX2JpdHMpKTsKLQlpZiAocikgewotCQlwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2soYWRldi0+cGRldiwgRE1BX0JJVF9NQVNLKDMyKSk7Ci0JCXByX3dhcm4oImFtZGdwdTogTm8gY29oZXJlbnQgRE1BIGF2YWlsYWJsZVxuIik7Ci0JfQotCWFkZXYtPm5lZWRfc3dpb3RsYiA9IGRybV9uZWVkX3N3aW90bGIoZG1hX2JpdHMpOworCWFkZXYtPm5lZWRfc3dpb3RsYiA9IGRybV9uZWVkX3N3aW90bGIoNDApOwogCiAJciA9IGdtY192N18wX2luaXRfbWljcm9jb2RlKGFkZXYpOwogCWlmIChyKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYwppbmRleCA5MjM4MjgwLi5lYTc2NGRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMKQEAgLTYzNSw4ICs2MzUsOCBAQCBzdGF0aWMgaW50IGdtY192OF8wX21jX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAgKgogICogRmx1c2ggdGhlIFRMQiBmb3IgdGhlIHJlcXVlc3RlZCBwYWdlIHRhYmxlIChWSSkuCiAgKi8KLXN0YXRpYyB2b2lkIGdtY192OF8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJdWludDMyX3Qgdm1pZCwgdWludDMyX3QgZmx1c2hfdHlwZSkKK3N0YXRpYyB2b2lkIGdtY192OF8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IHZtaWQsCisJCQkJCXVpbnQzMl90IHZtaHViLCB1aW50MzJfdCBmbHVzaF90eXBlKQogewogCS8qIGJpdHMgMC0xNSBhcmUgdGhlIFZNIGNvbnRleHRzMC0xNSAqLwogCVdSRUczMihtbVZNX0lOVkFMSURBVEVfUkVRVUVTVCwgMSA8PCB2bWlkKTsKQEAgLTkyMSw3ICs5MjEsNyBAQCBzdGF0aWMgaW50IGdtY192OF8wX2dhcnRfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWVsc2UKIAkJZ21jX3Y4XzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0KGFkZXYsIHRydWUpOwogCi0JZ21jX3Y4XzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwKTsKKwlnbWNfdjhfMF9mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIDAsIDApOwogCURSTV9JTkZPKCJQQ0lFIEdBUlQgb2YgJXVNIGVuYWJsZWQgKHRhYmxlIGF0IDB4JTAxNmxsWCkuXG4iLAogCQkgKHVuc2lnbmVkKShhZGV2LT5nbWMuZ2FydF9zaXplID4+IDIwKSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcpdGFibGVfYWRkcik7CkBAIC0xMDc5LDkgKzEwNzksMTAgQEAgc3RhdGljIHVuc2lnbmVkIGdtY192OF8wX2dldF92Ymlvc19mYl9zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogc3RhdGljIGludCBnbWNfdjhfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcjsKLQlpbnQgZG1hX2JpdHM7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKKwlhZGV2LT5udW1fdm1odWJzID0gMTsKKwogCWlmIChhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpIHsKIAkJYWRldi0+Z21jLnZyYW1fdHlwZSA9IEFNREdQVV9WUkFNX1RZUEVfVU5LTk9XTjsKIAl9IGVsc2UgewpAQCAtMTExNiwyNSArMTExNywxMiBAQCBzdGF0aWMgaW50IGdtY192OF8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCSAqLwogCWFkZXYtPmdtYy5tY19tYXNrID0gMHhmZmZmZmZmZmZmVUxMOyAvKiA0MCBiaXQgTUMgKi8KIAotCS8qIHNldCBETUEgbWFzayArIG5lZWRfZG1hMzIgZmxhZ3MuCi0JICogUENJRSAtIGNhbiBoYW5kbGUgNDAtYml0cy4KLQkgKiBJR1AgLSBjYW4gaGFuZGxlIDQwLWJpdHMKLQkgKiBQQ0kgLSBkbWEzMiBmb3IgbGVnYWN5IHBjaSBnYXJ0LCA0MCBiaXRzIG9uIG5ld2VyIGFzaWNzCi0JICovCi0JYWRldi0+bmVlZF9kbWEzMiA9IGZhbHNlOwotCWRtYV9iaXRzID0gYWRldi0+bmVlZF9kbWEzMiA/IDMyIDogNDA7Ci0JciA9IHBjaV9zZXRfZG1hX21hc2soYWRldi0+cGRldiwgRE1BX0JJVF9NQVNLKGRtYV9iaXRzKSk7CisJciA9IGRtYV9zZXRfbWFza19hbmRfY29oZXJlbnQoYWRldi0+ZGV2LCBETUFfQklUX01BU0soNDApKTsKIAlpZiAocikgewotCQlhZGV2LT5uZWVkX2RtYTMyID0gdHJ1ZTsKLQkJZG1hX2JpdHMgPSAzMjsKIAkJcHJfd2FybigiYW1kZ3B1OiBObyBzdWl0YWJsZSBETUEgYXZhaWxhYmxlXG4iKTsKKwkJcmV0dXJuIHI7CiAJfQotCXIgPSBwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2soYWRldi0+cGRldiwgRE1BX0JJVF9NQVNLKGRtYV9iaXRzKSk7Ci0JaWYgKHIpIHsKLQkJcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKGFkZXYtPnBkZXYsIERNQV9CSVRfTUFTSygzMikpOwotCQlwcl93YXJuKCJhbWRncHU6IE5vIGNvaGVyZW50IERNQSBhdmFpbGFibGVcbiIpOwotCX0KLQlhZGV2LT5uZWVkX3N3aW90bGIgPSBkcm1fbmVlZF9zd2lvdGxiKGRtYV9iaXRzKTsKKwlhZGV2LT5uZWVkX3N3aW90bGIgPSBkcm1fbmVlZF9zd2lvdGxiKDQwKTsKIAogCXIgPSBnbWNfdjhfMF9pbml0X21pY3JvY29kZShhZGV2KTsKIAlpZiAocikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMKaW5kZXggNzNmM2I3OWEuLmY5MTMzNzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwpAQCAtNDcsNyArNDcsMTAgQEAKIAogI2luY2x1ZGUgImdmeGh1Yl92MV8wLmgiCiAjaW5jbHVkZSAibW1odWJfdjFfMC5oIgorI2luY2x1ZGUgImF0aHViX3YxXzAuaCIKICNpbmNsdWRlICJnZnhodWJfdjFfMS5oIgorI2luY2x1ZGUgIm1taHViX3Y5XzQuaCIKKyNpbmNsdWRlICJ1bWNfdjZfMS5oIgogCiAjaW5jbHVkZSAiaXZzcmNpZC92bWMvaXJxc3Jjc192bWNfMV8wLmgiCiAKQEAgLTI0MSwxOCArMjQ0LDMwIEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZWNjX2ludGVycnVwdF9zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIH0KIAogc3RhdGljIGludCBnbWNfdjlfMF9wcm9jZXNzX3Jhc19kYXRhX2NiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQlzdHJ1Y3QgcmFzX2Vycl9kYXRhICplcnJfZGF0YSwKIAkJc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpCiB7CiAJa2dkMmtmZF9zZXRfc3JhbV9lY2NfZmxhZyhhZGV2LT5rZmQuZGV2KTsKLQlhbWRncHVfcmFzX3Jlc2V0X2dwdShhZGV2LCAwKTsKLQlyZXR1cm4gQU1ER1BVX1JBU19VRTsKKwlpZiAoYWRldi0+dW1jLmZ1bmNzLT5xdWVyeV9yYXNfZXJyb3JfY291bnQpCisJCWFkZXYtPnVtYy5mdW5jcy0+cXVlcnlfcmFzX2Vycm9yX2NvdW50KGFkZXYsIGVycl9kYXRhKTsKKwkvKiB1bWMgcXVlcnlfcmFzX2Vycm9yX2FkZHJlc3MgaXMgYWxzbyByZXNwb25zaWJsZSBmb3IgY2xlYXJpbmcKKwkgKiBlcnJvciBzdGF0dXMKKwkgKi8KKwlpZiAoYWRldi0+dW1jLmZ1bmNzLT5xdWVyeV9yYXNfZXJyb3JfYWRkcmVzcykKKwkJYWRldi0+dW1jLmZ1bmNzLT5xdWVyeV9yYXNfZXJyb3JfYWRkcmVzcyhhZGV2LCBlcnJfZGF0YSk7CisKKwkvKiBvbmx5IHVuY29ycmVjdGFibGUgZXJyb3IgbmVlZHMgZ3B1IHJlc2V0ICovCisJaWYgKGVycl9kYXRhLT51ZV9jb3VudCkKKwkJYW1kZ3B1X3Jhc19yZXNldF9ncHUoYWRldiwgMCk7CisKKwlyZXR1cm4gQU1ER1BVX1JBU19TVUNDRVNTOwogfQogCiBzdGF0aWMgaW50IGdtY192OV8wX3Byb2Nlc3NfZWNjX2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJc3RydWN0IGFtZGdwdV9pcnFfc3JjICpzb3VyY2UsCiAJCXN0cnVjdCBhbWRncHVfaXZfZW50cnkgKmVudHJ5KQogewotCXN0cnVjdCByYXNfY29tbW9uX2lmICpyYXNfaWYgPSBhZGV2LT5nbWMucmFzX2lmOworCXN0cnVjdCByYXNfY29tbW9uX2lmICpyYXNfaWYgPSBhZGV2LT5nbWMudW1jX3Jhc19pZjsKIAlzdHJ1Y3QgcmFzX2Rpc3BhdGNoX2lmIGloX2RhdGEgPSB7CiAJCS5lbnRyeSA9IGVudHJ5LAogCX07CkBAIC0yODQsNyArMjk5LDcgQEAgc3RhdGljIGludCBnbWNfdjlfMF92bV9mYXVsdF9pbnRlcnJ1cHRfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIAlzd2l0Y2ggKHN0YXRlKSB7CiAJY2FzZSBBTURHUFVfSVJRX1NUQVRFX0RJU0FCTEU6Ci0JCWZvciAoaiA9IDA7IGogPCBBTURHUFVfTUFYX1ZNSFVCUzsgaisrKSB7CisJCWZvciAoaiA9IDA7IGogPCBhZGV2LT5udW1fdm1odWJzOyBqKyspIHsKIAkJCWh1YiA9ICZhZGV2LT52bWh1YltqXTsKIAkJCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7CiAJCQkJcmVnID0gaHViLT52bV9jb250ZXh0MF9jbnRsICsgaTsKQEAgLTI5NSw3ICszMTAsNyBAQCBzdGF0aWMgaW50IGdtY192OV8wX3ZtX2ZhdWx0X2ludGVycnVwdF9zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJfQogCQlicmVhazsKIAljYXNlIEFNREdQVV9JUlFfU1RBVEVfRU5BQkxFOgotCQlmb3IgKGogPSAwOyBqIDwgQU1ER1BVX01BWF9WTUhVQlM7IGorKykgeworCQlmb3IgKGogPSAwOyBqIDwgYWRldi0+bnVtX3ZtaHViczsgaisrKSB7CiAJCQlodWIgPSAmYWRldi0+dm1odWJbal07CiAJCQlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgewogCQkJCXJlZyA9IGh1Yi0+dm1fY29udGV4dDBfY250bCArIGk7CkBAIC0zMTUsMTAgKzMzMCwxMSBAQCBzdGF0aWMgaW50IGdtY192OV8wX3Byb2Nlc3NfaW50ZXJydXB0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCXN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlLAogCQkJCXN0cnVjdCBhbWRncHVfaXZfZW50cnkgKmVudHJ5KQogewotCXN0cnVjdCBhbWRncHVfdm1odWIgKmh1YiA9ICZhZGV2LT52bWh1YltlbnRyeS0+dm1pZF9zcmNdOworCXN0cnVjdCBhbWRncHVfdm1odWIgKmh1YjsKIAlib29sIHJldHJ5X2ZhdWx0ID0gISEoZW50cnktPnNyY19kYXRhWzFdICYgMHg4MCk7CiAJdWludDMyX3Qgc3RhdHVzID0gMDsKIAl1NjQgYWRkcjsKKwljaGFyIGh1Yl9uYW1lWzEwXTsKIAogCWFkZHIgPSAodTY0KWVudHJ5LT5zcmNfZGF0YVswXSA8PCAxMjsKIAlhZGRyIHw9ICgodTY0KWVudHJ5LT5zcmNfZGF0YVsxXSAmIDB4ZikgPDwgNDQ7CkBAIC0zMjcsOCArMzQzLDI3IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfcHJvY2Vzc19pbnRlcnJ1cHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCQkgICAgZW50cnktPnRpbWVzdGFtcCkpCiAJCXJldHVybiAxOyAvKiBUaGlzIGFsc28gcHJldmVudHMgc2VuZGluZyBpdCB0byBLRkQgKi8KIAorCWlmIChlbnRyeS0+Y2xpZW50X2lkID09IFNPQzE1X0lIX0NMSUVOVElEX1ZNQykgeworCQlzbnByaW50ZihodWJfbmFtZSwgc2l6ZW9mKGh1Yl9uYW1lKSwgIm1taHViMCIpOworCQlodWIgPSAmYWRldi0+dm1odWJbQU1ER1BVX01NSFVCXzBdOworCX0gZWxzZSBpZiAoZW50cnktPmNsaWVudF9pZCA9PSBTT0MxNV9JSF9DTElFTlRJRF9WTUMxKSB7CisJCXNucHJpbnRmKGh1Yl9uYW1lLCBzaXplb2YoaHViX25hbWUpLCAibW1odWIxIik7CisJCWh1YiA9ICZhZGV2LT52bWh1YltBTURHUFVfTU1IVUJfMV07CisJfSBlbHNlIHsKKwkJc25wcmludGYoaHViX25hbWUsIHNpemVvZihodWJfbmFtZSksICJnZnhodWIwIik7CisJCWh1YiA9ICZhZGV2LT52bWh1YltBTURHUFVfR0ZYSFVCXzBdOworCX0KKwogCS8qIElmIGl0J3MgdGhlIGZpcnN0IGZhdWx0IGZvciB0aGlzIGFkZHJlc3MsIHByb2Nlc3MgaXQgbm9ybWFsbHkgKi8KIAlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkgeworCQkvKgorCQkgKiBJc3N1ZSBhIGR1bW15IHJlYWQgdG8gd2FpdCBmb3IgdGhlIHN0YXR1cyByZWdpc3RlciB0bworCQkgKiBiZSB1cGRhdGVkIHRvIGF2b2lkIHJlYWRpbmcgYW4gaW5jb3JyZWN0IHZhbHVlIGR1ZSB0bworCQkgKiB0aGUgbmV3IGZhc3QgR1JCTSBpbnRlcmZhY2UuCisJCSAqLworCQlpZiAoZW50cnktPnZtaWRfc3JjID09IEFNREdQVV9HRlhIVUJfMCkKKwkJCVJSRUczMihodWItPnZtX2wyX3Byb19mYXVsdF9zdGF0dXMpOworCiAJCXN0YXR1cyA9IFJSRUczMihodWItPnZtX2wyX3Byb19mYXVsdF9zdGF0dXMpOwogCQlXUkVHMzJfUChodWItPnZtX2wyX3Byb19mYXVsdF9jbnRsLCAxLCB+MSk7CiAJfQpAQCAtMzQyLDE3ICszNzcsMzMgQEAgc3RhdGljIGludCBnbWNfdjlfMF9wcm9jZXNzX2ludGVycnVwdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJZGV2X2VycihhZGV2LT5kZXYsCiAJCQkiWyVzXSAlcyBwYWdlIGZhdWx0IChzcmNfaWQ6JXUgcmluZzoldSB2bWlkOiV1ICIKIAkJCSJwYXNpZDoldSwgZm9yIHByb2Nlc3MgJXMgcGlkICVkIHRocmVhZCAlcyBwaWQgJWQpXG4iLAotCQkJZW50cnktPnZtaWRfc3JjID8gIm1taHViIiA6ICJnZnhodWIiLAotCQkJcmV0cnlfZmF1bHQgPyAicmV0cnkiIDogIm5vLXJldHJ5IiwKKwkJCWh1Yl9uYW1lLCByZXRyeV9mYXVsdCA/ICJyZXRyeSIgOiAibm8tcmV0cnkiLAogCQkJZW50cnktPnNyY19pZCwgZW50cnktPnJpbmdfaWQsIGVudHJ5LT52bWlkLAogCQkJZW50cnktPnBhc2lkLCB0YXNrX2luZm8ucHJvY2Vzc19uYW1lLCB0YXNrX2luZm8udGdpZCwKIAkJCXRhc2tfaW5mby50YXNrX25hbWUsIHRhc2tfaW5mby5waWQpOwotCQlkZXZfZXJyKGFkZXYtPmRldiwgIiAgaW4gcGFnZSBzdGFydGluZyBhdCBhZGRyZXNzIDB4JTAxNmxseCBmcm9tICVkXG4iLAorCQlkZXZfZXJyKGFkZXYtPmRldiwgIiAgaW4gcGFnZSBzdGFydGluZyBhdCBhZGRyZXNzIDB4JTAxNmxseCBmcm9tIGNsaWVudCAlZFxuIiwKIAkJCWFkZHIsIGVudHJ5LT5jbGllbnRfaWQpOwotCQlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkKKwkJaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsKIAkJCWRldl9lcnIoYWRldi0+ZGV2LAogCQkJCSJWTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVUzoweCUwOFhcbiIsCiAJCQkJc3RhdHVzKTsKKwkJCWRldl9lcnIoYWRldi0+ZGV2LCAiXHQgTU9SRV9GQVVMVFM6IDB4JWx4XG4iLAorCQkJCVJFR19HRVRfRklFTEQoc3RhdHVzLAorCQkJCVZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTLCBNT1JFX0ZBVUxUUykpOworCQkJZGV2X2VycihhZGV2LT5kZXYsICJcdCBXQUxLRVJfRVJST1I6IDB4JWx4XG4iLAorCQkJCVJFR19HRVRfRklFTEQoc3RhdHVzLAorCQkJCVZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTLCBXQUxLRVJfRVJST1IpKTsKKwkJCWRldl9lcnIoYWRldi0+ZGV2LCAiXHQgUEVSTUlTU0lPTl9GQVVMVFM6IDB4JWx4XG4iLAorCQkJCVJFR19HRVRfRklFTEQoc3RhdHVzLAorCQkJCVZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTLCBQRVJNSVNTSU9OX0ZBVUxUUykpOworCQkJZGV2X2VycihhZGV2LT5kZXYsICJcdCBNQVBQSU5HX0VSUk9SOiAweCVseFxuIiwKKwkJCQlSRUdfR0VUX0ZJRUxEKHN0YXR1cywKKwkJCQlWTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVUywgTUFQUElOR19FUlJPUikpOworCQkJZGV2X2VycihhZGV2LT5kZXYsICJcdCBSVzogMHglbHhcbiIsCisJCQkJUkVHX0dFVF9GSUVMRChzdGF0dXMsCisJCQkJVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVMsIFJXKSk7CisKKwkJfQogCX0KIAogCXJldHVybiAwOwpAQCAtNDEzLDQ0ICs0NjQsNTMgQEAgc3RhdGljIHVpbnQzMl90IGdtY192OV8wX2dldF9pbnZhbGlkYXRlX3JlcSh1bnNpZ25lZCBpbnQgdm1pZCwKICAqCiAgKiBGbHVzaCB0aGUgVExCIGZvciB0aGUgcmVxdWVzdGVkIHBhZ2UgdGFibGUgdXNpbmcgY2VydGFpbiB0eXBlLgogICovCi1zdGF0aWMgdm9pZCBnbWNfdjlfMF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCXVpbnQzMl90IHZtaWQsIHVpbnQzMl90IGZsdXNoX3R5cGUpCitzdGF0aWMgdm9pZCBnbWNfdjlfMF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCB2bWlkLAorCQkJCQl1aW50MzJfdCB2bWh1YiwgdWludDMyX3QgZmx1c2hfdHlwZSkKIHsKIAljb25zdCB1bnNpZ25lZCBlbmcgPSAxNzsKLQl1bnNpZ25lZCBpLCBqOworCXUzMiBqLCB0bXA7CisJc3RydWN0IGFtZGdwdV92bWh1YiAqaHViOwogCi0JZm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfVk1IVUJTOyArK2kpIHsKLQkJc3RydWN0IGFtZGdwdV92bWh1YiAqaHViID0gJmFkZXYtPnZtaHViW2ldOwotCQl1MzIgdG1wID0gZ21jX3Y5XzBfZ2V0X2ludmFsaWRhdGVfcmVxKHZtaWQsIGZsdXNoX3R5cGUpOworCUJVR19PTih2bWh1YiA+PSBhZGV2LT5udW1fdm1odWJzKTsKIAotCQkvKiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgYSBIVyB3b3JrYXJvdW5kIHVuZGVyIFNSSU9WIGFzIHdlbGwKLQkJICogYXMgR0ZYT0ZGIHVuZGVyIGJhcmUgbWV0YWwKLQkJICovCi0JCWlmIChhZGV2LT5nZngua2lxLnJpbmcuc2NoZWQucmVhZHkgJiYKLQkJICAgIChhbWRncHVfc3Jpb3ZfcnVudGltZShhZGV2KSB8fCAhYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSAmJgotCQkgICAgIWFkZXYtPmluX2dwdV9yZXNldCkgewotCQkJdWludDMyX3QgcmVxID0gaHViLT52bV9pbnZfZW5nMF9yZXEgKyBlbmc7Ci0JCQl1aW50MzJfdCBhY2sgPSBodWItPnZtX2ludl9lbmcwX2FjayArIGVuZzsKKwlodWIgPSAmYWRldi0+dm1odWJbdm1odWJdOworCXRtcCA9IGdtY192OV8wX2dldF9pbnZhbGlkYXRlX3JlcSh2bWlkLCBmbHVzaF90eXBlKTsKIAotCQkJYW1kZ3B1X3ZpcnRfa2lxX3JlZ193cml0ZV9yZWdfd2FpdChhZGV2LCByZXEsIGFjaywgdG1wLAotCQkJCQkJCSAgIDEgPDwgdm1pZCk7Ci0JCQljb250aW51ZTsKLQkJfQorCS8qIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBhIEhXIHdvcmthcm91bmQgdW5kZXIgU1JJT1YgYXMgd2VsbAorCSAqIGFzIEdGWE9GRiB1bmRlciBiYXJlIG1ldGFsCisJICovCisJaWYgKGFkZXYtPmdmeC5raXEucmluZy5zY2hlZC5yZWFkeSAmJgorCQkJKGFtZGdwdV9zcmlvdl9ydW50aW1lKGFkZXYpIHx8ICFhbWRncHVfc3Jpb3ZfdmYoYWRldikpICYmCisJCQkhYWRldi0+aW5fZ3B1X3Jlc2V0KSB7CisJCXVpbnQzMl90IHJlcSA9IGh1Yi0+dm1faW52X2VuZzBfcmVxICsgZW5nOworCQl1aW50MzJfdCBhY2sgPSBodWItPnZtX2ludl9lbmcwX2FjayArIGVuZzsKIAotCQlzcGluX2xvY2soJmFkZXYtPmdtYy5pbnZhbGlkYXRlX2xvY2spOwotCQlXUkVHMzJfTk9fS0lRKGh1Yi0+dm1faW52X2VuZzBfcmVxICsgZW5nLCB0bXApOwotCQlmb3IgKGogPSAwOyBqIDwgYWRldi0+dXNlY190aW1lb3V0OyBqKyspIHsKLQkJCXRtcCA9IFJSRUczMl9OT19LSVEoaHViLT52bV9pbnZfZW5nMF9hY2sgKyBlbmcpOwotCQkJaWYgKHRtcCAmICgxIDw8IHZtaWQpKQotCQkJCWJyZWFrOwotCQkJdWRlbGF5KDEpOwotCQl9Ci0JCXNwaW5fdW5sb2NrKCZhZGV2LT5nbWMuaW52YWxpZGF0ZV9sb2NrKTsKLQkJaWYgKGogPCBhZGV2LT51c2VjX3RpbWVvdXQpCi0JCQljb250aW51ZTsKLQotCQlEUk1fRVJST1IoIlRpbWVvdXQgd2FpdGluZyBmb3IgVk0gZmx1c2ggQUNLIVxuIik7CisJCWFtZGdwdV92aXJ0X2tpcV9yZWdfd3JpdGVfcmVnX3dhaXQoYWRldiwgcmVxLCBhY2ssIHRtcCwKKwkJCQkxIDw8IHZtaWQpOworCQlyZXR1cm47CiAJfQorCisJc3Bpbl9sb2NrKCZhZGV2LT5nbWMuaW52YWxpZGF0ZV9sb2NrKTsKKwlXUkVHMzJfTk9fS0lRKGh1Yi0+dm1faW52X2VuZzBfcmVxICsgZW5nLCB0bXApOworCisJLyoKKwkgKiBJc3N1ZSBhIGR1bW15IHJlYWQgdG8gd2FpdCBmb3IgdGhlIEFDSyByZWdpc3RlciB0byBiZSBjbGVhcmVkCisJICogdG8gYXZvaWQgYSBmYWxzZSBBQ0sgZHVlIHRvIHRoZSBuZXcgZmFzdCBHUkJNIGludGVyZmFjZS4KKwkgKi8KKwlpZiAodm1odWIgPT0gQU1ER1BVX0dGWEhVQl8wKQorCQlSUkVHMzJfTk9fS0lRKGh1Yi0+dm1faW52X2VuZzBfcmVxICsgZW5nKTsKKworCWZvciAoaiA9IDA7IGogPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGorKykgeworCQl0bXAgPSBSUkVHMzJfTk9fS0lRKGh1Yi0+dm1faW52X2VuZzBfYWNrICsgZW5nKTsKKwkJaWYgKHRtcCAmICgxIDw8IHZtaWQpKQorCQkJYnJlYWs7CisJCXVkZWxheSgxKTsKKwl9CisJc3Bpbl91bmxvY2soJmFkZXYtPmdtYy5pbnZhbGlkYXRlX2xvY2spOworCWlmIChqIDwgYWRldi0+dXNlY190aW1lb3V0KQorCQlyZXR1cm47CisKKwlEUk1fRVJST1IoIlRpbWVvdXQgd2FpdGluZyBmb3IgVk0gZmx1c2ggQUNLIVxuIik7CiB9CiAKIHN0YXRpYyB1aW50NjRfdCBnbWNfdjlfMF9lbWl0X2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLApAQCAtNDgwLDcgKzU0MCwxMSBAQCBzdGF0aWMgdm9pZCBnbWNfdjlfMF9lbWl0X3Bhc2lkX21hcHBpbmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1bnNpZ25lZCB2bWlkLAogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAl1aW50MzJfdCByZWc7CiAKLQlpZiAocmluZy0+ZnVuY3MtPnZtaHViID09IEFNREdQVV9HRlhIVUIpCisJLyogRG8gbm90aGluZyBiZWNhdXNlIHRoZXJlJ3Mgbm8gbHV0IHJlZ2lzdGVyIGZvciBtbWh1YjEuICovCisJaWYgKHJpbmctPmZ1bmNzLT52bWh1YiA9PSBBTURHUFVfTU1IVUJfMSkKKwkJcmV0dXJuOworCisJaWYgKHJpbmctPmZ1bmNzLT52bWh1YiA9PSBBTURHUFVfR0ZYSFVCXzApCiAJCXJlZyA9IFNPQzE1X1JFR19PRkZTRVQoT1NTU1lTLCAwLCBtbUlIX1ZNSURfMF9MVVQpICsgdm1pZDsKIAllbHNlCiAJCXJlZyA9IFNPQzE1X1JFR19PRkZTRVQoT1NTU1lTLCAwLCBtbUlIX1ZNSURfMF9MVVRfTU0pICsgdm1pZDsKQEAgLTU5NywxMiArNjYxLDQxIEBAIHN0YXRpYyB2b2lkIGdtY192OV8wX3NldF9nbWNfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJYWRldi0+Z21jLmdtY19mdW5jcyA9ICZnbWNfdjlfMF9nbWNfZnVuY3M7CiB9CiAKK3N0YXRpYyB2b2lkIGdtY192OV8wX3NldF91bWNfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKKwljYXNlIENISVBfVkVHQTIwOgorCQlhZGV2LT51bWMubWF4X3Jhc19lcnJfY250X3Blcl9xdWVyeSA9IFVNQ19WNl8xX1RPVEFMX0NIQU5ORUxfTlVNOworCQlhZGV2LT51bWMuY2hhbm5lbF9pbnN0X251bSA9IFVNQ19WNl8xX0NIQU5ORUxfSU5TVEFOQ0VfTlVNOworCQlhZGV2LT51bWMudW1jX2luc3RfbnVtID0gVU1DX1Y2XzFfVU1DX0lOU1RBTkNFX05VTTsKKwkJYWRldi0+dW1jLmNoYW5uZWxfb2ZmcyA9IFVNQ19WNl8xX1BFUl9DSEFOTkVMX09GRlNFVDsKKwkJYWRldi0+dW1jLmNoYW5uZWxfaWR4X3RibCA9ICZ1bWNfdjZfMV9jaGFubmVsX2lkeF90YmxbMF1bMF07CisJCWFkZXYtPnVtYy5mdW5jcyA9ICZ1bWNfdjZfMV9mdW5jczsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorfQorCitzdGF0aWMgdm9pZCBnbWNfdjlfMF9zZXRfbW1odWJfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKKwljYXNlIENISVBfVkVHQTIwOgorCQlhZGV2LT5tbWh1Yl9mdW5jcyA9ICZtbWh1Yl92MV8wX2Z1bmNzOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9Cit9CisKIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlnbWNfdjlfMF9zZXRfZ21jX2Z1bmNzKGFkZXYpOwogCWdtY192OV8wX3NldF9pcnFfZnVuY3MoYWRldik7CisJZ21jX3Y5XzBfc2V0X3VtY19mdW5jcyhhZGV2KTsKKwlnbWNfdjlfMF9zZXRfbW1odWJfZnVuY3MoYWRldik7CiAKIAlhZGV2LT5nbWMuc2hhcmVkX2FwZXJ0dXJlX3N0YXJ0ID0gMHgyMDAwMDAwMDAwMDAwMDAwVUxMOwogCWFkZXYtPmdtYy5zaGFyZWRfYXBlcnR1cmVfZW5kID0KQEAgLTYyOSw2ICs3MjIsOCBAQCBzdGF0aWMgYm9vbCBnbWNfdjlfMF9rZWVwX3N0b2xlbl9tZW1vcnkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKIAljYXNlIENISVBfVkVHQTEwOgogCWNhc2UgQ0hJUF9SQVZFTjoKKwljYXNlIENISVBfQVJDVFVSVVM6CisJY2FzZSBDSElQX1JFTk9JUjoKIAkJcmV0dXJuIHRydWU7CiAJY2FzZSBDSElQX1ZFR0ExMjoKIAljYXNlIENISVBfVkVHQTIwOgpAQCAtNjQxLDcgKzczNiw4IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfYWxsb2NhdGVfdm1faW52X2VuZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7CiAJdW5zaWduZWQgdm1faW52X2VuZ3NbQU1ER1BVX01BWF9WTUhVQlNdID0KLQkJe0dGWEhVQl9GUkVFX1ZNX0lOVl9FTkdTX0JJVE1BUCwgTU1IVUJfRlJFRV9WTV9JTlZfRU5HU19CSVRNQVB9OworCQl7R0ZYSFVCX0ZSRUVfVk1fSU5WX0VOR1NfQklUTUFQLCBNTUhVQl9GUkVFX1ZNX0lOVl9FTkdTX0JJVE1BUCwKKwkJR0ZYSFVCX0ZSRUVfVk1fSU5WX0VOR1NfQklUTUFQfTsKIAl1bnNpZ25lZCBpOwogCXVuc2lnbmVkIHZtaHViLCBpbnZfZW5nOwogCkBAIC02NjYsMjkgKzc2MiwyOCBAQCBzdGF0aWMgaW50IGdtY192OV8wX2FsbG9jYXRlX3ZtX2ludl9lbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZ21jX3Y5XzBfZWNjX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCitzdGF0aWMgaW50IGdtY192OV8wX2VjY19yYXNfYmxvY2tfbGF0ZV9pbml0KHZvaWQgKmhhbmRsZSwKKwkJCXN0cnVjdCByYXNfZnNfaWYgKmZzX2luZm8sIHN0cnVjdCByYXNfY29tbW9uX2lmICpyYXNfYmxvY2spCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7Ci0Jc3RydWN0IHJhc19jb21tb25faWYgKipyYXNfaWYgPSAmYWRldi0+Z21jLnJhc19pZjsKKwlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiAqKnJhc19pZiA9IE5VTEw7CiAJc3RydWN0IHJhc19paF9pZiBpaF9pbmZvID0gewogCQkuY2IgPSBnbWNfdjlfMF9wcm9jZXNzX3Jhc19kYXRhX2NiLAogCX07Ci0Jc3RydWN0IHJhc19mc19pZiBmc19pbmZvID0gewotCQkuc3lzZnNfbmFtZSA9ICJ1bWNfZXJyX2NvdW50IiwKLQkJLmRlYnVnZnNfbmFtZSA9ICJ1bWNfZXJyX2luamVjdCIsCi0JfTsKLQlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiByYXNfYmxvY2sgPSB7Ci0JCS5ibG9jayA9IEFNREdQVV9SQVNfQkxPQ0tfX1VNQywKLQkJLnR5cGUgPSBBTURHUFVfUkFTX0VSUk9SX19NVUxUSV9VTkNPUlJFQ1RBQkxFLAotCQkuc3ViX2Jsb2NrX2luZGV4ID0gMCwKLQkJLm5hbWUgPSAidW1jIiwKLQl9OwogCWludCByOwogCi0JaWYgKCFhbWRncHVfcmFzX2lzX3N1cHBvcnRlZChhZGV2LCBBTURHUFVfUkFTX0JMT0NLX19VTUMpKSB7Ci0JCWFtZGdwdV9yYXNfZmVhdHVyZV9lbmFibGVfb25fYm9vdChhZGV2LCAmcmFzX2Jsb2NrLCAwKTsKKwlpZiAocmFzX2Jsb2NrLT5ibG9jayA9PSBBTURHUFVfUkFTX0JMT0NLX19VTUMpCisJCXJhc19pZiA9ICZhZGV2LT5nbWMudW1jX3Jhc19pZjsKKwllbHNlIGlmIChyYXNfYmxvY2stPmJsb2NrID09IEFNREdQVV9SQVNfQkxPQ0tfX01NSFVCKQorCQlyYXNfaWYgPSAmYWRldi0+Z21jLm1taHViX3Jhc19pZjsKKwllbHNlCisJCUJVRygpOworCisJaWYgKCFhbWRncHVfcmFzX2lzX3N1cHBvcnRlZChhZGV2LCByYXNfYmxvY2stPmJsb2NrKSkgeworCQlhbWRncHVfcmFzX2ZlYXR1cmVfZW5hYmxlX29uX2Jvb3QoYWRldiwgcmFzX2Jsb2NrLCAwKTsKIAkJcmV0dXJuIDA7CiAJfQorCiAJLyogaGFuZGxlIHJlc3VtZSBwYXRoLiAqLwogCWlmICgqcmFzX2lmKSB7CiAJCS8qIHJlc2VuZCByYXMgVEEgZW5hYmxlIGNtZCBkdXJpbmcgcmVzdW1lLgpAQCAtNzAwLDcgKzc5NSw3IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZWNjX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCiAJCQlpZiAociA9PSAtRUFHQUlOKSB7CiAJCQkJLyogcmVxdWVzdCBhIGdwdSByZXNldC4gd2lsbCBydW4gYWdhaW4uICovCiAJCQkJYW1kZ3B1X3Jhc19yZXF1ZXN0X3Jlc2V0X29uX2Jvb3QoYWRldiwKLQkJCQkJCUFNREdQVV9SQVNfQkxPQ0tfX1VNQyk7CisJCQkJCQlyYXNfYmxvY2stPmJsb2NrKTsKIAkJCQlyZXR1cm4gMDsKIAkJCX0KIAkJCS8qIGZhaWwgdG8gZW5hYmxlIHJhcywgY2xlYW51cCBhbGwuICovCkBAIC03MTQsNDEgKzgwOSw0NiBAQCBzdGF0aWMgaW50IGdtY192OV8wX2VjY19sYXRlX2luaXQodm9pZCAqaGFuZGxlKQogCWlmICghKnJhc19pZikKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQkqKnJhc19pZiA9IHJhc19ibG9jazsKKwkqKnJhc19pZiA9ICpyYXNfYmxvY2s7CiAKIAlyID0gYW1kZ3B1X3Jhc19mZWF0dXJlX2VuYWJsZV9vbl9ib290KGFkZXYsICpyYXNfaWYsIDEpOwogCWlmIChyKSB7CiAJCWlmIChyID09IC1FQUdBSU4pIHsKIAkJCWFtZGdwdV9yYXNfcmVxdWVzdF9yZXNldF9vbl9ib290KGFkZXYsCi0JCQkJCUFNREdQVV9SQVNfQkxPQ0tfX1VNQyk7CisJCQkJCXJhc19ibG9jay0+YmxvY2spOwogCQkJciA9IDA7CiAJCX0KIAkJZ290byBmZWF0dXJlOwogCX0KIAogCWloX2luZm8uaGVhZCA9ICoqcmFzX2lmOwotCWZzX2luZm8uaGVhZCA9ICoqcmFzX2lmOworCWZzX2luZm8tPmhlYWQgPSAqKnJhc19pZjsKIAotCXIgPSBhbWRncHVfcmFzX2ludGVycnVwdF9hZGRfaGFuZGxlcihhZGV2LCAmaWhfaW5mbyk7Ci0JaWYgKHIpCi0JCWdvdG8gaW50ZXJydXB0OworCWlmIChyYXNfYmxvY2stPmJsb2NrID09IEFNREdQVV9SQVNfQkxPQ0tfX1VNQykgeworCQlyID0gYW1kZ3B1X3Jhc19pbnRlcnJ1cHRfYWRkX2hhbmRsZXIoYWRldiwgJmloX2luZm8pOworCQlpZiAocikKKwkJCWdvdG8gaW50ZXJydXB0OworCX0KIAotCWFtZGdwdV9yYXNfZGVidWdmc19jcmVhdGUoYWRldiwgJmZzX2luZm8pOworCWFtZGdwdV9yYXNfZGVidWdmc19jcmVhdGUoYWRldiwgZnNfaW5mbyk7CiAKLQlyID0gYW1kZ3B1X3Jhc19zeXNmc19jcmVhdGUoYWRldiwgJmZzX2luZm8pOworCXIgPSBhbWRncHVfcmFzX3N5c2ZzX2NyZWF0ZShhZGV2LCBmc19pbmZvKTsKIAlpZiAocikKIAkJZ290byBzeXNmczsKIHJlc3VtZToKLQlyID0gYW1kZ3B1X2lycV9nZXQoYWRldiwgJmFkZXYtPmdtYy5lY2NfaXJxLCAwKTsKLQlpZiAocikKLQkJZ290byBpcnE7CisJaWYgKHJhc19ibG9jay0+YmxvY2sgPT0gQU1ER1BVX1JBU19CTE9DS19fVU1DKSB7CisJCXIgPSBhbWRncHVfaXJxX2dldChhZGV2LCAmYWRldi0+Z21jLmVjY19pcnEsIDApOworCQlpZiAocikKKwkJCWdvdG8gaXJxOworCX0KIAogCXJldHVybiAwOwogaXJxOgogCWFtZGdwdV9yYXNfc3lzZnNfcmVtb3ZlKGFkZXYsICpyYXNfaWYpOwogc3lzZnM6CiAJYW1kZ3B1X3Jhc19kZWJ1Z2ZzX3JlbW92ZShhZGV2LCAqcmFzX2lmKTsKLQlhbWRncHVfcmFzX2ludGVycnVwdF9yZW1vdmVfaGFuZGxlcihhZGV2LCAmaWhfaW5mbyk7CisJaWYgKHJhc19ibG9jay0+YmxvY2sgPT0gQU1ER1BVX1JBU19CTE9DS19fVU1DKQorCQlhbWRncHVfcmFzX2ludGVycnVwdF9yZW1vdmVfaGFuZGxlcihhZGV2LCAmaWhfaW5mbyk7CiBpbnRlcnJ1cHQ6CiAJYW1kZ3B1X3Jhc19mZWF0dXJlX2VuYWJsZShhZGV2LCAqcmFzX2lmLCAwKTsKIGZlYXR1cmU6CkBAIC03NTcsNiArODU3LDQwIEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZWNjX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCiAJcmV0dXJuIHI7CiB9CiAKK3N0YXRpYyBpbnQgZ21jX3Y5XzBfZWNjX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCit7CisJaW50IHI7CisKKwlzdHJ1Y3QgcmFzX2ZzX2lmIHVtY19mc19pbmZvID0geworCQkuc3lzZnNfbmFtZSA9ICJ1bWNfZXJyX2NvdW50IiwKKwkJLmRlYnVnZnNfbmFtZSA9ICJ1bWNfZXJyX2luamVjdCIsCisJfTsKKwlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiB1bWNfcmFzX2Jsb2NrID0geworCQkuYmxvY2sgPSBBTURHUFVfUkFTX0JMT0NLX19VTUMsCisJCS50eXBlID0gQU1ER1BVX1JBU19FUlJPUl9fTVVMVElfVU5DT1JSRUNUQUJMRSwKKwkJLnN1Yl9ibG9ja19pbmRleCA9IDAsCisJCS5uYW1lID0gInVtYyIsCisJfTsKKwlzdHJ1Y3QgcmFzX2ZzX2lmIG1taHViX2ZzX2luZm8gPSB7CisJCS5zeXNmc19uYW1lID0gIm1taHViX2Vycl9jb3VudCIsCisJCS5kZWJ1Z2ZzX25hbWUgPSAibW1odWJfZXJyX2luamVjdCIsCisJfTsKKwlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiBtbWh1Yl9yYXNfYmxvY2sgPSB7CisJCS5ibG9jayA9IEFNREdQVV9SQVNfQkxPQ0tfX01NSFVCLAorCQkudHlwZSA9IEFNREdQVV9SQVNfRVJST1JfX01VTFRJX1VOQ09SUkVDVEFCTEUsCisJCS5zdWJfYmxvY2tfaW5kZXggPSAwLAorCQkubmFtZSA9ICJtbWh1YiIsCisJfTsKKworCXIgPSBnbWNfdjlfMF9lY2NfcmFzX2Jsb2NrX2xhdGVfaW5pdChoYW5kbGUsCisJCQkmdW1jX2ZzX2luZm8sICZ1bWNfcmFzX2Jsb2NrKTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwlyID0gZ21jX3Y5XzBfZWNjX3Jhc19ibG9ja19sYXRlX2luaXQoaGFuZGxlLAorCQkJJm1taHViX2ZzX2luZm8sICZtbWh1Yl9yYXNfYmxvY2spOworCXJldHVybiByOworfQogCiBzdGF0aWMgaW50IGdtY192OV8wX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCiB7CkBAIC04MDYsMTQgKzk0MCwxNyBAQCBzdGF0aWMgdm9pZCBnbWNfdjlfMF92cmFtX2d0dF9sb2NhdGlvbihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJc3RydWN0IGFtZGdwdV9nbWMgKm1jKQogewogCXU2NCBiYXNlID0gMDsKLQlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkKKworCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9BUkNUVVJVUykKKwkJYmFzZSA9IG1taHViX3Y5XzRfZ2V0X2ZiX2xvY2F0aW9uKGFkZXYpOworCWVsc2UgaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpCiAJCWJhc2UgPSBtbWh1Yl92MV8wX2dldF9mYl9sb2NhdGlvbihhZGV2KTsKKwogCS8qIGFkZCB0aGUgeGdtaSBvZmZzZXQgb2YgdGhlIHBoeXNpY2FsIG5vZGUgKi8KIAliYXNlICs9IGFkZXYtPmdtYy54Z21pLnBoeXNpY2FsX25vZGVfaWQgKiBhZGV2LT5nbWMueGdtaS5ub2RlX3NlZ21lbnRfc2l6ZTsKIAlhbWRncHVfZ21jX3ZyYW1fbG9jYXRpb24oYWRldiwgbWMsIGJhc2UpOwogCWFtZGdwdV9nbWNfZ2FydF9sb2NhdGlvbihhZGV2LCBtYyk7Ci0JaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpCi0JCWFtZGdwdV9nbWNfYWdwX2xvY2F0aW9uKGFkZXYsIG1jKTsKKwlhbWRncHVfZ21jX2FncF9sb2NhdGlvbihhZGV2LCBtYyk7CiAJLyogYmFzZSBvZmZzZXQgb2YgdnJhbSBwYWdlcyAqLwogCWFkZXYtPnZtX21hbmFnZXIudnJhbV9iYXNlX29mZnNldCA9IGdmeGh1Yl92MV8wX2dldF9tY19mYl9vZmZzZXQoYWRldik7CiAKQEAgLTg4NywxMCArMTAyNCwxMiBAQCBzdGF0aWMgaW50IGdtY192OV8wX21jX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWNhc2UgQ0hJUF9WRUdBMTA6ICAvKiBhbGwgZW5naW5lcyBzdXBwb3J0IEdQVVZNICovCiAJCWNhc2UgQ0hJUF9WRUdBMTI6ICAvKiBhbGwgZW5naW5lcyBzdXBwb3J0IEdQVVZNICovCiAJCWNhc2UgQ0hJUF9WRUdBMjA6CisJCWNhc2UgQ0hJUF9BUkNUVVJVUzoKIAkJZGVmYXVsdDoKIAkJCWFkZXYtPmdtYy5nYXJ0X3NpemUgPSA1MTJVTEwgPDwgMjA7CiAJCQlicmVhazsKIAkJY2FzZSBDSElQX1JBVkVOOiAgIC8qIERDRSBTRyBzdXBwb3J0ICovCisJCWNhc2UgQ0hJUF9SRU5PSVI6CiAJCQlhZGV2LT5nbWMuZ2FydF9zaXplID0gMTAyNFVMTCA8PCAyMDsKIAkJCWJyZWFrOwogCQl9CkBAIC05MjMsNyArMTA2Miw3IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZ2FydF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiBzdGF0aWMgdW5zaWduZWQgZ21jX3Y5XzBfZ2V0X3ZiaW9zX2ZiX3NpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0JdTMyIGQxdmdhX2NvbnRyb2wgPSBSUkVHMzJfU09DMTUoRENFLCAwLCBtbUQxVkdBX0NPTlRST0wpOworCXUzMiBkMXZnYV9jb250cm9sOwogCXVuc2lnbmVkIHNpemU7CiAKIAkvKgpAQCAtOTMzLDYgKzEwNzIsNyBAQCBzdGF0aWMgdW5zaWduZWQgZ21jX3Y5XzBfZ2V0X3ZiaW9zX2ZiX3NpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaWYgKGdtY192OV8wX2tlZXBfc3RvbGVuX21lbW9yeShhZGV2KSkKIAkJcmV0dXJuIDkgKiAxMDI0ICogMTAyNDsKIAorCWQxdmdhX2NvbnRyb2wgPSBSUkVHMzJfU09DMTUoRENFLCAwLCBtbUQxVkdBX0NPTlRST0wpOwogCWlmIChSRUdfR0VUX0ZJRUxEKGQxdmdhX2NvbnRyb2wsIEQxVkdBX0NPTlRST0wsIEQxVkdBX01PREVfRU5BQkxFKSkgewogCQlzaXplID0gOSAqIDEwMjQgKiAxMDI0OyAvKiByZXNlcnZlIDhNQiBmb3IgdmdhIGVtdWxhdG9yIGFuZCAxIE1CIGZvciBGQiAqLwogCX0gZWxzZSB7CkBAIC05NDAsNiArMTA4MCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBnbWNfdjlfMF9nZXRfdmJpb3NfZmJfc2l6ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCQlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCQljYXNlIENISVBfUkFWRU46CisJCWNhc2UgQ0hJUF9SRU5PSVI6CiAJCQl2aWV3cG9ydCA9IFJSRUczMl9TT0MxNShEQ0UsIDAsIG1tSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT04pOwogCQkJc2l6ZSA9IChSRUdfR0VUX0ZJRUxEKHZpZXdwb3J0LAogCQkJCQkgICAgICBIVUJQMF9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTiwgUFJJX1ZJRVdQT1JUX0hFSUdIVCkgKgpAQCAtOTY4LDE3ICsxMTA5LDIxIEBAIHN0YXRpYyB1bnNpZ25lZCBnbWNfdjlfMF9nZXRfdmJpb3NfZmJfc2l6ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHN0YXRpYyBpbnQgZ21jX3Y5XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7Ci0JaW50IGRtYV9iaXRzOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJZ2Z4aHViX3YxXzBfaW5pdChhZGV2KTsKLQltbWh1Yl92MV8wX2luaXQoYWRldik7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX0FSQ1RVUlVTKQorCQltbWh1Yl92OV80X2luaXQoYWRldik7CisJZWxzZQorCQltbWh1Yl92MV8wX2luaXQoYWRldik7CiAKIAlzcGluX2xvY2tfaW5pdCgmYWRldi0+Z21jLmludmFsaWRhdGVfbG9jayk7CiAKIAlhZGV2LT5nbWMudnJhbV90eXBlID0gYW1kZ3B1X2F0b21maXJtd2FyZV9nZXRfdnJhbV90eXBlKGFkZXYpOwogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJY2FzZSBDSElQX1JBVkVOOgorCQlhZGV2LT5udW1fdm1odWJzID0gMjsKKwogCQlpZiAoYWRldi0+cmV2X2lkID09IDB4MCB8fCBhZGV2LT5yZXZfaWQgPT0gMHgxKSB7CiAJCQlhbWRncHVfdm1fYWRqdXN0X3NpemUoYWRldiwgMjU2ICogMTAyNCwgOSwgMywgNDgpOwogCQl9IGVsc2UgewpAQCAtOTkxLDYgKzExMzYsMTAgQEAgc3RhdGljIGludCBnbWNfdjlfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIAljYXNlIENISVBfVkVHQTEwOgogCWNhc2UgQ0hJUF9WRUdBMTI6CiAJY2FzZSBDSElQX1ZFR0EyMDoKKwljYXNlIENISVBfUkVOT0lSOgorCQlhZGV2LT5udW1fdm1odWJzID0gMjsKKworCiAJCS8qCiAJCSAqIFRvIGZ1bGZpbGwgNC1sZXZlbCBwYWdlIHN1cHBvcnQsCiAJCSAqIHZtIHNpemUgaXMgMjU2VEIgKDQ4Yml0KSwgbWF4aW11bSBzaXplIG9mIFZlZ2ExMCwKQEAgLTEwMDIsNiArMTE1MSwxMiBAQCBzdGF0aWMgaW50IGdtY192OV8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCQllbHNlCiAJCQlhbWRncHVfdm1fYWRqdXN0X3NpemUoYWRldiwgMjU2ICogMTAyNCwgOSwgMywgNDgpOwogCQlicmVhazsKKwljYXNlIENISVBfQVJDVFVSVVM6CisJCWFkZXYtPm51bV92bWh1YnMgPSAzOworCisJCS8qIEtlZXAgdGhlIHZtIHNpemUgc2FtZSB3aXRoIFZlZ2EyMCAqLworCQlhbWRncHVfdm1fYWRqdXN0X3NpemUoYWRldiwgMjU2ICogMTAyNCwgOSwgMywgNDgpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlicmVhazsKIAl9CkBAIC0xMDEyLDYgKzExNjcsMTMgQEAgc3RhdGljIGludCBnbWNfdjlfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKKwlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfQVJDVFVSVVMpIHsKKwkJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIFNPQzE1X0lIX0NMSUVOVElEX1ZNQzEsIFZNQ18xXzBfX1NSQ0lEX19WTV9GQVVMVCwKKwkJCQkJJmFkZXYtPmdtYy52bV9mYXVsdCk7CisJCWlmIChyKQorCQkJcmV0dXJuIHI7CisJfQorCiAJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIFNPQzE1X0lIX0NMSUVOVElEX1VUQ0wyLCBVVENMMl8xXzBfX1NSQ0lEX19GQVVMVCwKIAkJCQkmYWRldi0+Z21jLnZtX2ZhdWx0KTsKIApAQCAtMTAzMCwyNSArMTE5MiwxMiBAQCBzdGF0aWMgaW50IGdtY192OV8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCSAqLwogCWFkZXYtPmdtYy5tY19tYXNrID0gMHhmZmZmZmZmZmZmZmZVTEw7IC8qIDQ4IGJpdCBNQyAqLwogCi0JLyogc2V0IERNQSBtYXNrICsgbmVlZF9kbWEzMiBmbGFncy4KLQkgKiBQQ0lFIC0gY2FuIGhhbmRsZSA0NC1iaXRzLgotCSAqIElHUCAtIGNhbiBoYW5kbGUgNDQtYml0cwotCSAqIFBDSSAtIGRtYTMyIGZvciBsZWdhY3kgcGNpIGdhcnQsIDQ0IGJpdHMgb24gdmVnYTEwCi0JICovCi0JYWRldi0+bmVlZF9kbWEzMiA9IGZhbHNlOwotCWRtYV9iaXRzID0gYWRldi0+bmVlZF9kbWEzMiA/IDMyIDogNDQ7Ci0JciA9IHBjaV9zZXRfZG1hX21hc2soYWRldi0+cGRldiwgRE1BX0JJVF9NQVNLKGRtYV9iaXRzKSk7CisJciA9IGRtYV9zZXRfbWFza19hbmRfY29oZXJlbnQoYWRldi0+ZGV2LCBETUFfQklUX01BU0soNDQpKTsKIAlpZiAocikgewotCQlhZGV2LT5uZWVkX2RtYTMyID0gdHJ1ZTsKLQkJZG1hX2JpdHMgPSAzMjsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiYW1kZ3B1OiBObyBzdWl0YWJsZSBETUEgYXZhaWxhYmxlLlxuIik7CisJCXJldHVybiByOwogCX0KLQlyID0gcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKGFkZXYtPnBkZXYsIERNQV9CSVRfTUFTSyhkbWFfYml0cykpOwotCWlmIChyKSB7Ci0JCXBjaV9zZXRfY29uc2lzdGVudF9kbWFfbWFzayhhZGV2LT5wZGV2LCBETUFfQklUX01BU0soMzIpKTsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYW1kZ3B1OiBObyBjb2hlcmVudCBETUEgYXZhaWxhYmxlLlxuIik7Ci0JfQotCWFkZXYtPm5lZWRfc3dpb3RsYiA9IGRybV9uZWVkX3N3aW90bGIoZG1hX2JpdHMpOworCWFkZXYtPm5lZWRfc3dpb3RsYiA9IGRybV9uZWVkX3N3aW90bGIoNDQpOwogCiAJaWYgKGFkZXYtPmdtYy54Z21pLnN1cHBvcnRlZCkgewogCQlyID0gZ2Z4aHViX3YxXzFfZ2V0X3hnbWlfaW5mbyhhZGV2KTsKQEAgLTEwNzcsOCArMTIyNiw5IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiAJICogYW1kZ3B1IGdyYXBoaWNzL2NvbXB1dGUgd2lsbCB1c2UgVk1JRHMgMS03CiAJICogYW1ka2ZkIHdpbGwgdXNlIFZNSURzIDgtMTUKIAkgKi8KLQlhZGV2LT52bV9tYW5hZ2VyLmlkX21ncltBTURHUFVfR0ZYSFVCXS5udW1faWRzID0gQU1ER1BVX05VTV9PRl9WTUlEUzsKLQlhZGV2LT52bV9tYW5hZ2VyLmlkX21ncltBTURHUFVfTU1IVUJdLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOworCWFkZXYtPnZtX21hbmFnZXIuaWRfbWdyW0FNREdQVV9HRlhIVUJfMF0ubnVtX2lkcyA9IEFNREdQVV9OVU1fT0ZfVk1JRFM7CisJYWRldi0+dm1fbWFuYWdlci5pZF9tZ3JbQU1ER1BVX01NSFVCXzBdLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOworCWFkZXYtPnZtX21hbmFnZXIuaWRfbWdyW0FNREdQVV9NTUhVQl8xXS5udW1faWRzID0gQU1ER1BVX05VTV9PRl9WTUlEUzsKIAogCWFtZGdwdV92bV9tYW5hZ2VyX2luaXQoYWRldik7CiAKQEAgLTEwODgsMjggKzEyMzgsNDAgQEAgc3RhdGljIGludCBnbWNfdjlfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIHN0YXRpYyBpbnQgZ21jX3Y5XzBfc3dfZmluaSh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisJdm9pZCAqc3RvbGVuX3ZnYV9idWY7CiAKIAlpZiAoYW1kZ3B1X3Jhc19pc19zdXBwb3J0ZWQoYWRldiwgQU1ER1BVX1JBU19CTE9DS19fVU1DKSAmJgotCQkJYWRldi0+Z21jLnJhc19pZikgewotCQlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiAqcmFzX2lmID0gYWRldi0+Z21jLnJhc19pZjsKKwkJCWFkZXYtPmdtYy51bWNfcmFzX2lmKSB7CisJCXN0cnVjdCByYXNfY29tbW9uX2lmICpyYXNfaWYgPSBhZGV2LT5nbWMudW1jX3Jhc19pZjsKIAkJc3RydWN0IHJhc19paF9pZiBpaF9pbmZvID0gewogCQkJLmhlYWQgPSAqcmFzX2lmLAogCQl9OwogCi0JCS8qcmVtb3ZlIGZzIGZpcnN0Ki8KKwkJLyogcmVtb3ZlIGZzIGZpcnN0ICovCiAJCWFtZGdwdV9yYXNfZGVidWdmc19yZW1vdmUoYWRldiwgcmFzX2lmKTsKIAkJYW1kZ3B1X3Jhc19zeXNmc19yZW1vdmUoYWRldiwgcmFzX2lmKTsKLQkJLypyZW1vdmUgdGhlIElIKi8KKwkJLyogcmVtb3ZlIHRoZSBJSCAqLwogCQlhbWRncHVfcmFzX2ludGVycnVwdF9yZW1vdmVfaGFuZGxlcihhZGV2LCAmaWhfaW5mbyk7CiAJCWFtZGdwdV9yYXNfZmVhdHVyZV9lbmFibGUoYWRldiwgcmFzX2lmLCAwKTsKIAkJa2ZyZWUocmFzX2lmKTsKIAl9CiAKKwlpZiAoYW1kZ3B1X3Jhc19pc19zdXBwb3J0ZWQoYWRldiwgQU1ER1BVX1JBU19CTE9DS19fTU1IVUIpICYmCisJCQlhZGV2LT5nbWMubW1odWJfcmFzX2lmKSB7CisJCXN0cnVjdCByYXNfY29tbW9uX2lmICpyYXNfaWYgPSBhZGV2LT5nbWMubW1odWJfcmFzX2lmOworCisJCS8qIHJlbW92ZSBmcyBhbmQgZGlzYWJsZSByYXMgZmVhdHVyZSAqLworCQlhbWRncHVfcmFzX2RlYnVnZnNfcmVtb3ZlKGFkZXYsIHJhc19pZik7CisJCWFtZGdwdV9yYXNfc3lzZnNfcmVtb3ZlKGFkZXYsIHJhc19pZik7CisJCWFtZGdwdV9yYXNfZmVhdHVyZV9lbmFibGUoYWRldiwgcmFzX2lmLCAwKTsKKwkJa2ZyZWUocmFzX2lmKTsKKwl9CisKIAlhbWRncHVfZ2VtX2ZvcmNlX3JlbGVhc2UoYWRldik7CiAJYW1kZ3B1X3ZtX21hbmFnZXJfZmluaShhZGV2KTsKIAogCWlmIChnbWNfdjlfMF9rZWVwX3N0b2xlbl9tZW1vcnkoYWRldikpCi0JCWFtZGdwdV9ib19mcmVlX2tlcm5lbCgmYWRldi0+c3RvbGVuX3ZnYV9tZW1vcnksIE5VTEwsIE5VTEwpOworCQlhbWRncHVfYm9fZnJlZV9rZXJuZWwoJmFkZXYtPnN0b2xlbl92Z2FfbWVtb3J5LCBOVUxMLCAmc3RvbGVuX3ZnYV9idWYpOwogCiAJYW1kZ3B1X2dhcnRfdGFibGVfdnJhbV9mcmVlKGFkZXYpOwogCWFtZGdwdV9ib19maW5pKGFkZXYpOwpAQCAtMTEyMyw3ICsxMjg1LDcgQEAgc3RhdGljIHZvaWQgZ21jX3Y5XzBfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKIAljYXNlIENISVBfVkVHQTEwOgotCQlpZiAoYW1kZ3B1X3ZpcnRfc3VwcG9ydF9za2lwX3NldHRpbmcoYWRldikpCisJCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCiAJCQlicmVhazsKIAkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBDSElQX1ZFR0EyMDoKQEAgLTExMzcsNiArMTI5OSw3IEBAIHN0YXRpYyB2b2lkIGdtY192OV8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAljYXNlIENISVBfVkVHQTEyOgogCQlicmVhazsKIAljYXNlIENISVBfUkFWRU46CisJCS8qIFRPRE8gZm9yIHJlbm9pciAqLwogCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCiAJCQkJCQlnb2xkZW5fc2V0dGluZ3NfYXRodWJfMV8wXzAsCiAJCQkJCQlBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19hdGh1Yl8xXzBfMCkpOwpAQCAtMTE1Myw3ICsxMzE2LDcgQEAgc3RhdGljIHZvaWQgZ21jX3Y5XzBfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogICovCiBzdGF0aWMgaW50IGdtY192OV8wX2dhcnRfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCWludCByOworCWludCByLCBpOwogCWJvb2wgdmFsdWU7CiAJdTMyIHRtcDsKIApAQCAtMTE3MSw2ICsxMzM0LDcgQEAgc3RhdGljIGludCBnbWNfdjlfMF9nYXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJY2FzZSBDSElQX1JBVkVOOgorCQkvKiBUT0RPIGZvciByZW5vaXIgKi8KIAkJbW1odWJfdjFfMF91cGRhdGVfcG93ZXJfZ2F0aW5nKGFkZXYsIHRydWUpOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMTE4MSw3ICsxMzQ1LDEwIEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZ2FydF9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaWYgKHIpCiAJCXJldHVybiByOwogCi0JciA9IG1taHViX3YxXzBfZ2FydF9lbmFibGUoYWRldik7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX0FSQ1RVUlVTKQorCQlyID0gbW1odWJfdjlfNF9nYXJ0X2VuYWJsZShhZGV2KTsKKwllbHNlCisJCXIgPSBtbWh1Yl92MV8wX2dhcnRfZW5hYmxlKGFkZXYpOwogCWlmIChyKQogCQlyZXR1cm4gcjsKIApAQCAtMTIwMiw4ICsxMzY5LDEzIEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZ2FydF9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCXZhbHVlID0gdHJ1ZTsKIAogCWdmeGh1Yl92MV8wX3NldF9mYXVsdF9lbmFibGVfZGVmYXVsdChhZGV2LCB2YWx1ZSk7Ci0JbW1odWJfdjFfMF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQoYWRldiwgdmFsdWUpOwotCWdtY192OV8wX2ZsdXNoX2dwdV90bGIoYWRldiwgMCwgMCk7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX0FSQ1RVUlVTKQorCQltbWh1Yl92OV80X3NldF9mYXVsdF9lbmFibGVfZGVmYXVsdChhZGV2LCB2YWx1ZSk7CisJZWxzZQorCQltbWh1Yl92MV8wX3NldF9mYXVsdF9lbmFibGVfZGVmYXVsdChhZGV2LCB2YWx1ZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bnVtX3ZtaHViczsgKytpKQorCQlnbWNfdjlfMF9mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIGksIDApOwogCiAJRFJNX0lORk8oIlBDSUUgR0FSVCBvZiAldU0gZW5hYmxlZCAodGFibGUgYXQgMHglMDE2bGxYKS5cbiIsCiAJCSAodW5zaWduZWQpKGFkZXYtPmdtYy5nYXJ0X3NpemUgPj4gMjApLApAQCAtMTI0Myw3ICsxNDE1LDEwIEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiBzdGF0aWMgdm9pZCBnbWNfdjlfMF9nYXJ0X2Rpc2FibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJZ2Z4aHViX3YxXzBfZ2FydF9kaXNhYmxlKGFkZXYpOwotCW1taHViX3YxXzBfZ2FydF9kaXNhYmxlKGFkZXYpOworCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9BUkNUVVJVUykKKwkJbW1odWJfdjlfNF9nYXJ0X2Rpc2FibGUoYWRldik7CisJZWxzZQorCQltbWh1Yl92MV8wX2dhcnRfZGlzYWJsZShhZGV2KTsKIAlhbWRncHVfZ2FydF90YWJsZV92cmFtX3VucGluKGFkZXYpOwogfQogCkBAIC0xMzA4LDE0ICsxNDgzLDI2IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAotCXJldHVybiBtbWh1Yl92MV8wX3NldF9jbG9ja2dhdGluZyhhZGV2LCBzdGF0ZSk7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX0FSQ1RVUlVTKQorCQltbWh1Yl92OV80X3NldF9jbG9ja2dhdGluZyhhZGV2LCBzdGF0ZSk7CisJZWxzZQorCQltbWh1Yl92MV8wX3NldF9jbG9ja2dhdGluZyhhZGV2LCBzdGF0ZSk7CisKKwlhdGh1Yl92MV8wX3NldF9jbG9ja2dhdGluZyhhZGV2LCBzdGF0ZSk7CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgZ21jX3Y5XzBfZ2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwgdTMyICpmbGFncykKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAotCW1taHViX3YxXzBfZ2V0X2Nsb2NrZ2F0aW5nKGFkZXYsIGZsYWdzKTsKKwlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfQVJDVFVSVVMpCisJCW1taHViX3Y5XzRfZ2V0X2Nsb2NrZ2F0aW5nKGFkZXYsIGZsYWdzKTsKKwllbHNlCisJCW1taHViX3YxXzBfZ2V0X2Nsb2NrZ2F0aW5nKGFkZXYsIGZsYWdzKTsKKworCWF0aHViX3YxXzBfZ2V0X2Nsb2NrZ2F0aW5nKGFkZXYsIGZsYWdzKTsKIH0KIAogc3RhdGljIGludCBnbWNfdjlfMF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmgKaW5kZXggNWM4ZGVhYy4uOTcxYzA4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5oCkBAIC0zNyw0ICszNywxMSBAQAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgZ21jX3Y5XzBfaXBfZnVuY3M7CiBleHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIGdtY192OV8wX2lwX2Jsb2NrOwogCisvKiBhbWRncHVfYW1ka2ZkKi5jICovCit2b2lkIGdmeGh1Yl92MV8wX3NldHVwX3ZtX3B0X3JlZ3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IHZtaWQsCisJCQkJdWludDY0X3QgdmFsdWUpOwordm9pZCBtbWh1Yl92MV8wX3NldHVwX3ZtX3B0X3JlZ3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IHZtaWQsCisJCQkJdWludDY0X3QgdmFsdWUpOwordm9pZCBtbWh1Yl92OV80X3NldHVwX3ZtX3B0X3JlZ3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBodWJpZCwKKwkJCQl1aW50MzJfdCB2bWlkLCB1aW50NjRfdCB2YWx1ZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuYwppbmRleCBkYzVjZTAzLi4wNGNkNGI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tbWh1Yl92MV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbW1odWJfdjFfMC5jCkBAIC0yMSwxMyArMjEsMTMgQEAKICAqCiAgKi8KICNpbmNsdWRlICJhbWRncHUuaCIKKyNpbmNsdWRlICJhbWRncHVfcmFzLmgiCiAjaW5jbHVkZSAibW1odWJfdjFfMC5oIgogCiAjaW5jbHVkZSAibW1odWIvbW1odWJfMV8wX29mZnNldC5oIgogI2luY2x1ZGUgIm1taHViL21taHViXzFfMF9zaF9tYXNrLmgiCiAjaW5jbHVkZSAibW1odWIvbW1odWJfMV8wX2RlZmF1bHQuaCIKLSNpbmNsdWRlICJhdGh1Yi9hdGh1Yl8xXzBfb2Zmc2V0LmgiCi0jaW5jbHVkZSAiYXRodWIvYXRodWJfMV8wX3NoX21hc2suaCIKKyNpbmNsdWRlICJtbWh1Yi9tbWh1Yl85XzRfMF9vZmZzZXQuaCIKICNpbmNsdWRlICJ2ZWdhMTBfZW51bS5oIgogCiAjaW5jbHVkZSAic29jMTVfY29tbW9uLmgiCkBAIC0zNSw2ICszNSw5IEBACiAjZGVmaW5lIG1tREFHQjBfQ05UTF9NSVNDMl9SViAweDAwOGYKICNkZWZpbmUgbW1EQUdCMF9DTlRMX01JU0MyX1JWX0JBU0VfSURYIDAKIAorI2RlZmluZSBFQV9FRENfQ05UX01BU0sgMHgzCisjZGVmaW5lIEVBX0VEQ19DTlRfU0hJRlQgMHgyCisKIHU2NCBtbWh1Yl92MV8wX2dldF9mYl9sb2NhdGlvbihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAl1NjQgYmFzZSA9IFJSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1NQ19WTV9GQl9MT0NBVElPTl9CQVNFKTsKQEAgLTExMSw3ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBtbWh1Yl92MV8wX2luaXRfc3lzdGVtX2FwZXJ0dXJlX3JlZ3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCVdSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSLAogCQkJICAgICBtYXgoYWRldi0+Z21jLmZiX2VuZCwgYWRldi0+Z21jLmFncF9lbmQpID4+IDE4KTsKIAotCWlmIChhbWRncHVfdmlydF9zdXBwb3J0X3NraXBfc2V0dGluZyhhZGV2KSkKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQogCQlyZXR1cm47CiAKIAkvKiBTZXQgZGVmYXVsdCBwYWdlIGFkZHJlc3MuICovCkBAIC0xNTksNyArMTYyLDcgQEAgc3RhdGljIHZvaWQgbW1odWJfdjFfMF9pbml0X2NhY2hlX3JlZ3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJdWludDMyX3QgdG1wOwogCi0JaWYgKGFtZGdwdV92aXJ0X3N1cHBvcnRfc2tpcF9zZXR0aW5nKGFkZXYpKQorCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCiAJCXJldHVybjsKIAogCS8qIFNldHVwIEwyIGNhY2hlICovCkBAIC0yMDgsNyArMjExLDcgQEAgc3RhdGljIHZvaWQgbW1odWJfdjFfMF9lbmFibGVfc3lzdGVtX2RvbWFpbihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogc3RhdGljIHZvaWQgbW1odWJfdjFfMF9kaXNhYmxlX2lkZW50aXR5X2FwZXJ0dXJlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCWlmIChhbWRncHVfdmlydF9zdXBwb3J0X3NraXBfc2V0dGluZyhhZGV2KSkKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQogCQlyZXR1cm47CiAKIAlXUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfTE9XX0FERFJfTE8zMiwKQEAgLTM0OCw3ICszNTEsNyBAQCB2b2lkIG1taHViX3YxXzBfZ2FydF9kaXNhYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJCTApOwogCVdSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1NQ19WTV9NWF9MMV9UTEJfQ05UTCwgdG1wKTsKIAotCWlmICghYW1kZ3B1X3ZpcnRfc3VwcG9ydF9za2lwX3NldHRpbmcoYWRldikpIHsKKwlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewogCQkvKiBTZXR1cCBMMiBjYWNoZSAqLwogCQl0bXAgPSBSUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tVk1fTDJfQ05UTCk7CiAJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTV9MMl9DTlRMLCBFTkFCTEVfTDJfQ0FDSEUsIDApOwpAQCAtMzY3LDcgKzM3MCw3IEBAIHZvaWQgbW1odWJfdjFfMF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdmFsdWUpCiB7CiAJdTMyIHRtcDsKIAotCWlmIChhbWRncHVfdmlydF9zdXBwb3J0X3NraXBfc2V0dGluZyhhZGV2KSkKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQogCQlyZXR1cm47CiAKIAl0bXAgPSBSUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMKTsKQEAgLTQwNyw3ICs0MTAsNyBAQCB2b2lkIG1taHViX3YxXzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIHZhbHVlKQogCiB2b2lkIG1taHViX3YxXzBfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X3ZtaHViICpodWIgPSAmYWRldi0+dm1odWJbQU1ER1BVX01NSFVCXTsKKwlzdHJ1Y3QgYW1kZ3B1X3ZtaHViICpodWIgPSAmYWRldi0+dm1odWJbQU1ER1BVX01NSFVCXzBdOwogCiAJaHViLT5jdHgwX3B0Yl9hZGRyX2xvMzIgPQogCQlTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAwLApAQCAtNDkxLDIyICs0OTQsNiBAQCBzdGF0aWMgdm9pZCBtbWh1Yl92MV8wX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fY2xvY2tfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZAogCQlXUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tREFHQjFfQ05UTF9NSVNDMiwgZGF0YTIpOwogfQogCi1zdGF0aWMgdm9pZCBhdGh1Yl91cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJCSAgIGJvb2wgZW5hYmxlKQotewotCXVpbnQzMl90IGRlZiwgZGF0YTsKLQotCWRlZiA9IGRhdGEgPSBSUkVHMzJfU09DMTUoQVRIVUIsIDAsIG1tQVRIVUJfTUlTQ19DTlRMKTsKLQotCWlmIChlbmFibGUgJiYgKGFkZXYtPmNnX2ZsYWdzICYgQU1EX0NHX1NVUFBPUlRfTUNfTUdDRykpCi0JCWRhdGEgfD0gQVRIVUJfTUlTQ19DTlRMX19DR19FTkFCTEVfTUFTSzsKLQllbHNlCi0JCWRhdGEgJj0gfkFUSFVCX01JU0NfQ05UTF9fQ0dfRU5BQkxFX01BU0s7Ci0KLQlpZiAoZGVmICE9IGRhdGEpCi0JCVdSRUczMl9TT0MxNShBVEhVQiwgMCwgbW1BVEhVQl9NSVNDX0NOVEwsIGRhdGEpOwotfQotCiBzdGF0aWMgdm9pZCBtbWh1Yl92MV8wX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fbGlnaHRfc2xlZXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCQkgICAgICAgYm9vbCBlbmFibGUpCiB7CkBAIC01MjMsMjMgKzUxMCw2IEBAIHN0YXRpYyB2b2lkIG1taHViX3YxXzBfdXBkYXRlX21lZGl1bV9ncmFpbl9saWdodF9zbGVlcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRlCiAJCVdSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1BVENfTDJfTUlTQ19DRywgZGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIGF0aHViX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fbGlnaHRfc2xlZXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJCQkgIGJvb2wgZW5hYmxlKQotewotCXVpbnQzMl90IGRlZiwgZGF0YTsKLQotCWRlZiA9IGRhdGEgPSBSUkVHMzJfU09DMTUoQVRIVUIsIDAsIG1tQVRIVUJfTUlTQ19DTlRMKTsKLQotCWlmIChlbmFibGUgJiYgKGFkZXYtPmNnX2ZsYWdzICYgQU1EX0NHX1NVUFBPUlRfTUNfTFMpICYmCi0JICAgIChhZGV2LT5jZ19mbGFncyAmIEFNRF9DR19TVVBQT1JUX0hEUF9MUykpCi0JCWRhdGEgfD0gQVRIVUJfTUlTQ19DTlRMX19DR19NRU1fTFNfRU5BQkxFX01BU0s7Ci0JZWxzZQotCQlkYXRhICY9IH5BVEhVQl9NSVNDX0NOVExfX0NHX01FTV9MU19FTkFCTEVfTUFTSzsKLQotCWlmKGRlZiAhPSBkYXRhKQotCQlXUkVHMzJfU09DMTUoQVRIVUIsIDAsIG1tQVRIVUJfTUlTQ19DTlRMLCBkYXRhKTsKLX0KLQogaW50IG1taHViX3YxXzBfc2V0X2Nsb2NrZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJICAgICAgIGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQogewpAQCAtNTUxLDE0ICs1MjEsMTEgQEAgaW50IG1taHViX3YxXzBfc2V0X2Nsb2NrZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWNhc2UgQ0hJUF9WRUdBMTI6CiAJY2FzZSBDSElQX1ZFR0EyMDoKIAljYXNlIENISVBfUkFWRU46CisJY2FzZSBDSElQX1JFTk9JUjoKIAkJbW1odWJfdjFfMF91cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhhZGV2LAogCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKLQkJYXRodWJfdXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwKLQkJCQlzdGF0ZSA9PSBBTURfQ0dfU1RBVEVfR0FURSA/IHRydWUgOiBmYWxzZSk7CiAJCW1taHViX3YxXzBfdXBkYXRlX21lZGl1bV9ncmFpbl9saWdodF9zbGVlcChhZGV2LAogCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKLQkJYXRodWJfdXBkYXRlX21lZGl1bV9ncmFpbl9saWdodF9zbGVlcChhZGV2LAotCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJYnJlYWs7CkBAIC01NjksMTggKzUzNiw4NSBAQCBpbnQgbW1odWJfdjFfMF9zZXRfY2xvY2tnYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIHZvaWQgbW1odWJfdjFfMF9nZXRfY2xvY2tnYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiAqZmxhZ3MpCiB7Ci0JaW50IGRhdGE7CisJaW50IGRhdGEsIGRhdGExOwogCiAJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkKIAkJKmZsYWdzID0gMDsKIAorCWRhdGEgPSBSUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tQVRDX0wyX01JU0NfQ0cpOworCisJZGF0YTEgPSBSUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tREFHQjBfQ05UTF9NSVNDMik7CisKIAkvKiBBTURfQ0dfU1VQUE9SVF9NQ19NR0NHICovCi0JZGF0YSA9IFJSRUczMl9TT0MxNShBVEhVQiwgMCwgbW1BVEhVQl9NSVNDX0NOVEwpOwotCWlmIChkYXRhICYgQVRIVUJfTUlTQ19DTlRMX19DR19FTkFCTEVfTUFTSykKKwlpZiAoKGRhdGEgJiBBVENfTDJfTUlTQ19DR19fRU5BQkxFX01BU0spICYmCisJICAgICEoZGF0YTEgJiAoREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFUV9DR19NQVNLIHwKKwkJICAgICAgIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVRfQ0dfTUFTSyB8CisJCSAgICAgICBEQUdCMF9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVRX0NHX01BU0sgfAorCQkgICAgICAgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFVF9DR19NQVNLIHwKKwkJICAgICAgIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCV1JfQ0dfTUFTSyB8CisJCSAgICAgICBEQUdCMF9DTlRMX01JU0MyX19ESVNBQkxFX1RMQlJEX0NHX01BU0spKSkKIAkJKmZsYWdzIHw9IEFNRF9DR19TVVBQT1JUX01DX01HQ0c7CiAKIAkvKiBBTURfQ0dfU1VQUE9SVF9NQ19MUyAqLwotCWRhdGEgPSBSUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tQVRDX0wyX01JU0NfQ0cpOwogCWlmIChkYXRhICYgQVRDX0wyX01JU0NfQ0dfX01FTV9MU19FTkFCTEVfTUFTSykKIAkJKmZsYWdzIHw9IEFNRF9DR19TVVBQT1JUX01DX0xTOwogfQorCitzdGF0aWMgdm9pZCBtbWh1Yl92MV8wX3F1ZXJ5X3Jhc19lcnJvcl9jb3VudChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkJICAgdm9pZCAqcmFzX2Vycm9yX3N0YXR1cykKK3sKKwlpbnQgaTsKKwl1aW50MzJfdCBlYTBfZWRjX2NudCwgZWEwX2VkY19jbnQyOworCXVpbnQzMl90IGVhMV9lZGNfY250LCBlYTFfZWRjX2NudDI7CisJc3RydWN0IHJhc19lcnJfZGF0YSAqZXJyX2RhdGEgPSAoc3RydWN0IHJhc19lcnJfZGF0YSAqKXJhc19lcnJvcl9zdGF0dXM7CisKKwkvKiBFREMgQ05UIHdpbGwgYmUgY2xlYXJlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHJlYWQgKi8KKwllYTBfZWRjX2NudCA9IFJSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1NTUVBMF9FRENfQ05UX1ZHMjApOworCWVhMF9lZGNfY250MiA9IFJSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1NTUVBMF9FRENfQ05UMl9WRzIwKTsKKwllYTFfZWRjX2NudCA9IFJSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1NTUVBMV9FRENfQ05UX1ZHMjApOworCWVhMV9lZGNfY250MiA9IFJSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1NTUVBMV9FRENfQ05UMl9WRzIwKTsKKworCS8qIGVycm9yIGNvdW50IG9mIGVhY2ggZXJyb3IgdHlwZSBpcyByZWNvcmRlZCBieSAyIGJpdHMsCisJICogY2UgYW5kIHVlIGNvdW50IGluIEVEQ19DTlQKKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKSB7CisJCWVycl9kYXRhLT5jZV9jb3VudCArPSAoZWEwX2VkY19jbnQgJiBFQV9FRENfQ05UX01BU0spOworCQllcnJfZGF0YS0+Y2VfY291bnQgKz0gKGVhMV9lZGNfY250ICYgRUFfRURDX0NOVF9NQVNLKTsKKwkJZWEwX2VkY19jbnQgPj49IEVBX0VEQ19DTlRfU0hJRlQ7CisJCWVhMV9lZGNfY250ID4+PSBFQV9FRENfQ05UX1NISUZUOworCQllcnJfZGF0YS0+dWVfY291bnQgKz0gKGVhMF9lZGNfY250ICYgRUFfRURDX0NOVF9NQVNLKTsKKwkJZXJyX2RhdGEtPnVlX2NvdW50ICs9IChlYTFfZWRjX2NudCAmIEVBX0VEQ19DTlRfTUFTSyk7CisJCWVhMF9lZGNfY250ID4+PSBFQV9FRENfQ05UX1NISUZUOworCQllYTFfZWRjX2NudCA+Pj0gRUFfRURDX0NOVF9TSElGVDsKKwl9CisJLyogc3VjY2Vzc2l2ZSB1ZSBjb3VudCBpbiBFRENfQ05UICovCisJZm9yIChpID0gMDsgaSA8IDU7IGkrKykgeworCQllcnJfZGF0YS0+dWVfY291bnQgKz0gKGVhMF9lZGNfY250ICYgRUFfRURDX0NOVF9NQVNLKTsKKwkJZXJyX2RhdGEtPnVlX2NvdW50ICs9IChlYTFfZWRjX2NudCAmIEVBX0VEQ19DTlRfTUFTSyk7CisJCWVhMF9lZGNfY250ID4+PSBFQV9FRENfQ05UX1NISUZUOworCQllYTFfZWRjX2NudCA+Pj0gRUFfRURDX0NOVF9TSElGVDsKKwl9CisKKwkvKiBjZSBhbmQgdWUgY291bnQgaW4gRURDX0NOVDIgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CisJCWVycl9kYXRhLT5jZV9jb3VudCArPSAoZWEwX2VkY19jbnQyICYgRUFfRURDX0NOVF9NQVNLKTsKKwkJZXJyX2RhdGEtPmNlX2NvdW50ICs9IChlYTFfZWRjX2NudDIgJiBFQV9FRENfQ05UX01BU0spOworCQllYTBfZWRjX2NudDIgPj49IEVBX0VEQ19DTlRfU0hJRlQ7CisJCWVhMV9lZGNfY250MiA+Pj0gRUFfRURDX0NOVF9TSElGVDsKKwkJZXJyX2RhdGEtPnVlX2NvdW50ICs9IChlYTBfZWRjX2NudDIgJiBFQV9FRENfQ05UX01BU0spOworCQllcnJfZGF0YS0+dWVfY291bnQgKz0gKGVhMV9lZGNfY250MiAmIEVBX0VEQ19DTlRfTUFTSyk7CisJCWVhMF9lZGNfY250MiA+Pj0gRUFfRURDX0NOVF9TSElGVDsKKwkJZWExX2VkY19jbnQyID4+PSBFQV9FRENfQ05UX1NISUZUOworCX0KKwkvKiBzdWNjZXNzaXZlIHVlIGNvdW50IGluIEVEQ19DTlQyICovCisJZm9yIChpID0gMDsgaSA8IDY7IGkrKykgeworCQllcnJfZGF0YS0+dWVfY291bnQgKz0gKGVhMF9lZGNfY250MiAmIEVBX0VEQ19DTlRfTUFTSyk7CisJCWVycl9kYXRhLT51ZV9jb3VudCArPSAoZWExX2VkY19jbnQyICYgRUFfRURDX0NOVF9NQVNLKTsKKwkJZWEwX2VkY19jbnQyID4+PSBFQV9FRENfQ05UX1NISUZUOworCQllYTFfZWRjX2NudDIgPj49IEVBX0VEQ19DTlRfU0hJRlQ7CisJfQorfQorCitjb25zdCBzdHJ1Y3QgYW1kZ3B1X21taHViX2Z1bmNzIG1taHViX3YxXzBfZnVuY3MgPSB7CisJLnF1ZXJ5X3Jhc19lcnJvcl9jb3VudCA9IG1taHViX3YxXzBfcXVlcnlfcmFzX2Vycm9yX2NvdW50LAorfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuaAppbmRleCAwZGUwZmRmLi5jNDMzMTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tbWh1Yl92MV8wLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbW1odWJfdjFfMC5oCkBAIC0yMyw2ICsyMyw4IEBACiAjaWZuZGVmIF9fTU1IVUJfVjFfMF9IX18KICNkZWZpbmUgX19NTUhVQl9WMV8wX0hfXwogCitleHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9tbWh1Yl9mdW5jcyBtbWh1Yl92MV8wX2Z1bmNzOworCiB1NjQgbW1odWJfdjFfMF9nZXRfZmJfbG9jYXRpb24oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogaW50IG1taHViX3YxXzBfZ2FydF9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogdm9pZCBtbWh1Yl92MV8wX2dhcnRfZGlzYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tbWh1Yl92Ml8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tbWh1Yl92Ml8wLmMKaW5kZXggMGY5NTQ5Zi4uMzU0MmMyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbW1odWJfdjJfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YyXzAuYwpAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyB2b2lkIG1taHViX3YyXzBfaW5pdF9jYWNoZV9yZWdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCS8qIFhYWCBmb3IgZW11bGF0aW9uLCBSZWZlciB0byBjbG9zZWQgc291cmNlIGNvZGUuKi8KIAl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgTU1WTV9MMl9DTlRMLCBMMl9QREUwX0NBQ0hFX1RBR19HRU5FUkFUSU9OX01PREUsCiAJCQkgICAgMCk7Ci0JdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIE1NVk1fTDJfQ05UTCwgUERFX0ZBVUxUX0NMQVNTSUZJQ0FUSU9OLCAxKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgTU1WTV9MMl9DTlRMLCBQREVfRkFVTFRfQ0xBU1NJRklDQVRJT04sIDApOwogCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBNTVZNX0wyX0NOVEwsIENPTlRFWFQxX0lERU5USVRZX0FDQ0VTU19NT0RFLCAxKTsKIAl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgTU1WTV9MMl9DTlRMLCBJREVOVElUWV9NT0RFX0ZSQUdNRU5UX1NJWkUsIDApOwogCVdSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1NTVZNX0wyX0NOVEwsIHRtcCk7CkBAIC0zMjQsNyArMzI0LDcgQEAgdm9pZCBtbWh1Yl92Ml8wX3NldF9mYXVsdF9lbmFibGVfZGVmYXVsdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCB2YWx1ZSkKIAogdm9pZCBtbWh1Yl92Ml8wX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0Jc3RydWN0IGFtZGdwdV92bWh1YiAqaHViID0gJmFkZXYtPnZtaHViW0FNREdQVV9NTUhVQl07CisJc3RydWN0IGFtZGdwdV92bWh1YiAqaHViID0gJmFkZXYtPnZtaHViW0FNREdQVV9NTUhVQl8wXTsKIAogCWh1Yi0+Y3R4MF9wdGJfYWRkcl9sbzMyID0KIAkJU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwKQEAgLTQwNiw2ICs0MDYsOCBAQCBpbnQgbW1odWJfdjJfMF9zZXRfY2xvY2tnYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCWNhc2UgQ0hJUF9OQVZJMTA6CisJY2FzZSBDSElQX05BVkkxNDoKKwljYXNlIENISVBfTkFWSTEyOgogCQltbWh1Yl92Ml8wX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fY2xvY2tfZ2F0aW5nKGFkZXYsCiAJCQkJc3RhdGUgPT0gQU1EX0NHX1NUQVRFX0dBVEUgPyB0cnVlIDogZmFsc2UpOwogCQltbWh1Yl92Ml8wX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fbGlnaHRfc2xlZXAoYWRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3Y5XzQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3Y5XzQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2Y3ZWY0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbW1odWJfdjlfNC5jCkBAIC0wLDAgKzEsNjQyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTggQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworI2luY2x1ZGUgImFtZGdwdS5oIgorI2luY2x1ZGUgIm1taHViX3Y5XzQuaCIKKworI2luY2x1ZGUgIm1taHViL21taHViXzlfNF8xX29mZnNldC5oIgorI2luY2x1ZGUgIm1taHViL21taHViXzlfNF8xX3NoX21hc2suaCIKKyNpbmNsdWRlICJtbWh1Yi9tbWh1Yl85XzRfMV9kZWZhdWx0LmgiCisjaW5jbHVkZSAiYXRodWIvYXRodWJfMV8wX29mZnNldC5oIgorI2luY2x1ZGUgImF0aHViL2F0aHViXzFfMF9zaF9tYXNrLmgiCisjaW5jbHVkZSAidmVnYTEwX2VudW0uaCIKKworI2luY2x1ZGUgInNvYzE1X2NvbW1vbi5oIgorCisjZGVmaW5lIE1NSFVCX05VTV9JTlNUQU5DRVMJCQkyCisjZGVmaW5lIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVAkJMHgzMDAwCisKK3U2NCBtbWh1Yl92OV80X2dldF9mYl9sb2NhdGlvbihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwkvKiBUaGUgYmFzZSBzaG91bGQgYmUgc2FtZSBiL3QgMiBtbWh1YnMgb24gQWNydHVydXMuIFJlYWQgb25lIGhlcmUuICovCisJdTY0IGJhc2UgPSBSUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tVk1TSEFSRURWQzBfTUNfVk1fRkJfTE9DQVRJT05fQkFTRSk7CisJdTY0IHRvcCA9IFJSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1WTVNIQVJFRFZDMF9NQ19WTV9GQl9MT0NBVElPTl9UT1ApOworCisJYmFzZSAmPSBWTVNIQVJFRFZDMF9NQ19WTV9GQl9MT0NBVElPTl9CQVNFX19GQl9CQVNFX01BU0s7CisJYmFzZSA8PD0gMjQ7CisKKwl0b3AgJj0gVk1TSEFSRURWQzBfTUNfVk1fRkJfTE9DQVRJT05fVE9QX19GQl9UT1BfTUFTSzsKKwl0b3AgPDw9IDI0OworCisJYWRldi0+Z21jLmZiX3N0YXJ0ID0gYmFzZTsKKwlhZGV2LT5nbWMuZmJfZW5kID0gdG9wOworCisJcmV0dXJuIGJhc2U7Cit9CisKK3ZvaWQgbW1odWJfdjlfNF9zZXR1cF92bV9wdF9yZWdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgaHViaWQsCisJCQkJdWludDMyX3Qgdm1pZCwgdWludDY0X3QgdmFsdWUpCit7CisJLyogdHdvIHJlZ2lzdGVycyBkaXN0YW5jZSBiZXR3ZWVuIG1tVk1MMlZDMF9WTV9DT05URVhUMF8qIHRvCisJICogbW1WTUwyVkMwX1ZNX0NPTlRFWFQxXyoKKwkgKi8KKwlpbnQgZGlzdCA9IG1tVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisJCQktIG1tVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyOworCisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCSAgICBtbVZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiwKKwkJCSAgICBkaXN0ICogdm1pZCArIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULAorCQkJICAgIGxvd2VyXzMyX2JpdHModmFsdWUpKTsKKworCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkgICAgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIsCisJCQkgICAgZGlzdCAqIHZtaWQgKyBodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwKKwkJCSAgICB1cHBlcl8zMl9iaXRzKHZhbHVlKSk7CisKK30KKworc3RhdGljIHZvaWQgbW1odWJfdjlfNF9pbml0X2dhcnRfYXBlcnR1cmVfcmVncyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkJICAgICAgIGludCBodWJpZCkKK3sKKwl1aW50NjRfdCBwdF9iYXNlID0gYW1kZ3B1X2dtY19wZF9hZGRyKGFkZXYtPmdhcnQuYm8pOworCisJbW1odWJfdjlfNF9zZXR1cF92bV9wdF9yZWdzKGFkZXYsIGh1YmlkLCAwLCBwdF9iYXNlKTsKKworCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkgICAgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyLAorCQkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULAorCQkJICAgICh1MzIpKGFkZXYtPmdtYy5nYXJ0X3N0YXJ0ID4+IDEyKSk7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCSAgICBtbVZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIsCisJCQkgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsCisJCQkgICAgKHUzMikoYWRldi0+Z21jLmdhcnRfc3RhcnQgPj4gNDQpKTsKKworCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkgICAgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiwKKwkJCSAgICBodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwKKwkJCSAgICAodTMyKShhZGV2LT5nbWMuZ2FydF9lbmQgPj4gMTIpKTsKKwlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLAorCQkJICAgIG1tVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIsCisJCQkgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsCisJCQkgICAgKHUzMikoYWRldi0+Z21jLmdhcnRfZW5kID4+IDQ0KSk7Cit9CisKK3N0YXRpYyB2b2lkIG1taHViX3Y5XzRfaW5pdF9zeXN0ZW1fYXBlcnR1cmVfcmVncyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkJICAgICAgICAgaW50IGh1YmlkKQoreworCXVpbnQ2NF90IHZhbHVlOworCXVpbnQzMl90IHRtcDsKKworCS8qIFByb2dyYW0gdGhlIEFHUCBCQVIgKi8KKwlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLCBtbVZNU0hBUkVEVkMwX01DX1ZNX0FHUF9CQVNFLAorCQkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULAorCQkJICAgIDApOworCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsIG1tVk1TSEFSRURWQzBfTUNfVk1fQUdQX1RPUCwKKwkJCSAgICBodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwKKwkJCSAgICBhZGV2LT5nbWMuYWdwX2VuZCA+PiAyNCk7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1WTVNIQVJFRFZDMF9NQ19WTV9BR1BfQk9ULAorCQkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULAorCQkJICAgIGFkZXYtPmdtYy5hZ3Bfc3RhcnQgPj4gMjQpOworCisJLyogUHJvZ3JhbSB0aGUgc3lzdGVtIGFwZXJ0dXJlIGxvdyBsb2dpY2FsIHBhZ2UgbnVtYmVyLiAqLworCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkgICAgbW1WTVNIQVJFRFZDMF9NQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFIsCisJCQkgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsCisJCQkgICAgbWluKGFkZXYtPmdtYy5mYl9zdGFydCwgYWRldi0+Z21jLmFncF9zdGFydCkgPj4gMTgpOworCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkgICAgbW1WTVNIQVJFRFZDMF9NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSLAorCQkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULAorCQkJICAgIG1heChhZGV2LT5nbWMuZmJfZW5kLCBhZGV2LT5nbWMuYWdwX2VuZCkgPj4gMTgpOworCisJLyogU2V0IGRlZmF1bHQgcGFnZSBhZGRyZXNzLiAqLworCXZhbHVlID0gYWRldi0+dnJhbV9zY3JhdGNoLmdwdV9hZGRyIC0gYWRldi0+Z21jLnZyYW1fc3RhcnQgKworCQlhZGV2LT52bV9tYW5hZ2VyLnZyYW1fYmFzZV9vZmZzZXQ7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCW1tVk1TSEFSRURQRjBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9MU0IsCisJCQlodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwKKwkJCSh1MzIpKHZhbHVlID4+IDEyKSk7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCW1tVk1TSEFSRURQRjBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9NU0IsCisJCQlodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwKKwkJCSh1MzIpKHZhbHVlID4+IDQ0KSk7CisKKwkvKiBQcm9ncmFtICJwcm90ZWN0aW9uIGZhdWx0Ii4gKi8KKwlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLAorCQkJICAgIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9MTzMyLAorCQkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULAorCQkJICAgICh1MzIpKGFkZXYtPmR1bW15X3BhZ2VfYWRkciA+PiAxMikpOworCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkgICAgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0hJMzIsCisJCQkgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsCisJCQkgICAgKHUzMikoKHU2NClhZGV2LT5kdW1teV9wYWdlX2FkZHIgPj4gNDQpKTsKKworCXRtcCA9IFJSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkJICBtbVZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMiwKKwkJCQkgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyLAorCQkJICAgIEFDVElWRV9QQUdFX01JR1JBVElPTl9QVEVfUkVBRF9SRVRSWSwgMSk7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDIsCisJCQkgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsIHRtcCk7Cit9CisKK3N0YXRpYyB2b2lkIG1taHViX3Y5XzRfaW5pdF90bGJfcmVncyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGh1YmlkKQoreworCXVpbnQzMl90IHRtcDsKKworCS8qIFNldHVwIFRMQiBjb250cm9sICovCisJdG1wID0gUlJFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCSAgIG1tVk1TSEFSRURWQzBfTUNfVk1fTVhfTDFfVExCX0NOVEwsCisJCQkgICBodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCk7CisKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1TSEFSRURWQzBfTUNfVk1fTVhfTDFfVExCX0NOVEwsCisJCQkgICAgRU5BQkxFX0wxX1RMQiwgMSk7CisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMLAorCQkJICAgIFNZU1RFTV9BQ0NFU1NfTU9ERSwgMyk7CisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMLAorCQkJICAgIEVOQUJMRV9BRFZBTkNFRF9EUklWRVJfTU9ERUwsIDEpOworCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTCwKKwkJCSAgICBTWVNURU1fQVBFUlRVUkVfVU5NQVBQRURfQUNDRVNTLCAwKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1TSEFSRURWQzBfTUNfVk1fTVhfTDFfVExCX0NOVEwsCisJCQkgICAgRUNPX0JJVFMsIDApOworCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTCwKKwkJCSAgICBNVFlQRSwgTVRZUEVfVUMpOy8qIFhYWCBmb3IgZW11bGF0aW9uLiAqLworCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTCwKKwkJCSAgICBBVENfRU4sIDEpOworCisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1WTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTCwKKwkJCSAgICBodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwgdG1wKTsKK30KKworc3RhdGljIHZvaWQgbW1odWJfdjlfNF9pbml0X2NhY2hlX3JlZ3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBodWJpZCkKK3sKKwl1aW50MzJfdCB0bXA7CisKKwkvKiBTZXR1cCBMMiBjYWNoZSAqLworCXRtcCA9IFJSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsIG1tVk1MMlBGMF9WTV9MMl9DTlRMLAorCQkJCSAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQpOworCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyUEYwX1ZNX0wyX0NOVEwsCisJCQkgICAgRU5BQkxFX0wyX0NBQ0hFLCAxKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlBGMF9WTV9MMl9DTlRMLAorCQkJICAgIEVOQUJMRV9MMl9GUkFHTUVOVF9QUk9DRVNTSU5HLCAxKTsKKwkvKiBYWFggZm9yIGVtdWxhdGlvbiwgUmVmZXIgdG8gY2xvc2VkIHNvdXJjZSBjb2RlLiovCisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfQ05UTCwKKwkJCSAgICBMMl9QREUwX0NBQ0hFX1RBR19HRU5FUkFUSU9OX01PREUsIDApOworCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyUEYwX1ZNX0wyX0NOVEwsCisJCQkgICAgUERFX0ZBVUxUX0NMQVNTSUZJQ0FUSU9OLCAwKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlBGMF9WTV9MMl9DTlRMLAorCQkJICAgIENPTlRFWFQxX0lERU5USVRZX0FDQ0VTU19NT0RFLCAxKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlBGMF9WTV9MMl9DTlRMLAorCQkJICAgIElERU5USVRZX01PREVfRlJBR01FTlRfU0laRSwgMCk7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1WTUwyUEYwX1ZNX0wyX0NOVEwsCisJCSAgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsIHRtcCk7CisKKwl0bXAgPSBSUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLCBtbVZNTDJQRjBfVk1fTDJfQ05UTDIsCisJCQkJICBodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCk7CisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfQ05UTDIsCisJCQkgICAgSU5WQUxJREFURV9BTExfTDFfVExCUywgMSk7CisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfQ05UTDIsCisJCQkgICAgSU5WQUxJREFURV9MMl9DQUNIRSwgMSk7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1WTUwyUEYwX1ZNX0wyX0NOVEwyLAorCQkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULCB0bXApOworCisJdG1wID0gbW1WTUwyUEYwX1ZNX0wyX0NOVEwzX0RFRkFVTFQ7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1WTUwyUEYwX1ZNX0wyX0NOVEwzLAorCQkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULCB0bXApOworCisJdG1wID0gbW1WTUwyUEYwX1ZNX0wyX0NOVEw0X0RFRkFVTFQ7CisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfQ05UTDQsCisJCQkgICAgVk1DX1RBUF9QREVfUkVRVUVTVF9QSFlTSUNBTCwgMCk7CisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfQ05UTDQsCisJCQkgICAgVk1DX1RBUF9QVEVfUkVRVUVTVF9QSFlTSUNBTCwgMCk7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1WTUwyUEYwX1ZNX0wyX0NOVEw0LAorCQkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULCB0bXApOworfQorCitzdGF0aWMgdm9pZCBtbWh1Yl92OV80X2VuYWJsZV9zeXN0ZW1fZG9tYWluKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgICAgaW50IGh1YmlkKQoreworCXVpbnQzMl90IHRtcDsKKworCXRtcCA9IFJSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsIG1tVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMLAorCQkJCSAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQpOworCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyVkMwX1ZNX0NPTlRFWFQwX0NOVEwsIEVOQUJMRV9DT05URVhULCAxKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMLCBQQUdFX1RBQkxFX0RFUFRILCAwKTsKKwlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLCBtbVZNTDJWQzBfVk1fQ09OVEVYVDBfQ05UTCwKKwkJCSAgICBodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwgdG1wKTsKK30KKworc3RhdGljIHZvaWQgbW1odWJfdjlfNF9kaXNhYmxlX2lkZW50aXR5X2FwZXJ0dXJlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkJIGludCBodWJpZCkKK3sKKwlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLAorCQkgICAgbW1WTUwyUEYwX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0xPV19BRERSX0xPMzIsCisJCSAgICBodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwgMFhGRkZGRkZGRik7CisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJICAgIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9ISTMyLAorCQkgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsIDB4MDAwMDAwMEYpOworCisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJICAgIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9ISUdIX0FERFJfTE8zMiwKKwkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULCAwKTsKKwlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLAorCQkgICAgbW1WTUwyUEYwX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0hJR0hfQUREUl9ISTMyLAorCQkgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsIDApOworCisJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJICAgIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUX0lERU5USVRZX1BIWVNJQ0FMX09GRlNFVF9MTzMyLAorCQkgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsIDApOworCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCSAgICBtbVZNTDJQRjBfVk1fTDJfQ09OVEVYVF9JREVOVElUWV9QSFlTSUNBTF9PRkZTRVRfSEkzMiwKKwkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULCAwKTsKK30KKworc3RhdGljIHZvaWQgbW1odWJfdjlfNF9zZXR1cF92bWlkX2NvbmZpZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGh1YmlkKQoreworCXVpbnQzMl90IHRtcDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPD0gMTQ7IGkrKykgeworCQl0bXAgPSBSUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLCBtbVZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTCwKKwkJCQlodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCArIGkpOworCQl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMLAorCQkJCSAgICBFTkFCTEVfQ09OVEVYVCwgMSk7CisJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVEwsCisJCQkJICAgIFBBR0VfVEFCTEVfREVQVEgsCisJCQkJICAgIGFkZXYtPnZtX21hbmFnZXIubnVtX2xldmVsKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTCwKKwkJCQkgICAgUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVCwgMSk7CisJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVEwsCisJCQkJICAgIERVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVCwKKwkJCQkgICAgMSk7CisJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVEwsCisJCQkJICAgIFBERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVCwgMSk7CisJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVEwsCisJCQkJICAgIFZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFQsIDEpOworCQl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMLAorCQkJCSAgICBSRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFQsIDEpOworCQl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMLAorCQkJCSAgICBXUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxULCAxKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTCwKKwkJCQkgICAgRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxULCAxKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTCwKKwkJCQkgICAgUEFHRV9UQUJMRV9CTE9DS19TSVpFLAorCQkJCSAgICBhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUgLSA5KTsKKwkJLyogU2VuZCBuby1yZXRyeSBYTkFDSyBvbiBmYXVsdCB0byBzdXBwcmVzcyBWTSBmYXVsdCBzdG9ybS4gKi8KKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTCwKKwkJCQkgICAgUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFQsIDApOworCQlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLCBtbVZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTCwKKwkJCQkgICAgaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQgKyBpLAorCQkJCSAgICB0bXApOworCQlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLAorCQkJICAgIG1tVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiwKKwkJCSAgICBodWJpZCAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCArIGkqMiwgMCk7CisJCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkgICAgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyLAorCQkJICAgIGh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUICsgaSoyLCAwKTsKKwkJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCQltbVZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyLAorCQkJCWh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUICsgaSoyLAorCQkJCWxvd2VyXzMyX2JpdHMoYWRldi0+dm1fbWFuYWdlci5tYXhfcGZuIC0gMSkpOworCQlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLAorCQkJCW1tVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIsCisJCQkJaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQgKyBpKjIsCisJCQkJdXBwZXJfMzJfYml0cyhhZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gLSAxKSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBtbWh1Yl92OV80X3Byb2dyYW1faW52YWxpZGF0aW9uKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgICAgaW50IGh1YmlkKQoreworCXVuc2lnbmVkIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMTg7ICsraSkgeworCQlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLAorCQkJCW1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9MTzMyLAorCQkJCWh1YmlkICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUICsgMiAqIGksCisJCQkJMHhmZmZmZmZmZik7CisJCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkJbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0hJMzIsCisJCQkJaHViaWQgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQgKyAyICogaSwKKwkJCQkweDFmKTsKKwl9Cit9CisKK2ludCBtbWh1Yl92OV80X2dhcnRfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IE1NSFVCX05VTV9JTlNUQU5DRVM7IGkrKykgeworCQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CisJCQkvKgorCQkJICogTUNfVk1fRkJfTE9DQVRJT05fQkFTRS9UT1AgaXMgTlVMTCBmb3IgVkYsIGJlY3Vhc2UKKwkJCSAqIHRoZXkgYXJlIFZGIGNvcHkgcmVnaXN0ZXJzIHNvIHZiaW9zIHBvc3QgZG9lc24ndAorCQkJICogcHJvZ3JhbSB0aGVtLCBmb3IgU1JJT1YgZHJpdmVyIG5lZWQgdG8gcHJvZ3JhbSB0aGVtCisJCQkgKi8KKwkJCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkJICAgICBtbVZNU0hBUkVEVkMwX01DX1ZNX0ZCX0xPQ0FUSU9OX0JBU0UsCisJCQkJICAgICBpICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULAorCQkJCSAgICAgYWRldi0+Z21jLnZyYW1fc3RhcnQgPj4gMjQpOworCQkJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCQkgICAgIG1tVk1TSEFSRURWQzBfTUNfVk1fRkJfTE9DQVRJT05fVE9QLAorCQkJCSAgICAgaSAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwKKwkJCQkgICAgIGFkZXYtPmdtYy52cmFtX2VuZCA+PiAyNCk7CisJCX0KKworCQkvKiBHQVJUIEVuYWJsZS4gKi8KKwkJbW1odWJfdjlfNF9pbml0X2dhcnRfYXBlcnR1cmVfcmVncyhhZGV2LCBpKTsKKwkJbW1odWJfdjlfNF9pbml0X3N5c3RlbV9hcGVydHVyZV9yZWdzKGFkZXYsIGkpOworCQltbWh1Yl92OV80X2luaXRfdGxiX3JlZ3MoYWRldiwgaSk7CisJCW1taHViX3Y5XzRfaW5pdF9jYWNoZV9yZWdzKGFkZXYsIGkpOworCisJCW1taHViX3Y5XzRfZW5hYmxlX3N5c3RlbV9kb21haW4oYWRldiwgaSk7CisJCW1taHViX3Y5XzRfZGlzYWJsZV9pZGVudGl0eV9hcGVydHVyZShhZGV2LCBpKTsKKwkJbW1odWJfdjlfNF9zZXR1cF92bWlkX2NvbmZpZyhhZGV2LCBpKTsKKwkJbW1odWJfdjlfNF9wcm9ncmFtX2ludmFsaWRhdGlvbihhZGV2LCBpKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCBtbWh1Yl92OV80X2dhcnRfZGlzYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwl1MzIgdG1wOworCXUzMiBpLCBqOworCisJZm9yIChqID0gMDsgaiA8IE1NSFVCX05VTV9JTlNUQU5DRVM7IGorKykgeworCQkvKiBEaXNhYmxlIGFsbCB0YWJsZXMgKi8KKwkJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspCisJCQlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLAorCQkJCQkgICAgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX0NOVEwsCisJCQkJCSAgICBqICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUICsKKwkJCQkJICAgIGksIDApOworCisJCS8qIFNldHVwIFRMQiBjb250cm9sICovCisJCXRtcCA9IFJSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkJICAgbW1WTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTCwKKwkJCQkgICBqICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMLAorCQkJCSAgICBFTkFCTEVfTDFfVExCLCAwKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsCisJCQkJICAgIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMLAorCQkJCSAgICBFTkFCTEVfQURWQU5DRURfRFJJVkVSX01PREVMLCAwKTsKKwkJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCQkgICAgbW1WTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTCwKKwkJCQkgICAgaiAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwgdG1wKTsKKworCQkvKiBTZXR1cCBMMiBjYWNoZSAqLworCQl0bXAgPSBSUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLCBtbVZNTDJQRjBfVk1fTDJfQ05UTCwKKwkJCQkJICBqICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfQ05UTCwKKwkJCQkgICAgRU5BQkxFX0wyX0NBQ0hFLCAwKTsKKwkJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1WTUwyUEYwX1ZNX0wyX0NOVEwsCisJCQkJICAgIGogKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsIHRtcCk7CisJCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsIG1tVk1MMlBGMF9WTV9MMl9DTlRMMywKKwkJCQkgICAgaiAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCwgMCk7CisJfQorfQorCisvKioKKyAqIG1taHViX3YxXzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0IC0gdXBkYXRlIEdBUlQvVk0gZmF1bHQgaGFuZGxpbmcKKyAqCisgKiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKiBAdmFsdWU6IHRydWUgcmVkaXJlY3RzIFZNIGZhdWx0cyB0byB0aGUgZGVmYXVsdCBwYWdlCisgKi8KK3ZvaWQgbW1odWJfdjlfNF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdmFsdWUpCit7CisJdTMyIHRtcDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBNTUhVQl9OVU1fSU5TVEFOQ0VTOyBpKyspIHsKKwkJdG1wID0gUlJFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCQkJICBtbVZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMLAorCQkJCQkgIGkgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQpOworCQl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwsCisJCQkJICAgIFJBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFQsCisJCQkJICAgIHZhbHVlKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMLAorCQkJCSAgICBQREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFQsCisJCQkJICAgIHZhbHVlKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMLAorCQkJCSAgICBQREUxX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFQsCisJCQkJICAgIHZhbHVlKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMLAorCQkJCSAgICBQREUyX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFQsCisJCQkJICAgIHZhbHVlKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsCisJCQkgICAgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwsCisJCQkgICAgVFJBTlNMQVRFX0ZVUlRIRVJfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVCwKKwkJCSAgICB2YWx1ZSk7CisJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTCwKKwkJCQkgICAgTkFDS19QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxULAorCQkJCSAgICB2YWx1ZSk7CisJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTCwKKwkJCQkgICAgRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxULAorCQkJCSAgICB2YWx1ZSk7CisJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTCwKKwkJCQkgICAgVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVCwKKwkJCQkgICAgdmFsdWUpOworCQl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwsCisJCQkJICAgIFJFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVCwKKwkJCQkgICAgdmFsdWUpOworCQl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwsCisJCQkJICAgIFdSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFQsCisJCQkJICAgIHZhbHVlKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMLAorCQkJCSAgICBFWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFQsCisJCQkJICAgIHZhbHVlKTsKKwkJaWYgKCF2YWx1ZSkgeworCQkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsCisJCQkJCSAgICBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTCwKKwkJCQkJICAgIENSQVNIX09OX05PX1JFVFJZX0ZBVUxULCAxKTsKKwkJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLAorCQkJCQkgICAgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwsCisJCQkJCSAgICBDUkFTSF9PTl9SRVRSWV9GQVVMVCwgMSk7CisJCX0KKworCQlXUkVHMzJfU09DMTVfT0ZGU0VUKE1NSFVCLCAwLAorCQkJCSAgICBtbVZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMLAorCQkJCSAgICBpICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VULCB0bXApOworCX0KK30KKwordm9pZCBtbWh1Yl92OV80X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJc3RydWN0IGFtZGdwdV92bWh1YiAqaHViW01NSFVCX05VTV9JTlNUQU5DRVNdID0KKwkJeyZhZGV2LT52bWh1YltBTURHUFVfTU1IVUJfMF0sICZhZGV2LT52bWh1YltBTURHUFVfTU1IVUJfMV19OworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IE1NSFVCX05VTV9JTlNUQU5DRVM7IGkrKykgeworCQlodWJbaV0tPmN0eDBfcHRiX2FkZHJfbG8zMiA9CisJCQlTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAwLAorCQkJICAgIG1tVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyKSArCisJCQkgICAgaSAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVDsKKwkJaHViW2ldLT5jdHgwX3B0Yl9hZGRyX2hpMzIgPQorCQkJU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwKKwkJCSAgICBtbVZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMikgKworCQkJICAgIGkgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQ7CisJCWh1YltpXS0+dm1faW52X2VuZzBfcmVxID0KKwkJCVNPQzE1X1JFR19PRkZTRVQoTU1IVUIsIDAsCisJCQkJCSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX1JFUSkgKworCQkJCQkgaSAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVDsKKwkJaHViW2ldLT52bV9pbnZfZW5nMF9hY2sgPQorCQkJU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwKKwkJCQkJIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfQUNLKSArCisJCQkJCSBpICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUOworCQlodWJbaV0tPnZtX2NvbnRleHQwX2NudGwgPQorCQkJU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwKKwkJCQkJIG1tVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMKSArCisJCQkJCSBpICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUOworCQlodWJbaV0tPnZtX2wyX3Byb19mYXVsdF9zdGF0dXMgPQorCQkJU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwKKwkJCQkgICAgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTKSArCisJCQkJICAgIGkgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQ7CisJCWh1YltpXS0+dm1fbDJfcHJvX2ZhdWx0X2NudGwgPQorCQkJU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwKKwkJCQkgICAgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTCkgKworCQkJCSAgICBpICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUOworCX0KK30KKworc3RhdGljIHZvaWQgbW1odWJfdjlfNF91cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkJCQlib29sIGVuYWJsZSkKK3sKKwl1aW50MzJfdCBkZWYsIGRhdGEsIGRlZjEsIGRhdGExOworCWludCBpLCBqOworCWludCBkaXN0ID0gbW1EQUdCMV9DTlRMX01JU0MyIC0gbW1EQUdCMF9DTlRMX01JU0MyOworCisJZm9yIChpID0gMDsgaSA8IE1NSFVCX05VTV9JTlNUQU5DRVM7IGkrKykgeworCQlkZWYgPSBkYXRhID0gUlJFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCQkJbW1BVENMMl8wX0FUQ19MMl9NSVNDX0NHLAorCQkJCQlpICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUKTsKKworCQlpZiAoZW5hYmxlICYmIChhZGV2LT5jZ19mbGFncyAmIEFNRF9DR19TVVBQT1JUX01DX01HQ0cpKQorCQkJZGF0YSB8PSBBVENMMl8wX0FUQ19MMl9NSVNDX0NHX19FTkFCTEVfTUFTSzsKKwkJZWxzZQorCQkJZGF0YSAmPSB+QVRDTDJfMF9BVENfTDJfTUlTQ19DR19fRU5BQkxFX01BU0s7CisKKwkJaWYgKGRlZiAhPSBkYXRhKQorCQkJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1BVENMMl8wX0FUQ19MMl9NSVNDX0NHLAorCQkJCWkgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsIGRhdGEpOworCisJCWZvciAoaiA9IDA7IGogPCA1OyBqKyspIHsKKwkJCWRlZjEgPSBkYXRhMSA9IFJSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkJCW1tREFHQjBfQ05UTF9NSVNDMiwKKwkJCQkJaSAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCArCisJCQkJCWogKiBkaXN0KTsKKwkJCWlmIChlbmFibGUgJiYKKwkJCSAgICAoYWRldi0+Y2dfZmxhZ3MgJiBBTURfQ0dfU1VQUE9SVF9NQ19NR0NHKSkgeworCQkJCWRhdGExICY9CisJCQkJICAgIH4oREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFUV9DR19NQVNLIHwKKwkJCQkgICAgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFVF9DR19NQVNLIHwKKwkJCQkgICAgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFUV9DR19NQVNLIHwKKwkJCQkgICAgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFVF9DR19NQVNLIHwKKwkJCQkgICAgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJXUl9DR19NQVNLIHwKKwkJCQkgICAgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJSRF9DR19NQVNLKTsKKwkJCX0gZWxzZSB7CisJCQkJZGF0YTEgfD0KKwkJCQkgICAgKERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVFfQ0dfTUFTSyB8CisJCQkJICAgIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVRfQ0dfTUFTSyB8CisJCQkJICAgIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVFfQ0dfTUFTSyB8CisJCQkJICAgIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVRfQ0dfTUFTSyB8CisJCQkJICAgIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCV1JfQ0dfTUFTSyB8CisJCQkJICAgIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCUkRfQ0dfTUFTSyk7CisJCQl9CisKKwkJCWlmIChkZWYxICE9IGRhdGExKQorCQkJCVdSRUczMl9TT0MxNV9PRkZTRVQoTU1IVUIsIDAsCisJCQkJCW1tREFHQjBfQ05UTF9NSVNDMiwKKwkJCQkJaSAqIE1NSFVCX0lOU1RBTkNFX1JFR0lTVEVSX09GRlNFVCArCisJCQkJCWogKiBkaXN0LCBkYXRhMSk7CisKKwkJCWlmIChpID09IDEgJiYgaiA9PSAzKQorCQkJCWJyZWFrOworCQl9CisJfQorfQorCitzdGF0aWMgdm9pZCBtbWh1Yl92OV80X3VwZGF0ZV9tZWRpdW1fZ3JhaW5fbGlnaHRfc2xlZXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCQkgICAgICAgYm9vbCBlbmFibGUpCit7CisJdWludDMyX3QgZGVmLCBkYXRhOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IE1NSFVCX05VTV9JTlNUQU5DRVM7IGkrKykgeworCQlkZWYgPSBkYXRhID0gUlJFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwKKwkJCQkJbW1BVENMMl8wX0FUQ19MMl9NSVNDX0NHLAorCQkJCQlpICogTU1IVUJfSU5TVEFOQ0VfUkVHSVNURVJfT0ZGU0VUKTsKKworCQlpZiAoZW5hYmxlICYmIChhZGV2LT5jZ19mbGFncyAmIEFNRF9DR19TVVBQT1JUX01DX0xTKSkKKwkJCWRhdGEgfD0gQVRDTDJfMF9BVENfTDJfTUlTQ19DR19fTUVNX0xTX0VOQUJMRV9NQVNLOworCQllbHNlCisJCQlkYXRhICY9IH5BVENMMl8wX0FUQ19MMl9NSVNDX0NHX19NRU1fTFNfRU5BQkxFX01BU0s7CisKKwkJaWYgKGRlZiAhPSBkYXRhKQorCQkJV1JFRzMyX1NPQzE1X09GRlNFVChNTUhVQiwgMCwgbW1BVENMMl8wX0FUQ19MMl9NSVNDX0NHLAorCQkJCWkgKiBNTUhVQl9JTlNUQU5DRV9SRUdJU1RFUl9PRkZTRVQsIGRhdGEpOworCX0KK30KKworaW50IG1taHViX3Y5XzRfc2V0X2Nsb2NrZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJICAgICAgIGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQoreworCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCisJCXJldHVybiAwOworCisJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKKwljYXNlIENISVBfQVJDVFVSVVM6CisJCW1taHViX3Y5XzRfdXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwKKwkJCQlzdGF0ZSA9PSBBTURfQ0dfU1RBVEVfR0FURSA/IHRydWUgOiBmYWxzZSk7CisJCW1taHViX3Y5XzRfdXBkYXRlX21lZGl1bV9ncmFpbl9saWdodF9zbGVlcChhZGV2LAorCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgbW1odWJfdjlfNF9nZXRfY2xvY2tnYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiAqZmxhZ3MpCit7CisJaW50IGRhdGEsIGRhdGExOworCisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkKKwkJKmZsYWdzID0gMDsKKworCS8qIEFNRF9DR19TVVBQT1JUX01DX01HQ0cgKi8KKwlkYXRhID0gUlJFRzMyX1NPQzE1KE1NSFVCLCAwLCBtbUFUQ0wyXzBfQVRDX0wyX01JU0NfQ0cpOworCisJZGF0YTEgPSBSUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tQVRDTDJfMF9BVENfTDJfTUlTQ19DRyk7CisKKwlpZiAoKGRhdGEgJiBBVENMMl8wX0FUQ19MMl9NSVNDX0NHX19FTkFCTEVfTUFTSykgJiYKKwkgICAgIShkYXRhMSAmIChEQUdCMF9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVRX0NHX01BU0sgfAorCQkgICAgICAgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFVF9DR19NQVNLIHwKKwkJICAgICAgIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVFfQ0dfTUFTSyB8CisJCSAgICAgICBEQUdCMF9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVUX0NHX01BU0sgfAorCQkgICAgICAgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJXUl9DR19NQVNLIHwKKwkJICAgICAgIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCUkRfQ0dfTUFTSykpKQorCQkqZmxhZ3MgfD0gQU1EX0NHX1NVUFBPUlRfTUNfTUdDRzsKKworCS8qIEFNRF9DR19TVVBQT1JUX01DX0xTICovCisJaWYgKGRhdGEgJiBBVENMMl8wX0FUQ19MMl9NSVNDX0NHX19NRU1fTFNfRU5BQkxFX01BU0spCisJCSpmbGFncyB8PSBBTURfQ0dfU1VQUE9SVF9NQ19MUzsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3Y5XzQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3Y5XzQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDM1Y2ZjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbW1odWJfdjlfNC5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaWZuZGVmIF9fTU1IVUJfVjlfNF9IX18KKyNkZWZpbmUgX19NTUhVQl9WOV80X0hfXworCit1NjQgbW1odWJfdjlfNF9nZXRfZmJfbG9jYXRpb24oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOworaW50IG1taHViX3Y5XzRfZ2FydF9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwordm9pZCBtbWh1Yl92OV80X2dhcnRfZGlzYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cit2b2lkIG1taHViX3Y5XzRfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgYm9vbCB2YWx1ZSk7Cit2b2lkIG1taHViX3Y5XzRfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CitpbnQgbW1odWJfdjlfNF9zZXRfY2xvY2tnYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkgICAgICAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpOwordm9pZCBtbWh1Yl92OV80X2dldF9jbG9ja2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyICpmbGFncyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMKaW5kZXggMjM1NTQ4Yy4uY2M1YmY1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV9haS5jCkBAIC00NDksMjAgKzQ0OSw2IEBAIHZvaWQgeGdwdV9haV9tYWlsYm94X3B1dF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJYW1kZ3B1X2lycV9wdXQoYWRldiwgJmFkZXYtPnZpcnQucmN2X2lycSwgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIHhncHVfYWlfaW5pdF9yZWdfYWNjZXNzX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCi17Ci0JYWRldi0+dmlydC5yZWdfYWNjZXNzX21vZGUgPSBBTURHUFVfVklSVF9SRUdfQUNDRVNTX0xFR0FDWTsKLQotCS8qIEVuYWJsZSBMMSBzZWN1cml0eSByZWcgYWNjZXNzIG1vZGUgYnkgZGVmYXVsLCAgYXMgbm9uLXNlY3VyaXR5IFZGCi0JICogd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkLgotCSAqLwotCWFkZXYtPnZpcnQucmVnX2FjY2Vzc19tb2RlIHw9IEFNREdQVV9WSVJUX1JFR19BQ0NFU1NfUkxDOwotCi0JYWRldi0+dmlydC5yZWdfYWNjZXNzX21vZGUgfD0gQU1ER1BVX1ZJUlRfUkVHX0FDQ0VTU19QU1BfUFJHX0lIOwotCi0JYWRldi0+dmlydC5yZWdfYWNjZXNzX21vZGUgfD0gQU1ER1BVX1ZJUlRfUkVHX1NLSVBfU0VFVElORzsKLX0KLQogY29uc3Qgc3RydWN0IGFtZGdwdV92aXJ0X29wcyB4Z3B1X2FpX3ZpcnRfb3BzID0gewogCS5yZXFfZnVsbF9ncHUJPSB4Z3B1X2FpX3JlcXVlc3RfZnVsbF9ncHVfYWNjZXNzLAogCS5yZWxfZnVsbF9ncHUJPSB4Z3B1X2FpX3JlbGVhc2VfZnVsbF9ncHVfYWNjZXNzLApAQCAtNDcxLDUgKzQ1Nyw0IEBAIGNvbnN0IHN0cnVjdCBhbWRncHVfdmlydF9vcHMgeGdwdV9haV92aXJ0X29wcyA9IHsKIAkudHJhbnNfbXNnID0geGdwdV9haV9tYWlsYm94X3RyYW5zX21zZywKIAkuZ2V0X3BwX2NsayA9IHhncHVfYWlfZ2V0X3BwX2NsaywKIAkuZm9yY2VfZHBtX2xldmVsID0geGdwdV9haV9mb3JjZV9kcG1fbGV2ZWwsCi0JLmluaXRfcmVnX2FjY2Vzc19tb2RlID0geGdwdV9haV9pbml0X3JlZ19hY2Nlc3NfbW9kZSwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYXZpMTBfaWguYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25hdmkxMF9paC5jCmluZGV4IGU5NjM3NDYuLjlmZTA4NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25hdmkxMF9paC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25hdmkxMF9paC5jCkBAIC0yMSw3ICsyMSw4IEBACiAgKgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorCiAjaW5jbHVkZSAiYW1kZ3B1LmgiCiAjaW5jbHVkZSAiYW1kZ3B1X2loLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25hdmkxMF9yZWdfaW5pdC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmF2aTEwX3JlZ19pbml0LmMKaW5kZXggNTUwMTRjZS4uYTU2YzkzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmF2aTEwX3JlZ19pbml0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmF2aTEwX3JlZ19pbml0LmMKQEAgLTI5LDIwICsyOSw4IEBACiAKIGludCBuYXZpMTBfcmVnX2Jhc2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQlpbnQgciwgaTsKKwlpbnQgaTsKIAotCWlmIChhbWRncHVfZGlzY292ZXJ5KSB7Ci0JCXIgPSBhbWRncHVfZGlzY292ZXJ5X3JlZ19iYXNlX2luaXQoYWRldik7Ci0JCWlmIChyKSB7Ci0JCQlEUk1fV0FSTigiZmFpbGVkIHRvIGluaXQgcmVnIGJhc2UgZnJvbSBpcCBkaXNjb3ZlcnkgdGFibGUsICIKLQkJCQkJImZhbGxiYWNrIHRvIGxlZ2FjeSBpbml0IG1ldGhvZFxuIik7Ci0JCQlnb3RvIGxlZ2FjeV9pbml0OwotCQl9Ci0KLQkJcmV0dXJuIDA7Ci0JfQotCi1sZWdhY3lfaW5pdDoKIAlmb3IgKGkgPSAwIDsgaSA8IE1BWF9JTlNUQU5DRSA7ICsraSkgewogCQlhZGV2LT5yZWdfb2Zmc2V0W0dDX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoR0NfQkFTRS5pbnN0YW5jZVtpXSkpOwogCQlhZGV2LT5yZWdfb2Zmc2V0W0hEUF9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKEhEUF9CQVNFLmluc3RhbmNlW2ldKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYXZpMTJfcmVnX2luaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25hdmkxMl9yZWdfaW5pdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhZGM3NjAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYXZpMTJfcmVnX2luaXQuYwpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IDIwMTggQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworI2luY2x1ZGUgImFtZGdwdS5oIgorI2luY2x1ZGUgIm52LmgiCisKKyNpbmNsdWRlICJzb2MxNV9jb21tb24uaCIKKyNpbmNsdWRlICJzb2MxNV9od19pcC5oIgorI2luY2x1ZGUgIm5hdmkxMl9pcF9vZmZzZXQuaCIKKworaW50IG5hdmkxMl9yZWdfYmFzZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCS8qIEhXIGhhcyBtb3JlIElQIGJsb2NrcywgIG9ubHkgaW5pdGlhbGl6ZWQgdGhlIGJsb2NrcyBuZWVkZWQgYnkgZHJpdmVyICovCisJdWludDMyX3QgaTsKKwlmb3IgKGkgPSAwIDsgaSA8IE1BWF9JTlNUQU5DRSA7ICsraSkgeworCQlhZGV2LT5yZWdfb2Zmc2V0W0dDX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoR0NfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W0hEUF9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKEhEUF9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbTU1IVUJfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihNTUhVQl9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbQVRIVUJfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihBVEhVQl9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbTkJJT19IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKE5CSUYwX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtNUDBfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihNUDBfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W01QMV9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKE1QMV9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbVkNOX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoVVZEMF9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbREZfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihERl9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbRENFX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoRE1VX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtPU1NTWVNfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihPU1NTWVNfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W1NETUEwX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoR0NfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W1NETUExX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoR0NfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W1NNVUlPX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoU01VSU9fQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W1RITV9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKFRITV9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbQ0xLX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoQ0xLX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwl9CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYXZpMTRfcmVnX2luaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25hdmkxNF9yZWdfaW5pdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNWYwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYXZpMTRfcmVnX2luaXQuYwpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IDIwMTggQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworI2luY2x1ZGUgImFtZGdwdS5oIgorI2luY2x1ZGUgIm52LmgiCisKKyNpbmNsdWRlICJzb2MxNV9jb21tb24uaCIKKyNpbmNsdWRlICJzb2MxNV9od19pcC5oIgorI2luY2x1ZGUgIm5hdmkxNF9pcF9vZmZzZXQuaCIKKworaW50IG5hdmkxNF9yZWdfYmFzZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCWludCBpOworCisJZm9yIChpID0gMCA7IGkgPCBNQVhfSU5TVEFOQ0UgOyArK2kpIHsKKwkJYWRldi0+cmVnX29mZnNldFtHQ19IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKEdDX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtIRFBfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihIRFBfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W01NSFVCX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoTU1IVUJfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W0FUSFVCX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoQVRIVUJfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W05CSU9fSFdJUF1baV0gPSAodWludDMyX3QgKikoJihOQklGMF9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbTVAwX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoTVAwX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtNUDFfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihNUDFfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W1ZDTl9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKFVWRDBfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W0RGX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoREZfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W0RDRV9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKERNVV9CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbT1NTU1lTX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoT1NTU1lTX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtTRE1BMF9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKEdDX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtTRE1BMV9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKEdDX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtTTVVJT19IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKFNNVUlPX0JBU0UuaW5zdGFuY2VbaV0pKTsKKwkJYWRldi0+cmVnX29mZnNldFtUSE1fSFdJUF1baV0gPSAodWludDMyX3QgKikoJihUSE1fQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W0NMS19IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKENMS19CQVNFLmluc3RhbmNlW2ldKSk7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3YyXzMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjJfMy5jCmluZGV4IDgzNWQ3YjEuLmMwNWQ3OGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjJfMy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjJfMy5jCkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyB2b2lkIG5iaW9fdjJfM19zZG1hX2Rvb3JiZWxsX3JhbmdlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgaW5zdGFuCiB9CiAKIHN0YXRpYyB2b2lkIG5iaW9fdjJfM192Y25fZG9vcmJlbGxfcmFuZ2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdXNlX2Rvb3JiZWxsLAotCQkJCQkgaW50IGRvb3JiZWxsX2luZGV4KQorCQkJCQkgaW50IGRvb3JiZWxsX2luZGV4LCBpbnQgaW5zdGFuY2UpCiB7CiAJdTMyIHJlZyA9IFNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1CSUZfTU1TQ0gwX0RPT1JCRUxMX1JBTkdFKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N18wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzAuYwppbmRleCA3MzQxOWZhLi43NGVlY2I3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzAuYwpAQCAtOTEsNiArOTEsMjYgQEAgc3RhdGljIHZvaWQgbmJpb192N18wX3NkbWFfZG9vcmJlbGxfcmFuZ2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBpbnN0YW4KIAlXUkVHMzIocmVnLCBkb29yYmVsbF9yYW5nZSk7CiB9CiAKK3N0YXRpYyB2b2lkIG5iaW9fdjdfMF92Y25fZG9vcmJlbGxfcmFuZ2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdXNlX2Rvb3JiZWxsLAorCQkJCQkgaW50IGRvb3JiZWxsX2luZGV4LCBpbnQgaW5zdGFuY2UpCit7CisJdTMyIHJlZyA9IFNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1CSUZfTU1TQ0gwX0RPT1JCRUxMX1JBTkdFKTsKKworCXUzMiBkb29yYmVsbF9yYW5nZSA9IFJSRUczMihyZWcpOworCisJaWYgKHVzZV9kb29yYmVsbCkgeworCQlkb29yYmVsbF9yYW5nZSA9IFJFR19TRVRfRklFTEQoZG9vcmJlbGxfcmFuZ2UsCisJCQkJCSAgICAgICBCSUZfTU1TQ0gwX0RPT1JCRUxMX1JBTkdFLCBPRkZTRVQsCisJCQkJCSAgICAgICBkb29yYmVsbF9pbmRleCk7CisJCWRvb3JiZWxsX3JhbmdlID0gUkVHX1NFVF9GSUVMRChkb29yYmVsbF9yYW5nZSwKKwkJCQkJICAgICAgIEJJRl9NTVNDSDBfRE9PUkJFTExfUkFOR0UsIFNJWkUsIDgpOworCX0gZWxzZQorCQlkb29yYmVsbF9yYW5nZSA9IFJFR19TRVRfRklFTEQoZG9vcmJlbGxfcmFuZ2UsCisJCQkJCSAgICAgICBCSUZfTU1TQ0gwX0RPT1JCRUxMX1JBTkdFLCBTSVpFLCAwKTsKKworCVdSRUczMihyZWcsIGRvb3JiZWxsX3JhbmdlKTsKK30KKwogc3RhdGljIHZvaWQgbmJpb192N18wX2VuYWJsZV9kb29yYmVsbF9hcGVydHVyZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJICAgICAgIGJvb2wgZW5hYmxlKQogewpAQCAtMjgyLDYgKzMwMiw3IEBAIGNvbnN0IHN0cnVjdCBhbWRncHVfbmJpb19mdW5jcyBuYmlvX3Y3XzBfZnVuY3MgPSB7CiAJLmhkcF9mbHVzaCA9IG5iaW9fdjdfMF9oZHBfZmx1c2gsCiAJLmdldF9tZW1zaXplID0gbmJpb192N18wX2dldF9tZW1zaXplLAogCS5zZG1hX2Rvb3JiZWxsX3JhbmdlID0gbmJpb192N18wX3NkbWFfZG9vcmJlbGxfcmFuZ2UsCisJLnZjbl9kb29yYmVsbF9yYW5nZSA9IG5iaW9fdjdfMF92Y25fZG9vcmJlbGxfcmFuZ2UsCiAJLmVuYWJsZV9kb29yYmVsbF9hcGVydHVyZSA9IG5iaW9fdjdfMF9lbmFibGVfZG9vcmJlbGxfYXBlcnR1cmUsCiAJLmVuYWJsZV9kb29yYmVsbF9zZWxmcmluZ19hcGVydHVyZSA9IG5iaW9fdjdfMF9lbmFibGVfZG9vcmJlbGxfc2VsZnJpbmdfYXBlcnR1cmUsCiAJLmloX2Rvb3JiZWxsX3JhbmdlID0gbmJpb192N18wX2loX2Rvb3JiZWxsX3JhbmdlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N180LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzQuYwppbmRleCBiZmFhYTMyLi45MTBmZmZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzQuYwpAQCAtMzEsNiArMzEsMjUgQEAKIAogI2RlZmluZSBzbW5OQklGX01HQ0dfQ1RSTF9MQ0xLCTB4MTAxM2EyMWMKIAorLyoKKyAqIFRoZXNlIGFyZSBuYmlvIHY3XzRfMSByZWdpc3RlcnMgbWFzay4gVGVtcG9yYXJpbHkgZGVmaW5lIHRoZXNlIGhlcmUgc2luY2UKKyAqIG5iaW8gdjdfNF8xIGhlYWRlciBpcyBpbmNvbXBsZXRlLgorICovCisjZGVmaW5lIEdQVV9IRFBfRkxVU0hfRE9ORV9fUlNWRF9FTkcwX01BU0sJMHgwMDAwMTAwMEwKKyNkZWZpbmUgR1BVX0hEUF9GTFVTSF9ET05FX19SU1ZEX0VORzFfTUFTSwkweDAwMDAyMDAwTAorI2RlZmluZSBHUFVfSERQX0ZMVVNIX0RPTkVfX1JTVkRfRU5HMl9NQVNLCTB4MDAwMDQwMDBMCisjZGVmaW5lIEdQVV9IRFBfRkxVU0hfRE9ORV9fUlNWRF9FTkczX01BU0sJMHgwMDAwODAwMEwKKyNkZWZpbmUgR1BVX0hEUF9GTFVTSF9ET05FX19SU1ZEX0VORzRfTUFTSwkweDAwMDEwMDAwTAorI2RlZmluZSBHUFVfSERQX0ZMVVNIX0RPTkVfX1JTVkRfRU5HNV9NQVNLCTB4MDAwMjAwMDBMCisKKyNkZWZpbmUgbW1CSUZfTU1TQ0gxX0RPT1JCRUxMX1JBTkdFICAgICAgICAgICAgICAgICAgICAgMHgwMWRjCisjZGVmaW5lIG1tQklGX01NU0NIMV9ET09SQkVMTF9SQU5HRV9CQVNFX0lEWCAgICAgICAgICAgIDIKKy8vQklGX01NU0NIMV9ET09SQkVMTF9SQU5HRQorI2RlZmluZSBCSUZfTU1TQ0gxX0RPT1JCRUxMX1JBTkdFX19PRkZTRVRfX1NISUZUICAgICAgICAweDIKKyNkZWZpbmUgQklGX01NU0NIMV9ET09SQkVMTF9SQU5HRV9fU0laRV9fU0hJRlQgICAgICAgICAgMHgxMAorI2RlZmluZSBCSUZfTU1TQ0gxX0RPT1JCRUxMX1JBTkdFX19PRkZTRVRfTUFTSyAgICAgICAgICAweDAwMDAwRkZDTAorI2RlZmluZSBCSUZfTU1TQ0gxX0RPT1JCRUxMX1JBTkdFX19TSVpFX01BU0sgICAgICAgICAgICAweDAwMUYwMDAwTAorCiBzdGF0aWMgdm9pZCBuYmlvX3Y3XzRfcmVtYXBfaGRwX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlXUkVHMzJfU09DMTUoTkJJTywgMCwgbW1SRU1BUF9IRFBfTUVNX0ZMVVNIX0NOVEwsCkBAIC03NSwxMCArOTQsMjQgQEAgc3RhdGljIHUzMiBuYmlvX3Y3XzRfZ2V0X21lbXNpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiBzdGF0aWMgdm9pZCBuYmlvX3Y3XzRfc2RtYV9kb29yYmVsbF9yYW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGluc3RhbmNlLAogCQkJYm9vbCB1c2VfZG9vcmJlbGwsIGludCBkb29yYmVsbF9pbmRleCwgaW50IGRvb3JiZWxsX3NpemUpCiB7Ci0JdTMyIHJlZyA9IGluc3RhbmNlID09IDAgPyBTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAsIG1tQklGX1NETUEwX0RPT1JCRUxMX1JBTkdFKSA6Ci0JCQlTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAsIG1tQklGX1NETUExX0RPT1JCRUxMX1JBTkdFKTsKKwl1MzIgcmVnLCBkb29yYmVsbF9yYW5nZTsKIAotCXUzMiBkb29yYmVsbF9yYW5nZSA9IFJSRUczMihyZWcpOworCWlmIChpbnN0YW5jZSA8IDIpCisJCXJlZyA9IGluc3RhbmNlICsKKwkJCVNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1CSUZfU0RNQTBfRE9PUkJFTExfUkFOR0UpOworCWVsc2UKKwkJLyoKKwkJICogVGhlc2UgcmVnaXN0ZXJzIGFkZHJlc3Mgb2YgU0RNQTJ+NyBpcyBub3QgY29uc2VjdXRpdmUKKwkJICogZnJvbSBTRE1BMH4xLiBOZWVkIHBsdXMgNCBkd29yZHMgb2Zmc2V0LgorCQkgKgorCQkgKiAgIEJJRl9TRE1BMF9ET09SQkVMTF9SQU5HRTogIDB4M2JjMAorCQkgKiAgIEJJRl9TRE1BMV9ET09SQkVMTF9SQU5HRTogIDB4M2JjNAorCQkgKiAgIEJJRl9TRE1BMl9ET09SQkVMTF9SQU5HRTogIDB4M2JkOAorCQkgKi8KKwkJcmVnID0gaW5zdGFuY2UgKyAweDQgKworCQkJU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUJJRl9TRE1BMF9ET09SQkVMTF9SQU5HRSk7CisKKwlkb29yYmVsbF9yYW5nZSA9IFJSRUczMihyZWcpOwogCiAJaWYgKHVzZV9kb29yYmVsbCkgewogCQlkb29yYmVsbF9yYW5nZSA9IFJFR19TRVRfRklFTEQoZG9vcmJlbGxfcmFuZ2UsIEJJRl9TRE1BMF9ET09SQkVMTF9SQU5HRSwgT0ZGU0VULCBkb29yYmVsbF9pbmRleCk7CkBAIC04OSw2ICsxMjIsMzIgQEAgc3RhdGljIHZvaWQgbmJpb192N180X3NkbWFfZG9vcmJlbGxfcmFuZ2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBpbnN0YW4KIAlXUkVHMzIocmVnLCBkb29yYmVsbF9yYW5nZSk7CiB9CiAKK3N0YXRpYyB2b2lkIG5iaW9fdjdfNF92Y25fZG9vcmJlbGxfcmFuZ2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdXNlX2Rvb3JiZWxsLAorCQkJCQkgaW50IGRvb3JiZWxsX2luZGV4LCBpbnQgaW5zdGFuY2UpCit7CisJdTMyIHJlZzsKKwl1MzIgZG9vcmJlbGxfcmFuZ2U7CisKKwlpZiAoaW5zdGFuY2UpCisJCXJlZyA9IFNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1CSUZfTU1TQ0gxX0RPT1JCRUxMX1JBTkdFKTsKKwllbHNlCisJCXJlZyA9IFNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1CSUZfTU1TQ0gwX0RPT1JCRUxMX1JBTkdFKTsKKworCWRvb3JiZWxsX3JhbmdlID0gUlJFRzMyKHJlZyk7CisKKwlpZiAodXNlX2Rvb3JiZWxsKSB7CisJCWRvb3JiZWxsX3JhbmdlID0gUkVHX1NFVF9GSUVMRChkb29yYmVsbF9yYW5nZSwKKwkJCQkJICAgICAgIEJJRl9NTVNDSDBfRE9PUkJFTExfUkFOR0UsIE9GRlNFVCwKKwkJCQkJICAgICAgIGRvb3JiZWxsX2luZGV4KTsKKwkJZG9vcmJlbGxfcmFuZ2UgPSBSRUdfU0VUX0ZJRUxEKGRvb3JiZWxsX3JhbmdlLAorCQkJCQkgICAgICAgQklGX01NU0NIMF9ET09SQkVMTF9SQU5HRSwgU0laRSwgOCk7CisJfSBlbHNlCisJCWRvb3JiZWxsX3JhbmdlID0gUkVHX1NFVF9GSUVMRChkb29yYmVsbF9yYW5nZSwKKwkJCQkJICAgICAgIEJJRl9NTVNDSDBfRE9PUkJFTExfUkFOR0UsIFNJWkUsIDApOworCisJV1JFRzMyKHJlZywgZG9vcmJlbGxfcmFuZ2UpOworfQorCiBzdGF0aWMgdm9pZCBuYmlvX3Y3XzRfZW5hYmxlX2Rvb3JiZWxsX2FwZXJ0dXJlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCQkgICAgICAgYm9vbCBlbmFibGUpCiB7CkBAIC0yMjAsNiArMjc5LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmJpb19oZHBfZmx1c2hfcmVnIG5iaW9fdjdfNF9oZHBfZmx1c2hfcmVnID0gewogCS5yZWZfYW5kX21hc2tfY3A5ID0gR1BVX0hEUF9GTFVTSF9ET05FX19DUDlfTUFTSywKIAkucmVmX2FuZF9tYXNrX3NkbWEwID0gR1BVX0hEUF9GTFVTSF9ET05FX19TRE1BMF9NQVNLLAogCS5yZWZfYW5kX21hc2tfc2RtYTEgPSBHUFVfSERQX0ZMVVNIX0RPTkVfX1NETUExX01BU0ssCisJLnJlZl9hbmRfbWFza19zZG1hMiA9IEdQVV9IRFBfRkxVU0hfRE9ORV9fUlNWRF9FTkcwX01BU0ssCisJLnJlZl9hbmRfbWFza19zZG1hMyA9IEdQVV9IRFBfRkxVU0hfRE9ORV9fUlNWRF9FTkcxX01BU0ssCisJLnJlZl9hbmRfbWFza19zZG1hNCA9IEdQVV9IRFBfRkxVU0hfRE9ORV9fUlNWRF9FTkcyX01BU0ssCisJLnJlZl9hbmRfbWFza19zZG1hNSA9IEdQVV9IRFBfRkxVU0hfRE9ORV9fUlNWRF9FTkczX01BU0ssCisJLnJlZl9hbmRfbWFza19zZG1hNiA9IEdQVV9IRFBfRkxVU0hfRE9ORV9fUlNWRF9FTkc0X01BU0ssCisJLnJlZl9hbmRfbWFza19zZG1hNyA9IEdQVV9IRFBfRkxVU0hfRE9ORV9fUlNWRF9FTkc1X01BU0ssCiB9OwogCiBzdGF0aWMgdm9pZCBuYmlvX3Y3XzRfZGV0ZWN0X2h3X3ZpcnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCkBAIC0yNjEsNiArMzI2LDcgQEAgY29uc3Qgc3RydWN0IGFtZGdwdV9uYmlvX2Z1bmNzIG5iaW9fdjdfNF9mdW5jcyA9IHsKIAkuaGRwX2ZsdXNoID0gbmJpb192N180X2hkcF9mbHVzaCwKIAkuZ2V0X21lbXNpemUgPSBuYmlvX3Y3XzRfZ2V0X21lbXNpemUsCiAJLnNkbWFfZG9vcmJlbGxfcmFuZ2UgPSBuYmlvX3Y3XzRfc2RtYV9kb29yYmVsbF9yYW5nZSwKKwkudmNuX2Rvb3JiZWxsX3JhbmdlID0gbmJpb192N180X3Zjbl9kb29yYmVsbF9yYW5nZSwKIAkuZW5hYmxlX2Rvb3JiZWxsX2FwZXJ0dXJlID0gbmJpb192N180X2VuYWJsZV9kb29yYmVsbF9hcGVydHVyZSwKIAkuZW5hYmxlX2Rvb3JiZWxsX3NlbGZyaW5nX2FwZXJ0dXJlID0gbmJpb192N180X2VuYWJsZV9kb29yYmVsbF9zZWxmcmluZ19hcGVydHVyZSwKIAkuaWhfZG9vcmJlbGxfcmFuZ2UgPSBuYmlvX3Y3XzRfaWhfZG9vcmJlbGxfcmFuZ2UsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9udi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbnYuYwppbmRleCA5OTIyYmNlLi44NTM5M2E5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9udi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L252LmMKQEAgLTIzLDcgKzIzLDggQEAKICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorCiAjaW5jbHVkZSAiYW1kZ3B1LmgiCiAjaW5jbHVkZSAiYW1kZ3B1X2F0b21iaW9zLmgiCiAjaW5jbHVkZSAiYW1kZ3B1X2loLmgiCkBAIC0yODksNiArMjkwLDE4IEBAIHN0YXRpYyBpbnQgbnZfYXNpY19tb2RlMV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCXJldHVybiByZXQ7CiB9CisKK3N0YXRpYyBlbnVtIGFtZF9yZXNldF9tZXRob2QKK252X2FzaWNfcmVzZXRfbWV0aG9kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gJmFkZXYtPnNtdTsKKworCWlmIChzbXVfYmFjb19pc19zdXBwb3J0KHNtdSkpCisJCXJldHVybiBBTURfUkVTRVRfTUVUSE9EX0JBQ087CisJZWxzZQorCQlyZXR1cm4gQU1EX1JFU0VUX01FVEhPRF9NT0RFMTsKK30KKwogc3RhdGljIGludCBudl9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCkBAIC0zMDMsMTAgKzMxNiwxMyBAQCBzdGF0aWMgaW50IG52X2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaW50IHJldCA9IDA7CiAJc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAmYWRldi0+c211OwogCi0JaWYgKHNtdV9iYWNvX2lzX3N1cHBvcnQoc211KSkKKwlpZiAobnZfYXNpY19yZXNldF9tZXRob2QoYWRldikgPT0gQU1EX1JFU0VUX01FVEhPRF9CQUNPKSB7CisJCWFtZGdwdV9pbmNfdnJhbV9sb3N0KGFkZXYpOwogCQlyZXQgPSBzbXVfYmFjb19yZXNldChzbXUpOwotCWVsc2UKKwl9IGVsc2UgeworCQlhbWRncHVfaW5jX3ZyYW1fbG9zdChhZGV2KTsKIAkJcmV0ID0gbnZfYXNpY19tb2RlMV9yZXNldChhZGV2KTsKKwl9CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMzYzLDIzICszNzksNTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiBudl9jb21tb25faXBfYmxvY2sgPQogCS5mdW5jcyA9ICZudl9jb21tb25faXBfZnVuY3MsCiB9OwogCi1pbnQgbnZfc2V0X2lwX2Jsb2NrcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgbnZfcmVnX2Jhc2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQkvKiBTZXQgSVAgcmVnaXN0ZXIgYmFzZSBiZWZvcmUgYW55IEhXIHJlZ2lzdGVyIGFjY2VzcyAqLworCWludCByOworCisJaWYgKGFtZGdwdV9kaXNjb3ZlcnkpIHsKKwkJciA9IGFtZGdwdV9kaXNjb3ZlcnlfcmVnX2Jhc2VfaW5pdChhZGV2KTsKKwkJaWYgKHIpIHsKKwkJCURSTV9XQVJOKCJmYWlsZWQgdG8gaW5pdCByZWcgYmFzZSBmcm9tIGlwIGRpc2NvdmVyeSB0YWJsZSwgIgorCQkJCQkiZmFsbGJhY2sgdG8gbGVnYWN5IGluaXQgbWV0aG9kXG4iKTsKKwkJCWdvdG8gbGVnYWN5X2luaXQ7CisJCX0KKworCQlyZXR1cm4gMDsKKwl9CisKK2xlZ2FjeV9pbml0OgogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJY2FzZSBDSElQX05BVkkxMDoKIAkJbmF2aTEwX3JlZ19iYXNlX2luaXQoYWRldik7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTQ6CisJCW5hdmkxNF9yZWdfYmFzZV9pbml0KGFkZXYpOworCQlicmVhazsKKwljYXNlIENISVBfTkFWSTEyOgorCQluYXZpMTJfcmVnX2Jhc2VfaW5pdChhZGV2KTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJcmV0dXJuIDA7Cit9CisKK2ludCBudl9zZXRfaXBfYmxvY2tzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCWludCByOworCisJLyogU2V0IElQIHJlZ2lzdGVyIGJhc2UgYmVmb3JlIGFueSBIVyByZWdpc3RlciBhY2Nlc3MgKi8KKwlyID0gbnZfcmVnX2Jhc2VfaW5pdChhZGV2KTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKIAlhZGV2LT5uYmlvX2Z1bmNzID0gJm5iaW9fdjJfM19mdW5jczsKIAogCWFkZXYtPm5iaW9fZnVuY3MtPmRldGVjdF9od192aXJ0KGFkZXYpOwogCiAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKIAljYXNlIENISVBfTkFWSTEwOgorCWNhc2UgQ0hJUF9OQVZJMTQ6CiAJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZudl9jb21tb25faXBfYmxvY2spOwogCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmZ21jX3YxMF8wX2lwX2Jsb2NrKTsKIAkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJm5hdmkxMF9paF9pcF9ibG9jayk7CkBAIC00MDIsNiArNDUwLDI3IEBAIGludCBudl9zZXRfaXBfYmxvY2tzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlpZiAoYWRldi0+ZW5hYmxlX21lcykKIAkJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZtZXNfdjEwXzFfaXBfYmxvY2spOwogCQlicmVhazsKKwljYXNlIENISVBfTkFWSTEyOgorCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmbnZfY29tbW9uX2lwX2Jsb2NrKTsKKwkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJmdtY192MTBfMF9pcF9ibG9jayk7CisJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZuYXZpMTBfaWhfaXBfYmxvY2spOworCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmcHNwX3YxMV8wX2lwX2Jsb2NrKTsKKwkJaWYgKGFkZXYtPmZpcm13YXJlLmxvYWRfdHlwZSA9PSBBTURHUFVfRldfTE9BRF9QU1AgJiYKKwkJICAgIGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQorCQkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJnNtdV92MTFfMF9pcF9ibG9jayk7CisJCWlmIChhZGV2LT5lbmFibGVfdmlydHVhbF9kaXNwbGF5IHx8IGFtZGdwdV9zcmlvdl92ZihhZGV2KSkKKwkJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZkY2VfdmlydHVhbF9pcF9ibG9jayk7CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQykKKwkJZWxzZSBpZiAoYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydChhZGV2KSkKKwkJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZkbV9pcF9ibG9jayk7CisjZW5kaWYKKwkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJmdmeF92MTBfMF9pcF9ibG9jayk7CisJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZzZG1hX3Y1XzBfaXBfYmxvY2spOworCQlpZiAoYWRldi0+ZmlybXdhcmUubG9hZF90eXBlID09IEFNREdQVV9GV19MT0FEX0RJUkVDVCAmJgorCQkgICAgaXNfc3VwcG9ydF9zd19zbXUoYWRldikpCisJCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmc211X3YxMV8wX2lwX2Jsb2NrKTsKKwkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJnZjbl92Ml8wX2lwX2Jsb2NrKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtNDk2LDYgKzU2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2FzaWNfZnVuY3MgbnZfYXNpY19mdW5jcyA9CiAJLnJlYWRfYmlvc19mcm9tX3JvbSA9ICZudl9yZWFkX2Jpb3NfZnJvbV9yb20sCiAJLnJlYWRfcmVnaXN0ZXIgPSAmbnZfcmVhZF9yZWdpc3RlciwKIAkucmVzZXQgPSAmbnZfYXNpY19yZXNldCwKKwkucmVzZXRfbWV0aG9kID0gJm52X2FzaWNfcmVzZXRfbWV0aG9kLAogCS5zZXRfdmdhX3N0YXRlID0gJm52X3ZnYV9zZXRfc3RhdGUsCiAJLmdldF94Y2xrID0gJm52X2dldF94Y2xrLAogCS5zZXRfdXZkX2Nsb2NrcyA9ICZudl9zZXRfdXZkX2Nsb2NrcywKQEAgLTUxMSw3ICs1ODEsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9hc2ljX2Z1bmNzIG52X2FzaWNfZnVuY3MgPQogCiBzdGF0aWMgaW50IG52X2NvbW1vbl9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIHsKLQlib29sIHBzcF9lbmFibGVkID0gZmFsc2U7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlhZGV2LT5zbWNfcnJlZyA9IE5VTEw7CkBAIC01MjgsMTAgKzU5Nyw2IEBAIHN0YXRpYyBpbnQgbnZfY29tbW9uX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogCiAJYWRldi0+YXNpY19mdW5jcyA9ICZudl9hc2ljX2Z1bmNzOwogCi0JaWYgKGFtZGdwdV9kZXZpY2VfaXBfZ2V0X2lwX2Jsb2NrKGFkZXYsIEFNRF9JUF9CTE9DS19UWVBFX1BTUCkgJiYKLQkgICAgKGFtZGdwdV9pcF9ibG9ja19tYXNrICYgKDEgPDwgQU1EX0lQX0JMT0NLX1RZUEVfUFNQKSkpCi0JCXBzcF9lbmFibGVkID0gdHJ1ZTsKLQogCWFkZXYtPnJldl9pZCA9IG52X2dldF9yZXZfaWQoYWRldik7CiAJYWRldi0+ZXh0ZXJuYWxfcmV2X2lkID0gMHhmZjsKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewpAQCAtNTU1LDYgKzYyMCw0NiBAQCBzdGF0aWMgaW50IG52X2NvbW1vbl9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIAkJCUFNRF9QR19TVVBQT1JUX0FUSFVCOwogCQlhZGV2LT5leHRlcm5hbF9yZXZfaWQgPSBhZGV2LT5yZXZfaWQgKyAweDE7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTQ6CisJCWFkZXYtPmNnX2ZsYWdzID0gQU1EX0NHX1NVUFBPUlRfR0ZYX01HQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfR0ZYX0NHQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfSUhfQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfSERQX01HQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfSERQX0xTIHwKKwkJCUFNRF9DR19TVVBQT1JUX1NETUFfTUdDRyB8CisJCQlBTURfQ0dfU1VQUE9SVF9TRE1BX0xTIHwKKwkJCUFNRF9DR19TVVBQT1JUX01DX01HQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfTUNfTFMgfAorCQkJQU1EX0NHX1NVUFBPUlRfQVRIVUJfTUdDRyB8CisJCQlBTURfQ0dfU1VQUE9SVF9BVEhVQl9MUyB8CisJCQlBTURfQ0dfU1VQUE9SVF9WQ05fTUdDRyB8CisJCQlBTURfQ0dfU1VQUE9SVF9CSUZfTUdDRyB8CisJCQlBTURfQ0dfU1VQUE9SVF9CSUZfTFM7CisJCWFkZXYtPnBnX2ZsYWdzID0gQU1EX1BHX1NVUFBPUlRfVkNOIHwKKwkJCUFNRF9QR19TVVBQT1JUX1ZDTl9EUEc7CisJCWFkZXYtPmV4dGVybmFsX3Jldl9pZCA9IGFkZXYtPnJldl9pZCArIDIwOworCQlicmVhazsKKwljYXNlIENISVBfTkFWSTEyOgorCQlhZGV2LT5jZ19mbGFncyA9IEFNRF9DR19TVVBQT1JUX0dGWF9NR0NHIHwKKwkJCUFNRF9DR19TVVBQT1JUX0dGWF9NR0xTIHwKKwkJCUFNRF9DR19TVVBQT1JUX0dGWF9DR0NHIHwKKwkJCUFNRF9DR19TVVBQT1JUX0dGWF9DUF9MUyB8CisJCQlBTURfQ0dfU1VQUE9SVF9HRlhfUkxDX0xTIHwKKwkJCUFNRF9DR19TVVBQT1JUX0lIX0NHIHwKKwkJCUFNRF9DR19TVVBQT1JUX0hEUF9NR0NHIHwKKwkJCUFNRF9DR19TVVBQT1JUX0hEUF9MUyB8CisJCQlBTURfQ0dfU1VQUE9SVF9TRE1BX01HQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfU0RNQV9MUyB8CisJCQlBTURfQ0dfU1VQUE9SVF9NQ19NR0NHIHwKKwkJCUFNRF9DR19TVVBQT1JUX01DX0xTIHwKKwkJCUFNRF9DR19TVVBQT1JUX0FUSFVCX01HQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfQVRIVUJfTFMgfAorCQkJQU1EX0NHX1NVUFBPUlRfVkNOX01HQ0c7CisJCWFkZXYtPnBnX2ZsYWdzID0gQU1EX1BHX1NVUFBPUlRfVkNOIHwKKwkJCUFNRF9QR19TVVBQT1JUX1ZDTl9EUEcgfAorCQkJQU1EX1BHX1NVUFBPUlRfQVRIVUI7CisJCWFkZXYtPmV4dGVybmFsX3Jldl9pZCA9IGFkZXYtPnJldl9pZCArIDB4YTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJLyogRklYTUU6IG5vdCBzdXBwb3J0ZWQgeWV0ICovCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNzQ3LDYgKzg1Miw4IEBAIHN0YXRpYyBpbnQgbnZfY29tbW9uX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCiAKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCWNhc2UgQ0hJUF9OQVZJMTA6CisJY2FzZSBDSElQX05BVkkxNDoKKwljYXNlIENISVBfTkFWSTEyOgogCQlhZGV2LT5uYmlvX2Z1bmNzLT51cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhhZGV2LAogCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKIAkJYWRldi0+bmJpb19mdW5jcy0+dXBkYXRlX21lZGl1bV9ncmFpbl9saWdodF9zbGVlcChhZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L252LmgKaW5kZXggNjM5YzU0OS4uODJlNmNiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9udi5oCkBAIC0zMCw0ICszMCw2IEBAIHZvaWQgbnZfZ3JibV9zZWxlY3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCSAgICB1MzIgbWUsIHUzMiBwaXBlLCB1MzIgcXVldWUsIHUzMiB2bWlkKTsKIGludCBudl9zZXRfaXBfYmxvY2tzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIGludCBuYXZpMTBfcmVnX2Jhc2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CitpbnQgbmF2aTE0X3JlZ19iYXNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOworaW50IG5hdmkxMl9yZWdfYmFzZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX2dmeF9pZi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX2dmeF9pZi5oCmluZGV4IDUwODBhNzNhLi43NGE5ZmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfZ2Z4X2lmLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX2dmeF9pZi5oCkBAIC0yMzMsOCArMjMzLDE1IEBAIGVudW0gcHNwX2dmeF9md190eXBlIHsKIAlHRlhfRldfVFlQRV9STENQX0NBTSAgICAgICAgICAgICAgICAgICAgICAgID0gNDYsICAgLyogUkxDUCBDQU0gICAgICAgICAgICAgICAgIE5WICAgICAgKi8KIAlHRlhfRldfVFlQRV9STENfU1BQX0NBTV9FWFQgICAgICAgICAgICAgICAgID0gNDcsICAgLyogUkxDIFNQUCBDQU0gRVhUICAgICAgICAgIE5WICAgICAgKi8KIAlHRlhfRldfVFlQRV9STFg2X0RSQU1fQk9PVCAgICAgICAgICAgICAgICAgID0gNDgsICAgLyogUkxYNiBEUkFNIEJPT1QgICAgICAgICAgIE5WICAgICAgKi8KLQlHRlhfRldfVFlQRV9WQ04wX1JBTSAgICAgICAgICAgICAgICAgICAgICAgID0gNDksICAgLyogVkNOX1JBTSAgTlYgKi8KLQlHRlhfRldfVFlQRV9WQ04xX1JBTSAgICAgICAgICAgICAgICAgICAgICAgID0gNTAsICAgLyogVkNOX1JBTSAgTlYgKi8KKwlHRlhfRldfVFlQRV9WQ04wX1JBTSAgICAgICAgICAgICAgICAgICAgICAgID0gNDksICAgLyogVkNOX1JBTSAgICAgICAgICAgICAgICAgIE5WICsgUk4gKi8KKwlHRlhfRldfVFlQRV9WQ04xX1JBTSAgICAgICAgICAgICAgICAgICAgICAgID0gNTAsICAgLyogVkNOX1JBTSAgICAgICAgICAgICAgICAgIE5WICsgUk4gKi8KKwlHRlhfRldfVFlQRV9ETVVCICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTEsICAgLyogRE1VQiAgICAgICAgICAgICAgICAgICAgICAgICAgUk4gKi8KKwlHRlhfRldfVFlQRV9TRE1BMiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIsICAgLyogU0RNQTIgICAgICAgICAgICAgICAgICAgIE1JICAgICAgKi8KKwlHRlhfRldfVFlQRV9TRE1BMyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTMsICAgLyogU0RNQTMgICAgICAgICAgICAgICAgICAgIE1JICAgICAgKi8KKwlHRlhfRldfVFlQRV9TRE1BNCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTQsICAgLyogU0RNQTQgICAgICAgICAgICAgICAgICAgIE1JICAgICAgKi8KKwlHRlhfRldfVFlQRV9TRE1BNSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTUsICAgLyogU0RNQTUgICAgICAgICAgICAgICAgICAgIE1JICAgICAgKi8KKwlHRlhfRldfVFlQRV9TRE1BNiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTYsICAgLyogU0RNQTYgICAgICAgICAgICAgICAgICAgIE1JICAgICAgKi8KKwlHRlhfRldfVFlQRV9TRE1BNyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTcsICAgLyogU0RNQTcgICAgICAgICAgICAgICAgICAgIE1JICAgICAgKi8KIAlHRlhfRldfVFlQRV9NQVgKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3BzcF92MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMF8wLmMKaW5kZXggY2UxZWEzMS4uNWQ5NWU2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMF8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMF8wLmMKQEAgLTE5MCw3ICsxOTAsNiBAQCBzdGF0aWMgaW50IHBzcF92MTBfMF9yaW5nX2Rlc3Ryb3koc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsCiB9CiAKIHN0YXRpYyBpbnQgcHNwX3YxMF8wX2NtZF9zdWJtaXQoc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsCi0JCQkJc3RydWN0IGFtZGdwdV9maXJtd2FyZV9pbmZvICp1Y29kZSwKIAkJCQl1aW50NjRfdCBjbWRfYnVmX21jX2FkZHIsIHVpbnQ2NF90IGZlbmNlX21jX2FkZHIsCiAJCQkJaW50IGluZGV4KQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjExXzAuYwppbmRleCA0MWI3MjU4Li4xMDE2NjEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjExXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjExXzAuYwpAQCAtNDMsNiArNDMsMTIgQEAgTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvdmVnYTIwX2FzZC5iaW4iKTsKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3ZlZ2EyMF90YS5iaW4iKTsKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxMF9zb3MuYmluIik7CiBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTBfYXNkLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTE0X3Nvcy5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxNF9hc2QuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTJfc29zLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTEyX2FzZC5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L2FyY3R1cnVzX3Nvcy5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L2FyY3R1cnVzX2FzZC5iaW4iKTsKIAogLyogYWRkcmVzcyBibG9jayAqLwogI2RlZmluZSBzbW5NUDFfRklSTVdBUkVfRkxBR1MJCTB4MzAxMDAyNApAQCAtNjAsNiArNjYsNyBAQCBzdGF0aWMgaW50IHBzcF92MTFfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKIAlpbnQgZXJyID0gMDsKIAljb25zdCBzdHJ1Y3QgcHNwX2Zpcm13YXJlX2hlYWRlcl92MV8wICpzb3NfaGRyOwogCWNvbnN0IHN0cnVjdCBwc3BfZmlybXdhcmVfaGVhZGVyX3YxXzEgKnNvc19oZHJfdjFfMTsKKwljb25zdCBzdHJ1Y3QgcHNwX2Zpcm13YXJlX2hlYWRlcl92MV8yICpzb3NfaGRyX3YxXzI7CiAJY29uc3Qgc3RydWN0IHBzcF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqYXNkX2hkcjsKIAljb25zdCBzdHJ1Y3QgdGFfZmlybXdhcmVfaGVhZGVyX3YxXzAgKnRhX2hkcjsKIApAQCAtNzIsNiArNzksMTUgQEAgc3RhdGljIGludCBwc3BfdjExXzBfaW5pdF9taWNyb2NvZGUoc3RydWN0IHBzcF9jb250ZXh0ICpwc3ApCiAJY2FzZSBDSElQX05BVkkxMDoKIAkJY2hpcF9uYW1lID0gIm5hdmkxMCI7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTQ6CisJCWNoaXBfbmFtZSA9ICJuYXZpMTQiOworCQlicmVhazsKKwljYXNlIENISVBfTkFWSTEyOgorCQljaGlwX25hbWUgPSAibmF2aTEyIjsKKwkJYnJlYWs7CisJY2FzZSBDSElQX0FSQ1RVUlVTOgorCQljaGlwX25hbWUgPSAiYXJjdHVydXMiOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlCVUcoKTsKIAl9CkBAIC0xMDcsNiArMTIzLDEyIEBAIHN0YXRpYyBpbnQgcHNwX3YxMV8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQogCQkJYWRldi0+cHNwLmtkYl9zdGFydF9hZGRyID0gKHVpbnQ4X3QgKilhZGV2LT5wc3Auc3lzX3N0YXJ0X2FkZHIgKwogCQkJCQlsZTMyX3RvX2NwdShzb3NfaGRyX3YxXzEtPmtkYl9vZmZzZXRfYnl0ZXMpOwogCQl9CisJCWlmIChzb3NfaGRyLT5oZWFkZXIuaGVhZGVyX3ZlcnNpb25fbWlub3IgPT0gMikgeworCQkJc29zX2hkcl92MV8yID0gKGNvbnN0IHN0cnVjdCBwc3BfZmlybXdhcmVfaGVhZGVyX3YxXzIgKilhZGV2LT5wc3Auc29zX2Z3LT5kYXRhOworCQkJYWRldi0+cHNwLmtkYl9iaW5fc2l6ZSA9IGxlMzJfdG9fY3B1KHNvc19oZHJfdjFfMi0+a2RiX3NpemVfYnl0ZXMpOworCQkJYWRldi0+cHNwLmtkYl9zdGFydF9hZGRyID0gKHVpbnQ4X3QgKilhZGV2LT5wc3Auc3lzX3N0YXJ0X2FkZHIgKworCQkJCQkJICAgIGxlMzJfdG9fY3B1KHNvc19oZHJfdjFfMi0+a2RiX29mZnNldF9ieXRlcyk7CisJCX0KIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJZGV2X2VycihhZGV2LT5kZXYsCkBAIC0xNTgsNiArMTgwLDkgQEAgc3RhdGljIGludCBwc3BfdjExXzBfaW5pdF9taWNyb2NvZGUoc3RydWN0IHBzcF9jb250ZXh0ICpwc3ApCiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBDSElQX05BVkkxMDoKKwljYXNlIENISVBfTkFWSTE0OgorCWNhc2UgQ0hJUF9OQVZJMTI6CisJY2FzZSBDSElQX0FSQ1RVUlVTOgogCQlicmVhazsKIAlkZWZhdWx0OgogCQlCVUcoKTsKQEAgLTQ3Myw3ICs0OTgsNiBAQCBzdGF0aWMgaW50IHBzcF92MTFfMF9yaW5nX2Rlc3Ryb3koc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsCiB9CiAKIHN0YXRpYyBpbnQgcHNwX3YxMV8wX2NtZF9zdWJtaXQoc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsCi0JCQkgICAgICAgc3RydWN0IGFtZGdwdV9maXJtd2FyZV9pbmZvICp1Y29kZSwKIAkJCSAgICAgICB1aW50NjRfdCBjbWRfYnVmX21jX2FkZHIsIHVpbnQ2NF90IGZlbmNlX21jX2FkZHIsCiAJCQkgICAgICAgaW50IGluZGV4KQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjEyXzAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzJlNDNmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMl8wLmMKQEAgLTAsMCArMSw1NjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSAiYW1kZ3B1LmgiCisjaW5jbHVkZSAiYW1kZ3B1X3BzcC5oIgorI2luY2x1ZGUgImFtZGdwdV91Y29kZS5oIgorI2luY2x1ZGUgInNvYzE1X2NvbW1vbi5oIgorI2luY2x1ZGUgInBzcF92MTJfMC5oIgorCisjaW5jbHVkZSAibXAvbXBfMTJfMF8wX29mZnNldC5oIgorI2luY2x1ZGUgIm1wL21wXzEyXzBfMF9zaF9tYXNrLmgiCisjaW5jbHVkZSAiZ2MvZ2NfOV8wX29mZnNldC5oIgorI2luY2x1ZGUgInNkbWEwL3NkbWEwXzRfMF9vZmZzZXQuaCIKKyNpbmNsdWRlICJuYmlvL25iaW9fN180X29mZnNldC5oIgorCisjaW5jbHVkZSAib3NzL29zc3N5c180XzBfb2Zmc2V0LmgiCisjaW5jbHVkZSAib3NzL29zc3N5c180XzBfc2hfbWFzay5oIgorCitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9yZW5vaXJfYXNkLmJpbiIpOworLyogYWRkcmVzcyBibG9jayAqLworI2RlZmluZSBzbW5NUDFfRklSTVdBUkVfRkxBR1MJCTB4MzAxMDAyNAorCitzdGF0aWMgaW50IHBzcF92MTJfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHBzcC0+YWRldjsKKwljb25zdCBjaGFyICpjaGlwX25hbWU7CisJY2hhciBmd19uYW1lWzMwXTsKKwlpbnQgZXJyID0gMDsKKwljb25zdCBzdHJ1Y3QgcHNwX2Zpcm13YXJlX2hlYWRlcl92MV8wICphc2RfaGRyOworCisJRFJNX0RFQlVHKCJcbiIpOworCisJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKKwljYXNlIENISVBfUkVOT0lSOgorCQljaGlwX25hbWUgPSAicmVub2lyIjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJQlVHKCk7CisJfQorCisJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX2FzZC5iaW4iLCBjaGlwX25hbWUpOworCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPnBzcC5hc2RfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7CisJaWYgKGVycikKKwkJZ290byBvdXQxOworCisJZXJyID0gYW1kZ3B1X3Vjb2RlX3ZhbGlkYXRlKGFkZXYtPnBzcC5hc2RfZncpOworCWlmIChlcnIpCisJCWdvdG8gb3V0MTsKKworCWFzZF9oZHIgPSAoY29uc3Qgc3RydWN0IHBzcF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqKWFkZXYtPnBzcC5hc2RfZnctPmRhdGE7CisJYWRldi0+cHNwLmFzZF9md192ZXJzaW9uID0gbGUzMl90b19jcHUoYXNkX2hkci0+aGVhZGVyLnVjb2RlX3ZlcnNpb24pOworCWFkZXYtPnBzcC5hc2RfZmVhdHVyZV92ZXJzaW9uID0gbGUzMl90b19jcHUoYXNkX2hkci0+dWNvZGVfZmVhdHVyZV92ZXJzaW9uKTsKKwlhZGV2LT5wc3AuYXNkX3Vjb2RlX3NpemUgPSBsZTMyX3RvX2NwdShhc2RfaGRyLT5oZWFkZXIudWNvZGVfc2l6ZV9ieXRlcyk7CisJYWRldi0+cHNwLmFzZF9zdGFydF9hZGRyID0gKHVpbnQ4X3QgKilhc2RfaGRyICsKKwkJCQlsZTMyX3RvX2NwdShhc2RfaGRyLT5oZWFkZXIudWNvZGVfYXJyYXlfb2Zmc2V0X2J5dGVzKTsKKworCXJldHVybiAwOworCitvdXQxOgorCXJlbGVhc2VfZmlybXdhcmUoYWRldi0+cHNwLmFzZF9mdyk7CisJYWRldi0+cHNwLmFzZF9mdyA9IE5VTEw7CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IHBzcF92MTJfMF9ib290bG9hZGVyX2xvYWRfc3lzZHJ2KHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQoreworCWludCByZXQ7CisJdWludDMyX3QgcHNwX2dmeGRydl9jb21tYW5kX3JlZyA9IDA7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBwc3AtPmFkZXY7CisJdWludDMyX3Qgc29sX3JlZzsKKworCS8qIENoZWNrIHNPUyBzaWduIG9mIGxpZmUgcmVnaXN0ZXIgdG8gY29uZmlybSBzeXMgZHJpdmVyIGFuZCBzT1MKKwkgKiBhcmUgYWxyZWFkeSBiZWVuIGxvYWRlZC4KKwkgKi8KKwlzb2xfcmVnID0gUlJFRzMyX1NPQzE1KE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR184MSk7CisJaWYgKHNvbF9yZWcpIHsKKwkJcHNwLT5zb3NfZndfdmVyc2lvbiA9IFJSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNTgpOworCQlwcmludGsoInNvcyBmdyB2ZXJzaW9uID0gMHgleC5cbiIsIHBzcC0+c29zX2Z3X3ZlcnNpb24pOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKiBXYWl0IGZvciBib290bG9hZGVyIHRvIHNpZ25pZnkgdGhhdCBpcyByZWFkeSBoYXZpbmcgYml0IDMxIG9mIEMyUE1TR18zNSBzZXQgdG8gMSAqLworCXJldCA9IHBzcF93YWl0X2Zvcihwc3AsIFNPQzE1X1JFR19PRkZTRVQoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzM1KSwKKwkJCSAgIDB4ODAwMDAwMDAsIDB4ODAwMDAwMDAsIGZhbHNlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJbWVtc2V0KHBzcC0+ZndfcHJpX2J1ZiwgMCwgUFNQXzFfTUVHKTsKKworCS8qIENvcHkgUFNQIFN5c3RlbSBEcml2ZXIgYmluYXJ5IHRvIG1lbW9yeSAqLworCW1lbWNweShwc3AtPmZ3X3ByaV9idWYsIHBzcC0+c3lzX3N0YXJ0X2FkZHIsIHBzcC0+c3lzX2Jpbl9zaXplKTsKKworCS8qIFByb3ZpZGUgdGhlIHN5cyBkcml2ZXIgdG8gYm9vdGxvYWRlciAqLworCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfMzYsCisJICAgICAgICh1aW50MzJfdCkocHNwLT5md19wcmlfbWNfYWRkciA+PiAyMCkpOworCXBzcF9nZnhkcnZfY29tbWFuZF9yZWcgPSAxIDw8IDE2OworCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfMzUsCisJICAgICAgIHBzcF9nZnhkcnZfY29tbWFuZF9yZWcpOworCisJLyogdGhlcmUgbWlnaHQgYmUgaGFuZHNoYWtlIGlzc3VlIHdpdGggaGFyZHdhcmUgd2hpY2ggbmVlZHMgZGVsYXkgKi8KKwltZGVsYXkoMjApOworCisJcmV0ID0gcHNwX3dhaXRfZm9yKHBzcCwgU09DMTVfUkVHX09GRlNFVChNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfMzUpLAorCQkJICAgMHg4MDAwMDAwMCwgMHg4MDAwMDAwMCwgZmFsc2UpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwc3BfdjEyXzBfYm9vdGxvYWRlcl9sb2FkX3NvcyhzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKK3sKKwlpbnQgcmV0OworCXVuc2lnbmVkIGludCBwc3BfZ2Z4ZHJ2X2NvbW1hbmRfcmVnID0gMDsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHBzcC0+YWRldjsKKwl1aW50MzJfdCBzb2xfcmVnOworCisJLyogQ2hlY2sgc09TIHNpZ24gb2YgbGlmZSByZWdpc3RlciB0byBjb25maXJtIHN5cyBkcml2ZXIgYW5kIHNPUworCSAqIGFyZSBhbHJlYWR5IGJlZW4gbG9hZGVkLgorCSAqLworCXNvbF9yZWcgPSBSUkVHMzJfU09DMTUoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzgxKTsKKwlpZiAoc29sX3JlZykKKwkJcmV0dXJuIDA7CisKKwkvKiBXYWl0IGZvciBib290bG9hZGVyIHRvIHNpZ25pZnkgdGhhdCBpcyByZWFkeSBoYXZpbmcgYml0IDMxIG9mIEMyUE1TR18zNSBzZXQgdG8gMSAqLworCXJldCA9IHBzcF93YWl0X2Zvcihwc3AsIFNPQzE1X1JFR19PRkZTRVQoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzM1KSwKKwkJCSAgIDB4ODAwMDAwMDAsIDB4ODAwMDAwMDAsIGZhbHNlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJbWVtc2V0KHBzcC0+ZndfcHJpX2J1ZiwgMCwgUFNQXzFfTUVHKTsKKworCS8qIENvcHkgU2VjdXJlIE9TIGJpbmFyeSB0byBQU1AgbWVtb3J5ICovCisJbWVtY3B5KHBzcC0+ZndfcHJpX2J1ZiwgcHNwLT5zb3Nfc3RhcnRfYWRkciwgcHNwLT5zb3NfYmluX3NpemUpOworCisJLyogUHJvdmlkZSB0aGUgUFNQIHNlY3VyZSBPUyB0byBib290bG9hZGVyICovCisJV1JFRzMyX1NPQzE1KE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR18zNiwKKwkgICAgICAgKHVpbnQzMl90KShwc3AtPmZ3X3ByaV9tY19hZGRyID4+IDIwKSk7CisJcHNwX2dmeGRydl9jb21tYW5kX3JlZyA9IDIgPDwgMTY7CisJV1JFRzMyX1NPQzE1KE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR18zNSwKKwkgICAgICAgcHNwX2dmeGRydl9jb21tYW5kX3JlZyk7CisKKwkvKiB0aGVyZSBtaWdodCBiZSBoYW5kc2hha2UgaXNzdWUgd2l0aCBoYXJkd2FyZSB3aGljaCBuZWVkcyBkZWxheSAqLworCW1kZWxheSgyMCk7CisJcmV0ID0gcHNwX3dhaXRfZm9yKHBzcCwgU09DMTVfUkVHX09GRlNFVChNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfODEpLAorCQkJICAgUlJFRzMyX1NPQzE1KE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR184MSksCisJCQkgICAwLCB0cnVlKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHBzcF92MTJfMF9yZXJvdXRlX2loKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcHNwLT5hZGV2OworCXVpbnQzMl90IHRtcDsKKworCS8qIENoYW5nZSBJSCByaW5nIGZvciBWTUMgKi8KKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKDAsIElIX0NMSUVOVF9DRkdfREFUQSwgQ1JFRElUX1JFVFVSTl9BRERSLCAweDEyNDRiKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgSUhfQ0xJRU5UX0NGR19EQVRBLCBDTElFTlRfVFlQRSwgMSk7CisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIElIX0NMSUVOVF9DRkdfREFUQSwgUklOR19JRCwgMSk7CisKKwlXUkVHMzJfU09DMTUoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzY5LCAzKTsKKwlXUkVHMzJfU09DMTUoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzcwLCB0bXApOworCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNjQsIEdGWF9DVFJMX0NNRF9JRF9HQlJfSUhfU0VUKTsKKworCW1kZWxheSgyMCk7CisJcHNwX3dhaXRfZm9yKHBzcCwgU09DMTVfUkVHX09GRlNFVChNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNjQpLAorCQkgICAgIDB4ODAwMDAwMDAsIDB4ODAwMEZGRkYsIGZhbHNlKTsKKworCS8qIENoYW5nZSBJSCByaW5nIGZvciBVTUMgKi8KKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKDAsIElIX0NMSUVOVF9DRkdfREFUQSwgQ1JFRElUX1JFVFVSTl9BRERSLCAweDEyMTZiKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgSUhfQ0xJRU5UX0NGR19EQVRBLCBSSU5HX0lELCAxKTsKKworCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNjksIDQpOworCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNzAsIHRtcCk7CisJV1JFRzMyX1NPQzE1KE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR182NCwgR0ZYX0NUUkxfQ01EX0lEX0dCUl9JSF9TRVQpOworCisJbWRlbGF5KDIwKTsKKwlwc3Bfd2FpdF9mb3IocHNwLCBTT0MxNV9SRUdfT0ZGU0VUKE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR182NCksCisJCSAgICAgMHg4MDAwMDAwMCwgMHg4MDAwRkZGRiwgZmFsc2UpOworfQorCitzdGF0aWMgaW50IHBzcF92MTJfMF9yaW5nX2luaXQoc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsCisJCQkgICAgICBlbnVtIHBzcF9yaW5nX3R5cGUgcmluZ190eXBlKQoreworCWludCByZXQgPSAwOworCXN0cnVjdCBwc3BfcmluZyAqcmluZzsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHBzcC0+YWRldjsKKworCXBzcF92MTJfMF9yZXJvdXRlX2loKHBzcCk7CisKKwlyaW5nID0gJnBzcC0+a21fcmluZzsKKworCXJpbmctPnJpbmdfdHlwZSA9IHJpbmdfdHlwZTsKKworCS8qIGFsbG9jYXRlIDRrIFBhZ2Ugb2YgTG9jYWwgRnJhbWUgQnVmZmVyIG1lbW9yeSBmb3IgcmluZyAqLworCXJpbmctPnJpbmdfc2l6ZSA9IDB4MTAwMDsKKwlyZXQgPSBhbWRncHVfYm9fY3JlYXRlX2tlcm5lbChhZGV2LCByaW5nLT5yaW5nX3NpemUsIFBBR0VfU0laRSwKKwkJCQkgICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAorCQkJCSAgICAgICZhZGV2LT5maXJtd2FyZS5yYnVmLAorCQkJCSAgICAgICZyaW5nLT5yaW5nX21lbV9tY19hZGRyLAorCQkJCSAgICAgICh2b2lkICoqKSZyaW5nLT5yaW5nX21lbSk7CisJaWYgKHJldCkgeworCQlyaW5nLT5yaW5nX3NpemUgPSAwOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgYm9vbCBwc3BfdjEyXzBfc3VwcG9ydF92bXJfcmluZyhzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKK3sKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKHBzcC0+YWRldikgJiYgcHNwLT5zb3NfZndfdmVyc2lvbiA+IDB4ODAwNDUpCisJCXJldHVybiB0cnVlOworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGludCBwc3BfdjEyXzBfcmluZ19jcmVhdGUoc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsCisJCQkJZW51bSBwc3BfcmluZ190eXBlIHJpbmdfdHlwZSkKK3sKKwlpbnQgcmV0ID0gMDsKKwl1bnNpZ25lZCBpbnQgcHNwX3JpbmdfcmVnID0gMDsKKwlzdHJ1Y3QgcHNwX3JpbmcgKnJpbmcgPSAmcHNwLT5rbV9yaW5nOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcHNwLT5hZGV2OworCisJaWYgKHBzcF92MTJfMF9zdXBwb3J0X3Ztcl9yaW5nKHBzcCkpIHsKKwkJLyogV3JpdGUgbG93IGFkZHJlc3Mgb2YgdGhlIHJpbmcgdG8gQzJQTVNHXzEwMiAqLworCQlwc3BfcmluZ19yZWcgPSBsb3dlcl8zMl9iaXRzKHJpbmctPnJpbmdfbWVtX21jX2FkZHIpOworCQlXUkVHMzJfU09DMTUoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzEwMiwgcHNwX3JpbmdfcmVnKTsKKwkJLyogV3JpdGUgaGlnaCBhZGRyZXNzIG9mIHRoZSByaW5nIHRvIEMyUE1TR18xMDMgKi8KKwkJcHNwX3JpbmdfcmVnID0gdXBwZXJfMzJfYml0cyhyaW5nLT5yaW5nX21lbV9tY19hZGRyKTsKKwkJV1JFRzMyX1NPQzE1KE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR18xMDMsIHBzcF9yaW5nX3JlZyk7CisKKwkJLyogV3JpdGUgdGhlIHJpbmcgaW5pdGlhbGl6YXRpb24gY29tbWFuZCB0byBDMlBNU0dfMTAxICovCisJCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfMTAxLAorCQkJCQkgICAgIEdGWF9DVFJMX0NNRF9JRF9JTklUX0dQQ09NX1JJTkcpOworCisJCS8qIHRoZXJlIG1pZ2h0IGJlIGhhbmRzaGFrZSBpc3N1ZSB3aXRoIGhhcmR3YXJlIHdoaWNoIG5lZWRzIGRlbGF5ICovCisJCW1kZWxheSgyMCk7CisKKwkJLyogV2FpdCBmb3IgcmVzcG9uc2UgZmxhZyAoYml0IDMxKSBpbiBDMlBNU0dfMTAxICovCisJCXJldCA9IHBzcF93YWl0X2Zvcihwc3AsIFNPQzE1X1JFR19PRkZTRVQoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzEwMSksCisJCQkJICAgMHg4MDAwMDAwMCwgMHg4MDAwRkZGRiwgZmFsc2UpOworCisJfSBlbHNlIHsKKwkJLyogV3JpdGUgbG93IGFkZHJlc3Mgb2YgdGhlIHJpbmcgdG8gQzJQTVNHXzY5ICovCisJCXBzcF9yaW5nX3JlZyA9IGxvd2VyXzMyX2JpdHMocmluZy0+cmluZ19tZW1fbWNfYWRkcik7CisJCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNjksIHBzcF9yaW5nX3JlZyk7CisJCS8qIFdyaXRlIGhpZ2ggYWRkcmVzcyBvZiB0aGUgcmluZyB0byBDMlBNU0dfNzAgKi8KKwkJcHNwX3JpbmdfcmVnID0gdXBwZXJfMzJfYml0cyhyaW5nLT5yaW5nX21lbV9tY19hZGRyKTsKKwkJV1JFRzMyX1NPQzE1KE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR183MCwgcHNwX3JpbmdfcmVnKTsKKwkJLyogV3JpdGUgc2l6ZSBvZiByaW5nIHRvIEMyUE1TR183MSAqLworCQlwc3BfcmluZ19yZWcgPSByaW5nLT5yaW5nX3NpemU7CisJCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNzEsIHBzcF9yaW5nX3JlZyk7CisJCS8qIFdyaXRlIHRoZSByaW5nIGluaXRpYWxpemF0aW9uIGNvbW1hbmQgdG8gQzJQTVNHXzY0ICovCisJCXBzcF9yaW5nX3JlZyA9IHJpbmdfdHlwZTsKKwkJcHNwX3JpbmdfcmVnID0gcHNwX3JpbmdfcmVnIDw8IDE2OworCQlXUkVHMzJfU09DMTUoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzY0LCBwc3BfcmluZ19yZWcpOworCisJCS8qIHRoZXJlIG1pZ2h0IGJlIGhhbmRzaGFrZSBpc3N1ZSB3aXRoIGhhcmR3YXJlIHdoaWNoIG5lZWRzIGRlbGF5ICovCisJCW1kZWxheSgyMCk7CisKKwkJLyogV2FpdCBmb3IgcmVzcG9uc2UgZmxhZyAoYml0IDMxKSBpbiBDMlBNU0dfNjQgKi8KKwkJcmV0ID0gcHNwX3dhaXRfZm9yKHBzcCwgU09DMTVfUkVHX09GRlNFVChNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNjQpLAorCQkJCSAgIDB4ODAwMDAwMDAsIDB4ODAwMEZGRkYsIGZhbHNlKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHBzcF92MTJfMF9yaW5nX3N0b3Aoc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsCisJCQkgICAgICBlbnVtIHBzcF9yaW5nX3R5cGUgcmluZ190eXBlKQoreworCWludCByZXQgPSAwOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcHNwLT5hZGV2OworCisJLyogV3JpdGUgdGhlIHJpbmcgZGVzdHJveSBjb21tYW5kKi8KKwlpZiAocHNwX3YxMl8wX3N1cHBvcnRfdm1yX3JpbmcocHNwKSkKKwkJV1JFRzMyX1NPQzE1KE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR18xMDEsCisJCQkJICAgICBHRlhfQ1RSTF9DTURfSURfREVTVFJPWV9HUENPTV9SSU5HKTsKKwllbHNlCisJCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNjQsCisJCQkJICAgICBHRlhfQ1RSTF9DTURfSURfREVTVFJPWV9SSU5HUyk7CisKKwkvKiB0aGVyZSBtaWdodCBiZSBoYW5kc2hha2UgaXNzdWUgd2l0aCBoYXJkd2FyZSB3aGljaCBuZWVkcyBkZWxheSAqLworCW1kZWxheSgyMCk7CisKKwkvKiBXYWl0IGZvciByZXNwb25zZSBmbGFnIChiaXQgMzEpICovCisJaWYgKHBzcF92MTJfMF9zdXBwb3J0X3Ztcl9yaW5nKHBzcCkpCisJCXJldCA9IHBzcF93YWl0X2Zvcihwc3AsIFNPQzE1X1JFR19PRkZTRVQoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzEwMSksCisJCQkJICAgMHg4MDAwMDAwMCwgMHg4MDAwMDAwMCwgZmFsc2UpOworCWVsc2UKKwkJcmV0ID0gcHNwX3dhaXRfZm9yKHBzcCwgU09DMTVfUkVHX09GRlNFVChNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNjQpLAorCQkJCSAgIDB4ODAwMDAwMDAsIDB4ODAwMDAwMDAsIGZhbHNlKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcHNwX3YxMl8wX3JpbmdfZGVzdHJveShzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCwKKwkJCQkgZW51bSBwc3BfcmluZ190eXBlIHJpbmdfdHlwZSkKK3sKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgcHNwX3JpbmcgKnJpbmcgPSAmcHNwLT5rbV9yaW5nOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcHNwLT5hZGV2OworCisJcmV0ID0gcHNwX3YxMl8wX3Jpbmdfc3RvcChwc3AsIHJpbmdfdHlwZSk7CisJaWYgKHJldCkKKwkJRFJNX0VSUk9SKCJGYWlsIHRvIHN0b3AgcHNwIHJpbmdcbiIpOworCisJYW1kZ3B1X2JvX2ZyZWVfa2VybmVsKCZhZGV2LT5maXJtd2FyZS5yYnVmLAorCQkJICAgICAgJnJpbmctPnJpbmdfbWVtX21jX2FkZHIsCisJCQkgICAgICAodm9pZCAqKikmcmluZy0+cmluZ19tZW0pOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwc3BfdjEyXzBfY21kX3N1Ym1pdChzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCwKKwkJCSAgICAgICB1aW50NjRfdCBjbWRfYnVmX21jX2FkZHIsIHVpbnQ2NF90IGZlbmNlX21jX2FkZHIsCisJCQkgICAgICAgaW50IGluZGV4KQoreworCXVuc2lnbmVkIGludCBwc3Bfd3JpdGVfcHRyX3JlZyA9IDA7CisJc3RydWN0IHBzcF9nZnhfcmJfZnJhbWUgKndyaXRlX2ZyYW1lID0gcHNwLT5rbV9yaW5nLnJpbmdfbWVtOworCXN0cnVjdCBwc3BfcmluZyAqcmluZyA9ICZwc3AtPmttX3Jpbmc7CisJc3RydWN0IHBzcF9nZnhfcmJfZnJhbWUgKnJpbmdfYnVmZmVyX3N0YXJ0ID0gcmluZy0+cmluZ19tZW07CisJc3RydWN0IHBzcF9nZnhfcmJfZnJhbWUgKnJpbmdfYnVmZmVyX2VuZCA9IHJpbmdfYnVmZmVyX3N0YXJ0ICsKKwkJcmluZy0+cmluZ19zaXplIC8gc2l6ZW9mKHN0cnVjdCBwc3BfZ2Z4X3JiX2ZyYW1lKSAtIDE7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBwc3AtPmFkZXY7CisJdWludDMyX3QgcmluZ19zaXplX2R3ID0gcmluZy0+cmluZ19zaXplIC8gNDsKKwl1aW50MzJfdCByYl9mcmFtZV9zaXplX2R3ID0gc2l6ZW9mKHN0cnVjdCBwc3BfZ2Z4X3JiX2ZyYW1lKSAvIDQ7CisKKwkvKiBLTSAoR1BDT00pIHByZXBhcmUgd3JpdGUgcG9pbnRlciAqLworCWlmIChwc3BfdjEyXzBfc3VwcG9ydF92bXJfcmluZyhwc3ApKQorCQlwc3Bfd3JpdGVfcHRyX3JlZyA9IFJSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfMTAyKTsKKwllbHNlCisJCXBzcF93cml0ZV9wdHJfcmVnID0gUlJFRzMyX1NPQzE1KE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR182Nyk7CisKKwkvKiBVcGRhdGUgS00gUkIgZnJhbWUgcG9pbnRlciB0byBuZXcgZnJhbWUgKi8KKwkvKiB3cml0ZV9mcmFtZSBwdHIgaW5jcmVtZW50cyBieSBzaXplIG9mIHJiX2ZyYW1lIGluIGJ5dGVzICovCisJLyogcHNwX3dyaXRlX3B0cl9yZWcgaW5jcmVtZW50cyBieSBzaXplIG9mIHJiX2ZyYW1lIGluIERXT1JEcyAqLworCWlmICgocHNwX3dyaXRlX3B0cl9yZWcgJSByaW5nX3NpemVfZHcpID09IDApCisJCXdyaXRlX2ZyYW1lID0gcmluZ19idWZmZXJfc3RhcnQ7CisJZWxzZQorCQl3cml0ZV9mcmFtZSA9IHJpbmdfYnVmZmVyX3N0YXJ0ICsgKHBzcF93cml0ZV9wdHJfcmVnIC8gcmJfZnJhbWVfc2l6ZV9kdyk7CisJLyogQ2hlY2sgaW52YWxpZCB3cml0ZV9mcmFtZSBwdHIgYWRkcmVzcyAqLworCWlmICgod3JpdGVfZnJhbWUgPCByaW5nX2J1ZmZlcl9zdGFydCkgfHwgKHJpbmdfYnVmZmVyX2VuZCA8IHdyaXRlX2ZyYW1lKSkgeworCQlEUk1fRVJST1IoInJpbmdfYnVmZmVyX3N0YXJ0ID0gJXA7IHJpbmdfYnVmZmVyX2VuZCA9ICVwOyB3cml0ZV9mcmFtZSA9ICVwXG4iLAorCQkJICByaW5nX2J1ZmZlcl9zdGFydCwgcmluZ19idWZmZXJfZW5kLCB3cml0ZV9mcmFtZSk7CisJCURSTV9FUlJPUigid3JpdGVfZnJhbWUgaXMgcG9pbnRpbmcgdG8gYWRkcmVzcyBvdXQgb2YgYm91bmRzXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogSW5pdGlhbGl6ZSBLTSBSQiBmcmFtZSAqLworCW1lbXNldCh3cml0ZV9mcmFtZSwgMCwgc2l6ZW9mKHN0cnVjdCBwc3BfZ2Z4X3JiX2ZyYW1lKSk7CisKKwkvKiBVcGRhdGUgS00gUkIgZnJhbWUgKi8KKwl3cml0ZV9mcmFtZS0+Y21kX2J1Zl9hZGRyX2hpID0gdXBwZXJfMzJfYml0cyhjbWRfYnVmX21jX2FkZHIpOworCXdyaXRlX2ZyYW1lLT5jbWRfYnVmX2FkZHJfbG8gPSBsb3dlcl8zMl9iaXRzKGNtZF9idWZfbWNfYWRkcik7CisJd3JpdGVfZnJhbWUtPmZlbmNlX2FkZHJfaGkgPSB1cHBlcl8zMl9iaXRzKGZlbmNlX21jX2FkZHIpOworCXdyaXRlX2ZyYW1lLT5mZW5jZV9hZGRyX2xvID0gbG93ZXJfMzJfYml0cyhmZW5jZV9tY19hZGRyKTsKKwl3cml0ZV9mcmFtZS0+ZmVuY2VfdmFsdWUgPSBpbmRleDsKKworCS8qIFVwZGF0ZSB0aGUgd3JpdGUgUG9pbnRlciBpbiBEV09SRHMgKi8KKwlwc3Bfd3JpdGVfcHRyX3JlZyA9IChwc3Bfd3JpdGVfcHRyX3JlZyArIHJiX2ZyYW1lX3NpemVfZHcpICUgcmluZ19zaXplX2R3OworCWlmIChwc3BfdjEyXzBfc3VwcG9ydF92bXJfcmluZyhwc3ApKSB7CisJCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfMTAyLCBwc3Bfd3JpdGVfcHRyX3JlZyk7CisJCVdSRUczMl9TT0MxNShNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfMTAxLCBHRlhfQ1RSTF9DTURfSURfQ09OU1VNRV9DTUQpOworCX0gZWxzZQorCQlXUkVHMzJfU09DMTUoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzY3LCBwc3Bfd3JpdGVfcHRyX3JlZyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorcHNwX3YxMl8wX3NyYW1fbWFwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkgIHVuc2lnbmVkIGludCAqc3JhbV9vZmZzZXQsIHVuc2lnbmVkIGludCAqc3JhbV9hZGRyX3JlZ19vZmZzZXQsCisJCSAgdW5zaWduZWQgaW50ICpzcmFtX2RhdGFfcmVnX29mZnNldCwKKwkJICBlbnVtIEFNREdQVV9VQ09ERV9JRCB1Y29kZV9pZCkKK3sKKwlpbnQgcmV0ID0gMDsKKworCXN3aXRjaCAodWNvZGVfaWQpIHsKKy8qIFRPRE86IG5lZWRzIHRvIGNvbmZpcm0gKi8KKyNpZiAwCisJY2FzZSBBTURHUFVfVUNPREVfSURfU01DOgorCQkqc3JhbV9vZmZzZXQgPSAwOworCQkqc3JhbV9hZGRyX3JlZ19vZmZzZXQgPSAwOworCQkqc3JhbV9kYXRhX3JlZ19vZmZzZXQgPSAwOworCQlicmVhazsKKyNlbmRpZgorCisJY2FzZSBBTURHUFVfVUNPREVfSURfQ1BfQ0U6CisJCSpzcmFtX29mZnNldCA9IDB4MDsKKwkJKnNyYW1fYWRkcl9yZWdfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1DUF9DRV9VQ09ERV9BRERSKTsKKwkJKnNyYW1fZGF0YV9yZWdfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1DUF9DRV9VQ09ERV9EQVRBKTsKKwkJYnJlYWs7CisKKwljYXNlIEFNREdQVV9VQ09ERV9JRF9DUF9QRlA6CisJCSpzcmFtX29mZnNldCA9IDB4MDsKKwkJKnNyYW1fYWRkcl9yZWdfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1DUF9QRlBfVUNPREVfQUREUik7CisJCSpzcmFtX2RhdGFfcmVnX29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BfUEZQX1VDT0RFX0RBVEEpOworCQlicmVhazsKKworCWNhc2UgQU1ER1BVX1VDT0RFX0lEX0NQX01FOgorCQkqc3JhbV9vZmZzZXQgPSAweDA7CisJCSpzcmFtX2FkZHJfcmVnX29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BfSFlQX01FX1VDT0RFX0FERFIpOworCQkqc3JhbV9kYXRhX3JlZ19vZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNQX0hZUF9NRV9VQ09ERV9EQVRBKTsKKwkJYnJlYWs7CisKKwljYXNlIEFNREdQVV9VQ09ERV9JRF9DUF9NRUMxOgorCQkqc3JhbV9vZmZzZXQgPSAweDEwMDAwOworCQkqc3JhbV9hZGRyX3JlZ19vZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNQX01FQ19NRTFfVUNPREVfQUREUik7CisJCSpzcmFtX2RhdGFfcmVnX29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BfTUVDX01FMV9VQ09ERV9EQVRBKTsKKwkJYnJlYWs7CisKKwljYXNlIEFNREdQVV9VQ09ERV9JRF9DUF9NRUMyOgorCQkqc3JhbV9vZmZzZXQgPSAweDEwMDAwOworCQkqc3JhbV9hZGRyX3JlZ19vZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNQX0hZUF9NRUMyX1VDT0RFX0FERFIpOworCQkqc3JhbV9kYXRhX3JlZ19vZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNQX0hZUF9NRUMyX1VDT0RFX0RBVEEpOworCQlicmVhazsKKworCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1JMQ19HOgorCQkqc3JhbV9vZmZzZXQgPSAweDIwMDA7CisJCSpzcmFtX2FkZHJfcmVnX29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX0dQTV9VQ09ERV9BRERSKTsKKwkJKnNyYW1fZGF0YV9yZWdfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1STENfR1BNX1VDT0RFX0RBVEEpOworCQlicmVhazsKKworCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUEwOgorCQkqc3JhbV9vZmZzZXQgPSAweDA7CisJCSpzcmFtX2FkZHJfcmVnX29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfVUNPREVfQUREUik7CisJCSpzcmFtX2RhdGFfcmVnX29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfVUNPREVfREFUQSk7CisJCWJyZWFrOworCisvKiBUT0RPOiBuZWVkcyB0byBjb25maXJtICovCisjaWYgMAorCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1NETUExOgorCQkqc3JhbV9vZmZzZXQgPSA7CisJCSpzcmFtX2FkZHJfcmVnX29mZnNldCA9IDsKKwkJYnJlYWs7CisKKwljYXNlIEFNREdQVV9VQ09ERV9JRF9VVkQ6CisJCSpzcmFtX29mZnNldCA9IDsKKwkJKnNyYW1fYWRkcl9yZWdfb2Zmc2V0ID0gOworCQlicmVhazsKKworCWNhc2UgQU1ER1BVX1VDT0RFX0lEX1ZDRToKKwkJKnNyYW1fb2Zmc2V0ID0gOworCQkqc3JhbV9hZGRyX3JlZ19vZmZzZXQgPSA7CisJCWJyZWFrOworI2VuZGlmCisKKwljYXNlIEFNREdQVV9VQ09ERV9JRF9NQVhJTVVNOgorCWRlZmF1bHQ6CisJCXJldCA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBib29sIHBzcF92MTJfMF9jb21wYXJlX3NyYW1fZGF0YShzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCwKKwkJCQkgICAgICAgc3RydWN0IGFtZGdwdV9maXJtd2FyZV9pbmZvICp1Y29kZSwKKwkJCQkgICAgICAgZW51bSBBTURHUFVfVUNPREVfSUQgdWNvZGVfdHlwZSkKK3sKKwlpbnQgZXJyID0gMDsKKwl1bnNpZ25lZCBpbnQgZndfc3JhbV9yZWdfdmFsID0gMDsKKwl1bnNpZ25lZCBpbnQgZndfc3JhbV9hZGRyX3JlZ19vZmZzZXQgPSAwOworCXVuc2lnbmVkIGludCBmd19zcmFtX2RhdGFfcmVnX29mZnNldCA9IDA7CisJdW5zaWduZWQgaW50IHVjb2RlX3NpemU7CisJdWludDMyX3QgKnVjb2RlX21lbSA9IE5VTEw7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBwc3AtPmFkZXY7CisKKwllcnIgPSBwc3BfdjEyXzBfc3JhbV9tYXAoYWRldiwgJmZ3X3NyYW1fcmVnX3ZhbCwgJmZ3X3NyYW1fYWRkcl9yZWdfb2Zmc2V0LAorCQkJCSZmd19zcmFtX2RhdGFfcmVnX29mZnNldCwgdWNvZGVfdHlwZSk7CisJaWYgKGVycikKKwkJcmV0dXJuIGZhbHNlOworCisJV1JFRzMyKGZ3X3NyYW1fYWRkcl9yZWdfb2Zmc2V0LCBmd19zcmFtX3JlZ192YWwpOworCisJdWNvZGVfc2l6ZSA9IHVjb2RlLT51Y29kZV9zaXplOworCXVjb2RlX21lbSA9ICh1aW50MzJfdCAqKXVjb2RlLT5rYWRkcjsKKwl3aGlsZSAodWNvZGVfc2l6ZSkgeworCQlmd19zcmFtX3JlZ192YWwgPSBSUkVHMzIoZndfc3JhbV9kYXRhX3JlZ19vZmZzZXQpOworCisJCWlmICgqdWNvZGVfbWVtICE9IGZ3X3NyYW1fcmVnX3ZhbCkKKwkJCXJldHVybiBmYWxzZTsKKworCQl1Y29kZV9tZW0rKzsKKwkJLyogNCBieXRlcyAqLworCQl1Y29kZV9zaXplIC09IDQ7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbnQgcHNwX3YxMl8wX21vZGUxX3Jlc2V0KHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQoreworCWludCByZXQ7CisJdWludDMyX3Qgb2Zmc2V0OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcHNwLT5hZGV2OworCisJb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfNjQpOworCisJcmV0ID0gcHNwX3dhaXRfZm9yKHBzcCwgb2Zmc2V0LCAweDgwMDAwMDAwLCAweDgwMDBGRkZGLCBmYWxzZSk7CisKKwlpZiAocmV0KSB7CisJCURSTV9JTkZPKCJwc3AgaXMgbm90IHdvcmtpbmcgY29ycmVjdGx5IGJlZm9yZSBtb2RlMSByZXNldCFcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKnNlbmQgdGhlIG1vZGUgMSByZXNldCBjb21tYW5kKi8KKwlXUkVHMzIob2Zmc2V0LCBHRlhfQ1RSTF9DTURfSURfTU9ERTFfUlNUKTsKKworCW1zbGVlcCg1MDApOworCisJb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChNUDAsIDAsIG1tTVAwX1NNTl9DMlBNU0dfMzMpOworCisJcmV0ID0gcHNwX3dhaXRfZm9yKHBzcCwgb2Zmc2V0LCAweDgwMDAwMDAwLCAweDgwMDAwMDAwLCBmYWxzZSk7CisKKwlpZiAocmV0KSB7CisJCURSTV9JTkZPKCJwc3AgbW9kZSAxIHJlc2V0IGZhaWxlZCFcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlEUk1fSU5GTygicHNwIG1vZGUxIHJlc2V0IHN1Y2NlZWQgXG4iKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHBzcF9mdW5jcyBwc3BfdjEyXzBfZnVuY3MgPSB7CisJLmluaXRfbWljcm9jb2RlID0gcHNwX3YxMl8wX2luaXRfbWljcm9jb2RlLAorCS5ib290bG9hZGVyX2xvYWRfc3lzZHJ2ID0gcHNwX3YxMl8wX2Jvb3Rsb2FkZXJfbG9hZF9zeXNkcnYsCisJLmJvb3Rsb2FkZXJfbG9hZF9zb3MgPSBwc3BfdjEyXzBfYm9vdGxvYWRlcl9sb2FkX3NvcywKKwkucmluZ19pbml0ID0gcHNwX3YxMl8wX3JpbmdfaW5pdCwKKwkucmluZ19jcmVhdGUgPSBwc3BfdjEyXzBfcmluZ19jcmVhdGUsCisJLnJpbmdfc3RvcCA9IHBzcF92MTJfMF9yaW5nX3N0b3AsCisJLnJpbmdfZGVzdHJveSA9IHBzcF92MTJfMF9yaW5nX2Rlc3Ryb3ksCisJLmNtZF9zdWJtaXQgPSBwc3BfdjEyXzBfY21kX3N1Ym1pdCwKKwkuY29tcGFyZV9zcmFtX2RhdGEgPSBwc3BfdjEyXzBfY29tcGFyZV9zcmFtX2RhdGEsCisJLm1vZGUxX3Jlc2V0ID0gcHNwX3YxMl8wX21vZGUxX3Jlc2V0LAorfTsKKwordm9pZCBwc3BfdjEyXzBfc2V0X3BzcF9mdW5jcyhzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKK3sKKwlwc3AtPmZ1bmNzID0gJnBzcF92MTJfMF9mdW5jczsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3BzcF92MTJfMC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMl8wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQxNjkzYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3BzcF92MTJfMC5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaWZuZGVmIF9fUFNQX1YxMl8wX0hfXworI2RlZmluZSBfX1BTUF9WMTJfMF9IX18KKworI2luY2x1ZGUgImFtZGdwdV9wc3AuaCIKKwordm9pZCBwc3BfdjEyXzBfc2V0X3BzcF9mdW5jcyhzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YzXzEuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3BzcF92M18xLmMKaW5kZXggMDE5YzQ3Zi4uZDJjNzI3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YzXzEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjNfMS5jCkBAIC00MTEsNyArNDExLDYgQEAgc3RhdGljIGludCBwc3BfdjNfMV9yaW5nX2Rlc3Ryb3koc3RydWN0IHBzcF9jb250ZXh0ICpwc3AsCiB9CiAKIHN0YXRpYyBpbnQgcHNwX3YzXzFfY21kX3N1Ym1pdChzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCwKLQkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2Zpcm13YXJlX2luZm8gKnVjb2RlLAogCQkJICAgICAgIHVpbnQ2NF90IGNtZF9idWZfbWNfYWRkciwgdWludDY0X3QgZmVuY2VfbWNfYWRkciwKIAkJCSAgICAgICBpbnQgaW5kZXgpCiB7CkBAIC02MzYsNyArNjM1LDcgQEAgc3RhdGljIGludCBwc3BfdjNfMV9tb2RlMV9yZXNldChzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKIAogc3RhdGljIGJvb2wgcHNwX3YzXzFfc3VwcG9ydF92bXJfcmluZyhzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKIHsKLQlpZiAoYW1kZ3B1X3NyaW92X3ZmKHBzcC0+YWRldikgJiYgcHNwLT5zb3NfZndfdmVyc2lvbiA+PSAweDgwNDU1KQorCWlmIChhbWRncHVfc3Jpb3ZfdmYocHNwLT5hZGV2KSkKIAkJcmV0dXJuIHRydWU7CiAKIAlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jCmluZGV4IDQ0MjgwMTguLjc4NDUyY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jCkBAIC0zNCw2ICszNCwxOCBAQAogI2luY2x1ZGUgInNkbWEwL3NkbWEwXzRfMl9zaF9tYXNrLmgiCiAjaW5jbHVkZSAic2RtYTEvc2RtYTFfNF8yX29mZnNldC5oIgogI2luY2x1ZGUgInNkbWExL3NkbWExXzRfMl9zaF9tYXNrLmgiCisjaW5jbHVkZSAic2RtYTIvc2RtYTJfNF8yXzJfb2Zmc2V0LmgiCisjaW5jbHVkZSAic2RtYTIvc2RtYTJfNF8yXzJfc2hfbWFzay5oIgorI2luY2x1ZGUgInNkbWEzL3NkbWEzXzRfMl8yX29mZnNldC5oIgorI2luY2x1ZGUgInNkbWEzL3NkbWEzXzRfMl8yX3NoX21hc2suaCIKKyNpbmNsdWRlICJzZG1hNC9zZG1hNF80XzJfMl9vZmZzZXQuaCIKKyNpbmNsdWRlICJzZG1hNC9zZG1hNF80XzJfMl9zaF9tYXNrLmgiCisjaW5jbHVkZSAic2RtYTUvc2RtYTVfNF8yXzJfb2Zmc2V0LmgiCisjaW5jbHVkZSAic2RtYTUvc2RtYTVfNF8yXzJfc2hfbWFzay5oIgorI2luY2x1ZGUgInNkbWE2L3NkbWE2XzRfMl8yX29mZnNldC5oIgorI2luY2x1ZGUgInNkbWE2L3NkbWE2XzRfMl8yX3NoX21hc2suaCIKKyNpbmNsdWRlICJzZG1hNy9zZG1hN180XzJfMl9vZmZzZXQuaCIKKyNpbmNsdWRlICJzZG1hNy9zZG1hN180XzJfMl9zaF9tYXNrLmgiCiAjaW5jbHVkZSAiaGRwL2hkcF80XzBfb2Zmc2V0LmgiCiAjaW5jbHVkZSAic2RtYTAvc2RtYTBfNF8xX2RlZmF1bHQuaCIKIApAQCAtNTUsNiArNjcsOCBAQCBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS92ZWdhMjBfc2RtYTEuYmluIik7CiBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9yYXZlbl9zZG1hLmJpbiIpOwogTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvcGljYXNzb19zZG1hLmJpbiIpOwogTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvcmF2ZW4yX3NkbWEuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9hcmN0dXJ1c19zZG1hLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvcmVub2lyX3NkbWEuYmluIik7CiAKICNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9fT05fT0ZGX0NPTkRJVElPTl9IT0xEX1RJTUVfTUFTSyAgMHgwMDAwMDBGOEwKICNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9fT05fT0ZGX1NUQVRVU19EVVJBVElPTl9USU1FX01BU0sgMHhGQzAwMDAwMEwKQEAgLTIwMiwyNSArMjE2LDEzMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNvYzE1X3JlZ19nb2xkZW4gZ29sZGVuX3NldHRpbmdzX3NkbWFfcnYyW10gPQogCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTAsIDAsIG1tU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRCwgMHgwMDE4NzczZiwgMHgwMDAwMzAwMSkKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jMTVfcmVnX2dvbGRlbiBnb2xkZW5fc2V0dGluZ3Nfc2RtYV9hcmN0W10gPQoreworCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTAsIDAsIG1tU0RNQTBfQ0hJQ0tFTl9CSVRTLCAweGZlOTMxZjA3LCAweDAyODMxZjA3KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUEwLCAwLCBtbVNETUEwX0dCX0FERFJfQ09ORklHLCAweDAwMDA3NzNmLCAweDAwMDA0MDAyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUEwLCAwLCBtbVNETUEwX0dCX0FERFJfQ09ORklHX1JFQUQsIDB4MDAwMDc3M2YsIDB4MDAwMDQwMDIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTEsIDAsIG1tU0RNQTFfQ0hJQ0tFTl9CSVRTLCAweGZlOTMxZjA3LCAweDAyODMxZjA3KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUExLCAwLCBtbVNETUExX0dCX0FERFJfQ09ORklHLCAweDAwMDA3NzNmLCAweDAwMDA0MDAyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUExLCAwLCBtbVNETUExX0dCX0FERFJfQ09ORklHX1JFQUQsIDB4MDAwMDc3M2YsIDB4MDAwMDQwMDIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTIsIDAsIG1tU0RNQTJfQ0hJQ0tFTl9CSVRTLCAweGZlOTMxZjA3LCAweDAyODMxZjA3KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUEyLCAwLCBtbVNETUEyX0dCX0FERFJfQ09ORklHLCAweDAwMDA3NzNmLCAweDAwMDA0MDAyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUEyLCAwLCBtbVNETUEyX0dCX0FERFJfQ09ORklHX1JFQUQsIDB4MDAwMDc3M2YsIDB4MDAwMDQwMDIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTMsIDAsIG1tU0RNQTNfQ0hJQ0tFTl9CSVRTLCAweGZlOTMxZjA3LCAweDAyODMxZjA3KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUEzLCAwLCBtbVNETUEzX0dCX0FERFJfQ09ORklHLCAweDAwMDA3NzNmLCAweDAwMDA0MDAyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUEzLCAwLCBtbVNETUEzX0dCX0FERFJfQ09ORklHX1JFQUQsIDB4MDAwMDc3M2YsIDB4MDAwMDQwMDIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTQsIDAsIG1tU0RNQTRfQ0hJQ0tFTl9CSVRTLCAweGZlOTMxZjA3LCAweDAyODMxZjA3KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUE0LCAwLCBtbVNETUE0X0dCX0FERFJfQ09ORklHLCAweDAwMDA3NzNmLCAweDAwMDA0MDAyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUE0LCAwLCBtbVNETUE0X0dCX0FERFJfQ09ORklHX1JFQUQsIDB4MDAwMDc3M2YsIDB4MDAwMDQwMDIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTUsIDAsIG1tU0RNQTVfQ0hJQ0tFTl9CSVRTLCAweGZlOTMxZjA3LCAweDAyODMxZjA3KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUE1LCAwLCBtbVNETUE1X0dCX0FERFJfQ09ORklHLCAweDAwMDA3NzNmLCAweDAwMDA0MDAyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUE1LCAwLCBtbVNETUE1X0dCX0FERFJfQ09ORklHX1JFQUQsIDB4MDAwMDc3M2YsIDB4MDAwMDQwMDIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTYsIDAsIG1tU0RNQTZfQ0hJQ0tFTl9CSVRTLCAweGZlOTMxZjA3LCAweDAyODMxZjA3KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUE2LCAwLCBtbVNETUE2X0dCX0FERFJfQ09ORklHLCAweDAwMDA3NzNmLCAweDAwMDA0MDAyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUE2LCAwLCBtbVNETUE2X0dCX0FERFJfQ09ORklHX1JFQUQsIDB4MDAwMDc3M2YsIDB4MDAwMDQwMDIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTcsIDAsIG1tU0RNQTdfQ0hJQ0tFTl9CSVRTLCAweGZlOTMxZjA3LCAweDAyODMxZjA3KSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUE3LCAwLCBtbVNETUE3X0dCX0FERFJfQ09ORklHLCAweDAwMDA3NzNmLCAweDAwMDA0MDAyKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUE3LCAwLCBtbVNETUE3X0dCX0FERFJfQ09ORklHX1JFQUQsIDB4MDAwMDc3M2YsIDB4MDAwMDQwMDIpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvYzE1X3JlZ19nb2xkZW4gZ29sZGVuX3NldHRpbmdzX3NkbWFfNF8zW10gPSB7CisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShTRE1BMCwgMCwgbW1TRE1BMF9DSElDS0VOX0JJVFMsIDB4ZmU5MzFmMDcsIDB4MDI4MzFmMDcpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTAsIDAsIG1tU0RNQTBfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4M2YwMDAxMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTAsIDAsIG1tU0RNQTBfR0JfQUREUl9DT05GSUcsIDB4MDAxODc3M2YsIDB4MDAwMDAwMDIpLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTAsIDAsIG1tU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRCwgMHgwMDE4NzczZiwgMHgwMDAwMDAwMiksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShTRE1BMCwgMCwgbW1TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0NOVEwsIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTAsIDAsIG1tU0RNQTBfUE9XRVJfQ05UTCwgMHgwMDNmZmYwNywgMHg0MDAwMDA1MSksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShTRE1BMCwgMCwgbW1TRE1BMF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMLCAweGZmZmZmZmY3LCAweDAwNDAzMDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKFNETUEwLCAwLCBtbVNETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwsIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoU0RNQTAsIDAsIG1tU0RNQTBfVVRDTDFfUEFHRSwgMHgwMDAwMDNmZiwgMHgwMDAwMDNjMCksCit9OworCiBzdGF0aWMgdTMyIHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJdTMyIGluc3RhbmNlLCB1MzIgb2Zmc2V0KQogewotCXJldHVybiAoIDAgPT0gaW5zdGFuY2UgPyAoYWRldi0+cmVnX29mZnNldFtTRE1BMF9IV0lQXVswXVswXSArIG9mZnNldCkgOgotCQkJKGFkZXYtPnJlZ19vZmZzZXRbU0RNQTFfSFdJUF1bMF1bMF0gKyBvZmZzZXQpKTsKKwlzd2l0Y2ggKGluc3RhbmNlKSB7CisJY2FzZSAwOgorCQlyZXR1cm4gKGFkZXYtPnJlZ19vZmZzZXRbU0RNQTBfSFdJUF1bMF1bMF0gKyBvZmZzZXQpOworCWNhc2UgMToKKwkJcmV0dXJuIChhZGV2LT5yZWdfb2Zmc2V0W1NETUExX0hXSVBdWzBdWzBdICsgb2Zmc2V0KTsKKwljYXNlIDI6CisJCXJldHVybiAoYWRldi0+cmVnX29mZnNldFtTRE1BMl9IV0lQXVswXVsxXSArIG9mZnNldCk7CisJY2FzZSAzOgorCQlyZXR1cm4gKGFkZXYtPnJlZ19vZmZzZXRbU0RNQTNfSFdJUF1bMF1bMV0gKyBvZmZzZXQpOworCWNhc2UgNDoKKwkJcmV0dXJuIChhZGV2LT5yZWdfb2Zmc2V0W1NETUE0X0hXSVBdWzBdWzFdICsgb2Zmc2V0KTsKKwljYXNlIDU6CisJCXJldHVybiAoYWRldi0+cmVnX29mZnNldFtTRE1BNV9IV0lQXVswXVsxXSArIG9mZnNldCk7CisJY2FzZSA2OgorCQlyZXR1cm4gKGFkZXYtPnJlZ19vZmZzZXRbU0RNQTZfSFdJUF1bMF1bMV0gKyBvZmZzZXQpOworCWNhc2UgNzoKKwkJcmV0dXJuIChhZGV2LT5yZWdfb2Zmc2V0W1NETUE3X0hXSVBdWzBdWzFdICsgb2Zmc2V0KTsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBzZG1hX3Y0XzBfc2VxX3RvX2lycV9pZChpbnQgc2VxX251bSkKK3sKKwlzd2l0Y2ggKHNlcV9udW0pIHsKKwljYXNlIDA6CisJCXJldHVybiBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMDsKKwljYXNlIDE6CisJCXJldHVybiBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMTsKKwljYXNlIDI6CisJCXJldHVybiBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMjsKKwljYXNlIDM6CisJCXJldHVybiBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMzsKKwljYXNlIDQ6CisJCXJldHVybiBTT0MxNV9JSF9DTElFTlRJRF9TRE1BNDsKKwljYXNlIDU6CisJCXJldHVybiBTT0MxNV9JSF9DTElFTlRJRF9TRE1BNTsKKwljYXNlIDY6CisJCXJldHVybiBTT0MxNV9JSF9DTElFTlRJRF9TRE1BNjsKKwljYXNlIDc6CisJCXJldHVybiBTT0MxNV9JSF9DTElFTlRJRF9TRE1BNzsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbnQgc2RtYV92NF8wX2lycV9pZF90b19zZXEodW5zaWduZWQgY2xpZW50X2lkKQoreworCXN3aXRjaCAoY2xpZW50X2lkKSB7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMDoKKwkJcmV0dXJuIDA7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMToKKwkJcmV0dXJuIDE7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMjoKKwkJcmV0dXJuIDI7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMzoKKwkJcmV0dXJuIDM7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BNDoKKwkJcmV0dXJuIDQ7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BNToKKwkJcmV0dXJuIDU7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BNjoKKwkJcmV0dXJuIDY7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BNzoKKwkJcmV0dXJuIDc7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCXJldHVybiAtRUlOVkFMOwogfQogCiBzdGF0aWMgdm9pZCBzZG1hX3Y0XzBfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJY2FzZSBDSElQX1ZFR0ExMDoKLQkJaWYgKCFhbWRncHVfdmlydF9zdXBwb3J0X3NraXBfc2V0dGluZyhhZGV2KSkgewotCQkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAotCQkJCQkJCSBnb2xkZW5fc2V0dGluZ3Nfc2RtYV80LAotCQkJCQkJCSBBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19zZG1hXzQpKTsKLQkJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKLQkJCQkJCQkgZ29sZGVuX3NldHRpbmdzX3NkbWFfdmcxMCwKLQkJCQkJCQkgQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3Nfc2RtYV92ZzEwKSk7Ci0JCX0KKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAorCQkJCQkJZ29sZGVuX3NldHRpbmdzX3NkbWFfNCwKKwkJCQkJCUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX3NkbWFfNCkpOworCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCisJCQkJCQlnb2xkZW5fc2V0dGluZ3Nfc2RtYV92ZzEwLAorCQkJCQkJQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3Nfc2RtYV92ZzEwKSk7CiAJCWJyZWFrOwogCWNhc2UgQ0hJUF9WRUdBMTI6CiAJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKQEAgLTI0MSw2ICszNjIsMTEgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCQkJCWdvbGRlbl9zZXR0aW5nc19zZG1hMV80XzIsCiAJCQkJCQlBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19zZG1hMV80XzIpKTsKIAkJYnJlYWs7CisJY2FzZSBDSElQX0FSQ1RVUlVTOgorCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCisJCQkJCQlnb2xkZW5fc2V0dGluZ3Nfc2RtYV9hcmN0LAorCQkJCQkJQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3Nfc2RtYV9hcmN0KSk7CisJCWJyZWFrOwogCWNhc2UgQ0hJUF9SQVZFTjoKIAkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAogCQkJCQkJZ29sZGVuX3NldHRpbmdzX3NkbWFfNF8xLApAQCAtMjU0LDExICszODAsNTMgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCQkJCQlnb2xkZW5fc2V0dGluZ3Nfc2RtYV9ydjEsCiAJCQkJCQkJQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3Nfc2RtYV9ydjEpKTsKIAkJYnJlYWs7CisJY2FzZSBDSElQX1JFTk9JUjoKKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAorCQkJCQkJZ29sZGVuX3NldHRpbmdzX3NkbWFfNF8zLAorCQkJCQkJQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3Nfc2RtYV80XzMpKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJYnJlYWs7CiAJfQogfQogCitzdGF0aWMgaW50IHNkbWFfdjRfMF9pbml0X2luc3RfY3R4KHN0cnVjdCBhbWRncHVfc2RtYV9pbnN0YW5jZSAqc2RtYV9pbnN0KQoreworCWludCBlcnIgPSAwOworCWNvbnN0IHN0cnVjdCBzZG1hX2Zpcm13YXJlX2hlYWRlcl92MV8wICpoZHI7CisKKwllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoc2RtYV9pbnN0LT5mdyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWhkciA9IChjb25zdCBzdHJ1Y3Qgc2RtYV9maXJtd2FyZV9oZWFkZXJfdjFfMCAqKXNkbWFfaW5zdC0+ZnctPmRhdGE7CisJc2RtYV9pbnN0LT5md192ZXJzaW9uID0gbGUzMl90b19jcHUoaGRyLT5oZWFkZXIudWNvZGVfdmVyc2lvbik7CisJc2RtYV9pbnN0LT5mZWF0dXJlX3ZlcnNpb24gPSBsZTMyX3RvX2NwdShoZHItPnVjb2RlX2ZlYXR1cmVfdmVyc2lvbik7CisKKwlpZiAoc2RtYV9pbnN0LT5mZWF0dXJlX3ZlcnNpb24gPj0gMjApCisJCXNkbWFfaW5zdC0+YnVyc3Rfbm9wID0gdHJ1ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBzZG1hX3Y0XzBfZGVzdHJveV9pbnN0X2N0eChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgeworCQlpZiAoYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5mdyAhPSBOVUxMKQorCQkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3KTsKKworCQkvKiBhcmN0dXJ1cyBzaGFyZXMgdGhlIHNhbWUgRlcgbWVtb3J5IGFjcm9zcworCQkgICBhbGwgU0RNQSBpc250YW5jZXMgKi8KKwkJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX0FSQ1RVUlVTKQorCQkJYnJlYWs7CisJfQorCisJbWVtc2V0KCh2b2lkKilhZGV2LT5zZG1hLmluc3RhbmNlLCAwLAorCQlzaXplb2Yoc3RydWN0IGFtZGdwdV9zZG1hX2luc3RhbmNlKSAqIEFNREdQVV9NQVhfU0RNQV9JTlNUQU5DRVMpOworfQorCiAvKioKICAqIHNkbWFfdjRfMF9pbml0X21pY3JvY29kZSAtIGxvYWQgdWNvZGUgaW1hZ2VzIGZyb20gZGlzawogICoKQEAgLTI3OCw3ICs0NDYsNiBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpbnQgZXJyID0gMCwgaTsKIAlzdHJ1Y3QgYW1kZ3B1X2Zpcm13YXJlX2luZm8gKmluZm8gPSBOVUxMOwogCWNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICpoZWFkZXIgPSBOVUxMOwotCWNvbnN0IHN0cnVjdCBzZG1hX2Zpcm13YXJlX2hlYWRlcl92MV8wICpoZHI7CiAKIAlEUk1fREVCVUcoIlxuIik7CiAKQEAgLTMwMCwzMCArNDY3LDUyIEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQllbHNlCiAJCQljaGlwX25hbWUgPSAicmF2ZW4iOwogCQlicmVhazsKKwljYXNlIENISVBfQVJDVFVSVVM6CisJCWNoaXBfbmFtZSA9ICJhcmN0dXJ1cyI7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9SRU5PSVI6CisJCWNoaXBfbmFtZSA9ICJyZW5vaXIiOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlCVUcoKTsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKLQkJaWYgKGkgPT0gMCkKLQkJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19zZG1hLmJpbiIsIGNoaXBfbmFtZSk7Ci0JCWVsc2UKLQkJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19zZG1hMS5iaW4iLCBjaGlwX25hbWUpOwotCQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7Ci0JCWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3KTsKLQkJaWYgKGVycikKLQkJCWdvdG8gb3V0OwotCQloZHIgPSAoY29uc3Qgc3RydWN0IHNkbWFfZmlybXdhcmVfaGVhZGVyX3YxXzAgKilhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3LT5kYXRhOwotCQlhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3X3ZlcnNpb24gPSBsZTMyX3RvX2NwdShoZHItPmhlYWRlci51Y29kZV92ZXJzaW9uKTsKLQkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5mZWF0dXJlX3ZlcnNpb24gPSBsZTMyX3RvX2NwdShoZHItPnVjb2RlX2ZlYXR1cmVfdmVyc2lvbik7Ci0JCWlmIChhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZlYXR1cmVfdmVyc2lvbiA+PSAyMCkKLQkJCWFkZXYtPnNkbWEuaW5zdGFuY2VbaV0uYnVyc3Rfbm9wID0gdHJ1ZTsKLQkJRFJNX0RFQlVHKCJwc3BfbG9hZCA9PSAnJXMnXG4iLAotCQkJCWFkZXYtPmZpcm13YXJlLmxvYWRfdHlwZSA9PSBBTURHUFVfRldfTE9BRF9QU1AgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKwlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfc2RtYS5iaW4iLCBjaGlwX25hbWUpOwogCi0JCWlmIChhZGV2LT5maXJtd2FyZS5sb2FkX3R5cGUgPT0gQU1ER1BVX0ZXX0xPQURfUFNQKSB7CisJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+c2RtYS5pbnN0YW5jZVswXS5mdywgZndfbmFtZSwgYWRldi0+ZGV2KTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dDsKKworCWVyciA9IHNkbWFfdjRfMF9pbml0X2luc3RfY3R4KCZhZGV2LT5zZG1hLmluc3RhbmNlWzBdKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dDsKKworCWZvciAoaSA9IDE7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgeworCQlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfQVJDVFVSVVMpIHsKKwkJCS8qIEFjdHVydXMgd2lsbCBsZXZlcmFnZSB0aGUgc2FtZSBGVyBtZW1vcnkKKwkJCSAgIGZvciBldmVyeSBTRE1BIGluc3RhbmNlICovCisJCQltZW1jcHkoKHZvaWQqKSZhZGV2LT5zZG1hLmluc3RhbmNlW2ldLAorCQkJICAgICAgICh2b2lkKikmYWRldi0+c2RtYS5pbnN0YW5jZVswXSwKKwkJCSAgICAgICBzaXplb2Yoc3RydWN0IGFtZGdwdV9zZG1hX2luc3RhbmNlKSk7CisJCX0KKwkJZWxzZSB7CisJCQlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfc2RtYSVkLmJpbiIsIGNoaXBfbmFtZSwgaSk7CisKKwkJCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPnNkbWEuaW5zdGFuY2VbaV0uZncsIGZ3X25hbWUsIGFkZXYtPmRldik7CisJCQlpZiAoZXJyKQorCQkJCWdvdG8gb3V0OworCisJCQllcnIgPSBzZG1hX3Y0XzBfaW5pdF9pbnN0X2N0eCgmYWRldi0+c2RtYS5pbnN0YW5jZVtpXSk7CisJCQlpZiAoZXJyKQorCQkJCWdvdG8gb3V0OworCQl9CisJfQorCisJRFJNX0RFQlVHKCJwc3BfbG9hZCA9PSAnJXMnXG4iLAorCQlhZGV2LT5maXJtd2FyZS5sb2FkX3R5cGUgPT0gQU1ER1BVX0ZXX0xPQURfUFNQID8gInRydWUiIDogImZhbHNlIik7CisKKwlpZiAoYWRldi0+ZmlybXdhcmUubG9hZF90eXBlID09IEFNREdQVV9GV19MT0FEX1BTUCkgeworCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKIAkJCWluZm8gPSAmYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX1NETUEwICsgaV07CiAJCQlpbmZvLT51Y29kZV9pZCA9IEFNREdQVV9VQ09ERV9JRF9TRE1BMCArIGk7CiAJCQlpbmZvLT5mdyA9IGFkZXYtPnNkbWEuaW5zdGFuY2VbaV0uZnc7CkBAIC0zMzIsMTMgKzUyMSwxMSBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCQlBTElHTihsZTMyX3RvX2NwdShoZWFkZXItPnVjb2RlX3NpemVfYnl0ZXMpLCBQQUdFX1NJWkUpOwogCQl9CiAJfQorCiBvdXQ6CiAJaWYgKGVycikgewogCQlEUk1fRVJST1IoInNkbWFfdjRfMDogRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgXCIlc1wiXG4iLCBmd19uYW1lKTsKLQkJZm9yIChpID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7Ci0JCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYtPnNkbWEuaW5zdGFuY2VbaV0uZncpOwotCQkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5mdyA9IE5VTEw7Ci0JCX0KKwkJc2RtYV92NF8wX2Rlc3Ryb3lfaW5zdF9jdHgoYWRldik7CiAJfQogCXJldHVybiBlcnI7CiB9CkBAIC01NjEsMTAgKzc0OCw3IEBAIHN0YXRpYyB2b2lkIHNkbWFfdjRfMF9yaW5nX2VtaXRfaGRwX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAl1MzIgcmVmX2FuZF9tYXNrID0gMDsKIAljb25zdCBzdHJ1Y3QgbmJpb19oZHBfZmx1c2hfcmVnICpuYmlvX2hmX3JlZyA9IGFkZXYtPm5iaW9fZnVuY3MtPmhkcF9mbHVzaF9yZWc7CiAKLQlpZiAocmluZy0+bWUgPT0gMCkKLQkJcmVmX2FuZF9tYXNrID0gbmJpb19oZl9yZWctPnJlZl9hbmRfbWFza19zZG1hMDsKLQllbHNlCi0JCXJlZl9hbmRfbWFzayA9IG5iaW9faGZfcmVnLT5yZWZfYW5kX21hc2tfc2RtYTE7CisJcmVmX2FuZF9tYXNrID0gbmJpb19oZl9yZWctPnJlZl9hbmRfbWFza19zZG1hMCA8PCByaW5nLT5tZTsKIAogCXNkbWFfdjRfMF93YWl0X3JlZ19tZW0ocmluZywgMCwgMSwKIAkJCSAgICAgICBhZGV2LT5uYmlvX2Z1bmNzLT5nZXRfaGRwX2ZsdXNoX2RvbmVfb2Zmc2V0KGFkZXYpLApAQCAtNjIwLDI2ICs4MDQsMjcgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX3JpbmdfZW1pdF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHU2NCBhZGRyLCB1NjQgc2UKICAqLwogc3RhdGljIHZvaWQgc2RtYV92NF8wX2dmeF9zdG9wKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCXN0cnVjdCBhbWRncHVfcmluZyAqc2RtYTAgPSAmYWRldi0+c2RtYS5pbnN0YW5jZVswXS5yaW5nOwotCXN0cnVjdCBhbWRncHVfcmluZyAqc2RtYTEgPSAmYWRldi0+c2RtYS5pbnN0YW5jZVsxXS5yaW5nOworCXN0cnVjdCBhbWRncHVfcmluZyAqc2RtYVtBTURHUFVfTUFYX1NETUFfSU5TVEFOQ0VTXTsKIAl1MzIgcmJfY250bCwgaWJfY250bDsKLQlpbnQgaTsKLQotCWlmICgoYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZyA9PSBzZG1hMCkgfHwKLQkgICAgKGFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNzX3JpbmcgPT0gc2RtYTEpKQotCQkJYW1kZ3B1X3R0bV9zZXRfYnVmZmVyX2Z1bmNzX3N0YXR1cyhhZGV2LCBmYWxzZSk7CisJaW50IGksIHVuc2V0ID0gMDsKIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgeworCQlzZG1hW2ldID0gJmFkZXYtPnNkbWEuaW5zdGFuY2VbaV0ucmluZzsKKworCQlpZiAoKGFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNzX3JpbmcgPT0gc2RtYVtpXSkgJiYgdW5zZXQgIT0gMSkgeworCQkJYW1kZ3B1X3R0bV9zZXRfYnVmZmVyX2Z1bmNzX3N0YXR1cyhhZGV2LCBmYWxzZSk7CisJCQl1bnNldCA9IDE7CisJCX0KKwogCQlyYl9jbnRsID0gUlJFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfUkJfQ05UTCk7CiAJCXJiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKHJiX2NudGwsIFNETUEwX0dGWF9SQl9DTlRMLCBSQl9FTkFCTEUsIDApOwogCQlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9SQl9DTlRMLCByYl9jbnRsKTsKIAkJaWJfY250bCA9IFJSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX0lCX0NOVEwpOwogCQlpYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpYl9jbnRsLCBTRE1BMF9HRlhfSUJfQ05UTCwgSUJfRU5BQkxFLCAwKTsKIAkJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfSUJfQ05UTCwgaWJfY250bCk7Ci0JfQogCi0Jc2RtYTAtPnNjaGVkLnJlYWR5ID0gZmFsc2U7Ci0Jc2RtYTEtPnNjaGVkLnJlYWR5ID0gZmFsc2U7CisJCXNkbWFbaV0tPnNjaGVkLnJlYWR5ID0gZmFsc2U7CisJfQogfQogCiAvKioKQEAgLTY2MywxNiArODQ4LDIwIEBAIHN0YXRpYyB2b2lkIHNkbWFfdjRfMF9ybGNfc3RvcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKICAqLwogc3RhdGljIHZvaWQgc2RtYV92NF8wX3BhZ2Vfc3RvcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnNkbWEwID0gJmFkZXYtPnNkbWEuaW5zdGFuY2VbMF0ucGFnZTsKLQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnNkbWExID0gJmFkZXYtPnNkbWEuaW5zdGFuY2VbMV0ucGFnZTsKKwlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnNkbWFbQU1ER1BVX01BWF9TRE1BX0lOU1RBTkNFU107CiAJdTMyIHJiX2NudGwsIGliX2NudGw7CiAJaW50IGk7Ci0KLQlpZiAoKGFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNzX3JpbmcgPT0gc2RtYTApIHx8Ci0JICAgIChhZGV2LT5tbWFuLmJ1ZmZlcl9mdW5jc19yaW5nID09IHNkbWExKSkKLQkJYW1kZ3B1X3R0bV9zZXRfYnVmZmVyX2Z1bmNzX3N0YXR1cyhhZGV2LCBmYWxzZSk7CisJYm9vbCB1bnNldCA9IGZhbHNlOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7CisJCXNkbWFbaV0gPSAmYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5wYWdlOworCisJCWlmICgoYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZyA9PSBzZG1hW2ldKSAmJgorCQkJKHVuc2V0ID09IGZhbHNlKSkgeworCQkJYW1kZ3B1X3R0bV9zZXRfYnVmZmVyX2Z1bmNzX3N0YXR1cyhhZGV2LCBmYWxzZSk7CisJCQl1bnNldCA9IHRydWU7CisJCX0KKwogCQlyYl9jbnRsID0gUlJFRzMyX1NETUEoaSwgbW1TRE1BMF9QQUdFX1JCX0NOVEwpOwogCQlyYl9jbnRsID0gUkVHX1NFVF9GSUVMRChyYl9jbnRsLCBTRE1BMF9QQUdFX1JCX0NOVEwsCiAJCQkJCVJCX0VOQUJMRSwgMCk7CkBAIC02ODEsMTAgKzg3MCw5IEBAIHN0YXRpYyB2b2lkIHNkbWFfdjRfMF9wYWdlX3N0b3Aoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWliX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGliX2NudGwsIFNETUEwX1BBR0VfSUJfQ05UTCwKIAkJCQkJSUJfRU5BQkxFLCAwKTsKIAkJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9QQUdFX0lCX0NOVEwsIGliX2NudGwpOwotCX0KIAotCXNkbWEwLT5zY2hlZC5yZWFkeSA9IGZhbHNlOwotCXNkbWExLT5zY2hlZC5yZWFkeSA9IGZhbHNlOworCQlzZG1hW2ldLT5zY2hlZC5yZWFkeSA9IGZhbHNlOworCX0KIH0KIAogLyoqCkBAIC0xMDE4LDYgKzEyMDYsNyBAQCBzdGF0aWMgdm9pZCBzZG1hX3Y0XzBfaW5pdF9wZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJY2FzZSBDSElQX1JBVkVOOgorCWNhc2UgQ0hJUF9SRU5PSVI6CiAJCXNkbWFfdjRfMV9pbml0X3Bvd2VyX2dhdGluZyhhZGV2KTsKIAkJc2RtYV92NF8xX3VwZGF0ZV9wb3dlcl9nYXRpbmcoYWRldiwgdHJ1ZSk7CiAJCWJyZWFrOwpAQCAtMTQ3Myw4ICsxNjYyLDEwIEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCWludCByOwogCi0JaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOKQorCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9SQVZFTiB8fCBhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9SRU5PSVIpCiAJCWFkZXYtPnNkbWEubnVtX2luc3RhbmNlcyA9IDE7CisJZWxzZSBpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfQVJDVFVSVVMpCisJCWFkZXYtPnNkbWEubnVtX2luc3RhbmNlcyA9IDg7CiAJZWxzZQogCQlhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXMgPSAyOwogCkBAIC0xNDk5LDYgKzE2OTAsNyBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIH0KIAogc3RhdGljIGludCBzZG1hX3Y0XzBfcHJvY2Vzc19yYXNfZGF0YV9jYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJc3RydWN0IHJhc19lcnJfZGF0YSAqZXJyX2RhdGEsCiAJCXN0cnVjdCBhbWRncHVfaXZfZW50cnkgKmVudHJ5KTsKIAogc3RhdGljIGludCBzZG1hX3Y0XzBfbGF0ZV9pbml0KHZvaWQgKmhhbmRsZSkKQEAgLTE1MTgsNyArMTcxMCw3IEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCiAJCS5zdWJfYmxvY2tfaW5kZXggPSAwLAogCQkubmFtZSA9ICJzZG1hIiwKIAl9OwotCWludCByOworCWludCByLCBpOwogCiAJaWYgKCFhbWRncHVfcmFzX2lzX3N1cHBvcnRlZChhZGV2LCBBTURHUFVfUkFTX0JMT0NLX19TRE1BKSkgewogCQlhbWRncHVfcmFzX2ZlYXR1cmVfZW5hYmxlX29uX2Jvb3QoYWRldiwgJnJhc19ibG9jaywgMCk7CkBAIC0xNTc1LDE0ICsxNzY3LDExIEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCiAJaWYgKHIpCiAJCWdvdG8gc3lzZnM7CiByZXN1bWU6Ci0JciA9IGFtZGdwdV9pcnFfZ2V0KGFkZXYsICZhZGV2LT5zZG1hLmVjY19pcnEsIEFNREdQVV9TRE1BX0lSUV9JTlNUQU5DRTApOwotCWlmIChyKQotCQlnb3RvIGlycTsKLQotCXIgPSBhbWRncHVfaXJxX2dldChhZGV2LCAmYWRldi0+c2RtYS5lY2NfaXJxLCBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UxKTsKLQlpZiAocikgewotCQlhbWRncHVfaXJxX3B1dChhZGV2LCAmYWRldi0+c2RtYS5lY2NfaXJxLCBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UwKTsKLQkJZ290byBpcnE7CisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7CisJCXIgPSBhbWRncHVfaXJxX2dldChhZGV2LCAmYWRldi0+c2RtYS5lY2NfaXJxLAorCQkJCSAgIEFNREdQVV9TRE1BX0lSUV9JTlNUQU5DRTAgKyBpKTsKKwkJaWYgKHIpCisJCQlnb3RvIGlycTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTE2MDYsMjggKzE3OTUsMjIgQEAgc3RhdGljIGludCBzZG1hX3Y0XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAkvKiBTRE1BIHRyYXAgZXZlbnQgKi8KLQlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgU09DMTVfSUhfQ0xJRU5USURfU0RNQTAsIFNETUEwXzRfMF9fU1JDSURfX1NETUFfVFJBUCwKLQkJCSAgICAgICZhZGV2LT5zZG1hLnRyYXBfaXJxKTsKLQlpZiAocikKLQkJcmV0dXJuIHI7Ci0KLQkvKiBTRE1BIHRyYXAgZXZlbnQgKi8KLQlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgU09DMTVfSUhfQ0xJRU5USURfU0RNQTEsIFNETUExXzRfMF9fU1JDSURfX1NETUFfVFJBUCwKLQkJCSAgICAgICZhZGV2LT5zZG1hLnRyYXBfaXJxKTsKLQlpZiAocikKLQkJcmV0dXJuIHI7CisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7CisJCXIgPSBhbWRncHVfaXJxX2FkZF9pZChhZGV2LCBzZG1hX3Y0XzBfc2VxX3RvX2lycV9pZChpKSwKKwkJCQkgICAgICBTRE1BMF80XzBfX1NSQ0lEX19TRE1BX1RSQVAsCisJCQkJICAgICAgJmFkZXYtPnNkbWEudHJhcF9pcnEpOworCQlpZiAocikKKwkJCXJldHVybiByOworCX0KIAogCS8qIFNETUEgU1JBTSBFQ0MgZXZlbnQgKi8KLQlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgU09DMTVfSUhfQ0xJRU5USURfU0RNQTAsIFNETUEwXzRfMF9fU1JDSURfX1NETUFfU1JBTV9FQ0MsCi0JCQkmYWRldi0+c2RtYS5lY2NfaXJxKTsKLQlpZiAocikKLQkJcmV0dXJuIHI7Ci0KLQkvKiBTRE1BIFNSQU0gRUNDIGV2ZW50ICovCi0JciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIFNPQzE1X0lIX0NMSUVOVElEX1NETUExLCBTRE1BMV80XzBfX1NSQ0lEX19TRE1BX1NSQU1fRUNDLAotCQkJJmFkZXYtPnNkbWEuZWNjX2lycSk7Ci0JaWYgKHIpCi0JCXJldHVybiByOworCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgeworCQlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgc2RtYV92NF8wX3NlcV90b19pcnFfaWQoaSksCisJCQkJICAgICAgU0RNQTBfNF8wX19TUkNJRF9fU0RNQV9TUkFNX0VDQywKKwkJCQkgICAgICAmYWRldi0+c2RtYS5lY2NfaXJxKTsKKwkJaWYgKHIpCisJCQlyZXR1cm4gcjsKKwl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKIAkJcmluZyA9ICZhZGV2LT5zZG1hLmluc3RhbmNlW2ldLnJpbmc7CkBAIC0xNjQxLDExICsxODI0LDggQEAgc3RhdGljIGludCBzZG1hX3Y0XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiAJCXJpbmctPmRvb3JiZWxsX2luZGV4ID0gYWRldi0+ZG9vcmJlbGxfaW5kZXguc2RtYV9lbmdpbmVbaV0gPDwgMTsKIAogCQlzcHJpbnRmKHJpbmctPm5hbWUsICJzZG1hJWQiLCBpKTsKLQkJciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgMTAyNCwKLQkJCQkgICAgICZhZGV2LT5zZG1hLnRyYXBfaXJxLAotCQkJCSAgICAgKGkgPT0gMCkgPwotCQkJCSAgICAgQU1ER1BVX1NETUFfSVJRX0lOU1RBTkNFMCA6Ci0JCQkJICAgICBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UxKTsKKwkJciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgMTAyNCwgJmFkZXYtPnNkbWEudHJhcF9pcnEsCisJCQkJICAgICBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UwICsgaSk7CiAJCWlmIChyKQogCQkJcmV0dXJuIHI7CiAKQEAgLTE2NjMsOSArMTg0Myw3IEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCQkJc3ByaW50ZihyaW5nLT5uYW1lLCAicGFnZSVkIiwgaSk7CiAJCQlyID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCAxMDI0LAogCQkJCQkgICAgICZhZGV2LT5zZG1hLnRyYXBfaXJxLAotCQkJCQkgICAgIChpID09IDApID8KLQkJCQkJICAgICBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UwIDoKLQkJCQkJICAgICBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UxKTsKKwkJCQkJICAgICBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UwICsgaSk7CiAJCQlpZiAocikKIAkJCQlyZXR1cm4gcjsKIAkJfQpAQCAtMTcwMSwxMCArMTg3OSw3IEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogCQkJYW1kZ3B1X3JpbmdfZmluaSgmYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5wYWdlKTsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKLQkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3KTsKLQkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5mdyA9IE5VTEw7Ci0JfQorCXNkbWFfdjRfMF9kZXN0cm95X2luc3RfY3R4KGFkZXYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNzE0LDExICsxODg5LDEzIEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX2h3X2luaXQodm9pZCAqaGFuZGxlKQogCWludCByOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCi0JaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOICYmIGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcyAmJgotCQkJYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5zZXRfcG93ZXJnYXRpbmdfYnlfc211KQorCWlmICgoYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4gJiYgYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzICYmCisJCQlhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnNldF9wb3dlcmdhdGluZ19ieV9zbXUpIHx8CisJCQlhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9SRU5PSVIpCiAJCWFtZGdwdV9kcG1fc2V0X3Bvd2VyZ2F0aW5nX2J5X3NtdShhZGV2LCBBTURfSVBfQkxPQ0tfVFlQRV9TRE1BLCBmYWxzZSk7CiAKLQlzZG1hX3Y0XzBfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKGFkZXYpOworCWlmICghYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQorCQlzZG1hX3Y0XzBfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKGFkZXYpOwogCiAJciA9IHNkbWFfdjRfMF9zdGFydChhZGV2KTsKIApAQCAtMTcyOCwxOCArMTkwNSwyMiBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9od19pbml0KHZvaWQgKmhhbmRsZSkKIHN0YXRpYyBpbnQgc2RtYV92NF8wX2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCWludCBpOwogCiAJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkKIAkJcmV0dXJuIDA7CiAKLQlhbWRncHVfaXJxX3B1dChhZGV2LCAmYWRldi0+c2RtYS5lY2NfaXJxLCBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UwKTsKLQlhbWRncHVfaXJxX3B1dChhZGV2LCAmYWRldi0+c2RtYS5lY2NfaXJxLCBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UxKTsKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKKwkJYW1kZ3B1X2lycV9wdXQoYWRldiwgJmFkZXYtPnNkbWEuZWNjX2lycSwKKwkJCSAgICAgICBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UwICsgaSk7CisJfQogCiAJc2RtYV92NF8wX2N0eF9zd2l0Y2hfZW5hYmxlKGFkZXYsIGZhbHNlKTsKIAlzZG1hX3Y0XzBfZW5hYmxlKGFkZXYsIGZhbHNlKTsKIAotCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9SQVZFTiAmJiBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MKLQkJCSYmIGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+c2V0X3Bvd2VyZ2F0aW5nX2J5X3NtdSkKKwlpZiAoKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOICYmIGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcworCQkJJiYgYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5zZXRfcG93ZXJnYXRpbmdfYnlfc211KSB8fAorCQkJYWRldi0+YXNpY190eXBlID09IENISVBfUkVOT0lSKQogCQlhbWRncHVfZHBtX3NldF9wb3dlcmdhdGluZ19ieV9zbXUoYWRldiwgQU1EX0lQX0JMT0NLX1RZUEVfU0RNQSwgdHJ1ZSk7CiAKIAlyZXR1cm4gMDsKQEAgLTE3NzYsMTUgKzE5NTcsMTcgQEAgc3RhdGljIGJvb2wgc2RtYV92NF8wX2lzX2lkbGUodm9pZCAqaGFuZGxlKQogCiBzdGF0aWMgaW50IHNkbWFfdjRfMF93YWl0X2Zvcl9pZGxlKHZvaWQgKmhhbmRsZSkKIHsKLQl1bnNpZ25lZCBpOwotCXUzMiBzZG1hMCwgc2RtYTE7CisJdW5zaWduZWQgaSwgajsKKwl1MzIgc2RtYVtBTURHUFVfTUFYX1NETUFfSU5TVEFOQ0VTXTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgewotCQlzZG1hMCA9IFJSRUczMl9TRE1BKDAsIG1tU0RNQTBfU1RBVFVTX1JFRyk7Ci0JCXNkbWExID0gUlJFRzMyX1NETUEoMSwgbW1TRE1BMF9TVEFUVVNfUkVHKTsKLQotCQlpZiAoc2RtYTAgJiBzZG1hMSAmIFNETUEwX1NUQVRVU19SRUdfX0lETEVfTUFTSykKKwkJZm9yIChqID0gMDsgaiA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaisrKSB7CisJCQlzZG1hW2pdID0gUlJFRzMyX1NETUEoaiwgbW1TRE1BMF9TVEFUVVNfUkVHKTsKKwkJCWlmICghKHNkbWFbal0gJiBTRE1BMF9TVEFUVVNfUkVHX19JRExFX01BU0spKQorCQkJCWJyZWFrOworCQl9CisJCWlmIChqID09IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlcykKIAkJCXJldHVybiAwOwogCQl1ZGVsYXkoMSk7CiAJfQpAQCAtMTgyMCwxNyArMjAwMyw3IEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX3Byb2Nlc3NfdHJhcF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJdWludDMyX3QgaW5zdGFuY2U7CiAKIAlEUk1fREVCVUcoIklIOiBTRE1BIHRyYXBcbiIpOwotCXN3aXRjaCAoZW50cnktPmNsaWVudF9pZCkgewotCWNhc2UgU09DMTVfSUhfQ0xJRU5USURfU0RNQTA6Ci0JCWluc3RhbmNlID0gMDsKLQkJYnJlYWs7Ci0JY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMToKLQkJaW5zdGFuY2UgPSAxOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyZXR1cm4gMDsKLQl9Ci0KKwlpbnN0YW5jZSA9IHNkbWFfdjRfMF9pcnFfaWRfdG9fc2VxKGVudHJ5LT5jbGllbnRfaWQpOwogCXN3aXRjaCAoZW50cnktPnJpbmdfaWQpIHsKIAljYXNlIDA6CiAJCWFtZGdwdV9mZW5jZV9wcm9jZXNzKCZhZGV2LT5zZG1hLmluc3RhbmNlW2luc3RhbmNlXS5yaW5nKTsKQEAgLTE4NTEsMjAgKzIwMjQsMTUgQEAgc3RhdGljIGludCBzZG1hX3Y0XzBfcHJvY2Vzc190cmFwX2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIH0KIAogc3RhdGljIGludCBzZG1hX3Y0XzBfcHJvY2Vzc19yYXNfZGF0YV9jYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJc3RydWN0IHJhc19lcnJfZGF0YSAqZXJyX2RhdGEsCiAJCXN0cnVjdCBhbWRncHVfaXZfZW50cnkgKmVudHJ5KQogewotCXVpbnQzMl90IGluc3RhbmNlLCBlcnJfc291cmNlOworCXVpbnQzMl90IGVycl9zb3VyY2U7CisJaW50IGluc3RhbmNlOwogCi0Jc3dpdGNoIChlbnRyeS0+Y2xpZW50X2lkKSB7Ci0JY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMDoKLQkJaW5zdGFuY2UgPSAwOwotCQlicmVhazsKLQljYXNlIFNPQzE1X0lIX0NMSUVOVElEX1NETUExOgotCQlpbnN0YW5jZSA9IDE7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6CisJaW5zdGFuY2UgPSBzZG1hX3Y0XzBfaXJxX2lkX3RvX3NlcShlbnRyeS0+Y2xpZW50X2lkKTsKKwlpZiAoaW5zdGFuY2UgPCAwKQogCQlyZXR1cm4gMDsKLQl9CiAKIAlzd2l0Y2ggKGVudHJ5LT5zcmNfaWQpIHsKIAljYXNlIFNETUEwXzRfMF9fU1JDSURfX1NETUFfU1JBTV9FQ0M6CkBAIC0xODgxLDcgKzIwNDksNyBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9wcm9jZXNzX3Jhc19kYXRhX2NiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJYW1kZ3B1X3Jhc19yZXNldF9ncHUoYWRldiwgMCk7CiAKLQlyZXR1cm4gQU1ER1BVX1JBU19VRTsKKwlyZXR1cm4gQU1ER1BVX1JBU19TVUNDRVNTOwogfQogCiBzdGF0aWMgaW50IHNkbWFfdjRfMF9wcm9jZXNzX2VjY19pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCkBAIC0xOTEwLDE2ICsyMDc4LDkgQEAgc3RhdGljIGludCBzZG1hX3Y0XzBfcHJvY2Vzc19pbGxlZ2FsX2luc3RfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJRFJNX0VSUk9SKCJJbGxlZ2FsIGluc3RydWN0aW9uIGluIFNETUEgY29tbWFuZCBzdHJlYW1cbiIpOwogCi0Jc3dpdGNoIChlbnRyeS0+Y2xpZW50X2lkKSB7Ci0JY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9TRE1BMDoKLQkJaW5zdGFuY2UgPSAwOwotCQlicmVhazsKLQljYXNlIFNPQzE1X0lIX0NMSUVOVElEX1NETUExOgotCQlpbnN0YW5jZSA9IDE7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6CisJaW5zdGFuY2UgPSBzZG1hX3Y0XzBfaXJxX2lkX3RvX3NlcShlbnRyeS0+Y2xpZW50X2lkKTsKKwlpZiAoaW5zdGFuY2UgPCAwKQogCQlyZXR1cm4gMDsKLQl9CiAKIAlzd2l0Y2ggKGVudHJ5LT5yaW5nX2lkKSB7CiAJY2FzZSAwOgpAQCAtMTkzNiwxNCArMjA5NywxMCBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9zZXRfZWNjX2lycV9zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIHsKIAl1MzIgc2RtYV9lZGNfY29uZmlnOwogCi0JdTMyIHJlZ19vZmZzZXQgPSAodHlwZSA9PSBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UwKSA/Ci0JCXNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCAwLCBtbVNETUEwX0VEQ19DT05GSUcpIDoKLQkJc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIDEsIG1tU0RNQTBfRURDX0NPTkZJRyk7Ci0KLQlzZG1hX2VkY19jb25maWcgPSBSUkVHMzIocmVnX29mZnNldCk7CisJc2RtYV9lZGNfY29uZmlnID0gUlJFRzMyX1NETUEodHlwZSwgbW1TRE1BMF9FRENfQ09ORklHKTsKIAlzZG1hX2VkY19jb25maWcgPSBSRUdfU0VUX0ZJRUxEKHNkbWFfZWRjX2NvbmZpZywgU0RNQTBfRURDX0NPTkZJRywgRUNDX0lOVF9FTkFCTEUsCiAJCSAgICAgICBzdGF0ZSA9PSBBTURHUFVfSVJRX1NUQVRFX0VOQUJMRSA/IDEgOiAwKTsKLQlXUkVHMzIocmVnX29mZnNldCwgc2RtYV9lZGNfY29uZmlnKTsKKwlXUkVHMzJfU0RNQSh0eXBlLCBtbVNETUEwX0VEQ19DT05GSUcsIHNkbWFfZWRjX2NvbmZpZyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE5NTMsNjEgKzIxMTAsMzUgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fY2xvY2tfZ2F0aW5nKAogCQlib29sIGVuYWJsZSkKIHsKIAl1aW50MzJfdCBkYXRhLCBkZWY7CisJaW50IGk7CiAKIAlpZiAoZW5hYmxlICYmIChhZGV2LT5jZ19mbGFncyAmIEFNRF9DR19TVVBQT1JUX1NETUFfTUdDRykpIHsKLQkJLyogZW5hYmxlIHNkbWEwIGNsb2NrIGdhdGluZyAqLwotCQlkZWYgPSBkYXRhID0gUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfQ0xLX0NUUkwpKTsKLQkJZGF0YSAmPSB+KFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFN19NQVNLIHwKLQkJCSAgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU2X01BU0sgfAotCQkJICBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTVfTUFTSyB8Ci0JCQkgIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNF9NQVNLIHwKLQkJCSAgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUzX01BU0sgfAotCQkJICBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTJfTUFTSyB8Ci0JCQkgIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMV9NQVNLIHwKLQkJCSAgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUwX01BU0spOwotCQlpZiAoZGVmICE9IGRhdGEpCi0JCQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9DTEtfQ1RSTCksIGRhdGEpOwotCi0JCWlmIChhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXMgPiAxKSB7Ci0JCQlkZWYgPSBkYXRhID0gUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfQ0xLX0NUUkwpKTsKLQkJCWRhdGEgJj0gfihTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTdfTUFTSyB8Ci0JCQkJICBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTZfTUFTSyB8Ci0JCQkJICBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTVfTUFTSyB8Ci0JCQkJICBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTRfTUFTSyB8Ci0JCQkJICBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTNfTUFTSyB8Ci0JCQkJICBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTJfTUFTSyB8Ci0JCQkJICBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTFfTUFTSyB8Ci0JCQkJICBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTBfTUFTSyk7CisJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgeworCQkJZGVmID0gZGF0YSA9IFJSRUczMl9TRE1BKGksIG1tU0RNQTBfQ0xLX0NUUkwpOworCQkJZGF0YSAmPSB+KFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFN19NQVNLIHwKKwkJCQkgIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9NQVNLIHwKKwkJCQkgIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNV9NQVNLIHwKKwkJCQkgIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNF9NQVNLIHwKKwkJCQkgIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19NQVNLIHwKKwkJCQkgIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMl9NQVNLIHwKKwkJCQkgIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMV9NQVNLIHwKKwkJCQkgIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9NQVNLKTsKIAkJCWlmIChkZWYgIT0gZGF0YSkKLQkJCQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9DTEtfQ1RSTCksIGRhdGEpOworCQkJCVdSRUczMl9TRE1BKGksIG1tU0RNQTBfQ0xLX0NUUkwsIGRhdGEpOwogCQl9CiAJfSBlbHNlIHsKLQkJLyogZGlzYWJsZSBzZG1hMCBjbG9jayBnYXRpbmcgKi8KLQkJZGVmID0gZGF0YSA9IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0NMS19DVFJMKSk7Ci0JCWRhdGEgfD0gKFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFN19NQVNLIHwKLQkJCSBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTZfTUFTSyB8Ci0JCQkgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X01BU0sgfAotCQkJIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNF9NQVNLIHwKLQkJCSBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTNfTUFTSyB8Ci0JCQkgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX01BU0sgfAotCQkJIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMV9NQVNLIHwKLQkJCSBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTBfTUFTSyk7Ci0KLQkJaWYgKGRlZiAhPSBkYXRhKQotCQkJV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfQ0xLX0NUUkwpLCBkYXRhKTsKLQotCQlpZiAoYWRldi0+c2RtYS5udW1faW5zdGFuY2VzID4gMSkgewotCQkJZGVmID0gZGF0YSA9IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNETUExX0NMS19DVFJMKSk7Ci0JCQlkYXRhIHw9IChTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTdfTUFTSyB8Ci0JCQkJIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9NQVNLIHwKLQkJCQkgU0RNQTFfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X01BU0sgfAotCQkJCSBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTRfTUFTSyB8Ci0JCQkJIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19NQVNLIHwKLQkJCQkgU0RNQTFfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX01BU0sgfAotCQkJCSBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTFfTUFTSyB8Ci0JCQkJIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9NQVNLKTsKKwkJZm9yIChpID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7CisJCQlkZWYgPSBkYXRhID0gUlJFRzMyX1NETUEoaSwgbW1TRE1BMF9DTEtfQ1RSTCk7CisJCQlkYXRhIHw9IChTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTdfTUFTSyB8CisJCQkJIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9NQVNLIHwKKwkJCQkgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X01BU0sgfAorCQkJCSBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTRfTUFTSyB8CisJCQkJIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19NQVNLIHwKKwkJCQkgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX01BU0sgfAorCQkJCSBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTFfTUFTSyB8CisJCQkJIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9NQVNLKTsKIAkJCWlmIChkZWYgIT0gZGF0YSkKLQkJCQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9DTEtfQ1RSTCksIGRhdGEpOworCQkJCVdSRUczMl9TRE1BKGksIG1tU0RNQTBfQ0xLX0NUUkwsIGRhdGEpOwogCQl9CiAJfQogfQpAQCAtMjAxOCwzNCArMjE0OSwyMyBAQCBzdGF0aWMgdm9pZCBzZG1hX3Y0XzBfdXBkYXRlX21lZGl1bV9ncmFpbl9saWdodF9zbGVlcCgKIAkJYm9vbCBlbmFibGUpCiB7CiAJdWludDMyX3QgZGF0YSwgZGVmOworCWludCBpOwogCiAJaWYgKGVuYWJsZSAmJiAoYWRldi0+Y2dfZmxhZ3MgJiBBTURfQ0dfU1VQUE9SVF9TRE1BX0xTKSkgewotCQkvKiAxLW5vdCBvdmVycmlkZTogZW5hYmxlIHNkbWEwIG1lbSBsaWdodCBzbGVlcCAqLwotCQlkZWYgPSBkYXRhID0gUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUE9XRVJfQ05UTCkpOwotCQlkYXRhIHw9IFNETUEwX1BPV0VSX0NOVExfX01FTV9QT1dFUl9PVkVSUklERV9NQVNLOwotCQlpZiAoZGVmICE9IGRhdGEpCi0JCQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9QT1dFUl9DTlRMKSwgZGF0YSk7Ci0KLQkJLyogMS1ub3Qgb3ZlcnJpZGU6IGVuYWJsZSBzZG1hMSBtZW0gbGlnaHQgc2xlZXAgKi8KLQkJaWYgKGFkZXYtPnNkbWEubnVtX2luc3RhbmNlcyA+IDEpIHsKLQkJCWRlZiA9IGRhdGEgPSBSUkVHMzIoU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9QT1dFUl9DTlRMKSk7Ci0JCQlkYXRhIHw9IFNETUExX1BPV0VSX0NOVExfX01FTV9QT1dFUl9PVkVSUklERV9NQVNLOworCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKKwkJCS8qIDEtbm90IG92ZXJyaWRlOiBlbmFibGUgc2RtYSBtZW0gbGlnaHQgc2xlZXAgKi8KKwkJCWRlZiA9IGRhdGEgPSBSUkVHMzJfU0RNQSgwLCBtbVNETUEwX1BPV0VSX0NOVEwpOworCQkJZGF0YSB8PSBTRE1BMF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfT1ZFUlJJREVfTUFTSzsKIAkJCWlmIChkZWYgIT0gZGF0YSkKLQkJCQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9QT1dFUl9DTlRMKSwgZGF0YSk7CisJCQkJV1JFRzMyX1NETUEoMCwgbW1TRE1BMF9QT1dFUl9DTlRMLCBkYXRhKTsKIAkJfQogCX0gZWxzZSB7Ci0JCS8qIDAtb3ZlcnJpZGU6ZGlzYWJsZSBzZG1hMCBtZW0gbGlnaHQgc2xlZXAgKi8KLQkJZGVmID0gZGF0YSA9IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1BPV0VSX0NOVEwpKTsKLQkJZGF0YSAmPSB+U0RNQTBfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX09WRVJSSURFX01BU0s7Ci0JCWlmIChkZWYgIT0gZGF0YSkKLQkJCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1BPV0VSX0NOVEwpLCBkYXRhKTsKLQotCQkvKiAwLW92ZXJyaWRlOmRpc2FibGUgc2RtYTEgbWVtIGxpZ2h0IHNsZWVwICovCi0JCWlmIChhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXMgPiAxKSB7Ci0JCQlkZWYgPSBkYXRhID0gUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfUE9XRVJfQ05UTCkpOwotCQkJZGF0YSAmPSB+U0RNQTFfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX09WRVJSSURFX01BU0s7CisJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgeworCQkvKiAwLW92ZXJyaWRlOmRpc2FibGUgc2RtYSBtZW0gbGlnaHQgc2xlZXAgKi8KKwkJCWRlZiA9IGRhdGEgPSBSUkVHMzJfU0RNQSgwLCBtbVNETUEwX1BPV0VSX0NOVEwpOworCQkJZGF0YSAmPSB+U0RNQTBfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX09WRVJSSURFX01BU0s7CiAJCQlpZiAoZGVmICE9IGRhdGEpCi0JCQkJV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfUE9XRVJfQ05UTCksIGRhdGEpOworCQkJCVdSRUczMl9TRE1BKDAsIG1tU0RNQTBfUE9XRVJfQ05UTCwgZGF0YSk7CiAJCX0KIAl9CiB9CkBAIC0yMDYzLDYgKzIxODMsOCBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAogCWNhc2UgQ0hJUF9WRUdBMTI6CiAJY2FzZSBDSElQX1ZFR0EyMDoKIAljYXNlIENISVBfUkFWRU46CisJY2FzZSBDSElQX0FSQ1RVUlVTOgorCWNhc2UgQ0hJUF9SRU5PSVI6CiAJCXNkbWFfdjRfMF91cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhhZGV2LAogCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKIAkJc2RtYV92NF8wX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fbGlnaHRfc2xlZXAoYWRldiwKQEAgLTIxMzMsNyArMjI1NSw0MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHNkbWFfdjRfMF9yaW5nX2Z1bmNzID0gewogCS5hbGlnbl9tYXNrID0gMHhmLAogCS5ub3AgPSBTRE1BX1BLVF9OT1BfSEVBREVSX09QKFNETUFfT1BfTk9QKSwKIAkuc3VwcG9ydF82NGJpdF9wdHJzID0gdHJ1ZSwKLQkudm1odWIgPSBBTURHUFVfTU1IVUIsCisJLnZtaHViID0gQU1ER1BVX01NSFVCXzAsCisJLmdldF9ycHRyID0gc2RtYV92NF8wX3JpbmdfZ2V0X3JwdHIsCisJLmdldF93cHRyID0gc2RtYV92NF8wX3JpbmdfZ2V0X3dwdHIsCisJLnNldF93cHRyID0gc2RtYV92NF8wX3Jpbmdfc2V0X3dwdHIsCisJLmVtaXRfZnJhbWVfc2l6ZSA9CisJCTYgKyAvKiBzZG1hX3Y0XzBfcmluZ19lbWl0X2hkcF9mbHVzaCAqLworCQkzICsgLyogaGRwIGludmFsaWRhdGUgKi8KKwkJNiArIC8qIHNkbWFfdjRfMF9yaW5nX2VtaXRfcGlwZWxpbmVfc3luYyAqLworCQkvKiBzZG1hX3Y0XzBfcmluZ19lbWl0X3ZtX2ZsdXNoICovCisJCVNPQzE1X0ZMVVNIX0dQVV9UTEJfTlVNX1dSRUcgKiAzICsKKwkJU09DMTVfRkxVU0hfR1BVX1RMQl9OVU1fUkVHX1dBSVQgKiA2ICsKKwkJMTAgKyAxMCArIDEwLCAvKiBzZG1hX3Y0XzBfcmluZ19lbWl0X2ZlbmNlIHgzIGZvciB1c2VyIGZlbmNlLCB2bSBmZW5jZSAqLworCS5lbWl0X2liX3NpemUgPSA3ICsgNiwgLyogc2RtYV92NF8wX3JpbmdfZW1pdF9pYiAqLworCS5lbWl0X2liID0gc2RtYV92NF8wX3JpbmdfZW1pdF9pYiwKKwkuZW1pdF9mZW5jZSA9IHNkbWFfdjRfMF9yaW5nX2VtaXRfZmVuY2UsCisJLmVtaXRfcGlwZWxpbmVfc3luYyA9IHNkbWFfdjRfMF9yaW5nX2VtaXRfcGlwZWxpbmVfc3luYywKKwkuZW1pdF92bV9mbHVzaCA9IHNkbWFfdjRfMF9yaW5nX2VtaXRfdm1fZmx1c2gsCisJLmVtaXRfaGRwX2ZsdXNoID0gc2RtYV92NF8wX3JpbmdfZW1pdF9oZHBfZmx1c2gsCisJLnRlc3RfcmluZyA9IHNkbWFfdjRfMF9yaW5nX3Rlc3RfcmluZywKKwkudGVzdF9pYiA9IHNkbWFfdjRfMF9yaW5nX3Rlc3RfaWIsCisJLmluc2VydF9ub3AgPSBzZG1hX3Y0XzBfcmluZ19pbnNlcnRfbm9wLAorCS5wYWRfaWIgPSBzZG1hX3Y0XzBfcmluZ19wYWRfaWIsCisJLmVtaXRfd3JlZyA9IHNkbWFfdjRfMF9yaW5nX2VtaXRfd3JlZywKKwkuZW1pdF9yZWdfd2FpdCA9IHNkbWFfdjRfMF9yaW5nX2VtaXRfcmVnX3dhaXQsCisJLmVtaXRfcmVnX3dyaXRlX3JlZ193YWl0ID0gYW1kZ3B1X3JpbmdfZW1pdF9yZWdfd3JpdGVfcmVnX3dhaXRfaGVscGVyLAorfTsKKworLyoKKyAqIE9uIEFyY3R1cnVzLCBTRE1BIGluc3RhbmNlIDV+NyBoYXMgYSBkaWZmZXJlbnQgdm1odWIgdHlwZShBTURHUFVfTU1IVUJfMSkuCisgKiBTbyBjcmVhdGUgYSBpbmRpdmlkdWFsIGNvbnN0YW50IHJpbmdfZnVuY3MgZm9yIHRob3NlIGluc3RhbmNlcy4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyBzZG1hX3Y0XzBfcmluZ19mdW5jc18ybmRfbW1odWIgPSB7CisJLnR5cGUgPSBBTURHUFVfUklOR19UWVBFX1NETUEsCisJLmFsaWduX21hc2sgPSAweGYsCisJLm5vcCA9IFNETUFfUEtUX05PUF9IRUFERVJfT1AoU0RNQV9PUF9OT1ApLAorCS5zdXBwb3J0XzY0Yml0X3B0cnMgPSB0cnVlLAorCS52bWh1YiA9IEFNREdQVV9NTUhVQl8xLAogCS5nZXRfcnB0ciA9IHNkbWFfdjRfMF9yaW5nX2dldF9ycHRyLAogCS5nZXRfd3B0ciA9IHNkbWFfdjRfMF9yaW5nX2dldF93cHRyLAogCS5zZXRfd3B0ciA9IHNkbWFfdjRfMF9yaW5nX3NldF93cHRyLApAQCAtMjE2NSw3ICsyMzIzLDM5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3Mgc2RtYV92NF8wX3BhZ2VfcmluZ19mdW5jcyA9IHsKIAkuYWxpZ25fbWFzayA9IDB4ZiwKIAkubm9wID0gU0RNQV9QS1RfTk9QX0hFQURFUl9PUChTRE1BX09QX05PUCksCiAJLnN1cHBvcnRfNjRiaXRfcHRycyA9IHRydWUsCi0JLnZtaHViID0gQU1ER1BVX01NSFVCLAorCS52bWh1YiA9IEFNREdQVV9NTUhVQl8wLAorCS5nZXRfcnB0ciA9IHNkbWFfdjRfMF9yaW5nX2dldF9ycHRyLAorCS5nZXRfd3B0ciA9IHNkbWFfdjRfMF9wYWdlX3JpbmdfZ2V0X3dwdHIsCisJLnNldF93cHRyID0gc2RtYV92NF8wX3BhZ2VfcmluZ19zZXRfd3B0ciwKKwkuZW1pdF9mcmFtZV9zaXplID0KKwkJNiArIC8qIHNkbWFfdjRfMF9yaW5nX2VtaXRfaGRwX2ZsdXNoICovCisJCTMgKyAvKiBoZHAgaW52YWxpZGF0ZSAqLworCQk2ICsgLyogc2RtYV92NF8wX3JpbmdfZW1pdF9waXBlbGluZV9zeW5jICovCisJCS8qIHNkbWFfdjRfMF9yaW5nX2VtaXRfdm1fZmx1c2ggKi8KKwkJU09DMTVfRkxVU0hfR1BVX1RMQl9OVU1fV1JFRyAqIDMgKworCQlTT0MxNV9GTFVTSF9HUFVfVExCX05VTV9SRUdfV0FJVCAqIDYgKworCQkxMCArIDEwICsgMTAsIC8qIHNkbWFfdjRfMF9yaW5nX2VtaXRfZmVuY2UgeDMgZm9yIHVzZXIgZmVuY2UsIHZtIGZlbmNlICovCisJLmVtaXRfaWJfc2l6ZSA9IDcgKyA2LCAvKiBzZG1hX3Y0XzBfcmluZ19lbWl0X2liICovCisJLmVtaXRfaWIgPSBzZG1hX3Y0XzBfcmluZ19lbWl0X2liLAorCS5lbWl0X2ZlbmNlID0gc2RtYV92NF8wX3JpbmdfZW1pdF9mZW5jZSwKKwkuZW1pdF9waXBlbGluZV9zeW5jID0gc2RtYV92NF8wX3JpbmdfZW1pdF9waXBlbGluZV9zeW5jLAorCS5lbWl0X3ZtX2ZsdXNoID0gc2RtYV92NF8wX3JpbmdfZW1pdF92bV9mbHVzaCwKKwkuZW1pdF9oZHBfZmx1c2ggPSBzZG1hX3Y0XzBfcmluZ19lbWl0X2hkcF9mbHVzaCwKKwkudGVzdF9yaW5nID0gc2RtYV92NF8wX3JpbmdfdGVzdF9yaW5nLAorCS50ZXN0X2liID0gc2RtYV92NF8wX3JpbmdfdGVzdF9pYiwKKwkuaW5zZXJ0X25vcCA9IHNkbWFfdjRfMF9yaW5nX2luc2VydF9ub3AsCisJLnBhZF9pYiA9IHNkbWFfdjRfMF9yaW5nX3BhZF9pYiwKKwkuZW1pdF93cmVnID0gc2RtYV92NF8wX3JpbmdfZW1pdF93cmVnLAorCS5lbWl0X3JlZ193YWl0ID0gc2RtYV92NF8wX3JpbmdfZW1pdF9yZWdfd2FpdCwKKwkuZW1pdF9yZWdfd3JpdGVfcmVnX3dhaXQgPSBhbWRncHVfcmluZ19lbWl0X3JlZ193cml0ZV9yZWdfd2FpdF9oZWxwZXIsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHNkbWFfdjRfMF9wYWdlX3JpbmdfZnVuY3NfMm5kX21taHViID0geworCS50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9TRE1BLAorCS5hbGlnbl9tYXNrID0gMHhmLAorCS5ub3AgPSBTRE1BX1BLVF9OT1BfSEVBREVSX09QKFNETUFfT1BfTk9QKSwKKwkuc3VwcG9ydF82NGJpdF9wdHJzID0gdHJ1ZSwKKwkudm1odWIgPSBBTURHUFVfTU1IVUJfMSwKIAkuZ2V0X3JwdHIgPSBzZG1hX3Y0XzBfcmluZ19nZXRfcnB0ciwKIAkuZ2V0X3dwdHIgPSBzZG1hX3Y0XzBfcGFnZV9yaW5nX2dldF93cHRyLAogCS5zZXRfd3B0ciA9IHNkbWFfdjRfMF9wYWdlX3Jpbmdfc2V0X3dwdHIsCkBAIC0yMTk3LDEwICsyMzg3LDIwIEBAIHN0YXRpYyB2b2lkIHNkbWFfdjRfMF9zZXRfcmluZ19mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgewotCQlhZGV2LT5zZG1hLmluc3RhbmNlW2ldLnJpbmcuZnVuY3MgPSAmc2RtYV92NF8wX3JpbmdfZnVuY3M7CisJCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9BUkNUVVJVUyAmJiBpID49IDUpCisJCQlhZGV2LT5zZG1hLmluc3RhbmNlW2ldLnJpbmcuZnVuY3MgPQorCQkJCQkmc2RtYV92NF8wX3JpbmdfZnVuY3NfMm5kX21taHViOworCQllbHNlCisJCQlhZGV2LT5zZG1hLmluc3RhbmNlW2ldLnJpbmcuZnVuY3MgPQorCQkJCQkmc2RtYV92NF8wX3JpbmdfZnVuY3M7CiAJCWFkZXYtPnNkbWEuaW5zdGFuY2VbaV0ucmluZy5tZSA9IGk7CiAJCWlmIChhZGV2LT5zZG1hLmhhc19wYWdlX3F1ZXVlKSB7Ci0JCQlhZGV2LT5zZG1hLmluc3RhbmNlW2ldLnBhZ2UuZnVuY3MgPSAmc2RtYV92NF8wX3BhZ2VfcmluZ19mdW5jczsKKwkJCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9BUkNUVVJVUyAmJiBpID49IDUpCisJCQkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5wYWdlLmZ1bmNzID0KKwkJCQkJJnNkbWFfdjRfMF9wYWdlX3JpbmdfZnVuY3NfMm5kX21taHViOworCQkJZWxzZQorCQkJCWFkZXYtPnNkbWEuaW5zdGFuY2VbaV0ucGFnZS5mdW5jcyA9CisJCQkJCSZzZG1hX3Y0XzBfcGFnZV9yaW5nX2Z1bmNzOwogCQkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5wYWdlLm1lID0gaTsKIAkJfQogCX0KQEAgLTIyMjQsMTAgKzI0MjQsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyBzZG1hX3Y0XzBfZWNjX2lycV9mdW5jcyA9IHsKIAogc3RhdGljIHZvaWQgc2RtYV92NF8wX3NldF9pcnFfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0JYWRldi0+c2RtYS50cmFwX2lycS5udW1fdHlwZXMgPSBBTURHUFVfU0RNQV9JUlFfTEFTVDsKKwlzd2l0Y2ggKGFkZXYtPnNkbWEubnVtX2luc3RhbmNlcykgeworCWNhc2UgMToKKwkJYWRldi0+c2RtYS50cmFwX2lycS5udW1fdHlwZXMgPSBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UxOworCQlhZGV2LT5zZG1hLmVjY19pcnEubnVtX3R5cGVzID0gQU1ER1BVX1NETUFfSVJRX0lOU1RBTkNFMTsKKwkJYnJlYWs7CisJY2FzZSA4OgorCQlhZGV2LT5zZG1hLnRyYXBfaXJxLm51bV90eXBlcyA9IEFNREdQVV9TRE1BX0lSUV9MQVNUOworCQlhZGV2LT5zZG1hLmVjY19pcnEubnVtX3R5cGVzID0gQU1ER1BVX1NETUFfSVJRX0xBU1Q7CisJCWJyZWFrOworCWNhc2UgMjoKKwlkZWZhdWx0OgorCQlhZGV2LT5zZG1hLnRyYXBfaXJxLm51bV90eXBlcyA9IEFNREdQVV9TRE1BX0lSUV9JTlNUQU5DRTI7CisJCWFkZXYtPnNkbWEuZWNjX2lycS5udW1fdHlwZXMgPSBBTURHUFVfU0RNQV9JUlFfSU5TVEFOQ0UyOworCQlicmVhazsKKwl9CiAJYWRldi0+c2RtYS50cmFwX2lycS5mdW5jcyA9ICZzZG1hX3Y0XzBfdHJhcF9pcnFfZnVuY3M7CiAJYWRldi0+c2RtYS5pbGxlZ2FsX2luc3RfaXJxLmZ1bmNzID0gJnNkbWFfdjRfMF9pbGxlZ2FsX2luc3RfaXJxX2Z1bmNzOwotCWFkZXYtPnNkbWEuZWNjX2lycS5udW1fdHlwZXMgPSBBTURHUFVfU0RNQV9JUlFfTEFTVDsKIAlhZGV2LT5zZG1hLmVjY19pcnEuZnVuY3MgPSAmc2RtYV92NF8wX2VjY19pcnFfZnVuY3M7CiB9CiAKQEAgLTIyOTMsOCArMjUwNiw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2J1ZmZlcl9mdW5jcyBzZG1hX3Y0XzBfYnVmZmVyX2Z1bmNzID0gewogc3RhdGljIHZvaWQgc2RtYV92NF8wX3NldF9idWZmZXJfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJYWRldi0+bW1hbi5idWZmZXJfZnVuY3MgPSAmc2RtYV92NF8wX2J1ZmZlcl9mdW5jczsKLQlpZiAoYWRldi0+c2RtYS5oYXNfcGFnZV9xdWV1ZSAmJiBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXMgPiAxKQotCQlhZGV2LT5tbWFuLmJ1ZmZlcl9mdW5jc19yaW5nID0gJmFkZXYtPnNkbWEuaW5zdGFuY2VbMV0ucGFnZTsKKwlpZiAoYWRldi0+c2RtYS5oYXNfcGFnZV9xdWV1ZSkKKwkJYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZyA9ICZhZGV2LT5zZG1hLmluc3RhbmNlWzBdLnBhZ2U7CiAJZWxzZQogCQlhZGV2LT5tbWFuLmJ1ZmZlcl9mdW5jc19yaW5nID0gJmFkZXYtPnNkbWEuaW5zdGFuY2VbMF0ucmluZzsKIH0KQEAgLTIzMTMsMjIgKzI1MjYsMTUgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX3NldF92bV9wdGVfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJdW5zaWduZWQgaTsKIAogCWFkZXYtPnZtX21hbmFnZXIudm1fcHRlX2Z1bmNzID0gJnNkbWFfdjRfMF92bV9wdGVfZnVuY3M7Ci0JaWYgKGFkZXYtPnNkbWEuaGFzX3BhZ2VfcXVldWUgJiYgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzID4gMSkgewotCQlmb3IgKGkgPSAxOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKKwkJaWYgKGFkZXYtPnNkbWEuaGFzX3BhZ2VfcXVldWUpCiAJCQlzY2hlZCA9ICZhZGV2LT5zZG1hLmluc3RhbmNlW2ldLnBhZ2Uuc2NoZWQ7Ci0JCQlhZGV2LT52bV9tYW5hZ2VyLnZtX3B0ZV9ycXNbaSAtIDFdID0KLQkJCQkmc2NoZWQtPnNjaGVkX3JxW0RSTV9TQ0hFRF9QUklPUklUWV9LRVJORUxdOwotCQl9Ci0JCWFkZXYtPnZtX21hbmFnZXIudm1fcHRlX251bV9ycXMgPSBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXMgLSAxOwotCQlhZGV2LT52bV9tYW5hZ2VyLnBhZ2VfZmF1bHQgPSAmYWRldi0+c2RtYS5pbnN0YW5jZVswXS5wYWdlOwotCX0gZWxzZSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgeworCQllbHNlCiAJCQlzY2hlZCA9ICZhZGV2LT5zZG1hLmluc3RhbmNlW2ldLnJpbmcuc2NoZWQ7Ci0JCQlhZGV2LT52bV9tYW5hZ2VyLnZtX3B0ZV9ycXNbaV0gPQotCQkJCSZzY2hlZC0+c2NoZWRfcnFbRFJNX1NDSEVEX1BSSU9SSVRZX0tFUk5FTF07Ci0JCX0KLQkJYWRldi0+dm1fbWFuYWdlci52bV9wdGVfbnVtX3JxcyA9IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsKKwkJYWRldi0+dm1fbWFuYWdlci52bV9wdGVfcnFzW2ldID0KKwkJCSZzY2hlZC0+c2NoZWRfcnFbRFJNX1NDSEVEX1BSSU9SSVRZX0tFUk5FTF07CiAJfQorCWFkZXYtPnZtX21hbmFnZXIudm1fcHRlX251bV9ycXMgPSBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7CiB9CiAKIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiBzZG1hX3Y0XzBfaXBfYmxvY2sgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y1XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjVfMC5jCmluZGV4IDM3NDdjM2YuLmZhMmY3MGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjVfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjVfMC5jCkBAIC0yMSw4ICsyMSwxMSBAQAogICoKICAqLwogCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisKICNpbmNsdWRlICJhbWRncHUuaCIKICNpbmNsdWRlICJhbWRncHVfdWNvZGUuaCIKICNpbmNsdWRlICJhbWRncHVfdHJhY2UuaCIKQEAgLTQyLDYgKzQ1LDEyIEBACiBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTBfc2RtYS5iaW4iKTsKIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxMF9zZG1hMS5iaW4iKTsKIAorTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTE0X3NkbWEuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTRfc2RtYTEuYmluIik7CisKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxMl9zZG1hLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTEyX3NkbWExLmJpbiIpOworCiAjZGVmaW5lIFNETUExX1JFR19PRkZTRVQgMHg2MDAKICNkZWZpbmUgU0RNQTBfSFlQX0RFQ19SRUdfU1RBUlQgMHg1ODgwCiAjZGVmaW5lIFNETUEwX0hZUF9ERUNfUkVHX0VORCAweDU4OTMKQEAgLTU5LDcgKzY4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2MxNV9yZWdfZ29sZGVuIGdvbGRlbl9zZXR0aW5nc19zZG1hXzVbXSA9IHsKIAlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwsIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDApLAogCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTCwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCksCiAJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1TRE1BMF9STEMyX1JCX1dQVFJfUE9MTF9DTlRMLCAweGZmZmZmZmY3LCAweDAwNDAzMDAwKSwKLQlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNETUEwX1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwsIDB4MDAwMGZmZjAsIDB4MDA0MDMwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQ05UTCwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCksCiAJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1TRE1BMF9STEM0X1JCX1dQVFJfUE9MTF9DTlRMLCAweGZmZmZmZmY3LCAweDAwNDAzMDAwKSwKIAlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNETUEwX1JMQzVfUkJfV1BUUl9QT0xMX0NOVEwsIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDApLAogCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQ05UTCwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCksCkBAIC03MSw3ICs4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jMTVfcmVnX2dvbGRlbiBnb2xkZW5fc2V0dGluZ3Nfc2RtYV81W10gPSB7CiAJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1TRE1BMV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMLCAweGZmZmZmZmY3LCAweDAwNDAzMDAwKSwKIAlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwsIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDApLAogCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tU0RNQTFfUkxDMl9SQl9XUFRSX1BPTExfQ05UTCwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCksCi0JU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1TRE1BMV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwsIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDApLAogCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tU0RNQTFfUkxDNF9SQl9XUFRSX1BPTExfQ05UTCwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCksCiAJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1TRE1BMV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMLCAweGZmZmZmZmY3LCAweDAwNDAzMDAwKSwKIAlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0NOVEwsIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDApLApAQCAtODAsNiArODksMTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2MxNV9yZWdfZ29sZGVuIGdvbGRlbl9zZXR0aW5nc19zZG1hXzVbXSA9IHsKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jMTVfcmVnX2dvbGRlbiBnb2xkZW5fc2V0dGluZ3Nfc2RtYV9udjEwW10gPSB7CisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1TRE1BMF9STEMzX1JCX1dQVFJfUE9MTF9DTlRMLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwKSwKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwsIDB4MDAwMGZmZjAsIDB4MDA0MDMwMDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2MxNV9yZWdfZ29sZGVuIGdvbGRlbl9zZXR0aW5nc19zZG1hX252MTRbXSA9IHsKKwlTT0MxNV9SRUdfR09MREVOX1ZBTFVFKEdDLCAwLCBtbVNETUEwX1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwsIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDApLAorCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tU0RNQTFfUkxDM19SQl9XUFRSX1BPTExfQ05UTCwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvYzE1X3JlZ19nb2xkZW4gZ29sZGVuX3NldHRpbmdzX3NkbWFfbnYxMltdID0geworCVNPQzE1X1JFR19HT0xERU5fVkFMVUUoR0MsIDAsIG1tU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQ05UTCwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCksCisJU09DMTVfUkVHX0dPTERFTl9WQUxVRShHQywgMCwgbW1TRE1BMV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMLCAweGZmZmZmZmY3LCAweDAwNDAzMDAwKSwKIH07CiAKIHN0YXRpYyB1MzIgc2RtYV92NV8wX2dldF9yZWdfb2Zmc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgaW5zdGFuY2UsIHUzMiBpbnRlcm5hbF9vZmZzZXQpCkBAIC0xMTEsNiArMTMyLDIyIEBAIHN0YXRpYyB2b2lkIHNkbWFfdjVfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQkJCQlnb2xkZW5fc2V0dGluZ3Nfc2RtYV9udjEwLAogCQkJCQkJKGNvbnN0IHUzMilBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19zZG1hX252MTApKTsKIAkJYnJlYWs7CisJY2FzZSBDSElQX05BVkkxNDoKKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAorCQkJCQkJZ29sZGVuX3NldHRpbmdzX3NkbWFfNSwKKwkJCQkJCShjb25zdCB1MzIpQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3Nfc2RtYV81KSk7CisJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKKwkJCQkJCWdvbGRlbl9zZXR0aW5nc19zZG1hX252MTQsCisJCQkJCQkoY29uc3QgdTMyKUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX3NkbWFfbnYxNCkpOworCQlicmVhazsKKwljYXNlIENISVBfTkFWSTEyOgorCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCisJCQkJCQlnb2xkZW5fc2V0dGluZ3Nfc2RtYV81LAorCQkJCQkJKGNvbnN0IHUzMilBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19zZG1hXzUpKTsKKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAorCQkJCQkJZ29sZGVuX3NldHRpbmdzX3NkbWFfbnYxMiwKKwkJCQkJCShjb25zdCB1MzIpQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3Nfc2RtYV9udjEyKSk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KQEAgLTE0Myw2ICsxODAsMTIgQEAgc3RhdGljIGludCBzZG1hX3Y1XzBfaW5pdF9taWNyb2NvZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJY2FzZSBDSElQX05BVkkxMDoKIAkJY2hpcF9uYW1lID0gIm5hdmkxMCI7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTQ6CisJCWNoaXBfbmFtZSA9ICJuYXZpMTQiOworCQlicmVhazsKKwljYXNlIENISVBfTkFWSTEyOgorCQljaGlwX25hbWUgPSAibmF2aTEyIjsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJQlVHKCk7CiAJfQpAQCAtODYxLDcgKzkwNCw3IEBAIHN0YXRpYyBpbnQgc2RtYV92NV8wX3JpbmdfdGVzdF9yaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAkJaWYgKGFtZGdwdV9lbXVfbW9kZSA9PSAxKQogCQkJbXNsZWVwKDEpOwogCQllbHNlCi0JCQlEUk1fVURFTEFZKDEpOworCQkJdWRlbGF5KDEpOwogCX0KIAogCWlmIChpIDwgYWRldi0+dXNlY190aW1lb3V0KSB7CkBAIC0xMzE2LDcgKzEzNTksNyBAQCBzdGF0aWMgaW50IHNkbWFfdjVfMF9yaW5nX3ByZWVtcHRfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCQlpZiAocmluZy0+dHJhaWxfc2VxID09CiAJCSAgICBsZTMyX3RvX2NwdSgqKHJpbmctPnRyYWlsX2ZlbmNlX2NwdV9hZGRyKSkpCiAJCQlicmVhazsKLQkJRFJNX1VERUxBWSgxKTsKKwkJdWRlbGF5KDEpOwogCX0KIAogCWlmIChpID49IGFkZXYtPnVzZWNfdGltZW91dCkgewpAQCAtMTQ3Miw2ICsxNTE1LDggQEAgc3RhdGljIGludCBzZG1hX3Y1XzBfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKIAogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CiAJY2FzZSBDSElQX05BVkkxMDoKKwljYXNlIENISVBfTkFWSTE0OgorCWNhc2UgQ0hJUF9OQVZJMTI6CiAJCXNkbWFfdjVfMF91cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhhZGV2LAogCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKIAkJc2RtYV92NV8wX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fbGlnaHRfc2xlZXAoYWRldiwKQEAgLTE1MzIsNyArMTU3Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3Mgc2RtYV92NV8wX3JpbmdfZnVuY3MgPSB7CiAJLmFsaWduX21hc2sgPSAweGYsCiAJLm5vcCA9IFNETUFfUEtUX05PUF9IRUFERVJfT1AoU0RNQV9PUF9OT1ApLAogCS5zdXBwb3J0XzY0Yml0X3B0cnMgPSB0cnVlLAotCS52bWh1YiA9IEFNREdQVV9HRlhIVUIsCisJLnZtaHViID0gQU1ER1BVX0dGWEhVQl8wLAogCS5nZXRfcnB0ciA9IHNkbWFfdjVfMF9yaW5nX2dldF9ycHRyLAogCS5nZXRfd3B0ciA9IHNkbWFfdjVfMF9yaW5nX2dldF93cHRyLAogCS5zZXRfd3B0ciA9IHNkbWFfdjVfMF9yaW5nX3NldF93cHRyLApAQCAtMTU4Myw3ICsxNjI4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyBzZG1hX3Y1XzBfaWxsZWdhbF9pbnN0X2lycV9mdW5jcyA9IHsKIAogc3RhdGljIHZvaWQgc2RtYV92NV8wX3NldF9pcnFfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0JYWRldi0+c2RtYS50cmFwX2lycS5udW1fdHlwZXMgPSBBTURHUFVfU0RNQV9JUlFfTEFTVDsKKwlhZGV2LT5zZG1hLnRyYXBfaXJxLm51bV90eXBlcyA9IEFNREdQVV9TRE1BX0lSUV9JTlNUQU5DRTAgKworCQkJCQlhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7CiAJYWRldi0+c2RtYS50cmFwX2lycS5mdW5jcyA9ICZzZG1hX3Y1XzBfdHJhcF9pcnFfZnVuY3M7CiAJYWRldi0+c2RtYS5pbGxlZ2FsX2luc3RfaXJxLmZ1bmNzID0gJnNkbWFfdjVfMF9pbGxlZ2FsX2luc3RfaXJxX2Z1bmNzOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpLmMKaW5kZXggNGQ3NDQ1My4uNDkzYWY0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaS5jCkBAIC0xMTg2LDYgKzExODYsMTIgQEAgc3RhdGljIGludCBzaV9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgZW51bSBhbWRfcmVzZXRfbWV0aG9kCitzaV9hc2ljX3Jlc2V0X21ldGhvZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwlyZXR1cm4gQU1EX1JFU0VUX01FVEhPRF9MRUdBQ1k7Cit9CisKIHN0YXRpYyB1MzIgc2lfZ2V0X2NvbmZpZ19tZW1zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXJldHVybiBSUkVHMzIobW1DT05GSUdfTUVNU0laRSk7CkBAIC0xMzk0LDYgKzE0MDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9hc2ljX2Z1bmNzIHNpX2FzaWNfZnVuY3MgPQogCS5yZWFkX2Jpb3NfZnJvbV9yb20gPSAmc2lfcmVhZF9iaW9zX2Zyb21fcm9tLAogCS5yZWFkX3JlZ2lzdGVyID0gJnNpX3JlYWRfcmVnaXN0ZXIsCiAJLnJlc2V0ID0gJnNpX2FzaWNfcmVzZXQsCisJLnJlc2V0X21ldGhvZCA9ICZzaV9hc2ljX3Jlc2V0X21ldGhvZCwKIAkuc2V0X3ZnYV9zdGF0ZSA9ICZzaV92Z2Ffc2V0X3N0YXRlLAogCS5nZXRfeGNsayA9ICZzaV9nZXRfeGNsaywKIAkuc2V0X3V2ZF9jbG9ja3MgPSAmc2lfc2V0X3V2ZF9jbG9ja3MsCkBAIC0xODgxLDcgKzE4ODgsNyBAQCBzdGF0aWMgdm9pZCBzaV9wcm9ncmFtX2FzcG0oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQlpZiAob3JpZyAhPSBkYXRhKQogCQkJCXNpX3BpZl9waHkxX3dyZWcoYWRldixQQjFfUElGX1BXUkRPV05fMSwgZGF0YSk7CiAKLQkJCWlmICgoYWRldi0+ZmFtaWx5ICE9IENISVBfT0xBTkQpICYmIChhZGV2LT5mYW1pbHkgIT0gQ0hJUF9IQUlOQU4pKSB7CisJCQlpZiAoKGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX09MQU5EKSAmJiAoYWRldi0+YXNpY190eXBlICE9IENISVBfSEFJTkFOKSkgewogCQkJCW9yaWcgPSBkYXRhID0gc2lfcGlmX3BoeTBfcnJlZyhhZGV2LFBCMF9QSUZfUFdSRE9XTl8wKTsKIAkJCQlkYXRhICY9IH5QTExfUkFNUF9VUF9USU1FXzBfTUFTSzsKIAkJCQlpZiAob3JpZyAhPSBkYXRhKQpAQCAtMTkzMCwxNCArMTkzNywxNCBAQCBzdGF0aWMgdm9pZCBzaV9wcm9ncmFtX2FzcG0oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIAkJCW9yaWcgPSBkYXRhID0gc2lfcGlmX3BoeTBfcnJlZyhhZGV2LFBCMF9QSUZfQ05UTCk7CiAJCQlkYXRhICY9IH5MUzJfRVhJVF9USU1FX01BU0s7Ci0JCQlpZiAoKGFkZXYtPmZhbWlseSA9PSBDSElQX09MQU5EKSB8fCAoYWRldi0+ZmFtaWx5ID09IENISVBfSEFJTkFOKSkKKwkJCWlmICgoYWRldi0+YXNpY190eXBlID09IENISVBfT0xBTkQpIHx8IChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9IQUlOQU4pKQogCQkJCWRhdGEgfD0gTFMyX0VYSVRfVElNRSg1KTsKIAkJCWlmIChvcmlnICE9IGRhdGEpCiAJCQkJc2lfcGlmX3BoeTBfd3JlZyhhZGV2LFBCMF9QSUZfQ05UTCwgZGF0YSk7CiAKIAkJCW9yaWcgPSBkYXRhID0gc2lfcGlmX3BoeTFfcnJlZyhhZGV2LFBCMV9QSUZfQ05UTCk7CiAJCQlkYXRhICY9IH5MUzJfRVhJVF9USU1FX01BU0s7Ci0JCQlpZiAoKGFkZXYtPmZhbWlseSA9PSBDSElQX09MQU5EKSB8fCAoYWRldi0+ZmFtaWx5ID09IENISVBfSEFJTkFOKSkKKwkJCWlmICgoYWRldi0+YXNpY190eXBlID09IENISVBfT0xBTkQpIHx8IChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9IQUlOQU4pKQogCQkJCWRhdGEgfD0gTFMyX0VYSVRfVElNRSg1KTsKIAkJCWlmIChvcmlnICE9IGRhdGEpCiAJCQkJc2lfcGlmX3BoeTFfd3JlZyhhZGV2LFBCMV9QSUZfQ05UTCwgZGF0YSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zbXVfdjExXzBfaTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zbXVfdjExXzBfaTJjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ0NzIzYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NtdV92MTFfMF9pMmMuYwpAQCAtMCwwICsxLDczMiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgInNtdWlvL3NtdWlvXzExXzBfMF9vZmZzZXQuaCIKKyNpbmNsdWRlICJzbXVpby9zbXVpb18xMV8wXzBfc2hfbWFzay5oIgorCisjaW5jbHVkZSAic211X3YxMV8wX2kyYy5oIgorI2luY2x1ZGUgImFtZGdwdS5oIgorI2luY2x1ZGUgInNvYzE1X2NvbW1vbi5oIgorI2luY2x1ZGUgPGRybS9kcm1fZml4ZWQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgImFtZGdwdV9hbWRrZmQuaCIKKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlICJhbWRncHVfcmFzLmgiCisKKy8qIGVycm9yIGNvZGVzICovCisjZGVmaW5lIEkyQ19PSyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEkyQ19OQUtfN0JfQUREUl9OT0FDSyAxCisjZGVmaW5lIEkyQ19OQUtfVFhEQVRBX05PQUNLICAyCisjZGVmaW5lIEkyQ19USU1FT1VUICAgICAgICAgICA0CisjZGVmaW5lIEkyQ19TV19USU1FT1VUICAgICAgICA4CisjZGVmaW5lIEkyQ19BQk9SVCAgICAgICAgICAgICAweDEwCisKKy8qIEkyQyB0cmFuc2FjdGlvbiBmbGFncyAqLworI2RlZmluZSBJMkNfTk9fU1RPUAkxCisjZGVmaW5lIEkyQ19SRVNUQVJUCTIKKworI2RlZmluZSB0b19hbWRncHVfZGV2aWNlKHgpIChjb250YWluZXJfb2YoeCwgc3RydWN0IGFtZGdwdV9yYXMsIGVlcHJvbV9jb250cm9sLmVlcHJvbV9hY2Nlc3NvcikpLT5hZGV2CisjZGVmaW5lIHRvX2VlcHJvbV9jb250cm9sKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCwgZWVwcm9tX2FjY2Vzc29yKQorCitzdGF0aWMgdm9pZCBzbXVfdjExXzBfaTJjX3NldF9jbG9ja19nYXRpbmcoc3RydWN0IGkyY19hZGFwdGVyICpjb250cm9sLCBib29sIGVuKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gdG9fYW1kZ3B1X2RldmljZShjb250cm9sKTsKKwl1aW50MzJfdCByZWcgPSBSUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tU01VSU9fUFdSTUdUKTsKKworCXJlZyA9IFJFR19TRVRfRklFTEQocmVnLCBTTVVJT19QV1JNR1QsIGkyY19jbGtfZ2F0ZV9lbiwgZW4gPyAxIDogMCk7CisJV1JFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbVNNVUlPX1BXUk1HVCwgcmVnKTsKK30KKworCitzdGF0aWMgdm9pZCBzbXVfdjExXzBfaTJjX2VuYWJsZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmNvbnRyb2wsIGJvb2wgZW5hYmxlKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gdG9fYW1kZ3B1X2RldmljZShjb250cm9sKTsKKworCVdSRUczMl9TT0MxNShTTVVJTywgMCwgbW1DS1NWSUkyQ19JQ19FTkFCTEUsIGVuYWJsZSA/IDEgOiAwKTsKK30KKworc3RhdGljIHZvaWQgc211X3YxMV8wX2kyY19jbGVhcl9zdGF0dXMoc3RydWN0IGkyY19hZGFwdGVyICpjb250cm9sKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gdG9fYW1kZ3B1X2RldmljZShjb250cm9sKTsKKwkvKiBkbyAqLworCXsKKwkJUlJFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbUNLU1ZJSTJDX0lDX0NMUl9JTlRSKTsKKworCX0gLyogd2hpbGUgKHJlZ19DS1NWSUkyQ19pY19jbHJfaW50ciA9PSAwKSAqLworfQorCitzdGF0aWMgdm9pZCBzbXVfdjExXzBfaTJjX2NvbmZpZ3VyZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmNvbnRyb2wpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSB0b19hbWRncHVfZGV2aWNlKGNvbnRyb2wpOworCXVpbnQzMl90IHJlZyA9IDA7CisKKwlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfQ09OLCBJQ19TTEFWRV9ESVNBQkxFLCAxKTsKKwlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfQ09OLCBJQ19SRVNUQVJUX0VOLCAxKTsKKwlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfQ09OLCBJQ18xMEJJVEFERFJfTUFTVEVSLCAwKTsKKwlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfQ09OLCBJQ18xMEJJVEFERFJfU0xBVkUsIDApOworCS8qIFN0YW5kYXJkIG1vZGUgKi8KKwlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfQ09OLCBJQ19NQVhfU1BFRURfTU9ERSwgMik7CisJcmVnID0gUkVHX1NFVF9GSUVMRChyZWcsIENLU1ZJSTJDX0lDX0NPTiwgSUNfTUFTVEVSX01PREUsIDEpOworCisJV1JFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbUNLU1ZJSTJDX0lDX0NPTiwgcmVnKTsKK30KKworc3RhdGljIHZvaWQgc211X3YxMV8wX2kyY19zZXRfY2xvY2soc3RydWN0IGkyY19hZGFwdGVyICpjb250cm9sKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gdG9fYW1kZ3B1X2RldmljZShjb250cm9sKTsKKworCS8qCisJICogU3RhbmRhcmQgbW9kZSBzcGVlZCwgVGhlc2UgdmFsdWVzIGFyZSB0YWtlbiBmcm9tIFNNVUlPIE1BUywKKwkgKiBidXQgYXJlIGRpZmZlcmVudCBmcm9tIHdoYXQgaXMgZ2l2ZW4gaXMKKwkgKiBTeW5vcHN5cyBzcGVjLiBUaGUgdmFsdWVzIGhlcmUgYXJlIGJhc2VkIG9uIGFzc3VtcHRpb24KKwkgKiB0aGF0IHJlZmNsb2NrIGlzIDEwME1IegorCSAqCisJICogQ29uZmlndXJhdGlvbiBmb3Igc3RhbmRhcmQgbW9kZTsgU3BlZWQgPSAxMDBrYnBzCisJICogU2NhbGUgbGluZWFybHksIGZvciBub3cgb25seSBzdXBwb3J0IHN0YW5kYXJkIHNwZWVkIGNsb2NrCisJICogVGhpcyB3aWxsIHdvcmsgb25seSB3aXRoIDEwME0gcmVmIGNsb2NrCisJICoKKwkgKiBUQkQ6Q2hhbmdlIHRoZSBjYWxjdWxhdGlvbiB0byB0YWtlIGludG8gYWNjb3VudCByZWYgY2xvY2sgdmFsdWVzIGFsc28uCisJICovCisKKwlXUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tQ0tTVklJMkNfSUNfRlNfU1BLTEVOLCAyKTsKKwlXUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tQ0tTVklJMkNfSUNfU1NfU0NMX0hDTlQsIDEyMCk7CisJV1JFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbUNLU1ZJSTJDX0lDX1NTX1NDTF9MQ05ULCAxMzApOworCVdSRUczMl9TT0MxNShTTVVJTywgMCwgbW1DS1NWSUkyQ19JQ19TREFfSE9MRCwgMjApOworfQorCitzdGF0aWMgdm9pZCBzbXVfdjExXzBfaTJjX3NldF9hZGRyZXNzKHN0cnVjdCBpMmNfYWRhcHRlciAqY29udHJvbCwgdWludDhfdCBhZGRyZXNzKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gdG9fYW1kZ3B1X2RldmljZShjb250cm9sKTsKKworCS8qIENvbnZlcnQgZnJvbXIgOC1iaXQgdG8gNy1iaXQgYWRkcmVzcyAqLworCWFkZHJlc3MgPj49IDE7CisJV1JFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbUNLU1ZJSTJDX0lDX1RBUiwgKGFkZHJlc3MgJiAweEZGKSk7Cit9CisKK3N0YXRpYyB1aW50MzJfdCBzbXVfdjExXzBfaTJjX3BvbGxfdHhfc3RhdHVzKHN0cnVjdCBpMmNfYWRhcHRlciAqY29udHJvbCkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHRvX2FtZGdwdV9kZXZpY2UoY29udHJvbCk7CisJdWludDMyX3QgcmV0ID0gSTJDX09LOworCXVpbnQzMl90IHJlZywgcmVnX2NfdHhfYWJydF9zb3VyY2U7CisKKwkvKkNoZWNrIGlmIHRyYW5zbWlzc2lvbiBpcyBjb21wbGV0ZWQgKi8KKwl1bnNpZ25lZCBsb25nICB0aW1lb3V0X2NvdW50ZXIgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygyMCk7CisKKwlkbyB7CisJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXRfY291bnRlcikpIHsKKwkJCXJldCB8PSBJMkNfU1dfVElNRU9VVDsKKwkJCWJyZWFrOworCQl9CisKKwkJcmVnID0gUlJFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbUNLU1ZJSTJDX0lDX1NUQVRVUyk7CisKKwl9IHdoaWxlIChSRUdfR0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfU1RBVFVTLCBURkUpID09IDApOworCisJaWYgKHJldCAhPSBJMkNfT0spCisJCXJldHVybiByZXQ7CisKKwkvKiBUaGlzIG9ubHkgY2hlY2tzIGlmIE5BSyBpcyByZWNlaXZlZCBhbmQgdHJhbnNhY3Rpb24gZ290IGFib3J0ZWQgKi8KKwlyZWcgPSBSUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tQ0tTVklJMkNfSUNfSU5UUl9TVEFUKTsKKworCWlmIChSRUdfR0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfSU5UUl9TVEFULCBSX1RYX0FCUlQpID09IDEpIHsKKwkJcmVnX2NfdHhfYWJydF9zb3VyY2UgPSBSUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tQ0tTVklJMkNfSUNfVFhfQUJSVF9TT1VSQ0UpOworCQlEUk1fSU5GTygiVFggd2FzIHRlcm1pbmF0ZWQsIElDX1RYX0FCUlRfU09VUkNFIHZhbCBpczoleCIsIHJlZ19jX3R4X2FicnRfc291cmNlKTsKKworCQkvKiBDaGVjayBmb3Igc3RvcCBkdWUgdG8gTkFDSyAqLworCQlpZiAoUkVHX0dFVF9GSUVMRChyZWdfY190eF9hYnJ0X3NvdXJjZSwKKwkJCQkgIENLU1ZJSTJDX0lDX1RYX0FCUlRfU09VUkNFLAorCQkJCSAgQUJSVF9UWERBVEFfTk9BQ0spID09IDEpIHsKKworCQkJcmV0IHw9IEkyQ19OQUtfVFhEQVRBX05PQUNLOworCisJCX0gZWxzZSBpZiAoUkVHX0dFVF9GSUVMRChyZWdfY190eF9hYnJ0X3NvdXJjZSwKKwkJCQkJIENLU1ZJSTJDX0lDX1RYX0FCUlRfU09VUkNFLAorCQkJCQkgQUJSVF83Ql9BRERSX05PQUNLKSA9PSAxKSB7CisKKwkJCXJldCB8PSBJMkNfTkFLXzdCX0FERFJfTk9BQ0s7CisJCX0gZWxzZSB7CisJCQlyZXQgfD0gSTJDX0FCT1JUOworCQl9CisKKwkJc211X3YxMV8wX2kyY19jbGVhcl9zdGF0dXMoY29udHJvbCk7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHVpbnQzMl90IHNtdV92MTFfMF9pMmNfcG9sbF9yeF9zdGF0dXMoc3RydWN0IGkyY19hZGFwdGVyICpjb250cm9sKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gdG9fYW1kZ3B1X2RldmljZShjb250cm9sKTsKKwl1aW50MzJfdCByZXQgPSBJMkNfT0s7CisJdWludDMyX3QgcmVnX2ljX3N0YXR1cywgcmVnX2NfdHhfYWJydF9zb3VyY2U7CisKKwlyZWdfY190eF9hYnJ0X3NvdXJjZSA9IFJSRUczMl9TT0MxNShTTVVJTywgMCwgbW1DS1NWSUkyQ19JQ19UWF9BQlJUX1NPVVJDRSk7CisKKwkvKiBJZiBzbGF2ZSBpcyBub3QgcHJlc2VudCAqLworCWlmIChSRUdfR0VUX0ZJRUxEKHJlZ19jX3R4X2FicnRfc291cmNlLAorCQkJICBDS1NWSUkyQ19JQ19UWF9BQlJUX1NPVVJDRSwKKwkJCSAgQUJSVF83Ql9BRERSX05PQUNLKSA9PSAxKSB7CisJCXJldCB8PSBJMkNfTkFLXzdCX0FERFJfTk9BQ0s7CisKKwkJc211X3YxMV8wX2kyY19jbGVhcl9zdGF0dXMoY29udHJvbCk7CisJfSBlbHNlIHsgIC8qIHdhaXQgdGlsbCBzb21lIGRhdGEgaXMgdGhlcmUgaW4gUlhGSUZPICovCisJCS8qIFBvbGwgZm9yIHNvbWUgYnl0ZSBpbiBSWEZJRk8gKi8KKwkJdW5zaWduZWQgbG9uZyAgdGltZW91dF9jb3VudGVyID0gamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMjApOworCisJCWRvIHsKKwkJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXRfY291bnRlcikpIHsKKwkJCQlyZXQgfD0gSTJDX1NXX1RJTUVPVVQ7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCXJlZ19pY19zdGF0dXMgPSBSUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tQ0tTVklJMkNfSUNfU1RBVFVTKTsKKworCQl9IHdoaWxlIChSRUdfR0VUX0ZJRUxEKHJlZ19pY19zdGF0dXMsIENLU1ZJSTJDX0lDX1NUQVRVUywgUkZORSkgPT0gMCk7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworCisKKworLyoqCisgKiBzbXVfdjExXzBfaTJjX3RyYW5zbWl0IC0gU2VuZCBhIGJsb2NrIG9mIGRhdGEgb3ZlciB0aGUgSTJDIGJ1cyB0byBhIHNsYXZlIGRldmljZS4KKyAqCisgKiBAYWRkcmVzczogVGhlIEkyQyBhZGRyZXNzIG9mIHRoZSBzbGF2ZSBkZXZpY2UuCisgKiBAZGF0YTogVGhlIGRhdGEgdG8gdHJhbnNtaXQgb3ZlciB0aGUgYnVzLgorICogQG51bWJ5dGVzOiBUaGUgYW1vdW50IG9mIGRhdGEgdG8gdHJhbnNtaXQuCisgKiBAaTJjX2ZsYWc6IEZsYWdzIGZvciB0cmFuc21pc3Npb24KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBlcnJvci4KKyAqLworc3RhdGljIHVpbnQzMl90IHNtdV92MTFfMF9pMmNfdHJhbnNtaXQoc3RydWN0IGkyY19hZGFwdGVyICpjb250cm9sLAorCQkJCSAgdWludDhfdCBhZGRyZXNzLCB1aW50OF90ICpkYXRhLAorCQkJCSAgdWludDMyX3QgbnVtYnl0ZXMsIHVpbnQzMl90IGkyY19mbGFnKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gdG9fYW1kZ3B1X2RldmljZShjb250cm9sKTsKKwl1aW50MzJfdCBieXRlc19zZW50LCByZWcsIHJldCA9IDA7CisJdW5zaWduZWQgbG9uZyAgdGltZW91dF9jb3VudGVyOworCisJYnl0ZXNfc2VudCA9IDA7CisKKwlEUk1fREVCVUdfRFJJVkVSKCJJMkNfVHJhbnNtaXQoKSwgYWRkcmVzcyA9ICV4LCBieXRlcyA9ICVkICwgZGF0YTogIiwKKwkJICh1aW50MTZfdClhZGRyZXNzLCBudW1ieXRlcyk7CisKKwlpZiAoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikgeworCQlwcmludF9oZXhfZHVtcChLRVJOX0lORk8sICJkYXRhOiAiLCBEVU1QX1BSRUZJWF9OT05FLAorCQkJICAgICAgIDE2LCAxLCBkYXRhLCBudW1ieXRlcywgZmFsc2UpOworCX0KKworCS8qIFNldCB0aGUgSTJDIHNsYXZlIGFkZHJlc3MgKi8KKwlzbXVfdjExXzBfaTJjX3NldF9hZGRyZXNzKGNvbnRyb2wsIGFkZHJlc3MpOworCS8qIEVuYWJsZSBJMkMgKi8KKwlzbXVfdjExXzBfaTJjX2VuYWJsZShjb250cm9sLCB0cnVlKTsKKworCS8qIENsZWFyIHN0YXR1cyBiaXRzICovCisJc211X3YxMV8wX2kyY19jbGVhcl9zdGF0dXMoY29udHJvbCk7CisKKworCXRpbWVvdXRfY291bnRlciA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDIwKTsKKworCXdoaWxlIChudW1ieXRlcyA+IDApIHsKKwkJcmVnID0gUlJFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbUNLU1ZJSTJDX0lDX1NUQVRVUyk7CisJCWlmIChSRUdfR0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfU1RBVFVTLCBURk5GKSkgeworCQkJZG8geworCQkJCXJlZyA9IDA7CisJCQkJLyoKKwkJCQkgKiBQcmVwYXJlIHRyYW5zYWN0aW9uLCBubyBuZWVkIHRvIHNldCBSRVNUQVJULiBJMkMgZW5naW5lIHdpbGwgc2VuZAorCQkJCSAqIFNUQVJUIGFzIHNvb24gYXMgaXQgc2VlcyBkYXRhIGluIFRYRklGTworCQkJCSAqLworCQkJCWlmIChieXRlc19zZW50ID09IDApCisJCQkJCXJlZyA9IFJFR19TRVRfRklFTEQocmVnLCBDS1NWSUkyQ19JQ19EQVRBX0NNRCwgUkVTVEFSVCwKKwkJCQkJCQkgICAgKGkyY19mbGFnICYgSTJDX1JFU1RBUlQpID8gMSA6IDApOworCQkJCXJlZyA9IFJFR19TRVRfRklFTEQocmVnLCBDS1NWSUkyQ19JQ19EQVRBX0NNRCwgREFULCBkYXRhW2J5dGVzX3NlbnRdKTsKKworCQkJCS8qIGRldGVybWluZSBpZiB3ZSBuZWVkIHRvIHNlbmQgU1RPUCBiaXQgb3Igbm90ICovCisJCQkJaWYgKG51bWJ5dGVzID09IDEpCisJCQkJCS8qIEZpbmFsIHRyYW5zYWN0aW9uLCBzbyBzZW5kIHN0b3AgdW5sZXNzIEkyQ19OT19TVE9QICovCisJCQkJCXJlZyA9IFJFR19TRVRfRklFTEQocmVnLCBDS1NWSUkyQ19JQ19EQVRBX0NNRCwgU1RPUCwKKwkJCQkJCQkgICAgKGkyY19mbGFnICYgSTJDX05PX1NUT1ApID8gMCA6IDEpOworCQkJCS8qIFdyaXRlICovCisJCQkJcmVnID0gUkVHX1NFVF9GSUVMRChyZWcsIENLU1ZJSTJDX0lDX0RBVEFfQ01ELCBDTUQsIDApOworCQkJCVdSRUczMl9TT0MxNShTTVVJTywgMCwgbW1DS1NWSUkyQ19JQ19EQVRBX0NNRCwgcmVnKTsKKworCQkJCS8qIFJlY29yZCB0aGF0IHRoZSBieXRlcyB3ZXJlIHRyYW5zbWl0dGVkICovCisJCQkJYnl0ZXNfc2VudCsrOworCQkJCW51bWJ5dGVzLS07CisKKwkJCQlyZWcgPSBSUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tQ0tTVklJMkNfSUNfU1RBVFVTKTsKKworCQkJfSB3aGlsZSAobnVtYnl0ZXMgJiYgIFJFR19HRVRfRklFTEQocmVnLCBDS1NWSUkyQ19JQ19TVEFUVVMsIFRGTkYpKTsKKwkJfQorCisJCS8qCisJCSAqIFdlIHdhaXRlZCB0b28gbG9uZyBmb3IgdGhlIHRyYW5zbWlzc2lvbiBGSUZPIHRvIGJlY29tZSBub3QtZnVsbC4KKwkJICogRXhpdCB0aGUgbG9vcCB3aXRoIGVycm9yLgorCQkgKi8KKwkJaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgdGltZW91dF9jb3VudGVyKSkgeworCQkJcmV0IHw9IEkyQ19TV19USU1FT1VUOworCQkJZ290byBFcnI7CisJCX0KKwl9CisKKwlyZXQgPSBzbXVfdjExXzBfaTJjX3BvbGxfdHhfc3RhdHVzKGNvbnRyb2wpOworCitFcnI6CisJLyogQW55IGVycm9yLCBubyBwb2ludCBpbiBwcm9jZWVkaW5nICovCisJaWYgKHJldCAhPSBJMkNfT0spIHsKKwkJaWYgKHJldCAmIEkyQ19TV19USU1FT1VUKQorCQkJRFJNX0VSUk9SKCJUSU1FT1VUIEVSUk9SICEhISIpOworCisJCWlmIChyZXQgJiBJMkNfTkFLXzdCX0FERFJfTk9BQ0spCisJCQlEUk1fRVJST1IoIlJlY2VpdmVkIEkyQ19OQUtfN0JfQUREUl9OT0FDSyAhISEiKTsKKworCisJCWlmIChyZXQgJiBJMkNfTkFLX1RYREFUQV9OT0FDSykKKwkJCURSTV9FUlJPUigiUmVjZWl2ZWQgSTJDX05BS19UWERBVEFfTk9BQ0sgISEhIik7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworCisvKioKKyAqIHNtdV92MTFfMF9pMmNfcmVjZWl2ZSAtIFJlY2VpdmUgYSBibG9jayBvZiBkYXRhIG92ZXIgdGhlIEkyQyBidXMgZnJvbSBhIHNsYXZlIGRldmljZS4KKyAqCisgKiBAYWRkcmVzczogVGhlIEkyQyBhZGRyZXNzIG9mIHRoZSBzbGF2ZSBkZXZpY2UuCisgKiBAbnVtYnl0ZXM6IFRoZSBhbW91bnQgb2YgZGF0YSB0byB0cmFuc21pdC4KKyAqIEBpMmNfZmxhZzogRmxhZ3MgZm9yIHRyYW5zbWlzc2lvbgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGVycm9yLgorICovCitzdGF0aWMgdWludDMyX3Qgc211X3YxMV8wX2kyY19yZWNlaXZlKHN0cnVjdCBpMmNfYWRhcHRlciAqY29udHJvbCwKKwkJCQkgdWludDhfdCBhZGRyZXNzLCB1aW50OF90ICpkYXRhLAorCQkJCSB1aW50MzJfdCBudW1ieXRlcywgdWludDhfdCBpMmNfZmxhZykKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHRvX2FtZGdwdV9kZXZpY2UoY29udHJvbCk7CisJdWludDMyX3QgYnl0ZXNfcmVjZWl2ZWQsIHJldCA9IEkyQ19PSzsKKworCWJ5dGVzX3JlY2VpdmVkID0gMDsKKworCS8qIFNldCB0aGUgSTJDIHNsYXZlIGFkZHJlc3MgKi8KKwlzbXVfdjExXzBfaTJjX3NldF9hZGRyZXNzKGNvbnRyb2wsIGFkZHJlc3MpOworCisJLyogRW5hYmxlIEkyQyAqLworCXNtdV92MTFfMF9pMmNfZW5hYmxlKGNvbnRyb2wsIHRydWUpOworCisJd2hpbGUgKG51bWJ5dGVzID4gMCkgeworCQl1aW50MzJfdCByZWcgPSAwOworCisJCXNtdV92MTFfMF9pMmNfY2xlYXJfc3RhdHVzKGNvbnRyb2wpOworCisKKwkJLyogUHJlcGFyZSB0cmFuc2FjdGlvbiAqLworCisJCS8qIEVhY2ggdGltZSB3ZSBkaXNhYmxlIEkyQywgc28gdGhpcyBpcyBub3QgYSByZXN0YXJ0ICovCisJCWlmIChieXRlc19yZWNlaXZlZCA9PSAwKQorCQkJcmVnID0gUkVHX1NFVF9GSUVMRChyZWcsIENLU1ZJSTJDX0lDX0RBVEFfQ01ELCBSRVNUQVJULAorCQkJCQkgICAgKGkyY19mbGFnICYgSTJDX1JFU1RBUlQpID8gMSA6IDApOworCisJCXJlZyA9IFJFR19TRVRfRklFTEQocmVnLCBDS1NWSUkyQ19JQ19EQVRBX0NNRCwgREFULCAwKTsKKwkJLyogUmVhZCAqLworCQlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfREFUQV9DTUQsIENNRCwgMSk7CisKKwkJLyogVHJhbnNtaXR0aW5nIGxhc3QgYnl0ZSAqLworCQlpZiAobnVtYnl0ZXMgPT0gMSkKKwkJCS8qIEZpbmFsIHRyYW5zYWN0aW9uLCBzbyBzZW5kIHN0b3AgaWYgcmVxdWVzdGVkICovCisJCQlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgQ0tTVklJMkNfSUNfREFUQV9DTUQsIFNUT1AsCisJCQkJCSAgICAoaTJjX2ZsYWcgJiBJMkNfTk9fU1RPUCkgPyAwIDogMSk7CisKKwkJV1JFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbUNLU1ZJSTJDX0lDX0RBVEFfQ01ELCByZWcpOworCisJCXJldCA9IHNtdV92MTFfMF9pMmNfcG9sbF9yeF9zdGF0dXMoY29udHJvbCk7CisKKwkJLyogQW55IGVycm9yLCBubyBwb2ludCBpbiBwcm9jZWVkaW5nICovCisJCWlmIChyZXQgIT0gSTJDX09LKSB7CisJCQlpZiAocmV0ICYgSTJDX1NXX1RJTUVPVVQpCisJCQkJRFJNX0VSUk9SKCJUSU1FT1VUIEVSUk9SICEhISIpOworCisJCQlpZiAocmV0ICYgSTJDX05BS183Ql9BRERSX05PQUNLKQorCQkJCURSTV9FUlJPUigiUmVjZWl2ZWQgSTJDX05BS183Ql9BRERSX05PQUNLICEhISIpOworCisJCQlpZiAocmV0ICYgSTJDX05BS19UWERBVEFfTk9BQ0spCisJCQkJRFJNX0VSUk9SKCJSZWNlaXZlZCBJMkNfTkFLX1RYREFUQV9OT0FDSyAhISEiKTsKKworCQkJYnJlYWs7CisJCX0KKworCQlyZWcgPSBSUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tQ0tTVklJMkNfSUNfREFUQV9DTUQpOworCQlkYXRhW2J5dGVzX3JlY2VpdmVkXSA9IFJFR19HRVRfRklFTEQocmVnLCBDS1NWSUkyQ19JQ19EQVRBX0NNRCwgREFUKTsKKworCQkvKiBSZWNvcmQgdGhhdCB0aGUgYnl0ZXMgd2VyZSByZWNlaXZlZCAqLworCQlieXRlc19yZWNlaXZlZCsrOworCQludW1ieXRlcy0tOworCX0KKworCURSTV9ERUJVR19EUklWRVIoIkkyQ19SZWNlaXZlKCksIGFkZHJlc3MgPSAleCwgYnl0ZXMgPSAlZCwgZGF0YSA6IiwKKwkJICAodWludDE2X3QpYWRkcmVzcywgYnl0ZXNfcmVjZWl2ZWQpOworCisJaWYgKGRybV9kZWJ1ZyAmIERSTV9VVF9EUklWRVIpIHsKKwkJcHJpbnRfaGV4X2R1bXAoS0VSTl9JTkZPLCAiZGF0YTogIiwgRFVNUF9QUkVGSVhfTk9ORSwKKwkJCSAgICAgICAxNiwgMSwgZGF0YSwgYnl0ZXNfcmVjZWl2ZWQsIGZhbHNlKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBzbXVfdjExXzBfaTJjX2Fib3J0KHN0cnVjdCBpMmNfYWRhcHRlciAqY29udHJvbCkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHRvX2FtZGdwdV9kZXZpY2UoY29udHJvbCk7CisJdWludDMyX3QgcmVnID0gMDsKKworCS8qIEVuYWJsZSBJMkMgZW5naW5lOyAqLworCXJlZyA9IFJFR19TRVRfRklFTEQocmVnLCBDS1NWSUkyQ19JQ19FTkFCTEUsIEVOQUJMRSwgMSk7CisJV1JFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbUNLU1ZJSTJDX0lDX0VOQUJMRSwgcmVnKTsKKworCS8qIEFib3J0IHByZXZpb3VzIHRyYW5zYWN0aW9uICovCisJcmVnID0gUkVHX1NFVF9GSUVMRChyZWcsIENLU1ZJSTJDX0lDX0VOQUJMRSwgQUJPUlQsIDEpOworCVdSRUczMl9TT0MxNShTTVVJTywgMCwgbW1DS1NWSUkyQ19JQ19FTkFCTEUsIHJlZyk7CisKKwlEUk1fREVCVUdfRFJJVkVSKCJJMkNfQWJvcnQoKSBEb25lLiIpOworfQorCisKK3N0YXRpYyBib29sIHNtdV92MTFfMF9pMmNfYWN0aXZpdHlfZG9uZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmNvbnRyb2wpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSB0b19hbWRncHVfZGV2aWNlKGNvbnRyb2wpOworCisJY29uc3QgdWludDMyX3QgSURMRV9USU1FT1VUID0gMTAyNDsKKwl1aW50MzJfdCB0aW1lb3V0X2NvdW50ID0gMDsKKwl1aW50MzJfdCByZWdfaWNfZW5hYmxlLCByZWdfaWNfZW5hYmxlX3N0YXR1cywgcmVnX2ljX2Nscl9hY3Rpdml0eTsKKworCXJlZ19pY19lbmFibGVfc3RhdHVzID0gUlJFRzMyX1NPQzE1KFNNVUlPLCAwLCBtbUNLU1ZJSTJDX0lDX0VOQUJMRV9TVEFUVVMpOworCXJlZ19pY19lbmFibGUgPSBSUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tQ0tTVklJMkNfSUNfRU5BQkxFKTsKKworCisJaWYgKChSRUdfR0VUX0ZJRUxEKHJlZ19pY19lbmFibGUsIENLU1ZJSTJDX0lDX0VOQUJMRSwgRU5BQkxFKSA9PSAwKSAmJgorCSAgICAoUkVHX0dFVF9GSUVMRChyZWdfaWNfZW5hYmxlX3N0YXR1cywgQ0tTVklJMkNfSUNfRU5BQkxFX1NUQVRVUywgSUNfRU4pID09IDEpKSB7CisJCS8qCisJCSAqIE5vYm9keSBpcyB1c2luZyBJMkMgZW5naW5lLCBidXQgZW5naW5lIHJlbWFpbnMgYWN0aXZlIGJlY2F1c2UKKwkJICogc29tZW9uZSBtaXNzZWQgdG8gc2VuZCBTVE9QCisJCSAqLworCQlzbXVfdjExXzBfaTJjX2Fib3J0KGNvbnRyb2wpOworCX0gZWxzZSBpZiAoUkVHX0dFVF9GSUVMRChyZWdfaWNfZW5hYmxlLCBDS1NWSUkyQ19JQ19FTkFCTEUsIEVOQUJMRSkgPT0gMCkgeworCQkvKiBOb2JvZHkgaXMgdXNpbmcgSTJDIGVuZ2luZSAqLworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwkvKiBLZWVwIHJlYWRpbmcgYWN0aXZpdHkgYml0IHVudGlsIGl0J3MgY2xlYXJlZCAqLworCWRvIHsKKwkJcmVnX2ljX2Nscl9hY3Rpdml0eSA9IFJSRUczMl9TT0MxNShTTVVJTywgMCwgbW1DS1NWSUkyQ19JQ19DTFJfQUNUSVZJVFkpOworCisJCWlmIChSRUdfR0VUX0ZJRUxEKHJlZ19pY19jbHJfYWN0aXZpdHksCisJCSAgICBDS1NWSUkyQ19JQ19DTFJfQUNUSVZJVFksIENMUl9BQ1RJVklUWSkgPT0gMCkKKwkJCXJldHVybiB0cnVlOworCisJCSsrdGltZW91dF9jb3VudDsKKworCX0gd2hpbGUgKHRpbWVvdXRfY291bnQgPCBJRExFX1RJTUVPVVQpOworCisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBzbXVfdjExXzBfaTJjX2luaXQoc3RydWN0IGkyY19hZGFwdGVyICpjb250cm9sKQoreworCS8qIERpc2FibGUgY2xvY2sgZ2F0aW5nICovCisJc211X3YxMV8wX2kyY19zZXRfY2xvY2tfZ2F0aW5nKGNvbnRyb2wsIGZhbHNlKTsKKworCWlmICghc211X3YxMV8wX2kyY19hY3Rpdml0eV9kb25lKGNvbnRyb2wpKQorCQlEUk1fV0FSTigiSTJDIGJ1c3kgISIpOworCisJLyogRGlzYWJsZSBJMkMgKi8KKwlzbXVfdjExXzBfaTJjX2VuYWJsZShjb250cm9sLCBmYWxzZSk7CisKKwkvKiBDb25maWd1cmUgSTJDIHRvIG9wZXJhdGUgYXMgbWFzdGVyIGFuZCBpbiBzdGFuZGFyZCBtb2RlICovCisJc211X3YxMV8wX2kyY19jb25maWd1cmUoY29udHJvbCk7CisKKwkvKiBJbml0aWFsaXplIHRoZSBjbG9jayB0byA1MCBrSHogZGVmYXVsdCAqLworCXNtdV92MTFfMF9pMmNfc2V0X2Nsb2NrKGNvbnRyb2wpOworCit9CisKK3N0YXRpYyB2b2lkIHNtdV92MTFfMF9pMmNfZmluaShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmNvbnRyb2wpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSB0b19hbWRncHVfZGV2aWNlKGNvbnRyb2wpOworCXVpbnQzMl90IHJlZ19pY19lbmFibGVfc3RhdHVzLCByZWdfaWNfZW5hYmxlOworCisJc211X3YxMV8wX2kyY19lbmFibGUoY29udHJvbCwgZmFsc2UpOworCisJLyogRG91YmxlIGNoZWNrIGlmIGRpc2FibGVkLCBlbHNlIGZvcmNlIGFib3J0ICovCisJcmVnX2ljX2VuYWJsZV9zdGF0dXMgPSBSUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tQ0tTVklJMkNfSUNfRU5BQkxFX1NUQVRVUyk7CisJcmVnX2ljX2VuYWJsZSA9IFJSRUczMl9TT0MxNShTTVVJTywgMCwgbW1DS1NWSUkyQ19JQ19FTkFCTEUpOworCisJaWYgKChSRUdfR0VUX0ZJRUxEKHJlZ19pY19lbmFibGUsIENLU1ZJSTJDX0lDX0VOQUJMRSwgRU5BQkxFKSA9PSAwKSAmJgorCSAgICAoUkVHX0dFVF9GSUVMRChyZWdfaWNfZW5hYmxlX3N0YXR1cywKKwkJCSAgIENLU1ZJSTJDX0lDX0VOQUJMRV9TVEFUVVMsIElDX0VOKSA9PSAxKSkgeworCQkvKgorCQkgKiBOb2JvZHkgaXMgdXNpbmcgSTJDIGVuZ2luZSwgYnV0IGVuZ2luZSByZW1haW5zIGFjdGl2ZSBiZWNhdXNlCisJCSAqIHNvbWVvbmUgbWlzc2VkIHRvIHNlbmQgU1RPUAorCQkgKi8KKwkJc211X3YxMV8wX2kyY19hYm9ydChjb250cm9sKTsKKwl9CisKKwkvKiBSZXN0b3JlIGNsb2NrIGdhdGluZyAqLworCisJLyoKKwkgKiBUT0RPIFJlZW5hYmxpbmcgY2xvY2sgZ2F0aW5nIHNlZW1zIHRvIGJyZWFrIHN1YnNlcXVlbnQgU01VIG9wZXJhdGlvbgorCSAqICAgICAgb24gdGhlIEkyQyBidXMuIE15IGd1ZXNzIGlzIHRoYXQgU01VIGRvZXNuJ3QgZGlzYWJsZSBjbG9jayBnYXRpbmcgbGlrZQorCSAqICAgICAgd2UgZG8gaGVyZSBiZWZvcmUgd29ya2luZyB3aXRoIHRoZSBidXMuIFNvIGZvciBub3cganVzdCBkb24ndCByZXN0b3JlCisJICogICAgICBpdCBidXQgbGF0ZXIgd29yayB3aXRoIFNNVSB0byBzZWUgaWYgdGhleSBoYXZlIHRoaXMgaXNzdWUgYW5kIGNhbgorCSAqICAgICAgdXBkYXRlIHRoZWlyIGNvZGUgYXBwcm9wcmlhdGVseQorCSAqLworCS8qIHNtdV92MTFfMF9pMmNfc2V0X2Nsb2NrX2dhdGluZyhjb250cm9sLCB0cnVlKTsgKi8KKworfQorCitzdGF0aWMgYm9vbCBzbXVfdjExXzBfaTJjX2J1c19sb2NrKHN0cnVjdCBpMmNfYWRhcHRlciAqY29udHJvbCkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHRvX2FtZGdwdV9kZXZpY2UoY29udHJvbCk7CisKKwkvKiBTZW5kICBQUFNNQ19NU0dfUmVxdWVzdEkyQ0J1cyAqLworCWlmICghYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5zbXVfaTJjX2J1c19hY2Nlc3MpCisJCWdvdG8gRmFpbDsKKworCisJaWYgKCFhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnNtdV9pMmNfYnVzX2FjY2VzcyhhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlLCB0cnVlKSkKKwkJcmV0dXJuIHRydWU7CisKK0ZhaWw6CisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBzbXVfdjExXzBfaTJjX2J1c191bmxvY2soc3RydWN0IGkyY19hZGFwdGVyICpjb250cm9sKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gdG9fYW1kZ3B1X2RldmljZShjb250cm9sKTsKKworCS8qIFNlbmQgIFBQU01DX01TR19SZXF1ZXN0STJDQnVzICovCisJaWYgKCFhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnNtdV9pMmNfYnVzX2FjY2VzcykKKwkJZ290byBGYWlsOworCisJLyogU2VuZCAgUFBTTUNfTVNHX1JlbGVhc2VJMkNCdXMgKi8KKwlpZiAoIWFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+c211X2kyY19idXNfYWNjZXNzKGFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGUsCisJCQkJCQkJICAgICBmYWxzZSkpCisJCXJldHVybiB0cnVlOworCitGYWlsOgorCXJldHVybiBmYWxzZTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEVFUFJPTSBJMkMgR0xVRSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgdWludDMyX3Qgc211X3YxMV8wX2kyY19lZXByb21fcmVhZF9kYXRhKHN0cnVjdCBpMmNfYWRhcHRlciAqY29udHJvbCwKKwkJCQkJICAgICAgIHVpbnQ4X3QgYWRkcmVzcywKKwkJCQkJICAgICAgIHVpbnQ4X3QgKmRhdGEsCisJCQkJCSAgICAgICB1aW50MzJfdCBudW1ieXRlcykKK3sKKwl1aW50MzJfdCAgcmV0ID0gMDsKKworCS8qIEZpcnN0IDIgYnl0ZXMgYXJlIGR1bW15IHdyaXRlIHRvIHNldCBFRVBST00gYWRkcmVzcyAqLworCXJldCA9IHNtdV92MTFfMF9pMmNfdHJhbnNtaXQoY29udHJvbCwgYWRkcmVzcywgZGF0YSwgMiwgSTJDX05PX1NUT1ApOworCWlmIChyZXQgIT0gSTJDX09LKQorCQlnb3RvIEZhaWw7CisKKwkvKiBOb3cgcmVhZCBkYXRhIHN0YXJ0aW5nIHdpdGggdGhhdCBhZGRyZXNzICovCisJcmV0ID0gc211X3YxMV8wX2kyY19yZWNlaXZlKGNvbnRyb2wsIGFkZHJlc3MsIGRhdGEgKyAyLCBudW1ieXRlcyAtIDIsCisJCQkJICAgIEkyQ19SRVNUQVJUKTsKKworRmFpbDoKKwlpZiAocmV0ICE9IEkyQ19PSykKKwkJRFJNX0VSUk9SKCJSZWFkRGF0YSgpIC0gSTJDIGVycm9yIG9jY3VycmVkIDoleCIsIHJldCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdWludDMyX3Qgc211X3YxMV8wX2kyY19lZXByb21fd3JpdGVfZGF0YShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmNvbnRyb2wsCisJCQkJCQl1aW50OF90IGFkZHJlc3MsCisJCQkJCQl1aW50OF90ICpkYXRhLAorCQkJCQkJdWludDMyX3QgbnVtYnl0ZXMpCit7CisJdWludDMyX3QgIHJldDsKKworCXJldCA9IHNtdV92MTFfMF9pMmNfdHJhbnNtaXQoY29udHJvbCwgYWRkcmVzcywgZGF0YSwgbnVtYnl0ZXMsIDApOworCisJaWYgKHJldCAhPSBJMkNfT0spCisJCURSTV9FUlJPUigiV3JpdGVJMkNEYXRhKCkgLSBJMkMgZXJyb3Igb2NjdXJyZWQgOiV4IiwgcmV0KTsKKwllbHNlCisJCS8qCisJCSAqIEFjY29yZGluZyB0byBFRVBST00gc3BlYyB0aGVyZSBpcyBhIE1BWCBvZiAxMCBtcyByZXF1aXJlZCBmb3IKKwkJICogRUVQUk9NIHRvIGZsdXNoIGludGVybmFsIFJYIGJ1ZmZlciBhZnRlciBTVE9QIHdhcyBpc3N1ZWQgYXQgdGhlCisJCSAqIGVuZCBvZiB3cml0ZSB0cmFuc2FjdGlvbi4gRHVyaW5nIHRoaXMgdGltZSB0aGUgRUVQUk9NIHdpbGwgbm90IGJlCisJCSAqIHJlc3BvbnNpdmUgdG8gYW55IG1vcmUgY29tbWFuZHMgLSBzbyB3YWl0IGEgYml0IG1vcmUuCisJCSAqCisJCSAqIFRPRE8gSW1wcm92ZSB0byB3YWl0IGZvciBmaXJzdCBBQ0sgZm9yIHNsYXZlIGFkZHJlc3MgYWZ0ZXIKKwkJICogaW50ZXJuYWwgd3JpdGUgY3ljbGUgZG9uZS4KKwkJICovCisJCW1zbGVlcCgxMCk7CisKKwlyZXR1cm4gcmV0OworCit9CisKK3N0YXRpYyB2b2lkIGxvY2tfYnVzKHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IGFtZGdwdV9yYXNfZWVwcm9tX2NvbnRyb2wgKmNvbnRyb2wgPSB0b19lZXByb21fY29udHJvbChpMmMpOworCisJaWYgKCFzbXVfdjExXzBfaTJjX2J1c19sb2NrKGkyYykpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gbG9jayB0aGUgYnVzIGZyb20gU01VIik7CisJCXJldHVybjsKKwl9CisKKwljb250cm9sLT5idXNfbG9ja2VkID0gdHJ1ZTsKK30KKworc3RhdGljIGludCB0cnlsb2NrX2J1cyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmkyYywgdW5zaWduZWQgaW50IGZsYWdzKQoreworCVdBUk5fT05DRSgxLCAiVGhpcyBvcGVyYXRpb24gbm90IHN1cHBvc2VkIHRvIHJ1biBpbiBhdG9taWMgY29udGV4dCEiKTsKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkIHVubG9ja19idXMoc3RydWN0IGkyY19hZGFwdGVyICppMmMsIHVuc2lnbmVkIGludCBmbGFncykKK3sKKwlzdHJ1Y3QgYW1kZ3B1X3Jhc19lZXByb21fY29udHJvbCAqY29udHJvbCA9IHRvX2VlcHJvbV9jb250cm9sKGkyYyk7CisKKwlpZiAoIXNtdV92MTFfMF9pMmNfYnVzX3VubG9jayhpMmMpKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIHVubG9jayB0aGUgYnVzIGZyb20gU01VIik7CisJCXJldHVybjsKKwl9CisKKwljb250cm9sLT5idXNfbG9ja2VkID0gZmFsc2U7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2xvY2tfb3BlcmF0aW9ucyBzbXVfdjExXzBfaTJjX2kyY19sb2NrX29wcyA9IHsKKwkubG9ja19idXMgPSBsb2NrX2J1cywKKwkudHJ5bG9ja19idXMgPSB0cnlsb2NrX2J1cywKKwkudW5sb2NrX2J1cyA9IHVubG9ja19idXMsCit9OworCitzdGF0aWMgaW50IHNtdV92MTFfMF9pMmNfZWVwcm9tX2kyY194ZmVyKHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjX2FkYXAsCisJCQkgICAgICBzdHJ1Y3QgaTJjX21zZyAqbXNncywgaW50IG51bSkKK3sKKwlpbnQgaSwgcmV0OworCXN0cnVjdCBhbWRncHVfcmFzX2VlcHJvbV9jb250cm9sICpjb250cm9sID0gdG9fZWVwcm9tX2NvbnRyb2woaTJjX2FkYXApOworCisJaWYgKCFjb250cm9sLT5idXNfbG9ja2VkKSB7CisJCURSTV9FUlJPUigiSTJDIGJ1cyB1bmxvY2tlZCwgc3RvcHBpbmcgdHJhbnNhY3Rpb24hIik7CisJCXJldHVybiAtRUlPOworCX0KKworCXNtdV92MTFfMF9pMmNfaW5pdChpMmNfYWRhcCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKKwkJaWYgKG1zZ3NbaV0uZmxhZ3MgJiBJMkNfTV9SRCkKKwkJCXJldCA9IHNtdV92MTFfMF9pMmNfZWVwcm9tX3JlYWRfZGF0YShpMmNfYWRhcCwKKwkJCQkJCQkodWludDhfdCltc2dzW2ldLmFkZHIsCisJCQkJCQkJbXNnc1tpXS5idWYsIG1zZ3NbaV0ubGVuKTsKKwkJZWxzZQorCQkJcmV0ID0gc211X3YxMV8wX2kyY19lZXByb21fd3JpdGVfZGF0YShpMmNfYWRhcCwKKwkJCQkJCQkgKHVpbnQ4X3QpbXNnc1tpXS5hZGRyLAorCQkJCQkJCSBtc2dzW2ldLmJ1ZiwgbXNnc1tpXS5sZW4pOworCisJCWlmIChyZXQgIT0gSTJDX09LKSB7CisJCQludW0gPSAtRUlPOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlzbXVfdjExXzBfaTJjX2ZpbmkoaTJjX2FkYXApOworCXJldHVybiBudW07Cit9CisKK3N0YXRpYyB1MzIgc211X3YxMV8wX2kyY19lZXByb21faTJjX2Z1bmMoc3RydWN0IGkyY19hZGFwdGVyICphZGFwKQoreworCXJldHVybiBJMkNfRlVOQ19JMkMgfCBJMkNfRlVOQ19TTUJVU19FTVVMOworfQorCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2FsZ29yaXRobSBzbXVfdjExXzBfaTJjX2VlcHJvbV9pMmNfYWxnbyA9IHsKKwkubWFzdGVyX3hmZXIgPSBzbXVfdjExXzBfaTJjX2VlcHJvbV9pMmNfeGZlciwKKwkuZnVuY3Rpb25hbGl0eSA9IHNtdV92MTFfMF9pMmNfZWVwcm9tX2kyY19mdW5jLAorfTsKKworaW50IHNtdV92MTFfMF9pMmNfZWVwcm9tX2NvbnRyb2xfaW5pdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmNvbnRyb2wpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSB0b19hbWRncHVfZGV2aWNlKGNvbnRyb2wpOworCWludCByZXM7CisKKwljb250cm9sLT5vd25lciA9IFRISVNfTU9EVUxFOworCWNvbnRyb2wtPmNsYXNzID0gSTJDX0NMQVNTX1NQRDsKKwljb250cm9sLT5kZXYucGFyZW50ID0gJmFkZXYtPnBkZXYtPmRldjsKKwljb250cm9sLT5hbGdvID0gJnNtdV92MTFfMF9pMmNfZWVwcm9tX2kyY19hbGdvOworCXNucHJpbnRmKGNvbnRyb2wtPm5hbWUsIHNpemVvZihjb250cm9sLT5uYW1lKSwgIlJBUyBFRVBST00iKTsKKwljb250cm9sLT5sb2NrX29wcyA9ICZzbXVfdjExXzBfaTJjX2kyY19sb2NrX29wczsKKworCXJlcyA9IGkyY19hZGRfYWRhcHRlcihjb250cm9sKTsKKwlpZiAocmVzKQorCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZWdpc3RlciBodyBpMmMsIGVycjogJWRcbiIsIHJlcyk7CisKKwlyZXR1cm4gcmVzOworfQorCit2b2lkIHNtdV92MTFfMF9pMmNfZWVwcm9tX2NvbnRyb2xfZmluaShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmNvbnRyb2wpCit7CisJaTJjX2RlbF9hZGFwdGVyKGNvbnRyb2wpOworfQorCisvKgorICogS2VlcCB0aGlzIGZvciBmdXR1cmUgdW5pdCB0ZXN0IGlmIGJ1Z3MgYXJpc2UKKyAqLworI2lmIDAKKyNkZWZpbmUgSTJDX1RBUkdFVF9BRERSIDB4QTAKKworYm9vbCBzbXVfdjExXzBfaTJjX3Rlc3RfYnVzKHN0cnVjdCBpMmNfYWRhcHRlciAqY29udHJvbCkKK3sKKworCXVpbnQzMl90IHJldCA9IEkyQ19PSzsKKwl1aW50OF90IGRhdGFbNl0gPSB7MHhmLCAwLCAweGRlLCAweGFkLCAweGJlLCAweGVmfTsKKworCisJRFJNX0lORk8oIkJlZ2luIik7CisKKwlpZiAoIXNtdV92MTFfMF9pMmNfYnVzX2xvY2soY29udHJvbCkpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gbG9jayB0aGUgYnVzIS4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXNtdV92MTFfMF9pMmNfaW5pdChjb250cm9sKTsKKworCS8qIFdyaXRlIDB4ZGUgdG8gYWRkcmVzcyAweDAwMDAgb24gdGhlIEVFUFJPTSAqLworCXJldCA9IHNtdV92MTFfMF9pMmNfZWVwcm9tX3dyaXRlX2RhdGEoY29udHJvbCwgSTJDX1RBUkdFVF9BRERSLCBkYXRhLCA2KTsKKworCXJldCA9IHNtdV92MTFfMF9pMmNfZWVwcm9tX3JlYWRfZGF0YShjb250cm9sLCBJMkNfVEFSR0VUX0FERFIsIGRhdGEsIDYpOworCisJc211X3YxMV8wX2kyY19maW5pKGNvbnRyb2wpOworCisJc211X3YxMV8wX2kyY19idXNfdW5sb2NrKGNvbnRyb2wpOworCisKKwlEUk1fSU5GTygiRW5kIik7CisJcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NtdV92MTFfMF9pMmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NtdV92MTFfMF9pMmMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzNmMjhkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc211X3YxMV8wX2kyYy5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpZm5kZWYgU01VX1YxMV9JMkNfQ09OVFJPTF9ICisjZGVmaW5lIFNNVV9WMTFfSTJDX0NPTlRST0xfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworc3RydWN0IGkyY19hZGFwdGVyOworCitpbnQgc211X3YxMV8wX2kyY19lZXByb21fY29udHJvbF9pbml0KHN0cnVjdCBpMmNfYWRhcHRlciAqY29udHJvbCk7Cit2b2lkIHNtdV92MTFfMF9pMmNfZWVwcm9tX2NvbnRyb2xfZmluaShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmNvbnRyb2wpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5jCmluZGV4IDA0ZmJmMDUuLmY3MDY1OGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUuYwpAQCAtNjMsNiArNjMsOCBAQAogI2luY2x1ZGUgInV2ZF92N18wLmgiCiAjaW5jbHVkZSAidmNlX3Y0XzAuaCIKICNpbmNsdWRlICJ2Y25fdjFfMC5oIgorI2luY2x1ZGUgInZjbl92Ml8wLmgiCisjaW5jbHVkZSAidmNuX3YyXzUuaCIKICNpbmNsdWRlICJkY2VfdmlydHVhbC5oIgogI2luY2x1ZGUgIm14Z3B1X2FpLmgiCiAjaW5jbHVkZSAiYW1kZ3B1X3NtdS5oIgpAQCAtMTE1LDYgKzExNyw0OSBAQCBzdGF0aWMgdm9pZCBzb2MxNV9wY2llX3dyZWcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiByZWcsIHUzMiB2KQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPnBjaWVfaWR4X2xvY2ssIGZsYWdzKTsKIH0KIAorc3RhdGljIHU2NCBzb2MxNV9wY2llX3JyZWc2NChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHJlZykKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzLCBhZGRyZXNzLCBkYXRhOworCXU2NCByOworCWFkZHJlc3MgPSBhZGV2LT5uYmlvX2Z1bmNzLT5nZXRfcGNpZV9pbmRleF9vZmZzZXQoYWRldik7CisJZGF0YSA9IGFkZXYtPm5iaW9fZnVuY3MtPmdldF9wY2llX2RhdGFfb2Zmc2V0KGFkZXYpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmFkZXYtPnBjaWVfaWR4X2xvY2ssIGZsYWdzKTsKKwkvKiByZWFkIGxvdyAzMiBiaXQgKi8KKwlXUkVHMzIoYWRkcmVzcywgcmVnKTsKKwkodm9pZClSUkVHMzIoYWRkcmVzcyk7CisJciA9IFJSRUczMihkYXRhKTsKKworCS8qIHJlYWQgaGlnaCAzMiBiaXQqLworCVdSRUczMihhZGRyZXNzLCByZWcgKyA0KTsKKwkodm9pZClSUkVHMzIoYWRkcmVzcyk7CisJciB8PSAoKHU2NClSUkVHMzIoZGF0YSkgPDwgMzIpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPnBjaWVfaWR4X2xvY2ssIGZsYWdzKTsKKwlyZXR1cm4gcjsKK30KKworc3RhdGljIHZvaWQgc29jMTVfcGNpZV93cmVnNjQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiByZWcsIHU2NCB2KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIGFkZHJlc3MsIGRhdGE7CisKKwlhZGRyZXNzID0gYWRldi0+bmJpb19mdW5jcy0+Z2V0X3BjaWVfaW5kZXhfb2Zmc2V0KGFkZXYpOworCWRhdGEgPSBhZGV2LT5uYmlvX2Z1bmNzLT5nZXRfcGNpZV9kYXRhX29mZnNldChhZGV2KTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZhZGV2LT5wY2llX2lkeF9sb2NrLCBmbGFncyk7CisJLyogd3JpdGUgbG93IDMyIGJpdCAqLworCVdSRUczMihhZGRyZXNzLCByZWcpOworCSh2b2lkKVJSRUczMihhZGRyZXNzKTsKKwlXUkVHMzIoZGF0YSwgKHUzMikodiAmIDB4ZmZmZmZmZmZVTEwpKTsKKwkodm9pZClSUkVHMzIoZGF0YSk7CisKKwkvKiB3cml0ZSBoaWdoIDMyIGJpdCAqLworCVdSRUczMihhZGRyZXNzLCByZWcgKyA0KTsKKwkodm9pZClSUkVHMzIoYWRkcmVzcyk7CisJV1JFRzMyKGRhdGEsICh1MzIpKHYgPj4gMzIpKTsKKwkodm9pZClSUkVHMzIoZGF0YSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRldi0+cGNpZV9pZHhfbG9jaywgZmxhZ3MpOworfQorCiBzdGF0aWMgdTMyIHNvYzE1X3V2ZF9jdHhfcnJlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHJlZykKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzLCBhZGRyZXNzLCBkYXRhOwpAQCAtNDY0LDEyICs1MDksMjMgQEAgc3RhdGljIGludCBzb2MxNV9hc2ljX2JhY29fcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc29jMTVfYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgc29jMTVfbW9kZTJfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0JaW50IHJldDsKKwlpZiAoIWFkZXYtPnBvd2VycGxheS5wcF9mdW5jcyB8fAorCSAgICAhYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5hc2ljX3Jlc2V0X21vZGVfMikKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwlyZXR1cm4gYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5hc2ljX3Jlc2V0X21vZGVfMihhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlKTsKK30KKworc3RhdGljIGVudW0gYW1kX3Jlc2V0X21ldGhvZAorc29jMTVfYXNpY19yZXNldF9tZXRob2Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CiAJYm9vbCBiYWNvX3Jlc2V0OwogCiAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKKwljYXNlIENISVBfUkFWRU46CisJCXJldHVybiBBTURfUkVTRVRfTUVUSE9EX01PREUyOwogCWNhc2UgQ0hJUF9WRUdBMTA6CiAJY2FzZSBDSElQX1ZFR0ExMjoKIAkJc29jMTVfYXNpY19nZXRfYmFjb19jYXBhYmlsaXR5KGFkZXYsICZiYWNvX3Jlc2V0KTsKQEAgLTQ5MywxMSArNTQ5LDIzIEBAIHN0YXRpYyBpbnQgc29jMTVfYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9CiAKIAlpZiAoYmFjb19yZXNldCkKLQkJcmV0ID0gc29jMTVfYXNpY19iYWNvX3Jlc2V0KGFkZXYpOworCQlyZXR1cm4gQU1EX1JFU0VUX01FVEhPRF9CQUNPOwogCWVsc2UKLQkJcmV0ID0gc29jMTVfYXNpY19tb2RlMV9yZXNldChhZGV2KTsKKwkJcmV0dXJuIEFNRF9SRVNFVF9NRVRIT0RfTU9ERTE7Cit9CiAKLQlyZXR1cm4gcmV0Oworc3RhdGljIGludCBzb2MxNV9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCXN3aXRjaCAoc29jMTVfYXNpY19yZXNldF9tZXRob2QoYWRldikpIHsKKwkJY2FzZSBBTURfUkVTRVRfTUVUSE9EX0JBQ086CisJCQlhbWRncHVfaW5jX3ZyYW1fbG9zdChhZGV2KTsKKwkJCXJldHVybiBzb2MxNV9hc2ljX2JhY29fcmVzZXQoYWRldik7CisJCWNhc2UgQU1EX1JFU0VUX01FVEhPRF9NT0RFMjoKKwkJCXJldHVybiBzb2MxNV9tb2RlMl9yZXNldChhZGV2KTsKKwkJZGVmYXVsdDoKKwkJCWFtZGdwdV9pbmNfdnJhbV9sb3N0KGFkZXYpOworCQkJcmV0dXJuIHNvYzE1X2FzaWNfbW9kZTFfcmVzZXQoYWRldik7CisJfQogfQogCiAvKnN0YXRpYyBpbnQgc29jMTVfc2V0X3V2ZF9jbG9jayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIGNsb2NrLApAQCAtNTgxLDI2ICs2NDksMzEgQEAgaW50IHNvYzE1X3NldF9pcF9ibG9ja3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJY2FzZSBDSElQX1ZFR0ExMDoKIAljYXNlIENISVBfVkVHQTEyOgogCWNhc2UgQ0hJUF9SQVZFTjoKKwljYXNlIENISVBfUkVOT0lSOgogCQl2ZWdhMTBfcmVnX2Jhc2VfaW5pdChhZGV2KTsKIAkJYnJlYWs7CiAJY2FzZSBDSElQX1ZFR0EyMDoKIAkJdmVnYTIwX3JlZ19iYXNlX2luaXQoYWRldik7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9BUkNUVVJVUzoKKwkJYXJjdF9yZWdfYmFzZV9pbml0KGFkZXYpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfVkVHQTIwKQorCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9WRUdBMjAgfHwgYWRldi0+YXNpY190eXBlID09IENISVBfQVJDVFVSVVMpCiAJCWFkZXYtPmdtYy54Z21pLnN1cHBvcnRlZCA9IHRydWU7CiAKIAlpZiAoYWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVKQogCQlhZGV2LT5uYmlvX2Z1bmNzID0gJm5iaW9fdjdfMF9mdW5jczsKLQllbHNlIGlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9WRUdBMjApCisJZWxzZSBpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfVkVHQTIwIHx8CisJCWFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX0FSQ1RVUlVTKQogCQlhZGV2LT5uYmlvX2Z1bmNzID0gJm5iaW9fdjdfNF9mdW5jczsKIAllbHNlCiAJCWFkZXYtPm5iaW9fZnVuY3MgPSAmbmJpb192Nl8xX2Z1bmNzOwogCi0JaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1ZFR0EyMCkKKwlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfVkVHQTIwIHx8IGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX0FSQ1RVUlVTKQogCQlhZGV2LT5kZl9mdW5jcyA9ICZkZl92M182X2Z1bmNzOwogCWVsc2UKIAkJYWRldi0+ZGZfZnVuY3MgPSAmZGZfdjFfN19mdW5jczsKQEAgLTY3Miw2ICs3NDUsMzcgQEAgaW50IHNvYzE1X3NldF9pcF9ibG9ja3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAjZW5kaWYKIAkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJnZjbl92MV8wX2lwX2Jsb2NrKTsKIAkJYnJlYWs7CisJY2FzZSBDSElQX0FSQ1RVUlVTOgorCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmdmVnYTEwX2NvbW1vbl9pcF9ibG9jayk7CisJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZnbWNfdjlfMF9pcF9ibG9jayk7CisJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZ2ZWdhMTBfaWhfaXBfYmxvY2spOworCQlpZiAoYWRldi0+ZW5hYmxlX3ZpcnR1YWxfZGlzcGxheSB8fCBhbWRncHVfc3Jpb3ZfdmYoYWRldikpCisJCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmZGNlX3ZpcnR1YWxfaXBfYmxvY2spOworCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmZ2Z4X3Y5XzBfaXBfYmxvY2spOworCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmc2RtYV92NF8wX2lwX2Jsb2NrKTsKKwkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJnNtdV92MTFfMF9pcF9ibG9jayk7CisJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZ2Y25fdjJfNV9pcF9ibG9jayk7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9SRU5PSVI6CisJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZ2ZWdhMTBfY29tbW9uX2lwX2Jsb2NrKTsKKwkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJmdtY192OV8wX2lwX2Jsb2NrKTsKKwkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJnZlZ2ExMF9paF9pcF9ibG9jayk7CisJCWlmIChsaWtlbHkoYWRldi0+ZmlybXdhcmUubG9hZF90eXBlID09IEFNREdQVV9GV19MT0FEX1BTUCkpCisJCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmcHNwX3YxMl8wX2lwX2Jsb2NrKTsKKwkJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQorCQkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJnNtdV92MTJfMF9pcF9ibG9jayk7CisJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZnZnhfdjlfMF9pcF9ibG9jayk7CisJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZzZG1hX3Y0XzBfaXBfYmxvY2spOworCQlpZiAoYWRldi0+ZW5hYmxlX3ZpcnR1YWxfZGlzcGxheSB8fCBhbWRncHVfc3Jpb3ZfdmYoYWRldikpCisJCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmZGNlX3ZpcnR1YWxfaXBfYmxvY2spOworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfREMpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydChhZGV2KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZkbV9pcF9ibG9jayk7CisjZWxzZQorIyAgICAgICB3YXJuaW5nICJFbmFibGUgQ09ORklHX0RSTV9BTURfREMgZm9yIGRpc3BsYXkgc3VwcG9ydCBvbiBTT0MxNS4iCisjZW5kaWYKKwkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJnZjbl92Ml8wX2lwX2Jsb2NrKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtNjg4LDcgKzc5Miw3IEBAIHN0YXRpYyB2b2lkIHNvYzE1X2ludmFsaWRhdGVfaGRwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCSBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiB7CiAJaWYgKCFyaW5nIHx8ICFyaW5nLT5mdW5jcy0+ZW1pdF93cmVnKQotCQlXUkVHMzJfU09DMTVfTk9fS0lRKE5CSU8sIDAsIG1tSERQX1JFQURfQ0FDSEVfSU5WQUxJREFURSwgMSk7CisJCVdSRUczMl9TT0MxNV9OT19LSVEoSERQLCAwLCBtbUhEUF9SRUFEX0NBQ0hFX0lOVkFMSURBVEUsIDEpOwogCWVsc2UKIAkJYW1kZ3B1X3JpbmdfZW1pdF93cmVnKHJpbmcsIFNPQzE1X1JFR19PRkZTRVQoCiAJCQlIRFAsIDAsIG1tSERQX1JFQURfQ0FDSEVfSU5WQUxJREFURSksIDEpOwpAQCAtNzE0LDE0ICs4MTgsOSBAQCBzdGF0aWMgdm9pZCBzb2MxNV9nZXRfcGNpZV91c2FnZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3QgKmNvdW50MCwKIAogCS8qIFNldCB0aGUgMiBldmVudHMgdGhhdCB3ZSB3aXNoIHRvIHdhdGNoLCBkZWZpbmVkIGFib3ZlICovCiAJLyogUmVnIDQwIGlzICMgcmVjZWl2ZWQgbXNncyAqLworCS8qIFJlZyAxMDQgaXMgIyBvZiBwb3N0ZWQgcmVxdWVzdHMgc2VudCAqLwogCXBlcmZjdHIgPSBSRUdfU0VUX0ZJRUxEKHBlcmZjdHIsIFBDSUVfUEVSRl9DTlRMX1RYQ0xLLCBFVkVOVDBfU0VMLCA0MCk7Ci0JLyogUHJlLVZHMjAsIFJlZyAxMDQgaXMgIyBvZiBwb3N0ZWQgcmVxdWVzdHMgc2VudC4gT24gVkcyMCBpdCdzIDEwOCAqLwotCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9WRUdBMjApCi0JCXBlcmZjdHIgPSBSRUdfU0VUX0ZJRUxEKHBlcmZjdHIsIFBDSUVfUEVSRl9DTlRMX1RYQ0xLLAotCQkJCQlFVkVOVDFfU0VMLCAxMDgpOwotCWVsc2UKLQkJcGVyZmN0ciA9IFJFR19TRVRfRklFTEQocGVyZmN0ciwgUENJRV9QRVJGX0NOVExfVFhDTEssCi0JCQkJCUVWRU5UMV9TRUwsIDEwNCk7CisJcGVyZmN0ciA9IFJFR19TRVRfRklFTEQocGVyZmN0ciwgUENJRV9QRVJGX0NOVExfVFhDTEssIEVWRU5UMV9TRUwsIDEwNCk7CiAKIAkvKiBXcml0ZSB0byBlbmFibGUgZGVzaXJlZCBwZXJmIGNvdW50ZXJzICovCiAJV1JFRzMyX1BDSUUoc21uUENJRV9QRVJGX0NOVExfVFhDTEssIHBlcmZjdHIpOwpAQCAtNzUxLDYgKzg1MCw1NSBAQCBzdGF0aWMgdm9pZCBzb2MxNV9nZXRfcGNpZV91c2FnZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3QgKmNvdW50MCwKIAkqY291bnQxID0gUlJFRzMyX1BDSUUoc21uUENJRV9QRVJGX0NPVU5UMV9UWENMSykgfCAoY250MV9vZiA8PCAzMik7CiB9CiAKK3N0YXRpYyB2b2lkIHZlZ2EyMF9nZXRfcGNpZV91c2FnZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3QgKmNvdW50MCwKKwkJCQkgdWludDY0X3QgKmNvdW50MSkKK3sKKwl1aW50MzJfdCBwZXJmY3RyID0gMDsKKwl1aW50NjRfdCBjbnQwX29mLCBjbnQxX29mOworCWludCB0bXA7CisKKwkvKiBUaGlzIHJlcG9ydHMgMCBvbiBBUFVzLCBzbyByZXR1cm4gdG8gYXZvaWQgd3JpdGluZy9yZWFkaW5nIHJlZ2lzdGVycworCSAqIHRoYXQgbWF5IG9yIG1heSBub3QgYmUgZGlmZmVyZW50IGZyb20gdGhlaXIgR1BVIGNvdW50ZXJwYXJ0cworCSAqLworCWlmIChhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpCisJCXJldHVybjsKKworCS8qIFNldCB0aGUgMiBldmVudHMgdGhhdCB3ZSB3aXNoIHRvIHdhdGNoLCBkZWZpbmVkIGFib3ZlICovCisJLyogUmVnIDQwIGlzICMgcmVjZWl2ZWQgbXNncyAqLworCS8qIFJlZyAxMDggaXMgIyBvZiBwb3N0ZWQgcmVxdWVzdHMgc2VudCBvbiBWRzIwICovCisJcGVyZmN0ciA9IFJFR19TRVRfRklFTEQocGVyZmN0ciwgUENJRV9QRVJGX0NOVExfVFhDTEszLAorCQkJCUVWRU5UMF9TRUwsIDQwKTsKKwlwZXJmY3RyID0gUkVHX1NFVF9GSUVMRChwZXJmY3RyLCBQQ0lFX1BFUkZfQ05UTF9UWENMSzMsCisJCQkJRVZFTlQxX1NFTCwgMTA4KTsKKworCS8qIFdyaXRlIHRvIGVuYWJsZSBkZXNpcmVkIHBlcmYgY291bnRlcnMgKi8KKwlXUkVHMzJfUENJRShzbW5QQ0lFX1BFUkZfQ05UTF9UWENMSzMsIHBlcmZjdHIpOworCS8qIFplcm8gb3V0IGFuZCBlbmFibGUgdGhlIHBlcmYgY291bnRlcnMKKwkgKiBXcml0ZSAweDU6CisJICogQml0IDAgPSBTdGFydCBhbGwgY291bnRlcnMoMSkKKwkgKiBCaXQgMiA9IEdsb2JhbCBjb3VudGVyIHJlc2V0IGVuYWJsZSgxKQorCSAqLworCVdSRUczMl9QQ0lFKHNtblBDSUVfUEVSRl9DT1VOVF9DTlRMLCAweDAwMDAwMDA1KTsKKworCW1zbGVlcCgxMDAwKTsKKworCS8qIExvYWQgdGhlIHNoYWRvdyBhbmQgZGlzYWJsZSB0aGUgcGVyZiBjb3VudGVycworCSAqIFdyaXRlIDB4MjoKKwkgKiBCaXQgMCA9IFN0b3AgY291bnRlcnMoMCkKKwkgKiBCaXQgMSA9IExvYWQgdGhlIHNoYWRvdyBjb3VudGVycygxKQorCSAqLworCVdSRUczMl9QQ0lFKHNtblBDSUVfUEVSRl9DT1VOVF9DTlRMLCAweDAwMDAwMDAyKTsKKworCS8qIFJlYWQgcmVnaXN0ZXIgdmFsdWVzIHRvIGdldCBhbnkgPjMyYml0IG92ZXJmbG93ICovCisJdG1wID0gUlJFRzMyX1BDSUUoc21uUENJRV9QRVJGX0NOVExfVFhDTEszKTsKKwljbnQwX29mID0gUkVHX0dFVF9GSUVMRCh0bXAsIFBDSUVfUEVSRl9DTlRMX1RYQ0xLMywgQ09VTlRFUjBfVVBQRVIpOworCWNudDFfb2YgPSBSRUdfR0VUX0ZJRUxEKHRtcCwgUENJRV9QRVJGX0NOVExfVFhDTEszLCBDT1VOVEVSMV9VUFBFUik7CisKKwkvKiBHZXQgdGhlIHZhbHVlcyBhbmQgYWRkIHRoZSBvdmVyZmxvdyAqLworCSpjb3VudDAgPSBSUkVHMzJfUENJRShzbW5QQ0lFX1BFUkZfQ09VTlQwX1RYQ0xLMykgfCAoY250MF9vZiA8PCAzMik7CisJKmNvdW50MSA9IFJSRUczMl9QQ0lFKHNtblBDSUVfUEVSRl9DT1VOVDFfVFhDTEszKSB8IChjbnQxX29mIDw8IDMyKTsKK30KKwogc3RhdGljIGJvb2wgc29jMTVfbmVlZF9yZXNldF9vbl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXUzMiBzb2xfcmVnOwpAQCAtNzkyLDYgKzk0MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2FzaWNfZnVuY3Mgc29jMTVfYXNpY19mdW5jcyA9CiAJLnJlYWRfYmlvc19mcm9tX3JvbSA9ICZzb2MxNV9yZWFkX2Jpb3NfZnJvbV9yb20sCiAJLnJlYWRfcmVnaXN0ZXIgPSAmc29jMTVfcmVhZF9yZWdpc3RlciwKIAkucmVzZXQgPSAmc29jMTVfYXNpY19yZXNldCwKKwkucmVzZXRfbWV0aG9kID0gJnNvYzE1X2FzaWNfcmVzZXRfbWV0aG9kLAogCS5zZXRfdmdhX3N0YXRlID0gJnNvYzE1X3ZnYV9zZXRfc3RhdGUsCiAJLmdldF94Y2xrID0gJnNvYzE1X2dldF94Y2xrLAogCS5zZXRfdXZkX2Nsb2NrcyA9ICZzb2MxNV9zZXRfdXZkX2Nsb2NrcywKQEAgLTgyMSw5ICs5NzAsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfYXNpY19mdW5jcyB2ZWdhMjBfYXNpY19mdW5jcyA9CiAJLmludmFsaWRhdGVfaGRwID0gJnNvYzE1X2ludmFsaWRhdGVfaGRwLAogCS5uZWVkX2Z1bGxfcmVzZXQgPSAmc29jMTVfbmVlZF9mdWxsX3Jlc2V0LAogCS5pbml0X2Rvb3JiZWxsX2luZGV4ID0gJnZlZ2EyMF9kb29yYmVsbF9pbmRleF9pbml0LAotCS5nZXRfcGNpZV91c2FnZSA9ICZzb2MxNV9nZXRfcGNpZV91c2FnZSwKKwkuZ2V0X3BjaWVfdXNhZ2UgPSAmdmVnYTIwX2dldF9wY2llX3VzYWdlLAogCS5uZWVkX3Jlc2V0X29uX2luaXQgPSAmc29jMTVfbmVlZF9yZXNldF9vbl9pbml0LAogCS5nZXRfcGNpZV9yZXBsYXlfY291bnQgPSAmc29jMTVfZ2V0X3BjaWVfcmVwbGF5X2NvdW50LAorCS5yZXNldF9tZXRob2QgPSAmc29jMTVfYXNpY19yZXNldF9tZXRob2QKIH07CiAKIHN0YXRpYyBpbnQgc29jMTVfY29tbW9uX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQpAQCAtODM3LDYgKzk4Nyw4IEBAIHN0YXRpYyBpbnQgc29jMTVfY29tbW9uX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogCWFkZXYtPnNtY193cmVnID0gTlVMTDsKIAlhZGV2LT5wY2llX3JyZWcgPSAmc29jMTVfcGNpZV9ycmVnOwogCWFkZXYtPnBjaWVfd3JlZyA9ICZzb2MxNV9wY2llX3dyZWc7CisJYWRldi0+cGNpZV9ycmVnNjQgPSAmc29jMTVfcGNpZV9ycmVnNjQ7CisJYWRldi0+cGNpZV93cmVnNjQgPSAmc29jMTVfcGNpZV93cmVnNjQ7CiAJYWRldi0+dXZkX2N0eF9ycmVnID0gJnNvYzE1X3V2ZF9jdHhfcnJlZzsKIAlhZGV2LT51dmRfY3R4X3dyZWcgPSAmc29jMTVfdXZkX2N0eF93cmVnOwogCWFkZXYtPmRpZHRfcnJlZyA9ICZzb2MxNV9kaWR0X3JyZWc7CkBAIC05OTMsNiArMTE0NSw1MyBAQCBzdGF0aWMgaW50IHNvYzE1X2NvbW1vbl9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIAkJCWFkZXYtPnBnX2ZsYWdzID0gQU1EX1BHX1NVUFBPUlRfU0RNQSB8IEFNRF9QR19TVVBQT1JUX1ZDTjsKIAkJfQogCQlicmVhazsKKwljYXNlIENISVBfQVJDVFVSVVM6CisJCWFkZXYtPmFzaWNfZnVuY3MgPSAmdmVnYTIwX2FzaWNfZnVuY3M7CisJCWFkZXYtPmNnX2ZsYWdzID0gQU1EX0NHX1NVUFBPUlRfR0ZYX01HQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfR0ZYX01HTFMgfAorCQkJQU1EX0NHX1NVUFBPUlRfR0ZYX0NHQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfR0ZYX0NHTFMgfAorCQkJQU1EX0NHX1NVUFBPUlRfR0ZYX0NQX0xTIHwKKwkJCUFNRF9DR19TVVBQT1JUX0hEUF9NR0NHIHwKKwkJCUFNRF9DR19TVVBQT1JUX0hEUF9MUyB8CisJCQlBTURfQ0dfU1VQUE9SVF9TRE1BX01HQ0cgfAorCQkJQU1EX0NHX1NVUFBPUlRfU0RNQV9MUyB8CisJCQlBTURfQ0dfU1VQUE9SVF9NQ19NR0NHIHwKKwkJCUFNRF9DR19TVVBQT1JUX01DX0xTOworCQlhZGV2LT5wZ19mbGFncyA9IDA7CisJCWFkZXYtPmV4dGVybmFsX3Jldl9pZCA9IGFkZXYtPnJldl9pZCArIDB4MzI7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9SRU5PSVI6CisJCWFkZXYtPmFzaWNfZnVuY3MgPSAmc29jMTVfYXNpY19mdW5jczsKKwkJYWRldi0+Y2dfZmxhZ3MgPSBBTURfQ0dfU1VQUE9SVF9HRlhfTUdDRyB8CisJCQkJIEFNRF9DR19TVVBQT1JUX0dGWF9NR0xTIHwKKwkJCQkgQU1EX0NHX1NVUFBPUlRfR0ZYXzNEX0NHQ0cgfAorCQkJCSBBTURfQ0dfU1VQUE9SVF9HRlhfM0RfQ0dMUyB8CisJCQkJIEFNRF9DR19TVVBQT1JUX0dGWF9DR0NHIHwKKwkJCQkgQU1EX0NHX1NVUFBPUlRfR0ZYX0NHTFMgfAorCQkJCSBBTURfQ0dfU1VQUE9SVF9HRlhfQ1BfTFMgfAorCQkJCSBBTURfQ0dfU1VQUE9SVF9NQ19NR0NHIHwKKwkJCQkgQU1EX0NHX1NVUFBPUlRfTUNfTFMgfAorCQkJCSBBTURfQ0dfU1VQUE9SVF9TRE1BX01HQ0cgfAorCQkJCSBBTURfQ0dfU1VQUE9SVF9TRE1BX0xTIHwKKwkJCQkgQU1EX0NHX1NVUFBPUlRfQklGX0xTIHwKKwkJCQkgQU1EX0NHX1NVUFBPUlRfSERQX0xTIHwKKwkJCQkgQU1EX0NHX1NVUFBPUlRfUk9NX01HQ0cgfAorCQkJCSBBTURfQ0dfU1VQUE9SVF9WQ05fTUdDRyB8CisJCQkJIEFNRF9DR19TVVBQT1JUX0lIX0NHIHwKKwkJCQkgQU1EX0NHX1NVUFBPUlRfQVRIVUJfTFMgfAorCQkJCSBBTURfQ0dfU1VQUE9SVF9BVEhVQl9NR0NHIHwKKwkJCQkgQU1EX0NHX1NVUFBPUlRfREZfTUdDRzsKKwkJYWRldi0+cGdfZmxhZ3MgPSBBTURfUEdfU1VQUE9SVF9TRE1BIHwKKwkJCQkgQU1EX1BHX1NVUFBPUlRfVkNOIHwKKwkJCQkgQU1EX1BHX1NVUFBPUlRfVkNOX0RQRzsKKwkJYWRldi0+ZXh0ZXJuYWxfcmV2X2lkID0gYWRldi0+cmV2X2lkICsgMHg5MTsKKworCQlpZiAoYWRldi0+cG0ucHBfZmVhdHVyZSAmIFBQX0dGWE9GRl9NQVNLKQorCQkJYWRldi0+cGdfZmxhZ3MgfD0gQU1EX1BHX1NVUFBPUlRfR0ZYX1BHIHwKKwkJCQlBTURfUEdfU1VQUE9SVF9DUCB8CisJCQkJQU1EX1BHX1NVUFBPUlRfUkxDX1NNVV9IUzsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJLyogRklYTUU6IG5vdCBzdXBwb3J0ZWQgeWV0ICovCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTAzOCwyMSArMTIzNywxOCBAQCBzdGF0aWMgdm9pZCBzb2MxNV9kb29yYmVsbF9yYW5nZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWludCBpOwogCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZzsKIAotCS8qICBUd28gcmVhc29ucyB0byBza2lwCi0JKgkJMSwgSG9zdCBkcml2ZXIgYWxyZWFkeSBwcm9ncmFtbWVkIHRoZW0KLQkqCQkyLCBUbyBhdm9pZCByZWdpc3RlcnMgcHJvZ3JhbSB2aW9sYXRpb25zIGluIFNSLUlPVgotCSovCi0JaWYgKCFhbWRncHVfdmlydF9zdXBwb3J0X3NraXBfc2V0dGluZyhhZGV2KSkgeworCS8qIHNkbWEvaWggZG9vcmJlbGwgcmFuZ2UgYXJlIHByb2dyYW1lZCBieSBoeXBlcnZpc29yICovCisJaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsKIAkJZm9yIChpID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7CiAJCQlyaW5nID0gJmFkZXYtPnNkbWEuaW5zdGFuY2VbaV0ucmluZzsKIAkJCWFkZXYtPm5iaW9fZnVuY3MtPnNkbWFfZG9vcmJlbGxfcmFuZ2UoYWRldiwgaSwKIAkJCQlyaW5nLT51c2VfZG9vcmJlbGwsIHJpbmctPmRvb3JiZWxsX2luZGV4LAogCQkJCWFkZXYtPmRvb3JiZWxsX2luZGV4LnNkbWFfZG9vcmJlbGxfcmFuZ2UpOwogCQl9Ci0JfQogCi0JYWRldi0+bmJpb19mdW5jcy0+aWhfZG9vcmJlbGxfcmFuZ2UoYWRldiwgYWRldi0+aXJxLmloLnVzZV9kb29yYmVsbCwKKwkJYWRldi0+bmJpb19mdW5jcy0+aWhfZG9vcmJlbGxfcmFuZ2UoYWRldiwgYWRldi0+aXJxLmloLnVzZV9kb29yYmVsbCwKIAkJCQkJCWFkZXYtPmlycS5paC5kb29yYmVsbF9pbmRleCk7CisJfQogfQogCiBzdGF0aWMgaW50IHNvYzE1X2NvbW1vbl9od19pbml0KHZvaWQgKmhhbmRsZSkKQEAgLTExMjksNyArMTMyNSw4IEBAIHN0YXRpYyB2b2lkIHNvYzE1X3VwZGF0ZV9oZHBfbGlnaHRfc2xlZXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgZW5hYmxlCiB7CiAJdWludDMyX3QgZGVmLCBkYXRhOwogCi0JaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1ZFR0EyMCkgeworCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9WRUdBMjAgfHwKKwkJYWRldi0+YXNpY190eXBlID09IENISVBfQVJDVFVSVVMpIHsKIAkJZGVmID0gZGF0YSA9IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKEhEUCwgMCwgbW1IRFBfTUVNX1BPV0VSX0NUUkwpKTsKIAogCQlpZiAoZW5hYmxlICYmIChhZGV2LT5jZ19mbGFncyAmIEFNRF9DR19TVVBQT1JUX0hEUF9MUykpCkBAIC0xMjQ4LDYgKzE0NDUsNyBAQCBzdGF0aWMgaW50IHNvYzE1X2NvbW1vbl9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAogCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKIAkJYnJlYWs7CiAJY2FzZSBDSElQX1JBVkVOOgorCWNhc2UgQ0hJUF9SRU5PSVI6CiAJCWFkZXYtPm5iaW9fZnVuY3MtPnVwZGF0ZV9tZWRpdW1fZ3JhaW5fY2xvY2tfZ2F0aW5nKGFkZXYsCiAJCQkJc3RhdGUgPT0gQU1EX0NHX1NUQVRFX0dBVEUgPyB0cnVlIDogZmFsc2UpOwogCQlhZGV2LT5uYmlvX2Z1bmNzLT51cGRhdGVfbWVkaXVtX2dyYWluX2xpZ2h0X3NsZWVwKGFkZXYsCkBAIC0xMjYxLDYgKzE0NTksMTAgQEAgc3RhdGljIGludCBzb2MxNV9jb21tb25fc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKIAkJc29jMTVfdXBkYXRlX3JvbV9tZWRpdW1fZ3JhaW5fY2xvY2tfZ2F0aW5nKGFkZXYsCiAJCQkJc3RhdGUgPT0gQU1EX0NHX1NUQVRFX0dBVEUgPyB0cnVlIDogZmFsc2UpOwogCQlicmVhazsKKwljYXNlIENISVBfQVJDVFVSVVM6CisJCXNvYzE1X3VwZGF0ZV9oZHBfbGlnaHRfc2xlZXAoYWRldiwKKwkJCQlzdGF0ZSA9PSBBTURfQ0dfU1RBVEVfR0FURSA/IHRydWUgOiBmYWxzZSk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5oCmluZGV4IDdhNmIyY2MuLmEzZGRlMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUuaApAQCAtNzcsNiArNzcsNyBAQCB2b2lkIHNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIGludCB2ZWdhMTBfcmVnX2Jhc2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQgdmVnYTIwX3JlZ19iYXNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOworaW50IGFyY3RfcmVnX2Jhc2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAKIHZvaWQgdmVnYTEwX2Rvb3JiZWxsX2luZGV4X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogdm9pZCB2ZWdhMjBfZG9vcmJlbGxfaW5kZXhfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNV9jb21tb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1X2NvbW1vbi5oCmluZGV4IDQ3Zjc0ZGEuLjgzOWYxODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1X2NvbW1vbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1X2NvbW1vbi5oCkBAIC02OSw5ICs2OSwxMCBAQAogCQl9CQkJCQkJXAogCX0gd2hpbGUgKDApCiAKKyNkZWZpbmUgQU1ER1BVX1ZJUlRfU1VQUE9SVF9STENfUFJHX1JFRyhhKSAoYW1kZ3B1X3NyaW92X3ZmKChhKSkgJiYgIWFtZGdwdV9zcmlvdl9ydW50aW1lKChhKSkpCiAjZGVmaW5lIFdSRUczMl9STEMocmVnLCB2YWx1ZSkgXAogCWRvIHsJCQkJCQkJXAotCQlpZiAoYW1kZ3B1X3ZpcnRfc3VwcG9ydF9ybGNfcHJnX3JlZyhhZGV2KSkgeyAgICBcCisJCWlmIChBTURHUFVfVklSVF9TVVBQT1JUX1JMQ19QUkdfUkVHKGFkZXYpKSB7ICAgIFwKIAkJCXVpbnQzMl90IGkgPSAwOwlcCiAJCQl1aW50MzJfdCByZXRyaWVzID0gNTAwMDA7CVwKIAkJCXVpbnQzMl90IHIwID0gYWRldi0+cmVnX29mZnNldFtHQ19IV0lQXVswXVttbVNDUkFUQ0hfUkVHMF9CQVNFX0lEWF0gKyBtbVNDUkFUQ0hfUkVHMDsJXApAQCAtOTYsNyArOTcsNyBAQAogI2RlZmluZSBXUkVHMzJfU09DMTVfUkxDX1NIQURPVyhpcCwgaW5zdCwgcmVnLCB2YWx1ZSkgXAogCWRvIHsJCQkJCQkJXAogCQl1aW50MzJfdCB0YXJnZXRfcmVnID0gYWRldi0+cmVnX29mZnNldFtpcCMjX0hXSVBdW2luc3RdW3JlZyMjX0JBU0VfSURYXSArIHJlZztcCi0JCWlmIChhbWRncHVfdmlydF9zdXBwb3J0X3JsY19wcmdfcmVnKGFkZXYpKSB7ICAgIFwKKwkJaWYgKEFNREdQVV9WSVJUX1NVUFBPUlRfUkxDX1BSR19SRUcoYWRldikpIHsgICAgXAogCQkJdWludDMyX3QgcjIgPSBhZGV2LT5yZWdfb2Zmc2V0W0dDX0hXSVBdWzBdW21tU0NSQVRDSF9SRUcxX0JBU0VfSURYXSArIG1tU0NSQVRDSF9SRUcyOwlcCiAJCQl1aW50MzJfdCByMyA9IGFkZXYtPnJlZ19vZmZzZXRbR0NfSFdJUF1bMF1bbW1TQ1JBVENIX1JFRzFfQkFTRV9JRFhdICsgbW1TQ1JBVENIX1JFRzM7CVwKIAkJCXVpbnQzMl90IGdyYm1fY250bCA9IGFkZXYtPnJlZ19vZmZzZXRbR0NfSFdJUF1bMF1bbW1HUkJNX0dGWF9DTlRMX0JBU0VfSURYXSArIG1tR1JCTV9HRlhfQ05UTDsgICBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91bWNfdjZfMS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdW1jX3Y2XzEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTAyZTczCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdW1jX3Y2XzEuYwpAQCAtMCwwICsxLDI1NSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKyNpbmNsdWRlICJ1bWNfdjZfMS5oIgorI2luY2x1ZGUgImFtZGdwdV9yYXMuaCIKKyNpbmNsdWRlICJhbWRncHUuaCIKKworI2luY2x1ZGUgInJzbXUvcnNtdV8wXzBfMl9vZmZzZXQuaCIKKyNpbmNsdWRlICJyc211L3JzbXVfMF8wXzJfc2hfbWFzay5oIgorI2luY2x1ZGUgInVtYy91bWNfNl8xXzFfb2Zmc2V0LmgiCisjaW5jbHVkZSAidW1jL3VtY182XzFfMV9zaF9tYXNrLmgiCisKKyNkZWZpbmUgc21uTUNBX1VNQzBfTUNVTUNfQUREUlQwCTB4NTBmMTAKKworLyoKKyAqIChhZGRyIC8gMjU2KSAqIDgxOTIsIHRoZSBoaWdoZXIgMjYgYml0cyBpbiBFcnJvckFkZHIKKyAqIGlzIHRoZSBpbmRleCBvZiA4S0IgYmxvY2sKKyAqLworI2RlZmluZSBBRERSX09GXzhLQl9CTE9DSyhhZGRyKQkJKCgoYWRkcikgJiB+MHhmZlVMTCkgPDwgNSkKKy8qIGNoYW5uZWwgaW5kZXggaXMgdGhlIGluZGV4IG9mIDI1NkIgYmxvY2sgKi8KKyNkZWZpbmUgQUREUl9PRl8yNTZCX0JMT0NLKGNoYW5uZWxfaW5kZXgpCSgoY2hhbm5lbF9pbmRleCkgPDwgOCkKKy8qIG9mZnNldCBpbiAyNTZCIGJsb2NrICovCisjZGVmaW5lIE9GRlNFVF9JTl8yNTZCX0JMT0NLKGFkZHIpCQkoKGFkZHIpICYgMHhmZlVMTCkKKworY29uc3QgdWludDMyX3QKKwl1bWNfdjZfMV9jaGFubmVsX2lkeF90YmxbVU1DX1Y2XzFfVU1DX0lOU1RBTkNFX05VTV1bVU1DX1Y2XzFfQ0hBTk5FTF9JTlNUQU5DRV9OVU1dID0geworCQl7MiwgMTgsIDExLCAyN30sCXs0LCAyMCwgMTMsIDI5fSwKKwkJezEsIDE3LCA4LCAyNH0sCQl7NywgMjMsIDE0LCAzMH0sCisJCXsxMCwgMjYsIDMsIDE5fSwJezEyLCAyOCwgNSwgMjF9LAorCQl7OSwgMjUsIDAsIDE2fSwJCXsxNSwgMzEsIDYsIDIyfQorfTsKKworc3RhdGljIHZvaWQgdW1jX3Y2XzFfZW5hYmxlX3VtY19pbmRleF9tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgICB1aW50MzJfdCB1bWNfaW5zdGFuY2UpCit7CisJdWludDMyX3QgcnNtdV91bWNfaW5kZXg7CisKKwlyc211X3VtY19pbmRleCA9IFJSRUczMl9TT0MxNShSU01VLCAwLAorCQkJbW1SU01VX1VNQ19JTkRFWF9SRUdJU1RFUl9OQklGX1ZHMjBfR1BVKTsKKwlyc211X3VtY19pbmRleCA9IFJFR19TRVRfRklFTEQocnNtdV91bWNfaW5kZXgsCisJCQlSU01VX1VNQ19JTkRFWF9SRUdJU1RFUl9OQklGX1ZHMjBfR1BVLAorCQkJUlNNVV9VTUNfSU5ERVhfTU9ERV9FTiwgMSk7CisJcnNtdV91bWNfaW5kZXggPSBSRUdfU0VUX0ZJRUxEKHJzbXVfdW1jX2luZGV4LAorCQkJUlNNVV9VTUNfSU5ERVhfUkVHSVNURVJfTkJJRl9WRzIwX0dQVSwKKwkJCVJTTVVfVU1DX0lOREVYX0lOU1RBTkNFLCB1bWNfaW5zdGFuY2UpOworCXJzbXVfdW1jX2luZGV4ID0gUkVHX1NFVF9GSUVMRChyc211X3VtY19pbmRleCwKKwkJCVJTTVVfVU1DX0lOREVYX1JFR0lTVEVSX05CSUZfVkcyMF9HUFUsCisJCQlSU01VX1VNQ19JTkRFWF9XUkVOLCAxIDw8IHVtY19pbnN0YW5jZSk7CisJV1JFRzMyX1NPQzE1KFJTTVUsIDAsIG1tUlNNVV9VTUNfSU5ERVhfUkVHSVNURVJfTkJJRl9WRzIwX0dQVSwKKwkJCQlyc211X3VtY19pbmRleCk7Cit9CisKK3N0YXRpYyB2b2lkIHVtY192Nl8xX2Rpc2FibGVfdW1jX2luZGV4X21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJV1JFRzMyX0ZJRUxEMTUoUlNNVSwgMCwgUlNNVV9VTUNfSU5ERVhfUkVHSVNURVJfTkJJRl9WRzIwX0dQVSwKKwkJCVJTTVVfVU1DX0lOREVYX01PREVfRU4sIDApOworfQorCitzdGF0aWMgdm9pZCB1bWNfdjZfMV9xdWVyeV9jb3JyZWN0YWJsZV9lcnJvcl9jb3VudChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkJCSAgIHVpbnQzMl90IHVtY19yZWdfb2Zmc2V0LAorCQkJCQkJICAgdW5zaWduZWQgbG9uZyAqZXJyb3JfY291bnQpCit7CisJdWludDMyX3QgZWNjX2Vycl9jbnRfc2VsLCBlY2NfZXJyX2NudF9zZWxfYWRkcjsKKwl1aW50MzJfdCBlY2NfZXJyX2NudCwgZWNjX2Vycl9jbnRfYWRkcjsKKwl1aW50NjRfdCBtY191bWNfc3RhdHVzOworCXVpbnQzMl90IG1jX3VtY19zdGF0dXNfYWRkcjsKKworCWVjY19lcnJfY250X3NlbF9hZGRyID0KKwkJU09DMTVfUkVHX09GRlNFVChVTUMsIDAsIG1tVU1DQ0gwXzBfRWNjRXJyQ250U2VsKTsKKwllY2NfZXJyX2NudF9hZGRyID0KKwkJU09DMTVfUkVHX09GRlNFVChVTUMsIDAsIG1tVU1DQ0gwXzBfRWNjRXJyQ250KTsKKwltY191bWNfc3RhdHVzX2FkZHIgPQorCQlTT0MxNV9SRUdfT0ZGU0VUKFVNQywgMCwgbW1NQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDApOworCisJLyogc2VsZWN0IHRoZSBsb3dlciBjaGlwIGFuZCBjaGVjayB0aGUgZXJyb3IgY291bnQgKi8KKwllY2NfZXJyX2NudF9zZWwgPSBSUkVHMzIoZWNjX2Vycl9jbnRfc2VsX2FkZHIgKyB1bWNfcmVnX29mZnNldCk7CisJZWNjX2Vycl9jbnRfc2VsID0gUkVHX1NFVF9GSUVMRChlY2NfZXJyX2NudF9zZWwsIFVNQ0NIMF8wX0VjY0VyckNudFNlbCwKKwkJCQkJRWNjRXJyQ250Q3NTZWwsIDApOworCVdSRUczMihlY2NfZXJyX2NudF9zZWxfYWRkciArIHVtY19yZWdfb2Zmc2V0LCBlY2NfZXJyX2NudF9zZWwpOworCWVjY19lcnJfY250ID0gUlJFRzMyKGVjY19lcnJfY250X2FkZHIgKyB1bWNfcmVnX29mZnNldCk7CisJKmVycm9yX2NvdW50ICs9CisJCShSRUdfR0VUX0ZJRUxEKGVjY19lcnJfY250LCBVTUNDSDBfMF9FY2NFcnJDbnQsIEVjY0VyckNudCkgLQorCQkgVU1DX1Y2XzFfQ0VfQ05UX0lOSVQpOworCS8qIGNsZWFyIHRoZSBsb3dlciBjaGlwIGVyciBjb3VudCAqLworCVdSRUczMihlY2NfZXJyX2NudF9hZGRyICsgdW1jX3JlZ19vZmZzZXQsIFVNQ19WNl8xX0NFX0NOVF9JTklUKTsKKworCS8qIHNlbGVjdCB0aGUgaGlnaGVyIGNoaXAgYW5kIGNoZWNrIHRoZSBlcnIgY291bnRlciAqLworCWVjY19lcnJfY250X3NlbCA9IFJFR19TRVRfRklFTEQoZWNjX2Vycl9jbnRfc2VsLCBVTUNDSDBfMF9FY2NFcnJDbnRTZWwsCisJCQkJCUVjY0VyckNudENzU2VsLCAxKTsKKwlXUkVHMzIoZWNjX2Vycl9jbnRfc2VsX2FkZHIgKyB1bWNfcmVnX29mZnNldCwgZWNjX2Vycl9jbnRfc2VsKTsKKwllY2NfZXJyX2NudCA9IFJSRUczMihlY2NfZXJyX2NudF9hZGRyICsgdW1jX3JlZ19vZmZzZXQpOworCSplcnJvcl9jb3VudCArPQorCQkoUkVHX0dFVF9GSUVMRChlY2NfZXJyX2NudCwgVU1DQ0gwXzBfRWNjRXJyQ250LCBFY2NFcnJDbnQpIC0KKwkJIFVNQ19WNl8xX0NFX0NOVF9JTklUKTsKKwkvKiBjbGVhciB0aGUgaGlnaGVyIGNoaXAgZXJyIGNvdW50ICovCisJV1JFRzMyKGVjY19lcnJfY250X2FkZHIgKyB1bWNfcmVnX29mZnNldCwgVU1DX1Y2XzFfQ0VfQ05UX0lOSVQpOworCisJLyogY2hlY2sgZm9yIFNSQU0gY29ycmVjdGFibGUgZXJyb3IKKwkgIE1DVU1DX1NUQVRVUyBpcyBhIDY0IGJpdCByZWdpc3RlciAqLworCW1jX3VtY19zdGF0dXMgPSBSUkVHNjRfVU1DKG1jX3VtY19zdGF0dXNfYWRkciArIHVtY19yZWdfb2Zmc2V0KTsKKwlpZiAoUkVHX0dFVF9GSUVMRChtY191bWNfc3RhdHVzLCBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDAsIEVycm9yQ29kZUV4dCkgPT0gNiAmJgorCSAgICBSRUdfR0VUX0ZJRUxEKG1jX3VtY19zdGF0dXMsIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMCwgVmFsKSA9PSAxICYmCisJICAgIFJFR19HRVRfRklFTEQobWNfdW1jX3N0YXR1cywgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwLCBDRUNDKSA9PSAxKQorCQkqZXJyb3JfY291bnQgKz0gMTsKK30KKworc3RhdGljIHZvaWQgdW1jX3Y2XzFfcXVlcnJ5X3VuY29ycmVjdGFibGVfZXJyb3JfY291bnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCQkgICAgICB1aW50MzJfdCB1bWNfcmVnX29mZnNldCwKKwkJCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgKmVycm9yX2NvdW50KQoreworCXVpbnQ2NF90IG1jX3VtY19zdGF0dXM7CisJdWludDMyX3QgbWNfdW1jX3N0YXR1c19hZGRyOworCisJbWNfdW1jX3N0YXR1c19hZGRyID0KKyAgICAgICAgICAgICAgICBTT0MxNV9SRUdfT0ZGU0VUKFVNQywgMCwgbW1NQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDApOworCisJLyogY2hlY2sgdGhlIE1DVU1DX1NUQVRVUyAqLworCW1jX3VtY19zdGF0dXMgPSBSUkVHNjRfVU1DKG1jX3VtY19zdGF0dXNfYWRkciArIHVtY19yZWdfb2Zmc2V0KTsKKwlpZiAoKFJFR19HRVRfRklFTEQobWNfdW1jX3N0YXR1cywgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwLCBWYWwpID09IDEpICYmCisJICAgIChSRUdfR0VUX0ZJRUxEKG1jX3VtY19zdGF0dXMsIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMCwgRGVmZXJyZWQpID09IDEgfHwKKwkgICAgUkVHX0dFVF9GSUVMRChtY191bWNfc3RhdHVzLCBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDAsIFVFQ0MpID09IDEgfHwKKwkgICAgUkVHX0dFVF9GSUVMRChtY191bWNfc3RhdHVzLCBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDAsIFBDQykgPT0gMSB8fAorCSAgICBSRUdfR0VUX0ZJRUxEKG1jX3VtY19zdGF0dXMsIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMCwgVUMpID09IDEgfHwKKwkgICAgUkVHX0dFVF9GSUVMRChtY191bWNfc3RhdHVzLCBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDAsIFRDQykgPT0gMSkpCisJCSplcnJvcl9jb3VudCArPSAxOworfQorCitzdGF0aWMgdm9pZCB1bWNfdjZfMV9xdWVyeV9lcnJvcl9jb3VudChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkJICAgc3RydWN0IHJhc19lcnJfZGF0YSAqZXJyX2RhdGEsIHVpbnQzMl90IHVtY19yZWdfb2Zmc2V0LAorCQkJCQkgICB1aW50MzJfdCBjaGFubmVsX2luZGV4KQoreworCXVtY192Nl8xX3F1ZXJ5X2NvcnJlY3RhYmxlX2Vycm9yX2NvdW50KGFkZXYsIHVtY19yZWdfb2Zmc2V0LAorCQkJCQkJICAgJihlcnJfZGF0YS0+Y2VfY291bnQpKTsKKwl1bWNfdjZfMV9xdWVycnlfdW5jb3JyZWN0YWJsZV9lcnJvcl9jb3VudChhZGV2LCB1bWNfcmVnX29mZnNldCwKKwkJCQkJCSAgJihlcnJfZGF0YS0+dWVfY291bnQpKTsKK30KKworc3RhdGljIHZvaWQgdW1jX3Y2XzFfcXVlcnlfcmFzX2Vycm9yX2NvdW50KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgICB2b2lkICpyYXNfZXJyb3Jfc3RhdHVzKQoreworCWFtZGdwdV91bWNfZm9yX2VhY2hfY2hhbm5lbCh1bWNfdjZfMV9xdWVyeV9lcnJvcl9jb3VudCk7Cit9CisKK3N0YXRpYyB2b2lkIHVtY192Nl8xX3F1ZXJ5X2Vycm9yX2FkZHJlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCSBzdHJ1Y3QgcmFzX2Vycl9kYXRhICplcnJfZGF0YSwKKwkJCQkJIHVpbnQzMl90IHVtY19yZWdfb2Zmc2V0LCB1aW50MzJfdCBjaGFubmVsX2luZGV4KQoreworCXVpbnQzMl90IGxzYiwgbWNfdW1jX3N0YXR1c19hZGRyOworCXVpbnQ2NF90IG1jX3VtY19zdGF0dXMsIGVycl9hZGRyOworCisJbWNfdW1jX3N0YXR1c19hZGRyID0KKwkJU09DMTVfUkVHX09GRlNFVChVTUMsIDAsIG1tTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwKTsKKworCS8qIHNraXAgZXJyb3IgYWRkcmVzcyBwcm9jZXNzIGlmIC1FTk9NRU0gKi8KKwlpZiAoIWVycl9kYXRhLT5lcnJfYWRkcikgeworCQkvKiBjbGVhciB1bWMgc3RhdHVzICovCisJCVdSRUc2NF9VTUMobWNfdW1jX3N0YXR1c19hZGRyICsgdW1jX3JlZ19vZmZzZXQsIDB4MFVMTCk7CisJCXJldHVybjsKKwl9CisKKwltY191bWNfc3RhdHVzID0gUlJFRzY0X1VNQyhtY191bWNfc3RhdHVzX2FkZHIgKyB1bWNfcmVnX29mZnNldCk7CisKKwkvKiBjYWxjdWxhdGUgZXJyb3IgYWRkcmVzcyBpZiB1ZS9jZSBlcnJvciBpcyBkZXRlY3RlZCAqLworCWlmIChSRUdfR0VUX0ZJRUxEKG1jX3VtY19zdGF0dXMsIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMCwgVmFsKSA9PSAxICYmCisJICAgIChSRUdfR0VUX0ZJRUxEKG1jX3VtY19zdGF0dXMsIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMCwgVUVDQykgPT0gMSB8fAorCSAgICBSRUdfR0VUX0ZJRUxEKG1jX3VtY19zdGF0dXMsIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMCwgQ0VDQykgPT0gMSkpIHsKKwkJZXJyX2FkZHIgPSBSUkVHNjRfUENJRShzbW5NQ0FfVU1DMF9NQ1VNQ19BRERSVDAgKyB1bWNfcmVnX29mZnNldCAqIDQpOworCisJCS8qIHRoZSBsb3dlc3QgbHNiIGJpdHMgc2hvdWxkIGJlIGlnbm9yZWQgKi8KKwkJbHNiID0gUkVHX0dFVF9GSUVMRChlcnJfYWRkciwgTUNBX1VNQ19VTUMwX01DVU1DX0FERFJUMCwgTFNCKTsKKwkJZXJyX2FkZHIgPSBSRUdfR0VUX0ZJRUxEKGVycl9hZGRyLCBNQ0FfVU1DX1VNQzBfTUNVTUNfQUREUlQwLCBFcnJvckFkZHIpOworCQllcnJfYWRkciAmPSB+KCgweDFVTEwgPDwgbHNiKSAtIDEpOworCisJCS8qIHRyYW5zbGF0ZSB1bWMgY2hhbm5lbCBhZGRyZXNzIHRvIHNvYyBwYSwgMyBwYXJ0cyBhcmUgaW5jbHVkZWQgKi8KKwkJZXJyX2RhdGEtPmVycl9hZGRyW2Vycl9kYXRhLT5lcnJfYWRkcl9jbnRdID0KKwkJCQkJCUFERFJfT0ZfOEtCX0JMT0NLKGVycl9hZGRyKSB8CisJCQkJCQlBRERSX09GXzI1NkJfQkxPQ0soY2hhbm5lbF9pbmRleCkgfAorCQkJCQkJT0ZGU0VUX0lOXzI1NkJfQkxPQ0soZXJyX2FkZHIpOworCisJCWVycl9kYXRhLT5lcnJfYWRkcl9jbnQrKzsKKwl9CisKKwkvKiBjbGVhciB1bWMgc3RhdHVzICovCisJV1JFRzY0X1VNQyhtY191bWNfc3RhdHVzX2FkZHIgKyB1bWNfcmVnX29mZnNldCwgMHgwVUxMKTsKK30KKworc3RhdGljIHZvaWQgdW1jX3Y2XzFfcXVlcnlfcmFzX2Vycm9yX2FkZHJlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCSAgICAgdm9pZCAqcmFzX2Vycm9yX3N0YXR1cykKK3sKKwlhbWRncHVfdW1jX2Zvcl9lYWNoX2NoYW5uZWwodW1jX3Y2XzFfcXVlcnlfZXJyb3JfYWRkcmVzcyk7Cit9CisKK3N0YXRpYyB2b2lkIHVtY192Nl8xX3Jhc19pbml0X3Blcl9jaGFubmVsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgc3RydWN0IHJhc19lcnJfZGF0YSAqZXJyX2RhdGEsCisJCQkJCSB1aW50MzJfdCB1bWNfcmVnX29mZnNldCwgdWludDMyX3QgY2hhbm5lbF9pbmRleCkKK3sKKwl1aW50MzJfdCBlY2NfZXJyX2NudF9zZWwsIGVjY19lcnJfY250X3NlbF9hZGRyOworCXVpbnQzMl90IGVjY19lcnJfY250X2FkZHI7CisKKwllY2NfZXJyX2NudF9zZWxfYWRkciA9CisJCVNPQzE1X1JFR19PRkZTRVQoVU1DLCAwLCBtbVVNQ0NIMF8wX0VjY0VyckNudFNlbCk7CisJZWNjX2Vycl9jbnRfYWRkciA9CisJCVNPQzE1X1JFR19PRkZTRVQoVU1DLCAwLCBtbVVNQ0NIMF8wX0VjY0VyckNudCk7CisKKwkvKiBzZWxlY3QgdGhlIGxvd2VyIGNoaXAgYW5kIGNoZWNrIHRoZSBlcnJvciBjb3VudCAqLworCWVjY19lcnJfY250X3NlbCA9IFJSRUczMihlY2NfZXJyX2NudF9zZWxfYWRkciArIHVtY19yZWdfb2Zmc2V0KTsKKwllY2NfZXJyX2NudF9zZWwgPSBSRUdfU0VUX0ZJRUxEKGVjY19lcnJfY250X3NlbCwgVU1DQ0gwXzBfRWNjRXJyQ250U2VsLAorCQkJCQlFY2NFcnJDbnRDc1NlbCwgMCk7CisJLyogc2V0IGNlIGVycm9yIGludGVycnVwdCB0eXBlIHRvIEFQSUMgYmFzZWQgaW50ZXJydXB0ICovCisJZWNjX2Vycl9jbnRfc2VsID0gUkVHX1NFVF9GSUVMRChlY2NfZXJyX2NudF9zZWwsIFVNQ0NIMF8wX0VjY0VyckNudFNlbCwKKwkJCQkJRWNjRXJySW50LCAweDEpOworCVdSRUczMihlY2NfZXJyX2NudF9zZWxfYWRkciArIHVtY19yZWdfb2Zmc2V0LCBlY2NfZXJyX2NudF9zZWwpOworCS8qIHNldCBlcnJvciBjb3VudCB0byBpbml0aWFsIHZhbHVlICovCisJV1JFRzMyKGVjY19lcnJfY250X2FkZHIgKyB1bWNfcmVnX29mZnNldCwgVU1DX1Y2XzFfQ0VfQ05UX0lOSVQpOworCisJLyogc2VsZWN0IHRoZSBoaWdoZXIgY2hpcCBhbmQgY2hlY2sgdGhlIGVyciBjb3VudGVyICovCisJZWNjX2Vycl9jbnRfc2VsID0gUkVHX1NFVF9GSUVMRChlY2NfZXJyX2NudF9zZWwsIFVNQ0NIMF8wX0VjY0VyckNudFNlbCwKKwkJCQkJRWNjRXJyQ250Q3NTZWwsIDEpOworCVdSRUczMihlY2NfZXJyX2NudF9zZWxfYWRkciArIHVtY19yZWdfb2Zmc2V0LCBlY2NfZXJyX2NudF9zZWwpOworCVdSRUczMihlY2NfZXJyX2NudF9hZGRyICsgdW1jX3JlZ19vZmZzZXQsIFVNQ19WNl8xX0NFX0NOVF9JTklUKTsKK30KKworc3RhdGljIHZvaWQgdW1jX3Y2XzFfcmFzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJdm9pZCAqcmFzX2Vycm9yX3N0YXR1cyA9IE5VTEw7CisKKwlhbWRncHVfdW1jX2Zvcl9lYWNoX2NoYW5uZWwodW1jX3Y2XzFfcmFzX2luaXRfcGVyX2NoYW5uZWwpOworfQorCitjb25zdCBzdHJ1Y3QgYW1kZ3B1X3VtY19mdW5jcyB1bWNfdjZfMV9mdW5jcyA9IHsKKwkucmFzX2luaXQgPSB1bWNfdjZfMV9yYXNfaW5pdCwKKwkucXVlcnlfcmFzX2Vycm9yX2NvdW50ID0gdW1jX3Y2XzFfcXVlcnlfcmFzX2Vycm9yX2NvdW50LAorCS5xdWVyeV9yYXNfZXJyb3JfYWRkcmVzcyA9IHVtY192Nl8xX3F1ZXJ5X3Jhc19lcnJvcl9hZGRyZXNzLAorCS5lbmFibGVfdW1jX2luZGV4X21vZGUgPSB1bWNfdjZfMV9lbmFibGVfdW1jX2luZGV4X21vZGUsCisJLmRpc2FibGVfdW1jX2luZGV4X21vZGUgPSB1bWNfdjZfMV9kaXNhYmxlX3VtY19pbmRleF9tb2RlLAorfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3VtY192Nl8xLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91bWNfdjZfMS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhYjljYmQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91bWNfdjZfMS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaWZuZGVmIF9fVU1DX1Y2XzFfSF9fCisjZGVmaW5lIF9fVU1DX1Y2XzFfSF9fCisKKyNpbmNsdWRlICJzb2MxNV9jb21tb24uaCIKKyNpbmNsdWRlICJhbWRncHUuaCIKKworLyogSEJNICBNZW1vcnkgQ2hhbm5lbCBXaWR0aCAqLworI2RlZmluZSBVTUNfVjZfMV9IQk1fTUVNT1JZX0NIQU5ORUxfV0lEVEgJMTI4CisvKiBudW1iZXIgb2YgdW1jIGNoYW5uZWwgaW5zdGFuY2Ugd2l0aCBtZW1vcnkgbWFwIHJlZ2lzdGVyIGFjY2VzcyAqLworI2RlZmluZSBVTUNfVjZfMV9DSEFOTkVMX0lOU1RBTkNFX05VTQkJNAorLyogbnVtYmVyIG9mIHVtYyBpbnN0YW5jZSB3aXRoIG1lbW9yeSBtYXAgcmVnaXN0ZXIgYWNjZXNzICovCisjZGVmaW5lIFVNQ19WNl8xX1VNQ19JTlNUQU5DRV9OVU0JCTgKKy8qIHRvdGFsIGNoYW5uZWwgaW5zdGFuY2VzIGluIG9uZSB1bWMgYmxvY2sgKi8KKyNkZWZpbmUgVU1DX1Y2XzFfVE9UQUxfQ0hBTk5FTF9OVU0JKFVNQ19WNl8xX0NIQU5ORUxfSU5TVEFOQ0VfTlVNICogVU1DX1Y2XzFfVU1DX0lOU1RBTkNFX05VTSkKKy8qIFVNQyByZWdpc2VyIHBlciBjaGFubmVsIG9mZnNldCAqLworI2RlZmluZSBVTUNfVjZfMV9QRVJfQ0hBTk5FTF9PRkZTRVQJCTB4ODAwCisKKy8qIEVjY0VyckNudCBtYXggdmFsdWUgKi8KKyNkZWZpbmUgVU1DX1Y2XzFfQ0VfQ05UX01BWAkJMHhmZmZmCisvKiB1bWMgY2UgaW50ZXJydXB0IHRocmVzaG9sZCAqLworI2RlZmluZSBVTUNfVjZfMV9DRV9JTlRfVEhSRVNIT0xECTB4ZmZmZgorLyogdW1jIGNlIGNvdW50IGluaXRpYWwgdmFsdWUgKi8KKyNkZWZpbmUgVU1DX1Y2XzFfQ0VfQ05UX0lOSVQJKFVNQ19WNl8xX0NFX0NOVF9NQVggLSBVTUNfVjZfMV9DRV9JTlRfVEhSRVNIT0xEKQorCitleHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV91bWNfZnVuY3MgdW1jX3Y2XzFfZnVuY3M7CitleHRlcm4gY29uc3QgdWludDMyX3QKKwl1bWNfdjZfMV9jaGFubmVsX2lkeF90YmxbVU1DX1Y2XzFfVU1DX0lOU1RBTkNFX05VTV1bVU1DX1Y2XzFfQ0hBTk5FTF9JTlNUQU5DRV9OVU1dOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjdfMC5jCmluZGV4IGE2YmZlNzYuLjAxZjY1OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y3XzAuYwpAQCAtMTc2Myw3ICsxNzYzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB1dmRfdjdfMF9yaW5nX3ZtX2Z1bmNzID0gewogCS5hbGlnbl9tYXNrID0gMHhmLAogCS5zdXBwb3J0XzY0Yml0X3B0cnMgPSBmYWxzZSwKIAkubm9fdXNlcl9mZW5jZSA9IHRydWUsCi0JLnZtaHViID0gQU1ER1BVX01NSFVCLAorCS52bWh1YiA9IEFNREdQVV9NTUhVQl8wLAogCS5nZXRfcnB0ciA9IHV2ZF92N18wX3JpbmdfZ2V0X3JwdHIsCiAJLmdldF93cHRyID0gdXZkX3Y3XzBfcmluZ19nZXRfd3B0ciwKIAkuc2V0X3dwdHIgPSB1dmRfdjdfMF9yaW5nX3NldF93cHRyLApAQCAtMTc5Niw3ICsxNzk2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB1dmRfdjdfMF9lbmNfcmluZ192bV9mdW5jcyA9IHsKIAkubm9wID0gSEVWQ19FTkNfQ01EX05PX09QLAogCS5zdXBwb3J0XzY0Yml0X3B0cnMgPSBmYWxzZSwKIAkubm9fdXNlcl9mZW5jZSA9IHRydWUsCi0JLnZtaHViID0gQU1ER1BVX01NSFVCLAorCS52bWh1YiA9IEFNREdQVV9NTUhVQl8wLAogCS5nZXRfcnB0ciA9IHV2ZF92N18wX2VuY19yaW5nX2dldF9ycHRyLAogCS5nZXRfd3B0ciA9IHV2ZF92N18wX2VuY19yaW5nX2dldF93cHRyLAogCS5zZXRfd3B0ciA9IHV2ZF92N18wX2VuY19yaW5nX3NldF93cHRyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNlX3Y0XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92NF8wLmMKaW5kZXggZWFmYmU4ZC4uNjgzNzAxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNlX3Y0XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjRfMC5jCkBAIC0xMDcwLDcgKzEwNzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHZjZV92NF8wX3Jpbmdfdm1fZnVuY3MgPSB7CiAJLm5vcCA9IFZDRV9DTURfTk9fT1AsCiAJLnN1cHBvcnRfNjRiaXRfcHRycyA9IGZhbHNlLAogCS5ub191c2VyX2ZlbmNlID0gdHJ1ZSwKLQkudm1odWIgPSBBTURHUFVfTU1IVUIsCisJLnZtaHViID0gQU1ER1BVX01NSFVCXzAsCiAJLmdldF9ycHRyID0gdmNlX3Y0XzBfcmluZ19nZXRfcnB0ciwKIAkuZ2V0X3dwdHIgPSB2Y2VfdjRfMF9yaW5nX2dldF93cHRyLAogCS5zZXRfd3B0ciA9IHZjZV92NF8wX3Jpbmdfc2V0X3dwdHIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYwppbmRleCBkZGUyMmI3Li45M2IzNTAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMKQEAgLTYzLDYgKzYzLDcgQEAgc3RhdGljIGludCB2Y25fdjFfMF9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAorCWFkZXYtPnZjbi5udW1fdmNuX2luc3QgPSAxOwogCWFkZXYtPnZjbi5udW1fZW5jX3JpbmdzID0gMjsKIAogCXZjbl92MV8wX3NldF9kZWNfcmluZ19mdW5jcyhhZGV2KTsKQEAgLTg3LDIwICs4OCwyMSBAQCBzdGF0aWMgaW50IHZjbl92MV8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJLyogVkNOIERFQyBUUkFQICovCi0JciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIFNPQzE1X0lIX0NMSUVOVElEX1ZDTiwgVkNOXzFfMF9fU1JDSURfX1VWRF9TWVNURU1fTUVTU0FHRV9JTlRFUlJVUFQsICZhZGV2LT52Y24uaXJxKTsKKwlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgU09DMTVfSUhfQ0xJRU5USURfVkNOLAorCQkJVkNOXzFfMF9fU1JDSURfX1VWRF9TWVNURU1fTUVTU0FHRV9JTlRFUlJVUFQsICZhZGV2LT52Y24uaW5zdC0+aXJxKTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKIAkvKiBWQ04gRU5DIFRSQVAgKi8KIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV9lbmNfcmluZ3M7ICsraSkgewogCQlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgU09DMTVfSUhfQ0xJRU5USURfVkNOLCBpICsgVkNOXzFfMF9fU1JDSURfX1VWRF9FTkNfR0VORVJBTF9QVVJQT1NFLAotCQkJCQkmYWRldi0+dmNuLmlycSk7CisJCQkJCSZhZGV2LT52Y24uaW5zdC0+aXJxKTsKIAkJaWYgKHIpCiAJCQlyZXR1cm4gcjsKIAl9CiAKIAkvKiBWQ04gSlBFRyBUUkFQICovCi0JciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIFNPQzE1X0lIX0NMSUVOVElEX1ZDTiwgMTI2LCAmYWRldi0+dmNuLmlycSk7CisJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIFNPQzE1X0lIX0NMSUVOVElEX1ZDTiwgMTI2LCAmYWRldi0+dmNuLmluc3QtPmlycSk7CiAJaWYgKHIpCiAJCXJldHVybiByOwogCkBAIC0xMjIsMzkgKzEyNCwzOSBAQCBzdGF0aWMgaW50IHZjbl92MV8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCWlmIChyKQogCQlyZXR1cm4gcjsKIAotCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZGVjOworCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZGVjOwogCXNwcmludGYocmluZy0+bmFtZSwgInZjbl9kZWMiKTsKLQlyID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsICZhZGV2LT52Y24uaXJxLCAwKTsKKwlyID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsICZhZGV2LT52Y24uaW5zdC0+aXJxLCAwKTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKLQlhZGV2LT52Y24uaW50ZXJuYWwuc2NyYXRjaDkgPSBhZGV2LT52Y24uZXh0ZXJuYWwuc2NyYXRjaDkgPQorCWFkZXYtPnZjbi5pbnRlcm5hbC5zY3JhdGNoOSA9IGFkZXYtPnZjbi5pbnN0LT5leHRlcm5hbC5zY3JhdGNoOSA9CiAJCVNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9TQ1JBVENIOSk7Ci0JYWRldi0+dmNuLmludGVybmFsLmRhdGEwID0gYWRldi0+dmNuLmV4dGVybmFsLmRhdGEwID0KKwlhZGV2LT52Y24uaW50ZXJuYWwuZGF0YTAgPSBhZGV2LT52Y24uaW5zdC0+ZXh0ZXJuYWwuZGF0YTAgPQogCQlTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfR1BDT01fVkNQVV9EQVRBMCk7Ci0JYWRldi0+dmNuLmludGVybmFsLmRhdGExID0gYWRldi0+dmNuLmV4dGVybmFsLmRhdGExID0KKwlhZGV2LT52Y24uaW50ZXJuYWwuZGF0YTEgPSBhZGV2LT52Y24uaW5zdC0+ZXh0ZXJuYWwuZGF0YTEgPQogCQlTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfR1BDT01fVkNQVV9EQVRBMSk7Ci0JYWRldi0+dmNuLmludGVybmFsLmNtZCA9IGFkZXYtPnZjbi5leHRlcm5hbC5jbWQgPQorCWFkZXYtPnZjbi5pbnRlcm5hbC5jbWQgPSBhZGV2LT52Y24uaW5zdC0+ZXh0ZXJuYWwuY21kID0KIAkJU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0dQQ09NX1ZDUFVfQ01EKTsKLQlhZGV2LT52Y24uaW50ZXJuYWwubm9wID0gYWRldi0+dmNuLmV4dGVybmFsLm5vcCA9CisJYWRldi0+dmNuLmludGVybmFsLm5vcCA9IGFkZXYtPnZjbi5pbnN0LT5leHRlcm5hbC5ub3AgPQogCQlTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTk9fT1ApOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyArK2kpIHsKLQkJcmluZyA9ICZhZGV2LT52Y24ucmluZ19lbmNbaV07CisJCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jW2ldOwogCQlzcHJpbnRmKHJpbmctPm5hbWUsICJ2Y25fZW5jJWQiLCBpKTsKLQkJciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgNTEyLCAmYWRldi0+dmNuLmlycSwgMCk7CisJCXIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDUxMiwgJmFkZXYtPnZjbi5pbnN0LT5pcnEsIDApOwogCQlpZiAocikKIAkJCXJldHVybiByOwogCX0KIAotCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfanBlZzsKKwlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2pwZWc7CiAJc3ByaW50ZihyaW5nLT5uYW1lLCAidmNuX2pwZWciKTsKLQlyID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsICZhZGV2LT52Y24uaXJxLCAwKTsKKwlyID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsICZhZGV2LT52Y24uaW5zdC0+aXJxLCAwKTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKIAlhZGV2LT52Y24ucGF1c2VfZHBnX21vZGUgPSB2Y25fdjFfMF9wYXVzZV9kcGdfbW9kZTsKLQlhZGV2LT52Y24uaW50ZXJuYWwuanBlZ19waXRjaCA9IGFkZXYtPnZjbi5leHRlcm5hbC5qcGVnX3BpdGNoID0KKwlhZGV2LT52Y24uaW50ZXJuYWwuanBlZ19waXRjaCA9IGFkZXYtPnZjbi5pbnN0LT5leHRlcm5hbC5qcGVnX3BpdGNoID0KIAkJU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0pQRUdfUElUQ0gpOwogCiAJcmV0dXJuIDA7CkBAIC0xOTEsNyArMTkzLDcgQEAgc3RhdGljIGludCB2Y25fdjFfMF9zd19maW5pKHZvaWQgKmhhbmRsZSkKIHN0YXRpYyBpbnQgdmNuX3YxXzBfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7Ci0Jc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2RlYzsKKwlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZGVjOwogCWludCBpLCByOwogCiAJciA9IGFtZGdwdV9yaW5nX3Rlc3RfaGVscGVyKHJpbmcpOwpAQCAtMTk5LDE0ICsyMDEsMTQgQEAgc3RhdGljIGludCB2Y25fdjFfMF9od19pbml0KHZvaWQgKmhhbmRsZSkKIAkJZ290byBkb25lOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyArK2kpIHsKLQkJcmluZyA9ICZhZGV2LT52Y24ucmluZ19lbmNbaV07CisJCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jW2ldOwogCQlyaW5nLT5zY2hlZC5yZWFkeSA9IHRydWU7CiAJCXIgPSBhbWRncHVfcmluZ190ZXN0X2hlbHBlcihyaW5nKTsKIAkJaWYgKHIpCiAJCQlnb3RvIGRvbmU7CiAJfQogCi0JcmluZyA9ICZhZGV2LT52Y24ucmluZ19qcGVnOworCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfanBlZzsKIAlyID0gYW1kZ3B1X3JpbmdfdGVzdF9oZWxwZXIocmluZyk7CiAJaWYgKHIpCiAJCWdvdG8gZG9uZTsKQEAgLTIyOSw3ICsyMzEsNyBAQCBzdGF0aWMgaW50IHZjbl92MV8wX2h3X2luaXQodm9pZCAqaGFuZGxlKQogc3RhdGljIGludCB2Y25fdjFfMF9od19maW5pKHZvaWQgKmhhbmRsZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKLQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZGVjOworCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9ICZhZGV2LT52Y24uaW5zdC0+cmluZ19kZWM7CiAKIAlpZiAoKGFkZXYtPnBnX2ZsYWdzICYgQU1EX1BHX1NVUFBPUlRfVkNOX0RQRykgfHwKIAkJUlJFRzMyX1NPQzE1KFZDTiwgMCwgbW1VVkRfU1RBVFVTKSkKQEAgLTMwNCw5ICszMDYsOSBAQCBzdGF0aWMgdm9pZCB2Y25fdjFfMF9tY19yZXN1bWVfc3BnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCW9mZnNldCA9IDA7CiAJfSBlbHNlIHsKIAkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0xPVywKLQkJCWxvd2VyXzMyX2JpdHMoYWRldi0+dmNuLmdwdV9hZGRyKSk7CisJCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkcikpOwogCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSCwKLQkJCXVwcGVyXzMyX2JpdHMoYWRldi0+dmNuLmdwdV9hZGRyKSk7CisJCQl1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkcikpOwogCQlvZmZzZXQgPSBzaXplOwogCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDAsCiAJCQkgICAgIEFNREdQVV9VVkRfRklSTVdBUkVfT0ZGU0VUID4+IDMpOwpAQCAtMzE2LDE3ICszMTgsMTcgQEAgc3RhdGljIHZvaWQgdmNuX3YxXzBfbWNfcmVzdW1lX3NwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJLyogY2FjaGUgd2luZG93IDE6IHN0YWNrICovCiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUxXzY0QklUX0JBUl9MT1csCi0JCSAgICAgbG93ZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIgKyBvZmZzZXQpKTsKKwkJICAgICBsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkciArIG9mZnNldCkpOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfSElHSCwKLQkJICAgICB1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciArIG9mZnNldCkpOworCQkgICAgIHVwcGVyXzMyX2JpdHMoYWRldi0+dmNuLmluc3QtPmdwdV9hZGRyICsgb2Zmc2V0KSk7CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQxLCAwKTsKIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUxLCBBTURHUFVfVkNOX1NUQUNLX1NJWkUpOwogCiAJLyogY2FjaGUgd2luZG93IDI6IGNvbnRleHQgKi8KIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0xPVywKLQkJICAgICBsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciArIG9mZnNldCArIEFNREdQVV9WQ05fU1RBQ0tfU0laRSkpOworCQkgICAgIGxvd2VyXzMyX2JpdHMoYWRldi0+dmNuLmluc3QtPmdwdV9hZGRyICsgb2Zmc2V0ICsgQU1ER1BVX1ZDTl9TVEFDS19TSVpFKSk7CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUyXzY0QklUX0JBUl9ISUdILAotCQkgICAgIHVwcGVyXzMyX2JpdHMoYWRldi0+dmNuLmdwdV9hZGRyICsgb2Zmc2V0ICsgQU1ER1BVX1ZDTl9TVEFDS19TSVpFKSk7CisJCSAgICAgdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uaW5zdC0+Z3B1X2FkZHIgKyBvZmZzZXQgKyBBTURHUFVfVkNOX1NUQUNLX1NJWkUpKTsKIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDIsIDApOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTIsIEFNREdQVV9WQ05fQ09OVEVYVF9TSVpFKTsKIApAQCAtMzc0LDkgKzM3Niw5IEBAIHN0YXRpYyB2b2lkIHZjbl92MV8wX21jX3Jlc3VtZV9kcGdfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJb2Zmc2V0ID0gMDsKIAl9IGVsc2UgewogCQlXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfTE9XLAotCQkJbG93ZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIpLCAweEZGRkZGRkZGLCAwKTsKKwkJCWxvd2VyXzMyX2JpdHMoYWRldi0+dmNuLmluc3QtPmdwdV9hZGRyKSwgMHhGRkZGRkZGRiwgMCk7CiAJCVdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9ISUdILAotCQkJdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIpLCAweEZGRkZGRkZGLCAwKTsKKwkJCXVwcGVyXzMyX2JpdHMoYWRldi0+dmNuLmluc3QtPmdwdV9hZGRyKSwgMHhGRkZGRkZGRiwgMCk7CiAJCW9mZnNldCA9IHNpemU7CiAJCVdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMCwKIAkJCSAgICAgQU1ER1BVX1VWRF9GSVJNV0FSRV9PRkZTRVQgPj4gMywgMHhGRkZGRkZGRiwgMCk7CkBAIC0zODYsOSArMzg4LDkgQEAgc3RhdGljIHZvaWQgdmNuX3YxXzBfbWNfcmVzdW1lX2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJLyogY2FjaGUgd2luZG93IDE6IHN0YWNrICovCiAJV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUxXzY0QklUX0JBUl9MT1csCi0JCSAgICAgbG93ZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIgKyBvZmZzZXQpLCAweEZGRkZGRkZGLCAwKTsKKwkJICAgICBsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkciArIG9mZnNldCksIDB4RkZGRkZGRkYsIDApOwogCVdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfSElHSCwKLQkJICAgICB1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciArIG9mZnNldCksIDB4RkZGRkZGRkYsIDApOworCQkgICAgIHVwcGVyXzMyX2JpdHMoYWRldi0+dmNuLmluc3QtPmdwdV9hZGRyICsgb2Zmc2V0KSwgMHhGRkZGRkZGRiwgMCk7CiAJV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQxLCAwLAogCQkJICAgICAweEZGRkZGRkZGLCAwKTsKIAlXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUxLCBBTURHUFVfVkNOX1NUQUNLX1NJWkUsCkBAIC0zOTYsMTAgKzM5OCwxMCBAQCBzdGF0aWMgdm9pZCB2Y25fdjFfMF9tY19yZXN1bWVfZHBnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIAkvKiBjYWNoZSB3aW5kb3cgMjogY29udGV4dCAqLwogCVdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJVF9CQVJfTE9XLAotCQkgICAgIGxvd2VyXzMyX2JpdHMoYWRldi0+dmNuLmdwdV9hZGRyICsgb2Zmc2V0ICsgQU1ER1BVX1ZDTl9TVEFDS19TSVpFKSwKKwkJICAgICBsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkciArIG9mZnNldCArIEFNREdQVV9WQ05fU1RBQ0tfU0laRSksCiAJCQkgICAgIDB4RkZGRkZGRkYsIDApOwogCVdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJVF9CQVJfSElHSCwKLQkJICAgICB1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciArIG9mZnNldCArIEFNREdQVV9WQ05fU1RBQ0tfU0laRSksCisJCSAgICAgdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uaW5zdC0+Z3B1X2FkZHIgKyBvZmZzZXQgKyBBTURHUFVfVkNOX1NUQUNLX1NJWkUpLAogCQkJICAgICAweEZGRkZGRkZGLCAwKTsKIAlXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDIsIDAsIDB4RkZGRkZGRkYsIDApOwogCVdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTIsIEFNREdQVV9WQ05fQ09OVEVYVF9TSVpFLApAQCAtNzc5LDcgKzc4MSw3IEBAIHN0YXRpYyB2b2lkIHZjbl8xXzBfZW5hYmxlX3N0YXRpY19wb3dlcl9nYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAgKi8KIHN0YXRpYyBpbnQgdmNuX3YxXzBfc3RhcnRfc3BnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0Jc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2RlYzsKKwlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZGVjOwogCXVpbnQzMl90IHJiX2J1ZnN6LCB0bXA7CiAJdWludDMyX3QgbG1pX3N3YXBfY250bDsKIAlpbnQgaSwgaiwgcjsKQEAgLTkzMiwyMSArOTM0LDIxIEBAIHN0YXRpYyBpbnQgdmNuX3YxXzBfc3RhcnRfc3BnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJV1JFRzMyX1AoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1JCQ19SQl9DTlRMKSwgMCwKIAkJCX5VVkRfUkJDX1JCX0NOVExfX1JCX05PX0ZFVENIX01BU0spOwogCi0JcmluZyA9ICZhZGV2LT52Y24ucmluZ19lbmNbMF07CisJcmluZyA9ICZhZGV2LT52Y24uaW5zdC0+cmluZ19lbmNbMF07CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfUlBUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfV1BUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfQkFTRV9MTywgcmluZy0+Z3B1X2FkZHIpOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0VfSEksIHVwcGVyXzMyX2JpdHMocmluZy0+Z3B1X2FkZHIpKTsKIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9TSVpFLCByaW5nLT5yaW5nX3NpemUgLyA0KTsKIAotCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZW5jWzFdOworCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jWzFdOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1JQVFIyLCBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9XUFRSMiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfQkFTRV9MTzIsIHJpbmctPmdwdV9hZGRyKTsKIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9CQVNFX0hJMiwgdXBwZXJfMzJfYml0cyhyaW5nLT5ncHVfYWRkcikpOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1NJWkUyLCByaW5nLT5yaW5nX3NpemUgLyA0KTsKIAotCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfanBlZzsKKwlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2pwZWc7CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfTE1JX0pSQkNfUkJfVk1JRCwgMCk7CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfSlJCQ19SQl9DTlRMLCBVVkRfSlJCQ19SQl9DTlRMX19SQl9OT19GRVRDSF9NQVNLIHwKIAkJCVVWRF9KUkJDX1JCX0NOVExfX1JCX1JQVFJfV1JfRU5fTUFTSyk7CkBAIC05NjgsNyArOTcwLDcgQEAgc3RhdGljIGludCB2Y25fdjFfMF9zdGFydF9zcGdfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogc3RhdGljIGludCB2Y25fdjFfMF9zdGFydF9kcGdfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZGVjOworCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9ICZhZGV2LT52Y24uaW5zdC0+cmluZ19kZWM7CiAJdWludDMyX3QgcmJfYnVmc3osIHRtcDsKIAl1aW50MzJfdCBsbWlfc3dhcF9jbnRsOwogCkBAIC0xMTA2LDcgKzExMDgsNyBAQCBzdGF0aWMgaW50IHZjbl92MV8wX3N0YXJ0X2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJflVWRF9SQkNfUkJfQ05UTF9fUkJfTk9fRkVUQ0hfTUFTSyk7CiAKIAkvKiBpbml0aWFsaXplIEpQRUcgd3B0ciAqLwotCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfanBlZzsKKwlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2pwZWc7CiAJcmluZy0+d3B0ciA9IFJSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0pSQkNfUkJfV1BUUik7CiAKIAkvKiBjb3B5IHBhdGNoIGNvbW1hbmRzIHRvIHRoZSBqcGVnIHJpbmcgKi8KQEAgLTEyNTUsMjEgKzEyNTcsMjEgQEAgc3RhdGljIGludCB2Y25fdjFfMF9wYXVzZV9kcGdfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJCSAgIFVWRF9EUEdfUEFVU0VfX05KX1BBVVNFX0RQR19BQ0tfTUFTSywgcmV0X2NvZGUpOwogCiAJCQkJLyogUmVzdG9yZSAqLwotCQkJCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZW5jWzBdOworCQkJCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jWzBdOwogCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0VfTE8sIHJpbmctPmdwdV9hZGRyKTsKIAkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9CQVNFX0hJLCB1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7CiAJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfU0laRSwgcmluZy0+cmluZ19zaXplIC8gNCk7CiAJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfUlBUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfV1BUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAKLQkJCQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2VuY1sxXTsKKwkJCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2VuY1sxXTsKIAkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9CQVNFX0xPMiwgcmluZy0+Z3B1X2FkZHIpOwogCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0VfSEkyLCB1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7CiAJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfU0laRTIsIHJpbmctPnJpbmdfc2l6ZSAvIDQpOwogCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1JQVFIyLCBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKIAkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9XUFRSMiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAKLQkJCQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2RlYzsKKwkJCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2RlYzsKIAkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQkNfUkJfV1BUUiwKIAkJCQkJCSAgIFJSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1NDUkFUQ0gyKSAmIDB4N0ZGRkZGRkYpOwogCQkJCVNPQzE1X1dBSVRfT05fUlJFRyhVVkQsIDAsIG1tVVZEX1BPV0VSX1NUQVRVUywKQEAgLTEzMTUsNyArMTMxNyw3IEBAIHN0YXRpYyBpbnQgdmNuX3YxXzBfcGF1c2VfZHBnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCQkJVVZEX0RQR19QQVVTRV9fSlBFR19QQVVTRV9EUEdfQUNLX01BU0ssIHJldF9jb2RlKTsKIAogCQkJCS8qIFJlc3RvcmUgKi8KLQkJCQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2pwZWc7CisJCQkJcmluZyA9ICZhZGV2LT52Y24uaW5zdC0+cmluZ19qcGVnOwogCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9KUkJDX1JCX1ZNSUQsIDApOwogCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0pSQkNfUkJfQ05UTCwKIAkJCQkJCQlVVkRfSlJCQ19SQl9DTlRMX19SQl9OT19GRVRDSF9NQVNLIHwKQEAgLTEzMjksNyArMTMzMSw3IEBAIHN0YXRpYyBpbnQgdmNuX3YxXzBfcGF1c2VfZHBnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfSlJCQ19SQl9DTlRMLAogCQkJCQkJCVVWRF9KUkJDX1JCX0NOVExfX1JCX1JQVFJfV1JfRU5fTUFTSyk7CiAKLQkJCQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2RlYzsKKwkJCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2RlYzsKIAkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQkNfUkJfV1BUUiwKIAkJCQkJCSAgIFJSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1NDUkFUQ0gyKSAmIDB4N0ZGRkZGRkYpOwogCQkJCVNPQzE1X1dBSVRfT05fUlJFRyhVVkQsIDAsIG1tVVZEX1BPV0VSX1NUQVRVUywKQEAgLTE1OTYsNyArMTU5OCw3IEBAIHN0YXRpYyB1aW50NjRfdCB2Y25fdjFfMF9lbmNfcmluZ19nZXRfcnB0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCi0JaWYgKHJpbmcgPT0gJmFkZXYtPnZjbi5yaW5nX2VuY1swXSkKKwlpZiAocmluZyA9PSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jWzBdKQogCQlyZXR1cm4gUlJFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfUlBUUik7CiAJZWxzZQogCQlyZXR1cm4gUlJFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfUlBUUjIpOwpAQCAtMTYxMyw3ICsxNjE1LDcgQEAgc3RhdGljIHVpbnQ2NF90IHZjbl92MV8wX2VuY19yaW5nX2dldF93cHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAKLQlpZiAocmluZyA9PSAmYWRldi0+dmNuLnJpbmdfZW5jWzBdKQorCWlmIChyaW5nID09ICZhZGV2LT52Y24uaW5zdC0+cmluZ19lbmNbMF0pCiAJCXJldHVybiBSUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9XUFRSKTsKIAllbHNlCiAJCXJldHVybiBSUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9XUFRSMik7CkBAIC0xNjMwLDcgKzE2MzIsNyBAQCBzdGF0aWMgdm9pZCB2Y25fdjFfMF9lbmNfcmluZ19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCi0JaWYgKHJpbmcgPT0gJmFkZXYtPnZjbi5yaW5nX2VuY1swXSkKKwlpZiAocmluZyA9PSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jWzBdKQogCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9XUFRSLAogCQkJbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAJZWxzZQpAQCAtMjExNCwxNiArMjExNiwxNiBAQCBzdGF0aWMgaW50IHZjbl92MV8wX3Byb2Nlc3NfaW50ZXJydXB0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJc3dpdGNoIChlbnRyeS0+c3JjX2lkKSB7CiAJY2FzZSAxMjQ6Ci0JCWFtZGdwdV9mZW5jZV9wcm9jZXNzKCZhZGV2LT52Y24ucmluZ19kZWMpOworCQlhbWRncHVfZmVuY2VfcHJvY2VzcygmYWRldi0+dmNuLmluc3QtPnJpbmdfZGVjKTsKIAkJYnJlYWs7CiAJY2FzZSAxMTk6Ci0JCWFtZGdwdV9mZW5jZV9wcm9jZXNzKCZhZGV2LT52Y24ucmluZ19lbmNbMF0pOworCQlhbWRncHVfZmVuY2VfcHJvY2VzcygmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jWzBdKTsKIAkJYnJlYWs7CiAJY2FzZSAxMjA6Ci0JCWFtZGdwdV9mZW5jZV9wcm9jZXNzKCZhZGV2LT52Y24ucmluZ19lbmNbMV0pOworCQlhbWRncHVfZmVuY2VfcHJvY2VzcygmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jWzFdKTsKIAkJYnJlYWs7CiAJY2FzZSAxMjY6Ci0JCWFtZGdwdV9mZW5jZV9wcm9jZXNzKCZhZGV2LT52Y24ucmluZ19qcGVnKTsKKwkJYW1kZ3B1X2ZlbmNlX3Byb2Nlc3MoJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2pwZWcpOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlEUk1fRVJST1IoIlVuaGFuZGxlZCBpbnRlcnJ1cHQ6ICVkICVkXG4iLApAQCAtMjE5OCw3ICsyMjAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB2Y25fdjFfMF9kZWNfcmluZ192bV9mdW5jcyA9IHsKIAkuYWxpZ25fbWFzayA9IDB4ZiwKIAkuc3VwcG9ydF82NGJpdF9wdHJzID0gZmFsc2UsCiAJLm5vX3VzZXJfZmVuY2UgPSB0cnVlLAotCS52bWh1YiA9IEFNREdQVV9NTUhVQiwKKwkudm1odWIgPSBBTURHUFVfTU1IVUJfMCwKIAkuZ2V0X3JwdHIgPSB2Y25fdjFfMF9kZWNfcmluZ19nZXRfcnB0ciwKIAkuZ2V0X3dwdHIgPSB2Y25fdjFfMF9kZWNfcmluZ19nZXRfd3B0ciwKIAkuc2V0X3dwdHIgPSB2Y25fdjFfMF9kZWNfcmluZ19zZXRfd3B0ciwKQEAgLTIyMzIsNyArMjIzNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MgdmNuX3YxXzBfZW5jX3Jpbmdfdm1fZnVuY3MgPSB7CiAJLm5vcCA9IFZDTl9FTkNfQ01EX05PX09QLAogCS5zdXBwb3J0XzY0Yml0X3B0cnMgPSBmYWxzZSwKIAkubm9fdXNlcl9mZW5jZSA9IHRydWUsCi0JLnZtaHViID0gQU1ER1BVX01NSFVCLAorCS52bWh1YiA9IEFNREdQVV9NTUhVQl8wLAogCS5nZXRfcnB0ciA9IHZjbl92MV8wX2VuY19yaW5nX2dldF9ycHRyLAogCS5nZXRfd3B0ciA9IHZjbl92MV8wX2VuY19yaW5nX2dldF93cHRyLAogCS5zZXRfd3B0ciA9IHZjbl92MV8wX2VuY19yaW5nX3NldF93cHRyLApAQCAtMjI2NCw3ICsyMjY2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB2Y25fdjFfMF9qcGVnX3Jpbmdfdm1fZnVuY3MgPSB7CiAJLm5vcCA9IFBBQ0tFVDAoMHg4MWZmLCAwKSwKIAkuc3VwcG9ydF82NGJpdF9wdHJzID0gZmFsc2UsCiAJLm5vX3VzZXJfZmVuY2UgPSB0cnVlLAotCS52bWh1YiA9IEFNREdQVV9NTUhVQiwKKwkudm1odWIgPSBBTURHUFVfTU1IVUJfMCwKIAkuZXh0cmFfZHcgPSA2NCwKIAkuZ2V0X3JwdHIgPSB2Y25fdjFfMF9qcGVnX3JpbmdfZ2V0X3JwdHIsCiAJLmdldF93cHRyID0gdmNuX3YxXzBfanBlZ19yaW5nX2dldF93cHRyLApAQCAtMjI5NSw3ICsyMjk3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB2Y25fdjFfMF9qcGVnX3Jpbmdfdm1fZnVuY3MgPSB7CiAKIHN0YXRpYyB2b2lkIHZjbl92MV8wX3NldF9kZWNfcmluZ19mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQlhZGV2LT52Y24ucmluZ19kZWMuZnVuY3MgPSAmdmNuX3YxXzBfZGVjX3Jpbmdfdm1fZnVuY3M7CisJYWRldi0+dmNuLmluc3QtPnJpbmdfZGVjLmZ1bmNzID0gJnZjbl92MV8wX2RlY19yaW5nX3ZtX2Z1bmNzOwogCURSTV9JTkZPKCJWQ04gZGVjb2RlIGlzIGVuYWJsZWQgaW4gVk0gbW9kZVxuIik7CiB9CiAKQEAgLTIzMDQsMTQgKzIzMDYsMTQgQEAgc3RhdGljIHZvaWQgdmNuX3YxXzBfc2V0X2VuY19yaW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyArK2kpCi0JCWFkZXYtPnZjbi5yaW5nX2VuY1tpXS5mdW5jcyA9ICZ2Y25fdjFfMF9lbmNfcmluZ192bV9mdW5jczsKKwkJYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jW2ldLmZ1bmNzID0gJnZjbl92MV8wX2VuY19yaW5nX3ZtX2Z1bmNzOwogCiAJRFJNX0lORk8oIlZDTiBlbmNvZGUgaXMgZW5hYmxlZCBpbiBWTSBtb2RlXG4iKTsKIH0KIAogc3RhdGljIHZvaWQgdmNuX3YxXzBfc2V0X2pwZWdfcmluZ19mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQlhZGV2LT52Y24ucmluZ19qcGVnLmZ1bmNzID0gJnZjbl92MV8wX2pwZWdfcmluZ192bV9mdW5jczsKKwlhZGV2LT52Y24uaW5zdC0+cmluZ19qcGVnLmZ1bmNzID0gJnZjbl92MV8wX2pwZWdfcmluZ192bV9mdW5jczsKIAlEUk1fSU5GTygiVkNOIGpwZWcgZGVjb2RlIGlzIGVuYWJsZWQgaW4gVk0gbW9kZVxuIik7CiB9CiAKQEAgLTIzMjIsOCArMjMyNCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MgdmNuX3YxXzBfaXJxX2Z1bmNzID0gewogCiBzdGF0aWMgdm9pZCB2Y25fdjFfMF9zZXRfaXJxX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCWFkZXYtPnZjbi5pcnEubnVtX3R5cGVzID0gYWRldi0+dmNuLm51bV9lbmNfcmluZ3MgKyAyOwotCWFkZXYtPnZjbi5pcnEuZnVuY3MgPSAmdmNuX3YxXzBfaXJxX2Z1bmNzOworCWFkZXYtPnZjbi5pbnN0LT5pcnEubnVtX3R5cGVzID0gYWRldi0+dmNuLm51bV9lbmNfcmluZ3MgKyAyOworCWFkZXYtPnZjbi5pbnN0LT5pcnEuZnVuY3MgPSAmdmNuX3YxXzBfaXJxX2Z1bmNzOwogfQogCiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb24gdmNuX3YxXzBfaXBfYmxvY2sgPQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YyXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92Ml8wLmMKaW5kZXggZGZkZTg4Ni4uMzZhZDBjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YyXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjJfMC5jCkBAIC0yMiw3ICsyMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKwogI2luY2x1ZGUgImFtZGdwdS5oIgogI2luY2x1ZGUgImFtZGdwdV92Y24uaCIKICNpbmNsdWRlICJzb2MxNS5oIgpAQCAtOTIsNiArOTIsNyBAQCBzdGF0aWMgaW50IHZjbl92Ml8wX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCisJYWRldi0+dmNuLm51bV92Y25faW5zdCA9IDE7CiAJYWRldi0+dmNuLm51bV9lbmNfcmluZ3MgPSAyOwogCiAJdmNuX3YyXzBfc2V0X2RlY19yaW5nX2Z1bmNzKGFkZXYpOwpAQCAtMTE4LDcgKzExOSw3IEBAIHN0YXRpYyBpbnQgdmNuX3YyXzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiAJLyogVkNOIERFQyBUUkFQICovCiAJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIFNPQzE1X0lIX0NMSUVOVElEX1ZDTiwKIAkJCSAgICAgIFZDTl8yXzBfX1NSQ0lEX19VVkRfU1lTVEVNX01FU1NBR0VfSU5URVJSVVBULAotCQkJICAgICAgJmFkZXYtPnZjbi5pcnEpOworCQkJICAgICAgJmFkZXYtPnZjbi5pbnN0LT5pcnEpOwogCWlmIChyKQogCQlyZXR1cm4gcjsKIApAQCAtMTI2LDE1ICsxMjcsMTQgQEAgc3RhdGljIGludCB2Y25fdjJfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV9lbmNfcmluZ3M7ICsraSkgewogCQlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgU09DMTVfSUhfQ0xJRU5USURfVkNOLAogCQkJCSAgICAgIGkgKyBWQ05fMl8wX19TUkNJRF9fVVZEX0VOQ19HRU5FUkFMX1BVUlBPU0UsCi0JCQkJICAgICAgJmFkZXYtPnZjbi5pcnEpOworCQkJCSAgICAgICZhZGV2LT52Y24uaW5zdC0+aXJxKTsKIAkJaWYgKHIpCiAJCQlyZXR1cm4gcjsKIAl9CiAKIAkvKiBWQ04gSlBFRyBUUkFQICovCiAJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIFNPQzE1X0lIX0NMSUVOVElEX1ZDTiwKLQkJCSAgICAgIFZDTl8yXzBfX1NSQ0lEX19KUEVHX0RFQ09ERSwKLQkJCSAgICAgICZhZGV2LT52Y24uaXJxKTsKKwkJCSAgICAgIFZDTl8yXzBfX1NSQ0lEX19KUEVHX0RFQ09ERSwgJmFkZXYtPnZjbi5pbnN0LT5pcnEpOwogCWlmIChyKQogCQlyZXR1cm4gcjsKIApAQCAtMTU2LDQ5ICsxNTYsNTYgQEAgc3RhdGljIGludCB2Y25fdjJfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKLQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2RlYzsKKwlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2RlYzsKIAogCXJpbmctPnVzZV9kb29yYmVsbCA9IHRydWU7CiAJcmluZy0+ZG9vcmJlbGxfaW5kZXggPSBhZGV2LT5kb29yYmVsbF9pbmRleC52Y24udmNuX3JpbmcwXzEgPDwgMTsKIAogCXNwcmludGYocmluZy0+bmFtZSwgInZjbl9kZWMiKTsKLQlyID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsICZhZGV2LT52Y24uaXJxLCAwKTsKKwlyID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsICZhZGV2LT52Y24uaW5zdC0+aXJxLCAwKTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKKwlhZGV2LT52Y24uaW50ZXJuYWwuY29udGV4dF9pZCA9IG1tVVZEX0NPTlRFWFRfSURfSU5URVJOQUxfT0ZGU0VUOworCWFkZXYtPnZjbi5pbnRlcm5hbC5pYl92bWlkID0gbW1VVkRfTE1JX1JCQ19JQl9WTUlEX0lOVEVSTkFMX09GRlNFVDsKKwlhZGV2LT52Y24uaW50ZXJuYWwuaWJfYmFyX2xvdyA9IG1tVVZEX0xNSV9SQkNfSUJfNjRCSVRfQkFSX0xPV19JTlRFUk5BTF9PRkZTRVQ7CisJYWRldi0+dmNuLmludGVybmFsLmliX2Jhcl9oaWdoID0gbW1VVkRfTE1JX1JCQ19JQl82NEJJVF9CQVJfSElHSF9JTlRFUk5BTF9PRkZTRVQ7CisJYWRldi0+dmNuLmludGVybmFsLmliX3NpemUgPSBtbVVWRF9SQkNfSUJfU0laRV9JTlRFUk5BTF9PRkZTRVQ7CisJYWRldi0+dmNuLmludGVybmFsLmdwX3NjcmF0Y2g4ID0gbW1VVkRfR1BfU0NSQVRDSDhfSU5URVJOQUxfT0ZGU0VUOworCiAJYWRldi0+dmNuLmludGVybmFsLnNjcmF0Y2g5ID0gbW1VVkRfU0NSQVRDSDlfSU5URVJOQUxfT0ZGU0VUOwotCWFkZXYtPnZjbi5leHRlcm5hbC5zY3JhdGNoOSA9IFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9TQ1JBVENIOSk7CisJYWRldi0+dmNuLmluc3QtPmV4dGVybmFsLnNjcmF0Y2g5ID0gU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1NDUkFUQ0g5KTsKIAlhZGV2LT52Y24uaW50ZXJuYWwuZGF0YTAgPSBtbVVWRF9HUENPTV9WQ1BVX0RBVEEwX0lOVEVSTkFMX09GRlNFVDsKLQlhZGV2LT52Y24uZXh0ZXJuYWwuZGF0YTAgPSBTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfR1BDT01fVkNQVV9EQVRBMCk7CisJYWRldi0+dmNuLmluc3QtPmV4dGVybmFsLmRhdGEwID0gU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0dQQ09NX1ZDUFVfREFUQTApOwogCWFkZXYtPnZjbi5pbnRlcm5hbC5kYXRhMSA9IG1tVVZEX0dQQ09NX1ZDUFVfREFUQTFfSU5URVJOQUxfT0ZGU0VUOwotCWFkZXYtPnZjbi5leHRlcm5hbC5kYXRhMSA9IFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9HUENPTV9WQ1BVX0RBVEExKTsKKwlhZGV2LT52Y24uaW5zdC0+ZXh0ZXJuYWwuZGF0YTEgPSBTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfR1BDT01fVkNQVV9EQVRBMSk7CiAJYWRldi0+dmNuLmludGVybmFsLmNtZCA9IG1tVVZEX0dQQ09NX1ZDUFVfQ01EX0lOVEVSTkFMX09GRlNFVDsKLQlhZGV2LT52Y24uZXh0ZXJuYWwuY21kID0gU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0dQQ09NX1ZDUFVfQ01EKTsKKwlhZGV2LT52Y24uaW5zdC0+ZXh0ZXJuYWwuY21kID0gU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0dQQ09NX1ZDUFVfQ01EKTsKIAlhZGV2LT52Y24uaW50ZXJuYWwubm9wID0gbW1VVkRfTk9fT1BfSU5URVJOQUxfT0ZGU0VUOwotCWFkZXYtPnZjbi5leHRlcm5hbC5ub3AgPSBTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTk9fT1ApOworCWFkZXYtPnZjbi5pbnN0LT5leHRlcm5hbC5ub3AgPSBTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTk9fT1ApOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyArK2kpIHsKLQkJcmluZyA9ICZhZGV2LT52Y24ucmluZ19lbmNbaV07CisJCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jW2ldOwogCQlyaW5nLT51c2VfZG9vcmJlbGwgPSB0cnVlOwogCQlyaW5nLT5kb29yYmVsbF9pbmRleCA9IChhZGV2LT5kb29yYmVsbF9pbmRleC52Y24udmNuX3JpbmcwXzEgPDwgMSkgKyAyICsgaTsKIAkJc3ByaW50ZihyaW5nLT5uYW1lLCAidmNuX2VuYyVkIiwgaSk7Ci0JCXIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDUxMiwgJmFkZXYtPnZjbi5pcnEsIDApOworCQlyID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsICZhZGV2LT52Y24uaW5zdC0+aXJxLCAwKTsKIAkJaWYgKHIpCiAJCQlyZXR1cm4gcjsKIAl9CiAKLQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2pwZWc7CisJcmluZyA9ICZhZGV2LT52Y24uaW5zdC0+cmluZ19qcGVnOwogCXJpbmctPnVzZV9kb29yYmVsbCA9IHRydWU7CiAJcmluZy0+ZG9vcmJlbGxfaW5kZXggPSAoYWRldi0+ZG9vcmJlbGxfaW5kZXgudmNuLnZjbl9yaW5nMF8xIDw8IDEpICsgMTsKIAlzcHJpbnRmKHJpbmctPm5hbWUsICJ2Y25fanBlZyIpOwotCXIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDUxMiwgJmFkZXYtPnZjbi5pcnEsIDApOworCXIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDUxMiwgJmFkZXYtPnZjbi5pbnN0LT5pcnEsIDApOwogCWlmIChyKQogCQlyZXR1cm4gcjsKIAogCWFkZXYtPnZjbi5wYXVzZV9kcGdfbW9kZSA9IHZjbl92Ml8wX3BhdXNlX2RwZ19tb2RlOwogCiAJYWRldi0+dmNuLmludGVybmFsLmpwZWdfcGl0Y2ggPSBtbVVWRF9KUEVHX1BJVENIX0lOVEVSTkFMX09GRlNFVDsKLQlhZGV2LT52Y24uZXh0ZXJuYWwuanBlZ19waXRjaCA9IFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9KUEVHX1BJVENIKTsKKwlhZGV2LT52Y24uaW5zdC0+ZXh0ZXJuYWwuanBlZ19waXRjaCA9IFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9KUEVHX1BJVENIKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjM0LDExICsyNDEsMTEgQEAgc3RhdGljIGludCB2Y25fdjJfMF9zd19maW5pKHZvaWQgKmhhbmRsZSkKIHN0YXRpYyBpbnQgdmNuX3YyXzBfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7Ci0Jc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2RlYzsKKwlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZGVjOwogCWludCBpLCByOwogCiAJYWRldi0+bmJpb19mdW5jcy0+dmNuX2Rvb3JiZWxsX3JhbmdlKGFkZXYsIHJpbmctPnVzZV9kb29yYmVsbCwKLQkJcmluZy0+ZG9vcmJlbGxfaW5kZXgpOworCQkJCQkgICAgIHJpbmctPmRvb3JiZWxsX2luZGV4LCAwKTsKIAogCXJpbmctPnNjaGVkLnJlYWR5ID0gdHJ1ZTsKIAlyID0gYW1kZ3B1X3JpbmdfdGVzdF9yaW5nKHJpbmcpOwpAQCAtMjQ4LDcgKzI1NSw3IEBAIHN0YXRpYyBpbnQgdmNuX3YyXzBfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiAJfQogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyArK2kpIHsKLQkJcmluZyA9ICZhZGV2LT52Y24ucmluZ19lbmNbaV07CisJCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jW2ldOwogCQlyaW5nLT5zY2hlZC5yZWFkeSA9IHRydWU7CiAJCXIgPSBhbWRncHVfcmluZ190ZXN0X3JpbmcocmluZyk7CiAJCWlmIChyKSB7CkBAIC0yNTcsNyArMjY0LDcgQEAgc3RhdGljIGludCB2Y25fdjJfMF9od19pbml0KHZvaWQgKmhhbmRsZSkKIAkJfQogCX0KIAotCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfanBlZzsKKwlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2pwZWc7CiAJcmluZy0+c2NoZWQucmVhZHkgPSB0cnVlOwogCXIgPSBhbWRncHVfcmluZ190ZXN0X3JpbmcocmluZyk7CiAJaWYgKHIpIHsKQEAgLTI4Myw3ICsyOTAsNyBAQCBzdGF0aWMgaW50IHZjbl92Ml8wX2h3X2luaXQodm9pZCAqaGFuZGxlKQogc3RhdGljIGludCB2Y25fdjJfMF9od19maW5pKHZvaWQgKmhhbmRsZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKLQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZGVjOworCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9ICZhZGV2LT52Y24uaW5zdC0+cmluZ19kZWM7CiAJaW50IGk7CiAKIAlpZiAoKGFkZXYtPnBnX2ZsYWdzICYgQU1EX1BHX1NVUFBPUlRfVkNOX0RQRykgfHwKQEAgLTI5NCwxMSArMzAxLDExIEBAIHN0YXRpYyBpbnQgdmNuX3YyXzBfaHdfZmluaSh2b2lkICpoYW5kbGUpCiAJcmluZy0+c2NoZWQucmVhZHkgPSBmYWxzZTsKIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52Y24ubnVtX2VuY19yaW5nczsgKytpKSB7Ci0JCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZW5jW2ldOworCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2VuY1tpXTsKIAkJcmluZy0+c2NoZWQucmVhZHkgPSBmYWxzZTsKIAl9CiAKLQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2pwZWc7CisJcmluZyA9ICZhZGV2LT52Y24uaW5zdC0+cmluZ19qcGVnOwogCXJpbmctPnNjaGVkLnJlYWR5ID0gZmFsc2U7CiAKIAlyZXR1cm4gMDsKQEAgLTM2OCw5ICszNzUsOSBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9tY19yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCW9mZnNldCA9IDA7CiAJfSBlbHNlIHsKIAkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0xPVywKLQkJCWxvd2VyXzMyX2JpdHMoYWRldi0+dmNuLmdwdV9hZGRyKSk7CisJCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkcikpOwogCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSCwKLQkJCXVwcGVyXzMyX2JpdHMoYWRldi0+dmNuLmdwdV9hZGRyKSk7CisJCQl1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkcikpOwogCQlvZmZzZXQgPSBzaXplOwogCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDAsCiAJCQlBTURHUFVfVVZEX0ZJUk1XQVJFX09GRlNFVCA+PiAzKTsKQEAgLTM4MCwxNyArMzg3LDE3IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX21jX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCS8qIGNhY2hlIHdpbmRvdyAxOiBzdGFjayAqLwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfTE9XLAotCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciArIG9mZnNldCkpOworCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkciArIG9mZnNldCkpOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfSElHSCwKLQkJdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIgKyBvZmZzZXQpKTsKKwkJdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uaW5zdC0+Z3B1X2FkZHIgKyBvZmZzZXQpKTsKIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDEsIDApOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTEsIEFNREdQVV9WQ05fU1RBQ0tfU0laRSk7CiAKIAkvKiBjYWNoZSB3aW5kb3cgMjogY29udGV4dCAqLwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJVF9CQVJfTE9XLAotCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciArIG9mZnNldCArIEFNREdQVV9WQ05fU1RBQ0tfU0laRSkpOworCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkciArIG9mZnNldCArIEFNREdQVV9WQ05fU1RBQ0tfU0laRSkpOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJVF9CQVJfSElHSCwKLQkJdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIgKyBvZmZzZXQgKyBBTURHUFVfVkNOX1NUQUNLX1NJWkUpKTsKKwkJdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uaW5zdC0+Z3B1X2FkZHIgKyBvZmZzZXQgKyBBTURHUFVfVkNOX1NUQUNLX1NJWkUpKTsKIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDIsIDApOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTIsIEFNREdQVV9WQ05fQ09OVEVYVF9TSVpFKTsKIApAQCAtNDI2LDEwICs0MzMsMTAgQEAgc3RhdGljIHZvaWQgdmNuX3YyXzBfbWNfcmVzdW1lX2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGluZGlyZWMKIAl9IGVsc2UgewogCQlXUkVHMzJfU09DMTVfRFBHX01PREVfMl8wKFNPQzE1X0RQR19NT0RFX09GRlNFVF8yXzAoCiAJCQlVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9MT1cpLAotCQkJbG93ZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIpLCAwLCBpbmRpcmVjdCk7CisJCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkciksIDAsIGluZGlyZWN0KTsKIAkJV1JFRzMyX1NPQzE1X0RQR19NT0RFXzJfMChTT0MxNV9EUEdfTU9ERV9PRkZTRVRfMl8wKAogCQkJVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSCksCi0JCQl1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciksIDAsIGluZGlyZWN0KTsKKwkJCXVwcGVyXzMyX2JpdHMoYWRldi0+dmNuLmluc3QtPmdwdV9hZGRyKSwgMCwgaW5kaXJlY3QpOwogCQlvZmZzZXQgPSBzaXplOwogCQlXUkVHMzJfU09DMTVfRFBHX01PREVfMl8wKFNPQzE1X0RQR19NT0RFX09GRlNFVF8yXzAoCiAJCQlVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMCksCkBAIC00NDcsMTAgKzQ1NCwxMCBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9tY19yZXN1bWVfZHBnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgaW5kaXJlYwogCWlmICghaW5kaXJlY3QpIHsKIAkJV1JFRzMyX1NPQzE1X0RQR19NT0RFXzJfMChTT0MxNV9EUEdfTU9ERV9PRkZTRVRfMl8wKAogCQkJVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRTFfNjRCSVRfQkFSX0xPVyksCi0JCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciArIG9mZnNldCksIDAsIGluZGlyZWN0KTsKKwkJCWxvd2VyXzMyX2JpdHMoYWRldi0+dmNuLmluc3QtPmdwdV9hZGRyICsgb2Zmc2V0KSwgMCwgaW5kaXJlY3QpOwogCQlXUkVHMzJfU09DMTVfRFBHX01PREVfMl8wKFNPQzE1X0RQR19NT0RFX09GRlNFVF8yXzAoCiAJCQlVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfSElHSCksCi0JCQl1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciArIG9mZnNldCksIDAsIGluZGlyZWN0KTsKKwkJCXVwcGVyXzMyX2JpdHMoYWRldi0+dmNuLmluc3QtPmdwdV9hZGRyICsgb2Zmc2V0KSwgMCwgaW5kaXJlY3QpOwogCQlXUkVHMzJfU09DMTVfRFBHX01PREVfMl8wKFNPQzE1X0RQR19NT0RFX09GRlNFVF8yXzAoCiAJCQlVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMSksIDAsIDAsIGluZGlyZWN0KTsKIAl9IGVsc2UgewpAQCAtNDY3LDEwICs0NzQsMTAgQEAgc3RhdGljIHZvaWQgdmNuX3YyXzBfbWNfcmVzdW1lX2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGluZGlyZWMKIAkvKiBjYWNoZSB3aW5kb3cgMjogY29udGV4dCAqLwogCVdSRUczMl9TT0MxNV9EUEdfTU9ERV8yXzAoU09DMTVfRFBHX01PREVfT0ZGU0VUXzJfMCgKIAkJVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0xPVyksCi0JCWxvd2VyXzMyX2JpdHMoYWRldi0+dmNuLmdwdV9hZGRyICsgb2Zmc2V0ICsgQU1ER1BVX1ZDTl9TVEFDS19TSVpFKSwgMCwgaW5kaXJlY3QpOworCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0LT5ncHVfYWRkciArIG9mZnNldCArIEFNREdQVV9WQ05fU1RBQ0tfU0laRSksIDAsIGluZGlyZWN0KTsKIAlXUkVHMzJfU09DMTVfRFBHX01PREVfMl8wKFNPQzE1X0RQR19NT0RFX09GRlNFVF8yXzAoCiAJCVVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUyXzY0QklUX0JBUl9ISUdIKSwKLQkJdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIgKyBvZmZzZXQgKyBBTURHUFVfVkNOX1NUQUNLX1NJWkUpLCAwLCBpbmRpcmVjdCk7CisJCXVwcGVyXzMyX2JpdHMoYWRldi0+dmNuLmluc3QtPmdwdV9hZGRyICsgb2Zmc2V0ICsgQU1ER1BVX1ZDTl9TVEFDS19TSVpFKSwgMCwgaW5kaXJlY3QpOwogCVdSRUczMl9TT0MxNV9EUEdfTU9ERV8yXzAoU09DMTVfRFBHX01PREVfT0ZGU0VUXzJfMCgKIAkJVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDIpLCAwLCAwLCBpbmRpcmVjdCk7CiAJV1JFRzMyX1NPQzE1X0RQR19NT0RFXzJfMChTT0MxNV9EUEdfTU9ERV9PRkZTRVRfMl8wKApAQCAtNjU4LDcgKzY2NSw3IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2Nsb2NrX2dhdGluZ19kcGdfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKICAqLwogc3RhdGljIGludCBqcGVnX3YyXzBfc3RhcnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0Jc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2pwZWc7CisJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2pwZWc7CiAJdWludDMyX3QgdG1wOwogCWludCByID0gMDsKIApAQCAtOTIwLDcgKzkyNyw3IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2VuYWJsZV9zdGF0aWNfcG93ZXJfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiBzdGF0aWMgaW50IHZjbl92Ml8wX3N0YXJ0X2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGluZGlyZWN0KQogewotCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9ICZhZGV2LT52Y24ucmluZ19kZWM7CisJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2RlYzsKIAl1aW50MzJfdCByYl9idWZzeiwgdG1wOwogCiAJdmNuX3YyXzBfZW5hYmxlX3N0YXRpY19wb3dlcl9nYXRpbmcoYWRldik7CkBAIC0xMDQ2LDcgKzEwNTMsNyBAQCBzdGF0aWMgaW50IHZjbl92Ml8wX3N0YXJ0X2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGluZGlyZWN0KQogCiBzdGF0aWMgaW50IHZjbl92Ml8wX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9ICZhZGV2LT52Y24ucmluZ19kZWM7CisJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2RlYzsKIAl1aW50MzJfdCByYl9idWZzeiwgdG1wOwogCXVpbnQzMl90IGxtaV9zd2FwX2NudGw7CiAJaW50IGksIGosIHI7CkBAIC0xMTk3LDE0ICsxMjA0LDE0IEBAIHN0YXRpYyBpbnQgdmNuX3YyXzBfc3RhcnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJDX1JCX1dQVFIsCiAJCQlsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKIAotCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZW5jWzBdOworCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jWzBdOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1JQVFIsIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1dQVFIsIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0VfTE8sIHJpbmctPmdwdV9hZGRyKTsKIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9CQVNFX0hJLCB1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfU0laRSwgcmluZy0+cmluZ19zaXplIC8gNCk7CiAKLQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2VuY1sxXTsKKwlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2VuY1sxXTsKIAlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9SUFRSMiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfV1BUUjIsIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOwogCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0VfTE8yLCByaW5nLT5ncHVfYWRkcik7CkBAIC0xMzUxLDE0ICsxMzU4LDE0IEBAIHN0YXRpYyBpbnQgdmNuX3YyXzBfcGF1c2VfZHBnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCSAgIFVWRF9EUEdfUEFVU0VfX05KX1BBVVNFX0RQR19BQ0tfTUFTSywgcmV0X2NvZGUpOwogCiAJCQkJLyogUmVzdG9yZSAqLwotCQkJCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZW5jWzBdOworCQkJCXJpbmcgPSAmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jWzBdOwogCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0VfTE8sIHJpbmctPmdwdV9hZGRyKTsKIAkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9CQVNFX0hJLCB1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7CiAJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfU0laRSwgcmluZy0+cmluZ19zaXplIC8gNCk7CiAJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfUlBUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfV1BUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAKLQkJCQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2VuY1sxXTsKKwkJCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2VuY1sxXTsKIAkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9CQVNFX0xPMiwgcmluZy0+Z3B1X2FkZHIpOwogCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0VfSEkyLCB1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7CiAJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfU0laRTIsIHJpbmctPnJpbmdfc2l6ZSAvIDQpOwpAQCAtMTQ4MCwxMSArMTQ4NywxMyBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9kZWNfcmluZ19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAgKgogICogV3JpdGUgYSBzdGFydCBjb21tYW5kIHRvIHRoZSByaW5nLgogICovCi1zdGF0aWMgdm9pZCB2Y25fdjJfMF9kZWNfcmluZ19pbnNlcnRfc3RhcnQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQordm9pZCB2Y25fdjJfMF9kZWNfcmluZ19pbnNlcnRfc3RhcnQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogewotCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAobW1VVkRfR1BDT01fVkNQVV9EQVRBMF9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CisKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5kYXRhMCwgMCkpOwogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIDApOwotCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAobW1VVkRfR1BDT01fVkNQVV9DTURfSU5URVJOQUxfT0ZGU0VULCAwKSk7CisJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChhZGV2LT52Y24uaW50ZXJuYWwuY21kLCAwKSk7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgVkNOX0RFQ19LTURfQ01EIHwgKFZDTl9ERUNfQ01EX1BBQ0tFVF9TVEFSVCA8PCAxKSk7CiB9CiAKQEAgLTE0OTUsOSArMTUwNCwxMSBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9kZWNfcmluZ19pbnNlcnRfc3RhcnQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogICoKICAqIFdyaXRlIGEgZW5kIGNvbW1hbmQgdG8gdGhlIHJpbmcuCiAgKi8KLXN0YXRpYyB2b2lkIHZjbl92Ml8wX2RlY19yaW5nX2luc2VydF9lbmQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQordm9pZCB2Y25fdjJfMF9kZWNfcmluZ19pbnNlcnRfZW5kKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIHsKLQlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKG1tVVZEX0dQQ09NX1ZDUFVfQ01EX0lOVEVSTkFMX09GRlNFVCwgMCkpOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKKworCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAoYWRldi0+dmNuLmludGVybmFsLmNtZCwgMCkpOwogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFZDTl9ERUNfS01EX0NNRCB8IChWQ05fREVDX0NNRF9QQUNLRVRfRU5EIDw8IDEpKTsKIH0KIApAQCAtMTUwOCwxNCArMTUxOSwxNSBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9kZWNfcmluZ19pbnNlcnRfZW5kKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKICAqCiAgKiBXcml0ZSBhIG5vcCBjb21tYW5kIHRvIHRoZSByaW5nLgogICovCi1zdGF0aWMgdm9pZCB2Y25fdjJfMF9kZWNfcmluZ19pbnNlcnRfbm9wKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgY291bnQpCit2b2lkIHZjbl92Ml8wX2RlY19yaW5nX2luc2VydF9ub3Aoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBjb3VudCkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJaW50IGk7CiAKIAlXQVJOX09OKHJpbmctPndwdHIgJSAyIHx8IGNvdW50ICUgMik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQgLyAyOyBpKyspIHsKLQkJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChtbVVWRF9OT19PUF9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwkJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChhZGV2LT52Y24uaW50ZXJuYWwubm9wLCAwKSk7CiAJCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIDApOwogCX0KIH0KQEAgLTE1MjgsMzAgKzE1NDAsMzEgQEAgc3RhdGljIHZvaWQgdmNuX3YyXzBfZGVjX3JpbmdfaW5zZXJ0X25vcChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGNvdW4KICAqCiAgKiBXcml0ZSBhIGZlbmNlIGFuZCBhIHRyYXAgY29tbWFuZCB0byB0aGUgcmluZy4KICAqLwotc3RhdGljIHZvaWQgdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHU2NCBhZGRyLCB1NjQgc2VxLAotCQkJCSAgICAgdW5zaWduZWQgZmxhZ3MpCit2b2lkIHZjbl92Ml8wX2RlY19yaW5nX2VtaXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1NjQgYWRkciwgdTY0IHNlcSwKKwkJCQl1bnNpZ25lZCBmbGFncykKIHsKLQlXQVJOX09OKGZsYWdzICYgQU1ER1BVX0ZFTkNFX0ZMQUdfNjRCSVQpOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAotCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAobW1VVkRfQ09OVEVYVF9JRF9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlXQVJOX09OKGZsYWdzICYgQU1ER1BVX0ZFTkNFX0ZMQUdfNjRCSVQpOworCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAoYWRldi0+dmNuLmludGVybmFsLmNvbnRleHRfaWQsIDApKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBzZXEpOwogCi0JYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChtbVVWRF9HUENPTV9WQ1BVX0RBVEEwX0lOVEVSTkFMX09GRlNFVCwgMCkpOworCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAoYWRldi0+dmNuLmludGVybmFsLmRhdGEwLCAwKSk7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgYWRkciAmIDB4ZmZmZmZmZmYpOwogCi0JYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChtbVVWRF9HUENPTV9WQ1BVX0RBVEExX0lOVEVSTkFMX09GRlNFVCwgMCkpOworCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAoYWRldi0+dmNuLmludGVybmFsLmRhdGExLCAwKSk7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgdXBwZXJfMzJfYml0cyhhZGRyKSAmIDB4ZmYpOwogCi0JYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChtbVVWRF9HUENPTV9WQ1BVX0NNRF9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5jbWQsIDApKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBWQ05fREVDX0tNRF9DTUQgfCAoVkNOX0RFQ19DTURfRkVOQ0UgPDwgMSkpOwogCi0JYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChtbVVWRF9HUENPTV9WQ1BVX0RBVEEwX0lOVEVSTkFMX09GRlNFVCwgMCkpOworCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAoYWRldi0+dmNuLmludGVybmFsLmRhdGEwLCAwKSk7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgMCk7CiAKLQlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKG1tVVZEX0dQQ09NX1ZDUFVfREFUQTFfSU5URVJOQUxfT0ZGU0VULCAwKSk7CisJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChhZGV2LT52Y24uaW50ZXJuYWwuZGF0YTEsIDApKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCAwKTsKIAotCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAobW1VVkRfR1BDT01fVkNQVV9DTURfSU5URVJOQUxfT0ZGU0VULCAwKSk7CisJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChhZGV2LT52Y24uaW50ZXJuYWwuY21kLCAwKSk7CiAKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBWQ05fREVDX0tNRF9DTUQgfCAoVkNOX0RFQ19DTURfVFJBUCA8PCAxKSk7CiB9CkBAIC0xNTY0LDQ0ICsxNTc3LDQ2IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2RlY19yaW5nX2VtaXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1NjQgYWRkciwgdTY0CiAgKgogICogV3JpdGUgcmluZyBjb21tYW5kcyB0byBleGVjdXRlIHRoZSBpbmRpcmVjdCBidWZmZXIKICAqLwotc3RhdGljIHZvaWQgdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCQkJICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYiwKLQkJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2liICppYiwKLQkJCQkgICAgICB1aW50MzJfdCBmbGFncykKK3ZvaWQgdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCisJCQkgICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYiwKKwkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2liICppYiwKKwkJCSAgICAgICB1aW50MzJfdCBmbGFncykKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJdW5zaWduZWQgdm1pZCA9IEFNREdQVV9KT0JfR0VUX1ZNSUQoam9iKTsKIAotCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAobW1VVkRfTE1JX1JCQ19JQl9WTUlEX0lOVEVSTkFMX09GRlNFVCwgMCkpOworCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAoYWRldi0+dmNuLmludGVybmFsLmliX3ZtaWQsIDApKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCB2bWlkKTsKIAotCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsCVBBQ0tFVDAobW1VVkRfTE1JX1JCQ19JQl82NEJJVF9CQVJfTE9XX0lOVEVSTkFMX09GRlNFVCwgMCkpOworCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsCVBBQ0tFVDAoYWRldi0+dmNuLmludGVybmFsLmliX2Jhcl9sb3csIDApKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBsb3dlcl8zMl9iaXRzKGliLT5ncHVfYWRkcikpOwotCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsCVBBQ0tFVDAobW1VVkRfTE1JX1JCQ19JQl82NEJJVF9CQVJfSElHSF9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLAlQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5pYl9iYXJfaGlnaCwgMCkpOwogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHVwcGVyXzMyX2JpdHMoaWItPmdwdV9hZGRyKSk7Ci0JYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywJUEFDS0VUMChtbVVWRF9SQkNfSUJfU0laRV9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLAlQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5pYl9zaXplLCAwKSk7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgaWItPmxlbmd0aF9kdyk7CiB9CiAKLXN0YXRpYyB2b2lkIHZjbl92Ml8wX2RlY19yaW5nX2VtaXRfcmVnX3dhaXQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAotCQkJCQkgICAgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWwsCi0JCQkJCSAgICB1aW50MzJfdCBtYXNrKQordm9pZCB2Y25fdjJfMF9kZWNfcmluZ19lbWl0X3JlZ193YWl0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgcmVnLAorCQkJCXVpbnQzMl90IHZhbCwgdWludDMyX3QgbWFzaykKIHsKLQlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKG1tVVZEX0dQQ09NX1ZDUFVfREFUQTBfSU5URVJOQUxfT0ZGU0VULCAwKSk7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OworCisJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChhZGV2LT52Y24uaW50ZXJuYWwuZGF0YTAsIDApKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCByZWcgPDwgMik7CiAKLQlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKG1tVVZEX0dQQ09NX1ZDUFVfREFUQTFfSU5URVJOQUxfT0ZGU0VULCAwKSk7CisJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChhZGV2LT52Y24uaW50ZXJuYWwuZGF0YTEsIDApKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCB2YWwpOwogCi0JYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChtbVVWRF9HUF9TQ1JBVENIOF9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5ncF9zY3JhdGNoOCwgMCkpOwogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIG1hc2spOwogCi0JYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChtbVVWRF9HUENPTV9WQ1BVX0NNRF9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5jbWQsIDApKTsKIAogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFZDTl9ERUNfS01EX0NNRCB8IChWQ05fREVDX0NNRF9SRUdfUkVBRF9DT05EX1dBSVQgPDwgMSkpOwogfQogCi1zdGF0aWMgdm9pZCB2Y25fdjJfMF9kZWNfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJCQkJICAgIHVuc2lnbmVkIHZtaWQsIHVpbnQ2NF90IHBkX2FkZHIpCit2b2lkIHZjbl92Ml8wX2RlY19yaW5nX2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAorCQkJCXVuc2lnbmVkIHZtaWQsIHVpbnQ2NF90IHBkX2FkZHIpCiB7CiAJc3RydWN0IGFtZGdwdV92bWh1YiAqaHViID0gJnJpbmctPmFkZXYtPnZtaHViW3JpbmctPmZ1bmNzLT52bWh1Yl07CiAJdWludDMyX3QgZGF0YTAsIGRhdGExLCBtYXNrOwpAQCAtMTYxNSwxNiArMTYzMCwxOCBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9kZWNfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAl2Y25fdjJfMF9kZWNfcmluZ19lbWl0X3JlZ193YWl0KHJpbmcsIGRhdGEwLCBkYXRhMSwgbWFzayk7CiB9CiAKLXN0YXRpYyB2b2lkIHZjbl92Ml8wX2RlY19yaW5nX2VtaXRfd3JlZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCQkJCXVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKQordm9pZCB2Y25fdjJfMF9kZWNfcmluZ19lbWl0X3dyZWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAorCQkJCXVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKQogewotCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAobW1VVkRfR1BDT01fVkNQVV9EQVRBMF9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CisKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5kYXRhMCwgMCkpOwogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHJlZyA8PCAyKTsKIAotCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAobW1VVkRfR1BDT01fVkNQVV9EQVRBMV9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5kYXRhMSwgMCkpOwogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHZhbCk7CiAKLQlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKG1tVVZEX0dQQ09NX1ZDUFVfQ01EX0lOVEVSTkFMX09GRlNFVCwgMCkpOworCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAoYWRldi0+dmNuLmludGVybmFsLmNtZCwgMCkpOwogCiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgVkNOX0RFQ19LTURfQ01EIHwgKFZDTl9ERUNfQ01EX1dSSVRFX1JFRyA8PCAxKSk7CiB9CkBAIC0xNjQwLDcgKzE2NTcsNyBAQCBzdGF0aWMgdWludDY0X3QgdmNuX3YyXzBfZW5jX3JpbmdfZ2V0X3JwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAotCWlmIChyaW5nID09ICZhZGV2LT52Y24ucmluZ19lbmNbMF0pCisJaWYgKHJpbmcgPT0gJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2VuY1swXSkKIAkJcmV0dXJuIFJSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1JQVFIpOwogCWVsc2UKIAkJcmV0dXJuIFJSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1JQVFIyKTsKQEAgLTE2NTcsNyArMTY3NCw3IEBAIHN0YXRpYyB1aW50NjRfdCB2Y25fdjJfMF9lbmNfcmluZ19nZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCi0JaWYgKHJpbmcgPT0gJmFkZXYtPnZjbi5yaW5nX2VuY1swXSkgeworCWlmIChyaW5nID09ICZhZGV2LT52Y24uaW5zdC0+cmluZ19lbmNbMF0pIHsKIAkJaWYgKHJpbmctPnVzZV9kb29yYmVsbCkKIAkJCXJldHVybiBhZGV2LT53Yi53YltyaW5nLT53cHRyX29mZnNdOwogCQllbHNlCkBAIC0xNjgxLDcgKzE2OTgsNyBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9lbmNfcmluZ19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCi0JaWYgKHJpbmcgPT0gJmFkZXYtPnZjbi5yaW5nX2VuY1swXSkgeworCWlmIChyaW5nID09ICZhZGV2LT52Y24uaW5zdC0+cmluZ19lbmNbMF0pIHsKIAkJaWYgKHJpbmctPnVzZV9kb29yYmVsbCkgewogCQkJYWRldi0+d2Iud2JbcmluZy0+d3B0cl9vZmZzXSA9IGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cik7CiAJCQlXRE9PUkJFTEwzMihyaW5nLT5kb29yYmVsbF9pbmRleCwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CkBAIC0xNzA2LDggKzE3MjMsOCBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9lbmNfcmluZ19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAgKgogICogV3JpdGUgZW5jIGEgZmVuY2UgYW5kIGEgdHJhcCBjb21tYW5kIHRvIHRoZSByaW5nLgogICovCi1zdGF0aWMgdm9pZCB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X2ZlbmNlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdTY0IGFkZHIsCi0JCQl1NjQgc2VxLCB1bnNpZ25lZCBmbGFncykKK3ZvaWQgdmNuX3YyXzBfZW5jX3JpbmdfZW1pdF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHU2NCBhZGRyLAorCQkJCXU2NCBzZXEsIHVuc2lnbmVkIGZsYWdzKQogewogCVdBUk5fT04oZmxhZ3MgJiBBTURHUFVfRkVOQ0VfRkxBR182NEJJVCk7CiAKQEAgLTE3MTgsNyArMTczNSw3IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1NjQgYWRkciwKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBWQ05fRU5DX0NNRF9UUkFQKTsKIH0KIAotc3RhdGljIHZvaWQgdmNuX3YyXzBfZW5jX3JpbmdfaW5zZXJ0X2VuZChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCit2b2lkIHZjbl92Ml8wX2VuY19yaW5nX2luc2VydF9lbmQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogewogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFZDTl9FTkNfQ01EX0VORCk7CiB9CkBAIC0xNzMxLDEwICsxNzQ4LDEwIEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2VuY19yaW5nX2luc2VydF9lbmQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogICoKICAqIFdyaXRlIGVuYyByaW5nIGNvbW1hbmRzIHRvIGV4ZWN1dGUgdGhlIGluZGlyZWN0IGJ1ZmZlcgogICovCi1zdGF0aWMgdm9pZCB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iLAotCQkJCSAgICAgIHN0cnVjdCBhbWRncHVfaWIgKmliLAotCQkJCSAgICAgIHVpbnQzMl90IGZsYWdzKQordm9pZCB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKKwkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iLAorCQkJICAgICAgIHN0cnVjdCBhbWRncHVfaWIgKmliLAorCQkJICAgICAgIHVpbnQzMl90IGZsYWdzKQogewogCXVuc2lnbmVkIHZtaWQgPSBBTURHUFVfSk9CX0dFVF9WTUlEKGpvYik7CiAKQEAgLTE3NDUsOSArMTc2Miw4IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIGliLT5sZW5ndGhfZHcpOwogfQogCi1zdGF0aWMgdm9pZCB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X3JlZ193YWl0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJCQkJICAgIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsLAotCQkJCQkgICAgdWludDMyX3QgbWFzaykKK3ZvaWQgdmNuX3YyXzBfZW5jX3JpbmdfZW1pdF9yZWdfd2FpdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IHJlZywKKwkJCQl1aW50MzJfdCB2YWwsIHVpbnQzMl90IG1hc2spCiB7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgVkNOX0VOQ19DTURfUkVHX1dBSVQpOwogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHJlZyA8PCAyKTsKQEAgLTE3NTUsOCArMTc3MSw4IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfcmVnX3dhaXQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHZhbCk7CiB9CiAKLXN0YXRpYyB2b2lkIHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAotCQkJCQkgICAgdW5zaWduZWQgaW50IHZtaWQsIHVpbnQ2NF90IHBkX2FkZHIpCit2b2lkIHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAorCQkJCXVuc2lnbmVkIGludCB2bWlkLCB1aW50NjRfdCBwZF9hZGRyKQogewogCXN0cnVjdCBhbWRncHVfdm1odWIgKmh1YiA9ICZyaW5nLT5hZGV2LT52bWh1YltyaW5nLT5mdW5jcy0+dm1odWJdOwogCkBAIC0xNzY3LDggKzE3ODMsNyBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAkJCQkJbG93ZXJfMzJfYml0cyhwZF9hZGRyKSwgMHhmZmZmZmZmZik7CiB9CiAKLXN0YXRpYyB2b2lkIHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfd3JlZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCQkJCXVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKQordm9pZCB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X3dyZWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbCkKIHsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBWQ05fRU5DX0NNRF9SRUdfV1JJVEUpOwogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsCXJlZyA8PCAyKTsKQEAgLTE4MzIsNyArMTg0Nyw3IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAgKgogICogV3JpdGUgYSBzdGFydCBjb21tYW5kIHRvIHRoZSByaW5nLgogICovCi1zdGF0aWMgdm9pZCB2Y25fdjJfMF9qcGVnX3JpbmdfaW5zZXJ0X3N0YXJ0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKK3ZvaWQgdmNuX3YyXzBfanBlZ19yaW5nX2luc2VydF9zdGFydChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiB7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUSihtbVVWRF9KUkJDX0VYVEVSTkFMX1JFR19JTlRFUk5BTF9PRkZTRVQsCiAJCTAsIDAsIFBBQ0tFVEpfVFlQRTApKTsKQEAgLTE4NTAsNyArMTg2NSw3IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19pbnNlcnRfc3RhcnQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogICoKICAqIFdyaXRlIGEgZW5kIGNvbW1hbmQgdG8gdGhlIHJpbmcuCiAgKi8KLXN0YXRpYyB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19pbnNlcnRfZW5kKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKK3ZvaWQgdmNuX3YyXzBfanBlZ19yaW5nX2luc2VydF9lbmQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogewogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVEoobW1VVkRfSlJCQ19FWFRFUk5BTF9SRUdfSU5URVJOQUxfT0ZGU0VULAogCQkwLCAwLCBQQUNLRVRKX1RZUEUwKSk7CkBAIC0xODY5LDggKzE4ODQsOCBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9qcGVnX3JpbmdfaW5zZXJ0X2VuZChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAgKgogICogV3JpdGUgYSBmZW5jZSBhbmQgYSB0cmFwIGNvbW1hbmQgdG8gdGhlIHJpbmcuCiAgKi8KLXN0YXRpYyB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X2ZlbmNlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdTY0IGFkZHIsIHU2NCBzZXEsCi0JCQkJICAgICB1bnNpZ25lZCBmbGFncykKK3ZvaWQgdmNuX3YyXzBfanBlZ19yaW5nX2VtaXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1NjQgYWRkciwgdTY0IHNlcSwKKwkJCQl1bnNpZ25lZCBmbGFncykKIHsKIAlXQVJOX09OKGZsYWdzICYgQU1ER1BVX0ZFTkNFX0ZMQUdfNjRCSVQpOwogCkBAIC0xOTE4LDEwICsxOTMzLDEwIEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X2ZlbmNlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdTY0IGFkZHIsIHU2CiAgKgogICogV3JpdGUgcmluZyBjb21tYW5kcyB0byBleGVjdXRlIHRoZSBpbmRpcmVjdCBidWZmZXIuCiAgKi8KLXN0YXRpYyB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJCQkgICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYiwKLQkJCQkgICAgICAgc3RydWN0IGFtZGdwdV9pYiAqaWIsCi0JCQkJICAgICAgIHVpbnQzMl90IGZsYWdzKQordm9pZCB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCisJCQkJc3RydWN0IGFtZGdwdV9qb2IgKmpvYiwKKwkJCQlzdHJ1Y3QgYW1kZ3B1X2liICppYiwKKwkJCQl1aW50MzJfdCBmbGFncykKIHsKIAl1bnNpZ25lZCB2bWlkID0gQU1ER1BVX0pPQl9HRVRfVk1JRChqb2IpOwogCkBAIC0xOTY5LDkgKzE5ODQsOCBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgMHgyKTsKIH0KIAotc3RhdGljIHZvaWQgdmNuX3YyXzBfanBlZ19yaW5nX2VtaXRfcmVnX3dhaXQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAotCQkJCQkgICAgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWwsCi0JCQkJCSAgICB1aW50MzJfdCBtYXNrKQordm9pZCB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF9yZWdfd2FpdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IHJlZywKKwkJCQl1aW50MzJfdCB2YWwsIHVpbnQzMl90IG1hc2spCiB7CiAJdWludDMyX3QgcmVnX29mZnNldCA9IChyZWcgPDwgMik7CiAKQEAgLTE5OTcsOCArMjAxMSw4IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X3JlZ193YWl0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBtYXNrKTsKIH0KIAotc3RhdGljIHZvaWQgdmNuX3YyXzBfanBlZ19yaW5nX2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAotCQl1bnNpZ25lZCB2bWlkLCB1aW50NjRfdCBwZF9hZGRyKQordm9pZCB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF92bV9mbHVzaChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCisJCQkJdW5zaWduZWQgdm1pZCwgdWludDY0X3QgcGRfYWRkcikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3ZtaHViICpodWIgPSAmcmluZy0+YWRldi0+dm1odWJbcmluZy0+ZnVuY3MtPnZtaHViXTsKIAl1aW50MzJfdCBkYXRhMCwgZGF0YTEsIG1hc2s7CkBAIC0yMDEyLDggKzIwMjYsNyBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF92bV9mbHVzaChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJdmNuX3YyXzBfanBlZ19yaW5nX2VtaXRfcmVnX3dhaXQocmluZywgZGF0YTAsIGRhdGExLCBtYXNrKTsKIH0KIAotc3RhdGljIHZvaWQgdmNuX3YyXzBfanBlZ19yaW5nX2VtaXRfd3JlZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCQkJCXVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKQordm9pZCB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF93cmVnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWwpCiB7CiAJdWludDMyX3QgcmVnX29mZnNldCA9IChyZWcgPDwgMik7CiAKQEAgLTIwMzEsNyArMjA0NCw3IEBAIHN0YXRpYyB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X3dyZWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHZhbCk7CiB9CiAKLXN0YXRpYyB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19ub3Aoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBjb3VudCkKK3ZvaWQgdmNuX3YyXzBfanBlZ19yaW5nX25vcChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGNvdW50KQogewogCWludCBpOwogCkBAIC0yMDU5LDE2ICsyMDcyLDE2IEBAIHN0YXRpYyBpbnQgdmNuX3YyXzBfcHJvY2Vzc19pbnRlcnJ1cHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIAlzd2l0Y2ggKGVudHJ5LT5zcmNfaWQpIHsKIAljYXNlIFZDTl8yXzBfX1NSQ0lEX19VVkRfU1lTVEVNX01FU1NBR0VfSU5URVJSVVBUOgotCQlhbWRncHVfZmVuY2VfcHJvY2VzcygmYWRldi0+dmNuLnJpbmdfZGVjKTsKKwkJYW1kZ3B1X2ZlbmNlX3Byb2Nlc3MoJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2RlYyk7CiAJCWJyZWFrOwogCWNhc2UgVkNOXzJfMF9fU1JDSURfX1VWRF9FTkNfR0VORVJBTF9QVVJQT1NFOgotCQlhbWRncHVfZmVuY2VfcHJvY2VzcygmYWRldi0+dmNuLnJpbmdfZW5jWzBdKTsKKwkJYW1kZ3B1X2ZlbmNlX3Byb2Nlc3MoJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2VuY1swXSk7CiAJCWJyZWFrOwogCWNhc2UgVkNOXzJfMF9fU1JDSURfX1VWRF9FTkNfTE9XX0xBVEVOQ1k6Ci0JCWFtZGdwdV9mZW5jZV9wcm9jZXNzKCZhZGV2LT52Y24ucmluZ19lbmNbMV0pOworCQlhbWRncHVfZmVuY2VfcHJvY2VzcygmYWRldi0+dmNuLmluc3QtPnJpbmdfZW5jWzFdKTsKIAkJYnJlYWs7CiAJY2FzZSBWQ05fMl8wX19TUkNJRF9fSlBFR19ERUNPREU6Ci0JCWFtZGdwdV9mZW5jZV9wcm9jZXNzKCZhZGV2LT52Y24ucmluZ19qcGVnKTsKKwkJYW1kZ3B1X2ZlbmNlX3Byb2Nlc3MoJmFkZXYtPnZjbi5pbnN0LT5yaW5nX2pwZWcpOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlEUk1fRVJST1IoIlVuaGFuZGxlZCBpbnRlcnJ1cHQ6ICVkICVkXG4iLApAQCAtMjA4NiwyMCArMjA5OSwyMCBAQCBzdGF0aWMgaW50IHZjbl92Ml8wX2RlY19yaW5nX3Rlc3RfcmluZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAJdW5zaWduZWQgaTsKIAlpbnQgcjsKIAotCVdSRUczMihhZGV2LT52Y24uZXh0ZXJuYWwuc2NyYXRjaDksIDB4Q0FGRURFQUQpOworCVdSRUczMihhZGV2LT52Y24uaW5zdFtyaW5nLT5tZV0uZXh0ZXJuYWwuc2NyYXRjaDksIDB4Q0FGRURFQUQpOwogCXIgPSBhbWRncHVfcmluZ19hbGxvYyhyaW5nLCA0KTsKIAlpZiAocikKIAkJcmV0dXJuIHI7Ci0JYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChtbVVWRF9HUENPTV9WQ1BVX0NNRF9JTlRFUk5BTF9PRkZTRVQsIDApKTsKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5jbWQsIDApKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBWQ05fREVDX0tNRF9DTUQgfCAoVkNOX0RFQ19DTURfUEFDS0VUX1NUQVJUIDw8IDEpKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5zY3JhdGNoOSwgMCkpOwogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIDB4REVBREJFRUYpOwogCWFtZGdwdV9yaW5nX2NvbW1pdChyaW5nKTsKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKLQkJdG1wID0gUlJFRzMyKGFkZXYtPnZjbi5leHRlcm5hbC5zY3JhdGNoOSk7CisJCXRtcCA9IFJSRUczMihhZGV2LT52Y24uaW5zdFtyaW5nLT5tZV0uZXh0ZXJuYWwuc2NyYXRjaDkpOwogCQlpZiAodG1wID09IDB4REVBREJFRUYpCiAJCQlicmVhazsKLQkJRFJNX1VERUxBWSgxKTsKKwkJdWRlbGF5KDEpOwogCX0KIAogCWlmIChpID49IGFkZXYtPnVzZWNfdGltZW91dCkKQEAgLTIxNTgsNyArMjE3MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIHZjbl92Ml8wX2lwX2Z1bmNzID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB2Y25fdjJfMF9kZWNfcmluZ192bV9mdW5jcyA9IHsKIAkudHlwZSA9IEFNREdQVV9SSU5HX1RZUEVfVkNOX0RFQywKIAkuYWxpZ25fbWFzayA9IDB4ZiwKLQkudm1odWIgPSBBTURHUFVfTU1IVUIsCisJLnZtaHViID0gQU1ER1BVX01NSFVCXzAsCiAJLmdldF9ycHRyID0gdmNuX3YyXzBfZGVjX3JpbmdfZ2V0X3JwdHIsCiAJLmdldF93cHRyID0gdmNuX3YyXzBfZGVjX3JpbmdfZ2V0X3dwdHIsCiAJLnNldF93cHRyID0gdmNuX3YyXzBfZGVjX3Jpbmdfc2V0X3dwdHIsCkBAIC0yMTg5LDcgKzIyMDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHZjbl92Ml8wX2VuY19yaW5nX3ZtX2Z1bmNzID0gewogCS50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9WQ05fRU5DLAogCS5hbGlnbl9tYXNrID0gMHgzZiwKIAkubm9wID0gVkNOX0VOQ19DTURfTk9fT1AsCi0JLnZtaHViID0gQU1ER1BVX01NSFVCLAorCS52bWh1YiA9IEFNREdQVV9NTUhVQl8wLAogCS5nZXRfcnB0ciA9IHZjbl92Ml8wX2VuY19yaW5nX2dldF9ycHRyLAogCS5nZXRfd3B0ciA9IHZjbl92Ml8wX2VuY19yaW5nX2dldF93cHRyLAogCS5zZXRfd3B0ciA9IHZjbl92Ml8wX2VuY19yaW5nX3NldF93cHRyLApAQCAtMjIxOCw3ICsyMjMxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB2Y25fdjJfMF9lbmNfcmluZ192bV9mdW5jcyA9IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MgdmNuX3YyXzBfanBlZ19yaW5nX3ZtX2Z1bmNzID0gewogCS50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9WQ05fSlBFRywKIAkuYWxpZ25fbWFzayA9IDB4ZiwKLQkudm1odWIgPSBBTURHUFVfTU1IVUIsCisJLnZtaHViID0gQU1ER1BVX01NSFVCXzAsCiAJLmdldF9ycHRyID0gdmNuX3YyXzBfanBlZ19yaW5nX2dldF9ycHRyLAogCS5nZXRfd3B0ciA9IHZjbl92Ml8wX2pwZWdfcmluZ19nZXRfd3B0ciwKIAkuc2V0X3dwdHIgPSB2Y25fdjJfMF9qcGVnX3Jpbmdfc2V0X3dwdHIsCkBAIC0yMjQ3LDcgKzIyNjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHZjbl92Ml8wX2pwZWdfcmluZ192bV9mdW5jcyA9IHsKIAogc3RhdGljIHZvaWQgdmNuX3YyXzBfc2V0X2RlY19yaW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCWFkZXYtPnZjbi5yaW5nX2RlYy5mdW5jcyA9ICZ2Y25fdjJfMF9kZWNfcmluZ192bV9mdW5jczsKKwlhZGV2LT52Y24uaW5zdC0+cmluZ19kZWMuZnVuY3MgPSAmdmNuX3YyXzBfZGVjX3Jpbmdfdm1fZnVuY3M7CiAJRFJNX0lORk8oIlZDTiBkZWNvZGUgaXMgZW5hYmxlZCBpbiBWTSBtb2RlXG4iKTsKIH0KIApAQCAtMjI1NiwxNCArMjI2OSwxNCBAQCBzdGF0aWMgdm9pZCB2Y25fdjJfMF9zZXRfZW5jX3JpbmdfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV9lbmNfcmluZ3M7ICsraSkKLQkJYWRldi0+dmNuLnJpbmdfZW5jW2ldLmZ1bmNzID0gJnZjbl92Ml8wX2VuY19yaW5nX3ZtX2Z1bmNzOworCQlhZGV2LT52Y24uaW5zdC0+cmluZ19lbmNbaV0uZnVuY3MgPSAmdmNuX3YyXzBfZW5jX3Jpbmdfdm1fZnVuY3M7CiAKIAlEUk1fSU5GTygiVkNOIGVuY29kZSBpcyBlbmFibGVkIGluIFZNIG1vZGVcbiIpOwogfQogCiBzdGF0aWMgdm9pZCB2Y25fdjJfMF9zZXRfanBlZ19yaW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCWFkZXYtPnZjbi5yaW5nX2pwZWcuZnVuY3MgPSAmdmNuX3YyXzBfanBlZ19yaW5nX3ZtX2Z1bmNzOworCWFkZXYtPnZjbi5pbnN0LT5yaW5nX2pwZWcuZnVuY3MgPSAmdmNuX3YyXzBfanBlZ19yaW5nX3ZtX2Z1bmNzOwogCURSTV9JTkZPKCJWQ04ganBlZyBkZWNvZGUgaXMgZW5hYmxlZCBpbiBWTSBtb2RlXG4iKTsKIH0KIApAQCAtMjI3NCw4ICsyMjg3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyB2Y25fdjJfMF9pcnFfZnVuY3MgPSB7CiAKIHN0YXRpYyB2b2lkIHZjbl92Ml8wX3NldF9pcnFfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0JYWRldi0+dmNuLmlycS5udW1fdHlwZXMgPSBhZGV2LT52Y24ubnVtX2VuY19yaW5ncyArIDI7Ci0JYWRldi0+dmNuLmlycS5mdW5jcyA9ICZ2Y25fdjJfMF9pcnFfZnVuY3M7CisJYWRldi0+dmNuLmluc3QtPmlycS5udW1fdHlwZXMgPSBhZGV2LT52Y24ubnVtX2VuY19yaW5ncyArIDI7CisJYWRldi0+dmNuLmluc3QtPmlycS5mdW5jcyA9ICZ2Y25fdjJfMF9pcnFfZnVuY3M7CiB9CiAKIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiB2Y25fdjJfMF9pcF9ibG9jayA9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjJfMC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YyXzAuaAppbmRleCBhNzQyMjdmLi44NDY3MjkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjJfMC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92Ml8wLmgKQEAgLTI0LDYgKzI0LDQ0IEBACiAjaWZuZGVmIF9fVkNOX1YyXzBfSF9fCiAjZGVmaW5lIF9fVkNOX1YyXzBfSF9fCiAKK2V4dGVybiB2b2lkIHZjbl92Ml8wX2RlY19yaW5nX2luc2VydF9zdGFydChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOworZXh0ZXJuIHZvaWQgdmNuX3YyXzBfZGVjX3JpbmdfaW5zZXJ0X2VuZChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOworZXh0ZXJuIHZvaWQgdmNuX3YyXzBfZGVjX3JpbmdfaW5zZXJ0X25vcChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGNvdW50KTsKK2V4dGVybiB2b2lkIHZjbl92Ml8wX2RlY19yaW5nX2VtaXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1NjQgYWRkciwgdTY0IHNlcSwKKwkJCQl1bnNpZ25lZCBmbGFncyk7CitleHRlcm4gdm9pZCB2Y25fdjJfMF9kZWNfcmluZ19lbWl0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9qb2IgKmpvYiwKKwkJCQlzdHJ1Y3QgYW1kZ3B1X2liICppYiwgdWludDMyX3QgZmxhZ3MpOworZXh0ZXJuIHZvaWQgdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF9yZWdfd2FpdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IHJlZywKKwkJCQl1aW50MzJfdCB2YWwsIHVpbnQzMl90IG1hc2spOworZXh0ZXJuIHZvaWQgdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF92bV9mbHVzaChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCisJCQkJdW5zaWduZWQgdm1pZCwgdWludDY0X3QgcGRfYWRkcik7CitleHRlcm4gdm9pZCB2Y25fdjJfMF9kZWNfcmluZ19lbWl0X3dyZWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAorCQkJCXVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKTsKKworZXh0ZXJuIHZvaWQgdmNuX3YyXzBfZW5jX3JpbmdfaW5zZXJ0X2VuZChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOworZXh0ZXJuIHZvaWQgdmNuX3YyXzBfZW5jX3JpbmdfZW1pdF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHU2NCBhZGRyLAorCQkJCXU2NCBzZXEsIHVuc2lnbmVkIGZsYWdzKTsKK2V4dGVybiB2b2lkIHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iLAorCQkJCXN0cnVjdCBhbWRncHVfaWIgKmliLCB1aW50MzJfdCBmbGFncyk7CitleHRlcm4gdm9pZCB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X3JlZ193YWl0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgcmVnLAorCQkJCXVpbnQzMl90IHZhbCwgdWludDMyX3QgbWFzayk7CitleHRlcm4gdm9pZCB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKKwkJCQl1bnNpZ25lZCBpbnQgdm1pZCwgdWludDY0X3QgcGRfYWRkcik7CitleHRlcm4gdm9pZCB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X3dyZWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbCk7CisKK2V4dGVybiB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19pbnNlcnRfc3RhcnQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKK2V4dGVybiB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19pbnNlcnRfZW5kKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7CitleHRlcm4gdm9pZCB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHU2NCBhZGRyLCB1NjQgc2VxLAorCQkJCXVuc2lnbmVkIGZsYWdzKTsKK2V4dGVybiB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9qb2IgKmpvYiwKKwkJCQlzdHJ1Y3QgYW1kZ3B1X2liICppYiwgdWludDMyX3QgZmxhZ3MpOworZXh0ZXJuIHZvaWQgdmNuX3YyXzBfanBlZ19yaW5nX2VtaXRfcmVnX3dhaXQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCByZWcsCisJCQkJdWludDMyX3QgdmFsLCB1aW50MzJfdCBtYXNrKTsKK2V4dGVybiB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKKwkJCQl1bnNpZ25lZCB2bWlkLCB1aW50NjRfdCBwZF9hZGRyKTsKK2V4dGVybiB2b2lkIHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X3dyZWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbCk7CitleHRlcm4gdm9pZCB2Y25fdjJfMF9qcGVnX3Jpbmdfbm9wKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgY291bnQpOworCiBleHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIHZjbl92Ml8wX2lwX2Jsb2NrOwogCiAjZW5kaWYgLyogX19WQ05fVjJfMF9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92Ml81LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjJfNS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NWMyMjUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjJfNS5jCkBAIC0wLDAgKzEsMTQxNCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisKKyNpbmNsdWRlICJhbWRncHUuaCIKKyNpbmNsdWRlICJhbWRncHVfdmNuLmgiCisjaW5jbHVkZSAic29jMTUuaCIKKyNpbmNsdWRlICJzb2MxNWQuaCIKKyNpbmNsdWRlICJ2Y25fdjJfMC5oIgorCisjaW5jbHVkZSAidmNuL3Zjbl8yXzVfb2Zmc2V0LmgiCisjaW5jbHVkZSAidmNuL3Zjbl8yXzVfc2hfbWFzay5oIgorI2luY2x1ZGUgIml2c3JjaWQvdmNuL2lycXNyY3NfdmNuXzJfMC5oIgorCisjZGVmaW5lIG1tVVZEX0NPTlRFWFRfSURfSU5URVJOQUxfT0ZGU0VUCQkJMHgyNworI2RlZmluZSBtbVVWRF9HUENPTV9WQ1BVX0NNRF9JTlRFUk5BTF9PRkZTRVQJCQkweDBmCisjZGVmaW5lIG1tVVZEX0dQQ09NX1ZDUFVfREFUQTBfSU5URVJOQUxfT0ZGU0VUCQkJMHgxMAorI2RlZmluZSBtbVVWRF9HUENPTV9WQ1BVX0RBVEExX0lOVEVSTkFMX09GRlNFVAkJCTB4MTEKKyNkZWZpbmUgbW1VVkRfTk9fT1BfSU5URVJOQUxfT0ZGU0VUCQkJCTB4MjkKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDhfSU5URVJOQUxfT0ZGU0VUCQkJMHg2NgorI2RlZmluZSBtbVVWRF9TQ1JBVENIOV9JTlRFUk5BTF9PRkZTRVQJCQkJMHhjMDFkCisKKyNkZWZpbmUgbW1VVkRfTE1JX1JCQ19JQl9WTUlEX0lOVEVSTkFMX09GRlNFVAkJCTB4NDMxCisjZGVmaW5lIG1tVVZEX0xNSV9SQkNfSUJfNjRCSVRfQkFSX0xPV19JTlRFUk5BTF9PRkZTRVQJCTB4M2I0CisjZGVmaW5lIG1tVVZEX0xNSV9SQkNfSUJfNjRCSVRfQkFSX0hJR0hfSU5URVJOQUxfT0ZGU0VUIAkweDNiNQorI2RlZmluZSBtbVVWRF9SQkNfSUJfU0laRV9JTlRFUk5BTF9PRkZTRVQJCQkweDI1YworCisjZGVmaW5lIG1tVVZEX0pQRUdfUElUQ0hfSU5URVJOQUxfT0ZGU0VUCQkJMHg0MDFmCisKKyNkZWZpbmUgVkNOMjVfTUFYX0hXX0lOU1RBTkNFU19BUkNUVVJVUwkJCQkyCisKK3N0YXRpYyB2b2lkIHZjbl92Ml81X3NldF9kZWNfcmluZ19mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CitzdGF0aWMgdm9pZCB2Y25fdjJfNV9zZXRfZW5jX3JpbmdfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOworc3RhdGljIHZvaWQgdmNuX3YyXzVfc2V0X2pwZWdfcmluZ19mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CitzdGF0aWMgdm9pZCB2Y25fdjJfNV9zZXRfaXJxX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKK3N0YXRpYyBpbnQgdmNuX3YyXzVfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJCQllbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSk7CisKK3N0YXRpYyBpbnQgYW1kZ3B1X2loX2NsaWVudGlkX3ZjbnNbXSA9IHsKKwlTT0MxNV9JSF9DTElFTlRJRF9WQ04sCisJU09DMTVfSUhfQ0xJRU5USURfVkNOMQorfTsKKworLyoqCisgKiB2Y25fdjJfNV9lYXJseV9pbml0IC0gc2V0IGZ1bmN0aW9uIHBvaW50ZXJzCisgKgorICogQGhhbmRsZTogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKgorICogU2V0IHJpbmcgYW5kIGlycSBmdW5jdGlvbiBwb2ludGVycworICovCitzdGF0aWMgaW50IHZjbl92Ml81X2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9BUkNUVVJVUykgeworCQl1MzIgaGFydmVzdDsKKwkJaW50IGk7CisKKwkJYWRldi0+dmNuLm51bV92Y25faW5zdCA9IFZDTjI1X01BWF9IV19JTlNUQU5DRVNfQVJDVFVSVVM7CisJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52Y24ubnVtX3Zjbl9pbnN0OyBpKyspIHsKKwkJCWhhcnZlc3QgPSBSUkVHMzJfU09DMTUoVVZELCBpLCBtbUNDX1VWRF9IQVJWRVNUSU5HKTsKKwkJCWlmIChoYXJ2ZXN0ICYgQ0NfVVZEX0hBUlZFU1RJTkdfX1VWRF9ESVNBQkxFX01BU0spCisJCQkJYWRldi0+dmNuLmhhcnZlc3RfY29uZmlnIHw9IDEgPDwgaTsKKwkJfQorCisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgPT0gKEFNREdQVV9WQ05fSEFSVkVTVF9WQ04wIHwKKwkJCQkJCSBBTURHUFVfVkNOX0hBUlZFU1RfVkNOMSkpCisJCQkvKiBib3RoIGluc3RhbmNlcyBhcmUgaGFydmVzdGVkLCBkaXNhYmxlIHRoZSBibG9jayAqLworCQkJcmV0dXJuIC1FTk9FTlQ7CisJfSBlbHNlCisJCWFkZXYtPnZjbi5udW1fdmNuX2luc3QgPSAxOworCisJYWRldi0+dmNuLm51bV9lbmNfcmluZ3MgPSAyOworCisJdmNuX3YyXzVfc2V0X2RlY19yaW5nX2Z1bmNzKGFkZXYpOworCXZjbl92Ml81X3NldF9lbmNfcmluZ19mdW5jcyhhZGV2KTsKKwl2Y25fdjJfNV9zZXRfanBlZ19yaW5nX2Z1bmNzKGFkZXYpOworCXZjbl92Ml81X3NldF9pcnFfZnVuY3MoYWRldik7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiB2Y25fdjJfNV9zd19pbml0IC0gc3cgaW5pdCBmb3IgVkNOIGJsb2NrCisgKgorICogQGhhbmRsZTogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKgorICogTG9hZCBmaXJtd2FyZSBhbmQgc3cgaW5pdGlhbGl6YXRpb24KKyAqLworc3RhdGljIGludCB2Y25fdjJfNV9zd19pbml0KHZvaWQgKmhhbmRsZSkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7CisJaW50IGksIGosIHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKKwlmb3IgKGogPSAwOyBqIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgaisrKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBqKSkKKwkJCWNvbnRpbnVlOworCQkvKiBWQ04gREVDIFRSQVAgKi8KKwkJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIGFtZGdwdV9paF9jbGllbnRpZF92Y25zW2pdLAorCQkJCVZDTl8yXzBfX1NSQ0lEX19VVkRfU1lTVEVNX01FU1NBR0VfSU5URVJSVVBULCAmYWRldi0+dmNuLmluc3Rbal0uaXJxKTsKKwkJaWYgKHIpCisJCQlyZXR1cm4gcjsKKworCQkvKiBWQ04gRU5DIFRSQVAgKi8KKwkJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyArK2kpIHsKKwkJCXIgPSBhbWRncHVfaXJxX2FkZF9pZChhZGV2LCBhbWRncHVfaWhfY2xpZW50aWRfdmNuc1tqXSwKKwkJCQlpICsgVkNOXzJfMF9fU1JDSURfX1VWRF9FTkNfR0VORVJBTF9QVVJQT1NFLCAmYWRldi0+dmNuLmluc3Rbal0uaXJxKTsKKwkJCWlmIChyKQorCQkJCXJldHVybiByOworCQl9CisKKwkJLyogVkNOIEpQRUcgVFJBUCAqLworCQlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgYW1kZ3B1X2loX2NsaWVudGlkX3ZjbnNbal0sCisJCQkJVkNOXzJfMF9fU1JDSURfX0pQRUdfREVDT0RFLCAmYWRldi0+dmNuLmluc3Rbal0uaXJxKTsKKwkJaWYgKHIpCisJCQlyZXR1cm4gcjsKKwl9CisKKwlyID0gYW1kZ3B1X3Zjbl9zd19pbml0KGFkZXYpOworCWlmIChyKQorCQlyZXR1cm4gcjsKKworCWlmIChhZGV2LT5maXJtd2FyZS5sb2FkX3R5cGUgPT0gQU1ER1BVX0ZXX0xPQURfUFNQKSB7CisJCWNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICpoZHI7CisJCWhkciA9IChjb25zdCBzdHJ1Y3QgY29tbW9uX2Zpcm13YXJlX2hlYWRlciAqKWFkZXYtPnZjbi5mdy0+ZGF0YTsKKwkJYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX1ZDTl0udWNvZGVfaWQgPSBBTURHUFVfVUNPREVfSURfVkNOOworCQlhZGV2LT5maXJtd2FyZS51Y29kZVtBTURHUFVfVUNPREVfSURfVkNOXS5mdyA9IGFkZXYtPnZjbi5mdzsKKwkJYWRldi0+ZmlybXdhcmUuZndfc2l6ZSArPQorCQkJQUxJR04obGUzMl90b19jcHUoaGRyLT51Y29kZV9zaXplX2J5dGVzKSwgUEFHRV9TSVpFKTsKKworCQlpZiAoYWRldi0+dmNuLm51bV92Y25faW5zdCA9PSBWQ04yNV9NQVhfSFdfSU5TVEFOQ0VTX0FSQ1RVUlVTKSB7CisJCQlhZGV2LT5maXJtd2FyZS51Y29kZVtBTURHUFVfVUNPREVfSURfVkNOMV0udWNvZGVfaWQgPSBBTURHUFVfVUNPREVfSURfVkNOMTsKKwkJCWFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9WQ04xXS5mdyA9IGFkZXYtPnZjbi5mdzsKKwkJCWFkZXYtPmZpcm13YXJlLmZ3X3NpemUgKz0KKwkJCQlBTElHTihsZTMyX3RvX2NwdShoZHItPnVjb2RlX3NpemVfYnl0ZXMpLCBQQUdFX1NJWkUpOworCQl9CisJCURSTV9JTkZPKCJQU1AgbG9hZGluZyBWQ04gZmlybXdhcmVcbiIpOworCX0KKworCXIgPSBhbWRncHVfdmNuX3Jlc3VtZShhZGV2KTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwlmb3IgKGogPSAwOyBqIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgaisrKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBqKSkKKwkJCWNvbnRpbnVlOworCQlhZGV2LT52Y24uaW50ZXJuYWwuY29udGV4dF9pZCA9IG1tVVZEX0NPTlRFWFRfSURfSU5URVJOQUxfT0ZGU0VUOworCQlhZGV2LT52Y24uaW50ZXJuYWwuaWJfdm1pZCA9IG1tVVZEX0xNSV9SQkNfSUJfVk1JRF9JTlRFUk5BTF9PRkZTRVQ7CisJCWFkZXYtPnZjbi5pbnRlcm5hbC5pYl9iYXJfbG93ID0gbW1VVkRfTE1JX1JCQ19JQl82NEJJVF9CQVJfTE9XX0lOVEVSTkFMX09GRlNFVDsKKwkJYWRldi0+dmNuLmludGVybmFsLmliX2Jhcl9oaWdoID0gbW1VVkRfTE1JX1JCQ19JQl82NEJJVF9CQVJfSElHSF9JTlRFUk5BTF9PRkZTRVQ7CisJCWFkZXYtPnZjbi5pbnRlcm5hbC5pYl9zaXplID0gbW1VVkRfUkJDX0lCX1NJWkVfSU5URVJOQUxfT0ZGU0VUOworCQlhZGV2LT52Y24uaW50ZXJuYWwuZ3Bfc2NyYXRjaDggPSBtbVVWRF9HUF9TQ1JBVENIOF9JTlRFUk5BTF9PRkZTRVQ7CisKKwkJYWRldi0+dmNuLmludGVybmFsLnNjcmF0Y2g5ID0gbW1VVkRfU0NSQVRDSDlfSU5URVJOQUxfT0ZGU0VUOworCQlhZGV2LT52Y24uaW5zdFtqXS5leHRlcm5hbC5zY3JhdGNoOSA9IFNPQzE1X1JFR19PRkZTRVQoVVZELCBqLCBtbVVWRF9TQ1JBVENIOSk7CisJCWFkZXYtPnZjbi5pbnRlcm5hbC5kYXRhMCA9IG1tVVZEX0dQQ09NX1ZDUFVfREFUQTBfSU5URVJOQUxfT0ZGU0VUOworCQlhZGV2LT52Y24uaW5zdFtqXS5leHRlcm5hbC5kYXRhMCA9IFNPQzE1X1JFR19PRkZTRVQoVVZELCBqLCBtbVVWRF9HUENPTV9WQ1BVX0RBVEEwKTsKKwkJYWRldi0+dmNuLmludGVybmFsLmRhdGExID0gbW1VVkRfR1BDT01fVkNQVV9EQVRBMV9JTlRFUk5BTF9PRkZTRVQ7CisJCWFkZXYtPnZjbi5pbnN0W2pdLmV4dGVybmFsLmRhdGExID0gU09DMTVfUkVHX09GRlNFVChVVkQsIGosIG1tVVZEX0dQQ09NX1ZDUFVfREFUQTEpOworCQlhZGV2LT52Y24uaW50ZXJuYWwuY21kID0gbW1VVkRfR1BDT01fVkNQVV9DTURfSU5URVJOQUxfT0ZGU0VUOworCQlhZGV2LT52Y24uaW5zdFtqXS5leHRlcm5hbC5jbWQgPSBTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaiwgbW1VVkRfR1BDT01fVkNQVV9DTUQpOworCQlhZGV2LT52Y24uaW50ZXJuYWwubm9wID0gbW1VVkRfTk9fT1BfSU5URVJOQUxfT0ZGU0VUOworCQlhZGV2LT52Y24uaW5zdFtqXS5leHRlcm5hbC5ub3AgPSBTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaiwgbW1VVkRfTk9fT1ApOworCisJCWFkZXYtPnZjbi5pbnRlcm5hbC5qcGVnX3BpdGNoID0gbW1VVkRfSlBFR19QSVRDSF9JTlRFUk5BTF9PRkZTRVQ7CisJCWFkZXYtPnZjbi5pbnN0W2pdLmV4dGVybmFsLmpwZWdfcGl0Y2ggPSBTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaiwgbW1VVkRfSlBFR19QSVRDSCk7CisKKwkJcmluZyA9ICZhZGV2LT52Y24uaW5zdFtqXS5yaW5nX2RlYzsKKwkJcmluZy0+dXNlX2Rvb3JiZWxsID0gdHJ1ZTsKKwkJcmluZy0+ZG9vcmJlbGxfaW5kZXggPSAoYWRldi0+ZG9vcmJlbGxfaW5kZXgudmNuLnZjbl9yaW5nMF8xIDw8IDEpICsgOCpqOworCQlzcHJpbnRmKHJpbmctPm5hbWUsICJ2Y25fZGVjXyVkIiwgaik7CisJCXIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDUxMiwgJmFkZXYtPnZjbi5pbnN0W2pdLmlycSwgMCk7CisJCWlmIChyKQorCQkJcmV0dXJuIHI7CisKKwkJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyArK2kpIHsKKwkJCXJpbmcgPSAmYWRldi0+dmNuLmluc3Rbal0ucmluZ19lbmNbaV07CisJCQlyaW5nLT51c2VfZG9vcmJlbGwgPSB0cnVlOworCQkJcmluZy0+ZG9vcmJlbGxfaW5kZXggPSAoYWRldi0+ZG9vcmJlbGxfaW5kZXgudmNuLnZjbl9yaW5nMF8xIDw8IDEpICsgMiArIGkgKyA4Kmo7CisJCQlzcHJpbnRmKHJpbmctPm5hbWUsICJ2Y25fZW5jXyVkLiVkIiwgaiwgaSk7CisJCQlyID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsICZhZGV2LT52Y24uaW5zdFtqXS5pcnEsIDApOworCQkJaWYgKHIpCisJCQkJcmV0dXJuIHI7CisJCX0KKworCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0W2pdLnJpbmdfanBlZzsKKwkJcmluZy0+dXNlX2Rvb3JiZWxsID0gdHJ1ZTsKKwkJcmluZy0+ZG9vcmJlbGxfaW5kZXggPSAoYWRldi0+ZG9vcmJlbGxfaW5kZXgudmNuLnZjbl9yaW5nMF8xIDw8IDEpICsgMSArIDgqajsKKwkJc3ByaW50ZihyaW5nLT5uYW1lLCAidmNuX2pwZWdfJWQiLCBqKTsKKwkJciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgNTEyLCAmYWRldi0+dmNuLmluc3Rbal0uaXJxLCAwKTsKKwkJaWYgKHIpCisJCQlyZXR1cm4gcjsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiB2Y25fdjJfNV9zd19maW5pIC0gc3cgZmluaSBmb3IgVkNOIGJsb2NrCisgKgorICogQGhhbmRsZTogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKgorICogVkNOIHN1c3BlbmQgYW5kIGZyZWUgdXAgc3cgYWxsb2NhdGlvbgorICovCitzdGF0aWMgaW50IHZjbl92Ml81X3N3X2Zpbmkodm9pZCAqaGFuZGxlKQoreworCWludCByOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCisJciA9IGFtZGdwdV92Y25fc3VzcGVuZChhZGV2KTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwlyID0gYW1kZ3B1X3Zjbl9zd19maW5pKGFkZXYpOworCisJcmV0dXJuIHI7Cit9CisKKy8qKgorICogdmNuX3YyXzVfaHdfaW5pdCAtIHN0YXJ0IGFuZCB0ZXN0IFZDTiBibG9jaworICoKKyAqIEBoYW5kbGU6IGFtZGdwdV9kZXZpY2UgcG9pbnRlcgorICoKKyAqIEluaXRpYWxpemUgdGhlIGhhcmR3YXJlLCBib290IHVwIHRoZSBWQ1BVIGFuZCBkbyBzb21lIHRlc3RpbmcKKyAqLworc3RhdGljIGludCB2Y25fdjJfNV9od19pbml0KHZvaWQgKmhhbmRsZSkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7CisJaW50IGksIGosIHI7CisKKwlmb3IgKGogPSAwOyBqIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytqKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBqKSkKKwkJCWNvbnRpbnVlOworCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0W2pdLnJpbmdfZGVjOworCisJCWFkZXYtPm5iaW9fZnVuY3MtPnZjbl9kb29yYmVsbF9yYW5nZShhZGV2LCByaW5nLT51c2VfZG9vcmJlbGwsCisJCQkJCQkgICAgIHJpbmctPmRvb3JiZWxsX2luZGV4LCBqKTsKKworCQlyID0gYW1kZ3B1X3JpbmdfdGVzdF9yaW5nKHJpbmcpOworCQlpZiAocikgeworCQkJcmluZy0+c2NoZWQucmVhZHkgPSBmYWxzZTsKKwkJCWdvdG8gZG9uZTsKKwkJfQorCisJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52Y24ubnVtX2VuY19yaW5nczsgKytpKSB7CisJCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0W2pdLnJpbmdfZW5jW2ldOworCQkJcmluZy0+c2NoZWQucmVhZHkgPSBmYWxzZTsKKwkJCWNvbnRpbnVlOworCQkJciA9IGFtZGdwdV9yaW5nX3Rlc3RfcmluZyhyaW5nKTsKKwkJCWlmIChyKSB7CisJCQkJcmluZy0+c2NoZWQucmVhZHkgPSBmYWxzZTsKKwkJCQlnb3RvIGRvbmU7CisJCQl9CisJCX0KKworCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0W2pdLnJpbmdfanBlZzsKKwkJciA9IGFtZGdwdV9yaW5nX3Rlc3RfcmluZyhyaW5nKTsKKwkJaWYgKHIpIHsKKwkJCXJpbmctPnNjaGVkLnJlYWR5ID0gZmFsc2U7CisJCQlnb3RvIGRvbmU7CisJCX0KKwl9Citkb25lOgorCWlmICghcikKKwkJRFJNX0lORk8oIlZDTiBkZWNvZGUgYW5kIGVuY29kZSBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkuXG4iKTsKKworCXJldHVybiByOworfQorCisvKioKKyAqIHZjbl92Ml81X2h3X2ZpbmkgLSBzdG9wIHRoZSBoYXJkd2FyZSBibG9jaworICoKKyAqIEBoYW5kbGU6IGFtZGdwdV9kZXZpY2UgcG9pbnRlcgorICoKKyAqIFN0b3AgdGhlIFZDTiBibG9jaywgbWFyayByaW5nIGFzIG5vdCByZWFkeSBhbnkgbW9yZQorICovCitzdGF0aWMgaW50IHZjbl92Ml81X2h3X2Zpbmkodm9pZCAqaGFuZGxlKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZzsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52Y24ubnVtX3Zjbl9pbnN0OyArK2kpIHsKKwkJaWYgKGFkZXYtPnZjbi5oYXJ2ZXN0X2NvbmZpZyAmICgxIDw8IGkpKQorCQkJY29udGludWU7CisJCXJpbmcgPSAmYWRldi0+dmNuLmluc3RbaV0ucmluZ19kZWM7CisKKwkJaWYgKFJSRUczMl9TT0MxNShWQ04sIGksIG1tVVZEX1NUQVRVUykpCisJCQl2Y25fdjJfNV9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoYWRldiwgQU1EX1BHX1NUQVRFX0dBVEUpOworCisJCXJpbmctPnNjaGVkLnJlYWR5ID0gZmFsc2U7CisKKwkJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzOyArK2kpIHsKKwkJCXJpbmcgPSAmYWRldi0+dmNuLmluc3RbaV0ucmluZ19lbmNbaV07CisJCQlyaW5nLT5zY2hlZC5yZWFkeSA9IGZhbHNlOworCQl9CisKKwkJcmluZyA9ICZhZGV2LT52Y24uaW5zdFtpXS5yaW5nX2pwZWc7CisJCXJpbmctPnNjaGVkLnJlYWR5ID0gZmFsc2U7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogdmNuX3YyXzVfc3VzcGVuZCAtIHN1c3BlbmQgVkNOIGJsb2NrCisgKgorICogQGhhbmRsZTogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKgorICogSFcgZmluaSBhbmQgc3VzcGVuZCBWQ04gYmxvY2sKKyAqLworc3RhdGljIGludCB2Y25fdjJfNV9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKK3sKKwlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKworCXIgPSB2Y25fdjJfNV9od19maW5pKGFkZXYpOworCWlmIChyKQorCQlyZXR1cm4gcjsKKworCXIgPSBhbWRncHVfdmNuX3N1c3BlbmQoYWRldik7CisKKwlyZXR1cm4gcjsKK30KKworLyoqCisgKiB2Y25fdjJfNV9yZXN1bWUgLSByZXN1bWUgVkNOIGJsb2NrCisgKgorICogQGhhbmRsZTogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKgorICogUmVzdW1lIGZpcm13YXJlIGFuZCBodyBpbml0IFZDTiBibG9jaworICovCitzdGF0aWMgaW50IHZjbl92Ml81X3Jlc3VtZSh2b2lkICpoYW5kbGUpCit7CisJaW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKKwlyID0gYW1kZ3B1X3Zjbl9yZXN1bWUoYWRldik7CisJaWYgKHIpCisJCXJldHVybiByOworCisJciA9IHZjbl92Ml81X2h3X2luaXQoYWRldik7CisKKwlyZXR1cm4gcjsKK30KKworLyoqCisgKiB2Y25fdjJfNV9tY19yZXN1bWUgLSBtZW1vcnkgY29udHJvbGxlciBwcm9ncmFtbWluZworICoKKyAqIEBhZGV2OiBhbWRncHVfZGV2aWNlIHBvaW50ZXIKKyAqCisgKiBMZXQgdGhlIFZDTiBtZW1vcnkgY29udHJvbGxlciBrbm93IGl0J3Mgb2Zmc2V0cworICovCitzdGF0aWMgdm9pZCB2Y25fdjJfNV9tY19yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJdWludDMyX3Qgc2l6ZSA9IEFNREdQVV9HUFVfUEFHRV9BTElHTihhZGV2LT52Y24uZnctPnNpemUgKyA0KTsKKwl1aW50MzJfdCBvZmZzZXQ7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytpKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCQkvKiBjYWNoZSB3aW5kb3cgMDogZncgKi8KKwkJaWYgKGFkZXYtPmZpcm13YXJlLmxvYWRfdHlwZSA9PSBBTURHUFVfRldfTE9BRF9QU1ApIHsKKwkJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9MT1csCisJCQkJKGFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9WQ05dLnRtcl9tY19hZGRyX2xvKSk7CisJCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSCwKKwkJCQkoYWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX1ZDTl0udG1yX21jX2FkZHJfaGkpKTsKKwkJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMCwgMCk7CisJCQlvZmZzZXQgPSAwOworCQl9IGVsc2UgeworCQkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0xPVywKKwkJCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0W2ldLmdwdV9hZGRyKSk7CisJCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSCwKKwkJCQl1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0W2ldLmdwdV9hZGRyKSk7CisJCQlvZmZzZXQgPSBzaXplOworCQkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQwLAorCQkJCUFNREdQVV9VVkRfRklSTVdBUkVfT0ZGU0VUID4+IDMpOworCQl9CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTAsIHNpemUpOworCisJCS8qIGNhY2hlIHdpbmRvdyAxOiBzdGFjayAqLworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9MTUlfVkNQVV9DQUNIRTFfNjRCSVRfQkFSX0xPVywKKwkJCWxvd2VyXzMyX2JpdHMoYWRldi0+dmNuLmluc3RbaV0uZ3B1X2FkZHIgKyBvZmZzZXQpKTsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUxXzY0QklUX0JBUl9ISUdILAorCQkJdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uaW5zdFtpXS5ncHVfYWRkciArIG9mZnNldCkpOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDEsIDApOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUxLCBBTURHUFVfVkNOX1NUQUNLX1NJWkUpOworCisJCS8qIGNhY2hlIHdpbmRvdyAyOiBjb250ZXh0ICovCisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJVF9CQVJfTE9XLAorCQkJbG93ZXJfMzJfYml0cyhhZGV2LT52Y24uaW5zdFtpXS5ncHVfYWRkciArIG9mZnNldCArIEFNREdQVV9WQ05fU1RBQ0tfU0laRSkpOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0hJR0gsCisJCQl1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5pbnN0W2ldLmdwdV9hZGRyICsgb2Zmc2V0ICsgQU1ER1BVX1ZDTl9TVEFDS19TSVpFKSk7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMiwgMCk7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTIsIEFNREdQVV9WQ05fQ09OVEVYVF9TSVpFKTsKKwl9Cit9CisKKy8qKgorICogdmNuX3YyXzVfZGlzYWJsZV9jbG9ja19nYXRpbmcgLSBkaXNhYmxlIFZDTiBjbG9jayBnYXRpbmcKKyAqCisgKiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKiBAc3c6IGVuYWJsZSBTVyBjbG9jayBnYXRpbmcKKyAqCisgKiBEaXNhYmxlIGNsb2NrIGdhdGluZyBmb3IgVkNOIGJsb2NrCisgKi8KK3N0YXRpYyB2b2lkIHZjbl92Ml81X2Rpc2FibGVfY2xvY2tfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCXVpbnQzMl90IGRhdGE7CisJaW50IHJldCA9IDA7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytpKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCQkvKiBVVkQgZGlzYWJsZSBDR0MgKi8KKwkJZGF0YSA9IFJSRUczMl9TT0MxNShWQ04sIGksIG1tVVZEX0NHQ19DVFJMKTsKKwkJaWYgKGFkZXYtPmNnX2ZsYWdzICYgQU1EX0NHX1NVUFBPUlRfVkNOX01HQ0cpCisJCQlkYXRhIHw9IDEgPDwgVVZEX0NHQ19DVFJMX19EWU5fQ0xPQ0tfTU9ERV9fU0hJRlQ7CisJCWVsc2UKKwkJCWRhdGEgJj0gflVWRF9DR0NfQ1RSTF9fRFlOX0NMT0NLX01PREVfTUFTSzsKKwkJZGF0YSB8PSAxIDw8IFVWRF9DR0NfQ1RSTF9fQ0xLX0dBVEVfRExZX1RJTUVSX19TSElGVDsKKwkJZGF0YSB8PSA0IDw8IFVWRF9DR0NfQ1RSTF9fQ0xLX09GRl9ERUxBWV9fU0hJRlQ7CisJCVdSRUczMl9TT0MxNShWQ04sIGksIG1tVVZEX0NHQ19DVFJMLCBkYXRhKTsKKworCQlkYXRhID0gUlJFRzMyX1NPQzE1KFZDTiwgaSwgbW1VVkRfQ0dDX0dBVEUpOworCQlkYXRhICY9IH4oVVZEX0NHQ19HQVRFX19TWVNfTUFTSworCQkJfCBVVkRfQ0dDX0dBVEVfX1VERUNfTUFTSworCQkJfCBVVkRfQ0dDX0dBVEVfX01QRUcyX01BU0sKKwkJCXwgVVZEX0NHQ19HQVRFX19SRUdTX01BU0sKKwkJCXwgVVZEX0NHQ19HQVRFX19SQkNfTUFTSworCQkJfCBVVkRfQ0dDX0dBVEVfX0xNSV9NQ19NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fTE1JX1VNQ19NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fSURDVF9NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fTVBSRF9NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fTVBDX01BU0sKKwkJCXwgVVZEX0NHQ19HQVRFX19MQlNJX01BU0sKKwkJCXwgVVZEX0NHQ19HQVRFX19MUkJCTV9NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fVURFQ19SRV9NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fVURFQ19DTV9NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fVURFQ19JVF9NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fVURFQ19EQl9NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fVURFQ19NUF9NQVNLCisJCQl8IFVWRF9DR0NfR0FURV9fV0NCX01BU0sKKwkJCXwgVVZEX0NHQ19HQVRFX19WQ1BVX01BU0sKKwkJCXwgVVZEX0NHQ19HQVRFX19NTVNDSF9NQVNLKTsKKworCQlXUkVHMzJfU09DMTUoVkNOLCBpLCBtbVVWRF9DR0NfR0FURSwgZGF0YSk7CisKKwkJU09DMTVfV0FJVF9PTl9SUkVHKFZDTiwgaSwgbW1VVkRfQ0dDX0dBVEUsIDAsICAweEZGRkZGRkZGLCByZXQpOworCisJCWRhdGEgPSBSUkVHMzJfU09DMTUoVkNOLCBpLCBtbVVWRF9DR0NfQ1RSTCk7CisJCWRhdGEgJj0gfihVVkRfQ0dDX0NUUkxfX1VERUNfUkVfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fVURFQ19DTV9NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19VREVDX0lUX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX1VERUNfREJfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fVURFQ19NUF9NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19TWVNfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fVURFQ19NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19NUEVHMl9NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19SRUdTX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX1JCQ19NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19MTUlfTUNfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fTE1JX1VNQ19NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19JRENUX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX01QUkRfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fTVBDX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX0xCU0lfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fTFJCQk1fTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fV0NCX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX1ZDUFVfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fTU1TQ0hfTU9ERV9NQVNLKTsKKwkJV1JFRzMyX1NPQzE1KFZDTiwgaSwgbW1VVkRfQ0dDX0NUUkwsIGRhdGEpOworCisJCS8qIHR1cm4gb24gKi8KKwkJZGF0YSA9IFJSRUczMl9TT0MxNShWQ04sIGksIG1tVVZEX1NVVkRfQ0dDX0dBVEUpOworCQlkYXRhIHw9IChVVkRfU1VWRF9DR0NfR0FURV9fU1JFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVF9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TTVBfTUFTSworCQkJfCBVVkRfU1VWRF9DR0NfR0FURV9fU0NNX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0dBVEVfX1NEQl9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TUkVfSDI2NF9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TUkVfSEVWQ19NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TSVRfSDI2NF9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TSVRfSEVWQ19NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TQ01fSDI2NF9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TQ01fSEVWQ19NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TREJfSDI2NF9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TREJfSEVWQ19NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TQ0xSX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0dBVEVfX1VWRF9TQ19NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19FTlRfTUFTSworCQkJfCBVVkRfU1VWRF9DR0NfR0FURV9fU0lUX0hFVkNfREVDX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVF9IRVZDX0VOQ19NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TSVRFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0dBVEVfX1NSRV9WUDlfTUFTSworCQkJfCBVVkRfU1VWRF9DR0NfR0FURV9fU0NNX1ZQOV9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TSVRfVlA5X0RFQ19NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19HQVRFX19TREJfVlA5X01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0dBVEVfX0lNRV9IRVZDX01BU0spOworCQlXUkVHMzJfU09DMTUoVkNOLCBpLCBtbVVWRF9TVVZEX0NHQ19HQVRFLCBkYXRhKTsKKworCQlkYXRhID0gUlJFRzMyX1NPQzE1KFZDTiwgaSwgbW1VVkRfU1VWRF9DR0NfQ1RSTCk7CisJCWRhdGEgJj0gfihVVkRfU1VWRF9DR0NfQ1RSTF9fU1JFX01PREVfTUFTSworCQkJfCBVVkRfU1VWRF9DR0NfQ1RSTF9fU0lUX01PREVfTUFTSworCQkJfCBVVkRfU1VWRF9DR0NfQ1RSTF9fU01QX01PREVfTUFTSworCQkJfCBVVkRfU1VWRF9DR0NfQ1RSTF9fU0NNX01PREVfTUFTSworCQkJfCBVVkRfU1VWRF9DR0NfQ1RSTF9fU0RCX01PREVfTUFTSworCQkJfCBVVkRfU1VWRF9DR0NfQ1RSTF9fU0NMUl9NT0RFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0NUUkxfX1VWRF9TQ19NT0RFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0NUUkxfX0VOVF9NT0RFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0NUUkxfX0lNRV9NT0RFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0NUUkxfX1NJVEVfTU9ERV9NQVNLKTsKKwkJV1JFRzMyX1NPQzE1KFZDTiwgaSwgbW1VVkRfU1VWRF9DR0NfQ1RSTCwgZGF0YSk7CisJfQorfQorCisvKioKKyAqIHZjbl92Ml81X2VuYWJsZV9jbG9ja19nYXRpbmcgLSBlbmFibGUgVkNOIGNsb2NrIGdhdGluZworICoKKyAqIEBhZGV2OiBhbWRncHVfZGV2aWNlIHBvaW50ZXIKKyAqIEBzdzogZW5hYmxlIFNXIGNsb2NrIGdhdGluZworICoKKyAqIEVuYWJsZSBjbG9jayBnYXRpbmcgZm9yIFZDTiBibG9jaworICovCitzdGF0aWMgdm9pZCB2Y25fdjJfNV9lbmFibGVfY2xvY2tfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCXVpbnQzMl90IGRhdGEgPSAwOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fdmNuX2luc3Q7ICsraSkgeworCQlpZiAoYWRldi0+dmNuLmhhcnZlc3RfY29uZmlnICYgKDEgPDwgaSkpCisJCQljb250aW51ZTsKKwkJLyogZW5hYmxlIFVWRCBDR0MgKi8KKwkJZGF0YSA9IFJSRUczMl9TT0MxNShWQ04sIGksIG1tVVZEX0NHQ19DVFJMKTsKKwkJaWYgKGFkZXYtPmNnX2ZsYWdzICYgQU1EX0NHX1NVUFBPUlRfVkNOX01HQ0cpCisJCQlkYXRhIHw9IDEgPDwgVVZEX0NHQ19DVFJMX19EWU5fQ0xPQ0tfTU9ERV9fU0hJRlQ7CisJCWVsc2UKKwkJCWRhdGEgfD0gMCA8PCBVVkRfQ0dDX0NUUkxfX0RZTl9DTE9DS19NT0RFX19TSElGVDsKKwkJZGF0YSB8PSAxIDw8IFVWRF9DR0NfQ1RSTF9fQ0xLX0dBVEVfRExZX1RJTUVSX19TSElGVDsKKwkJZGF0YSB8PSA0IDw8IFVWRF9DR0NfQ1RSTF9fQ0xLX09GRl9ERUxBWV9fU0hJRlQ7CisJCVdSRUczMl9TT0MxNShWQ04sIGksIG1tVVZEX0NHQ19DVFJMLCBkYXRhKTsKKworCQlkYXRhID0gUlJFRzMyX1NPQzE1KFZDTiwgaSwgbW1VVkRfQ0dDX0NUUkwpOworCQlkYXRhIHw9IChVVkRfQ0dDX0NUUkxfX1VERUNfUkVfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fVURFQ19DTV9NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19VREVDX0lUX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX1VERUNfREJfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fVURFQ19NUF9NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19TWVNfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fVURFQ19NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19NUEVHMl9NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19SRUdTX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX1JCQ19NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19MTUlfTUNfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fTE1JX1VNQ19NT0RFX01BU0sKKwkJCXwgVVZEX0NHQ19DVFJMX19JRENUX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX01QUkRfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fTVBDX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX0xCU0lfTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fTFJCQk1fTU9ERV9NQVNLCisJCQl8IFVWRF9DR0NfQ1RSTF9fV0NCX01PREVfTUFTSworCQkJfCBVVkRfQ0dDX0NUUkxfX1ZDUFVfTU9ERV9NQVNLKTsKKwkJV1JFRzMyX1NPQzE1KFZDTiwgaSwgbW1VVkRfQ0dDX0NUUkwsIGRhdGEpOworCisJCWRhdGEgPSBSUkVHMzJfU09DMTUoVkNOLCBpLCBtbVVWRF9TVVZEX0NHQ19DVFJMKTsKKwkJZGF0YSB8PSAoVVZEX1NVVkRfQ0dDX0NUUkxfX1NSRV9NT0RFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0NUUkxfX1NJVF9NT0RFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0NUUkxfX1NNUF9NT0RFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0NUUkxfX1NDTV9NT0RFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0NUUkxfX1NEQl9NT0RFX01BU0sKKwkJCXwgVVZEX1NVVkRfQ0dDX0NUUkxfX1NDTFJfTU9ERV9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19DVFJMX19VVkRfU0NfTU9ERV9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19DVFJMX19FTlRfTU9ERV9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19DVFJMX19JTUVfTU9ERV9NQVNLCisJCQl8IFVWRF9TVVZEX0NHQ19DVFJMX19TSVRFX01PREVfTUFTSyk7CisJCVdSRUczMl9TT0MxNShWQ04sIGksIG1tVVZEX1NVVkRfQ0dDX0NUUkwsIGRhdGEpOworCX0KK30KKworLyoqCisgKiBqcGVnX3YyXzVfc3RhcnQgLSBzdGFydCBKUEVHIGJsb2NrCisgKgorICogQGFkZXY6IGFtZGdwdV9kZXZpY2UgcG9pbnRlcgorICoKKyAqIFNldHVwIGFuZCBzdGFydCB0aGUgSlBFRyBibG9jaworICovCitzdGF0aWMgaW50IGpwZWdfdjJfNV9zdGFydChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7CisJdWludDMyX3QgdG1wOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fdmNuX2luc3Q7ICsraSkgeworCQlpZiAoYWRldi0+dmNuLmhhcnZlc3RfY29uZmlnICYgKDEgPDwgaSkpCisJCQljb250aW51ZTsKKwkJcmluZyA9ICZhZGV2LT52Y24uaW5zdFtpXS5yaW5nX2pwZWc7CisJCS8qIGRpc2FibGUgYW50aSBoYW5nIG1lY2hhbmlzbSAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfSlBFR19QT1dFUl9TVEFUVVMpLCAwLAorCQkJflVWRF9KUEVHX1BPV0VSX1NUQVRVU19fSlBFR19QT1dFUl9TVEFUVVNfTUFTSyk7CisKKwkJLyogSlBFRyBkaXNhYmxlIENHQyAqLworCQl0bXAgPSBSUkVHMzJfU09DMTUoVkNOLCBpLCBtbUpQRUdfQ0dDX0NUUkwpOworCQl0bXAgfD0gMSA8PCBKUEVHX0NHQ19DVFJMX19EWU5fQ0xPQ0tfTU9ERV9fU0hJRlQ7CisJCXRtcCB8PSAxIDw8IEpQRUdfQ0dDX0NUUkxfX0NMS19HQVRFX0RMWV9USU1FUl9fU0hJRlQ7CisJCXRtcCB8PSA0IDw8IEpQRUdfQ0dDX0NUUkxfX0NMS19PRkZfREVMQVlfX1NISUZUOworCQlXUkVHMzJfU09DMTUoVkNOLCBpLCBtbUpQRUdfQ0dDX0NUUkwsIHRtcCk7CisKKwkJdG1wID0gUlJFRzMyX1NPQzE1KFZDTiwgaSwgbW1KUEVHX0NHQ19HQVRFKTsKKwkJdG1wICY9IH4oSlBFR19DR0NfR0FURV9fSlBFR19ERUNfTUFTSworCQkJfCBKUEVHX0NHQ19HQVRFX19KUEVHMl9ERUNfTUFTSworCQkJfCBKUEVHX0NHQ19HQVRFX19KTUNJRl9NQVNLCisJCQl8IEpQRUdfQ0dDX0dBVEVfX0pSQkJNX01BU0spOworCQlXUkVHMzJfU09DMTUoVkNOLCBpLCBtbUpQRUdfQ0dDX0dBVEUsIHRtcCk7CisKKwkJdG1wID0gUlJFRzMyX1NPQzE1KFZDTiwgaSwgbW1KUEVHX0NHQ19DVFJMKTsKKwkJdG1wICY9IH4oSlBFR19DR0NfQ1RSTF9fSlBFR19ERUNfTU9ERV9NQVNLCisJCQl8IEpQRUdfQ0dDX0NUUkxfX0pQRUcyX0RFQ19NT0RFX01BU0sKKwkJCXwgSlBFR19DR0NfQ1RSTF9fSk1DSUZfTU9ERV9NQVNLCisJCQl8IEpQRUdfQ0dDX0NUUkxfX0pSQkJNX01PREVfTUFTSyk7CisJCVdSRUczMl9TT0MxNShWQ04sIGksIG1tSlBFR19DR0NfQ1RSTCwgdG1wKTsKKworCQkvKiBNSlBFRyBnbG9iYWwgdGlsaW5nIHJlZ2lzdGVycyAqLworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbUpQRUdfREVDX0dGWDhfQUREUl9DT05GSUcsCisJCQlhZGV2LT5nZnguY29uZmlnLmdiX2FkZHJfY29uZmlnKTsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1KUEVHX0RFQ19HRlgxMF9BRERSX0NPTkZJRywKKwkJCWFkZXYtPmdmeC5jb25maWcuZ2JfYWRkcl9jb25maWcpOworCisJCS8qIGVuYWJsZSBKTUkgY2hhbm5lbCAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfSk1JX0NOVEwpLCAwLAorCQkJflVWRF9KTUlfQ05UTF9fU09GVF9SRVNFVF9NQVNLKTsKKworCQkvKiBlbmFibGUgU3lzdGVtIEludGVycnVwdCBmb3IgSlJCQyAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFZDTiwgaSwgbW1KUEVHX1NZU19JTlRfRU4pLAorCQkJSlBFR19TWVNfSU5UX0VOX19ESlJCQ19NQVNLLAorCQkJfkpQRUdfU1lTX0lOVF9FTl9fREpSQkNfTUFTSyk7CisKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfTE1JX0pSQkNfUkJfVk1JRCwgMCk7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX0pSQkNfUkJfQ05UTCwgKDB4MDAwMDAwMDFMIHwgMHgwMDAwMDAwMkwpKTsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfTE1JX0pSQkNfUkJfNjRCSVRfQkFSX0xPVywKKwkJCWxvd2VyXzMyX2JpdHMocmluZy0+Z3B1X2FkZHIpKTsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfTE1JX0pSQkNfUkJfNjRCSVRfQkFSX0hJR0gsCisJCQl1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX0pSQkNfUkJfUlBUUiwgMCk7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX0pSQkNfUkJfV1BUUiwgMCk7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX0pSQkNfUkJfQ05UTCwgMHgwMDAwMDAwMkwpOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9KUkJDX1JCX1NJWkUsIHJpbmctPnJpbmdfc2l6ZSAvIDQpOworCQlyaW5nLT53cHRyID0gUlJFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfSlJCQ19SQl9XUFRSKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBqcGVnX3YyXzVfc3RvcCAtIHN0b3AgSlBFRyBibG9jaworICoKKyAqIEBhZGV2OiBhbWRncHVfZGV2aWNlIHBvaW50ZXIKKyAqCisgKiBzdG9wIHRoZSBKUEVHIGJsb2NrCisgKi8KK3N0YXRpYyBpbnQganBlZ192Ml81X3N0b3Aoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJdWludDMyX3QgdG1wOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fdmNuX2luc3Q7ICsraSkgeworCQlpZiAoYWRldi0+dmNuLmhhcnZlc3RfY29uZmlnICYgKDEgPDwgaSkpCisJCQljb250aW51ZTsKKwkJLyogcmVzZXQgSk1JICovCisJCVdSRUczMl9QKFNPQzE1X1JFR19PRkZTRVQoVVZELCBpLCBtbVVWRF9KTUlfQ05UTCksCisJCQlVVkRfSk1JX0NOVExfX1NPRlRfUkVTRVRfTUFTSywKKwkJCX5VVkRfSk1JX0NOVExfX1NPRlRfUkVTRVRfTUFTSyk7CisKKwkJdG1wID0gUlJFRzMyX1NPQzE1KFZDTiwgaSwgbW1KUEVHX0NHQ19HQVRFKTsKKwkJdG1wIHw9IChKUEVHX0NHQ19HQVRFX19KUEVHX0RFQ19NQVNLCisJCQl8SlBFR19DR0NfR0FURV9fSlBFRzJfREVDX01BU0sKKwkJCXxKUEVHX0NHQ19HQVRFX19KTUNJRl9NQVNLCisJCQl8SlBFR19DR0NfR0FURV9fSlJCQk1fTUFTSyk7CisJCVdSRUczMl9TT0MxNShWQ04sIGksIG1tSlBFR19DR0NfR0FURSwgdG1wKTsKKworCQkvKiBlbmFibGUgYW50aSBoYW5nIG1lY2hhbmlzbSAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfSlBFR19QT1dFUl9TVEFUVVMpLAorCQkJVVZEX0pQRUdfUE9XRVJfU1RBVFVTX19KUEVHX1BPV0VSX1NUQVRVU19NQVNLLAorCQkJflVWRF9KUEVHX1BPV0VSX1NUQVRVU19fSlBFR19QT1dFUl9TVEFUVVNfTUFTSyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdmNuX3YyXzVfc3RhcnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOworCXVpbnQzMl90IHJiX2J1ZnN6LCB0bXA7CisJaW50IGksIGosIGssIHI7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytpKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCQkvKiBkaXNhYmxlIHJlZ2lzdGVyIGFudGktaGFuZyBtZWNoYW5pc20gKi8KKwkJV1JFRzMyX1AoU09DMTVfUkVHX09GRlNFVChVVkQsIGksIG1tVVZEX1BPV0VSX1NUQVRVUyksIDAsCisJCQl+VVZEX1BPV0VSX1NUQVRVU19fVVZEX1BPV0VSX1NUQVRVU19NQVNLKTsKKworCQkvKiBzZXQgdXZkIHN0YXR1cyBidXN5ICovCisJCXRtcCA9IFJSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1NUQVRVUykgfCBVVkRfU1RBVFVTX19VVkRfQlVTWTsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfU1RBVFVTLCB0bXApOworCX0KKworCS8qU1cgY2xvY2sgZ2F0aW5nICovCisJdmNuX3YyXzVfZGlzYWJsZV9jbG9ja19nYXRpbmcoYWRldik7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytpKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCQkvKiBlbmFibGUgVkNQVSBjbG9jayAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfVkNQVV9DTlRMKSwKKwkJCVVWRF9WQ1BVX0NOVExfX0NMS19FTl9NQVNLLCB+VVZEX1ZDUFVfQ05UTF9fQ0xLX0VOX01BU0spOworCisJCS8qIGRpc2FibGUgbWFzdGVyIGludGVycnVwdCAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfTUFTVElOVF9FTiksIDAsCisJCQl+VVZEX01BU1RJTlRfRU5fX1ZDUFVfRU5fTUFTSyk7CisKKwkJLyogc2V0dXAgbW1VVkRfTE1JX0NUUkwgKi8KKwkJdG1wID0gUlJFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfTE1JX0NUUkwpOworCQl0bXAgJj0gfjB4ZmY7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX0xNSV9DVFJMLCB0bXAgfCAweDh8CisJCQlVVkRfTE1JX0NUUkxfX1dSSVRFX0NMRUFOX1RJTUVSX0VOX01BU0sJfAorCQkJVVZEX0xNSV9DVFJMX19NQVNLX01DX1VSR0VOVF9NQVNLIHwKKwkJCVVWRF9MTUlfQ1RSTF9fREFUQV9DT0hFUkVOQ1lfRU5fTUFTSyB8CisJCQlVVkRfTE1JX0NUUkxfX1ZDUFVfREFUQV9DT0hFUkVOQ1lfRU5fTUFTSyk7CisKKwkJLyogc2V0dXAgbW1VVkRfTVBDX0NOVEwgKi8KKwkJdG1wID0gUlJFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfTVBDX0NOVEwpOworCQl0bXAgJj0gflVWRF9NUENfQ05UTF9fUkVQTEFDRU1FTlRfTU9ERV9NQVNLOworCQl0bXAgfD0gMHgyIDw8IFVWRF9NUENfQ05UTF9fUkVQTEFDRU1FTlRfTU9ERV9fU0hJRlQ7CisJCVdSRUczMl9TT0MxNShWQ04sIGksIG1tVVZEX01QQ19DTlRMLCB0bXApOworCisJCS8qIHNldHVwIFVWRF9NUENfU0VUX01VWEEwICovCisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX01QQ19TRVRfTVVYQTAsCisJCQkoKDB4MSA8PCBVVkRfTVBDX1NFVF9NVVhBMF9fVkFSQV8xX19TSElGVCkgfAorCQkJKDB4MiA8PCBVVkRfTVBDX1NFVF9NVVhBMF9fVkFSQV8yX19TSElGVCkgfAorCQkJKDB4MyA8PCBVVkRfTVBDX1NFVF9NVVhBMF9fVkFSQV8zX19TSElGVCkgfAorCQkJKDB4NCA8PCBVVkRfTVBDX1NFVF9NVVhBMF9fVkFSQV80X19TSElGVCkpKTsKKworCQkvKiBzZXR1cCBVVkRfTVBDX1NFVF9NVVhCMCAqLworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9NUENfU0VUX01VWEIwLAorCQkJKCgweDEgPDwgVVZEX01QQ19TRVRfTVVYQjBfX1ZBUkJfMV9fU0hJRlQpIHwKKwkJCSgweDIgPDwgVVZEX01QQ19TRVRfTVVYQjBfX1ZBUkJfMl9fU0hJRlQpIHwKKwkJCSgweDMgPDwgVVZEX01QQ19TRVRfTVVYQjBfX1ZBUkJfM19fU0hJRlQpIHwKKwkJCSgweDQgPDwgVVZEX01QQ19TRVRfTVVYQjBfX1ZBUkJfNF9fU0hJRlQpKSk7CisKKwkJLyogc2V0dXAgbW1VVkRfTVBDX1NFVF9NVVggKi8KKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfTVBDX1NFVF9NVVgsCisJCQkoKDB4MCA8PCBVVkRfTVBDX1NFVF9NVVhfX1NFVF8wX19TSElGVCkgfAorCQkJKDB4MSA8PCBVVkRfTVBDX1NFVF9NVVhfX1NFVF8xX19TSElGVCkgfAorCQkJKDB4MiA8PCBVVkRfTVBDX1NFVF9NVVhfX1NFVF8yX19TSElGVCkpKTsKKwl9CisKKwl2Y25fdjJfNV9tY19yZXN1bWUoYWRldik7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytpKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCQkvKiBWQ04gZ2xvYmFsIHRpbGluZyByZWdpc3RlcnMgKi8KKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfR0ZYOF9BRERSX0NPTkZJRywKKwkJCWFkZXYtPmdmeC5jb25maWcuZ2JfYWRkcl9jb25maWcpOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9HRlg4X0FERFJfQ09ORklHLAorCQkJYWRldi0+Z2Z4LmNvbmZpZy5nYl9hZGRyX2NvbmZpZyk7CisKKwkJLyogZW5hYmxlIExNSSBNQyBhbmQgVU1DIGNoYW5uZWxzICovCisJCVdSRUczMl9QKFNPQzE1X1JFR19PRkZTRVQoVVZELCBpLCBtbVVWRF9MTUlfQ1RSTDIpLCAwLAorCQkJflVWRF9MTUlfQ1RSTDJfX1NUQUxMX0FSQl9VTUNfTUFTSyk7CisKKwkJLyogdW5ibG9jayBWQ1BVIHJlZ2lzdGVyIGFjY2VzcyAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfUkJfQVJCX0NUUkwpLCAwLAorCQkJflVWRF9SQl9BUkJfQ1RSTF9fVkNQVV9ESVNfTUFTSyk7CisKKwkJV1JFRzMyX1AoU09DMTVfUkVHX09GRlNFVChVVkQsIGksIG1tVVZEX1ZDUFVfQ05UTCksIDAsCisJCQl+VVZEX1ZDUFVfQ05UTF9fQkxLX1JTVF9NQVNLKTsKKworCQlmb3IgKGsgPSAwOyBrIDwgMTA7ICsraykgeworCQkJdWludDMyX3Qgc3RhdHVzOworCisJCQlmb3IgKGogPSAwOyBqIDwgMTAwOyArK2opIHsKKwkJCQlzdGF0dXMgPSBSUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9TVEFUVVMpOworCQkJCWlmIChzdGF0dXMgJiAyKQorCQkJCQlicmVhazsKKwkJCQlpZiAoYW1kZ3B1X2VtdV9tb2RlID09IDEpCisJCQkJCW1zbGVlcCg1MDApOworCQkJCWVsc2UKKwkJCQkJbWRlbGF5KDEwKTsKKwkJCX0KKwkJCXIgPSAwOworCQkJaWYgKHN0YXR1cyAmIDIpCisJCQkJYnJlYWs7CisKKwkJCURSTV9FUlJPUigiVkNOIGRlY29kZSBub3QgcmVzcG9uZGluZywgdHJ5aW5nIHRvIHJlc2V0IHRoZSBWQ1BVISEhXG4iKTsKKwkJCVdSRUczMl9QKFNPQzE1X1JFR19PRkZTRVQoVVZELCBpLCBtbVVWRF9WQ1BVX0NOVEwpLAorCQkJCVVWRF9WQ1BVX0NOVExfX0JMS19SU1RfTUFTSywKKwkJCQl+VVZEX1ZDUFVfQ05UTF9fQkxLX1JTVF9NQVNLKTsKKwkJCW1kZWxheSgxMCk7CisJCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfVkNQVV9DTlRMKSwgMCwKKwkJCQl+VVZEX1ZDUFVfQ05UTF9fQkxLX1JTVF9NQVNLKTsKKworCQkJbWRlbGF5KDEwKTsKKwkJCXIgPSAtMTsKKwkJfQorCisJCWlmIChyKSB7CisJCQlEUk1fRVJST1IoIlZDTiBkZWNvZGUgbm90IHJlc3BvbmRpbmcsIGdpdmluZyB1cCEhIVxuIik7CisJCQlyZXR1cm4gcjsKKwkJfQorCisJCS8qIGVuYWJsZSBtYXN0ZXIgaW50ZXJydXB0ICovCisJCVdSRUczMl9QKFNPQzE1X1JFR19PRkZTRVQoVVZELCBpLCBtbVVWRF9NQVNUSU5UX0VOKSwKKwkJCVVWRF9NQVNUSU5UX0VOX19WQ1BVX0VOX01BU0ssCisJCQl+VVZEX01BU1RJTlRfRU5fX1ZDUFVfRU5fTUFTSyk7CisKKwkJLyogY2xlYXIgdGhlIGJ1c3kgYml0IG9mIFZDTl9TVEFUVVMgKi8KKwkJV1JFRzMyX1AoU09DMTVfUkVHX09GRlNFVChVVkQsIGksIG1tVVZEX1NUQVRVUyksIDAsCisJCQl+KDIgPDwgVVZEX1NUQVRVU19fVkNQVV9SRVBPUlRfX1NISUZUKSk7CisKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfTE1JX1JCQ19SQl9WTUlELCAwKTsKKworCQlyaW5nID0gJmFkZXYtPnZjbi5pbnN0W2ldLnJpbmdfZGVjOworCQkvKiBmb3JjZSBSQkMgaW50byBpZGxlIHN0YXRlICovCisJCXJiX2J1ZnN6ID0gb3JkZXJfYmFzZV8yKHJpbmctPnJpbmdfc2l6ZSk7CisJCXRtcCA9IFJFR19TRVRfRklFTEQoMCwgVVZEX1JCQ19SQl9DTlRMLCBSQl9CVUZTWiwgcmJfYnVmc3opOworCQl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVVZEX1JCQ19SQl9DTlRMLCBSQl9CTEtTWiwgMSk7CisJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBVVkRfUkJDX1JCX0NOVEwsIFJCX05PX0ZFVENILCAxKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFVWRF9SQkNfUkJfQ05UTCwgUkJfTk9fVVBEQVRFLCAxKTsKKwkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFVWRF9SQkNfUkJfQ05UTCwgUkJfUlBUUl9XUl9FTiwgMSk7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1JCQ19SQl9DTlRMLCB0bXApOworCisJCS8qIHByb2dyYW1tIHRoZSBSQl9CQVNFIGZvciByaW5nIGJ1ZmZlciAqLworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9MTUlfUkJDX1JCXzY0QklUX0JBUl9MT1csCisJCQlsb3dlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX0xNSV9SQkNfUkJfNjRCSVRfQkFSX0hJR0gsCisJCQl1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7CisKKwkJLyogSW5pdGlhbGl6ZSB0aGUgcmluZyBidWZmZXIncyByZWFkIGFuZCB3cml0ZSBwb2ludGVycyAqLworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9SQkNfUkJfUlBUUiwgMCk7CisKKwkJcmluZy0+d3B0ciA9IFJSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1JCQ19SQl9SUFRSKTsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfUkJDX1JCX1dQVFIsCisJCQkJbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJCXJpbmcgPSAmYWRldi0+dmNuLmluc3RbaV0ucmluZ19lbmNbMF07CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1JCX1JQVFIsIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9SQl9XUFRSLCBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfUkJfQkFTRV9MTywgcmluZy0+Z3B1X2FkZHIpOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9SQl9CQVNFX0hJLCB1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1JCX1NJWkUsIHJpbmctPnJpbmdfc2l6ZSAvIDQpOworCisJCXJpbmcgPSAmYWRldi0+dmNuLmluc3RbaV0ucmluZ19lbmNbMV07CisJCVdSRUczMl9TT0MxNShVVkQsIGksIG1tVVZEX1JCX1JQVFIyLCBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgaSwgbW1VVkRfUkJfV1BUUjIsIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9SQl9CQVNFX0xPMiwgcmluZy0+Z3B1X2FkZHIpOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9SQl9CQVNFX0hJMiwgdXBwZXJfMzJfYml0cyhyaW5nLT5ncHVfYWRkcikpOworCQlXUkVHMzJfU09DMTUoVVZELCBpLCBtbVVWRF9SQl9TSVpFMiwgcmluZy0+cmluZ19zaXplIC8gNCk7CisJfQorCXIgPSBqcGVnX3YyXzVfc3RhcnQoYWRldik7CisKKwlyZXR1cm4gcjsKK30KKworc3RhdGljIGludCB2Y25fdjJfNV9zdG9wKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCXVpbnQzMl90IHRtcDsKKwlpbnQgaSwgcjsKKworCXIgPSBqcGVnX3YyXzVfc3RvcChhZGV2KTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytpKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCQkvKiB3YWl0IGZvciB2Y24gaWRsZSAqLworCQlTT0MxNV9XQUlUX09OX1JSRUcoVkNOLCBpLCBtbVVWRF9TVEFUVVMsIFVWRF9TVEFUVVNfX0lETEUsIDB4Nywgcik7CisJCWlmIChyKQorCQkJcmV0dXJuIHI7CisKKwkJdG1wID0gVVZEX0xNSV9TVEFUVVNfX1ZDUFVfTE1JX1dSSVRFX0NMRUFOX01BU0sgfAorCQkJVVZEX0xNSV9TVEFUVVNfX1JFQURfQ0xFQU5fTUFTSyB8CisJCQlVVkRfTE1JX1NUQVRVU19fV1JJVEVfQ0xFQU5fTUFTSyB8CisJCQlVVkRfTE1JX1NUQVRVU19fV1JJVEVfQ0xFQU5fUkFXX01BU0s7CisJCVNPQzE1X1dBSVRfT05fUlJFRyhWQ04sIGksIG1tVVZEX0xNSV9TVEFUVVMsIHRtcCwgdG1wLCByKTsKKwkJaWYgKHIpCisJCQlyZXR1cm4gcjsKKworCQkvKiBibG9jayBMTUkgVU1DIGNoYW5uZWwgKi8KKwkJdG1wID0gUlJFRzMyX1NPQzE1KFZDTiwgaSwgbW1VVkRfTE1JX0NUUkwyKTsKKwkJdG1wIHw9IFVWRF9MTUlfQ1RSTDJfX1NUQUxMX0FSQl9VTUNfTUFTSzsKKwkJV1JFRzMyX1NPQzE1KFZDTiwgaSwgbW1VVkRfTE1JX0NUUkwyLCB0bXApOworCisJCXRtcCA9IFVWRF9MTUlfU1RBVFVTX19VTUNfUkVBRF9DTEVBTl9SQVdfTUFTS3wKKwkJCVVWRF9MTUlfU1RBVFVTX19VTUNfV1JJVEVfQ0xFQU5fUkFXX01BU0s7CisJCVNPQzE1X1dBSVRfT05fUlJFRyhWQ04sIGksIG1tVVZEX0xNSV9TVEFUVVMsIHRtcCwgdG1wLCByKTsKKwkJaWYgKHIpCisJCQlyZXR1cm4gcjsKKworCQkvKiBibG9jayBWQ1BVIHJlZ2lzdGVyIGFjY2VzcyAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfUkJfQVJCX0NUUkwpLAorCQkJVVZEX1JCX0FSQl9DVFJMX19WQ1BVX0RJU19NQVNLLAorCQkJflVWRF9SQl9BUkJfQ1RSTF9fVkNQVV9ESVNfTUFTSyk7CisKKwkJLyogcmVzZXQgVkNQVSAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfVkNQVV9DTlRMKSwKKwkJCVVWRF9WQ1BVX0NOVExfX0JMS19SU1RfTUFTSywKKwkJCX5VVkRfVkNQVV9DTlRMX19CTEtfUlNUX01BU0spOworCisJCS8qIGRpc2FibGUgVkNQVSBjbG9jayAqLworCQlXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgaSwgbW1VVkRfVkNQVV9DTlRMKSwgMCwKKwkJCX4oVVZEX1ZDUFVfQ05UTF9fQ0xLX0VOX01BU0spKTsKKworCQkvKiBjbGVhciBzdGF0dXMgKi8KKwkJV1JFRzMyX1NPQzE1KFZDTiwgaSwgbW1VVkRfU1RBVFVTLCAwKTsKKworCQl2Y25fdjJfNV9lbmFibGVfY2xvY2tfZ2F0aW5nKGFkZXYpOworCisJCS8qIGVuYWJsZSByZWdpc3RlciBhbnRpLWhhbmcgbWVjaGFuaXNtICovCisJCVdSRUczMl9QKFNPQzE1X1JFR19PRkZTRVQoVVZELCBpLCBtbVVWRF9QT1dFUl9TVEFUVVMpLAorCQkJVVZEX1BPV0VSX1NUQVRVU19fVVZEX1BPV0VSX1NUQVRVU19NQVNLLAorCQkJflVWRF9QT1dFUl9TVEFUVVNfX1VWRF9QT1dFUl9TVEFUVVNfTUFTSyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogdmNuX3YyXzVfZGVjX3JpbmdfZ2V0X3JwdHIgLSBnZXQgcmVhZCBwb2ludGVyCisgKgorICogQHJpbmc6IGFtZGdwdV9yaW5nIHBvaW50ZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGhhcmR3YXJlIHJlYWQgcG9pbnRlcgorICovCitzdGF0aWMgdWludDY0X3QgdmNuX3YyXzVfZGVjX3JpbmdfZ2V0X3JwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKKworCXJldHVybiBSUkVHMzJfU09DMTUoVVZELCByaW5nLT5tZSwgbW1VVkRfUkJDX1JCX1JQVFIpOworfQorCisvKioKKyAqIHZjbl92Ml81X2RlY19yaW5nX2dldF93cHRyIC0gZ2V0IHdyaXRlIHBvaW50ZXIKKyAqCisgKiBAcmluZzogYW1kZ3B1X3JpbmcgcG9pbnRlcgorICoKKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgaGFyZHdhcmUgd3JpdGUgcG9pbnRlcgorICovCitzdGF0aWMgdWludDY0X3QgdmNuX3YyXzVfZGVjX3JpbmdfZ2V0X3dwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKKworCWlmIChyaW5nLT51c2VfZG9vcmJlbGwpCisJCXJldHVybiBhZGV2LT53Yi53YltyaW5nLT53cHRyX29mZnNdOworCWVsc2UKKwkJcmV0dXJuIFJSRUczMl9TT0MxNShVVkQsIHJpbmctPm1lLCBtbVVWRF9SQkNfUkJfV1BUUik7Cit9CisKKy8qKgorICogdmNuX3YyXzVfZGVjX3Jpbmdfc2V0X3dwdHIgLSBzZXQgd3JpdGUgcG9pbnRlcgorICoKKyAqIEByaW5nOiBhbWRncHVfcmluZyBwb2ludGVyCisgKgorICogQ29tbWl0cyB0aGUgd3JpdGUgcG9pbnRlciB0byB0aGUgaGFyZHdhcmUKKyAqLworc3RhdGljIHZvaWQgdmNuX3YyXzVfZGVjX3Jpbmdfc2V0X3dwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKKworCWlmIChyaW5nLT51c2VfZG9vcmJlbGwpIHsKKwkJYWRldi0+d2Iud2JbcmluZy0+d3B0cl9vZmZzXSA9IGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cik7CisJCVdET09SQkVMTDMyKHJpbmctPmRvb3JiZWxsX2luZGV4LCBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKKwl9IGVsc2UgeworCQlXUkVHMzJfU09DMTUoVVZELCByaW5nLT5tZSwgbW1VVkRfUkJDX1JCX1dQVFIsIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOworCX0KK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB2Y25fdjJfNV9kZWNfcmluZ192bV9mdW5jcyA9IHsKKwkudHlwZSA9IEFNREdQVV9SSU5HX1RZUEVfVkNOX0RFQywKKwkuYWxpZ25fbWFzayA9IDB4ZiwKKwkudm1odWIgPSBBTURHUFVfTU1IVUJfMSwKKwkuZ2V0X3JwdHIgPSB2Y25fdjJfNV9kZWNfcmluZ19nZXRfcnB0ciwKKwkuZ2V0X3dwdHIgPSB2Y25fdjJfNV9kZWNfcmluZ19nZXRfd3B0ciwKKwkuc2V0X3dwdHIgPSB2Y25fdjJfNV9kZWNfcmluZ19zZXRfd3B0ciwKKwkuZW1pdF9mcmFtZV9zaXplID0KKwkJU09DMTVfRkxVU0hfR1BVX1RMQl9OVU1fV1JFRyAqIDYgKworCQlTT0MxNV9GTFVTSF9HUFVfVExCX05VTV9SRUdfV0FJVCAqIDggKworCQk4ICsgLyogdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF92bV9mbHVzaCAqLworCQkxNCArIDE0ICsgLyogdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF9mZW5jZSB4MiB2bSBmZW5jZSAqLworCQk2LAorCS5lbWl0X2liX3NpemUgPSA4LCAvKiB2Y25fdjJfMF9kZWNfcmluZ19lbWl0X2liICovCisJLmVtaXRfaWIgPSB2Y25fdjJfMF9kZWNfcmluZ19lbWl0X2liLAorCS5lbWl0X2ZlbmNlID0gdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF9mZW5jZSwKKwkuZW1pdF92bV9mbHVzaCA9IHZjbl92Ml8wX2RlY19yaW5nX2VtaXRfdm1fZmx1c2gsCisJLnRlc3RfcmluZyA9IGFtZGdwdV92Y25fZGVjX3JpbmdfdGVzdF9yaW5nLAorCS50ZXN0X2liID0gYW1kZ3B1X3Zjbl9kZWNfcmluZ190ZXN0X2liLAorCS5pbnNlcnRfbm9wID0gdmNuX3YyXzBfZGVjX3JpbmdfaW5zZXJ0X25vcCwKKwkuaW5zZXJ0X3N0YXJ0ID0gdmNuX3YyXzBfZGVjX3JpbmdfaW5zZXJ0X3N0YXJ0LAorCS5pbnNlcnRfZW5kID0gdmNuX3YyXzBfZGVjX3JpbmdfaW5zZXJ0X2VuZCwKKwkucGFkX2liID0gYW1kZ3B1X3JpbmdfZ2VuZXJpY19wYWRfaWIsCisJLmJlZ2luX3VzZSA9IGFtZGdwdV92Y25fcmluZ19iZWdpbl91c2UsCisJLmVuZF91c2UgPSBhbWRncHVfdmNuX3JpbmdfZW5kX3VzZSwKKwkuZW1pdF93cmVnID0gdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF93cmVnLAorCS5lbWl0X3JlZ193YWl0ID0gdmNuX3YyXzBfZGVjX3JpbmdfZW1pdF9yZWdfd2FpdCwKKwkuZW1pdF9yZWdfd3JpdGVfcmVnX3dhaXQgPSBhbWRncHVfcmluZ19lbWl0X3JlZ193cml0ZV9yZWdfd2FpdF9oZWxwZXIsCit9OworCisvKioKKyAqIHZjbl92Ml81X2VuY19yaW5nX2dldF9ycHRyIC0gZ2V0IGVuYyByZWFkIHBvaW50ZXIKKyAqCisgKiBAcmluZzogYW1kZ3B1X3JpbmcgcG9pbnRlcgorICoKKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgaGFyZHdhcmUgZW5jIHJlYWQgcG9pbnRlcgorICovCitzdGF0aWMgdWludDY0X3QgdmNuX3YyXzVfZW5jX3JpbmdfZ2V0X3JwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKKworCWlmIChyaW5nID09ICZhZGV2LT52Y24uaW5zdFtyaW5nLT5tZV0ucmluZ19lbmNbMF0pCisJCXJldHVybiBSUkVHMzJfU09DMTUoVVZELCByaW5nLT5tZSwgbW1VVkRfUkJfUlBUUik7CisJZWxzZQorCQlyZXR1cm4gUlJFRzMyX1NPQzE1KFVWRCwgcmluZy0+bWUsIG1tVVZEX1JCX1JQVFIyKTsKK30KKworLyoqCisgKiB2Y25fdjJfNV9lbmNfcmluZ19nZXRfd3B0ciAtIGdldCBlbmMgd3JpdGUgcG9pbnRlcgorICoKKyAqIEByaW5nOiBhbWRncHVfcmluZyBwb2ludGVyCisgKgorICogUmV0dXJucyB0aGUgY3VycmVudCBoYXJkd2FyZSBlbmMgd3JpdGUgcG9pbnRlcgorICovCitzdGF0aWMgdWludDY0X3QgdmNuX3YyXzVfZW5jX3JpbmdfZ2V0X3dwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKKworCWlmIChyaW5nID09ICZhZGV2LT52Y24uaW5zdFtyaW5nLT5tZV0ucmluZ19lbmNbMF0pIHsKKwkJaWYgKHJpbmctPnVzZV9kb29yYmVsbCkKKwkJCXJldHVybiBhZGV2LT53Yi53YltyaW5nLT53cHRyX29mZnNdOworCQllbHNlCisJCQlyZXR1cm4gUlJFRzMyX1NPQzE1KFVWRCwgcmluZy0+bWUsIG1tVVZEX1JCX1dQVFIpOworCX0gZWxzZSB7CisJCWlmIChyaW5nLT51c2VfZG9vcmJlbGwpCisJCQlyZXR1cm4gYWRldi0+d2Iud2JbcmluZy0+d3B0cl9vZmZzXTsKKwkJZWxzZQorCQkJcmV0dXJuIFJSRUczMl9TT0MxNShVVkQsIHJpbmctPm1lLCBtbVVWRF9SQl9XUFRSMik7CisJfQorfQorCisvKioKKyAqIHZjbl92Ml81X2VuY19yaW5nX3NldF93cHRyIC0gc2V0IGVuYyB3cml0ZSBwb2ludGVyCisgKgorICogQHJpbmc6IGFtZGdwdV9yaW5nIHBvaW50ZXIKKyAqCisgKiBDb21taXRzIHRoZSBlbmMgd3JpdGUgcG9pbnRlciB0byB0aGUgaGFyZHdhcmUKKyAqLworc3RhdGljIHZvaWQgdmNuX3YyXzVfZW5jX3Jpbmdfc2V0X3dwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKKworCWlmIChyaW5nID09ICZhZGV2LT52Y24uaW5zdFtyaW5nLT5tZV0ucmluZ19lbmNbMF0pIHsKKwkJaWYgKHJpbmctPnVzZV9kb29yYmVsbCkgeworCQkJYWRldi0+d2Iud2JbcmluZy0+d3B0cl9vZmZzXSA9IGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cik7CisJCQlXRE9PUkJFTEwzMihyaW5nLT5kb29yYmVsbF9pbmRleCwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJCX0gZWxzZSB7CisJCQlXUkVHMzJfU09DMTUoVVZELCByaW5nLT5tZSwgbW1VVkRfUkJfV1BUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJCX0KKwl9IGVsc2UgeworCQlpZiAocmluZy0+dXNlX2Rvb3JiZWxsKSB7CisJCQlhZGV2LT53Yi53YltyaW5nLT53cHRyX29mZnNdID0gbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKTsKKwkJCVdET09SQkVMTDMyKHJpbmctPmRvb3JiZWxsX2luZGV4LCBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKKwkJfSBlbHNlIHsKKwkJCVdSRUczMl9TT0MxNShVVkQsIHJpbmctPm1lLCBtbVVWRF9SQl9XUFRSMiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MgdmNuX3YyXzVfZW5jX3Jpbmdfdm1fZnVuY3MgPSB7CisJLnR5cGUgPSBBTURHUFVfUklOR19UWVBFX1ZDTl9FTkMsCisJLmFsaWduX21hc2sgPSAweDNmLAorCS5ub3AgPSBWQ05fRU5DX0NNRF9OT19PUCwKKwkudm1odWIgPSBBTURHUFVfTU1IVUJfMSwKKwkuZ2V0X3JwdHIgPSB2Y25fdjJfNV9lbmNfcmluZ19nZXRfcnB0ciwKKwkuZ2V0X3dwdHIgPSB2Y25fdjJfNV9lbmNfcmluZ19nZXRfd3B0ciwKKwkuc2V0X3dwdHIgPSB2Y25fdjJfNV9lbmNfcmluZ19zZXRfd3B0ciwKKwkuZW1pdF9mcmFtZV9zaXplID0KKwkJU09DMTVfRkxVU0hfR1BVX1RMQl9OVU1fV1JFRyAqIDMgKworCQlTT0MxNV9GTFVTSF9HUFVfVExCX05VTV9SRUdfV0FJVCAqIDQgKworCQk0ICsgLyogdmNuX3YyXzBfZW5jX3JpbmdfZW1pdF92bV9mbHVzaCAqLworCQk1ICsgNSArIC8qIHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfZmVuY2UgeDIgdm0gZmVuY2UgKi8KKwkJMSwgLyogdmNuX3YyXzBfZW5jX3JpbmdfaW5zZXJ0X2VuZCAqLworCS5lbWl0X2liX3NpemUgPSA1LCAvKiB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X2liICovCisJLmVtaXRfaWIgPSB2Y25fdjJfMF9lbmNfcmluZ19lbWl0X2liLAorCS5lbWl0X2ZlbmNlID0gdmNuX3YyXzBfZW5jX3JpbmdfZW1pdF9mZW5jZSwKKwkuZW1pdF92bV9mbHVzaCA9IHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfdm1fZmx1c2gsCisJLnRlc3RfcmluZyA9IGFtZGdwdV92Y25fZW5jX3JpbmdfdGVzdF9yaW5nLAorCS50ZXN0X2liID0gYW1kZ3B1X3Zjbl9lbmNfcmluZ190ZXN0X2liLAorCS5pbnNlcnRfbm9wID0gYW1kZ3B1X3JpbmdfaW5zZXJ0X25vcCwKKwkuaW5zZXJ0X2VuZCA9IHZjbl92Ml8wX2VuY19yaW5nX2luc2VydF9lbmQsCisJLnBhZF9pYiA9IGFtZGdwdV9yaW5nX2dlbmVyaWNfcGFkX2liLAorCS5iZWdpbl91c2UgPSBhbWRncHVfdmNuX3JpbmdfYmVnaW5fdXNlLAorCS5lbmRfdXNlID0gYW1kZ3B1X3Zjbl9yaW5nX2VuZF91c2UsCisJLmVtaXRfd3JlZyA9IHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfd3JlZywKKwkuZW1pdF9yZWdfd2FpdCA9IHZjbl92Ml8wX2VuY19yaW5nX2VtaXRfcmVnX3dhaXQsCisJLmVtaXRfcmVnX3dyaXRlX3JlZ193YWl0ID0gYW1kZ3B1X3JpbmdfZW1pdF9yZWdfd3JpdGVfcmVnX3dhaXRfaGVscGVyLAorfTsKKworLyoqCisgKiB2Y25fdjJfNV9qcGVnX3JpbmdfZ2V0X3JwdHIgLSBnZXQgcmVhZCBwb2ludGVyCisgKgorICogQHJpbmc6IGFtZGdwdV9yaW5nIHBvaW50ZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGhhcmR3YXJlIHJlYWQgcG9pbnRlcgorICovCitzdGF0aWMgdWludDY0X3QgdmNuX3YyXzVfanBlZ19yaW5nX2dldF9ycHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CisKKwlyZXR1cm4gUlJFRzMyX1NPQzE1KFVWRCwgcmluZy0+bWUsIG1tVVZEX0pSQkNfUkJfUlBUUik7Cit9CisKKy8qKgorICogdmNuX3YyXzVfanBlZ19yaW5nX2dldF93cHRyIC0gZ2V0IHdyaXRlIHBvaW50ZXIKKyAqCisgKiBAcmluZzogYW1kZ3B1X3JpbmcgcG9pbnRlcgorICoKKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgaGFyZHdhcmUgd3JpdGUgcG9pbnRlcgorICovCitzdGF0aWMgdWludDY0X3QgdmNuX3YyXzVfanBlZ19yaW5nX2dldF93cHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CisKKwlpZiAocmluZy0+dXNlX2Rvb3JiZWxsKQorCQlyZXR1cm4gYWRldi0+d2Iud2JbcmluZy0+d3B0cl9vZmZzXTsKKwllbHNlCisJCXJldHVybiBSUkVHMzJfU09DMTUoVVZELCByaW5nLT5tZSwgbW1VVkRfSlJCQ19SQl9XUFRSKTsKK30KKworLyoqCisgKiB2Y25fdjJfNV9qcGVnX3Jpbmdfc2V0X3dwdHIgLSBzZXQgd3JpdGUgcG9pbnRlcgorICoKKyAqIEByaW5nOiBhbWRncHVfcmluZyBwb2ludGVyCisgKgorICogQ29tbWl0cyB0aGUgd3JpdGUgcG9pbnRlciB0byB0aGUgaGFyZHdhcmUKKyAqLworc3RhdGljIHZvaWQgdmNuX3YyXzVfanBlZ19yaW5nX3NldF93cHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CisKKwlpZiAocmluZy0+dXNlX2Rvb3JiZWxsKSB7CisJCWFkZXYtPndiLndiW3JpbmctPndwdHJfb2Zmc10gPSBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpOworCQlXRE9PUkJFTEwzMihyaW5nLT5kb29yYmVsbF9pbmRleCwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJfSBlbHNlIHsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgcmluZy0+bWUsIG1tVVZEX0pSQkNfUkJfV1BUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJfQorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHZjbl92Ml81X2pwZWdfcmluZ192bV9mdW5jcyA9IHsKKwkudHlwZSA9IEFNREdQVV9SSU5HX1RZUEVfVkNOX0pQRUcsCisJLmFsaWduX21hc2sgPSAweGYsCisJLnZtaHViID0gQU1ER1BVX01NSFVCXzEsCisJLmdldF9ycHRyID0gdmNuX3YyXzVfanBlZ19yaW5nX2dldF9ycHRyLAorCS5nZXRfd3B0ciA9IHZjbl92Ml81X2pwZWdfcmluZ19nZXRfd3B0ciwKKwkuc2V0X3dwdHIgPSB2Y25fdjJfNV9qcGVnX3Jpbmdfc2V0X3dwdHIsCisJLmVtaXRfZnJhbWVfc2l6ZSA9CisJCVNPQzE1X0ZMVVNIX0dQVV9UTEJfTlVNX1dSRUcgKiA2ICsKKwkJU09DMTVfRkxVU0hfR1BVX1RMQl9OVU1fUkVHX1dBSVQgKiA4ICsKKwkJOCArIC8qIHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X3ZtX2ZsdXNoICovCisJCTE4ICsgMTggKyAvKiB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF9mZW5jZSB4MiB2bSBmZW5jZSAqLworCQk4ICsgMTYsCisJLmVtaXRfaWJfc2l6ZSA9IDIyLCAvKiB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF9pYiAqLworCS5lbWl0X2liID0gdmNuX3YyXzBfanBlZ19yaW5nX2VtaXRfaWIsCisJLmVtaXRfZmVuY2UgPSB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF9mZW5jZSwKKwkuZW1pdF92bV9mbHVzaCA9IHZjbl92Ml8wX2pwZWdfcmluZ19lbWl0X3ZtX2ZsdXNoLAorCS50ZXN0X3JpbmcgPSBhbWRncHVfdmNuX2pwZWdfcmluZ190ZXN0X3JpbmcsCisJLnRlc3RfaWIgPSBhbWRncHVfdmNuX2pwZWdfcmluZ190ZXN0X2liLAorCS5pbnNlcnRfbm9wID0gdmNuX3YyXzBfanBlZ19yaW5nX25vcCwKKwkuaW5zZXJ0X3N0YXJ0ID0gdmNuX3YyXzBfanBlZ19yaW5nX2luc2VydF9zdGFydCwKKwkuaW5zZXJ0X2VuZCA9IHZjbl92Ml8wX2pwZWdfcmluZ19pbnNlcnRfZW5kLAorCS5wYWRfaWIgPSBhbWRncHVfcmluZ19nZW5lcmljX3BhZF9pYiwKKwkuYmVnaW5fdXNlID0gYW1kZ3B1X3Zjbl9yaW5nX2JlZ2luX3VzZSwKKwkuZW5kX3VzZSA9IGFtZGdwdV92Y25fcmluZ19lbmRfdXNlLAorCS5lbWl0X3dyZWcgPSB2Y25fdjJfMF9qcGVnX3JpbmdfZW1pdF93cmVnLAorCS5lbWl0X3JlZ193YWl0ID0gdmNuX3YyXzBfanBlZ19yaW5nX2VtaXRfcmVnX3dhaXQsCisJLmVtaXRfcmVnX3dyaXRlX3JlZ193YWl0ID0gYW1kZ3B1X3JpbmdfZW1pdF9yZWdfd3JpdGVfcmVnX3dhaXRfaGVscGVyLAorfTsKKworc3RhdGljIHZvaWQgdmNuX3YyXzVfc2V0X2RlY19yaW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fdmNuX2luc3Q7ICsraSkgeworCQlpZiAoYWRldi0+dmNuLmhhcnZlc3RfY29uZmlnICYgKDEgPDwgaSkpCisJCQljb250aW51ZTsKKwkJYWRldi0+dmNuLmluc3RbaV0ucmluZ19kZWMuZnVuY3MgPSAmdmNuX3YyXzVfZGVjX3Jpbmdfdm1fZnVuY3M7CisJCWFkZXYtPnZjbi5pbnN0W2ldLnJpbmdfZGVjLm1lID0gaTsKKwkJRFJNX0lORk8oIlZDTiglZCkgZGVjb2RlIGlzIGVuYWJsZWQgaW4gVk0gbW9kZVxuIiwgaSk7CisJfQorfQorCitzdGF0aWMgdm9pZCB2Y25fdjJfNV9zZXRfZW5jX3JpbmdfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJaW50IGksIGo7CisKKwlmb3IgKGogPSAwOyBqIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytqKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBqKSkKKwkJCWNvbnRpbnVlOworCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV9lbmNfcmluZ3M7ICsraSkgeworCQkJYWRldi0+dmNuLmluc3Rbal0ucmluZ19lbmNbaV0uZnVuY3MgPSAmdmNuX3YyXzVfZW5jX3Jpbmdfdm1fZnVuY3M7CisJCQlhZGV2LT52Y24uaW5zdFtqXS5yaW5nX2VuY1tpXS5tZSA9IGo7CisJCX0KKwkJRFJNX0lORk8oIlZDTiglZCkgZW5jb2RlIGlzIGVuYWJsZWQgaW4gVk0gbW9kZVxuIiwgaik7CisJfQorfQorCitzdGF0aWMgdm9pZCB2Y25fdjJfNV9zZXRfanBlZ19yaW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fdmNuX2luc3Q7ICsraSkgeworCQlpZiAoYWRldi0+dmNuLmhhcnZlc3RfY29uZmlnICYgKDEgPDwgaSkpCisJCQljb250aW51ZTsKKwkJYWRldi0+dmNuLmluc3RbaV0ucmluZ19qcGVnLmZ1bmNzID0gJnZjbl92Ml81X2pwZWdfcmluZ192bV9mdW5jczsKKwkJYWRldi0+dmNuLmluc3RbaV0ucmluZ19qcGVnLm1lID0gaTsKKwkJRFJNX0lORk8oIlZDTiglZCkganBlZyBkZWNvZGUgaXMgZW5hYmxlZCBpbiBWTSBtb2RlXG4iLCBpKTsKKwl9Cit9CisKK3N0YXRpYyBib29sIHZjbl92Ml81X2lzX2lkbGUodm9pZCAqaGFuZGxlKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCWludCBpLCByZXQgPSAxOworCisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fdmNuX2luc3Q7ICsraSkgeworCQlpZiAoYWRldi0+dmNuLmhhcnZlc3RfY29uZmlnICYgKDEgPDwgaSkpCisJCQljb250aW51ZTsKKwkJcmV0ICY9IChSUkVHMzJfU09DMTUoVkNOLCBpLCBtbVVWRF9TVEFUVVMpID09IFVWRF9TVEFUVVNfX0lETEUpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdmNuX3YyXzVfd2FpdF9mb3JfaWRsZSh2b2lkICpoYW5kbGUpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisJaW50IGksIHJldCA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNuLm51bV92Y25faW5zdDsgKytpKSB7CisJCWlmIChhZGV2LT52Y24uaGFydmVzdF9jb25maWcgJiAoMSA8PCBpKSkKKwkJCWNvbnRpbnVlOworCQlTT0MxNV9XQUlUX09OX1JSRUcoVkNOLCBpLCBtbVVWRF9TVEFUVVMsIFVWRF9TVEFUVVNfX0lETEUsCisJCQlVVkRfU1RBVFVTX19JRExFLCByZXQpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHZjbl92Ml81X3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisJYm9vbCBlbmFibGUgPSAoc3RhdGUgPT0gQU1EX0NHX1NUQVRFX0dBVEUpID8gdHJ1ZSA6IGZhbHNlOworCisJaWYgKGVuYWJsZSkgeworCQlpZiAodmNuX3YyXzVfaXNfaWRsZShoYW5kbGUpKQorCQkJcmV0dXJuIC1FQlVTWTsKKwkJdmNuX3YyXzVfZW5hYmxlX2Nsb2NrX2dhdGluZyhhZGV2KTsKKwl9IGVsc2UgeworCQl2Y25fdjJfNV9kaXNhYmxlX2Nsb2NrX2dhdGluZyhhZGV2KTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB2Y25fdjJfNV9zZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkgIGVudW0gYW1kX3Bvd2VyZ2F0aW5nX3N0YXRlIHN0YXRlKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCWludCByZXQ7CisKKwlpZihzdGF0ZSA9PSBhZGV2LT52Y24uY3VyX3N0YXRlKQorCQlyZXR1cm4gMDsKKworCWlmIChzdGF0ZSA9PSBBTURfUEdfU1RBVEVfR0FURSkKKwkJcmV0ID0gdmNuX3YyXzVfc3RvcChhZGV2KTsKKwllbHNlCisJCXJldCA9IHZjbl92Ml81X3N0YXJ0KGFkZXYpOworCisJaWYoIXJldCkKKwkJYWRldi0+dmNuLmN1cl9zdGF0ZSA9IHN0YXRlOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB2Y25fdjJfNV9zZXRfaW50ZXJydXB0X3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQlzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMgKnNvdXJjZSwKKwkJCQkJdW5zaWduZWQgdHlwZSwKKwkJCQkJZW51bSBhbWRncHVfaW50ZXJydXB0X3N0YXRlIHN0YXRlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZjbl92Ml81X3Byb2Nlc3NfaW50ZXJydXB0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCSAgICAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlLAorCQkJCSAgICAgIHN0cnVjdCBhbWRncHVfaXZfZW50cnkgKmVudHJ5KQoreworCXVpbnQzMl90IGlwX2luc3RhbmNlOworCisJc3dpdGNoIChlbnRyeS0+Y2xpZW50X2lkKSB7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9WQ046CisJCWlwX2luc3RhbmNlID0gMDsKKwkJYnJlYWs7CisJY2FzZSBTT0MxNV9JSF9DTElFTlRJRF9WQ04xOgorCQlpcF9pbnN0YW5jZSA9IDE7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9FUlJPUigiVW5oYW5kbGVkIGNsaWVudCBpZDogJWRcbiIsIGVudHJ5LT5jbGllbnRfaWQpOworCQlyZXR1cm4gMDsKKwl9CisKKwlEUk1fREVCVUcoIklIOiBWQ04gVFJBUFxuIik7CisKKwlzd2l0Y2ggKGVudHJ5LT5zcmNfaWQpIHsKKwljYXNlIFZDTl8yXzBfX1NSQ0lEX19VVkRfU1lTVEVNX01FU1NBR0VfSU5URVJSVVBUOgorCQlhbWRncHVfZmVuY2VfcHJvY2VzcygmYWRldi0+dmNuLmluc3RbaXBfaW5zdGFuY2VdLnJpbmdfZGVjKTsKKwkJYnJlYWs7CisJY2FzZSBWQ05fMl8wX19TUkNJRF9fVVZEX0VOQ19HRU5FUkFMX1BVUlBPU0U6CisJCWFtZGdwdV9mZW5jZV9wcm9jZXNzKCZhZGV2LT52Y24uaW5zdFtpcF9pbnN0YW5jZV0ucmluZ19lbmNbMF0pOworCQlicmVhazsKKwljYXNlIFZDTl8yXzBfX1NSQ0lEX19VVkRfRU5DX0xPV19MQVRFTkNZOgorCQlhbWRncHVfZmVuY2VfcHJvY2VzcygmYWRldi0+dmNuLmluc3RbaXBfaW5zdGFuY2VdLnJpbmdfZW5jWzFdKTsKKwkJYnJlYWs7CisJY2FzZSBWQ05fMl8wX19TUkNJRF9fSlBFR19ERUNPREU6CisJCWFtZGdwdV9mZW5jZV9wcm9jZXNzKCZhZGV2LT52Y24uaW5zdFtpcF9pbnN0YW5jZV0ucmluZ19qcGVnKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJRFJNX0VSUk9SKCJVbmhhbmRsZWQgaW50ZXJydXB0OiAlZCAlZFxuIiwKKwkJCSAgZW50cnktPnNyY19pZCwgZW50cnktPnNyY19kYXRhWzBdKTsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MgdmNuX3YyXzVfaXJxX2Z1bmNzID0geworCS5zZXQgPSB2Y25fdjJfNV9zZXRfaW50ZXJydXB0X3N0YXRlLAorCS5wcm9jZXNzID0gdmNuX3YyXzVfcHJvY2Vzc19pbnRlcnJ1cHQsCit9OworCitzdGF0aWMgdm9pZCB2Y25fdjJfNV9zZXRfaXJxX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnZjbi5udW1fdmNuX2luc3Q7ICsraSkgeworCQlpZiAoYWRldi0+dmNuLmhhcnZlc3RfY29uZmlnICYgKDEgPDwgaSkpCisJCQljb250aW51ZTsKKwkJYWRldi0+dmNuLmluc3RbaV0uaXJxLm51bV90eXBlcyA9IGFkZXYtPnZjbi5udW1fZW5jX3JpbmdzICsgMjsKKwkJYWRldi0+dmNuLmluc3RbaV0uaXJxLmZ1bmNzID0gJnZjbl92Ml81X2lycV9mdW5jczsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIHZjbl92Ml81X2lwX2Z1bmNzID0geworCS5uYW1lID0gInZjbl92Ml81IiwKKwkuZWFybHlfaW5pdCA9IHZjbl92Ml81X2Vhcmx5X2luaXQsCisJLmxhdGVfaW5pdCA9IE5VTEwsCisJLnN3X2luaXQgPSB2Y25fdjJfNV9zd19pbml0LAorCS5zd19maW5pID0gdmNuX3YyXzVfc3dfZmluaSwKKwkuaHdfaW5pdCA9IHZjbl92Ml81X2h3X2luaXQsCisJLmh3X2ZpbmkgPSB2Y25fdjJfNV9od19maW5pLAorCS5zdXNwZW5kID0gdmNuX3YyXzVfc3VzcGVuZCwKKwkucmVzdW1lID0gdmNuX3YyXzVfcmVzdW1lLAorCS5pc19pZGxlID0gdmNuX3YyXzVfaXNfaWRsZSwKKwkud2FpdF9mb3JfaWRsZSA9IHZjbl92Ml81X3dhaXRfZm9yX2lkbGUsCisJLmNoZWNrX3NvZnRfcmVzZXQgPSBOVUxMLAorCS5wcmVfc29mdF9yZXNldCA9IE5VTEwsCisJLnNvZnRfcmVzZXQgPSBOVUxMLAorCS5wb3N0X3NvZnRfcmVzZXQgPSBOVUxMLAorCS5zZXRfY2xvY2tnYXRpbmdfc3RhdGUgPSB2Y25fdjJfNV9zZXRfY2xvY2tnYXRpbmdfc3RhdGUsCisJLnNldF9wb3dlcmdhdGluZ19zdGF0ZSA9IHZjbl92Ml81X3NldF9wb3dlcmdhdGluZ19zdGF0ZSwKK307CisKK2NvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiB2Y25fdjJfNV9pcF9ibG9jayA9Cit7CisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfVkNOLAorCQkubWFqb3IgPSAyLAorCQkubWlub3IgPSA1LAorCQkucmV2ID0gMCwKKwkJLmZ1bmNzID0gJnZjbl92Ml81X2lwX2Z1bmNzLAorfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92Ml81LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjJfNS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkOWMwODAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjJfNS5oCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpZm5kZWYgX19WQ05fVjJfNV9IX18KKyNkZWZpbmUgX19WQ05fVjJfNV9IX18KKworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiB2Y25fdjJfNV9pcF9ibG9jazsKKworI2VuZGlmIC8qIF9fVkNOX1YyXzVfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92ZWdhMTBfaWguYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2ExMF9paC5jCmluZGV4IDIyMjYwZTYuLjllYWUzNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2ExMF9paC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2ExMF9paC5jCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyB2b2lkIHZlZ2ExMF9paF9lbmFibGVfaW50ZXJydXB0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCWloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NOVEwsIFJCX0VOQUJMRSwgMSk7CiAJaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgRU5BQkxFX0lOVFIsIDEpOwotCWlmIChhbWRncHVfdmlydF9zdXBwb3J0X3BzcF9wcmdfaWhfcmVnKGFkZXYpKSB7CisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewogCQlpZiAocHNwX3JlZ19wcm9ncmFtKCZhZGV2LT5wc3AsIFBTUF9SRUdfSUhfUkJfQ05UTCwgaWhfcmJfY250bCkpIHsKIAkJCURSTV9FUlJPUigiUFNQIHByb2dyYW0gSUhfUkJfQ05UTCBmYWlsZWQhXG4iKTsKIAkJCXJldHVybjsKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIHZvaWQgdmVnYTEwX2loX2VuYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlpaF9yYl9jbnRsID0gUlJFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMX1JJTkcxKTsKIAkJaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTF9SSU5HMSwKIAkJCQkJICAgUkJfRU5BQkxFLCAxKTsKLQkJaWYgKGFtZGdwdV92aXJ0X3N1cHBvcnRfcHNwX3ByZ19paF9yZWcoYWRldikpIHsKKwkJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewogCQkJaWYgKHBzcF9yZWdfcHJvZ3JhbSgmYWRldi0+cHNwLCBQU1BfUkVHX0lIX1JCX0NOVExfUklORzEsCiAJCQkJCQlpaF9yYl9jbnRsKSkgewogCQkJCURSTV9FUlJPUigicHJvZ3JhbSBJSF9SQl9DTlRMX1JJTkcxIGZhaWxlZCFcbiIpOwpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgdm9pZCB2ZWdhMTBfaWhfZW5hYmxlX2ludGVycnVwdHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWloX3JiX2NudGwgPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVExfUklORzIpOwogCQlpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRMX1JJTkcyLAogCQkJCQkgICBSQl9FTkFCTEUsIDEpOwotCQlpZiAoYW1kZ3B1X3ZpcnRfc3VwcG9ydF9wc3BfcHJnX2loX3JlZyhhZGV2KSkgeworCQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CiAJCQlpZiAocHNwX3JlZ19wcm9ncmFtKCZhZGV2LT5wc3AsIFBTUF9SRUdfSUhfUkJfQ05UTF9SSU5HMiwKIAkJCQkJCWloX3JiX2NudGwpKSB7CiAJCQkJRFJNX0VSUk9SKCJwcm9ncmFtIElIX1JCX0NOVExfUklORzIgZmFpbGVkIVxuIik7CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIHZvaWQgdmVnYTEwX2loX2Rpc2FibGVfaW50ZXJydXB0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCWloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NOVEwsIFJCX0VOQUJMRSwgMCk7CiAJaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgRU5BQkxFX0lOVFIsIDApOwotCWlmIChhbWRncHVfdmlydF9zdXBwb3J0X3BzcF9wcmdfaWhfcmVnKGFkZXYpKSB7CisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewogCQlpZiAocHNwX3JlZ19wcm9ncmFtKCZhZGV2LT5wc3AsIFBTUF9SRUdfSUhfUkJfQ05UTCwgaWhfcmJfY250bCkpIHsKIAkJCURSTV9FUlJPUigiUFNQIHByb2dyYW0gSUhfUkJfQ05UTCBmYWlsZWQhXG4iKTsKIAkJCXJldHVybjsKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgdm9pZCB2ZWdhMTBfaWhfZGlzYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlpaF9yYl9jbnRsID0gUlJFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMX1JJTkcxKTsKIAkJaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTF9SSU5HMSwKIAkJCQkJICAgUkJfRU5BQkxFLCAwKTsKLQkJaWYgKGFtZGdwdV92aXJ0X3N1cHBvcnRfcHNwX3ByZ19paF9yZWcoYWRldikpIHsKKwkJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewogCQkJaWYgKHBzcF9yZWdfcHJvZ3JhbSgmYWRldi0+cHNwLCBQU1BfUkVHX0lIX1JCX0NOVExfUklORzEsCiAJCQkJCQlpaF9yYl9jbnRsKSkgewogCQkJCURSTV9FUlJPUigicHJvZ3JhbSBJSF9SQl9DTlRMX1JJTkcxIGZhaWxlZCFcbiIpOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHN0YXRpYyB2b2lkIHZlZ2ExMF9paF9kaXNhYmxlX2ludGVycnVwdHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWloX3JiX2NudGwgPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVExfUklORzIpOwogCQlpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRMX1JJTkcyLAogCQkJCQkgICBSQl9FTkFCTEUsIDApOwotCQlpZiAoYW1kZ3B1X3ZpcnRfc3VwcG9ydF9wc3BfcHJnX2loX3JlZyhhZGV2KSkgeworCQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CiAJCQlpZiAocHNwX3JlZ19wcm9ncmFtKCZhZGV2LT5wc3AsIFBTUF9SRUdfSUhfUkJfQ05UTF9SSU5HMiwKIAkJCQkJCWloX3JiX2NudGwpKSB7CiAJCQkJRFJNX0VSUk9SKCJwcm9ncmFtIElIX1JCX0NOVExfUklORzIgZmFpbGVkIVxuIik7CkBAIC0yMTksNyArMjE5LDcgQEAgc3RhdGljIHVpbnQzMl90IHZlZ2ExMF9paF9kb29yYmVsbF9ycHRyKHN0cnVjdCBhbWRncHVfaWhfcmluZyAqaWgpCiBzdGF0aWMgaW50IHZlZ2ExMF9paF9pcnFfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2loX3JpbmcgKmloOwotCXUzMiBpaF9yYl9jbnRsOworCXUzMiBpaF9yYl9jbnRsLCBpaF9jaGlja2VuOwogCWludCByZXQgPSAwOwogCXUzMiB0bXA7CiAKQEAgLTIzNCwxMSArMjM0LDE3IEBAIHN0YXRpYyBpbnQgdmVnYTEwX2loX2lycV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCVdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQkFTRV9ISSwgKGloLT5ncHVfYWRkciA+PiA0MCkgJiAweGZmKTsKIAogCWloX3JiX2NudGwgPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVEwpOworCWloX2NoaWNrZW4gPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX0NISUNLRU4pOwogCWloX3JiX2NudGwgPSB2ZWdhMTBfaWhfcmJfY250bChpaCwgaWhfcmJfY250bCk7CisJaWYgKGFkZXYtPmlycS5paC51c2VfYnVzX2FkZHIpIHsKKwkJaWhfY2hpY2tlbiA9IFJFR19TRVRfRklFTEQoaWhfY2hpY2tlbiwgSUhfQ0hJQ0tFTiwgTUNfU1BBQ0VfR1BBX0VOQUJMRSwgMSk7CisJfSBlbHNlIHsKKwkJaWhfY2hpY2tlbiA9IFJFR19TRVRfRklFTEQoaWhfY2hpY2tlbiwgSUhfQ0hJQ0tFTiwgTUNfU1BBQ0VfRkJQQV9FTkFCTEUsIDEpOworCX0KIAlpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRMLCBSUFRSX1JFQVJNLAogCQkJCSAgICEhYWRldi0+aXJxLm1zaV9lbmFibGVkKTsKIAotCWlmIChhbWRncHVfdmlydF9zdXBwb3J0X3BzcF9wcmdfaWhfcmVnKGFkZXYpKSB7CisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewogCQlpZiAocHNwX3JlZ19wcm9ncmFtKCZhZGV2LT5wc3AsIFBTUF9SRUdfSUhfUkJfQ05UTCwgaWhfcmJfY250bCkpIHsKIAkJCURSTV9FUlJPUigiUFNQIHByb2dyYW0gSUhfUkJfQ05UTCBmYWlsZWQhXG4iKTsKIAkJCXJldHVybiAtRVRJTUVET1VUOwpAQCAtMjQ3LDYgKzI1MywxMSBAQCBzdGF0aWMgaW50IHZlZ2ExMF9paF9pcnFfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMLCBpaF9yYl9jbnRsKTsKIAl9CiAKKwlpZiAoKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX0FSQ1RVUlVTCisJCSYmIGFkZXYtPmZpcm13YXJlLmxvYWRfdHlwZSA9PSBBTURHUFVfRldfTE9BRF9ESVJFQ1QpCisJCXx8IGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JFTk9JUikKKwkJV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9DSElDS0VOLCBpaF9jaGlja2VuKTsKKwogCS8qIHNldCB0aGUgd3JpdGViYWNrIGFkZHJlc3Mgd2hldGhlciBpdCdzIGVuYWJsZWQgb3Igbm90ICovCiAJV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9XUFRSX0FERFJfTE8sCiAJCSAgICAgbG93ZXJfMzJfYml0cyhpaC0+d3B0cl9hZGRyKSk7CkBAIC0yNzIsNyArMjgzLDcgQEAgc3RhdGljIGludCB2ZWdhMTBfaWhfaXJxX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQkJCSAgIFdQVFJfT1ZFUkZMT1dfRU5BQkxFLCAwKTsKIAkJaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwKIAkJCQkJICAgUkJfRlVMTF9EUkFJTl9FTkFCTEUsIDEpOwotCQlpZiAoYW1kZ3B1X3ZpcnRfc3VwcG9ydF9wc3BfcHJnX2loX3JlZyhhZGV2KSkgeworCQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CiAJCQlpZiAocHNwX3JlZ19wcm9ncmFtKCZhZGV2LT5wc3AsIFBTUF9SRUdfSUhfUkJfQ05UTF9SSU5HMSwKIAkJCQkJCWloX3JiX2NudGwpKSB7CiAJCQkJRFJNX0VSUk9SKCJwcm9ncmFtIElIX1JCX0NOVExfUklORzEgZmFpbGVkIVxuIik7CkBAIC0yOTksNyArMzEwLDcgQEAgc3RhdGljIGludCB2ZWdhMTBfaWhfaXJxX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWloX3JiX2NudGwgPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVExfUklORzIpOwogCQlpaF9yYl9jbnRsID0gdmVnYTEwX2loX3JiX2NudGwoaWgsIGloX3JiX2NudGwpOwogCi0JCWlmIChhbWRncHVfdmlydF9zdXBwb3J0X3BzcF9wcmdfaWhfcmVnKGFkZXYpKSB7CisJCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsKIAkJCWlmIChwc3BfcmVnX3Byb2dyYW0oJmFkZXYtPnBzcCwgUFNQX1JFR19JSF9SQl9DTlRMX1JJTkcyLAogCQkJCQkJaWhfcmJfY250bCkpIHsKIAkJCQlEUk1fRVJST1IoInByb2dyYW0gSUhfUkJfQ05UTF9SSU5HMiBmYWlsZWQhXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2ExMF9yZWdfaW5pdC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTEwX3JlZ19pbml0LmMKaW5kZXggYThlOTI2My4uYmQwNTgwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTEwX3JlZ19pbml0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTEwX3JlZ19pbml0LmMKQEAgLTgxLDYgKzgxLDEwIEBAIHZvaWQgdmVnYTEwX2Rvb3JiZWxsX2luZGV4X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJYWRldi0+ZG9vcmJlbGxfaW5kZXgudXZkX3ZjZS52Y2VfcmluZzJfMyA9IEFNREdQVV9ET09SQkVMTDY0X1ZDRV9SSU5HMl8zOwogCWFkZXYtPmRvb3JiZWxsX2luZGV4LnV2ZF92Y2UudmNlX3Jpbmc0XzUgPSBBTURHUFVfRE9PUkJFTEw2NF9WQ0VfUklORzRfNTsKIAlhZGV2LT5kb29yYmVsbF9pbmRleC51dmRfdmNlLnZjZV9yaW5nNl83ID0gQU1ER1BVX0RPT1JCRUxMNjRfVkNFX1JJTkc2Xzc7CisJYWRldi0+ZG9vcmJlbGxfaW5kZXgudmNuLnZjbl9yaW5nMF8xID0gQU1ER1BVX0RPT1JCRUxMNjRfVkNOMF8xOworCWFkZXYtPmRvb3JiZWxsX2luZGV4LnZjbi52Y25fcmluZzJfMyA9IEFNREdQVV9ET09SQkVMTDY0X1ZDTjJfMzsKKwlhZGV2LT5kb29yYmVsbF9pbmRleC52Y24udmNuX3Jpbmc0XzUgPSBBTURHUFVfRE9PUkJFTEw2NF9WQ040XzU7CisJYWRldi0+ZG9vcmJlbGxfaW5kZXgudmNuLnZjbl9yaW5nNl83ID0gQU1ER1BVX0RPT1JCRUxMNjRfVkNONl83OwogCiAJYWRldi0+ZG9vcmJlbGxfaW5kZXguZmlyc3Rfbm9uX2NwID0gQU1ER1BVX0RPT1JCRUxMNjRfRklSU1RfTk9OX0NQOwogCWFkZXYtPmRvb3JiZWxsX2luZGV4Lmxhc3Rfbm9uX2NwID0gQU1ER1BVX0RPT1JCRUxMNjRfTEFTVF9OT05fQ1A7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92ZWdhMjBfcmVnX2luaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2EyMF9yZWdfaW5pdC5jCmluZGV4IDBkYjg0MzguLjU4N2UzM2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2EyMF9yZWdfaW5pdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2EyMF9yZWdfaW5pdC5jCkBAIC01MCw2ICs1MCw4IEBAIGludCB2ZWdhMjBfcmVnX2Jhc2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJYWRldi0+cmVnX29mZnNldFtOQklGX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoTkJJT19CQVNFLmluc3RhbmNlW2ldKSk7CiAJCWFkZXYtPnJlZ19vZmZzZXRbVEhNX0hXSVBdW2ldID0gKHVpbnQzMl90ICopKCYoVEhNX0JBU0UuaW5zdGFuY2VbaV0pKTsKIAkJYWRldi0+cmVnX29mZnNldFtDTEtfSFdJUF1baV0gPSAodWludDMyX3QgKikoJihDTEtfQkFTRS5pbnN0YW5jZVtpXSkpOworCQlhZGV2LT5yZWdfb2Zmc2V0W1VNQ19IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKFVNQ19CQVNFLmluc3RhbmNlW2ldKSk7CisJCWFkZXYtPnJlZ19vZmZzZXRbUlNNVV9IV0lQXVtpXSA9ICh1aW50MzJfdCAqKSgmKFJTTVVfQkFTRS5pbnN0YW5jZVtpXSkpOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTg1LDYgKzg3LDEwIEBAIHZvaWQgdmVnYTIwX2Rvb3JiZWxsX2luZGV4X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJYWRldi0+ZG9vcmJlbGxfaW5kZXgudXZkX3ZjZS52Y2VfcmluZzJfMyA9IEFNREdQVV9WRUdBMjBfRE9PUkJFTEw2NF9WQ0VfUklORzJfMzsKIAlhZGV2LT5kb29yYmVsbF9pbmRleC51dmRfdmNlLnZjZV9yaW5nNF81ID0gQU1ER1BVX1ZFR0EyMF9ET09SQkVMTDY0X1ZDRV9SSU5HNF81OwogCWFkZXYtPmRvb3JiZWxsX2luZGV4LnV2ZF92Y2UudmNlX3Jpbmc2XzcgPSBBTURHUFVfVkVHQTIwX0RPT1JCRUxMNjRfVkNFX1JJTkc2Xzc7CisJYWRldi0+ZG9vcmJlbGxfaW5kZXgudmNuLnZjbl9yaW5nMF8xID0gQU1ER1BVX1ZFR0EyMF9ET09SQkVMTDY0X1ZDTjBfMTsKKwlhZGV2LT5kb29yYmVsbF9pbmRleC52Y24udmNuX3JpbmcyXzMgPSBBTURHUFVfVkVHQTIwX0RPT1JCRUxMNjRfVkNOMl8zOworCWFkZXYtPmRvb3JiZWxsX2luZGV4LnZjbi52Y25fcmluZzRfNSA9IEFNREdQVV9WRUdBMjBfRE9PUkJFTEw2NF9WQ040XzU7CisJYWRldi0+ZG9vcmJlbGxfaW5kZXgudmNuLnZjbl9yaW5nNl83ID0gQU1ER1BVX1ZFR0EyMF9ET09SQkVMTDY0X1ZDTjZfNzsKIAogCWFkZXYtPmRvb3JiZWxsX2luZGV4LmZpcnN0X25vbl9jcCA9IEFNREdQVV9WRUdBMjBfRE9PUkJFTEw2NF9GSVJTVF9OT05fQ1A7CiAJYWRldi0+ZG9vcmJlbGxfaW5kZXgubGFzdF9ub25fY3AgPSBBTURHUFVfVkVHQTIwX0RPT1JCRUxMNjRfTEFTVF9OT05fQ1A7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92aS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmkuYwppbmRleCA2NTc1ZGRjLi41ZjhjODc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92aS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpLmMKQEAgLTcxMSw2ICs3MTEsMTIgQEAgc3RhdGljIGludCB2aV9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiByOwogfQogCitzdGF0aWMgZW51bSBhbWRfcmVzZXRfbWV0aG9kCit2aV9hc2ljX3Jlc2V0X21ldGhvZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwlyZXR1cm4gQU1EX1JFU0VUX01FVEhPRF9MRUdBQ1k7Cit9CisKIHN0YXRpYyB1MzIgdmlfZ2V0X2NvbmZpZ19tZW1zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXJldHVybiBSUkVHMzIobW1DT05GSUdfTUVNU0laRSk7CkBAIC0xMDIzLDYgKzEwMjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9hc2ljX2Z1bmNzIHZpX2FzaWNfZnVuY3MgPQogCS5yZWFkX2Jpb3NfZnJvbV9yb20gPSAmdmlfcmVhZF9iaW9zX2Zyb21fcm9tLAogCS5yZWFkX3JlZ2lzdGVyID0gJnZpX3JlYWRfcmVnaXN0ZXIsCiAJLnJlc2V0ID0gJnZpX2FzaWNfcmVzZXQsCisJLnJlc2V0X21ldGhvZCA9ICZ2aV9hc2ljX3Jlc2V0X21ldGhvZCwKIAkuc2V0X3ZnYV9zdGF0ZSA9ICZ2aV92Z2Ffc2V0X3N0YXRlLAogCS5nZXRfeGNsayA9ICZ2aV9nZXRfeGNsaywKIAkuc2V0X3V2ZF9jbG9ja3MgPSAmdmlfc2V0X3V2ZF9jbG9ja3MsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jd3NyX3RyYXBfaGFuZGxlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQvY3dzcl90cmFwX2hhbmRsZXIuaAppbmRleCA4MjY5MTNjLi45MDFmZTM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jd3NyX3RyYXBfaGFuZGxlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2N3c3JfdHJhcF9oYW5kbGVyLmgKQEAgLTI3NCwxNTQgKzI3NCwyMjcgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGN3c3JfdHJhcF9nZng4X2hleFtdID0gewogCiAKIHN0YXRpYyBjb25zdCB1aW50MzJfdCBjd3NyX3RyYXBfZ2Z4OV9oZXhbXSA9IHsKLQkweGJmODIwMDAxLCAweGJmODIwMTVlLAorCTB4YmY4MjAwMDEsIDB4YmY4MjAyNDgsCiAJMHhiOGY4ZjgwMiwgMHg4OTc4ODY3OCwKLQkweGI4ZmJmODAzLCAweDg2NmVmZjdiLAotCTB4MDAwMDA0MDAsIDB4YmY4NTAwM2IsCi0JMHg4NjZlZmY3YiwgMHgwMDAwMDgwMCwKLQkweGJmODUwMDAzLCAweDg2NmVmZjdiLAotCTB4MDAwMDAxMDAsIDB4YmY4NDAwMGMsCisJMHhiOGVlZjgwMSwgMHg4NjZlZmY2ZSwKKwkweDAwMDAwODAwLCAweGJmODQwMDAzLAogCTB4ODY2ZWZmNzgsIDB4MDAwMDIwMDAsCi0JMHhiZjg0MDAwNSwgMHhiZjhlMDAxMCwKLQkweGI4ZWVmODAzLCAweDg2NmVmZjZlLAotCTB4MDAwMDA0MDAsIDB4YmY4NGZmZmIsCi0JMHg4Nzc4ZmY3OCwgMHgwMDAwMjAwMCwKLQkweDgwZWM4ODZjLCAweDgyZWQ4MDZkLAotCTB4YjhlZWY4MDcsIDB4ODY2ZmZmNmUsCi0JMHgwMDFmODAwMCwgMHg4ZTZmOGI2ZiwKLQkweDg5NzdmZjc3LCAweGZjMDAwMDAwLAotCTB4ODc3NzZmNzcsIDB4ODk2ZWZmNmUsCi0JMHgwMDFmODAwMCwgMHhiOTZlZjgwNywKLQkweGI4ZmFmODEyLCAweGI4ZmJmODEzLAotCTB4OGVmYTg4N2EsIDB4YzAwNzFiYmQsCi0JMHgwMDAwMDAwMCwgMHhiZjhjYzA3ZiwKLQkweGMwMDcxZWJkLCAweDAwMDAwMDA4LAotCTB4YmY4Y2MwN2YsIDB4ODZlZTZlNmUsCi0JMHhiZjg0MDAwMSwgMHhiZTgwMWQ2ZSwKLQkweGI4ZmJmODAzLCAweDg2N2JmZjdiLAotCTB4MDAwMDAxZmYsIDB4YmY4NTAwMDIsCi0JMHg4MDZjODQ2YywgMHg4MjZkODA2ZCwKKwkweGJmODQwMDE2LCAweGI4ZmJmODAzLAorCTB4ODY2ZWZmN2IsIDB4MDAwMDA0MDAsCisJMHhiZjg1MDAzYiwgMHg4NjZlZmY3YiwKKwkweDAwMDAwODAwLCAweGJmODUwMDAzLAorCTB4ODY2ZWZmN2IsIDB4MDAwMDAxMDAsCisJMHhiZjg0MDAwYywgMHg4NjZlZmY3OCwKKwkweDAwMDAyMDAwLCAweGJmODQwMDA1LAorCTB4YmY4ZTAwMTAsIDB4YjhlZWY4MDMsCisJMHg4NjZlZmY2ZSwgMHgwMDAwMDQwMCwKKwkweGJmODRmZmZiLCAweDg3NzhmZjc4LAorCTB4MDAwMDIwMDAsIDB4ODBlYzg4NmMsCisJMHg4MmVkODA2ZCwgMHhiOGVlZjgwNywKKwkweDg2NmZmZjZlLCAweDAwMWY4MDAwLAorCTB4OGU2ZjhiNmYsIDB4ODk3N2ZmNzcsCisJMHhmYzAwMDAwMCwgMHg4Nzc3NmY3NywKKwkweDg5NmVmZjZlLCAweDAwMWY4MDAwLAorCTB4Yjk2ZWY4MDcsIDB4YjhmYWY4MTIsCisJMHhiOGZiZjgxMywgMHg4ZWZhODg3YSwKKwkweGMwMDcxYmJkLCAweDAwMDAwMDAwLAorCTB4YmY4Y2MwN2YsIDB4YzAwNzFlYmQsCisJMHgwMDAwMDAwOCwgMHhiZjhjYzA3ZiwKKwkweDg2ZWU2ZTZlLCAweGJmODQwMDAxLAorCTB4YmU4MDFkNmUsIDB4YjhmYmY4MDMsCisJMHg4NjdiZmY3YiwgMHgwMDAwMDFmZiwKKwkweGJmODUwMDAyLCAweDgwNmM4NDZjLAorCTB4ODI2ZDgwNmQsIDB4ODY2ZGZmNmQsCisJMHgwMDAwZmZmZiwgMHg4ZjZlOGI3NywKKwkweDg2NmVmZjZlLCAweDAwMWY4MDAwLAorCTB4Yjk2ZWY4MDcsIDB4ODZmZTdlN2UsCisJMHg4NmVhNmE2YSwgMHg4ZjZlODM3OCwKKwkweGI5NmVlMGMyLCAweGJmODAwMDAyLAorCTB4Yjk3ODAwMDIsIDB4YmU4MDFmNmMsCiAJMHg4NjZkZmY2ZCwgMHgwMDAwZmZmZiwKLQkweDhmNmU4Yjc3LCAweDg2NmVmZjZlLAotCTB4MDAxZjgwMDAsIDB4Yjk2ZWY4MDcsCi0JMHg4NmZlN2U3ZSwgMHg4NmVhNmE2YSwKLQkweDhmNmU4Mzc4LCAweGI5NmVlMGMyLAotCTB4YmY4MDAwMDIsIDB4Yjk3ODAwMDIsCi0JMHhiZTgwMWY2YywgMHg4NjZkZmY2ZCwKLQkweDAwMDBmZmZmLCAweGJlZmEwMDgwLAotCTB4Yjk3YTAyODMsIDB4YjhmYTI0MDcsCi0JMHg4ZTdhOWI3YSwgMHg4NzZkN2E2ZCwKLQkweGI4ZmEwM2M3LCAweDhlN2E5YTdhLAotCTB4ODc2ZDdhNmQsIDB4YjhmYWY4MDcsCi0JMHg4NjdhZmY3YSwgMHgwMDAwN2ZmZiwKLQkweGI5N2FmODA3LCAweGJlZWUwMDdlLAotCTB4YmVlZjAwN2YsIDB4YmVmZTAxODAsCi0JMHhiZjkwMDAwNCwgMHg4NzdhODQ3OCwKLQkweGI5N2FmODAyLCAweGJmOGUwMDAyLAotCTB4YmY4OGZmZmUsIDB4YjhmYTJhMDUsCi0JMHg4MDdhODE3YSwgMHg4ZTdhOGE3YSwKLQkweGI4ZmIxNjA1LCAweDgwN2I4MTdiLAotCTB4OGU3Yjg2N2IsIDB4ODA3YTdiN2EsCi0JMHg4MDdhN2U3YSwgMHg4MjdiODA3ZiwKLQkweDg2N2JmZjdiLCAweDAwMDBmZmZmLAotCTB4YzA0YjFjM2QsIDB4MDAwMDAwNTAsCi0JMHhiZjhjYzA3ZiwgMHhjMDRiMWQzZCwKLQkweDAwMDAwMDYwLCAweGJmOGNjMDdmLAotCTB4YzA0MzFlN2QsIDB4MDAwMDAwNzQsCi0JMHhiZjhjYzA3ZiwgMHhiZWY0MDA3ZSwKLQkweDg2NzVmZjdmLCAweDAwMDBmZmZmLAotCTB4ODc3NWZmNzUsIDB4MDAwNDAwMDAsCi0JMHhiZWY2MDA4MCwgMHhiZWY3MDBmZiwKLQkweDAwODA3ZmFjLCAweDg2N2FmZjdmLAotCTB4MDgwMDAwMDAsIDB4OGY3YTgzN2EsCi0JMHg4Nzc3N2E3NywgMHg4NjdhZmY3ZiwKLQkweDcwMDAwMDAwLCAweDhmN2E4MTdhLAotCTB4ODc3NzdhNzcsIDB4YmVmMTAwN2MsCi0JMHhiZWYwMDA4MCwgMHhiOGYwMmEwNSwKLQkweDgwNzA4MTcwLCAweDhlNzA4YTcwLAotCTB4YjhmYTE2MDUsIDB4ODA3YTgxN2EsCi0JMHg4ZTdhODY3YSwgMHg4MDcwN2E3MCwKLQkweGJlZjYwMDg0LCAweGJlZjYwMGZmLAotCTB4MDEwMDAwMDAsIDB4YmVmZTAwN2MsCi0JMHhiZWZjMDA3MCwgMHhjMDYxMWM3YSwKLQkweDAwMDAwMDdjLCAweGJmOGNjMDdmLAotCTB4ODA3MDg0NzAsIDB4YmVmYzAwN2UsCi0JMHhiZWZlMDA3YywgMHhiZWZjMDA3MCwKLQkweGMwNjExYjNhLCAweDAwMDAwMDdjLAotCTB4YmY4Y2MwN2YsIDB4ODA3MDg0NzAsCi0JMHhiZWZjMDA3ZSwgMHhiZWZlMDA3YywKLQkweGJlZmMwMDcwLCAweGMwNjExYjdhLAotCTB4MDAwMDAwN2MsIDB4YmY4Y2MwN2YsCi0JMHg4MDcwODQ3MCwgMHhiZWZjMDA3ZSwKLQkweGJlZmUwMDdjLCAweGJlZmMwMDcwLAotCTB4YzA2MTFiYmEsIDB4MDAwMDAwN2MsCi0JMHhiZjhjYzA3ZiwgMHg4MDcwODQ3MCwKLQkweGJlZmMwMDdlLCAweGJlZmUwMDdjLAotCTB4YmVmYzAwNzAsIDB4YzA2MTFiZmEsCi0JMHgwMDAwMDA3YywgMHhiZjhjYzA3ZiwKLQkweDgwNzA4NDcwLCAweGJlZmMwMDdlLAotCTB4YmVmZTAwN2MsIDB4YmVmYzAwNzAsCi0JMHhjMDYxMWUzYSwgMHgwMDAwMDA3YywKLQkweGJmOGNjMDdmLCAweDgwNzA4NDcwLAotCTB4YmVmYzAwN2UsIDB4YjhmYmY4MDMsCi0JMHhiZWZlMDA3YywgMHhiZWZjMDA3MCwKLQkweGMwNjExZWZhLCAweDAwMDAwMDdjLAotCTB4YmY4Y2MwN2YsIDB4ODA3MDg0NzAsCi0JMHhiZWZjMDA3ZSwgMHhiZWZlMDA3YywKLQkweGJlZmMwMDcwLCAweGMwNjExYTNhLAotCTB4MDAwMDAwN2MsIDB4YmY4Y2MwN2YsCi0JMHg4MDcwODQ3MCwgMHhiZWZjMDA3ZSwKLQkweGJlZmUwMDdjLCAweGJlZmMwMDcwLAotCTB4YzA2MTFhN2EsIDB4MDAwMDAwN2MsCi0JMHhiZjhjYzA3ZiwgMHg4MDcwODQ3MCwKLQkweGJlZmMwMDdlLCAweGI4ZjFmODAxLAotCTB4YmVmZTAwN2MsIDB4YmVmYzAwNzAsCi0JMHhjMDYxMWM3YSwgMHgwMDAwMDA3YywKLQkweGJmOGNjMDdmLCAweDgwNzA4NDcwLAotCTB4YmVmYzAwN2UsIDB4ODY3YWZmN2YsCi0JMHgwNDAwMDAwMCwgMHhiZWVmMDA4MCwKLQkweDg3NmY2ZjdhLCAweGI4ZjAyYTA1LAotCTB4ODA3MDgxNzAsIDB4OGU3MDhhNzAsCi0JMHhiOGZiMTYwNSwgMHg4MDdiODE3YiwKLQkweDhlN2I4NDdiLCAweDhlNzY4MjdiLAotCTB4YmVmNjAwZmYsIDB4MDEwMDAwMDAsCi0JMHhiZWYyMDE3NCwgMHg4MDc0NzA3NCwKLQkweDgyNzU4MDc1LCAweGJlZmMwMDgwLAotCTB4YmY4MDAwMDAsIDB4YmU4MDJiMDAsCi0JMHhiZTgyMmIwMiwgMHhiZTg0MmIwNCwKLQkweGJlODYyYjA2LCAweGJlODgyYjA4LAotCTB4YmU4YTJiMGEsIDB4YmU4YzJiMGMsCi0JMHhiZThlMmIwZSwgMHhjMDZiMDAzYSwKLQkweDAwMDAwMDAwLCAweGJmOGNjMDdmLAotCTB4YzA2YjAxM2EsIDB4MDAwMDAwMTAsCi0JMHhiZjhjYzA3ZiwgMHhjMDZiMDIzYSwKLQkweDAwMDAwMDIwLCAweGJmOGNjMDdmLAotCTB4YzA2YjAzM2EsIDB4MDAwMDAwMzAsCi0JMHhiZjhjYzA3ZiwgMHg4MDc0YzA3NCwKLQkweDgyNzU4MDc1LCAweDgwN2M5MDdjLAotCTB4YmYwYTdiN2MsIDB4YmY4NWZmZTcsCi0JMHhiZWY0MDE3MiwgMHhiZWYwMDA4MCwKLQkweGJlZmUwMGMxLCAweGJlZmYwMGMxLAotCTB4YmVlODAwODAsIDB4YmVlOTAwODAsCi0JMHhiZWY2MDBmZiwgMHgwMTAwMDAwMCwKLQkweGUwNzI0MDAwLCAweDcwMWQwMDAwLAotCTB4ZTA3MjQxMDAsIDB4NzAxZDAxMDAsCi0JMHhlMDcyNDIwMCwgMHg3MDFkMDIwMCwKLQkweGUwNzI0MzAwLCAweDcwMWQwMzAwLAotCTB4YmVmZTAwYzEsIDB4YmVmZjAwYzEsCi0JMHhiOGZiNDMwNiwgMHg4NjdiYzE3YiwKLQkweGJmODQwMDJjLCAweGJmOGEwMDAwLAotCTB4ODY3YWZmNmYsIDB4MDQwMDAwMDAsCi0JMHhiZjg0MDAyOCwgMHg4ZTdiODY3YiwKLQkweDhlN2I4MjdiLCAweGJlZjYwMDdiLAorCTB4YmVmYTAwODAsIDB4Yjk3YTAyODMsCisJMHhiOGZhMjQwNywgMHg4ZTdhOWI3YSwKKwkweDg3NmQ3YTZkLCAweGI4ZmEwM2M3LAorCTB4OGU3YTlhN2EsIDB4ODc2ZDdhNmQsCisJMHhiOGZhZjgwNywgMHg4NjdhZmY3YSwKKwkweDAwMDA3ZmZmLCAweGI5N2FmODA3LAorCTB4YmVlZTAwN2UsIDB4YmVlZjAwN2YsCisJMHhiZWZlMDE4MCwgMHhiZjkwMDAwNCwKKwkweDg3N2E4NDc4LCAweGI5N2FmODAyLAorCTB4YmY4ZTAwMDIsIDB4YmY4OGZmZmUsCisJMHhiOGZhMmEwNSwgMHg4MDdhODE3YSwKKwkweDhlN2E4YTdhLCAweGI4ZmIxNjA1LAorCTB4ODA3YjgxN2IsIDB4OGU3Yjg2N2IsCisJMHg4MDdhN2I3YSwgMHg4MDdhN2U3YSwKKwkweDgyN2I4MDdmLCAweDg2N2JmZjdiLAorCTB4MDAwMGZmZmYsIDB4YzA0YjFjM2QsCisJMHgwMDAwMDA1MCwgMHhiZjhjYzA3ZiwKKwkweGMwNGIxZDNkLCAweDAwMDAwMDYwLAorCTB4YmY4Y2MwN2YsIDB4YzA0MzFlN2QsCisJMHgwMDAwMDA3NCwgMHhiZjhjYzA3ZiwKKwkweGJlZjQwMDdlLCAweDg2NzVmZjdmLAorCTB4MDAwMGZmZmYsIDB4ODc3NWZmNzUsCisJMHgwMDA0MDAwMCwgMHhiZWY2MDA4MCwKKwkweGJlZjcwMGZmLCAweDAwODA3ZmFjLAorCTB4ODY3YWZmN2YsIDB4MDgwMDAwMDAsCisJMHg4ZjdhODM3YSwgMHg4Nzc3N2E3NywKKwkweDg2N2FmZjdmLCAweDcwMDAwMDAwLAorCTB4OGY3YTgxN2EsIDB4ODc3NzdhNzcsCisJMHhiZWYxMDA3YywgMHhiZWYwMDA4MCwKIAkweGI4ZjAyYTA1LCAweDgwNzA4MTcwLAogCTB4OGU3MDhhNzAsIDB4YjhmYTE2MDUsCiAJMHg4MDdhODE3YSwgMHg4ZTdhODY3YSwKLQkweDgwNzA3YTcwLCAweDgwNzBmZjcwLAotCTB4MDAwMDAwODAsIDB4YmVmNjAwZmYsCi0JMHgwMTAwMDAwMCwgMHhiZWZjMDA4MCwKLQkweGQyOGMwMDAyLCAweDAwMDEwMGMxLAotCTB4ZDI4ZDAwMDMsIDB4MDAwMjA0YzEsCisJMHg4MDcwN2E3MCwgMHhiZWY2MDA4NCwKKwkweGJlZjYwMGZmLCAweDAxMDAwMDAwLAorCTB4YmVmZTAwN2MsIDB4YmVmYzAwNzAsCisJMHhjMDYxMWM3YSwgMHgwMDAwMDA3YywKKwkweGJmOGNjMDdmLCAweDgwNzA4NDcwLAorCTB4YmVmYzAwN2UsIDB4YmVmZTAwN2MsCisJMHhiZWZjMDA3MCwgMHhjMDYxMWIzYSwKKwkweDAwMDAwMDdjLCAweGJmOGNjMDdmLAorCTB4ODA3MDg0NzAsIDB4YmVmYzAwN2UsCisJMHhiZWZlMDA3YywgMHhiZWZjMDA3MCwKKwkweGMwNjExYjdhLCAweDAwMDAwMDdjLAorCTB4YmY4Y2MwN2YsIDB4ODA3MDg0NzAsCisJMHhiZWZjMDA3ZSwgMHhiZWZlMDA3YywKKwkweGJlZmMwMDcwLCAweGMwNjExYmJhLAorCTB4MDAwMDAwN2MsIDB4YmY4Y2MwN2YsCisJMHg4MDcwODQ3MCwgMHhiZWZjMDA3ZSwKKwkweGJlZmUwMDdjLCAweGJlZmMwMDcwLAorCTB4YzA2MTFiZmEsIDB4MDAwMDAwN2MsCisJMHhiZjhjYzA3ZiwgMHg4MDcwODQ3MCwKKwkweGJlZmMwMDdlLCAweGJlZmUwMDdjLAorCTB4YmVmYzAwNzAsIDB4YzA2MTFlM2EsCisJMHgwMDAwMDA3YywgMHhiZjhjYzA3ZiwKKwkweDgwNzA4NDcwLCAweGJlZmMwMDdlLAorCTB4YjhmYmY4MDMsIDB4YmVmZTAwN2MsCisJMHhiZWZjMDA3MCwgMHhjMDYxMWVmYSwKKwkweDAwMDAwMDdjLCAweGJmOGNjMDdmLAorCTB4ODA3MDg0NzAsIDB4YmVmYzAwN2UsCisJMHhiZWZlMDA3YywgMHhiZWZjMDA3MCwKKwkweGMwNjExYTNhLCAweDAwMDAwMDdjLAorCTB4YmY4Y2MwN2YsIDB4ODA3MDg0NzAsCisJMHhiZWZjMDA3ZSwgMHhiZWZlMDA3YywKKwkweGJlZmMwMDcwLCAweGMwNjExYTdhLAorCTB4MDAwMDAwN2MsIDB4YmY4Y2MwN2YsCisJMHg4MDcwODQ3MCwgMHhiZWZjMDA3ZSwKKwkweGI4ZjFmODAxLCAweGJlZmUwMDdjLAorCTB4YmVmYzAwNzAsIDB4YzA2MTFjN2EsCisJMHgwMDAwMDA3YywgMHhiZjhjYzA3ZiwKKwkweDgwNzA4NDcwLCAweGJlZmMwMDdlLAorCTB4ODY3YWZmN2YsIDB4MDQwMDAwMDAsCisJMHhiZWVmMDA4MCwgMHg4NzZmNmY3YSwKKwkweGI4ZjAyYTA1LCAweDgwNzA4MTcwLAorCTB4OGU3MDhhNzAsIDB4YjhmYjE2MDUsCisJMHg4MDdiODE3YiwgMHg4ZTdiODQ3YiwKKwkweDhlNzY4MjdiLCAweGJlZjYwMGZmLAorCTB4MDEwMDAwMDAsIDB4YmVmMjAxNzQsCisJMHg4MDc0NzA3NCwgMHg4Mjc1ODA3NSwKKwkweGJlZmMwMDgwLCAweGJmODAwMDAwLAorCTB4YmU4MDJiMDAsIDB4YmU4MjJiMDIsCisJMHhiZTg0MmIwNCwgMHhiZTg2MmIwNiwKKwkweGJlODgyYjA4LCAweGJlOGEyYjBhLAorCTB4YmU4YzJiMGMsIDB4YmU4ZTJiMGUsCisJMHhjMDZiMDAzYSwgMHgwMDAwMDAwMCwKKwkweGJmOGNjMDdmLCAweGMwNmIwMTNhLAorCTB4MDAwMDAwMTAsIDB4YmY4Y2MwN2YsCisJMHhjMDZiMDIzYSwgMHgwMDAwMDAyMCwKKwkweGJmOGNjMDdmLCAweGMwNmIwMzNhLAorCTB4MDAwMDAwMzAsIDB4YmY4Y2MwN2YsCisJMHg4MDc0YzA3NCwgMHg4Mjc1ODA3NSwKKwkweDgwN2M5MDdjLCAweGJmMGE3YjdjLAorCTB4YmY4NWZmZTcsIDB4YmVmNDAxNzIsCisJMHhiZWYwMDA4MCwgMHhiZWZlMDBjMSwKKwkweGJlZmYwMGMxLCAweGJlZTgwMDgwLAorCTB4YmVlOTAwODAsIDB4YmVmNjAwZmYsCisJMHgwMTAwMDAwMCwgMHg4NjdhZmY3OCwKKwkweDAwNDAwMDAwLCAweGJmODUwMDAzLAorCTB4YjhmYWY4MDMsIDB4ODk3YTdhZmYsCisJMHgxMDAwMDAwMCwgMHhiZjg1MDA0ZCwKKwkweGJlODQwMDgwLCAweGQyODkwMDAwLAorCTB4MDAwMDA5MDAsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMSwgMHgwMDAwMDkwMCwKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAyLAorCTB4MDAwMDA5MDAsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMywgMHgwMDAwMDkwMCwKKwkweDgwMDQ4MTA0LCAweGMwNjkwMDNhLAorCTB4MDAwMDAwNzAsIDB4YmY4Y2MwN2YsCisJMHg4MDcwOTA3MCwgMHhiZjA2YzAwNCwKKwkweGJmODRmZmVlLCAweGJlODQwMDgwLAorCTB4ZDI4OTAwMDAsIDB4MDAwMDA5MDEsCisJMHg4MDA0ODEwNCwgMHhkMjg5MDAwMSwKKwkweDAwMDAwOTAxLCAweDgwMDQ4MTA0LAorCTB4ZDI4OTAwMDIsIDB4MDAwMDA5MDEsCisJMHg4MDA0ODEwNCwgMHhkMjg5MDAwMywKKwkweDAwMDAwOTAxLCAweDgwMDQ4MTA0LAorCTB4YzA2OTAwM2EsIDB4MDAwMDAwNzAsCisJMHhiZjhjYzA3ZiwgMHg4MDcwOTA3MCwKKwkweGJmMDZjMDA0LCAweGJmODRmZmVlLAorCTB4YmU4NDAwODAsIDB4ZDI4OTAwMDAsCisJMHgwMDAwMDkwMiwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAxLCAweDAwMDAwOTAyLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDIsCisJMHgwMDAwMDkwMiwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAzLCAweDAwMDAwOTAyLAorCTB4ODAwNDgxMDQsIDB4YzA2OTAwM2EsCisJMHgwMDAwMDA3MCwgMHhiZjhjYzA3ZiwKKwkweDgwNzA5MDcwLCAweGJmMDZjMDA0LAorCTB4YmY4NGZmZWUsIDB4YmU4NDAwODAsCisJMHhkMjg5MDAwMCwgMHgwMDAwMDkwMywKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAxLAorCTB4MDAwMDA5MDMsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMiwgMHgwMDAwMDkwMywKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAzLAorCTB4MDAwMDA5MDMsIDB4ODAwNDgxMDQsCisJMHhjMDY5MDAzYSwgMHgwMDAwMDA3MCwKKwkweGJmOGNjMDdmLCAweDgwNzA5MDcwLAorCTB4YmYwNmMwMDQsIDB4YmY4NGZmZWUsCisJMHhiZjgyMDAwOCwgMHhlMDcyNDAwMCwKKwkweDcwMWQwMDAwLCAweGUwNzI0MTAwLAorCTB4NzAxZDAxMDAsIDB4ZTA3MjQyMDAsCisJMHg3MDFkMDIwMCwgMHhlMDcyNDMwMCwKKwkweDcwMWQwMzAwLCAweGJlZmUwMGMxLAorCTB4YmVmZjAwYzEsIDB4YjhmYjQzMDYsCisJMHg4NjdiYzE3YiwgMHhiZjg0MDA2MywKKwkweGJmOGEwMDAwLCAweDg2N2FmZjZmLAorCTB4MDQwMDAwMDAsIDB4YmY4NDAwNWYsCisJMHg4ZTdiODY3YiwgMHg4ZTdiODI3YiwKKwkweGJlZjYwMDdiLCAweGI4ZjAyYTA1LAorCTB4ODA3MDgxNzAsIDB4OGU3MDhhNzAsCisJMHhiOGZhMTYwNSwgMHg4MDdhODE3YSwKKwkweDhlN2E4NjdhLCAweDgwNzA3YTcwLAorCTB4ODA3MGZmNzAsIDB4MDAwMDAwODAsCisJMHhiZWY2MDBmZiwgMHgwMTAwMDAwMCwKKwkweGJlZmMwMDgwLCAweGQyOGMwMDAyLAorCTB4MDAwMTAwYzEsIDB4ZDI4ZDAwMDMsCisJMHgwMDAyMDRjMSwgMHg4NjdhZmY3OCwKKwkweDAwNDAwMDAwLCAweGJmODUwMDAzLAorCTB4YjhmYWY4MDMsIDB4ODk3YTdhZmYsCisJMHgxMDAwMDAwMCwgMHhiZjg1MDAzMCwKKwkweDI0MDQwNjgyLCAweGQ4NmU0MDAwLAorCTB4MDAwMDAwMDIsIDB4YmY4Y2MwN2YsCisJMHhiZTg0MDA4MCwgMHhkMjg5MDAwMCwKKwkweDAwMDAwOTAwLCAweDgwMDQ4MTA0LAorCTB4ZDI4OTAwMDEsIDB4MDAwMDA5MDAsCisJMHg4MDA0ODEwNCwgMHhkMjg5MDAwMiwKKwkweDAwMDAwOTAwLCAweDgwMDQ4MTA0LAorCTB4ZDI4OTAwMDMsIDB4MDAwMDA5MDAsCisJMHg4MDA0ODEwNCwgMHhjMDY5MDAzYSwKKwkweDAwMDAwMDcwLCAweGJmOGNjMDdmLAorCTB4ODA3MDkwNzAsIDB4YmYwNmMwMDQsCisJMHhiZjg0ZmZlZSwgMHhiZTg0MDA4MCwKKwkweGQyODkwMDAwLCAweDAwMDAwOTAxLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDEsCisJMHgwMDAwMDkwMSwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAyLCAweDAwMDAwOTAxLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDMsCisJMHgwMDAwMDkwMSwgMHg4MDA0ODEwNCwKKwkweGMwNjkwMDNhLCAweDAwMDAwMDcwLAorCTB4YmY4Y2MwN2YsIDB4ODA3MDkwNzAsCisJMHhiZjA2YzAwNCwgMHhiZjg0ZmZlZSwKKwkweDY4MDQwNGZmLCAweDAwMDAwMjAwLAorCTB4ZDBjOTAwNmEsIDB4MDAwMGY3MDIsCisJMHhiZjg3ZmZkMiwgMHhiZjgyMDAxNSwKIAkweGQxMDYwMDAyLCAweDAwMDExMTAzLAogCTB4N2UwNjAyZmYsIDB4MDAwMDAyMDAsCiAJMHhiZWZjMDBmZiwgMHgwMDAxMDAwMCwKQEAgLTQzOCw5ICs1MTEsNTMgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGN3c3JfdHJhcF9nZng5X2hleFtdID0gewogCTB4ODA3YjgxN2IsIDB4OGU3YjgyN2IsCiAJMHg4ZTc2ODg3YiwgMHhiZWY2MDBmZiwKIAkweDAxMDAwMDAwLCAweGJlZmMwMDg0LAotCTB4YmYwYTdiN2MsIDB4YmY4NDAwMTUsCisJMHhiZjBhN2I3YywgMHhiZjg0MDA2ZCwKIAkweGJmMTEwMTdjLCAweDgwN2JmZjdiLAotCTB4MDAwMDEwMDAsIDB4N2UwMDAzMDAsCisJMHgwMDAwMTAwMCwgMHg4NjdhZmY3OCwKKwkweDAwNDAwMDAwLCAweGJmODUwMDAzLAorCTB4YjhmYWY4MDMsIDB4ODk3YTdhZmYsCisJMHgxMDAwMDAwMCwgMHhiZjg1MDA1MSwKKwkweGJlODQwMDgwLCAweGQyODkwMDAwLAorCTB4MDAwMDA5MDAsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMSwgMHgwMDAwMDkwMCwKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAyLAorCTB4MDAwMDA5MDAsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMywgMHgwMDAwMDkwMCwKKwkweDgwMDQ4MTA0LCAweGMwNjkwMDNhLAorCTB4MDAwMDAwNzAsIDB4YmY4Y2MwN2YsCisJMHg4MDcwOTA3MCwgMHhiZjA2YzAwNCwKKwkweGJmODRmZmVlLCAweGJlODQwMDgwLAorCTB4ZDI4OTAwMDAsIDB4MDAwMDA5MDEsCisJMHg4MDA0ODEwNCwgMHhkMjg5MDAwMSwKKwkweDAwMDAwOTAxLCAweDgwMDQ4MTA0LAorCTB4ZDI4OTAwMDIsIDB4MDAwMDA5MDEsCisJMHg4MDA0ODEwNCwgMHhkMjg5MDAwMywKKwkweDAwMDAwOTAxLCAweDgwMDQ4MTA0LAorCTB4YzA2OTAwM2EsIDB4MDAwMDAwNzAsCisJMHhiZjhjYzA3ZiwgMHg4MDcwOTA3MCwKKwkweGJmMDZjMDA0LCAweGJmODRmZmVlLAorCTB4YmU4NDAwODAsIDB4ZDI4OTAwMDAsCisJMHgwMDAwMDkwMiwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAxLCAweDAwMDAwOTAyLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDIsCisJMHgwMDAwMDkwMiwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAzLCAweDAwMDAwOTAyLAorCTB4ODAwNDgxMDQsIDB4YzA2OTAwM2EsCisJMHgwMDAwMDA3MCwgMHhiZjhjYzA3ZiwKKwkweDgwNzA5MDcwLCAweGJmMDZjMDA0LAorCTB4YmY4NGZmZWUsIDB4YmU4NDAwODAsCisJMHhkMjg5MDAwMCwgMHgwMDAwMDkwMywKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAxLAorCTB4MDAwMDA5MDMsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMiwgMHgwMDAwMDkwMywKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAzLAorCTB4MDAwMDA5MDMsIDB4ODAwNDgxMDQsCisJMHhjMDY5MDAzYSwgMHgwMDAwMDA3MCwKKwkweGJmOGNjMDdmLCAweDgwNzA5MDcwLAorCTB4YmYwNmMwMDQsIDB4YmY4NGZmZWUsCisJMHg4MDdjODQ3YywgMHhiZjBhN2I3YywKKwkweGJmODVmZmIxLCAweGJmOWMwMDAwLAorCTB4YmY4MjAwMTIsIDB4N2UwMDAzMDAsCiAJMHg3ZTAyMDMwMSwgMHg3ZTA0MDMwMiwKIAkweDdlMDYwMzAzLCAweGUwNzI0MDAwLAogCTB4NzAxZDAwMDAsIDB4ZTA3MjQxMDAsCkBAIC01NjMsMjQgKzY4MCw0NyBAQCBzdGF0aWMgY29uc3QgdWludDMyX3QgY3dzcl90cmFwX2dmeDlfaGV4W10gPSB7CiB9OwogCiBzdGF0aWMgY29uc3QgdWludDMyX3QgY3dzcl90cmFwX2dmeDEwX2hleFtdID0gewotCTB4YmY4MjAwMDEsIDB4YmY4MjAxMmUsCi0JMHhiMDgwNDAwNCwgMHhiOTcwZjgwMiwKLQkweDhhNzA4NjcwLCAweGI5NzFmODAzLAotCTB4ODc3MWZmNzEsIDB4MDAwMDA0MDAsCi0JMHhiZjg1MDAwOCwgMHhiOTcxZjgwMywKLQkweDg3NzFmZjcxLCAweDAwMDAwMWZmLAotCTB4YmY4NTAwMDEsIDB4ODA2Yzg0NmMsCisJMHhiZjgyMDAwMSwgMHhiZjgyMDFjMSwKKwkweGIwODA0MDA0LCAweGI5NzhmODAyLAorCTB4OGE3ODg2NzgsIDB4Yjk3MWY4MDMsCisJMHg4NzZlZmY3MSwgMHgwMDAwMDQwMCwKKwkweGJmODUwMDMzLCAweDg3NmVmZjcxLAorCTB4MDAwMDAxMDAsIDB4YmY4NDAwMDIsCisJMHg4ODc4ZmY3OCwgMHgwMDAwMjAwMCwKKwkweDhhNzdmZjc3LCAweGZmMDAwMDAwLAorCTB4Yjk2ZWY4MDcsIDB4ODc2ZmZmNmUsCisJMHgwMjAwMDAwMCwgMHg4ZjZmODY2ZiwKKwkweDg4Nzc2Zjc3LCAweDg3NmZmZjZlLAorCTB4MDAzZjgwMDAsIDB4OGY2Zjg5NmYsCisJMHg4ODc3NmY3NywgMHg4YTZlZmY2ZSwKKwkweDAyM2Y4MDAwLCAweGI5ZWVmODA3LAorCTB4Yjk3YWY4MTIsIDB4Yjk3YmY4MTMsCisJMHg4ZmZhODg3YSwgMHhmNDA1MWJiZCwKKwkweGZhMDAwMDAwLCAweGJmOGNjMDdmLAorCTB4ZjQwNTFlYmQsIDB4ZmEwMDAwMDgsCisJMHhiZjhjYzA3ZiwgMHg4N2VlNmU2ZSwKKwkweGJmODQwMDAxLCAweGJlODAyMDZlLAorCTB4Yjk3MWY4MDMsIDB4ODc3MWZmNzEsCisJMHgwMDAwMDFmZiwgMHhiZjg1MDAwMiwKKwkweDgwNmM4NDZjLCAweDgyNmQ4MDZkLAogCTB4ODc2ZGZmNmQsIDB4MDAwMGZmZmYsCi0JMHhiZTgwMjI2YywgMHhiOTcxZjgwMywKLQkweDg3NzFmZjcxLCAweDAwMDAwMTAwLAotCTB4YmY4NDAwMDYsIDB4YmVmNjAzODAsCi0JMHhiOWY2MDIwMywgMHg4NzZkZmY2ZCwKLQkweDAwMDBmZmZmLCAweDgwZWM4ODZjLAotCTB4ODJlZDgwNmQsIDB4YmVmNjAzODAsCi0JMHhiOWY2MDI4MywgMHhiOTczZjgxNiwKLQkweGI5NzYyYzA3LCAweDhmNzY5Yzc2LAotCTB4ODg2ZDc2NmQsIDB4Yjk3NjAzYzcsCi0JMHg4Zjc2OWI3NiwgMHg4ODZkNzY2ZCwKKwkweDkwNmU4OTc3LCAweDg3NmZmZjZlLAorCTB4MDAzZjgwMDAsIDB4OTA2ZTg2NzcsCisJMHg4NzZlZmY2ZSwgMHgwMjAwMDAwMCwKKwkweDg4NmU2ZjZlLCAweGI5ZWVmODA3LAorCTB4ODdmZTdlN2UsIDB4ODdlYTZhNmEsCisJMHhiOWY4ZjgwMiwgMHhiZTgwMjI2YywKKwkweGI5NzFmODAzLCAweDg3NzFmZjcxLAorCTB4MDAwMDAxMDAsIDB4YmY4NDAwMDYsCisJMHhiZWY2MDM4MCwgMHhiOWY2MDIwMywKKwkweDg3NmRmZjZkLCAweDAwMDBmZmZmLAorCTB4ODBlYzg4NmMsIDB4ODJlZDgwNmQsCisJMHhiZWY2MDM4MCwgMHhiOWY2MDI4MywKKwkweGI5NzJmODE2LCAweGI5NzYyYzA3LAorCTB4OGY3NjlhNzYsIDB4ODg2ZDc2NmQsCisJMHhiOTc2MDNjNywgMHg4Zjc2OTk3NiwKKwkweDg4NmQ3NjZkLCAweGI5NzYwNjQ3LAorCTB4OGY3Njk4NzYsIDB4ODg2ZDc2NmQsCiAJMHhiOTc2ZjgwNywgMHg4Nzc2ZmY3NiwKIAkweDAwMDA3ZmZmLCAweGI5ZjZmODA3LAogCTB4YmVlZTAzN2UsIDB4YmVlZjAzN2YsCkBAIC01ODksMjc0ICs3MjksODMzIEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBjd3NyX3RyYXBfZ2Z4MTBfaGV4W10gPSB7CiAJMHhiZWY0MDM3ZSwgMHg4Nzc1ZmY3ZiwKIAkweDAwMDBmZmZmLCAweDg4NzVmZjc1LAogCTB4MDAwNDAwMDAsIDB4YmVmNjAzODAsCi0JMHhiZWY3MDNmZiwgMHgwMDgwN2ZhYywKKwkweGJlZjcwM2ZmLCAweDEwODA3ZmFjLAogCTB4ODc3NmZmN2YsIDB4MDgwMDAwMDAsCiAJMHg5MDc2ODM3NiwgMHg4ODc3NzY3NywKIAkweDg3NzZmZjdmLCAweDcwMDAwMDAwLAogCTB4OTA3NjgxNzYsIDB4ODg3Nzc2NzcsCiAJMHhiZWZiMDM3YywgMHhiZWZhMDM4MCwKLQkweGI5NzIwMmRjLCAweDg4NzI3MjdmLAotCTB4YmVmZTAzYzEsIDB4ODc3YzgxNzIsCi0JMHhiZjA2ODE3YywgMHhiZjg1MDAwMiwKLQkweGJlZmYwMzgwLCAweGJmODIwMDAxLAotCTB4YmVmZjAzYzEsIDB4Yjk3MTJhMDUsCi0JMHg4MDcxODE3MSwgMHg4ZjcxODI3MSwKLQkweDg3N2M4MTcyLCAweGJmMDY4MTdjLAotCTB4YmY4NTAwMGQsIDB4OGY3Njg3NzEsCisJMHhiOTczMDJkYywgMHg4ZjczOTk3MywKKwkweDg4NzM3MzdmLCAweGI5N2EyYTA1LAorCTB4ODA3YTgxN2EsIDB4OTA3Yzk5NzMsCisJMHg4NzdjODE3YywgMHhiZjA2ODE3YywKKwkweGJmODUwMDAyLCAweDhmN2E4OTdhLAorCTB4YmY4MjAwMDEsIDB4OGY3YThhN2EsCisJMHhiOTc2MWUwNiwgMHg4Zjc2OGE3NiwKKwkweDgwN2E3NjdhLCAweDgwN2FmZjdhLAorCTB4MDAwMDAyMDAsIDB4YmVmNjAzZmYsCisJMHgwMTAwMDAwMCwgMHhiZWZlMDM3YywKKwkweGJlZmMwMzdhLCAweGY0NjExZWZhLAorCTB4ZjgwMDAwMDAsIDB4ODA3YTg0N2EsCisJMHhiZWZjMDM3ZSwgMHhiZWZlMDM3YywKKwkweGJlZmMwMzdhLCAweGY0NjExYjNhLAorCTB4ZjgwMDAwMDAsIDB4ODA3YTg0N2EsCisJMHhiZWZjMDM3ZSwgMHhiZWZlMDM3YywKKwkweGJlZmMwMzdhLCAweGY0NjExYjdhLAorCTB4ZjgwMDAwMDAsIDB4ODA3YTg0N2EsCisJMHhiZWZjMDM3ZSwgMHhiZWZlMDM3YywKKwkweGJlZmMwMzdhLCAweGY0NjExYmJhLAorCTB4ZjgwMDAwMDAsIDB4ODA3YTg0N2EsCisJMHhiZWZjMDM3ZSwgMHhiZWZlMDM3YywKKwkweGJlZmMwMzdhLCAweGY0NjExYmZhLAorCTB4ZjgwMDAwMDAsIDB4ODA3YTg0N2EsCisJMHhiZWZjMDM3ZSwgMHhiZWZlMDM3YywKKwkweGJlZmMwMzdhLCAweGY0NjExZTNhLAorCTB4ZjgwMDAwMDAsIDB4ODA3YTg0N2EsCisJMHhiZWZjMDM3ZSwgMHhiOTcxZjgwMywKKwkweGJlZmUwMzdjLCAweGJlZmMwMzdhLAorCTB4ZjQ2MTFjN2EsIDB4ZjgwMDAwMDAsCisJMHg4MDdhODQ3YSwgMHhiZWZjMDM3ZSwKKwkweGJlZmUwMzdjLCAweGJlZmMwMzdhLAorCTB4ZjQ2MTFjYmEsIDB4ZjgwMDAwMDAsCisJMHg4MDdhODQ3YSwgMHhiZWZjMDM3ZSwKKwkweGI5N2JmODAxLCAweGJlZmUwMzdjLAorCTB4YmVmYzAzN2EsIDB4ZjQ2MTFlZmEsCisJMHhmODAwMDAwMCwgMHg4MDdhODQ3YSwKKwkweGJlZmMwMzdlLCAweGI5N2JmODE0LAorCTB4YmVmZTAzN2MsIDB4YmVmYzAzN2EsCisJMHhmNDYxMWVmYSwgMHhmODAwMDAwMCwKKwkweDgwN2E4NDdhLCAweGJlZmMwMzdlLAorCTB4Yjk3YmY4MTUsIDB4YmVmZTAzN2MsCisJMHhiZWZjMDM3YSwgMHhmNDYxMWVmYSwKKwkweGY4MDAwMDAwLCAweDgwN2E4NDdhLAorCTB4YmVmYzAzN2UsIDB4ODc3NmZmN2YsCisJMHgwNDAwMDAwMCwgMHhiZWVmMDM4MCwKKwkweDg4NmY2Zjc2LCAweGI5N2EyYTA1LAorCTB4ODA3YTgxN2EsIDB4OTA3Yzk5NzMsCisJMHg4NzdjODE3YywgMHhiZjA2ODE3YywKKwkweGJmODUwMDAyLCAweDhmN2E4OTdhLAorCTB4YmY4MjAwMDEsIDB4OGY3YThhN2EsCisJMHhiOTc2MWUwNiwgMHg4Zjc2OGE3NiwKKwkweDgwN2E3NjdhLCAweGJlZjYwM2ZmLAorCTB4MDEwMDAwMDAsIDB4YmVmMjAzNzQsCisJMHg4MDc0N2E3NCwgMHg4Mjc1ODA3NSwKKwkweGJlZmMwMzgwLCAweGJmODAwMDAwLAorCTB4YmU4MDJmMDAsIDB4YmU4MjJmMDIsCisJMHhiZTg0MmYwNCwgMHhiZTg2MmYwNiwKKwkweGJlODgyZjA4LCAweGJlOGEyZjBhLAorCTB4YmU4YzJmMGMsIDB4YmU4ZTJmMGUsCisJMHhmNDY5MDAzYSwgMHhmYTAwMDAwMCwKKwkweGY0NjkwMTNhLCAweGZhMDAwMDEwLAorCTB4ZjQ2OTAyM2EsIDB4ZmEwMDAwMjAsCisJMHhmNDY5MDMzYSwgMHhmYTAwMDAzMCwKKwkweDgwNzRjMDc0LCAweDgyNzU4MDc1LAorCTB4ODA3YzkwN2MsIDB4YmYwYWZmN2MsCisJMHgwMDAwMDA2MCwgMHhiZjg1ZmZlYSwKKwkweGJlODAyZjAwLCAweGJlODIyZjAyLAorCTB4YmU4NDJmMDQsIDB4YmU4NjJmMDYsCisJMHhiZTg4MmYwOCwgMHhiZThhMmYwYSwKKwkweGY0NjkwMDNhLCAweGZhMDAwMDAwLAorCTB4ZjQ2OTAxM2EsIDB4ZmEwMDAwMTAsCisJMHhmNDY5MDIzYSwgMHhmYTAwMDAyMCwKKwkweDgwNzRiMDc0LCAweDgyNzU4MDc1LAorCTB4YmVmNDAzNzIsIDB4YmVmYTAzODAsCisJMHhiZWZlMDNjMSwgMHg5MDdjOTk3MywKKwkweDg3N2M4MTdjLCAweGJmMDY4MTdjLAorCTB4YmY4NTAwMDIsIDB4YmVmZjAzODAsCisJMHhiZjgyMDAwMiwgMHhiZWZmMDNjMSwKKwkweGJmODIwMDBiLCAweGJlZjYwM2ZmLAorCTB4MDEwMDAwMDAsIDB4ZTA3MDQwMDAsCisJMHg3YTVkMDAwMCwgMHhlMDcwNDA4MCwKKwkweDdhNWQwMTAwLCAweGUwNzA0MTAwLAorCTB4N2E1ZDAyMDAsIDB4ZTA3MDQxODAsCisJMHg3YTVkMDMwMCwgMHhiZjgyMDAwYSwKIAkweGJlZjYwM2ZmLCAweDAxMDAwMDAwLAotCTB4YmVmYzAzODAsIDB4N2UwMDg3MDAsCiAJMHhlMDcwNDAwMCwgMHg3YTVkMDAwMCwKLQkweDgwN2M4MTdjLCAweDgwN2FmZjdhLAotCTB4MDAwMDAwODAsIDB4YmYwYTcxN2MsCi0JMHhiZjg1ZmZmOCwgMHhiZjgyMDAxYiwKLQkweDhmNzY4ODcxLCAweGJlZjYwM2ZmLAotCTB4MDEwMDAwMDAsIDB4YmVmYzAzODAsCi0JMHg3ZTAwODcwMCwgMHhlMDcwNDAwMCwKLQkweDdhNWQwMDAwLCAweDgwN2M4MTdjLAotCTB4ODA3YWZmN2EsIDB4MDAwMDAxMDAsCi0JMHhiZjBhNzE3YywgMHhiZjg1ZmZmOCwKLQkweGI5NzExZTA2LCAweDg3NzFjMTcxLAotCTB4YmY4NDAwMGMsIDB4OGY3MTgzNzEsCi0JMHg4MDcxN2M3MSwgMHhiZWZlMDNjMSwKLQkweGJlZmYwMzgwLCAweDdlMDA4NzAwLAotCTB4ZTA3MDQwMDAsIDB4N2E1ZDAwMDAsCi0JMHg4MDdjODE3YywgMHg4MDdhZmY3YSwKLQkweDAwMDAwMDgwLCAweGJmMGE3MTdjLAotCTB4YmY4NWZmZjgsIDB4YmY4YTAwMDAsCi0JMHg4Nzc2ZmY3MiwgMHgwNDAwMDAwMCwKLQkweGJmODQwMDJiLCAweGJlZmUwM2MxLAotCTB4ODc3YzgxNzIsIDB4YmYwNjgxN2MsCisJMHhlMDcwNDEwMCwgMHg3YTVkMDEwMCwKKwkweGUwNzA0MjAwLCAweDdhNWQwMjAwLAorCTB4ZTA3MDQzMDAsIDB4N2E1ZDAzMDAsCisJMHhiZWZlMDNjMSwgMHg5MDdjOTk3MywKKwkweDg3N2M4MTdjLCAweGJmMDY4MTdjLAogCTB4YmY4NTAwMDIsIDB4YmVmZjAzODAsCiAJMHhiZjgyMDAwMSwgMHhiZWZmMDNjMSwKIAkweGI5NzE0MzA2LCAweDg3NzFjMTcxLAotCTB4YmY4NDAwMjEsIDB4OGY3MTg2NzEsCisJMHhiZjg0MDA0NiwgMHhiZjhhMDAwMCwKKwkweDg3NzZmZjZmLCAweDA0MDAwMDAwLAorCTB4YmY4NDAwNDIsIDB4OGY3MTg2NzEsCiAJMHg4ZjcxODI3MSwgMHhiZWY2MDM3MSwKKwkweGI5N2EyYTA1LCAweDgwN2E4MTdhLAorCTB4OTA3Yzk5NzMsIDB4ODc3YzgxN2MsCisJMHhiZjA2ODE3YywgMHhiZjg1MDAwMiwKKwkweDhmN2E4OTdhLCAweGJmODIwMDAxLAorCTB4OGY3YThhN2EsIDB4Yjk3NjFlMDYsCisJMHg4Zjc2OGE3NiwgMHg4MDdhNzY3YSwKKwkweDgwN2FmZjdhLCAweDAwMDAwMjAwLAorCTB4ODA3YWZmN2EsIDB4MDAwMDAwODAsCiAJMHhiZWY2MDNmZiwgMHgwMTAwMDAwMCwKIAkweGQ3NjUwMDAwLCAweDAwMDEwMGMxLAogCTB4ZDc2NjAwMDAsIDB4MDAwMjAwYzEsCi0JMHgxNjAwMDA4NCwgMHg4NzdjODE3MiwKLQkweGJmMDY4MTdjLCAweGJlZmMwMzgwLAotCTB4YmY4NTAwMGEsIDB4ODA3Y2ZmN2MsCi0JMHgwMDAwMDA4MCwgMHg4MDdhZmY3YSwKLQkweDAwMDAwMDgwLCAweGQ1MjUwMDAwLAotCTB4MDAwMWZmMDAsIDB4MDAwMDAwODAsCi0JMHhiZjBhNzE3YywgMHhiZjg1ZmZmNywKLQkweGJmODIwMDA5LCAweDgwN2NmZjdjLAotCTB4MDAwMDAxMDAsIDB4ODA3YWZmN2EsCi0JMHgwMDAwMDEwMCwgMHhkNTI1MDAwMCwKLQkweDAwMDFmZjAwLCAweDAwMDAwMTAwLAotCTB4YmYwYTcxN2MsIDB4YmY4NWZmZjcsCi0JMHg4NzdjODE3MiwgMHhiZjA2ODE3YywKLQkweGJmODUwMDAzLCAweDhmNzY4N2ZmLAotCTB4MDAwMDAwNmEsIDB4YmY4MjAwMDIsCi0JMHg4Zjc2ODhmZiwgMHgwMDAwMDA2YSwKKwkweDE2MDAwMDg0LCAweDkwN2M5OTczLAorCTB4ODc3YzgxN2MsIDB4YmYwNjgxN2MsCisJMHhiZWZjMDM4MCwgMHhiZjg1MDAxMiwKKwkweGJlODMwM2ZmLCAweDAwMDAwMDgwLAorCTB4YmY4MDAwMDAsIDB4YmY4MDAwMDAsCisJMHhiZjgwMDAwMCwgMHhkOGQ4MDAwMCwKKwkweDAxMDAwMDAwLCAweGJmOGMwMDAwLAorCTB4ZTA3MDQwMDAsIDB4N2E1ZDAxMDAsCisJMHg4MDdjMDM3YywgMHg4MDdhMDM3YSwKKwkweGQ1MjUwMDAwLCAweDAwMDFmZjAwLAorCTB4MDAwMDAwODAsIDB4YmYwYTcxN2MsCisJMHhiZjg1ZmZmNCwgMHhiZjgyMDAxMSwKKwkweGJlODMwM2ZmLCAweDAwMDAwMTAwLAorCTB4YmY4MDAwMDAsIDB4YmY4MDAwMDAsCisJMHhiZjgwMDAwMCwgMHhkOGQ4MDAwMCwKKwkweDAxMDAwMDAwLCAweGJmOGMwMDAwLAorCTB4ZTA3MDQwMDAsIDB4N2E1ZDAxMDAsCisJMHg4MDdjMDM3YywgMHg4MDdhMDM3YSwKKwkweGQ1MjUwMDAwLCAweDAwMDFmZjAwLAorCTB4MDAwMDAxMDAsIDB4YmYwYTcxN2MsCisJMHhiZjg1ZmZmNCwgMHhiZWZlMDNjMSwKKwkweDkwN2M5OTczLCAweDg3N2M4MTdjLAorCTB4YmYwNjgxN2MsIDB4YmY4NTAwMDQsCisJMHhiZWZhMDNmZiwgMHgwMDAwMDIwMCwKKwkweGJlZmYwMzgwLCAweGJmODIwMDAzLAorCTB4YmVmYTAzZmYsIDB4MDAwMDA0MDAsCisJMHhiZWZmMDNjMSwgMHhiOTcxMmEwNSwKKwkweDgwNzE4MTcxLCAweDhmNzE4MjcxLAorCTB4OTA3Yzk5NzMsIDB4ODc3YzgxN2MsCisJMHhiZjA2ODE3YywgMHhiZjg1MDAxNywKIAkweGJlZjYwM2ZmLCAweDAxMDAwMDAwLAotCTB4ODc3YzgxNzIsIDB4YmYwNjgxN2MsCi0JMHhiZWZjMDM4MCwgMHhiZjgwMDAwMCwKLQkweGJmODUwMDBiLCAweGJlODAyZTAwLAotCTB4N2UwMDAyMDAsIDB4ZTA3MDQwMDAsCi0JMHg3YTVkMDAwMCwgMHg4MDdhZmY3YSwKLQkweDAwMDAwMDgwLCAweDgwN2M4MTdjLAotCTB4YmYwYWZmN2MsIDB4MDAwMDAwNmEsCi0JMHhiZjg1ZmZmNiwgMHhiZjgyMDAwYSwKLQkweGJlODAyZTAwLCAweDdlMDAwMjAwLAorCTB4YmVmYzAzODQsIDB4YmYwYTcxN2MsCisJMHhiZjg0MDAzNywgMHg3ZTAwODcwMCwKKwkweDdlMDI4NzAxLCAweDdlMDQ4NzAyLAorCTB4N2UwNjg3MDMsIDB4ZTA3MDQwMDAsCisJMHg3YTVkMDAwMCwgMHhlMDcwNDA4MCwKKwkweDdhNWQwMTAwLCAweGUwNzA0MTAwLAorCTB4N2E1ZDAyMDAsIDB4ZTA3MDQxODAsCisJMHg3YTVkMDMwMCwgMHg4MDdjODQ3YywKKwkweDgwN2FmZjdhLCAweDAwMDAwMjAwLAorCTB4YmYwYTcxN2MsIDB4YmY4NWZmZWYsCisJMHhiZjgyMDAyNSwgMHhiZWY2MDNmZiwKKwkweDAxMDAwMDAwLCAweGJlZmMwMzg0LAorCTB4YmYwYTcxN2MsIDB4YmY4NDAwMjAsCisJMHg3ZTAwODcwMCwgMHg3ZTAyODcwMSwKKwkweDdlMDQ4NzAyLCAweDdlMDY4NzAzLAogCTB4ZTA3MDQwMDAsIDB4N2E1ZDAwMDAsCi0JMHg4MDdhZmY3YSwgMHgwMDAwMDEwMCwKLQkweDgwN2M4MTdjLCAweGJmMGFmZjdjLAotCTB4MDAwMDAwNmEsIDB4YmY4NWZmZjYsCi0JMHhiZWY2MDM4NCwgMHhiZWY2MDNmZiwKLQkweDAxMDAwMDAwLCAweDg3N2M4MTcyLAotCTB4YmYwNjgxN2MsIDB4YmY4NTAwMzAsCi0JMHg3ZTAwMDI3YiwgMHhlMDcwNDAwMCwKLQkweDdhNWQwMDAwLCAweDgwN2FmZjdhLAotCTB4MDAwMDAwODAsIDB4N2UwMDAyNmMsCi0JMHhlMDcwNDAwMCwgMHg3YTVkMDAwMCwKKwkweGUwNzA0MTAwLCAweDdhNWQwMTAwLAorCTB4ZTA3MDQyMDAsIDB4N2E1ZDAyMDAsCisJMHhlMDcwNDMwMCwgMHg3YTVkMDMwMCwKKwkweDgwN2M4NDdjLCAweDgwN2FmZjdhLAorCTB4MDAwMDA0MDAsIDB4YmYwYTcxN2MsCisJMHhiZjg1ZmZlZiwgMHhiOTcxMWUwNiwKKwkweDg3NzFjMTcxLCAweGJmODQwMDBjLAorCTB4OGY3MTgzNzEsIDB4ODA3MTdjNzEsCisJMHhiZWZlMDNjMSwgMHhiZWZmMDM4MCwKKwkweDdlMDA4NzAwLCAweGUwNzA0MDAwLAorCTB4N2E1ZDAwMDAsIDB4ODA3YzgxN2MsCiAJMHg4MDdhZmY3YSwgMHgwMDAwMDA4MCwKLQkweDdlMDAwMjZkLCAweGUwNzA0MDAwLAotCTB4N2E1ZDAwMDAsIDB4ODA3YWZmN2EsCi0JMHgwMDAwMDA4MCwgMHg3ZTAwMDI2ZSwKLQkweGUwNzA0MDAwLCAweDdhNWQwMDAwLAotCTB4ODA3YWZmN2EsIDB4MDAwMDAwODAsCi0JMHg3ZTAwMDI2ZiwgMHhlMDcwNDAwMCwKLQkweDdhNWQwMDAwLCAweDgwN2FmZjdhLAotCTB4MDAwMDAwODAsIDB4N2UwMDAyNzAsCi0JMHhlMDcwNDAwMCwgMHg3YTVkMDAwMCwKLQkweDgwN2FmZjdhLCAweDAwMDAwMDgwLAotCTB4Yjk3MWY4MDMsIDB4N2UwMDAyNzEsCi0JMHhlMDcwNDAwMCwgMHg3YTVkMDAwMCwKLQkweDgwN2FmZjdhLCAweDAwMDAwMDgwLAotCTB4N2UwMDAyNzMsIDB4ZTA3MDQwMDAsCi0JMHg3YTVkMDAwMCwgMHg4MDdhZmY3YSwKLQkweDAwMDAwMDgwLCAweGI5N2JmODAxLAotCTB4N2UwMDAyN2IsIDB4ZTA3MDQwMDAsCi0JMHg3YTVkMDAwMCwgMHg4MDdhZmY3YSwKLQkweDAwMDAwMDgwLCAweGJmODIwMDJmLAotCTB4N2UwMDAyN2IsIDB4ZTA3MDQwMDAsCi0JMHg3YTVkMDAwMCwgMHg4MDdhZmY3YSwKLQkweDAwMDAwMTAwLCAweDdlMDAwMjZjLAotCTB4ZTA3MDQwMDAsIDB4N2E1ZDAwMDAsCi0JMHg4MDdhZmY3YSwgMHgwMDAwMDEwMCwKLQkweDdlMDAwMjZkLCAweGUwNzA0MDAwLAotCTB4N2E1ZDAwMDAsIDB4ODA3YWZmN2EsCi0JMHgwMDAwMDEwMCwgMHg3ZTAwMDI2ZSwKLQkweGUwNzA0MDAwLCAweDdhNWQwMDAwLAotCTB4ODA3YWZmN2EsIDB4MDAwMDAxMDAsCi0JMHg3ZTAwMDI2ZiwgMHhlMDcwNDAwMCwKLQkweDdhNWQwMDAwLCAweDgwN2FmZjdhLAotCTB4MDAwMDAxMDAsIDB4N2UwMDAyNzAsCi0JMHhlMDcwNDAwMCwgMHg3YTVkMDAwMCwKLQkweDgwN2FmZjdhLCAweDAwMDAwMTAwLAotCTB4Yjk3MWY4MDMsIDB4N2UwMDAyNzEsCi0JMHhlMDcwNDAwMCwgMHg3YTVkMDAwMCwKLQkweDgwN2FmZjdhLCAweDAwMDAwMTAwLAotCTB4N2UwMDAyNzMsIDB4ZTA3MDQwMDAsCi0JMHg3YTVkMDAwMCwgMHg4MDdhZmY3YSwKLQkweDAwMDAwMTAwLCAweGI5N2JmODAxLAotCTB4N2UwMDAyN2IsIDB4ZTA3MDQwMDAsCi0JMHg3YTVkMDAwMCwgMHg4MDdhZmY3YSwKLQkweDAwMDAwMTAwLCAweGJmODIwMTE5LAotCTB4YmVmNDAzN2UsIDB4ODc3NWZmN2YsCi0JMHgwMDAwZmZmZiwgMHg4ODc1ZmY3NSwKLQkweDAwMDQwMDAwLCAweGJlZjYwMzgwLAotCTB4YmVmNzAzZmYsIDB4MDA4MDdmYWMsCi0JMHg4NzcyZmY3ZiwgMHgwODAwMDAwMCwKLQkweDkwNzI4MzcyLCAweDg4Nzc3Mjc3LAotCTB4ODc3MmZmN2YsIDB4NzAwMDAwMDAsCi0JMHg5MDcyODE3MiwgMHg4ODc3NzI3NywKLQkweGI5NzkwMmRjLCAweDg4Nzk3OTdmLAotCTB4YmVmODAzODAsIDB4YmVmZTAzYzEsCi0JMHg4NzdjODE3OSwgMHhiZjA2ODE3YywKKwkweGJmMGE3MTdjLCAweGJmODVmZmY4LAorCTB4YmY4MjAxNDEsIDB4YmVmNDAzN2UsCisJMHg4Nzc1ZmY3ZiwgMHgwMDAwZmZmZiwKKwkweDg4NzVmZjc1LCAweDAwMDQwMDAwLAorCTB4YmVmNjAzODAsIDB4YmVmNzAzZmYsCisJMHgxMDgwN2ZhYywgMHg4NzcyZmY3ZiwKKwkweDA4MDAwMDAwLCAweDkwNzI4MzcyLAorCTB4ODg3NzcyNzcsIDB4ODc3MmZmN2YsCisJMHg3MDAwMDAwMCwgMHg5MDcyODE3MiwKKwkweDg4Nzc3Mjc3LCAweGI5NzMwMmRjLAorCTB4OGY3Mzk5NzMsIDB4ODg3MzczN2YsCisJMHg4NzcyZmY3ZiwgMHgwNDAwMDAwMCwKKwkweGJmODQwMDM2LCAweGJlZmUwM2MxLAorCTB4OTA3Yzk5NzMsIDB4ODc3YzgxN2MsCisJMHhiZjA2ODE3YywgMHhiZjg1MDAwMiwKKwkweGJlZmYwMzgwLCAweGJmODIwMDAxLAorCTB4YmVmZjAzYzEsIDB4Yjk2ZjQzMDYsCisJMHg4NzZmYzE2ZiwgMHhiZjg0MDAyYiwKKwkweDhmNmY4NjZmLCAweDhmNmY4MjZmLAorCTB4YmVmNjAzNmYsIDB4Yjk3ODJhMDUsCisJMHg4MDc4ODE3OCwgMHg5MDdjOTk3MywKKwkweDg3N2M4MTdjLCAweGJmMDY4MTdjLAorCTB4YmY4NTAwMDIsIDB4OGY3ODg5NzgsCisJMHhiZjgyMDAwMSwgMHg4Zjc4OGE3OCwKKwkweGI5NzIxZTA2LCAweDhmNzI4YTcyLAorCTB4ODA3ODcyNzgsIDB4ODA3OGZmNzgsCisJMHgwMDAwMDIwMCwgMHg4MDc4ZmY3OCwKKwkweDAwMDAwMDgwLCAweGJlZjYwM2ZmLAorCTB4MDEwMDAwMDAsIDB4OTA3Yzk5NzMsCisJMHg4NzdjODE3YywgMHhiZjA2ODE3YywKKwkweGJlZmMwMzgwLCAweGJmODUwMDA5LAorCTB4ZTAzMTAwMDAsIDB4NzgxZDAwMDAsCisJMHg4MDdjZmY3YywgMHgwMDAwMDA4MCwKKwkweDgwNzhmZjc4LCAweDAwMDAwMDgwLAorCTB4YmYwYTZmN2MsIDB4YmY4NWZmZjgsCisJMHhiZjgyMDAwOCwgMHhlMDMxMDAwMCwKKwkweDc4MWQwMDAwLCAweDgwN2NmZjdjLAorCTB4MDAwMDAxMDAsIDB4ODA3OGZmNzgsCisJMHgwMDAwMDEwMCwgMHhiZjBhNmY3YywKKwkweGJmODVmZmY4LCAweGJlZjgwMzgwLAorCTB4YmVmZTAzYzEsIDB4OTA3Yzk5NzMsCisJMHg4NzdjODE3YywgMHhiZjA2ODE3YywKIAkweGJmODUwMDAyLCAweGJlZmYwMzgwLAogCTB4YmY4MjAwMDEsIDB4YmVmZjAzYzEsCiAJMHhiOTZmMmEwNSwgMHg4MDZmODE2ZiwKLQkweDhmNmY4MjZmLCAweDg3N2M4MTc5LAotCTB4YmYwNjgxN2MsIDB4YmY4NTAwMTMsCi0JMHg4Zjc2ODc2ZiwgMHhiZWY2MDNmZiwKKwkweDhmNmY4MjZmLCAweDkwN2M5OTczLAorCTB4ODc3YzgxN2MsIDB4YmYwNjgxN2MsCisJMHhiZjg1MDAyMSwgMHhiZWY2MDNmZiwKIAkweDAxMDAwMDAwLCAweGJlZjIwMzc4LAotCTB4ODA3OGZmNzgsIDB4MDAwMDAwODAsCi0JMHhiZWZjMDM4MSwgMHhlMDMwNDAwMCwKKwkweDgwNzhmZjc4LCAweDAwMDAwMjAwLAorCTB4YmVmYzAzODQsIDB4ZTAzMDQwMDAsCisJMHg3ODVkMDAwMCwgMHhlMDMwNDA4MCwKKwkweDc4NWQwMTAwLCAweGUwMzA0MTAwLAorCTB4Nzg1ZDAyMDAsIDB4ZTAzMDQxODAsCisJMHg3ODVkMDMwMCwgMHhiZjhjM2Y3MCwKKwkweDdlMDA4NTAwLCAweDdlMDI4NTAxLAorCTB4N2UwNDg1MDIsIDB4N2UwNjg1MDMsCisJMHg4MDdjODQ3YywgMHg4MDc4ZmY3OCwKKwkweDAwMDAwMjAwLCAweGJmMGE2ZjdjLAorCTB4YmY4NWZmZWUsIDB4ZTAzMDQwMDAsCisJMHg3MjVkMDAwMCwgMHhlMDMwNDA4MCwKKwkweDcyNWQwMTAwLCAweGUwMzA0MTAwLAorCTB4NzI1ZDAyMDAsIDB4ZTAzMDQxODAsCisJMHg3MjVkMDMwMCwgMHhiZjgyMDAzMSwKKwkweGJlZjYwM2ZmLCAweDAxMDAwMDAwLAorCTB4YmVmMjAzNzgsIDB4ODA3OGZmNzgsCisJMHgwMDAwMDQwMCwgMHhiZWZjMDM4NCwKKwkweGUwMzA0MDAwLCAweDc4NWQwMDAwLAorCTB4ZTAzMDQxMDAsIDB4Nzg1ZDAxMDAsCisJMHhlMDMwNDIwMCwgMHg3ODVkMDIwMCwKKwkweGUwMzA0MzAwLCAweDc4NWQwMzAwLAorCTB4YmY4YzNmNzAsIDB4N2UwMDg1MDAsCisJMHg3ZTAyODUwMSwgMHg3ZTA0ODUwMiwKKwkweDdlMDY4NTAzLCAweDgwN2M4NDdjLAorCTB4ODA3OGZmNzgsIDB4MDAwMDA0MDAsCisJMHhiZjBhNmY3YywgMHhiZjg1ZmZlZSwKKwkweGI5NmYxZTA2LCAweDg3NmZjMTZmLAorCTB4YmY4NDAwMGUsIDB4OGY2ZjgzNmYsCisJMHg4MDZmN2M2ZiwgMHhiZWZlMDNjMSwKKwkweGJlZmYwMzgwLCAweGUwMzA0MDAwLAogCTB4Nzg1ZDAwMDAsIDB4YmY4YzNmNzAsCiAJMHg3ZTAwODUwMCwgMHg4MDdjODE3YywKIAkweDgwNzhmZjc4LCAweDAwMDAwMDgwLAogCTB4YmYwYTZmN2MsIDB4YmY4NWZmZjcsCi0JMHhlMDMwNDAwMCwgMHg3MjVkMDAwMCwKLQkweGJmODIwMDIzLCAweDhmNzY4ODZmLAotCTB4YmVmNjAzZmYsIDB4MDEwMDAwMDAsCi0JMHhiZWYyMDM3OCwgMHg4MDc4ZmY3OCwKLQkweDAwMDAwMTAwLCAweGJlZmMwMzgxLAotCTB4ZTAzMDQwMDAsIDB4Nzg1ZDAwMDAsCi0JMHhiZjhjM2Y3MCwgMHg3ZTAwODUwMCwKLQkweDgwN2M4MTdjLCAweDgwNzhmZjc4LAotCTB4MDAwMDAxMDAsIDB4YmYwYTZmN2MsCi0JMHhiZjg1ZmZmNywgMHhiOTZmMWUwNiwKLQkweDg3NmZjMTZmLCAweGJmODQwMDBlLAotCTB4OGY2ZjgzNmYsIDB4ODA2ZjdjNmYsCi0JMHhiZWZlMDNjMSwgMHhiZWZmMDM4MCwKLQkweGUwMzA0MDAwLCAweDc4NWQwMDAwLAotCTB4YmY4YzNmNzAsIDB4N2UwMDg1MDAsCi0JMHg4MDdjODE3YywgMHg4MDc4ZmY3OCwKLQkweDAwMDAwMDgwLCAweGJmMGE2ZjdjLAotCTB4YmY4NWZmZjcsIDB4YmVmZjAzYzEsCi0JMHhlMDMwNDAwMCwgMHg3MjVkMDAwMCwKLQkweDg3NzJmZjc5LCAweDA0MDAwMDAwLAotCTB4YmY4NDAwMjAsIDB4YmVmZTAzYzEsCi0JMHg4NzdjODE3OSwgMHhiZjA2ODE3YywKLQkweGJmODUwMDAyLCAweGJlZmYwMzgwLAotCTB4YmY4MjAwMDEsIDB4YmVmZjAzYzEsCi0JMHhiOTZmNDMwNiwgMHg4NzZmYzE2ZiwKLQkweGJmODQwMDE2LCAweDhmNmY4NjZmLAotCTB4OGY2ZjgyNmYsIDB4YmVmNjAzNmYsCi0JMHhiZWY2MDNmZiwgMHgwMTAwMDAwMCwKLQkweDg3N2M4MTcyLCAweGJmMDY4MTdjLAotCTB4YmVmYzAzODAsIDB4YmY4NTAwMDcsCi0JMHg4MDdjZmY3YywgMHgwMDAwMDA4MCwKLQkweDgwNzhmZjc4LCAweDAwMDAwMDgwLAotCTB4YmYwYTZmN2MsIDB4YmY4NWZmZmEsCi0JMHhiZjgyMDAwNiwgMHg4MDdjZmY3YywKLQkweDAwMDAwMTAwLCAweDgwNzhmZjc4LAotCTB4MDAwMDAxMDAsIDB4YmYwYTZmN2MsCi0JMHhiZjg1ZmZmYSwgMHg4NzdjODE3OSwKLQkweGJmMDY4MTdjLCAweGJmODUwMDAzLAotCTB4OGY3Njg3ZmYsIDB4MDAwMDAwNmEsCi0JMHhiZjgyMDAwMiwgMHg4Zjc2ODhmZiwKLQkweDAwMDAwMDZhLCAweGJlZjYwM2ZmLAotCTB4MDEwMDAwMDAsIDB4ODc3YzgxNzksCi0JMHhiZjA2ODE3YywgMHhiZjg1MDAxMiwKLQkweGY0MjExY2JhLCAweGYwMDAwMDAwLAotCTB4ODA3OGZmNzgsIDB4MDAwMDAwODAsCi0JMHhiZWZjMDM4MSwgMHhmNDIxMDAzYSwKLQkweGYwMDAwMDAwLCAweDgwNzhmZjc4LAotCTB4MDAwMDAwODAsIDB4YmY4Y2MwN2YsCi0JMHhiZTgwMzAwMCwgMHhiZjgwMDAwMCwKLQkweDgwN2M4MTdjLCAweGJmMGFmZjdjLAotCTB4MDAwMDAwNmEsIDB4YmY4NWZmZjUsCi0JMHhiZTgwMDM3MiwgMHhiZjgyMDAxMSwKLQkweGY0MjExY2JhLCAweGYwMDAwMDAwLAotCTB4ODA3OGZmNzgsIDB4MDAwMDAxMDAsCi0JMHhiZWZjMDM4MSwgMHhmNDIxMDAzYSwKLQkweGYwMDAwMDAwLCAweDgwNzhmZjc4LAotCTB4MDAwMDAxMDAsIDB4YmY4Y2MwN2YsCi0JMHhiZTgwMzAwMCwgMHhiZjgwMDAwMCwKLQkweDgwN2M4MTdjLCAweGJmMGFmZjdjLAotCTB4MDAwMDAwNmEsIDB4YmY4NWZmZjUsCi0JMHhiZTgwMDM3MiwgMHhiZWY2MDM4NCwKLQkweGJlZjYwM2ZmLCAweDAxMDAwMDAwLAotCTB4ODc3YzgxNzksIDB4YmYwNjgxN2MsCi0JMHhiZjg1MDAyNSwgMHhmNDIxMWJmYSwKLQkweGYwMDAwMDAwLCAweDgwNzhmZjc4LAotCTB4MDAwMDAwODAsIDB4ZjQyMTFiM2EsCi0JMHhmMDAwMDAwMCwgMHg4MDc4ZmY3OCwKLQkweDAwMDAwMDgwLCAweGY0MjExYjdhLAotCTB4ZjAwMDAwMDAsIDB4ODA3OGZmNzgsCi0JMHgwMDAwMDA4MCwgMHhmNDIxMWViYSwKLQkweGYwMDAwMDAwLCAweDgwNzhmZjc4LAotCTB4MDAwMDAwODAsIDB4ZjQyMTFlZmEsCi0JMHhmMDAwMDAwMCwgMHg4MDc4ZmY3OCwKLQkweDAwMDAwMDgwLCAweGY0MjExYzNhLAotCTB4ZjAwMDAwMDAsIDB4ODA3OGZmNzgsCi0JMHgwMDAwMDA4MCwgMHhmNDIxMWM3YSwKLQkweGYwMDAwMDAwLCAweDgwNzhmZjc4LAotCTB4MDAwMDAwODAsIDB4ZjQyMTFjZmEsCi0JMHhmMDAwMDAwMCwgMHg4MDc4ZmY3OCwKLQkweDAwMDAwMDgwLCAweGY0MjExZTdhLAotCTB4ZjAwMDAwMDAsIDB4ODA3OGZmNzgsCi0JMHgwMDAwMDA4MCwgMHhiZjgyMDAyNCwKLQkweGY0MjExYmZhLCAweGYwMDAwMDAwLAotCTB4ODA3OGZmNzgsIDB4MDAwMDAxMDAsCisJMHhiZWZmMDNjMSwgMHhlMDMwNDAwMCwKKwkweDcyNWQwMDAwLCAweGUwMzA0MTAwLAorCTB4NzI1ZDAxMDAsIDB4ZTAzMDQyMDAsCisJMHg3MjVkMDIwMCwgMHhlMDMwNDMwMCwKKwkweDcyNWQwMzAwLCAweGI5NzgyYTA1LAorCTB4ODA3ODgxNzgsIDB4OTA3Yzk5NzMsCisJMHg4NzdjODE3YywgMHhiZjA2ODE3YywKKwkweGJmODUwMDAyLCAweDhmNzg4OTc4LAorCTB4YmY4MjAwMDEsIDB4OGY3ODhhNzgsCisJMHhiOTcyMWUwNiwgMHg4ZjcyOGE3MiwKKwkweDgwNzg3Mjc4LCAweDgwNzhmZjc4LAorCTB4MDAwMDAyMDAsIDB4ODBmOGZmNzgsCisJMHgwMDAwMDA1MCwgMHhiZWY2MDNmZiwKKwkweDAxMDAwMDAwLCAweGJlZmMwM2ZmLAorCTB4MDAwMDAwNmMsIDB4ODBmODkwNzgsCisJMHhmNDI5MDAzYSwgMHhmMDAwMDAwMCwKKwkweGJmOGNjMDdmLCAweDgwZmM4NDdjLAorCTB4YmY4MDAwMDAsIDB4YmU4MDMxMDAsCisJMHhiZTgyMzEwMiwgMHg4MGY4YTA3OCwKKwkweGY0MmQwMDNhLCAweGYwMDAwMDAwLAorCTB4YmY4Y2MwN2YsIDB4ODBmYzg4N2MsCisJMHhiZjgwMDAwMCwgMHhiZTgwMzEwMCwKKwkweGJlODIzMTAyLCAweGJlODQzMTA0LAorCTB4YmU4NjMxMDYsIDB4ODBmOGMwNzgsCisJMHhmNDMxMDAzYSwgMHhmMDAwMDAwMCwKKwkweGJmOGNjMDdmLCAweDgwZmM5MDdjLAorCTB4YmY4MDAwMDAsIDB4YmU4MDMxMDAsCisJMHhiZTgyMzEwMiwgMHhiZTg0MzEwNCwKKwkweGJlODYzMTA2LCAweGJlODgzMTA4LAorCTB4YmU4YTMxMGEsIDB4YmU4YzMxMGMsCisJMHhiZThlMzEwZSwgMHhiZjA2ODA3YywKKwkweGJmODRmZmYwLCAweGI5NzgyYTA1LAorCTB4ODA3ODgxNzgsIDB4OTA3Yzk5NzMsCisJMHg4NzdjODE3YywgMHhiZjA2ODE3YywKKwkweGJmODUwMDAyLCAweDhmNzg4OTc4LAorCTB4YmY4MjAwMDEsIDB4OGY3ODhhNzgsCisJMHhiOTcyMWUwNiwgMHg4ZjcyOGE3MiwKKwkweDgwNzg3Mjc4LCAweDgwNzhmZjc4LAorCTB4MDAwMDAyMDAsIDB4YmVmNjAzZmYsCisJMHgwMTAwMDAwMCwgMHhmNDIxMWJmYSwKKwkweGYwMDAwMDAwLCAweDgwNzg4NDc4LAogCTB4ZjQyMTFiM2EsIDB4ZjAwMDAwMDAsCi0JMHg4MDc4ZmY3OCwgMHgwMDAwMDEwMCwKLQkweGY0MjExYjdhLCAweGYwMDAwMDAwLAotCTB4ODA3OGZmNzgsIDB4MDAwMDAxMDAsCisJMHg4MDc4ODQ3OCwgMHhmNDIxMWI3YSwKKwkweGYwMDAwMDAwLCAweDgwNzg4NDc4LAogCTB4ZjQyMTFlYmEsIDB4ZjAwMDAwMDAsCi0JMHg4MDc4ZmY3OCwgMHgwMDAwMDEwMCwKLQkweGY0MjExZWZhLCAweGYwMDAwMDAwLAotCTB4ODA3OGZmNzgsIDB4MDAwMDAxMDAsCisJMHg4MDc4ODQ3OCwgMHhmNDIxMWVmYSwKKwkweGYwMDAwMDAwLCAweDgwNzg4NDc4LAogCTB4ZjQyMTFjM2EsIDB4ZjAwMDAwMDAsCi0JMHg4MDc4ZmY3OCwgMHgwMDAwMDEwMCwKLQkweGY0MjExYzdhLCAweGYwMDAwMDAwLAotCTB4ODA3OGZmNzgsIDB4MDAwMDAxMDAsCi0JMHhmNDIxMWNmYSwgMHhmMDAwMDAwMCwKLQkweDgwNzhmZjc4LCAweDAwMDAwMTAwLAorCTB4ODA3ODg0NzgsIDB4ZjQyMTFjN2EsCisJMHhmMDAwMDAwMCwgMHg4MDc4ODQ3OCwKIAkweGY0MjExZTdhLCAweGYwMDAwMDAwLAotCTB4ODA3OGZmNzgsIDB4MDAwMDAxMDAsCi0JMHhiZjhjYzA3ZiwgMHg4NzZkZmY2ZCwKKwkweDgwNzg4NDc4LCAweGY0MjExY2ZhLAorCTB4ZjAwMDAwMDAsIDB4ODA3ODg0NzgsCisJMHhmNDIxMWJiYSwgMHhmMDAwMDAwMCwKKwkweDgwNzg4NDc4LCAweGJmOGNjMDdmLAorCTB4YjllZWY4MTQsIDB4ZjQyMTFiYmEsCisJMHhmMDAwMDAwMCwgMHg4MDc4ODQ3OCwKKwkweGJmOGNjMDdmLCAweGI5ZWVmODE1LAorCTB4YmVmMjAzNmQsIDB4ODc2ZGZmNzIsCiAJMHgwMDAwZmZmZiwgMHhiZWZjMDM2ZiwKIAkweGJlZmUwMzdhLCAweGJlZmYwMzdiLAogCTB4ODc2ZjcxZmYsIDB4MDAwMDAzZmYsCi0JMHhiOWVmNDgwMywgMHhiOWYzZjgxNiwKKwkweGI5ZWY0ODAzLCAweGI5ZjlmODE2LAogCTB4ODc2ZjcxZmYsIDB4ZmZmZmY4MDAsCiAJMHg5MDZmOGI2ZiwgMHhiOWVmYTJjMywKLQkweGI5ZjlmODAxLCAweDg3NmZmZjZkLAotCTB4ZjAwMDAwMDAsIDB4OTA2ZjljNmYsCi0JMHg4ZjZmOTA2ZiwgMHhiZWYyMDM4MCwKLQkweDg4NzI2ZjcyLCAweDg3NmZmZjZkLAotCTB4MDgwMDAwMDAsIDB4OTA2ZjliNmYsCi0JMHg4ZjZmOGY2ZiwgMHg4ODcyNmY3MiwKLQkweDg3NmZmZjcwLCAweDAwODAwMDAwLAotCTB4OTA2Zjk3NmYsIDB4YjlmMmY4MDcsCi0JMHhiOWYwZjgwMiwgMHhiZjhhMDAwMCwKLQkweGJlODAyMjZjLCAweGJmODEwMDAwLAorCTB4YjlmM2Y4MDEsIDB4ODc2ZmZmNzIsCisJMHhmYzAwMDAwMCwgMHg5MDZmOWE2ZiwKKwkweDhmNmY5MDZmLCAweGJlZjMwMzgwLAorCTB4ODg3MzZmNzMsIDB4ODc2ZmZmNzIsCisJMHgwMjAwMDAwMCwgMHg5MDZmOTk2ZiwKKwkweDhmNmY4ZjZmLCAweDg4NzM2ZjczLAorCTB4ODc2ZmZmNzIsIDB4MDEwMDAwMDAsCisJMHg5MDZmOTg2ZiwgMHg4ZjZmOTk2ZiwKKwkweDg4NzM2ZjczLCAweDg3NmZmZjcwLAorCTB4MDA4MDAwMDAsIDB4OTA2Zjk3NmYsCisJMHhiOWYzZjgwNywgMHg4N2ZlN2U3ZSwKKwkweDg3ZWE2YTZhLCAweGI5ZjBmODAyLAorCTB4YmY4YTAwMDAsIDB4YmU4MDIyNmMsCisJMHhiZjgxMDAwMCwgMHhiZjlmMDAwMCwKIAkweGJmOWYwMDAwLCAweGJmOWYwMDAwLAogCTB4YmY5ZjAwMDAsIDB4YmY5ZjAwMDAsCi0JMHhiZjlmMDAwMCwgMHgwMDAwMDAwMCwKK307CitzdGF0aWMgY29uc3QgdWludDMyX3QgY3dzcl90cmFwX2FyY3R1cnVzX2hleFtdID0geworCTB4YmY4MjAwMDEsIDB4YmY4MjAyYzQsCisJMHhiOGY4ZjgwMiwgMHg4OTc4ODY3OCwKKwkweGI4ZWVmODAxLCAweDg2NmVmZjZlLAorCTB4MDAwMDA4MDAsIDB4YmY4NDAwMDMsCisJMHg4NjZlZmY3OCwgMHgwMDAwMjAwMCwKKwkweGJmODQwMDE2LCAweGI4ZmJmODAzLAorCTB4ODY2ZWZmN2IsIDB4MDAwMDA0MDAsCisJMHhiZjg1MDAzYiwgMHg4NjZlZmY3YiwKKwkweDAwMDAwODAwLCAweGJmODUwMDAzLAorCTB4ODY2ZWZmN2IsIDB4MDAwMDAxMDAsCisJMHhiZjg0MDAwYywgMHg4NjZlZmY3OCwKKwkweDAwMDAyMDAwLCAweGJmODQwMDA1LAorCTB4YmY4ZTAwMTAsIDB4YjhlZWY4MDMsCisJMHg4NjZlZmY2ZSwgMHgwMDAwMDQwMCwKKwkweGJmODRmZmZiLCAweDg3NzhmZjc4LAorCTB4MDAwMDIwMDAsIDB4ODBlYzg4NmMsCisJMHg4MmVkODA2ZCwgMHhiOGVlZjgwNywKKwkweDg2NmZmZjZlLCAweDAwMWY4MDAwLAorCTB4OGU2ZjhiNmYsIDB4ODk3N2ZmNzcsCisJMHhmYzAwMDAwMCwgMHg4Nzc3NmY3NywKKwkweDg5NmVmZjZlLCAweDAwMWY4MDAwLAorCTB4Yjk2ZWY4MDcsIDB4YjhmYWY4MTIsCisJMHhiOGZiZjgxMywgMHg4ZWZhODg3YSwKKwkweGMwMDcxYmJkLCAweDAwMDAwMDAwLAorCTB4YmY4Y2MwN2YsIDB4YzAwNzFlYmQsCisJMHgwMDAwMDAwOCwgMHhiZjhjYzA3ZiwKKwkweDg2ZWU2ZTZlLCAweGJmODQwMDAxLAorCTB4YmU4MDFkNmUsIDB4YjhmYmY4MDMsCisJMHg4NjdiZmY3YiwgMHgwMDAwMDFmZiwKKwkweGJmODUwMDAyLCAweDgwNmM4NDZjLAorCTB4ODI2ZDgwNmQsIDB4ODY2ZGZmNmQsCisJMHgwMDAwZmZmZiwgMHg4ZjZlOGI3NywKKwkweDg2NmVmZjZlLCAweDAwMWY4MDAwLAorCTB4Yjk2ZWY4MDcsIDB4ODZmZTdlN2UsCisJMHg4NmVhNmE2YSwgMHg4ZjZlODM3OCwKKwkweGI5NmVlMGMyLCAweGJmODAwMDAyLAorCTB4Yjk3ODAwMDIsIDB4YmU4MDFmNmMsCisJMHg4NjZkZmY2ZCwgMHgwMDAwZmZmZiwKKwkweGJlZmEwMDgwLCAweGI5N2EwMjgzLAorCTB4YjhmYTI0MDcsIDB4OGU3YTliN2EsCisJMHg4NzZkN2E2ZCwgMHhiOGZhMDNjNywKKwkweDhlN2E5YTdhLCAweDg3NmQ3YTZkLAorCTB4YjhmYWY4MDcsIDB4ODY3YWZmN2EsCisJMHgwMDAwN2ZmZiwgMHhiOTdhZjgwNywKKwkweGJlZWUwMDdlLCAweGJlZWYwMDdmLAorCTB4YmVmZTAxODAsIDB4YmY5MDAwMDQsCisJMHg4NzdhODQ3OCwgMHhiOTdhZjgwMiwKKwkweGJmOGUwMDAyLCAweGJmODhmZmZlLAorCTB4YjhmYTJhMDUsIDB4ODA3YTgxN2EsCisJMHg4ZTdhOGE3YSwgMHg4ZTdhODE3YSwKKwkweGI4ZmIxNjA1LCAweDgwN2I4MTdiLAorCTB4OGU3Yjg2N2IsIDB4ODA3YTdiN2EsCisJMHg4MDdhN2U3YSwgMHg4MjdiODA3ZiwKKwkweDg2N2JmZjdiLCAweDAwMDBmZmZmLAorCTB4YzA0YjFjM2QsIDB4MDAwMDAwNTAsCisJMHhiZjhjYzA3ZiwgMHhjMDRiMWQzZCwKKwkweDAwMDAwMDYwLCAweGJmOGNjMDdmLAorCTB4YzA0MzFlN2QsIDB4MDAwMDAwNzQsCisJMHhiZjhjYzA3ZiwgMHhiZWY0MDA3ZSwKKwkweDg2NzVmZjdmLCAweDAwMDBmZmZmLAorCTB4ODc3NWZmNzUsIDB4MDAwNDAwMDAsCisJMHhiZWY2MDA4MCwgMHhiZWY3MDBmZiwKKwkweDAwODA3ZmFjLCAweDg2N2FmZjdmLAorCTB4MDgwMDAwMDAsIDB4OGY3YTgzN2EsCisJMHg4Nzc3N2E3NywgMHg4NjdhZmY3ZiwKKwkweDcwMDAwMDAwLCAweDhmN2E4MTdhLAorCTB4ODc3NzdhNzcsIDB4YmVmMTAwN2MsCisJMHhiZWYwMDA4MCwgMHhiOGYwMmEwNSwKKwkweDgwNzA4MTcwLCAweDhlNzA4YTcwLAorCTB4OGU3MDgxNzAsIDB4YjhmYTE2MDUsCisJMHg4MDdhODE3YSwgMHg4ZTdhODY3YSwKKwkweDgwNzA3YTcwLCAweGJlZjYwMDg0LAorCTB4YmVmNjAwZmYsIDB4MDEwMDAwMDAsCisJMHhiZWZlMDA3YywgMHhiZWZjMDA3MCwKKwkweGMwNjExYzdhLCAweDAwMDAwMDdjLAorCTB4YmY4Y2MwN2YsIDB4ODA3MDg0NzAsCisJMHhiZWZjMDA3ZSwgMHhiZWZlMDA3YywKKwkweGJlZmMwMDcwLCAweGMwNjExYjNhLAorCTB4MDAwMDAwN2MsIDB4YmY4Y2MwN2YsCisJMHg4MDcwODQ3MCwgMHhiZWZjMDA3ZSwKKwkweGJlZmUwMDdjLCAweGJlZmMwMDcwLAorCTB4YzA2MTFiN2EsIDB4MDAwMDAwN2MsCisJMHhiZjhjYzA3ZiwgMHg4MDcwODQ3MCwKKwkweGJlZmMwMDdlLCAweGJlZmUwMDdjLAorCTB4YmVmYzAwNzAsIDB4YzA2MTFiYmEsCisJMHgwMDAwMDA3YywgMHhiZjhjYzA3ZiwKKwkweDgwNzA4NDcwLCAweGJlZmMwMDdlLAorCTB4YmVmZTAwN2MsIDB4YmVmYzAwNzAsCisJMHhjMDYxMWJmYSwgMHgwMDAwMDA3YywKKwkweGJmOGNjMDdmLCAweDgwNzA4NDcwLAorCTB4YmVmYzAwN2UsIDB4YmVmZTAwN2MsCisJMHhiZWZjMDA3MCwgMHhjMDYxMWUzYSwKKwkweDAwMDAwMDdjLCAweGJmOGNjMDdmLAorCTB4ODA3MDg0NzAsIDB4YmVmYzAwN2UsCisJMHhiOGZiZjgwMywgMHhiZWZlMDA3YywKKwkweGJlZmMwMDcwLCAweGMwNjExZWZhLAorCTB4MDAwMDAwN2MsIDB4YmY4Y2MwN2YsCisJMHg4MDcwODQ3MCwgMHhiZWZjMDA3ZSwKKwkweGJlZmUwMDdjLCAweGJlZmMwMDcwLAorCTB4YzA2MTFhM2EsIDB4MDAwMDAwN2MsCisJMHhiZjhjYzA3ZiwgMHg4MDcwODQ3MCwKKwkweGJlZmMwMDdlLCAweGJlZmUwMDdjLAorCTB4YmVmYzAwNzAsIDB4YzA2MTFhN2EsCisJMHgwMDAwMDA3YywgMHhiZjhjYzA3ZiwKKwkweDgwNzA4NDcwLCAweGJlZmMwMDdlLAorCTB4YjhmMWY4MDEsIDB4YmVmZTAwN2MsCisJMHhiZWZjMDA3MCwgMHhjMDYxMWM3YSwKKwkweDAwMDAwMDdjLCAweGJmOGNjMDdmLAorCTB4ODA3MDg0NzAsIDB4YmVmYzAwN2UsCisJMHg4NjdhZmY3ZiwgMHgwNDAwMDAwMCwKKwkweGJlZWYwMDgwLCAweDg3NmY2ZjdhLAorCTB4YjhmMDJhMDUsIDB4ODA3MDgxNzAsCisJMHg4ZTcwOGE3MCwgMHg4ZTcwODE3MCwKKwkweGI4ZmIxNjA1LCAweDgwN2I4MTdiLAorCTB4OGU3Yjg0N2IsIDB4OGU3NjgyN2IsCisJMHhiZWY2MDBmZiwgMHgwMTAwMDAwMCwKKwkweGJlZjIwMTc0LCAweDgwNzQ3MDc0LAorCTB4ODI3NTgwNzUsIDB4YmVmYzAwODAsCisJMHhiZjgwMDAwMCwgMHhiZTgwMmIwMCwKKwkweGJlODIyYjAyLCAweGJlODQyYjA0LAorCTB4YmU4NjJiMDYsIDB4YmU4ODJiMDgsCisJMHhiZThhMmIwYSwgMHhiZThjMmIwYywKKwkweGJlOGUyYjBlLCAweGMwNmIwMDNhLAorCTB4MDAwMDAwMDAsIDB4YmY4Y2MwN2YsCisJMHhjMDZiMDEzYSwgMHgwMDAwMDAxMCwKKwkweGJmOGNjMDdmLCAweGMwNmIwMjNhLAorCTB4MDAwMDAwMjAsIDB4YmY4Y2MwN2YsCisJMHhjMDZiMDMzYSwgMHgwMDAwMDAzMCwKKwkweGJmOGNjMDdmLCAweDgwNzRjMDc0LAorCTB4ODI3NTgwNzUsIDB4ODA3YzkwN2MsCisJMHhiZjBhN2I3YywgMHhiZjg1ZmZlNywKKwkweGJlZjQwMTcyLCAweGJlZjAwMDgwLAorCTB4YmVmZTAwYzEsIDB4YmVmZjAwYzEsCisJMHhiZWU4MDA4MCwgMHhiZWU5MDA4MCwKKwkweGJlZjYwMGZmLCAweDAxMDAwMDAwLAorCTB4ODY3YWZmNzgsIDB4MDA0MDAwMDAsCisJMHhiZjg1MDAwMywgMHhiOGZhZjgwMywKKwkweDg5N2E3YWZmLCAweDEwMDAwMDAwLAorCTB4YmY4NTAwNGQsIDB4YmU4NDAwODAsCisJMHhkMjg5MDAwMCwgMHgwMDAwMDkwMCwKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAxLAorCTB4MDAwMDA5MDAsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMiwgMHgwMDAwMDkwMCwKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAzLAorCTB4MDAwMDA5MDAsIDB4ODAwNDgxMDQsCisJMHhjMDY5MDAzYSwgMHgwMDAwMDA3MCwKKwkweGJmOGNjMDdmLCAweDgwNzA5MDcwLAorCTB4YmYwNmMwMDQsIDB4YmY4NGZmZWUsCisJMHhiZTg0MDA4MCwgMHhkMjg5MDAwMCwKKwkweDAwMDAwOTAxLCAweDgwMDQ4MTA0LAorCTB4ZDI4OTAwMDEsIDB4MDAwMDA5MDEsCisJMHg4MDA0ODEwNCwgMHhkMjg5MDAwMiwKKwkweDAwMDAwOTAxLCAweDgwMDQ4MTA0LAorCTB4ZDI4OTAwMDMsIDB4MDAwMDA5MDEsCisJMHg4MDA0ODEwNCwgMHhjMDY5MDAzYSwKKwkweDAwMDAwMDcwLCAweGJmOGNjMDdmLAorCTB4ODA3MDkwNzAsIDB4YmYwNmMwMDQsCisJMHhiZjg0ZmZlZSwgMHhiZTg0MDA4MCwKKwkweGQyODkwMDAwLCAweDAwMDAwOTAyLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDEsCisJMHgwMDAwMDkwMiwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAyLCAweDAwMDAwOTAyLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDMsCisJMHgwMDAwMDkwMiwgMHg4MDA0ODEwNCwKKwkweGMwNjkwMDNhLCAweDAwMDAwMDcwLAorCTB4YmY4Y2MwN2YsIDB4ODA3MDkwNzAsCisJMHhiZjA2YzAwNCwgMHhiZjg0ZmZlZSwKKwkweGJlODQwMDgwLCAweGQyODkwMDAwLAorCTB4MDAwMDA5MDMsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMSwgMHgwMDAwMDkwMywKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAyLAorCTB4MDAwMDA5MDMsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMywgMHgwMDAwMDkwMywKKwkweDgwMDQ4MTA0LCAweGMwNjkwMDNhLAorCTB4MDAwMDAwNzAsIDB4YmY4Y2MwN2YsCisJMHg4MDcwOTA3MCwgMHhiZjA2YzAwNCwKKwkweGJmODRmZmVlLCAweGJmODIwMDA4LAorCTB4ZTA3MjQwMDAsIDB4NzAxZDAwMDAsCisJMHhlMDcyNDEwMCwgMHg3MDFkMDEwMCwKKwkweGUwNzI0MjAwLCAweDcwMWQwMjAwLAorCTB4ZTA3MjQzMDAsIDB4NzAxZDAzMDAsCisJMHhiZWZlMDBjMSwgMHhiZWZmMDBjMSwKKwkweGI4ZmI0MzA2LCAweDg2N2JjMTdiLAorCTB4YmY4NDAwNjQsIDB4YmY4YTAwMDAsCisJMHg4NjdhZmY2ZiwgMHgwNDAwMDAwMCwKKwkweGJmODQwMDYwLCAweDhlN2I4NjdiLAorCTB4OGU3YjgyN2IsIDB4YmVmNjAwN2IsCisJMHhiOGYwMmEwNSwgMHg4MDcwODE3MCwKKwkweDhlNzA4YTcwLCAweDhlNzA4MTcwLAorCTB4YjhmYTE2MDUsIDB4ODA3YTgxN2EsCisJMHg4ZTdhODY3YSwgMHg4MDcwN2E3MCwKKwkweDgwNzBmZjcwLCAweDAwMDAwMDgwLAorCTB4YmVmNjAwZmYsIDB4MDEwMDAwMDAsCisJMHhiZWZjMDA4MCwgMHhkMjhjMDAwMiwKKwkweDAwMDEwMGMxLCAweGQyOGQwMDAzLAorCTB4MDAwMjA0YzEsIDB4ODY3YWZmNzgsCisJMHgwMDQwMDAwMCwgMHhiZjg1MDAwMywKKwkweGI4ZmFmODAzLCAweDg5N2E3YWZmLAorCTB4MTAwMDAwMDAsIDB4YmY4NTAwMzAsCisJMHgyNDA0MDY4MiwgMHhkODZlNDAwMCwKKwkweDAwMDAwMDAyLCAweGJmOGNjMDdmLAorCTB4YmU4NDAwODAsIDB4ZDI4OTAwMDAsCisJMHgwMDAwMDkwMCwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAxLCAweDAwMDAwOTAwLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDIsCisJMHgwMDAwMDkwMCwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAzLCAweDAwMDAwOTAwLAorCTB4ODAwNDgxMDQsIDB4YzA2OTAwM2EsCisJMHgwMDAwMDA3MCwgMHhiZjhjYzA3ZiwKKwkweDgwNzA5MDcwLCAweGJmMDZjMDA0LAorCTB4YmY4NGZmZWUsIDB4YmU4NDAwODAsCisJMHhkMjg5MDAwMCwgMHgwMDAwMDkwMSwKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAxLAorCTB4MDAwMDA5MDEsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMiwgMHgwMDAwMDkwMSwKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAzLAorCTB4MDAwMDA5MDEsIDB4ODAwNDgxMDQsCisJMHhjMDY5MDAzYSwgMHgwMDAwMDA3MCwKKwkweGJmOGNjMDdmLCAweDgwNzA5MDcwLAorCTB4YmYwNmMwMDQsIDB4YmY4NGZmZWUsCisJMHg2ODA0MDRmZiwgMHgwMDAwMDIwMCwKKwkweGQwYzkwMDZhLCAweDAwMDBmNzAyLAorCTB4YmY4N2ZmZDIsIDB4YmY4MjAwMTUsCisJMHhkMTA2MDAwMiwgMHgwMDAxMTEwMywKKwkweDdlMDYwMmZmLCAweDAwMDAwMjAwLAorCTB4YmVmYzAwZmYsIDB4MDAwMTAwMDAsCisJMHhiZTgwMDA3NywgMHg4Njc3ZmY3NywKKwkweGZmN2ZmZmZmLCAweDg3NzdmZjc3LAorCTB4MDAwNTgwMDAsIDB4ZDhlYzAwMDAsCisJMHgwMDAwMDAwMiwgMHhiZjhjYzA3ZiwKKwkweGUwNzY1MDAwLCAweDcwMWQwMDAyLAorCTB4NjgwNDA3MDIsIDB4ZDBjOTAwNmEsCisJMHgwMDAwZjcwMiwgMHhiZjg3ZmZmNywKKwkweGJlZjcwMDAwLCAweGJlZjAwMGZmLAorCTB4MDAwMDA0MDAsIDB4YmVmZTAwYzEsCisJMHhiZWZmMDBjMSwgMHhiOGZiMmEwNSwKKwkweDgwN2I4MTdiLCAweDhlN2I4MjdiLAorCTB4OGU3Njg4N2IsIDB4YmVmNjAwZmYsCisJMHgwMTAwMDAwMCwgMHhiZWZjMDA4NCwKKwkweGJmMGE3YjdjLCAweGJmODQwMDZkLAorCTB4YmYxMTAxN2MsIDB4ODA3YmZmN2IsCisJMHgwMDAwMTAwMCwgMHg4NjdhZmY3OCwKKwkweDAwNDAwMDAwLCAweGJmODUwMDAzLAorCTB4YjhmYWY4MDMsIDB4ODk3YTdhZmYsCisJMHgxMDAwMDAwMCwgMHhiZjg1MDA1MSwKKwkweGJlODQwMDgwLCAweGQyODkwMDAwLAorCTB4MDAwMDA5MDAsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMSwgMHgwMDAwMDkwMCwKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAyLAorCTB4MDAwMDA5MDAsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMywgMHgwMDAwMDkwMCwKKwkweDgwMDQ4MTA0LCAweGMwNjkwMDNhLAorCTB4MDAwMDAwNzAsIDB4YmY4Y2MwN2YsCisJMHg4MDcwOTA3MCwgMHhiZjA2YzAwNCwKKwkweGJmODRmZmVlLCAweGJlODQwMDgwLAorCTB4ZDI4OTAwMDAsIDB4MDAwMDA5MDEsCisJMHg4MDA0ODEwNCwgMHhkMjg5MDAwMSwKKwkweDAwMDAwOTAxLCAweDgwMDQ4MTA0LAorCTB4ZDI4OTAwMDIsIDB4MDAwMDA5MDEsCisJMHg4MDA0ODEwNCwgMHhkMjg5MDAwMywKKwkweDAwMDAwOTAxLCAweDgwMDQ4MTA0LAorCTB4YzA2OTAwM2EsIDB4MDAwMDAwNzAsCisJMHhiZjhjYzA3ZiwgMHg4MDcwOTA3MCwKKwkweGJmMDZjMDA0LCAweGJmODRmZmVlLAorCTB4YmU4NDAwODAsIDB4ZDI4OTAwMDAsCisJMHgwMDAwMDkwMiwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAxLCAweDAwMDAwOTAyLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDIsCisJMHgwMDAwMDkwMiwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAzLCAweDAwMDAwOTAyLAorCTB4ODAwNDgxMDQsIDB4YzA2OTAwM2EsCisJMHgwMDAwMDA3MCwgMHhiZjhjYzA3ZiwKKwkweDgwNzA5MDcwLCAweGJmMDZjMDA0LAorCTB4YmY4NGZmZWUsIDB4YmU4NDAwODAsCisJMHhkMjg5MDAwMCwgMHgwMDAwMDkwMywKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAxLAorCTB4MDAwMDA5MDMsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMiwgMHgwMDAwMDkwMywKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAzLAorCTB4MDAwMDA5MDMsIDB4ODAwNDgxMDQsCisJMHhjMDY5MDAzYSwgMHgwMDAwMDA3MCwKKwkweGJmOGNjMDdmLCAweDgwNzA5MDcwLAorCTB4YmYwNmMwMDQsIDB4YmY4NGZmZWUsCisJMHg4MDdjODQ3YywgMHhiZjBhN2I3YywKKwkweGJmODVmZmIxLCAweGJmOWMwMDAwLAorCTB4YmY4MjAwMTIsIDB4N2UwMDAzMDAsCisJMHg3ZTAyMDMwMSwgMHg3ZTA0MDMwMiwKKwkweDdlMDYwMzAzLCAweGUwNzI0MDAwLAorCTB4NzAxZDAwMDAsIDB4ZTA3MjQxMDAsCisJMHg3MDFkMDEwMCwgMHhlMDcyNDIwMCwKKwkweDcwMWQwMjAwLCAweGUwNzI0MzAwLAorCTB4NzAxZDAzMDAsIDB4ODA3Yzg0N2MsCisJMHg4MDcwZmY3MCwgMHgwMDAwMDQwMCwKKwkweGJmMGE3YjdjLCAweGJmODVmZmVmLAorCTB4YmY5YzAwMDAsIDB4YmVmYzAwODAsCisJMHhiZjExMDE3YywgMHg4NjdhZmY3OCwKKwkweDAwNDAwMDAwLCAweGJmODUwMDAzLAorCTB4YjhmYWY4MDMsIDB4ODk3YTdhZmYsCisJMHgxMDAwMDAwMCwgMHhiZjg1MDA1OSwKKwkweGQzZDg0MDAwLCAweDE4MDAwMTAwLAorCTB4ZDNkODQwMDEsIDB4MTgwMDAxMDEsCisJMHhkM2Q4NDAwMiwgMHgxODAwMDEwMiwKKwkweGQzZDg0MDAzLCAweDE4MDAwMTAzLAorCTB4YmU4NDAwODAsIDB4ZDI4OTAwMDAsCisJMHgwMDAwMDkwMCwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAxLCAweDAwMDAwOTAwLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDIsCisJMHgwMDAwMDkwMCwgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAzLCAweDAwMDAwOTAwLAorCTB4ODAwNDgxMDQsIDB4YzA2OTAwM2EsCisJMHgwMDAwMDA3MCwgMHhiZjhjYzA3ZiwKKwkweDgwNzA5MDcwLCAweGJmMDZjMDA0LAorCTB4YmY4NGZmZWUsIDB4YmU4NDAwODAsCisJMHhkMjg5MDAwMCwgMHgwMDAwMDkwMSwKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAxLAorCTB4MDAwMDA5MDEsIDB4ODAwNDgxMDQsCisJMHhkMjg5MDAwMiwgMHgwMDAwMDkwMSwKKwkweDgwMDQ4MTA0LCAweGQyODkwMDAzLAorCTB4MDAwMDA5MDEsIDB4ODAwNDgxMDQsCisJMHhjMDY5MDAzYSwgMHgwMDAwMDA3MCwKKwkweGJmOGNjMDdmLCAweDgwNzA5MDcwLAorCTB4YmYwNmMwMDQsIDB4YmY4NGZmZWUsCisJMHhiZTg0MDA4MCwgMHhkMjg5MDAwMCwKKwkweDAwMDAwOTAyLCAweDgwMDQ4MTA0LAorCTB4ZDI4OTAwMDEsIDB4MDAwMDA5MDIsCisJMHg4MDA0ODEwNCwgMHhkMjg5MDAwMiwKKwkweDAwMDAwOTAyLCAweDgwMDQ4MTA0LAorCTB4ZDI4OTAwMDMsIDB4MDAwMDA5MDIsCisJMHg4MDA0ODEwNCwgMHhjMDY5MDAzYSwKKwkweDAwMDAwMDcwLCAweGJmOGNjMDdmLAorCTB4ODA3MDkwNzAsIDB4YmYwNmMwMDQsCisJMHhiZjg0ZmZlZSwgMHhiZTg0MDA4MCwKKwkweGQyODkwMDAwLCAweDAwMDAwOTAzLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDEsCisJMHgwMDAwMDkwMywgMHg4MDA0ODEwNCwKKwkweGQyODkwMDAyLCAweDAwMDAwOTAzLAorCTB4ODAwNDgxMDQsIDB4ZDI4OTAwMDMsCisJMHgwMDAwMDkwMywgMHg4MDA0ODEwNCwKKwkweGMwNjkwMDNhLCAweDAwMDAwMDcwLAorCTB4YmY4Y2MwN2YsIDB4ODA3MDkwNzAsCisJMHhiZjA2YzAwNCwgMHhiZjg0ZmZlZSwKKwkweDgwN2M4NDdjLCAweGJmMGE3YjdjLAorCTB4YmY4NWZmYTksIDB4YmY5YzAwMDAsCisJMHhiZjgyMDAxNiwgMHhkM2Q4NDAwMCwKKwkweDE4MDAwMTAwLCAweGQzZDg0MDAxLAorCTB4MTgwMDAxMDEsIDB4ZDNkODQwMDIsCisJMHgxODAwMDEwMiwgMHhkM2Q4NDAwMywKKwkweDE4MDAwMTAzLCAweGUwNzI0MDAwLAorCTB4NzAxZDAwMDAsIDB4ZTA3MjQxMDAsCisJMHg3MDFkMDEwMCwgMHhlMDcyNDIwMCwKKwkweDcwMWQwMjAwLCAweGUwNzI0MzAwLAorCTB4NzAxZDAzMDAsIDB4ODA3Yzg0N2MsCisJMHg4MDcwZmY3MCwgMHgwMDAwMDQwMCwKKwkweGJmMGE3YjdjLCAweGJmODVmZmViLAorCTB4YmY5YzAwMDAsIDB4YmY4MjAxMDYsCisJMHhiZWY0MDA3ZSwgMHg4Njc1ZmY3ZiwKKwkweDAwMDBmZmZmLCAweDg3NzVmZjc1LAorCTB4MDAwNDAwMDAsIDB4YmVmNjAwODAsCisJMHhiZWY3MDBmZiwgMHgwMDgwN2ZhYywKKwkweDg2NmVmZjdmLCAweDA4MDAwMDAwLAorCTB4OGY2ZTgzNmUsIDB4ODc3NzZlNzcsCisJMHg4NjZlZmY3ZiwgMHg3MDAwMDAwMCwKKwkweDhmNmU4MTZlLCAweDg3Nzc2ZTc3LAorCTB4ODY2ZWZmN2YsIDB4MDQwMDAwMDAsCisJMHhiZjg0MDAxZiwgMHhiZWZlMDBjMSwKKwkweGJlZmYwMGMxLCAweGI4ZWY0MzA2LAorCTB4ODY2ZmMxNmYsIDB4YmY4NDAwMWEsCisJMHg4ZTZmODY2ZiwgMHg4ZTZmODI2ZiwKKwkweGJlZjYwMDZmLCAweGI4ZjgyYTA1LAorCTB4ODA3ODgxNzgsIDB4OGU3ODhhNzgsCisJMHg4ZTc4ODE3OCwgMHhiOGVlMTYwNSwKKwkweDgwNmU4MTZlLCAweDhlNmU4NjZlLAorCTB4ODA3ODZlNzgsIDB4ODA3OGZmNzgsCisJMHgwMDAwMDA4MCwgMHhiZWY2MDBmZiwKKwkweDAxMDAwMDAwLCAweGJlZmMwMDgwLAorCTB4ZTA1MTAwMDAsIDB4NzgxZDAwMDAsCisJMHhlMDUxMDEwMCwgMHg3ODFkMDAwMCwKKwkweDgwN2NmZjdjLCAweDAwMDAwMjAwLAorCTB4ODA3OGZmNzgsIDB4MDAwMDAyMDAsCisJMHhiZjBhNmY3YywgMHhiZjg1ZmZmNiwKKwkweGJlZjgwMDgwLCAweGJlZmUwMGMxLAorCTB4YmVmZjAwYzEsIDB4YjhlZjJhMDUsCisJMHg4MDZmODE2ZiwgMHg4ZTZmODI2ZiwKKwkweDhlNzY4ODZmLCAweGJlZjkwMDc2LAorCTB4YmVmNjAwZmYsIDB4MDEwMDAwMDAsCisJMHhiZWVlMDA3OCwgMHg4MDc4ZmY3OCwKKwkweDAwMDAwNDAwLCAweGJlZjMwMDc5LAorCTB4ODA3OWZmNzksIDB4MDAwMDA0MDAsCisJMHhiZWZjMDA4NCwgMHhiZjExMDg3YywKKwkweDgwNmZmZjZmLCAweDAwMDA4MDAwLAorCTB4ZTA1MjQwMDAsIDB4NzkxZDAwMDAsCisJMHhlMDUyNDEwMCwgMHg3OTFkMDEwMCwKKwkweGUwNTI0MjAwLCAweDc5MWQwMjAwLAorCTB4ZTA1MjQzMDAsIDB4NzkxZDAzMDAsCisJMHg4MDc5ZmY3OSwgMHgwMDAwMDQwMCwKKwkweGJmOGMwZjcwLCAweGQzZDk0MDAwLAorCTB4MTgwMDAxMDAsIDB4ZDNkOTQwMDEsCisJMHgxODAwMDEwMSwgMHhkM2Q5NDAwMiwKKwkweDE4MDAwMTAyLCAweGQzZDk0MDAzLAorCTB4MTgwMDAxMDMsIDB4ZTA1MjQwMDAsCisJMHg3ODFkMDAwMCwgMHhlMDUyNDEwMCwKKwkweDc4MWQwMTAwLCAweGUwNTI0MjAwLAorCTB4NzgxZDAyMDAsIDB4ZTA1MjQzMDAsCisJMHg3ODFkMDMwMCwgMHhiZjhjMGY3MCwKKwkweDdlMDAwMzAwLCAweDdlMDIwMzAxLAorCTB4N2UwNDAzMDIsIDB4N2UwNjAzMDMsCisJMHg4MDdjODQ3YywgMHg4MDc4ZmY3OCwKKwkweDAwMDAwNDAwLCAweGJmMGE2ZjdjLAorCTB4YmY4NWZmZGIsIDB4YmY5YzAwMDAsCisJMHhlMDUyNDAwMCwgMHg3MzFkMDAwMCwKKwkweGUwNTI0MTAwLCAweDczMWQwMTAwLAorCTB4ZTA1MjQyMDAsIDB4NzMxZDAyMDAsCisJMHhlMDUyNDMwMCwgMHg3MzFkMDMwMCwKKwkweGJmOGMwZjcwLCAweGQzZDk0MDAwLAorCTB4MTgwMDAxMDAsIDB4ZDNkOTQwMDEsCisJMHgxODAwMDEwMSwgMHhkM2Q5NDAwMiwKKwkweDE4MDAwMTAyLCAweGQzZDk0MDAzLAorCTB4MTgwMDAxMDMsIDB4ZTA1MjQwMDAsCisJMHg2ZTFkMDAwMCwgMHhlMDUyNDEwMCwKKwkweDZlMWQwMTAwLCAweGUwNTI0MjAwLAorCTB4NmUxZDAyMDAsIDB4ZTA1MjQzMDAsCisJMHg2ZTFkMDMwMCwgMHhiOGY4MmEwNSwKKwkweDgwNzg4MTc4LCAweDhlNzg4YTc4LAorCTB4OGU3ODgxNzgsIDB4YjhlZTE2MDUsCisJMHg4MDZlODE2ZSwgMHg4ZTZlODY2ZSwKKwkweDgwNzg2ZTc4LCAweDgwZjhjMDc4LAorCTB4YjhlZjE2MDUsIDB4ODA2ZjgxNmYsCisJMHg4ZTZmODQ2ZiwgMHg4ZTc2ODI2ZiwKKwkweGJlZjYwMGZmLCAweDAxMDAwMDAwLAorCTB4YmVmYzAwNmYsIDB4YzAzMTAwM2EsCisJMHgwMDAwMDA3OCwgMHg4MGY4YzA3OCwKKwkweGJmOGNjMDdmLCAweDgwZmM5MDdjLAorCTB4YmY4MDAwMDAsIDB4YmU4MDJkMDAsCisJMHhiZTgyMmQwMiwgMHhiZTg0MmQwNCwKKwkweGJlODYyZDA2LCAweGJlODgyZDA4LAorCTB4YmU4YTJkMGEsIDB4YmU4YzJkMGMsCisJMHhiZThlMmQwZSwgMHhiZjA2ODA3YywKKwkweGJmODRmZmYwLCAweGI4ZjgyYTA1LAorCTB4ODA3ODgxNzgsIDB4OGU3ODhhNzgsCisJMHg4ZTc4ODE3OCwgMHhiOGVlMTYwNSwKKwkweDgwNmU4MTZlLCAweDhlNmU4NjZlLAorCTB4ODA3ODZlNzgsIDB4YmVmNjAwODQsCisJMHhiZWY2MDBmZiwgMHgwMTAwMDAwMCwKKwkweGMwMjExYmZhLCAweDAwMDAwMDc4LAorCTB4ODA3ODg0NzgsIDB4YzAyMTFiM2EsCisJMHgwMDAwMDA3OCwgMHg4MDc4ODQ3OCwKKwkweGMwMjExYjdhLCAweDAwMDAwMDc4LAorCTB4ODA3ODg0NzgsIDB4YzAyMTFjM2EsCisJMHgwMDAwMDA3OCwgMHg4MDc4ODQ3OCwKKwkweGMwMjExYzdhLCAweDAwMDAwMDc4LAorCTB4ODA3ODg0NzgsIDB4YzAyMTFlYmEsCisJMHgwMDAwMDA3OCwgMHg4MDc4ODQ3OCwKKwkweGMwMjExZWZhLCAweDAwMDAwMDc4LAorCTB4ODA3ODg0NzgsIDB4YzAyMTFhM2EsCisJMHgwMDAwMDA3OCwgMHg4MDc4ODQ3OCwKKwkweGMwMjExYTdhLCAweDAwMDAwMDc4LAorCTB4ODA3ODg0NzgsIDB4YzAyMTFjZmEsCisJMHgwMDAwMDA3OCwgMHg4MDc4ODQ3OCwKKwkweGJmOGNjMDdmLCAweGJlZmMwMDZmLAorCTB4YmVmZTAwNzAsIDB4YmVmZjAwNzEsCisJMHg4NjZmN2JmZiwgMHgwMDAwMDNmZiwKKwkweGI5NmY0ODAzLCAweDg2NmY3YmZmLAorCTB4ZmZmZmY4MDAsIDB4OGY2ZjhiNmYsCisJMHhiOTZmYTJjMywgMHhiOTczZjgwMSwKKwkweGI4ZWUyYTA1LCAweDgwNmU4MTZlLAorCTB4OGU2ZThhNmUsIDB4OGU2ZTgxNmUsCisJMHhiOGVmMTYwNSwgMHg4MDZmODE2ZiwKKwkweDhlNmY4NjZmLCAweDgwNmU2ZjZlLAorCTB4ODA2ZTc0NmUsIDB4ODI2ZjgwNzUsCisJMHg4NjZmZmY2ZiwgMHgwMDAwZmZmZiwKKwkweGMwMGIxYzM3LCAweDAwMDAwMDUwLAorCTB4YzAwYjFkMzcsIDB4MDAwMDAwNjAsCisJMHhjMDAzMWU3NywgMHgwMDAwMDA3NCwKKwkweGJmOGNjMDdmLCAweDg2NmZmZjZkLAorCTB4ZjgwMDAwMDAsIDB4OGY2ZjliNmYsCisJMHg4ZTZmOTA2ZiwgMHhiZWVlMDA4MCwKKwkweDg3NmU2ZjZlLCAweDg2NmZmZjZkLAorCTB4MDQwMDAwMDAsIDB4OGY2ZjlhNmYsCisJMHg4ZTZmOGY2ZiwgMHg4NzZlNmY2ZSwKKwkweDg2NmZmZjdhLCAweDAwODAwMDAwLAorCTB4OGY2Zjk3NmYsIDB4Yjk2ZWY4MDcsCisJMHg4NjZkZmY2ZCwgMHgwMDAwZmZmZiwKKwkweDg2ZmU3ZTdlLCAweDg2ZWE2YTZhLAorCTB4OGY2ZTgzN2EsIDB4Yjk2ZWUwYzIsCisJMHhiZjgwMDAwMiwgMHhiOTdhMDAwMiwKKwkweGJmOGEwMDAwLCAweDk1ODA2ZjZjLAorCTB4YmY4MTAwMDAsIDB4MDAwMDAwMDAsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQvY3dzcl90cmFwX2hhbmRsZXJfZ2Z4MTAuYXNtIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQvY3dzcl90cmFwX2hhbmRsZXJfZ2Z4MTAuYXNtCmluZGV4IGYyMGU0NjMuLmNkYWE1MjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2N3c3JfdHJhcF9oYW5kbGVyX2dmeDEwLmFzbQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jd3NyX3RyYXBfaGFuZGxlcl9nZngxMC5hc20KQEAgLTIwLDExMDUgKzIwLDk0NyBAQAogICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgogICovCiAKK3ZhciBTUV9XQVZFX1NUQVRVU19JTlNUX0FUQ19TSElGVAkJPSAyMwordmFyIFNRX1dBVkVfU1RBVFVTX0lOU1RfQVRDX01BU0sJCT0gMHgwMDgwMDAwMAordmFyIFNRX1dBVkVfU1RBVFVTX1NQSV9QUklPX01BU0sJCT0gMHgwMDAwMDAwNgordmFyIFNRX1dBVkVfU1RBVFVTX0hBTFRfTUFTSwkJCT0gMHgyMDAwCisKK3ZhciBTUV9XQVZFX0xEU19BTExPQ19MRFNfU0laRV9TSElGVAkJPSAxMgordmFyIFNRX1dBVkVfTERTX0FMTE9DX0xEU19TSVpFX1NJWkUJCT0gOQordmFyIFNRX1dBVkVfR1BSX0FMTE9DX1ZHUFJfU0laRV9TSElGVAkJPSA4Cit2YXIgU1FfV0FWRV9HUFJfQUxMT0NfVkdQUl9TSVpFX1NJWkUJCT0gNgordmFyIFNRX1dBVkVfR1BSX0FMTE9DX1NHUFJfU0laRV9TSElGVAkJPSAyNAordmFyIFNRX1dBVkVfR1BSX0FMTE9DX1NHUFJfU0laRV9TSVpFCQk9IDQKK3ZhciBTUV9XQVZFX0xEU19BTExPQ19WR1BSX1NIQVJFRF9TSVpFX1NISUZUCT0gMjQKK3ZhciBTUV9XQVZFX0xEU19BTExPQ19WR1BSX1NIQVJFRF9TSVpFX1NJWkUJPSA0Cit2YXIgU1FfV0FWRV9JQl9TVFMyX1dBVkU2NF9TSElGVAkJPSAxMQordmFyIFNRX1dBVkVfSUJfU1RTMl9XQVZFNjRfU0laRQkJCT0gMQorCit2YXIgU1FfV0FWRV9UUkFQU1RTX1NBVkVDVFhfTUFTSwkJPSAweDQwMAordmFyIFNRX1dBVkVfVFJBUFNUU19FWENFX01BU0sJCQk9IDB4MUZGCit2YXIgU1FfV0FWRV9UUkFQU1RTX1NBVkVDVFhfU0hJRlQJCT0gMTAKK3ZhciBTUV9XQVZFX1RSQVBTVFNfTUVNX1ZJT0xfTUFTSwkJPSAweDEwMAordmFyIFNRX1dBVkVfVFJBUFNUU19NRU1fVklPTF9TSElGVAkJPSA4Cit2YXIgU1FfV0FWRV9UUkFQU1RTX1BSRV9TQVZFQ1RYX01BU0sJCT0gMHgzRkYKK3ZhciBTUV9XQVZFX1RSQVBTVFNfUFJFX1NBVkVDVFhfU0hJRlQJCT0gMHgwCit2YXIgU1FfV0FWRV9UUkFQU1RTX1BSRV9TQVZFQ1RYX1NJWkUJCT0gMTAKK3ZhciBTUV9XQVZFX1RSQVBTVFNfUE9TVF9TQVZFQ1RYX01BU0sJCT0gMHhGRkZGRjgwMAordmFyIFNRX1dBVkVfVFJBUFNUU19QT1NUX1NBVkVDVFhfU0hJRlQJCT0gMTEKK3ZhciBTUV9XQVZFX1RSQVBTVFNfUE9TVF9TQVZFQ1RYX1NJWkUJCT0gMjEKK3ZhciBTUV9XQVZFX1RSQVBTVFNfSUxMRUdBTF9JTlNUX01BU0sJCT0gMHg4MDAKKwordmFyIFNRX1dBVkVfSUJfU1RTX1JDTlRfU0hJRlQJCQk9IDE2Cit2YXIgU1FfV0FWRV9JQl9TVFNfRklSU1RfUkVQTEFZX1NISUZUCQk9IDE1Cit2YXIgU1FfV0FWRV9JQl9TVFNfUkVQTEFZX1c2NEhfU0hJRlQJCT0gMjUKK3ZhciBTUV9XQVZFX0lCX1NUU19SRVBMQVlfVzY0SF9TSVpFCQk9IDEKK3ZhciBTUV9XQVZFX0lCX1NUU19SRVBMQVlfVzY0SF9NQVNLCQk9IDB4MDIwMDAwMDAKK3ZhciBTUV9XQVZFX0lCX1NUU19GSVJTVF9SRVBMQVlfU0laRQkJPSAxCit2YXIgU1FfV0FWRV9JQl9TVFNfUkNOVF9TSVpFCQkJPSA2Cit2YXIgU1FfV0FWRV9JQl9TVFNfUkNOVF9GSVJTVF9SRVBMQVlfTUFTSwk9IDB4MDAzRjgwMDAKK3ZhciBTUV9XQVZFX0lCX1NUU19SQ05UX0ZJUlNUX1JFUExBWV9NQVNLX05FRwk9IDB4MDAwMDdGRkYKKwordmFyIFNRX0JVRl9SU1JDX1dPUkQxX0FUQ19TSElGVAkJCT0gMjQKK3ZhciBTUV9CVUZfUlNSQ19XT1JEM19NVFlQRV9TSElGVAkJPSAyNworCisvLyBiaXRzIFszMToyNF0gdW51c2VkIGJ5IFNQSSBkZWJ1ZyBkYXRhCit2YXIgVFRNUDExX1NBVkVfUkVQTEFZX1c2NEhfU0hJRlQJCT0gMzEKK3ZhciBUVE1QMTFfU0FWRV9SRVBMQVlfVzY0SF9NQVNLCQk9IDB4ODAwMDAwMDAKK3ZhciBUVE1QMTFfU0FWRV9SQ05UX0ZJUlNUX1JFUExBWV9TSElGVAkJPSAyNAordmFyIFRUTVAxMV9TQVZFX1JDTlRfRklSU1RfUkVQTEFZX01BU0sJCT0gMHg3RjAwMDAwMAorCisvLyBTUV9TRUxfWC9ZL1ovVywgQlVGX05VTV9GT1JNQVRfRkxPQVQsICgwIGZvciBNVUJVRiBzdHJpZGVbMTc6MTRdCisvLyB3aGVuIEFERF9USURfRU5BQkxFIGFuZCBCVUZfREFUQV9GT1JNQVRfMzIgZm9yIE1UQlVGKSwgQUREX1RJRF9FTkFCTEUKK3ZhciBTX1NBVkVfQlVGX1JTUkNfV09SRDFfU1RSSURFCQk9IDB4MDAwNDAwMDAKK3ZhciBTX1NBVkVfQlVGX1JTUkNfV09SRDNfTUlTQwkJCT0gMHgxMDgwN0ZBQworCit2YXIgU19TQVZFX1NQSV9JTklUX0FUQ19NQVNLCQkJPSAweDA4MDAwMDAwCit2YXIgU19TQVZFX1NQSV9JTklUX0FUQ19TSElGVAkJCT0gMjcKK3ZhciBTX1NBVkVfU1BJX0lOSVRfTVRZUEVfTUFTSwkJCT0gMHg3MDAwMDAwMAordmFyIFNfU0FWRV9TUElfSU5JVF9NVFlQRV9TSElGVAkJCT0gMjgKK3ZhciBTX1NBVkVfU1BJX0lOSVRfRklSU1RfV0FWRV9NQVNLCQk9IDB4MDQwMDAwMDAKK3ZhciBTX1NBVkVfU1BJX0lOSVRfRklSU1RfV0FWRV9TSElGVAkJPSAyNgorCit2YXIgU19TQVZFX1BDX0hJX1JDTlRfU0hJRlQJCQk9IDI2Cit2YXIgU19TQVZFX1BDX0hJX1JDTlRfTUFTSwkJCT0gMHhGQzAwMDAwMAordmFyIFNfU0FWRV9QQ19ISV9GSVJTVF9SRVBMQVlfU0hJRlQJCT0gMjUKK3ZhciBTX1NBVkVfUENfSElfRklSU1RfUkVQTEFZX01BU0sJCT0gMHgwMjAwMDAwMAordmFyIFNfU0FWRV9QQ19ISV9SRVBMQVlfVzY0SF9TSElGVAkJPSAyNAordmFyIFNfU0FWRV9QQ19ISV9SRVBMQVlfVzY0SF9NQVNLCQk9IDB4MDEwMDAwMDAKKwordmFyIHNfc2dwcl9zYXZlX251bQkJCQk9IDEwOAorCit2YXIgc19zYXZlX3NwaV9pbml0X2xvCQkJCT0gZXhlY19sbwordmFyIHNfc2F2ZV9zcGlfaW5pdF9oaQkJCQk9IGV4ZWNfaGkKK3ZhciBzX3NhdmVfcGNfbG8JCQkJPSB0dG1wMAordmFyIHNfc2F2ZV9wY19oaQkJCQk9IHR0bXAxCit2YXIgc19zYXZlX2V4ZWNfbG8JCQkJPSB0dG1wMgordmFyIHNfc2F2ZV9leGVjX2hpCQkJCT0gdHRtcDMKK3ZhciBzX3NhdmVfc3RhdHVzCQkJCT0gdHRtcDEyCit2YXIgc19zYXZlX3RyYXBzdHMJCQkJPSB0dG1wNQordmFyIHNfc2F2ZV94bmFja19tYXNrCQkJCT0gdHRtcDYKK3ZhciBzX3dhdmVfc2l6ZQkJCQkJPSB0dG1wNwordmFyIHNfc2F2ZV9idWZfcnNyYzAJCQkJPSB0dG1wOAordmFyIHNfc2F2ZV9idWZfcnNyYzEJCQkJPSB0dG1wOQordmFyIHNfc2F2ZV9idWZfcnNyYzIJCQkJPSB0dG1wMTAKK3ZhciBzX3NhdmVfYnVmX3JzcmMzCQkJCT0gdHRtcDExCit2YXIgc19zYXZlX21lbV9vZmZzZXQJCQkJPSB0dG1wMTQKK3ZhciBzX3NhdmVfYWxsb2Nfc2l6ZQkJCQk9IHNfc2F2ZV90cmFwc3RzCit2YXIgc19zYXZlX3RtcAkJCQkJPSBzX3NhdmVfYnVmX3JzcmMyCit2YXIgc19zYXZlX20wCQkJCQk9IHR0bXAxNQorCit2YXIgU19SRVNUT1JFX0JVRl9SU1JDX1dPUkQxX1NUUklERQkJPSBTX1NBVkVfQlVGX1JTUkNfV09SRDFfU1RSSURFCit2YXIgU19SRVNUT1JFX0JVRl9SU1JDX1dPUkQzX01JU0MJCT0gU19TQVZFX0JVRl9SU1JDX1dPUkQzX01JU0MKKwordmFyIFNfUkVTVE9SRV9TUElfSU5JVF9BVENfTUFTSwkJCT0gMHgwODAwMDAwMAordmFyIFNfUkVTVE9SRV9TUElfSU5JVF9BVENfU0hJRlQJCT0gMjcKK3ZhciBTX1JFU1RPUkVfU1BJX0lOSVRfTVRZUEVfTUFTSwkJPSAweDcwMDAwMDAwCit2YXIgU19SRVNUT1JFX1NQSV9JTklUX01UWVBFX1NISUZUCQk9IDI4Cit2YXIgU19SRVNUT1JFX1NQSV9JTklUX0ZJUlNUX1dBVkVfTUFTSwkJPSAweDA0MDAwMDAwCit2YXIgU19SRVNUT1JFX1NQSV9JTklUX0ZJUlNUX1dBVkVfU0hJRlQJCT0gMjYKK3ZhciBTX1dBVkVfU0laRQkJCQkJPSAyNQorCit2YXIgU19SRVNUT1JFX1BDX0hJX1JDTlRfU0hJRlQJCQk9IFNfU0FWRV9QQ19ISV9SQ05UX1NISUZUCit2YXIgU19SRVNUT1JFX1BDX0hJX1JDTlRfTUFTSwkJCT0gU19TQVZFX1BDX0hJX1JDTlRfTUFTSwordmFyIFNfUkVTVE9SRV9QQ19ISV9GSVJTVF9SRVBMQVlfU0hJRlQJCT0gU19TQVZFX1BDX0hJX0ZJUlNUX1JFUExBWV9TSElGVAordmFyIFNfUkVTVE9SRV9QQ19ISV9GSVJTVF9SRVBMQVlfTUFTSwkJPSBTX1NBVkVfUENfSElfRklSU1RfUkVQTEFZX01BU0sKKwordmFyIHNfcmVzdG9yZV9zcGlfaW5pdF9sbwkJCT0gZXhlY19sbwordmFyIHNfcmVzdG9yZV9zcGlfaW5pdF9oaQkJCT0gZXhlY19oaQordmFyIHNfcmVzdG9yZV9tZW1fb2Zmc2V0CQkJPSB0dG1wMTIKK3ZhciBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZQkJCT0gdHRtcDMKK3ZhciBzX3Jlc3RvcmVfdG1wCQkJCT0gdHRtcDYKK3ZhciBzX3Jlc3RvcmVfbWVtX29mZnNldF9zYXZlCQkJPSBzX3Jlc3RvcmVfdG1wCit2YXIgc19yZXN0b3JlX20wCQkJCT0gc19yZXN0b3JlX2FsbG9jX3NpemUKK3ZhciBzX3Jlc3RvcmVfbW9kZQkJCQk9IHR0bXA3Cit2YXIgc19yZXN0b3JlX2ZsYXRfc2NyYXRjaAkJCT0gdHRtcDIKK3ZhciBzX3Jlc3RvcmVfcGNfbG8JCQkJPSB0dG1wMAordmFyIHNfcmVzdG9yZV9wY19oaQkJCQk9IHR0bXAxCit2YXIgc19yZXN0b3JlX2V4ZWNfbG8JCQkJPSB0dG1wMTQKK3ZhciBzX3Jlc3RvcmVfZXhlY19oaQkJCQk9IHR0bXAxNQordmFyIHNfcmVzdG9yZV9zdGF0dXMJCQkJPSB0dG1wNAordmFyIHNfcmVzdG9yZV90cmFwc3RzCQkJCT0gdHRtcDUKK3ZhciBzX3Jlc3RvcmVfeG5hY2tfbWFzawkJCT0gdHRtcDEzCit2YXIgc19yZXN0b3JlX2J1Zl9yc3JjMAkJCQk9IHR0bXA4Cit2YXIgc19yZXN0b3JlX2J1Zl9yc3JjMQkJCQk9IHR0bXA5Cit2YXIgc19yZXN0b3JlX2J1Zl9yc3JjMgkJCQk9IHR0bXAxMAordmFyIHNfcmVzdG9yZV9idWZfcnNyYzMJCQkJPSB0dG1wMTEKK3ZhciBzX3Jlc3RvcmVfc2l6ZQkJCQk9IHR0bXA3CiAKIHNoYWRlciBtYWluCisJYXNpYyhERUZBVUxUKQorCXR5cGUoQ1MpCisJd2F2ZV9zaXplKDMyKQogCi1hc2ljKERFRkFVTFQpCi0KLXR5cGUoQ1MpCi0KLXdhdmVfc2l6ZSgzMikKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoJCQkJCWNvbnRyb2wgb24gaG93IHRvIHJ1biB0aGUgc2hhZGVyCQkJCQkgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLy9hbnkgaGFjayB0aGF0IG5lZWRzIHRvIGJlIG1hZGUgdG8gcnVuIHRoaXMgY29kZSBpbiBFTVUgKGVpdGhlciBiZWNhc3VlIHZhcmlvdXMgRU1VIGNvZGUgYXJlIG5vdCByZWFkeSBvciBubyBjb21wdXRlIHNhdmUgJiByZXN0b3JlIGluIEVNVSBydW4pCi12YXIgRU1VX1JVTl9IQUNLCQkJCQk9CTAKLXZhciBFTVVfUlVOX0hBQ0tfUkVTVE9SRV9OT1JNQUwJCT0JMAotdmFyIEVNVV9SVU5fSEFDS19TQVZFX05PUk1BTF9FWElUCT0JMAotdmFyCUVNVV9SVU5fSEFDS19TQVZFX1NJTkdMRV9XQVZFCT0JMAotdmFyIEVNVV9SVU5fSEFDS19TQVZFX0ZJUlNUX1RJTUUJPSAJMAkJCQkJLy9mb3IgaW50ZXJydXB0ZWQgcmVzdG9yZSBpbiB3aGljaCB0aGUgZmlyc3Qgc2F2ZSBpcyB0aHJvdWdoIEVNVV9SVU5fSEFDSwotdmFyIFNBVkVfTERTCQkJCQkJPSAJMAotdmFyIFdHX0JBU0VfQUREUl9MTwkJCQkJPSAgIDB4OTAwMGEwMDAKLXZhciBXR19CQVNFX0FERFJfSEkJCQkJCT0JMHgwCi12YXIgV0FWRV9TUEFDRQkJCQkJCT0JMHg5MDAwCQkJCS8vbWVtb3J5IHNpemUgdGhhdCBlYWNoIHdhdmUgb2NjdXBpZXMgaW4gd29ya2dyb3VwIHN0YXRlIG1lbSwgaW5jcmVhc2UgZnJvbSA1MDAwIHRvIDkwMDAgZm9yIG1vcmUgU0dQUiBuZWVkIHRvIGJlIHNhdmVkCi12YXIgQ1RYX1NBVkVfQ09OVFJPTAkJCQk9CTB4MAotdmFyIENUWF9SRVNUT1JFX0NPTlRST0wJCQkJPQlDVFhfU0FWRV9DT05UUk9MCi12YXIgU0lNX1JVTl9IQUNLCQkJCQk9CTAJCQkJCS8vYW55IGhhY2sgdGhhdCBuZWVkcyB0byBiZSBtYWRlIHRvIHJ1biB0aGlzIGNvZGUgaW4gU0lNIChlaXRoZXIgYmVjYXN1ZSB2YXJpb3VzIFJUTCBjb2RlIGFyZSBub3QgcmVhZHkgb3Igbm8gY29tcHV0ZSBzYXZlICYgcmVzdG9yZSBpbiBSVEwgcnVuKQotdmFyCVNHUFJfU0FWRV9VU0VfU1FDCQkJCT0JMAkJCQkJLy91c2UgU1FDIEQkIHRvIGRvIHRoZSB3cml0ZQotdmFyIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGCQk9CTAJCQkJCS8vbmVlZCB0byBjaGFuZ2UgQlVGX0RBVEFfRk9STUFUIGluIFNfU0FWRV9CVUZfUlNSQ19XT1JEM19NSVNDIGZyb20gMCB0byBCVUZfREFUQV9GT1JNQVRfMzIgaWYgc2V0IHRvIDEgKGkuZS4gMHgwMDgyN0ZBQykKLXZhciBTV0laWkxFX0VOCQkJCQkJPQkwCQkJCQkvL3doZXRoZXIgd2UgdXNlIHN3aXp6bGVkIGJ1ZmZlciBhZGRyZXNzaW5nCi12YXIgU0FWRV9SRVNUT1JFX0hXSURfRERJRCAgICAgICAgICA9ICAgMAotdmFyIFJFU1RPUkVfRERJRF9JTl9TR1BSMTggICAgICAgICAgPSAgIDAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qICAgICAgICAgICAgICAgICAgICAgCXZhcmlhYmxlcwkJCQkJCQkgICAgICAgICAgICAgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi12YXIgU1FfV0FWRV9TVEFUVVNfSU5TVF9BVENfU0hJRlQgID0gMjMKLXZhciBTUV9XQVZFX1NUQVRVU19JTlNUX0FUQ19NQVNLICAgPSAweDAwODAwMDAwCi12YXIgU1FfV0FWRV9TVEFUVVNfU1BJX1BSSU9fTUFTSyAgID0gMHgwMDAwMDAwNgotCi12YXIgU1FfV0FWRV9MRFNfQUxMT0NfTERTX1NJWkVfU0hJRlQJPSAxMgotdmFyIFNRX1dBVkVfTERTX0FMTE9DX0xEU19TSVpFX1NJWkUJCT0gOQotdmFyIFNRX1dBVkVfR1BSX0FMTE9DX1ZHUFJfU0laRV9TSElGVAk9IDgKLXZhciBTUV9XQVZFX0dQUl9BTExPQ19WR1BSX1NJWkVfU0laRQk9IDYKLXZhciBTUV9XQVZFX0dQUl9BTExPQ19TR1BSX1NJWkVfU0hJRlQJPSAyNAotdmFyIFNRX1dBVkVfR1BSX0FMTE9DX1NHUFJfU0laRV9TSVpFCT0gNAkJCQkJCS8vRklYTUUJIHNxLmJsayBzdGlsbCBoYXMgNCBiaXRzIGF0IHRoaXMgdGltZSB3aGlsZSBTUSBwcm9ncmFtbWluZyBndWlkZSBoYXMgMyBiaXRzCi12YXIgU1FfV0FWRV9MRFNfQUxMT0NfVkdQUl9TSEFSRURfU0laRV9TSElGVCAgICA9IDI0Ci12YXIgU1FfV0FWRV9MRFNfQUxMT0NfVkdQUl9TSEFSRURfU0laRV9TSVpFICAgICA9IDQKLXZhciBTUV9XQVZFX0lCX1NUUzJfV0FWRTY0X1NISUZUICAgICAgICA9IDExCi12YXIgU1FfV0FWRV9JQl9TVFMyX1dBVkU2NF9TSVpFICAgICAgICAgPSAxCi0KLXZhcglTUV9XQVZFX1RSQVBTVFNfU0FWRUNUWF9NQVNLCT0JMHg0MDAKLXZhciBTUV9XQVZFX1RSQVBTVFNfRVhDRV9NQVNLICAgICAgID0gICAweDFGRiAgICAgICAgICAJCQkvLyBFeGNlcHRpb24gbWFzawotdmFyCVNRX1dBVkVfVFJBUFNUU19TQVZFQ1RYX1NISUZUCT0JMTAJCQkJCQotdmFyCVNRX1dBVkVfVFJBUFNUU19NRU1fVklPTF9NQVNLCT0JMHgxMDAJCQkJCQotdmFyCVNRX1dBVkVfVFJBUFNUU19NRU1fVklPTF9TSElGVAk9CTgJCQotdmFyCVNRX1dBVkVfVFJBUFNUU19QUkVfU0FWRUNUWF9NQVNLIAk9CTB4M0ZGCi12YXIJU1FfV0FWRV9UUkFQU1RTX1BSRV9TQVZFQ1RYX1NISUZUIAk9CTB4MAotdmFyCVNRX1dBVkVfVFJBUFNUU19QUkVfU0FWRUNUWF9TSVpFIAk9CTEwCi12YXIJU1FfV0FWRV9UUkFQU1RTX1BPU1RfU0FWRUNUWF9NQVNLIAk9CTB4RkZGRkY4MDAJCi12YXIJU1FfV0FWRV9UUkFQU1RTX1BPU1RfU0FWRUNUWF9TSElGVCAJPQkxMQotdmFyCVNRX1dBVkVfVFJBUFNUU19QT1NUX1NBVkVDVFhfU0laRSAJPQkyMQkKLQotdmFyIFNRX1dBVkVfSUJfU1RTX1JDTlRfU0hJRlQJCQk9CTE2CQkJCQkvL0ZJWE1FCi12YXIgU1FfV0FWRV9JQl9TVFNfRklSU1RfUkVQTEFZX1NISUZUCT0JMTUJCQkJCS8vRklYTUUKLXZhciBTUV9XQVZFX0lCX1NUU19GSVJTVF9SRVBMQVlfU0laRSAgICA9ICAgMSAgICAgICAgICAgICAgICAgICAvL0ZJWE1FCi12YXIgU1FfV0FWRV9JQl9TVFNfUkNOVF9TSVpFICAgICAgICAgICAgPSAgIDYgICAgICAgICAgICAgICAgICAgLy9GSVhNRQotdmFyIFNRX1dBVkVfSUJfU1RTX1JDTlRfRklSU1RfUkVQTEFZX01BU0tfTkVHCT0gMHgwMDAwN0ZGRgkvL0ZJWE1FCi0gCi12YXIJU1FfQlVGX1JTUkNfV09SRDFfQVRDX1NISUZUCQk9CTI0Ci12YXIJU1FfQlVGX1JTUkNfV09SRDNfTVRZUEVfU0hJRlQJPQkyNwotCi0KLS8qICAgICAgU2F2ZSAgICAgICAgKi8KLXZhcglTX1NBVkVfQlVGX1JTUkNfV09SRDFfU1RSSURFCQk9CTB4MDAwNDAwMDAgIAkJLy9zdHJpZGUgaXMgNCBieXRlcyAKLXZhcglTX1NBVkVfQlVGX1JTUkNfV09SRDNfTUlTQwkJCT0gCTB4MDA4MDdGQUMJCQkvL1NRX1NFTF9YL1kvWi9XLCBCVUZfTlVNX0ZPUk1BVF9GTE9BVCwgKDAgZm9yIE1VQlVGIHN0cmlkZVsxNzoxNF0gd2hlbiBBRERfVElEX0VOQUJMRSBhbmQgQlVGX0RBVEFfRk9STUFUXzMyIGZvciBNVEJVRiksIEFERF9USURfRU5BQkxFCQkJCi0KLXZhcglTX1NBVkVfU1BJX0lOSVRfQVRDX01BU0sJCQk9CTB4MDgwMDAwMDAJCQkvL2JpdFsyN106IEFUQyBiaXQKLXZhcglTX1NBVkVfU1BJX0lOSVRfQVRDX1NISUZUCQkJPQkyNwotdmFyCVNfU0FWRV9TUElfSU5JVF9NVFlQRV9NQVNLCQkJPQkweDcwMDAwMDAwCQkJLy9iaXRbMzA6MjhdOiBNdHlwZQotdmFyCVNfU0FWRV9TUElfSU5JVF9NVFlQRV9TSElGVAkJCT0JMjgKLXZhcglTX1NBVkVfU1BJX0lOSVRfRklSU1RfV0FWRV9NQVNLCQk9CTB4MDQwMDAwMDAJCQkvL2JpdFsyNl06IEZpcnN0V2F2ZUluVEcKLXZhcglTX1NBVkVfU1BJX0lOSVRfRklSU1RfV0FWRV9TSElGVAk9CTI2Ci0KLXZhciBTX1NBVkVfUENfSElfUkNOVF9TSElGVAkJCQk9CTI4CQkJCQkvL0ZJWE1FCSBjaGVjayB3aXRoIEJyaWFuIHRvIGVuc3VyZSBhbGwgZmllbGRzIG90aGVyIHRoYW4gUENbNDc6MF0gY2FuIGJlIHVzZWQKLXZhciBTX1NBVkVfUENfSElfUkNOVF9NQVNLCQkJCT0gICAweEYwMDAwMDAwCQkJLy9GSVhNRQotdmFyIFNfU0FWRV9QQ19ISV9GSVJTVF9SRVBMQVlfU0hJRlQJCT0JMjcJCQkJCS8vRklYTUUKLXZhciBTX1NBVkVfUENfSElfRklSU1RfUkVQTEFZX01BU0sJCT0JMHgwODAwMDAwMAkJCS8vRklYTUUKLQotdmFyCXNfc2F2ZV9zcGlfaW5pdF9sbwkJCQk9CWV4ZWNfbG8KLXZhciBzX3NhdmVfc3BpX2luaXRfaGkJCQkJPQlleGVjX2hpCi0KLXZhcglzX3NhdmVfcGNfbG8JCQk9CXR0bXAwCQkJLy97VFRNUDEsIFRUTVAwfSA9IHszoa9oMCxwY19yZXdpbmRbMzowXSwgSFRbMF0sdHJhcElEWzc6MF0sIFBDWzQ3OjBdfQotdmFyCXNfc2F2ZV9wY19oaQkJCT0JdHRtcDEJCQkKLXZhciBzX3NhdmVfZXhlY19sbwkJCT0JdHRtcDIKLXZhciBzX3NhdmVfZXhlY19oaQkJCT0gCXR0bXAzCQkJCi12YXIJc19zYXZlX3N0YXR1cwkJCT0JdHRtcDQJCQkKLXZhcglzX3NhdmVfdHJhcHN0cwkJCT0JdHRtcDUJCQkvL25vdCByZWFsbHkgdXNlZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBTQVZFIHJvdXRpbmUKLXZhciBzX3dhdmVfc2l6ZSAgICAgICAgIAk9CXR0bXA2ICAgICAgICAgICAvL3R0bXA2IGlzIG5vdCBuZWVkZWQgbm93LCBzaW5jZSBpdCdzIG9ubHkgMzJiaXQgeG5hY2sgbWFzaywgbm93IHVzZSBpdCB0byBkZXRlcm1pbmUgd2F2ZTMyIG9yIHdhdmU2NCBpbiBFTVVfSEFDSwotdmFyIHNfc2F2ZV94bmFja19tYXNrCSAgICA9CXR0bXA3Ci12YXIJc19zYXZlX2J1Zl9yc3JjMAkJPQl0dG1wOAotdmFyCXNfc2F2ZV9idWZfcnNyYzEJCT0JdHRtcDkKLXZhcglzX3NhdmVfYnVmX3JzcmMyCQk9CXR0bXAxMAotdmFyCXNfc2F2ZV9idWZfcnNyYzMJCT0JdHRtcDExCi0KLXZhciBzX3NhdmVfbWVtX29mZnNldAkJPSAJdHRtcDE0Ci12YXIgc19zZ3ByX3NhdmVfbnVtICAgICAgICAgPSAgIDEwNiAgICAgICAgICAgICAgICAgICAgIC8vaW4gZ2Z4MTAsIGFsbCBzZ3ByIG11c3QgYmUgc2F2ZWQKLXZhciBzX3NhdmVfYWxsb2Nfc2l6ZQkJPQlzX3NhdmVfdHJhcHN0cwkJCS8vY29uZmxpY3QKLXZhciBzX3NhdmVfdG1wICAgICAgICAgICAgICA9ICAgc19zYXZlX2J1Zl9yc3JjMiAgICAgICAJLy9zaGFyZWQgd2l0aCBzX3NhdmVfYnVmX3JzcmMyICAoY29uZmxpY3Q6IHNob3VsZCBub3QgdXNlIG1lbSBhY2Nlc3Mgd2l0aCBzX3NhdmVfdG1wIGF0IHRoZSBzYW1lIHRpbWUpCi12YXIgc19zYXZlX20wCQkJCT0JdHRtcDE1CQkJCQkKLQotLyogICAgICBSZXN0b3JlICAgICAqLwotdmFyCVNfUkVTVE9SRV9CVUZfUlNSQ19XT1JEMV9TVFJJREUJCQk9CVNfU0FWRV9CVUZfUlNSQ19XT1JEMV9TVFJJREUgCi12YXIJU19SRVNUT1JFX0JVRl9SU1JDX1dPUkQzX01JU0MJCQk9IAlTX1NBVkVfQlVGX1JTUkNfV09SRDNfTUlTQwkJIAotCi12YXIJU19SRVNUT1JFX1NQSV9JTklUX0FUQ19NQVNLCQkJICAgID0JMHgwODAwMDAwMAkJCS8vYml0WzI3XTogQVRDIGJpdAotdmFyCVNfUkVTVE9SRV9TUElfSU5JVF9BVENfU0hJRlQJCQk9CTI3Ci12YXIJU19SRVNUT1JFX1NQSV9JTklUX01UWVBFX01BU0sJCQk9CTB4NzAwMDAwMDAJCQkvL2JpdFszMDoyOF06IE10eXBlCi12YXIJU19SRVNUT1JFX1NQSV9JTklUX01UWVBFX1NISUZUCQkJPQkyOAotdmFyCVNfUkVTVE9SRV9TUElfSU5JVF9GSVJTVF9XQVZFX01BU0sJCT0JMHgwNDAwMDAwMAkJCS8vYml0WzI2XTogRmlyc3RXYXZlSW5URwotdmFyCVNfUkVTVE9SRV9TUElfSU5JVF9GSVJTVF9XQVZFX1NISUZUCSAgICA9CTI2Ci0KLXZhciBTX1JFU1RPUkVfUENfSElfUkNOVF9TSElGVAkJCQk9CVNfU0FWRV9QQ19ISV9SQ05UX1NISUZUCi12YXIgU19SRVNUT1JFX1BDX0hJX1JDTlRfTUFTSwkJCQk9ICAgU19TQVZFX1BDX0hJX1JDTlRfTUFTSwotdmFyIFNfUkVTVE9SRV9QQ19ISV9GSVJTVF9SRVBMQVlfU0hJRlQJCT0JU19TQVZFX1BDX0hJX0ZJUlNUX1JFUExBWV9TSElGVAotdmFyIFNfUkVTVE9SRV9QQ19ISV9GSVJTVF9SRVBMQVlfTUFTSwkJPQlTX1NBVkVfUENfSElfRklSU1RfUkVQTEFZX01BU0sKLQotdmFyIHNfcmVzdG9yZV9zcGlfaW5pdF9sbyAgICAgICAgICAgICAgICAgICA9ICAgZXhlY19sbwotdmFyIHNfcmVzdG9yZV9zcGlfaW5pdF9oaSAgICAgICAgICAgICAgICAgICA9ICAgZXhlY19oaQotCi12YXIgc19yZXN0b3JlX21lbV9vZmZzZXQJCT0gCXR0bXAxMgotdmFyIHNfcmVzdG9yZV9hbGxvY19zaXplCQk9CXR0bXAzCi12YXIgc19yZXN0b3JlX3RtcCAgICAgICAgICAgCT0gICB0dG1wNgotdmFyIHNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUJPSAJc19yZXN0b3JlX3RtcCAJCS8vbm8gY29uZmxpY3QKLQotdmFyIHNfcmVzdG9yZV9tMAkJCT0Jc19yZXN0b3JlX2FsbG9jX3NpemUJLy9ubyBjb25mbGljdAkJCQotCi12YXIgc19yZXN0b3JlX21vZGUJCQk9ICAJdHRtcDEzCi12YXIgc19yZXN0b3JlX2h3aWQxICAgICAgICAgPSAgdHRtcDIKLXZhciBzX3Jlc3RvcmVfZGRpZCAgICAgICAgICA9ICBzX3Jlc3RvcmVfaHdpZDEKLXZhcglzX3Jlc3RvcmVfcGNfbG8JCSAgICA9CXR0bXAwCQkJCi12YXIJc19yZXN0b3JlX3BjX2hpCQkgICAgPQl0dG1wMQotdmFyIHNfcmVzdG9yZV9leGVjX2xvCQk9CXR0bXAxNAotdmFyIHNfcmVzdG9yZV9leGVjX2hpCQk9IAl0dG1wMTUKLXZhcglzX3Jlc3RvcmVfc3RhdHVzCSAgICA9CXR0bXA0CQkJCi12YXIJc19yZXN0b3JlX3RyYXBzdHMJICAgID0JdHRtcDUKLS8vdmFyIHNfcmVzdG9yZV94bmFja19tYXNrX2xvCT0JeG5hY2tfbWFza19sbwotLy92YXIgc19yZXN0b3JlX3huYWNrX21hc2tfaGkJPQl4bmFja19tYXNrX2hpCi12YXIgc19yZXN0b3JlX3huYWNrX21hc2sgICAgPSAgIHR0bXA3Ci12YXIJc19yZXN0b3JlX2J1Zl9yc3JjMAkJPQl0dG1wOAotdmFyCXNfcmVzdG9yZV9idWZfcnNyYzEJCT0JdHRtcDkKLXZhcglzX3Jlc3RvcmVfYnVmX3JzcmMyCQk9CXR0bXAxMAotdmFyCXNfcmVzdG9yZV9idWZfcnNyYzMJCT0JdHRtcDExCi12YXIgc19yZXN0b3JlX3NpemUgICAgICAgICAJPQl0dG1wMTMgICAgICAgICAgICAgICAgICAvL3R0bXAxMyBoYXMgbm8gY29uZmxpY3QKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogICAgICAgICAgICAgICAgICAgICAJdHJhcCBoYW5kbGVyIGVudHJ5IHBvaW50cwkJCSAgICAgICAgICAgICAgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAgICBpZiAoKEVNVV9SVU5fSEFDSykgJiYgKCFFTVVfUlVOX0hBQ0tfUkVTVE9SRV9OT1JNQUwpKSAJCQkJCS8vaGFjayB0byB1c2UgdHJhcF9pZCBmb3IgZGV0ZXJtaW5pbmcgc2F2ZS9yZXN0b3JlCi0JCS8vRklYTUUgVkNDWiB1bi1pbml0IGFzc2VydGlvbiBzX2dldHJlZ19iMzIgIAlzX3NhdmVfc3RhdHVzLCBod3JlZyhIV19SRUdfU1RBVFVTKQkJCS8vc2F2ZSBTVEFUVVMgc2luY2Ugd2Ugd2lsbCBjaGFuZ2UgU0NDCi0JCXNfYW5kX2IzMiBzX3NhdmVfdG1wLCBzX3NhdmVfcGNfaGksIDB4ZmZmZjAwMDAgCQkJCS8vY2hhbmdlIFNDQwotICAgIAlzX2NtcF9lcV91MzIgc19zYXZlX3RtcCwgMHgwMDdlMDAwMCAgCQkJCQkJLy9TYXZlOiB0cmFwX2lkID0gMHg3ZS4gUmVzdG9yZTogdHJhcF9pZCA9IDB4N2YuICAKLSAgICAJc19jYnJhbmNoX3NjYzAgTF9KVU1QX1RPX1JFU1RPUkUJCQkJCQkJLy9kbyBub3QgbmVlZCB0byByZWNvdmVyIFNUQVRVUyBoZXJlICBzaW5jZSB3ZSBhcmUgZ29pbmcgdG8gUkVTVE9SRQotCQkvL0ZJWE1FICBzX3NldHJlZ19iMzIgCWh3cmVnKEhXX1JFR19TVEFUVVMpLCAJc19zYXZlX3N0YXR1cwkJLy9uZWVkIHRvIHJlY292ZXIgU1RBVFVTIHNpbmNlIHdlIGFyZSBnb2luZyB0byBTQVZFCQotCQlzX2JyYW5jaCBMX1NLSVBfUkVTVE9SRSAJCQkJCQkJCQkvL05PVCByZXN0b3JlLCBTQVZFIGFjdHVhbGx5Ci0JZWxzZQkKLQkJc19icmFuY2ggTF9TS0lQX1JFU1RPUkUgCQkJCQkJCQkJLy9OT1QgcmVzdG9yZS4gbWlnaHQgYmUgYSByZWd1bGFyIHRyYXAgb3Igc2F2ZQotICAgIGVuZAorCXNfYnJhbmNoCUxfU0tJUF9SRVNUT1JFCQkJCQkJLy9OT1QgcmVzdG9yZS4gbWlnaHQgYmUgYSByZWd1bGFyIHRyYXAgb3Igc2F2ZQogCiBMX0pVTVBfVE9fUkVTVE9SRToKLSAgICBzX2JyYW5jaCBMX1JFU1RPUkUJCQkJCQkJCQkJCQkvL3Jlc3RvcmUKKwlzX2JyYW5jaAlMX1JFU1RPUkUKIAogTF9TS0lQX1JFU1RPUkU6Ci0JCi0Jc19nZXRyZWdfYjMyICAJc19zYXZlX3N0YXR1cywgaHdyZWcoSFdfUkVHX1NUQVRVUykJCQkJCQkJCS8vc2F2ZSBTVEFUVVMgc2luY2Ugd2Ugd2lsbCBjaGFuZ2UgU0NDCi0gICAgc19hbmRuMl9iMzIJCXNfc2F2ZV9zdGF0dXMsIHNfc2F2ZV9zdGF0dXMsIFNRX1dBVkVfU1RBVFVTX1NQSV9QUklPX01BU0sgICAgICAvL2NoZWNrIHdoZXRoZXIgdGhpcyBpcyBmb3Igc2F2ZQotCXNfZ2V0cmVnX2IzMiAgCXNfc2F2ZV90cmFwc3RzLCBod3JlZyhIV19SRUdfVFJBUFNUUykgICAgCQkgCQkJCQotCXNfYW5kX2IzMgkJc19zYXZlX3RyYXBzdHMsIHNfc2F2ZV90cmFwc3RzLCBTUV9XQVZFX1RSQVBTVFNfU0FWRUNUWF9NQVNLCS8vY2hlY2sgd2hldGhlciB0aGlzIGlzIGZvciBzYXZlICAKLQlzX2NicmFuY2hfc2NjMQlMX1NBVkUJCQkJCQkJCQkJCQkJCQkvL3RoaXMgaXMgdGhlIG9wZXJhdGlvbiBmb3Igc2F2ZQorCXNfZ2V0cmVnX2IzMglzX3NhdmVfc3RhdHVzLCBod3JlZyhIV19SRUdfU1RBVFVTKQkJCS8vc2F2ZSBTVEFUVVMgc2luY2Ugd2Ugd2lsbCBjaGFuZ2UgU0NDCisJc19hbmRuMl9iMzIJc19zYXZlX3N0YXR1cywgc19zYXZlX3N0YXR1cywgU1FfV0FWRV9TVEFUVVNfU1BJX1BSSU9fTUFTSworCXNfZ2V0cmVnX2IzMglzX3NhdmVfdHJhcHN0cywgaHdyZWcoSFdfUkVHX1RSQVBTVFMpCisJc19hbmRfYjMyCXR0bXAyLCBzX3NhdmVfdHJhcHN0cywgU1FfV0FWRV9UUkFQU1RTX1NBVkVDVFhfTUFTSwkvL2NoZWNrIHdoZXRoZXIgdGhpcyBpcyBmb3Igc2F2ZQorCXNfY2JyYW5jaF9zY2MxCUxfU0FWRQogCi0gICAgLy8gKioqKioqKioqICAgIEhhbmRsZSBub24tQ1dTUiB0cmFwcyAgICAgICAqKioqKioqKioqKioqKioqKioqCi0gICAgaWYgKCFFTVVfUlVOX0hBQ0spCi0JCXNfZ2V0cmVnX2IzMiAgICAgc19zYXZlX3RyYXBzdHMsIGh3cmVnKEhXX1JFR19UUkFQU1RTKQotCQlzX2FuZF9iMzIgICAgICAgIHNfc2F2ZV90cmFwc3RzLCBzX3NhdmVfdHJhcHN0cywgU1FfV0FWRV9UUkFQU1RTX0VYQ0VfTUFTSyAvLyBDaGVjayB3aGV0aGVyIGl0IGlzIGFuIGV4Y2VwdGlvbgotCQlzX2NicmFuY2hfc2NjMSAgTF9FWENQX0NBU0UgICAvLyBFeGNlcHRpb24sIGp1bXAgYmFjayB0byB0aGUgc2hhZGVyIHByb2dyYW0gZGlyZWN0bHkuCi0JCXNfYWRkX3UzMiAgICB0dG1wMCwgdHRtcDAsIDQgICAvLyBTX1RSQVAgY2FzZSwgYWRkIDQgdG8gdHRtcDAgCi0JCQotCQlMX0VYQ1BfQ0FTRToKLQkJc19hbmRfYjMyICAgIHR0bXAxLCB0dG1wMSwgMHhGRkZGCi0JCXNfcmZlX2I2NCAgICBbdHRtcDAsIHR0bXAxXQotCWVuZAotICAgIC8vICoqKioqKioqKiAgICAgICAgRW5kIGhhbmRsaW5nIG9mIG5vbi1DV1NSIHRyYXBzICAgKioqKioqKioqKioqKioqKioqKgorCS8vIElmIFNUQVRVUy5NRU1fVklPTCBpcyBhc3NlcnRlZCB0aGVuIGhhbHQgdGhlIHdhdmUgdG8gcHJldmVudAorCS8vIHRoZSBleGNlcHRpb24gcmFpc2luZyBhZ2FpbiBhbmQgYmxvY2tpbmcgY29udGV4dCBzYXZlLgorCXNfYW5kX2IzMgl0dG1wMiwgc19zYXZlX3RyYXBzdHMsIFNRX1dBVkVfVFJBUFNUU19NRU1fVklPTF9NQVNLCisJc19jYnJhbmNoX3NjYzAJTF9GRVRDSF8yTkRfVFJBUAorCXNfb3JfYjMyCXNfc2F2ZV9zdGF0dXMsIHNfc2F2ZV9zdGF0dXMsIFNRX1dBVkVfU1RBVFVTX0hBTFRfTUFTSwogCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiAgICAgICAgICAgICAgICAgICAgIAlzYXZlIHJvdXRpbmUJCQkJCQkgICAgICAgICAgICAgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitMX0ZFVENIXzJORF9UUkFQOgorCS8vIFByZXNlcnZlIGFuZCBjbGVhciBzY2FsYXIgWE5BQ0sgc3RhdGUgYmVmb3JlIGlzc3Vpbmcgc2NhbGFyIGxvYWRzLgorCS8vIFNhdmUgSUJfU1RTLlJFUExBWV9XNjRIWzI1XSwgUkNOVFsyMToxNl0sIEZJUlNUX1JFUExBWVsxNV0gaW50bworCS8vIHVudXNlZCBzcGFjZSB0dG1wMTFbMzE6MjRdLgorCXNfYW5kbjJfYjMyCXR0bXAxMSwgdHRtcDExLCAoVFRNUDExX1NBVkVfUkVQTEFZX1c2NEhfTUFTSyB8IFRUTVAxMV9TQVZFX1JDTlRfRklSU1RfUkVQTEFZX01BU0spCisJc19nZXRyZWdfYjMyCXR0bXAyLCBod3JlZyhIV19SRUdfSUJfU1RTKQorCXNfYW5kX2IzMgl0dG1wMywgdHRtcDIsIFNRX1dBVkVfSUJfU1RTX1JFUExBWV9XNjRIX01BU0sKKwlzX2xzaGxfYjMyCXR0bXAzLCB0dG1wMywgKFRUTVAxMV9TQVZFX1JFUExBWV9XNjRIX1NISUZUIC0gU1FfV0FWRV9JQl9TVFNfUkVQTEFZX1c2NEhfU0hJRlQpCisJc19vcl9iMzIJdHRtcDExLCB0dG1wMTEsIHR0bXAzCisJc19hbmRfYjMyCXR0bXAzLCB0dG1wMiwgU1FfV0FWRV9JQl9TVFNfUkNOVF9GSVJTVF9SRVBMQVlfTUFTSworCXNfbHNobF9iMzIJdHRtcDMsIHR0bXAzLCAoVFRNUDExX1NBVkVfUkNOVF9GSVJTVF9SRVBMQVlfU0hJRlQgLSBTUV9XQVZFX0lCX1NUU19GSVJTVF9SRVBMQVlfU0hJRlQpCisJc19vcl9iMzIJdHRtcDExLCB0dG1wMTEsIHR0bXAzCisJc19hbmRuMl9iMzIJdHRtcDIsIHR0bXAyLCAoU1FfV0FWRV9JQl9TVFNfUkVQTEFZX1c2NEhfTUFTSyB8IFNRX1dBVkVfSUJfU1RTX1JDTlRfRklSU1RfUkVQTEFZX01BU0spCisJc19zZXRyZWdfYjMyCWh3cmVnKEhXX1JFR19JQl9TVFMpLCB0dG1wMgogCi1MX1NBVkU6CQotCQorCS8vIFJlYWQgc2Vjb25kLWxldmVsIFRCQS9UTUEgZnJvbSBmaXJzdC1sZXZlbCBUTUEgYW5kIGp1bXAgaWYgYXZhaWxhYmxlLgorCS8vIHR0bXBbMjo1XSBhbmQgdHRtcDEyIGNhbiBiZSB1c2VkIChvdGhlcnMgaG9sZCBTUEktaW5pdGlhbGl6ZWQgZGVidWcgZGF0YSkKKwkvLyB0dG1wMTIgaG9sZHMgU1FfV0FWRV9TVEFUVVMKKwlzX2dldHJlZ19iMzIJdHRtcDE0LCBod3JlZyhIV19SRUdfU0hBREVSX1RNQV9MTykKKwlzX2dldHJlZ19iMzIJdHRtcDE1LCBod3JlZyhIV19SRUdfU0hBREVSX1RNQV9ISSkKKwlzX2xzaGxfYjY0CVt0dG1wMTQsIHR0bXAxNV0sIFt0dG1wMTQsIHR0bXAxNV0sIDB4OAorCXNfbG9hZF9kd29yZHgyCVt0dG1wMiwgdHRtcDNdLCBbdHRtcDE0LCB0dG1wMTVdLCAweDAgZ2xjOjEJCS8vIHNlY29uZC1sZXZlbCBUQkEKKwlzX3dhaXRjbnQJbGdrbWNudCgwKQorCXNfbG9hZF9kd29yZHgyCVt0dG1wMTQsIHR0bXAxNV0sIFt0dG1wMTQsIHR0bXAxNV0sIDB4OCBnbGM6MQkJLy8gc2Vjb25kLWxldmVsIFRNQQorCXNfd2FpdGNudAlsZ2ttY250KDApCisJc19hbmRfYjY0CVt0dG1wMiwgdHRtcDNdLCBbdHRtcDIsIHR0bXAzXSwgW3R0bXAyLCB0dG1wM10KKwlzX2NicmFuY2hfc2NjMAlMX05PX05FWFRfVFJBUAkJCQkJCS8vIHNlY29uZC1sZXZlbCB0cmFwIGhhbmRsZXIgbm90IGJlZW4gc2V0CisJc19zZXRwY19iNjQJW3R0bXAyLCB0dG1wM10JCQkJCQkvLyBqdW1wIHRvIHNlY29uZC1sZXZlbCB0cmFwIGhhbmRsZXIKKworTF9OT19ORVhUX1RSQVA6CisJc19nZXRyZWdfYjMyCXNfc2F2ZV90cmFwc3RzLCBod3JlZyhIV19SRUdfVFJBUFNUUykKKwlzX2FuZF9iMzIJc19zYXZlX3RyYXBzdHMsIHNfc2F2ZV90cmFwc3RzLCBTUV9XQVZFX1RSQVBTVFNfRVhDRV9NQVNLCisJc19jYnJhbmNoX3NjYzEJTF9FWENQX0NBU0UJCQkJCQkvLyBFeGNlcHRpb24sIGp1bXAgYmFjayB0byB0aGUgc2hhZGVyIHByb2dyYW0gZGlyZWN0bHkuCisJc19hZGRfdTMyCXR0bXAwLCB0dG1wMCwgNAkJCQkJCS8vIFNfVFJBUCBjYXNlLCBhZGQgNCB0byB0dG1wMAorCXNfYWRkY191MzIJdHRtcDEsIHR0bXAxLCAwCitMX0VYQ1BfQ0FTRToKKwlzX2FuZF9iMzIJdHRtcDEsIHR0bXAxLCAweEZGRkYKKworCS8vIFJlc3RvcmUgU1FfV0FWRV9JQl9TVFMuCisJc19sc2hyX2IzMgl0dG1wMiwgdHRtcDExLCAoVFRNUDExX1NBVkVfUkNOVF9GSVJTVF9SRVBMQVlfU0hJRlQgLSBTUV9XQVZFX0lCX1NUU19GSVJTVF9SRVBMQVlfU0hJRlQpCisJc19hbmRfYjMyCXR0bXAzLCB0dG1wMiwgU1FfV0FWRV9JQl9TVFNfUkNOVF9GSVJTVF9SRVBMQVlfTUFTSworCXNfbHNocl9iMzIJdHRtcDIsIHR0bXAxMSwgKFRUTVAxMV9TQVZFX1JFUExBWV9XNjRIX1NISUZUIC0gU1FfV0FWRV9JQl9TVFNfUkVQTEFZX1c2NEhfU0hJRlQpCisJc19hbmRfYjMyCXR0bXAyLCB0dG1wMiwgU1FfV0FWRV9JQl9TVFNfUkVQTEFZX1c2NEhfTUFTSworCXNfb3JfYjMyCXR0bXAyLCB0dG1wMiwgdHRtcDMKKwlzX3NldHJlZ19iMzIJaHdyZWcoSFdfUkVHX0lCX1NUUyksIHR0bXAyCisKKwkvLyBSZXN0b3JlIFNRX1dBVkVfU1RBVFVTLgorCXNfYW5kX2I2NAlleGVjLCBleGVjLCBleGVjCQkJCQkvLyBSZXN0b3JlIFNUQVRVUy5FWEVDWiwgbm90IHdyaXRhYmxlIGJ5IHNfc2V0cmVnX2IzMgorCXNfYW5kX2I2NAl2Y2MsIHZjYywgdmNjCQkJCQkJLy8gUmVzdG9yZSBTVEFUVVMuVkNDWiwgbm90IHdyaXRhYmxlIGJ5IHNfc2V0cmVnX2IzMgorCXNfc2V0cmVnX2IzMglod3JlZyhIV19SRUdfU1RBVFVTKSwgc19zYXZlX3N0YXR1cworCisJc19yZmVfYjY0CVt0dG1wMCwgdHRtcDFdCisKK0xfU0FWRToKIAkvL2NoZWNrIHdoZXRoZXIgdGhlcmUgaXMgbWVtX3Zpb2wKLQlzX2dldHJlZ19iMzIgIAlzX3NhdmVfdHJhcHN0cywgaHdyZWcoSFdfUkVHX1RSQVBTVFMpICAgIAkJIAkJCQkKLQlzX2FuZF9iMzIJCXNfc2F2ZV90cmFwc3RzLCBzX3NhdmVfdHJhcHN0cywgU1FfV0FWRV9UUkFQU1RTX01FTV9WSU9MX01BU0sJCQkKKwlzX2dldHJlZ19iMzIJc19zYXZlX3RyYXBzdHMsIGh3cmVnKEhXX1JFR19UUkFQU1RTKQorCXNfYW5kX2IzMglzX3NhdmVfdHJhcHN0cywgc19zYXZlX3RyYXBzdHMsIFNRX1dBVkVfVFJBUFNUU19NRU1fVklPTF9NQVNLCiAJc19jYnJhbmNoX3NjYzAJTF9OT19QQ19SRVdJTkQKLSAgICAKKwogCS8vaWYgc28sIG5lZWQgcmV3aW5kIFBDIGFzc3VtaW5nIEdEUyBvcGVyYXRpb24gZ2V0cyBOQUNLZWQKLQlzX21vdl9iMzIgICAgICAgc19zYXZlX3RtcCwgMAkJCQkJCQkJCQkJCQkJCS8vY2xlYXIgbWVtX3Zpb2wgYml0Ci0Jc19zZXRyZWdfYjMyCWh3cmVnKEhXX1JFR19UUkFQU1RTLCBTUV9XQVZFX1RSQVBTVFNfTUVNX1ZJT0xfU0hJRlQsIDEpLCBzX3NhdmVfdG1wCS8vY2xlYXIgbWVtX3Zpb2wgYml0IAotCXNfYW5kX2IzMiAJCXNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCAweDAwMDBmZmZmICAgIC8vcGNbNDc6MzJdCi0Jc19zdWJfdTMyIAkJc19zYXZlX3BjX2xvLCBzX3NhdmVfcGNfbG8sIDggICAgICAgICAgICAgLy9wY1szMTowXS04Ci0Jc19zdWJiX3UzMiAJCXNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCAweDAJCQkgIC8vIC1zY2MKKwlzX21vdl9iMzIJc19zYXZlX3RtcCwgMAorCXNfc2V0cmVnX2IzMglod3JlZyhIV19SRUdfVFJBUFNUUywgU1FfV0FWRV9UUkFQU1RTX01FTV9WSU9MX1NISUZULCAxKSwgc19zYXZlX3RtcAkvL2NsZWFyIG1lbV92aW9sIGJpdAorCXNfYW5kX2IzMglzX3NhdmVfcGNfaGksIHNfc2F2ZV9wY19oaSwgMHgwMDAwZmZmZgkJCS8vcGNbNDc6MzJdCisJc19zdWJfdTMyCXNfc2F2ZV9wY19sbywgc19zYXZlX3BjX2xvLCA4CQkJCS8vcGNbMzE6MF0tOAorCXNfc3ViYl91MzIJc19zYXZlX3BjX2hpLCBzX3NhdmVfcGNfaGksIDB4MAogCiBMX05PX1BDX1JFV0lORDoKLSAgICBzX21vdl9iMzIgICAgICAgc19zYXZlX3RtcCwgMAkJCQkJCQkJCQkJCQkJCS8vY2xlYXIgc2F2ZUN0eCBiaXQKLQlzX3NldHJlZ19iMzIJaHdyZWcoSFdfUkVHX1RSQVBTVFMsIFNRX1dBVkVfVFJBUFNUU19TQVZFQ1RYX1NISUZULCAxKSwgc19zYXZlX3RtcAkJLy9jbGVhciBzYXZlQ3R4IGJpdCAgIAorCXNfbW92X2IzMglzX3NhdmVfdG1wLCAwCisJc19zZXRyZWdfYjMyCWh3cmVnKEhXX1JFR19UUkFQU1RTLCBTUV9XQVZFX1RSQVBTVFNfU0FWRUNUWF9TSElGVCwgMSksIHNfc2F2ZV90bXAJLy9jbGVhciBzYXZlQ3R4IGJpdAogCi0JLy9zX21vdl9iMzIJCXNfc2F2ZV94bmFja19tYXNrX2xvLAl4bmFja19tYXNrX2xvCQkJCQkJCQkJLy9zYXZlIFhOQUNLX01BU0sgIAotCS8vc19tb3ZfYjMyCQlzX3NhdmVfeG5hY2tfbWFza19oaSwJeG5hY2tfbWFza19oaQotICAgIHNfZ2V0cmVnX2IzMglzX3NhdmVfeG5hY2tfbWFzaywgIGh3cmVnKEhXX1JFR19TSEFERVJfWE5BQ0tfTUFTSykgIAotCXNfZ2V0cmVnX2IzMglzX3NhdmVfdG1wLCBod3JlZyhIV19SRUdfSUJfU1RTLCBTUV9XQVZFX0lCX1NUU19SQ05UX1NISUZULCBTUV9XQVZFX0lCX1NUU19SQ05UX1NJWkUpCQkJCQkvL3NhdmUgUkNOVAotCXNfbHNobF9iMzIJCXNfc2F2ZV90bXAsIHNfc2F2ZV90bXAsIFNfU0FWRV9QQ19ISV9SQ05UX1NISUZUCi0Jc19vcl9iMzIJCXNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCBzX3NhdmVfdG1wCi0Jc19nZXRyZWdfYjMyCXNfc2F2ZV90bXAsIGh3cmVnKEhXX1JFR19JQl9TVFMsIFNRX1dBVkVfSUJfU1RTX0ZJUlNUX1JFUExBWV9TSElGVCwgU1FfV0FWRV9JQl9TVFNfRklSU1RfUkVQTEFZX1NJWkUpCS8vc2F2ZSBGSVJTVF9SRVBMQVkKLQlzX2xzaGxfYjMyCQlzX3NhdmVfdG1wLCBzX3NhdmVfdG1wLCBTX1NBVkVfUENfSElfRklSU1RfUkVQTEFZX1NISUZUCi0Jc19vcl9iMzIJCXNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCBzX3NhdmVfdG1wCi0Jc19nZXRyZWdfYjMyCXNfc2F2ZV90bXAsIGh3cmVnKEhXX1JFR19JQl9TVFMpCQkJCQkJCQkJCS8vY2xlYXIgUkNOVCBhbmQgRklSU1RfUkVQTEFZIGluIElCX1NUUwotCXNfYW5kX2IzMgkJc19zYXZlX3RtcCwgc19zYXZlX3RtcCwgU1FfV0FWRV9JQl9TVFNfUkNOVF9GSVJTVF9SRVBMQVlfTUFTS19ORUcKKwlzX2dldHJlZ19iMzIJc19zYXZlX3huYWNrX21hc2ssIGh3cmVnKEhXX1JFR19TSEFERVJfWE5BQ0tfTUFTSykKKwlzX2dldHJlZ19iMzIJc19zYXZlX3RtcCwgaHdyZWcoSFdfUkVHX0lCX1NUUywgU1FfV0FWRV9JQl9TVFNfUkNOVF9TSElGVCwgU1FfV0FWRV9JQl9TVFNfUkNOVF9TSVpFKQorCXNfbHNobF9iMzIJc19zYXZlX3RtcCwgc19zYXZlX3RtcCwgU19TQVZFX1BDX0hJX1JDTlRfU0hJRlQKKwlzX29yX2IzMglzX3NhdmVfcGNfaGksIHNfc2F2ZV9wY19oaSwgc19zYXZlX3RtcAorCXNfZ2V0cmVnX2IzMglzX3NhdmVfdG1wLCBod3JlZyhIV19SRUdfSUJfU1RTLCBTUV9XQVZFX0lCX1NUU19GSVJTVF9SRVBMQVlfU0hJRlQsIFNRX1dBVkVfSUJfU1RTX0ZJUlNUX1JFUExBWV9TSVpFKQorCXNfbHNobF9iMzIJc19zYXZlX3RtcCwgc19zYXZlX3RtcCwgU19TQVZFX1BDX0hJX0ZJUlNUX1JFUExBWV9TSElGVAorCXNfb3JfYjMyCXNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCBzX3NhdmVfdG1wCisJc19nZXRyZWdfYjMyCXNfc2F2ZV90bXAsIGh3cmVnKEhXX1JFR19JQl9TVFMsIFNRX1dBVkVfSUJfU1RTX1JFUExBWV9XNjRIX1NISUZULCBTUV9XQVZFX0lCX1NUU19SRVBMQVlfVzY0SF9TSVpFKQorCXNfbHNobF9iMzIJc19zYXZlX3RtcCwgc19zYXZlX3RtcCwgU19TQVZFX1BDX0hJX1JFUExBWV9XNjRIX1NISUZUCisJc19vcl9iMzIJc19zYXZlX3BjX2hpLCBzX3NhdmVfcGNfaGksIHNfc2F2ZV90bXAKKwlzX2dldHJlZ19iMzIJc19zYXZlX3RtcCwgaHdyZWcoSFdfUkVHX0lCX1NUUykJCQkvL2NsZWFyIFJDTlQgYW5kIEZJUlNUX1JFUExBWSBhbmQgUkVQTEFZX1c2NEggaW4gSUJfU1RTCisJc19hbmRfYjMyCXNfc2F2ZV90bXAsIHNfc2F2ZV90bXAsIFNRX1dBVkVfSUJfU1RTX1JDTlRfRklSU1RfUkVQTEFZX01BU0tfTkVHCiAKIAlzX3NldHJlZ19iMzIJaHdyZWcoSFdfUkVHX0lCX1NUUyksIHNfc2F2ZV90bXAKLSAgICAKLQkvKgkJaW5mb3JtIFNQSSB0aGUgcmVhZGluZXNzIGFuZCB3YWl0IGZvciBTUEkncyBnbyBzaWduYWwgKi8KLQlzX21vdl9iMzIJCXNfc2F2ZV9leGVjX2xvLAlleGVjX2xvCQkJCQkJCQkJCQkJCS8vc2F2ZSBFWEVDIGFuZCB1c2UgRVhFQyBmb3IgdGhlIGdvIHNpZ25hbCBmcm9tIFNQSQotCXNfbW92X2IzMgkJc19zYXZlX2V4ZWNfaGksCWV4ZWNfaGkKLQlzX21vdl9iNjQJCWV4ZWMsIAkweDAJCQkJCQkJCQkJCQkJCQkJLy9jbGVhciBFWEVDIHRvIGdldCByZWFkeSB0byByZWNlaXZlCi0JaWYgKEVNVV9SVU5fSEFDSykKLQkKLQllbHNlCi0JCXNfc2VuZG1zZwlzZW5kbXNnKE1TR19TQVZFV0FWRSkJCQkJCQkJCQkJCQkJLy9zZW5kIFNQSSBhIG1lc3NhZ2UgYW5kIHdhaXQgZm9yIFNQSSdzIHdyaXRlIHRvIEVYRUMgIAotCWVuZAogCi0gIExfU0xFRVA6CQkKLQlzX3NsZWVwIDB4MgotCQotCWlmIChFTVVfUlVOX0hBQ0spCi0JCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQotCWVsc2UKLQkJc19jYnJhbmNoX2V4ZWN6CUxfU0xFRVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLQllbmQKKwkvKiBpbmZvcm0gU1BJIHRoZSByZWFkaW5lc3MgYW5kIHdhaXQgZm9yIFNQSSdzIGdvIHNpZ25hbCAqLworCXNfbW92X2IzMglzX3NhdmVfZXhlY19sbywgZXhlY19sbwkJCQkJLy9zYXZlIEVYRUMgYW5kIHVzZSBFWEVDIGZvciB0aGUgZ28gc2lnbmFsIGZyb20gU1BJCisJc19tb3ZfYjMyCXNfc2F2ZV9leGVjX2hpLCBleGVjX2hpCisJc19tb3ZfYjY0CWV4ZWMsIDB4MAkJCQkJCS8vY2xlYXIgRVhFQyB0byBnZXQgcmVhZHkgdG8gcmVjZWl2ZQogCisJc19zZW5kbXNnCXNlbmRtc2coTVNHX1NBVkVXQVZFKQkJCQkJLy9zZW5kIFNQSSBhIG1lc3NhZ2UgYW5kIHdhaXQgZm9yIFNQSSdzIHdyaXRlIHRvIEVYRUMKIAotCS8qICAgICAgc2V0dXAgUmVzb3VyY2UgQ29udGFudHMgICAgKi8KLQlpZiAoKEVNVV9SVU5fSEFDSykgJiYgKCFFTVVfUlVOX0hBQ0tfU0FWRV9TSU5HTEVfV0FWRSkpCQotCQkvL2NhbGN1bGF0ZSB3ZF9hZGRyIHVzaW5nIGFic29sdXRlIHRocmVhZCBpZCAKLQkJdl9yZWFkbGFuZV9iMzIgc19zYXZlX3RtcCwgdjksIDAKLSAgICAgICAgLy9kZXRlcm1pbmUgaXQgaXMgd2F2ZTMyIG9yIHdhdmU2NAotICAgICAgICBzX2dldHJlZ19iMzIgCXNfd2F2ZV9zaXplLCBod3JlZyhIV19SRUdfSUJfU1RTMixTUV9XQVZFX0lCX1NUUzJfV0FWRTY0X1NISUZULFNRX1dBVkVfSUJfU1RTMl9XQVZFNjRfU0laRSkKLSAgICAgICAgc19jbXBfZXFfdTMyICAgIHNfd2F2ZV9zaXplLCAwCi0gICAgICAgIHNfY2JyYW5jaF9zY2MxICBMX1NBVkVfV0FWRTMyCi0gICAgICAgIHNfbHNocl9iMzIgc19zYXZlX3RtcCwgc19zYXZlX3RtcCwgNiAvL1NBVkUgV0FWRTY0Ci0gICAgICAgIHNfYnJhbmNoICAgIExfU0FWRV9DT04KLSAgICBMX1NBVkVfV0FWRTMyOgotICAgICAgICBzX2xzaHJfYjMyIHNfc2F2ZV90bXAsIHNfc2F2ZV90bXAsIDUgLy9TQVZFIFdBVkUzMgotICAgIExfU0FWRV9DT046Ci0JCXNfbXVsX2kzMiBzX3NhdmVfdG1wLCBzX3NhdmVfdG1wLCBXQVZFX1NQQUNFCi0JCXNfYWRkX2kzMiBzX3NhdmVfc3BpX2luaXRfbG8sIHNfc2F2ZV90bXAsIFdHX0JBU0VfQUREUl9MTwotCQlzX21vdl9iMzIgc19zYXZlX3NwaV9pbml0X2hpLCBXR19CQVNFX0FERFJfSEkKLQkJc19hbmRfYjMyIHNfc2F2ZV9zcGlfaW5pdF9oaSwgc19zYXZlX3NwaV9pbml0X2hpLCBDVFhfU0FWRV9DT05UUk9MCQkKLQllbHNlCi0JZW5kCi0JaWYgKChFTVVfUlVOX0hBQ0spICYmIChFTVVfUlVOX0hBQ0tfU0FWRV9TSU5HTEVfV0FWRSkpCi0JCXNfYWRkX2kzMiBzX3NhdmVfc3BpX2luaXRfbG8sIHNfc2F2ZV90bXAsIFdHX0JBU0VfQUREUl9MTwotCQlzX21vdl9iMzIgc19zYXZlX3NwaV9pbml0X2hpLCBXR19CQVNFX0FERFJfSEkKLQkJc19hbmRfYjMyIHNfc2F2ZV9zcGlfaW5pdF9oaSwgc19zYXZlX3NwaV9pbml0X2hpLCBDVFhfU0FWRV9DT05UUk9MCQkKLQllbHNlCi0JZW5kCi0JCi0JCi0Jc19tb3ZfYjMyCQlzX3NhdmVfYnVmX3JzcmMwLCAJc19zYXZlX3NwaV9pbml0X2xvCQkJCQkJCQkJCQkJCQkvL2Jhc2VfYWRkcl9sbwotCXNfYW5kX2IzMgkJc19zYXZlX2J1Zl9yc3JjMSwgCXNfc2F2ZV9zcGlfaW5pdF9oaSwgMHgwMDAwRkZGRgkJCQkJCQkJCQkJLy9iYXNlX2FkZHJfaGkKLQlzX29yX2IzMgkJc19zYXZlX2J1Zl9yc3JjMSwgCXNfc2F2ZV9idWZfcnNyYzEsICBTX1NBVkVfQlVGX1JTUkNfV09SRDFfU1RSSURFCi0gICAgc19tb3ZfYjMyICAgICAgIHNfc2F2ZV9idWZfcnNyYzIsICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCQkJCQkJLy9OVU1fUkVDT1JEUyBpbml0aWFsIHZhbHVlID0gMCAoaW4gYnl0ZXMpIGFsdGhvdWdoIG5vdCBuZWNjZXNzYXJpbHkgaW5pdGVkCi0Jc19tb3ZfYjMyCQlzX3NhdmVfYnVmX3JzcmMzLCAJU19TQVZFX0JVRl9SU1JDX1dPUkQzX01JU0MKLQlzX2FuZF9iMzIJCXNfc2F2ZV90bXAsICAgICAgICAgc19zYXZlX3NwaV9pbml0X2hpLCBTX1NBVkVfU1BJX0lOSVRfQVRDX01BU0sJCQotCXNfbHNocl9iMzIJCXNfc2F2ZV90bXAsICAJCXNfc2F2ZV90bXAsIChTX1NBVkVfU1BJX0lOSVRfQVRDX1NISUZULVNRX0JVRl9SU1JDX1dPUkQxX0FUQ19TSElGVCkJCQkvL2dldCBBVEMgYml0IGludG8gcG9zaXRpb24KLQlzX29yX2IzMgkJc19zYXZlX2J1Zl9yc3JjMywgCXNfc2F2ZV9idWZfcnNyYzMsICBzX3NhdmVfdG1wCQkJCQkJCQkJCQkvL29yIEFUQwotCXNfYW5kX2IzMgkJc19zYXZlX3RtcCwgICAgICAgICBzX3NhdmVfc3BpX2luaXRfaGksIFNfU0FWRV9TUElfSU5JVF9NVFlQRV9NQVNLCQkKLQlzX2xzaHJfYjMyCQlzX3NhdmVfdG1wLCAgCQlzX3NhdmVfdG1wLCAoU19TQVZFX1NQSV9JTklUX01UWVBFX1NISUZULVNRX0JVRl9SU1JDX1dPUkQzX01UWVBFX1NISUZUKQkJLy9nZXQgTVRZUEUgYml0cyBpbnRvIHBvc2l0aW9uCi0Jc19vcl9iMzIJCXNfc2F2ZV9idWZfcnNyYzMsIAlzX3NhdmVfYnVmX3JzcmMzLCAgc19zYXZlX3RtcAkJCQkJCQkJCQkJLy9vciBNVFlQRQkKLQkKLQlzX21vdl9iMzIJCXNfc2F2ZV9tMCwJCQltMAkJCQkJCQkJCQkJCQkJCQkJLy9zYXZlIE0wCi0JCi0JLyogCQlnbG9iYWwgbWVtIG9mZnNldAkJCSovCi0Jc19tb3ZfYjMyCQlzX3NhdmVfbWVtX29mZnNldCwgCTB4MAkJCQkJCQkJCQkJCQkJCQkJCS8vbWVtIG9mZnNldCBpbml0aWFsIHZhbHVlID0gMAotICAgIHNfZ2V0cmVnX2IzMiAJc193YXZlX3NpemUsIGh3cmVnKEhXX1JFR19JQl9TVFMyLFNRX1dBVkVfSUJfU1RTMl9XQVZFNjRfU0hJRlQsU1FfV0FWRV9JQl9TVFMyX1dBVkU2NF9TSVpFKSAvL2dldCB3YXZlX3NhdmVfc2l6ZQotICAgIHNfb3JfYjMyICAgICAgICBzX3dhdmVfc2l6ZSwgc19zYXZlX3NwaV9pbml0X2hpLCAgICBzX3dhdmVfc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vc2hhcmUgc193YXZlX3NpemUgd2l0aCBleGVjX2hpCitMX1NMRUVQOgorCS8vIHNsZWVwIDEgKDY0Y2xrKSBpcyBub3QgZW5vdWdoIGZvciA4IHdhdmVzIHBlciBTSU1ELCB3aGljaCB3aWxsIGNhdXNlCisJLy8gU1EgaGFuZywgc2luY2UgdGhlIDcsOHRoIHdhdmUgY291bGQgbm90IGdldCBhcmJpdCB0byBleGVjIGluc3QsIHdoaWxlCisJLy8gb3RoZXIgd2F2ZXMgYXJlIHN0dWNrIGludG8gdGhlIHNsZWVwLWxvb3AgYW5kIHdhaXRpbmcgZm9yIHdyZXhlYyE9MAorCXNfc2xlZXAJCTB4MgorCXNfY2JyYW5jaF9leGVjeglMX1NMRUVQCiAKLSAgICAvKiAgICAgIAlzYXZlIFZHUFJzCSAgICAqLwotCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICBMX1NBVkVfVkdQUjoKLSAgCi0gCXNfbW92X2IzMgkJZXhlY19sbywgMHhGRkZGRkZGRiAJCQkJCQkJCQkJCS8vbmVlZCBldmVyeSB0aHJlYWQgZnJvbSBub3cgb24KLSAgICBzX2FuZF9iMzIgICAgICAgbTAsIHNfd2F2ZV9zaXplLCAxCi0gICAgc19jbXBfZXFfdTMyICAgIG0wLCAxICAKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9FTkFCTEVfU0FWRV9WR1BSX0VYRUNfSEkgICAKLSAgICBzX21vdl9iMzIJCWV4ZWNfaGksIDB4MDAwMDAwMDAKLSAgICBzX2JyYW5jaCAgICAgICAgTF9TQVZFX1ZHUFJfTk9STUFMCi0gIExfRU5BQkxFX1NBVkVfVkdQUl9FWEVDX0hJOgotCXNfbW92X2IzMgkJZXhlY19oaSwgMHhGRkZGRkZGRgotICBMX1NBVkVfVkdQUl9OT1JNQUw6CQotCXNfZ2V0cmVnX2IzMiAJc19zYXZlX2FsbG9jX3NpemUsIGh3cmVnKEhXX1JFR19HUFJfQUxMT0MsU1FfV0FWRV9HUFJfQUxMT0NfVkdQUl9TSVpFX1NISUZULFNRX1dBVkVfR1BSX0FMTE9DX1ZHUFJfU0laRV9TSVpFKSAJCQkJCS8vdnBncl9zaXplCi0JLy9mb3Igd2F2ZTMyIGFuZCB3YXZlNjQsIHRoZSBudW0gb2YgdmdwciBmdW5jdGlvbiBpcyB0aGUgc2FtZT8KLSAgICBzX2FkZF91MzIgCQlzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDEKLQlzX2xzaGxfYjMyIAkJc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCAyIAkJCQkJCS8vTnVtYmVyIG9mIFZHUFJzID0gKHZncHJfc2l6ZSArIDEpICogNCAgICAobm9uLXplcm8gdmFsdWUpICAgLy9GSVhNRSBmb3IgR0ZYLCB6ZXJvIGlzIHBvc3NpYmxlCi0gICAgLy9kZXRlcm1pbmUgaXQgaXMgd2F2ZTMyIG9yIHdhdmU2NAotICAgIHNfYW5kX2IzMiAgICAgICBtMCwgc193YXZlX3NpemUsIDEKLSAgICBzX2NtcF9lcV91MzIgICAgbTAsIDEKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9TQVZFX1ZHUFJfV0FWRTY0CisJLyogc2V0dXAgUmVzb3VyY2UgQ29udGFudHMgKi8KKwlzX21vdl9iMzIJc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX3NwaV9pbml0X2xvCQkJLy9iYXNlX2FkZHJfbG8KKwlzX2FuZF9iMzIJc19zYXZlX2J1Zl9yc3JjMSwgc19zYXZlX3NwaV9pbml0X2hpLCAweDAwMDBGRkZGCS8vYmFzZV9hZGRyX2hpCisJc19vcl9iMzIJc19zYXZlX2J1Zl9yc3JjMSwgc19zYXZlX2J1Zl9yc3JjMSwgU19TQVZFX0JVRl9SU1JDX1dPUkQxX1NUUklERQorCXNfbW92X2IzMglzX3NhdmVfYnVmX3JzcmMyLCAwCQkJCQkvL05VTV9SRUNPUkRTIGluaXRpYWwgdmFsdWUgPSAwIChpbiBieXRlcykgYWx0aG91Z2ggbm90IG5lY2Nlc3NhcmlseSBpbml0ZWQKKwlzX21vdl9iMzIJc19zYXZlX2J1Zl9yc3JjMywgU19TQVZFX0JVRl9SU1JDX1dPUkQzX01JU0MKKwlzX2FuZF9iMzIJc19zYXZlX3RtcCwgc19zYXZlX3NwaV9pbml0X2hpLCBTX1NBVkVfU1BJX0lOSVRfQVRDX01BU0sKKwlzX2xzaHJfYjMyCXNfc2F2ZV90bXAsIHNfc2F2ZV90bXAsIChTX1NBVkVfU1BJX0lOSVRfQVRDX1NISUZULVNRX0JVRl9SU1JDX1dPUkQxX0FUQ19TSElGVCkKKwlzX29yX2IzMglzX3NhdmVfYnVmX3JzcmMzLCBzX3NhdmVfYnVmX3JzcmMzLCBzX3NhdmVfdG1wCQkvL29yIEFUQworCXNfYW5kX2IzMglzX3NhdmVfdG1wLCBzX3NhdmVfc3BpX2luaXRfaGksIFNfU0FWRV9TUElfSU5JVF9NVFlQRV9NQVNLCisJc19sc2hyX2IzMglzX3NhdmVfdG1wLCBzX3NhdmVfdG1wLCAoU19TQVZFX1NQSV9JTklUX01UWVBFX1NISUZULVNRX0JVRl9SU1JDX1dPUkQzX01UWVBFX1NISUZUKQorCXNfb3JfYjMyCXNfc2F2ZV9idWZfcnNyYzMsIHNfc2F2ZV9idWZfcnNyYzMsIHNfc2F2ZV90bXAJCS8vb3IgTVRZUEUKIAotICAgIC8vemhlbnh1IGFkZGVkIGl0IGZvciBzYXZlIHZncHIgZm9yIHdhdmUzMgotCXNfbHNobF9iMzIJCXNfc2F2ZV9idWZfcnNyYzIsICBzX3NhdmVfYWxsb2Nfc2l6ZSwgNwkJCQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzICgzMiB0aHJlYWRzKjQpCi0JaWYgKFNXSVpaTEVfRU4pCi0JCXNfYWRkX3UzMgkJc19zYXZlX2J1Zl9yc3JjMiwgc19zYXZlX2J1Zl9yc3JjMiwgMHgwCQkJCQkJLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0JZWxzZQotCQlzX21vdl9iMzIJCXNfc2F2ZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJCQkJCS8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLQllbmQKLQkKLSAgICBzX21vdl9iMzIgCQltMCwgMHgwIAkJCQkJCQkJCQkJCQkJLy9WR1BSIGluaXRpYWwgaW5kZXggdmFsdWUgPTAKLQkvL3Nfc2V0X2dwcl9pZHhfb24gIG0wLCAweDEJCQkJCQkJCQkJCQkJCS8vTTBbNzowXSA9IE0wWzc6MF0gYW5kIE0wWzE1OjEyXSA9IDB4MQotICAgIC8vc19hZGRfdTMyCQlzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDB4MTAwMAkJCQkJLy9hZGQgMHgxMDAwIHNpbmNlIHdlIGNvbXBhcmUgbTAgYWdhaW5zdCBpdCBsYXRlciwgZG9lc24ndCBuZWVkIHRoaXMgaW4gZ2Z4MTAKKwlzX21vdl9iMzIJc19zYXZlX20wLCBtMAogCi0gIExfU0FWRV9WR1BSX1dBVkUzMl9MT09QOiAJCQkJCQkJCQkJCi0Jdl9tb3ZyZWxzX2IzMiAJCXYwLCB2MAkJCQkJCQkJCQkJCQkJCS8vdjAgPSB2WzArbTBdCQotCSAgICAKLSAgICBpZihVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRikgICAgICAgCi0JCXRidWZmZXJfc3RvcmVfZm9ybWF0X3ggdjAsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBmb3JtYXQ6QlVGX05VTV9GT1JNQVRfRkxPQVQgZm9ybWF0OiBCVUZfREFUQV9GT1JNQVRfMzIgc2xjOjEgZ2xjOjEKLSAgICBlbHNlCi0JCWJ1ZmZlcl9zdG9yZV9kd29yZCB2MCwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxCi0JZW5kCisJLyogZ2xvYmFsIG1lbSBvZmZzZXQgKi8KKwlzX21vdl9iMzIJc19zYXZlX21lbV9vZmZzZXQsIDB4MAorCXNfZ2V0cmVnX2IzMglzX3dhdmVfc2l6ZSwgaHdyZWcoSFdfUkVHX0lCX1NUUzIsU1FfV0FWRV9JQl9TVFMyX1dBVkU2NF9TSElGVCxTUV9XQVZFX0lCX1NUUzJfV0FWRTY0X1NJWkUpCisJc19sc2hsX2IzMglzX3dhdmVfc2l6ZSwgc193YXZlX3NpemUsIFNfV0FWRV9TSVpFCisJc19vcl9iMzIJc193YXZlX3NpemUsIHNfc2F2ZV9zcGlfaW5pdF9oaSwgc193YXZlX3NpemUJCS8vc2hhcmUgc193YXZlX3NpemUgd2l0aCBleGVjX2hpLCBpdCdzIGF0IGJpdDI1CiAKLSAgICBzX2FkZF91MzIJCW0wLCBtMCwgMQkJCQkJCQkJCQkJCQkJLy9uZXh0IHZncHIgaW5kZXgKLQlzX2FkZF91MzIJCXNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgMTI4CQkJCQkJLy9ldmVyeSBidWZmZXJfc3RvcmVfZHdvcmQgZG9lcyAxMjggYnl0ZXMKLQlzX2NtcF9sdF91MzIgCW0wLAlzX3NhdmVfYWxsb2Nfc2l6ZSAJCQkJCQkJCQkJCS8vc2NjID0gKG0wIDwgc19zYXZlX2FsbG9jX3NpemUpID8gMSA6IDAKLQlzX2NicmFuY2hfc2NjMSAJTF9TQVZFX1ZHUFJfV0FWRTMyX0xPT1AJCQkJCQkJCQkJCQkvL1ZHUFIgc2F2ZSBpcyBjb21wbGV0ZT8KLSAgICBzX2JyYW5jaCAgICBMX1NBVkVfTERTCi0gICAgLy9zYXZlIHZncHIgZm9yIHdhdmUzMiBlbmRzCisJLyogc2F2ZSBIVyByZWdpc3RlcnMgKi8KIAotICBMX1NBVkVfVkdQUl9XQVZFNjQ6Ci0Jc19sc2hsX2IzMgkJc19zYXZlX2J1Zl9yc3JjMiwgIHNfc2F2ZV9hbGxvY19zaXplLCA4CQkJCQkJCS8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMgKDY0IHRocmVhZHMqNCkKLQlpZiAoU1dJWlpMRV9FTikKLQkJc19hZGRfdTMyCQlzX3NhdmVfYnVmX3JzcmMyLCBzX3NhdmVfYnVmX3JzcmMyLCAweDAJCQkJCQkvL0ZJWE1FIG5lZWQgdG8gdXNlIHN3aXp6bGUgdG8gZW5hYmxlIGJvdW5kcyBjaGVja2luZz8KLQllbHNlCi0JCXNfbW92X2IzMgkJc19zYXZlX2J1Zl9yc3JjMiwgIDB4MTAwMDAwMAkJCQkJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotCWVuZAotCQotICAgIHNfbW92X2IzMiAJCW0wLCAweDAgCQkJCQkJCQkJCQkJCQkvL1ZHUFIgaW5pdGlhbCBpbmRleCB2YWx1ZSA9MAotCS8vc19zZXRfZ3ByX2lkeF9vbiAgbTAsIDB4MQkJCQkJCQkJCQkJCQkJLy9NMFs3OjBdID0gTTBbNzowXSBhbmQgTTBbMTU6MTJdID0gMHgxCi0gICAgLy9zX2FkZF91MzIJCXNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMHgxMDAwCQkJCQkvL2FkZCAweDEwMDAgc2luY2Ugd2UgY29tcGFyZSBtMCBhZ2FpbnN0IGl0IGxhdGVyLCBkb2Vzbid0IG5lZWQgdGhpcyBpbiBnZngxMAorTF9TQVZFX0hXUkVHOgorCS8vIEhXUkVHIFNSIG1lbW9yeSBvZmZzZXQgOiBzaXplKFZHUFIpK3NpemUoU1ZHUFIpK3NpemUoU0dQUikKKwlnZXRfdmdwcl9zaXplX2J5dGVzKHNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3dhdmVfc2l6ZSkKKwlnZXRfc3ZncHJfc2l6ZV9ieXRlcyhzX3NhdmVfdG1wKQorCXNfYWRkX3UzMglzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV90bXAKKwlzX2FkZF91MzIJc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBnZXRfc2dwcl9zaXplX2J5dGVzKCkKIAotICBMX1NBVkVfVkdQUl9XQVZFNjRfTE9PUDogCQkJCQkJCQkJCQotCXZfbW92cmVsc19iMzIgCQl2MCwgdjAJCQkJCQkJCQkJCQkJCQkvL3YwID0gdlswK20wXQkKLQkgICAgCi0gICAgaWYoVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpICAgICAgIAotCQl0YnVmZmVyX3N0b3JlX2Zvcm1hdF94IHYwLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgZm9ybWF0OkJVRl9OVU1fRk9STUFUX0ZMT0FUIGZvcm1hdDogQlVGX0RBVEFfRk9STUFUXzMyIHNsYzoxIGdsYzoxCi0gICAgZWxzZQotCQlidWZmZXJfc3RvcmVfZHdvcmQgdjAsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQotCWVuZAorCXNfbW92X2IzMglzX3NhdmVfYnVmX3JzcmMyLCAweDEwMDAwMDAJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwogCi0gICAgc19hZGRfdTMyCQltMCwgbTAsIDEJCQkJCQkJCQkJCQkJCS8vbmV4dCB2Z3ByIGluZGV4Ci0Jc19hZGRfdTMyCQlzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX21lbV9vZmZzZXQsIDI1NgkJCQkJCS8vZXZlcnkgYnVmZmVyX3N0b3JlX2R3b3JkIGRvZXMgMjU2IGJ5dGVzCi0Jc19jbXBfbHRfdTMyIAltMCwJc19zYXZlX2FsbG9jX3NpemUgCQkJCQkJCQkJCQkvL3NjYyA9IChtMCA8IHNfc2F2ZV9hbGxvY19zaXplKSA/IDEgOiAwCi0Jc19jYnJhbmNoX3NjYzEgCUxfU0FWRV9WR1BSX1dBVkU2NF9MT09QCQkJCQkJCQkJCQkJLy9WR1BSIHNhdmUgaXMgY29tcGxldGU/Ci0JLy9zX3NldF9ncHJfaWR4X29mZgotICAgIC8vCi0gICAgLy9CZWxvdyBwYXJ0IHdpbGwgYmUgdGhlIHNhdmUgc2hhcmVkIHZncHIgcGFydCAobmV3IGZvciBnZngxMCkKLSAgICBzX2dldHJlZ19iMzIgCXNfc2F2ZV9hbGxvY19zaXplLCBod3JlZyhIV19SRUdfTERTX0FMTE9DLFNRX1dBVkVfTERTX0FMTE9DX1ZHUFJfU0hBUkVEX1NJWkVfU0hJRlQsU1FfV0FWRV9MRFNfQUxMT0NfVkdQUl9TSEFSRURfU0laRV9TSVpFKSAJCQkvL3NoYXJlZF92Z3ByX3NpemUKLSAgICBzX2FuZF9iMzIJCXNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMHhGRkZGRkZGRgkJCQkvL3NoYXJlZF92Z3ByX3NpemUgaXMgemVybz8KLSAgICBzX2NicmFuY2hfc2NjMAlMX1NBVkVfTERTCQkJCQkJCQkJCQkJCSAgICAvL25vIHNoYXJlZF92Z3ByIHVzZWQ/IGp1bXAgdG8gTF9TQVZFX0xEUwotICAgIHNfbHNobF9iMzIgCQlzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDMgCQkJCQkJLy9OdW1iZXIgb2YgU0hBUkVEX1ZHUFJzID0gc2hhcmVkX3ZncHJfc2l6ZSAqIDggICAgKG5vbi16ZXJvIHZhbHVlKQotICAgIC8vbTAgbm93IGhhcyB0aGUgdmFsdWUgb2Ygbm9ybWFsIHZncHIgY291bnQsIGp1c3QgYWRkIHRoZSBtMCB3aXRoIHNoYXJlZF92Z3ByIGNvdW50IHRvIGdldCB0aGUgdG90YWwgY291bnQuCi0gICAgLy9zYXZlIHNoYXJlZF92Z3ByIHdpbGwgc3RhcnQgZnJvbSB0aGUgaW5kZXggb2YgbTAKLSAgICBzX2FkZF91MzIgICAgICAgc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCBtMAotICAgIHNfbW92X2IzMgkJZXhlY19sbywgMHhGRkZGRkZGRgotICAgIHNfbW92X2IzMgkJZXhlY19oaSwgMHgwMDAwMDAwMAotICAgIExfU0FWRV9TSEFSRURfVkdQUl9XQVZFNjRfTE9PUDogCQkJCQkJCQkJCQotCXZfbW92cmVsc19iMzIgCQl2MCwgdjAJCQkJCQkJCQkJCQkJCQkvL3YwID0gdlswK20wXQkKLQlidWZmZXJfc3RvcmVfZHdvcmQgdjAsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQotICAgIHNfYWRkX3UzMgkJbTAsIG0wLCAxCQkJCQkJCQkJCQkJCQkvL25leHQgdmdwciBpbmRleAotCXNfYWRkX3UzMgkJc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCAxMjgJCQkJCQkvL2V2ZXJ5IGJ1ZmZlcl9zdG9yZV9kd29yZCBkb2VzIDI1NiBieXRlcwotCXNfY21wX2x0X3UzMiAJbTAsCXNfc2F2ZV9hbGxvY19zaXplIAkJCQkJCQkJCQkJLy9zY2MgPSAobTAgPCBzX3NhdmVfYWxsb2Nfc2l6ZSkgPyAxIDogMAotCXNfY2JyYW5jaF9zY2MxIAlMX1NBVkVfU0hBUkVEX1ZHUFJfV0FWRTY0X0xPT1AJCQkJCQkJCQkvL1NIQVJFRF9WR1BSIHNhdmUgaXMgY29tcGxldGU/Ci0gICAgCi0JLyogICAgICAJc2F2ZSBMRFMJICAgICovCi0JLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0gIExfU0FWRV9MRFM6CisJd3JpdGVfaHdyZWdfdG9fbWVtKHNfc2F2ZV9tMCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQpCisJd3JpdGVfaHdyZWdfdG9fbWVtKHNfc2F2ZV9wY19sbywgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQpCisJd3JpdGVfaHdyZWdfdG9fbWVtKHNfc2F2ZV9wY19oaSwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQpCisJd3JpdGVfaHdyZWdfdG9fbWVtKHNfc2F2ZV9leGVjX2xvLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCkKKwl3cml0ZV9od3JlZ190b19tZW0oc19zYXZlX2V4ZWNfaGksIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQorCXdyaXRlX2h3cmVnX3RvX21lbShzX3NhdmVfc3RhdHVzLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCkKIAotICAgIC8vT25seSBjaGVjayB0aGUgZmlyc3Qgd2F2ZSBuZWVkIExEUwotCS8qICAgICAgdGhlIGZpcnN0IHdhdmUgaW4gdGhlIHRocmVhZGdyb3VwICAgICovCi0Jc19iYXJyaWVyCQkJCQkJCQkJCQkJCQkJCQkJLy9GSVhNRSAgbm90IHBlcmZvcm1hbmNlLW9wdGltYWwgIkxEUyBpcyB1c2VkPyB3YWl0IGZvciBvdGhlciB3YXZlcyBpbiB0aGUgc2FtZSBURyIgCi0Jc19hbmRfYjMyCQlzX3NhdmVfdG1wLCBzX3dhdmVfc2l6ZSwgU19TQVZFX1NQSV9JTklUX0ZJUlNUX1dBVkVfTUFTSwkJCQkJCQkJLy9leGVjIGlzIHN0aWxsIHVzZWQgaGVyZQotCXNfY2JyYW5jaF9zY2MwCUxfU0FWRV9TR1BSCi0JCi0Jc19tb3ZfYjMyCQlleGVjX2xvLCAweEZGRkZGRkZGIAkJCQkJCQkJCQkJLy9uZWVkIGV2ZXJ5IHRocmVhZCBmcm9tIG5vdyBvbgotICAgIHNfYW5kX2IzMiAgICAgICBtMCwgc193YXZlX3NpemUsIDEKLSAgICBzX2NtcF9lcV91MzIgICAgbTAsIDEKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9FTkFCTEVfU0FWRV9MRFNfRVhFQ19ISSAgIAotICAgIHNfbW92X2IzMgkJZXhlY19oaSwgMHgwMDAwMDAwMAotICAgIHNfYnJhbmNoICAgICAgICBMX1NBVkVfTERTX05PUk1BTAotICBMX0VOQUJMRV9TQVZFX0xEU19FWEVDX0hJOgotCXNfbW92X2IzMgkJZXhlY19oaSwgMHhGRkZGRkZGRgotICBMX1NBVkVfTERTX05PUk1BTDoJCi0Jc19nZXRyZWdfYjMyIAlzX3NhdmVfYWxsb2Nfc2l6ZSwgaHdyZWcoSFdfUkVHX0xEU19BTExPQyxTUV9XQVZFX0xEU19BTExPQ19MRFNfU0laRV9TSElGVCxTUV9XQVZFX0xEU19BTExPQ19MRFNfU0laRV9TSVpFKSAJCQkvL2xkc19zaXplCi0Jc19hbmRfYjMyCQlzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDB4RkZGRkZGRkYJCQkJLy9sZHNfc2l6ZSBpcyB6ZXJvPwotCXNfY2JyYW5jaF9zY2MwCUxfU0FWRV9TR1BSCQkJCQkJCQkJCQkJCQkvL25vIGxkcyB1c2VkPyBqdW1wIHRvIExfU0FWRV9WR1BSCi0Jc19sc2hsX2IzMiAJCXNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgNiAJCQkJCQkvL0xEUyBzaXplIGluIGR3b3JkcyA9IGxkc19zaXplICogNjRkdwotCXNfbHNobF9iMzIgCQlzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDIgCQkJCQkJLy9MRFMgc2l6ZSBpbiBieXRlcwotCXNfbW92X2IzMgkJc19zYXZlX2J1Zl9yc3JjMiwgIHNfc2F2ZV9hbGxvY19zaXplICAJCQkJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotCWlmIChTV0laWkxFX0VOKQotCQlzX2FkZF91MzIJCXNfc2F2ZV9idWZfcnNyYzIsIHNfc2F2ZV9idWZfcnNyYzIsIDB4MAkJCQkJCS8vRklYTUUgbmVlZCB0byB1c2Ugc3dpenpsZSB0byBlbmFibGUgYm91bmRzIGNoZWNraW5nPwotCWVsc2UKLQkJc19tb3ZfYjMyCQlzX3NhdmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwCQkJCQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0JZW5kCisJc19nZXRyZWdfYjMyCXNfc2F2ZV90cmFwc3RzLCBod3JlZyhIV19SRUdfVFJBUFNUUykKKwl3cml0ZV9od3JlZ190b19tZW0oc19zYXZlX3RyYXBzdHMsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQorCXdyaXRlX2h3cmVnX3RvX21lbShzX3NhdmVfeG5hY2tfbWFzaywgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQpCiAKLSAgICAvL2xvYWQgMH42Myo0KGJ5dGUgYWRkcmVzcykgdG8gdmdwciB2MTUKLSAgICB2X21iY250X2xvX3UzMl9iMzIgdjAsIC0xLCAwCi0gICAgdl9tYmNudF9oaV91MzJfYjMyIHYwLCAtMSwgdjAKLSAgICB2X211bF91MzJfdTI0IHYwLCA0LCB2MAorCXNfZ2V0cmVnX2IzMglzX3NhdmVfbTAsIGh3cmVnKEhXX1JFR19NT0RFKQorCXdyaXRlX2h3cmVnX3RvX21lbShzX3NhdmVfbTAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQogCi0gICAgc19hbmRfYjMyICAgICAgIG0wLCBzX3dhdmVfc2l6ZSwgMQotICAgIHNfY21wX2VxX3UzMiAgICBtMCwgMQotICAgIHNfbW92X2IzMiAJCW0wLCAweDAKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9TQVZFX0xEU19MT09QX1c2NAorCXNfZ2V0cmVnX2IzMglzX3NhdmVfbTAsIGh3cmVnKEhXX1JFR19TSEFERVJfRkxBVF9TQ1JBVENIX0xPKQorCXdyaXRlX2h3cmVnX3RvX21lbShzX3NhdmVfbTAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQogCi0gIExfU0FWRV9MRFNfTE9PUF9XMzI6CQkJCQkJCQkJCi0JaWYgKFNBVkVfTERTKQotICAgIGRzX3JlYWRfYjMyIHYxLCB2MAotICAgIHNfd2FpdGNudCAwCQkJCQkJCQkJCQkJCQkgICAgLy9lbnN1cmUgZGF0YSByZWFkeQotICAgIGJ1ZmZlcl9zdG9yZV9kd29yZCB2MSwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxCi0JLy9idWZmZXJfc3RvcmVfbGRzX2R3b3JkCXNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IGxkczoxICAgICAgICAgICAgICAgLy9zYXZlIGxkcyB0byBtZW1vcnkgZG9lc24ndCBleGlzdCBpbiAxMAotCWVuZAotCXNfYWRkX3UzMgkJbTAsIG0wLCAxMjgJCQkJCQkJCQkJCQkJCQkvL2V2ZXJ5IGJ1ZmZlcl9zdG9yZV9sZHMgZG9lcyAxMjggYnl0ZXMKLQlzX2FkZF91MzIJCXNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgMTI4CQkJCQkJCS8vbWVtIG9mZnNldCBpbmNyZWFzZWQgYnkgMTI4IGJ5dGVzCi0gICAgdl9hZGRfbmNfdTMyICAgIHYwLCB2MCwgMTI4Ci0Jc19jbXBfbHRfdTMyCW0wLCBzX3NhdmVfYWxsb2Nfc2l6ZQkJCQkJCQkJCQkJCS8vc2NjPShtMCA8IHNfc2F2ZV9hbGxvY19zaXplKSA/IDEgOiAwCi0Jc19jYnJhbmNoX3NjYzEgIExfU0FWRV9MRFNfTE9PUF9XMzIJCQkJCQkJCQkJCQkJLy9MRFMgc2F2ZSBpcyBjb21wbGV0ZT8KLSAgICBzX2JyYW5jaCAgICAgICAgTF9TQVZFX1NHUFIKKwlzX2dldHJlZ19iMzIJc19zYXZlX20wLCBod3JlZyhIV19SRUdfU0hBREVSX0ZMQVRfU0NSQVRDSF9ISSkKKwl3cml0ZV9od3JlZ190b19tZW0oc19zYXZlX20wLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCkKIAotICBMX1NBVkVfTERTX0xPT1BfVzY0OgkJCQkJCQkJCQotCWlmIChTQVZFX0xEUykKLSAgICBkc19yZWFkX2IzMiB2MSwgdjAKLSAgICBzX3dhaXRjbnQgMAkJCQkJCQkJCQkJCQkJICAgIC8vZW5zdXJlIGRhdGEgcmVhZHkKLSAgICBidWZmZXJfc3RvcmVfZHdvcmQgdjEsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQotCS8vYnVmZmVyX3N0b3JlX2xkc19kd29yZAlzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBsZHM6MSAgICAgICAgICAgICAgIC8vc2F2ZSBsZHMgdG8gbWVtb3J5IGRvZXNuJ3QgZXhpc3QgaW4gMTAKLQllbmQKLQlzX2FkZF91MzIJCW0wLCBtMCwgMjU2CQkJCQkJCQkJCQkJCQkJLy9ldmVyeSBidWZmZXJfc3RvcmVfbGRzIGRvZXMgMjU2IGJ5dGVzCi0Jc19hZGRfdTMyCQlzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX21lbV9vZmZzZXQsIDI1NgkJCQkJCQkvL21lbSBvZmZzZXQgaW5jcmVhc2VkIGJ5IDI1NiBieXRlcwotICAgIHZfYWRkX25jX3UzMiAgICB2MCwgdjAsIDI1NgotCXNfY21wX2x0X3UzMgltMCwgc19zYXZlX2FsbG9jX3NpemUJCQkJCQkJCQkJCQkvL3NjYz0obTAgPCBzX3NhdmVfYWxsb2Nfc2l6ZSkgPyAxIDogMAotCXNfY2JyYW5jaF9zY2MxICBMX1NBVkVfTERTX0xPT1BfVzY0CQkJCQkJCQkJCQkJCS8vTERTIHNhdmUgaXMgY29tcGxldGU/Ci0gICAKLQkKLQkvKiAgICAgIAlzYXZlIFNHUFJzCSAgICAqLwotCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCS8vc19nZXRyZWdfYjMyIAlzX3NhdmVfYWxsb2Nfc2l6ZSwgaHdyZWcoSFdfUkVHX0dQUl9BTExPQyxTUV9XQVZFX0dQUl9BTExPQ19TR1BSX1NJWkVfU0hJRlQsU1FfV0FWRV9HUFJfQUxMT0NfU0dQUl9TSVpFX1NJWkUpIAkJCQkvL3NwZ3Jfc2l6ZQotCS8vc19hZGRfdTMyIAkJc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCAxCi0JLy9zX2xzaGxfYjMyIAkJc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCA0IAkJCQkJCS8vTnVtYmVyIG9mIFNHUFJzID0gKHNncHJfc2l6ZSArIDEpICogMTYgICAobm9uLXplcm8gdmFsdWUpIAotCS8vc19sc2hsX2IzMiAJCXNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMyAJCQkJCQkvL0luIGdmeDEwLCBOdW1iZXIgb2YgU0dQUnMgPSAoc2dwcl9zaXplICsgMSkgKiA4ICAgKG5vbi16ZXJvIHZhbHVlKSAKLSAgTF9TQVZFX1NHUFI6Ci0gICAgLy9uZWVkIHRvIGxvb2sgYXQgaXQgaXMgd2F2ZTMyIG9yIHdhdmU2NAotICAgIHNfYW5kX2IzMiAgICAgICBtMCwgc193YXZlX3NpemUsIDEKLSAgICBzX2NtcF9lcV91MzIgICAgbTAsIDEKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9TQVZFX1NHUFJfVk1FTV9XQVZFNjQKLSAgICBpZiAoU0dQUl9TQVZFX1VTRV9TUUMpCi0JCXNfbHNobF9iMzIJCXNfc2F2ZV9idWZfcnNyYzIsCXNfc2dwcl9zYXZlX251bSwgMgkJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVsc2UKLSAgICAgICAgc19sc2hsX2IzMgkJc19zYXZlX2J1Zl9yc3JjMiwJc19zZ3ByX3NhdmVfbnVtLCA3CQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzICgzMiB0aHJlYWRzKQotICAgIGVuZAotICAgIHNfYnJhbmNoICAgIExfU0FWRV9TR1BSX0NPTlQgICAgCi0gIExfU0FWRV9TR1BSX1ZNRU1fV0FWRTY0OgotCWlmIChTR1BSX1NBVkVfVVNFX1NRQykKLQkJc19sc2hsX2IzMgkJc19zYXZlX2J1Zl9yc3JjMiwJc19zZ3ByX3NhdmVfbnVtLCAyCQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzIAotCWVsc2UKLQkJc19sc2hsX2IzMgkJc19zYXZlX2J1Zl9yc3JjMiwJc19zZ3ByX3NhdmVfbnVtLCA4CQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzICg2NCB0aHJlYWRzKQotCWVuZAotICBMX1NBVkVfU0dQUl9DT05UOgotCWlmIChTV0laWkxFX0VOKQotCQlzX2FkZF91MzIJCXNfc2F2ZV9idWZfcnNyYzIsIHNfc2F2ZV9idWZfcnNyYzIsIDB4MAkJCQkJCS8vRklYTUUgbmVlZCB0byB1c2Ugc3dpenpsZSB0byBlbmFibGUgYm91bmRzIGNoZWNraW5nPwotCWVsc2UKLQkJc19tb3ZfYjMyCQlzX3NhdmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwCQkJCQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0JZW5kCi0JCi0JLy9zX21vdl9iMzIgCQltMCwgMHgwIAkJCQkJCQkJCQkJCQkJLy9TR1BSIGluaXRpYWwgaW5kZXggdmFsdWUgPTAJCQotICAgIC8vc19ub3AgICAgICAgICAgIDB4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL01hbnVhbGx5IGluc2VydGVkIHdhaXQgc3RhdGVzCi0JCi0gICAgc19hbmRfYjMyICAgICAgIG0wLCBzX3dhdmVfc2l6ZSwgMQotICAgIHNfY21wX2VxX3UzMiAgICBtMCwgMQotICAgIAotICAgIHNfbW92X2IzMiAJCW0wLCAweDAgCQkJCQkJCQkJCQkJCQkvL1NHUFIgaW5pdGlhbCBpbmRleCB2YWx1ZSA9MAkJCi0gICAgc19ub3AgICAgICAgICAgIDB4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL01hbnVhbGx5IGluc2VydGVkIHdhaXQgc3RhdGVzCisJLyogdGhlIGZpcnN0IHdhdmUgaW4gdGhlIHRocmVhZGdyb3VwICovCisJc19hbmRfYjMyCXNfc2F2ZV90bXAsIHNfc2F2ZV9zcGlfaW5pdF9oaSwgU19TQVZFX1NQSV9JTklUX0ZJUlNUX1dBVkVfTUFTSworCXNfbW92X2IzMglzX3NhdmVfZXhlY19oaSwgMHgwCisJc19vcl9iMzIJc19zYXZlX2V4ZWNfaGksIHNfc2F2ZV90bXAsIHNfc2F2ZV9leGVjX2hpCQkvLyBzYXZlIGZpcnN0IHdhdmUgYml0IHRvIHNfc2F2ZV9leGVjX2hpLmJpdHNbMjZdCiAKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9TQVZFX1NHUFJfTE9PUF9XQVZFNjQKKwkvKiBzYXZlIFNHUFJzICovCisJLy8gU2F2ZSBTR1BSIGJlZm9yZSBMRFMgc2F2ZSwgdGhlbiB0aGUgczAgdG8gczQgY2FuIGJlIHVzZWQgZHVyaW5nIExEUyBzYXZlLi4uCiAKLSAgTF9TQVZFX1NHUFJfTE9PUF9XQVZFMzI6IAkJCQkJCQkJCQkKLQlzX21vdnJlbHNfYjMyIAlzMCwgczAgCQkJCQkJCQkJCQkJCQkJLy9zMCA9IHNbMCttMF0KLSAgICAvL3poZW54dSwgYWRkaW5nIG9uZSBtb3JlIGFyZ3VtZW50IHRvIHNhdmUgc2dwciBmdW5jdGlvbiwgdGhpcyBpcyBvbmx5IGZvciB2bWVtLCB1c2luZyBzcWMgaXMgbm90IGNoYW5nZSAgICAKLQl3cml0ZV9zZ3ByX3RvX21lbV93YXZlMzIoczAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCQkJCQkJCS8vUFY6IHRoZSBiZXN0IHBlcmZvcm1hbmNlIHNob3VsZCBiZSB1c2luZyBzX2J1ZmZlcl9zdG9yZV9kd29yZHg0Ci0Jc19hZGRfdTMyCQltMCwgbTAsIDEJCQkJCQkJCQkJCQkJCS8vbmV4dCBzZ3ByIGluZGV4Ci0Jc19jbXBfbHRfdTMyIAltMCwgc19zZ3ByX3NhdmVfbnVtIAkJCQkJCQkJCQkJLy9zY2MgPSAobTAgPCBzX3NncHJfc2F2ZV9udW0pID8gMSA6IDAKLQlzX2NicmFuY2hfc2NjMSAJTF9TQVZFX1NHUFJfTE9PUF9XQVZFMzIJCQkJCQkJCQkJCQkvL1NHUFIgc2F2ZSBpcyBjb21wbGV0ZT8KLSAgICBzX2JyYW5jaCAgICBMX1NBVkVfSFdSRUcKKwkvLyBTR1BSIFNSIG1lbW9yeSBvZmZzZXQgOiBzaXplKFZHUFIpK3NpemUoU1ZHUFIpCisJZ2V0X3ZncHJfc2l6ZV9ieXRlcyhzX3NhdmVfbWVtX29mZnNldCwgc193YXZlX3NpemUpCisJZ2V0X3N2Z3ByX3NpemVfYnl0ZXMoc19zYXZlX3RtcCkKKwlzX2FkZF91MzIJc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfdG1wCisJc19tb3ZfYjMyCXNfc2F2ZV9idWZfcnNyYzIsIDB4MTAwMDAwMAkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCiAKLSAgTF9TQVZFX1NHUFJfTE9PUF9XQVZFNjQ6IAkJCQkJCQkJCQkKLQlzX21vdnJlbHNfYjMyIAlzMCwgczAgCQkJCQkJCQkJCQkJCQkJLy9zMCA9IHNbMCttMF0KLSAgICAvL3poZW54dSwgYWRkaW5nIG9uZSBtb3JlIGFyZ3VtZW50IHRvIHNhdmUgc2dwciBmdW5jdGlvbiwgdGhpcyBpcyBvbmx5IGZvciB2bWVtLCB1c2luZyBzcWMgaXMgbm90IGNoYW5nZSAgICAKLQl3cml0ZV9zZ3ByX3RvX21lbV93YXZlNjQoczAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCQkJCQkJCS8vUFY6IHRoZSBiZXN0IHBlcmZvcm1hbmNlIHNob3VsZCBiZSB1c2luZyBzX2J1ZmZlcl9zdG9yZV9kd29yZHg0Ci0Jc19hZGRfdTMyCQltMCwgbTAsIDEJCQkJCQkJCQkJCQkJCS8vbmV4dCBzZ3ByIGluZGV4Ci0Jc19jbXBfbHRfdTMyIAltMCwgc19zZ3ByX3NhdmVfbnVtIAkJCQkJCQkJCQkJLy9zY2MgPSAobTAgPCBzX3NncHJfc2F2ZV9udW0pID8gMSA6IDAKLQlzX2NicmFuY2hfc2NjMSAJTF9TQVZFX1NHUFJfTE9PUF9XQVZFNjQJCQkJCQkJCQkJCQkvL1NHUFIgc2F2ZSBpcyBjb21wbGV0ZT8KKwkvLyBiYWNrdXAgc19zYXZlX2J1Zl9yc3JjMCwxIHRvIHNfc2F2ZV9wY19sby9oaSwgc2luY2Ugd3JpdGVfMTZzZ3ByX3RvX21lbSBmdW5jdGlvbiB3aWxsIGNoYW5nZSB0aGUgcnNyYzAKKwlzX21vdl9iMzIJc19zYXZlX3huYWNrX21hc2ssIHNfc2F2ZV9idWZfcnNyYzAKKwlzX2FkZF91MzIJc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQKKwlzX2FkZGNfdTMyCXNfc2F2ZV9idWZfcnNyYzEsIHNfc2F2ZV9idWZfcnNyYzEsIDAKIAotCQotCS8qIAkJc2F2ZSBIVyByZWdpc3RlcnMJKi8KLQkvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSAgTF9TQVZFX0hXUkVHOgotICAgIHNfbW92X2IzMgkJc19zYXZlX2J1Zl9yc3JjMiwgMHg0CQkJCQkJCQkvL05VTV9SRUNPUkRTCWluIGJ5dGVzCi0JaWYgKFNXSVpaTEVfRU4pCi0JCXNfYWRkX3UzMgkJc19zYXZlX2J1Zl9yc3JjMiwgc19zYXZlX2J1Zl9yc3JjMiwgMHgwCQkJCQkJLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0JZWxzZQotCQlzX21vdl9iMzIJCXNfc2F2ZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJCQkJCS8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLQllbmQKKwlzX21vdl9iMzIJbTAsIDB4MAkJCQkJCQkvL1NHUFIgaW5pdGlhbCBpbmRleCB2YWx1ZSA9MAorCXNfbm9wCQkweDAJCQkJCQkJLy9NYW51YWxseSBpbnNlcnRlZCB3YWl0IHN0YXRlcworTF9TQVZFX1NHUFJfTE9PUDoKKwkvLyBTR1BSIGlzIGFsbG9jYXRlZCBpbiAxNiBTR1BSIGdyYW51bGFyaXR5CisJc19tb3ZyZWxzX2I2NAlzMCwgczAJCQkJCQkJLy9zMCA9IHNbMCttMF0sIHMxID0gc1sxK20wXQorCXNfbW92cmVsc19iNjQJczIsIHMyCQkJCQkJCS8vczIgPSBzWzIrbTBdLCBzMyA9IHNbMyttMF0KKwlzX21vdnJlbHNfYjY0CXM0LCBzNAkJCQkJCQkvL3M0ID0gc1s0K20wXSwgczUgPSBzWzUrbTBdCisJc19tb3ZyZWxzX2I2NAlzNiwgczYJCQkJCQkJLy9zNiA9IHNbNittMF0sIHM3ID0gc1s3K20wXQorCXNfbW92cmVsc19iNjQJczgsIHM4CQkJCQkJCS8vczggPSBzWzgrbTBdLCBzOSA9IHNbOSttMF0KKwlzX21vdnJlbHNfYjY0CXMxMCwgczEwCQkJCQkJLy9zMTAgPSBzWzEwK20wXSwgczExID0gc1sxMSttMF0KKwlzX21vdnJlbHNfYjY0CXMxMiwgczEyCQkJCQkJLy9zMTIgPSBzWzEyK20wXSwgczEzID0gc1sxMyttMF0KKwlzX21vdnJlbHNfYjY0CXMxNCwgczE0CQkJCQkJLy9zMTQgPSBzWzE0K20wXSwgczE1ID0gc1sxNSttMF0KIAotICAgIHNfYW5kX2IzMiAgICAgICBtMCwgc193YXZlX3NpemUsIDEKLSAgICBzX2NtcF9lcV91MzIgICAgbTAsIDEKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9TQVZFX0hXUkVHX1dBVkU2NAotCQotCXdyaXRlX3NncHJfdG9fbWVtX3dhdmUzMihzX3NhdmVfbTAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCQkJCQkvL00wCisJd3JpdGVfMTZzZ3ByX3RvX21lbShzMCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQpCisJc19hZGRfdTMyCW0wLCBtMCwgMTYJCQkJCQkvL25leHQgc2dwciBpbmRleAorCXNfY21wX2x0X3UzMgltMCwgOTYJCQkJCQkJLy9zY2MgPSAobTAgPCBmaXJzdCA5NiBTR1BSKSA/IDEgOiAwCisJc19jYnJhbmNoX3NjYzEJTF9TQVZFX1NHUFJfTE9PUAkJCQkJLy9maXJzdCA5NiBTR1BSIHNhdmUgaXMgY29tcGxldGU/CiAKLQlpZiAoKEVNVV9SVU5fSEFDSykgJiYgKEVNVV9SVU5fSEFDS19TQVZFX0ZJUlNUX1RJTUUpKSAgICAgIAotCQlzX2FkZF91MzIgc19zYXZlX3BjX2xvLCBzX3NhdmVfcGNfbG8sIDQgICAgICAgICAgICAgLy9wY1szMTowXSs0Ci0JCXNfYWRkY191MzIgc19zYXZlX3BjX2hpLCBzX3NhdmVfcGNfaGksIDB4MAkJCS8vY2FycnkgYml0IG92ZXIKLQllbmQKKwkvL3NhdmUgdGhlIHJlc3QgMTIgU0dQUgorCXNfbW92cmVsc19iNjQJczAsIHMwCQkJCQkJCS8vczAgPSBzWzArbTBdLCBzMSA9IHNbMSttMF0KKwlzX21vdnJlbHNfYjY0CXMyLCBzMgkJCQkJCQkvL3MyID0gc1syK20wXSwgczMgPSBzWzMrbTBdCisJc19tb3ZyZWxzX2I2NAlzNCwgczQJCQkJCQkJLy9zNCA9IHNbNCttMF0sIHM1ID0gc1s1K20wXQorCXNfbW92cmVsc19iNjQJczYsIHM2CQkJCQkJCS8vczYgPSBzWzYrbTBdLCBzNyA9IHNbNyttMF0KKwlzX21vdnJlbHNfYjY0CXM4LCBzOAkJCQkJCQkvL3M4ID0gc1s4K20wXSwgczkgPSBzWzkrbTBdCisJc19tb3ZyZWxzX2I2NAlzMTAsIHMxMAkJCQkJCS8vczEwID0gc1sxMCttMF0sIHMxMSA9IHNbMTErbTBdCisJd3JpdGVfMTJzZ3ByX3RvX21lbShzMCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQpCiAKLQl3cml0ZV9zZ3ByX3RvX21lbV93YXZlMzIoc19zYXZlX3BjX2xvLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQkJCQkJLy9QQwotCXdyaXRlX3NncHJfdG9fbWVtX3dhdmUzMihzX3NhdmVfcGNfaGksIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCi0Jd3JpdGVfc2dwcl90b19tZW1fd2F2ZTMyKHNfc2F2ZV9leGVjX2xvLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQkJCQkvL0VYRUMKLQl3cml0ZV9zZ3ByX3RvX21lbV93YXZlMzIoc19zYXZlX2V4ZWNfaGksIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCi0Jd3JpdGVfc2dwcl90b19tZW1fd2F2ZTMyKHNfc2F2ZV9zdGF0dXMsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCQkJCS8vU1RBVFVTIAotCQotCS8vc19zYXZlX3RyYXBzdHMgY29uZmxpY3RzIHdpdGggc19zYXZlX2FsbG9jX3NpemUKLQlzX2dldHJlZ19iMzIgICAgc19zYXZlX3RyYXBzdHMsIGh3cmVnKEhXX1JFR19UUkFQU1RTKQotCXdyaXRlX3NncHJfdG9fbWVtX3dhdmUzMihzX3NhdmVfdHJhcHN0cywgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDLCBVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRikJCQkJLy9UUkFQU1RTCi0JCi0JLy93cml0ZV9zZ3ByX3RvX21lbV93YXZlMzIoc19zYXZlX3huYWNrX21hc2tfbG8sIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCQkJLy9YTkFDS19NQVNLX0xPCi0Jd3JpdGVfc2dwcl90b19tZW1fd2F2ZTMyKHNfc2F2ZV94bmFja19tYXNrLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQkJCS8vWE5BQ0tfTUFTS19ISQotCQotCS8vdXNlIHNfc2F2ZV90bXAgd291bGQgaW50cm9kdWNlIGNvbmZsaWN0IGhlcmUgYmV0d2VlbiBzX3NhdmVfdG1wIGFuZCBzX3NhdmVfYnVmX3JzcmMyCi0Jc19nZXRyZWdfYjMyIAlzX3NhdmVfbTAsIGh3cmVnKEhXX1JFR19NT0RFKQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkvL01PREUKLQl3cml0ZV9zZ3ByX3RvX21lbV93YXZlMzIoc19zYXZlX20wLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQotICAgIGlmKFNBVkVfUkVTVE9SRV9IV0lEX0RESUQpCi0gICAgc19nZXRyZWdfYjMyIAlzX3NhdmVfbTAsIGh3cmVnKEhXX1JFR19IV19JRDEpCQkJCQkJCQkJCQkJCQkJCQkJCQkJCS8vSFdfSUQxLCBoYW5kbGVyIHJlY29yZHMgdGhlIFNFL1NBL1dHUC9TSU1EL3dhdmUgb2YgdGhlIG9yaWdpbmFsIHdhdmUKLSAgICB3cml0ZV9zZ3ByX3RvX21lbV93YXZlMzIoc19zYXZlX20wLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQotICAgIGVuZAotICAgIHNfYnJhbmNoICAgTF9TX1BHTV9FTkRfU0FWRUQKKwkvLyByZXN0b3JlIHNfc2F2ZV9idWZfcnNyYzAsMQorCXNfbW92X2IzMglzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfeG5hY2tfbWFzawogCi0gIExfU0FWRV9IV1JFR19XQVZFNjQ6Ci0gICAgd3JpdGVfc2dwcl90b19tZW1fd2F2ZTY0KHNfc2F2ZV9tMCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDLCBVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRikJCQkJCS8vTTAKKwkvKiBzYXZlIGZpcnN0IDQgVkdQUiwgdGhlbiBMRFMgc2F2ZSBjb3VsZCB1c2UgICAqLworCS8vIGVhY2ggd2F2ZSB3aWxsIGFsbG9jIDQgdmdwcnMgYXQgbGVhc3QuLi4KIAotCWlmICgoRU1VX1JVTl9IQUNLKSAmJiAoRU1VX1JVTl9IQUNLX1NBVkVfRklSU1RfVElNRSkpICAgICAgCi0JCXNfYWRkX3UzMiBzX3NhdmVfcGNfbG8sIHNfc2F2ZV9wY19sbywgNCAgICAgICAgICAgICAvL3BjWzMxOjBdKzQKLQkJc19hZGRjX3UzMiBzX3NhdmVfcGNfaGksIHNfc2F2ZV9wY19oaSwgMHgwCQkJLy9jYXJyeSBiaXQgb3ZlcgotCWVuZAorCXNfbW92X2IzMglzX3NhdmVfbWVtX29mZnNldCwgMAorIAlzX21vdl9iMzIJZXhlY19sbywgMHhGRkZGRkZGRgkJCQkJLy9uZWVkIGV2ZXJ5IHRocmVhZCBmcm9tIG5vdyBvbgorCXNfbHNocl9iMzIJbTAsIHNfd2F2ZV9zaXplLCBTX1dBVkVfU0laRQorCXNfYW5kX2IzMgltMCwgbTAsIDEKKwlzX2NtcF9lcV91MzIJbTAsIDEKKwlzX2NicmFuY2hfc2NjMQlMX0VOQUJMRV9TQVZFXzRWR1BSX0VYRUNfSEkKKwlzX21vdl9iMzIJZXhlY19oaSwgMHgwMDAwMDAwMAorCXNfYnJhbmNoCUxfU0FWRV80VkdQUl9XQVZFMzIKK0xfRU5BQkxFX1NBVkVfNFZHUFJfRVhFQ19ISToKKwlzX21vdl9iMzIJZXhlY19oaSwgMHhGRkZGRkZGRgorCXNfYnJhbmNoCUxfU0FWRV80VkdQUl9XQVZFNjQKK0xfU0FWRV80VkdQUl9XQVZFMzI6CisJc19tb3ZfYjMyCXNfc2F2ZV9idWZfcnNyYzIsIDB4MTAwMDAwMAkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCiAKLQl3cml0ZV9zZ3ByX3RvX21lbV93YXZlNjQoc19zYXZlX3BjX2xvLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQkJCQkJLy9QQwotCXdyaXRlX3NncHJfdG9fbWVtX3dhdmU2NChzX3NhdmVfcGNfaGksIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCi0Jd3JpdGVfc2dwcl90b19tZW1fd2F2ZTY0KHNfc2F2ZV9leGVjX2xvLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQkJCQkvL0VYRUMKLQl3cml0ZV9zZ3ByX3RvX21lbV93YXZlNjQoc19zYXZlX2V4ZWNfaGksIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCi0Jd3JpdGVfc2dwcl90b19tZW1fd2F2ZTY0KHNfc2F2ZV9zdGF0dXMsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCQkJCS8vU1RBVFVTIAotCQotCS8vc19zYXZlX3RyYXBzdHMgY29uZmxpY3RzIHdpdGggc19zYXZlX2FsbG9jX3NpemUKLQlzX2dldHJlZ19iMzIgICAgc19zYXZlX3RyYXBzdHMsIGh3cmVnKEhXX1JFR19UUkFQU1RTKQotCXdyaXRlX3NncHJfdG9fbWVtX3dhdmU2NChzX3NhdmVfdHJhcHN0cywgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDLCBVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRikJCQkJLy9UUkFQU1RTCi0JCi0JLy93cml0ZV9zZ3ByX3RvX21lbV93YXZlNjQoc19zYXZlX3huYWNrX21hc2tfbG8sIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQywgVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCQkJLy9YTkFDS19NQVNLX0xPCi0Jd3JpdGVfc2dwcl90b19tZW1fd2F2ZTY0KHNfc2F2ZV94bmFja19tYXNrLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQkJCS8vWE5BQ0tfTUFTS19ISQotCQotCS8vdXNlIHNfc2F2ZV90bXAgd291bGQgaW50cm9kdWNlIGNvbmZsaWN0IGhlcmUgYmV0d2VlbiBzX3NhdmVfdG1wIGFuZCBzX3NhdmVfYnVmX3JzcmMyCi0Jc19nZXRyZWdfYjMyIAlzX3NhdmVfbTAsIGh3cmVnKEhXX1JFR19NT0RFKQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkvL01PREUKLQl3cml0ZV9zZ3ByX3RvX21lbV93YXZlNjQoc19zYXZlX20wLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQorCS8vIFZHUFIgQWxsb2NhdGVkIGluIDQtR1BSIGdyYW51bGFyaXR5CiAKKwlidWZmZXJfc3RvcmVfZHdvcmQJdjAsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQorCWJ1ZmZlcl9zdG9yZV9kd29yZAl2MSwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxIG9mZnNldDoxMjgKKwlidWZmZXJfc3RvcmVfZHdvcmQJdjIsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MTI4KjIKKwlidWZmZXJfc3RvcmVfZHdvcmQJdjMsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MTI4KjMKKwlzX2JyYW5jaAlMX1NBVkVfTERTCiAKLSAgICBpZihTQVZFX1JFU1RPUkVfSFdJRF9ERElEKQotICAgIHNfZ2V0cmVnX2IzMiAJc19zYXZlX20wLCBod3JlZyhIV19SRUdfSFdfSUQxKQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkvL0hXX0lEMSwgaGFuZGxlciByZWNvcmRzIHRoZSBTRS9TQS9XR1AvU0lNRC93YXZlIG9mIHRoZSBvcmlnaW5hbCB3YXZlCi0gICAgd3JpdGVfc2dwcl90b19tZW1fd2F2ZTY0KHNfc2F2ZV9tMCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDLCBVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRikKK0xfU0FWRV80VkdQUl9XQVZFNjQ6CisJc19tb3ZfYjMyCXNfc2F2ZV9idWZfcnNyYzIsIDB4MTAwMDAwMAkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCiAKLQkvKiAJCXNhdmUgRERJRAkqLwotCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICBMX1NBVkVfRERJRDoKLSAgICAvL0VYRUMgaGFzIGJlZW4gc2F2ZWQsIG5vIHZlY3RvciBpbnN0IGZvbGxvd2luZwotICAgIHNfbW92X2IzMglleGVjX2xvLCAweDgwMDAwMDAwICAgIC8vU2V0IE1TQiB0byAxLiBDbGVhcmVkIHdoZW4gZHJhdyBpbmRleCBpcyByZXR1cm5lZAotICAgIHNfc2VuZG1zZyBzZW5kbXNnKE1TR19HRVRfRERJRCkKKwkvLyBWR1BSIEFsbG9jYXRlZCBpbiA0LUdQUiBncmFudWxhcml0eQogCi0gIExfV0FJVF9ERElEX0xPT1A6ICAgIAotICAgIHNfbm9wCQk3CQkJLy8gc2xlZXAgYSBiaXQKLSAgICBzX2JpdGNtcDBfYjMyIGV4ZWNfbG8sIDMxCS8vIHRlc3QgdG8gc2VlIGlmIE1TQiBpcyBjbGVhcmVkLCBtZWFuaW5nIGRvbmUKLSAgICBzX2NicmFuY2hfc2NjMAlMX1dBSVRfRERJRF9MT09QCisJYnVmZmVyX3N0b3JlX2R3b3JkCXYwLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEKKwlidWZmZXJfc3RvcmVfZHdvcmQJdjEsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2CisJYnVmZmVyX3N0b3JlX2R3b3JkCXYyLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NioyCisJYnVmZmVyX3N0b3JlX2R3b3JkCXYzLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NiozCiAKLSAgICBzX21vdl9iMzIJc19zYXZlX20wLCBleGVjX2xvCisJLyogc2F2ZSBMRFMgKi8KIAorTF9TQVZFX0xEUzoKKwkvLyBDaGFuZ2UgRVhFQyB0byBhbGwgdGhyZWFkcy4uLgorCXNfbW92X2IzMglleGVjX2xvLCAweEZGRkZGRkZGCQkJCQkvL25lZWQgZXZlcnkgdGhyZWFkIGZyb20gbm93IG9uCisJc19sc2hyX2IzMgltMCwgc193YXZlX3NpemUsIFNfV0FWRV9TSVpFCisJc19hbmRfYjMyCW0wLCBtMCwgMQorCXNfY21wX2VxX3UzMgltMCwgMQorCXNfY2JyYW5jaF9zY2MxCUxfRU5BQkxFX1NBVkVfTERTX0VYRUNfSEkKKwlzX21vdl9iMzIJZXhlY19oaSwgMHgwMDAwMDAwMAorCXNfYnJhbmNoCUxfU0FWRV9MRFNfTk9STUFMCitMX0VOQUJMRV9TQVZFX0xEU19FWEVDX0hJOgorCXNfbW92X2IzMglleGVjX2hpLCAweEZGRkZGRkZGCitMX1NBVkVfTERTX05PUk1BTDoKKwlzX2dldHJlZ19iMzIJc19zYXZlX2FsbG9jX3NpemUsIGh3cmVnKEhXX1JFR19MRFNfQUxMT0MsU1FfV0FWRV9MRFNfQUxMT0NfTERTX1NJWkVfU0hJRlQsU1FfV0FWRV9MRFNfQUxMT0NfTERTX1NJWkVfU0laRSkKKwlzX2FuZF9iMzIJc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCAweEZGRkZGRkZGCS8vbGRzX3NpemUgaXMgemVybz8KKwlzX2NicmFuY2hfc2NjMAlMX1NBVkVfTERTX0RPTkUJCQkJCQkvL25vIGxkcyB1c2VkPyBqdW1wIHRvIExfU0FWRV9ET05FCiAKLSAgICBzX21vdl9iMzIJCXNfc2F2ZV9idWZfcnNyYzIsIDB4NAkJCQkJCQkJLy9OVU1fUkVDT1JEUwlpbiBieXRlcwotCWlmIChTV0laWkxFX0VOKQotCQlzX2FkZF91MzIJCXNfc2F2ZV9idWZfcnNyYzIsIHNfc2F2ZV9idWZfcnNyYzIsIDB4MAkJCQkJCS8vRklYTUUgbmVlZCB0byB1c2Ugc3dpenpsZSB0byBlbmFibGUgYm91bmRzIGNoZWNraW5nPwotCWVsc2UKLQkJc19tb3ZfYjMyCQlzX3NhdmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwCQkJCQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0JZW5kCi0gICAgc19hbmRfYjMyICAgICAgIG0wLCBzX3dhdmVfc2l6ZSwgMQotICAgIHNfY21wX2VxX3UzMiAgICBtMCwgMQotICAgIHNfY2JyYW5jaF9zY2MxICBMX1NBVkVfRERJRF9XQVZFNjQKKwlzX2JhcnJpZXIJCQkJCQkJCS8vTERTIGlzIHVzZWQ/IHdhaXQgZm9yIG90aGVyIHdhdmVzIGluIHRoZSBzYW1lIFRHCisJc19hbmRfYjMyCXNfc2F2ZV90bXAsIHNfc2F2ZV9leGVjX2hpLCBTX1NBVkVfU1BJX0lOSVRfRklSU1RfV0FWRV9NQVNLCisJc19jYnJhbmNoX3NjYzAJTF9TQVZFX0xEU19ET05FCiAKLSAgICB3cml0ZV9zZ3ByX3RvX21lbV93YXZlMzIoc19zYXZlX20wLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKSAKKwkvLyBmaXJzdCB3YXZlIGRvIExEUyBzYXZlOwogCi0gIExfU0FWRV9ERElEX1dBVkU2NDoKLSAgICB3cml0ZV9zZ3ByX3RvX21lbV93YXZlNjQoc19zYXZlX20wLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMsIFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKSAKKwlzX2xzaGxfYjMyCXNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgNgkJCS8vTERTIHNpemUgaW4gZHdvcmRzID0gbGRzX3NpemUgKiA2NGR3CisJc19sc2hsX2IzMglzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDIJCQkvL0xEUyBzaXplIGluIGJ5dGVzCisJc19tb3ZfYjMyCXNfc2F2ZV9idWZfcnNyYzIsIHNfc2F2ZV9hbGxvY19zaXplCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwogCi0gICAgZW5kCi0gICAKLSAgTF9TX1BHTV9FTkRfU0FWRUQ6Ci0JLyogICAgIFNfUEdNX0VORF9TQVZFRCAgKi8gICAgCQkJCQkJCS8vRklYTUUgIGdyYXBoaWNzIE9OTFkKLQlpZiAoKEVNVV9SVU5fSEFDSykgJiYgKCFFTVVfUlVOX0hBQ0tfU0FWRV9OT1JNQUxfRVhJVCkpCQotCQlzX2FuZF9iMzIgc19zYXZlX3BjX2hpLCBzX3NhdmVfcGNfaGksIDB4MDAwMGZmZmYgICAgLy9wY1s0NzozMl0KLQkJc19hZGRfdTMyIHNfc2F2ZV9wY19sbywgc19zYXZlX3BjX2xvLCA0ICAgICAgICAgICAgIC8vcGNbMzE6MF0rNAotCQlzX2FkZGNfdTMyIHNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCAweDAJCQkvL2NhcnJ5IGJpdCBvdmVyCi0JCXNfcmZlX2I2NCBzX3NhdmVfcGNfbG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1JldHVybiB0byB0aGUgbWFpbiBzaGFkZXIgcHJvZ3JhbQotCWVsc2UKLQllbmQKKwkvLyBMRFMgYXQgb2Zmc2V0OiBzaXplKFZHUFIpK3NpemUoU1ZHUFIpK1NJWkUoU0dQUikrU0laRShIV1JFRykKKwkvLworCWdldF92Z3ByX3NpemVfYnl0ZXMoc19zYXZlX21lbV9vZmZzZXQsIHNfd2F2ZV9zaXplKQorCWdldF9zdmdwcl9zaXplX2J5dGVzKHNfc2F2ZV90bXApCisJc19hZGRfdTMyCXNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX3RtcAorCXNfYWRkX3UzMglzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX21lbV9vZmZzZXQsIGdldF9zZ3ByX3NpemVfYnl0ZXMoKQorCXNfYWRkX3UzMglzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX21lbV9vZmZzZXQsIGdldF9od3JlZ19zaXplX2J5dGVzKCkKIAotCQotICAgIHNfYnJhbmNoCUxfRU5EX1BHTQotCQorCXNfbW92X2IzMglzX3NhdmVfYnVmX3JzcmMyLCAweDEwMDAwMDAJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwogCi0JCQkJCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiAgICAgICAgICAgICAgICAgICAgIAlyZXN0b3JlIHJvdXRpbmUJCQkJCQkgICAgICAgICAgICAgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisJLy9sb2FkIDB+NjMqNChieXRlIGFkZHJlc3MpIHRvIHZncHIgdjAKKwl2X21iY250X2xvX3UzMl9iMzIJdjAsIC0xLCAwCisJdl9tYmNudF9oaV91MzJfYjMyCXYwLCAtMSwgdjAKKwl2X211bF91MzJfdTI0CXYwLCA0LCB2MAorCisJc19sc2hyX2IzMgltMCwgc193YXZlX3NpemUsIFNfV0FWRV9TSVpFCisJc19hbmRfYjMyCW0wLCBtMCwgMQorCXNfY21wX2VxX3UzMgltMCwgMQorCXNfbW92X2IzMgltMCwgMHgwCisJc19jYnJhbmNoX3NjYzEJTF9TQVZFX0xEU19XNjQKKworTF9TQVZFX0xEU19XMzI6CisJc19tb3ZfYjMyCXMzLCAxMjgKKwlzX25vcAkJMAorCXNfbm9wCQkwCisJc19ub3AJCTAKK0xfU0FWRV9MRFNfTE9PUF9XMzI6CisJZHNfcmVhZF9iMzIJdjEsIHYwCisJc193YWl0Y250CTAKKwlidWZmZXJfc3RvcmVfZHdvcmQJdjEsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQorCisJc19hZGRfdTMyCW0wLCBtMCwgczMJCQkJCQkvL2V2ZXJ5IGJ1ZmZlcl9zdG9yZV9sZHMgZG9lcyAyNTYgYnl0ZXMKKwlzX2FkZF91MzIJc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBzMworCXZfYWRkX25jX3UzMgl2MCwgdjAsIDEyOAkJCQkJCS8vbWVtIG9mZnNldCBpbmNyZWFzZWQgYnkgMTI4IGJ5dGVzCisJc19jbXBfbHRfdTMyCW0wLCBzX3NhdmVfYWxsb2Nfc2l6ZQkJCQkJLy9zY2M9KG0wIDwgc19zYXZlX2FsbG9jX3NpemUpID8gMSA6IDAKKwlzX2NicmFuY2hfc2NjMQlMX1NBVkVfTERTX0xPT1BfVzMyCQkJCQkvL0xEUyBzYXZlIGlzIGNvbXBsZXRlPworCisJc19icmFuY2gJTF9TQVZFX0xEU19ET05FCisKK0xfU0FWRV9MRFNfVzY0OgorCXNfbW92X2IzMglzMywgMjU2CisJc19ub3AJCTAKKwlzX25vcAkJMAorCXNfbm9wCQkwCitMX1NBVkVfTERTX0xPT1BfVzY0OgorCWRzX3JlYWRfYjMyCXYxLCB2MAorCXNfd2FpdGNudAkwCisJYnVmZmVyX3N0b3JlX2R3b3JkCXYxLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEKKworCXNfYWRkX3UzMgltMCwgbTAsIHMzCQkJCQkJLy9ldmVyeSBidWZmZXJfc3RvcmVfbGRzIGRvZXMgMjU2IGJ5dGVzCisJc19hZGRfdTMyCXNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgczMKKwl2X2FkZF9uY191MzIJdjAsIHYwLCAyNTYJCQkJCQkvL21lbSBvZmZzZXQgaW5jcmVhc2VkIGJ5IDI1NiBieXRlcworCXNfY21wX2x0X3UzMgltMCwgc19zYXZlX2FsbG9jX3NpemUJCQkJCS8vc2NjPShtMCA8IHNfc2F2ZV9hbGxvY19zaXplKSA/IDEgOiAwCisJc19jYnJhbmNoX3NjYzEJTF9TQVZFX0xEU19MT09QX1c2NAkJCQkJLy9MRFMgc2F2ZSBpcyBjb21wbGV0ZT8KKworTF9TQVZFX0xEU19ET05FOgorCS8qIHNhdmUgVkdQUnMgIC0gc2V0IHRoZSBSZXN0IFZHUFJzICovCitMX1NBVkVfVkdQUjoKKwkvLyBWR1BSIFNSIG1lbW9yeSBvZmZzZXQ6IDAKKwlzX21vdl9iMzIJZXhlY19sbywgMHhGRkZGRkZGRgkJCQkJLy9uZWVkIGV2ZXJ5IHRocmVhZCBmcm9tIG5vdyBvbgorCXNfbHNocl9iMzIJbTAsIHNfd2F2ZV9zaXplLCBTX1dBVkVfU0laRQorCXNfYW5kX2IzMgltMCwgbTAsIDEKKwlzX2NtcF9lcV91MzIJbTAsIDEKKwlzX2NicmFuY2hfc2NjMQlMX0VOQUJMRV9TQVZFX1ZHUFJfRVhFQ19ISQorCXNfbW92X2IzMglzX3NhdmVfbWVtX29mZnNldCwgKDArMTI4KjQpCQkJCS8vIGZvciB0aGUgcmVzdCBWR1BScworCXNfbW92X2IzMglleGVjX2hpLCAweDAwMDAwMDAwCisJc19icmFuY2gJTF9TQVZFX1ZHUFJfTk9STUFMCitMX0VOQUJMRV9TQVZFX1ZHUFJfRVhFQ19ISToKKwlzX21vdl9iMzIJc19zYXZlX21lbV9vZmZzZXQsICgwKzI1Nio0KQkJCQkvLyBmb3IgdGhlIHJlc3QgVkdQUnMKKwlzX21vdl9iMzIJZXhlY19oaSwgMHhGRkZGRkZGRgorTF9TQVZFX1ZHUFJfTk9STUFMOgorCXNfZ2V0cmVnX2IzMglzX3NhdmVfYWxsb2Nfc2l6ZSwgaHdyZWcoSFdfUkVHX0dQUl9BTExPQyxTUV9XQVZFX0dQUl9BTExPQ19WR1BSX1NJWkVfU0hJRlQsU1FfV0FWRV9HUFJfQUxMT0NfVkdQUl9TSVpFX1NJWkUpCisJc19hZGRfdTMyCXNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMQorCXNfbHNobF9iMzIJc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCAyCQkJLy9OdW1iZXIgb2YgVkdQUnMgPSAodmdwcl9zaXplICsgMSkgKiA0ICAgIChub24temVybyB2YWx1ZSkKKwkvL2RldGVybWluZSBpdCBpcyB3YXZlMzIgb3Igd2F2ZTY0CisJc19sc2hyX2IzMgltMCwgc193YXZlX3NpemUsIFNfV0FWRV9TSVpFCisJc19hbmRfYjMyCW0wLCBtMCwgMQorCXNfY21wX2VxX3UzMgltMCwgMQorCXNfY2JyYW5jaF9zY2MxCUxfU0FWRV9WR1BSX1dBVkU2NAorCisJc19tb3ZfYjMyCXNfc2F2ZV9idWZfcnNyYzIsIDB4MTAwMDAwMAkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCisKKwkvLyBWR1BSIEFsbG9jYXRlZCBpbiA0LUdQUiBncmFudWxhcml0eQorCisJLy8gVkdQUiBzdG9yZSB1c2luZyBkdyBidXJzdAorCXNfbW92X2IzMgltMCwgMHg0CQkJCQkJCS8vVkdQUiBpbml0aWFsIGluZGV4IHZhbHVlID00CisJc19jbXBfbHRfdTMyCW0wLCBzX3NhdmVfYWxsb2Nfc2l6ZQorCXNfY2JyYW5jaF9zY2MwCUxfU0FWRV9WR1BSX0VORAorCitMX1NBVkVfVkdQUl9XMzJfTE9PUDoKKwl2X21vdnJlbHNfYjMyCXYwLCB2MAkJCQkJCQkvL3YwID0gdlswK20wXQorCXZfbW92cmVsc19iMzIJdjEsIHYxCQkJCQkJCS8vdjEgPSB2WzErbTBdCisJdl9tb3ZyZWxzX2IzMgl2MiwgdjIJCQkJCQkJLy92MiA9IHZbMittMF0KKwl2X21vdnJlbHNfYjMyCXYzLCB2MwkJCQkJCQkvL3YzID0gdlszK20wXQorCisJYnVmZmVyX3N0b3JlX2R3b3JkCXYwLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEKKwlidWZmZXJfc3RvcmVfZHdvcmQJdjEsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MTI4CisJYnVmZmVyX3N0b3JlX2R3b3JkCXYyLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjEyOCoyCisJYnVmZmVyX3N0b3JlX2R3b3JkCXYzLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjEyOCozCisKKwlzX2FkZF91MzIJbTAsIG0wLCA0CQkJCQkJLy9uZXh0IHZncHIgaW5kZXgKKwlzX2FkZF91MzIJc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCAxMjgqNAkJLy9ldmVyeSBidWZmZXJfc3RvcmVfZHdvcmQgZG9lcyAxMjggYnl0ZXMKKwlzX2NtcF9sdF91MzIJbTAsIHNfc2F2ZV9hbGxvY19zaXplCQkJCQkvL3NjYyA9IChtMCA8IHNfc2F2ZV9hbGxvY19zaXplKSA/IDEgOiAwCisJc19jYnJhbmNoX3NjYzEJTF9TQVZFX1ZHUFJfVzMyX0xPT1AJCQkJCS8vVkdQUiBzYXZlIGlzIGNvbXBsZXRlPworCisJc19icmFuY2gJTF9TQVZFX1ZHUFJfRU5ECisKK0xfU0FWRV9WR1BSX1dBVkU2NDoKKwlzX21vdl9iMzIJc19zYXZlX2J1Zl9yc3JjMiwgMHgxMDAwMDAwCQkJCS8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKKworCS8vIFZHUFIgc3RvcmUgdXNpbmcgZHcgYnVyc3QKKwlzX21vdl9iMzIJbTAsIDB4NAkJCQkJCQkvL1ZHUFIgaW5pdGlhbCBpbmRleCB2YWx1ZSA9NAorCXNfY21wX2x0X3UzMgltMCwgc19zYXZlX2FsbG9jX3NpemUKKwlzX2NicmFuY2hfc2NjMAlMX1NBVkVfVkdQUl9FTkQKKworTF9TQVZFX1ZHUFJfVzY0X0xPT1A6CisJdl9tb3ZyZWxzX2IzMgl2MCwgdjAJCQkJCQkJLy92MCA9IHZbMCttMF0KKwl2X21vdnJlbHNfYjMyCXYxLCB2MQkJCQkJCQkvL3YxID0gdlsxK20wXQorCXZfbW92cmVsc19iMzIJdjIsIHYyCQkJCQkJCS8vdjIgPSB2WzIrbTBdCisJdl9tb3ZyZWxzX2IzMgl2MywgdjMJCQkJCQkJLy92MyA9IHZbMyttMF0KKworCWJ1ZmZlcl9zdG9yZV9kd29yZAl2MCwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxCisJYnVmZmVyX3N0b3JlX2R3b3JkCXYxLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NgorCWJ1ZmZlcl9zdG9yZV9kd29yZAl2MiwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxIG9mZnNldDoyNTYqMgorCWJ1ZmZlcl9zdG9yZV9kd29yZAl2MywgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxIG9mZnNldDoyNTYqMworCisJc19hZGRfdTMyCW0wLCBtMCwgNAkJCQkJCS8vbmV4dCB2Z3ByIGluZGV4CisJc19hZGRfdTMyCXNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgMjU2KjQJCS8vZXZlcnkgYnVmZmVyX3N0b3JlX2R3b3JkIGRvZXMgMjU2IGJ5dGVzCisJc19jbXBfbHRfdTMyCW0wLCBzX3NhdmVfYWxsb2Nfc2l6ZQkJCQkJLy9zY2MgPSAobTAgPCBzX3NhdmVfYWxsb2Nfc2l6ZSkgPyAxIDogMAorCXNfY2JyYW5jaF9zY2MxCUxfU0FWRV9WR1BSX1c2NF9MT09QCQkJCQkvL1ZHUFIgc2F2ZSBpcyBjb21wbGV0ZT8KKworCS8vQmVsb3cgcGFydCB3aWxsIGJlIHRoZSBzYXZlIHNoYXJlZCB2Z3ByIHBhcnQgKG5ldyBmb3IgZ2Z4MTApCisJc19nZXRyZWdfYjMyCXNfc2F2ZV9hbGxvY19zaXplLCBod3JlZyhIV19SRUdfTERTX0FMTE9DLFNRX1dBVkVfTERTX0FMTE9DX1ZHUFJfU0hBUkVEX1NJWkVfU0hJRlQsU1FfV0FWRV9MRFNfQUxMT0NfVkdQUl9TSEFSRURfU0laRV9TSVpFKQorCXNfYW5kX2IzMglzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDB4RkZGRkZGRkYJLy9zaGFyZWRfdmdwcl9zaXplIGlzIHplcm8/CisJc19jYnJhbmNoX3NjYzAJTF9TQVZFX1ZHUFJfRU5ECQkJCQkJLy9ubyBzaGFyZWRfdmdwciB1c2VkPyBqdW1wIHRvIExfU0FWRV9MRFMKKwlzX2xzaGxfYjMyCXNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMwkJCS8vTnVtYmVyIG9mIFNIQVJFRF9WR1BScyA9IHNoYXJlZF92Z3ByX3NpemUgKiA4ICAgIChub24temVybyB2YWx1ZSkKKwkvL20wIG5vdyBoYXMgdGhlIHZhbHVlIG9mIG5vcm1hbCB2Z3ByIGNvdW50LCBqdXN0IGFkZCB0aGUgbTAgd2l0aCBzaGFyZWRfdmdwciBjb3VudCB0byBnZXQgdGhlIHRvdGFsIGNvdW50LgorCS8vc2F2ZSBzaGFyZWRfdmdwciB3aWxsIHN0YXJ0IGZyb20gdGhlIGluZGV4IG9mIG0wCisJc19hZGRfdTMyCXNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgbTAKKwlzX21vdl9iMzIJZXhlY19sbywgMHhGRkZGRkZGRgorCXNfbW92X2IzMglleGVjX2hpLCAweDAwMDAwMDAwCitMX1NBVkVfU0hBUkVEX1ZHUFJfV0FWRTY0X0xPT1A6CisJdl9tb3ZyZWxzX2IzMgl2MCwgdjAJCQkJCQkJLy92MCA9IHZbMCttMF0KKwlidWZmZXJfc3RvcmVfZHdvcmQJdjAsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQorCXNfYWRkX3UzMgltMCwgbTAsIDEJCQkJCQkvL25leHQgdmdwciBpbmRleAorCXNfYWRkX3UzMglzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX21lbV9vZmZzZXQsIDEyOAorCXNfY21wX2x0X3UzMgltMCwgc19zYXZlX2FsbG9jX3NpemUJCQkJCS8vc2NjID0gKG0wIDwgc19zYXZlX2FsbG9jX3NpemUpID8gMSA6IDAKKwlzX2NicmFuY2hfc2NjMQlMX1NBVkVfU0hBUkVEX1ZHUFJfV0FWRTY0X0xPT1AJCQkJLy9TSEFSRURfVkdQUiBzYXZlIGlzIGNvbXBsZXRlPworCitMX1NBVkVfVkdQUl9FTkQ6CisJc19icmFuY2gJTF9FTkRfUEdNCiAKIExfUkVTVE9SRToKLSAgICAvKiAgICAgIFNldHVwIFJlc291cmNlIENvbnRhbnRzICAgICovCi0gICAgaWYgKChFTVVfUlVOX0hBQ0spICYmICghRU1VX1JVTl9IQUNLX1JFU1RPUkVfTk9STUFMKSkKLQkJLy9jYWxjdWxhdGUgd2RfYWRkciB1c2luZyBhYnNvbHV0ZSB0aHJlYWQgaWQKLQkJdl9yZWFkbGFuZV9iMzIgc19yZXN0b3JlX3RtcCwgdjksIDAKLSAgICAgICAgLy9kZXRlcm1pbmUgaXQgaXMgd2F2ZTMyIG9yIHdhdmU2NAotICAgICAgICBzX2dldHJlZ19iMzIgCXNfcmVzdG9yZV9zaXplLCBod3JlZyhIV19SRUdfSUJfU1RTMixTUV9XQVZFX0lCX1NUUzJfV0FWRTY0X1NISUZULFNRX1dBVkVfSUJfU1RTMl9XQVZFNjRfU0laRSkgLy9jaGFuZ2UgdG8gdHRtcDEzCi0gICAgICAgIHNfY21wX2VxX3UzMiAgICBzX3Jlc3RvcmVfc2l6ZSwgMAotICAgICAgICBzX2NicmFuY2hfc2NjMSAgTF9SRVNUT1JFX1dBVkUzMgotICAgICAgICBzX2xzaHJfYjMyIHNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV90bXAsIDYgLy9TQVZFIFdBVkU2NAotICAgICAgICBzX2JyYW5jaCAgICBMX1JFU1RPUkVfQ09OCi0gICAgTF9SRVNUT1JFX1dBVkUzMjoKLSAgICAgICAgc19sc2hyX2IzMiBzX3Jlc3RvcmVfdG1wLCBzX3Jlc3RvcmVfdG1wLCA1IC8vU0FWRSBXQVZFMzIKLSAgICBMX1JFU1RPUkVfQ09OOgotCQlzX211bF9pMzIgc19yZXN0b3JlX3RtcCwgc19yZXN0b3JlX3RtcCwgV0FWRV9TUEFDRQotCQlzX2FkZF9pMzIgc19yZXN0b3JlX3NwaV9pbml0X2xvLCBzX3Jlc3RvcmVfdG1wLCBXR19CQVNFX0FERFJfTE8KLQkJc19tb3ZfYjMyIHNfcmVzdG9yZV9zcGlfaW5pdF9oaSwgV0dfQkFTRV9BRERSX0hJCi0JCXNfYW5kX2IzMiBzX3Jlc3RvcmVfc3BpX2luaXRfaGksIHNfcmVzdG9yZV9zcGlfaW5pdF9oaSwgQ1RYX1JFU1RPUkVfQ09OVFJPTAkKLQllbHNlCi0JZW5kCi0JCi0gICAgc19tb3ZfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMwLCAJc19yZXN0b3JlX3NwaV9pbml0X2xvCQkJCQkJCQkJCQkJCQkJLy9iYXNlX2FkZHJfbG8KLQlzX2FuZF9iMzIJCXNfcmVzdG9yZV9idWZfcnNyYzEsIAlzX3Jlc3RvcmVfc3BpX2luaXRfaGksIDB4MDAwMEZGRkYJCQkJCQkJCQkJCQkvL2Jhc2VfYWRkcl9oaQotCXNfb3JfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMxLCAJc19yZXN0b3JlX2J1Zl9yc3JjMSwgIFNfUkVTVE9SRV9CVUZfUlNSQ19XT1JEMV9TVFJJREUKLSAgICBzX21vdl9iMzIgICAgICAgc19yZXN0b3JlX2J1Zl9yc3JjMiwgICAJMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCQkJCQkJCQkvL05VTV9SRUNPUkRTIGluaXRpYWwgdmFsdWUgPSAwIChpbiBieXRlcykKLQlzX21vdl9iMzIJCXNfcmVzdG9yZV9idWZfcnNyYzMsIAlTX1JFU1RPUkVfQlVGX1JTUkNfV09SRDNfTUlTQwotCXNfYW5kX2IzMgkJc19yZXN0b3JlX3RtcCwgICAgICAgICAJc19yZXN0b3JlX3NwaV9pbml0X2hpLCBTX1JFU1RPUkVfU1BJX0lOSVRfQVRDX01BU0sJCQotCXNfbHNocl9iMzIJCXNfcmVzdG9yZV90bXAsICAJCXNfcmVzdG9yZV90bXAsIChTX1JFU1RPUkVfU1BJX0lOSVRfQVRDX1NISUZULVNRX0JVRl9SU1JDX1dPUkQxX0FUQ19TSElGVCkJCS8vZ2V0IEFUQyBiaXQgaW50byBwb3NpdGlvbgotCXNfb3JfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMzLCAJc19yZXN0b3JlX2J1Zl9yc3JjMywgIHNfcmVzdG9yZV90bXAJCQkJCQkJCQkJCQkvL29yIEFUQwotCXNfYW5kX2IzMgkJc19yZXN0b3JlX3RtcCwgICAgICAgICAJc19yZXN0b3JlX3NwaV9pbml0X2hpLCBTX1JFU1RPUkVfU1BJX0lOSVRfTVRZUEVfTUFTSwkJCi0Jc19sc2hyX2IzMgkJc19yZXN0b3JlX3RtcCwgIAkJc19yZXN0b3JlX3RtcCwgKFNfUkVTVE9SRV9TUElfSU5JVF9NVFlQRV9TSElGVC1TUV9CVUZfUlNSQ19XT1JEM19NVFlQRV9TSElGVCkJLy9nZXQgTVRZUEUgYml0cyBpbnRvIHBvc2l0aW9uCi0Jc19vcl9iMzIJCXNfcmVzdG9yZV9idWZfcnNyYzMsIAlzX3Jlc3RvcmVfYnVmX3JzcmMzLCAgc19yZXN0b3JlX3RtcAkJCQkJCQkJCQkJCS8vb3IgTVRZUEUKLSAgICAvL2RldGVybWluZSBpdCBpcyB3YXZlMzIgb3Igd2F2ZTY0Ci0gICAgc19nZXRyZWdfYjMyIAlzX3Jlc3RvcmVfc2l6ZSwgaHdyZWcoSFdfUkVHX0lCX1NUUzIsU1FfV0FWRV9JQl9TVFMyX1dBVkU2NF9TSElGVCxTUV9XQVZFX0lCX1NUUzJfV0FWRTY0X1NJWkUpCi0gICAgc19vcl9iMzIgICAgICAgIHNfcmVzdG9yZV9zaXplLCBzX3Jlc3RvcmVfc3BpX2luaXRfaGksICAgIHNfcmVzdG9yZV9zaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zaGFyZSBzX3dhdmVfc2l6ZSB3aXRoIGV4ZWNfaGkKLQkKLQkvKiAJCWdsb2JhbCBtZW0gb2Zmc2V0CQkJKi8KLQlzX21vdl9iMzIJCXNfcmVzdG9yZV9tZW1fb2Zmc2V0LCAweDAJCQkJCQkJCS8vbWVtIG9mZnNldCBpbml0aWFsIHZhbHVlID0gMAorCS8qIFNldHVwIFJlc291cmNlIENvbnRhbnRzICovCisJc19tb3ZfYjMyCXNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9zcGlfaW5pdF9sbwkJLy9iYXNlX2FkZHJfbG8KKwlzX2FuZF9iMzIJc19yZXN0b3JlX2J1Zl9yc3JjMSwgc19yZXN0b3JlX3NwaV9pbml0X2hpLCAweDAwMDBGRkZGCS8vYmFzZV9hZGRyX2hpCisJc19vcl9iMzIJc19yZXN0b3JlX2J1Zl9yc3JjMSwgc19yZXN0b3JlX2J1Zl9yc3JjMSwgU19SRVNUT1JFX0JVRl9SU1JDX1dPUkQxX1NUUklERQorCXNfbW92X2IzMglzX3Jlc3RvcmVfYnVmX3JzcmMyLCAwCQkJCQkvL05VTV9SRUNPUkRTIGluaXRpYWwgdmFsdWUgPSAwIChpbiBieXRlcykKKwlzX21vdl9iMzIJc19yZXN0b3JlX2J1Zl9yc3JjMywgU19SRVNUT1JFX0JVRl9SU1JDX1dPUkQzX01JU0MKKwlzX2FuZF9iMzIJc19yZXN0b3JlX3RtcCwgc19yZXN0b3JlX3NwaV9pbml0X2hpLCBTX1JFU1RPUkVfU1BJX0lOSVRfQVRDX01BU0sKKwlzX2xzaHJfYjMyCXNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV90bXAsIChTX1JFU1RPUkVfU1BJX0lOSVRfQVRDX1NISUZULVNRX0JVRl9SU1JDX1dPUkQxX0FUQ19TSElGVCkKKwlzX29yX2IzMglzX3Jlc3RvcmVfYnVmX3JzcmMzLCBzX3Jlc3RvcmVfYnVmX3JzcmMzLCBzX3Jlc3RvcmVfdG1wCS8vb3IgQVRDCisJc19hbmRfYjMyCXNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV9zcGlfaW5pdF9oaSwgU19SRVNUT1JFX1NQSV9JTklUX01UWVBFX01BU0sKKwlzX2xzaHJfYjMyCXNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV90bXAsIChTX1JFU1RPUkVfU1BJX0lOSVRfTVRZUEVfU0hJRlQtU1FfQlVGX1JTUkNfV09SRDNfTVRZUEVfU0hJRlQpCisJc19vcl9iMzIJc19yZXN0b3JlX2J1Zl9yc3JjMywgc19yZXN0b3JlX2J1Zl9yc3JjMywgc19yZXN0b3JlX3RtcAkvL29yIE1UWVBFCisJLy9kZXRlcm1pbmUgaXQgaXMgd2F2ZTMyIG9yIHdhdmU2NAorCXNfZ2V0cmVnX2IzMglzX3Jlc3RvcmVfc2l6ZSwgaHdyZWcoSFdfUkVHX0lCX1NUUzIsU1FfV0FWRV9JQl9TVFMyX1dBVkU2NF9TSElGVCxTUV9XQVZFX0lCX1NUUzJfV0FWRTY0X1NJWkUpCisJc19sc2hsX2IzMglzX3Jlc3RvcmVfc2l6ZSwgc19yZXN0b3JlX3NpemUsIFNfV0FWRV9TSVpFCisJc19vcl9iMzIJc19yZXN0b3JlX3NpemUsIHNfcmVzdG9yZV9zcGlfaW5pdF9oaSwgc19yZXN0b3JlX3NpemUKIAotICAgICAgICAvKiAgICAgIAlyZXN0b3JlIFZHUFJzCSAgICAqLwotCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICBMX1JFU1RPUkVfVkdQUjoKLSAgCi0gCXNfbW92X2IzMgkJZXhlY19sbywgMHhGRkZGRkZGRiAJCQkJCQkJCQkJCQkJLy9uZWVkIGV2ZXJ5IHRocmVhZCBmcm9tIG5vdyBvbiAgIC8vYmUgY29uc2lzdGVudCB3aXRoIFNBVkUgYWx0aG91Z2ggY2FuIGJlIG1vdmVkIGFoZWFkCi0gICAgc19hbmRfYjMyICAgICAgIG0wLCBzX3Jlc3RvcmVfc2l6ZSwgMQotICAgIHNfY21wX2VxX3UzMiAgICBtMCwgMQotICAgIHNfY2JyYW5jaF9zY2MxICBMX0VOQUJMRV9SRVNUT1JFX1ZHUFJfRVhFQ19ISSAgIAotICAgIHNfbW92X2IzMgkJZXhlY19oaSwgMHgwMDAwMDAwMAotICAgIHNfYnJhbmNoICAgICAgICBMX1JFU1RPUkVfVkdQUl9OT1JNQUwKLSAgTF9FTkFCTEVfUkVTVE9SRV9WR1BSX0VYRUNfSEk6Ci0Jc19tb3ZfYjMyCQlleGVjX2hpLCAweEZGRkZGRkZGCi0gIExfUkVTVE9SRV9WR1BSX05PUk1BTDoJCi0Jc19nZXRyZWdfYjMyIAlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgaHdyZWcoSFdfUkVHX0dQUl9BTExPQyxTUV9XQVZFX0dQUl9BTExPQ19WR1BSX1NJWkVfU0hJRlQsU1FfV0FWRV9HUFJfQUxMT0NfVkdQUl9TSVpFX1NJWkUpIAkvL3ZwZ3Jfc2l6ZQotCXNfYWRkX3UzMiAJCXNfcmVzdG9yZV9hbGxvY19zaXplLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgMQotCXNfbHNobF9iMzIgCQlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDIgCQkJCQkJCS8vTnVtYmVyIG9mIFZHUFJzID0gKHZncHJfc2l6ZSArIDEpICogNCAgICAobm9uLXplcm8gdmFsdWUpCi0gICAgLy9kZXRlcm1pbmUgaXQgaXMgd2F2ZTMyIG9yIHdhdmU2NAotICAgIHNfYW5kX2IzMiAgICAgICBtMCwgc19yZXN0b3JlX3NpemUsIDEKLSAgICBzX2NtcF9lcV91MzIgICAgbTAsIDEKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9SRVNUT1JFX1ZHUFJfV0FWRTY0CisJc19hbmRfYjMyCXNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV9zcGlfaW5pdF9oaSwgU19SRVNUT1JFX1NQSV9JTklUX0ZJUlNUX1dBVkVfTUFTSworCXNfY2JyYW5jaF9zY2MwCUxfUkVTVE9SRV9WR1BSCiAKLSAgICBzX2xzaGxfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgc19yZXN0b3JlX2FsbG9jX3NpemUsIDcJCQkJCQkgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcyAoMzIgdGhyZWFkcyo0KQotCWlmIChTV0laWkxFX0VOKQotCQlzX2FkZF91MzIJCXNfcmVzdG9yZV9idWZfcnNyYzIsIHNfcmVzdG9yZV9idWZfcnNyYzIsIDB4MAkJCQkJCS8vRklYTUUgbmVlZCB0byB1c2Ugc3dpenpsZSB0byBlbmFibGUgYm91bmRzIGNoZWNraW5nPwotCWVsc2UKLQkJc19tb3ZfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwCQkJCQkJCQkJCS8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLQllbmQJCisJLyogcmVzdG9yZSBMRFMgKi8KK0xfUkVTVE9SRV9MRFM6CisJc19tb3ZfYjMyCWV4ZWNfbG8sIDB4RkZGRkZGRkYJCQkJCS8vbmVlZCBldmVyeSB0aHJlYWQgZnJvbSBub3cgb24KKwlzX2xzaHJfYjMyCW0wLCBzX3Jlc3RvcmVfc2l6ZSwgU19XQVZFX1NJWkUKKwlzX2FuZF9iMzIJbTAsIG0wLCAxCisJc19jbXBfZXFfdTMyCW0wLCAxCisJc19jYnJhbmNoX3NjYzEJTF9FTkFCTEVfUkVTVE9SRV9MRFNfRVhFQ19ISQorCXNfbW92X2IzMglleGVjX2hpLCAweDAwMDAwMDAwCisJc19icmFuY2gJTF9SRVNUT1JFX0xEU19OT1JNQUwKK0xfRU5BQkxFX1JFU1RPUkVfTERTX0VYRUNfSEk6CisJc19tb3ZfYjMyCWV4ZWNfaGksIDB4RkZGRkZGRkYKK0xfUkVTVE9SRV9MRFNfTk9STUFMOgorCXNfZ2V0cmVnX2IzMglzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgaHdyZWcoSFdfUkVHX0xEU19BTExPQyxTUV9XQVZFX0xEU19BTExPQ19MRFNfU0laRV9TSElGVCxTUV9XQVZFX0xEU19BTExPQ19MRFNfU0laRV9TSVpFKQorCXNfYW5kX2IzMglzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDB4RkZGRkZGRkYJLy9sZHNfc2l6ZSBpcyB6ZXJvPworCXNfY2JyYW5jaF9zY2MwCUxfUkVTVE9SRV9WR1BSCQkJCQkJLy9ubyBsZHMgdXNlZD8ganVtcCB0byBMX1JFU1RPUkVfVkdQUgorCXNfbHNobF9iMzIJc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCA2CQkvL0xEUyBzaXplIGluIGR3b3JkcyA9IGxkc19zaXplICogNjRkdworCXNfbHNobF9iMzIJc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCAyCQkvL0xEUyBzaXplIGluIGJ5dGVzCisJc19tb3ZfYjMyCXNfcmVzdG9yZV9idWZfcnNyYzIsIHNfcmVzdG9yZV9hbGxvY19zaXplCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCiAKLQlzX21vdl9iMzIJCXNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0CQkJCQkJCS8vIHJlc3RvcmUgc3RhcnQgd2l0aCB2MSwgdjAgd2lsbCBiZSB0aGUgbGFzdAotCXNfYWRkX3UzMgkJc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCAxMjgKLSAgICBzX21vdl9iMzIgCQltMCwgMSAJCQkJCQkJCQkJCQkJCQkJCS8vVkdQUiBpbml0aWFsIGluZGV4IHZhbHVlID0gMQotCS8vc19zZXRfZ3ByX2lkeF9vbiAgbTAsIDB4OAkJCQkJCQkJCQkJCQkJCQkvL00wWzc6MF0gPSBNMFs3OjBdIGFuZCBNMFsxNToxMl0gPSAweDgKLSAgICAvL3NfYWRkX3UzMgkJc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCAweDgwMDAJCQkJCQkvL2FkZCAweDgwMDAgc2luY2Ugd2UgY29tcGFyZSBtMCBhZ2FpbnN0IGl0IGxhdGVyLCBtaWdodCBub3QgbmVlZCB0aGlzIGluIGdmeDEwCQorCS8vIExEUyBhdCBvZmZzZXQ6IHNpemUoVkdQUikrc2l6ZShTVkdQUikrU0laRShTR1BSKStTSVpFKEhXUkVHKQorCS8vCisJZ2V0X3ZncHJfc2l6ZV9ieXRlcyhzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX3NpemUpCisJZ2V0X3N2Z3ByX3NpemVfYnl0ZXMoc19yZXN0b3JlX3RtcCkKKwlzX2FkZF91MzIJc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfdG1wCisJc19hZGRfdTMyCXNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgZ2V0X3NncHJfc2l6ZV9ieXRlcygpCisJc19hZGRfdTMyCXNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgZ2V0X2h3cmVnX3NpemVfYnl0ZXMoKQogCi0gIExfUkVTVE9SRV9WR1BSX1dBVkUzMl9MT09QOiAJCQkJCQkJCQkJCi0gICAgaWYoVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpICAgICAgIAotCQl0YnVmZmVyX2xvYWRfZm9ybWF0X3ggdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBmb3JtYXQ6QlVGX05VTV9GT1JNQVRfRkxPQVQgZm9ybWF0OiBCVUZfREFUQV9GT1JNQVRfMzIgc2xjOjEgZ2xjOjEKLSAgICBlbHNlCi0JCWJ1ZmZlcl9sb2FkX2R3b3JkIHYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQJc2xjOjEgZ2xjOjEJCi0JZW5kCi0Jc193YWl0Y250CQl2bWNudCgwKQkJCQkJCQkJCQkJCQkJCQkvL2Vuc3VyZSBkYXRhIHJlYWR5Ci0Jdl9tb3ZyZWxkX2IzMgkJdjAsIHYwCQkJCQkJCQkJCQkJCQkJCQkvL3ZbMCttMF0gPSB2MAotICAgIHNfYWRkX3UzMgkJbTAsIG0wLCAxCQkJCQkJCQkJCQkJCQkJCS8vbmV4dCB2Z3ByIGluZGV4Ci0Jc19hZGRfdTMyCQlzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDEyOAkJCQkJCQkvL2V2ZXJ5IGJ1ZmZlcl9sb2FkX2R3b3JkIGRvZXMgMTI4IGJ5dGVzCi0Jc19jbXBfbHRfdTMyIAltMCwJc19yZXN0b3JlX2FsbG9jX3NpemUgCQkJCQkJCQkJCQkJLy9zY2MgPSAobTAgPCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSkgPyAxIDogMAotCXNfY2JyYW5jaF9zY2MxIAlMX1JFU1RPUkVfVkdQUl9XQVZFMzJfTE9PUAkJCQkJCQkJCQkJCQkJLy9WR1BSIHJlc3RvcmUgKGV4Y2VwdCB2MCkgaXMgY29tcGxldGU/Ci0JLy9zX3NldF9ncHJfaWR4X29mZgotCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkvKiBWR1BSIHJlc3RvcmUgb24gdjAgKi8KLSAgICBpZihVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRikgICAgICAgCi0JCXRidWZmZXJfbG9hZF9mb3JtYXRfeCB2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUgZm9ybWF0OkJVRl9OVU1fRk9STUFUX0ZMT0FUIGZvcm1hdDogQlVGX0RBVEFfRk9STUFUXzMyIHNsYzoxIGdsYzoxCi0gICAgZWxzZQotCQlidWZmZXJfbG9hZF9kd29yZCB2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUJc2xjOjEgZ2xjOjEJCi0JZW5kCisJc19tb3ZfYjMyCXNfcmVzdG9yZV9idWZfcnNyYzIsIDB4MTAwMDAwMAkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCiAKLSAgICBzX2JyYW5jaCAgICBMX1JFU1RPUkVfTERTCisJc19sc2hyX2IzMgltMCwgc193YXZlX3NpemUsIFNfV0FWRV9TSVpFCisJc19hbmRfYjMyCW0wLCBtMCwgMQorCXNfY21wX2VxX3UzMgltMCwgMQorCXNfbW92X2IzMgltMCwgMHgwCisJc19jYnJhbmNoX3NjYzEJTF9SRVNUT1JFX0xEU19MT09QX1c2NAogCi0gIExfUkVTVE9SRV9WR1BSX1dBVkU2NDoKLSAgICBzX2xzaGxfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgc19yZXN0b3JlX2FsbG9jX3NpemUsIDgJCQkJCQkgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcyAoNjQgdGhyZWFkcyo0KQotCWlmIChTV0laWkxFX0VOKQotCQlzX2FkZF91MzIJCXNfcmVzdG9yZV9idWZfcnNyYzIsIHNfcmVzdG9yZV9idWZfcnNyYzIsIDB4MAkJCQkJCS8vRklYTUUgbmVlZCB0byB1c2Ugc3dpenpsZSB0byBlbmFibGUgYm91bmRzIGNoZWNraW5nPwotCWVsc2UKLQkJc19tb3ZfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwCQkJCQkJCQkJCS8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLQllbmQJCitMX1JFU1RPUkVfTERTX0xPT1BfVzMyOgorCWJ1ZmZlcl9sb2FkX2R3b3JkCXYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQgbGRzOjEJLy8gZmlyc3QgNjREVworCXNfYWRkX3UzMgltMCwgbTAsIDEyOAkJCQkJCS8vIDEyOCBEVworCXNfYWRkX3UzMglzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDEyOAkJLy9tZW0gb2Zmc2V0IGluY3JlYXNlZCBieSAxMjhEVworCXNfY21wX2x0X3UzMgltMCwgc19yZXN0b3JlX2FsbG9jX3NpemUJCQkJLy9zY2M9KG0wIDwgc19yZXN0b3JlX2FsbG9jX3NpemUpID8gMSA6IDAKKwlzX2NicmFuY2hfc2NjMQlMX1JFU1RPUkVfTERTX0xPT1BfVzMyCQkJCQkvL0xEUyByZXN0b3JlIGlzIGNvbXBsZXRlPworCXNfYnJhbmNoCUxfUkVTVE9SRV9WR1BSCiAKLQlzX21vdl9iMzIJCXNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0CQkJCQkJCS8vIHJlc3RvcmUgc3RhcnQgd2l0aCB2MSwgdjAgd2lsbCBiZSB0aGUgbGFzdAotCXNfYWRkX3UzMgkJc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCAyNTYKLSAgICBzX21vdl9iMzIgCQltMCwgMSAJCQkJCQkJCQkJCQkJCQkJCS8vVkdQUiBpbml0aWFsIGluZGV4IHZhbHVlID0gMQotICBMX1JFU1RPUkVfVkdQUl9XQVZFNjRfTE9PUDogCQkJCQkJCQkJCQotICAgIGlmKFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKSAgICAgICAKLQkJdGJ1ZmZlcl9sb2FkX2Zvcm1hdF94IHYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQgZm9ybWF0OkJVRl9OVU1fRk9STUFUX0ZMT0FUIGZvcm1hdDogQlVGX0RBVEFfRk9STUFUXzMyIHNsYzoxIGdsYzoxCi0gICAgZWxzZQotCQlidWZmZXJfbG9hZF9kd29yZCB2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0CXNsYzoxIGdsYzoxCQotCWVuZAotCXNfd2FpdGNudAkJdm1jbnQoMCkJCQkJCQkJCQkJCQkJCQkJLy9lbnN1cmUgZGF0YSByZWFkeQotCXZfbW92cmVsZF9iMzIJCXYwLCB2MAkJCQkJCQkJCQkJCQkJCQkJLy92WzArbTBdID0gdjAKLSAgICBzX2FkZF91MzIJCW0wLCBtMCwgMQkJCQkJCQkJCQkJCQkJCQkvL25leHQgdmdwciBpbmRleAotCXNfYWRkX3UzMgkJc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCAyNTYJCQkJCQkJLy9ldmVyeSBidWZmZXJfbG9hZF9kd29yZCBkb2VzIDI1NiBieXRlcwotCXNfY21wX2x0X3UzMiAJbTAsCXNfcmVzdG9yZV9hbGxvY19zaXplIAkJCQkJCQkJCQkJCS8vc2NjID0gKG0wIDwgc19yZXN0b3JlX2FsbG9jX3NpemUpID8gMSA6IDAKLQlzX2NicmFuY2hfc2NjMSAJTF9SRVNUT1JFX1ZHUFJfV0FWRTY0X0xPT1AJCQkJCQkJCQkJCQkJCS8vVkdQUiByZXN0b3JlIChleGNlcHQgdjApIGlzIGNvbXBsZXRlPwotCS8vc19zZXRfZ3ByX2lkeF9vZmYKLSAgICAvLwotICAgIC8vQmVsb3cgcGFydCB3aWxsIGJlIHRoZSByZXN0b3JlIHNoYXJlZCB2Z3ByIHBhcnQgKG5ldyBmb3IgZ2Z4MTApCi0gICAgc19nZXRyZWdfYjMyIAlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgaHdyZWcoSFdfUkVHX0xEU19BTExPQyxTUV9XQVZFX0xEU19BTExPQ19WR1BSX1NIQVJFRF9TSVpFX1NISUZULFNRX1dBVkVfTERTX0FMTE9DX1ZHUFJfU0hBUkVEX1NJWkVfU0laRSkgCQkJLy9zaGFyZWRfdmdwcl9zaXplCi0gICAgc19hbmRfYjMyCQlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDB4RkZGRkZGRkYJCQkJLy9zaGFyZWRfdmdwcl9zaXplIGlzIHplcm8/Ci0gICAgc19jYnJhbmNoX3NjYzAJTF9SRVNUT1JFX1YwCQkJCQkJCQkJCQkJCSAgICAvL25vIHNoYXJlZF92Z3ByIHVzZWQ/IGp1bXAgdG8gTF9TQVZFX0xEUwotICAgIHNfbHNobF9iMzIgCQlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDMgCQkJCQkJLy9OdW1iZXIgb2YgU0hBUkVEX1ZHUFJzID0gc2hhcmVkX3ZncHJfc2l6ZSAqIDggICAgKG5vbi16ZXJvIHZhbHVlKQotICAgIC8vbTAgbm93IGhhcyB0aGUgdmFsdWUgb2Ygbm9ybWFsIHZncHIgY291bnQsIGp1c3QgYWRkIHRoZSBtMCB3aXRoIHNoYXJlZF92Z3ByIGNvdW50IHRvIGdldCB0aGUgdG90YWwgY291bnQuCi0gICAgLy9yZXN0b3JlIHNoYXJlZF92Z3ByIHdpbGwgc3RhcnQgZnJvbSB0aGUgaW5kZXggb2YgbTAKLSAgICBzX2FkZF91MzIgICAgICAgc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCBtMAotICAgIHNfbW92X2IzMgkJZXhlY19sbywgMHhGRkZGRkZGRgotICAgIHNfbW92X2IzMgkJZXhlY19oaSwgMHgwMDAwMDAwMAotICAgIExfUkVTVE9SRV9TSEFSRURfVkdQUl9XQVZFNjRfTE9PUDogCi0gICAgYnVmZmVyX2xvYWRfZHdvcmQgdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldAlzbGM6MSBnbGM6MQotICAgIHNfd2FpdGNudAkJdm1jbnQoMCkJCQkJCQkJCQkJCQkJCQkJLy9lbnN1cmUgZGF0YSByZWFkeQotCXZfbW92cmVsZF9iMzIJCXYwLCB2MAkJCQkJCQkJCQkJCQkJCQkJLy92WzArbTBdID0gdjAKLSAgICBzX2FkZF91MzIJCW0wLCBtMCwgMQkJCQkJCQkJCQkJCQkJCQkvL25leHQgdmdwciBpbmRleAotCXNfYWRkX3UzMgkJc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCAxMjgJCQkJCQkJLy9ldmVyeSBidWZmZXJfbG9hZF9kd29yZCBkb2VzIDI1NiBieXRlcwotCXNfY21wX2x0X3UzMiAJbTAsCXNfcmVzdG9yZV9hbGxvY19zaXplIAkJCQkJCQkJCQkJCS8vc2NjID0gKG0wIDwgc19yZXN0b3JlX2FsbG9jX3NpemUpID8gMSA6IDAKLQlzX2NicmFuY2hfc2NjMSAJTF9SRVNUT1JFX1NIQVJFRF9WR1BSX1dBVkU2NF9MT09QCQkJCQkJCQkJCQkJCQkvL1ZHUFIgcmVzdG9yZSAoZXhjZXB0IHYwKSBpcyBjb21wbGV0ZT8KK0xfUkVTVE9SRV9MRFNfTE9PUF9XNjQ6CisJYnVmZmVyX2xvYWRfZHdvcmQJdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBsZHM6MQkvLyBmaXJzdCA2NERXCisJc19hZGRfdTMyCW0wLCBtMCwgMjU2CQkJCQkJLy8gMjU2IERXCisJc19hZGRfdTMyCXNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgMjU2CQkvL21lbSBvZmZzZXQgaW5jcmVhc2VkIGJ5IDI1NkRXCisJc19jbXBfbHRfdTMyCW0wLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZQkJCQkvL3NjYz0obTAgPCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSkgPyAxIDogMAorCXNfY2JyYW5jaF9zY2MxCUxfUkVTVE9SRV9MRFNfTE9PUF9XNjQJCQkJCS8vTERTIHJlc3RvcmUgaXMgY29tcGxldGU/CiAKLSAgICBzX21vdl9iMzIgZXhlY19oaSwgMHhGRkZGRkZGRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXN0b3JlIGJhY2sgZXhlY19oaSBiZWZvcmUgcmVzdG9yaW5nIFYwISEKLQkKLSAgICAvKiBWR1BSIHJlc3RvcmUgb24gdjAgKi8KLSAgTF9SRVNUT1JFX1YwOgotICAgIGlmKFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKSAgICAgICAKLQkJdGJ1ZmZlcl9sb2FkX2Zvcm1hdF94IHYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSBmb3JtYXQ6QlVGX05VTV9GT1JNQVRfRkxPQVQgZm9ybWF0OiBCVUZfREFUQV9GT1JNQVRfMzIgc2xjOjEgZ2xjOjEKLSAgICBlbHNlCi0JCWJ1ZmZlcl9sb2FkX2R3b3JkIHYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZQlzbGM6MSBnbGM6MQkKLQllbmQKKwkvKiByZXN0b3JlIFZHUFJzICovCitMX1JFU1RPUkVfVkdQUjoKKwkvLyBWR1BSIFNSIG1lbW9yeSBvZmZzZXQgOiAwCisJc19tb3ZfYjMyCXNfcmVzdG9yZV9tZW1fb2Zmc2V0LCAweDAKKyAJc19tb3ZfYjMyCWV4ZWNfbG8sIDB4RkZGRkZGRkYJCQkJCS8vbmVlZCBldmVyeSB0aHJlYWQgZnJvbSBub3cgb24KKwlzX2xzaHJfYjMyCW0wLCBzX3Jlc3RvcmVfc2l6ZSwgU19XQVZFX1NJWkUKKwlzX2FuZF9iMzIJbTAsIG0wLCAxCisJc19jbXBfZXFfdTMyCW0wLCAxCisJc19jYnJhbmNoX3NjYzEJTF9FTkFCTEVfUkVTVE9SRV9WR1BSX0VYRUNfSEkKKwlzX21vdl9iMzIJZXhlY19oaSwgMHgwMDAwMDAwMAorCXNfYnJhbmNoCUxfUkVTVE9SRV9WR1BSX05PUk1BTAorTF9FTkFCTEVfUkVTVE9SRV9WR1BSX0VYRUNfSEk6CisJc19tb3ZfYjMyCWV4ZWNfaGksIDB4RkZGRkZGRkYKK0xfUkVTVE9SRV9WR1BSX05PUk1BTDoKKwlzX2dldHJlZ19iMzIJc19yZXN0b3JlX2FsbG9jX3NpemUsIGh3cmVnKEhXX1JFR19HUFJfQUxMT0MsU1FfV0FWRV9HUFJfQUxMT0NfVkdQUl9TSVpFX1NISUZULFNRX1dBVkVfR1BSX0FMTE9DX1ZHUFJfU0laRV9TSVpFKQorCXNfYWRkX3UzMglzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDEKKwlzX2xzaGxfYjMyCXNfcmVzdG9yZV9hbGxvY19zaXplLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgMgkJLy9OdW1iZXIgb2YgVkdQUnMgPSAodmdwcl9zaXplICsgMSkgKiA0ICAgIChub24temVybyB2YWx1ZSkKKwkvL2RldGVybWluZSBpdCBpcyB3YXZlMzIgb3Igd2F2ZTY0CisJc19sc2hyX2IzMgltMCwgc19yZXN0b3JlX3NpemUsIFNfV0FWRV9TSVpFCisJc19hbmRfYjMyCW0wLCBtMCwgMQorCXNfY21wX2VxX3UzMgltMCwgMQorCXNfY2JyYW5jaF9zY2MxCUxfUkVTVE9SRV9WR1BSX1dBVkU2NAogCisJc19tb3ZfYjMyCXNfcmVzdG9yZV9idWZfcnNyYzIsIDB4MTAwMDAwMAkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCiAKLSAgICAvKiAgICAgIAlyZXN0b3JlIExEUwkgICAgKi8KLQkvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSAgTF9SRVNUT1JFX0xEUzoKKwkvLyBWR1BSIGxvYWQgdXNpbmcgZHcgYnVyc3QKKwlzX21vdl9iMzIJc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSwgc19yZXN0b3JlX21lbV9vZmZzZXQJCS8vIHJlc3RvcmUgc3RhcnQgd2l0aCB2MSwgdjAgd2lsbCBiZSB0aGUgbGFzdAorCXNfYWRkX3UzMglzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDEyOCo0CisJc19tb3ZfYjMyCW0wLCA0CQkJCQkJCS8vVkdQUiBpbml0aWFsIGluZGV4IHZhbHVlID0gNAogCi0gICAgLy9Pbmx5IG5lZWQgdG8gY2hlY2sgdGhlIGZpcnN0IHdhdmUgICAgCi0JLyogICAgICB0aGUgZmlyc3Qgd2F2ZSBpbiB0aGUgdGhyZWFkZ3JvdXAgICAgKi8KLQlzX2FuZF9iMzIJCXNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV9zaXplLCBTX1JFU1RPUkVfU1BJX0lOSVRfRklSU1RfV0FWRV9NQVNLCQkJCi0Jc19jYnJhbmNoX3NjYzAJTF9SRVNUT1JFX1NHUFIKLQkKLSAgICBzX21vdl9iMzIJCWV4ZWNfbG8sIDB4RkZGRkZGRkYgCQkJCQkJCQkJCQkJCS8vbmVlZCBldmVyeSB0aHJlYWQgZnJvbSBub3cgb24gICAvL2JlIGNvbnNpc3RlbnQgd2l0aCBTQVZFIGFsdGhvdWdoIGNhbiBiZSBtb3ZlZCBhaGVhZAotICAgIHNfYW5kX2IzMiAgICAgICBtMCwgc19yZXN0b3JlX3NpemUsIDEKLSAgICBzX2NtcF9lcV91MzIgICAgbTAsIDEKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9FTkFCTEVfUkVTVE9SRV9MRFNfRVhFQ19ISSAgIAotICAgIHNfbW92X2IzMgkJZXhlY19oaSwgMHgwMDAwMDAwMAotICAgIHNfYnJhbmNoICAgICAgICBMX1JFU1RPUkVfTERTX05PUk1BTAotICBMX0VOQUJMRV9SRVNUT1JFX0xEU19FWEVDX0hJOgotCXNfbW92X2IzMgkJZXhlY19oaSwgMHhGRkZGRkZGRgotICBMX1JFU1RPUkVfTERTX05PUk1BTDoJCi0Jc19nZXRyZWdfYjMyIAlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgaHdyZWcoSFdfUkVHX0xEU19BTExPQyxTUV9XQVZFX0xEU19BTExPQ19MRFNfU0laRV9TSElGVCxTUV9XQVZFX0xEU19BTExPQ19MRFNfU0laRV9TSVpFKSAJCQkJLy9sZHNfc2l6ZQotCXNfYW5kX2IzMgkJc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCAweEZGRkZGRkZGCQkJCQkvL2xkc19zaXplIGlzIHplcm8/Ci0Jc19jYnJhbmNoX3NjYzAJTF9SRVNUT1JFX1NHUFIJCQkJCQkJCQkJCQkJCQkvL25vIGxkcyB1c2VkPyBqdW1wIHRvIExfUkVTVE9SRV9WR1BSCi0Jc19sc2hsX2IzMiAJCXNfcmVzdG9yZV9hbGxvY19zaXplLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgNiAJCQkJCQkJLy9MRFMgc2l6ZSBpbiBkd29yZHMgPSBsZHNfc2l6ZSAqIDY0ZHcKLQlzX2xzaGxfYjMyIAkJc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCAyIAkJCQkJCQkvL0xEUyBzaXplIGluIGJ5dGVzCi0Jc19tb3ZfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMyLAlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZQkJCQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0JaWYgKFNXSVpaTEVfRU4pCi0JCXNfYWRkX3UzMgkJc19yZXN0b3JlX2J1Zl9yc3JjMiwgc19yZXN0b3JlX2J1Zl9yc3JjMiwgMHgwCQkJCQkJLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0JZWxzZQotCQlzX21vdl9iMzIJCXNfcmVzdG9yZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJCQkJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotCWVuZAorTF9SRVNUT1JFX1ZHUFJfV0FWRTMyX0xPT1A6CisJYnVmZmVyX2xvYWRfZHdvcmQJdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQorCWJ1ZmZlcl9sb2FkX2R3b3JkCXYxLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjEyOAorCWJ1ZmZlcl9sb2FkX2R3b3JkCXYyLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjEyOCoyCisJYnVmZmVyX2xvYWRfZHdvcmQJdjMsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MTI4KjMKKwlzX3dhaXRjbnQJdm1jbnQoMCkKKwl2X21vdnJlbGRfYjMyCXYwLCB2MAkJCQkJCQkvL3ZbMCttMF0gPSB2MAorCXZfbW92cmVsZF9iMzIJdjEsIHYxCisJdl9tb3ZyZWxkX2IzMgl2MiwgdjIKKwl2X21vdnJlbGRfYjMyCXYzLCB2MworCXNfYWRkX3UzMgltMCwgbTAsIDQJCQkJCQkvL25leHQgdmdwciBpbmRleAorCXNfYWRkX3UzMglzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDEyOCo0CS8vZXZlcnkgYnVmZmVyX2xvYWRfZHdvcmQgZG9lcyAxMjggYnl0ZXMKKwlzX2NtcF9sdF91MzIJbTAsIHNfcmVzdG9yZV9hbGxvY19zaXplCQkJCS8vc2NjID0gKG0wIDwgc19yZXN0b3JlX2FsbG9jX3NpemUpID8gMSA6IDAKKwlzX2NicmFuY2hfc2NjMQlMX1JFU1RPUkVfVkdQUl9XQVZFMzJfTE9PUAkJCQkvL1ZHUFIgcmVzdG9yZSAoZXhjZXB0IHYwKSBpcyBjb21wbGV0ZT8KIAotICAgIHNfYW5kX2IzMiAgICAgICBtMCwgc193YXZlX3NpemUsIDEKLSAgICBzX2NtcF9lcV91MzIgICAgbTAsIDEKLSAgICBzX21vdl9iMzIgCQltMCwgMHgwCi0gICAgc19jYnJhbmNoX3NjYzEgIExfUkVTVE9SRV9MRFNfTE9PUF9XNjQKKwkvKiBWR1BSIHJlc3RvcmUgb24gdjAgKi8KKwlidWZmZXJfbG9hZF9kd29yZAl2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUgc2xjOjEgZ2xjOjEKKwlidWZmZXJfbG9hZF9kd29yZAl2MSwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUgc2xjOjEgZ2xjOjEgb2Zmc2V0OjEyOAorCWJ1ZmZlcl9sb2FkX2R3b3JkCXYyLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSBzbGM6MSBnbGM6MSBvZmZzZXQ6MTI4KjIKKwlidWZmZXJfbG9hZF9kd29yZAl2MywgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUgc2xjOjEgZ2xjOjEgb2Zmc2V0OjEyOCozCiAKLSAgTF9SRVNUT1JFX0xEU19MT09QX1czMjoJCQkJCQkJCQkKLQlpZiAoU0FWRV9MRFMpCi0JYnVmZmVyX2xvYWRfZHdvcmQJdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBsZHM6MQotICAgIHNfd2FpdGNudCAwCi0JZW5kCi0gICAgc19hZGRfdTMyCQltMCwgbTAsIDEyOAkJCQkJCQkJCQkJCQkJCQkvL2V2ZXJ5IGJ1ZmZlcl9sb2FkX2R3b3JkIGRvZXMgMjU2IGJ5dGVzCi0Jc19hZGRfdTMyCQlzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDEyOAkJCQkJCS8vbWVtIG9mZnNldCBpbmNyZWFzZWQgYnkgMjU2IGJ5dGVzCi0Jc19jbXBfbHRfdTMyCW0wLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZQkJCQkJCQkJCQkJCS8vc2NjPShtMCA8IHNfcmVzdG9yZV9hbGxvY19zaXplKSA/IDEgOiAwCi0Jc19jYnJhbmNoX3NjYzEgIExfUkVTVE9SRV9MRFNfTE9PUF9XMzIJCQkJCQkJCQkJCQkJCS8vTERTIHJlc3RvcmUgaXMgY29tcGxldGU/Ci0gICAgc19icmFuY2ggICAgICAgIExfUkVTVE9SRV9TR1BSCisJc19icmFuY2gJTF9SRVNUT1JFX1NHUFIKIAotICBMX1JFU1RPUkVfTERTX0xPT1BfVzY0OgkJCQkJCQkJCQotCWlmIChTQVZFX0xEUykKLQlidWZmZXJfbG9hZF9kd29yZAl2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0IGxkczoxCi0gICAgc193YWl0Y250IDAKLQllbmQKLSAgICBzX2FkZF91MzIJCW0wLCBtMCwgMjU2CQkJCQkJCQkJCQkJCQkJCS8vZXZlcnkgYnVmZmVyX2xvYWRfZHdvcmQgZG9lcyAyNTYgYnl0ZXMKLQlzX2FkZF91MzIJCXNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgMjU2CQkJCQkJCS8vbWVtIG9mZnNldCBpbmNyZWFzZWQgYnkgMjU2IGJ5dGVzCi0Jc19jbXBfbHRfdTMyCW0wLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZQkJCQkJCQkJCQkJCS8vc2NjPShtMCA8IHNfcmVzdG9yZV9hbGxvY19zaXplKSA/IDEgOiAwCi0Jc19jYnJhbmNoX3NjYzEgIExfUkVTVE9SRV9MRFNfTE9PUF9XNjQJCQkJCQkJCQkJCQkJCS8vTERTIHJlc3RvcmUgaXMgY29tcGxldGU/CitMX1JFU1RPUkVfVkdQUl9XQVZFNjQ6CisJc19tb3ZfYjMyCXNfcmVzdG9yZV9idWZfcnNyYzIsIDB4MTAwMDAwMAkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCiAKLQkKLSAgICAvKiAgICAgIAlyZXN0b3JlIFNHUFJzCSAgICAqLwotCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCS8vc19nZXRyZWdfYjMyIAlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgaHdyZWcoSFdfUkVHX0dQUl9BTExPQyxTUV9XQVZFX0dQUl9BTExPQ19TR1BSX1NJWkVfU0hJRlQsU1FfV0FWRV9HUFJfQUxMT0NfU0dQUl9TSVpFX1NJWkUpIAkJCQkvL3NwZ3Jfc2l6ZQotCS8vc19hZGRfdTMyIAkJc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCAxCi0JLy9zX2xzaGxfYjMyIAkJc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCA0IAkJCQkJCQkvL051bWJlciBvZiBTR1BScyA9IChzZ3ByX3NpemUgKyAxKSAqIDE2ICAgKG5vbi16ZXJvIHZhbHVlKQotCS8vc19sc2hsX2IzMiAJCXNfcmVzdG9yZV9hbGxvY19zaXplLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgMyAJCQkJCQkJLy9OdW1iZXIgb2YgU0dQUnMgPSAoc2dwcl9zaXplICsgMSkgKiA4ICAgKG5vbi16ZXJvIHZhbHVlKQotICBMX1JFU1RPUkVfU0dQUjoKLSAgICAvL25lZWQgdG8gbG9vayBhdCBpdCBpcyB3YXZlMzIgb3Igd2F2ZTY0Ci0gICAgc19hbmRfYjMyICAgICAgIG0wLCBzX3Jlc3RvcmVfc2l6ZSwgMQotICAgIHNfY21wX2VxX3UzMiAgICBtMCwgMQotICAgIHNfY2JyYW5jaF9zY2MxICBMX1JFU1RPUkVfU0dQUl9WTUVNX1dBVkU2NAotCWlmIChTR1BSX1NBVkVfVVNFX1NRQykKLQkJc19sc2hsX2IzMgkJc19yZXN0b3JlX2J1Zl9yc3JjMiwJc19zZ3ByX3NhdmVfbnVtLCAyCQkJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcyAKLQllbHNlCi0gICAgICAgIHNfbHNobF9iMzIJCXNfcmVzdG9yZV9idWZfcnNyYzIsCXNfc2dwcl9zYXZlX251bSwgNwkJCQkJCS8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMgKDMyIHRocmVhZHMpCi0gICAgZW5kCi0gICAgc19icmFuY2ggICAgICAgIExfUkVTVE9SRV9TR1BSX0NPTlQKLSAgTF9SRVNUT1JFX1NHUFJfVk1FTV9XQVZFNjQ6Ci0gICAgaWYgKFNHUFJfU0FWRV9VU0VfU1FDKQotCQlzX2xzaGxfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMyLAlzX3NncHJfc2F2ZV9udW0sIDIJCQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzIAotCWVsc2UKLQkJc19sc2hsX2IzMgkJc19yZXN0b3JlX2J1Zl9yc3JjMiwJc19zZ3ByX3NhdmVfbnVtLCA4CQkJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcyAoNjQgdGhyZWFkcykKLQllbmQKKwkvLyBWR1BSIGxvYWQgdXNpbmcgZHcgYnVyc3QKKwlzX21vdl9iMzIJc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSwgc19yZXN0b3JlX21lbV9vZmZzZXQJCS8vIHJlc3RvcmUgc3RhcnQgd2l0aCB2NCwgdjAgd2lsbCBiZSB0aGUgbGFzdAorCXNfYWRkX3UzMglzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDI1Nio0CisJc19tb3ZfYjMyCW0wLCA0CQkJCQkJCS8vVkdQUiBpbml0aWFsIGluZGV4IHZhbHVlID0gNAogCi0gIExfUkVTVE9SRV9TR1BSX0NPTlQ6Ci0JaWYgKFNXSVpaTEVfRU4pCi0JCXNfYWRkX3UzMgkJc19yZXN0b3JlX2J1Zl9yc3JjMiwgc19yZXN0b3JlX2J1Zl9yc3JjMiwgMHgwCQkJCQkJLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0JZWxzZQotCQlzX21vdl9iMzIJCXNfcmVzdG9yZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJCQkJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotCWVuZAorTF9SRVNUT1JFX1ZHUFJfV0FWRTY0X0xPT1A6CisJYnVmZmVyX2xvYWRfZHdvcmQJdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQorCWJ1ZmZlcl9sb2FkX2R3b3JkCXYxLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NgorCWJ1ZmZlcl9sb2FkX2R3b3JkCXYyLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NioyCisJYnVmZmVyX2xvYWRfZHdvcmQJdjMsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2KjMKKwlzX3dhaXRjbnQJdm1jbnQoMCkKKwl2X21vdnJlbGRfYjMyCXYwLCB2MAkJCQkJCQkvL3ZbMCttMF0gPSB2MAorCXZfbW92cmVsZF9iMzIJdjEsIHYxCisJdl9tb3ZyZWxkX2IzMgl2MiwgdjIKKwl2X21vdnJlbGRfYjMyCXYzLCB2MworCXNfYWRkX3UzMgltMCwgbTAsIDQJCQkJCQkvL25leHQgdmdwciBpbmRleAorCXNfYWRkX3UzMglzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDI1Nio0CS8vZXZlcnkgYnVmZmVyX2xvYWRfZHdvcmQgZG9lcyAyNTYgYnl0ZXMKKwlzX2NtcF9sdF91MzIJbTAsIHNfcmVzdG9yZV9hbGxvY19zaXplCQkJCS8vc2NjID0gKG0wIDwgc19yZXN0b3JlX2FsbG9jX3NpemUpID8gMSA6IDAKKwlzX2NicmFuY2hfc2NjMQlMX1JFU1RPUkVfVkdQUl9XQVZFNjRfTE9PUAkJCQkvL1ZHUFIgcmVzdG9yZSAoZXhjZXB0IHYwKSBpcyBjb21wbGV0ZT8KIAotICAgIHNfYW5kX2IzMiAgICAgICBtMCwgc19yZXN0b3JlX3NpemUsIDEKLSAgICBzX2NtcF9lcV91MzIgICAgbTAsIDEKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9SRVNUT1JFX1NHUFJfV0FWRTY0CisJLy9CZWxvdyBwYXJ0IHdpbGwgYmUgdGhlIHJlc3RvcmUgc2hhcmVkIHZncHIgcGFydCAobmV3IGZvciBnZngxMCkKKwlzX2dldHJlZ19iMzIJc19yZXN0b3JlX2FsbG9jX3NpemUsIGh3cmVnKEhXX1JFR19MRFNfQUxMT0MsU1FfV0FWRV9MRFNfQUxMT0NfVkdQUl9TSEFSRURfU0laRV9TSElGVCxTUV9XQVZFX0xEU19BTExPQ19WR1BSX1NIQVJFRF9TSVpFX1NJWkUpCS8vc2hhcmVkX3ZncHJfc2l6ZQorCXNfYW5kX2IzMglzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDB4RkZGRkZGRkYJLy9zaGFyZWRfdmdwcl9zaXplIGlzIHplcm8/CisJc19jYnJhbmNoX3NjYzAJTF9SRVNUT1JFX1YwCQkJCQkJLy9ubyBzaGFyZWRfdmdwciB1c2VkPworCXNfbHNobF9iMzIJc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCAzCQkvL051bWJlciBvZiBTSEFSRURfVkdQUnMgPSBzaGFyZWRfdmdwcl9zaXplICogOCAgICAobm9uLXplcm8gdmFsdWUpCisJLy9tMCBub3cgaGFzIHRoZSB2YWx1ZSBvZiBub3JtYWwgdmdwciBjb3VudCwganVzdCBhZGQgdGhlIG0wIHdpdGggc2hhcmVkX3ZncHIgY291bnQgdG8gZ2V0IHRoZSB0b3RhbCBjb3VudC4KKwkvL3Jlc3RvcmUgc2hhcmVkX3ZncHIgd2lsbCBzdGFydCBmcm9tIHRoZSBpbmRleCBvZiBtMAorCXNfYWRkX3UzMglzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIG0wCisJc19tb3ZfYjMyCWV4ZWNfbG8sIDB4RkZGRkZGRkYKKwlzX21vdl9iMzIJZXhlY19oaSwgMHgwMDAwMDAwMAorTF9SRVNUT1JFX1NIQVJFRF9WR1BSX1dBVkU2NF9MT09QOgorCWJ1ZmZlcl9sb2FkX2R3b3JkCXYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEKKwlzX3dhaXRjbnQJdm1jbnQoMCkKKwl2X21vdnJlbGRfYjMyCXYwLCB2MAkJCQkJCQkvL3ZbMCttMF0gPSB2MAorCXNfYWRkX3UzMgltMCwgbTAsIDEJCQkJCQkvL25leHQgdmdwciBpbmRleAorCXNfYWRkX3UzMglzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDEyOAorCXNfY21wX2x0X3UzMgltMCwgc19yZXN0b3JlX2FsbG9jX3NpemUJCQkJLy9zY2MgPSAobTAgPCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSkgPyAxIDogMAorCXNfY2JyYW5jaF9zY2MxCUxfUkVTVE9SRV9TSEFSRURfVkdQUl9XQVZFNjRfTE9PUAkJCS8vVkdQUiByZXN0b3JlIChleGNlcHQgdjApIGlzIGNvbXBsZXRlPwogCi0gICAgcmVhZF9zZ3ByX2Zyb21fbWVtX3dhdmUzMihzX3Jlc3RvcmVfdG1wLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkvL3NhdmUgczAgdG8gc19yZXN0b3JlX3RtcAotCXNfbW92X2IzMiAJCW0wLCAweDEKKwlzX21vdl9iMzIJZXhlY19oaSwgMHhGRkZGRkZGRgkJCQkJLy9yZXN0b3JlIGJhY2sgZXhlY19oaSBiZWZvcmUgcmVzdG9yaW5nIFYwISEKIAotICBMX1JFU1RPUkVfU0dQUl9MT09QX1dBVkUzMjoKLSAgICByZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTMyKHMwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkJCQkJCQkJCQkJCQkJLy9QVjogZnVydGhlciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBjYW4gYmUgbWFkZQotCXNfd2FpdGNudAkJbGdrbWNudCgwKQkJCQkJCQkJCQkJCQkJCQkvL2Vuc3VyZSBkYXRhIHJlYWR5Ci0Jc19tb3ZyZWxkX2IzMiAJczAsIHMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zWzArbTBdID0gczAKLSAgICBzX25vcCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF6YXJkIFNBTFUgTTA9PiBTX01PVlJFTAotCXNfYWRkX3UzMgkJbTAsIG0wLCAxCQkJCQkJCQkJCQkJCQkJCS8vbmV4dCBzZ3ByIGluZGV4Ci0Jc19jbXBfbHRfdTMyIAltMCwgc19zZ3ByX3NhdmVfbnVtCQkJCQkJCQkJCQkJLy9zY2MgPSAobTAgPCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSkgPyAxIDogMAotCXNfY2JyYW5jaF9zY2MxIAlMX1JFU1RPUkVfU0dQUl9MT09QX1dBVkUzMgkJCQkJCQkJCQkJCQkJLy9TR1BSIHJlc3RvcmUgKGV4Y2VwdCBzMCkgaXMgY29tcGxldGU/Ci0Jc19tb3ZfYjMyCQlzMCwgc19yZXN0b3JlX3RtcAkJCQkJCQkJCQkJCQkJCS8qIFNHUFIgcmVzdG9yZSBvbiBzMCAqLwotICAgIHNfYnJhbmNoICAgICAgICBMX1JFU1RPUkVfSFdSRUcKLSAgCi0gIExfUkVTVE9SRV9TR1BSX1dBVkU2NDoKLQlyZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTY0KHNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCS8vc2F2ZSBzMCB0byBzX3Jlc3RvcmVfdG1wCi0Jc19tb3ZfYjMyIAkJbTAsIDB4MQkJCQkJCQkJCQkJCQkJCQkJCQkJLy9TR1BSIGluaXRpYWwgaW5kZXggdmFsdWUgPTEJLy9nbyBvbiB3aXRoIHdpdGggczEKLQkKLSAgTF9SRVNUT1JFX1NHUFJfTE9PUF9XQVZFNjQ6IAkJCQkJCQkJCQkJCQkJCQkJCQkJCQotCXJlYWRfc2dwcl9mcm9tX21lbV93YXZlNjQoczAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCQkJCQkJCQkJCQkJCQkvL1BWOiBmdXJ0aGVyIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGNhbiBiZSBtYWRlCi0Jc193YWl0Y250CQlsZ2ttY250KDApCQkJCQkJCQkJCQkJCQkJCS8vZW5zdXJlIGRhdGEgcmVhZHkKLQlzX21vdnJlbGRfYjMyIAlzMCwgczAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NbMCttMF0gPSBzMAotICAgIHNfbm9wIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXphcmQgU0FMVSBNMD0+IFNfTU9WUkVMCi0Jc19hZGRfdTMyCQltMCwgbTAsIDEJCQkJCQkJCQkJCQkJCQkJLy9uZXh0IHNncHIgaW5kZXgKLQlzX2NtcF9sdF91MzIgCW0wLCBzX3NncHJfc2F2ZV9udW0JCQkJCQkJCQkJCQkvL3NjYyA9IChtMCA8IHNfcmVzdG9yZV9hbGxvY19zaXplKSA/IDEgOiAwCi0Jc19jYnJhbmNoX3NjYzEgCUxfUkVTVE9SRV9TR1BSX0xPT1BfV0FWRTY0CQkJCQkJCQkJCQkJCQkvL1NHUFIgcmVzdG9yZSAoZXhjZXB0IHMwKSBpcyBjb21wbGV0ZT8KLQlzX21vdl9iMzIJCXMwLCBzX3Jlc3RvcmVfdG1wCQkJCQkJCQkJCQkJCQkJLyogU0dQUiByZXN0b3JlIG9uIHMwICovCisJLyogVkdQUiByZXN0b3JlIG9uIHYwICovCitMX1JFU1RPUkVfVjA6CisJYnVmZmVyX2xvYWRfZHdvcmQJdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldF9zYXZlIHNsYzoxIGdsYzoxCisJYnVmZmVyX2xvYWRfZHdvcmQJdjEsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldF9zYXZlIHNsYzoxIGdsYzoxIG9mZnNldDoyNTYKKwlidWZmZXJfbG9hZF9kd29yZAl2MiwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NioyCisJYnVmZmVyX2xvYWRfZHdvcmQJdjMsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldF9zYXZlIHNsYzoxIGdsYzoxIG9mZnNldDoyNTYqMwogCi0JCi0gICAgLyogCQlyZXN0b3JlIEhXIHJlZ2lzdGVycwkqLwotCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICBMX1JFU1RPUkVfSFdSRUc6Ci0gICAgc19tb3ZfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMyLCAweDQJCQkJCQkJCQkJCQkvL05VTV9SRUNPUkRTCWluIGJ5dGVzCi0JaWYgKFNXSVpaTEVfRU4pCi0JCXNfYWRkX3UzMgkJc19yZXN0b3JlX2J1Zl9yc3JjMiwgc19yZXN0b3JlX2J1Zl9yc3JjMiwgMHgwCQkJCQkJLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0JZWxzZQotCQlzX21vdl9iMzIJCXNfcmVzdG9yZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJCQkJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotCWVuZAorCS8qIHJlc3RvcmUgU0dQUnMgKi8KKwkvL3dpbGwgYmUgMis4KzE2KjYKKwkvLyBTR1BSIFNSIG1lbW9yeSBvZmZzZXQgOiBzaXplKFZHUFIpK3NpemUoU1ZHUFIpCitMX1JFU1RPUkVfU0dQUjoKKwlnZXRfdmdwcl9zaXplX2J5dGVzKHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfc2l6ZSkKKwlnZXRfc3ZncHJfc2l6ZV9ieXRlcyhzX3Jlc3RvcmVfdG1wKQorCXNfYWRkX3UzMglzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV90bXAKKwlzX2FkZF91MzIJc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBnZXRfc2dwcl9zaXplX2J5dGVzKCkKKwlzX3N1Yl91MzIJc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCAyMCo0CS8vczEwOH5zMTI3IGlzIG5vdCBzYXZlZAogCi0gICAgc19hbmRfYjMyICAgICAgIG0wLCBzX3Jlc3RvcmVfc2l6ZSwgMQotICAgIHNfY21wX2VxX3UzMiAgICBtMCwgMQotICAgIHNfY2JyYW5jaF9zY2MxICBMX1JFU1RPUkVfSFdSRUdfV0FWRTY0CisJc19tb3ZfYjMyCXNfcmVzdG9yZV9idWZfcnNyYzIsIDB4MTAwMDAwMAkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCiAKLSAgICByZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTMyKHNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDKQkJCQkJLy9NMAotCXJlYWRfc2dwcl9mcm9tX21lbV93YXZlMzIoc19yZXN0b3JlX3BjX2xvLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkJCS8vUEMKLQlyZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTMyKHNfcmVzdG9yZV9wY19oaSwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDKQotCXJlYWRfc2dwcl9mcm9tX21lbV93YXZlMzIoc19yZXN0b3JlX2V4ZWNfbG8sIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCQkJLy9FWEVDCi0JcmVhZF9zZ3ByX2Zyb21fbWVtX3dhdmUzMihzX3Jlc3RvcmVfZXhlY19oaSwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDKQotCXJlYWRfc2dwcl9mcm9tX21lbV93YXZlMzIoc19yZXN0b3JlX3N0YXR1cywgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDKQkJCQkvL1NUQVRVUwotCXJlYWRfc2dwcl9mcm9tX21lbV93YXZlMzIoc19yZXN0b3JlX3RyYXBzdHMsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCQkJLy9UUkFQU1RTCi0gICAgLy9yZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTMyKHhuYWNrX21hc2tfbG8sIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCQkJCS8vWE5BQ0tfTUFTS19MTwotCS8vcmVhZF9zZ3ByX2Zyb21fbWVtX3dhdmUzMih4bmFja19tYXNrX2hpLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkJCQkvL1hOQUNLX01BU0tfSEkKLSAgICByZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTMyKHNfcmVzdG9yZV94bmFja19tYXNrLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkJCQkvL1hOQUNLX01BU0sKLQlyZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTMyKHNfcmVzdG9yZV9tb2RlLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkJCS8vTU9ERQotICAgIGlmKFNBVkVfUkVTVE9SRV9IV0lEX0RESUQpCi0gICAgcmVhZF9zZ3ByX2Zyb21fbWVtX3dhdmUzMihzX3Jlc3RvcmVfaHdpZDEsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCQkJLy9IV19JRDEKLSAgICBlbmQKLSAgICBzX2JyYW5jaCAgICAgICAgTF9SRVNUT1JFX0hXUkVHX0ZJTklTSAorCXNfbW92X2IzMgltMCwgc19zZ3ByX3NhdmVfbnVtCiAKLSAgTF9SRVNUT1JFX0hXUkVHX1dBVkU2NDoKLQlyZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTY0KHNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDKQkJCQkJLy9NMAotCXJlYWRfc2dwcl9mcm9tX21lbV93YXZlNjQoc19yZXN0b3JlX3BjX2xvLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkJCS8vUEMKLQlyZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTY0KHNfcmVzdG9yZV9wY19oaSwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDKQotCXJlYWRfc2dwcl9mcm9tX21lbV93YXZlNjQoc19yZXN0b3JlX2V4ZWNfbG8sIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCQkJLy9FWEVDCi0JcmVhZF9zZ3ByX2Zyb21fbWVtX3dhdmU2NChzX3Jlc3RvcmVfZXhlY19oaSwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDKQotCXJlYWRfc2dwcl9mcm9tX21lbV93YXZlNjQoc19yZXN0b3JlX3N0YXR1cywgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDKQkJCQkvL1NUQVRVUwotCXJlYWRfc2dwcl9mcm9tX21lbV93YXZlNjQoc19yZXN0b3JlX3RyYXBzdHMsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCQkJLy9UUkFQU1RTCi0gICAgLy9yZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTY0KHhuYWNrX21hc2tfbG8sIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCQkJCS8vWE5BQ0tfTUFTS19MTwotCS8vcmVhZF9zZ3ByX2Zyb21fbWVtX3dhdmU2NCh4bmFja19tYXNrX2hpLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkJCQkvL1hOQUNLX01BU0tfSEkKLSAgICByZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTY0KHNfcmVzdG9yZV94bmFja19tYXNrLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkJCQkvL1hOQUNLX01BU0sKLQlyZWFkX3NncHJfZnJvbV9tZW1fd2F2ZTY0KHNfcmVzdG9yZV9tb2RlLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgU0dQUl9TQVZFX1VTRV9TUUMpCQkJCS8vTU9ERQotICAgIGlmKFNBVkVfUkVTVE9SRV9IV0lEX0RESUQpCi0gICAgcmVhZF9zZ3ByX2Zyb21fbWVtX3dhdmU2NChzX3Jlc3RvcmVfaHdpZDEsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCQkJLy9IV19JRDEKLSAgICBlbmQKLSAgTF9SRVNUT1JFX0hXUkVHX0ZJTklTSDoKLQlzX3dhaXRjbnQJCWxna21jbnQoMCkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJLy9mcm9tIG5vdyBvbiwgaXQgaXMgc2FmZSB0byByZXN0b3JlIFNUQVRVUyBhbmQgSUJfU1RTCi0gIAorCXJlYWRfNHNncHJfZnJvbV9tZW0oczAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0KQorCXNfd2FpdGNudAlsZ2ttY250KDApCiAKKwlzX3N1Yl91MzIJbTAsIG0wLCA0CQkJCQkJLy8gUmVzdG9yZSBmcm9tIFNbMF0gdG8gU1sxMDRdCisJc19ub3AJCTAJCQkJCQkJLy8gaGF6YXJkIFNBTFUgTTA9PiBTX01PVlJFTAogCi0gICAgaWYoU0FWRV9SRVNUT1JFX0hXSURfRERJRCkKLSAgTF9SRVNUT1JFX0RESUQ6Ci0gICAgc19tb3ZfYjMyICAgICAgbTAsIHNfcmVzdG9yZV9od2lkMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdmlydHVyZSB0dHJhY2Ugc3VwcG9ydDogVGhlIHNhdmUtY29udGV4dCBoYW5kbGVyIHJlY29yZHMgdGhlIFNFL1NBL1dHUC9TSU1EL3dhdmUgb2YgdGhlIG9yaWdpbmFsIHdhdmUKLSAgICBzX3R0cmFjZWRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9hbmQgdGhlbiBjYW4gb3V0cHV0IGl0IGFzIFNIQURFUl9EQVRBIHRvIHR0cmFjZSBvbiByZXN0b3JlIHRvIHByb3ZpZGUgYSBjb3JyZWxhdGlvbiBhY3Jvc3MgdGhlIHNhdmUtcmVzdG9yZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgc19tb3ZfYjMyCQlzX3Jlc3RvcmVfYnVmX3JzcmMyLCAweDQJCQkJCQkJCQkJCQkvL05VTV9SRUNPUkRTCWluIGJ5dGVzCi0JaWYgKFNXSVpaTEVfRU4pCi0JCXNfYWRkX3UzMgkJc19yZXN0b3JlX2J1Zl9yc3JjMiwgc19yZXN0b3JlX2J1Zl9yc3JjMiwgMHgwCQkJCQkJLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0JZWxzZQotCQlzX21vdl9iMzIJCXNfcmVzdG9yZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJCQkJCQkJLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotCWVuZAorCXNfbW92cmVsZF9iNjQJczAsIHMwCQkJCQkJCS8vc1swK20wXSA9IHMwCisJc19tb3ZyZWxkX2I2NAlzMiwgczIKIAotICAgIHNfYW5kX2IzMiAgICAgICBtMCwgc19yZXN0b3JlX3NpemUsIDEKLSAgICBzX2NtcF9lcV91MzIgICAgbTAsIDEKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9SRVNUT1JFX0RESURfV0FWRTY0CisJcmVhZF84c2dwcl9mcm9tX21lbShzMCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQpCisJc193YWl0Y250CWxna21jbnQoMCkKIAotICAgIHJlYWRfc2dwcl9mcm9tX21lbV93YXZlMzIoc19yZXN0b3JlX2RkaWQsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBTR1BSX1NBVkVfVVNFX1NRQykJCi0gICAgc19icmFuY2ggICAgICAgIExfUkVTVE9SRV9ERElEX0ZJTklTSAotICBMX1JFU1RPUkVfRERJRF9XQVZFNjQ6Ci0gICAgcmVhZF9zZ3ByX2Zyb21fbWVtX3dhdmU2NChzX3Jlc3RvcmVfZGRpZCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIFNHUFJfU0FWRV9VU0VfU1FDKQkKKwlzX3N1Yl91MzIJbTAsIG0wLCA4CQkJCQkJLy8gUmVzdG9yZSBmcm9tIFNbMF0gdG8gU1s5Nl0KKwlzX25vcAkJMAkJCQkJCQkvLyBoYXphcmQgU0FMVSBNMD0+IFNfTU9WUkVMCiAKLSAgTF9SRVNUT1JFX0RESURfRklOSVNIOgotICAgIHNfd2FpdGNudAkJbGdrbWNudCgwKQotICAgIC8vc19tb3ZfYjMyICAgICAgbTAsIHNfcmVzdG9yZV9kZGlkCi0gICAgLy9zX3R0cmFjZWRhdGEgICAKLSAgICBpZiAoUkVTVE9SRV9ERElEX0lOX1NHUFIxOCkKLSAgICAgICAgc19tb3ZfYjMyICAgczE4LCBzX3Jlc3RvcmVfZGRpZAotCWVuZAkKLSAgICAKLSAgICBlbmQgICAKKwlzX21vdnJlbGRfYjY0CXMwLCBzMAkJCQkJCQkvL3NbMCttMF0gPSBzMAorCXNfbW92cmVsZF9iNjQJczIsIHMyCisJc19tb3ZyZWxkX2I2NAlzNCwgczQKKwlzX21vdnJlbGRfYjY0CXM2LCBzNgogCi0Jc19hbmRfYjMyIHNfcmVzdG9yZV9wY19oaSwgc19yZXN0b3JlX3BjX2hpLCAweDAwMDBmZmZmICAgIAkvL3BjWzQ3OjMyXSAgICAgICAgLy9EbyBpdCBoZXJlIGluIG9yZGVyIG5vdCB0byBhZmZlY3QgU1RBVFVTCisgTF9SRVNUT1JFX1NHUFJfTE9PUDoKKwlyZWFkXzE2c2dwcl9mcm9tX21lbShzMCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQpCisJc193YWl0Y250CWxna21jbnQoMCkKIAotCS8vZm9yIG5vcm1hbCBzYXZlICYgcmVzdG9yZSwgdGhlIHNhdmVkIFBDIHBvaW50cyB0byB0aGUgbmV4dCBpbnN0IHRvIGV4ZWN1dGUsIG5vIGFkanVzdG1lbnQgbmVlZHMgdG8gYmUgbWFkZSwgb3RoZXJ3aXNlOgotCWlmICgoRU1VX1JVTl9IQUNLKSAmJiAoIUVNVV9SVU5fSEFDS19SRVNUT1JFX05PUk1BTCkpCi0JCXNfYWRkX3UzMiBzX3Jlc3RvcmVfcGNfbG8sIHNfcmVzdG9yZV9wY19sbywgOCAgICAgICAgICAgIC8vcGNbMzE6MF0rOAkgIC8vdHdvIGJhY2stdG8tYmFjayBzX3RyYXAgYXJlIHVzZWQgKGZpcnN0IGZvciBzYXZlIGFuZCBzZWNvbmQgZm9yIHJlc3RvcmUpCi0JCXNfYWRkY191MzIJc19yZXN0b3JlX3BjX2hpLCBzX3Jlc3RvcmVfcGNfaGksIDB4MAkJIC8vY2FycnkgYml0IG92ZXIKLQllbmQJCi0JaWYgKChFTVVfUlVOX0hBQ0spICYmIChFTVVfUlVOX0hBQ0tfUkVTVE9SRV9OT1JNQUwpKQkgICAgICAKLQkJc19hZGRfdTMyIHNfcmVzdG9yZV9wY19sbywgc19yZXN0b3JlX3BjX2xvLCA0ICAgICAgICAgICAgLy9wY1szMTowXSs0ICAgICAvLyBzYXZlIGlzIGhhY2sgdGhyb3VnaCBzX3RyYXAgYnV0IHJlc3RvcmUgaXMgbm9ybWFsCi0JCXNfYWRkY191MzIJc19yZXN0b3JlX3BjX2hpLCBzX3Jlc3RvcmVfcGNfaGksIDB4MAkJIC8vY2FycnkgYml0IG92ZXIKLQllbmQKLQkKLQlzX21vdl9iMzIgCQltMCwgCQlzX3Jlc3RvcmVfbTAKLQlzX21vdl9iMzIgCQlleGVjX2xvLCAJc19yZXN0b3JlX2V4ZWNfbG8KLQlzX21vdl9iMzIgCQlleGVjX2hpLCAJc19yZXN0b3JlX2V4ZWNfaGkKLQkKLQlzX2FuZF9iMzIJCXNfcmVzdG9yZV9tMCwgU1FfV0FWRV9UUkFQU1RTX1BSRV9TQVZFQ1RYX01BU0ssIHNfcmVzdG9yZV90cmFwc3RzCisJc19zdWJfdTMyCW0wLCBtMCwgMTYJCQkJCQkvLyBSZXN0b3JlIGZyb20gU1tuXSB0byBTWzBdCisJc19ub3AJCTAJCQkJCQkJLy8gaGF6YXJkIFNBTFUgTTA9PiBTX01PVlJFTAorCisJc19tb3ZyZWxkX2I2NAlzMCwgczAJCQkJCQkJLy9zWzArbTBdID0gczAKKwlzX21vdnJlbGRfYjY0CXMyLCBzMgorCXNfbW92cmVsZF9iNjQJczQsIHM0CisJc19tb3ZyZWxkX2I2NAlzNiwgczYKKwlzX21vdnJlbGRfYjY0CXM4LCBzOAorCXNfbW92cmVsZF9iNjQJczEwLCBzMTAKKwlzX21vdnJlbGRfYjY0CXMxMiwgczEyCisJc19tb3ZyZWxkX2I2NAlzMTQsIHMxNAorCisJc19jbXBfZXFfdTMyCW0wLCAwCQkJCQkJCS8vc2NjID0gKG0wIDwgc19zZ3ByX3NhdmVfbnVtKSA/IDEgOiAwCisJc19jYnJhbmNoX3NjYzAJTF9SRVNUT1JFX1NHUFJfTE9PUAorCisJLyogcmVzdG9yZSBIVyByZWdpc3RlcnMgKi8KK0xfUkVTVE9SRV9IV1JFRzoKKwkvLyBIV1JFRyBTUiBtZW1vcnkgb2Zmc2V0IDogc2l6ZShWR1BSKStzaXplKFNWR1BSKStzaXplKFNHUFIpCisJZ2V0X3ZncHJfc2l6ZV9ieXRlcyhzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX3NpemUpCisJZ2V0X3N2Z3ByX3NpemVfYnl0ZXMoc19yZXN0b3JlX3RtcCkKKwlzX2FkZF91MzIJc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfdG1wCisJc19hZGRfdTMyCXNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgZ2V0X3NncHJfc2l6ZV9ieXRlcygpCisKKwlzX21vdl9iMzIJc19yZXN0b3JlX2J1Zl9yc3JjMiwgMHgxMDAwMDAwCQkJCS8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKKworCXJlYWRfaHdyZWdfZnJvbV9tZW0oc19yZXN0b3JlX20wLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCkKKwlyZWFkX2h3cmVnX2Zyb21fbWVtKHNfcmVzdG9yZV9wY19sbywgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQpCisJcmVhZF9od3JlZ19mcm9tX21lbShzX3Jlc3RvcmVfcGNfaGksIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0KQorCXJlYWRfaHdyZWdfZnJvbV9tZW0oc19yZXN0b3JlX2V4ZWNfbG8sIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0KQorCXJlYWRfaHdyZWdfZnJvbV9tZW0oc19yZXN0b3JlX2V4ZWNfaGksIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0KQorCXJlYWRfaHdyZWdfZnJvbV9tZW0oc19yZXN0b3JlX3N0YXR1cywgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQpCisJcmVhZF9od3JlZ19mcm9tX21lbShzX3Jlc3RvcmVfdHJhcHN0cywgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQpCisJcmVhZF9od3JlZ19mcm9tX21lbShzX3Jlc3RvcmVfeG5hY2tfbWFzaywgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQpCisJcmVhZF9od3JlZ19mcm9tX21lbShzX3Jlc3RvcmVfbW9kZSwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQpCisJcmVhZF9od3JlZ19mcm9tX21lbShzX3Jlc3RvcmVfZmxhdF9zY3JhdGNoLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCkKKwlzX3dhaXRjbnQJbGdrbWNudCgwKQorCisJc19zZXRyZWdfYjMyCWh3cmVnKEhXX1JFR19TSEFERVJfRkxBVF9TQ1JBVENIX0xPKSwgc19yZXN0b3JlX2ZsYXRfc2NyYXRjaAorCisJcmVhZF9od3JlZ19mcm9tX21lbShzX3Jlc3RvcmVfZmxhdF9zY3JhdGNoLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCkKKwlzX3dhaXRjbnQJbGdrbWNudCgwKQkJCQkJCS8vZnJvbSBub3cgb24sIGl0IGlzIHNhZmUgdG8gcmVzdG9yZSBTVEFUVVMgYW5kIElCX1NUUworCisJc19zZXRyZWdfYjMyCWh3cmVnKEhXX1JFR19TSEFERVJfRkxBVF9TQ1JBVENIX0hJKSwgc19yZXN0b3JlX2ZsYXRfc2NyYXRjaAorCisJc19tb3ZfYjMyCXNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV9wY19oaQorCXNfYW5kX2IzMglzX3Jlc3RvcmVfcGNfaGksIHNfcmVzdG9yZV90bXAsIDB4MDAwMGZmZmYJCS8vcGNbNDc6MzJdIC8vRG8gaXQgaGVyZSBpbiBvcmRlciBub3QgdG8gYWZmZWN0IFNUQVRVUworCisJc19tb3ZfYjMyCW0wLCBzX3Jlc3RvcmVfbTAKKwlzX21vdl9iMzIJZXhlY19sbywgc19yZXN0b3JlX2V4ZWNfbG8KKwlzX21vdl9iMzIJZXhlY19oaSwgc19yZXN0b3JlX2V4ZWNfaGkKKworCXNfYW5kX2IzMglzX3Jlc3RvcmVfbTAsIFNRX1dBVkVfVFJBUFNUU19QUkVfU0FWRUNUWF9NQVNLLCBzX3Jlc3RvcmVfdHJhcHN0cwogCXNfc2V0cmVnX2IzMglod3JlZyhIV19SRUdfVFJBUFNUUywgU1FfV0FWRV9UUkFQU1RTX1BSRV9TQVZFQ1RYX1NISUZULCBTUV9XQVZFX1RSQVBTVFNfUFJFX1NBVkVDVFhfU0laRSksIHNfcmVzdG9yZV9tMAotICAgIHNfc2V0cmVnX2IzMiAgICBod3JlZyhIV19SRUdfU0hBREVSX1hOQUNLX01BU0spLCBzX3Jlc3RvcmVfeG5hY2tfbWFzayAgICAgICAgIC8vcmVzdG9yZSB4bmFja19tYXNrCi0Jc19hbmRfYjMyCQlzX3Jlc3RvcmVfbTAsIFNRX1dBVkVfVFJBUFNUU19QT1NUX1NBVkVDVFhfTUFTSywgc19yZXN0b3JlX3RyYXBzdHMKLQlzX2xzaHJfYjMyCQlzX3Jlc3RvcmVfbTAsIHNfcmVzdG9yZV9tMCwgU1FfV0FWRV9UUkFQU1RTX1BPU1RfU0FWRUNUWF9TSElGVAorCXNfc2V0cmVnX2IzMglod3JlZyhIV19SRUdfU0hBREVSX1hOQUNLX01BU0spLCBzX3Jlc3RvcmVfeG5hY2tfbWFzaworCXNfYW5kX2IzMglzX3Jlc3RvcmVfbTAsIFNRX1dBVkVfVFJBUFNUU19QT1NUX1NBVkVDVFhfTUFTSywgc19yZXN0b3JlX3RyYXBzdHMKKwlzX2xzaHJfYjMyCXNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX20wLCBTUV9XQVZFX1RSQVBTVFNfUE9TVF9TQVZFQ1RYX1NISUZUCiAJc19zZXRyZWdfYjMyCWh3cmVnKEhXX1JFR19UUkFQU1RTLCBTUV9XQVZFX1RSQVBTVFNfUE9TVF9TQVZFQ1RYX1NISUZULCBTUV9XQVZFX1RSQVBTVFNfUE9TVF9TQVZFQ1RYX1NJWkUpLCBzX3Jlc3RvcmVfbTAKLQkvL3Nfc2V0cmVnX2IzMiAJaHdyZWcoSFdfUkVHX1RSQVBTVFMpLCAJc19yZXN0b3JlX3RyYXBzdHMgICAgICAvL2Rvbid0IG92ZXJ3cml0ZSBTQVZFQ1RYIGJpdCBhcyBpdCBtYXkgYmUgc2V0IHRocm91Z2ggZXh0ZXJuYWwgU0FWRUNUWCBkdXJpbmcgcmVzdG9yZQotCXNfc2V0cmVnX2IzMiAJaHdyZWcoSFdfUkVHX01PREUpLCAJc19yZXN0b3JlX21vZGUKLQkvL3JldXNlIHNfcmVzdG9yZV9tMCBhcyBhIHRlbXAgcmVnaXN0ZXIKLQlzX2FuZF9iMzIJCXNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX3BjX2hpLCBTX1NBVkVfUENfSElfUkNOVF9NQVNLCi0Jc19sc2hyX2IzMgkJc19yZXN0b3JlX20wLCBzX3Jlc3RvcmVfbTAsIFNfU0FWRV9QQ19ISV9SQ05UX1NISUZUCi0Jc19sc2hsX2IzMgkJc19yZXN0b3JlX20wLCBzX3Jlc3RvcmVfbTAsIFNRX1dBVkVfSUJfU1RTX1JDTlRfU0hJRlQKLQlzX21vdl9iMzIJCXNfcmVzdG9yZV90bXAsIDB4MAkJCQkJCQkJCQkJCQkJCQkJCQkJLy9JQl9TVFMgaXMgemVybwotCXNfb3JfYjMyCQlzX3Jlc3RvcmVfdG1wLCBzX3Jlc3RvcmVfdG1wLCBzX3Jlc3RvcmVfbTAKLQlzX2FuZF9iMzIJCXNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX3BjX2hpLCBTX1NBVkVfUENfSElfRklSU1RfUkVQTEFZX01BU0sKLQlzX2xzaHJfYjMyCQlzX3Jlc3RvcmVfbTAsIHNfcmVzdG9yZV9tMCwgU19TQVZFX1BDX0hJX0ZJUlNUX1JFUExBWV9TSElGVAotCXNfbHNobF9iMzIJCXNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX20wLCBTUV9XQVZFX0lCX1NUU19GSVJTVF9SRVBMQVlfU0hJRlQKLQlzX29yX2IzMgkJc19yZXN0b3JlX3RtcCwgc19yZXN0b3JlX3RtcCwgc19yZXN0b3JlX20wCi0gICAgc19hbmRfYjMyICAgICAgIHNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX3N0YXR1cywgU1FfV0FWRV9TVEFUVVNfSU5TVF9BVENfTUFTSyAKLSAgICBzX2xzaHJfYjMyCQlzX3Jlc3RvcmVfbTAsIHNfcmVzdG9yZV9tMCwgU1FfV0FWRV9TVEFUVVNfSU5TVF9BVENfU0hJRlQKLQlzX3NldHJlZ19iMzIgCWh3cmVnKEhXX1JFR19JQl9TVFMpLCAJc19yZXN0b3JlX3RtcAotCXNfc2V0cmVnX2IzMiAJaHdyZWcoSFdfUkVHX1NUQVRVUyksIAlzX3Jlc3RvcmVfc3RhdHVzCisJc19zZXRyZWdfYjMyCWh3cmVnKEhXX1JFR19NT0RFKSwgc19yZXN0b3JlX21vZGUKKwlzX2FuZF9iMzIJc19yZXN0b3JlX20wLCBzX3Jlc3RvcmVfdG1wLCBTX1NBVkVfUENfSElfUkNOVF9NQVNLCisJc19sc2hyX2IzMglzX3Jlc3RvcmVfbTAsIHNfcmVzdG9yZV9tMCwgU19TQVZFX1BDX0hJX1JDTlRfU0hJRlQKKwlzX2xzaGxfYjMyCXNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX20wLCBTUV9XQVZFX0lCX1NUU19SQ05UX1NISUZUCisJc19tb3ZfYjMyCXNfcmVzdG9yZV9tb2RlLCAweDAKKwlzX29yX2IzMglzX3Jlc3RvcmVfbW9kZSwgc19yZXN0b3JlX21vZGUsIHNfcmVzdG9yZV9tMAorCXNfYW5kX2IzMglzX3Jlc3RvcmVfbTAsIHNfcmVzdG9yZV90bXAsIFNfU0FWRV9QQ19ISV9GSVJTVF9SRVBMQVlfTUFTSworCXNfbHNocl9iMzIJc19yZXN0b3JlX20wLCBzX3Jlc3RvcmVfbTAsIFNfU0FWRV9QQ19ISV9GSVJTVF9SRVBMQVlfU0hJRlQKKwlzX2xzaGxfYjMyCXNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX20wLCBTUV9XQVZFX0lCX1NUU19GSVJTVF9SRVBMQVlfU0hJRlQKKwlzX29yX2IzMglzX3Jlc3RvcmVfbW9kZSwgc19yZXN0b3JlX21vZGUsIHNfcmVzdG9yZV9tMAorCXNfYW5kX2IzMglzX3Jlc3RvcmVfbTAsIHNfcmVzdG9yZV90bXAsIFNfU0FWRV9QQ19ISV9SRVBMQVlfVzY0SF9NQVNLCisJc19sc2hyX2IzMglzX3Jlc3RvcmVfbTAsIHNfcmVzdG9yZV9tMCwgU19TQVZFX1BDX0hJX1JFUExBWV9XNjRIX1NISUZUCisJc19sc2hsX2IzMglzX3Jlc3RvcmVfbTAsIHNfcmVzdG9yZV9tMCwgU1FfV0FWRV9JQl9TVFNfUkVQTEFZX1c2NEhfU0hJRlQKKwlzX29yX2IzMglzX3Jlc3RvcmVfbW9kZSwgc19yZXN0b3JlX21vZGUsIHNfcmVzdG9yZV9tMAogCi0Jc19iYXJyaWVyCQkJCQkJCQkJCQkJCS8vYmFycmllciB0byBlbnN1cmUgdGhlIHJlYWRpbmVzcyBvZiBMRFMgYmVmb3JlIGFjY2VzcyBhdHRlbXBzIGZyb20gYW55IG90aGVyIHdhdmUgaW4gdGhlIHNhbWUgVEcgLy9GSVhNRSBub3QgcGVyZm9ybWFuY2Utb3B0aW1hbCBhdCB0aGlzIHRpbWUKLQkKLQkKLS8vCXNfcmZlX2I2NCBzX3Jlc3RvcmVfcGNfbG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJCS8vUmV0dXJuIHRvIHRoZSBtYWluIHNoYWRlciBwcm9ncmFtIGFuZCByZXN1bWUgZXhlY3V0aW9uCi0gICAgc19yZmVfYjY0ICBzX3Jlc3RvcmVfcGNfbG8gICAgICAgICAgICAvLyBzX3Jlc3RvcmVfbTBbMF0gaXMgdXNlZCB0byBzZXQgU1RBVFVTLmluc3RfYXRjIAorCXNfYW5kX2IzMglzX3Jlc3RvcmVfbTAsIHNfcmVzdG9yZV9zdGF0dXMsIFNRX1dBVkVfU1RBVFVTX0lOU1RfQVRDX01BU0sKKwlzX2xzaHJfYjMyCXNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX20wLCBTUV9XQVZFX1NUQVRVU19JTlNUX0FUQ19TSElGVAorCXNfc2V0cmVnX2IzMiAJaHdyZWcoSFdfUkVHX0lCX1NUUyksIHNfcmVzdG9yZV9tb2RlCiAKKwlzX2FuZF9iNjQJZXhlYywgZXhlYywgZXhlYwkJCQkJLy8gUmVzdG9yZSBTVEFUVVMuRVhFQ1osIG5vdCB3cml0YWJsZSBieSBzX3NldHJlZ19iMzIKKwlzX2FuZF9iNjQJdmNjLCB2Y2MsIHZjYwkJCQkJCS8vIFJlc3RvcmUgU1RBVFVTLlZDQ1osIG5vdCB3cml0YWJsZSBieSBzX3NldHJlZ19iMzIKKwlzX3NldHJlZ19iMzIJaHdyZWcoSFdfUkVHX1NUQVRVUyksIHNfcmVzdG9yZV9zdGF0dXMJCQkvLyBTQ0MgaXMgaW5jbHVkZWQsIHdoaWNoIGlzIGNoYW5nZWQgYnkgcHJldmlvdXMgc2FsdQogCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiAgICAgICAgICAgICAgICAgICAgIAl0aGUgRU5ECQkJCQkJCQkgICAgICAgICAgICAgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCQotTF9FTkRfUEdNOgkKKwlzX2JhcnJpZXIJCQkJCQkJCS8vYmFycmllciB0byBlbnN1cmUgdGhlIHJlYWRpbmVzcyBvZiBMRFMgYmVmb3JlIGFjY2VzcyBhdHRlbXBzIGZyb20gYW55IG90aGVyIHdhdmUgaW4gdGhlIHNhbWUgVEcKKworCXNfcmZlX2I2NAlzX3Jlc3RvcmVfcGNfbG8JCQkJCQkvL1JldHVybiB0byB0aGUgbWFpbiBzaGFkZXIgcHJvZ3JhbSBhbmQgcmVzdW1lIGV4ZWN1dGlvbgorCitMX0VORF9QR006CiAJc19lbmRwZ20KLQkKLWVuZAkKLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiAgICAgICAgICAgICAgICAgICAgIAl0aGUgaGVscGVyIGZ1bmN0aW9ucwkJCQkJCQkgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1mdW5jdGlvbiB3cml0ZV9zZ3ByX3RvX21lbV93YXZlMzIocywgc19yc3JjLCBzX21lbV9vZmZzZXQsIHVzZV9zcWMsIHVzZV9tdGJ1ZikKLQlpZiAodXNlX3NxYykKLQkJc19tb3ZfYjMyIGV4ZWNfbG8sIG0wCQkJCQkvL2Fzc3VtaW5nIGV4ZWNfbG8gaXMgbm90IG5lZWRlZCBhbnltb3JlIGZyb20gdGhpcyBwb2ludCBvbgotCQlzX21vdl9iMzIgbTAsIHNfbWVtX29mZnNldAotCQlzX2J1ZmZlcl9zdG9yZV9kd29yZCBzLCBzX3JzcmMsIG0wCQlnbGM6MQkKLQkJc19hZGRfdTMyCQlzX21lbV9vZmZzZXQsIHNfbWVtX29mZnNldCwgNAotCQlzX21vdl9iMzIJbTAsIGV4ZWNfbG8KLSAgICBlbHNpZiAodXNlX210YnVmKQotICAgICAgICB2X21vdl9iMzIJdjAsCXMKLSAgICAgICAgdGJ1ZmZlcl9zdG9yZV9mb3JtYXRfeCB2MCwgdjAsIHNfcnNyYywgc19tZW1fb2Zmc2V0IGZvcm1hdDpCVUZfTlVNX0ZPUk1BVF9GTE9BVCBmb3JtYXQ6IEJVRl9EQVRBX0ZPUk1BVF8zMiBzbGM6MSBnbGM6MQotCQlzX2FkZF91MzIJCXNfbWVtX29mZnNldCwgc19tZW1fb2Zmc2V0LCAxMjgKLSAgICBlbHNlIAotICAgICAgICB2X21vdl9iMzIJdjAsCXMKLQkJYnVmZmVyX3N0b3JlX2R3b3JkCXYwLCB2MCwgc19yc3JjLCBzX21lbV9vZmZzZXQJc2xjOjEgZ2xjOjEKLSAgICAgICAgc19hZGRfdTMyCQlzX21lbV9vZmZzZXQsIHNfbWVtX29mZnNldCwgMTI4Ci0JZW5kCiBlbmQKIAotZnVuY3Rpb24gd3JpdGVfc2dwcl90b19tZW1fd2F2ZTY0KHMsIHNfcnNyYywgc19tZW1fb2Zmc2V0LCB1c2Vfc3FjLCB1c2VfbXRidWYpCi0JaWYgKHVzZV9zcWMpCi0JCXNfbW92X2IzMiBleGVjX2xvLCBtMAkJCQkJLy9hc3N1bWluZyBleGVjX2xvIGlzIG5vdCBuZWVkZWQgYW55bW9yZSBmcm9tIHRoaXMgcG9pbnQgb24KLQkJc19tb3ZfYjMyIG0wLCBzX21lbV9vZmZzZXQKLQkJc19idWZmZXJfc3RvcmVfZHdvcmQgcywgc19yc3JjLCBtMAkJZ2xjOjEJCi0JCXNfYWRkX3UzMgkJc19tZW1fb2Zmc2V0LCBzX21lbV9vZmZzZXQsIDQKLQkJc19tb3ZfYjMyCW0wLCBleGVjX2xvCi0gICAgZWxzaWYgKHVzZV9tdGJ1ZikKLSAgICAgICAgdl9tb3ZfYjMyCXYwLAlzCi0gICAgICAgIHRidWZmZXJfc3RvcmVfZm9ybWF0X3ggdjAsIHYwLCBzX3JzcmMsIHNfbWVtX29mZnNldCBmb3JtYXQ6QlVGX05VTV9GT1JNQVRfRkxPQVQgZm9ybWF0OiBCVUZfREFUQV9GT1JNQVRfMzIgc2xjOjEgZ2xjOjEKLQkJc19hZGRfdTMyCQlzX21lbV9vZmZzZXQsIHNfbWVtX29mZnNldCwgMjU2Ci0gICAgZWxzZSAKLSAgICAgICAgdl9tb3ZfYjMyCXYwLAlzCi0JCWJ1ZmZlcl9zdG9yZV9kd29yZAl2MCwgdjAsIHNfcnNyYywgc19tZW1fb2Zmc2V0CXNsYzoxIGdsYzoxCi0gICAgICAgIHNfYWRkX3UzMgkJc19tZW1fb2Zmc2V0LCBzX21lbV9vZmZzZXQsIDI1NgotCWVuZAorZnVuY3Rpb24gd3JpdGVfaHdyZWdfdG9fbWVtKHMsIHNfcnNyYywgc19tZW1fb2Zmc2V0KQorCXNfbW92X2IzMglleGVjX2xvLCBtMAorCXNfbW92X2IzMgltMCwgc19tZW1fb2Zmc2V0CisJc19idWZmZXJfc3RvcmVfZHdvcmQJcywgc19yc3JjLCBtMCBnbGM6MQorCXNfYWRkX3UzMglzX21lbV9vZmZzZXQsIHNfbWVtX29mZnNldCwgNAorCXNfbW92X2IzMgltMCwgZXhlY19sbwogZW5kCiAKLWZ1bmN0aW9uIHJlYWRfc2dwcl9mcm9tX21lbV93YXZlMzIocywgc19yc3JjLCBzX21lbV9vZmZzZXQsIHVzZV9zcWMpCi0Jc19idWZmZXJfbG9hZF9kd29yZCBzLCBzX3JzcmMsIHNfbWVtX29mZnNldAkJZ2xjOjEKLQlpZiAodXNlX3NxYykKLQkJc19hZGRfdTMyCQlzX21lbV9vZmZzZXQsIHNfbWVtX29mZnNldCwgNAotCWVsc2UKLSAgICAgICAgc19hZGRfdTMyCQlzX21lbV9vZmZzZXQsIHNfbWVtX29mZnNldCwgMTI4Ci0JZW5kCisKK2Z1bmN0aW9uIHdyaXRlXzE2c2dwcl90b19tZW0ocywgc19yc3JjLCBzX21lbV9vZmZzZXQpCisJc19idWZmZXJfc3RvcmVfZHdvcmR4NAlzWzBdLCBzX3JzcmMsIDAgZ2xjOjEKKwlzX2J1ZmZlcl9zdG9yZV9kd29yZHg0CXNbNF0sIHNfcnNyYywgMTYgZ2xjOjEKKwlzX2J1ZmZlcl9zdG9yZV9kd29yZHg0CXNbOF0sIHNfcnNyYywgMzIgZ2xjOjEKKwlzX2J1ZmZlcl9zdG9yZV9kd29yZHg0CXNbMTJdLCBzX3JzcmMsIDQ4IGdsYzoxCisJc19hZGRfdTMyCXNfcnNyY1swXSwgc19yc3JjWzBdLCA0KjE2CisJc19hZGRjX3UzMglzX3JzcmNbMV0sIHNfcnNyY1sxXSwgMHgwCiBlbmQKIAotZnVuY3Rpb24gcmVhZF9zZ3ByX2Zyb21fbWVtX3dhdmU2NChzLCBzX3JzcmMsIHNfbWVtX29mZnNldCwgdXNlX3NxYykKLQlzX2J1ZmZlcl9sb2FkX2R3b3JkIHMsIHNfcnNyYywgc19tZW1fb2Zmc2V0CQlnbGM6MQotCWlmICh1c2Vfc3FjKQotCQlzX2FkZF91MzIJCXNfbWVtX29mZnNldCwgc19tZW1fb2Zmc2V0LCA0Ci0JZWxzZQotICAgICAgICBzX2FkZF91MzIJCXNfbWVtX29mZnNldCwgc19tZW1fb2Zmc2V0LCAyNTYKLQllbmQKK2Z1bmN0aW9uIHdyaXRlXzEyc2dwcl90b19tZW0ocywgc19yc3JjLCBzX21lbV9vZmZzZXQpCisJc19idWZmZXJfc3RvcmVfZHdvcmR4NAlzWzBdLCBzX3JzcmMsIDAgZ2xjOjEKKwlzX2J1ZmZlcl9zdG9yZV9kd29yZHg0CXNbNF0sIHNfcnNyYywgMTYgZ2xjOjEKKwlzX2J1ZmZlcl9zdG9yZV9kd29yZHg0CXNbOF0sIHNfcnNyYywgMzIgZ2xjOjEKKwlzX2FkZF91MzIJc19yc3JjWzBdLCBzX3JzcmNbMF0sIDQqMTIKKwlzX2FkZGNfdTMyCXNfcnNyY1sxXSwgc19yc3JjWzFdLCAweDAKIGVuZAogCisKK2Z1bmN0aW9uIHJlYWRfaHdyZWdfZnJvbV9tZW0ocywgc19yc3JjLCBzX21lbV9vZmZzZXQpCisJc19idWZmZXJfbG9hZF9kd29yZAlzLCBzX3JzcmMsIHNfbWVtX29mZnNldCBnbGM6MQorCXNfYWRkX3UzMglzX21lbV9vZmZzZXQsIHNfbWVtX29mZnNldCwgNAorZW5kCisKK2Z1bmN0aW9uIHJlYWRfMTZzZ3ByX2Zyb21fbWVtKHMsIHNfcnNyYywgc19tZW1fb2Zmc2V0KQorCXNfc3ViX3UzMglzX21lbV9vZmZzZXQsIHNfbWVtX29mZnNldCwgNCoxNgorCXNfYnVmZmVyX2xvYWRfZHdvcmR4MTYJcywgc19yc3JjLCBzX21lbV9vZmZzZXQgZ2xjOjEKK2VuZAorCitmdW5jdGlvbiByZWFkXzhzZ3ByX2Zyb21fbWVtKHMsIHNfcnNyYywgc19tZW1fb2Zmc2V0KQorCXNfc3ViX3UzMglzX21lbV9vZmZzZXQsIHNfbWVtX29mZnNldCwgNCo4CisJc19idWZmZXJfbG9hZF9kd29yZHg4CXMsIHNfcnNyYywgc19tZW1fb2Zmc2V0IGdsYzoxCitlbmQKKworZnVuY3Rpb24gcmVhZF80c2dwcl9mcm9tX21lbShzLCBzX3JzcmMsIHNfbWVtX29mZnNldCkKKwlzX3N1Yl91MzIJc19tZW1fb2Zmc2V0LCBzX21lbV9vZmZzZXQsIDQqNAorCXNfYnVmZmVyX2xvYWRfZHdvcmR4NAlzLCBzX3JzcmMsIHNfbWVtX29mZnNldCBnbGM6MQorZW5kCisKKworZnVuY3Rpb24gZ2V0X2xkc19zaXplX2J5dGVzKHNfbGRzX3NpemVfYnl0ZSkKKwlzX2dldHJlZ19iMzIJc19sZHNfc2l6ZV9ieXRlLCBod3JlZyhIV19SRUdfTERTX0FMTE9DLCBTUV9XQVZFX0xEU19BTExPQ19MRFNfU0laRV9TSElGVCwgU1FfV0FWRV9MRFNfQUxMT0NfTERTX1NJWkVfU0laRSkKKwlzX2xzaGxfYjMyCXNfbGRzX3NpemVfYnl0ZSwgc19sZHNfc2l6ZV9ieXRlLCA4CQkJLy9MRFMgc2l6ZSBpbiBkd29yZHMgPSBsZHNfc2l6ZSAqIDY0ICo0Qnl0ZXMgLy8gZ3JhbnVsYXJpdHkgNjREVworZW5kCisKK2Z1bmN0aW9uIGdldF92Z3ByX3NpemVfYnl0ZXMoc192Z3ByX3NpemVfYnl0ZSwgc19zaXplKQorCXNfZ2V0cmVnX2IzMglzX3ZncHJfc2l6ZV9ieXRlLCBod3JlZyhIV19SRUdfR1BSX0FMTE9DLFNRX1dBVkVfR1BSX0FMTE9DX1ZHUFJfU0laRV9TSElGVCxTUV9XQVZFX0dQUl9BTExPQ19WR1BSX1NJWkVfU0laRSkKKwlzX2FkZF91MzIJc192Z3ByX3NpemVfYnl0ZSwgc192Z3ByX3NpemVfYnl0ZSwgMQorCXNfbHNocl9iMzIJbTAsIHNfc2l6ZSwgU19XQVZFX1NJWkUKKwlzX2FuZF9iMzIJbTAsIG0wLCAxCisJc19jbXBfZXFfdTMyCW0wLCAxCisJc19jYnJhbmNoX3NjYzEJTF9FTkFCTEVfU0hJRlRfVzY0CisJc19sc2hsX2IzMglzX3ZncHJfc2l6ZV9ieXRlLCBzX3ZncHJfc2l6ZV9ieXRlLCAoMis3KQkJLy9OdW1iZXIgb2YgVkdQUnMgPSAodmdwcl9zaXplICsgMSkgKiA0ICogMzIgKiA0ICAgKG5vbi16ZXJvIHZhbHVlKQorCXNfYnJhbmNoCUxfU0hJRlRfRE9ORQorTF9FTkFCTEVfU0hJRlRfVzY0OgorCXNfbHNobF9iMzIJc192Z3ByX3NpemVfYnl0ZSwgc192Z3ByX3NpemVfYnl0ZSwgKDIrOCkJCS8vTnVtYmVyIG9mIFZHUFJzID0gKHZncHJfc2l6ZSArIDEpICogNCAqIDY0ICogNCAgIChub24temVybyB2YWx1ZSkKK0xfU0hJRlRfRE9ORToKK2VuZAorCitmdW5jdGlvbiBnZXRfc3ZncHJfc2l6ZV9ieXRlcyhzX3N2Z3ByX3NpemVfYnl0ZSkKKwlzX2dldHJlZ19iMzIJc19zdmdwcl9zaXplX2J5dGUsIGh3cmVnKEhXX1JFR19MRFNfQUxMT0MsU1FfV0FWRV9MRFNfQUxMT0NfVkdQUl9TSEFSRURfU0laRV9TSElGVCxTUV9XQVZFX0xEU19BTExPQ19WR1BSX1NIQVJFRF9TSVpFX1NJWkUpCisJc19sc2hsX2IzMglzX3N2Z3ByX3NpemVfYnl0ZSwgc19zdmdwcl9zaXplX2J5dGUsICgzKzcpCitlbmQKKworZnVuY3Rpb24gZ2V0X3NncHJfc2l6ZV9ieXRlcworCXJldHVybiA1MTIKK2VuZAorCitmdW5jdGlvbiBnZXRfaHdyZWdfc2l6ZV9ieXRlcworCXJldHVybiAxMjgKK2VuZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQvY3dzcl90cmFwX2hhbmRsZXJfZ2Z4OC5hc20gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jd3NyX3RyYXBfaGFuZGxlcl9nZng4LmFzbQppbmRleCBhNDdmNWI5Li5iMTk1YjdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jd3NyX3RyYXBfaGFuZGxlcl9nZng4LmFzbQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jd3NyX3RyYXBfaGFuZGxlcl9nZng4LmFzbQpAQCAtMjQsNzggKzI0LDYgQEAKICAqIFBST0pFQ1Q9dmkgLi9zcDMgY3dzcl90cmFwX2hhbmRsZXJfZ2Z4OC5hc20gLWhleCB0bXAuaGV4CiAgKi8KIAotLyogSFcgKFZJKSBzb3VyY2UgY29kZSBmb3IgQ1dTUiB0cmFwIGhhbmRsZXIgKi8KLS8qIFZlcnNpb24gMTggKyBtdWx0aXBsZSB0cmFwIGhhbmRsZXIgKi8KLQotLy8gdGhpcyBwZXJmb3JtYW5jZS1vcHRpbWFsIHZlcnNpb24gd2FzIG9yaWdpbmFsbHkgZnJvbSBTZXZlbiBYdSBhdCBTUkRDCi0KLS8vIFJldmlzb24gIzE4ICAgLS0uLi4KLS8qIFJldiBIaXN0b3J5Ci0qKiAjMS4gQnJhbmNoIGZyb20gZ2MgZHYuICAgLy9nZnhpcC9nZng4L21haW4vc3JjL3Rlc3Qvc3VpdGVzL2Jsb2NrL2NzL3NyL2NzX3RyYXBfaGFuZGxlci5zcDMjMSwjNTAsICM1MSwgIzUyLTUzKFNraXAsIEFscmVhZHkgRml4ZWQgYnkgUFYpLCAjNTQtNTYobWVyZ2VkKSwjNTctNTgobWVyZ2VyZCwgc2tpcGVkLWFscmVhZHkgZml4ZWQgYnkgUFYpCi0qKiAjNC4gU1IgTWVtb3J5IExheW91dDoKLSoqICAgICAgICAgICAgIDEuIFZHUFItU0dQUi1IV1JFRy17TERTfQotKiogICAgICAgICAgICAgMi4gdGJhX2hpLmJpdHMuMjYgLSByZWNvbmZpZ3VyZWQgYXMgdGhlIGZpcnN0IHdhdmUgaW4gdGcgYml0cywgZm9yIGRlZmVyIFNhdmUgTERTIGZvciBhIHRocmVhZGdyb3VwLi4gcGVyZm9ybWFuY2UgY29uY2Vybi4uCi0qKiAjNS4gVXBkYXRlOiAxLiBBY2N1cmF0ZSBnOHNyX3RzX3NhdmVfZCB0aW1lc3RhbXAKLSoqICM2LiBVcGRhdGU6IDEuIEZpeCBzX2JhcnJpZXIgdXNhZ2U7IDIuIFZHUFIgcy9yIHVzaW5nIHN3aXp6bGUgYnVmZmVyPyhOb05lZWQsIGFscmVhZHkgbWF0Y2hlZCB0aGUgc3dpenpsZSBwYXR0ZXJuLCBtb3JlIGludmVzdGlnYXRpb24pCi0qKiAjNy4gVXBkYXRlOiAxLiBkb24ndCBiYXJyaWVyIGlmIG5vTERTCi0qKiAjOC4gQnJhbmNoOiAxLiBCcmFuY2ggdG8gdmVyIzAsIHdoaWNoIGlzIHZlcnkgc2ltaWxhciB0byBnYyBkdiB2ZXJzaW9uCi0qKiAgICAgICAgICAgICAyLiBGaXggU1EgaXNzdWUgYnkgc19zbGVlcCAyCi0qKiAjOS4gVXBkYXRlOiAxLiBGaXggc2NjIHJlc3RvcmUgZmFpbGVkIGlzc3VlLCByZXN0b3JlIHdhdmVfc3RhdHVzIGF0IGxhc3QKLSoqICAgICAgICAgICAgIDIuIG9wdGltaXplIHNfYnVmZmVyIHNhdmUgYnkgYnVyc3QgMTZzZ3Bycy4uLgotKiogIzEwLiBVcGRhdGUgMS4gT3B0aW1pemUgcmVzdG9yZSBzZ3ByIGJ5IGJ1c3J0IDE2IHNncHJzLgotKiogIzExLiBVcGRhdGUgMS4gQWRkIDIgbW9yZSB0aW1lc3RhbXAgZm9yIGRlYnVnIHZlcnNpb24KLSoqICMxMi4gVXBkYXRlIDEuIEFkZCBWR1BSIFNSIHVzaW5nIERXeDQsIHNvbWUgY2FzZSBpbXByb3ZlIGFuZCBzb21lIGNhc2UgZHJvcCBwZXJmb3JtYW5jZQotKiogIzEzLiBJbnRlZyAgMS4gQWx3YXlzIHVzZSBNVUJVRiBmb3IgUFYgdHJhcCBzaGFkZXIuLi4KLSoqICMxNC4gVXBkYXRlIDEuIHNfYnVmZmVyX3N0b3JlIHNvZnQgY2xhdXNlLi4uCi0qKiAjMTUuIFVwZGF0ZSAxLiBQRVJGIC0gc2NsYXIgd3JpdGUgd2l0aCBnbGM6MC9tdHlwZTAgdG8gYWxsb3cgTDIgY29tYmluZS4gcGVyZiBpbXByb3ZlbWVudCBhIGxvdC4KLSoqICMxNi4gVXBkYXRlIDEuIFBSUkYgLSBVTlJPTEwgTERTX0RNQSBnb3QgMjUwMGN5Y2xlIHNhdmUgaW4gSVAgdHJlZQotKiogIzE3LiBVcGRhdGUgMS4gRlVOQyAtIExEU19ETUEgaGFzIGlzc3VlcyB3aGlsZSBBVEMsIHJlcGxhY2Ugd2l0aCBkc19yZWFkL2J1ZmZlcl9zdG9yZSBmb3Igc2F2ZSBwYXJ0W1RPRE8gcmVzdG9yZSBwYXJ0XQotKiogICAgICAgICAgICAgMi4gUEVSRiAtIFNhdmUgTERTIGJlZm9yZSBzYXZlIFZHUFIgdG8gY292ZXIgTERTIHNhdmUgbG9uZyBsYXRlbmN5Li4uCi0qKiAjMTguIFVwZGF0ZSAxLiBGVU5DIC0gSW1wbGljaXRseSBlc3RvcmUgU1RBVFVTLlZDQ1osIHdoaWNoIGlzIG5vdCB3cml0YWJsZSBieSBzX3NldHJlZ19iMzIKLSoqICAgICAgICAgICAgIDIuIEZVTkMgLSBIYW5kbGUgbm9uLUNXU1IgdHJhcHMKLSovCi0KLXZhciBHOFNSX1dETUVNX0hXUkVHX09GRlNFVCA9IDAKLXZhciBHOFNSX1dETUVNX1NHUFJfT0ZGU0VUICA9IDEyOCAgLy8gaW4gYnl0ZXMKLQotLy8gS2VlcCBkZWZpbml0aW9uIHNhbWUgYXMgdGhlIGFwcCBzaGFkZXIsIFRoZXNlIDIgdGltZSBzdGFtcHMgYXJlIHBhcnQgb2YgdGhlIGFwcCBzaGFkZXIuLi4gU2hvdWxkIGJlZm9yZSBhbnkgU2F2ZSBhbmQgYWZ0ZXIgcmVzdG9yZS4KLQotdmFyIEc4U1JfREVCVUdfVElNRVNUQU1QID0gMAotdmFyIEc4U1JfREVCVUdfVFNfU0FWRV9EX09GRlNFVCA9IDQwKjQgIC8vIHRzX3NhdmVfZCB0aW1lc3RhbXAgb2Zmc2V0IHJlbGF0aXZlIHRvIFNHUFJfU1JfbWVtb3J5X29mZnNldAotdmFyIHNfZzhzcl90c19zYXZlX3MgICAgPSBzWzM0OjM1XSAgIC8vIHNhdmUgc3RhcnQKLXZhciBzX2c4c3JfdHNfc3Ffc2F2ZV9tc2cgID0gc1szNjozN10gICAvLyBUaGUgc2F2ZSBzaGFkZXIgc2VuZCBTQVZFV0FWRSBtc2cgdG8gc3BpCi12YXIgc19nOHNyX3RzX3NwaV93cmV4ZWMgICA9IHNbMzg6MzldICAgLy8gdGhlIFNQSSB3cml0ZSB0aGUgc3IgYWRkcmVzcyB0byBTUQotdmFyIHNfZzhzcl90c19zYXZlX2QgICAgPSBzWzQwOjQxXSAgIC8vIHNhdmUgZW5kCi12YXIgc19nOHNyX3RzX3Jlc3RvcmVfcyA9IHNbNDI6NDNdICAgLy8gcmVzdG9yZSBzdGFydAotdmFyIHNfZzhzcl90c19yZXN0b3JlX2QgPSBzWzQ0OjQ1XSAgIC8vIHJlc3RvcmUgZW5kCi0KLXZhciBHOFNSX1ZHUFJfU1JfSU5fRFdYNCA9IDAKLXZhciBHOFNSX1NBVkVfQlVGX1JTUkNfV09SRDFfU1RSSURFX0RXeDQgPSAweDAwMTAwMDAwICAgIC8vIERXeDQgc3RyaWRlIGlzIDQqNEJ5dGVzCi12YXIgRzhTUl9SRVNUT1JFX0JVRl9SU1JDX1dPUkQxX1NUUklERV9EV3g0ICA9IEc4U1JfU0FWRV9CVUZfUlNSQ19XT1JEMV9TVFJJREVfRFd4NAotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogICAgICAgICAgICAgICAgICBjb250cm9sIG9uIGhvdyB0byBydW4gdGhlIHNoYWRlciAgICAgICAgICAgICAgICAgICAgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8vYW55IGhhY2sgdGhhdCBuZWVkcyB0byBiZSBtYWRlIHRvIHJ1biB0aGlzIGNvZGUgaW4gRU1VIChlaXRoZXIgYmVjYXVzZSB2YXJpb3VzIEVNVSBjb2RlIGFyZSBub3QgcmVhZHkgb3Igbm8gY29tcHV0ZSBzYXZlICYgcmVzdG9yZSBpbiBFTVUgcnVuKQotdmFyIEVNVV9SVU5fSEFDSyAgICAgICAgICAgICAgICAgICAgPSAgIDAKLXZhciBFTVVfUlVOX0hBQ0tfUkVTVE9SRV9OT1JNQUwgICAgID0gICAwCi12YXIgRU1VX1JVTl9IQUNLX1NBVkVfTk9STUFMX0VYSVQgICA9ICAgMAotdmFyIEVNVV9SVU5fSEFDS19TQVZFX1NJTkdMRV9XQVZFICAgPSAgIDAKLXZhciBFTVVfUlVOX0hBQ0tfU0FWRV9GSVJTVF9USU1FICAgID0gICAwICAgICAgICAgICAgICAgICAgIC8vZm9yIGludGVycnVwdGVkIHJlc3RvcmUgaW4gd2hpY2ggdGhlIGZpcnN0IHNhdmUgaXMgdGhyb3VnaCBFTVVfUlVOX0hBQ0sKLXZhciBFTVVfUlVOX0hBQ0tfU0FWRV9GSVJTVF9USU1FX1RCQV9MTyA9ICAgMCAgICAgICAgICAgICAgICAgICAvL2ZvciBpbnRlcnJ1cHRlZCByZXN0b3JlIGluIHdoaWNoIHRoZSBmaXJzdCBzYXZlIGlzIHRocm91Z2ggRU1VX1JVTl9IQUNLCi12YXIgRU1VX1JVTl9IQUNLX1NBVkVfRklSU1RfVElNRV9UQkFfSEkgPSAgIDAgICAgICAgICAgICAgICAgICAgLy9mb3IgaW50ZXJydXB0ZWQgcmVzdG9yZSBpbiB3aGljaCB0aGUgZmlyc3Qgc2F2ZSBpcyB0aHJvdWdoIEVNVV9SVU5fSEFDSwotdmFyIFNBVkVfTERTICAgICAgICAgICAgICAgICAgICAgICAgPSAgIDEKLXZhciBXR19CQVNFX0FERFJfTE8gICAgICAgICAgICAgICAgID0gICAweDkwMDBhMDAwCi12YXIgV0dfQkFTRV9BRERSX0hJICAgICAgICAgICAgICAgICA9ICAgMHgwCi12YXIgV0FWRV9TUEFDRSAgICAgICAgICAgICAgICAgICAgICA9ICAgMHg1MDAwICAgICAgICAgICAgICAvL21lbW9yeSBzaXplIHRoYXQgZWFjaCB3YXZlIG9jY3VwaWVzIGluIHdvcmtncm91cCBzdGF0ZSBtZW0KLXZhciBDVFhfU0FWRV9DT05UUk9MICAgICAgICAgICAgICAgID0gICAweDAKLXZhciBDVFhfUkVTVE9SRV9DT05UUk9MICAgICAgICAgICAgID0gICBDVFhfU0FWRV9DT05UUk9MCi12YXIgU0lNX1JVTl9IQUNLICAgICAgICAgICAgICAgICAgICA9ICAgMCAgICAgICAgICAgICAgICAgICAvL2FueSBoYWNrIHRoYXQgbmVlZHMgdG8gYmUgbWFkZSB0byBydW4gdGhpcyBjb2RlIGluIFNJTSAoZWl0aGVyIGJlY2F1c2UgdmFyaW91cyBSVEwgY29kZSBhcmUgbm90IHJlYWR5IG9yIG5vIGNvbXB1dGUgc2F2ZSAmIHJlc3RvcmUgaW4gUlRMIHJ1bikKLXZhciBTR1BSX1NBVkVfVVNFX1NRQyAgICAgICAgICAgICAgID0gICAxICAgICAgICAgICAgICAgICAgIC8vdXNlIFNRQyBEJCB0byBkbyB0aGUgd3JpdGUKLXZhciBVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRiAgICAgID0gICAwICAgICAgICAgICAgICAgICAgIC8vYmVjYXVzZSBUQyBFTVUgY3VycmVudGx5IGFzc2VydHMgb24gMCBvZiAvLyBvdmVybG9hZCBERk1UIGZpZWxkIHRvIGNhcnJ5IDQgbW9yZSBiaXRzIG9mIHN0cmlkZSBmb3IgTVVCVUYgb3Bjb2RlcwotdmFyIFNXSVpaTEVfRU4gICAgICAgICAgICAgICAgICAgICAgPSAgIDAgICAgICAgICAgICAgICAgICAgLy93aGV0aGVyIHdlIHVzZSBzd2l6emxlZCBidWZmZXIgYWRkcmVzc2luZwotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0yMjYsMTYgKzE1NCw3IEBACiAgIHR5cGUoQ1MpCiAKIAotICAgIGlmICgoRU1VX1JVTl9IQUNLKSAmJiAoIUVNVV9SVU5fSEFDS19SRVNUT1JFX05PUk1BTCkpICAgICAgICAgICAgICAgICAgIC8vaGFjayB0byB1c2UgdHJhcF9pZCBmb3IgZGV0ZXJtaW5pbmcgc2F2ZS9yZXN0b3JlCi0gICAgICAgIC8vRklYTUUgVkNDWiB1bi1pbml0IGFzc2VydGlvbiBzX2dldHJlZ19iMzIgICAgIHNfc2F2ZV9zdGF0dXMsIGh3cmVnKEhXX1JFR19TVEFUVVMpICAgICAgICAgLy9zYXZlIFNUQVRVUyBzaW5jZSB3ZSB3aWxsIGNoYW5nZSBTQ0MKLSAgICAgICAgc19hbmRfYjMyIHNfc2F2ZV90bXAsIHNfc2F2ZV9wY19oaSwgMHhmZmZmMDAwMCAgICAgICAgICAgICAgLy9jaGFuZ2UgU0NDCi0gICAgICAgIHNfY21wX2VxX3UzMiBzX3NhdmVfdG1wLCAweDAwN2UwMDAwICAgICAgICAgICAgICAgICAgICAgICAgIC8vU2F2ZTogdHJhcF9pZCA9IDB4N2UuIFJlc3RvcmU6IHRyYXBfaWQgPSAweDdmLgotICAgICAgICBzX2NicmFuY2hfc2NjMCBMX0pVTVBfVE9fUkVTVE9SRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2RvIG5vdCBuZWVkIHRvIHJlY292ZXIgU1RBVFVTIGhlcmUgIHNpbmNlIHdlIGFyZSBnb2luZyB0byBSRVNUT1JFCi0gICAgICAgIC8vRklYTUUgIHNfc2V0cmVnX2IzMiAgIGh3cmVnKEhXX1JFR19TVEFUVVMpLCAgIHNfc2F2ZV9zdGF0dXMgICAgICAgLy9uZWVkIHRvIHJlY292ZXIgU1RBVFVTIHNpbmNlIHdlIGFyZSBnb2luZyB0byBTQVZFCi0gICAgICAgIHNfYnJhbmNoIExfU0tJUF9SRVNUT1JFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTk9UIHJlc3RvcmUsIFNBVkUgYWN0dWFsbHkKLSAgICBlbHNlCiAgICAgICAgIHNfYnJhbmNoIExfU0tJUF9SRVNUT1JFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTk9UIHJlc3RvcmUuIG1pZ2h0IGJlIGEgcmVndWxhciB0cmFwIG9yIHNhdmUKLSAgICBlbmQKIAogTF9KVU1QX1RPX1JFU1RPUkU6CiAgICAgc19icmFuY2ggTF9SRVNUT1JFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vcmVzdG9yZQpAQCAtMjQ5LDcgKzE2OCw3IEBACiAgICAgc19jYnJhbmNoX3NjYzEgIExfU0FWRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIGlzIHRoZSBvcGVyYXRpb24gZm9yIHNhdmUKIAogICAgIC8vICoqKioqKioqKiAgICBIYW5kbGUgbm9uLUNXU1IgdHJhcHMgICAgICAgKioqKioqKioqKioqKioqKioqKgotaWYgKCFFTVVfUlVOX0hBQ0spCisKICAgICAvKiByZWFkIHRiYSBhbmQgdG1hIGZvciBuZXh0IGxldmVsIHRyYXAgaGFuZGxlciwgdHRtcDQgaXMgdXNlZCBhcyBzX3NhdmVfc3RhdHVzICovCiAgICAgc19sb2FkX2R3b3JkeDQgIFt0dG1wOCx0dG1wOSx0dG1wMTAsIHR0bXAxMV0sIFt0bWFfbG8sdG1hX2hpXSwgMAogICAgIHNfd2FpdGNudCBsZ2ttY250KDApCkBAIC0yNjgsNyArMTg3LDcgQEAKICAgICBzX2FuZF9iMzIgICB0dG1wMSwgdHRtcDEsIDB4RkZGRgogICAgIHNldF9zdGF0dXNfd2l0aG91dF9zcGlfcHJpbyhzX3NhdmVfc3RhdHVzLCB0dG1wMikgLy9yZXN0b3JlIEhXIHN0YXR1cyhTQ0MpCiAgICAgc19yZmVfYjY0ICAgICAgIFt0dG1wMCwgdHRtcDFdCi1lbmQKKwogICAgIC8vICoqKioqKioqKiAgICAgICAgRW5kIGhhbmRsaW5nIG9mIG5vbi1DV1NSIHRyYXBzICAgKioqKioqKioqKioqKioqKioqKgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0yNzYsMTIgKzE5NSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIExfU0FWRToKLQotaWYgRzhTUl9ERUJVR19USU1FU1RBTVAKLSAgICAgICAgc19tZW1yZWFsdGltZSAgIHNfZzhzcl90c19zYXZlX3MKLSAgICAgICAgc193YWl0Y250IGxna21jbnQoMCkgICAgICAgICAvL0ZJWE1FLCB3aWxsIGNhdXNlIHhuYWNrPz8KLWVuZAotCiAgICAgc19tb3ZfYjMyICAgICAgIHNfc2F2ZV90bXAsIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY2xlYXIgc2F2ZUN0eCBiaXQKICAgICBzX3NldHJlZ19iMzIgICAgaHdyZWcoSFdfUkVHX1RSQVBTVFMsIFNRX1dBVkVfVFJBUFNUU19TQVZFQ1RYX1NISUZULCAxKSwgc19zYXZlX3RtcCAgICAgLy9jbGVhciBzYXZlQ3R4IGJpdAogCkBAIC0zMDMsMTYgKzIxNiw3IEBACiAgICAgc19tb3ZfYjMyICAgICAgIHNfc2F2ZV9leGVjX2hpLCBleGVjX2hpCiAgICAgc19tb3ZfYjY0ICAgICAgIGV4ZWMsICAgMHgwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY2xlYXIgRVhFQyB0byBnZXQgcmVhZHkgdG8gcmVjZWl2ZQogCi1pZiBHOFNSX0RFQlVHX1RJTUVTVEFNUAotICAgICAgICBzX21lbXJlYWx0aW1lICBzX2c4c3JfdHNfc3Ffc2F2ZV9tc2cKLSAgICAgICAgc193YWl0Y250IGxna21jbnQoMCkKLWVuZAotCi0gICAgaWYgKEVNVV9SVU5fSEFDSykKLQotICAgIGVsc2UKICAgICAgICAgc19zZW5kbXNnICAgc2VuZG1zZyhNU0dfU0FWRVdBVkUpICAvL3NlbmQgU1BJIGEgbWVzc2FnZSBhbmQgd2FpdCBmb3IgU1BJJ3Mgd3JpdGUgdG8gRVhFQwotICAgIGVuZAogCiAgICAgLy8gU2V0IFNQSV9QUklPPTIgdG8gYXZvaWQgc3RhcnZpbmcgaW5zdHJ1Y3Rpb24gZmV0Y2ggaW4gdGhlIHdhdmVzIHdlJ3JlIHdhaXRpbmcgZm9yLgogICAgIHNfb3JfYjMyIHNfc2F2ZV90bXAsIHNfc2F2ZV9zdGF0dXMsICgyIDw8IFNRX1dBVkVfU1RBVFVTX1NQSV9QUklPX1NISUZUKQpAQCAtMzIxLDM2ICsyMjUsOSBAQAogICBMX1NMRUVQOgogICAgIHNfc2xlZXAgMHgyICAgICAgICAgICAgICAgIC8vIHNsZWVwIDEgKDY0Y2xrKSBpcyBub3QgZW5vdWdoIGZvciA4IHdhdmVzIHBlciBTSU1ELCB3aGljaCB3aWxsIGNhdXNlIFNRIGhhbmcsIHNpbmNlIHRoZSA3LDh0aCB3YXZlIGNvdWxkIG5vdCBnZXQgYXJiaXQgdG8gZXhlYyBpbnN0LCB3aGlsZSBvdGhlciB3YXZlcyBhcmUgc3R1Y2sgaW50byB0aGUgc2xlZXAtbG9vcCBhbmQgd2FpdGluZyBmb3Igd3JleGVjIT0wCiAKLSAgICBpZiAoRU1VX1JVTl9IQUNLKQotCi0gICAgZWxzZQogICAgICAgICBzX2NicmFuY2hfZXhlY3ogTF9TTEVFUAotICAgIGVuZAotCi1pZiBHOFNSX0RFQlVHX1RJTUVTVEFNUAotICAgICAgICBzX21lbXJlYWx0aW1lICBzX2c4c3JfdHNfc3BpX3dyZXhlYwotICAgICAgICBzX3dhaXRjbnQgbGdrbWNudCgwKQotZW5kCiAKICAgICAvKiAgICAgIHNldHVwIFJlc291cmNlIENvbnRhbnRzICAgICovCi0gICAgaWYgKChFTVVfUlVOX0hBQ0spICYmICghRU1VX1JVTl9IQUNLX1NBVkVfU0lOR0xFX1dBVkUpKQotICAgICAgICAvL2NhbGN1bGF0ZSB3ZF9hZGRyIHVzaW5nIGFic29sdXRlIHRocmVhZCBpZAotICAgICAgICB2X3JlYWRsYW5lX2IzMiBzX3NhdmVfdG1wLCB2OSwgMAotICAgICAgICBzX2xzaHJfYjMyIHNfc2F2ZV90bXAsIHNfc2F2ZV90bXAsIDYKLSAgICAgICAgc19tdWxfaTMyIHNfc2F2ZV90bXAsIHNfc2F2ZV90bXAsIFdBVkVfU1BBQ0UKLSAgICAgICAgc19hZGRfaTMyIHNfc2F2ZV9zcGlfaW5pdF9sbywgc19zYXZlX3RtcCwgV0dfQkFTRV9BRERSX0xPCi0gICAgICAgIHNfbW92X2IzMiBzX3NhdmVfc3BpX2luaXRfaGksIFdHX0JBU0VfQUREUl9ISQotICAgICAgICBzX2FuZF9iMzIgc19zYXZlX3NwaV9pbml0X2hpLCBzX3NhdmVfc3BpX2luaXRfaGksIENUWF9TQVZFX0NPTlRST0wKLSAgICBlbHNlCi0gICAgZW5kCi0gICAgaWYgKChFTVVfUlVOX0hBQ0spICYmIChFTVVfUlVOX0hBQ0tfU0FWRV9TSU5HTEVfV0FWRSkpCi0gICAgICAgIHNfYWRkX2kzMiBzX3NhdmVfc3BpX2luaXRfbG8sIHNfc2F2ZV90bXAsIFdHX0JBU0VfQUREUl9MTwotICAgICAgICBzX21vdl9iMzIgc19zYXZlX3NwaV9pbml0X2hpLCBXR19CQVNFX0FERFJfSEkKLSAgICAgICAgc19hbmRfYjMyIHNfc2F2ZV9zcGlfaW5pdF9oaSwgc19zYXZlX3NwaV9pbml0X2hpLCBDVFhfU0FWRV9DT05UUk9MCi0gICAgZWxzZQotICAgIGVuZAotCi0KICAgICBzX21vdl9iMzIgICAgICAgc19zYXZlX2J1Zl9yc3JjMCwgICBzX3NhdmVfc3BpX2luaXRfbG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Jhc2VfYWRkcl9sbwogICAgIHNfYW5kX2IzMiAgICAgICBzX3NhdmVfYnVmX3JzcmMxLCAgIHNfc2F2ZV9zcGlfaW5pdF9oaSwgMHgwMDAwRkZGRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vYmFzZV9hZGRyX2hpCiAgICAgc19vcl9iMzIgICAgICAgIHNfc2F2ZV9idWZfcnNyYzEsICAgc19zYXZlX2J1Zl9yc3JjMSwgIFNfU0FWRV9CVUZfUlNSQ19XT1JEMV9TVFJJREUKQEAgLTM4MywyMiArMjYwLDEwIEBACiAKIAogICAgIHNfbW92X2IzMiAgICAgICBzX3NhdmVfYnVmX3JzcmMyLCAweDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9OVU1fUkVDT1JEUyAgIGluIGJ5dGVzCi0gICAgaWYgKFNXSVpaTEVfRU4pCi0gICAgICAgIHNfYWRkX3UzMiAgICAgICBzX3NhdmVfYnVmX3JzcmMyLCBzX3NhdmVfYnVmX3JzcmMyLCAweDAgICAgICAgICAgICAgICAgICAgICAvL0ZJWE1FIG5lZWQgdG8gdXNlIHN3aXp6bGUgdG8gZW5hYmxlIGJvdW5kcyBjaGVja2luZz8KLSAgICBlbHNlCiAgICAgICAgIHNfbW92X2IzMiAgICAgICBzX3NhdmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0gICAgZW5kCiAKIAogICAgIHdyaXRlX2h3cmVnX3RvX21lbShzX3NhdmVfbTAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KSAgICAgICAgICAgICAgICAgIC8vTTAKLQotICAgIGlmICgoRU1VX1JVTl9IQUNLKSAmJiAoRU1VX1JVTl9IQUNLX1NBVkVfRklSU1RfVElNRSkpCi0gICAgICAgIHNfYWRkX3UzMiBzX3NhdmVfcGNfbG8sIHNfc2F2ZV9wY19sbywgNCAgICAgICAgICAgICAvL3BjWzMxOjBdKzQKLSAgICAgICAgc19hZGRjX3UzMiBzX3NhdmVfcGNfaGksIHNfc2F2ZV9wY19oaSwgMHgwICAgICAgICAgIC8vY2FycnkgYml0IG92ZXIKLSAgICAgICAgc19tb3ZfYjMyICAgdGJhX2xvLCBFTVVfUlVOX0hBQ0tfU0FWRV9GSVJTVF9USU1FX1RCQV9MTwotICAgICAgICBzX21vdl9iMzIgICB0YmFfaGksIEVNVV9SVU5fSEFDS19TQVZFX0ZJUlNUX1RJTUVfVEJBX0hJCi0gICAgZW5kCi0KICAgICB3cml0ZV9od3JlZ190b19tZW0oc19zYXZlX3BjX2xvLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCkgICAgICAgICAgICAgICAgICAgLy9QQwogICAgIHdyaXRlX2h3cmVnX3RvX21lbShzX3NhdmVfcGNfaGksIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQogICAgIHdyaXRlX2h3cmVnX3RvX21lbShzX3NhdmVfZXhlY19sbywgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQpICAgICAgICAgICAgIC8vRVhFQwpAQCAtNDQwLDE4ICszMDUsOCBAQAogICAgIHNfYWRkX3UzMiAgICAgICBzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDEKICAgICBzX2xzaGxfYjMyICAgICAgc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCA0ICAgICAgICAgICAgICAgICAgICAgICAgIC8vTnVtYmVyIG9mIFNHUFJzID0gKHNncHJfc2l6ZSArIDEpICogMTYgICAobm9uLXplcm8gdmFsdWUpCiAKLSAgICBpZiAoU0dQUl9TQVZFX1VTRV9TUUMpCiAgICAgICAgIHNfbHNobF9iMzIgICAgICBzX3NhdmVfYnVmX3JzcmMyLCAgIHNfc2F2ZV9hbGxvY19zaXplLCAyICAgICAgICAgICAgICAgICAgICAvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0gICAgZWxzZQotICAgICAgICBzX2xzaGxfYjMyICAgICAgc19zYXZlX2J1Zl9yc3JjMiwgICBzX3NhdmVfYWxsb2Nfc2l6ZSwgOCAgICAgICAgICAgICAgICAgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcyAoNjQgdGhyZWFkcykKLSAgICBlbmQKLQotICAgIGlmIChTV0laWkxFX0VOKQotICAgICAgICBzX2FkZF91MzIgICAgICAgc19zYXZlX2J1Zl9yc3JjMiwgc19zYXZlX2J1Zl9yc3JjMiwgMHgwICAgICAgICAgICAgICAgICAgICAgLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0gICAgZWxzZQogICAgICAgICBzX21vdl9iMzIgICAgICAgc19zYXZlX2J1Zl9yc3JjMiwgIDB4MTAwMDAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAotCiAKICAgICAvLyBiYWNrdXAgc19zYXZlX2J1Zl9yc3JjMCwxIHRvIHNfc2F2ZV9wY19sby9oaSwgc2luY2Ugd3JpdGVfMTZzZ3ByX3RvX21lbSBmdW5jdGlvbiB3aWxsIGNoYW5nZSB0aGUgcnNyYzAKICAgICAvL3NfbW92X2I2NCBzX3NhdmVfcGNfbG8sIHNfc2F2ZV9idWZfcnNyYzAKQEAgLTQ5MCwzMCArMzQ1LDE0IEBACiAgICAgc19tb3ZfYjMyICAgICAgIGV4ZWNfbG8sIDB4RkZGRkZGRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL25lZWQgZXZlcnkgdGhyZWFkIGZyb20gbm93IG9uCiAgICAgc19tb3ZfYjMyICAgICAgIGV4ZWNfaGksIDB4RkZGRkZGRkYKIAotICAgIGlmIChTV0laWkxFX0VOKQotICAgICAgICBzX2FkZF91MzIgICAgICAgc19zYXZlX2J1Zl9yc3JjMiwgc19zYXZlX2J1Zl9yc3JjMiwgMHgwICAgICAgICAgICAgICAgICAgICAgLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0gICAgZWxzZQogICAgICAgICBzX21vdl9iMzIgICAgICAgc19zYXZlX2J1Zl9yc3JjMiwgIDB4MTAwMDAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAotCiAKICAgICAvLyBWR1BSIEFsbG9jYXRlZCBpbiA0LUdQUiBncmFudWxhcml0eQogCi1pZiBHOFNSX1ZHUFJfU1JfSU5fRFdYNAotICAgICAgICAvLyB0aGUgY29uc3Qgc3RyaWRlIGZvciBEV3g0IGlzIDQqNCBieXRlcwotICAgICAgICBzX2FuZF9iMzIgc19zYXZlX2J1Zl9yc3JjMSwgc19zYXZlX2J1Zl9yc3JjMSwgMHgwMDAwRkZGRiAgIC8vIHJlc2V0IGNvbnN0IHN0cmlkZSB0byAwCi0gICAgICAgIHNfb3JfYjMyICBzX3NhdmVfYnVmX3JzcmMxLCBzX3NhdmVfYnVmX3JzcmMxLCBHOFNSX1NBVkVfQlVGX1JTUkNfV09SRDFfU1RSSURFX0RXeDQgIC8vIGNvbnN0IHN0cmlkZSB0byA0KjQgYnl0ZXMKLQotICAgICAgICBidWZmZXJfc3RvcmVfZHdvcmR4NCB2MCwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxCi0KLSAgICAgICAgc19hbmRfYjMyIHNfc2F2ZV9idWZfcnNyYzEsIHNfc2F2ZV9idWZfcnNyYzEsIDB4MDAwMEZGRkYgICAvLyByZXNldCBjb25zdCBzdHJpZGUgdG8gMAotICAgICAgICBzX29yX2IzMiAgc19zYXZlX2J1Zl9yc3JjMSwgc19zYXZlX2J1Zl9yc3JjMSwgU19TQVZFX0JVRl9SU1JDX1dPUkQxX1NUUklERSAgLy8gcmVzZXQgY29uc3Qgc3RyaWRlIHRvIDQgYnl0ZXMKLWVsc2UKICAgICAgICAgYnVmZmVyX3N0b3JlX2R3b3JkIHYwLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEKICAgICAgICAgYnVmZmVyX3N0b3JlX2R3b3JkIHYxLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgIG9mZnNldDoyNTYKICAgICAgICAgYnVmZmVyX3N0b3JlX2R3b3JkIHYyLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgIG9mZnNldDoyNTYqMgogICAgICAgICBidWZmZXJfc3RvcmVfZHdvcmQgdjMsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSAgb2Zmc2V0OjI1NiozCi1lbmQKIAogCiAKQEAgLTU0OSw2NCArMzg4LDEwIEBACiAgICAgc19hZGRfdTMyIHNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgZ2V0X2h3cmVnX3NpemVfYnl0ZXMoKQogCiAKLSAgICBpZiAoU1dJWlpMRV9FTikKLSAgICAgICAgc19hZGRfdTMyICAgICAgIHNfc2F2ZV9idWZfcnNyYzIsIHNfc2F2ZV9idWZfcnNyYzIsIDB4MCAgICAgICAvL0ZJWE1FIG5lZWQgdG8gdXNlIHN3aXp6bGUgdG8gZW5hYmxlIGJvdW5kcyBjaGVja2luZz8KLSAgICBlbHNlCiAgICAgICAgIHNfbW92X2IzMiAgICAgICBzX3NhdmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwICAgICAgICAgICAgICAgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAotCiAgICAgc19tb3ZfYjMyICAgICAgIG0wLCAweDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbGRzX29mZnNldCBpbml0aWFsIHZhbHVlID0gMAogCiAKLXZhciBMRFNfRE1BX0VOQUJMRSA9IDAKLXZhciBVTlJPTEwgPSAwCi1pZiBVTlJPTEw9PTAgJiYgTERTX0RNQV9FTkFCTEU9PTEKLSAgICAgICAgc19tb3ZfYjMyICBzMywgMjU2KjIKLSAgICAgICAgc19ub3AgMAotICAgICAgICBzX25vcCAwCi0gICAgICAgIHNfbm9wIDAKLSAgTF9TQVZFX0xEU19MT09QOgotICAgICAgICAvL1RPRE86IGxvb2tzIHRoZSAyIGJ1ZmZlcl9zdG9yZS9sb2FkIGNsYXVzZSBmb3Igcy9yIHdpbGwgaHVydCBwZXJmb3JtYW5jZS4/Pz8KLSAgICBpZiAoU0FWRV9MRFMpICAgICAvL1NQSSBhbHdheXMgYWxsb2MgTERTIHNwYWNlIGluIDEyOERXIGdyYW51bGFyaXR5Ci0gICAgICAgICAgICBidWZmZXJfc3RvcmVfbGRzX2R3b3JkIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IGxkczoxICAgICAgICAgICAgLy8gZmlyc3QgNjREVwotICAgICAgICAgICAgYnVmZmVyX3N0b3JlX2xkc19kd29yZCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBsZHM6MSBvZmZzZXQ6MjU2IC8vIHNlY29uZCA2NERXCi0gICAgZW5kCi0KLSAgICBzX2FkZF91MzIgICAgICAgbTAsIG0wLCBzMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZXZlcnkgYnVmZmVyX3N0b3JlX2xkcyBkb2VzIDI1NiBieXRlcwotICAgIHNfYWRkX3UzMiAgICAgICBzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX21lbV9vZmZzZXQsIHMzICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbWVtIG9mZnNldCBpbmNyZWFzZWQgYnkgMjU2IGJ5dGVzCi0gICAgc19jbXBfbHRfdTMyICAgIG0wLCBzX3NhdmVfYWxsb2Nfc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zY2M9KG0wIDwgc19zYXZlX2FsbG9jX3NpemUpID8gMSA6IDAKLSAgICBzX2NicmFuY2hfc2NjMSAgTF9TQVZFX0xEU19MT09QICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0xEUyBzYXZlIGlzIGNvbXBsZXRlPwotCi1lbHNpZiBMRFNfRE1BX0VOQUJMRT09MSAmJiBVTlJPTEw9PTEgLy8gVU5ST09MICAsIGhhcyBpY2hhY2UgbWlzcwotICAgICAgLy8gc3RvcmUgZnJvbSBoaWdlc3QgTERTIGFkZHJlc3MgdG8gbG93ZXN0Ci0gICAgICBzX21vdl9iMzIgIHMzLCAyNTYqMgotICAgICAgc19zdWJfdTMyICBtMCwgc19zYXZlX2FsbG9jX3NpemUsIHMzCi0gICAgICBzX2FkZF91MzIgc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBtMAotICAgICAgc19sc2hyX2IzMiBzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDkgICAvLyBob3cgbWFueSAxMjggdHJ1bmtzLi4uCi0gICAgICBzX3N1Yl91MzIgc19zYXZlX2FsbG9jX3NpemUsIDEyOCwgc19zYXZlX2FsbG9jX3NpemUgICAvLyBzdG9yZSBmcm9tIGhpZ2hlc2V0IGFkZHIgdG8gbG93ZXN0Ci0gICAgICBzX211bF9pMzIgc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCA2KjQgICAvLyBQQyBvZmZzZXQgaW5jcmVtZW50LCAgZWFjaCBMRFMgc2F2ZSBibG9jayBjb3N0IDYqNCBCeXRlcyBpbnN0cnVjdGlvbgotICAgICAgc19hZGRfdTMyIHNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMyo0ICAgLy8yaXMgdGhlIGJlbG93IDIgaW5zdC4uLi8vc19hZGRjIGFuZCBzX3NldHBjCi0gICAgICBzX25vcCAwCi0gICAgICBzX25vcCAwCi0gICAgICBzX25vcCAwICAgLy9wYWQgMyBkdyB0byBsZXQgTERTX0RNQSBhbGlnbiB3aXRoIDY0Qnl0ZXMKLSAgICAgIHNfZ2V0cGNfYjY0IHNbMDoxXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldXNlIHNbMDoxXSwgc2luY2Ugc1swOjFdIGFscmVhZHkgc2F2ZWQKLSAgICAgIHNfYWRkX3UzMiAgIHMwLCBzMCxzX3NhdmVfYWxsb2Nfc2l6ZQotICAgICAgc19hZGRjX3UzMiAgczEsIHMxLCAwCi0gICAgICBzX3NldHBjX2I2NCBzWzA6MV0KLQotCi0gICAgICAgZm9yIHZhciBpID0wOyBpPCAxMjg7IGkrKwotICAgICAgICAgICAgLy8gYmUgY2FyZWZ1bCB0byBtYWtlIGhlcmUgYSA2NEJ5dGUgYWxpZ25lZCBhZGRyZXNzLCB3aGljaCBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLi4uCi0gICAgICAgICAgICBidWZmZXJfc3RvcmVfbGRzX2R3b3JkIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IGxkczoxIG9mZnNldDowICAgICAgICAgICAvLyBmaXJzdCA2NERXCi0gICAgICAgICAgICBidWZmZXJfc3RvcmVfbGRzX2R3b3JkIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IGxkczoxIG9mZnNldDoyNTYgICAgICAgICAgIC8vIHNlY29uZCA2NERXCi0KLSAgICAgICAgaWYgaSE9MTI3Ci0gICAgICAgIHNfc3ViX3UzMiAgbTAsIG0wLCBzMyAgICAgIC8vIHVzZSBhIHNncHIgdG8gc2hyaW5rIDJEVy1pbnN0IHRvIDFEVyBpbnN0IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UgLCBpLmUuICBwYWNrIG1vcmUgTERTX0RNQSBpbnN0IHRvIG9uZSBDYWNoZWxpbmUKLSAgICAgICAgICAgIHNfc3ViX3UzMiAgc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCAgczMKLSAgICAgICAgICAgIGVuZAotICAgICAgIGVuZAotCi1lbHNlICAgLy8gQlVGRkVSX1NUT1JFCiAgICAgICB2X21iY250X2xvX3UzMl9iMzIgdjIsIDB4ZmZmZmZmZmYsIDB4MAogICAgICAgdl9tYmNudF9oaV91MzJfYjMyIHYzLCAweGZmZmZmZmZmLCB2MiAgICAgLy8gdGlkCiAgICAgICB2X211bF9pMzJfaTI0IHYyLCB2MywgOCAgIC8vIHRpZCo4CkBAIC02MjgsOCArNDEzLDYgQEAKICAgICAgIC8vIHJlc3RvcmUgcnNyYzMKICAgICAgIHNfbW92X2IzMiBzX3NhdmVfYnVmX3JzcmMzLCBzMAogCi1lbmQKLQogTF9TQVZFX0xEU19ET05FOgogCiAKQEAgLTY0Nyw0NCArNDMwLDggQEAKICAgICBzX2FkZF91MzIgICAgICAgc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCAxCiAgICAgc19sc2hsX2IzMiAgICAgIHNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMiAgICAgICAgICAgICAgICAgICAgICAgICAvL051bWJlciBvZiBWR1BScyA9ICh2Z3ByX3NpemUgKyAxKSAqIDQgICAgKG5vbi16ZXJvIHZhbHVlKSAgIC8vRklYTUUgZm9yIEdGWCwgemVybyBpcyBwb3NzaWJsZQogICAgIHNfbHNobF9iMzIgICAgICBzX3NhdmVfYnVmX3JzcmMyLCAgc19zYXZlX2FsbG9jX3NpemUsIDggICAgICAgICAgICAgICAgICAgICAgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcyAoNjQgdGhyZWFkcyo0KQotICAgIGlmIChTV0laWkxFX0VOKQotICAgICAgICBzX2FkZF91MzIgICAgICAgc19zYXZlX2J1Zl9yc3JjMiwgc19zYXZlX2J1Zl9yc3JjMiwgMHgwICAgICAgICAgICAgICAgICAgICAgLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0gICAgZWxzZQogICAgICAgICBzX21vdl9iMzIgICAgICAgc19zYXZlX2J1Zl9yc3JjMiwgIDB4MTAwMDAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAogCi0KLSAgICAvLyBWR1BSIEFsbG9jYXRlZCBpbiA0LUdQUiBncmFudWxhcml0eQotCi1pZiBHOFNSX1ZHUFJfU1JfSU5fRFdYNAotICAgICAgICAvLyB0aGUgY29uc3Qgc3RyaWRlIGZvciBEV3g0IGlzIDQqNCBieXRlcwotICAgICAgICBzX2FuZF9iMzIgc19zYXZlX2J1Zl9yc3JjMSwgc19zYXZlX2J1Zl9yc3JjMSwgMHgwMDAwRkZGRiAgIC8vIHJlc2V0IGNvbnN0IHN0cmlkZSB0byAwCi0gICAgICAgIHNfb3JfYjMyICBzX3NhdmVfYnVmX3JzcmMxLCBzX3NhdmVfYnVmX3JzcmMxLCBHOFNSX1NBVkVfQlVGX1JTUkNfV09SRDFfU1RSSURFX0RXeDQgIC8vIGNvbnN0IHN0cmlkZSB0byA0KjQgYnl0ZXMKLQotICAgICAgICBzX21vdl9iMzIgICAgICAgICBtMCwgNCAgICAgLy8gc2tpcCBmaXJzdCA0IFZHUFJzCi0gICAgICAgIHNfY21wX2x0X3UzMiAgICAgIG0wLCBzX3NhdmVfYWxsb2Nfc2l6ZQotICAgICAgICBzX2NicmFuY2hfc2NjMCAgICBMX1NBVkVfVkdQUl9MT09QX0VORCAgICAgIC8vIG5vIG1vcmUgdmdwcnMKLQotICAgICAgICBzX3NldF9ncHJfaWR4X29uICBtMCwgMHgxICAgLy8gVGhpcyB3aWxsIGNoYW5nZSBNMAotICAgICAgICBzX2FkZF91MzIgICAgICAgICBzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDB4MTAwMCAgLy8gYmVjYXVzZSBhYm92ZSBpbnN0IGNoYW5nZSBtMAotTF9TQVZFX1ZHUFJfTE9PUDoKLSAgICAgICAgdl9tb3ZfYjMyICAgICAgICAgdjAsIHYwICAgLy8gdjAgPSB2WzArbTBdCi0gICAgICAgIHZfbW92X2IzMiAgICAgICAgIHYxLCB2MQotICAgICAgICB2X21vdl9iMzIgICAgICAgICB2MiwgdjIKLSAgICAgICAgdl9tb3ZfYjMyICAgICAgICAgdjMsIHYzCi0KLQotICAgICAgICBidWZmZXJfc3RvcmVfZHdvcmR4NCB2MCwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxCi0gICAgICAgIHNfYWRkX3UzMiAgICAgICAgIG0wLCBtMCwgNAotICAgICAgICBzX2FkZF91MzIgICAgICAgICBzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX21lbV9vZmZzZXQsIDI1Nio0Ci0gICAgICAgIHNfY21wX2x0X3UzMiAgICAgIG0wLCBzX3NhdmVfYWxsb2Nfc2l6ZQotICAgIHNfY2JyYW5jaF9zY2MxICBMX1NBVkVfVkdQUl9MT09QICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9WR1BSIHNhdmUgaXMgY29tcGxldGU/Ci0gICAgc19zZXRfZ3ByX2lkeF9vZmYKLUxfU0FWRV9WR1BSX0xPT1BfRU5EOgotCi0gICAgICAgIHNfYW5kX2IzMiBzX3NhdmVfYnVmX3JzcmMxLCBzX3NhdmVfYnVmX3JzcmMxLCAweDAwMDBGRkZGICAgLy8gcmVzZXQgY29uc3Qgc3RyaWRlIHRvIDAKLSAgICAgICAgc19vcl9iMzIgIHNfc2F2ZV9idWZfcnNyYzEsIHNfc2F2ZV9idWZfcnNyYzEsIFNfU0FWRV9CVUZfUlNSQ19XT1JEMV9TVFJJREUgIC8vIHJlc2V0IGNvbnN0IHN0cmlkZSB0byA0IGJ5dGVzCi1lbHNlCiAgICAgLy8gVkdQUiBzdG9yZSB1c2luZyBkdyBidXJzdAogICAgIHNfbW92X2IzMiAgICAgICAgIG0wLCAweDQgICAvL1ZHUFIgaW5pdGlhbCBpbmRleCB2YWx1ZSA9MAogICAgIHNfY21wX2x0X3UzMiAgICAgIG0wLCBzX3NhdmVfYWxsb2Nfc2l6ZQpAQCAtNzAwLDUyICs0NDcsMTggQEAKICAgICB2X21vdl9iMzIgICAgICAgdjIsIHYyICAgICAgICAgICAgICAvL3YwID0gdlswK20wXQogICAgIHZfbW92X2IzMiAgICAgICB2MywgdjMgICAgICAgICAgICAgIC8vdjAgPSB2WzArbTBdCiAKLSAgICBpZihVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRikKLSAgICAgICAgdGJ1ZmZlcl9zdG9yZV9mb3JtYXRfeCB2MCwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IGZvcm1hdDpCVUZfTlVNX0ZPUk1BVF9GTE9BVCBmb3JtYXQ6IEJVRl9EQVRBX0ZPUk1BVF8zMiBzbGM6MSBnbGM6MQotICAgIGVsc2UKICAgICAgICAgYnVmZmVyX3N0b3JlX2R3b3JkIHYwLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEKICAgICAgICAgYnVmZmVyX3N0b3JlX2R3b3JkIHYxLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgIG9mZnNldDoyNTYKICAgICAgICAgYnVmZmVyX3N0b3JlX2R3b3JkIHYyLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgIG9mZnNldDoyNTYqMgogICAgICAgICBidWZmZXJfc3RvcmVfZHdvcmQgdjMsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSAgb2Zmc2V0OjI1NiozCi0gICAgZW5kCiAKICAgICBzX2FkZF91MzIgICAgICAgbTAsIG0wLCA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbmV4dCB2Z3ByIGluZGV4CiAgICAgc19hZGRfdTMyICAgICAgIHNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgMjU2KjQgICAgICAgICAgICAgICAgICAgICAvL2V2ZXJ5IGJ1ZmZlcl9zdG9yZV9kd29yZCBkb2VzIDI1NiBieXRlcwogICAgIHNfY21wX2x0X3UzMiAgICBtMCwgc19zYXZlX2FsbG9jX3NpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zY2MgPSAobTAgPCBzX3NhdmVfYWxsb2Nfc2l6ZSkgPyAxIDogMAogICAgIHNfY2JyYW5jaF9zY2MxICBMX1NBVkVfVkdQUl9MT09QICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9WR1BSIHNhdmUgaXMgY29tcGxldGU/CiAgICAgc19zZXRfZ3ByX2lkeF9vZmYKLWVuZAogCiBMX1NBVkVfVkdQUl9FTkQ6Ci0KLQotCi0KLQotCi0gICAgLyogICAgIFNfUEdNX0VORF9TQVZFRCAgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0ZJWE1FICBncmFwaGljcyBPTkxZCi0gICAgaWYgKChFTVVfUlVOX0hBQ0spICYmICghRU1VX1JVTl9IQUNLX1NBVkVfTk9STUFMX0VYSVQpKQotICAgICAgICBzX2FuZF9iMzIgc19zYXZlX3BjX2hpLCBzX3NhdmVfcGNfaGksIDB4MDAwMGZmZmYgICAgLy9wY1s0NzozMl0KLSAgICAgICAgc19hZGRfdTMyIHNfc2F2ZV9wY19sbywgc19zYXZlX3BjX2xvLCA0ICAgICAgICAgICAgIC8vcGNbMzE6MF0rNAotICAgICAgICBzX2FkZGNfdTMyIHNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCAweDAgICAgICAgICAgLy9jYXJyeSBiaXQgb3ZlcgotICAgICAgICBzX3JmZV9iNjQgc19zYXZlX3BjX2xvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9SZXR1cm4gdG8gdGhlIG1haW4gc2hhZGVyIHByb2dyYW0KLSAgICBlbHNlCi0gICAgZW5kCi0KLS8vIFNhdmUgRG9uZSB0aW1lc3RhbXAKLWlmIEc4U1JfREVCVUdfVElNRVNUQU1QCi0gICAgICAgIHNfbWVtcmVhbHRpbWUgICBzX2c4c3JfdHNfc2F2ZV9kCi0gICAgICAgIC8vIFNHUFIgU1IgbWVtb3J5IG9mZnNldCA6IHNpemUoVkdQUikKLSAgICAgICAgZ2V0X3ZncHJfc2l6ZV9ieXRlcyhzX3NhdmVfbWVtX29mZnNldCkKLSAgICAgICAgc19hZGRfdTMyIHNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgRzhTUl9ERUJVR19UU19TQVZFX0RfT0ZGU0VUCi0gICAgICAgIHNfd2FpdGNudCBsZ2ttY250KDApICAgICAgICAgLy9GSVhNRSwgd2lsbCBjYXVzZSB4bmFjaz8/Ci0gICAgICAgIC8vIE5lZWQgcmVzZXQgcnNyYzI/PwotICAgICAgICBzX21vdl9iMzIgbTAsIHNfc2F2ZV9tZW1fb2Zmc2V0Ci0gICAgICAgIHNfbW92X2IzMiBzX3NhdmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLSAgICAgICAgc19idWZmZXJfc3RvcmVfZHdvcmR4MiBzX2c4c3JfdHNfc2F2ZV9kLCBzX3NhdmVfYnVmX3JzcmMwLCBtMCAgICAgICBnbGM6MQotZW5kCi0KLQogICAgIHNfYnJhbmNoICAgIExfRU5EX1BHTQogCiAKQEAgLTc1NiwyNyArNDY5LDYgQEAKIAogTF9SRVNUT1JFOgogICAgIC8qICAgICAgU2V0dXAgUmVzb3VyY2UgQ29udGFudHMgICAgKi8KLSAgICBpZiAoKEVNVV9SVU5fSEFDSykgJiYgKCFFTVVfUlVOX0hBQ0tfUkVTVE9SRV9OT1JNQUwpKQotICAgICAgICAvL2NhbGN1bGF0ZSB3ZF9hZGRyIHVzaW5nIGFic29sdXRlIHRocmVhZCBpZAotICAgICAgICB2X3JlYWRsYW5lX2IzMiBzX3Jlc3RvcmVfdG1wLCB2OSwgMAotICAgICAgICBzX2xzaHJfYjMyIHNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV90bXAsIDYKLSAgICAgICAgc19tdWxfaTMyIHNfcmVzdG9yZV90bXAsIHNfcmVzdG9yZV90bXAsIFdBVkVfU1BBQ0UKLSAgICAgICAgc19hZGRfaTMyIHNfcmVzdG9yZV9zcGlfaW5pdF9sbywgc19yZXN0b3JlX3RtcCwgV0dfQkFTRV9BRERSX0xPCi0gICAgICAgIHNfbW92X2IzMiBzX3Jlc3RvcmVfc3BpX2luaXRfaGksIFdHX0JBU0VfQUREUl9ISQotICAgICAgICBzX2FuZF9iMzIgc19yZXN0b3JlX3NwaV9pbml0X2hpLCBzX3Jlc3RvcmVfc3BpX2luaXRfaGksIENUWF9SRVNUT1JFX0NPTlRST0wKLSAgICBlbHNlCi0gICAgZW5kCi0KLWlmIEc4U1JfREVCVUdfVElNRVNUQU1QCi0gICAgICAgIHNfbWVtcmVhbHRpbWUgICBzX2c4c3JfdHNfcmVzdG9yZV9zCi0gICAgICAgIHNfd2FpdGNudCBsZ2ttY250KDApICAgICAgICAgLy9GSVhNRSwgd2lsbCBjYXVzZSB4bmFjaz8/Ci0gICAgICAgIC8vIHRtYV9sby9oaSBhcmUgc2dwciAxMTAsIDExMSwgd2hpY2ggd2lsbCBub3QgdXNlZCBmb3IgMTEyIFNHUFIgYWxsb2NhdGVkIGNhc2UuLi4KLSAgICAgICAgc19tb3ZfYjMyIHNfcmVzdG9yZV9wY19sbywgc19nOHNyX3RzX3Jlc3RvcmVfc1swXQotICAgICAgICBzX21vdl9iMzIgc19yZXN0b3JlX3BjX2hpLCBzX2c4c3JfdHNfcmVzdG9yZV9zWzFdICAgLy9iYWNrdXAgdHMgdG8gdHRtcDAvMSwgc2ljbmUgZXhlYyB3aWxsIGJlIGZpbmFsbHkgcmVzdG9yZWQuLgotZW5kCi0KLQotCiAgICAgc19tb3ZfYjMyICAgICAgIHNfcmVzdG9yZV9idWZfcnNyYzAsICAgIHNfcmVzdG9yZV9zcGlfaW5pdF9sbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iYXNlX2FkZHJfbG8KICAgICBzX2FuZF9iMzIgICAgICAgc19yZXN0b3JlX2J1Zl9yc3JjMSwgICAgc19yZXN0b3JlX3NwaV9pbml0X2hpLCAweDAwMDBGRkZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Jhc2VfYWRkcl9oaQogICAgIHNfb3JfYjMyICAgICAgICBzX3Jlc3RvcmVfYnVmX3JzcmMxLCAgICBzX3Jlc3RvcmVfYnVmX3JzcmMxLCAgU19SRVNUT1JFX0JVRl9SU1JDX1dPUkQxX1NUUklERQpAQCAtODE4LDE4ICs1MTAsMTIgQEAKICAgICBzX2FkZF91MzIgIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgZ2V0X2h3cmVnX3NpemVfYnl0ZXMoKSAgICAgICAgICAgIC8vRklYTUUsIENoZWNrIGlmIG9mZnNldCBvdmVyZmxvdz8/PwogCiAKLSAgICBpZiAoU1dJWlpMRV9FTikKLSAgICAgICAgc19hZGRfdTMyICAgICAgIHNfcmVzdG9yZV9idWZfcnNyYzIsIHNfcmVzdG9yZV9idWZfcnNyYzIsIDB4MCAgICAgICAgICAgICAgICAgICAgICAgLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0gICAgZWxzZQogICAgICAgICBzX21vdl9iMzIgICAgICAgc19yZXN0b3JlX2J1Zl9yc3JjMiwgIDB4MTAwMDAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0gICAgZW5kCiAgICAgc19tb3ZfYjMyICAgICAgIG0wLCAweDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbGRzX29mZnNldCBpbml0aWFsIHZhbHVlID0gMAogCiAgIExfUkVTVE9SRV9MRFNfTE9PUDoKLSAgICBpZiAoU0FWRV9MRFMpCiAgICAgICAgIGJ1ZmZlcl9sb2FkX2R3b3JkICAgdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBsZHM6MSAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QgNjREVwogICAgICAgICBidWZmZXJfbG9hZF9kd29yZCAgIHYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQgbGRzOjEgb2Zmc2V0OjI1NiAgICAgICAgIC8vIHNlY29uZCA2NERXCi0gICAgZW5kCiAgICAgc19hZGRfdTMyICAgICAgIG0wLCBtMCwgMjU2KjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEyOCBEVwogICAgIHNfYWRkX3UzMiAgICAgICBzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDI1NioyICAgICAgICAgICAvL21lbSBvZmZzZXQgaW5jcmVhc2VkIGJ5IDEyOERXCiAgICAgc19jbXBfbHRfdTMyICAgIG0wLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vc2NjPShtMCA8IHNfcmVzdG9yZV9hbGxvY19zaXplKSA/IDEgOiAwCkBAIC04NDgsNDAgKzUzNCw4IEBACiAgICAgc19hZGRfdTMyICAgICAgIHNfcmVzdG9yZV9hbGxvY19zaXplLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgMQogICAgIHNfbHNobF9iMzIgICAgICBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDIgICAgICAgICAgICAgICAgICAgICAgICAgICAvL051bWJlciBvZiBWR1BScyA9ICh2Z3ByX3NpemUgKyAxKSAqIDQgICAgKG5vbi16ZXJvIHZhbHVlKQogICAgIHNfbHNobF9iMzIgICAgICBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgc19yZXN0b3JlX2FsbG9jX3NpemUsIDggICAgICAgICAgICAgICAgICAgICAgICAgICAvL05VTV9SRUNPUkRTIGluIGJ5dGVzICg2NCB0aHJlYWRzKjQpCi0gICAgaWYgKFNXSVpaTEVfRU4pCi0gICAgICAgIHNfYWRkX3UzMiAgICAgICBzX3Jlc3RvcmVfYnVmX3JzcmMyLCBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAweDAgICAgICAgICAgICAgICAgICAgICAgIC8vRklYTUUgbmVlZCB0byB1c2Ugc3dpenpsZSB0byBlbmFibGUgYm91bmRzIGNoZWNraW5nPwotICAgIGVsc2UKICAgICAgICAgc19tb3ZfYjMyICAgICAgIHNfcmVzdG9yZV9idWZfcnNyYzIsICAweDEwMDAwMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAogCi1pZiBHOFNSX1ZHUFJfU1JfSU5fRFdYNAotICAgICBnZXRfdmdwcl9zaXplX2J5dGVzKHNfcmVzdG9yZV9tZW1fb2Zmc2V0KQotICAgICBzX3N1Yl91MzIgICAgICAgICBzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDI1Nio0Ci0KLSAgICAgLy8gdGhlIGNvbnN0IHN0cmlkZSBmb3IgRFd4NCBpcyA0KjQgYnl0ZXMKLSAgICAgc19hbmRfYjMyIHNfcmVzdG9yZV9idWZfcnNyYzEsIHNfcmVzdG9yZV9idWZfcnNyYzEsIDB4MDAwMEZGRkYgICAvLyByZXNldCBjb25zdCBzdHJpZGUgdG8gMAotICAgICBzX29yX2IzMiAgc19yZXN0b3JlX2J1Zl9yc3JjMSwgc19yZXN0b3JlX2J1Zl9yc3JjMSwgRzhTUl9SRVNUT1JFX0JVRl9SU1JDX1dPUkQxX1NUUklERV9EV3g0ICAvLyBjb25zdCBzdHJpZGUgdG8gNCo0IGJ5dGVzCi0KLSAgICAgc19tb3ZfYjMyICAgICAgICAgbTAsIHNfcmVzdG9yZV9hbGxvY19zaXplCi0gICAgIHNfc2V0X2dwcl9pZHhfb24gIG0wLCAweDggICAgLy8gTm90ZS4uIFRoaXMgd2lsbCBjaGFuZ2UgbTAKLQotTF9SRVNUT1JFX1ZHUFJfTE9PUDoKLSAgICAgYnVmZmVyX2xvYWRfZHdvcmR4NCB2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxCi0gICAgIHNfd2FpdGNudCB2bWNudCgwKQotICAgICBzX3N1Yl91MzIgICAgICAgICBtMCwgbTAsIDQKLSAgICAgdl9tb3ZfYjMyICAgICAgICAgdjAsIHYwICAgLy8gdlswK20wXSA9IHYwCi0gICAgIHZfbW92X2IzMiAgICAgICAgIHYxLCB2MQotICAgICB2X21vdl9iMzIgICAgICAgICB2MiwgdjIKLSAgICAgdl9tb3ZfYjMyICAgICAgICAgdjMsIHYzCi0gICAgIHNfc3ViX3UzMiAgICAgICAgIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgMjU2KjQKLSAgICAgc19jbXBfZXFfdTMyICAgICAgbTAsIDB4ODAwMAotICAgICBzX2NicmFuY2hfc2NjMCAgICBMX1JFU1RPUkVfVkdQUl9MT09QCi0gICAgIHNfc2V0X2dwcl9pZHhfb2ZmCi0KLSAgICAgc19hbmRfYjMyIHNfcmVzdG9yZV9idWZfcnNyYzEsIHNfcmVzdG9yZV9idWZfcnNyYzEsIDB4MDAwMEZGRkYgICAvLyByZXNldCBjb25zdCBzdHJpZGUgdG8gMAotICAgICBzX29yX2IzMiAgc19yZXN0b3JlX2J1Zl9yc3JjMSwgc19yZXN0b3JlX2J1Zl9yc3JjMSwgU19SRVNUT1JFX0JVRl9SU1JDX1dPUkQxX1NUUklERSAgLy8gY29uc3Qgc3RyaWRlIHRvIDQqNCBieXRlcwotCi1lbHNlCiAgICAgLy8gVkdQUiBsb2FkIHVzaW5nIGR3IGJ1cnN0CiAgICAgc19tb3ZfYjMyICAgICAgIHNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0ICAgICAvLyByZXN0b3JlIHN0YXJ0IHdpdGggdjEsIHYwIHdpbGwgYmUgdGhlIGxhc3QKICAgICBzX2FkZF91MzIgICAgICAgc19yZXN0b3JlX21lbV9vZmZzZXQsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCAyNTYqNApAQCAtODkwLDE0ICs1NDQsMTAgQEAKICAgICBzX2FkZF91MzIgICAgICAgc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCAweDgwMDAgICAgICAgICAgICAgICAgICAgICAgLy9hZGQgMHg4MDAwIHNpbmNlIHdlIGNvbXBhcmUgbTAgYWdhaW5zdCBpdCBsYXRlcgogCiAgIExfUkVTVE9SRV9WR1BSX0xPT1A6Ci0gICAgaWYoVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCi0gICAgICAgIHRidWZmZXJfbG9hZF9mb3JtYXRfeCB2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0IGZvcm1hdDpCVUZfTlVNX0ZPUk1BVF9GTE9BVCBmb3JtYXQ6IEJVRl9EQVRBX0ZPUk1BVF8zMiBzbGM6MSBnbGM6MQotICAgIGVsc2UKICAgICAgICAgYnVmZmVyX2xvYWRfZHdvcmQgdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQogICAgICAgICBidWZmZXJfbG9hZF9kd29yZCB2MSwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxIG9mZnNldDoyNTYKICAgICAgICAgYnVmZmVyX2xvYWRfZHdvcmQgdjIsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2KjIKICAgICAgICAgYnVmZmVyX2xvYWRfZHdvcmQgdjMsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2KjMKLSAgICBlbmQKICAgICBzX3dhaXRjbnQgICAgICAgdm1jbnQoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lbnN1cmUgZGF0YSByZWFkeQogICAgIHZfbW92X2IzMiAgICAgICB2MCwgdjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3ZbMCttMF0gPSB2MAogICAgIHZfbW92X2IzMiAgICAgICB2MSwgdjEKQEAgLTkwOSwxNiArNTU5LDEwIEBACiAgICAgc19jYnJhbmNoX3NjYzEgIExfUkVTVE9SRV9WR1BSX0xPT1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vVkdQUiByZXN0b3JlIChleGNlcHQgdjApIGlzIGNvbXBsZXRlPwogICAgIHNfc2V0X2dwcl9pZHhfb2ZmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFZHUFIgcmVzdG9yZSBvbiB2MCAqLwotICAgIGlmKFVTRV9NVEJVRl9JTlNURUFEX09GX01VQlVGKQotICAgICAgICB0YnVmZmVyX2xvYWRfZm9ybWF0X3ggdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldF9zYXZlIGZvcm1hdDpCVUZfTlVNX0ZPUk1BVF9GTE9BVCBmb3JtYXQ6IEJVRl9EQVRBX0ZPUk1BVF8zMiBzbGM6MSBnbGM6MQotICAgIGVsc2UKICAgICAgICAgYnVmZmVyX2xvYWRfZHdvcmQgdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldF9zYXZlICAgIHNsYzoxIGdsYzoxCiAgICAgICAgIGJ1ZmZlcl9sb2FkX2R3b3JkIHYxLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSAgICBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2CiAgICAgICAgIGJ1ZmZlcl9sb2FkX2R3b3JkIHYyLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSAgICBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2KjIKICAgICAgICAgYnVmZmVyX2xvYWRfZHdvcmQgdjMsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldF9zYXZlICAgIHNsYzoxIGdsYzoxIG9mZnNldDoyNTYqMwotICAgIGVuZAotCi1lbmQKIAogICAgIC8qICAgICAgICAgIHJlc3RvcmUgU0dQUnMgICAgICAgKi8KICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTkzNCwxNiArNTc4LDggQEAKICAgICBzX2FkZF91MzIgICAgICAgc19yZXN0b3JlX2FsbG9jX3NpemUsIHNfcmVzdG9yZV9hbGxvY19zaXplLCAxCiAgICAgc19sc2hsX2IzMiAgICAgIHNfcmVzdG9yZV9hbGxvY19zaXplLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgNCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTnVtYmVyIG9mIFNHUFJzID0gKHNncHJfc2l6ZSArIDEpICogMTYgICAobm9uLXplcm8gdmFsdWUpCiAKLSAgICBpZiAoU0dQUl9TQVZFX1VTRV9TUUMpCiAgICAgICAgIHNfbHNobF9iMzIgICAgICBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgICBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgMiAgICAgICAgICAgICAgICAgICAgIC8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLSAgICBlbHNlCi0gICAgICAgIHNfbHNobF9iMzIgICAgICBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgICBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgOCAgICAgICAgICAgICAgICAgICAgIC8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMgKDY0IHRocmVhZHMpCi0gICAgZW5kCi0gICAgaWYgKFNXSVpaTEVfRU4pCi0gICAgICAgIHNfYWRkX3UzMiAgICAgICBzX3Jlc3RvcmVfYnVmX3JzcmMyLCBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAweDAgICAgICAgICAgICAgICAgICAgICAgIC8vRklYTUUgbmVlZCB0byB1c2Ugc3dpenpsZSB0byBlbmFibGUgYm91bmRzIGNoZWNraW5nPwotICAgIGVsc2UKICAgICAgICAgc19tb3ZfYjMyICAgICAgIHNfcmVzdG9yZV9idWZfcnNyYzIsICAweDEwMDAwMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAogCiAgICAgLyogSWYgMTEyIFNHUFJzIGFyIGFsbG9jYXRlZCwgNCBzZ3BycyBhcmUgbm90IHVzZWQgVEJBKDEwOCwxMDkpLFRNQSgxMTAsMTExKSwKICAgICAgICBIb3dldmVyLCB3ZSBhcmUgc2FmZSB0byByZXN0b3JlIHRoZXNlIDQgU0dQUnMgYW55d2F5LCBzaW5jZSBUQkEsVE1BIHdpbGwgbGF0ZXIgYmUgcmVzdG9yZWQgYnkgSFdSRUcKQEAgLTk3MiwxMiArNjA4LDYgQEAKICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgTF9SRVNUT1JFX0hXUkVHOgogCi0KLWlmIEc4U1JfREVCVUdfVElNRVNUQU1QCi0gICAgICBzX21vdl9iMzIgc19nOHNyX3RzX3Jlc3RvcmVfc1swXSwgc19yZXN0b3JlX3BjX2xvCi0gICAgICBzX21vdl9iMzIgc19nOHNyX3RzX3Jlc3RvcmVfc1sxXSwgc19yZXN0b3JlX3BjX2hpCi1lbmQKLQogICAgIC8vIEhXUkVHIFNSIG1lbW9yeSBvZmZzZXQgOiBzaXplKFZHUFIpK3NpemUoU0dQUikKICAgICBnZXRfdmdwcl9zaXplX2J5dGVzKHNfcmVzdG9yZV9tZW1fb2Zmc2V0KQogICAgIGdldF9zZ3ByX3NpemVfYnl0ZXMoc19yZXN0b3JlX3RtcCkKQEAgLTk4NSwxMSArNjE1LDcgQEAKIAogCiAgICAgc19tb3ZfYjMyICAgICAgIHNfcmVzdG9yZV9idWZfcnNyYzIsIDB4NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTlVNX1JFQ09SRFMgICBpbiBieXRlcwotICAgIGlmIChTV0laWkxFX0VOKQotICAgICAgICBzX2FkZF91MzIgICAgICAgc19yZXN0b3JlX2J1Zl9yc3JjMiwgc19yZXN0b3JlX2J1Zl9yc3JjMiwgMHgwICAgICAgICAgICAgICAgICAgICAgICAvL0ZJWE1FIG5lZWQgdG8gdXNlIHN3aXp6bGUgdG8gZW5hYmxlIGJvdW5kcyBjaGVja2luZz8KLSAgICBlbHNlCiAgICAgICAgIHNfbW92X2IzMiAgICAgICBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLSAgICBlbmQKIAogICAgIHJlYWRfaHdyZWdfZnJvbV9tZW0oc19yZXN0b3JlX20wLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCkgICAgICAgICAgICAgICAgICAgIC8vTTAKICAgICByZWFkX2h3cmVnX2Zyb21fbWVtKHNfcmVzdG9yZV9wY19sbywgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQpICAgICAgICAgICAgIC8vUEMKQEAgLTEwMDYsMTYgKzYzMiw2IEBACiAKICAgICBzX3dhaXRjbnQgICAgICAgbGdrbWNudCgwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9mcm9tIG5vdyBvbiwgaXQgaXMgc2FmZSB0byByZXN0b3JlIFNUQVRVUyBhbmQgSUJfU1RTCiAKLSAgICAvL2ZvciBub3JtYWwgc2F2ZSAmIHJlc3RvcmUsIHRoZSBzYXZlZCBQQyBwb2ludHMgdG8gdGhlIG5leHQgaW5zdCB0byBleGVjdXRlLCBubyBhZGp1c3RtZW50IG5lZWRzIHRvIGJlIG1hZGUsIG90aGVyd2lzZToKLSAgICBpZiAoKEVNVV9SVU5fSEFDSykgJiYgKCFFTVVfUlVOX0hBQ0tfUkVTVE9SRV9OT1JNQUwpKQotICAgICAgICBzX2FkZF91MzIgc19yZXN0b3JlX3BjX2xvLCBzX3Jlc3RvcmVfcGNfbG8sIDggICAgICAgICAgICAvL3BjWzMxOjBdKzggICAgIC8vdHdvIGJhY2stdG8tYmFjayBzX3RyYXAgYXJlIHVzZWQgKGZpcnN0IGZvciBzYXZlIGFuZCBzZWNvbmQgZm9yIHJlc3RvcmUpCi0gICAgICAgIHNfYWRkY191MzIgIHNfcmVzdG9yZV9wY19oaSwgc19yZXN0b3JlX3BjX2hpLCAweDAgICAgICAgIC8vY2FycnkgYml0IG92ZXIKLSAgICBlbmQKLSAgICBpZiAoKEVNVV9SVU5fSEFDSykgJiYgKEVNVV9SVU5fSEFDS19SRVNUT1JFX05PUk1BTCkpCi0gICAgICAgIHNfYWRkX3UzMiBzX3Jlc3RvcmVfcGNfbG8sIHNfcmVzdG9yZV9wY19sbywgNCAgICAgICAgICAgIC8vcGNbMzE6MF0rNCAgICAgLy8gc2F2ZSBpcyBoYWNrIHRocm91Z2ggc190cmFwIGJ1dCByZXN0b3JlIGlzIG5vcm1hbAotICAgICAgICBzX2FkZGNfdTMyICBzX3Jlc3RvcmVfcGNfaGksIHNfcmVzdG9yZV9wY19oaSwgMHgwICAgICAgICAvL2NhcnJ5IGJpdCBvdmVyCi0gICAgZW5kCi0KICAgICBzX21vdl9iMzIgICAgICAgbTAsICAgICAgICAgc19yZXN0b3JlX20wCiAgICAgc19tb3ZfYjMyICAgICAgIGV4ZWNfbG8sICAgIHNfcmVzdG9yZV9leGVjX2xvCiAgICAgc19tb3ZfYjMyICAgICAgIGV4ZWNfaGksICAgIHNfcmVzdG9yZV9leGVjX2hpCkBAIC0xMDQ4LDExICs2NjQsNiBAQAogCiAgICAgc19iYXJyaWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iYXJyaWVyIHRvIGVuc3VyZSB0aGUgcmVhZGluZXNzIG9mIExEUyBiZWZvcmUgYWNjZXNzIGF0dGVtcHRzIGZyb20gYW55IG90aGVyIHdhdmUgaW4gdGhlIHNhbWUgVEcgLy9GSVhNRSBub3QgcGVyZm9ybWFuY2Utb3B0aW1hbCBhdCB0aGlzIHRpbWUKIAotaWYgRzhTUl9ERUJVR19USU1FU1RBTVAKLSAgICBzX21lbXJlYWx0aW1lIHNfZzhzcl90c19yZXN0b3JlX2QKLSAgICBzX3dhaXRjbnQgbGdrbWNudCgwKQotZW5kCi0KIC8vICBzX3JmZV9iNjQgc19yZXN0b3JlX3BjX2xvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1JldHVybiB0byB0aGUgbWFpbiBzaGFkZXIgcHJvZ3JhbSBhbmQgcmVzdW1lIGV4ZWN1dGlvbgogICAgIHNfcmZlX3Jlc3RvcmVfYjY0ICBzX3Jlc3RvcmVfcGNfbG8sIHNfcmVzdG9yZV9tMCAgICAgICAgICAgIC8vIHNfcmVzdG9yZV9tMFswXSBpcyB1c2VkIHRvIHNldCBTVEFUVVMuaW5zdF9hdGMKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQvY3dzcl90cmFwX2hhbmRsZXJfZ2Z4OS5hc20gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jd3NyX3RyYXBfaGFuZGxlcl9nZng5LmFzbQppbmRleCA2YmFlMmUwLi43NWYyOWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jd3NyX3RyYXBfaGFuZGxlcl9nZng5LmFzbQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jd3NyX3RyYXBfaGFuZGxlcl9nZng5LmFzbQpAQCAtMjQsNzYgKzI0LDkgQEAKICAqIFBST0pFQ1Q9Z3JlZW5sYW5kIC4vc3AzIGN3c3JfdHJhcF9oYW5kbGVyX2dmeDkuYXNtIC1oZXggdG1wLmhleAogICovCiAKLS8qIEhXIChHRlg5KSBzb3VyY2UgY29kZSBmb3IgQ1dTUiB0cmFwIGhhbmRsZXIgKi8KLS8qIFZlcnNpb24gMTggKyBtdWx0aXBsZSB0cmFwIGhhbmRsZXIgKi8KLQotLy8gdGhpcyBwZXJmb3JtYW5jZS1vcHRpbWFsIHZlcnNpb24gd2FzIG9yaWdpbmFsbHkgZnJvbSBTZXZlbiBYdSBhdCBTUkRDCi0KLS8vIFJldmlzb24gIzE4CSAtLS4uLgotLyogUmV2IEhpc3RvcnkKLSoqICMxLiBCcmFuY2ggZnJvbSBnYyBkdi4gICAvL2dmeGlwL2dmeDkvbWFpbi9zcmMvdGVzdC9zdWl0ZXMvYmxvY2svY3Mvc3IvY3NfdHJhcF9oYW5kbGVyLnNwMyMxLCM1MCwgIzUxLCAjNTItNTMoU2tpcCwgQWxyZWFkeSBGaXhlZCBieSBQViksICM1NC01NihtZXJnZWQpLCM1Ny01OChtZXJnZXJkLCBza2lwZWQtYWxyZWFkeSBmaXhlZCBieSBQVikKLSoqICM0LiBTUiBNZW1vcnkgTGF5b3V0OgotKioJCQkgMS4gVkdQUi1TR1BSLUhXUkVHLXtMRFN9Ci0qKgkJCSAyLiB0YmFfaGkuYml0cy4yNiAtIHJlY29uZmlndXJlZCBhcyB0aGUgZmlyc3Qgd2F2ZSBpbiB0ZyBiaXRzLCBmb3IgZGVmZXIgU2F2ZSBMRFMgZm9yIGEgdGhyZWFkZ3JvdXAuLiBwZXJmb3JtYW5jZSBjb25jZXJuLi4KLSoqICM1LiBVcGRhdGU6IDEuIEFjY3VyYXRlIGc4c3JfdHNfc2F2ZV9kIHRpbWVzdGFtcAotKiogIzYuIFVwZGF0ZTogMS4gRml4IHNfYmFycmllciB1c2FnZTsgMi4gVkdQUiBzL3IgdXNpbmcgc3dpenpsZSBidWZmZXI/KE5vTmVlZCwgYWxyZWFkeSBtYXRjaGVkIHRoZSBzd2l6emxlIHBhdHRlcm4sIG1vcmUgaW52ZXN0aWdhdGlvbikKLSoqICM3LiBVcGRhdGU6IDEuIGRvbid0IGJhcnJpZXIgaWYgbm9MRFMKLSoqICM4LiBCcmFuY2g6IDEuIEJyYW5jaCB0byB2ZXIjMCwgd2hpY2ggaXMgdmVyeSBzaW1pbGFyIHRvIGdjIGR2IHZlcnNpb24KLSoqCSAgICAgICAyLiBGaXggU1EgaXNzdWUgYnkgc19zbGVlcCAyCi0qKiAjOS4gVXBkYXRlOiAxLiBGaXggc2NjIHJlc3RvcmUgZmFpbGVkIGlzc3VlLCByZXN0b3JlIHdhdmVfc3RhdHVzIGF0IGxhc3QKLSoqCSAgICAgICAyLiBvcHRpbWl6ZSBzX2J1ZmZlciBzYXZlIGJ5IGJ1cnN0IDE2c2dwcnMuLi4KLSoqICMxMC4gVXBkYXRlIDEuIE9wdGltaXplIHJlc3RvcmUgc2dwciBieSBidXNydCAxNiBzZ3Bycy4KLSoqICMxMS4gVXBkYXRlIDEuIEFkZCAyIG1vcmUgdGltZXN0YW1wIGZvciBkZWJ1ZyB2ZXJzaW9uCi0qKiAjMTIuIFVwZGF0ZSAxLiBBZGQgVkdQUiBTUiB1c2luZyBEV3g0LCBzb21lIGNhc2UgaW1wcm92ZSBhbmQgc29tZSBjYXNlIGRyb3AgcGVyZm9ybWFuY2UKLSoqICMxMy4gSW50ZWcgIDEuIEFsd2F5cyB1c2UgTVVCVUYgZm9yIFBWIHRyYXAgc2hhZGVyLi4uCi0qKiAjMTQuIFVwZGF0ZSAxLiBzX2J1ZmZlcl9zdG9yZSBzb2Z0IGNsYXVzZS4uLgotKiogIzE1LiBVcGRhdGUgMS4gUEVSRiAtIHNjbGFyIHdyaXRlIHdpdGggZ2xjOjAvbXR5cGUwIHRvIGFsbG93IEwyIGNvbWJpbmUuIHBlcmYgaW1wcm92ZW1lbnQgYSBsb3QuCi0qKiAjMTYuIFVwZGF0ZSAxLiBQUlJGIC0gVU5ST0xMIExEU19ETUEgZ290IDI1MDBjeWNsZSBzYXZlIGluIElQIHRyZWUKLSoqICMxNy4gVXBkYXRlIDEuIEZVTkMgLSBMRFNfRE1BIGhhcyBpc3N1ZXMgd2hpbGUgQVRDLCByZXBsYWNlIHdpdGggZHNfcmVhZC9idWZmZXJfc3RvcmUgZm9yIHNhdmUgcGFydFtUT0RPIHJlc3RvcmUgcGFydF0KLSoqCSAgICAgICAyLiBQRVJGIC0gU2F2ZSBMRFMgYmVmb3JlIHNhdmUgVkdQUiB0byBjb3ZlciBMRFMgc2F2ZSBsb25nIGxhdGVuY3kuLi4KLSoqICMxOC4gVXBkYXRlIDEuIEZVTkMgLSBJbXBsaWNpdGx5IGVzdG9yZSBTVEFUVVMuVkNDWiwgd2hpY2ggaXMgbm90IHdyaXRhYmxlIGJ5IHNfc2V0cmVnX2IzMgotKioJICAgICAgIDIuIEZVTkMgLSBIYW5kbGUgbm9uLUNXU1IgdHJhcHMKLSovCi0KLXZhciBHOFNSX1dETUVNX0hXUkVHX09GRlNFVCA9IDAKLXZhciBHOFNSX1dETUVNX1NHUFJfT0ZGU0VUICA9IDEyOCAgLy8gaW4gYnl0ZXMKLQotLy8gS2VlcCBkZWZpbml0aW9uIHNhbWUgYXMgdGhlIGFwcCBzaGFkZXIsIFRoZXNlIDIgdGltZSBzdGFtcHMgYXJlIHBhcnQgb2YgdGhlIGFwcCBzaGFkZXIuLi4gU2hvdWxkIGJlZm9yZSBhbnkgU2F2ZSBhbmQgYWZ0ZXIgcmVzdG9yZS4KLQotdmFyIEc4U1JfREVCVUdfVElNRVNUQU1QID0gMAotdmFyIEc4U1JfREVCVUdfVFNfU0FWRV9EX09GRlNFVCA9IDQwKjQJLy8gdHNfc2F2ZV9kIHRpbWVzdGFtcCBvZmZzZXQgcmVsYXRpdmUgdG8gU0dQUl9TUl9tZW1vcnlfb2Zmc2V0Ci12YXIgc19nOHNyX3RzX3NhdmVfcwk9IHNbMzQ6MzVdICAgLy8gc2F2ZSBzdGFydAotdmFyIHNfZzhzcl90c19zcV9zYXZlX21zZyAgPSBzWzM2OjM3XQkvLyBUaGUgc2F2ZSBzaGFkZXIgc2VuZCBTQVZFV0FWRSBtc2cgdG8gc3BpCi12YXIgc19nOHNyX3RzX3NwaV93cmV4ZWMgICA9IHNbMzg6MzldCS8vIHRoZSBTUEkgd3JpdGUgdGhlIHNyIGFkZHJlc3MgdG8gU1EKLXZhciBzX2c4c3JfdHNfc2F2ZV9kCT0gc1s0MDo0MV0gICAvLyBzYXZlIGVuZAotdmFyIHNfZzhzcl90c19yZXN0b3JlX3MgPSBzWzQyOjQzXSAgIC8vIHJlc3RvcmUgc3RhcnQKLXZhciBzX2c4c3JfdHNfcmVzdG9yZV9kID0gc1s0NDo0NV0gICAvLyByZXN0b3JlIGVuZAotCi12YXIgRzhTUl9WR1BSX1NSX0lOX0RXWDQgPSAwCi12YXIgRzhTUl9TQVZFX0JVRl9SU1JDX1dPUkQxX1NUUklERV9EV3g0ID0gMHgwMDEwMDAwMAkgLy8gRFd4NCBzdHJpZGUgaXMgNCo0Qnl0ZXMKLXZhciBHOFNSX1JFU1RPUkVfQlVGX1JTUkNfV09SRDFfU1RSSURFX0RXeDQgID0gRzhTUl9TQVZFX0JVRl9SU1JDX1dPUkQxX1NUUklERV9EV3g0Ci0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgkJICAgIGNvbnRyb2wgb24gaG93IHRvIHJ1biB0aGUgc2hhZGVyCQkJICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8vYW55IGhhY2sgdGhhdCBuZWVkcyB0byBiZSBtYWRlIHRvIHJ1biB0aGlzIGNvZGUgaW4gRU1VIChlaXRoZXIgYmVjYXVzZSB2YXJpb3VzIEVNVSBjb2RlIGFyZSBub3QgcmVhZHkgb3Igbm8gY29tcHV0ZSBzYXZlICYgcmVzdG9yZSBpbiBFTVUgcnVuKQotdmFyIEVNVV9SVU5fSEFDSwkJICAgID0JMAotdmFyIEVNVV9SVU5fSEFDS19SRVNUT1JFX05PUk1BTAkgICAgPQkwCi12YXIgRU1VX1JVTl9IQUNLX1NBVkVfTk9STUFMX0VYSVQgICA9CTAKLXZhciBFTVVfUlVOX0hBQ0tfU0FWRV9TSU5HTEVfV0FWRSAgID0JMAotdmFyIEVNVV9SVU5fSEFDS19TQVZFX0ZJUlNUX1RJTUUgICAgPQkwCQkgICAgLy9mb3IgaW50ZXJydXB0ZWQgcmVzdG9yZSBpbiB3aGljaCB0aGUgZmlyc3Qgc2F2ZSBpcyB0aHJvdWdoIEVNVV9SVU5fSEFDSwotdmFyIFNBVkVfTERTCQkJICAgID0JMQotdmFyIFdHX0JBU0VfQUREUl9MTwkJICAgID0JMHg5MDAwYTAwMAotdmFyIFdHX0JBU0VfQUREUl9ISQkJICAgID0JMHgwCi12YXIgV0FWRV9TUEFDRQkJCSAgICA9CTB4NTAwMAkJICAgIC8vbWVtb3J5IHNpemUgdGhhdCBlYWNoIHdhdmUgb2NjdXBpZXMgaW4gd29ya2dyb3VwIHN0YXRlIG1lbQotdmFyIENUWF9TQVZFX0NPTlRST0wJCSAgICA9CTB4MAotdmFyIENUWF9SRVNUT1JFX0NPTlRST0wJCSAgICA9CUNUWF9TQVZFX0NPTlRST0wKLXZhciBTSU1fUlVOX0hBQ0sJCSAgICA9CTAJCSAgICAvL2FueSBoYWNrIHRoYXQgbmVlZHMgdG8gYmUgbWFkZSB0byBydW4gdGhpcyBjb2RlIGluIFNJTSAoZWl0aGVyIGJlY2F1c2UgdmFyaW91cyBSVEwgY29kZSBhcmUgbm90IHJlYWR5IG9yIG5vIGNvbXB1dGUgc2F2ZSAmIHJlc3RvcmUgaW4gUlRMIHJ1bikKLXZhciBTR1BSX1NBVkVfVVNFX1NRQwkJICAgID0JMQkJICAgIC8vdXNlIFNRQyBEJCB0byBkbyB0aGUgd3JpdGUKLXZhciBVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRgkgICAgPQkwCQkgICAgLy9iZWNhdXNlIFRDIEVNVSBjdXJyZW50bHkgYXNzZXJ0cyBvbiAwIG9mIC8vIG92ZXJsb2FkIERGTVQgZmllbGQgdG8gY2FycnkgNCBtb3JlIGJpdHMgb2Ygc3RyaWRlIGZvciBNVUJVRiBvcGNvZGVzCi12YXIgU1dJWlpMRV9FTgkJCSAgICA9CTAJCSAgICAvL3doZXRoZXIgd2UgdXNlIHN3aXp6bGVkIGJ1ZmZlciBhZGRyZXNzaW5nCiB2YXIgQUNLX1NRQ19TVE9SRQkJICAgID0JMQkJICAgIC8vd29ya2Fyb3VuZCBmb3Igc3VzcGVjdGVkIFNRQyBzdG9yZSBidWcgY2F1c2luZyBpbmNvcnJlY3Qgc3RvcmVzIHVuZGVyIGNvbmN1cnJlbmN5Cit2YXIgU0FWRV9BRlRFUl9YTkFDS19FUlJPUgkgICAgPQkxCQkgICAgLy93b3JrYXJvdW5kIGZvciBUQ1Agc3RvcmUgZmFpbHVyZSBhZnRlciBYTkFDSyBlcnJvciB3aGVuIEFMTE9XX1JFUExBWT0wLCBmb3IgZGVidWdnZXIKK3ZhciBTSU5HTEVfU1RFUF9NSVNTRURfV09SS0FST1VORCAgID0JMQkJICAgIC8vd29ya2Fyb3VuZCBmb3IgbG9zdCBNT0RFLkRFQlVHX0VOIGV4Y2VwdGlvbiB3aGVuIFNBVkVDVFggcmFpc2VkCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qCQkJdmFyaWFibGVzCQkJCQkgICovCkBAIC0xMDcsNiArNDAsNyBAQAogdmFyIFNRX1dBVkVfU1RBVFVTX1BSRV9TUElfUFJJT19TSVpFICAgID0gMQogdmFyIFNRX1dBVkVfU1RBVFVTX1BPU1RfU1BJX1BSSU9fU0hJRlQgID0gMwogdmFyIFNRX1dBVkVfU1RBVFVTX1BPU1RfU1BJX1BSSU9fU0laRSAgID0gMjkKK3ZhciBTUV9XQVZFX1NUQVRVU19BTExPV19SRVBMQVlfTUFTSyAgICA9IDB4NDAwMDAwCiAKIHZhciBTUV9XQVZFX0xEU19BTExPQ19MRFNfU0laRV9TSElGVAk9IDEyCiB2YXIgU1FfV0FWRV9MRFNfQUxMT0NfTERTX1NJWkVfU0laRQk9IDkKQEAgLTEyNywxMiArNjEsMTUgQEAKIHZhciBTUV9XQVZFX1RSQVBTVFNfUE9TVF9TQVZFQ1RYX1NISUZUCT0gICAxMQogdmFyIFNRX1dBVkVfVFJBUFNUU19QT1NUX1NBVkVDVFhfU0laRQk9ICAgMjEKIHZhciBTUV9XQVZFX1RSQVBTVFNfSUxMRUdBTF9JTlNUX01BU0sJPSAgIDB4ODAwCit2YXIgU1FfV0FWRV9UUkFQU1RTX1hOQUNLX0VSUk9SX01BU0sJPSAgIDB4MTAwMDAwMDAKIAogdmFyIFNRX1dBVkVfSUJfU1RTX1JDTlRfU0hJRlQJCT0gICAxNgkJCS8vRklYTUUKIHZhciBTUV9XQVZFX0lCX1NUU19GSVJTVF9SRVBMQVlfU0hJRlQJPSAgIDE1CQkJLy9GSVhNRQogdmFyIFNRX1dBVkVfSUJfU1RTX1JDTlRfRklSU1RfUkVQTEFZX01BU0sJPSAweDFGODAwMAogdmFyIFNRX1dBVkVfSUJfU1RTX1JDTlRfRklSU1RfUkVQTEFZX01BU0tfTkVHCT0gMHgwMDAwN0ZGRgkvL0ZJWE1FCiAKK3ZhciBTUV9XQVZFX01PREVfREVCVUdfRU5fTUFTSwkJPSAgIDB4ODAwCisKIHZhciBTUV9CVUZfUlNSQ19XT1JEMV9BVENfU0hJRlQJICAgID0JMjQKIHZhciBTUV9CVUZfUlNSQ19XT1JEM19NVFlQRV9TSElGVCAgID0JMjcKIApAQCAtMTk3LDEzICsxMzQsMTUgQEAKIHZhciBzX3Jlc3RvcmVfc3BpX2luaXRfaGkJCSAgICA9CWV4ZWNfaGkKIAogdmFyIHNfcmVzdG9yZV9tZW1fb2Zmc2V0CT0gICB0dG1wMTIKK3ZhciBzX3Jlc3RvcmVfYWNjdmdwcl9vZmZzZXQJPSAgIHR0bXAxMwogdmFyIHNfcmVzdG9yZV9hbGxvY19zaXplCT0gICB0dG1wMwogdmFyIHNfcmVzdG9yZV90bXAJCT0gICB0dG1wMgogdmFyIHNfcmVzdG9yZV9tZW1fb2Zmc2V0X3NhdmUJPSAgIHNfcmVzdG9yZV90bXAJLy9ubyBjb25mbGljdAordmFyIHNfcmVzdG9yZV9hY2N2Z3ByX29mZnNldF9zYXZlID0gdHRtcDcKIAogdmFyIHNfcmVzdG9yZV9tMAkgICAgPQlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZQkvL25vIGNvbmZsaWN0CiAKLXZhciBzX3Jlc3RvcmVfbW9kZQkgICAgPQl0dG1wNwordmFyIHNfcmVzdG9yZV9tb2RlCSAgICA9CXNfcmVzdG9yZV9hY2N2Z3ByX29mZnNldF9zYXZlCiAKIHZhciBzX3Jlc3RvcmVfcGNfbG8JICAgID0JdHRtcDAKIHZhciBzX3Jlc3RvcmVfcGNfaGkJICAgID0JdHRtcDEKQEAgLTIyNiwyMCArMTY1LDExIEBACiAvKiBTaGFkZXIgTWFpbiovCiAKIHNoYWRlciBtYWluCi0gIGFzaWMoR0ZYOSkKKyAgYXNpYyhERUZBVUxUKQogICB0eXBlKENTKQogCiAKLSAgICBpZiAoKEVNVV9SVU5fSEFDSykgJiYgKCFFTVVfUlVOX0hBQ0tfUkVTVE9SRV9OT1JNQUwpKQkJICAgIC8vaGFjayB0byB1c2UgdHJhcF9pZCBmb3IgZGV0ZXJtaW5pbmcgc2F2ZS9yZXN0b3JlCi0JLy9GSVhNRSBWQ0NaIHVuLWluaXQgYXNzZXJ0aW9uIHNfZ2V0cmVnX2IzMglzX3NhdmVfc3RhdHVzLCBod3JlZyhIV19SRUdfU1RBVFVTKQkgICAgLy9zYXZlIFNUQVRVUyBzaW5jZSB3ZSB3aWxsIGNoYW5nZSBTQ0MKLQlzX2FuZF9iMzIgc19zYXZlX3RtcCwgc19zYXZlX3BjX2hpLCAweGZmZmYwMDAwCQkgICAgLy9jaGFuZ2UgU0NDCi0Jc19jbXBfZXFfdTMyIHNfc2F2ZV90bXAsIDB4MDA3ZTAwMDAJCQkgICAgLy9TYXZlOiB0cmFwX2lkID0gMHg3ZS4gUmVzdG9yZTogdHJhcF9pZCA9IDB4N2YuCi0Jc19jYnJhbmNoX3NjYzAgTF9KVU1QX1RPX1JFU1RPUkUJCQkgICAgLy9kbyBub3QgbmVlZCB0byByZWNvdmVyIFNUQVRVUyBoZXJlICBzaW5jZSB3ZSBhcmUgZ29pbmcgdG8gUkVTVE9SRQotCS8vRklYTUUJIHNfc2V0cmVnX2IzMglod3JlZyhIV19SRUdfU1RBVFVTKSwJc19zYXZlX3N0YXR1cwkgICAgLy9uZWVkIHRvIHJlY292ZXIgU1RBVFVTIHNpbmNlIHdlIGFyZSBnb2luZyB0byBTQVZFCi0Jc19icmFuY2ggTF9TS0lQX1JFU1RPUkUJCQkJCSAgICAvL05PVCByZXN0b3JlLCBTQVZFIGFjdHVhbGx5Ci0gICAgZWxzZQogCXNfYnJhbmNoIExfU0tJUF9SRVNUT1JFCQkJCQkgICAgLy9OT1QgcmVzdG9yZS4gbWlnaHQgYmUgYSByZWd1bGFyIHRyYXAgb3Igc2F2ZQotICAgIGVuZAogCiBMX0pVTVBfVE9fUkVTVE9SRToKICAgICBzX2JyYW5jaCBMX1JFU1RPUkUJCQkJCQkgICAgLy9yZXN0b3JlCkBAIC0yNDgsMTIgKzE3OCwyOSBAQAogCiAgICAgc19nZXRyZWdfYjMyICAgIHNfc2F2ZV9zdGF0dXMsIGh3cmVnKEhXX1JFR19TVEFUVVMpCQkJCSAgICAvL3NhdmUgU1RBVFVTIHNpbmNlIHdlIHdpbGwgY2hhbmdlIFNDQwogICAgIHNfYW5kbjJfYjMyCSAgICBzX3NhdmVfc3RhdHVzLCBzX3NhdmVfc3RhdHVzLCBTUV9XQVZFX1NUQVRVU19TUElfUFJJT19NQVNLCSAgICAvL2NoZWNrIHdoZXRoZXIgdGhpcyBpcyBmb3Igc2F2ZQorCitpZiBTSU5HTEVfU1RFUF9NSVNTRURfV09SS0FST1VORAorICAgIC8vIE5vIHNpbmdsZSBzdGVwIGV4Y2VwdGlvbnMgaWYgTU9ERS5ERUJVR19FTj0wLgorICAgIHNfZ2V0cmVnX2IzMiAgICB0dG1wMiwgaHdyZWcoSFdfUkVHX01PREUpCisgICAgc19hbmRfYjMyICAgICAgIHR0bXAyLCB0dG1wMiwgU1FfV0FWRV9NT0RFX0RFQlVHX0VOX01BU0sKKyAgICBzX2NicmFuY2hfc2NjMCAgTF9OT19TSU5HTEVfU1RFUF9XT1JLQVJPVU5ECisKKyAgICAvLyBTZWNvbmQtbGV2ZWwgdHJhcCBhbHJlYWR5IGhhbmRsZWQgZXhjZXB0aW9uIGlmIFNUQVRVUy5IQUxUPTEuCisgICAgc19hbmRfYjMyICAgICAgIHR0bXAyLCBzX3NhdmVfc3RhdHVzLCBTUV9XQVZFX1NUQVRVU19IQUxUX01BU0sKKworICAgIC8vIFByaW9yaXRpemUgc2luZ2xlIHN0ZXAgZXhjZXB0aW9uIG92ZXIgY29udGV4dCBzYXZlLgorICAgIC8vIFNlY29uZC1sZXZlbCB0cmFwIHdpbGwgaGFsdCB3YXZlIGFuZCBSRkUsIHJlLWVudGVyaW5nIGZvciBTQVZFQ1RYLgorICAgIHNfY2JyYW5jaF9zY2MwICBMX0ZFVENIXzJORF9UUkFQCisKK0xfTk9fU0lOR0xFX1NURVBfV09SS0FST1VORDoKK2VuZAorCiAgICAgc19nZXRyZWdfYjMyICAgIHNfc2F2ZV90cmFwc3RzLCBod3JlZyhIV19SRUdfVFJBUFNUUykKICAgICBzX2FuZF9iMzIgICAgICAgdHRtcDIsIHNfc2F2ZV90cmFwc3RzLCBTUV9XQVZFX1RSQVBTVFNfU0FWRUNUWF9NQVNLICAgIC8vY2hlY2sgd2hldGhlciB0aGlzIGlzIGZvciBzYXZlCiAgICAgc19jYnJhbmNoX3NjYzEgIExfU0FWRQkJCQkJLy90aGlzIGlzIHRoZSBvcGVyYXRpb24gZm9yIHNhdmUKIAogICAgIC8vICoqKioqKioqKiAgICBIYW5kbGUgbm9uLUNXU1IgdHJhcHMJKioqKioqKioqKioqKioqKioqKgotaWYgKCFFTVVfUlVOX0hBQ0spCisKICAgICAvLyBJbGxlZ2FsIGluc3RydWN0aW9uIGlzIGEgbm9uLW1hc2thYmxlIGV4Y2VwdGlvbiB3aGljaCBibG9ja3MgY29udGV4dCBzYXZlLgogICAgIC8vIEhhbHQgdGhlIHdhdmVmcm9udCBhbmQgcmV0dXJuIGZyb20gdGhlIHRyYXAuCiAgICAgc19hbmRfYjMyICAgICAgIHR0bXAyLCBzX3NhdmVfdHJhcHN0cywgU1FfV0FWRV9UUkFQU1RTX0lMTEVHQUxfSU5TVF9NQVNLCkBAIC0zMzAsNyArMjc3LDcgQEAKICAgICBzZXRfc3RhdHVzX3dpdGhvdXRfc3BpX3ByaW8oc19zYXZlX3N0YXR1cywgdHRtcDIpCiAKICAgICBzX3JmZV9iNjQgICAgICAgW3R0bXAwLCB0dG1wMV0KLWVuZAorCiAgICAgLy8gKioqKioqKioqCUVuZCBoYW5kbGluZyBvZiBub24tQ1dTUiB0cmFwcwkgKioqKioqKioqKioqKioqKioqKgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0zMzgsMTIgKzI4NSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIExfU0FWRToKLQotaWYgRzhTUl9ERUJVR19USU1FU1RBTVAKLQlzX21lbXJlYWx0aW1lCXNfZzhzcl90c19zYXZlX3MKLQlzX3dhaXRjbnQgbGdrbWNudCgwKQkgICAgIC8vRklYTUUsIHdpbGwgY2F1c2UgeG5hY2s/PwotZW5kCi0KICAgICBzX2FuZF9iMzIJICAgIHNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCAweDAwMDBmZmZmICAgIC8vcGNbNDc6MzJdCiAKICAgICBzX21vdl9iMzIJICAgIHNfc2F2ZV90bXAsIDAJCQkJCQkJICAgIC8vY2xlYXIgc2F2ZUN0eCBiaXQKQEAgLTM2NSwxNiArMzA2LDcgQEAKICAgICBzX21vdl9iMzIJICAgIHNfc2F2ZV9leGVjX2hpLCBleGVjX2hpCiAgICAgc19tb3ZfYjY0CSAgICBleGVjLCAgIDB4MAkJCQkJCQkJICAgIC8vY2xlYXIgRVhFQyB0byBnZXQgcmVhZHkgdG8gcmVjZWl2ZQogCi1pZiBHOFNSX0RFQlVHX1RJTUVTVEFNUAotCXNfbWVtcmVhbHRpbWUgIHNfZzhzcl90c19zcV9zYXZlX21zZwotCXNfd2FpdGNudCBsZ2ttY250KDApCi1lbmQKLQotICAgIGlmIChFTVVfUlVOX0hBQ0spCi0KLSAgICBlbHNlCiAJc19zZW5kbXNnICAgc2VuZG1zZyhNU0dfU0FWRVdBVkUpICAvL3NlbmQgU1BJIGEgbWVzc2FnZSBhbmQgd2FpdCBmb3IgU1BJJ3Mgd3JpdGUgdG8gRVhFQwotICAgIGVuZAogCiAgICAgLy8gU2V0IFNQSV9QUklPPTIgdG8gYXZvaWQgc3RhcnZpbmcgaW5zdHJ1Y3Rpb24gZmV0Y2ggaW4gdGhlIHdhdmVzIHdlJ3JlIHdhaXRpbmcgZm9yLgogICAgIHNfb3JfYjMyIHNfc2F2ZV90bXAsIHNfc2F2ZV9zdGF0dXMsICgyIDw8IFNRX1dBVkVfU1RBVFVTX1NQSV9QUklPX1NISUZUKQpAQCAtMzgzLDMzICszMTUsNyBAQAogICBMX1NMRUVQOgogICAgIHNfc2xlZXAgMHgyCQkgICAgICAgLy8gc2xlZXAgMSAoNjRjbGspIGlzIG5vdCBlbm91Z2ggZm9yIDggd2F2ZXMgcGVyIFNJTUQsIHdoaWNoIHdpbGwgY2F1c2UgU1EgaGFuZywgc2luY2UgdGhlIDcsOHRoIHdhdmUgY291bGQgbm90IGdldCBhcmJpdCB0byBleGVjIGluc3QsIHdoaWxlIG90aGVyIHdhdmVzIGFyZSBzdHVjayBpbnRvIHRoZSBzbGVlcC1sb29wIGFuZCB3YWl0aW5nIGZvciB3cmV4ZWMhPTAKIAotICAgIGlmIChFTVVfUlVOX0hBQ0spCi0KLSAgICBlbHNlCiAJc19jYnJhbmNoX2V4ZWN6IExfU0xFRVAKLSAgICBlbmQKLQotaWYgRzhTUl9ERUJVR19USU1FU1RBTVAKLQlzX21lbXJlYWx0aW1lICBzX2c4c3JfdHNfc3BpX3dyZXhlYwotCXNfd2FpdGNudCBsZ2ttY250KDApCi1lbmQKLQotICAgIGlmICgoRU1VX1JVTl9IQUNLKSAmJiAoIUVNVV9SVU5fSEFDS19TQVZFX1NJTkdMRV9XQVZFKSkKLQkvL2NhbGN1bGF0ZSB3ZF9hZGRyIHVzaW5nIGFic29sdXRlIHRocmVhZCBpZAotCXZfcmVhZGxhbmVfYjMyIHNfc2F2ZV90bXAsIHY5LCAwCi0Jc19sc2hyX2IzMiBzX3NhdmVfdG1wLCBzX3NhdmVfdG1wLCA2Ci0Jc19tdWxfaTMyIHNfc2F2ZV90bXAsIHNfc2F2ZV90bXAsIFdBVkVfU1BBQ0UKLQlzX2FkZF9pMzIgc19zYXZlX3NwaV9pbml0X2xvLCBzX3NhdmVfdG1wLCBXR19CQVNFX0FERFJfTE8KLQlzX21vdl9iMzIgc19zYXZlX3NwaV9pbml0X2hpLCBXR19CQVNFX0FERFJfSEkKLQlzX2FuZF9iMzIgc19zYXZlX3NwaV9pbml0X2hpLCBzX3NhdmVfc3BpX2luaXRfaGksIENUWF9TQVZFX0NPTlRST0wKLSAgICBlbHNlCi0gICAgZW5kCi0gICAgaWYgKChFTVVfUlVOX0hBQ0spICYmIChFTVVfUlVOX0hBQ0tfU0FWRV9TSU5HTEVfV0FWRSkpCi0Jc19hZGRfaTMyIHNfc2F2ZV9zcGlfaW5pdF9sbywgc19zYXZlX3RtcCwgV0dfQkFTRV9BRERSX0xPCi0Jc19tb3ZfYjMyIHNfc2F2ZV9zcGlfaW5pdF9oaSwgV0dfQkFTRV9BRERSX0hJCi0Jc19hbmRfYjMyIHNfc2F2ZV9zcGlfaW5pdF9oaSwgc19zYXZlX3NwaV9pbml0X2hpLCBDVFhfU0FWRV9DT05UUk9MCi0gICAgZWxzZQotICAgIGVuZAogCiAgICAgLy8gU2F2ZSB0cmFwIHRlbXBvcmFyaWVzIDQtMTEsIDEzIGluaXRpYWxpemVkIGJ5IFNQSSBkZWJ1ZyBkaXNwYXRjaCBsb2dpYwogICAgIC8vIHR0bXAgU1IgbWVtb3J5IG9mZnNldCA6IHNpemUoVkdQUikrc2l6ZShTR1BSKSsweDQwCkBAIC00NTksMjAgKzM2NSwxMCBAQAogCiAKICAgICBzX21vdl9iMzIJICAgIHNfc2F2ZV9idWZfcnNyYzIsIDB4NAkJCQkvL05VTV9SRUNPUkRTCWluIGJ5dGVzCi0gICAgaWYgKFNXSVpaTEVfRU4pCi0Jc19hZGRfdTMyCXNfc2F2ZV9idWZfcnNyYzIsIHNfc2F2ZV9idWZfcnNyYzIsIDB4MAkJCSAgICAvL0ZJWE1FIG5lZWQgdG8gdXNlIHN3aXp6bGUgdG8gZW5hYmxlIGJvdW5kcyBjaGVja2luZz8KLSAgICBlbHNlCiAJc19tb3ZfYjMyCXNfc2F2ZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJICAgIC8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLSAgICBlbmQKIAogCiAgICAgd3JpdGVfaHdyZWdfdG9fbWVtKHNfc2F2ZV9tMCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQpCQkJLy9NMAotCi0gICAgaWYgKChFTVVfUlVOX0hBQ0spICYmIChFTVVfUlVOX0hBQ0tfU0FWRV9GSVJTVF9USU1FKSkKLQlzX2FkZF91MzIgc19zYXZlX3BjX2xvLCBzX3NhdmVfcGNfbG8sIDQJCSAgICAvL3BjWzMxOjBdKzQKLQlzX2FkZGNfdTMyIHNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCAweDAJICAgIC8vY2FycnkgYml0IG92ZXIKLSAgICBlbmQKLQogICAgIHdyaXRlX2h3cmVnX3RvX21lbShzX3NhdmVfcGNfbG8sIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQkJICAgIC8vUEMKICAgICB3cml0ZV9od3JlZ190b19tZW0oc19zYXZlX3BjX2hpLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCkKICAgICB3cml0ZV9od3JlZ190b19tZW0oc19zYXZlX2V4ZWNfbG8sIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQkJLy9FWEVDCkBAIC01MTAsMTcgKzQwNiw5IEBACiAgICAgc19hZGRfdTMyCSAgICBzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDEKICAgICBzX2xzaGxfYjMyCSAgICBzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDQJCQkgICAgLy9OdW1iZXIgb2YgU0dQUnMgPSAoc2dwcl9zaXplICsgMSkgKiAxNiAgIChub24temVybyB2YWx1ZSkKIAotICAgIGlmIChTR1BSX1NBVkVfVVNFX1NRQykKIAlzX2xzaGxfYjMyCXNfc2F2ZV9idWZfcnNyYzIsICAgc19zYXZlX2FsbG9jX3NpemUsIDIJCSAgICAvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0gICAgZWxzZQotCXNfbHNobF9iMzIJc19zYXZlX2J1Zl9yc3JjMiwgICBzX3NhdmVfYWxsb2Nfc2l6ZSwgOAkJICAgIC8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMgKDY0IHRocmVhZHMpCi0gICAgZW5kCiAKLSAgICBpZiAoU1dJWlpMRV9FTikKLQlzX2FkZF91MzIJc19zYXZlX2J1Zl9yc3JjMiwgc19zYXZlX2J1Zl9yc3JjMiwgMHgwCQkJICAgIC8vRklYTUUgbmVlZCB0byB1c2Ugc3dpenpsZSB0byBlbmFibGUgYm91bmRzIGNoZWNraW5nPwotICAgIGVsc2UKIAlzX21vdl9iMzIJc19zYXZlX2J1Zl9yc3JjMiwgIDB4MTAwMDAwMAkJCQkgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAogCiAKICAgICAvLyBiYWNrdXAgc19zYXZlX2J1Zl9yc3JjMCwxIHRvIHNfc2F2ZV9wY19sby9oaSwgc2luY2Ugd3JpdGVfMTZzZ3ByX3RvX21lbSBmdW5jdGlvbiB3aWxsIGNoYW5nZSB0aGUgcnNyYzAKQEAgLTU2MywzMCArNDUxLDI1IEBACiAgICAgc19tb3ZfYjMyCSAgICB4bmFja19tYXNrX2xvLCAweDAKICAgICBzX21vdl9iMzIJICAgIHhuYWNrX21hc2tfaGksIDB4MAogCi0gICAgaWYgKFNXSVpaTEVfRU4pCi0Jc19hZGRfdTMyCXNfc2F2ZV9idWZfcnNyYzIsIHNfc2F2ZV9idWZfcnNyYzIsIDB4MAkJCSAgICAvL0ZJWE1FIG5lZWQgdG8gdXNlIHN3aXp6bGUgdG8gZW5hYmxlIGJvdW5kcyBjaGVja2luZz8KLSAgICBlbHNlCiAJc19tb3ZfYjMyCXNfc2F2ZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJICAgIC8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLSAgICBlbmQKIAogCiAgICAgLy8gVkdQUiBBbGxvY2F0ZWQgaW4gNC1HUFIgZ3JhbnVsYXJpdHkKIAotaWYgRzhTUl9WR1BSX1NSX0lOX0RXWDQKLQkvLyB0aGUgY29uc3Qgc3RyaWRlIGZvciBEV3g0IGlzIDQqNCBieXRlcwotCXNfYW5kX2IzMiBzX3NhdmVfYnVmX3JzcmMxLCBzX3NhdmVfYnVmX3JzcmMxLCAweDAwMDBGRkZGICAgLy8gcmVzZXQgY29uc3Qgc3RyaWRlIHRvIDAKLQlzX29yX2IzMiAgc19zYXZlX2J1Zl9yc3JjMSwgc19zYXZlX2J1Zl9yc3JjMSwgRzhTUl9TQVZFX0JVRl9SU1JDX1dPUkQxX1NUUklERV9EV3g0ICAvLyBjb25zdCBzdHJpZGUgdG8gNCo0IGJ5dGVzCitpZiBTQVZFX0FGVEVSX1hOQUNLX0VSUk9SCisJY2hlY2tfaWZfdGNwX3N0b3JlX29rKCkKKwlzX2NicmFuY2hfc2NjMSBMX1NBVkVfRklSU1RfVkdQUlNfV0lUSF9UQ1AKIAotCWJ1ZmZlcl9zdG9yZV9kd29yZHg0IHYwLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEKKwl3cml0ZV92Z3Byc190b19tZW1fd2l0aF9zcWModjAsIDQsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQorCXNfYnJhbmNoIExfU0FWRV9MRFMKIAotCXNfYW5kX2IzMiBzX3NhdmVfYnVmX3JzcmMxLCBzX3NhdmVfYnVmX3JzcmMxLCAweDAwMDBGRkZGICAgLy8gcmVzZXQgY29uc3Qgc3RyaWRlIHRvIDAKLQlzX29yX2IzMiAgc19zYXZlX2J1Zl9yc3JjMSwgc19zYXZlX2J1Zl9yc3JjMSwgU19TQVZFX0JVRl9SU1JDX1dPUkQxX1NUUklERSAgLy8gcmVzZXQgY29uc3Qgc3RyaWRlIHRvIDQgYnl0ZXMKLWVsc2UKK0xfU0FWRV9GSVJTVF9WR1BSU19XSVRIX1RDUDoKK2VuZAorCiAJYnVmZmVyX3N0b3JlX2R3b3JkIHYwLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEKIAlidWZmZXJfc3RvcmVfZHdvcmQgdjEsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSAgb2Zmc2V0OjI1NgogCWJ1ZmZlcl9zdG9yZV9kd29yZCB2MiwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxICBvZmZzZXQ6MjU2KjIKIAlidWZmZXJfc3RvcmVfZHdvcmQgdjMsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSAgb2Zmc2V0OjI1NiozCi1lbmQKIAogCiAKQEAgLTYyMSw2NiArNTA0LDM0IEBACiAgICAgc19hZGRfdTMyIHNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgZ2V0X2h3cmVnX3NpemVfYnl0ZXMoKQogCiAKLSAgICBpZiAoU1dJWlpMRV9FTikKLQlzX2FkZF91MzIJc19zYXZlX2J1Zl9yc3JjMiwgc19zYXZlX2J1Zl9yc3JjMiwgMHgwCSAgICAgIC8vRklYTUUgbmVlZCB0byB1c2Ugc3dpenpsZSB0byBlbmFibGUgYm91bmRzIGNoZWNraW5nPwotICAgIGVsc2UKIAlzX21vdl9iMzIJc19zYXZlX2J1Zl9yc3JjMiwgIDB4MTAwMDAwMAkJICAgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAogCiAgICAgc19tb3ZfYjMyCSAgICBtMCwgMHgwCQkJCQkJICAvL2xkc19vZmZzZXQgaW5pdGlhbCB2YWx1ZSA9IDAKIAogCi12YXIgTERTX0RNQV9FTkFCTEUgPSAwCi12YXIgVU5ST0xMID0gMAotaWYgVU5ST0xMPT0wICYmIExEU19ETUFfRU5BQkxFPT0xCi0Jc19tb3ZfYjMyICBzMywgMjU2KjIKLQlzX25vcCAwCi0Jc19ub3AgMAotCXNfbm9wIDAKLSAgTF9TQVZFX0xEU19MT09QOgotCS8vVE9ETzogbG9va3MgdGhlIDIgYnVmZmVyX3N0b3JlL2xvYWQgY2xhdXNlIGZvciBzL3Igd2lsbCBodXJ0IHBlcmZvcm1hbmNlLj8/PwotICAgIGlmIChTQVZFX0xEUykgICAgIC8vU1BJIGFsd2F5cyBhbGxvYyBMRFMgc3BhY2UgaW4gMTI4RFcgZ3JhbnVsYXJpdHkKLQkgICAgYnVmZmVyX3N0b3JlX2xkc19kd29yZCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBsZHM6MQkJLy8gZmlyc3QgNjREVwotCSAgICBidWZmZXJfc3RvcmVfbGRzX2R3b3JkIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IGxkczoxIG9mZnNldDoyNTYgLy8gc2Vjb25kIDY0RFcKLSAgICBlbmQKLQotICAgIHNfYWRkX3UzMgkgICAgbTAsIG0wLCBzMwkJCQkJCS8vZXZlcnkgYnVmZmVyX3N0b3JlX2xkcyBkb2VzIDI1NiBieXRlcwotICAgIHNfYWRkX3UzMgkgICAgc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBzMwkJCQkvL21lbSBvZmZzZXQgaW5jcmVhc2VkIGJ5IDI1NiBieXRlcwotICAgIHNfY21wX2x0X3UzMiAgICBtMCwgc19zYXZlX2FsbG9jX3NpemUJCQkJCQkvL3NjYz0obTAgPCBzX3NhdmVfYWxsb2Nfc2l6ZSkgPyAxIDogMAotICAgIHNfY2JyYW5jaF9zY2MxICBMX1NBVkVfTERTX0xPT1AJCQkJCQkJLy9MRFMgc2F2ZSBpcyBjb21wbGV0ZT8KLQotZWxzaWYgTERTX0RNQV9FTkFCTEU9PTEgJiYgVU5ST0xMPT0xIC8vIFVOUk9PTAksIGhhcyBpY2hhY2UgbWlzcwotICAgICAgLy8gc3RvcmUgZnJvbSBoaWdlc3QgTERTIGFkZHJlc3MgdG8gbG93ZXN0Ci0gICAgICBzX21vdl9iMzIJIHMzLCAyNTYqMgotICAgICAgc19zdWJfdTMyCSBtMCwgc19zYXZlX2FsbG9jX3NpemUsIHMzCi0gICAgICBzX2FkZF91MzIgc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCBtMAotICAgICAgc19sc2hyX2IzMiBzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDkgICAvLyBob3cgbWFueSAxMjggdHJ1bmtzLi4uCi0gICAgICBzX3N1Yl91MzIgc19zYXZlX2FsbG9jX3NpemUsIDEyOCwgc19zYXZlX2FsbG9jX3NpemUgICAvLyBzdG9yZSBmcm9tIGhpZ2hlc2V0IGFkZHIgdG8gbG93ZXN0Ci0gICAgICBzX211bF9pMzIgc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCA2KjQgICAvLyBQQyBvZmZzZXQgaW5jcmVtZW50LCAgZWFjaCBMRFMgc2F2ZSBibG9jayBjb3N0IDYqNCBCeXRlcyBpbnN0cnVjdGlvbgotICAgICAgc19hZGRfdTMyIHNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMyo0ICAgLy8yaXMgdGhlIGJlbG93IDIgaW5zdC4uLi8vc19hZGRjIGFuZCBzX3NldHBjCi0gICAgICBzX25vcCAwCi0gICAgICBzX25vcCAwCi0gICAgICBzX25vcCAwCS8vcGFkIDMgZHcgdG8gbGV0IExEU19ETUEgYWxpZ24gd2l0aCA2NEJ5dGVzCi0gICAgICBzX2dldHBjX2I2NCBzWzA6MV0JCQkgICAgICAvLyByZXVzZSBzWzA6MV0sIHNpbmNlIHNbMDoxXSBhbHJlYWR5IHNhdmVkCi0gICAgICBzX2FkZF91MzIJICBzMCwgczAsc19zYXZlX2FsbG9jX3NpemUKLSAgICAgIHNfYWRkY191MzIgIHMxLCBzMSwgMAotICAgICAgc19zZXRwY19iNjQgc1swOjFdCi0KLQotICAgICAgIGZvciB2YXIgaSA9MDsgaTwgMTI4OyBpKysKLQkgICAgLy8gYmUgY2FyZWZ1bCB0byBtYWtlIGhlcmUgYSA2NEJ5dGUgYWxpZ25lZCBhZGRyZXNzLCB3aGljaCBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLi4uCi0JICAgIGJ1ZmZlcl9zdG9yZV9sZHNfZHdvcmQgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgbGRzOjEgb2Zmc2V0OjAJCS8vIGZpcnN0IDY0RFcKLQkgICAgYnVmZmVyX3N0b3JlX2xkc19kd29yZCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBsZHM6MSBvZmZzZXQ6MjU2CQkgIC8vIHNlY29uZCA2NERXCi0KLQlpZiBpIT0xMjcKLQlzX3N1Yl91MzIgIG0wLCBtMCwgczMJICAgLy8gdXNlIGEgc2dwciB0byBzaHJpbmsgMkRXLWluc3QgdG8gMURXIGluc3QgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSAsIGkuZS4gIHBhY2sgbW9yZSBMRFNfRE1BIGluc3QgdG8gb25lIENhY2hlbGluZQotCSAgICBzX3N1Yl91MzIgIHNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgIHMzCi0JICAgIGVuZAotICAgICAgIGVuZAotCi1lbHNlICAgLy8gQlVGRkVSX1NUT1JFCiAgICAgICB2X21iY250X2xvX3UzMl9iMzIgdjIsIDB4ZmZmZmZmZmYsIDB4MAogICAgICAgdl9tYmNudF9oaV91MzJfYjMyIHYzLCAweGZmZmZmZmZmLCB2MgkvLyB0aWQKKworaWYgU0FWRV9BRlRFUl9YTkFDS19FUlJPUgorCWNoZWNrX2lmX3RjcF9zdG9yZV9vaygpCisJc19jYnJhbmNoX3NjYzEgTF9TQVZFX0xEU19XSVRIX1RDUAorCisJdl9sc2hscmV2X2IzMiB2MiwgMiwgdjMKK0xfU0FWRV9MRFNfTE9PUF9TUUM6CisJZHNfcmVhZDJfYjMyIHZbMDoxXSwgdjIgb2Zmc2V0MDowIG9mZnNldDE6MHg0MAorCXNfd2FpdGNudCBsZ2ttY250KDApCisKKwl3cml0ZV92Z3Byc190b19tZW1fd2l0aF9zcWModjAsIDIsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQorCisJdl9hZGRfdTMyIHYyLCAweDIwMCwgdjIKKwl2X2NtcF9sdF91MzIgdmNjWzA6MV0sIHYyLCBzX3NhdmVfYWxsb2Nfc2l6ZQorCXNfY2JyYW5jaF92Y2NueiBMX1NBVkVfTERTX0xPT1BfU1FDCisKKwlzX2JyYW5jaCBMX1NBVkVfTERTX0RPTkUKKworTF9TQVZFX0xEU19XSVRIX1RDUDoKK2VuZAorCiAgICAgICB2X211bF9pMzJfaTI0IHYyLCB2MywgOAkvLyB0aWQqOAogICAgICAgdl9tb3ZfYjMyIHYzLCAyNTYqMgogICAgICAgc19tb3ZfYjMyIG0wLCAweDEwMDAwCkBAIC03MDEsOCArNTUyLDYgQEAKICAgICAgIC8vIHJlc3RvcmUgcnNyYzMKICAgICAgIHNfbW92X2IzMiBzX3NhdmVfYnVmX3JzcmMzLCBzMAogCi1lbmQKLQogTF9TQVZFX0xEU19ET05FOgogCiAKQEAgLTcyMCw0NCArNTY5LDkgQEAKICAgICBzX2FkZF91MzIJICAgIHNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMQogICAgIHNfbHNobF9iMzIJICAgIHNfc2F2ZV9hbGxvY19zaXplLCBzX3NhdmVfYWxsb2Nfc2l6ZSwgMgkJCSAgICAvL051bWJlciBvZiBWR1BScyA9ICh2Z3ByX3NpemUgKyAxKSAqIDQgICAgKG5vbi16ZXJvIHZhbHVlKQkgIC8vRklYTUUgZm9yIEdGWCwgemVybyBpcyBwb3NzaWJsZQogICAgIHNfbHNobF9iMzIJICAgIHNfc2F2ZV9idWZfcnNyYzIsICBzX3NhdmVfYWxsb2Nfc2l6ZSwgOAkJCSAgICAvL05VTV9SRUNPUkRTIGluIGJ5dGVzICg2NCB0aHJlYWRzKjQpCi0gICAgaWYgKFNXSVpaTEVfRU4pCi0Jc19hZGRfdTMyCXNfc2F2ZV9idWZfcnNyYzIsIHNfc2F2ZV9idWZfcnNyYzIsIDB4MAkJCSAgICAvL0ZJWE1FIG5lZWQgdG8gdXNlIHN3aXp6bGUgdG8gZW5hYmxlIGJvdW5kcyBjaGVja2luZz8KLSAgICBlbHNlCiAJc19tb3ZfYjMyCXNfc2F2ZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJICAgIC8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLSAgICBlbmQKIAogCi0gICAgLy8gVkdQUiBBbGxvY2F0ZWQgaW4gNC1HUFIgZ3JhbnVsYXJpdHkKLQotaWYgRzhTUl9WR1BSX1NSX0lOX0RXWDQKLQkvLyB0aGUgY29uc3Qgc3RyaWRlIGZvciBEV3g0IGlzIDQqNCBieXRlcwotCXNfYW5kX2IzMiBzX3NhdmVfYnVmX3JzcmMxLCBzX3NhdmVfYnVmX3JzcmMxLCAweDAwMDBGRkZGICAgLy8gcmVzZXQgY29uc3Qgc3RyaWRlIHRvIDAKLQlzX29yX2IzMiAgc19zYXZlX2J1Zl9yc3JjMSwgc19zYXZlX2J1Zl9yc3JjMSwgRzhTUl9TQVZFX0JVRl9SU1JDX1dPUkQxX1NUUklERV9EV3g0ICAvLyBjb25zdCBzdHJpZGUgdG8gNCo0IGJ5dGVzCi0KLQlzX21vdl9iMzIJICBtMCwgNAkgICAgLy8gc2tpcCBmaXJzdCA0IFZHUFJzCi0Jc19jbXBfbHRfdTMyCSAgbTAsIHNfc2F2ZV9hbGxvY19zaXplCi0Jc19jYnJhbmNoX3NjYzAJICBMX1NBVkVfVkdQUl9MT09QX0VORAkgICAgLy8gbm8gbW9yZSB2Z3BycwotCi0Jc19zZXRfZ3ByX2lkeF9vbiAgbTAsIDB4MSAgIC8vIFRoaXMgd2lsbCBjaGFuZ2UgTTAKLQlzX2FkZF91MzIJICBzX3NhdmVfYWxsb2Nfc2l6ZSwgc19zYXZlX2FsbG9jX3NpemUsIDB4MTAwMAkvLyBiZWNhdXNlIGFib3ZlIGluc3QgY2hhbmdlIG0wCi1MX1NBVkVfVkdQUl9MT09QOgotCXZfbW92X2IzMgkgIHYwLCB2MCAgIC8vIHYwID0gdlswK20wXQotCXZfbW92X2IzMgkgIHYxLCB2MQotCXZfbW92X2IzMgkgIHYyLCB2MgotCXZfbW92X2IzMgkgIHYzLCB2MwotCi0KLQlidWZmZXJfc3RvcmVfZHdvcmR4NCB2MCwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxCi0Jc19hZGRfdTMyCSAgbTAsIG0wLCA0Ci0Jc19hZGRfdTMyCSAgc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCAyNTYqNAotCXNfY21wX2x0X3UzMgkgIG0wLCBzX3NhdmVfYWxsb2Nfc2l6ZQotICAgIHNfY2JyYW5jaF9zY2MxICBMX1NBVkVfVkdQUl9MT09QCQkJCQkJICAgIC8vVkdQUiBzYXZlIGlzIGNvbXBsZXRlPwotICAgIHNfc2V0X2dwcl9pZHhfb2ZmCi1MX1NBVkVfVkdQUl9MT09QX0VORDoKLQotCXNfYW5kX2IzMiBzX3NhdmVfYnVmX3JzcmMxLCBzX3NhdmVfYnVmX3JzcmMxLCAweDAwMDBGRkZGICAgLy8gcmVzZXQgY29uc3Qgc3RyaWRlIHRvIDAKLQlzX29yX2IzMiAgc19zYXZlX2J1Zl9yc3JjMSwgc19zYXZlX2J1Zl9yc3JjMSwgU19TQVZFX0JVRl9SU1JDX1dPUkQxX1NUUklERSAgLy8gcmVzZXQgY29uc3Qgc3RyaWRlIHRvIDQgYnl0ZXMKLWVsc2UKICAgICAvLyBWR1BSIHN0b3JlIHVzaW5nIGR3IGJ1cnN0CiAgICAgc19tb3ZfYjMyCSAgICAgIG0wLCAweDQJLy9WR1BSIGluaXRpYWwgaW5kZXggdmFsdWUgPTAKICAgICBzX2NtcF9sdF91MzIgICAgICBtMCwgc19zYXZlX2FsbG9jX3NpemUKQEAgLTc2Nyw1NyArNTgxLDgyIEBACiAgICAgc19zZXRfZ3ByX2lkeF9vbgltMCwgMHgxIC8vTTBbNzowXSA9IE0wWzc6MF0gYW5kIE0wWzE1OjEyXSA9IDB4MQogICAgIHNfYWRkX3UzMgkgICAgc19zYXZlX2FsbG9jX3NpemUsIHNfc2F2ZV9hbGxvY19zaXplLCAweDEwMDAJCSAgICAvL2FkZCAweDEwMDAgc2luY2Ugd2UgY29tcGFyZSBtMCBhZ2FpbnN0IGl0IGxhdGVyCiAKK2lmIFNBVkVfQUZURVJfWE5BQ0tfRVJST1IKKwljaGVja19pZl90Y3Bfc3RvcmVfb2soKQorCXNfY2JyYW5jaF9zY2MxIExfU0FWRV9WR1BSX0xPT1AKKworTF9TQVZFX1ZHUFJfTE9PUF9TUUM6CisJd3JpdGVfdmdwcnNfdG9fbWVtX3dpdGhfc3FjKHYwLCA0LCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCkKKworCXNfYWRkX3UzMiBtMCwgbTAsIDQKKwlzX2NtcF9sdF91MzIgbTAsIHNfc2F2ZV9hbGxvY19zaXplCisJc19jYnJhbmNoX3NjYzEgTF9TQVZFX1ZHUFJfTE9PUF9TUUMKKworCXNfc2V0X2dwcl9pZHhfb2ZmCisJc19icmFuY2ggTF9TQVZFX1ZHUFJfRU5ECitlbmQKKwogICBMX1NBVkVfVkdQUl9MT09QOgogICAgIHZfbW92X2IzMgkgICAgdjAsIHYwCQkvL3YwID0gdlswK20wXQogICAgIHZfbW92X2IzMgkgICAgdjEsIHYxCQkvL3YwID0gdlswK20wXQogICAgIHZfbW92X2IzMgkgICAgdjIsIHYyCQkvL3YwID0gdlswK20wXQogICAgIHZfbW92X2IzMgkgICAgdjMsIHYzCQkvL3YwID0gdlswK20wXQogCi0gICAgaWYoVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCi0JdGJ1ZmZlcl9zdG9yZV9mb3JtYXRfeCB2MCwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IGZvcm1hdDpCVUZfTlVNX0ZPUk1BVF9GTE9BVCBmb3JtYXQ6IEJVRl9EQVRBX0ZPUk1BVF8zMiBzbGM6MSBnbGM6MQotICAgIGVsc2UKIAlidWZmZXJfc3RvcmVfZHdvcmQgdjAsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MQogCWJ1ZmZlcl9zdG9yZV9kd29yZCB2MSwgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxICBvZmZzZXQ6MjU2CiAJYnVmZmVyX3N0b3JlX2R3b3JkIHYyLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgIG9mZnNldDoyNTYqMgogCWJ1ZmZlcl9zdG9yZV9kd29yZCB2MywgdjAsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxICBvZmZzZXQ6MjU2KjMKLSAgICBlbmQKIAogICAgIHNfYWRkX3UzMgkgICAgbTAsIG0wLCA0CQkJCQkJCSAgICAvL25leHQgdmdwciBpbmRleAogICAgIHNfYWRkX3UzMgkgICAgc19zYXZlX21lbV9vZmZzZXQsIHNfc2F2ZV9tZW1fb2Zmc2V0LCAyNTYqNAkJCSAgICAvL2V2ZXJ5IGJ1ZmZlcl9zdG9yZV9kd29yZCBkb2VzIDI1NiBieXRlcwogICAgIHNfY21wX2x0X3UzMiAgICBtMCwgc19zYXZlX2FsbG9jX3NpemUJCQkJCSAgICAvL3NjYyA9IChtMCA8IHNfc2F2ZV9hbGxvY19zaXplKSA/IDEgOiAwCiAgICAgc19jYnJhbmNoX3NjYzEgIExfU0FWRV9WR1BSX0xPT1AJCQkJCQkgICAgLy9WR1BSIHNhdmUgaXMgY29tcGxldGU/CiAgICAgc19zZXRfZ3ByX2lkeF9vZmYKLWVuZAogCiBMX1NBVkVfVkdQUl9FTkQ6CiAKK2lmIEFTSUNfVEFSR0VUX0FSQ1RVUlVTCisgICAgLy8gU2F2ZSBBQ0MgVkdQUnMKKyAgICBzX21vdl9iMzIgbTAsIDB4MCAvL1ZHUFIgaW5pdGlhbCBpbmRleCB2YWx1ZSA9MAorICAgIHNfc2V0X2dwcl9pZHhfb24gbTAsIDB4MSAvL00wWzc6MF0gPSBNMFs3OjBdIGFuZCBNMFsxNToxMl0gPSAweDEKIAoraWYgU0FWRV9BRlRFUl9YTkFDS19FUlJPUgorICAgIGNoZWNrX2lmX3RjcF9zdG9yZV9vaygpCisgICAgc19jYnJhbmNoX3NjYzEgTF9TQVZFX0FDQ1ZHUFJfTE9PUAogCi0KLQotCi0gICAgLyoJICAgU19QR01fRU5EX1NBVkVEICAqLwkJCQkgICAgLy9GSVhNRSAgZ3JhcGhpY3MgT05MWQotICAgIGlmICgoRU1VX1JVTl9IQUNLKSAmJiAoIUVNVV9SVU5fSEFDS19TQVZFX05PUk1BTF9FWElUKSkKLQlzX2FuZF9iMzIgc19zYXZlX3BjX2hpLCBzX3NhdmVfcGNfaGksIDB4MDAwMGZmZmYgICAgLy9wY1s0NzozMl0KLQlzX2FkZF91MzIgc19zYXZlX3BjX2xvLCBzX3NhdmVfcGNfbG8sIDQJCSAgICAvL3BjWzMxOjBdKzQKLQlzX2FkZGNfdTMyIHNfc2F2ZV9wY19oaSwgc19zYXZlX3BjX2hpLCAweDAJICAgIC8vY2FycnkgYml0IG92ZXIKLQlzX3JmZV9iNjQgc19zYXZlX3BjX2xvCQkJCSAgICAvL1JldHVybiB0byB0aGUgbWFpbiBzaGFkZXIgcHJvZ3JhbQotICAgIGVsc2UKK0xfU0FWRV9BQ0NWR1BSX0xPT1BfU1FDOgorICAgIGZvciB2YXIgdmdwciA9IDA7IHZncHIgPCA0OyArKyB2Z3ByCisgICAgICAgIHZfYWNjdmdwcl9yZWFkIHZbdmdwcl0sIGFjY1t2Z3ByXSAgLy8gdltOXSA9IGFjY1tOK20wXQogICAgIGVuZAogCi0vLyBTYXZlIERvbmUgdGltZXN0YW1wCi1pZiBHOFNSX0RFQlVHX1RJTUVTVEFNUAotCXNfbWVtcmVhbHRpbWUJc19nOHNyX3RzX3NhdmVfZAotCS8vIFNHUFIgU1IgbWVtb3J5IG9mZnNldCA6IHNpemUoVkdQUikKLQlnZXRfdmdwcl9zaXplX2J5dGVzKHNfc2F2ZV9tZW1fb2Zmc2V0KQotCXNfYWRkX3UzMiBzX3NhdmVfbWVtX29mZnNldCwgc19zYXZlX21lbV9vZmZzZXQsIEc4U1JfREVCVUdfVFNfU0FWRV9EX09GRlNFVAotCXNfd2FpdGNudCBsZ2ttY250KDApCSAgICAgLy9GSVhNRSwgd2lsbCBjYXVzZSB4bmFjaz8/Ci0JLy8gTmVlZCByZXNldCByc3JjMj8/Ci0Jc19tb3ZfYjMyIG0wLCBzX3NhdmVfbWVtX29mZnNldAotCXNfbW92X2IzMiBzX3NhdmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwCQkJCQkvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0Jc19idWZmZXJfc3RvcmVfZHdvcmR4MiBzX2c4c3JfdHNfc2F2ZV9kLCBzX3NhdmVfYnVmX3JzcmMwLCBtMAkgICAgZ2xjOjEKKyAgICB3cml0ZV92Z3Byc190b19tZW1fd2l0aF9zcWModjAsIDQsIHNfc2F2ZV9idWZfcnNyYzAsIHNfc2F2ZV9tZW1fb2Zmc2V0KQorCisgICAgc19hZGRfdTMyIG0wLCBtMCwgNAorICAgIHNfY21wX2x0X3UzMiBtMCwgc19zYXZlX2FsbG9jX3NpemUKKyAgICBzX2NicmFuY2hfc2NjMSBMX1NBVkVfQUNDVkdQUl9MT09QX1NRQworCisgICAgc19zZXRfZ3ByX2lkeF9vZmYKKyAgICBzX2JyYW5jaCBMX1NBVkVfQUNDVkdQUl9FTkQKIGVuZAogCitMX1NBVkVfQUNDVkdQUl9MT09QOgorICAgIGZvciB2YXIgdmdwciA9IDA7IHZncHIgPCA0OyArKyB2Z3ByCisgICAgICAgIHZfYWNjdmdwcl9yZWFkIHZbdmdwcl0sIGFjY1t2Z3ByXSAgLy8gdltOXSA9IGFjY1tOK20wXQorICAgIGVuZAorCisgICAgYnVmZmVyX3N0b3JlX2R3b3JkIHYwLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEKKyAgICBidWZmZXJfc3RvcmVfZHdvcmQgdjEsIHYwLCBzX3NhdmVfYnVmX3JzcmMwLCBzX3NhdmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2CisgICAgYnVmZmVyX3N0b3JlX2R3b3JkIHYyLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NioyCisgICAgYnVmZmVyX3N0b3JlX2R3b3JkIHYzLCB2MCwgc19zYXZlX2J1Zl9yc3JjMCwgc19zYXZlX21lbV9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NiozCisKKyAgICBzX2FkZF91MzIgbTAsIG0wLCA0CisgICAgc19hZGRfdTMyIHNfc2F2ZV9tZW1fb2Zmc2V0LCBzX3NhdmVfbWVtX29mZnNldCwgMjU2KjQKKyAgICBzX2NtcF9sdF91MzIgbTAsIHNfc2F2ZV9hbGxvY19zaXplCisgICAgc19jYnJhbmNoX3NjYzEgTF9TQVZFX0FDQ1ZHUFJfTE9PUAorICAgIHNfc2V0X2dwcl9pZHhfb2ZmCisKK0xfU0FWRV9BQ0NWR1BSX0VORDoKK2VuZAogCiAgICAgc19icmFuY2gJTF9FTkRfUEdNCiAKQEAgLTgyOSwyNyArNjY4LDYgQEAKIAogTF9SRVNUT1JFOgogICAgIC8qCSAgICBTZXR1cCBSZXNvdXJjZSBDb250YW50cyAgICAqLwotICAgIGlmICgoRU1VX1JVTl9IQUNLKSAmJiAoIUVNVV9SVU5fSEFDS19SRVNUT1JFX05PUk1BTCkpCi0JLy9jYWxjdWxhdGUgd2RfYWRkciB1c2luZyBhYnNvbHV0ZSB0aHJlYWQgaWQKLQl2X3JlYWRsYW5lX2IzMiBzX3Jlc3RvcmVfdG1wLCB2OSwgMAotCXNfbHNocl9iMzIgc19yZXN0b3JlX3RtcCwgc19yZXN0b3JlX3RtcCwgNgotCXNfbXVsX2kzMiBzX3Jlc3RvcmVfdG1wLCBzX3Jlc3RvcmVfdG1wLCBXQVZFX1NQQUNFCi0Jc19hZGRfaTMyIHNfcmVzdG9yZV9zcGlfaW5pdF9sbywgc19yZXN0b3JlX3RtcCwgV0dfQkFTRV9BRERSX0xPCi0Jc19tb3ZfYjMyIHNfcmVzdG9yZV9zcGlfaW5pdF9oaSwgV0dfQkFTRV9BRERSX0hJCi0Jc19hbmRfYjMyIHNfcmVzdG9yZV9zcGlfaW5pdF9oaSwgc19yZXN0b3JlX3NwaV9pbml0X2hpLCBDVFhfUkVTVE9SRV9DT05UUk9MCi0gICAgZWxzZQotICAgIGVuZAotCi1pZiBHOFNSX0RFQlVHX1RJTUVTVEFNUAotCXNfbWVtcmVhbHRpbWUJc19nOHNyX3RzX3Jlc3RvcmVfcwotCXNfd2FpdGNudCBsZ2ttY250KDApCSAgICAgLy9GSVhNRSwgd2lsbCBjYXVzZSB4bmFjaz8/Ci0JLy8gdG1hX2xvL2hpIGFyZSBzZ3ByIDExMCwgMTExLCB3aGljaCB3aWxsIG5vdCB1c2VkIGZvciAxMTIgU0dQUiBhbGxvY2F0ZWQgY2FzZS4uLgotCXNfbW92X2IzMiBzX3Jlc3RvcmVfcGNfbG8sIHNfZzhzcl90c19yZXN0b3JlX3NbMF0KLQlzX21vdl9iMzIgc19yZXN0b3JlX3BjX2hpLCBzX2c4c3JfdHNfcmVzdG9yZV9zWzFdICAgLy9iYWNrdXAgdHMgdG8gdHRtcDAvMSwgc2ljbmUgZXhlYyB3aWxsIGJlIGZpbmFsbHkgcmVzdG9yZWQuLgotZW5kCi0KLQotCiAgICAgc19tb3ZfYjMyCSAgICBzX3Jlc3RvcmVfYnVmX3JzcmMwLCAgICBzX3Jlc3RvcmVfc3BpX2luaXRfbG8JCQkJCQkJICAgIC8vYmFzZV9hZGRyX2xvCiAgICAgc19hbmRfYjMyCSAgICBzX3Jlc3RvcmVfYnVmX3JzcmMxLCAgICBzX3Jlc3RvcmVfc3BpX2luaXRfaGksIDB4MDAwMEZGRkYJCQkJCQkgICAgLy9iYXNlX2FkZHJfaGkKICAgICBzX29yX2IzMgkgICAgc19yZXN0b3JlX2J1Zl9yc3JjMSwgICAgc19yZXN0b3JlX2J1Zl9yc3JjMSwgIFNfUkVTVE9SRV9CVUZfUlNSQ19XT1JEMV9TVFJJREUKQEAgLTg5MSwxOCArNzA5LDEyIEBACiAgICAgc19hZGRfdTMyICBzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIGdldF9od3JlZ19zaXplX2J5dGVzKCkJICAgICAvL0ZJWE1FLCBDaGVjayBpZiBvZmZzZXQgb3ZlcmZsb3c/Pz8KIAogCi0gICAgaWYgKFNXSVpaTEVfRU4pCi0Jc19hZGRfdTMyCXNfcmVzdG9yZV9idWZfcnNyYzIsIHNfcmVzdG9yZV9idWZfcnNyYzIsIDB4MAkJCSAgICAvL0ZJWE1FIG5lZWQgdG8gdXNlIHN3aXp6bGUgdG8gZW5hYmxlIGJvdW5kcyBjaGVja2luZz8KLSAgICBlbHNlCiAJc19tb3ZfYjMyCXNfcmVzdG9yZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJCSAgICAvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0gICAgZW5kCiAgICAgc19tb3ZfYjMyCSAgICBtMCwgMHgwCQkJCQkJCQkgICAgLy9sZHNfb2Zmc2V0IGluaXRpYWwgdmFsdWUgPSAwCiAKICAgTF9SRVNUT1JFX0xEU19MT09QOgotICAgIGlmIChTQVZFX0xEUykKIAlidWZmZXJfbG9hZF9kd29yZCAgIHYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQgbGRzOjEJCSAgICAgICAvLyBmaXJzdCA2NERXCiAJYnVmZmVyX2xvYWRfZHdvcmQgICB2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0IGxkczoxIG9mZnNldDoyNTYJICAgICAgIC8vIHNlY29uZCA2NERXCi0gICAgZW5kCiAgICAgc19hZGRfdTMyCSAgICBtMCwgbTAsIDI1NioyCQkJCQkJLy8gMTI4IERXCiAgICAgc19hZGRfdTMyCSAgICBzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDI1NioyCQkvL21lbSBvZmZzZXQgaW5jcmVhc2VkIGJ5IDEyOERXCiAgICAgc19jbXBfbHRfdTMyICAgIG0wLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZQkJCQkJLy9zY2M9KG0wIDwgc19yZXN0b3JlX2FsbG9jX3NpemUpID8gMSA6IDAKQEAgLTkyMSw1NiArNzMzLDQzIEBACiAgICAgc19hZGRfdTMyCSAgICBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDEKICAgICBzX2xzaGxfYjMyCSAgICBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDIJCQkgICAgLy9OdW1iZXIgb2YgVkdQUnMgPSAodmdwcl9zaXplICsgMSkgKiA0ICAgIChub24temVybyB2YWx1ZSkKICAgICBzX2xzaGxfYjMyCSAgICBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgc19yZXN0b3JlX2FsbG9jX3NpemUsIDgJCQkgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcyAoNjQgdGhyZWFkcyo0KQotICAgIGlmIChTV0laWkxFX0VOKQotCXNfYWRkX3UzMglzX3Jlc3RvcmVfYnVmX3JzcmMyLCBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAweDAJCQkgICAgLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0gICAgZWxzZQorCitpZiBBU0lDX1RBUkdFVF9BUkNUVVJVUworICAgIHNfbW92X2IzMgkgICAgc19yZXN0b3JlX2FjY3ZncHJfb2Zmc2V0LCBzX3Jlc3RvcmVfYnVmX3JzcmMyICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9BQ0MgVkdQUnMgYXQgZW5kIG9mIFZHUFJzCitlbmQKKwogCXNfbW92X2IzMglzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwCQkJCQkgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAogCi1pZiBHOFNSX1ZHUFJfU1JfSU5fRFdYNAotICAgICBnZXRfdmdwcl9zaXplX2J5dGVzKHNfcmVzdG9yZV9tZW1fb2Zmc2V0KQotICAgICBzX3N1Yl91MzIJICAgICAgIHNfcmVzdG9yZV9tZW1fb2Zmc2V0LCBzX3Jlc3RvcmVfbWVtX29mZnNldCwgMjU2KjQKLQotICAgICAvLyB0aGUgY29uc3Qgc3RyaWRlIGZvciBEV3g0IGlzIDQqNCBieXRlcwotICAgICBzX2FuZF9iMzIgc19yZXN0b3JlX2J1Zl9yc3JjMSwgc19yZXN0b3JlX2J1Zl9yc3JjMSwgMHgwMDAwRkZGRiAgIC8vIHJlc2V0IGNvbnN0IHN0cmlkZSB0byAwCi0gICAgIHNfb3JfYjMyICBzX3Jlc3RvcmVfYnVmX3JzcmMxLCBzX3Jlc3RvcmVfYnVmX3JzcmMxLCBHOFNSX1JFU1RPUkVfQlVGX1JTUkNfV09SRDFfU1RSSURFX0RXeDQgIC8vIGNvbnN0IHN0cmlkZSB0byA0KjQgYnl0ZXMKLQotICAgICBzX21vdl9iMzIJICAgICAgIG0wLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZQotICAgICBzX3NldF9ncHJfaWR4X29uICBtMCwgMHg4CSAgLy8gTm90ZS4uIFRoaXMgd2lsbCBjaGFuZ2UgbTAKLQotTF9SRVNUT1JFX1ZHUFJfTE9PUDoKLSAgICAgYnVmZmVyX2xvYWRfZHdvcmR4NCB2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxCi0gICAgIHNfd2FpdGNudCB2bWNudCgwKQotICAgICBzX3N1Yl91MzIJICAgICAgIG0wLCBtMCwgNAotICAgICB2X21vdl9iMzIJICAgICAgIHYwLCB2MAkvLyB2WzArbTBdID0gdjAKLSAgICAgdl9tb3ZfYjMyCSAgICAgICB2MSwgdjEKLSAgICAgdl9tb3ZfYjMyCSAgICAgICB2MiwgdjIKLSAgICAgdl9tb3ZfYjMyCSAgICAgICB2MywgdjMKLSAgICAgc19zdWJfdTMyCSAgICAgICBzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDI1Nio0Ci0gICAgIHNfY21wX2VxX3UzMiAgICAgIG0wLCAweDgwMDAKLSAgICAgc19jYnJhbmNoX3NjYzAgICAgTF9SRVNUT1JFX1ZHUFJfTE9PUAotICAgICBzX3NldF9ncHJfaWR4X29mZgotCi0gICAgIHNfYW5kX2IzMiBzX3Jlc3RvcmVfYnVmX3JzcmMxLCBzX3Jlc3RvcmVfYnVmX3JzcmMxLCAweDAwMDBGRkZGICAgLy8gcmVzZXQgY29uc3Qgc3RyaWRlIHRvIDAKLSAgICAgc19vcl9iMzIgIHNfcmVzdG9yZV9idWZfcnNyYzEsIHNfcmVzdG9yZV9idWZfcnNyYzEsIFNfUkVTVE9SRV9CVUZfUlNSQ19XT1JEMV9TVFJJREUgIC8vIGNvbnN0IHN0cmlkZSB0byA0KjQgYnl0ZXMKLQotZWxzZQogICAgIC8vIFZHUFIgbG9hZCB1c2luZyBkdyBidXJzdAogICAgIHNfbW92X2IzMgkgICAgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSwgc19yZXN0b3JlX21lbV9vZmZzZXQJLy8gcmVzdG9yZSBzdGFydCB3aXRoIHYxLCB2MCB3aWxsIGJlIHRoZSBsYXN0CiAgICAgc19hZGRfdTMyCSAgICBzX3Jlc3RvcmVfbWVtX29mZnNldCwgc19yZXN0b3JlX21lbV9vZmZzZXQsIDI1Nio0CitpZiBBU0lDX1RBUkdFVF9BUkNUVVJVUworICAgIHNfbW92X2IzMgkgICAgc19yZXN0b3JlX2FjY3ZncHJfb2Zmc2V0X3NhdmUsIHNfcmVzdG9yZV9hY2N2Z3ByX29mZnNldAorICAgIHNfYWRkX3UzMgkgICAgc19yZXN0b3JlX2FjY3ZncHJfb2Zmc2V0LCBzX3Jlc3RvcmVfYWNjdmdwcl9vZmZzZXQsIDI1Nio0CitlbmQKICAgICBzX21vdl9iMzIJICAgIG0wLCA0CQkJCS8vVkdQUiBpbml0aWFsIGluZGV4IHZhbHVlID0gMQogICAgIHNfc2V0X2dwcl9pZHhfb24gIG0wLCAweDgJCQkgICAgLy9NMFs3OjBdID0gTTBbNzowXSBhbmQgTTBbMTU6MTJdID0gMHg4CiAgICAgc19hZGRfdTMyCSAgICBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDB4ODAwMAkJCSAgICAvL2FkZCAweDgwMDAgc2luY2Ugd2UgY29tcGFyZSBtMCBhZ2FpbnN0IGl0IGxhdGVyCiAKICAgTF9SRVNUT1JFX1ZHUFJfTE9PUDoKLSAgICBpZihVU0VfTVRCVUZfSU5TVEVBRF9PRl9NVUJVRikKLQl0YnVmZmVyX2xvYWRfZm9ybWF0X3ggdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBmb3JtYXQ6QlVGX05VTV9GT1JNQVRfRkxPQVQgZm9ybWF0OiBCVUZfREFUQV9GT1JNQVRfMzIgc2xjOjEgZ2xjOjEKLSAgICBlbHNlCisKK2lmIEFTSUNfVEFSR0VUX0FSQ1RVUlVTCisJYnVmZmVyX2xvYWRfZHdvcmQgdjAsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfYWNjdmdwcl9vZmZzZXQgc2xjOjEgZ2xjOjEKKwlidWZmZXJfbG9hZF9kd29yZCB2MSwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9hY2N2Z3ByX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2CisJYnVmZmVyX2xvYWRfZHdvcmQgdjIsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfYWNjdmdwcl9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NioyCisJYnVmZmVyX2xvYWRfZHdvcmQgdjMsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfYWNjdmdwcl9vZmZzZXQgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NiozCisJc19hZGRfdTMyIHNfcmVzdG9yZV9hY2N2Z3ByX29mZnNldCwgc19yZXN0b3JlX2FjY3ZncHJfb2Zmc2V0LCAyNTYqNAorCXNfd2FpdGNudCB2bWNudCgwKQorCisJZm9yIHZhciB2Z3ByID0gMDsgdmdwciA8IDQ7ICsrIHZncHIKKwkJdl9hY2N2Z3ByX3dyaXRlIGFjY1t2Z3ByXSwgdlt2Z3ByXQorCWVuZAorZW5kCisKIAlidWZmZXJfbG9hZF9kd29yZCB2MCwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxCiAJYnVmZmVyX2xvYWRfZHdvcmQgdjEsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2CiAJYnVmZmVyX2xvYWRfZHdvcmQgdjIsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2KjIKIAlidWZmZXJfbG9hZF9kd29yZCB2MywgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9tZW1fb2Zmc2V0IHNsYzoxIGdsYzoxIG9mZnNldDoyNTYqMwotICAgIGVuZAogICAgIHNfd2FpdGNudAkgICAgdm1jbnQoMCkJCQkJCQkJCSAgICAvL2Vuc3VyZSBkYXRhIHJlYWR5CiAgICAgdl9tb3ZfYjMyCSAgICB2MCwgdjAJCQkJCQkJCSAgICAvL3ZbMCttMF0gPSB2MAogICAgIHZfbW92X2IzMgkgICAgdjEsIHYxCkBAIC05ODIsMTYgKzc4MSwyMiBAQAogICAgIHNfY2JyYW5jaF9zY2MxICBMX1JFU1RPUkVfVkdQUl9MT09QCQkJCQkJCSAgICAvL1ZHUFIgcmVzdG9yZSAoZXhjZXB0IHYwKSBpcyBjb21wbGV0ZT8KICAgICBzX3NldF9ncHJfaWR4X29mZgogCQkJCQkJCQkJCQkgICAgLyogVkdQUiByZXN0b3JlIG9uIHYwICovCi0gICAgaWYoVVNFX01UQlVGX0lOU1RFQURfT0ZfTVVCVUYpCi0JdGJ1ZmZlcl9sb2FkX2Zvcm1hdF94IHYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSBmb3JtYXQ6QlVGX05VTV9GT1JNQVRfRkxPQVQgZm9ybWF0OiBCVUZfREFUQV9GT1JNQVRfMzIgc2xjOjEgZ2xjOjEKLSAgICBlbHNlCitpZiBBU0lDX1RBUkdFVF9BUkNUVVJVUworCWJ1ZmZlcl9sb2FkX2R3b3JkIHYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX2FjY3ZncHJfb2Zmc2V0X3NhdmUgc2xjOjEgZ2xjOjEKKwlidWZmZXJfbG9hZF9kd29yZCB2MSwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9hY2N2Z3ByX29mZnNldF9zYXZlIHNsYzoxIGdsYzoxIG9mZnNldDoyNTYKKwlidWZmZXJfbG9hZF9kd29yZCB2MiwgdjAsIHNfcmVzdG9yZV9idWZfcnNyYzAsIHNfcmVzdG9yZV9hY2N2Z3ByX29mZnNldF9zYXZlIHNsYzoxIGdsYzoxIG9mZnNldDoyNTYqMgorCWJ1ZmZlcl9sb2FkX2R3b3JkIHYzLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX2FjY3ZncHJfb2Zmc2V0X3NhdmUgc2xjOjEgZ2xjOjEgb2Zmc2V0OjI1NiozCisJc193YWl0Y250IHZtY250KDApCisKKwlmb3IgdmFyIHZncHIgPSAwOyB2Z3ByIDwgNDsgKysgdmdwcgorCQl2X2FjY3ZncHJfd3JpdGUgYWNjW3ZncHJdLCB2W3ZncHJdCisJZW5kCitlbmQKKwogCWJ1ZmZlcl9sb2FkX2R3b3JkIHYwLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSAgICBzbGM6MSBnbGM6MQogCWJ1ZmZlcl9sb2FkX2R3b3JkIHYxLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSAgICBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2CiAJYnVmZmVyX2xvYWRfZHdvcmQgdjIsIHYwLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldF9zYXZlICAgIHNsYzoxIGdsYzoxIG9mZnNldDoyNTYqMgogCWJ1ZmZlcl9sb2FkX2R3b3JkIHYzLCB2MCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXRfc2F2ZSAgICBzbGM6MSBnbGM6MSBvZmZzZXQ6MjU2KjMKLSAgICBlbmQKLQotZW5kCiAKICAgICAvKgkJcmVzdG9yZSBTR1BScwkgICAgKi8KICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTEwMDcsMTYgKzgxMiw4IEBACiAgICAgc19hZGRfdTMyCSAgICBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDEKICAgICBzX2xzaGxfYjMyCSAgICBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgc19yZXN0b3JlX2FsbG9jX3NpemUsIDQJCQkgICAgLy9OdW1iZXIgb2YgU0dQUnMgPSAoc2dwcl9zaXplICsgMSkgKiAxNiAgIChub24temVybyB2YWx1ZSkKIAotICAgIGlmIChTR1BSX1NBVkVfVVNFX1NRQykKIAlzX2xzaGxfYjMyCXNfcmVzdG9yZV9idWZfcnNyYzIsCXNfcmVzdG9yZV9hbGxvY19zaXplLCAyCQkJICAgIC8vTlVNX1JFQ09SRFMgaW4gYnl0ZXMKLSAgICBlbHNlCi0Jc19sc2hsX2IzMglzX3Jlc3RvcmVfYnVmX3JzcmMyLAlzX3Jlc3RvcmVfYWxsb2Nfc2l6ZSwgOAkJCSAgICAvL05VTV9SRUNPUkRTIGluIGJ5dGVzICg2NCB0aHJlYWRzKQotICAgIGVuZAotICAgIGlmIChTV0laWkxFX0VOKQotCXNfYWRkX3UzMglzX3Jlc3RvcmVfYnVmX3JzcmMyLCBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAweDAJCQkgICAgLy9GSVhNRSBuZWVkIHRvIHVzZSBzd2l6emxlIHRvIGVuYWJsZSBib3VuZHMgY2hlY2tpbmc/Ci0gICAgZWxzZQogCXNfbW92X2IzMglzX3Jlc3RvcmVfYnVmX3JzcmMyLCAgMHgxMDAwMDAwCQkJCQkgICAgLy9OVU1fUkVDT1JEUyBpbiBieXRlcwotICAgIGVuZAogCiAgICAgc19tb3ZfYjMyIG0wLCBzX3Jlc3RvcmVfYWxsb2Nfc2l6ZQogCkBAIC0xMDQ0LDExICs4NDEsNiBAQAogICBMX1JFU1RPUkVfSFdSRUc6CiAKIAotaWYgRzhTUl9ERUJVR19USU1FU1RBTVAKLSAgICAgIHNfbW92X2IzMiBzX2c4c3JfdHNfcmVzdG9yZV9zWzBdLCBzX3Jlc3RvcmVfcGNfbG8KLSAgICAgIHNfbW92X2IzMiBzX2c4c3JfdHNfcmVzdG9yZV9zWzFdLCBzX3Jlc3RvcmVfcGNfaGkKLWVuZAotCiAgICAgLy8gSFdSRUcgU1IgbWVtb3J5IG9mZnNldCA6IHNpemUoVkdQUikrc2l6ZShTR1BSKQogICAgIGdldF92Z3ByX3NpemVfYnl0ZXMoc19yZXN0b3JlX21lbV9vZmZzZXQpCiAgICAgZ2V0X3NncHJfc2l6ZV9ieXRlcyhzX3Jlc3RvcmVfdG1wKQpAQCAtMTA1NiwxMSArODQ4LDcgQEAKIAogCiAgICAgc19tb3ZfYjMyCSAgICBzX3Jlc3RvcmVfYnVmX3JzcmMyLCAweDQJCQkJCQkgICAgLy9OVU1fUkVDT1JEUyAgIGluIGJ5dGVzCi0gICAgaWYgKFNXSVpaTEVfRU4pCi0Jc19hZGRfdTMyCXNfcmVzdG9yZV9idWZfcnNyYzIsIHNfcmVzdG9yZV9idWZfcnNyYzIsIDB4MAkJCSAgICAvL0ZJWE1FIG5lZWQgdG8gdXNlIHN3aXp6bGUgdG8gZW5hYmxlIGJvdW5kcyBjaGVja2luZz8KLSAgICBlbHNlCiAJc19tb3ZfYjMyCXNfcmVzdG9yZV9idWZfcnNyYzIsICAweDEwMDAwMDAJCQkJCSAgICAvL05VTV9SRUNPUkRTIGluIGJ5dGVzCi0gICAgZW5kCiAKICAgICByZWFkX2h3cmVnX2Zyb21fbWVtKHNfcmVzdG9yZV9tMCwgc19yZXN0b3JlX2J1Zl9yc3JjMCwgc19yZXN0b3JlX21lbV9vZmZzZXQpCQkgICAgLy9NMAogICAgIHJlYWRfaHdyZWdfZnJvbV9tZW0oc19yZXN0b3JlX3BjX2xvLCBzX3Jlc3RvcmVfYnVmX3JzcmMwLCBzX3Jlc3RvcmVfbWVtX29mZnNldCkJCS8vUEMKQEAgLTEwNzUsMTYgKzg2Myw2IEBACiAKICAgICBzX3dhaXRjbnQJICAgIGxna21jbnQoMCkJCQkJCQkJCQkJCSAgICAvL2Zyb20gbm93IG9uLCBpdCBpcyBzYWZlIHRvIHJlc3RvcmUgU1RBVFVTIGFuZCBJQl9TVFMKIAotICAgIC8vZm9yIG5vcm1hbCBzYXZlICYgcmVzdG9yZSwgdGhlIHNhdmVkIFBDIHBvaW50cyB0byB0aGUgbmV4dCBpbnN0IHRvIGV4ZWN1dGUsIG5vIGFkanVzdG1lbnQgbmVlZHMgdG8gYmUgbWFkZSwgb3RoZXJ3aXNlOgotICAgIGlmICgoRU1VX1JVTl9IQUNLKSAmJiAoIUVNVV9SVU5fSEFDS19SRVNUT1JFX05PUk1BTCkpCi0Jc19hZGRfdTMyIHNfcmVzdG9yZV9wY19sbywgc19yZXN0b3JlX3BjX2xvLCA4CQkgLy9wY1szMTowXSs4CSAgLy90d28gYmFjay10by1iYWNrIHNfdHJhcCBhcmUgdXNlZCAoZmlyc3QgZm9yIHNhdmUgYW5kIHNlY29uZCBmb3IgcmVzdG9yZSkKLQlzX2FkZGNfdTMyICBzX3Jlc3RvcmVfcGNfaGksIHNfcmVzdG9yZV9wY19oaSwgMHgwCSAvL2NhcnJ5IGJpdCBvdmVyCi0gICAgZW5kCi0gICAgaWYgKChFTVVfUlVOX0hBQ0spICYmIChFTVVfUlVOX0hBQ0tfUkVTVE9SRV9OT1JNQUwpKQotCXNfYWRkX3UzMiBzX3Jlc3RvcmVfcGNfbG8sIHNfcmVzdG9yZV9wY19sbywgNAkJIC8vcGNbMzE6MF0rNAkgIC8vIHNhdmUgaXMgaGFjayB0aHJvdWdoIHNfdHJhcCBidXQgcmVzdG9yZSBpcyBub3JtYWwKLQlzX2FkZGNfdTMyICBzX3Jlc3RvcmVfcGNfaGksIHNfcmVzdG9yZV9wY19oaSwgMHgwCSAvL2NhcnJ5IGJpdCBvdmVyCi0gICAgZW5kCi0KICAgICBzX21vdl9iMzIJICAgIG0wLAkJc19yZXN0b3JlX20wCiAgICAgc19tb3ZfYjMyCSAgICBleGVjX2xvLAlzX3Jlc3RvcmVfZXhlY19sbwogICAgIHNfbW92X2IzMgkgICAgZXhlY19oaSwJc19yZXN0b3JlX2V4ZWNfaGkKQEAgLTExMzEsMTEgKzkwOSw2IEBACiAKICAgICBzX2JhcnJpZXIJCQkJCQkJLy9iYXJyaWVyIHRvIGVuc3VyZSB0aGUgcmVhZGluZXNzIG9mIExEUyBiZWZvcmUgYWNjZXNzIGF0dGVtcHRzIGZyb20gYW55IG90aGVyIHdhdmUgaW4gdGhlIHNhbWUgVEcgLy9GSVhNRSBub3QgcGVyZm9ybWFuY2Utb3B0aW1hbCBhdCB0aGlzIHRpbWUKIAotaWYgRzhTUl9ERUJVR19USU1FU1RBTVAKLSAgICBzX21lbXJlYWx0aW1lIHNfZzhzcl90c19yZXN0b3JlX2QKLSAgICBzX3dhaXRjbnQgbGdrbWNudCgwKQotZW5kCi0KIC8vICBzX3JmZV9iNjQgc19yZXN0b3JlX3BjX2xvCQkJCQkvL1JldHVybiB0byB0aGUgbWFpbiBzaGFkZXIgcHJvZ3JhbSBhbmQgcmVzdW1lIGV4ZWN1dGlvbgogICAgIHNfcmZlX3Jlc3RvcmVfYjY0ICBzX3Jlc3RvcmVfcGNfbG8sIHNfcmVzdG9yZV9tMAkJLy8gc19yZXN0b3JlX20wWzBdIGlzIHVzZWQgdG8gc2V0IFNUQVRVUy5pbnN0X2F0YwogCkBAIC0xMTkwLDcgKzk2MywzOSBAQAogICAgIHNfc3ViX3UzMgkgICAgc19tZW1fb2Zmc2V0LCBzX21lbV9vZmZzZXQsIDQqMTYKIGVuZAogCitmdW5jdGlvbiBjaGVja19pZl90Y3Bfc3RvcmVfb2sKKwkvLyBJZiBTVEFUVVMuQUxMT1dfUkVQTEFZPTAgYW5kIFRSQVBTVFMuWE5BQ0tfRVJST1I9MSB0aGVuIFRDUCBzdG9yZXMgd2lsbCBmYWlsLgorCXNfYW5kX2IzMiBzX3NhdmVfdG1wLCBzX3NhdmVfc3RhdHVzLCBTUV9XQVZFX1NUQVRVU19BTExPV19SRVBMQVlfTUFTSworCXNfY2JyYW5jaF9zY2MxIExfVENQX1NUT1JFX0NIRUNLX0RPTkUKIAorCXNfZ2V0cmVnX2IzMiBzX3NhdmVfdG1wLCBod3JlZyhIV19SRUdfVFJBUFNUUykKKwlzX2FuZG4yX2IzMiBzX3NhdmVfdG1wLCBTUV9XQVZFX1RSQVBTVFNfWE5BQ0tfRVJST1JfTUFTSywgc19zYXZlX3RtcAorCitMX1RDUF9TVE9SRV9DSEVDS19ET05FOgorZW5kCisKK2Z1bmN0aW9uIHdyaXRlX3ZncHJfdG9fbWVtX3dpdGhfc3FjKHYsIHNfcnNyYywgc19tZW1fb2Zmc2V0KQorCXNfbW92X2IzMiBzNCwgMAorCitMX1dSSVRFX1ZHUFJfTEFORV9MT09QOgorCWZvciB2YXIgbGFuZSA9IDA7IGxhbmUgPCA0OyArKyBsYW5lCisJCXZfcmVhZGxhbmVfYjMyIHNbbGFuZV0sIHYsIHM0CisJCXNfYWRkX3UzMiBzNCwgczQsIDEKKwllbmQKKworCXNfYnVmZmVyX3N0b3JlX2R3b3JkeDQgc1swOjNdLCBzX3JzcmMsIHNfbWVtX29mZnNldCBnbGM6MQorCWFja19zcWNfc3RvcmVfd29ya2Fyb3VuZCgpCisKKwlzX2FkZF91MzIgc19tZW1fb2Zmc2V0LCBzX21lbV9vZmZzZXQsIDB4MTAKKwlzX2NtcF9lcV91MzIgczQsIDB4NDAKKwlzX2NicmFuY2hfc2NjMCBMX1dSSVRFX1ZHUFJfTEFORV9MT09QCitlbmQKKworZnVuY3Rpb24gd3JpdGVfdmdwcnNfdG9fbWVtX3dpdGhfc3FjKHYsIG5fdmdwcnMsIHNfcnNyYywgc19tZW1fb2Zmc2V0KQorCWZvciB2YXIgdmdwciA9IDA7IHZncHIgPCBuX3ZncHJzOyArKyB2Z3ByCisJCXdyaXRlX3ZncHJfdG9fbWVtX3dpdGhfc3FjKHZbdmdwcl0sIHNfcnNyYywgc19tZW1fb2Zmc2V0KQorCWVuZAorZW5kCiAKIGZ1bmN0aW9uIGdldF9sZHNfc2l6ZV9ieXRlcyhzX2xkc19zaXplX2J5dGUpCiAgICAgLy8gU1EgTERTIGdyYW51bGFyaXR5IGlzIDY0RFcsIHdoaWxlIFBHTV9SU1JDMi5sZHNfc2l6ZSBpcyBpbiBncmFudWxhcml0eSAxMjhEVwpAQCAtMTIwMiw2ICsxMDA3LDEwIEBACiAgICAgc19nZXRyZWdfYjMyICAgc192Z3ByX3NpemVfYnl0ZSwgaHdyZWcoSFdfUkVHX0dQUl9BTExPQyxTUV9XQVZFX0dQUl9BTExPQ19WR1BSX1NJWkVfU0hJRlQsU1FfV0FWRV9HUFJfQUxMT0NfVkdQUl9TSVpFX1NJWkUpCSAvL3ZwZ3Jfc2l6ZQogICAgIHNfYWRkX3UzMgkgICBzX3ZncHJfc2l6ZV9ieXRlLCBzX3ZncHJfc2l6ZV9ieXRlLCAxCiAgICAgc19sc2hsX2IzMgkgICBzX3ZncHJfc2l6ZV9ieXRlLCBzX3ZncHJfc2l6ZV9ieXRlLCAoMis4KSAvL051bWJlciBvZiBWR1BScyA9ICh2Z3ByX3NpemUgKyAxKSAqIDQgKiA2NCAqIDQJKG5vbi16ZXJvIHZhbHVlKSAgIC8vRklYTUUgZm9yIEdGWCwgemVybyBpcyBwb3NzaWJsZQorCitpZiBBU0lDX1RBUkdFVF9BUkNUVVJVUworICAgIHNfbHNobF9iMzIgICAgIHNfdmdwcl9zaXplX2J5dGUsIHNfdmdwcl9zaXplX2J5dGUsIDEgIC8vIERvdWJsZSBzaXplIGZvciBBQ0MgVkdQUnMKK2VuZAogZW5kCiAKIGZ1bmN0aW9uIGdldF9zZ3ByX3NpemVfYnl0ZXMoc19zZ3ByX3NpemVfYnl0ZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9jcmF0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfY3JhdC5jCmluZGV4IDRlM2ZjMjguLjY2Mzg3Y2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9jcmF0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2NyYXQuYwpAQCAtNjYyLDYgKzY2Miw3IEBAIHN0YXRpYyBpbnQga2ZkX2ZpbGxfZ3B1X2NhY2hlX2luZm8oc3RydWN0IGtmZF9kZXYgKmtkZXYsCiAJY2FzZSBDSElQX1ZFR0ExMDoKIAljYXNlIENISVBfVkVHQTEyOgogCWNhc2UgQ0hJUF9WRUdBMjA6CisJY2FzZSBDSElQX0FSQ1RVUlVTOgogCQlwY2FjaGVfaW5mbyA9IHZlZ2ExMF9jYWNoZV9pbmZvOwogCQludW1fb2ZfY2FjaGVfdHlwZXMgPSBBUlJBWV9TSVpFKHZlZ2ExMF9jYWNoZV9pbmZvKTsKIAkJYnJlYWs7CkBAIC03ODgsNyArNzg5LDcgQEAgaW50IGtmZF9jcmVhdGVfY3JhdF9pbWFnZV9hY3BpKHZvaWQgKipjcmF0X2ltYWdlLCBzaXplX3QgKnNpemUpCiAgKiBpcyBwdXQgaW4gdGhlIGNvZGUgdG8gZW5zdXJlIHdlIGRvbid0IG92ZXJ3cml0ZS4KICAqLwogI2RlZmluZSBWQ1JBVF9TSVpFX0ZPUl9DUFUJKDIgKiBQQUdFX1NJWkUpCi0jZGVmaW5lIFZDUkFUX1NJWkVfRk9SX0dQVQkoMyAqIFBBR0VfU0laRSkKKyNkZWZpbmUgVkNSQVRfU0laRV9GT1JfR1BVCSg0ICogUEFHRV9TSVpFKQogCiAvKiBrZmRfZmlsbF9jdV9mb3JfY3B1IC0gRmlsbCBpbiBDb21wdXRlIGluZm8gZm9yIHRoZSBnaXZlbiBDUFUgTlVNQSBub2RlCiAgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jCmluZGV4IDMzMjJhNDQuLjBkYzEwODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMKQEAgLTQyLDYgKzQyLDcgQEAgc3RhdGljIGF0b21pY190IGtmZF9sb2NrZWQgPSBBVE9NSUNfSU5JVCgwKTsKICNpZmRlZiBLRkRfU1VQUE9SVF9JT01NVV9WMgogc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8ga2F2ZXJpX2RldmljZV9pbmZvID0gewogCS5hc2ljX2ZhbWlseSA9IENISVBfS0FWRVJJLAorCS5hc2ljX25hbWUgPSAia2F2ZXJpIiwKIAkubWF4X3Bhc2lkX2JpdHMgPSAxNiwKIAkvKiBtYXggbnVtIG9mIHF1ZXVlcyBmb3IgS1YuVE9ETyBzaG91bGQgYmUgYSBkeW5hbWljIHZhbHVlICovCiAJLm1heF9ub19vZl9ocWQJPSAyNCwKQEAgLTYwLDYgKzYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8ga2F2ZXJpX2RldmljZV9pbmZvID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBjYXJyaXpvX2RldmljZV9pbmZvID0gewogCS5hc2ljX2ZhbWlseSA9IENISVBfQ0FSUklaTywKKwkuYXNpY19uYW1lID0gImNhcnJpem8iLAogCS5tYXhfcGFzaWRfYml0cyA9IDE2LAogCS8qIG1heCBudW0gb2YgcXVldWVzIGZvciBDWi5UT0RPIHNob3VsZCBiZSBhIGR5bmFtaWMgdmFsdWUgKi8KIAkubWF4X25vX29mX2hxZAk9IDI0LApAQCAtNzgsNiArODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBjYXJyaXpvX2RldmljZV9pbmZvID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyByYXZlbl9kZXZpY2VfaW5mbyA9IHsKIAkuYXNpY19mYW1pbHkgPSBDSElQX1JBVkVOLAorCS5hc2ljX25hbWUgPSAicmF2ZW4iLAogCS5tYXhfcGFzaWRfYml0cyA9IDE2LAogCS5tYXhfbm9fb2ZfaHFkICA9IDI0LAogCS5kb29yYmVsbF9zaXplICA9IDgsCkBAIC05Niw2ICs5OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHJhdmVuX2RldmljZV9pbmZvID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBoYXdhaWlfZGV2aWNlX2luZm8gPSB7CiAJLmFzaWNfZmFtaWx5ID0gQ0hJUF9IQVdBSUksCisJLmFzaWNfbmFtZSA9ICJoYXdhaWkiLAogCS5tYXhfcGFzaWRfYml0cyA9IDE2LAogCS8qIG1heCBudW0gb2YgcXVldWVzIGZvciBLVi5UT0RPIHNob3VsZCBiZSBhIGR5bmFtaWMgdmFsdWUgKi8KIAkubWF4X25vX29mX2hxZAk9IDI0LApAQCAtMTE0LDYgKzExOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIGhhd2FpaV9kZXZpY2VfaW5mbyA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gdG9uZ2FfZGV2aWNlX2luZm8gPSB7CiAJLmFzaWNfZmFtaWx5ID0gQ0hJUF9UT05HQSwKKwkuYXNpY19uYW1lID0gInRvbmdhIiwKIAkubWF4X3Bhc2lkX2JpdHMgPSAxNiwKIAkubWF4X25vX29mX2hxZCAgPSAyNCwKIAkuZG9vcmJlbGxfc2l6ZSAgPSA0LApAQCAtMTMxLDYgKzEzNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHRvbmdhX2RldmljZV9pbmZvID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBmaWppX2RldmljZV9pbmZvID0gewogCS5hc2ljX2ZhbWlseSA9IENISVBfRklKSSwKKwkuYXNpY19uYW1lID0gImZpamkiLAogCS5tYXhfcGFzaWRfYml0cyA9IDE2LAogCS5tYXhfbm9fb2ZfaHFkICA9IDI0LAogCS5kb29yYmVsbF9zaXplICA9IDQsCkBAIC0xNDgsNiArMTU0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gZmlqaV9kZXZpY2VfaW5mbyA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gZmlqaV92Zl9kZXZpY2VfaW5mbyA9IHsKIAkuYXNpY19mYW1pbHkgPSBDSElQX0ZJSkksCisJLmFzaWNfbmFtZSA9ICJmaWppIiwKIAkubWF4X3Bhc2lkX2JpdHMgPSAxNiwKIAkubWF4X25vX29mX2hxZCAgPSAyNCwKIAkuZG9vcmJlbGxfc2l6ZSAgPSA0LApAQCAtMTY2LDYgKzE3Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIGZpamlfdmZfZGV2aWNlX2luZm8gPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHBvbGFyaXMxMF9kZXZpY2VfaW5mbyA9IHsKIAkuYXNpY19mYW1pbHkgPSBDSElQX1BPTEFSSVMxMCwKKwkuYXNpY19uYW1lID0gInBvbGFyaXMxMCIsCiAJLm1heF9wYXNpZF9iaXRzID0gMTYsCiAJLm1heF9ub19vZl9ocWQgID0gMjQsCiAJLmRvb3JiZWxsX3NpemUgID0gNCwKQEAgLTE4Myw2ICsxOTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBwb2xhcmlzMTBfZGV2aWNlX2luZm8gPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHBvbGFyaXMxMF92Zl9kZXZpY2VfaW5mbyA9IHsKIAkuYXNpY19mYW1pbHkgPSBDSElQX1BPTEFSSVMxMCwKKwkuYXNpY19uYW1lID0gInBvbGFyaXMxMCIsCiAJLm1heF9wYXNpZF9iaXRzID0gMTYsCiAJLm1heF9ub19vZl9ocWQgID0gMjQsCiAJLmRvb3JiZWxsX3NpemUgID0gNCwKQEAgLTIwMCw2ICsyMDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBwb2xhcmlzMTBfdmZfZGV2aWNlX2luZm8gPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHBvbGFyaXMxMV9kZXZpY2VfaW5mbyA9IHsKIAkuYXNpY19mYW1pbHkgPSBDSElQX1BPTEFSSVMxMSwKKwkuYXNpY19uYW1lID0gInBvbGFyaXMxMSIsCiAJLm1heF9wYXNpZF9iaXRzID0gMTYsCiAJLm1heF9ub19vZl9ocWQgID0gMjQsCiAJLmRvb3JiZWxsX3NpemUgID0gNCwKQEAgLTIxNyw2ICsyMjcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBwb2xhcmlzMTFfZGV2aWNlX2luZm8gPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHBvbGFyaXMxMl9kZXZpY2VfaW5mbyA9IHsKIAkuYXNpY19mYW1pbHkgPSBDSElQX1BPTEFSSVMxMiwKKwkuYXNpY19uYW1lID0gInBvbGFyaXMxMiIsCiAJLm1heF9wYXNpZF9iaXRzID0gMTYsCiAJLm1heF9ub19vZl9ocWQgID0gMjQsCiAJLmRvb3JiZWxsX3NpemUgID0gNCwKQEAgLTIzNCw2ICsyNDUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBwb2xhcmlzMTJfZGV2aWNlX2luZm8gPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHZlZ2FtX2RldmljZV9pbmZvID0gewogCS5hc2ljX2ZhbWlseSA9IENISVBfVkVHQU0sCisJLmFzaWNfbmFtZSA9ICJ2ZWdhbSIsCiAJLm1heF9wYXNpZF9iaXRzID0gMTYsCiAJLm1heF9ub19vZl9ocWQgID0gMjQsCiAJLmRvb3JiZWxsX3NpemUgID0gNCwKQEAgLTI1MSw2ICsyNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyB2ZWdhbV9kZXZpY2VfaW5mbyA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gdmVnYTEwX2RldmljZV9pbmZvID0gewogCS5hc2ljX2ZhbWlseSA9IENISVBfVkVHQTEwLAorCS5hc2ljX25hbWUgPSAidmVnYTEwIiwKIAkubWF4X3Bhc2lkX2JpdHMgPSAxNiwKIAkubWF4X25vX29mX2hxZCAgPSAyNCwKIAkuZG9vcmJlbGxfc2l6ZSAgPSA4LApAQCAtMjY4LDYgKzI4MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHZlZ2ExMF9kZXZpY2VfaW5mbyA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gdmVnYTEwX3ZmX2RldmljZV9pbmZvID0gewogCS5hc2ljX2ZhbWlseSA9IENISVBfVkVHQTEwLAorCS5hc2ljX25hbWUgPSAidmVnYTEwIiwKIAkubWF4X3Bhc2lkX2JpdHMgPSAxNiwKIAkubWF4X25vX29mX2hxZCAgPSAyNCwKIAkuZG9vcmJlbGxfc2l6ZSAgPSA4LApAQCAtMjg1LDYgKzI5OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHZlZ2ExMF92Zl9kZXZpY2VfaW5mbyA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gdmVnYTEyX2RldmljZV9pbmZvID0gewogCS5hc2ljX2ZhbWlseSA9IENISVBfVkVHQTEyLAorCS5hc2ljX25hbWUgPSAidmVnYTEyIiwKIAkubWF4X3Bhc2lkX2JpdHMgPSAxNiwKIAkubWF4X25vX29mX2hxZCAgPSAyNCwKIAkuZG9vcmJlbGxfc2l6ZSAgPSA4LApAQCAtMzAyLDYgKzMxNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIHZlZ2ExMl9kZXZpY2VfaW5mbyA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gdmVnYTIwX2RldmljZV9pbmZvID0gewogCS5hc2ljX2ZhbWlseSA9IENISVBfVkVHQTIwLAorCS5hc2ljX25hbWUgPSAidmVnYTIwIiwKIAkubWF4X3Bhc2lkX2JpdHMgPSAxNiwKIAkubWF4X25vX29mX2hxZAk9IDI0LAogCS5kb29yYmVsbF9zaXplCT0gOCwKQEAgLTMxNyw4ICszMzMsMjcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gdmVnYTIwX2RldmljZV9pbmZvID0gewogCS5udW1fc2RtYV9xdWV1ZXNfcGVyX2VuZ2luZSA9IDgsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBhcmN0dXJ1c19kZXZpY2VfaW5mbyA9IHsKKwkuYXNpY19mYW1pbHkgPSBDSElQX0FSQ1RVUlVTLAorCS5hc2ljX25hbWUgPSAiYXJjdHVydXMiLAorCS5tYXhfcGFzaWRfYml0cyA9IDE2LAorCS5tYXhfbm9fb2ZfaHFkCT0gMjQsCisJLmRvb3JiZWxsX3NpemUJPSA4LAorCS5paF9yaW5nX2VudHJ5X3NpemUgPSA4ICogc2l6ZW9mKHVpbnQzMl90KSwKKwkuZXZlbnRfaW50ZXJydXB0X2NsYXNzID0gJmV2ZW50X2ludGVycnVwdF9jbGFzc192OSwKKwkubnVtX29mX3dhdGNoX3BvaW50cyA9IDQsCisJLm1xZF9zaXplX2FsaWduZWQgPSBNUURfU0laRV9BTElHTkVELAorCS5zdXBwb3J0c19jd3NyID0gdHJ1ZSwKKwkubmVlZHNfaW9tbXVfZGV2aWNlID0gZmFsc2UsCisJLm5lZWRzX3BjaV9hdG9taWNzID0gZmFsc2UsCisJLm51bV9zZG1hX2VuZ2luZXMgPSAyLAorCS5udW1feGdtaV9zZG1hX2VuZ2luZXMgPSA2LAorCS5udW1fc2RtYV9xdWV1ZXNfcGVyX2VuZ2luZSA9IDgsCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyBuYXZpMTBfZGV2aWNlX2luZm8gPSB7CiAJLmFzaWNfZmFtaWx5ID0gQ0hJUF9OQVZJMTAsCisJLmFzaWNfbmFtZSA9ICJuYXZpMTAiLAogCS5tYXhfcGFzaWRfYml0cyA9IDE2LAogCS5tYXhfbm9fb2ZfaHFkICA9IDI0LAogCS5kb29yYmVsbF9zaXplICA9IDgsCkBAIC00NTIsNyArNDg3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZWlkIHN1cHBvcnRlZF9kZXZpY2VzW10gPSB7CiAJeyAweDY2YTQsICZ2ZWdhMjBfZGV2aWNlX2luZm8gfSwJLyogVmVnYTIwICovCiAJeyAweDY2YTcsICZ2ZWdhMjBfZGV2aWNlX2luZm8gfSwJLyogVmVnYTIwICovCiAJeyAweDY2YWYsICZ2ZWdhMjBfZGV2aWNlX2luZm8gfSwJLyogVmVnYTIwICovCi0JLyogTmF2aTEwICovCisJeyAweDczOEMsICZhcmN0dXJ1c19kZXZpY2VfaW5mbyB9LAkvKiBBcmN0dXJ1cyAqLworCXsgMHg3Mzg4LCAmYXJjdHVydXNfZGV2aWNlX2luZm8gfSwJLyogQXJjdHVydXMgKi8KKwl7IDB4NzM4RSwgJmFyY3R1cnVzX2RldmljZV9pbmZvIH0sCS8qIEFyY3R1cnVzICovCisJeyAweDczOTAsICZhcmN0dXJ1c19kZXZpY2VfaW5mbyB9LAkvKiBBcmN0dXJ1cyB2ZiAqLwogCXsgMHg3MzEwLCAmbmF2aTEwX2RldmljZV9pbmZvIH0sCS8qIE5hdmkxMCAqLwogCXsgMHg3MzEyLCAmbmF2aTEwX2RldmljZV9pbmZvIH0sCS8qIE5hdmkxMCAqLwogCXsgMHg3MzE4LCAmbmF2aTEwX2RldmljZV9pbmZvIH0sCS8qIE5hdmkxMCAqLwpAQCAtNTM2LDYgKzU3NCwxMCBAQCBzdGF0aWMgdm9pZCBrZmRfY3dzcl9pbml0KHN0cnVjdCBrZmRfZGV2ICprZmQpCiAJCQlCVUlMRF9CVUdfT04oc2l6ZW9mKGN3c3JfdHJhcF9nZng4X2hleCkgPiBQQUdFX1NJWkUpOwogCQkJa2ZkLT5jd3NyX2lzYSA9IGN3c3JfdHJhcF9nZng4X2hleDsKIAkJCWtmZC0+Y3dzcl9pc2Ffc2l6ZSA9IHNpemVvZihjd3NyX3RyYXBfZ2Z4OF9oZXgpOworCQl9IGVsc2UgaWYgKGtmZC0+ZGV2aWNlX2luZm8tPmFzaWNfZmFtaWx5ID09IENISVBfQVJDVFVSVVMpIHsKKwkJCUJVSUxEX0JVR19PTihzaXplb2YoY3dzcl90cmFwX2FyY3R1cnVzX2hleCkgPiBQQUdFX1NJWkUpOworCQkJa2ZkLT5jd3NyX2lzYSA9IGN3c3JfdHJhcF9hcmN0dXJ1c19oZXg7CisJCQlrZmQtPmN3c3JfaXNhX3NpemUgPSBzaXplb2YoY3dzcl90cmFwX2FyY3R1cnVzX2hleCk7CiAJCX0gZWxzZSBpZiAoa2ZkLT5kZXZpY2VfaW5mby0+YXNpY19mYW1pbHkgPCBDSElQX05BVkkxMCkgewogCQkJQlVJTERfQlVHX09OKHNpemVvZihjd3NyX3RyYXBfZ2Z4OV9oZXgpID4gUEFHRV9TSVpFKTsKIAkJCWtmZC0+Y3dzcl9pc2EgPSBjd3NyX3RyYXBfZ2Z4OV9oZXg7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jCmluZGV4IGU2YTQyODguLmQ5ODVlMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jCkBAIC04ODAsOCArODgwLDggQEAgc3RhdGljIGludCBpbml0aWFsaXplX25vY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0pCiAJfQogCiAJZHFtLT52bWlkX2JpdG1hcCA9ICgxIDw8IGRxbS0+ZGV2LT52bV9pbmZvLnZtaWRfbnVtX2tmZCkgLSAxOwotCWRxbS0+c2RtYV9iaXRtYXAgPSAoMVVMTCA8PCBnZXRfbnVtX3NkbWFfcXVldWVzKGRxbSkpIC0gMTsKLQlkcW0tPnhnbWlfc2RtYV9iaXRtYXAgPSAoMVVMTCA8PCBnZXRfbnVtX3hnbWlfc2RtYV9xdWV1ZXMoZHFtKSkgLSAxOworCWRxbS0+c2RtYV9iaXRtYXAgPSB+MFVMTCA+PiAoNjQgLSBnZXRfbnVtX3NkbWFfcXVldWVzKGRxbSkpOworCWRxbS0+eGdtaV9zZG1hX2JpdG1hcCA9IH4wVUxMID4+ICg2NCAtIGdldF9udW1feGdtaV9zZG1hX3F1ZXVlcyhkcW0pKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTAxOSw4ICsxMDE5LDggQEAgc3RhdGljIGludCBpbml0aWFsaXplX2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtKQogCWRxbS0+c2RtYV9xdWV1ZV9jb3VudCA9IDA7CiAJZHFtLT54Z21pX3NkbWFfcXVldWVfY291bnQgPSAwOwogCWRxbS0+YWN0aXZlX3J1bmxpc3QgPSBmYWxzZTsKLQlkcW0tPnNkbWFfYml0bWFwID0gKDFVTEwgPDwgZ2V0X251bV9zZG1hX3F1ZXVlcyhkcW0pKSAtIDE7Ci0JZHFtLT54Z21pX3NkbWFfYml0bWFwID0gKDFVTEwgPDwgZ2V0X251bV94Z21pX3NkbWFfcXVldWVzKGRxbSkpIC0gMTsKKwlkcW0tPnNkbWFfYml0bWFwID0gfjBVTEwgPj4gKDY0IC0gZ2V0X251bV9zZG1hX3F1ZXVlcyhkcW0pKTsKKwlkcW0tPnhnbWlfc2RtYV9iaXRtYXAgPSB+MFVMTCA+PiAoNjQgLSBnZXRfbnVtX3hnbWlfc2RtYV9xdWV1ZXMoZHFtKSk7CiAKIAlJTklUX1dPUksoJmRxbS0+aHdfZXhjZXB0aW9uX3dvcmssIGtmZF9wcm9jZXNzX2h3X2V4Y2VwdGlvbik7CiAKQEAgLTE3ODYsNiArMTc4Niw3IEBAIHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZGV2aWNlX3F1ZXVlX21hbmFnZXJfaW5pdChzdHJ1Y3Qga2ZkX2RldiAqZGV2KQogCWNhc2UgQ0hJUF9WRUdBMTI6CiAJY2FzZSBDSElQX1ZFR0EyMDoKIAljYXNlIENISVBfUkFWRU46CisJY2FzZSBDSElQX0FSQ1RVUlVTOgogCQlkZXZpY2VfcXVldWVfbWFuYWdlcl9pbml0X3Y5KCZkcW0tPmFzaWNfb3BzKTsKIAkJYnJlYWs7CiAJY2FzZSBDSElQX05BVkkxMDoKQEAgLTE4MTMsNyArMTgxNCw4IEBAIHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZGV2aWNlX3F1ZXVlX21hbmFnZXJfaW5pdChzdHJ1Y3Qga2ZkX2RldiAqZGV2KQogCXJldHVybiBOVUxMOwogfQogCi12b2lkIGRlYWxsb2NhdGVfaGlxX3NkbWFfbXFkKHN0cnVjdCBrZmRfZGV2ICpkZXYsIHN0cnVjdCBrZmRfbWVtX29iaiAqbXFkKQorc3RhdGljIHZvaWQgZGVhbGxvY2F0ZV9oaXFfc2RtYV9tcWQoc3RydWN0IGtmZF9kZXYgKmRldiwKKwkJCQkgICAgc3RydWN0IGtmZF9tZW1fb2JqICptcWQpCiB7CiAJV0FSTighbXFkLCAiTm8gaGlxIHNkbWEgbXFkIHRydW5rIHRvIGZyZWUiKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2ZsYXRfbWVtb3J5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZmxhdF9tZW1vcnkuYwppbmRleCA2MDUyMTM2Li45ZGM0YmZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZmxhdF9tZW1vcnkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZmxhdF9tZW1vcnkuYwpAQCAtNDA1LDYgKzQwNSw3IEBAIGludCBrZmRfaW5pdF9hcGVydHVyZXMoc3RydWN0IGtmZF9wcm9jZXNzICpwcm9jZXNzKQogCQkJY2FzZSBDSElQX1ZFR0ExMjoKIAkJCWNhc2UgQ0hJUF9WRUdBMjA6CiAJCQljYXNlIENISVBfUkFWRU46CisJCQljYXNlIENISVBfQVJDVFVSVVM6CiAJCQljYXNlIENISVBfTkFWSTEwOgogCQkJCWtmZF9pbml0X2FwZXJ0dXJlc192OShwZGQsIGlkKTsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9pbnRfcHJvY2Vzc192OS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2ludF9wcm9jZXNzX3Y5LmMKaW5kZXggYTg1OTA0YS4uM2VmNjdkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2ludF9wcm9jZXNzX3Y5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2ludF9wcm9jZXNzX3Y5LmMKQEAgLTgwLDYgKzgwLDcgQEAgc3RhdGljIGJvb2wgZXZlbnRfaW50ZXJydXB0X2lzcl92OShzdHJ1Y3Qga2ZkX2RldiAqZGV2LAogCQlzb3VyY2VfaWQgPT0gU09DMTVfSU5UU1JDX1NRX0lOVEVSUlVQVF9NU0cgfHwKIAkJc291cmNlX2lkID09IFNPQzE1X0lOVFNSQ19DUF9CQURfT1BDT0RFIHx8CiAJCWNsaWVudF9pZCA9PSBTT0MxNV9JSF9DTElFTlRJRF9WTUMgfHwKKwkJY2xpZW50X2lkID09IFNPQzE1X0lIX0NMSUVOVElEX1ZNQzEgfHwKIAkJY2xpZW50X2lkID09IFNPQzE1X0lIX0NMSUVOVElEX1VUQ0wyOwogfQogCkBAIC0xMDQsNiArMTA1LDcgQEAgc3RhdGljIHZvaWQgZXZlbnRfaW50ZXJydXB0X3dxX3Y5KHN0cnVjdCBrZmRfZGV2ICpkZXYsCiAJZWxzZSBpZiAoc291cmNlX2lkID09IFNPQzE1X0lOVFNSQ19DUF9CQURfT1BDT0RFKQogCQlrZmRfc2lnbmFsX2h3X2V4Y2VwdGlvbl9ldmVudChwYXNpZCk7CiAJZWxzZSBpZiAoY2xpZW50X2lkID09IFNPQzE1X0lIX0NMSUVOVElEX1ZNQyB8fAorCQljbGllbnRfaWQgPT0gU09DMTVfSUhfQ0xJRU5USURfVk1DMSB8fAogCQkgY2xpZW50X2lkID09IFNPQzE1X0lIX0NMSUVOVElEX1VUQ0wyKSB7CiAJCXN0cnVjdCBrZmRfdm1fZmF1bHRfaW5mbyBpbmZvID0gezB9OwogCQl1aW50MTZfdCByaW5nX2lkID0gU09DMTVfUklOR19JRF9GUk9NX0lIX0VOVFJZKGloX3JpbmdfZW50cnkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2tlcm5lbF9xdWV1ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2tlcm5lbF9xdWV1ZS5jCmluZGV4IDI5YzBiZDIuLjhiNDU2NGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfa2VybmVsX3F1ZXVlLmMKQEAgLTMzMCw2ICszMzAsNyBAQCBzdHJ1Y3Qga2VybmVsX3F1ZXVlICprZXJuZWxfcXVldWVfaW5pdChzdHJ1Y3Qga2ZkX2RldiAqZGV2LAogCWNhc2UgQ0hJUF9WRUdBMTI6CiAJY2FzZSBDSElQX1ZFR0EyMDoKIAljYXNlIENISVBfUkFWRU46CisJY2FzZSBDSElQX0FSQ1RVUlVTOgogCQlrZXJuZWxfcXVldWVfaW5pdF92OSgma3EtPm9wc19hc2ljX3NwZWNpZmljKTsKIAkJYnJlYWs7CiAJY2FzZSBDSElQX05BVkkxMDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWVfdjkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWVfdjkuYwppbmRleCAyZDVkZGYxLi45YTRiYWZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfa2VybmVsX3F1ZXVlX3Y5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2tlcm5lbF9xdWV1ZV92OS5jCkBAIC04MSw3ICs4MSw4IEBAIHN0YXRpYyBpbnQgcG1fbWFwX3Byb2Nlc3Nfdjkoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwKIAlwYWNrZXQtPmJpdGZpZWxkczIuZGlxX2VuYWJsZSA9IChxcGQtPmlzX2RlYnVnKSA/IDEgOiAwOwogCXBhY2tldC0+Yml0ZmllbGRzMi5wcm9jZXNzX3F1YW50dW0gPSAxOwogCXBhY2tldC0+Yml0ZmllbGRzMi5wYXNpZCA9IHFwZC0+cHFtLT5wcm9jZXNzLT5wYXNpZDsKLQlwYWNrZXQtPmJpdGZpZWxkczE0Lmdkc19zaXplID0gcXBkLT5nZHNfc2l6ZTsKKwlwYWNrZXQtPmJpdGZpZWxkczE0Lmdkc19zaXplID0gcXBkLT5nZHNfc2l6ZSAmIDB4M0Y7CisJcGFja2V0LT5iaXRmaWVsZHMxNC5nZHNfc2l6ZV9oaSA9IChxcGQtPmdkc19zaXplID4+IDYpICYgMHhGOwogCXBhY2tldC0+Yml0ZmllbGRzMTQubnVtX2d3cyA9IHFwZC0+bnVtX2d3czsKIAlwYWNrZXQtPmJpdGZpZWxkczE0Lm51bV9vYWMgPSBxcGQtPm51bV9vYWM7CiAJcGFja2V0LT5iaXRmaWVsZHMxNC5zZG1hX2VuYWJsZSA9IDE7CkBAIC0xNDMsNiArMTQ0LDM0IEBAIHN0YXRpYyBpbnQgcG1fcnVubGlzdF92OShzdHJ1Y3QgcGFja2V0X21hbmFnZXIgKnBtLCB1aW50MzJfdCAqYnVmZmVyLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHBtX3NldF9yZXNvdXJjZXNfdjkoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwgdWludDMyX3QgKmJ1ZmZlciwKKwkJCQlzdHJ1Y3Qgc2NoZWR1bGluZ19yZXNvdXJjZXMgKnJlcykKK3sKKwlzdHJ1Y3QgcG00X21lc19zZXRfcmVzb3VyY2VzICpwYWNrZXQ7CisKKwlwYWNrZXQgPSAoc3RydWN0IHBtNF9tZXNfc2V0X3Jlc291cmNlcyAqKWJ1ZmZlcjsKKwltZW1zZXQoYnVmZmVyLCAwLCBzaXplb2Yoc3RydWN0IHBtNF9tZXNfc2V0X3Jlc291cmNlcykpOworCisJcGFja2V0LT5oZWFkZXIudTMyQWxsID0gcG1fYnVpbGRfcG00X2hlYWRlcihJVF9TRVRfUkVTT1VSQ0VTLAorCQkJCQlzaXplb2Yoc3RydWN0IHBtNF9tZXNfc2V0X3Jlc291cmNlcykpOworCisJcGFja2V0LT5iaXRmaWVsZHMyLnF1ZXVlX3R5cGUgPQorCQkJcXVldWVfdHlwZV9fbWVzX3NldF9yZXNvdXJjZXNfX2hzYV9pbnRlcmZhY2VfcXVldWVfaGlxOworCXBhY2tldC0+Yml0ZmllbGRzMi52bWlkX21hc2sgPSByZXMtPnZtaWRfbWFzazsKKwlwYWNrZXQtPmJpdGZpZWxkczIudW5tYXBfbGF0ZW5jeSA9IEtGRF9VTk1BUF9MQVRFTkNZX01TIC8gMTAwOworCXBhY2tldC0+Yml0ZmllbGRzNy5vYWNfbWFzayA9IHJlcy0+b2FjX21hc2s7CisJcGFja2V0LT5iaXRmaWVsZHM4Lmdkc19oZWFwX2Jhc2UgPSByZXMtPmdkc19oZWFwX2Jhc2U7CisJcGFja2V0LT5iaXRmaWVsZHM4Lmdkc19oZWFwX3NpemUgPSByZXMtPmdkc19oZWFwX3NpemU7CisKKwlwYWNrZXQtPmd3c19tYXNrX2xvID0gbG93ZXJfMzJfYml0cyhyZXMtPmd3c19tYXNrKTsKKwlwYWNrZXQtPmd3c19tYXNrX2hpID0gdXBwZXJfMzJfYml0cyhyZXMtPmd3c19tYXNrKTsKKworCXBhY2tldC0+cXVldWVfbWFza19sbyA9IGxvd2VyXzMyX2JpdHMocmVzLT5xdWV1ZV9tYXNrKTsKKwlwYWNrZXQtPnF1ZXVlX21hc2tfaGkgPSB1cHBlcl8zMl9iaXRzKHJlcy0+cXVldWVfbWFzayk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBwbV9tYXBfcXVldWVzX3Y5KHN0cnVjdCBwYWNrZXRfbWFuYWdlciAqcG0sIHVpbnQzMl90ICpidWZmZXIsCiAJCXN0cnVjdCBxdWV1ZSAqcSwgYm9vbCBpc19zdGF0aWMpCiB7CkBAIC0xNjEsNiArMTkwLDggQEAgc3RhdGljIGludCBwbV9tYXBfcXVldWVzX3Y5KHN0cnVjdCBwYWNrZXRfbWFuYWdlciAqcG0sIHVpbnQzMl90ICpidWZmZXIsCiAJcGFja2V0LT5iaXRmaWVsZHMyLmVuZ2luZV9zZWwgPQogCQllbmdpbmVfc2VsX19tZXNfbWFwX3F1ZXVlc19fY29tcHV0ZV92aTsKIAlwYWNrZXQtPmJpdGZpZWxkczIuZ3dzX2NvbnRyb2xfcXVldWUgPSBxLT5nd3MgPyAxIDogMDsKKwlwYWNrZXQtPmJpdGZpZWxkczIuZXh0ZW5kZWRfZW5naW5lX3NlbCA9CisJCWV4dGVuZGVkX2VuZ2luZV9zZWxfX21lc19tYXBfcXVldWVzX19sZWdhY3lfZW5naW5lX3NlbDsKIAlwYWNrZXQtPmJpdGZpZWxkczIucXVldWVfdHlwZSA9CiAJCXF1ZXVlX3R5cGVfX21lc19tYXBfcXVldWVzX19ub3JtYWxfY29tcHV0ZV92aTsKIApAQCAtMTc2LDkgKzIwNywxNSBAQCBzdGF0aWMgaW50IHBtX21hcF9xdWV1ZXNfdjkoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwgdWludDMyX3QgKmJ1ZmZlciwKIAkJYnJlYWs7CiAJY2FzZSBLRkRfUVVFVUVfVFlQRV9TRE1BOgogCWNhc2UgS0ZEX1FVRVVFX1RZUEVfU0RNQV9YR01JOgotCQlwYWNrZXQtPmJpdGZpZWxkczIuZW5naW5lX3NlbCA9IHEtPnByb3BlcnRpZXMuc2RtYV9lbmdpbmVfaWQgKwotCQkJCWVuZ2luZV9zZWxfX21lc19tYXBfcXVldWVzX19zZG1hMF92aTsKIAkJdXNlX3N0YXRpYyA9IGZhbHNlOyAvKiBubyBzdGF0aWMgcXVldWVzIHVuZGVyIFNETUEgKi8KKwkJaWYgKHEtPnByb3BlcnRpZXMuc2RtYV9lbmdpbmVfaWQgPCAyKQorCQkJcGFja2V0LT5iaXRmaWVsZHMyLmVuZ2luZV9zZWwgPSBxLT5wcm9wZXJ0aWVzLnNkbWFfZW5naW5lX2lkICsKKwkJCQllbmdpbmVfc2VsX19tZXNfbWFwX3F1ZXVlc19fc2RtYTBfdmk7CisJCWVsc2UgeworCQkJcGFja2V0LT5iaXRmaWVsZHMyLmV4dGVuZGVkX2VuZ2luZV9zZWwgPQorCQkJCWV4dGVuZGVkX2VuZ2luZV9zZWxfX21lc19tYXBfcXVldWVzX19zZG1hMF90b183X3NlbDsKKwkJCXBhY2tldC0+Yml0ZmllbGRzMi5lbmdpbmVfc2VsID0gcS0+cHJvcGVydGllcy5zZG1hX2VuZ2luZV9pZDsKKwkJfQogCQlicmVhazsKIAlkZWZhdWx0OgogCQlXQVJOKDEsICJxdWV1ZSB0eXBlICVkIiwgcS0+cHJvcGVydGllcy50eXBlKTsKQEAgLTIxOCwxMyArMjU1LDIzIEBAIHN0YXRpYyBpbnQgcG1fdW5tYXBfcXVldWVzX3Y5KHN0cnVjdCBwYWNrZXRfbWFuYWdlciAqcG0sIHVpbnQzMl90ICpidWZmZXIsCiAJc3dpdGNoICh0eXBlKSB7CiAJY2FzZSBLRkRfUVVFVUVfVFlQRV9DT01QVVRFOgogCWNhc2UgS0ZEX1FVRVVFX1RZUEVfRElROgorCQlwYWNrZXQtPmJpdGZpZWxkczIuZXh0ZW5kZWRfZW5naW5lX3NlbCA9CisJCQlleHRlbmRlZF9lbmdpbmVfc2VsX19tZXNfdW5tYXBfcXVldWVzX19sZWdhY3lfZW5naW5lX3NlbDsKIAkJcGFja2V0LT5iaXRmaWVsZHMyLmVuZ2luZV9zZWwgPQogCQkJZW5naW5lX3NlbF9fbWVzX3VubWFwX3F1ZXVlc19fY29tcHV0ZTsKIAkJYnJlYWs7CiAJY2FzZSBLRkRfUVVFVUVfVFlQRV9TRE1BOgogCWNhc2UgS0ZEX1FVRVVFX1RZUEVfU0RNQV9YR01JOgotCQlwYWNrZXQtPmJpdGZpZWxkczIuZW5naW5lX3NlbCA9Ci0JCQllbmdpbmVfc2VsX19tZXNfdW5tYXBfcXVldWVzX19zZG1hMCArIHNkbWFfZW5naW5lOworCQlpZiAoc2RtYV9lbmdpbmUgPCAyKSB7CisJCQlwYWNrZXQtPmJpdGZpZWxkczIuZXh0ZW5kZWRfZW5naW5lX3NlbCA9CisJCQkJZXh0ZW5kZWRfZW5naW5lX3NlbF9fbWVzX3VubWFwX3F1ZXVlc19fbGVnYWN5X2VuZ2luZV9zZWw7CisJCQlwYWNrZXQtPmJpdGZpZWxkczIuZW5naW5lX3NlbCA9CisJCQkJZW5naW5lX3NlbF9fbWVzX3VubWFwX3F1ZXVlc19fc2RtYTAgKyBzZG1hX2VuZ2luZTsKKwkJfSBlbHNlIHsKKwkJCXBhY2tldC0+Yml0ZmllbGRzMi5leHRlbmRlZF9lbmdpbmVfc2VsID0KKwkJCQlleHRlbmRlZF9lbmdpbmVfc2VsX19tZXNfdW5tYXBfcXVldWVzX19zZG1hMF90b183X3NlbDsKKwkJCXBhY2tldC0+Yml0ZmllbGRzMi5lbmdpbmVfc2VsID0gc2RtYV9lbmdpbmU7CisJCX0KIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJV0FSTigxLCAicXVldWUgdHlwZSAlZCIsIHR5cGUpOwpAQCAtMzI2LDcgKzM3Myw3IEBAIHN0YXRpYyBpbnQgcG1fcmVsZWFzZV9tZW1fdjkodWludDY0X3QgZ3B1X2FkZHIsIHVpbnQzMl90ICpidWZmZXIpCiBjb25zdCBzdHJ1Y3QgcGFja2V0X21hbmFnZXJfZnVuY3Mga2ZkX3Y5X3BtX2Z1bmNzID0gewogCS5tYXBfcHJvY2VzcwkJPSBwbV9tYXBfcHJvY2Vzc192OSwKIAkucnVubGlzdAkJPSBwbV9ydW5saXN0X3Y5LAotCS5zZXRfcmVzb3VyY2VzCQk9IHBtX3NldF9yZXNvdXJjZXNfdmksCisJLnNldF9yZXNvdXJjZXMJCT0gcG1fc2V0X3Jlc291cmNlc192OSwKIAkubWFwX3F1ZXVlcwkJPSBwbV9tYXBfcXVldWVzX3Y5LAogCS51bm1hcF9xdWV1ZXMJCT0gcG1fdW5tYXBfcXVldWVzX3Y5LAogCS5xdWVyeV9zdGF0dXMJCT0gcG1fcXVlcnlfc3RhdHVzX3Y5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuYwppbmRleCBkNmNmMzkxLi44ODgxM2RhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuYwpAQCAtOTgsOCArOTgsOCBAQCB2b2lkIG1xZF9zeW1tZXRyaWNhbGx5X21hcF9jdV9tYXNrKHN0cnVjdCBtcWRfbWFuYWdlciAqbW0sCiAJCXVpbnQzMl90ICpzZV9tYXNrKQogewogCXN0cnVjdCBrZmRfY3VfaW5mbyBjdV9pbmZvOwotCXVpbnQzMl90IGN1X3Blcl9zaFs0XSA9IHswfTsKLQlpbnQgaSwgc2UsIGN1ID0gMDsKKwl1aW50MzJfdCBjdV9wZXJfc2VbS0ZEX01BWF9OVU1fU0VdID0gezB9OworCWludCBpLCBzZSwgc2gsIGN1ID0gMDsKIAogCWFtZGdwdV9hbWRrZmRfZ2V0X2N1X2luZm8obW0tPmRldi0+a2dkLCAmY3VfaW5mbyk7CiAKQEAgLTEwNyw4ICsxMDcsOCBAQCB2b2lkIG1xZF9zeW1tZXRyaWNhbGx5X21hcF9jdV9tYXNrKHN0cnVjdCBtcWRfbWFuYWdlciAqbW0sCiAJCWN1X21hc2tfY291bnQgPSBjdV9pbmZvLmN1X2FjdGl2ZV9udW1iZXI7CiAKIAlmb3IgKHNlID0gMDsgc2UgPCBjdV9pbmZvLm51bV9zaGFkZXJfZW5naW5lczsgc2UrKykKLQkJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKLQkJCWN1X3Blcl9zaFtzZV0gKz0gaHdlaWdodDMyKGN1X2luZm8uY3VfYml0bWFwW3NlXVtpXSk7CisJCWZvciAoc2ggPSAwOyBzaCA8IGN1X2luZm8ubnVtX3NoYWRlcl9hcnJheXNfcGVyX2VuZ2luZTsgc2grKykKKwkJCWN1X3Blcl9zZVtzZV0gKz0gaHdlaWdodDMyKGN1X2luZm8uY3VfYml0bWFwW3NlICUgNF1bc2ggKyAoc2UgLyA0KV0pOwogCiAJLyogU3ltbWV0cmljYWxseSBtYXAgY3VfbWFzayB0byBhbGwgU0VzOgogCSAqIGN1X21hc2tbMF0gYml0MCAtPiBzZV9tYXNrWzBdIGJpdDA7CkBAIC0xMjgsNiArMTI4LDYgQEAgdm9pZCBtcWRfc3ltbWV0cmljYWxseV9tYXBfY3VfbWFzayhzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLAogCQkJCXNlID0gMDsKIAkJCQljdSsrOwogCQkJfQotCQl9IHdoaWxlIChjdSA+PSBjdV9wZXJfc2hbc2VdICYmIGN1IDwgMzIpOworCQl9IHdoaWxlIChjdSA+PSBjdV9wZXJfc2Vbc2VdICYmIGN1IDwgMzIpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyLmgKaW5kZXggNTUwYjYxZS4uZmJkYjE2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyLmgKQEAgLTI2LDYgKzI2LDggQEAKIAogI2luY2x1ZGUgImtmZF9wcml2LmgiCiAKKyNkZWZpbmUgS0ZEX01BWF9OVU1fU0UgOAorCiAvKioKICAqIHN0cnVjdCBtcWRfbWFuYWdlcgogICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92OS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyX3Y5LmMKaW5kZXggMGM1OGY5MS4uZDMzODBjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyX3Y5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyX3Y5LmMKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX2N1X21hc2soc3RydWN0IG1xZF9tYW5hZ2VyICptbSwgdm9pZCAqbXFkLAogCQkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpCiB7CiAJc3RydWN0IHY5X21xZCAqbTsKLQl1aW50MzJfdCBzZV9tYXNrWzRdID0gezB9OyAvKiA0IGlzIHRoZSBtYXggIyBvZiBTRXMgKi8KKwl1aW50MzJfdCBzZV9tYXNrW0tGRF9NQVhfTlVNX1NFXSA9IHswfTsKIAogCWlmIChxLT5jdV9tYXNrX2NvdW50ID09IDApCiAJCXJldHVybjsKQEAgLTU5LDEyICs1OSwyMCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfY3VfbWFzayhzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICptcWQsCiAJbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2UxID0gc2VfbWFza1sxXTsKIAltLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTIgPSBzZV9tYXNrWzJdOwogCW0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMyA9IHNlX21hc2tbM107CisJbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2U0ID0gc2VfbWFza1s0XTsKKwltLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTUgPSBzZV9tYXNrWzVdOworCW0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlNiA9IHNlX21hc2tbNl07CisJbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2U3ID0gc2VfbWFza1s3XTsKIAotCXByX2RlYnVnKCJ1cGRhdGUgY3UgbWFzayB0byAlI3ggJSN4ICUjeCAlI3hcbiIsCisJcHJfZGVidWcoInVwZGF0ZSBjdSBtYXNrIHRvICUjeCAlI3ggJSN4ICUjeCAlI3ggJSN4ICUjeCAlI3hcbiIsCiAJCW0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMCwKIAkJbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2UxLAogCQltLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTIsCi0JCW0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMyk7CisJCW0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMywKKwkJbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2U0LAorCQltLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTUsCisJCW0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlNiwKKwkJbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2U3KTsKIH0KIAogc3RhdGljIHZvaWQgc2V0X3ByaW9yaXR5KHN0cnVjdCB2OV9tcWQgKm0sIHN0cnVjdCBxdWV1ZV9wcm9wZXJ0aWVzICpxKQpAQCAtMTI1LDYgKzEzMywxMCBAQCBzdGF0aWMgdm9pZCBpbml0X21xZChzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLAogCW0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMSA9IDB4RkZGRkZGRkY7CiAJbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2UyID0gMHhGRkZGRkZGRjsKIAltLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTMgPSAweEZGRkZGRkZGOworCW0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlNCA9IDB4RkZGRkZGRkY7CisJbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2U1ID0gMHhGRkZGRkZGRjsKKwltLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTYgPSAweEZGRkZGRkZGOworCW0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlNyA9IDB4RkZGRkZGRkY7CiAKIAltLT5jcF9ocWRfcGVyc2lzdGVudF9zdGF0ZSA9IENQX0hRRF9QRVJTSVNURU5UX1NUQVRFX19QUkVMT0FEX1JFUV9NQVNLIHwKIAkJCTB4NTMgPDwgQ1BfSFFEX1BFUlNJU1RFTlRfU1RBVEVfX1BSRUxPQURfU0laRV9fU0hJRlQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcGFja2V0X21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wYWNrZXRfbWFuYWdlci5jCmluZGV4IGNjZjZiMjMuLjJjODYyNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wYWNrZXRfbWFuYWdlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wYWNrZXRfbWFuYWdlci5jCkBAIC0yMzksNiArMjM5LDcgQEAgaW50IHBtX2luaXQoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwgc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0pCiAJY2FzZSBDSElQX1ZFR0ExMjoKIAljYXNlIENISVBfVkVHQTIwOgogCWNhc2UgQ0hJUF9SQVZFTjoKKwljYXNlIENISVBfQVJDVFVSVVM6CiAJCXBtLT5wbWYgPSAma2ZkX3Y5X3BtX2Z1bmNzOwogCQlicmVhazsKIAljYXNlIENISVBfTkFWSTEwOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3BtNF9oZWFkZXJzX2FpLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcG00X2hlYWRlcnNfYWkuaAppbmRleCBlM2UyMTQwLi40ZDdhZGQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcG00X2hlYWRlcnNfYWkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcG00X2hlYWRlcnNfYWkuaApAQCAtODMsMTAgKzgzLDEwIEBAIHN0cnVjdCBwbTRfbWVzX3NldF9yZXNvdXJjZXMgewogCiAJdW5pb24gewogCQlzdHJ1Y3QgewotCQl1aW50MzJfdCBnZHNfaGVhcF9iYXNlOjY7Ci0JCXVpbnQzMl90IHJlc2VydmVkMzo1OwotCQl1aW50MzJfdCBnZHNfaGVhcF9zaXplOjY7Ci0JCXVpbnQzMl90IHJlc2VydmVkNDoxNTsKKwkJdWludDMyX3QgZ2RzX2hlYXBfYmFzZToxMDsKKwkJdWludDMyX3QgcmVzZXJ2ZWQzOjE7CisJCXVpbnQzMl90IGdkc19oZWFwX3NpemU6MTA7CisJCXVpbnQzMl90IHJlc2VydmVkNDoxMTsKIAkJfSBiaXRmaWVsZHM4OwogCQl1aW50MzJfdCBvcmRpbmFsODsKIAl9OwpAQCAtMTc5LDcgKzE3OSw3IEBAIHN0cnVjdCBwbTRfbWVzX21hcF9wcm9jZXNzIHsKIAkJCXVpbnQzMl90IG51bV9nd3M6NzsKIAkJCXVpbnQzMl90IHNkbWFfZW5hYmxlOjE7CiAJCQl1aW50MzJfdCBudW1fb2FjOjQ7Ci0JCQl1aW50MzJfdCByZXNlcnZlZDg6NDsKKwkJCXVpbnQzMl90IGdkc19zaXplX2hpOjQ7CiAJCQl1aW50MzJfdCBnZHNfc2l6ZTo2OwogCQkJdWludDMyX3QgbnVtX3F1ZXVlczoxMDsKIAkJfSBiaXRmaWVsZHMxNDsKQEAgLTI2MCw2ICsyNjAsMTAgQEAgZW51bSBtZXNfbWFwX3F1ZXVlc19lbmdpbmVfc2VsX2VudW0gewogCWVuZ2luZV9zZWxfX21lc19tYXBfcXVldWVzX19zZG1hMV92aSA9IDMKIH07CiAKK2VudW0gbWVzX21hcF9xdWV1ZXNfZXh0ZW5kZWRfZW5naW5lX3NlbF9lbnVtIHsKKwlleHRlbmRlZF9lbmdpbmVfc2VsX19tZXNfbWFwX3F1ZXVlc19fbGVnYWN5X2VuZ2luZV9zZWwgPSAwLAorCWV4dGVuZGVkX2VuZ2luZV9zZWxfX21lc19tYXBfcXVldWVzX19zZG1hMF90b183X3NlbCA9IDEKK307CiAKIHN0cnVjdCBwbTRfbWVzX21hcF9xdWV1ZXMgewogCXVuaW9uIHsKQEAgLTI2OSw3ICsyNzMsOCBAQCBzdHJ1Y3QgcG00X21lc19tYXBfcXVldWVzIHsKIAogCXVuaW9uIHsKIAkJc3RydWN0IHsKLQkJCXVpbnQzMl90IHJlc2VydmVkMTo0OworCQkJdWludDMyX3QgcmVzZXJ2ZWQxOjI7CisJCQllbnVtIG1lc19tYXBfcXVldWVzX2V4dGVuZGVkX2VuZ2luZV9zZWxfZW51bSBleHRlbmRlZF9lbmdpbmVfc2VsOjI7CiAJCQllbnVtIG1lc19tYXBfcXVldWVzX3F1ZXVlX3NlbF9lbnVtIHF1ZXVlX3NlbDoyOwogCQkJdWludDMyX3QgcmVzZXJ2ZWQ1OjY7CiAJCQl1aW50MzJfdCBnd3NfY29udHJvbF9xdWV1ZToxOwpAQCAtMzgyLDYgKzM4NywxMSBAQCBlbnVtIG1lc191bm1hcF9xdWV1ZXNfZW5naW5lX3NlbF9lbnVtIHsKIAllbmdpbmVfc2VsX19tZXNfdW5tYXBfcXVldWVzX19zZG1hbCA9IDMKIH07CiAKK2VudW0gbWVzX3VubWFwX3F1ZXVlc19leHRlbmRlZF9lbmdpbmVfc2VsX2VudW0geworCWV4dGVuZGVkX2VuZ2luZV9zZWxfX21lc191bm1hcF9xdWV1ZXNfX2xlZ2FjeV9lbmdpbmVfc2VsID0gMCwKKwlleHRlbmRlZF9lbmdpbmVfc2VsX19tZXNfdW5tYXBfcXVldWVzX19zZG1hMF90b183X3NlbCA9IDEKK307CisKIHN0cnVjdCBwbTRfbWVzX3VubWFwX3F1ZXVlcyB7CiAJdW5pb24gewogCQl1bmlvbiBQTTRfTUVTX1RZUEVfM19IRUFERVIgICBoZWFkZXI7ICAgICAgICAgICAgLyogaGVhZGVyICovCkBAIC0zOTEsNyArNDAxLDcgQEAgc3RydWN0IHBtNF9tZXNfdW5tYXBfcXVldWVzIHsKIAl1bmlvbiB7CiAJCXN0cnVjdCB7CiAJCQllbnVtIG1lc191bm1hcF9xdWV1ZXNfYWN0aW9uX2VudW0gYWN0aW9uOjI7Ci0JCQl1aW50MzJfdCByZXNlcnZlZDE6MjsKKwkJCWVudW0gbWVzX3VubWFwX3F1ZXVlc19leHRlbmRlZF9lbmdpbmVfc2VsX2VudW0gZXh0ZW5kZWRfZW5naW5lX3NlbDoyOwogCQkJZW51bSBtZXNfdW5tYXBfcXVldWVzX3F1ZXVlX3NlbF9lbnVtIHF1ZXVlX3NlbDoyOwogCQkJdWludDMyX3QgcmVzZXJ2ZWQyOjIwOwogCQkJZW51bSBtZXNfdW5tYXBfcXVldWVzX2VuZ2luZV9zZWxfZW51bSBlbmdpbmVfc2VsOjM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaAppbmRleCAzOTMzZmI2Li5jODkzMjYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcml2LmgKQEAgLTE5NSw2ICsxOTUsNyBAQCBzdHJ1Y3Qga2ZkX2V2ZW50X2ludGVycnVwdF9jbGFzcyB7CiAKIHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gewogCWVudW0gYW1kX2FzaWNfdHlwZSBhc2ljX2ZhbWlseTsKKwljb25zdCBjaGFyICphc2ljX25hbWU7CiAJY29uc3Qgc3RydWN0IGtmZF9ldmVudF9pbnRlcnJ1cHRfY2xhc3MgKmV2ZW50X2ludGVycnVwdF9jbGFzczsKIAl1bnNpZ25lZCBpbnQgbWF4X3Bhc2lkX2JpdHM7CiAJdW5zaWduZWQgaW50IG1heF9ub19vZl9ocWQ7CkBAIC02ODYsOSArNjg3LDYgQEAgc3RydWN0IGtmZF9wcm9jZXNzIHsKIAkvKiBXZSB3YW50IHRvIHJlY2VpdmUgYSBub3RpZmljYXRpb24gd2hlbiB0aGUgbW1fc3RydWN0IGlzIGRlc3Ryb3llZCAqLwogCXN0cnVjdCBtbXVfbm90aWZpZXIgbW11X25vdGlmaWVyOwogCi0JLyogVXNlIGZvciBkZWxheWVkIGZyZWVpbmcgb2Yga2ZkX3Byb2Nlc3Mgc3RydWN0dXJlICovCi0Jc3RydWN0IHJjdV9oZWFkCXJjdTsKLQogCXVuc2lnbmVkIGludCBwYXNpZDsKIAl1bnNpZ25lZCBpbnQgZG9vcmJlbGxfaW5kZXg7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJvY2Vzcy5jCmluZGV4IDhmMTA3NmMuLjQwZTNmYzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Byb2Nlc3MuYwpAQCAtNjIsOCArNjIsOCBAQCBzdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmtmZF9yZXN0b3JlX3dxOwogCiBzdGF0aWMgc3RydWN0IGtmZF9wcm9jZXNzICpmaW5kX3Byb2Nlc3MoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICp0aHJlYWQpOwogc3RhdGljIHZvaWQga2ZkX3Byb2Nlc3NfcmVmX3JlbGVhc2Uoc3RydWN0IGtyZWYgKnJlZik7Ci1zdGF0aWMgc3RydWN0IGtmZF9wcm9jZXNzICpjcmVhdGVfcHJvY2Vzcyhjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRocmVhZCwKLQkJCQkJc3RydWN0IGZpbGUgKmZpbGVwKTsKK3N0YXRpYyBzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKmNyZWF0ZV9wcm9jZXNzKGNvbnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqdGhyZWFkKTsKK3N0YXRpYyBpbnQga2ZkX3Byb2Nlc3NfaW5pdF9jd3NyX2FwdShzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAsIHN0cnVjdCBmaWxlICpmaWxlcCk7CiAKIHN0YXRpYyB2b2lkIGV2aWN0X3Byb2Nlc3Nfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CiBzdGF0aWMgdm9pZCByZXN0b3JlX3Byb2Nlc3Nfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CkBAIC0yODksNyArMjg5LDE1IEBAIHN0cnVjdCBrZmRfcHJvY2VzcyAqa2ZkX2NyZWF0ZV9wcm9jZXNzKHN0cnVjdCBmaWxlICpmaWxlcCkKIAlpZiAocHJvY2VzcykgewogCQlwcl9kZWJ1ZygiUHJvY2VzcyBhbHJlYWR5IGZvdW5kXG4iKTsKIAl9IGVsc2UgewotCQlwcm9jZXNzID0gY3JlYXRlX3Byb2Nlc3ModGhyZWFkLCBmaWxlcCk7CisJCXByb2Nlc3MgPSBjcmVhdGVfcHJvY2Vzcyh0aHJlYWQpOworCQlpZiAoSVNfRVJSKHByb2Nlc3MpKQorCQkJZ290byBvdXQ7CisKKwkJcmV0ID0ga2ZkX3Byb2Nlc3NfaW5pdF9jd3NyX2FwdShwcm9jZXNzLCBmaWxlcCk7CisJCWlmIChyZXQpIHsKKwkJCXByb2Nlc3MgPSBFUlJfUFRSKHJldCk7CisJCQlnb3RvIG91dDsKKwkJfQogCiAJCWlmICghcHJvY2ZzLmtvYmopCiAJCQlnb3RvIG91dDsKQEAgLTQ3OCwxMSArNDg2LDkgQEAgc3RhdGljIHZvaWQga2ZkX3Byb2Nlc3NfcmVmX3JlbGVhc2Uoc3RydWN0IGtyZWYgKnJlZikKIAlxdWV1ZV93b3JrKGtmZF9wcm9jZXNzX3dxLCAmcC0+cmVsZWFzZV93b3JrKTsKIH0KIAotc3RhdGljIHZvaWQga2ZkX3Byb2Nlc3NfZGVzdHJveV9kZWxheWVkKHN0cnVjdCByY3VfaGVhZCAqcmN1KQorc3RhdGljIHZvaWQga2ZkX3Byb2Nlc3NfZnJlZV9ub3RpZmllcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbikKIHsKLQlzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAgPSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3Qga2ZkX3Byb2Nlc3MsIHJjdSk7Ci0KLQlrZmRfdW5yZWZfcHJvY2VzcyhwKTsKKwlrZmRfdW5yZWZfcHJvY2Vzcyhjb250YWluZXJfb2YobW4sIHN0cnVjdCBrZmRfcHJvY2VzcywgbW11X25vdGlmaWVyKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGtmZF9wcm9jZXNzX25vdGlmaWVyX3JlbGVhc2Uoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sCkBAIC01MzQsMTIgKzU0MCwxMiBAQCBzdGF0aWMgdm9pZCBrZmRfcHJvY2Vzc19ub3RpZmllcl9yZWxlYXNlKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAogCiAJbXV0ZXhfdW5sb2NrKCZwLT5tdXRleCk7CiAKLQltbXVfbm90aWZpZXJfdW5yZWdpc3Rlcl9ub19yZWxlYXNlKCZwLT5tbXVfbm90aWZpZXIsIG1tKTsKLQltbXVfbm90aWZpZXJfY2FsbF9zcmN1KCZwLT5yY3UsICZrZmRfcHJvY2Vzc19kZXN0cm95X2RlbGF5ZWQpOworCW1tdV9ub3RpZmllcl9wdXQoJnAtPm1tdV9ub3RpZmllcik7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyBrZmRfcHJvY2Vzc19tbXVfbm90aWZpZXJfb3BzID0gewogCS5yZWxlYXNlID0ga2ZkX3Byb2Nlc3Nfbm90aWZpZXJfcmVsZWFzZSwKKwkuZnJlZV9ub3RpZmllciA9IGtmZF9wcm9jZXNzX2ZyZWVfbm90aWZpZXIsCiB9OwogCiBzdGF0aWMgaW50IGtmZF9wcm9jZXNzX2luaXRfY3dzcl9hcHUoc3RydWN0IGtmZF9wcm9jZXNzICpwLCBzdHJ1Y3QgZmlsZSAqZmlsZXApCkBAIC02MDksMTcgKzYxNSwzMCBAQCBzdGF0aWMgaW50IGtmZF9wcm9jZXNzX2RldmljZV9pbml0X2N3c3JfZGdwdShzdHJ1Y3Qga2ZkX3Byb2Nlc3NfZGV2aWNlICpwZGQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKmNyZWF0ZV9wcm9jZXNzKGNvbnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqdGhyZWFkLAotCQkJCQlzdHJ1Y3QgZmlsZSAqZmlsZXApCisvKgorICogT24gcmV0dXJuIHRoZSBrZmRfcHJvY2VzcyBpcyBmdWxseSBvcGVyYXRpb25hbCBhbmQgd2lsbCBiZSBmcmVlZCB3aGVuIHRoZQorICogbW0gaXMgcmVsZWFzZWQKKyAqLworc3RhdGljIHN0cnVjdCBrZmRfcHJvY2VzcyAqY3JlYXRlX3Byb2Nlc3MoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICp0aHJlYWQpCiB7CiAJc3RydWN0IGtmZF9wcm9jZXNzICpwcm9jZXNzOwogCWludCBlcnIgPSAtRU5PTUVNOwogCiAJcHJvY2VzcyA9IGt6YWxsb2Moc2l6ZW9mKCpwcm9jZXNzKSwgR0ZQX0tFUk5FTCk7Ci0KIAlpZiAoIXByb2Nlc3MpCiAJCWdvdG8gZXJyX2FsbG9jX3Byb2Nlc3M7CiAKKwlrcmVmX2luaXQoJnByb2Nlc3MtPnJlZik7CisJbXV0ZXhfaW5pdCgmcHJvY2Vzcy0+bXV0ZXgpOworCXByb2Nlc3MtPm1tID0gdGhyZWFkLT5tbTsKKwlwcm9jZXNzLT5sZWFkX3RocmVhZCA9IHRocmVhZC0+Z3JvdXBfbGVhZGVyOworCUlOSVRfTElTVF9IRUFEKCZwcm9jZXNzLT5wZXJfZGV2aWNlX2RhdGEpOworCUlOSVRfREVMQVlFRF9XT1JLKCZwcm9jZXNzLT5ldmljdGlvbl93b3JrLCBldmljdF9wcm9jZXNzX3dvcmtlcik7CisJSU5JVF9ERUxBWUVEX1dPUksoJnByb2Nlc3MtPnJlc3RvcmVfd29yaywgcmVzdG9yZV9wcm9jZXNzX3dvcmtlcik7CisJcHJvY2Vzcy0+bGFzdF9yZXN0b3JlX3RpbWVzdGFtcCA9IGdldF9qaWZmaWVzXzY0KCk7CisJa2ZkX2V2ZW50X2luaXRfcHJvY2Vzcyhwcm9jZXNzKTsKKwlwcm9jZXNzLT5pc18zMmJpdF91c2VyX21vZGUgPSBpbl9jb21wYXRfc3lzY2FsbCgpOworCiAJcHJvY2Vzcy0+cGFzaWQgPSBrZmRfcGFzaWRfYWxsb2MoKTsKIAlpZiAocHJvY2Vzcy0+cGFzaWQgPT0gMCkKIAkJZ290byBlcnJfYWxsb2NfcGFzaWQ7CkBAIC02MjcsNjMgKzY0NiwzOCBAQCBzdGF0aWMgc3RydWN0IGtmZF9wcm9jZXNzICpjcmVhdGVfcHJvY2Vzcyhjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRocmVhZCwKIAlpZiAoa2ZkX2FsbG9jX3Byb2Nlc3NfZG9vcmJlbGxzKHByb2Nlc3MpIDwgMCkKIAkJZ290byBlcnJfYWxsb2NfZG9vcmJlbGxzOwogCi0Ja3JlZl9pbml0KCZwcm9jZXNzLT5yZWYpOwotCi0JbXV0ZXhfaW5pdCgmcHJvY2Vzcy0+bXV0ZXgpOwotCi0JcHJvY2Vzcy0+bW0gPSB0aHJlYWQtPm1tOwotCi0JLyogcmVnaXN0ZXIgbm90aWZpZXIgKi8KLQlwcm9jZXNzLT5tbXVfbm90aWZpZXIub3BzID0gJmtmZF9wcm9jZXNzX21tdV9ub3RpZmllcl9vcHM7Ci0JZXJyID0gbW11X25vdGlmaWVyX3JlZ2lzdGVyKCZwcm9jZXNzLT5tbXVfbm90aWZpZXIsIHByb2Nlc3MtPm1tKTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9tbXVfbm90aWZpZXI7Ci0KLQloYXNoX2FkZF9yY3Uoa2ZkX3Byb2Nlc3Nlc190YWJsZSwgJnByb2Nlc3MtPmtmZF9wcm9jZXNzZXMsCi0JCQkodWludHB0cl90KXByb2Nlc3MtPm1tKTsKLQotCXByb2Nlc3MtPmxlYWRfdGhyZWFkID0gdGhyZWFkLT5ncm91cF9sZWFkZXI7Ci0JZ2V0X3Rhc2tfc3RydWN0KHByb2Nlc3MtPmxlYWRfdGhyZWFkKTsKLQotCUlOSVRfTElTVF9IRUFEKCZwcm9jZXNzLT5wZXJfZGV2aWNlX2RhdGEpOwotCi0Ja2ZkX2V2ZW50X2luaXRfcHJvY2Vzcyhwcm9jZXNzKTsKLQogCWVyciA9IHBxbV9pbml0KCZwcm9jZXNzLT5wcW0sIHByb2Nlc3MpOwogCWlmIChlcnIgIT0gMCkKIAkJZ290byBlcnJfcHJvY2Vzc19wcW1faW5pdDsKIAogCS8qIGluaXQgcHJvY2VzcyBhcGVydHVyZXMqLwotCXByb2Nlc3MtPmlzXzMyYml0X3VzZXJfbW9kZSA9IGluX2NvbXBhdF9zeXNjYWxsKCk7CiAJZXJyID0ga2ZkX2luaXRfYXBlcnR1cmVzKHByb2Nlc3MpOwogCWlmIChlcnIgIT0gMCkKIAkJZ290byBlcnJfaW5pdF9hcGVydHVyZXM7CiAKLQlJTklUX0RFTEFZRURfV09SSygmcHJvY2Vzcy0+ZXZpY3Rpb25fd29yaywgZXZpY3RfcHJvY2Vzc193b3JrZXIpOwotCUlOSVRfREVMQVlFRF9XT1JLKCZwcm9jZXNzLT5yZXN0b3JlX3dvcmssIHJlc3RvcmVfcHJvY2Vzc193b3JrZXIpOwotCXByb2Nlc3MtPmxhc3RfcmVzdG9yZV90aW1lc3RhbXAgPSBnZXRfamlmZmllc182NCgpOwotCi0JZXJyID0ga2ZkX3Byb2Nlc3NfaW5pdF9jd3NyX2FwdShwcm9jZXNzLCBmaWxlcCk7CisJLyogTXVzdCBiZSBsYXN0LCBoYXZlIHRvIHVzZSByZWxlYXNlIGRlc3RydWN0aW9uIGFmdGVyIHRoaXMgKi8KKwlwcm9jZXNzLT5tbXVfbm90aWZpZXIub3BzID0gJmtmZF9wcm9jZXNzX21tdV9ub3RpZmllcl9vcHM7CisJZXJyID0gbW11X25vdGlmaWVyX3JlZ2lzdGVyKCZwcm9jZXNzLT5tbXVfbm90aWZpZXIsIHByb2Nlc3MtPm1tKTsKIAlpZiAoZXJyKQotCQlnb3RvIGVycl9pbml0X2N3c3I7CisJCWdvdG8gZXJyX3JlZ2lzdGVyX25vdGlmaWVyOworCisJZ2V0X3Rhc2tfc3RydWN0KHByb2Nlc3MtPmxlYWRfdGhyZWFkKTsKKwloYXNoX2FkZF9yY3Uoa2ZkX3Byb2Nlc3Nlc190YWJsZSwgJnByb2Nlc3MtPmtmZF9wcm9jZXNzZXMsCisJCQkodWludHB0cl90KXByb2Nlc3MtPm1tKTsKIAogCXJldHVybiBwcm9jZXNzOwogCi1lcnJfaW5pdF9jd3NyOgorZXJyX3JlZ2lzdGVyX25vdGlmaWVyOgogCWtmZF9wcm9jZXNzX2ZyZWVfb3V0c3RhbmRpbmdfa2ZkX2Jvcyhwcm9jZXNzKTsKIAlrZmRfcHJvY2Vzc19kZXN0cm95X3BkZHMocHJvY2Vzcyk7CiBlcnJfaW5pdF9hcGVydHVyZXM6CiAJcHFtX3VuaW5pdCgmcHJvY2Vzcy0+cHFtKTsKIGVycl9wcm9jZXNzX3BxbV9pbml0OgotCWhhc2hfZGVsX3JjdSgmcHJvY2Vzcy0+a2ZkX3Byb2Nlc3Nlcyk7Ci0Jc3luY2hyb25pemVfcmN1KCk7Ci0JbW11X25vdGlmaWVyX3VucmVnaXN0ZXJfbm9fcmVsZWFzZSgmcHJvY2Vzcy0+bW11X25vdGlmaWVyLCBwcm9jZXNzLT5tbSk7Ci1lcnJfbW11X25vdGlmaWVyOgotCW11dGV4X2Rlc3Ryb3koJnByb2Nlc3MtPm11dGV4KTsKIAlrZmRfZnJlZV9wcm9jZXNzX2Rvb3JiZWxscyhwcm9jZXNzKTsKIGVycl9hbGxvY19kb29yYmVsbHM6CiAJa2ZkX3Bhc2lkX2ZyZWUocHJvY2Vzcy0+cGFzaWQpOwogZXJyX2FsbG9jX3Bhc2lkOgorCW11dGV4X2Rlc3Ryb3koJnByb2Nlc3MtPm11dGV4KTsKIAlrZnJlZShwcm9jZXNzKTsKIGVycl9hbGxvY19wcm9jZXNzOgogCXJldHVybiBFUlJfUFRSKGVycik7CkBAIC04MDEsNiArNzk1LDggQEAgaW50IGtmZF9wcm9jZXNzX2RldmljZV9pbml0X3ZtKHN0cnVjdCBrZmRfcHJvY2Vzc19kZXZpY2UgKnBkZCwKIAkJcmV0dXJuIHJldDsKIAl9CiAKKwlhbWRncHVfdm1fc2V0X3Rhc2tfaW5mbyhwZGQtPnZtKTsKKwogCXJldCA9IGtmZF9wcm9jZXNzX2RldmljZV9yZXNlcnZlX2liX21lbShwZGQpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX3Jlc2VydmVfaWJfbWVtOwpAQCAtMTA0Miw3ICsxMDM4LDYgQEAgc3RhdGljIHZvaWQgcmVzdG9yZV9wcm9jZXNzX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGRlbGF5ZWRfd29yayAqZHdvcms7CiAJc3RydWN0IGtmZF9wcm9jZXNzICpwOwotCXN0cnVjdCBrZmRfcHJvY2Vzc19kZXZpY2UgKnBkZDsKIAlpbnQgcmV0ID0gMDsKIAogCWR3b3JrID0gdG9fZGVsYXllZF93b3JrKHdvcmspOwpAQCAtMTA1MSwxNiArMTA0Niw2IEBAIHN0YXRpYyB2b2lkIHJlc3RvcmVfcHJvY2Vzc193b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCSAqIGxpZmV0aW1lIG9mIHRoaXMgdGhyZWFkLCBrZmRfcHJvY2VzcyBwIHdpbGwgYmUgdmFsaWQKIAkgKi8KIAlwID0gY29udGFpbmVyX29mKGR3b3JrLCBzdHJ1Y3Qga2ZkX3Byb2Nlc3MsIHJlc3RvcmVfd29yayk7Ci0KLQkvKiBDYWxsIHJlc3RvcmVfcHJvY2Vzc19ib3Mgb24gdGhlIGZpcnN0IEtHRCBkZXZpY2UuIFRoaXMgZnVuY3Rpb24KLQkgKiB0YWtlcyBjYXJlIG9mIHJlc3RvcmluZyB0aGUgd2hvbGUgcHJvY2VzcyBpbmNsdWRpbmcgb3RoZXIgZGV2aWNlcy4KLQkgKiBSZXN0b3JlIGNhbiBmYWlsIGlmIGVub3VnaCBtZW1vcnkgaXMgbm90IGF2YWlsYWJsZS4gSWYgc28sCi0JICogcmVzY2hlZHVsZSBhZ2Fpbi4KLQkgKi8KLQlwZGQgPSBsaXN0X2ZpcnN0X2VudHJ5KCZwLT5wZXJfZGV2aWNlX2RhdGEsCi0JCQkgICAgICAgc3RydWN0IGtmZF9wcm9jZXNzX2RldmljZSwKLQkJCSAgICAgICBwZXJfZGV2aWNlX2xpc3QpOwotCiAJcHJfZGVidWcoIlN0YXJ0ZWQgcmVzdG9yaW5nIHBhc2lkICVkXG4iLCBwLT5wYXNpZCk7CiAKIAkvKiBTZXR0aW5nIGxhc3RfcmVzdG9yZV90aW1lc3RhbXAgYmVmb3JlIHN1Y2Nlc3NmdWwgcmVzdG9yYXRpb24uCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfdG9wb2xvZ3kuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5jCmluZGV4IGMyZTZlNDcuLjc1NTE3NjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5jCkBAIC00MDYsOCArNDA2LDYgQEAgc3RhdGljIHNzaXplX3Qgbm9kZV9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAogCQljaGFyICpidWZmZXIpCiB7CiAJc3RydWN0IGtmZF90b3BvbG9neV9kZXZpY2UgKmRldjsKLQljaGFyIHB1YmxpY19uYW1lW0tGRF9UT1BPTE9HWV9QVUJMSUNfTkFNRV9TSVpFXTsKLQl1aW50MzJfdCBpOwogCXVpbnQzMl90IGxvZ19tYXhfd2F0Y2hfYWRkcjsKIAogCS8qIE1ha2luZyBzdXJlIHRoYXQgdGhlIGJ1ZmZlciBpcyBhbiBlbXB0eSBzdHJpbmcgKi8KQEAgLTQyMiwxNCArNDIwLDggQEAgc3RhdGljIHNzaXplX3Qgbm9kZV9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAogCWlmIChzdHJjbXAoYXR0ci0+bmFtZSwgIm5hbWUiKSA9PSAwKSB7CiAJCWRldiA9IGNvbnRhaW5lcl9vZihhdHRyLCBzdHJ1Y3Qga2ZkX3RvcG9sb2d5X2RldmljZSwKIAkJCQlhdHRyX25hbWUpOwotCQlmb3IgKGkgPSAwOyBpIDwgS0ZEX1RPUE9MT0dZX1BVQkxJQ19OQU1FX1NJWkU7IGkrKykgewotCQkJcHVibGljX25hbWVbaV0gPQotCQkJCQkoY2hhcilkZXYtPm5vZGVfcHJvcHMubWFya2V0aW5nX25hbWVbaV07Ci0JCQlpZiAoZGV2LT5ub2RlX3Byb3BzLm1hcmtldGluZ19uYW1lW2ldID09IDApCi0JCQkJYnJlYWs7Ci0JCX0KLQkJcHVibGljX25hbWVbS0ZEX1RPUE9MT0dZX1BVQkxJQ19OQU1FX1NJWkUtMV0gPSAweDA7Ci0JCXJldHVybiBzeXNmc19zaG93X3N0cl92YWwoYnVmZmVyLCBwdWJsaWNfbmFtZSk7CisKKwkJcmV0dXJuIHN5c2ZzX3Nob3dfc3RyX3ZhbChidWZmZXIsIGRldi0+bm9kZV9wcm9wcy5uYW1lKTsKIAl9CiAKIAlkZXYgPSBjb250YWluZXJfb2YoYXR0ciwgc3RydWN0IGtmZF90b3BvbG9neV9kZXZpY2UsCkBAIC0xMjc0LDYgKzEyNjYsMTAgQEAgaW50IGtmZF90b3BvbG9neV9hZGRfZGV2aWNlKHN0cnVjdCBrZmRfZGV2ICpncHUpCiAJICovCiAKIAlhbWRncHVfYW1ka2ZkX2dldF9jdV9pbmZvKGRldi0+Z3B1LT5rZ2QsICZjdV9pbmZvKTsKKworCXN0cm5jcHkoZGV2LT5ub2RlX3Byb3BzLm5hbWUsIGdwdS0+ZGV2aWNlX2luZm8tPmFzaWNfbmFtZSwKKwkJCUtGRF9UT1BPTE9HWV9QVUJMSUNfTkFNRV9TSVpFKTsKKwogCWRldi0+bm9kZV9wcm9wcy5zaW1kX2FycmF5c19wZXJfZW5naW5lID0KIAkJY3VfaW5mby5udW1fc2hhZGVyX2FycmF5c19wZXJfZW5naW5lOwogCkBAIC0xMzIxLDYgKzEzMTcsNyBAQCBpbnQga2ZkX3RvcG9sb2d5X2FkZF9kZXZpY2Uoc3RydWN0IGtmZF9kZXYgKmdwdSkKIAljYXNlIENISVBfVkVHQTEyOgogCWNhc2UgQ0hJUF9WRUdBMjA6CiAJY2FzZSBDSElQX1JBVkVOOgorCWNhc2UgQ0hJUF9BUkNUVVJVUzoKIAljYXNlIENISVBfTkFWSTEwOgogCQlkZXYtPm5vZGVfcHJvcHMuY2FwYWJpbGl0eSB8PSAoKEhTQV9DQVBfRE9PUkJFTExfVFlQRV8yXzAgPDwKIAkJCUhTQV9DQVBfRE9PUkJFTExfVFlQRV9UT1RBTEJJVFNfU0hJRlQpICYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3RvcG9sb2d5LmgKaW5kZXggMjc2MzU0YS4uZDQ3MThkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3RvcG9sb2d5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3RvcG9sb2d5LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSAia2ZkX2NyYXQuaCIKIAotI2RlZmluZSBLRkRfVE9QT0xPR1lfUFVCTElDX05BTUVfU0laRSAxMjgKKyNkZWZpbmUgS0ZEX1RPUE9MT0dZX1BVQkxJQ19OQU1FX1NJWkUgMzIKIAogI2RlZmluZSBIU0FfQ0FQX0hPVF9QTFVHR0FCTEUJCQkweDAwMDAwMDAxCiAjZGVmaW5lIEhTQV9DQVBfQVRTX1BSRVNFTlQJCQkweDAwMDAwMDAyCkBAIC04MSw3ICs4MSw3IEBAIHN0cnVjdCBrZmRfbm9kZV9wcm9wZXJ0aWVzIHsKIAlpbnQzMl90ICBkcm1fcmVuZGVyX21pbm9yOwogCXVpbnQzMl90IG51bV9zZG1hX2VuZ2luZXM7CiAJdWludDMyX3QgbnVtX3NkbWFfeGdtaV9lbmdpbmVzOwotCXVpbnQxNl90IG1hcmtldGluZ19uYW1lW0tGRF9UT1BPTE9HWV9QVUJMSUNfTkFNRV9TSVpFXTsKKwljaGFyIG5hbWVbS0ZEX1RPUE9MT0dZX1BVQkxJQ19OQU1FX1NJWkVdOwogfTsKIAogI2RlZmluZSBIU0FfTUVNX0hFQVBfVFlQRV9TWVNURU0JMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvS2NvbmZpZwppbmRleCBmOTU0YmY2Li43MTk5MWEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvS2NvbmZpZwpAQCAtMjYsNiArMjYsMTQgQEAKIAkgICAgQ2hvb3NlIHRoaXMgb3B0aW9uIGlmIHlvdSB3YW50IHRvIGhhdmUKIAkgICAgTmF2aSBzdXBwb3J0IGZvciBkaXNwbGF5IGVuZ2luZQogCitjb25maWcgRFJNX0FNRF9EQ19EQ04yXzEKKyAgICAgICAgYm9vbCAiRENOIDIuMSBmYW1pbHkiCisgICAgICAgIGRlcGVuZHMgb24gRFJNX0FNRF9EQyAmJiBYODYKKyAgICAgICAgZGVwZW5kcyBvbiBEUk1fQU1EX0RDX0RDTjJfMAorICAgICAgICBoZWxwCisgICAgICAgICAgICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gaGF2ZQorICAgICAgICAgICAgUmVub2lyIHN1cHBvcnQgZm9yIGRpc3BsYXkgZW5naW5lCisKIGNvbmZpZyBEUk1fQU1EX0RDX0RTQ19TVVBQT1JUCiAJYm9vbCAiRFNDIHN1cHBvcnQiCiAJZGVmYXVsdCB5CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwppbmRleCA0NWJlN2EyLi44Y2FiNmRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKQEAgLTY4OCwxMiArNjg4LDE1IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJICovCiAJaWYgKGFkZXYtPmZsYWdzICYgQU1EX0lTX0FQVSAmJgogCSAgICBhZGV2LT5hc2ljX3R5cGUgPj0gQ0hJUF9DQVJSSVpPICYmCi0JICAgIGFkZXYtPmFzaWNfdHlwZSA8IENISVBfUkFWRU4pCisJICAgIGFkZXYtPmFzaWNfdHlwZSA8PSBDSElQX1JBVkVOKQogCQlpbml0X2RhdGEuZmxhZ3MuZ3B1X3ZtX3N1cHBvcnQgPSB0cnVlOwogCiAJaWYgKGFtZGdwdV9kY19mZWF0dXJlX21hc2sgJiBEQ19GQkNfTUFTSykKIAkJaW5pdF9kYXRhLmZsYWdzLmZiY19zdXBwb3J0ID0gdHJ1ZTsKIAorCWlmIChhbWRncHVfZGNfZmVhdHVyZV9tYXNrICYgRENfTVVMVElfTU9OX1BQX01DTEtfU1dJVENIX01BU0spCisJCWluaXRfZGF0YS5mbGFncy5tdWx0aV9tb25fcHBfbWNsa19zd2l0Y2ggPSB0cnVlOworCiAJaW5pdF9kYXRhLmZsYWdzLnBvd2VyX2Rvd25fZGlzcGxheV9vbl9ib290ID0gdHJ1ZTsKIAogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMApAQCAtODA5LDYgKzgxMiw5IEBAIHN0YXRpYyBpbnQgbG9hZF9kbWN1X2Z3KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWNhc2UgQ0hJUF9WRUdBMTI6CiAJY2FzZSBDSElQX1ZFR0EyMDoKIAljYXNlIENISVBfTkFWSTEwOgorCWNhc2UgQ0hJUF9OQVZJMTQ6CisJY2FzZSBDSElQX05BVkkxMjoKKwljYXNlIENISVBfUkVOT0lSOgogCQlyZXR1cm4gMDsKIAljYXNlIENISVBfUkFWRU46CiAJCWlmIChBU0lDUkVWX0lTX1BJQ0FTU08oYWRldi0+ZXh0ZXJuYWxfcmV2X2lkKSkKQEAgLTIxMDcsNiArMjExMyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RtX2JhY2tsaWdodF9nZXRfYnJpZ2h0bmVzcyhzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmQpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmFja2xpZ2h0X29wcyBhbWRncHVfZG1fYmFja2xpZ2h0X29wcyA9IHsKKwkub3B0aW9ucyA9IEJMX0NPUkVfU1VTUEVORFJFU1VNRSwKIAkuZ2V0X2JyaWdodG5lc3MgPSBhbWRncHVfZG1fYmFja2xpZ2h0X2dldF9icmlnaHRuZXNzLAogCS51cGRhdGVfc3RhdHVzCT0gYW1kZ3B1X2RtX2JhY2tsaWdodF91cGRhdGVfc3RhdHVzLAogfTsKQEAgLTIzNTgsNyArMjM2NSwxMiBAQCBzdGF0aWMgaW50IGFtZGdwdV9kbV9pbml0aWFsaXplX2RybV9kZXZpY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCiAJY2FzZSBDSElQX1JBVkVOOgogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQorCWNhc2UgQ0hJUF9OQVZJMTI6CiAJY2FzZSBDSElQX05BVkkxMDoKKwljYXNlIENISVBfTkFWSTE0OgorI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisJY2FzZSBDSElQX1JFTk9JUjoKICNlbmRpZgogCQlpZiAoZGNuMTBfcmVnaXN0ZXJfaXJxX2hhbmRsZXJzKGRtLT5hZGV2KSkgewogCQkJRFJNX0VSUk9SKCJETTogRmFpbGVkIHRvIGluaXRpYWxpemUgSVJRXG4iKTsKQEAgLTIzNzMsNiArMjM4NSw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RtX2luaXRpYWxpemVfZHJtX2RldmljZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9DQVJSSVpPICYmIGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX1NUT05FWSkKIAkJZG0tPmRjLT5kZWJ1Zy5kaXNhYmxlX3N0dXR0ZXIgPSBhbWRncHVfcHBfZmVhdHVyZV9tYXNrICYgUFBfU1RVVFRFUl9NT0RFID8gZmFsc2UgOiB0cnVlOworCWlmIChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9SRU5PSVIpCisJCWRtLT5kYy0+ZGVidWcuZGlzYWJsZV9zdHV0dGVyID0gdHJ1ZTsKIAogCXJldHVybiAwOwogZmFpbDoKQEAgLTI0MjgsOCArMjQ0Miw3IEBAIHN0YXRpYyBzc2l6ZV90IHMzX2RlYnVnX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldmljZSwKIHsKIAlpbnQgcmV0OwogCWludCBzM19zdGF0ZTsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2aWNlKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXZpY2UpOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZHJtX2Rldi0+ZGV2X3ByaXZhdGU7CiAKIAlyZXQgPSBrc3RydG9pbnQoYnVmLCAwLCAmczNfc3RhdGUpOwpAQCAtMjUxNSwxMCArMjUyOCwyMyBAQCBzdGF0aWMgaW50IGRtX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCiAJY2FzZSBDSElQX05BVkkxMDoKKwljYXNlIENISVBfTkFWSTEyOgogCQlhZGV2LT5tb2RlX2luZm8ubnVtX2NydGMgPSA2OwogCQlhZGV2LT5tb2RlX2luZm8ubnVtX2hwZCA9IDY7CiAJCWFkZXYtPm1vZGVfaW5mby5udW1fZGlnID0gNjsKIAkJYnJlYWs7CisJY2FzZSBDSElQX05BVkkxNDoKKwkJYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjID0gNTsKKwkJYWRldi0+bW9kZV9pbmZvLm51bV9ocGQgPSA1OworCQlhZGV2LT5tb2RlX2luZm8ubnVtX2RpZyA9IDU7CisJCWJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisJY2FzZSBDSElQX1JFTk9JUjoKKwkJYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjID0gNDsKKwkJYWRldi0+bW9kZV9pbmZvLm51bV9ocGQgPSA0OworCQlhZGV2LT5tb2RlX2luZm8ubnVtX2RpZyA9IDQ7CisJCWJyZWFrOwogI2VuZGlmCiAJZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBBU0lDIHR5cGU6IDB4JVhcbiIsIGFkZXYtPmFzaWNfdHlwZSk7CkBAIC0yNjY1LDcgKzI2OTEsNyBAQCBmaWxsX3BsYW5lX2RjY19hdHRyaWJ1dGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJICBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVyICphZmIsCiAJCQkgIGNvbnN0IGVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAogCQkJICBjb25zdCBlbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uLAotCQkJICBjb25zdCB1bmlvbiBwbGFuZV9zaXplICpwbGFuZV9zaXplLAorCQkJICBjb25zdCBzdHJ1Y3QgcGxhbmVfc2l6ZSAqcGxhbmVfc2l6ZSwKIAkJCSAgY29uc3QgdW5pb24gZGNfdGlsaW5nX2luZm8gKnRpbGluZ19pbmZvLAogCQkJICBjb25zdCB1aW50NjRfdCBpbmZvLAogCQkJICBzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtICpkY2MsCkBAIC0yNjkxLDggKzI3MTcsOCBAQCBmaWxsX3BsYW5lX2RjY19hdHRyaWJ1dGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWlucHV0LmZvcm1hdCA9IGZvcm1hdDsKLQlpbnB1dC5zdXJmYWNlX3NpemUud2lkdGggPSBwbGFuZV9zaXplLT5ncnBoLnN1cmZhY2Vfc2l6ZS53aWR0aDsKLQlpbnB1dC5zdXJmYWNlX3NpemUuaGVpZ2h0ID0gcGxhbmVfc2l6ZS0+Z3JwaC5zdXJmYWNlX3NpemUuaGVpZ2h0OworCWlucHV0LnN1cmZhY2Vfc2l6ZS53aWR0aCA9IHBsYW5lX3NpemUtPnN1cmZhY2Vfc2l6ZS53aWR0aDsKKwlpbnB1dC5zdXJmYWNlX3NpemUuaGVpZ2h0ID0gcGxhbmVfc2l6ZS0+c3VyZmFjZV9zaXplLmhlaWdodDsKIAlpbnB1dC5zd2l6emxlX21vZGUgPSB0aWxpbmdfaW5mby0+Z2Z4OS5zd2l6emxlOwogCiAJaWYgKHJvdGF0aW9uID09IFJPVEFUSU9OX0FOR0xFXzAgfHwgcm90YXRpb24gPT0gUk9UQVRJT05fQU5HTEVfMTgwKQpAQCAtMjcxMCw5ICsyNzM2LDkgQEAgZmlsbF9wbGFuZV9kY2NfYXR0cmlidXRlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlkY2MtPmVuYWJsZSA9IDE7Ci0JZGNjLT5ncnBoLm1ldGFfcGl0Y2ggPQorCWRjYy0+bWV0YV9waXRjaCA9CiAJCUFNREdQVV9USUxJTkdfR0VUKGluZm8sIERDQ19QSVRDSF9NQVgpICsgMTsKLQlkY2MtPmdycGguaW5kZXBlbmRlbnRfNjRiX2Jsa3MgPSBpNjRiOworCWRjYy0+aW5kZXBlbmRlbnRfNjRiX2Jsa3MgPSBpNjRiOwogCiAJZGNjX2FkZHJlc3MgPSBnZXRfZGNjX2FkZHJlc3MoYWZiLT5hZGRyZXNzLCBpbmZvKTsKIAlhZGRyZXNzLT5ncnBoLm1ldGFfYWRkci5sb3dfcGFydCA9IGxvd2VyXzMyX2JpdHMoZGNjX2FkZHJlc3MpOwpAQCAtMjcyOCw3ICsyNzU0LDcgQEAgZmlsbF9wbGFuZV9idWZmZXJfYXR0cmlidXRlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCSAgICAgY29uc3QgZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlvbiwKIAkJCSAgICAgY29uc3QgdWludDY0X3QgdGlsaW5nX2ZsYWdzLAogCQkJICAgICB1bmlvbiBkY190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCi0JCQkgICAgIHVuaW9uIHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCisJCQkgICAgIHN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAogCQkJICAgICBzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtICpkY2MsCiAJCQkgICAgIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzICphZGRyZXNzKQogewpAQCAtMjc0MSwxMSArMjc2NywxMSBAQCBmaWxsX3BsYW5lX2J1ZmZlcl9hdHRyaWJ1dGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCW1lbXNldChhZGRyZXNzLCAwLCBzaXplb2YoKmFkZHJlc3MpKTsKIAogCWlmIChmb3JtYXQgPCBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19CRUdJTikgewotCQlwbGFuZV9zaXplLT5ncnBoLnN1cmZhY2Vfc2l6ZS54ID0gMDsKLQkJcGxhbmVfc2l6ZS0+Z3JwaC5zdXJmYWNlX3NpemUueSA9IDA7Ci0JCXBsYW5lX3NpemUtPmdycGguc3VyZmFjZV9zaXplLndpZHRoID0gZmItPndpZHRoOwotCQlwbGFuZV9zaXplLT5ncnBoLnN1cmZhY2Vfc2l6ZS5oZWlnaHQgPSBmYi0+aGVpZ2h0OwotCQlwbGFuZV9zaXplLT5ncnBoLnN1cmZhY2VfcGl0Y2ggPQorCQlwbGFuZV9zaXplLT5zdXJmYWNlX3NpemUueCA9IDA7CisJCXBsYW5lX3NpemUtPnN1cmZhY2Vfc2l6ZS55ID0gMDsKKwkJcGxhbmVfc2l6ZS0+c3VyZmFjZV9zaXplLndpZHRoID0gZmItPndpZHRoOworCQlwbGFuZV9zaXplLT5zdXJmYWNlX3NpemUuaGVpZ2h0ID0gZmItPmhlaWdodDsKKwkJcGxhbmVfc2l6ZS0+c3VyZmFjZV9waXRjaCA9CiAJCQlmYi0+cGl0Y2hlc1swXSAvIGZiLT5mb3JtYXQtPmNwcFswXTsKIAogCQlhZGRyZXNzLT50eXBlID0gUExOX0FERFJfVFlQRV9HUkFQSElDUzsKQEAgLTI3NTQsMjAgKzI3ODAsMjAgQEAgZmlsbF9wbGFuZV9idWZmZXJfYXR0cmlidXRlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAl9IGVsc2UgaWYgKGZvcm1hdCA8IFNVUkZBQ0VfUElYRUxfRk9STUFUX0lOVkFMSUQpIHsKIAkJdWludDY0X3QgY2hyb21hX2FkZHIgPSBhZmItPmFkZHJlc3MgKyBmYi0+b2Zmc2V0c1sxXTsKIAotCQlwbGFuZV9zaXplLT52aWRlby5sdW1hX3NpemUueCA9IDA7Ci0JCXBsYW5lX3NpemUtPnZpZGVvLmx1bWFfc2l6ZS55ID0gMDsKLQkJcGxhbmVfc2l6ZS0+dmlkZW8ubHVtYV9zaXplLndpZHRoID0gZmItPndpZHRoOwotCQlwbGFuZV9zaXplLT52aWRlby5sdW1hX3NpemUuaGVpZ2h0ID0gZmItPmhlaWdodDsKLQkJcGxhbmVfc2l6ZS0+dmlkZW8ubHVtYV9waXRjaCA9CisJCXBsYW5lX3NpemUtPnN1cmZhY2Vfc2l6ZS54ID0gMDsKKwkJcGxhbmVfc2l6ZS0+c3VyZmFjZV9zaXplLnkgPSAwOworCQlwbGFuZV9zaXplLT5zdXJmYWNlX3NpemUud2lkdGggPSBmYi0+d2lkdGg7CisJCXBsYW5lX3NpemUtPnN1cmZhY2Vfc2l6ZS5oZWlnaHQgPSBmYi0+aGVpZ2h0OworCQlwbGFuZV9zaXplLT5zdXJmYWNlX3BpdGNoID0KIAkJCWZiLT5waXRjaGVzWzBdIC8gZmItPmZvcm1hdC0+Y3BwWzBdOwogCi0JCXBsYW5lX3NpemUtPnZpZGVvLmNocm9tYV9zaXplLnggPSAwOwotCQlwbGFuZV9zaXplLT52aWRlby5jaHJvbWFfc2l6ZS55ID0gMDsKKwkJcGxhbmVfc2l6ZS0+Y2hyb21hX3NpemUueCA9IDA7CisJCXBsYW5lX3NpemUtPmNocm9tYV9zaXplLnkgPSAwOwogCQkvKiBUT0RPOiBzZXQgdGhlc2UgYmFzZWQgb24gc3VyZmFjZSBmb3JtYXQgKi8KLQkJcGxhbmVfc2l6ZS0+dmlkZW8uY2hyb21hX3NpemUud2lkdGggPSBmYi0+d2lkdGggLyAyOwotCQlwbGFuZV9zaXplLT52aWRlby5jaHJvbWFfc2l6ZS5oZWlnaHQgPSBmYi0+aGVpZ2h0IC8gMjsKKwkJcGxhbmVfc2l6ZS0+Y2hyb21hX3NpemUud2lkdGggPSBmYi0+d2lkdGggLyAyOworCQlwbGFuZV9zaXplLT5jaHJvbWFfc2l6ZS5oZWlnaHQgPSBmYi0+aGVpZ2h0IC8gMjsKIAotCQlwbGFuZV9zaXplLT52aWRlby5jaHJvbWFfcGl0Y2ggPQorCQlwbGFuZV9zaXplLT5jaHJvbWFfcGl0Y2ggPQogCQkJZmItPnBpdGNoZXNbMV0gLyBmYi0+Zm9ybWF0LT5jcHBbMV07CiAKIAkJYWRkcmVzcy0+dHlwZSA9IFBMTl9BRERSX1RZUEVfVklERU9fUFJPR1JFU1NJVkU7CkBAIC0yODE0LDYgKzI4NDAsMTEgQEAgZmlsbF9wbGFuZV9idWZmZXJfYXR0cmlidXRlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkgICAgYWRldi0+YXNpY190eXBlID09IENISVBfVkVHQTIwIHx8CiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCiAJICAgIGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX05BVkkxMCB8fAorCSAgICBhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9OQVZJMTQgfHwKKwkgICAgYWRldi0+YXNpY190eXBlID09IENISVBfTkFWSTEyIHx8CisjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKwkgICAgYWRldi0+YXNpY190eXBlID09IENISVBfUkVOT0lSIHx8CiAjZW5kaWYKIAkgICAgYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4pIHsKIAkJLyogRmlsbCBHRlg5IHBhcmFtcyAqLwpAQCAtMjk5NSw2ICszMDI2LDggQEAgZmlsbF9kY19wbGFuZV9pbmZvX2FuZF9hZGRyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXBsYW5lX2luZm8tPnZpc2libGUgPSB0cnVlOwogCXBsYW5lX2luZm8tPnN0ZXJlb19mb3JtYXQgPSBQTEFORV9TVEVSRU9fRk9STUFUX05PTkU7CiAKKwlwbGFuZV9pbmZvLT5sYXllcl9pbmRleCA9IDA7CisKIAlyZXQgPSBmaWxsX3BsYW5lX2NvbG9yX2F0dHJpYnV0ZXMocGxhbmVfc3RhdGUsIHBsYW5lX2luZm8tPmZvcm1hdCwKIAkJCQkJICAmcGxhbmVfaW5mby0+Y29sb3Jfc3BhY2UpOwogCWlmIChyZXQpCkBAIC0zMDYwLDYgKzMwOTMsNyBAQCBzdGF0aWMgaW50IGZpbGxfZGNfcGxhbmVfYXR0cmlidXRlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlkY19wbGFuZV9zdGF0ZS0+Z2xvYmFsX2FscGhhID0gcGxhbmVfaW5mby5nbG9iYWxfYWxwaGE7CiAJZGNfcGxhbmVfc3RhdGUtPmdsb2JhbF9hbHBoYV92YWx1ZSA9IHBsYW5lX2luZm8uZ2xvYmFsX2FscGhhX3ZhbHVlOwogCWRjX3BsYW5lX3N0YXRlLT5kY2MgPSBwbGFuZV9pbmZvLmRjYzsKKwlkY19wbGFuZV9zdGF0ZS0+bGF5ZXJfaW5kZXggPSBwbGFuZV9pbmZvLmxheWVyX2luZGV4OyAvLyBBbHdheXMgcmV0dXJucyAwCiAKIAkvKgogCSAqIEFsd2F5cyBzZXQgaW5wdXQgdHJhbnNmZXIgZnVuY3Rpb24sIHNpbmNlIHBsYW5lIHN0YXRlIGlzIHJlZnJlc2hlZApAQCAtMzUwMyw2ICszNTM3LDEwIEBAIGNyZWF0ZV9zdHJlYW1fZm9yX3Npbmsoc3RydWN0IGFtZGdwdV9kbV9jb25uZWN0b3IgKmFjb25uZWN0b3IsCiAJYm9vbCBzY2FsZSA9IGRtX3N0YXRlID8gKGRtX3N0YXRlLT5zY2FsaW5nICE9IFJNWF9PRkYpIDogZmFsc2U7CiAJaW50IG1vZGVfcmVmcmVzaDsKIAlpbnQgcHJlZmVycmVkX3JlZnJlc2ggPSAwOworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJc3RydWN0IGRzY19kZWNfZHBjZF9jYXBzIGRzY19jYXBzOworCXVpbnQzMl90IGxpbmtfYmFuZHdpZHRoX2ticHM7CisjZW5kaWYKIAogCXN0cnVjdCBkY19zaW5rICpzaW5rID0gTlVMTDsKIAlpZiAoYWNvbm5lY3RvciA9PSBOVUxMKSB7CkBAIC0zNTc1LDE3ICszNjEzLDIzIEBAIGNyZWF0ZV9zdHJlYW1fZm9yX3Npbmsoc3RydWN0IGFtZGdwdV9kbV9jb25uZWN0b3IgKmFjb25uZWN0b3IsCiAJCQkmbW9kZSwgJmFjb25uZWN0b3ItPmJhc2UsIGNvbl9zdGF0ZSwgb2xkX3N0cmVhbSk7CiAKICNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAotCS8qIHN0cmVhbS0+dGltaW5nLmZsYWdzLkRTQyA9IDA7ICovCi0gICAgICAgIC8qICAqLwotCS8qIGlmIChhY29ubmVjdG9yLT5kY19saW5rICYmICovCi0JLyogCQlhY29ubmVjdG9yLT5kY19saW5rLT5jb25uZWN0b3Jfc2lnbmFsID09IFNJR05BTF9UWVBFX0RJU1BMQVlfUE9SVCAjPHsofCYmICovCi0JLyogCQlhY29ubmVjdG9yLT5kY19saW5rLT5kcGNkX2NhcHMuZHNjX2NhcHMuZHNjX2Jhc2ljX2NhcHMuaXNfZHNjX3N1cHBvcnRlZHwpfT4jKSAqLwotCS8qIAlpZiAoZGNfZHNjX2NvbXB1dGVfY29uZmlnKGFjb25uZWN0b3ItPmRjX2xpbmstPmN0eC0+ZGMsICovCi0JLyogCQkJJmFjb25uZWN0b3ItPmRjX2xpbmstPmRwY2RfY2Fwcy5kc2NfY2FwcywgKi8KLQkvKiAJCQlkY19saW5rX2JhbmR3aWR0aF9rYnBzKGFjb25uZWN0b3ItPmRjX2xpbmssIGRjX2xpbmtfZ2V0X2xpbmtfY2FwKGFjb25uZWN0b3ItPmRjX2xpbmspKSwgKi8KLQkvKiAJCQkmc3RyZWFtLT50aW1pbmcsICovCi0JLyogCQkJJnN0cmVhbS0+dGltaW5nLmRzY19jZmcpKSAqLwotCS8qIAkJc3RyZWFtLT50aW1pbmcuZmxhZ3MuRFNDID0gMTsgKi8KKwlzdHJlYW0tPnRpbWluZy5mbGFncy5EU0MgPSAwOworCisJaWYgKGFjb25uZWN0b3ItPmRjX2xpbmsgJiYgc2luay0+c2lua19zaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUKSB7CisJCWRjX2RzY19wYXJzZV9kc2NfZHBjZChhY29ubmVjdG9yLT5kY19saW5rLT5kcGNkX2NhcHMuZHNjX2NhcHMuZHNjX2Jhc2ljX2NhcHMucmF3LAorCQkJCSAgICAgIGFjb25uZWN0b3ItPmRjX2xpbmstPmRwY2RfY2Fwcy5kc2NfY2Fwcy5kc2NfZXh0X2NhcHMucmF3LAorCQkJCSAgICAgICZkc2NfY2Fwcyk7CisJCWxpbmtfYmFuZHdpZHRoX2ticHMgPSBkY19saW5rX2JhbmR3aWR0aF9rYnBzKGFjb25uZWN0b3ItPmRjX2xpbmssCisJCQkJCQkJICAgICBkY19saW5rX2dldF9saW5rX2NhcChhY29ubmVjdG9yLT5kY19saW5rKSk7CisKKwkJaWYgKGRzY19jYXBzLmlzX2RzY19zdXBwb3J0ZWQpCisJCQlpZiAoZGNfZHNjX2NvbXB1dGVfY29uZmlnKGFjb25uZWN0b3ItPmRjX2xpbmstPmN0eC0+ZGMsCisJCQkJCQkgICZkc2NfY2FwcywKKwkJCQkJCSAgbGlua19iYW5kd2lkdGhfa2JwcywKKwkJCQkJCSAgJnN0cmVhbS0+dGltaW5nLAorCQkJCQkJICAmc3RyZWFtLT50aW1pbmcuZHNjX2NmZykpCisJCQkJc3RyZWFtLT50aW1pbmcuZmxhZ3MuRFNDID0gMTsKKwl9CiAjZW5kaWYKIAogCXVwZGF0ZV9zdHJlYW1fc2NhbGluZ19zZXR0aW5ncygmbW9kZSwgZG1fc3RhdGUsIHN0cmVhbSk7CkBAIC0zNjY5LDcgKzM3MTMsNyBAQCBkbV9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RhdGUtPmFibV9sZXZlbCA9IGN1ci0+YWJtX2xldmVsOwogCXN0YXRlLT52cnJfc3VwcG9ydGVkID0gY3VyLT52cnJfc3VwcG9ydGVkOwogCXN0YXRlLT5mcmVlc3luY19jb25maWcgPSBjdXItPmZyZWVzeW5jX2NvbmZpZzsKLQlzdGF0ZS0+Y3JjX2VuYWJsZWQgPSBjdXItPmNyY19lbmFibGVkOworCXN0YXRlLT5jcmNfc3JjID0gY3VyLT5jcmNfc3JjOwogCXN0YXRlLT5jbV9oYXNfZGVnYW1tYSA9IGN1ci0+Y21faGFzX2RlZ2FtbWE7CiAJc3RhdGUtPmNtX2lzX2RlZ2FtbWFfc3JnYiA9IGN1ci0+Y21faXNfZGVnYW1tYV9zcmdiOwogCkBAIC0zNzM5LDYgKzM3ODMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGFtZGdwdV9kbV9jcnRjX2Z1bmNzID0gewogCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRtX2NydGNfZGVzdHJveV9zdGF0ZSwKIAkuc2V0X2NyY19zb3VyY2UgPSBhbWRncHVfZG1fY3J0Y19zZXRfY3JjX3NvdXJjZSwKIAkudmVyaWZ5X2NyY19zb3VyY2UgPSBhbWRncHVfZG1fY3J0Y192ZXJpZnlfY3JjX3NvdXJjZSwKKwkuZ2V0X2NyY19zb3VyY2VzID0gYW1kZ3B1X2RtX2NydGNfZ2V0X2NyY19zb3VyY2VzLAogCS5lbmFibGVfdmJsYW5rID0gZG1fZW5hYmxlX3ZibGFuaywKIAkuZGlzYWJsZV92YmxhbmsgPSBkbV9kaXNhYmxlX3ZibGFuaywKIH07CkBAIC00NDU4LDcgKzQ1MDMsNyBAQCBzdGF0aWMgaW50IGRtX3BsYW5lX2hlbHBlcl9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCX0KIAogCWlmIChwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCi0JCWRvbWFpbiA9IGFtZGdwdV9kaXNwbGF5X3N1cHBvcnRlZF9kb21haW5zKGFkZXYpOworCQlkb21haW4gPSBhbWRncHVfZGlzcGxheV9zdXBwb3J0ZWRfZG9tYWlucyhhZGV2LCByYm8tPmZsYWdzKTsKIAllbHNlCiAJCWRvbWFpbiA9IEFNREdQVV9HRU1fRE9NQUlOX1ZSQU07CiAKQEAgLTQ1NDgsMjAgKzQ1OTMsMTAgQEAgc3RhdGljIGludCBkbV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiBzdGF0aWMgaW50IGRtX3BsYW5lX2F0b21pY19hc3luY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlKQogewotCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSA9Ci0JCWRybV9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShuZXdfcGxhbmVfc3RhdGUtPnN0YXRlLCBwbGFuZSk7Ci0KIAkvKiBPbmx5IHN1cHBvcnQgYXN5bmMgdXBkYXRlcyBvbiBjdXJzb3IgcGxhbmVzLiAqLwogCWlmIChwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JLyoKLQkgKiBEUk0gY2FsbHMgcHJlcGFyZV9mYiBhbmQgY2xlYW51cF9mYiBvbiBuZXdfcGxhbmVfc3RhdGUgZm9yCi0JICogYXN5bmMgY29tbWl0cyBzbyBkb24ndCBhbGxvdyBmYiBjaGFuZ2VzLgotCSAqLwotCWlmIChvbGRfcGxhbmVfc3RhdGUtPmZiICE9IG5ld19wbGFuZV9zdGF0ZS0+ZmIpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTU3MDUsMTEgKzU3NDAsMTEgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RtX2NvbW1pdF9wbGFuZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkgKiBkZWFkbG9jayBkdXJpbmcgR1BVIHJlc2V0IHdoZW4gdGhpcyBmZW5jZSB3aWxsIG5vdCBzaWduYWwKIAkJICogYnV0IHdlIGhvbGQgcmVzZXJ2YXRpb24gbG9jayBmb3IgdGhlIEJPLgogCQkgKi8KLQkJciA9IHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KGFiby0+dGJvLnJlc3YsIHRydWUsCisJCXIgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KGFiby0+dGJvLmJhc2UucmVzdiwgdHJ1ZSwKIAkJCQkJCQlmYWxzZSwKIAkJCQkJCQltc2Vjc190b19qaWZmaWVzKDUwMDApKTsKIAkJaWYgKHVubGlrZWx5KHIgPD0gMCkpCi0JCQlEUk1fRVJST1IoIldhaXRpbmcgZm9yIGZlbmNlcyB0aW1lZCBvdXQgb3IgaW50ZXJydXB0ZWQhIik7CisJCQlEUk1fRVJST1IoIldhaXRpbmcgZm9yIGZlbmNlcyB0aW1lZCBvdXQhIik7CiAKIAkJLyoKIAkJICogVE9ETyBUaGlzIG1pZ2h0IGZhaWwgYW5kIGhlbmNlIGJldHRlciBub3QgdXNlZCwgd2FpdApAQCAtNTczMyw4ICs1NzY4LDEzIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kbV9jb21taXRfcGxhbmVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJYnVuZGxlLT5zdXJmYWNlX3VwZGF0ZXNbcGxhbmVzX2NvdW50XS5wbGFuZV9pbmZvID0KIAkJCSZidW5kbGUtPnBsYW5lX2luZm9zW3BsYW5lc19jb3VudF07CiAKKwkJLyoKKwkJICogT25seSBhbGxvdyBpbW1lZGlhdGUgZmxpcHMgZm9yIGZhc3QgdXBkYXRlcyB0aGF0IGRvbid0CisJCSAqIGNoYW5nZSBGQiBwaXRjaCwgRENDIHN0YXRlLCByb3RhdGlvbiBvciBtaXJyb2luZy4KKwkJICovCiAJCWJ1bmRsZS0+ZmxpcF9hZGRyc1twbGFuZXNfY291bnRdLmZsaXBfaW1tZWRpYXRlID0KLQkJCQkoY3J0Yy0+c3RhdGUtPnBhZ2VmbGlwX2ZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0FTWU5DKSAhPSAwOworCQkJY3J0Yy0+c3RhdGUtPmFzeW5jX2ZsaXAgJiYKKwkJCWFjcnRjX3N0YXRlLT51cGRhdGVfdHlwZSA9PSBVUERBVEVfVFlQRV9GQVNUOwogCiAJCXRpbWVzdGFtcF9ucyA9IGt0aW1lX2dldF9ucygpOwogCQlidW5kbGUtPmZsaXBfYWRkcnNbcGxhbmVzX2NvdW50XS5mbGlwX3RpbWVzdGFtcF9pbl91cyA9IGRpdl91NjQodGltZXN0YW1wX25zLCAxMDAwKTsKQEAgLTU5NzksNiArNjAxOSw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kbV9lbmFibGVfY3J0Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0ZTsKIAlpbnQgaTsKKwllbnVtIGFtZGdwdV9kbV9waXBlX2NyY19zb3VyY2Ugc291cmNlOwogCiAJZm9yX2VhY2hfb2xkbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAogCQkJCSAgICAgIG5ld19jcnRjX3N0YXRlLCBpKSB7CkBAIC02MDA0LDkgKzYwNDUsMTEgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RtX2VuYWJsZV9jcnRjX2ludGVycnVwdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogI2lmZGVmIENPTkZJR19ERUJVR19GUwogCQkvKiBUaGUgc3RyZWFtIGhhcyBjaGFuZ2VkIHNvIENSQyBjYXB0dXJlIG5lZWRzIHRvIHJlLWVuYWJsZWQuICovCi0JCWlmIChkbV9uZXdfY3J0Y19zdGF0ZS0+Y3JjX2VuYWJsZWQpIHsKLQkJCWRtX25ld19jcnRjX3N0YXRlLT5jcmNfZW5hYmxlZCA9IGZhbHNlOwotCQkJYW1kZ3B1X2RtX2NydGNfc2V0X2NyY19zb3VyY2UoY3J0YywgImF1dG8iKTsKKwkJc291cmNlID0gZG1fbmV3X2NydGNfc3RhdGUtPmNyY19zcmM7CisJCWlmIChhbWRncHVfZG1faXNfdmFsaWRfY3JjX3NvdXJjZShzb3VyY2UpKSB7CisJCQlhbWRncHVfZG1fY3J0Y19jb25maWd1cmVfY3JjX3NvdXJjZSgKKwkJCQljcnRjLCBkbV9uZXdfY3J0Y19zdGF0ZSwKKwkJCQlkbV9uZXdfY3J0Y19zdGF0ZS0+Y3JjX3NyYyk7CiAJCX0KICNlbmRpZgogCX0KQEAgLTYwNTcsMjMgKzYxMDAsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9kbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAkJaWYgKGRtX29sZF9jcnRjX3N0YXRlLT5pbnRlcnJ1cHRzX2VuYWJsZWQgJiYKIAkJICAgICghZG1fbmV3X2NydGNfc3RhdGUtPmludGVycnVwdHNfZW5hYmxlZCB8fAotCQkgICAgIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkpIHsKLQkJCS8qCi0JCQkgKiBEcm9wIHRoZSBleHRyYSB2YmxhbmsgcmVmZXJlbmNlIGFkZGVkIGJ5IENSQwotCQkJICogY2FwdHVyZSBpZiBhcHBsaWNhYmxlLgotCQkJICovCi0JCQlpZiAoZG1fbmV3X2NydGNfc3RhdGUtPmNyY19lbmFibGVkKQotCQkJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7Ci0KLQkJCS8qCi0JCQkgKiBPbmx5IGtlZXAgQ1JDIGNhcHR1cmUgZW5hYmxlZCBpZiB0aGVyZSdzCi0JCQkgKiBzdGlsbCBhIHN0cmVhbSBmb3IgdGhlIENSVEMuCi0JCQkgKi8KLQkJCWlmICghZG1fbmV3X2NydGNfc3RhdGUtPnN0cmVhbSkKLQkJCQlkbV9uZXdfY3J0Y19zdGF0ZS0+Y3JjX2VuYWJsZWQgPSBmYWxzZTsKLQorCQkgICAgIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkpCiAJCQltYW5hZ2VfZG1faW50ZXJydXB0cyhhZGV2LCBhY3J0YywgZmFsc2UpOwotCQl9CiAJfQogCS8qCiAJICogQWRkIGNoZWNrIGhlcmUgZm9yIFNvQydzIHRoYXQgc3VwcG9ydCBoYXJkd2FyZSBjdXJzb3IgcGxhbmUsIHRvCkBAIC02MzIyLDcgKzYzNTAsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZG1fYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlhbWRncHVfZG1fZW5hYmxlX2NydGNfaW50ZXJydXB0cyhkZXYsIHN0YXRlLCB0cnVlKTsKIAogCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaikKLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5wYWdlZmxpcF9mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9BU1lOQykKKwkJaWYgKG5ld19jcnRjX3N0YXRlLT5hc3luY19mbGlwKQogCQkJd2FpdF9mb3JfdmJsYW5rID0gZmFsc2U7CiAKIAkvKiB1cGRhdGUgcGxhbmVzIHdoZW4gbmVlZGVkIHBlciBjcnRjKi8KQEAgLTcwNDUsNiArNzA3MywxMiBAQCBkbV9kZXRlcm1pbmVfdXBkYXRlX3R5cGVfZm9yX2NvbW1pdChzdHJ1Y3QgYW1kZ3B1X2Rpc3BsYXlfbWFuYWdlciAqZG0sCiAJCQljb250aW51ZTsKIAogCQlmb3JfZWFjaF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSwgaikgeworCQkJY29uc3Qgc3RydWN0IGFtZGdwdV9mcmFtZWJ1ZmZlciAqYW1kZ3B1X2ZiID0KKwkJCQl0b19hbWRncHVfZnJhbWVidWZmZXIobmV3X3BsYW5lX3N0YXRlLT5mYik7CisJCQlzdHJ1Y3QgZGNfcGxhbmVfaW5mbyBwbGFuZV9pbmZvOworCQkJc3RydWN0IGRjX2ZsaXBfYWRkcnMgZmxpcF9hZGRyOworCQkJdWludDY0X3QgdGlsaW5nX2ZsYWdzOworCiAJCQluZXdfcGxhbmVfY3J0YyA9IG5ld19wbGFuZV9zdGF0ZS0+Y3J0YzsKIAkJCW9sZF9wbGFuZV9jcnRjID0gb2xkX3BsYW5lX3N0YXRlLT5jcnRjOwogCQkJbmV3X2RtX3BsYW5lX3N0YXRlID0gdG9fZG1fcGxhbmVfc3RhdGUobmV3X3BsYW5lX3N0YXRlKTsKQEAgLTcwODgsNiArNzEyMiwyNCBAQCBkbV9kZXRlcm1pbmVfdXBkYXRlX3R5cGVfZm9yX2NvbW1pdChzdHJ1Y3QgYW1kZ3B1X2Rpc3BsYXlfbWFuYWdlciAqZG0sCiAKIAkJCXVwZGF0ZXNbbnVtX3BsYW5lXS5zY2FsaW5nX2luZm8gPSAmc2NhbGluZ19pbmZvOwogCisJCQlpZiAoYW1kZ3B1X2ZiKSB7CisJCQkJcmV0ID0gZ2V0X2ZiX2luZm8oYW1kZ3B1X2ZiLCAmdGlsaW5nX2ZsYWdzKTsKKwkJCQlpZiAocmV0KQorCQkJCQlnb3RvIGNsZWFudXA7CisKKwkJCQltZW1zZXQoJmZsaXBfYWRkciwgMCwgc2l6ZW9mKGZsaXBfYWRkcikpOworCisJCQkJcmV0ID0gZmlsbF9kY19wbGFuZV9pbmZvX2FuZF9hZGRyKAorCQkJCQlkbS0+YWRldiwgbmV3X3BsYW5lX3N0YXRlLCB0aWxpbmdfZmxhZ3MsCisJCQkJCSZwbGFuZV9pbmZvLAorCQkJCQkmZmxpcF9hZGRyLmFkZHJlc3MpOworCQkJCWlmIChyZXQpCisJCQkJCWdvdG8gY2xlYW51cDsKKworCQkJCXVwZGF0ZXNbbnVtX3BsYW5lXS5wbGFuZV9pbmZvID0gJnBsYW5lX2luZm87CisJCQkJdXBkYXRlc1tudW1fcGxhbmVdLmZsaXBfYWRkciA9ICZmbGlwX2FkZHI7CisJCQl9CisKIAkJCW51bV9wbGFuZSsrOwogCQl9CiAKQEAgLTcyODQsNiArNzMzNiwyNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9kbV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAocmV0KQogCQlnb3RvIGZhaWw7CiAKKwlpZiAoc3RhdGUtPmxlZ2FjeV9jdXJzb3JfdXBkYXRlKSB7CisJCS8qCisJCSAqIFRoaXMgaXMgYSBmYXN0IGN1cnNvciB1cGRhdGUgY29taW5nIGZyb20gdGhlIHBsYW5lIHVwZGF0ZQorCQkgKiBoZWxwZXIsIGNoZWNrIGlmIGl0IGNhbiBiZSBkb25lIGFzeW5jaHJvbm91c2x5IGZvciBiZXR0ZXIKKwkJICogcGVyZm9ybWFuY2UuCisJCSAqLworCQlzdGF0ZS0+YXN5bmNfdXBkYXRlID0KKwkJCSFkcm1fYXRvbWljX2hlbHBlcl9hc3luY19jaGVjayhkZXYsIHN0YXRlKTsKKworCQkvKgorCQkgKiBTa2lwIHRoZSByZW1haW5pbmcgZ2xvYmFsIHZhbGlkYXRpb24gaWYgdGhpcyBpcyBhbiBhc3luYworCQkgKiB1cGRhdGUuIEN1cnNvciB1cGRhdGVzIGNhbiBiZSBkb25lIHdpdGhvdXQgYWZmZWN0aW5nCisJCSAqIHN0YXRlIG9yIGJhbmR3aWR0aCBjYWxjcyBhbmQgdGhpcyBhdm9pZHMgdGhlIHBlcmZvcm1hbmNlCisJCSAqIHBlbmFsdHkgb2YgbG9ja2luZyB0aGUgcHJpdmF0ZSBzdGF0ZSBvYmplY3QgYW5kCisJCSAqIGFsbG9jYXRpbmcgYSBuZXcgZGNfc3RhdGUuCisJCSAqLworCQlpZiAoc3RhdGUtPmFzeW5jX3VwZGF0ZSkKKwkJCXJldHVybiAwOworCX0KKwogCS8qIENoZWNrIHNjYWxpbmcgYW5kIHVuZGVyc2NhbiBjaGFuZ2VzKi8KIAkvKiBUT0RPIFJlbW92ZWQgc2NhbGluZyBjaGFuZ2VzIHZhbGlkYXRpb24gZHVlIHRvIGluYWJpbGl0eSB0byBjb21taXQKIAkgKiBuZXcgc3RyZWFtIGludG8gY29udGV4dCB3XG8gY2F1c2luZyBmdWxsIHJlc2V0LiBOZWVkIHRvCkBAIC03MzM2LDEzICs3NDA4LDM3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RtX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJcmV0ID0gLUVJTlZBTDsKIAkJCWdvdG8gZmFpbDsKIAkJfQotCX0gZWxzZSBpZiAoc3RhdGUtPmxlZ2FjeV9jdXJzb3JfdXBkYXRlKSB7CisJfSBlbHNlIHsKIAkJLyoKLQkJICogVGhpcyBpcyBhIGZhc3QgY3Vyc29yIHVwZGF0ZSBjb21pbmcgZnJvbSB0aGUgcGxhbmUgdXBkYXRlCi0JCSAqIGhlbHBlciwgY2hlY2sgaWYgaXQgY2FuIGJlIGRvbmUgYXN5bmNocm9ub3VzbHkgZm9yIGJldHRlcgotCQkgKiBwZXJmb3JtYW5jZS4KKwkJICogVGhlIGNvbW1pdCBpcyBhIGZhc3QgdXBkYXRlLiBGYXN0IHVwZGF0ZXMgc2hvdWxkbid0IGNoYW5nZQorCQkgKiB0aGUgREMgY29udGV4dCwgYWZmZWN0IGdsb2JhbCB2YWxpZGF0aW9uLCBhbmQgY2FuIGhhdmUgdGhlaXIKKwkJICogY29tbWl0IHdvcmsgZG9uZSBpbiBwYXJhbGxlbCB3aXRoIG90aGVyIGNvbW1pdHMgbm90IHRvdWNoaW5nCisJCSAqIHRoZSBzYW1lIHJlc291cmNlLiBJZiB3ZSBoYXZlIGEgbmV3IERDIGNvbnRleHQgYXMgcGFydCBvZgorCQkgKiB0aGUgRE0gYXRvbWljIHN0YXRlIGZyb20gdmFsaWRhdGlvbiB3ZSBuZWVkIHRvIGZyZWUgaXQgYW5kCisJCSAqIHJldGFpbiB0aGUgZXhpc3Rpbmcgb25lIGluc3RlYWQuCiAJCSAqLwotCQlzdGF0ZS0+YXN5bmNfdXBkYXRlID0gIWRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NoZWNrKGRldiwgc3RhdGUpOworCQlzdHJ1Y3QgZG1fYXRvbWljX3N0YXRlICpuZXdfZG1fc3RhdGUsICpvbGRfZG1fc3RhdGU7CisKKwkJbmV3X2RtX3N0YXRlID0gZG1fYXRvbWljX2dldF9uZXdfc3RhdGUoc3RhdGUpOworCQlvbGRfZG1fc3RhdGUgPSBkbV9hdG9taWNfZ2V0X29sZF9zdGF0ZShzdGF0ZSk7CisKKwkJaWYgKG5ld19kbV9zdGF0ZSAmJiBvbGRfZG1fc3RhdGUpIHsKKwkJCWlmIChuZXdfZG1fc3RhdGUtPmNvbnRleHQpCisJCQkJZGNfcmVsZWFzZV9zdGF0ZShuZXdfZG1fc3RhdGUtPmNvbnRleHQpOworCisJCQluZXdfZG1fc3RhdGUtPmNvbnRleHQgPSBvbGRfZG1fc3RhdGUtPmNvbnRleHQ7CisKKwkJCWlmIChvbGRfZG1fc3RhdGUtPmNvbnRleHQpCisJCQkJZGNfcmV0YWluX3N0YXRlKG9sZF9kbV9zdGF0ZS0+Y29udGV4dCk7CisJCX0KKwl9CisKKwkvKiBTdG9yZSB0aGUgb3ZlcmFsbCB1cGRhdGUgdHlwZSBmb3IgdXNlIGxhdGVyIGluIGF0b21pYyBjaGVjay4gKi8KKwlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZSAoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCXN0cnVjdCBkbV9jcnRjX3N0YXRlICpkbV9uZXdfY3J0Y19zdGF0ZSA9CisJCQl0b19kbV9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKTsKKworCQlkbV9uZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3R5cGUgPSAoaW50KW92ZXJhbGxfdXBkYXRlX3R5cGU7CiAJfQogCiAJLyogTXVzdCBiZSBzdWNjZXNzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uaAppbmRleCBiODljYmJmLi5jOGM1MjVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmgKQEAgLTUwLDYgKzUwLDcgQEAKIAogI2luY2x1ZGUgImlycV90eXBlcy5oIgogI2luY2x1ZGUgInNpZ25hbF90eXBlcy5oIgorI2luY2x1ZGUgImFtZGdwdV9kbV9jcmMuaCIKIAogLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KIHN0cnVjdCBhbWRncHVfZGV2aWNlOwpAQCAtMzA5LDExICszMTAsMTIgQEAgc3RydWN0IGRtX2NydGNfc3RhdGUgewogCWJvb2wgY21faGFzX2RlZ2FtbWE7CiAJYm9vbCBjbV9pc19kZWdhbW1hX3NyZ2I7CiAKKwlpbnQgdXBkYXRlX3R5cGU7CiAJaW50IGFjdGl2ZV9wbGFuZXM7CiAJYm9vbCBpbnRlcnJ1cHRzX2VuYWJsZWQ7CiAKIAlpbnQgY3JjX3NraXBfY291bnQ7Ci0JYm9vbCBjcmNfZW5hYmxlZDsKKwllbnVtIGFtZGdwdV9kbV9waXBlX2NyY19zb3VyY2UgY3JjX3NyYzsKIAogCWJvb2wgZnJlZXN5bmNfdGltaW5nX2NoYW5nZWQ7CiAJYm9vbCBmcmVlc3luY192cnJfaW5mb19jaGFuZ2VkOwpAQCAtMzgwLDE5ICszODIsNiBAQCB2b2lkIGRtX3Jlc3RvcmVfZHJtX2Nvbm5lY3Rvcl9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogdm9pZCBhbWRncHVfZG1fdXBkYXRlX2ZyZWVzeW5jX2NhcHMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCQkJc3RydWN0IGVkaWQgKmVkaWQpOwogCi0vKiBhbWRncHVfZG1fY3JjLmMgKi8KLSNpZmRlZiBDT05GSUdfREVCVUdfRlMKLWludCBhbWRncHVfZG1fY3J0Y19zZXRfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGNvbnN0IGNoYXIgKnNyY19uYW1lKTsKLWludCBhbWRncHVfZG1fY3J0Y192ZXJpZnlfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkJICAgICBjb25zdCBjaGFyICpzcmNfbmFtZSwKLQkJCQkgICAgIHNpemVfdCAqdmFsdWVzX2NudCk7Ci12b2lkIGFtZGdwdV9kbV9jcnRjX2hhbmRsZV9jcmNfaXJxKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Ci0jZWxzZQotI2RlZmluZSBhbWRncHVfZG1fY3J0Y19zZXRfY3JjX3NvdXJjZSBOVUxMCi0jZGVmaW5lIGFtZGdwdV9kbV9jcnRjX3ZlcmlmeV9jcmNfc291cmNlIE5VTEwKLSNkZWZpbmUgYW1kZ3B1X2RtX2NydGNfaGFuZGxlX2NyY19pcnEoeCkKLSNlbmRpZgotCiAjZGVmaW5lIE1BWF9DT0xPUl9MVVRfRU5UUklFUyA0MDk2CiAvKiBMZWdhY3kgZ2FtbSBMVVQgdXNlcnMgc3VjaCBhcyBYIGRvZXNuJ3QgbGlrZSBsYXJnZSBMVVQgc2l6ZXMgKi8KICNkZWZpbmUgTUFYX0NPTE9SX0xFR0FDWV9MVVRfRU5UUklFUyAyNTYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fY3JjLmMKaW5kZXggYmM2N2U2NS4uYTU0OWM3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fY3JjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fY3JjLmMKQEAgLTMwLDIzICszMCw1NyBAQAogI2luY2x1ZGUgImFtZGdwdV9kbS5oIgogI2luY2x1ZGUgImRjLmgiCiAKLWVudW0gYW1kZ3B1X2RtX3BpcGVfY3JjX3NvdXJjZSB7Ci0JQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9OT05FID0gMCwKLQlBTURHUFVfRE1fUElQRV9DUkNfU09VUkNFX0FVVE8sCi0JQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9NQVgsCi0JQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9JTlZBTElEID0gLTEsCitzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgcGlwZV9jcmNfc291cmNlc1tdID0geworCSJub25lIiwKKwkiY3J0YyIsCisJImNydGMgZGl0aGVyIiwKKwkiZHByeCIsCisJImRwcnggZGl0aGVyIiwKKwkiYXV0byIsCiB9OwogCiBzdGF0aWMgZW51bSBhbWRncHVfZG1fcGlwZV9jcmNfc291cmNlIGRtX3BhcnNlX2NyY19zb3VyY2UoY29uc3QgY2hhciAqc291cmNlKQogewogCWlmICghc291cmNlIHx8ICFzdHJjbXAoc291cmNlLCAibm9uZSIpKQogCQlyZXR1cm4gQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9OT05FOwotCWlmICghc3RyY21wKHNvdXJjZSwgImF1dG8iKSkKLQkJcmV0dXJuIEFNREdQVV9ETV9QSVBFX0NSQ19TT1VSQ0VfQVVUTzsKKwlpZiAoIXN0cmNtcChzb3VyY2UsICJhdXRvIikgfHwgIXN0cmNtcChzb3VyY2UsICJjcnRjIikpCisJCXJldHVybiBBTURHUFVfRE1fUElQRV9DUkNfU09VUkNFX0NSVEM7CisJaWYgKCFzdHJjbXAoc291cmNlLCAiZHByeCIpKQorCQlyZXR1cm4gQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9EUFJYOworCWlmICghc3RyY21wKHNvdXJjZSwgImNydGMgZGl0aGVyIikpCisJCXJldHVybiBBTURHUFVfRE1fUElQRV9DUkNfU09VUkNFX0NSVENfRElUSEVSOworCWlmICghc3RyY21wKHNvdXJjZSwgImRwcnggZGl0aGVyIikpCisJCXJldHVybiBBTURHUFVfRE1fUElQRV9DUkNfU09VUkNFX0RQUlhfRElUSEVSOwogCiAJcmV0dXJuIEFNREdQVV9ETV9QSVBFX0NSQ19TT1VSQ0VfSU5WQUxJRDsKIH0KIAorc3RhdGljIGJvb2wgZG1faXNfY3JjX3NvdXJjZV9jcnRjKGVudW0gYW1kZ3B1X2RtX3BpcGVfY3JjX3NvdXJjZSBzcmMpCit7CisJcmV0dXJuIChzcmMgPT0gQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9DUlRDKSB8fAorCSAgICAgICAoc3JjID09IEFNREdQVV9ETV9QSVBFX0NSQ19TT1VSQ0VfQ1JUQ19ESVRIRVIpOworfQorCitzdGF0aWMgYm9vbCBkbV9pc19jcmNfc291cmNlX2RwcngoZW51bSBhbWRncHVfZG1fcGlwZV9jcmNfc291cmNlIHNyYykKK3sKKwlyZXR1cm4gKHNyYyA9PSBBTURHUFVfRE1fUElQRV9DUkNfU09VUkNFX0RQUlgpIHx8CisJICAgICAgIChzcmMgPT0gQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9EUFJYX0RJVEhFUik7Cit9CisKK3N0YXRpYyBib29sIGRtX25lZWRfY3JjX2RpdGhlcihlbnVtIGFtZGdwdV9kbV9waXBlX2NyY19zb3VyY2Ugc3JjKQoreworCXJldHVybiAoc3JjID09IEFNREdQVV9ETV9QSVBFX0NSQ19TT1VSQ0VfQ1JUQ19ESVRIRVIpIHx8CisJICAgICAgIChzcmMgPT0gQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9EUFJYX0RJVEhFUikgfHwKKwkgICAgICAgKHNyYyA9PSBBTURHUFVfRE1fUElQRV9DUkNfU09VUkNFX05PTkUpOworfQorCitjb25zdCBjaGFyICpjb25zdCAqYW1kZ3B1X2RtX2NydGNfZ2V0X2NyY19zb3VyY2VzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkJCSAgc2l6ZV90ICpjb3VudCkKK3sKKwkqY291bnQgPSBBUlJBWV9TSVpFKHBpcGVfY3JjX3NvdXJjZXMpOworCXJldHVybiBwaXBlX2NyY19zb3VyY2VzOworfQorCiBpbnQKIGFtZGdwdV9kbV9jcnRjX3ZlcmlmeV9jcmNfc291cmNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgY29uc3QgY2hhciAqc3JjX25hbWUsCiAJCQkJIHNpemVfdCAqdmFsdWVzX2NudCkKQEAgLTYzLDE0ICs5Nyw1MiBAQCBhbWRncHVfZG1fY3J0Y192ZXJpZnlfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGNvbnN0IGNoYXIgKnNyY19uYW1lLAogCXJldHVybiAwOwogfQogCi1pbnQgYW1kZ3B1X2RtX2NydGNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzcmNfbmFtZSkKK2ludCBhbWRncHVfZG1fY3J0Y19jb25maWd1cmVfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJCXN0cnVjdCBkbV9jcnRjX3N0YXRlICpkbV9jcnRjX3N0YXRlLAorCQkJCQllbnVtIGFtZGdwdV9kbV9waXBlX2NyY19zb3VyY2Ugc291cmNlKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZG1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IHRvX2RtX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwotCXN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbV9zdGF0ZSA9IGNydGNfc3RhdGUtPnN0cmVhbTsKLQlib29sIGVuYWJsZTsKKwlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW1fc3RhdGUgPSBkbV9jcnRjX3N0YXRlLT5zdHJlYW07CisJYm9vbCBlbmFibGUgPSBhbWRncHVfZG1faXNfdmFsaWRfY3JjX3NvdXJjZShzb3VyY2UpOworCWludCByZXQgPSAwOwogCisJLyogQ29uZmlndXJhdGlvbiB3aWxsIGJlIGRlZmVycmVkIHRvIHN0cmVhbSBlbmFibGUuICovCisJaWYgKCFzdHJlYW1fc3RhdGUpCisJCXJldHVybiAwOworCisJbXV0ZXhfbG9jaygmYWRldi0+ZG0uZGNfbG9jayk7CisKKwkvKiBFbmFibGUgQ1JUQyBDUkMgZ2VuZXJhdGlvbiBpZiBuZWNlc3NhcnkuICovCisJaWYgKGRtX2lzX2NyY19zb3VyY2VfY3J0Yyhzb3VyY2UpKSB7CisJCWlmICghZGNfc3RyZWFtX2NvbmZpZ3VyZV9jcmMoc3RyZWFtX3N0YXRlLT5jdHgtPmRjLAorCQkJCQkgICAgIHN0cmVhbV9zdGF0ZSwgZW5hYmxlLCBlbmFibGUpKSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290byB1bmxvY2s7CisJCX0KKwl9CisKKwkvKiBDb25maWd1cmUgZGl0aGVyaW5nICovCisJaWYgKCFkbV9uZWVkX2NyY19kaXRoZXIoc291cmNlKSkKKwkJZGNfc3RyZWFtX3NldF9kaXRoZXJfb3B0aW9uKHN0cmVhbV9zdGF0ZSwgRElUSEVSX09QVElPTl9UUlVOOCk7CisJZWxzZQorCQlkY19zdHJlYW1fc2V0X2RpdGhlcl9vcHRpb24oc3RyZWFtX3N0YXRlLAorCQkJCQkgICAgRElUSEVSX09QVElPTl9ERUZBVUxUKTsKKwordW5sb2NrOgorCW11dGV4X3VubG9jaygmYWRldi0+ZG0uZGNfbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQgYW1kZ3B1X2RtX2NydGNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzcmNfbmFtZSkKK3sKIAllbnVtIGFtZGdwdV9kbV9waXBlX2NyY19zb3VyY2Ugc291cmNlID0gZG1fcGFyc2VfY3JjX3NvdXJjZShzcmNfbmFtZSk7CisJc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0OworCXN0cnVjdCBkbV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXN0cnVjdCBkcm1fZHBfYXV4ICphdXggPSBOVUxMOworCWJvb2wgZW5hYmxlID0gZmFsc2U7CisJYm9vbCBlbmFibGVkID0gZmFsc2U7CisJaW50IHJldCA9IDA7CiAKIAlpZiAoc291cmNlIDwgMCkgewogCQlEUk1fREVCVUdfRFJJVkVSKCJVbmtub3duIENSQyBzb3VyY2UgJXMgZm9yIENSVEMlZFxuIiwKQEAgLTc4LDQxICsxNTAsMTI0IEBAIGludCBhbWRncHVfZG1fY3J0Y19zZXRfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGNvbnN0IGNoYXIgKnNyY19uYW1lKQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAoIXN0cmVhbV9zdGF0ZSkgewotCQlEUk1fRVJST1IoIk5vIHN0cmVhbSBzdGF0ZSBmb3IgQ1JUQyVkXG4iLCBjcnRjLT5pbmRleCk7Ci0JCXJldHVybiAtRUlOVkFMOworCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPm11dGV4LCBOVUxMKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3Bpbl9sb2NrKCZjcnRjLT5jb21taXRfbG9jayk7CisJY29tbWl0ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZjcnRjLT5jb21taXRfbGlzdCwKKwkJCQkJICBzdHJ1Y3QgZHJtX2NydGNfY29tbWl0LCBjb21taXRfZW50cnkpOworCWlmIChjb21taXQpCisJCWRybV9jcnRjX2NvbW1pdF9nZXQoY29tbWl0KTsKKwlzcGluX3VubG9jaygmY3J0Yy0+Y29tbWl0X2xvY2spOworCisJaWYgKGNvbW1pdCkgeworCQkvKgorCQkgKiBOZWVkIHRvIHdhaXQgZm9yIGFsbCBvdXRzdGFuZGluZyBwcm9ncmFtbWluZyB0byBjb21wbGV0ZQorCQkgKiBpbiBjb21taXQgdGFpbCBzaW5jZSBpdCBjYW4gbW9kaWZ5IENSQyByZWxhdGVkIGZpZWxkcyBhbmQKKwkJICogaGFyZHdhcmUgc3RhdGUuIFNpbmNlIHdlJ3JlIGhvbGRpbmcgdGhlIENSVEMgbG9jayB3ZSdyZQorCQkgKiBndWFyYW50ZWVkIHRoYXQgbm8gb3RoZXIgY29tbWl0IHdvcmsgY2FuIGJlIHF1ZXVlZCBvZmYKKwkJICogYmVmb3JlIHdlIG1vZGlmeSB0aGUgc3RhdGUgYmVsb3cuCisJCSAqLworCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGVfdGltZW91dCgKKwkJCSZjb21taXQtPmh3X2RvbmUsIDEwICogSFopOworCQlpZiAocmV0KQorCQkJZ290byBjbGVhbnVwOwogCX0KIAotCWVuYWJsZSA9IChzb3VyY2UgPT0gQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9BVVRPKTsKKwllbmFibGUgPSBhbWRncHVfZG1faXNfdmFsaWRfY3JjX3NvdXJjZShzb3VyY2UpOworCWNydGNfc3RhdGUgPSB0b19kbV9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKIAotCW11dGV4X2xvY2soJmFkZXYtPmRtLmRjX2xvY2spOwotCWlmICghZGNfc3RyZWFtX2NvbmZpZ3VyZV9jcmMoc3RyZWFtX3N0YXRlLT5jdHgtPmRjLCBzdHJlYW1fc3RhdGUsCi0JCQkJICAgICBlbmFibGUsIGVuYWJsZSkpIHsKLQkJbXV0ZXhfdW5sb2NrKCZhZGV2LT5kbS5kY19sb2NrKTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJLyoKKwkgKiBVU0VSIFJFUSBTUkMgfCBDVVJSRU5UIFNSQyB8IEJFSEFWSU9SCisJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgKiBOb25lICAgICAgICAgfCBOb25lICAgICAgICB8IERvIG5vdGhpbmcKKwkgKiBOb25lICAgICAgICAgfCBDUlRDICAgICAgICB8IERpc2FibGUgQ1JUQyBDUkMsIHNldCBkZWZhdWx0IHRvIGRpdGhlcgorCSAqIE5vbmUgICAgICAgICB8IERQUlggICAgICAgIHwgRGlzYWJsZSBEUFJYIENSQywgbmVlZCAnYXV4Jywgc2V0IGRlZmF1bHQgdG8gZGl0aGVyCisJICogTm9uZSAgICAgICAgIHwgQ1JUQyBESVRIRVIgfCBEaXNhYmxlIENSVEMgQ1JDCisJICogTm9uZSAgICAgICAgIHwgRFBSWCBESVRIRVIgfCBEaXNhYmxlIERQUlggQ1JDLCBuZWVkICdhdXgnCisJICogQ1JUQyAgICAgICAgIHwgWFhYWCAgICAgICAgfCBFbmFibGUgQ1JUQyBDUkMsIG5vIGRpdGhlcgorCSAqIERQUlggICAgICAgICB8IFhYWFggICAgICAgIHwgRW5hYmxlIERQUlggQ1JDLCBuZWVkICdhdXgnLCBubyBkaXRoZXIKKwkgKiBDUlRDIERJVEhFUiAgfCBYWFhYICAgICAgICB8IEVuYWJsZSBDUlRDIENSQywgc2V0IGRpdGhlcgorCSAqIERQUlggRElUSEVSICB8IFhYWFggICAgICAgIHwgRW5hYmxlIERQUlggQ1JDLCBuZWVkICdhdXgnLCBzZXQgZGl0aGVyCisJICovCisJaWYgKGRtX2lzX2NyY19zb3VyY2VfZHByeChzb3VyY2UpIHx8CisJICAgIChzb3VyY2UgPT0gQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9OT05FICYmCisJICAgICBkbV9pc19jcmNfc291cmNlX2RwcngoY3J0Y19zdGF0ZS0+Y3JjX3NyYykpKSB7CisJCXN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphY29ubiA9IE5VTEw7CisJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7CisKKwkJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oY3J0Yy0+ZGV2LCAmY29ubl9pdGVyKTsKKwkJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgeworCQkJaWYgKCFjb25uZWN0b3ItPnN0YXRlIHx8IGNvbm5lY3Rvci0+c3RhdGUtPmNydGMgIT0gY3J0YykKKwkJCQljb250aW51ZTsKKworCQkJYWNvbm4gPSB0b19hbWRncHVfZG1fY29ubmVjdG9yKGNvbm5lY3Rvcik7CisJCQlicmVhazsKKwkJfQorCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRlcik7CisKKwkJaWYgKCFhY29ubikgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gYW1kIGNvbm5lY3RvciBtYXRjaGluZyBDUlRDLSVkXG4iLCBjcnRjLT5pbmRleCk7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290byBjbGVhbnVwOworCQl9CisKKwkJYXV4ID0gJmFjb25uLT5kbV9kcF9hdXguYXV4OworCisJCWlmICghYXV4KSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBkcCBhdXggZm9yIGFtZCBjb25uZWN0b3JcbiIpOworCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdvdG8gY2xlYW51cDsKKwkJfQogCX0KIAotCS8qIFdoZW4gZW5hYmxpbmcgQ1JDLCB3ZSBzaG91bGQgYWxzbyBkaXNhYmxlIGRpdGhlcmluZy4gKi8KLQlkY19zdHJlYW1fc2V0X2RpdGhlcl9vcHRpb24oc3RyZWFtX3N0YXRlLAotCQkJCSAgICBlbmFibGUgPyBESVRIRVJfT1BUSU9OX1RSVU44Ci0JCQkJCSAgIDogRElUSEVSX09QVElPTl9ERUZBVUxUKTsKLQotCW11dGV4X3VubG9jaygmYWRldi0+ZG0uZGNfbG9jayk7CisJaWYgKGFtZGdwdV9kbV9jcnRjX2NvbmZpZ3VyZV9jcmNfc291cmNlKGNydGMsIGNydGNfc3RhdGUsIHNvdXJjZSkpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBjbGVhbnVwOworCX0KIAogCS8qCiAJICogUmVhZGluZyB0aGUgQ1JDIHJlcXVpcmVzIHRoZSB2YmxhbmsgaW50ZXJydXB0IGhhbmRsZXIgdG8gYmUKIAkgKiBlbmFibGVkLiBLZWVwIGEgcmVmZXJlbmNlIHVudGlsIENSQyBjYXB0dXJlIHN0b3BzLgogCSAqLwotCWlmICghY3J0Y19zdGF0ZS0+Y3JjX2VuYWJsZWQgJiYgZW5hYmxlKQotCQlkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMpOwotCWVsc2UgaWYgKGNydGNfc3RhdGUtPmNyY19lbmFibGVkICYmICFlbmFibGUpCi0JCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7CisJZW5hYmxlZCA9IGFtZGdwdV9kbV9pc192YWxpZF9jcmNfc291cmNlKGNydGNfc3RhdGUtPmNyY19zcmMpOworCWlmICghZW5hYmxlZCAmJiBlbmFibGUpIHsKKwkJcmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gY2xlYW51cDsKIAotCWNydGNfc3RhdGUtPmNyY19lbmFibGVkID0gZW5hYmxlOworCQlpZiAoZG1faXNfY3JjX3NvdXJjZV9kcHJ4KHNvdXJjZSkpIHsKKwkJCWlmIChkcm1fZHBfc3RhcnRfY3JjKGF1eCwgY3J0YykpIHsKKwkJCQlEUk1fREVCVUdfRFJJVkVSKCJkcCBzdGFydCBjcmMgZmFpbGVkXG4iKTsKKwkJCQlyZXQgPSAtRUlOVkFMOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJfQorCX0gZWxzZSBpZiAoZW5hYmxlZCAmJiAhZW5hYmxlKSB7CisJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7CisJCWlmIChkbV9pc19jcmNfc291cmNlX2Rwcngoc291cmNlKSkgeworCQkJaWYgKGRybV9kcF9zdG9wX2NyYyhhdXgpKSB7CisJCQkJRFJNX0RFQlVHX0RSSVZFUigiZHAgc3RvcCBjcmMgZmFpbGVkXG4iKTsKKwkJCQlyZXQgPSAtRUlOVkFMOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJfQorCX0KKworCWNydGNfc3RhdGUtPmNyY19zcmMgPSBzb3VyY2U7CiAKIAkvKiBSZXNldCBjcmNfc2tpcHBlZCBvbiBkbSBzdGF0ZSAqLwogCWNydGNfc3RhdGUtPmNyY19za2lwX2NvdW50ID0gMDsKLQlyZXR1cm4gMDsKKworY2xlYW51cDoKKwlpZiAoY29tbWl0KQorCQlkcm1fY3J0Y19jb21taXRfcHV0KGNvbW1pdCk7CisKKwlkcm1fbW9kZXNldF91bmxvY2soJmNydGMtPm11dGV4KTsKKworCXJldHVybiByZXQ7CiB9CiAKIC8qKgpAQCAtMTM1LDcgKzI5MCw3IEBAIHZvaWQgYW1kZ3B1X2RtX2NydGNfaGFuZGxlX2NyY19pcnEoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cmVhbV9zdGF0ZSA9IGNydGNfc3RhdGUtPnN0cmVhbTsKIAogCS8qIEVhcmx5IHJldHVybiBpZiBDUkMgY2FwdHVyZSBpcyBub3QgZW5hYmxlZC4gKi8KLQlpZiAoIWNydGNfc3RhdGUtPmNyY19lbmFibGVkKQorCWlmICghYW1kZ3B1X2RtX2lzX3ZhbGlkX2NyY19zb3VyY2UoY3J0Y19zdGF0ZS0+Y3JjX3NyYykpCiAJCXJldHVybjsKIAogCS8qCkBAIC0xNDksMTAgKzMwNCwxMiBAQCB2b2lkIGFtZGdwdV9kbV9jcnRjX2hhbmRsZV9jcmNfaXJxKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJcmV0dXJuOwogCX0KIAotCWlmICghZGNfc3RyZWFtX2dldF9jcmMoc3RyZWFtX3N0YXRlLT5jdHgtPmRjLCBzdHJlYW1fc3RhdGUsCi0JCQkgICAgICAgJmNyY3NbMF0sICZjcmNzWzFdLCAmY3Jjc1syXSkpCi0JCXJldHVybjsKKwlpZiAoZG1faXNfY3JjX3NvdXJjZV9jcnRjKGNydGNfc3RhdGUtPmNyY19zcmMpKSB7CisJCWlmICghZGNfc3RyZWFtX2dldF9jcmMoc3RyZWFtX3N0YXRlLT5jdHgtPmRjLCBzdHJlYW1fc3RhdGUsCisJCQkJICAgICAgICZjcmNzWzBdLCAmY3Jjc1sxXSwgJmNyY3NbMl0pKQorCQkJcmV0dXJuOwogCi0JZHJtX2NydGNfYWRkX2NyY19lbnRyeShjcnRjLCB0cnVlLAotCQkJICAgICAgIGRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19jb3VudChjcnRjKSwgY3Jjcyk7CisJCWRybV9jcnRjX2FkZF9jcmNfZW50cnkoY3J0YywgdHJ1ZSwKKwkJCQkgICAgICAgZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KGNydGMpLCBjcmNzKTsKKwl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9jcmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX2NyYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZDczMTcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9jcmMuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6IEFNRAorICoKKyAqLworCisjaWZuZGVmIEFNRF9EQUxfREVWX0FNREdQVV9ETV9BTURHUFVfRE1fQ1JDX0hfCisjZGVmaW5lIEFNRF9EQUxfREVWX0FNREdQVV9ETV9BTURHUFVfRE1fQ1JDX0hfCisKK3N0cnVjdCBkcm1fY3J0YzsKK3N0cnVjdCBkbV9jcnRjX3N0YXRlOworCitlbnVtIGFtZGdwdV9kbV9waXBlX2NyY19zb3VyY2UgeworCUFNREdQVV9ETV9QSVBFX0NSQ19TT1VSQ0VfTk9ORSA9IDAsCisJQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9DUlRDLAorCUFNREdQVV9ETV9QSVBFX0NSQ19TT1VSQ0VfQ1JUQ19ESVRIRVIsCisJQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9EUFJYLAorCUFNREdQVV9ETV9QSVBFX0NSQ19TT1VSQ0VfRFBSWF9ESVRIRVIsCisJQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9NQVgsCisJQU1ER1BVX0RNX1BJUEVfQ1JDX1NPVVJDRV9JTlZBTElEID0gLTEsCit9OworCitzdGF0aWMgaW5saW5lIGJvb2wgYW1kZ3B1X2RtX2lzX3ZhbGlkX2NyY19zb3VyY2UoZW51bSBhbWRncHVfZG1fcGlwZV9jcmNfc291cmNlIHNvdXJjZSkKK3sKKwlyZXR1cm4gKHNvdXJjZSA+IEFNREdQVV9ETV9QSVBFX0NSQ19TT1VSQ0VfTk9ORSkgJiYKKwkgICAgICAgKHNvdXJjZSA8IEFNREdQVV9ETV9QSVBFX0NSQ19TT1VSQ0VfTUFYKTsKK30KKworLyogYW1kZ3B1X2RtX2NyYy5jICovCisjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCitpbnQgYW1kZ3B1X2RtX2NydGNfY29uZmlndXJlX2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCQlzdHJ1Y3QgZG1fY3J0Y19zdGF0ZSAqZG1fY3J0Y19zdGF0ZSwKKwkJCQkJZW51bSBhbWRncHVfZG1fcGlwZV9jcmNfc291cmNlIHNvdXJjZSk7CitpbnQgYW1kZ3B1X2RtX2NydGNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzcmNfbmFtZSk7CitpbnQgYW1kZ3B1X2RtX2NydGNfdmVyaWZ5X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgICAgY29uc3QgY2hhciAqc3JjX25hbWUsCisJCQkJICAgICBzaXplX3QgKnZhbHVlc19jbnQpOworY29uc3QgY2hhciAqY29uc3QgKmFtZGdwdV9kbV9jcnRjX2dldF9jcmNfc291cmNlcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJCQkgIHNpemVfdCAqY291bnQpOwordm9pZCBhbWRncHVfZG1fY3J0Y19oYW5kbGVfY3JjX2lycShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOworI2Vsc2UKKyNkZWZpbmUgYW1kZ3B1X2RtX2NydGNfc2V0X2NyY19zb3VyY2UgTlVMTAorI2RlZmluZSBhbWRncHVfZG1fY3J0Y192ZXJpZnlfY3JjX3NvdXJjZSBOVUxMCisjZGVmaW5lIGFtZGdwdV9kbV9jcnRjX2dldF9jcmNfc291cmNlcyBOVUxMCisjZGVmaW5lIGFtZGdwdV9kbV9jcnRjX2hhbmRsZV9jcmNfaXJxKHgpCisjZW5kaWYKKworI2VuZGlmIC8qIEFNRF9EQUxfREVWX0FNREdQVV9ETV9BTURHUFVfRE1fQ1JDX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9kZWJ1Z2ZzLmMKaW5kZXggMzZhMWQ3OS4uZjNkZmIyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX2RlYnVnZnMuYwpAQCAtMTA1Myw5ICsxMDUzLDMzIEBAIHN0YXRpYyBpbnQgdGFyZ2V0X2JhY2tsaWdodF9yZWFkKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBtc3RfdG9wbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKK3sKKwlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9kZSA9IChzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqKW0tPnByaXZhdGU7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOworCXN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphY29ubmVjdG9yOworCisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmY29ubl9pdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmY29ubl9pdGVyKSB7CisJCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkKKwkJCWNvbnRpbnVlOworCisJCWFjb25uZWN0b3IgPSB0b19hbWRncHVfZG1fY29ubmVjdG9yKGNvbm5lY3Rvcik7CisKKwkJc2VxX3ByaW50ZihtLCAiXG5NU1QgdG9wb2xvZ3kgZm9yIGNvbm5lY3RvciAlZFxuIiwgYWNvbm5lY3Rvci0+Y29ubmVjdG9yX2lkKTsKKwkJZHJtX2RwX21zdF9kdW1wX3RvcG9sb2d5KG0sICZhY29ubmVjdG9yLT5tc3RfbWdyKTsKKwl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBhbWRncHVfZG1fZGVidWdmc19saXN0W10gPSB7CiAJeyJhbWRncHVfY3VycmVudF9iYWNrbGlnaHRfcHdtIiwgJmN1cnJlbnRfYmFja2xpZ2h0X3JlYWR9LAogCXsiYW1kZ3B1X3RhcmdldF9iYWNrbGlnaHRfcHdtIiwgJnRhcmdldF9iYWNrbGlnaHRfcmVhZH0sCisJeyJhbWRncHVfbXN0X3RvcG9sb2d5IiwgJm1zdF90b3BvfSwKIH07CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9oZWxwZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9oZWxwZXJzLmMKaW5kZXggYTBlZDAxNS4uZWUxZGM3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1faGVscGVycy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX2hlbHBlcnMuYwpAQCAtNTQ4LDcgKzU0OCw5IEBAIGJvb2wgZG1faGVscGVyc19kcF93cml0ZV9kc2NfZW5hYmxlKAogCQlib29sIGVuYWJsZQogKQogewotCXJldHVybiBmYWxzZTsKKwl1aW50OF90IGVuYWJsZV9kc2MgPSBlbmFibGUgPyAxIDogMDsKKworCXJldHVybiBkbV9oZWxwZXJzX2RwX3dyaXRlX2RwY2QoY3R4LCBzdHJlYW0tPnNpbmstPmxpbmssIERQX0RTQ19FTkFCTEUsICZlbmFibGVfZHNjLCAxKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9tc3RfdHlwZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX21zdF90eXBlcy5jCmluZGV4IDZlMjA1ZWUuLjE2MjE4YTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX21zdF90eXBlcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX21zdF90eXBlcy5jCkBAIC0xNTYsNiArMTU2LDI2IEBAIGRtX2RwX21zdF9jb25uZWN0b3JfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCWtmcmVlKGFtZGdwdV9kbV9jb25uZWN0b3IpOwogfQogCitzdGF0aWMgaW50CithbWRncHVfZG1fbXN0X2Nvbm5lY3Rvcl9sYXRlX3JlZ2lzdGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGFtZGdwdV9kbV9jb25uZWN0b3IgKmFtZGdwdV9kbV9jb25uZWN0b3IgPQorCQl0b19hbWRncHVfZG1fY29ubmVjdG9yKGNvbm5lY3Rvcik7CisJc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCA9IGFtZGdwdV9kbV9jb25uZWN0b3ItPnBvcnQ7CisKKwlyZXR1cm4gZHJtX2RwX21zdF9jb25uZWN0b3JfbGF0ZV9yZWdpc3Rlcihjb25uZWN0b3IsIHBvcnQpOworfQorCitzdGF0aWMgdm9pZAorYW1kZ3B1X2RtX21zdF9jb25uZWN0b3JfZWFybHlfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphbWRncHVfZG1fY29ubmVjdG9yID0KKwkJdG9fYW1kZ3B1X2RtX2Nvbm5lY3Rvcihjb25uZWN0b3IpOworCXN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQgPSBhbWRncHVfZG1fY29ubmVjdG9yLT5wb3J0OworCisJZHJtX2RwX21zdF9jb25uZWN0b3JfZWFybHlfdW5yZWdpc3Rlcihjb25uZWN0b3IsIHBvcnQpOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgZG1fZHBfbXN0X2Nvbm5lY3Rvcl9mdW5jcyA9IHsKIAkuZGV0ZWN0ID0gZG1fZHBfbXN0X2RldGVjdCwKIAkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKQEAgLTE2NCw3ICsxODQsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgZG1fZHBfbXN0X2Nvbm5lY3Rvcl9mdW5jcyA9IHsKIAkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGFtZGdwdV9kbV9jb25uZWN0b3JfYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSwKIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKIAkuYXRvbWljX3NldF9wcm9wZXJ0eSA9IGFtZGdwdV9kbV9jb25uZWN0b3JfYXRvbWljX3NldF9wcm9wZXJ0eSwKLQkuYXRvbWljX2dldF9wcm9wZXJ0eSA9IGFtZGdwdV9kbV9jb25uZWN0b3JfYXRvbWljX2dldF9wcm9wZXJ0eQorCS5hdG9taWNfZ2V0X3Byb3BlcnR5ID0gYW1kZ3B1X2RtX2Nvbm5lY3Rvcl9hdG9taWNfZ2V0X3Byb3BlcnR5LAorCS5sYXRlX3JlZ2lzdGVyID0gYW1kZ3B1X2RtX21zdF9jb25uZWN0b3JfbGF0ZV9yZWdpc3RlciwKKwkuZWFybHlfdW5yZWdpc3RlciA9IGFtZGdwdV9kbV9tc3RfY29ubmVjdG9yX2Vhcmx5X3VucmVnaXN0ZXIsCiB9OwogCiBzdGF0aWMgaW50IGRtX2RwX21zdF9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKQEAgLTM4OCw3ICs0MTAsNyBAQCB2b2lkIGFtZGdwdV9kbV9pbml0aWFsaXplX2RwX2Nvbm5lY3RvcihzdHJ1Y3QgYW1kZ3B1X2Rpc3BsYXlfbWFuYWdlciAqZG0sCiAJCQkJICAgICAgIHN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphY29ubmVjdG9yKQogewogCWFjb25uZWN0b3ItPmRtX2RwX2F1eC5hdXgubmFtZSA9ICJkbWRjIjsKLQlhY29ubmVjdG9yLT5kbV9kcF9hdXguYXV4LmRldiA9IGRtLT5hZGV2LT5kZXY7CisJYWNvbm5lY3Rvci0+ZG1fZHBfYXV4LmF1eC5kZXYgPSBhY29ubmVjdG9yLT5iYXNlLmtkZXY7CiAJYWNvbm5lY3Rvci0+ZG1fZHBfYXV4LmF1eC50cmFuc2ZlciA9IGRtX2RwX2F1eF90cmFuc2ZlcjsKIAlhY29ubmVjdG9yLT5kbV9kcF9hdXguZGRjX3NlcnZpY2UgPSBhY29ubmVjdG9yLT5kY19saW5rLT5kZGM7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3BwX3NtdS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fcHBfc211LmMKaW5kZXggNTkyZmE0OS4uZjRjZmEwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fcHBfc211LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fcHBfc211LmMKQEAgLTE1MSwxOCArMTUxLDMxIEBAIHN0YXRpYyB2b2lkIGdldF9kZWZhdWx0X2Nsb2NrX2xldmVscygKIHN0YXRpYyBlbnVtIHNtdV9jbGtfdHlwZSBkY190b19zbXVfY2xvY2tfdHlwZSgKIAkJZW51bSBkbV9wcF9jbG9ja190eXBlIGRtX3BwX2Nsa190eXBlKQogewotI2RlZmluZSBEQ0NMS19NQVBfU01VQ0xLKGRjY2xrLCBzbXVjbGspIFwKLQlbZGNjbGtdID0gc211Y2xrCisJZW51bSBzbXVfY2xrX3R5cGUgc211X2Nsa190eXBlID0gU01VX0NMS19DT1VOVDsKIAotCXN0YXRpYyBpbnQgZGNfY2xrX3R5cGVfbWFwW10gPSB7Ci0JCURDQ0xLX01BUF9TTVVDTEsoRE1fUFBfQ0xPQ0tfVFlQRV9ESVNQTEFZX0NMSywJU01VX0RJU1BDTEspLAotCQlEQ0NMS19NQVBfU01VQ0xLKERNX1BQX0NMT0NLX1RZUEVfRU5HSU5FX0NMSywJU01VX0dGWENMSyksCi0JCURDQ0xLX01BUF9TTVVDTEsoRE1fUFBfQ0xPQ0tfVFlQRV9NRU1PUllfQ0xLLAlTTVVfTUNMSyksCi0JCURDQ0xLX01BUF9TTVVDTEsoRE1fUFBfQ0xPQ0tfVFlQRV9EQ0VGQ0xLLAlTTVVfRENFRkNMSyksCi0JCURDQ0xLX01BUF9TTVVDTEsoRE1fUFBfQ0xPQ0tfVFlQRV9TT0NDTEssCVNNVV9TT0NDTEspLAotCX07CisJc3dpdGNoIChkbV9wcF9jbGtfdHlwZSkgeworCWNhc2UgRE1fUFBfQ0xPQ0tfVFlQRV9ESVNQTEFZX0NMSzoKKwkJc211X2Nsa190eXBlID0gU01VX0RJU1BDTEs7CisJCWJyZWFrOworCWNhc2UgRE1fUFBfQ0xPQ0tfVFlQRV9FTkdJTkVfQ0xLOgorCQlzbXVfY2xrX3R5cGUgPSBTTVVfR0ZYQ0xLOworCQlicmVhazsKKwljYXNlIERNX1BQX0NMT0NLX1RZUEVfTUVNT1JZX0NMSzoKKwkJc211X2Nsa190eXBlID0gU01VX01DTEs7CisJCWJyZWFrOworCWNhc2UgRE1fUFBfQ0xPQ0tfVFlQRV9EQ0VGQ0xLOgorCQlzbXVfY2xrX3R5cGUgPSBTTVVfRENFRkNMSzsKKwkJYnJlYWs7CisJY2FzZSBETV9QUF9DTE9DS19UWVBFX1NPQ0NMSzoKKwkJc211X2Nsa190eXBlID0gU01VX1NPQ0NMSzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJRFJNX0VSUk9SKCJETV9QUExJQjogaW52YWxpZCBjbG9jayB0eXBlOiAlZCFcbiIsCisJCQkgIGRtX3BwX2Nsa190eXBlKTsKKwkJYnJlYWs7CisJfQogCi0JcmV0dXJuIGRjX2Nsa190eXBlX21hcFtkbV9wcF9jbGtfdHlwZV07CisJcmV0dXJuIHNtdV9jbGtfdHlwZTsKIH0KIAogc3RhdGljIGVudW0gYW1kX3BwX2Nsb2NrX3R5cGUgZGNfdG9fcHBfY2xvY2tfdHlwZSgKQEAgLTMzNCw3ICszNDcsNyBAQCBib29sIGRtX3BwX2dldF9jbG9ja19sZXZlbHNfYnlfdHlwZSgKIAkJfQogCX0gZWxzZSBpZiAoYWRldi0+c211LmZ1bmNzICYmIGFkZXYtPnNtdS5mdW5jcy0+Z2V0X2Nsb2NrX2J5X3R5cGUpIHsKIAkJaWYgKHNtdV9nZXRfY2xvY2tfYnlfdHlwZSgmYWRldi0+c211LAotCQkJCQkgIGRjX3RvX3NtdV9jbG9ja190eXBlKGNsa190eXBlKSwKKwkJCQkJICBkY190b19wcF9jbG9ja190eXBlKGNsa190eXBlKSwKIAkJCQkJICAmcHBfY2xrcykpIHsKIAkJCWdldF9kZWZhdWx0X2Nsb2NrX2xldmVscyhjbGtfdHlwZSwgZGNfY2xrcyk7CiAJCQlyZXR1cm4gdHJ1ZTsKQEAgLTQxOSw3ICs0MzIsNyBAQCBib29sIGRtX3BwX2dldF9jbG9ja19sZXZlbHNfYnlfdHlwZV93aXRoX2xhdGVuY3koCiAJCQlyZXR1cm4gZmFsc2U7CiAJfSBlbHNlIGlmIChhZGV2LT5zbXUucHB0X2Z1bmNzICYmIGFkZXYtPnNtdS5wcHRfZnVuY3MtPmdldF9jbG9ja19ieV90eXBlX3dpdGhfbGF0ZW5jeSkgewogCQlpZiAoc211X2dldF9jbG9ja19ieV90eXBlX3dpdGhfbGF0ZW5jeSgmYWRldi0+c211LAotCQkJCQkJICAgICAgIGRjX3RvX3BwX2Nsb2NrX3R5cGUoY2xrX3R5cGUpLAorCQkJCQkJICAgICAgIGRjX3RvX3NtdV9jbG9ja190eXBlKGNsa190eXBlKSwKIAkJCQkJCSAgICAgICAmcHBfY2xrcykpCiAJCQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAtODAxLDYgKzgxNCwxOSBAQCBlbnVtIHBwX3NtdV9zdGF0dXMgcHBfbnZfc2V0X2hhcmRfbWluX3VjbGtfYnlfZnJlcShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IG1oeikKIAlyZXR1cm4gUFBfU01VX1JFU1VMVF9PSzsKIH0KIAorZW51bSBwcF9zbXVfc3RhdHVzIHBwX252X3NldF9wc3RhdGVfaGFuZHNoYWtlX3N1cHBvcnQoCisJc3RydWN0IHBwX3NtdSAqcHAsIEJPT0xFQU4gcHN0YXRlX2hhbmRzaGFrZV9zdXBwb3J0ZWQpCit7CisJY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCA9IHBwLT5kbTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGN0eC0+ZHJpdmVyX2NvbnRleHQ7CisJc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAmYWRldi0+c211OworCisJaWYgKHNtdV9kaXNwbGF5X2Rpc2FibGVfbWVtb3J5X2Nsb2NrX3N3aXRjaChzbXUsICFwc3RhdGVfaGFuZHNoYWtlX3N1cHBvcnRlZCkpCisJCXJldHVybiBQUF9TTVVfUkVTVUxUX0ZBSUw7CisKKwlyZXR1cm4gUFBfU01VX1JFU1VMVF9PSzsKK30KKwogZW51bSBwcF9zbXVfc3RhdHVzIHBwX252X3NldF92b2x0YWdlX2J5X2ZyZXEoc3RydWN0IHBwX3NtdSAqcHAsCiAJCWVudW0gcHBfc211X252X2Nsb2NrX2lkIGNsb2NrX2lkLCBpbnQgbWh6KQogewpAQCAtOTE2LDYgKzk0Miw3IEBAIHZvaWQgZG1fcHBfZ2V0X2Z1bmNzKAogCQlmdW5jcy0+bnZfZnVuY3MuZ2V0X21heGltdW1fc3VzdGFpbmFibGVfY2xvY2tzID0gcHBfbnZfZ2V0X21heGltdW1fc3VzdGFpbmFibGVfY2xvY2tzOwogCQkvKnRvZG8gIGNvbXBhcmUgZGF0YSB3aXRoIHdpbmRvdyBkcml2ZXIgKi8KIAkJZnVuY3MtPm52X2Z1bmNzLmdldF91Y2xrX2RwbV9zdGF0ZXMgPSBwcF9udl9nZXRfdWNsa19kcG1fc3RhdGVzOworCQlmdW5jcy0+bnZfZnVuY3Muc2V0X3BzdGF0ZV9oYW5kc2hha2Vfc3VwcG9ydCA9IHBwX252X3NldF9wc3RhdGVfaGFuZHNoYWtlX3N1cHBvcnQ7CiAJCWJyZWFrOwogI2VuZGlmCiAJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9NYWtlZmlsZQppbmRleCA1NWNlNWI2Li42Mjc5ODJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL01ha2VmaWxlCkBAIC0zNyw2ICszNyw5IEBACiBpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzAKIERDX0xJQlMgKz0gZGNuMTAgZG1sCiBlbmRpZgoraWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMl8xCitEQ19MSUJTICs9IGRjbjIxCitlbmRpZgogCiBEQ19MSUJTICs9IGRjZTEyMAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9iaW9zX3BhcnNlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvYmlvc19wYXJzZXIuYwppbmRleCA0NjFlZWYxLi4yMjFlMGY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9iaW9zX3BhcnNlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2Jpb3NfcGFyc2VyLmMKQEAgLTI3OTYsOCArMjc5Niw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNfdmJpb3NfZnVuY3MgdmJpb3NfZnVuY3MgPSB7CiAKIAkuZ2V0X2RldmljZV90YWcgPSBiaW9zX3BhcnNlcl9nZXRfZGV2aWNlX3RhZywKIAotCS5nZXRfZmlybXdhcmVfaW5mbyA9IGJpb3NfcGFyc2VyX2dldF9maXJtd2FyZV9pbmZvLAotCiAJLmdldF9zcHJlYWRfc3BlY3RydW1faW5mbyA9IGJpb3NfcGFyc2VyX2dldF9zcHJlYWRfc3BlY3RydW1faW5mbywKIAogCS5nZXRfc3NfZW50cnlfbnVtYmVyID0gYmlvc19wYXJzZXJfZ2V0X3NzX2VudHJ5X251bWJlciwKQEAgLTI5MjIsNiArMjkyMCw3IEBAIHN0YXRpYyBib29sIGJpb3NfcGFyc2VyX2NvbnN0cnVjdCgKIAlkYWxfYmlvc19wYXJzZXJfaW5pdF9jbWRfdGJsX2hlbHBlcigmYnAtPmNtZF9oZWxwZXIsIGRjZV92ZXJzaW9uKTsKIAogCWJwLT5iYXNlLmludGVncmF0ZWRfaW5mbyA9IGJpb3NfcGFyc2VyX2NyZWF0ZV9pbnRlZ3JhdGVkX2luZm8oJmJwLT5iYXNlKTsKKwlicC0+YmFzZS5md19pbmZvX3ZhbGlkID0gYmlvc19wYXJzZXJfZ2V0X2Zpcm13YXJlX2luZm8oJmJwLT5iYXNlLCAmYnAtPmJhc2UuZndfaW5mbykgPT0gQlBfUkVTVUxUX09LOwogCiAJcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9iaW9zX3BhcnNlcjIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2Jpb3NfcGFyc2VyMi5jCmluZGV4IDZhYTJlNTYuLmRmZjY1YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2Jpb3NfcGFyc2VyMi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2Jpb3NfcGFyc2VyMi5jCkBAIC0xODgxLDggKzE4ODEsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRjX3ZiaW9zX2Z1bmNzIHZiaW9zX2Z1bmNzID0gewogCiAJLmdldF9kZXZpY2VfdGFnID0gYmlvc19wYXJzZXJfZ2V0X2RldmljZV90YWcsCiAKLQkuZ2V0X2Zpcm13YXJlX2luZm8gPSBiaW9zX3BhcnNlcl9nZXRfZmlybXdhcmVfaW5mbywKLQogCS5nZXRfc3ByZWFkX3NwZWN0cnVtX2luZm8gPSBiaW9zX3BhcnNlcl9nZXRfc3ByZWFkX3NwZWN0cnVtX2luZm8sCiAKIAkuZ2V0X3NzX2VudHJ5X251bWJlciA9IGJpb3NfcGFyc2VyX2dldF9zc19lbnRyeV9udW1iZXIsCkBAIC0xOTk4LDYgKzE5OTYsNyBAQCBzdGF0aWMgYm9vbCBiaW9zX3BhcnNlcl9jb25zdHJ1Y3QoCiAJZGFsX2Jpb3NfcGFyc2VyX2luaXRfY21kX3RibF9oZWxwZXIyKCZicC0+Y21kX2hlbHBlciwgZGNlX3ZlcnNpb24pOwogCiAJYnAtPmJhc2UuaW50ZWdyYXRlZF9pbmZvID0gYmlvc19wYXJzZXJfY3JlYXRlX2ludGVncmF0ZWRfaW5mbygmYnAtPmJhc2UpOworCWJwLT5iYXNlLmZ3X2luZm9fdmFsaWQgPSBiaW9zX3BhcnNlcl9nZXRfZmlybXdhcmVfaW5mbygmYnAtPmJhc2UsICZicC0+YmFzZS5md19pbmZvKSA9PSBCUF9SRVNVTFRfT0s7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGVfaGVscGVyMi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJsZV9oZWxwZXIyLmMKaW5kZXggZjk0MzlkZi4uZGIxNTNkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJsZV9oZWxwZXIyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJsZV9oZWxwZXIyLmMKQEAgLTY3LDYgKzY3LDExIEBAIGJvb2wgZGFsX2Jpb3NfcGFyc2VyX2luaXRfY21kX3RibF9oZWxwZXIyKAogCQkqaCA9IGRhbF9jbWRfdGJsX2hlbHBlcl9kY2UxMTJfZ2V0X3RhYmxlMigpOwogCQlyZXR1cm4gdHJ1ZTsKICNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorCWNhc2UgRENOX1ZFUlNJT05fMl8xOgorCQkqaCA9IGRhbF9jbWRfdGJsX2hlbHBlcl9kY2UxMTJfZ2V0X3RhYmxlMigpOworCQlyZXR1cm4gdHJ1ZTsKKyNlbmRpZgogCWNhc2UgRENFX1ZFUlNJT05fMTJfMDoKIAljYXNlIERDRV9WRVJTSU9OXzEyXzE6CiAJCSpoID0gZGFsX2NtZF90YmxfaGVscGVyX2RjZTExMl9nZXRfdGFibGUyKCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9kY2UxMTAvY29tbWFuZF90YWJsZV9oZWxwZXJfZGNlMTEwLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9kY2UxMTAvY29tbWFuZF90YWJsZV9oZWxwZXJfZGNlMTEwLmMKaW5kZXggY2EyNDE1NC4uMTFiZjI0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvZGNlMTEwL2NvbW1hbmRfdGFibGVfaGVscGVyX2RjZTExMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2RjZTExMC9jb21tYW5kX3RhYmxlX2hlbHBlcl9kY2UxMTAuYwpAQCAtMTUzLDM4ICsxNTMsMTAgQEAgc3RhdGljIHVpbnQ4X3QgaHBkX3NlbF90b19hdG9tKGVudW0gaHBkX3NvdXJjZV9pZCBpZCkKIAogc3RhdGljIHVpbnQ4X3QgZGlnX2VuY29kZXJfc2VsX3RvX2F0b20oZW51bSBlbmdpbmVfaWQgaWQpCiB7Ci0JdWludDhfdCBhdG9tX2RpZ19lbmNvZGVyX3NlbCA9IDA7Ci0KLQlzd2l0Y2ggKGlkKSB7Ci0JY2FzZSBFTkdJTkVfSURfRElHQToKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdBX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHQjoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdCX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHQzoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdDX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHRDoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdEX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHRToKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdFX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHRjoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdGX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHRzoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdHX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfVU5LTk9XTjoKLQkJIC8qIE5vIERJR19GUk9OVCBpcyBhc3NvY2lhdGVkIHRvIERJR19CQUNLRU5EICovCi0JCWF0b21fZGlnX2VuY29kZXJfc2VsID0gMDsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdBX1NFTDsKLQkJYnJlYWs7Ci0JfQorCS8qIE9uIGFueSBBU0lDIGFmdGVyIERDRTgwLCB3ZSBtYW51YWxseSBwcm9ncmFtIHRoZSBESUdfRkUKKwkgKiBzZWxlY3Rpb24gKHNlZSBjb25uZWN0X2RpZ19iZV90b19mZSBmdW5jdGlvbiBvZiB0aGUgbGluaworCSAqIGVuY29kZXIpLCBzbyB0cmFuc2xhdGlvbiBzaG91bGQgYWx3YXlzIHJldHVybiAwIChubyBGRSkuCisJICovCiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2RjZTExMi9jb21tYW5kX3RhYmxlX2hlbHBlcjJfZGNlMTEyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9kY2UxMTIvY29tbWFuZF90YWJsZV9oZWxwZXIyX2RjZTExMi5jCmluZGV4IDAyMzdhZTUuLjc1NWI2ZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2RjZTExMi9jb21tYW5kX3RhYmxlX2hlbHBlcjJfZGNlMTEyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvZGNlMTEyL2NvbW1hbmRfdGFibGVfaGVscGVyMl9kY2UxMTIuYwpAQCAtMTUwLDM4ICsxNTAsMTAgQEAgc3RhdGljIHVpbnQ4X3QgaHBkX3NlbF90b19hdG9tKGVudW0gaHBkX3NvdXJjZV9pZCBpZCkKIAogc3RhdGljIHVpbnQ4X3QgZGlnX2VuY29kZXJfc2VsX3RvX2F0b20oZW51bSBlbmdpbmVfaWQgaWQpCiB7Ci0JdWludDhfdCBhdG9tX2RpZ19lbmNvZGVyX3NlbCA9IDA7Ci0KLQlzd2l0Y2ggKGlkKSB7Ci0JY2FzZSBFTkdJTkVfSURfRElHQToKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdBX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHQjoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdCX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHQzoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdDX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHRDoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdEX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHRToKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdFX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHRjoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdGX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfRElHRzoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdHX1NFTDsKLQkJYnJlYWs7Ci0JY2FzZSBFTkdJTkVfSURfVU5LTk9XTjoKLQkJLyogTm8gRElHX0ZST05UIGlzIGFzc29jaWF0ZWQgdG8gRElHX0JBQ0tFTkQgKi8KLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSAwOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlhdG9tX2RpZ19lbmNvZGVyX3NlbCA9IEFUT01fVFJBTk1TSVRURVJfVjZfX0RJR0FfU0VMOwotCQlicmVhazsKLQl9CisJLyogT24gYW55IEFTSUMgYWZ0ZXIgRENFODAsIHdlIG1hbnVhbGx5IHByb2dyYW0gdGhlIERJR19GRQorCSAqIHNlbGVjdGlvbiAoc2VlIGNvbm5lY3RfZGlnX2JlX3RvX2ZlIGZ1bmN0aW9uIG9mIHRoZSBsaW5rCisJICogZW5jb2RlciksIHNvIHRyYW5zbGF0aW9uIHNob3VsZCBhbHdheXMgcmV0dXJuIDAgKG5vIEZFKS4KKwkgKi8KIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvZGNlMTEyL2NvbW1hbmRfdGFibGVfaGVscGVyX2RjZTExMi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvZGNlMTEyL2NvbW1hbmRfdGFibGVfaGVscGVyX2RjZTExMi5jCmluZGV4IDQ1MjAzNGYuLjA2YjRmN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2RjZTExMi9jb21tYW5kX3RhYmxlX2hlbHBlcl9kY2UxMTIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9kY2UxMTIvY29tbWFuZF90YWJsZV9oZWxwZXJfZGNlMTEyLmMKQEAgLTE1MCwzOCArMTUwLDEwIEBAIHN0YXRpYyB1aW50OF90IGhwZF9zZWxfdG9fYXRvbShlbnVtIGhwZF9zb3VyY2VfaWQgaWQpCiAKIHN0YXRpYyB1aW50OF90IGRpZ19lbmNvZGVyX3NlbF90b19hdG9tKGVudW0gZW5naW5lX2lkIGlkKQogewotCXVpbnQ4X3QgYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSAwOwotCi0Jc3dpdGNoIChpZCkgewotCWNhc2UgRU5HSU5FX0lEX0RJR0E6Ci0JCWF0b21fZGlnX2VuY29kZXJfc2VsID0gQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHQV9TRUw7Ci0JCWJyZWFrOwotCWNhc2UgRU5HSU5FX0lEX0RJR0I6Ci0JCWF0b21fZGlnX2VuY29kZXJfc2VsID0gQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHQl9TRUw7Ci0JCWJyZWFrOwotCWNhc2UgRU5HSU5FX0lEX0RJR0M6Ci0JCWF0b21fZGlnX2VuY29kZXJfc2VsID0gQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHQ19TRUw7Ci0JCWJyZWFrOwotCWNhc2UgRU5HSU5FX0lEX0RJR0Q6Ci0JCWF0b21fZGlnX2VuY29kZXJfc2VsID0gQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHRF9TRUw7Ci0JCWJyZWFrOwotCWNhc2UgRU5HSU5FX0lEX0RJR0U6Ci0JCWF0b21fZGlnX2VuY29kZXJfc2VsID0gQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHRV9TRUw7Ci0JCWJyZWFrOwotCWNhc2UgRU5HSU5FX0lEX0RJR0Y6Ci0JCWF0b21fZGlnX2VuY29kZXJfc2VsID0gQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHRl9TRUw7Ci0JCWJyZWFrOwotCWNhc2UgRU5HSU5FX0lEX0RJR0c6Ci0JCWF0b21fZGlnX2VuY29kZXJfc2VsID0gQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHR19TRUw7Ci0JCWJyZWFrOwotCWNhc2UgRU5HSU5FX0lEX1VOS05PV046Ci0JCS8qIE5vIERJR19GUk9OVCBpcyBhc3NvY2lhdGVkIHRvIERJR19CQUNLRU5EICovCi0JCWF0b21fZGlnX2VuY29kZXJfc2VsID0gMDsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdBX1NFTDsKLQkJYnJlYWs7Ci0JfQorCS8qIE9uIGFueSBBU0lDIGFmdGVyIERDRTgwLCB3ZSBtYW51YWxseSBwcm9ncmFtIHRoZSBESUdfRkUKKwkgKiBzZWxlY3Rpb24gKHNlZSBjb25uZWN0X2RpZ19iZV90b19mZSBmdW5jdGlvbiBvZiB0aGUgbGluaworCSAqIGVuY29kZXIpLCBzbyB0cmFuc2xhdGlvbiBzaG91bGQgYWx3YXlzIHJldHVybiAwIChubyBGRSkuCisJICovCiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jYWxjcy9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jYWxjcy9NYWtlZmlsZQppbmRleCA5NWYzMzJlLi45ODU2MzNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2FsY3MvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NhbGNzL01ha2VmaWxlCkBAIC0zMiw5ICszMiwxMyBAQAogCiBjYWxjc19jY2ZsYWdzIDo9IC1taGFyZC1mbG9hdCAtbXNzZSAkKGNjX3N0YWNrX2FsaWduKQogCi1DRkxBR1NfZGNuX2NhbGNzLm8gOj0gJChjYWxjc19jY2ZsYWdzKQotQ0ZMQUdTX2Rjbl9jYWxjX2F1dG8ubyA6PSAkKGNhbGNzX2NjZmxhZ3MpCi1DRkxBR1NfZGNuX2NhbGNfbWF0aC5vIDo9ICQoY2FsY3NfY2NmbGFncykgLVduby10YXV0b2xvZ2ljYWwtY29tcGFyZQoraWZkZWYgQ09ORklHX0NDX0lTX0NMQU5HCitjYWxjc19jY2ZsYWdzICs9IC1tc3NlMgorZW5kaWYKKworQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvY2FsY3MvZGNuX2NhbGNzLm8gOj0gJChjYWxjc19jY2ZsYWdzKQorQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvY2FsY3MvZGNuX2NhbGNfYXV0by5vIDo9ICQoY2FsY3NfY2NmbGFncykKK0NGTEFHU18kKEFNRERBTFBBVEgpL2RjL2NhbGNzL2Rjbl9jYWxjX21hdGgubyA6PSAkKGNhbGNzX2NjZmxhZ3MpIC1Xbm8tdGF1dG9sb2dpY2FsLWNvbXBhcmUKIAogQldfQ0FMQ1MgPSBkY2VfY2FsY3MubyBid19maXhlZC5vIGN1c3RvbV9mbG9hdC5vCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jYWxjcy9kY2VfY2FsY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jYWxjcy9kY2VfY2FsY3MuYwppbmRleCA3MTA4ZDUxLi5hMWQ0OTI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2FsY3MvZGNlX2NhbGNzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NhbGNzL2RjZV9jYWxjcy5jCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAKKyNpbmNsdWRlICJyZXNvdXJjZS5oIgogI2luY2x1ZGUgImRtX3NlcnZpY2VzLmgiCiAjaW5jbHVkZSAiZGNlX2NhbGNzLmgiCiAjaW5jbHVkZSAiZGMuaCIKQEAgLTI4NTIsNyArMjg1Myw3IEBAIHN0YXRpYyB2b2lkIHBvcHVsYXRlX2luaXRpYWxfZGF0YSgKIAkJCWRhdGEtPnNyY19oZWlnaHRbbnVtX2Rpc3BsYXlzICogMiArIGpdID0gYndfaW50X3RvX2ZpeGVkKHBpcGVbaV0uYm90dG9tX3BpcGUtPnBsYW5lX3Jlcy5zY2xfZGF0YS52aWV3cG9ydC5oZWlnaHQpOwogCQkJZGF0YS0+c3JjX3dpZHRoW251bV9kaXNwbGF5cyAqIDIgKyBqXSA9IGJ3X2ludF90b19maXhlZChwaXBlW2ldLmJvdHRvbV9waXBlLT5wbGFuZV9yZXMuc2NsX2RhdGEudmlld3BvcnQud2lkdGgpOwogCQkJZGF0YS0+cGl0Y2hfaW5fcGl4ZWxzW251bV9kaXNwbGF5cyAqIDIgKyBqXSA9IGJ3X2ludF90b19maXhlZCgKLQkJCQkJcGlwZVtpXS5ib3R0b21fcGlwZS0+cGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3BpdGNoKTsKKwkJCQkJcGlwZVtpXS5ib3R0b21fcGlwZS0+cGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuc3VyZmFjZV9waXRjaCk7CiAJCQlkYXRhLT5oX3RhcHNbbnVtX2Rpc3BsYXlzICogMiArIGpdID0gYndfaW50X3RvX2ZpeGVkKHBpcGVbaV0uYm90dG9tX3BpcGUtPnBsYW5lX3Jlcy5zY2xfZGF0YS50YXBzLmhfdGFwcyk7CiAJCQlkYXRhLT52X3RhcHNbbnVtX2Rpc3BsYXlzICogMiArIGpdID0gYndfaW50X3RvX2ZpeGVkKHBpcGVbaV0uYm90dG9tX3BpcGUtPnBsYW5lX3Jlcy5zY2xfZGF0YS50YXBzLnZfdGFwcyk7CiAJCQlkYXRhLT5oX3NjYWxlX3JhdGlvW251bV9kaXNwbGF5cyAqIDIgKyBqXSA9IGZpeGVkMzFfMzJfdG9fYndfZml4ZWQoCkBAIC0yOTc3LDYgKzI5NzgsMzIgQEAgc3RhdGljIHZvaWQgcG9wdWxhdGVfaW5pdGlhbF9kYXRhKAogCWRhdGEtPm51bWJlcl9vZl9kaXNwbGF5cyA9IG51bV9kaXNwbGF5czsKIH0KIAorc3RhdGljIGJvb2wgYWxsX2Rpc3BsYXlzX2luX3N5bmMoY29uc3Qgc3RydWN0IHBpcGVfY3R4IHBpcGVbXSwKKwkJCQkgaW50IHBpcGVfY291bnQpCit7CisJY29uc3Qgc3RydWN0IHBpcGVfY3R4ICphY3RpdmVfcGlwZXNbTUFYX1BJUEVTXTsKKwlpbnQgaSwgbnVtX2FjdGl2ZV9waXBlcyA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgcGlwZV9jb3VudDsgaSsrKSB7CisJCWlmICghcGlwZVtpXS5zdHJlYW0gfHwgcGlwZVtpXS50b3BfcGlwZSkKKwkJCWNvbnRpbnVlOworCisJCWFjdGl2ZV9waXBlc1tudW1fYWN0aXZlX3BpcGVzKytdID0gJnBpcGVbaV07CisJfQorCisJaWYgKCFudW1fYWN0aXZlX3BpcGVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlmb3IgKGkgPSAxOyBpIDwgbnVtX2FjdGl2ZV9waXBlczsgKytpKSB7CisJCWlmICghcmVzb3VyY2VfYXJlX3N0cmVhbXNfdGltaW5nX3N5bmNocm9uaXphYmxlKAorCQkJICAgIGFjdGl2ZV9waXBlc1swXS0+c3RyZWFtLCBhY3RpdmVfcGlwZXNbaV0tPnN0cmVhbSkpIHsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCX0KKworCXJldHVybiB0cnVlOworfQorCiAvKioKICAqIFJldHVybjoKICAqCXRydWUgLQlEaXNwbGF5KHMpIGNvbmZpZ3VyYXRpb24gc3VwcG9ydGVkLgpAQCAtMjk5OCw4ICszMDI1LDEwIEBAIGJvb2wgYndfY2FsY3Moc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIAogCXBvcHVsYXRlX2luaXRpYWxfZGF0YShwaXBlLCBwaXBlX2NvdW50LCBkYXRhKTsKIAotCS8qVE9ETzogdGhpcyBzaG91bGQgYmUgdGFrZW4gb3V0IGNhbGNzIG91dHB1dCBhbmQgYXNzaWduZWQgZHVyaW5nIHRpbWluZyBzeW5jIGZvciBwcGxpYiB1c2UqLwotCWNhbGNzX291dHB1dC0+YWxsX2Rpc3BsYXlzX2luX3N5bmMgPSBmYWxzZTsKKwlpZiAoY3R4LT5kYy0+Y29uZmlnLm11bHRpX21vbl9wcF9tY2xrX3N3aXRjaCkKKwkJY2FsY3Nfb3V0cHV0LT5hbGxfZGlzcGxheXNfaW5fc3luYyA9IGFsbF9kaXNwbGF5c19pbl9zeW5jKHBpcGUsIHBpcGVfY291bnQpOworCWVsc2UKKwkJY2FsY3Nfb3V0cHV0LT5hbGxfZGlzcGxheXNfaW5fc3luYyA9IGZhbHNlOwogCiAJaWYgKGRhdGEtPm51bWJlcl9vZl9kaXNwbGF5cyAhPSAwKSB7CiAJCXVpbnQ4X3QgeWNsa19sdmwsIHNjbGtfbHZsOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NhbGNzL2Rjbl9jYWxjcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NhbGNzL2Rjbl9jYWxjcy5jCmluZGV4IDM4MzY1ZGQuLjliMmNiNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jYWxjcy9kY25fY2FsY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2FsY3MvZGNuX2NhbGNzLmMKQEAgLTMyOSw3ICszMjksNyBAQCBzdGF0aWMgdm9pZCBwaXBlX2N0eF90b19lMmVfcGlwZV9wYXJhbXMgKAogCQkJZGNjX3N1cHBvcnRfcGl4ZWxfZm9ybWF0KHBpcGUtPnBsYW5lX3N0YXRlLT5mb3JtYXQsICZicGUpID8gMSA6IDA7CiAJfQogCWlucHV0LT5zcmMuZGNjX3JhdGUgICAgICAgICAgICA9IDE7Ci0JaW5wdXQtPnNyYy5tZXRhX3BpdGNoICAgICAgICAgID0gcGlwZS0+cGxhbmVfc3RhdGUtPmRjYy5ncnBoLm1ldGFfcGl0Y2g7CisJaW5wdXQtPnNyYy5tZXRhX3BpdGNoICAgICAgICAgID0gcGlwZS0+cGxhbmVfc3RhdGUtPmRjYy5tZXRhX3BpdGNoOwogCWlucHV0LT5zcmMuc291cmNlX3NjYW4gICAgICAgICA9IGRtX2hvcno7CiAJaW5wdXQtPnNyYy5zd19tb2RlICAgICAgICAgICAgID0gcGlwZS0+cGxhbmVfc3RhdGUtPnRpbGluZ19pbmZvLmdmeDkuc3dpenpsZTsKIApAQCAtNzA1LDYgKzcwNSwxNyBAQCBzdGF0aWMgdm9pZCBoYWNrX2JvdW5kaW5nX2JveChzdHJ1Y3QgZGNuX2J3X2ludGVybmFsX3ZhcnMgKnYsCiAJCWhhY2tfZm9yY2VfcGlwZV9zcGxpdCh2LCBjb250ZXh0LT5zdHJlYW1zWzBdLT50aW1pbmcucGl4X2Nsa18xMDBoeik7CiB9CiAKKwordW5zaWduZWQgaW50IGdldF9oaWdoZXN0X2FsbG93ZWRfdm9sdGFnZV9sZXZlbCh1aW50MzJfdCBod19pbnRlcm5hbF9yZXYpCit7CisJLyogZm9yIGRhbGksIHRoZSBoaWdoZXN0IHZvbHRhZ2UgbGV2ZWwgd2Ugd2FudCBpcyAwICovCisJaWYgKEFTSUNSRVZfSVNfREFMSShod19pbnRlcm5hbF9yZXYpKQorCQlyZXR1cm4gMDsKKworCS8qIHdlIGFyZSBvayB3aXRoIGFsbCBsZXZlbHMgKi8KKwlyZXR1cm4gNDsKK30KKwogYm9vbCBkY25fdmFsaWRhdGVfYmFuZHdpZHRoKAogCQlzdHJ1Y3QgZGMgKmRjLAogCQlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCkBAIC03MzIsNiArNzQzLDcgQEAgYm9vbCBkY25fdmFsaWRhdGVfYmFuZHdpZHRoKAogCiAJbWVtc2V0KHYsIDAsIHNpemVvZigqdikpOwogCWtlcm5lbF9mcHVfYmVnaW4oKTsKKwogCXYtPnNyX2V4aXRfdGltZSA9IGRjLT5kY25fc29jLT5zcl9leGl0X3RpbWU7CiAJdi0+c3JfZW50ZXJfcGx1c19leGl0X3RpbWUgPSBkYy0+ZGNuX3NvYy0+c3JfZW50ZXJfcGx1c19leGl0X3RpbWU7CiAJdi0+dXJnZW50X2xhdGVuY3kgPSBkYy0+ZGNuX3NvYy0+dXJnZW50X2xhdGVuY3k7CkBAIC0xMjY4LDcgKzEyODAsNyBAQCBib29sIGRjbl92YWxpZGF0ZV9iYW5kd2lkdGgoCiAJUEVSRk9STUFOQ0VfVFJBQ0VfRU5EKCk7CiAJQldfVkFMX1RSQUNFX0ZJTklTSCgpOwogCi0JaWYgKGJ3X2xpbWl0X3Bhc3MgJiYgdi0+dm9sdGFnZV9sZXZlbCAhPSA1KQorCWlmIChid19saW1pdF9wYXNzICYmIHYtPnZvbHRhZ2VfbGV2ZWwgPD0gZ2V0X2hpZ2hlc3RfYWxsb3dlZF92b2x0YWdlX2xldmVsKGRjLT5jdHgtPmFzaWNfaWQuaHdfaW50ZXJuYWxfcmV2KSkKIAkJcmV0dXJuIHRydWU7CiAJZWxzZQogCQlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL01ha2VmaWxlCmluZGV4IDAwM2MyNzcuLmI4NjQ4NjljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9NYWtlZmlsZQpAQCAtODUsMyArODUsMTMgQEAKIEFNRF9ESVNQTEFZX0ZJTEVTICs9ICQoQU1EX0RBTF9DTEtfTUdSX0RDTjIwKQogZW5kaWYKIAoraWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMl8xCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIERDTjIxCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitDTEtfTUdSX0RDTjIxID0gcm5fY2xrX21nci5vIHJuX2Nsa19tZ3JfdmJpb3Nfc211Lm8KKworQU1EX0RBTF9DTEtfTUdSX0RDTjIxID0gJChhZGRwcmVmaXggJChBTUREQUxQQVRIKS9kYy9jbGtfbWdyL2RjbjIxLywkKENMS19NR1JfRENOMjEpKQorCitBTURfRElTUExBWV9GSUxFUyArPSAkKEFNRF9EQUxfQ0xLX01HUl9EQ04yMSkKK2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9jbGtfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9jbGtfbWdyLmMKaW5kZXggNmI4ZmM1Yy4uYzQzNzk3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvY2xrX21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2Nsa19tZ3IuYwpAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgImRjbjEwL3J2MV9jbGtfbWdyLmgiCiAjaW5jbHVkZSAiZGNuMTAvcnYyX2Nsa19tZ3IuaCIKICNpbmNsdWRlICJkY24yMC9kY24yMF9jbGtfbWdyLmgiCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisjaW5jbHVkZSAiZGNuMjEvcm5fY2xrX21nci5oIgorI2VuZGlmCiAKIAogaW50IGNsa19tZ3JfaGVscGVyX2dldF9hY3RpdmVfZGlzcGxheV9jbnQoCkBAIC0xMDgsNiArMTExLDEyIEBAIHN0cnVjdCBjbGtfbWdyICpkY19jbGtfbWdyX2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCBzdHJ1Y3QgcHBfc211X2Z1bmNzICpwCiAKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKIAljYXNlIEZBTUlMWV9SVjoKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKwkJaWYgKEFTSUNSRVZfSVNfUkVOT0lSKGFzaWNfaWQuaHdfaW50ZXJuYWxfcmV2KSkgeworCQkJcm5fY2xrX21ncl9jb25zdHJ1Y3QoY3R4LCBjbGtfbWdyLCBwcF9zbXUsIGRjY2cpOworCQkJYnJlYWs7CisJCX0KKyNlbmRpZgkvKiBEQ04yXzEgKi8KIAkJaWYgKEFTSUNSRVZfSVNfUkFWRU4yKGFzaWNfaWQuaHdfaW50ZXJuYWxfcmV2KSkgewogCQkJcnYyX2Nsa19tZ3JfY29uc3RydWN0KGN0eCwgY2xrX21nciwgcHBfc211KTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNlMTAwL2RjZV9jbGtfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY2UxMDAvZGNlX2Nsa19tZ3IuYwppbmRleCA4MTQ0NTBmLi5jNWM4YzQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY2UxMDAvZGNlX2Nsa19tZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY2UxMDAvZGNlX2Nsa19tZ3IuYwpAQCAtMjczLDE4ICsyNzMsMTIgQEAgc3RhdGljIHZvaWQgZGNlX2Nsb2NrX3JlYWRfaW50ZWdyYXRlZF9pbmZvKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyX2RjZSkKIHsKIAlzdHJ1Y3QgZGNfZGVidWdfb3B0aW9ucyAqZGVidWcgPSAmY2xrX21ncl9kY2UtPmJhc2UuY3R4LT5kYy0+ZGVidWc7CiAJc3RydWN0IGRjX2Jpb3MgKmJwID0gY2xrX21ncl9kY2UtPmJhc2UuY3R4LT5kY19iaW9zOwotCXN0cnVjdCBpbnRlZ3JhdGVkX2luZm8gaW5mbyA9IHsgeyB7IDAgfSB9IH07Ci0Jc3RydWN0IGRjX2Zpcm13YXJlX2luZm8gZndfaW5mbyA9IHsgeyAwIH0gfTsKIAlpbnQgaTsKIAogCWlmIChicC0+aW50ZWdyYXRlZF9pbmZvKQotCQlpbmZvID0gKmJwLT5pbnRlZ3JhdGVkX2luZm87Ci0KLQljbGtfbWdyX2RjZS0+ZGVudGlzdF92Y29fZnJlcV9raHogPSBpbmZvLmRlbnRpc3RfdmNvX2ZyZXE7CisJCWNsa19tZ3JfZGNlLT5kZW50aXN0X3Zjb19mcmVxX2toeiA9IGJwLT5pbnRlZ3JhdGVkX2luZm8tPmRlbnRpc3RfdmNvX2ZyZXE7CiAJaWYgKGNsa19tZ3JfZGNlLT5kZW50aXN0X3Zjb19mcmVxX2toeiA9PSAwKSB7Ci0JCWJwLT5mdW5jcy0+Z2V0X2Zpcm13YXJlX2luZm8oYnAsICZmd19pbmZvKTsKLQkJY2xrX21ncl9kY2UtPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID0KLQkJCWZ3X2luZm8uc211X2dwdV9wbGxfb3V0cHV0X2ZyZXE7CisJCWNsa19tZ3JfZGNlLT5kZW50aXN0X3Zjb19mcmVxX2toeiA9IGJwLT5md19pbmZvLnNtdV9ncHVfcGxsX291dHB1dF9mcmVxOwogCQlpZiAoY2xrX21ncl9kY2UtPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID09IDApCiAJCQljbGtfbWdyX2RjZS0+ZGVudGlzdF92Y29fZnJlcV9raHogPSAzNjAwMDAwOwogCX0KQEAgLTMxNyw5ICszMTEsMTAgQEAgc3RhdGljIHZvaWQgZGNlX2Nsb2NrX3JlYWRfaW50ZWdyYXRlZF9pbmZvKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyX2RjZSkKIAogCQkvKkRvIG5vdCBhbGxvdyBiYWQgVkJJT1MvU0JJT1MgdG8gb3ZlcnJpZGUgd2l0aCBpbnZhbGlkIHZhbHVlcywKIAkJICogY2hlY2sgZm9yID4gMTAwTUh6Ki8KLQkJaWYgKGluZm8uZGlzcF9jbGtfdm9sdGFnZVtpXS5tYXhfc3VwcG9ydGVkX2NsayA+PSAxMDAwMDApCi0JCQljbGtfbWdyX2RjZS0+bWF4X2Nsa3NfYnlfc3RhdGVbY2xrX3N0YXRlXS5kaXNwbGF5X2Nsa19raHogPQotCQkJCWluZm8uZGlzcF9jbGtfdm9sdGFnZVtpXS5tYXhfc3VwcG9ydGVkX2NsazsKKwkJaWYgKGJwLT5pbnRlZ3JhdGVkX2luZm8pCisJCQlpZiAoYnAtPmludGVncmF0ZWRfaW5mby0+ZGlzcF9jbGtfdm9sdGFnZVtpXS5tYXhfc3VwcG9ydGVkX2NsayA+PSAxMDAwMDApCisJCQkJY2xrX21ncl9kY2UtPm1heF9jbGtzX2J5X3N0YXRlW2Nsa19zdGF0ZV0uZGlzcGxheV9jbGtfa2h6ID0KKwkJCQkJYnAtPmludGVncmF0ZWRfaW5mby0+ZGlzcF9jbGtfdm9sdGFnZVtpXS5tYXhfc3VwcG9ydGVkX2NsazsKIAl9CiAKIAlpZiAoIWRlYnVnLT5kaXNhYmxlX2Rmc19ieXBhc3MgJiYgYnAtPmludGVncmF0ZWRfaW5mbykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjZTExMC9kY2UxMTBfY2xrX21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNlMTEwL2RjZTExMF9jbGtfbWdyLmMKaW5kZXggNWNjM2FjYy4uYjFlNjU3ZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjZTExMC9kY2UxMTBfY2xrX21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjZTExMC9kY2UxMTBfY2xrX21nci5jCkBAIC05OCwxMSArOTgsMTQgQEAgdWludDMyX3QgZGNlMTEwX2dldF9taW5fdmJsYW5rX3RpbWVfdXMoY29uc3Qgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KQogCQlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0gPSBjb250ZXh0LT5zdHJlYW1zW2pdOwogCQl1aW50MzJfdCB2ZXJ0aWNhbF9ibGFua19pbl9waXhlbHMgPSAwOwogCQl1aW50MzJfdCB2ZXJ0aWNhbF9ibGFua190aW1lID0gMDsKKwkJdWludDMyX3QgdmVydGljYWxfdG90YWxfbWluID0gc3RyZWFtLT50aW1pbmcudl90b3RhbDsKKwkJc3RydWN0IGRjX2NydGNfdGltaW5nX2FkanVzdCBhZGp1c3QgPSBzdHJlYW0tPmFkanVzdDsKKwkJaWYgKGFkanVzdC52X3RvdGFsX21heCAhPSBhZGp1c3Qudl90b3RhbF9taW4pCisJCQl2ZXJ0aWNhbF90b3RhbF9taW4gPSBhZGp1c3Qudl90b3RhbF9taW47CiAKIAkJdmVydGljYWxfYmxhbmtfaW5fcGl4ZWxzID0gc3RyZWFtLT50aW1pbmcuaF90b3RhbCAqCi0JCQkoc3RyZWFtLT50aW1pbmcudl90b3RhbAorCQkJKHZlcnRpY2FsX3RvdGFsX21pbgogCQkJIC0gc3RyZWFtLT50aW1pbmcudl9hZGRyZXNzYWJsZSk7Ci0KIAkJdmVydGljYWxfYmxhbmtfdGltZSA9IHZlcnRpY2FsX2JsYW5rX2luX3BpeGVscwogCQkJKiAxMDAwMCAvIHN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHo7CiAKQEAgLTE3MSw2ICsxNzQsMTAgQEAgdm9pZCBkY2UxMV9wcGxpYl9hcHBseV9kaXNwbGF5X3JlcXVpcmVtZW50cygKIAlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpCiB7CiAJc3RydWN0IGRtX3BwX2Rpc3BsYXlfY29uZmlndXJhdGlvbiAqcHBfZGlzcGxheV9jZmcgPSAmY29udGV4dC0+cHBfZGlzcGxheV9jZmc7CisJaW50IG1lbW9yeV90eXBlX211bHRpcGxpZXIgPSBNRU1PUllfVFlQRV9NVUxUSVBMSUVSX0NaOworCisJaWYgKGRjLT5id192YmlvcyAmJiBkYy0+YndfdmJpb3MtPm1lbW9yeV90eXBlID09IGJ3X2RlZl9oYm0pCisJCW1lbW9yeV90eXBlX211bHRpcGxpZXIgPSBNRU1PUllfVFlQRV9IQk07CiAKIAlwcF9kaXNwbGF5X2NmZy0+YWxsX2Rpc3BsYXlzX2luX3N5bmMgPQogCQljb250ZXh0LT5id19jdHguYncuZGNlLmFsbF9kaXNwbGF5c19pbl9zeW5jOwpAQCAtMTgzLDggKzE5MCwyMCBAQCB2b2lkIGRjZTExX3BwbGliX2FwcGx5X2Rpc3BsYXlfcmVxdWlyZW1lbnRzKAogCXBwX2Rpc3BsYXlfY2ZnLT5jcHVfcHN0YXRlX3NlcGFyYXRpb25fdGltZSA9CiAJCQljb250ZXh0LT5id19jdHguYncuZGNlLmJsYWNrb3V0X3JlY292ZXJ5X3RpbWVfdXM7CiAKLQlwcF9kaXNwbGF5X2NmZy0+bWluX21lbW9yeV9jbG9ja19raHogPSBjb250ZXh0LT5id19jdHguYncuZGNlLnljbGtfa2h6Ci0JCS8gTUVNT1JZX1RZUEVfTVVMVElQTElFUl9DWjsKKwkvKgorCSAqIFRPRE86IGRldGVybWluZSB3aGV0aGVyIHRoZSBiYW5kd2lkdGggaGFzIHJlYWNoZWQgbWVtb3J5J3MgbGltaXRhdGlvbgorCSAqICwgdGhlbiBjaGFuZ2UgbWluaW11bSBtZW1vcnkgY2xvY2sgYmFzZWQgb24gcmVhbC10aW1lIGJhbmR3aWR0aAorCSAqIGxpbWl0YXRpb24uCisJICovCisJaWYgKEFTSUNSRVZfSVNfVkVHQTIwX1AoZGMtPmN0eC0+YXNpY19pZC5od19pbnRlcm5hbF9yZXYpICYmIChjb250ZXh0LT5zdHJlYW1fY291bnQgPj0gMikpIHsKKwkJcHBfZGlzcGxheV9jZmctPm1pbl9tZW1vcnlfY2xvY2tfa2h6ID0gbWF4KHBwX2Rpc3BsYXlfY2ZnLT5taW5fbWVtb3J5X2Nsb2NrX2toeiwKKwkJCQkJCQkgICAodWludDMyX3QpIGRpdjY0X3M2NCgKKwkJCQkJCQkJICAgZGl2NjRfczY0KGRjLT5id192Ymlvcy0+aGlnaF95Y2xrLnZhbHVlLAorCQkJCQkJCQkJICAgICBtZW1vcnlfdHlwZV9tdWx0aXBsaWVyKSwgMTAwMDApKTsKKwl9IGVsc2UgeworCQlwcF9kaXNwbGF5X2NmZy0+bWluX21lbW9yeV9jbG9ja19raHogPSBjb250ZXh0LT5id19jdHguYncuZGNlLnljbGtfa2h6CisJCQkvIG1lbW9yeV90eXBlX211bHRpcGxpZXI7CisJfQogCiAJcHBfZGlzcGxheV9jZmctPm1pbl9lbmdpbmVfY2xvY2tfa2h6ID0gZGV0ZXJtaW5lX3NjbGtfZnJvbV9ib3VuZGluZ19ib3goCiAJCQlkYywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjbjEwL3J2MV9jbGtfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY24xMC9ydjFfY2xrX21nci5jCmluZGV4IGNhZjhhNGEuLjQ3ZjUyOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjbjEwL3J2MV9jbGtfbWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMTAvcnYxX2Nsa19tZ3IuYwpAQCAtMzQsNiArMzQsMTEgQEAKICNpbmNsdWRlICJydjFfY2xrX21ncl92Ymlvc19zbXUuaCIKICNpbmNsdWRlICJydjFfY2xrX21ncl9jbGsuaCIKIAordm9pZCBydjFfaW5pdF9jbG9ja3Moc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IpCit7CisJbWVtc2V0KCYoY2xrX21nci0+Y2xrcyksIDAsIHNpemVvZihzdHJ1Y3QgZGNfY2xvY2tzKSk7Cit9CisKIHN0YXRpYyBpbnQgcnYxX2RldGVybWluZV9kcHBjbGtfdGhyZXNob2xkKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBzdHJ1Y3QgZGNfY2xvY2tzICpuZXdfY2xvY2tzKQogewogCWJvb2wgcmVxdWVzdF9kcHBfZGl2ID0gbmV3X2Nsb2Nrcy0+ZGlzcGNsa19raHogPiBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6OwpAQCAtMjMyLDYgKzIzNyw3IEBAIHN0YXRpYyB2b2lkIHJ2MV9lbmFibGVfcG1lX3dhKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UpCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX21ncl9mdW5jcyBydjFfY2xrX2Z1bmNzID0geworCS5pbml0X2Nsb2NrcyA9IHJ2MV9pbml0X2Nsb2NrcywKIAkuZ2V0X2RwX3JlZl9jbGtfZnJlcXVlbmN5ID0gZGNlMTJfZ2V0X2RwX3JlZl9mcmVxX2toeiwKIAkudXBkYXRlX2Nsb2NrcyA9IHJ2MV91cGRhdGVfY2xvY2tzLAogCS5lbmFibGVfcG1lX3dhID0gcnYxX2VuYWJsZV9wbWVfd2EsCkBAIC0yNDYsNyArMjUyLDYgQEAgdm9pZCBydjFfY2xrX21ncl9jb25zdHJ1Y3Qoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa18KIHsKIAlzdHJ1Y3QgZGNfZGVidWdfb3B0aW9ucyAqZGVidWcgPSAmY3R4LT5kYy0+ZGVidWc7CiAJc3RydWN0IGRjX2Jpb3MgKmJwID0gY3R4LT5kY19iaW9zOwotCXN0cnVjdCBkY19maXJtd2FyZV9pbmZvIGZ3X2luZm8gPSB7IHsgMCB9IH07CiAKIAljbGtfbWdyLT5iYXNlLmN0eCA9IGN0eDsKIAljbGtfbWdyLT5wcF9zbXUgPSBwcF9zbXU7CkBAIC0yNjIsOSArMjY3LDggQEAgdm9pZCBydjFfY2xrX21ncl9jb25zdHJ1Y3Qoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa18KIAogCWlmIChicC0+aW50ZWdyYXRlZF9pbmZvKQogCQljbGtfbWdyLT5kZW50aXN0X3Zjb19mcmVxX2toeiA9IGJwLT5pbnRlZ3JhdGVkX2luZm8tPmRlbnRpc3RfdmNvX2ZyZXE7Ci0JaWYgKGNsa19tZ3ItPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID09IDApIHsKLQkJYnAtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbyhicCwgJmZ3X2luZm8pOwotCQljbGtfbWdyLT5kZW50aXN0X3Zjb19mcmVxX2toeiA9IGZ3X2luZm8uc211X2dwdV9wbGxfb3V0cHV0X2ZyZXE7CisJaWYgKGJwLT5md19pbmZvX3ZhbGlkICYmIGNsa19tZ3ItPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID09IDApIHsKKwkJY2xrX21nci0+ZGVudGlzdF92Y29fZnJlcV9raHogPSBicC0+ZndfaW5mby5zbXVfZ3B1X3BsbF9vdXRwdXRfZnJlcTsKIAkJaWYgKGNsa19tZ3ItPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID09IDApCiAJCQljbGtfbWdyLT5kZW50aXN0X3Zjb19mcmVxX2toeiA9IDM2MDAwMDA7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjAvZGNuMjBfY2xrX21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjAvZGNuMjBfY2xrX21nci5jCmluZGV4IDUwYmZiNTkyLi4zZThhYzMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMC9kY24yMF9jbGtfbWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjAvZGNuMjBfY2xrX21nci5jCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiZGNjZy5oIgogI2luY2x1ZGUgImNsa19tZ3JfaW50ZXJuYWwuaCIKIAotCi0jaW5jbHVkZSAiZGNuMjAvZGNuMjBfY2xrX21nci5oIgogI2luY2x1ZGUgImRjZTEwMC9kY2VfY2xrX21nci5oIgogI2luY2x1ZGUgInJlZ19oZWxwZXIuaCIKICNpbmNsdWRlICJjb3JlX3R5cGVzLmgiCkBAIC0xMDYsNyArMTA0LDYgQEAgdm9pZCBkY24yMF91cGRhdGVfY2xvY2tzX3VwZGF0ZV9kcHBfZHRvKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLAogewogCWludCBpOwogCi0JY2xrX21nci0+ZGNjZy0+cmVmX2RwcGNsayA9IGNsa19tZ3ItPmJhc2UuY2xrcy5kcHBjbGtfa2h6OwogCWZvciAoaSA9IDA7IGkgPCBjbGtfbWdyLT5iYXNlLmN0eC0+ZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspIHsKIAkJaW50IGRwcF9pbnN0LCBkcHBjbGtfa2h6OwogCkBAIC0xMTYsMjggKzExMyw3NSBAQCB2b2lkIGRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRlX2RwcF9kdG8oc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsCiAJCWRwcF9pbnN0ID0gY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXS5wbGFuZV9yZXMuZHBwLT5pbnN0OwogCQlkcHBjbGtfa2h6ID0gY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXS5wbGFuZV9yZXMuYncuZHBwY2xrX2toejsKIAkJY2xrX21nci0+ZGNjZy0+ZnVuY3MtPnVwZGF0ZV9kcHBfZHRvKAotCQkJCWNsa19tZ3ItPmRjY2csIGRwcF9pbnN0LCBkcHBjbGtfa2h6KTsKKwkJCQljbGtfbWdyLT5kY2NnLCBkcHBfaW5zdCwgZHBwY2xrX2toeiwgZmFsc2UpOwogCX0KIH0KIAotdm9pZCBkY24yMF91cGRhdGVfY2xvY2tzX3VwZGF0ZV9kZW50aXN0KHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyKQorc3RhdGljIHZvaWQgdXBkYXRlX2dsb2JhbF9kcHBfY2xrKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCB1bnNpZ25lZCBpbnQga2h6KQogewogCWludCBkcHBfZGl2aWRlciA9IERFTlRJU1RfRElWSURFUl9SQU5HRV9TQ0FMRV9GQUNUT1IKLQkJCSogY2xrX21nci0+ZGVudGlzdF92Y29fZnJlcV9raHogLyBjbGtfbWdyLT5iYXNlLmNsa3MuZHBwY2xrX2toejsKLQlpbnQgZGlzcF9kaXZpZGVyID0gREVOVElTVF9ESVZJREVSX1JBTkdFX1NDQUxFX0ZBQ1RPUgotCQkJKiBjbGtfbWdyLT5kZW50aXN0X3Zjb19mcmVxX2toeiAvIGNsa19tZ3ItPmJhc2UuY2xrcy5kaXNwY2xrX2toejsKKwkJCSogY2xrX21nci0+ZGVudGlzdF92Y29fZnJlcV9raHogLyBraHo7CiAKIAl1aW50MzJfdCBkcHBjbGtfd2RpdmlkZXIgPSBkZW50aXN0X2dldF9kaWRfZnJvbV9kaXZpZGVyKGRwcF9kaXZpZGVyKTsKLQl1aW50MzJfdCBkaXNwY2xrX3dkaXZpZGVyID0gZGVudGlzdF9nZXRfZGlkX2Zyb21fZGl2aWRlcihkaXNwX2RpdmlkZXIpOwogCiAJUkVHX1VQREFURShERU5USVNUX0RJU1BDTEtfQ05UTCwKLQkJCURFTlRJU1RfRElTUENMS19XRElWSURFUiwgZGlzcGNsa193ZGl2aWRlcik7Ci0vLwlSRUdfV0FJVChERU5USVNUX0RJU1BDTEtfQ05UTCwgREVOVElTVF9ESVNQQ0xLX0NIR19ET05FLCAxLCA1LCAxMDApOwotCVJFR19VUERBVEUoREVOVElTVF9ESVNQQ0xLX0NOVEwsCiAJCQlERU5USVNUX0RQUENMS19XRElWSURFUiwgZHBwY2xrX3dkaXZpZGVyKTsKIAlSRUdfV0FJVChERU5USVNUX0RJU1BDTEtfQ05UTCwgREVOVElTVF9EUFBDTEtfQ0hHX0RPTkUsIDEsIDUsIDEwMCk7CiB9CiAKK3N0YXRpYyB2b2lkIHVwZGF0ZV9kaXNwbGF5X2NsayhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgdW5zaWduZWQgaW50IGtoeikKK3sKKwlpbnQgZGlzcF9kaXZpZGVyID0gREVOVElTVF9ESVZJREVSX1JBTkdFX1NDQUxFX0ZBQ1RPUgorCQkJKiBjbGtfbWdyLT5kZW50aXN0X3Zjb19mcmVxX2toeiAvIGtoejsKKworCXVpbnQzMl90IGRpc3BjbGtfd2RpdmlkZXIgPSBkZW50aXN0X2dldF9kaWRfZnJvbV9kaXZpZGVyKGRpc3BfZGl2aWRlcik7CisKKwlSRUdfVVBEQVRFKERFTlRJU1RfRElTUENMS19DTlRMLAorCQkJREVOVElTVF9ESVNQQ0xLX1dESVZJREVSLCBkaXNwY2xrX3dkaXZpZGVyKTsKK30KKworc3RhdGljIHZvaWQgcmVxdWVzdF92b2x0YWdlX2FuZF9wcm9ncmFtX2Rpc3BfY2xrKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UsIHVuc2lnbmVkIGludCBraHopCit7CisJc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IgPSBUT19DTEtfTUdSX0lOVEVSTkFMKGNsa19tZ3JfYmFzZSk7CisJc3RydWN0IGRjICpkYyA9IGNsa19tZ3JfYmFzZS0+Y3R4LT5kYzsKKwlzdHJ1Y3QgcHBfc211X2Z1bmNzX252ICpwcF9zbXUgPSBOVUxMOworCWJvb2wgZ29pbmdfdXAgPSBjbGtfbWdyLT5iYXNlLmNsa3MuZGlzcGNsa19raHogPCBraHo7CisKKwlpZiAoZGMtPnJlc19wb29sLT5wcF9zbXUpCisJCXBwX3NtdSA9ICZkYy0+cmVzX3Bvb2wtPnBwX3NtdS0+bnZfZnVuY3M7CisKKwljbGtfbWdyLT5iYXNlLmNsa3MuZGlzcGNsa19raHogPSBraHo7CisKKwlpZiAoZ29pbmdfdXAgJiYgcHBfc211ICYmIHBwX3NtdS0+c2V0X3ZvbHRhZ2VfYnlfZnJlcSkKKwkJcHBfc211LT5zZXRfdm9sdGFnZV9ieV9mcmVxKCZwcF9zbXUtPnBwX3NtdSwgUFBfU01VX05WX0RJU1BDTEssIGNsa19tZ3JfYmFzZS0+Y2xrcy5kaXNwY2xrX2toeiAvIDEwMDApOworCisJdXBkYXRlX2Rpc3BsYXlfY2xrKGNsa19tZ3IsIGtoeik7CisKKwlpZiAoIWdvaW5nX3VwICYmIHBwX3NtdSAmJiBwcF9zbXUtPnNldF92b2x0YWdlX2J5X2ZyZXEpCisJCXBwX3NtdS0+c2V0X3ZvbHRhZ2VfYnlfZnJlcSgmcHBfc211LT5wcF9zbXUsIFBQX1NNVV9OVl9ESVNQQ0xLLCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGlzcGNsa19raHogLyAxMDAwKTsKK30KKworc3RhdGljIHZvaWQgcmVxdWVzdF92b2x0YWdlX2FuZF9wcm9ncmFtX2dsb2JhbF9kcHBfY2xrKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UsIHVuc2lnbmVkIGludCBraHopCit7CisJc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IgPSBUT19DTEtfTUdSX0lOVEVSTkFMKGNsa19tZ3JfYmFzZSk7CisJc3RydWN0IGRjICpkYyA9IGNsa19tZ3JfYmFzZS0+Y3R4LT5kYzsKKwlzdHJ1Y3QgcHBfc211X2Z1bmNzX252ICpwcF9zbXUgPSBOVUxMOworCWJvb2wgZ29pbmdfdXAgPSBjbGtfbWdyLT5iYXNlLmNsa3MuZHBwY2xrX2toeiA8IGtoejsKKworCWlmIChkYy0+cmVzX3Bvb2wtPnBwX3NtdSkKKwkJcHBfc211ID0gJmRjLT5yZXNfcG9vbC0+cHBfc211LT5udl9mdW5jczsKKworCWNsa19tZ3ItPmJhc2UuY2xrcy5kcHBjbGtfa2h6ID0ga2h6OworCWNsa19tZ3ItPmRjY2ctPnJlZl9kcHBjbGsgPSBraHo7CisKKwlpZiAoZ29pbmdfdXAgJiYgcHBfc211ICYmIHBwX3NtdS0+c2V0X3ZvbHRhZ2VfYnlfZnJlcSkKKwkJcHBfc211LT5zZXRfdm9sdGFnZV9ieV9mcmVxKCZwcF9zbXUtPnBwX3NtdSwgUFBfU01VX05WX1BJWEVMQ0xLLCBjbGtfbWdyX2Jhc2UtPmNsa3MuZHBwY2xrX2toeiAvIDEwMDApOworCisJdXBkYXRlX2dsb2JhbF9kcHBfY2xrKGNsa19tZ3IsIGtoeik7CisKKwlpZiAoIWdvaW5nX3VwICYmIHBwX3NtdSAmJiBwcF9zbXUtPnNldF92b2x0YWdlX2J5X2ZyZXEpCisJCXBwX3NtdS0+c2V0X3ZvbHRhZ2VfYnlfZnJlcSgmcHBfc211LT5wcF9zbXUsIFBQX1NNVV9OVl9QSVhFTENMSywgY2xrX21ncl9iYXNlLT5jbGtzLmRwcGNsa19raHogLyAxMDAwKTsKK30KIAogdm9pZCBkY24yX3VwZGF0ZV9jbG9ja3Moc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwKIAkJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKQEAgLTE0OCwxMiArMTkyLDIxIEBAIHZvaWQgZGNuMl91cGRhdGVfY2xvY2tzKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UsCiAJc3RydWN0IGRjICpkYyA9IGNsa19tZ3JfYmFzZS0+Y3R4LT5kYzsKIAlzdHJ1Y3QgcHBfc211X2Z1bmNzX252ICpwcF9zbXUgPSBOVUxMOwogCWludCBkaXNwbGF5X2NvdW50OwotCWJvb2wgdXBkYXRlX2RwcGNsayA9IGZhbHNlOwogCWJvb2wgdXBkYXRlX2Rpc3BjbGsgPSBmYWxzZTsKIAlib29sIGVudGVyX2Rpc3BsYXlfb2ZmID0gZmFsc2U7Ci0JYm9vbCBkcHBfY2xvY2tfbG93ZXJlZCA9IGZhbHNlOwogCXN0cnVjdCBkbWN1ICpkbWN1ID0gY2xrX21ncl9iYXNlLT5jdHgtPmRjLT5yZXNfcG9vbC0+ZG1jdTsKKwlib29sIGZvcmNlX3Jlc2V0ID0gZmFsc2U7CisJaW50IGk7CiAKKwlpZiAoZGMtPndvcmtfYXJvdW5kcy5za2lwX2Nsb2NrX3VwZGF0ZSkKKwkJcmV0dXJuOworCisJaWYgKGNsa19tZ3JfYmFzZS0+Y2xrcy5kaXNwY2xrX2toeiA9PSAwIHx8CisJCWRjLT5kZWJ1Zy5mb3JjZV9jbG9ja19tb2RlICYgMHgxKSB7CisJCS8vdGhpcyBpcyBmcm9tIHJlc3VtZSBvciBib290IHVwLCBpZiBmb3JjZWRfY2xvY2sgY2ZnIG9wdGlvbiB1c2VkLCB3ZSBieXBhc3MgcHJvZ3JhbSBkaXNwY2xrIGFuZCBEUFBDTEssIGJ1dCBuZWVkIHNldCB0aGVtIGZvciBTMy4KKwkJZm9yY2VfcmVzZXQgPSB0cnVlOworCQkvL2ZvcmNlX2Nsb2NrX21vZGUgMHgxOiAgZm9yY2UgcmVzZXQgdGhlIGNsb2NrIGV2ZW4gaXQgaXMgdGhlIHNhbWUgY2xvY2sgYXMgbG9uZyBhcyBpdCBpcyBpbiBQYXNzaXZlIGxldmVsLgorCX0KIAlkaXNwbGF5X2NvdW50ID0gY2xrX21ncl9oZWxwZXJfZ2V0X2FjdGl2ZV9kaXNwbGF5X2NudChkYywgY29udGV4dCk7CiAJaWYgKGRjLT5yZXNfcG9vbC0+cHBfc211KQogCQlwcF9zbXUgPSAmZGMtPnJlc19wb29sLT5wcF9zbXUtPm52X2Z1bmNzOwpAQCAtMTcyLDYgKzIyNSw3IEBAIHZvaWQgZGNuMl91cGRhdGVfY2xvY2tzKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UsCiAJCQlwcF9zbXUtPnNldF92b2x0YWdlX2J5X2ZyZXEoJnBwX3NtdS0+cHBfc211LCBQUF9TTVVfTlZfUEhZQ0xLLCBjbGtfbWdyX2Jhc2UtPmNsa3MucGh5Y2xrX2toeiAvIDEwMDApOwogCX0KIAorCiAJaWYgKGRjLT5kZWJ1Zy5mb3JjZV9taW5fZGNmY2xrX21oeiA+IDApCiAJCW5ld19jbG9ja3MtPmRjZmNsa19raHogPSAobmV3X2Nsb2Nrcy0+ZGNmY2xrX2toeiA+IChkYy0+ZGVidWcuZm9yY2VfbWluX2RjZmNsa19taHogKiAxMDAwKSkgPwogCQkJCW5ld19jbG9ja3MtPmRjZmNsa19raHogOiAoZGMtPmRlYnVnLmZvcmNlX21pbl9kY2ZjbGtfbWh6ICogMTAwMCk7CkBAIC0xOTYsMTAgKzI1MCwxMyBAQCB2b2lkIGRjbjJfdXBkYXRlX2Nsb2NrcyhzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlLAogCX0KIAogCWlmIChzaG91bGRfdXBkYXRlX3BzdGF0ZV9zdXBwb3J0KHNhZmVfdG9fbG93ZXIsIG5ld19jbG9ja3MtPnBfc3RhdGVfY2hhbmdlX3N1cHBvcnQsIGNsa19tZ3JfYmFzZS0+Y2xrcy5wX3N0YXRlX2NoYW5nZV9zdXBwb3J0KSkgeworCQljbGtfbWdyX2Jhc2UtPmNsa3MucHJldl9wX3N0YXRlX2NoYW5nZV9zdXBwb3J0ID0gY2xrX21ncl9iYXNlLT5jbGtzLnBfc3RhdGVfY2hhbmdlX3N1cHBvcnQ7CisKIAkJY2xrX21ncl9iYXNlLT5jbGtzLnBfc3RhdGVfY2hhbmdlX3N1cHBvcnQgPSBuZXdfY2xvY2tzLT5wX3N0YXRlX2NoYW5nZV9zdXBwb3J0OwogCQlpZiAocHBfc211ICYmIHBwX3NtdS0+c2V0X3BzdGF0ZV9oYW5kc2hha2Vfc3VwcG9ydCkKIAkJCXBwX3NtdS0+c2V0X3BzdGF0ZV9oYW5kc2hha2Vfc3VwcG9ydCgmcHBfc211LT5wcF9zbXUsIGNsa19tZ3JfYmFzZS0+Y2xrcy5wX3N0YXRlX2NoYW5nZV9zdXBwb3J0KTsKIAl9CisJY2xrX21ncl9iYXNlLT5jbGtzLnByZXZfcF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydCA9IGNsa19tZ3JfYmFzZS0+Y2xrcy5wX3N0YXRlX2NoYW5nZV9zdXBwb3J0OwogCiAJaWYgKHNob3VsZF9zZXRfY2xvY2soc2FmZV90b19sb3dlciwgbmV3X2Nsb2Nrcy0+ZHJhbWNsa19raHosIGNsa19tZ3JfYmFzZS0+Y2xrcy5kcmFtY2xrX2toeikpIHsKIAkJY2xrX21ncl9iYXNlLT5jbGtzLmRyYW1jbGtfa2h6ID0gbmV3X2Nsb2Nrcy0+ZHJhbWNsa19raHo7CkBAIC0yMDcsMzUgKzI2NCw0OCBAQCB2b2lkIGRjbjJfdXBkYXRlX2Nsb2NrcyhzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlLAogCQkJcHBfc211LT5zZXRfaGFyZF9taW5fdWNsa19ieV9mcmVxKCZwcF9zbXUtPnBwX3NtdSwgY2xrX21ncl9iYXNlLT5jbGtzLmRyYW1jbGtfa2h6IC8gMTAwMCk7CiAJfQogCi0JaWYgKHNob3VsZF9zZXRfY2xvY2soc2FmZV90b19sb3dlciwgbmV3X2Nsb2Nrcy0+ZHBwY2xrX2toeiwgY2xrX21nci0+YmFzZS5jbGtzLmRwcGNsa19raHopKSB7Ci0JCWlmIChjbGtfbWdyLT5iYXNlLmNsa3MuZHBwY2xrX2toeiA+IG5ld19jbG9ja3MtPmRwcGNsa19raHopCi0JCQlkcHBfY2xvY2tfbG93ZXJlZCA9IHRydWU7Ci0JCWNsa19tZ3ItPmJhc2UuY2xrcy5kcHBjbGtfa2h6ID0gbmV3X2Nsb2Nrcy0+ZHBwY2xrX2toejsKLQotCQlpZiAocHBfc211ICYmIHBwX3NtdS0+c2V0X3ZvbHRhZ2VfYnlfZnJlcSkKLQkJCXBwX3NtdS0+c2V0X3ZvbHRhZ2VfYnlfZnJlcSgmcHBfc211LT5wcF9zbXUsIFBQX1NNVV9OVl9QSVhFTENMSywgY2xrX21ncl9iYXNlLT5jbGtzLmRwcGNsa19raHogLyAxMDAwKTsKLQotCQl1cGRhdGVfZHBwY2xrID0gdHJ1ZTsKLQl9Ci0KLQlpZiAoc2hvdWxkX3NldF9jbG9jayhzYWZlX3RvX2xvd2VyLCBuZXdfY2xvY2tzLT5kaXNwY2xrX2toeiwgY2xrX21ncl9iYXNlLT5jbGtzLmRpc3BjbGtfa2h6KSkgewotCQljbGtfbWdyX2Jhc2UtPmNsa3MuZGlzcGNsa19raHogPSBuZXdfY2xvY2tzLT5kaXNwY2xrX2toejsKLQkJaWYgKHBwX3NtdSAmJiBwcF9zbXUtPnNldF92b2x0YWdlX2J5X2ZyZXEpCi0JCQlwcF9zbXUtPnNldF92b2x0YWdlX2J5X2ZyZXEoJnBwX3NtdS0+cHBfc211LCBQUF9TTVVfTlZfRElTUENMSywgY2xrX21ncl9iYXNlLT5jbGtzLmRpc3BjbGtfa2h6IC8gMTAwMCk7Ci0KLQkJdXBkYXRlX2Rpc3BjbGsgPSB0cnVlOwotCX0KIAlpZiAoZGMtPmNvbmZpZy5mb3JjZWRfY2xvY2tzID09IGZhbHNlKSB7Ci0JCWlmIChkcHBfY2xvY2tfbG93ZXJlZCkgewotCQkJLy8gaWYgY2xvY2sgaXMgYmVpbmcgbG93ZXJlZCwgaW5jcmVhc2UgRFRPIGJlZm9yZSBsb3dlcmluZyByZWZjbGsKLQkJCWRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRlX2RwcF9kdG8oY2xrX21nciwgY29udGV4dCk7Ci0JCQlkY24yMF91cGRhdGVfY2xvY2tzX3VwZGF0ZV9kZW50aXN0KGNsa19tZ3IpOworCQkvLyBGaXJzdCB1cGRhdGUgZGlzcGxheSBjbG9jaworCQlpZiAoc2hvdWxkX3NldF9jbG9jayhzYWZlX3RvX2xvd2VyLCBuZXdfY2xvY2tzLT5kaXNwY2xrX2toeiwgY2xrX21ncl9iYXNlLT5jbGtzLmRpc3BjbGtfa2h6KSkKKwkJCXJlcXVlc3Rfdm9sdGFnZV9hbmRfcHJvZ3JhbV9kaXNwX2NsayhjbGtfbWdyX2Jhc2UsIG5ld19jbG9ja3MtPmRpc3BjbGtfa2h6KTsKKworCQkvLyBVcGRhdGluZyBEUFAgY2xvY2sgcmVxdWlyZXMgc29tZSBtb3JlIGxvZ2ljCisJCWlmICghc2FmZV90b19sb3dlcikgeworCQkJLy8gRm9yIHByZS1wcm9ncmFtbWluZywgd2UgbmVlZCB0byBtYWtlIHN1cmUgYW55IERQUCBjbG9jayB0aGF0IHdpbGwgZ28gdXAgaGFzIHRvIGdvIHVwCisKKwkJCS8vIEZpcnN0IHJhaXNlIHRoZSBnbG9iYWwgcmVmZXJlbmNlIGlmIG5lZWRlZAorCQkJaWYgKG5ld19jbG9ja3MtPmRwcGNsa19raHogPiBjbGtfbWdyX2Jhc2UtPmNsa3MuZHBwY2xrX2toeikKKwkJCQlyZXF1ZXN0X3ZvbHRhZ2VfYW5kX3Byb2dyYW1fZ2xvYmFsX2RwcF9jbGsoY2xrX21ncl9iYXNlLCBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6KTsKKworCQkJLy8gVGhlbiByYWlzZSBhbnkgZGl2aWRlcnMgdGhhdCBuZWVkIHJhaXNpbmcKKwkJCWZvciAoaSA9IDA7IGkgPCBjbGtfbWdyLT5iYXNlLmN0eC0+ZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspIHsKKwkJCQlpbnQgZHBwX2luc3QsIGRwcGNsa19raHo7CisKKwkJCQlpZiAoIWNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV0ucGxhbmVfc3RhdGUpCisJCQkJCWNvbnRpbnVlOworCisJCQkJZHBwX2luc3QgPSBjb250ZXh0LT5yZXNfY3R4LnBpcGVfY3R4W2ldLnBsYW5lX3Jlcy5kcHAtPmluc3Q7CisJCQkJZHBwY2xrX2toeiA9IGNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV0ucGxhbmVfcmVzLmJ3LmRwcGNsa19raHo7CisKKwkJCQljbGtfbWdyLT5kY2NnLT5mdW5jcy0+dXBkYXRlX2RwcF9kdG8oY2xrX21nci0+ZGNjZywgZHBwX2luc3QsIGRwcGNsa19raHosIHRydWUpOworCQkJfQogCQl9IGVsc2UgewotCQkJLy8gaWYgY2xvY2sgaXMgYmVpbmcgcmFpc2VkLCBpbmNyZWFzZSByZWZjbGsgYmVmb3JlIGxvd2VyaW5nIERUTwotCQkJaWYgKHVwZGF0ZV9kcHBjbGsgfHwgdXBkYXRlX2Rpc3BjbGspCi0JCQkJZGNuMjBfdXBkYXRlX2Nsb2Nrc191cGRhdGVfZGVudGlzdChjbGtfbWdyKTsKLQkJCWlmICh1cGRhdGVfZHBwY2xrKQotCQkJCWRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRlX2RwcF9kdG8oY2xrX21nciwgY29udGV4dCk7CisJCQkvLyBGb3IgcG9zdC1wcm9ncmFtbWluZywgd2UgY2FuIGxvd2VyIHJlZiBjbGsgaWYgbmVlZGVkLCBhbmQgdW5jb25kaXRpb25hbGx5IHNldCBhbGwgdGhlIERUT3MKKworCQkJaWYgKG5ld19jbG9ja3MtPmRwcGNsa19raHogPCBjbGtfbWdyX2Jhc2UtPmNsa3MuZHBwY2xrX2toeikKKwkJCQlyZXF1ZXN0X3ZvbHRhZ2VfYW5kX3Byb2dyYW1fZ2xvYmFsX2RwcF9jbGsoY2xrX21ncl9iYXNlLCBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6KTsKKworCQkJZm9yIChpID0gMDsgaSA8IGNsa19tZ3ItPmJhc2UuY3R4LT5kYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykgeworCQkJCWludCBkcHBfaW5zdCwgZHBwY2xrX2toejsKKworCQkJCWlmICghY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXS5wbGFuZV9zdGF0ZSkKKwkJCQkJY29udGludWU7CisKKwkJCQlkcHBfaW5zdCA9IGNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV0ucGxhbmVfcmVzLmRwcC0+aW5zdDsKKwkJCQlkcHBjbGtfa2h6ID0gY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXS5wbGFuZV9yZXMuYncuZHBwY2xrX2toejsKKworCQkJCWNsa19tZ3ItPmRjY2ctPmZ1bmNzLT51cGRhdGVfZHBwX2R0byhjbGtfbWdyLT5kY2NnLCBkcHBfaW5zdCwgZHBwY2xrX2toeiwgZmFsc2UpOworCQkJfQogCQl9CiAJfQogCWlmICh1cGRhdGVfZGlzcGNsayAmJgpAQCAtMzAzLDYgKzM3Myw3IEBAIHZvaWQgZGNuMl9pbml0X2Nsb2NrcyhzdHJ1Y3QgY2xrX21nciAqY2xrX21ncikKIAltZW1zZXQoJihjbGtfbWdyLT5jbGtzKSwgMCwgc2l6ZW9mKHN0cnVjdCBkY19jbG9ja3MpKTsKIAkvLyBBc3N1bXB0aW9uIGlzIHRoYXQgYm9vdCBzdGF0ZSBhbHdheXMgc3VwcG9ydHMgcHN0YXRlCiAJY2xrX21nci0+Y2xrcy5wX3N0YXRlX2NoYW5nZV9zdXBwb3J0ID0gdHJ1ZTsKKwljbGtfbWdyLT5jbGtzLnByZXZfcF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydCA9IHRydWU7CiB9CiAKIHZvaWQgZGNuMl9lbmFibGVfcG1lX3dhKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UpCkBAIC0zMTgsMTEgKzM4OSwzMiBAQCB2b2lkIGRjbjJfZW5hYmxlX3BtZV93YShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlKQogCX0KIH0KIAordm9pZCBkY24yX2dldF9jbG9jayhzdHJ1Y3QgY2xrX21nciAqY2xrX21nciwKKwkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAorCQkJZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5cGUsCisJCQlzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpCit7CisKKwlpZiAoY2xvY2tfdHlwZSA9PSBEQ19DTE9DS19UWVBFX0RJU1BDTEspIHsKKwkJY2xvY2tfY2ZnLT5tYXhfY2xvY2tfa2h6ID0gY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsubWF4X3N1cHBvcnRlZF9kaXNwY2xrX2toejsKKwkJY2xvY2tfY2ZnLT5taW5fY2xvY2tfa2h6ID0gRENOX01JTklNVU1fRElTUENMS19LaHo7CisJCWNsb2NrX2NmZy0+Y3VycmVudF9jbG9ja19raHogPSBjbGtfbWdyLT5jbGtzLmRpc3BjbGtfa2h6OworCQljbG9ja19jZmctPmJ3X3JlcXVpcmVxdWlyZWRfY2xvY2tfa2h6ID0gY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsuYndfZGlzcGNsa19raHo7CisJfQorCWlmIChjbG9ja190eXBlID09IERDX0NMT0NLX1RZUEVfRFBQQ0xLKSB7CisJCWNsb2NrX2NmZy0+bWF4X2Nsb2NrX2toeiA9IGNvbnRleHQtPmJ3X2N0eC5idy5kY24uY2xrLm1heF9zdXBwb3J0ZWRfZHBwY2xrX2toejsKKwkJY2xvY2tfY2ZnLT5taW5fY2xvY2tfa2h6ID0gRENOX01JTklNVU1fRFBQQ0xLX0toejsKKwkJY2xvY2tfY2ZnLT5jdXJyZW50X2Nsb2NrX2toeiA9IGNsa19tZ3ItPmNsa3MuZHBwY2xrX2toejsKKwkJY2xvY2tfY2ZnLT5id19yZXF1aXJlcXVpcmVkX2Nsb2NrX2toeiA9IGNvbnRleHQtPmJ3X2N0eC5idy5kY24uY2xrLmJ3X2RwcGNsa19raHo7CisJfQorfQorCiBzdGF0aWMgc3RydWN0IGNsa19tZ3JfZnVuY3MgZGNuMl9mdW5jcyA9IHsKIAkuZ2V0X2RwX3JlZl9jbGtfZnJlcXVlbmN5ID0gZGNlMTJfZ2V0X2RwX3JlZl9mcmVxX2toeiwKIAkudXBkYXRlX2Nsb2NrcyA9IGRjbjJfdXBkYXRlX2Nsb2NrcywKIAkuaW5pdF9jbG9ja3MgPSBkY24yX2luaXRfY2xvY2tzLAotCS5lbmFibGVfcG1lX3dhID0gZGNuMl9lbmFibGVfcG1lX3dhCisJLmVuYWJsZV9wbWVfd2EgPSBkY24yX2VuYWJsZV9wbWVfd2EsCisJLmdldF9jbG9jayA9IGRjbjJfZ2V0X2Nsb2NrLAogfTsKIAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMC9kY24yMF9jbGtfbWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMC9kY24yMF9jbGtfbWdyLmgKaW5kZXggNTY2MWE1YTguLmFjMzFhOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIwL2RjbjIwX2Nsa19tZ3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMC9kY24yMF9jbGtfbWdyLmgKQEAgLTQ1LDQgKzQ1LDkgQEAgdm9pZCBkY24yMF9jbGtfbWdyX2NvbnN0cnVjdChzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogCiB1aW50MzJfdCBkZW50aXN0X2dldF9kaWRfZnJvbV9kaXZpZGVyKGludCBkaXZpZGVyKTsKIAordm9pZCBkY24yX2dldF9jbG9jayhzdHJ1Y3QgY2xrX21nciAqY2xrX21nciwKKwkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAorCQkJZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5cGUsCisJCQlzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOworCiAjZW5kaWYgLy9fX0RDTjIwX0NMS19NR1JfSF9fCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzg3Zjk0ZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYwpAQCAtMCwwICsxLDU5MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2luY2x1ZGUgImRjY2cuaCIKKyNpbmNsdWRlICJjbGtfbWdyX2ludGVybmFsLmgiCisKKworI2luY2x1ZGUgImRjbjIwL2RjbjIwX2Nsa19tZ3IuaCIKKyNpbmNsdWRlICJybl9jbGtfbWdyLmgiCisKKworI2luY2x1ZGUgImRjZTEwMC9kY2VfY2xrX21nci5oIgorI2luY2x1ZGUgInJuX2Nsa19tZ3JfdmJpb3Nfc211LmgiCisjaW5jbHVkZSAicmVnX2hlbHBlci5oIgorI2luY2x1ZGUgImNvcmVfdHlwZXMuaCIKKyNpbmNsdWRlICJkbV9oZWxwZXJzLmgiCisKKyNpbmNsdWRlICJhdG9tZmlybXdhcmUuaCIKKyNpbmNsdWRlICJjbGsvY2xrXzEwXzBfMl9vZmZzZXQuaCIKKyNpbmNsdWRlICJjbGsvY2xrXzEwXzBfMl9zaF9tYXNrLmgiCisjaW5jbHVkZSAicmVub2lyX2lwX29mZnNldC5oIgorCisKKy8qIENvbnN0YW50cyAqLworCisjZGVmaW5lIExQRERSX01FTV9SRVRSQUlOX0xBVEVOQ1kgNC45NzcgLyogTnVtYmVyIG9idGFpbmVkIGZyb20gTFBERFI0IFRyYWluaW5nIENvdW50ZXIgUmVxdWlyZW1lbnQgZG9jICovCisKKy8qIE1hY3JvcyAqLworCisjZGVmaW5lIFJFRyhyZWdfbmFtZSkgXAorCShDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50W21tICMjIHJlZ19uYW1lICMjIF9CQVNFX0lEWF0gKyBtbSAjIyByZWdfbmFtZSkKKwordm9pZCBybl91cGRhdGVfY2xvY2tzKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UsCisJCQlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCisJCQlib29sIHNhZmVfdG9fbG93ZXIpCit7CisJc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IgPSBUT19DTEtfTUdSX0lOVEVSTkFMKGNsa19tZ3JfYmFzZSk7CisJc3RydWN0IGRjX2Nsb2NrcyAqbmV3X2Nsb2NrcyA9ICZjb250ZXh0LT5id19jdHguYncuZGNuLmNsazsKKwlzdHJ1Y3QgZGMgKmRjID0gY2xrX21ncl9iYXNlLT5jdHgtPmRjOworCWludCBkaXNwbGF5X2NvdW50OworCWJvb2wgdXBkYXRlX2RwcGNsayA9IGZhbHNlOworCWJvb2wgdXBkYXRlX2Rpc3BjbGsgPSBmYWxzZTsKKwlib29sIGVudGVyX2Rpc3BsYXlfb2ZmID0gZmFsc2U7CisJYm9vbCBkcHBfY2xvY2tfbG93ZXJlZCA9IGZhbHNlOworCXN0cnVjdCBkbWN1ICpkbWN1ID0gY2xrX21ncl9iYXNlLT5jdHgtPmRjLT5yZXNfcG9vbC0+ZG1jdTsKKworCWRpc3BsYXlfY291bnQgPSBjbGtfbWdyX2hlbHBlcl9nZXRfYWN0aXZlX2Rpc3BsYXlfY250KGRjLCBjb250ZXh0KTsKKworCWlmIChkaXNwbGF5X2NvdW50ID09IDApCisJCWVudGVyX2Rpc3BsYXlfb2ZmID0gdHJ1ZTsKKworCWlmIChlbnRlcl9kaXNwbGF5X29mZiA9PSBzYWZlX3RvX2xvd2VyKSB7CisJCXJuX3ZiaW9zX3NtdV9zZXRfZGlzcGxheV9jb3VudChjbGtfbWdyLCBkaXNwbGF5X2NvdW50KTsKKwl9CisKKwlpZiAoc2hvdWxkX3NldF9jbG9jayhzYWZlX3RvX2xvd2VyLCBuZXdfY2xvY2tzLT5waHljbGtfa2h6LCBjbGtfbWdyX2Jhc2UtPmNsa3MucGh5Y2xrX2toeikpIHsKKwkJY2xrX21ncl9iYXNlLT5jbGtzLnBoeWNsa19raHogPSBuZXdfY2xvY2tzLT5waHljbGtfa2h6OworCQlybl92Ymlvc19zbXVfc2V0X3BoeWNsayhjbGtfbWdyLCBjbGtfbWdyX2Jhc2UtPmNsa3MucGh5Y2xrX2toeik7CisJfQorCisJaWYgKHNob3VsZF9zZXRfY2xvY2soc2FmZV90b19sb3dlciwgbmV3X2Nsb2Nrcy0+ZGNmY2xrX2toeiwgY2xrX21ncl9iYXNlLT5jbGtzLmRjZmNsa19raHopKSB7CisJCWNsa19tZ3JfYmFzZS0+Y2xrcy5kY2ZjbGtfa2h6ID0gbmV3X2Nsb2Nrcy0+ZGNmY2xrX2toejsKKwkJcm5fdmJpb3Nfc211X3NldF9oYXJkX21pbl9kY2ZjbGsoY2xrX21nciwgY2xrX21ncl9iYXNlLT5jbGtzLmRjZmNsa19raHopOworCX0KKworCWlmIChzaG91bGRfc2V0X2Nsb2NrKHNhZmVfdG9fbG93ZXIsCisJCQluZXdfY2xvY2tzLT5kY2ZjbGtfZGVlcF9zbGVlcF9raHosIGNsa19tZ3JfYmFzZS0+Y2xrcy5kY2ZjbGtfZGVlcF9zbGVlcF9raHopKSB7CisJCWNsa19tZ3JfYmFzZS0+Y2xrcy5kY2ZjbGtfZGVlcF9zbGVlcF9raHogPSBuZXdfY2xvY2tzLT5kY2ZjbGtfZGVlcF9zbGVlcF9raHo7CisJCXJuX3ZiaW9zX3NtdV9zZXRfbWluX2RlZXBfc2xlZXBfZGNmY2xrKGNsa19tZ3IsIGNsa19tZ3JfYmFzZS0+Y2xrcy5kY2ZjbGtfZGVlcF9zbGVlcF9raHopOworCX0KKworCWlmIChzaG91bGRfc2V0X2Nsb2NrKHNhZmVfdG9fbG93ZXIsIG5ld19jbG9ja3MtPmRwcGNsa19raHosIGNsa19tZ3ItPmJhc2UuY2xrcy5kcHBjbGtfa2h6KSkgeworCQlpZiAoY2xrX21nci0+YmFzZS5jbGtzLmRwcGNsa19raHogPiBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6KQorCQkJZHBwX2Nsb2NrX2xvd2VyZWQgPSB0cnVlOworCQljbGtfbWdyX2Jhc2UtPmNsa3MuZHBwY2xrX2toeiA9IG5ld19jbG9ja3MtPmRwcGNsa19raHo7CisJCXVwZGF0ZV9kcHBjbGsgPSB0cnVlOworCX0KKworCWlmIChzaG91bGRfc2V0X2Nsb2NrKHNhZmVfdG9fbG93ZXIsIG5ld19jbG9ja3MtPmRpc3BjbGtfa2h6LCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGlzcGNsa19raHopKSB7CisJCWNsa19tZ3JfYmFzZS0+Y2xrcy5kaXNwY2xrX2toeiA9IG5ld19jbG9ja3MtPmRpc3BjbGtfa2h6OworCQlybl92Ymlvc19zbXVfc2V0X2Rpc3BjbGsoY2xrX21nciwgY2xrX21ncl9iYXNlLT5jbGtzLmRpc3BjbGtfa2h6KTsKKworCQl1cGRhdGVfZGlzcGNsayA9IHRydWU7CisJfQorCisJaWYgKGRwcF9jbG9ja19sb3dlcmVkKSB7CisJCS8vIGlmIGNsb2NrIGlzIGJlaW5nIGxvd2VyZWQsIGluY3JlYXNlIERUTyBiZWZvcmUgbG93ZXJpbmcgcmVmY2xrCisJCWRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRlX2RwcF9kdG8oY2xrX21nciwgY29udGV4dCk7CisJCXJuX3ZiaW9zX3NtdV9zZXRfZHBwY2xrKGNsa19tZ3IsIGNsa19tZ3JfYmFzZS0+Y2xrcy5kcHBjbGtfa2h6KTsKKwl9IGVsc2UgeworCQkvLyBpZiBjbG9jayBpcyBiZWluZyByYWlzZWQsIGluY3JlYXNlIHJlZmNsayBiZWZvcmUgbG93ZXJpbmcgRFRPCisJCWlmICh1cGRhdGVfZHBwY2xrIHx8IHVwZGF0ZV9kaXNwY2xrKQorCQkJcm5fdmJpb3Nfc211X3NldF9kcHBjbGsoY2xrX21nciwgY2xrX21ncl9iYXNlLT5jbGtzLmRwcGNsa19raHopOworCQlpZiAodXBkYXRlX2RwcGNsaykKKwkJCWRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRlX2RwcF9kdG8oY2xrX21nciwgY29udGV4dCk7CisJfQorCisJaWYgKHVwZGF0ZV9kaXNwY2xrICYmCisJCQlkbWN1ICYmIGRtY3UtPmZ1bmNzLT5pc19kbWN1X2luaXRpYWxpemVkKGRtY3UpKSB7CisJCS8qdXBkYXRlIGRtY3UgZm9yIHdhaXRfbG9vcCBjb3VudCovCisJCWRtY3UtPmZ1bmNzLT5zZXRfcHNyX3dhaXRfbG9vcChkbWN1LAorCQkJY2xrX21ncl9iYXNlLT5jbGtzLmRpc3BjbGtfa2h6IC8gMTAwMCAvIDcpOworCX0KK30KKworCitzdGF0aWMgaW50IGdldF92Y29fZnJlcXVlbmN5X2Zyb21fcmVnKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyKQoreworCS8qIGdldCBGYk11bHQgdmFsdWUgKi8KKwlzdHJ1Y3QgZml4ZWQzMV8zMiBwbGxfcmVxOworCXVuc2lnbmVkIGludCBmYm11bHRfZnJhY192YWwgPSAwOworCXVuc2lnbmVkIGludCBmYm11bHRfaW50X3ZhbCA9IDA7CisKKworCS8qCisJICogUmVnaXN0ZXIgdmFsdWUgb2YgZmJtdWx0IGlzIGluIDguMTYgZm9ybWF0LCB3ZSBhcmUgY29udmVydGluZyB0byAzMS4zMgorCSAqIHRvIGxldmVyYWdlIHRoZSBmaXggcG9pbnQgb3BlcmF0aW9ucyBhdmFpbGFibGUgaW4gZHJpdmVyCisJICovCisKKwlSRUdfR0VUKENMSzFfQ0xLX1BMTF9SRVEsIEZiTXVsdF9mcmFjLCAmZmJtdWx0X2ZyYWNfdmFsKTsgLyogMTYgYml0IGZyYWN0aW9uYWwgcGFydCovCisJUkVHX0dFVChDTEsxX0NMS19QTExfUkVRLCBGYk11bHRfaW50LCAmZmJtdWx0X2ludF92YWwpOyAvKiA4IGJpdCBpbnRlZ2VyIHBhcnQgKi8KKworCXBsbF9yZXEgPSBkY19maXhwdF9mcm9tX2ludChmYm11bHRfaW50X3ZhbCk7CisKKwkvKgorCSAqIHNpbmNlIGZyYWN0aW9uYWwgcGFydCBpcyBvbmx5IDE2IGJpdCBpbiByZWdpc3RlciBkZWZpbml0aW9uIGJ1dCBpcyAzMiBiaXQKKwkgKiBpbiBvdXIgZml4IHBvaW50IGRlZmluaXRvbiwgbmVlZCB0byBzaGlmdCBsZWZ0IGJ5IDE2IHRvIG9idGFpbiBjb3JyZWN0IHZhbHVlCisJICovCisJcGxsX3JlcS52YWx1ZSB8PSBmYm11bHRfZnJhY192YWwgPDwgMTY7CisKKwkvKiBtdWx0aXBseSBieSBSRUZDTEsgcGVyaW9kICovCisJcGxsX3JlcSA9IGRjX2ZpeHB0X211bF9pbnQocGxsX3JlcSwgY2xrX21nci0+ZGZzX3JlZl9mcmVxX2toeik7CisKKwkvKiBpbnRlZ2VyIHBhcnQgaXMgbm93IFZDTyBmcmVxdWVuY3kgaW4ga0h6ICovCisJcmV0dXJuIGRjX2ZpeHB0X2Zsb29yKHBsbF9yZXEpOworfQorCitzdGF0aWMgdm9pZCBybl9kdW1wX2Nsa19yZWdpc3RlcnNfaW50ZXJuYWwoc3RydWN0IHJuX2Nsa19pbnRlcm5hbCAqaW50ZXJuYWwsIHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UpCit7CisJc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IgPSBUT19DTEtfTUdSX0lOVEVSTkFMKGNsa19tZ3JfYmFzZSk7CisKKwlpbnRlcm5hbC0+Q0xLMV9DTEszX0NVUlJFTlRfQ05UID0gUkVHX1JFQUQoQ0xLMV9DTEszX0NVUlJFTlRfQ05UKTsKKwlpbnRlcm5hbC0+Q0xLMV9DTEszX0JZUEFTU19DTlRMID0gUkVHX1JFQUQoQ0xLMV9DTEszX0JZUEFTU19DTlRMKTsKKworCWludGVybmFsLT5DTEsxX0NMSzNfRFNfQ05UTCA9IFJFR19SRUFEKENMSzFfQ0xLM19EU19DTlRMKTsJLy9kY2YgZGVlcCBzbGVlcCBkaXZpZGVyCisJaW50ZXJuYWwtPkNMSzFfQ0xLM19BTExPV19EUyA9IFJFR19SRUFEKENMSzFfQ0xLM19BTExPV19EUyk7CisKKwlpbnRlcm5hbC0+Q0xLMV9DTEsxX0NVUlJFTlRfQ05UID0gUkVHX1JFQUQoQ0xLMV9DTEsxX0NVUlJFTlRfQ05UKTsKKwlpbnRlcm5hbC0+Q0xLMV9DTEsxX0JZUEFTU19DTlRMID0gUkVHX1JFQUQoQ0xLMV9DTEsxX0JZUEFTU19DTlRMKTsKKworCWludGVybmFsLT5DTEsxX0NMSzJfQ1VSUkVOVF9DTlQgPSBSRUdfUkVBRChDTEsxX0NMSzJfQ1VSUkVOVF9DTlQpOworCWludGVybmFsLT5DTEsxX0NMSzJfQllQQVNTX0NOVEwgPSBSRUdfUkVBRChDTEsxX0NMSzJfQllQQVNTX0NOVEwpOworCisJaW50ZXJuYWwtPkNMSzFfQ0xLMF9DVVJSRU5UX0NOVCA9IFJFR19SRUFEKENMSzFfQ0xLMF9DVVJSRU5UX0NOVCk7CisJaW50ZXJuYWwtPkNMSzFfQ0xLMF9CWVBBU1NfQ05UTCA9IFJFR19SRUFEKENMSzFfQ0xLMF9CWVBBU1NfQ05UTCk7Cit9CisKKy8qIFRoaXMgZnVuY3Rpb24gY29sbGVjdCByYXcgY2xrIHJlZ2lzdGVyIHZhbHVlcyAqLworc3RhdGljIHZvaWQgcm5fZHVtcF9jbGtfcmVnaXN0ZXJzKHN0cnVjdCBjbGtfc3RhdGVfcmVnaXN0ZXJzX2FuZF9ieXBhc3MgKnJlZ3NfYW5kX2J5cGFzcywKKwkJc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwgc3RydWN0IGNsa19sb2dfaW5mbyAqbG9nX2luZm8pCit7CisJc3RydWN0IHJuX2Nsa19pbnRlcm5hbCBpbnRlcm5hbCA9IHswfTsKKwljaGFyICpieXBhc3NfY2xrc1s1XSA9IHsiMHgwIERGUyIsICIweDEgUkVGQ0xLIiwgIjB4MiBFUlJPUiIsICIweDMgNDAwIEZDSCIsICIweDQgNjAwIEZDSCJ9OworCXVuc2lnbmVkIGludCBjaGFyc19wcmludGVkID0gMDsKKwl1bnNpZ25lZCBpbnQgcmVtYWluaW5nX2J1ZmZlciA9IGxvZ19pbmZvLT5idWZTaXplOworCisJcm5fZHVtcF9jbGtfcmVnaXN0ZXJzX2ludGVybmFsKCZpbnRlcm5hbCwgY2xrX21ncl9iYXNlKTsKKworCXJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrID0gaW50ZXJuYWwuQ0xLMV9DTEszX0NVUlJFTlRfQ05UIC8gMTA7CisJcmVnc19hbmRfYnlwYXNzLT5kY2ZfZGVlcF9zbGVlcF9kaXZpZGVyID0gaW50ZXJuYWwuQ0xLMV9DTEszX0RTX0NOVEwgLyAxMDsKKwlyZWdzX2FuZF9ieXBhc3MtPmRjZl9kZWVwX3NsZWVwX2FsbG93ID0gaW50ZXJuYWwuQ0xLMV9DTEszX0FMTE9XX0RTOworCXJlZ3NfYW5kX2J5cGFzcy0+ZHByZWZjbGsgPSBpbnRlcm5hbC5DTEsxX0NMSzJfQ1VSUkVOVF9DTlQgLyAxMDsKKwlyZWdzX2FuZF9ieXBhc3MtPmRpc3BjbGsgPSBpbnRlcm5hbC5DTEsxX0NMSzBfQ1VSUkVOVF9DTlQgLyAxMDsKKwlyZWdzX2FuZF9ieXBhc3MtPmRwcGNsayA9IGludGVybmFsLkNMSzFfQ0xLMV9DVVJSRU5UX0NOVCAvIDEwOworCisJcmVnc19hbmRfYnlwYXNzLT5kcHBjbGtfYnlwYXNzID0gaW50ZXJuYWwuQ0xLMV9DTEsxX0JZUEFTU19DTlRMICYgMHgwMDA3OworCWlmIChyZWdzX2FuZF9ieXBhc3MtPmRwcGNsa19ieXBhc3MgPCAwIHx8IHJlZ3NfYW5kX2J5cGFzcy0+ZHBwY2xrX2J5cGFzcyA+IDQpCisJCXJlZ3NfYW5kX2J5cGFzcy0+ZHBwY2xrX2J5cGFzcyA9IDA7CisJcmVnc19hbmRfYnlwYXNzLT5kY2ZjbGtfYnlwYXNzID0gaW50ZXJuYWwuQ0xLMV9DTEszX0JZUEFTU19DTlRMICYgMHgwMDA3OworCWlmIChyZWdzX2FuZF9ieXBhc3MtPmRjZmNsa19ieXBhc3MgPCAwIHx8IHJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzcyA+IDQpCisJCXJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzcyA9IDA7CisJcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFzcyA9IGludGVybmFsLkNMSzFfQ0xLMF9CWVBBU1NfQ05UTCAmIDB4MDAwNzsKKwlpZiAocmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFzcyA8IDAgfHwgcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFzcyA+IDQpCisJCXJlZ3NfYW5kX2J5cGFzcy0+ZGlzcGNsa19ieXBhc3MgPSAwOworCXJlZ3NfYW5kX2J5cGFzcy0+ZHByZWZjbGtfYnlwYXNzID0gaW50ZXJuYWwuQ0xLMV9DTEsyX0JZUEFTU19DTlRMICYgMHgwMDA3OworCWlmIChyZWdzX2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA8IDAgfHwgcmVnc19hbmRfYnlwYXNzLT5kcHJlZmNsa19ieXBhc3MgPiA0KQorCQlyZWdzX2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA9IDA7CisKKwlpZiAobG9nX2luZm8tPmVuYWJsZWQpIHsKKwkJY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiY2xrX3R5cGUsY2xrX3ZhbHVlLGRlZXBzbGVlcF9jbnRsLGRlZXBzbGVlcF9hbGxvdyxieXBhc3NcbiIpOworCQlyZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CisJCSpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKKwkJbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKKworCQljaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJkY2ZjbGssJWQsJWQsJWQsJXNcbiIsCisJCQlyZWdzX2FuZF9ieXBhc3MtPmRjZmNsaywKKwkJCXJlZ3NfYW5kX2J5cGFzcy0+ZGNmX2RlZXBfc2xlZXBfZGl2aWRlciwKKwkJCXJlZ3NfYW5kX2J5cGFzcy0+ZGNmX2RlZXBfc2xlZXBfYWxsb3csCisJCQlieXBhc3NfY2xrc1soaW50KSByZWdzX2FuZF9ieXBhc3MtPmRjZmNsa19ieXBhc3NdKTsKKwkJcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOworCQkqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CisJCWxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CisKKwkJY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiZHByZWZjbGssJWQsTi9BLE4vQSwlc1xuIiwKKwkJCXJlZ3NfYW5kX2J5cGFzcy0+ZHByZWZjbGssCisJCQlieXBhc3NfY2xrc1soaW50KSByZWdzX2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5cGFzc10pOworCQlyZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CisJCSpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKKwkJbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKKworCQljaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJkaXNwY2xrLCVkLE4vQSxOL0EsJXNcbiIsCisJCQlyZWdzX2FuZF9ieXBhc3MtPmRpc3BjbGssCisJCQlieXBhc3NfY2xrc1soaW50KSByZWdzX2FuZF9ieXBhc3MtPmRpc3BjbGtfYnlwYXNzXSk7CisJCXJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKKwkJKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOworCQlsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOworCisJCS8vc3BsaXQKKwkJY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiU1BMSVRcbiIpOworCQlyZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CisJCSpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKKwkJbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKKworCQkvLyBSRUdJU1RFUiBWQUxVRVMKKwkJY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAicmVnX25hbWUsdmFsdWUsY2xrX3R5cGVcbiIpOworCQlyZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CisJCSpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKKwkJbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKKworCQljaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NMSzNfQ1VSUkVOVF9DTlQsJWQsZGNmY2xrXG4iLAorCQkJCWludGVybmFsLkNMSzFfQ0xLM19DVVJSRU5UX0NOVCk7CisJCXJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKKwkJKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOworCQlsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOworCisJCWNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLM19EU19DTlRMLCVkLGRjZl9kZWVwX3NsZWVwX2RpdmlkZXJcbiIsCisJCQkJCWludGVybmFsLkNMSzFfQ0xLM19EU19DTlRMKTsKKwkJcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOworCQkqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CisJCWxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CisKKwkJY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEszX0FMTE9XX0RTLCVkLGRjZl9kZWVwX3NsZWVwX2FsbG93XG4iLAorCQkJCQlpbnRlcm5hbC5DTEsxX0NMSzNfQUxMT1dfRFMpOworCQlyZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CisJCSpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKKwkJbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKKworCQljaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NMSzJfQ1VSUkVOVF9DTlQsJWQsZHByZWZjbGtcbiIsCisJCQkJCWludGVybmFsLkNMSzFfQ0xLMl9DVVJSRU5UX0NOVCk7CisJCXJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKKwkJKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOworCQlsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOworCisJCWNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLMF9DVVJSRU5UX0NOVCwlZCxkaXNwY2xrXG4iLAorCQkJCQlpbnRlcm5hbC5DTEsxX0NMSzBfQ1VSUkVOVF9DTlQpOworCQlyZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CisJCSpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKKwkJbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKKworCQljaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NMSzFfQ1VSUkVOVF9DTlQsJWQsZHBwY2xrXG4iLAorCQkJCQlpbnRlcm5hbC5DTEsxX0NMSzFfQ1VSUkVOVF9DTlQpOworCQlyZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CisJCSpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKKwkJbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKKworCQljaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NMSzNfQllQQVNTX0NOVEwsJWQsZGNmY2xrX2J5cGFzc1xuIiwKKwkJCQkJaW50ZXJuYWwuQ0xLMV9DTEszX0JZUEFTU19DTlRMKTsKKwkJcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOworCQkqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CisJCWxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CisKKwkJY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEsyX0JZUEFTU19DTlRMLCVkLGRwcmVmY2xrX2J5cGFzc1xuIiwKKwkJCQkJaW50ZXJuYWwuQ0xLMV9DTEsyX0JZUEFTU19DTlRMKTsKKwkJcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOworCQkqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CisJCWxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CisKKwkJY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEswX0JZUEFTU19DTlRMLCVkLGRpc3BjbGtfYnlwYXNzXG4iLAorCQkJCQlpbnRlcm5hbC5DTEsxX0NMSzBfQllQQVNTX0NOVEwpOworCQlyZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CisJCSpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKKwkJbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKKworCQljaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NMSzFfQllQQVNTX0NOVEwsJWQsZHBwY2xrX2J5cGFzc1xuIiwKKwkJCQkJaW50ZXJuYWwuQ0xLMV9DTEsxX0JZUEFTU19DTlRMKTsKKwkJcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOworCQkqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CisJCWxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CisJfQorfQorCisvKiBUaGlzIGZ1bmN0aW9uIHByb2R1Y2UgdHJhbnNsYXRlZCBsb2dpY2FsIGNsayBzdGF0ZSB2YWx1ZXMqLwordm9pZCBybl9nZXRfY2xrX3N0YXRlcyhzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlLCBzdHJ1Y3QgY2xrX3N0YXRlcyAqcykKK3sKKwlzdHJ1Y3QgY2xrX3N0YXRlX3JlZ2lzdGVyc19hbmRfYnlwYXNzIHNiID0geyAwIH07CisJc3RydWN0IGNsa19sb2dfaW5mbyBsb2dfaW5mbyA9IHsgMCB9OworCisJcm5fZHVtcF9jbGtfcmVnaXN0ZXJzKCZzYiwgY2xrX21ncl9iYXNlLCAmbG9nX2luZm8pOworCisJcy0+ZHByZWZjbGtfa2h6ID0gc2IuZHByZWZjbGs7Cit9CisKK3ZvaWQgcm5fZW5hYmxlX3BtZV93YShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlKQoreworCXN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyID0gVE9fQ0xLX01HUl9JTlRFUk5BTChjbGtfbWdyX2Jhc2UpOworCisJcm5fdmJpb3Nfc211X2VuYWJsZV9wbWVfd2EoY2xrX21ncik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrX21ncl9mdW5jcyBkY24yMV9mdW5jcyA9IHsKKwkuZ2V0X2RwX3JlZl9jbGtfZnJlcXVlbmN5ID0gZGNlMTJfZ2V0X2RwX3JlZl9mcmVxX2toeiwKKwkudXBkYXRlX2Nsb2NrcyA9IHJuX3VwZGF0ZV9jbG9ja3MsCisJLmluaXRfY2xvY2tzID0gZGNuMl9pbml0X2Nsb2NrcywKKwkuZW5hYmxlX3BtZV93YSA9IHJuX2VuYWJsZV9wbWVfd2EsCisJLyogLmR1bXBfY2xrX3JlZ2lzdGVycyA9IHJuX2R1bXBfY2xrX3JlZ2lzdGVycyAqLworfTsKKworc3RydWN0IGNsa19id19wYXJhbXMgcm5fYndfcGFyYW1zID0geworCS52cmFtX3R5cGUgPSBEZHI0TWVtVHlwZSwKKwkubnVtX2NoYW5uZWxzID0gMSwKKwkuY2xrX3RhYmxlID0geworCQkuZW50cmllcyA9IHsKKwkJCXsKKwkJCQkudm9sdGFnZSA9IDAsCisJCQkJLmRjZmNsa19taHogPSA0MDAsCisJCQkJLmZjbGtfbWh6ID0gNDAwLAorCQkJCS5tZW1jbGtfbWh6ID0gODAwLAorCQkJCS5zb2NjbGtfbWh6ID0gMCwKKwkJCX0sCisJCQl7CisJCQkJLnZvbHRhZ2UgPSAwLAorCQkJCS5kY2ZjbGtfbWh6ID0gNDgzLAorCQkJCS5mY2xrX21oeiA9IDgwMCwKKwkJCQkubWVtY2xrX21oeiA9IDE2MDAsCisJCQkJLnNvY2Nsa19taHogPSAwLAorCQkJfSwKKwkJCXsKKwkJCQkudm9sdGFnZSA9IDAsCisJCQkJLmRjZmNsa19taHogPSA2MDIsCisJCQkJLmZjbGtfbWh6ID0gMTA2NywKKwkJCQkubWVtY2xrX21oeiA9IDEwNjcsCisJCQkJLnNvY2Nsa19taHogPSAwLAorCQkJfSwKKwkJCXsKKwkJCQkudm9sdGFnZSA9IDAsCisJCQkJLmRjZmNsa19taHogPSA3MzgsCisJCQkJLmZjbGtfbWh6ID0gMTMzMywKKwkJCQkubWVtY2xrX21oeiA9IDE2MDAsCisJCQkJLnNvY2Nsa19taHogPSAwLAorCQkJfSwKKwkJfSwKKworCQkubnVtX2VudHJpZXMgPSA0LAorCX0sCisKKwkud21fdGFibGUgPSB7CisJCS5lbnRyaWVzID0geworCQkJeworCQkJCS53bV9pbnN0ID0gV01fQSwKKwkJCQkud21fdHlwZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKKwkJCQkucHN0YXRlX2xhdGVuY3lfdXMgPSAyMy44NCwKKwkJCQkudmFsaWQgPSB0cnVlLAorCQkJfSwKKwkJCXsKKwkJCQkud21faW5zdCA9IFdNX0IsCisJCQkJLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcsCisJCQkJLnBzdGF0ZV9sYXRlbmN5X3VzID0gMjMuODQsCisJCQkJLnZhbGlkID0gdHJ1ZSwKKwkJCX0sCisJCQl7CisJCQkJLndtX2luc3QgPSBXTV9DLAorCQkJCS53bV90eXBlID0gV01fVFlQRV9QU1RBVEVfQ0hHLAorCQkJCS5wc3RhdGVfbGF0ZW5jeV91cyA9IDIzLjg0LAorCQkJCS52YWxpZCA9IHRydWUsCisJCQl9LAorCQkJeworCQkJCS53bV9pbnN0ID0gV01fRCwKKwkJCQkud21fdHlwZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKKwkJCQkucHN0YXRlX2xhdGVuY3lfdXMgPSAyMy44NCwKKwkJCQkudmFsaWQgPSB0cnVlLAorCQkJfSwKKwkJfSwKKwl9Cit9OworCit2b2lkIGJ1aWxkX3dhdGVybWFya19yYW5nZXMoc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFtcywgc3RydWN0IHBwX3NtdV93bV9yYW5nZV9zZXRzICpyYW5nZXMpCit7CisJaW50IGksIG51bV92YWxpZF9zZXRzOworCisJbnVtX3ZhbGlkX3NldHMgPSAwOworCisJZm9yIChpID0gMDsgaSA8IFdNX1NFVF9DT1VOVDsgaSsrKSB7CisJCS8qIHNraXAgZW1wdHkgZW50cmllcywgdGhlIHNtdSBhcnJheSBoYXMgbm8gaG9sZXMqLworCQlpZiAoIWJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS52YWxpZCkKKwkJCWNvbnRpbnVlOworCisJCXJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLndtX2luc3QgPSBid19wYXJhbXMtPndtX3RhYmxlLmVudHJpZXNbaV0ud21faW5zdDsKKwkJcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFsaWRfc2V0c10ud21fdHlwZSA9IGJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS53bV90eXBlOzsKKwkJLyogV2Ugd2lsbCBub3Qgc2VsZWN0IFdNIGJhc2VkIG9uIGRjZmNsaywgc28gbGVhdmUgaXQgYXMgdW5jb25zdHJhaW5lZCAqLworCQlyYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5taW5fZHJhaW5fY2xrX21oeiA9IFBQX1NNVV9XTV9TRVRfUkFOR0VfQ0xLX1VOQ09OU1RSQUlORURfTUlOOworCQlyYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5tYXhfZHJhaW5fY2xrX21oeiA9IFBQX1NNVV9XTV9TRVRfUkFOR0VfQ0xLX1VOQ09OU1RSQUlORURfTUFYOworCQkvKiBmY2xrIHdpbCBiZSB1c2VkIHRvIHNlbGVjdCBXTSovCisKKwkJaWYgKHJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLndtX3R5cGUgPT0gV01fVFlQRV9QU1RBVEVfQ0hHKSB7CisJCQlpZiAoaSA9PSAwKQorCQkJCXJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLm1pbl9maWxsX2Nsa19taHogPSAwOworCQkJZWxzZSB7CisJCQkJLyogYWRkIDEgdG8gbWFrZSBpdCBub24tb3ZlcmxhcHBpbmcgd2l0aCBuZXh0IGx2bCAqLworCQkJCXJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLm1pbl9maWxsX2Nsa19taHogPSBid19wYXJhbXMtPmNsa190YWJsZS5lbnRyaWVzW2kgLSAxXS5mY2xrX21oeiArIDE7CisJCQl9CisJCQlyYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5tYXhfZmlsbF9jbGtfbWh6ID0gYndfcGFyYW1zLT5jbGtfdGFibGUuZW50cmllc1tpXS5mY2xrX21oejsKKworCQl9IGVsc2UgeworCQkJLyogdW5jb25zdHJhaW5lZCBmb3IgbWVtb3J5IHJldHJhaW5pbmcgKi8KKwkJCXJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLm1pbl9maWxsX2Nsa19taHogPSBQUF9TTVVfV01fU0VUX1JBTkdFX0NMS19VTkNPTlNUUkFJTkVEX01JTjsKKwkJCXJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLm1heF9maWxsX2Nsa19taHogPSBQUF9TTVVfV01fU0VUX1JBTkdFX0NMS19VTkNPTlNUUkFJTkVEX01BWDsKKworCQkJLyogTW9kaWZ5IHByZXZpb3VzIHdhdGVybWFyayByYW5nZSB0byBjb3ZlciB1cCB0byBtYXggKi8KKwkJCXJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHMgLSAxXS5tYXhfZmlsbF9jbGtfbWh6ID0gUFBfU01VX1dNX1NFVF9SQU5HRV9DTEtfVU5DT05TVFJBSU5FRF9NQVg7CisJCX0KKwkJbnVtX3ZhbGlkX3NldHMrKzsKKwl9CisKKwlBU1NFUlQobnVtX3ZhbGlkX3NldHMgIT0gMCk7IC8qIE11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgc2V0IG9mIHZhbGlkIHdhdGVybWFya3MgKi8KKwlyYW5nZXMtPm51bV9yZWFkZXJfd21fc2V0cyA9IG51bV92YWxpZF9zZXRzOworCisJLyogbW9kaWZ5IHRoZSBtaW4gYW5kIG1heCB0byBtYWtlIHN1cmUgd2UgY292ZXIgdGhlIHdob2xlIHJhbmdlKi8KKwlyYW5nZXMtPnJlYWRlcl93bV9zZXRzWzBdLm1pbl9kcmFpbl9jbGtfbWh6ID0gUFBfU01VX1dNX1NFVF9SQU5HRV9DTEtfVU5DT05TVFJBSU5FRF9NSU47CisJcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1swXS5taW5fZmlsbF9jbGtfbWh6ID0gUFBfU01VX1dNX1NFVF9SQU5HRV9DTEtfVU5DT05TVFJBSU5FRF9NSU47CisJcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tyYW5nZXMtPm51bV9yZWFkZXJfd21fc2V0cyAtIDFdLm1heF9kcmFpbl9jbGtfbWh6ID0gUFBfU01VX1dNX1NFVF9SQU5HRV9DTEtfVU5DT05TVFJBSU5FRF9NQVg7CisJcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tyYW5nZXMtPm51bV9yZWFkZXJfd21fc2V0cyAtIDFdLm1heF9maWxsX2Nsa19taHogPSBQUF9TTVVfV01fU0VUX1JBTkdFX0NMS19VTkNPTlNUUkFJTkVEX01BWDsKKworCS8qIFRoaXMgaXMgZm9yIHdyaXRlYmFjayBvbmx5LCBkb2VzIG5vdCBtYXR0ZXIgY3VycmVudGx5IGFzIG5vIHdyaXRlYmFjayBzdXBwb3J0Ki8KKwlyYW5nZXMtPm51bV93cml0ZXJfd21fc2V0cyA9IDE7CisJcmFuZ2VzLT53cml0ZXJfd21fc2V0c1swXS53bV9pbnN0ID0gV01fQTsKKwlyYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1pbl9maWxsX2Nsa19taHogPSBQUF9TTVVfV01fU0VUX1JBTkdFX0NMS19VTkNPTlNUUkFJTkVEX01JTjsKKwlyYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1heF9maWxsX2Nsa19taHogPSBQUF9TTVVfV01fU0VUX1JBTkdFX0NMS19VTkNPTlNUUkFJTkVEX01BWDsKKwlyYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1pbl9kcmFpbl9jbGtfbWh6ID0gUFBfU01VX1dNX1NFVF9SQU5HRV9DTEtfVU5DT05TVFJBSU5FRF9NSU47CisJcmFuZ2VzLT53cml0ZXJfd21fc2V0c1swXS5tYXhfZHJhaW5fY2xrX21oeiA9IFBQX1NNVV9XTV9TRVRfUkFOR0VfQ0xLX1VOQ09OU1RSQUlORURfTUFYOworCit9CisKK3ZvaWQgY2xrX21ncl9oZWxwZXJfcG9wdWxhdGVfYndfcGFyYW1zKHN0cnVjdCBjbGtfYndfcGFyYW1zICpid19wYXJhbXMsIHN0cnVjdCBkcG1fY2xvY2tzICpjbG9ja190YWJsZSwgc3RydWN0IGh3X2FzaWNfaWQgKmFzaWNfaWQpCit7CisJaW50IGk7CisKKwlBU1NFUlQoUFBfU01VX05VTV9GQ0xLX0RQTV9MRVZFTFMgPD0gTUFYX05VTV9EUE1fTFZMKTsKKworCWZvciAoaSA9IDA7IGkgPCBQUF9TTVVfTlVNX0ZDTEtfRFBNX0xFVkVMUzsgaSsrKSB7CisJCWlmIChjbG9ja190YWJsZS0+RkNsb2Nrc1tpXS5GcmVxID09IDApCisJCQlicmVhazsKKworCQlid19wYXJhbXMtPmNsa190YWJsZS5lbnRyaWVzW2ldLmRjZmNsa19taHogPSBjbG9ja190YWJsZS0+RGNmQ2xvY2tzW2ldLkZyZXE7CisJCWJ3X3BhcmFtcy0+Y2xrX3RhYmxlLmVudHJpZXNbaV0uZmNsa19taHogPSBjbG9ja190YWJsZS0+RkNsb2Nrc1tpXS5GcmVxOworCQlid19wYXJhbXMtPmNsa190YWJsZS5lbnRyaWVzW2ldLm1lbWNsa19taHogPSBjbG9ja190YWJsZS0+TWVtQ2xvY2tzW2ldLkZyZXE7CisJCWJ3X3BhcmFtcy0+Y2xrX3RhYmxlLmVudHJpZXNbaV0uc29jY2xrX21oeiA9IGNsb2NrX3RhYmxlLT5Tb2NDbG9ja3NbaV0uRnJlcTsKKwkJYndfcGFyYW1zLT5jbGtfdGFibGUuZW50cmllc1tpXS52b2x0YWdlID0gY2xvY2tfdGFibGUtPkZDbG9ja3NbaV0uVm9sOworCX0KKwlid19wYXJhbXMtPmNsa190YWJsZS5udW1fZW50cmllcyA9IGk7CisKKwlid19wYXJhbXMtPnZyYW1fdHlwZSA9IGFzaWNfaWQtPnZyYW1fdHlwZTsKKwlid19wYXJhbXMtPm51bV9jaGFubmVscyA9IGFzaWNfaWQtPnZyYW1fd2lkdGggLyBERFI0X0RSQU1fV0lEVEg7CisKKwlmb3IgKGkgPSAwOyBpIDwgV01fU0VUX0NPVU5UOyBpKyspIHsKKwkJYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLndtX2luc3QgPSBpOworCisJCWlmIChjbG9ja190YWJsZS0+RkNsb2Nrc1tpXS5GcmVxID09IDApIHsKKwkJCWJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS52YWxpZCA9IGZhbHNlOworCQkJY29udGludWU7CisJCX0KKworCQlid19wYXJhbXMtPndtX3RhYmxlLmVudHJpZXNbaV0ud21fdHlwZSA9IFdNX1RZUEVfUFNUQVRFX0NIRzsKKwkJYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLnZhbGlkID0gdHJ1ZTsKKwl9CisKKwlpZiAoYndfcGFyYW1zLT52cmFtX3R5cGUgPT0gTHBEZHI0TWVtVHlwZSkgeworCQkvKgorCQkgKiBXTSBzZXQgRCB3aWxsIGJlIHJlLXB1cnBvc2VkIGZvciBtZW1vcnkgcmV0cmFpbmluZworCQkgKi8KKwkJYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW1dNX0RdLnBzdGF0ZV9sYXRlbmN5X3VzID0gTFBERFJfTUVNX1JFVFJBSU5fTEFURU5DWTsKKwkJYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW1dNX0RdLndtX2luc3QgPSBXTV9EOworCQlid19wYXJhbXMtPndtX3RhYmxlLmVudHJpZXNbV01fRF0ud21fdHlwZSA9IFdNX1RZUEVfUkVUUkFJTklORzsKKwkJYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW1dNX0RdLnZhbGlkID0gdHJ1ZTsKKwl9CisKK30KKwordm9pZCBybl9jbGtfbWdyX2NvbnN0cnVjdCgKKwkJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwkJc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsCisJCXN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSwKKwkJc3RydWN0IGRjY2cgKmRjY2cpCit7CisJc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgKmRlYnVnID0gJmN0eC0+ZGMtPmRlYnVnOworCXN0cnVjdCBkcG1fY2xvY2tzIGNsb2NrX3RhYmxlID0geyAwIH07CisJc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnNfYW5kX2J5cGFzcyBzID0geyAwIH07CisKKwljbGtfbWdyLT5iYXNlLmN0eCA9IGN0eDsKKwljbGtfbWdyLT5iYXNlLmZ1bmNzID0gJmRjbjIxX2Z1bmNzOworCisJY2xrX21nci0+cHBfc211ID0gcHBfc211OworCisJY2xrX21nci0+ZGNjZyA9IGRjY2c7CisJY2xrX21nci0+ZGZzX2J5cGFzc19kaXNwX2NsayA9IDA7CisKKwljbGtfbWdyLT5kcHJlZmNsa19zc19wZXJjZW50YWdlID0gMDsKKwljbGtfbWdyLT5kcHJlZmNsa19zc19kaXZpZGVyID0gMTAwMDsKKwljbGtfbWdyLT5zc19vbl9kcHJlZmNsayA9IGZhbHNlOworCWNsa19tZ3ItPmRmc19yZWZfZnJlcV9raHogPSA0ODAwMDsKKworCWNsa19tZ3ItPnNtdV92ZXIgPSBybl92Ymlvc19zbXVfZ2V0X3NtdV92ZXJzaW9uKGNsa19tZ3IpOworCisJaWYgKElTX0ZQR0FfTUFYSU1VU19EQyhjdHgtPmRjZV9lbnZpcm9ubWVudCkpIHsKKwkJZGNuMjFfZnVuY3MudXBkYXRlX2Nsb2NrcyA9IGRjbjJfdXBkYXRlX2Nsb2Nrc19mcGdhOworCQljbGtfbWdyLT5kZW50aXN0X3Zjb19mcmVxX2toeiA9IDM2MDAwMDA7CisJCWNsa19tZ3ItPmJhc2UuZHByZWZjbGtfa2h6ID0gNjAwMDAwOworCX0gZWxzZSB7CisJCXN0cnVjdCBjbGtfbG9nX2luZm8gbG9nX2luZm8gPSB7MH07CisKKwkJLyogVE9ETzogQ2hlY2sgd2UgZ2V0IHdoYXQgd2UgZXhwZWN0IGR1cmluZyBicmluZ3VwICovCisJCWNsa19tZ3ItPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID0gZ2V0X3Zjb19mcmVxdWVuY3lfZnJvbV9yZWcoY2xrX21ncik7CisKKwkJLyogaW4gY2FzZSB3ZSBkb24ndCBnZXQgYSB2YWx1ZSBmcm9tIHRoZSByZWdpc3RlciwgdXNlIGRlZmF1bHQgKi8KKwkJaWYgKGNsa19tZ3ItPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID09IDApCisJCQljbGtfbWdyLT5kZW50aXN0X3Zjb19mcmVxX2toeiA9IDM2MDAwMDA7CisKKwkJcm5fZHVtcF9jbGtfcmVnaXN0ZXJzKCZzLCAmY2xrX21nci0+YmFzZSwgJmxvZ19pbmZvKTsKKwkJY2xrX21nci0+YmFzZS5kcHJlZmNsa19raHogPSBzLmRwcmVmY2xrOworCisJCWlmIChjbGtfbWdyLT5iYXNlLmRwcmVmY2xrX2toeiAhPSA2MDAwMDApIHsKKwkJCWNsa19tZ3ItPmJhc2UuZHByZWZjbGtfa2h6ID0gNjAwMDAwOworCQkJQVNTRVJUKDEpOyAvL1RPRE86IFJlbm9pciBmb2xsb3cgdXAuCisJCX0KKworCQkvKiBpbiBjYXNlIHdlIGRvbid0IGdldCBhIHZhbHVlIGZyb20gdGhlIHJlZ2lzdGVyLCB1c2UgZGVmYXVsdCAqLworCQlpZiAoY2xrX21nci0+YmFzZS5kcHJlZmNsa19raHogPT0gMCkKKwkJCWNsa19tZ3ItPmJhc2UuZHByZWZjbGtfa2h6ID0gNjAwMDAwOworCX0KKworCWRjZV9jbG9ja19yZWFkX3NzX2luZm8oY2xrX21ncik7CisKKwljbGtfbWdyLT5iYXNlLmJ3X3BhcmFtcyA9ICZybl9id19wYXJhbXM7CisKKwlpZiAocHBfc211KSB7CisJCXBwX3NtdS0+cm5fZnVuY3MuZ2V0X2RwbV9jbG9ja190YWJsZSgmcHBfc211LT5ybl9mdW5jcy5wcF9zbXUsICZjbG9ja190YWJsZSk7CisJCWNsa19tZ3JfaGVscGVyX3BvcHVsYXRlX2J3X3BhcmFtcyhjbGtfbWdyLT5iYXNlLmJ3X3BhcmFtcywgJmNsb2NrX3RhYmxlLCAmY3R4LT5hc2ljX2lkKTsKKwl9CisKKwkvKgorCSAqIE5vdGlmeSBTTVUgd2hpY2ggc2V0IG9mIFdNIHNob3VsZCBiZSBzZWxlY3RlZCBmb3IgZGlmZmVyZW50IHJhbmdlcyBvZiBmY2xrCisJICogT24gUmVub2lyIHRoZXJlIGlzIGEgbWF4aW11bXVtIG9mIDQgREYgcHN0YXRlcyBzdXBwb3J0ZWQsIGNvdWxkIGJlIGxlc3MKKwkgKiBkZXBlbmRpbmcgb24gRERSIHNwZWVkIGFuZCBmdXNlZCBtYXhpbXVtIGZjbGsuCisJICovCisJaWYgKCFkZWJ1Zy0+ZGlzYWJsZV9wcGxpYl93bV9yYW5nZSkgeworCQlzdHJ1Y3QgcHBfc211X3dtX3JhbmdlX3NldHMgcmFuZ2VzID0gezB9OworCisJCWJ1aWxkX3dhdGVybWFya19yYW5nZXMoY2xrX21nci0+YmFzZS5id19wYXJhbXMsICZyYW5nZXMpOworCisJCS8qIE5vdGlmeSBQUCBMaWIvU01VIHdoaWNoIFdhdGVybWFya3MgdG8gdXNlIGZvciB3aGljaCBjbG9jayByYW5nZXMgKi8KKwkJaWYgKHBwX3NtdSAmJiBwcF9zbXUtPnJuX2Z1bmNzLnNldF93bV9yYW5nZXMpCisJCQlwcF9zbXUtPnJuX2Z1bmNzLnNldF93bV9yYW5nZXMoJnBwX3NtdS0+cm5fZnVuY3MucHBfc211LCAmcmFuZ2VzKTsKKwl9CisKKwkvKiBlbmFibGUgcG93ZXJmZWF0dXJlcyB3aGVuIGRpc3BsYXljb3VudCBnb2VzIHRvIDAgKi8KKwlpZiAoIWRlYnVnLT5kaXNhYmxlXzQ4bWh6X3B3cmR3bikKKwkJcm5fdmJpb3Nfc211X2VuYWJsZV80OG1oel90bWRwX3JlZmNsa19wd3Jkd24oY2xrX21ncik7Cit9CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWRlYzA2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpZm5kZWYgX19STl9DTEtfTUdSX0hfXworI2RlZmluZSBfX1JOX0NMS19NR1JfSF9fCisKK3N0cnVjdCBybl9jbGtfcmVnaXN0ZXJzIHsKKwl1aW50MzJfdCBDTEsxX0NMSzBfQ1VSUkVOVF9DTlQ7IC8qIERQUkVGQ0xLICovCit9OworCisKK3ZvaWQgcm5fY2xrX21ncl9jb25zdHJ1Y3Qoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwkJc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsCisJCXN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSwKKwkJc3RydWN0IGRjY2cgKmRjY2cpOworCisjZW5kaWYgLy9fX1JOX0NMS19NR1JfSF9fCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyX3ZiaW9zX3NtdS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21ncl92Ymlvc19zbXUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDk4NGMxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21ncl92Ymlvc19zbXUuYwpAQCAtMCwwICsxLDIwMCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEyLTE2IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2luY2x1ZGUgImNvcmVfdHlwZXMuaCIKKyNpbmNsdWRlICJjbGtfbWdyX2ludGVybmFsLmgiCisjaW5jbHVkZSAicmVnX2hlbHBlci5oIgorCisjaW5jbHVkZSAicmVub2lyX2lwX29mZnNldC5oIgorCisjaW5jbHVkZSAibXAvbXBfMTJfMF8wX29mZnNldC5oIgorI2luY2x1ZGUgIm1wL21wXzEyXzBfMF9zaF9tYXNrLmgiCisKKyNkZWZpbmUgUkVHKHJlZ19uYW1lKSBcCisJKE1QMV9CQVNFLmluc3RhbmNlWzBdLnNlZ21lbnRbbW0gIyMgcmVnX25hbWUgIyMgX0JBU0VfSURYXSArIG1tICMjIHJlZ19uYW1lKQorCisjZGVmaW5lIEZOKHJlZ19uYW1lLCBmaWVsZCkgXAorCUZEKHJlZ19uYW1lIyNfXyMjZmllbGQpCisKKyNkZWZpbmUgVkJJT1NTTUNfTVNHX1Rlc3RNZXNzYWdlICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZCSU9TU01DX01TR19HZXRTbXVWZXJzaW9uICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBWQklPU1NNQ19NU0dfUG93ZXJVcEdmeCAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVkJJT1NTTUNfTVNHX1NldERpc3BjbGtGcmVxICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFZCSU9TU01DX01TR19TZXREcHJlZmNsa0ZyZXEgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBWQklPU1NNQ19NU0dfUG93ZXJEb3duR2Z4ICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVkJJT1NTTUNfTVNHX1NldERwcGNsa0ZyZXEgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZCSU9TU01DX01TR19TZXRIYXJkTWluRGNmY2xrQnlGcmVxICAgICAgIDB4OAorI2RlZmluZSBWQklPU1NNQ19NU0dfU2V0TWluRGVlcFNsZWVwRGNmY2xrICAgICAgICAweDkKKyNkZWZpbmUgVkJJT1NTTUNfTVNHX1NldFBoeWNsa1ZvbHRhZ2VCeUZyZXEgICAgICAgMHhBCisjZGVmaW5lIFZCSU9TU01DX01TR19HZXRGY2xrRnJlcXVlbmN5ICAgICAgICAgICAgIDB4QgorI2RlZmluZSBWQklPU1NNQ19NU0dfU2V0RGlzcGxheUNvdW50ICAgICAgICAgICAgICAweEMKKyNkZWZpbmUgVkJJT1NTTUNfTVNHX0VuYWJsZVRtZHA0OE1IelJlZmNsa1B3ckRvd24gMHhECisjZGVmaW5lIFZCSU9TU01DX01TR19VcGRhdGVQbWVSZXN0b3JlCQkJICAweEUKKworaW50IHJuX3ZiaW9zX3NtdV9zZW5kX21zZ193aXRoX3BhcmFtKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCB1bnNpZ25lZCBpbnQgbXNnX2lkLCB1bnNpZ25lZCBpbnQgcGFyYW0pCit7CisJLyogRmlyc3QgY2xlYXIgcmVzcG9uc2UgcmVnaXN0ZXIgKi8KKwlSRUdfV1JJVEUoTVAxX1NNTl9DMlBNU0dfOTEsIDApOworCisJLyogU2V0IHRoZSBwYXJhbWV0ZXIgcmVnaXN0ZXIgZm9yIHRoZSBTTVUgbWVzc2FnZSwgdW5pdCBpcyBNaHogKi8KKwlSRUdfV1JJVEUoTVAxX1NNTl9DMlBNU0dfODMsIHBhcmFtKTsKKworCS8qIFRyaWdnZXIgdGhlIG1lc3NhZ2UgdHJhbnNhY3Rpb24gYnkgd3JpdGluZyB0aGUgbWVzc2FnZSBJRCAqLworCVJFR19XUklURShNUDFfU01OX0MyUE1TR182NywgbXNnX2lkKTsKKworCVJFR19XQUlUKE1QMV9TTU5fQzJQTVNHXzkxLCBDT05URU5ULCAxLCAxMCwgMjAwMDAwKTsKKworCS8qIEFjdHVhbCBkaXNwY2xrIHNldCBpcyByZXR1cm5lZCBpbiB0aGUgcGFyYW1ldGVyIHJlZ2lzdGVyICovCisJcmV0dXJuIFJFR19SRUFEKE1QMV9TTU5fQzJQTVNHXzgzKTsKK30KKworaW50IHJuX3ZiaW9zX3NtdV9nZXRfc211X3ZlcnNpb24oc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpCit7CisJcmV0dXJuIHJuX3ZiaW9zX3NtdV9zZW5kX21zZ193aXRoX3BhcmFtKAorCQkJY2xrX21nciwKKwkJCVZCSU9TU01DX01TR19HZXRTbXVWZXJzaW9uLAorCQkJMCk7Cit9CisKKworaW50IHJuX3ZiaW9zX3NtdV9zZXRfZGlzcGNsayhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVlc3RlZF9kaXNwY2xrX2toeikKK3sKKwlpbnQgYWN0dWFsX2Rpc3BjbGtfc2V0X21oeiA9IC0xOworCXN0cnVjdCBkYyAqY29yZV9kYyA9IGNsa19tZ3ItPmJhc2UuY3R4LT5kYzsKKwlzdHJ1Y3QgZG1jdSAqZG1jdSA9IGNvcmVfZGMtPnJlc19wb29sLT5kbWN1OworCXVpbnQzMl90IGNsayA9IHJlcXVlc3RlZF9kaXNwY2xrX2toeiAvIDEwMDA7CisKKwlpZiAoY2xrIDw9IDEwMCkKKwkJY2xrID0gMTAxOworCisJLyogIFVuaXQgb2YgU01VIG1zZyBwYXJhbWV0ZXIgaXMgTWh6ICovCisJYWN0dWFsX2Rpc3BjbGtfc2V0X21oeiA9IHJuX3ZiaW9zX3NtdV9zZW5kX21zZ193aXRoX3BhcmFtKAorCQkJY2xrX21nciwKKwkJCVZCSU9TU01DX01TR19TZXREaXNwY2xrRnJlcSwKKwkJCWNsayk7CisKKwlpZiAoIUlTX0ZQR0FfTUFYSU1VU19EQyhjb3JlX2RjLT5jdHgtPmRjZV9lbnZpcm9ubWVudCkpIHsKKwkJaWYgKGRtY3UgJiYgZG1jdS0+ZnVuY3MtPmlzX2RtY3VfaW5pdGlhbGl6ZWQoZG1jdSkpIHsKKwkJCWlmIChjbGtfbWdyLT5kZnNfYnlwYXNzX2Rpc3BfY2xrICE9IGFjdHVhbF9kaXNwY2xrX3NldF9taHopCisJCQkJZG1jdS0+ZnVuY3MtPnNldF9wc3Jfd2FpdF9sb29wKGRtY3UsCisJCQkJCQlhY3R1YWxfZGlzcGNsa19zZXRfbWh6IC8gNyk7CisJCX0KKwl9CisKKwlyZXR1cm4gYWN0dWFsX2Rpc3BjbGtfc2V0X21oeiAqIDEwMDA7Cit9CisKK2ludCBybl92Ymlvc19zbXVfc2V0X2RwcmVmY2xrKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyKQoreworCWludCBhY3R1YWxfZHByZWZjbGtfc2V0X21oeiA9IC0xOworCisJYWN0dWFsX2RwcmVmY2xrX3NldF9taHogPSBybl92Ymlvc19zbXVfc2VuZF9tc2dfd2l0aF9wYXJhbSgKKwkJCWNsa19tZ3IsCisJCQlWQklPU1NNQ19NU0dfU2V0RHByZWZjbGtGcmVxLAorCQkJY2xrX21nci0+YmFzZS5kcHJlZmNsa19raHogLyAxMDAwKTsKKworCS8qIFRPRE86IGFkZCBjb2RlIGZvciBwcm9ncmFtaW5nIERQIERUTywgY3VycmVudGx5IHRoaXMgaXMgZG93biBieSBjb21tYW5kIHRhYmxlICovCisKKwlyZXR1cm4gYWN0dWFsX2RwcmVmY2xrX3NldF9taHogKiAxMDAwOworfQorCitpbnQgcm5fdmJpb3Nfc211X3NldF9oYXJkX21pbl9kY2ZjbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCByZXF1ZXN0ZWRfZGNmY2xrX2toeikKK3sKKwlpbnQgYWN0dWFsX2RjZmNsa19zZXRfbWh6ID0gLTE7CisKKwlpZiAoY2xrX21nci0+c211X3ZlciA8IDB4RkZGRkZGRkYpCisJCXJldHVybiBhY3R1YWxfZGNmY2xrX3NldF9taHo7CisKKwlhY3R1YWxfZGNmY2xrX3NldF9taHogPSBybl92Ymlvc19zbXVfc2VuZF9tc2dfd2l0aF9wYXJhbSgKKwkJCWNsa19tZ3IsCisJCQlWQklPU1NNQ19NU0dfU2V0SGFyZE1pbkRjZmNsa0J5RnJlcSwKKwkJCXJlcXVlc3RlZF9kY2ZjbGtfa2h6IC8gMTAwMCk7CisKKwlyZXR1cm4gYWN0dWFsX2RjZmNsa19zZXRfbWh6ICogMTAwMDsKK30KKworaW50IHJuX3ZiaW9zX3NtdV9zZXRfbWluX2RlZXBfc2xlZXBfZGNmY2xrKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBpbnQgcmVxdWVzdGVkX21pbl9kc19kY2ZjbGtfa2h6KQoreworCWludCBhY3R1YWxfbWluX2RzX2RjZmNsa19taHogPSAtMTsKKworCWlmIChjbGtfbWdyLT5zbXVfdmVyIDwgMHhGRkZGRkZGRikKKwkJcmV0dXJuIGFjdHVhbF9taW5fZHNfZGNmY2xrX21oejsKKworCWFjdHVhbF9taW5fZHNfZGNmY2xrX21oeiA9IHJuX3ZiaW9zX3NtdV9zZW5kX21zZ193aXRoX3BhcmFtKAorCQkJY2xrX21nciwKKwkJCVZCSU9TU01DX01TR19TZXRNaW5EZWVwU2xlZXBEY2ZjbGssCisJCQlyZXF1ZXN0ZWRfbWluX2RzX2RjZmNsa19raHogLyAxMDAwKTsKKworCXJldHVybiBhY3R1YWxfbWluX2RzX2RjZmNsa19taHogKiAxMDAwOworfQorCit2b2lkIHJuX3ZiaW9zX3NtdV9zZXRfcGh5Y2xrKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBpbnQgcmVxdWVzdGVkX3BoeWNsa19raHopCit7CisJcm5fdmJpb3Nfc211X3NlbmRfbXNnX3dpdGhfcGFyYW0oCisJCQljbGtfbWdyLAorCQkJVkJJT1NTTUNfTVNHX1NldFBoeWNsa1ZvbHRhZ2VCeUZyZXEsCisJCQlyZXF1ZXN0ZWRfcGh5Y2xrX2toeiAvIDEwMDApOworfQorCitpbnQgcm5fdmJpb3Nfc211X3NldF9kcHBjbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCByZXF1ZXN0ZWRfZHBwX2toeikKK3sKKwlpbnQgYWN0dWFsX2RwcGNsa19zZXRfbWh6ID0gLTE7CisKKwl1aW50MzJfdCBjbGsgPSByZXF1ZXN0ZWRfZHBwX2toeiAvIDEwMDA7CisKKwlpZiAoY2xrIDw9IDEwMCkKKwkJY2xrID0gMTAxOworCisJYWN0dWFsX2RwcGNsa19zZXRfbWh6ID0gcm5fdmJpb3Nfc211X3NlbmRfbXNnX3dpdGhfcGFyYW0oCisJCQljbGtfbWdyLAorCQkJVkJJT1NTTUNfTVNHX1NldERwcGNsa0ZyZXEsCisJCQljbGspOworCisJcmV0dXJuIGFjdHVhbF9kcHBjbGtfc2V0X21oeiAqIDEwMDA7Cit9CisKK3ZvaWQgcm5fdmJpb3Nfc211X3NldF9kaXNwbGF5X2NvdW50KHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBpbnQgZGlzcGxheV9jb3VudCkKK3sKKwlybl92Ymlvc19zbXVfc2VuZF9tc2dfd2l0aF9wYXJhbSgKKwkJCWNsa19tZ3IsCisJCQlWQklPU1NNQ19NU0dfU2V0RGlzcGxheUNvdW50LAorCQkJZGlzcGxheV9jb3VudCk7Cit9CisKK3ZvaWQgcm5fdmJpb3Nfc211X2VuYWJsZV80OG1oel90bWRwX3JlZmNsa19wd3Jkd24oc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpCit7CisJcm5fdmJpb3Nfc211X3NlbmRfbXNnX3dpdGhfcGFyYW0oCisJCQljbGtfbWdyLAorCQkJVkJJT1NTTUNfTVNHX0VuYWJsZVRtZHA0OE1IelJlZmNsa1B3ckRvd24sCisJCQkwKTsKK30KKwordm9pZCBybl92Ymlvc19zbXVfZW5hYmxlX3BtZV93YShzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21ncikKK3sKKwlybl92Ymlvc19zbXVfc2VuZF9tc2dfd2l0aF9wYXJhbSgKKwkJCWNsa19tZ3IsCisJCQlWQklPU1NNQ19NU0dfVXBkYXRlUG1lUmVzdG9yZSwKKwkJCTApOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21ncl92Ymlvc19zbXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3JfdmJpb3Nfc211LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGEzYTQ5NAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3JfdmJpb3Nfc211LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2lmbmRlZiBEQUxfRENfUk5fQ0xLX01HUl9WQklPU19TTVVfSF8KKyNkZWZpbmUgREFMX0RDX1JOX0NMS19NR1JfVkJJT1NfU01VX0hfCisKK2ludCBybl92Ymlvc19zbXVfZ2V0X3NtdV92ZXJzaW9uKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyKTsKK2ludCBybl92Ymlvc19zbXVfc2V0X2Rpc3BjbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCByZXF1ZXN0ZWRfZGlzcGNsa19raHopOworaW50IHJuX3ZiaW9zX3NtdV9zZXRfZHByZWZjbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpOworaW50IHJuX3ZiaW9zX3NtdV9zZXRfaGFyZF9taW5fZGNmY2xrKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBpbnQgcmVxdWVzdGVkX2RjZmNsa19raHopOworaW50IHJuX3ZiaW9zX3NtdV9zZXRfbWluX2RlZXBfc2xlZXBfZGNmY2xrKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBpbnQgcmVxdWVzdGVkX21pbl9kc19kY2ZjbGtfa2h6KTsKK3ZvaWQgcm5fdmJpb3Nfc211X3NldF9waHljbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCByZXF1ZXN0ZWRfcGh5Y2xrX2toeik7CitpbnQgcm5fdmJpb3Nfc211X3NldF9kcHBjbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCByZXF1ZXN0ZWRfZHBwX2toeik7Cit2b2lkIHJuX3ZiaW9zX3NtdV9zZXRfZGlzcGxheV9jb3VudChzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IGRpc3BsYXlfY291bnQpOwordm9pZCBybl92Ymlvc19zbXVfZW5hYmxlXzQ4bWh6X3RtZHBfcmVmY2xrX3B3cmR3bihzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21ncik7Cit2b2lkIHJuX3ZiaW9zX3NtdV9lbmFibGVfcG1lX3dhKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyKTsKKworI2VuZGlmIC8qIERBTF9EQ19EQ04xMF9SVjFfQ0xLX01HUl9WQklPU19TTVVfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kYy5jCmluZGV4IGNiYzQ4MGEuLjVkMWFkZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGMuYwpAQCAtMTgxLDEzICsxODEsMjUgQEAgc3RhdGljIGJvb2wgY3JlYXRlX2xpbmtzKAogCQlsaW5rID0gbGlua19jcmVhdGUoJmxpbmtfaW5pdF9wYXJhbXMpOwogCiAJCWlmIChsaW5rKSB7Ci0JCQlpZiAoZGMtPmNvbmZpZy5lZHBfbm90X2Nvbm5lY3RlZCAmJgotCQkJCQlsaW5rLT5jb25uZWN0b3Jfc2lnbmFsID09IFNJR05BTF9UWVBFX0VEUCkgewotCQkJCWxpbmtfZGVzdHJveSgmbGluayk7Ci0JCQl9IGVsc2UgeworCQkJYm9vbCBzaG91bGRfZGVzdG9yeV9saW5rID0gZmFsc2U7CisKKwkJCWlmIChsaW5rLT5jb25uZWN0b3Jfc2lnbmFsID09IFNJR05BTF9UWVBFX0VEUCkgeworCQkJCWlmIChkYy0+Y29uZmlnLmVkcF9ub3RfY29ubmVjdGVkKQorCQkJCQlzaG91bGRfZGVzdG9yeV9saW5rID0gdHJ1ZTsKKwkJCQllbHNlIGlmIChkYy0+ZGVidWcucmVtb3ZlX2Rpc2Nvbm5lY3RfZWRwKSB7CisJCQkJCWVudW0gZGNfY29ubmVjdGlvbl90eXBlIHR5cGU7CisJCQkJCWRjX2xpbmtfZGV0ZWN0X3NpbmsobGluaywgJnR5cGUpOworCQkJCQlpZiAodHlwZSA9PSBkY19jb25uZWN0aW9uX25vbmUpCisJCQkJCQlzaG91bGRfZGVzdG9yeV9saW5rID0gdHJ1ZTsKKwkJCQl9CisJCQl9CisKKwkJCWlmICghc2hvdWxkX2Rlc3RvcnlfbGluaykgewogCQkJCWRjLT5saW5rc1tkYy0+bGlua19jb3VudF0gPSBsaW5rOwogCQkJCWxpbmstPmRjID0gZGM7CiAJCQkJKytkYy0+bGlua19jb3VudDsKKwkJCX0gZWxzZSB7CisJCQkJbGlua19kZXN0cm95KCZsaW5rKTsKIAkJCX0KIAkJfQogCX0KQEAgLTI3OSw3ICsyOTEsOSBAQCBib29sIGRjX3N0cmVhbV9hZGp1c3Rfdm1pbl92bWF4KHN0cnVjdCBkYyAqZGMsCiAJCQlkYy0+aHdzcy5zZXRfZHJyKCZwaXBlLAogCQkJCQkxLAogCQkJCQlhZGp1c3QtPnZfdG90YWxfbWluLAotCQkJCQlhZGp1c3QtPnZfdG90YWxfbWF4KTsKKwkJCQkJYWRqdXN0LT52X3RvdGFsX21heCwKKwkJCQkJYWRqdXN0LT52X3RvdGFsX21pZCwKKwkJCQkJYWRqdXN0LT52X3RvdGFsX21pZF9mcmFtZV9udW0pOwogCiAJCQlyZXQgPSB0cnVlOwogCQl9CkBAIC02NzUsNiArNjg5LDExIEBAIHN0YXRpYyBib29sIGNvbnN0cnVjdChzdHJ1Y3QgZGMgKmRjLAogCWlmICghZGMtPmNsa19tZ3IpCiAJCWdvdG8gZmFpbDsKIAorI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMQorCWlmIChkYy0+cmVzX3Bvb2wtPmZ1bmNzLT51cGRhdGVfYndfYm91bmRpbmdfYm94KQorCQlkYy0+cmVzX3Bvb2wtPmZ1bmNzLT51cGRhdGVfYndfYm91bmRpbmdfYm94KGRjLCBkYy0+Y2xrX21nci0+YndfcGFyYW1zKTsKKyNlbmRpZgorCiAJLyogQ3JlYXRpb24gb2YgY3VycmVudF9zdGF0ZSBtdXN0IG9jY3VyIGFmdGVyIGRjLT5kbWwKIAkgKiBpcyBpbml0aWFsaXplZCBpbiBkY19jcmVhdGVfcmVzb3VyY2VfcG9vbCBiZWNhdXNlCiAJICogb24gY3JlYXRpb24gaXQgY29waWVzIHRoZSBjb250ZW50cyBvZiBkYy0+ZG1sCkBAIC05NDgsNyArOTY3LDcgQEAgYm9vbCBkY192YWxpZGF0ZV9zZWFtbGVzc19ib290X3RpbWluZyhjb25zdCBzdHJ1Y3QgZGMgKmRjLAogewogCXN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZzsKIAlzdHJ1Y3QgZGNfbGluayAqbGluayA9IHNpbmstPmxpbms7Ci0JdW5zaWduZWQgaW50IGluc3Q7CisJdW5zaWduZWQgaW50IGVuY19pbnN0LCB0Z19pbnN0OwogCiAJLyogQ2hlY2sgZm9yIGVuYWJsZWQgRElHIHRvIGlkZW50aWZ5IGVuYWJsZWQgZGlzcGxheSAqLwogCWlmICghbGluay0+bGlua19lbmMtPmZ1bmNzLT5pc19kaWdfZW5hYmxlZChsaW5rLT5saW5rX2VuYykpCkBAIC05NjAsMTMgKzk3OSwyMiBAQCBib29sIGRjX3ZhbGlkYXRlX3NlYW1sZXNzX2Jvb3RfdGltaW5nKGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAJICogY3VycmVudCBpbXBsZW1lbnRhdGlvbiBhbHdheXMgbWFwIDEtdG8tMSwgc28gdGhpcyBjb2RlIG1ha2VzCiAJICogdGhlIHNhbWUgYXNzdW1wdGlvbiBhbmQgZG9lc24ndCBjaGVjayBPVEcgc291cmNlLgogCSAqLwotCWluc3QgPSBsaW5rLT5saW5rX2VuYy0+ZnVuY3MtPmdldF9kaWdfZnJvbnRlbmQobGluay0+bGlua19lbmMpIC0gMTsKKwllbmNfaW5zdCA9IGxpbmstPmxpbmtfZW5jLT5mdW5jcy0+Z2V0X2RpZ19mcm9udGVuZChsaW5rLT5saW5rX2VuYyk7CiAKIAkvKiBJbnN0YW5jZSBzaG91bGQgYmUgd2l0aGluIHRoZSByYW5nZSBvZiB0aGUgcG9vbCAqLwotCWlmIChpbnN0ID49IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudCkKKwlpZiAoZW5jX2luc3QgPj0gZGMtPnJlc19wb29sLT5waXBlX2NvdW50KQogCQlyZXR1cm4gZmFsc2U7CiAKLQl0ZyA9IGRjLT5yZXNfcG9vbC0+dGltaW5nX2dlbmVyYXRvcnNbaW5zdF07CisJaWYgKGVuY19pbnN0ID49IGRjLT5yZXNfcG9vbC0+c3RyZWFtX2VuY19jb3VudCkKKwkJcmV0dXJuIGZhbHNlOworCisJdGdfaW5zdCA9IGRjLT5yZXNfcG9vbC0+c3RyZWFtX2VuY1tlbmNfaW5zdF0tPmZ1bmNzLT5kaWdfc291cmNlX290ZygKKwkJZGMtPnJlc19wb29sLT5zdHJlYW1fZW5jW2VuY19pbnN0XSk7CisKKwlpZiAodGdfaW5zdCA+PSBkYy0+cmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JfY291bnQpCisJCXJldHVybiBmYWxzZTsKKworCXRnID0gZGMtPnJlc19wb29sLT50aW1pbmdfZ2VuZXJhdG9yc1t0Z19pbnN0XTsKIAogCWlmICghdGctPmZ1bmNzLT5pc19tYXRjaGluZ190aW1pbmcpCiAJCXJldHVybiBmYWxzZTsKQEAgLTk3OSwxMCArMTAwNywxMSBAQCBib29sIGRjX3ZhbGlkYXRlX3NlYW1sZXNzX2Jvb3RfdGltaW5nKGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAKIAkJZGMtPnJlc19wb29sLT5kcF9jbG9ja19zb3VyY2UtPmZ1bmNzLT5nZXRfcGl4ZWxfY2xrX2ZyZXF1ZW5jeV8xMDBoeigKIAkJCWRjLT5yZXNfcG9vbC0+ZHBfY2xvY2tfc291cmNlLAotCQkJaW5zdCwgJnBpeF9jbGtfMTAwaHopOworCQkJdGdfaW5zdCwgJnBpeF9jbGtfMTAwaHopOwogCiAJCWlmIChjcnRjX3RpbWluZy0+cGl4X2Nsa18xMDBoeiAhPSBwaXhfY2xrXzEwMGh6KQogCQkJcmV0dXJuIGZhbHNlOworCiAJfQogCiAJcmV0dXJuIHRydWU7CkBAIC0xMDY1LDcgKzEwOTQsNyBAQCBzdGF0aWMgZW51bSBkY19zdGF0dXMgZGNfY29tbWl0X3N0YXRlX25vX2NoZWNrKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqYwogCWlmIChyZXN1bHQgIT0gRENfT0spCiAJCXJldHVybiByZXN1bHQ7CiAKLQlpZiAoY29udGV4dC0+c3RyZWFtX2NvdW50ID4gMSkgeworCWlmIChjb250ZXh0LT5zdHJlYW1fY291bnQgPiAxICYmICFkYy0+ZGVidWcuZGlzYWJsZV90aW1pbmdfc3luYykgewogCQllbmFibGVfdGltaW5nX211bHRpc3luYyhkYywgY29udGV4dCk7CiAJCXByb2dyYW1fdGltaW5nX3N5bmMoZGMsIGNvbnRleHQpOwogCX0KQEAgLTEyMDgsNiArMTIzNywxMiBAQCBzdHJ1Y3QgZGNfc3RhdGUgKmRjX2NvcHlfc3RhdGUoc3RydWN0IGRjX3N0YXRlICpzcmNfY3R4KQogCQkJaWYgKGN1cl9waXBlLT5ib3R0b21fcGlwZSkKIAkJCQljdXJfcGlwZS0+Ym90dG9tX3BpcGUgPSAmbmV3X2N0eC0+cmVzX2N0eC5waXBlX2N0eFtjdXJfcGlwZS0+Ym90dG9tX3BpcGUtPnBpcGVfaWR4XTsKIAorCQkJaWYgKGN1cl9waXBlLT5wcmV2X29kbV9waXBlKQorCQkJCWN1cl9waXBlLT5wcmV2X29kbV9waXBlID0gICZuZXdfY3R4LT5yZXNfY3R4LnBpcGVfY3R4W2N1cl9waXBlLT5wcmV2X29kbV9waXBlLT5waXBlX2lkeF07CisKKwkJCWlmIChjdXJfcGlwZS0+bmV4dF9vZG1fcGlwZSkKKwkJCQljdXJfcGlwZS0+bmV4dF9vZG1fcGlwZSA9ICZuZXdfY3R4LT5yZXNfY3R4LnBpcGVfY3R4W2N1cl9waXBlLT5uZXh0X29kbV9waXBlLT5waXBlX2lkeF07CisKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgbmV3X2N0eC0+c3RyZWFtX2NvdW50OyBpKyspIHsKQEAgLTEyMzksNiArMTI3NCw1NSBAQCB2b2lkIGRjX3JlbGVhc2Vfc3RhdGUoc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KQogCWtyZWZfcHV0KCZjb250ZXh0LT5yZWZjb3VudCwgZGNfc3RhdGVfZnJlZSk7CiB9CiAKK2Jvb2wgZGNfc2V0X2dlbmVyaWNfZ3Bpb19mb3Jfc3RlcmVvKGJvb2wgZW5hYmxlLAorCQlzdHJ1Y3QgZ3Bpb19zZXJ2aWNlICpncGlvX3NlcnZpY2UpCit7CisJZW51bSBncGlvX3Jlc3VsdCBncGlvX3Jlc3VsdCA9IEdQSU9fUkVTVUxUX05PTl9TUEVDSUZJQ19FUlJPUjsKKwlzdHJ1Y3QgZ3Bpb19waW5faW5mbyBwaW5faW5mbzsKKwlzdHJ1Y3QgZ3BpbyAqZ2VuZXJpYzsKKwlzdHJ1Y3QgZ3Bpb19nZW5lcmljX211eF9jb25maWcgKmNvbmZpZyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBncGlvX2dlbmVyaWNfbXV4X2NvbmZpZyksCisJCQkgICBHRlBfS0VSTkVMKTsKKworCWlmICghY29uZmlnKQorCQlyZXR1cm4gZmFsc2U7CisJcGluX2luZm8gPSBkYWxfZ3Bpb19nZXRfZ2VuZXJpY19waW5faW5mbyhncGlvX3NlcnZpY2UsIEdQSU9fSURfR0VORVJJQywgMCk7CisKKwlpZiAocGluX2luZm8ubWFzayA9PSAweEZGRkZGRkZGIHx8IHBpbl9pbmZvLm9mZnNldCA9PSAweEZGRkZGRkZGKSB7CisJCWtmcmVlKGNvbmZpZyk7CisJCXJldHVybiBmYWxzZTsKKwl9IGVsc2UgeworCQlnZW5lcmljID0gZGFsX2dwaW9fc2VydmljZV9jcmVhdGVfZ2VuZXJpY19tdXgoCisJCQlncGlvX3NlcnZpY2UsCisJCQlwaW5faW5mby5vZmZzZXQsCisJCQlwaW5faW5mby5tYXNrKTsKKwl9CisKKwlpZiAoIWdlbmVyaWMpIHsKKwkJa2ZyZWUoY29uZmlnKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWdwaW9fcmVzdWx0ID0gZGFsX2dwaW9fb3BlbihnZW5lcmljLCBHUElPX01PREVfT1VUUFVUKTsKKworCWNvbmZpZy0+ZW5hYmxlX291dHB1dF9mcm9tX211eCA9IGVuYWJsZTsKKwljb25maWctPm11eF9zZWxlY3QgPSBHUElPX1NJR05BTF9TT1VSQ0VfUEFTU19USFJPVUdIX1NURVJFT19TWU5DOworCisJaWYgKGdwaW9fcmVzdWx0ID09IEdQSU9fUkVTVUxUX09LKQorCQlncGlvX3Jlc3VsdCA9IGRhbF9tdXhfc2V0dXBfY29uZmlnKGdlbmVyaWMsIGNvbmZpZyk7CisKKwlpZiAoZ3Bpb19yZXN1bHQgPT0gR1BJT19SRVNVTFRfT0spIHsKKwkJZGFsX2dwaW9fY2xvc2UoZ2VuZXJpYyk7CisJCWRhbF9ncGlvX2Rlc3Ryb3lfZ2VuZXJpY19tdXgoJmdlbmVyaWMpOworCQlrZnJlZShjb25maWcpOworCQlyZXR1cm4gdHJ1ZTsKKwl9IGVsc2UgeworCQlkYWxfZ3Bpb19jbG9zZShnZW5lcmljKTsKKwkJZGFsX2dwaW9fZGVzdHJveV9nZW5lcmljX211eCgmZ2VuZXJpYyk7CisJCWtmcmVlKGNvbmZpZyk7CisJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKIHN0YXRpYyBib29sIGlzX3N1cmZhY2VfaW5fY29udGV4dCgKIAkJY29uc3Qgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAogCQljb25zdCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQpAQCAtMTMwNSw4ICsxMzg5LDggQEAgc3RhdGljIGVudW0gc3VyZmFjZV91cGRhdGVfdHlwZSBnZXRfcGxhbmVfaW5mb191cGRhdGVfdHlwZShjb25zdCBzdHJ1Y3QgZGNfc3VyZmEKIAl9CiAKIAlpZiAodS0+cGxhbmVfaW5mby0+ZGNjLmVuYWJsZSAhPSB1LT5zdXJmYWNlLT5kY2MuZW5hYmxlCi0JCQl8fCB1LT5wbGFuZV9pbmZvLT5kY2MuZ3JwaC5pbmRlcGVuZGVudF82NGJfYmxrcyAhPSB1LT5zdXJmYWNlLT5kY2MuZ3JwaC5pbmRlcGVuZGVudF82NGJfYmxrcwotCQkJfHwgdS0+cGxhbmVfaW5mby0+ZGNjLmdycGgubWV0YV9waXRjaCAhPSB1LT5zdXJmYWNlLT5kY2MuZ3JwaC5tZXRhX3BpdGNoKSB7CisJCQl8fCB1LT5wbGFuZV9pbmZvLT5kY2MuaW5kZXBlbmRlbnRfNjRiX2Jsa3MgIT0gdS0+c3VyZmFjZS0+ZGNjLmluZGVwZW5kZW50XzY0Yl9ibGtzCisJCQl8fCB1LT5wbGFuZV9pbmZvLT5kY2MubWV0YV9waXRjaCAhPSB1LT5zdXJmYWNlLT5kY2MubWV0YV9waXRjaCkgewogCQl1cGRhdGVfZmxhZ3MtPmJpdHMuZGNjX2NoYW5nZSA9IDE7CiAJCWVsZXZhdGVfdXBkYXRlX3R5cGUoJnVwZGF0ZV90eXBlLCBVUERBVEVfVFlQRV9NRUQpOwogCX0KQEAgLTEzMjAsOSArMTQwNCw5IEBAIHN0YXRpYyBlbnVtIHN1cmZhY2VfdXBkYXRlX3R5cGUgZ2V0X3BsYW5lX2luZm9fdXBkYXRlX3R5cGUoY29uc3Qgc3RydWN0IGRjX3N1cmZhCiAJCWVsZXZhdGVfdXBkYXRlX3R5cGUoJnVwZGF0ZV90eXBlLCBVUERBVEVfVFlQRV9GVUxMKTsKIAl9CiAKLQlpZiAodS0+cGxhbmVfaW5mby0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2VfcGl0Y2ggIT0gdS0+c3VyZmFjZS0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2VfcGl0Y2gKLQkJCXx8IHUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUudmlkZW8ubHVtYV9waXRjaCAhPSB1LT5zdXJmYWNlLT5wbGFuZV9zaXplLnZpZGVvLmx1bWFfcGl0Y2gKLQkJCXx8IHUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUudmlkZW8uY2hyb21hX3BpdGNoICE9IHUtPnN1cmZhY2UtPnBsYW5lX3NpemUudmlkZW8uY2hyb21hX3BpdGNoKSB7CisJaWYgKHUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUuc3VyZmFjZV9waXRjaCAhPSB1LT5zdXJmYWNlLT5wbGFuZV9zaXplLnN1cmZhY2VfcGl0Y2gKKwkJCXx8IHUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUuc3VyZmFjZV9waXRjaCAhPSB1LT5zdXJmYWNlLT5wbGFuZV9zaXplLnN1cmZhY2VfcGl0Y2gKKwkJCXx8IHUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUuY2hyb21hX3BpdGNoICE9IHUtPnN1cmZhY2UtPnBsYW5lX3NpemUuY2hyb21hX3BpdGNoKSB7CiAJCXVwZGF0ZV9mbGFncy0+Yml0cy5wbGFuZV9zaXplX2NoYW5nZSA9IDE7CiAJCWVsZXZhdGVfdXBkYXRlX3R5cGUoJnVwZGF0ZV90eXBlLCBVUERBVEVfVFlQRV9NRUQpOwogCX0KQEAgLTE1NDIsNiArMTYyNiw5IEBAIGVudW0gc3VyZmFjZV91cGRhdGVfdHlwZSBkY19jaGVja191cGRhdGVfc3VyZmFjZXNfZm9yX3N0cmVhbSgKIAkJZm9yIChpID0gMDsgaSA8IHN1cmZhY2VfY291bnQ7IGkrKykKIAkJCXVwZGF0ZXNbaV0uc3VyZmFjZS0+dXBkYXRlX2ZsYWdzLnJhdyA9IDB4RkZGRkZGRkY7CiAKKwlpZiAodHlwZSA9PSBVUERBVEVfVFlQRV9GQVNUICYmIG1lbWNtcCgmZGMtPmN1cnJlbnRfc3RhdGUtPmJ3X2N0eC5idy5kY24uY2xrLCAmZGMtPmNsa19tZ3ItPmNsa3MsIG9mZnNldG9mKHN0cnVjdCBkY19jbG9ja3MsIHByZXZfcF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydCkpICE9IDApCisJCWRjLT5vcHRpbWl6ZWRfcmVxdWlyZWQgPSB0cnVlOworCiAJcmV0dXJuIHR5cGU7CiB9CiAKQEAgLTE2MTgsNiArMTcwNSw4IEBAIHN0YXRpYyB2b2lkIGNvcHlfc3VyZmFjZV91cGRhdGVfdG9fcGxhbmUoCiAJCQkJc3JmX3VwZGF0ZS0+cGxhbmVfaW5mby0+ZGNjOwogCQlzdXJmYWNlLT5zZHJfd2hpdGVfbGV2ZWwgPQogCQkJCXNyZl91cGRhdGUtPnBsYW5lX2luZm8tPnNkcl93aGl0ZV9sZXZlbDsKKwkJc3VyZmFjZS0+bGF5ZXJfaW5kZXggPQorCQkJCXNyZl91cGRhdGUtPnBsYW5lX2luZm8tPmxheWVyX2luZGV4OwogCX0KIAogCWlmIChzcmZfdXBkYXRlLT5nYW1tYSAmJgpAQCAtMTc4NCw5ICsxODczLDcgQEAgc3RhdGljIHZvaWQgY29tbWl0X3BsYW5lc19kb19zdHJlYW1fdXBkYXRlKHN0cnVjdCBkYyAqZGMsCiAJZm9yIChqID0gMDsgaiA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaisrKSB7CiAJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHggPSAmY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtqXTsKIAotCQlpZiAoIXBpcGVfY3R4LT50b3BfcGlwZSAmJgotCQkJcGlwZV9jdHgtPnN0cmVhbSAmJgotCQkJcGlwZV9jdHgtPnN0cmVhbSA9PSBzdHJlYW0pIHsKKwkJaWYgKCFwaXBlX2N0eC0+dG9wX3BpcGUgJiYgICFwaXBlX2N0eC0+cHJldl9vZG1fcGlwZSAmJiBwaXBlX2N0eC0+c3RyZWFtID09IHN0cmVhbSkgewogCiAJCQlpZiAoc3RyZWFtX3VwZGF0ZS0+cGVyaW9kaWNfaW50ZXJydXB0MCAmJgogCQkJCQlkYy0+aHdzcy5zZXR1cF9wZXJpb2RpY19pbnRlcnJ1cHQpCkBAIC0xODEyLDcgKzE4OTksNyBAQCBzdGF0aWMgdm9pZCBjb21taXRfcGxhbmVzX2RvX3N0cmVhbV91cGRhdGUoc3RydWN0IGRjICpkYywKIAogCQkJaWYgKHN0cmVhbV91cGRhdGUtPmRpdGhlcl9vcHRpb24pIHsKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKLQkJCQlzdHJ1Y3QgcGlwZV9jdHggKm9kbV9waXBlID0gZGNfcmVzX2dldF9vZG1fYm90dG9tX3BpcGUocGlwZV9jdHgpOworCQkJCXN0cnVjdCBwaXBlX2N0eCAqb2RtX3BpcGUgPSBwaXBlX2N0eC0+bmV4dF9vZG1fcGlwZTsKICNlbmRpZgogCQkJCXJlc291cmNlX2J1aWxkX2JpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zKHBpcGVfY3R4LT5zdHJlYW0sCiAJCQkJCQkJCQkmcGlwZV9jdHgtPnN0cmVhbS0+Yml0X2RlcHRoX3BhcmFtcyk7CkBAIC0xODIwLDEwICsxOTA3LDEyIEBAIHN0YXRpYyB2b2lkIGNvbW1pdF9wbGFuZXNfZG9fc3RyZWFtX3VwZGF0ZShzdHJ1Y3QgZGMgKmRjLAogCQkJCQkJJnN0cmVhbS0+Yml0X2RlcHRoX3BhcmFtcywKIAkJCQkJCSZzdHJlYW0tPmNsYW1waW5nKTsKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKLQkJCQlpZiAob2RtX3BpcGUpCisJCQkJd2hpbGUgKG9kbV9waXBlKSB7CiAJCQkJCW9kbV9waXBlLT5zdHJlYW1fcmVzLm9wcC0+ZnVuY3MtPm9wcF9wcm9ncmFtX2ZtdChvZG1fcGlwZS0+c3RyZWFtX3Jlcy5vcHAsCiAJCQkJCQkJJnN0cmVhbS0+Yml0X2RlcHRoX3BhcmFtcywKIAkJCQkJCQkmc3RyZWFtLT5jbGFtcGluZyk7CisJCQkJCW9kbV9waXBlID0gb2RtX3BpcGUtPm5leHRfb2RtX3BpcGU7CisJCQkJfQogI2VuZGlmCiAJCQl9CiAKQEAgLTE4NDAsMTMgKzE5MjksMjEgQEAgc3RhdGljIHZvaWQgY29tbWl0X3BsYW5lc19kb19zdHJlYW1fdXBkYXRlKHN0cnVjdCBkYyAqZGMsCiAKIAkJCWlmIChzdHJlYW1fdXBkYXRlLT5kcG1zX29mZikgewogCQkJCWRjLT5od3NzLnBpcGVfY29udHJvbF9sb2NrKGRjLCBwaXBlX2N0eCwgdHJ1ZSk7CisKIAkJCQlpZiAoKnN0cmVhbV91cGRhdGUtPmRwbXNfb2ZmKSB7Ci0JCQkJCWNvcmVfbGlua19kaXNhYmxlX3N0cmVhbShwaXBlX2N0eCwgS0VFUF9BQ1FVSVJFRF9SRVNPVVJDRSk7CisJCQkJCWNvcmVfbGlua19kaXNhYmxlX3N0cmVhbShwaXBlX2N0eCk7CisJCQkJCS8qIGZvciBkcG1zLCBrZWVwIGFjcXVpcmVkIHJlc291cmNlcyovCisJCQkJCWlmIChwaXBlX2N0eC0+c3RyZWFtX3Jlcy5hdWRpbyAmJiAhZGMtPmRlYnVnLmF6X2VuZHBvaW50X211dGVfb25seSkKKwkJCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLmF1ZGlvLT5mdW5jcy0+YXpfZGlzYWJsZShwaXBlX2N0eC0+c3RyZWFtX3Jlcy5hdWRpbyk7CisKIAkJCQkJZGMtPmh3c3Mub3B0aW1pemVfYmFuZHdpZHRoKGRjLCBkYy0+Y3VycmVudF9zdGF0ZSk7CiAJCQkJfSBlbHNlIHsKLQkJCQkJZGMtPmh3c3MucHJlcGFyZV9iYW5kd2lkdGgoZGMsIGRjLT5jdXJyZW50X3N0YXRlKTsKKwkJCQkJaWYgKCFkYy0+b3B0aW1pemVfc2VhbWxlc3NfYm9vdCkKKwkJCQkJCWRjLT5od3NzLnByZXBhcmVfYmFuZHdpZHRoKGRjLCBkYy0+Y3VycmVudF9zdGF0ZSk7CisKIAkJCQkJY29yZV9saW5rX2VuYWJsZV9zdHJlYW0oZGMtPmN1cnJlbnRfc3RhdGUsIHBpcGVfY3R4KTsKIAkJCQl9CisKIAkJCQlkYy0+aHdzcy5waXBlX2NvbnRyb2xfbG9jayhkYywgcGlwZV9jdHgsIGZhbHNlKTsKIAkJCX0KIApAQCAtMTkzNiw2ICsyMDMzLDcgQEAgc3RhdGljIHZvaWQgY29tbWl0X3BsYW5lc19mb3Jfc3RyZWFtKHN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHggPSAmY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtqXTsKIAogCQlpZiAoIXBpcGVfY3R4LT50b3BfcGlwZSAmJgorCQkJIXBpcGVfY3R4LT5wcmV2X29kbV9waXBlICYmCiAJCQlwaXBlX2N0eC0+c3RyZWFtICYmCiAJCQlwaXBlX2N0eC0+c3RyZWFtID09IHN0cmVhbSkgewogCQkJc3RydWN0IGRjX3N0cmVhbV9zdGF0dXMgKnN0cmVhbV9zdGF0dXMgPSBOVUxMOwpAQCAtMjA1MCw3ICsyMTQ4LDcgQEAgdm9pZCBkY19jb21taXRfdXBkYXRlc19mb3Jfc3RyZWFtKHN0cnVjdCBkYyAqZGMsCiAJZW51bSBzdXJmYWNlX3VwZGF0ZV90eXBlIHVwZGF0ZV90eXBlOwogCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dDsKIAlzdHJ1Y3QgZGNfY29udGV4dCAqZGNfY3R4ID0gZGMtPmN0eDsKLQlpbnQgaSwgajsKKwlpbnQgaTsKIAogCXN0cmVhbV9zdGF0dXMgPSBkY19zdHJlYW1fZ2V0X3N0YXR1cyhzdHJlYW0pOwogCWNvbnRleHQgPSBkYy0+Y3VycmVudF9zdGF0ZTsKQEAgLTIwODgsMTYgKzIxODYsNiBAQCB2b2lkIGRjX2NvbW1pdF91cGRhdGVzX2Zvcl9zdHJlYW0oc3RydWN0IGRjICpkYywKIAogCQljb3B5X3N1cmZhY2VfdXBkYXRlX3RvX3BsYW5lKHN1cmZhY2UsICZzcmZfdXBkYXRlc1tpXSk7CiAKLQkJaWYgKHVwZGF0ZV90eXBlID49IFVQREFURV9UWVBFX01FRCkgewotCQkJZm9yIChqID0gMDsgaiA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaisrKSB7Ci0JCQkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCA9ICZjb250ZXh0LT5yZXNfY3R4LnBpcGVfY3R4W2pdOwotCi0JCQkJaWYgKHBpcGVfY3R4LT5wbGFuZV9zdGF0ZSAhPSBzdXJmYWNlKQotCQkJCQljb250aW51ZTsKLQotCQkJCXJlc291cmNlX2J1aWxkX3NjYWxpbmdfcGFyYW1zKHBpcGVfY3R4KTsKLQkJCX0KLQkJfQogCX0KIAogCWNvcHlfc3RyZWFtX3VwZGF0ZV90b19zdHJlYW0oZGMsIGNvbnRleHQsIHN0cmVhbSwgc3RyZWFtX3VwZGF0ZSk7CkBAIC0yMTg3LDYgKzIyNzUsMTQgQEAgdm9pZCBkY19zZXRfcG93ZXJfc3RhdGUoCiAJCWRjX3Jlc291cmNlX3N0YXRlX2NvbnN0cnVjdChkYywgZGMtPmN1cnJlbnRfc3RhdGUpOwogCiAJCWRjLT5od3NzLmluaXRfaHcoZGMpOworCisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMl8wCisJCWlmIChkYy0+aHdzcy5pbml0X3N5c19jdHggIT0gTlVMTCAmJgorCQkJZGMtPnZtX3BhX2NvbmZpZy52YWxpZCkgeworCQkJZGMtPmh3c3MuaW5pdF9zeXNfY3R4KGRjLT5od3NlcSwgZGMsICZkYy0+dm1fcGFfY29uZmlnKTsKKwkJfQorI2VuZGlmCisKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJQVNTRVJUKGRjLT5jdXJyZW50X3N0YXRlLT5zdHJlYW1fY291bnQgPT0gMCk7CkBAIC0yMzg3LDMgKzI0ODMsMTQgQEAgdm9pZCBnZXRfY2xvY2tfcmVxdWlyZW1lbnRzX2Zvcl9zdGF0ZShzdHJ1Y3QgZGNfc3RhdGUgKnN0YXRlLCBzdHJ1Y3QgQXNpY1N0YXRlRXgKIAlpbmZvLT5mQ2xvY2sJCQkJCT0gKHVuc2lnbmVkIGludClzdGF0ZS0+YndfY3R4LmJ3LmRjbi5jbGsuZmNsa19raHo7CiAJaW5mby0+cGh5Q2xvY2sJCQkJCT0gKHVuc2lnbmVkIGludClzdGF0ZS0+YndfY3R4LmJ3LmRjbi5jbGsucGh5Y2xrX2toejsKIH0KK2VudW0gZGNfc3RhdHVzIGRjX3NldF9jbG9jayhzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2Nsb2NrX3R5cGUgY2xvY2tfdHlwZSwgdWludDMyX3QgY2xrX2toeiwgdWludDMyX3Qgc3RlcHBpbmcpCit7CisJaWYgKGRjLT5od3NzLnNldF9jbG9jaykKKwkJcmV0dXJuIGRjLT5od3NzLnNldF9jbG9jayhkYywgY2xvY2tfdHlwZSwgY2xrX2toeiwgc3RlcHBpbmcpOworCXJldHVybiBEQ19FUlJPUl9VTkVYUEVDVEVEOworfQordm9pZCBkY19nZXRfY2xvY2soc3RydWN0IGRjICpkYywgZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5cGUsIHN0cnVjdCBkY19jbG9ja19jb25maWcgKmNsb2NrX2NmZykKK3sKKwlpZiAoZGMtPmh3c3MuZ2V0X2Nsb2NrKQorCQlkYy0+aHdzcy5nZXRfY2xvY2soZGMsIGNsb2NrX3R5cGUsIGNsb2NrX2NmZyk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19kZWJ1Zy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfZGVidWcuYwppbmRleCA1OTAzZTc4Li5iOTIyN2Q1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19kZWJ1Zy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2RlYnVnLmMKQEAgLTExNSwxNiArMTE1LDE2IEBAIHZvaWQgcHJlX3N1cmZhY2VfdHJhY2UoCiAJCQkJcGxhbmVfc3RhdGUtPmNsaXBfcmVjdC5oZWlnaHQpOwogCiAJCVNVUkZBQ0VfVFJBQ0UoCi0JCQkJInBsYW5lX3N0YXRlLT5wbGFuZV9zaXplLmdycGguc3VyZmFjZV9zaXplLnggPSAlZDtcbiIKLQkJCQkicGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3NpemUueSA9ICVkO1xuIgotCQkJCSJwbGFuZV9zdGF0ZS0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2Vfc2l6ZS53aWR0aCA9ICVkO1xuIgotCQkJCSJwbGFuZV9zdGF0ZS0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2Vfc2l6ZS5oZWlnaHQgPSAlZDtcbiIKLQkJCQkicGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3BpdGNoID0gJWQ7XG4iLAotCQkJCXBsYW5lX3N0YXRlLT5wbGFuZV9zaXplLmdycGguc3VyZmFjZV9zaXplLngsCi0JCQkJcGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3NpemUueSwKLQkJCQlwbGFuZV9zdGF0ZS0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2Vfc2l6ZS53aWR0aCwKLQkJCQlwbGFuZV9zdGF0ZS0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2Vfc2l6ZS5oZWlnaHQsCi0JCQkJcGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3BpdGNoKTsKKwkJCQkicGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuc3VyZmFjZV9zaXplLnggPSAlZDtcbiIKKwkJCQkicGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuc3VyZmFjZV9zaXplLnkgPSAlZDtcbiIKKwkJCQkicGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuc3VyZmFjZV9zaXplLndpZHRoID0gJWQ7XG4iCisJCQkJInBsYW5lX3N0YXRlLT5wbGFuZV9zaXplLnN1cmZhY2Vfc2l6ZS5oZWlnaHQgPSAlZDtcbiIKKwkJCQkicGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuc3VyZmFjZV9waXRjaCA9ICVkO1xuIiwKKwkJCQlwbGFuZV9zdGF0ZS0+cGxhbmVfc2l6ZS5zdXJmYWNlX3NpemUueCwKKwkJCQlwbGFuZV9zdGF0ZS0+cGxhbmVfc2l6ZS5zdXJmYWNlX3NpemUueSwKKwkJCQlwbGFuZV9zdGF0ZS0+cGxhbmVfc2l6ZS5zdXJmYWNlX3NpemUud2lkdGgsCisJCQkJcGxhbmVfc3RhdGUtPnBsYW5lX3NpemUuc3VyZmFjZV9zaXplLmhlaWdodCwKKwkJCQlwbGFuZV9zdGF0ZS0+cGxhbmVfc2l6ZS5zdXJmYWNlX3BpdGNoKTsKIAogCiAJCVNVUkZBQ0VfVFJBQ0UoCkBAIC0yMDIsMjAgKzIwMiwyMCBAQCB2b2lkIHVwZGF0ZV9zdXJmYWNlX3RyYWNlKAogCQkJU1VSRkFDRV9UUkFDRSgKIAkJCQkJInBsYW5lX2luZm8tPmNvbG9yX3NwYWNlID0gJWQ7XG4iCiAJCQkJCSJwbGFuZV9pbmZvLT5mb3JtYXQgPSAlZDtcbiIKLQkJCQkJInBsYW5lX2luZm8tPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3BpdGNoID0gJWQ7XG4iCi0JCQkJCSJwbGFuZV9pbmZvLT5wbGFuZV9zaXplLmdycGguc3VyZmFjZV9zaXplLmhlaWdodCA9ICVkO1xuIgotCQkJCQkicGxhbmVfaW5mby0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2Vfc2l6ZS53aWR0aCA9ICVkO1xuIgotCQkJCQkicGxhbmVfaW5mby0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2Vfc2l6ZS54ID0gJWQ7XG4iCi0JCQkJCSJwbGFuZV9pbmZvLT5wbGFuZV9zaXplLmdycGguc3VyZmFjZV9zaXplLnkgPSAlZDtcbiIKKwkJCQkJInBsYW5lX2luZm8tPnBsYW5lX3NpemUuc3VyZmFjZV9waXRjaCA9ICVkO1xuIgorCQkJCQkicGxhbmVfaW5mby0+cGxhbmVfc2l6ZS5zdXJmYWNlX3NpemUuaGVpZ2h0ID0gJWQ7XG4iCisJCQkJCSJwbGFuZV9pbmZvLT5wbGFuZV9zaXplLnN1cmZhY2Vfc2l6ZS53aWR0aCA9ICVkO1xuIgorCQkJCQkicGxhbmVfaW5mby0+cGxhbmVfc2l6ZS5zdXJmYWNlX3NpemUueCA9ICVkO1xuIgorCQkJCQkicGxhbmVfaW5mby0+cGxhbmVfc2l6ZS5zdXJmYWNlX3NpemUueSA9ICVkO1xuIgogCQkJCQkicGxhbmVfaW5mby0+cm90YXRpb24gPSAlZDtcbiIKIAkJCQkJInBsYW5lX2luZm8tPnN0ZXJlb19mb3JtYXQgPSAlZDtcbiIsCiAJCQkJCXVwZGF0ZS0+cGxhbmVfaW5mby0+Y29sb3Jfc3BhY2UsCiAJCQkJCXVwZGF0ZS0+cGxhbmVfaW5mby0+Zm9ybWF0LAotCQkJCQl1cGRhdGUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3BpdGNoLAotCQkJCQl1cGRhdGUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3NpemUuaGVpZ2h0LAotCQkJCQl1cGRhdGUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3NpemUud2lkdGgsCi0JCQkJCXVwZGF0ZS0+cGxhbmVfaW5mby0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2Vfc2l6ZS54LAotCQkJCQl1cGRhdGUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUuZ3JwaC5zdXJmYWNlX3NpemUueSwKKwkJCQkJdXBkYXRlLT5wbGFuZV9pbmZvLT5wbGFuZV9zaXplLnN1cmZhY2VfcGl0Y2gsCisJCQkJCXVwZGF0ZS0+cGxhbmVfaW5mby0+cGxhbmVfc2l6ZS5zdXJmYWNlX3NpemUuaGVpZ2h0LAorCQkJCQl1cGRhdGUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUuc3VyZmFjZV9zaXplLndpZHRoLAorCQkJCQl1cGRhdGUtPnBsYW5lX2luZm8tPnBsYW5lX3NpemUuc3VyZmFjZV9zaXplLngsCisJCQkJCXVwZGF0ZS0+cGxhbmVfaW5mby0+cGxhbmVfc2l6ZS5zdXJmYWNlX3NpemUueSwKIAkJCQkJdXBkYXRlLT5wbGFuZV9pbmZvLT5yb3RhdGlvbiwKIAkJCQkJdXBkYXRlLT5wbGFuZV9pbmZvLT5zdGVyZW9fZm9ybWF0KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGluay5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGluay5jCmluZGV4IDM1NWI0YmEuLmNhMjBiMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19saW5rLmMKQEAgLTQ1LDEwICs0NSw2IEBACiAjaW5jbHVkZSAiZHBjZF9kZWZzLmgiCiAjaW5jbHVkZSAiZG1jdS5oIgogI2luY2x1ZGUgImh3L2Nsa19tZ3IuaCIKLSNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKLSNpbmNsdWRlICJyZXNvdXJjZS5oIgotI2VuZGlmCi0jaW5jbHVkZSAiaHcvY2xrX21nci5oIgogCiAjZGVmaW5lIERDX0xPR0dFUl9JTklUKGxvZ2dlcikKIApAQCAtNjg0LDYgKzY4MCw1NiBAQCBzdGF0aWMgYm9vbCBpc19zYW1lX2VkaWQoc3RydWN0IGRjX2VkaWQgKm9sZF9lZGlkLCBzdHJ1Y3QgZGNfZWRpZCAqbmV3X2VkaWQpCiAJcmV0dXJuIChtZW1jbXAob2xkX2VkaWQtPnJhd19lZGlkLCBuZXdfZWRpZC0+cmF3X2VkaWQsIG5ld19lZGlkLT5sZW5ndGgpID09IDApOwogfQogCitib29sIHdhaXRfZm9yX2FsdF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rKQoreworCisJLyoqCisJICogc29tZXRoaW5nIGlzIHRlcnJpYmx5IHdyb25nIGlmIHRpbWUgb3V0IGlzID4gMjAwbXMuICg1SHopCisJICogNTAwIG1pY3Jvc2Vjb25kcyAqIDQwMCB0cmllcyB1cyAyMDAgbXMKKwkgKiovCisJdW5zaWduZWQgaW50IHNsZWVwX3RpbWVfaW5fbWljcm9zZWNvbmRzID0gNTAwOworCXVuc2lnbmVkIGludCB0cmllc19hbGxvd2VkID0gNDAwOworCWJvb2wgaXNfaW5fYWx0X21vZGU7CisJdW5zaWduZWQgbG9uZyBsb25nIGVudGVyX3RpbWVzdGFtcDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgZmluaXNoX3RpbWVzdGFtcDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdGltZV90YWtlbl9pbl9uczsKKwlpbnQgdHJpZXNfdGFrZW47CisKKwlEQ19MT0dHRVJfSU5JVChsaW5rLT5jdHgtPmxvZ2dlcik7CisKKwlpZiAobGluay0+bGlua19lbmMtPmZ1bmNzLT5pc19pbl9hbHRfbW9kZSA9PSBOVUxMKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlzX2luX2FsdF9tb2RlID0gbGluay0+bGlua19lbmMtPmZ1bmNzLT5pc19pbl9hbHRfbW9kZShsaW5rLT5saW5rX2VuYyk7CisJRENfTE9HX1dBUk5JTkcoIkRQIEFsdCBtb2RlIHN0YXRlIG9uIEhQRDogJWRcbiIsIGlzX2luX2FsdF9tb2RlKTsKKworCWlmIChpc19pbl9hbHRfbW9kZSkKKwkJcmV0dXJuIHRydWU7CisKKwllbnRlcl90aW1lc3RhbXAgPSBkbV9nZXRfdGltZXN0YW1wKGxpbmstPmN0eCk7CisKKwlmb3IgKHRyaWVzX3Rha2VuID0gMDsgdHJpZXNfdGFrZW4gPCB0cmllc19hbGxvd2VkOyB0cmllc190YWtlbisrKSB7CisJCXVkZWxheShzbGVlcF90aW1lX2luX21pY3Jvc2Vjb25kcyk7CisJCS8qIGFzayB0aGUgbGluayBpZiBhbHQgbW9kZSBpcyBlbmFibGVkLCBpZiBzbyByZXR1cm4gb2sgKi8KKwkJaWYgKGxpbmstPmxpbmtfZW5jLT5mdW5jcy0+aXNfaW5fYWx0X21vZGUobGluay0+bGlua19lbmMpKSB7CisKKwkJCWZpbmlzaF90aW1lc3RhbXAgPSBkbV9nZXRfdGltZXN0YW1wKGxpbmstPmN0eCk7CisJCQl0aW1lX3Rha2VuX2luX25zID0gZG1fZ2V0X2VsYXBzZV90aW1lX2luX25zKAorCQkJCWxpbmstPmN0eCwgZmluaXNoX3RpbWVzdGFtcCwgZW50ZXJfdGltZXN0YW1wKTsKKwkJCURDX0xPR19XQVJOSU5HKCJBbHQgbW9kZSBlbnRlcmVkIGZpbmlzaGVkIGFmdGVyICVsbHUgbXNcbiIsCisJCQkJICAgICAgIGRpdl91NjQodGltZV90YWtlbl9pbl9ucywgMTAwMDAwMCkpOworCQkJcmV0dXJuIHRydWU7CisJCX0KKworCX0KKwlmaW5pc2hfdGltZXN0YW1wID0gZG1fZ2V0X3RpbWVzdGFtcChsaW5rLT5jdHgpOworCXRpbWVfdGFrZW5faW5fbnMgPSBkbV9nZXRfZWxhcHNlX3RpbWVfaW5fbnMobGluay0+Y3R4LCBmaW5pc2hfdGltZXN0YW1wLAorCQkJCQkJICAgIGVudGVyX3RpbWVzdGFtcCk7CisJRENfTE9HX1dBUk5JTkcoIkFsdCBtb2RlIGhhcyB0aW1lZCBvdXQgYWZ0ZXIgJWxsdSBtc1xuIiwKKwkJCWRpdl91NjQodGltZV90YWtlbl9pbl9ucywgMTAwMDAwMCkpOworCXJldHVybiBmYWxzZTsKK30KKwogLyoqCiAgKiBkY19saW5rX2RldGVjdCgpIC0gRGV0ZWN0IGlmIGEgc2luayBpcyBhdHRhY2hlZCB0byBhIGdpdmVuIGxpbmsKICAqCkBAIC03NzIsNiArODE4LDE1IEBAIGJvb2wgZGNfbGlua19kZXRlY3Qoc3RydWN0IGRjX2xpbmsgKmxpbmssIGVudW0gZGNfZGV0ZWN0X3JlYXNvbiByZWFzb24pCiAJCX0KIAogCQljYXNlIFNJR05BTF9UWVBFX0RJU1BMQVlfUE9SVDogeworCQkJLyogd2EgSFBEIGhpZ2ggY29taW5nIHRvbyBlYXJseSovCisJCQlpZiAobGluay0+bGlua19lbmMtPmZlYXR1cmVzLmZsYWdzLmJpdHMuRFBfSVNfVVNCX0MgPT0gMSkgeworCisJCQkJLyogaWYgYWx0IG1vZGUgdGltZXMgb3V0LCByZXR1cm4gZmFsc2UgKi8KKwkJCQlpZiAod2FpdF9mb3JfYWx0X21vZGUobGluaykgPT0gZmFsc2UpIHsKKwkJCQkJcmV0dXJuIGZhbHNlOworCQkJCX0KKwkJCX0KKwogCQkJaWYgKCFkZXRlY3RfZHAoCiAJCQkJbGluaywKIAkJCQkmc2lua19jYXBzLApAQCAtNzk1LDE2ICs4NTAsOSBAQCBib29sIGRjX2xpbmtfZGV0ZWN0KHN0cnVjdCBkY19saW5rICpsaW5rLCBlbnVtIGRjX2RldGVjdF9yZWFzb24gcmVhc29uKQogCQkJCQlkY19zaW5rX3JlbGVhc2UocHJldl9zaW5rKTsKIAkJCQl9IGVsc2UgewogCQkJCQkvKiBFbXB0eSBkb25nbGUgcGx1ZyBpbiAqLwotCQkJCQlmb3IgKGkgPSAwOyBpIDwgTElOS19UUkFJTklOR19NQVhfVkVSSUZZX1JFVFJZOyBpKyspIHsKLQkJCQkJCWludCBmYWlsX2NvdW50ID0gMDsKLQotCQkJCQkJZHBfdmVyaWZ5X2xpbmtfY2FwKGxpbmssCi0JCQkJCQkJCSAgJmxpbmstPnJlcG9ydGVkX2xpbmtfY2FwLAotCQkJCQkJCQkgICZmYWlsX2NvdW50KTsKLQotCQkJCQkJaWYgKGZhaWxfY291bnQgPT0gMCkKLQkJCQkJCQlicmVhazsKLQkJCQkJfQorCQkJCQlkcF92ZXJpZnlfbGlua19jYXBfd2l0aF9yZXRyaWVzKGxpbmssCisJCQkJCQkJJmxpbmstPnJlcG9ydGVkX2xpbmtfY2FwLAorCQkJCQkJCUxJTktfVFJBSU5JTkdfTUFYX1ZFUklGWV9SRVRSWSk7CiAJCQkJfQogCQkJCXJldHVybiB0cnVlOwogCQkJfQpAQCAtOTA4LDE3ICs5NTYsOSBAQCBib29sIGRjX2xpbmtfZGV0ZWN0KHN0cnVjdCBkY19saW5rICpsaW5rLCBlbnVtIGRjX2RldGVjdF9yZWFzb24gcmVhc29uKQogCQkJICovCiAKIAkJCS8qIGRlYWwgd2l0aCBub24tbXN0IGNhc2VzICovCi0JCQlmb3IgKGkgPSAwOyBpIDwgTElOS19UUkFJTklOR19NQVhfVkVSSUZZX1JFVFJZOyBpKyspIHsKLQkJCQlpbnQgZmFpbF9jb3VudCA9IDA7Ci0KLQkJCQlkcF92ZXJpZnlfbGlua19jYXAobGluaywKLQkJCQkJCSAgJmxpbmstPnJlcG9ydGVkX2xpbmtfY2FwLAotCQkJCQkJICAmZmFpbF9jb3VudCk7Ci0KLQkJCQlpZiAoZmFpbF9jb3VudCA9PSAwKQotCQkJCQlicmVhazsKLQkJCX0KLQorCQkJZHBfdmVyaWZ5X2xpbmtfY2FwX3dpdGhfcmV0cmllcyhsaW5rLAorCQkJCQkmbGluay0+cmVwb3J0ZWRfbGlua19jYXAsCisJCQkJCUxJTktfVFJBSU5JTkdfTUFYX1ZFUklGWV9SRVRSWSk7CiAJCX0gZWxzZSB7CiAJCQkvLyBJZiBlZGlkIGlzIHRoZSBzYW1lLCB0aGVuIGRpc2NhcmQgbmV3IHNpbmsgYW5kIHJldmVydCBiYWNrIHRvIG9yaWdpbmFsIHNpbmsKIAkJCWlmIChzYW1lX2VkaWQpIHsKQEAgLTExODgsNiArMTIyOCw5IEBAIHN0YXRpYyBib29sIGNvbnN0cnVjdCgKIAlsaW5rLT5jdHggPSBkY19jdHg7CiAJbGluay0+bGlua19pbmRleCA9IGluaXRfcGFyYW1zLT5saW5rX2luZGV4OwogCisJbWVtc2V0KCZsaW5rLT5wcmVmZXJyZWRfdHJhaW5pbmdfc2V0dGluZ3MsIDAsIHNpemVvZihzdHJ1Y3QgZGNfbGlua190cmFpbmluZ19vdmVycmlkZXMpKTsKKwltZW1zZXQoJmxpbmstPnByZWZlcnJlZF9saW5rX3NldHRpbmcsIDAsIHNpemVvZihzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncykpOworCiAJbGluay0+bGlua19pZCA9IGJpb3MtPmZ1bmNzLT5nZXRfY29ubmVjdG9yX2lkKGJpb3MsIGluaXRfcGFyYW1zLT5jb25uZWN0b3JfaW5kZXgpOwogCiAJaWYgKGxpbmstPmxpbmtfaWQudHlwZSAhPSBPQkpFQ1RfVFlQRV9DT05ORUNUT1IpIHsKQEAgLTEzODQsNTcgKzE0MjcsNiBAQCB2b2lkIGxpbmtfZGVzdHJveShzdHJ1Y3QgZGNfbGluayAqKmxpbmspCiAJKmxpbmsgPSBOVUxMOwogfQogCi1zdGF0aWMgdm9pZCBkcGNkX2NvbmZpZ3VyZV9wYW5lbF9tb2RlKAotCXN0cnVjdCBkY19saW5rICpsaW5rLAotCWVudW0gZHBfcGFuZWxfbW9kZSBwYW5lbF9tb2RlKQotewotCXVuaW9uIGRwY2RfZWRwX2NvbmZpZyBlZHBfY29uZmlnX3NldDsKLQlib29sIHBhbmVsX21vZGVfZWRwID0gZmFsc2U7Ci0JRENfTE9HR0VSX0lOSVQobGluay0+Y3R4LT5sb2dnZXIpOwotCi0JbWVtc2V0KCZlZHBfY29uZmlnX3NldCwgJ1wwJywgc2l6ZW9mKHVuaW9uIGRwY2RfZWRwX2NvbmZpZykpOwotCi0JaWYgKERQX1BBTkVMX01PREVfREVGQVVMVCAhPSBwYW5lbF9tb2RlKSB7Ci0KLQkJc3dpdGNoIChwYW5lbF9tb2RlKSB7Ci0JCWNhc2UgRFBfUEFORUxfTU9ERV9FRFA6Ci0JCWNhc2UgRFBfUEFORUxfTU9ERV9TUEVDSUFMOgotCQkJcGFuZWxfbW9kZV9lZHAgPSB0cnVlOwotCQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLQkJCWJyZWFrOwotCQl9Ci0KLQkJLypzZXQgZWRwIHBhbmVsIG1vZGUgaW4gcmVjZWl2ZXIqLwotCQljb3JlX2xpbmtfcmVhZF9kcGNkKAotCQkJbGluaywKLQkJCURQX0VEUF9DT05GSUdVUkFUSU9OX1NFVCwKLQkJCSZlZHBfY29uZmlnX3NldC5yYXcsCi0JCQlzaXplb2YoZWRwX2NvbmZpZ19zZXQucmF3KSk7Ci0KLQkJaWYgKGVkcF9jb25maWdfc2V0LmJpdHMuUEFORUxfTU9ERV9FRFAKLQkJCSE9IHBhbmVsX21vZGVfZWRwKSB7Ci0JCQllbnVtIGRkY19yZXN1bHQgcmVzdWx0ID0gRERDX1JFU1VMVF9VTktOT1dOOwotCi0JCQllZHBfY29uZmlnX3NldC5iaXRzLlBBTkVMX01PREVfRURQID0KLQkJCXBhbmVsX21vZGVfZWRwOwotCQkJcmVzdWx0ID0gY29yZV9saW5rX3dyaXRlX2RwY2QoCi0JCQkJbGluaywKLQkJCQlEUF9FRFBfQ09ORklHVVJBVElPTl9TRVQsCi0JCQkJJmVkcF9jb25maWdfc2V0LnJhdywKLQkJCQlzaXplb2YoZWRwX2NvbmZpZ19zZXQucmF3KSk7Ci0KLQkJCUFTU0VSVChyZXN1bHQgPT0gRERDX1JFU1VMVF9TVUNFU1NGVUxMKTsKLQkJfQotCX0KLQlEQ19MT0dfREVURUNUSU9OX0RQX0NBUFMoIkxpbms6ICVkIGVEUCBwYW5lbCBtb2RlIHN1cHBvcnRlZDogJWQgIgotCQkJImVEUCBwYW5lbCBtb2RlIGVuYWJsZWQ6ICVkIFxuIiwKLQkJCWxpbmstPmxpbmtfaW5kZXgsCi0JCQlsaW5rLT5kcGNkX2NhcHMucGFuZWxfbW9kZV9lZHAsCi0JCQlwYW5lbF9tb2RlX2VkcCk7Ci19Ci0KIHN0YXRpYyB2b2lkIGVuYWJsZV9zdHJlYW1fZmVhdHVyZXMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0gPSBwaXBlX2N0eC0+c3RyZWFtOwpAQCAtMTQ2Niw2ICsxNDU4LDE5IEBAIHN0YXRpYyBlbnVtIGRjX3N0YXR1cyBlbmFibGVfbGlua19kcCgKIAlzdHJ1Y3QgZGNfbGluayAqbGluayA9IHN0cmVhbS0+bGluazsKIAlzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyBsaW5rX3NldHRpbmdzID0gezB9OwogCWVudW0gZHBfcGFuZWxfbW9kZSBwYW5lbF9tb2RlOworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJYm9vbCBmZWNfZW5hYmxlOworI2VuZGlmCisJaW50IGk7CisJYm9vbCBhcHBseV9zZWFtbGVzc19ib290X29wdGltaXphdGlvbiA9IGZhbHNlOworCisJLy8gY2hlY2sgZm9yIHNlYW1sZXNzIGJvb3QKKwlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPnN0cmVhbV9jb3VudDsgaSsrKSB7CisJCWlmIChzdGF0ZS0+c3RyZWFtc1tpXS0+YXBwbHlfc2VhbWxlc3NfYm9vdF9vcHRpbWl6YXRpb24pIHsKKwkJCWFwcGx5X3NlYW1sZXNzX2Jvb3Rfb3B0aW1pemF0aW9uID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQogCiAJLyogZ2V0IGxpbmsgc2V0dGluZ3MgZm9yIHZpZGVvIG1vZGUgdGltaW5nICovCiAJZGVjaWRlX2xpbmtfc2V0dGluZ3Moc3RyZWFtLCAmbGlua19zZXR0aW5ncyk7CkBAIC0xNDg3LDcgKzE0OTIsOCBAQCBzdGF0aWMgZW51bSBkY19zdGF0dXMgZW5hYmxlX2xpbmtfZHAoCiAKIAlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5waXhfY2xrX3BhcmFtcy5yZXF1ZXN0ZWRfc3ltX2NsayA9CiAJCQlsaW5rX3NldHRpbmdzLmxpbmtfcmF0ZSAqIExJTktfUkFURV9SRUZfRlJFUV9JTl9LSFo7Ci0Jc3RhdGUtPmNsa19tZ3ItPmZ1bmNzLT51cGRhdGVfY2xvY2tzKHN0YXRlLT5jbGtfbWdyLCBzdGF0ZSwgZmFsc2UpOworCWlmICghYXBwbHlfc2VhbWxlc3NfYm9vdF9vcHRpbWl6YXRpb24pCisJCXN0YXRlLT5jbGtfbWdyLT5mdW5jcy0+dXBkYXRlX2Nsb2NrcyhzdGF0ZS0+Y2xrX21nciwgc3RhdGUsIGZhbHNlKTsKIAogCWRwX2VuYWJsZV9saW5rX3BoeSgKIAkJbGluaywKQEAgLTE1MDIsMTggKzE1MDgsMTkgQEAgc3RhdGljIGVudW0gZGNfc3RhdHVzIGVuYWJsZV9saW5rX2RwKAogCX0KIAogCXBhbmVsX21vZGUgPSBkcF9nZXRfcGFuZWxfbW9kZShsaW5rKTsKLQlkcGNkX2NvbmZpZ3VyZV9wYW5lbF9tb2RlKGxpbmssIHBhbmVsX21vZGUpOworCWRwX3NldF9wYW5lbF9tb2RlKGxpbmssIHBhbmVsX21vZGUpOwogCiAJc2tpcF92aWRlb19wYXR0ZXJuID0gdHJ1ZTsKIAogCWlmIChsaW5rX3NldHRpbmdzLmxpbmtfcmF0ZSA9PSBMSU5LX1JBVEVfTE9XKQogCQkJc2tpcF92aWRlb19wYXR0ZXJuID0gZmFsc2U7CiAKLSNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAotCWRwX3NldF9mZWNfcmVhZHkobGluaywgdHJ1ZSk7Ci0jZW5kaWYKKwlpZiAobGluay0+YXV4X2FjY2Vzc19kaXNhYmxlZCkgeworCQlkY19saW5rX2RwX3BlcmZvcm1fbGlua190cmFpbmluZ19za2lwX2F1eChsaW5rLCAmbGlua19zZXR0aW5ncyk7CiAKLQlpZiAocGVyZm9ybV9saW5rX3RyYWluaW5nX3dpdGhfcmV0cmllcygKKwkJbGluay0+Y3VyX2xpbmtfc2V0dGluZ3MgPSBsaW5rX3NldHRpbmdzOworCQlzdGF0dXMgPSBEQ19PSzsKKwl9IGVsc2UgaWYgKHBlcmZvcm1fbGlua190cmFpbmluZ193aXRoX3JldHJpZXMoCiAJCQlsaW5rLAogCQkJJmxpbmtfc2V0dGluZ3MsCiAJCQlza2lwX3ZpZGVvX3BhdHRlcm4sCkBAIC0xNTI1LDcgKzE1MzIsMTIgQEAgc3RhdGljIGVudW0gZGNfc3RhdHVzIGVuYWJsZV9saW5rX2RwKAogCQlzdGF0dXMgPSBEQ19GQUlMX0RQX0xJTktfVFJBSU5JTkc7CiAKICNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAotCWRwX3NldF9mZWNfZW5hYmxlKGxpbmssIHRydWUpOworCWlmIChsaW5rLT5wcmVmZXJyZWRfdHJhaW5pbmdfc2V0dGluZ3MuZmVjX2VuYWJsZSAhPSBOVUxMKQorCQlmZWNfZW5hYmxlID0gKmxpbmstPnByZWZlcnJlZF90cmFpbmluZ19zZXR0aW5ncy5mZWNfZW5hYmxlOworCWVsc2UKKwkJZmVjX2VuYWJsZSA9IHRydWU7CisKKwlkcF9zZXRfZmVjX2VuYWJsZShsaW5rLCBmZWNfZW5hYmxlKTsKICNlbmRpZgogCXJldHVybiBzdGF0dXM7CiB9CkBAIC0yNzU1LDIxICsyNzY3LDI3IEBAIHZvaWQgY29yZV9saW5rX2VuYWJsZV9zdHJlYW0oCiAJCQkJCUNPTlRST0xMRVJfRFBfVEVTVF9QQVRURVJOX1ZJREVPTU9ERSwKIAkJCQkJQ09MT1JfREVQVEhfVU5ERUZJTkVEKTsKIAorI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJCWlmIChwaXBlX2N0eC0+c3RyZWFtLT50aW1pbmcuZmxhZ3MuRFNDKSB7CisJCQlpZiAoZGNfaXNfZHBfc2lnbmFsKHBpcGVfY3R4LT5zdHJlYW0tPnNpZ25hbCkgfHwKKwkJCQkJZGNfaXNfdmlydHVhbF9zaWduYWwocGlwZV9jdHgtPnN0cmVhbS0+c2lnbmFsKSkKKwkJCQlkcF9zZXRfZHNjX2VuYWJsZShwaXBlX2N0eCwgdHJ1ZSk7CisJCX0KKyNlbmRpZgogCQljb3JlX2RjLT5od3NzLmVuYWJsZV9zdHJlYW0ocGlwZV9jdHgpOwogCisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKKwkJLyogU2V0IERQUyBQUFMgU0RQIChBS0EgImluZm8gZnJhbWVzIikgKi8KKwkJaWYgKHBpcGVfY3R4LT5zdHJlYW0tPnRpbWluZy5mbGFncy5EU0MpIHsKKwkJCWlmIChkY19pc19kcF9zaWduYWwocGlwZV9jdHgtPnN0cmVhbS0+c2lnbmFsKSB8fAorCQkJCQlkY19pc192aXJ0dWFsX3NpZ25hbChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwpKQorCQkJCWRwX3NldF9kc2NfcHBzX3NkcChwaXBlX2N0eCwgdHJ1ZSk7CisJCX0KKyNlbmRpZgorCiAJCWlmIChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUX01TVCkKIAkJCWFsbG9jYXRlX21zdF9wYXlsb2FkKHBpcGVfY3R4KTsKIAotI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCi0JCWlmIChwaXBlX2N0eC0+c3RyZWFtLT50aW1pbmcuZmxhZ3MuRFNDICYmCi0JCQkJKGRjX2lzX2RwX3NpZ25hbChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwpIHx8Ci0JCQkJZGNfaXNfdmlydHVhbF9zaWduYWwocGlwZV9jdHgtPnN0cmVhbS0+c2lnbmFsKSkpIHsKLQkJCWRwX3NldF9kc2NfZW5hYmxlKHBpcGVfY3R4LCB0cnVlKTsKLQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLT5mdW5jcy0+d2FpdF9mb3Jfc3RhdGUoCi0JCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLAotCQkJCQlDUlRDX1NUQVRFX1ZCTEFOSyk7Ci0JCX0KLSNlbmRpZgogCQljb3JlX2RjLT5od3NzLnVuYmxhbmtfc3RyZWFtKHBpcGVfY3R4LAogCQkJJnBpcGVfY3R4LT5zdHJlYW0tPmxpbmstPmN1cl9saW5rX3NldHRpbmdzKTsKIApAQCAtMjc4Niw3ICsyODA0LDcgQEAgdm9pZCBjb3JlX2xpbmtfZW5hYmxlX3N0cmVhbSgKICNlbmRpZgogfQogCi12b2lkIGNvcmVfbGlua19kaXNhYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBpbnQgb3B0aW9uKQordm9pZCBjb3JlX2xpbmtfZGlzYWJsZV9zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlzdHJ1Y3QgZGMgICpjb3JlX2RjID0gcGlwZV9jdHgtPnN0cmVhbS0+Y3R4LT5kYzsKIAlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0gPSBwaXBlX2N0eC0+c3RyZWFtOwpAQCAtMjgyMSwxMyArMjgzOSwxMyBAQCB2b2lkIGNvcmVfbGlua19kaXNhYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBpbnQgb3B0aW9uKQogCQkJd3JpdGVfaTJjX3JlZHJpdmVyX3NldHRpbmcocGlwZV9jdHgsIGZhbHNlKTsKIAkJfQogCX0KLQljb3JlX2RjLT5od3NzLmRpc2FibGVfc3RyZWFtKHBpcGVfY3R4LCBvcHRpb24pOworCWNvcmVfZGMtPmh3c3MuZGlzYWJsZV9zdHJlYW0ocGlwZV9jdHgpOwogCiAJZGlzYWJsZV9saW5rKHBpcGVfY3R4LT5zdHJlYW0tPmxpbmssIHBpcGVfY3R4LT5zdHJlYW0tPnNpZ25hbCk7CiAjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKLQlpZiAocGlwZV9jdHgtPnN0cmVhbS0+dGltaW5nLmZsYWdzLkRTQyAmJgotCQkJZGNfaXNfZHBfc2lnbmFsKHBpcGVfY3R4LT5zdHJlYW0tPnNpZ25hbCkpIHsKLQkJZHBfc2V0X2RzY19lbmFibGUocGlwZV9jdHgsIGZhbHNlKTsKKwlpZiAocGlwZV9jdHgtPnN0cmVhbS0+dGltaW5nLmZsYWdzLkRTQykgeworCQlpZiAoZGNfaXNfZHBfc2lnbmFsKHBpcGVfY3R4LT5zdHJlYW0tPnNpZ25hbCkpCisJCQlkcF9zZXRfZHNjX2VuYWJsZShwaXBlX2N0eCwgZmFsc2UpOwogCX0KICNlbmRpZgogfQpAQCAtMjgzNiw3ICsyODU0LDcgQEAgdm9pZCBjb3JlX2xpbmtfc2V0X2F2bXV0ZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBib29sIGVuYWJsZSkKIHsKIAlzdHJ1Y3QgZGMgICpjb3JlX2RjID0gcGlwZV9jdHgtPnN0cmVhbS0+Y3R4LT5kYzsKIAotCWlmIChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwgIT0gU0lHTkFMX1RZUEVfSERNSV9UWVBFX0EpCisJaWYgKCFkY19pc19oZG1pX3NpZ25hbChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwpKQogCQlyZXR1cm47CiAKIAljb3JlX2RjLT5od3NzLnNldF9hdm11dGUocGlwZV9jdHgsIGVuYWJsZSk7CkBAIC0yOTk5LDggKzMwMTcsMTAgQEAgdm9pZCBkY19saW5rX3NldF9wcmVmZXJyZWRfbGlua19zZXR0aW5ncyhzdHJ1Y3QgZGMgKmRjLAogCWZvciAoaSA9IDA7IGkgPCBNQVhfUElQRVM7IGkrKykgewogCQlwaXBlID0gJmRjLT5jdXJyZW50X3N0YXRlLT5yZXNfY3R4LnBpcGVfY3R4W2ldOwogCQlpZiAocGlwZS0+c3RyZWFtICYmIHBpcGUtPnN0cmVhbS0+bGluaykgewotCQkJaWYgKHBpcGUtPnN0cmVhbS0+bGluayA9PSBsaW5rKQorCQkJaWYgKHBpcGUtPnN0cmVhbS0+bGluayA9PSBsaW5rKSB7CisJCQkJbGlua19zdHJlYW0gPSBwaXBlLT5zdHJlYW07CiAJCQkJYnJlYWs7CisJCQl9CiAJCX0KIAl9CiAKQEAgLTMwMDgsMjAgKzMwMjgsNDAgQEAgdm9pZCBkY19saW5rX3NldF9wcmVmZXJyZWRfbGlua19zZXR0aW5ncyhzdHJ1Y3QgZGMgKmRjLAogCWlmIChpID09IE1BWF9QSVBFUykKIAkJcmV0dXJuOwogCi0JbGlua19zdHJlYW0gPSBsaW5rLT5kYy0+Y3VycmVudF9zdGF0ZS0+cmVzX2N0eC5waXBlX2N0eFtpXS5zdHJlYW07Ci0KIAkvKiBDYW5ub3QgcmV0cmFpbiBsaW5rIGlmIGJhY2tlbmQgaXMgb2ZmICovCiAJaWYgKGxpbmtfc3RyZWFtLT5kcG1zX29mZikKIAkJcmV0dXJuOwogCi0JaWYgKGxpbmtfc3RyZWFtKQotCQlkZWNpZGVfbGlua19zZXR0aW5ncyhsaW5rX3N0cmVhbSwgJnN0b3JlX3NldHRpbmdzKTsKKwlkZWNpZGVfbGlua19zZXR0aW5ncyhsaW5rX3N0cmVhbSwgJnN0b3JlX3NldHRpbmdzKTsKIAogCWlmICgoc3RvcmVfc2V0dGluZ3MubGFuZV9jb3VudCAhPSBMQU5FX0NPVU5UX1VOS05PV04pICYmCiAJCShzdG9yZV9zZXR0aW5ncy5saW5rX3JhdGUgIT0gTElOS19SQVRFX1VOS05PV04pKQogCQlkcF9yZXRyYWluX2xpbmtfZHBfdGVzdChsaW5rLCAmc3RvcmVfc2V0dGluZ3MsIGZhbHNlKTsKIH0KIAordm9pZCBkY19saW5rX3NldF9wcmVmZXJyZWRfdHJhaW5pbmdfc2V0dGluZ3Moc3RydWN0IGRjICpkYywKKwkJCQkJCSBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5nLAorCQkJCQkJIHN0cnVjdCBkY19saW5rX3RyYWluaW5nX292ZXJyaWRlcyAqbHRfb3ZlcnJpZGVzLAorCQkJCQkJIHN0cnVjdCBkY19saW5rICpsaW5rLAorCQkJCQkJIGJvb2wgc2tpcF9pbW1lZGlhdGVfcmV0cmFpbikKK3sKKwlpZiAobHRfb3ZlcnJpZGVzICE9IE5VTEwpCisJCWxpbmstPnByZWZlcnJlZF90cmFpbmluZ19zZXR0aW5ncyA9ICpsdF9vdmVycmlkZXM7CisJZWxzZQorCQltZW1zZXQoJmxpbmstPnByZWZlcnJlZF90cmFpbmluZ19zZXR0aW5ncywgMCwgc2l6ZW9mKGxpbmstPnByZWZlcnJlZF90cmFpbmluZ19zZXR0aW5ncykpOworCisJaWYgKGxpbmtfc2V0dGluZyAhPSBOVUxMKSB7CisJCWxpbmstPnByZWZlcnJlZF9saW5rX3NldHRpbmcgPSAqbGlua19zZXR0aW5nOworCX0gZWxzZSB7CisJCWxpbmstPnByZWZlcnJlZF9saW5rX3NldHRpbmcubGFuZV9jb3VudCA9IExBTkVfQ09VTlRfVU5LTk9XTjsKKwkJbGluay0+cHJlZmVycmVkX2xpbmtfc2V0dGluZy5saW5rX3JhdGUgPSBMSU5LX1JBVEVfVU5LTk9XTjsKKwl9CisKKwkvKiBSZXRyYWluIG5vdywgb3Igd2FpdCB1bnRpbCBuZXh0IHN0cmVhbSB1cGRhdGUgdG8gYXBwbHkgKi8KKwlpZiAoc2tpcF9pbW1lZGlhdGVfcmV0cmFpbiA9PSBmYWxzZSkKKwkJZGNfbGlua19zZXRfcHJlZmVycmVkX2xpbmtfc2V0dGluZ3MoZGMsICZsaW5rLT5wcmVmZXJyZWRfbGlua19zZXR0aW5nLCBsaW5rKTsKK30KKwogdm9pZCBkY19saW5rX2VuYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspCiB7CiAJZGNfbGlua19kcF9lbmFibGVfaHBkKGxpbmspOwpAQCAtMzAzMiw3ICszMDcyLDYgQEAgdm9pZCBkY19saW5rX2Rpc2FibGVfaHBkKGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKQogCWRjX2xpbmtfZHBfZGlzYWJsZV9ocGQobGluayk7CiB9CiAKLQogdm9pZCBkY19saW5rX3NldF90ZXN0X3BhdHRlcm4oc3RydWN0IGRjX2xpbmsgKmxpbmssCiAJCQkgICAgICBlbnVtIGRwX3Rlc3RfcGF0dGVybiB0ZXN0X3BhdHRlcm4sCiAJCQkgICAgICBjb25zdCBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqcF9saW5rX3NldHRpbmdzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGlua19kZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfZGRjLmMKaW5kZXggZTZkYTg1MC4uNTA1OTY3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGlua19kZGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19saW5rX2RkYy5jCkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIHVpbnQzMl90IGRlZmVyX2RlbGF5X2NvbnZlcnRlcl93YSgKIHsKIAlzdHJ1Y3QgZGNfbGluayAqbGluayA9IGRkYy0+bGluazsKIAotCWlmIChsaW5rLT5kcGNkX2NhcHMuYnJhbmNoX2Rldl9pZCA9PSBEUF9CUkFOQ0hfREVWSUNFX0lEXzQgJiYKKwlpZiAobGluay0+ZHBjZF9jYXBzLmJyYW5jaF9kZXZfaWQgPT0gRFBfQlJBTkNIX0RFVklDRV9JRF8wMDgwRTEgJiYKIAkJIW1lbWNtcChsaW5rLT5kcGNkX2NhcHMuYnJhbmNoX2Rldl9uYW1lLAogCQkJRFBfRFZJX0NPTlZFUlRFUl9JRF80LAogCQkJc2l6ZW9mKGxpbmstPmRwY2RfY2Fwcy5icmFuY2hfZGV2X25hbWUpKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfZHAuYwppbmRleCAyYzdhYWVkLi5mNTc0MjcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19saW5rX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGlua19kcC5jCkBAIC00OSw3ICs0OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyBnZXRfY29tbW9uX3N1cHBvcnRlZF9saW5rX3NldHRpbmdzKAogCQlzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyBsaW5rX3NldHRpbmdfYSwKIAkJc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgbGlua19zZXR0aW5nX2IpOwogCi1zdGF0aWMgdm9pZCB3YWl0X2Zvcl90cmFpbmluZ19hdXhfcmRfaW50ZXJ2YWwoCitzdGF0aWMgdWludDMyX3QgZ2V0X3RyYWluaW5nX2F1eF9yZF9pbnRlcnZhbCgKIAlzdHJ1Y3QgZGNfbGluayAqbGluaywKIAl1aW50MzJfdCBkZWZhdWx0X3dhaXRfaW5fbWljcm9fc2VjcykKIHsKQEAgLTY4LDE1ICs2OCwyMSBAQCBzdGF0aWMgdm9pZCB3YWl0X2Zvcl90cmFpbmluZ19hdXhfcmRfaW50ZXJ2YWwoCiAJCQlzaXplb2YodHJhaW5pbmdfcmRfaW50ZXJ2YWwpKTsKIAogCQlpZiAodHJhaW5pbmdfcmRfaW50ZXJ2YWwuYml0cy5UUkFJTklHX0FVWF9SRF9JTlRFUlZBTCkKLQkJCWRlZmF1bHRfd2FpdF9pbl9taWNyb19zZWNzID0KLQkJCQl0cmFpbmluZ19yZF9pbnRlcnZhbC5iaXRzLlRSQUlOSUdfQVVYX1JEX0lOVEVSVkFMICogNDAwMDsKKwkJCWRlZmF1bHRfd2FpdF9pbl9taWNyb19zZWNzID0gdHJhaW5pbmdfcmRfaW50ZXJ2YWwuYml0cy5UUkFJTklHX0FVWF9SRF9JTlRFUlZBTCAqIDQwMDA7CiAJfQogCi0JdWRlbGF5KGRlZmF1bHRfd2FpdF9pbl9taWNyb19zZWNzKTsKKwlyZXR1cm4gZGVmYXVsdF93YWl0X2luX21pY3JvX3NlY3M7Cit9CisKK3N0YXRpYyB2b2lkIHdhaXRfZm9yX3RyYWluaW5nX2F1eF9yZF9pbnRlcnZhbCgKKwlzdHJ1Y3QgZGNfbGluayAqbGluaywKKwl1aW50MzJfdCB3YWl0X2luX21pY3JvX3NlY3MpCit7CisJdWRlbGF5KHdhaXRfaW5fbWljcm9fc2Vjcyk7CiAKIAlEQ19MT0dfSFdfTElOS19UUkFJTklORygiJXM6XG4gd2FpdCA9ICVkXG4iLAogCQlfX2Z1bmNfXywKLQkJZGVmYXVsdF93YWl0X2luX21pY3JvX3NlY3MpOworCQl3YWl0X2luX21pY3JvX3NlY3MpOwogfQogCiBzdGF0aWMgdm9pZCBkcGNkX3NldF90cmFpbmluZ19wYXR0ZXJuKApAQCAtOTUsMjcgKzEwMSwyNyBAQCBzdGF0aWMgdm9pZCBkcGNkX3NldF90cmFpbmluZ19wYXR0ZXJuKAogCQlkcGNkX3BhdHRlcm4udjFfNC5UUkFJTklOR19QQVRURVJOX1NFVCk7CiB9CiAKLXN0YXRpYyBlbnVtIGh3X2RwX3RyYWluaW5nX3BhdHRlcm4gZ2V0X3N1cHBvcnRlZF90cChzdHJ1Y3QgZGNfbGluayAqbGluaykKK3N0YXRpYyBlbnVtIGRjX2RwX3RyYWluaW5nX3BhdHRlcm4gZ2V0X3N1cHBvcnRlZF90cChzdHJ1Y3QgZGNfbGluayAqbGluaykKIHsKLQllbnVtIGh3X2RwX3RyYWluaW5nX3BhdHRlcm4gaGlnaGVzdF90cCA9IEhXX0RQX1RSQUlOSU5HX1BBVFRFUk5fMjsKKwllbnVtIGRjX2RwX3RyYWluaW5nX3BhdHRlcm4gaGlnaGVzdF90cCA9IERQX1RSQUlOSU5HX1BBVFRFUk5fU0VRVUVOQ0VfMjsKIAlzdHJ1Y3QgZW5jb2Rlcl9mZWF0dXJlX3N1cHBvcnQgKmZlYXR1cmVzID0gJmxpbmstPmxpbmtfZW5jLT5mZWF0dXJlczsKIAlzdHJ1Y3QgZHBjZF9jYXBzICpkcGNkX2NhcHMgPSAmbGluay0+ZHBjZF9jYXBzOwogCiAJaWYgKGZlYXR1cmVzLT5mbGFncy5iaXRzLklTX1RQUzNfQ0FQQUJMRSkKLQkJaGlnaGVzdF90cCA9IEhXX0RQX1RSQUlOSU5HX1BBVFRFUk5fMzsKKwkJaGlnaGVzdF90cCA9IERQX1RSQUlOSU5HX1BBVFRFUk5fU0VRVUVOQ0VfMzsKIAogCWlmIChmZWF0dXJlcy0+ZmxhZ3MuYml0cy5JU19UUFM0X0NBUEFCTEUpCi0JCWhpZ2hlc3RfdHAgPSBIV19EUF9UUkFJTklOR19QQVRURVJOXzQ7CisJCWhpZ2hlc3RfdHAgPSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzQ7CiAKIAlpZiAoZHBjZF9jYXBzLT5tYXhfZG93bl9zcHJlYWQuYml0cy5UUFM0X1NVUFBPUlRFRCAmJgotCQloaWdoZXN0X3RwID49IEhXX0RQX1RSQUlOSU5HX1BBVFRFUk5fNCkKLQkJcmV0dXJuIEhXX0RQX1RSQUlOSU5HX1BBVFRFUk5fNDsKKwkJaGlnaGVzdF90cCA+PSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzQpCisJCXJldHVybiBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzQ7CiAKIAlpZiAoZHBjZF9jYXBzLT5tYXhfbG5fY291bnQuYml0cy5UUFMzX1NVUFBPUlRFRCAmJgotCQloaWdoZXN0X3RwID49IEhXX0RQX1RSQUlOSU5HX1BBVFRFUk5fMykKLQkJcmV0dXJuIEhXX0RQX1RSQUlOSU5HX1BBVFRFUk5fMzsKKwkJaGlnaGVzdF90cCA+PSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzMpCisJCXJldHVybiBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzM7CiAKLQlyZXR1cm4gSFdfRFBfVFJBSU5JTkdfUEFUVEVSTl8yOworCXJldHVybiBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzI7CiB9CiAKIHN0YXRpYyB2b2lkIGRwY2Rfc2V0X2xpbmtfc2V0dGluZ3MoCkBAIC0xMjYsNyArMTMyLDcgQEAgc3RhdGljIHZvaWQgZHBjZF9zZXRfbGlua19zZXR0aW5ncygKIAogCXVuaW9uIGRvd25fc3ByZWFkX2N0cmwgZG93bnNwcmVhZCA9IHsgezB9IH07CiAJdW5pb24gbGFuZV9jb3VudF9zZXQgbGFuZV9jb3VudF9zZXQgPSB7IHswfSB9OwotCWVudW0gaHdfZHBfdHJhaW5pbmdfcGF0dGVybiBod190cl9wYXR0ZXJuOworCWVudW0gZGNfZHBfdHJhaW5pbmdfcGF0dGVybiBkcF90cl9wYXR0ZXJuOwogCiAJZG93bnNwcmVhZC5yYXcgPSAodWludDhfdCkKIAkobHRfc2V0dGluZ3MtPmxpbmtfc2V0dGluZ3MubGlua19zcHJlYWQpOwpAQCAtMTM0LDIxICsxNDAsMjEgQEAgc3RhdGljIHZvaWQgZHBjZF9zZXRfbGlua19zZXR0aW5ncygKIAlsYW5lX2NvdW50X3NldC5iaXRzLkxBTkVfQ09VTlRfU0VUID0KIAlsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5sYW5lX2NvdW50OwogCi0JbGFuZV9jb3VudF9zZXQuYml0cy5FTkhBTkNFRF9GUkFNSU5HID0gMTsKLQorCWxhbmVfY291bnRfc2V0LmJpdHMuRU5IQU5DRURfRlJBTUlORyA9IGx0X3NldHRpbmdzLT5lbmhhbmNlZF9mcmFtaW5nOwogCWxhbmVfY291bnRfc2V0LmJpdHMuUE9TVF9MVF9BREpfUkVRX0dSQU5URUQgPSAwOwogCi0JaHdfdHJfcGF0dGVybiA9IGdldF9zdXBwb3J0ZWRfdHAobGluayk7Ci0JaWYgKGh3X3RyX3BhdHRlcm4gIT0gSFdfRFBfVFJBSU5JTkdfUEFUVEVSTl80KSB7CisJZHBfdHJfcGF0dGVybiA9IGdldF9zdXBwb3J0ZWRfdHAobGluayk7CisKKwlpZiAoZHBfdHJfcGF0dGVybiAhPSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzQpIHsKIAkJbGFuZV9jb3VudF9zZXQuYml0cy5QT1NUX0xUX0FESl9SRVFfR1JBTlRFRCA9CiAJCQkJbGluay0+ZHBjZF9jYXBzLm1heF9sbl9jb3VudC5iaXRzLlBPU1RfTFRfQURKX1JFUV9TVVBQT1JURUQ7CiAJfQogCiAJY29yZV9saW5rX3dyaXRlX2RwY2QobGluaywgRFBfRE9XTlNQUkVBRF9DVFJMLAotCSZkb3duc3ByZWFkLnJhdywgc2l6ZW9mKGRvd25zcHJlYWQpKTsKKwkJJmRvd25zcHJlYWQucmF3LCBzaXplb2YoZG93bnNwcmVhZCkpOwogCiAJY29yZV9saW5rX3dyaXRlX2RwY2QobGluaywgRFBfTEFORV9DT1VOVF9TRVQsCi0JJmxhbmVfY291bnRfc2V0LnJhdywgMSk7CisJCSZsYW5lX2NvdW50X3NldC5yYXcsIDEpOwogCiAJaWYgKGxpbmstPmRwY2RfY2Fwcy5kcGNkX3Jldi5yYXcgPj0gRFBDRF9SRVZfMTQgJiYKIAkJCWx0X3NldHRpbmdzLT5saW5rX3NldHRpbmdzLnVzZV9saW5rX3JhdGVfc2V0ID09IHRydWUpIHsKQEAgLTE2Miw0NiArMTY4LDQ3IEBAIHN0YXRpYyB2b2lkIGRwY2Rfc2V0X2xpbmtfc2V0dGluZ3MoCiAJfQogCiAJaWYgKHJhdGUpIHsKLQkJRENfTE9HX0hXX0xJTktfVFJBSU5JTkcoIiVzXG4gJXggcmF0ZSA9ICV4XG4gJXggbGFuZSA9ICV4XG4gJXggc3ByZWFkID0gJXhcbiIsCisJCURDX0xPR19IV19MSU5LX1RSQUlOSU5HKCIlc1xuICV4IHJhdGUgPSAleFxuICV4IGxhbmUgPSAleCBmcmFtaW5nID0gJXhcbiAleCBzcHJlYWQgPSAleFxuIiwKIAkJCV9fZnVuY19fLAogCQkJRFBfTElOS19CV19TRVQsCiAJCQlsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5saW5rX3JhdGUsCiAJCQlEUF9MQU5FX0NPVU5UX1NFVCwKIAkJCWx0X3NldHRpbmdzLT5saW5rX3NldHRpbmdzLmxhbmVfY291bnQsCisJCQlsdF9zZXR0aW5ncy0+ZW5oYW5jZWRfZnJhbWluZywKIAkJCURQX0RPV05TUFJFQURfQ1RSTCwKIAkJCWx0X3NldHRpbmdzLT5saW5rX3NldHRpbmdzLmxpbmtfc3ByZWFkKTsKIAl9IGVsc2UgewotCQlEQ19MT0dfSFdfTElOS19UUkFJTklORygiJXNcbiAleCByYXRlIHNldCA9ICV4XG4gJXggbGFuZSA9ICV4XG4gJXggc3ByZWFkID0gJXhcbiIsCisJCURDX0xPR19IV19MSU5LX1RSQUlOSU5HKCIlc1xuICV4IHJhdGUgc2V0ID0gJXhcbiAleCBsYW5lID0gJXggZnJhbWluZyA9ICV4XG4gJXggc3ByZWFkID0gJXhcbiIsCiAJCQlfX2Z1bmNfXywKIAkJCURQX0xJTktfUkFURV9TRVQsCiAJCQlsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5saW5rX3JhdGVfc2V0LAogCQkJRFBfTEFORV9DT1VOVF9TRVQsCiAJCQlsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5sYW5lX2NvdW50LAorCQkJbHRfc2V0dGluZ3MtPmVuaGFuY2VkX2ZyYW1pbmcsCiAJCQlEUF9ET1dOU1BSRUFEX0NUUkwsCiAJCQlsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5saW5rX3NwcmVhZCk7CiAJfQotCiB9CiAKIHN0YXRpYyBlbnVtIGRwY2RfdHJhaW5pbmdfcGF0dGVybnMKLQlod190cmFpbmluZ19wYXR0ZXJuX3RvX2RwY2RfdHJhaW5pbmdfcGF0dGVybigKKwlkY19kcF90cmFpbmluZ19wYXR0ZXJuX3RvX2RwY2RfdHJhaW5pbmdfcGF0dGVybigKIAlzdHJ1Y3QgZGNfbGluayAqbGluaywKLQllbnVtIGh3X2RwX3RyYWluaW5nX3BhdHRlcm4gcGF0dGVybikKKwllbnVtIGRjX2RwX3RyYWluaW5nX3BhdHRlcm4gcGF0dGVybikKIHsKIAllbnVtIGRwY2RfdHJhaW5pbmdfcGF0dGVybnMgZHBjZF90cl9wYXR0ZXJuID0KIAlEUENEX1RSQUlOSU5HX1BBVFRFUk5fVklERU9JRExFOwogCiAJc3dpdGNoIChwYXR0ZXJuKSB7Ci0JY2FzZSBIV19EUF9UUkFJTklOR19QQVRURVJOXzE6CisJY2FzZSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzE6CiAJCWRwY2RfdHJfcGF0dGVybiA9IERQQ0RfVFJBSU5JTkdfUEFUVEVSTl8xOwogCQlicmVhazsKLQljYXNlIEhXX0RQX1RSQUlOSU5HX1BBVFRFUk5fMjoKKwljYXNlIERQX1RSQUlOSU5HX1BBVFRFUk5fU0VRVUVOQ0VfMjoKIAkJZHBjZF90cl9wYXR0ZXJuID0gRFBDRF9UUkFJTklOR19QQVRURVJOXzI7CiAJCWJyZWFrOwotCWNhc2UgSFdfRFBfVFJBSU5JTkdfUEFUVEVSTl8zOgorCWNhc2UgRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVFVRU5DRV8zOgogCQlkcGNkX3RyX3BhdHRlcm4gPSBEUENEX1RSQUlOSU5HX1BBVFRFUk5fMzsKIAkJYnJlYWs7Ci0JY2FzZSBIV19EUF9UUkFJTklOR19QQVRURVJOXzQ6CisJY2FzZSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzQ6CiAJCWRwY2RfdHJfcGF0dGVybiA9IERQQ0RfVFJBSU5JTkdfUEFUVEVSTl80OwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMjEyLDEzICsyMTksMTIgQEAgc3RhdGljIGVudW0gZHBjZF90cmFpbmluZ19wYXR0ZXJucwogCX0KIAogCXJldHVybiBkcGNkX3RyX3BhdHRlcm47Ci0KIH0KIAogc3RhdGljIHZvaWQgZHBjZF9zZXRfbHRfcGF0dGVybl9hbmRfbGFuZV9zZXR0aW5ncygKIAlzdHJ1Y3QgZGNfbGluayAqbGluaywKIAljb25zdCBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqbHRfc2V0dGluZ3MsCi0JZW51bSBod19kcF90cmFpbmluZ19wYXR0ZXJuIHBhdHRlcm4pCisJZW51bSBkY19kcF90cmFpbmluZ19wYXR0ZXJuIHBhdHRlcm4pCiB7CiAJdW5pb24gZHBjZF90cmFpbmluZ19sYW5lIGRwY2RfbGFuZVtMQU5FX0NPVU5UX0RQX01BWF0gPSB7IHsgezB9IH0gfTsKIAljb25zdCB1aW50MzJfdCBkcGNkX2Jhc2VfbHRfb2Zmc2V0ID0KQEAgLTIzMyw3ICsyMzksNyBAQCBzdGF0aWMgdm9pZCBkcGNkX3NldF9sdF9wYXR0ZXJuX2FuZF9sYW5lX3NldHRpbmdzKAogCSogRHBjZEFkZHJlc3NfVHJhaW5pbmdQYXR0ZXJuU2V0CiAJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAJZHBjZF9wYXR0ZXJuLnYxXzQuVFJBSU5JTkdfUEFUVEVSTl9TRVQgPQotCQlod190cmFpbmluZ19wYXR0ZXJuX3RvX2RwY2RfdHJhaW5pbmdfcGF0dGVybihsaW5rLCBwYXR0ZXJuKTsKKwkJZGNfZHBfdHJhaW5pbmdfcGF0dGVybl90b19kcGNkX3RyYWluaW5nX3BhdHRlcm4obGluaywgcGF0dGVybik7CiAKIAlkcGNkX2x0X2J1ZmZlcltEUF9UUkFJTklOR19QQVRURVJOX1NFVCAtIGRwY2RfYmFzZV9sdF9vZmZzZXRdCiAJCT0gZHBjZF9wYXR0ZXJuLnJhdzsKQEAgLTM0NiwxMiArMzUyLDIwIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9kcml2ZV9zZXR0aW5ncygKIHsKIAl1aW50MzJfdCBsYW5lOwogCWZvciAobGFuZSA9IDA7IGxhbmUgPCBzcmMubGlua19zZXR0aW5ncy5sYW5lX2NvdW50OyBsYW5lKyspIHsKLQkJZGVzdC0+bGFuZV9zZXR0aW5nc1tsYW5lXS5WT0xUQUdFX1NXSU5HID0KLQkJCXNyYy5sYW5lX3NldHRpbmdzW2xhbmVdLlZPTFRBR0VfU1dJTkc7Ci0JCWRlc3QtPmxhbmVfc2V0dGluZ3NbbGFuZV0uUFJFX0VNUEhBU0lTID0KLQkJCXNyYy5sYW5lX3NldHRpbmdzW2xhbmVdLlBSRV9FTVBIQVNJUzsKLQkJZGVzdC0+bGFuZV9zZXR0aW5nc1tsYW5lXS5QT1NUX0NVUlNPUjIgPQotCQkJc3JjLmxhbmVfc2V0dGluZ3NbbGFuZV0uUE9TVF9DVVJTT1IyOworCQlpZiAoZGVzdC0+dm9sdGFnZV9zd2luZyA9PSBOVUxMKQorCQkJZGVzdC0+bGFuZV9zZXR0aW5nc1tsYW5lXS5WT0xUQUdFX1NXSU5HID0gc3JjLmxhbmVfc2V0dGluZ3NbbGFuZV0uVk9MVEFHRV9TV0lORzsKKwkJZWxzZQorCQkJZGVzdC0+bGFuZV9zZXR0aW5nc1tsYW5lXS5WT0xUQUdFX1NXSU5HID0gKmRlc3QtPnZvbHRhZ2Vfc3dpbmc7CisKKwkJaWYgKGRlc3QtPnByZV9lbXBoYXNpcyA9PSBOVUxMKQorCQkJZGVzdC0+bGFuZV9zZXR0aW5nc1tsYW5lXS5QUkVfRU1QSEFTSVMgPSBzcmMubGFuZV9zZXR0aW5nc1tsYW5lXS5QUkVfRU1QSEFTSVM7CisJCWVsc2UKKwkJCWRlc3QtPmxhbmVfc2V0dGluZ3NbbGFuZV0uUFJFX0VNUEhBU0lTID0gKmRlc3QtPnByZV9lbXBoYXNpczsKKworCQlpZiAoZGVzdC0+cG9zdF9jdXJzb3IyID09IE5VTEwpCisJCQlkZXN0LT5sYW5lX3NldHRpbmdzW2xhbmVdLlBPU1RfQ1VSU09SMiA9IHNyYy5sYW5lX3NldHRpbmdzW2xhbmVdLlBPU1RfQ1VSU09SMjsKKwkJZWxzZQorCQkJZGVzdC0+bGFuZV9zZXR0aW5nc1tsYW5lXS5QT1NUX0NVUlNPUjIgPSAqZGVzdC0+cG9zdF9jdXJzb3IyOwogCX0KIH0KIApAQCAtNzU0LDE1ICs3NjgsMTUgQEAgc3RhdGljIGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgcGVyZm9ybV9jaGFubmVsX2VxdWFsaXphdGlvbl9zZXF1ZW5jZSgKIAlzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqbHRfc2V0dGluZ3MpCiB7CiAJc3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3MgcmVxX3NldHRpbmdzOwotCWVudW0gaHdfZHBfdHJhaW5pbmdfcGF0dGVybiBod190cl9wYXR0ZXJuOworCWVudW0gZGNfZHBfdHJhaW5pbmdfcGF0dGVybiB0cl9wYXR0ZXJuOwogCXVpbnQzMl90IHJldHJpZXNfY2hfZXE7CiAJZW51bSBkY19sYW5lX2NvdW50IGxhbmVfY291bnQgPSBsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5sYW5lX2NvdW50OwogCXVuaW9uIGxhbmVfYWxpZ25fc3RhdHVzX3VwZGF0ZWQgZHBjZF9sYW5lX3N0YXR1c191cGRhdGVkID0geyB7MH0gfTsKIAl1bmlvbiBsYW5lX3N0YXR1cyBkcGNkX2xhbmVfc3RhdHVzW0xBTkVfQ09VTlRfRFBfTUFYXSA9IHsgeyB7MH0gfSB9OwogCi0JaHdfdHJfcGF0dGVybiA9IGdldF9zdXBwb3J0ZWRfdHAobGluayk7CisJdHJfcGF0dGVybiA9IGx0X3NldHRpbmdzLT5wYXR0ZXJuX2Zvcl9lcTsKIAotCWRwX3NldF9od190cmFpbmluZ19wYXR0ZXJuKGxpbmssIGh3X3RyX3BhdHRlcm4pOworCWRwX3NldF9od190cmFpbmluZ19wYXR0ZXJuKGxpbmssIHRyX3BhdHRlcm4pOwogCiAJZm9yIChyZXRyaWVzX2NoX2VxID0gMDsgcmV0cmllc19jaF9lcSA8PSBMSU5LX1RSQUlOSU5HX01BWF9SRVRSWV9DT1VOVDsKIAkJcmV0cmllc19jaF9lcSsrKSB7CkBAIC03NzYsMTIgKzc5MCwxMiBAQCBzdGF0aWMgZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBwZXJmb3JtX2NoYW5uZWxfZXF1YWxpemF0aW9uX3NlcXVlbmNlKAogCQkJZHBjZF9zZXRfbHRfcGF0dGVybl9hbmRfbGFuZV9zZXR0aW5ncygKIAkJCQlsaW5rLAogCQkJCWx0X3NldHRpbmdzLAotCQkJCWh3X3RyX3BhdHRlcm4pOworCQkJCXRyX3BhdHRlcm4pOwogCQllbHNlCiAJCQlkcGNkX3NldF9sYW5lX3NldHRpbmdzKGxpbmssIGx0X3NldHRpbmdzKTsKIAogCQkvKiAzLiB3YWl0IGZvciByZWNlaXZlciB0byBsb2NrLW9uKi8KLQkJd2FpdF9mb3JfdHJhaW5pbmdfYXV4X3JkX2ludGVydmFsKGxpbmssIDQwMCk7CisJCXdhaXRfZm9yX3RyYWluaW5nX2F1eF9yZF9pbnRlcnZhbChsaW5rLCBsdF9zZXR0aW5ncy0+ZXFfcGF0dGVybl90aW1lKTsKIAogCQkvKiA0LiBSZWFkIGxhbmUgc3RhdHVzIGFuZCByZXF1ZXN0ZWQKIAkJICogZHJpdmUgc2V0dGluZ3MgYXMgc2V0IGJ5IHRoZSBzaW5rKi8KQEAgLTgxNywyNyArODMxLDE2IEBAIHN0YXRpYyBlbnVtIGxpbmtfdHJhaW5pbmdfcmVzdWx0IHBlcmZvcm1fY2xvY2tfcmVjb3Zlcnlfc2VxdWVuY2UoCiB7CiAJdWludDMyX3QgcmV0cmllc19jcjsKIAl1aW50MzJfdCByZXRyeV9jb3VudDsKLQl1aW50MzJfdCBsYW5lOwogCXN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzIHJlcV9zZXR0aW5nczsKLQllbnVtIGRjX2xhbmVfY291bnQgbGFuZV9jb3VudCA9Ci0JbHRfc2V0dGluZ3MtPmxpbmtfc2V0dGluZ3MubGFuZV9jb3VudDsKLQllbnVtIGh3X2RwX3RyYWluaW5nX3BhdHRlcm4gaHdfdHJfcGF0dGVybiA9IEhXX0RQX1RSQUlOSU5HX1BBVFRFUk5fMTsKKwllbnVtIGRjX2xhbmVfY291bnQgbGFuZV9jb3VudCA9IGx0X3NldHRpbmdzLT5saW5rX3NldHRpbmdzLmxhbmVfY291bnQ7CisJZW51bSBkY19kcF90cmFpbmluZ19wYXR0ZXJuIHRyX3BhdHRlcm4gPSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzE7CiAJdW5pb24gbGFuZV9zdGF0dXMgZHBjZF9sYW5lX3N0YXR1c1tMQU5FX0NPVU5UX0RQX01BWF07CiAJdW5pb24gbGFuZV9hbGlnbl9zdGF0dXNfdXBkYXRlZCBkcGNkX2xhbmVfc3RhdHVzX3VwZGF0ZWQ7CiAKIAlyZXRyaWVzX2NyID0gMDsKIAlyZXRyeV9jb3VudCA9IDA7Ci0JLyogaW5pdGlhbCBkcml2ZSBzZXR0aW5nIChWUy9QRS9QQzIpKi8KLQlmb3IgKGxhbmUgPSAwOyBsYW5lIDwgTEFORV9DT1VOVF9EUF9NQVg7IGxhbmUrKykgewotCQlsdF9zZXR0aW5ncy0+bGFuZV9zZXR0aW5nc1tsYW5lXS5WT0xUQUdFX1NXSU5HID0KLQkJVk9MVEFHRV9TV0lOR19MRVZFTDA7Ci0JCWx0X3NldHRpbmdzLT5sYW5lX3NldHRpbmdzW2xhbmVdLlBSRV9FTVBIQVNJUyA9Ci0JCVBSRV9FTVBIQVNJU19ESVNBQkxFRDsKLQkJbHRfc2V0dGluZ3MtPmxhbmVfc2V0dGluZ3NbbGFuZV0uUE9TVF9DVVJTT1IyID0KLQkJUE9TVF9DVVJTT1IyX0RJU0FCTEVEOwotCX0KIAotCWRwX3NldF9od190cmFpbmluZ19wYXR0ZXJuKGxpbmssIGh3X3RyX3BhdHRlcm4pOworCWRwX3NldF9od190cmFpbmluZ19wYXR0ZXJuKGxpbmssIHRyX3BhdHRlcm4pOwogCiAJLyogbmFqZWViIC0gVGhlIHN5bmFwdGljcyBNU1QgaHViIGNhbiBwdXQgdGhlIExUIGluCiAJKiBpbmZpbml0ZSBsb29wIGJ5IHN3aXRjaGluZyB0aGUgVlMKQEAgLTg0NSw3ICs4NDgsNyBAQCBzdGF0aWMgZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBwZXJmb3JtX2Nsb2NrX3JlY292ZXJ5X3NlcXVlbmNlKAogCS8qIGJldHdlZW4gbGV2ZWwgMCBhbmQgbGV2ZWwgMSBjb250aW51b3VzbHksIGhlcmUKIAkqIHdlIHRyeSBmb3IgQ1IgbG9jayBmb3IgTGlua1RyYWluaW5nTWF4Q1JSZXRyeSBjb3VudCovCiAJd2hpbGUgKChyZXRyaWVzX2NyIDwgTElOS19UUkFJTklOR19NQVhfUkVUUllfQ09VTlQpICYmCi0JKHJldHJ5X2NvdW50IDwgTElOS19UUkFJTklOR19NQVhfQ1JfUkVUUlkpKSB7CisJCShyZXRyeV9jb3VudCA8IExJTktfVFJBSU5JTkdfTUFYX0NSX1JFVFJZKSkgewogCiAJCW1lbXNldCgmZHBjZF9sYW5lX3N0YXR1cywgJ1wwJywgc2l6ZW9mKGRwY2RfbGFuZV9zdGF0dXMpKTsKIAkJbWVtc2V0KCZkcGNkX2xhbmVfc3RhdHVzX3VwZGF0ZWQsICdcMCcsCkBAIC04NjMsNyArODY2LDcgQEAgc3RhdGljIGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgcGVyZm9ybV9jbG9ja19yZWNvdmVyeV9zZXF1ZW5jZSgKIAkJCWRwY2Rfc2V0X2x0X3BhdHRlcm5fYW5kX2xhbmVfc2V0dGluZ3MoCiAJCQkJCWxpbmssCiAJCQkJCWx0X3NldHRpbmdzLAotCQkJCQlod190cl9wYXR0ZXJuKTsKKwkJCQkJdHJfcGF0dGVybik7CiAJCWVsc2UKIAkJCWRwY2Rfc2V0X2xhbmVfc2V0dGluZ3MoCiAJCQkJCWxpbmssCkBAIC04NzIsNyArODc1LDcgQEAgc3RhdGljIGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgcGVyZm9ybV9jbG9ja19yZWNvdmVyeV9zZXF1ZW5jZSgKIAkJLyogMy4gd2FpdCByZWNlaXZlciB0byBsb2NrLW9uKi8KIAkJd2FpdF9mb3JfdHJhaW5pbmdfYXV4X3JkX2ludGVydmFsKAogCQkJCWxpbmssCi0JCQkJMTAwKTsKKwkJCQlsdF9zZXR0aW5ncy0+Y3JfcGF0dGVybl90aW1lKTsKIAogCQkvKiA0LiBSZWFkIGxhbmUgc3RhdHVzIGFuZCByZXF1ZXN0ZWQgZHJpdmUKIAkJKiBzZXR0aW5ncyBhcyBzZXQgYnkgdGhlIHNpbmsKQEAgLTkzOSw3ICs5NDIsNyBAQCBzdGF0aWMgaW5saW5lIGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgcGVyZm9ybV9saW5rX3RyYWluaW5nX2ludCgKIAkgKiBUUFM0IG11c3QgYmUgdXNlZCBpbnN0ZWFkIG9mIFBPU1RfTFRfQURKX1JFUS4KIAkgKi8KIAlpZiAobGluay0+ZHBjZF9jYXBzLm1heF9sbl9jb3VudC5iaXRzLlBPU1RfTFRfQURKX1JFUV9TVVBQT1JURUQgIT0gMSB8fAotCQkJZ2V0X3N1cHBvcnRlZF90cChsaW5rKSA9PSBIV19EUF9UUkFJTklOR19QQVRURVJOXzQpCisJCQlnZXRfc3VwcG9ydGVkX3RwKGxpbmspID09IERQX1RSQUlOSU5HX1BBVFRFUk5fU0VRVUVOQ0VfNCkKIAkJcmV0dXJuIHN0YXR1czsKIAogCWlmIChzdGF0dXMgPT0gTElOS19UUkFJTklOR19TVUNDRVNTICYmCkBAIC05NDcsNyArOTUwLDcgQEAgc3RhdGljIGlubGluZSBlbnVtIGxpbmtfdHJhaW5pbmdfcmVzdWx0IHBlcmZvcm1fbGlua190cmFpbmluZ19pbnQoCiAJCXN0YXR1cyA9IExJTktfVFJBSU5JTkdfTFFBX0ZBSUw7CiAKIAlsYW5lX2NvdW50X3NldC5iaXRzLkxBTkVfQ09VTlRfU0VUID0gbHRfc2V0dGluZ3MtPmxpbmtfc2V0dGluZ3MubGFuZV9jb3VudDsKLQlsYW5lX2NvdW50X3NldC5iaXRzLkVOSEFOQ0VEX0ZSQU1JTkcgPSAxOworCWxhbmVfY291bnRfc2V0LmJpdHMuRU5IQU5DRURfRlJBTUlORyA9IGx0X3NldHRpbmdzLT5lbmhhbmNlZF9mcmFtaW5nOwogCWxhbmVfY291bnRfc2V0LmJpdHMuUE9TVF9MVF9BREpfUkVRX0dSQU5URUQgPSAwOwogCiAJY29yZV9saW5rX3dyaXRlX2RwY2QoCkBAIC05NTksMjQgKzk2MiwyOSBAQCBzdGF0aWMgaW5saW5lIGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgcGVyZm9ybV9saW5rX3RyYWluaW5nX2ludCgKIAlyZXR1cm4gc3RhdHVzOwogfQogCi1lbnVtIGxpbmtfdHJhaW5pbmdfcmVzdWx0IGRjX2xpbmtfZHBfcGVyZm9ybV9saW5rX3RyYWluaW5nKAotCXN0cnVjdCBkY19saW5rICpsaW5rLAorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZV90cmFpbmluZ19zZXR0aW5ncygKKwkgc3RydWN0IGRjX2xpbmsgKmxpbmssCiAJY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKLQlib29sIHNraXBfdmlkZW9fcGF0dGVybikKKwljb25zdCBzdHJ1Y3QgZGNfbGlua190cmFpbmluZ19vdmVycmlkZXMgKm92ZXJyaWRlcywKKwlzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqbHRfc2V0dGluZ3MpCiB7Ci0JZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBzdGF0dXMgPSBMSU5LX1RSQUlOSU5HX1NVQ0NFU1M7CisJdWludDMyX3QgbGFuZTsKIAotCWNoYXIgKmxpbmtfcmF0ZSA9ICJVbmtub3duIjsKLQljaGFyICpsdF9yZXN1bHQgPSAiVW5rbm93biI7CisJbWVtc2V0KGx0X3NldHRpbmdzLCAnXDAnLCBzaXplb2Yoc3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3MpKTsKIAotCXN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzIGx0X3NldHRpbmdzOworCS8qIEluaXRpYWxpemUgbGluayBzZXR0aW5ncyAqLworCWx0X3NldHRpbmdzLT5saW5rX3NldHRpbmdzLnVzZV9saW5rX3JhdGVfc2V0ID0gbGlua19zZXR0aW5nLT51c2VfbGlua19yYXRlX3NldDsKKwlsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5saW5rX3JhdGVfc2V0ID0gbGlua19zZXR0aW5nLT5saW5rX3JhdGVfc2V0OwogCi0JbWVtc2V0KCZsdF9zZXR0aW5ncywgJ1wwJywgc2l6ZW9mKGx0X3NldHRpbmdzKSk7CisJaWYgKGxpbmstPnByZWZlcnJlZF9saW5rX3NldHRpbmcubGlua19yYXRlICE9IExJTktfUkFURV9VTktOT1dOKQorCQlsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5saW5rX3JhdGUgPSBsaW5rLT5wcmVmZXJyZWRfbGlua19zZXR0aW5nLmxpbmtfcmF0ZTsKKwllbHNlCisJCWx0X3NldHRpbmdzLT5saW5rX3NldHRpbmdzLmxpbmtfcmF0ZSA9IGxpbmtfc2V0dGluZy0+bGlua19yYXRlOwogCi0JbHRfc2V0dGluZ3MubGlua19zZXR0aW5ncy5saW5rX3JhdGUgPSBsaW5rX3NldHRpbmctPmxpbmtfcmF0ZTsKLQlsdF9zZXR0aW5ncy5saW5rX3NldHRpbmdzLmxhbmVfY291bnQgPSBsaW5rX3NldHRpbmctPmxhbmVfY291bnQ7Ci0JbHRfc2V0dGluZ3MubGlua19zZXR0aW5ncy51c2VfbGlua19yYXRlX3NldCA9IGxpbmtfc2V0dGluZy0+dXNlX2xpbmtfcmF0ZV9zZXQ7Ci0JbHRfc2V0dGluZ3MubGlua19zZXR0aW5ncy5saW5rX3JhdGVfc2V0ID0gbGlua19zZXR0aW5nLT5saW5rX3JhdGVfc2V0OworCWlmIChsaW5rLT5wcmVmZXJyZWRfbGlua19zZXR0aW5nLmxhbmVfY291bnQgIT0gTEFORV9DT1VOVF9VTktOT1dOKQorCQlsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5sYW5lX2NvdW50ID0gbGluay0+cHJlZmVycmVkX2xpbmtfc2V0dGluZy5sYW5lX2NvdW50OworCWVsc2UKKwkJbHRfc2V0dGluZ3MtPmxpbmtfc2V0dGluZ3MubGFuZV9jb3VudCA9IGxpbmtfc2V0dGluZy0+bGFuZV9jb3VudDsKIAogCS8qQHRvZG9bdmRldnVsYXBdIG1vdmUgU1MgdG8gTFMsIHNob3VsZCBub3QgYmUgaGFuZGxlZCBieSBkaXNwbGF5cGF0aCovCiAKQEAgLTk4NywzMSArOTk1LDc1IEBAIGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgZGNfbGlua19kcF9wZXJmb3JtX2xpbmtfdHJhaW5pbmcoCiAJICogTElOS19TUFJFQURfMDVfRE9XTlNQUkVBRF8zMEtIWiA6CiAJICogTElOS19TUFJFQURfRElTQUJMRUQ7CiAJICovCisJLyogSW5pdGlhbGl6ZSBsaW5rIHNwcmVhZCAqLwogCWlmIChsaW5rLT5kcF9zc19vZmYpCi0JCWx0X3NldHRpbmdzLmxpbmtfc2V0dGluZ3MubGlua19zcHJlYWQgPSBMSU5LX1NQUkVBRF9ESVNBQkxFRDsKKwkJbHRfc2V0dGluZ3MtPmxpbmtfc2V0dGluZ3MubGlua19zcHJlYWQgPSBMSU5LX1NQUkVBRF9ESVNBQkxFRDsKKwllbHNlIGlmIChvdmVycmlkZXMtPmRvd25zcHJlYWQgIT0gTlVMTCkKKwkJbHRfc2V0dGluZ3MtPmxpbmtfc2V0dGluZ3MubGlua19zcHJlYWQKKwkJCT0gKm92ZXJyaWRlcy0+ZG93bnNwcmVhZAorCQkJPyBMSU5LX1NQUkVBRF8wNV9ET1dOU1BSRUFEXzMwS0haCisJCQk6IExJTktfU1BSRUFEX0RJU0FCTEVEOwogCWVsc2UKLQkJbHRfc2V0dGluZ3MubGlua19zZXR0aW5ncy5saW5rX3NwcmVhZCA9IExJTktfU1BSRUFEXzA1X0RPV05TUFJFQURfMzBLSFo7CisJCWx0X3NldHRpbmdzLT5saW5rX3NldHRpbmdzLmxpbmtfc3ByZWFkID0gTElOS19TUFJFQURfMDVfRE9XTlNQUkVBRF8zMEtIWjsKIAotCS8qIDEuIHNldCBsaW5rIHJhdGUsIGxhbmUgY291bnQgYW5kIHNwcmVhZCovCi0JZHBjZF9zZXRfbGlua19zZXR0aW5ncyhsaW5rLCAmbHRfc2V0dGluZ3MpOworCS8qIEluaXRpYWxpemUgbGFuZSBzZXR0aW5ncyBvdmVycmlkZXMgKi8KKwlpZiAob3ZlcnJpZGVzLT52b2x0YWdlX3N3aW5nICE9IE5VTEwpCisJCWx0X3NldHRpbmdzLT52b2x0YWdlX3N3aW5nID0gb3ZlcnJpZGVzLT52b2x0YWdlX3N3aW5nOwogCi0JLyogMi4gcGVyZm9ybSBsaW5rIHRyYWluaW5nIChzZXQgbGluayB0cmFpbmluZyBkb25lCi0JICogIHRvIGZhbHNlIGlzIGRvbmUgYXMgd2VsbCkqLwotCXN0YXR1cyA9IHBlcmZvcm1fY2xvY2tfcmVjb3Zlcnlfc2VxdWVuY2UobGluaywgJmx0X3NldHRpbmdzKTsKLQlpZiAoc3RhdHVzID09IExJTktfVFJBSU5JTkdfU1VDQ0VTUykgewotCQlzdGF0dXMgPSBwZXJmb3JtX2NoYW5uZWxfZXF1YWxpemF0aW9uX3NlcXVlbmNlKGxpbmssCi0JCQkJJmx0X3NldHRpbmdzKTsKKwlpZiAob3ZlcnJpZGVzLT5wcmVfZW1waGFzaXMgIT0gTlVMTCkKKwkJbHRfc2V0dGluZ3MtPnByZV9lbXBoYXNpcyA9IG92ZXJyaWRlcy0+cHJlX2VtcGhhc2lzOworCisJaWYgKG92ZXJyaWRlcy0+cG9zdF9jdXJzb3IyICE9IE5VTEwpCisJCWx0X3NldHRpbmdzLT5wb3N0X2N1cnNvcjIgPSBvdmVycmlkZXMtPnBvc3RfY3Vyc29yMjsKKworCS8qIEluaXRpYWxpemUgbGFuZSBzZXR0aW5ncyAoVlMvUEUvUEMyKSAqLworCWZvciAobGFuZSA9IDA7IGxhbmUgPCBMQU5FX0NPVU5UX0RQX01BWDsgbGFuZSsrKSB7CisJCWx0X3NldHRpbmdzLT5sYW5lX3NldHRpbmdzW2xhbmVdLlZPTFRBR0VfU1dJTkcgPQorCQkJbHRfc2V0dGluZ3MtPnZvbHRhZ2Vfc3dpbmcgIT0gTlVMTCA/CisJCQkqbHRfc2V0dGluZ3MtPnZvbHRhZ2Vfc3dpbmcgOgorCQkJVk9MVEFHRV9TV0lOR19MRVZFTDA7CisJCWx0X3NldHRpbmdzLT5sYW5lX3NldHRpbmdzW2xhbmVdLlBSRV9FTVBIQVNJUyA9CisJCQlsdF9zZXR0aW5ncy0+cHJlX2VtcGhhc2lzICE9IE5VTEwgPworCQkJKmx0X3NldHRpbmdzLT5wcmVfZW1waGFzaXMKKwkJCTogUFJFX0VNUEhBU0lTX0RJU0FCTEVEOworCQlsdF9zZXR0aW5ncy0+bGFuZV9zZXR0aW5nc1tsYW5lXS5QT1NUX0NVUlNPUjIgPQorCQkJbHRfc2V0dGluZ3MtPnBvc3RfY3Vyc29yMiAhPSBOVUxMID8KKwkJCSpsdF9zZXR0aW5ncy0+cG9zdF9jdXJzb3IyCisJCQk6IFBPU1RfQ1VSU09SMl9ESVNBQkxFRDsKIAl9CiAKLQlpZiAoKHN0YXR1cyA9PSBMSU5LX1RSQUlOSU5HX1NVQ0NFU1MpIHx8ICFza2lwX3ZpZGVvX3BhdHRlcm4pIHsKLQkJc3RhdHVzID0gcGVyZm9ybV9saW5rX3RyYWluaW5nX2ludChsaW5rLAotCQkJCSZsdF9zZXR0aW5ncywKLQkJCQlzdGF0dXMpOwotCX0KKwkvKiBJbml0aWFsaXplIHRyYWluaW5nIHRpbWluZ3MgKi8KKwlpZiAob3ZlcnJpZGVzLT5jcl9wYXR0ZXJuX3RpbWUgIT0gTlVMTCkKKwkJbHRfc2V0dGluZ3MtPmNyX3BhdHRlcm5fdGltZSA9ICpvdmVycmlkZXMtPmNyX3BhdHRlcm5fdGltZTsKKwllbHNlCisJCWx0X3NldHRpbmdzLT5jcl9wYXR0ZXJuX3RpbWUgPSBnZXRfdHJhaW5pbmdfYXV4X3JkX2ludGVydmFsKGxpbmssIDEwMCk7CiAKLQkvKiA2LiBwcmludCBzdGF0dXMgbWVzc2FnZSovCi0Jc3dpdGNoIChsdF9zZXR0aW5ncy5saW5rX3NldHRpbmdzLmxpbmtfcmF0ZSkgeworCWlmIChvdmVycmlkZXMtPmVxX3BhdHRlcm5fdGltZSAhPSBOVUxMKQorCQlsdF9zZXR0aW5ncy0+ZXFfcGF0dGVybl90aW1lID0gKm92ZXJyaWRlcy0+ZXFfcGF0dGVybl90aW1lOworCWVsc2UKKwkJbHRfc2V0dGluZ3MtPmVxX3BhdHRlcm5fdGltZSA9IGdldF90cmFpbmluZ19hdXhfcmRfaW50ZXJ2YWwobGluaywgNDAwKTsKIAorCWlmIChvdmVycmlkZXMtPnBhdHRlcm5fZm9yX2VxICE9IE5VTEwpCisJCWx0X3NldHRpbmdzLT5wYXR0ZXJuX2Zvcl9lcSA9ICpvdmVycmlkZXMtPnBhdHRlcm5fZm9yX2VxOworCWVsc2UKKwkJbHRfc2V0dGluZ3MtPnBhdHRlcm5fZm9yX2VxID0gZ2V0X3N1cHBvcnRlZF90cChsaW5rKTsKKworCWlmIChvdmVycmlkZXMtPmVuaGFuY2VkX2ZyYW1pbmcgIT0gTlVMTCkKKwkJbHRfc2V0dGluZ3MtPmVuaGFuY2VkX2ZyYW1pbmcgPSAqb3ZlcnJpZGVzLT5lbmhhbmNlZF9mcmFtaW5nOworCWVsc2UKKwkJbHRfc2V0dGluZ3MtPmVuaGFuY2VkX2ZyYW1pbmcgPSAxOworfQorCitzdGF0aWMgdm9pZCBwcmludF9zdGF0dXNfbWVzc2FnZSgKKwlzdHJ1Y3QgZGNfbGluayAqbGluaywKKwljb25zdCBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqbHRfc2V0dGluZ3MsCisJZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBzdGF0dXMpCit7CisJY2hhciAqbGlua19yYXRlID0gIlVua25vd24iOworCWNoYXIgKmx0X3Jlc3VsdCA9ICJVbmtub3duIjsKKwljaGFyICpsdF9zcHJlYWQgPSAiRGlzYWJsZWQiOworCisJc3dpdGNoIChsdF9zZXR0aW5ncy0+bGlua19zZXR0aW5ncy5saW5rX3JhdGUpIHsKIAljYXNlIExJTktfUkFURV9MT1c6CiAJCWxpbmtfcmF0ZSA9ICJSQlIiOwogCQlicmVhazsKQEAgLTEwNTcsMTMgKzExMDksMTIyIEBAIGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgZGNfbGlua19kcF9wZXJmb3JtX2xpbmtfdHJhaW5pbmcoCiAJCWJyZWFrOwogCX0KIAorCXN3aXRjaCAobHRfc2V0dGluZ3MtPmxpbmtfc2V0dGluZ3MubGlua19zcHJlYWQpIHsKKwljYXNlIExJTktfU1BSRUFEX0RJU0FCTEVEOgorCQlsdF9zcHJlYWQgPSAiRGlzYWJsZWQiOworCQlicmVhazsKKwljYXNlIExJTktfU1BSRUFEXzA1X0RPV05TUFJFQURfMzBLSFo6CisJCWx0X3NwcmVhZCA9ICIwLjUlIDMwS0h6IjsKKwkJYnJlYWs7CisJY2FzZSBMSU5LX1NQUkVBRF8wNV9ET1dOU1BSRUFEXzMzS0haOgorCQlsdF9zcHJlYWQgPSAiMC41JSAzM0tIeiI7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwogCS8qIENvbm5lY3Rpdml0eSBsb2c6IGxpbmsgdHJhaW5pbmcgKi8KLQlDT05OX01TR19MVChsaW5rLCAiJXN4JWQgJXMgVlM9JWQsIFBFPSVkIiwKLQkJCWxpbmtfcmF0ZSwKLQkJCWx0X3NldHRpbmdzLmxpbmtfc2V0dGluZ3MubGFuZV9jb3VudCwKLQkJCWx0X3Jlc3VsdCwKLQkJCWx0X3NldHRpbmdzLmxhbmVfc2V0dGluZ3NbMF0uVk9MVEFHRV9TV0lORywKLQkJCWx0X3NldHRpbmdzLmxhbmVfc2V0dGluZ3NbMF0uUFJFX0VNUEhBU0lTKTsKKwlDT05OX01TR19MVChsaW5rLCAiJXN4JWQgJXMgVlM9JWQsIFBFPSVkLCBEUz0lcyIsCisJCQkJbGlua19yYXRlLAorCQkJCWx0X3NldHRpbmdzLT5saW5rX3NldHRpbmdzLmxhbmVfY291bnQsCisJCQkJbHRfcmVzdWx0LAorCQkJCWx0X3NldHRpbmdzLT5sYW5lX3NldHRpbmdzWzBdLlZPTFRBR0VfU1dJTkcsCisJCQkJbHRfc2V0dGluZ3MtPmxhbmVfc2V0dGluZ3NbMF0uUFJFX0VNUEhBU0lTLAorCQkJCWx0X3NwcmVhZCk7Cit9CisKK2Jvb2wgZGNfbGlua19kcF9wZXJmb3JtX2xpbmtfdHJhaW5pbmdfc2tpcF9hdXgoCisJc3RydWN0IGRjX2xpbmsgKmxpbmssCisJY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZykKK3sKKwlzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyBsdF9zZXR0aW5nczsKKwllbnVtIGRjX2RwX3RyYWluaW5nX3BhdHRlcm4gcGF0dGVybl9mb3JfY3IgPSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzE7CisKKwlpbml0aWFsaXplX3RyYWluaW5nX3NldHRpbmdzKAorCQkJbGluaywKKwkJCWxpbmtfc2V0dGluZywKKwkJCSZsaW5rLT5wcmVmZXJyZWRfdHJhaW5pbmdfc2V0dGluZ3MsCisJCQkmbHRfc2V0dGluZ3MpOworCisJLyogMS4gUGVyZm9ybV9jbG9ja19yZWNvdmVyeV9zZXF1ZW5jZS4gKi8KKworCS8qIHRyYW5zbWl0IHRyYWluaW5nIHBhdHRlcm4gZm9yIGNsb2NrIHJlY292ZXJ5ICovCisJZHBfc2V0X2h3X3RyYWluaW5nX3BhdHRlcm4obGluaywgcGF0dGVybl9mb3JfY3IpOworCisJLyogY2FsbCBIV1NTIHRvIHNldCBsYW5lIHNldHRpbmdzKi8KKwlkcF9zZXRfaHdfbGFuZV9zZXR0aW5ncyhsaW5rLCAmbHRfc2V0dGluZ3MpOworCisJLyogd2FpdCByZWNlaXZlciB0byBsb2NrLW9uKi8KKwl3YWl0X2Zvcl90cmFpbmluZ19hdXhfcmRfaW50ZXJ2YWwobGluaywgbHRfc2V0dGluZ3MuY3JfcGF0dGVybl90aW1lKTsKKworCS8qIDIuIFBlcmZvcm1fY2hhbm5lbF9lcXVhbGl6YXRpb25fc2VxdWVuY2UuICovCisKKwkvKiB0cmFuc21pdCB0cmFpbmluZyBwYXR0ZXJuIGZvciBjaGFubmVsIGVxdWFsaXphdGlvbi4gKi8KKwlkcF9zZXRfaHdfdHJhaW5pbmdfcGF0dGVybihsaW5rLCBsdF9zZXR0aW5ncy5wYXR0ZXJuX2Zvcl9lcSk7CisKKwkvKiBjYWxsIEhXU1MgdG8gc2V0IGxhbmUgc2V0dGluZ3MqLworCWRwX3NldF9od19sYW5lX3NldHRpbmdzKGxpbmssICZsdF9zZXR0aW5ncyk7CisKKwkvKiB3YWl0IHJlY2VpdmVyIHRvIGxvY2stb24uICovCisJd2FpdF9mb3JfdHJhaW5pbmdfYXV4X3JkX2ludGVydmFsKGxpbmssIGx0X3NldHRpbmdzLmVxX3BhdHRlcm5fdGltZSk7CisKKwkvKiAzLiBQZXJmb3JtX2xpbmtfdHJhaW5pbmdfaW50LiAqLworCisJLyogTWFpbmxpbmsgb3V0cHV0IGlkbGUgcGF0dGVybi4gKi8KKwlkcF9zZXRfaHdfdGVzdF9wYXR0ZXJuKGxpbmssIERQX1RFU1RfUEFUVEVSTl9WSURFT19NT0RFLCBOVUxMLCAwKTsKKworCXByaW50X3N0YXR1c19tZXNzYWdlKGxpbmssICZsdF9zZXR0aW5ncywgTElOS19UUkFJTklOR19TVUNDRVNTKTsKKworCXJldHVybiB0cnVlOworfQorCitlbnVtIGxpbmtfdHJhaW5pbmdfcmVzdWx0IGRjX2xpbmtfZHBfcGVyZm9ybV9saW5rX3RyYWluaW5nKAorCXN0cnVjdCBkY19saW5rICpsaW5rLAorCWNvbnN0IHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmcsCisJYm9vbCBza2lwX3ZpZGVvX3BhdHRlcm4pCit7CisJZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBzdGF0dXMgPSBMSU5LX1RSQUlOSU5HX1NVQ0NFU1M7CisJc3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3MgbHRfc2V0dGluZ3M7CisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKKwlib29sIGZlY19lbmFibGU7CisjZW5kaWYKKworCWluaXRpYWxpemVfdHJhaW5pbmdfc2V0dGluZ3MoCisJCQlsaW5rLAorCQkJbGlua19zZXR0aW5nLAorCQkJJmxpbmstPnByZWZlcnJlZF90cmFpbmluZ19zZXR0aW5ncywKKwkJCSZsdF9zZXR0aW5ncyk7CisKKwkvKiAxLiBzZXQgbGluayByYXRlLCBsYW5lIGNvdW50IGFuZCBzcHJlYWQuICovCisJZHBjZF9zZXRfbGlua19zZXR0aW5ncyhsaW5rLCAmbHRfc2V0dGluZ3MpOworCisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKKwlpZiAobGluay0+cHJlZmVycmVkX3RyYWluaW5nX3NldHRpbmdzLmZlY19lbmFibGUgIT0gTlVMTCkKKwkJZmVjX2VuYWJsZSA9ICpsaW5rLT5wcmVmZXJyZWRfdHJhaW5pbmdfc2V0dGluZ3MuZmVjX2VuYWJsZTsKKwllbHNlCisJCWZlY19lbmFibGUgPSB0cnVlOworCisJZHBfc2V0X2ZlY19yZWFkeShsaW5rLCBmZWNfZW5hYmxlKTsKKyNlbmRpZgorCisKKwkvKiAyLiBwZXJmb3JtIGxpbmsgdHJhaW5pbmcgKHNldCBsaW5rIHRyYWluaW5nIGRvbmUKKwkgKiAgdG8gZmFsc2UgaXMgZG9uZSBhcyB3ZWxsKQorCSAqLworCXN0YXR1cyA9IHBlcmZvcm1fY2xvY2tfcmVjb3Zlcnlfc2VxdWVuY2UobGluaywgJmx0X3NldHRpbmdzKTsKKwlpZiAoc3RhdHVzID09IExJTktfVFJBSU5JTkdfU1VDQ0VTUykgeworCQlzdGF0dXMgPSBwZXJmb3JtX2NoYW5uZWxfZXF1YWxpemF0aW9uX3NlcXVlbmNlKGxpbmssCisJCQkJJmx0X3NldHRpbmdzKTsKKwl9CisKKwlpZiAoKHN0YXR1cyA9PSBMSU5LX1RSQUlOSU5HX1NVQ0NFU1MpIHx8ICFza2lwX3ZpZGVvX3BhdHRlcm4pIHsKKwkJc3RhdHVzID0gcGVyZm9ybV9saW5rX3RyYWluaW5nX2ludChsaW5rLAorCQkJCSZsdF9zZXR0aW5ncywKKwkJCQlzdGF0dXMpOworCX0KKworCS8qIDYuIHByaW50IHN0YXR1cyBtZXNzYWdlKi8KKwlwcmludF9zdGF0dXNfbWVzc2FnZShsaW5rLCAmbHRfc2V0dGluZ3MsIHN0YXR1cyk7CiAKIAlpZiAoc3RhdHVzICE9IExJTktfVFJBSU5JTkdfU1VDQ0VTUykKIAkJbGluay0+Y3R4LT5kYy0+ZGVidWdfZGF0YS5sdEZhaWxDb3VudCsrOwpAQCAtMTA3MSw3ICsxMjMyLDYgQEAgZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBkY19saW5rX2RwX3BlcmZvcm1fbGlua190cmFpbmluZygKIAlyZXR1cm4gc3RhdHVzOwogfQogCi0KIGJvb2wgcGVyZm9ybV9saW5rX3RyYWluaW5nX3dpdGhfcmV0cmllcygKIAlzdHJ1Y3QgZGNfbGluayAqbGluaywKIAljb25zdCBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5nLApAQCAtMTA5Niw2ICsxMjU2LDE0NiBAQCBib29sIHBlcmZvcm1fbGlua190cmFpbmluZ193aXRoX3JldHJpZXMoCiAJcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgZW51bSBjbG9ja19zb3VyY2VfaWQgZ2V0X2Nsb2NrX3NvdXJjZV9pZChzdHJ1Y3QgZGNfbGluayAqbGluaykKK3sKKwllbnVtIGNsb2NrX3NvdXJjZV9pZCBkcF9jc19pZCA9IENMT0NLX1NPVVJDRV9JRF9VTkRFRklORUQ7CisJc3RydWN0IGNsb2NrX3NvdXJjZSAqZHBfY3MgPSBsaW5rLT5kYy0+cmVzX3Bvb2wtPmRwX2Nsb2NrX3NvdXJjZTsKKworCWlmIChkcF9jcyAhPSBOVUxMKSB7CisJCWRwX2NzX2lkID0gZHBfY3MtPmlkOworCX0gZWxzZSB7CisJCS8qCisJCSAqIGRwIGNsb2NrIHNvdXJjZSBpcyBub3QgaW5pdGlhbGl6ZWQgZm9yIHNvbWUgcmVhc29uLgorCQkgKiBTaG91bGQgbm90IGhhcHBlbiwgQ0xPQ0tfU09VUkNFX0lEX0VYVEVSTkFMIHdpbGwgYmUgdXNlZAorCQkgKi8KKwkJQVNTRVJUKGRwX2NzKTsKKwl9CisKKwlyZXR1cm4gZHBfY3NfaWQ7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9kcF9tc3RfbW9kZShzdHJ1Y3QgZGNfbGluayAqbGluaywgYm9vbCBtc3RfZW5hYmxlKQoreworCWlmIChtc3RfZW5hYmxlID09IGZhbHNlICYmCisJCWxpbmstPnR5cGUgPT0gZGNfY29ubmVjdGlvbl9tc3RfYnJhbmNoKSB7CisJCS8qIERpc2FibGUgTVNUIG9uIGxpbmsuIFVzZSBvbmx5IGxvY2FsIHNpbmsuICovCisJCWRwX2Rpc2FibGVfbGlua19waHlfbXN0KGxpbmssIGxpbmstPmNvbm5lY3Rvcl9zaWduYWwpOworCisJCWxpbmstPnR5cGUgPSBkY19jb25uZWN0aW9uX3NpbmdsZTsKKwkJbGluay0+bG9jYWxfc2luayA9IGxpbmstPnJlbW90ZV9zaW5rc1swXTsKKwkJbGluay0+bG9jYWxfc2luay0+c2lua19zaWduYWwgPSBTSUdOQUxfVFlQRV9ESVNQTEFZX1BPUlQ7CisJfSBlbHNlIGlmIChtc3RfZW5hYmxlID09IHRydWUgJiYKKwkJCWxpbmstPnR5cGUgPT0gZGNfY29ubmVjdGlvbl9zaW5nbGUgJiYKKwkJCWxpbmstPnJlbW90ZV9zaW5rc1swXSAhPSBOVUxMKSB7CisJCS8qIFJlLWVuYWJsZSBNU1Qgb24gbGluay4gKi8KKwkJZHBfZGlzYWJsZV9saW5rX3BoeShsaW5rLCBsaW5rLT5jb25uZWN0b3Jfc2lnbmFsKTsKKwkJZHBfZW5hYmxlX21zdF9vbl9zaW5rKGxpbmssIHRydWUpOworCisJCWxpbmstPnR5cGUgPSBkY19jb25uZWN0aW9uX21zdF9icmFuY2g7CisJCWxpbmstPmxvY2FsX3NpbmstPnNpbmtfc2lnbmFsID0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUX01TVDsKKwl9Cit9CisKK2Jvb2wgZGNfbGlua19kcF9zeW5jX2x0X2JlZ2luKHN0cnVjdCBkY19saW5rICpsaW5rKQoreworCS8qIEJlZ2luIFN5bmMgTFQuIER1cmluZyB0aGlzIHRpbWUsCisJICogRFBDRDo2MDBoIG11c3Qgbm90IGJlIHBvd2VyZWQgZG93bi4KKwkgKi8KKwlsaW5rLT5zeW5jX2x0X2luX3Byb2dyZXNzID0gdHJ1ZTsKKworCS8qQ2xlYXIgYW55IGV4aXN0aW5nIHByZWZlcnJlZCBzZXR0aW5ncy4qLworCW1lbXNldCgmbGluay0+cHJlZmVycmVkX3RyYWluaW5nX3NldHRpbmdzLCAwLAorCQlzaXplb2Yoc3RydWN0IGRjX2xpbmtfdHJhaW5pbmdfb3ZlcnJpZGVzKSk7CisJbWVtc2V0KCZsaW5rLT5wcmVmZXJyZWRfbGlua19zZXR0aW5nLCAwLAorCQlzaXplb2Yoc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MpKTsKKworCXJldHVybiB0cnVlOworfQorCitlbnVtIGxpbmtfdHJhaW5pbmdfcmVzdWx0IGRjX2xpbmtfZHBfc3luY19sdF9hdHRlbXB0KAorICAgIHN0cnVjdCBkY19saW5rICpsaW5rLAorICAgIHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmdzLAorICAgIHN0cnVjdCBkY19saW5rX3RyYWluaW5nX292ZXJyaWRlcyAqbHRfb3ZlcnJpZGVzKQoreworCXN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzIGx0X3NldHRpbmdzOworCWVudW0gbGlua190cmFpbmluZ19yZXN1bHQgbHRfc3RhdHVzID0gTElOS19UUkFJTklOR19TVUNDRVNTOworCWVudW0gZHBfcGFuZWxfbW9kZSBwYW5lbF9tb2RlID0gRFBfUEFORUxfTU9ERV9ERUZBVUxUOworCWVudW0gY2xvY2tfc291cmNlX2lkIGRwX2NzX2lkID0gQ0xPQ0tfU09VUkNFX0lEX0VYVEVSTkFMOworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJYm9vbCBmZWNfZW5hYmxlID0gZmFsc2U7CisjZW5kaWYKKworCWluaXRpYWxpemVfdHJhaW5pbmdfc2V0dGluZ3MoCisJCWxpbmssCisJCWxpbmtfc2V0dGluZ3MsCisJCWx0X292ZXJyaWRlcywKKwkJJmx0X3NldHRpbmdzKTsKKworCS8qIFNldHVwIE1TVCBNb2RlICovCisJaWYgKGx0X292ZXJyaWRlcy0+bXN0X2VuYWJsZSkKKwkJc2V0X2RwX21zdF9tb2RlKGxpbmssICpsdF9vdmVycmlkZXMtPm1zdF9lbmFibGUpOworCisJLyogRGlzYWJsZSBsaW5rICovCisJZHBfZGlzYWJsZV9saW5rX3BoeShsaW5rLCBsaW5rLT5jb25uZWN0b3Jfc2lnbmFsKTsKKworCS8qIEVuYWJsZSBsaW5rICovCisJZHBfY3NfaWQgPSBnZXRfY2xvY2tfc291cmNlX2lkKGxpbmspOworCWRwX2VuYWJsZV9saW5rX3BoeShsaW5rLCBsaW5rLT5jb25uZWN0b3Jfc2lnbmFsLAorCQlkcF9jc19pZCwgbGlua19zZXR0aW5ncyk7CisKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAorCS8qIFNldCBGRUMgZW5hYmxlICovCisJZmVjX2VuYWJsZSA9IGx0X292ZXJyaWRlcy0+ZmVjX2VuYWJsZSAmJiAqbHRfb3ZlcnJpZGVzLT5mZWNfZW5hYmxlOworCWRwX3NldF9mZWNfcmVhZHkobGluaywgZmVjX2VuYWJsZSk7CisjZW5kaWYKKworCWlmIChsdF9vdmVycmlkZXMtPmFsdGVybmF0ZV9zY3JhbWJsZXJfcmVzZXQpIHsKKwkJaWYgKCpsdF9vdmVycmlkZXMtPmFsdGVybmF0ZV9zY3JhbWJsZXJfcmVzZXQpCisJCQlwYW5lbF9tb2RlID0gRFBfUEFORUxfTU9ERV9FRFA7CisJCWVsc2UKKwkJCXBhbmVsX21vZGUgPSBEUF9QQU5FTF9NT0RFX0RFRkFVTFQ7CisJfSBlbHNlCisJCXBhbmVsX21vZGUgPSBkcF9nZXRfcGFuZWxfbW9kZShsaW5rKTsKKworCWRwX3NldF9wYW5lbF9tb2RlKGxpbmssIHBhbmVsX21vZGUpOworCisJLyogQXR0ZW1wdCB0byB0cmFpbiB3aXRoIGdpdmVuIGxpbmsgdHJhaW5pbmcgc2V0dGluZ3MgKi8KKworCS8qIFNldCBsaW5rIHJhdGUsIGxhbmUgY291bnQgYW5kIHNwcmVhZC4gKi8KKwlkcGNkX3NldF9saW5rX3NldHRpbmdzKGxpbmssICZsdF9zZXR0aW5ncyk7CisKKwkvKiAyLiBwZXJmb3JtIGxpbmsgdHJhaW5pbmcgKHNldCBsaW5rIHRyYWluaW5nIGRvbmUKKwkgKiAgdG8gZmFsc2UgaXMgZG9uZSBhcyB3ZWxsKQorCSAqLworCWx0X3N0YXR1cyA9IHBlcmZvcm1fY2xvY2tfcmVjb3Zlcnlfc2VxdWVuY2UobGluaywgJmx0X3NldHRpbmdzKTsKKwlpZiAobHRfc3RhdHVzID09IExJTktfVFJBSU5JTkdfU1VDQ0VTUykgeworCQlsdF9zdGF0dXMgPSBwZXJmb3JtX2NoYW5uZWxfZXF1YWxpemF0aW9uX3NlcXVlbmNlKGxpbmssCisJCQkJCQkmbHRfc2V0dGluZ3MpOworCX0KKworCS8qIDMuIFN5bmMgTFQgbXVzdCBza2lwIFRSQUlOSU5HX1BBVFRFUk5fU0VUOjAgKHZpZGVvIHBhdHRlcm4pKi8KKwkvKiA0LiBwcmludCBzdGF0dXMgbWVzc2FnZSovCisJcHJpbnRfc3RhdHVzX21lc3NhZ2UobGluaywgJmx0X3NldHRpbmdzLCBsdF9zdGF0dXMpOworCisJcmV0dXJuIGx0X3N0YXR1czsKK30KKworYm9vbCBkY19saW5rX2RwX3N5bmNfbHRfZW5kKHN0cnVjdCBkY19saW5rICpsaW5rLCBib29sIGxpbmtfZG93bikKK3sKKwkvKiBJZiBpbnB1dCBwYXJhbWV0ZXIgaXMgc2V0LCBzaHV0IGRvd24gcGh5LgorCSAqIFN0aWxsIHNob3VsZG4ndCB0dXJuIG9mZiBkcF9yZWNlaXZlciAoRFBDRDo2MDBoKQorCSAqLworCWlmIChsaW5rX2Rvd24gPT0gdHJ1ZSkgeworCQlkcF9kaXNhYmxlX2xpbmtfcGh5KGxpbmssIGxpbmstPmNvbm5lY3Rvcl9zaWduYWwpOworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJCWRwX3NldF9mZWNfcmVhZHkobGluaywgZmFsc2UpOworI2VuZGlmCisJfQorCisJbGluay0+c3luY19sdF9pbl9wcm9ncmVzcyA9IGZhbHNlOworCXJldHVybiB0cnVlOworfQorCiBzdGF0aWMgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgZ2V0X21heF9saW5rX2NhcChzdHJ1Y3QgZGNfbGluayAqbGluaykKIHsKIAkvKiBTZXQgRGVmYXVsdCBsaW5rIHNldHRpbmdzICovCkBAIC0xMjUwLDcgKzE1NTAsNiBAQCBib29sIGRwX3ZlcmlmeV9saW5rX2NhcCgKIAlib29sIHN1Y2Nlc3M7CiAJYm9vbCBza2lwX2xpbmtfdHJhaW5pbmc7CiAJYm9vbCBza2lwX3ZpZGVvX3BhdHRlcm47Ci0Jc3RydWN0IGNsb2NrX3NvdXJjZSAqZHBfY3M7CiAJZW51bSBjbG9ja19zb3VyY2VfaWQgZHBfY3NfaWQgPSBDTE9DS19TT1VSQ0VfSURfRVhURVJOQUw7CiAJZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBzdGF0dXM7CiAJdW5pb24gaHBkX2lycV9kYXRhIGlycV9kYXRhOwpAQCAtMTI3NCwxNyArMTU3Myw3IEBAIGJvb2wgZHBfdmVyaWZ5X2xpbmtfY2FwKAogCS8qIGRpc2FibGUgUEhZIGRvbmUgcG9zc2libGUgYnkgQklPUywgd2lsbCBiZSBkb25lIGJ5IGRyaXZlciBpdHNlbGYgKi8KIAlkcF9kaXNhYmxlX2xpbmtfcGh5KGxpbmssIGxpbmstPmNvbm5lY3Rvcl9zaWduYWwpOwogCi0JZHBfY3MgPSBsaW5rLT5kYy0+cmVzX3Bvb2wtPmRwX2Nsb2NrX3NvdXJjZTsKLQotCWlmIChkcF9jcykKLQkJZHBfY3NfaWQgPSBkcF9jcy0+aWQ7Ci0JZWxzZSB7Ci0JCS8qCi0JCSAqIGRwIGNsb2NrIHNvdXJjZSBpcyBub3QgaW5pdGlhbGl6ZWQgZm9yIHNvbWUgcmVhc29uLgotCQkgKiBTaG91bGQgbm90IGhhcHBlbiwgQ0xPQ0tfU09VUkNFX0lEX0VYVEVSTkFMIHdpbGwgYmUgdXNlZAotCQkgKi8KLQkJQVNTRVJUKGRwX2NzKTsKLQl9CisJZHBfY3NfaWQgPSBnZXRfY2xvY2tfc291cmNlX2lkKGxpbmspOwogCiAJLyogbGluayB0cmFpbmluZyBzdGFydHMgd2l0aCB0aGUgbWF4aW11bSBjb21tb24gc2V0dGluZ3MKIAkgKiBzdXBwb3J0ZWQgYnkgYm90aCBzaW5rIGFuZCBBU0lDLgpAQCAtMTM1NCw2ICsxNjQzLDMzIEBAIGJvb2wgZHBfdmVyaWZ5X2xpbmtfY2FwKAogCXJldHVybiBzdWNjZXNzOwogfQogCitib29sIGRwX3ZlcmlmeV9saW5rX2NhcF93aXRoX3JldHJpZXMoCisJc3RydWN0IGRjX2xpbmsgKmxpbmssCisJc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmtub3duX2xpbWl0X2xpbmtfc2V0dGluZywKKwlpbnQgYXR0ZW1wdHMpCit7CisJdWludDhfdCBpID0gMDsKKwlib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKworCWZvciAoaSA9IDA7IGkgPCBhdHRlbXB0czsgaSsrKSB7CisJCWludCBmYWlsX2NvdW50ID0gMDsKKwkJZW51bSBkY19jb25uZWN0aW9uX3R5cGUgdHlwZTsKKworCQltZW1zZXQoJmxpbmstPnZlcmlmaWVkX2xpbmtfY2FwLCAwLAorCQkJCXNpemVvZihzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncykpOworCQlpZiAoIWRjX2xpbmtfZGV0ZWN0X3NpbmsobGluaywgJnR5cGUpKSB7CisJCQlicmVhazsKKwkJfSBlbHNlIGlmIChkcF92ZXJpZnlfbGlua19jYXAobGluaywKKwkJCQkmbGluay0+cmVwb3J0ZWRfbGlua19jYXAsCisJCQkJJmZhaWxfY291bnQpICYmIGZhaWxfY291bnQgPT0gMCkgeworCQkJc3VjY2VzcyA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCQltc2xlZXAoMTApOworCX0KKwlyZXR1cm4gc3VjY2VzczsKK30KKwogc3RhdGljIHN0cnVjdCBkY19saW5rX3NldHRpbmdzIGdldF9jb21tb25fc3VwcG9ydGVkX2xpbmtfc2V0dGluZ3MoCiAJCXN0cnVjdCBkY19saW5rX3NldHRpbmdzIGxpbmtfc2V0dGluZ19hLAogCQlzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyBsaW5rX3NldHRpbmdfYikKQEAgLTIxNTYsNiArMjQ3MiwxMSBAQCBib29sIGlzX21zdF9zdXBwb3J0ZWQoc3RydWN0IGRjX2xpbmsgKmxpbmspCiAJdW5pb24gZHBjZF9yZXYgcmV2OwogCXVuaW9uIG1zdG1fY2FwIGNhcDsKIAorCWlmIChsaW5rLT5wcmVmZXJyZWRfdHJhaW5pbmdfc2V0dGluZ3MubXN0X2VuYWJsZSAmJgorCQkqbGluay0+cHJlZmVycmVkX3RyYWluaW5nX3NldHRpbmdzLm1zdF9lbmFibGUgPT0gZmFsc2UpIHsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwogCXJldi5yYXcgID0gMDsKIAljYXAucmF3ICA9IDA7CiAKQEAgLTIzNjMsMTMgKzI2ODQsMTMgQEAgc3RhdGljIHZvaWQgZHBfd2FfcG93ZXJfdXBfMDAxMEZBKHN0cnVjdCBkY19saW5rICpsaW5rLCB1aW50OF90ICpkcGNkX2RhdGEsCiAKIAlpZiAobGluay0+ZHBjZF9jYXBzLmRvbmdsZV90eXBlID09IERJU1BMQVlfRE9OR0xFX0RQX1ZHQV9DT05WRVJURVIpIHsKIAkJc3dpdGNoIChsaW5rLT5kcGNkX2NhcHMuYnJhbmNoX2Rldl9pZCkgewotCQkvKiBTb21lIGFjdGl2ZSBkb25nbGVzIChEUC1WR0EsIERQLURMRFZJIGNvbnZlcnRlcnMpIHBvd2VyIGRvd24KKwkJLyogMDAxMEZBIGFjdGl2ZSBkb25nbGVzIChEUC1WR0EsIERQLURMRFZJIGNvbnZlcnRlcnMpIHBvd2VyIGRvd24KIAkJICogYWxsIGludGVybmFsIGNpcmN1aXRzIGluY2x1ZGluZyBBVVggY29tbXVuaWNhdGlvbiBwcmV2ZW50aW5nCiAJCSAqIHJlYWRpbmcgRFBDRCB0YWJsZSBhbmQgRURJRCAoc3BlYyB2aW9sYXRpb24pLgogCQkgKiBFbmNvZGVyIHdpbGwgc2tpcCBEUCBSWCBwb3dlciBkb3duIG9uIGRpc2FibGVfb3V0cHV0IHRvCiAJCSAqIGtlZXAgcmVjZWl2ZXIgcG93ZXJlZCBhbGwgdGhlIHRpbWUuKi8KLQkJY2FzZSBEUF9CUkFOQ0hfREVWSUNFX0lEXzE6Ci0JCWNhc2UgRFBfQlJBTkNIX0RFVklDRV9JRF80OgorCQljYXNlIERQX0JSQU5DSF9ERVZJQ0VfSURfMDAxMEZBOgorCQljYXNlIERQX0JSQU5DSF9ERVZJQ0VfSURfMDA4MEUxOgogCQkJbGluay0+d2FfZmxhZ3MuZHBfa2VlcF9yZWNlaXZlcl9wb3dlcmVkID0gdHJ1ZTsKIAkJCWJyZWFrOwogCkBAIC0yNzc0LDE0ICszMDk1LDE5IEBAIHN0YXRpYyB2b2lkIHNldF9jcnRjX3Rlc3RfcGF0dGVybihzdHJ1Y3QgZGNfbGluayAqbGluaywKIAkJCQljb250cm9sbGVyX3Rlc3RfcGF0dGVybiwgY29sb3JfZGVwdGgpOwogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQogCQllbHNlIGlmIChvcHAtPmZ1bmNzLT5vcHBfc2V0X2Rpc3BfcGF0dGVybl9nZW5lcmF0b3IpIHsKLQkJCXN0cnVjdCBwaXBlX2N0eCAqYm90X29kbV9waXBlID0gZGNfcmVzX2dldF9vZG1fYm90dG9tX3BpcGUocGlwZV9jdHgpOworCQkJc3RydWN0IHBpcGVfY3R4ICpvZG1fcGlwZTsKKwkJCWludCBvcHBfY250ID0gMTsKIAotCQkJaWYgKGJvdF9vZG1fcGlwZSkgewotCQkJCXN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpib3Rfb3BwID0gYm90X29kbV9waXBlLT5zdHJlYW1fcmVzLm9wcDsKKwkJCWZvciAob2RtX3BpcGUgPSBwaXBlX2N0eC0+bmV4dF9vZG1fcGlwZTsgb2RtX3BpcGU7IG9kbV9waXBlID0gb2RtX3BpcGUtPm5leHRfb2RtX3BpcGUpCisJCQkJb3BwX2NudCsrOwogCi0JCQkJYm90X29wcC0+ZnVuY3MtPm9wcF9wcm9ncmFtX2JpdF9kZXB0aF9yZWR1Y3Rpb24oYm90X29wcCwgJnBhcmFtcyk7Ci0JCQkJd2lkdGggLz0gMjsKLQkJCQlib3Rfb3BwLT5mdW5jcy0+b3BwX3NldF9kaXNwX3BhdHRlcm5fZ2VuZXJhdG9yKGJvdF9vcHAsCisJCQl3aWR0aCAvPSBvcHBfY250OworCisJCQlmb3IgKG9kbV9waXBlID0gcGlwZV9jdHgtPm5leHRfb2RtX3BpcGU7IG9kbV9waXBlOyBvZG1fcGlwZSA9IG9kbV9waXBlLT5uZXh0X29kbV9waXBlKSB7CisJCQkJc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9kbV9vcHAgPSBvZG1fcGlwZS0+c3RyZWFtX3Jlcy5vcHA7CisKKwkJCQlvZG1fb3BwLT5mdW5jcy0+b3BwX3Byb2dyYW1fYml0X2RlcHRoX3JlZHVjdGlvbihvZG1fb3BwLCAmcGFyYW1zKTsKKwkJCQlvZG1fb3BwLT5mdW5jcy0+b3BwX3NldF9kaXNwX3BhdHRlcm5fZ2VuZXJhdG9yKG9kbV9vcHAsCiAJCQkJCWNvbnRyb2xsZXJfdGVzdF9wYXR0ZXJuLAogCQkJCQljb2xvcl9kZXB0aCwKIAkJCQkJTlVMTCwKQEAgLTI4MTAsMTQgKzMxMzYsMTggQEAgc3RhdGljIHZvaWQgc2V0X2NydGNfdGVzdF9wYXR0ZXJuKHN0cnVjdCBkY19saW5rICpsaW5rLAogCQkJCWNvbG9yX2RlcHRoKTsKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKIAkJZWxzZSBpZiAob3BwLT5mdW5jcy0+b3BwX3NldF9kaXNwX3BhdHRlcm5fZ2VuZXJhdG9yKSB7Ci0JCQlzdHJ1Y3QgcGlwZV9jdHggKmJvdF9vZG1fcGlwZSA9IGRjX3Jlc19nZXRfb2RtX2JvdHRvbV9waXBlKHBpcGVfY3R4KTsKKwkJCXN0cnVjdCBwaXBlX2N0eCAqb2RtX3BpcGU7CisJCQlpbnQgb3BwX2NudCA9IDE7CiAKLQkJCWlmIChib3Rfb2RtX3BpcGUpIHsKLQkJCQlzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqYm90X29wcCA9IGJvdF9vZG1fcGlwZS0+c3RyZWFtX3Jlcy5vcHA7CisJCQlmb3IgKG9kbV9waXBlID0gcGlwZV9jdHgtPm5leHRfb2RtX3BpcGU7IG9kbV9waXBlOyBvZG1fcGlwZSA9IG9kbV9waXBlLT5uZXh0X29kbV9waXBlKQorCQkJCW9wcF9jbnQrKzsKIAotCQkJCWJvdF9vcHAtPmZ1bmNzLT5vcHBfcHJvZ3JhbV9iaXRfZGVwdGhfcmVkdWN0aW9uKGJvdF9vcHAsICZwYXJhbXMpOwotCQkJCXdpZHRoIC89IDI7Ci0JCQkJYm90X29wcC0+ZnVuY3MtPm9wcF9zZXRfZGlzcF9wYXR0ZXJuX2dlbmVyYXRvcihib3Rfb3BwLAorCQkJd2lkdGggLz0gb3BwX2NudDsKKwkJCWZvciAob2RtX3BpcGUgPSBwaXBlX2N0eC0+bmV4dF9vZG1fcGlwZTsgb2RtX3BpcGU7IG9kbV9waXBlID0gb2RtX3BpcGUtPm5leHRfb2RtX3BpcGUpIHsKKwkJCQlzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb2RtX29wcCA9IG9kbV9waXBlLT5zdHJlYW1fcmVzLm9wcDsKKworCQkJCW9kbV9vcHAtPmZ1bmNzLT5vcHBfcHJvZ3JhbV9iaXRfZGVwdGhfcmVkdWN0aW9uKG9kbV9vcHAsICZwYXJhbXMpOworCQkJCW9kbV9vcHAtPmZ1bmNzLT5vcHBfc2V0X2Rpc3BfcGF0dGVybl9nZW5lcmF0b3Iob2RtX29wcCwKIAkJCQkJQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fVklERU9NT0RFLAogCQkJCQljb2xvcl9kZXB0aCwKIAkJCQkJTlVMTCwKQEAgLTI4NTgsNyArMzE4OCw3IEBAIGJvb2wgZGNfbGlua19kcF9zZXRfdGVzdF9wYXR0ZXJuKAogCW1lbXNldCgmdHJhaW5pbmdfcGF0dGVybiwgMCwgc2l6ZW9mKHRyYWluaW5nX3BhdHRlcm4pKTsKIAogCWZvciAoaSA9IDA7IGkgPCBNQVhfUElQRVM7IGkrKykgewotCQlpZiAocGlwZXNbaV0uc3RyZWFtLT5saW5rID09IGxpbmspIHsKKwkJaWYgKHBpcGVzW2ldLnN0cmVhbS0+bGluayA9PSBsaW5rICYmICFwaXBlc1tpXS50b3BfcGlwZSAmJiAhcGlwZXNbaV0ucHJldl9vZG1fcGlwZSkgewogCQkJcGlwZV9jdHggPSAmcGlwZXNbaV07CiAJCQlicmVhazsKIAkJfQpAQCAtMzAwNyw2ICszMzM3LDEwNSBAQCB2b2lkIGRwX2VuYWJsZV9tc3Rfb25fc2luayhzdHJ1Y3QgZGNfbGluayAqbGluaywgYm9vbCBlbmFibGUpCiAJY29yZV9saW5rX3dyaXRlX2RwY2QobGluaywgRFBfTVNUTV9DVFJMLCAmbXN0bUNudGwsIDEpOwogfQogCit2b2lkIGRwX3NldF9wYW5lbF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rLCBlbnVtIGRwX3BhbmVsX21vZGUgcGFuZWxfbW9kZSkKK3sKKwl1bmlvbiBkcGNkX2VkcF9jb25maWcgZWRwX2NvbmZpZ19zZXQ7CisJYm9vbCBwYW5lbF9tb2RlX2VkcCA9IGZhbHNlOworCisJbWVtc2V0KCZlZHBfY29uZmlnX3NldCwgJ1wwJywgc2l6ZW9mKHVuaW9uIGRwY2RfZWRwX2NvbmZpZykpOworCisJaWYgKHBhbmVsX21vZGUgIT0gRFBfUEFORUxfTU9ERV9ERUZBVUxUKSB7CisKKwkJc3dpdGNoIChwYW5lbF9tb2RlKSB7CisJCWNhc2UgRFBfUEFORUxfTU9ERV9FRFA6CisJCWNhc2UgRFBfUEFORUxfTU9ERV9TUEVDSUFMOgorCQkJcGFuZWxfbW9kZV9lZHAgPSB0cnVlOworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCQlicmVhazsKKwkJfQorCisJCS8qc2V0IGVkcCBwYW5lbCBtb2RlIGluIHJlY2VpdmVyKi8KKwkJY29yZV9saW5rX3JlYWRfZHBjZCgKKwkJCWxpbmssCisJCQlEUF9FRFBfQ09ORklHVVJBVElPTl9TRVQsCisJCQkmZWRwX2NvbmZpZ19zZXQucmF3LAorCQkJc2l6ZW9mKGVkcF9jb25maWdfc2V0LnJhdykpOworCisJCWlmIChlZHBfY29uZmlnX3NldC5iaXRzLlBBTkVMX01PREVfRURQCisJCQkhPSBwYW5lbF9tb2RlX2VkcCkgeworCQkJZW51bSBkZGNfcmVzdWx0IHJlc3VsdCA9IEREQ19SRVNVTFRfVU5LTk9XTjsKKworCQkJZWRwX2NvbmZpZ19zZXQuYml0cy5QQU5FTF9NT0RFX0VEUCA9CisJCQlwYW5lbF9tb2RlX2VkcDsKKwkJCXJlc3VsdCA9IGNvcmVfbGlua193cml0ZV9kcGNkKAorCQkJCWxpbmssCisJCQkJRFBfRURQX0NPTkZJR1VSQVRJT05fU0VULAorCQkJCSZlZHBfY29uZmlnX3NldC5yYXcsCisJCQkJc2l6ZW9mKGVkcF9jb25maWdfc2V0LnJhdykpOworCisJCQlBU1NFUlQocmVzdWx0ID09IEREQ19SRVNVTFRfU1VDRVNTRlVMTCk7CisJCX0KKwl9CisJRENfTE9HX0RFVEVDVElPTl9EUF9DQVBTKCJMaW5rOiAlZCBlRFAgcGFuZWwgbW9kZSBzdXBwb3J0ZWQ6ICVkICIKKwkJICJlRFAgcGFuZWwgbW9kZSBlbmFibGVkOiAlZCBcbiIsCisJCSBsaW5rLT5saW5rX2luZGV4LAorCQkgbGluay0+ZHBjZF9jYXBzLnBhbmVsX21vZGVfZWRwLAorCQkgcGFuZWxfbW9kZV9lZHApOworfQorCitlbnVtIGRwX3BhbmVsX21vZGUgZHBfZ2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmspCit7CisJLyogV2UgbmVlZCB0byBleHBsaWNpdGx5IGNoZWNrIHRoYXQgY29ubmVjdG9yCisJICogaXMgbm90IERQLiBTb21lIFRyYXZpc19WR0EgZ2V0IHJlcG9ydGVkCisJICogYnkgdmlkZW8gYmlvcyBhcyBEUC4KKwkgKi8KKwlpZiAobGluay0+Y29ubmVjdG9yX3NpZ25hbCAhPSBTSUdOQUxfVFlQRV9ESVNQTEFZX1BPUlQpIHsKKworCQlzd2l0Y2ggKGxpbmstPmRwY2RfY2Fwcy5icmFuY2hfZGV2X2lkKSB7CisJCWNhc2UgRFBfQlJBTkNIX0RFVklDRV9JRF8wMDIyQjk6CisJCQkvKiBhbHRlcm5hdGUgc2NyYW1ibGVyIHJlc2V0IGlzIHJlcXVpcmVkIGZvciBUcmF2aXMKKwkJCSAqIGZvciB0aGUgY2FzZSB3aGVuIGV4dGVybmFsIGNoaXAgZG9lcyBub3QKKwkJCSAqIHByb3ZpZGUgc2luayBkZXZpY2UgaWQsIGFsdGVybmF0ZSBzY3JhbWJsZXIKKwkJCSAqIHNjaGVtZSB3aWxsICBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcKKwkJCSAqIEVuY29kZXIgZmVhdHVyZXMKKwkJCSAqLworCQkJaWYgKHN0cm5jbXAoCisJCQkJbGluay0+ZHBjZF9jYXBzLmJyYW5jaF9kZXZfbmFtZSwKKwkJCQlEUF9WR0FfTFZEU19DT05WRVJURVJfSURfMiwKKwkJCQlzaXplb2YoCisJCQkJbGluay0+ZHBjZF9jYXBzLgorCQkJCWJyYW5jaF9kZXZfbmFtZSkpID09IDApIHsKKwkJCQkJcmV0dXJuIERQX1BBTkVMX01PREVfU1BFQ0lBTDsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIERQX0JSQU5DSF9ERVZJQ0VfSURfMDAwMDFBOgorCQkJLyogYWx0ZXJuYXRlIHNjcmFtYmxlciByZXNldCBpcyByZXF1aXJlZCBmb3IgVHJhdmlzCisJCQkgKiBmb3IgdGhlIGNhc2Ugd2hlbiBleHRlcm5hbCBjaGlwIGRvZXMgbm90IHByb3ZpZGUKKwkJCSAqIHNpbmsgZGV2aWNlIGlkLCBhbHRlcm5hdGUgc2NyYW1ibGVyIHNjaGVtZSB3aWxsCisJCQkgKiBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcgRW5jb2RlciBmZWF0dXJlCisJCQkgKi8KKwkJCWlmIChzdHJuY21wKGxpbmstPmRwY2RfY2Fwcy5icmFuY2hfZGV2X25hbWUsCisJCQkJRFBfVkdBX0xWRFNfQ09OVkVSVEVSX0lEXzMsCisJCQkJc2l6ZW9mKAorCQkJCWxpbmstPmRwY2RfY2Fwcy4KKwkJCQlicmFuY2hfZGV2X25hbWUpKSA9PSAwKSB7CisJCQkJCXJldHVybiBEUF9QQU5FTF9NT0RFX1NQRUNJQUw7CisJCQl9CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKGxpbmstPmRwY2RfY2Fwcy5wYW5lbF9tb2RlX2VkcCkgeworCQlyZXR1cm4gRFBfUEFORUxfTU9ERV9FRFA7CisJfQorCisJcmV0dXJuIERQX1BBTkVMX01PREVfREVGQVVMVDsKK30KKwogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCiB2b2lkIGRwX3NldF9mZWNfcmVhZHkoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJvb2wgcmVhZHkpCiB7CkBAIC0zMDI0LDcgKzM0NTMsNyBAQCB2b2lkIGRwX3NldF9mZWNfcmVhZHkoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJvb2wgcmVhZHkpCiAKIAlpZiAobGlua19lbmMtPmZ1bmNzLT5mZWNfc2V0X3JlYWR5ICYmCiAJCQlsaW5rLT5kcGNkX2NhcHMuZmVjX2NhcC5iaXRzLkZFQ19DQVBBQkxFKSB7Ci0JCWlmIChsaW5rLT5mZWNfc3RhdGUgPT0gZGNfbGlua19mZWNfbm90X3JlYWR5ICYmIHJlYWR5KSB7CisJCWlmIChyZWFkeSkgewogCQkJZmVjX2NvbmZpZyA9IDE7CiAJCQlpZiAoY29yZV9saW5rX3dyaXRlX2RwY2QobGluaywKIAkJCQkJRFBfRkVDX0NPTkZJR1VSQVRJT04sCkBAIC0zMDMzLDkgKzM0NjIsMTEgQEAgdm9pZCBkcF9zZXRfZmVjX3JlYWR5KHN0cnVjdCBkY19saW5rICpsaW5rLCBib29sIHJlYWR5KQogCQkJCWxpbmtfZW5jLT5mdW5jcy0+ZmVjX3NldF9yZWFkeShsaW5rX2VuYywgdHJ1ZSk7CiAJCQkJbGluay0+ZmVjX3N0YXRlID0gZGNfbGlua19mZWNfcmVhZHk7CiAJCQl9IGVsc2UgeworCQkJCWxpbmstPmxpbmtfZW5jLT5mdW5jcy0+ZmVjX3NldF9yZWFkeShsaW5rLT5saW5rX2VuYywgZmFsc2UpOworCQkJCWxpbmstPmZlY19zdGF0ZSA9IGRjX2xpbmtfZmVjX25vdF9yZWFkeTsKIAkJCQlkbV9lcnJvcigiZHBjZCB3cml0ZSBmYWlsZWQgdG8gc2V0IGZlY19yZWFkeSIpOwogCQkJfQotCQl9IGVsc2UgaWYgKGxpbmstPmZlY19zdGF0ZSA9PSBkY19saW5rX2ZlY19yZWFkeSAmJiAhcmVhZHkpIHsKKwkJfSBlbHNlIGlmIChsaW5rLT5mZWNfc3RhdGUgPT0gZGNfbGlua19mZWNfcmVhZHkpIHsKIAkJCWZlY19jb25maWcgPSAwOwogCQkJY29yZV9saW5rX3dyaXRlX2RwY2QobGluaywKIAkJCQkJRFBfRkVDX0NPTkZJR1VSQVRJT04sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19saW5rX2h3c3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfaHdzcy5jCmluZGV4IDJkMDE5ZTEuLjc5NDM4YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfaHdzcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfaHdzcy5jCkBAIC0yNSwxMCArMjUsMTEgQEAgZW51bSBkY19zdGF0dXMgY29yZV9saW5rX3JlYWRfZHBjZCgKIAl1aW50OF90ICpkYXRhLAogCXVpbnQzMl90IHNpemUpCiB7Ci0JaWYgKCFkbV9oZWxwZXJzX2RwX3JlYWRfZHBjZChsaW5rLT5jdHgsCi0JCQlsaW5rLAotCQkJYWRkcmVzcywgZGF0YSwgc2l6ZSkpCi0JCQlyZXR1cm4gRENfRVJST1JfVU5FWFBFQ1RFRDsKKwlpZiAoIWxpbmstPmF1eF9hY2Nlc3NfZGlzYWJsZWQgJiYKKwkJCSFkbV9oZWxwZXJzX2RwX3JlYWRfZHBjZChsaW5rLT5jdHgsCisJCQlsaW5rLCBhZGRyZXNzLCBkYXRhLCBzaXplKSkgeworCQlyZXR1cm4gRENfRVJST1JfVU5FWFBFQ1RFRDsKKwl9CiAKIAlyZXR1cm4gRENfT0s7CiB9CkBAIC0zOSwxMCArNDAsMTEgQEAgZW51bSBkY19zdGF0dXMgY29yZV9saW5rX3dyaXRlX2RwY2QoCiAJY29uc3QgdWludDhfdCAqZGF0YSwKIAl1aW50MzJfdCBzaXplKQogewotCWlmICghZG1faGVscGVyc19kcF93cml0ZV9kcGNkKGxpbmstPmN0eCwKLQkJCWxpbmssCi0JCQlhZGRyZXNzLCBkYXRhLCBzaXplKSkKLQkJCQlyZXR1cm4gRENfRVJST1JfVU5FWFBFQ1RFRDsKKwlpZiAoIWxpbmstPmF1eF9hY2Nlc3NfZGlzYWJsZWQgJiYKKwkJCSFkbV9oZWxwZXJzX2RwX3dyaXRlX2RwY2QobGluay0+Y3R4LAorCQkJbGluaywgYWRkcmVzcywgZGF0YSwgc2l6ZSkpIHsKKwkJcmV0dXJuIERDX0VSUk9SX1VORVhQRUNURUQ7CisJfQogCiAJcmV0dXJuIERDX09LOwogfQpAQCAtNTMsNiArNTUsOSBAQCB2b2lkIGRwX3JlY2VpdmVyX3Bvd2VyX2N0cmwoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJvb2wgb24pCiAKIAlzdGF0ZSA9IG9uID8gRFBfUE9XRVJfU1RBVEVfRDAgOiBEUF9QT1dFUl9TVEFURV9EMzsKIAorCWlmIChsaW5rLT5zeW5jX2x0X2luX3Byb2dyZXNzKQorCQlyZXR1cm47CisKIAljb3JlX2xpbmtfd3JpdGVfZHBjZChsaW5rLCBEUF9TRVRfUE9XRVIsICZzdGF0ZSwKIAkJCXNpemVvZihzdGF0ZSkpOwogfQpAQCAtMTYwLDYgKzE2NSwxMCBAQCBib29sIGVkcF9yZWNlaXZlcl9yZWFkeV9UNyhzdHJ1Y3QgZGNfbGluayAqbGluaykKIAkJCWJyZWFrOwogCQl1ZGVsYXkoMjUpOyAvL01BeCBUNyBpcyA1MG1zCiAJfSB3aGlsZSAoKyt0cmllcyA8IDMwMCk7CisKKwlpZiAobGluay0+bG9jYWxfc2luay0+ZWRpZF9jYXBzLnBhbmVsX3BhdGNoLmV4dHJhX3Q3X21zID4gMCkKKwkJdWRlbGF5KGxpbmstPmxvY2FsX3NpbmstPmVkaWRfY2Fwcy5wYW5lbF9wYXRjaC5leHRyYV90N19tcyAqIDEwMDApOworCiAJcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMjAzLDIxICsyMTIsMjEgQEAgdm9pZCBkcF9kaXNhYmxlX2xpbmtfcGh5X21zdChzdHJ1Y3QgZGNfbGluayAqbGluaywgZW51bSBzaWduYWxfdHlwZSBzaWduYWwpCiAKIGJvb2wgZHBfc2V0X2h3X3RyYWluaW5nX3BhdHRlcm4oCiAJc3RydWN0IGRjX2xpbmsgKmxpbmssCi0JZW51bSBod19kcF90cmFpbmluZ19wYXR0ZXJuIHBhdHRlcm4pCisJZW51bSBkY19kcF90cmFpbmluZ19wYXR0ZXJuIHBhdHRlcm4pCiB7CiAJZW51bSBkcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuID0gRFBfVEVTVF9QQVRURVJOX1VOU1VQUE9SVEVEOwogCiAJc3dpdGNoIChwYXR0ZXJuKSB7Ci0JY2FzZSBIV19EUF9UUkFJTklOR19QQVRURVJOXzE6CisJY2FzZSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzE6CiAJCXRlc3RfcGF0dGVybiA9IERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19QQVRURVJOMTsKIAkJYnJlYWs7Ci0JY2FzZSBIV19EUF9UUkFJTklOR19QQVRURVJOXzI6CisJY2FzZSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzI6CiAJCXRlc3RfcGF0dGVybiA9IERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19QQVRURVJOMjsKIAkJYnJlYWs7Ci0JY2FzZSBIV19EUF9UUkFJTklOR19QQVRURVJOXzM6CisJY2FzZSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzM6CiAJCXRlc3RfcGF0dGVybiA9IERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19QQVRURVJOMzsKIAkJYnJlYWs7Ci0JY2FzZSBIV19EUF9UUkFJTklOR19QQVRURVJOXzQ6CisJY2FzZSBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzQ6CiAJCXRlc3RfcGF0dGVybiA9IERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19QQVRURVJONDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTIzOSw0NiArMjQ4LDYgQEAgdm9pZCBkcF9zZXRfaHdfbGFuZV9zZXR0aW5ncygKIAllbmNvZGVyLT5mdW5jcy0+ZHBfc2V0X2xhbmVfc2V0dGluZ3MoZW5jb2RlciwgbGlua19zZXR0aW5ncyk7CiB9CiAKLWVudW0gZHBfcGFuZWxfbW9kZSBkcF9nZXRfcGFuZWxfbW9kZShzdHJ1Y3QgZGNfbGluayAqbGluaykKLXsKLQkvKiBXZSBuZWVkIHRvIGV4cGxpY2l0bHkgY2hlY2sgdGhhdCBjb25uZWN0b3IKLQkgKiBpcyBub3QgRFAuIFNvbWUgVHJhdmlzX1ZHQSBnZXQgcmVwb3J0ZWQKLQkgKiBieSB2aWRlbyBiaW9zIGFzIERQLgotCSAqLwotCWlmIChsaW5rLT5jb25uZWN0b3Jfc2lnbmFsICE9IFNJR05BTF9UWVBFX0RJU1BMQVlfUE9SVCkgewotCi0JCXN3aXRjaCAobGluay0+ZHBjZF9jYXBzLmJyYW5jaF9kZXZfaWQpIHsKLQkJY2FzZSBEUF9CUkFOQ0hfREVWSUNFX0lEXzI6Ci0JCQlpZiAoc3RybmNtcCgKLQkJCQlsaW5rLT5kcGNkX2NhcHMuYnJhbmNoX2Rldl9uYW1lLAotCQkJCURQX1ZHQV9MVkRTX0NPTlZFUlRFUl9JRF8yLAotCQkJCXNpemVvZigKLQkJCQlsaW5rLT5kcGNkX2NhcHMuCi0JCQkJYnJhbmNoX2Rldl9uYW1lKSkgPT0gMCkgewotCQkJCXJldHVybiBEUF9QQU5FTF9NT0RFX1NQRUNJQUw7Ci0JCQl9Ci0JCQlicmVhazsKLQkJY2FzZSBEUF9CUkFOQ0hfREVWSUNFX0lEXzM6Ci0JCQlpZiAoc3RybmNtcChsaW5rLT5kcGNkX2NhcHMuYnJhbmNoX2Rldl9uYW1lLAotCQkJCURQX1ZHQV9MVkRTX0NPTlZFUlRFUl9JRF8zLAotCQkJCXNpemVvZigKLQkJCQlsaW5rLT5kcGNkX2NhcHMuCi0JCQkJYnJhbmNoX2Rldl9uYW1lKSkgPT0gMCkgewotCQkJCXJldHVybiBEUF9QQU5FTF9NT0RFX1NQRUNJQUw7Ci0JCQl9Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCWJyZWFrOwotCQl9Ci0JfQotCi0JaWYgKGxpbmstPmRwY2RfY2Fwcy5wYW5lbF9tb2RlX2VkcCkgewotCQlyZXR1cm4gRFBfUEFORUxfTU9ERV9FRFA7Ci0JfQotCi0JcmV0dXJuIERQX1BBTkVMX01PREVfREVGQVVMVDsKLX0KLQogdm9pZCBkcF9zZXRfaHdfdGVzdF9wYXR0ZXJuKAogCXN0cnVjdCBkY19saW5rICpsaW5rLAogCWVudW0gZHBfdGVzdF9wYXR0ZXJuIHRlc3RfcGF0dGVybiwKQEAgLTMwNiw3ICsyNzUsNyBAQCB2b2lkIGRwX3JldHJhaW5fbGlua19kcF90ZXN0KHN0cnVjdCBkY19saW5rICpsaW5rLAogCiAJZm9yIChpID0gMDsgaSA8IE1BWF9QSVBFUzsgaSsrKSB7CiAJCWlmIChwaXBlc1tpXS5zdHJlYW0gIT0gTlVMTCAmJgotCQkJIXBpcGVzW2ldLnRvcF9waXBlICYmCisJCQkhcGlwZXNbaV0udG9wX3BpcGUgJiYgIXBpcGVzW2ldLnByZXZfb2RtX3BpcGUgJiYKIAkJCXBpcGVzW2ldLnN0cmVhbS0+bGluayAhPSBOVUxMICYmCiAJCQlwaXBlc1tpXS5zdHJlYW1fcmVzLnN0cmVhbV9lbmMgIT0gTlVMTCkgewogCQkJdWRlbGF5KDEwMCk7CkBAIC0zMjAsNyArMjg5LDkgQEAgdm9pZCBkcF9yZXRyYWluX2xpbmtfZHBfdGVzdChzdHJ1Y3QgZGNfbGluayAqbGluaywKIAogCQkJZHBfcmVjZWl2ZXJfcG93ZXJfY3RybChsaW5rLCBmYWxzZSk7CiAKLQkJCWxpbmstPmRjLT5od3NzLmRpc2FibGVfc3RyZWFtKCZwaXBlc1tpXSwgS0VFUF9BQ1FVSVJFRF9SRVNPVVJDRSk7CisJCQlsaW5rLT5kYy0+aHdzcy5kaXNhYmxlX3N0cmVhbSgmcGlwZXNbaV0pOworCQkJaWYgKCgmcGlwZXNbaV0pLT5zdHJlYW1fcmVzLmF1ZGlvICYmICFsaW5rLT5kYy0+ZGVidWcuYXpfZW5kcG9pbnRfbXV0ZV9vbmx5KQorCQkJCSgmcGlwZXNbaV0pLT5zdHJlYW1fcmVzLmF1ZGlvLT5mdW5jcy0+YXpfZGlzYWJsZSgoJnBpcGVzW2ldKS0+c3RyZWFtX3Jlcy5hdWRpbyk7CiAKIAkJCWxpbmstPmxpbmtfZW5jLT5mdW5jcy0+ZGlzYWJsZV9vdXRwdXQoCiAJCQkJCWxpbmstPmxpbmtfZW5jLApAQCAtMzczLDEwICszNDQsMjIgQEAgdm9pZCBkcF9yZXRyYWluX2xpbmtfZHBfdGVzdChzdHJ1Y3QgZGNfbGluayAqbGluaywKIHN0YXRpYyB2b2lkIGRzY19vcHRjX2NvbmZpZ19sb2coc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywKIAkJc3RydWN0IGRzY19vcHRjX2NvbmZpZyAqY29uZmlnKQogewotCURDX0xPR19EU0MoIlNldHRpbmcgb3B0YyBEU0MgY29uZmlnIGF0IERTQyBpbnN0ICVkIiwgZHNjLT5pbnN0KTsKLQlEQ19MT0dfRFNDKCJcblx0Ynl0ZXNfcGVyX3BpeGVsICVkXG5cdGlzX3BpeGVsX2Zvcm1hdF80NDQgJWRcblx0c2xpY2Vfd2lkdGggJWQiLAotCQkJY29uZmlnLT5ieXRlc19wZXJfcGl4ZWwsCi0JCQljb25maWctPmlzX3BpeGVsX2Zvcm1hdF80NDQsIGNvbmZpZy0+c2xpY2Vfd2lkdGgpOworCXVpbnQzMl90IHByZWNpc2lvbiA9IDEgPDwgMjg7CisJdWludDMyX3QgYnl0ZXNfcGVyX3BpeGVsX2ludCA9IGNvbmZpZy0+Ynl0ZXNfcGVyX3BpeGVsIC8gcHJlY2lzaW9uOworCXVpbnQzMl90IGJ5dGVzX3Blcl9waXhlbF9tb2QgPSBjb25maWctPmJ5dGVzX3Blcl9waXhlbCAlIHByZWNpc2lvbjsKKwl1aW50NjRfdCBsbF9ieXRlc19wZXJfcGl4X2ZyYXEgPSBieXRlc19wZXJfcGl4ZWxfbW9kOworCisJLyogNyBmcmFjdGlvbmFsIGRpZ2l0cyBkZWNpbWFsIHByZWNpc2lvbiBmb3IgYnl0ZXMgcGVyIHBpeGVsIGlzIGVub3VnaCBiZWNhdXNlIERTQworCSAqIGJpdHMgcGVyIHBpeGVsIHByZWNpc2lvbiBpcyAxLzE2dGggb2YgYSBwaXhlbCwgd2hpY2ggbWVhbnMgYnl0ZXMgcGVyIHBpeGVsIHByZWNpc2lvbiBpcworCSAqIDEvMTYvOCA9IDEvMTI4IG9mIGEgYnl0ZSwgb3IgMC4wMDc4MTI1IGRlY2ltYWwKKwkgKi8KKwlsbF9ieXRlc19wZXJfcGl4X2ZyYXEgKj0gMTAwMDAwMDA7CisJbGxfYnl0ZXNfcGVyX3BpeF9mcmFxIC89IHByZWNpc2lvbjsKKworCURDX0xPR19EU0MoIlx0Ynl0ZXNfcGVyX3BpeGVsIDB4JTA4eCAoJWQuJTA3ZCkiLAorCQkJY29uZmlnLT5ieXRlc19wZXJfcGl4ZWwsIGJ5dGVzX3Blcl9waXhlbF9pbnQsICh1aW50MzJfdClsbF9ieXRlc19wZXJfcGl4X2ZyYXEpOworCURDX0xPR19EU0MoIlx0aXNfcGl4ZWxfZm9ybWF0XzQ0NCAlZCIsIGNvbmZpZy0+aXNfcGl4ZWxfZm9ybWF0XzQ0NCk7CisJRENfTE9HX0RTQygiXHRzbGljZV93aWR0aCAlZCIsIGNvbmZpZy0+c2xpY2Vfd2lkdGgpOwogfQogCiBzdGF0aWMgYm9vbCBkcF9zZXRfZHNjX29uX3J4KHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGJvb2wgZW5hYmxlKQpAQCAtMzkyLDU1ICszNzUsNjIgQEAgc3RhdGljIGJvb2wgZHBfc2V0X2RzY19vbl9yeChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBib29sIGVuYWJsZSkKIAlyZXR1cm4gcmVzdWx0OwogfQogCi0vKiBUaGlzIGhhcyB0byBiZSBkb25lIGFmdGVyIERTQyB3YXMgZW5hYmxlZCBvbiBSWCBmaXJzdCwgaS5lLiBhZnRlciBkcF9lbmFibGVfZHNjX29uX3J4KCkgaGFkIGJlZW4gY2FsbGVkCisvKiBUaGUgc3RyZWFtIHdpdGggdGhlc2Ugc2V0dGluZ3MgY2FuIGJlIHNlbnQgKHVuYmxhbmtlZCkgb25seSBhZnRlciBEU0Mgd2FzIGVuYWJsZWQgb24gUlggZmlyc3QsCisgKiBpLmUuIGFmdGVyIGRwX2VuYWJsZV9kc2Nfb25fcngoKSBoYWQgYmVlbiBjYWxsZWQKICAqLwotc3RhdGljIHZvaWQgZHBfc2V0X2RzY19vbl9zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgYm9vbCBlbmFibGUpCit2b2lkIGRwX3NldF9kc2Nfb25fc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGJvb2wgZW5hYmxlKQogewogCXN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MgPSBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5kc2M7CiAJc3RydWN0IGRjICpjb3JlX2RjID0gcGlwZV9jdHgtPnN0cmVhbS0+Y3R4LT5kYzsKIAlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0gPSBwaXBlX2N0eC0+c3RyZWFtOwotCXN0cnVjdCBwaXBlX2N0eCAqb2RtX3BpcGUgPSBkY19yZXNfZ2V0X29kbV9ib3R0b21fcGlwZShwaXBlX2N0eCk7CisJc3RydWN0IHBpcGVfY3R4ICpvZG1fcGlwZTsKKwlpbnQgb3BwX2NudCA9IDE7CisKKwlmb3IgKG9kbV9waXBlID0gcGlwZV9jdHgtPm5leHRfb2RtX3BpcGU7IG9kbV9waXBlOyBvZG1fcGlwZSA9IG9kbV9waXBlLT5uZXh0X29kbV9waXBlKQorCQlvcHBfY250Kys7CiAKIAlpZiAoZW5hYmxlKSB7Ci0JCS8qIFRPRE8gcHJvcGVyIGZ1bmN0aW9uICovCiAJCXN0cnVjdCBkc2NfY29uZmlnIGRzY19jZmc7CiAJCXN0cnVjdCBkc2Nfb3B0Y19jb25maWcgZHNjX29wdGNfY2ZnOwogCQllbnVtIG9wdGNfZHNjX21vZGUgb3B0Y19kc2NfbW9kZTsKLQkJdWludDhfdCBkc2NfcGFja2VkX3Bwc1sxMjhdOwogCiAJCS8qIEVuYWJsZSBEU0MgaHcgYmxvY2sgKi8KLQkJZHNjX2NmZy5waWNfd2lkdGggPSBzdHJlYW0tPnRpbWluZy5oX2FkZHJlc3NhYmxlICsgc3RyZWFtLT50aW1pbmcuaF9ib3JkZXJfbGVmdCArIHN0cmVhbS0+dGltaW5nLmhfYm9yZGVyX3JpZ2h0OworCQlkc2NfY2ZnLnBpY193aWR0aCA9IChzdHJlYW0tPnRpbWluZy5oX2FkZHJlc3NhYmxlICsgc3RyZWFtLT50aW1pbmcuaF9ib3JkZXJfbGVmdCArIHN0cmVhbS0+dGltaW5nLmhfYm9yZGVyX3JpZ2h0KSAvIG9wcF9jbnQ7CiAJCWRzY19jZmcucGljX2hlaWdodCA9IHN0cmVhbS0+dGltaW5nLnZfYWRkcmVzc2FibGUgKyBzdHJlYW0tPnRpbWluZy52X2JvcmRlcl90b3AgKyBzdHJlYW0tPnRpbWluZy52X2JvcmRlcl9ib3R0b207CiAJCWRzY19jZmcucGl4ZWxfZW5jb2RpbmcgPSBzdHJlYW0tPnRpbWluZy5waXhlbF9lbmNvZGluZzsKIAkJZHNjX2NmZy5jb2xvcl9kZXB0aCA9IHN0cmVhbS0+dGltaW5nLmRpc3BsYXlfY29sb3JfZGVwdGg7CiAJCWRzY19jZmcuZGNfZHNjX2NmZyA9IHN0cmVhbS0+dGltaW5nLmRzY19jZmc7CisJCUFTU0VSVChkc2NfY2ZnLmRjX2RzY19jZmcubnVtX3NsaWNlc19oICUgb3BwX2NudCA9PSAwKTsKKwkJZHNjX2NmZy5kY19kc2NfY2ZnLm51bV9zbGljZXNfaCAvPSBvcHBfY250OwogCi0JCWRzYy0+ZnVuY3MtPmRzY19zZXRfY29uZmlnKGRzYywgJmRzY19jZmcsICZkc2Nfb3B0Y19jZmcsICZkc2NfcGFja2VkX3Bwc1swXSk7Ci0JCWlmIChvZG1fcGlwZSkgewotCQkJc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmJvdF9kc2MgPSBvZG1fcGlwZS0+c3RyZWFtX3Jlcy5kc2M7Ci0JCQl1aW50OF90IGRzY19wYWNrZWRfcHBzX29kbVsxMjhdOwotCi0JCQlkc2NfY2ZnLnBpY193aWR0aCAvPSAyOwotCQkJQVNTRVJUKGRzY19jZmcuZGNfZHNjX2NmZy5udW1fc2xpY2VzX2ggJSAyID09IDApOwotCQkJZHNjX2NmZy5kY19kc2NfY2ZnLm51bV9zbGljZXNfaCAvPSAyOwotCQkJZHNjLT5mdW5jcy0+ZHNjX3NldF9jb25maWcoZHNjLCAmZHNjX2NmZywgJmRzY19vcHRjX2NmZywgJmRzY19wYWNrZWRfcHBzX29kbVswXSk7Ci0JCQlib3RfZHNjLT5mdW5jcy0+ZHNjX3NldF9jb25maWcoYm90X2RzYywgJmRzY19jZmcsICZkc2Nfb3B0Y19jZmcsICZkc2NfcGFja2VkX3Bwc19vZG1bMF0pOwotCQkJYm90X2RzYy0+ZnVuY3MtPmRzY19lbmFibGUoYm90X2RzYywgb2RtX3BpcGUtPnN0cmVhbV9yZXMub3BwLT5pbnN0KTsKLQkJfQorCQlkc2MtPmZ1bmNzLT5kc2Nfc2V0X2NvbmZpZyhkc2MsICZkc2NfY2ZnLCAmZHNjX29wdGNfY2ZnKTsKIAkJZHNjLT5mdW5jcy0+ZHNjX2VuYWJsZShkc2MsIHBpcGVfY3R4LT5zdHJlYW1fcmVzLm9wcC0+aW5zdCk7CisJCWZvciAob2RtX3BpcGUgPSBwaXBlX2N0eC0+bmV4dF9vZG1fcGlwZTsgb2RtX3BpcGU7IG9kbV9waXBlID0gb2RtX3BpcGUtPm5leHRfb2RtX3BpcGUpIHsKKwkJCXN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpvZG1fZHNjID0gb2RtX3BpcGUtPnN0cmVhbV9yZXMuZHNjOworCisJCQlvZG1fZHNjLT5mdW5jcy0+ZHNjX3NldF9jb25maWcob2RtX2RzYywgJmRzY19jZmcsICZkc2Nfb3B0Y19jZmcpOworCQkJb2RtX2RzYy0+ZnVuY3MtPmRzY19lbmFibGUob2RtX2RzYywgb2RtX3BpcGUtPnN0cmVhbV9yZXMub3BwLT5pbnN0KTsKKwkJfQorCQlkc2NfY2ZnLmRjX2RzY19jZmcubnVtX3NsaWNlc19oICo9IG9wcF9jbnQ7CisJCWRzY19jZmcucGljX3dpZHRoICo9IG9wcF9jbnQ7CiAKIAkJb3B0Y19kc2NfbW9kZSA9IGRzY19vcHRjX2NmZy5pc19waXhlbF9mb3JtYXRfNDQ0ID8gT1BUQ19EU0NfRU5BQkxFRF80NDQgOiBPUFRDX0RTQ19FTkFCTEVEX05BVElWRV9TVUJTQU1QTEVEOwogCi0JCWRzY19vcHRjX2NvbmZpZ19sb2coZHNjLCAmZHNjX29wdGNfY2ZnKTsKIAkJLyogRW5hYmxlIERTQyBpbiBlbmNvZGVyICovCi0JCWlmICghSVNfRlBHQV9NQVhJTVVTX0RDKGNvcmVfZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSAmJiBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLT5mdW5jcy0+ZHBfc2V0X2RzY19jb25maWcpCisJCWlmIChkY19pc19kcF9zaWduYWwoc3RyZWFtLT5zaWduYWwpICYmICFJU19GUEdBX01BWElNVVNfREMoY29yZV9kYy0+Y3R4LT5kY2VfZW52aXJvbm1lbnQpKSB7CisJCQlEQ19MT0dfRFNDKCJTZXR0aW5nIHN0cmVhbSBlbmNvZGVyIERTQyBjb25maWcgZm9yIGVuZ2luZSAlZDoiLCAoaW50KXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmlkKTsKKwkJCWRzY19vcHRjX2NvbmZpZ19sb2coZHNjLCAmZHNjX29wdGNfY2ZnKTsKIAkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmZ1bmNzLT5kcF9zZXRfZHNjX2NvbmZpZyhwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLAogCQkJCQkJCQkJb3B0Y19kc2NfbW9kZSwKIAkJCQkJCQkJCWRzY19vcHRjX2NmZy5ieXRlc19wZXJfcGl4ZWwsCi0JCQkJCQkJCQlkc2Nfb3B0Y19jZmcuc2xpY2Vfd2lkdGgsCi0JCQkJCQkJCQkmZHNjX3BhY2tlZF9wcHNbMF0pOworCQkJCQkJCQkJZHNjX29wdGNfY2ZnLnNsaWNlX3dpZHRoKTsKKworCQkJLyogUFBTIFNEUCBpcyBzZXQgZWxzZXdoZXJlIGJlY2F1c2UgaXQgaGFzIHRvIGJlIGRvbmUgYWZ0ZXIgRElHIEZFIGlzIGNvbm5lY3RlZCB0byBESUcgQkUgKi8KKwkJfQogCiAJCS8qIEVuYWJsZSBEU0MgaW4gT1BUQyAqLworCQlEQ19MT0dfRFNDKCJTZXR0aW5nIG9wdGMgRFNDIGNvbmZpZyBmb3IgdGcgaW5zdGFuY2UgJWQ6IiwgcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmluc3QpOworCQlkc2Nfb3B0Y19jb25maWdfbG9nKGRzYywgJmRzY19vcHRjX2NmZyk7CiAJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLT5mdW5jcy0+c2V0X2RzY19jb25maWcocGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsCiAJCQkJCQkJb3B0Y19kc2NfbW9kZSwKIAkJCQkJCQlkc2Nfb3B0Y19jZmcuYnl0ZXNfcGVyX3BpeGVsLApAQCAtNDUyLDE1ICs0NDIsMTggQEAgc3RhdGljIHZvaWQgZHBfc2V0X2RzY19vbl9zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgYm9vbCBlbmFibGUpCiAJCQkJT1BUQ19EU0NfRElTQUJMRUQsIDAsIDApOwogCiAJCS8qIGRpc2FibGUgRFNDIGluIHN0cmVhbSBlbmNvZGVyICovCi0JCWlmICghSVNfRlBHQV9NQVhJTVVTX0RDKGNvcmVfZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgeworCQlpZiAoZGNfaXNfZHBfc2lnbmFsKHN0cmVhbS0+c2lnbmFsKSAmJiAhSVNfRlBHQV9NQVhJTVVTX0RDKGNvcmVfZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgewogCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+ZnVuY3MtPmRwX3NldF9kc2NfY29uZmlnKAogCQkJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLAotCQkJCQlPUFRDX0RTQ19ESVNBQkxFRCwgMCwgMCwgTlVMTCk7CisJCQkJCU9QVENfRFNDX0RJU0FCTEVELCAwLCAwKTsKKworCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+ZnVuY3MtPmRwX3NldF9kc2NfcHBzX2luZm9fcGFja2V0KAorCQkJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLCBmYWxzZSwgTlVMTCk7CiAJCX0KIAogCQkvKiBkaXNhYmxlIERTQyBibG9jayAqLwogCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5kc2MtPmZ1bmNzLT5kc2NfZGlzYWJsZShwaXBlX2N0eC0+c3RyZWFtX3Jlcy5kc2MpOwotCQlpZiAob2RtX3BpcGUpCisJCWZvciAob2RtX3BpcGUgPSBwaXBlX2N0eC0+bmV4dF9vZG1fcGlwZTsgb2RtX3BpcGU7IG9kbV9waXBlID0gb2RtX3BpcGUtPm5leHRfb2RtX3BpcGUpCiAJCQlvZG1fcGlwZS0+c3RyZWFtX3Jlcy5kc2MtPmZ1bmNzLT5kc2NfZGlzYWJsZShvZG1fcGlwZS0+c3RyZWFtX3Jlcy5kc2MpOwogCX0KIH0KQEAgLTQ4OSw2ICs0ODIsNDcgQEAgYm9vbCBkcF9zZXRfZHNjX2VuYWJsZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBib29sIGVuYWJsZSkKIAlyZXR1cm4gcmVzdWx0OwogfQogCitib29sIGRwX3NldF9kc2NfcHBzX3NkcChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBib29sIGVuYWJsZSkKK3sKKwlzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciAqZHNjID0gcGlwZV9jdHgtPnN0cmVhbV9yZXMuZHNjOworCXN0cnVjdCBkYyAqY29yZV9kYyA9IHBpcGVfY3R4LT5zdHJlYW0tPmN0eC0+ZGM7CisJc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtID0gcGlwZV9jdHgtPnN0cmVhbTsKKworCWlmICghcGlwZV9jdHgtPnN0cmVhbS0+dGltaW5nLmZsYWdzLkRTQyB8fCAhZHNjKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoZW5hYmxlKSB7CisJCXN0cnVjdCBkc2NfY29uZmlnIGRzY19jZmc7CisJCXVpbnQ4X3QgZHNjX3BhY2tlZF9wcHNbMTI4XTsKKworCQkvKiBFbmFibGUgRFNDIGh3IGJsb2NrICovCisJCWRzY19jZmcucGljX3dpZHRoID0gc3RyZWFtLT50aW1pbmcuaF9hZGRyZXNzYWJsZSArIHN0cmVhbS0+dGltaW5nLmhfYm9yZGVyX2xlZnQgKyBzdHJlYW0tPnRpbWluZy5oX2JvcmRlcl9yaWdodDsKKwkJZHNjX2NmZy5waWNfaGVpZ2h0ID0gc3RyZWFtLT50aW1pbmcudl9hZGRyZXNzYWJsZSArIHN0cmVhbS0+dGltaW5nLnZfYm9yZGVyX3RvcCArIHN0cmVhbS0+dGltaW5nLnZfYm9yZGVyX2JvdHRvbTsKKwkJZHNjX2NmZy5waXhlbF9lbmNvZGluZyA9IHN0cmVhbS0+dGltaW5nLnBpeGVsX2VuY29kaW5nOworCQlkc2NfY2ZnLmNvbG9yX2RlcHRoID0gc3RyZWFtLT50aW1pbmcuZGlzcGxheV9jb2xvcl9kZXB0aDsKKwkJZHNjX2NmZy5kY19kc2NfY2ZnID0gc3RyZWFtLT50aW1pbmcuZHNjX2NmZzsKKworCQlEQ19MT0dfRFNDKCIgIik7CisJCWRzYy0+ZnVuY3MtPmRzY19nZXRfcGFja2VkX3Bwcyhkc2MsICZkc2NfY2ZnLCAmZHNjX3BhY2tlZF9wcHNbMF0pOworCQlpZiAoZGNfaXNfZHBfc2lnbmFsKHN0cmVhbS0+c2lnbmFsKSAmJiAhSVNfRlBHQV9NQVhJTVVTX0RDKGNvcmVfZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgeworCQkJRENfTE9HX0RTQygiU2V0dGluZyBzdHJlYW0gZW5jb2RlciBEU0MgUFBTIFNEUCBmb3IgZW5naW5lICVkXG4iLCAoaW50KXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmlkKTsKKwkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmZ1bmNzLT5kcF9zZXRfZHNjX3Bwc19pbmZvX3BhY2tldCgKKwkJCQkJCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMsCisJCQkJCQkJCQl0cnVlLAorCQkJCQkJCQkJJmRzY19wYWNrZWRfcHBzWzBdKTsKKwkJfQorCX0gZWxzZSB7CisJCS8qIGRpc2FibGUgRFNDIFBQUyBpbiBzdHJlYW0gZW5jb2RlciAqLworCQlpZiAoZGNfaXNfZHBfc2lnbmFsKHN0cmVhbS0+c2lnbmFsKSAmJiAhSVNfRlBHQV9NQVhJTVVTX0RDKGNvcmVfZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgeworCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+ZnVuY3MtPmRwX3NldF9kc2NfcHBzX2luZm9fcGFja2V0KAorCQkJCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYywgZmFsc2UsIE5VTEwpOworCQl9CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKKwogYm9vbCBkcF91cGRhdGVfZHNjX2NvbmZpZyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewogCXN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MgPSBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5kc2M7CkBAIC00OTksOCArNTMzLDggQEAgYm9vbCBkcF91cGRhdGVfZHNjX2NvbmZpZyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCQlyZXR1cm4gZmFsc2U7CiAKIAlkcF9zZXRfZHNjX29uX3N0cmVhbShwaXBlX2N0eCwgdHJ1ZSk7CisJZHBfc2V0X2RzY19wcHNfc2RwKHBpcGVfY3R4LCB0cnVlKTsKIAlyZXR1cm4gdHJ1ZTsKIH0KLQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19yZXNvdXJjZS5jCmluZGV4IDJjZWFhYjQuLjhmNzAyOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfcmVzb3VyY2UuYwpAQCAtNTIsNiArNTIsOSBAQAogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQogI2luY2x1ZGUgImRjbjIwL2RjbjIwX3Jlc291cmNlLmgiCiAjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKyNpbmNsdWRlICJkY24yMS9kY24yMV9yZXNvdXJjZS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiZGNlMTIwL2RjZTEyMF9yZXNvdXJjZS5oIgogCiAjZGVmaW5lIERDX0xPR0dFUl9JTklUKGxvZ2dlcikKQEAgLTEwMSw2ICsxMDQsMTAgQEAgZW51bSBkY2VfdmVyc2lvbiByZXNvdXJjZV9wYXJzZV9hc2ljX2lkKHN0cnVjdCBod19hc2ljX2lkIGFzaWNfaWQpCiAJCWRjX3ZlcnNpb24gPSBEQ05fVkVSU0lPTl8xXzA7CiAJCWlmIChBU0lDUkVWX0lTX1JBVkVOMihhc2ljX2lkLmh3X2ludGVybmFsX3JldikpCiAJCQlkY192ZXJzaW9uID0gRENOX1ZFUlNJT05fMV8wMTsKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKwkJaWYgKEFTSUNSRVZfSVNfUkVOT0lSKGFzaWNfaWQuaHdfaW50ZXJuYWxfcmV2KSkKKwkJCWRjX3ZlcnNpb24gPSBEQ05fVkVSU0lPTl8yXzE7CisjZW5kaWYKIAkJYnJlYWs7CiAjZW5kaWYKIApAQCAtMTY4LDE3ICsxNzUsMjAgQEAgc3RydWN0IHJlc291cmNlX3Bvb2wgKmRjX2NyZWF0ZV9yZXNvdXJjZV9wb29sKHN0cnVjdCBkYyAgKmRjLAogCQlyZXNfcG9vbCA9IGRjbjIwX2NyZWF0ZV9yZXNvdXJjZV9wb29sKGluaXRfZGF0YSwgZGMpOwogCQlicmVhazsKICNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorCWNhc2UgRENOX1ZFUlNJT05fMl8xOgorCQlyZXNfcG9vbCA9IGRjbjIxX2NyZWF0ZV9yZXNvdXJjZV9wb29sKGluaXRfZGF0YSwgZGMpOworCQlicmVhazsKKyNlbmRpZgogCiAJZGVmYXVsdDoKIAkJYnJlYWs7CiAJfQotCWlmIChyZXNfcG9vbCAhPSBOVUxMKSB7Ci0JCXN0cnVjdCBkY19maXJtd2FyZV9pbmZvIGZ3X2luZm8gPSB7IHsgMCB9IH07CiAKLQkJaWYgKGRjLT5jdHgtPmRjX2Jpb3MtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbyhkYy0+Y3R4LT5kY19iaW9zLAotCQkJCSZmd19pbmZvKSA9PSBCUF9SRVNVTFRfT0spIHsKKwlpZiAocmVzX3Bvb2wgIT0gTlVMTCkgeworCQlpZiAoZGMtPmN0eC0+ZGNfYmlvcy0+ZndfaW5mb192YWxpZCkgewogCQkJcmVzX3Bvb2wtPnJlZl9jbG9ja3MueHRhbGluX2Nsb2NrX2luS2h6ID0KLQkJCQlmd19pbmZvLnBsbF9pbmZvLmNyeXN0YWxfZnJlcXVlbmN5OworCQkJCWRjLT5jdHgtPmRjX2Jpb3MtPmZ3X2luZm8ucGxsX2luZm8uY3J5c3RhbF9mcmVxdWVuY3k7CiAJCQkvKiBpbml0aWFsaXplIHdpdGggZmlybXdhcmUgZGF0YSBmaXJzdCwgbm8gYWxsCiAJCQkgKiBBU0lDIGhhdmUgRENDRyBTVyBjb21wb25lbnQuIEZQR0Egb3IKIAkJCSAqIHNpbXVsYXRpb24gbmVlZCBpbml0aWFsaXphdGlvbiBvZgpAQCAtMjY1LDEyICsyNzUsMTAgQEAgYm9vbCByZXNvdXJjZV9jb25zdHJ1Y3QoCiAJCQkJRENfRVJSKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBhdWRpbyFcbiIpOwogCQkJCXJldHVybiBmYWxzZTsKIAkJCX0KLQogCQkJaWYgKCFhdWQtPmZ1bmNzLT5lbmRwb2ludF92YWxpZChhdWQpKSB7CiAJCQkJYXVkLT5mdW5jcy0+ZGVzdHJveSgmYXVkKTsKIAkJCQlicmVhazsKIAkJCX0KLQogCQkJcG9vbC0+YXVkaW9zW2ldID0gYXVkOwogCQkJcG9vbC0+YXVkaW9fY291bnQrKzsKIAkJfQpAQCAtOTQwLDcgKzk0OCwxNCBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVfaW5pdHNfYW5kX2Fkal92cChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCWRhdGEtPmluaXRzLnZfY19ib3QgPSBkY19maXhwdF9hZGQoZGF0YS0+aW5pdHMudl9jLCBkYXRhLT5yYXRpb3MudmVydF9jKTsKIAogfQorc3RhdGljIGJvb2wgYXJlX3JlY3RfaW50ZWdlcl9tdWx0aXBsZXMoc3RydWN0IHJlY3Qgc3JjLCBzdHJ1Y3QgcmVjdCBkZXN0KQoreworCWlmIChkZXN0LndpZHRoICA+PSBzcmMud2lkdGggICYmIGRlc3Qud2lkdGggICUgc3JjLndpZHRoICA9PSAwICYmCisJCWRlc3QuaGVpZ2h0ID49IHNyYy5oZWlnaHQgJiYgZGVzdC5oZWlnaHQgJSBzcmMuaGVpZ2h0ID09IDApCisJCXJldHVybiB0cnVlOwogCisJcmV0dXJuIGZhbHNlOworfQogYm9vbCByZXNvdXJjZV9idWlsZF9zY2FsaW5nX3BhcmFtcyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewogCWNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPSBwaXBlX2N0eC0+cGxhbmVfc3RhdGU7CkBAIC05ODMsNiArOTk4LDE1IEBAIGJvb2wgcmVzb3VyY2VfYnVpbGRfc2NhbGluZ19wYXJhbXMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAlpZiAocGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAgIT0gTlVMTCkKIAkJcmVzID0gcGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAtPmZ1bmNzLT5kcHBfZ2V0X29wdGltYWxfbnVtYmVyX29mX3RhcHMoCiAJCQkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAsICZwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLCAmcGxhbmVfc3RhdGUtPnNjYWxpbmdfcXVhbGl0eSk7CisKKwlpZiAocmVzICYmCisJICAgIHBsYW5lX3N0YXRlLT5zY2FsaW5nX3F1YWxpdHkuaW50ZWdlcl9zY2FsaW5nICYmCisJICAgIGFyZV9yZWN0X2ludGVnZXJfbXVsdGlwbGVzKHBpcGVfY3R4LT5wbGFuZV9yZXMuc2NsX2RhdGEudmlld3BvcnQsCisJCQkJICAgICAgIHBpcGVfY3R4LT5wbGFuZV9yZXMuc2NsX2RhdGEucmVjb3V0KSkgeworCQlwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnRhcHMudl90YXBzID0gMTsKKwkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5zY2xfZGF0YS50YXBzLmhfdGFwcyA9IDE7CisJfQorCiAJaWYgKCFyZXMpIHsKIAkJLyogVHJ5IDI0IGJwcCBsaW5lYnVmZmVyICovCiAJCXBpcGVfY3R4LT5wbGFuZV9yZXMuc2NsX2RhdGEubGJfcGFyYW1zLmRlcHRoID0gTEJfUElYRUxfREVQVEhfMjRCUFA7CkBAIC0xMTAzLDI1ICsxMTI3LDIxIEBAIHN0cnVjdCBwaXBlX2N0eCAqcmVzb3VyY2VfZ2V0X2hlYWRfcGlwZV9mb3Jfc3RyZWFtKAogCQlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pCiB7CiAJaW50IGk7CisKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX1BJUEVTOyBpKyspIHsKLQkJaWYgKHJlc19jdHgtPnBpcGVfY3R4W2ldLnN0cmVhbSA9PSBzdHJlYW0gJiYKLQkJCQkhcmVzX2N0eC0+cGlwZV9jdHhbaV0udG9wX3BpcGUpIHsKKwkJaWYgKHJlc19jdHgtPnBpcGVfY3R4W2ldLnN0cmVhbSA9PSBzdHJlYW0KKwkJCQkmJiAhcmVzX2N0eC0+cGlwZV9jdHhbaV0udG9wX3BpcGUKKwkJCQkmJiAhcmVzX2N0eC0+cGlwZV9jdHhbaV0ucHJldl9vZG1fcGlwZSkKIAkJCXJldHVybiAmcmVzX2N0eC0+cGlwZV9jdHhbaV07Ci0JCQlicmVhazsKLQkJfQogCX0KIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIHN0cnVjdCBwaXBlX2N0eCAqcmVzb3VyY2VfZ2V0X3RhaWxfcGlwZV9mb3Jfc3RyZWFtKAorc3RhdGljIHN0cnVjdCBwaXBlX2N0eCAqcmVzb3VyY2VfZ2V0X3RhaWxfcGlwZSgKIAkJc3RydWN0IHJlc291cmNlX2NvbnRleHQgKnJlc19jdHgsCi0JCXN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSkKKwkJc3RydWN0IHBpcGVfY3R4ICpoZWFkX3BpcGUpCiB7Ci0Jc3RydWN0IHBpcGVfY3R4ICpoZWFkX3BpcGUsICp0YWlsX3BpcGU7Ci0JaGVhZF9waXBlID0gcmVzb3VyY2VfZ2V0X2hlYWRfcGlwZV9mb3Jfc3RyZWFtKHJlc19jdHgsIHN0cmVhbSk7Ci0KLQlpZiAoIWhlYWRfcGlwZSkKLQkJcmV0dXJuIE5VTEw7CisJc3RydWN0IHBpcGVfY3R4ICp0YWlsX3BpcGU7CiAKIAl0YWlsX3BpcGUgPSBoZWFkX3BpcGUtPmJvdHRvbV9waXBlOwogCkBAIC0xMTM3LDMxICsxMTU3LDIwIEBAIHN0YXRpYyBzdHJ1Y3QgcGlwZV9jdHggKnJlc291cmNlX2dldF90YWlsX3BpcGVfZm9yX3N0cmVhbSgKICAqIEEgZnJlZV9waXBlIGZvciBhIHN0cmVhbSBpcyBkZWZpbmVkIGhlcmUgYXMgYSBwaXBlCiAgKiB0aGF0IGhhcyBubyBzdXJmYWNlIGF0dGFjaGVkIHlldAogICovCi1zdGF0aWMgc3RydWN0IHBpcGVfY3R4ICphY3F1aXJlX2ZyZWVfcGlwZV9mb3Jfc3RyZWFtKAorc3RhdGljIHN0cnVjdCBwaXBlX2N0eCAqYWNxdWlyZV9mcmVlX3BpcGVfZm9yX2hlYWQoCiAJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKIAkJY29uc3Qgc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wsCi0JCXN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSkKKwkJc3RydWN0IHBpcGVfY3R4ICpoZWFkX3BpcGUpCiB7CiAJaW50IGk7CiAJc3RydWN0IHJlc291cmNlX2NvbnRleHQgKnJlc19jdHggPSAmY29udGV4dC0+cmVzX2N0eDsKIAotCXN0cnVjdCBwaXBlX2N0eCAqaGVhZF9waXBlID0gTlVMTDsKLQotCS8qIEZpbmQgaGVhZCBwaXBlLCB3aGljaCBoYXMgdGhlIGJhY2sgZW5kIHNldCB1cCovCi0KLQloZWFkX3BpcGUgPSByZXNvdXJjZV9nZXRfaGVhZF9waXBlX2Zvcl9zdHJlYW0ocmVzX2N0eCwgc3RyZWFtKTsKLQotCWlmICghaGVhZF9waXBlKSB7Ci0JCUFTU0VSVCgwKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCiAJaWYgKCFoZWFkX3BpcGUtPnBsYW5lX3N0YXRlKQogCQlyZXR1cm4gaGVhZF9waXBlOwogCiAJLyogUmUtdXNlIHBpcGUgYWxyZWFkeSBhY3F1aXJlZCBmb3IgdGhpcyBzdHJlYW0gaWYgYXZhaWxhYmxlKi8KIAlmb3IgKGkgPSBwb29sLT5waXBlX2NvdW50IC0gMTsgaSA+PSAwOyBpLS0pIHsKLQkJaWYgKHJlc19jdHgtPnBpcGVfY3R4W2ldLnN0cmVhbSA9PSBzdHJlYW0gJiYKKwkJaWYgKHJlc19jdHgtPnBpcGVfY3R4W2ldLnN0cmVhbSA9PSBoZWFkX3BpcGUtPnN0cmVhbSAmJgogCQkJCSFyZXNfY3R4LT5waXBlX2N0eFtpXS5wbGFuZV9zdGF0ZSkgewogCQkJcmV0dXJuICZyZXNfY3R4LT5waXBlX2N0eFtpXTsKIAkJfQpAQCAtMTE3NSw4ICsxMTg0LDcgQEAgc3RhdGljIHN0cnVjdCBwaXBlX2N0eCAqYWNxdWlyZV9mcmVlX3BpcGVfZm9yX3N0cmVhbSgKIAlpZiAoIXBvb2wtPmZ1bmNzLT5hY3F1aXJlX2lkbGVfcGlwZV9mb3JfbGF5ZXIpCiAJCXJldHVybiBOVUxMOwogCi0JcmV0dXJuIHBvb2wtPmZ1bmNzLT5hY3F1aXJlX2lkbGVfcGlwZV9mb3JfbGF5ZXIoY29udGV4dCwgcG9vbCwgc3RyZWFtKTsKLQorCXJldHVybiBwb29sLT5mdW5jcy0+YWNxdWlyZV9pZGxlX3BpcGVfZm9yX2xheWVyKGNvbnRleHQsIHBvb2wsIGhlYWRfcGlwZS0+c3RyZWFtKTsKIH0KIAogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQpAQCAtMTE5MCw3ICsxMTk4LDcgQEAgc3RhdGljIGludCBhY3F1aXJlX2ZpcnN0X3NwbGl0X3BpcGUoCiAJZm9yIChpID0gMDsgaSA8IHBvb2wtPnBpcGVfY291bnQ7IGkrKykgewogCQlzdHJ1Y3QgcGlwZV9jdHggKnNwbGl0X3BpcGUgPSAmcmVzX2N0eC0+cGlwZV9jdHhbaV07CiAKLQkJaWYgKHNwbGl0X3BpcGUtPnRvcF9waXBlICYmICFkY19yZXNfaXNfb2RtX2hlYWRfcGlwZShzcGxpdF9waXBlKSAmJgorCQlpZiAoc3BsaXRfcGlwZS0+dG9wX3BpcGUgJiYKIAkJCQlzcGxpdF9waXBlLT50b3BfcGlwZS0+cGxhbmVfc3RhdGUgPT0gc3BsaXRfcGlwZS0+cGxhbmVfc3RhdGUpIHsKIAkJCXNwbGl0X3BpcGUtPnRvcF9waXBlLT5ib3R0b21fcGlwZSA9IHNwbGl0X3BpcGUtPmJvdHRvbV9waXBlOwogCQkJaWYgKHNwbGl0X3BpcGUtPmJvdHRvbV9waXBlKQpAQCAtMTI1MSwzOSArMTI1OSw0MSBAQCBib29sIGRjX2FkZF9wbGFuZV90b19jb250ZXh0KAogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JdGFpbF9waXBlID0gcmVzb3VyY2VfZ2V0X3RhaWxfcGlwZV9mb3Jfc3RyZWFtKCZjb250ZXh0LT5yZXNfY3R4LCBzdHJlYW0pOwotCUFTU0VSVCh0YWlsX3BpcGUpOwotCi0JZnJlZV9waXBlID0gYWNxdWlyZV9mcmVlX3BpcGVfZm9yX3N0cmVhbShjb250ZXh0LCBwb29sLCBzdHJlYW0pOwotCi0jaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCi0JaWYgKCFmcmVlX3BpcGUpIHsKLQkJaW50IHBpcGVfaWR4ID0gYWNxdWlyZV9maXJzdF9zcGxpdF9waXBlKCZjb250ZXh0LT5yZXNfY3R4LCBwb29sLCBzdHJlYW0pOwotCQlpZiAocGlwZV9pZHggPj0gMCkKLQkJCWZyZWVfcGlwZSA9ICZjb250ZXh0LT5yZXNfY3R4LnBpcGVfY3R4W3BpcGVfaWR4XTsKLQl9Ci0jZW5kaWYKLQlpZiAoIWZyZWVfcGlwZSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JLyogcmV0YWluIG5ldyBzdXJmYWNlcyAqLworCS8qIHJldGFpbiBuZXcgc3VyZmFjZSwgYnV0IG9ubHkgb25jZSBwZXIgc3RyZWFtICovCiAJZGNfcGxhbmVfc3RhdGVfcmV0YWluKHBsYW5lX3N0YXRlKTsKLQlmcmVlX3BpcGUtPnBsYW5lX3N0YXRlID0gcGxhbmVfc3RhdGU7CiAKLQlpZiAoaGVhZF9waXBlICE9IGZyZWVfcGlwZSkgewotCQlmcmVlX3BpcGUtPnN0cmVhbV9yZXMudGcgPSB0YWlsX3BpcGUtPnN0cmVhbV9yZXMudGc7Ci0JCWZyZWVfcGlwZS0+c3RyZWFtX3Jlcy5hYm0gPSB0YWlsX3BpcGUtPnN0cmVhbV9yZXMuYWJtOwotCQlmcmVlX3BpcGUtPnN0cmVhbV9yZXMub3BwID0gdGFpbF9waXBlLT5zdHJlYW1fcmVzLm9wcDsKLQkJZnJlZV9waXBlLT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMgPSB0YWlsX3BpcGUtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYzsKLQkJZnJlZV9waXBlLT5zdHJlYW1fcmVzLmF1ZGlvID0gdGFpbF9waXBlLT5zdHJlYW1fcmVzLmF1ZGlvOwotCQlmcmVlX3BpcGUtPmNsb2NrX3NvdXJjZSA9IHRhaWxfcGlwZS0+Y2xvY2tfc291cmNlOwotCQlmcmVlX3BpcGUtPnRvcF9waXBlID0gdGFpbF9waXBlOwotCQl0YWlsX3BpcGUtPmJvdHRvbV9waXBlID0gZnJlZV9waXBlOwotCX0gZWxzZSBpZiAoZnJlZV9waXBlLT5ib3R0b21fcGlwZSAmJiBmcmVlX3BpcGUtPmJvdHRvbV9waXBlLT5wbGFuZV9zdGF0ZSA9PSBOVUxMKSB7Ci0JCUFTU0VSVChmcmVlX3BpcGUtPmJvdHRvbV9waXBlLT5zdHJlYW1fcmVzLm9wcCAhPSBmcmVlX3BpcGUtPnN0cmVhbV9yZXMub3BwKTsKLQkJZnJlZV9waXBlLT5ib3R0b21fcGlwZS0+cGxhbmVfc3RhdGUgPSBwbGFuZV9zdGF0ZTsKKwl3aGlsZSAoaGVhZF9waXBlKSB7CisJCXRhaWxfcGlwZSA9IHJlc291cmNlX2dldF90YWlsX3BpcGUoJmNvbnRleHQtPnJlc19jdHgsIGhlYWRfcGlwZSk7CisJCUFTU0VSVCh0YWlsX3BpcGUpOworCisJCWZyZWVfcGlwZSA9IGFjcXVpcmVfZnJlZV9waXBlX2Zvcl9oZWFkKGNvbnRleHQsIHBvb2wsIGhlYWRfcGlwZSk7CisKKwkjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJCWlmICghZnJlZV9waXBlKSB7CisJCQlpbnQgcGlwZV9pZHggPSBhY3F1aXJlX2ZpcnN0X3NwbGl0X3BpcGUoJmNvbnRleHQtPnJlc19jdHgsIHBvb2wsIHN0cmVhbSk7CisJCQlpZiAocGlwZV9pZHggPj0gMCkKKwkJCQlmcmVlX3BpcGUgPSAmY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtwaXBlX2lkeF07CisJCX0KKwkjZW5kaWYKKwkJaWYgKCFmcmVlX3BpcGUpIHsKKwkJCWRjX3BsYW5lX3N0YXRlX3JlbGVhc2UocGxhbmVfc3RhdGUpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJZnJlZV9waXBlLT5wbGFuZV9zdGF0ZSA9IHBsYW5lX3N0YXRlOworCisJCWlmIChoZWFkX3BpcGUgIT0gZnJlZV9waXBlKSB7CisJCQlmcmVlX3BpcGUtPnN0cmVhbV9yZXMudGcgPSB0YWlsX3BpcGUtPnN0cmVhbV9yZXMudGc7CisJCQlmcmVlX3BpcGUtPnN0cmVhbV9yZXMuYWJtID0gdGFpbF9waXBlLT5zdHJlYW1fcmVzLmFibTsKKwkJCWZyZWVfcGlwZS0+c3RyZWFtX3Jlcy5vcHAgPSB0YWlsX3BpcGUtPnN0cmVhbV9yZXMub3BwOworCQkJZnJlZV9waXBlLT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMgPSB0YWlsX3BpcGUtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYzsKKwkJCWZyZWVfcGlwZS0+c3RyZWFtX3Jlcy5hdWRpbyA9IHRhaWxfcGlwZS0+c3RyZWFtX3Jlcy5hdWRpbzsKKwkJCWZyZWVfcGlwZS0+Y2xvY2tfc291cmNlID0gdGFpbF9waXBlLT5jbG9ja19zb3VyY2U7CisJCQlmcmVlX3BpcGUtPnRvcF9waXBlID0gdGFpbF9waXBlOworCQkJdGFpbF9waXBlLT5ib3R0b21fcGlwZSA9IGZyZWVfcGlwZTsKKwkJfQorCQloZWFkX3BpcGUgPSBoZWFkX3BpcGUtPm5leHRfb2RtX3BpcGU7CiAJfQotCiAJLyogYXNzaWduIG5ldyBzdXJmYWNlcyovCiAJc3RyZWFtX3N0YXR1cy0+cGxhbmVfc3RhdGVzW3N0cmVhbV9zdGF0dXMtPnBsYW5lX2NvdW50XSA9IHBsYW5lX3N0YXRlOwogCkBAIC0xMjkyLDM1ICsxMzAyLDYgQEAgYm9vbCBkY19hZGRfcGxhbmVfdG9fY29udGV4dCgKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RydWN0IHBpcGVfY3R4ICpkY19yZXNfZ2V0X29kbV9ib3R0b21fcGlwZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQotewotCXN0cnVjdCBwaXBlX2N0eCAqYm90dG9tX3BpcGUgPSBwaXBlX2N0eC0+Ym90dG9tX3BpcGU7Ci0KLQkvKiBPRE0gc2hvdWxkIG9ubHkgYmUgdXBkYXRlZCBvbmNlIHBlciBvdGcgKi8KLQlpZiAocGlwZV9jdHgtPnRvcF9waXBlKQotCQlyZXR1cm4gTlVMTDsKLQotCXdoaWxlIChib3R0b21fcGlwZSkgewotCQlpZiAoYm90dG9tX3BpcGUtPnN0cmVhbV9yZXMub3BwICE9IHBpcGVfY3R4LT5zdHJlYW1fcmVzLm9wcCkKLQkJCWJyZWFrOwotCQlib3R0b21fcGlwZSA9IGJvdHRvbV9waXBlLT5ib3R0b21fcGlwZTsKLQl9Ci0KLQlyZXR1cm4gYm90dG9tX3BpcGU7Ci19Ci0KLWJvb2wgZGNfcmVzX2lzX29kbV9oZWFkX3BpcGUoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKLXsKLQlzdHJ1Y3QgcGlwZV9jdHggKnRvcF9waXBlID0gcGlwZV9jdHgtPnRvcF9waXBlOwotCi0JaWYgKCF0b3BfcGlwZSkKLQkJcmV0dXJuIGZhbHNlOwotCWlmICh0b3BfcGlwZSAmJiB0b3BfcGlwZS0+c3RyZWFtX3Jlcy5vcHAgPT0gcGlwZV9jdHgtPnN0cmVhbV9yZXMub3BwKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlyZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBkY19yZW1vdmVfcGxhbmVfZnJvbV9jb250ZXh0KAogCQljb25zdCBzdHJ1Y3QgZGMgKmRjLAogCQlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCkBAIC0xMzQ3LDEyICsxMzI4LDYgQEAgYm9vbCBkY19yZW1vdmVfcGxhbmVfZnJvbV9jb250ZXh0KAogCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4ID0gJmNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV07CiAKIAkJaWYgKHBpcGVfY3R4LT5wbGFuZV9zdGF0ZSA9PSBwbGFuZV9zdGF0ZSkgewotCQkJaWYgKGRjX3Jlc19pc19vZG1faGVhZF9waXBlKHBpcGVfY3R4KSkgewotCQkJCXBpcGVfY3R4LT5wbGFuZV9zdGF0ZSA9IE5VTEw7Ci0JCQkJcGlwZV9jdHgtPmJvdHRvbV9waXBlID0gTlVMTDsKLQkJCQljb250aW51ZTsKLQkJCX0KLQogCQkJaWYgKHBpcGVfY3R4LT50b3BfcGlwZSkKIAkJCQlwaXBlX2N0eC0+dG9wX3BpcGUtPmJvdHRvbV9waXBlID0gcGlwZV9jdHgtPmJvdHRvbV9waXBlOwogCkBAIC0xMzY3LDEzICsxMzQyLDEwIEBAIGJvb2wgZGNfcmVtb3ZlX3BsYW5lX2Zyb21fY29udGV4dCgKIAkJCSAqIEZvciBoZWFkIHBpcGUgZGV0YWNoIHN1cmZhY2VzIGZyb20gcGlwZSBmb3IgdGFpbAogCQkJICogcGlwZSBqdXN0IHplcm8gaXQgb3V0CiAJCQkgKi8KLQkJCWlmICghcGlwZV9jdHgtPnRvcF9waXBlKSB7CisJCQlpZiAoIXBpcGVfY3R4LT50b3BfcGlwZSkKIAkJCQlwaXBlX2N0eC0+cGxhbmVfc3RhdGUgPSBOVUxMOwotCQkJCWlmICghZGNfcmVzX2dldF9vZG1fYm90dG9tX3BpcGUocGlwZV9jdHgpKQotCQkJCQlwaXBlX2N0eC0+Ym90dG9tX3BpcGUgPSBOVUxMOwotCQkJfSBlbHNlIHsKKwkJCWVsc2UKIAkJCQltZW1zZXQocGlwZV9jdHgsIDAsIHNpemVvZigqcGlwZV9jdHgpKTsKLQkJCX0KIAkJfQogCX0KIApAQCAtMTY1OSwyNCArMTYzMSwyNSBAQCBzdGF0aWMgc3RydWN0IGF1ZGlvICpmaW5kX2ZpcnN0X2ZyZWVfYXVkaW8oCiAJCWNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAogCQllbnVtIGVuZ2luZV9pZCBpZCkKIHsKLQlpbnQgaTsKLQlmb3IgKGkgPSAwOyBpIDwgcG9vbC0+YXVkaW9fY291bnQ7IGkrKykgeworCWludCBpLCBhdmFpbGFibGVfYXVkaW9fY291bnQ7CisKKwlhdmFpbGFibGVfYXVkaW9fY291bnQgPSBwb29sLT5hdWRpb19jb3VudDsKKworCWZvciAoaSA9IDA7IGkgPCBhdmFpbGFibGVfYXVkaW9fY291bnQ7IGkrKykgewogCQlpZiAoKHJlc19jdHgtPmlzX2F1ZGlvX2FjcXVpcmVkW2ldID09IGZhbHNlKSAmJiAocmVzX2N0eC0+aXNfc3RyZWFtX2VuY19hY3F1aXJlZFtpXSA9PSB0cnVlKSkgewogCQkJLyp3ZSBoYXZlIGVub3VnaCBhdWRpbyBlbmRwb2ludCwgZmluZCB0aGUgbWF0Y2hpbmcgaW5zdCovCiAJCQlpZiAoaWQgIT0gaSkKIAkJCQljb250aW51ZTsKLQogCQkJcmV0dXJuIHBvb2wtPmF1ZGlvc1tpXTsKIAkJfQogCX0KIAotICAgIC8qIHVzZSBlbmdpbmUgaWQgdG8gZmluZCBmcmVlIGF1ZGlvICovCi0JaWYgKChpZCA8IHBvb2wtPmF1ZGlvX2NvdW50KSAmJiAocmVzX2N0eC0+aXNfYXVkaW9fYWNxdWlyZWRbaWRdID09IGZhbHNlKSkgeworCS8qIHVzZSBlbmdpbmUgaWQgdG8gZmluZCBmcmVlIGF1ZGlvICovCisJaWYgKChpZCA8IGF2YWlsYWJsZV9hdWRpb19jb3VudCkgJiYgKHJlc19jdHgtPmlzX2F1ZGlvX2FjcXVpcmVkW2lkXSA9PSBmYWxzZSkpIHsKIAkJcmV0dXJuIHBvb2wtPmF1ZGlvc1tpZF07CiAJfQotCiAJLypub3QgZm91bmQgdGhlIG1hdGNoaW5nIG9uZSwgZmlyc3QgY29tZSBmaXJzdCBzZXJ2ZSovCi0JZm9yIChpID0gMDsgaSA8IHBvb2wtPmF1ZGlvX2NvdW50OyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgYXZhaWxhYmxlX2F1ZGlvX2NvdW50OyBpKyspIHsKIAkJaWYgKHJlc19jdHgtPmlzX2F1ZGlvX2FjcXVpcmVkW2ldID09IGZhbHNlKSB7CiAJCQlyZXR1cm4gcG9vbC0+YXVkaW9zW2ldOwogCQl9CkBAIC0xNzM2LDUxICsxNzA5LDQ2IEBAIGVudW0gZGNfc3RhdHVzIGRjX3JlbW92ZV9zdHJlYW1fZnJvbV9jdHgoCiB7CiAJaW50IGk7CiAJc3RydWN0IGRjX2NvbnRleHQgKmRjX2N0eCA9IGRjLT5jdHg7Ci0Jc3RydWN0IHBpcGVfY3R4ICpkZWxfcGlwZSA9IE5VTEw7Ci0KLQkvKiBSZWxlYXNlIHByaW1hcnkgcGlwZSAqLwotCWZvciAoaSA9IDA7IGkgPCBNQVhfUElQRVM7IGkrKykgewotCQlpZiAobmV3X2N0eC0+cmVzX2N0eC5waXBlX2N0eFtpXS5zdHJlYW0gPT0gc3RyZWFtICYmCi0JCQkJIW5ld19jdHgtPnJlc19jdHgucGlwZV9jdHhbaV0udG9wX3BpcGUpIHsKLQkJCXN0cnVjdCBwaXBlX2N0eCAqb2RtX3BpcGUgPQotCQkJCQlkY19yZXNfZ2V0X29kbV9ib3R0b21fcGlwZSgmbmV3X2N0eC0+cmVzX2N0eC5waXBlX2N0eFtpXSk7Ci0KLQkJCWRlbF9waXBlID0gJm5ld19jdHgtPnJlc19jdHgucGlwZV9jdHhbaV07Ci0KLQkJCUFTU0VSVChkZWxfcGlwZS0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jKTsKLQkJCXVwZGF0ZV9zdHJlYW1fZW5naW5lX3VzYWdlKAotCQkJCQkmbmV3X2N0eC0+cmVzX2N0eCwKLQkJCQkJCWRjLT5yZXNfcG9vbCwKLQkJCQkJZGVsX3BpcGUtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYywKLQkJCQkJZmFsc2UpOwotCi0JCQlpZiAoZGVsX3BpcGUtPnN0cmVhbV9yZXMuYXVkaW8pCi0JCQkJdXBkYXRlX2F1ZGlvX3VzYWdlKAotCQkJCQkmbmV3X2N0eC0+cmVzX2N0eCwKLQkJCQkJZGMtPnJlc19wb29sLAotCQkJCQlkZWxfcGlwZS0+c3RyZWFtX3Jlcy5hdWRpbywKLQkJCQkJZmFsc2UpOwotCi0JCQlyZXNvdXJjZV91bnJlZmVyZW5jZV9jbG9ja19zb3VyY2UoJm5ld19jdHgtPnJlc19jdHgsCi0JCQkJCQkJICBkYy0+cmVzX3Bvb2wsCi0JCQkJCQkJICBkZWxfcGlwZS0+Y2xvY2tfc291cmNlKTsKLQotCQkJaWYgKGRjLT5yZXNfcG9vbC0+ZnVuY3MtPnJlbW92ZV9zdHJlYW1fZnJvbV9jdHgpCi0JCQkJZGMtPnJlc19wb29sLT5mdW5jcy0+cmVtb3ZlX3N0cmVhbV9mcm9tX2N0eChkYywgbmV3X2N0eCwgc3RyZWFtKTsKLQotCQkJbWVtc2V0KGRlbF9waXBlLCAwLCBzaXplb2YoKmRlbF9waXBlKSk7Ci0JCQlpZiAob2RtX3BpcGUpCi0JCQkJbWVtc2V0KG9kbV9waXBlLCAwLCBzaXplb2YoKm9kbV9waXBlKSk7Ci0KLQkJCWJyZWFrOwotCQl9Ci0JfQorCXN0cnVjdCBwaXBlX2N0eCAqZGVsX3BpcGUgPSByZXNvdXJjZV9nZXRfaGVhZF9waXBlX2Zvcl9zdHJlYW0oJm5ld19jdHgtPnJlc19jdHgsIHN0cmVhbSk7CisJc3RydWN0IHBpcGVfY3R4ICpvZG1fcGlwZTsKIAogCWlmICghZGVsX3BpcGUpIHsKIAkJRENfRVJST1IoIlBpcGUgbm90IGZvdW5kIGZvciBzdHJlYW0gJXAgIVxuIiwgc3RyZWFtKTsKIAkJcmV0dXJuIERDX0VSUk9SX1VORVhQRUNURUQ7CiAJfQogCisJb2RtX3BpcGUgPSBkZWxfcGlwZS0+bmV4dF9vZG1fcGlwZTsKKworCS8qIFJlbGVhc2UgcHJpbWFyeSBwaXBlICovCisJQVNTRVJUKGRlbF9waXBlLT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMpOworCXVwZGF0ZV9zdHJlYW1fZW5naW5lX3VzYWdlKAorCQkJJm5ld19jdHgtPnJlc19jdHgsCisJCQkJZGMtPnJlc19wb29sLAorCQkJZGVsX3BpcGUtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYywKKwkJCWZhbHNlKTsKKworCWlmIChkZWxfcGlwZS0+c3RyZWFtX3Jlcy5hdWRpbykKKwkJdXBkYXRlX2F1ZGlvX3VzYWdlKAorCQkJJm5ld19jdHgtPnJlc19jdHgsCisJCQlkYy0+cmVzX3Bvb2wsCisJCQlkZWxfcGlwZS0+c3RyZWFtX3Jlcy5hdWRpbywKKwkJCWZhbHNlKTsKKworCXJlc291cmNlX3VucmVmZXJlbmNlX2Nsb2NrX3NvdXJjZSgmbmV3X2N0eC0+cmVzX2N0eCwKKwkJCQkJICBkYy0+cmVzX3Bvb2wsCisJCQkJCSAgZGVsX3BpcGUtPmNsb2NrX3NvdXJjZSk7CisKKwlpZiAoZGMtPnJlc19wb29sLT5mdW5jcy0+cmVtb3ZlX3N0cmVhbV9mcm9tX2N0eCkKKwkJZGMtPnJlc19wb29sLT5mdW5jcy0+cmVtb3ZlX3N0cmVhbV9mcm9tX2N0eChkYywgbmV3X2N0eCwgc3RyZWFtKTsKKworCXdoaWxlIChvZG1fcGlwZSkgeworCQlzdHJ1Y3QgcGlwZV9jdHggKm5leHRfb2RtX3BpcGUgPSBvZG1fcGlwZS0+bmV4dF9vZG1fcGlwZTsKKworCQltZW1zZXQob2RtX3BpcGUsIDAsIHNpemVvZigqb2RtX3BpcGUpKTsKKwkJb2RtX3BpcGUgPSBuZXh0X29kbV9waXBlOworCX0KKwltZW1zZXQoZGVsX3BpcGUsIDAsIHNpemVvZigqZGVsX3BpcGUpKTsKKwogCWZvciAoaSA9IDA7IGkgPCBuZXdfY3R4LT5zdHJlYW1fY291bnQ7IGkrKykKIAkJaWYgKG5ld19jdHgtPnN0cmVhbXNbaV0gPT0gc3RyZWFtKQogCQkJYnJlYWs7CkBAIC0xODgwLDcgKzE4NDgsNyBAQCBzdGF0aWMgaW50IGFjcXVpcmVfcmVzb3VyY2VfZnJvbV9od19lbmFibGVkX3N0YXRlKAogCQlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pCiB7CiAJc3RydWN0IGRjX2xpbmsgKmxpbmsgPSBzdHJlYW0tPmxpbms7Ci0JdW5zaWduZWQgaW50IGluc3Q7CisJdW5zaWduZWQgaW50IGluc3QsIHRnX2luc3Q7CiAKIAkvKiBDaGVjayBmb3IgZW5hYmxlZCBESUcgdG8gaWRlbnRpZnkgZW5hYmxlZCBkaXNwbGF5ICovCiAJaWYgKCFsaW5rLT5saW5rX2VuYy0+ZnVuY3MtPmlzX2RpZ19lbmFibGVkKGxpbmstPmxpbmtfZW5jKSkKQEAgLTE4OTIsMjggKzE4NjAsMzcgQEAgc3RhdGljIGludCBhY3F1aXJlX3Jlc291cmNlX2Zyb21faHdfZW5hYmxlZF9zdGF0ZSgKIAkgKiBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFsd2F5cyBtYXAgMS10by0xLCBzbyB0aGlzIGNvZGUgbWFrZXMKIAkgKiB0aGUgc2FtZSBhc3N1bXB0aW9uIGFuZCBkb2Vzbid0IGNoZWNrIE9URyBzb3VyY2UuCiAJICovCi0JaW5zdCA9IGxpbmstPmxpbmtfZW5jLT5mdW5jcy0+Z2V0X2RpZ19mcm9udGVuZChsaW5rLT5saW5rX2VuYykgLSAxOworCWluc3QgPSBsaW5rLT5saW5rX2VuYy0+ZnVuY3MtPmdldF9kaWdfZnJvbnRlbmQobGluay0+bGlua19lbmMpOwogCiAJLyogSW5zdGFuY2Ugc2hvdWxkIGJlIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgdGhlIHBvb2wgKi8KIAlpZiAoaW5zdCA+PSBwb29sLT5waXBlX2NvdW50KQogCQlyZXR1cm4gLTE7CiAKLQlpZiAoIXJlc19jdHgtPnBpcGVfY3R4W2luc3RdLnN0cmVhbSkgewotCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4ID0gJnJlc19jdHgtPnBpcGVfY3R4W2luc3RdOworCWlmIChpbnN0ID49IHBvb2wtPnN0cmVhbV9lbmNfY291bnQpCisJCXJldHVybiAtMTsKIAotCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50ZyA9IHBvb2wtPnRpbWluZ19nZW5lcmF0b3JzW2luc3RdOwotCQlwaXBlX2N0eC0+cGxhbmVfcmVzLm1pID0gcG9vbC0+bWlzW2luc3RdOwotCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAgPSBwb29sLT5odWJwc1tpbnN0XTsKLQkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5pcHAgPSBwb29sLT5pcHBzW2luc3RdOwotCQlwaXBlX2N0eC0+cGxhbmVfcmVzLnhmbSA9IHBvb2wtPnRyYW5zZm9ybXNbaW5zdF07Ci0JCXBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwID0gcG9vbC0+ZHBwc1tpbnN0XTsKLQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMub3BwID0gcG9vbC0+b3Bwc1tpbnN0XTsKLQkJaWYgKHBvb2wtPmRwcHNbaW5zdF0pCi0JCQlwaXBlX2N0eC0+cGxhbmVfcmVzLm1wY2NfaW5zdCA9IHBvb2wtPmRwcHNbaW5zdF0tPmluc3Q7Ci0JCXBpcGVfY3R4LT5waXBlX2lkeCA9IGluc3Q7CisJdGdfaW5zdCA9IHBvb2wtPnN0cmVhbV9lbmNbaW5zdF0tPmZ1bmNzLT5kaWdfc291cmNlX290Zyhwb29sLT5zdHJlYW1fZW5jW2luc3RdKTsKKworCWlmICh0Z19pbnN0ID49IHBvb2wtPnRpbWluZ19nZW5lcmF0b3JfY291bnQpCisJCXJldHVybiBmYWxzZTsKKworCWlmICghcmVzX2N0eC0+cGlwZV9jdHhbdGdfaW5zdF0uc3RyZWFtKSB7CisJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHggPSAmcmVzX2N0eC0+cGlwZV9jdHhbdGdfaW5zdF07CisKKwkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcgPSBwb29sLT50aW1pbmdfZ2VuZXJhdG9yc1t0Z19pbnN0XTsKKwkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5taSA9IHBvb2wtPm1pc1t0Z19pbnN0XTsKKwkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwID0gcG9vbC0+aHVicHNbdGdfaW5zdF07CisJCXBpcGVfY3R4LT5wbGFuZV9yZXMuaXBwID0gcG9vbC0+aXBwc1t0Z19pbnN0XTsKKwkJcGlwZV9jdHgtPnBsYW5lX3Jlcy54Zm0gPSBwb29sLT50cmFuc2Zvcm1zW3RnX2luc3RdOworCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcCA9IHBvb2wtPmRwcHNbdGdfaW5zdF07CisJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLm9wcCA9IHBvb2wtPm9wcHNbdGdfaW5zdF07CisKKwkJaWYgKHBvb2wtPmRwcHNbdGdfaW5zdF0pCisJCQlwaXBlX2N0eC0+cGxhbmVfcmVzLm1wY2NfaW5zdCA9IHBvb2wtPmRwcHNbdGdfaW5zdF0tPmluc3Q7CisJCXBpcGVfY3R4LT5waXBlX2lkeCA9IHRnX2luc3Q7CiAKIAkJcGlwZV9jdHgtPnN0cmVhbSA9IHN0cmVhbTsKLQkJcmV0dXJuIGluc3Q7CisJCXJldHVybiB0Z19pbnN0OwogCX0KIAogCXJldHVybiAtMTsKQEAgLTI0NzUsNiArMjQ1MiwxMiBAQCB2b2lkIGRjX3Jlc291cmNlX3N0YXRlX2NvcHlfY29uc3RydWN0KAogCiAJCWlmIChjdXJfcGlwZS0+Ym90dG9tX3BpcGUpCiAJCQljdXJfcGlwZS0+Ym90dG9tX3BpcGUgPSAmZHN0X2N0eC0+cmVzX2N0eC5waXBlX2N0eFtjdXJfcGlwZS0+Ym90dG9tX3BpcGUtPnBpcGVfaWR4XTsKKworCQlpZiAoY3VyX3BpcGUtPm5leHRfb2RtX3BpcGUpCisJCQljdXJfcGlwZS0+bmV4dF9vZG1fcGlwZSA9ICAmZHN0X2N0eC0+cmVzX2N0eC5waXBlX2N0eFtjdXJfcGlwZS0+bmV4dF9vZG1fcGlwZS0+cGlwZV9pZHhdOworCisJCWlmIChjdXJfcGlwZS0+cHJldl9vZG1fcGlwZSkKKwkJCWN1cl9waXBlLT5wcmV2X29kbV9waXBlID0gJmRzdF9jdHgtPnJlc19jdHgucGlwZV9jdHhbY3VyX3BpcGUtPnByZXZfb2RtX3BpcGUtPnBpcGVfaWR4XTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgZHN0X2N0eC0+c3RyZWFtX2NvdW50OyBpKyspIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX3N0cmVhbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfc3RyZWFtLmMKaW5kZXggMzUyODYyMy4uYmYxZDdiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfc3RyZWFtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfc3RyZWFtLmMKQEAgLTU2Niw2ICs1NjYsNyBAQCBib29sIGRjX3N0cmVhbV9nZXRfc2Nhbm91dHBvcyhjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAKIAlyZXR1cm4gcmV0OwogfQorCiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCiBib29sIGRjX3N0cmVhbV9kbWRhdGFfc3RhdHVzX2RvbmUoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKQogewpAQCAtNTk3LDYgKzU5OCwxNCBAQCBib29sIGRjX3N0cmVhbV9zZXRfZHluYW1pY19tZXRhZGF0YShzdHJ1Y3QgZGMgKmRjLAogCXN0cnVjdCBodWJwICpodWJwOwogCWludCBpOwogCisJLyogRHluYW1pYyBtZXRhZGF0YSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBIRE1JIG9yIERQICovCisJaWYgKCFkY19pc19oZG1pX3NpZ25hbChzdHJlYW0tPnNpZ25hbCkgJiYgIWRjX2lzX2RwX3NpZ25hbChzdHJlYW0tPnNpZ25hbCkpCisJCXJldHVybiBmYWxzZTsKKworCS8qIENoZWNrIGhhcmR3YXJlIHN1cHBvcnQgKi8KKwlpZiAoIWRjLT5od3NzLnByb2dyYW1fZG1kYXRhX2VuZ2luZSkKKwkJcmV0dXJuIGZhbHNlOworCiAJZm9yIChpID0gMDsgaSA8IE1BWF9QSVBFUzsgaSsrKSB7CiAJCXBpcGVfY3R4ID0gJmRjLT5jdXJyZW50X3N0YXRlLT5yZXNfY3R4LnBpcGVfY3R4W2ldOwogCQlpZiAocGlwZV9jdHgtPnN0cmVhbSA9PSBzdHJlYW0pCkBAIC02MTIsMjMgKzYyMSw3IEBAIGJvb2wgZGNfc3RyZWFtX3NldF9keW5hbWljX21ldGFkYXRhKHN0cnVjdCBkYyAqZGMsCiAKIAlwaXBlX2N0eC0+c3RyZWFtLT5kbWRhdGFfYWRkcmVzcyA9IGF0dHItPmFkZHJlc3M7CiAKLQlpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYyAmJgotCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+ZnVuY3MtPnNldF9keW5hbWljX21ldGFkYXRhICE9IE5VTEwpIHsKLQkJaWYgKHBpcGVfY3R4LT5zdHJlYW0tPmRtZGF0YV9hZGRyZXNzLnF1YWRfcGFydCAhPSAwKSB7Ci0JCQkvKiBpZiB1c2luZyBkeW5hbWljIG1ldGEsIGRvbid0IHNldCB1cCBnZW5lcmljIGluZm9wYWNrZXRzICovCi0JCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5lbmNvZGVyX2luZm9fZnJhbWUuaGRyc21kLnZhbGlkID0gZmFsc2U7Ci0JCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLT5mdW5jcy0+c2V0X2R5bmFtaWNfbWV0YWRhdGEoCi0JCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMsCi0JCQkJCXRydWUsIHBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicC0+aW5zdCwKLQkJCQkJZGNfaXNfZHBfc2lnbmFsKHBpcGVfY3R4LT5zdHJlYW0tPnNpZ25hbCkgPwotCQkJCQkJCWRtZGF0YV9kcCA6IGRtZGF0YV9oZG1pKTsKLQkJfSBlbHNlCi0JCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLT5mdW5jcy0+c2V0X2R5bmFtaWNfbWV0YWRhdGEoCi0JCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMsCi0JCQkJCWZhbHNlLCBwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAtPmluc3QsCi0JCQkJCWRjX2lzX2RwX3NpZ25hbChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwpID8KLQkJCQkJCQlkbWRhdGFfZHAgOiBkbWRhdGFfaGRtaSk7Ci0JfQorCWRjLT5od3NzLnByb2dyYW1fZG1kYXRhX2VuZ2luZShwaXBlX2N0eCk7CiAKIAlpZiAoaHVicC0+ZnVuY3MtPmRtZGF0YV9zZXRfYXR0cmlidXRlcyAhPSBOVUxMICYmCiAJCQlwaXBlX2N0eC0+c3RyZWFtLT5kbWRhdGFfYWRkcmVzcy5xdWFkX3BhcnQgIT0gMCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfc3VyZmFjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfc3VyZmFjZS5jCmluZGV4IGY0MGU0ZmQuLmI5ZDZhNWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX3N1cmZhY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19zdXJmYWNlLmMKQEAgLTYwLDcgKzYwLDYgQEAgc3RhdGljIHZvaWQgY29uc3RydWN0KHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUKIAlwbGFuZV9zdGF0ZS0+bHV0M2RfZnVuYyA9IGRjX2NyZWF0ZV8zZGx1dF9mdW5jKCk7CiAJaWYgKHBsYW5lX3N0YXRlLT5sdXQzZF9mdW5jICE9IE5VTEwpIHsKIAkJcGxhbmVfc3RhdGUtPmx1dDNkX2Z1bmMtPmN0eCA9IGN0eDsKLQkJcGxhbmVfc3RhdGUtPmx1dDNkX2Z1bmMtPmluaXRpYWxpemVkID0gZmFsc2U7CiAJfQogCXBsYW5lX3N0YXRlLT5ibGVuZF90ZiA9IGRjX2NyZWF0ZV90cmFuc2Zlcl9mdW5jKCk7CiAJaWYgKHBsYW5lX3N0YXRlLT5ibGVuZF90ZiAhPSBOVUxMKSB7CkBAIC0yNzksNyArMjc4LDcgQEAgc3RydWN0IGRjXzNkbHV0ICpkY19jcmVhdGVfM2RsdXRfZnVuYyh2b2lkKQogCQlnb3RvIGFsbG9jX2ZhaWw7CiAKIAlrcmVmX2luaXQoJmx1dC0+cmVmY291bnQpOwotCWx1dC0+aW5pdGlhbGl6ZWQgPSBmYWxzZTsKKwlsdXQtPnN0YXRlLnJhdyA9IDA7CiAKIAlyZXR1cm4gbHV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kYy5oCmluZGV4IGU1MTMwMjguLmE4MjM1MmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kYy5oCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiaW5jL2h3L2RtY3UuaCIKICNpbmNsdWRlICJkbWwvZGlzcGxheV9tb2RlX2xpYi5oIgogCi0jZGVmaW5lIERDX1ZFUiAiMy4yLjM1IgorI2RlZmluZSBEQ19WRVIgIjMuMi40OCIKIAogI2RlZmluZSBNQVhfU1VSRkFDRVMgMwogI2RlZmluZSBNQVhfUExBTkVTIDYKQEAgLTEyMSw2ICsxMjEsNyBAQCBzdHJ1Y3QgZGNfY2FwcyB7CiBzdHJ1Y3QgZGNfYnVnX3dhIHsKIAlib29sIG5vX2Nvbm5lY3RfcGh5X2NvbmZpZzsKIAlib29sIGRlZGNuMjBfMzA1X3dhOworCWJvb2wgc2tpcF9jbG9ja191cGRhdGU7CiB9OwogI2VuZGlmCiAKQEAgLTIxOSw3ICsyMjAsNyBAQCBzdHJ1Y3QgZGNfY29uZmlnIHsKIAlib29sIHBvd2VyX2Rvd25fZGlzcGxheV9vbl9ib290OwogCWJvb2wgZWRwX25vdF9jb25uZWN0ZWQ7CiAJYm9vbCBmb3JjZWRfY2xvY2tzOwotCisJYm9vbCBtdWx0aV9tb25fcHBfbWNsa19zd2l0Y2g7CiB9OwogCiBlbnVtIHZpc3VhbF9jb25maXJtIHsKQEAgLTI1Miw3ICsyNTMsMTAgQEAgZW51bSB3bV9yZXBvcnRfbW9kZSB7CiBzdHJ1Y3QgZGNfY2xvY2tzIHsKIAlpbnQgZGlzcGNsa19raHo7CiAJaW50IG1heF9zdXBwb3J0ZWRfZHBwY2xrX2toejsKKwlpbnQgbWF4X3N1cHBvcnRlZF9kaXNwY2xrX2toejsKIAlpbnQgZHBwY2xrX2toejsKKwlpbnQgYndfZHBwY2xrX2toejsgLyphIGNvcHkgb2YgZHBwY2xrX2toeiovCisJaW50IGJ3X2Rpc3BjbGtfa2h6OwogCWludCBkY2ZjbGtfa2h6OwogCWludCBzb2NjbGtfa2h6OwogCWludCBkY2ZjbGtfZGVlcF9zbGVlcF9raHo7CkBAIC0yNjAsNiArMjY0LDEyIEBAIHN0cnVjdCBkY19jbG9ja3MgewogCWludCBwaHljbGtfa2h6OwogCWludCBkcmFtY2xrX2toejsKIAlib29sIHBfc3RhdGVfY2hhbmdlX3N1cHBvcnQ7CisKKwkvKgorCSAqIEVsZW1lbnRzIGJlbG93IGFyZSBub3QgY29tcGFyZWQgZm9yIHRoZSBwdXJwb3NlcyBvZgorCSAqIG9wdGltaXphdGlvbiByZXF1aXJlZAorCSAqLworCWJvb2wgcHJldl9wX3N0YXRlX2NoYW5nZV9zdXBwb3J0OwogfTsKIAogc3RydWN0IGRjX2J3X3ZhbGlkYXRpb25fcHJvZmlsZSB7CkBAIC0zNDEsNiArMzUxLDcgQEAgc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgewogCWJvb2wgZGlzYWJsZV9wcGxpYl93bV9yYW5nZTsKIAllbnVtIHdtX3JlcG9ydF9tb2RlIHBwbGliX3dtX3JlcG9ydF9tb2RlOwogCXVuc2lnbmVkIGludCBtaW5fZGlzcF9jbGtfa2h6OworCXVuc2lnbmVkIGludCBtaW5fZHBwX2Nsa19raHo7CiAJaW50IHNyX2V4aXRfdGltZV9kcG0wX25zOwogCWludCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZV9kcG0wX25zOwogCWludCBzcl9leGl0X3RpbWVfbnM7CkBAIC0zNjcsNiArMzc4LDcgQEAgc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgewogCWJvb2wgc2NsX3Jlc2V0X2xlbmd0aDEwOwogCWJvb2wgaGRtaTIwX2Rpc2FibGU7CiAJYm9vbCBza2lwX2RldGVjdGlvbl9saW5rX3RyYWluaW5nOworCWJvb2wgcmVtb3ZlX2Rpc2Nvbm5lY3RfZWRwOwogCXVuc2lnbmVkIGludCBmb3JjZV9vZG1fY29tYmluZTsgLy9iaXQgdmVjdG9yIGJhc2VkIG9uIG90ZyBpbnN0CiAJdW5zaWduZWQgaW50IGZvcmNlX2ZjbGtfa2h6OwogCWJvb2wgZGlzYWJsZV90cmlfYnVmOwpAQCAtMzc0LDEwICszODYsMTggQEAgc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgewogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCiAJYm9vbCBkaXNhYmxlX2ZlYzsKICNlbmRpZgorI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMQorCWJvb2wgZGlzYWJsZV80OG1oel9wd3Jkd247CisjZW5kaWYKIAkvKiBUaGlzIGZvcmNlcyBhIGhhcmQgbWluIG9uIHRoZSBEQ0ZDTEsgcmVxdWVzdGVkIHRvIFNNVS9QUAogCSAqIHdhdGVybWFya3MgYXJlIG5vdCBhZmZlY3RlZC4KIAkgKi8KIAl1bnNpZ25lZCBpbnQgZm9yY2VfbWluX2RjZmNsa19taHo7CisJYm9vbCBkaXNhYmxlX3RpbWluZ19zeW5jOworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQorCWJvb2wgY21faW5fYnlwYXNzOworI2VuZGlmCisJaW50IGZvcmNlX2Nsb2NrX21vZGU7LypldmVyeSBtb2RlIGNoYW5nZS4qLwogfTsKIAogc3RydWN0IGRjX2RlYnVnX2RhdGEgewpAQCAtNDA2LDYgKzQyNiw3IEBAIHN0cnVjdCBkY19waHlfYWRkcl9zcGFjZV9jb25maWcgewogCX0gZ2FydF9jb25maWc7CiAKIAlib29sIHZhbGlkOworCXVpbnQ2NF90IHBhZ2VfdGFibGVfZGVmYXVsdF9wYWdlX2FkZHI7CiB9OwogCiBzdHJ1Y3QgZGNfdmlydHVhbF9hZGRyX3NwYWNlX2NvbmZpZyB7CkBAIC01OTcsOSArNjE4LDEyIEBAIGVudW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHsKIAlUUkFOU0ZFUl9GVU5DVElPTl9VTklUWSwKIAlUUkFOU0ZFUl9GVU5DVElPTl9ITEcsCiAJVFJBTlNGRVJfRlVOQ1RJT05fSExHMTIsCi0JVFJBTlNGRVJfRlVOQ1RJT05fR0FNTUEyMgorCVRSQU5TRkVSX0ZVTkNUSU9OX0dBTU1BMjIsCisJVFJBTlNGRVJfRlVOQ1RJT05fR0FNTUEyNCwKKwlUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI2CiB9OwogCisKIHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jIHsKIAlzdHJ1Y3Qga3JlZiByZWZjb3VudDsKIAllbnVtIGRjX3RyYW5zZmVyX2Z1bmNfdHlwZSB0eXBlOwpAQCAtNjE1LDEyICs2MzksMjYgQEAgc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgewogCiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCiAKK3VuaW9uIGRjXzNkbHV0X3N0YXRlIHsKKwlzdHJ1Y3QgeworCQl1aW50MzJfdCBpbml0aWFsaXplZDoxOwkJLyppZiAzZGx1dCBpcyB3ZW50IHRocm91Z2ggY29sb3IgbW9kdWxlIGZvciBpbml0aWFsaXphdGlvbiAqLworCQl1aW50MzJfdCBybXVfaWR4X3ZhbGlkOjE7CS8qaWYgbXV4IHNldHRpbmdzIGFyZSB2YWxpZCovCisJCXVpbnQzMl90IHJtdV9tdXhfbnVtOjM7CQkvKmluZGV4IG9mIG11eCB0byB1c2UqLworCQl1aW50MzJfdCBtcGNfcm11MF9tdXg6NDsJLypzZWxlY3QgbXBjYyBvbiBtdXgsIG9uZSBvZiB0aGUgZm9sbG93aW5nIDogbXBjYzAsIG1wY2MxLCBtcGNjMiwgbXBjYzMqLworCQl1aW50MzJfdCBtcGNfcm11MV9tdXg6NDsKKwkJdWludDMyX3QgbXBjX3JtdTJfbXV4OjQ7CisJCXVpbnQzMl90IHJlc2VydmVkOjE1OworCX0gYml0czsKKwl1aW50MzJfdCByYXc7Cit9OworCiAKIHN0cnVjdCBkY18zZGx1dCB7CiAJc3RydWN0IGtyZWYgcmVmY291bnQ7CiAJc3RydWN0IHRldHJhaGVkcmFsX3BhcmFtcyBsdXRfM2Q7CiAJdWludDMyX3QgaGRyX211bHRpcGxpZXI7Ci0JYm9vbCBpbml0aWFsaXplZDsKKwlib29sIGluaXRpYWxpemVkOyAvKnJlbW92ZSBhZnRlciBkaWFnIGZpeCovCisJdW5pb24gZGNfM2RsdXRfc3RhdGUgc3RhdGU7CiAJc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKIH07CiAjZW5kaWYKQEAgLTY4Miw3ICs3MjAsNyBAQCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgewogCXN0cnVjdCByZWN0IGRzdF9yZWN0OwogCXN0cnVjdCByZWN0IGNsaXBfcmVjdDsKIAotCXVuaW9uIHBsYW5lX3NpemUgcGxhbmVfc2l6ZTsKKwlzdHJ1Y3QgcGxhbmVfc2l6ZSBwbGFuZV9zaXplOwogCXVuaW9uIGRjX3RpbGluZ19pbmZvIHRpbGluZ19pbmZvOwogCiAJc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSBkY2M7CkBAIC03MTYsNiArNzU0LDcgQEAgc3RydWN0IGRjX3BsYW5lX3N0YXRlIHsKIAlib29sIHZpc2libGU7CiAJYm9vbCBmbGlwX2ltbWVkaWF0ZTsKIAlib29sIGhvcml6b250YWxfbWlycm9yOworCWludCBsYXllcl9pbmRleDsKIAogCXVuaW9uIHN1cmZhY2VfdXBkYXRlX2ZsYWdzIHVwZGF0ZV9mbGFnczsKIAkvKiBwcml2YXRlIHRvIERDIGNvcmUgKi8KQEAgLTczMSw3ICs3NzAsNyBAQCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgewogfTsKIAogc3RydWN0IGRjX3BsYW5lX2luZm8gewotCXVuaW9uIHBsYW5lX3NpemUgcGxhbmVfc2l6ZTsKKwlzdHJ1Y3QgcGxhbmVfc2l6ZSBwbGFuZV9zaXplOwogCXVuaW9uIGRjX3RpbGluZ19pbmZvIHRpbGluZ19pbmZvOwogCXN0cnVjdCBkY19wbGFuZV9kY2NfcGFyYW0gZGNjOwogCWVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0OwpAQCAtNzQ1LDYgKzc4NCw3IEBAIHN0cnVjdCBkY19wbGFuZV9pbmZvIHsKIAlib29sIGdsb2JhbF9hbHBoYTsKIAlpbnQgIGdsb2JhbF9hbHBoYV92YWx1ZTsKIAlib29sIGlucHV0X2NzY19lbmFibGVkOworCWludCBsYXllcl9pbmRleDsKIH07CiAKIHN0cnVjdCBkY19zY2FsaW5nX2luZm8gewpAQCAtODM0LDYgKzg3NCw5IEBAIGVudW0gZGNfc3RhdHVzIGRjX3ZhbGlkYXRlX3BsYW5lKHN0cnVjdCBkYyAqZGMsIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhCiAKIHZvaWQgZ2V0X2Nsb2NrX3JlcXVpcmVtZW50c19mb3Jfc3RhdGUoc3RydWN0IGRjX3N0YXRlICpzdGF0ZSwgc3RydWN0IEFzaWNTdGF0ZUV4ICppbmZvKTsKIAorYm9vbCBkY19zZXRfZ2VuZXJpY19ncGlvX2Zvcl9zdGVyZW8oYm9vbCBlbmFibGUsCisJCXN0cnVjdCBncGlvX3NlcnZpY2UgKmdwaW9fc2VydmljZSk7CisKIC8qCiAgKiBmYXN0X3ZhbGlkYXRlOiB3ZSByZXR1cm4gYWZ0ZXIgZGV0ZXJtaW5pbmcgaWYgd2UgY2FuIHN1cHBvcnQgdGhlIG5ldyBzdGF0ZSwKICAqIGJ1dCBiZWZvcmUgd2UgcG9wdWxhdGUgdGhlIHByb2dyYW1taW5nIGluZm8KQEAgLTEwMjAsNiArMTA2Myw4IEBAIHVuc2lnbmVkIGludCBkY19nZXRfdGFyZ2V0X2JhY2tsaWdodF9wd20oc3RydWN0IGRjICpkYyk7CiAKIGJvb2wgZGNfaXNfZG1jdV9pbml0aWFsaXplZChzdHJ1Y3QgZGMgKmRjKTsKIAorZW51bSBkY19zdGF0dXMgZGNfc2V0X2Nsb2NrKHN0cnVjdCBkYyAqZGMsIGVudW0gZGNfY2xvY2tfdHlwZSBjbG9ja190eXBlLCB1aW50MzJfdCBjbGtfa2h6LCB1aW50MzJfdCBzdGVwcGluZyk7Cit2b2lkIGRjX2dldF9jbG9jayhzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2Nsb2NrX3R5cGUgY2xvY2tfdHlwZSwgc3RydWN0IGRjX2Nsb2NrX2NvbmZpZyAqY2xvY2tfY2ZnKTsKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIERTQyBJbnRlcmZhY2VzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfYmlvc190eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjX2Jpb3NfdHlwZXMuaAppbmRleCA3OGMzYjMwLi5iMWRkMGQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfYmlvc190eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY19iaW9zX3R5cGVzLmgKQEAgLTYxLDkgKzYxLDYgQEAgc3RydWN0IGRjX3ZiaW9zX2Z1bmNzIHsKIAkJc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBjb25uZWN0b3Jfb2JqZWN0X2lkLAogCQl1aW50MzJfdCBkZXZpY2VfdGFnX2luZGV4LAogCQlzdHJ1Y3QgY29ubmVjdG9yX2RldmljZV90YWdfaW5mbyAqaW5mbyk7Ci0JZW51bSBicF9yZXN1bHQgKCpnZXRfZmlybXdhcmVfaW5mbykoCi0JCXN0cnVjdCBkY19iaW9zICpiaW9zLAotCQlzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyAqaW5mbyk7CiAJZW51bSBicF9yZXN1bHQgKCpnZXRfc3ByZWFkX3NwZWN0cnVtX2luZm8pKAogCQlzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKIAkJZW51bSBhc19zaWduYWxfdHlwZSBzaWduYWwsCkBAIC0xNTIsNiArMTQ5LDggQEAgc3RydWN0IGRjX2Jpb3MgewogCXN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiAJY29uc3Qgc3RydWN0IGJpb3NfcmVnaXN0ZXJzICpyZWdzOwogCXN0cnVjdCBpbnRlZ3JhdGVkX2luZm8gKmludGVncmF0ZWRfaW5mbzsKKwlzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyBmd19pbmZvOworCWJvb2wgZndfaW5mb192YWxpZDsKIH07CiAKICNlbmRpZiAvKiBEQ19CSU9TX1RZUEVTX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY19kcF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjX2RwX3R5cGVzLmgKaW5kZXggZGZjZWM0ZC4uZWY3OWE2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjX2RwX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjX2RwX3R5cGVzLmgKQEAgLTkwLDYgKzkwLDEzIEBAIGVudW0gZGNfcG9zdF9jdXJzb3IyIHsKIAlQT1NUX0NVUlNPUjJfTUFYX0xFVkVMID0gUE9TVF9DVVJTT1IyX0xFVkVMMywKIH07CiAKK2VudW0gZGNfZHBfdHJhaW5pbmdfcGF0dGVybiB7CisJRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVFVRU5DRV8xID0gMCwKKwlEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzIsCisJRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVFVRU5DRV8zLAorCURQX1RSQUlOSU5HX1BBVFRFUk5fU0VRVUVOQ0VfNCwKK307CisKIHN0cnVjdCBkY19saW5rX3NldHRpbmdzIHsKIAllbnVtIGRjX2xhbmVfY291bnQgbGFuZV9jb3VudDsKIAllbnVtIGRjX2xpbmtfcmF0ZSBsaW5rX3JhdGU7CkBAIC0xMDksNiArMTE2LDIzIEBAIHN0cnVjdCBkY19saW5rX3RyYWluaW5nX3NldHRpbmdzIHsKIAlzdHJ1Y3QgZGNfbGFuZV9zZXR0aW5ncyBsYW5lX3NldHRpbmdzW0xBTkVfQ09VTlRfRFBfTUFYXTsKIH07CiAKK3N0cnVjdCBkY19saW5rX3RyYWluaW5nX292ZXJyaWRlcyB7CisJZW51bSBkY192b2x0YWdlX3N3aW5nICp2b2x0YWdlX3N3aW5nOworCWVudW0gZGNfcHJlX2VtcGhhc2lzICpwcmVfZW1waGFzaXM7CisJZW51bSBkY19wb3N0X2N1cnNvcjIgKnBvc3RfY3Vyc29yMjsKKworCXVpbnQxNl90ICpjcl9wYXR0ZXJuX3RpbWU7CisJdWludDE2X3QgKmVxX3BhdHRlcm5fdGltZTsKKwllbnVtIGRjX2RwX3RyYWluaW5nX3BhdHRlcm4gKnBhdHRlcm5fZm9yX2VxOworCisJZW51bSBkY19saW5rX3NwcmVhZCAqZG93bnNwcmVhZDsKKwlib29sICphbHRlcm5hdGVfc2NyYW1ibGVyX3Jlc2V0OworCWJvb2wgKmVuaGFuY2VkX2ZyYW1pbmc7CisJYm9vbCAqbXN0X2VuYWJsZTsKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAorCWJvb2wgKmZlY19lbmFibGU7CisjZW5kaWYKK307CiAKIHVuaW9uIGRwY2RfcmV2IHsKIAlzdHJ1Y3QgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfaHdfdHlwZXMuaAppbmRleCAyMmRiNTY4Li4wYjg3MDBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfaHdfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfaHdfdHlwZXMuaApAQCAtMTE1LDQyICsxMTUsNDAgQEAgc3RydWN0IHJlY3QgewogCWludCBoZWlnaHQ7CiB9OwogCi11bmlvbiBwbGFuZV9zaXplIHsKLQkvKiBHcnBoIG9yIFZpZGVvIHdpbGwgYmUgc2VsZWN0ZWQKLQkgKiBiYXNlZCBvbiBmb3JtYXQgYWJvdmU6Ci0JICogVXNlIFZpZGVvIHN0cnVjdHVyZSBpZgotCSAqIGZvcm1hdCA+PSBEYWxQaXhlbEZvcm1hdF9WaWRlb0JlZ2luCi0JICogZWxzZSB1c2UgR3JwaCBzdHJ1Y3R1cmUKK3N0cnVjdCBwbGFuZV9zaXplIHsKKwkvKiBHcmFwaGljIHN1cmZhY2UgcGl0Y2ggaW4gcGl4ZWxzLgorCSAqIEluIExJTkVBUl9HRU5FUkFMIG1vZGUsIHBpdGNoCisJICogaXMgMzIgcGl4ZWwgYWxpZ25lZC4KIAkgKi8KLQlzdHJ1Y3QgewotCQlzdHJ1Y3QgcmVjdCBzdXJmYWNlX3NpemU7Ci0JCS8qIEdyYXBoaWMgc3VyZmFjZSBwaXRjaCBpbiBwaXhlbHMuCi0JCSAqIEluIExJTkVBUl9HRU5FUkFMIG1vZGUsIHBpdGNoCi0JCSAqIGlzIDMyIHBpeGVsIGFsaWduZWQuCi0JCSAqLwotCQlpbnQgc3VyZmFjZV9waXRjaDsKLQl9IGdycGg7CisJaW50IHN1cmZhY2VfcGl0Y2g7CisJaW50IGNocm9tYV9waXRjaDsKKwlzdHJ1Y3QgcmVjdCBzdXJmYWNlX3NpemU7CisJc3RydWN0IHJlY3QgY2hyb21hX3NpemU7CiAKLQlzdHJ1Y3QgewotCQlzdHJ1Y3QgcmVjdCBsdW1hX3NpemU7Ci0JCS8qIEdyYXBoaWMgc3VyZmFjZSBwaXRjaCBpbiBwaXhlbHMuCi0JCSAqIEluIExJTkVBUl9HRU5FUkFMIG1vZGUsIHBpdGNoIGlzCi0JCSAqIDMyIHBpeGVsIGFsaWduZWQuCi0JCSAqLwotCQlpbnQgbHVtYV9waXRjaDsKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQlzdHJ1Y3QgcmVjdCBzdXJmYWNlX3NpemU7CisJCQlpbnQgc3VyZmFjZV9waXRjaDsKKwkJfSBncnBoOwogCi0JCXN0cnVjdCByZWN0IGNocm9tYV9zaXplOwotCQkvKiBHcmFwaGljIHN1cmZhY2UgcGl0Y2ggaW4gcGl4ZWxzLgotCQkgKiBJbiBMSU5FQVJfR0VORVJBTCBtb2RlLCBwaXRjaCBpcwotCQkgKiAzMiBwaXhlbCBhbGlnbmVkLgotCQkgKi8KLQkJaW50IGNocm9tYV9waXRjaDsKLQl9IHZpZGVvOworCQlzdHJ1Y3QgeworCQkJc3RydWN0IHJlY3QgbHVtYV9zaXplOworCQkJaW50IGx1bWFfcGl0Y2g7CisJCQlzdHJ1Y3QgcmVjdCBjaHJvbWFfc2l6ZTsKKwkJCWludCBjaHJvbWFfcGl0Y2g7CisJCX0gdmlkZW87CisJfTsKIH07CiAKIHN0cnVjdCBkY19wbGFuZV9kY2NfcGFyYW0gewogCWJvb2wgZW5hYmxlOwogCisJaW50IG1ldGFfcGl0Y2g7CisJYm9vbCBpbmRlcGVuZGVudF82NGJfYmxrczsKKworCWludCBtZXRhX3BpdGNoX2M7CisJYm9vbCBpbmRlcGVuZGVudF82NGJfYmxrc19jOworCiAJdW5pb24gewogCQlzdHJ1Y3QgewogCQkJaW50IG1ldGFfcGl0Y2g7CkBAIC00ODIsNyArNDgwLDYgQEAgc3RydWN0IGRjX2dhbW1hIHsKIAkgKiBpc19sb2dpY2FsX2lkZW50aXR5IGluZGljYXRlcyB0aGUgZ2l2ZW4gZ2FtbWEgcmFtcCByZWdhcmRsZXNzIG9mIHR5cGUgaXMgaWRlbnRpdHkuCiAJICovCiAJYm9vbCBpc19pZGVudGl0eTsKLQlib29sIGlzX2xvZ2ljYWxfaWRlbnRpdHk7CiB9OwogCiAvKiBVc2VkIGJ5IGJvdGggaXBwIGFtZCBvcHAgZnVuY3Rpb25zKi8KQEAgLTUxOSw3ICs1MTYsOCBAQCB1bmlvbiBkY19jdXJzb3JfYXR0cmlidXRlX2ZsYWdzIHsKIAkJdWludDMyX3QgSU5WRVJUX1BJWEVMX0RBVEE6MTsKIAkJdWludDMyX3QgWkVST19FWFBBTlNJT046MTsKIAkJdWludDMyX3QgTUlOX01BWF9JTlZFUlQ6MTsKLQkJdWludDMyX3QgUkVTRVJWRUQ6MjU7CisJCXVpbnQzMl90IEVOQUJMRV9DVVJTT1JfREVHQU1NQToxOworCQl1aW50MzJfdCBSRVNFUlZFRDoyNDsKIAl9IGJpdHM7CiAJdWludDMyX3QgdmFsdWU7CiB9OwpAQCAtNjE1LDYgKzYxMyw3IEBAIHN0cnVjdCBzY2FsaW5nX3RhcHMgewogCXVpbnQzMl90IGhfdGFwczsKIAl1aW50MzJfdCB2X3RhcHNfYzsKIAl1aW50MzJfdCBoX3RhcHNfYzsKKwlib29sIGludGVnZXJfc2NhbGluZzsKIH07CiAKIGVudW0gZGNfdGltaW5nX3N0YW5kYXJkIHsKQEAgLTc1OCw2ICs3NTcsOCBAQCBzdHJ1Y3QgY3J0Y190cmlnZ2VyX2luZm8gewogc3RydWN0IGRjX2NydGNfdGltaW5nX2FkanVzdCB7CiAJdWludDMyX3Qgdl90b3RhbF9taW47CiAJdWludDMyX3Qgdl90b3RhbF9tYXg7CisJdWludDMyX3Qgdl90b3RhbF9taWQ7CisJdWludDMyX3Qgdl90b3RhbF9taWRfZnJhbWVfbnVtOwogfTsKIAogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfbGluay5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjX2xpbmsuaAppbmRleCA2ZjBiODAxLi45ZWE3NWRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfbGluay5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY19saW5rLmgKQEAgLTgzLDYgKzgzLDggQEAgc3RydWN0IGRjX2xpbmsgewogCWJvb2wgaXNfaHBkX2ZpbHRlcl9kaXNhYmxlZDsKIAlib29sIGRwX3NzX29mZjsKIAlib29sIGxpbmtfc3RhdGVfdmFsaWQ7CisJYm9vbCBhdXhfYWNjZXNzX2Rpc2FibGVkOworCWJvb2wgc3luY19sdF9pbl9wcm9ncmVzczsKIAogCS8qIGNhcHMgaXMgdGhlIHNhbWUgYXMgcmVwb3J0ZWRfbGlua19jYXAuIGxpbmtfdHJhaW5nIHVzZQogCSAqIHJlcG9ydGVkX2xpbmtfY2FwLiBXaWxsIGNsZWFuIHVwLiAgVE9ETwpAQCAtOTIsNiArOTQsNyBAQCBzdHJ1Y3QgZGNfbGluayB7CiAJc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgY3VyX2xpbmtfc2V0dGluZ3M7CiAJc3RydWN0IGRjX2xhbmVfc2V0dGluZ3MgY3VyX2xhbmVfc2V0dGluZzsKIAlzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyBwcmVmZXJyZWRfbGlua19zZXR0aW5nOworCXN0cnVjdCBkY19saW5rX3RyYWluaW5nX292ZXJyaWRlcyBwcmVmZXJyZWRfdHJhaW5pbmdfc2V0dGluZ3M7CiAKIAl1aW50OF90IGRkY19od19pbnN0OwogCkBAIC0yMTcsMTEgKzIyMCwyNCBAQCB2b2lkIGRjX2xpbmtfZHBfc2V0X2RyaXZlX3NldHRpbmdzKAogCXN0cnVjdCBkY19saW5rICpsaW5rLAogCXN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzICpsdF9zZXR0aW5ncyk7CiAKK2Jvb2wgZGNfbGlua19kcF9wZXJmb3JtX2xpbmtfdHJhaW5pbmdfc2tpcF9hdXgoCisJc3RydWN0IGRjX2xpbmsgKmxpbmssCisJY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZyk7CisKIGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgZGNfbGlua19kcF9wZXJmb3JtX2xpbmtfdHJhaW5pbmcoCiAJc3RydWN0IGRjX2xpbmsgKmxpbmssCiAJY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKIAlib29sIHNraXBfdmlkZW9fcGF0dGVybik7CiAKK2Jvb2wgZGNfbGlua19kcF9zeW5jX2x0X2JlZ2luKHN0cnVjdCBkY19saW5rICpsaW5rKTsKKworZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBkY19saW5rX2RwX3N5bmNfbHRfYXR0ZW1wdCgKKwlzdHJ1Y3QgZGNfbGluayAqbGluaywKKwlzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5nLAorCXN0cnVjdCBkY19saW5rX3RyYWluaW5nX292ZXJyaWRlcyAqbHRfc2V0dGluZ3MpOworCitib29sIGRjX2xpbmtfZHBfc3luY19sdF9lbmQoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJvb2wgbGlua19kb3duKTsKKwogdm9pZCBkY19saW5rX2RwX2VuYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspOwogCiB2b2lkIGRjX2xpbmtfZHBfZGlzYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspOwpAQCAtMjUxLDYgKzI2NywxMSBAQCB2b2lkIGRjX2xpbmtfcGVyZm9ybV9saW5rX3RyYWluaW5nKHN0cnVjdCBkYyAqZGMsCiB2b2lkIGRjX2xpbmtfc2V0X3ByZWZlcnJlZF9saW5rX3NldHRpbmdzKHN0cnVjdCBkYyAqZGMsCiAJCQkJCSBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5nLAogCQkJCQkgc3RydWN0IGRjX2xpbmsgKmxpbmspOwordm9pZCBkY19saW5rX3NldF9wcmVmZXJyZWRfdHJhaW5pbmdfc2V0dGluZ3Moc3RydWN0IGRjICpkYywKKwkJCQkJc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKKwkJCQkJc3RydWN0IGRjX2xpbmtfdHJhaW5pbmdfb3ZlcnJpZGVzICpsdF9vdmVycmlkZXMsCisJCQkJCXN0cnVjdCBkY19saW5rICpsaW5rLAorCQkJCQlib29sIHNraXBfaW1tZWRpYXRlX3JldHJhaW4pOwogdm9pZCBkY19saW5rX2VuYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspOwogdm9pZCBkY19saW5rX2Rpc2FibGVfaHBkKGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsKIHZvaWQgZGNfbGlua19zZXRfdGVzdF9wYXR0ZXJuKHN0cnVjdCBkY19saW5rICpsaW5rLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaAppbmRleCA2ZWFiYjY0Li5iMjczNzM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaApAQCAtMjAyLDYgKzIwMiw3IEBAIHN0cnVjdCBkY19wYW5lbF9wYXRjaCB7CiAJdW5zaWduZWQgaW50IGRwcG93ZXJ1cF9kZWxheTsKIAl1bnNpZ25lZCBpbnQgZXh0cmFfdDEyX21zOwogCXVuc2lnbmVkIGludCBleHRyYV9kZWxheV9iYWNrbGlnaHRfb2ZmOworCXVuc2lnbmVkIGludCBleHRyYV90N19tczsKIH07CiAKIHN0cnVjdCBkY19lZGlkX2NhcHMgewpAQCAtNzI1LDYgKzcyNiwxOSBAQCBzdHJ1Y3QgQXNpY1N0YXRlRXggewogCXVuc2lnbmVkIGludCBwaHlDbG9jazsKIH07CiAKKworZW51bSBkY19jbG9ja190eXBlIHsKKwlEQ19DTE9DS19UWVBFX0RJU1BDTEsgPSAwLAorCURDX0NMT0NLX1RZUEVfRFBQQ0xLICAgICAgICA9IDEsCit9OworCitzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnIHsKKwl1aW50MzJfdCBtYXhfY2xvY2tfa2h6OworCXVpbnQzMl90IG1pbl9jbG9ja19raHo7CisJdWludDMyX3QgYndfcmVxdWlyZXF1aXJlZF9jbG9ja19raHo7CisJdWludDMyX3QgY3VycmVudF9jbG9ja19raHo7LypjdXJyZW50IGNsb2NrIGluIHVzZSovCit9OworCiAjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKIC8qIERTQyBEUENEIGNhcGFiaWxpdGllcyAqLwogdW5pb24gZHNjX3NsaWNlX2NhcHMxIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9hdWRpby5jCmluZGV4IDRhMTBhNWQuLjVhMzU0OTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2F1ZGlvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfYXVkaW8uYwpAQCAtMTQ1LDIwICsxNDUsMjAgQEAgc3RhdGljIHZvaWQgY2hlY2tfYXVkaW9fYmFuZHdpZHRoX2hkbWkoCiAJaWYgKGNoYW5uZWxfY291bnQgPiAyKSB7CiAKIAkJLyogQmFzZWQgb24gSERNSSBzcGVjIDEuMyBUYWJsZSA3LjUgKi8KLQkJaWYgKChjcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9jayA8PSAyNzAwMCkgJiYKKwkJaWYgKChjcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9ja18xMDBIeiA8PSAyNzAwMDApICYmCiAJCShjcnRjX2luZm8tPnZfYWN0aXZlIDw9IDU3NikgJiYKIAkJIShjcnRjX2luZm8tPmludGVybGFjZWQpICYmCiAJCSEoY3J0Y19pbmZvLT5waXhlbF9yZXBldGl0aW9uID09IDIgfHwKIAkJY3J0Y19pbmZvLT5waXhlbF9yZXBldGl0aW9uID09IDQpKSB7CiAJCQlsaW1pdF9mcmVxX3RvXzQ4X2toeiA9IHRydWU7CiAKLQkJfSBlbHNlIGlmICgoY3J0Y19pbmZvLT5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2sgPD0gMjcwMDApICYmCisJCX0gZWxzZSBpZiAoKGNydGNfaW5mby0+cmVxdWVzdGVkX3BpeGVsX2Nsb2NrXzEwMEh6IDw9IDI3MDAwMCkgJiYKIAkJCQkoY3J0Y19pbmZvLT52X2FjdGl2ZSA8PSA1NzYpICYmCiAJCQkJKGNydGNfaW5mby0+aW50ZXJsYWNlZCkgJiYKIAkJCQkoY3J0Y19pbmZvLT5waXhlbF9yZXBldGl0aW9uID09IDIpKSB7CiAJCQlsaW1pdF9mcmVxX3RvXzg4XzJfa2h6ID0gdHJ1ZTsKIAotCQl9IGVsc2UgaWYgKChjcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9jayA8PSA1NDAwMCkgJiYKKwkJfSBlbHNlIGlmICgoY3J0Y19pbmZvLT5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2tfMTAwSHogPD0gNTQwMDAwKSAmJgogCQkJCShjcnRjX2luZm8tPnZfYWN0aXZlIDw9IDU3NikgJiYKIAkJCQkhKGNydGNfaW5mby0+aW50ZXJsYWNlZCkpIHsKIAkJCWxpbWl0X2ZyZXFfdG9fMTc0XzRfa2h6ID0gdHJ1ZTsKQEAgLTYxMyw2ICs2MTMsOCBAQCB2b2lkIGRjZV9hdWRfYXpfY29uZmlndXJlKAogCiAJQVpfUkVHX1dSSVRFKEFaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xLAogCQl2YWx1ZSk7CisJRENfTE9HX0hXX0FVRElPKCJcblx0QVVESU86YXpfY29uZmlndXJlOiBpbmRleDogJXUgZGF0YSwgMHgleCwgZGlzcGxheU5hbWUgJXM6IFxuIiwKKwkJYXVkaW8tPmluc3QsIHZhbHVlLCBhdWRpb19pbmZvLT5kaXNwbGF5X25hbWUpOwogCiAJLyoKIAkqd3JpdGUgdGhlIHBvcnQgSUQ6CkBAIC03MzcsOCArNzM5LDggQEAgdm9pZCBkY2VfYXVkX2F6X2NvbmZpZ3VyZSgKIAogLyogc2VhcmNoIHBpeGVsIGNsb2NrIHZhbHVlIGZvciBBemFsaWEgSERNSSBBdWRpbyAqLwogc3RhdGljIHZvaWQgZ2V0X2F6YWxpYV9jbG9ja19pbmZvX2hkbWkoCi0JdWludDMyX3QgY3J0Y19waXhlbF9jbG9ja19pbl9raHosCi0JdWludDMyX3QgYWN0dWFsX3BpeGVsX2Nsb2NrX2luX2toeiwKKwl1aW50MzJfdCBjcnRjX3BpeGVsX2Nsb2NrXzEwMGh6LAorCXVpbnQzMl90IGFjdHVhbF9waXhlbF9jbG9ja18xMDBIeiwKIAlzdHJ1Y3QgYXphbGlhX2Nsb2NrX2luZm8gKmF6YWxpYV9jbG9ja19pbmZvKQogewogCS8qIGF1ZGlvX2R0b19waGFzZT0gMjQgKiAxMCwwMDA7CkBAIC03NDksMTEgKzc1MSwxMSBAQCBzdGF0aWMgdm9pZCBnZXRfYXphbGlhX2Nsb2NrX2luZm9faGRtaSgKIAkvKiBhdWRpb19kdG9fbW9kdWxlID0gUENMS0ZyZXF1ZW5jeSAqIDEwLDAwMDsKIAkgKiAgW2toel0gLT4gWzEwMEh6XSAqLwogCWF6YWxpYV9jbG9ja19pbmZvLT5hdWRpb19kdG9fbW9kdWxlID0KLQkJCWFjdHVhbF9waXhlbF9jbG9ja19pbl9raHogKiAxMDsKKwkJCWFjdHVhbF9waXhlbF9jbG9ja18xMDBIejsKIH0KIAogc3RhdGljIHZvaWQgZ2V0X2F6YWxpYV9jbG9ja19pbmZvX2RwKAotCXVpbnQzMl90IHJlcXVlc3RlZF9waXhlbF9jbG9ja19pbl9raHosCisJdWludDMyX3QgcmVxdWVzdGVkX3BpeGVsX2Nsb2NrXzEwMEh6LAogCWNvbnN0IHN0cnVjdCBhdWRpb19wbGxfaW5mbyAqcGxsX2luZm8sCiAJc3RydWN0IGF6YWxpYV9jbG9ja19pbmZvICphemFsaWFfY2xvY2tfaW5mbykKIHsKQEAgLTc5MiwxNSArNzk0LDE1IEBAIHZvaWQgZGNlX2F1ZF93YWxsX2R0b19zZXR1cCgKIAogCQkvKiBjYWxjdWxhdGUgRFRPIHNldHRpbmdzICovCiAJCWdldF9hemFsaWFfY2xvY2tfaW5mb19oZG1pKAotCQkJY3J0Y19pbmZvLT5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2ssCi0JCQljcnRjX2luZm8tPmNhbGN1bGF0ZWRfcGl4ZWxfY2xvY2ssCisJCQljcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9ja18xMDBIeiwKKwkJCWNydGNfaW5mby0+Y2FsY3VsYXRlZF9waXhlbF9jbG9ja18xMDBIeiwKIAkJCSZjbG9ja19pbmZvKTsKIAotCQlEQ19MT0dfSFdfQVVESU8oIlxuJXM6SW5wdXQ6OnJlcXVlc3RlZF9waXhlbF9jbG9jayA9ICVkIlwKLQkJCQkiY2FsY3VsYXRlZF9waXhlbF9jbG9jayA9JWRcbiJcCisJCURDX0xPR19IV19BVURJTygiXG4lczpJbnB1dDo6cmVxdWVzdGVkX3BpeGVsX2Nsb2NrXzEwMEh6ID0gJWQiXAorCQkJCSJjYWxjdWxhdGVkX3BpeGVsX2Nsb2NrXzEwMEh6ID0lZFxuIlwKIAkJCQkiYXVkaW9fZHRvX21vZHVsZSA9ICVkIGF1ZGlvX2R0b19waGFzZSA9JWQgXG5cbiIsIF9fZnVuY19fLFwKLQkJCQljcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9jayxcCi0JCQkJY3J0Y19pbmZvLT5jYWxjdWxhdGVkX3BpeGVsX2Nsb2NrLFwKKwkJCQljcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9ja18xMDBIeixcCisJCQkJY3J0Y19pbmZvLT5jYWxjdWxhdGVkX3BpeGVsX2Nsb2NrXzEwMEh6LFwKIAkJCQljbG9ja19pbmZvLmF1ZGlvX2R0b19tb2R1bGUsXAogCQkJCWNsb2NrX2luZm8uYXVkaW9fZHRvX3BoYXNlKTsKIApAQCAtODMzLDcgKzgzNSw3IEBAIHZvaWQgZGNlX2F1ZF93YWxsX2R0b19zZXR1cCgKIAogCQljYWxjdWxhdGUgRFRPIHNldHRpbmdzICovCiAJCWdldF9hemFsaWFfY2xvY2tfaW5mb19kcCgKLQkJCWNydGNfaW5mby0+cmVxdWVzdGVkX3BpeGVsX2Nsb2NrLAorCQkJY3J0Y19pbmZvLT5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2tfMTAwSHosCiAJCQlwbGxfaW5mbywKIAkJCSZjbG9ja19pbmZvKTsKIApAQCAtOTIyLDcgKzkyNCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXVkaW9fZnVuY3MgZnVuY3MgPSB7CiAJLmF6X2NvbmZpZ3VyZSA9IGRjZV9hdWRfYXpfY29uZmlndXJlLAogCS5kZXN0cm95ID0gZGNlX2F1ZF9kZXN0cm95LAogfTsKLQogdm9pZCBkY2VfYXVkX2Rlc3Ryb3koc3RydWN0IGF1ZGlvICoqYXVkaW8pCiB7CiAJc3RydWN0IGRjZV9hdWRpbyAqYXVkID0gRENFX0FVRCgqYXVkaW8pOwpAQCAtOTM2LDcgKzkzNyw3IEBAIHN0cnVjdCBhdWRpbyAqZGNlX2F1ZGlvX2NyZWF0ZSgKIAkJdW5zaWduZWQgaW50IGluc3QsCiAJCWNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fcmVnaXN0ZXJzICpyZWcsCiAJCWNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fc2hpZnQgKnNoaWZ0cywKLQkJY29uc3Qgc3RydWN0IGRjZV9hZHVpb19tYXNrICptYXNrcworCQljb25zdCBzdHJ1Y3QgZGNlX2F1ZGlvX21hc2sgKm1hc2tzCiAJCSkKIHsKIAlzdHJ1Y3QgZGNlX2F1ZGlvICphdWRpbyA9IGt6YWxsb2Moc2l6ZW9mKCphdWRpbyksIEdGUF9LRVJORUwpOwpAQCAtOTUzLDcgKzk1NCw2IEBAIHN0cnVjdCBhdWRpbyAqZGNlX2F1ZGlvX2NyZWF0ZSgKIAlhdWRpby0+cmVncyA9IHJlZzsKIAlhdWRpby0+c2hpZnRzID0gc2hpZnRzOwogCWF1ZGlvLT5tYXNrcyA9IG1hc2tzOwotCiAJcmV0dXJuICZhdWRpby0+YmFzZTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfYXVkaW8uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2F1ZGlvLmgKaW5kZXggYTBkNTcyNC4uMTM5MmZhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfYXVkaW8uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9hdWRpby5oCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RydWN0IGRjZV9hdWRpb19zaGlmdCB7CiAJdWludDMyX3QgRENDR19BVURJT19EVE8xX1VTRV81MTJGQlJfRFRPOwogfTsKIAotc3RydWN0IGRjZV9hZHVpb19tYXNrIHsKK3N0cnVjdCBkY2VfYXVkaW9fbWFzayB7CiAJdWludDMyX3QgQVpBTElBX0VORFBPSU5UX1JFR19JTkRFWDsKIAl1aW50MzJfdCBBWkFMSUFfRU5EUE9JTlRfUkVHX0RBVEE7CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdHJ1Y3QgZGNlX2F1ZGlvIHsKIAlzdHJ1Y3QgYXVkaW8gYmFzZTsKIAljb25zdCBzdHJ1Y3QgZGNlX2F1ZGlvX3JlZ2lzdGVycyAqcmVnczsKIAljb25zdCBzdHJ1Y3QgZGNlX2F1ZGlvX3NoaWZ0ICpzaGlmdHM7Ci0JY29uc3Qgc3RydWN0IGRjZV9hZHVpb19tYXNrICptYXNrczsKKwljb25zdCBzdHJ1Y3QgZGNlX2F1ZGlvX21hc2sgKm1hc2tzOwogfTsKIAogc3RydWN0IGF1ZGlvICpkY2VfYXVkaW9fY3JlYXRlKApAQCAtMTMzLDcgKzEzMyw3IEBAIHN0cnVjdCBhdWRpbyAqZGNlX2F1ZGlvX2NyZWF0ZSgKIAkJdW5zaWduZWQgaW50IGluc3QsCiAJCWNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fcmVnaXN0ZXJzICpyZWcsCiAJCWNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fc2hpZnQgKnNoaWZ0cywKLQkJY29uc3Qgc3RydWN0IGRjZV9hZHVpb19tYXNrICptYXNrcyk7CisJCWNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fbWFzayAqbWFza3MpOwogCiB2b2lkIGRjZV9hdWRfZGVzdHJveShzdHJ1Y3QgYXVkaW8gKiphdWRpbyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2F1eC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfYXV4LmMKaW5kZXggZjIyOTVlNy4uYzNmOWY0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfYXV4LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfYXV4LmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJjb3JlX3R5cGVzLmgiCiAjaW5jbHVkZSAiZGNlX2F1eC5oIgogI2luY2x1ZGUgImRjZS9kY2VfMTFfMF9zaF9tYXNrLmgiCisjaW5jbHVkZSAiZG1fZXZlbnRfbG9nLmgiCiAKICNkZWZpbmUgQ1RYIFwKIAlhdXgxMTAtPmJhc2UuY3R4CkBAIC0yNTIsNiArMjUzLDggQEAgc3RhdGljIHZvaWQgc3VibWl0X2NoYW5uZWxfcmVxdWVzdCgKIAl9CiAKIAlSRUdfVVBEQVRFKEFVWF9TV19DT05UUk9MLCBBVVhfU1dfR08sIDEpOworCUVWRU5UX0xPR19BVVhfUkVRKGVuZ2luZS0+ZGRjLT5waW5fZGF0YS0+ZW4sIEVWRU5UX0xPR19BVVhfT1JJR0lOX05BVElWRSwKKwkJCQkJcmVxdWVzdC0+YWN0aW9uLCByZXF1ZXN0LT5hZGRyZXNzLCByZXF1ZXN0LT5sZW5ndGgsIHJlcXVlc3QtPmRhdGEpOwogfQogCiBzdGF0aWMgaW50IHJlYWRfY2hhbm5lbF9yZXBseShzdHJ1Y3QgZGNlX2F1eCAqZW5naW5lLCB1aW50MzJfdCBzaXplLApAQCAtNDgwLDkgKzQ4MywxMyBAQCBpbnQgZGNlX2F1eF90cmFuc2Zlcl9yYXcoc3RydWN0IGRkY19zZXJ2aWNlICpkZGMsCiAJKm9wZXJhdGlvbl9yZXN1bHQgPSBnZXRfY2hhbm5lbF9zdGF0dXMoYXV4X2VuZ2luZSwgJnJldHVybmVkX2J5dGVzKTsKIAogCWlmICgqb3BlcmF0aW9uX3Jlc3VsdCA9PSBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fU1VDQ0VFREVEKSB7Ci0JCXJlYWRfY2hhbm5lbF9yZXBseShhdXhfZW5naW5lLCBwYXlsb2FkLT5sZW5ndGgsCisJCWludCBieXRlc19yZXBsaWVkID0gMDsKKwkJYnl0ZXNfcmVwbGllZCA9IHJlYWRfY2hhbm5lbF9yZXBseShhdXhfZW5naW5lLCBwYXlsb2FkLT5sZW5ndGgsCiAJCQkJCSBwYXlsb2FkLT5kYXRhLCBwYXlsb2FkLT5yZXBseSwKIAkJCQkJICZzdGF0dXMpOworCQlFVkVOVF9MT0dfQVVYX1JFUChhdXhfZW5naW5lLT5kZGMtPnBpbl9kYXRhLT5lbiwKKwkJCQkJRVZFTlRfTE9HX0FVWF9PUklHSU5fTkFUSVZFLCAqcGF5bG9hZC0+cmVwbHksCisJCQkJCWJ5dGVzX3JlcGxpZWQsIHBheWxvYWQtPmRhdGEpOwogCQlyZXMgPSByZXR1cm5lZF9ieXRlczsKIAl9IGVsc2UgewogCQlyZXMgPSAtMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmMKaW5kZXggNWZhZTc3ZS4uZjc4N2E2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmMKQEAgLTEwNjEsNyArMTA2MSw4IEBAIHN0YXRpYyBib29sIGRjbjIwX3Byb2dyYW1fcGl4X2NsaygKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xvY2tfc291cmNlX2Z1bmNzIGRjbjIwX2Nsa19zcmNfZnVuY3MgPSB7CiAJLmNzX3Bvd2VyX2Rvd24gPSBkY2UxMTBfY2xvY2tfc291cmNlX3Bvd2VyX2Rvd24sCiAJLnByb2dyYW1fcGl4X2NsayA9IGRjbjIwX3Byb2dyYW1fcGl4X2NsaywKLQkuZ2V0X3BpeF9jbGtfZGl2aWRlcnMgPSBkY2UxMTJfZ2V0X3BpeF9jbGtfZGl2aWRlcnMKKwkuZ2V0X3BpeF9jbGtfZGl2aWRlcnMgPSBkY2UxMTJfZ2V0X3BpeF9jbGtfZGl2aWRlcnMsCisJLmdldF9waXhlbF9jbGtfZnJlcXVlbmN5XzEwMGh6ID0gZ2V0X3BpeGVsX2Nsa19mcmVxdWVuY3lfMTAwaHoKIH07CiAjZW5kaWYKIApAQCAtMTIzNCwzNyArMTIzNSwzNiBAQCBzdGF0aWMgYm9vbCBjYWxjX3BsbF9tYXhfdmNvX2NvbnN0cnVjdCgKIAkJCXN0cnVjdCBjYWxjX3BsbF9jbG9ja19zb3VyY2VfaW5pdF9kYXRhICppbml0X2RhdGEpCiB7CiAJdWludDMyX3QgaTsKLQlzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyBmd19pbmZvID0geyB7IDAgfSB9OworCXN0cnVjdCBkY19maXJtd2FyZV9pbmZvICpmd19pbmZvOwogCWlmIChjYWxjX3BsbF9jcyA9PSBOVUxMIHx8CiAJCQlpbml0X2RhdGEgPT0gTlVMTCB8fAogCQkJaW5pdF9kYXRhLT5icCA9PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoaW5pdF9kYXRhLT5icC0+ZnVuY3MtPmdldF9maXJtd2FyZV9pbmZvKAotCQkJCWluaXRfZGF0YS0+YnAsCi0JCQkJJmZ3X2luZm8pICE9IEJQX1JFU1VMVF9PSykKKwlpZiAoIWluaXRfZGF0YS0+YnAtPmZ3X2luZm9fdmFsaWQpCiAJCXJldHVybiBmYWxzZTsKIAorCWZ3X2luZm8gPSAmaW5pdF9kYXRhLT5icC0+ZndfaW5mbzsKIAljYWxjX3BsbF9jcy0+Y3R4ID0gaW5pdF9kYXRhLT5jdHg7Ci0JY2FsY19wbGxfY3MtPnJlZl9mcmVxX2toeiA9IGZ3X2luZm8ucGxsX2luZm8uY3J5c3RhbF9mcmVxdWVuY3k7CisJY2FsY19wbGxfY3MtPnJlZl9mcmVxX2toeiA9IGZ3X2luZm8tPnBsbF9pbmZvLmNyeXN0YWxfZnJlcXVlbmN5OwogCWNhbGNfcGxsX2NzLT5taW5fdmNvX2toeiA9Ci0JCQlmd19pbmZvLnBsbF9pbmZvLm1pbl9vdXRwdXRfcHhsX2Nsa19wbGxfZnJlcXVlbmN5OworCQkJZndfaW5mby0+cGxsX2luZm8ubWluX291dHB1dF9weGxfY2xrX3BsbF9mcmVxdWVuY3k7CiAJY2FsY19wbGxfY3MtPm1heF92Y29fa2h6ID0KLQkJCWZ3X2luZm8ucGxsX2luZm8ubWF4X291dHB1dF9weGxfY2xrX3BsbF9mcmVxdWVuY3k7CisJCQlmd19pbmZvLT5wbGxfaW5mby5tYXhfb3V0cHV0X3B4bF9jbGtfcGxsX2ZyZXF1ZW5jeTsKIAogCWlmIChpbml0X2RhdGEtPm1heF9vdmVycmlkZV9pbnB1dF9weGxfY2xrX3BsbF9mcmVxX2toeiAhPSAwKQogCQljYWxjX3BsbF9jcy0+bWF4X3BsbF9pbnB1dF9mcmVxX2toeiA9CiAJCQlpbml0X2RhdGEtPm1heF9vdmVycmlkZV9pbnB1dF9weGxfY2xrX3BsbF9mcmVxX2toejsKIAllbHNlCiAJCWNhbGNfcGxsX2NzLT5tYXhfcGxsX2lucHV0X2ZyZXFfa2h6ID0KLQkJCWZ3X2luZm8ucGxsX2luZm8ubWF4X2lucHV0X3B4bF9jbGtfcGxsX2ZyZXF1ZW5jeTsKKwkJCWZ3X2luZm8tPnBsbF9pbmZvLm1heF9pbnB1dF9weGxfY2xrX3BsbF9mcmVxdWVuY3k7CiAKIAlpZiAoaW5pdF9kYXRhLT5taW5fb3ZlcnJpZGVfaW5wdXRfcHhsX2Nsa19wbGxfZnJlcV9raHogIT0gMCkKIAkJY2FsY19wbGxfY3MtPm1pbl9wbGxfaW5wdXRfZnJlcV9raHogPQogCQkJaW5pdF9kYXRhLT5taW5fb3ZlcnJpZGVfaW5wdXRfcHhsX2Nsa19wbGxfZnJlcV9raHo7CiAJZWxzZQogCQljYWxjX3BsbF9jcy0+bWluX3BsbF9pbnB1dF9mcmVxX2toeiA9Ci0JCQlmd19pbmZvLnBsbF9pbmZvLm1pbl9pbnB1dF9weGxfY2xrX3BsbF9mcmVxdWVuY3k7CisJCQlmd19pbmZvLT5wbGxfaW5mby5taW5faW5wdXRfcHhsX2Nsa19wbGxfZnJlcXVlbmN5OwogCiAJY2FsY19wbGxfY3MtPm1pbl9waXhfY2xvY2tfcGxsX3Bvc3RfZGl2aWRlciA9CiAJCQlpbml0X2RhdGEtPm1pbl9waXhfY2xrX3BsbF9wb3N0X2RpdmlkZXI7CkBAIC0xMzE2LDcgKzEzMTYsNiBAQCBib29sIGRjZTExMF9jbGtfc3JjX2NvbnN0cnVjdCgKIAljb25zdCBzdHJ1Y3QgZGNlMTEwX2Nsa19zcmNfc2hpZnQgKmNzX3NoaWZ0LAogCWNvbnN0IHN0cnVjdCBkY2UxMTBfY2xrX3NyY19tYXNrICpjc19tYXNrKQogewotCXN0cnVjdCBkY19maXJtd2FyZV9pbmZvIGZ3X2luZm8gPSB7IHsgMCB9IH07CiAJc3RydWN0IGNhbGNfcGxsX2Nsb2NrX3NvdXJjZV9pbml0X2RhdGEgY2FsY19wbGxfY3NfaW5pdF9kYXRhX2hkbWk7CiAJc3RydWN0IGNhbGNfcGxsX2Nsb2NrX3NvdXJjZV9pbml0X2RhdGEgY2FsY19wbGxfY3NfaW5pdF9kYXRhOwogCkBAIC0xMzI5LDE0ICsxMzI4LDEyIEBAIGJvb2wgZGNlMTEwX2Nsa19zcmNfY29uc3RydWN0KAogCWNsa19zcmMtPmNzX3NoaWZ0ID0gY3Nfc2hpZnQ7CiAJY2xrX3NyYy0+Y3NfbWFzayA9IGNzX21hc2s7CiAKLQlpZiAoY2xrX3NyYy0+Ymlvcy0+ZnVuY3MtPmdldF9maXJtd2FyZV9pbmZvKAotCQkJY2xrX3NyYy0+YmlvcywgJmZ3X2luZm8pICE9IEJQX1JFU1VMVF9PSykgeworCWlmICghY2xrX3NyYy0+Ymlvcy0+ZndfaW5mb192YWxpZCkgewogCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOwogCQlnb3RvIHVuZXhwZWN0ZWRfZmFpbHVyZTsKIAl9CiAKLQljbGtfc3JjLT5leHRfY2xrX2toeiA9Ci0JCQlmd19pbmZvLmV4dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVxdWVuY3lfZm9yX2RwOworCWNsa19zcmMtPmV4dF9jbGtfa2h6ID0gY2xrX3NyYy0+Ymlvcy0+ZndfaW5mby5leHRlcm5hbF9jbG9ja19zb3VyY2VfZnJlcXVlbmN5X2Zvcl9kcDsKIAogCS8qIHN0cnVjdHVyZSBub3JtYWxseSB1c2VkIHdpdGggUExMIHJhbmdlcyBmcm9tIEFUT01CSU9TOyBEUyBvbiBieSBkZWZhdWx0ICovCiAJY2FsY19wbGxfY3NfaW5pdF9kYXRhLmJwID0gYmlvczsKQEAgLTEzNzYsNyArMTM3Myw3IEBAIGJvb2wgZGNlMTEwX2Nsa19zcmNfY29uc3RydWN0KAogCQkJRlJBQ1RfRkJfRElWSURFUl9ERUNfUE9JTlRTX01BWF9OVU07CiAJY2FsY19wbGxfY3NfaW5pdF9kYXRhX2hkbWkuY3R4ID0gY3R4OwogCi0JY2xrX3NyYy0+cmVmX2ZyZXFfa2h6ID0gZndfaW5mby5wbGxfaW5mby5jcnlzdGFsX2ZyZXF1ZW5jeTsKKwljbGtfc3JjLT5yZWZfZnJlcV9raHogPSBjbGtfc3JjLT5iaW9zLT5md19pbmZvLnBsbF9pbmZvLmNyeXN0YWxfZnJlcXVlbmN5OwogCiAJaWYgKGNsa19zcmMtPmJhc2UuaWQgPT0gQ0xPQ0tfU09VUkNFX0lEX0VYVEVSTkFMKQogCQlyZXR1cm4gdHJ1ZTsKQEAgLTE0MTksOCArMTQxNiw2IEBAIGJvb2wgZGNlMTEyX2Nsa19zcmNfY29uc3RydWN0KAogCWNvbnN0IHN0cnVjdCBkY2UxMTBfY2xrX3NyY19zaGlmdCAqY3Nfc2hpZnQsCiAJY29uc3Qgc3RydWN0IGRjZTExMF9jbGtfc3JjX21hc2sgKmNzX21hc2spCiB7Ci0Jc3RydWN0IGRjX2Zpcm13YXJlX2luZm8gZndfaW5mbyA9IHsgeyAwIH0gfTsKLQogCWNsa19zcmMtPmJhc2UuY3R4ID0gY3R4OwogCWNsa19zcmMtPmJpb3MgPSBiaW9zOwogCWNsa19zcmMtPmJhc2UuaWQgPSBpZDsKQEAgLTE0MzAsMTMgKzE0MjUsMTIgQEAgYm9vbCBkY2UxMTJfY2xrX3NyY19jb25zdHJ1Y3QoCiAJY2xrX3NyYy0+Y3Nfc2hpZnQgPSBjc19zaGlmdDsKIAljbGtfc3JjLT5jc19tYXNrID0gY3NfbWFzazsKIAotCWlmIChjbGtfc3JjLT5iaW9zLT5mdW5jcy0+Z2V0X2Zpcm13YXJlX2luZm8oCi0JCQljbGtfc3JjLT5iaW9zLCAmZndfaW5mbykgIT0gQlBfUkVTVUxUX09LKSB7CisJaWYgKCFjbGtfc3JjLT5iaW9zLT5md19pbmZvX3ZhbGlkKSB7CiAJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQljbGtfc3JjLT5leHRfY2xrX2toeiA9IGZ3X2luZm8uZXh0ZXJuYWxfY2xvY2tfc291cmNlX2ZyZXF1ZW5jeV9mb3JfZHA7CisJY2xrX3NyYy0+ZXh0X2Nsa19raHogPSBjbGtfc3JjLT5iaW9zLT5md19pbmZvLmV4dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVxdWVuY3lfZm9yX2RwOwogCiAJcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9jbG9ja19zb3VyY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5oCmluZGV4IGFkYWUwM2IuLjQzYzFiZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5oCkBAIC03OCw2ICs3OCwyMyBAQAogCQlTUklJKFBJWEVMX1JBVEVfQ05UTCwgT1RHLCA1KQogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKyNkZWZpbmUgQ1NfQ09NTU9OX1JFR19MSVNUX0RDTjJfMShpbmRleCwgcGxsaWQpIFwKKwkJU1JJKFBJWENMS19SRVNZTkNfQ05UTCwgUEhZUExMLCBwbGxpZCksXAorCQlTUklJKFBIQVNFLCBEUF9EVE8sIDApLFwKKwkJU1JJSShQSEFTRSwgRFBfRFRPLCAxKSxcCisJCVNSSUkoUEhBU0UsIERQX0RUTywgMiksXAorCQlTUklJKFBIQVNFLCBEUF9EVE8sIDMpLFwKKwkJU1JJSShNT0RVTE8sIERQX0RUTywgMCksXAorCQlTUklJKE1PRFVMTywgRFBfRFRPLCAxKSxcCisJCVNSSUkoTU9EVUxPLCBEUF9EVE8sIDIpLFwKKwkJU1JJSShNT0RVTE8sIERQX0RUTywgMyksXAorCQlTUklJKFBJWEVMX1JBVEVfQ05UTCwgT1RHLCAwKSxcCisJCVNSSUkoUElYRUxfUkFURV9DTlRMLCBPVEcsIDEpLFwKKwkJU1JJSShQSVhFTF9SQVRFX0NOVEwsIE9URywgMiksXAorCQlTUklJKFBJWEVMX1JBVEVfQ05UTCwgT1RHLCAzKQorI2VuZGlmCisKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKICNkZWZpbmUgQ1NfQ09NTU9OX01BU0tfU0hfTElTVF9EQ04yXzAobWFza19zaClcCiAJQ1NfU0YoRFBfRFRPMF9QSEFTRSwgRFBfRFRPMF9QSEFTRSwgbWFza19zaCksXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfaHdzZXEuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2h3c2VxLmgKaW5kZXggY2IwYTAzNy4uYWMwNGQ3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfaHdzZXEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9od3NlcS5oCkBAIC02Miw2ICs2MiwxMCBAQAogCVNSSUkoQkxORF9DT05UUk9MLCBCTE5ELCA0KSwgXAogCVNSSUkoQkxORF9DT05UUk9MLCBCTE5ELCA1KQogCisjZGVmaW5lIEhTV0VRX0RDTl9QSVhFTF9SQVRFX1JFR19MSVNUKGJsaywgaW5zdCkgXAorCVNSSUkoUElYRUxfUkFURV9DTlRMLCBibGssIGluc3QpLCBcCisJU1JJSShQSFlQTExfUElYRUxfUkFURV9DTlRMLCBibGssIGluc3QpCisKICNkZWZpbmUgSFdTRVFfUElYRUxfUkFURV9SRUdfTElTVChibGspIFwKIAlTUklJKFBJWEVMX1JBVEVfQ05UTCwgYmxrLCAwKSwgXAogCVNSSUkoUElYRUxfUkFURV9DTlRMLCBibGssIDEpLCBcCkBAIC0xNTEsNyArMTU1LDEwIEBACiAJU1IoRENDR19HQVRFX0RJU0FCTEVfQ05UTDIpLCBcCiAJU1IoRENGQ0xLX0NOVEwpLFwKIAlTUihEQ0ZDTEtfQ05UTCksIFwKLQlTUihEQ19NRU1fR0xPQkFMX1BXUl9SRVFfQ05UTCksIFwKKwlTUihEQ19NRU1fR0xPQkFMX1BXUl9SRVFfQ05UTCkKKworCisjZGVmaW5lIE1NSFVCX0RDTl9SRUdfTElTVCgpXAogCS8qIHRvZG86ICBnZXQgdGhlc2UgZnJvbSBHVk0gaW5zdGVhZCBvZiByZWFkaW5nIHJlZ2lzdGVycyBvdXJzZWx2ZXMgKi9cCiAJTU1IVUJfU1IoVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiksXAogCU1NSFVCX1NSKFZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIpLFwKQEAgLTE2NiwxMCArMTczLDE0IEBACiAJTU1IVUJfU1IoTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSKSxcCiAJTU1IVUJfU1IoTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUikKIAorCiAjZGVmaW5lIEhXU0VRX0RDTjFfUkVHX0xJU1QoKVwKIAlIV1NFUV9EQ05fUkVHX0xJU1QoKSwgXAotCUhXU0VRX1BJWEVMX1JBVEVfUkVHX0xJU1QoT1RHKSwgXAotCUhXU0VRX1BIWVBMTF9SRUdfTElTVChPVEcpLCBcCisJTU1IVUJfRENOX1JFR19MSVNUKCksIFwKKwlIU1dFUV9EQ05fUElYRUxfUkFURV9SRUdfTElTVChPVEcsIDApLCBcCisJSFNXRVFfRENOX1BJWEVMX1JBVEVfUkVHX0xJU1QoT1RHLCAxKSwgXAorCUhTV0VRX0RDTl9QSVhFTF9SQVRFX1JFR19MSVNUKE9URywgMiksIFwKKwlIU1dFUV9EQ05fUElYRUxfUkFURV9SRUdfTElTVChPVEcsIDMpLCBcCiAJU1IoRENIVUJCVUJfU0RQSUZfRkJfQkFTRSksXAogCVNSKERDSFVCQlVCX1NEUElGX0ZCX09GRlNFVCksXAogCVNSKERDSFVCQlVCX1NEUElGX0FHUF9CQVNFKSxcCkBAIC0yMDIsOCArMjEzLDEyIEBACiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCiAjZGVmaW5lIEhXU0VRX0RDTjJfUkVHX0xJU1QoKVwKIAlIV1NFUV9EQ05fUkVHX0xJU1QoKSwgXAotCUhXU0VRX1BJWEVMX1JBVEVfUkVHX0xJU1QoT1RHKSwgXAotCUhXU0VRX1BIWVBMTF9SRUdfTElTVChPVEcpLCBcCisJSFNXRVFfRENOX1BJWEVMX1JBVEVfUkVHX0xJU1QoT1RHLCAwKSwgXAorCUhTV0VRX0RDTl9QSVhFTF9SQVRFX1JFR19MSVNUKE9URywgMSksIFwKKwlIU1dFUV9EQ05fUElYRUxfUkFURV9SRUdfTElTVChPVEcsIDIpLCBcCisJSFNXRVFfRENOX1BJWEVMX1JBVEVfUkVHX0xJU1QoT1RHLCAzKSwgXAorCUhTV0VRX0RDTl9QSVhFTF9SQVRFX1JFR19MSVNUKE9URywgNCksIFwKKwlIU1dFUV9EQ05fUElYRUxfUkFURV9SRUdfTElTVChPVEcsIDUpLCBcCiAJU1IoTUlDUk9TRUNPTkRfVElNRV9CQVNFX0RJViksIFwKIAlTUihNSUxMSVNFQ09ORF9USU1FX0JBU0VfRElWKSwgXAogCVNSKERJU1BDTEtfRlJFUV9DSEFOR0VfQ05UTCksIFwKQEAgLTIyNyw4ICsyNDIsOCBAQAogCVNSKERPTUFJTjdfUEdfQ09ORklHKSwgXAogCVNSKERPTUFJTjhfUEdfQ09ORklHKSwgXAogCVNSKERPTUFJTjlfUEdfQ09ORklHKSwgXAotCVNSKERPTUFJTjEwX1BHX0NPTkZJRyksIFwKLQlTUihET01BSU4xMV9QR19DT05GSUcpLCBcCisvKglTUihET01BSU4xMF9QR19DT05GSUcpLCBOYXZpMXggSFVCUDUgbm90IHBvd2VyZ2F0ZS1hYmxlKi9cCisvKglTUihET01BSU4xMV9QR19DT05GSUcpLCBOYXZpMXggRFBQNSBpcyBub3QgcG93ZXJnYXRlLWFibGUgKi9cCiAJU1IoRE9NQUlOMTZfUEdfQ09ORklHKSwgXAogCVNSKERPTUFJTjE3X1BHX0NPTkZJRyksIFwKIAlTUihET01BSU4xOF9QR19DT05GSUcpLCBcCkBAIC0yNjMsNiArMjc4LDU5IEBACiAJQkxfUkVHX0xJU1QoKQogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKyNkZWZpbmUgSFdTRVFfRENOMjFfUkVHX0xJU1QoKVwKKwlIV1NFUV9EQ05fUkVHX0xJU1QoKSwgXAorCUhTV0VRX0RDTl9QSVhFTF9SQVRFX1JFR19MSVNUKE9URywgMCksIFwKKwlIU1dFUV9EQ05fUElYRUxfUkFURV9SRUdfTElTVChPVEcsIDEpLCBcCisJSFNXRVFfRENOX1BJWEVMX1JBVEVfUkVHX0xJU1QoT1RHLCAyKSwgXAorCUhTV0VRX0RDTl9QSVhFTF9SQVRFX1JFR19MSVNUKE9URywgMyksIFwKKwlNTUhVQl9EQ05fUkVHX0xJU1QoKSwgXAorCVNSKE1JQ1JPU0VDT05EX1RJTUVfQkFTRV9ESVYpLCBcCisJU1IoTUlMTElTRUNPTkRfVElNRV9CQVNFX0RJViksIFwKKwlTUihESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVEwpLCBcCisJU1IoUkJCTUlGX1RJTUVPVVRfRElTKSwgXAorCVNSKFJCQk1JRl9USU1FT1VUX0RJU18yKSwgXAorCVNSKERDSFVCQlVCX0NSQ19DVFJMKSwgXAorCVNSKERQUF9UT1AwX0RQUF9DUkNfQ1RSTCksIFwKKwlTUihEUFBfVE9QMF9EUFBfQ1JDX1ZBTF9CX0EpLCBcCisJU1IoRFBQX1RPUDBfRFBQX0NSQ19WQUxfUl9HKSwgXAorCVNSKE1QQ19DUkNfQ1RSTCksIFwKKwlTUihNUENfQ1JDX1JFU1VMVF9HQiksIFwKKwlTUihNUENfQ1JDX1JFU1VMVF9DKSwgXAorCVNSKE1QQ19DUkNfUkVTVUxUX0FSKSwgXAorCVNSKERPTUFJTjBfUEdfQ09ORklHKSwgXAorCVNSKERPTUFJTjFfUEdfQ09ORklHKSwgXAorCVNSKERPTUFJTjJfUEdfQ09ORklHKSwgXAorCVNSKERPTUFJTjNfUEdfQ09ORklHKSwgXAorCVNSKERPTUFJTjRfUEdfQ09ORklHKSwgXAorCVNSKERPTUFJTjVfUEdfQ09ORklHKSwgXAorCVNSKERPTUFJTjZfUEdfQ09ORklHKSwgXAorCVNSKERPTUFJTjdfUEdfQ09ORklHKSwgXAorCVNSKERPTUFJTjE2X1BHX0NPTkZJRyksIFwKKwlTUihET01BSU4xN19QR19DT05GSUcpLCBcCisJU1IoRE9NQUlOMThfUEdfQ09ORklHKSwgXAorCVNSKERPTUFJTjBfUEdfU1RBVFVTKSwgXAorCVNSKERPTUFJTjFfUEdfU1RBVFVTKSwgXAorCVNSKERPTUFJTjJfUEdfU1RBVFVTKSwgXAorCVNSKERPTUFJTjNfUEdfU1RBVFVTKSwgXAorCVNSKERPTUFJTjRfUEdfU1RBVFVTKSwgXAorCVNSKERPTUFJTjVfUEdfU1RBVFVTKSwgXAorCVNSKERPTUFJTjZfUEdfU1RBVFVTKSwgXAorCVNSKERPTUFJTjdfUEdfU1RBVFVTKSwgXAorCVNSKERPTUFJTjE2X1BHX1NUQVRVUyksIFwKKwlTUihET01BSU4xN19QR19TVEFUVVMpLCBcCisJU1IoRE9NQUlOMThfUEdfU1RBVFVTKSwgXAorCVNSKEQxVkdBX0NPTlRST0wpLCBcCisJU1IoRDJWR0FfQ09OVFJPTCksIFwKKwlTUihEM1ZHQV9DT05UUk9MKSwgXAorCVNSKEQ0VkdBX0NPTlRST0wpLCBcCisJU1IoRDVWR0FfQ09OVFJPTCksIFwKKwlTUihENlZHQV9DT05UUk9MKSwgXAorCVNSKERDX0lQX1JFUVVFU1RfQ05UTCksIFwKKwlCTF9SRUdfTElTVCgpCisjZW5kaWYKKwogc3RydWN0IGRjZV9od3NlcV9yZWdpc3RlcnMgewogCiAJCS8qIEJhY2tsaWdodCByZWdpc3RlcnMgKi8KQEAgLTQwMSwzNiArNDY5LDM0IEBAIHN0cnVjdCBkY2VfaHdzZXFfcmVnaXN0ZXJzIHsKIAlIV1NfU0YxKGJsaywgUEhZUExMX1BJWEVMX1JBVEVfQ05UTCwgUEhZUExMX1BJWEVMX1JBVEVfU09VUkNFLCBtYXNrX3NoKSxcCiAJSFdTX1NGMShibGssIFBIWVBMTF9QSVhFTF9SQVRFX0NOVEwsIFBJWEVMX1JBVEVfUExMX1NPVVJDRSwgbWFza19zaCkKIAorI2RlZmluZSBIV1NFUV9MVlRNQV9NQVNLX1NIX0xJU1QobWFza19zaClcCisJSFdTX1NGKCwgTFZUTUFfUFdSU0VRX0NOVEwsIExWVE1BX0JMT04sIG1hc2tfc2gpLFwKKwlIV1NfU0YoLCBMVlRNQV9QV1JTRVFfQ05UTCwgTFZUTUFfRElHT04sIG1hc2tfc2gpLFwKKwlIV1NfU0YoLCBMVlRNQV9QV1JTRVFfQ05UTCwgTFZUTUFfRElHT05fT1ZSRCwgbWFza19zaCksXAorCUhXU19TRigsIExWVE1BX1BXUlNFUV9TVEFURSwgTFZUTUFfUFdSU0VRX1RBUkdFVF9TVEFURV9SLCBtYXNrX3NoKQorCiAjZGVmaW5lIEhXU0VRX0RDRThfTUFTS19TSF9MSVNUKG1hc2tfc2gpXAogCS5EQ0ZFX0NMT0NLX0VOQUJMRSA9IENSVENfRENGRV9DTE9DS19DT05UUk9MX19DUlRDX0RDRkVfQ0xPQ0tfRU5BQkxFICMjIG1hc2tfc2gsIFwKIAlIV1NfU0YoQkxORF8sIFZfVVBEQVRFX0xPQ0ssIEJMTkRfRENQX0dSUEhfVl9VUERBVEVfTE9DSywgbWFza19zaCksXAogCUhXU19TRihCTE5EXywgVl9VUERBVEVfTE9DSywgQkxORF9TQ0xfVl9VUERBVEVfTE9DSywgbWFza19zaCksXAogCUhXU19TRihCTE5EXywgVl9VUERBVEVfTE9DSywgQkxORF9EQ1BfR1JQSF9TVVJGX1ZfVVBEQVRFX0xPQ0ssIG1hc2tfc2gpLFwKIAlIV1NfU0YoQkxORF8sIENPTlRST0wsIEJMTkRfTU9ERSwgbWFza19zaCksXAotCUhXU19TRigsIExWVE1BX1BXUlNFUV9DTlRMLCBMVlRNQV9CTE9OLCBtYXNrX3NoKSxcCi0JSFdTX1NGKCwgTFZUTUFfUFdSU0VRX1NUQVRFLCBMVlRNQV9QV1JTRVFfVEFSR0VUX1NUQVRFX1IsIG1hc2tfc2gpLFwKLQlIV1NFUV9QSVhFTF9SQVRFX01BU0tfU0hfTElTVChtYXNrX3NoLCBDUlRDMF8pCisJSFdTRVFfUElYRUxfUkFURV9NQVNLX1NIX0xJU1QobWFza19zaCwgQ1JUQzBfKSxcCisJSFdTRVFfTFZUTUFfTUFTS19TSF9MSVNUKG1hc2tfc2gpCiAKICNkZWZpbmUgSFdTRVFfRENFMTBfTUFTS19TSF9MSVNUKG1hc2tfc2gpXAogCUhXU0VRX0RDRUZfTUFTS19TSF9MSVNUKG1hc2tfc2gsIERDRkVfKSxcCiAJSFdTRVFfQkxORF9NQVNLX1NIX0xJU1QobWFza19zaCwgQkxORF8pLFwKLQlIV1NFUV9QSVhFTF9SQVRFX01BU0tfU0hfTElTVChtYXNrX3NoLCBDUlRDMF8pLCBcCi0JSFdTX1NGKCwgTFZUTUFfUFdSU0VRX0NOVEwsIExWVE1BX0JMT04sIG1hc2tfc2gpLCBcCi0JSFdTX1NGKCwgTFZUTUFfUFdSU0VRX1NUQVRFLCBMVlRNQV9QV1JTRVFfVEFSR0VUX1NUQVRFX1IsIG1hc2tfc2gpCisJSFdTRVFfUElYRUxfUkFURV9NQVNLX1NIX0xJU1QobWFza19zaCwgQ1JUQzBfKSxcCisJSFdTRVFfTFZUTUFfTUFTS19TSF9MSVNUKG1hc2tfc2gpCiAKICNkZWZpbmUgSFdTRVFfRENFMTFfTUFTS19TSF9MSVNUKG1hc2tfc2gpXAogCUhXU0VRX0RDRTEwX01BU0tfU0hfTElTVChtYXNrX3NoKSxcCiAJU0YoRENGRVZfQ0xPQ0tfQ09OVFJPTCwgRENGRVZfQ0xPQ0tfRU5BQkxFLCBtYXNrX3NoKSxcCi0JSFdTX1NGKCwgTFZUTUFfUFdSU0VRX0NOVEwsIExWVE1BX0JMT04sIG1hc2tfc2gpLFwKLQlIV1NfU0YoLCBMVlRNQV9QV1JTRVFfQ05UTCwgTFZUTUFfRElHT04sIG1hc2tfc2gpLFwKLQlIV1NfU0YoLCBMVlRNQV9QV1JTRVFfQ05UTCwgTFZUTUFfRElHT05fT1ZSRCwgbWFza19zaCksXAotCUhXU19TRigsIExWVE1BX1BXUlNFUV9TVEFURSwgTFZUTUFfUFdSU0VRX1RBUkdFVF9TVEFURV9SLCBtYXNrX3NoKSxcCiAJSFdTRVFfUElYRUxfUkFURV9NQVNLX1NIX0xJU1QobWFza19zaCwgQ1JUQzBfKQogCiAjZGVmaW5lIEhXU0VRX0RDRTExMl9NQVNLX1NIX0xJU1QobWFza19zaClcCiAJSFdTRVFfRENFMTBfTUFTS19TSF9MSVNUKG1hc2tfc2gpLFwKLQlIV1NfU0YoLCBMVlRNQV9QV1JTRVFfQ05UTCwgTFZUTUFfQkxPTiwgbWFza19zaCksXAotCUhXU19TRigsIExWVE1BX1BXUlNFUV9TVEFURSwgTFZUTUFfUFdSU0VRX1RBUkdFVF9TVEFURV9SLCBtYXNrX3NoKSxcCiAJSFdTRVFfUEhZUExMX01BU0tfU0hfTElTVChtYXNrX3NoLCBDUlRDMF8pCiAKICNkZWZpbmUgSFdTRVFfR0ZYOV9EQ0hVQl9NQVNLX1NIX0xJU1QobWFza19zaClcCkBAIC00MzgsMTggKzUwNCwxNSBAQCBzdHJ1Y3QgZGNlX2h3c2VxX3JlZ2lzdGVycyB7CiAJU0YoRENIVUJfRkJfTE9DQVRJT04sIEZCX0JBU0UsIG1hc2tfc2gpLFwKIAlTRihEQ0hVQl9BR1BfQkFTRSwgQUdQX0JBU0UsIG1hc2tfc2gpLFwKIAlTRihEQ0hVQl9BR1BfQk9ULCBBR1BfQk9ULCBtYXNrX3NoKSxcCi0JU0YoRENIVUJfQUdQX1RPUCwgQUdQX1RPUCwgbWFza19zaCksIFwKLQlIV1NfU0YoLCBMVlRNQV9QV1JTRVFfQ05UTCwgTFZUTUFfQkxPTiwgbWFza19zaCksIFwKLQlIV1NfU0YoLCBMVlRNQV9QV1JTRVFfU1RBVEUsIExWVE1BX1BXUlNFUV9UQVJHRVRfU1RBVEVfUiwgbWFza19zaCkKKwlTRihEQ0hVQl9BR1BfVE9QLCBBR1BfVE9QLCBtYXNrX3NoKQogCiAjZGVmaW5lIEhXU0VRX0RDRTEyX01BU0tfU0hfTElTVChtYXNrX3NoKVwKIAlIV1NFUV9EQ0VGX01BU0tfU0hfTElTVChtYXNrX3NoLCBEQ0ZFMF9EQ0ZFXyksXAogCUhXU0VRX0JMTkRfTUFTS19TSF9MSVNUKG1hc2tfc2gsIEJMTkQwX0JMTkRfKSxcCiAJSFdTRVFfUElYRUxfUkFURV9NQVNLX1NIX0xJU1QobWFza19zaCwgQ1JUQzBfKSxcCiAJSFdTRVFfUEhZUExMX01BU0tfU0hfTElTVChtYXNrX3NoLCBDUlRDMF8pLFwKLQlIV1NFUV9HRlg5X0RDSFVCX01BU0tfU0hfTElTVChtYXNrX3NoKSwgXAotCUhXU19TRigsIExWVE1BX1BXUlNFUV9DTlRMLCBMVlRNQV9CTE9OLCBtYXNrX3NoKSwgXAotCUhXU19TRigsIExWVE1BX1BXUlNFUV9TVEFURSwgTFZUTUFfUFdSU0VRX1RBUkdFVF9TVEFURV9SLCBtYXNrX3NoKQorCUhXU0VRX0dGWDlfRENIVUJfTUFTS19TSF9MSVNUKG1hc2tfc2gpLFwKKwlIV1NFUV9MVlRNQV9NQVNLX1NIX0xJU1QobWFza19zaCkKIAogI2RlZmluZSBIV1NFUV9WRzIwX01BU0tfU0hfTElTVChtYXNrX3NoKVwKIAlIV1NFUV9EQ0UxMl9NQVNLX1NIX0xJU1QobWFza19zaCksXApAQCAtNTEyLDEwICs1NzUsNyBAQCBzdHJ1Y3QgZGNlX2h3c2VxX3JlZ2lzdGVycyB7CiAJSFdTX1NGKCwgRDRWR0FfQ09OVFJPTCwgRDRWR0FfTU9ERV9FTkFCTEUsIG1hc2tfc2gpLFwKIAlIV1NfU0YoLCBWR0FfVEVTVF9DT05UUk9MLCBWR0FfVEVTVF9FTkFCTEUsIG1hc2tfc2gpLFwKIAlIV1NfU0YoLCBWR0FfVEVTVF9DT05UUk9MLCBWR0FfVEVTVF9SRU5ERVJfU1RBUlQsIG1hc2tfc2gpLFwKLQlIV1NfU0YoLCBMVlRNQV9QV1JTRVFfQ05UTCwgTFZUTUFfQkxPTiwgbWFza19zaCksIFwKLQlIV1NfU0YoLCBMVlRNQV9QV1JTRVFfQ05UTCwgTFZUTUFfRElHT04sIG1hc2tfc2gpLCBcCi0JSFdTX1NGKCwgTFZUTUFfUFdSU0VRX0NOVEwsIExWVE1BX0RJR09OX09WUkQsIG1hc2tfc2gpLCBcCi0JSFdTX1NGKCwgTFZUTUFfUFdSU0VRX1NUQVRFLCBMVlRNQV9QV1JTRVFfVEFSR0VUX1NUQVRFX1IsIG1hc2tfc2gpCisJSFdTRVFfTFZUTUFfTUFTS19TSF9MSVNUKG1hc2tfc2gpCiAKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKICNkZWZpbmUgSFdTRVFfRENOMl9NQVNLX1NIX0xJU1QobWFza19zaClcCkBAIC01NzYsNiArNjM2LDQ5IEBAIHN0cnVjdCBkY2VfaHdzZXFfcmVnaXN0ZXJzIHsKIAlIV1NfU0YoLCBET01BSU4yMF9QR19TVEFUVVMsIERPTUFJTjIwX1BHRlNNX1BXUl9TVEFUVVMsIG1hc2tfc2gpLCBcCiAJSFdTX1NGKCwgRE9NQUlOMjFfUEdfU1RBVFVTLCBET01BSU4yMV9QR0ZTTV9QV1JfU1RBVFVTLCBtYXNrX3NoKSwgXAogCUhXU19TRigsIERDX0lQX1JFUVVFU1RfQ05UTCwgSVBfUkVRVUVTVF9FTiwgbWFza19zaCksIFwKKwlIV1NFUV9MVlRNQV9NQVNLX1NIX0xJU1QobWFza19zaCkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisjZGVmaW5lIEhXU0VRX0RDTjIxX01BU0tfU0hfTElTVChtYXNrX3NoKVwKKwlIV1NFUV9EQ05fTUFTS19TSF9MSVNUKG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRENIVUJCVUJfR0xPQkFMX1RJTUVSX0NOVEwsIERDSFVCQlVCX0dMT0JBTF9USU1FUl9SRUZESVYsIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgTU1WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyLCBQQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyLCBtYXNrX3NoKSxcCisJSFdTX1NGKCwgTU1WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyLCBQQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyLCBtYXNrX3NoKSxcCisJSFdTX1NGKCwgRE9NQUlOMF9QR19DT05GSUcsIERPTUFJTjBfUE9XRVJfRk9SQ0VPTiwgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU4wX1BHX0NPTkZJRywgRE9NQUlOMF9QT1dFUl9HQVRFLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjFfUEdfQ09ORklHLCBET01BSU4xX1BPV0VSX0ZPUkNFT04sIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlOMV9QR19DT05GSUcsIERPTUFJTjFfUE9XRVJfR0FURSwgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU4yX1BHX0NPTkZJRywgRE9NQUlOMl9QT1dFUl9GT1JDRU9OLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjJfUEdfQ09ORklHLCBET01BSU4yX1BPV0VSX0dBVEUsIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlOM19QR19DT05GSUcsIERPTUFJTjNfUE9XRVJfRk9SQ0VPTiwgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU4zX1BHX0NPTkZJRywgRE9NQUlOM19QT1dFUl9HQVRFLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjRfUEdfQ09ORklHLCBET01BSU40X1BPV0VSX0ZPUkNFT04sIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlONF9QR19DT05GSUcsIERPTUFJTjRfUE9XRVJfR0FURSwgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU41X1BHX0NPTkZJRywgRE9NQUlONV9QT1dFUl9GT1JDRU9OLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjVfUEdfQ09ORklHLCBET01BSU41X1BPV0VSX0dBVEUsIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlONl9QR19DT05GSUcsIERPTUFJTjZfUE9XRVJfRk9SQ0VPTiwgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU42X1BHX0NPTkZJRywgRE9NQUlONl9QT1dFUl9HQVRFLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjdfUEdfQ09ORklHLCBET01BSU43X1BPV0VSX0ZPUkNFT04sIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlON19QR19DT05GSUcsIERPTUFJTjdfUE9XRVJfR0FURSwgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU4xNl9QR19DT05GSUcsIERPTUFJTjE2X1BPV0VSX0ZPUkNFT04sIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlOMTZfUEdfQ09ORklHLCBET01BSU4xNl9QT1dFUl9HQVRFLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjE3X1BHX0NPTkZJRywgRE9NQUlOMTdfUE9XRVJfRk9SQ0VPTiwgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU4xN19QR19DT05GSUcsIERPTUFJTjE3X1BPV0VSX0dBVEUsIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlOMThfUEdfQ09ORklHLCBET01BSU4xOF9QT1dFUl9GT1JDRU9OLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjE4X1BHX0NPTkZJRywgRE9NQUlOMThfUE9XRVJfR0FURSwgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU4wX1BHX1NUQVRVUywgRE9NQUlOMF9QR0ZTTV9QV1JfU1RBVFVTLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjFfUEdfU1RBVFVTLCBET01BSU4xX1BHRlNNX1BXUl9TVEFUVVMsIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlOMl9QR19TVEFUVVMsIERPTUFJTjJfUEdGU01fUFdSX1NUQVRVUywgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU4zX1BHX1NUQVRVUywgRE9NQUlOM19QR0ZTTV9QV1JfU1RBVFVTLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjRfUEdfU1RBVFVTLCBET01BSU40X1BHRlNNX1BXUl9TVEFUVVMsIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlONV9QR19TVEFUVVMsIERPTUFJTjVfUEdGU01fUFdSX1NUQVRVUywgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU42X1BHX1NUQVRVUywgRE9NQUlONl9QR0ZTTV9QV1JfU1RBVFVTLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjdfUEdfU1RBVFVTLCBET01BSU43X1BHRlNNX1BXUl9TVEFUVVMsIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRE9NQUlOMTZfUEdfU1RBVFVTLCBET01BSU4xNl9QR0ZTTV9QV1JfU1RBVFVTLCBtYXNrX3NoKSwgXAorCUhXU19TRigsIERPTUFJTjE3X1BHX1NUQVRVUywgRE9NQUlOMTdfUEdGU01fUFdSX1NUQVRVUywgbWFza19zaCksIFwKKwlIV1NfU0YoLCBET01BSU4xOF9QR19TVEFUVVMsIERPTUFJTjE4X1BHRlNNX1BXUl9TVEFUVVMsIG1hc2tfc2gpLCBcCisJSFdTX1NGKCwgRENfSVBfUkVRVUVTVF9DTlRMLCBJUF9SRVFVRVNUX0VOLCBtYXNrX3NoKSwgXAogCUhXU19TRigsIExWVE1BX1BXUlNFUV9DTlRMLCBMVlRNQV9CTE9OLCBtYXNrX3NoKSwgXAogCUhXU19TRigsIExWVE1BX1BXUlNFUV9TVEFURSwgTFZUTUFfUFdSU0VRX1RBUkdFVF9TVEFURV9SLCBtYXNrX3NoKQogI2VuZGlmCkBAIC02MTIsOSArNzE1LDkgQEAgc3RydWN0IGRjZV9od3NlcV9yZWdpc3RlcnMgewogCXR5cGUgRU5BQkxFX0wxX1RMQjtcCiAJdHlwZSBTWVNURU1fQUNDRVNTX01PREU7XAogCXR5cGUgTFZUTUFfQkxPTjtcCi0JdHlwZSBMVlRNQV9QV1JTRVFfVEFSR0VUX1NUQVRFX1I7XAogCXR5cGUgTFZUTUFfRElHT047XAotCXR5cGUgTFZUTUFfRElHT05fT1ZSRDsKKwl0eXBlIExWVE1BX0RJR09OX09WUkQ7XAorCXR5cGUgTFZUTUFfUFdSU0VRX1RBUkdFVF9TVEFURV9SOwogCiAjZGVmaW5lIEhXU0VRX0RDTl9SRUdfRklFTERfTElTVCh0eXBlKSBcCiAJdHlwZSBIVUJQX1ZUR19TRUw7IFwKQEAgLTY5Niw3ICs3OTksOCBAQCBzdHJ1Y3QgZGNlX2h3c2VxX3JlZ2lzdGVycyB7CiAJdHlwZSBEMlZHQV9NT0RFX0VOQUJMRTsgXAogCXR5cGUgRDNWR0FfTU9ERV9FTkFCTEU7IFwKIAl0eXBlIEQ0VkdBX01PREVfRU5BQkxFOyBcCi0JdHlwZSBBWkFMSUFfQVVESU9fRFRPX01PRFVMRTsKKwl0eXBlIEFaQUxJQV9BVURJT19EVE9fTU9EVUxFO1wKKwl0eXBlIEhQT19IRE1JU1RSRUFNQ0xLX0dBVEVfRElTOwogCiBzdHJ1Y3QgZGNlX2h3c2VxX3NoaWZ0IHsKIAlIV1NFUV9SRUdfRklFTERfTElTVCh1aW50OF90KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfaTJjX2h3LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9pMmNfaHcuYwppbmRleCBhOTA2MWFhLi5hYWQ3YjUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9pMmNfaHcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9pMmNfaHcuYwpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KIAorI2luY2x1ZGUgInJlc291cmNlLmgiCiAjaW5jbHVkZSAiZGNlX2kyYy5oIgogI2luY2x1ZGUgImRjZV9pMmNfaHcuaCIKICNpbmNsdWRlICJyZWdfaGVscGVyLmgiCkBAIC05OSwxNyArMTAwLDYgQEAgc3RhdGljIHVpbnQzMl90IGdldF9od19idWZmZXJfYXZhaWxhYmxlX3NpemUoCiAJCQlkY2VfaTJjX2h3LT5idWZmZXJfdXNlZF9ieXRlczsKIH0KIAotdWludDMyX3QgZ2V0X3JlZmVyZW5jZV9jbG9jaygKLQkJc3RydWN0IGRjX2Jpb3MgKmJpb3MpCi17Ci0Jc3RydWN0IGRjX2Zpcm13YXJlX2luZm8gaW5mbyA9IHsgeyAwIH0gfTsKLQotCWlmIChiaW9zLT5mdW5jcy0+Z2V0X2Zpcm13YXJlX2luZm8oYmlvcywgJmluZm8pICE9IEJQX1JFU1VMVF9PSykKLQkJcmV0dXJuIDA7Ci0KLQlyZXR1cm4gaW5mby5wbGxfaW5mby5jcnlzdGFsX2ZyZXF1ZW5jeTsKLX0KLQogc3RhdGljIHVpbnQzMl90IGdldF9zcGVlZCgKIAljb25zdCBzdHJ1Y3QgZGNlX2kyY19odyAqZGNlX2kyY19odykKIHsKQEAgLTQwMSw3ICszOTEsNyBAQCBzdHJ1Y3QgZGNlX2kyY19odyAqYWNxdWlyZV9pMmNfaHdfZW5naW5lKAogCWlmIChkZGMtPmh3X2luZm8uaHdfc3VwcG9ydGVkKSB7CiAJCWVudW0gZ3Bpb19kZGNfbGluZSBsaW5lID0gZGFsX2RkY19nZXRfbGluZShkZGMpOwogCi0JCWlmIChsaW5lIDwgcG9vbC0+cGlwZV9jb3VudCkKKwkJaWYgKGxpbmUgPCBwb29sLT5yZXNfY2FwLT5udW1fZGRjKQogCQkJZGNlX2kyY19odyA9IHBvb2wtPmh3X2kyY3NbbGluZV07CiAJfQogCkBAIC02MzIsNyArNjIyLDcgQEAgdm9pZCBkY2VfaTJjX2h3X2NvbnN0cnVjdCgKIHsKIAlkY2VfaTJjX2h3LT5jdHggPSBjdHg7CiAJZGNlX2kyY19ody0+ZW5naW5lX2lkID0gZW5naW5lX2lkOwotCWRjZV9pMmNfaHctPnJlZmVyZW5jZV9mcmVxdWVuY3kgPSBnZXRfcmVmZXJlbmNlX2Nsb2NrKGN0eC0+ZGNfYmlvcykgPj4gMTsKKwlkY2VfaTJjX2h3LT5yZWZlcmVuY2VfZnJlcXVlbmN5ID0gKGN0eC0+ZGNfYmlvcy0+ZndfaW5mby5wbGxfaW5mby5jcnlzdGFsX2ZyZXF1ZW5jeSkgPj4gMTsKIAlkY2VfaTJjX2h3LT5yZWdzID0gcmVnczsKIAlkY2VfaTJjX2h3LT5zaGlmdHMgPSBzaGlmdHM7CiAJZGNlX2kyY19ody0+bWFza3MgPSBtYXNrczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX21lbV9pbnB1dC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfbWVtX2lucHV0LmMKaW5kZXggYTI0YTJiZC4uMzFiNjk4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfbWVtX2lucHV0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfbWVtX2lucHV0LmMKQEAgLTE0OCw3ICsxNDgsNyBAQCBzdGF0aWMgdm9pZCBkY2VfbWlfcHJvZ3JhbV9wdGVfdm0oCiAJCQlwdGUtPm1pbl9wdGVfYmVmb3JlX2ZsaXBfaG9yaXpfc2NhbjsKIAogCVJFR19VUERBVEUoR1JQSF9QSVBFX09VVFNUQU5ESU5HX1JFUVVFU1RfTElNSVQsCi0JCQlHUlBIX1BJUEVfT1VUU1RBTkRJTkdfUkVRVUVTVF9MSU1JVCwgMHhmZik7CisJCQlHUlBIX1BJUEVfT1VUU1RBTkRJTkdfUkVRVUVTVF9MSU1JVCwgMHg3Zik7CiAKIAlSRUdfVVBEQVRFXzMoRFZNTV9QVEVfQ09OVFJPTCwKIAkJCURWTU1fUEFHRV9XSURUSCwgcGFnZV93aWR0aCwKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzdGF0aWMgdm9pZCBkY2VfbWlfcHJvZ3JhbV9wdGVfdm0oCiAKIAlSRUdfVVBEQVRFXzIoRFZNTV9QVEVfQVJCX0NPTlRST0wsCiAJCQlEVk1NX1BURV9SRVFfUEVSX0NIVU5LLCBwdGUtPnB0ZV9yZXFfcGVyX2NodW5rLAotCQkJRFZNTV9NQVhfUFRFX1JFUV9PVVRTVEFORElORywgMHhmZik7CisJCQlEVk1NX01BWF9QVEVfUkVRX09VVFNUQU5ESU5HLCAweDdmKTsKIH0KIAogc3RhdGljIHZvaWQgcHJvZ3JhbV91cmdlbmN5X3dhdGVybWFyaygKQEAgLTM5MSwxMCArMzkxLDEwIEBAIHN0YXRpYyB2b2lkIHByb2dyYW1fdGlsaW5nKAogc3RhdGljIHZvaWQgcHJvZ3JhbV9zaXplX2FuZF9yb3RhdGlvbigKIAlzdHJ1Y3QgZGNlX21lbV9pbnB1dCAqZGNlX21pLAogCWVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb24sCi0JY29uc3QgdW5pb24gcGxhbmVfc2l6ZSAqcGxhbmVfc2l6ZSkKKwljb25zdCBzdHJ1Y3QgcGxhbmVfc2l6ZSAqcGxhbmVfc2l6ZSkKIHsKLQljb25zdCBzdHJ1Y3QgcmVjdCAqaW5fcmVjdCA9ICZwbGFuZV9zaXplLT5ncnBoLnN1cmZhY2Vfc2l6ZTsKLQlzdHJ1Y3QgcmVjdCBod19yZWN0ID0gcGxhbmVfc2l6ZS0+Z3JwaC5zdXJmYWNlX3NpemU7CisJY29uc3Qgc3RydWN0IHJlY3QgKmluX3JlY3QgPSAmcGxhbmVfc2l6ZS0+c3VyZmFjZV9zaXplOworCXN0cnVjdCByZWN0IGh3X3JlY3QgPSBwbGFuZV9zaXplLT5zdXJmYWNlX3NpemU7CiAJY29uc3QgdWludDMyX3Qgcm90YXRpb25fYW5nbGVzW1JPVEFUSU9OX0FOR0xFX0NPVU5UXSA9IHsKIAkJCVtST1RBVElPTl9BTkdMRV8wXSA9IDAsCiAJCQlbUk9UQVRJT05fQU5HTEVfOTBdID0gMSwKQEAgLTQyMyw3ICs0MjMsNyBAQCBzdGF0aWMgdm9pZCBwcm9ncmFtX3NpemVfYW5kX3JvdGF0aW9uKAogCQkJR1JQSF9ZX0VORCwgaHdfcmVjdC5oZWlnaHQpOwogCiAJUkVHX1NFVChHUlBIX1BJVENILCAwLAotCQkJR1JQSF9QSVRDSCwgcGxhbmVfc2l6ZS0+Z3JwaC5zdXJmYWNlX3BpdGNoKTsKKwkJCUdSUEhfUElUQ0gsIHBsYW5lX3NpemUtPnN1cmZhY2VfcGl0Y2gpOwogCiAJUkVHX1NFVChIV19ST1RBVElPTiwgMCwKIAkJCUdSUEhfUk9UQVRJT05fQU5HTEUsIHJvdGF0aW9uX2FuZ2xlc1tyb3RhdGlvbl0pOwpAQCAtNTA1LDcgKzUwNSw3IEBAIHN0YXRpYyB2b2lkIGRjZV9taV9wcm9ncmFtX3N1cmZhY2VfY29uZmlnKAogCXN0cnVjdCBtZW1faW5wdXQgKm1pLAogCWVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAogCXVuaW9uIGRjX3RpbGluZ19pbmZvICp0aWxpbmdfaW5mbywKLQl1bmlvbiBwbGFuZV9zaXplICpwbGFuZV9zaXplLAorCXN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAogCWVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb24sCiAJc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSAqZGNjLAogCWJvb2wgaG9yaXpvbnRhbF9taXJyb3IpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9zdHJlYW1fZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2Vfc3RyZWFtX2VuY29kZXIuYwppbmRleCA1ZTJiNGQ0Li42ZWQ5MjJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9zdHJlYW1fZW5jb2Rlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX3N0cmVhbV9lbmNvZGVyLmMKQEAgLTEwMzgsNiArMTAzOCwyNCBAQCBzdGF0aWMgdm9pZCBkY2UxMTBfc3RyZWFtX2VuY29kZXJfc2V0X2F2bXV0ZSgKIH0KIAogCitzdGF0aWMgdm9pZCBkY2UxMTBfcmVzZXRfaGRtaV9zdHJlYW1fYXR0cmlidXRlKAorCXN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jKQoreworCXN0cnVjdCBkY2UxMTBfc3RyZWFtX2VuY29kZXIgKmVuYzExMCA9IERDRTExMFNUUkVOQ19GUk9NX1NUUkVOQyhlbmMpOworCWlmIChlbmMxMTAtPnNlX21hc2stPkhETUlfREFUQV9TQ1JBTUJMRV9FTikKKwkJUkVHX1VQREFURV81KEhETUlfQ09OVFJPTCwKKwkJCUhETUlfUEFDS0VUX0dFTl9WRVJTSU9OLCAxLAorCQkJSERNSV9LRUVQT1VUX01PREUsIDEsCisJCQlIRE1JX0RFRVBfQ09MT1JfRU5BQkxFLCAwLAorCQkJSERNSV9EQVRBX1NDUkFNQkxFX0VOLCAwLAorCQkJSERNSV9DTE9DS19DSEFOTkVMX1JBVEUsIDApOworCWVsc2UKKwkJUkVHX1VQREFURV8zKEhETUlfQ09OVFJPTCwKKwkJCUhETUlfUEFDS0VUX0dFTl9WRVJTSU9OLCAxLAorCQkJSERNSV9LRUVQT1VUX01PREUsIDEsCisJCQlIRE1JX0RFRVBfQ09MT1JfRU5BQkxFLCAwKTsKK30KKwogI2RlZmluZSBEUF9TRUNfQVVEX05fX0RQX1NFQ19BVURfTl9fREVGQVVMVCAweDgwMDAKICNkZWZpbmUgRFBfU0VDX1RJTUVTVEFNUF9fRFBfU0VDX1RJTUVTVEFNUF9NT0RFX19BVVRPX0NBTEMgMQogCkBAIC0xMjUxLDEzICsxMjY5LDEzIEBAIHN0YXRpYyB1aW50MzJfdCBjYWxjX21heF9hdWRpb19wYWNrZXRzX3Blcl9saW5lKAogCiBzdGF0aWMgdm9pZCBnZXRfYXVkaW9fY2xvY2tfaW5mbygKIAllbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRoLAotCXVpbnQzMl90IGNydGNfcGl4ZWxfY2xvY2tfaW5fa2h6LAotCXVpbnQzMl90IGFjdHVhbF9waXhlbF9jbG9ja19pbl9raHosCisJdWludDMyX3QgY3J0Y19waXhlbF9jbG9ja18xMDBIeiwKKwl1aW50MzJfdCBhY3R1YWxfcGl4ZWxfY2xvY2tfMTAwSHosCiAJc3RydWN0IGF1ZGlvX2Nsb2NrX2luZm8gKmF1ZGlvX2Nsb2NrX2luZm8pCiB7CiAJY29uc3Qgc3RydWN0IGF1ZGlvX2Nsb2NrX2luZm8gKmNsb2NrX2luZm87CiAJdWludDMyX3QgaW5kZXg7Ci0JdWludDMyX3QgY3J0Y19waXhlbF9jbG9ja19pbl8xMGtoeiA9IGNydGNfcGl4ZWxfY2xvY2tfaW5fa2h6IC8gMTA7CisJdWludDMyX3QgY3J0Y19waXhlbF9jbG9ja19pbl8xMGtoeiA9IGNydGNfcGl4ZWxfY2xvY2tfMTAwSHogLyAxMDA7CiAJdWludDMyX3QgYXVkaW9fYXJyYXlfc2l6ZTsKIAogCXN3aXRjaCAoY29sb3JfZGVwdGgpIHsKQEAgLTEyOTQsMTYgKzEzMTIsMTYgQEAgc3RhdGljIHZvaWQgZ2V0X2F1ZGlvX2Nsb2NrX2luZm8oCiAJfQogCiAJLyogbm90IGZvdW5kICovCi0JaWYgKGFjdHVhbF9waXhlbF9jbG9ja19pbl9raHogPT0gMCkKLQkJYWN0dWFsX3BpeGVsX2Nsb2NrX2luX2toeiA9IGNydGNfcGl4ZWxfY2xvY2tfaW5fa2h6OworCWlmIChhY3R1YWxfcGl4ZWxfY2xvY2tfMTAwSHogPT0gMCkKKwkJYWN0dWFsX3BpeGVsX2Nsb2NrXzEwMEh6ID0gY3J0Y19waXhlbF9jbG9ja18xMDBIejsKIAogCS8qIFNlZSBIRE1JIHNwZWMgIHRoZSB0YWJsZSBlbnRyeSB1bmRlcgogCSAqICBwaXhlbCBjbG9jayBvZiAiT3RoZXIiLiAqLwogCWF1ZGlvX2Nsb2NrX2luZm8tPnBpeGVsX2Nsb2NrX2luXzEwa2h6ID0KLQkJCWFjdHVhbF9waXhlbF9jbG9ja19pbl9raHogLyAxMDsKLQlhdWRpb19jbG9ja19pbmZvLT5jdHNfMzJraHogPSBhY3R1YWxfcGl4ZWxfY2xvY2tfaW5fa2h6OwotCWF1ZGlvX2Nsb2NrX2luZm8tPmN0c180NGtoeiA9IGFjdHVhbF9waXhlbF9jbG9ja19pbl9raHo7Ci0JYXVkaW9fY2xvY2tfaW5mby0+Y3RzXzQ4a2h6ID0gYWN0dWFsX3BpeGVsX2Nsb2NrX2luX2toejsKKwkJCWFjdHVhbF9waXhlbF9jbG9ja18xMDBIeiAvIDEwMDsKKwlhdWRpb19jbG9ja19pbmZvLT5jdHNfMzJraHogPSBhY3R1YWxfcGl4ZWxfY2xvY2tfMTAwSHogLyAxMDsKKwlhdWRpb19jbG9ja19pbmZvLT5jdHNfNDRraHogPSBhY3R1YWxfcGl4ZWxfY2xvY2tfMTAwSHogLyAxMDsKKwlhdWRpb19jbG9ja19pbmZvLT5jdHNfNDhraHogPSBhY3R1YWxfcGl4ZWxfY2xvY2tfMTAwSHogLyAxMDsKIAogCWF1ZGlvX2Nsb2NrX2luZm8tPm5fMzJraHogPSA0MDk2OwogCWF1ZGlvX2Nsb2NrX2luZm8tPm5fNDRraHogPSA2MjcyOwpAQCAtMTM2OSwxNCArMTM4NywxNCBAQCBzdGF0aWMgdm9pZCBkY2UxMTBfc2Vfc2V0dXBfaGRtaV9hdWRpbygKIAogCS8qIFByb2dyYW0gYXVkaW8gY2xvY2sgc2FtcGxlL3JlZ2VuZXJhdGlvbiBwYXJhbWV0ZXJzICovCiAJZ2V0X2F1ZGlvX2Nsb2NrX2luZm8oY3J0Y19pbmZvLT5jb2xvcl9kZXB0aCwKLQkJCSAgICAgY3J0Y19pbmZvLT5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2ssCi0JCQkgICAgIGNydGNfaW5mby0+Y2FsY3VsYXRlZF9waXhlbF9jbG9jaywKKwkJCSAgICAgY3J0Y19pbmZvLT5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2tfMTAwSHosCisJCQkgICAgIGNydGNfaW5mby0+Y2FsY3VsYXRlZF9waXhlbF9jbG9ja18xMDBIeiwKIAkJCSAgICAgJmF1ZGlvX2Nsb2NrX2luZm8pOwogCURDX0xPR19IV19BVURJTygKLQkJCSJcbiVzOklucHV0OjpyZXF1ZXN0ZWRfcGl4ZWxfY2xvY2sgPSAlZCIJXAotCQkJImNhbGN1bGF0ZWRfcGl4ZWxfY2xvY2sgPSAlZCBcbiIsIF9fZnVuY19fLAlcCi0JCQljcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9jaywJCVwKLQkJCWNydGNfaW5mby0+Y2FsY3VsYXRlZF9waXhlbF9jbG9jayk7CisJCQkiXG4lczpJbnB1dDo6cmVxdWVzdGVkX3BpeGVsX2Nsb2NrXzEwMEh6ID0gJWQiCVwKKwkJCSJjYWxjdWxhdGVkX3BpeGVsX2Nsb2NrXzEwMEh6ID0gJWQgXG4iLCBfX2Z1bmNfXywJXAorCQkJY3J0Y19pbmZvLT5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2tfMTAwSHosCQlcCisJCQljcnRjX2luZm8tPmNhbGN1bGF0ZWRfcGl4ZWxfY2xvY2tfMTAwSHopOwogCiAJLyogSERNSV9BQ1JfMzJfMF9fSERNSV9BQ1JfQ1RTXzMyX01BU0sgKi8KIAlSRUdfVVBEQVRFKEhETUlfQUNSXzMyXzAsIEhETUlfQUNSX0NUU18zMiwgYXVkaW9fY2xvY2tfaW5mby5jdHNfMzJraHopOwpAQCAtMTU4NCw2ICsxNjAyLDE3IEBAIHN0YXRpYyB2b2lkIGRpZ19jb25uZWN0X3RvX290ZygKIAlSRUdfVVBEQVRFKERJR19GRV9DTlRMLCBESUdfU09VUkNFX1NFTEVDVCwgdGdfaW5zdCk7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZGlnX3NvdXJjZV9vdGcoCisJc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMpCit7CisJdWludDMyX3QgdGdfaW5zdCA9IDA7CisJc3RydWN0IGRjZTExMF9zdHJlYW1fZW5jb2RlciAqZW5jMTEwID0gRENFMTEwU1RSRU5DX0ZST01fU1RSRU5DKGVuYyk7CisKKwlSRUdfR0VUKERJR19GRV9DTlRMLCBESUdfU09VUkNFX1NFTEVDVCwgJnRnX2luc3QpOworCisJcmV0dXJuIHRnX2luc3Q7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXJfZnVuY3MgZGNlMTEwX3N0cl9lbmNfZnVuY3MgPSB7CiAJLmRwX3NldF9zdHJlYW1fYXR0cmlidXRlID0KIAkJZGNlMTEwX3N0cmVhbV9lbmNvZGVyX2RwX3NldF9zdHJlYW1fYXR0cmlidXRlLApAQCAtMTYxOCw2ICsxNjQ3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdHJlYW1fZW5jb2Rlcl9mdW5jcyBkY2UxMTBfc3RyX2VuY19mdW5jcyA9IHsKIAkuc2V0dXBfc3RlcmVvX3N5bmMgID0gc2V0dXBfc3RlcmVvX3N5bmMsCiAJLnNldF9hdm11dGUgPSBkY2UxMTBfc3RyZWFtX2VuY29kZXJfc2V0X2F2bXV0ZSwKIAkuZGlnX2Nvbm5lY3RfdG9fb3RnICA9IGRpZ19jb25uZWN0X3RvX290ZywKKwkuaGRtaV9yZXNldF9zdHJlYW1fYXR0cmlidXRlID0gZGNlMTEwX3Jlc2V0X2hkbWlfc3RyZWFtX2F0dHJpYnV0ZSwKKwkuZGlnX3NvdXJjZV9vdGcgPSBkaWdfc291cmNlX290ZywKIH07CiAKIHZvaWQgZGNlMTEwX3N0cmVhbV9lbmNvZGVyX2NvbnN0cnVjdCgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMDAvZGNlMTAwX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTAwL2RjZTEwMF9yZXNvdXJjZS5jCmluZGV4IDYyNDhjODQ1Li4xNzg3YjliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTAwL2RjZTEwMF9yZXNvdXJjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMDAvZGNlMTAwX3Jlc291cmNlLmMKQEAgLTMwNCw3ICszMDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hdWRpb19zaGlmdCBhdWRpb19zaGlmdCA9IHsKIAkJQVVEX0NPTU1PTl9NQVNLX1NIX0xJU1QoX19TSElGVCkKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNlX2FkdWlvX21hc2sgYXVkaW9fbWFzayA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNlX2F1ZGlvX21hc2sgYXVkaW9fbWFzayA9IHsKIAkJQVVEX0NPTU1PTl9NQVNLX1NIX0xJU1QoX01BU0spCiB9OwogCkBAIC05MTAsNyArOTEwLDYgQEAgc3RhdGljIGJvb2wgY29uc3RydWN0KAogewogCXVuc2lnbmVkIGludCBpOwogCXN0cnVjdCBkY19jb250ZXh0ICpjdHggPSBkYy0+Y3R4OwotCXN0cnVjdCBkY19maXJtd2FyZV9pbmZvIGluZm87CiAJc3RydWN0IGRjX2Jpb3MgKmJwOwogCiAJY3R4LT5kY19iaW9zLT5yZWdzID0gJmJpb3NfcmVnczsKQEAgLTkyMSw4ICs5MjAsNyBAQCBzdGF0aWMgYm9vbCBjb25zdHJ1Y3QoCiAKIAlicCA9IGN0eC0+ZGNfYmlvczsKIAotCWlmICgoYnAtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbyhicCwgJmluZm8pID09IEJQX1JFU1VMVF9PSykgJiYKLQkJaW5mby5leHRlcm5hbF9jbG9ja19zb3VyY2VfZnJlcXVlbmN5X2Zvcl9kcCAhPSAwKSB7CisJaWYgKGJwLT5md19pbmZvX3ZhbGlkICYmIGJwLT5md19pbmZvLmV4dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVxdWVuY3lfZm9yX2RwICE9IDApIHsKIAkJcG9vbC0+YmFzZS5kcF9jbG9ja19zb3VyY2UgPQogCQkJCWRjZTEwMF9jbG9ja19zb3VyY2VfY3JlYXRlKGN0eCwgYnAsIENMT0NLX1NPVVJDRV9JRF9FWFRFUk5BTCwgTlVMTCwgdHJ1ZSk7CiAKQEAgLTEwOTMsNiArMTA5MSw3IEBAIHN0cnVjdCByZXNvdXJjZV9wb29sICpkY2UxMDBfY3JlYXRlX3Jlc291cmNlX3Bvb2woCiAJaWYgKGNvbnN0cnVjdChudW1fdmlydHVhbF9saW5rcywgZGMsIHBvb2wpKQogCQlyZXR1cm4gJnBvb2wtPmJhc2U7CiAKKwlrZnJlZShwb29sKTsKIAlCUkVBS19UT19ERUJVR0dFUigpOwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTExMF9od19zZXF1ZW5jZXIuYwppbmRleCBmYWZiNGI0Ny4uMDFhOTI0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmMKQEAgLTY2NywyOSArNjY3LDcgQEAgdm9pZCBkY2UxMTBfZW5hYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCWxpbmstPmxpbmtfZW5jLT5mdW5jcy0+Y29ubmVjdF9kaWdfYmVfdG9fZmUobGluay0+bGlua19lbmMsCiAJCQkJCQkgICAgcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+aWQsIHRydWUpOwogCi0JLyogdXBkYXRlIEFWSSBpbmZvIGZyYW1lIChIRE1JLCBEUCkqLwotCS8qIFRPRE86IEZQR0EgbWF5IGNoYW5nZSB0byBod3NzLnVwZGF0ZV9pbmZvX2ZyYW1lICovCi0KLSNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKLQlpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+ZnVuY3MtPnNldF9keW5hbWljX21ldGFkYXRhICE9IE5VTEwgJiYKLQkJCXBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicCAhPSBOVUxMKSB7Ci0JCWlmIChwaXBlX2N0eC0+c3RyZWFtLT5kbWRhdGFfYWRkcmVzcy5xdWFkX3BhcnQgIT0gMCkgewotCQkJLyogaWYgdXNpbmcgZHluYW1pYyBtZXRhLCBkb24ndCBzZXQgdXAgZ2VuZXJpYyBpbmZvcGFja2V0cyAqLwotCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuZW5jb2Rlcl9pbmZvX2ZyYW1lLmhkcnNtZC52YWxpZCA9IGZhbHNlOwotCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+ZnVuY3MtPnNldF9keW5hbWljX21ldGFkYXRhKAotCQkJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLAotCQkJCQl0cnVlLCBwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAtPmluc3QsCi0JCQkJCWRjX2lzX2RwX3NpZ25hbChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwpID8KLQkJCQkJCQlkbWRhdGFfZHAgOiBkbWRhdGFfaGRtaSk7Ci0JCX0gZWxzZQotCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+ZnVuY3MtPnNldF9keW5hbWljX21ldGFkYXRhKAotCQkJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLAotCQkJCQlmYWxzZSwgcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwLT5pbnN0LAotCQkJCQlkY19pc19kcF9zaWduYWwocGlwZV9jdHgtPnN0cmVhbS0+c2lnbmFsKSA/Ci0JCQkJCQkJZG1kYXRhX2RwIDogZG1kYXRhX2hkbWkpOwotCX0KLSNlbmRpZgotCWRjZTExMF91cGRhdGVfaW5mb19mcmFtZShwaXBlX2N0eCk7CisJbGluay0+ZGMtPmh3c3MudXBkYXRlX2luZm9fZnJhbWUocGlwZV9jdHgpOwogCiAJLyogZW5hYmxlIGVhcmx5IGNvbnRyb2wgdG8gYXZvaWQgY29ycnVwdGlvbiBvbiBEUCBtb25pdG9yKi8KIAlhY3RpdmVfdG90YWxfd2l0aF9ib3JkZXJzID0KQEAgLTc1Myw3ICs3MzEsNyBAQCBzdGF0aWMgZW51bSBicF9yZXN1bHQgbGlua190cmFuc21pdHRlcl9jb250cm9sKAogICogQGJyaWVmCiAgKiBlRFAgb25seS4KICAqLwotdm9pZCBod3NzX2VkcF93YWl0X2Zvcl9ocGRfcmVhZHkoCit2b2lkIGRjZTExMF9lZHBfd2FpdF9mb3JfaHBkX3JlYWR5KAogCQlzdHJ1Y3QgZGNfbGluayAqbGluaywKIAkJYm9vbCBwb3dlcl91cCkKIHsKQEAgLTgyMSw3ICs3OTksNyBAQCB2b2lkIGh3c3NfZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSgKIAl9CiB9CiAKLXZvaWQgaHdzc19lZHBfcG93ZXJfY29udHJvbCgKK3ZvaWQgZGNlMTEwX2VkcF9wb3dlcl9jb250cm9sKAogCQlzdHJ1Y3QgZGNfbGluayAqbGluaywKIAkJYm9vbCBwb3dlcl91cCkKIHsKQEAgLTkwMyw3ICs4ODEsNyBAQCB2b2lkIGh3c3NfZWRwX3Bvd2VyX2NvbnRyb2woCiAgKiBAYnJpZWYKICAqIGVEUCBvbmx5LiBDb250cm9sIHRoZSBiYWNrbGlnaHQgb2YgdGhlIGVEUCBwYW5lbAogICovCi12b2lkIGh3c3NfZWRwX2JhY2tsaWdodF9jb250cm9sKAordm9pZCBkY2UxMTBfZWRwX2JhY2tsaWdodF9jb250cm9sKAogCQlzdHJ1Y3QgZGNfbGluayAqbGluaywKIAkJYm9vbCBlbmFibGUpCiB7CkBAIC0xMDAzLDcgKzk4MSw3IEBAIHZvaWQgZGNlMTEwX2VuYWJsZV9hdWRpb19zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAl9CiB9CiAKLXZvaWQgZGNlMTEwX2Rpc2FibGVfYXVkaW9fc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGludCBvcHRpb24pCit2b2lkIGRjZTExMF9kaXNhYmxlX2F1ZGlvX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewogCXN0cnVjdCBkYyAqZGM7CiAJc3RydWN0IHBwX3NtdV9mdW5jcyAqcHBfc211ID0gTlVMTDsKQEAgLTEwMjYsMjQgKzEwMDQsMTMgQEAgdm9pZCBkY2UxMTBfZGlzYWJsZV9hdWRpb19zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgaW50IG9wdGlvbikKIAkJaWYgKGRjLT5yZXNfcG9vbC0+cHBfc211KQogCQkJcHBfc211ID0gZGMtPnJlc19wb29sLT5wcF9zbXU7CiAKLQkJaWYgKG9wdGlvbiAhPSBLRUVQX0FDUVVJUkVEX1JFU09VUkNFIHx8Ci0JCQkJIWRjLT5kZWJ1Zy5hel9lbmRwb2ludF9tdXRlX29ubHkpCi0JCQkvKm9ubHkgZGlzYWxiZSBhel9lbmRwb2ludCBpZiBwb3dlciBkb3duIG9yIGZyZWUqLwotCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuYXVkaW8tPmZ1bmNzLT5hel9kaXNhYmxlKHBpcGVfY3R4LT5zdHJlYW1fcmVzLmF1ZGlvKTsKLQogCQlpZiAoZGNfaXNfZHBfc2lnbmFsKHBpcGVfY3R4LT5zdHJlYW0tPnNpZ25hbCkpCiAJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLT5mdW5jcy0+ZHBfYXVkaW9fZGlzYWJsZSgKIAkJCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYyk7CiAJCWVsc2UKIAkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmZ1bmNzLT5oZG1pX2F1ZGlvX2Rpc2FibGUoCiAJCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMpOwotCQkvKmRvbid0IGZyZWUgYXVkaW8gaWYgaXQgaXMgZnJvbSByZXRyYWluIG9yIGludGVybmFsIGRpc2FibGUgc3RyZWFtKi8KLQkJaWYgKG9wdGlvbiA9PSBGUkVFX0FDUVVJUkVEX1JFU09VUkNFICYmIGRjLT5jYXBzLmR5bmFtaWNfYXVkaW8gPT0gdHJ1ZSkgewotCQkJLyp3ZSBoYXZlIHRvIGR5bmFtaWMgYXJiaXRyYXRlIHRoZSBhdWRpbyBlbmRwb2ludHMqLwotCQkJLyp3ZSBmcmVlIHRoZSByZXNvdXJjZSwgbmVlZCByZXNldCBpc19hdWRpb19hY3F1aXJlZCovCi0JCQl1cGRhdGVfYXVkaW9fdXNhZ2UoJmRjLT5jdXJyZW50X3N0YXRlLT5yZXNfY3R4LCBkYy0+cmVzX3Bvb2wsIHBpcGVfY3R4LT5zdHJlYW1fcmVzLmF1ZGlvLCBmYWxzZSk7Ci0JCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5hdWRpbyA9IE5VTEw7Ci0JCX0KKwogCQlpZiAoY2xrX21nci0+ZnVuY3MtPmVuYWJsZV9wbWVfd2EpCiAJCQkvKnRoaXMgaXMgdGhlIGZpcnN0IGF1ZGlvLiBhcHBseSB0aGUgUE1FIHcvYSBpbiBvcmRlciB0byB3YWtlIEFaIGZyb20gRDMqLwogCQkJY2xrX21nci0+ZnVuY3MtPmVuYWJsZV9wbWVfd2EoY2xrX21ncik7CkBAIC0xMDU2LDIxICsxMDIzLDI0IEBAIHZvaWQgZGNlMTEwX2Rpc2FibGVfYXVkaW9fc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGludCBvcHRpb24pCiAJfQogfQogCi12b2lkIGRjZTExMF9kaXNhYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBpbnQgb3B0aW9uKQordm9pZCBkY2UxMTBfZGlzYWJsZV9zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0gPSBwaXBlX2N0eC0+c3RyZWFtOwogCXN0cnVjdCBkY19saW5rICpsaW5rID0gc3RyZWFtLT5saW5rOwogCXN0cnVjdCBkYyAqZGMgPSBwaXBlX2N0eC0+c3RyZWFtLT5jdHgtPmRjOwogCi0JaWYgKGRjX2lzX2hkbWlfdG1kc19zaWduYWwocGlwZV9jdHgtPnN0cmVhbS0+c2lnbmFsKSkKKwlpZiAoZGNfaXNfaGRtaV90bWRzX3NpZ25hbChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwpKSB7CiAJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmZ1bmNzLT5zdG9wX2hkbWlfaW5mb19wYWNrZXRzKAogCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYyk7CisJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmZ1bmNzLT5oZG1pX3Jlc2V0X3N0cmVhbV9hdHRyaWJ1dGUoCisJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jKTsKKwl9CiAKIAlpZiAoZGNfaXNfZHBfc2lnbmFsKHBpcGVfY3R4LT5zdHJlYW0tPnNpZ25hbCkpCiAJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmZ1bmNzLT5zdG9wX2RwX2luZm9fcGFja2V0cygKIAkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMpOwogCi0JZGMtPmh3c3MuZGlzYWJsZV9hdWRpb19zdHJlYW0ocGlwZV9jdHgsIG9wdGlvbik7CisJZGMtPmh3c3MuZGlzYWJsZV9hdWRpb19zdHJlYW0ocGlwZV9jdHgpOwogCiAJbGluay0+bGlua19lbmMtPmZ1bmNzLT5jb25uZWN0X2RpZ19iZV90b19mZSgKIAkJCWxpbmstPmxpbmtfZW5jLApAQCAtMTE3NCwyNyArMTE0NCwyNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9hdWRpb19vdXRwdXQoCiAJCQlzdHJlYW0tPnRpbWluZy5mbGFncy5JTlRFUkxBQ0U7CiAKIAlhdWRpb19vdXRwdXQtPmNydGNfaW5mby5yZWZyZXNoX3JhdGUgPQotCQkoc3RyZWFtLT50aW1pbmcucGl4X2Nsa18xMDBoeioxMDAwMCkvCisJCShzdHJlYW0tPnRpbWluZy5waXhfY2xrXzEwMGh6KjEwMCkvCiAJCShzdHJlYW0tPnRpbWluZy5oX3RvdGFsKnN0cmVhbS0+dGltaW5nLnZfdG90YWwpOwogCiAJYXVkaW9fb3V0cHV0LT5jcnRjX2luZm8uY29sb3JfZGVwdGggPQogCQlzdHJlYW0tPnRpbWluZy5kaXNwbGF5X2NvbG9yX2RlcHRoOwogCi0JYXVkaW9fb3V0cHV0LT5jcnRjX2luZm8ucmVxdWVzdGVkX3BpeGVsX2Nsb2NrID0KLQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnBpeF9jbGtfcGFyYW1zLnJlcXVlc3RlZF9waXhfY2xrXzEwMGh6IC8gMTA7CisJYXVkaW9fb3V0cHV0LT5jcnRjX2luZm8ucmVxdWVzdGVkX3BpeGVsX2Nsb2NrXzEwMEh6ID0KKwkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnBpeF9jbGtfcGFyYW1zLnJlcXVlc3RlZF9waXhfY2xrXzEwMGh6OwogCi0JYXVkaW9fb3V0cHV0LT5jcnRjX2luZm8uY2FsY3VsYXRlZF9waXhlbF9jbG9jayA9Ci0JCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5waXhfY2xrX3BhcmFtcy5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoeiAvIDEwOworCWF1ZGlvX291dHB1dC0+Y3J0Y19pbmZvLmNhbGN1bGF0ZWRfcGl4ZWxfY2xvY2tfMTAwSHogPQorCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMucGl4X2Nsa19wYXJhbXMucmVxdWVzdGVkX3BpeF9jbGtfMTAwaHo7CiAKIC8qZm9yIEhETUksIGF1ZGlvIEFDUiBpcyB3aXRoIGRlZXAgY29sb3IgcmF0aW8gZmFjdG9yKi8KIAlpZiAoZGNfaXNfaGRtaV9zaWduYWwocGlwZV9jdHgtPnN0cmVhbS0+c2lnbmFsKSAmJgotCQlhdWRpb19vdXRwdXQtPmNydGNfaW5mby5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2sgPT0KLQkJCQkoc3RyZWFtLT50aW1pbmcucGl4X2Nsa18xMDBoeiAvIDEwKSkgeworCQlhdWRpb19vdXRwdXQtPmNydGNfaW5mby5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2tfMTAwSHogPT0KKwkJCQkoc3RyZWFtLT50aW1pbmcucGl4X2Nsa18xMDBoeikpIHsKIAkJaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLnBpeF9jbGtfcGFyYW1zLnBpeGVsX2VuY29kaW5nID09IFBJWEVMX0VOQ09ESU5HX1lDQkNSNDIwKSB7Ci0JCQlhdWRpb19vdXRwdXQtPmNydGNfaW5mby5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2sgPQotCQkJCQlhdWRpb19vdXRwdXQtPmNydGNfaW5mby5yZXF1ZXN0ZWRfcGl4ZWxfY2xvY2svMjsKLQkJCWF1ZGlvX291dHB1dC0+Y3J0Y19pbmZvLmNhbGN1bGF0ZWRfcGl4ZWxfY2xvY2sgPQotCQkJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5waXhfY2xrX3BhcmFtcy5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoei8yMDsKKwkJCWF1ZGlvX291dHB1dC0+Y3J0Y19pbmZvLnJlcXVlc3RlZF9waXhlbF9jbG9ja18xMDBIeiA9CisJCQkJCWF1ZGlvX291dHB1dC0+Y3J0Y19pbmZvLnJlcXVlc3RlZF9waXhlbF9jbG9ja18xMDBIei8yOworCQkJYXVkaW9fb3V0cHV0LT5jcnRjX2luZm8uY2FsY3VsYXRlZF9waXhlbF9jbG9ja18xMDBIeiA9CisJCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnBpeF9jbGtfcGFyYW1zLnJlcXVlc3RlZF9waXhfY2xrXzEwMGh6LzI7CiAKIAkJfQogCX0KQEAgLTEzNjAsNyArMTMzMCw3IEBAIHN0YXRpYyBlbnVtIGRjX3N0YXR1cyBhcHBseV9zaW5nbGVfY29udHJvbGxlcl9jdHhfdG9faHcoCiAJc3RydWN0IGRycl9wYXJhbXMgcGFyYW1zID0gezB9OwogCXVuc2lnbmVkIGludCBldmVudF90cmlnZ2VycyA9IDA7CiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCi0Jc3RydWN0IHBpcGVfY3R4ICpvZG1fcGlwZSA9IGRjX3Jlc19nZXRfb2RtX2JvdHRvbV9waXBlKHBpcGVfY3R4KTsKKwlzdHJ1Y3QgcGlwZV9jdHggKm9kbV9waXBlID0gcGlwZV9jdHgtPm5leHRfb2RtX3BpcGU7CiAjZW5kaWYKIAogCWlmIChkYy0+aHdzcy5kaXNhYmxlX3N0cmVhbV9nYXRpbmcpIHsKQEAgLTE0MjgsNyArMTM5OCw3IEBAIHN0YXRpYyBlbnVtIGRjX3N0YXR1cyBhcHBseV9zaW5nbGVfY29udHJvbGxlcl9jdHhfdG9faHcoCiAJCSZzdHJlYW0tPmJpdF9kZXB0aF9wYXJhbXMsCiAJCSZzdHJlYW0tPmNsYW1waW5nKTsKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKLQlpZiAob2RtX3BpcGUpIHsKKwl3aGlsZSAob2RtX3BpcGUpIHsKIAkJb2RtX3BpcGUtPnN0cmVhbV9yZXMub3BwLT5mdW5jcy0+b3BwX3NldF9keW5fZXhwYW5zaW9uKAogCQkJCW9kbV9waXBlLT5zdHJlYW1fcmVzLm9wcCwKIAkJCQlDT0xPUl9TUEFDRV9ZQ0JDUjYwMSwKQEAgLTE0MzksNiArMTQwOSw3IEBAIHN0YXRpYyBlbnVtIGRjX3N0YXR1cyBhcHBseV9zaW5nbGVfY29udHJvbGxlcl9jdHhfdG9faHcoCiAJCQkJb2RtX3BpcGUtPnN0cmVhbV9yZXMub3BwLAogCQkJCSZzdHJlYW0tPmJpdF9kZXB0aF9wYXJhbXMsCiAJCQkJJnN0cmVhbS0+Y2xhbXBpbmcpOworCQlvZG1fcGlwZSA9IG9kbV9waXBlLT5uZXh0X29kbV9waXBlOwogCX0KICNlbmRpZgogCkBAIC0xNzQ4LDcgKzE3MTksOCBAQCB2b2lkIGRjZTExMF9zZXRfc2FmZV9kaXNwbGF5bWFya3MoCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBzdGF0aWMgdm9pZCBzZXRfZHJyKHN0cnVjdCBwaXBlX2N0eCAqKnBpcGVfY3R4LAotCQlpbnQgbnVtX3BpcGVzLCBpbnQgdm1pbiwgaW50IHZtYXgpCisJCWludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB2bWluLCB1bnNpZ25lZCBpbnQgdm1heCwKKwkJdW5zaWduZWQgaW50IHZtaWQsIHVuc2lnbmVkIGludCB2bWlkX2ZyYW1lX251bWJlcikKIHsKIAlpbnQgaSA9IDA7CiAJc3RydWN0IGRycl9wYXJhbXMgcGFyYW1zID0gezB9OwpAQCAtMTkzMiw4ICsxOTA0LDI1IEBAIHN0YXRpYyB2b2lkIGRjZTExMF9yZXNldF9od19jdHhfd3JhcCgKIAkJCS8qIERpc2FibGUgaWYgbmV3IHN0cmVhbSBpcyBudWxsLiBPL3csIGlmIHN0cmVhbSBpcwogCQkJICogZGlzYWJsZWQgYWxyZWFkeSwgbm8gbmVlZCB0byBkaXNhYmxlIGFnYWluLgogCQkJICovCi0JCQlpZiAoIXBpcGVfY3R4LT5zdHJlYW0gfHwgIXBpcGVfY3R4LT5zdHJlYW0tPmRwbXNfb2ZmKQotCQkJCWNvcmVfbGlua19kaXNhYmxlX3N0cmVhbShwaXBlX2N0eF9vbGQsIEZSRUVfQUNRVUlSRURfUkVTT1VSQ0UpOworCQkJaWYgKCFwaXBlX2N0eC0+c3RyZWFtIHx8ICFwaXBlX2N0eC0+c3RyZWFtLT5kcG1zX29mZikgeworCQkJCWNvcmVfbGlua19kaXNhYmxlX3N0cmVhbShwaXBlX2N0eF9vbGQpOworCisJCQkJLyogZnJlZSBhY3F1aXJlZCByZXNvdXJjZXMqLworCQkJCWlmIChwaXBlX2N0eF9vbGQtPnN0cmVhbV9yZXMuYXVkaW8pIHsKKwkJCQkJLypkaXNhYmxlIGF6X2VuZHBvaW50Ki8KKwkJCQkJcGlwZV9jdHhfb2xkLT5zdHJlYW1fcmVzLmF1ZGlvLT5mdW5jcy0+CisJCQkJCQkJYXpfZGlzYWJsZShwaXBlX2N0eF9vbGQtPnN0cmVhbV9yZXMuYXVkaW8pOworCisJCQkJCS8qZnJlZSBhdWRpbyovCisJCQkJCWlmIChkYy0+Y2Fwcy5keW5hbWljX2F1ZGlvID09IHRydWUpIHsKKwkJCQkJCS8qd2UgaGF2ZSB0byBkeW5hbWljIGFyYml0cmF0ZSB0aGUgYXVkaW8gZW5kcG9pbnRzKi8KKwkJCQkJCS8qd2UgZnJlZSB0aGUgcmVzb3VyY2UsIG5lZWQgcmVzZXQgaXNfYXVkaW9fYWNxdWlyZWQqLworCQkJCQkJdXBkYXRlX2F1ZGlvX3VzYWdlKCZkYy0+Y3VycmVudF9zdGF0ZS0+cmVzX2N0eCwgZGMtPnJlc19wb29sLAorCQkJCQkJCQlwaXBlX2N0eF9vbGQtPnN0cmVhbV9yZXMuYXVkaW8sIGZhbHNlKTsKKwkJCQkJCXBpcGVfY3R4X29sZC0+c3RyZWFtX3Jlcy5hdWRpbyA9IE5VTEw7CisJCQkJCX0KKwkJCQl9CisJCQl9CiAKIAkJCXBpcGVfY3R4X29sZC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF9ibGFuayhwaXBlX2N0eF9vbGQtPnN0cmVhbV9yZXMudGcsIHRydWUpOwogCQkJaWYgKCFod3NzX3dhaXRfZm9yX2JsYW5rX2NvbXBsZXRlKHBpcGVfY3R4X29sZC0+c3RyZWFtX3Jlcy50ZykpIHsKQEAgLTIwOTgsNyArMjA4Nyw3IEBAIGVudW0gZGNfc3RhdHVzIGRjZTExMF9hcHBseV9jdHhfdG9faHcoCiAJCWlmIChwaXBlX2N0eF9vbGQtPnN0cmVhbSAmJiAhcGlwZV9uZWVkX3JlcHJvZ3JhbShwaXBlX2N0eF9vbGQsIHBpcGVfY3R4KSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChwaXBlX2N0eC0+dG9wX3BpcGUpCisJCWlmIChwaXBlX2N0eC0+dG9wX3BpcGUgfHwgcGlwZV9jdHgtPnByZXZfb2RtX3BpcGUpCiAJCQljb250aW51ZTsKIAogCQlzdGF0dXMgPSBhcHBseV9zaW5nbGVfY29udHJvbGxlcl9jdHhfdG9faHcoCkBAIC0yNzc3LDkgKzI3NjYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGh3X3NlcXVlbmNlcl9mdW5jcyBkY2UxMTBfZnVuY3MgPSB7CiAJLnNldHVwX3N0ZXJlbyA9IE5VTEwsCiAJLnNldF9hdm11dGUgPSBkY2UxMTBfc2V0X2F2bXV0ZSwKIAkud2FpdF9mb3JfbXBjY19kaXNjb25uZWN0ID0gZGNlMTEwX3dhaXRfZm9yX21wY2NfZGlzY29ubmVjdCwKLQkuZWRwX2JhY2tsaWdodF9jb250cm9sID0gaHdzc19lZHBfYmFja2xpZ2h0X2NvbnRyb2wsCi0JLmVkcF9wb3dlcl9jb250cm9sID0gaHdzc19lZHBfcG93ZXJfY29udHJvbCwKLQkuZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSA9IGh3c3NfZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSwKKwkuZWRwX2JhY2tsaWdodF9jb250cm9sID0gZGNlMTEwX2VkcF9iYWNrbGlnaHRfY29udHJvbCwKKwkuZWRwX3Bvd2VyX2NvbnRyb2wgPSBkY2UxMTBfZWRwX3Bvd2VyX2NvbnRyb2wsCisJLmVkcF93YWl0X2Zvcl9ocGRfcmVhZHkgPSBkY2UxMTBfZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSwKIAkuc2V0X2N1cnNvcl9wb3NpdGlvbiA9IGRjZTExMF9zZXRfY3Vyc29yX3Bvc2l0aW9uLAogCS5zZXRfY3Vyc29yX2F0dHJpYnV0ZSA9IGRjZTExMF9zZXRfY3Vyc29yX2F0dHJpYnV0ZQogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEwX2h3X3NlcXVlbmNlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmgKaW5kZXggY2QzZTM2ZC4uMmY5YjdkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmgKQEAgLTQyLDcgKzQyLDcgQEAgZW51bSBkY19zdGF0dXMgZGNlMTEwX2FwcGx5X2N0eF90b19odygKIAogdm9pZCBkY2UxMTBfZW5hYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIAotdm9pZCBkY2UxMTBfZGlzYWJsZV9zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgaW50IG9wdGlvbik7Cit2b2lkIGRjZTExMF9kaXNhYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIAogdm9pZCBkY2UxMTBfdW5ibGFua19zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAkJc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZ3MpOwpAQCAtNTAsNyArNTAsNyBAQCB2b2lkIGRjZTExMF91bmJsYW5rX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogdm9pZCBkY2UxMTBfYmxhbmtfc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogCiB2b2lkIGRjZTExMF9lbmFibGVfYXVkaW9fc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwotdm9pZCBkY2UxMTBfZGlzYWJsZV9hdWRpb19zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgaW50IG9wdGlvbik7Cit2b2lkIGRjZTExMF9kaXNhYmxlX2F1ZGlvX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIAogdm9pZCBkY2UxMTBfdXBkYXRlX2luZm9fZnJhbWUoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiAKQEAgLTczLDE1ICs3MywxNSBAQCB2b2lkIGRjZTExMF9vcHRpbWl6ZV9iYW5kd2lkdGgoCiAKIHZvaWQgZHBfcmVjZWl2ZXJfcG93ZXJfY3RybChzdHJ1Y3QgZGNfbGluayAqbGluaywgYm9vbCBvbik7CiAKLXZvaWQgaHdzc19lZHBfcG93ZXJfY29udHJvbCgKK3ZvaWQgZGNlMTEwX2VkcF9wb3dlcl9jb250cm9sKAogCQlzdHJ1Y3QgZGNfbGluayAqbGluaywKIAkJYm9vbCBwb3dlcl91cCk7CiAKLXZvaWQgaHdzc19lZHBfYmFja2xpZ2h0X2NvbnRyb2woCit2b2lkIGRjZTExMF9lZHBfYmFja2xpZ2h0X2NvbnRyb2woCiAJc3RydWN0IGRjX2xpbmsgKmxpbmssCiAJYm9vbCBlbmFibGUpOwogCi12b2lkIGh3c3NfZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSgKK3ZvaWQgZGNlMTEwX2VkcF93YWl0X2Zvcl9ocGRfcmVhZHkoCiAJCXN0cnVjdCBkY19saW5rICpsaW5rLAogCQlib29sIHBvd2VyX3VwKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfbWVtX2lucHV0X3YuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEwX21lbV9pbnB1dF92LmMKaW5kZXggOWI5ZmMzZC4uZDU0MTcyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfbWVtX2lucHV0X3YuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTExMF9tZW1faW5wdXRfdi5jCkBAIC0yMjksMjYgKzIyOSwyNiBAQCBzdGF0aWMgdm9pZCBwcm9ncmFtX3RpbGluZygKIHN0YXRpYyB2b2lkIHByb2dyYW1fc2l6ZV9hbmRfcm90YXRpb24oCiAJc3RydWN0IGRjZV9tZW1faW5wdXQgKm1lbV9pbnB1dDExMCwKIAllbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uLAotCWNvbnN0IHVuaW9uIHBsYW5lX3NpemUgKnBsYW5lX3NpemUpCisJY29uc3Qgc3RydWN0IHBsYW5lX3NpemUgKnBsYW5lX3NpemUpCiB7CiAJdWludDMyX3QgdmFsdWUgPSAwOwotCXVuaW9uIHBsYW5lX3NpemUgbG9jYWxfc2l6ZSA9ICpwbGFuZV9zaXplOworCXN0cnVjdCBwbGFuZV9zaXplIGxvY2FsX3NpemUgPSAqcGxhbmVfc2l6ZTsKIAogCWlmIChyb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV85MCB8fAogCQlyb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV8yNzApIHsKIAotCQlzd2FwKGxvY2FsX3NpemUudmlkZW8ubHVtYV9zaXplLngsCi0JCSAgICAgbG9jYWxfc2l6ZS52aWRlby5sdW1hX3NpemUueSk7Ci0JCXN3YXAobG9jYWxfc2l6ZS52aWRlby5sdW1hX3NpemUud2lkdGgsCi0JCSAgICAgbG9jYWxfc2l6ZS52aWRlby5sdW1hX3NpemUuaGVpZ2h0KTsKLQkJc3dhcChsb2NhbF9zaXplLnZpZGVvLmNocm9tYV9zaXplLngsCi0JCSAgICAgbG9jYWxfc2l6ZS52aWRlby5jaHJvbWFfc2l6ZS55KTsKLQkJc3dhcChsb2NhbF9zaXplLnZpZGVvLmNocm9tYV9zaXplLndpZHRoLAotCQkgICAgIGxvY2FsX3NpemUudmlkZW8uY2hyb21hX3NpemUuaGVpZ2h0KTsKKwkJc3dhcChsb2NhbF9zaXplLnN1cmZhY2Vfc2l6ZS54LAorCQkgICAgIGxvY2FsX3NpemUuc3VyZmFjZV9zaXplLnkpOworCQlzd2FwKGxvY2FsX3NpemUuc3VyZmFjZV9zaXplLndpZHRoLAorCQkgICAgIGxvY2FsX3NpemUuc3VyZmFjZV9zaXplLmhlaWdodCk7CisJCXN3YXAobG9jYWxfc2l6ZS5jaHJvbWFfc2l6ZS54LAorCQkgICAgIGxvY2FsX3NpemUuY2hyb21hX3NpemUueSk7CisJCXN3YXAobG9jYWxfc2l6ZS5jaHJvbWFfc2l6ZS53aWR0aCwKKwkJICAgICBsb2NhbF9zaXplLmNocm9tYV9zaXplLmhlaWdodCk7CiAJfQogCiAJdmFsdWUgPSAwOwotCXNldF9yZWdfZmllbGRfdmFsdWUodmFsdWUsIGxvY2FsX3NpemUudmlkZW8ubHVtYV9waXRjaCwKKwlzZXRfcmVnX2ZpZWxkX3ZhbHVlKHZhbHVlLCBsb2NhbF9zaXplLnN1cmZhY2VfcGl0Y2gsCiAJCQlVTlBfR1JQSF9QSVRDSF9MLCBHUlBIX1BJVENIX0wpOwogCiAJZG1fd3JpdGVfcmVnKApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyB2b2lkIHByb2dyYW1fc2l6ZV9hbmRfcm90YXRpb24oCiAJCXZhbHVlKTsKIAogCXZhbHVlID0gMDsKLQlzZXRfcmVnX2ZpZWxkX3ZhbHVlKHZhbHVlLCBsb2NhbF9zaXplLnZpZGVvLmNocm9tYV9waXRjaCwKKwlzZXRfcmVnX2ZpZWxkX3ZhbHVlKHZhbHVlLCBsb2NhbF9zaXplLmNocm9tYV9waXRjaCwKIAkJCVVOUF9HUlBIX1BJVENIX0MsIEdSUEhfUElUQ0hfQyk7CiAJZG1fd3JpdGVfcmVnKAogCQltZW1faW5wdXQxMTAtPmJhc2UuY3R4LApAQCAtMjk3LDggKzI5Nyw4IEBAIHN0YXRpYyB2b2lkIHByb2dyYW1fc2l6ZV9hbmRfcm90YXRpb24oCiAJCXZhbHVlKTsKIAogCXZhbHVlID0gMDsKLQlzZXRfcmVnX2ZpZWxkX3ZhbHVlKHZhbHVlLCBsb2NhbF9zaXplLnZpZGVvLmx1bWFfc2l6ZS54ICsKLQkJCWxvY2FsX3NpemUudmlkZW8ubHVtYV9zaXplLndpZHRoLAorCXNldF9yZWdfZmllbGRfdmFsdWUodmFsdWUsIGxvY2FsX3NpemUuc3VyZmFjZV9zaXplLnggKworCQkJbG9jYWxfc2l6ZS5zdXJmYWNlX3NpemUud2lkdGgsCiAJCQlVTlBfR1JQSF9YX0VORF9MLCBHUlBIX1hfRU5EX0wpOwogCWRtX3dyaXRlX3JlZygKIAkJbWVtX2lucHV0MTEwLT5iYXNlLmN0eCwKQEAgLTMwNiw4ICszMDYsOCBAQCBzdGF0aWMgdm9pZCBwcm9ncmFtX3NpemVfYW5kX3JvdGF0aW9uKAogCQl2YWx1ZSk7CiAKIAl2YWx1ZSA9IDA7Ci0Jc2V0X3JlZ19maWVsZF92YWx1ZSh2YWx1ZSwgbG9jYWxfc2l6ZS52aWRlby5jaHJvbWFfc2l6ZS54ICsKLQkJCWxvY2FsX3NpemUudmlkZW8uY2hyb21hX3NpemUud2lkdGgsCisJc2V0X3JlZ19maWVsZF92YWx1ZSh2YWx1ZSwgbG9jYWxfc2l6ZS5jaHJvbWFfc2l6ZS54ICsKKwkJCWxvY2FsX3NpemUuY2hyb21hX3NpemUud2lkdGgsCiAJCQlVTlBfR1JQSF9YX0VORF9DLCBHUlBIX1hfRU5EX0MpOwogCWRtX3dyaXRlX3JlZygKIAkJbWVtX2lucHV0MTEwLT5iYXNlLmN0eCwKQEAgLTMxNSw4ICszMTUsOCBAQCBzdGF0aWMgdm9pZCBwcm9ncmFtX3NpemVfYW5kX3JvdGF0aW9uKAogCQl2YWx1ZSk7CiAKIAl2YWx1ZSA9IDA7Ci0Jc2V0X3JlZ19maWVsZF92YWx1ZSh2YWx1ZSwgbG9jYWxfc2l6ZS52aWRlby5sdW1hX3NpemUueSArCi0JCQlsb2NhbF9zaXplLnZpZGVvLmx1bWFfc2l6ZS5oZWlnaHQsCisJc2V0X3JlZ19maWVsZF92YWx1ZSh2YWx1ZSwgbG9jYWxfc2l6ZS5zdXJmYWNlX3NpemUueSArCisJCQlsb2NhbF9zaXplLnN1cmZhY2Vfc2l6ZS5oZWlnaHQsCiAJCQlVTlBfR1JQSF9ZX0VORF9MLCBHUlBIX1lfRU5EX0wpOwogCWRtX3dyaXRlX3JlZygKIAkJbWVtX2lucHV0MTEwLT5iYXNlLmN0eCwKQEAgLTMyNCw4ICszMjQsOCBAQCBzdGF0aWMgdm9pZCBwcm9ncmFtX3NpemVfYW5kX3JvdGF0aW9uKAogCQl2YWx1ZSk7CiAKIAl2YWx1ZSA9IDA7Ci0Jc2V0X3JlZ19maWVsZF92YWx1ZSh2YWx1ZSwgbG9jYWxfc2l6ZS52aWRlby5jaHJvbWFfc2l6ZS55ICsKLQkJCWxvY2FsX3NpemUudmlkZW8uY2hyb21hX3NpemUuaGVpZ2h0LAorCXNldF9yZWdfZmllbGRfdmFsdWUodmFsdWUsIGxvY2FsX3NpemUuY2hyb21hX3NpemUueSArCisJCQlsb2NhbF9zaXplLmNocm9tYV9zaXplLmhlaWdodCwKIAkJCVVOUF9HUlBIX1lfRU5EX0MsIEdSUEhfWV9FTkRfQyk7CiAJZG1fd3JpdGVfcmVnKAogCQltZW1faW5wdXQxMTAtPmJhc2UuY3R4LApAQCAtNjM3LDcgKzYzNyw3IEBAIHZvaWQgZGNlX21lbV9pbnB1dF92X3Byb2dyYW1fc3VyZmFjZV9jb25maWcoCiAJc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogCWVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAogCXVuaW9uIGRjX3RpbGluZ19pbmZvICp0aWxpbmdfaW5mbywKLQl1bmlvbiBwbGFuZV9zaXplICpwbGFuZV9zaXplLAorCXN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAogCWVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb24sCiAJc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSAqZGNjLAogCWJvb2wgaG9yaXpvdGFsX21pcnJvcikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEwX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTExMF9yZXNvdXJjZS5jCmluZGV4IDc2NDMyOTIuLjMxOGU5YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEwX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfcmVzb3VyY2UuYwpAQCAtMzMxLDcgKzMzMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNlX2F1ZGlvX3NoaWZ0IGF1ZGlvX3NoaWZ0ID0gewogCQlBVURfQ09NTU9OX01BU0tfU0hfTElTVChfX1NISUZUKQogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfYWR1aW9fbWFzayBhdWRpb19tYXNrID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fbWFzayBhdWRpb19tYXNrID0gewogCQlBVURfQ09NTU9OX01BU0tfU0hfTElTVChfTUFTSykKIH07CiAKQEAgLTEyNzQsNyArMTI3NCw2IEBAIHN0YXRpYyBib29sIGNvbnN0cnVjdCgKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIAlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4ID0gZGMtPmN0eDsKLQlzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyBpbmZvOwogCXN0cnVjdCBkY19iaW9zICpicDsKIAogCWN0eC0+ZGNfYmlvcy0+cmVncyA9ICZiaW9zX3JlZ3M7CkBAIC0xMzAwLDggKzEyOTksNyBAQCBzdGF0aWMgYm9vbCBjb25zdHJ1Y3QoCiAKIAlicCA9IGN0eC0+ZGNfYmlvczsKIAotCWlmICgoYnAtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbyhicCwgJmluZm8pID09IEJQX1JFU1VMVF9PSykgJiYKLQkJaW5mby5leHRlcm5hbF9jbG9ja19zb3VyY2VfZnJlcXVlbmN5X2Zvcl9kcCAhPSAwKSB7CisJaWYgKGJwLT5md19pbmZvX3ZhbGlkICYmIGJwLT5md19pbmZvLmV4dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVxdWVuY3lfZm9yX2RwICE9IDApIHsKIAkJcG9vbC0+YmFzZS5kcF9jbG9ja19zb3VyY2UgPQogCQkJCWRjZTExMF9jbG9ja19zb3VyY2VfY3JlYXRlKGN0eCwgYnAsIENMT0NLX1NPVVJDRV9JRF9FWFRFUk5BTCwgTlVMTCwgdHJ1ZSk7CiAKQEAgLTE0NjQsNiArMTQ2Miw3IEBAIHN0cnVjdCByZXNvdXJjZV9wb29sICpkY2UxMTBfY3JlYXRlX3Jlc291cmNlX3Bvb2woCiAJaWYgKGNvbnN0cnVjdChudW1fdmlydHVhbF9saW5rcywgZGMsIHBvb2wsIGFzaWNfaWQpKQogCQlyZXR1cm4gJnBvb2wtPmJhc2U7CiAKKwlrZnJlZShwb29sKTsKIAlCUkVBS19UT19ERUJVR0dFUigpOwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMi9kY2UxMTJfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTIvZGNlMTEyX3Jlc291cmNlLmMKaW5kZXggYzYxMzZlMC4uODNlMTg3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMi9kY2UxMTJfcmVzb3VyY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEyL2RjZTExMl9yZXNvdXJjZS5jCkBAIC0zMzcsNyArMzM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fc2hpZnQgYXVkaW9fc2hpZnQgPSB7CiAJCUFVRF9DT01NT05fTUFTS19TSF9MSVNUKF9fU0hJRlQpCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hZHVpb19tYXNrIGF1ZGlvX21hc2sgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hdWRpb19tYXNrIGF1ZGlvX21hc2sgPSB7CiAJCUFVRF9DT01NT05fTUFTS19TSF9MSVNUKF9NQVNLKQogfTsKIApAQCAtOTg3LDYgKzk4NywxMCBAQCBzdGF0aWMgdm9pZCBid19jYWxjc19kYXRhX3VwZGF0ZV9mcm9tX3BwbGliKHN0cnVjdCBkYyAqZGMpCiAJc3RydWN0IGRtX3BwX2Nsb2NrX2xldmVsc193aXRoX2xhdGVuY3kgbWVtX2Nsa3MgPSB7MH07CiAJc3RydWN0IGRtX3BwX3dtX3NldHNfd2l0aF9jbG9ja19yYW5nZXMgY2xrX3JhbmdlcyA9IHswfTsKIAlzdHJ1Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzIGNsa3MgPSB7MH07CisJaW50IG1lbW9yeV90eXBlX211bHRpcGxpZXIgPSBNRU1PUllfVFlQRV9NVUxUSVBMSUVSX0NaOworCisJaWYgKGRjLT5id192YmlvcyAmJiBkYy0+YndfdmJpb3MtPm1lbW9yeV90eXBlID09IGJ3X2RlZl9oYm0pCisJCW1lbW9yeV90eXBlX211bHRpcGxpZXIgPSBNRU1PUllfVFlQRV9IQk07CiAKIAkvKmRvIHN5c3RlbSBjbG9jayAgVE9ETyBQUExJQjogYWZ0ZXIgUFBMSUIgaW1wbGVtZW50LAogCSAqIHRoZW4gcmVtb3ZlIG9sZCB3YXkKQEAgLTEwMjYsMTIgKzEwMzAsMTIgQEAgc3RhdGljIHZvaWQgYndfY2FsY3NfZGF0YV91cGRhdGVfZnJvbV9wcGxpYihzdHJ1Y3QgZGMgKmRjKQogCQkJCSZjbGtzKTsKIAogCQlkYy0+YndfdmJpb3MtPmxvd195Y2xrID0gYndfZnJjX3RvX2ZpeGVkKAotCQkJY2xrcy5jbG9ja3NfaW5fa2h6WzBdICogTUVNT1JZX1RZUEVfTVVMVElQTElFUl9DWiwgMTAwMCk7CisJCQljbGtzLmNsb2Nrc19pbl9raHpbMF0gKiBtZW1vcnlfdHlwZV9tdWx0aXBsaWVyLCAxMDAwKTsKIAkJZGMtPmJ3X3ZiaW9zLT5taWRfeWNsayA9IGJ3X2ZyY190b19maXhlZCgKLQkJCWNsa3MuY2xvY2tzX2luX2toeltjbGtzLm51bV9sZXZlbHM+PjFdICogTUVNT1JZX1RZUEVfTVVMVElQTElFUl9DWiwKKwkJCWNsa3MuY2xvY2tzX2luX2toeltjbGtzLm51bV9sZXZlbHM+PjFdICogbWVtb3J5X3R5cGVfbXVsdGlwbGllciwKIAkJCTEwMDApOwogCQlkYy0+YndfdmJpb3MtPmhpZ2hfeWNsayA9IGJ3X2ZyY190b19maXhlZCgKLQkJCWNsa3MuY2xvY2tzX2luX2toeltjbGtzLm51bV9sZXZlbHMtMV0gKiBNRU1PUllfVFlQRV9NVUxUSVBMSUVSX0NaLAorCQkJY2xrcy5jbG9ja3NfaW5fa2h6W2Nsa3MubnVtX2xldmVscy0xXSAqIG1lbW9yeV90eXBlX211bHRpcGxpZXIsCiAJCQkxMDAwKTsKIAogCQlyZXR1cm47CkBAIC0xMDY3LDEyICsxMDcxLDEyIEBAIHN0YXRpYyB2b2lkIGJ3X2NhbGNzX2RhdGFfdXBkYXRlX2Zyb21fcHBsaWIoc3RydWN0IGRjICpkYykKIAkgKiBZQ0xLID0gVU1BQ0xLKm1fbWVtb3J5VHlwZU11bHRpcGxpZXIKIAkgKi8KIAlkYy0+YndfdmJpb3MtPmxvd195Y2xrID0gYndfZnJjX3RvX2ZpeGVkKAotCQltZW1fY2xrcy5kYXRhWzBdLmNsb2Nrc19pbl9raHogKiBNRU1PUllfVFlQRV9NVUxUSVBMSUVSX0NaLCAxMDAwKTsKKwkJbWVtX2Nsa3MuZGF0YVswXS5jbG9ja3NfaW5fa2h6ICogbWVtb3J5X3R5cGVfbXVsdGlwbGllciwgMTAwMCk7CiAJZGMtPmJ3X3ZiaW9zLT5taWRfeWNsayA9IGJ3X2ZyY190b19maXhlZCgKLQkJbWVtX2Nsa3MuZGF0YVttZW1fY2xrcy5udW1fbGV2ZWxzPj4xXS5jbG9ja3NfaW5fa2h6ICogTUVNT1JZX1RZUEVfTVVMVElQTElFUl9DWiwKKwkJbWVtX2Nsa3MuZGF0YVttZW1fY2xrcy5udW1fbGV2ZWxzPj4xXS5jbG9ja3NfaW5fa2h6ICogbWVtb3J5X3R5cGVfbXVsdGlwbGllciwKIAkJMTAwMCk7CiAJZGMtPmJ3X3ZiaW9zLT5oaWdoX3ljbGsgPSBid19mcmNfdG9fZml4ZWQoCi0JCW1lbV9jbGtzLmRhdGFbbWVtX2Nsa3MubnVtX2xldmVscy0xXS5jbG9ja3NfaW5fa2h6ICogTUVNT1JZX1RZUEVfTVVMVElQTElFUl9DWiwKKwkJbWVtX2Nsa3MuZGF0YVttZW1fY2xrcy5udW1fbGV2ZWxzLTFdLmNsb2Nrc19pbl9raHogKiBtZW1vcnlfdHlwZV9tdWx0aXBsaWVyLAogCQkxMDAwKTsKIAogCS8qIE5vdyBub3RpZnkgUFBMaWIvU01VIGFib3V0IHdoaWNoIFdhdGVybWFya3Mgc2V0cyB0aGV5IHNob3VsZCBzZWxlY3QKQEAgLTEzMzgsNiArMTM0Miw3IEBAIHN0cnVjdCByZXNvdXJjZV9wb29sICpkY2UxMTJfY3JlYXRlX3Jlc291cmNlX3Bvb2woCiAJaWYgKGNvbnN0cnVjdChudW1fdmlydHVhbF9saW5rcywgZGMsIHBvb2wpKQogCQlyZXR1cm4gJnBvb2wtPmJhc2U7CiAKKwlrZnJlZShwb29sKTsKIAlCUkVBS19UT19ERUJVR0dFUigpOwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTEyMC9kY2UxMjBfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMjAvZGNlMTIwX3Jlc291cmNlLmMKaW5kZXggNGE2YmEzMS4uOGI4NWU1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTEyMC9kY2UxMjBfcmVzb3VyY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTIwL2RjZTEyMF9yZXNvdXJjZS5jCkBAIC0zNTIsNyArMzUyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fc2hpZnQgYXVkaW9fc2hpZnQgPSB7CiAJCURDRTEyMF9BVURfQ09NTU9OX01BU0tfU0hfTElTVChfX1NISUZUKQogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfYWR1aW9fbWFzayBhdWRpb19tYXNrID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fbWFzayBhdWRpb19tYXNrID0gewogCQlEQ0UxMjBfQVVEX0NPTU1PTl9NQVNLX1NIX0xJU1QoX01BU0spCiB9OwogCkBAIC04NDcsNiArODQ3LDggQEAgc3RhdGljIHZvaWQgYndfY2FsY3NfZGF0YV91cGRhdGVfZnJvbV9wcGxpYihzdHJ1Y3QgZGMgKmRjKQogCWludCBpOwogCXVuc2lnbmVkIGludCBjbGs7CiAJdW5zaWduZWQgaW50IGxhdGVuY3k7CisJLypvcmlnaW5hbCBsb2dpYyBpbiBkYWwzKi8KKwlpbnQgbWVtb3J5X3R5cGVfbXVsdGlwbGllciA9IE1FTU9SWV9UWVBFX01VTFRJUExJRVJfQ1o7CiAKIAkvKmRvIHN5c3RlbSBjbG9jayovCiAJaWYgKCFkbV9wcF9nZXRfY2xvY2tfbGV2ZWxzX2J5X3R5cGVfd2l0aF9sYXRlbmN5KApAQCAtOTA1LDEzICs5MDcsMTYgQEAgc3RhdGljIHZvaWQgYndfY2FsY3NfZGF0YV91cGRhdGVfZnJvbV9wcGxpYihzdHJ1Y3QgZGMgKmRjKQogCSAqIEFMU08gYWx3YXlzIGNvbnZlcnQgVU1BIGNsb2NrIChmcm9tIFBQTElCKSAgdG8gWUNMSyAoSFcgZm9ybXVsYSk6CiAJICogWUNMSyA9IFVNQUNMSyptX21lbW9yeVR5cGVNdWx0aXBsaWVyCiAJICovCisJaWYgKGRjLT5id192Ymlvcy0+bWVtb3J5X3R5cGUgPT0gYndfZGVmX2hibSkKKwkJbWVtb3J5X3R5cGVfbXVsdGlwbGllciA9IE1FTU9SWV9UWVBFX0hCTTsKKwogCWRjLT5id192Ymlvcy0+bG93X3ljbGsgPSBid19mcmNfdG9fZml4ZWQoCi0JCW1lbV9jbGtzLmRhdGFbMF0uY2xvY2tzX2luX2toeiAqIE1FTU9SWV9UWVBFX01VTFRJUExJRVJfQ1osIDEwMDApOworCQltZW1fY2xrcy5kYXRhWzBdLmNsb2Nrc19pbl9raHogKiBtZW1vcnlfdHlwZV9tdWx0aXBsaWVyLCAxMDAwKTsKIAlkYy0+YndfdmJpb3MtPm1pZF95Y2xrID0gYndfZnJjX3RvX2ZpeGVkKAotCQltZW1fY2xrcy5kYXRhW21lbV9jbGtzLm51bV9sZXZlbHM+PjFdLmNsb2Nrc19pbl9raHogKiBNRU1PUllfVFlQRV9NVUxUSVBMSUVSX0NaLAorCQltZW1fY2xrcy5kYXRhW21lbV9jbGtzLm51bV9sZXZlbHM+PjFdLmNsb2Nrc19pbl9raHogKiBtZW1vcnlfdHlwZV9tdWx0aXBsaWVyLAogCQkxMDAwKTsKIAlkYy0+YndfdmJpb3MtPmhpZ2hfeWNsayA9IGJ3X2ZyY190b19maXhlZCgKLQkJbWVtX2Nsa3MuZGF0YVttZW1fY2xrcy5udW1fbGV2ZWxzLTFdLmNsb2Nrc19pbl9raHogKiBNRU1PUllfVFlQRV9NVUxUSVBMSUVSX0NaLAorCQltZW1fY2xrcy5kYXRhW21lbV9jbGtzLm51bV9sZXZlbHMtMV0uY2xvY2tzX2luX2toeiAqIG1lbW9yeV90eXBlX211bHRpcGxpZXIsCiAJCTEwMDApOwogCiAJLyogTm93IG5vdGlmeSBQUExpYi9TTVUgYWJvdXQgd2hpY2ggV2F0ZXJtYXJrcyBzZXRzIHRoZXkgc2hvdWxkIHNlbGVjdApAQCAtMTIwMyw2ICsxMjA4LDcgQEAgc3RydWN0IHJlc291cmNlX3Bvb2wgKmRjZTEyMF9jcmVhdGVfcmVzb3VyY2VfcG9vbCgKIAlpZiAoY29uc3RydWN0KG51bV92aXJ0dWFsX2xpbmtzLCBkYywgcG9vbCkpCiAJCXJldHVybiAmcG9vbC0+YmFzZTsKIAorCWtmcmVlKHBvb2wpOwogCUJSRUFLX1RPX0RFQlVHR0VSKCk7CiAJcmV0dXJuIE5VTEw7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlODAvZGNlODBfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2U4MC9kY2U4MF9yZXNvdXJjZS5jCmluZGV4IDg2MGE1MjQuLjQ2MjVkZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2U4MC9kY2U4MF9yZXNvdXJjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2U4MC9kY2U4MF9yZXNvdXJjZS5jCkBAIC0zMjIsNyArMzIyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fc2hpZnQgYXVkaW9fc2hpZnQgPSB7CiAJCUFVRF9DT01NT05fTUFTS19TSF9MSVNUKF9fU0hJRlQpCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hZHVpb19tYXNrIGF1ZGlvX21hc2sgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hdWRpb19tYXNrIGF1ZGlvX21hc2sgPSB7CiAJCUFVRF9DT01NT05fTUFTS19TSF9MSVNUKF9NQVNLKQogfTsKIApAQCAtODc2LDcgKzg3Niw2IEBAIHN0YXRpYyBib29sIGRjZTgwX2NvbnN0cnVjdCgKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIAlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4ID0gZGMtPmN0eDsKLQlzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyBpbmZvOwogCXN0cnVjdCBkY19iaW9zICpicDsKIAogCWN0eC0+ZGNfYmlvcy0+cmVncyA9ICZiaW9zX3JlZ3M7CkBAIC05MDIsOCArOTAxLDcgQEAgc3RhdGljIGJvb2wgZGNlODBfY29uc3RydWN0KAogCiAJYnAgPSBjdHgtPmRjX2Jpb3M7CiAKLQlpZiAoKGJwLT5mdW5jcy0+Z2V0X2Zpcm13YXJlX2luZm8oYnAsICZpbmZvKSA9PSBCUF9SRVNVTFRfT0spICYmCi0JCWluZm8uZXh0ZXJuYWxfY2xvY2tfc291cmNlX2ZyZXF1ZW5jeV9mb3JfZHAgIT0gMCkgeworCWlmIChicC0+ZndfaW5mb192YWxpZCAmJiBicC0+ZndfaW5mby5leHRlcm5hbF9jbG9ja19zb3VyY2VfZnJlcXVlbmN5X2Zvcl9kcCAhPSAwKSB7CiAJCXBvb2wtPmJhc2UuZHBfY2xvY2tfc291cmNlID0KIAkJCQlkY2U4MF9jbG9ja19zb3VyY2VfY3JlYXRlKGN0eCwgYnAsIENMT0NLX1NPVVJDRV9JRF9FWFRFUk5BTCwgTlVMTCwgdHJ1ZSk7CiAKQEAgLTEwNzUsNyArMTA3Myw2IEBAIHN0YXRpYyBib29sIGRjZTgxX2NvbnN0cnVjdCgKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIAlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4ID0gZGMtPmN0eDsKLQlzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyBpbmZvOwogCXN0cnVjdCBkY19iaW9zICpicDsKIAogCWN0eC0+ZGNfYmlvcy0+cmVncyA9ICZiaW9zX3JlZ3M7CkBAIC0xMTAxLDggKzEwOTgsNyBAQCBzdGF0aWMgYm9vbCBkY2U4MV9jb25zdHJ1Y3QoCiAKIAlicCA9IGN0eC0+ZGNfYmlvczsKIAotCWlmICgoYnAtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbyhicCwgJmluZm8pID09IEJQX1JFU1VMVF9PSykgJiYKLQkJaW5mby5leHRlcm5hbF9jbG9ja19zb3VyY2VfZnJlcXVlbmN5X2Zvcl9kcCAhPSAwKSB7CisJaWYgKGJwLT5md19pbmZvX3ZhbGlkICYmIGJwLT5md19pbmZvLmV4dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVxdWVuY3lfZm9yX2RwICE9IDApIHsKIAkJcG9vbC0+YmFzZS5kcF9jbG9ja19zb3VyY2UgPQogCQkJCWRjZTgwX2Nsb2NrX3NvdXJjZV9jcmVhdGUoY3R4LCBicCwgQ0xPQ0tfU09VUkNFX0lEX0VYVEVSTkFMLCBOVUxMLCB0cnVlKTsKIApAQCAtMTI3NCw3ICsxMjcwLDYgQEAgc3RhdGljIGJvb2wgZGNlODNfY29uc3RydWN0KAogewogCXVuc2lnbmVkIGludCBpOwogCXN0cnVjdCBkY19jb250ZXh0ICpjdHggPSBkYy0+Y3R4OwotCXN0cnVjdCBkY19maXJtd2FyZV9pbmZvIGluZm87CiAJc3RydWN0IGRjX2Jpb3MgKmJwOwogCiAJY3R4LT5kY19iaW9zLT5yZWdzID0gJmJpb3NfcmVnczsKQEAgLTEzMDAsOCArMTI5NSw3IEBAIHN0YXRpYyBib29sIGRjZTgzX2NvbnN0cnVjdCgKIAogCWJwID0gY3R4LT5kY19iaW9zOwogCi0JaWYgKChicC0+ZnVuY3MtPmdldF9maXJtd2FyZV9pbmZvKGJwLCAmaW5mbykgPT0gQlBfUkVTVUxUX09LKSAmJgotCQlpbmZvLmV4dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVxdWVuY3lfZm9yX2RwICE9IDApIHsKKwlpZiAoYnAtPmZ3X2luZm9fdmFsaWQgJiYgYnAtPmZ3X2luZm8uZXh0ZXJuYWxfY2xvY2tfc291cmNlX2ZyZXF1ZW5jeV9mb3JfZHAgIT0gMCkgewogCQlwb29sLT5iYXNlLmRwX2Nsb2NrX3NvdXJjZSA9CiAJCQkJZGNlODBfY2xvY2tfc291cmNlX2NyZWF0ZShjdHgsIGJwLCBDTE9DS19TT1VSQ0VfSURfRVhURVJOQUwsIE5VTEwsIHRydWUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfY21fY29tbW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfY21fY29tbW9uLmMKaW5kZXggNzQ2OTMzMy4uMDFjN2UzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2NtX2NvbW1vbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9jbV9jb21tb24uYwpAQCAtMzQzLDggKzM0Myw4IEBAIGJvb2wgY21faGVscGVyX3RyYW5zbGF0ZV9jdXJ2ZV90b19od19mb3JtYXQoCiAJCXJlZ2lvbl9zdGFydCA9IC1NQVhfTE9XX1BPSU5UOwogCQlyZWdpb25fZW5kICAgPSBOVU1CRVJfUkVHSU9OUyAtIE1BWF9MT1dfUE9JTlQ7CiAJfSBlbHNlIHsKLQkJLyogMTAgc2VnbWVudHMKLQkJICogc2VnbWVudCBpcyBmcm9tIDJeLTEwIHRvIDJeMAorCQkvKiAxMSBzZWdtZW50cworCQkgKiBzZWdtZW50IGlzIGZyb20gMl4tMTAgdG8gMl4xCiAJCSAqIFRoZXJlIGFyZSBsZXNzIHRoYW4gMjU2IHBvaW50cywgZm9yIG9wdGltaXphdGlvbgogCQkgKi8KIAkJc2VnX2Rpc3RyWzBdID0gMzsKQEAgLTM1Nyw5ICszNTcsMTAgQEAgYm9vbCBjbV9oZWxwZXJfdHJhbnNsYXRlX2N1cnZlX3RvX2h3X2Zvcm1hdCgKIAkJc2VnX2Rpc3RyWzddID0gNDsKIAkJc2VnX2Rpc3RyWzhdID0gNDsKIAkJc2VnX2Rpc3RyWzldID0gNDsKKwkJc2VnX2Rpc3RyWzEwXSA9IDE7CiAKIAkJcmVnaW9uX3N0YXJ0ID0gLTEwOwotCQlyZWdpb25fZW5kID0gMDsKKwkJcmVnaW9uX2VuZCA9IDE7CiAJfQogCiAJZm9yIChpID0gcmVnaW9uX2VuZCAtIHJlZ2lvbl9zdGFydDsgaSA8IE1BWF9SRUdJT05TX05VTUJFUiA7IGkrKykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9kcHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9kcHAuYwppbmRleCBiOTVlYzczLi5kOGIyZGExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfZHBwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2RwcC5jCkBAIC00MjYsOCArNDI2LDkgQEAgdm9pZCBkcHAxX2Nudl9zZXR1cCAoCiAKIHZvaWQgZHBwMV9zZXRfY3Vyc29yX2F0dHJpYnV0ZXMoCiAJCXN0cnVjdCBkcHAgKmRwcF9iYXNlLAotCQllbnVtIGRjX2N1cnNvcl9jb2xvcl9mb3JtYXQgY29sb3JfZm9ybWF0KQorCQlzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgKmN1cnNvcl9hdHRyaWJ1dGVzKQogeworCWVudW0gZGNfY3Vyc29yX2NvbG9yX2Zvcm1hdCBjb2xvcl9mb3JtYXQgPSBjdXJzb3JfYXR0cmlidXRlcy0+Y29sb3JfZm9ybWF0OwogCXN0cnVjdCBkY24xMF9kcHAgKmRwcCA9IFRPX0RDTjEwX0RQUChkcHBfYmFzZSk7CiAKIAlSRUdfVVBEQVRFXzIoQ1VSU09SMF9DT05UUk9MLApAQCAtNDU2LDYgKzQ1NywxOSBAQCB2b2lkIGRwcDFfc2V0X2N1cnNvcl9wb3NpdGlvbigKIAlpbnQgc3JjX3lfb2Zmc2V0ID0gcG9zLT55IC0gcG9zLT55X2hvdHNwb3QgLSBwYXJhbS0+dmlld3BvcnQueTsKIAl1aW50MzJfdCBjdXJfZW4gPSBwb3MtPmVuYWJsZSA/IDEgOiAwOwogCisJLy8gQ3Vyc29yIHdpZHRoL2hlaWdodCBhbmQgaG90c3BvdHMgbmVlZCB0byBiZSByb3RhdGVkIGZvciBvZmZzZXQgY2FsY3VsYXRpb24KKwlpZiAocGFyYW0tPnJvdGF0aW9uID09IFJPVEFUSU9OX0FOR0xFXzkwIHx8IHBhcmFtLT5yb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV8yNzApIHsKKwkJc3dhcCh3aWR0aCwgaGVpZ2h0KTsKKwkJaWYgKHBhcmFtLT5yb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV85MCkgeworCQkJc3JjX3hfb2Zmc2V0ID0gcG9zLT54IC0gcG9zLT55X2hvdHNwb3QgLSBwYXJhbS0+dmlld3BvcnQueDsKKwkJCXNyY195X29mZnNldCA9IHBvcy0+eSAtIHBvcy0+eF9ob3RzcG90IC0gcGFyYW0tPnZpZXdwb3J0Lnk7CisJCX0KKwl9IGVsc2UgaWYgKHBhcmFtLT5yb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV8xODApIHsKKwkJc3JjX3hfb2Zmc2V0ID0gcG9zLT54IC0gcGFyYW0tPnZpZXdwb3J0Lng7CisJCXNyY195X29mZnNldCA9IHBvcy0+eSAtIHBhcmFtLT52aWV3cG9ydC55OworCX0KKworCiAJaWYgKHNyY194X29mZnNldCA+PSAoaW50KXBhcmFtLT52aWV3cG9ydC53aWR0aCkKIAkJY3VyX2VuID0gMDsgIC8qIG5vdCB2aXNpYmxlIGJleW9uZCByaWdodCBlZGdlKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2RwcC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2RwcC5oCmluZGV4IDhhNTUxN2UuLmUyYzYxMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9kcHAuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfZHBwLmgKQEAgLTEzNjgsNyArMTM2OCw3IEBAIGVudW0gZGNuMTBfaW5wdXRfY3NjX3NlbGVjdCB7CiAKIHZvaWQgZHBwMV9zZXRfY3Vyc29yX2F0dHJpYnV0ZXMoCiAJCXN0cnVjdCBkcHAgKmRwcF9iYXNlLAotCQllbnVtIGRjX2N1cnNvcl9jb2xvcl9mb3JtYXQgY29sb3JfZm9ybWF0KTsKKwkJc3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzICpjdXJzb3JfYXR0cmlidXRlcyk7CiAKIHZvaWQgZHBwMV9zZXRfY3Vyc29yX3Bvc2l0aW9uKAogCQlzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9odWJidWIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9odWJidWIuYwppbmRleCBhNzgwMDU3Li5hMDJjMTBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHViYnViLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h1YmJ1Yi5jCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBodWJidWIxX2FsbG93X3NlbGZfcmVmcmVzaF9jb250cm9sKHN0cnVjdCBodWJidWIgKmh1YmJ1YiwgYm9vbCBhbGxvdykKIAkJCURDSFVCQlVCX0FSQl9BTExPV19TRUxGX1JFRlJFU0hfRk9SQ0VfRU5BQkxFLCAhYWxsb3cpOwogfQogCi1ib29sIGh1YnVidTFfaXNfYWxsb3dfc2VsZl9yZWZyZXNoX2VuYWJsZWQoc3RydWN0IGh1YmJ1YiAqaHViYnViKQorYm9vbCBodWJidWIxX2lzX2FsbG93X3NlbGZfcmVmcmVzaF9lbmFibGVkKHN0cnVjdCBodWJidWIgKmh1YmJ1YikKIHsKIAlzdHJ1Y3QgZGNuMTBfaHViYnViICpodWJidWIxID0gVE9fRENOMTBfSFVCQlVCKGh1YmJ1Yik7CiAJdWludDMyX3QgZW5hYmxlID0gMDsKQEAgLTk0NSw2ICs5NDUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGh1YmJ1Yl9mdW5jcyBodWJidWIxX2Z1bmNzID0gewogCS5nZXRfZGNjX2NvbXByZXNzaW9uX2NhcCA9IGh1YmJ1YjFfZ2V0X2RjY19jb21wcmVzc2lvbl9jYXAsCiAJLndtX3JlYWRfc3RhdGUgPSBodWJidWIxX3dtX3JlYWRfc3RhdGUsCiAJLnByb2dyYW1fd2F0ZXJtYXJrcyA9IGh1YmJ1YjFfcHJvZ3JhbV93YXRlcm1hcmtzLAorCS5pc19hbGxvd19zZWxmX3JlZnJlc2hfZW5hYmxlZCA9IGh1YmJ1YjFfaXNfYWxsb3dfc2VsZl9yZWZyZXNoX2VuYWJsZWQsCisJLmFsbG93X3NlbGZfcmVmcmVzaF9jb250cm9sID0gaHViYnViMV9hbGxvd19zZWxmX3JlZnJlc2hfY29udHJvbCwKIH07CiAKIHZvaWQgaHViYnViMV9jb25zdHJ1Y3Qoc3RydWN0IGh1YmJ1YiAqaHViYnViLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h1YmJ1Yi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h1YmJ1Yi5oCmluZGV4IDdjMjU1OWMuLjY5ZDkwM2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9odWJidWIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHViYnViLmgKQEAgLTExOSw2ICsxMTksMjggQEAgc3RydWN0IGRjbl9odWJidWJfcmVnaXN0ZXJzIHsKIAl1aW50MzJfdCBEQ05fVk1fQUdQX0JPVDsKIAl1aW50MzJfdCBEQ05fVk1fQUdQX1RPUDsKIAl1aW50MzJfdCBEQ05fVk1fQUdQX0JBU0U7CisJdWludDMyX3QgRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX01TQjsKKwl1aW50MzJfdCBEQ05fVk1fUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfTFNCOworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorCXVpbnQzMl90IERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQTsKKwl1aW50MzJfdCBEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0I7CisJdWludDMyX3QgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9DOworCXVpbnQzMl90IERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fRDsKKwl1aW50MzJfdCBEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9BOworCXVpbnQzMl90IERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0I7CisJdWludDMyX3QgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQzsKKwl1aW50MzJfdCBEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9EOworCXVpbnQzMl90IERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0E7CisJdWludDMyX3QgRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQjsKKwl1aW50MzJfdCBEQ0hVQkJVQl9BUkJfUkVGQ1lDX1BFUl9UUklQX1RPX01FTU9SWV9DOworCXVpbnQzMl90IERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0Q7CisJdWludDMyX3QgRENIVUJCVUJfQVJCX0hPU1RWTV9DTlRMOworCXVpbnQzMl90IERDSFZNX0NUUkwwOworCXVpbnQzMl90IERDSFZNX01FTV9DVFJMOworCXVpbnQzMl90IERDSFZNX0NMS19DVFJMOworCXVpbnQzMl90IERDSFZNX1JJT01NVV9DVFJMMDsKKwl1aW50MzJfdCBEQ0hWTV9SSU9NTVVfU1RBVDA7CisjZW5kaWYKIH07CiAKIC8qIHNldCBmaWVsZCBuYW1lICovCkBAIC0xOTYsNyArMjE4LDkgQEAgc3RydWN0IGRjbl9odWJidWJfcmVnaXN0ZXJzIHsKIAkJdHlwZSBEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19BO1wKIAkJdHlwZSBEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19CO1wKIAkJdHlwZSBEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19DO1wKLQkJdHlwZSBEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19ECisJCXR5cGUgRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfRDtcCisJCXR5cGUgRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX01TQjtcCisJCXR5cGUgRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0xTQgogCiAjZGVmaW5lIEhVQkJVQl9TVFVUVEVSX1JFR19GSUVMRF9MSVNUKHR5cGUpIFwKIAkJdHlwZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0E7XApAQCAtMjA4LDE1ICsyMzIsNjggQEAgc3RydWN0IGRjbl9odWJidWJfcmVnaXN0ZXJzIHsKIAkJdHlwZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQztcCiAJCXR5cGUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0QKIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorI2RlZmluZSBIVUJCVUJfSFZNX1JFR19GSUVMRF9MSVNUKHR5cGUpIFwKKwkJdHlwZSBEQ0hVQkJVQl9BUkJfTUlOX1JFUV9PVVRTVEFORF9DT01NSVRfVEhSRVNIT0xEO1wKKwkJdHlwZSBEQ0hVQkJVQl9BUkJfVk1fUk9XX1VSR0VOQ1lfV0FURVJNQVJLX0E7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9WTV9ST1dfVVJHRU5DWV9XQVRFUk1BUktfQjtcCisJCXR5cGUgRENIVUJCVUJfQVJCX1ZNX1JPV19VUkdFTkNZX1dBVEVSTUFSS19DO1wKKwkJdHlwZSBEQ0hVQkJVQl9BUkJfVk1fUk9XX1VSR0VOQ1lfV0FURVJNQVJLX0Q7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0E7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0I7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0M7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0Q7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQTtcCisJCXR5cGUgRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FWElUX1dBVEVSTUFSS19CO1wKKwkJdHlwZSBEQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0M7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfRDtcCisJCXR5cGUgRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0E7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19CO1wKKwkJdHlwZSBEQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQztcCisJCXR5cGUgRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0Q7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQTtcCisJCXR5cGUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9CO1wKKwkJdHlwZSBEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0M7XAorCQl0eXBlIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fRDtcCisJCXR5cGUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQTtcCisJCXR5cGUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQjtcCisJCXR5cGUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQztcCisJCXR5cGUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfRDtcCisJCXR5cGUgRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQTtcCisJCXR5cGUgRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQjtcCisJCXR5cGUgRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQztcCisJCXR5cGUgRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfRDtcCisJCXR5cGUgRENIVUJCVUJfQVJCX01BWF9RT1NfQ09NTUlUX1RIUkVTSE9MRDtcCisJCXR5cGUgSE9TVFZNX0lOSVRfUkVROyBcCisJCXR5cGUgSFZNX0dQVVZNUkVUX1BXUl9SRVFfRElTOyBcCisJCXR5cGUgSFZNX0dQVVZNUkVUX0ZPUkNFX1JFUTsgXAorCQl0eXBlIEhWTV9HUFVWTVJFVF9QT1dFUl9TVEFUVVM7IFwKKwkJdHlwZSBIVk1fRElTUENMS19SX0dBVEVfRElTOyBcCisJCXR5cGUgSFZNX0RJU1BDTEtfR19HQVRFX0RJUzsgXAorCQl0eXBlIEhWTV9EQ0ZDTEtfUl9HQVRFX0RJUzsgXAorCQl0eXBlIEhWTV9EQ0ZDTEtfR19HQVRFX0RJUzsgXAorCQl0eXBlIFRSX1JFUV9SRVFDTEtSRVFfTU9ERTsgXAorCQl0eXBlIFRXX1JTUF9DT01QQ0xLUkVRX01PREU7IFwKKwkJdHlwZSBIT1NUVk1fUFJFRkVUQ0hfUkVROyBcCisJCXR5cGUgSE9TVFZNX1BPV0VSU1RBVFVTOyBcCisJCXR5cGUgUklPTU1VX0FDVElWRTsgXAorCQl0eXBlIEhPU1RWTV9QUkVGRVRDSF9ET05FCisjZW5kaWYKIAogc3RydWN0IGRjbl9odWJidWJfc2hpZnQgewogCURDTl9IVUJCVUJfUkVHX0ZJRUxEX0xJU1QodWludDhfdCk7CiAJSFVCQlVCX1NUVVRURVJfUkVHX0ZJRUxEX0xJU1QodWludDhfdCk7CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisJSFVCQlVCX0hWTV9SRUdfRklFTERfTElTVCh1aW50OF90KTsKKyNlbmRpZgogfTsKIAogc3RydWN0IGRjbl9odWJidWJfbWFzayB7CiAJRENOX0hVQkJVQl9SRUdfRklFTERfTElTVCh1aW50MzJfdCk7CiAJSFVCQlVCX1NUVVRURVJfUkVHX0ZJRUxEX0xJU1QodWludDMyX3QpOworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorCUhVQkJVQl9IVk1fUkVHX0ZJRUxEX0xJU1QodWludDMyX3QpOworI2VuZGlmCiB9OwogCiBzdHJ1Y3QgZGM7CkBAIC0yNDcsNyArMzI0LDcgQEAgdm9pZCBodWJidWIxX3Byb2dyYW1fd2F0ZXJtYXJrcygKIAogdm9pZCBodWJidWIxX2FsbG93X3NlbGZfcmVmcmVzaF9jb250cm9sKHN0cnVjdCBodWJidWIgKmh1YmJ1YiwgYm9vbCBhbGxvdyk7CiAKLWJvb2wgaHVidWJ1MV9pc19hbGxvd19zZWxmX3JlZnJlc2hfZW5hYmxlZChzdHJ1Y3QgaHViYnViICpodWJ1Yik7Citib29sIGh1YmJ1YjFfaXNfYWxsb3dfc2VsZl9yZWZyZXNoX2VuYWJsZWQoc3RydWN0IGh1YmJ1YiAqaHVidWIpOwogCiB2b2lkIGh1YmJ1YjFfdG9nZ2xlX3dhdGVybWFya19jaGFuZ2VfcmVxKAogCQlzdHJ1Y3QgaHViYnViICpodWJidWIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h1YnAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9odWJwLmMKaW5kZXggOTM0YmFjYy4uMDAxZGI0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h1YnAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHVicC5jCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBodWJwMV9wcm9ncmFtX3RpbGluZygKIHZvaWQgaHVicDFfcHJvZ3JhbV9zaXplKAogCXN0cnVjdCBodWJwICpodWJwLAogCWVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAotCWNvbnN0IHVuaW9uIHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCisJY29uc3Qgc3RydWN0IHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCiAJc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSAqZGNjKQogewogCXN0cnVjdCBkY24xMF9odWJwICpodWJwMSA9IFRPX0RDTjEwX0hVQlAoaHVicCk7CkBAIC0xNzMsMTYgKzE3MywxNiBAQCB2b2lkIGh1YnAxX3Byb2dyYW1fc2l6ZSgKIAkgKiA0NDQgb3IgNDIwIGx1bWEKIAkgKi8KIAlpZiAoZm9ybWF0ID49IFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJREVPX0JFR0lOICYmIGZvcm1hdCA8IFNVUkZBQ0VfUElYRUxfRk9STUFUX1NVQlNBTVBMRV9FTkQpIHsKLQkJQVNTRVJUKHBsYW5lX3NpemUtPnZpZGVvLmNocm9tYV9waXRjaCAhPSAwKTsKKwkJQVNTRVJUKHBsYW5lX3NpemUtPmNocm9tYV9waXRjaCAhPSAwKTsKIAkJLyogQ2hyb21hIHBpdGNoIHplcm8gY2FuIGNhdXNlIHN5c3RlbSBoYW5nISAqLwogCi0JCXBpdGNoID0gcGxhbmVfc2l6ZS0+dmlkZW8ubHVtYV9waXRjaCAtIDE7Ci0JCW1ldGFfcGl0Y2ggPSBkY2MtPnZpZGVvLm1ldGFfcGl0Y2hfbCAtIDE7Ci0JCXBpdGNoX2MgPSBwbGFuZV9zaXplLT52aWRlby5jaHJvbWFfcGl0Y2ggLSAxOwotCQltZXRhX3BpdGNoX2MgPSBkY2MtPnZpZGVvLm1ldGFfcGl0Y2hfYyAtIDE7CisJCXBpdGNoID0gcGxhbmVfc2l6ZS0+c3VyZmFjZV9waXRjaCAtIDE7CisJCW1ldGFfcGl0Y2ggPSBkY2MtPm1ldGFfcGl0Y2ggLSAxOworCQlwaXRjaF9jID0gcGxhbmVfc2l6ZS0+Y2hyb21hX3BpdGNoIC0gMTsKKwkJbWV0YV9waXRjaF9jID0gZGNjLT5tZXRhX3BpdGNoX2MgLSAxOwogCX0gZWxzZSB7Ci0JCXBpdGNoID0gcGxhbmVfc2l6ZS0+Z3JwaC5zdXJmYWNlX3BpdGNoIC0gMTsKLQkJbWV0YV9waXRjaCA9IGRjYy0+Z3JwaC5tZXRhX3BpdGNoIC0gMTsKKwkJcGl0Y2ggPSBwbGFuZV9zaXplLT5zdXJmYWNlX3BpdGNoIC0gMTsKKwkJbWV0YV9waXRjaCA9IGRjYy0+bWV0YV9waXRjaCAtIDE7CiAJCXBpdGNoX2MgPSAwOwogCQltZXRhX3BpdGNoX2MgPSAwOwogCX0KQEAgLTUwOSw3ICs1MDksNyBAQCBib29sIGh1YnAxX3Byb2dyYW1fc3VyZmFjZV9mbGlwX2FuZF9hZGRyKAogfQogCiB2b2lkIGh1YnAxX2RjY19jb250cm9sKHN0cnVjdCBodWJwICpodWJwLCBib29sIGVuYWJsZSwKLQkJYm9vbCBpbmRlcGVuZGVudF82NGJfYmxrcykKKwkJZW51bSBodWJwX2luZF9ibG9ja19zaXplIGluZGVwZW5kZW50XzY0Yl9ibGtzKQogewogCXVpbnQzMl90IGRjY19lbiA9IGVuYWJsZSA/IDEgOiAwOwogCXVpbnQzMl90IGRjY19pbmRfNjRiX2JsayA9IGluZGVwZW5kZW50XzY0Yl9ibGtzID8gMSA6IDA7CkBAIC01MjYsMTMgKzUyNiwxMyBAQCB2b2lkIGh1YnAxX3Byb2dyYW1fc3VyZmFjZV9jb25maWcoCiAJc3RydWN0IGh1YnAgKmh1YnAsCiAJZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCiAJdW5pb24gZGNfdGlsaW5nX2luZm8gKnRpbGluZ19pbmZvLAotCXVuaW9uIHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCisJc3RydWN0IHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCiAJZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlvbiwKIAlzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtICpkY2MsCiAJYm9vbCBob3Jpem9udGFsX21pcnJvciwKIAl1bnNpZ25lZCBpbnQgY29tcGF0X2xldmVsKQogewotCWh1YnAxX2RjY19jb250cm9sKGh1YnAsIGRjYy0+ZW5hYmxlLCBkY2MtPmdycGguaW5kZXBlbmRlbnRfNjRiX2Jsa3MpOworCWh1YnAxX2RjY19jb250cm9sKGh1YnAsIGRjYy0+ZW5hYmxlLCBkY2MtPmluZGVwZW5kZW50XzY0Yl9ibGtzKTsKIAlodWJwMV9wcm9ncmFtX3RpbGluZyhodWJwLCB0aWxpbmdfaW5mbywgZm9ybWF0KTsKIAlodWJwMV9wcm9ncmFtX3NpemUoaHVicCwgZm9ybWF0LCBwbGFuZV9zaXplLCBkY2MpOwogCWh1YnAxX3Byb2dyYW1fcm90YXRpb24oaHVicCwgcm90YXRpb24sIGhvcml6b250YWxfbWlycm9yKTsKQEAgLTg0Myw3ICs4NDMsNyBAQCB2b2lkIG1pbl9zZXRfdmlld3BvcnQoCiAJCSAgUFJJX1ZJRVdQT1JUX1lfU1RBUlRfQywgdmlld3BvcnRfYy0+eSk7CiB9CiAKLXZvaWQgaHVicDFfcmVhZF9zdGF0ZShzdHJ1Y3QgaHVicCAqaHVicCkKK3ZvaWQgaHVicDFfcmVhZF9zdGF0ZV9jb21tb24oc3RydWN0IGh1YnAgKmh1YnApCiB7CiAJc3RydWN0IGRjbjEwX2h1YnAgKmh1YnAxID0gVE9fRENOMTBfSFVCUChodWJwKTsKIAlzdHJ1Y3QgZGNuX2h1YnBfc3RhdGUgKnMgPSAmaHVicDEtPnN0YXRlOwpAQCAtODU5LDI0ICs4NTksNiBAQCB2b2lkIGh1YnAxX3JlYWRfc3RhdGUoc3RydWN0IGh1YnAgKmh1YnApCiAJCQlQUlFfRVhQQU5TSU9OX01PREUsICZycV9yZWdzLT5wcnFfZXhwYW5zaW9uX21vZGUsCiAJCQlNUlFfRVhQQU5TSU9OX01PREUsICZycV9yZWdzLT5tcnFfZXhwYW5zaW9uX21vZGUsCiAJCQlDUlFfRVhQQU5TSU9OX01PREUsICZycV9yZWdzLT5jcnFfZXhwYW5zaW9uX21vZGUpOwotCVJFR19HRVRfOChEQ0hVQlBfUkVRX1NJWkVfQ09ORklHLAotCQlDSFVOS19TSVpFLCAmcnFfcmVncy0+cnFfcmVnc19sLmNodW5rX3NpemUsCi0JCU1JTl9DSFVOS19TSVpFLCAmcnFfcmVncy0+cnFfcmVnc19sLm1pbl9jaHVua19zaXplLAotCQlNRVRBX0NIVU5LX1NJWkUsICZycV9yZWdzLT5ycV9yZWdzX2wubWV0YV9jaHVua19zaXplLAotCQlNSU5fTUVUQV9DSFVOS19TSVpFLCAmcnFfcmVncy0+cnFfcmVnc19sLm1pbl9tZXRhX2NodW5rX3NpemUsCi0JCURQVEVfR1JPVVBfU0laRSwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5kcHRlX2dyb3VwX3NpemUsCi0JCU1QVEVfR1JPVVBfU0laRSwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5tcHRlX2dyb3VwX3NpemUsCi0JCVNXQVRIX0hFSUdIVCwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5zd2F0aF9oZWlnaHQsCi0JCVBURV9ST1dfSEVJR0hUX0xJTkVBUiwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5wdGVfcm93X2hlaWdodF9saW5lYXIpOwotCVJFR19HRVRfOChEQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0MsCi0JCUNIVU5LX1NJWkVfQywgJnJxX3JlZ3MtPnJxX3JlZ3NfYy5jaHVua19zaXplLAotCQlNSU5fQ0hVTktfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLm1pbl9jaHVua19zaXplLAotCQlNRVRBX0NIVU5LX1NJWkVfQywgJnJxX3JlZ3MtPnJxX3JlZ3NfYy5tZXRhX2NodW5rX3NpemUsCi0JCU1JTl9NRVRBX0NIVU5LX1NJWkVfQywgJnJxX3JlZ3MtPnJxX3JlZ3NfYy5taW5fbWV0YV9jaHVua19zaXplLAotCQlEUFRFX0dST1VQX1NJWkVfQywgJnJxX3JlZ3MtPnJxX3JlZ3NfYy5kcHRlX2dyb3VwX3NpemUsCi0JCU1QVEVfR1JPVVBfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLm1wdGVfZ3JvdXBfc2l6ZSwKLQkJU1dBVEhfSEVJR0hUX0MsICZycV9yZWdzLT5ycV9yZWdzX2Muc3dhdGhfaGVpZ2h0LAotCQlQVEVfUk9XX0hFSUdIVF9MSU5FQVJfQywgJnJxX3JlZ3MtPnJxX3JlZ3NfYy5wdGVfcm93X2hlaWdodF9saW5lYXIpOwogCiAJLyogRExHIC0gUGVyIGh1YnAgKi8KIAlSRUdfR0VUXzIoQkxBTktfT0ZGU0VUXzAsCkBAIC0xMDMwLDggKzEwMTIsMzggQEAgdm9pZCBodWJwMV9yZWFkX3N0YXRlKHN0cnVjdCBodWJwICpodWJwKQogCVJFR19HRVRfMihEQ05fVFRVX1FPU19XTSwKIAkJCVFvU19MRVZFTF9MT1dfV00sICZzLT5xb3NfbGV2ZWxfbG93X3dtLAogCQkJUW9TX0xFVkVMX0hJR0hfV00sICZzLT5xb3NfbGV2ZWxfaGlnaF93bSk7CisKIH0KIAordm9pZCBodWJwMV9yZWFkX3N0YXRlKHN0cnVjdCBodWJwICpodWJwKQoreworCXN0cnVjdCBkY24xMF9odWJwICpodWJwMSA9IFRPX0RDTjEwX0hVQlAoaHVicCk7CisJc3RydWN0IGRjbl9odWJwX3N0YXRlICpzID0gJmh1YnAxLT5zdGF0ZTsKKwlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9yZWdzX3N0ICpycV9yZWdzID0gJnMtPnJxX3JlZ3M7CisKKwlodWJwMV9yZWFkX3N0YXRlX2NvbW1vbihodWJwKTsKKworCVJFR19HRVRfOChEQ0hVQlBfUkVRX1NJWkVfQ09ORklHLAorCQlDSFVOS19TSVpFLCAmcnFfcmVncy0+cnFfcmVnc19sLmNodW5rX3NpemUsCisJCU1JTl9DSFVOS19TSVpFLCAmcnFfcmVncy0+cnFfcmVnc19sLm1pbl9jaHVua19zaXplLAorCQlNRVRBX0NIVU5LX1NJWkUsICZycV9yZWdzLT5ycV9yZWdzX2wubWV0YV9jaHVua19zaXplLAorCQlNSU5fTUVUQV9DSFVOS19TSVpFLCAmcnFfcmVncy0+cnFfcmVnc19sLm1pbl9tZXRhX2NodW5rX3NpemUsCisJCURQVEVfR1JPVVBfU0laRSwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5kcHRlX2dyb3VwX3NpemUsCisJCU1QVEVfR1JPVVBfU0laRSwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5tcHRlX2dyb3VwX3NpemUsCisJCVNXQVRIX0hFSUdIVCwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5zd2F0aF9oZWlnaHQsCisJCVBURV9ST1dfSEVJR0hUX0xJTkVBUiwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5wdGVfcm93X2hlaWdodF9saW5lYXIpOworCisJUkVHX0dFVF84KERDSFVCUF9SRVFfU0laRV9DT05GSUdfQywKKwkJQ0hVTktfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLmNodW5rX3NpemUsCisJCU1JTl9DSFVOS19TSVpFX0MsICZycV9yZWdzLT5ycV9yZWdzX2MubWluX2NodW5rX3NpemUsCisJCU1FVEFfQ0hVTktfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLm1ldGFfY2h1bmtfc2l6ZSwKKwkJTUlOX01FVEFfQ0hVTktfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLm1pbl9tZXRhX2NodW5rX3NpemUsCisJCURQVEVfR1JPVVBfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLmRwdGVfZ3JvdXBfc2l6ZSwKKwkJTVBURV9HUk9VUF9TSVpFX0MsICZycV9yZWdzLT5ycV9yZWdzX2MubXB0ZV9ncm91cF9zaXplLAorCQlTV0FUSF9IRUlHSFRfQywgJnJxX3JlZ3MtPnJxX3JlZ3NfYy5zd2F0aF9oZWlnaHQsCisJCVBURV9ST1dfSEVJR0hUX0xJTkVBUl9DLCAmcnFfcmVncy0+cnFfcmVnc19jLnB0ZV9yb3dfaGVpZ2h0X2xpbmVhcik7CisKK30KIGVudW0gY3Vyc29yX3BpdGNoIGh1YnAxX2dldF9jdXJzb3JfcGl0Y2godW5zaWduZWQgaW50IHBpdGNoKQogewogCWVudW0gY3Vyc29yX3BpdGNoIGh3X3BpdGNoOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h1YnAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9odWJwLmgKaW5kZXggMzFjOGZkZC4uY2IyMGQxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h1YnAuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHVicC5oCkBAIC0xMjUsOCArMTI1LDYgQEAKIAlTUkkoRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9MU0IsIEhVQlBSRVEsIGlkKSxcCiAJU1JJKERDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX01TQiwgSFVCUFJFUSwgaWQpLFwKIAlTUkkoRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfTFNCLCBIVUJQUkVRLCBpZCksXAotCVNSKERDSFVCQlVCX1NEUElGX0ZCX0JBU0UpLFwKLQlTUihEQ0hVQkJVQl9TRFBJRl9GQl9PRkZTRVQpLFwKIAlTUkkoQ1VSU09SX1NFVFRJTlMsIEhVQlBSRVEsIGlkKSwgXAogCVNSSShDVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0gsIENVUlNPUiwgaWQpLCBcCiAJU1JJKENVUlNPUl9TVVJGQUNFX0FERFJFU1MsIENVUlNPUiwgaWQpLCBcCkBAIC0yMjYsMTQgKzIyNCw2IEBACiAJdWludDMyX3QgRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfTFNCOyBcCiAJdWludDMyX3QgRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUjsgXAogCXVpbnQzMl90IERDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSOyBcCi0JdWludDMyX3QgRENIVUJCVUJfU0RQSUZfRkJfQkFTRTsgXAotCXVpbnQzMl90IERDSFVCQlVCX1NEUElGX0ZCX09GRlNFVDsgXAotCXVpbnQzMl90IERDTl9WTV9GQl9MT0NBVElPTl9UT1A7IFwKLQl1aW50MzJfdCBEQ05fVk1fRkJfTE9DQVRJT05fQkFTRTsgXAotCXVpbnQzMl90IERDTl9WTV9GQl9PRkZTRVQ7IFwKLQl1aW50MzJfdCBEQ05fVk1fQUdQX0JBU0U7IFwKLQl1aW50MzJfdCBEQ05fVk1fQUdQX0JPVDsgXAotCXVpbnQzMl90IERDTl9WTV9BR1BfVE9QOyBcCiAJdWludDMyX3QgQ1VSU09SX1NFVFRJTlM7IFwKIAl1aW50MzJfdCBDVVJTT1JfU0VUVElOR1M7IFwKIAl1aW50MzJfdCBDVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0g7IFwKQEAgLTI0OSw3ICsyMzksOCBAQAogCS5maWVsZF9uYW1lID0gcmVnX25hbWUgIyMgX18gIyMgZmllbGRfbmFtZSAjIyBwb3N0X2ZpeAogCiAvKiBNYXNrL3NoaWZ0IHN0cnVjdCBnZW5lcmF0aW9uIG1hY3JvIGZvciBhbGwgQVNJQ3MgKGluY2x1ZGluZyB0aG9zZSB3aXRoIHJlZHVjZWQgZnVuY3Rpb25hbGl0eSkgKi8KLSNkZWZpbmUgSFVCUF9NQVNLX1NIX0xJU1RfRENOX0NPTU1PTihtYXNrX3NoKVwKKy8qMS54LCAyLngsIGFuZCAzLngqLworI2RlZmluZSBIVUJQX01BU0tfU0hfTElTVF9EQ05fU0hBUkVfQ09NTU9OKG1hc2tfc2gpXAogCUhVQlBfU0YoSFVCUDBfRENIVUJQX0NOVEwsIEhVQlBfQkxBTktfRU4sIG1hc2tfc2gpLFwKIAlIVUJQX1NGKEhVQlAwX0RDSFVCUF9DTlRMLCBIVUJQX1RUVV9ESVNBQkxFLCBtYXNrX3NoKSxcCiAJSFVCUF9TRihIVUJQMF9EQ0hVQlBfQ05UTCwgSFVCUF9VTkRFUkZMT1dfU1RBVFVTLCBtYXNrX3NoKSxcCkBAIC0yNjUsNyArMjU2LDYgQEAKIAlIVUJQX1NGKEhVQlAwX0RDU1VSRl9BRERSX0NPTkZJRywgTUFYX0NPTVBSRVNTRURfRlJBR1MsIG1hc2tfc2gpLFwKIAlIVUJQX1NGKEhVQlAwX0RDU1VSRl9USUxJTkdfQ09ORklHLCBTV19NT0RFLCBtYXNrX3NoKSxcCiAJSFVCUF9TRihIVUJQMF9EQ1NVUkZfVElMSU5HX0NPTkZJRywgTUVUQV9MSU5FQVIsIG1hc2tfc2gpLFwKLQlIVUJQX1NGKEhVQlAwX0RDU1VSRl9USUxJTkdfQ09ORklHLCBSQl9BTElHTkVELCBtYXNrX3NoKSxcCiAJSFVCUF9TRihIVUJQMF9EQ1NVUkZfVElMSU5HX0NPTkZJRywgUElQRV9BTElHTkVELCBtYXNrX3NoKSxcCiAJSFVCUF9TRihIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9QSVRDSCwgUElUQ0gsIG1hc2tfc2gpLFwKIAlIVUJQX1NGKEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX1BJVENILCBNRVRBX1BJVENILCBtYXNrX3NoKSxcCkBAIC0zNzIsMTIgKzM2MiwxNyBAQAogCUhVQlBfU0YoSFVCUFJFUTBfRENOX1NVUkYwX1RUVV9DTlRMMCwgUW9TX1JBTVBfRElTQUJMRSwgbWFza19zaCksXAogCUhVQlBfU0YoSFVCUFJFUTBfRENOX1NVUkYwX1RUVV9DTlRMMSwgUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFLCBtYXNrX3NoKSxcCiAJSFVCUF9TRihIVUJQMF9IVUJQX0NMS19DTlRMLCBIVUJQX0NMT0NLX0VOQUJMRSwgbWFza19zaCkKLQotI2RlZmluZSBIVUJQX01BU0tfU0hfTElTVF9EQ04obWFza19zaClcCi0JSFVCUF9NQVNLX1NIX0xJU1RfRENOX0NPTU1PTihtYXNrX3NoKSxcCisvKjIueCBhbmQgMS54IG9ubHkqLworI2RlZmluZSBIVUJQX01BU0tfU0hfTElTVF9EQ05fQ09NTU9OKG1hc2tfc2gpXAorCUhVQlBfTUFTS19TSF9MSVNUX0RDTl9TSEFSRV9DT01NT04obWFza19zaCksXAorCUhVQlBfU0YoSFVCUDBfRENTVVJGX1RJTElOR19DT05GSUcsIFJCX0FMSUdORUQsIG1hc2tfc2gpLFwKIAlIVUJQX1NGKEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUcsIE1QVEVfR1JPVVBfU0laRSwgbWFza19zaCksXAogCUhVQlBfU0YoSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DLCBNUFRFX0dST1VQX1NJWkVfQywgbWFza19zaCkKIAorLyoyLnggYW5kIDEueCBvbmx5Ki8KKyNkZWZpbmUgSFVCUF9NQVNLX1NIX0xJU1RfRENOKG1hc2tfc2gpXAorCUhVQlBfTUFTS19TSF9MSVNUX0RDTl9DT01NT04obWFza19zaCkKKwogLyogTWFzay9zaGlmdCBzdHJ1Y3QgZ2VuZXJhdGlvbiBtYWNybyBmb3IgQVNJQ3Mgd2l0aCBWTSAqLwogI2RlZmluZSBIVUJQX01BU0tfU0hfTElTVF9EQ05fVk0obWFza19zaClcCiAJSFVCUF9TRihIVUJQUkVRMF9OT01fUEFSQU1FVEVSU18wLCBEU1RfWV9QRVJfUFRFX1JPV19OT01fTCwgbWFza19zaCksXApAQCAtNDEyLDggKzQwNyw2IEBACiAJSFVCUF9TRihIVUJQUkVRMF9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX0xTQiwgTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX0xTQiwgbWFza19zaCksXAogCUhVQlBfU0YoSFVCUFJFUTBfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfTVNCLCBNQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX01TQiwgbWFza19zaCksXAogCUhVQlBfU0YoSFVCUFJFUTBfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfTFNCLCBNQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX0xTQiwgbWFza19zaCksXAotCUhVQlBfU0YoRENIVUJCVUJfU0RQSUZfRkJfQkFTRSwgU0RQSUZfRkJfQkFTRSwgbWFza19zaCksXAotCUhVQlBfU0YoRENIVUJCVUJfU0RQSUZfRkJfT0ZGU0VULCBTRFBJRl9GQl9PRkZTRVQsIG1hc2tfc2gpLFwKIAlIVUJQX1NGKEhVQlBSRVEwX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX01TQiwgTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfU1lTVEVNLCBtYXNrX3NoKSxcCiAJSFVCUF9TRihIVUJQUkVRMF9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9NU0IsIE1DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTVNCLCBtYXNrX3NoKSxcCiAJSFVCUF9TRihIVUJQUkVRMF9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9MU0IsIE1DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTFNCLCBtYXNrX3NoKSxcCkBAIC00MzQsNyArNDI3LDcgQEAKIAlIVUJQX1NGKENVUlNPUjBfQ1VSU09SX0hPVF9TUE9ULCBDVVJTT1JfSE9UX1NQT1RfWSwgbWFza19zaCksIFwKIAlIVUJQX1NGKENVUlNPUjBfQ1VSU09SX0RTVF9PRkZTRVQsIENVUlNPUl9EU1RfWF9PRkZTRVQsIG1hc2tfc2gpCiAKLSNkZWZpbmUgRENOX0hVQlBfUkVHX0ZJRUxEX0xJU1QodHlwZSkgXAorI2RlZmluZSBEQ05fSFVCUF9SRUdfRklFTERfQkFTRV9MSVNUKHR5cGUpIFwKIAl0eXBlIEhVQlBfQkxBTktfRU47XAogCXR5cGUgSFVCUF9ESVNBQkxFO1wKIAl0eXBlIEhVQlBfVFRVX0RJU0FCTEU7XApAQCAtNDU5LDcgKzQ1Miw2IEBACiAJdHlwZSBST1RBVElPTl9BTkdMRTtcCiAJdHlwZSBIX01JUlJPUl9FTjtcCiAJdHlwZSBTVVJGQUNFX1BJWEVMX0ZPUk1BVDtcCi0JdHlwZSBBTFBIQV9QTEFORV9FTjtcCiAJdHlwZSBTVVJGQUNFX0ZMSVBfVFlQRTtcCiAJdHlwZSBTVVJGQUNFX0ZMSVBfTU9ERV9GT1JfU1RFUkVPU1lOQztcCiAJdHlwZSBTVVJGQUNFX0ZMSVBfSU5fU1RFUkVPU1lOQztcCkBAIC01ODksMTggKzU4MSw2IEBACiAJdHlwZSBNQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX0xTQjtcCiAJdHlwZSBNQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFI7XAogCXR5cGUgTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUjtcCi0JdHlwZSBTRFBJRl9GQl9UT1A7XAotCXR5cGUgU0RQSUZfRkJfQkFTRTtcCi0JdHlwZSBTRFBJRl9GQl9PRkZTRVQ7XAotCXR5cGUgU0RQSUZfQUdQX0JBU0U7XAotCXR5cGUgU0RQSUZfQUdQX0JPVDtcCi0JdHlwZSBTRFBJRl9BR1BfVE9QO1wKLQl0eXBlIEZCX1RPUDtcCi0JdHlwZSBGQl9CQVNFO1wKLQl0eXBlIEZCX09GRlNFVDtcCi0JdHlwZSBBR1BfQkFTRTtcCi0JdHlwZSBBR1BfQk9UO1wKLQl0eXBlIEFHUF9UT1A7XAogCXR5cGUgRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX1NZU1RFTTtcCiAJdHlwZSBEQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9NU0I7XAogCXR5cGUgRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTFNCO1wKQEAgLTYzMiw2ICs2MTIsMTAgQEAKIAl0eXBlIENVUlNPUl9EU1RfWF9PRkZTRVQ7IFwKIAl0eXBlIE9VVFBVVF9GUAogCisjZGVmaW5lIERDTl9IVUJQX1JFR19GSUVMRF9MSVNUKHR5cGUpIFwKKwlEQ05fSFVCUF9SRUdfRklFTERfQkFTRV9MSVNUKHR5cGUpO1wKKwl0eXBlIEFMUEhBX1BMQU5FX0VOCisKIHN0cnVjdCBkY25fbWlfcmVnaXN0ZXJzIHsKIAlIVUJQX0NPTU1PTl9SRUdfVkFSSUFCTEVfTElTVDsKIH07CkBAIC02NzcsNyArNjYxLDcgQEAgdm9pZCBodWJwMV9wcm9ncmFtX3N1cmZhY2VfY29uZmlnKAogCXN0cnVjdCBodWJwICpodWJwLAogCWVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAogCXVuaW9uIGRjX3RpbGluZ19pbmZvICp0aWxpbmdfaW5mbywKLQl1bmlvbiBwbGFuZV9zaXplICpwbGFuZV9zaXplLAorCXN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAogCWVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb24sCiAJc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSAqZGNjLAogCWJvb2wgaG9yaXpvbnRhbF9taXJyb3IsCkBAIC02OTksNyArNjgzLDcgQEAgdm9pZCBodWJwMV9wcm9ncmFtX3BpeGVsX2Zvcm1hdCgKIHZvaWQgaHVicDFfcHJvZ3JhbV9zaXplKAogCXN0cnVjdCBodWJwICpodWJwLAogCWVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAotCWNvbnN0IHVuaW9uIHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCisJY29uc3Qgc3RydWN0IHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCiAJc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSAqZGNjKTsKIAogdm9pZCBodWJwMV9wcm9ncmFtX3JvdGF0aW9uKApAQCAtNzE0LDcgKzY5OCw3IEBAIHZvaWQgaHVicDFfcHJvZ3JhbV90aWxpbmcoCiAKIHZvaWQgaHVicDFfZGNjX2NvbnRyb2woc3RydWN0IGh1YnAgKmh1YnAsCiAJCWJvb2wgZW5hYmxlLAotCQlib29sIGluZGVwZW5kZW50XzY0Yl9ibGtzKTsKKwkJZW51bSBodWJwX2luZF9ibG9ja19zaXplIGluZGVwZW5kZW50XzY0Yl9ibGtzKTsKIAogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMAogYm9vbCBodWJwMV9wcm9ncmFtX3N1cmZhY2VfZmxpcF9hbmRfYWRkcigKQEAgLTc2MCw1ICs3NDQsNiBAQCB2b2lkIGh1YnAxX3ZyZWFkeV93b3JrYXJvdW5kKHN0cnVjdCBodWJwICpodWJwLAogCQlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0ICpwaXBlX2Rlc3QpOwogCiB2b2lkIGh1YnAxX2luaXQoc3RydWN0IGh1YnAgKmh1YnApOwordm9pZCBodWJwMV9yZWFkX3N0YXRlX2NvbW1vbihzdHJ1Y3QgaHVicCAqaHVicCk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h3X3NlcXVlbmNlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h3X3NlcXVlbmNlci5jCmluZGV4IDIxMThlYTIuLjYwMTIzZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyLmMKQEAgLTQzOCw3ICs0MzgsNyBAQCBib29sIGRjbjEwX2RpZF91bmRlcmZsb3dfb2NjdXIoc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGVuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUoCitzdGF0aWMgdm9pZCBkY24xMF9lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKAogCXN0cnVjdCBkY2VfaHdzZXEgKmh3cywKIAlib29sIGVuYWJsZSkKIHsKQEAgLTQ2MCw3ICs0NjAsNyBAQCBzdGF0aWMgdm9pZCBlbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKAogCVJFR19VUERBVEUoRE9NQUlON19QR19DT05GSUcsIERPTUFJTjdfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOwogfQogCi1zdGF0aWMgdm9pZCBkaXNhYmxlX3ZnYSgKK3N0YXRpYyB2b2lkIGRjbjEwX2Rpc2FibGVfdmdhKAogCXN0cnVjdCBkY2VfaHdzZXEgKmh3cykKIHsKIAl1bnNpZ25lZCBpbnQgaW5fdmdhMV9tb2RlID0gMDsKQEAgLTQ5Myw3ICs0OTMsNyBAQCBzdGF0aWMgdm9pZCBkaXNhYmxlX3ZnYSgKIAlSRUdfVVBEQVRFKFZHQV9URVNUX0NPTlRST0wsIFZHQV9URVNUX1JFTkRFUl9TVEFSVCwgMSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRwcF9wZ19jb250cm9sKAorc3RhdGljIHZvaWQgZGNuMTBfZHBwX3BnX2NvbnRyb2woCiAJCXN0cnVjdCBkY2VfaHdzZXEgKmh3cywKIAkJdW5zaWduZWQgaW50IGRwcF9pbnN0LAogCQlib29sIHBvd2VyX29uKQpAQCAtNTQ1LDcgKzU0NSw3IEBAIHN0YXRpYyB2b2lkIGRwcF9wZ19jb250cm9sKAogCX0KIH0KIAotc3RhdGljIHZvaWQgaHVicF9wZ19jb250cm9sKAorc3RhdGljIHZvaWQgZGNuMTBfaHVicF9wZ19jb250cm9sKAogCQlzdHJ1Y3QgZGNlX2h3c2VxICpod3MsCiAJCXVuc2lnbmVkIGludCBodWJwX2luc3QsCiAJCWJvb2wgcG93ZXJfb24pCkBAIC02MDUsOCArNjA1LDggQEAgc3RhdGljIHZvaWQgcG93ZXJfb25fcGxhbmUoCiAJaWYgKFJFRyhEQ19JUF9SRVFVRVNUX0NOVEwpKSB7CiAJCVJFR19TRVQoRENfSVBfUkVRVUVTVF9DTlRMLCAwLAogCQkJCUlQX1JFUVVFU1RfRU4sIDEpOwotCQlkcHBfcGdfY29udHJvbChod3MsIHBsYW5lX2lkLCB0cnVlKTsKLQkJaHVicF9wZ19jb250cm9sKGh3cywgcGxhbmVfaWQsIHRydWUpOworCQlod3MtPmN0eC0+ZGMtPmh3c3MuZHBwX3BnX2NvbnRyb2woaHdzLCBwbGFuZV9pZCwgdHJ1ZSk7CisJCWh3cy0+Y3R4LT5kYy0+aHdzcy5odWJwX3BnX2NvbnRyb2woaHdzLCBwbGFuZV9pZCwgdHJ1ZSk7CiAJCVJFR19TRVQoRENfSVBfUkVRVUVTVF9DTlRMLCAwLAogCQkJCUlQX1JFUVVFU1RfRU4sIDApOwogCQlEQ19MT0dfREVCVUcoCkBAIC02MjcsNyArNjI3LDcgQEAgc3RhdGljIHZvaWQgdW5kb19ERUdWSURDTjEwXzI1M193YShzdHJ1Y3QgZGMgKmRjKQogCVJFR19TRVQoRENfSVBfUkVRVUVTVF9DTlRMLCAwLAogCQkJSVBfUkVRVUVTVF9FTiwgMSk7CiAKLQlodWJwX3BnX2NvbnRyb2woaHdzLCAwLCBmYWxzZSk7CisJZGMtPmh3c3MuaHVicF9wZ19jb250cm9sKGh3cywgMCwgZmFsc2UpOwogCVJFR19TRVQoRENfSVBfUkVRVUVTVF9DTlRMLCAwLAogCQkJSVBfUkVRVUVTVF9FTiwgMCk7CiAKQEAgLTY1Niw3ICs2NTYsNyBAQCBzdGF0aWMgdm9pZCBhcHBseV9ERUdWSURDTjEwXzI1M193YShzdHJ1Y3QgZGMgKmRjKQogCVJFR19TRVQoRENfSVBfUkVRVUVTVF9DTlRMLCAwLAogCQkJSVBfUkVRVUVTVF9FTiwgMSk7CiAKLQlodWJwX3BnX2NvbnRyb2woaHdzLCAwLCB0cnVlKTsKKwlkYy0+aHdzcy5odWJwX3BnX2NvbnRyb2woaHdzLCAwLCB0cnVlKTsKIAlSRUdfU0VUKERDX0lQX1JFUVVFU1RfQ05UTCwgMCwKIAkJCUlQX1JFUVVFU1RfRU4sIDApOwogCkBAIC02NjQsMTAgKzY2NCwyMyBAQCBzdGF0aWMgdm9pZCBhcHBseV9ERUdWSURDTjEwXzI1M193YShzdHJ1Y3QgZGMgKmRjKQogCWh3cy0+d2Ffc3RhdGUuREVHVklEQ04xMF8yNTNfYXBwbGllZCA9IHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGJpb3NfZ29sZGVuX2luaXQoc3RydWN0IGRjICpkYykKK3N0YXRpYyB2b2lkIGRjbjEwX2Jpb3NfZ29sZGVuX2luaXQoc3RydWN0IGRjICpkYykKIHsKIAlzdHJ1Y3QgZGNfYmlvcyAqYnAgPSBkYy0+Y3R4LT5kY19iaW9zOwogCWludCBpOworCWJvb2wgYWxsb3dfc2VsZl9mcmVzaF9mb3JjZV9lbmFibGUgPSB0cnVlOworCisJaWYgKGRjLT5yZXNfcG9vbC0+aHViYnViLT5mdW5jcy0+aXNfYWxsb3dfc2VsZl9yZWZyZXNoX2VuYWJsZWQpCisJCWFsbG93X3NlbGZfZnJlc2hfZm9yY2VfZW5hYmxlID0KKwkJCQlkYy0+cmVzX3Bvb2wtPmh1YmJ1Yi0+ZnVuY3MtPmlzX2FsbG93X3NlbGZfcmVmcmVzaF9lbmFibGVkKGRjLT5yZXNfcG9vbC0+aHViYnViKTsKKworCisJLyogV0EgZm9yIG1ha2luZyBERiBzbGVlcCB3aGVuIGlkbGUgYWZ0ZXIgcmVzdW1lIGZyb20gUzBpMy4KKwkgKiBEQ0hVQkJVQl9BUkJfQUxMT1dfU0VMRl9SRUZSRVNIX0ZPUkNFX0VOQUJMRSBpcyBzZXQgdG8gMSBieQorCSAqIGNvbW1hbmQgdGFibGUsIGlmIERDSFVCQlVCX0FSQl9BTExPV19TRUxGX1JFRlJFU0hfRk9SQ0VfRU5BQkxFID0gMAorCSAqIGJlZm9yZSBjYWxsaW5nIGNvbW1hbmQgdGFibGUgYW5kIGl0IGNoYW5nZWQgdG8gMSBhZnRlciwKKwkgKiBpdCBzaG91bGQgYmUgc2V0IGJhY2sgdG8gMC4KKwkgKi8KIAogCS8qIGluaXRpYWxpemUgZGNuIGdsb2JhbCAqLwogCWJwLT5mdW5jcy0+ZW5hYmxlX2Rpc3BfcG93ZXJfZ2F0aW5nKGJwLApAQCAtNjc4LDYgKzY5MSwxMiBAQCBzdGF0aWMgdm9pZCBiaW9zX2dvbGRlbl9pbml0KHN0cnVjdCBkYyAqZGMpCiAJCWJwLT5mdW5jcy0+ZW5hYmxlX2Rpc3BfcG93ZXJfZ2F0aW5nKGJwLAogCQkJCUNPTlRST0xMRVJfSURfRDAgKyBpLCBBU0lDX1BJUEVfRElTQUJMRSk7CiAJfQorCisJaWYgKGRjLT5yZXNfcG9vbC0+aHViYnViLT5mdW5jcy0+YWxsb3dfc2VsZl9yZWZyZXNoX2NvbnRyb2wpCisJCWlmIChhbGxvd19zZWxmX2ZyZXNoX2ZvcmNlX2VuYWJsZSA9PSBmYWxzZSAmJgorCQkJCWRjLT5yZXNfcG9vbC0+aHViYnViLT5mdW5jcy0+aXNfYWxsb3dfc2VsZl9yZWZyZXNoX2VuYWJsZWQoZGMtPnJlc19wb29sLT5odWJidWIpKQorCQkJZGMtPnJlc19wb29sLT5odWJidWItPmZ1bmNzLT5hbGxvd19zZWxmX3JlZnJlc2hfY29udHJvbChkYy0+cmVzX3Bvb2wtPmh1YmJ1YiwgdHJ1ZSk7CisKIH0KIAogc3RhdGljIHZvaWQgZmFsc2Vfb3B0Y191bmRlcmZsb3dfd2EoCkBAIC03MDIsNyArNzIxLDggQEAgc3RhdGljIHZvaWQgZmFsc2Vfb3B0Y191bmRlcmZsb3dfd2EoCiAJCWRjLT5od3NzLndhaXRfZm9yX21wY2NfZGlzY29ubmVjdChkYywgZGMtPnJlc19wb29sLCBvbGRfcGlwZV9jdHgpOwogCX0KIAotCXRnLT5mdW5jcy0+c2V0X2JsYW5rX2RhdGFfZG91YmxlX2J1ZmZlcih0ZywgdHJ1ZSk7CisJaWYgKHRnLT5mdW5jcy0+c2V0X2JsYW5rX2RhdGFfZG91YmxlX2J1ZmZlcikKKwkJdGctPmZ1bmNzLT5zZXRfYmxhbmtfZGF0YV9kb3VibGVfYnVmZmVyKHRnLCB0cnVlKTsKIAogCWlmICh0Zy0+ZnVuY3MtPmlzX29wdGNfdW5kZXJmbG93X29jY3VycmVkKHRnKSAmJiAhdW5kZXJmbG93KQogCQl0Zy0+ZnVuY3MtPmNsZWFyX29wdGNfdW5kZXJmbG93KHRnKTsKQEAgLTgwOCwxMSArODI4LDIzIEBAIHN0YXRpYyB2b2lkIGRjbjEwX3Jlc2V0X2JhY2tfZW5kX2Zvcl9waXBlKAogCWlmICghSVNfRlBHQV9NQVhJTVVTX0RDKGRjLT5jdHgtPmRjZV9lbnZpcm9ubWVudCkpIHsKIAkJLyogRFBNUyBtYXkgYWxyZWFkeSBkaXNhYmxlICovCiAJCWlmICghcGlwZV9jdHgtPnN0cmVhbS0+ZHBtc19vZmYpCi0JCQljb3JlX2xpbmtfZGlzYWJsZV9zdHJlYW0ocGlwZV9jdHgsIEZSRUVfQUNRVUlSRURfUkVTT1VSQ0UpOwotCQllbHNlIGlmIChwaXBlX2N0eC0+c3RyZWFtX3Jlcy5hdWRpbykgewotCQkJZGMtPmh3c3MuZGlzYWJsZV9hdWRpb19zdHJlYW0ocGlwZV9jdHgsIEZSRUVfQUNRVUlSRURfUkVTT1VSQ0UpOwotCQl9CisJCQljb3JlX2xpbmtfZGlzYWJsZV9zdHJlYW0ocGlwZV9jdHgpOworCQllbHNlIGlmIChwaXBlX2N0eC0+c3RyZWFtX3Jlcy5hdWRpbykKKwkJCWRjLT5od3NzLmRpc2FibGVfYXVkaW9fc3RyZWFtKHBpcGVfY3R4KTsKIAorCQlpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMuYXVkaW8pIHsKKwkJCS8qZGlzYWJsZSBhel9lbmRwb2ludCovCisJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5hdWRpby0+ZnVuY3MtPmF6X2Rpc2FibGUocGlwZV9jdHgtPnN0cmVhbV9yZXMuYXVkaW8pOworCisJCQkvKmZyZWUgYXVkaW8qLworCQkJaWYgKGRjLT5jYXBzLmR5bmFtaWNfYXVkaW8gPT0gdHJ1ZSkgeworCQkJCS8qd2UgaGF2ZSB0byBkeW5hbWljIGFyYml0cmF0ZSB0aGUgYXVkaW8gZW5kcG9pbnRzKi8KKwkJCQkvKndlIGZyZWUgdGhlIHJlc291cmNlLCBuZWVkIHJlc2V0IGlzX2F1ZGlvX2FjcXVpcmVkKi8KKwkJCQl1cGRhdGVfYXVkaW9fdXNhZ2UoJmRjLT5jdXJyZW50X3N0YXRlLT5yZXNfY3R4LCBkYy0+cmVzX3Bvb2wsCisJCQkJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5hdWRpbywgZmFsc2UpOworCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLmF1ZGlvID0gTlVMTDsKKwkJCX0KKwkJfQogCX0KIAogCS8qIGJ5IHVwcGVyIGNhbGxlciBsb29wLCBwYXJlbnQgcGlwZTogcGlwZTAsIHdpbGwgYmUgcmVzZXQgbGFzdC4KQEAgLTgyMyw2ICs4NTUsOSBAQCBzdGF0aWMgdm9pZCBkY24xMF9yZXNldF9iYWNrX2VuZF9mb3JfcGlwZSgKIAkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5kaXNhYmxlX2NydGMocGlwZV9jdHgtPnN0cmVhbV9yZXMudGcpOwogCiAJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLT5mdW5jcy0+ZW5hYmxlX29wdGNfY2xvY2socGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsIGZhbHNlKTsKKwkJaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLT5mdW5jcy0+c2V0X2RycikKKwkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLT5mdW5jcy0+c2V0X2RycigKKwkJCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsIE5VTEwpOwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykKQEAgLTk2OCw3ICsxMDAzLDcgQEAgdm9pZCBod3NzMV9wbGFuZV9hdG9taWNfZGlzY29ubmVjdChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCQlkY24xMF92ZXJpZnlfYWxsb3dfcHN0YXRlX2NoYW5nZV9oaWdoKGRjKTsKIH0KIAotc3RhdGljIHZvaWQgcGxhbmVfYXRvbWljX3Bvd2VyX2Rvd24oc3RydWN0IGRjICpkYywKK3N0YXRpYyB2b2lkIGRjbjEwX3BsYW5lX2F0b21pY19wb3dlcl9kb3duKHN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBkcHAgKmRwcCwKIAkJc3RydWN0IGh1YnAgKmh1YnApCiB7CkBAIC05NzgsOCArMTAxMyw4IEBAIHN0YXRpYyB2b2lkIHBsYW5lX2F0b21pY19wb3dlcl9kb3duKHN0cnVjdCBkYyAqZGMsCiAJaWYgKFJFRyhEQ19JUF9SRVFVRVNUX0NOVEwpKSB7CiAJCVJFR19TRVQoRENfSVBfUkVRVUVTVF9DTlRMLCAwLAogCQkJCUlQX1JFUVVFU1RfRU4sIDEpOwotCQlkcHBfcGdfY29udHJvbChod3MsIGRwcC0+aW5zdCwgZmFsc2UpOwotCQlodWJwX3BnX2NvbnRyb2woaHdzLCBodWJwLT5pbnN0LCBmYWxzZSk7CisJCWRjLT5od3NzLmRwcF9wZ19jb250cm9sKGh3cywgZHBwLT5pbnN0LCBmYWxzZSk7CisJCWRjLT5od3NzLmh1YnBfcGdfY29udHJvbChod3MsIGh1YnAtPmluc3QsIGZhbHNlKTsKIAkJZHBwLT5mdW5jcy0+ZHBwX3Jlc2V0KGRwcCk7CiAJCVJFR19TRVQoRENfSVBfUkVRVUVTVF9DTlRMLCAwLAogCQkJCUlQX1JFUVVFU1RfRU4sIDApOwpAQCAtOTkxLDcgKzEwMjYsNyBAQCBzdGF0aWMgdm9pZCBwbGFuZV9hdG9taWNfcG93ZXJfZG93bihzdHJ1Y3QgZGMgKmRjLAogLyogZGlzYWJsZSBIVyB1c2VkIGJ5IHBsYW5lLgogICogbm90ZTogIGNhbm5vdCBkaXNhYmxlIHVudGlsIGRpc2Nvbm5lY3QgaXMgY29tcGxldGUKICAqLwotc3RhdGljIHZvaWQgcGxhbmVfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKK3N0YXRpYyB2b2lkIGRjbjEwX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiB7CiAJc3RydWN0IGh1YnAgKmh1YnAgPSBwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnA7CiAJc3RydWN0IGRwcCAqZHBwID0gcGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHA7CkBAIC0xMDExLDcgKzEwNDYsNyBAQCBzdGF0aWMgdm9pZCBwbGFuZV9hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCWh1YnAtPnBvd2VyX2dhdGVkID0gdHJ1ZTsKIAlkYy0+b3B0aW1pemVkX3JlcXVpcmVkID0gZmFsc2U7IC8qIFdlJ3JlIHBvd2VyaW5nIG9mZiwgbm8gbmVlZCB0byBvcHRpbWl6ZSAqLwogCi0JcGxhbmVfYXRvbWljX3Bvd2VyX2Rvd24oZGMsCisJZGMtPmh3c3MucGxhbmVfYXRvbWljX3Bvd2VyX2Rvd24oZGMsCiAJCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcCwKIAkJCXBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicCk7CiAKQEAgLTEwMzAsNyArMTA2NSw3IEBAIHN0YXRpYyB2b2lkIGRjbjEwX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAlpZiAoIXBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicCB8fCBwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAtPnBvd2VyX2dhdGVkKQogCQlyZXR1cm47CiAKLQlwbGFuZV9hdG9taWNfZGlzYWJsZShkYywgcGlwZV9jdHgpOworCWRjLT5od3NzLnBsYW5lX2F0b21pY19kaXNhYmxlKGRjLCBwaXBlX2N0eCk7CiAKIAlhcHBseV9ERUdWSURDTjEwXzI1M193YShkYyk7CiAKQEAgLTEwNjUsMTUgKzExMDAsMjcgQEAgc3RhdGljIHZvaWQgZGNuMTBfaW5pdF9waXBlcyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpCiAJCSAqIGNvbW1hbmQgdGFibGUuCiAJCSAqLwogCQlpZiAodGctPmZ1bmNzLT5pc190Z19lbmFibGVkKHRnKSkgewotCQkJdGctPmZ1bmNzLT5sb2NrKHRnKTsKLQkJCXRnLT5mdW5jcy0+c2V0X2JsYW5rKHRnLCB0cnVlKTsKLQkJCWh3c3Nfd2FpdF9mb3JfYmxhbmtfY29tcGxldGUodGcpOworCQkJaWYgKGRjLT5od3NzLmluaXRfYmxhbmsgIT0gTlVMTCkgeworCQkJCWRjLT5od3NzLmluaXRfYmxhbmsoZGMsIHRnKTsKKwkJCQl0Zy0+ZnVuY3MtPmxvY2sodGcpOworCQkJfSBlbHNlIHsKKwkJCQl0Zy0+ZnVuY3MtPmxvY2sodGcpOworCQkJCXRnLT5mdW5jcy0+c2V0X2JsYW5rKHRnLCB0cnVlKTsKKwkJCQlod3NzX3dhaXRfZm9yX2JsYW5rX2NvbXBsZXRlKHRnKTsKKwkJCX0KIAkJfQogCX0KIAotCS8qIENhbm5vdCByZXNldCB0aGUgTVBDIG11eCBpZiBzZWFtbGVzcyBib290ICovCi0JaWYgKCFjYW5fYXBwbHlfc2VhbWxlc3NfYm9vdCkKLQkJZGMtPnJlc19wb29sLT5tcGMtPmZ1bmNzLT5tcGNfaW5pdChkYy0+cmVzX3Bvb2wtPm1wYyk7CisJZm9yIChpID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7CisJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHggPSAmY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXTsKKworCQkvKiBDYW5ub3QgcmVzZXQgdGhlIE1QQyBtdXggaWYgc2VhbWxlc3MgYm9vdCAqLworCQlpZiAocGlwZV9jdHgtPnN0cmVhbSAhPSBOVUxMICYmIGNhbl9hcHBseV9zZWFtbGVzc19ib290KQorCQkJY29udGludWU7CisKKwkJZGMtPnJlc19wb29sLT5tcGMtPmZ1bmNzLT5tcGNfaW5pdF9zaW5nbGVfaW5zdCgKKwkJCQlkYy0+cmVzX3Bvb2wtPm1wYywgaSk7CisJfQogCiAJZm9yIChpID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7CiAJCXN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZyA9IGRjLT5yZXNfcG9vbC0+dGltaW5nX2dlbmVyYXRvcnNbaV07CkBAIC0xMTExLDEyICsxMTU4LDEyIEBAIHN0YXRpYyB2b2lkIGRjbjEwX2luaXRfcGlwZXMoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KQogCQlkYy0+cmVzX3Bvb2wtPm9wcHNbaV0tPm1wY2NfZGlzY29ubmVjdF9wZW5kaW5nW3BpcGVfY3R4LT5wbGFuZV9yZXMubXBjY19pbnN0XSA9IHRydWU7CiAJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLm9wcCA9IGRjLT5yZXNfcG9vbC0+b3Bwc1tpXTsKIAotCQlod3NzMV9wbGFuZV9hdG9taWNfZGlzY29ubmVjdChkYywgcGlwZV9jdHgpOworCQlkYy0+aHdzcy5wbGFuZV9hdG9taWNfZGlzY29ubmVjdChkYywgcGlwZV9jdHgpOwogCiAJCWlmICh0Zy0+ZnVuY3MtPmlzX3RnX2VuYWJsZWQodGcpKQogCQkJdGctPmZ1bmNzLT51bmxvY2sodGcpOwogCi0JCWRjbjEwX2Rpc2FibGVfcGxhbmUoZGMsIHBpcGVfY3R4KTsKKwkJZGMtPmh3c3MuZGlzYWJsZV9wbGFuZShkYywgcGlwZV9jdHgpOwogCiAJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnID0gTlVMTDsKIAkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwID0gTlVMTDsKQEAgLTExMzIsOCArMTE3OSwxNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9pbml0X2h3KHN0cnVjdCBkYyAqZGMpCiAJc3RydWN0IGRtY3UgKmRtY3UgPSBkYy0+cmVzX3Bvb2wtPmRtY3U7CiAJc3RydWN0IGRjZV9od3NlcSAqaHdzID0gZGMtPmh3c2VxOwogCXN0cnVjdCBkY19iaW9zICpkY2IgPSBkYy0+Y3R4LT5kY19iaW9zOworCXN0cnVjdCByZXNvdXJjZV9wb29sICpyZXNfcG9vbCA9IGRjLT5yZXNfcG9vbDsKKworCWlmIChkYy0+Y2xrX21nciAmJiBkYy0+Y2xrX21nci0+ZnVuY3MtPmluaXRfY2xvY2tzKQorCQlkYy0+Y2xrX21nci0+ZnVuY3MtPmluaXRfY2xvY2tzKGRjLT5jbGtfbWdyKTsKKworCS8vIEluaXRpYWxpemUgdGhlIGRjY2cKKwlpZiAoZGMtPnJlc19wb29sLT5kY2NnICYmIGRjLT5yZXNfcG9vbC0+ZGNjZy0+ZnVuY3MtPmRjY2dfaW5pdCkKKwkJZGMtPnJlc19wb29sLT5kY2NnLT5mdW5jcy0+ZGNjZ19pbml0KHJlc19wb29sLT5kY2NnKTsKIAogCWlmIChJU19GUEdBX01BWElNVVNfREMoZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgeworCiAJCVJFR19XUklURShSRUZDTEtfQ05UTCwgMCk7CiAJCVJFR19VUERBVEUoRENIVUJCVUJfR0xPQkFMX1RJTUVSX0NOVEwsIERDSFVCQlVCX0dMT0JBTF9USU1FUl9FTkFCTEUsIDEpOwogCQlSRUdfV1JJVEUoRElPX01FTV9QV1JfQ1RSTCwgMCk7CkBAIC0xMTQ3LDMxICsxMjAzLDQwIEBAIHN0YXRpYyB2b2lkIGRjbjEwX2luaXRfaHcoc3RydWN0IGRjICpkYykKIAkJCVJFR19VUERBVEUoRENGQ0xLX0NOVEwsIERDRkNMS19HQVRFX0RJUywgMCk7CiAJCX0KIAotCQllbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKGRjLT5od3NlcSwgdHJ1ZSk7CisJCS8vRW5hYmxlIGFiaWxpdHkgdG8gcG93ZXIgZ2F0ZSAvIGRvbid0IGZvcmNlIHBvd2VyIG9uIHBlcm1hbmVudGx5CisJCWRjLT5od3NzLmVuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUoaHdzLCB0cnVlKTsKIAotCQkvKiBlbmQgb2YgRlBHQS4gQmVsb3cgaWYgcmVhbCBBU0lDICovCiAJCXJldHVybjsKIAl9CiAKLQlpZiAoIWRjYi0+ZnVuY3MtPmlzX2FjY2VsZXJhdGVkX21vZGUoZGNiKSkgewotCQlib29sIGFsbG93X3NlbGZfZnJlc2hfZm9yY2VfZW5hYmxlID0KLQkJCWh1YnVidTFfaXNfYWxsb3dfc2VsZl9yZWZyZXNoX2VuYWJsZWQoCi0JCQkJCQlkYy0+cmVzX3Bvb2wtPmh1YmJ1Yik7CisJaWYgKCFkY2ItPmZ1bmNzLT5pc19hY2NlbGVyYXRlZF9tb2RlKGRjYikpCisJCWRjLT5od3NzLmRpc2FibGVfdmdhKGRjLT5od3NlcSk7CiAKLQkJYmlvc19nb2xkZW5faW5pdChkYyk7CisJZGMtPmh3c3MuYmlvc19nb2xkZW5faW5pdChkYyk7CisJaWYgKGRjLT5jdHgtPmRjX2Jpb3MtPmZ3X2luZm9fdmFsaWQpIHsKKwkJcmVzX3Bvb2wtPnJlZl9jbG9ja3MueHRhbGluX2Nsb2NrX2luS2h6ID0KKwkJCQlkYy0+Y3R4LT5kY19iaW9zLT5md19pbmZvLnBsbF9pbmZvLmNyeXN0YWxfZnJlcXVlbmN5OwogCi0JCS8qIFdBIGZvciBtYWtpbmcgREYgc2xlZXAgd2hlbiBpZGxlIGFmdGVyIHJlc3VtZSBmcm9tIFMwaTMuCi0JCSAqIERDSFVCQlVCX0FSQl9BTExPV19TRUxGX1JFRlJFU0hfRk9SQ0VfRU5BQkxFIGlzIHNldCB0byAxIGJ5Ci0JCSAqIGNvbW1hbmQgdGFibGUsIGlmIERDSFVCQlVCX0FSQl9BTExPV19TRUxGX1JFRlJFU0hfRk9SQ0VfRU5BQkxFID0gMAotCQkgKiBiZWZvcmUgY2FsbGluZyBjb21tYW5kIHRhYmxlIGFuZCBpdCBjaGFuZ2VkIHRvIDEgYWZ0ZXIsCi0JCSAqIGl0IHNob3VsZCBiZSBzZXQgYmFjayB0byAwLgotCQkgKi8KLQkJaWYgKGFsbG93X3NlbGZfZnJlc2hfZm9yY2VfZW5hYmxlID09IGZhbHNlICYmCi0JCQkJaHVidWJ1MV9pc19hbGxvd19zZWxmX3JlZnJlc2hfZW5hYmxlZChkYy0+cmVzX3Bvb2wtPmh1YmJ1YikpCi0JCQlodWJidWIxX2FsbG93X3NlbGZfcmVmcmVzaF9jb250cm9sKGRjLT5yZXNfcG9vbC0+aHViYnViLCB0cnVlKTsKKwkJaWYgKCFJU19GUEdBX01BWElNVVNfREMoZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgeworCQkJaWYgKHJlc19wb29sLT5kY2NnICYmIHJlc19wb29sLT5odWJidWIpIHsKIAotCQlkaXNhYmxlX3ZnYShkYy0+aHdzZXEpOwotCX0KKwkJCQkocmVzX3Bvb2wtPmRjY2ctPmZ1bmNzLT5nZXRfZGNjZ19yZWZfZnJlcSkocmVzX3Bvb2wtPmRjY2csCisJCQkJCQlkYy0+Y3R4LT5kY19iaW9zLT5md19pbmZvLnBsbF9pbmZvLmNyeXN0YWxfZnJlcXVlbmN5LAorCQkJCQkJJnJlc19wb29sLT5yZWZfY2xvY2tzLmRjY2dfcmVmX2Nsb2NrX2luS2h6KTsKKworCQkJCShyZXNfcG9vbC0+aHViYnViLT5mdW5jcy0+Z2V0X2RjaHViX3JlZl9mcmVxKShyZXNfcG9vbC0+aHViYnViLAorCQkJCQkJcmVzX3Bvb2wtPnJlZl9jbG9ja3MuZGNjZ19yZWZfY2xvY2tfaW5LaHosCisJCQkJCQkmcmVzX3Bvb2wtPnJlZl9jbG9ja3MuZGNodWJfcmVmX2Nsb2NrX2luS2h6KTsKKwkJCX0gZWxzZSB7CisJCQkJLy8gTm90IGFsbCBBU0lDcyBoYXZlIERDQ0cgc3cgY29tcG9uZW50CisJCQkJcmVzX3Bvb2wtPnJlZl9jbG9ja3MuZGNjZ19yZWZfY2xvY2tfaW5LaHogPQorCQkJCQkJcmVzX3Bvb2wtPnJlZl9jbG9ja3MueHRhbGluX2Nsb2NrX2luS2h6OworCQkJCXJlc19wb29sLT5yZWZfY2xvY2tzLmRjaHViX3JlZl9jbG9ja19pbktoeiA9CisJCQkJCQlyZXNfcG9vbC0+cmVmX2Nsb2Nrcy54dGFsaW5fY2xvY2tfaW5LaHo7CisJCQl9CisJCX0KKwl9IGVsc2UKKwkJQVNTRVJUX0NSSVRJQ0FMKGZhbHNlKTsKIAogCWZvciAoaSA9IDA7IGkgPCBkYy0+bGlua19jb3VudDsgaSsrKSB7CiAJCS8qIFBvd2VyIHVwIEFORCB1cGRhdGUgaW1wbGVtZW50YXRpb24gYWNjb3JkaW5nIHRvIHRoZQpAQCAtMTE4OCw2ICsxMjUzLDEzIEBAIHN0YXRpYyB2b2lkIGRjbjEwX2luaXRfaHcoc3RydWN0IGRjICpkYykKIAkJCWxpbmstPmxpbmtfc3RhdHVzLmxpbmtfYWN0aXZlID0gdHJ1ZTsKIAl9CiAKKwkvKiBQb3dlciBnYXRlIERTQ3MgKi8KKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAorCWZvciAoaSA9IDA7IGkgPCByZXNfcG9vbC0+cmVzX2NhcC0+bnVtX2RzYzsgaSsrKQorCQlpZiAoZGMtPmh3c3MuZHNjX3BnX2NvbnRyb2wgIT0gTlVMTCkKKwkJCWRjLT5od3NzLmRzY19wZ19jb250cm9sKGh3cywgcmVzX3Bvb2wtPmRzY3NbaV0tPmluc3QsIGZhbHNlKTsKKyNlbmRpZgorCiAJLyogSWYgdGFraW5nIGNvbnRyb2wgb3ZlciBmcm9tIFZCSU9TLCB3ZSBtYXkgd2FudCB0byBvcHRpbWl6ZSBvdXIgZmlyc3QKIAkgKiBtb2RlIHNldCwgc28gd2UgbmVlZCB0byBza2lwIHBvd2VyaW5nIGRvd24gcGlwZXMgdW50aWwgd2Uga25vdyB3aGljaAogCSAqIHBpcGVzIHdlIHdhbnQgdG8gdXNlLgpAQCAtMTE5OCw4ICsxMjcwLDggQEAgc3RhdGljIHZvaWQgZGNuMTBfaW5pdF9odyhzdHJ1Y3QgZGMgKmRjKQogCQlkYy0+aHdzcy5pbml0X3BpcGVzKGRjLCBkYy0+Y3VycmVudF9zdGF0ZSk7CiAJfQogCi0JZm9yIChpID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+YXVkaW9fY291bnQ7IGkrKykgewotCQlzdHJ1Y3QgYXVkaW8gKmF1ZGlvID0gZGMtPnJlc19wb29sLT5hdWRpb3NbaV07CisJZm9yIChpID0gMDsgaSA8IHJlc19wb29sLT5hdWRpb19jb3VudDsgaSsrKSB7CisJCXN0cnVjdCBhdWRpbyAqYXVkaW8gPSByZXNfcG9vbC0+YXVkaW9zW2ldOwogCiAJCWF1ZGlvLT5mdW5jcy0+aHdfaW5pdChhdWRpbyk7CiAJfQpAQCAtMTIyNyw5ICsxMjk5LDcgQEAgc3RhdGljIHZvaWQgZGNuMTBfaW5pdF9odyhzdHJ1Y3QgZGMgKmRjKQogCQlSRUdfVVBEQVRFKERDRkNMS19DTlRMLCBEQ0ZDTEtfR0FURV9ESVMsIDApOwogCX0KIAotCWVuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUoZGMtPmh3c2VxLCB0cnVlKTsKLQotCW1lbXNldCgmZGMtPmNsa19tZ3ItPmNsa3MsIDAsIHNpemVvZihkYy0+Y2xrX21nci0+Y2xrcykpOworCWRjLT5od3NzLmVuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUoZGMtPmh3c2VxLCB0cnVlKTsKIH0KIAogc3RhdGljIHZvaWQgZGNuMTBfcmVzZXRfaHdfY3R4X3dyYXAoCkBAIC0xMzY2LDYgKzE0MzYsMzQgQEAgc3RhdGljIGJvb2wgZGNuMTBfc2V0X2lucHV0X3RyYW5zZmVyX2Z1bmMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAlyZXR1cm4gcmVzdWx0OwogfQogCisjZGVmaW5lIE1BWF9OVU1fSFdfUE9JTlRTIDB4MjAwCisKK3N0YXRpYyB2b2lkIGxvZ190ZihzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAorCQkJCXN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICp0ZiwgdWludDMyX3QgaHdfcG9pbnRzX251bSkKK3sKKwkvLyBEQ19MT0dfR0FNTUEgaXMgZGVmYXVsdCBsb2dnaW5nIG9mIGFsbCBodyBwb2ludHMKKwkvLyBEQ19MT0dfQUxMX0dBTU1BIGxvZ3MgYWxsIHBvaW50cywgbm90IG9ubHkgaHcgcG9pbnRzCisJLy8gRENfTE9HX0FMTF9URl9QT0lOVFMgbG9ncyBhbGwgY2hhbm5lbHMgb2YgdGhlIHRmCisJaW50IGkgPSAwOworCisJRENfTE9HR0VSX0lOSVQoY3R4LT5sb2dnZXIpOworCURDX0xPR19HQU1NQSgiR2FtbWEgQ29ycmVjdGlvbiBURiIpOworCURDX0xPR19BTExfR0FNTUEoIkxvZ2dpbmcgYWxsIHRmIHBvaW50cy4uLiIpOworCURDX0xPR19BTExfVEZfQ0hBTk5FTFMoIkxvZ2dpbmcgYWxsIGNoYW5uZWxzLi4uIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgaHdfcG9pbnRzX251bTsgaSsrKSB7CisJCURDX0xPR19HQU1NQSgiUlx0JWRcdCVsbHVcbiIsIGksIHRmLT50Zl9wdHMucmVkW2ldLnZhbHVlKTsKKwkJRENfTE9HX0FMTF9URl9DSEFOTkVMUygiR1x0JWRcdCVsbHVcbiIsIGksIHRmLT50Zl9wdHMuZ3JlZW5baV0udmFsdWUpOworCQlEQ19MT0dfQUxMX1RGX0NIQU5ORUxTKCJCXHQlZFx0JWxsdVxuIiwgaSwgdGYtPnRmX3B0cy5ibHVlW2ldLnZhbHVlKTsKKwl9CisKKwlmb3IgKGkgPSBod19wb2ludHNfbnVtOyBpIDwgTUFYX05VTV9IV19QT0lOVFM7IGkrKykgeworCQlEQ19MT0dfQUxMX0dBTU1BKCJSXHQlZFx0JWxsdVxuIiwgaSwgdGYtPnRmX3B0cy5yZWRbaV0udmFsdWUpOworCQlEQ19MT0dfQUxMX1RGX0NIQU5ORUxTKCJHXHQlZFx0JWxsdVxuIiwgaSwgdGYtPnRmX3B0cy5ncmVlbltpXS52YWx1ZSk7CisJCURDX0xPR19BTExfVEZfQ0hBTk5FTFMoIkJcdCVkXHQlbGx1XG4iLCBpLCB0Zi0+dGZfcHRzLmJsdWVbaV0udmFsdWUpOworCX0KK30KKwogc3RhdGljIGJvb2wKIGRjbjEwX3NldF9vdXRwdXRfdHJhbnNmZXJfZnVuYyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSkKQEAgLTEzOTQsNiArMTQ5MiwxMyBAQCBkY24xMF9zZXRfb3V0cHV0X3RyYW5zZmVyX2Z1bmMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAl9IGVsc2UKIAkJZHBwLT5mdW5jcy0+ZHBwX3Byb2dyYW1fcmVnYW1tYV9wd2woZHBwLCBOVUxMLCBPUFBfUkVHQU1NQV9CWVBBU1MpOwogCisJaWYgKHN0cmVhbSAhPSBOVUxMICYmIHN0cmVhbS0+Y3R4ICE9IE5VTEwgJiYKKwkJCXN0cmVhbS0+b3V0X3RyYW5zZmVyX2Z1bmMgIT0gTlVMTCkgeworCQlsb2dfdGYoc3RyZWFtLT5jdHgsCisJCQkJc3RyZWFtLT5vdXRfdHJhbnNmZXJfZnVuYywKKwkJCQlkcHAtPnJlZ2FtbWFfcGFyYW1zLmh3X3BvaW50c19udW0pOworCX0KKwogCXJldHVybiB0cnVlOwogfQogCkBAIC0xNzg2LDcgKzE4OTEsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9lbmFibGVfcGxhbmUoCiAJfQogfQogCi1zdGF0aWMgdm9pZCBwcm9ncmFtX2dhbXV0X3JlbWFwKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCitzdGF0aWMgdm9pZCBkY24xMF9wcm9ncmFtX2dhbXV0X3JlbWFwKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiB7CiAJaW50IGkgPSAwOwogCXN0cnVjdCBkcHBfZ3JwaF9jc2NfYWRqdXN0bWVudCBhZGp1c3Q7CkBAIC0xODA0LDYgKzE5MDksMzYgQEAgc3RhdGljIHZvaWQgcHJvZ3JhbV9nYW11dF9yZW1hcChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCXBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwLT5mdW5jcy0+ZHBwX3NldF9nYW11dF9yZW1hcChwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcCwgJmFkanVzdCk7CiB9CiAKKworc3RhdGljIGJvb2wgZGNuMTBfaXNfcmVhcl9tcG9fZml4X3JlcXVpcmVkKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGVudW0gZGNfY29sb3Jfc3BhY2UgY29sb3JzcGFjZSkKK3sKKwlpZiAocGlwZV9jdHgtPnBsYW5lX3N0YXRlICYmIHBpcGVfY3R4LT5wbGFuZV9zdGF0ZS0+bGF5ZXJfaW5kZXggPiAwICYmIGlzX3JnYl9jc3BhY2UoY29sb3JzcGFjZSkpIHsKKwkJaWYgKHBpcGVfY3R4LT50b3BfcGlwZSkgeworCQkJc3RydWN0IHBpcGVfY3R4ICp0b3AgPSBwaXBlX2N0eC0+dG9wX3BpcGU7CisKKwkJCXdoaWxlICh0b3AtPnRvcF9waXBlKQorCQkJCXRvcCA9IHRvcC0+dG9wX3BpcGU7IC8vIFRyYXZlcnNlIHRvIHRvcCBwaXBlX2N0eAorCQkJaWYgKHRvcC0+cGxhbmVfc3RhdGUgJiYgdG9wLT5wbGFuZV9zdGF0ZS0+bGF5ZXJfaW5kZXggPT0gMCkKKwkJCQlyZXR1cm4gdHJ1ZTsgLy8gRnJvbnQgTVBPIHBsYW5lIG5vdCBoaWRkZW4KKwkJfQorCX0KKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkIGRjbjEwX3NldF9jc2NfYWRqdXN0bWVudF9yZ2JfbXBvX2ZpeChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCB1aW50MTZfdCAqbWF0cml4KQoreworCS8vIE92ZXJyaWRlIHJlYXIgcGxhbmUgUkdCIGJpYXMgdG8gZml4IE1QTyBicmlnaHRuZXNzCisJdWludDE2X3QgcmdiX2JpYXMgPSBtYXRyaXhbM107CisKKwltYXRyaXhbM10gPSAwOworCW1hdHJpeFs3XSA9IDA7CisJbWF0cml4WzExXSA9IDA7CisJcGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAtPmZ1bmNzLT5kcHBfc2V0X2NzY19hZGp1c3RtZW50KHBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwLCBtYXRyaXgpOworCW1hdHJpeFszXSA9IHJnYl9iaWFzOworCW1hdHJpeFs3XSA9IHJnYl9iaWFzOworCW1hdHJpeFsxMV0gPSByZ2JfYmlhczsKK30KKwogc3RhdGljIHZvaWQgZGNuMTBfcHJvZ3JhbV9vdXRwdXRfY3NjKHN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJCWVudW0gZGNfY29sb3Jfc3BhY2UgY29sb3JzcGFjZSwKQEAgLTE4MTEsOCArMTk0NiwyNSBAQCBzdGF0aWMgdm9pZCBkY24xMF9wcm9ncmFtX291dHB1dF9jc2Moc3RydWN0IGRjICpkYywKIAkJaW50IG9wcF9pZCkKIHsKIAlpZiAocGlwZV9jdHgtPnN0cmVhbS0+Y3NjX2NvbG9yX21hdHJpeC5lbmFibGVfYWRqdXN0bWVudCA9PSB0cnVlKSB7Ci0JCWlmIChwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcC0+ZnVuY3MtPmRwcF9zZXRfY3NjX2FkanVzdG1lbnQgIT0gTlVMTCkKLQkJCXBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwLT5mdW5jcy0+ZHBwX3NldF9jc2NfYWRqdXN0bWVudChwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcCwgbWF0cml4KTsKKwkJaWYgKHBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwLT5mdW5jcy0+ZHBwX3NldF9jc2NfYWRqdXN0bWVudCAhPSBOVUxMKSB7CisKKwkJCS8qIE1QTyBpcyBicm9rZW4gd2l0aCBSR0IgY29sb3JzcGFjZXMgd2hlbiBPQ1NDIG1hdHJpeAorCQkJICogYnJpZ2h0bmVzcyBvZmZzZXQgPj0gMCBvbiBEQ04xIGR1ZSB0byBPQ1NDIGJlZm9yZSBNUEMKKwkJCSAqIEJsZW5kaW5nIGFkZHMgb2Zmc2V0cyBmcm9tIGZyb250ICsgcmVhciB0byByZWFyIHBsYW5lCisJCQkgKgorCQkJICogRml4IGlzIHRvIHNldCBSR0IgYmlhcyB0byAwIG9uIHJlYXIgcGxhbmUsIHRvcCBwbGFuZQorCQkJICogYmxhY2sgdmFsdWUgcGl4ZWxzIGFkZCBvZmZzZXQgaW5zdGVhZCBvZiByZWFyICsgZnJvbnQKKwkJCSAqLworCisJCQlpbnQxNl90IHJnYl9iaWFzID0gbWF0cml4WzNdOworCQkJLy8gbWF0cml4WzMvNy8xMV0gYXJlIGFsbCB0aGUgc2FtZSBvZmZzZXQgdmFsdWUKKworCQkJaWYgKHJnYl9iaWFzID4gMCAmJiBkY24xMF9pc19yZWFyX21wb19maXhfcmVxdWlyZWQocGlwZV9jdHgsIGNvbG9yc3BhY2UpKSB7CisJCQkJZGNuMTBfc2V0X2NzY19hZGp1c3RtZW50X3JnYl9tcG9fZml4KHBpcGVfY3R4LCBtYXRyaXgpOworCQkJfSBlbHNlIHsKKwkJCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcC0+ZnVuY3MtPmRwcF9zZXRfY3NjX2FkanVzdG1lbnQocGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAsIG1hdHJpeCk7CisJCQl9CisJCX0KIAl9IGVsc2UgewogCQlpZiAocGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAtPmZ1bmNzLT5kcHBfc2V0X2NzY19kZWZhdWx0ICE9IE5VTEwpCiAJCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcC0+ZnVuY3MtPmRwcF9zZXRfY3NjX2RlZmF1bHQocGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAsIGNvbG9yc3BhY2UpOwpAQCAtMjEzMiw3ICsyMjg0LDcgQEAgdm9pZCB1cGRhdGVfZGNodWJwX2RwcCgKIAlzdHJ1Y3QgaHVicCAqaHVicCA9IHBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicDsKIAlzdHJ1Y3QgZHBwICpkcHAgPSBwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcDsKIAlzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0gcGlwZV9jdHgtPnBsYW5lX3N0YXRlOwotCXVuaW9uIHBsYW5lX3NpemUgc2l6ZSA9IHBsYW5lX3N0YXRlLT5wbGFuZV9zaXplOworCXN0cnVjdCBwbGFuZV9zaXplIHNpemUgPSBwbGFuZV9zdGF0ZS0+cGxhbmVfc2l6ZTsKIAl1bnNpZ25lZCBpbnQgY29tcGF0X2xldmVsID0gMDsKIAogCS8qIGRlcGVuZHMgb24gRE1MIGNhbGN1bGF0aW9uLCBEUFAgY2xvY2sgdmFsdWUgbWF5IGNoYW5nZSBkeW5hbWljYWxseSAqLwpAQCAtMjE1Miw3ICsyMzA0LDggQEAgdm9pZCB1cGRhdGVfZGNodWJwX2RwcCgKIAkJCWRjLT5yZXNfcG9vbC0+ZGNjZy0+ZnVuY3MtPnVwZGF0ZV9kcHBfZHRvKAogCQkJCQlkYy0+cmVzX3Bvb2wtPmRjY2csCiAJCQkJCWRwcC0+aW5zdCwKLQkJCQkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5idy5kcHBjbGtfa2h6KTsKKwkJCQkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5idy5kcHBjbGtfa2h6LAorCQkJCQlmYWxzZSk7CiAJCWVsc2UKIAkJCWRjLT5jbGtfbWdyLT5jbGtzLmRwcGNsa19raHogPSBzaG91bGRfZGl2aWRlZF9ieV8yID8KIAkJCQkJCWRjLT5jbGtfbWdyLT5jbGtzLmRpc3BjbGtfa2h6IC8gMiA6CkBAIC0yMTc4LDcgKzIzMzEsNyBAQCB2b2lkIHVwZGF0ZV9kY2h1YnBfZHBwKAogCQkJJnBpcGVfY3R4LT50dHVfcmVncyk7CiAJfQogCi0Jc2l6ZS5ncnBoLnN1cmZhY2Vfc2l6ZSA9IHBpcGVfY3R4LT5wbGFuZV9yZXMuc2NsX2RhdGEudmlld3BvcnQ7CisJc2l6ZS5zdXJmYWNlX3NpemUgPSBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnZpZXdwb3J0OwogCiAJaWYgKHBsYW5lX3N0YXRlLT51cGRhdGVfZmxhZ3MuYml0cy5mdWxsX3VwZGF0ZSB8fAogCQlwbGFuZV9zdGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuYnBwX2NoYW5nZSkKQEAgLTIyMTYsNyArMjM2OSw3IEBAIHZvaWQgdXBkYXRlX2RjaHVicF9kcHAoCiAKIAlpZiAocGxhbmVfc3RhdGUtPnVwZGF0ZV9mbGFncy5iaXRzLmZ1bGxfdXBkYXRlKSB7CiAJCS8qZ2FtdXQgcmVtYXAqLwotCQlwcm9ncmFtX2dhbXV0X3JlbWFwKHBpcGVfY3R4KTsKKwkJZGMtPmh3c3MucHJvZ3JhbV9nYW11dF9yZW1hcChwaXBlX2N0eCk7CiAKIAkJZGMtPmh3c3MucHJvZ3JhbV9vdXRwdXRfY3NjKGRjLAogCQkJCXBpcGVfY3R4LApAQCAtMjM4OCw3ICsyNTQxLDcgQEAgc3RydWN0IHBpcGVfY3R4ICpmaW5kX3RvcF9waXBlX2Zvcl9zdHJlYW0oCiAJCWlmIChwaXBlX2N0eC0+c3RyZWFtICE9IHN0cmVhbSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmICghcGlwZV9jdHgtPnRvcF9waXBlKQorCQlpZiAoIXBpcGVfY3R4LT50b3BfcGlwZSAmJiAhcGlwZV9jdHgtPnByZXZfb2RtX3BpcGUpCiAJCQlyZXR1cm4gcGlwZV9jdHg7CiAJfQogCXJldHVybiBOVUxMOwpAQCAtMjQ1Myw3ICsyNjA2LDcgQEAgc3RhdGljIHZvaWQgZGNuMTBfYXBwbHlfY3R4X2Zvcl9zdXJmYWNlKAogCQkJaWYgKG9sZF9waXBlX2N0eC0+c3RyZWFtX3Jlcy50ZyA9PSB0ZyAmJgogCQkJICAgIG9sZF9waXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAgJiYKIAkJCSAgICBvbGRfcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwLT5vcHBfaWQgIT0gT1BQX0lEX0lOVkFMSUQpCi0JCQkJZGNuMTBfZGlzYWJsZV9wbGFuZShkYywgb2xkX3BpcGVfY3R4KTsKKwkJCQlkYy0+aHdzcy5kaXNhYmxlX3BsYW5lKGRjLCBvbGRfcGlwZV9jdHgpOwogCQl9CiAKIAkJaWYgKCghcGlwZV9jdHgtPnBsYW5lX3N0YXRlIHx8CkBAIC0yNTAxLDcgKzI2NTQsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9hcHBseV9jdHhfZm9yX3N1cmZhY2UoCiAKIAlmb3IgKGkgPSAwOyBpIDwgZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspCiAJCWlmIChyZW1vdmVkX3BpcGVbaV0pCi0JCQlkY24xMF9kaXNhYmxlX3BsYW5lKGRjLCAmZGMtPmN1cnJlbnRfc3RhdGUtPnJlc19jdHgucGlwZV9jdHhbaV0pOworCQkJZGMtPmh3c3MuZGlzYWJsZV9wbGFuZShkYywgJmRjLT5jdXJyZW50X3N0YXRlLT5yZXNfY3R4LnBpcGVfY3R4W2ldKTsKIAogCWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykKIAkJaWYgKHJlbW92ZWRfcGlwZVtpXSkgewpAQCAtMjU5Myw4ICsyNzQ2LDkgQEAgc3RhdGljIHZvaWQgZGNuMTBfb3B0aW1pemVfYmFuZHdpZHRoKAogCQlkY24xMF92ZXJpZnlfYWxsb3dfcHN0YXRlX2NoYW5nZV9oaWdoKGRjKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0X2RycihzdHJ1Y3QgcGlwZV9jdHggKipwaXBlX2N0eCwKLQkJaW50IG51bV9waXBlcywgaW50IHZtaW4sIGludCB2bWF4KQorc3RhdGljIHZvaWQgZGNuMTBfc2V0X2RycihzdHJ1Y3QgcGlwZV9jdHggKipwaXBlX2N0eCwKKwkJaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHZtaW4sIHVuc2lnbmVkIGludCB2bWF4LAorCQl1bnNpZ25lZCBpbnQgdm1pZCwgdW5zaWduZWQgaW50IHZtaWRfZnJhbWVfbnVtYmVyKQogewogCWludCBpID0gMDsKIAlzdHJ1Y3QgZHJyX3BhcmFtcyBwYXJhbXMgPSB7MH07CkBAIC0yNjAzLDYgKzI3NTcsOCBAQCBzdGF0aWMgdm9pZCBzZXRfZHJyKHN0cnVjdCBwaXBlX2N0eCAqKnBpcGVfY3R4LAogCiAJcGFyYW1zLnZlcnRpY2FsX3RvdGFsX21heCA9IHZtYXg7CiAJcGFyYW1zLnZlcnRpY2FsX3RvdGFsX21pbiA9IHZtaW47CisJcGFyYW1zLnZlcnRpY2FsX3RvdGFsX21pZCA9IHZtaWQ7CisJcGFyYW1zLnZlcnRpY2FsX3RvdGFsX21pZF9mcmFtZV9udW0gPSB2bWlkX2ZyYW1lX251bWJlcjsKIAogCS8qIFRPRE86IElmIG11bHRpcGxlIHBpcGVzIGFyZSB0byBiZSBzdXBwb3J0ZWQsIHlvdSBuZWVkCiAJICogc29tZSBHU0wgc3R1ZmYuIFN0YXRpYyBzY3JlZW4gdHJpZ2dlcnMgbWF5IGJlIHByb2dyYW1tZWQgZGlmZmVyZW50bHkKQEAgLTI2MTgsNyArMjc3NCw3IEBAIHN0YXRpYyB2b2lkIHNldF9kcnIoc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBnZXRfcG9zaXRpb24oc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCitzdGF0aWMgdm9pZCBkY24xMF9nZXRfcG9zaXRpb24oc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCiAJCWludCBudW1fcGlwZXMsCiAJCXN0cnVjdCBjcnRjX3Bvc2l0aW9uICpwb3NpdGlvbikKIHsKQEAgLTI2MzAsNyArMjc4Niw3IEBAIHN0YXRpYyB2b2lkIGdldF9wb3NpdGlvbihzdHJ1Y3QgcGlwZV9jdHggKipwaXBlX2N0eCwKIAkJcGlwZV9jdHhbaV0tPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5nZXRfcG9zaXRpb24ocGlwZV9jdHhbaV0tPnN0cmVhbV9yZXMudGcsIHBvc2l0aW9uKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0X3N0YXRpY19zY3JlZW5fY29udHJvbChzdHJ1Y3QgcGlwZV9jdHggKipwaXBlX2N0eCwKK3N0YXRpYyB2b2lkIGRjbjEwX3NldF9zdGF0aWNfc2NyZWVuX2NvbnRyb2woc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCiAJCWludCBudW1fcGlwZXMsIGNvbnN0IHN0cnVjdCBkY19zdGF0aWNfc2NyZWVuX2V2ZW50cyAqZXZlbnRzKQogewogCXVuc2lnbmVkIGludCBpOwpAQCAtMjY5Miw2ICsyODQ4LDEzIEBAIHN0YXRpYyB2b2lkIGRjbjEwX3NldHVwX3N0ZXJlbyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBzdHJ1Y3QgZGMgKmRjKQogCiAJZGNuMTBfY29uZmlnX3N0ZXJlb19wYXJhbWV0ZXJzKHN0cmVhbSwgJmZsYWdzKTsKIAorCWlmIChzdHJlYW0tPnRpbWluZy50aW1pbmdfM2RfZm9ybWF0ID09IFRJTUlOR18zRF9GT1JNQVRfU0lERUJBTkRfRkEpIHsKKwkJaWYgKCFkY19zZXRfZ2VuZXJpY19ncGlvX2Zvcl9zdGVyZW8odHJ1ZSwgZGMtPmN0eC0+Z3Bpb19zZXJ2aWNlKSkKKwkJCWRjX3NldF9nZW5lcmljX2dwaW9fZm9yX3N0ZXJlbyhmYWxzZSwgZGMtPmN0eC0+Z3Bpb19zZXJ2aWNlKTsKKwl9IGVsc2UgeworCQlkY19zZXRfZ2VuZXJpY19ncGlvX2Zvcl9zdGVyZW8oZmFsc2UsIGRjLT5jdHgtPmdwaW9fc2VydmljZSk7CisJfQorCiAJcGlwZV9jdHgtPnN0cmVhbV9yZXMub3BwLT5mdW5jcy0+b3BwX3Byb2dyYW1fc3RlcmVvKAogCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5vcHAsCiAJCWZsYWdzLlBST0dSQU1fU1RFUkVPID09IDEgPyB0cnVlOmZhbHNlLApAQCAtMjc4MiwxNCArMjk0NSwxMCBAQCBzdGF0aWMgdm9pZCBkY24xMF91cGRhdGVfcGVuZGluZ19zdGF0dXMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAogc3RhdGljIHZvaWQgZGNuMTBfdXBkYXRlX2RjaHViKHN0cnVjdCBkY2VfaHdzZXEgKmh3cywgc3RydWN0IGRjaHViX2luaXRfZGF0YSAqZGhfZGF0YSkKIHsKLQlpZiAoaHdzLT5jdHgtPmRjLT5yZXNfcG9vbC0+aHViYnViICE9IE5VTEwpIHsKLQkJc3RydWN0IGh1YnAgKmh1YnAgPSBod3MtPmN0eC0+ZGMtPnJlc19wb29sLT5odWJwc1swXTsKKwlzdHJ1Y3QgaHViYnViICpodWJidWIgPSBod3MtPmN0eC0+ZGMtPnJlc19wb29sLT5odWJidWI7CiAKLQkJaWYgKGh1YnAtPmZ1bmNzLT5odWJwX3VwZGF0ZV9kY2h1YikKLQkJCWh1YnAtPmZ1bmNzLT5odWJwX3VwZGF0ZV9kY2h1YihodWJwLCBkaF9kYXRhKTsKLQkJZWxzZQotCQkJaHViYnViMV91cGRhdGVfZGNodWIoaHdzLT5jdHgtPmRjLT5yZXNfcG9vbC0+aHViYnViLCBkaF9kYXRhKTsKLQl9CisJLyogSW4gRENOLCB0aGlzIHByb2dyYW1taW5nIHNlcXVlbmNlIGlzIG93bmVkIGJ5IHRoZSBodWJidWIgKi8KKwlodWJidWItPmZ1bmNzLT51cGRhdGVfZGNodWIoaHViYnViLCBkaF9kYXRhKTsKIH0KIAogc3RhdGljIHZvaWQgZGNuMTBfc2V0X2N1cnNvcl9wb3NpdGlvbihzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQpAQCAtMjgyMCw2ICsyOTc5LDQwIEBAIHN0YXRpYyB2b2lkIGRjbjEwX3NldF9jdXJzb3JfcG9zaXRpb24oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAkJCT09IFBMTl9BRERSX1RZUEVfVklERU9fUFJPR1JFU1NJVkUpCiAJCXBvc19jcHkuZW5hYmxlID0gZmFsc2U7CiAKKwkvLyBTd2FwIGF4aXMgYW5kIG1pcnJvciBob3Jpem9udGFsbHkKKwlpZiAocGFyYW0ucm90YXRpb24gPT0gUk9UQVRJT05fQU5HTEVfOTApIHsKKwkJdWludDMyX3QgdGVtcF94ID0gcG9zX2NweS54OworCQlwb3NfY3B5LnggPSBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnZpZXdwb3J0LndpZHRoIC0KKwkJCQkocG9zX2NweS55IC0gcGlwZV9jdHgtPnBsYW5lX3Jlcy5zY2xfZGF0YS52aWV3cG9ydC54KSArIHBpcGVfY3R4LT5wbGFuZV9yZXMuc2NsX2RhdGEudmlld3BvcnQueDsKKwkJcG9zX2NweS55ID0gdGVtcF94OworCX0KKwkvLyBTd2FwIGF4aXMgYW5kIG1pcnJvciB2ZXJ0aWNhbGx5CisJZWxzZSBpZiAocGFyYW0ucm90YXRpb24gPT0gUk9UQVRJT05fQU5HTEVfMjcwKSB7CisJCXVpbnQzMl90IHRlbXBfeSA9IHBvc19jcHkueTsKKwkJaWYgKHBvc19jcHkueCA+ICBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnZpZXdwb3J0LmhlaWdodCkgeworCQkJcG9zX2NweS54ID0gcG9zX2NweS54IC0gcGlwZV9jdHgtPnBsYW5lX3Jlcy5zY2xfZGF0YS52aWV3cG9ydC5oZWlnaHQ7CisJCQlwb3NfY3B5LnkgPSBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnZpZXdwb3J0LmhlaWdodCAtIHBvc19jcHkueDsKKwkJfSBlbHNlIHsKKwkJCXBvc19jcHkueSA9IDIgKiBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnZpZXdwb3J0LmhlaWdodCAtIHBvc19jcHkueDsKKwkJfQorCQlwb3NfY3B5LnggPSB0ZW1wX3k7CisJfQorCS8vIE1pcnJvciBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkKKwllbHNlIGlmIChwYXJhbS5yb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV8xODApIHsKKwkJaWYgKHBvc19jcHkueCA+PSBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnZpZXdwb3J0LndpZHRoICsgcGlwZV9jdHgtPnBsYW5lX3Jlcy5zY2xfZGF0YS52aWV3cG9ydC54KSB7CisJCQlwb3NfY3B5LnggPSAyICogcGlwZV9jdHgtPnBsYW5lX3Jlcy5zY2xfZGF0YS52aWV3cG9ydC53aWR0aAorCQkJCQktIHBvc19jcHkueCArIDIgKiBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnZpZXdwb3J0Lng7CisJCX0gZWxzZSB7CisJCQl1aW50MzJfdCB0ZW1wX3ggPSBwb3NfY3B5Lng7CisJCQlwb3NfY3B5LnggPSAyICogcGlwZV9jdHgtPnBsYW5lX3Jlcy5zY2xfZGF0YS52aWV3cG9ydC54IC0gcG9zX2NweS54OworCQkJaWYgKHRlbXBfeCA+PSBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnZpZXdwb3J0LnggKyAoaW50KWh1YnAtPmN1cnNfYXR0ci53aWR0aAorCQkJCQl8fCBwb3NfY3B5LnggPD0gKGludClodWJwLT5jdXJzX2F0dHIud2lkdGggKyBwaXBlX2N0eC0+cGxhbmVfc3RhdGUtPnNyY19yZWN0LngpIHsKKwkJCQlwb3NfY3B5LnggPSB0ZW1wX3ggKyBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnZpZXdwb3J0LndpZHRoOworCQkJfQorCQl9CisJCXBvc19jcHkueSA9IHBpcGVfY3R4LT5wbGFuZV9yZXMuc2NsX2RhdGEudmlld3BvcnQuaGVpZ2h0IC0gcG9zX2NweS55OworCX0KKwogCWh1YnAtPmZ1bmNzLT5zZXRfY3Vyc29yX3Bvc2l0aW9uKGh1YnAsICZwb3NfY3B5LCAmcGFyYW0pOwogCWRwcC0+ZnVuY3MtPnNldF9jdXJzb3JfcG9zaXRpb24oZHBwLCAmcG9zX2NweSwgJnBhcmFtLCBodWJwLT5jdXJzX2F0dHIud2lkdGgsIGh1YnAtPmN1cnNfYXR0ci5oZWlnaHQpOwogfQpAQCAtMjgzMSw3ICszMDI0LDcgQEAgc3RhdGljIHZvaWQgZGNuMTBfc2V0X2N1cnNvcl9hdHRyaWJ1dGUoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAlwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAtPmZ1bmNzLT5zZXRfY3Vyc29yX2F0dHJpYnV0ZXMoCiAJCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAsIGF0dHJpYnV0ZXMpOwogCXBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwLT5mdW5jcy0+c2V0X2N1cnNvcl9hdHRyaWJ1dGVzKAotCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcCwgYXR0cmlidXRlcy0+Y29sb3JfZm9ybWF0KTsKKwkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAsIGF0dHJpYnV0ZXMpOwogfQogCiBzdGF0aWMgdm9pZCBkY24xMF9zZXRfY3Vyc29yX3Nkcl93aGl0ZV9sZXZlbChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQpAQCAtMzA2Miw5ICszMjU1LDU5IEBAIHN0YXRpYyB2b2lkIGRjbjEwX3NlbmRfaW1tZWRpYXRlX3NkcF9tZXNzYWdlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJCQkJc2RwX21lc3NhZ2Vfc2l6ZSk7CiAJfQogfQorc3RhdGljIGVudW0gZGNfc3RhdHVzIGRjbjEwX3NldF9jbG9jayhzdHJ1Y3QgZGMgKmRjLAorCQkJZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5cGUsCisJCQl1aW50MzJfdCBjbGtfa2h6LAorCQkJdWludDMyX3Qgc3RlcHBpbmcpCit7CisJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0ID0gZGMtPmN1cnJlbnRfc3RhdGU7CisJc3RydWN0IGRjX2Nsb2NrX2NvbmZpZyBjbG9ja19jZmcgPSB7MH07CisJc3RydWN0IGRjX2Nsb2NrcyAqY3VycmVudF9jbG9ja3MgPSAmY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGs7CisKKwlpZiAoZGMtPmNsa19tZ3IgJiYgZGMtPmNsa19tZ3ItPmZ1bmNzLT5nZXRfY2xvY2spCisJCQkJZGMtPmNsa19tZ3ItPmZ1bmNzLT5nZXRfY2xvY2soZGMtPmNsa19tZ3IsCisJCQkJCQljb250ZXh0LCBjbG9ja190eXBlLCAmY2xvY2tfY2ZnKTsKKworCWlmICghZGMtPmNsa19tZ3ItPmZ1bmNzLT5nZXRfY2xvY2spCisJCXJldHVybiBEQ19GQUlMX1VOU1VQUE9SVEVEXzE7CisKKwlpZiAoY2xrX2toeiA+IGNsb2NrX2NmZy5tYXhfY2xvY2tfa2h6KQorCQlyZXR1cm4gRENfRkFJTF9DTEtfRVhDRUVEX01BWDsKKworCWlmIChjbGtfa2h6IDwgY2xvY2tfY2ZnLm1pbl9jbG9ja19raHopCisJCXJldHVybiBEQ19GQUlMX0NMS19CRUxPV19NSU47CisKKwlpZiAoY2xrX2toeiA8IGNsb2NrX2NmZy5id19yZXF1aXJlcXVpcmVkX2Nsb2NrX2toeikKKwkJcmV0dXJuIERDX0ZBSUxfQ0xLX0JFTE9XX0NGR19SRVFVSVJFRDsKKworCS8qdXBkYXRlIGludGVybmFsIHJlcXVlc3QgY2xvY2sgZm9yIHVwZGF0ZSBjbG9jayB1c2UqLworCWlmIChjbG9ja190eXBlID09IERDX0NMT0NLX1RZUEVfRElTUENMSykKKwkJY3VycmVudF9jbG9ja3MtPmRpc3BjbGtfa2h6ID0gY2xrX2toejsKKwllbHNlIGlmIChjbG9ja190eXBlID09IERDX0NMT0NLX1RZUEVfRFBQQ0xLKQorCQljdXJyZW50X2Nsb2Nrcy0+ZHBwY2xrX2toeiA9IGNsa19raHo7CisJZWxzZQorCQlyZXR1cm4gRENfRVJST1JfVU5FWFBFQ1RFRDsKKworCWlmIChkYy0+Y2xrX21nciAmJiBkYy0+Y2xrX21nci0+ZnVuY3MtPnVwZGF0ZV9jbG9ja3MpCisJCQkJZGMtPmNsa19tZ3ItPmZ1bmNzLT51cGRhdGVfY2xvY2tzKGRjLT5jbGtfbWdyLAorCQkJCWNvbnRleHQsIHRydWUpOworCXJldHVybiBEQ19PSzsKKworfQorCitzdGF0aWMgdm9pZCBkY24xMF9nZXRfY2xvY2soc3RydWN0IGRjICpkYywKKwkJCWVudW0gZGNfY2xvY2tfdHlwZSBjbG9ja190eXBlLAorCQkJc3RydWN0IGRjX2Nsb2NrX2NvbmZpZyAqY2xvY2tfY2ZnKQoreworCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCA9IGRjLT5jdXJyZW50X3N0YXRlOworCisJaWYgKGRjLT5jbGtfbWdyICYmIGRjLT5jbGtfbWdyLT5mdW5jcy0+Z2V0X2Nsb2NrKQorCQkJCWRjLT5jbGtfbWdyLT5mdW5jcy0+Z2V0X2Nsb2NrKGRjLT5jbGtfbWdyLCBjb250ZXh0LCBjbG9ja190eXBlLCBjbG9ja19jZmcpOworCit9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfc2VxdWVuY2VyX2Z1bmNzIGRjbjEwX2Z1bmNzID0gewotCS5wcm9ncmFtX2dhbXV0X3JlbWFwID0gcHJvZ3JhbV9nYW11dF9yZW1hcCwKKwkucHJvZ3JhbV9nYW11dF9yZW1hcCA9IGRjbjEwX3Byb2dyYW1fZ2FtdXRfcmVtYXAsCiAJLmluaXRfaHcgPSBkY24xMF9pbml0X2h3LAogCS5pbml0X3BpcGVzID0gZGNuMTBfaW5pdF9waXBlcywKIAkuYXBwbHlfY3R4X3RvX2h3ID0gZGNlMTEwX2FwcGx5X2N0eF90b19odywKQEAgLTMwOTcsMTggKzMzNDAsMTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBod19zZXF1ZW5jZXJfZnVuY3MgZGNuMTBfZnVuY3MgPSB7CiAJLm9wdGltaXplX2JhbmR3aWR0aCA9IGRjbjEwX29wdGltaXplX2JhbmR3aWR0aCwKIAkucmVzZXRfaHdfY3R4X3dyYXAgPSBkY24xMF9yZXNldF9od19jdHhfd3JhcCwKIAkuZW5hYmxlX3N0cmVhbV90aW1pbmcgPSBkY24xMF9lbmFibGVfc3RyZWFtX3RpbWluZywKLQkuc2V0X2RyciA9IHNldF9kcnIsCi0JLmdldF9wb3NpdGlvbiA9IGdldF9wb3NpdGlvbiwKLQkuc2V0X3N0YXRpY19zY3JlZW5fY29udHJvbCA9IHNldF9zdGF0aWNfc2NyZWVuX2NvbnRyb2wsCisJLnNldF9kcnIgPSBkY24xMF9zZXRfZHJyLAorCS5nZXRfcG9zaXRpb24gPSBkY24xMF9nZXRfcG9zaXRpb24sCisJLnNldF9zdGF0aWNfc2NyZWVuX2NvbnRyb2wgPSBkY24xMF9zZXRfc3RhdGljX3NjcmVlbl9jb250cm9sLAogCS5zZXR1cF9zdGVyZW8gPSBkY24xMF9zZXR1cF9zdGVyZW8sCiAJLnNldF9hdm11dGUgPSBkY2UxMTBfc2V0X2F2bXV0ZSwKIAkubG9nX2h3X3N0YXRlID0gZGNuMTBfbG9nX2h3X3N0YXRlLAogCS5nZXRfaHdfc3RhdGUgPSBkY24xMF9nZXRfaHdfc3RhdGUsCiAJLmNsZWFyX3N0YXR1c19iaXRzID0gZGNuMTBfY2xlYXJfc3RhdHVzX2JpdHMsCiAJLndhaXRfZm9yX21wY2NfZGlzY29ubmVjdCA9IGRjbjEwX3dhaXRfZm9yX21wY2NfZGlzY29ubmVjdCwKLQkuZWRwX2JhY2tsaWdodF9jb250cm9sID0gaHdzc19lZHBfYmFja2xpZ2h0X2NvbnRyb2wsCi0JLmVkcF9wb3dlcl9jb250cm9sID0gaHdzc19lZHBfcG93ZXJfY29udHJvbCwKLQkuZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSA9IGh3c3NfZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSwKKwkuZWRwX2JhY2tsaWdodF9jb250cm9sID0gZGNlMTEwX2VkcF9iYWNrbGlnaHRfY29udHJvbCwKKwkuZWRwX3Bvd2VyX2NvbnRyb2wgPSBkY2UxMTBfZWRwX3Bvd2VyX2NvbnRyb2wsCisJLmVkcF93YWl0X2Zvcl9ocGRfcmVhZHkgPSBkY2UxMTBfZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSwKIAkuc2V0X2N1cnNvcl9wb3NpdGlvbiA9IGRjbjEwX3NldF9jdXJzb3JfcG9zaXRpb24sCiAJLnNldF9jdXJzb3JfYXR0cmlidXRlID0gZGNuMTBfc2V0X2N1cnNvcl9hdHRyaWJ1dGUsCiAJLnNldF9jdXJzb3Jfc2RyX3doaXRlX2xldmVsID0gZGNuMTBfc2V0X2N1cnNvcl9zZHJfd2hpdGVfbGV2ZWwsCkBAIC0zMTE2LDcgKzMzNTksMTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBod19zZXF1ZW5jZXJfZnVuY3MgZGNuMTBfZnVuY3MgPSB7CiAJLmVuYWJsZV9zdHJlYW1fZ2F0aW5nID0gTlVMTCwKIAkuc2V0dXBfcGVyaW9kaWNfaW50ZXJydXB0ID0gZGNuMTBfc2V0dXBfcGVyaW9kaWNfaW50ZXJydXB0LAogCS5zZXR1cF92dXBkYXRlX2ludGVycnVwdCA9IGRjbjEwX3NldHVwX3Z1cGRhdGVfaW50ZXJydXB0LAotCS5kaWRfdW5kZXJmbG93X29jY3VyID0gZGNuMTBfZGlkX3VuZGVyZmxvd19vY2N1cgorCS5zZXRfY2xvY2sgPSBkY24xMF9zZXRfY2xvY2ssCisJLmdldF9jbG9jayA9IGRjbjEwX2dldF9jbG9jaywKKwkuZGlkX3VuZGVyZmxvd19vY2N1ciA9IGRjbjEwX2RpZF91bmRlcmZsb3dfb2NjdXIsCisJLmluaXRfYmxhbmsgPSBOVUxMLAorCS5kaXNhYmxlX3ZnYSA9IGRjbjEwX2Rpc2FibGVfdmdhLAorCS5iaW9zX2dvbGRlbl9pbml0ID0gZGNuMTBfYmlvc19nb2xkZW5faW5pdCwKKwkucGxhbmVfYXRvbWljX2Rpc2FibGUgPSBkY24xMF9wbGFuZV9hdG9taWNfZGlzYWJsZSwKKwkucGxhbmVfYXRvbWljX3Bvd2VyX2Rvd24gPSBkY24xMF9wbGFuZV9hdG9taWNfcG93ZXJfZG93biwKKwkuZW5hYmxlX3Bvd2VyX2dhdGluZ19wbGFuZSA9IGRjbjEwX2VuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUsCisJLmRwcF9wZ19jb250cm9sID0gZGNuMTBfZHBwX3BnX2NvbnRyb2wsCisJLmh1YnBfcGdfY29udHJvbCA9IGRjbjEwX2h1YnBfcGdfY29udHJvbCwKKwkuZHNjX3BnX2NvbnRyb2wgPSBOVUxMLAogfTsKIAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyX2RlYnVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyX2RlYnVnLmMKaW5kZXggNmU0NzQ0NC4uN2Y0NzY2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h3X3NlcXVlbmNlcl9kZWJ1Zy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXJfZGVidWcuYwpAQCAtNDUsNyArNDUsNyBAQAogI2luY2x1ZGUgImRjbjEwX2NtX2NvbW1vbi5oIgogI2luY2x1ZGUgImNsa19tZ3IuaCIKIAotc3RhdGljIHVuc2lnbmVkIGludCBzbnByaW50Zl9jb3VudChjaGFyICpwQnVmLCB1bnNpZ25lZCBpbnQgYnVmU2l6ZSwgY2hhciAqZm10LCAuLi4pCit1bnNpZ25lZCBpbnQgc25wcmludGZfY291bnQoY2hhciAqcEJ1ZiwgdW5zaWduZWQgaW50IGJ1ZlNpemUsIGNoYXIgKmZtdCwgLi4uKQogewogCXVuc2lnbmVkIGludCByZXRfdnNucHJpbnRmOwogCXVuc2lnbmVkIGludCBjaGFyc19wcmludGVkOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2xpbmtfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2xpbmtfZW5jb2Rlci5jCmluZGV4IDU0OWQ0MjMuLjFhMzdjOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9saW5rX2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfbGlua19lbmNvZGVyLmMKQEAgLTg5LDYgKzg5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBsaW5rX2VuY29kZXJfZnVuY3MgZGNuMTBfbG5rX2VuY19mdW5jcyA9IHsKIAkuZGlzYWJsZV9ocGQgPSBkY24xMF9saW5rX2VuY29kZXJfZGlzYWJsZV9ocGQsCiAJLmlzX2RpZ19lbmFibGVkID0gZGNuMTBfaXNfZGlnX2VuYWJsZWQsCiAJLmdldF9kaWdfZnJvbnRlbmQgPSBkY24xMF9nZXRfZGlnX2Zyb250ZW5kLAorCS5nZXRfZGlnX21vZGUgPSBkY24xMF9nZXRfZGlnX21vZGUsCiAJLmRlc3Ryb3kgPSBkY24xMF9saW5rX2VuY29kZXJfZGVzdHJveQogfTsKIApAQCAtNDQ2LDYgKzQ0Nyw0NiBAQCBzdGF0aWMgdWludDhfdCBnZXRfZnJvbnRlbmRfc291cmNlKAogCX0KIH0KIAordW5zaWduZWQgaW50IGRjbjEwX2dldF9kaWdfZnJvbnRlbmQoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKQoreworCXN0cnVjdCBkY24xMF9saW5rX2VuY29kZXIgKmVuYzEwID0gVE9fRENOMTBfTElOS19FTkMoZW5jKTsKKwlpbnQzMl90IHZhbHVlOworCWVudW0gZW5naW5lX2lkIHJlc3VsdDsKKworCVJFR19HRVQoRElHX0JFX0NOVEwsIERJR19GRV9TT1VSQ0VfU0VMRUNULCAmdmFsdWUpOworCisJc3dpdGNoICh2YWx1ZSkgeworCWNhc2UgRENOMTBfRElHX0ZFX1NPVVJDRV9TRUxFQ1RfRElHQToKKwkJcmVzdWx0ID0gRU5HSU5FX0lEX0RJR0E7CisJCWJyZWFrOworCWNhc2UgRENOMTBfRElHX0ZFX1NPVVJDRV9TRUxFQ1RfRElHQjoKKwkJcmVzdWx0ID0gRU5HSU5FX0lEX0RJR0I7CisJCWJyZWFrOworCWNhc2UgRENOMTBfRElHX0ZFX1NPVVJDRV9TRUxFQ1RfRElHQzoKKwkJcmVzdWx0ID0gRU5HSU5FX0lEX0RJR0M7CisJCWJyZWFrOworCWNhc2UgRENOMTBfRElHX0ZFX1NPVVJDRV9TRUxFQ1RfRElHRDoKKwkJcmVzdWx0ID0gRU5HSU5FX0lEX0RJR0Q7CisJCWJyZWFrOworCWNhc2UgRENOMTBfRElHX0ZFX1NPVVJDRV9TRUxFQ1RfRElHRToKKwkJcmVzdWx0ID0gRU5HSU5FX0lEX0RJR0U7CisJCWJyZWFrOworCWNhc2UgRENOMTBfRElHX0ZFX1NPVVJDRV9TRUxFQ1RfRElHRjoKKwkJcmVzdWx0ID0gRU5HSU5FX0lEX0RJR0Y7CisJCWJyZWFrOworCWNhc2UgRENOMTBfRElHX0ZFX1NPVVJDRV9TRUxFQ1RfRElHRzoKKwkJcmVzdWx0ID0gRU5HSU5FX0lEX0RJR0c7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCS8vIGludmFsaWQgc291cmNlIHNlbGVjdCBESUcKKwkJQVNTRVJUKGZhbHNlKTsKKwkJcmVzdWx0ID0gRU5HSU5FX0lEX1VOS05PV047CisJfQorCisJcmV0dXJuIHJlc3VsdDsKKworfQorCiB2b2lkIGVuYzFfY29uZmlndXJlX2VuY29kZXIoCiAJc3RydWN0IGRjbjEwX2xpbmtfZW5jb2RlciAqZW5jMTAsCiAJY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZ3MpCkBAIC01MDEsMTUgKzU0Miw2IEBAIGJvb2wgZGNuMTBfaXNfZGlnX2VuYWJsZWQoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKQogCXJldHVybiB2YWx1ZTsKIH0KIAotdW5zaWduZWQgaW50IGRjbjEwX2dldF9kaWdfZnJvbnRlbmQoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKQotewotCXN0cnVjdCBkY24xMF9saW5rX2VuY29kZXIgKmVuYzEwID0gVE9fRENOMTBfTElOS19FTkMoZW5jKTsKLQl1aW50MzJfdCB2YWx1ZTsKLQotCVJFR19HRVQoRElHX0JFX0NOVEwsIERJR19GRV9TT1VSQ0VfU0VMRUNULCAmdmFsdWUpOwotCXJldHVybiB2YWx1ZTsKLX0KLQogc3RhdGljIHZvaWQgbGlua19lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRjbjEwX2xpbmtfZW5jb2RlciAqZW5jMTApCiB7CiAJLyogcmVzZXQgdHJhaW5pbmcgcGF0dGVybiAqLwpAQCAtMTM2NiwzICsxMzk4LDI1IEBAIHZvaWQgZGNuMTBfYXV4X2luaXRpYWxpemUoc3RydWN0IGRjbjEwX2xpbmtfZW5jb2RlciAqZW5jMTApCiAJQVVYX1JFR19VUERBVEUoQVVYX0RQSFlfUlhfQ09OVFJPTDAsCiAJCQlBVVhfUlhfUkVDRUlWRV9XSU5ET1csIDApOwogfQorCitlbnVtIHNpZ25hbF90eXBlIGRjbjEwX2dldF9kaWdfbW9kZSgKKwlzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMpCit7CisJc3RydWN0IGRjbjEwX2xpbmtfZW5jb2RlciAqZW5jMTAgPSBUT19EQ04xMF9MSU5LX0VOQyhlbmMpOworCXVpbnQzMl90IHZhbHVlOworCVJFR19HRVQoRElHX0JFX0NOVEwsIERJR19NT0RFLCAmdmFsdWUpOworCXN3aXRjaCAodmFsdWUpIHsKKwljYXNlIDE6CisJCXJldHVybiBTSUdOQUxfVFlQRV9ESVNQTEFZX1BPUlQ7CisJY2FzZSAyOgorCQlyZXR1cm4gU0lHTkFMX1RZUEVfRFZJX1NJTkdMRV9MSU5LOworCWNhc2UgMzoKKwkJcmV0dXJuIFNJR05BTF9UWVBFX0hETUlfVFlQRV9BOworCWNhc2UgNToKKwkJcmV0dXJuIFNJR05BTF9UWVBFX0RJU1BMQVlfUE9SVF9NU1Q7CisJZGVmYXVsdDoKKwkJcmV0dXJuIFNJR05BTF9UWVBFX05PTkU7CisJfQorCXJldHVybiBTSUdOQUxfVFlQRV9OT05FOworfQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfbGlua19lbmNvZGVyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfbGlua19lbmNvZGVyLmgKaW5kZXggMzNiMmFmMS4uOGJmNWYwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2xpbmtfZW5jb2Rlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9saW5rX2VuY29kZXIuaApAQCAtMzM3LDYgKzMzNyw3IEBAIHN0cnVjdCBkY24xMF9saW5rX2VuY19yZWdpc3RlcnMgewogCQl0eXBlIFJEUENTX1RYX0ZJRk9fRVJST1JfTUFTSztcCiAJCXR5cGUgUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfTUFTSztcCiAJCXR5cGUgUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX01BU0s7XAorCQl0eXBlIFJEUENTX1BIWV9EUEFMVF9ESVNBQkxFO1wKIAkJdHlwZSBSRFBDU19QSFlfRFBBTFRfRElTQUJMRV9BQ0s7XAogCQl0eXBlIFJEUENTX1BIWV9EUF9NUExMQl9WMkk7XAogCQl0eXBlIFJEUENTX1BIWV9EUF9NUExMQl9GUkVRX1ZDTztcCkBAIC01MTQsNCArNTE1LDYgQEAgdW5zaWduZWQgaW50IGRjbjEwX2dldF9kaWdfZnJvbnRlbmQoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKTsKIAogdm9pZCBkY24xMF9hdXhfaW5pdGlhbGl6ZShzdHJ1Y3QgZGNuMTBfbGlua19lbmNvZGVyICplbmMxMCk7CiAKK2VudW0gc2lnbmFsX3R5cGUgZGNuMTBfZ2V0X2RpZ19tb2RlKAorCXN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYyk7CiAjZW5kaWYgLyogX19EQ19MSU5LX0VOQ09ERVJfX0RDTjEwX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX21wYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX21wYy5jCmluZGV4IDBiY2EwMTEuLjhiMmYyOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9tcGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfbXBjLmMKQEAgLTIxMSw3ICsyMTEsNyBAQCBzdHJ1Y3QgbXBjYyAqbXBjMV9pbnNlcnRfcGxhbmUoCiAJfSBlbHNlIHsKIAkJbmV3X21wY2MtPm1wY2NfYm90ID0gTlVMTDsKIAkJUkVHX1NFVChNUENDX0JPVF9TRUxbbXBjY19pZF0sIDAsIE1QQ0NfQk9UX1NFTCwgMHhmKTsKLQkJUkVHX1VQREFURShNUENDX0NPTlRST0xbbXBjY19pZF0sIE1QQ0NfTU9ERSwgTVBDQ19CTEVORF9NT0RFX1RPUF9MQVlFUl9QQVNTVEhST1VHSCk7CisJCVJFR19VUERBVEUoTVBDQ19DT05UUk9MW21wY2NfaWRdLCBNUENDX01PREUsIE1QQ0NfQkxFTkRfTU9ERV9UT1BfTEFZRVJfT05MWSk7CiAJfQogCVJFR19TRVQoTVBDQ19UT1BfU0VMW21wY2NfaWRdLCAwLCBNUENDX1RPUF9TRUwsIGRwcF9pZCk7CiAJUkVHX1NFVChNUENDX09QUF9JRFttcGNjX2lkXSwgMCwgTVBDQ19PUFBfSUQsIHRyZWUtPm9wcF9pZCk7CkBAIC0zNjQsNiArMzY0LDI0IEBAIHZvaWQgbXBjMV9tcGNfaW5pdChzdHJ1Y3QgbXBjICptcGMpCiAJfQogfQogCit2b2lkIG1wYzFfbXBjX2luaXRfc2luZ2xlX2luc3Qoc3RydWN0IG1wYyAqbXBjLCB1bnNpZ25lZCBpbnQgbXBjY19pZCkKK3sKKwlzdHJ1Y3QgZGNuMTBfbXBjICptcGMxMCA9IFRPX0RDTjEwX01QQyhtcGMpOworCWludCBvcHBfaWQ7CisKKwlSRUdfR0VUKE1QQ0NfT1BQX0lEW21wY2NfaWRdLCBNUENDX09QUF9JRCwgJm9wcF9pZCk7CisKKwlSRUdfU0VUKE1QQ0NfVE9QX1NFTFttcGNjX2lkXSwgMCwgTVBDQ19UT1BfU0VMLCAweGYpOworCVJFR19TRVQoTVBDQ19CT1RfU0VMW21wY2NfaWRdLCAwLCBNUENDX0JPVF9TRUwsIDB4Zik7CisJUkVHX1NFVChNUENDX09QUF9JRFttcGNjX2lkXSwgIDAsIE1QQ0NfT1BQX0lELCAgMHhmKTsKKworCW1wYzFfaW5pdF9tcGNjKCYobXBjLT5tcGNjX2FycmF5W21wY2NfaWRdKSwgbXBjY19pZCk7CisKKwlpZiAob3BwX2lkIDwgTUFYX09QUCAmJiBSRUcoTVVYW29wcF9pZF0pKQorCQlSRUdfVVBEQVRFKE1VWFtvcHBfaWRdLCBNUENfT1VUX01VWCwgMHhmKTsKK30KKworCiB2b2lkIG1wYzFfaW5pdF9tcGNjX2xpc3RfZnJvbV9odygKIAlzdHJ1Y3QgbXBjICptcGMsCiAJc3RydWN0IG1wY190cmVlICp0cmVlKQpAQCAtNDMzLDYgKzQ1MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXBjX2Z1bmNzIGRjbjEwX21wY19mdW5jcyA9IHsKIAkuaW5zZXJ0X3BsYW5lID0gbXBjMV9pbnNlcnRfcGxhbmUsCiAJLnJlbW92ZV9tcGNjID0gbXBjMV9yZW1vdmVfbXBjYywKIAkubXBjX2luaXQgPSBtcGMxX21wY19pbml0LAorCS5tcGNfaW5pdF9zaW5nbGVfaW5zdCA9IG1wYzFfbXBjX2luaXRfc2luZ2xlX2luc3QsCiAJLmdldF9tcGNjX2Zvcl9kcHAgPSBtcGMxX2dldF9tcGNjX2Zvcl9kcHAsCiAJLndhaXRfZm9yX2lkbGUgPSBtcGMxX2Fzc2VydF9pZGxlX21wY2MsCiAJLmFzc2VydF9tcGNjX2lkbGVfYmVmb3JlX2Nvbm5lY3QgPSBtcGMxX2Fzc2VydF9tcGNjX2lkbGVfYmVmb3JlX2Nvbm5lY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfbXBjLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfbXBjLmgKaW5kZXggZDNkMTZjNC4uOTYyYTY4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX21wYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9tcGMuaApAQCAtMTQ5LDYgKzE0OSwxMCBAQCB2b2lkIG1wYzFfcmVtb3ZlX21wY2MoCiB2b2lkIG1wYzFfbXBjX2luaXQoCiAJc3RydWN0IG1wYyAqbXBjKTsKIAordm9pZCBtcGMxX21wY19pbml0X3NpbmdsZV9pbnN0KAorCXN0cnVjdCBtcGMgKm1wYywKKwl1bnNpZ25lZCBpbnQgbXBjY19pZCk7CisKIHZvaWQgbXBjMV9hc3NlcnRfaWRsZV9tcGNjKAogCXN0cnVjdCBtcGMgKm1wYywKIAlpbnQgaWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX29wdGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9vcHRjLmMKaW5kZXggYTU0NmMyYi4uZTc0YTA3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX29wdGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfb3B0Yy5jCkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBvcHRjMV9wcm9ncmFtX3RpbWluZygKIAl1aW50MzJfdCBoX3N5bmNfcG9sYXJpdHksIHZfc3luY19wb2xhcml0eTsKIAl1aW50MzJfdCBzdGFydF9wb2ludCA9IDA7CiAJdWludDMyX3QgZmllbGRfbnVtID0gMDsKLQl1aW50MzJfdCBoX2Rpdl8yOworCWVudW0gaF90aW1pbmdfZGl2X21vZGUgaF9kaXYgPSBIX1RJTUlOR19OT19ESVY7CiAKIAlzdHJ1Y3Qgb3B0YyAqb3B0YzEgPSBEQ04xMFRHX0ZST01fVEcob3B0Yyk7CiAKQEAgLTI4NSwxMCArMjg1LDExIEBAIHZvaWQgb3B0YzFfcHJvZ3JhbV90aW1pbmcoCiAJICogb2Ygc3RlcmVvIGhhbmRsZWQgaW4gZXhwbGljaXQgY2FsbAogCSAqLwogCi0JaF9kaXZfMiA9IG9wdGMxX2lzX3R3b19waXhlbHNfcGVyX2NvbnRhaW50ZXIoJnBhdGNoZWRfY3J0Y190aW1pbmcpOwotCVJFR19VUERBVEUoT1RHX0hfVElNSU5HX0NOVEwsCi0JCQlPVEdfSF9USU1JTkdfRElWX0JZMiwgaF9kaXZfMiB8fCBvcHRjMS0+Y29tYl9vcHBfaWQgIT0gMHhmKTsKKwlpZiAob3B0YzFfaXNfdHdvX3BpeGVsc19wZXJfY29udGFpbnRlcigmcGF0Y2hlZF9jcnRjX3RpbWluZykgfHwgb3B0YzEtPm9wcF9jb3VudCA9PSAyKQorCQloX2RpdiA9IEhfVElNSU5HX0RJVl9CWTI7CiAKKwlSRUdfVVBEQVRFKE9UR19IX1RJTUlOR19DTlRMLAorCQlPVEdfSF9USU1JTkdfRElWX0JZMiwgaF9kaXYpOwogfQogCiB2b2lkIG9wdGMxX3NldF92dGdfcGFyYW1zKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLApAQCAtODI0LDYgKzgyNSw5IEBAIHZvaWQgb3B0YzFfcHJvZ3JhbV9tYW51YWxfdHJpZ2dlcihzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YykKIAogCVJFR19TRVQoT1RHX01BTlVBTF9GTE9XX0NPTlRST0wsIDAsCiAJCQlNQU5VQUxfRkxPV19DT05UUk9MLCAxKTsKKworCVJFR19TRVQoT1RHX01BTlVBTF9GTE9XX0NPTlRST0wsIDAsCisJCQlNQU5VQUxfRkxPV19DT05UUk9MLCAwKTsKIH0KIAogCkBAIC04NDYsNiArODUwLDE4IEBAIHZvaWQgb3B0YzFfc2V0X2RycigKIAkJcGFyYW1zLT52ZXJ0aWNhbF90b3RhbF9tYXggPiAwICYmCiAJCXBhcmFtcy0+dmVydGljYWxfdG90YWxfbWluID4gMCkgewogCisJCWlmIChwYXJhbXMtPnZlcnRpY2FsX3RvdGFsX21pZCAhPSAwKSB7CisKKwkJCVJFR19TRVQoT1RHX1ZfVE9UQUxfTUlELCAwLAorCQkJCU9UR19WX1RPVEFMX01JRCwgcGFyYW1zLT52ZXJ0aWNhbF90b3RhbF9taWQgLSAxKTsKKworCQkJUkVHX1VQREFURV8yKE9UR19WX1RPVEFMX0NPTlRST0wsCisJCQkJCU9UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NQVhfRU4sIDEsCisJCQkJCU9UR19WVE9UQUxfTUlEX0ZSQU1FX05VTSwKKwkJCQkJKHVpbnQ4X3QpcGFyYW1zLT52ZXJ0aWNhbF90b3RhbF9taWRfZnJhbWVfbnVtKTsKKworCQl9CisKIAkJUkVHX1NFVChPVEdfVl9UT1RBTF9NQVgsIDAsCiAJCQlPVEdfVl9UT1RBTF9NQVgsIHBhcmFtcy0+dmVydGljYWxfdG90YWxfbWF4IC0gMSk7CiAKQEAgLTE1MTMsNyArMTUyOSw2IEBAIHZvaWQgZGNuMTBfdGltaW5nX2dlbmVyYXRvcl9pbml0KHN0cnVjdCBvcHRjICpvcHRjMSkKIAlvcHRjMS0+bWluX3ZfYmxhbmtfaW50ZXJsYWNlID0gNTsKIAlvcHRjMS0+bWluX2hfc3luY193aWR0aCA9IDg7CiAJb3B0YzEtPm1pbl92X3N5bmNfd2lkdGggPSAxOwotCW9wdGMxLT5jb21iX29wcF9pZCA9IDB4ZjsKIH0KIAogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfb3B0Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX29wdGMuaAppbmRleCAwMjU5OWViLi44MzU3NTU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfb3B0Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9vcHRjLmgKQEAgLTU0LDYgKzU0LDcgQEAKIAlTUkkoT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MLCBPVEcsIGluc3QpLFwKIAlTUkkoT1RHX1NURVJFT19TVEFUVVMsIE9URywgaW5zdCksXAogCVNSSShPVEdfVl9UT1RBTF9NQVgsIE9URywgaW5zdCksXAorCVNSSShPVEdfVl9UT1RBTF9NSUQsIE9URywgaW5zdCksXAogCVNSSShPVEdfVl9UT1RBTF9NSU4sIE9URywgaW5zdCksXAogCVNSSShPVEdfVl9UT1RBTF9DT05UUk9MLCBPVEcsIGluc3QpLFwKIAlTUkkoT1RHX1RSSUdBX0NOVEwsIE9URywgaW5zdCksXApAQCAtMTI1LDYgKzEyNiw3IEBAIHN0cnVjdCBkY25fb3B0Y19yZWdpc3RlcnMgewogCXVpbnQzMl90IE9UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTDsKIAl1aW50MzJfdCBPVEdfU1RFUkVPX1NUQVRVUzsKIAl1aW50MzJfdCBPVEdfVl9UT1RBTF9NQVg7CisJdWludDMyX3QgT1RHX1ZfVE9UQUxfTUlEOwogCXVpbnQzMl90IE9UR19WX1RPVEFMX01JTjsKIAl1aW50MzJfdCBPVEdfVl9UT1RBTF9DT05UUk9MOwogCXVpbnQzMl90IE9UR19UUklHQV9DTlRMOwpAQCAtMjE0LDEyICsyMTYsMTUgQEAgc3RydWN0IGRjbl9vcHRjX3JlZ2lzdGVycyB7CiAJU0YoT1RHMF9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0wsIE9UR18zRF9TVFJVQ1RVUkVfVl9VUERBVEVfTU9ERSwgbWFza19zaCksXAogCVNGKE9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MLCBPVEdfM0RfU1RSVUNUVVJFX1NURVJFT19TRUxfT1ZSLCBtYXNrX3NoKSxcCiAJU0YoT1RHMF9PVEdfVl9UT1RBTF9NQVgsIE9UR19WX1RPVEFMX01BWCwgbWFza19zaCksXAorCVNGKE9URzBfT1RHX1ZfVE9UQUxfTUlELCBPVEdfVl9UT1RBTF9NSUQsIG1hc2tfc2gpLFwKIAlTRihPVEcwX09UR19WX1RPVEFMX01JTiwgT1RHX1ZfVE9UQUxfTUlOLCBtYXNrX3NoKSxcCiAJU0YoT1RHMF9PVEdfVl9UT1RBTF9DT05UUk9MLCBPVEdfVl9UT1RBTF9NSU5fU0VMLCBtYXNrX3NoKSxcCiAJU0YoT1RHMF9PVEdfVl9UT1RBTF9DT05UUk9MLCBPVEdfVl9UT1RBTF9NQVhfU0VMLCBtYXNrX3NoKSxcCiAJU0YoT1RHMF9PVEdfVl9UT1RBTF9DT05UUk9MLCBPVEdfRk9SQ0VfTE9DS19PTl9FVkVOVCwgbWFza19zaCksXAogCVNGKE9URzBfT1RHX1ZfVE9UQUxfQ09OVFJPTCwgT1RHX1NFVF9WX1RPVEFMX01JTl9NQVNLX0VOLCBtYXNrX3NoKSxcCiAJU0YoT1RHMF9PVEdfVl9UT1RBTF9DT05UUk9MLCBPVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0ssIG1hc2tfc2gpLFwKKwlTRihPVEcwX09UR19WX1RPVEFMX0NPTlRST0wsIE9UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NQVhfRU4sIG1hc2tfc2gpLFwKKwlTRihPVEcwX09UR19WX1RPVEFMX0NPTlRST0wsIE9UR19WVE9UQUxfTUlEX0ZSQU1FX05VTSwgbWFza19zaCksXAogCVNGKE9URzBfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMLCBPVEdfRk9SQ0VfQ09VTlRfTk9XX0NMRUFSLCBtYXNrX3NoKSxcCiAJU0YoT1RHMF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVEwsIE9UR19GT1JDRV9DT1VOVF9OT1dfTU9ERSwgbWFza19zaCksXAogCVNGKE9URzBfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMLCBPVEdfRk9SQ0VfQ09VTlRfTk9XX09DQ1VSUkVELCBtYXNrX3NoKSxcCkBAIC0zNDgsOSArMzUzLDEyIEBAIHN0cnVjdCBkY25fb3B0Y19yZWdpc3RlcnMgewogCXR5cGUgT1RHXzNEX1NUUlVDVFVSRV9WX1VQREFURV9NT0RFO1wKIAl0eXBlIE9UR18zRF9TVFJVQ1RVUkVfU1RFUkVPX1NFTF9PVlI7XAogCXR5cGUgT1RHX1ZfVE9UQUxfTUFYO1wKKwl0eXBlIE9UR19WX1RPVEFMX01JRDtcCiAJdHlwZSBPVEdfVl9UT1RBTF9NSU47XAogCXR5cGUgT1RHX1ZfVE9UQUxfTUlOX1NFTDtcCiAJdHlwZSBPVEdfVl9UT1RBTF9NQVhfU0VMO1wKKwl0eXBlIE9UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NQVhfRU47XAorCXR5cGUgT1RHX1ZUT1RBTF9NSURfRlJBTUVfTlVNO1wKIAl0eXBlIE9UR19GT1JDRV9MT0NLX09OX0VWRU5UO1wKIAl0eXBlIE9UR19TRVRfVl9UT1RBTF9NSU5fTUFTS19FTjtcCiAJdHlwZSBPVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0s7XApAQCAtNDk0LDcgKzUwMiw3IEBAIHN0cnVjdCBvcHRjIHsKIAljb25zdCBzdHJ1Y3QgZGNuX29wdGNfc2hpZnQgKnRnX3NoaWZ0OwogCWNvbnN0IHN0cnVjdCBkY25fb3B0Y19tYXNrICp0Z19tYXNrOwogCi0JaW50IGNvbWJfb3BwX2lkOworCWludCBvcHBfY291bnQ7CiAKIAl1aW50MzJfdCBtYXhfaF90b3RhbDsKIAl1aW50MzJfdCBtYXhfdl90b3RhbDsKQEAgLTUzOSw2ICs1NDcsMTAgQEAgc3RydWN0IGRjbl9vdGdfc3RhdGUgewogdm9pZCBvcHRjMV9yZWFkX290Z19zdGF0ZShzdHJ1Y3Qgb3B0YyAqb3B0YzEsCiAJCXN0cnVjdCBkY25fb3RnX3N0YXRlICpzKTsKIAorYm9vbCBvcHRjMV9pc19tYXRjaGluZ190aW1pbmcoCisJc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAorCWNvbnN0IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqb3RnX3RpbWluZyk7CisKIGJvb2wgb3B0YzFfdmFsaWRhdGVfdGltaW5nKAogCXN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAogCWNvbnN0IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5nKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX3Jlc291cmNlLmMKaW5kZXggYTEyNTMwYS4uNTkzMDVlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX3Jlc291cmNlLmMKQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hdWRpb19zaGlmdCBhdWRpb19zaGlmdCA9IHsKIAkJRENFMTIwX0FVRF9DT01NT05fTUFTS19TSF9MSVNUKF9fU0hJRlQpCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hZHVpb19tYXNrIGF1ZGlvX21hc2sgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hdWRpb19tYXNrIGF1ZGlvX21hc2sgPSB7CiAJCURDRTEyMF9BVURfQ09NTU9OX01BU0tfU0hfTElTVChfTUFTSykKIH07CiAKQEAgLTE0MTYsNiArMTQxNiwxNCBAQCBzdGF0aWMgYm9vbCBjb25zdHJ1Y3QoCiAKIAlwb29sLT5iYXNlLnBwX3NtdSA9IGRjbjEwX3BwX3NtdV9jcmVhdGUoY3R4KTsKIAorCS8qCisJICogUmlnaHQgbm93IFNNVS9QUExJQiBhbmQgREFMIGFsbCBoYXZlIHRoZSBBWiBEMyBmb3JjZSBQTUUgbm90aWZpY2F0aW9uICoKKwkgKiBpbXBsZW1lbnRlZC4gU28gQVogRDMgc2hvdWxkIHdvcmsuRm9yIGlzc3VlIDE5NzAwNy4gICAgICAgICAgICAgICAgICAgKgorCSAqLworCWlmIChwb29sLT5iYXNlLnBwX3NtdSAhPSBOVUxMCisJCQkmJiBwb29sLT5iYXNlLnBwX3NtdS0+cnZfZnVuY3Muc2V0X3BtZV93YV9lbmFibGUgIT0gTlVMTCkKKwkJZGMtPmRlYnVnLmF6X2VuZHBvaW50X211dGVfb25seSA9IGZhbHNlOworCiAJaWYgKCFkYy0+ZGVidWcuZGlzYWJsZV9wcGxpYl9jbG9ja19yZXF1ZXN0KQogCQlkY25fYndfdXBkYXRlX2Zyb21fcHBsaWIoZGMpOwogCWRjbl9id19zeW5jX2NhbGNzX2FuZF9kbWwoZGMpOwpAQCAtMTU2Miw2ICsxNTcwLDcgQEAgc3RydWN0IHJlc291cmNlX3Bvb2wgKmRjbjEwX2NyZWF0ZV9yZXNvdXJjZV9wb29sKAogCWlmIChjb25zdHJ1Y3QoaW5pdF9kYXRhLT5udW1fdmlydHVhbF9saW5rcywgZGMsIHBvb2wpKQogCQlyZXR1cm4gJnBvb2wtPmJhc2U7CiAKKwlrZnJlZShwb29sKTsKIAlCUkVBS19UT19ERUJVR0dFUigpOwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX3N0cmVhbV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfc3RyZWFtX2VuY29kZXIuYwppbmRleCBiOWZmYmY2Li45YWEyNThmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfc3RyZWFtX2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfc3RyZWFtX2VuY29kZXIuYwpAQCAtNTEyLDExICs1MTIsMTIgQEAgdm9pZCBlbmMxX3N0cmVhbV9lbmNvZGVyX2hkbWlfc2V0X3N0cmVhbV9hdHRyaWJ1dGUoCiAJZW5jMV9zdHJlYW1fZW5jb2Rlcl9zZXRfc3RyZWFtX2F0dHJpYnV0ZV9oZWxwZXIoZW5jMSwgY3J0Y190aW1pbmcpOwogCiAJLyogc2V0dXAgSERNSSBlbmdpbmUgKi8KLQlSRUdfVVBEQVRFXzUoSERNSV9DT05UUk9MLAorCVJFR19VUERBVEVfNihIRE1JX0NPTlRST0wsCiAJCUhETUlfUEFDS0VUX0dFTl9WRVJTSU9OLCAxLAogCQlIRE1JX0tFRVBPVVRfTU9ERSwgMSwKIAkJSERNSV9ERUVQX0NPTE9SX0VOQUJMRSwgMCwKIAkJSERNSV9EQVRBX1NDUkFNQkxFX0VOLCAwLAorCQlIRE1JX05PX0VYVFJBX05VTExfUEFDS0VUX0ZJTExFRCwgMSwKIAkJSERNSV9DTE9DS19DSEFOTkVMX1JBVEUsIDApOwogCiAKQEAgLTEwMDMsNiArMTAwNCwxOSBAQCB2b2lkIGVuYzFfc3RyZWFtX2VuY29kZXJfc2V0X2F2bXV0ZSgKIAlSRUdfVVBEQVRFKEhETUlfR0MsIEhETUlfR0NfQVZNVVRFLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgZW5jMV9yZXNldF9oZG1pX3N0cmVhbV9hdHRyaWJ1dGUoCisJc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMpCit7CisJc3RydWN0IGRjbjEwX3N0cmVhbV9lbmNvZGVyICplbmMxID0gRENOMTBTVFJFTkNfRlJPTV9TVFJFTkMoZW5jKTsKKworCVJFR19VUERBVEVfNShIRE1JX0NPTlRST0wsCisJCUhETUlfUEFDS0VUX0dFTl9WRVJTSU9OLCAxLAorCQlIRE1JX0tFRVBPVVRfTU9ERSwgMSwKKwkJSERNSV9ERUVQX0NPTE9SX0VOQUJMRSwgMCwKKwkJSERNSV9EQVRBX1NDUkFNQkxFX0VOLCAwLAorCQlIRE1JX0NMT0NLX0NIQU5ORUxfUkFURSwgMCk7Cit9CisKIAogI2RlZmluZSBEUF9TRUNfQVVEX05fX0RQX1NFQ19BVURfTl9fREVGQVVMVCAweDgwMDAKICNkZWZpbmUgRFBfU0VDX1RJTUVTVEFNUF9fRFBfU0VDX1RJTUVTVEFNUF9NT0RFX19BVVRPX0NBTEMgMQpAQCAtMTE5NiwxMyArMTIxMCwxMyBAQCBzdGF0aWMgdW5pb24gYXVkaW9fY2VhX2NoYW5uZWxzIHNwZWFrZXJzX3RvX2NoYW5uZWxzKAogCiB2b2lkIGdldF9hdWRpb19jbG9ja19pbmZvKAogCWVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGgsCi0JdWludDMyX3QgY3J0Y19waXhlbF9jbG9ja19pbl9raHosCi0JdWludDMyX3QgYWN0dWFsX3BpeGVsX2Nsb2NrX2luX2toeiwKKwl1aW50MzJfdCBjcnRjX3BpeGVsX2Nsb2NrXzEwMEh6LAorCXVpbnQzMl90IGFjdHVhbF9waXhlbF9jbG9ja18xMDBIeiwKIAlzdHJ1Y3QgYXVkaW9fY2xvY2tfaW5mbyAqYXVkaW9fY2xvY2tfaW5mbykKIHsKIAljb25zdCBzdHJ1Y3QgYXVkaW9fY2xvY2tfaW5mbyAqY2xvY2tfaW5mbzsKIAl1aW50MzJfdCBpbmRleDsKLQl1aW50MzJfdCBjcnRjX3BpeGVsX2Nsb2NrX2luXzEwa2h6ID0gY3J0Y19waXhlbF9jbG9ja19pbl9raHogLyAxMDsKKwl1aW50MzJfdCBjcnRjX3BpeGVsX2Nsb2NrX2luXzEwa2h6ID0gY3J0Y19waXhlbF9jbG9ja18xMDBIeiAvIDEwMDsKIAl1aW50MzJfdCBhdWRpb19hcnJheV9zaXplOwogCiAJc3dpdGNoIChjb2xvcl9kZXB0aCkgewpAQCAtMTIzOSwxNiArMTI1MywxNiBAQCB2b2lkIGdldF9hdWRpb19jbG9ja19pbmZvKAogCX0KIAogCS8qIG5vdCBmb3VuZCAqLwotCWlmIChhY3R1YWxfcGl4ZWxfY2xvY2tfaW5fa2h6ID09IDApCi0JCWFjdHVhbF9waXhlbF9jbG9ja19pbl9raHogPSBjcnRjX3BpeGVsX2Nsb2NrX2luX2toejsKKwlpZiAoYWN0dWFsX3BpeGVsX2Nsb2NrXzEwMEh6ID09IDApCisJCWFjdHVhbF9waXhlbF9jbG9ja18xMDBIeiA9IGNydGNfcGl4ZWxfY2xvY2tfMTAwSHo7CiAKIAkvKiBTZWUgSERNSSBzcGVjICB0aGUgdGFibGUgZW50cnkgdW5kZXIKIAkgKiAgcGl4ZWwgY2xvY2sgb2YgIk90aGVyIi4gKi8KIAlhdWRpb19jbG9ja19pbmZvLT5waXhlbF9jbG9ja19pbl8xMGtoeiA9Ci0JCQlhY3R1YWxfcGl4ZWxfY2xvY2tfaW5fa2h6IC8gMTA7Ci0JYXVkaW9fY2xvY2tfaW5mby0+Y3RzXzMya2h6ID0gYWN0dWFsX3BpeGVsX2Nsb2NrX2luX2toejsKLQlhdWRpb19jbG9ja19pbmZvLT5jdHNfNDRraHogPSBhY3R1YWxfcGl4ZWxfY2xvY2tfaW5fa2h6OwotCWF1ZGlvX2Nsb2NrX2luZm8tPmN0c180OGtoeiA9IGFjdHVhbF9waXhlbF9jbG9ja19pbl9raHo7CisJCQlhY3R1YWxfcGl4ZWxfY2xvY2tfMTAwSHogLyAxMDA7CisJYXVkaW9fY2xvY2tfaW5mby0+Y3RzXzMya2h6ID0gYWN0dWFsX3BpeGVsX2Nsb2NrXzEwMEh6IC8gMTA7CisJYXVkaW9fY2xvY2tfaW5mby0+Y3RzXzQ0a2h6ID0gYWN0dWFsX3BpeGVsX2Nsb2NrXzEwMEh6IC8gMTA7CisJYXVkaW9fY2xvY2tfaW5mby0+Y3RzXzQ4a2h6ID0gYWN0dWFsX3BpeGVsX2Nsb2NrXzEwMEh6IC8gMTA7CiAKIAlhdWRpb19jbG9ja19pbmZvLT5uXzMya2h6ID0gNDA5NjsKIAlhdWRpb19jbG9ja19pbmZvLT5uXzQ0a2h6ID0gNjI3MjsKQEAgLTEzMDgsMTQgKzEzMjIsMTQgQEAgc3RhdGljIHZvaWQgZW5jMV9zZV9zZXR1cF9oZG1pX2F1ZGlvKAogCiAJLyogUHJvZ3JhbSBhdWRpbyBjbG9jayBzYW1wbGUvcmVnZW5lcmF0aW9uIHBhcmFtZXRlcnMgKi8KIAlnZXRfYXVkaW9fY2xvY2tfaW5mbyhjcnRjX2luZm8tPmNvbG9yX2RlcHRoLAotCQkJICAgICBjcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9jaywKLQkJCSAgICAgY3J0Y19pbmZvLT5jYWxjdWxhdGVkX3BpeGVsX2Nsb2NrLAorCQkJICAgICBjcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9ja18xMDBIeiwKKwkJCSAgICAgY3J0Y19pbmZvLT5jYWxjdWxhdGVkX3BpeGVsX2Nsb2NrXzEwMEh6LAogCQkJICAgICAmYXVkaW9fY2xvY2tfaW5mbyk7CiAJRENfTE9HX0hXX0FVRElPKAotCQkJIlxuJXM6SW5wdXQ6OnJlcXVlc3RlZF9waXhlbF9jbG9jayA9ICVkIglcCi0JCQkiY2FsY3VsYXRlZF9waXhlbF9jbG9jayA9ICVkIFxuIiwgX19mdW5jX18sCVwKLQkJCWNydGNfaW5mby0+cmVxdWVzdGVkX3BpeGVsX2Nsb2NrLAkJXAotCQkJY3J0Y19pbmZvLT5jYWxjdWxhdGVkX3BpeGVsX2Nsb2NrKTsKKwkJCSJcbiVzOklucHV0OjpyZXF1ZXN0ZWRfcGl4ZWxfY2xvY2tfMTAwSHogPSAlZCIJXAorCQkJImNhbGN1bGF0ZWRfcGl4ZWxfY2xvY2tfMTAwSHogPSAlZCBcbiIsIF9fZnVuY19fLAlcCisJCQljcnRjX2luZm8tPnJlcXVlc3RlZF9waXhlbF9jbG9ja18xMDBIeiwJCVwKKwkJCWNydGNfaW5mby0+Y2FsY3VsYXRlZF9waXhlbF9jbG9ja18xMDBIeik7CiAKIAkvKiBIRE1JX0FDUl8zMl8wX19IRE1JX0FDUl9DVFNfMzJfTUFTSyAqLwogCVJFR19VUERBVEUoSERNSV9BQ1JfMzJfMCwgSERNSV9BQ1JfQ1RTXzMyLCBhdWRpb19jbG9ja19pbmZvLmN0c18zMmtoeik7CkBAIC0xNTI4LDYgKzE1NDIsMTcgQEAgdm9pZCBlbmMxX2RpZ19jb25uZWN0X3RvX290ZygKIAlSRUdfVVBEQVRFKERJR19GRV9DTlRMLCBESUdfU09VUkNFX1NFTEVDVCwgdGdfaW5zdCk7CiB9CiAKK3Vuc2lnbmVkIGludCBlbmMxX2RpZ19zb3VyY2Vfb3RnKAorCXN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jKQoreworCXVpbnQzMl90IHRnX2luc3QgPSAwOworCXN0cnVjdCBkY24xMF9zdHJlYW1fZW5jb2RlciAqZW5jMSA9IERDTjEwU1RSRU5DX0ZST01fU1RSRU5DKGVuYyk7CisKKwlSRUdfR0VUKERJR19GRV9DTlRMLCBESUdfU09VUkNFX1NFTEVDVCwgJnRnX2luc3QpOworCisJcmV0dXJuIHRnX2luc3Q7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXJfZnVuY3MgZGNuMTBfc3RyX2VuY19mdW5jcyA9IHsKIAkuZHBfc2V0X3N0cmVhbV9hdHRyaWJ1dGUgPQogCQllbmMxX3N0cmVhbV9lbmNvZGVyX2RwX3NldF9zdHJlYW1fYXR0cmlidXRlLApAQCAtMTU2Miw2ICsxNTg3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdHJlYW1fZW5jb2Rlcl9mdW5jcyBkY24xMF9zdHJfZW5jX2Z1bmNzID0gewogCS5zZXR1cF9zdGVyZW9fc3luYyAgPSBlbmMxX3NldHVwX3N0ZXJlb19zeW5jLAogCS5zZXRfYXZtdXRlID0gZW5jMV9zdHJlYW1fZW5jb2Rlcl9zZXRfYXZtdXRlLAogCS5kaWdfY29ubmVjdF90b19vdGcgID0gZW5jMV9kaWdfY29ubmVjdF90b19vdGcsCisJLmhkbWlfcmVzZXRfc3RyZWFtX2F0dHJpYnV0ZSA9IGVuYzFfcmVzZXRfaGRtaV9zdHJlYW1fYXR0cmlidXRlLAorCS5kaWdfc291cmNlX290ZyA9IGVuYzFfZGlnX3NvdXJjZV9vdGcsCiB9OwogCiB2b2lkIGRjbjEwX3N0cmVhbV9lbmNvZGVyX2NvbnN0cnVjdCgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9zdHJlYW1fZW5jb2Rlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX3N0cmVhbV9lbmNvZGVyLmgKaW5kZXggYmMyYjRhZjkuLmE1MTJjYmVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfc3RyZWFtX2VuY29kZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfc3RyZWFtX2VuY29kZXIuaApAQCAtODksNyArODksOCBAQAogCVNSSShEUF9WSURfU1RSRUFNX0NOVEwsIERQLCBpZCksIFwKIAlTUkkoRFBfVklEX1RJTUlORywgRFAsIGlkKSwgXAogCVNSSShEUF9TRUNfQVVEX04sIERQLCBpZCksIFwKLQlTUkkoRFBfU0VDX1RJTUVTVEFNUCwgRFAsIGlkKQorCVNSSShEUF9TRUNfVElNRVNUQU1QLCBEUCwgaWQpLCBcCisJU1JJKERJR19DTE9DS19QQVRURVJOLCBESUcsIGlkKQogCiAjZGVmaW5lIFNFX0RDTl9SRUdfTElTVChpZClcCiAJU0VfQ09NTU9OX0RDTl9SRUdfTElTVChpZCkKQEAgLTE3MCw2ICsxNzEsNyBAQCBzdHJ1Y3QgZGNuMTBfc3RyZWFtX2VuY19yZWdpc3RlcnMgewogCXVpbnQzMl90IEhETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0w7CiAJdWludDMyX3QgRFBfU0VDX0ZSQU1JTkc0OwogI2VuZGlmCisJdWludDMyX3QgRElHX0NMT0NLX1BBVFRFUk47CiB9OwogCiAKQEAgLTE4OSw2ICsxOTEsNyBAQCBzdHJ1Y3QgZGNuMTBfc3RyZWFtX2VuY19yZWdpc3RlcnMgewogCVNFX1NGKERJRzBfSERNSV9DT05UUk9MLCBIRE1JX0RFRVBfQ09MT1JfRU5BQkxFLCBtYXNrX3NoKSxcCiAJU0VfU0YoRElHMF9IRE1JX0NPTlRST0wsIEhETUlfREVFUF9DT0xPUl9ERVBUSCwgbWFza19zaCksXAogCVNFX1NGKERJRzBfSERNSV9DT05UUk9MLCBIRE1JX0RBVEFfU0NSQU1CTEVfRU4sIG1hc2tfc2gpLFwKKwlTRV9TRihESUcwX0hETUlfQ09OVFJPTCwgSERNSV9OT19FWFRSQV9OVUxMX1BBQ0tFVF9GSUxMRUQsIG1hc2tfc2gpLFwKIAlTRV9TRihESUcwX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MLCBIRE1JX0dDX0NPTlQsIG1hc2tfc2gpLFwKIAlTRV9TRihESUcwX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MLCBIRE1JX0dDX1NFTkQsIG1hc2tfc2gpLFwKIAlTRV9TRihESUcwX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MLCBIRE1JX05VTExfU0VORCwgbWFza19zaCksXApAQCAtMjk3LDcgKzMwMCw4IEBAIHN0cnVjdCBkY24xMF9zdHJlYW1fZW5jX3JlZ2lzdGVycyB7CiAJU0VfU0YoRFAwX0RQX01TQV9USU1JTkdfUEFSQU00LCBEUF9NU0FfVkhFSUdIVCwgbWFza19zaCksXAogCVNFX1NGKERJRzBfSERNSV9EQl9DT05UUk9MLCBIRE1JX0RCX0RJU0FCTEUsIG1hc2tfc2gpLFwKIAlTRV9TRihEUDBfRFBfVklEX1RJTUlORywgRFBfVklEX05fTVVMLCBtYXNrX3NoKSxcCi0JU0VfU0YoRElHMF9ESUdfRkVfQ05UTCwgRElHX1NPVVJDRV9TRUxFQ1QsIG1hc2tfc2gpCisJU0VfU0YoRElHMF9ESUdfRkVfQ05UTCwgRElHX1NPVVJDRV9TRUxFQ1QsIG1hc2tfc2gpLFwKKwlTRV9TRihESUcwX0RJR19DTE9DS19QQVRURVJOLCBESUdfQ0xPQ0tfUEFUVEVSTiwgbWFza19zaCkKIAogI2RlZmluZSBTRV9DT01NT05fTUFTS19TSF9MSVNUX1NPQyhtYXNrX3NoKVwKIAlTRV9DT01NT05fTUFTS19TSF9MSVNUX1NPQ19CQVNFKG1hc2tfc2gpCkBAIC0zNzQsNiArMzc4LDcgQEAgc3RydWN0IGRjbjEwX3N0cmVhbV9lbmNfcmVnaXN0ZXJzIHsKIAl0eXBlIEhETUlfR0NfU0VORDtcCiAJdHlwZSBIRE1JX05VTExfU0VORDtcCiAJdHlwZSBIRE1JX0RBVEFfU0NSQU1CTEVfRU47XAorCXR5cGUgSERNSV9OT19FWFRSQV9OVUxMX1BBQ0tFVF9GSUxMRUQ7XAogCXR5cGUgSERNSV9BVURJT19JTkZPX1NFTkQ7XAogCXR5cGUgQUZNVF9BVURJT19JTkZPX1VQREFURTtcCiAJdHlwZSBIRE1JX0FVRElPX0lORk9fTElORTtcCkBAIC00NTgsNyArNDYzLDggQEAgc3RydWN0IGRjbjEwX3N0cmVhbV9lbmNfcmVnaXN0ZXJzIHsKIAl0eXBlIEhETUlfREJfRElTQUJMRTtcCiAJdHlwZSBEUF9WSURfTl9NVUw7XAogCXR5cGUgRFBfVklEX01fRE9VQkxFX1ZBTFVFX0VOO1wKLQl0eXBlIERJR19TT1VSQ0VfU0VMRUNUCisJdHlwZSBESUdfU09VUkNFX1NFTEVDVDtcCisJdHlwZSBESUdfQ0xPQ0tfUEFUVEVSTgogCiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCiAjZGVmaW5lIFNFX1JFR19GSUVMRF9MSVNUX0RDTjJfMCh0eXBlKSBcCkBAIC01OTIsNiArNTk4LDkgQEAgdm9pZCBlbmMxX2RpZ19jb25uZWN0X3RvX290ZygKIAlzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKIAlpbnQgdGdfaW5zdCk7CiAKK3Vuc2lnbmVkIGludCBlbmMxX2RpZ19zb3VyY2Vfb3RnKAorCXN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jKTsKKwogdm9pZCBlbmMxX3N0cmVhbV9lbmNvZGVyX3NldF9zdHJlYW1fYXR0cmlidXRlX2hlbHBlcigKIAlzdHJ1Y3QgZGNuMTBfc3RyZWFtX2VuY29kZXIgKmVuYzEsCiAJc3RydWN0IGRjX2NydGNfdGltaW5nICpjcnRjX3RpbWluZyk7CkBAIC02MDUsOCArNjE0LDExIEBAIHZvaWQgZW5jMV9zZV9lbmFibGVfZHBfYXVkaW8oCiAKIHZvaWQgZ2V0X2F1ZGlvX2Nsb2NrX2luZm8oCiAJZW51bSBkY19jb2xvcl9kZXB0aCBjb2xvcl9kZXB0aCwKLQl1aW50MzJfdCBjcnRjX3BpeGVsX2Nsb2NrX2luX2toeiwKLQl1aW50MzJfdCBhY3R1YWxfcGl4ZWxfY2xvY2tfaW5fa2h6LAorCXVpbnQzMl90IGNydGNfcGl4ZWxfY2xvY2tfMTAwSHosCisJdWludDMyX3QgYWN0dWFsX3BpeGVsX2Nsb2NrXzEwMEh6LAogCXN0cnVjdCBhdWRpb19jbG9ja19pbmZvICphdWRpb19jbG9ja19pbmZvKTsKIAordm9pZCBlbmMxX3Jlc2V0X2hkbWlfc3RyZWFtX2F0dHJpYnV0ZSgKKwlzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYyk7CisKICNlbmRpZiAvKiBfX0RDX1NUUkVBTV9FTkNPREVSX0RDTjEwX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL01ha2VmaWxlCmluZGV4IGU5NzIxYTkuLmRkYjhkNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvTWFrZWZpbGUKQEAgLTE2LDcgKzE2LDExIEBACiAJY2Nfc3RhY2tfYWxpZ24gOj0gLW1zdGFjay1hbGlnbm1lbnQ9MTYKIGVuZGlmCiAKLUNGTEFHU19kY24yMF9yZXNvdXJjZS5vIDo9IC1taGFyZC1mbG9hdCAtbXNzZSAkKGNjX3N0YWNrX2FsaWduKQorQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZGNuMjAvZGNuMjBfcmVzb3VyY2UubyA6PSAtbWhhcmQtZmxvYXQgLW1zc2UgJChjY19zdGFja19hbGlnbikKKworaWZkZWYgQ09ORklHX0NDX0lTX0NMQU5HCitDRkxBR1NfJChBTUREQUxQQVRIKS9kYy9kY24yMC9kY24yMF9yZXNvdXJjZS5vICs9IC1tc3NlMgorZW5kaWYKIAogQU1EX0RBTF9EQ04yMCA9ICQoYWRkcHJlZml4ICQoQU1EREFMUEFUSCkvZGMvZGNuMjAvLCQoRENOMjApKQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfZGNjZy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2RjY2cuYwppbmRleCAzMWFhNmVlLi4xNjQ3NmVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfZGNjZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kY2NnLmMKQEAgLTQ0LDEyICs0NCwxNiBAQAogI2RlZmluZSBEQ19MT0dHRVIgXAogCWRjY2ctPmN0eC0+bG9nZ2VyCiAKLXZvaWQgZGNjZzJfdXBkYXRlX2RwcF9kdG8oc3RydWN0IGRjY2cgKmRjY2csIGludCBkcHBfaW5zdCwgaW50IHJlcV9kcHBjbGspCit2b2lkIGRjY2cyX3VwZGF0ZV9kcHBfZHRvKHN0cnVjdCBkY2NnICpkY2NnLAorCQlpbnQgZHBwX2luc3QsCisJCWludCByZXFfZHBwY2xrLAorCQlib29sIHJlZHVjZV9kaXZpZGVyX29ubHkpCiB7CiAJc3RydWN0IGRjbl9kY2NnICpkY2NnX2RjbiA9IFRPX0RDTl9EQ0NHKGRjY2cpOwogCiAJaWYgKGRjY2ctPnJlZl9kcHBjbGsgJiYgcmVxX2RwcGNsaykgewogCQlpbnQgcmVmX2RwcGNsayA9IGRjY2ctPnJlZl9kcHBjbGs7CisJCWludCBjdXJyZW50X3BoYXNlLCBjdXJyZW50X21vZHVsbzsKIAogCQlBU1NFUlQocmVxX2RwcGNsayA8PSByZWZfZHBwY2xrKTsKIAkJLyogbmVlZCB0byBjbGFtcCB0byA4IGJpdHMgKi8KQEAgLTYxLDkgKzY1LDI4IEBAIHZvaWQgZGNjZzJfdXBkYXRlX2RwcF9kdG8oc3RydWN0IGRjY2cgKmRjY2csIGludCBkcHBfaW5zdCwgaW50IHJlcV9kcHBjbGspCiAJCQlpZiAocmVxX2RwcGNsayA+IHJlZl9kcHBjbGspCiAJCQkJcmVxX2RwcGNsayA9IHJlZl9kcHBjbGs7CiAJCX0KLQkJUkVHX1NFVF8yKERQUENMS19EVE9fUEFSQU1bZHBwX2luc3RdLCAwLAotCQkJCURQUENMSzBfRFRPX1BIQVNFLCByZXFfZHBwY2xrLAotCQkJCURQUENMSzBfRFRPX01PRFVMTywgcmVmX2RwcGNsayk7CisKKwkJUkVHX0dFVF8yKERQUENMS19EVE9fUEFSQU1bZHBwX2luc3RdLAorCQkJCURQUENMSzBfRFRPX1BIQVNFLCAmY3VycmVudF9waGFzZSwKKwkJCQlEUFBDTEswX0RUT19NT0RVTE8sICZjdXJyZW50X21vZHVsbyk7CisKKwkJaWYgKHJlZHVjZV9kaXZpZGVyX29ubHkpIHsKKwkJCS8vIHJlcXVlc3RlZCBwaGFzZS9tb2R1bG8gZ3JlYXRlciB0aGFuIGN1cnJlbnQKKwkJCWlmIChyZXFfZHBwY2xrICogY3VycmVudF9tb2R1bG8gPj0gY3VycmVudF9waGFzZSAqIHJlZl9kcHBjbGspIHsKKwkJCQlSRUdfU0VUXzIoRFBQQ0xLX0RUT19QQVJBTVtkcHBfaW5zdF0sIDAsCisJCQkJCQlEUFBDTEswX0RUT19QSEFTRSwgcmVxX2RwcGNsaywKKwkJCQkJCURQUENMSzBfRFRPX01PRFVMTywgcmVmX2RwcGNsayk7CisJCQl9IGVsc2UgeworCQkJCVJFR19TRVRfMihEUFBDTEtfRFRPX1BBUkFNW2RwcF9pbnN0XSwgMCwKKwkJCQkJCURQUENMSzBfRFRPX1BIQVNFLCBjdXJyZW50X3BoYXNlLAorCQkJCQkJRFBQQ0xLMF9EVE9fTU9EVUxPLCBjdXJyZW50X21vZHVsbyk7CisJCQl9CisJCX0gZWxzZSB7CisJCQlSRUdfU0VUXzIoRFBQQ0xLX0RUT19QQVJBTVtkcHBfaW5zdF0sIDAsCisJCQkJCURQUENMSzBfRFRPX1BIQVNFLCByZXFfZHBwY2xrLAorCQkJCQlEUFBDTEswX0RUT19NT0RVTE8sIHJlZl9kcHBjbGspOworCQl9CisKIAkJUkVHX1VQREFURShEUFBDTEtfRFRPX0NUUkwsCiAJCQkJRFBQQ0xLX0RUT19FTkFCTEVbZHBwX2luc3RdLCAxKTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2RjY2cuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kY2NnLmgKaW5kZXggMjIwNWNiMC4uNzRhMDc0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2RjY2cuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfZGNjZy5oCkBAIC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBkY25fZGNjZyB7CiAJY29uc3Qgc3RydWN0IGRjY2dfbWFzayAqZGNjZ19tYXNrOwogfTsKIAotdm9pZCBkY2NnMl91cGRhdGVfZHBwX2R0byhzdHJ1Y3QgZGNjZyAqZGNjZywgaW50IGRwcF9pbnN0LCBpbnQgcmVxX2RwcGNsayk7Cit2b2lkIGRjY2cyX3VwZGF0ZV9kcHBfZHRvKHN0cnVjdCBkY2NnICpkY2NnLCBpbnQgZHBwX2luc3QsIGludCByZXFfZHBwY2xrLCBib29sIHJhaXNlX2RpdmlkZXJfb25seSk7CiAKIHZvaWQgZGNjZzJfZ2V0X2RjY2dfcmVmX2ZyZXEoc3RydWN0IGRjY2cgKmRjY2csCiAJCXVuc2lnbmVkIGludCB4dGFsaW5fZnJlcV9pbktoeiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kcHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kcHAuYwppbmRleCA5YmM1ZGQyLi4yZjVhYWRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfZHBwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2RwcC5jCkBAIC03Miw2ICs3MiwyMSBAQCB2b2lkIGRwcDIwX3JlYWRfc3RhdGUoc3RydWN0IGRwcCAqZHBwX2Jhc2UsCiAJfQogfQogCit2b2lkIGRwcDJfcG93ZXJfb25fb2J1ZigKKwkJc3RydWN0IGRwcCAqZHBwX2Jhc2UsCisJYm9vbCBwb3dlcl9vbikKK3sKKwlzdHJ1Y3QgZGNuMjBfZHBwICpkcHAgPSBUT19EQ04yMF9EUFAoZHBwX2Jhc2UpOworCisJUkVHX1VQREFURShDTV9NRU1fUFdSX0NUUkwsIFNIQVJFRF9NRU1fUFdSX0RJUywgcG93ZXJfb24gPT0gdHJ1ZSA/IDE6MCk7CisKKwlSRUdfVVBEQVRFKE9CVUZfTUVNX1BXUl9DVFJMLAorCQkJT0JVRl9NRU1fUFdSX0ZPUkNFLCBwb3dlcl9vbiA9PSB0cnVlID8gMDoxKTsKKworCVJFR19VUERBVEUoRFNDTF9NRU1fUFdSX0NUUkwsCisJCQlMVVRfTUVNX1BXUl9GT1JDRSwgcG93ZXJfb24gPT0gdHJ1ZSA/IDA6MSk7Cit9CisKIHZvaWQgZHBwMl9kdW1teV9wcm9ncmFtX2lucHV0X2x1dCgKIAkJc3RydWN0IGRwcCAqZHBwX2Jhc2UsCiAJCWNvbnN0IHN0cnVjdCBkY19nYW1tYSAqZ2FtbWEpCkBAIC0yMjcsNiArMjQyLDcgQEAgc3RhdGljIHZvaWQgZHBwMl9jbnZfc2V0dXAgKAogCQkJCUNVUjBfRU5BQkxFLCAwKTsKIAogCX0KKwlkcHAyX3Bvd2VyX29uX29idWYoZHBwX2Jhc2UsIHRydWUpOwogCiB9CiAKQEAgLTMyNiwxNCArMzQyLDE4IEBAIHZvaWQgZHBwMl9jbnZfc2V0X2FscGhhX2tleWVyKAogCiB2b2lkIGRwcDJfc2V0X2N1cnNvcl9hdHRyaWJ1dGVzKAogCQlzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKLQkJZW51bSBkY19jdXJzb3JfY29sb3JfZm9ybWF0IGNvbG9yX2Zvcm1hdCkKKwkJc3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzICpjdXJzb3JfYXR0cmlidXRlcykKIHsKKwllbnVtIGRjX2N1cnNvcl9jb2xvcl9mb3JtYXQgY29sb3JfZm9ybWF0ID0gY3Vyc29yX2F0dHJpYnV0ZXMtPmNvbG9yX2Zvcm1hdDsKIAlzdHJ1Y3QgZGNuMjBfZHBwICpkcHAgPSBUT19EQ04yMF9EUFAoZHBwX2Jhc2UpOwogCWludCBjdXJfcm9tX2VuID0gMDsKIAogCWlmIChjb2xvcl9mb3JtYXQgPT0gQ1VSU09SX01PREVfQ09MT1JfUFJFX01VTFRJUExJRURfQUxQSEEgfHwKLQkJY29sb3JfZm9ybWF0ID09IENVUlNPUl9NT0RFX0NPTE9SX1VOX1BSRV9NVUxUSVBMSUVEX0FMUEhBKQotCQljdXJfcm9tX2VuID0gMTsKKwkJY29sb3JfZm9ybWF0ID09IENVUlNPUl9NT0RFX0NPTE9SX1VOX1BSRV9NVUxUSVBMSUVEX0FMUEhBKSB7CisJCWlmIChjdXJzb3JfYXR0cmlidXRlcy0+YXR0cmlidXRlX2ZsYWdzLmJpdHMuRU5BQkxFX0NVUlNPUl9ERUdBTU1BKSB7CisJCQljdXJfcm9tX2VuID0gMTsKKwkJfQorCX0KIAogCVJFR19VUERBVEVfMyhDVVJTT1IwX0NPTlRST0wsCiAJCQlDVVIwX01PREUsIGNvbG9yX2Zvcm1hdCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kcHAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kcHAuaAppbmRleCA1OWI2N2VkNS4uMjkwYjI4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2RwcC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kcHAuaApAQCAtMTYyLDcgKzE2Miw5IEBACiAJU1JJKENPTE9SX0tFWUVSX0dSRUVOLCBDTlZDX0NGRywgaWQpLCBcCiAJU1JJKENPTE9SX0tFWUVSX0JMVUUsIENOVkNfQ0ZHLCBpZCksIFwKIAlTUkkoQ01fU0hBUEVSX0xVVF9EQVRBLCBDTSwgaWQpLCBcCi0JU1JJKENVUlNPUl9DT05UUk9MLCBDVVJTT1IwXywgaWQpCisJU1JJKENVUlNPUl9DT05UUk9MLCBDVVJTT1IwXywgaWQpLFwKKwlTUkkoT0JVRl9NRU1fUFdSX0NUUkwsIERTQ0wsIGlkKSxcCisJU1JJKERTQ0xfTUVNX1BXUl9DVFJMLCBEU0NMLCBpZCkKIAogI2RlZmluZSBURl9SRUdfTElTVF9TSF9NQVNLX0RDTjIwKG1hc2tfc2gpXAogCVRGX1JFR19MSVNUX1NIX01BU0tfRENOKG1hc2tfc2gpLCBcCkBAIC01NTQsNyArNTU2LDkgQEAKIAlURl9TRihDTlZDX0NGRzBfQ09MT1JfS0VZRVJfQkxVRSwgQ09MT1JfS0VZRVJfQkxVRV9ISUdILCBtYXNrX3NoKSwgXAogCVRGX1NGKENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0wsIENVUjBfUElYX0lOVl9NT0RFLCBtYXNrX3NoKSwgXAogCVRGX1NGKENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0wsIENVUjBfUElYRUxfQUxQSEFfTU9EX0VOLCBtYXNrX3NoKSwgXAotCVRGX1NGKENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0wsIENVUjBfUk9NX0VOLCBtYXNrX3NoKQorCVRGX1NGKENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0wsIENVUjBfUk9NX0VOLCBtYXNrX3NoKSxcCisJVEZfU0YoRFNDTDBfT0JVRl9NRU1fUFdSX0NUUkwsIE9CVUZfTUVNX1BXUl9GT1JDRSwgbWFza19zaCksXAorCVRGX1NGKERTQ0wwX0RTQ0xfTUVNX1BXUl9DVFJMLCBMVVRfTUVNX1BXUl9GT1JDRSwgbWFza19zaCkKIAogI2RlZmluZSBURl9SRUdfRklFTERfTElTVF9EQ04yXzAodHlwZSkgXAogCVRGX1JFR19GSUVMRF9MSVNUKHR5cGUpIFwKQEAgLTU4NSw3ICs1ODksOSBAQAogCXR5cGUgQ09MT1JfS0VZRVJfQkxVRV9ISUdIOyBcCiAJdHlwZSBDVVIwX1BJWF9JTlZfTU9ERTsgXAogCXR5cGUgQ1VSMF9QSVhFTF9BTFBIQV9NT0RfRU47IFwKLQl0eXBlIENVUjBfUk9NX0VOCisJdHlwZSBDVVIwX1JPTV9FTjtcCisJdHlwZSBPQlVGX01FTV9QV1JfRk9SQ0U7XAorCXR5cGUgTFVUX01FTV9QV1JfRk9SQ0UKIAogc3RydWN0IGRjbjJfZHBwX3NoaWZ0IHsKIAlURl9SRUdfRklFTERfTElTVF9EQ04yXzAodWludDhfdCk7CkBAIC02MDksNyArNjE1LDkgQEAgc3RydWN0IGRjbjJfZHBwX21hc2sgewogCXVpbnQzMl90IENPTE9SX0tFWUVSX0FMUEhBOyBcCiAJdWludDMyX3QgQ09MT1JfS0VZRVJfUkVEOyBcCiAJdWludDMyX3QgQ09MT1JfS0VZRVJfR1JFRU47IFwKLQl1aW50MzJfdCBDT0xPUl9LRVlFUl9CTFVFCisJdWludDMyX3QgQ09MT1JfS0VZRVJfQkxVRTsgXAorCXVpbnQzMl90IE9CVUZfTUVNX1BXUl9DVFJMO1wKKwl1aW50MzJfdCBEU0NMX01FTV9QV1JfQ1RSTAogCiBzdHJ1Y3QgZGNuMl9kcHBfcmVnaXN0ZXJzIHsKIAlEUFBfRENOMl9SRUdfVkFSSUFCTEVfTElTVDsKQEAgLTY2OCw3ICs2NzYsNyBAQCB2b2lkIGRzY2wyX2NhbGNfbGJfbnVtX3BhcnRpdGlvbnMoCiAKIHZvaWQgZHBwMl9zZXRfY3Vyc29yX2F0dHJpYnV0ZXMoCiAJCXN0cnVjdCBkcHAgKmRwcF9iYXNlLAotCQllbnVtIGRjX2N1cnNvcl9jb2xvcl9mb3JtYXQgY29sb3JfZm9ybWF0KTsKKwkJc3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzICpjdXJzb3JfYXR0cmlidXRlcyk7CiAKIHZvaWQgZHBwMl9kdW1teV9wcm9ncmFtX2lucHV0X2x1dCgKIAkJCXN0cnVjdCBkcHAgKmRwcF9iYXNlLApAQCAtNjk1LDQgKzcwMyw3IEBAIGJvb2wgZHBwMl9jb25zdHJ1Y3Qoc3RydWN0IGRjbjIwX2RwcCAqZHBwMiwKIAljb25zdCBzdHJ1Y3QgZGNuMl9kcHBfc2hpZnQgKnRmX3NoaWZ0LAogCWNvbnN0IHN0cnVjdCBkY24yX2RwcF9tYXNrICp0Zl9tYXNrKTsKIAordm9pZCBkcHAyX3Bvd2VyX29uX29idWYoCisJCXN0cnVjdCBkcHAgKmRwcF9iYXNlLAorCWJvb2wgcG93ZXJfb24pOwogI2VuZGlmIC8qIF9fRENfSFdTU19EQ04yMF9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kcHBfY20uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kcHBfY20uYwppbmRleCBlMjhiOGU3Yi4uMmQxMTJjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2RwcF9jbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kcHBfY20uYwpAQCAtNTIsNyArNTIsMTIgQEAgc3RhdGljIHZvaWQgZHBwMl9lbmFibGVfY21fYmxvY2soCiB7CiAJc3RydWN0IGRjbjIwX2RwcCAqZHBwID0gVE9fRENOMjBfRFBQKGRwcF9iYXNlKTsKIAotCVJFR19VUERBVEUoQ01fQ09OVFJPTCwgQ01fQllQQVNTLCAwKTsKKwl1bnNpZ25lZCBpbnQgY21fYnlwYXNzX21vZGUgPSAwOworCS8vVGVtcCwgcHV0IENNIGluIGJ5cGFzcyBtb2RlCisJaWYgKGRwcF9iYXNlLT5jdHgtPmRjLT5kZWJ1Zy5jbV9pbl9ieXBhc3MpCisJCWNtX2J5cGFzc19tb2RlID0gMTsKKworCVJFR19VUERBVEUoQ01fQ09OVFJPTCwgQ01fQllQQVNTLCBjbV9ieXBhc3NfbW9kZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2RzYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2RzYy5jCmluZGV4IGZmZDAwMTQuLjFiNDE5NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kc2MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfZHNjLmMKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJkc2MvZHNjY190eXBlcy5oIgogCiBzdGF0aWMgdm9pZCBkc2NfbG9nX3BwcyhzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciAqZHNjLCBzdHJ1Y3QgZHJtX2RzY19jb25maWcgKnBwcyk7Ci1zdGF0aWMgYm9vbCBkc2NfcHJlcGFyZV9jb25maWcoc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywgY29uc3Qgc3RydWN0IGRzY19jb25maWcgKmRzY19jZmcsCitzdGF0aWMgYm9vbCBkc2NfcHJlcGFyZV9jb25maWcoY29uc3Qgc3RydWN0IGRzY19jb25maWcgKmRzY19jZmcsIHN0cnVjdCBkc2NfcmVnX3ZhbHVlcyAqZHNjX3JlZ192YWxzLAogCQkJc3RydWN0IGRzY19vcHRjX2NvbmZpZyAqZHNjX29wdGNfY2ZnKTsKIHN0YXRpYyB2b2lkIGRzY19pbml0X3JlZ192YWx1ZXMoc3RydWN0IGRzY19yZWdfdmFsdWVzICpyZWdfdmFscyk7CiBzdGF0aWMgdm9pZCBkc2NfdXBkYXRlX2Zyb21fZHNjX3BhcmFtZXRlcnMoc3RydWN0IGRzY19yZWdfdmFsdWVzICpyZWdfdmFscywgY29uc3Qgc3RydWN0IGRzY19wYXJhbWV0ZXJzICpkc2NfcGFyYW1zKTsKQEAgLTQyLDcgKzQyLDggQEAgc3RhdGljIHZvaWQgZHNjMl9nZXRfZW5jX2NhcHMoc3RydWN0IGRzY19lbmNfY2FwcyAqZHNjX2VuY19jYXBzLCBpbnQgcGl4ZWxfY2xvY2sKIHN0YXRpYyB2b2lkIGRzYzJfcmVhZF9zdGF0ZShzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciAqZHNjLCBzdHJ1Y3QgZGNuX2RzY19zdGF0ZSAqcyk7CiBzdGF0aWMgYm9vbCBkc2MyX3ZhbGlkYXRlX3N0cmVhbShzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciAqZHNjLCBjb25zdCBzdHJ1Y3QgZHNjX2NvbmZpZyAqZHNjX2NmZyk7CiBzdGF0aWMgdm9pZCBkc2MyX3NldF9jb25maWcoc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywgY29uc3Qgc3RydWN0IGRzY19jb25maWcgKmRzY19jZmcsCi0JCXN0cnVjdCBkc2Nfb3B0Y19jb25maWcgKmRzY19vcHRjX2NmZywgdWludDhfdCAqZHNjX3BhY2tlZF9wcHMpOworCQlzdHJ1Y3QgZHNjX29wdGNfY29uZmlnICpkc2Nfb3B0Y19jZmcpOworc3RhdGljIGJvb2wgZHNjMl9nZXRfcGFja2VkX3BwcyhzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciAqZHNjLCBjb25zdCBzdHJ1Y3QgZHNjX2NvbmZpZyAqZHNjX2NmZywgdWludDhfdCAqZHNjX3BhY2tlZF9wcHMpOwogc3RhdGljIHZvaWQgZHNjMl9lbmFibGUoc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywgaW50IG9wcF9waXBlKTsKIHN0YXRpYyB2b2lkIGRzYzJfZGlzYWJsZShzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciAqZHNjKTsKIApAQCAtNTEsNiArNTIsNyBAQCBjb25zdCBzdHJ1Y3QgZHNjX2Z1bmNzIGRjbjIwX2RzY19mdW5jcyA9IHsKIAkuZHNjX3JlYWRfc3RhdGUgPSBkc2MyX3JlYWRfc3RhdGUsCiAJLmRzY192YWxpZGF0ZV9zdHJlYW0gPSBkc2MyX3ZhbGlkYXRlX3N0cmVhbSwKIAkuZHNjX3NldF9jb25maWcgPSBkc2MyX3NldF9jb25maWcsCisJLmRzY19nZXRfcGFja2VkX3BwcyA9IGRzYzJfZ2V0X3BhY2tlZF9wcHMsCiAJLmRzY19lbmFibGUgPSBkc2MyX2VuYWJsZSwKIAkuZHNjX2Rpc2FibGUgPSBkc2MyX2Rpc2FibGUsCiB9OwpAQCAtMTE2LDggKzExOCw4IEBAIHN0YXRpYyB2b2lkIGRzYzJfZ2V0X2VuY19jYXBzKHN0cnVjdCBkc2NfZW5jX2NhcHMgKmRzY19lbmNfY2FwcywgaW50IHBpeGVsX2Nsb2NrCiAKIAlkc2NfZW5jX2NhcHMtPmNvbG9yX2Zvcm1hdHMuYml0cy5SR0IgPSAxOwogCWRzY19lbmNfY2Fwcy0+Y29sb3JfZm9ybWF0cy5iaXRzLllDQkNSXzQ0NCA9IDE7Ci0JZHNjX2VuY19jYXBzLT5jb2xvcl9mb3JtYXRzLmJpdHMuWUNCQ1JfU0lNUExFXzQyMiA9IDE7Ci0JZHNjX2VuY19jYXBzLT5jb2xvcl9mb3JtYXRzLmJpdHMuWUNCQ1JfTkFUSVZFXzQyMiA9IDE7CisJZHNjX2VuY19jYXBzLT5jb2xvcl9mb3JtYXRzLmJpdHMuWUNCQ1JfU0lNUExFXzQyMiA9IDA7CisJZHNjX2VuY19jYXBzLT5jb2xvcl9mb3JtYXRzLmJpdHMuWUNCQ1JfTkFUSVZFXzQyMiA9IDA7CiAJZHNjX2VuY19jYXBzLT5jb2xvcl9mb3JtYXRzLmJpdHMuWUNCQ1JfTkFUSVZFXzQyMCA9IDE7CiAKIAlkc2NfZW5jX2NhcHMtPmNvbG9yX2RlcHRoLmJpdHMuQ09MT1JfREVQVEhfOF9CUEMgPSAxOwpAQCAtMTYyLDQwICsxNjQsNjEgQEAgc3RhdGljIHZvaWQgZHNjMl9yZWFkX3N0YXRlKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIHN0cnVjdCBkY25fZHMKIHN0YXRpYyBib29sIGRzYzJfdmFsaWRhdGVfc3RyZWFtKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIGNvbnN0IHN0cnVjdCBkc2NfY29uZmlnICpkc2NfY2ZnKQogewogCXN0cnVjdCBkc2Nfb3B0Y19jb25maWcgZHNjX29wdGNfY2ZnOworCXN0cnVjdCBkY24yMF9kc2MgKmRzYzIwID0gVE9fRENOMjBfRFNDKGRzYyk7CiAKLQlpZiAoZHNjX2NmZy0+cGljX3dpZHRoID4gVE9fRENOMjBfRFNDKGRzYyktPm1heF9pbWFnZV93aWR0aCkKKwlpZiAoZHNjX2NmZy0+cGljX3dpZHRoID4gZHNjMjAtPm1heF9pbWFnZV93aWR0aCkKIAkJcmV0dXJuIGZhbHNlOwogCi0JcmV0dXJuIGRzY19wcmVwYXJlX2NvbmZpZyhkc2MsIGRzY19jZmcsICZkc2Nfb3B0Y19jZmcpOworCXJldHVybiBkc2NfcHJlcGFyZV9jb25maWcoZHNjX2NmZywgJmRzYzIwLT5yZWdfdmFscywgJmRzY19vcHRjX2NmZyk7CiB9CiAKIAotc3RhdGljIHZvaWQgZHNjX2NvbmZpZ19sb2coc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywKLQkJY29uc3Qgc3RydWN0IGRzY19jb25maWcgKmNvbmZpZykKK3N0YXRpYyB2b2lkIGRzY19jb25maWdfbG9nKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIGNvbnN0IHN0cnVjdCBkc2NfY29uZmlnICpjb25maWcpCiB7Ci0JRENfTE9HX0RTQygiU2V0dGluZyBEU0MgQ29uZmlnIGF0IERTQyBpbnN0ICVkIiwgZHNjLT5pbnN0KTsKLQlEQ19MT0dfRFNDKCJcblx0bnVtX3NsaWNlc19oICVkXG5cdG51bV9zbGljZXNfdiAlZFxuXHRiaXRzX3Blcl9waXhlbCAlZFxuXHRjb2xvcl9kZXB0aCAlZCIsCi0JCWNvbmZpZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX2gsCi0JCWNvbmZpZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX3YsCisJRENfTE9HX0RTQygiXHRudW1fc2xpY2VzX2ggJWQiLCBjb25maWctPmRjX2RzY19jZmcubnVtX3NsaWNlc19oKTsKKwlEQ19MT0dfRFNDKCJcdG51bV9zbGljZXNfdiAlZCIsIGNvbmZpZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX3YpOworCURDX0xPR19EU0MoIlx0Yml0c19wZXJfcGl4ZWwgJWQgKCVkLiUwNGQpIiwKIAkJY29uZmlnLT5kY19kc2NfY2ZnLmJpdHNfcGVyX3BpeGVsLAotCQljb25maWctPmNvbG9yX2RlcHRoKTsKKwkJY29uZmlnLT5kY19kc2NfY2ZnLmJpdHNfcGVyX3BpeGVsIC8gMTYsCisJCSgoY29uZmlnLT5kY19kc2NfY2ZnLmJpdHNfcGVyX3BpeGVsICUgMTYpICogMTAwMDApIC8gMTYpOworCURDX0xPR19EU0MoIlx0Y29sb3JfZGVwdGggJWQiLCBjb25maWctPmNvbG9yX2RlcHRoKTsKIH0KIAogc3RhdGljIHZvaWQgZHNjMl9zZXRfY29uZmlnKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIGNvbnN0IHN0cnVjdCBkc2NfY29uZmlnICpkc2NfY2ZnLAotCQlzdHJ1Y3QgZHNjX29wdGNfY29uZmlnICpkc2Nfb3B0Y19jZmcsIHVpbnQ4X3QgKmRzY19wYWNrZWRfcHBzKQorCQlzdHJ1Y3QgZHNjX29wdGNfY29uZmlnICpkc2Nfb3B0Y19jZmcpCiB7CiAJYm9vbCBpc19jb25maWdfb2s7CiAJc3RydWN0IGRjbjIwX2RzYyAqZHNjMjAgPSBUT19EQ04yMF9EU0MoZHNjKTsKIAorCURDX0xPR19EU0MoIiAiKTsKKwlEQ19MT0dfRFNDKCJTZXR0aW5nIERTQyBDb25maWcgYXQgRFNDIGluc3QgJWQiLCBkc2MtPmluc3QpOwogCWRzY19jb25maWdfbG9nKGRzYywgZHNjX2NmZyk7Ci0JaXNfY29uZmlnX29rID0gZHNjX3ByZXBhcmVfY29uZmlnKGRzYywgZHNjX2NmZywgZHNjX29wdGNfY2ZnKTsKKwlpc19jb25maWdfb2sgPSBkc2NfcHJlcGFyZV9jb25maWcoZHNjX2NmZywgJmRzYzIwLT5yZWdfdmFscywgZHNjX29wdGNfY2ZnKTsKIAlBU1NFUlQoaXNfY29uZmlnX29rKTsKLQlkcm1fZHNjX3Bwc19wYXlsb2FkX3BhY2soKHN0cnVjdCBkcm1fZHNjX3BpY3R1cmVfcGFyYW1ldGVyX3NldCAqKWRzY19wYWNrZWRfcHBzLCAmZHNjMjAtPnJlZ192YWxzLnBwcyk7CisJRENfTE9HX0RTQygicHJvZ3JhbW1pbmcgRFNDIFBpY3R1cmUgUGFyYW1ldGVyIFNldCAoUFBTKToiKTsKIAlkc2NfbG9nX3Bwcyhkc2MsICZkc2MyMC0+cmVnX3ZhbHMucHBzKTsKIAlkc2Nfd3JpdGVfdG9fcmVnaXN0ZXJzKGRzYywgJmRzYzIwLT5yZWdfdmFscyk7CiB9CiAKIAorc3RhdGljIGJvb2wgZHNjMl9nZXRfcGFja2VkX3BwcyhzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciAqZHNjLCBjb25zdCBzdHJ1Y3QgZHNjX2NvbmZpZyAqZHNjX2NmZywgdWludDhfdCAqZHNjX3BhY2tlZF9wcHMpCit7CisJYm9vbCBpc19jb25maWdfb2s7CisJc3RydWN0IGRzY19yZWdfdmFsdWVzIGRzY19yZWdfdmFsczsKKwlzdHJ1Y3QgZHNjX29wdGNfY29uZmlnIGRzY19vcHRjX2NmZzsKKworCURDX0xPR19EU0MoIkdldHRpbmcgcGFja2VkIERTQyBQUFMgZm9yIERTQyBDb25maWc6Iik7CisJZHNjX2NvbmZpZ19sb2coZHNjLCBkc2NfY2ZnKTsKKwlEQ19MT0dfRFNDKCJEU0MgUGljdHVyZSBQYXJhbWV0ZXIgU2V0IChQUFMpOiIpOworCWlzX2NvbmZpZ19vayA9IGRzY19wcmVwYXJlX2NvbmZpZyhkc2NfY2ZnLCAmZHNjX3JlZ192YWxzLCAmZHNjX29wdGNfY2ZnKTsKKwlBU1NFUlQoaXNfY29uZmlnX29rKTsKKwlkcm1fZHNjX3Bwc19wYXlsb2FkX3BhY2soKHN0cnVjdCBkcm1fZHNjX3BpY3R1cmVfcGFyYW1ldGVyX3NldCAqKWRzY19wYWNrZWRfcHBzLCAmZHNjX3JlZ192YWxzLnBwcyk7CisJZHNjX2xvZ19wcHMoZHNjLCAmZHNjX3JlZ192YWxzLnBwcyk7CisKKwlyZXR1cm4gaXNfY29uZmlnX29rOworfQorCisKIHN0YXRpYyB2b2lkIGRzYzJfZW5hYmxlKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIGludCBvcHBfcGlwZSkKIHsKIAlzdHJ1Y3QgZGNuMjBfZHNjICpkc2MyMCA9IFRPX0RDTjIwX0RTQyhkc2MpOwpAQCAtMjMyLDcgKzI1NSw2IEBAIHN0YXRpYyB2b2lkIGRzY19sb2dfcHBzKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIHN0cnVjdCBkcm1fZHNjX2NvCiAJaW50IGk7CiAJaW50IGJpdHNfcGVyX3BpeGVsID0gcHBzLT5iaXRzX3Blcl9waXhlbDsKIAotCURDX0xPR19EU0MoInByb2dyYW1taW5nIERTQyBQaWN0dXJlIFBhcmFtZXRlciBTZXQgKFBQUyk6Iik7CiAJRENfTE9HX0RTQygiXHRkc2NfdmVyc2lvbl9tYWpvciAlZCIsIHBwcy0+ZHNjX3ZlcnNpb25fbWFqb3IpOwogCURDX0xPR19EU0MoIlx0ZHNjX3ZlcnNpb25fbWlub3IgJWQiLCBwcHMtPmRzY192ZXJzaW9uX21pbm9yKTsKIAlEQ19MT0dfRFNDKCJcdGJpdHNfcGVyX2NvbXBvbmVudCAlZCIsIHBwcy0+Yml0c19wZXJfY29tcG9uZW50KTsKQEAgLTI4MiwxMyArMzA0LDExIEBAIHN0YXRpYyB2b2lkIGRzY19sb2dfcHBzKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIHN0cnVjdCBkcm1fZHNjX2NvCiAJfQogfQogCi1zdGF0aWMgYm9vbCBkc2NfcHJlcGFyZV9jb25maWcoc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywgY29uc3Qgc3RydWN0IGRzY19jb25maWcgKmRzY19jZmcsCitzdGF0aWMgYm9vbCBkc2NfcHJlcGFyZV9jb25maWcoY29uc3Qgc3RydWN0IGRzY19jb25maWcgKmRzY19jZmcsIHN0cnVjdCBkc2NfcmVnX3ZhbHVlcyAqZHNjX3JlZ192YWxzLAogCQkJc3RydWN0IGRzY19vcHRjX2NvbmZpZyAqZHNjX29wdGNfY2ZnKQogewogCXN0cnVjdCBkc2NfcGFyYW1ldGVycyBkc2NfcGFyYW1zOwogCi0Jc3RydWN0IGRjbjIwX2RzYyAqZHNjMjAgPSBUT19EQ04yMF9EU0MoZHNjKTsKLQogCS8qIFZhbGlkYXRlIGlucHV0IHBhcmFtZXRlcnMgKi8KIAlBU1NFUlQoZHNjX2NmZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX2gpOwogCUFTU0VSVChkc2NfY2ZnLT5kY19kc2NfY2ZnLm51bV9zbGljZXNfdik7CkBAIC0zMDIsNyArMzIyLDcgQEAgc3RhdGljIGJvb2wgZHNjX3ByZXBhcmVfY29uZmlnKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIGNvbnN0IHN0cnUKIAkJICAgIGRzY19jZmctPmRjX2RzY19jZmcubGluZWJ1Zl9kZXB0aCA9PSAwKSkpOwogCUFTU0VSVCg5NiA8PSBkc2NfY2ZnLT5kY19kc2NfY2ZnLmJpdHNfcGVyX3BpeGVsICYmIGRzY19jZmctPmRjX2RzY19jZmcuYml0c19wZXJfcGl4ZWwgPD0gMHgzZmYpOyAvLyA2LjAgPD0gYml0c19wZXJfcGl4ZWwgPD0gNjMuOTM3NQogCi0JaWYgKCFkc2NfY2ZnLT5kY19kc2NfY2ZnLm51bV9zbGljZXNfdiB8fCAhZHNjX2NmZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX3YgfHwKKwlpZiAoIWRzY19jZmctPmRjX2RzY19jZmcubnVtX3NsaWNlc192IHx8ICFkc2NfY2ZnLT5kY19kc2NfY2ZnLm51bV9zbGljZXNfaCB8fAogCQkhKGRzY19jZmctPmRjX2RzY19jZmcudmVyc2lvbl9taW5vciA9PSAxIHx8IGRzY19jZmctPmRjX2RzY19jZmcudmVyc2lvbl9taW5vciA9PSAyKSB8fAogCQkhZHNjX2NmZy0+cGljX3dpZHRoIHx8ICFkc2NfY2ZnLT5waWNfaGVpZ2h0IHx8CiAJCSEoKGRzY19jZmctPmRjX2RzY19jZmcudmVyc2lvbl9taW5vciA9PSAxICYmIC8vIHYxLjEgbGluZSBidWZmZXIgZGVwdGggcmFuZ2U6CkBAIC0zMTUsNTQgKzMzNSw1NCBAQCBzdGF0aWMgYm9vbCBkc2NfcHJlcGFyZV9jb25maWcoc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywgY29uc3Qgc3RydQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JZHNjX2luaXRfcmVnX3ZhbHVlcygmZHNjMjAtPnJlZ192YWxzKTsKKwlkc2NfaW5pdF9yZWdfdmFsdWVzKGRzY19yZWdfdmFscyk7CiAKIAkvKiBDb3B5IGlucHV0IGNvbmZpZyAqLwotCWRzYzIwLT5yZWdfdmFscy5waXhlbF9mb3JtYXQgPSBkc2NfZGNfcGl4ZWxfZW5jb2RpbmdfdG9fZHNjX3BpeGVsX2Zvcm1hdChkc2NfY2ZnLT5waXhlbF9lbmNvZGluZywgZHNjX2NmZy0+ZGNfZHNjX2NmZy55Y2JjcjQyMl9zaW1wbGUpOwotCWRzYzIwLT5yZWdfdmFscy5udW1fc2xpY2VzX2ggPSBkc2NfY2ZnLT5kY19kc2NfY2ZnLm51bV9zbGljZXNfaDsKLQlkc2MyMC0+cmVnX3ZhbHMubnVtX3NsaWNlc192ID0gZHNjX2NmZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX3Y7Ci0JZHNjMjAtPnJlZ192YWxzLnBwcy5kc2NfdmVyc2lvbl9taW5vciA9IGRzY19jZmctPmRjX2RzY19jZmcudmVyc2lvbl9taW5vcjsKLQlkc2MyMC0+cmVnX3ZhbHMucHBzLnBpY193aWR0aCA9IGRzY19jZmctPnBpY193aWR0aDsKLQlkc2MyMC0+cmVnX3ZhbHMucHBzLnBpY19oZWlnaHQgPSBkc2NfY2ZnLT5waWNfaGVpZ2h0OwotCWRzYzIwLT5yZWdfdmFscy5wcHMuYml0c19wZXJfY29tcG9uZW50ID0gZHNjX2RjX2NvbG9yX2RlcHRoX3RvX2RzY19iaXRzX3Blcl9jb21wKGRzY19jZmctPmNvbG9yX2RlcHRoKTsKLQlkc2MyMC0+cmVnX3ZhbHMucHBzLmJsb2NrX3ByZWRfZW5hYmxlID0gZHNjX2NmZy0+ZGNfZHNjX2NmZy5ibG9ja19wcmVkX2VuYWJsZTsKLQlkc2MyMC0+cmVnX3ZhbHMucHBzLmxpbmVfYnVmX2RlcHRoID0gZHNjX2NmZy0+ZGNfZHNjX2NmZy5saW5lYnVmX2RlcHRoOwotCWRzYzIwLT5yZWdfdmFscy5hbHRlcm5hdGVfaWNoX2VuY29kaW5nX2VuID0gZHNjMjAtPnJlZ192YWxzLnBwcy5kc2NfdmVyc2lvbl9taW5vciA9PSAxID8gMCA6IDE7CisJZHNjX3JlZ192YWxzLT5waXhlbF9mb3JtYXQgPSBkc2NfZGNfcGl4ZWxfZW5jb2RpbmdfdG9fZHNjX3BpeGVsX2Zvcm1hdChkc2NfY2ZnLT5waXhlbF9lbmNvZGluZywgZHNjX2NmZy0+ZGNfZHNjX2NmZy55Y2JjcjQyMl9zaW1wbGUpOworCWRzY19yZWdfdmFscy0+bnVtX3NsaWNlc19oID0gZHNjX2NmZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX2g7CisJZHNjX3JlZ192YWxzLT5udW1fc2xpY2VzX3YgPSBkc2NfY2ZnLT5kY19kc2NfY2ZnLm51bV9zbGljZXNfdjsKKwlkc2NfcmVnX3ZhbHMtPnBwcy5kc2NfdmVyc2lvbl9taW5vciA9IGRzY19jZmctPmRjX2RzY19jZmcudmVyc2lvbl9taW5vcjsKKwlkc2NfcmVnX3ZhbHMtPnBwcy5waWNfd2lkdGggPSBkc2NfY2ZnLT5waWNfd2lkdGg7CisJZHNjX3JlZ192YWxzLT5wcHMucGljX2hlaWdodCA9IGRzY19jZmctPnBpY19oZWlnaHQ7CisJZHNjX3JlZ192YWxzLT5wcHMuYml0c19wZXJfY29tcG9uZW50ID0gZHNjX2RjX2NvbG9yX2RlcHRoX3RvX2RzY19iaXRzX3Blcl9jb21wKGRzY19jZmctPmNvbG9yX2RlcHRoKTsKKwlkc2NfcmVnX3ZhbHMtPnBwcy5ibG9ja19wcmVkX2VuYWJsZSA9IGRzY19jZmctPmRjX2RzY19jZmcuYmxvY2tfcHJlZF9lbmFibGU7CisJZHNjX3JlZ192YWxzLT5wcHMubGluZV9idWZfZGVwdGggPSBkc2NfY2ZnLT5kY19kc2NfY2ZnLmxpbmVidWZfZGVwdGg7CisJZHNjX3JlZ192YWxzLT5hbHRlcm5hdGVfaWNoX2VuY29kaW5nX2VuID0gZHNjX3JlZ192YWxzLT5wcHMuZHNjX3ZlcnNpb25fbWlub3IgPT0gMSA/IDAgOiAxOwogCiAJLy8gVE9ETzogaW4gYWRkaXRpb24gdG8gdmFsaWRhdGluZyBzbGljZSBoZWlnaHQgKHBpYyBoZWlnaHQgbXVzdCBiZSBkaXZpc2libGUgYnkgc2xpY2UgaGVpZ2h0KSwKIAkvLyBzZWUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHNhbWUgY29uZGl0aW9uIGRvZXNuJ3QgYXBwbHkgZm9yIHNsaWNlX3dpZHRoL3BpY193aWR0aC4KLQlkc2MyMC0+cmVnX3ZhbHMucHBzLnNsaWNlX3dpZHRoID0gZHNjX2NmZy0+cGljX3dpZHRoIC8gZHNjX2NmZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX2g7Ci0JZHNjMjAtPnJlZ192YWxzLnBwcy5zbGljZV9oZWlnaHQgPSBkc2NfY2ZnLT5waWNfaGVpZ2h0IC8gZHNjX2NmZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX3Y7CisJZHNjX3JlZ192YWxzLT5wcHMuc2xpY2Vfd2lkdGggPSBkc2NfY2ZnLT5waWNfd2lkdGggLyBkc2NfY2ZnLT5kY19kc2NfY2ZnLm51bV9zbGljZXNfaDsKKwlkc2NfcmVnX3ZhbHMtPnBwcy5zbGljZV9oZWlnaHQgPSBkc2NfY2ZnLT5waWNfaGVpZ2h0IC8gZHNjX2NmZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX3Y7CiAKLQlBU1NFUlQoZHNjMjAtPnJlZ192YWxzLnBwcy5zbGljZV9oZWlnaHQgKiBkc2NfY2ZnLT5kY19kc2NfY2ZnLm51bV9zbGljZXNfdiA9PSBkc2NfY2ZnLT5waWNfaGVpZ2h0KTsKLQlpZiAoIShkc2MyMC0+cmVnX3ZhbHMucHBzLnNsaWNlX2hlaWdodCAqIGRzY19jZmctPmRjX2RzY19jZmcubnVtX3NsaWNlc192ID09IGRzY19jZmctPnBpY19oZWlnaHQpKSB7CisJQVNTRVJUKGRzY19yZWdfdmFscy0+cHBzLnNsaWNlX2hlaWdodCAqIGRzY19jZmctPmRjX2RzY19jZmcubnVtX3NsaWNlc192ID09IGRzY19jZmctPnBpY19oZWlnaHQpOworCWlmICghKGRzY19yZWdfdmFscy0+cHBzLnNsaWNlX2hlaWdodCAqIGRzY19jZmctPmRjX2RzY19jZmcubnVtX3NsaWNlc192ID09IGRzY19jZmctPnBpY19oZWlnaHQpKSB7CiAJCWRtX291dHB1dF90b19jb25zb2xlKCIlczogcGl4IGhlaWdodCAlZCBub3QgZGl2aXNpYmxlIGJ5IG51bV9zbGljZXNfdiAlZFxuXG4iLCBfX2Z1bmNfXywgZHNjX2NmZy0+cGljX2hlaWdodCwgZHNjX2NmZy0+ZGNfZHNjX2NmZy5udW1fc2xpY2VzX3YpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JZHNjMjAtPnJlZ192YWxzLmJwcF94MzIgPSBkc2NfY2ZnLT5kY19kc2NfY2ZnLmJpdHNfcGVyX3BpeGVsIDw8IDE7Ci0JaWYgKGRzYzIwLT5yZWdfdmFscy5waXhlbF9mb3JtYXQgPT0gRFNDX1BJWEZNVF9OQVRJVkVfWUNCQ1I0MjAgfHwgZHNjMjAtPnJlZ192YWxzLnBpeGVsX2Zvcm1hdCA9PSBEU0NfUElYRk1UX05BVElWRV9ZQ0JDUjQyMikKLQkJZHNjMjAtPnJlZ192YWxzLnBwcy5iaXRzX3Blcl9waXhlbCA9IGRzYzIwLT5yZWdfdmFscy5icHBfeDMyOworCWRzY19yZWdfdmFscy0+YnBwX3gzMiA9IGRzY19jZmctPmRjX2RzY19jZmcuYml0c19wZXJfcGl4ZWwgPDwgMTsKKwlpZiAoZHNjX3JlZ192YWxzLT5waXhlbF9mb3JtYXQgPT0gRFNDX1BJWEZNVF9OQVRJVkVfWUNCQ1I0MjAgfHwgZHNjX3JlZ192YWxzLT5waXhlbF9mb3JtYXQgPT0gRFNDX1BJWEZNVF9OQVRJVkVfWUNCQ1I0MjIpCisJCWRzY19yZWdfdmFscy0+cHBzLmJpdHNfcGVyX3BpeGVsID0gZHNjX3JlZ192YWxzLT5icHBfeDMyOwogCWVsc2UKLQkJZHNjMjAtPnJlZ192YWxzLnBwcy5iaXRzX3Blcl9waXhlbCA9IGRzYzIwLT5yZWdfdmFscy5icHBfeDMyID4+IDE7CisJCWRzY19yZWdfdmFscy0+cHBzLmJpdHNfcGVyX3BpeGVsID0gZHNjX3JlZ192YWxzLT5icHBfeDMyID4+IDE7CiAKLQlkc2MyMC0+cmVnX3ZhbHMucHBzLmNvbnZlcnRfcmdiID0gZHNjMjAtPnJlZ192YWxzLnBpeGVsX2Zvcm1hdCA9PSBEU0NfUElYRk1UX1JHQiA/IDEgOiAwOwotCWRzYzIwLT5yZWdfdmFscy5wcHMubmF0aXZlXzQyMiA9IChkc2MyMC0+cmVnX3ZhbHMucGl4ZWxfZm9ybWF0ID09IERTQ19QSVhGTVRfTkFUSVZFX1lDQkNSNDIyKTsKLQlkc2MyMC0+cmVnX3ZhbHMucHBzLm5hdGl2ZV80MjAgPSAoZHNjMjAtPnJlZ192YWxzLnBpeGVsX2Zvcm1hdCA9PSBEU0NfUElYRk1UX05BVElWRV9ZQ0JDUjQyMCk7Ci0JZHNjMjAtPnJlZ192YWxzLnBwcy5zaW1wbGVfNDIyID0gKGRzYzIwLT5yZWdfdmFscy5waXhlbF9mb3JtYXQgPT0gRFNDX1BJWEZNVF9TSU1QTEVfWUNCQ1I0MjIpOworCWRzY19yZWdfdmFscy0+cHBzLmNvbnZlcnRfcmdiID0gZHNjX3JlZ192YWxzLT5waXhlbF9mb3JtYXQgPT0gRFNDX1BJWEZNVF9SR0IgPyAxIDogMDsKKwlkc2NfcmVnX3ZhbHMtPnBwcy5uYXRpdmVfNDIyID0gKGRzY19yZWdfdmFscy0+cGl4ZWxfZm9ybWF0ID09IERTQ19QSVhGTVRfTkFUSVZFX1lDQkNSNDIyKTsKKwlkc2NfcmVnX3ZhbHMtPnBwcy5uYXRpdmVfNDIwID0gKGRzY19yZWdfdmFscy0+cGl4ZWxfZm9ybWF0ID09IERTQ19QSVhGTVRfTkFUSVZFX1lDQkNSNDIwKTsKKwlkc2NfcmVnX3ZhbHMtPnBwcy5zaW1wbGVfNDIyID0gKGRzY19yZWdfdmFscy0+cGl4ZWxfZm9ybWF0ID09IERTQ19QSVhGTVRfU0lNUExFX1lDQkNSNDIyKTsKIAotCWlmIChkc2NjX2NvbXB1dGVfZHNjX3BhcmFtZXRlcnMoJmRzYzIwLT5yZWdfdmFscy5wcHMsICZkc2NfcGFyYW1zKSkgeworCWlmIChkc2NjX2NvbXB1dGVfZHNjX3BhcmFtZXRlcnMoJmRzY19yZWdfdmFscy0+cHBzLCAmZHNjX3BhcmFtcykpIHsKIAkJZG1fb3V0cHV0X3RvX2NvbnNvbGUoIiVzOiBEU0MgY29uZmlnIGZhaWxlZFxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JZHNjX3VwZGF0ZV9mcm9tX2RzY19wYXJhbWV0ZXJzKCZkc2MyMC0+cmVnX3ZhbHMsICZkc2NfcGFyYW1zKTsKKwlkc2NfdXBkYXRlX2Zyb21fZHNjX3BhcmFtZXRlcnMoZHNjX3JlZ192YWxzLCAmZHNjX3BhcmFtcyk7CiAKIAlkc2Nfb3B0Y19jZmctPmJ5dGVzX3Blcl9waXhlbCA9IGRzY19wYXJhbXMuYnl0ZXNfcGVyX3BpeGVsOwotCWRzY19vcHRjX2NmZy0+c2xpY2Vfd2lkdGggPSBkc2MyMC0+cmVnX3ZhbHMucHBzLnNsaWNlX3dpZHRoOwotCWRzY19vcHRjX2NmZy0+aXNfcGl4ZWxfZm9ybWF0XzQ0NCA9IGRzYzIwLT5yZWdfdmFscy5waXhlbF9mb3JtYXQgPT0gRFNDX1BJWEZNVF9SR0IgfHwKLQkJCQkJZHNjMjAtPnJlZ192YWxzLnBpeGVsX2Zvcm1hdCA9PSBEU0NfUElYRk1UX1lDQkNSNDQ0IHx8Ci0JCQkJCWRzYzIwLT5yZWdfdmFscy5waXhlbF9mb3JtYXQgPT0gRFNDX1BJWEZNVF9TSU1QTEVfWUNCQ1I0MjI7CisJZHNjX29wdGNfY2ZnLT5zbGljZV93aWR0aCA9IGRzY19yZWdfdmFscy0+cHBzLnNsaWNlX3dpZHRoOworCWRzY19vcHRjX2NmZy0+aXNfcGl4ZWxfZm9ybWF0XzQ0NCA9IGRzY19yZWdfdmFscy0+cGl4ZWxfZm9ybWF0ID09IERTQ19QSVhGTVRfUkdCIHx8CisJCQkJCWRzY19yZWdfdmFscy0+cGl4ZWxfZm9ybWF0ID09IERTQ19QSVhGTVRfWUNCQ1I0NDQgfHwKKwkJCQkJZHNjX3JlZ192YWxzLT5waXhlbF9mb3JtYXQgPT0gRFNDX1BJWEZNVF9TSU1QTEVfWUNCQ1I0MjI7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTQyNyw2ICs0NDcsOCBAQCBzdGF0aWMgdm9pZCBkc2NfaW5pdF9yZWdfdmFsdWVzKHN0cnVjdCBkc2NfcmVnX3ZhbHVlcyAqcmVnX3ZhbHMpCiB7CiAJaW50IGk7CiAKKwltZW1zZXQocmVnX3ZhbHMsIDAsIHNpemVvZihzdHJ1Y3QgZHNjX3JlZ192YWx1ZXMpKTsKKwogCS8qIE5vbi1QUFMgdmFsdWVzICovCiAJcmVnX3ZhbHMtPmRzY19jbG9ja19lbmFibGUgICAgICAgICAgICA9IDE7CiAJcmVnX3ZhbHMtPmRzY19jbG9ja19nYXRpbmdfZGlzYWJsZSAgICA9IDA7CkBAIC00MzYsNyArNDU4LDcgQEAgc3RhdGljIHZvaWQgZHNjX2luaXRfcmVnX3ZhbHVlcyhzdHJ1Y3QgZHNjX3JlZ192YWx1ZXMgKnJlZ192YWxzKQogCXJlZ192YWxzLT5pY2hfcmVzZXRfYXRfZW9sICAgICAgICAgICAgPSAwOwogCXJlZ192YWxzLT5hbHRlcm5hdGVfaWNoX2VuY29kaW5nX2VuICAgPSAwOwogCXJlZ192YWxzLT5yY19idWZmZXJfbW9kZWxfc2l6ZSAgICAgICAgPSAwOwotCXJlZ192YWxzLT5kaXNhYmxlX2ljaCAgICAgICAgICAgICAgICAgPSAwOworCS8qcmVnX3ZhbHMtPmRpc2FibGVfaWNoICAgICAgICAgICAgICAgICA9IDA7Ki8KIAlyZWdfdmFscy0+ZHNjX2RiZ19lbiAgICAgICAgICAgICAgICAgID0gMDsKIAogCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspCkBAIC01MTgsOSArNTQwLDExIEBAIHN0YXRpYyB2b2lkIGRzY193cml0ZV90b19yZWdpc3RlcnMoc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywgY29uc3QKIAkJQUxURVJOQVRFX0lDSF9FTkNPRElOR19FTiwgcmVnX3ZhbHMtPmFsdGVybmF0ZV9pY2hfZW5jb2RpbmdfZW4sCiAJCU5VTUJFUl9PRl9TTElDRVNfSU5fVkVSVElDQUxfRElSRUNUSU9OLCByZWdfdmFscy0+bnVtX3NsaWNlc192IC0gMSk7CiAKLQlSRUdfU0VUXzIoRFNDQ19DT05GSUcxLCAwLAorCVJFR19TRVQoRFNDQ19DT05GSUcxLCAwLAorCQkJRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMX1NJWkUsIHJlZ192YWxzLT5yY19idWZmZXJfbW9kZWxfc2l6ZSk7CisJLypSRUdfU0VUXzIoRFNDQ19DT05GSUcxLCAwLAogCQlEU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUxfU0laRSwgcmVnX3ZhbHMtPnJjX2J1ZmZlcl9tb2RlbF9zaXplLAotCQlEU0NDX0RJU0FCTEVfSUNILCByZWdfdmFscy0+ZGlzYWJsZV9pY2gpOworCQlEU0NDX0RJU0FCTEVfSUNILCByZWdfdmFscy0+ZGlzYWJsZV9pY2gpOyovCiAKIAlSRUdfU0VUXzQoRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVMsIDAsCiAJCURTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDBfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOLCByZWdfdmFscy0+cmNfYnVmZmVyX21vZGVsX292ZXJmbG93X2ludF9lblswXSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kc2MuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kc2MuaAppbmRleCAxNjg4NjVhMS4uNGUyZmIzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2RzYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9kc2MuaApAQCAtMTAzLDcgKzEwMyw3IEBACiAJRFNDX1NGKERTQ0MwX0RTQ0NfQ09ORklHMCwgQUxURVJOQVRFX0lDSF9FTkNPRElOR19FTiwgbWFza19zaCksIFwKIAlEU0NfU0YoRFNDQzBfRFNDQ19DT05GSUcwLCBOVU1CRVJfT0ZfU0xJQ0VTX0lOX1ZFUlRJQ0FMX0RJUkVDVElPTiwgbWFza19zaCksIFwKIAlEU0NfU0YoRFNDQzBfRFNDQ19DT05GSUcxLCBEU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUxfU0laRSwgbWFza19zaCksIFwKLQlEU0NfU0YoRFNDQzBfRFNDQ19DT05GSUcxLCBEU0NDX0RJU0FCTEVfSUNILCBtYXNrX3NoKSwgXAorCS8qRFNDX1NGKERTQ0MwX0RTQ0NfQ09ORklHMSwgRFNDQ19ESVNBQkxFX0lDSCwgbWFza19zaCksKi8gXAogCURTQ19TRihEU0NDMF9EU0NDX1NUQVRVUywgRFNDQ19ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElORywgbWFza19zaCksIFwKIAlEU0NfU0YoRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVMsIERTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVELCBtYXNrX3NoKSwgXAogCURTQ19TRihEU0NDMF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVUywgRFNDQ19SQVRFX0JVRkZFUjFfT1ZFUkZMT1dfT0NDVVJSRUQsIG1hc2tfc2gpLCBcCkBAIC0yNzgsNyArMjc4LDcgQEAKIAl0eXBlIEFMVEVSTkFURV9JQ0hfRU5DT0RJTkdfRU47IFwKIAl0eXBlIE5VTUJFUl9PRl9TTElDRVNfSU5fVkVSVElDQUxfRElSRUNUSU9OOyBcCiAJdHlwZSBEU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUxfU0laRTsgXAotCXR5cGUgRFNDQ19ESVNBQkxFX0lDSDsgXAorCS8qdHlwZSBEU0NDX0RJU0FCTEVfSUNIOyovIFwKIAl0eXBlIERTQ0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkc7IFwKIAl0eXBlIERTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVEOyBcCiAJdHlwZSBEU0NDX1JBVEVfQlVGRkVSMV9PVkVSRkxPV19PQ0NVUlJFRDsgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h1YmJ1Yi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h1YmJ1Yi5jCmluZGV4IDZlMmRiZDAuLmI4M2MwMjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9odWJidWIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaHViYnViLmMKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgImRjbjIwX2h1YmJ1Yi5oIgogI2luY2x1ZGUgInJlZ19oZWxwZXIuaCIKKyNpbmNsdWRlICJjbGtfbWdyLmgiCiAKICNkZWZpbmUgUkVHKHJlZylcCiAJaHViYnViMS0+cmVncy0+cmVnCkBAIC0zNzksNiArMzgwLDExIEBAIGludCBodWJidWIyX2luaXRfZGNodWJfc3lzX2N0eChzdHJ1Y3QgaHViYnViICpodWJidWIsCiAJUkVHX1NFVChEQ05fVk1fQUdQX0JBU0UsIDAsCiAJCQlBR1BfQkFTRSwgcGFfY29uZmlnLT5zeXN0ZW1fYXBlcnR1cmUuYWdwX2Jhc2UgPj4gMjQpOwogCisJUkVHX1NFVChEQ05fVk1fUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfTVNCLCAwLAorCQkJRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX01TQiwgKHBhX2NvbmZpZy0+cGFnZV90YWJsZV9kZWZhdWx0X3BhZ2VfYWRkciA+PiA0NCkgJiAweEYpOworCVJFR19TRVQoRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0xTQiwgMCwKKwkJCURDTl9WTV9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9MU0IsIChwYV9jb25maWctPnBhZ2VfdGFibGVfZGVmYXVsdF9wYWdlX2FkZHIgPj4gMTIpICYgMHhGRkZGRkZGRik7CisKIAlpZiAocGFfY29uZmlnLT5nYXJ0X2NvbmZpZy5wYWdlX3RhYmxlX3N0YXJ0X2FkZHIgIT0gcGFfY29uZmlnLT5nYXJ0X2NvbmZpZy5wYWdlX3RhYmxlX2VuZF9hZGRyKSB7CiAJCXBoeXNfY29uZmlnLnBhZ2VfdGFibGVfc3RhcnRfYWRkciA9IHBhX2NvbmZpZy0+Z2FydF9jb25maWcucGFnZV90YWJsZV9zdGFydF9hZGRyID4+IDEyOwogCQlwaHlzX2NvbmZpZy5wYWdlX3RhYmxlX2VuZF9hZGRyID0gcGFfY29uZmlnLT5nYXJ0X2NvbmZpZy5wYWdlX3RhYmxlX2VuZF9hZGRyID4+IDEyOwpAQCAtMzk3LDU0ICs0MDMsNjcgQEAgdm9pZCBodWJidWIyX3VwZGF0ZV9kY2h1YihzdHJ1Y3QgaHViYnViICpodWJidWIsCiB7CiAJc3RydWN0IGRjbjIwX2h1YmJ1YiAqaHViYnViMSA9IFRPX0RDTjIwX0hVQkJVQihodWJidWIpOwogCi0JaWYgKFJFRyhEQ0hVQkJVQl9TRFBJRl9GQl9UT1ApID09IDApIHsKLQkJQVNTRVJUKGZhbHNlKTsKLQkJLypzaG91bGQgbm90IGNvbWUgaGVyZSovCisJaWYgKFJFRyhEQ05fVk1fRkJfTE9DQVRJT05fVE9QKSA9PSAwKQogCQlyZXR1cm47Ci0JfQotCS8qIFRPRE86IHBvcnQgY29kZSBmcm9tIGRhbDIgKi8KKwogCXN3aXRjaCAoZGhfZGF0YS0+ZmJfbW9kZSkgewogCWNhc2UgRlJBTUVfQlVGRkVSX01PREVfWkZCX09OTFk6CiAJCS8qRm9yIFpGQiBjYXNlIG5lZWQgdG8gcHV0IERDSFVCIEZCIEJBU0UgYW5kIFRPUCB1cHNpZGUgZG93biB0byBpbmRpY2F0ZSBaRkIgbW9kZSovCi0JCVJFR19VUERBVEUoRENIVUJCVUJfU0RQSUZfRkJfVE9QLAotCQkJCVNEUElGX0ZCX1RPUCwgMCk7CisJCVJFR19VUERBVEUoRENOX1ZNX0ZCX0xPQ0FUSU9OX1RPUCwKKwkJCQlGQl9UT1AsIDApOwogCi0JCVJFR19VUERBVEUoRENIVUJCVUJfU0RQSUZfRkJfQkFTRSwKLQkJCQlTRFBJRl9GQl9CQVNFLCAweDBGRkZGKTsKKwkJUkVHX1VQREFURShEQ05fVk1fRkJfTE9DQVRJT05fQkFTRSwKKwkJCQlGQl9CQVNFLCAweEZGRkZGRik7CiAKLQkJUkVHX1VQREFURShEQ0hVQkJVQl9TRFBJRl9BR1BfQkFTRSwKLQkJCQlTRFBJRl9BR1BfQkFTRSwgZGhfZGF0YS0+emZiX3BoeXNfYWRkcl9iYXNlID4+IDIyKTsKKwkJLypUaGlzIGZpZWxkIGRlZmluZXMgdGhlIDI0IE1TQnMsIGJpdHMgWzQ3OjI0XSBvZiB0aGUgNDggYml0IEFHUCBCYXNlKi8KKwkJUkVHX1VQREFURShEQ05fVk1fQUdQX0JBU0UsCisJCQkJQUdQX0JBU0UsIGRoX2RhdGEtPnpmYl9waHlzX2FkZHJfYmFzZSA+PiAyNCk7CiAKLQkJUkVHX1VQREFURShEQ0hVQkJVQl9TRFBJRl9BR1BfQk9ULAotCQkJCVNEUElGX0FHUF9CT1QsIGRoX2RhdGEtPnpmYl9tY19iYXNlX2FkZHIgPj4gMjIpOworCQkvKlRoaXMgZmllbGQgZGVmaW5lcyB0aGUgYm90dG9tIHJhbmdlIG9mIHRoZSBBR1AgYXBlcnR1cmUgYW5kIHJlcHJlc2VudHMgdGhlIDI0Ki8KKwkJLypNU0JzLCBiaXRzIFs0NzoyNF0gb2YgdGhlIDQ4IGFkZHJlc3MgYml0cyovCisJCVJFR19VUERBVEUoRENOX1ZNX0FHUF9CT1QsCisJCQkJQUdQX0JPVCwgZGhfZGF0YS0+emZiX21jX2Jhc2VfYWRkciA+PiAyNCk7CiAKLQkJUkVHX1VQREFURShEQ0hVQkJVQl9TRFBJRl9BR1BfVE9QLAotCQkJCVNEUElGX0FHUF9UT1AsIChkaF9kYXRhLT56ZmJfbWNfYmFzZV9hZGRyICsKLQkJCQkJCWRoX2RhdGEtPnpmYl9zaXplX2luX2J5dGUgLSAxKSA+PiAyMik7CisJCS8qVGhpcyBmaWVsZCBkZWZpbmVzIHRoZSB0b3AgcmFuZ2Ugb2YgdGhlIEFHUCBhcGVydHVyZSBhbmQgcmVwcmVzZW50cyB0aGUgMjQqLworCQkvKk1TQnMsIGJpdHMgWzQ3OjI0XSBvZiB0aGUgNDggYWRkcmVzcyBiaXRzKi8KKwkJUkVHX1VQREFURShEQ05fVk1fQUdQX1RPUCwKKwkJCQlBR1BfVE9QLCAoZGhfZGF0YS0+emZiX21jX2Jhc2VfYWRkciArCisJCQkJCQlkaF9kYXRhLT56ZmJfc2l6ZV9pbl9ieXRlIC0gMSkgPj4gMjQpOwogCQlicmVhazsKIAljYXNlIEZSQU1FX0JVRkZFUl9NT0RFX01JWEVEX1pGQl9BTkRfTE9DQUw6CiAJCS8qU2hvdWxkIG5vdCB0b3VjaCBGQiBMT0NBVElPTiAoZG9uZSBieSBWQklPUyBvbiBBc2ljSW5pdCB0YWJsZSkqLwogCi0JCVJFR19VUERBVEUoRENIVUJCVUJfU0RQSUZfQUdQX0JBU0UsCi0JCQkJU0RQSUZfQUdQX0JBU0UsIGRoX2RhdGEtPnpmYl9waHlzX2FkZHJfYmFzZSA+PiAyMik7CisJCS8qVGhpcyBmaWVsZCBkZWZpbmVzIHRoZSAyNCBNU0JzLCBiaXRzIFs0NzoyNF0gb2YgdGhlIDQ4IGJpdCBBR1AgQmFzZSovCisJCVJFR19VUERBVEUoRENOX1ZNX0FHUF9CQVNFLAorCQkJCUFHUF9CQVNFLCBkaF9kYXRhLT56ZmJfcGh5c19hZGRyX2Jhc2UgPj4gMjQpOwogCi0JCVJFR19VUERBVEUoRENIVUJCVUJfU0RQSUZfQUdQX0JPVCwKLQkJCQlTRFBJRl9BR1BfQk9ULCBkaF9kYXRhLT56ZmJfbWNfYmFzZV9hZGRyID4+IDIyKTsKKwkJLypUaGlzIGZpZWxkIGRlZmluZXMgdGhlIGJvdHRvbSByYW5nZSBvZiB0aGUgQUdQIGFwZXJ0dXJlIGFuZCByZXByZXNlbnRzIHRoZSAyNCovCisJCS8qTVNCcywgYml0cyBbNDc6MjRdIG9mIHRoZSA0OCBhZGRyZXNzIGJpdHMqLworCQlSRUdfVVBEQVRFKERDTl9WTV9BR1BfQk9ULAorCQkJCUFHUF9CT1QsIGRoX2RhdGEtPnpmYl9tY19iYXNlX2FkZHIgPj4gMjQpOwogCi0JCVJFR19VUERBVEUoRENIVUJCVUJfU0RQSUZfQUdQX1RPUCwKLQkJCQlTRFBJRl9BR1BfVE9QLCAoZGhfZGF0YS0+emZiX21jX2Jhc2VfYWRkciArCi0JCQkJCQlkaF9kYXRhLT56ZmJfc2l6ZV9pbl9ieXRlIC0gMSkgPj4gMjIpOworCQkvKlRoaXMgZmllbGQgZGVmaW5lcyB0aGUgdG9wIHJhbmdlIG9mIHRoZSBBR1AgYXBlcnR1cmUgYW5kIHJlcHJlc2VudHMgdGhlIDI0Ki8KKwkJLypNU0JzLCBiaXRzIFs0NzoyNF0gb2YgdGhlIDQ4IGFkZHJlc3MgYml0cyovCisJCVJFR19VUERBVEUoRENOX1ZNX0FHUF9UT1AsCisJCQkJQUdQX1RPUCwgKGRoX2RhdGEtPnpmYl9tY19iYXNlX2FkZHIgKworCQkJCQkJZGhfZGF0YS0+emZiX3NpemVfaW5fYnl0ZSAtIDEpID4+IDI0KTsKIAkJYnJlYWs7CiAJY2FzZSBGUkFNRV9CVUZGRVJfTU9ERV9MT0NBTF9PTkxZOgotCQkvKlNob3VsZCBub3QgdG91Y2ggRkIgTE9DQVRJT04gKGRvbmUgYnkgVkJJT1Mgb24gQXNpY0luaXQgdGFibGUpKi8KLQkJUkVHX1VQREFURShEQ0hVQkJVQl9TRFBJRl9BR1BfQkFTRSwKLQkJCQlTRFBJRl9BR1BfQkFTRSwgMCk7CisJCS8qU2hvdWxkIG5vdCB0b3VjaCBGQiBMT0NBVElPTiAoc2hvdWxkIGJlIGRvbmUgYnkgVkJJT1MpKi8KIAotCQlSRUdfVVBEQVRFKERDSFVCQlVCX1NEUElGX0FHUF9CT1QsCi0JCQkJU0RQSUZfQUdQX0JPVCwgMFgwM0ZGRkYpOworCQkvKlRoaXMgZmllbGQgZGVmaW5lcyB0aGUgMjQgTVNCcywgYml0cyBbNDc6MjRdIG9mIHRoZSA0OCBiaXQgQUdQIEJhc2UqLworCQlSRUdfVVBEQVRFKERDTl9WTV9BR1BfQkFTRSwKKwkJCQlBR1BfQkFTRSwgMCk7CiAKLQkJUkVHX1VQREFURShEQ0hVQkJVQl9TRFBJRl9BR1BfVE9QLAotCQkJCVNEUElGX0FHUF9UT1AsIDApOworCQkvKlRoaXMgZmllbGQgZGVmaW5lcyB0aGUgYm90dG9tIHJhbmdlIG9mIHRoZSBBR1AgYXBlcnR1cmUgYW5kIHJlcHJlc2VudHMgdGhlIDI0Ki8KKwkJLypNU0JzLCBiaXRzIFs0NzoyNF0gb2YgdGhlIDQ4IGFkZHJlc3MgYml0cyovCisJCVJFR19VUERBVEUoRENOX1ZNX0FHUF9CT1QsCisJCQkJQUdQX0JPVCwgMHhGRkZGRkYpOworCisJCS8qVGhpcyBmaWVsZCBkZWZpbmVzIHRoZSB0b3AgcmFuZ2Ugb2YgdGhlIEFHUCBhcGVydHVyZSBhbmQgcmVwcmVzZW50cyB0aGUgMjQqLworCQkvKk1TQnMsIGJpdHMgWzQ3OjI0XSBvZiB0aGUgNDggYWRkcmVzcyBiaXRzKi8KKwkJUkVHX1VQREFURShEQ05fVk1fQUdQX1RPUCwKKwkJCQlBR1BfVE9QLCAwKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJYnJlYWs7CkBAIC01NTMsNiArNTcyLDE2IEBAIHN0YXRpYyB2b2lkIGh1YmJ1YjJfcHJvZ3JhbV93YXRlcm1hcmtzKAogCSAqLwogCWh1YmJ1YjFfcHJvZ3JhbV91cmdlbnRfd2F0ZXJtYXJrcyhodWJidWIsIHdhdGVybWFya3MsIHJlZmNsa19taHosIHNhZmVfdG9fbG93ZXIpOwogCWh1YmJ1YjFfcHJvZ3JhbV9zdHV0dGVyX3dhdGVybWFya3MoaHViYnViLCB3YXRlcm1hcmtzLCByZWZjbGtfbWh6LCBzYWZlX3RvX2xvd2VyKTsKKworCS8qCisJICogVGhlcmUncyBhIHNwZWNpYWwgY2FzZSB3aGVuIGdvaW5nIGZyb20gcC1zdGF0ZSBzdXBwb3J0IHRvIHAtc3RhdGUgdW5zdXBwb3J0ZWQKKwkgKiBoZXJlIHdlIGFyZSBnb2luZyB0byBMT1dFUiB3YXRlcm1hcmtzIHRvIGdvIHRvIGR1bW15IHAtc3RhdGUgb25seSwgYnV0IHRoaXMgaGFzCisJICogdG8gYmUgZG9uZSBwcmVwYXJlX2JhbmR3aWR0aCwgbm90IG9wdGltaXplCisJICovCisJaWYgKGh1YmJ1YjEtPmJhc2UuY3R4LT5kYy0+Y2xrX21nci0+Y2xrcy5wcmV2X3Bfc3RhdGVfY2hhbmdlX3N1cHBvcnQgPT0gdHJ1ZSAmJgorCQlodWJidWIxLT5iYXNlLmN0eC0+ZGMtPmNsa19tZ3ItPmNsa3MucF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydCA9PSBmYWxzZSkKKwkJc2FmZV90b19sb3dlciA9IHRydWU7CisKIAlodWJidWIxX3Byb2dyYW1fcHN0YXRlX3dhdGVybWFya3MoaHViYnViLCB3YXRlcm1hcmtzLCByZWZjbGtfbWh6LCBzYWZlX3RvX2xvd2VyKTsKIAogCVJFR19TRVQoRENIVUJCVUJfQVJCX1NBVF9MRVZFTCwgMCwKQEAgLTU3MSw3ICs2MDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGh1YmJ1Yl9mdW5jcyBodWJidWIyX2Z1bmNzID0gewogCS5nZXRfZGNjX2NvbXByZXNzaW9uX2NhcCA9IGh1YmJ1YjJfZ2V0X2RjY19jb21wcmVzc2lvbl9jYXAsCiAJLndtX3JlYWRfc3RhdGUgPSBodWJidWIyX3dtX3JlYWRfc3RhdGUsCiAJLmdldF9kY2h1Yl9yZWZfZnJlcSA9IGh1YmJ1YjJfZ2V0X2RjaHViX3JlZl9mcmVxLAotCS5wcm9ncmFtX3dhdGVybWFya3MgPSBodWJidWIyX3Byb2dyYW1fd2F0ZXJtYXJrcywKKwkucHJvZ3JhbV93YXRlcm1hcmtzID0gaHViYnViMl9wcm9ncmFtX3dhdGVybWFya3MKIH07CiAKIHZvaWQgaHViYnViMl9jb25zdHJ1Y3Qoc3RydWN0IGRjbjIwX2h1YmJ1YiAqaHViYnViLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h1YmJ1Yi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h1YmJ1Yi5oCmluZGV4IGE3YjZjYTIuLjYyNjExN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9odWJidWIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaHViYnViLmgKQEAgLTI5LDEzICsyOSw4IEBACiAjaW5jbHVkZSAiZGNuMTAvZGNuMTBfaHViYnViLmgiCiAjaW5jbHVkZSAiZGNuMjBfdm1pZC5oIgogCi0jZGVmaW5lIFRPX0RDTjIwX0hVQkJVQihodWJidWIpXAotCWNvbnRhaW5lcl9vZihodWJidWIsIHN0cnVjdCBkY24yMF9odWJidWIsIGJhc2UpCi0KLSNkZWZpbmUgSFVCQlVCX1JFR19MSVNUX0RDTjIwKGlkKVwKKyNkZWZpbmUgSFVCQlVCX1JFR19MSVNUX0RDTjIwX0NPTU1PTigpXAogCUhVQkJVQl9SRUdfTElTVF9EQ05fQ09NTU9OKCksIFwKLQlIVUJCVUJfVk1fUkVHX0xJU1QoKSwgXAotCUhVQkJVQl9TUl9XQVRFUk1BUktfUkVHX0xJU1QoKSwgXAogCVNSKERDSFVCQlVCX0NSQ19DVFJMKSwgXAogCVNSKERDTl9WTV9GQl9MT0NBVElPTl9CQVNFKSxcCiAJU1IoRENOX1ZNX0ZCX0xPQ0FUSU9OX1RPUCksXApAQCAtNDQsNiArMzksMjcgQEAKIAlTUihEQ05fVk1fQUdQX1RPUCksXAogCVNSKERDTl9WTV9BR1BfQkFTRSkKIAorI2RlZmluZSBUT19EQ04yMF9IVUJCVUIoaHViYnViKVwKKwljb250YWluZXJfb2YoaHViYnViLCBzdHJ1Y3QgZGNuMjBfaHViYnViLCBiYXNlKQorCisjZGVmaW5lIEhVQkJVQl9SRUdfTElTVF9EQ04yMF9DT01NT04oKVwKKwlIVUJCVUJfUkVHX0xJU1RfRENOX0NPTU1PTigpLCBcCisJU1IoRENIVUJCVUJfQ1JDX0NUUkwpLCBcCisJU1IoRENOX1ZNX0ZCX0xPQ0FUSU9OX0JBU0UpLFwKKwlTUihEQ05fVk1fRkJfTE9DQVRJT05fVE9QKSxcCisJU1IoRENOX1ZNX0ZCX09GRlNFVCksXAorCVNSKERDTl9WTV9BR1BfQk9UKSxcCisJU1IoRENOX1ZNX0FHUF9UT1ApLFwKKwlTUihEQ05fVk1fQUdQX0JBU0UpCisKKyNkZWZpbmUgSFVCQlVCX1JFR19MSVNUX0RDTjIwKGlkKVwKKwlIVUJCVUJfUkVHX0xJU1RfRENOMjBfQ09NTU9OKCksIFwKKwlIVUJCVUJfU1JfV0FURVJNQVJLX1JFR19MSVNUKCksIFwKKwlIVUJCVUJfVk1fUkVHX0xJU1QoKSxcCisJU1IoRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX01TQiksXAorCVNSKERDTl9WTV9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9MU0IpCisKKwogI2RlZmluZSBIVUJCVUJfTUFTS19TSF9MSVNUX0RDTjIwKG1hc2tfc2gpXAogCUhVQkJVQl9NQVNLX1NIX0xJU1RfRENOX0NPTU1PTihtYXNrX3NoKSwgXAogCUhVQkJVQl9NQVNLX1NIX0xJU1RfU1RVVFRFUihtYXNrX3NoKSwgXApAQCAtNTMsNyArNjksOSBAQAogCUhVQkJVQl9TRihEQ05fVk1fRkJfT0ZGU0VULCBGQl9PRkZTRVQsIG1hc2tfc2gpLCBcCiAJSFVCQlVCX1NGKERDTl9WTV9BR1BfQk9ULCBBR1BfQk9ULCBtYXNrX3NoKSwgXAogCUhVQkJVQl9TRihEQ05fVk1fQUdQX1RPUCwgQUdQX1RPUCwgbWFza19zaCksIFwKLQlIVUJCVUJfU0YoRENOX1ZNX0FHUF9CQVNFLCBBR1BfQkFTRSwgbWFza19zaCkKKwlIVUJCVUJfU0YoRENOX1ZNX0FHUF9CQVNFLCBBR1BfQkFTRSwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX01TQiwgRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX01TQiwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0xTQiwgRENOX1ZNX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0xTQiwgbWFza19zaCkKIAogc3RydWN0IGRjbjIwX2h1YmJ1YiB7CiAJc3RydWN0IGh1YmJ1YiBiYXNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h1YnAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9odWJwLmMKaW5kZXggZDNmN2RkMy4uNjllMmFhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h1YnAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaHVicC5jCkBAIC00MCw4MSArNDAsNiBAQAogI2RlZmluZSBGTihyZWdfbmFtZSwgZmllbGRfbmFtZSkgXAogCWh1YnAyLT5odWJwX3NoaWZ0LT5maWVsZF9uYW1lLCBodWJwMi0+aHVicF9tYXNrLT5maWVsZF9uYW1lCiAKLXZvaWQgaHVicDJfdXBkYXRlX2RjaHViKAotCXN0cnVjdCBodWJwICpodWJwLAotCXN0cnVjdCBkY2h1Yl9pbml0X2RhdGEgKmRoX2RhdGEpCi17Ci0Jc3RydWN0IGRjbjIwX2h1YnAgKmh1YnAyID0gVE9fRENOMjBfSFVCUChodWJwKTsKLQlpZiAoUkVHKERDTl9WTV9GQl9MT0NBVElPTl9UT1ApID09IDApCi0JCXJldHVybjsKLQotCXN3aXRjaCAoZGhfZGF0YS0+ZmJfbW9kZSkgewotCWNhc2UgRlJBTUVfQlVGRkVSX01PREVfWkZCX09OTFk6Ci0JCS8qRm9yIFpGQiBjYXNlIG5lZWQgdG8gcHV0IERDSFVCIEZCIEJBU0UgYW5kIFRPUCB1cHNpZGUgZG93biB0byBpbmRpY2F0ZSBaRkIgbW9kZSovCi0JCVJFR19VUERBVEUoRENOX1ZNX0ZCX0xPQ0FUSU9OX1RPUCwKLQkJCQlGQl9UT1AsIDApOwotCi0JCVJFR19VUERBVEUoRENOX1ZNX0ZCX0xPQ0FUSU9OX0JBU0UsCi0JCQkJRkJfQkFTRSwgMHhGRkZGRkYpOwotCi0JCS8qVGhpcyBmaWVsZCBkZWZpbmVzIHRoZSAyNCBNU0JzLCBiaXRzIFs0NzoyNF0gb2YgdGhlIDQ4IGJpdCBBR1AgQmFzZSovCi0JCVJFR19VUERBVEUoRENOX1ZNX0FHUF9CQVNFLAotCQkJCUFHUF9CQVNFLCBkaF9kYXRhLT56ZmJfcGh5c19hZGRyX2Jhc2UgPj4gMjQpOwotCi0JCS8qVGhpcyBmaWVsZCBkZWZpbmVzIHRoZSBib3R0b20gcmFuZ2Ugb2YgdGhlIEFHUCBhcGVydHVyZSBhbmQgcmVwcmVzZW50cyB0aGUgMjQqLwotCQkvKk1TQnMsIGJpdHMgWzQ3OjI0XSBvZiB0aGUgNDggYWRkcmVzcyBiaXRzKi8KLQkJUkVHX1VQREFURShEQ05fVk1fQUdQX0JPVCwKLQkJCQlBR1BfQk9ULCBkaF9kYXRhLT56ZmJfbWNfYmFzZV9hZGRyID4+IDI0KTsKLQotCQkvKlRoaXMgZmllbGQgZGVmaW5lcyB0aGUgdG9wIHJhbmdlIG9mIHRoZSBBR1AgYXBlcnR1cmUgYW5kIHJlcHJlc2VudHMgdGhlIDI0Ki8KLQkJLypNU0JzLCBiaXRzIFs0NzoyNF0gb2YgdGhlIDQ4IGFkZHJlc3MgYml0cyovCi0JCVJFR19VUERBVEUoRENOX1ZNX0FHUF9UT1AsCi0JCQkJQUdQX1RPUCwgKGRoX2RhdGEtPnpmYl9tY19iYXNlX2FkZHIgKwotCQkJCQkJZGhfZGF0YS0+emZiX3NpemVfaW5fYnl0ZSAtIDEpID4+IDI0KTsKLQkJYnJlYWs7Ci0JY2FzZSBGUkFNRV9CVUZGRVJfTU9ERV9NSVhFRF9aRkJfQU5EX0xPQ0FMOgotCQkvKlNob3VsZCBub3QgdG91Y2ggRkIgTE9DQVRJT04gKGRvbmUgYnkgVkJJT1Mgb24gQXNpY0luaXQgdGFibGUpKi8KLQotCQkvKlRoaXMgZmllbGQgZGVmaW5lcyB0aGUgMjQgTVNCcywgYml0cyBbNDc6MjRdIG9mIHRoZSA0OCBiaXQgQUdQIEJhc2UqLwotCQlSRUdfVVBEQVRFKERDTl9WTV9BR1BfQkFTRSwKLQkJCQlBR1BfQkFTRSwgZGhfZGF0YS0+emZiX3BoeXNfYWRkcl9iYXNlID4+IDI0KTsKLQotCQkvKlRoaXMgZmllbGQgZGVmaW5lcyB0aGUgYm90dG9tIHJhbmdlIG9mIHRoZSBBR1AgYXBlcnR1cmUgYW5kIHJlcHJlc2VudHMgdGhlIDI0Ki8KLQkJLypNU0JzLCBiaXRzIFs0NzoyNF0gb2YgdGhlIDQ4IGFkZHJlc3MgYml0cyovCi0JCVJFR19VUERBVEUoRENOX1ZNX0FHUF9CT1QsCi0JCQkJQUdQX0JPVCwgZGhfZGF0YS0+emZiX21jX2Jhc2VfYWRkciA+PiAyNCk7Ci0KLQkJLypUaGlzIGZpZWxkIGRlZmluZXMgdGhlIHRvcCByYW5nZSBvZiB0aGUgQUdQIGFwZXJ0dXJlIGFuZCByZXByZXNlbnRzIHRoZSAyNCovCi0JCS8qTVNCcywgYml0cyBbNDc6MjRdIG9mIHRoZSA0OCBhZGRyZXNzIGJpdHMqLwotCQlSRUdfVVBEQVRFKERDTl9WTV9BR1BfVE9QLAotCQkJCUFHUF9UT1AsIChkaF9kYXRhLT56ZmJfbWNfYmFzZV9hZGRyICsKLQkJCQkJCWRoX2RhdGEtPnpmYl9zaXplX2luX2J5dGUgLSAxKSA+PiAyNCk7Ci0JCWJyZWFrOwotCWNhc2UgRlJBTUVfQlVGRkVSX01PREVfTE9DQUxfT05MWToKLQkJLypTaG91bGQgbm90IHRvdWNoIEZCIExPQ0FUSU9OIChzaG91bGQgYmUgZG9uZSBieSBWQklPUykqLwotCi0JCS8qVGhpcyBmaWVsZCBkZWZpbmVzIHRoZSAyNCBNU0JzLCBiaXRzIFs0NzoyNF0gb2YgdGhlIDQ4IGJpdCBBR1AgQmFzZSovCi0JCVJFR19VUERBVEUoRENOX1ZNX0FHUF9CQVNFLAotCQkJCUFHUF9CQVNFLCAwKTsKLQotCQkvKlRoaXMgZmllbGQgZGVmaW5lcyB0aGUgYm90dG9tIHJhbmdlIG9mIHRoZSBBR1AgYXBlcnR1cmUgYW5kIHJlcHJlc2VudHMgdGhlIDI0Ki8KLQkJLypNU0JzLCBiaXRzIFs0NzoyNF0gb2YgdGhlIDQ4IGFkZHJlc3MgYml0cyovCi0JCVJFR19VUERBVEUoRENOX1ZNX0FHUF9CT1QsCi0JCQkJQUdQX0JPVCwgMHhGRkZGRkYpOwotCi0JCS8qVGhpcyBmaWVsZCBkZWZpbmVzIHRoZSB0b3AgcmFuZ2Ugb2YgdGhlIEFHUCBhcGVydHVyZSBhbmQgcmVwcmVzZW50cyB0aGUgMjQqLwotCQkvKk1TQnMsIGJpdHMgWzQ3OjI0XSBvZiB0aGUgNDggYWRkcmVzcyBiaXRzKi8KLQkJUkVHX1VQREFURShEQ05fVk1fQUdQX1RPUCwKLQkJCQlBR1BfVE9QLCAwKTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfQotCi0JZGhfZGF0YS0+ZGNodWJfaW5pdGlhbHppZWQgPSB0cnVlOwotCWRoX2RhdGEtPmRjaHViX2luZm9fdmFsaWQgPSBmYWxzZTsKLX0KLQogdm9pZCBodWJwMl9zZXRfdm1fc3lzdGVtX2FwZXJ0dXJlX3NldHRpbmdzKHN0cnVjdCBodWJwICpodWJwLAogCQlzdHJ1Y3Qgdm1fc3lzdGVtX2FwZXJ0dXJlX3BhcmFtICphcHQpCiB7CkBAIC0xNTYsNyArODEsODUgQEAgdm9pZCBodWJwMl9wcm9ncmFtX2RlYWRsaW5lKAogewogCXN0cnVjdCBkY24yMF9odWJwICpodWJwMiA9IFRPX0RDTjIwX0hVQlAoaHVicCk7CiAKLQlodWJwMV9wcm9ncmFtX2RlYWRsaW5lKGh1YnAsIGRsZ19hdHRyLCB0dHVfYXR0cik7CisJLyogRExHIC0gUGVyIGh1YnAgKi8KKwlSRUdfU0VUXzIoQkxBTktfT0ZGU0VUXzAsIDAsCisJCVJFRkNZQ19IX0JMQU5LX0VORCwgZGxnX2F0dHItPnJlZmN5Y19oX2JsYW5rX2VuZCwKKwkJRExHX1ZfQkxBTktfRU5ELCBkbGdfYXR0ci0+ZGxnX3ZibGFua19lbmQpOworCisJUkVHX1NFVChCTEFOS19PRkZTRVRfMSwgMCwKKwkJTUlOX0RTVF9ZX05FWFRfU1RBUlQsIGRsZ19hdHRyLT5taW5fZHN0X3lfbmV4dF9zdGFydCk7CisKKwlSRUdfU0VUKERTVF9ESU1FTlNJT05TLCAwLAorCQlSRUZDWUNfUEVSX0hUT1RBTCwgZGxnX2F0dHItPnJlZmN5Y19wZXJfaHRvdGFsKTsKKworCVJFR19TRVRfMihEU1RfQUZURVJfU0NBTEVSLCAwLAorCQlSRUZDWUNfWF9BRlRFUl9TQ0FMRVIsIGRsZ19hdHRyLT5yZWZjeWNfeF9hZnRlcl9zY2FsZXIsCisJCURTVF9ZX0FGVEVSX1NDQUxFUiwgZGxnX2F0dHItPmRzdF95X2FmdGVyX3NjYWxlcik7CisKKwlSRUdfU0VUKFJFRl9GUkVRX1RPX1BJWF9GUkVRLCAwLAorCQlSRUZfRlJFUV9UT19QSVhfRlJFUSwgZGxnX2F0dHItPnJlZl9mcmVxX3RvX3BpeF9mcmVxKTsKKworCS8qIERMRyAtIFBlciBsdW1hL2Nocm9tYSAqLworCVJFR19TRVQoVkJMQU5LX1BBUkFNRVRFUlNfMSwgMCwKKwkJUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0wsIGRsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfbCk7CisKKwlpZiAoUkVHKE5PTV9QQVJBTUVURVJTXzApKQorCQlSRUdfU0VUKE5PTV9QQVJBTUVURVJTXzAsIDAsCisJCQlEU1RfWV9QRVJfUFRFX1JPV19OT01fTCwgZGxnX2F0dHItPmRzdF95X3Blcl9wdGVfcm93X25vbV9sKTsKKworCWlmIChSRUcoTk9NX1BBUkFNRVRFUlNfMSkpCisJCVJFR19TRVQoTk9NX1BBUkFNRVRFUlNfMSwgMCwKKwkJCVJFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9MLCBkbGdfYXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2wpOworCisJUkVHX1NFVChOT01fUEFSQU1FVEVSU180LCAwLAorCQlEU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0wsIGRsZ19hdHRyLT5kc3RfeV9wZXJfbWV0YV9yb3dfbm9tX2wpOworCisJUkVHX1NFVChOT01fUEFSQU1FVEVSU181LCAwLAorCQlSRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9NX0wsIGRsZ19hdHRyLT5yZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2wpOworCisJUkVHX1NFVF8yKFBFUl9MSU5FX0RFTElWRVJZLCAwLAorCQlSRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfTCwgZGxnX2F0dHItPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9sLAorCQlSRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfQywgZGxnX2F0dHItPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9jKTsKKworCVJFR19TRVQoVkJMQU5LX1BBUkFNRVRFUlNfMiwgMCwKKwkJUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0MsIGRsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfYyk7CisKKwlpZiAoUkVHKE5PTV9QQVJBTUVURVJTXzIpKQorCQlSRUdfU0VUKE5PTV9QQVJBTUVURVJTXzIsIDAsCisJCQlEU1RfWV9QRVJfUFRFX1JPV19OT01fQywgZGxnX2F0dHItPmRzdF95X3Blcl9wdGVfcm93X25vbV9jKTsKKworCWlmIChSRUcoTk9NX1BBUkFNRVRFUlNfMykpCisJCVJFR19TRVQoTk9NX1BBUkFNRVRFUlNfMywgMCwKKwkJCVJFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9DLCBkbGdfYXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2MpOworCisJUkVHX1NFVChOT01fUEFSQU1FVEVSU182LCAwLAorCQlEU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0MsIGRsZ19hdHRyLT5kc3RfeV9wZXJfbWV0YV9yb3dfbm9tX2MpOworCisJUkVHX1NFVChOT01fUEFSQU1FVEVSU183LCAwLAorCQlSRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9NX0MsIGRsZ19hdHRyLT5yZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2MpOworCisJLyogVFRVIC0gcGVyIGh1YnAgKi8KKwlSRUdfU0VUXzIoRENOX1RUVV9RT1NfV00sIDAsCisJCVFvU19MRVZFTF9MT1dfV00sIHR0dV9hdHRyLT5xb3NfbGV2ZWxfbG93X3dtLAorCQlRb1NfTEVWRUxfSElHSF9XTSwgdHR1X2F0dHItPnFvc19sZXZlbF9oaWdoX3dtKTsKKworCS8qIFRUVSAtIHBlciBsdW1hL2Nocm9tYSAqLworCS8qIEFzc3VtZWQgc3VyZjAgaXMgbHVtYSBhbmQgMSBpcyBjaHJvbWEgKi8KKworCVJFR19TRVRfMyhEQ05fU1VSRjBfVFRVX0NOVEwwLCAwLAorCQlSRUZDWUNfUEVSX1JFUV9ERUxJVkVSWSwgdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2wsCisJCVFvU19MRVZFTF9GSVhFRCwgdHR1X2F0dHItPnFvc19sZXZlbF9maXhlZF9sLAorCQlRb1NfUkFNUF9ESVNBQkxFLCB0dHVfYXR0ci0+cW9zX3JhbXBfZGlzYWJsZV9sKTsKKworCVJFR19TRVRfMyhEQ05fU1VSRjFfVFRVX0NOVEwwLCAwLAorCQlSRUZDWUNfUEVSX1JFUV9ERUxJVkVSWSwgdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2MsCisJCVFvU19MRVZFTF9GSVhFRCwgdHR1X2F0dHItPnFvc19sZXZlbF9maXhlZF9jLAorCQlRb1NfUkFNUF9ESVNBQkxFLCB0dHVfYXR0ci0+cW9zX3JhbXBfZGlzYWJsZV9jKTsKKworCVJFR19TRVRfMyhEQ05fQ1VSMF9UVFVfQ05UTDAsIDAsCisJCVJFRkNZQ19QRVJfUkVRX0RFTElWRVJZLCB0dHVfYXR0ci0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMCwKKwkJUW9TX0xFVkVMX0ZJWEVELCB0dHVfYXR0ci0+cW9zX2xldmVsX2ZpeGVkX2N1cjAsCisJCVFvU19SQU1QX0RJU0FCTEUsIHR0dV9hdHRyLT5xb3NfcmFtcF9kaXNhYmxlX2N1cjApOwogCiAJUkVHX1NFVChGTElQX1BBUkFNRVRFUlNfMSwgMCwKIAkJUkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9MLCBkbGdfYXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfZmxpcF9sKTsKQEAgLTE4NCw2ICsxODcsMzkgQEAgdm9pZCBodWJwMl92cmVhZHlfYXRfb3JfQWZ0ZXJfdnN5bmMoc3RydWN0IGh1YnAgKmh1YnAsCiAJUkVHX1VQREFURShEQ0hVQlBfQ05UTCwgSFVCUF9WUkVBRFlfQVRfT1JfQUZURVJfVlNZTkMsIHZhbHVlKTsKIH0KIAordm9pZCBodWJwMl9wcm9ncmFtX3JlcXVlc3RvcigKKwkJc3RydWN0IGh1YnAgKmh1YnAsCisJCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3JlZ3MpCit7CisJc3RydWN0IGRjbjIwX2h1YnAgKmh1YnAyID0gVE9fRENOMjBfSFVCUChodWJwKTsKKworCVJFR19VUERBVEUoSFVCUFJFVF9DT05UUk9MLAorCQkJREVUX0JVRl9QTEFORTFfQkFTRV9BRERSRVNTLCBycV9yZWdzLT5wbGFuZTFfYmFzZV9hZGRyZXNzKTsKKwlSRUdfU0VUXzQoRENOX0VYUEFOU0lPTl9NT0RFLCAwLAorCQkJRFJRX0VYUEFOU0lPTl9NT0RFLCBycV9yZWdzLT5kcnFfZXhwYW5zaW9uX21vZGUsCisJCQlQUlFfRVhQQU5TSU9OX01PREUsIHJxX3JlZ3MtPnBycV9leHBhbnNpb25fbW9kZSwKKwkJCU1SUV9FWFBBTlNJT05fTU9ERSwgcnFfcmVncy0+bXJxX2V4cGFuc2lvbl9tb2RlLAorCQkJQ1JRX0VYUEFOU0lPTl9NT0RFLCBycV9yZWdzLT5jcnFfZXhwYW5zaW9uX21vZGUpOworCVJFR19TRVRfOChEQ0hVQlBfUkVRX1NJWkVfQ09ORklHLCAwLAorCQlDSFVOS19TSVpFLCBycV9yZWdzLT5ycV9yZWdzX2wuY2h1bmtfc2l6ZSwKKwkJTUlOX0NIVU5LX1NJWkUsIHJxX3JlZ3MtPnJxX3JlZ3NfbC5taW5fY2h1bmtfc2l6ZSwKKwkJTUVUQV9DSFVOS19TSVpFLCBycV9yZWdzLT5ycV9yZWdzX2wubWV0YV9jaHVua19zaXplLAorCQlNSU5fTUVUQV9DSFVOS19TSVpFLCBycV9yZWdzLT5ycV9yZWdzX2wubWluX21ldGFfY2h1bmtfc2l6ZSwKKwkJRFBURV9HUk9VUF9TSVpFLCBycV9yZWdzLT5ycV9yZWdzX2wuZHB0ZV9ncm91cF9zaXplLAorCQlNUFRFX0dST1VQX1NJWkUsIHJxX3JlZ3MtPnJxX3JlZ3NfbC5tcHRlX2dyb3VwX3NpemUsCisJCVNXQVRIX0hFSUdIVCwgcnFfcmVncy0+cnFfcmVnc19sLnN3YXRoX2hlaWdodCwKKwkJUFRFX1JPV19IRUlHSFRfTElORUFSLCBycV9yZWdzLT5ycV9yZWdzX2wucHRlX3Jvd19oZWlnaHRfbGluZWFyKTsKKwlSRUdfU0VUXzgoRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DLCAwLAorCQlDSFVOS19TSVpFX0MsIHJxX3JlZ3MtPnJxX3JlZ3NfYy5jaHVua19zaXplLAorCQlNSU5fQ0hVTktfU0laRV9DLCBycV9yZWdzLT5ycV9yZWdzX2MubWluX2NodW5rX3NpemUsCisJCU1FVEFfQ0hVTktfU0laRV9DLCBycV9yZWdzLT5ycV9yZWdzX2MubWV0YV9jaHVua19zaXplLAorCQlNSU5fTUVUQV9DSFVOS19TSVpFX0MsIHJxX3JlZ3MtPnJxX3JlZ3NfYy5taW5fbWV0YV9jaHVua19zaXplLAorCQlEUFRFX0dST1VQX1NJWkVfQywgcnFfcmVncy0+cnFfcmVnc19jLmRwdGVfZ3JvdXBfc2l6ZSwKKwkJTVBURV9HUk9VUF9TSVpFX0MsIHJxX3JlZ3MtPnJxX3JlZ3NfYy5tcHRlX2dyb3VwX3NpemUsCisJCVNXQVRIX0hFSUdIVF9DLCBycV9yZWdzLT5ycV9yZWdzX2Muc3dhdGhfaGVpZ2h0LAorCQlQVEVfUk9XX0hFSUdIVF9MSU5FQVJfQywgcnFfcmVncy0+cnFfcmVnc19jLnB0ZV9yb3dfaGVpZ2h0X2xpbmVhcik7Cit9CisKIHN0YXRpYyB2b2lkIGh1YnAyX3NldHVwKAogCQlzdHJ1Y3QgaHVicCAqaHVicCwKIAkJc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGxnX3JlZ3Nfc3QgKmRsZ19hdHRyLApAQCAtMTk2LDcgKzIzMiw3IEBAIHN0YXRpYyB2b2lkIGh1YnAyX3NldHVwKAogCSAqLwogCiAJaHVicDJfdnJlYWR5X2F0X29yX0FmdGVyX3ZzeW5jKGh1YnAsIHBpcGVfZGVzdCk7Ci0JaHVicDFfcHJvZ3JhbV9yZXF1ZXN0b3IoaHVicCwgcnFfcmVncyk7CisJaHVicDJfcHJvZ3JhbV9yZXF1ZXN0b3IoaHVicCwgcnFfcmVncyk7CiAJaHVicDJfcHJvZ3JhbV9kZWFkbGluZShodWJwLCBkbGdfYXR0ciwgdHR1X2F0dHIpOwogCiB9CkBAIC0yODMsMTEgKzMxOSwyMDUgQEAgc3RhdGljIHZvaWQgaHVicDJfcHJvZ3JhbV90aWxpbmcoCiAJCQlQSVBFX0FMSUdORUQsIDApOwogfQogCit2b2lkIGh1YnAyX3Byb2dyYW1fc2l6ZSgKKwlzdHJ1Y3QgaHVicCAqaHVicCwKKwllbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdCwKKwljb25zdCBzdHJ1Y3QgcGxhbmVfc2l6ZSAqcGxhbmVfc2l6ZSwKKwlzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtICpkY2MpCit7CisJc3RydWN0IGRjbjIwX2h1YnAgKmh1YnAyID0gVE9fRENOMjBfSFVCUChodWJwKTsKKwl1aW50MzJfdCBwaXRjaCwgbWV0YV9waXRjaCwgcGl0Y2hfYywgbWV0YV9waXRjaF9jOworCWJvb2wgdXNlX3BpdGNoX2MgPSBmYWxzZTsKKworCS8qIFByb2dyYW0gZGF0YSBhbmQgbWV0YSBzdXJmYWNlIHBpdGNoIChjYWxjdWxhdGlvbiBmcm9tIGFkZHJsaWIpCisJICogNDQ0IG9yIDQyMCBsdW1hCisJICovCisJdXNlX3BpdGNoX2MgPSBmb3JtYXQgPj0gU1VSRkFDRV9QSVhFTF9GT1JNQVRfVklERU9fQkVHSU4KKwkJJiYgZm9ybWF0IDwgU1VSRkFDRV9QSVhFTF9GT1JNQVRfU1VCU0FNUExFX0VORDsKKwlpZiAodXNlX3BpdGNoX2MpIHsKKwkJQVNTRVJUKHBsYW5lX3NpemUtPmNocm9tYV9waXRjaCAhPSAwKTsKKwkJLyogQ2hyb21hIHBpdGNoIHplcm8gY2FuIGNhdXNlIHN5c3RlbSBoYW5nISAqLworCisJCXBpdGNoID0gcGxhbmVfc2l6ZS0+c3VyZmFjZV9waXRjaCAtIDE7CisJCW1ldGFfcGl0Y2ggPSBkY2MtPm1ldGFfcGl0Y2ggLSAxOworCQlwaXRjaF9jID0gcGxhbmVfc2l6ZS0+Y2hyb21hX3BpdGNoIC0gMTsKKwkJbWV0YV9waXRjaF9jID0gZGNjLT5tZXRhX3BpdGNoX2MgLSAxOworCX0gZWxzZSB7CisJCXBpdGNoID0gcGxhbmVfc2l6ZS0+c3VyZmFjZV9waXRjaCAtIDE7CisJCW1ldGFfcGl0Y2ggPSBkY2MtPm1ldGFfcGl0Y2ggLSAxOworCQlwaXRjaF9jID0gMDsKKwkJbWV0YV9waXRjaF9jID0gMDsKKwl9CisKKwlpZiAoIWRjYy0+ZW5hYmxlKSB7CisJCW1ldGFfcGl0Y2ggPSAwOworCQltZXRhX3BpdGNoX2MgPSAwOworCX0KKworCVJFR19VUERBVEVfMihEQ1NVUkZfU1VSRkFDRV9QSVRDSCwKKwkJCVBJVENILCBwaXRjaCwgTUVUQV9QSVRDSCwgbWV0YV9waXRjaCk7CisKKwl1c2VfcGl0Y2hfYyA9IGZvcm1hdCA+PSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19CRUdJTjsKKwlpZiAodXNlX3BpdGNoX2MpCisJCVJFR19VUERBVEVfMihEQ1NVUkZfU1VSRkFDRV9QSVRDSF9DLAorCQkJUElUQ0hfQywgcGl0Y2hfYywgTUVUQV9QSVRDSF9DLCBtZXRhX3BpdGNoX2MpOworfQorCit2b2lkIGh1YnAyX3Byb2dyYW1fcm90YXRpb24oCisJc3RydWN0IGh1YnAgKmh1YnAsCisJZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlvbiwKKwlib29sIGhvcml6b250YWxfbWlycm9yKQoreworCXN0cnVjdCBkY24yMF9odWJwICpodWJwMiA9IFRPX0RDTjIwX0hVQlAoaHVicCk7CisJdWludDMyX3QgbWlycm9yOworCisKKwlpZiAoaG9yaXpvbnRhbF9taXJyb3IpCisJCW1pcnJvciA9IDE7CisJZWxzZQorCQltaXJyb3IgPSAwOworCisJLyogUHJvZ3JhbSByb3RhdGlvbiBhbmdsZSBhbmQgaG9yeiBtaXJyb3IgLSBubyBtaXJyb3IgKi8KKwlpZiAocm90YXRpb24gPT0gUk9UQVRJT05fQU5HTEVfMCkKKwkJUkVHX1VQREFURV8yKERDU1VSRl9TVVJGQUNFX0NPTkZJRywKKwkJCQlST1RBVElPTl9BTkdMRSwgMCwKKwkJCQlIX01JUlJPUl9FTiwgbWlycm9yKTsKKwllbHNlIGlmIChyb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV85MCkKKwkJUkVHX1VQREFURV8yKERDU1VSRl9TVVJGQUNFX0NPTkZJRywKKwkJCQlST1RBVElPTl9BTkdMRSwgMSwKKwkJCQlIX01JUlJPUl9FTiwgbWlycm9yKTsKKwllbHNlIGlmIChyb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV8xODApCisJCVJFR19VUERBVEVfMihEQ1NVUkZfU1VSRkFDRV9DT05GSUcsCisJCQkJUk9UQVRJT05fQU5HTEUsIDIsCisJCQkJSF9NSVJST1JfRU4sIG1pcnJvcik7CisJZWxzZSBpZiAocm90YXRpb24gPT0gUk9UQVRJT05fQU5HTEVfMjcwKQorCQlSRUdfVVBEQVRFXzIoRENTVVJGX1NVUkZBQ0VfQ09ORklHLAorCQkJCVJPVEFUSU9OX0FOR0xFLCAzLAorCQkJCUhfTUlSUk9SX0VOLCBtaXJyb3IpOworfQorCit2b2lkIGh1YnAyX2RjY19jb250cm9sKHN0cnVjdCBodWJwICpodWJwLCBib29sIGVuYWJsZSwKKwkJZW51bSBodWJwX2luZF9ibG9ja19zaXplIGluZGVwZW5kZW50XzY0Yl9ibGtzKQoreworCXVpbnQzMl90IGRjY19lbiA9IGVuYWJsZSA/IDEgOiAwOworCXVpbnQzMl90IGRjY19pbmRfNjRiX2JsayA9IGluZGVwZW5kZW50XzY0Yl9ibGtzID8gMSA6IDA7CisJc3RydWN0IGRjbjIwX2h1YnAgKmh1YnAyID0gVE9fRENOMjBfSFVCUChodWJwKTsKKworCVJFR19VUERBVEVfNChEQ1NVUkZfU1VSRkFDRV9DT05UUk9MLAorCQkJUFJJTUFSWV9TVVJGQUNFX0RDQ19FTiwgZGNjX2VuLAorCQkJUFJJTUFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMSywgZGNjX2luZF82NGJfYmxrLAorCQkJU0VDT05EQVJZX1NVUkZBQ0VfRENDX0VOLCBkY2NfZW4sCisJCQlTRUNPTkRBUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEssIGRjY19pbmRfNjRiX2Jsayk7Cit9CisKK3ZvaWQgaHVicDJfcHJvZ3JhbV9waXhlbF9mb3JtYXQoCisJc3RydWN0IGh1YnAgKmh1YnAsCisJZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQpCit7CisJc3RydWN0IGRjbjIwX2h1YnAgKmh1YnAyID0gVE9fRENOMjBfSFVCUChodWJwKTsKKwl1aW50MzJfdCByZWRfYmFyID0gMzsKKwl1aW50MzJfdCBibHVlX2JhciA9IDI7CisKKwkvKiBzd2FwIGZvciBBQkdSIGZvcm1hdCAqLworCWlmIChmb3JtYXQgPT0gU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BQkdSODg4OAorCQkJfHwgZm9ybWF0ID09IFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQUJHUjIxMDEwMTAKKwkJCXx8IGZvcm1hdCA9PSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FCR1IyMTAxMDEwX1hSX0JJQVMKKwkJCXx8IGZvcm1hdCA9PSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FCR1IxNjE2MTYxNkYpIHsKKwkJcmVkX2JhciA9IDI7CisJCWJsdWVfYmFyID0gMzsKKwl9CisKKwlSRUdfVVBEQVRFXzIoSFVCUFJFVF9DT05UUk9MLAorCQkJQ1JPU1NCQVJfU1JDX0NCX0IsIGJsdWVfYmFyLAorCQkJQ1JPU1NCQVJfU1JDX0NSX1IsIHJlZF9iYXIpOworCisJLyogTWFwcGluZyBpcyBzYW1lIGFzIGlwcCBwcm9ncmFtbWluZyAoY252YykgKi8KKworCXN3aXRjaCAoZm9ybWF0KQl7CisJY2FzZSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FSR0IxNTU1OgorCQlSRUdfVVBEQVRFKERDU1VSRl9TVVJGQUNFX0NPTkZJRywKKwkJCQlTVVJGQUNFX1BJWEVMX0ZPUk1BVCwgMSk7CisJCWJyZWFrOworCWNhc2UgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9SR0I1NjU6CisJCVJFR19VUERBVEUoRENTVVJGX1NVUkZBQ0VfQ09ORklHLAorCQkJCVNVUkZBQ0VfUElYRUxfRk9STUFULCAzKTsKKwkJYnJlYWs7CisJY2FzZSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FSR0I4ODg4OgorCWNhc2UgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BQkdSODg4ODoKKwkJUkVHX1VQREFURShEQ1NVUkZfU1VSRkFDRV9DT05GSUcsCisJCQkJU1VSRkFDRV9QSVhFTF9GT1JNQVQsIDgpOworCQlicmVhazsKKwljYXNlIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQVJHQjIxMDEwMTA6CisJY2FzZSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FCR1IyMTAxMDEwOgorCWNhc2UgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BQkdSMjEwMTAxMF9YUl9CSUFTOgorCQlSRUdfVVBEQVRFKERDU1VSRl9TVVJGQUNFX0NPTkZJRywKKwkJCQlTVVJGQUNFX1BJWEVMX0ZPUk1BVCwgMTApOworCQlicmVhazsKKwljYXNlIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQVJHQjE2MTYxNjE2OgorCQlSRUdfVVBEQVRFKERDU1VSRl9TVVJGQUNFX0NPTkZJRywKKwkJCQlTVVJGQUNFX1BJWEVMX0ZPUk1BVCwgMjIpOworCQlicmVhazsKKwljYXNlIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQVJHQjE2MTYxNjE2RjoKKwljYXNlIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQUJHUjE2MTYxNjE2RjovKndlIHVzZSBjcm9zc2JhciBhbHJlYWR5Ki8KKwkJUkVHX1VQREFURShEQ1NVUkZfU1VSRkFDRV9DT05GSUcsCisJCQkJU1VSRkFDRV9QSVhFTF9GT1JNQVQsIDI0KTsKKwkJYnJlYWs7CisKKwljYXNlIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJREVPXzQyMF9ZQ2JDcjoKKwkJUkVHX1VQREFURShEQ1NVUkZfU1VSRkFDRV9DT05GSUcsCisJCQkJU1VSRkFDRV9QSVhFTF9GT1JNQVQsIDY1KTsKKwkJYnJlYWs7CisJY2FzZSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT180MjBfWUNyQ2I6CisJCVJFR19VUERBVEUoRENTVVJGX1NVUkZBQ0VfQ09ORklHLAorCQkJCVNVUkZBQ0VfUElYRUxfRk9STUFULCA2NCk7CisJCWJyZWFrOworCWNhc2UgU1VSRkFDRV9QSVhFTF9GT1JNQVRfVklERU9fNDIwXzEwYnBjX1lDYkNyOgorCQlSRUdfVVBEQVRFKERDU1VSRl9TVVJGQUNFX0NPTkZJRywKKwkJCQlTVVJGQUNFX1BJWEVMX0ZPUk1BVCwgNjcpOworCQlicmVhazsKKwljYXNlIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJREVPXzQyMF8xMGJwY19ZQ3JDYjoKKwkJUkVHX1VQREFURShEQ1NVUkZfU1VSRkFDRV9DT05GSUcsCisJCQkJU1VSRkFDRV9QSVhFTF9GT1JNQVQsIDY2KTsKKwkJYnJlYWs7CisJY2FzZSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19BWUNyQ2I4ODg4OgorCQlSRUdfVVBEQVRFKERDU1VSRl9TVVJGQUNFX0NPTkZJRywKKwkJCQlTVVJGQUNFX1BJWEVMX0ZPUk1BVCwgMTIpOworCQlicmVhazsKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKKwljYXNlIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfUkdCMTExMTEwX0ZJWDoKKwkJUkVHX1VQREFURShEQ1NVUkZfU1VSRkFDRV9DT05GSUcsCisJCQkJU1VSRkFDRV9QSVhFTF9GT1JNQVQsIDExMik7CisJCWJyZWFrOworCWNhc2UgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9CR1IxMDExMTFfRklYOgorCQlSRUdfVVBEQVRFKERDU1VSRl9TVVJGQUNFX0NPTkZJRywKKwkJCQlTVVJGQUNFX1BJWEVMX0ZPUk1BVCwgMTEzKTsKKwkJYnJlYWs7CisJY2FzZSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19BQ3JZQ2IyMTAxMDEwOgorCQlSRUdfVVBEQVRFKERDU1VSRl9TVVJGQUNFX0NPTkZJRywKKwkJCQlTVVJGQUNFX1BJWEVMX0ZPUk1BVCwgMTE0KTsKKwkJYnJlYWs7CisJY2FzZSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX1JHQjExMTExMF9GTE9BVDoKKwkJUkVHX1VQREFURShEQ1NVUkZfU1VSRkFDRV9DT05GSUcsCisJCQkJU1VSRkFDRV9QSVhFTF9GT1JNQVQsIDExOCk7CisJCWJyZWFrOworCWNhc2UgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9CR1IxMDExMTFfRkxPQVQ6CisJCVJFR19VUERBVEUoRENTVVJGX1NVUkZBQ0VfQ09ORklHLAorCQkJCVNVUkZBQ0VfUElYRUxfRk9STUFULCAxMTkpOworCQlicmVhazsKKyNlbmRpZgorCWRlZmF1bHQ6CisJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCWJyZWFrOworCX0KKworCS8qIGRvbid0IHNlZSB0aGUgbmVlZCBvZiBwcm9ncmFtIHRoZSB4YmFyIGluIERDTiAxLjAgKi8KK30KKwogdm9pZCBodWJwMl9wcm9ncmFtX3N1cmZhY2VfY29uZmlnKAogCXN0cnVjdCBodWJwICpodWJwLAogCWVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAogCXVuaW9uIGRjX3RpbGluZ19pbmZvICp0aWxpbmdfaW5mbywKLQl1bmlvbiBwbGFuZV9zaXplICpwbGFuZV9zaXplLAorCXN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAogCWVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb24sCiAJc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSAqZGNjLAogCWJvb2wgaG9yaXpvbnRhbF9taXJyb3IsCkBAIC0yOTUsMTEgKzUyNSwxMSBAQCB2b2lkIGh1YnAyX3Byb2dyYW1fc3VyZmFjZV9jb25maWcoCiB7CiAJc3RydWN0IGRjbjIwX2h1YnAgKmh1YnAyID0gVE9fRENOMjBfSFVCUChodWJwKTsKIAotCWh1YnAxX2RjY19jb250cm9sKGh1YnAsIGRjYy0+ZW5hYmxlLCBkY2MtPmdycGguaW5kZXBlbmRlbnRfNjRiX2Jsa3MpOworCWh1YnAyX2RjY19jb250cm9sKGh1YnAsIGRjYy0+ZW5hYmxlLCBkY2MtPmluZGVwZW5kZW50XzY0Yl9ibGtzKTsKIAlodWJwMl9wcm9ncmFtX3RpbGluZyhodWJwMiwgdGlsaW5nX2luZm8sIGZvcm1hdCk7Ci0JaHVicDFfcHJvZ3JhbV9zaXplKGh1YnAsIGZvcm1hdCwgcGxhbmVfc2l6ZSwgZGNjKTsKLQlodWJwMV9wcm9ncmFtX3JvdGF0aW9uKGh1YnAsIHJvdGF0aW9uLCBob3Jpem9udGFsX21pcnJvcik7Ci0JaHVicDFfcHJvZ3JhbV9waXhlbF9mb3JtYXQoaHVicCwgZm9ybWF0KTsKKwlodWJwMl9wcm9ncmFtX3NpemUoaHVicCwgZm9ybWF0LCBwbGFuZV9zaXplLCBkY2MpOworCWh1YnAyX3Byb2dyYW1fcm90YXRpb24oaHVicCwgcm90YXRpb24sIGhvcml6b250YWxfbWlycm9yKTsKKwlodWJwMl9wcm9ncmFtX3BpeGVsX2Zvcm1hdChodWJwLCBmb3JtYXQpOwogfQogCiBlbnVtIGN1cnNvcl9saW5lc19wZXJfY2h1bmsgaHVicDJfZ2V0X2xpbmVzX3Blcl9jaHVuaygKQEAgLTY1MiwyOCArODgyLDM4OCBAQCB2b2lkIGh1YnAyX3NldF9mbGlwX2NvbnRyb2xfc3VyZmFjZV9nc2woc3RydWN0IGh1YnAgKmh1YnAsIGJvb2wgZW5hYmxlKQogCVJFR19VUERBVEUoRENTVVJGX0ZMSVBfQ09OVFJPTDIsIFNVUkZBQ0VfR1NMX0VOQUJMRSwgZW5hYmxlID8gMSA6IDApOwogfQogCitib29sIGh1YnAyX2lzX2ZsaXBfcGVuZGluZyhzdHJ1Y3QgaHVicCAqaHVicCkKK3sKKwl1aW50MzJfdCBmbGlwX3BlbmRpbmcgPSAwOworCXN0cnVjdCBkY24yMF9odWJwICpodWJwMiA9IFRPX0RDTjIwX0hVQlAoaHVicCk7CisJc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgZWFybGllc3RfaW51c2VfYWRkcmVzczsKKworCVJFR19HRVQoRENTVVJGX0ZMSVBfQ09OVFJPTCwKKwkJCVNVUkZBQ0VfRkxJUF9QRU5ESU5HLCAmZmxpcF9wZW5kaW5nKTsKKworCVJFR19HRVQoRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0UsCisJCQlTVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1MsICZlYXJsaWVzdF9pbnVzZV9hZGRyZXNzLmdycGguYWRkci5sb3dfcGFydCk7CisKKwlSRUdfR0VUKERDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0gsCisJCQlTVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfSElHSCwgJmVhcmxpZXN0X2ludXNlX2FkZHJlc3MuZ3JwaC5hZGRyLmhpZ2hfcGFydCk7CisKKwlpZiAoZmxpcF9wZW5kaW5nKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmIChlYXJsaWVzdF9pbnVzZV9hZGRyZXNzLmdycGguYWRkci5xdWFkX3BhcnQgIT0gaHVicC0+cmVxdWVzdF9hZGRyZXNzLmdycGguYWRkci5xdWFkX3BhcnQpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIGZhbHNlOworfQorCit2b2lkIGh1YnAyX3NldF9ibGFuayhzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBibGFuaykKK3sKKwlzdHJ1Y3QgZGNuMjBfaHVicCAqaHVicDIgPSBUT19EQ04yMF9IVUJQKGh1YnApOworCXVpbnQzMl90IGJsYW5rX2VuID0gYmxhbmsgPyAxIDogMDsKKworCVJFR19VUERBVEVfMihEQ0hVQlBfQ05UTCwKKwkJCUhVQlBfQkxBTktfRU4sIGJsYW5rX2VuLAorCQkJSFVCUF9UVFVfRElTQUJMRSwgYmxhbmtfZW4pOworCisJaWYgKGJsYW5rKSB7CisJCXVpbnQzMl90IHJlZ192YWwgPSBSRUdfUkVBRChEQ0hVQlBfQ05UTCk7CisKKwkJaWYgKHJlZ192YWwpIHsKKwkJCS8qIGluaXQgc2VxdWVuY2Ugd29ya2Fyb3VuZDogaW4gY2FzZSBIVUJQIGlzCisJCQkgKiBwb3dlciBnYXRlZCwgdGhpcyB3YWl0IHdvdWxkIHRpbWVvdXQuCisJCQkgKgorCQkJICogd2UganVzdCB3cm90ZSByZWdfdmFsIHRvIG5vbi0wLCBpZiBpdCBzdGF5IDAKKwkJCSAqIGl0IG1lYW5zIEhVQlAgaXMgZ2F0ZWQKKwkJCSAqLworCQkJUkVHX1dBSVQoRENIVUJQX0NOVEwsCisJCQkJCUhVQlBfTk9fT1VUU1RBTkRJTkdfUkVRLCAxLAorCQkJCQkxLCAyMDApOworCQl9CisKKwkJaHVicC0+bXBjY19pZCA9IDB4ZjsKKwkJaHVicC0+b3BwX2lkID0gT1BQX0lEX0lOVkFMSUQ7CisJfQorfQorCit2b2lkIGh1YnAyX2N1cnNvcl9zZXRfcG9zaXRpb24oCisJCXN0cnVjdCBodWJwICpodWJwLAorCQljb25zdCBzdHJ1Y3QgZGNfY3Vyc29yX3Bvc2l0aW9uICpwb3MsCisJCWNvbnN0IHN0cnVjdCBkY19jdXJzb3JfbWlfcGFyYW0gKnBhcmFtKQoreworCXN0cnVjdCBkY24yMF9odWJwICpodWJwMiA9IFRPX0RDTjIwX0hVQlAoaHVicCk7CisJaW50IHNyY194X29mZnNldCA9IHBvcy0+eCAtIHBvcy0+eF9ob3RzcG90IC0gcGFyYW0tPnZpZXdwb3J0Lng7CisJaW50IHNyY195X29mZnNldCA9IHBvcy0+eSAtIHBvcy0+eV9ob3RzcG90IC0gcGFyYW0tPnZpZXdwb3J0Lnk7CisJaW50IHhfaG90c3BvdCA9IHBvcy0+eF9ob3RzcG90OworCWludCB5X2hvdHNwb3QgPSBwb3MtPnlfaG90c3BvdDsKKwlpbnQgY3Vyc29yX2hlaWdodCA9IChpbnQpaHVicC0+Y3Vyc19hdHRyLmhlaWdodDsKKwlpbnQgY3Vyc29yX3dpZHRoID0gKGludClodWJwLT5jdXJzX2F0dHIud2lkdGg7CisJdWludDMyX3QgZHN0X3hfb2Zmc2V0OworCXVpbnQzMl90IGN1cl9lbiA9IHBvcy0+ZW5hYmxlID8gMSA6IDA7CisKKwkvKgorCSAqIEd1YXJkIGFnYW5zdCBjdXJzb3Jfc2V0X3Bvc2l0aW9uKCkgZnJvbSBiZWluZyBjYWxsZWQgd2l0aCBpbnZhbGlkCisJICogYXR0cmlidXRlcworCSAqCisJICogVE9ETzogTG9vayBhdCBjb21iaW5pbmcgY3Vyc29yX3NldF9wb3NpdGlvbigpIGFuZAorCSAqIGN1cnNvcl9zZXRfYXR0cmlidXRlcygpIGludG8gY3Vyc29yX3VwZGF0ZSgpCisJICovCisJaWYgKGh1YnAtPmN1cnNfYXR0ci5hZGRyZXNzLnF1YWRfcGFydCA9PSAwKQorCQlyZXR1cm47CisKKwkvLyBSb3RhdGVkIGN1cnNvciB3aWR0aC9oZWlnaHQgYW5kIGhvdHNwb3RzIHR3ZWFrcyBmb3Igb2Zmc2V0IGNhbGN1bGF0aW9uCisJaWYgKHBhcmFtLT5yb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV85MCB8fCBwYXJhbS0+cm90YXRpb24gPT0gUk9UQVRJT05fQU5HTEVfMjcwKSB7CisJCXN3YXAoY3Vyc29yX2hlaWdodCwgY3Vyc29yX3dpZHRoKTsKKwkJaWYgKHBhcmFtLT5yb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV85MCkgeworCQkJc3JjX3hfb2Zmc2V0ID0gcG9zLT54IC0gcG9zLT55X2hvdHNwb3QgLSBwYXJhbS0+dmlld3BvcnQueDsKKwkJCXNyY195X29mZnNldCA9IHBvcy0+eSAtIHBvcy0+eF9ob3RzcG90IC0gcGFyYW0tPnZpZXdwb3J0Lnk7CisJCX0KKwl9IGVsc2UgaWYgKHBhcmFtLT5yb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV8xODApIHsKKwkJc3JjX3hfb2Zmc2V0ID0gcG9zLT54IC0gcGFyYW0tPnZpZXdwb3J0Lng7CisJCXNyY195X29mZnNldCA9IHBvcy0+eSAtIHBhcmFtLT52aWV3cG9ydC55OworCX0KKworCWlmIChwYXJhbS0+bWlycm9yKSB7CisJCXhfaG90c3BvdCA9IHBhcmFtLT52aWV3cG9ydC53aWR0aCAtIHhfaG90c3BvdDsKKwkJc3JjX3hfb2Zmc2V0ID0gcGFyYW0tPnZpZXdwb3J0LnggKyBwYXJhbS0+dmlld3BvcnQud2lkdGggLSBzcmNfeF9vZmZzZXQ7CisJfQorCisJZHN0X3hfb2Zmc2V0ID0gKHNyY194X29mZnNldCA+PSAwKSA/IHNyY194X29mZnNldCA6IDA7CisJZHN0X3hfb2Zmc2V0ICo9IHBhcmFtLT5yZWZfY2xrX2toejsKKwlkc3RfeF9vZmZzZXQgLz0gcGFyYW0tPnBpeGVsX2Nsa19raHo7CisKKwlBU1NFUlQocGFyYW0tPmhfc2NhbGVfcmF0aW8udmFsdWUpOworCisJaWYgKHBhcmFtLT5oX3NjYWxlX3JhdGlvLnZhbHVlKQorCQlkc3RfeF9vZmZzZXQgPSBkY19maXhwdF9mbG9vcihkY19maXhwdF9kaXYoCisJCQkJZGNfZml4cHRfZnJvbV9pbnQoZHN0X3hfb2Zmc2V0KSwKKwkJCQlwYXJhbS0+aF9zY2FsZV9yYXRpbykpOworCisJaWYgKHNyY194X29mZnNldCA+PSAoaW50KXBhcmFtLT52aWV3cG9ydC53aWR0aCkKKwkJY3VyX2VuID0gMDsgIC8qIG5vdCB2aXNpYmxlIGJleW9uZCByaWdodCBlZGdlKi8KKworCWlmIChzcmNfeF9vZmZzZXQgKyBjdXJzb3Jfd2lkdGggPD0gMCkKKwkJY3VyX2VuID0gMDsgIC8qIG5vdCB2aXNpYmxlIGJleW9uZCBsZWZ0IGVkZ2UqLworCisJaWYgKHNyY195X29mZnNldCA+PSAoaW50KXBhcmFtLT52aWV3cG9ydC5oZWlnaHQpCisJCWN1cl9lbiA9IDA7ICAvKiBub3QgdmlzaWJsZSBiZXlvbmQgYm90dG9tIGVkZ2UqLworCisJaWYgKHNyY195X29mZnNldCArIGN1cnNvcl9oZWlnaHQgPD0gMCkKKwkJY3VyX2VuID0gMDsgIC8qIG5vdCB2aXNpYmxlIGJleW9uZCB0b3AgZWRnZSovCisKKwlpZiAoY3VyX2VuICYmIFJFR19SRUFEKENVUlNPUl9TVVJGQUNFX0FERFJFU1MpID09IDApCisJCWh1YnAtPmZ1bmNzLT5zZXRfY3Vyc29yX2F0dHJpYnV0ZXMoaHVicCwgJmh1YnAtPmN1cnNfYXR0cik7CisKKwlSRUdfVVBEQVRFKENVUlNPUl9DT05UUk9MLAorCQkJQ1VSU09SX0VOQUJMRSwgY3VyX2VuKTsKKworCVJFR19TRVRfMihDVVJTT1JfUE9TSVRJT04sIDAsCisJCQlDVVJTT1JfWF9QT1NJVElPTiwgcG9zLT54LAorCQkJQ1VSU09SX1lfUE9TSVRJT04sIHBvcy0+eSk7CisKKwlSRUdfU0VUXzIoQ1VSU09SX0hPVF9TUE9ULCAwLAorCQkJQ1VSU09SX0hPVF9TUE9UX1gsIHhfaG90c3BvdCwKKwkJCUNVUlNPUl9IT1RfU1BPVF9ZLCB5X2hvdHNwb3QpOworCisJUkVHX1NFVChDVVJTT1JfRFNUX09GRlNFVCwgMCwKKwkJCUNVUlNPUl9EU1RfWF9PRkZTRVQsIGRzdF94X29mZnNldCk7CisJLyogVE9ETyBIYW5kbGUgc3VyZmFjZSBwaXhlbCBmb3JtYXRzIG90aGVyIHRoYW4gNDo0OjQgKi8KK30KKwordm9pZCBodWJwMl9jbGtfY250bChzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBlbmFibGUpCit7CisJc3RydWN0IGRjbjIwX2h1YnAgKmh1YnAyID0gVE9fRENOMjBfSFVCUChodWJwKTsKKwl1aW50MzJfdCBjbGtfZW5hYmxlID0gZW5hYmxlID8gMSA6IDA7CisKKwlSRUdfVVBEQVRFKEhVQlBfQ0xLX0NOVEwsIEhVQlBfQ0xPQ0tfRU5BQkxFLCBjbGtfZW5hYmxlKTsKK30KKwordm9pZCBodWJwMl92dGdfc2VsKHN0cnVjdCBodWJwICpodWJwLCB1aW50MzJfdCBvdGdfaW5zdCkKK3sKKwlzdHJ1Y3QgZGNuMjBfaHVicCAqaHVicDIgPSBUT19EQ04yMF9IVUJQKGh1YnApOworCisJUkVHX1VQREFURShEQ0hVQlBfQ05UTCwgSFVCUF9WVEdfU0VMLCBvdGdfaW5zdCk7Cit9CisKK3ZvaWQgaHVicDJfY2xlYXJfdW5kZXJmbG93KHN0cnVjdCBodWJwICpodWJwKQoreworCXN0cnVjdCBkY24yMF9odWJwICpodWJwMiA9IFRPX0RDTjIwX0hVQlAoaHVicCk7CisKKwlSRUdfVVBEQVRFKERDSFVCUF9DTlRMLCBIVUJQX1VOREVSRkxPV19DTEVBUiwgMSk7Cit9CisKK3ZvaWQgaHVicDJfcmVhZF9zdGF0ZV9jb21tb24oc3RydWN0IGh1YnAgKmh1YnApCit7CisJc3RydWN0IGRjbjIwX2h1YnAgKmh1YnAyID0gVE9fRENOMjBfSFVCUChodWJwKTsKKwlzdHJ1Y3QgZGNuX2h1YnBfc3RhdGUgKnMgPSAmaHVicDItPnN0YXRlOworCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbGdfYXR0ciA9ICZzLT5kbGdfYXR0cjsKKwlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV90dHVfcmVnc19zdCAqdHR1X2F0dHIgPSAmcy0+dHR1X2F0dHI7CisJc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcnFfcmVnc19zdCAqcnFfcmVncyA9ICZzLT5ycV9yZWdzOworCisJLyogUmVxdWVzdGVyICovCisJUkVHX0dFVChIVUJQUkVUX0NPTlRST0wsCisJCQlERVRfQlVGX1BMQU5FMV9CQVNFX0FERFJFU1MsICZycV9yZWdzLT5wbGFuZTFfYmFzZV9hZGRyZXNzKTsKKwlSRUdfR0VUXzQoRENOX0VYUEFOU0lPTl9NT0RFLAorCQkJRFJRX0VYUEFOU0lPTl9NT0RFLCAmcnFfcmVncy0+ZHJxX2V4cGFuc2lvbl9tb2RlLAorCQkJUFJRX0VYUEFOU0lPTl9NT0RFLCAmcnFfcmVncy0+cHJxX2V4cGFuc2lvbl9tb2RlLAorCQkJTVJRX0VYUEFOU0lPTl9NT0RFLCAmcnFfcmVncy0+bXJxX2V4cGFuc2lvbl9tb2RlLAorCQkJQ1JRX0VYUEFOU0lPTl9NT0RFLCAmcnFfcmVncy0+Y3JxX2V4cGFuc2lvbl9tb2RlKTsKKworCS8qIERMRyAtIFBlciBodWJwICovCisJUkVHX0dFVF8yKEJMQU5LX09GRlNFVF8wLAorCQlSRUZDWUNfSF9CTEFOS19FTkQsICZkbGdfYXR0ci0+cmVmY3ljX2hfYmxhbmtfZW5kLAorCQlETEdfVl9CTEFOS19FTkQsICZkbGdfYXR0ci0+ZGxnX3ZibGFua19lbmQpOworCisJUkVHX0dFVChCTEFOS19PRkZTRVRfMSwKKwkJTUlOX0RTVF9ZX05FWFRfU1RBUlQsICZkbGdfYXR0ci0+bWluX2RzdF95X25leHRfc3RhcnQpOworCisJUkVHX0dFVChEU1RfRElNRU5TSU9OUywKKwkJUkVGQ1lDX1BFUl9IVE9UQUwsICZkbGdfYXR0ci0+cmVmY3ljX3Blcl9odG90YWwpOworCisJUkVHX0dFVF8yKERTVF9BRlRFUl9TQ0FMRVIsCisJCVJFRkNZQ19YX0FGVEVSX1NDQUxFUiwgJmRsZ19hdHRyLT5yZWZjeWNfeF9hZnRlcl9zY2FsZXIsCisJCURTVF9ZX0FGVEVSX1NDQUxFUiwgJmRsZ19hdHRyLT5kc3RfeV9hZnRlcl9zY2FsZXIpOworCisJaWYgKFJFRyhQUkVGRVRDSF9TRVRUSU5TKSkKKwkJUkVHX0dFVF8yKFBSRUZFVENIX1NFVFRJTlMsCisJCQlEU1RfWV9QUkVGRVRDSCwgJmRsZ19hdHRyLT5kc3RfeV9wcmVmZXRjaCwKKwkJCVZSQVRJT19QUkVGRVRDSCwgJmRsZ19hdHRyLT52cmF0aW9fcHJlZmV0Y2gpOworCWVsc2UKKwkJUkVHX0dFVF8yKFBSRUZFVENIX1NFVFRJTkdTLAorCQkJRFNUX1lfUFJFRkVUQ0gsICZkbGdfYXR0ci0+ZHN0X3lfcHJlZmV0Y2gsCisJCQlWUkFUSU9fUFJFRkVUQ0gsICZkbGdfYXR0ci0+dnJhdGlvX3ByZWZldGNoKTsKKworCVJFR19HRVRfMihWQkxBTktfUEFSQU1FVEVSU18wLAorCQlEU1RfWV9QRVJfVk1fVkJMQU5LLCAmZGxnX2F0dHItPmRzdF95X3Blcl92bV92YmxhbmssCisJCURTVF9ZX1BFUl9ST1dfVkJMQU5LLCAmZGxnX2F0dHItPmRzdF95X3Blcl9yb3dfdmJsYW5rKTsKKworCVJFR19HRVQoUkVGX0ZSRVFfVE9fUElYX0ZSRVEsCisJCVJFRl9GUkVRX1RPX1BJWF9GUkVRLCAmZGxnX2F0dHItPnJlZl9mcmVxX3RvX3BpeF9mcmVxKTsKKworCS8qIERMRyAtIFBlciBsdW1hL2Nocm9tYSAqLworCVJFR19HRVQoVkJMQU5LX1BBUkFNRVRFUlNfMSwKKwkJUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0wsICZkbGdfYXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2wpOworCisJUkVHX0dFVChWQkxBTktfUEFSQU1FVEVSU18zLAorCQlSRUZDWUNfUEVSX01FVEFfQ0hVTktfVkJMQU5LX0wsICZkbGdfYXR0ci0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX3ZibGFua19sKTsKKworCWlmIChSRUcoTk9NX1BBUkFNRVRFUlNfMCkpCisJCVJFR19HRVQoTk9NX1BBUkFNRVRFUlNfMCwKKwkJCURTVF9ZX1BFUl9QVEVfUk9XX05PTV9MLCAmZGxnX2F0dHItPmRzdF95X3Blcl9wdGVfcm93X25vbV9sKTsKKworCWlmIChSRUcoTk9NX1BBUkFNRVRFUlNfMSkpCisJCVJFR19HRVQoTk9NX1BBUkFNRVRFUlNfMSwKKwkJCVJFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9MLCAmZGxnX2F0dHItPnJlZmN5Y19wZXJfcHRlX2dyb3VwX25vbV9sKTsKKworCVJFR19HRVQoTk9NX1BBUkFNRVRFUlNfNCwKKwkJRFNUX1lfUEVSX01FVEFfUk9XX05PTV9MLCAmZGxnX2F0dHItPmRzdF95X3Blcl9tZXRhX3Jvd19ub21fbCk7CisKKwlSRUdfR0VUKE5PTV9QQVJBTUVURVJTXzUsCisJCVJFRkNZQ19QRVJfTUVUQV9DSFVOS19OT01fTCwgJmRsZ19hdHRyLT5yZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2wpOworCisJUkVHX0dFVF8yKFBFUl9MSU5FX0RFTElWRVJZX1BSRSwKKwkJUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9MLCAmZGxnX2F0dHItPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfbCwKKwkJUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9DLCAmZGxnX2F0dHItPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYyk7CisKKwlSRUdfR0VUXzIoUEVSX0xJTkVfREVMSVZFUlksCisJCVJFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9MLCAmZGxnX2F0dHItPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9sLAorCQlSRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfQywgJmRsZ19hdHRyLT5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYyk7CisKKwlpZiAoUkVHKFBSRUZFVENIX1NFVFRJTlNfQykpCisJCVJFR19HRVQoUFJFRkVUQ0hfU0VUVElOU19DLAorCQkJVlJBVElPX1BSRUZFVENIX0MsICZkbGdfYXR0ci0+dnJhdGlvX3ByZWZldGNoX2MpOworCWVsc2UKKwkJUkVHX0dFVChQUkVGRVRDSF9TRVRUSU5HU19DLAorCQkJVlJBVElPX1BSRUZFVENIX0MsICZkbGdfYXR0ci0+dnJhdGlvX3ByZWZldGNoX2MpOworCisJUkVHX0dFVChWQkxBTktfUEFSQU1FVEVSU18yLAorCQlSRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxBTktfQywgJmRsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfYyk7CisKKwlSRUdfR0VUKFZCTEFOS19QQVJBTUVURVJTXzQsCisJCVJFRkNZQ19QRVJfTUVUQV9DSFVOS19WQkxBTktfQywgJmRsZ19hdHRyLT5yZWZjeWNfcGVyX21ldGFfY2h1bmtfdmJsYW5rX2MpOworCisJaWYgKFJFRyhOT01fUEFSQU1FVEVSU18yKSkKKwkJUkVHX0dFVChOT01fUEFSQU1FVEVSU18yLAorCQkJRFNUX1lfUEVSX1BURV9ST1dfTk9NX0MsICZkbGdfYXR0ci0+ZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2MpOworCisJaWYgKFJFRyhOT01fUEFSQU1FVEVSU18zKSkKKwkJUkVHX0dFVChOT01fUEFSQU1FVEVSU18zLAorCQkJUkVGQ1lDX1BFUl9QVEVfR1JPVVBfTk9NX0MsICZkbGdfYXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2MpOworCisJUkVHX0dFVChOT01fUEFSQU1FVEVSU182LAorCQlEU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0MsICZkbGdfYXR0ci0+ZHN0X3lfcGVyX21ldGFfcm93X25vbV9jKTsKKworCVJFR19HRVQoTk9NX1BBUkFNRVRFUlNfNywKKwkJUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX05PTV9DLCAmZGxnX2F0dHItPnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fYyk7CisKKwkvKiBUVFUgLSBwZXIgaHVicCAqLworCVJFR19HRVRfMihEQ05fVFRVX1FPU19XTSwKKwkJUW9TX0xFVkVMX0xPV19XTSwgJnR0dV9hdHRyLT5xb3NfbGV2ZWxfbG93X3dtLAorCQlRb1NfTEVWRUxfSElHSF9XTSwgJnR0dV9hdHRyLT5xb3NfbGV2ZWxfaGlnaF93bSk7CisKKwlSRUdfR0VUXzIoRENOX0dMT0JBTF9UVFVfQ05UTCwKKwkJTUlOX1RUVV9WQkxBTkssICZ0dHVfYXR0ci0+bWluX3R0dV92YmxhbmssCisJCVFvU19MRVZFTF9GTElQLCAmdHR1X2F0dHItPnFvc19sZXZlbF9mbGlwKTsKKworCS8qIFRUVSAtIHBlciBsdW1hL2Nocm9tYSAqLworCS8qIEFzc3VtZWQgc3VyZjAgaXMgbHVtYSBhbmQgMSBpcyBjaHJvbWEgKi8KKworCVJFR19HRVRfMyhEQ05fU1VSRjBfVFRVX0NOVEwwLAorCQlSRUZDWUNfUEVSX1JFUV9ERUxJVkVSWSwgJnR0dV9hdHRyLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sLAorCQlRb1NfTEVWRUxfRklYRUQsICZ0dHVfYXR0ci0+cW9zX2xldmVsX2ZpeGVkX2wsCisJCVFvU19SQU1QX0RJU0FCTEUsICZ0dHVfYXR0ci0+cW9zX3JhbXBfZGlzYWJsZV9sKTsKKworCVJFR19HRVQoRENOX1NVUkYwX1RUVV9DTlRMMSwKKwkJUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFLAorCQkmdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sKTsKKworCVJFR19HRVRfMyhEQ05fU1VSRjFfVFRVX0NOVEwwLAorCQlSRUZDWUNfUEVSX1JFUV9ERUxJVkVSWSwgJnR0dV9hdHRyLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jLAorCQlRb1NfTEVWRUxfRklYRUQsICZ0dHVfYXR0ci0+cW9zX2xldmVsX2ZpeGVkX2MsCisJCVFvU19SQU1QX0RJU0FCTEUsICZ0dHVfYXR0ci0+cW9zX3JhbXBfZGlzYWJsZV9jKTsKKworCVJFR19HRVQoRENOX1NVUkYxX1RUVV9DTlRMMSwKKwkJUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFLAorCQkmdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jKTsKKworCS8qIFJlc3Qgb2YgaHVicCAqLworCVJFR19HRVQoRENTVVJGX1NVUkZBQ0VfQ09ORklHLAorCQkJU1VSRkFDRV9QSVhFTF9GT1JNQVQsICZzLT5waXhlbF9mb3JtYXQpOworCisJUkVHX0dFVChEQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdILAorCQkJU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX0hJR0gsICZzLT5pbnVzZV9hZGRyX2hpKTsKKworCVJFR19HRVQoRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0UsCisJCQlTVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1MsICZzLT5pbnVzZV9hZGRyX2xvKTsKKworCVJFR19HRVRfMihEQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTiwKKwkJCVBSSV9WSUVXUE9SVF9XSURUSCwgJnMtPnZpZXdwb3J0X3dpZHRoLAorCQkJUFJJX1ZJRVdQT1JUX0hFSUdIVCwgJnMtPnZpZXdwb3J0X2hlaWdodCk7CisKKwlSRUdfR0VUXzIoRENTVVJGX1NVUkZBQ0VfQ09ORklHLAorCQkJUk9UQVRJT05fQU5HTEUsICZzLT5yb3RhdGlvbl9hbmdsZSwKKwkJCUhfTUlSUk9SX0VOLCAmcy0+aF9taXJyb3JfZW4pOworCisJUkVHX0dFVChEQ1NVUkZfVElMSU5HX0NPTkZJRywKKwkJCVNXX01PREUsICZzLT5zd19tb2RlKTsKKworCVJFR19HRVQoRENTVVJGX1NVUkZBQ0VfQ09OVFJPTCwKKwkJCVBSSU1BUllfU1VSRkFDRV9EQ0NfRU4sICZzLT5kY2NfZW4pOworCisJUkVHX0dFVF8zKERDSFVCUF9DTlRMLAorCQkJSFVCUF9CTEFOS19FTiwgJnMtPmJsYW5rX2VuLAorCQkJSFVCUF9UVFVfRElTQUJMRSwgJnMtPnR0dV9kaXNhYmxlLAorCQkJSFVCUF9VTkRFUkZMT1dfU1RBVFVTLCAmcy0+dW5kZXJmbG93X3N0YXR1cyk7CisKKwlSRUdfR0VUKERDTl9HTE9CQUxfVFRVX0NOVEwsCisJCQlNSU5fVFRVX1ZCTEFOSywgJnMtPm1pbl90dHVfdmJsYW5rKTsKKworCVJFR19HRVRfMihEQ05fVFRVX1FPU19XTSwKKwkJCVFvU19MRVZFTF9MT1dfV00sICZzLT5xb3NfbGV2ZWxfbG93X3dtLAorCQkJUW9TX0xFVkVMX0hJR0hfV00sICZzLT5xb3NfbGV2ZWxfaGlnaF93bSk7CisKK30KKwordm9pZCBodWJwMl9yZWFkX3N0YXRlKHN0cnVjdCBodWJwICpodWJwKQoreworCXN0cnVjdCBkY24yMF9odWJwICpodWJwMiA9IFRPX0RDTjIwX0hVQlAoaHVicCk7CisJc3RydWN0IGRjbl9odWJwX3N0YXRlICpzID0gJmh1YnAyLT5zdGF0ZTsKKwlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9yZWdzX3N0ICpycV9yZWdzID0gJnMtPnJxX3JlZ3M7CisKKwlodWJwMl9yZWFkX3N0YXRlX2NvbW1vbihodWJwKTsKKworCVJFR19HRVRfOChEQ0hVQlBfUkVRX1NJWkVfQ09ORklHLAorCQlDSFVOS19TSVpFLCAmcnFfcmVncy0+cnFfcmVnc19sLmNodW5rX3NpemUsCisJCU1JTl9DSFVOS19TSVpFLCAmcnFfcmVncy0+cnFfcmVnc19sLm1pbl9jaHVua19zaXplLAorCQlNRVRBX0NIVU5LX1NJWkUsICZycV9yZWdzLT5ycV9yZWdzX2wubWV0YV9jaHVua19zaXplLAorCQlNSU5fTUVUQV9DSFVOS19TSVpFLCAmcnFfcmVncy0+cnFfcmVnc19sLm1pbl9tZXRhX2NodW5rX3NpemUsCisJCURQVEVfR1JPVVBfU0laRSwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5kcHRlX2dyb3VwX3NpemUsCisJCU1QVEVfR1JPVVBfU0laRSwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5tcHRlX2dyb3VwX3NpemUsCisJCVNXQVRIX0hFSUdIVCwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5zd2F0aF9oZWlnaHQsCisJCVBURV9ST1dfSEVJR0hUX0xJTkVBUiwgJnJxX3JlZ3MtPnJxX3JlZ3NfbC5wdGVfcm93X2hlaWdodF9saW5lYXIpOworCisJUkVHX0dFVF84KERDSFVCUF9SRVFfU0laRV9DT05GSUdfQywKKwkJQ0hVTktfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLmNodW5rX3NpemUsCisJCU1JTl9DSFVOS19TSVpFX0MsICZycV9yZWdzLT5ycV9yZWdzX2MubWluX2NodW5rX3NpemUsCisJCU1FVEFfQ0hVTktfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLm1ldGFfY2h1bmtfc2l6ZSwKKwkJTUlOX01FVEFfQ0hVTktfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLm1pbl9tZXRhX2NodW5rX3NpemUsCisJCURQVEVfR1JPVVBfU0laRV9DLCAmcnFfcmVncy0+cnFfcmVnc19jLmRwdGVfZ3JvdXBfc2l6ZSwKKwkJTVBURV9HUk9VUF9TSVpFX0MsICZycV9yZWdzLT5ycV9yZWdzX2MubXB0ZV9ncm91cF9zaXplLAorCQlTV0FUSF9IRUlHSFRfQywgJnJxX3JlZ3MtPnJxX3JlZ3NfYy5zd2F0aF9oZWlnaHQsCisJCVBURV9ST1dfSEVJR0hUX0xJTkVBUl9DLCAmcnFfcmVncy0+cnFfcmVnc19jLnB0ZV9yb3dfaGVpZ2h0X2xpbmVhcik7CisKK30KKwogc3RhdGljIHN0cnVjdCBodWJwX2Z1bmNzIGRjbjIwX2h1YnBfZnVuY3MgPSB7CiAJLmh1YnBfZW5hYmxlX3RyaXBsZUJ1ZmZlciA9IGh1YnAyX2VuYWJsZV90cmlwbGVidWZmZXIsCiAJLmh1YnBfaXNfdHJpcGxlYnVmZmVyX2VuYWJsZWQgPSBodWJwMl9pc190cmlwbGVidWZmZXJfZW5hYmxlZCwKIAkuaHVicF9wcm9ncmFtX3N1cmZhY2VfZmxpcF9hbmRfYWRkciA9IGh1YnAyX3Byb2dyYW1fc3VyZmFjZV9mbGlwX2FuZF9hZGRyLAogCS5odWJwX3Byb2dyYW1fc3VyZmFjZV9jb25maWcgPSBodWJwMl9wcm9ncmFtX3N1cmZhY2VfY29uZmlnLAotCS5odWJwX2lzX2ZsaXBfcGVuZGluZyA9IGh1YnAxX2lzX2ZsaXBfcGVuZGluZywKKwkuaHVicF9pc19mbGlwX3BlbmRpbmcgPSBodWJwMl9pc19mbGlwX3BlbmRpbmcsCiAJLmh1YnBfc2V0dXAgPSBodWJwMl9zZXR1cCwKIAkuaHVicF9zZXR1cF9pbnRlcmRlcGVuZGVudCA9IGh1YnAyX3NldHVwX2ludGVyZGVwZW5kZW50LAogCS5odWJwX3NldF92bV9zeXN0ZW1fYXBlcnR1cmVfc2V0dGluZ3MgPSBodWJwMl9zZXRfdm1fc3lzdGVtX2FwZXJ0dXJlX3NldHRpbmdzLAotCS5zZXRfYmxhbmsgPSBodWJwMV9zZXRfYmxhbmssCi0JLmRjY19jb250cm9sID0gaHVicDFfZGNjX2NvbnRyb2wsCi0JLmh1YnBfdXBkYXRlX2RjaHViID0gaHVicDJfdXBkYXRlX2RjaHViLAorCS5zZXRfYmxhbmsgPSBodWJwMl9zZXRfYmxhbmssCisJLmRjY19jb250cm9sID0gaHVicDJfZGNjX2NvbnRyb2wsCiAJLm1lbV9wcm9ncmFtX3ZpZXdwb3J0ID0gbWluX3NldF92aWV3cG9ydCwKIAkuc2V0X2N1cnNvcl9hdHRyaWJ1dGVzCT0gaHVicDJfY3Vyc29yX3NldF9hdHRyaWJ1dGVzLAotCS5zZXRfY3Vyc29yX3Bvc2l0aW9uCT0gaHVicDFfY3Vyc29yX3NldF9wb3NpdGlvbiwKLQkuaHVicF9jbGtfY250bCA9IGh1YnAxX2Nsa19jbnRsLAotCS5odWJwX3Z0Z19zZWwgPSBodWJwMV92dGdfc2VsLAorCS5zZXRfY3Vyc29yX3Bvc2l0aW9uCT0gaHVicDJfY3Vyc29yX3NldF9wb3NpdGlvbiwKKwkuaHVicF9jbGtfY250bCA9IGh1YnAyX2Nsa19jbnRsLAorCS5odWJwX3Z0Z19zZWwgPSBodWJwMl92dGdfc2VsLAogCS5kbWRhdGFfc2V0X2F0dHJpYnV0ZXMgPSBodWJwMl9kbWRhdGFfc2V0X2F0dHJpYnV0ZXMsCiAJLmRtZGF0YV9sb2FkID0gaHVicDJfZG1kYXRhX2xvYWQsCiAJLmRtZGF0YV9zdGF0dXNfZG9uZSA9IGh1YnAyX2RtZGF0YV9zdGF0dXNfZG9uZSwKLQkuaHVicF9yZWFkX3N0YXRlID0gaHVicDFfcmVhZF9zdGF0ZSwKLQkuaHVicF9jbGVhcl91bmRlcmZsb3cgPSBodWJwMV9jbGVhcl91bmRlcmZsb3csCisJLmh1YnBfcmVhZF9zdGF0ZSA9IGh1YnAyX3JlYWRfc3RhdGUsCisJLmh1YnBfY2xlYXJfdW5kZXJmbG93ID0gaHVicDJfY2xlYXJfdW5kZXJmbG93LAogCS5odWJwX3NldF9mbGlwX2NvbnRyb2xfc3VyZmFjZV9nc2wgPSBodWJwMl9zZXRfZmxpcF9jb250cm9sX3N1cmZhY2VfZ3NsLAogCS5odWJwX2luaXQgPSBodWJwMV9pbml0LAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9odWJwLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaHVicC5oCmluZGV4IGQ1YWNjMzQuLmQ1Yzg2MTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9odWJwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h1YnAuaApAQCAtMzgsMTIgKzM4LDYgQEAKIAlTUkkoUFJFRkVUQ0hfU0VUVElOR1NfQywgSFVCUFJFUSwgaWQpLFwKIAlTUkkoRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUiwgSFVCUFJFUSwgaWQpLFwKIAlTUkkoRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFIsIEhVQlBSRVEsIGlkKSxcCi0JU1IoRENOX1ZNX0ZCX0xPQ0FUSU9OX1RPUCksXAotCVNSKERDTl9WTV9GQl9MT0NBVElPTl9CQVNFKSxcCi0JU1IoRENOX1ZNX0ZCX09GRlNFVCksXAotCVNSKERDTl9WTV9BR1BfQkFTRSksXAotCVNSKERDTl9WTV9BR1BfQk9UKSxcCi0JU1IoRENOX1ZNX0FHUF9UT1ApLFwKIAlTUkkoQ1VSU09SX1NFVFRJTkdTLCBIVUJQUkVRLCBpZCksIFwKIAlTUkkoQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdILCBDVVJTT1IwXywgaWQpLCBcCiAJU1JJKENVUlNPUl9TVVJGQUNFX0FERFJFU1MsIENVUlNPUjBfLCBpZCksIFwKQEAgLTcyLDggKzY2LDggQEAKIAlTUihEQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9NU0IpLFwKIAlTUihEQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9MU0IpCiAKLSNkZWZpbmUgSFVCUF9NQVNLX1NIX0xJU1RfRENOMl9DT01NT04obWFza19zaClcCi0JSFVCUF9NQVNLX1NIX0xJU1RfRENOKG1hc2tfc2gpLFwKKyNkZWZpbmUgSFVCUF9NQVNLX1NIX0xJU1RfRENOMl9TSEFSRV9DT01NT04obWFza19zaClcCisJSFVCUF9NQVNLX1NIX0xJU1RfRENOX1NIQVJFX0NPTU1PTihtYXNrX3NoKSxcCiAJSFVCUF9NQVNLX1NIX0xJU1RfRENOX1ZNKG1hc2tfc2gpLFwKIAlIVUJQX1NGKEhVQlAwX0RDU1VSRl9TVVJGQUNFX0NPTkZJRywgUk9UQVRJT05fQU5HTEUsIG1hc2tfc2gpLFwKIAlIVUJQX1NGKEhVQlAwX0RDU1VSRl9TVVJGQUNFX0NPTkZJRywgSF9NSVJST1JfRU4sIG1hc2tfc2gpLFwKQEAgLTgyLDEyICs3Niw2IEBACiAJSFVCUF9TRihIVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HU19DLCBWUkFUSU9fUFJFRkVUQ0hfQywgbWFza19zaCksXAogCUhVQlBfU0YoSFVCUFJFUTBfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUiwgTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSLCBtYXNrX3NoKSxcCiAJSFVCUF9TRihIVUJQUkVRMF9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUiwgTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUiwgbWFza19zaCksXAotCUhVQlBfU0YoRENOX1ZNX0ZCX0xPQ0FUSU9OX1RPUCwgRkJfVE9QLCBtYXNrX3NoKSxcCi0JSFVCUF9TRihEQ05fVk1fRkJfTE9DQVRJT05fQkFTRSwgRkJfQkFTRSwgbWFza19zaCksXAotCUhVQlBfU0YoRENOX1ZNX0ZCX09GRlNFVCwgRkJfT0ZGU0VULCBtYXNrX3NoKSxcCi0JSFVCUF9TRihEQ05fVk1fQUdQX0JBU0UsIEFHUF9CQVNFLCBtYXNrX3NoKSxcCi0JSFVCUF9TRihEQ05fVk1fQUdQX0JPVCwgQUdQX0JPVCwgbWFza19zaCksXAotCUhVQlBfU0YoRENOX1ZNX0FHUF9UT1AsIEFHUF9UT1AsIG1hc2tfc2gpLFwKIAlIVUJQX1NGKEhVQlBSRVEwX0NVUlNPUl9TRVRUSU5HUywgQ1VSU09SMF9EU1RfWV9PRkZTRVQsIG1hc2tfc2gpLCBcCiAJSFVCUF9TRihIVUJQUkVRMF9DVVJTT1JfU0VUVElOR1MsIENVUlNPUjBfQ0hVTktfSERMX0FESlVTVCwgbWFza19zaCksIFwKIAlIVUJQX1NGKENVUlNPUjBfMF9DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0gsIENVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSCwgbWFza19zaCksIFwKQEAgLTEyNywxMyArMTE1LDIxIEBACiAJSFVCUF9TRihIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MMiwgU1VSRkFDRV9UUklQTEVfQlVGRkVSX0VOQUJMRSwgbWFza19zaCksXAogCUhVQlBfU0YoSFVCUFJFUTBfVk1JRF9TRVRUSU5HU18wLCBWTUlELCBtYXNrX3NoKQogCisvKkRDTjIueCBhbmQgRENOMS54Ki8KKyNkZWZpbmUgSFVCUF9NQVNLX1NIX0xJU1RfRENOMl9DT01NT04obWFza19zaClcCisJSFVCUF9NQVNLX1NIX0xJU1RfRENOMl9TSEFSRV9DT01NT04obWFza19zaCksXAorCUhVQlBfU0YoSFVCUDBfRENTVVJGX1RJTElOR19DT05GSUcsIFJCX0FMSUdORUQsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUcsIE1QVEVfR1JPVVBfU0laRSwgbWFza19zaCksXAorCUhVQlBfU0YoSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DLCBNUFRFX0dST1VQX1NJWkVfQywgbWFza19zaCkKKworLypEQ04yLjAgc3BlY2lmaWMqLwogI2RlZmluZSBIVUJQX01BU0tfU0hfTElTVF9EQ04yMChtYXNrX3NoKVwKIAlIVUJQX01BU0tfU0hfTElTVF9EQ04yX0NPTU1PTihtYXNrX3NoKSxcCiAJSFVCUF9TRihEQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9NU0IsIERDTl9WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9TWVNURU0sIG1hc2tfc2gpLFwKIAlIVUJQX1NGKERDTl9WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX01TQiwgRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTVNCLCBtYXNrX3NoKSxcCiAJSFVCUF9TRihEQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9MU0IsIERDTl9WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX0xTQiwgbWFza19zaCkKIAotCisvKkRDTjIueCAqLwogI2RlZmluZSBEQ04yX0hVQlBfUkVHX0NPTU1PTl9WQVJJQUJMRV9MSVNUIFwKIAlIVUJQX0NPTU1PTl9SRUdfVkFSSUFCTEVfTElTVDsgXAogCXVpbnQzMl90IERNREFUQV9BRERSRVNTX0hJR0g7IFwKQEAgLTE0OSwxNCArMTQ1LDIyIEBACiAJdWludDMyX3QgRkxJUF9QQVJBTUVURVJTXzI7XAogCXVpbnQzMl90IERDTl9DVVIxX1RUVV9DTlRMMDtcCiAJdWludDMyX3QgRENOX0NVUjFfVFRVX0NOVEwxO1wKLQl1aW50MzJfdCBWTUlEX1NFVFRJTkdTXzA7XAorCXVpbnQzMl90IFZNSURfU0VUVElOR1NfMAorCisKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKyNkZWZpbmUgRENOMjFfSFVCUF9SRUdfQ09NTU9OX1ZBUklBQkxFX0xJU1QgXAorCURDTjJfSFVCUF9SRUdfQ09NTU9OX1ZBUklBQkxFX0xJU1Q7IFwKIAl1aW50MzJfdCBGTElQX1BBUkFNRVRFUlNfMztcCiAJdWludDMyX3QgRkxJUF9QQVJBTUVURVJTXzQ7XAorCXVpbnQzMl90IEZMSVBfUEFSQU1FVEVSU181O1wKKwl1aW50MzJfdCBGTElQX1BBUkFNRVRFUlNfNjtcCiAJdWludDMyX3QgVkJMQU5LX1BBUkFNRVRFUlNfNTtcCiAJdWludDMyX3QgVkJMQU5LX1BBUkFNRVRFUlNfNgorI2VuZGlmCiAKICNkZWZpbmUgRENOMl9IVUJQX1JFR19GSUVMRF9WQVJJQUJMRV9MSVNUKHR5cGUpIFwKLQlEQ05fSFVCUF9SRUdfRklFTERfTElTVCh0eXBlKTsgXAorCURDTl9IVUJQX1JFR19GSUVMRF9CQVNFX0xJU1QodHlwZSk7IFwKIAl0eXBlIERNREFUQV9BRERSRVNTX0hJR0g7XAogCXR5cGUgRE1EQVRBX01PREU7XAogCXR5cGUgRE1EQVRBX1VQREFURUQ7XApAQCAtMTgwLDE3ICsxODQsNDEgQEAKIAl0eXBlIFNVUkZBQ0VfVFJJUExFX0JVRkZFUl9FTkFCTEU7XAogCXR5cGUgVk1JRAogCisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMl8xCisjZGVmaW5lIERDTjIxX0hVQlBfUkVHX0ZJRUxEX1ZBUklBQkxFX0xJU1QodHlwZSkgXAorCURDTjJfSFVCUF9SRUdfRklFTERfVkFSSUFCTEVfTElTVCh0eXBlKTtcCisJdHlwZSBSRUZDWUNfUEVSX1ZNX0dST1VQX0ZMSVA7XAorCXR5cGUgUkVGQ1lDX1BFUl9WTV9SRVFfRkxJUDtcCisJdHlwZSBSRUZDWUNfUEVSX1ZNX0dST1VQX1ZCTEFOSztcCisJdHlwZSBSRUZDWUNfUEVSX1ZNX1JFUV9WQkxBTks7XAorCXR5cGUgUkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9DOyBcCisJdHlwZSBSRUZDWUNfUEVSX01FVEFfQ0hVTktfRkxJUF9DOyBcCisJdHlwZSBWTV9HUk9VUF9TSVpFCisjZW5kaWYKKwogCiBzdHJ1Y3QgZGNuX2h1YnAyX3JlZ2lzdGVycyB7CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisJRENOMjFfSFVCUF9SRUdfQ09NTU9OX1ZBUklBQkxFX0xJU1Q7CisjZWxzZQogCURDTjJfSFVCUF9SRUdfQ09NTU9OX1ZBUklBQkxFX0xJU1Q7CisjZW5kaWYKIH07CiAKIHN0cnVjdCBkY25faHVicDJfc2hpZnQgeworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorCURDTjIxX0hVQlBfUkVHX0ZJRUxEX1ZBUklBQkxFX0xJU1QodWludDhfdCk7CisjZWxzZQogCURDTjJfSFVCUF9SRUdfRklFTERfVkFSSUFCTEVfTElTVCh1aW50OF90KTsKKyNlbmRpZgogfTsKIAogc3RydWN0IGRjbl9odWJwMl9tYXNrIHsKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKwlEQ04yMV9IVUJQX1JFR19GSUVMRF9WQVJJQUJMRV9MSVNUKHVpbnQzMl90KTsKKyNlbHNlCiAJRENOMl9IVUJQX1JFR19GSUVMRF9WQVJJQUJMRV9MSVNUKHVpbnQzMl90KTsKKyNlbmRpZgogfTsKIAogc3RydWN0IGRjbjIwX2h1YnAgewpAQCAtMjE3LDEwICsyNDUsNiBAQCB2b2lkIGh1YnAyX3NldHVwX2ludGVyZGVwZW5kZW50KAogdm9pZCBodWJwMl92cmVhZHlfYXRfb3JfQWZ0ZXJfdnN5bmMoc3RydWN0IGh1YnAgKmh1YnAsCiAJCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgKnBpcGVfZGVzdCk7CiAKLXZvaWQgaHVicDJfdXBkYXRlX2RjaHViKAotCQlzdHJ1Y3QgaHVicCAqaHVicCwKLQkJc3RydWN0IGRjaHViX2luaXRfZGF0YSAqZGhfZGF0YSk7Ci0KIHZvaWQgaHVicDJfY3Vyc29yX3NldF9hdHRyaWJ1dGVzKAogCQlzdHJ1Y3QgaHVicCAqaHVicCwKIAkJY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzICphdHRyKTsKQEAgLTI2MiwxNiArMjg2LDUzIEBAIGJvb2wgaHVicDJfcHJvZ3JhbV9zdXJmYWNlX2ZsaXBfYW5kX2FkZHIoCiAJY29uc3Qgc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgKmFkZHJlc3MsCiAJYm9vbCBmbGlwX2ltbWVkaWF0ZSk7CiAKK3ZvaWQgaHVicDJfZGNjX2NvbnRyb2woc3RydWN0IGh1YnAgKmh1YnAsIGJvb2wgZW5hYmxlLAorCQllbnVtIGh1YnBfaW5kX2Jsb2NrX3NpemUgaW5kZXBlbmRlbnRfNjRiX2Jsa3MpOworCit2b2lkIGh1YnAyX3Byb2dyYW1fc2l6ZSgKKwlzdHJ1Y3QgaHVicCAqaHVicCwKKwllbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdCwKKwljb25zdCBzdHJ1Y3QgcGxhbmVfc2l6ZSAqcGxhbmVfc2l6ZSwKKwlzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtICpkY2MpOworCit2b2lkIGh1YnAyX3Byb2dyYW1fcm90YXRpb24oCisJc3RydWN0IGh1YnAgKmh1YnAsCisJZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlvbiwKKwlib29sIGhvcml6b250YWxfbWlycm9yKTsKKwordm9pZCBodWJwMl9wcm9ncmFtX3BpeGVsX2Zvcm1hdCgKKwlzdHJ1Y3QgaHVicCAqaHVicCwKKwllbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdCk7CisKIHZvaWQgaHVicDJfcHJvZ3JhbV9zdXJmYWNlX2NvbmZpZygKIAlzdHJ1Y3QgaHVicCAqaHVicCwKIAllbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdCwKIAl1bmlvbiBkY190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCi0JdW5pb24gcGxhbmVfc2l6ZSAqcGxhbmVfc2l6ZSwKKwlzdHJ1Y3QgcGxhbmVfc2l6ZSAqcGxhbmVfc2l6ZSwKIAllbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uLAogCXN0cnVjdCBkY19wbGFuZV9kY2NfcGFyYW0gKmRjYywKIAlib29sIGhvcml6b250YWxfbWlycm9yLAogCXVuc2lnbmVkIGludCBjb21wYXRfbGV2ZWwpOwogCitib29sIGh1YnAyX2lzX2ZsaXBfcGVuZGluZyhzdHJ1Y3QgaHVicCAqaHVicCk7CisKK3ZvaWQgaHVicDJfc2V0X2JsYW5rKHN0cnVjdCBodWJwICpodWJwLCBib29sIGJsYW5rKTsKKwordm9pZCBodWJwMl9jdXJzb3Jfc2V0X3Bvc2l0aW9uKAorCQlzdHJ1Y3QgaHVicCAqaHVicCwKKwkJY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiAqcG9zLAorCQljb25zdCBzdHJ1Y3QgZGNfY3Vyc29yX21pX3BhcmFtICpwYXJhbSk7CisKK3ZvaWQgaHVicDJfY2xrX2NudGwoc3RydWN0IGh1YnAgKmh1YnAsIGJvb2wgZW5hYmxlKTsKKwordm9pZCBodWJwMl92dGdfc2VsKHN0cnVjdCBodWJwICpodWJwLCB1aW50MzJfdCBvdGdfaW5zdCk7CisKK3ZvaWQgaHVicDJfY2xlYXJfdW5kZXJmbG93KHN0cnVjdCBodWJwICpodWJwKTsKKwordm9pZCBodWJwMl9yZWFkX3N0YXRlX2NvbW1vbihzdHJ1Y3QgaHVicCAqaHVicCk7CisKK3ZvaWQgaHVicDJfcmVhZF9zdGF0ZShzdHJ1Y3QgaHVicCAqaHVicCk7CisKICNlbmRpZiAvKiBfX0RDX01FTV9JTlBVVF9EQ04yMF9IX18gKi8KIAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaHdzZXEuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5jCmluZGV4IGQ4MTBjODkuLjEyMTJkYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5jCkBAIC02NCwyMyArNjQsNyBAQAogI2RlZmluZSBGTihyZWdfbmFtZSwgZmllbGRfbmFtZSkgXAogCWh3cy0+c2hpZnRzLT5maWVsZF9uYW1lLCBod3MtPm1hc2tzLT5maWVsZF9uYW1lCiAKLXN0YXRpYyB2b2lkIGJpb3NfZ29sZGVuX2luaXQoc3RydWN0IGRjICpkYykKLXsKLQlzdHJ1Y3QgZGNfYmlvcyAqYnAgPSBkYy0+Y3R4LT5kY19iaW9zOwotCWludCBpOwotCi0JLyogaW5pdGlhbGl6ZSBkY24gZ2xvYmFsICovCi0JYnAtPmZ1bmNzLT5lbmFibGVfZGlzcF9wb3dlcl9nYXRpbmcoYnAsCi0JCQlDT05UUk9MTEVSX0lEX0QwLCBBU0lDX1BJUEVfSU5JVCk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspIHsKLQkJLyogaW5pdGlhbGl6ZSBkY24gcGVyIHBpcGUgKi8KLQkJYnAtPmZ1bmNzLT5lbmFibGVfZGlzcF9wb3dlcl9nYXRpbmcoYnAsCi0JCQkJQ09OVFJPTExFUl9JRF9EMCArIGksIEFTSUNfUElQRV9ESVNBQkxFKTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIGVuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUoCitzdGF0aWMgdm9pZCBkY24yMF9lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKAogCXN0cnVjdCBkY2VfaHdzZXEgKmh3cywKIAlib29sIGVuYWJsZSkKIHsKQEAgLTk0LDI4ICs3OCwzNCBAQCBzdGF0aWMgdm9pZCBlbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKAogCVJFR19VUERBVEUoRE9NQUlOMl9QR19DT05GSUcsIERPTUFJTjJfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOwogCVJFR19VUERBVEUoRE9NQUlONF9QR19DT05GSUcsIERPTUFJTjRfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOwogCVJFR19VUERBVEUoRE9NQUlONl9QR19DT05GSUcsIERPTUFJTjZfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOwotCVJFR19VUERBVEUoRE9NQUlOOF9QR19DT05GSUcsIERPTUFJTjhfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOwotCS8qRG8gbm90IHBvd2VyIGdhdGUgRENIVUI1LCBzaG91bGQgYmUgbGVmdCBhdCBIVyBkZWZhdWx0LCBwb3dlciBvbiBwZXJtYW5lbnRseSovCi0JLypSRUdfVVBEQVRFKERPTUFJTjEwX1BHX0NPTkZJRywgRE9NQUlOMTBfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOyovCisJaWYgKFJFRyhET01BSU44X1BHX0NPTkZJRykpCisJCVJFR19VUERBVEUoRE9NQUlOOF9QR19DT05GSUcsIERPTUFJTjhfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOworCWlmIChSRUcoRE9NQUlOMTBfUEdfQ09ORklHKSkKKwkJUkVHX1VQREFURShET01BSU4xMF9QR19DT05GSUcsIERPTUFJTjhfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOwogCiAJLyogRFBQMC8xLzIvMy80LzUgKi8KIAlSRUdfVVBEQVRFKERPTUFJTjFfUEdfQ09ORklHLCBET01BSU4xX1BPV0VSX0ZPUkNFT04sIGZvcmNlX29uKTsKIAlSRUdfVVBEQVRFKERPTUFJTjNfUEdfQ09ORklHLCBET01BSU4zX1BPV0VSX0ZPUkNFT04sIGZvcmNlX29uKTsKIAlSRUdfVVBEQVRFKERPTUFJTjVfUEdfQ09ORklHLCBET01BSU41X1BPV0VSX0ZPUkNFT04sIGZvcmNlX29uKTsKIAlSRUdfVVBEQVRFKERPTUFJTjdfUEdfQ09ORklHLCBET01BSU43X1BPV0VSX0ZPUkNFT04sIGZvcmNlX29uKTsKLQlSRUdfVVBEQVRFKERPTUFJTjlfUEdfQ09ORklHLCBET01BSU45X1BPV0VSX0ZPUkNFT04sIGZvcmNlX29uKTsKLQkvKkRvIG5vdCBwb3dlciBnYXRlIERQUDUsIHNob3VsZCBiZSBsZWZ0IGF0IEhXIGRlZmF1bHQsIHBvd2VyIG9uIHBlcm1hbmVudGx5Ki8KLQkvKlJFR19VUERBVEUoRE9NQUlOMTFfUEdfQ09ORklHLCBET01BSU4xMV9QT1dFUl9GT1JDRU9OLCBmb3JjZV9vbik7Ki8KKwlpZiAoUkVHKERPTUFJTjlfUEdfQ09ORklHKSkKKwkJUkVHX1VQREFURShET01BSU45X1BHX0NPTkZJRywgRE9NQUlOOV9QT1dFUl9GT1JDRU9OLCBmb3JjZV9vbik7CisJaWYgKFJFRyhET01BSU4xMV9QR19DT05GSUcpKQorCQlSRUdfVVBEQVRFKERPTUFJTjExX1BHX0NPTkZJRywgRE9NQUlOOV9QT1dFUl9GT1JDRU9OLCBmb3JjZV9vbik7CiAKKwkvKiBEQ1MwLzEvMi8zLzQvNSAqLwogCVJFR19VUERBVEUoRE9NQUlOMTZfUEdfQ09ORklHLCBET01BSU4xNl9QT1dFUl9GT1JDRU9OLCBmb3JjZV9vbik7CiAJUkVHX1VQREFURShET01BSU4xN19QR19DT05GSUcsIERPTUFJTjE3X1BPV0VSX0ZPUkNFT04sIGZvcmNlX29uKTsKIAlSRUdfVVBEQVRFKERPTUFJTjE4X1BHX0NPTkZJRywgRE9NQUlOMThfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOwotCVJFR19VUERBVEUoRE9NQUlOMTlfUEdfQ09ORklHLCBET01BSU4xOV9QT1dFUl9GT1JDRU9OLCBmb3JjZV9vbik7Ci0JUkVHX1VQREFURShET01BSU4yMF9QR19DT05GSUcsIERPTUFJTjIwX1BPV0VSX0ZPUkNFT04sIGZvcmNlX29uKTsKLQlSRUdfVVBEQVRFKERPTUFJTjIxX1BHX0NPTkZJRywgRE9NQUlOMjFfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOworCWlmIChSRUcoRE9NQUlOMTlfUEdfQ09ORklHKSkKKwkJUkVHX1VQREFURShET01BSU4xOV9QR19DT05GSUcsIERPTUFJTjE5X1BPV0VSX0ZPUkNFT04sIGZvcmNlX29uKTsKKwlpZiAoUkVHKERPTUFJTjIwX1BHX0NPTkZJRykpCisJCVJFR19VUERBVEUoRE9NQUlOMjBfUEdfQ09ORklHLCBET01BSU4yMF9QT1dFUl9GT1JDRU9OLCBmb3JjZV9vbik7CisJaWYgKFJFRyhET01BSU4yMV9QR19DT05GSUcpKQorCQlSRUdfVVBEQVRFKERPTUFJTjIxX1BHX0NPTkZJRywgRE9NQUlOMjFfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOwogfQogCi1zdGF0aWMgdm9pZCBkY24yMF9kY2NnX2luaXQoc3RydWN0IGRjZV9od3NlcSAqaHdzKQordm9pZCBkY24yMF9kY2NnX2luaXQoc3RydWN0IGRjZV9od3NlcSAqaHdzKQogewogCS8qCiAJICogc2V0IE1JQ1JPU0VDT05EX1RJTUVfQkFTRV9ESVYKQEAgLTEzOCw4ICsxMjgsNDYgQEAgc3RhdGljIHZvaWQgZGNuMjBfZGNjZ19pbml0KHN0cnVjdCBkY2VfaHdzZXEgKmh3cykKIAkvKiBUaGlzIHZhbHVlIGlzIGRlcGVuZGVudCBvbiB0aGUgaGFyZHdhcmUgcGlwZWxpbmUgZGVsYXkgc28gc2V0IG9uY2UgcGVyIFNPQyAqLwogCVJFR19XUklURShESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVEwsIDB4ODAxMDAzYyk7CiB9Cit2b2lkIGRjbjIwX2Rpc3BsYXlfaW5pdChzdHJ1Y3QgZGMgKmRjKQoreworCXN0cnVjdCBkY2VfaHdzZXEgKmh3cyA9IGRjLT5od3NlcTsKIAotc3RhdGljIHZvaWQgZGlzYWJsZV92Z2EoCisJLyogUkJCTUlGCisJICogZGlzYWJsZSBSQkJNSUYgdGltZW91dCBkZXRlY3Rpb24gZm9yIGFsbCBjbGllbnRzCisJICogRW5zdXJlIFJCQk1JRiBkb2VzIG5vdCBkcm9wIHJlZ2lzdGVyIGFjY2Vzc2VzIGR1ZSB0byB0aGUgcGVyLWNsaWVudCB0aW1lb3V0CisJICovCisJUkVHX1dSSVRFKFJCQk1JRl9USU1FT1VUX0RJUywgMHhGRkZGRkZGRik7CisJUkVHX1dSSVRFKFJCQk1JRl9USU1FT1VUX0RJU18yLCAweEZGRkZGRkZGKTsKKworCS8qIERDQ0cgKi8KKwlkY24yMF9kY2NnX2luaXQoaHdzKTsKKworCVJFR19VUERBVEUoRENfTUVNX0dMT0JBTF9QV1JfUkVRX0NOVEwsIERDX01FTV9HTE9CQUxfUFdSX1JFUV9ESVMsIDApOworCisJLyogRENIVUIvTU1IVUJCVUIKKwkgKiBzZXQgZ2xvYmFsIHRpbWVyIHJlZmNsayBkaXZpZGVyCisJICogMTAwTWh6IHJlZmNsayAtPiAyCisJICogMjdNaHogcmVmY2xrIC0+ICAxCisJICogNDhNaHogcmVmY2xrIC0+ICAxCisJICovCisJUkVHX1VQREFURShEQ0hVQkJVQl9HTE9CQUxfVElNRVJfQ05UTCwgRENIVUJCVUJfR0xPQkFMX1RJTUVSX1JFRkRJViwgMik7CisJUkVHX1VQREFURShEQ0hVQkJVQl9HTE9CQUxfVElNRVJfQ05UTCwgRENIVUJCVUJfR0xPQkFMX1RJTUVSX0VOQUJMRSwgMSk7CisJUkVHX1dSSVRFKFJFRkNMS19DTlRMLCAwKTsKKworCS8qIE9QVEMKKwkgKiBPVEdfQ09OVFJPTC5PVEdfRElTQUJMRV9QT0lOVF9DTlRMID0gMHgzOyB3aWxsIGJlIHNldCBkdXJpbmcgb3B0YzJfZW5hYmxlX2NydGMKKwkgKi8KKworCS8qIEFaCisJICogZGVmYXVsdCB2YWx1ZSBpcyAweDY0IGZvciAxMDBNaHogcmVmIGNsb2NrLCBpZiB0aGUgcmVmIGNsb2NrIGlzIDEwME1oeiwgbm8gbmVlZCB0byBwcm9ncmFtIHRoaXMgcmVnaXNlciwKKwkgKiBpZiBub3QsIGl0IHNob3VsZCBiZSBwcm9ncmFtbWVkIGFjY29yZGluZyB0byB0aGUgcmVmIGNsb2NrCisJICovCisJUkVHX1VQREFURShBWkFMSUFfQVVESU9fRFRPLCBBWkFMSUFfQVVESU9fRFRPX01PRFVMRSwgMHg2NCk7CisJLyogRW5hYmxlIGNvbnRyb2xsZXIgY2xvY2sgZ2F0aW5nICovCisJUkVHX1dSSVRFKEFaQUxJQV9DT05UUk9MTEVSX0NMT0NLX0dBVElORywgMHgxKTsKK30KKwordm9pZCBkY24yMF9kaXNhYmxlX3ZnYSgKIAlzdHJ1Y3QgZGNlX2h3c2VxICpod3MpCiB7CiAJUkVHX1dSSVRFKEQxVkdBX0NPTlRST0wsIDApOwpAQCAtMTYzLDcgKzE5MSw3IEBAIHZvaWQgZGNuMjBfcHJvZ3JhbV90cmlwbGVCdWZmZXIoCiB9CiAKIC8qIEJsYW5rIHBpeGVsIGRhdGEgZHVyaW5nIGluaXRpYWxpemF0aW9uICovCi1zdGF0aWMgdm9pZCBkY24yMF9pbml0X2JsYW5rKAordm9pZCBkY24yMF9pbml0X2JsYW5rKAogCQlzdHJ1Y3QgZGMgKmRjLAogCQlzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpCiB7CkBAIC00NDIsMjkgKzQ3MCw2IEBAIHN0YXRpYyB2b2lkIGRjbjIwX2h1YnBfcGdfY29udHJvbCgKIH0KIAogCi0KLXN0YXRpYyB2b2lkIGRjbjIwX3BsYW5lX2F0b21pY19wb3dlcl9kb3duKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCi17Ci0Jc3RydWN0IGRjZV9od3NlcSAqaHdzID0gZGMtPmh3c2VxOwotCXN0cnVjdCBkcHAgKmRwcCA9IHBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwOwotCi0JRENfTE9HR0VSX0lOSVQoZGMtPmN0eC0+bG9nZ2VyKTsKLQotCWlmIChSRUcoRENfSVBfUkVRVUVTVF9DTlRMKSkgewotCQlSRUdfU0VUKERDX0lQX1JFUVVFU1RfQ05UTCwgMCwKLQkJCQlJUF9SRVFVRVNUX0VOLCAxKTsKLQkJZGNuMjBfZHBwX3BnX2NvbnRyb2woaHdzLCBkcHAtPmluc3QsIGZhbHNlKTsKLQkJZGNuMjBfaHVicF9wZ19jb250cm9sKGh3cywgcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwLT5pbnN0LCBmYWxzZSk7Ci0JCWRwcC0+ZnVuY3MtPmRwcF9yZXNldChkcHApOwotCQlSRUdfU0VUKERDX0lQX1JFUVVFU1RfQ05UTCwgMCwKLQkJCQlJUF9SRVFVRVNUX0VOLCAwKTsKLQkJRENfTE9HX0RFQlVHKAotCQkJCSJQb3dlciBnYXRlZCBmcm9udCBlbmQgJWRcbiIsIHBpcGVfY3R4LT5waXBlX2lkeCk7Ci0JfQotfQotCi0KLQogLyogZGlzYWJsZSBIVyB1c2VkIGJ5IHBsYW5lLgogICogbm90ZTogIGNhbm5vdCBkaXNhYmxlIHVudGlsIGRpc2Nvbm5lY3QgaXMgY29tcGxldGUKICAqLwpAQCAtNDkwLDcgKzQ5NSw5IEBAIHN0YXRpYyB2b2lkIGRjbjIwX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiAJaHVicC0+cG93ZXJfZ2F0ZWQgPSB0cnVlOwogCWRjLT5vcHRpbWl6ZWRfcmVxdWlyZWQgPSBmYWxzZTsgLyogV2UncmUgcG93ZXJpbmcgb2ZmLCBubyBuZWVkIHRvIG9wdGltaXplICovCiAKLQlkY24yMF9wbGFuZV9hdG9taWNfcG93ZXJfZG93bihkYywgcGlwZV9jdHgpOworCWRjLT5od3NzLnBsYW5lX2F0b21pY19wb3dlcl9kb3duKGRjLAorCQkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAsCisJCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnApOwogCiAJcGlwZV9jdHgtPnN0cmVhbSA9IE5VTEw7CiAJbWVtc2V0KCZwaXBlX2N0eC0+c3RyZWFtX3JlcywgMCwgc2l6ZW9mKHBpcGVfY3R4LT5zdHJlYW1fcmVzKSk7CkBAIC01MTQsMTk5ICs1MjEsNiBAQCB2b2lkIGRjbjIwX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAkJCQkJcGlwZV9jdHgtPnBpcGVfaWR4KTsKIH0KIAotc3RhdGljIHZvaWQgZGNuMjBfaW5pdF9odyhzdHJ1Y3QgZGMgKmRjKQotewotCWludCBpLCBqOwotCXN0cnVjdCBhYm0gKmFibSA9IGRjLT5yZXNfcG9vbC0+YWJtOwotCXN0cnVjdCBkbWN1ICpkbWN1ID0gZGMtPnJlc19wb29sLT5kbWN1OwotCXN0cnVjdCBkY2VfaHdzZXEgKmh3cyA9IGRjLT5od3NlcTsKLQlzdHJ1Y3QgZGNfYmlvcyAqZGNiID0gZGMtPmN0eC0+ZGNfYmlvczsKLQlzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcmVzX3Bvb2wgPSBkYy0+cmVzX3Bvb2w7Ci0Jc3RydWN0IGRjX3N0YXRlICAqY29udGV4dCA9IGRjLT5jdXJyZW50X3N0YXRlOwotCXN0cnVjdCBkY19maXJtd2FyZV9pbmZvIGZ3X2luZm8gPSB7IHsgMCB9IH07Ci0KLQlpZiAoZGMtPmNsa19tZ3IgJiYgZGMtPmNsa19tZ3ItPmZ1bmNzLT5pbml0X2Nsb2NrcykKLQkJZGMtPmNsa19tZ3ItPmZ1bmNzLT5pbml0X2Nsb2NrcyhkYy0+Y2xrX21ncik7Ci0KLQkvLyBJbml0aWFsaXplIHRoZSBkY2NnCi0JaWYgKHJlc19wb29sLT5kY2NnLT5mdW5jcy0+ZGNjZ19pbml0KQotCQlyZXNfcG9vbC0+ZGNjZy0+ZnVuY3MtPmRjY2dfaW5pdChyZXNfcG9vbC0+ZGNjZyk7Ci0KLQkvL0VuYWJsZSBhYmlsaXR5IHRvIHBvd2VyIGdhdGUgLyBkb24ndCBmb3JjZSBwb3dlciBvbiBwZXJtYW5lbnRseQotCWVuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUoZGMtPmh3c2VxLCB0cnVlKTsKLQotCWlmIChJU19GUEdBX01BWElNVVNfREMoZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgewotCQlSRUdfV1JJVEUoUkJCTUlGX1RJTUVPVVRfRElTLCAweEZGRkZGRkZGKTsKLQkJUkVHX1dSSVRFKFJCQk1JRl9USU1FT1VUX0RJU18yLCAweEZGRkZGRkZGKTsKLQotCQlkY24yMF9kY2NnX2luaXQoaHdzKTsKLQotCQlSRUdfVVBEQVRFKERDSFVCQlVCX0dMT0JBTF9USU1FUl9DTlRMLCBEQ0hVQkJVQl9HTE9CQUxfVElNRVJfUkVGRElWLCAyKTsKLQkJUkVHX1VQREFURShEQ0hVQkJVQl9HTE9CQUxfVElNRVJfQ05UTCwgRENIVUJCVUJfR0xPQkFMX1RJTUVSX0VOQUJMRSwgMSk7Ci0JCVJFR19XUklURShSRUZDTEtfQ05UTCwgMCk7Ci0JfSBlbHNlIHsKLQkJaWYgKCFkY2ItPmZ1bmNzLT5pc19hY2NlbGVyYXRlZF9tb2RlKGRjYikpIHsKLQkJCWJpb3NfZ29sZGVuX2luaXQoZGMpOwotCQkJaWYgKGRjLT5jdHgtPmRjX2Jpb3MtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbygKLQkJCQkJZGMtPmN0eC0+ZGNfYmlvcywgJmZ3X2luZm8pID09IEJQX1JFU1VMVF9PSykgewotCQkJCXJlc19wb29sLT5yZWZfY2xvY2tzLnh0YWxpbl9jbG9ja19pbktoeiA9IGZ3X2luZm8ucGxsX2luZm8uY3J5c3RhbF9mcmVxdWVuY3k7Ci0KLQkJCQlpZiAoIUlTX0ZQR0FfTUFYSU1VU19EQyhkYy0+Y3R4LT5kY2VfZW52aXJvbm1lbnQpKSB7Ci0JCQkJCWlmIChyZXNfcG9vbC0+ZGNjZyAmJiByZXNfcG9vbC0+aHViYnViKSB7Ci0KLQkJCQkJCShyZXNfcG9vbC0+ZGNjZy0+ZnVuY3MtPmdldF9kY2NnX3JlZl9mcmVxKShyZXNfcG9vbC0+ZGNjZywKLQkJCQkJCQkJZndfaW5mby5wbGxfaW5mby5jcnlzdGFsX2ZyZXF1ZW5jeSwKLQkJCQkJCQkJJnJlc19wb29sLT5yZWZfY2xvY2tzLmRjY2dfcmVmX2Nsb2NrX2luS2h6KTsKLQotCQkJCQkJKHJlc19wb29sLT5odWJidWItPmZ1bmNzLT5nZXRfZGNodWJfcmVmX2ZyZXEpKHJlc19wb29sLT5odWJidWIsCi0JCQkJCQkJCXJlc19wb29sLT5yZWZfY2xvY2tzLmRjY2dfcmVmX2Nsb2NrX2luS2h6LAotCQkJCQkJCQkmcmVzX3Bvb2wtPnJlZl9jbG9ja3MuZGNodWJfcmVmX2Nsb2NrX2luS2h6KTsKLQkJCQkJfSBlbHNlIHsKLQkJCQkJCS8vIE5vdCBhbGwgQVNJQ3MgaGF2ZSBEQ0NHIHN3IGNvbXBvbmVudAotCQkJCQkJcmVzX3Bvb2wtPnJlZl9jbG9ja3MuZGNjZ19yZWZfY2xvY2tfaW5LaHogPQotCQkJCQkJCQlyZXNfcG9vbC0+cmVmX2Nsb2Nrcy54dGFsaW5fY2xvY2tfaW5LaHo7Ci0JCQkJCQlyZXNfcG9vbC0+cmVmX2Nsb2Nrcy5kY2h1Yl9yZWZfY2xvY2tfaW5LaHogPQotCQkJCQkJCQlyZXNfcG9vbC0+cmVmX2Nsb2Nrcy54dGFsaW5fY2xvY2tfaW5LaHo7Ci0JCQkJCX0KLQkJCQl9Ci0JCQl9IGVsc2UKLQkJCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOwotCQkJZGlzYWJsZV92Z2EoZGMtPmh3c2VxKTsKLQkJfQotCi0JCWZvciAoaSA9IDA7IGkgPCBkYy0+bGlua19jb3VudDsgaSsrKSB7Ci0JCQkvKiBQb3dlciB1cCBBTkQgdXBkYXRlIGltcGxlbWVudGF0aW9uIGFjY29yZGluZyB0byB0aGUKLQkJCSAqIHJlcXVpcmVkIHNpZ25hbCAod2hpY2ggbWF5IGJlIGRpZmZlcmVudCBmcm9tIHRoZQotCQkJICogZGVmYXVsdCBzaWduYWwgb24gY29ubmVjdG9yKS4KLQkJCSAqLwotCQkJc3RydWN0IGRjX2xpbmsgKmxpbmsgPSBkYy0+bGlua3NbaV07Ci0KLQkJCWxpbmstPmxpbmtfZW5jLT5mdW5jcy0+aHdfaW5pdChsaW5rLT5saW5rX2VuYyk7Ci0JCX0KLQl9Ci0KLQkvKiBCbGFuayBwaXhlbCBkYXRhIHdpdGggT1BQIERQRyAqLwotCWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JfY291bnQ7IGkrKykgewotCQlzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcgPSBkYy0+cmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JzW2ldOwotCi0JCWlmICh0Zy0+ZnVuY3MtPmlzX3RnX2VuYWJsZWQodGcpKSB7Ci0JCQlkY24yMF9pbml0X2JsYW5rKGRjLCB0Zyk7Ci0JCX0KLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgcmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JfY291bnQ7IGkrKykgewotCQlzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcgPSBkYy0+cmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JzW2ldOwotCi0JCWlmICh0Zy0+ZnVuY3MtPmlzX3RnX2VuYWJsZWQodGcpKQotCQkJdGctPmZ1bmNzLT5sb2NrKHRnKTsKLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspIHsKLQkJc3RydWN0IGRwcCAqZHBwID0gcmVzX3Bvb2wtPmRwcHNbaV07Ci0KLQkJZHBwLT5mdW5jcy0+ZHBwX3Jlc2V0KGRwcCk7Ci0JfQotCi0JLyogUmVzZXQgYWxsIE1QQ0MgbXV4ZXMgKi8KLQlyZXNfcG9vbC0+bXBjLT5mdW5jcy0+bXBjX2luaXQocmVzX3Bvb2wtPm1wYyk7Ci0KLQkvKiBpbml0aWFsaXplIE9QUCBtcGNfdHJlZSBwYXJhbWV0ZXIgKi8KLQlmb3IgKGkgPSAwOyBpIDwgZGMtPnJlc19wb29sLT5yZXNfY2FwLT5udW1fb3BwOyBpKyspIHsKLQkJcmVzX3Bvb2wtPm9wcHNbaV0tPm1wY190cmVlX3BhcmFtcy5vcHBfaWQgPSByZXNfcG9vbC0+b3Bwc1tpXS0+aW5zdDsKLQkJcmVzX3Bvb2wtPm9wcHNbaV0tPm1wY190cmVlX3BhcmFtcy5vcHBfbGlzdCA9IE5VTEw7Ci0JCWZvciAoaiA9IDA7IGogPCBNQVhfUElQRVM7IGorKykKLQkJCXJlc19wb29sLT5vcHBzW2ldLT5tcGNjX2Rpc2Nvbm5lY3RfcGVuZGluZ1tqXSA9IGZhbHNlOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykgewotCQlzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcgPSBkYy0+cmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JzW2ldOwotCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4ID0gJmNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV07Ci0JCXN0cnVjdCBodWJwICpodWJwID0gZGMtPnJlc19wb29sLT5odWJwc1tpXTsKLQkJc3RydWN0IGRwcCAqZHBwID0gZGMtPnJlc19wb29sLT5kcHBzW2ldOwotCi0JCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnID0gdGc7Ci0JCXBpcGVfY3R4LT5waXBlX2lkeCA9IGk7Ci0KLQkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwID0gaHVicDsKLQkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAgPSBkcHA7Ci0JCXBpcGVfY3R4LT5wbGFuZV9yZXMubXBjY19pbnN0ID0gZHBwLT5pbnN0OwotCQlodWJwLT5tcGNjX2lkID0gZHBwLT5pbnN0OwotCQlodWJwLT5vcHBfaWQgPSBPUFBfSURfSU5WQUxJRDsKLQkJaHVicC0+cG93ZXJfZ2F0ZWQgPSBmYWxzZTsKLQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMub3BwID0gTlVMTDsKLQotCQlodWJwLT5mdW5jcy0+aHVicF9pbml0KGh1YnApOwotCi0JCS8vZGMtPnJlc19wb29sLT5vcHBzW2ldLT5tcGNfdHJlZV9wYXJhbXMub3BwX2lkID0gZGMtPnJlc19wb29sLT5vcHBzW2ldLT5pbnN0OwotCQkvL2RjLT5yZXNfcG9vbC0+b3Bwc1tpXS0+bXBjX3RyZWVfcGFyYW1zLm9wcF9saXN0ID0gTlVMTDsKLQkJZGMtPnJlc19wb29sLT5vcHBzW2ldLT5tcGNjX2Rpc2Nvbm5lY3RfcGVuZGluZ1twaXBlX2N0eC0+cGxhbmVfcmVzLm1wY2NfaW5zdF0gPSB0cnVlOwotCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5vcHAgPSBkYy0+cmVzX3Bvb2wtPm9wcHNbaV07Ci0JCS8qdG8gZG8qLwotCQlod3NzMV9wbGFuZV9hdG9taWNfZGlzY29ubmVjdChkYywgcGlwZV9jdHgpOwotCX0KLQotCS8qIGluaXRpYWxpemUgRFdCIHBvaW50ZXIgdG8gTUNJRl9XQiAqLwotCWZvciAoaSA9IDA7IGkgPCByZXNfcG9vbC0+cmVzX2NhcC0+bnVtX2R3YjsgaSsrKQotCQlyZXNfcG9vbC0+ZHdiY1tpXS0+bWNpZiA9IHJlc19wb29sLT5tY2lmX3diW2ldOwotCi0JZm9yIChpID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+dGltaW5nX2dlbmVyYXRvcl9jb3VudDsgaSsrKSB7Ci0JCXN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZyA9IGRjLT5yZXNfcG9vbC0+dGltaW5nX2dlbmVyYXRvcnNbaV07Ci0KLQkJaWYgKHRnLT5mdW5jcy0+aXNfdGdfZW5hYmxlZCh0ZykpCi0JCQl0Zy0+ZnVuY3MtPnVubG9jayh0Zyk7Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7Ci0JCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHggPSAmY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXTsKLQotCQlkYy0+aHdzcy5kaXNhYmxlX3BsYW5lKGRjLCBwaXBlX2N0eCk7Ci0KLQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcgPSBOVUxMOwotCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAgPSBOVUxMOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JfY291bnQ7IGkrKykgewotCQlzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcgPSBkYy0+cmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JzW2ldOwotCi0JCXRnLT5mdW5jcy0+dGdfaW5pdCh0Zyk7Ci0JfQotCi0JLyogZW5kIG9mIEZQR0EuIEJlbG93IGlmIHJlYWwgQVNJQyAqLwotCWlmIChJU19GUEdBX01BWElNVVNfREMoZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkKLQkJcmV0dXJuOwotCi0KLQlmb3IgKGkgPSAwOyBpIDwgcmVzX3Bvb2wtPmF1ZGlvX2NvdW50OyBpKyspIHsKLQkJc3RydWN0IGF1ZGlvICphdWRpbyA9IHJlc19wb29sLT5hdWRpb3NbaV07Ci0KLQkJYXVkaW8tPmZ1bmNzLT5od19pbml0KGF1ZGlvKTsKLQl9Ci0KLQlpZiAoYWJtICE9IE5VTEwpIHsKLQkJYWJtLT5mdW5jcy0+aW5pdF9iYWNrbGlnaHQoYWJtKTsKLQkJYWJtLT5mdW5jcy0+YWJtX2luaXQoYWJtKTsKLQl9Ci0KLQlpZiAoZG1jdSAhPSBOVUxMKQotCQlkbWN1LT5mdW5jcy0+ZG1jdV9pbml0KGRtY3UpOwotCi0JaWYgKGFibSAhPSBOVUxMICYmIGRtY3UgIT0gTlVMTCkKLQkJYWJtLT5kbWN1X2lzX3J1bm5pbmcgPSBkbWN1LT5mdW5jcy0+aXNfZG1jdV9pbml0aWFsaXplZChkbWN1KTsKLQotCS8qIHBvd2VyIEFGTVQgSERNSSBtZW1vcnkgVE9ETzogbWF5IG1vdmUgdG8gZGlzL2VuIG91dHB1dCBzYXZlIHBvd2VyKi8KLQlSRUdfV1JJVEUoRElPX01FTV9QV1JfQ1RSTCwgMCk7Ci0KLQlpZiAoIWRjLT5kZWJ1Zy5kaXNhYmxlX2Nsb2NrX2dhdGUpIHsKLQkJLyogZW5hYmxlIGFsbCBEQ04gY2xvY2sgZ2F0aW5nICovCi0JCVJFR19XUklURShEQ0NHX0dBVEVfRElTQUJMRV9DTlRMLCAwKTsKLQotCQlSRUdfV1JJVEUoRENDR19HQVRFX0RJU0FCTEVfQ05UTDIsIDApOwotCi0JCVJFR19VUERBVEUoRENGQ0xLX0NOVEwsIERDRkNMS19HQVRFX0RJUywgMCk7Ci0JfQotCi19Ci0KIGVudW0gZGNfc3RhdHVzIGRjbjIwX2VuYWJsZV9zdHJlYW1fdGltaW5nKAogCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogCQlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCkBAIC03MTUsMTEgKzUyOSw5IEBAIGVudW0gZGNfc3RhdHVzIGRjbjIwX2VuYWJsZV9zdHJlYW1fdGltaW5nKAogCXN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSA9IHBpcGVfY3R4LT5zdHJlYW07CiAJc3RydWN0IGRycl9wYXJhbXMgcGFyYW1zID0gezB9OwogCXVuc2lnbmVkIGludCBldmVudF90cmlnZ2VycyA9IDA7Ci0KLQotI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQotCXN0cnVjdCBwaXBlX2N0eCAqb2RtX3BpcGUgPSBkY19yZXNfZ2V0X29kbV9ib3R0b21fcGlwZShwaXBlX2N0eCk7Ci0jZW5kaWYKKwlzdHJ1Y3QgcGlwZV9jdHggKm9kbV9waXBlOworCWludCBvcHBfY250ID0gMTsKKwlpbnQgb3BwX2luc3RbTUFYX1BJUEVTXSA9IHsgcGlwZV9jdHgtPnN0cmVhbV9yZXMub3BwLT5pbnN0IH07CiAKIAkvKiBieSB1cHBlciBjYWxsZXIgbG9vcCwgcGlwZTAgaXMgcGFyZW50IHBpcGUgYW5kIGJlIGNhbGxlZCBmaXJzdC4KIAkgKiBiYWNrIGVuZCBpcyBzZXQgdXAgYnkgZm9yIHBpcGUwLiBPdGhlciBjaGlsZHJlbiBwaXBlIHNoYXJlIGJhY2sgZW5kCkBAIC03MzAsMTIgKzU0MiwxNyBAQCBlbnVtIGRjX3N0YXR1cyBkY24yMF9lbmFibGVfc3RyZWFtX3RpbWluZygKIAogCS8qIFRPRE8gY2hlY2sgaWYgdGltaW5nX2NoYW5nZWQsIGRpc2FibGUgc3RyZWFtIGlmIHRpbWluZyBjaGFuZ2VkICovCiAKLQlpZiAob2RtX3BpcGUpCisJZm9yIChvZG1fcGlwZSA9IHBpcGVfY3R4LT5uZXh0X29kbV9waXBlOyBvZG1fcGlwZTsgb2RtX3BpcGUgPSBvZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSkgeworCQlvcHBfaW5zdFtvcHBfY250XSA9IG9kbV9waXBlLT5zdHJlYW1fcmVzLm9wcC0+aW5zdDsKKwkJb3BwX2NudCsrOworCX0KKworCWlmIChvcHBfY250ID4gMSkKIAkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5zZXRfb2RtX2NvbWJpbmUoCiAJCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsCi0JCQkJb2RtX3BpcGUtPnN0cmVhbV9yZXMub3BwLT5pbnN0LAotCQkJCXBpcGVfY3R4LT5zdHJlYW0tPnRpbWluZy5oX2FkZHJlc3NhYmxlLzIsCi0JCQkJcGlwZV9jdHgtPnN0cmVhbS0+dGltaW5nLnBpeGVsX2VuY29kaW5nKTsKKwkJCQlvcHBfaW5zdCwgb3BwX2NudCwKKwkJCQkmcGlwZV9jdHgtPnN0cmVhbS0+dGltaW5nKTsKKwogCS8qIEhXIHByb2dyYW0gZ3VpZGUgYXNzdW1lIGRpc3BsYXkgYWxyZWFkeSBkaXNhYmxlCiAJICogYnkgdW5wbHVnIHNlcXVlbmNlLiBPVEcgYXNzdW1lIHN0b3AuCiAJICovCkBAIC03NTksMTEgKzU3Niw3IEBAIGVudW0gZGNfc3RhdHVzIGRjbjIwX2VuYWJsZV9zdHJlYW1fdGltaW5nKAogCQkJcGlwZV9jdHgtPnN0cmVhbS0+c2lnbmFsLAogCQkJdHJ1ZSk7CiAKLQlpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5zZXR1cF9nbG9iYWxfbG9jaykKLQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5zZXR1cF9nbG9iYWxfbG9jaygKLQkJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50Zyk7Ci0KLQlpZiAob2RtX3BpcGUpCisJZm9yIChvZG1fcGlwZSA9IHBpcGVfY3R4LT5uZXh0X29kbV9waXBlOyBvZG1fcGlwZTsgb2RtX3BpcGUgPSBvZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSkKIAkJb2RtX3BpcGUtPnN0cmVhbV9yZXMub3BwLT5mdW5jcy0+b3BwX3BpcGVfY2xvY2tfY29udHJvbCgKIAkJCQlvZG1fcGlwZS0+c3RyZWFtX3Jlcy5vcHAsCiAJCQkJdHJ1ZSk7CkBAIC03ODQsNiArNTk3LDggQEAgZW51bSBkY19zdGF0dXMgZGNuMjBfZW5hYmxlX3N0cmVhbV90aW1pbmcoCiAKIAlwYXJhbXMudmVydGljYWxfdG90YWxfbWluID0gc3RyZWFtLT5hZGp1c3Qudl90b3RhbF9taW47CiAJcGFyYW1zLnZlcnRpY2FsX3RvdGFsX21heCA9IHN0cmVhbS0+YWRqdXN0LnZfdG90YWxfbWF4OworCXBhcmFtcy52ZXJ0aWNhbF90b3RhbF9taWQgPSBzdHJlYW0tPmFkanVzdC52X3RvdGFsX21pZDsKKwlwYXJhbXMudmVydGljYWxfdG90YWxfbWlkX2ZyYW1lX251bSA9IHN0cmVhbS0+YWRqdXN0LnZfdG90YWxfbWlkX2ZyYW1lX251bTsKIAlpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5zZXRfZHJyKQogCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF9kcnIoCiAJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50ZywgJnBhcmFtcyk7CkBAIC04MTQsNiArNjI5LDEwIEBAIHZvaWQgZGNuMjBfcHJvZ3JhbV9vdXRwdXRfY3NjKHN0cnVjdCBkYyAqZGMsCiB7CiAJc3RydWN0IG1wYyAqbXBjID0gZGMtPnJlc19wb29sLT5tcGM7CiAJZW51bSBtcGNfb3V0cHV0X2NzY19tb2RlIG9jc2NfbW9kZSA9IE1QQ19PVVRQVVRfQ1NDX0NPRUZfQTsKKwlpbnQgbXBjY19pZCA9IHBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicC0+aW5zdDsKKworCWlmIChtcGMtPmZ1bmNzLT5wb3dlcl9vbl9tcGNfbWVtX3B3cikKKwkJbXBjLT5mdW5jcy0+cG93ZXJfb25fbXBjX21lbV9wd3IobXBjLCBtcGNjX2lkLCB0cnVlKTsKIAogCWlmIChwaXBlX2N0eC0+c3RyZWFtLT5jc2NfY29sb3JfbWF0cml4LmVuYWJsZV9hZGp1c3RtZW50ID09IHRydWUpIHsKIAkJaWYgKG1wYy0+ZnVuY3MtPnNldF9vdXRwdXRfY3NjICE9IE5VTEwpCkBAIC04NDMsNyArNjYyLDkgQEAgYm9vbCBkY24yMF9zZXRfb3V0cHV0X3RyYW5zZmVyX2Z1bmMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAkgKiBpZiBwcm9ncmFtbWluZyBmb3IgYWxsIHBpcGVzIGlzIHJlcXVpcmVkIHRoZW4gcmVtb3ZlIGNvbmRpdGlvbgogCSAqIHBpcGVfY3R4LT50b3BfcGlwZSA9PSBOVUxMICxidXQgdGhlbiBmaXggdGhlIGRpYWdub3N0aWMuCiAJICovCi0JaWYgKChwaXBlX2N0eC0+dG9wX3BpcGUgPT0gTlVMTCB8fCBkY19yZXNfaXNfb2RtX2hlYWRfcGlwZShwaXBlX2N0eCkpCisJaWYgKG1wYy0+ZnVuY3MtPnBvd2VyX29uX21wY19tZW1fcHdyKQorCQltcGMtPmZ1bmNzLT5wb3dlcl9vbl9tcGNfbWVtX3B3cihtcGMsIG1wY2NfaWQsIHRydWUpOworCWlmIChwaXBlX2N0eC0+dG9wX3BpcGUgPT0gTlVMTAogCQkJJiYgbXBjLT5mdW5jcy0+c2V0X291dHB1dF9nYW1tYSAmJiBzdHJlYW0tPm91dF90cmFuc2Zlcl9mdW5jKSB7CiAJCWlmIChzdHJlYW0tPm91dF90cmFuc2Zlcl9mdW5jLT50eXBlID09IFRGX1RZUEVfSFdQV0wpCiAJCQlwYXJhbXMgPSAmc3RyZWFtLT5vdXRfdHJhbnNmZXJfZnVuYy0+cHdsOwpAQCAtOTA5LDE0ICs3MzAsMTQgQEAgc3RhdGljIGJvb2wgZGNuMjBfc2V0X3NoYXBlcl8zZGx1dCgKIAogCXJlc3VsdCA9IGRwcF9iYXNlLT5mdW5jcy0+ZHBwX3Byb2dyYW1fc2hhcGVyX2x1dChkcHBfYmFzZSwgc2hhcGVyX2x1dCk7CiAJaWYgKHBsYW5lX3N0YXRlLT5sdXQzZF9mdW5jICYmCi0JCXBsYW5lX3N0YXRlLT5sdXQzZF9mdW5jLT5pbml0aWFsaXplZCA9PSB0cnVlKQorCQlwbGFuZV9zdGF0ZS0+bHV0M2RfZnVuYy0+c3RhdGUuYml0cy5pbml0aWFsaXplZCA9PSAxKQogCQlyZXN1bHQgPSBkcHBfYmFzZS0+ZnVuY3MtPmRwcF9wcm9ncmFtXzNkbHV0KGRwcF9iYXNlLAogCQkJCQkJCQkmcGxhbmVfc3RhdGUtPmx1dDNkX2Z1bmMtPmx1dF8zZCk7CiAJZWxzZQogCQlyZXN1bHQgPSBkcHBfYmFzZS0+ZnVuY3MtPmRwcF9wcm9ncmFtXzNkbHV0KGRwcF9iYXNlLCBOVUxMKTsKIAogCWlmIChwbGFuZV9zdGF0ZS0+bHV0M2RfZnVuYyAmJgotCQlwbGFuZV9zdGF0ZS0+bHV0M2RfZnVuYy0+aW5pdGlhbGl6ZWQgPT0gdHJ1ZSAmJgorCQlwbGFuZV9zdGF0ZS0+bHV0M2RfZnVuYy0+c3RhdGUuYml0cy5pbml0aWFsaXplZCA9PSAxICYmCiAJCXBsYW5lX3N0YXRlLT5sdXQzZF9mdW5jLT5oZHJfbXVsdGlwbGllciAhPSAwKQogCQlkcHBfYmFzZS0+ZnVuY3MtPmRwcF9zZXRfaGRyX211bHRpcGxpZXIoZHBwX2Jhc2UsCiAJCQkJcGxhbmVfc3RhdGUtPmx1dDNkX2Z1bmMtPmhkcl9tdWx0aXBsaWVyKTsKQEAgLTEwMDUsMTQgKzgyNiwyMCBAQCBib29sIGRjbjIwX3NldF9pbnB1dF90cmFuc2Zlcl9mdW5jKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAKIHN0YXRpYyB2b2lkIGRjbjIwX3VwZGF0ZV9vZG0oc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewotCXN0cnVjdCBwaXBlX2N0eCAqY29tYmluZV9waXBlID0gZGNfcmVzX2dldF9vZG1fYm90dG9tX3BpcGUocGlwZV9jdHgpOworCXN0cnVjdCBwaXBlX2N0eCAqb2RtX3BpcGU7CisJaW50IG9wcF9jbnQgPSAxOworCWludCBvcHBfaW5zdFtNQVhfUElQRVNdID0geyBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5vcHAtPmluc3QgfTsKIAotCWlmIChjb21iaW5lX3BpcGUpCisJZm9yIChvZG1fcGlwZSA9IHBpcGVfY3R4LT5uZXh0X29kbV9waXBlOyBvZG1fcGlwZTsgb2RtX3BpcGUgPSBvZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSkgeworCQlvcHBfaW5zdFtvcHBfY250XSA9IG9kbV9waXBlLT5zdHJlYW1fcmVzLm9wcC0+aW5zdDsKKwkJb3BwX2NudCsrOworCX0KKworCWlmIChvcHBfY250ID4gMSkKIAkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5zZXRfb2RtX2NvbWJpbmUoCiAJCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsCi0JCQkJY29tYmluZV9waXBlLT5zdHJlYW1fcmVzLm9wcC0+aW5zdCwKLQkJCQlwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLmhfYWN0aXZlLAotCQkJCXBpcGVfY3R4LT5zdHJlYW0tPnRpbWluZy5waXhlbF9lbmNvZGluZyk7CisJCQkJb3BwX2luc3QsIG9wcF9jbnQsCisJCQkJJnBpcGVfY3R4LT5zdHJlYW0tPnRpbWluZyk7CiAJZWxzZQogCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF9vZG1fYnlwYXNzKAogCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLCAmcGlwZV9jdHgtPnN0cmVhbS0+dGltaW5nKTsKQEAgLTEwMjgsNyArODU1LDggQEAgdm9pZCBkY24yMF9ibGFua19waXhlbF9kYXRhKAogCXN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSA9IHBpcGVfY3R4LT5zdHJlYW07CiAJZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcl9zcGFjZSA9IHN0cmVhbS0+b3V0cHV0X2NvbG9yX3NwYWNlOwogCWVudW0gY29udHJvbGxlcl9kcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuID0gQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fU09MSURfQ09MT1I7Ci0Jc3RydWN0IHBpcGVfY3R4ICpib3Rfb2RtX3BpcGUgPSBkY19yZXNfZ2V0X29kbV9ib3R0b21fcGlwZShwaXBlX2N0eCk7CisJc3RydWN0IHBpcGVfY3R4ICpvZG1fcGlwZTsKKwlpbnQgb2RtX2NudCA9IDE7CiAKIAlpbnQgd2lkdGggPSBzdHJlYW0tPnRpbWluZy5oX2FkZHJlc3NhYmxlICsgc3RyZWFtLT50aW1pbmcuaF9ib3JkZXJfbGVmdCArIHN0cmVhbS0+dGltaW5nLmhfYm9yZGVyX3JpZ2h0OwogCWludCBoZWlnaHQgPSBzdHJlYW0tPnRpbWluZy52X2FkZHJlc3NhYmxlICsgc3RyZWFtLT50aW1pbmcudl9ib3JkZXJfYm90dG9tICsgc3RyZWFtLT50aW1pbmcudl9ib3JkZXJfdG9wOwpAQCAtMTAzNiw4ICs4NjQsMTAgQEAgdm9pZCBkY24yMF9ibGFua19waXhlbF9kYXRhKAogCS8qIGdldCBvcHAgZHBnIGJsYW5rIGNvbG9yICovCiAJY29sb3Jfc3BhY2VfdG9fYmxhY2tfY29sb3IoZGMsIGNvbG9yX3NwYWNlLCAmYmxhY2tfY29sb3IpOwogCi0JaWYgKGJvdF9vZG1fcGlwZSkKLQkJd2lkdGggPSB3aWR0aCAvIDI7CisJZm9yIChvZG1fcGlwZSA9IHBpcGVfY3R4LT5uZXh0X29kbV9waXBlOyBvZG1fcGlwZTsgb2RtX3BpcGUgPSBvZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSkKKwkJb2RtX2NudCsrOworCisJd2lkdGggPSB3aWR0aCAvIG9kbV9jbnQ7CiAKIAlpZiAoYmxhbmspIHsKIAkJaWYgKHN0cmVhbV9yZXMtPmFibSkKQEAgLTEwNTcsMTAgKzg4NywxMCBAQCB2b2lkIGRjbjIwX2JsYW5rX3BpeGVsX2RhdGEoCiAJCQl3aWR0aCwKIAkJCWhlaWdodCk7CiAKLQlpZiAoYm90X29kbV9waXBlKSB7Ci0JCWJvdF9vZG1fcGlwZS0+c3RyZWFtX3Jlcy5vcHAtPmZ1bmNzLT5vcHBfc2V0X2Rpc3BfcGF0dGVybl9nZW5lcmF0b3IoCi0JCQkJYm90X29kbV9waXBlLT5zdHJlYW1fcmVzLm9wcCwKLQkJCQlkYy0+ZGVidWcudmlzdWFsX2NvbmZpcm0gIT0gVklTVUFMX0NPTkZJUk1fRElTQUJMRSA/CisJZm9yIChvZG1fcGlwZSA9IHBpcGVfY3R4LT5uZXh0X29kbV9waXBlOyBvZG1fcGlwZTsgb2RtX3BpcGUgPSBvZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSkgeworCQlvZG1fcGlwZS0+c3RyZWFtX3Jlcy5vcHAtPmZ1bmNzLT5vcHBfc2V0X2Rpc3BfcGF0dGVybl9nZW5lcmF0b3IoCisJCQkJb2RtX3BpcGUtPnN0cmVhbV9yZXMub3BwLAorCQkJCWRjLT5kZWJ1Zy52aXN1YWxfY29uZmlybSAhPSBWSVNVQUxfQ09ORklSTV9ESVNBQkxFICYmIGJsYW5rID8KIAkJCQkJCUNPTlRST0xMRVJfRFBfVEVTVF9QQVRURVJOX0NPTE9SUkFNUCA6IHRlc3RfcGF0dGVybiwKIAkJCQlzdHJlYW0tPnRpbWluZy5kaXNwbGF5X2NvbG9yX2RlcHRoLAogCQkJCSZibGFja19jb2xvciwKQEAgLTExMDYsNiArOTM2LDkgQEAgdm9pZCBkY24yMF9lbmFibGVfcGxhbmUoCiAJLyogZW5hYmxlIERDRkNMSyBjdXJyZW50IERDSFVCICovCiAJcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwLT5mdW5jcy0+aHVicF9jbGtfY250bChwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAsIHRydWUpOwogCisJLyogaW5pdGlhbGl6ZSBIVUJQIG9uIHBvd2VyIHVwICovCisJcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwLT5mdW5jcy0+aHVicF9pbml0KHBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicCk7CisKIAkvKiBtYWtlIHN1cmUgT1BQX1BJUEVfQ0xPQ0tfRU4gPSAxICovCiAJcGlwZV9jdHgtPnN0cmVhbV9yZXMub3BwLT5mdW5jcy0+b3BwX3BpcGVfY2xvY2tfY29udHJvbCgKIAkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLm9wcCwKQEAgLTEyMDEsNyArMTAzNCw3IEBAIHN0YXRpYyB2b2lkIGRjbjIwX3Byb2dyYW1fYWxsX3BpcGVfaW5fdHJlZSgKIAkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KQogewotCWlmIChwaXBlX2N0eC0+dG9wX3BpcGUgPT0gTlVMTCkgeworCWlmIChwaXBlX2N0eC0+dG9wX3BpcGUgPT0gTlVMTCAmJiAhcGlwZV9jdHgtPnByZXZfb2RtX3BpcGUpIHsKIAkJYm9vbCBibGFuayA9ICFpc19waXBlX3RyZWVfdmlzaWJsZShwaXBlX2N0eCk7CiAKIAkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5wcm9ncmFtX2dsb2JhbF9zeW5jKApAQCAtMTIyMyw4ICsxMDU2LDEzIEBAIHN0YXRpYyB2b2lkIGRjbjIwX3Byb2dyYW1fYWxsX3BpcGVfaW5fdHJlZSgKIAlpZiAocGlwZV9jdHgtPnBsYW5lX3N0YXRlICE9IE5VTEwpCiAJCWRjbjIwX3Byb2dyYW1fcGlwZShkYywgcGlwZV9jdHgsIGNvbnRleHQpOwogCi0JaWYgKHBpcGVfY3R4LT5ib3R0b21fcGlwZSAhPSBOVUxMICYmIHBpcGVfY3R4LT5ib3R0b21fcGlwZSAhPSBwaXBlX2N0eCkKKwlpZiAocGlwZV9jdHgtPmJvdHRvbV9waXBlICE9IE5VTEwpIHsKKwkJQVNTRVJUKHBpcGVfY3R4LT5ib3R0b21fcGlwZSAhPSBwaXBlX2N0eCk7CiAJCWRjbjIwX3Byb2dyYW1fYWxsX3BpcGVfaW5fdHJlZShkYywgcGlwZV9jdHgtPmJvdHRvbV9waXBlLCBjb250ZXh0KTsKKwl9IGVsc2UgaWYgKHBpcGVfY3R4LT5uZXh0X29kbV9waXBlICE9IE5VTEwpIHsKKwkJQVNTRVJUKHBpcGVfY3R4LT5uZXh0X29kbV9waXBlICE9IHBpcGVfY3R4KTsKKwkJZGNuMjBfcHJvZ3JhbV9hbGxfcGlwZV9pbl90cmVlKGRjLCBwaXBlX2N0eC0+bmV4dF9vZG1fcGlwZSwgY29udGV4dCk7CisJfQogfQogCiB2b2lkIGRjbjIwX3BpcGVfY29udHJvbF9sb2NrX2dsb2JhbCgKQEAgLTEyNjUsMTcgKzExMDMsNiBAQCB2b2lkIGRjbjIwX3BpcGVfY29udHJvbF9sb2NrKAogCWlmIChwaXBlLT5wbGFuZV9zdGF0ZSAhPSBOVUxMKQogCQlmbGlwX2ltbWVkaWF0ZSA9IHBpcGUtPnBsYW5lX3N0YXRlLT5mbGlwX2ltbWVkaWF0ZTsKIAotCWlmIChmbGlwX2ltbWVkaWF0ZSAmJiBsb2NrKSB7Ci0JCXdoaWxlIChwaXBlLT5wbGFuZV9yZXMuaHVicC0+ZnVuY3MtPmh1YnBfaXNfZmxpcF9wZW5kaW5nKHBpcGUtPnBsYW5lX3Jlcy5odWJwKSkJewotCQkJdWRlbGF5KDEpOwotCQl9Ci0KLQkJaWYgKHBpcGUtPmJvdHRvbV9waXBlICE9IE5VTEwpCi0JCQl3aGlsZSAocGlwZS0+Ym90dG9tX3BpcGUtPnBsYW5lX3Jlcy5odWJwLT5mdW5jcy0+aHVicF9pc19mbGlwX3BlbmRpbmcocGlwZS0+Ym90dG9tX3BpcGUtPnBsYW5lX3Jlcy5odWJwKSkJewotCQkJCXVkZWxheSgxKTsKLQkJCX0KLQl9Ci0KIAkvKiBJbiBmbGlwIGltbWVkaWF0ZSBhbmQgcGlwZSBzcGxpdHRpbmcgY2FzZSwgd2UgbmVlZCB0byB1c2UgR1NMCiAJICogZm9yIHN5bmNocm9uaXphdGlvbi4gT25seSBkbyBzZXR1cCBvbiBsb2NraW5nIGFuZCBvbiBmbGlwIHR5cGUgY2hhbmdlLgogCSAqLwpAQCAtMTMwMywxOCArMTEzMCwzMiBAQCBzdGF0aWMgdm9pZCBkY24yMF9hcHBseV9jdHhfZm9yX3N1cmZhY2UoCiAJCWludCBudW1fcGxhbmVzLAogCQlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpCiB7Ci0KKwljb25zdCB1bnNpZ25lZCBpbnQgVElNRU9VVF9GT1JfUElQRV9FTkFCTEVfTVMgPSAxMDA7CiAJaW50IGk7CiAJc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnOwogCWJvb2wgcmVtb3ZlZF9waXBlWzZdID0geyBmYWxzZSB9OwogCWJvb2wgaW50ZXJkZXBlbmRlbnRfdXBkYXRlID0gZmFsc2U7CiAJc3RydWN0IHBpcGVfY3R4ICp0b3BfcGlwZV90b19wcm9ncmFtID0KIAkJCWZpbmRfdG9wX3BpcGVfZm9yX3N0cmVhbShkYywgY29udGV4dCwgc3RyZWFtKTsKKwlzdHJ1Y3QgcGlwZV9jdHggKnByZXZfdG9wX3BpcGVfdG9fcHJvZ3JhbSA9CisJCQlmaW5kX3RvcF9waXBlX2Zvcl9zdHJlYW0oZGMsIGRjLT5jdXJyZW50X3N0YXRlLCBzdHJlYW0pOwogCURDX0xPR0dFUl9JTklUKGRjLT5jdHgtPmxvZ2dlcik7CiAKIAlpZiAoIXRvcF9waXBlX3RvX3Byb2dyYW0pCiAJCXJldHVybjsKIAorCS8qIENhcnJ5IG92ZXIgR1NMIGdyb3VwcyBpbiBjYXNlIHRoZSBjb250ZXh0IGlzIGNoYW5naW5nLiAqLworCWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykgeworCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4ID0gJmNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV07CisJCXN0cnVjdCBwaXBlX2N0eCAqb2xkX3BpcGVfY3R4ID0KKwkJCSZkYy0+Y3VycmVudF9zdGF0ZS0+cmVzX2N0eC5waXBlX2N0eFtpXTsKKworCQlpZiAocGlwZV9jdHgtPnN0cmVhbSA9PSBzdHJlYW0gJiYKKwkJICAgIHBpcGVfY3R4LT5zdHJlYW0gPT0gb2xkX3BpcGVfY3R4LT5zdHJlYW0pCisJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5nc2xfZ3JvdXAgPQorCQkJCW9sZF9waXBlX2N0eC0+c3RyZWFtX3Jlcy5nc2xfZ3JvdXA7CisJfQorCiAJdGcgPSB0b3BfcGlwZV90b19wcm9ncmFtLT5zdHJlYW1fcmVzLnRnOwogCiAJaW50ZXJkZXBlbmRlbnRfdXBkYXRlID0gdG9wX3BpcGVfdG9fcHJvZ3JhbS0+cGxhbmVfc3RhdGUgJiYKQEAgLTEzNDUsNyArMTE4Niw3IEBAIHN0YXRpYyB2b2lkIGRjbjIwX2FwcGx5X2N0eF9mb3Jfc3VyZmFjZSgKIAkJCWlmIChvbGRfcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcgPT0gdGcgJiYKIAkJCSAgICBvbGRfcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwICYmCiAJCQkgICAgb2xkX3BpcGVfY3R4LT5wbGFuZV9yZXMuaHVicC0+b3BwX2lkICE9IE9QUF9JRF9JTlZBTElEKQotCQkJCWRjbjIwX2Rpc2FibGVfcGxhbmUoZGMsIG9sZF9waXBlX2N0eCk7CisJCQkJZGMtPmh3c3MuZGlzYWJsZV9wbGFuZShkYywgb2xkX3BpcGVfY3R4KTsKIAkJfQogCiAJCWlmICgoIXBpcGVfY3R4LT5wbGFuZV9zdGF0ZSB8fApAQCAtMTM5MSw2ICsxMjMyLDIyIEBAIHN0YXRpYyB2b2lkIGRjbjIwX2FwcGx5X2N0eF9mb3Jfc3VyZmFjZSgKIAlmb3IgKGkgPSAwOyBpIDwgZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspCiAJCWlmIChyZW1vdmVkX3BpcGVbaV0pCiAJCQlkY24yMF9kaXNhYmxlX3BsYW5lKGRjLCAmZGMtPmN1cnJlbnRfc3RhdGUtPnJlc19jdHgucGlwZV9jdHhbaV0pOworCisJLyoKKwkgKiBJZiB3ZSBhcmUgZW5hYmxpbmcgYSBwaXBlLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIHBlbmRpbmcgY2xlYXIgYXMgdGhpcyBpcyBhIGNyaXRpY2FsCisJICogcGFydCBvZiB0aGUgZW5hYmxlIG9wZXJhdGlvbiBvdGhlcndpc2UsIERNIG1heSByZXF1ZXN0IGFuIGltbWVkaWF0ZSBmbGlwIHdoaWNoCisJICogd2lsbCBjYXVzZSBIVyB0byBwZXJmb3JtIGFuICJpbW1lZGlhdGUgZW5hYmxlIiAoYXMgb3Bwb3NlZCB0byAidnN5bmMgZW5hYmxlIikgd2hpY2gKKwkgKiBpcyB1bnN1cHBvcnRlZCBvbiBEQ04uCisJICovCisJaSA9IDA7CisJaWYgKG51bV9wbGFuZXMgPiAwICYmIHRvcF9waXBlX3RvX3Byb2dyYW0gJiYKKwkJCShwcmV2X3RvcF9waXBlX3RvX3Byb2dyYW0gPT0gTlVMTCB8fCBwcmV2X3RvcF9waXBlX3RvX3Byb2dyYW0tPnBsYW5lX3N0YXRlID09IE5VTEwpKSB7CisJCXdoaWxlIChpIDwgVElNRU9VVF9GT1JfUElQRV9FTkFCTEVfTVMgJiYKKwkJCQl0b3BfcGlwZV90b19wcm9ncmFtLT5wbGFuZV9yZXMuaHVicC0+ZnVuY3MtPmh1YnBfaXNfZmxpcF9wZW5kaW5nKHRvcF9waXBlX3RvX3Byb2dyYW0tPnBsYW5lX3Jlcy5odWJwKSkgeworCQkJaSArPSAxOworCQkJbXNsZWVwKDEpOworCQl9CisJfQogfQogCiAKQEAgLTE0MDAsMTYgKzEyNTcsMTYgQEAgdm9pZCBkY24yMF9wcmVwYXJlX2JhbmR3aWR0aCgKIHsKIAlzdHJ1Y3QgaHViYnViICpodWJidWIgPSBkYy0+cmVzX3Bvb2wtPmh1YmJ1YjsKIAorCWRjLT5jbGtfbWdyLT5mdW5jcy0+dXBkYXRlX2Nsb2NrcygKKwkJCWRjLT5jbGtfbWdyLAorCQkJY29udGV4dCwKKwkJCWZhbHNlKTsKKwogCS8qIHByb2dyYW0gZGNodWJidWIgd2F0ZXJtYXJrcyAqLwogCWh1YmJ1Yi0+ZnVuY3MtPnByb2dyYW1fd2F0ZXJtYXJrcyhodWJidWIsCiAJCQkJCSZjb250ZXh0LT5id19jdHguYncuZGNuLndhdGVybWFya3MsCiAJCQkJCWRjLT5yZXNfcG9vbC0+cmVmX2Nsb2Nrcy5kY2h1Yl9yZWZfY2xvY2tfaW5LaHogLyAxMDAwLAogCQkJCQlmYWxzZSk7Ci0KLQlkYy0+Y2xrX21nci0+ZnVuY3MtPnVwZGF0ZV9jbG9ja3MoCi0JCQlkYy0+Y2xrX21nciwKLQkJCWNvbnRleHQsCi0JCQlmYWxzZSk7CiB9CiAKIHZvaWQgZGNuMjBfb3B0aW1pemVfYmFuZHdpZHRoKApAQCAtMTQ2Miw4ICsxMzE5LDggQEAgYm9vbCBkY24yMF91cGRhdGVfYmFuZHdpZHRoKAogCiAJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF92dGdfcGFyYW1zKAogCQkJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50ZywgJnBpcGVfY3R4LT5zdHJlYW0tPnRpbWluZyk7Ci0KLQkJCWRjLT5od3NzLmJsYW5rX3BpeGVsX2RhdGEoZGMsIHBpcGVfY3R4LCBibGFuayk7CisJCQlpZiAocGlwZV9jdHgtPnByZXZfb2RtX3BpcGUgPT0gTlVMTCkKKwkJCQlkYy0+aHdzcy5ibGFua19waXhlbF9kYXRhKGRjLCBwaXBlX2N0eCwgYmxhbmspOwogCQl9CiAKIAkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwLT5mdW5jcy0+aHVicF9zZXR1cCgKQEAgLTE1NTMsMTIgKzE0MTAsMTUgQEAgc3RhdGljIHZvaWQgZGNuMjBfZGlzYWJsZV9zdHJlYW1fZ2F0aW5nKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgKIHsKICNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAogCXN0cnVjdCBkY2VfaHdzZXEgKmh3cyA9IGRjLT5od3NlcTsKLQlzdHJ1Y3QgcGlwZV9jdHggKmJvdF9vZG1fcGlwZSA9IGRjX3Jlc19nZXRfb2RtX2JvdHRvbV9waXBlKHBpcGVfY3R4KTsKIAogCWlmIChwaXBlX2N0eC0+c3RyZWFtX3Jlcy5kc2MpIHsKKwkJc3RydWN0IHBpcGVfY3R4ICpvZG1fcGlwZSA9IHBpcGVfY3R4LT5uZXh0X29kbV9waXBlOworCiAJCWRjbjIwX2RzY19wZ19jb250cm9sKGh3cywgcGlwZV9jdHgtPnN0cmVhbV9yZXMuZHNjLT5pbnN0LCB0cnVlKTsKLQkJaWYgKGJvdF9vZG1fcGlwZSkKLQkJCWRjbjIwX2RzY19wZ19jb250cm9sKGh3cywgYm90X29kbV9waXBlLT5zdHJlYW1fcmVzLmRzYy0+aW5zdCwgdHJ1ZSk7CisJCXdoaWxlIChvZG1fcGlwZSkgeworCQkJZGNuMjBfZHNjX3BnX2NvbnRyb2woaHdzLCBvZG1fcGlwZS0+c3RyZWFtX3Jlcy5kc2MtPmluc3QsIHRydWUpOworCQkJb2RtX3BpcGUgPSBvZG1fcGlwZS0+bmV4dF9vZG1fcGlwZTsKKwkJfQogCX0KICNlbmRpZgogfQpAQCAtMTU2NywxMiArMTQyNywxNSBAQCBzdGF0aWMgdm9pZCBkY24yMF9lbmFibGVfc3RyZWFtX2dhdGluZyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCiAJc3RydWN0IGRjZV9od3NlcSAqaHdzID0gZGMtPmh3c2VxOwotCXN0cnVjdCBwaXBlX2N0eCAqYm90X29kbV9waXBlID0gZGNfcmVzX2dldF9vZG1fYm90dG9tX3BpcGUocGlwZV9jdHgpOwogCiAJaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLmRzYykgeworCQlzdHJ1Y3QgcGlwZV9jdHggKm9kbV9waXBlID0gcGlwZV9jdHgtPm5leHRfb2RtX3BpcGU7CisKIAkJZGNuMjBfZHNjX3BnX2NvbnRyb2woaHdzLCBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5kc2MtPmluc3QsIGZhbHNlKTsKLQkJaWYgKGJvdF9vZG1fcGlwZSkKLQkJCWRjbjIwX2RzY19wZ19jb250cm9sKGh3cywgYm90X29kbV9waXBlLT5zdHJlYW1fcmVzLmRzYy0+aW5zdCwgZmFsc2UpOworCQl3aGlsZSAob2RtX3BpcGUpIHsKKwkJCWRjbjIwX2RzY19wZ19jb250cm9sKGh3cywgb2RtX3BpcGUtPnN0cmVhbV9yZXMuZHNjLT5pbnN0LCBmYWxzZSk7CisJCQlvZG1fcGlwZSA9IG9kbV9waXBlLT5uZXh0X29kbV9waXBlOworCQl9CiAJfQogI2VuZGlmCiB9CkBAIC0xNTk3LDkgKzE0NjAsOSBAQCB2b2lkIGRjbjIwX3NldF9kbWRhdGFfYXR0cmlidXRlcyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCWh1YnAtPmZ1bmNzLT5kbWRhdGFfc2V0X2F0dHJpYnV0ZXMoaHVicCwgJmF0dHIpOwogfQogCi12b2lkIGRjbjIwX2Rpc2FibGVfc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGludCBvcHRpb24pCit2b2lkIGRjbjIwX2Rpc2FibGVfc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiB7Ci0JZGNlMTEwX2Rpc2FibGVfc3RyZWFtKHBpcGVfY3R4LCBvcHRpb24pOworCWRjZTExMF9kaXNhYmxlX3N0cmVhbShwaXBlX2N0eCk7CiB9CiAKIHN0YXRpYyB2b2lkIGRjbjIwX2luaXRfdm1fY3R4KApAQCAtMTYzNyw2ICsxNTAwLDcgQEAgc3RhdGljIGludCBkY24yMF9pbml0X3N5c19jdHgoc3RydWN0IGRjZV9od3NlcSAqaHdzLCBzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfcGgKIAljb25maWcuZ2FydF9jb25maWcucGFnZV90YWJsZV9zdGFydF9hZGRyID0gcGFfY29uZmlnLT5nYXJ0X2NvbmZpZy5wYWdlX3RhYmxlX3N0YXJ0X2FkZHI7CiAJY29uZmlnLmdhcnRfY29uZmlnLnBhZ2VfdGFibGVfZW5kX2FkZHIgPSBwYV9jb25maWctPmdhcnRfY29uZmlnLnBhZ2VfdGFibGVfZW5kX2FkZHI7CiAJY29uZmlnLmdhcnRfY29uZmlnLnBhZ2VfdGFibGVfYmFzZV9hZGRyID0gcGFfY29uZmlnLT5nYXJ0X2NvbmZpZy5wYWdlX3RhYmxlX2Jhc2VfYWRkcjsKKwljb25maWcucGFnZV90YWJsZV9kZWZhdWx0X3BhZ2VfYWRkciA9IHBhX2NvbmZpZy0+cGFnZV90YWJsZV9kZWZhdWx0X3BhZ2VfYWRkcjsKIAogCXJldHVybiBkYy0+cmVzX3Bvb2wtPmh1YmJ1Yi0+ZnVuY3MtPmluaXRfZGNodWJfc3lzX2N0eChkYy0+cmVzX3Bvb2wtPmh1YmJ1YiwgJmNvbmZpZyk7CiB9CkBAIC0xNzAyLDE4ICsxNTY2LDIyIEBAIHZvaWQgZGNuMjBfdW5ibGFua19zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAlzdHJ1Y3QgZW5jb2Rlcl91bmJsYW5rX3BhcmFtIHBhcmFtcyA9IHsgeyAwIH0gfTsKIAlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0gPSBwaXBlX2N0eC0+c3RyZWFtOwogCXN0cnVjdCBkY19saW5rICpsaW5rID0gc3RyZWFtLT5saW5rOwotCXBhcmFtcy5vZG0gPSBkY19yZXNfZ2V0X29kbV9ib3R0b21fcGlwZShwaXBlX2N0eCk7CisJc3RydWN0IHBpcGVfY3R4ICpvZG1fcGlwZTsKIAorCXBhcmFtcy5vcHBfY250ID0gMTsKKwlmb3IgKG9kbV9waXBlID0gcGlwZV9jdHgtPm5leHRfb2RtX3BpcGU7IG9kbV9waXBlOyBvZG1fcGlwZSA9IG9kbV9waXBlLT5uZXh0X29kbV9waXBlKSB7CisJCXBhcmFtcy5vcHBfY250Kys7CisJfQogCS8qIG9ubHkgMyBpdGVtcyBiZWxvdyBhcmUgdXNlZCBieSB1bmJsYW5rICovCiAJcGFyYW1zLnRpbWluZyA9IHBpcGVfY3R4LT5zdHJlYW0tPnRpbWluZzsKIAogCXBhcmFtcy5saW5rX3NldHRpbmdzLmxpbmtfcmF0ZSA9IGxpbmtfc2V0dGluZ3MtPmxpbmtfcmF0ZTsKIAogCWlmIChkY19pc19kcF9zaWduYWwocGlwZV9jdHgtPnN0cmVhbS0+c2lnbmFsKSkgewotCQlpZiAob3B0YzFfaXNfdHdvX3BpeGVsc19wZXJfY29udGFpbnRlcigmc3RyZWFtLT50aW1pbmcpIHx8IHBhcmFtcy5vZG0pCisJCWlmIChvcHRjMV9pc190d29fcGl4ZWxzX3Blcl9jb250YWludGVyKCZzdHJlYW0tPnRpbWluZykgfHwgcGFyYW1zLm9wcF9jbnQgPiAxKQogCQkJcGFyYW1zLnRpbWluZy5waXhfY2xrXzEwMGh6IC89IDI7CiAJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmZ1bmNzLT5kcF9zZXRfb2RtX2NvbWJpbmUoCi0JCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYywgcGFyYW1zLm9kbSk7CisJCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYywgcGFyYW1zLm9wcF9jbnQgPiAxKTsKIAkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+ZnVuY3MtPmRwX3VuYmxhbmsocGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYywgJnBhcmFtcyk7CiAJfQogCkBAIC0xNzQ5LDE0ICsxNjE3LDI5IEBAIHN0YXRpYyB2b2lkIGRjbjIwX3Jlc2V0X2JhY2tfZW5kX2Zvcl9waXBlKAogCWlmICghSVNfRlBHQV9NQVhJTVVTX0RDKGRjLT5jdHgtPmRjZV9lbnZpcm9ubWVudCkpIHsKIAkJLyogRFBNUyBtYXkgYWxyZWFkeSBkaXNhYmxlICovCiAJCWlmICghcGlwZV9jdHgtPnN0cmVhbS0+ZHBtc19vZmYpCi0JCQljb3JlX2xpbmtfZGlzYWJsZV9zdHJlYW0ocGlwZV9jdHgsIEZSRUVfQUNRVUlSRURfUkVTT1VSQ0UpOwotCQllbHNlIGlmIChwaXBlX2N0eC0+c3RyZWFtX3Jlcy5hdWRpbykgewotCQkJZGMtPmh3c3MuZGlzYWJsZV9hdWRpb19zdHJlYW0ocGlwZV9jdHgsIEZSRUVfQUNRVUlSRURfUkVTT1VSQ0UpOworCQkJY29yZV9saW5rX2Rpc2FibGVfc3RyZWFtKHBpcGVfY3R4KTsKKwkJZWxzZSBpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMuYXVkaW8pCisJCQlkYy0+aHdzcy5kaXNhYmxlX2F1ZGlvX3N0cmVhbShwaXBlX2N0eCk7CisKKwkJLyogZnJlZSBhY3F1aXJlZCByZXNvdXJjZXMgKi8KKwkJaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLmF1ZGlvKSB7CisJCQkvKmRpc2FibGUgYXpfZW5kcG9pbnQqLworCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuYXVkaW8tPmZ1bmNzLT5hel9kaXNhYmxlKHBpcGVfY3R4LT5zdHJlYW1fcmVzLmF1ZGlvKTsKKworCQkJLypmcmVlIGF1ZGlvKi8KKwkJCWlmIChkYy0+Y2Fwcy5keW5hbWljX2F1ZGlvID09IHRydWUpIHsKKwkJCQkvKndlIGhhdmUgdG8gZHluYW1pYyBhcmJpdHJhdGUgdGhlIGF1ZGlvIGVuZHBvaW50cyovCisJCQkJLyp3ZSBmcmVlIHRoZSByZXNvdXJjZSwgbmVlZCByZXNldCBpc19hdWRpb19hY3F1aXJlZCovCisJCQkJdXBkYXRlX2F1ZGlvX3VzYWdlKCZkYy0+Y3VycmVudF9zdGF0ZS0+cmVzX2N0eCwgZGMtPnJlc19wb29sLAorCQkJCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuYXVkaW8sIGZhbHNlKTsKKwkJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5hdWRpbyA9IE5VTEw7CisJCQl9CiAJCX0KIAl9CiAjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKLQllbHNlIGlmIChwaXBlX2N0eC0+c3RyZWFtX3Jlcy5kc2MpCisJZWxzZSBpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMuZHNjKSB7CiAJCWRwX3NldF9kc2NfZW5hYmxlKHBpcGVfY3R4LCBmYWxzZSk7CisJfQogI2VuZGlmCiAKIAkvKiBieSB1cHBlciBjYWxsZXIgbG9vcCwgcGFyZW50IHBpcGU6IHBpcGUwLCB3aWxsIGJlIHJlc2V0IGxhc3QuCkBAIC0xNzcwLDYgKzE2NTMsMTAgQEAgc3RhdGljIHZvaWQgZGNuMjBfcmVzZXRfYmFja19lbmRfZm9yX3BpcGUoCiAJCWlmIChwaXBlX2N0eC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF9vZG1fYnlwYXNzKQogCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5zZXRfb2RtX2J5cGFzcygKIAkJCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsICZwaXBlX2N0eC0+c3RyZWFtLT50aW1pbmcpOworCisJCWlmIChwaXBlX2N0eC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF9kcnIpCisJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF9kcnIoCisJCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLCBOVUxMKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspCkBAIC0xNzk5LDcgKzE2ODYsNyBAQCBzdGF0aWMgdm9pZCBkY24yMF9yZXNldF9od19jdHhfd3JhcCgKIAkJaWYgKCFwaXBlX2N0eF9vbGQtPnN0cmVhbSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChwaXBlX2N0eF9vbGQtPnRvcF9waXBlKQorCQlpZiAocGlwZV9jdHhfb2xkLT50b3BfcGlwZSB8fCBwaXBlX2N0eF9vbGQtPnByZXZfb2RtX3BpcGUpCiAJCQljb250aW51ZTsKIAogCQlpZiAoIXBpcGVfY3R4LT5zdHJlYW0gfHwKQEAgLTE4MTksNyArMTcwNiw3IEBAIHN0YXRpYyB2b2lkIGRjbjIwX3VwZGF0ZV9tcGNjKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiB7CiAJc3RydWN0IGh1YnAgKmh1YnAgPSBwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnA7CiAJc3RydWN0IG1wY2NfYmxuZF9jZmcgYmxuZF9jZmcgPSB7IHswfSB9OwotCWJvb2wgcGVyX3BpeGVsX2FscGhhID0gcGlwZV9jdHgtPnBsYW5lX3N0YXRlLT5wZXJfcGl4ZWxfYWxwaGEgJiYgcGlwZV9jdHgtPmJvdHRvbV9waXBlOworCWJvb2wgcGVyX3BpeGVsX2FscGhhID0gcGlwZV9jdHgtPnBsYW5lX3N0YXRlLT5wZXJfcGl4ZWxfYWxwaGE7CiAJaW50IG1wY2NfaWQ7CiAJc3RydWN0IG1wY2MgKm5ld19tcGNjOwogCXN0cnVjdCBtcGMgKm1wYyA9IGRjLT5yZXNfcG9vbC0+bXBjOwpAQCAtMjAxMiwxNCArMTg5OSwxOTggQEAgc3RhdGljIHZvaWQgZGNuMjBfc2V0X2ZsaXBfY29udHJvbF9nc2woCiAKIH0KIAorc3RhdGljIHZvaWQgZGNuMjBfZW5hYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQoreworCWVudW0gZGNfbGFuZV9jb3VudCBsYW5lX2NvdW50ID0KKwkJcGlwZV9jdHgtPnN0cmVhbS0+bGluay0+Y3VyX2xpbmtfc2V0dGluZ3MubGFuZV9jb3VudDsKKworCXN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5nID0gJnBpcGVfY3R4LT5zdHJlYW0tPnRpbWluZzsKKwlzdHJ1Y3QgZGNfbGluayAqbGluayA9IHBpcGVfY3R4LT5zdHJlYW0tPmxpbms7CisKKwl1aW50MzJfdCBhY3RpdmVfdG90YWxfd2l0aF9ib3JkZXJzOworCXVpbnQzMl90IGVhcmx5X2NvbnRyb2wgPSAwOworCXN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZyA9IHBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnOworCisJLyogRm9yIE1TVCwgdGhlcmUgYXJlIG11bHRpcGx5IHN0cmVhbSBnbyB0byBvbmx5IG9uZSBsaW5rLgorCSAqIGNvbm5lY3QgRElHIGJhY2tfZW5kIHRvIGZyb250X2VuZCB3aGlsZSBlbmFibGVfc3RyZWFtIGFuZAorCSAqIGRpc2Nvbm5lY3QgdGhlbSBkdXJpbmcgZGlzYWJsZV9zdHJlYW0KKwkgKiBCWSB0aGlzLCBpdCBpcyBsb2dpYyBjbGVhbiB0byBzZXBhcmF0ZSBzdHJlYW0gYW5kIGxpbmsKKwkgKi8KKwlsaW5rLT5saW5rX2VuYy0+ZnVuY3MtPmNvbm5lY3RfZGlnX2JlX3RvX2ZlKGxpbmstPmxpbmtfZW5jLAorCQkJCQkJICAgIHBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMtPmlkLCB0cnVlKTsKKworCWlmIChsaW5rLT5kYy0+aHdzcy5wcm9ncmFtX2RtZGF0YV9lbmdpbmUpCisJCWxpbmstPmRjLT5od3NzLnByb2dyYW1fZG1kYXRhX2VuZ2luZShwaXBlX2N0eCk7CisKKwlsaW5rLT5kYy0+aHdzcy51cGRhdGVfaW5mb19mcmFtZShwaXBlX2N0eCk7CisKKwkvKiBlbmFibGUgZWFybHkgY29udHJvbCB0byBhdm9pZCBjb3JydXB0aW9uIG9uIERQIG1vbml0b3IqLworCWFjdGl2ZV90b3RhbF93aXRoX2JvcmRlcnMgPQorCQkJdGltaW5nLT5oX2FkZHJlc3NhYmxlCisJCQkJKyB0aW1pbmctPmhfYm9yZGVyX2xlZnQKKwkJCQkrIHRpbWluZy0+aF9ib3JkZXJfcmlnaHQ7CisKKwlpZiAobGFuZV9jb3VudCAhPSAwKQorCQllYXJseV9jb250cm9sID0gYWN0aXZlX3RvdGFsX3dpdGhfYm9yZGVycyAlIGxhbmVfY291bnQ7CisKKwlpZiAoZWFybHlfY29udHJvbCA9PSAwKQorCQllYXJseV9jb250cm9sID0gbGFuZV9jb3VudDsKKworCXRnLT5mdW5jcy0+c2V0X2Vhcmx5X2NvbnRyb2wodGcsIGVhcmx5X2NvbnRyb2wpOworCisJLyogZW5hYmxlIGF1ZGlvIG9ubHkgd2l0aGluIG1vZGUgc2V0ICovCisJaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLmF1ZGlvICE9IE5VTEwpIHsKKwkJaWYgKGRjX2lzX2RwX3NpZ25hbChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwpKQorCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuc3RyZWFtX2VuYy0+ZnVuY3MtPmRwX2F1ZGlvX2VuYWJsZShwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGRjbjIwX3Byb2dyYW1fZG1kYXRhX2VuZ2luZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQoreworCXN0cnVjdCBkY19zdHJlYW1fc3RhdGUgICAgKnN0cmVhbSAgICAgPSBwaXBlX2N0eC0+c3RyZWFtOworCXN0cnVjdCBodWJwICAgICAgICAgICAgICAgKmh1YnAgICAgICAgPSBwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnA7CisJYm9vbCAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlICAgICA9IGZhbHNlOworCXN0cnVjdCBzdHJlYW1fZW5jb2RlciAgICAgKnN0cmVhbV9lbmMgPSBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jOworCWVudW0gZHluYW1pY19tZXRhZGF0YV9tb2RlIG1vZGUgICAgICAgPSBkY19pc19kcF9zaWduYWwoc3RyZWFtLT5zaWduYWwpCisJCQkJCQkJPyBkbWRhdGFfZHAKKwkJCQkJCQk6IGRtZGF0YV9oZG1pOworCisJLyogaWYgdXNpbmcgZHluYW1pYyBtZXRhLCBkb24ndCBzZXQgdXAgZ2VuZXJpYyBpbmZvcGFja2V0cyAqLworCWlmIChwaXBlX2N0eC0+c3RyZWFtLT5kbWRhdGFfYWRkcmVzcy5xdWFkX3BhcnQgIT0gMCkgeworCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5lbmNvZGVyX2luZm9fZnJhbWUuaGRyc21kLnZhbGlkID0gZmFsc2U7CisJCWVuYWJsZSA9IHRydWU7CisJfQorCisJaWYgKCFodWJwKQorCQlyZXR1cm47CisKKwlpZiAoIXN0cmVhbV9lbmMgfHwgIXN0cmVhbV9lbmMtPmZ1bmNzLT5zZXRfZHluYW1pY19tZXRhZGF0YSkKKwkJcmV0dXJuOworCisJc3RyZWFtX2VuYy0+ZnVuY3MtPnNldF9keW5hbWljX21ldGFkYXRhKHN0cmVhbV9lbmMsIGVuYWJsZSwKKwkJCQkJCWh1YnAtPmluc3QsIG1vZGUpOworfQorCitzdGF0aWMgdm9pZCBkY24yMF9mcGdhX2luaXRfaHcoc3RydWN0IGRjICpkYykKK3sKKwlpbnQgaSwgajsKKwlzdHJ1Y3QgZGNlX2h3c2VxICpod3MgPSBkYy0+aHdzZXE7CisJc3RydWN0IHJlc291cmNlX3Bvb2wgKnJlc19wb29sID0gZGMtPnJlc19wb29sOworCXN0cnVjdCBkY19zdGF0ZSAgKmNvbnRleHQgPSBkYy0+Y3VycmVudF9zdGF0ZTsKKworCWlmIChkYy0+Y2xrX21nciAmJiBkYy0+Y2xrX21nci0+ZnVuY3MtPmluaXRfY2xvY2tzKQorCQlkYy0+Y2xrX21nci0+ZnVuY3MtPmluaXRfY2xvY2tzKGRjLT5jbGtfbWdyKTsKKworCS8vIEluaXRpYWxpemUgdGhlIGRjY2cKKwlpZiAocmVzX3Bvb2wtPmRjY2ctPmZ1bmNzLT5kY2NnX2luaXQpCisJCXJlc19wb29sLT5kY2NnLT5mdW5jcy0+ZGNjZ19pbml0KHJlc19wb29sLT5kY2NnKTsKKworCS8vRW5hYmxlIGFiaWxpdHkgdG8gcG93ZXIgZ2F0ZSAvIGRvbid0IGZvcmNlIHBvd2VyIG9uIHBlcm1hbmVudGx5CisJZGMtPmh3c3MuZW5hYmxlX3Bvd2VyX2dhdGluZ19wbGFuZShod3MsIHRydWUpOworCisJLy8gU3BlY2lmaWMgdG8gRlBHQSBkY2NnIGFuZCByZWdpc3RlcnMKKwlSRUdfV1JJVEUoUkJCTUlGX1RJTUVPVVRfRElTLCAweEZGRkZGRkZGKTsKKwlSRUdfV1JJVEUoUkJCTUlGX1RJTUVPVVRfRElTXzIsIDB4RkZGRkZGRkYpOworCisJZGNuMjBfZGNjZ19pbml0KGh3cyk7CisKKwlSRUdfVVBEQVRFKERDSFVCQlVCX0dMT0JBTF9USU1FUl9DTlRMLCBEQ0hVQkJVQl9HTE9CQUxfVElNRVJfUkVGRElWLCAyKTsKKwlSRUdfVVBEQVRFKERDSFVCQlVCX0dMT0JBTF9USU1FUl9DTlRMLCBEQ0hVQkJVQl9HTE9CQUxfVElNRVJfRU5BQkxFLCAxKTsKKwlSRUdfV1JJVEUoUkVGQ0xLX0NOVEwsIDApOworCS8vCisKKworCS8qIEJsYW5rIHBpeGVsIGRhdGEgd2l0aCBPUFAgRFBHICovCisJZm9yIChpID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+dGltaW5nX2dlbmVyYXRvcl9jb3VudDsgaSsrKSB7CisJCXN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZyA9IGRjLT5yZXNfcG9vbC0+dGltaW5nX2dlbmVyYXRvcnNbaV07CisKKwkJaWYgKHRnLT5mdW5jcy0+aXNfdGdfZW5hYmxlZCh0ZykpCisJCQlkY24yMF9pbml0X2JsYW5rKGRjLCB0Zyk7CisJfQorCisJZm9yIChpID0gMDsgaSA8IHJlc19wb29sLT50aW1pbmdfZ2VuZXJhdG9yX2NvdW50OyBpKyspIHsKKwkJc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnID0gZGMtPnJlc19wb29sLT50aW1pbmdfZ2VuZXJhdG9yc1tpXTsKKworCQlpZiAodGctPmZ1bmNzLT5pc190Z19lbmFibGVkKHRnKSkKKwkJCXRnLT5mdW5jcy0+bG9jayh0Zyk7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7CisJCXN0cnVjdCBkcHAgKmRwcCA9IHJlc19wb29sLT5kcHBzW2ldOworCisJCWRwcC0+ZnVuY3MtPmRwcF9yZXNldChkcHApOworCX0KKworCS8qIFJlc2V0IGFsbCBNUENDIG11eGVzICovCisJcmVzX3Bvb2wtPm1wYy0+ZnVuY3MtPm1wY19pbml0KHJlc19wb29sLT5tcGMpOworCisJLyogaW5pdGlhbGl6ZSBPUFAgbXBjX3RyZWUgcGFyYW1ldGVyICovCisJZm9yIChpID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+cmVzX2NhcC0+bnVtX29wcDsgaSsrKSB7CisJCXJlc19wb29sLT5vcHBzW2ldLT5tcGNfdHJlZV9wYXJhbXMub3BwX2lkID0gcmVzX3Bvb2wtPm9wcHNbaV0tPmluc3Q7CisJCXJlc19wb29sLT5vcHBzW2ldLT5tcGNfdHJlZV9wYXJhbXMub3BwX2xpc3QgPSBOVUxMOworCQlmb3IgKGogPSAwOyBqIDwgTUFYX1BJUEVTOyBqKyspCisJCQlyZXNfcG9vbC0+b3Bwc1tpXS0+bXBjY19kaXNjb25uZWN0X3BlbmRpbmdbal0gPSBmYWxzZTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspIHsKKwkJc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnID0gZGMtPnJlc19wb29sLT50aW1pbmdfZ2VuZXJhdG9yc1tpXTsKKwkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCA9ICZjb250ZXh0LT5yZXNfY3R4LnBpcGVfY3R4W2ldOworCQlzdHJ1Y3QgaHVicCAqaHVicCA9IGRjLT5yZXNfcG9vbC0+aHVicHNbaV07CisJCXN0cnVjdCBkcHAgKmRwcCA9IGRjLT5yZXNfcG9vbC0+ZHBwc1tpXTsKKworCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50ZyA9IHRnOworCQlwaXBlX2N0eC0+cGlwZV9pZHggPSBpOworCisJCXBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicCA9IGh1YnA7CisJCXBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwID0gZHBwOworCQlwaXBlX2N0eC0+cGxhbmVfcmVzLm1wY2NfaW5zdCA9IGRwcC0+aW5zdDsKKwkJaHVicC0+bXBjY19pZCA9IGRwcC0+aW5zdDsKKwkJaHVicC0+b3BwX2lkID0gT1BQX0lEX0lOVkFMSUQ7CisJCWh1YnAtPnBvd2VyX2dhdGVkID0gZmFsc2U7CisJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLm9wcCA9IE5VTEw7CisKKwkJaHVicC0+ZnVuY3MtPmh1YnBfaW5pdChodWJwKTsKKworCQkvL2RjLT5yZXNfcG9vbC0+b3Bwc1tpXS0+bXBjX3RyZWVfcGFyYW1zLm9wcF9pZCA9IGRjLT5yZXNfcG9vbC0+b3Bwc1tpXS0+aW5zdDsKKwkJLy9kYy0+cmVzX3Bvb2wtPm9wcHNbaV0tPm1wY190cmVlX3BhcmFtcy5vcHBfbGlzdCA9IE5VTEw7CisJCWRjLT5yZXNfcG9vbC0+b3Bwc1tpXS0+bXBjY19kaXNjb25uZWN0X3BlbmRpbmdbcGlwZV9jdHgtPnBsYW5lX3Jlcy5tcGNjX2luc3RdID0gdHJ1ZTsKKwkJcGlwZV9jdHgtPnN0cmVhbV9yZXMub3BwID0gZGMtPnJlc19wb29sLT5vcHBzW2ldOworCQkvKnRvIGRvKi8KKwkJaHdzczFfcGxhbmVfYXRvbWljX2Rpc2Nvbm5lY3QoZGMsIHBpcGVfY3R4KTsKKwl9CisKKwkvKiBpbml0aWFsaXplIERXQiBwb2ludGVyIHRvIE1DSUZfV0IgKi8KKwlmb3IgKGkgPSAwOyBpIDwgcmVzX3Bvb2wtPnJlc19jYXAtPm51bV9kd2I7IGkrKykKKwkJcmVzX3Bvb2wtPmR3YmNbaV0tPm1jaWYgPSByZXNfcG9vbC0+bWNpZl93YltpXTsKKworCWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JfY291bnQ7IGkrKykgeworCQlzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcgPSBkYy0+cmVzX3Bvb2wtPnRpbWluZ19nZW5lcmF0b3JzW2ldOworCisJCWlmICh0Zy0+ZnVuY3MtPmlzX3RnX2VuYWJsZWQodGcpKQorCQkJdGctPmZ1bmNzLT51bmxvY2sodGcpOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykgeworCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4ID0gJmNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV07CisKKwkJZGMtPmh3c3MuZGlzYWJsZV9wbGFuZShkYywgcGlwZV9jdHgpOworCisJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnID0gTlVMTDsKKwkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwID0gTlVMTDsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgZGMtPnJlc19wb29sLT50aW1pbmdfZ2VuZXJhdG9yX2NvdW50OyBpKyspIHsKKwkJc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnID0gZGMtPnJlc19wb29sLT50aW1pbmdfZ2VuZXJhdG9yc1tpXTsKKworCQl0Zy0+ZnVuY3MtPnRnX2luaXQodGcpOworCX0KK30KKwogdm9pZCBkY24yMF9od19zZXF1ZW5jZXJfY29uc3RydWN0KHN0cnVjdCBkYyAqZGMpCiB7CiAJZGNuMTBfaHdfc2VxdWVuY2VyX2NvbnN0cnVjdChkYyk7Ci0JZGMtPmh3c3MuaW5pdF9odyA9IGRjbjIwX2luaXRfaHc7Ci0JZGMtPmh3c3MuaW5pdF9waXBlcyA9IE5VTEw7CiAJZGMtPmh3c3MudW5ibGFua19zdHJlYW0gPSBkY24yMF91bmJsYW5rX3N0cmVhbTsKIAlkYy0+aHdzcy51cGRhdGVfcGxhbmVfYWRkciA9IGRjbjIwX3VwZGF0ZV9wbGFuZV9hZGRyOwotCWRjLT5od3NzLmRpc2FibGVfcGxhbmUgPSBkY24yMF9kaXNhYmxlX3BsYW5lLAogCWRjLT5od3NzLmVuYWJsZV9zdHJlYW1fdGltaW5nID0gZGNuMjBfZW5hYmxlX3N0cmVhbV90aW1pbmc7CiAJZGMtPmh3c3MucHJvZ3JhbV90cmlwbGVidWZmZXIgPSBkY24yMF9wcm9ncmFtX3RyaXBsZUJ1ZmZlcjsKIAlkYy0+aHdzcy5zZXRfaW5wdXRfdHJhbnNmZXJfZnVuYyA9IGRjbjIwX3NldF9pbnB1dF90cmFuc2Zlcl9mdW5jOwpAQCAtMjAzNiw2ICsyMTA3LDggQEAgdm9pZCBkY24yMF9od19zZXF1ZW5jZXJfY29uc3RydWN0KHN0cnVjdCBkYyAqZGMpCiAJZGMtPmh3c3MudXBkYXRlX29kbSA9IGRjbjIwX3VwZGF0ZV9vZG07CiAJZGMtPmh3c3MuYmxhbmtfcGl4ZWxfZGF0YSA9IGRjbjIwX2JsYW5rX3BpeGVsX2RhdGE7CiAJZGMtPmh3c3MuZG1kYXRhX3N0YXR1c19kb25lID0gZGNuMjBfZG1kYXRhX3N0YXR1c19kb25lOworCWRjLT5od3NzLnByb2dyYW1fZG1kYXRhX2VuZ2luZSA9IGRjbjIwX3Byb2dyYW1fZG1kYXRhX2VuZ2luZTsKKwlkYy0+aHdzcy5lbmFibGVfc3RyZWFtID0gZGNuMjBfZW5hYmxlX3N0cmVhbTsKIAlkYy0+aHdzcy5kaXNhYmxlX3N0cmVhbSA9IGRjbjIwX2Rpc2FibGVfc3RyZWFtOwogCWRjLT5od3NzLmluaXRfc3lzX2N0eCA9IGRjbjIwX2luaXRfc3lzX2N0eDsKIAlkYy0+aHdzcy5pbml0X3ZtX2N0eCA9IGRjbjIwX2luaXRfdm1fY3R4OwpAQCAtMjA0NSw1ICsyMTE4LDIzIEBAIHZvaWQgZGNuMjBfaHdfc2VxdWVuY2VyX2NvbnN0cnVjdChzdHJ1Y3QgZGMgKmRjKQogCWRjLT5od3NzLnJlc2V0X2h3X2N0eF93cmFwID0gZGNuMjBfcmVzZXRfaHdfY3R4X3dyYXA7CiAJZGMtPmh3c3MudXBkYXRlX21wY2MgPSBkY24yMF91cGRhdGVfbXBjYzsKIAlkYy0+aHdzcy5zZXRfZmxpcF9jb250cm9sX2dzbCA9IGRjbjIwX3NldF9mbGlwX2NvbnRyb2xfZ3NsOwotCWRjLT5od3NzLmRpZF91bmRlcmZsb3dfb2NjdXIgPSBkY24xMF9kaWRfdW5kZXJmbG93X29jY3VyOworCWRjLT5od3NzLmluaXRfYmxhbmsgPSBkY24yMF9pbml0X2JsYW5rOworCWRjLT5od3NzLmRpc2FibGVfcGxhbmUgPSBkY24yMF9kaXNhYmxlX3BsYW5lOworCWRjLT5od3NzLnBsYW5lX2F0b21pY19kaXNhYmxlID0gZGNuMjBfcGxhbmVfYXRvbWljX2Rpc2FibGU7CisJZGMtPmh3c3MuZW5hYmxlX3Bvd2VyX2dhdGluZ19wbGFuZSA9IGRjbjIwX2VuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmU7CisJZGMtPmh3c3MuZHBwX3BnX2NvbnRyb2wgPSBkY24yMF9kcHBfcGdfY29udHJvbDsKKwlkYy0+aHdzcy5odWJwX3BnX2NvbnRyb2wgPSBkY24yMF9odWJwX3BnX2NvbnRyb2w7CisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKKwlkYy0+aHdzcy5kc2NfcGdfY29udHJvbCA9IGRjbjIwX2RzY19wZ19jb250cm9sOworI2Vsc2UKKwlkYy0+aHdzcy5kc2NfcGdfY29udHJvbCA9IE5VTEw7CisjZW5kaWYKKwlkYy0+aHdzcy5kaXNhYmxlX3ZnYSA9IGRjbjIwX2Rpc2FibGVfdmdhOworCisJaWYgKElTX0ZQR0FfTUFYSU1VU19EQyhkYy0+Y3R4LT5kY2VfZW52aXJvbm1lbnQpKSB7CisJCWRjLT5od3NzLmluaXRfaHcgPSBkY24yMF9mcGdhX2luaXRfaHc7CisJCWRjLT5od3NzLmluaXRfcGlwZXMgPSBOVUxMOworCX0KKworCiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaHdzZXEuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5oCmluZGV4IDJiMDQwOTQuLjkyYWIzZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5oCkBAIC03NSw3ICs3NSw3IEBAIGJvb2wgZGNuMjBfZG1kYXRhX3N0YXR1c19kb25lKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogCiB2b2lkIGRjbjIwX3NldF9kbWRhdGFfYXR0cmlidXRlcyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIAotdm9pZCBkY24yMF9kaXNhYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBpbnQgb3B0aW9uKTsKK3ZvaWQgZGNuMjBfZGlzYWJsZV9zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiAKIHZvaWQgZGNuMjBfcHJvZ3JhbV90cmlwbGVCdWZmZXIoCiAJCWNvbnN0IHN0cnVjdCBkYyAqZGMsCkBAIC05MSwxMyArOTEsOSBAQCB2b2lkIGRjbjIwX3BpcGVfY29udHJvbF9sb2NrX2dsb2JhbCgKIHZvaWQgZGNuMjBfc2V0dXBfZ3NsX2dyb3VwX2FzX2xvY2soY29uc3Qgc3RydWN0IGRjICpkYywKIAkJCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogCQkJCWJvb2wgZW5hYmxlKTsKLXZvaWQgZGNuMjBfcGlwZV9jb250cm9sX2xvY2soCi0Jc3RydWN0IGRjICpkYywKLQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGUsCi0JYm9vbCBsb2NrKTsKLXZvaWQgZGNuMjBfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKLXZvaWQgZGNuMjBfZW5hYmxlX3BsYW5lKAotCXN0cnVjdCBkYyAqZGMsCi0Jc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKLQlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwordm9pZCBkY24yMF9kY2NnX2luaXQoc3RydWN0IGRjZV9od3NlcSAqaHdzKTsKK3ZvaWQgZGNuMjBfaW5pdF9ibGFuaygKKwkgICBzdHJ1Y3QgZGMgKmRjLAorCSAgIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7Cit2b2lkIGRjbjIwX2Rpc3BsYXlfaW5pdChzdHJ1Y3QgZGMgKmRjKTsKICNlbmRpZiAvKiBfX0RDX0hXU1NfRENOMjBfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfbGlua19lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfbGlua19lbmNvZGVyLmMKaW5kZXggZjQ5NTU4Mi4uZTQ3NmYyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2xpbmtfZW5jb2Rlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9saW5rX2VuY29kZXIuYwpAQCAtMzQxLDYgKzM0MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbGlua19lbmNvZGVyX2Z1bmNzIGRjbjIwX2xpbmtfZW5jX2Z1bmNzID0gewogCS5mZWNfc2V0X2VuYWJsZSA9IGVuYzJfZmVjX3NldF9lbmFibGUsCiAJLmZlY19zZXRfcmVhZHkgPSBlbmMyX2ZlY19zZXRfcmVhZHksCiAJLmZlY19pc19hY3RpdmUgPSBlbmMyX2ZlY19pc19hY3RpdmUsCisJLmdldF9kaWdfbW9kZSA9IGRjbjEwX2dldF9kaWdfbW9kZSwKIAkuZ2V0X2RpZ19mcm9udGVuZCA9IGRjbjEwX2dldF9kaWdfZnJvbnRlbmQsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfbXBjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfbXBjLmMKaW5kZXggMjQwNzQ5ZS4uNWExODhiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX21wYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9tcGMuYwpAQCAtMjMzLDE0ICsyMzMsMTQgQEAgc3RhdGljIHZvaWQgbXBjMl9vZ2FtX2dldF9yZWdfZmllbGQoCiAJcmVnLT5tYXNrcy5leHBfcmVzaW9uX3N0YXJ0X3NlZ21lbnQgPSBtcGMyMC0+bXBjX21hc2stPk1QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9COwogfQogCi1zdGF0aWMgdm9pZCBtcGMyMF9wb3dlcl9vbl9vZ2FtX2x1dCgKK3ZvaWQgbXBjMjBfcG93ZXJfb25fb2dhbV9sdXQoCiAJCXN0cnVjdCBtcGMgKm1wYywgaW50IG1wY2NfaWQsCiAJCWJvb2wgcG93ZXJfb24pCiB7CiAJc3RydWN0IGRjbjIwX21wYyAqbXBjMjAgPSBUT19EQ04yMF9NUEMobXBjKTsKIAogCVJFR19TRVQoTVBDQ19NRU1fUFdSX0NUUkxbbXBjY19pZF0sIDAsCi0JCQlNUENDX09HQU1fTUVNX1BXUl9GT1JDRSwgcG93ZXJfb24gPT0gdHJ1ZSA/IDA6MSk7CisJCQlNUENDX09HQU1fTUVNX1BXUl9ESVMsIHBvd2VyX29uID09IHRydWUgPyAxOjApOwogCiB9CiAKQEAgLTM2OCw2ICszNjgsMTEgQEAgdm9pZCBhcHBseV9ERURDTjIwXzMwNV93YSgKIHsKIAlzdHJ1Y3QgZGNuMjBfbXBjICptcGMyMCA9IFRPX0RDTjIwX01QQyhtcGMpOwogCisJaWYgKG1wYy0+Y3R4LT5kYy0+ZGVidWcuY21faW5fYnlwYXNzKSB7CisJCVJFR19TRVQoTVBDQ19PR0FNX01PREVbbXBjY19pZF0sIDAsIE1QQ0NfT0dBTV9NT0RFLCAwKTsKKwkJcmV0dXJuOworCX0KKwogCWlmIChtcGMtPmN0eC0+ZGMtPndvcmtfYXJvdW5kcy5kZWRjbjIwXzMwNV93YSA9PSBmYWxzZSkgewogCQkvKmh3IGZpeGVkIGluIG5ldyByZXZpZXcqLwogCQlyZXR1cm47CkBAIC0zOTAsMTAgKzM5NSwxNiBAQCB2b2lkIG1wYzJfc2V0X291dHB1dF9nYW1tYSgKIAllbnVtIGRjX2x1dF9tb2RlIG5leHRfbW9kZTsKIAlzdHJ1Y3QgZGNuMjBfbXBjICptcGMyMCA9IFRPX0RDTjIwX01QQyhtcGMpOwogCisJaWYgKG1wYy0+Y3R4LT5kYy0+ZGVidWcuY21faW5fYnlwYXNzKSB7CisJCVJFR19TRVQoTVBDQ19PR0FNX01PREVbbXBjY19pZF0sIDAsIE1QQ0NfT0dBTV9NT0RFLCAwKTsKKwkJcmV0dXJuOworCX0KKwogCWlmIChwYXJhbXMgPT0gTlVMTCkgewogCQlSRUdfU0VUKE1QQ0NfT0dBTV9NT0RFW21wY2NfaWRdLCAwLCBNUENDX09HQU1fTU9ERSwgMCk7CiAJCXJldHVybjsKIAl9CisKIAljdXJyZW50X21vZGUgPSBtcGMyMF9nZXRfb2dhbV9jdXJyZW50KG1wYywgbXBjY19pZCk7CiAJaWYgKGN1cnJlbnRfbW9kZSA9PSBMVVRfQllQQVNTIHx8IGN1cnJlbnRfbW9kZSA9PSBMVVRfUkFNX0EpCiAJCW5leHRfbW9kZSA9IExVVF9SQU1fQjsKQEAgLTQzNSwyMyArNDQ2LDIyIEBAIHZvaWQgbXBjMl9hc3NlcnRfbXBjY19pZGxlX2JlZm9yZV9jb25uZWN0KHN0cnVjdCBtcGMgKm1wYywgaW50IG1wY2NfaWQpCiB7CiAJc3RydWN0IGRjbjIwX21wYyAqbXBjMjAgPSBUT19EQ04yMF9NUEMobXBjKTsKIAl1bnNpZ25lZCBpbnQgdG9wX3NlbCwgbXBjX2J1c3ksIG1wY19pZGxlLCBtcGNfZGlzYWJsZWQ7Ci0JUkVHX0dFVChNUENDX1NUQVRVU1ttcGNjX2lkXSwgTVBDQ19ESVNBQkxFRCwgJm1wY19kaXNhYmxlZCk7Ci0KLQlpZiAobXBjX2Rpc2FibGVkKSB7Ci0JCUFTU0VSVCgwKTsKLQkJcmV0dXJuOwotCX0KIAogCVJFR19HRVQoTVBDQ19UT1BfU0VMW21wY2NfaWRdLAogCQkJTVBDQ19UT1BfU0VMLCAmdG9wX3NlbCk7CiAKLQlpZiAodG9wX3NlbCA9PSAweGYpIHsKLQkJUkVHX0dFVF8yKE1QQ0NfU1RBVFVTW21wY2NfaWRdLAotCQkJCU1QQ0NfQlVTWSwgJm1wY19idXN5LAotCQkJCU1QQ0NfSURMRSwgJm1wY19pZGxlKTsKKwlSRUdfR0VUXzMoTVBDQ19TVEFUVVNbbXBjY19pZF0sCisJCQlNUENDX0JVU1ksICZtcGNfYnVzeSwKKwkJCU1QQ0NfSURMRSwgJm1wY19pZGxlLAorCQkJTVBDQ19ESVNBQkxFRCwgJm1wY19kaXNhYmxlZCk7CiAKLQkJQVNTRVJUKG1wY19idXN5ID09IDApOwotCQlBU1NFUlQobXBjX2lkbGUgPT0gMSk7CisJaWYgKHRvcF9zZWwgPT0gMHhmKSB7CisJCUFTU0VSVCghbXBjX2J1c3kpOworCQlBU1NFUlQobXBjX2lkbGUpOworCQlBU1NFUlQobXBjX2Rpc2FibGVkKTsKKwl9IGVsc2UgeworCQlBU1NFUlQoIW1wY19kaXNhYmxlZCk7CisJCUFTU0VSVCghbXBjX2lkbGUpOwogCX0KIH0KIApAQCAtNDg4LDYgKzQ5OCw3IEBAIGNvbnN0IHN0cnVjdCBtcGNfZnVuY3MgZGNuMjBfbXBjX2Z1bmNzID0gewogCS5pbnNlcnRfcGxhbmUgPSBtcGMxX2luc2VydF9wbGFuZSwKIAkucmVtb3ZlX21wY2MgPSBtcGMxX3JlbW92ZV9tcGNjLAogCS5tcGNfaW5pdCA9IG1wYzFfbXBjX2luaXQsCisJLm1wY19pbml0X3NpbmdsZV9pbnN0ID0gbXBjMV9tcGNfaW5pdF9zaW5nbGVfaW5zdCwKIAkudXBkYXRlX2JsZW5kaW5nID0gbXBjMl91cGRhdGVfYmxlbmRpbmcsCiAJLmdldF9tcGNjX2Zvcl9kcHAgPSBtcGMyX2dldF9tcGNjX2Zvcl9kcHAsCiAJLndhaXRfZm9yX2lkbGUgPSBtcGMyX2Fzc2VydF9pZGxlX21wY2MsCkBAIC00OTgsNiArNTA5LDcgQEAgY29uc3Qgc3RydWN0IG1wY19mdW5jcyBkY24yMF9tcGNfZnVuY3MgPSB7CiAJLnNldF9vdXRwdXRfY3NjID0gbXBjMl9zZXRfb3V0cHV0X2NzYywKIAkuc2V0X29jc2NfZGVmYXVsdCA9IG1wYzJfc2V0X29jc2NfZGVmYXVsdCwKIAkuc2V0X291dHB1dF9nYW1tYSA9IG1wYzJfc2V0X291dHB1dF9nYW1tYSwKKwkucG93ZXJfb25fbXBjX21lbV9wd3IgPSBtcGMyMF9wb3dlcl9vbl9vZ2FtX2x1dCwKIH07CiAKIHZvaWQgZGNuMjBfbXBjX2NvbnN0cnVjdChzdHJ1Y3QgZGNuMjBfbXBjICptcGMyMCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9tcGMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9tcGMuaAppbmRleCA5NzUwMDk1Li45ZjUzMTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfbXBjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX21wYy5oCkBAIC0xNTksNiArMTU5LDcgQEAKIAlTRihNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQiwgTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CLCBtYXNrX3NoKSxcCiAJU0YoTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0IsIE1QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CLCBtYXNrX3NoKSxcCiAJU0YoTVBDQzBfTVBDQ19NRU1fUFdSX0NUUkwsIE1QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFLCBtYXNrX3NoKSxcCisJU0YoTVBDQzBfTVBDQ19NRU1fUFdSX0NUUkwsIE1QQ0NfT0dBTV9NRU1fUFdSX0RJUywgbWFza19zaCksXAogCVNGKE1QQ0NfT0dBTTBfTVBDQ19PR0FNX0xVVF9JTkRFWCwgTVBDQ19PR0FNX0xVVF9JTkRFWCwgbWFza19zaCksXAogCVNGKE1QQ0NfT0dBTTBfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTCwgTVBDQ19PR0FNX0xVVF9XUklURV9FTl9NQVNLLCBtYXNrX3NoKSxcCiAJU0YoTVBDQ19PR0FNMF9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MLCBNUENDX09HQU1fTFVUX1JBTV9TRUwsIG1hc2tfc2gpLFwKQEAgLTE3Myw2ICsxNzQsNyBAQAogCVNGKE1QQ19PVVQwX0RFTk9STV9DTEFNUF9CX0NCLCBNUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfQl9DQiwgbWFza19zaCksXAogCVNGKE1QQ19PVVQwX0RFTk9STV9DTEFNUF9CX0NCLCBNUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fQl9DQiwgbWFza19zaCkKIAorCiAjZGVmaW5lIE1QQ19SRUdfRklFTERfTElTVF9EQ04yXzAodHlwZSkgXAogCU1QQ19SRUdfRklFTERfTElTVCh0eXBlKVwKIAl0eXBlIE1QQ0NfQkdfQlBDO1wKQEAgLTIxNyw3ICsyMTksOCBAQAogCXR5cGUgTVBDX09VVF9ERU5PUk1fQ0xBTVBfTUlOX0dfWTtcCiAJdHlwZSBNUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfQl9DQjtcCiAJdHlwZSBNUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fQl9DQjtcCi0JdHlwZSBNUENDX0RJU0FCTEVEOworCXR5cGUgTVBDQ19ESVNBQkxFRDtcCisJdHlwZSBNUENDX09HQU1fTUVNX1BXUl9ESVM7CiAKIHN0cnVjdCBkY24yMF9tcGNfcmVnaXN0ZXJzIHsKIAlNUENfUkVHX1ZBUklBQkxFX0xJU1RfRENOMl8wCkBAIC0yODIsNCArMjg1LDUgQEAgdm9pZCBtcGMyX3NldF9vdXRwdXRfZ2FtbWEoCiAKIHZvaWQgbXBjMl9hc3NlcnRfaWRsZV9tcGNjKHN0cnVjdCBtcGMgKm1wYywgaW50IGlkKTsKIHZvaWQgbXBjMl9hc3NlcnRfbXBjY19pZGxlX2JlZm9yZV9jb25uZWN0KHN0cnVjdCBtcGMgKm1wYywgaW50IG1wY2NfaWQpOwordm9pZCBtcGMyMF9wb3dlcl9vbl9vZ2FtX2x1dChzdHJ1Y3QgbXBjICptcGMsIGludCBtcGNjX2lkLCBib29sIHBvd2VyX29uKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX29wcC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX29wcC5jCmluZGV4IGQ5ZTdjNzEuLjQwMTY0ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9vcHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfb3BwLmMKQEAgLTMzMiw3ICszMzIsNiBAQCBzdGF0aWMgc3RydWN0IG9wcF9mdW5jcyBkY24yMF9vcHBfZnVuY3MgPSB7CiAJCS5vcHBfc2V0X2Rpc3BfcGF0dGVybl9nZW5lcmF0b3IgPSBvcHAyX3NldF9kaXNwX3BhdHRlcm5fZ2VuZXJhdG9yLAogCQkuZHBnX2lzX2JsYW5rZWQgPSBvcHAyX2RwZ19pc19ibGFua2VkLAogCQkub3BwX2RwZ19zZXRfYmxhbmtfY29sb3IgPSBvcHAyX2RwZ19zZXRfYmxhbmtfY29sb3IsCi0JCS5vcHBfY29udmVydF9wdGkgPSBOVUxMLAogCQkub3BwX2Rlc3Ryb3kgPSBvcHAxX2Rlc3Ryb3ksCiAJCS5vcHBfcHJvZ3JhbV9sZWZ0X2VkZ2VfZXh0cmFfcGl4ZWwgPSBvcHAyX3Byb2dyYW1fbGVmdF9lZGdlX2V4dHJhX3BpeGVsLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9vcHRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfb3B0Yy5jCmluZGV4IDFhZTk3MzkuLjIxMzdlMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9vcHRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX29wdGMuYwpAQCAtMTkxLDE1ICsxOTEsNiBAQCB2b2lkIG9wdGMyX3NldF9kc2NfY29uZmlnKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAogCQkJCQl1aW50MzJfdCBkc2Nfc2xpY2Vfd2lkdGgpCiB7CiAJc3RydWN0IG9wdGMgKm9wdGMxID0gRENOMTBUR19GUk9NX1RHKG9wdGMpOwotCXVpbnQzMl90IGRhdGFfZm9ybWF0ID0gMDsKLQkvKiBza2lwIGlmIGRzYyBtb2RlIGlzIG5vdCBjaGFuZ2VkICovCi0JZGF0YV9mb3JtYXQgPSBkbV9yZWFkX3JlZyhDVFgsIFJFRyhPUFRDX0RBVEFfRk9STUFUX0NPTlRST0wpKTsKLQotCWRhdGFfZm9ybWF0ID0gZGF0YV9mb3JtYXQgJiAweDMwOyAvKiBiaXQ1OjQgKi8KLQlkYXRhX2Zvcm1hdCA9IGRhdGFfZm9ybWF0ID4+IDQ7Ci0KLQlpZiAoZGF0YV9mb3JtYXQgPT0gZHNjX21vZGUpCi0JCXJldHVybjsKIAogCVJFR19VUERBVEUoT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MLAogCQlPUFRDX0RTQ19NT0RFLCBkc2NfbW9kZSk7CkBAIC0yMjQsNyArMjE1LDYgQEAgdm9pZCBvcHRjMl9zZXRfb2RtX2J5cGFzcyhzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKIAlzdHJ1Y3Qgb3B0YyAqb3B0YzEgPSBEQ04xMFRHX0ZST01fVEcob3B0Yyk7CiAJdWludDMyX3QgaF9kaXZfMiA9IDA7CiAKLQlvcHRjMS0+Y29tYl9vcHBfaWQgPSAweGY7CiAJUkVHX1NFVF8zKE9QVENfREFUQV9TT1VSQ0VfU0VMRUNULCAwLAogCQkJT1BUQ19OVU1fT0ZfSU5QVVRfU0VHTUVOVCwgMCwKIAkJCU9QVENfU0VHMF9TUkNfU0VMLCBvcHRjLT5pbnN0LApAQCAtMjM2LDEzICsyMjYsMTYgQEAgdm9pZCBvcHRjMl9zZXRfb2RtX2J5cGFzcyhzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKIAkJCU9UR19IX1RJTUlOR19ESVZfQlkyLCBoX2Rpdl8yKTsKIAlSRUdfU0VUKE9QVENfTUVNT1JZX0NPTkZJRywgMCwKIAkJCU9QVENfTUVNX1NFTCwgMCk7CisJb3B0YzEtPm9wcF9jb3VudCA9IDE7CiB9CiAKLXZvaWQgb3B0YzJfc2V0X29kbV9jb21iaW5lKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLCBpbnQgY29tYmluZV9vcHBfaWQsCi0JCWludCBtcGNjX2hhY3RpdmUsIGVudW0gZGNfcGl4ZWxfZW5jb2RpbmcgcGl4ZWxfZW5jb2RpbmcpCit2b2lkIG9wdGMyX3NldF9vZG1fY29tYmluZShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywgaW50ICpvcHBfaWQsIGludCBvcHBfY250LAorCQlzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZykKIHsKIAlzdHJ1Y3Qgb3B0YyAqb3B0YzEgPSBEQ04xMFRHX0ZST01fVEcob3B0Yyk7CiAJLyogMiBwaWVjZXMgb2YgbWVtb3J5IHJlcXVpcmVkIGZvciB1cCB0byA1MTIwIGRpc3BsYXlzLCA0IGZvciB1cCB0byA4MTkyICovCisJaW50IG1wY2NfaGFjdGl2ZSA9ICh0aW1pbmctPmhfYWRkcmVzc2FibGUgKyB0aW1pbmctPmhfYm9yZGVyX2xlZnQgKyB0aW1pbmctPmhfYm9yZGVyX3JpZ2h0KQorCQkJLyBvcHBfY250OwogCWludCBtZW1vcnlfbWFzayA9IG1wY2NfaGFjdGl2ZSA8PSAyNTYwID8gMHgzIDogMHhmOwogCXVpbnQzMl90IGRhdGFfZm10ID0gMDsKIApAQCAtMjU3LDIzICsyNTAsMjQgQEAgdm9pZCBvcHRjMl9zZXRfb2RtX2NvbWJpbmUoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsIGludCBjb21iaW5lX29wcF9pZCwKIAkJUkVHX1NFVChPUFRDX01FTU9SWV9DT05GSUcsIDAsCiAJCQlPUFRDX01FTV9TRUwsIG1lbW9yeV9tYXNrIDw8IChvcHRjLT5pbnN0ICogNCkpOwogCi0JaWYgKHBpeGVsX2VuY29kaW5nID09IFBJWEVMX0VOQ09ESU5HX1lDQkNSNDIyKQorCWlmICh0aW1pbmctPnBpeGVsX2VuY29kaW5nID09IFBJWEVMX0VOQ09ESU5HX1lDQkNSNDIyKQogCQlkYXRhX2ZtdCA9IDE7Ci0JZWxzZSBpZiAocGl4ZWxfZW5jb2RpbmcgPT0gUElYRUxfRU5DT0RJTkdfWUNCQ1I0MjApCisJZWxzZSBpZiAodGltaW5nLT5waXhlbF9lbmNvZGluZyA9PSBQSVhFTF9FTkNPRElOR19ZQ0JDUjQyMCkKIAkJZGF0YV9mbXQgPSAyOwogCiAJUkVHX1VQREFURShPUFRDX0RBVEFfRk9STUFUX0NPTlRST0wsIE9QVENfREFUQV9GT1JNQVQsIGRhdGFfZm10KTsKIAorCUFTU0VSVChvcHBfY250ID09IDIpOwogCVJFR19TRVRfMyhPUFRDX0RBVEFfU09VUkNFX1NFTEVDVCwgMCwKIAkJCU9QVENfTlVNX09GX0lOUFVUX1NFR01FTlQsIDEsCi0JCQlPUFRDX1NFRzBfU1JDX1NFTCwgb3B0Yy0+aW5zdCwKLQkJCU9QVENfU0VHMV9TUkNfU0VMLCBjb21iaW5lX29wcF9pZCk7CisJCQlPUFRDX1NFRzBfU1JDX1NFTCwgb3BwX2lkWzBdLAorCQkJT1BUQ19TRUcxX1NSQ19TRUwsIG9wcF9pZFsxXSk7CiAKIAlSRUdfVVBEQVRFKE9QVENfV0lEVEhfQ09OVFJPTCwKIAkJCU9QVENfU0VHTUVOVF9XSURUSCwgbXBjY19oYWN0aXZlKTsKIAogCVJFR19TRVQoT1RHX0hfVElNSU5HX0NOVEwsIDAsIE9UR19IX1RJTUlOR19ESVZfQlkyLCAxKTsKLQlvcHRjMS0+Y29tYl9vcHBfaWQgPSBjb21iaW5lX29wcF9pZDsKKwlvcHRjMS0+b3BwX2NvdW50ID0gb3BwX2NudDsKIH0KIAogdm9pZCBvcHRjMl9nZXRfb3B0Y19zb3VyY2Uoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCkBAIC0zMzksNjUgKzMzMyw2IEBAIHZvaWQgb3B0YzJfdHJpcGxlYnVmZmVyX3VubG9jayhzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YykKIAogfQogCi0KLXZvaWQgb3B0YzJfc2V0dXBfZ2xvYmFsX2xvY2soc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMpCi17Ci0Jc3RydWN0IG9wdGMgKm9wdGMxID0gRENOMTBUR19GUk9NX1RHKG9wdGMpOwotCXVpbnQzMl90IHZfYmxhbmtfc3RhcnQgPSAwOwotCXVpbnQzMl90IGhfYmxhbmtfc3RhcnQgPSAwLCBoX3RvdGFsID0gMDsKLQotCVJFR19TRVQoT1RHX0dMT0JBTF9DT05UUk9MMSwgMCwgTUFTVEVSX1VQREFURV9MT0NLX0RCX0VOLCAxKTsKLQotCVJFR19TRVQoT1RHX0dMT0JBTF9DT05UUk9MMiwgMCwgRElHX1VQREFURV9MT0NBVElPTiwgMjApOwotCi0JUkVHX0dFVChPVEdfVl9CTEFOS19TVEFSVF9FTkQsIE9UR19WX0JMQU5LX1NUQVJULCAmdl9ibGFua19zdGFydCk7Ci0KLQlSRUdfR0VUKE9UR19IX0JMQU5LX1NUQVJUX0VORCwgT1RHX0hfQkxBTktfU1RBUlQsICZoX2JsYW5rX3N0YXJ0KTsKLQotCVJFR19HRVQoT1RHX0hfVE9UQUwsIE9UR19IX1RPVEFMLCAmaF90b3RhbCk7Ci0JUkVHX1VQREFURV8yKE9UR19HTE9CQUxfQ09OVFJPTDEsCi0JCQlNQVNURVJfVVBEQVRFX0xPQ0tfREJfWCwKLQkJCWhfYmxhbmtfc3RhcnQgLSAyMDAgLSAxLAotCQkJTUFTVEVSX1VQREFURV9MT0NLX0RCX1ksCi0JCQl2X2JsYW5rX3N0YXJ0IC0gMSk7Ci19Ci0KLXZvaWQgb3B0YzJfbG9ja19nbG9iYWwoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMpCi17Ci0Jc3RydWN0IG9wdGMgKm9wdGMxID0gRENOMTBUR19GUk9NX1RHKG9wdGMpOwotCi0JUkVHX1VQREFURShPVEdfR0xPQkFMX0NPTlRST0wyLCBHTE9CQUxfVVBEQVRFX0xPQ0tfRU4sIDEpOwotCi0JUkVHX1NFVChPVEdfR0xPQkFMX0NPTlRST0wwLCAwLAotCQkJT1RHX01BU1RFUl9VUERBVEVfTE9DS19TRUwsIG9wdGMtPmluc3QpOwotCVJFR19TRVQoT1RHX01BU1RFUl9VUERBVEVfTE9DSywgMCwKLQkJCU9UR19NQVNURVJfVVBEQVRFX0xPQ0ssIDEpOwotCi0JLyogU2hvdWxkIGJlIGZhc3QsIHN0YXR1cyBkb2VzIG5vdCB1cGRhdGUgb24gbWF4aW11cyAqLwotCWlmIChvcHRjLT5jdHgtPmRjZV9lbnZpcm9ubWVudCAhPSBEQ0VfRU5WX0ZQR0FfTUFYSU1VUykKLQkJUkVHX1dBSVQoT1RHX01BU1RFUl9VUERBVEVfTE9DSywKLQkJCQlVUERBVEVfTE9DS19TVEFUVVMsIDEsCi0JCQkJMSwgMTApOwotfQotCi12b2lkIG9wdGMyX2xvY2soc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMpCi17Ci0Jc3RydWN0IG9wdGMgKm9wdGMxID0gRENOMTBUR19GUk9NX1RHKG9wdGMpOwotCi0JUkVHX1VQREFURShPVEdfR0xPQkFMX0NPTlRST0wyLCBHTE9CQUxfVVBEQVRFX0xPQ0tfRU4sIDApOwotCi0JUkVHX1NFVChPVEdfR0xPQkFMX0NPTlRST0wwLCAwLAotCQkJT1RHX01BU1RFUl9VUERBVEVfTE9DS19TRUwsIG9wdGMtPmluc3QpOwotCVJFR19TRVQoT1RHX01BU1RFUl9VUERBVEVfTE9DSywgMCwKLQkJCU9UR19NQVNURVJfVVBEQVRFX0xPQ0ssIDEpOwotCi0JLyogU2hvdWxkIGJlIGZhc3QsIHN0YXR1cyBkb2VzIG5vdCB1cGRhdGUgb24gbWF4aW11cyAqLwotCWlmIChvcHRjLT5jdHgtPmRjZV9lbnZpcm9ubWVudCAhPSBEQ0VfRU5WX0ZQR0FfTUFYSU1VUykKLQkJUkVHX1dBSVQoT1RHX01BU1RFUl9VUERBVEVfTE9DSywKLQkJCQlVUERBVEVfTE9DS19TVEFUVVMsIDEsCi0JCQkJMSwgMTApOwotfQotCiB2b2lkIG9wdGMyX2xvY2tfZG91YmxlYnVmZmVyX2VuYWJsZShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YykKIHsKIAlzdHJ1Y3Qgb3B0YyAqb3B0YzEgPSBEQ04xMFRHX0ZST01fVEcob3B0Yyk7CkBAIC00OTIsMTAgKzQyNyw4IEBAIHN0YXRpYyBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvcl9mdW5jcyBkY24yMF90Z19mdW5jcyA9IHsKIAkJLnRyaXBsZWJ1ZmZlcl9sb2NrID0gb3B0YzJfdHJpcGxlYnVmZmVyX2xvY2ssCiAJCS50cmlwbGVidWZmZXJfdW5sb2NrID0gb3B0YzJfdHJpcGxlYnVmZmVyX3VubG9jaywKIAkJLmRpc2FibGVfcmVzZXRfdHJpZ2dlciA9IG9wdGMxX2Rpc2FibGVfcmVzZXRfdHJpZ2dlciwKLQkJLmxvY2sgPSBvcHRjMl9sb2NrLAorCQkubG9jayA9IG9wdGMxX2xvY2ssCiAJCS51bmxvY2sgPSBvcHRjMV91bmxvY2ssCi0JCS5sb2NrX2dsb2JhbCA9IG9wdGMyX2xvY2tfZ2xvYmFsLAotCQkuc2V0dXBfZ2xvYmFsX2xvY2sgPSBvcHRjMl9zZXR1cF9nbG9iYWxfbG9jaywKIAkJLmxvY2tfZG91YmxlYnVmZmVyX2VuYWJsZSA9IG9wdGMyX2xvY2tfZG91YmxlYnVmZmVyX2VuYWJsZSwKIAkJLmxvY2tfZG91YmxlYnVmZmVyX2Rpc2FibGUgPSBvcHRjMl9sb2NrX2RvdWJsZWJ1ZmZlcl9kaXNhYmxlLAogCQkuZW5hYmxlX29wdGNfY2xvY2sgPSBvcHRjMV9lbmFibGVfb3B0Y19jbG9jaywKQEAgLTUyMiw3ICs0NTUsOCBAQCBzdGF0aWMgc3RydWN0IHRpbWluZ19nZW5lcmF0b3JfZnVuY3MgZGNuMjBfdGdfZnVuY3MgPSB7CiAJCS5zZXRfZ3NsX3NvdXJjZV9zZWxlY3QgPSBvcHRjMl9zZXRfZ3NsX3NvdXJjZV9zZWxlY3QsCiAJCS5zZXRfdnRnX3BhcmFtcyA9IG9wdGMxX3NldF92dGdfcGFyYW1zLAogCQkucHJvZ3JhbV9tYW51YWxfdHJpZ2dlciA9IG9wdGMyX3Byb2dyYW1fbWFudWFsX3RyaWdnZXIsCi0JCS5zZXR1cF9tYW51YWxfdHJpZ2dlciA9IG9wdGMyX3NldHVwX21hbnVhbF90cmlnZ2VyCisJCS5zZXR1cF9tYW51YWxfdHJpZ2dlciA9IG9wdGMyX3NldHVwX21hbnVhbF90cmlnZ2VyLAorCQkuaXNfbWF0Y2hpbmdfdGltaW5nID0gb3B0YzFfaXNfbWF0Y2hpbmdfdGltaW5nCiB9OwogCiB2b2lkIGRjbjIwX3RpbWluZ19nZW5lcmF0b3JfaW5pdChzdHJ1Y3Qgb3B0YyAqb3B0YzEpCkBAIC01MzcsNiArNDcxLDUgQEAgdm9pZCBkY24yMF90aW1pbmdfZ2VuZXJhdG9yX2luaXQoc3RydWN0IG9wdGMgKm9wdGMxKQogCW9wdGMxLT5taW5fdl9ibGFua19pbnRlcmxhY2UgPSA1OwogCW9wdGMxLT5taW5faF9zeW5jX3dpZHRoID0gNDsvLwlNaW5pbXVtIEhTWU5DID0gOCBwaXhlbHMgYXNrZWQgQnkgSFcgaW4gdGhlIGZpcnN0IHBsYWNlIGZvciBubyBhY3R1YWwgcmVhc29uLiBPY3VsdXMgUmlmdCBTIHdpbGwgbm90IGxpZ2h0IHVwIHdpdGggOCBhcyBpdCdzIGhzeW5jV2lkdGggaXMgNi4gQ2hhbmdpbmcgaXQgdG8gNCB0byBmaXggdGhhdCBpc3N1ZS4KIAlvcHRjMS0+bWluX3Zfc3luY193aWR0aCA9IDE7Ci0Jb3B0YzEtPmNvbWJfb3BwX2lkID0gMHhmOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfb3B0Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX29wdGMuaAppbmRleCBlYmYwN2M1Li4zMmE1ODQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfb3B0Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9vcHRjLmgKQEAgLTk2LDggKzk2LDggQEAgdm9pZCBvcHRjMl9zZXRfZHNjX2NvbmZpZyhzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKIHZvaWQgb3B0YzJfc2V0X29kbV9ieXBhc3Moc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCiAJCWNvbnN0IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqZGNfY3J0Y190aW1pbmcpOwogCi12b2lkIG9wdGMyX3NldF9vZG1fY29tYmluZShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywgaW50IGNvbWJpbmVfb3BwX2lkLAotCQlpbnQgbXBjY19oYWN0aXZlLCBlbnVtIGRjX3BpeGVsX2VuY29kaW5nIHBpeGVsX2VuY29kaW5nKTsKK3ZvaWQgb3B0YzJfc2V0X29kbV9jb21iaW5lKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLCBpbnQgKm9wcF9pZCwgaW50IG9wcF9jbnQsCisJCXN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5nKTsKIAogdm9pZCBvcHRjMl9nZXRfb3B0Y19zb3VyY2Uoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCiAJCXVpbnQzMl90ICpudW1fb2Zfc3JjX29wcCwKQEAgLTEwNiw5ICsxMDYsNiBAQCB2b2lkIG9wdGMyX2dldF9vcHRjX3NvdXJjZShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKIAogdm9pZCBvcHRjMl90cmlwbGVidWZmZXJfbG9jayhzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0Yyk7CiB2b2lkIG9wdGMyX3RyaXBsZWJ1ZmZlcl91bmxvY2soc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMpOwotdm9pZCBvcHRjMl9sb2NrKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjKTsKLXZvaWQgb3B0YzJfbG9ja19nbG9iYWwoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMpOwotdm9pZCBvcHRjMl9zZXR1cF9nbG9iYWxfbG9jayhzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0Yyk7CiB2b2lkIG9wdGMyX2xvY2tfZG91YmxlYnVmZmVyX2Rpc2FibGUoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMpOwogdm9pZCBvcHRjMl9sb2NrX2RvdWJsZWJ1ZmZlcl9lbmFibGUoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMpOwogdm9pZCBvcHRjMl9wcm9ncmFtX21hbnVhbF90cmlnZ2VyKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3Jlc291cmNlLmMKaW5kZXggYjk0OWUyMC4uYjRlM2NlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3Jlc291cmNlLmMKQEAgLTgyLDYgKzgyLDcgQEAKIAogI2luY2x1ZGUgImFtZGdwdV9zb2NiYi5oIgogCisvKiBOVjEyIFNPQyBCQiBpcyBjdXJyZW50bHkgaW4gRlcsIG1hcmsgU1cgYm91bmRpbmcgYm94IGludmFsaWQuICovCiAjZGVmaW5lIFNPQ19CT1VORElOR19CT1hfVkFMSUQgZmFsc2UKICNkZWZpbmUgRENfTE9HR0VSX0lOSVQobG9nZ2VyKQogCkBAIC0xNTYsOCArMTU3LDExOSBAQCBzdHJ1Y3QgX3Zjc19kcGlfaXBfcGFyYW1zX3N0IGRjbjJfMF9pcCA9IHsKIAkueGZjX2ZpbGxfY29uc3RhbnRfYnl0ZXMgPSAwLAogfTsKIAotc3RydWN0IF92Y3NfZHBpX3NvY19ib3VuZGluZ19ib3hfc3QgZGNuMl8wX3NvYyA9IHsgMCB9Oworc3RydWN0IF92Y3NfZHBpX3NvY19ib3VuZGluZ19ib3hfc3QgZGNuMl8wX3NvYyA9IHsKKwkvKiBEZWZhdWx0cyB0aGF0IGdldCBwYXRjaGVkIG9uIGRyaXZlciBsb2FkIGZyb20gZmlybXdhcmUuICovCisJLmNsb2NrX2xpbWl0cyA9IHsKKwkJCXsKKwkJCQkuc3RhdGUgPSAwLAorCQkJCS5kY2ZjbGtfbWh6ID0gNTYwLjAsCisJCQkJLmZhYnJpY2Nsa19taHogPSA1NjAuMCwKKwkJCQkuZGlzcGNsa19taHogPSA1MTMuMCwKKwkJCQkuZHBwY2xrX21oeiA9IDUxMy4wLAorCQkJCS5waHljbGtfbWh6ID0gNTQwLjAsCisJCQkJLnNvY2Nsa19taHogPSA1NjAuMCwKKwkJCQkuZHNjY2xrX21oeiA9IDE3MS4wLAorCQkJCS5kcmFtX3NwZWVkX210cyA9IDg5NjAuMCwKKwkJCX0sCisJCQl7CisJCQkJLnN0YXRlID0gMSwKKwkJCQkuZGNmY2xrX21oeiA9IDY5NC4wLAorCQkJCS5mYWJyaWNjbGtfbWh6ID0gNjk0LjAsCisJCQkJLmRpc3BjbGtfbWh6ID0gNjQyLjAsCisJCQkJLmRwcGNsa19taHogPSA2NDIuMCwKKwkJCQkucGh5Y2xrX21oeiA9IDYwMC4wLAorCQkJCS5zb2NjbGtfbWh6ID0gNjk0LjAsCisJCQkJLmRzY2Nsa19taHogPSAyMTQuMCwKKwkJCQkuZHJhbV9zcGVlZF9tdHMgPSAxMTEwNC4wLAorCQkJfSwKKwkJCXsKKwkJCQkuc3RhdGUgPSAyLAorCQkJCS5kY2ZjbGtfbWh6ID0gODc1LjAsCisJCQkJLmZhYnJpY2Nsa19taHogPSA4NzUuMCwKKwkJCQkuZGlzcGNsa19taHogPSA3MzQuMCwKKwkJCQkuZHBwY2xrX21oeiA9IDczNC4wLAorCQkJCS5waHljbGtfbWh6ID0gODEwLjAsCisJCQkJLnNvY2Nsa19taHogPSA4NzUuMCwKKwkJCQkuZHNjY2xrX21oeiA9IDI0NS4wLAorCQkJCS5kcmFtX3NwZWVkX210cyA9IDE0MDAwLjAsCisJCQl9LAorCQkJeworCQkJCS5zdGF0ZSA9IDMsCisJCQkJLmRjZmNsa19taHogPSAxMDAwLjAsCisJCQkJLmZhYnJpY2Nsa19taHogPSAxMDAwLjAsCisJCQkJLmRpc3BjbGtfbWh6ID0gMTEwMC4wLAorCQkJCS5kcHBjbGtfbWh6ID0gMTEwMC4wLAorCQkJCS5waHljbGtfbWh6ID0gODEwLjAsCisJCQkJLnNvY2Nsa19taHogPSAxMDAwLjAsCisJCQkJLmRzY2Nsa19taHogPSAzNjcuMCwKKwkJCQkuZHJhbV9zcGVlZF9tdHMgPSAxNjAwMC4wLAorCQkJfSwKKwkJCXsKKwkJCQkuc3RhdGUgPSA0LAorCQkJCS5kY2ZjbGtfbWh6ID0gMTIwMC4wLAorCQkJCS5mYWJyaWNjbGtfbWh6ID0gMTIwMC4wLAorCQkJCS5kaXNwY2xrX21oeiA9IDEyODQuMCwKKwkJCQkuZHBwY2xrX21oeiA9IDEyODQuMCwKKwkJCQkucGh5Y2xrX21oeiA9IDgxMC4wLAorCQkJCS5zb2NjbGtfbWh6ID0gMTIwMC4wLAorCQkJCS5kc2NjbGtfbWh6ID0gNDI4LjAsCisJCQkJLmRyYW1fc3BlZWRfbXRzID0gMTYwMDAuMCwKKwkJCX0sCisJCQkvKkV4dHJhIHN0YXRlLCBubyBkaXNwY2xrIHJhbXBpbmcqLworCQkJeworCQkJCS5zdGF0ZSA9IDUsCisJCQkJLmRjZmNsa19taHogPSAxMjAwLjAsCisJCQkJLmZhYnJpY2Nsa19taHogPSAxMjAwLjAsCisJCQkJLmRpc3BjbGtfbWh6ID0gMTI4NC4wLAorCQkJCS5kcHBjbGtfbWh6ID0gMTI4NC4wLAorCQkJCS5waHljbGtfbWh6ID0gODEwLjAsCisJCQkJLnNvY2Nsa19taHogPSAxMjAwLjAsCisJCQkJLmRzY2Nsa19taHogPSA0MjguMCwKKwkJCQkuZHJhbV9zcGVlZF9tdHMgPSAxNjAwMC4wLAorCQkJfSwKKwkJfSwKKwkubnVtX3N0YXRlcyA9IDUsCisJLnNyX2V4aXRfdGltZV91cyA9IDguNiwKKwkuc3JfZW50ZXJfcGx1c19leGl0X3RpbWVfdXMgPSAxMC45LAorCS51cmdlbnRfbGF0ZW5jeV91cyA9IDQuMCwKKwkudXJnZW50X2xhdGVuY3lfcGl4ZWxfZGF0YV9vbmx5X3VzID0gNC4wLAorCS51cmdlbnRfbGF0ZW5jeV9waXhlbF9taXhlZF93aXRoX3ZtX2RhdGFfdXMgPSA0LjAsCisJLnVyZ2VudF9sYXRlbmN5X3ZtX2RhdGFfb25seV91cyA9IDQuMCwKKwkudXJnZW50X291dF9vZl9vcmRlcl9yZXR1cm5fcGVyX2NoYW5uZWxfcGl4ZWxfb25seV9ieXRlcyA9IDQwOTYsCisJLnVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3BpeGVsX2FuZF92bV9ieXRlcyA9IDQwOTYsCisJLnVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3ZtX29ubHlfYnl0ZXMgPSA0MDk2LAorCS5wY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVsX29ubHkgPSA0MC4wLAorCS5wY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVsX2FuZF92bSA9IDQwLjAsCisJLnBjdF9pZGVhbF9kcmFtX3NkcF9id19hZnRlcl91cmdlbnRfdm1fb25seSA9IDQwLjAsCisJLm1heF9hdmdfc2RwX2J3X3VzZV9ub3JtYWxfcGVyY2VudCA9IDQwLjAsCisJLm1heF9hdmdfZHJhbV9id191c2Vfbm9ybWFsX3BlcmNlbnQgPSA0MC4wLAorCS53cml0ZWJhY2tfbGF0ZW5jeV91cyA9IDEyLjAsCisJLmlkZWFsX2RyYW1fYndfYWZ0ZXJfdXJnZW50X3BlcmNlbnQgPSA0MC4wLAorCS5tYXhfcmVxdWVzdF9zaXplX2J5dGVzID0gMjU2LAorCS5kcmFtX2NoYW5uZWxfd2lkdGhfYnl0ZXMgPSAyLAorCS5mYWJyaWNfZGF0YXBhdGhfdG9fZGNuX2RhdGFfcmV0dXJuX2J5dGVzID0gNjQsCisJLmRjbl9kb3duc3ByZWFkX3BlcmNlbnQgPSAwLjUsCisJLmRvd25zcHJlYWRfcGVyY2VudCA9IDAuMzgsCisJLmRyYW1fcGFnZV9vcGVuX3RpbWVfbnMgPSA1MC4wLAorCS5kcmFtX3J3X3R1cm5hcm91bmRfdGltZV9ucyA9IDE3LjUsCisJLmRyYW1fcmV0dXJuX2J1ZmZlcl9wZXJfY2hhbm5lbF9ieXRlcyA9IDgxOTIsCisJLnJvdW5kX3RyaXBfcGluZ19sYXRlbmN5X2RjZmNsa19jeWNsZXMgPSAxMzEsCisJLnVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX2J5dGVzID0gMjU2LAorCS5jaGFubmVsX2ludGVybGVhdmVfYnl0ZXMgPSAyNTYsCisJLm51bV9iYW5rcyA9IDgsCisJLm51bV9jaGFucyA9IDE2LAorCS52bW1fcGFnZV9zaXplX2J5dGVzID0gNDA5NiwKKwkuZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV91cyA9IDQwNC4wLAorCS5kdW1teV9wc3RhdGVfbGF0ZW5jeV91cyA9IDUuMCwKKwkud3JpdGViYWNrX2RyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3lfdXMgPSAyMy4wLAorCS5yZXR1cm5fYnVzX3dpZHRoX2J5dGVzID0gNjQsCisJLmRpc3BjbGtfZHBwY2xrX3Zjb19zcGVlZF9taHogPSAzODUwLAorCS54ZmNfYnVzX3RyYW5zcG9ydF90aW1lX3VzID0gMjAsCisJLnhmY194YnVmX2xhdGVuY3lfdG9sZXJhbmNlX3VzID0gNCwKKwkudXNlX3VyZ2VudF9idXJzdF9idyA9IDAKK307CiAKK3N0cnVjdCBfdmNzX2RwaV9zb2NfYm91bmRpbmdfYm94X3N0IGRjbjJfMF9udjEyX3NvYyA9IHsgMCB9OwogCiAjaWZuZGVmIG1tRFAwX0RQX0RQSFlfSU5URVJOQUxfQ1RSTAogCSNkZWZpbmUgbW1EUDBfRFBfRFBIWV9JTlRFUk5BTF9DVFJMCQkweDIxMGYKQEAgLTMxNCw3ICs0MjYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hdWRpb19zaGlmdCBhdWRpb19zaGlmdCA9IHsKIAkJRENFMTIwX0FVRF9DT01NT05fTUFTS19TSF9MSVNUKF9fU0hJRlQpCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hZHVpb19tYXNrIGF1ZGlvX21hc2sgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hdWRpb19tYXNrIGF1ZGlvX21hc2sgPSB7CiAJCURDRTEyMF9BVURfQ09NTU9OX01BU0tfU0hfTElTVChfTUFTSykKIH07CiAKQEAgLTY5NSw2ICs4MDcsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9jYXAgcGxhbmVfY2FwID0gewogCQkJLmZwMTYgPSAxCiAJfQogfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfY2FwcyByZXNfY2FwX252MTQgPSB7CisJCS5udW1fdGltaW5nX2dlbmVyYXRvciA9IDUsCisJCS5udW1fb3BwID0gNSwKKwkJLm51bV92aWRlb19wbGFuZSA9IDUsCisJCS5udW1fYXVkaW8gPSA2LAorCQkubnVtX3N0cmVhbV9lbmNvZGVyID0gNSwKKwkJLm51bV9wbGwgPSA1LAorCQkubnVtX2R3YiA9IDAsCisJCS5udW1fZGRjID0gNSwKK307CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNfZGVidWdfb3B0aW9ucyBkZWJ1Z19kZWZhdWx0c19kcnYgPSB7CiAJCS5kaXNhYmxlX2RtY3UgPSB0cnVlLApAQCAtMTE5Nyw3ICsxMzE5LDExIEBAIHN0YXRpYyB2b2lkIGdldF9waXhlbF9jbG9ja19wYXJhbWV0ZXJzKAogCXN0cnVjdCBwaXhlbF9jbGtfcGFyYW1zICpwaXhlbF9jbGtfcGFyYW1zKQogewogCWNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSA9IHBpcGVfY3R4LT5zdHJlYW07Ci0JYm9vbCBvZG1fY29tYmluZSA9IGRjX3Jlc19nZXRfb2RtX2JvdHRvbV9waXBlKHBpcGVfY3R4KSAhPSBOVUxMOworCXN0cnVjdCBwaXBlX2N0eCAqb2RtX3BpcGU7CisJaW50IG9wcF9jbnQgPSAxOworCisJZm9yIChvZG1fcGlwZSA9IHBpcGVfY3R4LT5uZXh0X29kbV9waXBlOyBvZG1fcGlwZTsgb2RtX3BpcGUgPSBvZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSkKKwkJb3BwX2NudCsrOwogCiAJcGl4ZWxfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGtfMTAwaHogPSBzdHJlYW0tPnRpbWluZy5waXhfY2xrXzEwMGh6OwogCXBpeGVsX2Nsa19wYXJhbXMtPmVuY29kZXJfb2JqZWN0X2lkID0gc3RyZWFtLT5saW5rLT5saW5rX2VuYy0+aWQ7CkBAIC0xMjE1LDcgKzEzNDEsOSBAQCBzdGF0aWMgdm9pZCBnZXRfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycygKIAlpZiAoc3RyZWFtLT50aW1pbmcucGl4ZWxfZW5jb2RpbmcgPT0gUElYRUxfRU5DT0RJTkdfWUNCQ1I0MjIpCiAJCXBpeGVsX2Nsa19wYXJhbXMtPmNvbG9yX2RlcHRoID0gQ09MT1JfREVQVEhfODg4OwogCi0JaWYgKG9wdGMxX2lzX3R3b19waXhlbHNfcGVyX2NvbnRhaW50ZXIoJnN0cmVhbS0+dGltaW5nKSB8fCBvZG1fY29tYmluZSkKKwlpZiAob3BwX2NudCA9PSA0KQorCQlwaXhlbF9jbGtfcGFyYW1zLT5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoeiAvPSA0OworCWVsc2UgaWYgKG9wdGMxX2lzX3R3b19waXhlbHNfcGVyX2NvbnRhaW50ZXIoJnN0cmVhbS0+dGltaW5nKSB8fCBvcHBfY250ID09IDIpCiAJCXBpeGVsX2Nsa19wYXJhbXMtPnJlcXVlc3RlZF9waXhfY2xrXzEwMGh6IC89IDI7CiAKIAlpZiAoc3RyZWFtLT50aW1pbmcudGltaW5nXzNkX2Zvcm1hdCA9PSBUSU1JTkdfM0RfRk9STUFUX0hXX0ZSQU1FX1BBQ0tJTkcpCkBAIC0xMzU5LDIyICsxNDg3LDE2IEBAIHN0YXRpYyBlbnVtIGRjX3N0YXR1cyByZW1vdmVfZHNjX2Zyb21fc3RyZWFtX3Jlc291cmNlKHN0cnVjdCBkYyAqZGMsCiAJZm9yIChpID0gMDsgaSA8IE1BWF9QSVBFUzsgaSsrKSB7CiAJCWlmIChuZXdfY3R4LT5yZXNfY3R4LnBpcGVfY3R4W2ldLnN0cmVhbSA9PSBkY19zdHJlYW0gJiYgIW5ld19jdHgtPnJlc19jdHgucGlwZV9jdHhbaV0udG9wX3BpcGUpIHsKIAkJCXBpcGVfY3R4ID0gJm5ld19jdHgtPnJlc19jdHgucGlwZV9jdHhbaV07Ci0JCQlicmVhazsKKworCQkJaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLmRzYykKKwkJCQlyZWxlYXNlX2RzYygmbmV3X2N0eC0+cmVzX2N0eCwgZGMtPnJlc19wb29sLCAmcGlwZV9jdHgtPnN0cmVhbV9yZXMuZHNjKTsKIAkJfQogCX0KIAogCWlmICghcGlwZV9jdHgpCiAJCXJldHVybiBEQ19FUlJPUl9VTkVYUEVDVEVEOwotCi0JaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLmRzYykgewotCQlzdHJ1Y3QgcGlwZV9jdHggKm9kbV9waXBlID0gZGNfcmVzX2dldF9vZG1fYm90dG9tX3BpcGUocGlwZV9jdHgpOwotCi0JCXJlbGVhc2VfZHNjKCZuZXdfY3R4LT5yZXNfY3R4LCBkYy0+cmVzX3Bvb2wsICZwaXBlX2N0eC0+c3RyZWFtX3Jlcy5kc2MpOwotCQlpZiAob2RtX3BpcGUpCi0JCQlyZWxlYXNlX2RzYygmbmV3X2N0eC0+cmVzX2N0eCwgZGMtPnJlc19wb29sLCAmb2RtX3BpcGUtPnN0cmVhbV9yZXMuZHNjKTsKLQl9Ci0KLQlyZXR1cm4gRENfT0s7CisJZWxzZQorCQlyZXR1cm4gRENfT0s7CiB9CiAjZW5kaWYKIApAQCAtMTQ3MywxNyArMTU5NSw5MiBAQCBzdGF0aWMgdm9pZCBzd2l6emxlX3RvX2RtbF9wYXJhbXMoCiAJfQogfQogCi1zdGF0aWMgYm9vbCBkY24yMF9zcGxpdF9zdHJlYW1fZm9yX2NvbWJpbmUoCitzdGF0aWMgYm9vbCBkY24yMF9zcGxpdF9zdHJlYW1fZm9yX29kbSgKKwkJc3RydWN0IHJlc291cmNlX2NvbnRleHQgKnJlc19jdHgsCisJCWNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAorCQlzdHJ1Y3QgcGlwZV9jdHggKnByZXZfb2RtX3BpcGUsCisJCXN0cnVjdCBwaXBlX2N0eCAqbmV4dF9vZG1fcGlwZSkKK3sKKwlpbnQgcGlwZV9pZHggPSBuZXh0X29kbV9waXBlLT5waXBlX2lkeDsKKworCSpuZXh0X29kbV9waXBlID0gKnByZXZfb2RtX3BpcGU7CisKKwluZXh0X29kbV9waXBlLT5waXBlX2lkeCA9IHBpcGVfaWR4OworCW5leHRfb2RtX3BpcGUtPnBsYW5lX3Jlcy5taSA9IHBvb2wtPm1pc1tuZXh0X29kbV9waXBlLT5waXBlX2lkeF07CisJbmV4dF9vZG1fcGlwZS0+cGxhbmVfcmVzLmh1YnAgPSBwb29sLT5odWJwc1tuZXh0X29kbV9waXBlLT5waXBlX2lkeF07CisJbmV4dF9vZG1fcGlwZS0+cGxhbmVfcmVzLmlwcCA9IHBvb2wtPmlwcHNbbmV4dF9vZG1fcGlwZS0+cGlwZV9pZHhdOworCW5leHRfb2RtX3BpcGUtPnBsYW5lX3Jlcy54Zm0gPSBwb29sLT50cmFuc2Zvcm1zW25leHRfb2RtX3BpcGUtPnBpcGVfaWR4XTsKKwluZXh0X29kbV9waXBlLT5wbGFuZV9yZXMuZHBwID0gcG9vbC0+ZHBwc1tuZXh0X29kbV9waXBlLT5waXBlX2lkeF07CisJbmV4dF9vZG1fcGlwZS0+cGxhbmVfcmVzLm1wY2NfaW5zdCA9IHBvb2wtPmRwcHNbbmV4dF9vZG1fcGlwZS0+cGlwZV9pZHhdLT5pbnN0OworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJbmV4dF9vZG1fcGlwZS0+c3RyZWFtX3Jlcy5kc2MgPSBOVUxMOworI2VuZGlmCisJaWYgKHByZXZfb2RtX3BpcGUtPm5leHRfb2RtX3BpcGUgJiYgcHJldl9vZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSAhPSBuZXh0X29kbV9waXBlKSB7CisJCUFTU0VSVCghbmV4dF9vZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSk7CisJCW5leHRfb2RtX3BpcGUtPm5leHRfb2RtX3BpcGUgPSBwcmV2X29kbV9waXBlLT5uZXh0X29kbV9waXBlOworCQluZXh0X29kbV9waXBlLT5uZXh0X29kbV9waXBlLT5wcmV2X29kbV9waXBlID0gbmV4dF9vZG1fcGlwZTsKKwl9CisJcHJldl9vZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSA9IG5leHRfb2RtX3BpcGU7CisJbmV4dF9vZG1fcGlwZS0+cHJldl9vZG1fcGlwZSA9IHByZXZfb2RtX3BpcGU7CisJQVNTRVJUKG5leHRfb2RtX3BpcGUtPnRvcF9waXBlID09IE5VTEwpOworCisJaWYgKHByZXZfb2RtX3BpcGUtPnBsYW5lX3N0YXRlKSB7CisJCXN0cnVjdCBzY2FsZXJfZGF0YSAqc2QgPSAmcHJldl9vZG1fcGlwZS0+cGxhbmVfcmVzLnNjbF9kYXRhOworCQlpbnQgbmV3X3dpZHRoOworCisJCS8qIEhBQ1RJVkUgaGFsdmVkIGZvciBvZG0gY29tYmluZSAqLworCQlzZC0+aF9hY3RpdmUgLz0gMjsKKwkJLyogQ2FsY3VsYXRlIG5ldyB2cCBhbmQgcmVjb3V0IGZvciBsZWZ0IHBpcGUgKi8KKwkJLyogTmVlZCBhdCBsZWFzdCAxNiBwaXhlbHMgd2lkdGggcGVyIHNpZGUgKi8KKwkJaWYgKHNkLT5yZWNvdXQueCArIDE2ID49IHNkLT5oX2FjdGl2ZSkKKwkJCXJldHVybiBmYWxzZTsKKwkJbmV3X3dpZHRoID0gc2QtPmhfYWN0aXZlIC0gc2QtPnJlY291dC54OworCQlzZC0+dmlld3BvcnQud2lkdGggLT0gZGNfZml4cHRfZmxvb3IoZGNfZml4cHRfbXVsX2ludCgKKwkJCQlzZC0+cmF0aW9zLmhvcnosIHNkLT5yZWNvdXQud2lkdGggLSBuZXdfd2lkdGgpKTsKKwkJc2QtPnZpZXdwb3J0X2Mud2lkdGggLT0gZGNfZml4cHRfZmxvb3IoZGNfZml4cHRfbXVsX2ludCgKKwkJCQlzZC0+cmF0aW9zLmhvcnpfYywgc2QtPnJlY291dC53aWR0aCAtIG5ld193aWR0aCkpOworCQlzZC0+cmVjb3V0LndpZHRoID0gbmV3X3dpZHRoOworCisJCS8qIENhbGN1bGF0ZSBuZXcgdnAgYW5kIHJlY291dCBmb3IgcmlnaHQgcGlwZSAqLworCQlzZCA9ICZuZXh0X29kbV9waXBlLT5wbGFuZV9yZXMuc2NsX2RhdGE7CisJCS8qIEhBQ1RJVkUgaGFsdmVkIGZvciBvZG0gY29tYmluZSAqLworCQlzZC0+aF9hY3RpdmUgLz0gMjsKKwkJLyogTmVlZCBhdCBsZWFzdCAxNiBwaXhlbHMgd2lkdGggcGVyIHNpZGUgKi8KKwkJaWYgKG5ld193aWR0aCA8PSAxNikKKwkJCXJldHVybiBmYWxzZTsKKwkJbmV3X3dpZHRoID0gc2QtPnJlY291dC53aWR0aCArIHNkLT5yZWNvdXQueCAtIHNkLT5oX2FjdGl2ZTsKKwkJc2QtPnZpZXdwb3J0LndpZHRoIC09IGRjX2ZpeHB0X2Zsb29yKGRjX2ZpeHB0X211bF9pbnQoCisJCQkJc2QtPnJhdGlvcy5ob3J6LCBzZC0+cmVjb3V0LndpZHRoIC0gbmV3X3dpZHRoKSk7CisJCXNkLT52aWV3cG9ydF9jLndpZHRoIC09IGRjX2ZpeHB0X2Zsb29yKGRjX2ZpeHB0X211bF9pbnQoCisJCQkJc2QtPnJhdGlvcy5ob3J6X2MsIHNkLT5yZWNvdXQud2lkdGggLSBuZXdfd2lkdGgpKTsKKwkJc2QtPnJlY291dC53aWR0aCA9IG5ld193aWR0aDsKKwkJc2QtPnZpZXdwb3J0LnggKz0gZGNfZml4cHRfZmxvb3IoZGNfZml4cHRfbXVsX2ludCgKKwkJCQlzZC0+cmF0aW9zLmhvcnosIHNkLT5oX2FjdGl2ZSAtIHNkLT5yZWNvdXQueCkpOworCQlzZC0+dmlld3BvcnRfYy54ICs9IGRjX2ZpeHB0X2Zsb29yKGRjX2ZpeHB0X211bF9pbnQoCisJCQkJc2QtPnJhdGlvcy5ob3J6X2MsIHNkLT5oX2FjdGl2ZSAtIHNkLT5yZWNvdXQueCkpOworCQlzZC0+cmVjb3V0LnggPSAwOworCX0KKwluZXh0X29kbV9waXBlLT5zdHJlYW1fcmVzLm9wcCA9IHBvb2wtPm9wcHNbbmV4dF9vZG1fcGlwZS0+cGlwZV9pZHhdOworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJaWYgKG5leHRfb2RtX3BpcGUtPnN0cmVhbS0+dGltaW5nLmZsYWdzLkRTQyA9PSAxKSB7CisJCWFjcXVpcmVfZHNjKHJlc19jdHgsIHBvb2wsICZuZXh0X29kbV9waXBlLT5zdHJlYW1fcmVzLmRzYyk7CisJCUFTU0VSVChuZXh0X29kbV9waXBlLT5zdHJlYW1fcmVzLmRzYyk7CisJCWlmIChuZXh0X29kbV9waXBlLT5zdHJlYW1fcmVzLmRzYyA9PSBOVUxMKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKyNlbmRpZgorCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIGRjbjIwX3NwbGl0X3N0cmVhbV9mb3JfbXBjKAogCQlzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKIAkJY29uc3Qgc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wsCiAJCXN0cnVjdCBwaXBlX2N0eCAqcHJpbWFyeV9waXBlLAotCQlzdHJ1Y3QgcGlwZV9jdHggKnNlY29uZGFyeV9waXBlLAotCQlib29sIGlzX29kbV9jb21iaW5lKQorCQlzdHJ1Y3QgcGlwZV9jdHggKnNlY29uZGFyeV9waXBlKQogewogCWludCBwaXBlX2lkeCA9IHNlY29uZGFyeV9waXBlLT5waXBlX2lkeDsKLQlzdHJ1Y3Qgc2NhbGVyX2RhdGEgKnNkID0gJnByaW1hcnlfcGlwZS0+cGxhbmVfcmVzLnNjbF9kYXRhOwogCXN0cnVjdCBwaXBlX2N0eCAqc2VjX2JvdF9waXBlID0gc2Vjb25kYXJ5X3BpcGUtPmJvdHRvbV9waXBlOwotCWludCBuZXdfd2lkdGg7CiAKIAkqc2Vjb25kYXJ5X3BpcGUgPSAqcHJpbWFyeV9waXBlOwogCXNlY29uZGFyeV9waXBlLT5ib3R0b21fcGlwZSA9IHNlY19ib3RfcGlwZTsKQEAgLTE1MDYsNTcgKzE3MDMsOSBAQCBzdGF0aWMgYm9vbCBkY24yMF9zcGxpdF9zdHJlYW1fZm9yX2NvbWJpbmUoCiAJcHJpbWFyeV9waXBlLT5ib3R0b21fcGlwZSA9IHNlY29uZGFyeV9waXBlOwogCXNlY29uZGFyeV9waXBlLT50b3BfcGlwZSA9IHByaW1hcnlfcGlwZTsKIAotCWlmIChpc19vZG1fY29tYmluZSkgewotCQlpZiAocHJpbWFyeV9waXBlLT5wbGFuZV9zdGF0ZSkgewotCQkJLyogSEFDVElWRSBoYWx2ZWQgZm9yIG9kbSBjb21iaW5lICovCi0JCQlzZC0+aF9hY3RpdmUgLz0gMjsKLQkJCS8qIENvcHkgc2NsX2RhdGEgdG8gc2Vjb25kYXJ5IHBpcGUgKi8KLQkJCXNlY29uZGFyeV9waXBlLT5wbGFuZV9yZXMuc2NsX2RhdGEgPSAqc2Q7Ci0KLQkJCS8qIENhbGN1bGF0ZSBuZXcgdnAgYW5kIHJlY291dCBmb3IgbGVmdCBwaXBlICovCi0JCQkvKiBOZWVkIGF0IGxlYXN0IDE2IHBpeGVscyB3aWR0aCBwZXIgc2lkZSAqLwotCQkJaWYgKHNkLT5yZWNvdXQueCArIDE2ID49IHNkLT5oX2FjdGl2ZSkKLQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQluZXdfd2lkdGggPSBzZC0+aF9hY3RpdmUgLSBzZC0+cmVjb3V0Lng7Ci0JCQlzZC0+dmlld3BvcnQud2lkdGggLT0gZGNfZml4cHRfZmxvb3IoZGNfZml4cHRfbXVsX2ludCgKLQkJCQkJc2QtPnJhdGlvcy5ob3J6LCBzZC0+cmVjb3V0LndpZHRoIC0gbmV3X3dpZHRoKSk7Ci0JCQlzZC0+dmlld3BvcnRfYy53aWR0aCAtPSBkY19maXhwdF9mbG9vcihkY19maXhwdF9tdWxfaW50KAotCQkJCQlzZC0+cmF0aW9zLmhvcnpfYywgc2QtPnJlY291dC53aWR0aCAtIG5ld193aWR0aCkpOwotCQkJc2QtPnJlY291dC53aWR0aCA9IG5ld193aWR0aDsKLQotCQkJLyogQ2FsY3VsYXRlIG5ldyB2cCBhbmQgcmVjb3V0IGZvciByaWdodCBwaXBlICovCi0JCQlzZCA9ICZzZWNvbmRhcnlfcGlwZS0+cGxhbmVfcmVzLnNjbF9kYXRhOwotCQkJbmV3X3dpZHRoID0gc2QtPnJlY291dC53aWR0aCArIHNkLT5yZWNvdXQueCAtIHNkLT5oX2FjdGl2ZTsKLQkJCS8qIE5lZWQgYXQgbGVhc3QgMTYgcGl4ZWxzIHdpZHRoIHBlciBzaWRlICovCi0JCQlpZiAobmV3X3dpZHRoIDw9IDE2KQotCQkJCXJldHVybiBmYWxzZTsKLQkJCXNkLT52aWV3cG9ydC53aWR0aCAtPSBkY19maXhwdF9mbG9vcihkY19maXhwdF9tdWxfaW50KAotCQkJCQlzZC0+cmF0aW9zLmhvcnosIHNkLT5yZWNvdXQud2lkdGggLSBuZXdfd2lkdGgpKTsKLQkJCXNkLT52aWV3cG9ydF9jLndpZHRoIC09IGRjX2ZpeHB0X2Zsb29yKGRjX2ZpeHB0X211bF9pbnQoCi0JCQkJCXNkLT5yYXRpb3MuaG9yel9jLCBzZC0+cmVjb3V0LndpZHRoIC0gbmV3X3dpZHRoKSk7Ci0JCQlzZC0+cmVjb3V0LndpZHRoID0gbmV3X3dpZHRoOwotCQkJc2QtPnZpZXdwb3J0LnggKz0gZGNfZml4cHRfZmxvb3IoZGNfZml4cHRfbXVsX2ludCgKLQkJCQkJc2QtPnJhdGlvcy5ob3J6LCBzZC0+aF9hY3RpdmUgLSBzZC0+cmVjb3V0LngpKTsKLQkJCXNkLT52aWV3cG9ydF9jLnggKz0gZGNfZml4cHRfZmxvb3IoZGNfZml4cHRfbXVsX2ludCgKLQkJCQkJc2QtPnJhdGlvcy5ob3J6X2MsIHNkLT5oX2FjdGl2ZSAtIHNkLT5yZWNvdXQueCkpOwotCQkJc2QtPnJlY291dC54ID0gMDsKLQkJfQotCQlzZWNvbmRhcnlfcGlwZS0+c3RyZWFtX3Jlcy5vcHAgPSBwb29sLT5vcHBzW3NlY29uZGFyeV9waXBlLT5waXBlX2lkeF07Ci0jaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKLQkJaWYgKHNlY29uZGFyeV9waXBlLT5zdHJlYW0tPnRpbWluZy5mbGFncy5EU0MgPT0gMSkgewotCQkJYWNxdWlyZV9kc2MocmVzX2N0eCwgcG9vbCwgJnNlY29uZGFyeV9waXBlLT5zdHJlYW1fcmVzLmRzYyk7Ci0JCQlBU1NFUlQoc2Vjb25kYXJ5X3BpcGUtPnN0cmVhbV9yZXMuZHNjKTsKLQkJCWlmIChzZWNvbmRhcnlfcGlwZS0+c3RyZWFtX3Jlcy5kc2MgPT0gTlVMTCkKLQkJCQlyZXR1cm4gZmFsc2U7Ci0JCX0KLSNlbmRpZgotCX0gZWxzZSB7Ci0JCUFTU0VSVChwcmltYXJ5X3BpcGUtPnBsYW5lX3N0YXRlKTsKLQkJcmVzb3VyY2VfYnVpbGRfc2NhbGluZ19wYXJhbXMocHJpbWFyeV9waXBlKTsKLQkJcmVzb3VyY2VfYnVpbGRfc2NhbGluZ19wYXJhbXMoc2Vjb25kYXJ5X3BpcGUpOwotCX0KLQotCXJldHVybiB0cnVlOworCUFTU0VSVChwcmltYXJ5X3BpcGUtPnBsYW5lX3N0YXRlKTsKKwlyZXNvdXJjZV9idWlsZF9zY2FsaW5nX3BhcmFtcyhwcmltYXJ5X3BpcGUpOworCXJlc291cmNlX2J1aWxkX3NjYWxpbmdfcGFyYW1zKHNlY29uZGFyeV9waXBlKTsKIH0KIAogdm9pZCBkY24yMF9wb3B1bGF0ZV9kbWxfd3JpdGViYWNrX2Zyb21fY29udGV4dCgKQEAgLTE2NjksNiArMTgxOCwxOSBAQCBpbnQgZGNuMjBfcG9wdWxhdGVfZG1sX3BpcGVzX2Zyb21fY29udGV4dCgKIAkJcGlwZXNbcGlwZV9jbnRdLmRvdXQuZHBfbGFuZXMgPSA0OwogCQlwaXBlc1twaXBlX2NudF0ucGlwZS5kZXN0LnZ0b3RhbF9taW4gPSByZXNfY3R4LT5waXBlX2N0eFtpXS5zdHJlYW0tPmFkanVzdC52X3RvdGFsX21pbjsKIAkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuZGVzdC52dG90YWxfbWF4ID0gcmVzX2N0eC0+cGlwZV9jdHhbaV0uc3RyZWFtLT5hZGp1c3Qudl90b3RhbF9tYXg7CisJCXBpcGVzW3BpcGVfY250XS5waXBlLmRlc3Qub2RtX2NvbWJpbmUgPSByZXNfY3R4LT5waXBlX2N0eFtpXS5wcmV2X29kbV9waXBlCisJCQkJCQkJfHwgcmVzX2N0eC0+cGlwZV9jdHhbaV0ubmV4dF9vZG1fcGlwZTsKKwkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLmhzcGxpdF9ncnAgPSByZXNfY3R4LT5waXBlX2N0eFtpXS5waXBlX2lkeDsKKwkJaWYgKHJlc19jdHgtPnBpcGVfY3R4W2ldLnRvcF9waXBlICYmIHJlc19jdHgtPnBpcGVfY3R4W2ldLnRvcF9waXBlLT5wbGFuZV9zdGF0ZQorCQkJCT09IHJlc19jdHgtPnBpcGVfY3R4W2ldLnBsYW5lX3N0YXRlKQorCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLmhzcGxpdF9ncnAgPSByZXNfY3R4LT5waXBlX2N0eFtpXS50b3BfcGlwZS0+cGlwZV9pZHg7CisJCWVsc2UgaWYgKHJlc19jdHgtPnBpcGVfY3R4W2ldLnByZXZfb2RtX3BpcGUpIHsKKwkJCXN0cnVjdCBwaXBlX2N0eCAqZmlyc3RfcGlwZSA9IHJlc19jdHgtPnBpcGVfY3R4W2ldLnByZXZfb2RtX3BpcGU7CisKKwkJCXdoaWxlIChmaXJzdF9waXBlLT5wcmV2X29kbV9waXBlKQorCQkJCWZpcnN0X3BpcGUgPSBmaXJzdF9waXBlLT5wcmV2X29kbV9waXBlOworCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLmhzcGxpdF9ncnAgPSBmaXJzdF9waXBlLT5waXBlX2lkeDsKKwkJfQogCiAJCXN3aXRjaCAocmVzX2N0eC0+cGlwZV9jdHhbaV0uc3RyZWFtLT5zaWduYWwpIHsKIAkJY2FzZSBTSUdOQUxfVFlQRV9ESVNQTEFZX1BPUlRfTVNUOgpAQCAtMTcyMSw3ICsxODgzLDYgQEAgaW50IGRjbjIwX3BvcHVsYXRlX2RtbF9waXBlc19mcm9tX2NvbnRleHQoCiAJCQlicmVhazsKIAkJfQogCi0KIAkJc3dpdGNoIChyZXNfY3R4LT5waXBlX2N0eFtpXS5zdHJlYW0tPnRpbWluZy5waXhlbF9lbmNvZGluZykgewogCQljYXNlIFBJWEVMX0VOQ09ESU5HX1JHQjoKIAkJY2FzZSBQSVhFTF9FTkNPRElOR19ZQ0JDUjQ0NDoKQEAgLTE3NDMsMTAgKzE5MDQsNiBAQCBpbnQgZGNuMjBfcG9wdWxhdGVfZG1sX3BpcGVzX2Zyb21fY29udGV4dCgKIAkJCXBpcGVzW3BpcGVfY250XS5kb3V0Lm91dHB1dF9mb3JtYXQgPSBkbV80NDQ7CiAJCQlwaXBlc1twaXBlX2NudF0uZG91dC5vdXRwdXRfYnBwID0gb3V0cHV0X2JwYyAqIDM7CiAJCX0KLQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLmhzcGxpdF9ncnAgPSByZXNfY3R4LT5waXBlX2N0eFtpXS5waXBlX2lkeDsKLQkJaWYgKHJlc19jdHgtPnBpcGVfY3R4W2ldLnRvcF9waXBlICYmIHJlc19jdHgtPnBpcGVfY3R4W2ldLnRvcF9waXBlLT5wbGFuZV9zdGF0ZQotCQkJCT09IHJlc19jdHgtPnBpcGVfY3R4W2ldLnBsYW5lX3N0YXRlKQotCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLmhzcGxpdF9ncnAgPSByZXNfY3R4LT5waXBlX2N0eFtpXS50b3BfcGlwZS0+cGlwZV9pZHg7CiAKIAkJLyogdG9kbzogZGVmYXVsdCBtYXggZm9yIG5vdywgdW50aWwgdGhlcmUgaXMgbG9naWMgcmVmbGVjdGluZyB0aGlzIGluIGRjKi8KIAkJcGlwZXNbcGlwZV9jbnRdLmRvdXQub3V0cHV0X2JwYyA9IDEyOwpAQCAtMTc5NSwxNCArMTk1Miw2IEBAIGludCBkY24yMF9wb3B1bGF0ZV9kbWxfcGlwZXNfZnJvbV9jb250ZXh0KAogCQkJCQkmJiByZXNfY3R4LT5waXBlX2N0eFtpXS5ib3R0b21fcGlwZS0+cGxhbmVfc3RhdGUgPT0gcGxuKQogCQkJCQl8fCAocmVzX2N0eC0+cGlwZV9jdHhbaV0udG9wX3BpcGUKIAkJCQkJJiYgcmVzX2N0eC0+cGlwZV9jdHhbaV0udG9wX3BpcGUtPnBsYW5lX3N0YXRlID09IHBsbik7Ci0JCQlwaXBlc1twaXBlX2NudF0ucGlwZS5kZXN0Lm9kbV9jb21iaW5lID0gKHJlc19jdHgtPnBpcGVfY3R4W2ldLmJvdHRvbV9waXBlCi0JCQkJCSYmIHJlc19jdHgtPnBpcGVfY3R4W2ldLmJvdHRvbV9waXBlLT5wbGFuZV9zdGF0ZSA9PSBwbG4KLQkJCQkJJiYgcmVzX2N0eC0+cGlwZV9jdHhbaV0uYm90dG9tX3BpcGUtPnN0cmVhbV9yZXMub3BwCi0JCQkJCQkhPSByZXNfY3R4LT5waXBlX2N0eFtpXS5zdHJlYW1fcmVzLm9wcCkKLQkJCQl8fCAocmVzX2N0eC0+cGlwZV9jdHhbaV0udG9wX3BpcGUKLQkJCQkJJiYgcmVzX2N0eC0+cGlwZV9jdHhbaV0udG9wX3BpcGUtPnBsYW5lX3N0YXRlID09IHBsbgotCQkJCQkmJiByZXNfY3R4LT5waXBlX2N0eFtpXS50b3BfcGlwZS0+c3RyZWFtX3Jlcy5vcHAKLQkJCQkJCSE9IHJlc19jdHgtPnBpcGVfY3R4W2ldLnN0cmVhbV9yZXMub3BwKTsKIAkJCXBpcGVzW3BpcGVfY250XS5waXBlLnNyYy5zb3VyY2Vfc2NhbiA9IHBsbi0+cm90YXRpb24gPT0gUk9UQVRJT05fQU5HTEVfOTAKIAkJCQkJfHwgcGxuLT5yb3RhdGlvbiA9PSBST1RBVElPTl9BTkdMRV8yNzAgPyBkbV92ZXJ0IDogZG1faG9yejsKIAkJCXBpcGVzW3BpcGVfY250XS5waXBlLnNyYy52aWV3cG9ydF95X3kgPSBzY2wtPnZpZXdwb3J0Lnk7CkBAIC0xODEyLDEzICsxOTYxLDEzIEBAIGludCBkY24yMF9wb3B1bGF0ZV9kbWxfcGlwZXNfZnJvbV9jb250ZXh0KAogCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLnZpZXdwb3J0X2hlaWdodCA9IHNjbC0+dmlld3BvcnQuaGVpZ2h0OwogCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLnZpZXdwb3J0X2hlaWdodF9jID0gc2NsLT52aWV3cG9ydF9jLmhlaWdodDsKIAkJCWlmIChwbG4tPmZvcm1hdCA+PSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19CRUdJTikgewotCQkJCXBpcGVzW3BpcGVfY250XS5waXBlLnNyYy5kYXRhX3BpdGNoID0gcGxuLT5wbGFuZV9zaXplLnZpZGVvLmx1bWFfcGl0Y2g7Ci0JCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLmRhdGFfcGl0Y2hfYyA9IHBsbi0+cGxhbmVfc2l6ZS52aWRlby5jaHJvbWFfcGl0Y2g7Ci0JCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLm1ldGFfcGl0Y2ggPSBwbG4tPmRjYy52aWRlby5tZXRhX3BpdGNoX2w7Ci0JCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLm1ldGFfcGl0Y2hfYyA9IHBsbi0+ZGNjLnZpZGVvLm1ldGFfcGl0Y2hfYzsKKwkJCQlwaXBlc1twaXBlX2NudF0ucGlwZS5zcmMuZGF0YV9waXRjaCA9IHBsbi0+cGxhbmVfc2l6ZS5zdXJmYWNlX3BpdGNoOworCQkJCXBpcGVzW3BpcGVfY250XS5waXBlLnNyYy5kYXRhX3BpdGNoX2MgPSBwbG4tPnBsYW5lX3NpemUuY2hyb21hX3BpdGNoOworCQkJCXBpcGVzW3BpcGVfY250XS5waXBlLnNyYy5tZXRhX3BpdGNoID0gcGxuLT5kY2MubWV0YV9waXRjaDsKKwkJCQlwaXBlc1twaXBlX2NudF0ucGlwZS5zcmMubWV0YV9waXRjaF9jID0gcGxuLT5kY2MubWV0YV9waXRjaF9jOwogCQkJfSBlbHNlIHsKLQkJCQlwaXBlc1twaXBlX2NudF0ucGlwZS5zcmMuZGF0YV9waXRjaCA9IHBsbi0+cGxhbmVfc2l6ZS5ncnBoLnN1cmZhY2VfcGl0Y2g7Ci0JCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLm1ldGFfcGl0Y2ggPSBwbG4tPmRjYy5ncnBoLm1ldGFfcGl0Y2g7CisJCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuc3JjLmRhdGFfcGl0Y2ggPSBwbG4tPnBsYW5lX3NpemUuc3VyZmFjZV9waXRjaDsKKwkJCQlwaXBlc1twaXBlX2NudF0ucGlwZS5zcmMubWV0YV9waXRjaCA9IHBsbi0+ZGNjLm1ldGFfcGl0Y2g7CiAJCQl9CiAJCQlwaXBlc1twaXBlX2NudF0ucGlwZS5zcmMuZGNjID0gcGxuLT5kY2MuZW5hYmxlOwogCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuZGVzdC5yZWNvdXRfd2lkdGggPSBzY2wtPnJlY291dC53aWR0aDsKQEAgLTE5ODYsMjAgKzIxMzUsMjQgQEAgc3RhdGljIGJvb2wgZGNuMjBfdmFsaWRhdGVfZHNjKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqbmV3X2N0eCkKIAkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCA9ICZuZXdfY3R4LT5yZXNfY3R4LnBpcGVfY3R4W2ldOwogCQlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0gPSBwaXBlX2N0eC0+c3RyZWFtOwogCQlzdHJ1Y3QgZHNjX2NvbmZpZyBkc2NfY2ZnOworCQlzdHJ1Y3QgcGlwZV9jdHggKm9kbV9waXBlOworCQlpbnQgb3BwX2NudCA9IDE7CisKKwkJZm9yIChvZG1fcGlwZSA9IHBpcGVfY3R4LT5uZXh0X29kbV9waXBlOyBvZG1fcGlwZTsgb2RtX3BpcGUgPSBvZG1fcGlwZS0+bmV4dF9vZG1fcGlwZSkKKwkJCW9wcF9jbnQrKzsKIAogCQkvKiBPbmx5IG5lZWQgdG8gdmFsaWRhdGUgdG9wIHBpcGUgKi8KLQkJaWYgKHBpcGVfY3R4LT50b3BfcGlwZSB8fCAhc3RyZWFtIHx8ICFzdHJlYW0tPnRpbWluZy5mbGFncy5EU0MpCisJCWlmIChwaXBlX2N0eC0+dG9wX3BpcGUgfHwgcGlwZV9jdHgtPnByZXZfb2RtX3BpcGUgfHwgIXN0cmVhbSB8fCAhc3RyZWFtLT50aW1pbmcuZmxhZ3MuRFNDKQogCQkJY29udGludWU7CiAKLQkJZHNjX2NmZy5waWNfd2lkdGggPSBzdHJlYW0tPnRpbWluZy5oX2FkZHJlc3NhYmxlICsgc3RyZWFtLT50aW1pbmcuaF9ib3JkZXJfbGVmdAotCQkJCSsgc3RyZWFtLT50aW1pbmcuaF9ib3JkZXJfcmlnaHQ7CisJCWRzY19jZmcucGljX3dpZHRoID0gKHN0cmVhbS0+dGltaW5nLmhfYWRkcmVzc2FibGUgKyBzdHJlYW0tPnRpbWluZy5oX2JvcmRlcl9sZWZ0CisJCQkJKyBzdHJlYW0tPnRpbWluZy5oX2JvcmRlcl9yaWdodCkgLyBvcHBfY250OwogCQlkc2NfY2ZnLnBpY19oZWlnaHQgPSBzdHJlYW0tPnRpbWluZy52X2FkZHJlc3NhYmxlICsgc3RyZWFtLT50aW1pbmcudl9ib3JkZXJfdG9wCiAJCQkJKyBzdHJlYW0tPnRpbWluZy52X2JvcmRlcl9ib3R0b207Ci0JCWlmIChkY19yZXNfZ2V0X29kbV9ib3R0b21fcGlwZShwaXBlX2N0eCkpCi0JCQlkc2NfY2ZnLnBpY193aWR0aCAvPSAyOwogCQlkc2NfY2ZnLnBpeGVsX2VuY29kaW5nID0gc3RyZWFtLT50aW1pbmcucGl4ZWxfZW5jb2Rpbmc7CiAJCWRzY19jZmcuY29sb3JfZGVwdGggPSBzdHJlYW0tPnRpbWluZy5kaXNwbGF5X2NvbG9yX2RlcHRoOwogCQlkc2NfY2ZnLmRjX2RzY19jZmcgPSBzdHJlYW0tPnRpbWluZy5kc2NfY2ZnOworCQlkc2NfY2ZnLmRjX2RzY19jZmcubnVtX3NsaWNlc19oIC89IG9wcF9jbnQ7CiAKIAkJaWYgKCFwaXBlX2N0eC0+c3RyZWFtX3Jlcy5kc2MtPmZ1bmNzLT5kc2NfdmFsaWRhdGVfc3RyZWFtKHBpcGVfY3R4LT5zdHJlYW1fcmVzLmRzYywgJmRzY19jZmcpKQogCQkJcmV0dXJuIGZhbHNlOwpAQCAtMjAwOCwxNSArMjE2MSw5MyBAQCBzdGF0aWMgYm9vbCBkY24yMF92YWxpZGF0ZV9kc2Moc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpuZXdfY3R4KQogfQogI2VuZGlmCiAKLWJvb2wgZGNuMjBfdmFsaWRhdGVfYmFuZHdpZHRoKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKLQkJYm9vbCBmYXN0X3ZhbGlkYXRlKQorc3RhdGljIHN0cnVjdCBwaXBlX2N0eCAqZGNuMjBfZmluZF9zZWNvbmRhcnlfcGlwZShzdHJ1Y3QgZGMgKmRjLAorCQlzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKKwkJY29uc3Qgc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wsCisJCWNvbnN0IHN0cnVjdCBwaXBlX2N0eCAqcHJpbWFyeV9waXBlKQoreworCXN0cnVjdCBwaXBlX2N0eCAqc2Vjb25kYXJ5X3BpcGUgPSBOVUxMOworCisJaWYgKGRjICYmIHByaW1hcnlfcGlwZSkgeworCQlpbnQgajsKKwkJaW50IHByZWZlcnJlZF9waXBlX2lkeCA9IDA7CisKKwkJLyogZmlyc3QgY2hlY2sgdGhlIHByZXYgZGMgc3RhdGU6CisJCSAqIGlmIHRoaXMgcHJpbWFyeSBwaXBlIGhhcyBhIGJvdHRvbSBwaXBlIGluIHByZXYuIHN0YXRlCisJCSAqIGFuZCBpZiB0aGUgYm90dG9tIHBpcGUgaXMgc3RpbGwgYXZhaWxhYmxlICh3aGljaCBpdCBzaG91bGQgYmUpLAorCQkgKiBwaWNrIHRoYXQgcGlwZSBhcyBzZWNvbmRhcnkKKwkJICogU2FtZSBsb2dpYyBhcHBsaWVzIGZvciBPRE0gcGlwZXMuIFNpbmNlIG1wbyBpcyBub3QgYWxsb3dlZCB3aXRoIG9kbQorCQkgKiBjaGVjayBpbiBlbHNlIGNhc2UuCisJCSAqLworCQlpZiAoZGMtPmN1cnJlbnRfc3RhdGUtPnJlc19jdHgucGlwZV9jdHhbcHJpbWFyeV9waXBlLT5waXBlX2lkeF0uYm90dG9tX3BpcGUpIHsKKwkJCXByZWZlcnJlZF9waXBlX2lkeCA9IGRjLT5jdXJyZW50X3N0YXRlLT5yZXNfY3R4LnBpcGVfY3R4W3ByaW1hcnlfcGlwZS0+cGlwZV9pZHhdLmJvdHRvbV9waXBlLT5waXBlX2lkeDsKKwkJCWlmIChyZXNfY3R4LT5waXBlX2N0eFtwcmVmZXJyZWRfcGlwZV9pZHhdLnN0cmVhbSA9PSBOVUxMKSB7CisJCQkJc2Vjb25kYXJ5X3BpcGUgPSAmcmVzX2N0eC0+cGlwZV9jdHhbcHJlZmVycmVkX3BpcGVfaWR4XTsKKwkJCQlzZWNvbmRhcnlfcGlwZS0+cGlwZV9pZHggPSBwcmVmZXJyZWRfcGlwZV9pZHg7CisJCQl9CisJCX0gZWxzZSBpZiAoZGMtPmN1cnJlbnRfc3RhdGUtPnJlc19jdHgucGlwZV9jdHhbcHJpbWFyeV9waXBlLT5waXBlX2lkeF0ubmV4dF9vZG1fcGlwZSkgeworCQkJcHJlZmVycmVkX3BpcGVfaWR4ID0gZGMtPmN1cnJlbnRfc3RhdGUtPnJlc19jdHgucGlwZV9jdHhbcHJpbWFyeV9waXBlLT5waXBlX2lkeF0ubmV4dF9vZG1fcGlwZS0+cGlwZV9pZHg7CisJCQlpZiAocmVzX2N0eC0+cGlwZV9jdHhbcHJlZmVycmVkX3BpcGVfaWR4XS5zdHJlYW0gPT0gTlVMTCkgeworCQkJCXNlY29uZGFyeV9waXBlID0gJnJlc19jdHgtPnBpcGVfY3R4W3ByZWZlcnJlZF9waXBlX2lkeF07CisJCQkJc2Vjb25kYXJ5X3BpcGUtPnBpcGVfaWR4ID0gcHJlZmVycmVkX3BpcGVfaWR4OworCQkJfQorCQl9CisKKwkJLyoKKwkJICogaWYgdGhpcyBwcmltYXJ5IHBpcGUgZG9lcyBub3QgaGF2ZSBhIGJvdHRvbSBwaXBlIGluIHByZXYuIHN0YXRlCisJCSAqIHN0YXJ0IGJhY2t3YXJkIGFuZCBmaW5kIGEgcGlwZSB0aGF0IGRpZCBub3QgdXNlZCB0byBiZSBhIGJvdHRvbSBwaXBlIGluCisJCSAqIHByZXYuIGRjIHN0YXRlLiBUaGlzIHdheSB3ZSBtYWtlIHN1cmUgd2Uga2VlcCB0aGUgc2FtZSBhc3NpZ25tZW50IGFzCisJCSAqIGxhc3Qgc3RhdGUgYW5kIHdpbGwgbm90IGhhdmUgdG8gcmVwcm9ncmFtIGV2ZXJ5IHBpcGUKKwkJICovCisJCWlmIChzZWNvbmRhcnlfcGlwZSA9PSBOVUxMKSB7CisJCQlmb3IgKGogPSBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQgLSAxOyBqID49IDA7IGotLSkgeworCQkJCWlmIChkYy0+Y3VycmVudF9zdGF0ZS0+cmVzX2N0eC5waXBlX2N0eFtqXS50b3BfcGlwZSA9PSBOVUxMKSB7CisJCQkJCXByZWZlcnJlZF9waXBlX2lkeCA9IGo7CisKKwkJCQkJaWYgKHJlc19jdHgtPnBpcGVfY3R4W3ByZWZlcnJlZF9waXBlX2lkeF0uc3RyZWFtID09IE5VTEwpIHsKKwkJCQkJCXNlY29uZGFyeV9waXBlID0gJnJlc19jdHgtPnBpcGVfY3R4W3ByZWZlcnJlZF9waXBlX2lkeF07CisJCQkJCQlzZWNvbmRhcnlfcGlwZS0+cGlwZV9pZHggPSBwcmVmZXJyZWRfcGlwZV9pZHg7CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJfQorCQkvKgorCQkgKiBXZSBzaG91bGQgbmV2ZXIgaGl0IHRoaXMgYXNzZXJ0IHVubGVzcyBhc3NpZ25tZW50cyBhcmUgc2h1ZmZsZWQgYXJvdW5kCisJCSAqIGlmIHRoaXMgaGFwcGVucyB3ZSB3aWxsIHByb2IuIGhpdCBhIHZzeW5jIHRkcgorCQkgKi8KKwkJQVNTRVJUKHNlY29uZGFyeV9waXBlKTsKKwkJLyoKKwkJICogc2VhcmNoIGJhY2t3YXJkcyBmb3IgdGhlIHNlY29uZCBwaXBlIHRvIGtlZXAgcGlwZQorCQkgKiBhc3NpZ25tZW50IG1vcmUgY29uc2lzdGVudAorCQkgKi8KKwkJaWYgKHNlY29uZGFyeV9waXBlID09IE5VTEwpIHsKKwkJCWZvciAoaiA9IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudCAtIDE7IGogPj0gMDsgai0tKSB7CisJCQkJcHJlZmVycmVkX3BpcGVfaWR4ID0gajsKKworCQkJCWlmIChyZXNfY3R4LT5waXBlX2N0eFtwcmVmZXJyZWRfcGlwZV9pZHhdLnN0cmVhbSA9PSBOVUxMKSB7CisJCQkJCXNlY29uZGFyeV9waXBlID0gJnJlc19jdHgtPnBpcGVfY3R4W3ByZWZlcnJlZF9waXBlX2lkeF07CisJCQkJCXNlY29uZGFyeV9waXBlLT5waXBlX2lkeCA9IHByZWZlcnJlZF9waXBlX2lkeDsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQl9CisJfQorCisJcmV0dXJuIHNlY29uZGFyeV9waXBlOworfQorCitib29sIGRjbjIwX2Zhc3RfdmFsaWRhdGVfYncoCisJCXN0cnVjdCBkYyAqZGMsCisJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKKwkJZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAorCQlpbnQgKnBpcGVfY250X291dCwKKwkJaW50ICpwaXBlX3NwbGl0X2Zyb20sCisJCWludCAqdmxldmVsX291dCkKIHsKIAlib29sIG91dCA9IGZhbHNlOwogCi0JQldfVkFMX1RSQUNFX1NFVFVQKCk7Ci0KIAlpbnQgcGlwZV9jbnQsIGksIHBpcGVfaWR4LCB2bGV2ZWwsIHZsZXZlbF91bnNwbGl0OwotCWludCBwaXBlX3NwbGl0X2Zyb21bTUFYX1BJUEVTXTsKIAlib29sIG9kbV9jYXBhYmxlID0gY29udGV4dC0+YndfY3R4LmRtbC5pcC5vZG1fY2FwYWJsZTsKIAlib29sIGZvcmNlX3NwbGl0ID0gZmFsc2U7CiAjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKQEAgLTIwMjQsMTUgKzIyNTUsNDQgQEAgYm9vbCBkY24yMF92YWxpZGF0ZV9iYW5kd2lkdGgoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAogI2VuZGlmCiAJaW50IHNwbGl0X3RocmVzaG9sZCA9IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudCAvIDI7CiAJYm9vbCBhdm9pZF9zcGxpdCA9IGRjLT5kZWJ1Zy5waXBlX3NwbGl0X3BvbGljeSAhPSBNUENfU1BMSVRfRFlOQU1JQzsKLQlkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMgPSBremFsbG9jKGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudCAqIHNpemVvZihkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCksIEdGUF9LRVJORUwpOwotCURDX0xPR0dFUl9JTklUKGRjLT5jdHgtPmxvZ2dlcik7CiAKLQlCV19WQUxfVFJBQ0VfQ09VTlQoKTsKIAogCUFTU0VSVChwaXBlcyk7CiAJaWYgKCFwaXBlcykKIAkJcmV0dXJuIGZhbHNlOwogCisJLyogbWVyZ2UgcHJldmlvdXNseSBzcGxpdCBvZG0gcGlwZXMgc2luY2UgbW9kZSBzdXBwb3J0IG5lZWRzIHRvIG1ha2UgdGhlIGRlY2lzaW9uICovCisJZm9yIChpID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7CisJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZSA9ICZjb250ZXh0LT5yZXNfY3R4LnBpcGVfY3R4W2ldOworCQlzdHJ1Y3QgcGlwZV9jdHggKm9kbV9waXBlID0gcGlwZS0+bmV4dF9vZG1fcGlwZTsKKworCQlpZiAocGlwZS0+cHJldl9vZG1fcGlwZSkKKwkJCWNvbnRpbnVlOworCisJCXBpcGUtPm5leHRfb2RtX3BpcGUgPSBOVUxMOworCQl3aGlsZSAob2RtX3BpcGUpIHsKKwkJCXN0cnVjdCBwaXBlX2N0eCAqbmV4dF9vZG1fcGlwZSA9IG9kbV9waXBlLT5uZXh0X29kbV9waXBlOworCisJCQlvZG1fcGlwZS0+cGxhbmVfc3RhdGUgPSBOVUxMOworCQkJb2RtX3BpcGUtPnN0cmVhbSA9IE5VTEw7CisJCQlvZG1fcGlwZS0+dG9wX3BpcGUgPSBOVUxMOworCQkJb2RtX3BpcGUtPmJvdHRvbV9waXBlID0gTlVMTDsKKwkJCW9kbV9waXBlLT5wcmV2X29kbV9waXBlID0gTlVMTDsKKwkJCW9kbV9waXBlLT5uZXh0X29kbV9waXBlID0gTlVMTDsKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAorCQkJaWYgKG9kbV9waXBlLT5zdHJlYW1fcmVzLmRzYykKKwkJCQlyZWxlYXNlX2RzYygmY29udGV4dC0+cmVzX2N0eCwgZGMtPnJlc19wb29sLCAmb2RtX3BpcGUtPnN0cmVhbV9yZXMuZHNjKTsKKyNlbmRpZgorCQkJLyogQ2xlYXIgcGxhbmVfcmVzIGFuZCBzdHJlYW1fcmVzICovCisJCQltZW1zZXQoJm9kbV9waXBlLT5wbGFuZV9yZXMsIDAsIHNpemVvZihvZG1fcGlwZS0+cGxhbmVfcmVzKSk7CisJCQltZW1zZXQoJm9kbV9waXBlLT5zdHJlYW1fcmVzLCAwLCBzaXplb2Yob2RtX3BpcGUtPnN0cmVhbV9yZXMpKTsKKwkJCW9kbV9waXBlID0gbmV4dF9vZG1fcGlwZTsKKwkJfQorCQlpZiAocGlwZS0+cGxhbmVfc3RhdGUpCisJCQlyZXNvdXJjZV9idWlsZF9zY2FsaW5nX3BhcmFtcyhwaXBlKTsKKwl9CisKKwkvKiBtZXJnZSBwcmV2aW91c2x5IG1wYyBzcGxpdCBwaXBlcyBzaW5jZSBtb2RlIHN1cHBvcnQgbmVlZHMgdG8gbWFrZSB0aGUgZGVjaXNpb24gKi8KIAlmb3IgKGkgPSAwOyBpIDwgZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspIHsKIAkJc3RydWN0IHBpcGVfY3R4ICpwaXBlID0gJmNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV07CiAJCXN0cnVjdCBwaXBlX2N0eCAqaHNwbGl0X3BpcGUgPSBwaXBlLT5ib3R0b21fcGlwZTsKQEAgLTIwNDAsNyArMjMwMCw2IEBAIGJvb2wgZGNuMjBfdmFsaWRhdGVfYmFuZHdpZHRoKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKIAkJaWYgKCFoc3BsaXRfcGlwZSB8fCBoc3BsaXRfcGlwZS0+cGxhbmVfc3RhdGUgIT0gcGlwZS0+cGxhbmVfc3RhdGUpCiAJCQljb250aW51ZTsKIAotCQkvKiBtZXJnZSBwcmV2aW91c2x5IHNwbGl0IHBpcGUgc2luY2UgbW9kZSBzdXBwb3J0IG5lZWRzIHRvIG1ha2UgdGhlIGRlY2lzaW9uICovCiAJCXBpcGUtPmJvdHRvbV9waXBlID0gaHNwbGl0X3BpcGUtPmJvdHRvbV9waXBlOwogCQlpZiAoaHNwbGl0X3BpcGUtPmJvdHRvbV9waXBlKQogCQkJaHNwbGl0X3BpcGUtPmJvdHRvbV9waXBlLT50b3BfcGlwZSA9IHBpcGU7CkBAIC0yMDQ4LDEwICsyMzA3LDcgQEAgYm9vbCBkY24yMF92YWxpZGF0ZV9iYW5kd2lkdGgoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAogCQloc3BsaXRfcGlwZS0+c3RyZWFtID0gTlVMTDsKIAkJaHNwbGl0X3BpcGUtPnRvcF9waXBlID0gTlVMTDsKIAkJaHNwbGl0X3BpcGUtPmJvdHRvbV9waXBlID0gTlVMTDsKLSNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAotCQlpZiAoaHNwbGl0X3BpcGUtPnN0cmVhbV9yZXMuZHNjICYmIGhzcGxpdF9waXBlLT5zdHJlYW1fcmVzLmRzYyAhPSBwaXBlLT5zdHJlYW1fcmVzLmRzYykKLQkJCXJlbGVhc2VfZHNjKCZjb250ZXh0LT5yZXNfY3R4LCBkYy0+cmVzX3Bvb2wsICZoc3BsaXRfcGlwZS0+c3RyZWFtX3Jlcy5kc2MpOwotI2VuZGlmCisKIAkJLyogQ2xlYXIgcGxhbmVfcmVzIGFuZCBzdHJlYW1fcmVzICovCiAJCW1lbXNldCgmaHNwbGl0X3BpcGUtPnBsYW5lX3JlcywgMCwgc2l6ZW9mKGhzcGxpdF9waXBlLT5wbGFuZV9yZXMpKTsKIAkJbWVtc2V0KCZoc3BsaXRfcGlwZS0+c3RyZWFtX3JlcywgMCwgc2l6ZW9mKGhzcGxpdF9waXBlLT5zdHJlYW1fcmVzKSk7CkBAIC0yMDY2LDggKzIzMjIsOSBAQCBib29sIGRjbjIwX3ZhbGlkYXRlX2JhbmR3aWR0aChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAJCXBpcGVfY250ID0gZGNuMjBfcG9wdWxhdGVfZG1sX3BpcGVzX2Zyb21fY29udGV4dChkYywKIAkJCSZjb250ZXh0LT5yZXNfY3R4LCBwaXBlcyk7CiAKKwkqcGlwZV9jbnRfb3V0ID0gcGlwZV9jbnQ7CisKIAlpZiAoIXBpcGVfY250KSB7Ci0JCUJXX1ZBTF9UUkFDRV9TS0lQKHBhc3MpOwogCQlvdXQgPSB0cnVlOwogCQlnb3RvIHZhbGlkYXRlX291dDsKIAl9CkBAIC0yMTYwLDE3ICsyNDE3LDEyIEBAIGJvb2wgZGNuMjBfdmFsaWRhdGVfYmFuZHdpZHRoKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKIAkJfQogCQlpZiAoZm9yY2Vfc3BsaXQgJiYgY29udGV4dC0+YndfY3R4LmRtbC52YmEuTm9PZkRQUFt2bGV2ZWxdW2NvbnRleHQtPmJ3X2N0eC5kbWwudmJhLm1heE1wY0NvbWJdW3BpcGVfaWR4XSA9PSAxKQogCQkJY29udGV4dC0+YndfY3R4LmRtbC52YmEuUmVxdWlyZWREUFBDTEtbdmxldmVsXVtjb250ZXh0LT5id19jdHguZG1sLnZiYS5tYXhNcGNDb21iXVtwaXBlX2lkeF0gLz0gMjsKLQkJaWYgKGRjLT5jb25maWcuZm9yY2VkX2Nsb2NrcyA9PSB0cnVlKSB7Ci0JCQljb250ZXh0LT5id19jdHguZG1sLnZiYS5SZXF1aXJlZERQUENMS1t2bGV2ZWxdW2NvbnRleHQtPmJ3X2N0eC5kbWwudmJhLm1heE1wY0NvbWJdW3BpcGVfaWR4XSA9Ci0JCQkJCWNvbnRleHQtPmJ3X2N0eC5kbWwuc29jLmNsb2NrX2xpbWl0c1swXS5kcHBjbGtfbWh6OwotCQl9CiAJCWlmICghcGlwZS0+dG9wX3BpcGUgJiYgIXBpcGUtPnBsYW5lX3N0YXRlICYmIGNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLk9ETUNvbWJpbmVFbmFibGVkW3BpcGVfaWR4XSkgewotCQkJaHNwbGl0X3BpcGUgPSBmaW5kX2lkbGVfc2Vjb25kYXJ5X3BpcGUoJmNvbnRleHQtPnJlc19jdHgsIGRjLT5yZXNfcG9vbCwgcGlwZSk7CisJCQloc3BsaXRfcGlwZSA9IGRjbjIwX2ZpbmRfc2Vjb25kYXJ5X3BpcGUoZGMsICZjb250ZXh0LT5yZXNfY3R4LCBkYy0+cmVzX3Bvb2wsIHBpcGUpOwogCQkJQVNTRVJUKGhzcGxpdF9waXBlKTsKLQkJCWlmICghZGNuMjBfc3BsaXRfc3RyZWFtX2Zvcl9jb21iaW5lKAorCQkJaWYgKCFkY24yMF9zcGxpdF9zdHJlYW1fZm9yX29kbSgKIAkJCQkJJmNvbnRleHQtPnJlc19jdHgsIGRjLT5yZXNfcG9vbCwKLQkJCQkJcGlwZSwgaHNwbGl0X3BpcGUsCi0JCQkJCXRydWUpKQorCQkJCQlwaXBlLCBoc3BsaXRfcGlwZSkpCiAJCQkJZ290byB2YWxpZGF0ZV9mYWlsOwogCQkJcGlwZV9zcGxpdF9mcm9tW2hzcGxpdF9waXBlLT5waXBlX2lkeF0gPSBwaXBlX2lkeDsKIAkJCWRjbjIwX2J1aWxkX21hcHBlZF9yZXNvdXJjZShkYywgY29udGV4dCwgcGlwZS0+c3RyZWFtKTsKQEAgLTIyMDYsMTYgKzI0NTgsMjAgQEAgYm9vbCBkY24yMF92YWxpZGF0ZV9iYW5kd2lkdGgoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAogCQlpZiAobmVlZF9zcGxpdDNkIHx8IG5lZWRfc3BsaXQgfHwgZm9yY2Vfc3BsaXQpIHsKIAkJCWlmICghaHNwbGl0X3BpcGUgfHwgaHNwbGl0X3BpcGUtPnBsYW5lX3N0YXRlICE9IHBpcGUtPnBsYW5lX3N0YXRlKSB7CiAJCQkJLyogcGlwZSBub3Qgc3BsaXQgcHJldmlvdXNseSBuZWVkcyBzcGxpdCAqLwotCQkJCWhzcGxpdF9waXBlID0gZmluZF9pZGxlX3NlY29uZGFyeV9waXBlKCZjb250ZXh0LT5yZXNfY3R4LCBkYy0+cmVzX3Bvb2wsIHBpcGUpOworCQkJCWhzcGxpdF9waXBlID0gZGNuMjBfZmluZF9zZWNvbmRhcnlfcGlwZShkYywgJmNvbnRleHQtPnJlc19jdHgsIGRjLT5yZXNfcG9vbCwgcGlwZSk7CiAJCQkJQVNTRVJUKGhzcGxpdF9waXBlIHx8IGZvcmNlX3NwbGl0KTsKIAkJCQlpZiAoIWhzcGxpdF9waXBlKQogCQkJCQljb250aW51ZTsKIAotCQkJCWlmICghZGNuMjBfc3BsaXRfc3RyZWFtX2Zvcl9jb21iaW5lKAorCQkJCWlmIChjb250ZXh0LT5id19jdHguZG1sLnZiYS5PRE1Db21iaW5lRW5hYmxlZFtwaXBlX2lkeF0pIHsKKwkJCQkJaWYgKCFkY24yMF9zcGxpdF9zdHJlYW1fZm9yX29kbSgKKwkJCQkJCQkmY29udGV4dC0+cmVzX2N0eCwgZGMtPnJlc19wb29sLAorCQkJCQkJCXBpcGUsIGhzcGxpdF9waXBlKSkKKwkJCQkJCWdvdG8gdmFsaWRhdGVfZmFpbDsKKwkJCQl9IGVsc2UKKwkJCQkJZGNuMjBfc3BsaXRfc3RyZWFtX2Zvcl9tcGMoCiAJCQkJCQkmY29udGV4dC0+cmVzX2N0eCwgZGMtPnJlc19wb29sLAotCQkJCQkJcGlwZSwgaHNwbGl0X3BpcGUsCi0JCQkJCQljb250ZXh0LT5id19jdHguZG1sLnZiYS5PRE1Db21iaW5lRW5hYmxlZFtwaXBlX2lkeF0pKQotCQkJCQlnb3RvIHZhbGlkYXRlX2ZhaWw7CisJCQkJCQlwaXBlLCBoc3BsaXRfcGlwZSk7CiAJCQkJcGlwZV9zcGxpdF9mcm9tW2hzcGxpdF9waXBlLT5waXBlX2lkeF0gPSBwaXBlX2lkeDsKIAkJCX0KIAkJfSBlbHNlIGlmIChoc3BsaXRfcGlwZSAmJiBoc3BsaXRfcGlwZS0+cGxhbmVfc3RhdGUgPT0gcGlwZS0+cGxhbmVfc3RhdGUpIHsKQEAgLTIyMzIsMTMgKzI0ODgsMjYgQEAgYm9vbCBkY24yMF92YWxpZGF0ZV9iYW5kd2lkdGgoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAogCX0KICNlbmRpZgogCi0JQldfVkFMX1RSQUNFX0VORF9WT0xUQUdFX0xFVkVMKCk7CisJKnZsZXZlbF9vdXQgPSB2bGV2ZWw7CiAKLQlpZiAoZmFzdF92YWxpZGF0ZSkgewotCQlCV19WQUxfVFJBQ0VfU0tJUChmYXN0KTsKLQkJb3V0ID0gdHJ1ZTsKLQkJZ290byB2YWxpZGF0ZV9vdXQ7Ci0JfQorCW91dCA9IHRydWU7CisJZ290byB2YWxpZGF0ZV9vdXQ7CisKK3ZhbGlkYXRlX2ZhaWw6CisJb3V0ID0gZmFsc2U7CisKK3ZhbGlkYXRlX291dDoKKwlyZXR1cm4gb3V0OworfQorCit2b2lkIGRjbjIwX2NhbGN1bGF0ZV93bSgKKwkJc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAorCQlkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsCisJCWludCAqb3V0X3BpcGVfY250LAorCQlpbnQgKnBpcGVfc3BsaXRfZnJvbSwKKwkJaW50IHZsZXZlbCkKK3sKKwlpbnQgcGlwZV9jbnQsIGksIHBpcGVfaWR4OwogCiAJZm9yIChpID0gMCwgcGlwZV9pZHggPSAwLCBwaXBlX2NudCA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykgewogCQlpZiAoIWNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV0uc3RyZWFtKQpAQCAtMjI2NSwxMCArMjUzNCwxNiBAQCBib29sIGRjbjIwX3ZhbGlkYXRlX2JhbmR3aWR0aChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAJCQllbHNlCiAJCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuZGVzdC5vZG1fY29tYmluZSA9IDA7CiAJCX0KKwogCQlpZiAoZGMtPmNvbmZpZy5mb3JjZWRfY2xvY2tzKSB7CiAJCQlwaXBlc1twaXBlX2NudF0uY2xrc19jZmcuZGlzcGNsa19taHogPSBjb250ZXh0LT5id19jdHguZG1sLnNvYy5jbG9ja19saW1pdHNbMF0uZGlzcGNsa19taHo7CiAJCQlwaXBlc1twaXBlX2NudF0uY2xrc19jZmcuZHBwY2xrX21oeiA9IGNvbnRleHQtPmJ3X2N0eC5kbWwuc29jLmNsb2NrX2xpbWl0c1swXS5kcHBjbGtfbWh6OwogCQl9CisJCWlmIChkYy0+ZGVidWcubWluX2Rpc3BfY2xrX2toeiA+IHBpcGVzW3BpcGVfY250XS5jbGtzX2NmZy5kaXNwY2xrX21oeiAqIDEwMDApCisJCQlwaXBlc1twaXBlX2NudF0uY2xrc19jZmcuZGlzcGNsa19taHogPSBkYy0+ZGVidWcubWluX2Rpc3BfY2xrX2toeiAvIDEwMDAuMDsKKwkJaWYgKGRjLT5kZWJ1Zy5taW5fZHBwX2Nsa19raHogPiBwaXBlc1twaXBlX2NudF0uY2xrc19jZmcuZHBwY2xrX21oeiAqIDEwMDApCisJCQlwaXBlc1twaXBlX2NudF0uY2xrc19jZmcuZHBwY2xrX21oeiA9IGRjLT5kZWJ1Zy5taW5fZHBwX2Nsa19raHogLyAxMDAwLjA7CisKIAkJcGlwZV9jbnQrKzsKIAl9CiAKQEAgLTIyODEsNiArMjU1Niw4IEBAIGJvb2wgZGNuMjBfdmFsaWRhdGVfYmFuZHdpZHRoKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKIAkJCQkmY29udGV4dC0+cmVzX2N0eCwgcGlwZXMpOwogCX0KIAorCSpvdXRfcGlwZV9jbnQgPSBwaXBlX2NudDsKKwogCXBpcGVzWzBdLmNsa3NfY2ZnLnZvbHRhZ2UgPSB2bGV2ZWw7CiAJcGlwZXNbMF0uY2xrc19jZmcuZGNmY2xrX21oeiA9IGNvbnRleHQtPmJ3X2N0eC5kbWwuc29jLmNsb2NrX2xpbWl0c1t2bGV2ZWxdLmRjZmNsa19taHo7CiAJcGlwZXNbMF0uY2xrc19jZmcuc29jY2xrX21oeiA9IGNvbnRleHQtPmJ3X2N0eC5kbWwuc29jLmNsb2NrX2xpbWl0c1t2bGV2ZWxdLnNvY2Nsa19taHo7CkBAIC0yMzI3LDYgKzI2MDQsMTcgQEAgYm9vbCBkY24yMF92YWxpZGF0ZV9iYW5kd2lkdGgoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAogCWNvbnRleHQtPmJ3X2N0eC5idy5kY24ud2F0ZXJtYXJrcy5hLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2V4aXRfbnMgPSBnZXRfd21fc3R1dHRlcl9leGl0KCZjb250ZXh0LT5id19jdHguZG1sLCBwaXBlcywgcGlwZV9jbnQpICogMTAwMDsKIAljb250ZXh0LT5id19jdHguYncuZGNuLndhdGVybWFya3MuYS5jc3RhdGVfcHN0YXRlLnBzdGF0ZV9jaGFuZ2VfbnMgPSBnZXRfd21fZHJhbV9jbG9ja19jaGFuZ2UoJmNvbnRleHQtPmJ3X2N0eC5kbWwsIHBpcGVzLCBwaXBlX2NudCkgKiAxMDAwOwogCWNvbnRleHQtPmJ3X2N0eC5idy5kY24ud2F0ZXJtYXJrcy5hLnB0ZV9tZXRhX3VyZ2VudF9ucyA9IGdldF93bV9tZW1vcnlfdHJpcCgmY29udGV4dC0+YndfY3R4LmRtbCwgcGlwZXMsIHBpcGVfY250KSAqIDEwMDA7Cit9CisKK3ZvaWQgZGNuMjBfY2FsY3VsYXRlX2RsZ19wYXJhbXMoCisJCXN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKKwkJZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAorCQlpbnQgcGlwZV9jbnQsCisJCWludCB2bGV2ZWwpCit7CisJaW50IGksIGosIHBpcGVfaWR4LCBwaXBlX2lkeF91bnNwbGl0OworCWJvb2wgdmlzaXRlZFtNQVhfUElQRVNdID0geyAwIH07CisKIAkvKiBXcml0ZWJhY2sgTUNJRl9XQiBhcmJpdHJhdGlvbiBwYXJhbWV0ZXJzICovCiAJZGMtPnJlc19wb29sLT5mdW5jcy0+c2V0X21jaWZfYXJiX3BhcmFtcyhkYywgY29udGV4dCwgcGlwZXMsIHBpcGVfY250KTsKIApAQCAtMjMzNSwzMiArMjYyMyw2OSBAQCBib29sIGRjbjIwX3ZhbGlkYXRlX2JhbmR3aWR0aChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAJY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsuc29jY2xrX2toeiA9IGNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLlNPQ0NMSyAqIDEwMDA7CiAJY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsuZHJhbWNsa19raHogPSBjb250ZXh0LT5id19jdHguZG1sLnZiYS5EUkFNU3BlZWQgKiAxMDAwIC8gMTY7CiAJY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsuZGNmY2xrX2RlZXBfc2xlZXBfa2h6ID0gY29udGV4dC0+YndfY3R4LmRtbC52YmEuRENGQ0xLRGVlcFNsZWVwICogMTAwMDsKLQljb250ZXh0LT5id19jdHguYncuZGNuLmNsay5mY2xrX2toeiA9IGNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLkZhYnJpY0Nsb2NrICogMTAwMDsKKwljb250ZXh0LT5id19jdHguYncuZGNuLmNsay5mY2xrX2toeiA9IDA7CiAJY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsucF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydCA9CiAJCWNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLkRSQU1DbG9ja0NoYW5nZVN1cHBvcnRbdmxldmVsXVtjb250ZXh0LT5id19jdHguZG1sLnZiYS5tYXhNcGNDb21iXQogCQkJCQkJCSE9IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3Vuc3VwcG9ydGVkOwogCWNvbnRleHQtPmJ3X2N0eC5idy5kY24uY2xrLmRwcGNsa19raHogPSAwOwogCi0JQldfVkFMX1RSQUNFX0VORF9XQVRFUk1BUktTKCk7CisJLyoKKwkgKiBBbiBhcnRpZmFjdCBvZiBkbWwgcGlwZSBzcGxpdC9vZG0gaXMgdGhhdCBwaXBlcyBnZXQgbWVyZ2VkIGJhY2sgdG9nZXRoZXIgZm9yCisJICogY2FsY3VsYXRpb24uIFRoZXJlZm9yZSB3ZSBuZWVkIHRvIG9ubHkgZXh0cmFjdCBmb3IgZmlyc3QgcGlwZSBpbiBhc2NlbmRpbmcgaW5kZXggb3JkZXIKKwkgKiBhbmQgY29weSBpbnRvIHRoZSBvdGhlciBzcGxpdCBoYWxmLgorCSAqLworCWZvciAoaSA9IDAsIHBpcGVfaWR4ID0gMCwgcGlwZV9pZHhfdW5zcGxpdCA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykgeworCQlpZiAoIWNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV0uc3RyZWFtKQorCQkJY29udGludWU7CisKKwkJaWYgKCF2aXNpdGVkW3BpcGVfaWR4XSkgeworCQkJZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3QgKnNyYyA9ICZwaXBlc1twaXBlX2lkeF91bnNwbGl0XS5waXBlLnNyYzsKKwkJCWRpc3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCAqZHN0ID0gJnBpcGVzW3BpcGVfaWR4X3Vuc3BsaXRdLnBpcGUuZGVzdDsKKworCQkJZHN0LT52c3RhcnR1cF9zdGFydCA9IGNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLlZTdGFydHVwW3BpcGVfaWR4X3Vuc3BsaXRdOworCQkJZHN0LT52dXBkYXRlX29mZnNldCA9IGNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLlZVcGRhdGVPZmZzZXRQaXhbcGlwZV9pZHhfdW5zcGxpdF07CisJCQlkc3QtPnZ1cGRhdGVfd2lkdGggPSBjb250ZXh0LT5id19jdHguZG1sLnZiYS5WVXBkYXRlV2lkdGhQaXhbcGlwZV9pZHhfdW5zcGxpdF07CisJCQlkc3QtPnZyZWFkeV9vZmZzZXQgPSBjb250ZXh0LT5id19jdHguZG1sLnZiYS5WUmVhZHlPZmZzZXRQaXhbcGlwZV9pZHhfdW5zcGxpdF07CisJCQkvKgorCQkJICogaiBpdGVyYXRlcyBpbnNpZGUgcGlwZXMgYXJyYXksIHVubGlrZSBpIHdoaWNoIGl0ZXJhdGVzIGluc2lkZQorCQkJICogcGlwZV9jdHggYXJyYXkKKwkJCSAqLworCQkJaWYgKHNyYy0+aXNfaHNwbGl0KQorCQkJCWZvciAoaiA9IHBpcGVfaWR4ICsgMTsgaiA8IHBpcGVfY250OyBqKyspIHsKKwkJCQkJZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3QgKnNyY19qID0gJnBpcGVzW2pdLnBpcGUuc3JjOworCQkJCQlkaXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgKmRzdF9qID0gJnBpcGVzW2pdLnBpcGUuZGVzdDsKKworCQkJCQlpZiAoc3JjX2otPmlzX2hzcGxpdCAmJiAhdmlzaXRlZFtqXQorCQkJCQkJCSYmIHNyYy0+aHNwbGl0X2dycCA9PSBzcmNfai0+aHNwbGl0X2dycCkgeworCQkJCQkJZHN0X2otPnZzdGFydHVwX3N0YXJ0ID0gY29udGV4dC0+YndfY3R4LmRtbC52YmEuVlN0YXJ0dXBbcGlwZV9pZHhfdW5zcGxpdF07CisJCQkJCQlkc3Rfai0+dnVwZGF0ZV9vZmZzZXQgPSBjb250ZXh0LT5id19jdHguZG1sLnZiYS5WVXBkYXRlT2Zmc2V0UGl4W3BpcGVfaWR4X3Vuc3BsaXRdOworCQkJCQkJZHN0X2otPnZ1cGRhdGVfd2lkdGggPSBjb250ZXh0LT5id19jdHguZG1sLnZiYS5WVXBkYXRlV2lkdGhQaXhbcGlwZV9pZHhfdW5zcGxpdF07CisJCQkJCQlkc3Rfai0+dnJlYWR5X29mZnNldCA9IGNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLlZSZWFkeU9mZnNldFBpeFtwaXBlX2lkeF91bnNwbGl0XTsKKwkJCQkJCXZpc2l0ZWRbal0gPSB0cnVlOworCQkJCQl9CisJCQkJfQorCQkJdmlzaXRlZFtwaXBlX2lkeF0gPSB0cnVlOworCQkJcGlwZV9pZHhfdW5zcGxpdCsrOworCQl9CisJCXBpcGVfaWR4Kys7CisJfQogCiAJZm9yIChpID0gMCwgcGlwZV9pZHggPSAwOyBpIDwgZGMtPnJlc19wb29sLT5waXBlX2NvdW50OyBpKyspIHsKIAkJaWYgKCFjb250ZXh0LT5yZXNfY3R4LnBpcGVfY3R4W2ldLnN0cmVhbSkKIAkJCWNvbnRpbnVlOwotCQlwaXBlc1twaXBlX2lkeF0ucGlwZS5kZXN0LnZzdGFydHVwX3N0YXJ0ID0gY29udGV4dC0+YndfY3R4LmRtbC52YmEuVlN0YXJ0dXBbcGlwZV9pZHhdOwotCQlwaXBlc1twaXBlX2lkeF0ucGlwZS5kZXN0LnZ1cGRhdGVfb2Zmc2V0ID0gY29udGV4dC0+YndfY3R4LmRtbC52YmEuVlVwZGF0ZU9mZnNldFBpeFtwaXBlX2lkeF07Ci0JCXBpcGVzW3BpcGVfaWR4XS5waXBlLmRlc3QudnVwZGF0ZV93aWR0aCA9IGNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLlZVcGRhdGVXaWR0aFBpeFtwaXBlX2lkeF07Ci0JCXBpcGVzW3BpcGVfaWR4XS5waXBlLmRlc3QudnJlYWR5X29mZnNldCA9IGNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLlZSZWFkeU9mZnNldFBpeFtwaXBlX2lkeF07CiAJCWlmIChjb250ZXh0LT5id19jdHguYncuZGNuLmNsay5kcHBjbGtfa2h6IDwgcGlwZXNbcGlwZV9pZHhdLmNsa3NfY2ZnLmRwcGNsa19taHogKiAxMDAwKQogCQkJY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsuZHBwY2xrX2toeiA9IHBpcGVzW3BpcGVfaWR4XS5jbGtzX2NmZy5kcHBjbGtfbWh6ICogMTAwMDsKIAkJY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXS5wbGFuZV9yZXMuYncuZHBwY2xrX2toeiA9CiAJCQkJCQlwaXBlc1twaXBlX2lkeF0uY2xrc19jZmcuZHBwY2xrX21oeiAqIDEwMDA7Ci0jaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKLQkJY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXS5zdHJlYW1fcmVzLmRzY2Nsa19raHogPQotCQkJCWNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLkRTQ0NMS19jYWxjdWxhdGVkW3BpcGVfaWR4XSAqIDEwMDA7Ci0jZW5kaWYKKwkJQVNTRVJUKHZpc2l0ZWRbcGlwZV9pZHhdKTsKIAkJY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXS5waXBlX2RsZ19wYXJhbSA9IHBpcGVzW3BpcGVfaWR4XS5waXBlLmRlc3Q7CiAJCXBpcGVfaWR4Kys7CiAJfQorCS8qc2F2ZSBhIG9yaWdpbmFsIGRwcGNsb2NrIGNvcHkqLworCWNvbnRleHQtPmJ3X2N0eC5idy5kY24uY2xrLmJ3X2RwcGNsa19raHogPSBjb250ZXh0LT5id19jdHguYncuZGNuLmNsay5kcHBjbGtfa2h6OworCWNvbnRleHQtPmJ3X2N0eC5idy5kY24uY2xrLmJ3X2Rpc3BjbGtfa2h6ID0gY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsuZGlzcGNsa19raHo7CisJY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsubWF4X3N1cHBvcnRlZF9kcHBjbGtfa2h6ID0gY29udGV4dC0+YndfY3R4LmRtbC5zb2MuY2xvY2tfbGltaXRzW3ZsZXZlbF0uZHBwY2xrX21oeiAqIDEwMDA7CisJY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsubWF4X3N1cHBvcnRlZF9kaXNwY2xrX2toeiA9IGNvbnRleHQtPmJ3X2N0eC5kbWwuc29jLmNsb2NrX2xpbWl0c1t2bGV2ZWxdLmRpc3BjbGtfbWh6ICogMTAwMDsKIAogCWZvciAoaSA9IDAsIHBpcGVfaWR4ID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7CiAJCWJvb2wgY3N0YXRlX2VuID0gY29udGV4dC0+YndfY3R4LmRtbC52YmEuUHJlZmV0Y2hNb2RlW3ZsZXZlbF1bY29udGV4dC0+YndfY3R4LmRtbC52YmEubWF4TXBjQ29tYl0gIT0gMjsKQEAgLTIzODMsOCArMjcwOCw0MyBAQCBib29sIGRjbjIwX3ZhbGlkYXRlX2JhbmR3aWR0aChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAJCQkJcGlwZXNbcGlwZV9pZHhdLnBpcGUpOwogCQlwaXBlX2lkeCsrOwogCX0KK30KIAotCW91dCA9IHRydWU7CitzdGF0aWMgYm9vbCBkY24yMF92YWxpZGF0ZV9iYW5kd2lkdGhfaW50ZXJuYWwoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAorCQlib29sIGZhc3RfdmFsaWRhdGUpCit7CisJYm9vbCBvdXQgPSBmYWxzZTsKKworCUJXX1ZBTF9UUkFDRV9TRVRVUCgpOworCisJaW50IHZsZXZlbCA9IDA7CisJaW50IHBpcGVfc3BsaXRfZnJvbVtNQVhfUElQRVNdOworCWludCBwaXBlX2NudCA9IDA7CisJZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzID0ga3phbGxvYyhkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQgKiBzaXplb2YoZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QpLCBHRlBfS0VSTkVMKTsKKwlEQ19MT0dHRVJfSU5JVChkYy0+Y3R4LT5sb2dnZXIpOworCisJQldfVkFMX1RSQUNFX0NPVU5UKCk7CisKKwlvdXQgPSBkY24yMF9mYXN0X3ZhbGlkYXRlX2J3KGRjLCBjb250ZXh0LCBwaXBlcywgJnBpcGVfY250LCBwaXBlX3NwbGl0X2Zyb20sICZ2bGV2ZWwpOworCisJaWYgKHBpcGVfY250ID09IDApCisJCWdvdG8gdmFsaWRhdGVfb3V0OworCisJaWYgKCFvdXQpCisJCWdvdG8gdmFsaWRhdGVfZmFpbDsKKworCUJXX1ZBTF9UUkFDRV9FTkRfVk9MVEFHRV9MRVZFTCgpOworCisJaWYgKGZhc3RfdmFsaWRhdGUpIHsKKwkJQldfVkFMX1RSQUNFX1NLSVAoZmFzdCk7CisJCWdvdG8gdmFsaWRhdGVfb3V0OworCX0KKworCWRjbjIwX2NhbGN1bGF0ZV93bShkYywgY29udGV4dCwgcGlwZXMsICZwaXBlX2NudCwgcGlwZV9zcGxpdF9mcm9tLCB2bGV2ZWwpOworCWRjbjIwX2NhbGN1bGF0ZV9kbGdfcGFyYW1zKGRjLCBjb250ZXh0LCBwaXBlcywgcGlwZV9jbnQsIHZsZXZlbCk7CisKKwlCV19WQUxfVFJBQ0VfRU5EX1dBVEVSTUFSS1MoKTsKKwogCWdvdG8gdmFsaWRhdGVfb3V0OwogCiB2YWxpZGF0ZV9mYWlsOgpAQCAtMjQwMiw2ICsyNzYyLDUwIEBAIGJvb2wgZGNuMjBfdmFsaWRhdGVfYmFuZHdpZHRoKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKIAlyZXR1cm4gb3V0OwogfQogCisKK2Jvb2wgZGNuMjBfdmFsaWRhdGVfYmFuZHdpZHRoKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKKwkJYm9vbCBmYXN0X3ZhbGlkYXRlKQoreworCWJvb2wgdm9sdGFnZV9zdXBwb3J0ZWQgPSBmYWxzZTsKKwlib29sIGZ1bGxfcHN0YXRlX3N1cHBvcnRlZCA9IGZhbHNlOworCWJvb2wgZHVtbXlfcHN0YXRlX3N1cHBvcnRlZCA9IGZhbHNlOworCWRvdWJsZSBwX3N0YXRlX2xhdGVuY3lfdXMgPSBjb250ZXh0LT5id19jdHguZG1sLnNvYy5kcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzOworCisJaWYgKGZhc3RfdmFsaWRhdGUpCisJCXJldHVybiBkY24yMF92YWxpZGF0ZV9iYW5kd2lkdGhfaW50ZXJuYWwoZGMsIGNvbnRleHQsIHRydWUpOworCisKKwkvLyBCZXN0IGNhc2UsIHdlIHN1cHBvcnQgZnVsbCBVQ0xLIHN3aXRjaCBsYXRlbmN5CisJdm9sdGFnZV9zdXBwb3J0ZWQgPSBkY24yMF92YWxpZGF0ZV9iYW5kd2lkdGhfaW50ZXJuYWwoZGMsIGNvbnRleHQsIGZhbHNlKTsKKwlmdWxsX3BzdGF0ZV9zdXBwb3J0ZWQgPSBjb250ZXh0LT5id19jdHguYncuZGNuLmNsay5wX3N0YXRlX2NoYW5nZV9zdXBwb3J0OworCisJaWYgKGNvbnRleHQtPmJ3X2N0eC5kbWwuc29jLmR1bW15X3BzdGF0ZV9sYXRlbmN5X3VzID09IDAgfHwKKwkJKHZvbHRhZ2Vfc3VwcG9ydGVkICYmIGZ1bGxfcHN0YXRlX3N1cHBvcnRlZCkpIHsKKwkJY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsucF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydCA9IHRydWU7CisJCWdvdG8gcmVzdG9yZV9kbWxfc3RhdGU7CisJfQorCisJLy8gRmFsbGJhY2s6IFRyeSB0byBvbmx5IHN1cHBvcnQgRzYgdGVtcGVyYXR1cmUgcmVhZCBsYXRlbmN5CisJY29udGV4dC0+YndfY3R4LmRtbC5zb2MuZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV91cyA9IGNvbnRleHQtPmJ3X2N0eC5kbWwuc29jLmR1bW15X3BzdGF0ZV9sYXRlbmN5X3VzOworCisJdm9sdGFnZV9zdXBwb3J0ZWQgPSBkY24yMF92YWxpZGF0ZV9iYW5kd2lkdGhfaW50ZXJuYWwoZGMsIGNvbnRleHQsIGZhbHNlKTsKKwlkdW1teV9wc3RhdGVfc3VwcG9ydGVkID0gY29udGV4dC0+YndfY3R4LmJ3LmRjbi5jbGsucF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydDsKKworCWlmICh2b2x0YWdlX3N1cHBvcnRlZCAmJiBkdW1teV9wc3RhdGVfc3VwcG9ydGVkKSB7CisJCWNvbnRleHQtPmJ3X2N0eC5idy5kY24uY2xrLnBfc3RhdGVfY2hhbmdlX3N1cHBvcnQgPSBmYWxzZTsKKwkJZ290byByZXN0b3JlX2RtbF9zdGF0ZTsKKwl9CisKKwkvLyBFUlJPUjogZmFsbGJhY2sgaXMgc3VwcG9zZWQgdG8gYWx3YXlzIHdvcmsuCisJQVNTRVJUKGZhbHNlKTsKKworcmVzdG9yZV9kbWxfc3RhdGU6CisJbWVtY3B5KCZjb250ZXh0LT5id19jdHguZG1sLCAmZGMtPmRtbCwgc2l6ZW9mKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliKSk7CisJY29udGV4dC0+YndfY3R4LmRtbC5zb2MuZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV91cyA9IHBfc3RhdGVfbGF0ZW5jeV91czsKKworCXJldHVybiB2b2x0YWdlX3N1cHBvcnRlZDsKK30KKwogc3RydWN0IHBpcGVfY3R4ICpkY24yMF9hY3F1aXJlX2lkbGVfcGlwZV9mb3JfbGF5ZXIoCiAJCXN0cnVjdCBkY19zdGF0ZSAqc3RhdGUsCiAJCWNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLApAQCAtMjU3Niw5ICsyOTgwLDYgQEAgc3RhdGljIHZvaWQgY2FwX3NvY19jbG9ja3MoCiAJCQkJCQkmJiBtYXhfY2xvY2tzLnVDbG9ja0luS2h6ICE9IDApCiAJCQliYi0+Y2xvY2tfbGltaXRzW2ldLmRyYW1fc3BlZWRfbXRzID0gKG1heF9jbG9ja3MudUNsb2NrSW5LaHogLyAxMDAwKSAqIDE2OwogCi0JCS8vIEhBQ0s6IEZvcmNlIGV2ZXJ5IHVjbGsgdG8gbWF4IGZvciBub3cgdG8gImRpc2FibGUiIHVjbGsgc3dpdGNoaW5nLgotCQliYi0+Y2xvY2tfbGltaXRzW2ldLmRyYW1fc3BlZWRfbXRzID0gKG1heF9jbG9ja3MudUNsb2NrSW5LaHogLyAxMDAwKSAqIDE2OwotCiAJCWlmICgoYmItPmNsb2NrX2xpbWl0c1tpXS5mYWJyaWNjbGtfbWh6ID4gKG1heF9jbG9ja3MuZmFicmljQ2xvY2tJbktoeiAvIDEwMDApKQogCQkJCQkJJiYgbWF4X2Nsb2Nrcy5mYWJyaWNDbG9ja0luS2h6ICE9IDApCiAJCQliYi0+Y2xvY2tfbGltaXRzW2ldLmZhYnJpY2Nsa19taHogPSAobWF4X2Nsb2Nrcy5mYWJyaWNDbG9ja0luS2h6IC8gMTAwMCk7CkBAIC0yNjc0LDYgKzMwNzUsMTAgQEAgc3RhdGljIHZvaWQgdXBkYXRlX2JvdW5kaW5nX2JveChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgX3Zjc19kcGlfc29jX2JvdW5kaW5nX2JveF8KIAkJbnVtX2NhbGN1bGF0ZWRfc3RhdGVzKys7CiAJfQogCisJY2FsY3VsYXRlZF9zdGF0ZXNbbnVtX2NhbGN1bGF0ZWRfc3RhdGVzIC0gMV0uc29jY2xrX21oeiA9IG1heF9jbG9ja3MtPnNvY0Nsb2NrSW5LaHogLyAxMDAwOworCWNhbGN1bGF0ZWRfc3RhdGVzW251bV9jYWxjdWxhdGVkX3N0YXRlcyAtIDFdLmZhYnJpY2Nsa19taHogPSBtYXhfY2xvY2tzLT5zb2NDbG9ja0luS2h6IC8gMTAwMDsKKwljYWxjdWxhdGVkX3N0YXRlc1tudW1fY2FsY3VsYXRlZF9zdGF0ZXMgLSAxXS5kY2ZjbGtfbWh6ID0gbWF4X2Nsb2Nrcy0+ZGNmQ2xvY2tJbktoeiAvIDEwMDA7CisKIAltZW1jcHkoYmItPmNsb2NrX2xpbWl0cywgY2FsY3VsYXRlZF9zdGF0ZXMsIHNpemVvZihiYi0+Y2xvY2tfbGltaXRzKSk7CiAJYmItPm51bV9zdGF0ZXMgPSBudW1fY2FsY3VsYXRlZF9zdGF0ZXM7CiAKQEAgLTI3MTEsNiArMzExNiwyNyBAQCBzdGF0aWMgdm9pZCBwYXRjaF9ib3VuZGluZ19ib3goc3RydWN0IGRjICpkYywgc3RydWN0IF92Y3NfZHBpX3NvY19ib3VuZGluZ19ib3hfcwogCWtlcm5lbF9mcHVfZW5kKCk7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgX3Zjc19kcGlfc29jX2JvdW5kaW5nX2JveF9zdCAqZ2V0X2FzaWNfcmV2X3NvY19iYigKKwl1aW50MzJfdCBod19pbnRlcm5hbF9yZXYpCit7CisJaWYgKEFTSUNSRVZfSVNfTkFWSTEyX1AoaHdfaW50ZXJuYWxfcmV2KSkKKwkJcmV0dXJuICZkY24yXzBfbnYxMl9zb2M7CisKKwlyZXR1cm4gJmRjbjJfMF9zb2M7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgX3Zjc19kcGlfaXBfcGFyYW1zX3N0ICpnZXRfYXNpY19yZXZfaXBfcGFyYW1zKAorCXVpbnQzMl90IGh3X2ludGVybmFsX3JldikKK3sKKwkvKiBOVjEyIGFuZCBOVjEwICovCisJcmV0dXJuICZkY24yXzBfaXA7Cit9CisKK3N0YXRpYyBlbnVtIGRtbF9wcm9qZWN0IGdldF9kbWxfcHJvamVjdF92ZXJzaW9uKHVpbnQzMl90IGh3X2ludGVybmFsX3JldikKK3sKKwlyZXR1cm4gRE1MX1BST0pFQ1RfTkFWSTEwdjI7Cit9CisKICNkZWZpbmUgZml4ZWQxNl90b19kb3VibGUoeCkgKCgoZG91YmxlKSB4KSAvICgoZG91YmxlKSAoMSA8PCAxNikpKQogI2RlZmluZSBmaXhlZDE2X3RvX2RvdWJsZV90b19jcHUoeCkgZml4ZWQxNl90b19kb3VibGUobGUzMl90b19jcHUoeCkpCiAKQEAgLTI3MTgsNiArMzE0NCwxMSBAQCBzdGF0aWMgYm9vbCBpbml0X3NvY19ib3VuZGluZ19ib3goc3RydWN0IGRjICpkYywKIAkJCQkgIHN0cnVjdCBkY24yMF9yZXNvdXJjZV9wb29sICpwb29sKQogewogCWNvbnN0IHN0cnVjdCBncHVfaW5mb19zb2NfYm91bmRpbmdfYm94X3YxXzAgKmJiID0gZGMtPnNvY19ib3VuZGluZ19ib3g7CisJc3RydWN0IF92Y3NfZHBpX3NvY19ib3VuZGluZ19ib3hfc3QgKmxvYWRlZF9iYiA9CisJCQlnZXRfYXNpY19yZXZfc29jX2JiKGRjLT5jdHgtPmFzaWNfaWQuaHdfaW50ZXJuYWxfcmV2KTsKKwlzdHJ1Y3QgX3Zjc19kcGlfaXBfcGFyYW1zX3N0ICpsb2FkZWRfaXAgPQorCQkJZ2V0X2FzaWNfcmV2X2lwX3BhcmFtcyhkYy0+Y3R4LT5hc2ljX2lkLmh3X2ludGVybmFsX3Jldik7CisKIAlEQ19MT0dHRVJfSU5JVChkYy0+Y3R4LT5sb2dnZXIpOwogCiAJaWYgKCFiYiAmJiAhU09DX0JPVU5ESU5HX0JPWF9WQUxJRCkgewpAQCAtMjcyOCwxMDMgKzMxNTksMTAzIEBAIHN0YXRpYyBib29sIGluaXRfc29jX2JvdW5kaW5nX2JveChzdHJ1Y3QgZGMgKmRjLAogCWlmIChiYiAmJiAhU09DX0JPVU5ESU5HX0JPWF9WQUxJRCkgewogCQlpbnQgaTsKIAotCQlkY24yXzBfc29jLnNyX2V4aXRfdGltZV91cyA9CisJCWRjbjJfMF9udjEyX3NvYy5zcl9leGl0X3RpbWVfdXMgPQogCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+c3JfZXhpdF90aW1lX3VzKTsKLQkJZGNuMl8wX3NvYy5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9CisJCWRjbjJfMF9udjEyX3NvYy5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9CiAJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyk7Ci0JCWRjbjJfMF9zb2MudXJnZW50X2xhdGVuY3lfdXMgPQorCQlkY24yXzBfbnYxMl9zb2MudXJnZW50X2xhdGVuY3lfdXMgPQogCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+dXJnZW50X2xhdGVuY3lfdXMpOwotCQlkY24yXzBfc29jLnVyZ2VudF9sYXRlbmN5X3BpeGVsX2RhdGFfb25seV91cyA9CisJCWRjbjJfMF9udjEyX3NvYy51cmdlbnRfbGF0ZW5jeV9waXhlbF9kYXRhX29ubHlfdXMgPQogCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+dXJnZW50X2xhdGVuY3lfcGl4ZWxfZGF0YV9vbmx5X3VzKTsKLQkJZGNuMl8wX3NvYy51cmdlbnRfbGF0ZW5jeV9waXhlbF9taXhlZF93aXRoX3ZtX2RhdGFfdXMgPQorCQlkY24yXzBfbnYxMl9zb2MudXJnZW50X2xhdGVuY3lfcGl4ZWxfbWl4ZWRfd2l0aF92bV9kYXRhX3VzID0KIAkJCQlmaXhlZDE2X3RvX2RvdWJsZV90b19jcHUoYmItPnVyZ2VudF9sYXRlbmN5X3BpeGVsX21peGVkX3dpdGhfdm1fZGF0YV91cyk7Ci0JCWRjbjJfMF9zb2MudXJnZW50X2xhdGVuY3lfdm1fZGF0YV9vbmx5X3VzID0KKwkJZGNuMl8wX252MTJfc29jLnVyZ2VudF9sYXRlbmN5X3ZtX2RhdGFfb25seV91cyA9CiAJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT51cmdlbnRfbGF0ZW5jeV92bV9kYXRhX29ubHlfdXMpOwotCQlkY24yXzBfc29jLnVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3BpeGVsX29ubHlfYnl0ZXMgPQorCQlkY24yXzBfbnYxMl9zb2MudXJnZW50X291dF9vZl9vcmRlcl9yZXR1cm5fcGVyX2NoYW5uZWxfcGl4ZWxfb25seV9ieXRlcyA9CiAJCQkJbGUzMl90b19jcHUoYmItPnVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3BpeGVsX29ubHlfYnl0ZXMpOwotCQlkY24yXzBfc29jLnVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3BpeGVsX2FuZF92bV9ieXRlcyA9CisJCWRjbjJfMF9udjEyX3NvYy51cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbF9waXhlbF9hbmRfdm1fYnl0ZXMgPQogCQkJCWxlMzJfdG9fY3B1KGJiLT51cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbF9waXhlbF9hbmRfdm1fYnl0ZXMpOwotCQlkY24yXzBfc29jLnVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3ZtX29ubHlfYnl0ZXMgPQorCQlkY24yXzBfbnYxMl9zb2MudXJnZW50X291dF9vZl9vcmRlcl9yZXR1cm5fcGVyX2NoYW5uZWxfdm1fb25seV9ieXRlcyA9CiAJCQkJbGUzMl90b19jcHUoYmItPnVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3ZtX29ubHlfYnl0ZXMpOwotCQlkY24yXzBfc29jLnBjdF9pZGVhbF9kcmFtX3NkcF9id19hZnRlcl91cmdlbnRfcGl4ZWxfb25seSA9CisJCWRjbjJfMF9udjEyX3NvYy5wY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVsX29ubHkgPQogCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+cGN0X2lkZWFsX2RyYW1fc2RwX2J3X2FmdGVyX3VyZ2VudF9waXhlbF9vbmx5KTsKLQkJZGNuMl8wX3NvYy5wY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVsX2FuZF92bSA9CisJCWRjbjJfMF9udjEyX3NvYy5wY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVsX2FuZF92bSA9CiAJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5wY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVsX2FuZF92bSk7Ci0JCWRjbjJfMF9zb2MucGN0X2lkZWFsX2RyYW1fc2RwX2J3X2FmdGVyX3VyZ2VudF92bV9vbmx5ID0KKwkJZGNuMl8wX252MTJfc29jLnBjdF9pZGVhbF9kcmFtX3NkcF9id19hZnRlcl91cmdlbnRfdm1fb25seSA9CiAJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5wY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJfdXJnZW50X3ZtX29ubHkpOwotCQlkY24yXzBfc29jLm1heF9hdmdfc2RwX2J3X3VzZV9ub3JtYWxfcGVyY2VudCA9CisJCWRjbjJfMF9udjEyX3NvYy5tYXhfYXZnX3NkcF9id191c2Vfbm9ybWFsX3BlcmNlbnQgPQogCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+bWF4X2F2Z19zZHBfYndfdXNlX25vcm1hbF9wZXJjZW50KTsKLQkJZGNuMl8wX3NvYy5tYXhfYXZnX2RyYW1fYndfdXNlX25vcm1hbF9wZXJjZW50ID0KKwkJZGNuMl8wX252MTJfc29jLm1heF9hdmdfZHJhbV9id191c2Vfbm9ybWFsX3BlcmNlbnQgPQogCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+bWF4X2F2Z19kcmFtX2J3X3VzZV9ub3JtYWxfcGVyY2VudCk7Ci0JCWRjbjJfMF9zb2Mud3JpdGViYWNrX2xhdGVuY3lfdXMgPQorCQlkY24yXzBfbnYxMl9zb2Mud3JpdGViYWNrX2xhdGVuY3lfdXMgPQogCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+d3JpdGViYWNrX2xhdGVuY3lfdXMpOwotCQlkY24yXzBfc29jLmlkZWFsX2RyYW1fYndfYWZ0ZXJfdXJnZW50X3BlcmNlbnQgPQorCQlkY24yXzBfbnYxMl9zb2MuaWRlYWxfZHJhbV9id19hZnRlcl91cmdlbnRfcGVyY2VudCA9CiAJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5pZGVhbF9kcmFtX2J3X2FmdGVyX3VyZ2VudF9wZXJjZW50KTsKLQkJZGNuMl8wX3NvYy5tYXhfcmVxdWVzdF9zaXplX2J5dGVzID0KKwkJZGNuMl8wX252MTJfc29jLm1heF9yZXF1ZXN0X3NpemVfYnl0ZXMgPQogCQkJCWxlMzJfdG9fY3B1KGJiLT5tYXhfcmVxdWVzdF9zaXplX2J5dGVzKTsKLQkJZGNuMl8wX3NvYy5kcmFtX2NoYW5uZWxfd2lkdGhfYnl0ZXMgPQorCQlkY24yXzBfbnYxMl9zb2MuZHJhbV9jaGFubmVsX3dpZHRoX2J5dGVzID0KIAkJCQlsZTMyX3RvX2NwdShiYi0+ZHJhbV9jaGFubmVsX3dpZHRoX2J5dGVzKTsKLQkJZGNuMl8wX3NvYy5mYWJyaWNfZGF0YXBhdGhfdG9fZGNuX2RhdGFfcmV0dXJuX2J5dGVzID0KKwkJZGNuMl8wX252MTJfc29jLmZhYnJpY19kYXRhcGF0aF90b19kY25fZGF0YV9yZXR1cm5fYnl0ZXMgPQogCQkJCWxlMzJfdG9fY3B1KGJiLT5mYWJyaWNfZGF0YXBhdGhfdG9fZGNuX2RhdGFfcmV0dXJuX2J5dGVzKTsKLQkJZGNuMl8wX3NvYy5kY25fZG93bnNwcmVhZF9wZXJjZW50ID0KKwkJZGNuMl8wX252MTJfc29jLmRjbl9kb3duc3ByZWFkX3BlcmNlbnQgPQogCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+ZGNuX2Rvd25zcHJlYWRfcGVyY2VudCk7Ci0JCWRjbjJfMF9zb2MuZG93bnNwcmVhZF9wZXJjZW50ID0KKwkJZGNuMl8wX252MTJfc29jLmRvd25zcHJlYWRfcGVyY2VudCA9CiAJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5kb3duc3ByZWFkX3BlcmNlbnQpOwotCQlkY24yXzBfc29jLmRyYW1fcGFnZV9vcGVuX3RpbWVfbnMgPQorCQlkY24yXzBfbnYxMl9zb2MuZHJhbV9wYWdlX29wZW5fdGltZV9ucyA9CiAJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5kcmFtX3BhZ2Vfb3Blbl90aW1lX25zKTsKLQkJZGNuMl8wX3NvYy5kcmFtX3J3X3R1cm5hcm91bmRfdGltZV9ucyA9CisJCWRjbjJfMF9udjEyX3NvYy5kcmFtX3J3X3R1cm5hcm91bmRfdGltZV9ucyA9CiAJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5kcmFtX3J3X3R1cm5hcm91bmRfdGltZV9ucyk7Ci0JCWRjbjJfMF9zb2MuZHJhbV9yZXR1cm5fYnVmZmVyX3Blcl9jaGFubmVsX2J5dGVzID0KKwkJZGNuMl8wX252MTJfc29jLmRyYW1fcmV0dXJuX2J1ZmZlcl9wZXJfY2hhbm5lbF9ieXRlcyA9CiAJCQkJbGUzMl90b19jcHUoYmItPmRyYW1fcmV0dXJuX2J1ZmZlcl9wZXJfY2hhbm5lbF9ieXRlcyk7Ci0JCWRjbjJfMF9zb2Mucm91bmRfdHJpcF9waW5nX2xhdGVuY3lfZGNmY2xrX2N5Y2xlcyA9CisJCWRjbjJfMF9udjEyX3NvYy5yb3VuZF90cmlwX3BpbmdfbGF0ZW5jeV9kY2ZjbGtfY3ljbGVzID0KIAkJCQlsZTMyX3RvX2NwdShiYi0+cm91bmRfdHJpcF9waW5nX2xhdGVuY3lfZGNmY2xrX2N5Y2xlcyk7Ci0JCWRjbjJfMF9zb2MudXJnZW50X291dF9vZl9vcmRlcl9yZXR1cm5fcGVyX2NoYW5uZWxfYnl0ZXMgPQorCQlkY24yXzBfbnYxMl9zb2MudXJnZW50X291dF9vZl9vcmRlcl9yZXR1cm5fcGVyX2NoYW5uZWxfYnl0ZXMgPQogCQkJCWxlMzJfdG9fY3B1KGJiLT51cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbF9ieXRlcyk7Ci0JCWRjbjJfMF9zb2MuY2hhbm5lbF9pbnRlcmxlYXZlX2J5dGVzID0KKwkJZGNuMl8wX252MTJfc29jLmNoYW5uZWxfaW50ZXJsZWF2ZV9ieXRlcyA9CiAJCQkJbGUzMl90b19jcHUoYmItPmNoYW5uZWxfaW50ZXJsZWF2ZV9ieXRlcyk7Ci0JCWRjbjJfMF9zb2MubnVtX2JhbmtzID0KKwkJZGNuMl8wX252MTJfc29jLm51bV9iYW5rcyA9CiAJCQkJbGUzMl90b19jcHUoYmItPm51bV9iYW5rcyk7Ci0JCWRjbjJfMF9zb2MubnVtX2NoYW5zID0KKwkJZGNuMl8wX252MTJfc29jLm51bV9jaGFucyA9CiAJCQkJbGUzMl90b19jcHUoYmItPm51bV9jaGFucyk7Ci0JCWRjbjJfMF9zb2Mudm1tX3BhZ2Vfc2l6ZV9ieXRlcyA9CisJCWRjbjJfMF9udjEyX3NvYy52bW1fcGFnZV9zaXplX2J5dGVzID0KIAkJCQlsZTMyX3RvX2NwdShiYi0+dm1tX3BhZ2Vfc2l6ZV9ieXRlcyk7Ci0JCWRjbjJfMF9zb2MuZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV91cyA9CisJCWRjbjJfMF9udjEyX3NvYy5kcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzID0KIAkJCQlmaXhlZDE2X3RvX2RvdWJsZV90b19jcHUoYmItPmRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3lfdXMpOwogCQkvLyBIQUNLISEgTG93ZXIgdWNsb2NrIGxhdGVuY3kgc3dpdGNoIHRpbWUgc28gd2UgZG9uJ3Qgc3dpdGNoCi0JCWRjbjJfMF9zb2MuZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV91cyA9IDEwOwotCQlkY24yXzBfc29jLndyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzID0KKwkJZGNuMl8wX252MTJfc29jLmRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3lfdXMgPSAxMDsKKwkJZGNuMl8wX252MTJfc29jLndyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzID0KIAkJCQlmaXhlZDE2X3RvX2RvdWJsZV90b19jcHUoYmItPndyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzKTsKLQkJZGNuMl8wX3NvYy5yZXR1cm5fYnVzX3dpZHRoX2J5dGVzID0KKwkJZGNuMl8wX252MTJfc29jLnJldHVybl9idXNfd2lkdGhfYnl0ZXMgPQogCQkJCWxlMzJfdG9fY3B1KGJiLT5yZXR1cm5fYnVzX3dpZHRoX2J5dGVzKTsKLQkJZGNuMl8wX3NvYy5kaXNwY2xrX2RwcGNsa192Y29fc3BlZWRfbWh6ID0KKwkJZGNuMl8wX252MTJfc29jLmRpc3BjbGtfZHBwY2xrX3Zjb19zcGVlZF9taHogPQogCQkJCWxlMzJfdG9fY3B1KGJiLT5kaXNwY2xrX2RwcGNsa192Y29fc3BlZWRfbWh6KTsKLQkJZGNuMl8wX3NvYy54ZmNfYnVzX3RyYW5zcG9ydF90aW1lX3VzID0KKwkJZGNuMl8wX252MTJfc29jLnhmY19idXNfdHJhbnNwb3J0X3RpbWVfdXMgPQogCQkJCWxlMzJfdG9fY3B1KGJiLT54ZmNfYnVzX3RyYW5zcG9ydF90aW1lX3VzKTsKLQkJZGNuMl8wX3NvYy54ZmNfeGJ1Zl9sYXRlbmN5X3RvbGVyYW5jZV91cyA9CisJCWRjbjJfMF9udjEyX3NvYy54ZmNfeGJ1Zl9sYXRlbmN5X3RvbGVyYW5jZV91cyA9CiAJCQkJbGUzMl90b19jcHUoYmItPnhmY194YnVmX2xhdGVuY3lfdG9sZXJhbmNlX3VzKTsKLQkJZGNuMl8wX3NvYy51c2VfdXJnZW50X2J1cnN0X2J3ID0KKwkJZGNuMl8wX252MTJfc29jLnVzZV91cmdlbnRfYnVyc3RfYncgPQogCQkJCWxlMzJfdG9fY3B1KGJiLT51c2VfdXJnZW50X2J1cnN0X2J3KTsKLQkJZGNuMl8wX3NvYy5udW1fc3RhdGVzID0KKwkJZGNuMl8wX252MTJfc29jLm51bV9zdGF0ZXMgPQogCQkJCWxlMzJfdG9fY3B1KGJiLT5udW1fc3RhdGVzKTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgZGNuMl8wX3NvYy5udW1fc3RhdGVzOyBpKyspIHsKLQkJCWRjbjJfMF9zb2MuY2xvY2tfbGltaXRzW2ldLnN0YXRlID0KKwkJZm9yIChpID0gMDsgaSA8IGRjbjJfMF9udjEyX3NvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJCWRjbjJfMF9udjEyX3NvYy5jbG9ja19saW1pdHNbaV0uc3RhdGUgPQogCQkJCQlsZTMyX3RvX2NwdShiYi0+Y2xvY2tfbGltaXRzW2ldLnN0YXRlKTsKLQkJCWRjbjJfMF9zb2MuY2xvY2tfbGltaXRzW2ldLmRjZmNsa19taHogPQorCQkJZGNuMl8wX252MTJfc29jLmNsb2NrX2xpbWl0c1tpXS5kY2ZjbGtfbWh6ID0KIAkJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5jbG9ja19saW1pdHNbaV0uZGNmY2xrX21oeik7Ci0JCQlkY24yXzBfc29jLmNsb2NrX2xpbWl0c1tpXS5mYWJyaWNjbGtfbWh6ID0KKwkJCWRjbjJfMF9udjEyX3NvYy5jbG9ja19saW1pdHNbaV0uZmFicmljY2xrX21oeiA9CiAJCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+Y2xvY2tfbGltaXRzW2ldLmZhYnJpY2Nsa19taHopOwotCQkJZGNuMl8wX3NvYy5jbG9ja19saW1pdHNbaV0uZGlzcGNsa19taHogPQorCQkJZGNuMl8wX252MTJfc29jLmNsb2NrX2xpbWl0c1tpXS5kaXNwY2xrX21oeiA9CiAJCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+Y2xvY2tfbGltaXRzW2ldLmRpc3BjbGtfbWh6KTsKLQkJCWRjbjJfMF9zb2MuY2xvY2tfbGltaXRzW2ldLmRwcGNsa19taHogPQorCQkJZGNuMl8wX252MTJfc29jLmNsb2NrX2xpbWl0c1tpXS5kcHBjbGtfbWh6ID0KIAkJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5jbG9ja19saW1pdHNbaV0uZHBwY2xrX21oeik7Ci0JCQlkY24yXzBfc29jLmNsb2NrX2xpbWl0c1tpXS5waHljbGtfbWh6ID0KKwkJCWRjbjJfMF9udjEyX3NvYy5jbG9ja19saW1pdHNbaV0ucGh5Y2xrX21oeiA9CiAJCQkJCWZpeGVkMTZfdG9fZG91YmxlX3RvX2NwdShiYi0+Y2xvY2tfbGltaXRzW2ldLnBoeWNsa19taHopOwotCQkJZGNuMl8wX3NvYy5jbG9ja19saW1pdHNbaV0uc29jY2xrX21oeiA9CisJCQlkY24yXzBfbnYxMl9zb2MuY2xvY2tfbGltaXRzW2ldLnNvY2Nsa19taHogPQogCQkJCQlmaXhlZDE2X3RvX2RvdWJsZV90b19jcHUoYmItPmNsb2NrX2xpbWl0c1tpXS5zb2NjbGtfbWh6KTsKLQkJCWRjbjJfMF9zb2MuY2xvY2tfbGltaXRzW2ldLmRzY2Nsa19taHogPQorCQkJZGNuMl8wX252MTJfc29jLmNsb2NrX2xpbWl0c1tpXS5kc2NjbGtfbWh6ID0KIAkJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5jbG9ja19saW1pdHNbaV0uZHNjY2xrX21oeik7Ci0JCQlkY24yXzBfc29jLmNsb2NrX2xpbWl0c1tpXS5kcmFtX3NwZWVkX210cyA9CisJCQlkY24yXzBfbnYxMl9zb2MuY2xvY2tfbGltaXRzW2ldLmRyYW1fc3BlZWRfbXRzID0KIAkJCQkJZml4ZWQxNl90b19kb3VibGVfdG9fY3B1KGJiLT5jbG9ja19saW1pdHNbaV0uZHJhbV9zcGVlZF9tdHMpOwogCQl9CiAJfQpAQCAtMjgzMyw3ICszMjY0LDYgQEAgc3RhdGljIGJvb2wgaW5pdF9zb2NfYm91bmRpbmdfYm94KHN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBwcF9zbXVfbnZfY2xvY2tfdGFibGUgbWF4X2Nsb2NrcyA9IHswfTsKIAkJdW5zaWduZWQgaW50IHVjbGtfc3RhdGVzWzhdID0gezB9OwogCQl1bnNpZ25lZCBpbnQgbnVtX3N0YXRlcyA9IDA7Ci0JCWludCBpOwogCQllbnVtIHBwX3NtdV9zdGF0dXMgc3RhdHVzOwogCQlib29sIGNsb2NrX2xpbWl0c19hdmFpbGFibGUgPSBmYWxzZTsKIAkJYm9vbCB1Y2xrX3N0YXRlc19hdmFpbGFibGUgPSBmYWxzZTsKQEAgLTI4NTUsMTkgKzMyODUsMTUgQEAgc3RhdGljIGJvb2wgaW5pdF9zb2NfYm91bmRpbmdfYm94KHN0cnVjdCBkYyAqZGMsCiAJCQljbG9ja19saW1pdHNfYXZhaWxhYmxlID0gKHN0YXR1cyA9PSBQUF9TTVVfUkVTVUxUX09LKTsKIAkJfQogCi0JCS8vIEhBQ0s6IFVzZSB0aGUgbWF4IHVjbGtfc3RhdGVzIHZhbHVlIGZvciBhbGwgZWxlbWVudHMuCi0JCWZvciAoaSA9IDA7IGkgPCBudW1fc3RhdGVzOyBpKyspCi0JCQl1Y2xrX3N0YXRlc1tpXSA9IHVjbGtfc3RhdGVzW251bV9zdGF0ZXMgLSAxXTsKLQogCQlpZiAoY2xvY2tfbGltaXRzX2F2YWlsYWJsZSAmJiB1Y2xrX3N0YXRlc19hdmFpbGFibGUgJiYgbnVtX3N0YXRlcykKLQkJCXVwZGF0ZV9ib3VuZGluZ19ib3goZGMsICZkY24yXzBfc29jLCAmbWF4X2Nsb2NrcywgdWNsa19zdGF0ZXMsIG51bV9zdGF0ZXMpOworCQkJdXBkYXRlX2JvdW5kaW5nX2JveChkYywgbG9hZGVkX2JiLCAmbWF4X2Nsb2NrcywgdWNsa19zdGF0ZXMsIG51bV9zdGF0ZXMpOwogCQllbHNlIGlmIChjbG9ja19saW1pdHNfYXZhaWxhYmxlKQotCQkJY2FwX3NvY19jbG9ja3MoJmRjbjJfMF9zb2MsIG1heF9jbG9ja3MpOworCQkJY2FwX3NvY19jbG9ja3MobG9hZGVkX2JiLCBtYXhfY2xvY2tzKTsKIAl9CiAKLQlkY24yXzBfaXAubWF4X251bV9vdGcgPSBwb29sLT5iYXNlLnJlc19jYXAtPm51bV90aW1pbmdfZ2VuZXJhdG9yOwotCWRjbjJfMF9pcC5tYXhfbnVtX2RwcCA9IHBvb2wtPmJhc2UucGlwZV9jb3VudDsKLQlwYXRjaF9ib3VuZGluZ19ib3goZGMsICZkY24yXzBfc29jKTsKKwlsb2FkZWRfaXAtPm1heF9udW1fb3RnID0gcG9vbC0+YmFzZS5yZXNfY2FwLT5udW1fdGltaW5nX2dlbmVyYXRvcjsKKwlsb2FkZWRfaXAtPm1heF9udW1fZHBwID0gcG9vbC0+YmFzZS5waXBlX2NvdW50OworCXBhdGNoX2JvdW5kaW5nX2JveChkYywgbG9hZGVkX2JiKTsKIAogCXJldHVybiB0cnVlOwogfQpAQCAtMjg4MCwxOSArMzMwNiwzMCBAQCBzdGF0aWMgYm9vbCBjb25zdHJ1Y3QoCiAJaW50IGk7CiAJc3RydWN0IGRjX2NvbnRleHQgKmN0eCA9IGRjLT5jdHg7CiAJc3RydWN0IGlycV9zZXJ2aWNlX2luaXRfZGF0YSBpbml0X2RhdGE7CisJc3RydWN0IF92Y3NfZHBpX3NvY19ib3VuZGluZ19ib3hfc3QgKmxvYWRlZF9iYiA9CisJCQlnZXRfYXNpY19yZXZfc29jX2JiKGN0eC0+YXNpY19pZC5od19pbnRlcm5hbF9yZXYpOworCXN0cnVjdCBfdmNzX2RwaV9pcF9wYXJhbXNfc3QgKmxvYWRlZF9pcCA9CisJCQlnZXRfYXNpY19yZXZfaXBfcGFyYW1zKGN0eC0+YXNpY19pZC5od19pbnRlcm5hbF9yZXYpOworCWVudW0gZG1sX3Byb2plY3QgZG1sX3Byb2plY3RfdmVyc2lvbiA9CisJCQlnZXRfZG1sX3Byb2plY3RfdmVyc2lvbihjdHgtPmFzaWNfaWQuaHdfaW50ZXJuYWxfcmV2KTsKIAogCWN0eC0+ZGNfYmlvcy0+cmVncyA9ICZiaW9zX3JlZ3M7Ci0KLQlwb29sLT5iYXNlLnJlc19jYXAgPSAmcmVzX2NhcF9udjEwOwogCXBvb2wtPmJhc2UuZnVuY3MgPSAmZGNuMjBfcmVzX3Bvb2xfZnVuY3M7CiAKKwlpZiAoQVNJQ1JFVl9JU19OQVZJMTRfTShjdHgtPmFzaWNfaWQuaHdfaW50ZXJuYWxfcmV2KSkgeworCQlwb29sLT5iYXNlLnJlc19jYXAgPSAmcmVzX2NhcF9udjE0OworCQlwb29sLT5iYXNlLnBpcGVfY291bnQgPSA1OworCQlwb29sLT5iYXNlLm1wY2NfY291bnQgPSA1OworCX0gZWxzZSB7CisJCXBvb2wtPmJhc2UucmVzX2NhcCA9ICZyZXNfY2FwX252MTA7CisJCXBvb2wtPmJhc2UucGlwZV9jb3VudCA9IDY7CisJCXBvb2wtPmJhc2UubXBjY19jb3VudCA9IDY7CisJfQogCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAJICogIFJlc291cmNlICsgYXNpYyBjYXAgaGFyY29kaW5nICAgICAgICAgICAgICAgICoKIAkgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAlwb29sLT5iYXNlLnVuZGVybGF5X3BpcGVfaW5kZXggPSBOT19VTkRFUkxBWV9QSVBFOwogCi0JcG9vbC0+YmFzZS5waXBlX2NvdW50ID0gNjsKLQlwb29sLT5iYXNlLm1wY2NfY291bnQgPSA2OwogCWRjLT5jYXBzLm1heF9kb3duc2NhbGVfcmF0aW8gPSAyMDA7CiAJZGMtPmNhcHMuaTJjX3NwZWVkX2luX2toeiA9IDEwMDsKIAlkYy0+Y2Fwcy5tYXhfY3Vyc29yX3NpemUgPSAyNTY7CkBAIC0yOTk4LDcgKzM0MzUsNyBAQCBzdGF0aWMgYm9vbCBjb25zdHJ1Y3QoCiAJCWdvdG8gY3JlYXRlX2ZhaWw7CiAJfQogCi0JZG1sX2luaXRfaW5zdGFuY2UoJmRjLT5kbWwsICZkY24yXzBfc29jLCAmZGNuMl8wX2lwLCBETUxfUFJPSkVDVF9OQVZJMTApOworCWRtbF9pbml0X2luc3RhbmNlKCZkYy0+ZG1sLCBsb2FkZWRfYmIsIGxvYWRlZF9pcCwgZG1sX3Byb2plY3RfdmVyc2lvbik7CiAKIAlpZiAoIWRjLT5kZWJ1Zy5kaXNhYmxlX3BwbGliX3dtX3JhbmdlKSB7CiAJCXN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vfc2V0cyByYW5nZXMgPSB7MH07CkBAIC0zMDA2LDcgKzM0NDMsNyBAQCBzdGF0aWMgYm9vbCBjb25zdHJ1Y3QoCiAKIAkJcmFuZ2VzLm51bV9yZWFkZXJfd21fc2V0cyA9IDA7CiAKLQkJaWYgKGRjbjJfMF9zb2MubnVtX3N0YXRlcyA9PSAxKSB7CisJCWlmIChsb2FkZWRfYmItPm51bV9zdGF0ZXMgPT0gMSkgewogCQkJcmFuZ2VzLnJlYWRlcl93bV9zZXRzWzBdLndtX2luc3QgPSBpOwogCQkJcmFuZ2VzLnJlYWRlcl93bV9zZXRzWzBdLm1pbl9kcmFpbl9jbGtfbWh6ID0gUFBfU01VX1dNX1NFVF9SQU5HRV9DTEtfVU5DT05TVFJBSU5FRF9NSU47CiAJCQlyYW5nZXMucmVhZGVyX3dtX3NldHNbMF0ubWF4X2RyYWluX2Nsa19taHogPSBQUF9TTVVfV01fU0VUX1JBTkdFX0NMS19VTkNPTlNUUkFJTkVEX01BWDsKQEAgLTMwMTQsMTMgKzM0NTEsMTMgQEAgc3RhdGljIGJvb2wgY29uc3RydWN0KAogCQkJcmFuZ2VzLnJlYWRlcl93bV9zZXRzWzBdLm1heF9maWxsX2Nsa19taHogPSBQUF9TTVVfV01fU0VUX1JBTkdFX0NMS19VTkNPTlNUUkFJTkVEX01BWDsKIAogCQkJcmFuZ2VzLm51bV9yZWFkZXJfd21fc2V0cyA9IDE7Ci0JCX0gZWxzZSBpZiAoZGNuMl8wX3NvYy5udW1fc3RhdGVzID4gMSkgewotCQkJZm9yIChpID0gMDsgaSA8IDQgJiYgaSA8IGRjbjJfMF9zb2MubnVtX3N0YXRlczsgaSsrKSB7CisJCX0gZWxzZSBpZiAobG9hZGVkX2JiLT5udW1fc3RhdGVzID4gMSkgeworCQkJZm9yIChpID0gMDsgaSA8IDQgJiYgaSA8IGxvYWRlZF9iYi0+bnVtX3N0YXRlczsgaSsrKSB7CiAJCQkJcmFuZ2VzLnJlYWRlcl93bV9zZXRzW2ldLndtX2luc3QgPSBpOwogCQkJCXJhbmdlcy5yZWFkZXJfd21fc2V0c1tpXS5taW5fZHJhaW5fY2xrX21oeiA9IFBQX1NNVV9XTV9TRVRfUkFOR0VfQ0xLX1VOQ09OU1RSQUlORURfTUlOOwogCQkJCXJhbmdlcy5yZWFkZXJfd21fc2V0c1tpXS5tYXhfZHJhaW5fY2xrX21oeiA9IFBQX1NNVV9XTV9TRVRfUkFOR0VfQ0xLX1VOQ09OU1RSQUlORURfTUFYOwotCQkJCXJhbmdlcy5yZWFkZXJfd21fc2V0c1tpXS5taW5fZmlsbF9jbGtfbWh6ID0gKGkgPiAwKSA/IChkY24yXzBfc29jLmNsb2NrX2xpbWl0c1tpIC0gMV0uZHJhbV9zcGVlZF9tdHMgLyAxNikgKyAxIDogMDsKLQkJCQlyYW5nZXMucmVhZGVyX3dtX3NldHNbaV0ubWF4X2ZpbGxfY2xrX21oeiA9IGRjbjJfMF9zb2MuY2xvY2tfbGltaXRzW2ldLmRyYW1fc3BlZWRfbXRzIC8gMTY7CisJCQkJcmFuZ2VzLnJlYWRlcl93bV9zZXRzW2ldLm1pbl9maWxsX2Nsa19taHogPSAoaSA+IDApID8gKGxvYWRlZF9iYi0+Y2xvY2tfbGltaXRzW2kgLSAxXS5kcmFtX3NwZWVkX210cyAvIDE2KSArIDEgOiAwOworCQkJCXJhbmdlcy5yZWFkZXJfd21fc2V0c1tpXS5tYXhfZmlsbF9jbGtfbWh6ID0gbG9hZGVkX2JiLT5jbG9ja19saW1pdHNbaV0uZHJhbV9zcGVlZF9tdHMgLyAxNjsKIAogCQkJCXJhbmdlcy5udW1fcmVhZGVyX3dtX3NldHMgPSBpICsgMTsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9yZXNvdXJjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3Jlc291cmNlLmgKaW5kZXggYjVhNzUyOC4uNDRmOTVhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3Jlc291cmNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3Jlc291cmNlLmgKQEAgLTExNiw2ICsxMTYsMTggQEAgdm9pZCBkY24yMF9zZXRfbWNpZl9hcmJfcGFyYW1zKAogCQlkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsCiAJCWludCBwaXBlX2NudCk7CiBib29sIGRjbjIwX3ZhbGlkYXRlX2JhbmR3aWR0aChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsIGJvb2wgZmFzdF92YWxpZGF0ZSk7Citib29sIGRjbjIwX2Zhc3RfdmFsaWRhdGVfYncoCisJCXN0cnVjdCBkYyAqZGMsCisJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKKwkJZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAorCQlpbnQgKnBpcGVfY250X291dCwKKwkJaW50ICpwaXBlX3NwbGl0X2Zyb20sCisJCWludCAqdmxldmVsX291dCk7Cit2b2lkIGRjbjIwX2NhbGN1bGF0ZV9kbGdfcGFyYW1zKAorCQlzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCisJCWRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywKKwkJaW50IHBpcGVfY250LAorCQlpbnQgdmxldmVsKTsKIAogZW51bSBkY19zdGF0dXMgZGNuMjBfYnVpbGRfbWFwcGVkX3Jlc291cmNlKGNvbnN0IHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKIGVudW0gZGNfc3RhdHVzIGRjbjIwX2FkZF9zdHJlYW1fdG9fY3R4KHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqbmV3X2N0eCwgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqZGNfc3RyZWFtKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9zdHJlYW1fZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3N0cmVhbV9lbmNvZGVyLmMKaW5kZXggZjViY2ZmYy4uNWFiOWQ2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3N0cmVhbV9lbmNvZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3N0cmVhbV9lbmNvZGVyLmMKQEAgLTIwNyw5ICsyMDcsOCBAQCBzdGF0aWMgdm9pZCBlbmMyX3N0cmVhbV9lbmNvZGVyX3N0b3BfaGRtaV9pbmZvX3BhY2tldHMoCiAKICNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAogCi0KIC8qIFVwZGF0ZSBHU1A3IFNEUCAxMjggYnl0ZSBsb25nICovCi1zdGF0aWMgdm9pZCBlbmMyX3NlbmRfZ3NwN18xMjhfaW5mb19wYWNrZXQoCitzdGF0aWMgdm9pZCBlbmMyX3VwZGF0ZV9nc3A3XzEyOF9pbmZvX3BhY2tldCgKIAlzdHJ1Y3QgZGNuMTBfc3RyZWFtX2VuY29kZXIgKmVuYzEsCiAJY29uc3Qgc3RydWN0IGRjX2luZm9fcGFja2V0XzEyOCAqaW5mb19wYWNrZXQpCiB7CkBAIC0yNzcsMTggKzI3Niw5IEBAIHN0YXRpYyB2b2lkIGVuYzJfc2VuZF9nc3A3XzEyOF9pbmZvX3BhY2tldCgKIHN0YXRpYyB2b2lkIGVuYzJfZHBfc2V0X2RzY19jb25maWcoc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAJCQkJCWVudW0gb3B0Y19kc2NfbW9kZSBkc2NfbW9kZSwKIAkJCQkJdWludDMyX3QgZHNjX2J5dGVzX3Blcl9waXhlbCwKLQkJCQkJdWludDMyX3QgZHNjX3NsaWNlX3dpZHRoLAotCQkJCQl1aW50OF90ICpkc2NfcGFja2VkX3BwcykKKwkJCQkJdWludDMyX3QgZHNjX3NsaWNlX3dpZHRoKQogewogCXN0cnVjdCBkY24xMF9zdHJlYW1fZW5jb2RlciAqZW5jMSA9IERDTjEwU1RSRU5DX0ZST01fU1RSRU5DKGVuYyk7Ci0JdWludDMyX3QgZHNjX3ZhbHVlID0gMDsKLQotCWRzY192YWx1ZSA9IFJFR19SRUFEKERQX0RTQ19DTlRMKTsKLQotCS8qIGRzYyBkaXNhYmxlIHNraXAgKi8KLQlpZiAoKGRzY192YWx1ZSAmIDB4MykgPT0gMHgwKQotCQlyZXR1cm47Ci0KIAogCVJFR19VUERBVEVfMihEUF9EU0NfQ05UTCwKIAkJCURQX0RTQ19NT0RFLCBkc2NfbW9kZSwKQEAgLTI5Niw4ICsyODYsMTYgQEAgc3RhdGljIHZvaWQgZW5jMl9kcF9zZXRfZHNjX2NvbmZpZyhzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKIAogCVJFR19TRVQoRFBfRFNDX0JZVEVTX1BFUl9QSVhFTCwgMCwKIAkJRFBfRFNDX0JZVEVTX1BFUl9QSVhFTCwgZHNjX2J5dGVzX3Blcl9waXhlbCk7Cit9CiAKLQlpZiAoZHNjX21vZGUgIT0gT1BUQ19EU0NfRElTQUJMRUQpIHsKKworc3RhdGljIHZvaWQgZW5jMl9kcF9zZXRfZHNjX3Bwc19pbmZvX3BhY2tldChzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKKwkJCQkJYm9vbCBlbmFibGUsCisJCQkJCXVpbnQ4X3QgKmRzY19wYWNrZWRfcHBzKQoreworCXN0cnVjdCBkY24xMF9zdHJlYW1fZW5jb2RlciAqZW5jMSA9IERDTjEwU1RSRU5DX0ZST01fU1RSRU5DKGVuYyk7CisKKwlpZiAoZW5hYmxlKSB7CiAJCXN0cnVjdCBkY19pbmZvX3BhY2tldF8xMjggcHBzX3NkcDsKIAogCQlBU1NFUlQoZHNjX3BhY2tlZF9wcHMpOwpAQCAtMzA5LDcgKzMwNyw3IEBAIHN0YXRpYyB2b2lkIGVuYzJfZHBfc2V0X2RzY19jb25maWcoc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAJCXBwc19zZHAuaGIyID0gMTI3OwogCQlwcHNfc2RwLmhiMyA9IDA7CiAJCW1lbWNweSgmcHBzX3NkcC5zYlswXSwgZHNjX3BhY2tlZF9wcHMsIHNpemVvZihwcHNfc2RwLnNiKSk7Ci0JCWVuYzJfc2VuZF9nc3A3XzEyOF9pbmZvX3BhY2tldChlbmMxLCAmcHBzX3NkcCk7CisJCWVuYzJfdXBkYXRlX2dzcDdfMTI4X2luZm9fcGFja2V0KGVuYzEsICZwcHNfc2RwKTsKIAogCQkvKiBFbmFibGUgR2VuZXJpYyBTdHJlYW0gUGFja2V0IDcgKEdTUCkgdHJhbnNtaXNzaW9uICovCiAJCS8vUkVHX1VQREFURShEUF9TRUNfQ05UTCwKQEAgLTM0MCw5ICszMzgsOCBAQCBzdGF0aWMgdm9pZCBlbmMyX2RwX3NldF9kc2NfY29uZmlnKHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAogCQlSRUdfVVBEQVRFKERQX1NFQ19DTlRMMiwgRFBfU0VDX0dTUDdfUFBTLCAwKTsKIAl9CiB9Ci0jZW5kaWYKIAotI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisKIC8qIHRoaXMgZnVuY3Rpb24gcmVhZCBkc2MgcmVsYXRlZCByZWdpc3RlciBmaWVsZHMgdG8gYmUgbG9nZ2VkIGxhdGVyIGluIGRjbjEwX2xvZ19od19zdGF0ZQogICogaW50byBhIGRjbl9kc2Nfc3RhdGUgc3RydWN0LgogICovCkBAIC0zNzMsNyArMzcwLDcgQEAgc3RhdGljIHZvaWQgZW5jMl9yZWFkX3N0YXRlKHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLCBzdHJ1Y3QgZW5jX3N0YXRlICpzKQogICoKICAqICAgRW5zdXJlIHRoZSBPVEcgbWFzdGVyIHVwZGF0ZSBsb2NrIGlzIHNldCB3aGVuIGNoYW5naW5nIERNRSBjb25maWd1cmF0aW9uLgogICovCi1zdGF0aWMgdm9pZCBlbmMyX3NldF9keW5hbWljX21ldGFkYXRhKHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAordm9pZCBlbmMyX3NldF9keW5hbWljX21ldGFkYXRhKHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAogCQlib29sIGVuYWJsZV9kbWUsCiAJCXVpbnQzMl90IGh1YnBfcmVxdWVzdG9yX2lkLAogCQllbnVtIGR5bmFtaWNfbWV0YWRhdGFfbW9kZSBkbWRhdGFfbW9kZSkKQEAgLTQ2Myw3ICs0NjAsNyBAQCB2b2lkIGVuYzJfc3RyZWFtX2VuY29kZXJfZHBfdW5ibGFuaygKIAkJdWludDY0X3QgbV92aWRfbCA9IG5fdmlkOwogCiAJCS8qIFlDYkNyIDQ6MjowIDogQ29tcHV0ZWQgVklEX00gd2lsbCBiZSAyWCB0aGUgaW5wdXQgcmF0ZSAqLwotCQlpZiAoaXNfdHdvX3BpeGVsc19wZXJfY29udGFpbnRlcigmcGFyYW0tPnRpbWluZykgfHwgcGFyYW0tPm9kbSkgeworCQlpZiAoaXNfdHdvX3BpeGVsc19wZXJfY29udGFpbnRlcigmcGFyYW0tPnRpbWluZykgfHwgcGFyYW0tPm9wcF9jbnQgPiAxKSB7CiAJCQkvKnRoaXMgbG9naWMgc2hvdWxkIGJlIHRoZSBzYW1lIGluIGdldF9waXhlbF9jbG9ja19wYXJhbWV0ZXJzKCkgKi8KIAkJCW5fbXVsdGlwbHkgPSAxOwogCQl9CkBAIC01ODAsMTQgKzU3NywxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN0cmVhbV9lbmNvZGVyX2Z1bmNzIGRjbjIwX3N0cl9lbmNfZnVuY3MgPSB7CiAJLnNldHVwX3N0ZXJlb19zeW5jICA9IGVuYzFfc2V0dXBfc3RlcmVvX3N5bmMsCiAJLnNldF9hdm11dGUgPSBlbmMxX3N0cmVhbV9lbmNvZGVyX3NldF9hdm11dGUsCiAJLmRpZ19jb25uZWN0X3RvX290ZyAgPSBlbmMxX2RpZ19jb25uZWN0X3RvX290ZywKKwkuZGlnX3NvdXJjZV9vdGcgPSBlbmMxX2RpZ19zb3VyY2Vfb3RnLAogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCiAJLmVuY19yZWFkX3N0YXRlID0gZW5jMl9yZWFkX3N0YXRlLAotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAogCS5kcF9zZXRfZHNjX2NvbmZpZyA9IGVuYzJfZHBfc2V0X2RzY19jb25maWcsCisJLmRwX3NldF9kc2NfcHBzX2luZm9fcGFja2V0ID0gZW5jMl9kcF9zZXRfZHNjX3Bwc19pbmZvX3BhY2tldCwKICNlbmRpZgogCS5zZXRfZHluYW1pY19tZXRhZGF0YSA9IGVuYzJfc2V0X2R5bmFtaWNfbWV0YWRhdGEsCisJLmhkbWlfcmVzZXRfc3RyZWFtX2F0dHJpYnV0ZSA9IGVuYzFfcmVzZXRfaGRtaV9zdHJlYW1fYXR0cmlidXRlLAogfTsKIAogdm9pZCBkY24yMF9zdHJlYW1fZW5jb2Rlcl9jb25zdHJ1Y3QoCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfc3RyZWFtX2VuY29kZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9zdHJlYW1fZW5jb2Rlci5oCmluZGV4IDZkNDBlOGMuLjNmOTRhOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9zdHJlYW1fZW5jb2Rlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9zdHJlYW1fZW5jb2Rlci5oCkBAIC0xMDQsNCArMTA0LDkgQEAgdm9pZCBlbmMyX3N0cmVhbV9lbmNvZGVyX2RwX3VuYmxhbmsoCiAJc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAJY29uc3Qgc3RydWN0IGVuY29kZXJfdW5ibGFua19wYXJhbSAqcGFyYW0pOwogCit2b2lkIGVuYzJfc2V0X2R5bmFtaWNfbWV0YWRhdGEoc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCisJCWJvb2wgZW5hYmxlX2RtZSwKKwkJdWludDMyX3QgaHVicF9yZXF1ZXN0b3JfaWQsCisJCWVudW0gZHluYW1pY19tZXRhZGF0YV9tb2RlIGRtZGF0YV9tb2RlKTsKKwogI2VuZGlmIC8qIF9fRENfU1RSRUFNX0VOQ09ERVJfRENOMjBfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNkOWRlOAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9NYWtlZmlsZQpAQCAtMCwwICsxLDEwIEBACisjCisjIE1ha2VmaWxlIGZvciBEQ04yMS4KKworRENOMjEgPSBkY24yMV9odWJwLm8gZGNuMjFfaHViYnViLm8gZGNuMjFfcmVzb3VyY2UubworCitDRkxBR1NfJChBTUREQUxQQVRIKS9kYy9kY24yMS9kY24yMV9yZXNvdXJjZS5vIDo9IC1taGFyZC1mbG9hdCAtbXNzZSAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT00CisKK0FNRF9EQUxfRENOMjEgPSAkKGFkZHByZWZpeCAkKEFNRERBTFBBVEgpL2RjL2RjbjIxLywkKERDTjIxKSkKKworQU1EX0RJU1BMQVlfRklMRVMgKz0gJChBTURfREFMX0RDTjIxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2RjbjIxX2h1YmJ1Yi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2RjbjIxX2h1YmJ1Yi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjY2NzQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfaHViYnViLmMKQEAgLTAsMCArMSw1OTUgQEAKKy8qCisqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKyNpbmNsdWRlICJkbV9zZXJ2aWNlcy5oIgorI2luY2x1ZGUgImRjbjIwL2RjbjIwX2h1YmJ1Yi5oIgorI2luY2x1ZGUgImRjbjIxX2h1YmJ1Yi5oIgorI2luY2x1ZGUgInJlZ19oZWxwZXIuaCIKKworI2RlZmluZSBSRUcocmVnKVwKKwlodWJidWIxLT5yZWdzLT5yZWcKKyNkZWZpbmUgRENfTE9HR0VSIFwKKwlodWJidWIxLT5iYXNlLmN0eC0+bG9nZ2VyCisjZGVmaW5lIENUWCBcCisJaHViYnViMS0+YmFzZS5jdHgKKworI3VuZGVmIEZOCisjZGVmaW5lIEZOKHJlZ19uYW1lLCBmaWVsZF9uYW1lKSBcCisJaHViYnViMS0+c2hpZnRzLT5maWVsZF9uYW1lLCBodWJidWIxLT5tYXNrcy0+ZmllbGRfbmFtZQorCisjZGVmaW5lIFJFRyhyZWcpXAorCWh1YmJ1YjEtPnJlZ3MtPnJlZworCisjZGVmaW5lIENUWCBcCisJaHViYnViMS0+YmFzZS5jdHgKKworI3VuZGVmIEZOCisjZGVmaW5lIEZOKHJlZ19uYW1lLCBmaWVsZF9uYW1lKSBcCisJaHViYnViMS0+c2hpZnRzLT5maWVsZF9uYW1lLCBodWJidWIxLT5tYXNrcy0+ZmllbGRfbmFtZQorCisjaWZkZWYgTlVNX1ZNSUQKKyN1bmRlZiBOVU1fVk1JRAorI2VuZGlmCisjZGVmaW5lIE5VTV9WTUlEIDEKKworc3RhdGljIHVpbnQzMl90IGNvbnZlcnRfYW5kX2NsYW1wKAorCXVpbnQzMl90IHdtX25zLAorCXVpbnQzMl90IHJlZmNsa19taHosCisJdWludDMyX3QgY2xhbXBfdmFsdWUpCit7CisJdWludDMyX3QgcmV0X3ZhbCA9IDA7CisJcmV0X3ZhbCA9IHdtX25zICogcmVmY2xrX21oejsKKwlyZXRfdmFsIC89IDEwMDA7CisKKwlpZiAocmV0X3ZhbCA+IGNsYW1wX3ZhbHVlKQorCQlyZXRfdmFsID0gY2xhbXBfdmFsdWU7CisKKwlyZXR1cm4gcmV0X3ZhbDsKK30KKwordm9pZCBkY24yMV9kY2h2bV9pbml0KHN0cnVjdCBodWJidWIgKmh1YmJ1YikKK3sKKwlzdHJ1Y3QgZGNuMjBfaHViYnViICpodWJidWIxID0gVE9fRENOMjBfSFVCQlVCKGh1YmJ1Yik7CisKKwkvL0luaXQgRENIVk0gYmxvY2sKKwlSRUdfVVBEQVRFKERDSFZNX0NUUkwwLCBIT1NUVk1fSU5JVF9SRVEsIDEpOworCisJLy9Qb2xsIHVudGlsIFJJT01NVV9BQ1RJVkUgPSAxCisJLy9UT0RPOiBGaWd1cmUgb3V0IGludGVydmFsIHVzIGFuZCByZXRyeSBjb3VudAorCVJFR19XQUlUKERDSFZNX1JJT01NVV9TVEFUMCwgUklPTU1VX0FDVElWRSwgMSwgNSwgMTAwKTsKKworCS8vUmVmbGVjdCB0aGUgcG93ZXIgc3RhdHVzIG9mIERDSFVCQlVCCisJUkVHX1VQREFURShEQ0hWTV9SSU9NTVVfQ1RSTDAsIEhPU1RWTV9QT1dFUlNUQVRVUywgMSk7CisKKwkvL1N0YXJ0IHJJT01NVSBwcmVmZXRjaGluZworCVJFR19VUERBVEUoRENIVk1fUklPTU1VX0NUUkwwLCBIT1NUVk1fUFJFRkVUQ0hfUkVRLCAxKTsKKworCS8vIEVuYWJsZSBkeW5hbWljIGNsb2NrIGdhdGluZworCVJFR19VUERBVEVfNChEQ0hWTV9DTEtfQ1RSTCwKKwkJCQkJSFZNX0RJU1BDTEtfUl9HQVRFX0RJUywgMCwKKwkJCQkJSFZNX0RJU1BDTEtfR19HQVRFX0RJUywgMCwKKwkJCQkJSFZNX0RDRkNMS19SX0dBVEVfRElTLCAwLAorCQkJCQlIVk1fRENGQ0xLX0dfR0FURV9ESVMsIDApOworCisJLy9Qb2xsIHVudGlsIEhPU1RWTV9QUkVGRVRDSF9ET05FID0gMQorCS8vVE9ETzogRmlndXJlIG91dCBpbnRlcnZhbCB1cyBhbmQgcmV0cnkgY291bnQKKwlSRUdfV0FJVChEQ0hWTV9SSU9NTVVfU1RBVDAsIEhPU1RWTV9QUkVGRVRDSF9ET05FLCAxLCA1LCAxMDApOworfQorCitzdGF0aWMgaW50IGh1YmJ1YjIxX2luaXRfZGNodWIoc3RydWN0IGh1YmJ1YiAqaHViYnViLAorCQlzdHJ1Y3QgZGNuX2h1YmJ1Yl9waHlzX2FkZHJfY29uZmlnICpwYV9jb25maWcpCit7CisJc3RydWN0IGRjbjIwX2h1YmJ1YiAqaHViYnViMSA9IFRPX0RDTjIwX0hVQkJVQihodWJidWIpOworCisJUkVHX1NFVChEQ05fVk1fRkJfTE9DQVRJT05fQkFTRSwgMCwKKwkJRkJfQkFTRSwgcGFfY29uZmlnLT5zeXN0ZW1fYXBlcnR1cmUuZmJfYmFzZSk7CisJUkVHX1NFVChEQ05fVk1fRkJfTE9DQVRJT05fVE9QLCAwLAorCQkJRkJfVE9QLCBwYV9jb25maWctPnN5c3RlbV9hcGVydHVyZS5mYl90b3ApOworCVJFR19TRVQoRENOX1ZNX0ZCX09GRlNFVCwgMCwKKwkJCUZCX09GRlNFVCwgcGFfY29uZmlnLT5zeXN0ZW1fYXBlcnR1cmUuZmJfb2Zmc2V0KTsKKwlSRUdfU0VUKERDTl9WTV9BR1BfQk9ULCAwLAorCQkJQUdQX0JPVCwgcGFfY29uZmlnLT5zeXN0ZW1fYXBlcnR1cmUuYWdwX2JvdCk7CisJUkVHX1NFVChEQ05fVk1fQUdQX1RPUCwgMCwKKwkJCUFHUF9UT1AsIHBhX2NvbmZpZy0+c3lzdGVtX2FwZXJ0dXJlLmFncF90b3ApOworCVJFR19TRVQoRENOX1ZNX0FHUF9CQVNFLCAwLAorCQkJQUdQX0JBU0UsIHBhX2NvbmZpZy0+c3lzdGVtX2FwZXJ0dXJlLmFncF9iYXNlKTsKKworCWRjbjIxX2RjaHZtX2luaXQoaHViYnViKTsKKworCXJldHVybiBOVU1fVk1JRDsKK30KKworc3RhdGljIHZvaWQgaHViYnViMjFfcHJvZ3JhbV91cmdlbnRfd2F0ZXJtYXJrcygKKwkJc3RydWN0IGh1YmJ1YiAqaHViYnViLAorCQlzdHJ1Y3QgZGNuX3dhdGVybWFya19zZXQgKndhdGVybWFya3MsCisJCXVuc2lnbmVkIGludCByZWZjbGtfbWh6LAorCQlib29sIHNhZmVfdG9fbG93ZXIpCit7CisJc3RydWN0IGRjbjIwX2h1YmJ1YiAqaHViYnViMSA9IFRPX0RDTjIwX0hVQkJVQihodWJidWIpOworCXVpbnQzMl90IHByb2dfd21fdmFsdWU7CisKKwkvKiBSZXBlYXQgZm9yIHdhdGVyIG1hcmsgc2V0IEEsIEIsIEMgYW5kIEQuICovCisJLyogY2xvY2sgc3RhdGUgQSAqLworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmEudXJnZW50X25zID4gaHViYnViMS0+d2F0ZXJtYXJrcy5hLnVyZ2VudF9ucykgeworCQlodWJidWIxLT53YXRlcm1hcmtzLmEudXJnZW50X25zID0gd2F0ZXJtYXJrcy0+YS51cmdlbnRfbnM7CisJCXByb2dfd21fdmFsdWUgPSBjb252ZXJ0X2FuZF9jbGFtcCh3YXRlcm1hcmtzLT5hLnVyZ2VudF9ucywKKwkJCQlyZWZjbGtfbWh6LCAweDFmZmZmZik7CisJCVJFR19TRVRfMihEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19BLCAwLAorCQkJCURDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0EsIHByb2dfd21fdmFsdWUsCisJCQkJRENIVUJCVUJfQVJCX1ZNX1JPV19VUkdFTkNZX1dBVEVSTUFSS19BLCBwcm9nX3dtX3ZhbHVlKTsKKworCQlEQ19MT0dfQkFORFdJRFRIX0NBTENTKCJVUkdFTkNZX1dBVEVSTUFSS19BIGNhbGN1bGF0ZWQgPSVkXG4iCisJCQkiSFcgcmVnaXN0ZXIgdmFsdWUgPSAweCV4XG4iLAorCQkJd2F0ZXJtYXJrcy0+YS51cmdlbnRfbnMsIHByb2dfd21fdmFsdWUpOworCX0KKworCS8qIGRldGVybWluZSB0aGUgdHJhbnNmZXIgdGltZSBmb3IgYSBxdWFudGl0eSBvZiBkYXRhIGZvciBhIHBhcnRpY3VsYXIgcmVxdWVzdG9yLiovCisJaWYgKHNhZmVfdG9fbG93ZXIgfHwgd2F0ZXJtYXJrcy0+YS5mcmFjX3VyZ19id19mbGlwCisJCQk+IGh1YmJ1YjEtPndhdGVybWFya3MuYS5mcmFjX3VyZ19id19mbGlwKSB7CisJCWh1YmJ1YjEtPndhdGVybWFya3MuYS5mcmFjX3VyZ19id19mbGlwID0gd2F0ZXJtYXJrcy0+YS5mcmFjX3VyZ19id19mbGlwOworCisJCVJFR19TRVQoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQSwgMCwKKwkJCQlEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9BLCB3YXRlcm1hcmtzLT5hLmZyYWNfdXJnX2J3X2ZsaXApOworCX0KKworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmEuZnJhY191cmdfYndfbm9tCisJCQk+IGh1YmJ1YjEtPndhdGVybWFya3MuYS5mcmFjX3VyZ19id19ub20pIHsKKwkJaHViYnViMS0+d2F0ZXJtYXJrcy5hLmZyYWNfdXJnX2J3X25vbSA9IHdhdGVybWFya3MtPmEuZnJhY191cmdfYndfbm9tOworCisJCVJFR19TRVQoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9BLCAwLAorCQkJCURDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQSwgd2F0ZXJtYXJrcy0+YS5mcmFjX3VyZ19id19ub20pOworCX0KKworCS8qIGNsb2NrIHN0YXRlIEIgKi8KKwlpZiAoc2FmZV90b19sb3dlciB8fCB3YXRlcm1hcmtzLT5iLnVyZ2VudF9ucyA+IGh1YmJ1YjEtPndhdGVybWFya3MuYi51cmdlbnRfbnMpIHsKKwkJaHViYnViMS0+d2F0ZXJtYXJrcy5iLnVyZ2VudF9ucyA9IHdhdGVybWFya3MtPmIudXJnZW50X25zOworCQlwcm9nX3dtX3ZhbHVlID0gY29udmVydF9hbmRfY2xhbXAod2F0ZXJtYXJrcy0+Yi51cmdlbnRfbnMsCisJCQkJcmVmY2xrX21oeiwgMHgxZmZmZmYpOworCQlSRUdfU0VUXzIoRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQiwgMCwKKwkJCQlEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19CLCBwcm9nX3dtX3ZhbHVlLAorCQkJCURDSFVCQlVCX0FSQl9WTV9ST1dfVVJHRU5DWV9XQVRFUk1BUktfQiwgcHJvZ193bV92YWx1ZSk7CisKKwkJRENfTE9HX0JBTkRXSURUSF9DQUxDUygiVVJHRU5DWV9XQVRFUk1BUktfQiBjYWxjdWxhdGVkID0lZFxuIgorCQkJIkhXIHJlZ2lzdGVyIHZhbHVlID0gMHgleFxuIiwKKwkJCXdhdGVybWFya3MtPmIudXJnZW50X25zLCBwcm9nX3dtX3ZhbHVlKTsKKwl9CisKKwkvKiBkZXRlcm1pbmUgdGhlIHRyYW5zZmVyIHRpbWUgZm9yIGEgcXVhbnRpdHkgb2YgZGF0YSBmb3IgYSBwYXJ0aWN1bGFyIHJlcXVlc3Rvci4qLworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmEuZnJhY191cmdfYndfZmxpcAorCQkJPiBodWJidWIxLT53YXRlcm1hcmtzLmEuZnJhY191cmdfYndfZmxpcCkgeworCQlodWJidWIxLT53YXRlcm1hcmtzLmEuZnJhY191cmdfYndfZmxpcCA9IHdhdGVybWFya3MtPmEuZnJhY191cmdfYndfZmxpcDsKKworCQlSRUdfU0VUKERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0IsIDAsCisJCQkJRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQiwgd2F0ZXJtYXJrcy0+YS5mcmFjX3VyZ19id19mbGlwKTsKKwl9CisKKwlpZiAoc2FmZV90b19sb3dlciB8fCB3YXRlcm1hcmtzLT5hLmZyYWNfdXJnX2J3X25vbQorCQkJPiBodWJidWIxLT53YXRlcm1hcmtzLmEuZnJhY191cmdfYndfbm9tKSB7CisJCWh1YmJ1YjEtPndhdGVybWFya3MuYS5mcmFjX3VyZ19id19ub20gPSB3YXRlcm1hcmtzLT5hLmZyYWNfdXJnX2J3X25vbTsKKworCQlSRUdfU0VUKERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQiwgMCwKKwkJCQlEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0IsIHdhdGVybWFya3MtPmEuZnJhY191cmdfYndfbm9tKTsKKwl9CisKKwkvKiBjbG9jayBzdGF0ZSBDICovCisJaWYgKHNhZmVfdG9fbG93ZXIgfHwgd2F0ZXJtYXJrcy0+Yy51cmdlbnRfbnMgPiBodWJidWIxLT53YXRlcm1hcmtzLmMudXJnZW50X25zKSB7CisJCWh1YmJ1YjEtPndhdGVybWFya3MuYy51cmdlbnRfbnMgPSB3YXRlcm1hcmtzLT5jLnVyZ2VudF9uczsKKwkJcHJvZ193bV92YWx1ZSA9IGNvbnZlcnRfYW5kX2NsYW1wKHdhdGVybWFya3MtPmMudXJnZW50X25zLAorCQkJCXJlZmNsa19taHosIDB4MWZmZmZmKTsKKwkJUkVHX1NFVF8yKERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0MsIDAsCisJCQkJRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQywgcHJvZ193bV92YWx1ZSwKKwkJCQlEQ0hVQkJVQl9BUkJfVk1fUk9XX1VSR0VOQ1lfV0FURVJNQVJLX0MsIHByb2dfd21fdmFsdWUpOworCisJCURDX0xPR19CQU5EV0lEVEhfQ0FMQ1MoIlVSR0VOQ1lfV0FURVJNQVJLX0MgY2FsY3VsYXRlZCA9JWRcbiIKKwkJCSJIVyByZWdpc3RlciB2YWx1ZSA9IDB4JXhcbiIsCisJCQl3YXRlcm1hcmtzLT5jLnVyZ2VudF9ucywgcHJvZ193bV92YWx1ZSk7CisJfQorCisJLyogZGV0ZXJtaW5lIHRoZSB0cmFuc2ZlciB0aW1lIGZvciBhIHF1YW50aXR5IG9mIGRhdGEgZm9yIGEgcGFydGljdWxhciByZXF1ZXN0b3IuKi8KKwlpZiAoc2FmZV90b19sb3dlciB8fCB3YXRlcm1hcmtzLT5hLmZyYWNfdXJnX2J3X2ZsaXAKKwkJCT4gaHViYnViMS0+d2F0ZXJtYXJrcy5hLmZyYWNfdXJnX2J3X2ZsaXApIHsKKwkJaHViYnViMS0+d2F0ZXJtYXJrcy5hLmZyYWNfdXJnX2J3X2ZsaXAgPSB3YXRlcm1hcmtzLT5hLmZyYWNfdXJnX2J3X2ZsaXA7CisKKwkJUkVHX1NFVChEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9DLCAwLAorCQkJCURDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0MsIHdhdGVybWFya3MtPmEuZnJhY191cmdfYndfZmxpcCk7CisJfQorCisJaWYgKHNhZmVfdG9fbG93ZXIgfHwgd2F0ZXJtYXJrcy0+YS5mcmFjX3VyZ19id19ub20KKwkJCT4gaHViYnViMS0+d2F0ZXJtYXJrcy5hLmZyYWNfdXJnX2J3X25vbSkgeworCQlodWJidWIxLT53YXRlcm1hcmtzLmEuZnJhY191cmdfYndfbm9tID0gd2F0ZXJtYXJrcy0+YS5mcmFjX3VyZ19id19ub207CisKKwkJUkVHX1NFVChEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0MsIDAsCisJCQkJRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9DLCB3YXRlcm1hcmtzLT5hLmZyYWNfdXJnX2J3X25vbSk7CisJfQorCisJLyogY2xvY2sgc3RhdGUgRCAqLworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmQudXJnZW50X25zID4gaHViYnViMS0+d2F0ZXJtYXJrcy5kLnVyZ2VudF9ucykgeworCQlodWJidWIxLT53YXRlcm1hcmtzLmQudXJnZW50X25zID0gd2F0ZXJtYXJrcy0+ZC51cmdlbnRfbnM7CisJCXByb2dfd21fdmFsdWUgPSBjb252ZXJ0X2FuZF9jbGFtcCh3YXRlcm1hcmtzLT5kLnVyZ2VudF9ucywKKwkJCQlyZWZjbGtfbWh6LCAweDFmZmZmZik7CisJCVJFR19TRVRfMihEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19ELCAwLAorCQkJCURDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0QsIHByb2dfd21fdmFsdWUsCisJCQkJRENIVUJCVUJfQVJCX1ZNX1JPV19VUkdFTkNZX1dBVEVSTUFSS19ELCBwcm9nX3dtX3ZhbHVlKTsKKworCQlEQ19MT0dfQkFORFdJRFRIX0NBTENTKCJVUkdFTkNZX1dBVEVSTUFSS19EIGNhbGN1bGF0ZWQgPSVkXG4iCisJCQkiSFcgcmVnaXN0ZXIgdmFsdWUgPSAweCV4XG4iLAorCQkJd2F0ZXJtYXJrcy0+ZC51cmdlbnRfbnMsIHByb2dfd21fdmFsdWUpOworCX0KKworCS8qIGRldGVybWluZSB0aGUgdHJhbnNmZXIgdGltZSBmb3IgYSBxdWFudGl0eSBvZiBkYXRhIGZvciBhIHBhcnRpY3VsYXIgcmVxdWVzdG9yLiovCisJaWYgKHNhZmVfdG9fbG93ZXIgfHwgd2F0ZXJtYXJrcy0+YS5mcmFjX3VyZ19id19mbGlwCisJCQk+IGh1YmJ1YjEtPndhdGVybWFya3MuYS5mcmFjX3VyZ19id19mbGlwKSB7CisJCWh1YmJ1YjEtPndhdGVybWFya3MuYS5mcmFjX3VyZ19id19mbGlwID0gd2F0ZXJtYXJrcy0+YS5mcmFjX3VyZ19id19mbGlwOworCisJCVJFR19TRVQoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfRCwgMCwKKwkJCQlEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9ELCB3YXRlcm1hcmtzLT5hLmZyYWNfdXJnX2J3X2ZsaXApOworCX0KKworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmEuZnJhY191cmdfYndfbm9tCisJCQk+IGh1YmJ1YjEtPndhdGVybWFya3MuYS5mcmFjX3VyZ19id19ub20pIHsKKwkJaHViYnViMS0+d2F0ZXJtYXJrcy5hLmZyYWNfdXJnX2J3X25vbSA9IHdhdGVybWFya3MtPmEuZnJhY191cmdfYndfbm9tOworCisJCVJFR19TRVQoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9ELCAwLAorCQkJCURDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fRCwgd2F0ZXJtYXJrcy0+YS5mcmFjX3VyZ19id19ub20pOworCX0KK30KKworc3RhdGljIHZvaWQgaHViYnViMjFfcHJvZ3JhbV9zdHV0dGVyX3dhdGVybWFya3MoCisJCXN0cnVjdCBodWJidWIgKmh1YmJ1YiwKKwkJc3RydWN0IGRjbl93YXRlcm1hcmtfc2V0ICp3YXRlcm1hcmtzLAorCQl1bnNpZ25lZCBpbnQgcmVmY2xrX21oeiwKKwkJYm9vbCBzYWZlX3RvX2xvd2VyKQoreworCXN0cnVjdCBkY24yMF9odWJidWIgKmh1YmJ1YjEgPSBUT19EQ04yMF9IVUJCVUIoaHViYnViKTsKKwl1aW50MzJfdCBwcm9nX3dtX3ZhbHVlOworCisJLyogY2xvY2sgc3RhdGUgQSAqLworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmEuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZW50ZXJfcGx1c19leGl0X25zCisJCQk+IGh1YmJ1YjEtPndhdGVybWFya3MuYS5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnMpIHsKKwkJaHViYnViMS0+d2F0ZXJtYXJrcy5hLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2VudGVyX3BsdXNfZXhpdF9ucyA9CisJCQkJd2F0ZXJtYXJrcy0+YS5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnM7CisJCXByb2dfd21fdmFsdWUgPSBjb252ZXJ0X2FuZF9jbGFtcCgKKwkJCQl3YXRlcm1hcmtzLT5hLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2VudGVyX3BsdXNfZXhpdF9ucywKKwkJCQlyZWZjbGtfbWh6LCAweDFmZmZmZik7CisJCVJFR19TRVRfMihEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0EsIDAsCisJCQkJRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19BLCBwcm9nX3dtX3ZhbHVlLAorCQkJCURDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0EsIHByb2dfd21fdmFsdWUpOworCQlEQ19MT0dfQkFORFdJRFRIX0NBTENTKCJTUl9FTlRFUl9FWElUX1dBVEVSTUFSS19BIGNhbGN1bGF0ZWQgPSVkXG4iCisJCQkiSFcgcmVnaXN0ZXIgdmFsdWUgPSAweCV4XG4iLAorCQkJd2F0ZXJtYXJrcy0+YS5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnMsIHByb2dfd21fdmFsdWUpOworCX0KKworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmEuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9ucworCQkJPiBodWJidWIxLT53YXRlcm1hcmtzLmEuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9ucykgeworCQlodWJidWIxLT53YXRlcm1hcmtzLmEuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9ucyA9CisJCQkJd2F0ZXJtYXJrcy0+YS5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9leGl0X25zOworCQlwcm9nX3dtX3ZhbHVlID0gY29udmVydF9hbmRfY2xhbXAoCisJCQkJd2F0ZXJtYXJrcy0+YS5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9leGl0X25zLAorCQkJCXJlZmNsa19taHosIDB4MWZmZmZmKTsKKwkJUkVHX1NFVF8yKERDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19BLCAwLAorCQkJCURDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19BLCBwcm9nX3dtX3ZhbHVlLAorCQkJCURDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQSwgcHJvZ193bV92YWx1ZSk7CisJCURDX0xPR19CQU5EV0lEVEhfQ0FMQ1MoIlNSX0VYSVRfV0FURVJNQVJLX0EgY2FsY3VsYXRlZCA9JWRcbiIKKwkJCSJIVyByZWdpc3RlciB2YWx1ZSA9IDB4JXhcbiIsCisJCQl3YXRlcm1hcmtzLT5hLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2V4aXRfbnMsIHByb2dfd21fdmFsdWUpOworCX0KKworCS8qIGNsb2NrIHN0YXRlIEIgKi8KKwlpZiAoc2FmZV90b19sb3dlciB8fCB3YXRlcm1hcmtzLT5iLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2VudGVyX3BsdXNfZXhpdF9ucworCQkJPiBodWJidWIxLT53YXRlcm1hcmtzLmIuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZW50ZXJfcGx1c19leGl0X25zKSB7CisJCWh1YmJ1YjEtPndhdGVybWFya3MuYi5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnMgPQorCQkJCXdhdGVybWFya3MtPmIuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZW50ZXJfcGx1c19leGl0X25zOworCQlwcm9nX3dtX3ZhbHVlID0gY29udmVydF9hbmRfY2xhbXAoCisJCQkJd2F0ZXJtYXJrcy0+Yi5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnMsCisJCQkJcmVmY2xrX21oeiwgMHgxZmZmZmYpOworCQlSRUdfU0VUXzIoRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19CLCAwLAorCQkJCURDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQiwgcHJvZ193bV92YWx1ZSwKKwkJCQlEQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19CLCBwcm9nX3dtX3ZhbHVlKTsKKwkJRENfTE9HX0JBTkRXSURUSF9DQUxDUygiU1JfRU5URVJfRVhJVF9XQVRFUk1BUktfQiBjYWxjdWxhdGVkID0lZFxuIgorCQkJIkhXIHJlZ2lzdGVyIHZhbHVlID0gMHgleFxuIiwKKwkJCXdhdGVybWFya3MtPmIuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZW50ZXJfcGx1c19leGl0X25zLCBwcm9nX3dtX3ZhbHVlKTsKKwl9CisKKwlpZiAoc2FmZV90b19sb3dlciB8fCB3YXRlcm1hcmtzLT5iLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2V4aXRfbnMKKwkJCT4gaHViYnViMS0+d2F0ZXJtYXJrcy5iLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2V4aXRfbnMpIHsKKwkJaHViYnViMS0+d2F0ZXJtYXJrcy5iLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2V4aXRfbnMgPQorCQkJCXdhdGVybWFya3MtPmIuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9uczsKKwkJcHJvZ193bV92YWx1ZSA9IGNvbnZlcnRfYW5kX2NsYW1wKAorCQkJCXdhdGVybWFya3MtPmIuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9ucywKKwkJCQlyZWZjbGtfbWh6LCAweDFmZmZmZik7CisJCVJFR19TRVRfMihEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQiwgMCwKKwkJCQlEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQiwgcHJvZ193bV92YWx1ZSwKKwkJCQlEQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0EsIHByb2dfd21fdmFsdWUpOworCQlEQ19MT0dfQkFORFdJRFRIX0NBTENTKCJTUl9FWElUX1dBVEVSTUFSS19CIGNhbGN1bGF0ZWQgPSVkXG4iCisJCQkiSFcgcmVnaXN0ZXIgdmFsdWUgPSAweCV4XG4iLAorCQkJd2F0ZXJtYXJrcy0+Yi5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9leGl0X25zLCBwcm9nX3dtX3ZhbHVlKTsKKwl9CisKKwkvKiBjbG9jayBzdGF0ZSBDICovCisJaWYgKHNhZmVfdG9fbG93ZXIgfHwgd2F0ZXJtYXJrcy0+Yy5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnMKKwkJCT4gaHViYnViMS0+d2F0ZXJtYXJrcy5jLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2VudGVyX3BsdXNfZXhpdF9ucykgeworCQlodWJidWIxLT53YXRlcm1hcmtzLmMuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZW50ZXJfcGx1c19leGl0X25zID0KKwkJCQl3YXRlcm1hcmtzLT5jLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2VudGVyX3BsdXNfZXhpdF9uczsKKwkJcHJvZ193bV92YWx1ZSA9IGNvbnZlcnRfYW5kX2NsYW1wKAorCQkJCXdhdGVybWFya3MtPmMuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZW50ZXJfcGx1c19leGl0X25zLAorCQkJCXJlZmNsa19taHosIDB4MWZmZmZmKTsKKwkJUkVHX1NFVF8yKERDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQywgMCwKKwkJCQlEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0MsIHByb2dfd21fdmFsdWUsCisJCQkJRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQywgcHJvZ193bV92YWx1ZSk7CisJCURDX0xPR19CQU5EV0lEVEhfQ0FMQ1MoIlNSX0VOVEVSX0VYSVRfV0FURVJNQVJLX0MgY2FsY3VsYXRlZCA9JWRcbiIKKwkJCSJIVyByZWdpc3RlciB2YWx1ZSA9IDB4JXhcbiIsCisJCQl3YXRlcm1hcmtzLT5jLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2VudGVyX3BsdXNfZXhpdF9ucywgcHJvZ193bV92YWx1ZSk7CisJfQorCisJaWYgKHNhZmVfdG9fbG93ZXIgfHwgd2F0ZXJtYXJrcy0+Yy5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9leGl0X25zCisJCQk+IGh1YmJ1YjEtPndhdGVybWFya3MuYy5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9leGl0X25zKSB7CisJCWh1YmJ1YjEtPndhdGVybWFya3MuYy5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9leGl0X25zID0KKwkJCQl3YXRlcm1hcmtzLT5jLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2V4aXRfbnM7CisJCXByb2dfd21fdmFsdWUgPSBjb252ZXJ0X2FuZF9jbGFtcCgKKwkJCQl3YXRlcm1hcmtzLT5jLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2V4aXRfbnMsCisJCQkJcmVmY2xrX21oeiwgMHgxZmZmZmYpOworCQlSRUdfU0VUXzIoRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0MsIDAsCisJCQkJRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0MsIHByb2dfd21fdmFsdWUsCisJCQkJRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FWElUX1dBVEVSTUFSS19BLCBwcm9nX3dtX3ZhbHVlKTsKKwkJRENfTE9HX0JBTkRXSURUSF9DQUxDUygiU1JfRVhJVF9XQVRFUk1BUktfQyBjYWxjdWxhdGVkID0lZFxuIgorCQkJIkhXIHJlZ2lzdGVyIHZhbHVlID0gMHgleFxuIiwKKwkJCXdhdGVybWFya3MtPmMuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9ucywgcHJvZ193bV92YWx1ZSk7CisJfQorCisJLyogY2xvY2sgc3RhdGUgRCAqLworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmQuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZW50ZXJfcGx1c19leGl0X25zCisJCQk+IGh1YmJ1YjEtPndhdGVybWFya3MuZC5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnMpIHsKKwkJaHViYnViMS0+d2F0ZXJtYXJrcy5kLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2VudGVyX3BsdXNfZXhpdF9ucyA9CisJCQkJd2F0ZXJtYXJrcy0+ZC5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnM7CisJCXByb2dfd21fdmFsdWUgPSBjb252ZXJ0X2FuZF9jbGFtcCgKKwkJCQl3YXRlcm1hcmtzLT5kLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2VudGVyX3BsdXNfZXhpdF9ucywKKwkJCQlyZWZjbGtfbWh6LCAweDFmZmZmZik7CisJCVJFR19TRVRfMihEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0QsIDAsCisJCQkJRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19ELCBwcm9nX3dtX3ZhbHVlLAorCQkJCURDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0QsIHByb2dfd21fdmFsdWUpOworCQlEQ19MT0dfQkFORFdJRFRIX0NBTENTKCJTUl9FTlRFUl9FWElUX1dBVEVSTUFSS19EIGNhbGN1bGF0ZWQgPSVkXG4iCisJCQkiSFcgcmVnaXN0ZXIgdmFsdWUgPSAweCV4XG4iLAorCQkJd2F0ZXJtYXJrcy0+ZC5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnMsIHByb2dfd21fdmFsdWUpOworCX0KKworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmQuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9ucworCQkJPiBodWJidWIxLT53YXRlcm1hcmtzLmQuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9ucykgeworCQlodWJidWIxLT53YXRlcm1hcmtzLmQuY3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9ucyA9CisJCQkJd2F0ZXJtYXJrcy0+ZC5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9leGl0X25zOworCQlwcm9nX3dtX3ZhbHVlID0gY29udmVydF9hbmRfY2xhbXAoCisJCQkJd2F0ZXJtYXJrcy0+ZC5jc3RhdGVfcHN0YXRlLmNzdGF0ZV9leGl0X25zLAorCQkJCXJlZmNsa19taHosIDB4MWZmZmZmKTsKKwkJUkVHX1NFVF8yKERDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19ELCAwLAorCQkJCURDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19ELCBwcm9nX3dtX3ZhbHVlLAorCQkJCURDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQSwgcHJvZ193bV92YWx1ZSk7CisJCURDX0xPR19CQU5EV0lEVEhfQ0FMQ1MoIlNSX0VYSVRfV0FURVJNQVJLX0QgY2FsY3VsYXRlZCA9JWRcbiIKKwkJCSJIVyByZWdpc3RlciB2YWx1ZSA9IDB4JXhcbiIsCisJCQl3YXRlcm1hcmtzLT5kLmNzdGF0ZV9wc3RhdGUuY3N0YXRlX2V4aXRfbnMsIHByb2dfd21fdmFsdWUpOworCX0KK30KKworc3RhdGljIHZvaWQgaHViYnViMjFfcHJvZ3JhbV9wc3RhdGVfd2F0ZXJtYXJrcygKKwkJc3RydWN0IGh1YmJ1YiAqaHViYnViLAorCQlzdHJ1Y3QgZGNuX3dhdGVybWFya19zZXQgKndhdGVybWFya3MsCisJCXVuc2lnbmVkIGludCByZWZjbGtfbWh6LAorCQlib29sIHNhZmVfdG9fbG93ZXIpCit7CisJc3RydWN0IGRjbjIwX2h1YmJ1YiAqaHViYnViMSA9IFRPX0RDTjIwX0hVQkJVQihodWJidWIpOworCXVpbnQzMl90IHByb2dfd21fdmFsdWU7CisKKwkvKiBjbG9jayBzdGF0ZSBBICovCisJaWYgKHNhZmVfdG9fbG93ZXIgfHwgd2F0ZXJtYXJrcy0+YS5jc3RhdGVfcHN0YXRlLnBzdGF0ZV9jaGFuZ2VfbnMKKwkJCT4gaHViYnViMS0+d2F0ZXJtYXJrcy5hLmNzdGF0ZV9wc3RhdGUucHN0YXRlX2NoYW5nZV9ucykgeworCQlodWJidWIxLT53YXRlcm1hcmtzLmEuY3N0YXRlX3BzdGF0ZS5wc3RhdGVfY2hhbmdlX25zID0KKwkJCQl3YXRlcm1hcmtzLT5hLmNzdGF0ZV9wc3RhdGUucHN0YXRlX2NoYW5nZV9uczsKKwkJcHJvZ193bV92YWx1ZSA9IGNvbnZlcnRfYW5kX2NsYW1wKAorCQkJCXdhdGVybWFya3MtPmEuY3N0YXRlX3BzdGF0ZS5wc3RhdGVfY2hhbmdlX25zLAorCQkJCXJlZmNsa19taHosIDB4MWZmZmZmKTsKKwkJUkVHX1NFVF8yKERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0EsIDAsCisJCQkJRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQSwgcHJvZ193bV92YWx1ZSwKKwkJCQlEQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQSwgcHJvZ193bV92YWx1ZSk7CisJCURDX0xPR19CQU5EV0lEVEhfQ0FMQ1MoIkRSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQSBjYWxjdWxhdGVkID0lZFxuIgorCQkJIkhXIHJlZ2lzdGVyIHZhbHVlID0gMHgleFxuXG4iLAorCQkJd2F0ZXJtYXJrcy0+YS5jc3RhdGVfcHN0YXRlLnBzdGF0ZV9jaGFuZ2VfbnMsIHByb2dfd21fdmFsdWUpOworCX0KKworCS8qIGNsb2NrIHN0YXRlIEIgKi8KKwlpZiAoc2FmZV90b19sb3dlciB8fCB3YXRlcm1hcmtzLT5iLmNzdGF0ZV9wc3RhdGUucHN0YXRlX2NoYW5nZV9ucworCQkJPiBodWJidWIxLT53YXRlcm1hcmtzLmIuY3N0YXRlX3BzdGF0ZS5wc3RhdGVfY2hhbmdlX25zKSB7CisJCWh1YmJ1YjEtPndhdGVybWFya3MuYi5jc3RhdGVfcHN0YXRlLnBzdGF0ZV9jaGFuZ2VfbnMgPQorCQkJCXdhdGVybWFya3MtPmIuY3N0YXRlX3BzdGF0ZS5wc3RhdGVfY2hhbmdlX25zOworCQlwcm9nX3dtX3ZhbHVlID0gY29udmVydF9hbmRfY2xhbXAoCisJCQkJd2F0ZXJtYXJrcy0+Yi5jc3RhdGVfcHN0YXRlLnBzdGF0ZV9jaGFuZ2VfbnMsCisJCQkJcmVmY2xrX21oeiwgMHgxZmZmZmYpOworCQlSRUdfU0VUXzIoRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQiwgMCwKKwkJCQlEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19CLCBwcm9nX3dtX3ZhbHVlLAorCQkJCURDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19CLCBwcm9nX3dtX3ZhbHVlKTsKKwkJRENfTE9HX0JBTkRXSURUSF9DQUxDUygiRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19CIGNhbGN1bGF0ZWQgPSVkXG4iCisJCQkiSFcgcmVnaXN0ZXIgdmFsdWUgPSAweCV4XG5cbiIsCisJCQl3YXRlcm1hcmtzLT5iLmNzdGF0ZV9wc3RhdGUucHN0YXRlX2NoYW5nZV9ucywgcHJvZ193bV92YWx1ZSk7CisJfQorCisJLyogY2xvY2sgc3RhdGUgQyAqLworCWlmIChzYWZlX3RvX2xvd2VyIHx8IHdhdGVybWFya3MtPmMuY3N0YXRlX3BzdGF0ZS5wc3RhdGVfY2hhbmdlX25zCisJCQk+IGh1YmJ1YjEtPndhdGVybWFya3MuYy5jc3RhdGVfcHN0YXRlLnBzdGF0ZV9jaGFuZ2VfbnMpIHsKKwkJaHViYnViMS0+d2F0ZXJtYXJrcy5jLmNzdGF0ZV9wc3RhdGUucHN0YXRlX2NoYW5nZV9ucyA9CisJCQkJd2F0ZXJtYXJrcy0+Yy5jc3RhdGVfcHN0YXRlLnBzdGF0ZV9jaGFuZ2VfbnM7CisJCXByb2dfd21fdmFsdWUgPSBjb252ZXJ0X2FuZF9jbGFtcCgKKwkJCQl3YXRlcm1hcmtzLT5jLmNzdGF0ZV9wc3RhdGUucHN0YXRlX2NoYW5nZV9ucywKKwkJCQlyZWZjbGtfbWh6LCAweDFmZmZmZik7CisJCVJFR19TRVRfMihEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19DLCAwLAorCQkJCURDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0MsIHByb2dfd21fdmFsdWUsCisJCQkJRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0MsIHByb2dfd21fdmFsdWUpOworCQlEQ19MT0dfQkFORFdJRFRIX0NBTENTKCJEUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0MgY2FsY3VsYXRlZCA9JWRcbiIKKwkJCSJIVyByZWdpc3RlciB2YWx1ZSA9IDB4JXhcblxuIiwKKwkJCXdhdGVybWFya3MtPmMuY3N0YXRlX3BzdGF0ZS5wc3RhdGVfY2hhbmdlX25zLCBwcm9nX3dtX3ZhbHVlKTsKKwl9CisKKwkvKiBjbG9jayBzdGF0ZSBEICovCisJaWYgKHNhZmVfdG9fbG93ZXIgfHwgd2F0ZXJtYXJrcy0+ZC5jc3RhdGVfcHN0YXRlLnBzdGF0ZV9jaGFuZ2VfbnMKKwkJCT4gaHViYnViMS0+d2F0ZXJtYXJrcy5kLmNzdGF0ZV9wc3RhdGUucHN0YXRlX2NoYW5nZV9ucykgeworCQlodWJidWIxLT53YXRlcm1hcmtzLmQuY3N0YXRlX3BzdGF0ZS5wc3RhdGVfY2hhbmdlX25zID0KKwkJCQl3YXRlcm1hcmtzLT5kLmNzdGF0ZV9wc3RhdGUucHN0YXRlX2NoYW5nZV9uczsKKwkJcHJvZ193bV92YWx1ZSA9IGNvbnZlcnRfYW5kX2NsYW1wKAorCQkJCXdhdGVybWFya3MtPmQuY3N0YXRlX3BzdGF0ZS5wc3RhdGVfY2hhbmdlX25zLAorCQkJCXJlZmNsa19taHosIDB4MWZmZmZmKTsKKwkJUkVHX1NFVF8yKERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0QsIDAsCisJCQkJRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfRCwgcHJvZ193bV92YWx1ZSwKKwkJCQlEQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfRCwgcHJvZ193bV92YWx1ZSk7CisJCURDX0xPR19CQU5EV0lEVEhfQ0FMQ1MoIkRSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfRCBjYWxjdWxhdGVkID0lZFxuIgorCQkJIkhXIHJlZ2lzdGVyIHZhbHVlID0gMHgleFxuXG4iLAorCQkJd2F0ZXJtYXJrcy0+ZC5jc3RhdGVfcHN0YXRlLnBzdGF0ZV9jaGFuZ2VfbnMsIHByb2dfd21fdmFsdWUpOworCX0KK30KKwordm9pZCBodWJidWIyMV9wcm9ncmFtX3dhdGVybWFya3MoCisJCXN0cnVjdCBodWJidWIgKmh1YmJ1YiwKKwkJc3RydWN0IGRjbl93YXRlcm1hcmtfc2V0ICp3YXRlcm1hcmtzLAorCQl1bnNpZ25lZCBpbnQgcmVmY2xrX21oeiwKKwkJYm9vbCBzYWZlX3RvX2xvd2VyKQoreworCXN0cnVjdCBkY24yMF9odWJidWIgKmh1YmJ1YjEgPSBUT19EQ04yMF9IVUJCVUIoaHViYnViKTsKKworCWh1YmJ1YjIxX3Byb2dyYW1fdXJnZW50X3dhdGVybWFya3MoaHViYnViLCB3YXRlcm1hcmtzLCByZWZjbGtfbWh6LCBzYWZlX3RvX2xvd2VyKTsKKwlodWJidWIyMV9wcm9ncmFtX3N0dXR0ZXJfd2F0ZXJtYXJrcyhodWJidWIsIHdhdGVybWFya3MsIHJlZmNsa19taHosIHNhZmVfdG9fbG93ZXIpOworCWh1YmJ1YjIxX3Byb2dyYW1fcHN0YXRlX3dhdGVybWFya3MoaHViYnViLCB3YXRlcm1hcmtzLCByZWZjbGtfbWh6LCBzYWZlX3RvX2xvd2VyKTsKKworCS8qCisJICogVGhlIERDSHViIGFyYml0ZXIgaGFzIGEgbWVjaGFuaXNtIHRvIGR5bmFtaWNhbGx5IHJhdGUgbGltaXQgdGhlIERDSHViIHJlcXVlc3Qgc3RyZWFtIHRvIHRoZSBmYWJyaWMuCisJICogSWYgdGhlIG1lbW9yeSBjb250cm9sbGVyIGlzIGZ1bGx5IHV0aWxpemVkIGFuZCB0aGUgRENIdWIgcmVxdWVzdG9ycyBhcmUKKwkgKiB3ZWxsIGFoZWFkIG9mIHRoZWlyIGFtb3J0aXplZCBzY2hlZHVsZSwgdGhlbiBpdCBpcyBzYWZlIHRvIHByZXZlbnQgdGhlIG5leHQgd2lubmVyCisJICogZnJvbSBiZWluZyBjb21taXR0ZWQgYW5kIHNlbnQgdG8gdGhlIGZhYnJpYy4KKwkgKiBUaGUgdXRpbGl6YXRpb24gb2YgdGhlIG1lbW9yeSBjb250cm9sbGVyIGlzIGFwcHJveGltYXRlZCBieSBlbnN1cmluZyB0aGF0CisJICogdGhlIG51bWJlciBvZiBvdXRzdGFuZGluZyByZXF1ZXN0cyBpcyBncmVhdGVyIHRoYW4gYSB0aHJlc2hvbGQgc3BlY2lmaWVkCisJICogYnkgdGhlIEFSQl9NSU5fUkVRX09VVFNUQU5ESU5HLiBUbyBkZXRlcm1pbmUgdGhhdCB0aGUgRENIdWIgcmVxdWVzdG9ycyBhcmUgd2VsbCBhaGVhZCBvZiB0aGUgYW1vcnRpemVkIHNjaGVkdWxlLAorCSAqIHRoZSBzbGFjayBvZiB0aGUgbmV4dCB3aW5uZXIgaXMgY29tcGFyZWQgd2l0aCB0aGUgQVJCX1NBVF9MRVZFTCBpbiBETEcgUmVmQ2xrIGN5Y2xlcy4KKwkgKgorCSAqIFRPRE86IFJldmlzaXQgcmVxdWVzdCBsaW1pdCBhZnRlciBmaWd1cmUgb3V0IHJpZ2h0IG51bWJlci4gcmVxdWVzdCBsaW1pdCBmb3IgUmVub2lyIGlzbid0IGRlY2lkZWQgeWV0LCBzZXQgbWF4aW11bSB2YWx1ZSAoMHgxRkYpCisJICogdG8gdHVybiBvZmYgaXQgZm9yIG5vdy4KKwkgKi8KKwlSRUdfU0VUKERDSFVCQlVCX0FSQl9TQVRfTEVWRUwsIDAsCisJCQlEQ0hVQkJVQl9BUkJfU0FUX0xFVkVMLCA2MCAqIHJlZmNsa19taHopOworCVJFR19VUERBVEVfMihEQ0hVQkJVQl9BUkJfREZfUkVRX09VVFNUQU5ELAorCQkJRENIVUJCVUJfQVJCX01JTl9SRVFfT1VUU1RBTkQsIDB4MUZGLAorCQkJRENIVUJCVUJfQVJCX01JTl9SRVFfT1VUU1RBTkRfQ09NTUlUX1RIUkVTSE9MRCwgMHhBKTsKKwlSRUdfVVBEQVRFKERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTCwKKwkJCURDSFVCQlVCX0FSQl9NQVhfUU9TX0NPTU1JVF9USFJFU0hPTEQsIDB4Rik7CisKKwlodWJidWIxX2FsbG93X3NlbGZfcmVmcmVzaF9jb250cm9sKGh1YmJ1YiwgIWh1YmJ1Yi0+Y3R4LT5kYy0+ZGVidWcuZGlzYWJsZV9zdHV0dGVyKTsKK30KKwordm9pZCBodWJidWIyMV93bV9yZWFkX3N0YXRlKHN0cnVjdCBodWJidWIgKmh1YmJ1YiwKKwkJc3RydWN0IGRjbl9odWJidWJfd20gKndtKQoreworCXN0cnVjdCBkY24yMF9odWJidWIgKmh1YmJ1YjEgPSBUT19EQ04yMF9IVUJCVUIoaHViYnViKTsKKwlzdHJ1Y3QgZGNuX2h1YmJ1Yl93bV9zZXQgKnM7CisKKwltZW1zZXQod20sIDAsIHNpemVvZihzdHJ1Y3QgZGNuX2h1YmJ1Yl93bSkpOworCisJcyA9ICZ3bS0+c2V0c1swXTsKKwlzLT53bV9zZXQgPSAwOworCVJFR19HRVQoRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQSwKKwkJCURDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0EsICZzLT5kYXRhX3VyZ2VudCk7CisKKwlSRUdfR0VUKERDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQSwKKwkJCURDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQSwgJnMtPnNyX2VudGVyKTsKKworCVJFR19HRVQoRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0EsCisJCQlEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQSwgJnMtPnNyX2V4aXQpOworCisJUkVHX0dFVChEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19BLAorCQkJIERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0EsICZzLT5kcmFtX2Nsa19jaGFuYWdlKTsKKworCXMgPSAmd20tPnNldHNbMV07CisJcy0+d21fc2V0ID0gMTsKKwlSRUdfR0VUKERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0IsCisJCQlEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19CLCAmcy0+ZGF0YV91cmdlbnQpOworCisJUkVHX0dFVChEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0IsCisJCQlEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0IsICZzLT5zcl9lbnRlcik7CisKKwlSRUdfR0VUKERDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19CLAorCQkJRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0IsICZzLT5zcl9leGl0KTsKKworCVJFR19HRVQoRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQiwKKwkJCURDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0IsICZzLT5kcmFtX2Nsa19jaGFuYWdlKTsKKworCXMgPSAmd20tPnNldHNbMl07CisJcy0+d21fc2V0ID0gMjsKKwlSRUdfR0VUKERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0MsCisJCQlEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19DLCAmcy0+ZGF0YV91cmdlbnQpOworCisJUkVHX0dFVChEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0MsCisJCQlEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0MsICZzLT5zcl9lbnRlcik7CisKKwlSRUdfR0VUKERDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19DLAorCQkJRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0MsICZzLT5zcl9leGl0KTsKKworCVJFR19HRVQoRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQywKKwkJCURDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0MsICZzLT5kcmFtX2Nsa19jaGFuYWdlKTsKKworCXMgPSAmd20tPnNldHNbM107CisJcy0+d21fc2V0ID0gMzsKKwlSRUdfR0VUKERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0QsCisJCQlEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19ELCAmcy0+ZGF0YV91cmdlbnQpOworCisJUkVHX0dFVChEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0QsCisJCQlEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0QsICZzLT5zcl9lbnRlcik7CisKKwlSRUdfR0VUKERDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19ELAorCQkJRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0QsICZzLT5zcl9leGl0KTsKKworCVJFR19HRVQoRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfRCwKKwkJCURDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0QsICZzLT5kcmFtX2Nsa19jaGFuYWdlKTsKK30KKworCitzdGF0aWMgY29uc3Qgc3RydWN0IGh1YmJ1Yl9mdW5jcyBodWJidWIyMV9mdW5jcyA9IHsKKwkudXBkYXRlX2RjaHViID0gaHViYnViMl91cGRhdGVfZGNodWIsCisJLmluaXRfZGNodWJfc3lzX2N0eCA9IGh1YmJ1YjIxX2luaXRfZGNodWIsCisJLmluaXRfdm1fY3R4ID0gTlVMTCwKKwkuZGNjX3N1cHBvcnRfc3dpenpsZSA9IGh1YmJ1YjJfZGNjX3N1cHBvcnRfc3dpenpsZSwKKwkuZGNjX3N1cHBvcnRfcGl4ZWxfZm9ybWF0ID0gaHViYnViMl9kY2Nfc3VwcG9ydF9waXhlbF9mb3JtYXQsCisJLmdldF9kY2NfY29tcHJlc3Npb25fY2FwID0gaHViYnViMl9nZXRfZGNjX2NvbXByZXNzaW9uX2NhcCwKKwkud21fcmVhZF9zdGF0ZSA9IGh1YmJ1YjIxX3dtX3JlYWRfc3RhdGUsCisJLmdldF9kY2h1Yl9yZWZfZnJlcSA9IGh1YmJ1YjJfZ2V0X2RjaHViX3JlZl9mcmVxLAorCS5wcm9ncmFtX3dhdGVybWFya3MgPSBodWJidWIyMV9wcm9ncmFtX3dhdGVybWFya3MsCit9OworCit2b2lkIGh1YmJ1YjIxX2NvbnN0cnVjdChzdHJ1Y3QgZGNuMjBfaHViYnViICpodWJidWIsCisJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwljb25zdCBzdHJ1Y3QgZGNuX2h1YmJ1Yl9yZWdpc3RlcnMgKmh1YmJ1Yl9yZWdzLAorCWNvbnN0IHN0cnVjdCBkY25faHViYnViX3NoaWZ0ICpodWJidWJfc2hpZnQsCisJY29uc3Qgc3RydWN0IGRjbl9odWJidWJfbWFzayAqaHViYnViX21hc2spCit7CisJaHViYnViLT5iYXNlLmN0eCA9IGN0eDsKKworCWh1YmJ1Yi0+YmFzZS5mdW5jcyA9ICZodWJidWIyMV9mdW5jczsKKworCWh1YmJ1Yi0+cmVncyA9IGh1YmJ1Yl9yZWdzOworCWh1YmJ1Yi0+c2hpZnRzID0gaHViYnViX3NoaWZ0OworCWh1YmJ1Yi0+bWFza3MgPSBodWJidWJfbWFzazsKKworCWh1YmJ1Yi0+ZGVidWdfdGVzdF9pbmRleF9wc3RhdGUgPSAweEI7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfaHViYnViLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfaHViYnViLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZmM2NkYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9odWJidWIuaApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyogQ29weXJpZ2h0IDIwMTggQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6IEFNRAorICoKKyAqLworI2lmbmRlZiBEQUxfRENfRENOMjFfRENOMjFfSFVCQlVCX0hfCisjZGVmaW5lIERBTF9EQ19EQ04yMV9EQ04yMV9IVUJCVUJfSF8KKworI2luY2x1ZGUgImRjbjIwL2RjbjIwX2h1YmJ1Yi5oIgorCisjZGVmaW5lIEhVQkJVQl9IVk1fUkVHX0xJU1QoKSBcCisJU1IoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9BKSxcCisJU1IoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9CKSxcCisJU1IoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9DKSxcCisJU1IoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9EKSxcCisJU1IoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQSksXAorCVNSKERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0IpLFwKKwlTUihEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9DKSxcCisJU1IoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfRCksXAorCVNSKERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTCksIFwKKwlTUihEQ0hWTV9DVFJMMCksIFwKKwlTUihEQ0hWTV9NRU1fQ1RSTCksIFwKKwlTUihEQ0hWTV9DTEtfQ1RSTCksIFwKKwlTUihEQ0hWTV9SSU9NTVVfQ1RSTDApLCBcCisJU1IoRENIVk1fUklPTU1VX1NUQVQwKQorCisjZGVmaW5lIEhVQkJVQl9SRUdfTElTVF9EQ04yMSgpXAorCUhVQkJVQl9SRUdfTElTVF9EQ05fQ09NTU9OKCksIFwKKwlIVUJCVUJfU1JfV0FURVJNQVJLX1JFR19MSVNUKCksIFwKKwlIVUJCVUJfSFZNX1JFR19MSVNUKCksIFwKKwlTUihEQ0hVQkJVQl9DUkNfQ1RSTCksIFwKKwlTUihEQ05fVk1fRkJfTE9DQVRJT05fQkFTRSksXAorCVNSKERDTl9WTV9GQl9MT0NBVElPTl9UT1ApLFwKKwlTUihEQ05fVk1fRkJfT0ZGU0VUKSxcCisJU1IoRENOX1ZNX0FHUF9CT1QpLFwKKwlTUihEQ05fVk1fQUdQX1RPUCksXAorCVNSKERDTl9WTV9BR1BfQkFTRSkKKworI2RlZmluZSBIVUJCVUJfTUFTS19TSF9MSVNUX0hWTShtYXNrX3NoKSBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9ERl9SRVFfT1VUU1RBTkQsIERDSFVCQlVCX0FSQl9NSU5fUkVRX09VVFNUQU5EX0NPTU1JVF9USFJFU0hPTEQsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0EsIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0EsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0IsIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0IsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0MsIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0MsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0QsIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0QsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQSwgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9BLCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0IsIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQiwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9DLCBEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0MsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fRCwgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9ELCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19BLCBEQ0hVQkJVQl9BUkJfVk1fUk9XX1VSR0VOQ1lfV0FURVJNQVJLX0EsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0IsIERDSFVCQlVCX0FSQl9WTV9ST1dfVVJHRU5DWV9XQVRFUk1BUktfQiwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQywgRENIVUJCVUJfQVJCX1ZNX1JPV19VUkdFTkNZX1dBVEVSTUFSS19DLCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19ELCBEQ0hVQkJVQl9BUkJfVk1fUk9XX1VSR0VOQ1lfV0FURVJNQVJLX0QsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQSwgRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQSwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19CLCBEQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19CLCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0MsIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0MsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfRCwgRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfRCwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0EsIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQSwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0IsIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQiwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0MsIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQywgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0QsIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfRCwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQSwgRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0EsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0IsIERDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19CLCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19DLCBEQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQywgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfRCwgRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0QsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTCwgRENIVUJCVUJfQVJCX01BWF9RT1NfQ09NTUlUX1RIUkVTSE9MRCwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVk1fQ1RSTDAsIEhPU1RWTV9JTklUX1JFUSwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVk1fTUVNX0NUUkwsIEhWTV9HUFVWTVJFVF9QV1JfUkVRX0RJUywgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVk1fTUVNX0NUUkwsIEhWTV9HUFVWTVJFVF9GT1JDRV9SRVEsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFZNX01FTV9DVFJMLCBIVk1fR1BVVk1SRVRfUE9XRVJfU1RBVFVTLCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ0hWTV9DTEtfQ1RSTCwgSFZNX0RJU1BDTEtfUl9HQVRFX0RJUywgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENIVk1fQ0xLX0NUUkwsIEhWTV9ESVNQQ0xLX0dfR0FURV9ESVMsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFZNX0NMS19DVFJMLCBIVk1fRENGQ0xLX1JfR0FURV9ESVMsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFZNX0NMS19DVFJMLCBIVk1fRENGQ0xLX0dfR0FURV9ESVMsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFZNX0NMS19DVFJMLCBUUl9SRVFfUkVRQ0xLUkVRX01PREUsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFZNX0NMS19DVFJMLCBUV19SU1BfQ09NUENMS1JFUV9NT0RFLCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ0hWTV9SSU9NTVVfQ1RSTDAsIEhPU1RWTV9QUkVGRVRDSF9SRVEsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFZNX1JJT01NVV9DVFJMMCwgSE9TVFZNX1BPV0VSU1RBVFVTLCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ0hWTV9SSU9NTVVfU1RBVDAsIFJJT01NVV9BQ1RJVkUsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFZNX1JJT01NVV9TVEFUMCwgSE9TVFZNX1BSRUZFVENIX0RPTkUsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0EsIERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0EsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0IsIERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0IsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0MsIERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0MsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0QsIERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0QsIG1hc2tfc2gpCisKKyNkZWZpbmUgSFVCQlVCX01BU0tfU0hfTElTVF9EQ04yMShtYXNrX3NoKVwKKwlIVUJCVUJfTUFTS19TSF9MSVNUX0hWTShtYXNrX3NoKSxcCisJSFVCQlVCX01BU0tfU0hfTElTVF9EQ05fQ09NTU9OKG1hc2tfc2gpLCBcCisJSFVCQlVCX01BU0tfU0hfTElTVF9TVFVUVEVSKG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDSFVCQlVCX0dMT0JBTF9USU1FUl9DTlRMLCBEQ0hVQkJVQl9HTE9CQUxfVElNRVJfUkVGRElWLCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ05fVk1fRkJfTE9DQVRJT05fQkFTRSwgRkJfQkFTRSwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENOX1ZNX0ZCX0xPQ0FUSU9OX1RPUCwgRkJfVE9QLCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ05fVk1fRkJfT0ZGU0VULCBGQl9PRkZTRVQsIG1hc2tfc2gpLCBcCisJSFVCQlVCX1NGKERDTl9WTV9BR1BfQk9ULCBBR1BfQk9ULCBtYXNrX3NoKSwgXAorCUhVQkJVQl9TRihEQ05fVk1fQUdQX1RPUCwgQUdQX1RPUCwgbWFza19zaCksIFwKKwlIVUJCVUJfU0YoRENOX1ZNX0FHUF9CQVNFLCBBR1BfQkFTRSwgbWFza19zaCkKKwordm9pZCBkY24yMV9kY2h2bV9pbml0KHN0cnVjdCBodWJidWIgKmh1YmJ1Yik7Cit2b2lkIGh1YmJ1YjIxX3Byb2dyYW1fd2F0ZXJtYXJrcygKKwkJc3RydWN0IGh1YmJ1YiAqaHViYnViLAorCQlzdHJ1Y3QgZGNuX3dhdGVybWFya19zZXQgKndhdGVybWFya3MsCisJCXVuc2lnbmVkIGludCByZWZjbGtfbWh6LAorCQlib29sIHNhZmVfdG9fbG93ZXIpOworCit2b2lkIGh1YmJ1YjIxX3dtX3JlYWRfc3RhdGUoc3RydWN0IGh1YmJ1YiAqaHViYnViLAorCQlzdHJ1Y3QgZGNuX2h1YmJ1Yl93bSAqd20pOworCit2b2lkIGh1YmJ1YjIxX2NvbnN0cnVjdChzdHJ1Y3QgZGNuMjBfaHViYnViICpodWJidWIsCisJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwljb25zdCBzdHJ1Y3QgZGNuX2h1YmJ1Yl9yZWdpc3RlcnMgKmh1YmJ1Yl9yZWdzLAorCWNvbnN0IHN0cnVjdCBkY25faHViYnViX3NoaWZ0ICpodWJidWJfc2hpZnQsCisJY29uc3Qgc3RydWN0IGRjbl9odWJidWJfbWFzayAqaHViYnViX21hc2spOworCisjZW5kaWYgLyogREFMX0RDX0RDTjIxX0RDTjIxX0hVQkJVQl9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2RjbjIxX2h1YnAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9odWJwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAwYWY1MQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9odWJwLmMKQEAgLTAsMCArMSwyNDQgQEAKKy8qCisqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKyNpbmNsdWRlICJkY24yMV9odWJwLmgiCisKKyNpbmNsdWRlICJkbV9zZXJ2aWNlcy5oIgorI2luY2x1ZGUgInJlZ19oZWxwZXIuaCIKKworI2RlZmluZSBSRUcocmVnKVwKKwlodWJwMjEtPmh1YnBfcmVncy0+cmVnCisKKyNkZWZpbmUgQ1RYIFwKKwlodWJwMjEtPmJhc2UuY3R4CisKKyN1bmRlZiBGTgorI2RlZmluZSBGTihyZWdfbmFtZSwgZmllbGRfbmFtZSkgXAorCWh1YnAyMS0+aHVicF9zaGlmdC0+ZmllbGRfbmFtZSwgaHVicDIxLT5odWJwX21hc2stPmZpZWxkX25hbWUKKworLyoKKyAqIEluIERDTjIuMSwgdGhlIG5vbi1kb3VibGUgYnVmZmVyZWQgdmVyc2lvbiBvZiB0aGUgZm9sbG93aW5nIDQgRExHIHJlZ2lzdGVycyBhcmUgdXNlZCBpbiBSVEwuCisgKiBBcyBhIHJlc3VsdCwgaWYgUy9XIHVwZGF0ZXMgYW55IG9mIHRoZXNlIHJlZ2lzdGVycyBkdXJpbmcgYSBtb2RlIGNoYW5nZSwKKyAqIHRoZSBjdXJyZW50IGZyYW1lIGJlZm9yZSB0aGUgbW9kZSBjaGFuZ2Ugd2lsbCB1c2UgdGhlIG5ldyB2YWx1ZSByaWdodCBhd2F5CisgKiBhbmQgY2FuIGxlYWQgdG8gZ2VuZXJhdGluZyBpbmNvcnJlY3QgcmVxdWVzdCBkZWFkbGluZXMgYW5kIGluY29ycmVjdCBUVFUvUW9TIGJlaGF2aW9yLgorICoKKyAqIFJFRkNZQ19QRVJfVk1fR1JPVVBfRkxJUFsyMjowXQorICogUkVGQ1lDX1BFUl9WTV9HUk9VUF9WQkxBTktbMjI6MF0KKyAqIFJFRkNZQ19QRVJfVk1fUkVRX0ZMSVBbMjI6MF0KKyAqIFJFRkNZQ19QRVJfVk1fUkVRX1ZCTEFOS1syMjowXQorICoKKyAqIFJFRkNZQ19QRVJfVk1fKl9GTElQIGFmZmVjdHMgdGhlIGRlYWRsaW5lIG9mIHRoZSBWTSByZXF1ZXN0cyBnZW5lcmF0ZWQKKyAqIHdoZW4gZmxpcHBpbmcgdG8gYSBuZXcgc3VyZmFjZQorICoKKyAqIFJFRkNZQ19QRVJfVk1fKl9WQkxBTksgYWZmZWN0cyB0aGUgZGVhZGxpbmUgb2YgdGhlIFZNIHJlcXVlc3RzIGdlbmVyYXRlZAorICogZHVyaW5nIHByZWZldGNoICBwZXJpb2Qgb2YgYSBmcmFtZS4gVGhlIHByZWZldGNoIHN0YXJ0cyBhdCBhIHByZS1kZXRlcm1pbmVkCisgKiBudW1iZXIgb2YgbGluZXMgYmVmb3JlIHRoZSBkaXNwbGF5IGFjdGl2ZSBwZXIgZnJhbWUKKyAqCisgKiBEQ04gbWF5IHVuZGVyZmxvdyBkdWUgdG8gaW5jb3JyZWN0bHkgcHJvZ3JhbW1pbmcgdGhlc2UgcmVnaXN0ZXJzCisgKiBkdXJpbmcgVk0gc3RhZ2Ugb2YgcHJlZmV0Y2gvaWZsaXAuIEZpcnN0IGxpbmVzIG9mIGRpc3BsYXkgYWN0aXZlCisgKiBvciBhIHN1Yi1yZWdpb24gb2YgYWN0aXZlIHVzaW5nIGEgbmV3IHN1cmZhY2Ugd2lsbCBiZSBjb3JydXB0ZWQKKyAqIHVudGlsIHRoZSBWTSBkYXRhIHJldHVybnMgYXQgZmxpcC9tb2RlIGNoYW5nZSB0cmFuc2l0aW9ucworICoKKyAqIFdvcmsgYXJvdW5kOgorICogd29ya2Fyb3VuZCBpcyBhbHdheXMgb3B0IHRvIHVzZSB0aGUgbW9yZSBhZ2dyZXNzaXZlIHNldHRpbmdzLgorICogT24gYW55IG1vZGUgc3dpdGNoLCBpZiB0aGUgbmV3IHJlZyB2YWx1ZXMgYXJlIHNtYWxsZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZXMsCisgKiB0aGVuIHVwZGF0ZSB0aGUgcmVncyB3aXRoIHRoZSBuZXcgdmFsdWVzLgorICoKKyAqIExpbmsgdG8gdGhlIHRpY2tldDogaHR0cDovL29udHJhY2staW50ZXJuYWwuYW1kLmNvbS9icm93c2UvREVEQ04yMS0xNDIKKyAqCisgKi8KK3ZvaWQgYXBwbHlfREVEQ04yMV8xNDJfd2FfZm9yX2hvc3R2bV9kZWFkbGluZSgKKwkJc3RydWN0IGh1YnAgKmh1YnAsCisJCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbGdfYXR0cikKK3sKKwlzdHJ1Y3QgZGNuMjFfaHVicCAqaHVicDIxID0gVE9fRENOMjFfSFVCUChodWJwKTsKKwl1aW50MzJfdCBjdXJfdmFsdWU7CisKKwlSRUdfR0VUKFZCTEFOS19QQVJBTUVURVJTXzUsIFJFRkNZQ19QRVJfVk1fR1JPVVBfVkJMQU5LLCAmY3VyX3ZhbHVlKTsKKwlpZiAoY3VyX3ZhbHVlID4gZGxnX2F0dHItPnJlZmN5Y19wZXJfdm1fZ3JvdXBfdmJsYW5rKQorCQlSRUdfU0VUKFZCTEFOS19QQVJBTUVURVJTXzUsIDAsCisJCQkJUkVGQ1lDX1BFUl9WTV9HUk9VUF9WQkxBTkssIGRsZ19hdHRyLT5yZWZjeWNfcGVyX3ZtX2dyb3VwX3ZibGFuayk7CisKKwlSRUdfR0VUKFZCTEFOS19QQVJBTUVURVJTXzYsCisJCQlSRUZDWUNfUEVSX1ZNX1JFUV9WQkxBTkssCisJCQkmY3VyX3ZhbHVlKTsKKwlpZiAoY3VyX3ZhbHVlID4gZGxnX2F0dHItPnJlZmN5Y19wZXJfdm1fcmVxX3ZibGFuaykKKwkJUkVHX1NFVChWQkxBTktfUEFSQU1FVEVSU182LCAwLAorCQkJCVJFRkNZQ19QRVJfVk1fUkVRX1ZCTEFOSywgZGxnX2F0dHItPnJlZmN5Y19wZXJfdm1fcmVxX3ZibGFuayk7CisKKwlSRUdfR0VUKEZMSVBfUEFSQU1FVEVSU18zLCBSRUZDWUNfUEVSX1ZNX0dST1VQX0ZMSVAsICZjdXJfdmFsdWUpOworCWlmIChjdXJfdmFsdWUgPiBkbGdfYXR0ci0+cmVmY3ljX3Blcl92bV9ncm91cF9mbGlwKQorCQlSRUdfU0VUKEZMSVBfUEFSQU1FVEVSU18zLCAwLAorCQkJCVJFRkNZQ19QRVJfVk1fR1JPVVBfRkxJUCwgZGxnX2F0dHItPnJlZmN5Y19wZXJfdm1fZ3JvdXBfZmxpcCk7CisKKwlSRUdfR0VUKEZMSVBfUEFSQU1FVEVSU180LCBSRUZDWUNfUEVSX1ZNX1JFUV9GTElQLCAmY3VyX3ZhbHVlKTsKKwlpZiAoY3VyX3ZhbHVlID4gZGxnX2F0dHItPnJlZmN5Y19wZXJfdm1fcmVxX2ZsaXApCisJCVJFR19TRVQoRkxJUF9QQVJBTUVURVJTXzQsIDAsCisJCQkJCVJFRkNZQ19QRVJfVk1fUkVRX0ZMSVAsIGRsZ19hdHRyLT5yZWZjeWNfcGVyX3ZtX3JlcV9mbGlwKTsKKworCVJFR19TRVQoRkxJUF9QQVJBTUVURVJTXzUsIDAsCisJCQlSRUZDWUNfUEVSX1BURV9HUk9VUF9GTElQX0MsIGRsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9mbGlwX2MpOworCVJFR19TRVQoRkxJUF9QQVJBTUVURVJTXzYsIDAsCisJCQlSRUZDWUNfUEVSX01FVEFfQ0hVTktfRkxJUF9DLCBkbGdfYXR0ci0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX2ZsaXBfYyk7Cit9CisKK3ZvaWQgaHVicDIxX3Byb2dyYW1fZGVhZGxpbmUoCisJCXN0cnVjdCBodWJwICpodWJwLAorCQlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCAqZGxnX2F0dHIsCisJCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0ICp0dHVfYXR0cikKK3sKKwlodWJwMl9wcm9ncmFtX2RlYWRsaW5lKGh1YnAsIGRsZ19hdHRyLCB0dHVfYXR0cik7CisKKwlhcHBseV9ERURDTjIxXzE0Ml93YV9mb3JfaG9zdHZtX2RlYWRsaW5lKGh1YnAsIGRsZ19hdHRyKTsKK30KKwordm9pZCBodWJwMjFfcHJvZ3JhbV9yZXF1ZXN0b3IoCisJCXN0cnVjdCBodWJwICpodWJwLAorCQlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9yZWdzX3N0ICpycV9yZWdzKQoreworCXN0cnVjdCBkY24yMV9odWJwICpodWJwMjEgPSBUT19EQ04yMV9IVUJQKGh1YnApOworCisJUkVHX1VQREFURShIVUJQUkVUX0NPTlRST0wsCisJCQlERVRfQlVGX1BMQU5FMV9CQVNFX0FERFJFU1MsIHJxX3JlZ3MtPnBsYW5lMV9iYXNlX2FkZHJlc3MpOworCVJFR19TRVRfNChEQ05fRVhQQU5TSU9OX01PREUsIDAsCisJCQlEUlFfRVhQQU5TSU9OX01PREUsIHJxX3JlZ3MtPmRycV9leHBhbnNpb25fbW9kZSwKKwkJCVBSUV9FWFBBTlNJT05fTU9ERSwgcnFfcmVncy0+cHJxX2V4cGFuc2lvbl9tb2RlLAorCQkJTVJRX0VYUEFOU0lPTl9NT0RFLCBycV9yZWdzLT5tcnFfZXhwYW5zaW9uX21vZGUsCisJCQlDUlFfRVhQQU5TSU9OX01PREUsIHJxX3JlZ3MtPmNycV9leHBhbnNpb25fbW9kZSk7CisJUkVHX1NFVF84KERDSFVCUF9SRVFfU0laRV9DT05GSUcsIDAsCisJCUNIVU5LX1NJWkUsIHJxX3JlZ3MtPnJxX3JlZ3NfbC5jaHVua19zaXplLAorCQlNSU5fQ0hVTktfU0laRSwgcnFfcmVncy0+cnFfcmVnc19sLm1pbl9jaHVua19zaXplLAorCQlNRVRBX0NIVU5LX1NJWkUsIHJxX3JlZ3MtPnJxX3JlZ3NfbC5tZXRhX2NodW5rX3NpemUsCisJCU1JTl9NRVRBX0NIVU5LX1NJWkUsIHJxX3JlZ3MtPnJxX3JlZ3NfbC5taW5fbWV0YV9jaHVua19zaXplLAorCQlEUFRFX0dST1VQX1NJWkUsIHJxX3JlZ3MtPnJxX3JlZ3NfbC5kcHRlX2dyb3VwX3NpemUsCisJCVZNX0dST1VQX1NJWkUsIHJxX3JlZ3MtPnJxX3JlZ3NfbC5tcHRlX2dyb3VwX3NpemUsCisJCVNXQVRIX0hFSUdIVCwgcnFfcmVncy0+cnFfcmVnc19sLnN3YXRoX2hlaWdodCwKKwkJUFRFX1JPV19IRUlHSFRfTElORUFSLCBycV9yZWdzLT5ycV9yZWdzX2wucHRlX3Jvd19oZWlnaHRfbGluZWFyKTsKKwlSRUdfU0VUXzcoRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DLCAwLAorCQlDSFVOS19TSVpFX0MsIHJxX3JlZ3MtPnJxX3JlZ3NfYy5jaHVua19zaXplLAorCQlNSU5fQ0hVTktfU0laRV9DLCBycV9yZWdzLT5ycV9yZWdzX2MubWluX2NodW5rX3NpemUsCisJCU1FVEFfQ0hVTktfU0laRV9DLCBycV9yZWdzLT5ycV9yZWdzX2MubWV0YV9jaHVua19zaXplLAorCQlNSU5fTUVUQV9DSFVOS19TSVpFX0MsIHJxX3JlZ3MtPnJxX3JlZ3NfYy5taW5fbWV0YV9jaHVua19zaXplLAorCQlEUFRFX0dST1VQX1NJWkVfQywgcnFfcmVncy0+cnFfcmVnc19jLmRwdGVfZ3JvdXBfc2l6ZSwKKwkJU1dBVEhfSEVJR0hUX0MsIHJxX3JlZ3MtPnJxX3JlZ3NfYy5zd2F0aF9oZWlnaHQsCisJCVBURV9ST1dfSEVJR0hUX0xJTkVBUl9DLCBycV9yZWdzLT5ycV9yZWdzX2MucHRlX3Jvd19oZWlnaHRfbGluZWFyKTsKK30KKworc3RhdGljIHZvaWQgaHVicDIxX3NldHVwKAorCQlzdHJ1Y3QgaHVicCAqaHVicCwKKwkJc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGxnX3JlZ3Nfc3QgKmRsZ19hdHRyLAorCQlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV90dHVfcmVnc19zdCAqdHR1X2F0dHIsCisJCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3JlZ3MsCisJCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgKnBpcGVfZGVzdCkKK3sKKwkvKiBvdGcgaXMgbG9ja2VkIHdoZW4gdGhpcyBmdW5jIGlzIGNhbGxlZC4gUmVnaXN0ZXIgYXJlIGRvdWJsZSBidWZmZXJlZC4KKwkgKiBkaXNhYmxlIHRoZSByZXF1ZXN0b3JzIGlzIG5vdCBuZWVkZWQKKwkgKi8KKworCWh1YnAyX3ZyZWFkeV9hdF9vcl9BZnRlcl92c3luYyhodWJwLCBwaXBlX2Rlc3QpOworCWh1YnAyMV9wcm9ncmFtX3JlcXVlc3RvcihodWJwLCBycV9yZWdzKTsKKwlodWJwMjFfcHJvZ3JhbV9kZWFkbGluZShodWJwLCBkbGdfYXR0ciwgdHR1X2F0dHIpOworCit9CisKK3ZvaWQgaHVicDIxX3NldF92bV9zeXN0ZW1fYXBlcnR1cmVfc2V0dGluZ3Moc3RydWN0IGh1YnAgKmh1YnAsCisJCXN0cnVjdCB2bV9zeXN0ZW1fYXBlcnR1cmVfcGFyYW0gKmFwdCkKK3sKKwlzdHJ1Y3QgZGNuMjFfaHVicCAqaHVicDIxID0gVE9fRENOMjFfSFVCUChodWJwKTsKKworCVBIWVNJQ0FMX0FERFJFU1NfTE9DIG1jX3ZtX2FwdF9kZWZhdWx0OworCVBIWVNJQ0FMX0FERFJFU1NfTE9DIG1jX3ZtX2FwdF9sb3c7CisJUEhZU0lDQUxfQUREUkVTU19MT0MgbWNfdm1fYXB0X2hpZ2g7CisKKwkvLyBUaGUgZm9ybWF0IG9mIGRlZmF1bHQgYWRkciBpcyA0ODoxMiBvZiB0aGUgNDggYml0IGFkZHIKKwltY192bV9hcHRfZGVmYXVsdC5xdWFkX3BhcnQgPSBhcHQtPnN5c19kZWZhdWx0LnF1YWRfcGFydCA+PiAxMjsKKworCS8vIFRoZSBmb3JtYXQgb2YgaGlnaC9sb3cgYXJlIDQ4OjE4IG9mIHRoZSA0OCBiaXQgYWRkcgorCW1jX3ZtX2FwdF9sb3cucXVhZF9wYXJ0ID0gYXB0LT5zeXNfbG93LnF1YWRfcGFydCA+PiAxODsKKwltY192bV9hcHRfaGlnaC5xdWFkX3BhcnQgPSBhcHQtPnN5c19oaWdoLnF1YWRfcGFydCA+PiAxODsKKworCVJFR19TRVQoRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUiwgMCwKKwkJCU1DX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUiwgbWNfdm1fYXB0X2xvdy5xdWFkX3BhcnQpOworCisJUkVHX1NFVChEQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUiwgMCwKKwkJCU1DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFIsIG1jX3ZtX2FwdF9oaWdoLnF1YWRfcGFydCk7CisKKwlSRUdfU0VUXzIoRENOX1ZNX01YX0wxX1RMQl9DTlRMLCAwLAorCQkJRU5BQkxFX0wxX1RMQiwgMSwKKwkJCVNZU1RFTV9BQ0NFU1NfTU9ERSwgMHgzKTsKK30KKwordm9pZCBodWJwMjFfaW5pdChzdHJ1Y3QgaHVicCAqaHVicCkKK3sKKwkvLyBERURDTjIxLTEzMzogSW5jb25zaXN0ZW50IHJvdyBzdGFydGluZyBsaW5lIGZvciBmbGlwIGJldHdlZW4gRFBURSBhbmQgTWV0YQorCS8vIFRoaXMgaXMgYSBjaGlja2VuIGJpdCB0byBlbmFibGUgdGhlIEVDTyBmaXguCisKKwlzdHJ1Y3QgZGNuMjFfaHVicCAqaHVicDIxID0gVE9fRENOMjFfSFVCUChodWJwKTsKKwkvL2h1YnBbaV0uSFVCUFJFUV9ERUJVRy5IVUJQUkVRX0RFQlVHWzI2XSA9IDE7CisJUkVHX1dSSVRFKEhVQlBSRVFfREVCVUcsIDEgPDwgMjYpOworfQorc3RhdGljIHN0cnVjdCBodWJwX2Z1bmNzIGRjbjIxX2h1YnBfZnVuY3MgPSB7CisJLmh1YnBfZW5hYmxlX3RyaXBsZUJ1ZmZlciA9IGh1YnAyX2VuYWJsZV90cmlwbGVidWZmZXIsCisJLmh1YnBfaXNfdHJpcGxlYnVmZmVyX2VuYWJsZWQgPSBodWJwMl9pc190cmlwbGVidWZmZXJfZW5hYmxlZCwKKwkuaHVicF9wcm9ncmFtX3N1cmZhY2VfZmxpcF9hbmRfYWRkciA9IGh1YnAyX3Byb2dyYW1fc3VyZmFjZV9mbGlwX2FuZF9hZGRyLAorCS5odWJwX3Byb2dyYW1fc3VyZmFjZV9jb25maWcgPSBodWJwMl9wcm9ncmFtX3N1cmZhY2VfY29uZmlnLAorCS5odWJwX2lzX2ZsaXBfcGVuZGluZyA9IGh1YnAxX2lzX2ZsaXBfcGVuZGluZywKKwkuaHVicF9zZXR1cCA9IGh1YnAyMV9zZXR1cCwKKwkuaHVicF9zZXR1cF9pbnRlcmRlcGVuZGVudCA9IGh1YnAyX3NldHVwX2ludGVyZGVwZW5kZW50LAorCS5odWJwX3NldF92bV9zeXN0ZW1fYXBlcnR1cmVfc2V0dGluZ3MgPSBodWJwMjFfc2V0X3ZtX3N5c3RlbV9hcGVydHVyZV9zZXR0aW5ncywKKwkuc2V0X2JsYW5rID0gaHVicDFfc2V0X2JsYW5rLAorCS5kY2NfY29udHJvbCA9IGh1YnAxX2RjY19jb250cm9sLAorCS5tZW1fcHJvZ3JhbV92aWV3cG9ydCA9IG1pbl9zZXRfdmlld3BvcnQsCisJLnNldF9jdXJzb3JfYXR0cmlidXRlcwk9IGh1YnAyX2N1cnNvcl9zZXRfYXR0cmlidXRlcywKKwkuc2V0X2N1cnNvcl9wb3NpdGlvbgk9IGh1YnAxX2N1cnNvcl9zZXRfcG9zaXRpb24sCisJLmh1YnBfY2xrX2NudGwgPSBodWJwMV9jbGtfY250bCwKKwkuaHVicF92dGdfc2VsID0gaHVicDFfdnRnX3NlbCwKKwkuZG1kYXRhX3NldF9hdHRyaWJ1dGVzID0gaHVicDJfZG1kYXRhX3NldF9hdHRyaWJ1dGVzLAorCS5kbWRhdGFfbG9hZCA9IGh1YnAyX2RtZGF0YV9sb2FkLAorCS5kbWRhdGFfc3RhdHVzX2RvbmUgPSBodWJwMl9kbWRhdGFfc3RhdHVzX2RvbmUsCisJLmh1YnBfcmVhZF9zdGF0ZSA9IGh1YnAxX3JlYWRfc3RhdGUsCisJLmh1YnBfY2xlYXJfdW5kZXJmbG93ID0gaHVicDFfY2xlYXJfdW5kZXJmbG93LAorCS5odWJwX3NldF9mbGlwX2NvbnRyb2xfc3VyZmFjZV9nc2wgPSBodWJwMl9zZXRfZmxpcF9jb250cm9sX3N1cmZhY2VfZ3NsLAorCS5odWJwX2luaXQgPSBodWJwMjFfaW5pdCwKK307CisKK2Jvb2wgaHVicDIxX2NvbnN0cnVjdCgKKwlzdHJ1Y3QgZGNuMjFfaHVicCAqaHVicDIxLAorCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCisJdWludDMyX3QgaW5zdCwKKwljb25zdCBzdHJ1Y3QgZGNuX2h1YnAyX3JlZ2lzdGVycyAqaHVicF9yZWdzLAorCWNvbnN0IHN0cnVjdCBkY25faHVicDJfc2hpZnQgKmh1YnBfc2hpZnQsCisJY29uc3Qgc3RydWN0IGRjbl9odWJwMl9tYXNrICpodWJwX21hc2spCit7CisJaHVicDIxLT5iYXNlLmZ1bmNzID0gJmRjbjIxX2h1YnBfZnVuY3M7CisJaHVicDIxLT5iYXNlLmN0eCA9IGN0eDsKKwlodWJwMjEtPmh1YnBfcmVncyA9IGh1YnBfcmVnczsKKwlodWJwMjEtPmh1YnBfc2hpZnQgPSBodWJwX3NoaWZ0OworCWh1YnAyMS0+aHVicF9tYXNrID0gaHVicF9tYXNrOworCWh1YnAyMS0+YmFzZS5pbnN0ID0gaW5zdDsKKwlodWJwMjEtPmJhc2Uub3BwX2lkID0gT1BQX0lEX0lOVkFMSUQ7CisJaHVicDIxLT5iYXNlLm1wY2NfaWQgPSAweGY7CisKKwlyZXR1cm4gdHJ1ZTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9odWJwLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfaHVicC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZGE3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfaHVicC5oCkBAIC0wLDAgKzEsMTMzIEBACisvKgorKiBDb3B5cmlnaHQgMjAxOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpZm5kZWYgREFMX0RDX0RDTjIxX0RDTjIxX0hVQlBfSF8KKyNkZWZpbmUgREFMX0RDX0RDTjIxX0RDTjIxX0hVQlBfSF8KKworI2luY2x1ZGUgIi4uL2RjbjIwL2RjbjIwX2h1YnAuaCIKKyNpbmNsdWRlICIuLi9kY24xMC9kY24xMF9odWJwLmgiCisKKyNkZWZpbmUgVE9fRENOMjFfSFVCUChodWJwKVwKKwljb250YWluZXJfb2YoaHVicCwgc3RydWN0IGRjbjIxX2h1YnAsIGJhc2UpCisKKyNkZWZpbmUgSFVCUF9SRUdfTElTVF9EQ04yMShpZClcCisJSFVCUF9SRUdfTElTVF9EQ04yX0NPTU1PTihpZCksXAorCVNSSShGTElQX1BBUkFNRVRFUlNfMywgSFVCUFJFUSwgaWQpLFwKKwlTUkkoRkxJUF9QQVJBTUVURVJTXzQsIEhVQlBSRVEsIGlkKSxcCisJU1JJKEZMSVBfUEFSQU1FVEVSU181LCBIVUJQUkVRLCBpZCksXAorCVNSSShGTElQX1BBUkFNRVRFUlNfNiwgSFVCUFJFUSwgaWQpLFwKKwlTUkkoVkJMQU5LX1BBUkFNRVRFUlNfNSwgSFVCUFJFUSwgaWQpLFwKKwlTUkkoVkJMQU5LX1BBUkFNRVRFUlNfNiwgSFVCUFJFUSwgaWQpCisKKyNkZWZpbmUgSFVCUF9NQVNLX1NIX0xJU1RfRENOMjFfQ09NTU9OKG1hc2tfc2gpXAorCUhVQlBfTUFTS19TSF9MSVNUX0RDTl9TSEFSRV9DT01NT04obWFza19zaCksXAorCUhVQlBfTUFTS19TSF9MSVNUX0RDTl9WTShtYXNrX3NoKSxcCisJSFVCUF9TRihIVUJQMF9EQ1NVUkZfU1VSRkFDRV9DT05GSUcsIFJPVEFUSU9OX0FOR0xFLCBtYXNrX3NoKSxcCisJSFVCUF9TRihIVUJQMF9EQ1NVUkZfU1VSRkFDRV9DT05GSUcsIEhfTUlSUk9SX0VOLCBtYXNrX3NoKSxcCisJSFVCUF9TRihIVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HUywgRFNUX1lfUFJFRkVUQ0gsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlBSRVEwX1BSRUZFVENIX1NFVFRJTkdTLCBWUkFUSU9fUFJFRkVUQ0gsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlBSRVEwX1BSRUZFVENIX1NFVFRJTkdTX0MsIFZSQVRJT19QUkVGRVRDSF9DLCBtYXNrX3NoKSxcCisJSFVCUF9TRihIVUJQUkVRMF9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSLCBNQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFIsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlBSRVEwX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSLCBNQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSLCBtYXNrX3NoKSxcCisJSFVCUF9TRihIVUJQUkVRMF9DVVJTT1JfU0VUVElOR1MsIENVUlNPUjBfRFNUX1lfT0ZGU0VULCBtYXNrX3NoKSwgXAorCUhVQlBfU0YoSFVCUFJFUTBfQ1VSU09SX1NFVFRJTkdTLCBDVVJTT1IwX0NIVU5LX0hETF9BREpVU1QsIG1hc2tfc2gpLCBcCisJSFVCUF9TRihDVVJTT1IwXzBfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdILCBDVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0gsIG1hc2tfc2gpLCBcCisJSFVCUF9TRihDVVJTT1IwXzBfQ1VSU09SX1NVUkZBQ0VfQUREUkVTUywgQ1VSU09SX1NVUkZBQ0VfQUREUkVTUywgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9DVVJTT1JfU0laRSwgQ1VSU09SX1dJRFRILCBtYXNrX3NoKSwgXAorCUhVQlBfU0YoQ1VSU09SMF8wX0NVUlNPUl9TSVpFLCBDVVJTT1JfSEVJR0hULCBtYXNrX3NoKSwgXAorCUhVQlBfU0YoQ1VSU09SMF8wX0NVUlNPUl9DT05UUk9MLCBDVVJTT1JfTU9ERSwgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9DVVJTT1JfQ09OVFJPTCwgQ1VSU09SXzJYX01BR05JRlksIG1hc2tfc2gpLCBcCisJSFVCUF9TRihDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0wsIENVUlNPUl9QSVRDSCwgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9DVVJTT1JfQ09OVFJPTCwgQ1VSU09SX0xJTkVTX1BFUl9DSFVOSywgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9DVVJTT1JfQ09OVFJPTCwgQ1VSU09SX0VOQUJMRSwgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9DVVJTT1JfUE9TSVRJT04sIENVUlNPUl9YX1BPU0lUSU9OLCBtYXNrX3NoKSwgXAorCUhVQlBfU0YoQ1VSU09SMF8wX0NVUlNPUl9QT1NJVElPTiwgQ1VSU09SX1lfUE9TSVRJT04sIG1hc2tfc2gpLCBcCisJSFVCUF9TRihDVVJTT1IwXzBfQ1VSU09SX0hPVF9TUE9ULCBDVVJTT1JfSE9UX1NQT1RfWCwgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9DVVJTT1JfSE9UX1NQT1QsIENVUlNPUl9IT1RfU1BPVF9ZLCBtYXNrX3NoKSwgXAorCUhVQlBfU0YoQ1VSU09SMF8wX0NVUlNPUl9EU1RfT0ZGU0VULCBDVVJTT1JfRFNUX1hfT0ZGU0VULCBtYXNrX3NoKSwgXAorCUhVQlBfU0YoQ1VSU09SMF8wX0RNREFUQV9BRERSRVNTX0hJR0gsIERNREFUQV9BRERSRVNTX0hJR0gsIG1hc2tfc2gpLCBcCisJSFVCUF9TRihDVVJTT1IwXzBfRE1EQVRBX0NOVEwsIERNREFUQV9NT0RFLCBtYXNrX3NoKSwgXAorCUhVQlBfU0YoQ1VSU09SMF8wX0RNREFUQV9DTlRMLCBETURBVEFfVVBEQVRFRCwgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9ETURBVEFfQ05UTCwgRE1EQVRBX1JFUEVBVCwgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9ETURBVEFfQ05UTCwgRE1EQVRBX1NJWkUsIG1hc2tfc2gpLCBcCisJSFVCUF9TRihDVVJTT1IwXzBfRE1EQVRBX1NXX0NOVEwsIERNREFUQV9TV19VUERBVEVELCBtYXNrX3NoKSwgXAorCUhVQlBfU0YoQ1VSU09SMF8wX0RNREFUQV9TV19DTlRMLCBETURBVEFfU1dfUkVQRUFULCBtYXNrX3NoKSwgXAorCUhVQlBfU0YoQ1VSU09SMF8wX0RNREFUQV9TV19DTlRMLCBETURBVEFfU1dfU0laRSwgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9ETURBVEFfUU9TX0NOVEwsIERNREFUQV9RT1NfTU9ERSwgbWFza19zaCksIFwKKwlIVUJQX1NGKENVUlNPUjBfMF9ETURBVEFfUU9TX0NOVEwsIERNREFUQV9RT1NfTEVWRUwsIG1hc2tfc2gpLCBcCisJSFVCUF9TRihDVVJTT1IwXzBfRE1EQVRBX1FPU19DTlRMLCBETURBVEFfRExfREVMVEEsIG1hc2tfc2gpLCBcCisJSFVCUF9TRihDVVJTT1IwXzBfRE1EQVRBX1NUQVRVUywgRE1EQVRBX0RPTkUsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU18wLCBEU1RfWV9QRVJfVk1fRkxJUCwgbWFza19zaCksXAorCUhVQlBfU0YoSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzAsIERTVF9ZX1BFUl9ST1dfRkxJUCwgbWFza19zaCksXAorCUhVQlBfU0YoSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzEsIFJFRkNZQ19QRVJfUFRFX0dST1VQX0ZMSVBfTCwgbWFza19zaCksXAorCUhVQlBfU0YoSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzIsIFJFRkNZQ19QRVJfTUVUQV9DSFVOS19GTElQX0wsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlAwX0RDSFVCUF9DTlRMLCBIVUJQX1ZSRUFEWV9BVF9PUl9BRlRFUl9WU1lOQywgbWFza19zaCksXAorCUhVQlBfU0YoSFVCUDBfRENIVUJQX0NOVEwsIEhVQlBfRElTQUJMRV9TVE9QX0RBVEFfRFVSSU5HX1ZNLCBtYXNrX3NoKSxcCisJSFVCUF9TRihIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MLCBIVUJQUkVRX01BU1RFUl9VUERBVEVfTE9DS19TVEFUVVMsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyLCBTVVJGQUNFX0dTTF9FTkFCTEUsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyLCBTVVJGQUNFX1RSSVBMRV9CVUZGRVJfRU5BQkxFLCBtYXNrX3NoKSxcCisJSFVCUF9TRihIVUJQUkVRMF9WTUlEX1NFVFRJTkdTXzAsIFZNSUQsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU18zLCBSRUZDWUNfUEVSX1ZNX0dST1VQX0ZMSVAsIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU180LCBSRUZDWUNfUEVSX1ZNX1JFUV9GTElQLCBtYXNrX3NoKSxcCisJSFVCUF9TRihIVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfNSwgUkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9DLCBtYXNrX3NoKSxcCisJSFVCUF9TRihIVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfNiwgUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX0ZMSVBfQywgbWFza19zaCksXAorCUhVQlBfU0YoSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfNSwgUkVGQ1lDX1BFUl9WTV9HUk9VUF9WQkxBTkssIG1hc2tfc2gpLFwKKwlIVUJQX1NGKEhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzYsIFJFRkNZQ19QRVJfVk1fUkVRX1ZCTEFOSywgbWFza19zaCksXAorCUhVQlBfU0YoSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJRywgVk1fR1JPVVBfU0laRSwgbWFza19zaCkKKworI2RlZmluZSBIVUJQX01BU0tfU0hfTElTVF9EQ04yMShtYXNrX3NoKVwKKwlIVUJQX01BU0tfU0hfTElTVF9EQ04yMV9DT01NT04obWFza19zaCksXAorCUhVQlBfU0YoSFVCUDBfRENTVVJGX1RJTElOR19DT05GSUcsIFJCX0FMSUdORUQsIG1hc2tfc2gpCisKKworc3RydWN0IGRjbjIxX2h1YnAgeworCXN0cnVjdCBodWJwIGJhc2U7CisJc3RydWN0IGRjbl9odWJwX3N0YXRlIHN0YXRlOworCWNvbnN0IHN0cnVjdCBkY25faHVicDJfcmVnaXN0ZXJzICpodWJwX3JlZ3M7CisJY29uc3Qgc3RydWN0IGRjbl9odWJwMl9zaGlmdCAqaHVicF9zaGlmdDsKKwljb25zdCBzdHJ1Y3QgZGNuX2h1YnAyX21hc2sgKmh1YnBfbWFzazsKK307CisKK2Jvb2wgaHVicDIxX2NvbnN0cnVjdCgKKwlzdHJ1Y3QgZGNuMjFfaHVicCAqaHVicDIxLAorCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCisJdWludDMyX3QgaW5zdCwKKwljb25zdCBzdHJ1Y3QgZGNuX2h1YnAyX3JlZ2lzdGVycyAqaHVicF9yZWdzLAorCWNvbnN0IHN0cnVjdCBkY25faHVicDJfc2hpZnQgKmh1YnBfc2hpZnQsCisJY29uc3Qgc3RydWN0IGRjbl9odWJwMl9tYXNrICpodWJwX21hc2spOworCit2b2lkIGFwcGx5X0RFRENOMjFfMTQyX3dhX2Zvcl9ob3N0dm1fZGVhZGxpbmUoCisJCXN0cnVjdCBodWJwICpodWJwLAorCQlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCAqZGxnX2F0dHIpOworCit2b2lkIGh1YnAyMV9wcm9ncmFtX2RlYWRsaW5lKAorCQlzdHJ1Y3QgaHVicCAqaHVicCwKKwkJc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGxnX3JlZ3Nfc3QgKmRsZ19hdHRyLAorCQlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV90dHVfcmVnc19zdCAqdHR1X2F0dHIpOworCit2b2lkIGh1YnAyMV9wcm9ncmFtX3JlcXVlc3RvcigKKwkJc3RydWN0IGh1YnAgKmh1YnAsCisJCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3JlZ3MpOworI2VuZGlmIC8qIERBTF9EQ19EQ04yMV9EQ04yMV9IVUJQX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9yZXNvdXJjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMTgyMTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfcmVzb3VyY2UuYwpAQCAtMCwwICsxLDE2ODIgQEAKKy8qCisqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKworI2luY2x1ZGUgImRtX3NlcnZpY2VzLmgiCisjaW5jbHVkZSAiZGMuaCIKKworI2luY2x1ZGUgInJlc291cmNlLmgiCisjaW5jbHVkZSAiaW5jbHVkZS9pcnFfc2VydmljZV9pbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJkY24yMC9kY24yMF9yZXNvdXJjZS5oIgorCisjaW5jbHVkZSAiY2xrX21nci5oIgorI2luY2x1ZGUgImRjbjEwL2RjbjEwX2h1YnAuaCIKKyNpbmNsdWRlICJkY24xMC9kY24xMF9pcHAuaCIKKyNpbmNsdWRlICJkY24yMC9kY24yMF9odWJidWIuaCIKKyNpbmNsdWRlICJkY24yMC9kY24yMF9tcGMuaCIKKyNpbmNsdWRlICJkY24yMC9kY24yMF9odWJwLmgiCisjaW5jbHVkZSAiZGNuMjFfaHVicC5oIgorI2luY2x1ZGUgImlycS9kY24yMS9pcnFfc2VydmljZV9kY24yMS5oIgorI2luY2x1ZGUgImRjbjIwL2RjbjIwX2RwcC5oIgorI2luY2x1ZGUgImRjbjIwL2RjbjIwX29wdGMuaCIKKyNpbmNsdWRlICJkY24yMC9kY24yMF9od3NlcS5oIgorI2luY2x1ZGUgImRjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmgiCisjaW5jbHVkZSAiZGNuMjAvZGNuMjBfb3BwLmgiCisjaW5jbHVkZSAiZGNuMjAvZGNuMjBfZHNjLmgiCisjaW5jbHVkZSAiZGNuMjAvZGNuMjBfbGlua19lbmNvZGVyLmgiCisjaW5jbHVkZSAiZGNuMjAvZGNuMjBfc3RyZWFtX2VuY29kZXIuaCIKKyNpbmNsdWRlICJkY2UvZGNlX2Nsb2NrX3NvdXJjZS5oIgorI2luY2x1ZGUgImRjZS9kY2VfYXVkaW8uaCIKKyNpbmNsdWRlICJkY2UvZGNlX2h3c2VxLmgiCisjaW5jbHVkZSAidmlydHVhbC92aXJ0dWFsX3N0cmVhbV9lbmNvZGVyLmgiCisjaW5jbHVkZSAiZGNlMTEwL2RjZTExMF9yZXNvdXJjZS5oIgorI2luY2x1ZGUgImRtbC9kaXNwbGF5X21vZGVfdmJhLmgiCisjaW5jbHVkZSAiZGNuMjAvZGNuMjBfZGNjZy5oIgorI2luY2x1ZGUgImRjbjIxX2h1YmJ1Yi5oIgorI2luY2x1ZGUgImRjbjEwL2RjbjEwX3Jlc291cmNlLmgiCisKKyNpbmNsdWRlICJkY24yMC9kY24yMF9kd2IuaCIKKyNpbmNsdWRlICJkY24yMC9kY24yMF9tbWh1YmJ1Yi5oIgorCisjaW5jbHVkZSAicmVub2lyX2lwX29mZnNldC5oIgorI2luY2x1ZGUgImRjbi9kY25fMl8xXzBfb2Zmc2V0LmgiCisjaW5jbHVkZSAiZGNuL2Rjbl8yXzFfMF9zaF9tYXNrLmgiCisKKyNpbmNsdWRlICJuYmlvL25iaW9fN18wX29mZnNldC5oIgorCisjaW5jbHVkZSAibW1odWIvbW1odWJfMl8wXzBfb2Zmc2V0LmgiCisjaW5jbHVkZSAibW1odWIvbW1odWJfMl8wXzBfc2hfbWFzay5oIgorCisjaW5jbHVkZSAicmVnX2hlbHBlci5oIgorI2luY2x1ZGUgImRjZS9kY2VfYWJtLmgiCisjaW5jbHVkZSAiZGNlL2RjZV9kbWN1LmgiCisjaW5jbHVkZSAiZGNlL2RjZV9hdXguaCIKKyNpbmNsdWRlICJkY2UvZGNlX2kyYy5oIgorI2luY2x1ZGUgImRjbjIxX3Jlc291cmNlLmgiCisjaW5jbHVkZSAidm1faGVscGVyLmgiCisjaW5jbHVkZSAiZGNuMjAvZGNuMjBfdm1pZC5oIgorCisjZGVmaW5lIFNPQ19CT1VORElOR19CT1hfVkFMSUQgZmFsc2UKKyNkZWZpbmUgRENfTE9HR0VSX0lOSVQobG9nZ2VyKQorCisKK3N0cnVjdCBfdmNzX2RwaV9pcF9wYXJhbXNfc3QgZGNuMl8xX2lwID0geworCS5ncHV2bV9lbmFibGUgPSAwLAorCS5ob3N0dm1fZW5hYmxlID0gMCwKKwkuZ3B1dm1fbWF4X3BhZ2VfdGFibGVfbGV2ZWxzID0gMSwKKwkuaG9zdHZtX21heF9wYWdlX3RhYmxlX2xldmVscyA9IDQsCisJLmhvc3R2bV9jYWNoZWRfcGFnZV90YWJsZV9sZXZlbHMgPSAyLAorI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJLm51bV9kc2MgPSAzLAorI2Vsc2UKKwkubnVtX2RzYyA9IDAsCisjZW5kaWYKKwkucm9iX2J1ZmZlcl9zaXplX2tieXRlcyA9IDE2OCwKKwkuZGV0X2J1ZmZlcl9zaXplX2tieXRlcyA9IDE2NCwKKwkuZHB0ZV9idWZmZXJfc2l6ZV9pbl9wdGVfcmVxc19sdW1hID0gNDQsCisJLmRwdGVfYnVmZmVyX3NpemVfaW5fcHRlX3JlcXNfY2hyb21hID0gNDIsLy90b2RvCisJLmRwcF9vdXRwdXRfYnVmZmVyX3BpeGVscyA9IDI1NjAsCisJLm9wcF9vdXRwdXRfYnVmZmVyX2xpbmVzID0gMSwKKwkucGl4ZWxfY2h1bmtfc2l6ZV9rYnl0ZXMgPSA4LAorCS5wdGVfZW5hYmxlID0gMSwKKwkubWF4X3BhZ2VfdGFibGVfbGV2ZWxzID0gNCwKKwkucHRlX2NodW5rX3NpemVfa2J5dGVzID0gMiwKKwkubWV0YV9jaHVua19zaXplX2tieXRlcyA9IDIsCisJLndyaXRlYmFja19jaHVua19zaXplX2tieXRlcyA9IDIsCisJLmxpbmVfYnVmZmVyX3NpemVfYml0cyA9IDc4OTUwNCwKKwkuaXNfbGluZV9idWZmZXJfYnBwX2ZpeGVkID0gMCwKKwkubGluZV9idWZmZXJfZml4ZWRfYnBwID0gMCwKKwkuZGNjX3N1cHBvcnRlZCA9IHRydWUsCisJLm1heF9saW5lX2J1ZmZlcl9saW5lcyA9IDEyLAorCS53cml0ZWJhY2tfbHVtYV9idWZmZXJfc2l6ZV9rYnl0ZXMgPSAxMiwKKwkud3JpdGViYWNrX2Nocm9tYV9idWZmZXJfc2l6ZV9rYnl0ZXMgPSA4LAorCS53cml0ZWJhY2tfY2hyb21hX2xpbmVfYnVmZmVyX3dpZHRoX3BpeGVscyA9IDQsCisJLndyaXRlYmFja19tYXhfaHNjbF9yYXRpbyA9IDEsCisJLndyaXRlYmFja19tYXhfdnNjbF9yYXRpbyA9IDEsCisJLndyaXRlYmFja19taW5faHNjbF9yYXRpbyA9IDEsCisJLndyaXRlYmFja19taW5fdnNjbF9yYXRpbyA9IDEsCisJLndyaXRlYmFja19tYXhfaHNjbF90YXBzID0gMTIsCisJLndyaXRlYmFja19tYXhfdnNjbF90YXBzID0gMTIsCisJLndyaXRlYmFja19saW5lX2J1ZmZlcl9sdW1hX2J1ZmZlcl9zaXplID0gMCwKKwkud3JpdGViYWNrX2xpbmVfYnVmZmVyX2Nocm9tYV9idWZmZXJfc2l6ZSA9IDE0NjQzLAorCS5jdXJzb3JfYnVmZmVyX3NpemUgPSA4LAorCS5jdXJzb3JfY2h1bmtfc2l6ZSA9IDIsCisJLm1heF9udW1fb3RnID0gNCwKKwkubWF4X251bV9kcHAgPSA0LAorCS5tYXhfbnVtX3diID0gMSwKKwkubWF4X2RjaHViX3BzY2xfYndfcGl4X3Blcl9jbGsgPSA0LAorCS5tYXhfcHNjbF9sYl9id19waXhfcGVyX2NsayA9IDIsCisJLm1heF9sYl92c2NsX2J3X3BpeF9wZXJfY2xrID0gNCwKKwkubWF4X3ZzY2xfaHNjbF9id19waXhfcGVyX2NsayA9IDQsCisJLm1heF9oc2NsX3JhdGlvID0gNCwKKwkubWF4X3ZzY2xfcmF0aW8gPSA0LAorCS5oc2NsX211bHRzID0gNCwKKwkudnNjbF9tdWx0cyA9IDQsCisJLm1heF9oc2NsX3RhcHMgPSA4LAorCS5tYXhfdnNjbF90YXBzID0gOCwKKwkuZGlzcGNsa19yYW1wX21hcmdpbl9wZXJjZW50ID0gMSwKKwkudW5kZXJzY2FuX2ZhY3RvciA9IDEuMTAsCisJLm1pbl92YmxhbmtfbGluZXMgPSAzMiwgLy8KKwkuZHBwY2xrX2RlbGF5X3N1YnRvdGFsID0gNzcsIC8vCisJLmRwcGNsa19kZWxheV9zY2xfbGJfb25seSA9IDE2LAorCS5kcHBjbGtfZGVsYXlfc2NsID0gNTAsCisJLmRwcGNsa19kZWxheV9jbnZjX2Zvcm1hdHRlciA9IDgsCisJLmRwcGNsa19kZWxheV9jbnZjX2N1cnNvciA9IDYsCisJLmRpc3BjbGtfZGVsYXlfc3VidG90YWwgPSA4NywgLy8KKwkuZGNmY2xrX2NzdGF0ZV9sYXRlbmN5ID0gMTAsIC8vIFNSRXhpdFRpbWUKKwkubWF4X2ludGVyX2Rjbl90aWxlX3JlcGVhdGVycyA9IDgsCisKKwkueGZjX3N1cHBvcnRlZCA9IGZhbHNlLAorCS54ZmNfZmlsbF9id19vdmVyaGVhZF9wZXJjZW50ID0gMTAuMCwKKwkueGZjX2ZpbGxfY29uc3RhbnRfYnl0ZXMgPSAwLAorCS5wdG9pX3N1cHBvcnRlZCA9IDAKK307CisKK3N0cnVjdCBfdmNzX2RwaV9zb2NfYm91bmRpbmdfYm94X3N0IGRjbjJfMV9zb2MgPSB7CisJLmNsb2NrX2xpbWl0cyA9IHsKKwkJCXsKKwkJCQkuc3RhdGUgPSAwLAorCQkJCS5kY2ZjbGtfbWh6ID0gMzA0LjAsCisJCQkJLmZhYnJpY2Nsa19taHogPSA2MDAuMCwKKwkJCQkuZGlzcGNsa19taHogPSA2MTguMCwKKwkJCQkuZHBwY2xrX21oeiA9IDQ0MC4wLAorCQkJCS5waHljbGtfbWh6ID0gNjAwLjAsCisJCQkJLnNvY2Nsa19taHogPSAyNzguMCwKKwkJCQkuZHNjY2xrX21oeiA9IDIwNS42NywKKwkJCQkuZHJhbV9zcGVlZF9tdHMgPSAxNjAwLjAsCisJCQl9LAorCQkJeworCQkJCS5zdGF0ZSA9IDEsCisJCQkJLmRjZmNsa19taHogPSAzMDQuMCwKKwkJCQkuZmFicmljY2xrX21oeiA9IDYwMC4wLAorCQkJCS5kaXNwY2xrX21oeiA9IDYxOC4wLAorCQkJCS5kcHBjbGtfbWh6ID0gNjE4LjAsCisJCQkJLnBoeWNsa19taHogPSA2MDAuMCwKKwkJCQkuc29jY2xrX21oeiA9IDI3OC4wLAorCQkJCS5kc2NjbGtfbWh6ID0gMjA1LjY3LAorCQkJCS5kcmFtX3NwZWVkX210cyA9IDE2MDAuMCwKKwkJCX0sCisJCQl7CisJCQkJLnN0YXRlID0gMiwKKwkJCQkuZGNmY2xrX21oeiA9IDYwOC4wLAorCQkJCS5mYWJyaWNjbGtfbWh6ID0gMTA2Ni4wLAorCQkJCS5kaXNwY2xrX21oeiA9IDg4OC4wLAorCQkJCS5kcHBjbGtfbWh6ID0gODg4LjAsCisJCQkJLnBoeWNsa19taHogPSA4MTAuMCwKKwkJCQkuc29jY2xrX21oeiA9IDI3OC4wLAorCQkJCS5kc2NjbGtfbWh6ID0gMjg3LjY3LAorCQkJCS5kcmFtX3NwZWVkX210cyA9IDIxMzMuMCwKKwkJCX0sCisJCQl7CisJCQkJLnN0YXRlID0gMywKKwkJCQkuZGNmY2xrX21oeiA9IDY3Ni4wLAorCQkJCS5mYWJyaWNjbGtfbWh6ID0gMTYwMC4wLAorCQkJCS5kaXNwY2xrX21oeiA9IDEwMTUuMCwKKwkJCQkuZHBwY2xrX21oeiA9IDEwMTUuMCwKKwkJCQkucGh5Y2xrX21oeiA9IDgxMC4wLAorCQkJCS5zb2NjbGtfbWh6ID0gNzE1LjAsCisJCQkJLmRzY2Nsa19taHogPSAzMTguMzM0LAorCQkJCS5kcmFtX3NwZWVkX210cyA9IDQyNjYuMCwKKwkJCX0sCisJCQl7CisJCQkJLnN0YXRlID0gNCwKKwkJCQkuZGNmY2xrX21oeiA9IDgxMC4wLAorCQkJCS5mYWJyaWNjbGtfbWh6ID0gMTYwMC4wLAorCQkJCS5kaXNwY2xrX21oeiA9IDEwMTUuMCwKKwkJCQkuZHBwY2xrX21oeiA9IDEwMTUuMCwKKwkJCQkucGh5Y2xrX21oeiA9IDgxMC4wLAorCQkJCS5zb2NjbGtfbWh6ID0gOTUzLjAsCisJCQkJLmRzY2Nsa19taHogPSAzMTguMzM0LAorCQkJCS5kcmFtX3NwZWVkX210cyA9IDQyNjYuMCwKKwkJCX0sCisJCQkvKkV4dHJhIHN0YXRlLCBubyBkaXNwY2xrIHJhbXBpbmcqLworCQkJeworCQkJCS5zdGF0ZSA9IDUsCisJCQkJLmRjZmNsa19taHogPSA4MTAuMCwKKwkJCQkuZmFicmljY2xrX21oeiA9IDE2MDAuMCwKKwkJCQkuZGlzcGNsa19taHogPSAxMDE1LjAsCisJCQkJLmRwcGNsa19taHogPSAxMDE1LjAsCisJCQkJLnBoeWNsa19taHogPSA4MTAuMCwKKwkJCQkuc29jY2xrX21oeiA9IDk1My4wLAorCQkJCS5kc2NjbGtfbWh6ID0gMzE4LjMzNCwKKwkJCQkuZHJhbV9zcGVlZF9tdHMgPSA0MjY2LjAsCisJCQl9LAorCisJCX0sCisKKwkuc3JfZXhpdF90aW1lX3VzID0gOS4wLAorCS5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9IDExLjAsCisJLnVyZ2VudF9sYXRlbmN5X3VzID0gNC4wLAorCS51cmdlbnRfbGF0ZW5jeV9waXhlbF9kYXRhX29ubHlfdXMgPSA0LjAsCisJLnVyZ2VudF9sYXRlbmN5X3BpeGVsX21peGVkX3dpdGhfdm1fZGF0YV91cyA9IDQuMCwKKwkudXJnZW50X2xhdGVuY3lfdm1fZGF0YV9vbmx5X3VzID0gNC4wLAorCS51cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbF9waXhlbF9vbmx5X2J5dGVzID0gNDA5NiwKKwkudXJnZW50X291dF9vZl9vcmRlcl9yZXR1cm5fcGVyX2NoYW5uZWxfcGl4ZWxfYW5kX3ZtX2J5dGVzID0gNDA5NiwKKwkudXJnZW50X291dF9vZl9vcmRlcl9yZXR1cm5fcGVyX2NoYW5uZWxfdm1fb25seV9ieXRlcyA9IDQwOTYsCisJLnBjdF9pZGVhbF9kcmFtX3NkcF9id19hZnRlcl91cmdlbnRfcGl4ZWxfb25seSA9IDgwLjAsCisJLnBjdF9pZGVhbF9kcmFtX3NkcF9id19hZnRlcl91cmdlbnRfcGl4ZWxfYW5kX3ZtID0gNzUuMCwKKwkucGN0X2lkZWFsX2RyYW1fc2RwX2J3X2FmdGVyX3VyZ2VudF92bV9vbmx5ID0gNDAuMCwKKwkubWF4X2F2Z19zZHBfYndfdXNlX25vcm1hbF9wZXJjZW50ID0gNjAuMCwKKwkubWF4X2F2Z19kcmFtX2J3X3VzZV9ub3JtYWxfcGVyY2VudCA9IDEwMC4wLAorCS53cml0ZWJhY2tfbGF0ZW5jeV91cyA9IDEyLjAsCisJLm1heF9yZXF1ZXN0X3NpemVfYnl0ZXMgPSAyNTYsCisJLmRyYW1fY2hhbm5lbF93aWR0aF9ieXRlcyA9IDQsCisJLmZhYnJpY19kYXRhcGF0aF90b19kY25fZGF0YV9yZXR1cm5fYnl0ZXMgPSAzMiwKKwkuZGNuX2Rvd25zcHJlYWRfcGVyY2VudCA9IDAuNSwKKwkuZG93bnNwcmVhZF9wZXJjZW50ID0gMC41LAorCS5kcmFtX3BhZ2Vfb3Blbl90aW1lX25zID0gNTAuMCwKKwkuZHJhbV9yd190dXJuYXJvdW5kX3RpbWVfbnMgPSAxNy41LAorCS5kcmFtX3JldHVybl9idWZmZXJfcGVyX2NoYW5uZWxfYnl0ZXMgPSA4MTkyLAorCS5yb3VuZF90cmlwX3BpbmdfbGF0ZW5jeV9kY2ZjbGtfY3ljbGVzID0gMTI4LAorCS51cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbF9ieXRlcyA9IDQwOTYsCisJLmNoYW5uZWxfaW50ZXJsZWF2ZV9ieXRlcyA9IDI1NiwKKwkubnVtX2JhbmtzID0gOCwKKwkubnVtX2NoYW5zID0gNCwKKwkudm1tX3BhZ2Vfc2l6ZV9ieXRlcyA9IDQwOTYsCisJLmRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3lfdXMgPSAyMy44NCwKKwkucmV0dXJuX2J1c193aWR0aF9ieXRlcyA9IDY0LAorCS5kaXNwY2xrX2RwcGNsa192Y29fc3BlZWRfbWh6ID0gMzU1MCwKKwkueGZjX2J1c190cmFuc3BvcnRfdGltZV91cyA9IDQsCisJLnhmY194YnVmX2xhdGVuY3lfdG9sZXJhbmNlX3VzID0gNCwKKwkudXNlX3VyZ2VudF9idXJzdF9idyA9IDEsCisJLm51bV9zdGF0ZXMgPSA1Cit9OworCisjaWZuZGVmIE1BWAorI2RlZmluZSBNQVgoWCwgWSkgKChYKSA+IChZKSA/IChYKSA6IChZKSkKKyNlbmRpZgorI2lmbmRlZiBNSU4KKyNkZWZpbmUgTUlOKFgsIFkpICgoWCkgPCAoWSkgPyAoWCkgOiAoWSkpCisjZW5kaWYKKworLyogYmVnaW4gKioqKioqKioqKioqKioqKioqKioqCisgKiBtYWNyb3MgdG8gZXhwZW5kIHJlZ2lzdGVyIGxpc3QgbWFjcm8gZGVmaW5lZCBpbiBIVyBvYmplY3QgaGVhZGVyIGZpbGUgKi8KKworLyogRENOICovCisvKiBUT0RPIGF3ZnVsIGhhY2suIGZpeHVwIGRjbjIwX2R3Yi5oICovCisjdW5kZWYgQkFTRV9JTk5FUgorI2RlZmluZSBCQVNFX0lOTkVSKHNlZykgRE1VX0JBU0VfX0lOU1QwX1NFRyAjIyBzZWcKKworI2RlZmluZSBCQVNFKHNlZykgQkFTRV9JTk5FUihzZWcpCisKKyNkZWZpbmUgU1IocmVnX25hbWUpXAorCQkucmVnX25hbWUgPSBCQVNFKG1tICMjIHJlZ19uYW1lICMjIF9CQVNFX0lEWCkgKyAgXAorCQkJCQltbSAjIyByZWdfbmFtZQorCisjZGVmaW5lIFNSSShyZWdfbmFtZSwgYmxvY2ssIGlkKVwKKwkucmVnX25hbWUgPSBCQVNFKG1tICMjIGJsb2NrICMjIGlkICMjIF8gIyMgcmVnX25hbWUgIyMgX0JBU0VfSURYKSArIFwKKwkJCQkJbW0gIyMgYmxvY2sgIyMgaWQgIyMgXyAjIyByZWdfbmFtZQorCisjZGVmaW5lIFNSSVIodmFyX25hbWUsIHJlZ19uYW1lLCBibG9jaywgaWQpXAorCS52YXJfbmFtZSA9IEJBU0UobW0gIyMgYmxvY2sgIyMgaWQgIyMgXyAjIyByZWdfbmFtZSAjIyBfQkFTRV9JRFgpICsgXAorCQkJCQltbSAjIyBibG9jayAjIyBpZCAjIyBfICMjIHJlZ19uYW1lCisKKyNkZWZpbmUgU1JJSShyZWdfbmFtZSwgYmxvY2ssIGlkKVwKKwkucmVnX25hbWVbaWRdID0gQkFTRShtbSAjIyBibG9jayAjIyBpZCAjIyBfICMjIHJlZ19uYW1lICMjIF9CQVNFX0lEWCkgKyBcCisJCQkJCW1tICMjIGJsb2NrICMjIGlkICMjIF8gIyMgcmVnX25hbWUKKworI2RlZmluZSBEQ0NHX1NSSUkocmVnX25hbWUsIGJsb2NrLCBpZClcCisJLmJsb2NrICMjIF8gIyMgcmVnX25hbWVbaWRdID0gQkFTRShtbSAjIyBibG9jayAjIyBpZCAjIyBfICMjIHJlZ19uYW1lICMjIF9CQVNFX0lEWCkgKyBcCisJCQkJCW1tICMjIGJsb2NrICMjIGlkICMjIF8gIyMgcmVnX25hbWUKKworLyogTkJJTyAqLworI2RlZmluZSBOQklPX0JBU0VfSU5ORVIoc2VnKSBcCisJTkJJRjBfQkFTRV9fSU5TVDBfU0VHICMjIHNlZworCisjZGVmaW5lIE5CSU9fQkFTRShzZWcpIFwKKwlOQklPX0JBU0VfSU5ORVIoc2VnKQorCisjZGVmaW5lIE5CSU9fU1IocmVnX25hbWUpXAorCQkucmVnX25hbWUgPSBOQklPX0JBU0UobW0gIyMgcmVnX25hbWUgIyMgX0JBU0VfSURYKSArIFwKKwkJCQkJbW0gIyMgcmVnX25hbWUKKworLyogTU1IVUIgKi8KKyNkZWZpbmUgTU1IVUJfQkFTRV9JTk5FUihzZWcpIFwKKwlNTUhVQl9CQVNFX19JTlNUMF9TRUcgIyMgc2VnCisKKyNkZWZpbmUgTU1IVUJfQkFTRShzZWcpIFwKKwlNTUhVQl9CQVNFX0lOTkVSKHNlZykKKworI2RlZmluZSBNTUhVQl9TUihyZWdfbmFtZSlcCisJCS5yZWdfbmFtZSA9IE1NSFVCX0JBU0UobW1NTSAjIyByZWdfbmFtZSAjIyBfQkFTRV9JRFgpICsgXAorCQkJCQltbU1NICMjIHJlZ19uYW1lCisKKyNkZWZpbmUgY2xrX3NyY19yZWdzKGluZGV4LCBwbGxpZClcCitbaW5kZXhdID0ge1wKKwlDU19DT01NT05fUkVHX0xJU1RfRENOMl8xKGluZGV4LCBwbGxpZCksXAorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZTExMF9jbGtfc3JjX3JlZ3MgY2xrX3NyY19yZWdzW10gPSB7CisJY2xrX3NyY19yZWdzKDAsIEEpLAorCWNsa19zcmNfcmVncygxLCBCKSwKKwljbGtfc3JjX3JlZ3MoMiwgQyksCisJY2xrX3NyY19yZWdzKDMsIEQpLAorCWNsa19zcmNfcmVncyg0LCBFKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNlMTEwX2Nsa19zcmNfc2hpZnQgY3Nfc2hpZnQgPSB7CisJCUNTX0NPTU1PTl9NQVNLX1NIX0xJU1RfRENOMl8wKF9fU0hJRlQpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZTExMF9jbGtfc3JjX21hc2sgY3NfbWFzayA9IHsKKwkJQ1NfQ09NTU9OX01BU0tfU0hfTElTVF9EQ04yXzAoX01BU0spCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGJpb3NfcmVnaXN0ZXJzIGJpb3NfcmVncyA9IHsKKwkJTkJJT19TUihCSU9TX1NDUkFUQ0hfMyksCisJCU5CSU9fU1IoQklPU19TQ1JBVENIXzYpCit9OworCisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRE1VQgorc3RhdGljIGNvbnN0IHN0cnVjdCBkY24yMV9kbWN1Yl9yZWdpc3RlcnMgZG1jdWJfcmVncyA9IHsKKwkJRE1DVUJfUkVHX0xJU1RfRENOKCkKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMjFfZG1jdWJfc2hpZnQgZG1jdWJfc2hpZnQgPSB7CisJCURNQ1VCX0NPTU1PTl9NQVNLX1NIX0xJU1RfQkFTRShfX1NISUZUKQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY24yMV9kbWN1Yl9tYXNrIGRtY3ViX21hc2sgPSB7CisJCURNQ1VCX0NPTU1PTl9NQVNLX1NIX0xJU1RfQkFTRShfTUFTSykKK307CisjZW5kaWYKKworI2RlZmluZSBhdWRpb19yZWdzKGlkKVwKK1tpZF0gPSB7XAorCQlBVURfQ09NTU9OX1JFR19MSVNUKGlkKVwKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfYXVkaW9fcmVnaXN0ZXJzIGF1ZGlvX3JlZ3NbXSA9IHsKKwlhdWRpb19yZWdzKDApLAorCWF1ZGlvX3JlZ3MoMSksCisJYXVkaW9fcmVncygyKSwKKwlhdWRpb19yZWdzKDMpLAorCWF1ZGlvX3JlZ3MoNCksCisJYXVkaW9fcmVncyg1KSwKK307CisKKyNkZWZpbmUgRENFMTIwX0FVRF9DT01NT05fTUFTS19TSF9MSVNUKG1hc2tfc2gpXAorCQlTRihBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWCwgQVpBTElBX0VORFBPSU5UX1JFR19JTkRFWCwgbWFza19zaCksXAorCQlTRihBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBLCBBWkFMSUFfRU5EUE9JTlRfUkVHX0RBVEEsIG1hc2tfc2gpLFwKKwkJQVVEX0NPTU1PTl9NQVNLX1NIX0xJU1RfQkFTRShtYXNrX3NoKQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hdWRpb19zaGlmdCBhdWRpb19zaGlmdCA9IHsKKwkJRENFMTIwX0FVRF9DT01NT05fTUFTS19TSF9MSVNUKF9fU0hJRlQpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9hdWRpb19tYXNrIGF1ZGlvX21hc2sgPSB7CisJCURDRTEyMF9BVURfQ09NTU9OX01BU0tfU0hfTElTVChfTUFTSykKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNjZ19yZWdpc3RlcnMgZGNjZ19yZWdzID0geworCQlEQ0NHX0NPTU1PTl9SRUdfTElTVF9EQ05fQkFTRSgpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjY2dfc2hpZnQgZGNjZ19zaGlmdCA9IHsKKwkJRENDR19NQVNLX1NIX0xJU1RfRENOMihfX1NISUZUKQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY2NnX21hc2sgZGNjZ19tYXNrID0geworCQlEQ0NHX01BU0tfU0hfTElTVF9EQ04yKF9NQVNLKQorfTsKKworI2RlZmluZSBvcHBfcmVncyhpZClcCitbaWRdID0ge1wKKwlPUFBfUkVHX0xJU1RfRENOMjAoaWQpLFwKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY24yMF9vcHBfcmVnaXN0ZXJzIG9wcF9yZWdzW10gPSB7CisJb3BwX3JlZ3MoMCksCisJb3BwX3JlZ3MoMSksCisJb3BwX3JlZ3MoMiksCisJb3BwX3JlZ3MoMyksCisJb3BwX3JlZ3MoNCksCisJb3BwX3JlZ3MoNSksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjIwX29wcF9zaGlmdCBvcHBfc2hpZnQgPSB7CisJCU9QUF9NQVNLX1NIX0xJU1RfRENOMjAoX19TSElGVCkKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMjBfb3BwX21hc2sgb3BwX21hc2sgPSB7CisJCU9QUF9NQVNLX1NIX0xJU1RfRENOMjAoX01BU0spCit9OworCisjZGVmaW5lIHRnX3JlZ3MoaWQpXAorW2lkXSA9IHtUR19DT01NT05fUkVHX0xJU1RfRENOMl8wKGlkKX0KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fb3B0Y19yZWdpc3RlcnMgdGdfcmVnc1tdID0geworCXRnX3JlZ3MoMCksCisJdGdfcmVncygxKSwKKwl0Z19yZWdzKDIpLAorCXRnX3JlZ3MoMykKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX29wdGNfc2hpZnQgdGdfc2hpZnQgPSB7CisJVEdfQ09NTU9OX01BU0tfU0hfTElTVF9EQ04yXzAoX19TSElGVCkKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX29wdGNfbWFzayB0Z19tYXNrID0geworCVRHX0NPTU1PTl9NQVNLX1NIX0xJU1RfRENOMl8wKF9NQVNLKQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY24yMF9tcGNfcmVnaXN0ZXJzIG1wY19yZWdzID0geworCQlNUENfUkVHX0xJU1RfRENOMl8wKDApLAorCQlNUENfUkVHX0xJU1RfRENOMl8wKDEpLAorCQlNUENfUkVHX0xJU1RfRENOMl8wKDIpLAorCQlNUENfUkVHX0xJU1RfRENOMl8wKDMpLAorCQlNUENfUkVHX0xJU1RfRENOMl8wKDQpLAorCQlNUENfUkVHX0xJU1RfRENOMl8wKDUpLAorCQlNUENfT1VUX01VWF9SRUdfTElTVF9EQ04yXzAoMCksCisJCU1QQ19PVVRfTVVYX1JFR19MSVNUX0RDTjJfMCgxKSwKKwkJTVBDX09VVF9NVVhfUkVHX0xJU1RfRENOMl8wKDIpLAorCQlNUENfT1VUX01VWF9SRUdfTElTVF9EQ04yXzAoMykKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMjBfbXBjX3NoaWZ0IG1wY19zaGlmdCA9IHsKKwlNUENfQ09NTU9OX01BU0tfU0hfTElTVF9EQ04yXzAoX19TSElGVCkKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMjBfbXBjX21hc2sgbXBjX21hc2sgPSB7CisJTVBDX0NPTU1PTl9NQVNLX1NIX0xJU1RfRENOMl8wKF9NQVNLKQorfTsKKworI2RlZmluZSBodWJwX3JlZ3MoaWQpXAorW2lkXSA9IHtcCisJSFVCUF9SRUdfTElTVF9EQ04yMShpZClcCit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2h1YnAyX3JlZ2lzdGVycyBodWJwX3JlZ3NbXSA9IHsKKwkJaHVicF9yZWdzKDApLAorCQlodWJwX3JlZ3MoMSksCisJCWh1YnBfcmVncygyKSwKKwkJaHVicF9yZWdzKDMpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9odWJwMl9zaGlmdCBodWJwX3NoaWZ0ID0geworCQlIVUJQX01BU0tfU0hfTElTVF9EQ04yMShfX1NISUZUKQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY25faHVicDJfbWFzayBodWJwX21hc2sgPSB7CisJCUhVQlBfTUFTS19TSF9MSVNUX0RDTjIxKF9NQVNLKQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY25faHViYnViX3JlZ2lzdGVycyBodWJidWJfcmVnID0geworCQlIVUJCVUJfUkVHX0xJU1RfRENOMjEoKQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY25faHViYnViX3NoaWZ0IGh1YmJ1Yl9zaGlmdCA9IHsKKwkJSFVCQlVCX01BU0tfU0hfTElTVF9EQ04yMShfX1NISUZUKQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY25faHViYnViX21hc2sgaHViYnViX21hc2sgPSB7CisJCUhVQkJVQl9NQVNLX1NIX0xJU1RfRENOMjEoX01BU0spCit9OworCisKKyNkZWZpbmUgdm1pZF9yZWdzKGlkKVwKK1tpZF0gPSB7XAorCQlEQ04yMF9WTUlEX1JFR19MSVNUKGlkKVwKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fdm1pZF9yZWdpc3RlcnMgdm1pZF9yZWdzW10gPSB7CisJdm1pZF9yZWdzKDApLAorCXZtaWRfcmVncygxKSwKKwl2bWlkX3JlZ3MoMiksCisJdm1pZF9yZWdzKDMpLAorCXZtaWRfcmVncyg0KSwKKwl2bWlkX3JlZ3MoNSksCisJdm1pZF9yZWdzKDYpLAorCXZtaWRfcmVncyg3KSwKKwl2bWlkX3JlZ3MoOCksCisJdm1pZF9yZWdzKDkpLAorCXZtaWRfcmVncygxMCksCisJdm1pZF9yZWdzKDExKSwKKwl2bWlkX3JlZ3MoMTIpLAorCXZtaWRfcmVncygxMyksCisJdm1pZF9yZWdzKDE0KSwKKwl2bWlkX3JlZ3MoMTUpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjIwX3ZtaWRfc2hpZnQgdm1pZF9zaGlmdHMgPSB7CisJCURDTjIwX1ZNSURfTUFTS19TSF9MSVNUKF9fU0hJRlQpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjIwX3ZtaWRfbWFzayB2bWlkX21hc2tzID0geworCQlEQ04yMF9WTUlEX01BU0tfU0hfTElTVChfTUFTSykKK307CisKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAorI2RlZmluZSBkc2NfcmVnc0RDTjIwKGlkKVwKK1tpZF0gPSB7XAorCURTQ19SRUdfTElTVF9EQ04yMChpZClcCit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMjBfZHNjX3JlZ2lzdGVycyBkc2NfcmVnc1tdID0geworCWRzY19yZWdzRENOMjAoMCksCisJZHNjX3JlZ3NEQ04yMCgxKSwKKwlkc2NfcmVnc0RDTjIwKDIpLAorCWRzY19yZWdzRENOMjAoMyksCisJZHNjX3JlZ3NEQ04yMCg0KSwKKwlkc2NfcmVnc0RDTjIwKDUpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjIwX2RzY19zaGlmdCBkc2Nfc2hpZnQgPSB7CisJRFNDX1JFR19MSVNUX1NIX01BU0tfRENOMjAoX19TSElGVCkKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMjBfZHNjX21hc2sgZHNjX21hc2sgPSB7CisJRFNDX1JFR19MSVNUX1NIX01BU0tfRENOMjAoX01BU0spCit9OworI2VuZGlmCisKKyNkZWZpbmUgaXBwX3JlZ3MoaWQpXAorW2lkXSA9IHtcCisJSVBQX1JFR19MSVNUX0RDTjIwKGlkKSxcCit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMTBfaXBwX3JlZ2lzdGVycyBpcHBfcmVnc1tdID0geworCWlwcF9yZWdzKDApLAorCWlwcF9yZWdzKDEpLAorCWlwcF9yZWdzKDIpLAorCWlwcF9yZWdzKDMpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY24xMF9pcHBfc2hpZnQgaXBwX3NoaWZ0ID0geworCQlJUFBfTUFTS19TSF9MSVNUX0RDTjIwKF9fU0hJRlQpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjEwX2lwcF9tYXNrIGlwcF9tYXNrID0geworCQlJUFBfTUFTS19TSF9MSVNUX0RDTjIwKF9NQVNLKSwKK307CisKKyNkZWZpbmUgb3BwX3JlZ3MoaWQpXAorW2lkXSA9IHtcCisJT1BQX1JFR19MSVNUX0RDTjIwKGlkKSxcCit9CisKKworI2RlZmluZSBhdXhfZW5naW5lX3JlZ3MoaWQpXAorW2lkXSA9IHtcCisJQVVYX0NPTU1PTl9SRUdfTElTVDAoaWQpLCBcCisJLkFVWE5fSU1QQ0FMID0gMCwgXAorCS5BVVhQX0lNUENBTCA9IDAsIFwKKwkuQVVYX1JFU0VUX01BU0sgPSBEUF9BVVgwX0FVWF9DT05UUk9MX19BVVhfUkVTRVRfTUFTSywgXAorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZTExMF9hdXhfcmVnaXN0ZXJzIGF1eF9lbmdpbmVfcmVnc1tdID0geworCQlhdXhfZW5naW5lX3JlZ3MoMCksCisJCWF1eF9lbmdpbmVfcmVncygxKSwKKwkJYXV4X2VuZ2luZV9yZWdzKDIpLAorCQlhdXhfZW5naW5lX3JlZ3MoMyksCisJCWF1eF9lbmdpbmVfcmVncyg0KSwKK307CisKKyNkZWZpbmUgdGZfcmVncyhpZClcCitbaWRdID0ge1wKKwlURl9SRUdfTElTVF9EQ04yMChpZCksXAorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjJfZHBwX3JlZ2lzdGVycyB0Zl9yZWdzW10gPSB7CisJdGZfcmVncygwKSwKKwl0Zl9yZWdzKDEpLAorCXRmX3JlZ3MoMiksCisJdGZfcmVncygzKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMl9kcHBfc2hpZnQgdGZfc2hpZnQgPSB7CisJCVRGX1JFR19MSVNUX1NIX01BU0tfRENOMjAoX19TSElGVCkKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMl9kcHBfbWFzayB0Zl9tYXNrID0geworCQlURl9SRUdfTElTVF9TSF9NQVNLX0RDTjIwKF9NQVNLKQorfTsKKworI2RlZmluZSBzdHJlYW1fZW5jX3JlZ3MoaWQpXAorW2lkXSA9IHtcCisJU0VfRENOMl9SRUdfTElTVChpZClcCit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMTBfc3RyZWFtX2VuY19yZWdpc3RlcnMgc3RyZWFtX2VuY19yZWdzW10gPSB7CisJc3RyZWFtX2VuY19yZWdzKDApLAorCXN0cmVhbV9lbmNfcmVncygxKSwKKwlzdHJlYW1fZW5jX3JlZ3MoMiksCisJc3RyZWFtX2VuY19yZWdzKDMpLAorCXN0cmVhbV9lbmNfcmVncyg0KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMTBfc3RyZWFtX2VuY29kZXJfc2hpZnQgc2Vfc2hpZnQgPSB7CisJCVNFX0NPTU1PTl9NQVNLX1NIX0xJU1RfRENOMjAoX19TSElGVCkKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMTBfc3RyZWFtX2VuY29kZXJfbWFzayBzZV9tYXNrID0geworCQlTRV9DT01NT05fTUFTS19TSF9MSVNUX0RDTjIwKF9NQVNLKQorfTsKKworc3RhdGljIHN0cnVjdCBpbnB1dF9waXhlbF9wcm9jZXNzb3IgKmRjbjIxX2lwcF9jcmVhdGUoCisJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgdWludDMyX3QgaW5zdCkKK3sKKwlzdHJ1Y3QgZGNuMTBfaXBwICppcHAgPQorCQlremFsbG9jKHNpemVvZihzdHJ1Y3QgZGNuMTBfaXBwKSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIWlwcCkgeworCQlCUkVBS19UT19ERUJVR0dFUigpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlkY24yMF9pcHBfY29uc3RydWN0KGlwcCwgY3R4LCBpbnN0LAorCQkJJmlwcF9yZWdzW2luc3RdLCAmaXBwX3NoaWZ0LCAmaXBwX21hc2spOworCXJldHVybiAmaXBwLT5iYXNlOworfQorCitzdGF0aWMgc3RydWN0IGRwcCAqZGNuMjFfZHBwX2NyZWF0ZSgKKwlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAorCXVpbnQzMl90IGluc3QpCit7CisJc3RydWN0IGRjbjIwX2RwcCAqZHBwID0KKwkJa3phbGxvYyhzaXplb2Yoc3RydWN0IGRjbjIwX2RwcCksIEdGUF9LRVJORUwpOworCisJaWYgKCFkcHApCisJCXJldHVybiBOVUxMOworCisJaWYgKGRwcDJfY29uc3RydWN0KGRwcCwgY3R4LCBpbnN0LAorCQkJJnRmX3JlZ3NbaW5zdF0sICZ0Zl9zaGlmdCwgJnRmX21hc2spKQorCQlyZXR1cm4gJmRwcC0+YmFzZTsKKworCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJa2ZyZWUoZHBwKTsKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHN0cnVjdCBkY2VfYXV4ICpkY24yMV9hdXhfZW5naW5lX2NyZWF0ZSgKKwlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAorCXVpbnQzMl90IGluc3QpCit7CisJc3RydWN0IGF1eF9lbmdpbmVfZGNlMTEwICphdXhfZW5naW5lID0KKwkJa3phbGxvYyhzaXplb2Yoc3RydWN0IGF1eF9lbmdpbmVfZGNlMTEwKSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIWF1eF9lbmdpbmUpCisJCXJldHVybiBOVUxMOworCisJZGNlMTEwX2F1eF9lbmdpbmVfY29uc3RydWN0KGF1eF9lbmdpbmUsIGN0eCwgaW5zdCwKKwkJCQkgICAgU1dfQVVYX1RJTUVPVVRfUEVSSU9EX01VTFRJUExJRVIgKiBBVVhfVElNRU9VVF9QRVJJT0QsCisJCQkJICAgICZhdXhfZW5naW5lX3JlZ3NbaW5zdF0pOworCisJcmV0dXJuICZhdXhfZW5naW5lLT5iYXNlOworfQorCisjZGVmaW5lIGkyY19pbnN0X3JlZ3MoaWQpIHsgSTJDX0hXX0VOR0lORV9DT01NT05fUkVHX0xJU1QoaWQpIH0KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfaTJjX3JlZ2lzdGVycyBpMmNfaHdfcmVnc1tdID0geworCQlpMmNfaW5zdF9yZWdzKDEpLAorCQlpMmNfaW5zdF9yZWdzKDIpLAorCQlpMmNfaW5zdF9yZWdzKDMpLAorCQlpMmNfaW5zdF9yZWdzKDQpLAorCQlpMmNfaW5zdF9yZWdzKDUpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY2VfaTJjX3NoaWZ0IGkyY19zaGlmdHMgPSB7CisJCUkyQ19DT01NT05fTUFTS19TSF9MSVNUX0RDTjIoX19TSElGVCkKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNlX2kyY19tYXNrIGkyY19tYXNrcyA9IHsKKwkJSTJDX0NPTU1PTl9NQVNLX1NIX0xJU1RfRENOMihfTUFTSykKK307CisKK3N0cnVjdCBkY2VfaTJjX2h3ICpkY24yMV9pMmNfaHdfY3JlYXRlKAorCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCisJdWludDMyX3QgaW5zdCkKK3sKKwlzdHJ1Y3QgZGNlX2kyY19odyAqZGNlX2kyY19odyA9CisJCWt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkY2VfaTJjX2h3KSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIWRjZV9pMmNfaHcpCisJCXJldHVybiBOVUxMOworCisJZGNuMl9pMmNfaHdfY29uc3RydWN0KGRjZV9pMmNfaHcsIGN0eCwgaW5zdCwKKwkJCQkgICAgJmkyY19od19yZWdzW2luc3RdLCAmaTJjX3NoaWZ0cywgJmkyY19tYXNrcyk7CisKKwlyZXR1cm4gZGNlX2kyY19odzsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9jYXBzIHJlc19jYXBfcm4gPSB7CisJCS5udW1fdGltaW5nX2dlbmVyYXRvciA9IDQsCisJCS5udW1fb3BwID0gNCwKKwkJLm51bV92aWRlb19wbGFuZSA9IDQsCisJCS5udW1fYXVkaW8gPSA2LCAvLyA2IGF1ZGlvIGVuZHBvaW50cy4gIDQgYXVkaW8gc3RyZWFtcworCQkubnVtX3N0cmVhbV9lbmNvZGVyID0gNSwKKwkJLm51bV9wbGwgPSA1LCAgLy8gbWF5YmUgMyBiZWNhdXNlIHRoZSBsYXN0IHR3byB1c2VkIGZvciBVU0ItYworCQkubnVtX2R3YiA9IDEsCisJCS5udW1fZGRjID0gNSwKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAorCQkubnVtX2RzYyA9IDMsCisjZW5kaWYKK307CisKKyNpZmRlZiBESUFHU19CVUlMRAorc3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9jYXBzIHJlc19jYXBfcm5fRlBHQV80cGlwZSA9IHsKKwkJLm51bV90aW1pbmdfZ2VuZXJhdG9yID0gNCwKKwkJLm51bV9vcHAgPSA0LAorCQkubnVtX3ZpZGVvX3BsYW5lID0gNCwKKwkJLm51bV9hdWRpbyA9IDcsCisJCS5udW1fc3RyZWFtX2VuY29kZXIgPSA0LAorCQkubnVtX3BsbCA9IDQsCisJCS5udW1fZHdiID0gMSwKKwkJLm51bV9kZGMgPSA0LAorCQkubnVtX2RzYyA9IDAsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlc291cmNlX2NhcHMgcmVzX2NhcF9ybl9GUEdBXzJwaXBlX2RzYyA9IHsKKwkJLm51bV90aW1pbmdfZ2VuZXJhdG9yID0gMiwKKwkJLm51bV9vcHAgPSAyLAorCQkubnVtX3ZpZGVvX3BsYW5lID0gMiwKKwkJLm51bV9hdWRpbyA9IDcsCisJCS5udW1fc3RyZWFtX2VuY29kZXIgPSAyLAorCQkubnVtX3BsbCA9IDQsCisJCS5udW1fZHdiID0gMSwKKwkJLm51bV9kZGMgPSA0LAorI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJCS5udW1fZHNjID0gMiwKKyNlbmRpZgorfTsKKyNlbmRpZgorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjX3BsYW5lX2NhcCBwbGFuZV9jYXAgPSB7CisJLnR5cGUgPSBEQ19QTEFORV9UWVBFX0RDTl9VTklWRVJTQUwsCisJLmJsZW5kc193aXRoX2Fib3ZlID0gdHJ1ZSwKKwkuYmxlbmRzX3dpdGhfYmVsb3cgPSB0cnVlLAorCS5wZXJfcGl4ZWxfYWxwaGEgPSB0cnVlLAorCisJLnBpeGVsX2Zvcm1hdF9zdXBwb3J0ID0geworCQkJLmFyZ2I4ODg4ID0gdHJ1ZSwKKwkJCS5udjEyID0gdHJ1ZSwKKwkJCS5mcDE2ID0gdHJ1ZQorCX0sCisKKwkubWF4X3Vwc2NhbGVfZmFjdG9yID0geworCQkJLmFyZ2I4ODg4ID0gMTYwMDAsCisJCQkubnYxMiA9IDE2MDAwLAorCQkJLmZwMTYgPSAxNjAwMAorCX0sCisKKwkubWF4X2Rvd25zY2FsZV9mYWN0b3IgPSB7CisJCQkuYXJnYjg4ODggPSAyNTAsCisJCQkubnYxMiA9IDI1MCwKKwkJCS5mcDE2ID0gMjUwCisJfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkY19kZWJ1Z19vcHRpb25zIGRlYnVnX2RlZmF1bHRzX2RydiA9IHsKKwkJLmRpc2FibGVfZG1jdSA9IHRydWUsCisJCS5mb3JjZV9hYm1fZW5hYmxlID0gZmFsc2UsCisJCS50aW1pbmdfdHJhY2UgPSBmYWxzZSwKKwkJLmNsb2NrX3RyYWNlID0gdHJ1ZSwKKwkJLmRpc2FibGVfcHBsaWJfY2xvY2tfcmVxdWVzdCA9IHRydWUsCisJCS5waXBlX3NwbGl0X3BvbGljeSA9IE1QQ19TUExJVF9BVk9JRF9NVUxUX0RJU1AsCisJCS5mb3JjZV9zaW5nbGVfZGlzcF9waXBlX3NwbGl0ID0gdHJ1ZSwKKwkJLmRpc2FibGVfZGNjID0gRENDX0VOQUJMRSwKKwkJLnZzcl9zdXBwb3J0ID0gdHJ1ZSwKKwkJLnBlcmZvcm1hbmNlX3RyYWNlID0gZmFsc2UsCisJCS5tYXhfZG93bnNjYWxlX3NyY193aWR0aCA9IDUxMjAsLyp1cHRvIDVLKi8KKwkJLmRpc2FibGVfcHBsaWJfd21fcmFuZ2UgPSBmYWxzZSwKKwkJLnNjbF9yZXNldF9sZW5ndGgxMCA9IHRydWUsCisJCS5zYW5pdHlfY2hlY2tzID0gdHJ1ZSwKKwkJLmRpc2FibGVfNDhtaHpfcHdyZHduID0gdHJ1ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNfZGVidWdfb3B0aW9ucyBkZWJ1Z19kZWZhdWx0c19kaWFncyA9IHsKKwkJLmRpc2FibGVfZG1jdSA9IHRydWUsCisJCS5mb3JjZV9hYm1fZW5hYmxlID0gZmFsc2UsCisJCS50aW1pbmdfdHJhY2UgPSB0cnVlLAorCQkuY2xvY2tfdHJhY2UgPSB0cnVlLAorCQkuZGlzYWJsZV9kcHBfcG93ZXJfZ2F0ZSA9IHRydWUsCisJCS5kaXNhYmxlX2h1YnBfcG93ZXJfZ2F0ZSA9IHRydWUsCisJCS5kaXNhYmxlX2Nsb2NrX2dhdGUgPSB0cnVlLAorCQkuZGlzYWJsZV9wcGxpYl9jbG9ja19yZXF1ZXN0ID0gdHJ1ZSwKKwkJLmRpc2FibGVfcHBsaWJfd21fcmFuZ2UgPSB0cnVlLAorCQkuZGlzYWJsZV9zdHV0dGVyID0gdHJ1ZSwKKwkJLmRpc2FibGVfNDhtaHpfcHdyZHduID0gdHJ1ZSwKK307CisKK2VudW0gZGNuMjBfY2xrX3NyY19hcnJheV9pZCB7CisJRENOMjBfQ0xLX1NSQ19QTEwwLAorCURDTjIwX0NMS19TUkNfUExMMSwKKwlEQ04yMF9DTEtfU1JDX1RPVEFMX0RDTjIxCit9OworCitzdGF0aWMgdm9pZCBkZXN0cnVjdChzdHJ1Y3QgZGNuMjFfcmVzb3VyY2VfcG9vbCAqcG9vbCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnN0cmVhbV9lbmNfY291bnQ7IGkrKykgeworCQlpZiAocG9vbC0+YmFzZS5zdHJlYW1fZW5jW2ldICE9IE5VTEwpIHsKKwkJCWtmcmVlKERDTjEwU1RSRU5DX0ZST01fU1RSRU5DKHBvb2wtPmJhc2Uuc3RyZWFtX2VuY1tpXSkpOworCQkJcG9vbC0+YmFzZS5zdHJlYW1fZW5jW2ldID0gTlVMTDsKKwkJfQorCX0KKworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJZm9yIChpID0gMDsgaSA8IHBvb2wtPmJhc2UucmVzX2NhcC0+bnVtX2RzYzsgaSsrKSB7CisJCWlmIChwb29sLT5iYXNlLmRzY3NbaV0gIT0gTlVMTCkKKwkJCWRjbjIwX2RzY19kZXN0cm95KCZwb29sLT5iYXNlLmRzY3NbaV0pOworCX0KKyNlbmRpZgorCisJaWYgKHBvb2wtPmJhc2UubXBjICE9IE5VTEwpIHsKKwkJa2ZyZWUoVE9fRENOMjBfTVBDKHBvb2wtPmJhc2UubXBjKSk7CisJCXBvb2wtPmJhc2UubXBjID0gTlVMTDsKKwl9CisJaWYgKHBvb2wtPmJhc2UuaHViYnViICE9IE5VTEwpIHsKKwkJa2ZyZWUocG9vbC0+YmFzZS5odWJidWIpOworCQlwb29sLT5iYXNlLmh1YmJ1YiA9IE5VTEw7CisJfQorCWZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnBpcGVfY291bnQ7IGkrKykgeworCQlpZiAocG9vbC0+YmFzZS5kcHBzW2ldICE9IE5VTEwpCisJCQlkY24yMF9kcHBfZGVzdHJveSgmcG9vbC0+YmFzZS5kcHBzW2ldKTsKKworCQlpZiAocG9vbC0+YmFzZS5pcHBzW2ldICE9IE5VTEwpCisJCQlwb29sLT5iYXNlLmlwcHNbaV0tPmZ1bmNzLT5pcHBfZGVzdHJveSgmcG9vbC0+YmFzZS5pcHBzW2ldKTsKKworCQlpZiAocG9vbC0+YmFzZS5odWJwc1tpXSAhPSBOVUxMKSB7CisJCQlrZnJlZShUT19EQ04yMF9IVUJQKHBvb2wtPmJhc2UuaHVicHNbaV0pKTsKKwkJCXBvb2wtPmJhc2UuaHVicHNbaV0gPSBOVUxMOworCQl9CisKKwkJaWYgKHBvb2wtPmJhc2UuaXJxcyAhPSBOVUxMKSB7CisJCQlkYWxfaXJxX3NlcnZpY2VfZGVzdHJveSgmcG9vbC0+YmFzZS5pcnFzKTsKKwkJfQorCX0KKworCWZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnJlc19jYXAtPm51bV9kZGM7IGkrKykgeworCQlpZiAocG9vbC0+YmFzZS5lbmdpbmVzW2ldICE9IE5VTEwpCisJCQlkY2UxMTBfZW5naW5lX2Rlc3Ryb3koJnBvb2wtPmJhc2UuZW5naW5lc1tpXSk7CisJCWlmIChwb29sLT5iYXNlLmh3X2kyY3NbaV0gIT0gTlVMTCkgeworCQkJa2ZyZWUocG9vbC0+YmFzZS5od19pMmNzW2ldKTsKKwkJCXBvb2wtPmJhc2UuaHdfaTJjc1tpXSA9IE5VTEw7CisJCX0KKwkJaWYgKHBvb2wtPmJhc2Uuc3dfaTJjc1tpXSAhPSBOVUxMKSB7CisJCQlrZnJlZShwb29sLT5iYXNlLnN3X2kyY3NbaV0pOworCQkJcG9vbC0+YmFzZS5zd19pMmNzW2ldID0gTlVMTDsKKwkJfQorCX0KKworCWZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnJlc19jYXAtPm51bV9vcHA7IGkrKykgeworCQlpZiAocG9vbC0+YmFzZS5vcHBzW2ldICE9IE5VTEwpCisJCQlwb29sLT5iYXNlLm9wcHNbaV0tPmZ1bmNzLT5vcHBfZGVzdHJveSgmcG9vbC0+YmFzZS5vcHBzW2ldKTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgcG9vbC0+YmFzZS5yZXNfY2FwLT5udW1fdGltaW5nX2dlbmVyYXRvcjsgaSsrKSB7CisJCWlmIChwb29sLT5iYXNlLnRpbWluZ19nZW5lcmF0b3JzW2ldICE9IE5VTEwpCXsKKwkJCWtmcmVlKERDTjEwVEdfRlJPTV9URyhwb29sLT5iYXNlLnRpbWluZ19nZW5lcmF0b3JzW2ldKSk7CisJCQlwb29sLT5iYXNlLnRpbWluZ19nZW5lcmF0b3JzW2ldID0gTlVMTDsKKwkJfQorCX0KKworCWZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnJlc19jYXAtPm51bV9kd2I7IGkrKykgeworCQlpZiAocG9vbC0+YmFzZS5kd2JjW2ldICE9IE5VTEwpIHsKKwkJCWtmcmVlKFRPX0RDTjIwX0RXQkMocG9vbC0+YmFzZS5kd2JjW2ldKSk7CisJCQlwb29sLT5iYXNlLmR3YmNbaV0gPSBOVUxMOworCQl9CisJCWlmIChwb29sLT5iYXNlLm1jaWZfd2JbaV0gIT0gTlVMTCkgeworCQkJa2ZyZWUoVE9fRENOMjBfTU1IVUJCVUIocG9vbC0+YmFzZS5tY2lmX3diW2ldKSk7CisJCQlwb29sLT5iYXNlLm1jaWZfd2JbaV0gPSBOVUxMOworCQl9CisJfQorCisJZm9yIChpID0gMDsgaSA8IHBvb2wtPmJhc2UuYXVkaW9fY291bnQ7IGkrKykgeworCQlpZiAocG9vbC0+YmFzZS5hdWRpb3NbaV0pCisJCQlkY2VfYXVkX2Rlc3Ryb3koJnBvb2wtPmJhc2UuYXVkaW9zW2ldKTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgcG9vbC0+YmFzZS5jbGtfc3JjX2NvdW50OyBpKyspIHsKKwkJaWYgKHBvb2wtPmJhc2UuY2xvY2tfc291cmNlc1tpXSAhPSBOVUxMKSB7CisJCQlkY24yMF9jbG9ja19zb3VyY2VfZGVzdHJveSgmcG9vbC0+YmFzZS5jbG9ja19zb3VyY2VzW2ldKTsKKwkJCXBvb2wtPmJhc2UuY2xvY2tfc291cmNlc1tpXSA9IE5VTEw7CisJCX0KKwl9CisKKwlpZiAocG9vbC0+YmFzZS5kcF9jbG9ja19zb3VyY2UgIT0gTlVMTCkgeworCQlkY24yMF9jbG9ja19zb3VyY2VfZGVzdHJveSgmcG9vbC0+YmFzZS5kcF9jbG9ja19zb3VyY2UpOworCQlwb29sLT5iYXNlLmRwX2Nsb2NrX3NvdXJjZSA9IE5VTEw7CisJfQorCisKKwlpZiAocG9vbC0+YmFzZS5hYm0gIT0gTlVMTCkKKwkJZGNlX2FibV9kZXN0cm95KCZwb29sLT5iYXNlLmFibSk7CisKKwlpZiAocG9vbC0+YmFzZS5kbWN1ICE9IE5VTEwpCisJCWRjZV9kbWN1X2Rlc3Ryb3koJnBvb2wtPmJhc2UuZG1jdSk7CisKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19ETVVCCisJaWYgKHBvb2wtPmJhc2UuZG1jdWIgIT0gTlVMTCkKKwkJZGNuMjFfZG1jdWJfZGVzdHJveSgmcG9vbC0+YmFzZS5kbWN1Yik7CisjZW5kaWYKKworCWlmIChwb29sLT5iYXNlLmRjY2cgIT0gTlVMTCkKKwkJZGNuX2RjY2dfZGVzdHJveSgmcG9vbC0+YmFzZS5kY2NnKTsKKworCWlmIChwb29sLT5iYXNlLnBwX3NtdSAhPSBOVUxMKQorCQlkY24yMF9wcF9zbXVfZGVzdHJveSgmcG9vbC0+YmFzZS5wcF9zbXUpOworfQorCisKK3N0YXRpYyB2b2lkIGNhbGN1bGF0ZV93bV9zZXRfZm9yX3ZsZXZlbCgKKwkJaW50IHZsZXZlbCwKKwkJc3RydWN0IHdtX3JhbmdlX3RhYmxlX2VudHJ5ICp0YWJsZV9lbnRyeSwKKwkJc3RydWN0IGRjbl93YXRlcm1hcmtzICp3bV9zZXQsCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICpkbWwsCisJCWRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywKKwkJaW50IHBpcGVfY250KQoreworCWRvdWJsZSBkcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X2NhY2hlZCA9IGRtbC0+c29jLmRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3lfdXM7CisKKwlBU1NFUlQodmxldmVsIDwgZG1sLT5zb2MubnVtX3N0YXRlcyk7CisJLyogb25seSBwaXBlIDAgaXMgcmVhZCBmb3Igdm9sdGFnZSBhbmQgZGNmL3NvYyBjbG9ja3MgKi8KKwlwaXBlc1swXS5jbGtzX2NmZy52b2x0YWdlID0gdmxldmVsOworCXBpcGVzWzBdLmNsa3NfY2ZnLmRjZmNsa19taHogPSBkbWwtPnNvYy5jbG9ja19saW1pdHNbdmxldmVsXS5kY2ZjbGtfbWh6OworCXBpcGVzWzBdLmNsa3NfY2ZnLnNvY2Nsa19taHogPSBkbWwtPnNvYy5jbG9ja19saW1pdHNbdmxldmVsXS5zb2NjbGtfbWh6OworCisJZG1sLT5zb2MuZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV91cyA9IHRhYmxlX2VudHJ5LT5wc3RhdGVfbGF0ZW5jeV91czsKKworCXdtX3NldC0+dXJnZW50X25zID0gZ2V0X3dtX3VyZ2VudChkbWwsIHBpcGVzLCBwaXBlX2NudCkgKiAxMDAwOworCXdtX3NldC0+Y3N0YXRlX3BzdGF0ZS5jc3RhdGVfZW50ZXJfcGx1c19leGl0X25zID0gZ2V0X3dtX3N0dXR0ZXJfZW50ZXJfZXhpdChkbWwsIHBpcGVzLCBwaXBlX2NudCkgKiAxMDAwOworCXdtX3NldC0+Y3N0YXRlX3BzdGF0ZS5jc3RhdGVfZXhpdF9ucyA9IGdldF93bV9zdHV0dGVyX2V4aXQoZG1sLCBwaXBlcywgcGlwZV9jbnQpICogMTAwMDsKKwl3bV9zZXQtPmNzdGF0ZV9wc3RhdGUucHN0YXRlX2NoYW5nZV9ucyA9IGdldF93bV9kcmFtX2Nsb2NrX2NoYW5nZShkbWwsIHBpcGVzLCBwaXBlX2NudCkgKiAxMDAwOworCXdtX3NldC0+cHRlX21ldGFfdXJnZW50X25zID0gZ2V0X3dtX21lbW9yeV90cmlwKGRtbCwgcGlwZXMsIHBpcGVfY250KSAqIDEwMDA7CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisJd21fc2V0LT5mcmFjX3VyZ19id19ub20gPSBnZXRfZnJhY3Rpb25fb2ZfdXJnZW50X2JhbmR3aWR0aChkbWwsIHBpcGVzLCBwaXBlX2NudCkgKiAxMDAwOworCXdtX3NldC0+ZnJhY191cmdfYndfZmxpcCA9IGdldF9mcmFjdGlvbl9vZl91cmdlbnRfYmFuZHdpZHRoX2ltbV9mbGlwKGRtbCwgcGlwZXMsIHBpcGVfY250KSAqIDEwMDA7CisjZW5kaWYKKwlkbWwtPnNvYy5kcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzID0gZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV9jYWNoZWQ7CisKK30KKwordm9pZCBkY24yMV9jYWxjdWxhdGVfd20oCisJCXN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKKwkJZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAorCQlpbnQgKm91dF9waXBlX2NudCwKKwkJaW50ICpwaXBlX3NwbGl0X2Zyb20sCisJCWludCB2bGV2ZWxfcmVxKQoreworCWludCBwaXBlX2NudCwgaSwgcGlwZV9pZHg7CisJaW50IHZsZXZlbCwgdmxldmVsX21heDsKKwlzdHJ1Y3Qgd21fcmFuZ2VfdGFibGVfZW50cnkgKnRhYmxlX2VudHJ5OworCXN0cnVjdCBjbGtfYndfcGFyYW1zICpid19wYXJhbXMgPSBkYy0+Y2xrX21nci0+YndfcGFyYW1zOworCisJQVNTRVJUKGJ3X3BhcmFtcyk7CisKKwlmb3IgKGkgPSAwLCBwaXBlX2lkeCA9IDAsIHBpcGVfY250ID0gMDsgaSA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7CisJCQlpZiAoIWNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV0uc3RyZWFtKQorCQkJCWNvbnRpbnVlOworCisJCQlwaXBlc1twaXBlX2NudF0uY2xrc19jZmcucmVmY2xrX21oeiA9IGRjLT5yZXNfcG9vbC0+cmVmX2Nsb2Nrcy5kY2h1Yl9yZWZfY2xvY2tfaW5LaHogLyAxMDAwLjA7CisJCQlwaXBlc1twaXBlX2NudF0uY2xrc19jZmcuZGlzcGNsa19taHogPSBjb250ZXh0LT5id19jdHguZG1sLnZiYS5SZXF1aXJlZERJU1BDTEtbdmxldmVsX3JlcV1bY29udGV4dC0+YndfY3R4LmRtbC52YmEubWF4TXBjQ29tYl07CisKKwkJCWlmIChwaXBlX3NwbGl0X2Zyb21baV0gPCAwKSB7CisJCQkJcGlwZXNbcGlwZV9jbnRdLmNsa3NfY2ZnLmRwcGNsa19taHogPQorCQkJCQkJY29udGV4dC0+YndfY3R4LmRtbC52YmEuUmVxdWlyZWREUFBDTEtbdmxldmVsX3JlcV1bY29udGV4dC0+YndfY3R4LmRtbC52YmEubWF4TXBjQ29tYl1bcGlwZV9pZHhdOworCQkJCWlmIChjb250ZXh0LT5id19jdHguZG1sLnZiYS5CbGVuZGluZ0FuZFRpbWluZ1twaXBlX2lkeF0gPT0gcGlwZV9pZHgpCisJCQkJCXBpcGVzW3BpcGVfY250XS5waXBlLmRlc3Qub2RtX2NvbWJpbmUgPQorCQkJCQkJCWNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLk9ETUNvbWJpbmVFbmFibGVQZXJTdGF0ZVt2bGV2ZWxfcmVxXVtwaXBlX2lkeF07CisJCQkJZWxzZQorCQkJCQlwaXBlc1twaXBlX2NudF0ucGlwZS5kZXN0Lm9kbV9jb21iaW5lID0gMDsKKwkJCQlwaXBlX2lkeCsrOworCQkJfSBlbHNlIHsKKwkJCQlwaXBlc1twaXBlX2NudF0uY2xrc19jZmcuZHBwY2xrX21oeiA9CisJCQkJCQljb250ZXh0LT5id19jdHguZG1sLnZiYS5SZXF1aXJlZERQUENMS1t2bGV2ZWxfcmVxXVtjb250ZXh0LT5id19jdHguZG1sLnZiYS5tYXhNcGNDb21iXVtwaXBlX3NwbGl0X2Zyb21baV1dOworCQkJCWlmIChjb250ZXh0LT5id19jdHguZG1sLnZiYS5CbGVuZGluZ0FuZFRpbWluZ1twaXBlX3NwbGl0X2Zyb21baV1dID09IHBpcGVfc3BsaXRfZnJvbVtpXSkKKwkJCQkJcGlwZXNbcGlwZV9jbnRdLnBpcGUuZGVzdC5vZG1fY29tYmluZSA9CisJCQkJCQkJY29udGV4dC0+YndfY3R4LmRtbC52YmEuT0RNQ29tYmluZUVuYWJsZVBlclN0YXRlW3ZsZXZlbF9yZXFdW3BpcGVfc3BsaXRfZnJvbVtpXV07CisJCQkJZWxzZQorCQkJCQlwaXBlc1twaXBlX2NudF0ucGlwZS5kZXN0Lm9kbV9jb21iaW5lID0gMDsKKwkJCX0KKwkJCXBpcGVfY250Kys7CisJfQorCisJaWYgKHBpcGVfY250ICE9IHBpcGVfaWR4KSB7CisJCWlmIChkYy0+cmVzX3Bvb2wtPmZ1bmNzLT5wb3B1bGF0ZV9kbWxfcGlwZXMpCisJCQlwaXBlX2NudCA9IGRjLT5yZXNfcG9vbC0+ZnVuY3MtPnBvcHVsYXRlX2RtbF9waXBlcyhkYywKKwkJCQkmY29udGV4dC0+cmVzX2N0eCwgcGlwZXMpOworCQllbHNlCisJCQlwaXBlX2NudCA9IGRjbjIwX3BvcHVsYXRlX2RtbF9waXBlc19mcm9tX2NvbnRleHQoZGMsCisJCQkJJmNvbnRleHQtPnJlc19jdHgsIHBpcGVzKTsKKwl9CisKKwkqb3V0X3BpcGVfY250ID0gcGlwZV9jbnQ7CisKKwl2bGV2ZWxfbWF4ID0gYndfcGFyYW1zLT5jbGtfdGFibGUubnVtX2VudHJpZXMgLSAxOworCisKKwkvKiBXTSBTZXQgRCAqLworCXRhYmxlX2VudHJ5ID0gJmJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tXTV9EXTsKKwlpZiAodGFibGVfZW50cnktPndtX3R5cGUgPT0gV01fVFlQRV9SRVRSQUlOSU5HKQorCQl2bGV2ZWwgPSAwOworCWVsc2UKKwkJdmxldmVsID0gdmxldmVsX21heDsKKwljYWxjdWxhdGVfd21fc2V0X2Zvcl92bGV2ZWwodmxldmVsLCB0YWJsZV9lbnRyeSwgJmNvbnRleHQtPmJ3X2N0eC5idy5kY24ud2F0ZXJtYXJrcy5kLAorCQkJCQkJJmNvbnRleHQtPmJ3X2N0eC5kbWwsIHBpcGVzLCBwaXBlX2NudCk7CisJLyogV00gU2V0IEMgKi8KKwl0YWJsZV9lbnRyeSA9ICZid19wYXJhbXMtPndtX3RhYmxlLmVudHJpZXNbV01fQ107CisJdmxldmVsID0gTUlOKE1BWCh2bGV2ZWxfcmVxLCAyKSwgdmxldmVsX21heCk7CisJY2FsY3VsYXRlX3dtX3NldF9mb3JfdmxldmVsKHZsZXZlbCwgdGFibGVfZW50cnksICZjb250ZXh0LT5id19jdHguYncuZGNuLndhdGVybWFya3MuYywKKwkJCQkJCSZjb250ZXh0LT5id19jdHguZG1sLCBwaXBlcywgcGlwZV9jbnQpOworCS8qIFdNIFNldCBCICovCisJdGFibGVfZW50cnkgPSAmYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW1dNX0JdOworCXZsZXZlbCA9IE1JTihNQVgodmxldmVsX3JlcSwgMSksIHZsZXZlbF9tYXgpOworCWNhbGN1bGF0ZV93bV9zZXRfZm9yX3ZsZXZlbCh2bGV2ZWwsIHRhYmxlX2VudHJ5LCAmY29udGV4dC0+YndfY3R4LmJ3LmRjbi53YXRlcm1hcmtzLmIsCisJCQkJCQkmY29udGV4dC0+YndfY3R4LmRtbCwgcGlwZXMsIHBpcGVfY250KTsKKworCS8qIFdNIFNldCBBICovCisJdGFibGVfZW50cnkgPSAmYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW1dNX0FdOworCXZsZXZlbCA9IE1JTih2bGV2ZWxfcmVxLCB2bGV2ZWxfbWF4KTsKKwljYWxjdWxhdGVfd21fc2V0X2Zvcl92bGV2ZWwodmxldmVsLCB0YWJsZV9lbnRyeSwgJmNvbnRleHQtPmJ3X2N0eC5idy5kY24ud2F0ZXJtYXJrcy5hLAorCQkJCQkJJmNvbnRleHQtPmJ3X2N0eC5kbWwsIHBpcGVzLCBwaXBlX2NudCk7Cit9CisKKworYm9vbCBkY24yMV92YWxpZGF0ZV9iYW5kd2lkdGgoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAorCQlib29sIGZhc3RfdmFsaWRhdGUpCit7CisJYm9vbCBvdXQgPSBmYWxzZTsKKworCUJXX1ZBTF9UUkFDRV9TRVRVUCgpOworCisJaW50IHZsZXZlbCA9IDA7CisJaW50IHBpcGVfc3BsaXRfZnJvbVtNQVhfUElQRVNdOworCWludCBwaXBlX2NudCA9IDA7CisJZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzID0ga3phbGxvYyhkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQgKiBzaXplb2YoZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QpLCBHRlBfS0VSTkVMKTsKKwlEQ19MT0dHRVJfSU5JVChkYy0+Y3R4LT5sb2dnZXIpOworCisJQldfVkFMX1RSQUNFX0NPVU5UKCk7CisKKwlvdXQgPSBkY24yMF9mYXN0X3ZhbGlkYXRlX2J3KGRjLCBjb250ZXh0LCBwaXBlcywgJnBpcGVfY250LCBwaXBlX3NwbGl0X2Zyb20sICZ2bGV2ZWwpOworCisJaWYgKHBpcGVfY250ID09IDApCisJCWdvdG8gdmFsaWRhdGVfb3V0OworCisJaWYgKCFvdXQpCisJCWdvdG8gdmFsaWRhdGVfZmFpbDsKKworCUJXX1ZBTF9UUkFDRV9FTkRfVk9MVEFHRV9MRVZFTCgpOworCisJaWYgKGZhc3RfdmFsaWRhdGUpIHsKKwkJQldfVkFMX1RSQUNFX1NLSVAoZmFzdCk7CisJCWdvdG8gdmFsaWRhdGVfb3V0OworCX0KKworCWRjbjIxX2NhbGN1bGF0ZV93bShkYywgY29udGV4dCwgcGlwZXMsICZwaXBlX2NudCwgcGlwZV9zcGxpdF9mcm9tLCB2bGV2ZWwpOworCWRjbjIwX2NhbGN1bGF0ZV9kbGdfcGFyYW1zKGRjLCBjb250ZXh0LCBwaXBlcywgcGlwZV9jbnQsIHZsZXZlbCk7CisKKwlCV19WQUxfVFJBQ0VfRU5EX1dBVEVSTUFSS1MoKTsKKworCWdvdG8gdmFsaWRhdGVfb3V0OworCit2YWxpZGF0ZV9mYWlsOgorCURDX0xPR19XQVJOSU5HKCJNb2RlIFZhbGlkYXRpb24gV2FybmluZzogJXMgZmFpbGVkIHZhbGlkYXRpb24uXG4iLAorCQlkbWxfZ2V0X3N0YXR1c19tZXNzYWdlKGNvbnRleHQtPmJ3X2N0eC5kbWwudmJhLlZhbGlkYXRpb25TdGF0dXNbY29udGV4dC0+YndfY3R4LmRtbC52YmEuc29jLm51bV9zdGF0ZXNdKSk7CisKKwlCV19WQUxfVFJBQ0VfU0tJUChmYWlsKTsKKwlvdXQgPSBmYWxzZTsKKwordmFsaWRhdGVfb3V0OgorCWtmcmVlKHBpcGVzKTsKKworCUJXX1ZBTF9UUkFDRV9GSU5JU0goKTsKKworCXJldHVybiBvdXQ7Cit9CitzdGF0aWMgdm9pZCBkY24yMV9kZXN0cm95X3Jlc291cmNlX3Bvb2woc3RydWN0IHJlc291cmNlX3Bvb2wgKipwb29sKQoreworCXN0cnVjdCBkY24yMV9yZXNvdXJjZV9wb29sICpkY24yMV9wb29sID0gVE9fRENOMjFfUkVTX1BPT0woKnBvb2wpOworCisJZGVzdHJ1Y3QoZGNuMjFfcG9vbCk7CisJa2ZyZWUoZGNuMjFfcG9vbCk7CisJKnBvb2wgPSBOVUxMOworfQorCitzdGF0aWMgc3RydWN0IGNsb2NrX3NvdXJjZSAqZGNuMjFfY2xvY2tfc291cmNlX2NyZWF0ZSgKKwkJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwkJc3RydWN0IGRjX2Jpb3MgKmJpb3MsCisJCWVudW0gY2xvY2tfc291cmNlX2lkIGlkLAorCQljb25zdCBzdHJ1Y3QgZGNlMTEwX2Nsa19zcmNfcmVncyAqcmVncywKKwkJYm9vbCBkcF9jbGtfc3JjKQoreworCXN0cnVjdCBkY2UxMTBfY2xrX3NyYyAqY2xrX3NyYyA9CisJCWt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkY2UxMTBfY2xrX3NyYyksIEdGUF9LRVJORUwpOworCisJaWYgKCFjbGtfc3JjKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChkY24yMF9jbGtfc3JjX2NvbnN0cnVjdChjbGtfc3JjLCBjdHgsIGJpb3MsIGlkLAorCQkJcmVncywgJmNzX3NoaWZ0LCAmY3NfbWFzaykpIHsKKwkJY2xrX3NyYy0+YmFzZS5kcF9jbGtfc3JjID0gZHBfY2xrX3NyYzsKKwkJcmV0dXJuICZjbGtfc3JjLT5iYXNlOworCX0KKworCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHVicCAqZGNuMjFfaHVicF9jcmVhdGUoCisJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwl1aW50MzJfdCBpbnN0KQoreworCXN0cnVjdCBkY24yMV9odWJwICpodWJwMjEgPQorCQlremFsbG9jKHNpemVvZihzdHJ1Y3QgZGNuMjFfaHVicCksIEdGUF9LRVJORUwpOworCisJaWYgKCFodWJwMjEpCisJCXJldHVybiBOVUxMOworCisJaWYgKGh1YnAyMV9jb25zdHJ1Y3QoaHVicDIxLCBjdHgsIGluc3QsCisJCQkmaHVicF9yZWdzW2luc3RdLCAmaHVicF9zaGlmdCwgJmh1YnBfbWFzaykpCisJCXJldHVybiAmaHVicDIxLT5iYXNlOworCisJQlJFQUtfVE9fREVCVUdHRVIoKTsKKwlrZnJlZShodWJwMjEpOworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgc3RydWN0IGh1YmJ1YiAqZGNuMjFfaHViYnViX2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQoreworCWludCBpOworCisJc3RydWN0IGRjbjIwX2h1YmJ1YiAqaHViYnViID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRjbjIwX2h1YmJ1YiksCisJCQkJCSAgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIWh1YmJ1YikKKwkJcmV0dXJuIE5VTEw7CisKKwlodWJidWIyMV9jb25zdHJ1Y3QoaHViYnViLCBjdHgsCisJCQkmaHViYnViX3JlZywKKwkJCSZodWJidWJfc2hpZnQsCisJCQkmaHViYnViX21hc2spOworCisJZm9yIChpID0gMDsgaSA8IHJlc19jYXBfcm4ubnVtX3ZtaWQ7IGkrKykgeworCQlzdHJ1Y3QgZGNuMjBfdm1pZCAqdm1pZCA9ICZodWJidWItPnZtaWRbaV07CisKKwkJdm1pZC0+Y3R4ID0gY3R4OworCisJCXZtaWQtPnJlZ3MgPSAmdm1pZF9yZWdzW2ldOworCQl2bWlkLT5zaGlmdHMgPSAmdm1pZF9zaGlmdHM7CisJCXZtaWQtPm1hc2tzID0gJnZtaWRfbWFza3M7CisJfQorCisJcmV0dXJuICZodWJidWItPmJhc2U7Cit9CisKK3N0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpkY24yMV9vcHBfY3JlYXRlKAorCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGluc3QpCit7CisJc3RydWN0IGRjbjIwX29wcCAqb3BwID0KKwkJa3phbGxvYyhzaXplb2Yoc3RydWN0IGRjbjIwX29wcCksIEdGUF9LRVJORUwpOworCisJaWYgKCFvcHApIHsKKwkJQlJFQUtfVE9fREVCVUdHRVIoKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJZGNuMjBfb3BwX2NvbnN0cnVjdChvcHAsIGN0eCwgaW5zdCwKKwkJCSZvcHBfcmVnc1tpbnN0XSwgJm9wcF9zaGlmdCwgJm9wcF9tYXNrKTsKKwlyZXR1cm4gJm9wcC0+YmFzZTsKK30KKworc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKmRjbjIxX3RpbWluZ19nZW5lcmF0b3JfY3JlYXRlKAorCQlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAorCQl1aW50MzJfdCBpbnN0YW5jZSkKK3sKKwlzdHJ1Y3Qgb3B0YyAqdGduMTAgPQorCQlremFsbG9jKHNpemVvZihzdHJ1Y3Qgb3B0YyksIEdGUF9LRVJORUwpOworCisJaWYgKCF0Z24xMCkKKwkJcmV0dXJuIE5VTEw7CisKKwl0Z24xMC0+YmFzZS5pbnN0ID0gaW5zdGFuY2U7CisJdGduMTAtPmJhc2UuY3R4ID0gY3R4OworCisJdGduMTAtPnRnX3JlZ3MgPSAmdGdfcmVnc1tpbnN0YW5jZV07CisJdGduMTAtPnRnX3NoaWZ0ID0gJnRnX3NoaWZ0OworCXRnbjEwLT50Z19tYXNrID0gJnRnX21hc2s7CisKKwlkY24yMF90aW1pbmdfZ2VuZXJhdG9yX2luaXQodGduMTApOworCisJcmV0dXJuICZ0Z24xMC0+YmFzZTsKK30KKworc3RydWN0IG1wYyAqZGNuMjFfbXBjX2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQoreworCXN0cnVjdCBkY24yMF9tcGMgKm1wYzIwID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRjbjIwX21wYyksCisJCQkJCSAgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIW1wYzIwKQorCQlyZXR1cm4gTlVMTDsKKworCWRjbjIwX21wY19jb25zdHJ1Y3QobXBjMjAsIGN0eCwKKwkJCSZtcGNfcmVncywKKwkJCSZtcGNfc2hpZnQsCisJCQkmbXBjX21hc2ssCisJCQk2KTsKKworCXJldHVybiAmbXBjMjAtPmJhc2U7Cit9CisKK3N0YXRpYyB2b2lkIHJlYWRfZGNlX3N0cmFwcygKKwlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAorCXN0cnVjdCByZXNvdXJjZV9zdHJhcHMgKnN0cmFwcykKK3sKKwlnZW5lcmljX3JlZ19nZXQoY3R4LCBtbURDX1BJTlNUUkFQUyArIEJBU0UobW1EQ19QSU5TVFJBUFNfQkFTRV9JRFgpLAorCQlGTihEQ19QSU5TVFJBUFMsIERDX1BJTlNUUkFQU19BVURJTyksICZzdHJhcHMtPmRjX3BpbnN0cmFwc19hdWRpbyk7CisKK30KKworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisKK3N0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkY24yMV9kc2NfY3JlYXRlKAorCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGluc3QpCit7CisJc3RydWN0IGRjbjIwX2RzYyAqZHNjID0KKwkJa3phbGxvYyhzaXplb2Yoc3RydWN0IGRjbjIwX2RzYyksIEdGUF9LRVJORUwpOworCisJaWYgKCFkc2MpIHsKKwkJQlJFQUtfVE9fREVCVUdHRVIoKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJZHNjMl9jb25zdHJ1Y3QoZHNjLCBjdHgsIGluc3QsICZkc2NfcmVnc1tpbnN0XSwgJmRzY19zaGlmdCwgJmRzY19tYXNrKTsKKwlyZXR1cm4gJmRzYy0+YmFzZTsKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZCB1cGRhdGVfYndfYm91bmRpbmdfYm94KHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBjbGtfYndfcGFyYW1zICpid19wYXJhbXMpCit7CisJc3RydWN0IGRjbjIxX3Jlc291cmNlX3Bvb2wgKnBvb2wgPSBUT19EQ04yMV9SRVNfUE9PTChkYy0+cmVzX3Bvb2wpOworCXN0cnVjdCBjbGtfbGltaXRfdGFibGUgKmNsa190YWJsZSA9ICZid19wYXJhbXMtPmNsa190YWJsZTsKKwlpbnQgaTsKKworCWRjbjJfMV9pcC5tYXhfbnVtX290ZyA9IHBvb2wtPmJhc2UucmVzX2NhcC0+bnVtX3RpbWluZ19nZW5lcmF0b3I7CisJZGNuMl8xX2lwLm1heF9udW1fZHBwID0gcG9vbC0+YmFzZS5waXBlX2NvdW50OworCWRjbjJfMV9zb2MubnVtX2NoYW5zID0gYndfcGFyYW1zLT5udW1fY2hhbm5lbHM7CisJZGNuMl8xX3NvYy5udW1fc3RhdGVzID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBjbGtfdGFibGUtPm51bV9lbnRyaWVzOyBpKyspIHsKKworCQlkY24yXzFfc29jLmNsb2NrX2xpbWl0c1tpXS5zdGF0ZSA9IGk7CisJCWRjbjJfMV9zb2MuY2xvY2tfbGltaXRzW2ldLmRjZmNsa19taHogPSBjbGtfdGFibGUtPmVudHJpZXNbaV0uZGNmY2xrX21oejsKKwkJZGNuMl8xX3NvYy5jbG9ja19saW1pdHNbaV0uZmFicmljY2xrX21oeiA9IGNsa190YWJsZS0+ZW50cmllc1tpXS5mY2xrX21oejsKKwkJZGNuMl8xX3NvYy5jbG9ja19saW1pdHNbaV0uc29jY2xrX21oeiA9IGNsa190YWJsZS0+ZW50cmllc1tpXS5zb2NjbGtfbWh6OworCQkvKiBUaGlzIGlzIHByb2JhYmx5IHdyb25nLCBUT0RPOiBmaW5kIGNvcnJlY3QgY2FsY3VsYXRpb24gKi8KKwkJZGNuMl8xX3NvYy5jbG9ja19saW1pdHNbaV0uZHJhbV9zcGVlZF9tdHMgPSBjbGtfdGFibGUtPmVudHJpZXNbaV0ubWVtY2xrX21oeiAqIDE2IC8gMTAwMDsKKwkJZGNuMl8xX3NvYy5udW1fc3RhdGVzKys7CisJfQorfQorCisvKiBUZW1wb3JhcnkgUGxhY2UgaG9sZGVyIHVudGlsIHdlIGNhbiBnZXQgdGhlbSBmcm9tIGZ1c2UgKi8KK3N0YXRpYyBzdHJ1Y3QgZHBtX2Nsb2NrcyBkdW1teV9jbG9ja3MgPSB7CisJCS5EY2ZDbG9ja3MgPSB7CisJCQkJey5GcmVxID0gNDAwLCAuVm9sID0gMX0sCisJCQkJey5GcmVxID0gNDgzLCAuVm9sID0gMX0sCisJCQkJey5GcmVxID0gNjAyLCAuVm9sID0gMX0sCisJCQkJey5GcmVxID0gNzM4LCAuVm9sID0gMX0gfSwKKwkJLlNvY0Nsb2NrcyA9IHsKKwkJCQl7LkZyZXEgPSAzMDAsIC5Wb2wgPSAxfSwKKwkJCQl7LkZyZXEgPSA0MDAsIC5Wb2wgPSAxfSwKKwkJCQl7LkZyZXEgPSA0MDAsIC5Wb2wgPSAxfSwKKwkJCQl7LkZyZXEgPSA0MDAsIC5Wb2wgPSAxfSB9LAorCQkuRkNsb2NrcyA9IHsKKwkJCQl7LkZyZXEgPSA0MDAsIC5Wb2wgPSAxfSwKKwkJCQl7LkZyZXEgPSA4MDAsIC5Wb2wgPSAxfSwKKwkJCQl7LkZyZXEgPSAxMDY3LCAuVm9sID0gMX0sCisJCQkJey5GcmVxID0gMTYwMCwgLlZvbCA9IDF9IH0sCisJCS5NZW1DbG9ja3MgPSB7CisJCQkJey5GcmVxID0gODAwLCAuVm9sID0gMX0sCisJCQkJey5GcmVxID0gMTYwMCwgLlZvbCA9IDF9LAorCQkJCXsuRnJlcSA9IDEwNjcsIC5Wb2wgPSAxfSwKKwkJCQl7LkZyZXEgPSAxNjAwLCAuVm9sID0gMX0gfSwKKworfTsKKworZW51bSBwcF9zbXVfc3RhdHVzIGR1bW15X3NldF93bV9yYW5nZXMoc3RydWN0IHBwX3NtdSAqcHAsCisJCXN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vfc2V0cyAqcmFuZ2VzKQoreworCXJldHVybiBQUF9TTVVfUkVTVUxUX09LOworfQorCitlbnVtIHBwX3NtdV9zdGF0dXMgZHVtbXlfZ2V0X2RwbV9jbG9ja190YWJsZShzdHJ1Y3QgcHBfc211ICpwcCwKKwkJc3RydWN0IGRwbV9jbG9ja3MgKmNsb2NrX3RhYmxlKQoreworCSpjbG9ja190YWJsZSA9IGR1bW15X2Nsb2NrczsKKwlyZXR1cm4gUFBfU01VX1JFU1VMVF9PSzsKK30KKworc3RydWN0IHBwX3NtdV9mdW5jcyAqZGNuMjFfcHBfc211X2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQoreworCXN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSA9IGt6YWxsb2Moc2l6ZW9mKCpwcF9zbXUpLCBHRlBfS0VSTkVMKTsKKworCXBwX3NtdS0+Y3R4LnZlciA9IFBQX1NNVV9WRVJfUk47CisKKwlwcF9zbXUtPnJuX2Z1bmNzLmdldF9kcG1fY2xvY2tfdGFibGUgPSBkdW1teV9nZXRfZHBtX2Nsb2NrX3RhYmxlOworCXBwX3NtdS0+cm5fZnVuY3Muc2V0X3dtX3JhbmdlcyA9IGR1bW15X3NldF93bV9yYW5nZXM7CisKKwlyZXR1cm4gcHBfc211OworfQorCit2b2lkIGRjbjIxX3BwX3NtdV9kZXN0cm95KHN0cnVjdCBwcF9zbXVfZnVuY3MgKipwcF9zbXUpCit7CisJaWYgKHBwX3NtdSAmJiAqcHBfc211KSB7CisJCWtmcmVlKCpwcF9zbXUpOworCQkqcHBfc211ID0gTlVMTDsKKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgYXVkaW8gKmRjbjIxX2NyZWF0ZV9hdWRpbygKKwkJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgdW5zaWduZWQgaW50IGluc3QpCit7CisJcmV0dXJuIGRjZV9hdWRpb19jcmVhdGUoY3R4LCBpbnN0LAorCQkJJmF1ZGlvX3JlZ3NbaW5zdF0sICZhdWRpb19zaGlmdCwgJmF1ZGlvX21hc2spOworfQorCitzdGF0aWMgc3RydWN0IGRjX2NhcF9mdW5jcyBjYXBfZnVuY3MgPSB7CisJLmdldF9kY2NfY29tcHJlc3Npb25fY2FwID0gZGNuMjBfZ2V0X2RjY19jb21wcmVzc2lvbl9jYXAKK307CisKK3N0cnVjdCBzdHJlYW1fZW5jb2RlciAqZGNuMjFfc3RyZWFtX2VuY29kZXJfY3JlYXRlKAorCWVudW0gZW5naW5lX2lkIGVuZ19pZCwKKwlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQoreworCXN0cnVjdCBkY24xMF9zdHJlYW1fZW5jb2RlciAqZW5jMSA9CisJCWt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkY24xMF9zdHJlYW1fZW5jb2RlciksIEdGUF9LRVJORUwpOworCisJaWYgKCFlbmMxKQorCQlyZXR1cm4gTlVMTDsKKworCWRjbjIwX3N0cmVhbV9lbmNvZGVyX2NvbnN0cnVjdChlbmMxLCBjdHgsIGN0eC0+ZGNfYmlvcywgZW5nX2lkLAorCQkJCQkmc3RyZWFtX2VuY19yZWdzW2VuZ19pZF0sCisJCQkJCSZzZV9zaGlmdCwgJnNlX21hc2spOworCisJcmV0dXJuICZlbmMxLT5iYXNlOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9od3NlcV9yZWdpc3RlcnMgaHdzZXFfcmVnID0geworCQlIV1NFUV9EQ04yMV9SRUdfTElTVCgpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9od3NlcV9zaGlmdCBod3NlcV9zaGlmdCA9IHsKKwkJSFdTRVFfRENOMjFfTUFTS19TSF9MSVNUKF9fU0hJRlQpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRjZV9od3NlcV9tYXNrIGh3c2VxX21hc2sgPSB7CisJCUhXU0VRX0RDTjIxX01BU0tfU0hfTElTVChfTUFTSykKK307CisKK3N0YXRpYyBzdHJ1Y3QgZGNlX2h3c2VxICpkY24yMV9od3NlcV9jcmVhdGUoCisJc3RydWN0IGRjX2NvbnRleHQgKmN0eCkKK3sKKwlzdHJ1Y3QgZGNlX2h3c2VxICpod3MgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZGNlX2h3c2VxKSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoaHdzKSB7CisJCWh3cy0+Y3R4ID0gY3R4OworCQlod3MtPnJlZ3MgPSAmaHdzZXFfcmVnOworCQlod3MtPnNoaWZ0cyA9ICZod3NlcV9zaGlmdDsKKwkJaHdzLT5tYXNrcyA9ICZod3NlcV9tYXNrOworCX0KKwlyZXR1cm4gaHdzOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlc291cmNlX2NyZWF0ZV9mdW5jcyByZXNfY3JlYXRlX2Z1bmNzID0geworCS5yZWFkX2RjZV9zdHJhcHMgPSByZWFkX2RjZV9zdHJhcHMsCisJLmNyZWF0ZV9hdWRpbyA9IGRjbjIxX2NyZWF0ZV9hdWRpbywKKwkuY3JlYXRlX3N0cmVhbV9lbmNvZGVyID0gZGNuMjFfc3RyZWFtX2VuY29kZXJfY3JlYXRlLAorCS5jcmVhdGVfaHdzZXEgPSBkY24yMV9od3NlcV9jcmVhdGUsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlc291cmNlX2NyZWF0ZV9mdW5jcyByZXNfY3JlYXRlX21heGltdXNfZnVuY3MgPSB7CisJLnJlYWRfZGNlX3N0cmFwcyA9IE5VTEwsCisJLmNyZWF0ZV9hdWRpbyA9IE5VTEwsCisJLmNyZWF0ZV9zdHJlYW1fZW5jb2RlciA9IE5VTEwsCisJLmNyZWF0ZV9od3NlcSA9IGRjbjIxX2h3c2VxX2NyZWF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2VfZnVuY3MgZGNuMjFfcmVzX3Bvb2xfZnVuY3MgPSB7CisJLmRlc3Ryb3kgPSBkY24yMV9kZXN0cm95X3Jlc291cmNlX3Bvb2wsCisJLmxpbmtfZW5jX2NyZWF0ZSA9IGRjbjIwX2xpbmtfZW5jb2Rlcl9jcmVhdGUsCisJLnZhbGlkYXRlX2JhbmR3aWR0aCA9IGRjbjIxX3ZhbGlkYXRlX2JhbmR3aWR0aCwKKwkuYWRkX3N0cmVhbV90b19jdHggPSBkY24yMF9hZGRfc3RyZWFtX3RvX2N0eCwKKwkucmVtb3ZlX3N0cmVhbV9mcm9tX2N0eCA9IGRjbjIwX3JlbW92ZV9zdHJlYW1fZnJvbV9jdHgsCisJLmFjcXVpcmVfaWRsZV9waXBlX2Zvcl9sYXllciA9IGRjbjIwX2FjcXVpcmVfaWRsZV9waXBlX2Zvcl9sYXllciwKKwkucG9wdWxhdGVfZG1sX3dyaXRlYmFja19mcm9tX2NvbnRleHQgPSBkY24yMF9wb3B1bGF0ZV9kbWxfd3JpdGViYWNrX2Zyb21fY29udGV4dCwKKwkuZ2V0X2RlZmF1bHRfc3dpenpsZV9tb2RlID0gZGNuMjBfZ2V0X2RlZmF1bHRfc3dpenpsZV9tb2RlLAorCS5zZXRfbWNpZl9hcmJfcGFyYW1zID0gZGNuMjBfc2V0X21jaWZfYXJiX3BhcmFtcywKKwkuZmluZF9maXJzdF9mcmVlX21hdGNoX3N0cmVhbV9lbmNfZm9yX2xpbmsgPSBkY24xMF9maW5kX2ZpcnN0X2ZyZWVfbWF0Y2hfc3RyZWFtX2VuY19mb3JfbGluaywKKwkudXBkYXRlX2J3X2JvdW5kaW5nX2JveCA9IHVwZGF0ZV9id19ib3VuZGluZ19ib3gKK307CisKK3N0YXRpYyBib29sIGNvbnN0cnVjdCgKKwl1aW50OF90IG51bV92aXJ0dWFsX2xpbmtzLAorCXN0cnVjdCBkYyAqZGMsCisJc3RydWN0IGRjbjIxX3Jlc291cmNlX3Bvb2wgKnBvb2wpCit7CisJaW50IGk7CisJc3RydWN0IGRjX2NvbnRleHQgKmN0eCA9IGRjLT5jdHg7CisJc3RydWN0IGlycV9zZXJ2aWNlX2luaXRfZGF0YSBpbml0X2RhdGE7CisKKwljdHgtPmRjX2Jpb3MtPnJlZ3MgPSAmYmlvc19yZWdzOworCisJcG9vbC0+YmFzZS5yZXNfY2FwID0gJnJlc19jYXBfcm47CisjaWZkZWYgRElBR1NfQlVJTEQKKwlpZiAoSVNfRlBHQV9NQVhJTVVTX0RDKGRjLT5jdHgtPmRjZV9lbnZpcm9ubWVudCkpCisJCS8vcG9vbC0+YmFzZS5yZXNfY2FwID0gJnJlc19jYXBfbnYxMF9GUEdBXzJwaXBlX2RzYzsKKwkJcG9vbC0+YmFzZS5yZXNfY2FwID0gJnJlc19jYXBfcm5fRlBHQV80cGlwZTsKKyNlbmRpZgorCisJcG9vbC0+YmFzZS5mdW5jcyA9ICZkY24yMV9yZXNfcG9vbF9mdW5jczsKKworCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisJICogIFJlc291cmNlICsgYXNpYyBjYXAgaGFyY29kaW5nICAgICAgICAgICAgICAgICoKKwkgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwlwb29sLT5iYXNlLnVuZGVybGF5X3BpcGVfaW5kZXggPSBOT19VTkRFUkxBWV9QSVBFOworCisJcG9vbC0+YmFzZS5waXBlX2NvdW50ID0gNDsKKwlkYy0+Y2Fwcy5tYXhfZG93bnNjYWxlX3JhdGlvID0gMjAwOworCWRjLT5jYXBzLmkyY19zcGVlZF9pbl9raHogPSAxMDA7CisJZGMtPmNhcHMubWF4X2N1cnNvcl9zaXplID0gMjU2OworCWRjLT5jYXBzLmRtZGF0YV9hbGxvY19zaXplID0gMjA0ODsKKwlkYy0+Y2Fwcy5od18zZF9sdXQgPSB0cnVlOworCisJZGMtPmNhcHMubWF4X3NsYXZlX3BsYW5lcyA9IDE7CisJZGMtPmNhcHMucG9zdF9ibGVuZF9jb2xvcl9wcm9jZXNzaW5nID0gdHJ1ZTsKKwlkYy0+Y2Fwcy5mb3JjZV9kcF90cHM0X2Zvcl9jcDI1MjAgPSB0cnVlOworCisJaWYgKGRjLT5jdHgtPmRjZV9lbnZpcm9ubWVudCA9PSBEQ0VfRU5WX1BST0RVQ1RJT05fRFJWKQorCQlkYy0+ZGVidWcgPSBkZWJ1Z19kZWZhdWx0c19kcnY7CisJZWxzZSBpZiAoZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50ID09IERDRV9FTlZfRlBHQV9NQVhJTVVTKSB7CisJCXBvb2wtPmJhc2UucGlwZV9jb3VudCA9IDQ7CisJCWRjLT5kZWJ1ZyA9IGRlYnVnX2RlZmF1bHRzX2RpYWdzOworCX0gZWxzZQorCQlkYy0+ZGVidWcgPSBkZWJ1Z19kZWZhdWx0c19kaWFnczsKKworCS8vIEluaXQgdGhlIHZtX2hlbHBlcgorCWlmIChkYy0+dm1faGVscGVyKQorCQl2bV9oZWxwZXJfaW5pdChkYy0+dm1faGVscGVyLCAxNik7CisKKwkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCSAqICBDcmVhdGUgcmVzb3VyY2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisJICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKwlwb29sLT5iYXNlLmNsb2NrX3NvdXJjZXNbRENOMjBfQ0xLX1NSQ19QTEwwXSA9CisJCQlkY24yMV9jbG9ja19zb3VyY2VfY3JlYXRlKGN0eCwgY3R4LT5kY19iaW9zLAorCQkJCUNMT0NLX1NPVVJDRV9DT01CT19QSFlfUExMMCwKKwkJCQkmY2xrX3NyY19yZWdzWzBdLCBmYWxzZSk7CisJcG9vbC0+YmFzZS5jbG9ja19zb3VyY2VzW0RDTjIwX0NMS19TUkNfUExMMV0gPQorCQkJZGNuMjFfY2xvY2tfc291cmNlX2NyZWF0ZShjdHgsIGN0eC0+ZGNfYmlvcywKKwkJCQlDTE9DS19TT1VSQ0VfQ09NQk9fUEhZX1BMTDEsCisJCQkJJmNsa19zcmNfcmVnc1sxXSwgZmFsc2UpOworCisJcG9vbC0+YmFzZS5jbGtfc3JjX2NvdW50ID0gRENOMjBfQ0xLX1NSQ19UT1RBTF9EQ04yMTsKKworCS8qIHRvZG86IG5vdCByZXVzZSBwaHlfcGxsIHJlZ2lzdGVycyAqLworCXBvb2wtPmJhc2UuZHBfY2xvY2tfc291cmNlID0KKwkJCWRjbjIxX2Nsb2NrX3NvdXJjZV9jcmVhdGUoY3R4LCBjdHgtPmRjX2Jpb3MsCisJCQkJQ0xPQ0tfU09VUkNFX0lEX0RQX0RUTywKKwkJCQkmY2xrX3NyY19yZWdzWzBdLCB0cnVlKTsKKworCWZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLmNsa19zcmNfY291bnQ7IGkrKykgeworCQlpZiAocG9vbC0+YmFzZS5jbG9ja19zb3VyY2VzW2ldID09IE5VTEwpIHsKKwkJCWRtX2Vycm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBjbG9jayBzb3VyY2VzIVxuIik7CisJCQlCUkVBS19UT19ERUJVR0dFUigpOworCQkJZ290byBjcmVhdGVfZmFpbDsKKwkJfQorCX0KKworCXBvb2wtPmJhc2UuZGNjZyA9IGRjY2cyX2NyZWF0ZShjdHgsICZkY2NnX3JlZ3MsICZkY2NnX3NoaWZ0LCAmZGNjZ19tYXNrKTsKKwlpZiAocG9vbC0+YmFzZS5kY2NnID09IE5VTEwpIHsKKwkJZG1fZXJyb3IoIkRDOiBmYWlsZWQgdG8gY3JlYXRlIGRjY2chXG4iKTsKKwkJQlJFQUtfVE9fREVCVUdHRVIoKTsKKwkJZ290byBjcmVhdGVfZmFpbDsKKwl9CisKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19ETVVCCisJcG9vbC0+YmFzZS5kbWN1YiA9IGRjbjIxX2RtY3ViX2NyZWF0ZShjdHgsCisJCQkmZG1jdWJfcmVncywKKwkJCSZkbWN1Yl9zaGlmdCwKKwkJCSZkbWN1Yl9tYXNrKTsKKwlpZiAocG9vbC0+YmFzZS5kbWN1YiA9PSBOVUxMKSB7CisJCWRtX2Vycm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBkbWN1YiFcbiIpOworCQlCUkVBS19UT19ERUJVR0dFUigpOworCQlnb3RvIGNyZWF0ZV9mYWlsOworCX0KKyNlbmRpZgorCisJcG9vbC0+YmFzZS5wcF9zbXUgPSBkY24yMV9wcF9zbXVfY3JlYXRlKGN0eCk7CisKKwlkbWxfaW5pdF9pbnN0YW5jZSgmZGMtPmRtbCwgJmRjbjJfMV9zb2MsICZkY24yXzFfaXAsIERNTF9QUk9KRUNUX0RDTjIxKTsKKworCWluaXRfZGF0YS5jdHggPSBkYy0+Y3R4OworCXBvb2wtPmJhc2UuaXJxcyA9IGRhbF9pcnFfc2VydmljZV9kY24yMV9jcmVhdGUoJmluaXRfZGF0YSk7CisJaWYgKCFwb29sLT5iYXNlLmlycXMpCisJCWdvdG8gY3JlYXRlX2ZhaWw7CisKKwkvKiBtZW0gaW5wdXQgLT4gaXBwIC0+IGRwcCAtPiBvcHAgLT4gVEcgKi8KKwlmb3IgKGkgPSAwOyBpIDwgcG9vbC0+YmFzZS5waXBlX2NvdW50OyBpKyspIHsKKwkJcG9vbC0+YmFzZS5odWJwc1tpXSA9IGRjbjIxX2h1YnBfY3JlYXRlKGN0eCwgaSk7CisJCWlmIChwb29sLT5iYXNlLmh1YnBzW2ldID09IE5VTEwpIHsKKwkJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCQlkbV9lcnJvcigKKwkJCQkiREM6IGZhaWxlZCB0byBjcmVhdGUgbWVtb3J5IGlucHV0IVxuIik7CisJCQlnb3RvIGNyZWF0ZV9mYWlsOworCQl9CisKKwkJcG9vbC0+YmFzZS5pcHBzW2ldID0gZGNuMjFfaXBwX2NyZWF0ZShjdHgsIGkpOworCQlpZiAocG9vbC0+YmFzZS5pcHBzW2ldID09IE5VTEwpIHsKKwkJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCQlkbV9lcnJvcigKKwkJCQkiREM6IGZhaWxlZCB0byBjcmVhdGUgaW5wdXQgcGl4ZWwgcHJvY2Vzc29yIVxuIik7CisJCQlnb3RvIGNyZWF0ZV9mYWlsOworCQl9CisKKwkJcG9vbC0+YmFzZS5kcHBzW2ldID0gZGNuMjFfZHBwX2NyZWF0ZShjdHgsIGkpOworCQlpZiAocG9vbC0+YmFzZS5kcHBzW2ldID09IE5VTEwpIHsKKwkJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCQlkbV9lcnJvcigKKwkJCQkiREM6IGZhaWxlZCB0byBjcmVhdGUgZHBwcyFcbiIpOworCQkJZ290byBjcmVhdGVfZmFpbDsKKwkJfQorCX0KKworCWZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnJlc19jYXAtPm51bV9kZGM7IGkrKykgeworCQlwb29sLT5iYXNlLmVuZ2luZXNbaV0gPSBkY24yMV9hdXhfZW5naW5lX2NyZWF0ZShjdHgsIGkpOworCQlpZiAocG9vbC0+YmFzZS5lbmdpbmVzW2ldID09IE5VTEwpIHsKKwkJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCQlkbV9lcnJvcigKKwkJCQkiREM6ZmFpbGVkIHRvIGNyZWF0ZSBhdXggZW5naW5lISFcbiIpOworCQkJZ290byBjcmVhdGVfZmFpbDsKKwkJfQorCQlwb29sLT5iYXNlLmh3X2kyY3NbaV0gPSBkY24yMV9pMmNfaHdfY3JlYXRlKGN0eCwgaSk7CisJCWlmIChwb29sLT5iYXNlLmh3X2kyY3NbaV0gPT0gTlVMTCkgeworCQkJQlJFQUtfVE9fREVCVUdHRVIoKTsKKwkJCWRtX2Vycm9yKAorCQkJCSJEQzpmYWlsZWQgdG8gY3JlYXRlIGh3IGkyYyEhXG4iKTsKKwkJCWdvdG8gY3JlYXRlX2ZhaWw7CisJCX0KKwkJcG9vbC0+YmFzZS5zd19pMmNzW2ldID0gTlVMTDsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgcG9vbC0+YmFzZS5yZXNfY2FwLT5udW1fb3BwOyBpKyspIHsKKwkJcG9vbC0+YmFzZS5vcHBzW2ldID0gZGNuMjFfb3BwX2NyZWF0ZShjdHgsIGkpOworCQlpZiAocG9vbC0+YmFzZS5vcHBzW2ldID09IE5VTEwpIHsKKwkJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCQlkbV9lcnJvcigKKwkJCQkiREM6IGZhaWxlZCB0byBjcmVhdGUgb3V0cHV0IHBpeGVsIHByb2Nlc3NvciFcbiIpOworCQkJZ290byBjcmVhdGVfZmFpbDsKKwkJfQorCX0KKworCWZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnJlc19jYXAtPm51bV90aW1pbmdfZ2VuZXJhdG9yOyBpKyspIHsKKwkJcG9vbC0+YmFzZS50aW1pbmdfZ2VuZXJhdG9yc1tpXSA9IGRjbjIxX3RpbWluZ19nZW5lcmF0b3JfY3JlYXRlKAorCQkJCWN0eCwgaSk7CisJCWlmIChwb29sLT5iYXNlLnRpbWluZ19nZW5lcmF0b3JzW2ldID09IE5VTEwpIHsKKwkJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCQlkbV9lcnJvcigiREM6IGZhaWxlZCB0byBjcmVhdGUgdGchXG4iKTsKKwkJCWdvdG8gY3JlYXRlX2ZhaWw7CisJCX0KKwl9CisKKwlwb29sLT5iYXNlLnRpbWluZ19nZW5lcmF0b3JfY291bnQgPSBpOworCisJcG9vbC0+YmFzZS5tcGMgPSBkY24yMV9tcGNfY3JlYXRlKGN0eCk7CisJaWYgKHBvb2wtPmJhc2UubXBjID09IE5VTEwpIHsKKwkJQlJFQUtfVE9fREVCVUdHRVIoKTsKKwkJZG1fZXJyb3IoIkRDOiBmYWlsZWQgdG8gY3JlYXRlIG1wYyFcbiIpOworCQlnb3RvIGNyZWF0ZV9mYWlsOworCX0KKworCXBvb2wtPmJhc2UuaHViYnViID0gZGNuMjFfaHViYnViX2NyZWF0ZShjdHgpOworCWlmIChwb29sLT5iYXNlLmh1YmJ1YiA9PSBOVUxMKSB7CisJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCWRtX2Vycm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBodWJidWIhXG4iKTsKKwkJZ290byBjcmVhdGVfZmFpbDsKKwl9CisKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAorCWZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnJlc19jYXAtPm51bV9kc2M7IGkrKykgeworCQlwb29sLT5iYXNlLmRzY3NbaV0gPSBkY24yMV9kc2NfY3JlYXRlKGN0eCwgaSk7CisJCWlmIChwb29sLT5iYXNlLmRzY3NbaV0gPT0gTlVMTCkgeworCQkJQlJFQUtfVE9fREVCVUdHRVIoKTsKKwkJCWRtX2Vycm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBkaXNwbGF5IHN0cmVhbSBjb21wcmVzc29yICVkIVxuIiwgaSk7CisJCQlnb3RvIGNyZWF0ZV9mYWlsOworCQl9CisJfQorI2VuZGlmCisKKwlpZiAoIWRjbjIwX2R3YmNfY3JlYXRlKGN0eCwgJnBvb2wtPmJhc2UpKSB7CisJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCWRtX2Vycm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBkd2JjIVxuIik7CisJCWdvdG8gY3JlYXRlX2ZhaWw7CisJfQorCWlmICghZGNuMjBfbW1odWJidWJfY3JlYXRlKGN0eCwgJnBvb2wtPmJhc2UpKSB7CisJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCWRtX2Vycm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBtY2lmX3diIVxuIik7CisJCWdvdG8gY3JlYXRlX2ZhaWw7CisJfQorCisJaWYgKCFyZXNvdXJjZV9jb25zdHJ1Y3QobnVtX3ZpcnR1YWxfbGlua3MsIGRjLCAmcG9vbC0+YmFzZSwKKwkJCSghSVNfRlBHQV9NQVhJTVVTX0RDKGRjLT5jdHgtPmRjZV9lbnZpcm9ubWVudCkgPworCQkJJnJlc19jcmVhdGVfZnVuY3MgOiAmcmVzX2NyZWF0ZV9tYXhpbXVzX2Z1bmNzKSkpCisJCQlnb3RvIGNyZWF0ZV9mYWlsOworCisJZGNuMjBfaHdfc2VxdWVuY2VyX2NvbnN0cnVjdChkYyk7CisKKwlkYy0+Y2Fwcy5tYXhfcGxhbmVzID0gIHBvb2wtPmJhc2UucGlwZV9jb3VudDsKKworCWZvciAoaSA9IDA7IGkgPCBkYy0+Y2Fwcy5tYXhfcGxhbmVzOyArK2kpCisJCWRjLT5jYXBzLnBsYW5lc1tpXSA9IHBsYW5lX2NhcDsKKworCWRjLT5jYXBfZnVuY3MgPSBjYXBfZnVuY3M7CisKKwlyZXR1cm4gdHJ1ZTsKKworY3JlYXRlX2ZhaWw6CisKKwlkZXN0cnVjdChwb29sKTsKKworCXJldHVybiBmYWxzZTsKK30KKworc3RydWN0IHJlc291cmNlX3Bvb2wgKmRjbjIxX2NyZWF0ZV9yZXNvdXJjZV9wb29sKAorCQljb25zdCBzdHJ1Y3QgZGNfaW5pdF9kYXRhICppbml0X2RhdGEsCisJCXN0cnVjdCBkYyAqZGMpCit7CisJc3RydWN0IGRjbjIxX3Jlc291cmNlX3Bvb2wgKnBvb2wgPQorCQlremFsbG9jKHNpemVvZihzdHJ1Y3QgZGNuMjFfcmVzb3VyY2VfcG9vbCksIEdGUF9LRVJORUwpOworCisJaWYgKCFwb29sKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChjb25zdHJ1Y3QoaW5pdF9kYXRhLT5udW1fdmlydHVhbF9saW5rcywgZGMsIHBvb2wpKQorCQlyZXR1cm4gJnBvb2wtPmJhc2U7CisKKwlCUkVBS19UT19ERUJVR0dFUigpOworCWtmcmVlKHBvb2wpOworCXJldHVybiBOVUxMOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2RjbjIxX3Jlc291cmNlLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfcmVzb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjczNTUxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2RjbjIxX3Jlc291cmNlLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2lmbmRlZiBfRENOMjFfUkVTT1VSQ0VfSF8KKyNkZWZpbmUgX0RDTjIxX1JFU09VUkNFX0hfCisKKyNpbmNsdWRlICJjb3JlX3R5cGVzLmgiCisKKyNkZWZpbmUgVE9fRENOMjFfUkVTX1BPT0wocG9vbClcCisJY29udGFpbmVyX29mKHBvb2wsIHN0cnVjdCBkY24yMV9yZXNvdXJjZV9wb29sLCBiYXNlKQorCitzdHJ1Y3QgZGM7CitzdHJ1Y3QgcmVzb3VyY2VfcG9vbDsKK3N0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3BpcGVfcGFyYW1zX3N0OworCitzdHJ1Y3QgZGNuMjFfcmVzb3VyY2VfcG9vbCB7CisJc3RydWN0IHJlc291cmNlX3Bvb2wgYmFzZTsKK307CitzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqZGNuMjFfY3JlYXRlX3Jlc291cmNlX3Bvb2woCisJCWNvbnN0IHN0cnVjdCBkY19pbml0X2RhdGEgKmluaXRfZGF0YSwKKwkJc3RydWN0IGRjICpkYyk7CisKKyNlbmRpZiAvKiBfRENOMjFfUkVTT1VSQ0VfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbV9wcF9zbXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbV9wcF9zbXUuaAppbmRleCA2ODA2ODljLi5jMDNhNDQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1fcHBfc211LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtX3BwX3NtdS5oCkBAIC00NCw2ICs0NCw5IEBAIGVudW0gcHBfc211X3ZlciB7CiAjaWZuZGVmIENPTkZJR19UUklNX0RSTV9BTURfRENfRENOMl8wCiAJUFBfU01VX1ZFUl9OViwKICNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorCVBQX1NNVV9WRVJfUk4sCisjZW5kaWYKIAogCVBQX1NNVV9WRVJfTUFYCiB9OwpAQCAtMjQ2LDYgKzI0OSw0NyBAQCBzdHJ1Y3QgcHBfc211X2Z1bmNzX252IHsKIH07CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorCisjZGVmaW5lIFBQX1NNVV9OVU1fU09DQ0xLX0RQTV9MRVZFTFMgIDgKKyNkZWZpbmUgUFBfU01VX05VTV9EQ0ZDTEtfRFBNX0xFVkVMUyAgNAorI2RlZmluZSBQUF9TTVVfTlVNX0ZDTEtfRFBNX0xFVkVMUyAgICA0CisjZGVmaW5lIFBQX1NNVV9OVU1fTUVNQ0xLX0RQTV9MRVZFTFMgIDQKKworc3RydWN0IGRwbV9jbG9jayB7CisgIHVpbnQzMl90ICBGcmVxOyAgICAvLyBJbiBNSHoKKyAgdWludDMyX3QgIFZvbDsgICAgIC8vIE1pbGxpdm9sdHMgd2l0aCAyIGZyYWN0aW9uYWwgYml0cworfTsKKworCisvKiB0aGlzIGlzIGEgY29weSBvZiB0aGUgc3RydWN0dXJlIGRlZmluZWQgaW4gc211eHhfZHJpdmVyX2lmLmgqLworc3RydWN0IGRwbV9jbG9ja3MgeworCXN0cnVjdCBkcG1fY2xvY2sgRGNmQ2xvY2tzW1BQX1NNVV9OVU1fRENGQ0xLX0RQTV9MRVZFTFNdOworCXN0cnVjdCBkcG1fY2xvY2sgU29jQ2xvY2tzW1BQX1NNVV9OVU1fU09DQ0xLX0RQTV9MRVZFTFNdOworCXN0cnVjdCBkcG1fY2xvY2sgRkNsb2Nrc1tQUF9TTVVfTlVNX0ZDTEtfRFBNX0xFVkVMU107CisJc3RydWN0IGRwbV9jbG9jayBNZW1DbG9ja3NbUFBfU01VX05VTV9NRU1DTEtfRFBNX0xFVkVMU107Cit9OworCisKK3N0cnVjdCBwcF9zbXVfZnVuY3Nfcm4geworCXN0cnVjdCBwcF9zbXUgcHBfc211OworCisJLyoKKwkgKiByZWFkZXIgYW5kIHdyaXRlciBXTSdzIGFyZSBzZW50IHRvZ2V0aGVyIGFzIHBhcnQgb2Ygb25lIHRhYmxlCisJICoKKwkgKiBQUFNNQ19NU0dfU2V0RHJpdmVyRHJhbUFkZHJIaWdoCisJICogUFBTTUNfTVNHX1NldERyaXZlckRyYW1BZGRyTG93CisJICogUFBTTUNfTVNHX1RyYW5zZmVyVGFibGVEcmFtMlNtdQorCSAqCisJICovCisJZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X3dtX3Jhbmdlcykoc3RydWN0IHBwX3NtdSAqcHAsCisJCQlzdHJ1Y3QgcHBfc211X3dtX3JhbmdlX3NldHMgKnJhbmdlcyk7CisKKwllbnVtIHBwX3NtdV9zdGF0dXMgKCpnZXRfZHBtX2Nsb2NrX3RhYmxlKSAoc3RydWN0IHBwX3NtdSAqcHAsCisJCQlzdHJ1Y3QgZHBtX2Nsb2NrcyAqY2xvY2tfdGFibGUpOworfTsKKyNlbmRpZgorCiBzdHJ1Y3QgcHBfc211X2Z1bmNzIHsKIAlzdHJ1Y3QgcHBfc211IGN0eDsKIAl1bmlvbiB7CkBAIC0yNTMsNiArMjk3LDkgQEAgc3RydWN0IHBwX3NtdV9mdW5jcyB7CiAjaWZuZGVmIENPTkZJR19UUklNX0RSTV9BTURfRENfRENOMl8wCiAJCXN0cnVjdCBwcF9zbXVfZnVuY3NfbnYgbnZfZnVuY3M7CiAjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKwkJc3RydWN0IHBwX3NtdV9mdW5jc19ybiBybl9mdW5jczsKKyNlbmRpZgogCiAJfTsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oCmluZGV4IGI0MjZiYTAuLjFhMDQyOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oCkBAIC0xNTEsNiArMTUxLDcgQEAgdm9pZCBnZW5lcmljX3JlZ193YWl0KGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAJdW5zaWduZWQgaW50IGRlbGF5X2JldHdlZW5fcG9sbF91cywgdW5zaWduZWQgaW50IHRpbWVfb3V0X251bV90cmllcywKIAljb25zdCBjaGFyICpmdW5jX25hbWUsIGludCBsaW5lKTsKIAordW5zaWduZWQgaW50IHNucHJpbnRmX2NvdW50KGNoYXIgKnBCdWYsIHVuc2lnbmVkIGludCBidWZTaXplLCBjaGFyICpmbXQsIC4uLik7CiAKIC8qIFRoZXNlIG1hY3JvcyBuZWVkIHRvIGJlIHVzZWQgd2l0aCBzb2MxNSByZWdpc3RlcnMgaW4gb3JkZXIgdG8gcmV0cmlldmUKICAqIHRoZSBhY3R1YWwgb2Zmc2V0LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvTWFrZWZpbGUKaW5kZXggMGJiN2EyMC4uNWIyYTY1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL01ha2VmaWxlCkBAIC0zMiwyNiArMzIsMzggQEAKIAogZG1sX2NjZmxhZ3MgOj0gLW1oYXJkLWZsb2F0IC1tc3NlICQoY2Nfc3RhY2tfYWxpZ24pCiAKLUNGTEFHU19kaXNwbGF5X21vZGVfbGliLm8gOj0gJChkbWxfY2NmbGFncykKK2lmZGVmIENPTkZJR19DQ19JU19DTEFORworZG1sX2NjZmxhZ3MgKz0gLW1zc2UyCitlbmRpZgorCitDRkxBR1NfJChBTUREQUxQQVRIKS9kYy9kbWwvZGlzcGxheV9tb2RlX2xpYi5vIDo9ICQoZG1sX2NjZmxhZ3MpCiAKIGlmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMAotQ0ZMQUdTX2Rpc3BsYXlfbW9kZV92YmEubyA6PSAkKGRtbF9jY2ZsYWdzKQotQ0ZMQUdTX2Rpc3BsYXlfbW9kZV92YmFfMjAubyA6PSAkKGRtbF9jY2ZsYWdzKQotQ0ZMQUdTX2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjAubyA6PSAkKGRtbF9jY2ZsYWdzKQorQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZG1sL2Rpc3BsYXlfbW9kZV92YmEubyA6PSAkKGRtbF9jY2ZsYWdzKQorQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZG1sL2RjbjIwL2Rpc3BsYXlfbW9kZV92YmFfMjAubyA6PSAkKGRtbF9jY2ZsYWdzKQorQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZG1sL2RjbjIwL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjAubyA6PSAkKGRtbF9jY2ZsYWdzKQorQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZG1sL2RjbjIwL2Rpc3BsYXlfbW9kZV92YmFfMjB2Mi5vIDo9ICQoZG1sX2NjZmxhZ3MpCitDRkxBR1NfJChBTUREQUxQQVRIKS9kYy9kbWwvZGNuMjAvZGlzcGxheV9ycV9kbGdfY2FsY18yMHYyLm8gOj0gJChkbWxfY2NmbGFncykKIGVuZGlmCi1pZmRlZiBDT05GSUdfRFJNX0FNRF9EQ04zQUcKLUNGTEFHU19kaXNwbGF5X21vZGVfdmJhXzNhZy5vIDo9ICQoZG1sX2NjZmxhZ3MpCitpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEKK0NGTEFHU18kKEFNRERBTFBBVEgpL2RjL2RtbC9kY24yMS9kaXNwbGF5X21vZGVfdmJhXzIxLm8gOj0gJChkbWxfY2NmbGFncykKK0NGTEFHU18kKEFNRERBTFBBVEgpL2RjL2RtbC9kY24yMS9kaXNwbGF5X3JxX2RsZ19jYWxjXzIxLm8gOj0gJChkbWxfY2NmbGFncykKIGVuZGlmCi1DRkxBR1NfZG1sMV9kaXNwbGF5X3JxX2RsZ19jYWxjLm8gOj0gJChkbWxfY2NmbGFncykKLUNGTEFHU19kaXNwbGF5X3JxX2RsZ19oZWxwZXJzLm8gOj0gJChkbWxfY2NmbGFncykKLUNGTEFHU19kbWxfY29tbW9uX2RlZnMubyA6PSAkKGRtbF9jY2ZsYWdzKQorQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZG1sL2RtbDFfZGlzcGxheV9ycV9kbGdfY2FsYy5vIDo9ICQoZG1sX2NjZmxhZ3MpCitDRkxBR1NfJChBTUREQUxQQVRIKS9kYy9kbWwvZGlzcGxheV9ycV9kbGdfaGVscGVycy5vIDo9ICQoZG1sX2NjZmxhZ3MpCitDRkxBR1NfJChBTUREQUxQQVRIKS9kYy9kbWwvZG1sX2NvbW1vbl9kZWZzLm8gOj0gJChkbWxfY2NmbGFncykKIAogRE1MID0gZGlzcGxheV9tb2RlX2xpYi5vIGRpc3BsYXlfcnFfZGxnX2hlbHBlcnMubyBkbWwxX2Rpc3BsYXlfcnFfZGxnX2NhbGMubyBcCiAJZG1sX2NvbW1vbl9kZWZzLm8KIAogaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMl8wCiBETUwgKz0gZGlzcGxheV9tb2RlX3ZiYS5vIGRjbjIwL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjAubyBkY24yMC9kaXNwbGF5X21vZGVfdmJhXzIwLm8KK0RNTCArPSBkY24yMC9kaXNwbGF5X3JxX2RsZ19jYWxjXzIwdjIubyBkY24yMC9kaXNwbGF5X21vZGVfdmJhXzIwdjIubwogZW5kaWYKK2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMQorRE1MICs9IGRjbjIxL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjEubyBkY24yMS9kaXNwbGF5X21vZGVfdmJhXzIxLm8KK2VuZGlmCisKIAogQU1EX0RBTF9ETUwgPSAkKGFkZHByZWZpeCAkKEFNRERBTFBBVEgpL2RjL2RtbC8sJChETUwpKQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjIwL2Rpc3BsYXlfbW9kZV92YmFfMjB2Mi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24yMC9kaXNwbGF5X21vZGVfdmJhXzIwdjIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmFmZDY5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24yMC9kaXNwbGF5X21vZGVfdmJhXzIwdjIuYwpAQCAtMCwwICsxLDUxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpbmNsdWRlICIuLi9kaXNwbGF5X21vZGVfbGliLmgiCisjaW5jbHVkZSAiZGlzcGxheV9tb2RlX3ZiYV8yMHYyLmgiCisjaW5jbHVkZSAiLi4vZG1sX2lubGluZV9kZWZzLmgiCisKKy8qCisgKiBOT1RFOgorICogICBUaGlzIGZpbGUgaXMgZ2NjLXBhcnNlYWJsZSBIVyBnb3NwZWwsIGNvbWluZyBzdHJhaWdodCBmcm9tIEhXIGVuZ2luZWVycy4KKyAqCisgKiBJdCBkb2Vzbid0IGFkaGVyZSB0byBMaW51eCBrZXJuZWwgc3R5bGUgYW5kIHNvbWV0aW1lcyB3aWxsIGRvIHRoaW5ncyBpbiBvZGQKKyAqIHdheXMuIFVubGVzcyB0aGVyZSBpcyBzb21ldGhpbmcgY2xlYXJseSB3cm9uZyB3aXRoIGl0IHRoZSBjb2RlIHNob3VsZAorICogcmVtYWluIGFzLWlzIGFzIGl0IHByb3ZpZGVzIHVzIHdpdGggYSBndWFyYW50ZWUgZnJvbSBIVyB0aGF0IGl0IGlzIGNvcnJlY3QuCisgKi8KKworI2RlZmluZSBCUFBfSU5WQUxJRCAwCisjZGVmaW5lIEJQUF9CTEVOREVEX1BJUEUgMHhmZmZmZmZmZgorCitzdGF0aWMgZG91YmxlIGFkanVzdF9SZXR1cm5CVygKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgUmV0dXJuQlcsCisJCWJvb2wgRENDRW5hYmxlZEFueVBsYW5lLAorCQlkb3VibGUgUmV0dXJuQmFuZHdpZHRoVG9EQ04pOworc3RhdGljIHVuc2lnbmVkIGludCBkc2NjZUNvbXB1dGVEZWxheSgKKwkJdW5zaWduZWQgaW50IGJwYywKKwkJZG91YmxlIGJwcCwKKwkJdW5zaWduZWQgaW50IHNsaWNlV2lkdGgsCisJCXVuc2lnbmVkIGludCBudW1TbGljZXMsCisJCWVudW0gb3V0cHV0X2Zvcm1hdF9jbGFzcyBwaXhlbEZvcm1hdCk7CitzdGF0aWMgdW5zaWduZWQgaW50IGRzY0NvbXB1dGVEZWxheShlbnVtIG91dHB1dF9mb3JtYXRfY2xhc3MgcGl4ZWxGb3JtYXQpOworc3RhdGljIGJvb2wgQ2FsY3VsYXRlRGVsYXlBZnRlclNjYWxlcigKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgUmV0dXJuQlcsCisJCWRvdWJsZSBSZWFkQmFuZHdpZHRoUGxhbmVMdW1hLAorCQlkb3VibGUgUmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hLAorCQlkb3VibGUgVG90YWxEYXRhUmVhZEJhbmR3aWR0aCwKKwkJZG91YmxlIERpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWEsCisJCWRvdWJsZSBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWEsCisJCWRvdWJsZSBEUFBDTEssCisJCWRvdWJsZSBESVNQQ0xLLAorCQlkb3VibGUgUGl4ZWxDbG9jaywKKwkJdW5zaWduZWQgaW50IERTQ0RlbGF5LAorCQl1bnNpZ25lZCBpbnQgRFBQUGVyUGxhbmUsCisJCWJvb2wgU2NhbGVyRW5hYmxlZCwKKwkJdW5zaWduZWQgaW50IE51bWJlck9mQ3Vyc29ycywKKwkJZG91YmxlIERQUENMS0RlbGF5U3VidG90YWwsCisJCWRvdWJsZSBEUFBDTEtEZWxheVNDTCwKKwkJZG91YmxlIERQUENMS0RlbGF5U0NMTEJPbmx5LAorCQlkb3VibGUgRFBQQ0xLRGVsYXlDTlZDRm9ybWF0ZXIsCisJCWRvdWJsZSBEUFBDTEtEZWxheUNOVkNDdXJzb3IsCisJCWRvdWJsZSBESVNQQ0xLRGVsYXlTdWJ0b3RhbCwKKwkJdW5zaWduZWQgaW50IFNjYWxlclJlY291dFdpZHRoLAorCQllbnVtIG91dHB1dF9mb3JtYXRfY2xhc3MgT3V0cHV0Rm9ybWF0LAorCQl1bnNpZ25lZCBpbnQgSFRvdGFsLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aFNpbmdsZURQUFksCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRZLAorCQlkb3VibGUgQnl0ZVBlclBpeGVsREVUQywKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WSwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0QywKKwkJYm9vbCBJbnRlcmxhY2UsCisJCWJvb2wgUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCwKKwkJZG91YmxlICpEU1RYQWZ0ZXJTY2FsZXIsCisJCWRvdWJsZSAqRFNUWUFmdGVyU2NhbGVyCisJCSk7CisvLyBTdXBlciBtb25zdGVyIGZ1bmN0aW9uIHdpdGggc29tZSA0NSBhcmd1bWVudAorc3RhdGljIGJvb2wgQ2FsY3VsYXRlUHJlZmV0Y2hTY2hlZHVsZSgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgRFBQQ0xLLAorCQlkb3VibGUgRElTUENMSywKKwkJZG91YmxlIFBpeGVsQ2xvY2ssCisJCWRvdWJsZSBEQ0ZDTEtEZWVwU2xlZXAsCisJCXVuc2lnbmVkIGludCBEUFBQZXJQbGFuZSwKKwkJdW5zaWduZWQgaW50IE51bWJlck9mQ3Vyc29ycywKKwkJdW5zaWduZWQgaW50IFZCbGFuaywKKwkJdW5zaWduZWQgaW50IEhUb3RhbCwKKwkJdW5zaWduZWQgaW50IE1heEludGVyRENOVGlsZVJlcGVhdGVycywKKwkJdW5zaWduZWQgaW50IFZTdGFydHVwLAorCQl1bnNpZ25lZCBpbnQgUGFnZVRhYmxlTGV2ZWxzLAorCQlib29sIEdQVVZNRW5hYmxlLAorCQlib29sIER5bmFtaWNNZXRhZGF0YUVuYWJsZSwKKwkJdW5zaWduZWQgaW50IER5bmFtaWNNZXRhZGF0YUxpbmVzQmVmb3JlQWN0aXZlUmVxdWlyZWQsCisJCXVuc2lnbmVkIGludCBEeW5hbWljTWV0YWRhdGFUcmFuc21pdHRlZEJ5dGVzLAorCQlib29sIERDQ0VuYWJsZSwKKwkJZG91YmxlIFVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5LAorCQlkb3VibGUgVXJnZW50RXh0cmFMYXRlbmN5LAorCQlkb3VibGUgVENhbGMsCisJCXVuc2lnbmVkIGludCBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlLAorCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvdywKKwkJZG91YmxlIFByZWZldGNoU291cmNlTGluZXNZLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aFksCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRZLAorCQlkb3VibGUgVkluaXRQcmVGaWxsWSwKKwkJdW5zaWduZWQgaW50IE1heE51bVN3YXRoWSwKKwkJZG91YmxlIFByZWZldGNoU291cmNlTGluZXNDLAorCQlkb3VibGUgQnl0ZVBlclBpeGVsREVUQywKKwkJZG91YmxlIFZJbml0UHJlRmlsbEMsCisJCXVuc2lnbmVkIGludCBNYXhOdW1Td2F0aEMsCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodFksCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodEMsCisJCWRvdWJsZSBUV2FpdCwKKwkJYm9vbCBYRkNFbmFibGVkLAorCQlkb3VibGUgWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheSwKKwkJYm9vbCBJbnRlcmxhY2VFbmFibGUsCisJCWJvb2wgUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCwKKwkJZG91YmxlIERTVFhBZnRlclNjYWxlciwKKwkJZG91YmxlIERTVFlBZnRlclNjYWxlciwKKwkJZG91YmxlICpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2gsCisJCWRvdWJsZSAqUHJlZmV0Y2hCYW5kd2lkdGgsCisJCWRvdWJsZSAqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmssCisJCWRvdWJsZSAqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luVkJsYW5rLAorCQlkb3VibGUgKlZSYXRpb1ByZWZldGNoWSwKKwkJZG91YmxlICpWUmF0aW9QcmVmZXRjaEMsCisJCWRvdWJsZSAqUmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCVywKKwkJZG91YmxlICpUbm9fYncsCisJCXVuc2lnbmVkIGludCAqVlVwZGF0ZU9mZnNldFBpeCwKKwkJZG91YmxlICpWVXBkYXRlV2lkdGhQaXgsCisJCWRvdWJsZSAqVlJlYWR5T2Zmc2V0UGl4KTsKK3N0YXRpYyBkb3VibGUgUm91bmRUb0RGU0dyYW51bGFyaXR5VXAoZG91YmxlIENsb2NrLCBkb3VibGUgVkNPU3BlZWQpOworc3RhdGljIGRvdWJsZSBSb3VuZFRvREZTR3JhbnVsYXJpdHlEb3duKGRvdWJsZSBDbG9jaywgZG91YmxlIFZDT1NwZWVkKTsKK3N0YXRpYyBkb3VibGUgQ2FsY3VsYXRlUHJlZmV0Y2hTb3VyY2VMaW5lcygKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgVlJhdGlvLAorCQlkb3VibGUgdnRhcHMsCisJCWJvb2wgSW50ZXJsYWNlLAorCQlib29sIFByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFAsCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodCwKKwkJdW5zaWduZWQgaW50IFZpZXdwb3J0WVN0YXJ0LAorCQlkb3VibGUgKlZJbml0UHJlRmlsbCwKKwkJdW5zaWduZWQgaW50ICpNYXhOdW1Td2F0aCk7CitzdGF0aWMgdW5zaWduZWQgaW50IENhbGN1bGF0ZVZNQW5kUm93Qnl0ZXMoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJYm9vbCBEQ0NFbmFibGUsCisJCXVuc2lnbmVkIGludCBCbG9ja0hlaWdodDI1NkJ5dGVzLAorCQl1bnNpZ25lZCBpbnQgQmxvY2tXaWR0aDI1NkJ5dGVzLAorCQllbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3MgU291cmNlUGl4ZWxGb3JtYXQsCisJCXVuc2lnbmVkIGludCBTdXJmYWNlVGlsaW5nLAorCQl1bnNpZ25lZCBpbnQgQnl0ZVBlclBpeGVsLAorCQllbnVtIHNjYW5fZGlyZWN0aW9uX2NsYXNzIFNjYW5EaXJlY3Rpb24sCisJCXVuc2lnbmVkIGludCBWaWV3cG9ydFdpZHRoLAorCQl1bnNpZ25lZCBpbnQgVmlld3BvcnRIZWlnaHQsCisJCXVuc2lnbmVkIGludCBTd2F0aFdpZHRoWSwKKwkJYm9vbCBHUFVWTUVuYWJsZSwKKwkJdW5zaWduZWQgaW50IFZNTVBhZ2VTaXplLAorCQl1bnNpZ25lZCBpbnQgUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNMdW1hLAorCQl1bnNpZ25lZCBpbnQgUERFUHJvY2Vzc2luZ0J1ZkluNjRLQlJlcXMsCisJCXVuc2lnbmVkIGludCBQaXRjaCwKKwkJdW5zaWduZWQgaW50IERDQ01ldGFQaXRjaCwKKwkJdW5zaWduZWQgaW50ICpNYWNyb1RpbGVXaWR0aCwKKwkJdW5zaWduZWQgaW50ICpNZXRhUm93Qnl0ZSwKKwkJdW5zaWduZWQgaW50ICpQaXhlbFBURUJ5dGVzUGVyUm93LAorCQlib29sICpQVEVCdWZmZXJTaXplTm90RXhjZWVkZWQsCisJCXVuc2lnbmVkIGludCAqZHB0ZV9yb3dfaGVpZ2h0LAorCQl1bnNpZ25lZCBpbnQgKm1ldGFfcm93X2hlaWdodCk7CitzdGF0aWMgZG91YmxlIENhbGN1bGF0ZVRXYWl0KAorCQl1bnNpZ25lZCBpbnQgUHJlZmV0Y2hNb2RlLAorCQlkb3VibGUgRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeSwKKwkJZG91YmxlIFVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5LAorCQlkb3VibGUgU1JFbnRlclBsdXNFeGl0VGltZSk7CitzdGF0aWMgZG91YmxlIENhbGN1bGF0ZVJlbW90ZVN1cmZhY2VGbGlwRGVsYXkoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZG91YmxlIFZSYXRpbywKKwkJZG91YmxlIFN3YXRoV2lkdGgsCisJCWRvdWJsZSBCcHAsCisJCWRvdWJsZSBMaW5lVGltZSwKKwkJZG91YmxlIFhGQ1RTbHZWdXBkYXRlT2Zmc2V0LAorCQlkb3VibGUgWEZDVFNsdlZ1cGRhdGVXaWR0aCwKKwkJZG91YmxlIFhGQ1RTbHZWcmVhZHlPZmZzZXQsCisJCWRvdWJsZSBYRkNYQlVGTGF0ZW5jeVRvbGVyYW5jZSwKKwkJZG91YmxlIFhGQ0ZpbGxCV092ZXJoZWFkLAorCQlkb3VibGUgWEZDU2x2Q2h1bmtTaXplLAorCQlkb3VibGUgWEZDQnVzVHJhbnNwb3J0VGltZSwKKwkJZG91YmxlIFRDYWxjLAorCQlkb3VibGUgVFdhaXQsCisJCWRvdWJsZSAqU3JjQWN0aXZlRHJhaW5SYXRlLAorCQlkb3VibGUgKlRJbml0WEZpbGwsCisJCWRvdWJsZSAqVHNsdkNoayk7CitzdGF0aWMgdm9pZCBDYWxjdWxhdGVBY3RpdmVSb3dCYW5kd2lkdGgoCisJCWJvb2wgR1BVVk1FbmFibGUsCisJCWVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKKwkJZG91YmxlIFZSYXRpbywKKwkJYm9vbCBEQ0NFbmFibGUsCisJCWRvdWJsZSBMaW5lVGltZSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlTHVtYSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlQ2hyb21hLAorCQl1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVpZ2h0X2x1bWEsCisJCXVuc2lnbmVkIGludCBtZXRhX3Jvd19oZWlnaHRfY2hyb21hLAorCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvd0x1bWEsCisJCXVuc2lnbmVkIGludCBQaXhlbFBURUJ5dGVzUGVyUm93Q2hyb21hLAorCQl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVpZ2h0X2x1bWEsCisJCXVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRfY2hyb21hLAorCQlkb3VibGUgKm1ldGFfcm93X2J3LAorCQlkb3VibGUgKmRwdGVfcm93X2J3LAorCQlkb3VibGUgKnF1YWxfcm93X2J3KTsKK3N0YXRpYyB2b2lkIENhbGN1bGF0ZUZsaXBTY2hlZHVsZSgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgVXJnZW50RXh0cmFMYXRlbmN5LAorCQlkb3VibGUgVXJnZW50TGF0ZW5jeVBpeGVsRGF0YU9ubHksCisJCXVuc2lnbmVkIGludCBHUFVWTU1heFBhZ2VUYWJsZUxldmVscywKKwkJYm9vbCBHUFVWTUVuYWJsZSwKKwkJZG91YmxlIEJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAsCisJCXVuc2lnbmVkIGludCBUb3RJbW1lZGlhdGVGbGlwQnl0ZXMsCisJCWVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKKwkJdW5zaWduZWQgaW50IEltbWVkaWF0ZUZsaXBCeXRlcywKKwkJZG91YmxlIExpbmVUaW1lLAorCQlkb3VibGUgVlJhdGlvLAorCQlkb3VibGUgVG5vX2J3LAorCQlkb3VibGUgUERFQW5kTWV0YVBURUJ5dGVzRnJhbWUsCisJCXVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZSwKKwkJdW5zaWduZWQgaW50IFBpeGVsUFRFQnl0ZXNQZXJSb3csCisJCWJvb2wgRENDRW5hYmxlLAorCQl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVpZ2h0LAorCQl1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVpZ2h0LAorCQlkb3VibGUgcXVhbF9yb3dfYncsCisJCWRvdWJsZSAqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5JbW1lZGlhdGVGbGlwLAorCQlkb3VibGUgKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJbkltbWVkaWF0ZUZsaXAsCisJCWRvdWJsZSAqZmluYWxfZmxpcF9idywKKwkJYm9vbCAqSW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclBpcGUpOworc3RhdGljIGRvdWJsZSBDYWxjdWxhdGVXcml0ZUJhY2tEZWxheSgKKwkJZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFdyaXRlYmFja1BpeGVsRm9ybWF0LAorCQlkb3VibGUgV3JpdGViYWNrSFJhdGlvLAorCQlkb3VibGUgV3JpdGViYWNrVlJhdGlvLAorCQl1bnNpZ25lZCBpbnQgV3JpdGViYWNrTHVtYUhUYXBzLAorCQl1bnNpZ25lZCBpbnQgV3JpdGViYWNrTHVtYVZUYXBzLAorCQl1bnNpZ25lZCBpbnQgV3JpdGViYWNrQ2hyb21hSFRhcHMsCisJCXVuc2lnbmVkIGludCBXcml0ZWJhY2tDaHJvbWFWVGFwcywKKwkJdW5zaWduZWQgaW50IFdyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGgpOworCitzdGF0aWMgdm9pZCBkbWwyMHYyX0Rpc3BsYXlQaXBlQ29uZmlndXJhdGlvbihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpOworc3RhdGljIHZvaWQgZG1sMjB2Ml9ESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hbmNlQ2FsY3VsYXRpb24oCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYik7CisKK3ZvaWQgZG1sMjB2Ml9yZWNhbGN1bGF0ZShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpCit7CisJTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25maWd1cmF0aW9uKG1vZGVfbGliKTsKKwltb2RlX2xpYi0+dmJhLkZhYnJpY0FuZERSQU1CYW5kd2lkdGggPSBkbWxfbWluKAorCQltb2RlX2xpYi0+dmJhLkRSQU1TcGVlZCAqIG1vZGVfbGliLT52YmEuTnVtYmVyT2ZDaGFubmVscyAqIG1vZGVfbGliLT52YmEuRFJBTUNoYW5uZWxXaWR0aCwKKwkJbW9kZV9saWItPnZiYS5GYWJyaWNDbG9jayAqIG1vZGVfbGliLT52YmEuRmFicmljRGF0YXBhdGhUb0RDTkRhdGFSZXR1cm4pIC8gMTAwMC4wOworCVBpeGVsQ2xvY2tBZGp1c3RtZW50Rm9yUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXQobW9kZV9saWIpOworCWRtbDIwdjJfRGlzcGxheVBpcGVDb25maWd1cmF0aW9uKG1vZGVfbGliKTsKKwlkbWwyMHYyX0RJU1BDTEtEUFBDTEtEQ0ZDTEtEZWVwU2xlZXBQcmVmZXRjaFBhcmFtZXRlcnNXYXRlcm1hcmtzQW5kUGVyZm9ybWFuY2VDYWxjdWxhdGlvbihtb2RlX2xpYik7Cit9CisKK3N0YXRpYyBkb3VibGUgYWRqdXN0X1JldHVybkJXKAorCQlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRvdWJsZSBSZXR1cm5CVywKKwkJYm9vbCBEQ0NFbmFibGVkQW55UGxhbmUsCisJCWRvdWJsZSBSZXR1cm5CYW5kd2lkdGhUb0RDTikKK3sKKwlkb3VibGUgQ3JpdGljYWxDb21wcmVzc2lvbjsKKworCWlmIChEQ0NFbmFibGVkQW55UGxhbmUKKwkJCSYmIFJldHVybkJhbmR3aWR0aFRvRENOCisJCQkJCT4gbW9kZV9saWItPnZiYS5EQ0ZDTEsgKiBtb2RlX2xpYi0+dmJhLlJldHVybkJ1c1dpZHRoIC8gNC4wKQorCQlSZXR1cm5CVyA9CisJCQkJZG1sX21pbigKKwkJCQkJCVJldHVybkJXLAorCQkJCQkJUmV0dXJuQmFuZHdpZHRoVG9EQ04gKiA0CisJCQkJCQkJCSogKDEuMAorCQkJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seQorCQkJCQkJCQkJCQkJLyAoKG1vZGVfbGliLT52YmEuUk9CQnVmZmVyU2l6ZUluS0J5dGUKKwkJCQkJCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLlBpeGVsQ2h1bmtTaXplSW5LQnl0ZSkKKwkJCQkJCQkJCQkJCQkJKiAxMDI0CisJCQkJCQkJCQkJCQkJCS8gUmV0dXJuQmFuZHdpZHRoVG9EQ04KKwkJCQkJCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLkRDRkNMSworCQkJCQkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5SZXR1cm5CdXNXaWR0aAorCQkJCQkJCQkJCQkJCQkJCS8gNCkKKwkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeVBpeGVsRGF0YU9ubHkpKTsKKworCUNyaXRpY2FsQ29tcHJlc3Npb24gPSAyLjAgKiBtb2RlX2xpYi0+dmJhLlJldHVybkJ1c1dpZHRoICogbW9kZV9saWItPnZiYS5EQ0ZDTEsKKwkJCSogbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seQorCQkJLyAoUmV0dXJuQmFuZHdpZHRoVG9EQ04gKiBtb2RlX2xpYi0+dmJhLlVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5CisJCQkJCSsgKG1vZGVfbGliLT52YmEuUk9CQnVmZmVyU2l6ZUluS0J5dGUKKwkJCQkJCQktIG1vZGVfbGliLT52YmEuUGl4ZWxDaHVua1NpemVJbktCeXRlKQorCQkJCQkJCSogMTAyNCk7CisKKwlpZiAoRENDRW5hYmxlZEFueVBsYW5lICYmIENyaXRpY2FsQ29tcHJlc3Npb24gPiAxLjAgJiYgQ3JpdGljYWxDb21wcmVzc2lvbiA8IDQuMCkKKwkJUmV0dXJuQlcgPQorCQkJCWRtbF9taW4oCisJCQkJCQlSZXR1cm5CVywKKwkJCQkJCTQuMCAqIFJldHVybkJhbmR3aWR0aFRvRENOCisJCQkJCQkJCSogKG1vZGVfbGliLT52YmEuUk9CQnVmZmVyU2l6ZUluS0J5dGUKKwkJCQkJCQkJCQktIG1vZGVfbGliLT52YmEuUGl4ZWxDaHVua1NpemVJbktCeXRlKQorCQkJCQkJCQkqIDEwMjQKKwkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlJldHVybkJ1c1dpZHRoCisJCQkJCQkJCSogbW9kZV9saWItPnZiYS5EQ0ZDTEsKKwkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5CisJCQkJCQkJCS8gZG1sX3BvdygKKwkJCQkJCQkJCQkoUmV0dXJuQmFuZHdpZHRoVG9EQ04KKwkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seQorCQkJCQkJCQkJCQkJKyAobW9kZV9saWItPnZiYS5ST0JCdWZmZXJTaXplSW5LQnl0ZQorCQkJCQkJCQkJCQkJCQktIG1vZGVfbGliLT52YmEuUGl4ZWxDaHVua1NpemVJbktCeXRlKQorCQkJCQkJCQkJCQkJCQkqIDEwMjQpLAorCQkJCQkJCQkJCTIpKTsKKworCXJldHVybiBSZXR1cm5CVzsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCBkc2NjZUNvbXB1dGVEZWxheSgKKwkJdW5zaWduZWQgaW50IGJwYywKKwkJZG91YmxlIGJwcCwKKwkJdW5zaWduZWQgaW50IHNsaWNlV2lkdGgsCisJCXVuc2lnbmVkIGludCBudW1TbGljZXMsCisJCWVudW0gb3V0cHV0X2Zvcm1hdF9jbGFzcyBwaXhlbEZvcm1hdCkKK3sKKwkvLyB2YWxpZCBicGMgICAgICAgICA9IHNvdXJjZSBiaXRzIHBlciBjb21wb25lbnQgaW4gdGhlIHNldCBvZiB7OCwgMTAsIDEyfQorCS8vIHZhbGlkIGJwcCAgICAgICAgID0gaW5jcmVtZW50cyBvZiAxLzE2IG9mIGEgYml0CisJLy8gICAgICAgICAgICAgICAgICAgIG1pbiA9IDYvNy84IGluIE40MjAvTjQyMi80NDQsIHJlc3BlY3RpdmVseQorCS8vICAgICAgICAgICAgICAgICAgICBtYXggPSBzdWNoIHRoYXQgY29tcHJlc3Npb24gaXMgMToxCisJLy92YWxpZCBzbGljZVdpZHRoICA9IG51bWJlciBvZiBwaXhlbHMgcGVyIHNsaWNlIGxpbmUsIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUxODQvbnVtU2xpY2VzIChvciA0MDk2L251bVNsaWNlcyBpbiA0MjAgbW9kZSkKKwkvL3ZhbGlkIG51bVNsaWNlcyAgID0gbnVtYmVyIG9mIHNsaWNlcyBpbiB0aGUgaG9yaXppb250YWwgZGlyZWN0aW9uIHBlciBEU0MgZW5naW5lIGluIHRoZSBzZXQgb2YgezEsIDIsIDMsIDR9CisJLy92YWxpZCBwaXhlbEZvcm1hdCA9IHBpeGVsL2NvbG9yIGZvcm1hdCBpbiB0aGUgc2V0IG9mIHs6TjQ0NF9SR0IsIDpTNDIyLCA6TjQyMiwgOk40MjB9CisKKwkvLyBmaXhlZCB2YWx1ZQorCXVuc2lnbmVkIGludCByY01vZGVsU2l6ZSA9IDgxOTI7CisKKwkvLyBONDIyL040MjAgb3BlcmF0ZSBhdCAyIHBpeGVscyBwZXIgY2xvY2sKKwl1bnNpZ25lZCBpbnQgcGl4ZWxzUGVyQ2xvY2ssIGxzdGFsbCwgRCwgaW5pdGFsWG1pdERlbGF5LCB3LCBzLCBpeCwgd3gsIHAsIGwwLCBhLCBheCwgbCwKKwkJCURlbGF5LCBwaXhlbHM7CisKKwlpZiAocGl4ZWxGb3JtYXQgPT0gZG1fbjQyMiB8fCBwaXhlbEZvcm1hdCA9PSBkbV80MjApCisJCXBpeGVsc1BlckNsb2NrID0gMjsKKwkvLyAjYWxsIG90aGVyIG1vZGVzIG9wZXJhdGUgYXQgMSBwaXhlbCBwZXIgY2xvY2sKKwllbHNlCisJCXBpeGVsc1BlckNsb2NrID0gMTsKKworCS8vaW5pdGlhbCB0cmFuc21pdCBkZWxheSBhcyBwZXIgUFBTCisJaW5pdGFsWG1pdERlbGF5ID0gZG1sX3JvdW5kKHJjTW9kZWxTaXplIC8gMi4wIC8gYnBwIC8gcGl4ZWxzUGVyQ2xvY2spOworCisJLy9jb21wdXRlIHNzbSBkZWxheQorCWlmIChicGMgPT0gOCkKKwkJRCA9IDgxOworCWVsc2UgaWYgKGJwYyA9PSAxMCkKKwkJRCA9IDg5OworCWVsc2UKKwkJRCA9IDExMzsKKworCS8vZGl2aWRlIGJ5IHBpeGVsIHBlciBjeWNsZSB0byBjb21wdXRlIHNsaWNlIHdpZHRoIGFzIHNlZW4gYnkgRFNDCisJdyA9IHNsaWNlV2lkdGggLyBwaXhlbHNQZXJDbG9jazsKKworCS8vNDIyIG1vZGUgaGFzIGFuIGFkZGl0aW9uYWwgY3ljbGUgb2YgZGVsYXkKKwlpZiAocGl4ZWxGb3JtYXQgPT0gZG1fczQyMikKKwkJcyA9IDE7CisJZWxzZQorCQlzID0gMDsKKworCS8vbWFpbiBjYWxjdWxhdGlvbiBmb3IgdGhlIGRzY2NlCisJaXggPSBpbml0YWxYbWl0RGVsYXkgKyA0NTsKKwl3eCA9ICh3ICsgMikgLyAzOworCXAgPSAzICogd3ggLSB3OworCWwwID0gaXggLyB3OworCWEgPSBpeCArIHAgKiBsMDsKKwlheCA9IChhICsgMikgLyAzICsgRCArIDYgKyAxOworCWwgPSAoYXggKyB3eCAtIDEpIC8gd3g7CisJaWYgKChpeCAlIHcpID09IDAgJiYgcCAhPSAwKQorCQlsc3RhbGwgPSAxOworCWVsc2UKKwkJbHN0YWxsID0gMDsKKwlEZWxheSA9IGwgKiB3eCAqIChudW1TbGljZXMgLSAxKSArIGF4ICsgcyArIGxzdGFsbCArIDIyOworCisJLy9kc2MgcHJvY2Vzc2VzIDMgcGl4ZWwgY29udGFpbmVycyBwZXIgY3ljbGUgYW5kIGEgY29udGFpbmVyIGNhbiBjb250YWluIDEgb3IgMiBwaXhlbHMKKwlwaXhlbHMgPSBEZWxheSAqIDMgKiBwaXhlbHNQZXJDbG9jazsKKwlyZXR1cm4gcGl4ZWxzOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGRzY0NvbXB1dGVEZWxheShlbnVtIG91dHB1dF9mb3JtYXRfY2xhc3MgcGl4ZWxGb3JtYXQpCit7CisJdW5zaWduZWQgaW50IERlbGF5ID0gMDsKKworCWlmIChwaXhlbEZvcm1hdCA9PSBkbV80MjApIHsKKwkJLy8gICBzZnIKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjY2lmCisJCURlbGF5ID0gRGVsYXkgKyAwOworCQkvLyAgIGRzY2MgLSBpbnB1dCBkZXNlcmlhbGl6ZXIKKwkJRGVsYXkgPSBEZWxheSArIDM7CisJCS8vICAgZHNjYyBnZXRzIHBpeGVscyBldmVyeSBvdGhlciBjeWNsZQorCQlEZWxheSA9IERlbGF5ICsgMjsKKwkJLy8gICBkc2NjIC0gaW5wdXQgY2RjIGZpZm8KKwkJRGVsYXkgPSBEZWxheSArIDEyOworCQkvLyAgIGRzY2MgZ2V0cyBwaXhlbHMgZXZlcnkgb3RoZXIgY3ljbGUKKwkJRGVsYXkgPSBEZWxheSArIDEzOworCQkvLyAgIGRzY2MgLSBjZGMgdW5jZXJ0YWludHkKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjYyAtIG91dHB1dCBjZGMgZmlmbworCQlEZWxheSA9IERlbGF5ICsgNzsKKwkJLy8gICBkc2NjIGdldHMgcGl4ZWxzIGV2ZXJ5IG90aGVyIGN5Y2xlCisJCURlbGF5ID0gRGVsYXkgKyAzOworCQkvLyAgIGRzY2MgLSBjZGMgdW5jZXJ0YWludHkKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjYyAtIG91dHB1dCBzZXJpYWxpemVyCisJCURlbGF5ID0gRGVsYXkgKyAxOworCQkvLyAgIHNmdAorCQlEZWxheSA9IERlbGF5ICsgMTsKKwl9IGVsc2UgaWYgKHBpeGVsRm9ybWF0ID09IGRtX240MjIpIHsKKwkJLy8gICBzZnIKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjY2lmCisJCURlbGF5ID0gRGVsYXkgKyAxOworCQkvLyAgIGRzY2MgLSBpbnB1dCBkZXNlcmlhbGl6ZXIKKwkJRGVsYXkgPSBEZWxheSArIDU7CisJCS8vICBkc2NjIC0gaW5wdXQgY2RjIGZpZm8KKwkJRGVsYXkgPSBEZWxheSArIDI1OworCQkvLyAgIGRzY2MgLSBjZGMgdW5jZXJ0YWludHkKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjYyAtIG91dHB1dCBjZGMgZmlmbworCQlEZWxheSA9IERlbGF5ICsgMTA7CisJCS8vICAgZHNjYyAtIGNkYyB1bmNlcnRhaW50eQorCQlEZWxheSA9IERlbGF5ICsgMjsKKwkJLy8gICBkc2NjIC0gb3V0cHV0IHNlcmlhbGl6ZXIKKwkJRGVsYXkgPSBEZWxheSArIDE7CisJCS8vICAgc2Z0CisJCURlbGF5ID0gRGVsYXkgKyAxOworCX0gZWxzZSB7CisJCS8vICAgc2ZyCisJCURlbGF5ID0gRGVsYXkgKyAyOworCQkvLyAgIGRzY2NpZgorCQlEZWxheSA9IERlbGF5ICsgMDsKKwkJLy8gICBkc2NjIC0gaW5wdXQgZGVzZXJpYWxpemVyCisJCURlbGF5ID0gRGVsYXkgKyAzOworCQkvLyAgIGRzY2MgLSBpbnB1dCBjZGMgZmlmbworCQlEZWxheSA9IERlbGF5ICsgMTI7CisJCS8vICAgZHNjYyAtIGNkYyB1bmNlcnRhaW50eQorCQlEZWxheSA9IERlbGF5ICsgMjsKKwkJLy8gICBkc2NjIC0gb3V0cHV0IGNkYyBmaWZvCisJCURlbGF5ID0gRGVsYXkgKyA3OworCQkvLyAgIGRzY2MgLSBvdXRwdXQgc2VyaWFsaXplcgorCQlEZWxheSA9IERlbGF5ICsgMTsKKwkJLy8gICBkc2NjIC0gY2RjIHVuY2VydGFpbnR5CisJCURlbGF5ID0gRGVsYXkgKyAyOworCQkvLyAgIHNmdAorCQlEZWxheSA9IERlbGF5ICsgMTsKKwl9CisKKwlyZXR1cm4gRGVsYXk7Cit9CisKK3N0YXRpYyBib29sIENhbGN1bGF0ZURlbGF5QWZ0ZXJTY2FsZXIoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZG91YmxlIFJldHVybkJXLAorCQlkb3VibGUgUmVhZEJhbmR3aWR0aFBsYW5lTHVtYSwKKwkJZG91YmxlIFJlYWRCYW5kd2lkdGhQbGFuZUNocm9tYSwKKwkJZG91YmxlIFRvdGFsRGF0YVJlYWRCYW5kd2lkdGgsCisJCWRvdWJsZSBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hLAorCQlkb3VibGUgRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hLAorCQlkb3VibGUgRFBQQ0xLLAorCQlkb3VibGUgRElTUENMSywKKwkJZG91YmxlIFBpeGVsQ2xvY2ssCisJCXVuc2lnbmVkIGludCBEU0NEZWxheSwKKwkJdW5zaWduZWQgaW50IERQUFBlclBsYW5lLAorCQlib29sIFNjYWxlckVuYWJsZWQsCisJCXVuc2lnbmVkIGludCBOdW1iZXJPZkN1cnNvcnMsCisJCWRvdWJsZSBEUFBDTEtEZWxheVN1YnRvdGFsLAorCQlkb3VibGUgRFBQQ0xLRGVsYXlTQ0wsCisJCWRvdWJsZSBEUFBDTEtEZWxheVNDTExCT25seSwKKwkJZG91YmxlIERQUENMS0RlbGF5Q05WQ0Zvcm1hdGVyLAorCQlkb3VibGUgRFBQQ0xLRGVsYXlDTlZDQ3Vyc29yLAorCQlkb3VibGUgRElTUENMS0RlbGF5U3VidG90YWwsCisJCXVuc2lnbmVkIGludCBTY2FsZXJSZWNvdXRXaWR0aCwKKwkJZW51bSBvdXRwdXRfZm9ybWF0X2NsYXNzIE91dHB1dEZvcm1hdCwKKwkJdW5zaWduZWQgaW50IEhUb3RhbCwKKwkJdW5zaWduZWQgaW50IFN3YXRoV2lkdGhTaW5nbGVEUFBZLAorCQlkb3VibGUgQnl0ZVBlclBpeGVsREVUWSwKKwkJZG91YmxlIEJ5dGVQZXJQaXhlbERFVEMsCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodFksCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodEMsCisJCWJvb2wgSW50ZXJsYWNlLAorCQlib29sIFByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFAsCisJCWRvdWJsZSAqRFNUWEFmdGVyU2NhbGVyLAorCQlkb3VibGUgKkRTVFlBZnRlclNjYWxlcgorCQkpCit7CisJdW5zaWduZWQgaW50IERQUEN5Y2xlcywgRElTUENMS0N5Y2xlczsKKwlkb3VibGUgRGF0YUZhYnJpY0xpbmVEZWxpdmVyeVRpbWVMdW1hOworCWRvdWJsZSBEYXRhRmFicmljTGluZURlbGl2ZXJ5VGltZUNocm9tYTsKKwlkb3VibGUgRFNUVG90YWxQaXhlbHNBZnRlclNjYWxlcjsKKworCURhdGFGYWJyaWNMaW5lRGVsaXZlcnlUaW1lTHVtYSA9IFN3YXRoV2lkdGhTaW5nbGVEUFBZICogU3dhdGhIZWlnaHRZICogZG1sX2NlaWwoQnl0ZVBlclBpeGVsREVUWSwgMSkgLyAobW9kZV9saWItPnZiYS5SZXR1cm5CVyAqIFJlYWRCYW5kd2lkdGhQbGFuZUx1bWEgLyBUb3RhbERhdGFSZWFkQmFuZHdpZHRoKTsKKwltb2RlX2xpYi0+dmJhLkxhc3RQaXhlbE9mTGluZUV4dHJhV2F0ZXJtYXJrID0gZG1sX21heChtb2RlX2xpYi0+dmJhLkxhc3RQaXhlbE9mTGluZUV4dHJhV2F0ZXJtYXJrLCBEYXRhRmFicmljTGluZURlbGl2ZXJ5VGltZUx1bWEgLSBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hKTsKKworCWlmIChCeXRlUGVyUGl4ZWxERVRDICE9IDApIHsKKwkJRGF0YUZhYnJpY0xpbmVEZWxpdmVyeVRpbWVDaHJvbWEgPSBTd2F0aFdpZHRoU2luZ2xlRFBQWSAvIDIgKiBTd2F0aEhlaWdodEMgKiBkbWxfY2VpbChCeXRlUGVyUGl4ZWxERVRDLCAyKSAvIChtb2RlX2xpYi0+dmJhLlJldHVybkJXICogUmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hIC8gVG90YWxEYXRhUmVhZEJhbmR3aWR0aCk7CisJCW1vZGVfbGliLT52YmEuTGFzdFBpeGVsT2ZMaW5lRXh0cmFXYXRlcm1hcmsgPSBkbWxfbWF4KG1vZGVfbGliLT52YmEuTGFzdFBpeGVsT2ZMaW5lRXh0cmFXYXRlcm1hcmssIERhdGFGYWJyaWNMaW5lRGVsaXZlcnlUaW1lQ2hyb21hIC0gRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hKTsKKwl9CisKKwlpZiAoU2NhbGVyRW5hYmxlZCkKKwkJRFBQQ3ljbGVzID0gRFBQQ0xLRGVsYXlTdWJ0b3RhbCArIERQUENMS0RlbGF5U0NMOworCWVsc2UKKwkJRFBQQ3ljbGVzID0gRFBQQ0xLRGVsYXlTdWJ0b3RhbCArIERQUENMS0RlbGF5U0NMTEJPbmx5OworCisJRFBQQ3ljbGVzID0gRFBQQ3ljbGVzICsgRFBQQ0xLRGVsYXlDTlZDRm9ybWF0ZXIgKyBOdW1iZXJPZkN1cnNvcnMgKiBEUFBDTEtEZWxheUNOVkNDdXJzb3I7CisKKwlESVNQQ0xLQ3ljbGVzID0gRElTUENMS0RlbGF5U3VidG90YWw7CisKKwlpZiAoRFBQQ0xLID09IDAuMCB8fCBESVNQQ0xLID09IDAuMCkKKwkJcmV0dXJuIHRydWU7CisKKwkqRFNUWEFmdGVyU2NhbGVyID0gRFBQQ3ljbGVzICogUGl4ZWxDbG9jayAvIERQUENMSyArIERJU1BDTEtDeWNsZXMgKiBQaXhlbENsb2NrIC8gRElTUENMSworCQkJKyBEU0NEZWxheTsKKworCWlmIChEUFBQZXJQbGFuZSA+IDEpCisJCSpEU1RYQWZ0ZXJTY2FsZXIgPSAqRFNUWEFmdGVyU2NhbGVyICsgU2NhbGVyUmVjb3V0V2lkdGg7CisKKwlpZiAoT3V0cHV0Rm9ybWF0ID09IGRtXzQyMCB8fCAoSW50ZXJsYWNlICYmIFByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFApKQorCQkqRFNUWUFmdGVyU2NhbGVyID0gMTsKKwllbHNlCisJCSpEU1RZQWZ0ZXJTY2FsZXIgPSAwOworCisJRFNUVG90YWxQaXhlbHNBZnRlclNjYWxlciA9ICgoZG91YmxlKSAoKkRTVFlBZnRlclNjYWxlciAqIEhUb3RhbCkpICsgKkRTVFhBZnRlclNjYWxlcjsKKwkqRFNUWUFmdGVyU2NhbGVyID0gZG1sX2Zsb29yKERTVFRvdGFsUGl4ZWxzQWZ0ZXJTY2FsZXIgLyBIVG90YWwsIDEpOworCSpEU1RYQWZ0ZXJTY2FsZXIgPSBEU1RUb3RhbFBpeGVsc0FmdGVyU2NhbGVyIC0gKChkb3VibGUpICgqRFNUWUFmdGVyU2NhbGVyICogSFRvdGFsKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgQ2FsY3VsYXRlUHJlZmV0Y2hTY2hlZHVsZSgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgRFBQQ0xLLAorCQlkb3VibGUgRElTUENMSywKKwkJZG91YmxlIFBpeGVsQ2xvY2ssCisJCWRvdWJsZSBEQ0ZDTEtEZWVwU2xlZXAsCisJCXVuc2lnbmVkIGludCBEUFBQZXJQbGFuZSwKKwkJdW5zaWduZWQgaW50IE51bWJlck9mQ3Vyc29ycywKKwkJdW5zaWduZWQgaW50IFZCbGFuaywKKwkJdW5zaWduZWQgaW50IEhUb3RhbCwKKwkJdW5zaWduZWQgaW50IE1heEludGVyRENOVGlsZVJlcGVhdGVycywKKwkJdW5zaWduZWQgaW50IFZTdGFydHVwLAorCQl1bnNpZ25lZCBpbnQgUGFnZVRhYmxlTGV2ZWxzLAorCQlib29sIEdQVVZNRW5hYmxlLAorCQlib29sIER5bmFtaWNNZXRhZGF0YUVuYWJsZSwKKwkJdW5zaWduZWQgaW50IER5bmFtaWNNZXRhZGF0YUxpbmVzQmVmb3JlQWN0aXZlUmVxdWlyZWQsCisJCXVuc2lnbmVkIGludCBEeW5hbWljTWV0YWRhdGFUcmFuc21pdHRlZEJ5dGVzLAorCQlib29sIERDQ0VuYWJsZSwKKwkJZG91YmxlIFVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5LAorCQlkb3VibGUgVXJnZW50RXh0cmFMYXRlbmN5LAorCQlkb3VibGUgVENhbGMsCisJCXVuc2lnbmVkIGludCBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlLAorCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvdywKKwkJZG91YmxlIFByZWZldGNoU291cmNlTGluZXNZLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aFksCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRZLAorCQlkb3VibGUgVkluaXRQcmVGaWxsWSwKKwkJdW5zaWduZWQgaW50IE1heE51bVN3YXRoWSwKKwkJZG91YmxlIFByZWZldGNoU291cmNlTGluZXNDLAorCQlkb3VibGUgQnl0ZVBlclBpeGVsREVUQywKKwkJZG91YmxlIFZJbml0UHJlRmlsbEMsCisJCXVuc2lnbmVkIGludCBNYXhOdW1Td2F0aEMsCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodFksCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodEMsCisJCWRvdWJsZSBUV2FpdCwKKwkJYm9vbCBYRkNFbmFibGVkLAorCQlkb3VibGUgWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheSwKKwkJYm9vbCBJbnRlcmxhY2VFbmFibGUsCisJCWJvb2wgUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCwKKwkJZG91YmxlIERTVFhBZnRlclNjYWxlciwKKwkJZG91YmxlIERTVFlBZnRlclNjYWxlciwKKwkJZG91YmxlICpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2gsCisJCWRvdWJsZSAqUHJlZmV0Y2hCYW5kd2lkdGgsCisJCWRvdWJsZSAqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmssCisJCWRvdWJsZSAqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luVkJsYW5rLAorCQlkb3VibGUgKlZSYXRpb1ByZWZldGNoWSwKKwkJZG91YmxlICpWUmF0aW9QcmVmZXRjaEMsCisJCWRvdWJsZSAqUmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCVywKKwkJZG91YmxlICpUbm9fYncsCisJCXVuc2lnbmVkIGludCAqVlVwZGF0ZU9mZnNldFBpeCwKKwkJZG91YmxlICpWVXBkYXRlV2lkdGhQaXgsCisJCWRvdWJsZSAqVlJlYWR5T2Zmc2V0UGl4KQoreworCWJvb2wgTXlFcnJvciA9IGZhbHNlOworCWRvdWJsZSBUb3RhbFJlcGVhdGVyRGVsYXlUaW1lOworCWRvdWJsZSBUZG0sIExpbmVUaW1lLCBUc2V0dXA7CisJZG91YmxlIGRzdF95X3ByZWZldGNoX2VxdTsKKwlkb3VibGUgVHN3X290bzsKKwlkb3VibGUgcHJlZmV0Y2hfYndfb3RvOworCWRvdWJsZSBUdm1fb3RvOworCWRvdWJsZSBUcjBfb3RvOworCWRvdWJsZSBUcHJlX290bzsKKwlkb3VibGUgZHN0X3lfcHJlZmV0Y2hfb3RvOworCWRvdWJsZSBUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFID0gMDsKKwlkb3VibGUgVGltZUZvckZldGNoaW5nUm93SW5WQmxhbmsgPSAwOworCWRvdWJsZSBMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhID0gMDsKKworCSpWVXBkYXRlT2Zmc2V0UGl4ID0gZG1sX2NlaWwoSFRvdGFsIC8gNC4wLCAxKTsKKwlUb3RhbFJlcGVhdGVyRGVsYXlUaW1lID0gTWF4SW50ZXJEQ05UaWxlUmVwZWF0ZXJzICogKDIuMCAvIERQUENMSyArIDMuMCAvIERJU1BDTEspOworCSpWVXBkYXRlV2lkdGhQaXggPSAoMTQuMCAvIERDRkNMS0RlZXBTbGVlcCArIDEyLjAgLyBEUFBDTEsgKyBUb3RhbFJlcGVhdGVyRGVsYXlUaW1lKQorCQkJKiBQaXhlbENsb2NrOworCisJKlZSZWFkeU9mZnNldFBpeCA9IGRtbF9tYXgoCisJCQkxNTAuMCAvIERQUENMSywKKwkJCVRvdGFsUmVwZWF0ZXJEZWxheVRpbWUgKyAyMC4wIC8gRENGQ0xLRGVlcFNsZWVwICsgMTAuMCAvIERQUENMSykKKwkJCSogUGl4ZWxDbG9jazsKKworCVRzZXR1cCA9IChkb3VibGUpICgqVlVwZGF0ZU9mZnNldFBpeCArICpWVXBkYXRlV2lkdGhQaXggKyAqVlJlYWR5T2Zmc2V0UGl4KSAvIFBpeGVsQ2xvY2s7CisKKwlMaW5lVGltZSA9IChkb3VibGUpIEhUb3RhbCAvIFBpeGVsQ2xvY2s7CisKKwlpZiAoRHluYW1pY01ldGFkYXRhRW5hYmxlKSB7CisJCWRvdWJsZSBUZG1iZiwgVGRtZWMsIFRkbXNrczsKKworCQlUZG0gPSBkbWxfbWF4KDAuMCwgVXJnZW50RXh0cmFMYXRlbmN5IC0gVENhbGMpOworCQlUZG1iZiA9IER5bmFtaWNNZXRhZGF0YVRyYW5zbWl0dGVkQnl0ZXMgLyA0LjAgLyBESVNQQ0xLOworCQlUZG1lYyA9IExpbmVUaW1lOworCQlpZiAoRHluYW1pY01ldGFkYXRhTGluZXNCZWZvcmVBY3RpdmVSZXF1aXJlZCA9PSAwKQorCQkJVGRtc2tzID0gVkJsYW5rICogTGluZVRpbWUgLyAyLjA7CisJCWVsc2UKKwkJCVRkbXNrcyA9IER5bmFtaWNNZXRhZGF0YUxpbmVzQmVmb3JlQWN0aXZlUmVxdWlyZWQgKiBMaW5lVGltZTsKKwkJaWYgKEludGVybGFjZUVuYWJsZSAmJiAhUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCkKKwkJCVRkbXNrcyA9IFRkbXNrcyAvIDI7CisJCWlmIChWU3RhcnR1cCAqIExpbmVUaW1lCisJCQkJPCBUc2V0dXAgKyBUV2FpdCArIFVyZ2VudEV4dHJhTGF0ZW5jeSArIFRkbWJmICsgVGRtZWMgKyBUZG1za3MpIHsKKwkJCU15RXJyb3IgPSB0cnVlOworCQl9CisJfSBlbHNlCisJCVRkbSA9IDA7CisKKwlpZiAoR1BVVk1FbmFibGUpIHsKKwkJaWYgKFBhZ2VUYWJsZUxldmVscyA9PSA0KQorCQkJKlRub19idyA9IFVyZ2VudEV4dHJhTGF0ZW5jeSArIFVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5OworCQllbHNlIGlmIChQYWdlVGFibGVMZXZlbHMgPT0gMykKKwkJCSpUbm9fYncgPSBVcmdlbnRFeHRyYUxhdGVuY3k7CisJCWVsc2UKKwkJCSpUbm9fYncgPSAwOworCX0gZWxzZSBpZiAoRENDRW5hYmxlKQorCQkqVG5vX2J3ID0gTGluZVRpbWU7CisJZWxzZQorCQkqVG5vX2J3ID0gTGluZVRpbWUgLyA0OworCisJZHN0X3lfcHJlZmV0Y2hfZXF1ID0gVlN0YXJ0dXAgLSBkbWxfbWF4KFRDYWxjICsgVFdhaXQsIFhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXkpIC8gTGluZVRpbWUKKwkJCS0gKFRzZXR1cCArIFRkbSkgLyBMaW5lVGltZQorCQkJLSAoRFNUWUFmdGVyU2NhbGVyICsgRFNUWEFmdGVyU2NhbGVyIC8gSFRvdGFsKTsKKworCVRzd19vdG8gPSBkbWxfbWF4KFByZWZldGNoU291cmNlTGluZXNZLCBQcmVmZXRjaFNvdXJjZUxpbmVzQykgKiBMaW5lVGltZTsKKworCXByZWZldGNoX2J3X290byA9IChNZXRhUm93Qnl0ZSArIFBpeGVsUFRFQnl0ZXNQZXJSb3cKKwkJCSsgUHJlZmV0Y2hTb3VyY2VMaW5lc1kgKiBTd2F0aFdpZHRoWSAqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVFksIDEpCisJCQkrIFByZWZldGNoU291cmNlTGluZXNDICogU3dhdGhXaWR0aFkgLyAyICogZG1sX2NlaWwoQnl0ZVBlclBpeGVsREVUQywgMikpCisJCQkvIFRzd19vdG87CisKKwlpZiAoR1BVVk1FbmFibGUgPT0gdHJ1ZSkgeworCQlUdm1fb3RvID0KKwkJCQlkbWxfbWF4KAorCQkJCQkJKlRub19idyArIFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lIC8gcHJlZmV0Y2hfYndfb3RvLAorCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJVXJnZW50RXh0cmFMYXRlbmN5CisJCQkJCQkJCQkJKyBVcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seQorCQkJCQkJCQkJCQkJKiAoUGFnZVRhYmxlTGV2ZWxzCisJCQkJCQkJCQkJCQkJCS0gMSksCisJCQkJCQkJCUxpbmVUaW1lIC8gNC4wKSk7CisJfSBlbHNlCisJCVR2bV9vdG8gPSBMaW5lVGltZSAvIDQuMDsKKworCWlmICgoR1BVVk1FbmFibGUgPT0gdHJ1ZSB8fCBEQ0NFbmFibGUgPT0gdHJ1ZSkpIHsKKwkJVHIwX290byA9IGRtbF9tYXgoCisJCQkJKE1ldGFSb3dCeXRlICsgUGl4ZWxQVEVCeXRlc1BlclJvdykgLyBwcmVmZXRjaF9id19vdG8sCisJCQkJZG1sX21heChVcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seSwgZG1sX21heChMaW5lVGltZSAtIFR2bV9vdG8sIExpbmVUaW1lIC8gNCkpKTsKKwl9IGVsc2UKKwkJVHIwX290byA9IExpbmVUaW1lIC0gVHZtX290bzsKKworCVRwcmVfb3RvID0gVHZtX290byArIFRyMF9vdG8gKyBUc3dfb3RvOworCisJZHN0X3lfcHJlZmV0Y2hfb3RvID0gVHByZV9vdG8gLyBMaW5lVGltZTsKKworCWlmIChkc3RfeV9wcmVmZXRjaF9vdG8gPCBkc3RfeV9wcmVmZXRjaF9lcXUpCisJCSpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2ggPSBkc3RfeV9wcmVmZXRjaF9vdG87CisJZWxzZQorCQkqRGVzdGluYXRpb25MaW5lc0ZvclByZWZldGNoID0gZHN0X3lfcHJlZmV0Y2hfZXF1OworCisJKkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaCA9IGRtbF9mbG9vcig0LjAgKiAoKkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaCArIDAuMTI1KSwgMSkKKwkJCS8gNDsKKworCWRtbF9wcmludCgiRE1MOiBWU3RhcnR1cDogJWRcbiIsIFZTdGFydHVwKTsKKwlkbWxfcHJpbnQoIkRNTDogVENhbGM6ICVmXG4iLCBUQ2FsYyk7CisJZG1sX3ByaW50KCJETUw6IFRXYWl0OiAlZlxuIiwgVFdhaXQpOworCWRtbF9wcmludCgiRE1MOiBYRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5OiAlZlxuIiwgWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheSk7CisJZG1sX3ByaW50KCJETUw6IExpbmVUaW1lOiAlZlxuIiwgTGluZVRpbWUpOworCWRtbF9wcmludCgiRE1MOiBUc2V0dXA6ICVmXG4iLCBUc2V0dXApOworCWRtbF9wcmludCgiRE1MOiBUZG06ICVmXG4iLCBUZG0pOworCWRtbF9wcmludCgiRE1MOiBEU1RZQWZ0ZXJTY2FsZXI6ICVmXG4iLCBEU1RZQWZ0ZXJTY2FsZXIpOworCWRtbF9wcmludCgiRE1MOiBEU1RYQWZ0ZXJTY2FsZXI6ICVmXG4iLCBEU1RYQWZ0ZXJTY2FsZXIpOworCWRtbF9wcmludCgiRE1MOiBIVG90YWw6ICVkXG4iLCBIVG90YWwpOworCisJKlByZWZldGNoQmFuZHdpZHRoID0gMDsKKwkqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmsgPSAwOworCSpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmsgPSAwOworCSpWUmF0aW9QcmVmZXRjaFkgPSAwOworCSpWUmF0aW9QcmVmZXRjaEMgPSAwOworCSpSZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXID0gMDsKKwlpZiAoKkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaCA+IDEpIHsKKwkJKlByZWZldGNoQmFuZHdpZHRoID0gKFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lICsgMiAqIE1ldGFSb3dCeXRlCisJCQkJKyAyICogUGl4ZWxQVEVCeXRlc1BlclJvdworCQkJCSsgUHJlZmV0Y2hTb3VyY2VMaW5lc1kgKiBTd2F0aFdpZHRoWSAqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVFksIDEpCisJCQkJKyBQcmVmZXRjaFNvdXJjZUxpbmVzQyAqIFN3YXRoV2lkdGhZIC8gMgorCQkJCQkJKiBkbWxfY2VpbChCeXRlUGVyUGl4ZWxERVRDLCAyKSkKKwkJCQkvICgqRGVzdGluYXRpb25MaW5lc0ZvclByZWZldGNoICogTGluZVRpbWUgLSAqVG5vX2J3KTsKKwkJaWYgKEdQVVZNRW5hYmxlKSB7CisJCQlUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFID0KKwkJCQkJZG1sX21heCgKKwkJCQkJCQkqVG5vX2J3CisJCQkJCQkJCQkrIChkb3VibGUpIFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lCisJCQkJCQkJCQkJCS8gKlByZWZldGNoQmFuZHdpZHRoLAorCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQlVcmdlbnRFeHRyYUxhdGVuY3kKKwkJCQkJCQkJCQkJKyBVcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seQorCQkJCQkJCQkJCQkJCSogKFBhZ2VUYWJsZUxldmVscworCQkJCQkJCQkJCQkJCQkJLSAxKSwKKwkJCQkJCQkJCUxpbmVUaW1lIC8gNCkpOworCQl9IGVsc2UgeworCQkJaWYgKE51bWJlck9mQ3Vyc29ycyA+IDAgfHwgWEZDRW5hYmxlZCkKKwkJCQlUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFID0gTGluZVRpbWUgLyA0OworCQkJZWxzZQorCQkJCVRpbWVGb3JGZXRjaGluZ01ldGFQVEUgPSAwLjA7CisJCX0KKworCQlpZiAoKEdQVVZNRW5hYmxlID09IHRydWUgfHwgRENDRW5hYmxlID09IHRydWUpKSB7CisJCQlUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFuayA9CisJCQkJCWRtbF9tYXgoCisJCQkJCQkJKE1ldGFSb3dCeXRlICsgUGl4ZWxQVEVCeXRlc1BlclJvdykKKwkJCQkJCQkJCS8gKlByZWZldGNoQmFuZHdpZHRoLAorCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQlVcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seSwKKwkJCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQkJCUxpbmVUaW1lCisJCQkJCQkJCQkJCQkJLSBUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFLAorCQkJCQkJCQkJCQlMaW5lVGltZQorCQkJCQkJCQkJCQkJCS8gNC4wKSkpOworCQl9IGVsc2UgeworCQkJaWYgKE51bWJlck9mQ3Vyc29ycyA+IDAgfHwgWEZDRW5hYmxlZCkKKwkJCQlUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFuayA9IExpbmVUaW1lIC0gVGltZUZvckZldGNoaW5nTWV0YVBURTsKKwkJCWVsc2UKKwkJCQlUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFuayA9IDAuMDsKKwkJfQorCisJCSpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFuayA9IGRtbF9mbG9vcigKKwkJCQk0LjAgKiAoVGltZUZvckZldGNoaW5nTWV0YVBURSAvIExpbmVUaW1lICsgMC4xMjUpLAorCQkJCTEpIC8gNC4wOworCisJCSpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmsgPSBkbWxfZmxvb3IoCisJCQkJNC4wICogKFRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rIC8gTGluZVRpbWUgKyAwLjEyNSksCisJCQkJMSkgLyA0LjA7CisKKwkJTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YSA9CisJCQkJKkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaAorCQkJCQkJLSAoKE51bWJlck9mQ3Vyc29ycyA+IDAgfHwgR1BVVk1FbmFibGUKKwkJCQkJCQkJfHwgRENDRW5hYmxlKSA/CisJCQkJCQkJCSgqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmsKKwkJCQkJCQkJCQkrICpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmspIDoKKwkJCQkJCQkJMC4wKTsKKworCQlpZiAoTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YSA+IDApIHsKKworCQkJKlZSYXRpb1ByZWZldGNoWSA9IChkb3VibGUpIFByZWZldGNoU291cmNlTGluZXNZCisJCQkJCS8gTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YTsKKwkJCSpWUmF0aW9QcmVmZXRjaFkgPSBkbWxfbWF4KCpWUmF0aW9QcmVmZXRjaFksIDEuMCk7CisJCQlpZiAoKFN3YXRoSGVpZ2h0WSA+IDQpICYmIChWSW5pdFByZUZpbGxZID4gMykpIHsKKwkJCQlpZiAoTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YSA+IChWSW5pdFByZUZpbGxZIC0gMy4wKSAvIDIuMCkgeworCQkJCQkqVlJhdGlvUHJlZmV0Y2hZID0KKwkJCQkJCQlkbWxfbWF4KAorCQkJCQkJCQkJKGRvdWJsZSkgUHJlZmV0Y2hTb3VyY2VMaW5lc1kKKwkJCQkJCQkJCQkJLyBMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhLAorCQkJCQkJCQkJKGRvdWJsZSkgTWF4TnVtU3dhdGhZCisJCQkJCQkJCQkJCSogU3dhdGhIZWlnaHRZCisJCQkJCQkJCQkJCS8gKExpbmVzVG9SZXF1ZXN0UHJlZmV0Y2hQaXhlbERhdGEKKwkJCQkJCQkJCQkJCQktIChWSW5pdFByZUZpbGxZCisJCQkJCQkJCQkJCQkJCQktIDMuMCkKKwkJCQkJCQkJCQkJCQkJCS8gMi4wKSk7CisJCQkJCSpWUmF0aW9QcmVmZXRjaFkgPSBkbWxfbWF4KCpWUmF0aW9QcmVmZXRjaFksIDEuMCk7CisJCQkJfSBlbHNlIHsKKwkJCQkJTXlFcnJvciA9IHRydWU7CisJCQkJCSpWUmF0aW9QcmVmZXRjaFkgPSAwOworCQkJCX0KKwkJCX0KKworCQkJKlZSYXRpb1ByZWZldGNoQyA9IChkb3VibGUpIFByZWZldGNoU291cmNlTGluZXNDCisJCQkJCS8gTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YTsKKwkJCSpWUmF0aW9QcmVmZXRjaEMgPSBkbWxfbWF4KCpWUmF0aW9QcmVmZXRjaEMsIDEuMCk7CisKKwkJCWlmICgoU3dhdGhIZWlnaHRDID4gNCkpIHsKKwkJCQlpZiAoTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YSA+IChWSW5pdFByZUZpbGxDIC0gMy4wKSAvIDIuMCkgeworCQkJCQkqVlJhdGlvUHJlZmV0Y2hDID0KKwkJCQkJCQlkbWxfbWF4KAorCQkJCQkJCQkJKlZSYXRpb1ByZWZldGNoQywKKwkJCQkJCQkJCShkb3VibGUpIE1heE51bVN3YXRoQworCQkJCQkJCQkJCQkqIFN3YXRoSGVpZ2h0QworCQkJCQkJCQkJCQkvIChMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhCisJCQkJCQkJCQkJCQkJLSAoVkluaXRQcmVGaWxsQworCQkJCQkJCQkJCQkJCQkJLSAzLjApCisJCQkJCQkJCQkJCQkJCQkvIDIuMCkpOworCQkJCQkqVlJhdGlvUHJlZmV0Y2hDID0gZG1sX21heCgqVlJhdGlvUHJlZmV0Y2hDLCAxLjApOworCQkJCX0gZWxzZSB7CisJCQkJCU15RXJyb3IgPSB0cnVlOworCQkJCQkqVlJhdGlvUHJlZmV0Y2hDID0gMDsKKwkJCQl9CisJCQl9CisKKwkJCSpSZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXID0KKwkJCQkJRFBQUGVyUGxhbmUKKwkJCQkJCQkqICgoZG91YmxlKSBQcmVmZXRjaFNvdXJjZUxpbmVzWQorCQkJCQkJCQkJLyBMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhCisJCQkJCQkJCQkqIGRtbF9jZWlsKAorCQkJCQkJCQkJCQlCeXRlUGVyUGl4ZWxERVRZLAorCQkJCQkJCQkJCQkxKQorCQkJCQkJCQkJKyAoZG91YmxlKSBQcmVmZXRjaFNvdXJjZUxpbmVzQworCQkJCQkJCQkJCQkvIExpbmVzVG9SZXF1ZXN0UHJlZmV0Y2hQaXhlbERhdGEKKwkJCQkJCQkJCQkJKiBkbWxfY2VpbCgKKwkJCQkJCQkJCQkJCQlCeXRlUGVyUGl4ZWxERVRDLAorCQkJCQkJCQkJCQkJCTIpCisJCQkJCQkJCQkJCS8gMikKKwkJCQkJCQkqIFN3YXRoV2lkdGhZIC8gTGluZVRpbWU7CisJCX0gZWxzZSB7CisJCQlNeUVycm9yID0gdHJ1ZTsKKwkJCSpWUmF0aW9QcmVmZXRjaFkgPSAwOworCQkJKlZSYXRpb1ByZWZldGNoQyA9IDA7CisJCQkqUmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCVyA9IDA7CisJCX0KKworCX0gZWxzZSB7CisJCU15RXJyb3IgPSB0cnVlOworCX0KKworCWlmIChNeUVycm9yKSB7CisJCSpQcmVmZXRjaEJhbmR3aWR0aCA9IDA7CisJCVRpbWVGb3JGZXRjaGluZ01ldGFQVEUgPSAwOworCQlUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFuayA9IDA7CisJCSpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFuayA9IDA7CisJCSpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmsgPSAwOworCQkqRGVzdGluYXRpb25MaW5lc0ZvclByZWZldGNoID0gMDsKKwkJTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YSA9IDA7CisJCSpWUmF0aW9QcmVmZXRjaFkgPSAwOworCQkqVlJhdGlvUHJlZmV0Y2hDID0gMDsKKwkJKlJlcXVpcmVkUHJlZmV0Y2hQaXhEYXRhQlcgPSAwOworCX0KKworCXJldHVybiBNeUVycm9yOworfQorCitzdGF0aWMgZG91YmxlIFJvdW5kVG9ERlNHcmFudWxhcml0eVVwKGRvdWJsZSBDbG9jaywgZG91YmxlIFZDT1NwZWVkKQoreworCXJldHVybiBWQ09TcGVlZCAqIDQgLyBkbWxfZmxvb3IoVkNPU3BlZWQgKiA0IC8gQ2xvY2ssIDEpOworfQorCitzdGF0aWMgZG91YmxlIFJvdW5kVG9ERlNHcmFudWxhcml0eURvd24oZG91YmxlIENsb2NrLCBkb3VibGUgVkNPU3BlZWQpCit7CisJcmV0dXJuIFZDT1NwZWVkICogNCAvIGRtbF9jZWlsKFZDT1NwZWVkICogNCAvIENsb2NrLCAxKTsKK30KKworc3RhdGljIGRvdWJsZSBDYWxjdWxhdGVQcmVmZXRjaFNvdXJjZUxpbmVzKAorCQlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRvdWJsZSBWUmF0aW8sCisJCWRvdWJsZSB2dGFwcywKKwkJYm9vbCBJbnRlcmxhY2UsCisJCWJvb2wgUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0LAorCQl1bnNpZ25lZCBpbnQgVmlld3BvcnRZU3RhcnQsCisJCWRvdWJsZSAqVkluaXRQcmVGaWxsLAorCQl1bnNpZ25lZCBpbnQgKk1heE51bVN3YXRoKQoreworCXVuc2lnbmVkIGludCBNYXhQYXJ0aWFsU3dhdGg7CisKKwlpZiAoUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCkKKwkJKlZJbml0UHJlRmlsbCA9IGRtbF9mbG9vcigoVlJhdGlvICsgdnRhcHMgKyAxKSAvIDIuMCwgMSk7CisJZWxzZQorCQkqVkluaXRQcmVGaWxsID0gZG1sX2Zsb29yKChWUmF0aW8gKyB2dGFwcyArIDEgKyBJbnRlcmxhY2UgKiAwLjUgKiBWUmF0aW8pIC8gMi4wLCAxKTsKKworCWlmICghbW9kZV9saWItPnZiYS5JZ25vcmVWaWV3cG9ydFBvc2l0aW9uaW5nKSB7CisKKwkJKk1heE51bVN3YXRoID0gZG1sX2NlaWwoKCpWSW5pdFByZUZpbGwgLSAxLjApIC8gU3dhdGhIZWlnaHQsIDEpICsgMS4wOworCisJCWlmICgqVkluaXRQcmVGaWxsID4gMS4wKQorCQkJTWF4UGFydGlhbFN3YXRoID0gKHVuc2lnbmVkIGludCkgKCpWSW5pdFByZUZpbGwgLSAyKSAlIFN3YXRoSGVpZ2h0OworCQllbHNlCisJCQlNYXhQYXJ0aWFsU3dhdGggPSAodW5zaWduZWQgaW50KSAoKlZJbml0UHJlRmlsbCArIFN3YXRoSGVpZ2h0IC0gMikKKwkJCQkJJSBTd2F0aEhlaWdodDsKKwkJTWF4UGFydGlhbFN3YXRoID0gZG1sX21heCgxVSwgTWF4UGFydGlhbFN3YXRoKTsKKworCX0gZWxzZSB7CisKKwkJaWYgKFZpZXdwb3J0WVN0YXJ0ICE9IDApCisJCQlkbWxfcHJpbnQoCisJCQkJCSJXQVJOSU5HIERNTDogdXNpbmcgdmlld3BvcnQgeSBwb3NpdGlvbiBvZiAwIGV2ZW4gdGhvdWdoIGFjdHVhbCB2aWV3cG9ydCB5IHBvc2l0aW9uIGlzIG5vbi16ZXJvIGluIHByZWZldGNoIHNvdXJjZSBsaW5lcyBjYWxjdWxhdGlvblxuIik7CisKKwkJKk1heE51bVN3YXRoID0gZG1sX2NlaWwoKlZJbml0UHJlRmlsbCAvIFN3YXRoSGVpZ2h0LCAxKTsKKworCQlpZiAoKlZJbml0UHJlRmlsbCA+IDEuMCkKKwkJCU1heFBhcnRpYWxTd2F0aCA9ICh1bnNpZ25lZCBpbnQpICgqVkluaXRQcmVGaWxsIC0gMSkgJSBTd2F0aEhlaWdodDsKKwkJZWxzZQorCQkJTWF4UGFydGlhbFN3YXRoID0gKHVuc2lnbmVkIGludCkgKCpWSW5pdFByZUZpbGwgKyBTd2F0aEhlaWdodCAtIDEpCisJCQkJCSUgU3dhdGhIZWlnaHQ7CisJfQorCisJcmV0dXJuICpNYXhOdW1Td2F0aCAqIFN3YXRoSGVpZ2h0ICsgTWF4UGFydGlhbFN3YXRoOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IENhbGN1bGF0ZVZNQW5kUm93Qnl0ZXMoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJYm9vbCBEQ0NFbmFibGUsCisJCXVuc2lnbmVkIGludCBCbG9ja0hlaWdodDI1NkJ5dGVzLAorCQl1bnNpZ25lZCBpbnQgQmxvY2tXaWR0aDI1NkJ5dGVzLAorCQllbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3MgU291cmNlUGl4ZWxGb3JtYXQsCisJCXVuc2lnbmVkIGludCBTdXJmYWNlVGlsaW5nLAorCQl1bnNpZ25lZCBpbnQgQnl0ZVBlclBpeGVsLAorCQllbnVtIHNjYW5fZGlyZWN0aW9uX2NsYXNzIFNjYW5EaXJlY3Rpb24sCisJCXVuc2lnbmVkIGludCBWaWV3cG9ydFdpZHRoLAorCQl1bnNpZ25lZCBpbnQgVmlld3BvcnRIZWlnaHQsCisJCXVuc2lnbmVkIGludCBTd2F0aFdpZHRoLAorCQlib29sIEdQVVZNRW5hYmxlLAorCQl1bnNpZ25lZCBpbnQgVk1NUGFnZVNpemUsCisJCXVuc2lnbmVkIGludCBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0x1bWEsCisJCXVuc2lnbmVkIGludCBQREVQcm9jZXNzaW5nQnVmSW42NEtCUmVxcywKKwkJdW5zaWduZWQgaW50IFBpdGNoLAorCQl1bnNpZ25lZCBpbnQgRENDTWV0YVBpdGNoLAorCQl1bnNpZ25lZCBpbnQgKk1hY3JvVGlsZVdpZHRoLAorCQl1bnNpZ25lZCBpbnQgKk1ldGFSb3dCeXRlLAorCQl1bnNpZ25lZCBpbnQgKlBpeGVsUFRFQnl0ZXNQZXJSb3csCisJCWJvb2wgKlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZCwKKwkJdW5zaWduZWQgaW50ICpkcHRlX3Jvd19oZWlnaHQsCisJCXVuc2lnbmVkIGludCAqbWV0YV9yb3dfaGVpZ2h0KQoreworCXVuc2lnbmVkIGludCBNZXRhUmVxdWVzdEhlaWdodDsKKwl1bnNpZ25lZCBpbnQgTWV0YVJlcXVlc3RXaWR0aDsKKwl1bnNpZ25lZCBpbnQgTWV0YVN1cmZXaWR0aDsKKwl1bnNpZ25lZCBpbnQgTWV0YVN1cmZIZWlnaHQ7CisJdW5zaWduZWQgaW50IE1QREVCeXRlc0ZyYW1lOworCXVuc2lnbmVkIGludCBNZXRhUFRFQnl0ZXNGcmFtZTsKKwl1bnNpZ25lZCBpbnQgRENDTWV0YVN1cmZhY2VCeXRlczsKKworCXVuc2lnbmVkIGludCBNYWNyb1RpbGVTaXplQnl0ZXM7CisJdW5zaWduZWQgaW50IE1hY3JvVGlsZUhlaWdodDsKKwl1bnNpZ25lZCBpbnQgRFBERTBCeXRlc0ZyYW1lOworCXVuc2lnbmVkIGludCBFeHRyYURQREVCeXRlc0ZyYW1lOworCXVuc2lnbmVkIGludCBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZTsKKworCWlmIChEQ0NFbmFibGUgPT0gdHJ1ZSkgeworCQlNZXRhUmVxdWVzdEhlaWdodCA9IDggKiBCbG9ja0hlaWdodDI1NkJ5dGVzOworCQlNZXRhUmVxdWVzdFdpZHRoID0gOCAqIEJsb2NrV2lkdGgyNTZCeXRlczsKKwkJaWYgKFNjYW5EaXJlY3Rpb24gPT0gZG1faG9yeikgeworCQkJKm1ldGFfcm93X2hlaWdodCA9IE1ldGFSZXF1ZXN0SGVpZ2h0OworCQkJTWV0YVN1cmZXaWR0aCA9IGRtbF9jZWlsKChkb3VibGUpIFN3YXRoV2lkdGggLSAxLCBNZXRhUmVxdWVzdFdpZHRoKQorCQkJCQkrIE1ldGFSZXF1ZXN0V2lkdGg7CisJCQkqTWV0YVJvd0J5dGUgPSBNZXRhU3VyZldpZHRoICogTWV0YVJlcXVlc3RIZWlnaHQgKiBCeXRlUGVyUGl4ZWwgLyAyNTYuMDsKKwkJfSBlbHNlIHsKKwkJCSptZXRhX3Jvd19oZWlnaHQgPSBNZXRhUmVxdWVzdFdpZHRoOworCQkJTWV0YVN1cmZIZWlnaHQgPSBkbWxfY2VpbCgoZG91YmxlKSBTd2F0aFdpZHRoIC0gMSwgTWV0YVJlcXVlc3RIZWlnaHQpCisJCQkJCSsgTWV0YVJlcXVlc3RIZWlnaHQ7CisJCQkqTWV0YVJvd0J5dGUgPSBNZXRhU3VyZkhlaWdodCAqIE1ldGFSZXF1ZXN0V2lkdGggKiBCeXRlUGVyUGl4ZWwgLyAyNTYuMDsKKwkJfQorCQlpZiAoU2NhbkRpcmVjdGlvbiA9PSBkbV9ob3J6KSB7CisJCQlEQ0NNZXRhU3VyZmFjZUJ5dGVzID0gRENDTWV0YVBpdGNoCisJCQkJCSogKGRtbF9jZWlsKFZpZXdwb3J0SGVpZ2h0IC0gMSwgNjQgKiBCbG9ja0hlaWdodDI1NkJ5dGVzKQorCQkJCQkJCSsgNjQgKiBCbG9ja0hlaWdodDI1NkJ5dGVzKSAqIEJ5dGVQZXJQaXhlbAorCQkJCQkvIDI1NjsKKwkJfSBlbHNlIHsKKwkJCURDQ01ldGFTdXJmYWNlQnl0ZXMgPSBEQ0NNZXRhUGl0Y2gKKwkJCQkJKiAoZG1sX2NlaWwoCisJCQkJCQkJKGRvdWJsZSkgVmlld3BvcnRIZWlnaHQgLSAxLAorCQkJCQkJCTY0ICogQmxvY2tIZWlnaHQyNTZCeXRlcykKKwkJCQkJCQkrIDY0ICogQmxvY2tIZWlnaHQyNTZCeXRlcykgKiBCeXRlUGVyUGl4ZWwKKwkJCQkJLyAyNTY7CisJCX0KKwkJaWYgKEdQVVZNRW5hYmxlID09IHRydWUpIHsKKwkJCU1ldGFQVEVCeXRlc0ZyYW1lID0gKGRtbF9jZWlsKAorCQkJCQkoZG91YmxlKSAoRENDTWV0YVN1cmZhY2VCeXRlcyAtIFZNTVBhZ2VTaXplKQorCQkJCQkJCS8gKDggKiBWTU1QYWdlU2l6ZSksCisJCQkJCTEpICsgMSkgKiA2NDsKKwkJCU1QREVCeXRlc0ZyYW1lID0gMTI4ICogKG1vZGVfbGliLT52YmEuR1BVVk1NYXhQYWdlVGFibGVMZXZlbHMgLSAxKTsKKwkJfSBlbHNlIHsKKwkJCU1ldGFQVEVCeXRlc0ZyYW1lID0gMDsKKwkJCU1QREVCeXRlc0ZyYW1lID0gMDsKKwkJfQorCX0gZWxzZSB7CisJCU1ldGFQVEVCeXRlc0ZyYW1lID0gMDsKKwkJTVBERUJ5dGVzRnJhbWUgPSAwOworCQkqTWV0YVJvd0J5dGUgPSAwOworCX0KKworCWlmIChTdXJmYWNlVGlsaW5nID09IGRtX3N3X2xpbmVhciB8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3X2dmeDdfMmRfdGhpbl9nbCB8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3X2dmeDdfMmRfdGhpbl9sdnApIHsKKwkJTWFjcm9UaWxlU2l6ZUJ5dGVzID0gMjU2OworCQlNYWNyb1RpbGVIZWlnaHQgPSBCbG9ja0hlaWdodDI1NkJ5dGVzOworCX0gZWxzZSBpZiAoU3VyZmFjZVRpbGluZyA9PSBkbV9zd180a2JfcyB8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3XzRrYl9zX3gKKwkJCXx8IFN1cmZhY2VUaWxpbmcgPT0gZG1fc3dfNGtiX2QgfHwgU3VyZmFjZVRpbGluZyA9PSBkbV9zd180a2JfZF94KSB7CisJCU1hY3JvVGlsZVNpemVCeXRlcyA9IDQwOTY7CisJCU1hY3JvVGlsZUhlaWdodCA9IDQgKiBCbG9ja0hlaWdodDI1NkJ5dGVzOworCX0gZWxzZSBpZiAoU3VyZmFjZVRpbGluZyA9PSBkbV9zd182NGtiX3MgfHwgU3VyZmFjZVRpbGluZyA9PSBkbV9zd182NGtiX3NfdAorCQkJfHwgU3VyZmFjZVRpbGluZyA9PSBkbV9zd182NGtiX3NfeCB8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3XzY0a2JfZAorCQkJfHwgU3VyZmFjZVRpbGluZyA9PSBkbV9zd182NGtiX2RfdCB8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3XzY0a2JfZF94CisJCQl8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3XzY0a2Jfcl94KSB7CisJCU1hY3JvVGlsZVNpemVCeXRlcyA9IDY1NTM2OworCQlNYWNyb1RpbGVIZWlnaHQgPSAxNiAqIEJsb2NrSGVpZ2h0MjU2Qnl0ZXM7CisJfSBlbHNlIHsKKwkJTWFjcm9UaWxlU2l6ZUJ5dGVzID0gMjYyMTQ0OworCQlNYWNyb1RpbGVIZWlnaHQgPSAzMiAqIEJsb2NrSGVpZ2h0MjU2Qnl0ZXM7CisJfQorCSpNYWNyb1RpbGVXaWR0aCA9IE1hY3JvVGlsZVNpemVCeXRlcyAvIEJ5dGVQZXJQaXhlbCAvIE1hY3JvVGlsZUhlaWdodDsKKworCWlmIChHUFVWTUVuYWJsZSA9PSB0cnVlICYmIG1vZGVfbGliLT52YmEuR1BVVk1NYXhQYWdlVGFibGVMZXZlbHMgPiAxKSB7CisJCWlmIChTY2FuRGlyZWN0aW9uID09IGRtX2hvcnopIHsKKwkJCURQREUwQnl0ZXNGcmFtZSA9CisJCQkJCTY0CisJCQkJCQkJKiAoZG1sX2NlaWwoCisJCQkJCQkJCQkoKFBpdGNoCisJCQkJCQkJCQkJCSogKGRtbF9jZWlsKAorCQkJCQkJCQkJCQkJCVZpZXdwb3J0SGVpZ2h0CisJCQkJCQkJCQkJCQkJCQktIDEsCisJCQkJCQkJCQkJCQkJTWFjcm9UaWxlSGVpZ2h0KQorCQkJCQkJCQkJCQkJCSsgTWFjcm9UaWxlSGVpZ2h0KQorCQkJCQkJCQkJCQkqIEJ5dGVQZXJQaXhlbCkKKwkJCQkJCQkJCQkJLSBNYWNyb1RpbGVTaXplQnl0ZXMpCisJCQkJCQkJCQkJCS8gKDgKKwkJCQkJCQkJCQkJCQkqIDIwOTcxNTIpLAorCQkJCQkJCQkJMSkgKyAxKTsKKwkJfSBlbHNlIHsKKwkJCURQREUwQnl0ZXNGcmFtZSA9CisJCQkJCTY0CisJCQkJCQkJKiAoZG1sX2NlaWwoCisJCQkJCQkJCQkoKFBpdGNoCisJCQkJCQkJCQkJCSogKGRtbF9jZWlsKAorCQkJCQkJCQkJCQkJCShkb3VibGUpIFN3YXRoV2lkdGgKKwkJCQkJCQkJCQkJCQkJCS0gMSwKKwkJCQkJCQkJCQkJCQlNYWNyb1RpbGVIZWlnaHQpCisJCQkJCQkJCQkJCQkJKyBNYWNyb1RpbGVIZWlnaHQpCisJCQkJCQkJCQkJCSogQnl0ZVBlclBpeGVsKQorCQkJCQkJCQkJCQktIE1hY3JvVGlsZVNpemVCeXRlcykKKwkJCQkJCQkJCQkJLyAoOAorCQkJCQkJCQkJCQkJCSogMjA5NzE1MiksCisJCQkJCQkJCQkxKSArIDEpOworCQl9CisJCUV4dHJhRFBERUJ5dGVzRnJhbWUgPSAxMjggKiAobW9kZV9saWItPnZiYS5HUFVWTU1heFBhZ2VUYWJsZUxldmVscyAtIDIpOworCX0gZWxzZSB7CisJCURQREUwQnl0ZXNGcmFtZSA9IDA7CisJCUV4dHJhRFBERUJ5dGVzRnJhbWUgPSAwOworCX0KKworCVBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lID0gTWV0YVBURUJ5dGVzRnJhbWUgKyBNUERFQnl0ZXNGcmFtZSArIERQREUwQnl0ZXNGcmFtZQorCQkJKyBFeHRyYURQREVCeXRlc0ZyYW1lOworCisJaWYgKEdQVVZNRW5hYmxlID09IHRydWUpIHsKKwkJdW5zaWduZWQgaW50IFBURVJlcXVlc3RTaXplOworCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVSZXFIZWlnaHQ7CisJCXVuc2lnbmVkIGludCBQaXhlbFBURVJlcVdpZHRoOworCQlkb3VibGUgRnJhY3Rpb25PZlBURVJldHVybkRyb3A7CisJCXVuc2lnbmVkIGludCBFZmZlY3RpdmVQREVQcm9jZXNzaW5nQnVmSW42NEtCUmVxczsKKworCQlpZiAoU3VyZmFjZVRpbGluZyA9PSBkbV9zd19saW5lYXIpIHsKKwkJCVBpeGVsUFRFUmVxSGVpZ2h0ID0gMTsKKwkJCVBpeGVsUFRFUmVxV2lkdGggPSA4LjAgKiBWTU1QYWdlU2l6ZSAvIEJ5dGVQZXJQaXhlbDsKKwkJCVBURVJlcXVlc3RTaXplID0gNjQ7CisJCQlGcmFjdGlvbk9mUFRFUmV0dXJuRHJvcCA9IDA7CisJCX0gZWxzZSBpZiAoTWFjcm9UaWxlU2l6ZUJ5dGVzID09IDQwOTYpIHsKKwkJCVBpeGVsUFRFUmVxSGVpZ2h0ID0gTWFjcm9UaWxlSGVpZ2h0OworCQkJUGl4ZWxQVEVSZXFXaWR0aCA9IDggKiAqTWFjcm9UaWxlV2lkdGg7CisJCQlQVEVSZXF1ZXN0U2l6ZSA9IDY0OworCQkJaWYgKFNjYW5EaXJlY3Rpb24gPT0gZG1faG9yeikKKwkJCQlGcmFjdGlvbk9mUFRFUmV0dXJuRHJvcCA9IDA7CisJCQllbHNlCisJCQkJRnJhY3Rpb25PZlBURVJldHVybkRyb3AgPSA3IC8gODsKKwkJfSBlbHNlIGlmIChWTU1QYWdlU2l6ZSA9PSA0MDk2ICYmIE1hY3JvVGlsZVNpemVCeXRlcyA+IDQwOTYpIHsKKwkJCVBpeGVsUFRFUmVxSGVpZ2h0ID0gMTYgKiBCbG9ja0hlaWdodDI1NkJ5dGVzOworCQkJUGl4ZWxQVEVSZXFXaWR0aCA9IDE2ICogQmxvY2tXaWR0aDI1NkJ5dGVzOworCQkJUFRFUmVxdWVzdFNpemUgPSAxMjg7CisJCQlGcmFjdGlvbk9mUFRFUmV0dXJuRHJvcCA9IDA7CisJCX0gZWxzZSB7CisJCQlQaXhlbFBURVJlcUhlaWdodCA9IE1hY3JvVGlsZUhlaWdodDsKKwkJCVBpeGVsUFRFUmVxV2lkdGggPSA4ICogKk1hY3JvVGlsZVdpZHRoOworCQkJUFRFUmVxdWVzdFNpemUgPSA2NDsKKwkJCUZyYWN0aW9uT2ZQVEVSZXR1cm5Ecm9wID0gMDsKKwkJfQorCisJCWlmIChTb3VyY2VQaXhlbEZvcm1hdCA9PSBkbV80MjBfOCB8fCBTb3VyY2VQaXhlbEZvcm1hdCA9PSBkbV80MjBfMTApCisJCQlFZmZlY3RpdmVQREVQcm9jZXNzaW5nQnVmSW42NEtCUmVxcyA9IFBERVByb2Nlc3NpbmdCdWZJbjY0S0JSZXFzIC8gMjsKKwkJZWxzZQorCQkJRWZmZWN0aXZlUERFUHJvY2Vzc2luZ0J1ZkluNjRLQlJlcXMgPSBQREVQcm9jZXNzaW5nQnVmSW42NEtCUmVxczsKKworCQlpZiAoU3VyZmFjZVRpbGluZyA9PSBkbV9zd19saW5lYXIpIHsKKwkJCSpkcHRlX3Jvd19oZWlnaHQgPQorCQkJCQlkbWxfbWluKAorCQkJCQkJCTEyOCwKKwkJCQkJCQkxCisJCQkJCQkJCQk8PCAodW5zaWduZWQgaW50KSBkbWxfZmxvb3IoCisJCQkJCQkJCQkJCWRtbF9sb2cyKAorCQkJCQkJCQkJCQkJCWRtbF9taW4oCisJCQkJCQkJCQkJCQkJCQkoZG91YmxlKSBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0x1bWEKKwkJCQkJCQkJCQkJCQkJCQkJKiBQaXhlbFBURVJlcVdpZHRoLAorCQkJCQkJCQkJCQkJCQkJRWZmZWN0aXZlUERFUHJvY2Vzc2luZ0J1ZkluNjRLQlJlcXMKKwkJCQkJCQkJCQkJCQkJCQkJKiA2NTUzNi4wCisJCQkJCQkJCQkJCQkJCQkJCS8gQnl0ZVBlclBpeGVsKQorCQkJCQkJCQkJCQkJCQkJLyBQaXRjaCksCisJCQkJCQkJCQkJCTEpKTsKKwkJCSpQaXhlbFBURUJ5dGVzUGVyUm93ID0gUFRFUmVxdWVzdFNpemUKKwkJCQkJKiAoZG1sX2NlaWwoCisJCQkJCQkJKGRvdWJsZSkgKFBpdGNoICogKmRwdGVfcm93X2hlaWdodCAtIDEpCisJCQkJCQkJCQkvIFBpeGVsUFRFUmVxV2lkdGgsCisJCQkJCQkJMSkgKyAxKTsKKwkJfSBlbHNlIGlmIChTY2FuRGlyZWN0aW9uID09IGRtX2hvcnopIHsKKwkJCSpkcHRlX3Jvd19oZWlnaHQgPSBQaXhlbFBURVJlcUhlaWdodDsKKwkJCSpQaXhlbFBURUJ5dGVzUGVyUm93ID0gUFRFUmVxdWVzdFNpemUKKwkJCQkJKiAoZG1sX2NlaWwoKChkb3VibGUpIFN3YXRoV2lkdGggLSAxKSAvIFBpeGVsUFRFUmVxV2lkdGgsIDEpCisJCQkJCQkJKyAxKTsKKwkJfSBlbHNlIHsKKwkJCSpkcHRlX3Jvd19oZWlnaHQgPSBkbWxfbWluKFBpeGVsUFRFUmVxV2lkdGgsICpNYWNyb1RpbGVXaWR0aCk7CisJCQkqUGl4ZWxQVEVCeXRlc1BlclJvdyA9IFBURVJlcXVlc3RTaXplCisJCQkJCSogKGRtbF9jZWlsKAorCQkJCQkJCSgoZG91YmxlKSBTd2F0aFdpZHRoIC0gMSkKKwkJCQkJCQkJCS8gUGl4ZWxQVEVSZXFIZWlnaHQsCisJCQkJCQkJMSkgKyAxKTsKKwkJfQorCQlpZiAoKlBpeGVsUFRFQnl0ZXNQZXJSb3cgKiAoMSAtIEZyYWN0aW9uT2ZQVEVSZXR1cm5Ecm9wKQorCQkJCTw9IDY0ICogUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNMdW1hKSB7CisJCQkqUFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkID0gdHJ1ZTsKKwkJfSBlbHNlIHsKKwkJCSpQVEVCdWZmZXJTaXplTm90RXhjZWVkZWQgPSBmYWxzZTsKKwkJfQorCX0gZWxzZSB7CisJCSpQaXhlbFBURUJ5dGVzUGVyUm93ID0gMDsKKwkJKlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZCA9IHRydWU7CisJfQorCisJcmV0dXJuIFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lOworfQorCitzdGF0aWMgdm9pZCBkbWwyMHYyX0RJU1BDTEtEUFBDTEtEQ0ZDTEtEZWVwU2xlZXBQcmVmZXRjaFBhcmFtZXRlcnNXYXRlcm1hcmtzQW5kUGVyZm9ybWFuY2VDYWxjdWxhdGlvbigKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliKQoreworCXVuc2lnbmVkIGludCBqLCBrOworCisJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tESVNQQ0xLID0gMC4wOworCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nID0gMDsKKwltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRob3V0UmFtcGluZyA9IDA7CisJbW9kZV9saWItPnZiYS5HbG9iYWxEUFBDTEsgPSAwLjA7CisKKwkvLyBkbWxfbWwtPnZiYS5ESVNQQ0xLIGFuZCBkbWxfbWwtPnZiYS5EUFBDTEsgQ2FsY3VsYXRpb24KKwkvLworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlW2tdKSB7CisJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0RJU1BDTEsgPQorCQkJCQlkbWxfbWF4KAorCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRElTUENMSywKKwkJCQkJCQlDYWxjdWxhdGVXcml0ZUJhY2tESVNQQ0xLKAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrSFJhdGlvW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9ba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTHVtYVZUYXBzW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFIVGFwc1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hTGluZUJ1ZmZlcldpZHRoKSk7CisJCX0KKwl9CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSA+IDEpIHsKKwkJCW1vZGVfbGliLT52YmEuUFNDTF9USFJPVUdIUFVUX0xVTUFba10gPSBkbWxfbWluKAorCQkJCQltb2RlX2xpYi0+dmJhLk1heERDSFVCVG9QU0NMVGhyb3VnaHB1dCwKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhQU0NMVG9MQlRocm91Z2hwdXQKKwkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJLyBkbWxfY2VpbCgKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuaHRhcHNba10KKwkJCQkJCQkJCQkJLyA2LjAsCisJCQkJCQkJCQkxKSk7CisJCX0gZWxzZSB7CisJCQltb2RlX2xpYi0+dmJhLlBTQ0xfVEhST1VHSFBVVF9MVU1BW2tdID0gZG1sX21pbigKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQsCisJCQkJCW1vZGVfbGliLT52YmEuTWF4UFNDTFRvTEJUaHJvdWdocHV0KTsKKwkJfQorCisJCW1vZGVfbGliLT52YmEuRFBQQ0xLVXNpbmdTaW5nbGVEUFBMdW1hID0KKwkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10KKwkJCQkJCSogZG1sX21heCgKKwkJCQkJCQkJbW9kZV9saWItPnZiYS52dGFwc1trXSAvIDYuMAorCQkJCQkJCQkJCSogZG1sX21pbigKKwkJCQkJCQkJCQkJCTEuMCwKKwkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdKSwKKwkJCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhSYXRpb1trXQorCQkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXQorCQkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBTQ0xfVEhST1VHSFBVVF9MVU1BW2tdLAorCQkJCQkJCQkJCTEuMCkpOworCisJCWlmICgobW9kZV9saWItPnZiYS5odGFwc1trXSA+IDYgfHwgbW9kZV9saWItPnZiYS52dGFwc1trXSA+IDYpCisJCQkJJiYgbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUEx1bWEKKwkJCQkJCTwgMiAqIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkgeworCQkJbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUEx1bWEgPSAyICogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQl9CisKKwkJaWYgKChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQyMF84CisJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80MjBfMTApKSB7CisJCQltb2RlX2xpYi0+dmJhLlBTQ0xfVEhST1VHSFBVVF9DSFJPTUFba10gPSAwLjA7CisJCQltb2RlX2xpYi0+dmJhLkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdID0KKwkJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUEx1bWE7CisJCX0gZWxzZSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5IUmF0aW9ba10gPiAxKSB7CisJCQkJbW9kZV9saWItPnZiYS5QU0NMX1RIUk9VR0hQVVRfQ0hST01BW2tdID0KKwkJCQkJCWRtbF9taW4oCisJCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4RENIVUJUb1BTQ0xUaHJvdWdocHV0LAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk1heFBTQ0xUb0xCVGhyb3VnaHB1dAorCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkvIDIKKwkJCQkJCQkJCQkvIGRtbF9jZWlsKAorCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IVEFQc0Nocm9tYVtrXQorCQkJCQkJCQkJCQkJCQkvIDYuMCwKKwkJCQkJCQkJCQkJCTEuMCkpOworCQkJfSBlbHNlIHsKKwkJCQltb2RlX2xpYi0+dmJhLlBTQ0xfVEhST1VHSFBVVF9DSFJPTUFba10gPSBkbWxfbWluKAorCQkJCQkJbW9kZV9saWItPnZiYS5NYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQsCisJCQkJCQltb2RlX2xpYi0+dmJhLk1heFBTQ0xUb0xCVGhyb3VnaHB1dCk7CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLkRQUENMS1VzaW5nU2luZ2xlRFBQQ2hyb21hID0KKwkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJKiBkbWxfbWF4KAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5WVEFQc0Nocm9tYVtrXQorCQkJCQkJCQkJCQkvIDYuMAorCQkJCQkJCQkJCQkqIGRtbF9taW4oCisJCQkJCQkJCQkJCQkJMS4wLAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJCQkJCQkJCQkvIDIpLAorCQkJCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuVlJhdGlvW2tdCisJCQkJCQkJCQkJCQkJLyA0CisJCQkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBTQ0xfVEhST1VHSFBVVF9DSFJPTUFba10sCisJCQkJCQkJCQkJCTEuMCkpOworCisJCQlpZiAoKG1vZGVfbGliLT52YmEuSFRBUHNDaHJvbWFba10gPiA2IHx8IG1vZGVfbGliLT52YmEuVlRBUHNDaHJvbWFba10gPiA2KQorCQkJCQkmJiBtb2RlX2xpYi0+dmJhLkRQUENMS1VzaW5nU2luZ2xlRFBQQ2hyb21hCisJCQkJCQkJPCAyICogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSB7CisJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUENocm9tYSA9IDIKKwkJCQkJCSogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQkJfQorCisJCQltb2RlX2xpYi0+dmJhLkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdID0gZG1sX21heCgKKwkJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUEx1bWEsCisJCQkJCW1vZGVfbGliLT52YmEuRFBQQ0xLVXNpbmdTaW5nbGVEUFBDaHJvbWEpOworCQl9CisJfQorCisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSAhPSBrKQorCQkJY29udGludWU7CisJCWlmIChtb2RlX2xpYi0+dmJhLk9ETUNvbWJpbmVFbmFibGVkW2tdKSB7CisJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRoUmFtcGluZyA9CisJCQkJCWRtbF9tYXgoCisJCQkJCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aFJhbXBpbmcsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdIC8gMgorCQkJCQkJCQkJKiAoMQorCQkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcKKwkJCQkJCQkJCQkJCQkvIDEwMCkKKwkJCQkJCQkJCSogKDEKKwkJCQkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtSYW1waW5nTWFyZ2luCisJCQkJCQkJCQkJCQkJLyAxMDApKTsKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhvdXRSYW1waW5nID0KKwkJCQkJZG1sX21heCgKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRob3V0UmFtcGluZywKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10gLyAyCisJCQkJCQkJCQkqICgxCisJCQkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZworCQkJCQkJCQkJCQkJCS8gMTAwKSk7CisJCX0gZWxzZSBpZiAoIW1vZGVfbGliLT52YmEuT0RNQ29tYmluZUVuYWJsZWRba10pIHsKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nID0KKwkJCQkJZG1sX21heCgKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRoUmFtcGluZywKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10KKwkJCQkJCQkJCSogKDEKKwkJCQkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nCisJCQkJCQkJCQkJCQkJLyAxMDApCisJCQkJCQkJCQkqICgxCisJCQkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5ESVNQQ0xLUmFtcGluZ01hcmdpbgorCQkJCQkJCQkJCQkJCS8gMTAwKSk7CisJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRob3V0UmFtcGluZyA9CisJCQkJCWRtbF9tYXgoCisJCQkJCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aG91dFJhbXBpbmcsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJCQkqICgxCisJCQkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZworCQkJCQkJCQkJCQkJCS8gMTAwKSk7CisJCX0KKwl9CisKKwltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRoUmFtcGluZyA9IGRtbF9tYXgoCisJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRoUmFtcGluZywKKwkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRElTUENMSyk7CisJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aG91dFJhbXBpbmcgPSBkbWxfbWF4KAorCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aG91dFJhbXBpbmcsCisJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0RJU1BDTEspOworCisJQVNTRVJUKG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS1ZDT1NwZWVkICE9IDApOworCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHkgPSBSb3VuZFRvREZTR3JhbnVsYXJpdHlVcCgKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nLAorCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLVkNPU3BlZWQpOworCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhvdXRSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHkgPSBSb3VuZFRvREZTR3JhbnVsYXJpdHlVcCgKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhvdXRSYW1waW5nLAorCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLVkNPU3BlZWQpOworCW1vZGVfbGliLT52YmEuTWF4RGlzcGNsa1JvdW5kZWRUb0RGU0dyYW51bGFyaXR5ID0gUm91bmRUb0RGU0dyYW51bGFyaXR5RG93bigKKwkJCW1vZGVfbGliLT52YmEuc29jLmNsb2NrX2xpbWl0c1ttb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzXS5kaXNwY2xrX21oeiwKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS1ZDT1NwZWVkKTsKKwlpZiAobW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aG91dFJhbXBpbmdSb3VuZGVkVG9ERlNHcmFudWxhcml0eQorCQkJPiBtb2RlX2xpYi0+dmJhLk1heERpc3BjbGtSb3VuZGVkVG9ERlNHcmFudWxhcml0eSkgeworCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtfY2FsY3VsYXRlZCA9CisJCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aG91dFJhbXBpbmdSb3VuZGVkVG9ERlNHcmFudWxhcml0eTsKKwl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHkKKwkJCT4gbW9kZV9saWItPnZiYS5NYXhEaXNwY2xrUm91bmRlZFRvREZTR3JhbnVsYXJpdHkpIHsKKwkJbW9kZV9saWItPnZiYS5ESVNQQ0xLX2NhbGN1bGF0ZWQgPSBtb2RlX2xpYi0+dmJhLk1heERpc3BjbGtSb3VuZGVkVG9ERlNHcmFudWxhcml0eTsKKwl9IGVsc2UgeworCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtfY2FsY3VsYXRlZCA9CisJCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aFJhbXBpbmdSb3VuZGVkVG9ERlNHcmFudWxhcml0eTsKKwl9CisJRFRSQUNFKCIgICBkaXNwY2xrX21oeiAoY2FsY3VsYXRlZCkgPSAlZiIsIG1vZGVfbGliLT52YmEuRElTUENMS19jYWxjdWxhdGVkKTsKKworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba10gPT0gMCkgeworCQkJbW9kZV9saWItPnZiYS5EUFBDTEtfY2FsY3VsYXRlZFtrXSA9IDA7CisJCX0gZWxzZSB7CisJCQltb2RlX2xpYi0+dmJhLkRQUENMS19jYWxjdWxhdGVkW2tdID0gbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUFtrXQorCQkJCQkvIG1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba10KKwkJCQkJKiAoMSArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDApOworCQl9CisJCW1vZGVfbGliLT52YmEuR2xvYmFsRFBQQ0xLID0gZG1sX21heCgKKwkJCQltb2RlX2xpYi0+dmJhLkdsb2JhbERQUENMSywKKwkJCQltb2RlX2xpYi0+dmJhLkRQUENMS19jYWxjdWxhdGVkW2tdKTsKKwl9CisJbW9kZV9saWItPnZiYS5HbG9iYWxEUFBDTEsgPSBSb3VuZFRvREZTR3JhbnVsYXJpdHlVcCgKKwkJCW1vZGVfbGliLT52YmEuR2xvYmFsRFBQQ0xLLAorCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLVkNPU3BlZWQpOworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJbW9kZV9saWItPnZiYS5EUFBDTEtfY2FsY3VsYXRlZFtrXSA9IG1vZGVfbGliLT52YmEuR2xvYmFsRFBQQ0xLIC8gMjU1CisJCQkJKiBkbWxfY2VpbCgKKwkJCQkJCW1vZGVfbGliLT52YmEuRFBQQ0xLX2NhbGN1bGF0ZWRba10gKiAyNTUKKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkdsb2JhbERQUENMSywKKwkJCQkJCTEpOworCQlEVFJBQ0UoIiAgIGRwcGNsa19taHpbJWldIChjYWxjdWxhdGVkKSA9ICVmIiwgaywgbW9kZV9saWItPnZiYS5EUFBDTEtfY2FsY3VsYXRlZFtrXSk7CisJfQorCisJLy8gVXJnZW50IFdhdGVybWFyaworCW1vZGVfbGliLT52YmEuRENDRW5hYmxlZEFueVBsYW5lID0gZmFsc2U7CisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykKKwkJaWYgKG1vZGVfbGliLT52YmEuRENDRW5hYmxlW2tdKQorCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVkQW55UGxhbmUgPSB0cnVlOworCisJbW9kZV9saWItPnZiYS5SZXR1cm5CYW5kd2lkdGhUb0RDTiA9IGRtbF9taW4oCisJCQltb2RlX2xpYi0+dmJhLlJldHVybkJ1c1dpZHRoICogbW9kZV9saWItPnZiYS5EQ0ZDTEssCisJCQltb2RlX2xpYi0+dmJhLkZhYnJpY0FuZERSQU1CYW5kd2lkdGggKiAxMDAwKQorCQkJKiBtb2RlX2xpYi0+dmJhLlBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5UGl4ZWxEYXRhT25seSAvIDEwMDsKKworCW1vZGVfbGliLT52YmEuUmV0dXJuQlcgPSBtb2RlX2xpYi0+dmJhLlJldHVybkJhbmR3aWR0aFRvRENOOworCW1vZGVfbGliLT52YmEuUmV0dXJuQlcgPSBhZGp1c3RfUmV0dXJuQlcoCisJCQltb2RlX2xpYiwKKwkJCW1vZGVfbGliLT52YmEuUmV0dXJuQlcsCisJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZWRBbnlQbGFuZSwKKwkJCW1vZGVfbGliLT52YmEuUmV0dXJuQmFuZHdpZHRoVG9EQ04pOworCisJLy8gTGV0J3MgZG8gdGhpcyBjYWxjdWxhdGlvbiBhZ2Fpbj8/CisJbW9kZV9saWItPnZiYS5SZXR1cm5CYW5kd2lkdGhUb0RDTiA9IGRtbF9taW4oCisJCQltb2RlX2xpYi0+dmJhLlJldHVybkJ1c1dpZHRoICogbW9kZV9saWItPnZiYS5EQ0ZDTEssCisJCQltb2RlX2xpYi0+dmJhLkZhYnJpY0FuZERSQU1CYW5kd2lkdGggKiAxMDAwKTsKKwltb2RlX2xpYi0+dmJhLlJldHVybkJXID0gYWRqdXN0X1JldHVybkJXKAorCQkJbW9kZV9saWIsCisJCQltb2RlX2xpYi0+dmJhLlJldHVybkJXLAorCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVkQW55UGxhbmUsCisJCQltb2RlX2xpYi0+dmJhLlJldHVybkJhbmR3aWR0aFRvRENOKTsKKworCURUUkFDRSgiICAgZGNmY2xrX21oeiAgICAgICAgID0gJWYiLCBtb2RlX2xpYi0+dmJhLkRDRkNMSyk7CisJRFRSQUNFKCIgICByZXR1cm5fYndfdG9fZGNuICAgPSAlZiIsIG1vZGVfbGliLT52YmEuUmV0dXJuQmFuZHdpZHRoVG9EQ04pOworCURUUkFDRSgiICAgcmV0dXJuX2J1c19idyAgICAgID0gJWYiLCBtb2RlX2xpYi0+dmJhLlJldHVybkJXKTsKKworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJYm9vbCBNYWluUGxhbmVEb2VzT0RNQ29tYmluZSA9IGZhbHNlOworCisJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikKKwkJCW1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFNpbmdsZURQUFlba10gPSBtb2RlX2xpYi0+dmJhLlZpZXdwb3J0V2lkdGhba107CisJCWVsc2UKKwkJCW1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFNpbmdsZURQUFlba10gPSBtb2RlX2xpYi0+dmJhLlZpZXdwb3J0SGVpZ2h0W2tdOworCisJCWlmIChtb2RlX2xpYi0+dmJhLk9ETUNvbWJpbmVFbmFibGVkW2tdID09IHRydWUpCisJCQlNYWluUGxhbmVEb2VzT0RNQ29tYmluZSA9IHRydWU7CisJCWZvciAoaiA9IDA7IGogPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2opCisJCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBqCisJCQkJCSYmIG1vZGVfbGliLT52YmEuT0RNQ29tYmluZUVuYWJsZWRbal0gPT0gdHJ1ZSkKKwkJCQlNYWluUGxhbmVEb2VzT0RNQ29tYmluZSA9IHRydWU7CisKKwkJaWYgKE1haW5QbGFuZURvZXNPRE1Db21iaW5lID09IHRydWUpCisJCQltb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhZW2tdID0gZG1sX21pbigKKwkJCQkJKGRvdWJsZSkgbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoU2luZ2xlRFBQWVtrXSwKKwkJCQkJZG1sX3JvdW5kKAorCQkJCQkJCW1vZGVfbGliLT52YmEuSEFjdGl2ZVtrXSAvIDIuMAorCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSkpOworCQllbHNlIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdID09IDApIHsKKwkJCQltb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhZW2tdID0gMDsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXSA9IG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFNpbmdsZURQUFlba10KKwkJCQkJCS8gbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZVtrXTsKKwkJCX0KKwkJfQorCX0KKworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzY0KSB7CisJCQltb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVFlba10gPSA4OworCQkJbW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxERVRDW2tdID0gMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8zMikgeworCQkJbW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxERVRZW2tdID0gNDsKKwkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUQ1trXSA9IDA7CisJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMTYpIHsKKwkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUWVtrXSA9IDI7CisJCQltb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10gPSAwOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzgpIHsKKwkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUWVtrXSA9IDE7CisJCQltb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10gPSAwOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzgpIHsKKwkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUWVtrXSA9IDE7CisJCQltb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10gPSAyOworCQl9IGVsc2UgeyAvLyBkbV80MjBfMTAKKwkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUWVtrXSA9IDQuMCAvIDMuMDsKKwkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUQ1trXSA9IDguMCAvIDMuMDsKKwkJfQorCX0KKworCW1vZGVfbGliLT52YmEuVG90YWxEYXRhUmVhZEJhbmR3aWR0aCA9IDAuMDsKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCW1vZGVfbGliLT52YmEuUmVhZEJhbmR3aWR0aFBsYW5lTHVtYVtrXSA9IG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFNpbmdsZURQUFlba10KKwkJCQkqIGRtbF9jZWlsKG1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUWVtrXSwgMSkKKwkJCQkvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkKKwkJCQkqIG1vZGVfbGliLT52YmEuVlJhdGlvW2tdOworCQltb2RlX2xpYi0+dmJhLlJlYWRCYW5kd2lkdGhQbGFuZUNocm9tYVtrXSA9IG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFNpbmdsZURQUFlba10KKwkJCQkvIDIgKiBkbWxfY2VpbChtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10sIDIpCisJCQkJLyAobW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pCisJCQkJKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSAvIDI7CisJCURUUkFDRSgKKwkJCQkiICAgcmVhZF9id1slaV0gPSAlZkJwcyIsCisJCQkJaywKKwkJCQltb2RlX2xpYi0+dmJhLlJlYWRCYW5kd2lkdGhQbGFuZUx1bWFba10KKwkJCQkJCSsgbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoUGxhbmVDaHJvbWFba10pOworCQltb2RlX2xpYi0+dmJhLlRvdGFsRGF0YVJlYWRCYW5kd2lkdGggKz0gbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoUGxhbmVMdW1hW2tdCisJCQkJKyBtb2RlX2xpYi0+dmJhLlJlYWRCYW5kd2lkdGhQbGFuZUNocm9tYVtrXTsKKwl9CisKKwltb2RlX2xpYi0+dmJhLlRvdGFsRENDQWN0aXZlRFBQID0gMDsKKwltb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlRFBQID0gMDsKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCW1vZGVfbGliLT52YmEuVG90YWxBY3RpdmVEUFAgPSBtb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlRFBQCisJCQkJKyBtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdOworCQlpZiAobW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10pCisJCQltb2RlX2xpYi0+dmJhLlRvdGFsRENDQWN0aXZlRFBQID0gbW9kZV9saWItPnZiYS5Ub3RhbERDQ0FjdGl2ZURQUAorCQkJCQkrIG1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba107CisJfQorCisJbW9kZV9saWItPnZiYS5VcmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeSA9CisJCQkobW9kZV9saWItPnZiYS5Sb3VuZFRyaXBQaW5nTGF0ZW5jeUN5Y2xlcyArIDMyKSAvIG1vZGVfbGliLT52YmEuRENGQ0xLCisJCQkJCSsgbW9kZV9saWItPnZiYS5VcmdlbnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFBpeGVsRGF0YU9ubHkKKwkJCQkJCQkqIG1vZGVfbGliLT52YmEuTnVtYmVyT2ZDaGFubmVscworCQkJCQkJCS8gbW9kZV9saWItPnZiYS5SZXR1cm5CVzsKKworCW1vZGVfbGliLT52YmEuTGFzdFBpeGVsT2ZMaW5lRXh0cmFXYXRlcm1hcmsgPSAwOworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSA8PSAxLjApCisJCQkJbW9kZV9saWItPnZiYS5EaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hW2tdID0KKwkJCQkJCShkb3VibGUpIG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10KKwkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdCisJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba107CisJCQllbHNlCisJCQkJbW9kZV9saWItPnZiYS5EaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hW2tdID0KKwkJCQkJCShkb3VibGUpIG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10KKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBTQ0xfVEhST1VHSFBVVF9MVU1BW2tdCisJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5EUFBDTEtba107CisKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10gPT0gMCkKKwkJCQltb2RlX2xpYi0+dmJhLkRpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUNocm9tYVtrXSA9IDAuMDsKKwkJCWVsc2UgaWYgKG1vZGVfbGliLT52YmEuVlJhdGlvW2tdIC8gMi4wIDw9IDEuMCkKKwkJCQltb2RlX2xpYi0+dmJhLkRpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUNocm9tYVtrXSA9CisJCQkJCQltb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhZW2tdIC8gMi4wCisJCQkJCQkJCSogbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZVtrXQorCQkJCQkJCQkvIChtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSAvIDIuMCkKKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba107CisJCQllbHNlCisJCQkJbW9kZV9saWItPnZiYS5EaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFba10gPQorCQkJCQkJbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXSAvIDIuMAorCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUFNDTF9USFJPVUdIUFVUX0NIUk9NQVtrXQorCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuRFBQQ0xLW2tdOworCQl9CisKKwltb2RlX2xpYi0+dmJhLlVyZ2VudEV4dHJhTGF0ZW5jeSA9IG1vZGVfbGliLT52YmEuVXJnZW50Um91bmRUcmlwQW5kT3V0T2ZPcmRlckxhdGVuY3kKKwkJCSsgKG1vZGVfbGliLT52YmEuVG90YWxBY3RpdmVEUFAgKiBtb2RlX2xpYi0+dmJhLlBpeGVsQ2h1bmtTaXplSW5LQnl0ZQorCQkJCQkrIG1vZGVfbGliLT52YmEuVG90YWxEQ0NBY3RpdmVEUFAKKwkJCQkJCQkqIG1vZGVfbGliLT52YmEuTWV0YUNodW5rU2l6ZSkgKiAxMDI0LjAKKwkJCQkJLyBtb2RlX2xpYi0+dmJhLlJldHVybkJXOworCisJaWYgKG1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUpCisJCW1vZGVfbGliLT52YmEuVXJnZW50RXh0cmFMYXRlbmN5ICs9IG1vZGVfbGliLT52YmEuVG90YWxBY3RpdmVEUFAKKwkJCQkqIG1vZGVfbGliLT52YmEuUFRFR3JvdXBTaXplIC8gbW9kZV9saWItPnZiYS5SZXR1cm5CVzsKKworCW1vZGVfbGliLT52YmEuVXJnZW50V2F0ZXJtYXJrID0gbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seQorCQkJKyBtb2RlX2xpYi0+dmJhLkxhc3RQaXhlbE9mTGluZUV4dHJhV2F0ZXJtYXJrCisJCQkrIG1vZGVfbGliLT52YmEuVXJnZW50RXh0cmFMYXRlbmN5OworCisJRFRSQUNFKCIgICB1cmdlbnRfZXh0cmFfbGF0ZW5jeSA9ICVmdXMiLCBtb2RlX2xpYi0+dmJhLlVyZ2VudEV4dHJhTGF0ZW5jeSk7CisJRFRSQUNFKCIgICB3bV91cmdlbnQgPSAlZnVzIiwgbW9kZV9saWItPnZiYS5VcmdlbnRXYXRlcm1hcmspOworCisJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5ID0gbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seTsKKworCW1vZGVfbGliLT52YmEuVG90YWxBY3RpdmVXcml0ZWJhY2sgPSAwOworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlW2tdKQorCQkJbW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZVdyaXRlYmFjayA9IG1vZGVfbGliLT52YmEuVG90YWxBY3RpdmVXcml0ZWJhY2sgKyBtb2RlX2xpYi0+dmJhLkFjdGl2ZVdyaXRlYmFja3NQZXJQbGFuZVtrXTsKKwl9CisKKwlpZiAobW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZVdyaXRlYmFjayA8PSAxKQorCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1VyZ2VudFdhdGVybWFyayA9IG1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeTsKKwllbHNlCisJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrVXJnZW50V2F0ZXJtYXJrID0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5CisJCQkJKyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0NodW5rU2l6ZSAqIDEwMjQuMCAvIDMyCisJCQkJCQkvIG1vZGVfbGliLT52YmEuU09DQ0xLOworCisJRFRSQUNFKCIgICB3bV93Yl91cmdlbnQgPSAlZnVzIiwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tVcmdlbnRXYXRlcm1hcmspOworCisJLy8gTkIgUC1TdGF0ZS9EUkFNIENsb2NrIENoYW5nZSBXYXRlcm1hcmsKKwltb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZVdhdGVybWFyayA9IG1vZGVfbGliLT52YmEuRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeQorCQkJKyBtb2RlX2xpYi0+dmJhLlVyZ2VudFdhdGVybWFyazsKKworCURUUkFDRSgiICAgd21fcHN0YXRlX2NoYW5nZSA9ICVmdXMiLCBtb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZVdhdGVybWFyayk7CisKKwlEVFJBQ0UoIiAgIGNhbGN1bGF0aW5nIHdiIHBzdGF0ZSB3YXRlcm1hcmsiKTsKKwlEVFJBQ0UoIiAgICAgIHRvdGFsIHdiIG91dHB1dHMgJWQiLCBtb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlV3JpdGViYWNrKTsKKwlEVFJBQ0UoIiAgICAgIHNvY2NsayBmcmVxdWVuY3kgJWYgTWh6IiwgbW9kZV9saWItPnZiYS5TT0NDTEspOworCisJaWYgKG1vZGVfbGliLT52YmEuVG90YWxBY3RpdmVXcml0ZWJhY2sgPD0gMSkKKwkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcmsgPQorCQkJCW1vZGVfbGliLT52YmEuRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeQorCQkJCQkJKyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0xhdGVuY3k7CisJZWxzZQorCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0RSQU1DbG9ja0NoYW5nZVdhdGVybWFyayA9CisJCQkJbW9kZV9saWItPnZiYS5EUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5CisJCQkJCQkrIG1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeQorCQkJCQkJKyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0NodW5rU2l6ZSAqIDEwMjQuMCAvIDMyCisJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5TT0NDTEs7CisKKwlEVFJBQ0UoIiAgIHdtX3diX3BzdGF0ZSAlZnVzIiwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcmspOworCisJLy8gU3R1dHRlciBFZmZpY2llbmN5CisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQltb2RlX2xpYi0+dmJhLkxpbmVzSW5ERVRZW2tdID0gbW9kZV9saWItPnZiYS5ERVRCdWZmZXJTaXplWVtrXQorCQkJCS8gbW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxERVRZW2tdIC8gbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXTsKKwkJbW9kZV9saWItPnZiYS5MaW5lc0luREVUWVJvdW5kZWREb3duVG9Td2F0aFtrXSA9IGRtbF9mbG9vcigKKwkJCQltb2RlX2xpYi0+dmJhLkxpbmVzSW5ERVRZW2tdLAorCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRZW2tdKTsKKwkJbW9kZV9saWItPnZiYS5GdWxsREVUQnVmZmVyaW5nVGltZVlba10gPQorCQkJCW1vZGVfbGliLT52YmEuTGluZXNJbkRFVFlSb3VuZGVkRG93blRvU3dhdGhba10KKwkJCQkJCSogKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKQorCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXTsKKwkJaWYgKG1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUQ1trXSA+IDApIHsKKwkJCW1vZGVfbGliLT52YmEuTGluZXNJbkRFVENba10gPSBtb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVDW2tdCisJCQkJCS8gbW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxERVRDW2tdCisJCQkJCS8gKG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10gLyAyKTsKKwkJCW1vZGVfbGliLT52YmEuTGluZXNJbkRFVENSb3VuZGVkRG93blRvU3dhdGhba10gPSBkbWxfZmxvb3IoCisJCQkJCW1vZGVfbGliLT52YmEuTGluZXNJbkRFVENba10sCisJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDW2tdKTsKKwkJCW1vZGVfbGliLT52YmEuRnVsbERFVEJ1ZmZlcmluZ1RpbWVDW2tdID0KKwkJCQkJbW9kZV9saWItPnZiYS5MaW5lc0luREVUQ1JvdW5kZWREb3duVG9Td2F0aFtrXQorCQkJCQkJCSogKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkKKwkJCQkJCQkvIChtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSAvIDIpOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5MaW5lc0luREVUQ1trXSA9IDA7CisJCQltb2RlX2xpYi0+dmJhLkxpbmVzSW5ERVRDUm91bmRlZERvd25Ub1N3YXRoW2tdID0gMDsKKwkJCW1vZGVfbGliLT52YmEuRnVsbERFVEJ1ZmZlcmluZ1RpbWVDW2tdID0gOTk5OTk5OworCQl9CisJfQorCisJbW9kZV9saWItPnZiYS5NaW5GdWxsREVUQnVmZmVyaW5nVGltZSA9IDk5OTk5OS4wOworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuRnVsbERFVEJ1ZmZlcmluZ1RpbWVZW2tdCisJCQkJPCBtb2RlX2xpYi0+dmJhLk1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lKSB7CisJCQltb2RlX2xpYi0+dmJhLk1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lID0KKwkJCQkJbW9kZV9saWItPnZiYS5GdWxsREVUQnVmZmVyaW5nVGltZVlba107CisJCQltb2RlX2xpYi0+dmJhLkZyYW1lVGltZUZvck1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lID0KKwkJCQkJKGRvdWJsZSkgbW9kZV9saWItPnZiYS5WVG90YWxba10gKiBtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQl9CisJCWlmIChtb2RlX2xpYi0+dmJhLkZ1bGxERVRCdWZmZXJpbmdUaW1lQ1trXQorCQkJCTwgbW9kZV9saWItPnZiYS5NaW5GdWxsREVUQnVmZmVyaW5nVGltZSkgeworCQkJbW9kZV9saWItPnZiYS5NaW5GdWxsREVUQnVmZmVyaW5nVGltZSA9CisJCQkJCW1vZGVfbGliLT52YmEuRnVsbERFVEJ1ZmZlcmluZ1RpbWVDW2tdOworCQkJbW9kZV9saWItPnZiYS5GcmFtZVRpbWVGb3JNaW5GdWxsREVUQnVmZmVyaW5nVGltZSA9CisJCQkJCShkb3VibGUpIG1vZGVfbGliLT52YmEuVlRvdGFsW2tdICogbW9kZV9saWItPnZiYS5IVG90YWxba10KKwkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXTsKKwkJfQorCX0KKworCW1vZGVfbGliLT52YmEuQXZlcmFnZVJlYWRCYW5kd2lkdGhHQnl0ZVBlclNlY29uZCA9IDAuMDsKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSkgeworCQkJbW9kZV9saWItPnZiYS5BdmVyYWdlUmVhZEJhbmR3aWR0aEdCeXRlUGVyU2Vjb25kID0KKwkJCQkJbW9kZV9saWItPnZiYS5BdmVyYWdlUmVhZEJhbmR3aWR0aEdCeXRlUGVyU2Vjb25kCisJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLlJlYWRCYW5kd2lkdGhQbGFuZUx1bWFba10KKwkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5EQ0NSYXRlW2tdCisJCQkJCQkJCQkvIDEwMDAKKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuUmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdCisJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuRENDUmF0ZVtrXQorCQkJCQkJCQkJLyAxMDAwOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5BdmVyYWdlUmVhZEJhbmR3aWR0aEdCeXRlUGVyU2Vjb25kID0KKwkJCQkJbW9kZV9saWItPnZiYS5BdmVyYWdlUmVhZEJhbmR3aWR0aEdCeXRlUGVyU2Vjb25kCisJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLlJlYWRCYW5kd2lkdGhQbGFuZUx1bWFba10KKwkJCQkJCQkJCS8gMTAwMAorCQkJCQkJCSsgbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoUGxhbmVDaHJvbWFba10KKwkJCQkJCQkJCS8gMTAwMDsKKwkJfQorCQlpZiAobW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10pIHsKKwkJCW1vZGVfbGliLT52YmEuQXZlcmFnZVJlYWRCYW5kd2lkdGhHQnl0ZVBlclNlY29uZCA9CisJCQkJCW1vZGVfbGliLT52YmEuQXZlcmFnZVJlYWRCYW5kd2lkdGhHQnl0ZVBlclNlY29uZAorCQkJCQkJCSsgbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoUGxhbmVMdW1hW2tdCisJCQkJCQkJCQkvIDEwMDAgLyAyNTYKKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuUmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdCisJCQkJCQkJCQkvIDEwMDAgLyAyNTY7CisJCX0KKwkJaWYgKG1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUpIHsKKwkJCW1vZGVfbGliLT52YmEuQXZlcmFnZVJlYWRCYW5kd2lkdGhHQnl0ZVBlclNlY29uZCA9CisJCQkJCW1vZGVfbGliLT52YmEuQXZlcmFnZVJlYWRCYW5kd2lkdGhHQnl0ZVBlclNlY29uZAorCQkJCQkJCSsgbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoUGxhbmVMdW1hW2tdCisJCQkJCQkJCQkvIDEwMDAgLyA1MTIKKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuUmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdCisJCQkJCQkJCQkvIDEwMDAgLyA1MTI7CisJCX0KKwl9CisKKwltb2RlX2xpYi0+dmJhLlBhcnRPZkJ1cnN0VGhhdEZpdHNJblJPQiA9CisJCQlkbWxfbWluKAorCQkJCQltb2RlX2xpYi0+dmJhLk1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lCisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlRvdGFsRGF0YVJlYWRCYW5kd2lkdGgsCisJCQkJCW1vZGVfbGliLT52YmEuUk9CQnVmZmVyU2l6ZUluS0J5dGUgKiAxMDI0CisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlRvdGFsRGF0YVJlYWRCYW5kd2lkdGgKKwkJCQkJCQkvIChtb2RlX2xpYi0+dmJhLkF2ZXJhZ2VSZWFkQmFuZHdpZHRoR0J5dGVQZXJTZWNvbmQKKwkJCQkJCQkJCSogMTAwMCkpOworCW1vZGVfbGliLT52YmEuU3R1dHRlckJ1cnN0VGltZSA9IG1vZGVfbGliLT52YmEuUGFydE9mQnVyc3RUaGF0Rml0c0luUk9CCisJCQkqIChtb2RlX2xpYi0+dmJhLkF2ZXJhZ2VSZWFkQmFuZHdpZHRoR0J5dGVQZXJTZWNvbmQgKiAxMDAwKQorCQkJLyBtb2RlX2xpYi0+dmJhLlRvdGFsRGF0YVJlYWRCYW5kd2lkdGggLyBtb2RlX2xpYi0+dmJhLlJldHVybkJXCisJCQkrIChtb2RlX2xpYi0+dmJhLk1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lCisJCQkJCSogbW9kZV9saWItPnZiYS5Ub3RhbERhdGFSZWFkQmFuZHdpZHRoCisJCQkJCS0gbW9kZV9saWItPnZiYS5QYXJ0T2ZCdXJzdFRoYXRGaXRzSW5ST0IpCisJCQkJCS8gKG1vZGVfbGliLT52YmEuRENGQ0xLICogNjQpOworCWlmIChtb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlV3JpdGViYWNrID09IDApIHsKKwkJbW9kZV9saWItPnZiYS5TdHV0dGVyRWZmaWNpZW5jeU5vdEluY2x1ZGluZ1ZCbGFuayA9ICgxCisJCQkJLSAobW9kZV9saWItPnZiYS5TUkV4aXRUaW1lICsgbW9kZV9saWItPnZiYS5TdHV0dGVyQnVyc3RUaW1lKQorCQkJCQkJLyBtb2RlX2xpYi0+dmJhLk1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lKSAqIDEwMDsKKwl9IGVsc2UgeworCQltb2RlX2xpYi0+dmJhLlN0dXR0ZXJFZmZpY2llbmN5Tm90SW5jbHVkaW5nVkJsYW5rID0gMDsKKwl9CisKKwltb2RlX2xpYi0+dmJhLlNtYWxsZXN0VkJsYW5rID0gOTk5OTk5OworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuU3luY2hyb25pemVkVkJsYW5rIHx8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgPT0gMSkgeworCQkJbW9kZV9saWItPnZiYS5WQmxhbmtUaW1lID0gKGRvdWJsZSkgKG1vZGVfbGliLT52YmEuVlRvdGFsW2tdCisJCQkJCS0gbW9kZV9saWItPnZiYS5WQWN0aXZlW2tdKSAqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5WQmxhbmtUaW1lID0gMDsKKwkJfQorCQltb2RlX2xpYi0+dmJhLlNtYWxsZXN0VkJsYW5rID0gZG1sX21pbigKKwkJCQltb2RlX2xpYi0+dmJhLlNtYWxsZXN0VkJsYW5rLAorCQkJCW1vZGVfbGliLT52YmEuVkJsYW5rVGltZSk7CisJfQorCisJbW9kZV9saWItPnZiYS5TdHV0dGVyRWZmaWNpZW5jeSA9IChtb2RlX2xpYi0+dmJhLlN0dXR0ZXJFZmZpY2llbmN5Tm90SW5jbHVkaW5nVkJsYW5rIC8gMTAwCisJCQkqIChtb2RlX2xpYi0+dmJhLkZyYW1lVGltZUZvck1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lCisJCQkJCS0gbW9kZV9saWItPnZiYS5TbWFsbGVzdFZCbGFuaykKKwkJCSsgbW9kZV9saWItPnZiYS5TbWFsbGVzdFZCbGFuaykKKwkJCS8gbW9kZV9saWItPnZiYS5GcmFtZVRpbWVGb3JNaW5GdWxsREVUQnVmZmVyaW5nVGltZSAqIDEwMDsKKworCS8vIGRtbF9tbC0+dmJhLkRDRkNMSyBEZWVwIFNsZWVwCisJbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXAgPSA4LjA7CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgaysrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10gPiAwKSB7CisJCQltb2RlX2xpYi0+dmJhLkRDRkNMS0RlZXBTbGVlcFBlclBsYW5lW2tdID0KKwkJCQkJZG1sX21heCgKKwkJCQkJCQkxLjEgKiBtb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhZW2tdCisJCQkJCQkJCQkqIGRtbF9jZWlsKAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVFlba10sCisJCQkJCQkJCQkJCTEpIC8gMzIKKwkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5EaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hW2tdLAorCQkJCQkJCTEuMSAqIG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10gLyAyLjAKKwkJCQkJCQkJCSogZG1sX2NlaWwoCisJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUQ1trXSwKKwkJCQkJCQkJCQkJMikgLyAzMgorCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkRpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUNocm9tYVtrXSk7CisJCX0gZWxzZQorCQkJbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXBQZXJQbGFuZVtrXSA9IDEuMSAqIG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10KKwkJCQkJKiBkbWxfY2VpbChtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVFlba10sIDEpIC8gNjQuMAorCQkJCQkvIG1vZGVfbGliLT52YmEuRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lTHVtYVtrXTsKKwkJbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXBQZXJQbGFuZVtrXSA9IGRtbF9tYXgoCisJCQkJbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXBQZXJQbGFuZVtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10gLyAxNi4wKTsKKwkJbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXAgPSBkbWxfbWF4KAorCQkJCW1vZGVfbGliLT52YmEuRENGQ0xLRGVlcFNsZWVwLAorCQkJCW1vZGVfbGliLT52YmEuRENGQ0xLRGVlcFNsZWVwUGVyUGxhbmVba10pOworCisJCURUUkFDRSgKKwkJCQkiICAgZGNmY2xrX2RlZXBzbGVlcF9wZXJfcGxhbmVbJWldID0gJWZNSHoiLAorCQkJCWssCisJCQkJbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXBQZXJQbGFuZVtrXSk7CisJfQorCisJRFRSQUNFKCIgICBkY2ZjbGtfZGVlcHNsZWVwX21oeiA9ICVmTUh6IiwgbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXApOworCisJLy8gU3R1dHRlciBXYXRlcm1hcmsKKwltb2RlX2xpYi0+dmJhLlN0dXR0ZXJFeGl0V2F0ZXJtYXJrID0gbW9kZV9saWItPnZiYS5TUkV4aXRUaW1lCisJCQkrIG1vZGVfbGliLT52YmEuTGFzdFBpeGVsT2ZMaW5lRXh0cmFXYXRlcm1hcmsKKwkJCSsgbW9kZV9saWItPnZiYS5VcmdlbnRFeHRyYUxhdGVuY3kgKyAxMCAvIG1vZGVfbGliLT52YmEuRENGQ0xLRGVlcFNsZWVwOworCW1vZGVfbGliLT52YmEuU3R1dHRlckVudGVyUGx1c0V4aXRXYXRlcm1hcmsgPSBtb2RlX2xpYi0+dmJhLlNSRW50ZXJQbHVzRXhpdFRpbWUKKwkJCSsgbW9kZV9saWItPnZiYS5MYXN0UGl4ZWxPZkxpbmVFeHRyYVdhdGVybWFyaworCQkJKyBtb2RlX2xpYi0+dmJhLlVyZ2VudEV4dHJhTGF0ZW5jeTsKKworCURUUkFDRSgiICAgd21fY3N0YXRlX2V4aXQgICAgICAgPSAlZnVzIiwgbW9kZV9saWItPnZiYS5TdHV0dGVyRXhpdFdhdGVybWFyayk7CisJRFRSQUNFKCIgICB3bV9jc3RhdGVfZW50ZXJfZXhpdCA9ICVmdXMiLCBtb2RlX2xpYi0+dmJhLlN0dXR0ZXJFbnRlclBsdXNFeGl0V2F0ZXJtYXJrKTsKKworCS8vIFVyZ2VudCBMYXRlbmN5IFN1cHBvcnRlZAorCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJbW9kZV9saWItPnZiYS5FZmZlY3RpdmVERVRQbHVzTEJMaW5lc0x1bWEgPQorCQkJCWRtbF9mbG9vcigKKwkJCQkJCW1vZGVfbGliLT52YmEuTGluZXNJbkRFVFlba10KKwkJCQkJCQkJKyBkbWxfbWluKAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuTGluZXNJbkRFVFlba10KKwkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5EUFBDTEtba10KKwkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxERVRZW2tdCisJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuUFNDTF9USFJPVUdIUFVUX0xVTUFba10KKwkJCQkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuUmV0dXJuQlcKKwkJCQkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdKSwKKwkJCQkJCQkJCQkoZG91YmxlKSBtb2RlX2xpYi0+dmJhLkVmZmVjdGl2ZUxCTGF0ZW5jeUhpZGluZ1NvdXJjZUxpbmVzTHVtYSksCisJCQkJCQltb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0WVtrXSk7CisKKwkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5U3VwcG9ydFVzTHVtYSA9IG1vZGVfbGliLT52YmEuRWZmZWN0aXZlREVUUGx1c0xCTGluZXNMdW1hCisJCQkJKiAobW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pCisJCQkJLyBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXQorCQkJCS0gbW9kZV9saWItPnZiYS5FZmZlY3RpdmVERVRQbHVzTEJMaW5lc0x1bWEKKwkJCQkJCSogbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXQorCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVFlba10KKwkJCQkJCS8gKG1vZGVfbGliLT52YmEuUmV0dXJuQlcKKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdKTsKKworCQlpZiAobW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxERVRDW2tdID4gMCkgeworCQkJbW9kZV9saWItPnZiYS5FZmZlY3RpdmVERVRQbHVzTEJMaW5lc0Nocm9tYSA9CisJCQkJCWRtbF9mbG9vcigKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkxpbmVzSW5ERVRDW2tdCisJCQkJCQkJCQkrIGRtbF9taW4oCisJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuTGluZXNJbkRFVENba10KKwkJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuRFBQQ0xLW2tdCisJCQkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10KKwkJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuUFNDTF9USFJPVUdIUFVUX0NIUk9NQVtrXQorCQkJCQkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuUmV0dXJuQlcKKwkJCQkJCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZVtrXSksCisJCQkJCQkJCQkJCShkb3VibGUpIG1vZGVfbGliLT52YmEuRWZmZWN0aXZlTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNDaHJvbWEpLAorCQkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDW2tdKTsKKwkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeVN1cHBvcnRVc0Nocm9tYSA9CisJCQkJCW1vZGVfbGliLT52YmEuRWZmZWN0aXZlREVUUGx1c0xCTGluZXNDaHJvbWEKKwkJCQkJCQkqIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pCisJCQkJCQkJLyAobW9kZV9saWItPnZiYS5WUmF0aW9ba10gLyAyKQorCQkJCQkJCS0gbW9kZV9saWItPnZiYS5FZmZlY3RpdmVERVRQbHVzTEJMaW5lc0Nocm9tYQorCQkJCQkJCQkJKiAobW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXQorCQkJCQkJCQkJCQkvIDIpCisJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUQ1trXQorCQkJCQkJCQkJLyAobW9kZV9saWItPnZiYS5SZXR1cm5CVworCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba10pOworCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5U3VwcG9ydFVzW2tdID0gZG1sX21pbigKKwkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5U3VwcG9ydFVzTHVtYSwKKwkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5U3VwcG9ydFVzQ2hyb21hKTsKKwkJfSBlbHNlIHsKKwkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeVN1cHBvcnRVc1trXSA9CisJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeVN1cHBvcnRVc0x1bWE7CisJCX0KKwl9CisKKwltb2RlX2xpYi0+dmJhLk1pblVyZ2VudExhdGVuY3lTdXBwb3J0VXMgPSA5OTk5OTk7CisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQltb2RlX2xpYi0+dmJhLk1pblVyZ2VudExhdGVuY3lTdXBwb3J0VXMgPSBkbWxfbWluKAorCQkJCW1vZGVfbGliLT52YmEuTWluVXJnZW50TGF0ZW5jeVN1cHBvcnRVcywKKwkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudExhdGVuY3lTdXBwb3J0VXNba10pOworCX0KKworCS8vIE5vbi1VcmdlbnQgTGF0ZW5jeSBUb2xlcmFuY2UKKwltb2RlX2xpYi0+dmJhLk5vblVyZ2VudExhdGVuY3lUb2xlcmFuY2UgPSBtb2RlX2xpYi0+dmJhLk1pblVyZ2VudExhdGVuY3lTdXBwb3J0VXMKKwkJCS0gbW9kZV9saWItPnZiYS5VcmdlbnRXYXRlcm1hcms7CisKKwkvLyBEU0NDTEsKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmICgobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSAhPSBrKSB8fCAhbW9kZV9saWItPnZiYS5EU0NFbmFibGVkW2tdKSB7CisJCQltb2RlX2xpYi0+dmJhLkRTQ0NMS19jYWxjdWxhdGVkW2tdID0gMC4wOworCQl9IGVsc2UgeworCQkJaWYgKG1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdID09IGRtXzQyMAorCQkJCQl8fCBtb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSA9PSBkbV9uNDIyKQorCQkJCW1vZGVfbGliLT52YmEuRFNDRm9ybWF0RmFjdG9yID0gMjsKKwkJCWVsc2UKKwkJCQltb2RlX2xpYi0+dmJhLkRTQ0Zvcm1hdEZhY3RvciA9IDE7CisJCQlpZiAobW9kZV9saWItPnZiYS5PRE1Db21iaW5lRW5hYmxlZFtrXSkKKwkJCQltb2RlX2xpYi0+dmJhLkRTQ0NMS19jYWxjdWxhdGVkW2tdID0KKwkJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gLyA2CisJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5EU0NGb3JtYXRGYWN0b3IKKwkJCQkJCQkJLyAoMQorCQkJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZworCQkJCQkJCQkJCQkJLyAxMDApOworCQkJZWxzZQorCQkJCW1vZGVfbGliLT52YmEuRFNDQ0xLX2NhbGN1bGF0ZWRba10gPQorCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSAvIDMKKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkRTQ0Zvcm1hdEZhY3RvcgorCQkJCQkJCQkvICgxCisJCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nCisJCQkJCQkJCQkJCQkvIDEwMCk7CisJCX0KKwl9CisKKwkvLyBEU0MgRGVsYXkKKwkvLyBUT0RPCisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlkb3VibGUgYnBwID0gbW9kZV9saWItPnZiYS5PdXRwdXRCcHBba107CisJCXVuc2lnbmVkIGludCBzbGljZXMgPSBtb2RlX2xpYi0+dmJhLk51bWJlck9mRFNDU2xpY2VzW2tdOworCisJCWlmIChtb2RlX2xpYi0+dmJhLkRTQ0VuYWJsZWRba10gJiYgYnBwICE9IDApIHsKKwkJCWlmICghbW9kZV9saWItPnZiYS5PRE1Db21iaW5lRW5hYmxlZFtrXSkgeworCQkJCW1vZGVfbGliLT52YmEuRFNDRGVsYXlba10gPQorCQkJCQkJZHNjY2VDb21wdXRlRGVsYXkoCisJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10sCisJCQkJCQkJCWJwcCwKKwkJCQkJCQkJZG1sX2NlaWwoCisJCQkJCQkJCQkJKGRvdWJsZSkgbW9kZV9saWItPnZiYS5IQWN0aXZlW2tdCisJCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuTnVtYmVyT2ZEU0NTbGljZXNba10sCisJCQkJCQkJCQkJMSksCisJCQkJCQkJCXNsaWNlcywKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10pCisJCQkJCQkJCSsgZHNjQ29tcHV0ZURlbGF5KAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdKTsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5EU0NEZWxheVtrXSA9CisJCQkJCQkyCisJCQkJCQkJCSogKGRzY2NlQ29tcHV0ZURlbGF5KAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10sCisJCQkJCQkJCQkJYnBwLAorCQkJCQkJCQkJCWRtbF9jZWlsKAorCQkJCQkJCQkJCQkJKGRvdWJsZSkgbW9kZV9saWItPnZiYS5IQWN0aXZlW2tdCisJCQkJCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5OdW1iZXJPZkRTQ1NsaWNlc1trXSwKKwkJCQkJCQkJCQkJCTEpLAorCQkJCQkJCQkJCXNsaWNlcyAvIDIuMCwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSkKKwkJCQkJCQkJCQkrIGRzY0NvbXB1dGVEZWxheSgKKwkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdKSk7CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLkRTQ0RlbGF5W2tdID0gbW9kZV9saWItPnZiYS5EU0NEZWxheVtrXQorCQkJCQkqIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXQorCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba107CisJCX0gZWxzZSB7CisJCQltb2RlX2xpYi0+dmJhLkRTQ0RlbGF5W2tdID0gMDsKKwkJfQorCX0KKworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spCisJCWZvciAoaiA9IDA7IGogPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2opIC8vIE51bWJlck9mUGxhbmVzCisJCQlpZiAoaiAhPSBrICYmIG1vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gagorCQkJCQkmJiBtb2RlX2xpYi0+dmJhLkRTQ0VuYWJsZWRbal0pCisJCQkJbW9kZV9saWItPnZiYS5EU0NEZWxheVtrXSA9IG1vZGVfbGliLT52YmEuRFNDRGVsYXlbal07CisKKwkvLyBQcmVmZXRjaAorCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJdW5zaWduZWQgaW50IFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lWTsKKwkJdW5zaWduZWQgaW50IFBpeGVsUFRFQnl0ZXNQZXJSb3dZOworCQl1bnNpZ25lZCBpbnQgTWV0YVJvd0J5dGVZOworCQl1bnNpZ25lZCBpbnQgTWV0YVJvd0J5dGVDOworCQl1bnNpZ25lZCBpbnQgUERFQW5kTWV0YVBURUJ5dGVzRnJhbWVDOworCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvd0M7CisKKwkJQ2FsY3VsYXRlMjU2QkJsb2NrU2l6ZXMoCisJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10sCisJCQkJZG1sX2NlaWwobW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxERVRZW2tdLCAxKSwKKwkJCQlkbWxfY2VpbChtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10sIDIpLAorCQkJCSZtb2RlX2xpYi0+dmJhLkJsb2NrSGVpZ2h0MjU2Qnl0ZXNZW2tdLAorCQkJCSZtb2RlX2xpYi0+dmJhLkJsb2NrSGVpZ2h0MjU2Qnl0ZXNDW2tdLAorCQkJCSZtb2RlX2xpYi0+dmJhLkJsb2NrV2lkdGgyNTZCeXRlc1lba10sCisJCQkJJm1vZGVfbGliLT52YmEuQmxvY2tXaWR0aDI1NkJ5dGVzQ1trXSk7CisJCVBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lWSA9IENhbGN1bGF0ZVZNQW5kUm93Qnl0ZXMoCisJCQkJbW9kZV9saWIsCisJCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10sCisJCQkJbW9kZV9saWItPnZiYS5CbG9ja0hlaWdodDI1NkJ5dGVzWVtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLkJsb2NrV2lkdGgyNTZCeXRlc1lba10sCisJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10sCisJCQkJZG1sX2NlaWwobW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxERVRZW2tdLCAxKSwKKwkJCQltb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10sCisJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydFdpZHRoW2tdLAorCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRIZWlnaHRba10sCisJCQkJbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJCW1vZGVfbGliLT52YmEuVk1NUGFnZVNpemUsCisJCQkJbW9kZV9saWItPnZiYS5QVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0x1bWEsCisJCQkJbW9kZV9saWItPnZiYS5QREVQcm9jZXNzaW5nQnVmSW42NEtCUmVxcywKKwkJCQltb2RlX2xpYi0+dmJhLlBpdGNoWVtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLkRDQ01ldGFQaXRjaFlba10sCisJCQkJJm1vZGVfbGliLT52YmEuTWFjcm9UaWxlV2lkdGhZW2tdLAorCQkJCSZNZXRhUm93Qnl0ZVksCisJCQkJJlBpeGVsUFRFQnl0ZXNQZXJSb3dZLAorCQkJCSZtb2RlX2xpYi0+dmJhLlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZFttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1bMF0sCisJCQkJJm1vZGVfbGliLT52YmEuZHB0ZV9yb3dfaGVpZ2h0W2tdLAorCQkJCSZtb2RlX2xpYi0+dmJhLm1ldGFfcm93X2hlaWdodFtrXSk7CisJCW1vZGVfbGliLT52YmEuUHJlZmV0Y2hTb3VyY2VMaW5lc1lba10gPSBDYWxjdWxhdGVQcmVmZXRjaFNvdXJjZUxpbmVzKAorCQkJCW1vZGVfbGliLAorCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCW1vZGVfbGliLT52YmEudnRhcHNba10sCisJCQkJbW9kZV9saWItPnZiYS5JbnRlcmxhY2Vba10sCisJCQkJbW9kZV9saWItPnZiYS5Qcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRZW2tdLAorCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRZU3RhcnRZW2tdLAorCQkJCSZtb2RlX2xpYi0+dmJhLlZJbml0UHJlRmlsbFlba10sCisJCQkJJm1vZGVfbGliLT52YmEuTWF4TnVtU3dhdGhZW2tdKTsKKworCQlpZiAoKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzY0CisJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfMzIKKwkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8xNgorCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzgpKSB7CisJCQlQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZUMgPQorCQkJCQlDYWxjdWxhdGVWTUFuZFJvd0J5dGVzKAorCQkJCQkJCW1vZGVfbGliLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRENDRW5hYmxlW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuQmxvY2tIZWlnaHQyNTZCeXRlc0Nba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5CbG9ja1dpZHRoMjU2Qnl0ZXNDW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdLAorCQkJCQkJCWRtbF9jZWlsKAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxERVRDW2tdLAorCQkJCQkJCQkJMiksCisJCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFtrXSAvIDIsCisJCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydEhlaWdodFtrXSAvIDIsCisJCQkJCQkJbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXSAvIDIsCisJCQkJCQkJbW9kZV9saWItPnZiYS5HUFVWTUVuYWJsZSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlZNTVBhZ2VTaXplLAorCQkJCQkJCW1vZGVfbGliLT52YmEuUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNMdW1hLAorCQkJCQkJCW1vZGVfbGliLT52YmEuUERFUHJvY2Vzc2luZ0J1ZkluNjRLQlJlcXMsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QaXRjaENba10sCisJCQkJCQkJMCwKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5NYWNyb1RpbGVXaWR0aENba10sCisJCQkJCQkJJk1ldGFSb3dCeXRlQywKKwkJCQkJCQkmUGl4ZWxQVEVCeXRlc1BlclJvd0MsCisJCQkJCQkJJm1vZGVfbGliLT52YmEuUFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVswXSwKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5kcHRlX3Jvd19oZWlnaHRfY2hyb21hW2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLm1ldGFfcm93X2hlaWdodF9jaHJvbWFba10pOworCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaFNvdXJjZUxpbmVzQ1trXSA9IENhbGN1bGF0ZVByZWZldGNoU291cmNlTGluZXMoCisJCQkJCW1vZGVfbGliLAorCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXSAvIDIsCisJCQkJCW1vZGVfbGliLT52YmEuVlRBUHNDaHJvbWFba10sCisJCQkJCW1vZGVfbGliLT52YmEuSW50ZXJsYWNlW2tdLAorCQkJCQltb2RlX2xpYi0+dmJhLlByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFAsCisJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDW2tdLAorCQkJCQltb2RlX2xpYi0+dmJhLlZpZXdwb3J0WVN0YXJ0Q1trXSwKKwkJCQkJJm1vZGVfbGliLT52YmEuVkluaXRQcmVGaWxsQ1trXSwKKwkJCQkJJm1vZGVfbGliLT52YmEuTWF4TnVtU3dhdGhDW2tdKTsKKwkJfSBlbHNlIHsKKwkJCVBpeGVsUFRFQnl0ZXNQZXJSb3dDID0gMDsKKwkJCVBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lQyA9IDA7CisJCQlNZXRhUm93Qnl0ZUMgPSAwOworCQkJbW9kZV9saWItPnZiYS5NYXhOdW1Td2F0aENba10gPSAwOworCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaFNvdXJjZUxpbmVzQ1trXSA9IDA7CisJCX0KKworCQltb2RlX2xpYi0+dmJhLlBpeGVsUFRFQnl0ZXNQZXJSb3dba10gPSBQaXhlbFBURUJ5dGVzUGVyUm93WSArIFBpeGVsUFRFQnl0ZXNQZXJSb3dDOworCQltb2RlX2xpYi0+dmJhLlBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lW2tdID0gUERFQW5kTWV0YVBURUJ5dGVzRnJhbWVZCisJCQkJKyBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZUM7CisJCW1vZGVfbGliLT52YmEuTWV0YVJvd0J5dGVba10gPSBNZXRhUm93Qnl0ZVkgKyBNZXRhUm93Qnl0ZUM7CisKKwkJQ2FsY3VsYXRlQWN0aXZlUm93QmFuZHdpZHRoKAorCQkJCW1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUsCisJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXSwKKwkJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSwKKwkJCQlNZXRhUm93Qnl0ZVksCisJCQkJTWV0YVJvd0J5dGVDLAorCQkJCW1vZGVfbGliLT52YmEubWV0YV9yb3dfaGVpZ2h0W2tdLAorCQkJCW1vZGVfbGliLT52YmEubWV0YV9yb3dfaGVpZ2h0X2Nocm9tYVtrXSwKKwkJCQlQaXhlbFBURUJ5dGVzUGVyUm93WSwKKwkJCQlQaXhlbFBURUJ5dGVzUGVyUm93QywKKwkJCQltb2RlX2xpYi0+dmJhLmRwdGVfcm93X2hlaWdodFtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLmRwdGVfcm93X2hlaWdodF9jaHJvbWFba10sCisJCQkJJm1vZGVfbGliLT52YmEubWV0YV9yb3dfYndba10sCisJCQkJJm1vZGVfbGliLT52YmEuZHB0ZV9yb3dfYndba10sCisJCQkJJm1vZGVfbGliLT52YmEucXVhbF9yb3dfYndba10pOworCX0KKworCW1vZGVfbGliLT52YmEuVENhbGMgPSAyNC4wIC8gbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXA7CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2tdID09IGspIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba10gPQorCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5CisJCQkJCQkJCSsgQ2FsY3VsYXRlV3JpdGVCYWNrRGVsYXkoCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW2tdLAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10sCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW2tdKQorCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5ESVNQQ0xLOworCQkJfSBlbHNlCisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba10gPSAwOworCQkJZm9yIChqID0gMDsgaiA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraikgeworCQkJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2pdID09IGsKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlW2pdID09IHRydWUpIHsKKwkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba10gPQorCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0RlbGF5W21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeQorCQkJCQkJCQkJCQkrIENhbGN1bGF0ZVdyaXRlQmFja0RlbGF5KAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrUGl4ZWxGb3JtYXRbal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9bal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9bal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hSFRhcHNbal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVlRhcHNbal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFIVGFwc1tqXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYVZUYXBzW2pdLAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtqXSkKKwkJCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuRElTUENMSyk7CisJCQkJfQorCQkJfQorCQl9CisJfQorCisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykKKwkJZm9yIChqID0gMDsgaiA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraikKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2tdID09IGopCisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba10gPQorCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1bal07CisKKwltb2RlX2xpYi0+dmJhLlZTdGFydHVwTGluZXMgPSAxMzsKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCW1vZGVfbGliLT52YmEuTWF4VlN0YXJ0dXBMaW5lc1trXSA9CisJCQkJbW9kZV9saWItPnZiYS5WVG90YWxba10gLSBtb2RlX2xpYi0+dmJhLlZBY3RpdmVba10KKwkJCQkJCS0gZG1sX21heCgKKwkJCQkJCQkJMS4wLAorCQkJCQkJCQlkbWxfY2VpbCgKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0RlbGF5W21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVtrXQorCQkJCQkJCQkJCQkJLyAobW9kZV9saWItPnZiYS5IVG90YWxba10KKwkJCQkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pLAorCQkJCQkJCQkJCTEpKTsKKwl9CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKQorCQltb2RlX2xpYi0+dmJhLk1heGltdW1NYXhWU3RhcnR1cExpbmVzID0gZG1sX21heCgKKwkJCQltb2RlX2xpYi0+dmJhLk1heGltdW1NYXhWU3RhcnR1cExpbmVzLAorCQkJCW1vZGVfbGliLT52YmEuTWF4VlN0YXJ0dXBMaW5lc1trXSk7CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCW1vZGVfbGliLT52YmEuY3Vyc29yX2J3W2tdID0gMC4wOworCQlmb3IgKGogPSAwOyBqIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkN1cnNvcnNba107ICsraikKKwkJCW1vZGVfbGliLT52YmEuY3Vyc29yX2J3W2tdICs9IG1vZGVfbGliLT52YmEuQ3Vyc29yV2lkdGhba11bal0KKwkJCQkJKiBtb2RlX2xpYi0+dmJhLkN1cnNvckJQUFtrXVtqXSAvIDguMAorCQkJCQkvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkKKwkJCQkJKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXTsKKwl9CisKKwlkbyB7CisJCWRvdWJsZSBNYXhUb3RhbFJEQmFuZHdpZHRoID0gMDsKKwkJYm9vbCBEZXN0aW5hdGlvbkxpbmVUaW1lc0ZvclByZWZldGNoTGVzc1RoYW4yID0gZmFsc2U7CisJCWJvb2wgVlJhdGlvUHJlZmV0Y2hNb3JlVGhhbjQgPSBmYWxzZTsKKwkJYm9vbCBwcmVmZXRjaF92bV9id192YWxpZCA9IHRydWU7CisJCWJvb2wgcHJlZmV0Y2hfcm93X2J3X3ZhbGlkID0gdHJ1ZTsKKwkJZG91YmxlIFRXYWl0ID0gQ2FsY3VsYXRlVFdhaXQoCisJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaE1vZGVbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdW21vZGVfbGliLT52YmEubWF4TXBjQ29tYl0sCisJCQkJbW9kZV9saWItPnZiYS5EUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5LAorCQkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeVBpeGVsRGF0YU9ubHksCisJCQkJbW9kZV9saWItPnZiYS5TUkVudGVyUGx1c0V4aXRUaW1lKTsKKworCQlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5YRkNFbmFibGVkW2tdID09IHRydWUpIHsKKwkJCQltb2RlX2xpYi0+dmJhLlhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXkgPQorCQkJCQkJQ2FsY3VsYXRlUmVtb3RlU3VyZmFjZUZsaXBEZWxheSgKKwkJCQkJCQkJbW9kZV9saWIsCisJCQkJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhZW2tdLAorCQkJCQkJCQlkbWxfY2VpbCgKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVFlba10sCisJCQkJCQkJCQkJMSksCisJCQkJCQkJCW1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuWEZDVFNsdlZ1cGRhdGVPZmZzZXQsCisJCQkJCQkJCW1vZGVfbGliLT52YmEuWEZDVFNsdlZ1cGRhdGVXaWR0aCwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNUU2x2VnJlYWR5T2Zmc2V0LAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1hCVUZMYXRlbmN5VG9sZXJhbmNlLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ0ZpbGxCV092ZXJoZWFkLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1NsdkNodW5rU2l6ZSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNCdXNUcmFuc3BvcnRUaW1lLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLlRDYWxjLAorCQkJCQkJCQlUV2FpdCwKKwkJCQkJCQkJJm1vZGVfbGliLT52YmEuU3JjQWN0aXZlRHJhaW5SYXRlLAorCQkJCQkJCQkmbW9kZV9saWItPnZiYS5USW5pdFhGaWxsLAorCQkJCQkJCQkmbW9kZV9saWItPnZiYS5Uc2x2Q2hrKTsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5YRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5ID0gMDsKKwkJCX0KKworCQkJQ2FsY3VsYXRlRGVsYXlBZnRlclNjYWxlcihtb2RlX2xpYiwgbW9kZV9saWItPnZiYS5SZXR1cm5CVywgbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoUGxhbmVMdW1hW2tdLCBtb2RlX2xpYi0+dmJhLlJlYWRCYW5kd2lkdGhQbGFuZUNocm9tYVtrXSwgbW9kZV9saWItPnZiYS5Ub3RhbERhdGFSZWFkQmFuZHdpZHRoLAorCQkJCQltb2RlX2xpYi0+dmJhLkRpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWFba10sIG1vZGVfbGliLT52YmEuRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hW2tdLAorCQkJCQltb2RlX2xpYi0+dmJhLkRQUENMS1trXSwgbW9kZV9saWItPnZiYS5ESVNQQ0xLLCBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10sIG1vZGVfbGliLT52YmEuRFNDRGVsYXlba10sIG1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba10sIG1vZGVfbGliLT52YmEuU2NhbGVyRW5hYmxlZFtrXSwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkN1cnNvcnNba10sCisJCQkJCW1vZGVfbGliLT52YmEuRFBQQ0xLRGVsYXlTdWJ0b3RhbCwgbW9kZV9saWItPnZiYS5EUFBDTEtEZWxheVNDTCwgbW9kZV9saWItPnZiYS5EUFBDTEtEZWxheVNDTExCT25seSwgbW9kZV9saWItPnZiYS5EUFBDTEtEZWxheUNOVkNGb3JtYXRlciwgbW9kZV9saWItPnZiYS5EUFBDTEtEZWxheUNOVkNDdXJzb3IsIG1vZGVfbGliLT52YmEuRElTUENMS0RlbGF5U3VidG90YWwsCisJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10gLyBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSwgbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10sIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdLAorCQkJCQltb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhTaW5nbGVEUFBZW2tdLCBtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVFlba10sIG1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUQ1trXSwgbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlba10sIG1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDW2tdLCBtb2RlX2xpYi0+dmJhLkludGVybGFjZVtrXSwKKwkJCQkJbW9kZV9saWItPnZiYS5Qcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLCAmbW9kZV9saWItPnZiYS5EU1RYQWZ0ZXJTY2FsZXJba10sICZtb2RlX2xpYi0+dmJhLkRTVFlBZnRlclNjYWxlcltrXSk7CisKKwkJCW1vZGVfbGliLT52YmEuRXJyb3JSZXN1bHRba10gPQorCQkJCQlDYWxjdWxhdGVQcmVmZXRjaFNjaGVkdWxlKAorCQkJCQkJCW1vZGVfbGliLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRFBQQ0xLW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRElTUENMSywKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXAsCisJCQkJCQkJbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZVtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLk51bWJlck9mQ3Vyc29yc1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlZUb3RhbFtrXQorCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLlZBY3RpdmVba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5IVG90YWxba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5NYXhJbnRlckRDTlRpbGVSZXBlYXRlcnMsCisJCQkJCQkJZG1sX21pbigKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuVlN0YXJ0dXBMaW5lcywKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4VlN0YXJ0dXBMaW5lc1trXSksCisJCQkJCQkJbW9kZV9saWItPnZiYS5HUFVWTU1heFBhZ2VUYWJsZUxldmVscywKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhRW5hYmxlW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhTGluZXNCZWZvcmVBY3RpdmVSZXF1aXJlZFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkR5bmFtaWNNZXRhZGF0YVRyYW5zbWl0dGVkQnl0ZXNba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudEV4dHJhTGF0ZW5jeSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlRDYWxjLAorCQkJCQkJCW1vZGVfbGliLT52YmEuUERFQW5kTWV0YVBURUJ5dGVzRnJhbWVba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5NZXRhUm93Qnl0ZVtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsUFRFQnl0ZXNQZXJSb3dba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaFNvdXJjZUxpbmVzWVtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhZW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUWVtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlZJbml0UHJlRmlsbFlba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5NYXhOdW1Td2F0aFlba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaFNvdXJjZUxpbmVzQ1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5WSW5pdFByZUZpbGxDW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4TnVtU3dhdGhDW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRZW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDW2tdLAorCQkJCQkJCVRXYWl0LAorCQkJCQkJCW1vZGVfbGliLT52YmEuWEZDRW5hYmxlZFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXksCisJCQkJCQkJbW9kZV9saWItPnZiYS5JbnRlcmxhY2Vba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5Qcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRFNUWEFmdGVyU2NhbGVyW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRFNUWUFmdGVyU2NhbGVyW2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaFtrXSwKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5QcmVmZXRjaEJhbmR3aWR0aFtrXSwKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFua1trXSwKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmtba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEuVlJhdGlvUHJlZmV0Y2hZW2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlZSYXRpb1ByZWZldGNoQ1trXSwKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5SZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXTHVtYVtrXSwKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5Ubm9fYndba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEuVlVwZGF0ZU9mZnNldFBpeFtrXSwKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5WVXBkYXRlV2lkdGhQaXhba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEuVlJlYWR5T2Zmc2V0UGl4W2tdKTsKKworCQkJaWYgKG1vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gaykgeworCQkJCW1vZGVfbGliLT52YmEuVlN0YXJ0dXBba10gPSBkbWxfbWluKAorCQkJCQkJbW9kZV9saWItPnZiYS5WU3RhcnR1cExpbmVzLAorCQkJCQkJbW9kZV9saWItPnZiYS5NYXhWU3RhcnR1cExpbmVzW2tdKTsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5WU3RhcnR1cFJlcXVpcmVkV2hlbk5vdEVub3VnaFRpbWVGb3JEeW5hbWljTWV0YWRhdGEKKwkJCQkJCSE9IDApIHsKKwkJCQkJbW9kZV9saWItPnZiYS5WU3RhcnR1cFtrXSA9CisJCQkJCQkJbW9kZV9saWItPnZiYS5WU3RhcnR1cFJlcXVpcmVkV2hlbk5vdEVub3VnaFRpbWVGb3JEeW5hbWljTWV0YWRhdGE7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQltb2RlX2xpYi0+dmJhLlZTdGFydHVwW2tdID0KKwkJCQkJCWRtbF9taW4oCisJCQkJCQkJCW1vZGVfbGliLT52YmEuVlN0YXJ0dXBMaW5lcywKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5NYXhWU3RhcnR1cExpbmVzW21vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba11dKTsKKwkJCX0KKwkJfQorCisJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKworCQkJaWYgKG1vZGVfbGliLT52YmEuUERFQW5kTWV0YVBURUJ5dGVzRnJhbWVba10gPT0gMCkKKwkJCQltb2RlX2xpYi0+dmJhLnByZWZldGNoX3ZtX2J3W2tdID0gMDsKKwkJCWVsc2UgaWYgKG1vZGVfbGliLT52YmEuRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmtba10gPiAwKSB7CisJCQkJbW9kZV9saWItPnZiYS5wcmVmZXRjaF92bV9id1trXSA9CisJCQkJCQkoZG91YmxlKSBtb2RlX2xpYi0+dmJhLlBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lW2tdCisJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmtba10KKwkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pOworCQkJfSBlbHNlIHsKKwkJCQltb2RlX2xpYi0+dmJhLnByZWZldGNoX3ZtX2J3W2tdID0gMDsKKwkJCQlwcmVmZXRjaF92bV9id192YWxpZCA9IGZhbHNlOworCQkJfQorCQkJaWYgKG1vZGVfbGliLT52YmEuTWV0YVJvd0J5dGVba10gKyBtb2RlX2xpYi0+dmJhLlBpeGVsUFRFQnl0ZXNQZXJSb3dba10KKwkJCQkJPT0gMCkKKwkJCQltb2RlX2xpYi0+dmJhLnByZWZldGNoX3Jvd19id1trXSA9IDA7CisJCQllbHNlIGlmIChtb2RlX2xpYi0+dmJhLkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJblZCbGFua1trXSA+IDApIHsKKwkJCQltb2RlX2xpYi0+dmJhLnByZWZldGNoX3Jvd19id1trXSA9CisJCQkJCQkoZG91YmxlKSAobW9kZV9saWItPnZiYS5NZXRhUm93Qnl0ZVtrXQorCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuUGl4ZWxQVEVCeXRlc1BlclJvd1trXSkKKwkJCQkJCQkJLyAobW9kZV9saWItPnZiYS5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmtba10KKwkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pOworCQkJfSBlbHNlIHsKKwkJCQltb2RlX2xpYi0+dmJhLnByZWZldGNoX3Jvd19id1trXSA9IDA7CisJCQkJcHJlZmV0Y2hfcm93X2J3X3ZhbGlkID0gZmFsc2U7CisJCQl9CisKKwkJCU1heFRvdGFsUkRCYW5kd2lkdGggPQorCQkJCQlNYXhUb3RhbFJEQmFuZHdpZHRoICsgbW9kZV9saWItPnZiYS5jdXJzb3JfYndba10KKwkJCQkJCQkrIGRtbF9tYXgoCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLnByZWZldGNoX3ZtX2J3W2tdLAorCQkJCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5wcmVmZXRjaF9yb3dfYndba10sCisJCQkJCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoUGxhbmVMdW1hW2tdCisJCQkJCQkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuUmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdLAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuUmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0x1bWFba10pCisJCQkJCQkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLm1ldGFfcm93X2J3W2tdCisJCQkJCQkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLmRwdGVfcm93X2J3W2tdKSk7CisKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaFtrXSA8IDIpCisJCQkJRGVzdGluYXRpb25MaW5lVGltZXNGb3JQcmVmZXRjaExlc3NUaGFuMiA9IHRydWU7CisJCQlpZiAobW9kZV9saWItPnZiYS5WUmF0aW9QcmVmZXRjaFlba10gPiA0CisJCQkJCXx8IG1vZGVfbGliLT52YmEuVlJhdGlvUHJlZmV0Y2hDW2tdID4gNCkKKwkJCQlWUmF0aW9QcmVmZXRjaE1vcmVUaGFuNCA9IHRydWU7CisJCX0KKworCQlpZiAoTWF4VG90YWxSREJhbmR3aWR0aCA8PSBtb2RlX2xpYi0+dmJhLlJldHVybkJXICYmIHByZWZldGNoX3ZtX2J3X3ZhbGlkCisJCQkJJiYgcHJlZmV0Y2hfcm93X2J3X3ZhbGlkICYmICFWUmF0aW9QcmVmZXRjaE1vcmVUaGFuNAorCQkJCSYmICFEZXN0aW5hdGlvbkxpbmVUaW1lc0ZvclByZWZldGNoTGVzc1RoYW4yKQorCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaE1vZGVTdXBwb3J0ZWQgPSB0cnVlOworCQllbHNlIHsKKwkJCW1vZGVfbGliLT52YmEuUHJlZmV0Y2hNb2RlU3VwcG9ydGVkID0gZmFsc2U7CisJCQlkbWxfcHJpbnQoCisJCQkJCSJETUw6IENhbGN1bGF0ZVByZWZldGNoU2NoZWR1bGUgKioqZmFpbGVkKioqLiBCYW5kd2lkdGggdmlvbGF0aW9uLiBSZXN1bHRzIGFyZSBOT1QgdmFsaWRcbiIpOworCQl9CisKKwkJaWYgKG1vZGVfbGliLT52YmEuUHJlZmV0Y2hNb2RlU3VwcG9ydGVkID09IHRydWUpIHsKKwkJCWRvdWJsZSBmaW5hbF9mbGlwX2J3W0RDX19OVU1fRFBQX19NQVhdOworCQkJdW5zaWduZWQgaW50IEltbWVkaWF0ZUZsaXBCeXRlc1tEQ19fTlVNX0RQUF9fTUFYXTsKKwkJCWRvdWJsZSB0b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXAgPSAwOworCisJCQltb2RlX2xpYi0+dmJhLkJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAgPSBtb2RlX2xpYi0+dmJhLlJldHVybkJXOworCQkJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQkJCW1vZGVfbGliLT52YmEuQmFuZHdpZHRoQXZhaWxhYmxlRm9ySW1tZWRpYXRlRmxpcCA9CisJCQkJCQltb2RlX2xpYi0+dmJhLkJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAKKwkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLmN1cnNvcl9id1trXQorCQkJCQkJCQktIGRtbF9tYXgoCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoUGxhbmVMdW1hW2tdCisJCQkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuUmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdCisJCQkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEucXVhbF9yb3dfYndba10sCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaEJhbmR3aWR0aFtrXSk7CisJCQl9CisKKwkJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCQlJbW1lZGlhdGVGbGlwQnl0ZXNba10gPSAwOworCQkJCWlmICgobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80MjBfOAorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80MjBfMTApKSB7CisJCQkJCUltbWVkaWF0ZUZsaXBCeXRlc1trXSA9CisJCQkJCQkJbW9kZV9saWItPnZiYS5QREVBbmRNZXRhUFRFQnl0ZXNGcmFtZVtrXQorCQkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlW2tdCisJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuUGl4ZWxQVEVCeXRlc1BlclJvd1trXTsKKwkJCQl9CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLlRvdEltbWVkaWF0ZUZsaXBCeXRlcyA9IDA7CisJCQlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCQkJaWYgKChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQyMF84CisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQyMF8xMCkpIHsKKwkJCQkJbW9kZV9saWItPnZiYS5Ub3RJbW1lZGlhdGVGbGlwQnl0ZXMgPQorCQkJCQkJCW1vZGVfbGliLT52YmEuVG90SW1tZWRpYXRlRmxpcEJ5dGVzCisJCQkJCQkJCQkrIEltbWVkaWF0ZUZsaXBCeXRlc1trXTsKKwkJCQl9CisJCQl9CisJCQlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCQkJQ2FsY3VsYXRlRmxpcFNjaGVkdWxlKAorCQkJCQkJbW9kZV9saWIsCisJCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudEV4dHJhTGF0ZW5jeSwKKwkJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeVBpeGVsRGF0YU9ubHksCisJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQkJCQkJbW9kZV9saWItPnZiYS5HUFVWTUVuYWJsZSwKKwkJCQkJCW1vZGVfbGliLT52YmEuQmFuZHdpZHRoQXZhaWxhYmxlRm9ySW1tZWRpYXRlRmxpcCwKKwkJCQkJCW1vZGVfbGliLT52YmEuVG90SW1tZWRpYXRlRmxpcEJ5dGVzLAorCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCUltbWVkaWF0ZUZsaXBCeXRlc1trXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5WUmF0aW9ba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLlRub19id1trXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuUERFQW5kTWV0YVBURUJ5dGVzRnJhbWVba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbFBURUJ5dGVzUGVyUm93W2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLmRwdGVfcm93X2hlaWdodFtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEubWV0YV9yb3dfaGVpZ2h0W2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5xdWFsX3Jvd19id1trXSwKKwkJCQkJCSZtb2RlX2xpYi0+dmJhLkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluSW1tZWRpYXRlRmxpcFtrXSwKKwkJCQkJCSZtb2RlX2xpYi0+dmJhLkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJbkltbWVkaWF0ZUZsaXBba10sCisJCQkJCQkmZmluYWxfZmxpcF9id1trXSwKKwkJCQkJCSZtb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWRGb3JQaXBlW2tdKTsKKwkJCX0KKwkJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCQl0b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXAgPQorCQkJCQkJdG90YWxfZGNuX3JlYWRfYndfd2l0aF9mbGlwCisJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5jdXJzb3JfYndba10KKwkJCQkJCQkJKyBkbWxfbWF4KAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEucHJlZmV0Y2hfdm1fYndba10sCisJCQkJCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEucHJlZmV0Y2hfcm93X2J3W2tdLAorCQkJCQkJCQkJCQkJZmluYWxfZmxpcF9id1trXQorCQkJCQkJCQkJCQkJCQkrIGRtbF9tYXgoCisJCQkJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoUGxhbmVMdW1hW2tdCisJCQkJCQkJCQkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuUmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdLAorCQkJCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuUmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0x1bWFba10pKSk7CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWQgPSB0cnVlOworCQkJaWYgKHRvdGFsX2Rjbl9yZWFkX2J3X3dpdGhfZmxpcCA+IG1vZGVfbGliLT52YmEuUmV0dXJuQlcpIHsKKwkJCQltb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWQgPSBmYWxzZTsKKwkJCX0KKwkJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5JbW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yUGlwZVtrXSA9PSBmYWxzZSkgeworCQkJCQltb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWQgPSBmYWxzZTsKKwkJCQl9CisJCQl9CisJCX0gZWxzZSB7CisJCQltb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWQgPSBmYWxzZTsKKwkJfQorCisJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkVycm9yUmVzdWx0W2tdKSB7CisJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaE1vZGVTdXBwb3J0ZWQgPSBmYWxzZTsKKwkJCQlkbWxfcHJpbnQoCisJCQkJCQkiRE1MOiBDYWxjdWxhdGVQcmVmZXRjaFNjaGVkdWxlICoqKmZhaWxlZCoqKi4gUHJlZmV0Y2ggc2NoZWR1bGUgdmlvbGF0aW9uLiBSZXN1bHRzIGFyZSBOT1QgdmFsaWRcbiIpOworCQkJfQorCQl9CisKKwkJbW9kZV9saWItPnZiYS5WU3RhcnR1cExpbmVzID0gbW9kZV9saWItPnZiYS5WU3RhcnR1cExpbmVzICsgMTsKKwl9IHdoaWxlICghKChtb2RlX2xpYi0+dmJhLlByZWZldGNoTW9kZVN1cHBvcnRlZAorCQkJJiYgKCFtb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBTdXBwb3J0CisJCQkJCXx8IG1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcFN1cHBvcnRlZCkpCisJCQl8fCBtb2RlX2xpYi0+dmJhLk1heGltdW1NYXhWU3RhcnR1cExpbmVzIDwgbW9kZV9saWItPnZiYS5WU3RhcnR1cExpbmVzKSk7CisKKwkvL0Rpc3BsYXkgUGlwZWxpbmUgRGVsaXZlcnkgVGltZSBpbiBQcmVmZXRjaAorCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuVlJhdGlvUHJlZmV0Y2hZW2tdIDw9IDEpIHsKKwkJCW1vZGVfbGliLT52YmEuRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lTHVtYVByZWZldGNoW2tdID0KKwkJCQkJbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXSAqIG1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba10KKwkJCQkJCQkvIG1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba107CisJCX0gZWxzZSB7CisJCQltb2RlX2xpYi0+dmJhLkRpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWFQcmVmZXRjaFtrXSA9CisJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10KKwkJCQkJCQkvIG1vZGVfbGliLT52YmEuUFNDTF9USFJPVUdIUFVUX0xVTUFba10KKwkJCQkJCQkvIG1vZGVfbGliLT52YmEuRFBQQ0xLW2tdOworCQl9CisJCWlmIChtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbERFVENba10gPT0gMCkgeworCQkJbW9kZV9saWItPnZiYS5EaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFQcmVmZXRjaFtrXSA9IDA7CisJCX0gZWxzZSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5WUmF0aW9QcmVmZXRjaENba10gPD0gMSkgeworCQkJCW1vZGVfbGliLT52YmEuRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hUHJlZmV0Y2hba10gPQorCQkJCQkJbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXQorCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba10KKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXQorCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXTsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5EaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFQcmVmZXRjaFtrXSA9CisJCQkJCQltb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhZW2tdCisJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QU0NMX1RIUk9VR0hQVVRfTFVNQVtrXQorCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuRFBQQ0xLW2tdOworCQkJfQorCQl9CisJfQorCisJLy8gTWluIFRUVVZCbGFuaworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuUHJlZmV0Y2hNb2RlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVttb2RlX2xpYi0+dmJhLm1heE1wY0NvbWJdID09IDApIHsKKwkJCW1vZGVfbGliLT52YmEuQWxsb3dEUkFNQ2xvY2tDaGFuZ2VEdXJpbmdWQmxhbmtba10gPSB0cnVlOworCQkJbW9kZV9saWItPnZiYS5BbGxvd0RSQU1TZWxmUmVmcmVzaER1cmluZ1ZCbGFua1trXSA9IHRydWU7CisJCQltb2RlX2xpYi0+dmJhLk1pblRUVVZCbGFua1trXSA9IGRtbF9tYXgoCisJCQkJCW1vZGVfbGliLT52YmEuRFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJrLAorCQkJCQlkbWxfbWF4KAorCQkJCQkJCW1vZGVfbGliLT52YmEuU3R1dHRlckVudGVyUGx1c0V4aXRXYXRlcm1hcmssCisJCQkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRXYXRlcm1hcmspKTsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlByZWZldGNoTW9kZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1bbW9kZV9saWItPnZiYS5tYXhNcGNDb21iXSA9PSAxKSB7CisJCQltb2RlX2xpYi0+dmJhLkFsbG93RFJBTUNsb2NrQ2hhbmdlRHVyaW5nVkJsYW5rW2tdID0gZmFsc2U7CisJCQltb2RlX2xpYi0+dmJhLkFsbG93RFJBTVNlbGZSZWZyZXNoRHVyaW5nVkJsYW5rW2tdID0gdHJ1ZTsKKwkJCW1vZGVfbGliLT52YmEuTWluVFRVVkJsYW5rW2tdID0gZG1sX21heCgKKwkJCQkJbW9kZV9saWItPnZiYS5TdHV0dGVyRW50ZXJQbHVzRXhpdFdhdGVybWFyaywKKwkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRXYXRlcm1hcmspOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5BbGxvd0RSQU1DbG9ja0NoYW5nZUR1cmluZ1ZCbGFua1trXSA9IGZhbHNlOworCQkJbW9kZV9saWItPnZiYS5BbGxvd0RSQU1TZWxmUmVmcmVzaER1cmluZ1ZCbGFua1trXSA9IGZhbHNlOworCQkJbW9kZV9saWItPnZiYS5NaW5UVFVWQmxhbmtba10gPSBtb2RlX2xpYi0+dmJhLlVyZ2VudFdhdGVybWFyazsKKwkJfQorCQlpZiAoIW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhRW5hYmxlW2tdKQorCQkJbW9kZV9saWItPnZiYS5NaW5UVFVWQmxhbmtba10gPSBtb2RlX2xpYi0+dmJhLlRDYWxjCisJCQkJCSsgbW9kZV9saWItPnZiYS5NaW5UVFVWQmxhbmtba107CisJfQorCisJLy8gRENDIENvbmZpZ3VyYXRpb24KKwltb2RlX2xpYi0+dmJhLkFjdGl2ZURQUHMgPSAwOworCS8vIE5CIFAtU3RhdGUvRFJBTSBDbG9jayBDaGFuZ2UgU3VwcG9ydAorCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJbW9kZV9saWItPnZiYS5BY3RpdmVEUFBzID0gbW9kZV9saWItPnZiYS5BY3RpdmVEUFBzICsgbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZVtrXTsKKwl9CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWRvdWJsZSBFZmZlY3RpdmVMQkxhdGVuY3lIaWRpbmdZOworCQlkb3VibGUgRWZmZWN0aXZlTEJMYXRlbmN5SGlkaW5nQzsKKwkJZG91YmxlIERQUE91dHB1dEJ1ZmZlckxpbmVzWTsKKwkJZG91YmxlIERQUE91dHB1dEJ1ZmZlckxpbmVzQzsKKwkJZG91YmxlIERQUE9QUEJ1ZmZlcmluZ1k7CisJCWRvdWJsZSBNYXhERVRCdWZmZXJpbmdUaW1lWTsKKwkJZG91YmxlIEFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5ZOworCisJCW1vZGVfbGliLT52YmEuTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNZID0KKwkJCQlkbWxfbWluKAorCQkJCQkJbW9kZV9saWItPnZiYS5NYXhMaW5lQnVmZmVyTGluZXMsCisJCQkJCQkodW5zaWduZWQgaW50KSBkbWxfZmxvb3IoCisJCQkJCQkJCShkb3VibGUpIG1vZGVfbGliLT52YmEuTGluZUJ1ZmZlclNpemUKKwkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuTEJCaXRQZXJQaXhlbFtrXQorCQkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10KKwkJCQkJCQkJCQkJCS8gZG1sX21heCgKKwkJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW9ba10sCisJCQkJCQkJCQkJCQkJCTEuMCkpLAorCQkJCQkJCQkxKSkgLSAobW9kZV9saWItPnZiYS52dGFwc1trXSAtIDEpOworCisJCW1vZGVfbGliLT52YmEuTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNDID0KKwkJCQlkbWxfbWluKAorCQkJCQkJbW9kZV9saWItPnZiYS5NYXhMaW5lQnVmZmVyTGluZXMsCisJCQkJCQkodW5zaWduZWQgaW50KSBkbWxfZmxvb3IoCisJCQkJCQkJCShkb3VibGUpIG1vZGVfbGliLT52YmEuTGluZUJ1ZmZlclNpemUKKwkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuTEJCaXRQZXJQaXhlbFtrXQorCQkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10KKwkJCQkJCQkJCQkJCS8gMi4wCisJCQkJCQkJCQkJCQkvIGRtbF9tYXgoCisJCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJCQkJCQkJCQkJLyAyLAorCQkJCQkJCQkJCQkJCQkxLjApKSwKKwkJCQkJCQkJMSkpCisJCQkJCQktIChtb2RlX2xpYi0+dmJhLlZUQVBzQ2hyb21hW2tdIC0gMSk7CisKKwkJRWZmZWN0aXZlTEJMYXRlbmN5SGlkaW5nWSA9IG1vZGVfbGliLT52YmEuTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNZCisJCQkJLyBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXQorCQkJCSogKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKTsKKworCQlFZmZlY3RpdmVMQkxhdGVuY3lIaWRpbmdDID0gbW9kZV9saWItPnZiYS5MQkxhdGVuY3lIaWRpbmdTb3VyY2VMaW5lc0MKKwkJCQkvIChtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSAvIDIpCisJCQkJKiAobW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pOworCisJCWlmIChtb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhZW2tdID4gMiAqIG1vZGVfbGliLT52YmEuRFBQT3V0cHV0QnVmZmVyUGl4ZWxzKSB7CisJCQlEUFBPdXRwdXRCdWZmZXJMaW5lc1kgPSBtb2RlX2xpYi0+dmJhLkRQUE91dHB1dEJ1ZmZlclBpeGVscworCQkJCQkvIG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba107CisJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXSA+IG1vZGVfbGliLT52YmEuRFBQT3V0cHV0QnVmZmVyUGl4ZWxzKSB7CisJCQlEUFBPdXRwdXRCdWZmZXJMaW5lc1kgPSAwLjU7CisJCX0gZWxzZSB7CisJCQlEUFBPdXRwdXRCdWZmZXJMaW5lc1kgPSAxOworCQl9CisKKwkJaWYgKG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10gLyAyID4gMiAqIG1vZGVfbGliLT52YmEuRFBQT3V0cHV0QnVmZmVyUGl4ZWxzKSB7CisJCQlEUFBPdXRwdXRCdWZmZXJMaW5lc0MgPSBtb2RlX2xpYi0+dmJhLkRQUE91dHB1dEJ1ZmZlclBpeGVscworCQkJCQkvIChtb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhZW2tdIC8gMik7CisJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVtrXSAvIDIgPiBtb2RlX2xpYi0+dmJhLkRQUE91dHB1dEJ1ZmZlclBpeGVscykgeworCQkJRFBQT3V0cHV0QnVmZmVyTGluZXNDID0gMC41OworCQl9IGVsc2UgeworCQkJRFBQT3V0cHV0QnVmZmVyTGluZXNDID0gMTsKKwkJfQorCisJCURQUE9QUEJ1ZmZlcmluZ1kgPSAobW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pCisJCQkJKiAoRFBQT3V0cHV0QnVmZmVyTGluZXNZICsgbW9kZV9saWItPnZiYS5PUFBPdXRwdXRCdWZmZXJMaW5lcyk7CisJCU1heERFVEJ1ZmZlcmluZ1RpbWVZID0gbW9kZV9saWItPnZiYS5GdWxsREVUQnVmZmVyaW5nVGltZVlba10KKwkJCQkrIChtb2RlX2xpYi0+dmJhLkxpbmVzSW5ERVRZW2tdCisJCQkJCQktIG1vZGVfbGliLT52YmEuTGluZXNJbkRFVFlSb3VuZGVkRG93blRvU3dhdGhba10pCisJCQkJCQkvIG1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRZW2tdCisJCQkJCQkqIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSk7CisKKwkJQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpblkgPSBEUFBPUFBCdWZmZXJpbmdZICsgRWZmZWN0aXZlTEJMYXRlbmN5SGlkaW5nWQorCQkJCSsgTWF4REVUQnVmZmVyaW5nVGltZVkgLSBtb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZVdhdGVybWFyazsKKworCQlpZiAobW9kZV9saWItPnZiYS5BY3RpdmVEUFBzID4gMSkgeworCQkJQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpblkgPQorCQkJCQlBY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luWQorCQkJCQkJCS0gKDEgLSAxIC8gKG1vZGVfbGliLT52YmEuQWN0aXZlRFBQcyAtIDEpKQorCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0WVtrXQorCQkJCQkJCQkJKiAobW9kZV9saWItPnZiYS5IVG90YWxba10KKwkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pOworCQl9CisKKwkJaWYgKG1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUQ1trXSA+IDApIHsKKwkJCWRvdWJsZSBEUFBPUFBCdWZmZXJpbmdDID0gKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKQorCQkJCQkqIChEUFBPdXRwdXRCdWZmZXJMaW5lc0MKKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuT1BQT3V0cHV0QnVmZmVyTGluZXMpOworCQkJZG91YmxlIE1heERFVEJ1ZmZlcmluZ1RpbWVDID0KKwkJCQkJbW9kZV9saWItPnZiYS5GdWxsREVUQnVmZmVyaW5nVGltZUNba10KKwkJCQkJCQkrIChtb2RlX2xpYi0+dmJhLkxpbmVzSW5ERVRDW2tdCisJCQkJCQkJCQktIG1vZGVfbGliLT52YmEuTGluZXNJbkRFVENSb3VuZGVkRG93blRvU3dhdGhba10pCisJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDW2tdCisJCQkJCQkJCQkqIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSk7CisJCQlkb3VibGUgQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpbkMgPSBEUFBPUFBCdWZmZXJpbmdDCisJCQkJCSsgRWZmZWN0aXZlTEJMYXRlbmN5SGlkaW5nQyArIE1heERFVEJ1ZmZlcmluZ1RpbWVDCisJCQkJCS0gbW9kZV9saWItPnZiYS5EUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcms7CisKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkFjdGl2ZURQUHMgPiAxKSB7CisJCQkJQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpbkMgPQorCQkJCQkJQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpbkMKKwkJCQkJCQkJLSAoMQorCQkJCQkJCQkJCS0gMQorCQkJCQkJCQkJCQkJLyAobW9kZV9saWItPnZiYS5BY3RpdmVEUFBzCisJCQkJCQkJCQkJCQkJCS0gMSkpCisJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0Q1trXQorCQkJCQkJCQkJCSogKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSk7CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5ba10gPSBkbWxfbWluKAorCQkJCQlBY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luWSwKKwkJCQkJQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpbkMpOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luW2tdID0KKwkJCQkJQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpblk7CisJCX0KKworCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tFbmFibGVba10pIHsKKwkJCWRvdWJsZSBXcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luOworCisJCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMzIpIHsKKwkJCQlXcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luID0KKwkJCQkJCShkb3VibGUpIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0ludGVyZmFjZUx1bWFCdWZmZXJTaXplCisJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VDaHJvbWFCdWZmZXJTaXplKQorCQkJCQkJCQkvIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25IZWlnaHRba10KKwkJCQkJCQkJCQkvIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1NvdXJjZUhlaWdodFtrXQorCQkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pCisJCQkJCQkJCQkJKiA0KQorCQkJCQkJCQktIG1vZGVfbGliLT52YmEuV3JpdGViYWNrRFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJrOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdID09IGRtXzQyMF8xMCkgeworCQkJCVdyaXRlYmFja0RSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW4gPQorCQkJCQkJZG1sX21pbigKKwkJCQkJCQkJKGRvdWJsZSkgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VMdW1hQnVmZmVyU2l6ZQorCQkJCQkJCQkJCSogOC4wIC8gMTAsCisJCQkJCQkJCTIuMAorCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VDaHJvbWFCdWZmZXJTaXplCisJCQkJCQkJCQkJKiA4IC8gMTApCisJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtrXQorCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbkhlaWdodFtrXQorCQkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuV3JpdGViYWNrU291cmNlSGVpZ2h0W2tdCisJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkpCisJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcms7CisJCQl9IGVsc2UgeworCQkJCVdyaXRlYmFja0RSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW4gPQorCQkJCQkJZG1sX21pbigKKwkJCQkJCQkJKGRvdWJsZSkgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VMdW1hQnVmZmVyU2l6ZSwKKwkJCQkJCQkJMi4wCisJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0ludGVyZmFjZUNocm9tYUJ1ZmZlclNpemUpCisJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtrXQorCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbkhlaWdodFtrXQorCQkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuV3JpdGViYWNrU291cmNlSGVpZ2h0W2tdCisJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkpCisJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcms7CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5ba10gPSBkbWxfbWluKAorCQkJCQltb2RlX2xpYi0+dmJhLkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5ba10sCisJCQkJCVdyaXRlYmFja0RSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW4pOworCQl9CisJfQorCisJbW9kZV9saWItPnZiYS5NaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW4gPSA5OTk5OTk7CisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlpZiAobW9kZV9saWItPnZiYS5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luW2tdCisJCQkJPCBtb2RlX2xpYi0+dmJhLk1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbikgeworCQkJbW9kZV9saWItPnZiYS5NaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW4gPQorCQkJCQltb2RlX2xpYi0+dmJhLkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5ba107CisJCX0KKwl9CisKKwltb2RlX2xpYi0+dmJhLk1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lTdXBwb3J0ZWQgPQorCQkJbW9kZV9saWItPnZiYS5NaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW4KKwkJCQkJKyBtb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZUxhdGVuY3k7CisKKwlpZiAobW9kZV9saWItPnZiYS5NaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW4gPiAwKSB7CisJCW1vZGVfbGliLT52YmEuRFJBTUNsb2NrQ2hhbmdlU3VwcG9ydFswXVswXSA9IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3ZhY3RpdmU7CisJfSBlbHNlIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuU3luY2hyb25pemVkVkJsYW5rIHx8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgPT0gMSkgeworCQkJbW9kZV9saWItPnZiYS5EUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0WzBdWzBdID0gZG1fZHJhbV9jbG9ja19jaGFuZ2VfdmJsYW5rOworCQkJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQkJCWlmICghbW9kZV9saWItPnZiYS5BbGxvd0RSQU1DbG9ja0NoYW5nZUR1cmluZ1ZCbGFua1trXSkgeworCQkJCQltb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZVN1cHBvcnRbMF1bMF0gPQorCQkJCQkJCWRtX2RyYW1fY2xvY2tfY2hhbmdlX3Vuc3VwcG9ydGVkOworCQkJCX0KKwkJCX0KKwkJfSBlbHNlIHsKKwkJCW1vZGVfbGliLT52YmEuRFJBTUNsb2NrQ2hhbmdlU3VwcG9ydFswXVswXSA9IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3Vuc3VwcG9ydGVkOworCQl9CisJfQorCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaysrKQorCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKQorCQkJbW9kZV9saWItPnZiYS5EUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0W2tdW2pdID0gbW9kZV9saWItPnZiYS5EUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0WzBdWzBdOworCisJLy9YRkMgUGFyYW1ldGVyczoKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLlhGQ0VuYWJsZWRba10gPT0gdHJ1ZSkgeworCQkJZG91YmxlIFRXYWl0OworCisJCQltb2RlX2xpYi0+dmJhLlhGQ1NsYXZlVlVwZGF0ZU9mZnNldFtrXSA9IG1vZGVfbGliLT52YmEuWEZDVFNsdlZ1cGRhdGVPZmZzZXQ7CisJCQltb2RlX2xpYi0+dmJhLlhGQ1NsYXZlVnVwZGF0ZVdpZHRoW2tdID0gbW9kZV9saWItPnZiYS5YRkNUU2x2VnVwZGF0ZVdpZHRoOworCQkJbW9kZV9saWItPnZiYS5YRkNTbGF2ZVZSZWFkeU9mZnNldFtrXSA9IG1vZGVfbGliLT52YmEuWEZDVFNsdlZyZWFkeU9mZnNldDsKKwkJCVRXYWl0ID0gQ2FsY3VsYXRlVFdhaXQoCisJCQkJCW1vZGVfbGliLT52YmEuUHJlZmV0Y2hNb2RlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVttb2RlX2xpYi0+dmJhLm1heE1wY0NvbWJdLAorCQkJCQltb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZUxhdGVuY3ksCisJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeVBpeGVsRGF0YU9ubHksCisJCQkJCW1vZGVfbGliLT52YmEuU1JFbnRlclBsdXNFeGl0VGltZSk7CisJCQltb2RlX2xpYi0+dmJhLlhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXkgPSBDYWxjdWxhdGVSZW1vdGVTdXJmYWNlRmxpcERlbGF5KAorCQkJCQltb2RlX2xpYiwKKwkJCQkJbW9kZV9saWItPnZiYS5WUmF0aW9ba10sCisJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlba10sCisJCQkJCWRtbF9jZWlsKG1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsREVUWVtrXSwgMSksCisJCQkJCW1vZGVfbGliLT52YmEuSFRvdGFsW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdLAorCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1RTbHZWdXBkYXRlT2Zmc2V0LAorCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1RTbHZWdXBkYXRlV2lkdGgsCisJCQkJCW1vZGVfbGliLT52YmEuWEZDVFNsdlZyZWFkeU9mZnNldCwKKwkJCQkJbW9kZV9saWItPnZiYS5YRkNYQlVGTGF0ZW5jeVRvbGVyYW5jZSwKKwkJCQkJbW9kZV9saWItPnZiYS5YRkNGaWxsQldPdmVyaGVhZCwKKwkJCQkJbW9kZV9saWItPnZiYS5YRkNTbHZDaHVua1NpemUsCisJCQkJCW1vZGVfbGliLT52YmEuWEZDQnVzVHJhbnNwb3J0VGltZSwKKwkJCQkJbW9kZV9saWItPnZiYS5UQ2FsYywKKwkJCQkJVFdhaXQsCisJCQkJCSZtb2RlX2xpYi0+dmJhLlNyY0FjdGl2ZURyYWluUmF0ZSwKKwkJCQkJJm1vZGVfbGliLT52YmEuVEluaXRYRmlsbCwKKwkJCQkJJm1vZGVfbGliLT52YmEuVHNsdkNoayk7CisJCQltb2RlX2xpYi0+dmJhLlhGQ1JlbW90ZVN1cmZhY2VGbGlwTGF0ZW5jeVtrXSA9CisJCQkJCWRtbF9mbG9vcigKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXkKKwkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSwKKwkJCQkJCQkxKTsKKwkJCW1vZGVfbGliLT52YmEuWEZDVHJhbnNmZXJEZWxheVtrXSA9CisJCQkJCWRtbF9jZWlsKAorCQkJCQkJCW1vZGVfbGliLT52YmEuWEZDQnVzVHJhbnNwb3J0VGltZQorCQkJCQkJCQkJLyAobW9kZV9saWItPnZiYS5IVG90YWxba10KKwkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pLAorCQkJCQkJCTEpOworCQkJbW9kZV9saWItPnZiYS5YRkNQcmVjaGFyZ2VEZWxheVtrXSA9CisJCQkJCWRtbF9jZWlsKAorCQkJCQkJCShtb2RlX2xpYi0+dmJhLlhGQ0J1c1RyYW5zcG9ydFRpbWUKKwkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5USW5pdFhGaWxsCisJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuVHNsdkNoaykKKwkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSwKKwkJCQkJCQkxKTsKKwkJCW1vZGVfbGliLT52YmEuSW5pdEZpbGxMZXZlbCA9IG1vZGVfbGliLT52YmEuWEZDWEJVRkxhdGVuY3lUb2xlcmFuY2UKKwkJCQkJKiBtb2RlX2xpYi0+dmJhLlNyY0FjdGl2ZURyYWluUmF0ZTsKKwkJCW1vZGVfbGliLT52YmEuRmluYWxGaWxsTWFyZ2luID0KKwkJCQkJKG1vZGVfbGliLT52YmEuRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmtba10KKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luVkJsYW5rW2tdKQorCQkJCQkJCSogbW9kZV9saWItPnZiYS5IVG90YWxba10KKwkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXQorCQkJCQkJCSogbW9kZV9saWItPnZiYS5TcmNBY3RpdmVEcmFpblJhdGUKKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuWEZDRmlsbENvbnN0YW50OworCQkJbW9kZV9saWItPnZiYS5GaW5hbEZpbGxMZXZlbCA9IG1vZGVfbGliLT52YmEuWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheQorCQkJCQkqIG1vZGVfbGliLT52YmEuU3JjQWN0aXZlRHJhaW5SYXRlCisJCQkJCSsgbW9kZV9saWItPnZiYS5GaW5hbEZpbGxNYXJnaW47CisJCQltb2RlX2xpYi0+dmJhLlJlbWFpbmluZ0ZpbGxMZXZlbCA9IGRtbF9tYXgoCisJCQkJCTAuMCwKKwkJCQkJbW9kZV9saWItPnZiYS5GaW5hbEZpbGxMZXZlbCAtIG1vZGVfbGliLT52YmEuSW5pdEZpbGxMZXZlbCk7CisJCQltb2RlX2xpYi0+dmJhLlRGaW5hbHhGaWxsID0gbW9kZV9saWItPnZiYS5SZW1haW5pbmdGaWxsTGV2ZWwKKwkJCQkJLyAobW9kZV9saWItPnZiYS5TcmNBY3RpdmVEcmFpblJhdGUKKwkJCQkJCQkqIG1vZGVfbGliLT52YmEuWEZDRmlsbEJXT3ZlcmhlYWQgLyAxMDApOworCQkJbW9kZV9saWItPnZiYS5YRkNQcmVmZXRjaE1hcmdpbltrXSA9CisJCQkJCW1vZGVfbGliLT52YmEuWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheQorCQkJCQkJCSsgbW9kZV9saWItPnZiYS5URmluYWx4RmlsbAorCQkJCQkJCSsgKG1vZGVfbGliLT52YmEuRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmtba10KKwkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmtba10pCisJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXTsKKwkJfSBlbHNlIHsKKwkJCW1vZGVfbGliLT52YmEuWEZDU2xhdmVWVXBkYXRlT2Zmc2V0W2tdID0gMDsKKwkJCW1vZGVfbGliLT52YmEuWEZDU2xhdmVWdXBkYXRlV2lkdGhba10gPSAwOworCQkJbW9kZV9saWItPnZiYS5YRkNTbGF2ZVZSZWFkeU9mZnNldFtrXSA9IDA7CisJCQltb2RlX2xpYi0+dmJhLlhGQ1JlbW90ZVN1cmZhY2VGbGlwTGF0ZW5jeVtrXSA9IDA7CisJCQltb2RlX2xpYi0+dmJhLlhGQ1ByZWNoYXJnZURlbGF5W2tdID0gMDsKKwkJCW1vZGVfbGliLT52YmEuWEZDVHJhbnNmZXJEZWxheVtrXSA9IDA7CisJCQltb2RlX2xpYi0+dmJhLlhGQ1ByZWZldGNoTWFyZ2luW2tdID0gMDsKKwkJfQorCX0KKwl7CisJCXVuc2lnbmVkIGludCBWU3RhcnR1cE1hcmdpbiA9IDA7CisJCWJvb2wgRmlyc3RNYWluUGxhbmUgPSB0cnVlOworCisJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2tdID09IGspIHsKKwkJCQl1bnNpZ25lZCBpbnQgTWFyZ2luID0gKG1vZGVfbGliLT52YmEuTWF4VlN0YXJ0dXBMaW5lc1trXSAtIG1vZGVfbGliLT52YmEuVlN0YXJ0dXBba10pCisJCQkJCQkqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCisJCQkJaWYgKEZpcnN0TWFpblBsYW5lKSB7CisJCQkJCVZTdGFydHVwTWFyZ2luID0gTWFyZ2luOworCQkJCQlGaXJzdE1haW5QbGFuZSA9IGZhbHNlOworCQkJCX0gZWxzZQorCQkJCQlWU3RhcnR1cE1hcmdpbiA9IGRtbF9taW4oVlN0YXJ0dXBNYXJnaW4sIE1hcmdpbik7CisJCX0KKworCQlpZiAobW9kZV9saWItPnZiYS5Vc2VNYXhpbXVtVlN0YXJ0dXApIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLlZUb3RhbF9NYXhba10gPT0gbW9kZV9saWItPnZiYS5WVG90YWxba10pIHsKKwkJCQkvL29ubHkgdXNlIG1heCB2c3RhcnQgaWYgaXQgaXMgbm90IGRyciBvciBsYXRlZmxpcC4KKwkJCQltb2RlX2xpYi0+dmJhLlZTdGFydHVwW2tdID0gbW9kZV9saWItPnZiYS5NYXhWU3RhcnR1cExpbmVzW21vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba11dOworCQkJfQorCQl9CisJfQorfQorfQorCitzdGF0aWMgdm9pZCBkbWwyMHYyX0Rpc3BsYXlQaXBlQ29uZmlndXJhdGlvbihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpCit7CisJZG91YmxlIEJ5dGVQZXJQaXhERVRZOworCWRvdWJsZSBCeXRlUGVyUGl4REVUQzsKKwlkb3VibGUgUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRZOworCWRvdWJsZSBSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodEM7CisJZG91YmxlIFJlYWQyNTZCeXRlc0Jsb2NrV2lkdGhZOworCWRvdWJsZSBSZWFkMjU2Qnl0ZXNCbG9ja1dpZHRoQzsKKwlkb3VibGUgTWF4aW11bVN3YXRoSGVpZ2h0WTsKKwlkb3VibGUgTWF4aW11bVN3YXRoSGVpZ2h0QzsKKwlkb3VibGUgTWluaW11bVN3YXRoSGVpZ2h0WTsKKwlkb3VibGUgTWluaW11bVN3YXRoSGVpZ2h0QzsKKwlkb3VibGUgU3dhdGhXaWR0aDsKKwlkb3VibGUgU3dhdGhXaWR0aEdyYW51bGFyaXR5WTsKKwlkb3VibGUgU3dhdGhXaWR0aEdyYW51bGFyaXR5QzsKKwlkb3VibGUgUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNZOworCWRvdWJsZSBSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc0M7CisJdW5zaWduZWQgaW50IGosIGs7CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWJvb2wgTWFpblBsYW5lRG9lc09ETUNvbWJpbmUgPSBmYWxzZTsKKworCQlpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfNjQpIHsKKwkJCUJ5dGVQZXJQaXhERVRZID0gODsKKwkJCUJ5dGVQZXJQaXhERVRDID0gMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8zMikgeworCQkJQnl0ZVBlclBpeERFVFkgPSA0OworCQkJQnl0ZVBlclBpeERFVEMgPSAwOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzE2KSB7CisJCQlCeXRlUGVyUGl4REVUWSA9IDI7CisJCQlCeXRlUGVyUGl4REVUQyA9IDA7CisJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfOCkgeworCQkJQnl0ZVBlclBpeERFVFkgPSAxOworCQkJQnl0ZVBlclBpeERFVEMgPSAwOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzgpIHsKKwkJCUJ5dGVQZXJQaXhERVRZID0gMTsKKwkJCUJ5dGVQZXJQaXhERVRDID0gMjsKKwkJfSBlbHNlIHsKKwkJCUJ5dGVQZXJQaXhERVRZID0gNC4wIC8gMy4wOworCQkJQnl0ZVBlclBpeERFVEMgPSA4LjAgLyAzLjA7CisJCX0KKworCQlpZiAoKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzY0CisJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMzIKKwkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8xNgorCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzgpKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X2xpbmVhcikgeworCQkJCVJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0WSA9IDE7CisJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzY0KSB7CisJCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRZID0gNDsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMzIKKwkJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMTYpIHsKKwkJCQlSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodFkgPSA4OworCQkJfSBlbHNlIHsKKwkJCQlSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodFkgPSAxNjsKKwkJCX0KKwkJCVJlYWQyNTZCeXRlc0Jsb2NrV2lkdGhZID0gMjU2IC8gZG1sX2NlaWwoQnl0ZVBlclBpeERFVFksIDEpCisJCQkJCS8gUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRZOworCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRDID0gMDsKKwkJCVJlYWQyNTZCeXRlc0Jsb2NrV2lkdGhDID0gMDsKKwkJfSBlbHNlIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfbGluZWFyKSB7CisJCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRZID0gMTsKKwkJCQlSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodEMgPSAxOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQyMF84KSB7CisJCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRZID0gMTY7CisJCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRDID0gODsKKwkJCX0gZWxzZSB7CisJCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRZID0gODsKKwkJCQlSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodEMgPSA4OworCQkJfQorCQkJUmVhZDI1NkJ5dGVzQmxvY2tXaWR0aFkgPSAyNTYgLyBkbWxfY2VpbChCeXRlUGVyUGl4REVUWSwgMSkKKwkJCQkJLyBSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodFk7CisJCQlSZWFkMjU2Qnl0ZXNCbG9ja1dpZHRoQyA9IDI1NiAvIGRtbF9jZWlsKEJ5dGVQZXJQaXhERVRDLCAyKQorCQkJCQkvIFJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0QzsKKwkJfQorCisJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikgeworCQkJTWF4aW11bVN3YXRoSGVpZ2h0WSA9IFJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0WTsKKwkJCU1heGltdW1Td2F0aEhlaWdodEMgPSBSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodEM7CisJCX0gZWxzZSB7CisJCQlNYXhpbXVtU3dhdGhIZWlnaHRZID0gUmVhZDI1NkJ5dGVzQmxvY2tXaWR0aFk7CisJCQlNYXhpbXVtU3dhdGhIZWlnaHRDID0gUmVhZDI1NkJ5dGVzQmxvY2tXaWR0aEM7CisJCX0KKworCQlpZiAoKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzY0CisJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMzIKKwkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8xNgorCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzgpKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X2xpbmVhcgorCQkJCQl8fCAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfNjQKKwkJCQkJCQkmJiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQk9PSBkbV9zd180a2JfcworCQkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQkJCT09IGRtX3N3XzRrYl9zX3gKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd182NGtiX3MKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd182NGtiX3NfdAorCQkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQkJCT09IGRtX3N3XzY0a2Jfc194CisJCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10KKwkJCQkJCQkJCQkJPT0gZG1fc3dfdmFyX3MKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd192YXJfc194KQorCQkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSkgeworCQkJCU1pbmltdW1Td2F0aEhlaWdodFkgPSBNYXhpbXVtU3dhdGhIZWlnaHRZOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF84CisJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSAhPSBkbV9ob3J6KSB7CisJCQkJTWluaW11bVN3YXRoSGVpZ2h0WSA9IE1heGltdW1Td2F0aEhlaWdodFk7CisJCQl9IGVsc2UgeworCQkJCU1pbmltdW1Td2F0aEhlaWdodFkgPSBNYXhpbXVtU3dhdGhIZWlnaHRZIC8gMi4wOworCQkJfQorCQkJTWluaW11bVN3YXRoSGVpZ2h0QyA9IE1heGltdW1Td2F0aEhlaWdodEM7CisJCX0gZWxzZSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X2xpbmVhcikgeworCQkJCU1pbmltdW1Td2F0aEhlaWdodFkgPSBNYXhpbXVtU3dhdGhIZWlnaHRZOworCQkJCU1pbmltdW1Td2F0aEhlaWdodEMgPSBNYXhpbXVtU3dhdGhIZWlnaHRDOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQyMF84CisJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSB7CisJCQkJTWluaW11bVN3YXRoSGVpZ2h0WSA9IE1heGltdW1Td2F0aEhlaWdodFkgLyAyLjA7CisJCQkJTWluaW11bVN3YXRoSGVpZ2h0QyA9IE1heGltdW1Td2F0aEhlaWdodEM7CisJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzEwCisJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSB7CisJCQkJTWluaW11bVN3YXRoSGVpZ2h0QyA9IE1heGltdW1Td2F0aEhlaWdodEMgLyAyLjA7CisJCQkJTWluaW11bVN3YXRoSGVpZ2h0WSA9IE1heGltdW1Td2F0aEhlaWdodFk7CisJCQl9IGVsc2UgeworCQkJCU1pbmltdW1Td2F0aEhlaWdodFkgPSBNYXhpbXVtU3dhdGhIZWlnaHRZOworCQkJCU1pbmltdW1Td2F0aEhlaWdodEMgPSBNYXhpbXVtU3dhdGhIZWlnaHRDOworCQkJfQorCQl9CisKKwkJaWYgKG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSB7CisJCQlTd2F0aFdpZHRoID0gbW9kZV9saWItPnZiYS5WaWV3cG9ydFdpZHRoW2tdOworCQl9IGVsc2UgeworCQkJU3dhdGhXaWR0aCA9IG1vZGVfbGliLT52YmEuVmlld3BvcnRIZWlnaHRba107CisJCX0KKworCQlpZiAobW9kZV9saWItPnZiYS5PRE1Db21iaW5lRW5hYmxlZFtrXSA9PSB0cnVlKSB7CisJCQlNYWluUGxhbmVEb2VzT0RNQ29tYmluZSA9IHRydWU7CisJCX0KKwkJZm9yIChqID0gMDsgaiA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraikgeworCQkJaWYgKG1vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gagorCQkJCQkmJiBtb2RlX2xpYi0+dmJhLk9ETUNvbWJpbmVFbmFibGVkW2pdID09IHRydWUpIHsKKwkJCQlNYWluUGxhbmVEb2VzT0RNQ29tYmluZSA9IHRydWU7CisJCQl9CisJCX0KKworCQlpZiAoTWFpblBsYW5lRG9lc09ETUNvbWJpbmUgPT0gdHJ1ZSkgeworCQkJU3dhdGhXaWR0aCA9IGRtbF9taW4oCisJCQkJCVN3YXRoV2lkdGgsCisJCQkJCW1vZGVfbGliLT52YmEuSEFjdGl2ZVtrXSAvIDIuMCAqIG1vZGVfbGliLT52YmEuSFJhdGlvW2tdKTsKKwkJfSBlbHNlIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdID09IDApCisJCQkJU3dhdGhXaWR0aCA9IDA7CisJCQllbHNlCisJCQkJU3dhdGhXaWR0aCA9IFN3YXRoV2lkdGggLyBtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdOworCQl9CisKKwkJU3dhdGhXaWR0aEdyYW51bGFyaXR5WSA9IDI1NiAvIGRtbF9jZWlsKEJ5dGVQZXJQaXhERVRZLCAxKSAvIE1heGltdW1Td2F0aEhlaWdodFk7CisJCVJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzWSA9IChkbWxfY2VpbCgKKwkJCQkoZG91YmxlKSAoU3dhdGhXaWR0aCAtIDEpLAorCQkJCVN3YXRoV2lkdGhHcmFudWxhcml0eVkpICsgU3dhdGhXaWR0aEdyYW51bGFyaXR5WSkgKiBCeXRlUGVyUGl4REVUWQorCQkJCSogTWF4aW11bVN3YXRoSGVpZ2h0WTsKKwkJaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzEwKSB7CisJCQlSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc1kgPSBkbWxfY2VpbChSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc1ksIDI1NikKKwkJCQkJKyAyNTY7CisJCX0KKwkJaWYgKE1heGltdW1Td2F0aEhlaWdodEMgPiAwKSB7CisJCQlTd2F0aFdpZHRoR3JhbnVsYXJpdHlDID0gMjU2LjAgLyBkbWxfY2VpbChCeXRlUGVyUGl4REVUQywgMikKKwkJCQkJLyBNYXhpbXVtU3dhdGhIZWlnaHRDOworCQkJUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDID0gKGRtbF9jZWlsKAorCQkJCQkoZG91YmxlKSAoU3dhdGhXaWR0aCAvIDIuMCAtIDEpLAorCQkJCQlTd2F0aFdpZHRoR3JhbnVsYXJpdHlDKSArIFN3YXRoV2lkdGhHcmFudWxhcml0eUMpCisJCQkJCSogQnl0ZVBlclBpeERFVEMgKiBNYXhpbXVtU3dhdGhIZWlnaHRDOworCQkJaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzEwKSB7CisJCQkJUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDID0gZG1sX2NlaWwoCisJCQkJCQlSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc0MsCisJCQkJCQkyNTYpICsgMjU2OworCQkJfQorCQl9IGVsc2UKKwkJCVJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzQyA9IDAuMDsKKworCQlpZiAoUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNZICsgUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDCisJCQkJPD0gbW9kZV9saWItPnZiYS5ERVRCdWZmZXJTaXplSW5LQnl0ZSAqIDEwMjQuMCAvIDIuMCkgeworCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlba10gPSBNYXhpbXVtU3dhdGhIZWlnaHRZOworCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodENba10gPSBNYXhpbXVtU3dhdGhIZWlnaHRDOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlba10gPSBNaW5pbXVtU3dhdGhIZWlnaHRZOworCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodENba10gPSBNaW5pbXVtU3dhdGhIZWlnaHRDOworCQl9CisKKwkJaWYgKG1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDW2tdID09IDApIHsKKwkJCW1vZGVfbGliLT52YmEuREVUQnVmZmVyU2l6ZVlba10gPSBtb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVJbktCeXRlICogMTAyNDsKKwkJCW1vZGVfbGliLT52YmEuREVUQnVmZmVyU2l6ZUNba10gPSAwOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRZW2tdIDw9IG1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDW2tdKSB7CisJCQltb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVZW2tdID0gbW9kZV9saWItPnZiYS5ERVRCdWZmZXJTaXplSW5LQnl0ZQorCQkJCQkqIDEwMjQuMCAvIDI7CisJCQltb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVDW2tdID0gbW9kZV9saWItPnZiYS5ERVRCdWZmZXJTaXplSW5LQnl0ZQorCQkJCQkqIDEwMjQuMCAvIDI7CisJCX0gZWxzZSB7CisJCQltb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVZW2tdID0gbW9kZV9saWItPnZiYS5ERVRCdWZmZXJTaXplSW5LQnl0ZQorCQkJCQkqIDEwMjQuMCAqIDIgLyAzOworCQkJbW9kZV9saWItPnZiYS5ERVRCdWZmZXJTaXplQ1trXSA9IG1vZGVfbGliLT52YmEuREVUQnVmZmVyU2l6ZUluS0J5dGUKKwkJCQkJKiAxMDI0LjAgLyAzOworCQl9CisJfQorfQorCitzdGF0aWMgZG91YmxlIENhbGN1bGF0ZVRXYWl0KAorCQl1bnNpZ25lZCBpbnQgUHJlZmV0Y2hNb2RlLAorCQlkb3VibGUgRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeSwKKwkJZG91YmxlIFVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5LAorCQlkb3VibGUgU1JFbnRlclBsdXNFeGl0VGltZSkKK3sKKwlpZiAoUHJlZmV0Y2hNb2RlID09IDApIHsKKwkJcmV0dXJuIGRtbF9tYXgoCisJCQkJRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeSArIFVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5LAorCQkJCWRtbF9tYXgoU1JFbnRlclBsdXNFeGl0VGltZSwgVXJnZW50TGF0ZW5jeVBpeGVsRGF0YU9ubHkpKTsKKwl9IGVsc2UgaWYgKFByZWZldGNoTW9kZSA9PSAxKSB7CisJCXJldHVybiBkbWxfbWF4KFNSRW50ZXJQbHVzRXhpdFRpbWUsIFVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5KTsKKwl9IGVsc2UgeworCQlyZXR1cm4gVXJnZW50TGF0ZW5jeVBpeGVsRGF0YU9ubHk7CisJfQorfQorCitzdGF0aWMgZG91YmxlIENhbGN1bGF0ZVJlbW90ZVN1cmZhY2VGbGlwRGVsYXkoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZG91YmxlIFZSYXRpbywKKwkJZG91YmxlIFN3YXRoV2lkdGgsCisJCWRvdWJsZSBCcHAsCisJCWRvdWJsZSBMaW5lVGltZSwKKwkJZG91YmxlIFhGQ1RTbHZWdXBkYXRlT2Zmc2V0LAorCQlkb3VibGUgWEZDVFNsdlZ1cGRhdGVXaWR0aCwKKwkJZG91YmxlIFhGQ1RTbHZWcmVhZHlPZmZzZXQsCisJCWRvdWJsZSBYRkNYQlVGTGF0ZW5jeVRvbGVyYW5jZSwKKwkJZG91YmxlIFhGQ0ZpbGxCV092ZXJoZWFkLAorCQlkb3VibGUgWEZDU2x2Q2h1bmtTaXplLAorCQlkb3VibGUgWEZDQnVzVHJhbnNwb3J0VGltZSwKKwkJZG91YmxlIFRDYWxjLAorCQlkb3VibGUgVFdhaXQsCisJCWRvdWJsZSAqU3JjQWN0aXZlRHJhaW5SYXRlLAorCQlkb3VibGUgKlRJbml0WEZpbGwsCisJCWRvdWJsZSAqVHNsdkNoaykKK3sKKwlkb3VibGUgVFNsdlNldHVwLCBBdmdmaWxsUmF0ZSwgcmVzdWx0OworCisJKlNyY0FjdGl2ZURyYWluUmF0ZSA9IFZSYXRpbyAqIFN3YXRoV2lkdGggKiBCcHAgLyBMaW5lVGltZTsKKwlUU2x2U2V0dXAgPSBYRkNUU2x2VnVwZGF0ZU9mZnNldCArIFhGQ1RTbHZWdXBkYXRlV2lkdGggKyBYRkNUU2x2VnJlYWR5T2Zmc2V0OworCSpUSW5pdFhGaWxsID0gWEZDWEJVRkxhdGVuY3lUb2xlcmFuY2UgLyAoMSArIFhGQ0ZpbGxCV092ZXJoZWFkIC8gMTAwKTsKKwlBdmdmaWxsUmF0ZSA9ICpTcmNBY3RpdmVEcmFpblJhdGUgKiAoMSArIFhGQ0ZpbGxCV092ZXJoZWFkIC8gMTAwKTsKKwkqVHNsdkNoayA9IFhGQ1NsdkNodW5rU2l6ZSAvIEF2Z2ZpbGxSYXRlOworCWRtbF9wcmludCgKKwkJCSJETUw6OkNhbGN1bGF0ZVJlbW90ZVN1cmZhY2VGbGlwRGVsYXk6IFNyY0FjdGl2ZURyYWluUmF0ZTogJWZcbiIsCisJCQkqU3JjQWN0aXZlRHJhaW5SYXRlKTsKKwlkbWxfcHJpbnQoIkRNTDo6Q2FsY3VsYXRlUmVtb3RlU3VyZmFjZUZsaXBEZWxheTogVFNsdlNldHVwOiAlZlxuIiwgVFNsdlNldHVwKTsKKwlkbWxfcHJpbnQoIkRNTDo6Q2FsY3VsYXRlUmVtb3RlU3VyZmFjZUZsaXBEZWxheTogVEluaXRYRmlsbDogJWZcbiIsICpUSW5pdFhGaWxsKTsKKwlkbWxfcHJpbnQoIkRNTDo6Q2FsY3VsYXRlUmVtb3RlU3VyZmFjZUZsaXBEZWxheTogQXZnZmlsbFJhdGU6ICVmXG4iLCBBdmdmaWxsUmF0ZSk7CisJZG1sX3ByaW50KCJETUw6OkNhbGN1bGF0ZVJlbW90ZVN1cmZhY2VGbGlwRGVsYXk6IFRzbHZDaGs6ICVmXG4iLCAqVHNsdkNoayk7CisJcmVzdWx0ID0gMiAqIFhGQ0J1c1RyYW5zcG9ydFRpbWUgKyBUU2x2U2V0dXAgKyBUQ2FsYyArIFRXYWl0ICsgKlRzbHZDaGsgKyAqVEluaXRYRmlsbDsgLy8gVE9ETzogVGhpcyBkb2Vzbid0IHNlZW0gdG8gbWF0Y2ggcHJvZ3JhbW1pbmcgZ3VpZGUKKwlkbWxfcHJpbnQoIkRNTDo6Q2FsY3VsYXRlUmVtb3RlU3VyZmFjZUZsaXBEZWxheTogUmVtb3RlU3VyZmFjZUZsaXBEZWxheTogJWZcbiIsIHJlc3VsdCk7CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGRvdWJsZSBDYWxjdWxhdGVXcml0ZUJhY2tEZWxheSgKKwkJZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFdyaXRlYmFja1BpeGVsRm9ybWF0LAorCQlkb3VibGUgV3JpdGViYWNrSFJhdGlvLAorCQlkb3VibGUgV3JpdGViYWNrVlJhdGlvLAorCQl1bnNpZ25lZCBpbnQgV3JpdGViYWNrTHVtYUhUYXBzLAorCQl1bnNpZ25lZCBpbnQgV3JpdGViYWNrTHVtYVZUYXBzLAorCQl1bnNpZ25lZCBpbnQgV3JpdGViYWNrQ2hyb21hSFRhcHMsCisJCXVuc2lnbmVkIGludCBXcml0ZWJhY2tDaHJvbWFWVGFwcywKKwkJdW5zaWduZWQgaW50IFdyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGgpCit7CisJZG91YmxlIENhbGN1bGF0ZVdyaXRlQmFja0RlbGF5ID0KKwkJCWRtbF9tYXgoCisJCQkJCWRtbF9jZWlsKFdyaXRlYmFja0x1bWFIVGFwcyAvIDQuMCwgMSkgLyBXcml0ZWJhY2tIUmF0aW8sCisJCQkJCVdyaXRlYmFja0x1bWFWVGFwcyAqIGRtbF9jZWlsKDEuMCAvIFdyaXRlYmFja1ZSYXRpbywgMSkKKwkJCQkJCQkqIGRtbF9jZWlsKAorCQkJCQkJCQkJV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aAorCQkJCQkJCQkJCQkvIDQuMCwKKwkJCQkJCQkJCTEpCisJCQkJCQkJKyBkbWxfY2VpbCgxLjAgLyBXcml0ZWJhY2tWUmF0aW8sIDEpCisJCQkJCQkJCQkqIChkbWxfY2VpbCgKKwkJCQkJCQkJCQkJV3JpdGViYWNrTHVtYVZUYXBzCisJCQkJCQkJCQkJCQkJLyA0LjAsCisJCQkJCQkJCQkJCTEpICsgNCkpOworCisJaWYgKFdyaXRlYmFja1BpeGVsRm9ybWF0ICE9IGRtXzQ0NF8zMikgeworCQlDYWxjdWxhdGVXcml0ZUJhY2tEZWxheSA9CisJCQkJZG1sX21heCgKKwkJCQkJCUNhbGN1bGF0ZVdyaXRlQmFja0RlbGF5LAorCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJZG1sX2NlaWwoCisJCQkJCQkJCQkJV3JpdGViYWNrQ2hyb21hSFRhcHMKKwkJCQkJCQkJCQkJCS8gMi4wLAorCQkJCQkJCQkJCTEpCisJCQkJCQkJCQkJLyAoMgorCQkJCQkJCQkJCQkJKiBXcml0ZWJhY2tIUmF0aW8pLAorCQkJCQkJCQlXcml0ZWJhY2tDaHJvbWFWVGFwcworCQkJCQkJCQkJCSogZG1sX2NlaWwoCisJCQkJCQkJCQkJCQkxCisJCQkJCQkJCQkJCQkJCS8gKDIKKwkJCQkJCQkJCQkJCQkJCQkqIFdyaXRlYmFja1ZSYXRpbyksCisJCQkJCQkJCQkJCQkxKQorCQkJCQkJCQkJCSogZG1sX2NlaWwoCisJCQkJCQkJCQkJCQlXcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoCisJCQkJCQkJCQkJCQkJCS8gMi4wCisJCQkJCQkJCQkJCQkJCS8gMi4wLAorCQkJCQkJCQkJCQkJMSkKKwkJCQkJCQkJCQkrIGRtbF9jZWlsKAorCQkJCQkJCQkJCQkJMQorCQkJCQkJCQkJCQkJCQkvICgyCisJCQkJCQkJCQkJCQkJCQkJKiBXcml0ZWJhY2tWUmF0aW8pLAorCQkJCQkJCQkJCQkJMSkKKwkJCQkJCQkJCQkJCSogKGRtbF9jZWlsKAorCQkJCQkJCQkJCQkJCQlXcml0ZWJhY2tDaHJvbWFWVGFwcworCQkJCQkJCQkJCQkJCQkJCS8gNC4wLAorCQkJCQkJCQkJCQkJCQkxKQorCQkJCQkJCQkJCQkJCQkrIDQpKSk7CisJfQorCXJldHVybiBDYWxjdWxhdGVXcml0ZUJhY2tEZWxheTsKK30KKworc3RhdGljIHZvaWQgQ2FsY3VsYXRlQWN0aXZlUm93QmFuZHdpZHRoKAorCQlib29sIEdQVVZNRW5hYmxlLAorCQllbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3MgU291cmNlUGl4ZWxGb3JtYXQsCisJCWRvdWJsZSBWUmF0aW8sCisJCWJvb2wgRENDRW5hYmxlLAorCQlkb3VibGUgTGluZVRpbWUsCisJCXVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZUx1bWEsCisJCXVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZUNocm9tYSwKKwkJdW5zaWduZWQgaW50IG1ldGFfcm93X2hlaWdodF9sdW1hLAorCQl1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVpZ2h0X2Nocm9tYSwKKwkJdW5zaWduZWQgaW50IFBpeGVsUFRFQnl0ZXNQZXJSb3dMdW1hLAorCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvd0Nocm9tYSwKKwkJdW5zaWduZWQgaW50IGRwdGVfcm93X2hlaWdodF9sdW1hLAorCQl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVpZ2h0X2Nocm9tYSwKKwkJZG91YmxlICptZXRhX3Jvd19idywKKwkJZG91YmxlICpkcHRlX3Jvd19idywKKwkJZG91YmxlICpxdWFsX3Jvd19idykKK3sKKwlpZiAoRENDRW5hYmxlICE9IHRydWUpIHsKKwkJKm1ldGFfcm93X2J3ID0gMDsKKwl9IGVsc2UgaWYgKFNvdXJjZVBpeGVsRm9ybWF0ID09IGRtXzQyMF84IHx8IFNvdXJjZVBpeGVsRm9ybWF0ID09IGRtXzQyMF8xMCkgeworCQkqbWV0YV9yb3dfYncgPSBWUmF0aW8gKiBNZXRhUm93Qnl0ZUx1bWEgLyAobWV0YV9yb3dfaGVpZ2h0X2x1bWEgKiBMaW5lVGltZSkKKwkJCQkrIFZSYXRpbyAvIDIgKiBNZXRhUm93Qnl0ZUNocm9tYQorCQkJCQkJLyAobWV0YV9yb3dfaGVpZ2h0X2Nocm9tYSAqIExpbmVUaW1lKTsKKwl9IGVsc2UgeworCQkqbWV0YV9yb3dfYncgPSBWUmF0aW8gKiBNZXRhUm93Qnl0ZUx1bWEgLyAobWV0YV9yb3dfaGVpZ2h0X2x1bWEgKiBMaW5lVGltZSk7CisJfQorCisJaWYgKEdQVVZNRW5hYmxlICE9IHRydWUpIHsKKwkJKmRwdGVfcm93X2J3ID0gMDsKKwl9IGVsc2UgaWYgKFNvdXJjZVBpeGVsRm9ybWF0ID09IGRtXzQyMF84IHx8IFNvdXJjZVBpeGVsRm9ybWF0ID09IGRtXzQyMF8xMCkgeworCQkqZHB0ZV9yb3dfYncgPSBWUmF0aW8gKiBQaXhlbFBURUJ5dGVzUGVyUm93THVtYSAvIChkcHRlX3Jvd19oZWlnaHRfbHVtYSAqIExpbmVUaW1lKQorCQkJCSsgVlJhdGlvIC8gMiAqIFBpeGVsUFRFQnl0ZXNQZXJSb3dDaHJvbWEKKwkJCQkJCS8gKGRwdGVfcm93X2hlaWdodF9jaHJvbWEgKiBMaW5lVGltZSk7CisJfSBlbHNlIHsKKwkJKmRwdGVfcm93X2J3ID0gVlJhdGlvICogUGl4ZWxQVEVCeXRlc1BlclJvd0x1bWEgLyAoZHB0ZV9yb3dfaGVpZ2h0X2x1bWEgKiBMaW5lVGltZSk7CisJfQorCisJaWYgKChTb3VyY2VQaXhlbEZvcm1hdCA9PSBkbV80MjBfOCB8fCBTb3VyY2VQaXhlbEZvcm1hdCA9PSBkbV80MjBfMTApKSB7CisJCSpxdWFsX3Jvd19idyA9ICptZXRhX3Jvd19idyArICpkcHRlX3Jvd19idzsKKwl9IGVsc2UgeworCQkqcXVhbF9yb3dfYncgPSAwOworCX0KK30KKworc3RhdGljIHZvaWQgQ2FsY3VsYXRlRmxpcFNjaGVkdWxlKAorCQlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRvdWJsZSBVcmdlbnRFeHRyYUxhdGVuY3ksCisJCWRvdWJsZSBVcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seSwKKwkJdW5zaWduZWQgaW50IEdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQlib29sIEdQVVZNRW5hYmxlLAorCQlkb3VibGUgQmFuZHdpZHRoQXZhaWxhYmxlRm9ySW1tZWRpYXRlRmxpcCwKKwkJdW5zaWduZWQgaW50IFRvdEltbWVkaWF0ZUZsaXBCeXRlcywKKwkJZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFNvdXJjZVBpeGVsRm9ybWF0LAorCQl1bnNpZ25lZCBpbnQgSW1tZWRpYXRlRmxpcEJ5dGVzLAorCQlkb3VibGUgTGluZVRpbWUsCisJCWRvdWJsZSBWUmF0aW8sCisJCWRvdWJsZSBUbm9fYncsCisJCWRvdWJsZSBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlLAorCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvdywKKwkJYm9vbCBEQ0NFbmFibGUsCisJCXVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHQsCisJCXVuc2lnbmVkIGludCBtZXRhX3Jvd19oZWlnaHQsCisJCWRvdWJsZSBxdWFsX3Jvd19idywKKwkJZG91YmxlICpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JbkltbWVkaWF0ZUZsaXAsCisJCWRvdWJsZSAqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luSW1tZWRpYXRlRmxpcCwKKwkJZG91YmxlICpmaW5hbF9mbGlwX2J3LAorCQlib29sICpJbW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yUGlwZSkKK3sKKwlkb3VibGUgbWluX3Jvd190aW1lID0gMC4wOworCisJaWYgKFNvdXJjZVBpeGVsRm9ybWF0ID09IGRtXzQyMF84IHx8IFNvdXJjZVBpeGVsRm9ybWF0ID09IGRtXzQyMF8xMCkgeworCQkqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5JbW1lZGlhdGVGbGlwID0gMC4wOworCQkqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luSW1tZWRpYXRlRmxpcCA9IDAuMDsKKwkJKmZpbmFsX2ZsaXBfYncgPSBxdWFsX3Jvd19idzsKKwkJKkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWRGb3JQaXBlID0gdHJ1ZTsKKwl9IGVsc2UgeworCQlkb3VibGUgVGltZUZvckZldGNoaW5nTWV0YVBURUltbWVkaWF0ZUZsaXA7CisJCWRvdWJsZSBUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFua0ltbWVkaWF0ZUZsaXA7CisKKwkJaWYgKEdQVVZNRW5hYmxlID09IHRydWUpIHsKKwkJCW1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcEJXWzBdID0gQmFuZHdpZHRoQXZhaWxhYmxlRm9ySW1tZWRpYXRlRmxpcAorCQkJCQkqIEltbWVkaWF0ZUZsaXBCeXRlcyAvIFRvdEltbWVkaWF0ZUZsaXBCeXRlczsKKwkJCVRpbWVGb3JGZXRjaGluZ01ldGFQVEVJbW1lZGlhdGVGbGlwID0KKwkJCQkJZG1sX21heCgKKwkJCQkJCQlUbm9fYncKKwkJCQkJCQkJCSsgUERFQW5kTWV0YVBURUJ5dGVzRnJhbWUKKwkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBCV1swXSwKKwkJCQkJCQlkbWxfbWF4KAorCQkJCQkJCQkJVXJnZW50RXh0cmFMYXRlbmN5CisJCQkJCQkJCQkJCSsgVXJnZW50TGF0ZW5jeVBpeGVsRGF0YU9ubHkKKwkJCQkJCQkJCQkJCQkqIChHUFVWTU1heFBhZ2VUYWJsZUxldmVscworCQkJCQkJCQkJCQkJCQkJLSAxKSwKKwkJCQkJCQkJCUxpbmVUaW1lIC8gNC4wKSk7CisJCX0gZWxzZSB7CisJCQlUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFSW1tZWRpYXRlRmxpcCA9IDA7CisJCX0KKworCQkqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5JbW1lZGlhdGVGbGlwID0gZG1sX2Zsb29yKAorCQkJCTQuMCAqIChUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFSW1tZWRpYXRlRmxpcCAvIExpbmVUaW1lICsgMC4xMjUpLAorCQkJCTEpIC8gNC4wOworCisJCWlmICgoR1BVVk1FbmFibGUgPT0gdHJ1ZSB8fCBEQ0NFbmFibGUgPT0gdHJ1ZSkpIHsKKwkJCW1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcEJXWzBdID0gQmFuZHdpZHRoQXZhaWxhYmxlRm9ySW1tZWRpYXRlRmxpcAorCQkJCQkqIEltbWVkaWF0ZUZsaXBCeXRlcyAvIFRvdEltbWVkaWF0ZUZsaXBCeXRlczsKKwkJCVRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rSW1tZWRpYXRlRmxpcCA9IGRtbF9tYXgoCisJCQkJCShNZXRhUm93Qnl0ZSArIFBpeGVsUFRFQnl0ZXNQZXJSb3cpCisJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBCV1swXSwKKwkJCQkJZG1sX21heChVcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seSwgTGluZVRpbWUgLyA0LjApKTsKKwkJfSBlbHNlIHsKKwkJCVRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rSW1tZWRpYXRlRmxpcCA9IDA7CisJCX0KKworCQkqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luSW1tZWRpYXRlRmxpcCA9IGRtbF9mbG9vcigKKwkJCQk0LjAgKiAoVGltZUZvckZldGNoaW5nUm93SW5WQmxhbmtJbW1lZGlhdGVGbGlwIC8gTGluZVRpbWUgKyAwLjEyNSksCisJCQkJMSkgLyA0LjA7CisKKwkJaWYgKEdQVVZNRW5hYmxlID09IHRydWUpIHsKKwkJCSpmaW5hbF9mbGlwX2J3ID0KKwkJCQkJZG1sX21heCgKKwkJCQkJCQlQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZQorCQkJCQkJCQkJLyAoKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluSW1tZWRpYXRlRmxpcAorCQkJCQkJCQkJCQkqIExpbmVUaW1lKSwKKwkJCQkJCQkoTWV0YVJvd0J5dGUgKyBQaXhlbFBURUJ5dGVzUGVyUm93KQorCQkJCQkJCQkJLyAoVGltZUZvckZldGNoaW5nUm93SW5WQmxhbmtJbW1lZGlhdGVGbGlwCisJCQkJCQkJCQkJCSogTGluZVRpbWUpKTsKKwkJfSBlbHNlIGlmIChNZXRhUm93Qnl0ZSArIFBpeGVsUFRFQnl0ZXNQZXJSb3cgPiAwKSB7CisJCQkqZmluYWxfZmxpcF9idyA9IChNZXRhUm93Qnl0ZSArIFBpeGVsUFRFQnl0ZXNQZXJSb3cpCisJCQkJCS8gKFRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rSW1tZWRpYXRlRmxpcCAqIExpbmVUaW1lKTsKKwkJfSBlbHNlIHsKKwkJCSpmaW5hbF9mbGlwX2J3ID0gMDsKKwkJfQorCisJCWlmIChHUFVWTUVuYWJsZSAmJiAhRENDRW5hYmxlKQorCQkJbWluX3Jvd190aW1lID0gZHB0ZV9yb3dfaGVpZ2h0ICogTGluZVRpbWUgLyBWUmF0aW87CisJCWVsc2UgaWYgKCFHUFVWTUVuYWJsZSAmJiBEQ0NFbmFibGUpCisJCQltaW5fcm93X3RpbWUgPSBtZXRhX3Jvd19oZWlnaHQgKiBMaW5lVGltZSAvIFZSYXRpbzsKKwkJZWxzZQorCQkJbWluX3Jvd190aW1lID0gZG1sX21pbihkcHRlX3Jvd19oZWlnaHQsIG1ldGFfcm93X2hlaWdodCkgKiBMaW5lVGltZQorCQkJCQkvIFZSYXRpbzsKKworCQlpZiAoKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluSW1tZWRpYXRlRmxpcCA+PSA4CisJCQkJfHwgKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJbkltbWVkaWF0ZUZsaXAgPj0gMTYKKwkJCQl8fCBUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFSW1tZWRpYXRlRmxpcAorCQkJCQkJKyAyICogVGltZUZvckZldGNoaW5nUm93SW5WQmxhbmtJbW1lZGlhdGVGbGlwCisJCQkJCQk+IG1pbl9yb3dfdGltZSkKKwkJCSpJbW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yUGlwZSA9IGZhbHNlOworCQllbHNlCisJCQkqSW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclBpcGUgPSB0cnVlOworCX0KK30KKworc3RhdGljIHVuc2lnbmVkIGludCBUcnVuY1RvVmFsaWRCUFAoCisJCWRvdWJsZSBEZWNpbWFsQlBQLAorCQlib29sIERTQ0VuYWJsZWQsCisJCWVudW0gb3V0cHV0X2VuY29kZXJfY2xhc3MgT3V0cHV0LAorCQllbnVtIG91dHB1dF9mb3JtYXRfY2xhc3MgRm9ybWF0LAorCQl1bnNpZ25lZCBpbnQgRFNDSW5wdXRCaXRQZXJDb21wb25lbnQpCit7CisJaWYgKE91dHB1dCA9PSBkbV9oZG1pKSB7CisJCWlmIChGb3JtYXQgPT0gZG1fNDIwKSB7CisJCQlpZiAoRGVjaW1hbEJQUCA+PSAxOCkKKwkJCQlyZXR1cm4gMTg7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDE1KQorCQkJCXJldHVybiAxNTsKKwkJCWVsc2UgaWYgKERlY2ltYWxCUFAgPj0gMTIpCisJCQkJcmV0dXJuIDEyOworCQkJZWxzZQorCQkJCXJldHVybiBCUFBfSU5WQUxJRDsKKwkJfSBlbHNlIGlmIChGb3JtYXQgPT0gZG1fNDQ0KSB7CisJCQlpZiAoRGVjaW1hbEJQUCA+PSAzNikKKwkJCQlyZXR1cm4gMzY7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDMwKQorCQkJCXJldHVybiAzMDsKKwkJCWVsc2UgaWYgKERlY2ltYWxCUFAgPj0gMjQpCisJCQkJcmV0dXJuIDI0OworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAxOCkKKwkJCQlyZXR1cm4gMTg7CisJCQllbHNlCisJCQkJcmV0dXJuIEJQUF9JTlZBTElEOworCQl9IGVsc2UgeworCQkJaWYgKERlY2ltYWxCUFAgLyAxLjUgPj0gMjQpCisJCQkJcmV0dXJuIDI0OworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCAvIDEuNSA+PSAyMCkKKwkJCQlyZXR1cm4gMjA7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQIC8gMS41ID49IDE2KQorCQkJCXJldHVybiAxNjsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gQlBQX0lOVkFMSUQ7CisJCX0KKwl9IGVsc2UgeworCQlpZiAoRFNDRW5hYmxlZCkgeworCQkJaWYgKEZvcm1hdCA9PSBkbV80MjApIHsKKwkJCQlpZiAoRGVjaW1hbEJQUCA8IDYpCisJCQkJCXJldHVybiBCUFBfSU5WQUxJRDsKKwkJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDEuNSAqIERTQ0lucHV0Qml0UGVyQ29tcG9uZW50IC0gMSAvIDE2KQorCQkJCQlyZXR1cm4gMS41ICogRFNDSW5wdXRCaXRQZXJDb21wb25lbnQgLSAxIC8gMTY7CisJCQkJZWxzZQorCQkJCQlyZXR1cm4gZG1sX2Zsb29yKDE2ICogRGVjaW1hbEJQUCwgMSkgLyAxNjsKKwkJCX0gZWxzZSBpZiAoRm9ybWF0ID09IGRtX240MjIpIHsKKwkJCQlpZiAoRGVjaW1hbEJQUCA8IDcpCisJCQkJCXJldHVybiBCUFBfSU5WQUxJRDsKKwkJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDIgKiBEU0NJbnB1dEJpdFBlckNvbXBvbmVudCAtIDEgLyAxNikKKwkJCQkJcmV0dXJuIDIgKiBEU0NJbnB1dEJpdFBlckNvbXBvbmVudCAtIDEgLyAxNjsKKwkJCQllbHNlCisJCQkJCXJldHVybiBkbWxfZmxvb3IoMTYgKiBEZWNpbWFsQlBQLCAxKSAvIDE2OworCQkJfSBlbHNlIHsKKwkJCQlpZiAoRGVjaW1hbEJQUCA8IDgpCisJCQkJCXJldHVybiBCUFBfSU5WQUxJRDsKKwkJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDMgKiBEU0NJbnB1dEJpdFBlckNvbXBvbmVudCAtIDEgLyAxNikKKwkJCQkJcmV0dXJuIDMgKiBEU0NJbnB1dEJpdFBlckNvbXBvbmVudCAtIDEgLyAxNjsKKwkJCQllbHNlCisJCQkJCXJldHVybiBkbWxfZmxvb3IoMTYgKiBEZWNpbWFsQlBQLCAxKSAvIDE2OworCQkJfQorCQl9IGVsc2UgaWYgKEZvcm1hdCA9PSBkbV80MjApIHsKKwkJCWlmIChEZWNpbWFsQlBQID49IDE4KQorCQkJCXJldHVybiAxODsKKwkJCWVsc2UgaWYgKERlY2ltYWxCUFAgPj0gMTUpCisJCQkJcmV0dXJuIDE1OworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAxMikKKwkJCQlyZXR1cm4gMTI7CisJCQllbHNlCisJCQkJcmV0dXJuIEJQUF9JTlZBTElEOworCQl9IGVsc2UgaWYgKEZvcm1hdCA9PSBkbV9zNDIyIHx8IEZvcm1hdCA9PSBkbV9uNDIyKSB7CisJCQlpZiAoRGVjaW1hbEJQUCA+PSAyNCkKKwkJCQlyZXR1cm4gMjQ7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDIwKQorCQkJCXJldHVybiAyMDsKKwkJCWVsc2UgaWYgKERlY2ltYWxCUFAgPj0gMTYpCisJCQkJcmV0dXJuIDE2OworCQkJZWxzZQorCQkJCXJldHVybiBCUFBfSU5WQUxJRDsKKwkJfSBlbHNlIHsKKwkJCWlmIChEZWNpbWFsQlBQID49IDM2KQorCQkJCXJldHVybiAzNjsKKwkJCWVsc2UgaWYgKERlY2ltYWxCUFAgPj0gMzApCisJCQkJcmV0dXJuIDMwOworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAyNCkKKwkJCQlyZXR1cm4gMjQ7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDE4KQorCQkJCXJldHVybiAxODsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gQlBQX0lOVkFMSUQ7CisJCX0KKwl9Cit9CisKK3ZvaWQgZG1sMjB2Ml9Nb2RlU3VwcG9ydEFuZFN5c3RlbUNvbmZpZ3VyYXRpb25GdWxsKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYikKK3sKKwlzdHJ1Y3QgdmJhX3ZhcnNfc3QgKmxvY2FscyA9ICZtb2RlX2xpYi0+dmJhOworCisJaW50IGk7CisJdW5zaWduZWQgaW50IGosIGssIG07CisKKwkvKk1PREUgU1VQUE9SVCwgVk9MVEFHRSBTVEFURSBBTkQgU09DIENPTkZJR1VSQVRJT04qLworCisJLypTY2FsZSBSYXRpbywgdGFwcyBTdXBwb3J0IENoZWNrKi8KKworCW1vZGVfbGliLT52YmEuU2NhbGVSYXRpb0FuZFRhcHNTdXBwb3J0ID0gdHJ1ZTsKKwlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuU2NhbGVyRW5hYmxlZFtrXSA9PSBmYWxzZQorCQkJCSYmICgobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfNjQKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzMyCisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8xNgorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV9tb25vXzE2CisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtX21vbm9fOCkKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEuSFJhdGlvW2tdICE9IDEuMAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS5odGFwc1trXSAhPSAxLjAKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEuVlJhdGlvW2tdICE9IDEuMAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS52dGFwc1trXSAhPSAxLjApKSB7CisJCQltb2RlX2xpYi0+dmJhLlNjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydCA9IGZhbHNlOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEudnRhcHNba10gPCAxLjAgfHwgbW9kZV9saWItPnZiYS52dGFwc1trXSA+IDguMAorCQkJCXx8IG1vZGVfbGliLT52YmEuaHRhcHNba10gPCAxLjAgfHwgbW9kZV9saWItPnZiYS5odGFwc1trXSA+IDguMAorCQkJCXx8IChtb2RlX2xpYi0+dmJhLmh0YXBzW2tdID4gMS4wCisJCQkJCQkmJiAobW9kZV9saWItPnZiYS5odGFwc1trXSAlIDIpID09IDEpCisJCQkJfHwgbW9kZV9saWItPnZiYS5IUmF0aW9ba10gPiBtb2RlX2xpYi0+dmJhLk1heEhTQ0xSYXRpbworCQkJCXx8IG1vZGVfbGliLT52YmEuVlJhdGlvW2tdID4gbW9kZV9saWItPnZiYS5NYXhWU0NMUmF0aW8KKwkJCQl8fCBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSA+IG1vZGVfbGliLT52YmEuaHRhcHNba10KKwkJCQl8fCBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSA+IG1vZGVfbGliLT52YmEudnRhcHNba10KKwkJCQl8fCAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfNjQKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzMyCisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8xNgorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV9tb25vXzE2CisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtX21vbm9fOAorCQkJCQkJJiYgKG1vZGVfbGliLT52YmEuSFJhdGlvW2tdIC8gMi4wCisJCQkJCQkJCT4gbW9kZV9saWItPnZiYS5IVEFQc0Nocm9tYVtrXQorCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSAvIDIuMAorCQkJCQkJCQkJCT4gbW9kZV9saWItPnZiYS5WVEFQc0Nocm9tYVtrXSkpKSB7CisJCQltb2RlX2xpYi0+dmJhLlNjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydCA9IGZhbHNlOworCQl9CisJfQorCS8qU291cmNlIEZvcm1hdCwgUGl4ZWwgRm9ybWF0IGFuZCBTY2FuIFN1cHBvcnQgQ2hlY2sqLworCisJbW9kZV9saWItPnZiYS5Tb3VyY2VGb3JtYXRQaXhlbEFuZFNjYW5TdXBwb3J0ID0gdHJ1ZTsKKwlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJaWYgKChtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfbGluZWFyCisJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdICE9IGRtX2hvcnopCisJCQkJfHwgKChtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfNGtiX2QKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSA9PSBkbV9zd180a2JfZF94CisJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfNjRrYl9kCisJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfNjRrYl9kX3QKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSA9PSBkbV9zd182NGtiX2RfeAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X3Zhcl9kCisJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfdmFyX2RfeCkKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzY0KQorCQkJCXx8IChtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfNjRrYl9yX3gKKwkJCQkJCSYmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtX21vbm9fOAorCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdCisJCQkJCQkJCQkJPT0gZG1fNDIwXzgKKwkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXQorCQkJCQkJCQkJCT09IGRtXzQyMF8xMCkpCisJCQkJfHwgKCgobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X2dmeDdfMmRfdGhpbl9nbAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCT09IGRtX3N3X2dmeDdfMmRfdGhpbl9sdnApCisJCQkJCQkmJiAhKChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdCisJCQkJCQkJCT09IGRtXzQ0NF82NAorCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdCisJCQkJCQkJCQkJPT0gZG1fNDQ0XzMyKQorCQkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10KKwkJCQkJCQkJCQk9PSBkbV9ob3J6CisJCQkJCQkJCSYmIG1vZGVfbGliLT52YmEuU3VwcG9ydEdGWDdDb21wYXRpYmxlVGlsaW5nSW4zMmJwcEFuZDY0YnBwCisJCQkJCQkJCQkJPT0gdHJ1ZQorCQkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXQorCQkJCQkJCQkJCT09IGZhbHNlKSkKKwkJCQkJCXx8IChtb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSA9PSB0cnVlCisJCQkJCQkJCSYmIChtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10KKwkJCQkJCQkJCQk9PSBkbV9zd19saW5lYXIKKwkJCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdCisJCQkJCQkJCQkJCQk9PSBkbV80MjBfOAorCQkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10KKwkJCQkJCQkJCQkJCT09IGRtXzQyMF8xMCkpKSkgeworCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VGb3JtYXRQaXhlbEFuZFNjYW5TdXBwb3J0ID0gZmFsc2U7CisJCX0KKwl9CisJLypCYW5kd2lkdGggU3VwcG9ydCBDaGVjayovCisKKwlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzY0KSB7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSA9IDguMDsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdID0gMC4wOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzMyKSB7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSA9IDQuMDsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdID0gMC4wOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzE2CisJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV9tb25vXzE2KSB7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSA9IDIuMDsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdID0gMC4wOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fbW9ub184KSB7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSA9IDEuMDsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdID0gMC4wOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzgpIHsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdID0gMS4wOworCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVENba10gPSAyLjA7CisJCX0gZWxzZSB7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSA9IDQuMCAvIDM7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSA9IDguMCAvIDM7CisJCX0KKwkJaWYgKG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSB7CisJCQlsb2NhbHMtPlN3YXRoV2lkdGhZU2luZ2xlRFBQW2tdID0gbW9kZV9saWItPnZiYS5WaWV3cG9ydFdpZHRoW2tdOworCQl9IGVsc2UgeworCQkJbG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUFtrXSA9IG1vZGVfbGliLT52YmEuVmlld3BvcnRIZWlnaHRba107CisJCX0KKwl9CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWxvY2Fscy0+UmVhZEJhbmR3aWR0aEx1bWFba10gPSBsb2NhbHMtPlN3YXRoV2lkdGhZU2luZ2xlRFBQW2tdICogZG1sX2NlaWwobG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10sIDEuMCkKKwkJCQkvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkgKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXTsKKwkJbG9jYWxzLT5SZWFkQmFuZHdpZHRoQ2hyb21hW2tdID0gbG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUFtrXSAvIDIgKiBkbWxfY2VpbChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSwgMi4wKQorCQkJCS8gKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSAqIG1vZGVfbGliLT52YmEuVlJhdGlvW2tdIC8gMi4wOworCQlsb2NhbHMtPlJlYWRCYW5kd2lkdGhba10gPSBsb2NhbHMtPlJlYWRCYW5kd2lkdGhMdW1hW2tdICsgbG9jYWxzLT5SZWFkQmFuZHdpZHRoQ2hyb21hW2tdOworCX0KKwlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlW2tdID09IHRydWUKKwkJCQkmJiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8zMikgeworCQkJbG9jYWxzLT5Xcml0ZUJhbmR3aWR0aFtrXSA9IG1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtrXQorCQkJCQkqIG1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25IZWlnaHRba10KKwkJCQkJLyAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tTb3VyY2VIZWlnaHRba10KKwkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pICogNC4wOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlW2tdID09IHRydWUKKwkJCQkmJiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdID09IGRtXzQyMF8xMCkgeworCQkJbG9jYWxzLT5Xcml0ZUJhbmR3aWR0aFtrXSA9IG1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtrXQorCQkJCQkqIG1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25IZWlnaHRba10KKwkJCQkJLyAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tTb3VyY2VIZWlnaHRba10KKwkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pICogMy4wOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlW2tdID09IHRydWUpIHsKKwkJCWxvY2Fscy0+V3JpdGVCYW5kd2lkdGhba10gPSBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJKiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uSGVpZ2h0W2tdCisJCQkJCS8gKG1vZGVfbGliLT52YmEuV3JpdGViYWNrU291cmNlSGVpZ2h0W2tdCisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSAqIDEuNTsKKwkJfSBlbHNlIHsKKwkJCWxvY2Fscy0+V3JpdGVCYW5kd2lkdGhba10gPSAwLjA7CisJCX0KKwl9CisJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVkSW5BbnlQbGFuZSA9IGZhbHNlOworCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10gPT0gdHJ1ZSkgeworCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVkSW5BbnlQbGFuZSA9IHRydWU7CisJCX0KKwl9CisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJbG9jYWxzLT5GYWJyaWNBbmREUkFNQmFuZHdpZHRoUGVyU3RhdGVbaV0gPSBkbWxfbWluKAorCQkJCW1vZGVfbGliLT52YmEuRFJBTVNwZWVkUGVyU3RhdGVbaV0gKiBtb2RlX2xpYi0+dmJhLk51bWJlck9mQ2hhbm5lbHMKKwkJCQkJCSogbW9kZV9saWItPnZiYS5EUkFNQ2hhbm5lbFdpZHRoLAorCQkJCW1vZGVfbGliLT52YmEuRmFicmljQ2xvY2tQZXJTdGF0ZVtpXQorCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkZhYnJpY0RhdGFwYXRoVG9EQ05EYXRhUmV0dXJuKSAvIDEwMDA7CisJCWxvY2Fscy0+UmV0dXJuQldUb0RDTlBlclN0YXRlID0gZG1sX21pbihsb2NhbHMtPlJldHVybkJ1c1dpZHRoICogbG9jYWxzLT5EQ0ZDTEtQZXJTdGF0ZVtpXSwKKwkJCQlsb2NhbHMtPkZhYnJpY0FuZERSQU1CYW5kd2lkdGhQZXJTdGF0ZVtpXSAqIDEwMDApCisJCQkJKiBsb2NhbHMtPlBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5UGl4ZWxEYXRhT25seSAvIDEwMDsKKworCQlsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV0gPSBsb2NhbHMtPlJldHVybkJXVG9EQ05QZXJTdGF0ZTsKKworCQlpZiAobG9jYWxzLT5EQ0NFbmFibGVkSW5BbnlQbGFuZSA9PSB0cnVlICYmIGxvY2Fscy0+UmV0dXJuQldUb0RDTlBlclN0YXRlID4gbG9jYWxzLT5EQ0ZDTEtQZXJTdGF0ZVtpXSAqIGxvY2Fscy0+UmV0dXJuQnVzV2lkdGggLyA0KSB7CisJCQlsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV0gPSBkbWxfbWluKGxvY2Fscy0+UmV0dXJuQldQZXJTdGF0ZVtpXSwKKwkJCQkJbG9jYWxzLT5SZXR1cm5CV1RvRENOUGVyU3RhdGUgKiA0ICogKDEgLSBsb2NhbHMtPlVyZ2VudExhdGVuY3kgLworCQkJCQkoKGxvY2Fscy0+Uk9CQnVmZmVyU2l6ZUluS0J5dGUgLSBsb2NhbHMtPlBpeGVsQ2h1bmtTaXplSW5LQnl0ZSkgKiAxMDI0CisJCQkJCS8gKGxvY2Fscy0+UmV0dXJuQldUb0RDTlBlclN0YXRlIC0gbG9jYWxzLT5EQ0ZDTEtQZXJTdGF0ZVtpXQorCQkJCQkqIGxvY2Fscy0+UmV0dXJuQnVzV2lkdGggLyA0KSArIGxvY2Fscy0+VXJnZW50TGF0ZW5jeSkpKTsKKwkJfQorCQlsb2NhbHMtPkNyaXRpY2FsUG9pbnQgPSAyICogbG9jYWxzLT5SZXR1cm5CdXNXaWR0aCAqIGxvY2Fscy0+RENGQ0xLUGVyU3RhdGVbaV0gKgorCQkJCWxvY2Fscy0+VXJnZW50TGF0ZW5jeSAvIChsb2NhbHMtPlJldHVybkJXVG9EQ05QZXJTdGF0ZSAqIGxvY2Fscy0+VXJnZW50TGF0ZW5jeQorCQkJCSsgKGxvY2Fscy0+Uk9CQnVmZmVyU2l6ZUluS0J5dGUgLSBsb2NhbHMtPlBpeGVsQ2h1bmtTaXplSW5LQnl0ZSkgKiAxMDI0KTsKKworCQlpZiAobG9jYWxzLT5EQ0NFbmFibGVkSW5BbnlQbGFuZSAmJiBsb2NhbHMtPkNyaXRpY2FsUG9pbnQgPiAxICYmIGxvY2Fscy0+Q3JpdGljYWxQb2ludCA8IDQpIHsKKwkJCWxvY2Fscy0+UmV0dXJuQldQZXJTdGF0ZVtpXSA9IGRtbF9taW4obG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW2ldLAorCQkJCTQgKiBsb2NhbHMtPlJldHVybkJXVG9EQ05QZXJTdGF0ZSAqCisJCQkJKGxvY2Fscy0+Uk9CQnVmZmVyU2l6ZUluS0J5dGUgLSBsb2NhbHMtPlBpeGVsQ2h1bmtTaXplSW5LQnl0ZSkgKiAxMDI0CisJCQkJKiBsb2NhbHMtPlJldHVybkJ1c1dpZHRoICogbG9jYWxzLT5EQ0ZDTEtQZXJTdGF0ZVtpXSAqIGxvY2Fscy0+VXJnZW50TGF0ZW5jeSAvCisJCQkJZG1sX3BvdygobG9jYWxzLT5SZXR1cm5CV1RvRENOUGVyU3RhdGUgKiBsb2NhbHMtPlVyZ2VudExhdGVuY3kKKwkJCQkrIChsb2NhbHMtPlJPQkJ1ZmZlclNpemVJbktCeXRlIC0gbG9jYWxzLT5QaXhlbENodW5rU2l6ZUluS0J5dGUpICogMTAyNCksIDIpKTsKKwkJfQorCisJCWxvY2Fscy0+UmV0dXJuQldUb0RDTlBlclN0YXRlID0gZG1sX21pbihsb2NhbHMtPlJldHVybkJ1c1dpZHRoICoKKwkJCQlsb2NhbHMtPkRDRkNMS1BlclN0YXRlW2ldLCBsb2NhbHMtPkZhYnJpY0FuZERSQU1CYW5kd2lkdGhQZXJTdGF0ZVtpXSAqIDEwMDApOworCisJCWlmIChsb2NhbHMtPkRDQ0VuYWJsZWRJbkFueVBsYW5lID09IHRydWUgJiYgbG9jYWxzLT5SZXR1cm5CV1RvRENOUGVyU3RhdGUgPiBsb2NhbHMtPkRDRkNMS1BlclN0YXRlW2ldICogbG9jYWxzLT5SZXR1cm5CdXNXaWR0aCAvIDQpIHsKKwkJCWxvY2Fscy0+UmV0dXJuQldQZXJTdGF0ZVtpXSA9IGRtbF9taW4obG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW2ldLAorCQkJCQlsb2NhbHMtPlJldHVybkJXVG9EQ05QZXJTdGF0ZSAqIDQgKiAoMSAtIGxvY2Fscy0+VXJnZW50TGF0ZW5jeSAvCisJCQkJCSgobG9jYWxzLT5ST0JCdWZmZXJTaXplSW5LQnl0ZSAtIGxvY2Fscy0+UGl4ZWxDaHVua1NpemVJbktCeXRlKSAqIDEwMjQKKwkJCQkJLyAobG9jYWxzLT5SZXR1cm5CV1RvRENOUGVyU3RhdGUgLSBsb2NhbHMtPkRDRkNMS1BlclN0YXRlW2ldCisJCQkJCSogbG9jYWxzLT5SZXR1cm5CdXNXaWR0aCAvIDQpICsgbG9jYWxzLT5VcmdlbnRMYXRlbmN5KSkpOworCQl9CisJCWxvY2Fscy0+Q3JpdGljYWxQb2ludCA9IDIgKiBsb2NhbHMtPlJldHVybkJ1c1dpZHRoICogbG9jYWxzLT5EQ0ZDTEtQZXJTdGF0ZVtpXSAqCisJCQkJbG9jYWxzLT5VcmdlbnRMYXRlbmN5IC8gKGxvY2Fscy0+UmV0dXJuQldUb0RDTlBlclN0YXRlICogbG9jYWxzLT5VcmdlbnRMYXRlbmN5CisJCQkJKyAobG9jYWxzLT5ST0JCdWZmZXJTaXplSW5LQnl0ZSAtIGxvY2Fscy0+UGl4ZWxDaHVua1NpemVJbktCeXRlKSAqIDEwMjQpOworCisJCWlmIChsb2NhbHMtPkRDQ0VuYWJsZWRJbkFueVBsYW5lICYmIGxvY2Fscy0+Q3JpdGljYWxQb2ludCA+IDEgJiYgbG9jYWxzLT5Dcml0aWNhbFBvaW50IDwgNCkgeworCQkJbG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW2ldID0gZG1sX21pbihsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV0sCisJCQkJNCAqIGxvY2Fscy0+UmV0dXJuQldUb0RDTlBlclN0YXRlICoKKwkJCQkobG9jYWxzLT5ST0JCdWZmZXJTaXplSW5LQnl0ZSAtIGxvY2Fscy0+UGl4ZWxDaHVua1NpemVJbktCeXRlKSAqIDEwMjQKKwkJCQkqIGxvY2Fscy0+UmV0dXJuQnVzV2lkdGggKiBsb2NhbHMtPkRDRkNMS1BlclN0YXRlW2ldICogbG9jYWxzLT5VcmdlbnRMYXRlbmN5IC8KKwkJCQlkbWxfcG93KChsb2NhbHMtPlJldHVybkJXVG9EQ05QZXJTdGF0ZSAqIGxvY2Fscy0+VXJnZW50TGF0ZW5jeQorCQkJCSsgKGxvY2Fscy0+Uk9CQnVmZmVyU2l6ZUluS0J5dGUgLSBsb2NhbHMtPlBpeGVsQ2h1bmtTaXplSW5LQnl0ZSkgKiAxMDI0KSwgMikpOworCQl9CisJfQorCS8qV3JpdGViYWNrIExhdGVuY3kgc3VwcG9ydCBjaGVjayovCisKKwltb2RlX2xpYi0+dmJhLldyaXRlYmFja0xhdGVuY3lTdXBwb3J0ID0gdHJ1ZTsKKwlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlW2tdID09IHRydWUpIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8zMikgeworCQkJCWlmIChsb2NhbHMtPldyaXRlQmFuZHdpZHRoW2tdCisJCQkJCQk+IChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0ludGVyZmFjZUx1bWFCdWZmZXJTaXplCisJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VDaHJvbWFCdWZmZXJTaXplKQorCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeSkgeworCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0xhdGVuY3lTdXBwb3J0ID0gZmFsc2U7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQlpZiAobG9jYWxzLT5Xcml0ZUJhbmR3aWR0aFtrXQorCQkJCQkJPiAxLjUKKwkJCQkJCQkJKiBkbWxfbWluKAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrSW50ZXJmYWNlTHVtYUJ1ZmZlclNpemUsCisJCQkJCQkJCQkJMi4wCisJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuV3JpdGViYWNrSW50ZXJmYWNlQ2hyb21hQnVmZmVyU2l6ZSkKKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0xhdGVuY3kpIHsKKwkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5U3VwcG9ydCA9IGZhbHNlOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKwkvKlJlLW9yZGVyaW5nIEJ1ZmZlciBTdXBwb3J0IENoZWNrKi8KKworCWZvciAoaSA9IDA7IGkgPD0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaSsrKSB7CisJCWxvY2Fscy0+VXJnZW50Um91bmRUcmlwQW5kT3V0T2ZPcmRlckxhdGVuY3lQZXJTdGF0ZVtpXSA9CisJCQkJKG1vZGVfbGliLT52YmEuUm91bmRUcmlwUGluZ0xhdGVuY3lDeWNsZXMgKyAzMi4wKSAvIG1vZGVfbGliLT52YmEuRENGQ0xLUGVyU3RhdGVbaV0KKwkJCQkrIGxvY2Fscy0+VXJnZW50T3V0T2ZPcmRlclJldHVyblBlckNoYW5uZWwgKiBtb2RlX2xpYi0+dmJhLk51bWJlck9mQ2hhbm5lbHMgLyBsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV07CisJCWlmICgobW9kZV9saWItPnZiYS5ST0JCdWZmZXJTaXplSW5LQnl0ZSAtIG1vZGVfbGliLT52YmEuUGl4ZWxDaHVua1NpemVJbktCeXRlKSAqIDEwMjQuMCAvIGxvY2Fscy0+UmV0dXJuQldQZXJTdGF0ZVtpXQorCQkJCT4gbG9jYWxzLT5VcmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeVBlclN0YXRlW2ldKSB7CisJCQlsb2NhbHMtPlJPQlN1cHBvcnRbaV0gPSB0cnVlOworCQl9IGVsc2UgeworCQkJbG9jYWxzLT5ST0JTdXBwb3J0W2ldID0gZmFsc2U7CisJCX0KKwl9CisJLypXcml0ZWJhY2sgTW9kZSBTdXBwb3J0IENoZWNrKi8KKworCW1vZGVfbGliLT52YmEuVG90YWxOdW1iZXJPZkFjdGl2ZVdyaXRlYmFjayA9IDA7CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5BY3RpdmVXcml0ZWJhY2tzUGVyUGxhbmVba10gPT0gMCkKKwkJCQltb2RlX2xpYi0+dmJhLkFjdGl2ZVdyaXRlYmFja3NQZXJQbGFuZVtrXSA9IDE7CisJCQltb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVXcml0ZWJhY2sgPQorCQkJCQltb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVXcml0ZWJhY2sKKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuQWN0aXZlV3JpdGViYWNrc1BlclBsYW5lW2tdOworCQl9CisJfQorCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTW9kZVN1cHBvcnQgPSB0cnVlOworCWlmIChtb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVXcml0ZWJhY2sgPiBtb2RlX2xpYi0+dmJhLk1heE51bVdyaXRlYmFjaykgeworCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja01vZGVTdXBwb3J0ID0gZmFsc2U7CisJfQorCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tFbmFibGVba10gPT0gdHJ1ZQorCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrMTBicGM0MjBTdXBwb3J0ZWQgIT0gdHJ1ZQorCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzEwKSB7CisJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja01vZGVTdXBwb3J0ID0gZmFsc2U7CisJCX0KKwl9CisJLypXcml0ZWJhY2sgU2NhbGUgUmF0aW8gYW5kIFRhcHMgU3VwcG9ydCBDaGVjayovCisKKwltb2RlX2xpYi0+dmJhLldyaXRlYmFja1NjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydCA9IHRydWU7CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hQW5kQ2hyb21hU2NhbGluZ1N1cHBvcnRlZCA9PSBmYWxzZQorCQkJCQkmJiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9ba10gIT0gMS4wCisJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9ba10gIT0gMS4wKSkgeworCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrU2NhbGVSYXRpb0FuZFRhcHNTdXBwb3J0ID0gZmFsc2U7CisJCQl9CisJCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9ba10gPiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja01heEhTQ0xSYXRpbworCQkJCQl8fCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXQorCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tNYXhWU0NMUmF0aW8KKwkJCQkJfHwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9ba10KKwkJCQkJCQk8IG1vZGVfbGliLT52YmEuV3JpdGViYWNrTWluSFNDTFJhdGlvCisJCQkJCXx8IG1vZGVfbGliLT52YmEuV3JpdGViYWNrVlJhdGlvW2tdCisJCQkJCQkJPCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja01pblZTQ0xSYXRpbworCQkJCQl8fCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXQorCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tNYXhIU0NMVGFwcworCQkJCQl8fCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1trXQorCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tNYXhWU0NMVGFwcworCQkJCQl8fCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1trXQorCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hSFRhcHNba10KKwkJCQkJfHwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9ba10KKwkJCQkJCQk+IG1vZGVfbGliLT52YmEuV3JpdGViYWNrTHVtYVZUYXBzW2tdCisJCQkJCXx8IChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXSA+IDIuMAorCQkJCQkJCSYmICgobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hSFRhcHNba10gJSAyKQorCQkJCQkJCQkJPT0gMSkpCisJCQkJCXx8IChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8zMgorCQkJCQkJCSYmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW2tdCisJCQkJCQkJCQk+IG1vZGVfbGliLT52YmEuV3JpdGViYWNrTWF4SFNDTFRhcHMKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10KKwkJCQkJCQkJCQkJPiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja01heFZTQ0xUYXBzCisJCQkJCQkJCQl8fCAyLjAKKwkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1trXQorCQkJCQkJCQkJCQk+IG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hSFRhcHNba10KKwkJCQkJCQkJCXx8IDIuMAorCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuV3JpdGViYWNrVlJhdGlvW2tdCisJCQkJCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFWVGFwc1trXQorCQkJCQkJCQkJfHwgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hSFRhcHNba10gPiAyLjAKKwkJCQkJCQkJCQkmJiAoKG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hSFRhcHNba10gJSAyKSA9PSAxKSkpKSkgeworCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrU2NhbGVSYXRpb0FuZFRhcHNTdXBwb3J0ID0gZmFsc2U7CisJCQl9CisJCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9ba10gPCAxLjApIHsKKwkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWRXh0cmEgPQorCQkJCQkJZG1sX21heCgxLjAgLSAyLjAgLyBkbWxfY2VpbCgxLjAgLyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSwgMS4wKSwgMC4wKTsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVkV4dHJhID0gLTE7CisJCQl9CisJCQlpZiAoKG1vZGVfbGliLT52YmEuV3JpdGViYWNrUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzMyCisJCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrTHVtYVZUYXBzW2tdCisJCQkJCQkJPiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMaW5lQnVmZmVyTHVtYUJ1ZmZlclNpemUKKwkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMaW5lQnVmZmVyQ2hyb21hQnVmZmVyU2l6ZSkKKwkJCQkJCQkJCS8gMy4wCisJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtrXQorCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWRXh0cmEpCisJCQkJCXx8IChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdID09IGRtXzQyMF84CisJCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVlRhcHNba10KKwkJCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMaW5lQnVmZmVyTHVtYUJ1ZmZlclNpemUKKwkJCQkJCQkJCQkJKiA4LjAgLyAxMC4wIC8gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW2tdCisJCQkJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVkV4dHJhKQorCQkJCQl8fCAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfMTAKKwkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1trXQorCQkJCQkJCQkJPiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0xpbmVCdWZmZXJMdW1hQnVmZmVyU2l6ZQorCQkJCQkJCQkJCQkqIDguMCAvIDEwLjAKKwkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWRXh0cmEpKSB7CisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tTY2FsZVJhdGlvQW5kVGFwc1N1cHBvcnQgPSBmYWxzZTsKKwkJCX0KKwkJCWlmICgyLjAgKiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSA8IDEpIHsKKwkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYVZFeHRyYSA9IDAuMDsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFWRXh0cmEgPSAtMTsKKwkJCX0KKwkJCWlmICgobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfOAorCQkJCQkmJiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYVZUYXBzW2tdCisJCQkJCQkJPiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0xpbmVCdWZmZXJDaHJvbWFCdWZmZXJTaXplCisJCQkJCQkJCQkqIDguMCAvIDEwLjAgLyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFWRXh0cmEpCisJCQkJCXx8IChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdID09IGRtXzQyMF8xMAorCQkJCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10KKwkJCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMaW5lQnVmZmVyQ2hyb21hQnVmZmVyU2l6ZQorCQkJCQkJCQkJCQkqIDguMCAvIDEwLjAKKwkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYVZFeHRyYSkpIHsKKwkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1NjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydCA9IGZhbHNlOworCQkJfQorCQl9CisJfQorCS8qTWF4aW11bSBESVNQQ0xLL0RQUENMSyBTdXBwb3J0IGNoZWNrKi8KKworCW1vZGVfbGliLT52YmEuV3JpdGViYWNrUmVxdWlyZWRESVNQQ0xLID0gMC4wOworCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tFbmFibGVba10gPT0gdHJ1ZSkgeworCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tSZXF1aXJlZERJU1BDTEsgPQorCQkJCQlkbWxfbWF4KAorCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrUmVxdWlyZWRESVNQQ0xLLAorCQkJCQkJCUNhbGN1bGF0ZVdyaXRlQmFja0RJU1BDTEsoCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9ba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTHVtYUhUYXBzW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVlRhcHNba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFWVGFwc1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFRvdGFsW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFMaW5lQnVmZmVyV2lkdGgpKTsKKwkJfQorCX0KKwlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuSFJhdGlvW2tdID4gMS4wKSB7CisJCQlsb2NhbHMtPlBTQ0xfRkFDVE9SW2tdID0gZG1sX21pbigKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQsCisJCQkJCW1vZGVfbGliLT52YmEuTWF4UFNDTFRvTEJUaHJvdWdocHV0CisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXQorCQkJCQkJCS8gZG1sX2NlaWwoCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLmh0YXBzW2tdCisJCQkJCQkJCQkJCS8gNi4wLAorCQkJCQkJCQkJMS4wKSk7CisJCX0gZWxzZSB7CisJCQlsb2NhbHMtPlBTQ0xfRkFDVE9SW2tdID0gZG1sX21pbigKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQsCisJCQkJCW1vZGVfbGliLT52YmEuTWF4UFNDTFRvTEJUaHJvdWdocHV0KTsKKwkJfQorCQlpZiAobG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVENba10gPT0gMC4wKSB7CisJCQlsb2NhbHMtPlBTQ0xfRkFDVE9SX0NIUk9NQVtrXSA9IDAuMDsKKwkJCWxvY2Fscy0+TWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBba10gPQorCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10KKwkJCQkJCQkqIGRtbF9tYXgzKAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS52dGFwc1trXSAvIDYuMAorCQkJCQkJCQkJCQkqIGRtbF9taW4oCisJCQkJCQkJCQkJCQkJMS4wLAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdKSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5WUmF0aW9ba10KKwkJCQkJCQkJCQkJLyBsb2NhbHMtPlBTQ0xfRkFDVE9SW2tdLAorCQkJCQkJCQkJMS4wKTsKKwkJCWlmICgobW9kZV9saWItPnZiYS5odGFwc1trXSA+IDYuMCB8fCBtb2RlX2xpYi0+dmJhLnZ0YXBzW2tdID4gNi4wKQorCQkJCQkmJiBsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdCisJCQkJCQkJPCAyLjAgKiBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pIHsKKwkJCQlsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdID0gMi4wCisJCQkJCQkqIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSAvIDIuMCA+IDEuMCkgeworCQkJCWxvY2Fscy0+UFNDTF9GQUNUT1JfQ0hST01BW2tdID0KKwkJCQkJCWRtbF9taW4oCisJCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4RENIVUJUb1BTQ0xUaHJvdWdocHV0LAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk1heFBTQ0xUb0xCVGhyb3VnaHB1dAorCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkvIDIuMAorCQkJCQkJCQkJCS8gZG1sX2NlaWwoCisJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhUQVBzQ2hyb21hW2tdCisJCQkJCQkJCQkJCQkJCS8gNi4wLAorCQkJCQkJCQkJCQkJMS4wKSk7CisJCQl9IGVsc2UgeworCQkJCWxvY2Fscy0+UFNDTF9GQUNUT1JfQ0hST01BW2tdID0gZG1sX21pbigKKwkJCQkJCW1vZGVfbGliLT52YmEuTWF4RENIVUJUb1BTQ0xUaHJvdWdocHV0LAorCQkJCQkJbW9kZV9saWItPnZiYS5NYXhQU0NMVG9MQlRocm91Z2hwdXQpOworCQkJfQorCQkJbG9jYWxzLT5NaW5EUFBDTEtVc2luZ1NpbmdsZURQUFtrXSA9CisJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXQorCQkJCQkJCSogZG1sX21heDUoCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLnZ0YXBzW2tdIC8gNi4wCisJCQkJCQkJCQkJCSogZG1sX21pbigKKwkJCQkJCQkJCQkJCQkxLjAsCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW9ba10pLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXQorCQkJCQkJCQkJCQkvIGxvY2Fscy0+UFNDTF9GQUNUT1Jba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlZUQVBzQ2hyb21hW2tdCisJCQkJCQkJCQkJCS8gNi4wCisJCQkJCQkJCQkJCSogZG1sX21pbigKKwkJCQkJCQkJCQkJCQkxLjAsCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkJCQkJCS8gMi4wKSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5WUmF0aW9ba10KKwkJCQkJCQkJCQkJLyA0LjAKKwkJCQkJCQkJCQkJLyBsb2NhbHMtPlBTQ0xfRkFDVE9SX0NIUk9NQVtrXSwKKwkJCQkJCQkJCTEuMCk7CisJCQlpZiAoKG1vZGVfbGliLT52YmEuaHRhcHNba10gPiA2LjAgfHwgbW9kZV9saWItPnZiYS52dGFwc1trXSA+IDYuMAorCQkJCQl8fCBtb2RlX2xpYi0+dmJhLkhUQVBzQ2hyb21hW2tdID4gNi4wCisJCQkJCXx8IG1vZGVfbGliLT52YmEuVlRBUHNDaHJvbWFba10gPiA2LjApCisJCQkJCSYmIGxvY2Fscy0+TWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBba10KKwkJCQkJCQk8IDIuMCAqIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkgeworCQkJCWxvY2Fscy0+TWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBba10gPSAyLjAKKwkJCQkJCSogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQkJfQorCQl9CisJfQorCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlDYWxjdWxhdGUyNTZCQmxvY2tTaXplcygKKwkJCQltb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdLAorCQkJCW1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSwKKwkJCQlkbWxfY2VpbChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSwgMS4wKSwKKwkJCQlkbWxfY2VpbChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSwgMi4wKSwKKwkJCQkmbG9jYWxzLT5SZWFkMjU2QmxvY2tIZWlnaHRZW2tdLAorCQkJCSZsb2NhbHMtPlJlYWQyNTZCbG9ja0hlaWdodENba10sCisJCQkJJmxvY2Fscy0+UmVhZDI1NkJsb2NrV2lkdGhZW2tdLAorCQkJCSZsb2NhbHMtPlJlYWQyNTZCbG9ja1dpZHRoQ1trXSk7CisJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikgeworCQkJbG9jYWxzLT5NYXhTd2F0aEhlaWdodFlba10gPSBsb2NhbHMtPlJlYWQyNTZCbG9ja0hlaWdodFlba107CisJCQlsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXSA9IGxvY2Fscy0+UmVhZDI1NkJsb2NrSGVpZ2h0Q1trXTsKKwkJfSBlbHNlIHsKKwkJCWxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdID0gbG9jYWxzLT5SZWFkMjU2QmxvY2tXaWR0aFlba107CisJCQlsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXSA9IGxvY2Fscy0+UmVhZDI1NkJsb2NrV2lkdGhDW2tdOworCQl9CisJCWlmICgobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfNjQKKwkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8zMgorCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzE2CisJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV9tb25vXzE2CisJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV9tb25vXzgpKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X2xpbmVhcgorCQkJCQl8fCAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfNjQKKwkJCQkJCQkmJiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQk9PSBkbV9zd180a2JfcworCQkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQkJCT09IGRtX3N3XzRrYl9zX3gKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd182NGtiX3MKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd182NGtiX3NfdAorCQkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQkJCT09IGRtX3N3XzY0a2Jfc194CisJCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10KKwkJCQkJCQkJCQkJPT0gZG1fc3dfdmFyX3MKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd192YXJfc194KQorCQkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSkgeworCQkJCWxvY2Fscy0+TWluU3dhdGhIZWlnaHRZW2tdID0gbG9jYWxzLT5NYXhTd2F0aEhlaWdodFlba107CisJCQl9IGVsc2UgeworCQkJCWxvY2Fscy0+TWluU3dhdGhIZWlnaHRZW2tdID0gbG9jYWxzLT5NYXhTd2F0aEhlaWdodFlba10KKwkJCQkJCS8gMi4wOworCQkJfQorCQkJbG9jYWxzLT5NaW5Td2F0aEhlaWdodENba10gPSBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXTsKKwkJfSBlbHNlIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfbGluZWFyKSB7CisJCQkJbG9jYWxzLT5NaW5Td2F0aEhlaWdodFlba10gPSBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0WVtrXTsKKwkJCQlsb2NhbHMtPk1pblN3YXRoSGVpZ2h0Q1trXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRDW2tdOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQyMF84CisJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSB7CisJCQkJbG9jYWxzLT5NaW5Td2F0aEhlaWdodFlba10gPSBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0WVtrXQorCQkJCQkJLyAyLjA7CisJCQkJbG9jYWxzLT5NaW5Td2F0aEhlaWdodENba10gPSBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXTsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfMTAKKwkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdID09IGRtX2hvcnopIHsKKwkJCQlsb2NhbHMtPk1pblN3YXRoSGVpZ2h0Q1trXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRDW2tdCisJCQkJCQkvIDIuMDsKKwkJCQlsb2NhbHMtPk1pblN3YXRoSGVpZ2h0WVtrXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdOworCQkJfSBlbHNlIHsKKwkJCQlsb2NhbHMtPk1pblN3YXRoSGVpZ2h0WVtrXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdOworCQkJCWxvY2Fscy0+TWluU3dhdGhIZWlnaHRDW2tdID0gbG9jYWxzLT5NYXhTd2F0aEhlaWdodENba107CisJCQl9CisJCX0KKwkJaWYgKG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSA9PSBkbV9zd19saW5lYXIpIHsKKwkJCW1vZGVfbGliLT52YmEuTWF4aW11bVN3YXRoV2lkdGhTdXBwb3J0ID0gODE5Mi4wOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aFN1cHBvcnQgPSA1MTIwLjA7CisJCX0KKwkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aEluREVUQnVmZmVyID0KKwkJCQlkbWxfbWluKAorCQkJCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aFN1cHBvcnQsCisJCQkJCQltb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVJbktCeXRlICogMTAyNC4wIC8gMi4wCisJCQkJCQkJCS8gKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdCisJCQkJCQkJCQkJKiBsb2NhbHMtPk1pblN3YXRoSGVpZ2h0WVtrXQorCQkJCQkJCQkJCSsgbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVENba10KKwkJCQkJCQkJCQkJCS8gMi4wCisJCQkJCQkJCQkJCQkqIGxvY2Fscy0+TWluU3dhdGhIZWlnaHRDW2tdKSk7CisJCWlmIChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSA9PSAwLjApIHsKKwkJCW1vZGVfbGliLT52YmEuTWF4aW11bVN3YXRoV2lkdGhJbkxpbmVCdWZmZXIgPQorCQkJCQltb2RlX2xpYi0+dmJhLkxpbmVCdWZmZXJTaXplCisJCQkJCQkJKiBkbWxfbWF4KG1vZGVfbGliLT52YmEuSFJhdGlvW2tdLCAxLjApCisJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkxCQml0UGVyUGl4ZWxba10KKwkJCQkJCQkvIChtb2RlX2xpYi0+dmJhLnZ0YXBzW2tdCisJCQkJCQkJCQkrIGRtbF9tYXgoCisJCQkJCQkJCQkJCWRtbF9jZWlsKAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCQkJCQkJCQkJCTEuMCkKKwkJCQkJCQkJCQkJCQktIDIsCisJCQkJCQkJCQkJCTAuMCkpOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aEluTGluZUJ1ZmZlciA9CisJCQkJCWRtbF9taW4oCisJCQkJCQkJbW9kZV9saWItPnZiYS5MaW5lQnVmZmVyU2l6ZQorCQkJCQkJCQkJKiBkbWxfbWF4KAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhSYXRpb1trXSwKKwkJCQkJCQkJCQkJMS4wKQorCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkxCQml0UGVyUGl4ZWxba10KKwkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEudnRhcHNba10KKwkJCQkJCQkJCQkJKyBkbWxfbWF4KAorCQkJCQkJCQkJCQkJCWRtbF9jZWlsKAorCQkJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5WUmF0aW9ba10sCisJCQkJCQkJCQkJCQkJCQkxLjApCisJCQkJCQkJCQkJCQkJCQktIDIsCisJCQkJCQkJCQkJCQkJMC4wKSksCisJCQkJCQkJMi4wICogbW9kZV9saWItPnZiYS5MaW5lQnVmZmVyU2l6ZQorCQkJCQkJCQkJKiBkbWxfbWF4KAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhSYXRpb1trXQorCQkJCQkJCQkJCQkJCS8gMi4wLAorCQkJCQkJCQkJCQkxLjApCisJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuTEJCaXRQZXJQaXhlbFtrXQorCQkJCQkJCQkJLyAobW9kZV9saWItPnZiYS5WVEFQc0Nocm9tYVtrXQorCQkJCQkJCQkJCQkrIGRtbF9tYXgoCisJCQkJCQkJCQkJCQkJZG1sX2NlaWwoCisJCQkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXQorCQkJCQkJCQkJCQkJCQkJCQkvIDIuMCwKKwkJCQkJCQkJCQkJCQkJCTEuMCkKKwkJCQkJCQkJCQkJCQkJCS0gMiwKKwkJCQkJCQkJCQkJCQkwLjApKSk7CisJCX0KKwkJbG9jYWxzLT5NYXhpbXVtU3dhdGhXaWR0aFtrXSA9IGRtbF9taW4oCisJCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aEluREVUQnVmZmVyLAorCQkJCW1vZGVfbGliLT52YmEuTWF4aW11bVN3YXRoV2lkdGhJbkxpbmVCdWZmZXIpOworCX0KKwlmb3IgKGkgPSAwOyBpIDw9IG1vZGVfbGliLT52YmEuc29jLm51bV9zdGF0ZXM7IGkrKykgeworCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CisJCQltb2RlX2xpYi0+dmJhLk1heERpc3BjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHkgPSBSb3VuZFRvREZTR3JhbnVsYXJpdHlEb3duKAorCQkJCW1vZGVfbGliLT52YmEuTWF4RGlzcGNsa1tpXSwKKwkJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtWQ09TcGVlZCk7CisJCQltb2RlX2xpYi0+dmJhLk1heERwcGNsa1JvdW5kZWREb3duVG9ERlNHcmFudWxhcml0eSA9IFJvdW5kVG9ERlNHcmFudWxhcml0eURvd24oCisJCQkJbW9kZV9saWItPnZiYS5NYXhEcHBjbGtbaV0sCisJCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLVkNPU3BlZWQpOworCQkJbG9jYWxzLT5SZXF1aXJlZERJU1BDTEtbaV1bal0gPSAwLjA7CisJCQlsb2NhbHMtPkRJU1BDTEtfRFBQQ0xLX1N1cHBvcnRbaV1bal0gPSB0cnVlOworCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMS1dpdGhvdXRPRE1Db21iaW5lID0KKwkJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSAqICgxLjAgKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nIC8gMTAwLjApCisJCQkJCQkJCSogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS1JhbXBpbmdNYXJnaW4gLyAxMDAuMCk7CisJCQkJaWYgKG1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRob3V0T0RNQ29tYmluZSA+PSBtb2RlX2xpYi0+dmJhLk1heERpc3BjbGtbaV0KKwkJCQkJCSYmIGkgPT0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlcykKKwkJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMS1dpdGhvdXRPRE1Db21iaW5lID0gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJKiAoMSArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCk7CisKKwkJCQltb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aE9ETUNvbWJpbmUgPSBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10gLyAyCisJCQkJCSogKDEgKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nIC8gMTAwLjApICogKDEgKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtSYW1waW5nTWFyZ2luIC8gMTAwLjApOworCQkJCWlmIChtb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aE9ETUNvbWJpbmUgPj0gbW9kZV9saWItPnZiYS5NYXhEaXNwY2xrW2ldCisJCQkJCQkmJiBpID09IG1vZGVfbGliLT52YmEuc29jLm51bV9zdGF0ZXMpCisJCQkJCW1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRoT0RNQ29tYmluZSA9IG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSAvIDIKKwkJCQkJCQkqICgxICsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZyAvIDEwMC4wKTsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5PRE1DYXBhYmlsaXR5ID09IGZhbHNlIHx8IG1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRob3V0T0RNQ29tYmluZSA8PSBtb2RlX2xpYi0+dmJhLk1heERpc3BjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHkpIHsKKwkJCQkJbG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbaV1ba10gPSBmYWxzZTsKKwkJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyA9IG1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRob3V0T0RNQ29tYmluZTsKKwkJCQl9IGVsc2UgeworCQkJCQlsb2NhbHMtPk9ETUNvbWJpbmVFbmFibGVQZXJTdGF0ZVtpXVtrXSA9IHRydWU7CisJCQkJCW1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEsgPSBtb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aE9ETUNvbWJpbmU7CisJCQkJfQorCQkJCWlmIChsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCkgPD0gbW9kZV9saWItPnZiYS5NYXhEcHBjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHkKKwkJCQkJCSYmIGxvY2Fscy0+U3dhdGhXaWR0aFlTaW5nbGVEUFBba10gPD0gbG9jYWxzLT5NYXhpbXVtU3dhdGhXaWR0aFtrXQorCQkJCQkJJiYgbG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbaV1ba10gPT0gZmFsc2UpIHsKKwkJCQkJbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdID0gMTsKKwkJCQkJbG9jYWxzLT5SZXF1aXJlZERQUENMS1tpXVtqXVtrXSA9CisJCQkJCQlsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCk7CisJCQkJfSBlbHNlIHsKKwkJCQkJbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdID0gMjsKKwkJCQkJbG9jYWxzLT5SZXF1aXJlZERQUENMS1tpXVtqXVtrXSA9CisJCQkJCQlsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCkgLyAyLjA7CisJCQkJfQorCQkJCWxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdID0gZG1sX21heCgKKwkJCQkJCWxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdLAorCQkJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyk7CisJCQkJaWYgKChsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdIC8gbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCkKKwkJCQkJCT4gbW9kZV9saWItPnZiYS5NYXhEcHBjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHkpCisJCQkJCQl8fCAobW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyA+IG1vZGVfbGliLT52YmEuTWF4RGlzcGNsa1JvdW5kZWREb3duVG9ERlNHcmFudWxhcml0eSkpIHsKKwkJCQkJbG9jYWxzLT5ESVNQQ0xLX0RQUENMS19TdXBwb3J0W2ldW2pdID0gZmFsc2U7CisJCQkJfQorCQkJfQorCQkJbG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdID0gMC4wOworCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKQorCQkJCWxvY2Fscy0+VG90YWxOdW1iZXJPZkFjdGl2ZURQUFtpXVtqXSA9IGxvY2Fscy0+VG90YWxOdW1iZXJPZkFjdGl2ZURQUFtpXVtqXSArIGxvY2Fscy0+Tm9PZkRQUFtpXVtqXVtrXTsKKwkJCWlmIChqID09IDEpIHsKKwkJCQl3aGlsZSAobG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdIDwgbW9kZV9saWItPnZiYS5NYXhOdW1EUFAKKwkJCQkJCSYmIGxvY2Fscy0+VG90YWxOdW1iZXJPZkFjdGl2ZURQUFtpXVtqXSA8IDIgKiBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzKSB7CisJCQkJCWRvdWJsZSBCV09mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aDsKKwkJCQkJdW5zaWduZWQgaW50IE51bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aDsKKworCQkJCQlCV09mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aCA9IDA7CisJCQkJCU51bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aCA9IDA7CisJCQkJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCQkJCWlmIChsb2NhbHMtPlJlYWRCYW5kd2lkdGhba10gPiBCV09mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aCAmJiBsb2NhbHMtPk5vT2ZEUFBbaV1bal1ba10gPT0gMSkgeworCQkJCQkJCUJXT2ZOb25TcGxpdFBsYW5lT2ZNYXhpbXVtQmFuZHdpZHRoID0gbG9jYWxzLT5SZWFkQmFuZHdpZHRoW2tdOworCQkJCQkJCU51bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aCA9IGs7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJbG9jYWxzLT5Ob09mRFBQW2ldW2pdW051bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aF0gPSAyOworCQkJCQlsb2NhbHMtPlJlcXVpcmVkRFBQQ0xLW2ldW2pdW051bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aF0gPQorCQkJCQkJbG9jYWxzLT5NaW5EUFBDTEtVc2luZ1NpbmdsZURQUFtOdW1iZXJPZk5vblNwbGl0UGxhbmVPZk1heGltdW1CYW5kd2lkdGhdCisJCQkJCQkJKiAoMSArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDApIC8gMjsKKwkJCQkJbG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdID0gbG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdICsgMTsKKwkJCQl9CisJCQl9CisJCQlpZiAobG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdID4gbW9kZV9saWItPnZiYS5NYXhOdW1EUFApIHsKKwkJCQlsb2NhbHMtPlJlcXVpcmVkRElTUENMS1tpXVtqXSA9IDAuMDsKKwkJCQlsb2NhbHMtPkRJU1BDTEtfRFBQQ0xLX1N1cHBvcnRbaV1bal0gPSB0cnVlOworCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCQlsb2NhbHMtPk9ETUNvbWJpbmVFbmFibGVQZXJTdGF0ZVtpXVtrXSA9IGZhbHNlOworCQkJCQlpZiAobG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUFtrXSA8PSBsb2NhbHMtPk1heGltdW1Td2F0aFdpZHRoW2tdKSB7CisJCQkJCQlsb2NhbHMtPk5vT2ZEUFBbaV1bal1ba10gPSAxOworCQkJCQkJbG9jYWxzLT5SZXF1aXJlZERQUENMS1tpXVtqXVtrXSA9IGxvY2Fscy0+TWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBba10KKwkJCQkJCQkqICgxLjAgKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nIC8gMTAwLjApOworCQkJCQl9IGVsc2UgeworCQkJCQkJbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdID0gMjsKKwkJCQkJCWxvY2Fscy0+UmVxdWlyZWREUFBDTEtbaV1bal1ba10gPSBsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdCisJCQkJCQkJCQkJKiAoMS4wICsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZyAvIDEwMC4wKSAvIDIuMDsKKwkJCQkJfQorCQkJCQlpZiAoaSAhPSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzKSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLID0KKwkJCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJCQkJKiAoMS4wICsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZyAvIDEwMC4wKQorCQkJCQkJCQkJCSogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS1JhbXBpbmdNYXJnaW4gLyAxMDAuMCk7CisJCQkJCX0gZWxzZSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLID0gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJKiAoMS4wICsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZyAvIDEwMC4wKTsKKwkJCQkJfQorCQkJCQlsb2NhbHMtPlJlcXVpcmVkRElTUENMS1tpXVtqXSA9IGRtbF9tYXgoCisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlZERJU1BDTEtbaV1bal0sCisJCQkJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyk7CisJCQkJCWlmIChsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdIC8gbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCkKKwkJCQkJCQk+IG1vZGVfbGliLT52YmEuTWF4RHBwY2xrUm91bmRlZERvd25Ub0RGU0dyYW51bGFyaXR5CisJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyA+IG1vZGVfbGliLT52YmEuTWF4RGlzcGNsa1JvdW5kZWREb3duVG9ERlNHcmFudWxhcml0eSkKKwkJCQkJCWxvY2Fscy0+RElTUENMS19EUFBDTEtfU3VwcG9ydFtpXVtqXSA9IGZhbHNlOworCQkJCX0KKwkJCQlsb2NhbHMtPlRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbaV1bal0gPSAwLjA7CisJCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKQorCQkJCQlsb2NhbHMtPlRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbaV1bal0gPSBsb2NhbHMtPlRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbaV1bal0gKyBsb2NhbHMtPk5vT2ZEUFBbaV1bal1ba107CisJCQl9CisJCQlsb2NhbHMtPlJlcXVpcmVkRElTUENMS1tpXVtqXSA9IGRtbF9tYXgoCisJCQkJCWxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdLAorCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1JlcXVpcmVkRElTUENMSyk7CisJCQlpZiAobW9kZV9saWItPnZiYS5NYXhEaXNwY2xrUm91bmRlZERvd25Ub0RGU0dyYW51bGFyaXR5CisJCQkJCTwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tSZXF1aXJlZERJU1BDTEspIHsKKwkJCQlsb2NhbHMtPkRJU1BDTEtfRFBQQ0xLX1N1cHBvcnRbaV1bal0gPSBmYWxzZTsKKwkJCX0KKwkJfQorCX0KKwkvKlZpZXdwb3J0IFNpemUgQ2hlY2sqLworCisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJbG9jYWxzLT5WaWV3cG9ydFNpemVTdXBwb3J0W2ldID0gdHJ1ZTsKKwkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQlpZiAobG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbaV1ba10gPT0gdHJ1ZSkgeworCQkJCWlmIChkbWxfbWluKGxvY2Fscy0+U3dhdGhXaWR0aFlTaW5nbGVEUFBba10sIGRtbF9yb3VuZChtb2RlX2xpYi0+dmJhLkhBY3RpdmVba10gLyAyLjAgKiBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSkpCisJCQkJCQk+IGxvY2Fscy0+TWF4aW11bVN3YXRoV2lkdGhba10pIHsKKwkJCQkJbG9jYWxzLT5WaWV3cG9ydFNpemVTdXBwb3J0W2ldID0gZmFsc2U7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQlpZiAobG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUFtrXSAvIDIuMCA+IGxvY2Fscy0+TWF4aW11bVN3YXRoV2lkdGhba10pIHsKKwkJCQkJbG9jYWxzLT5WaWV3cG9ydFNpemVTdXBwb3J0W2ldID0gZmFsc2U7CisJCQkJfQorCQkJfQorCQl9CisJfQorCS8qVG90YWwgQXZhaWxhYmxlIFBpcGVzIFN1cHBvcnQgQ2hlY2sqLworCisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJZm9yIChqID0gMDsgaiA8IDI7IGorKykgeworCQkJaWYgKGxvY2Fscy0+VG90YWxOdW1iZXJPZkFjdGl2ZURQUFtpXVtqXSA8PSBtb2RlX2xpYi0+dmJhLk1heE51bURQUCkKKwkJCQlsb2NhbHMtPlRvdGFsQXZhaWxhYmxlUGlwZXNTdXBwb3J0W2ldW2pdID0gdHJ1ZTsKKwkJCWVsc2UKKwkJCQlsb2NhbHMtPlRvdGFsQXZhaWxhYmxlUGlwZXNTdXBwb3J0W2ldW2pdID0gZmFsc2U7CisJCX0KKwl9CisJLypUb3RhbCBBdmFpbGFibGUgT1RHIFN1cHBvcnQgQ2hlY2sqLworCisJbW9kZV9saWItPnZiYS5Ub3RhbE51bWJlck9mQWN0aXZlT1RHID0gMC4wOworCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBrKSB7CisJCQltb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVPVEcgPSBtb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVPVEcKKwkJCQkJKyAxLjA7CisJCX0KKwl9CisJaWYgKG1vZGVfbGliLT52YmEuVG90YWxOdW1iZXJPZkFjdGl2ZU9URyA8PSBtb2RlX2xpYi0+dmJhLk1heE51bU9URykgeworCQltb2RlX2xpYi0+dmJhLk51bWJlck9mT1RHU3VwcG9ydCA9IHRydWU7CisJfSBlbHNlIHsKKwkJbW9kZV9saWItPnZiYS5OdW1iZXJPZk9UR1N1cHBvcnQgPSBmYWxzZTsKKwl9CisJLypEaXNwbGF5IElPIGFuZCBEU0MgU3VwcG9ydCBDaGVjayovCisKKwltb2RlX2xpYi0+dmJhLk5vbnN1cHBvcnRlZERTQ0lucHV0QlBDID0gZmFsc2U7CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmICghKG1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10gPT0gMTIuMAorCQkJCXx8IG1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10gPT0gMTAuMAorCQkJCXx8IG1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10gPT0gOC4wKSkgeworCQkJbW9kZV9saWItPnZiYS5Ob25zdXBwb3J0ZWREU0NJbnB1dEJQQyA9IHRydWU7CisJCX0KKwl9CisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQlsb2NhbHMtPlJlcXVpcmVzRFNDW2ldW2tdID0gMDsKKwkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSAwOworCQkJaWYgKG1vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gaykgeworCQkJCWlmIChtb2RlX2xpYi0+dmJhLk91dHB1dFtrXSA9PSBkbV9oZG1pKSB7CisJCQkJCWxvY2Fscy0+UmVxdWlyZXNEU0NbaV1ba10gPSAwOworCQkJCQlsb2NhbHMtPlJlcXVpcmVzRkVDW2ldW2tdID0gMDsKKwkJCQkJbG9jYWxzLT5PdXRwdXRCcHBQZXJTdGF0ZVtpXVtrXSA9IFRydW5jVG9WYWxpZEJQUCgKKwkJCQkJCQlkbWxfbWluKDYwMC4wLCBtb2RlX2xpYi0+dmJhLlBIWUNMS1BlclN0YXRlW2ldKSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gKiAyNCwKKwkJCQkJCQlmYWxzZSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRTQ0lucHV0Qml0UGVyQ29tcG9uZW50W2tdKTsKKwkJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuT3V0cHV0W2tdID09IGRtX2RwCisJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLk91dHB1dFtrXSA9PSBkbV9lZHApIHsKKwkJCQkJaWYgKG1vZGVfbGliLT52YmEuT3V0cHV0W2tdID09IGRtX2VkcCkgeworCQkJCQkJbW9kZV9saWItPnZiYS5FZmZlY3RpdmVGRUNPdmVyaGVhZCA9IDAuMDsKKwkJCQkJfSBlbHNlIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuRWZmZWN0aXZlRkVDT3ZlcmhlYWQgPQorCQkJCQkJCQltb2RlX2xpYi0+dmJhLkZFQ092ZXJoZWFkOworCQkJCQl9CisJCQkJCWlmIChtb2RlX2xpYi0+dmJhLlBIWUNMS1BlclN0YXRlW2ldID49IDI3MC4wKSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLk91dGJwcCA9IFRydW5jVG9WYWxpZEJQUCgKKwkJCQkJCQkJKDEuMCAtIG1vZGVfbGliLT52YmEuRG93bnNwcmVhZGluZyAvIDEwMC4wKSAqIDI3MC4wCisJCQkJCQkJCSogbW9kZV9saWItPnZiYS5PdXRwdXRMaW5rRFBMYW5lc1trXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gKiA4LjAsCisJCQkJCQkJCWZhbHNlLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dFtrXSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10pOworCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHBEU0MgPSBUcnVuY1RvVmFsaWRCUFAoCisJCQkJCQkJCSgxLjAgLSBtb2RlX2xpYi0+dmJhLkRvd25zcHJlYWRpbmcgLyAxMDAuMCkgKiAoMS4wIC0gbW9kZV9saWItPnZiYS5FZmZlY3RpdmVGRUNPdmVyaGVhZCAvIDEwMC4wKSAqIDI3MC4wCisJCQkJCQkJCSogbW9kZV9saWItPnZiYS5PdXRwdXRMaW5rRFBMYW5lc1trXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gKiA4LjAsCisJCQkJCQkJCXRydWUsCisJCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0W2tdLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5EU0NJbnB1dEJpdFBlckNvbXBvbmVudFtrXSk7CisJCQkJCQlpZiAobW9kZV9saWItPnZiYS5EU0NFbmFibGVkW2tdID09IHRydWUpIHsKKwkJCQkJCQlsb2NhbHMtPlJlcXVpcmVzRFNDW2ldW2tdID0gdHJ1ZTsKKwkJCQkJCQlpZiAobW9kZV9saWItPnZiYS5PdXRwdXRba10gPT0gZG1fZHApIHsKKwkJCQkJCQkJbG9jYWxzLT5SZXF1aXJlc0ZFQ1tpXVtrXSA9IHRydWU7CisJCQkJCQkJfSBlbHNlIHsKKwkJCQkJCQkJbG9jYWxzLT5SZXF1aXJlc0ZFQ1tpXVtrXSA9IGZhbHNlOworCQkJCQkJCX0KKwkJCQkJCQltb2RlX2xpYi0+dmJhLk91dGJwcCA9IG1vZGVfbGliLT52YmEuT3V0YnBwRFNDOworCQkJCQkJfSBlbHNlIHsKKwkJCQkJCQlsb2NhbHMtPlJlcXVpcmVzRFNDW2ldW2tdID0gZmFsc2U7CisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlc0ZFQ1tpXVtrXSA9IGZhbHNlOworCQkJCQkJfQorCQkJCQkJbG9jYWxzLT5PdXRwdXRCcHBQZXJTdGF0ZVtpXVtrXSA9IG1vZGVfbGliLT52YmEuT3V0YnBwOworCQkJCQl9CisJCQkJCWlmIChtb2RlX2xpYi0+dmJhLk91dGJwcCA9PSBCUFBfSU5WQUxJRCAmJiBtb2RlX2xpYi0+dmJhLlBIWUNMS1BlclN0YXRlW2ldID49IDU0MC4wKSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLk91dGJwcCA9IFRydW5jVG9WYWxpZEJQUCgKKwkJCQkJCQkJKDEuMCAtIG1vZGVfbGliLT52YmEuRG93bnNwcmVhZGluZyAvIDEwMC4wKSAqIDU0MC4wCisJCQkJCQkJCSogbW9kZV9saWItPnZiYS5PdXRwdXRMaW5rRFBMYW5lc1trXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gKiA4LjAsCisJCQkJCQkJCQlmYWxzZSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0W2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkRTQ0lucHV0Qml0UGVyQ29tcG9uZW50W2tdKTsKKwkJCQkJCW1vZGVfbGliLT52YmEuT3V0YnBwRFNDID0gVHJ1bmNUb1ZhbGlkQlBQKAorCQkJCQkJCQkoMS4wIC0gbW9kZV9saWItPnZiYS5Eb3duc3ByZWFkaW5nIC8gMTAwLjApICogKDEuMCAtIG1vZGVfbGliLT52YmEuRWZmZWN0aXZlRkVDT3ZlcmhlYWQgLyAxMDAuMCkgKiA1NDAuMAorCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuT3V0cHV0TGlua0RQTGFuZXNba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdICogOC4wLAorCQkJCQkJCQl0cnVlLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dFtrXSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10pOworCQkJCQkJaWYgKG1vZGVfbGliLT52YmEuRFNDRW5hYmxlZFtrXSA9PSB0cnVlKSB7CisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9IHRydWU7CisJCQkJCQkJaWYgKG1vZGVfbGliLT52YmEuT3V0cHV0W2tdID09IGRtX2RwKSB7CisJCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSB0cnVlOworCQkJCQkJCX0gZWxzZSB7CisJCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSBmYWxzZTsKKwkJCQkJCQl9CisJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHAgPSBtb2RlX2xpYi0+dmJhLk91dGJwcERTQzsKKwkJCQkJCX0gZWxzZSB7CisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9IGZhbHNlOworCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSBmYWxzZTsKKwkJCQkJCX0KKwkJCQkJCWxvY2Fscy0+T3V0cHV0QnBwUGVyU3RhdGVbaV1ba10gPSBtb2RlX2xpYi0+dmJhLk91dGJwcDsKKwkJCQkJfQorCQkJCQlpZiAobW9kZV9saWItPnZiYS5PdXRicHAgPT0gQlBQX0lOVkFMSUQKKwkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlBIWUNMS1BlclN0YXRlW2ldCisJCQkJCQkJCQk+PSA4MTAuMCkgeworCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHAgPSBUcnVuY1RvVmFsaWRCUFAoCisJCQkJCQkJCSgxLjAgLSBtb2RlX2xpYi0+dmJhLkRvd25zcHJlYWRpbmcgLyAxMDAuMCkgKiA4MTAuMAorCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuT3V0cHV0TGlua0RQTGFuZXNba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdICogOC4wLAorCQkJCQkJCQlmYWxzZSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLkRTQ0lucHV0Qml0UGVyQ29tcG9uZW50W2tdKTsKKwkJCQkJCW1vZGVfbGliLT52YmEuT3V0YnBwRFNDID0gVHJ1bmNUb1ZhbGlkQlBQKAorCQkJCQkJCQkoMS4wIC0gbW9kZV9saWItPnZiYS5Eb3duc3ByZWFkaW5nIC8gMTAwLjApICogKDEuMCAtIG1vZGVfbGliLT52YmEuRWZmZWN0aXZlRkVDT3ZlcmhlYWQgLyAxMDAuMCkgKiA4MTAuMAorCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuT3V0cHV0TGlua0RQTGFuZXNba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdICogOC4wLAorCQkJCQkJCQl0cnVlLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dFtrXSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10pOworCQkJCQkJaWYgKG1vZGVfbGliLT52YmEuRFNDRW5hYmxlZFtrXSA9PSB0cnVlIHx8IG1vZGVfbGliLT52YmEuT3V0YnBwID09IEJQUF9JTlZBTElEKSB7CisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9IHRydWU7CisJCQkJCQkJaWYgKG1vZGVfbGliLT52YmEuT3V0cHV0W2tdID09IGRtX2RwKSB7CisJCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSB0cnVlOworCQkJCQkJCX0gZWxzZSB7CisJCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSBmYWxzZTsKKwkJCQkJCQl9CisJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHAgPSBtb2RlX2xpYi0+dmJhLk91dGJwcERTQzsKKwkJCQkJCX0gZWxzZSB7CisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9IGZhbHNlOworCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSBmYWxzZTsKKwkJCQkJCX0KKwkJCQkJCWxvY2Fscy0+T3V0cHV0QnBwUGVyU3RhdGVbaV1ba10gPQorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dGJwcDsKKwkJCQkJfQorCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJbG9jYWxzLT5PdXRwdXRCcHBQZXJTdGF0ZVtpXVtrXSA9IEJQUF9CTEVOREVEX1BJUEU7CisJCQl9CisJCX0KKwl9CisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJbG9jYWxzLT5ESU9TdXBwb3J0W2ldID0gdHJ1ZTsKKwkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQlpZiAobG9jYWxzLT5PdXRwdXRCcHBQZXJTdGF0ZVtpXVtrXSA9PSBCUFBfSU5WQUxJRAorCQkJCQl8fCAobW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10gPT0gZG1fNDIwCisJCQkJCQkJJiYgbW9kZV9saWItPnZiYS5JbnRlcmxhY2Vba10gPT0gdHJ1ZQorCQkJCQkJCSYmIG1vZGVfbGliLT52YmEuUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCA9PSB0cnVlKSkgeworCQkJCWxvY2Fscy0+RElPU3VwcG9ydFtpXSA9IGZhbHNlOworCQkJfQorCQl9CisJfQorCWZvciAoaSA9IDA7IGkgPD0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaSsrKSB7CisJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJbG9jYWxzLT5EU0NDTEtSZXF1aXJlZE1vcmVUaGFuU3VwcG9ydGVkW2ldID0gZmFsc2U7CisJCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBrKSB7CisJCQkJaWYgKChtb2RlX2xpYi0+dmJhLk91dHB1dFtrXSA9PSBkbV9kcAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS5PdXRwdXRba10gPT0gZG1fZWRwKSkgeworCQkJCQlpZiAobW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10gPT0gZG1fNDIwCisJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10KKwkJCQkJCQkJCT09IGRtX240MjIpIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuRFNDRm9ybWF0RmFjdG9yID0gMjsKKwkJCQkJfSBlbHNlIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuRFNDRm9ybWF0RmFjdG9yID0gMTsKKwkJCQkJfQorCQkJCQlpZiAobG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9PSB0cnVlKSB7CisJCQkJCQlpZiAobG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbaV1ba10KKwkJCQkJCQkJPT0gdHJ1ZSkgeworCQkJCQkJCWlmIChtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdIC8gNi4wIC8gbW9kZV9saWItPnZiYS5EU0NGb3JtYXRGYWN0b3IKKwkJCQkJCQkJCT4gKDEuMCAtIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCkgKiBtb2RlX2xpYi0+dmJhLk1heERTQ0NMS1tpXSkgeworCQkJCQkJCQlsb2NhbHMtPkRTQ0NMS1JlcXVpcmVkTW9yZVRoYW5TdXBwb3J0ZWRbaV0gPQorCQkJCQkJCQkJCXRydWU7CisJCQkJCQkJfQorCQkJCQkJfSBlbHNlIHsKKwkJCQkJCQlpZiAobW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSAvIDMuMCAvIG1vZGVfbGliLT52YmEuRFNDRm9ybWF0RmFjdG9yCisJCQkJCQkJCQk+ICgxLjAgLSBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nIC8gMTAwLjApICogbW9kZV9saWItPnZiYS5NYXhEU0NDTEtbaV0pIHsKKwkJCQkJCQkJbG9jYWxzLT5EU0NDTEtSZXF1aXJlZE1vcmVUaGFuU3VwcG9ydGVkW2ldID0KKwkJCQkJCQkJCQl0cnVlOworCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJfQorCX0KKwlmb3IgKGkgPSAwOyBpIDw9IG1vZGVfbGliLT52YmEuc29jLm51bV9zdGF0ZXM7IGkrKykgeworCQlsb2NhbHMtPk5vdEVub3VnaERTQ1VuaXRzW2ldID0gZmFsc2U7CisJCW1vZGVfbGliLT52YmEuVG90YWxEU0NVbml0c1JlcXVpcmVkID0gMC4wOworCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCWlmIChsb2NhbHMtPlJlcXVpcmVzRFNDW2ldW2tdID09IHRydWUpIHsKKwkJCQlpZiAobG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbaV1ba10gPT0gdHJ1ZSkgeworCQkJCQltb2RlX2xpYi0+dmJhLlRvdGFsRFNDVW5pdHNSZXF1aXJlZCA9CisJCQkJCQkJbW9kZV9saWItPnZiYS5Ub3RhbERTQ1VuaXRzUmVxdWlyZWQgKyAyLjA7CisJCQkJfSBlbHNlIHsKKwkJCQkJbW9kZV9saWItPnZiYS5Ub3RhbERTQ1VuaXRzUmVxdWlyZWQgPQorCQkJCQkJCW1vZGVfbGliLT52YmEuVG90YWxEU0NVbml0c1JlcXVpcmVkICsgMS4wOworCQkJCX0KKwkJCX0KKwkJfQorCQlpZiAobW9kZV9saWItPnZiYS5Ub3RhbERTQ1VuaXRzUmVxdWlyZWQgPiBtb2RlX2xpYi0+dmJhLk51bWJlck9mRFNDKSB7CisJCQlsb2NhbHMtPk5vdEVub3VnaERTQ1VuaXRzW2ldID0gdHJ1ZTsKKwkJfQorCX0KKwkvKkRTQyBEZWxheSBwZXIgc3RhdGUqLworCisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSAhPSBrKSB7CisJCQkJbW9kZV9saWItPnZiYS5zbGljZXMgPSAwOworCQkJfSBlbHNlIGlmIChsb2NhbHMtPlJlcXVpcmVzRFNDW2ldW2tdID09IDAKKwkJCQkJfHwgbG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9PSBmYWxzZSkgeworCQkJCW1vZGVfbGliLT52YmEuc2xpY2VzID0gMDsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSA+IDMyMDAuMCkgeworCQkJCW1vZGVfbGliLT52YmEuc2xpY2VzID0gZG1sX2NlaWwoCisJCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdIC8gNDAwLjAsCisJCQkJCQk0LjApOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdID4gMTM2MC4wKSB7CisJCQkJbW9kZV9saWItPnZiYS5zbGljZXMgPSA4LjA7CisJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gPiA2ODAuMCkgeworCQkJCW1vZGVfbGliLT52YmEuc2xpY2VzID0gNC4wOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdID4gMzQwLjApIHsKKwkJCQltb2RlX2xpYi0+dmJhLnNsaWNlcyA9IDIuMDsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5zbGljZXMgPSAxLjA7CisJCQl9CisJCQlpZiAobG9jYWxzLT5PdXRwdXRCcHBQZXJTdGF0ZVtpXVtrXSA9PSBCUFBfQkxFTkRFRF9QSVBFCisJCQkJCXx8IGxvY2Fscy0+T3V0cHV0QnBwUGVyU3RhdGVbaV1ba10gPT0gQlBQX0lOVkFMSUQpIHsKKwkJCQltb2RlX2xpYi0+dmJhLmJwcCA9IDAuMDsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5icHAgPSBsb2NhbHMtPk91dHB1dEJwcFBlclN0YXRlW2ldW2tdOworCQkJfQorCQkJaWYgKGxvY2Fscy0+UmVxdWlyZXNEU0NbaV1ba10gPT0gdHJ1ZSAmJiBtb2RlX2xpYi0+dmJhLmJwcCAhPSAwLjApIHsKKwkJCQlpZiAobG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbaV1ba10gPT0gZmFsc2UpIHsKKwkJCQkJbG9jYWxzLT5EU0NEZWxheVBlclN0YXRlW2ldW2tdID0KKwkJCQkJCQlkc2NjZUNvbXB1dGVEZWxheSgKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLmJwcCwKKwkJCQkJCQkJCWRtbF9jZWlsKAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhBY3RpdmVba10KKwkJCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuc2xpY2VzLAorCQkJCQkJCQkJCQkxLjApLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5zbGljZXMsCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSkKKwkJCQkJCQkJCSsgZHNjQ29tcHV0ZURlbGF5KAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSk7CisJCQkJfSBlbHNlIHsKKwkJCQkJbG9jYWxzLT5EU0NEZWxheVBlclN0YXRlW2ldW2tdID0KKwkJCQkJCQkyLjAgKiAoZHNjY2VDb21wdXRlRGVsYXkoCisJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10sCisJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuYnBwLAorCQkJCQkJCQkJCQlkbWxfY2VpbChtb2RlX2xpYi0+dmJhLkhBY3RpdmVba10gLyBtb2RlX2xpYi0+dmJhLnNsaWNlcywgMS4wKSwKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5zbGljZXMgLyAyLAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSkKKwkJCQkJCQkJCSsgZHNjQ29tcHV0ZURlbGF5KG1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdKSk7CisJCQkJfQorCQkJCWxvY2Fscy0+RFNDRGVsYXlQZXJTdGF0ZVtpXVtrXSA9CisJCQkJCQlsb2NhbHMtPkRTQ0RlbGF5UGVyU3RhdGVbaV1ba10gKiBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdOworCQkJfSBlbHNlIHsKKwkJCQlsb2NhbHMtPkRTQ0RlbGF5UGVyU3RhdGVbaV1ba10gPSAwLjA7CisJCQl9CisJCX0KKwkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQlmb3IgKG0gPSAwOyBtIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBtKyspIHsKKwkJCQlmb3IgKGogPSAwOyBqIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBqKyspIHsKKwkJCQkJaWYgKG1vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gbSAmJiBsb2NhbHMtPlJlcXVpcmVzRFNDW2ldW21dID09IHRydWUpCisJCQkJCQlsb2NhbHMtPkRTQ0RlbGF5UGVyU3RhdGVbaV1ba10gPSBsb2NhbHMtPkRTQ0RlbGF5UGVyU3RhdGVbaV1bbV07CisJCQkJfQorCQkJfQorCQl9CisJfQorCisJLy9QcmVmZXRjaCBDaGVjaworCWZvciAoaSA9IDA7IGkgPD0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaSsrKSB7CisJCWZvciAoaiA9IDA7IGogPCAyOyBqKyspIHsKKwkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCWlmIChsb2NhbHMtPk9ETUNvbWJpbmVFbmFibGVQZXJTdGF0ZVtpXVtrXSA9PSB0cnVlKQorCQkJCQlsb2NhbHMtPlN3YXRoV2lkdGhZUGVyU3RhdGVbaV1bal1ba10gPSBkbWxfbWluKGxvY2Fscy0+U3dhdGhXaWR0aFlTaW5nbGVEUFBba10sIGRtbF9yb3VuZChsb2NhbHMtPkhBY3RpdmVba10gLyAyICogbG9jYWxzLT5IUmF0aW9ba10pKTsKKwkJCQllbHNlCisJCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSA9IGxvY2Fscy0+U3dhdGhXaWR0aFlTaW5nbGVEUFBba10gLyBsb2NhbHMtPk5vT2ZEUFBbaV1bal1ba107CisJCQkJbG9jYWxzLT5Td2F0aFdpZHRoR3JhbnVsYXJpdHlZID0gMjU2ICAvIGRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdLCAxKSAvIGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdOworCQkJCWxvY2Fscy0+Um91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNZID0gKGRtbF9jZWlsKGxvY2Fscy0+U3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSAtIDEsIGxvY2Fscy0+U3dhdGhXaWR0aEdyYW51bGFyaXR5WSkKKwkJCQkJCSsgbG9jYWxzLT5Td2F0aFdpZHRoR3JhbnVsYXJpdHlZKSAqIGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdICogbG9jYWxzLT5NYXhTd2F0aEhlaWdodFlba107CisJCQkJaWYgKGxvY2Fscy0+U291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzEwKSB7CisJCQkJCWxvY2Fscy0+Um91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNZID0gZG1sX2NlaWwobG9jYWxzLT5Sb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc1ksIDI1NikgKyAyNTY7CisJCQkJfQorCQkJCWlmIChsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXSA+IDApIHsKKwkJCQkJbG9jYWxzLT5Td2F0aFdpZHRoR3JhbnVsYXJpdHlDID0gMjU2IC8gZG1sX2NlaWwobG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVENba10sIDIpIC8gbG9jYWxzLT5NYXhTd2F0aEhlaWdodENba107CisKKwkJCQkJbG9jYWxzLT5Sb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc0MgPSAoZG1sX2NlaWwobG9jYWxzLT5Td2F0aFdpZHRoWVBlclN0YXRlW2ldW2pdW2tdIC8gMiAtIDEsIGxvY2Fscy0+U3dhdGhXaWR0aEdyYW51bGFyaXR5QykKKwkJCQkJKyBsb2NhbHMtPlN3YXRoV2lkdGhHcmFudWxhcml0eUMpICogbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVENba10gKiBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXTsKKwkJCQl9CisJCQkJaWYgKGxvY2Fscy0+U291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzEwKSB7CisJCQkJCWxvY2Fscy0+Um91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDID0gZG1sX2NlaWwobG9jYWxzLT5Sb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc0MsIDI1NikgICsgMjU2OworCQkJCX0gZWxzZSB7CisJCQkJCWxvY2Fscy0+Um91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDID0gMDsKKwkJCQl9CisKKwkJCQlpZiAobG9jYWxzLT5Sb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc1kgKyBsb2NhbHMtPlJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzQyA8PSBsb2NhbHMtPkRFVEJ1ZmZlclNpemVJbktCeXRlICogMTAyNCAvIDIpIHsKKwkJCQkJbG9jYWxzLT5Td2F0aEhlaWdodFlQZXJTdGF0ZVtpXVtqXVtrXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdOworCQkJCQlsb2NhbHMtPlN3YXRoSGVpZ2h0Q1BlclN0YXRlW2ldW2pdW2tdID0gbG9jYWxzLT5NYXhTd2F0aEhlaWdodENba107CisJCQkJfSBlbHNlIHsKKwkJCQkJbG9jYWxzLT5Td2F0aEhlaWdodFlQZXJTdGF0ZVtpXVtqXVtrXSA9IGxvY2Fscy0+TWluU3dhdGhIZWlnaHRZW2tdOworCQkJCQlsb2NhbHMtPlN3YXRoSGVpZ2h0Q1BlclN0YXRlW2ldW2pdW2tdID0gbG9jYWxzLT5NaW5Td2F0aEhlaWdodENba107CisJCQkJfQorCisJCQkJaWYgKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdID09IDApIHsKKwkJCQkJbG9jYWxzLT5MaW5lc0luREVUTHVtYSA9IGxvY2Fscy0+REVUQnVmZmVyU2l6ZUluS0J5dGUgKiAxMDI0IC8gbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10gLyBsb2NhbHMtPlN3YXRoV2lkdGhZUGVyU3RhdGVbaV1bal1ba107CisJCQkJCWxvY2Fscy0+TGluZXNJbkRFVENocm9tYSA9IDA7CisJCQkJfSBlbHNlIGlmIChsb2NhbHMtPlN3YXRoSGVpZ2h0WVBlclN0YXRlW2ldW2pdW2tdIDw9IGxvY2Fscy0+U3dhdGhIZWlnaHRDUGVyU3RhdGVbaV1bal1ba10pIHsKKwkJCQkJbG9jYWxzLT5MaW5lc0luREVUTHVtYSA9IGxvY2Fscy0+REVUQnVmZmVyU2l6ZUluS0J5dGUgKiAxMDI0IC8gMiAvIGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdIC8KKwkJCQkJCQlsb2NhbHMtPlN3YXRoV2lkdGhZUGVyU3RhdGVbaV1bal1ba107CisJCQkJCWxvY2Fscy0+TGluZXNJbkRFVENocm9tYSA9IGxvY2Fscy0+REVUQnVmZmVyU2l6ZUluS0J5dGUgKiAxMDI0IC8gMiAvIGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdIC8gKGxvY2Fscy0+U3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSAvIDIpOworCQkJCX0gZWxzZSB7CisJCQkJCWxvY2Fscy0+TGluZXNJbkRFVEx1bWEgPSBsb2NhbHMtPkRFVEJ1ZmZlclNpemVJbktCeXRlICogMTAyNCAqIDIgLyAzIC8gbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10gLyBsb2NhbHMtPlN3YXRoV2lkdGhZUGVyU3RhdGVbaV1bal1ba107CisJCQkJCWxvY2Fscy0+TGluZXNJbkRFVENocm9tYSA9IGxvY2Fscy0+REVUQnVmZmVyU2l6ZUluS0J5dGUgKiAxMDI0IC8gMyAvIGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdIC8gKGxvY2Fscy0+U3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSAvIDIpOworCQkJCX0KKworCQkJCWxvY2Fscy0+RWZmZWN0aXZlTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNMdW1hID0gZG1sX21pbihsb2NhbHMtPk1heExpbmVCdWZmZXJMaW5lcywKKwkJCQkJZG1sX2Zsb29yKGxvY2Fscy0+TGluZUJ1ZmZlclNpemUgLyBsb2NhbHMtPkxCQml0UGVyUGl4ZWxba10gLyAobG9jYWxzLT5Td2F0aFdpZHRoWVBlclN0YXRlW2ldW2pdW2tdCisJCQkJCS8gZG1sX21heChsb2NhbHMtPkhSYXRpb1trXSwgMSkpLCAxKSkgLSAobG9jYWxzLT52dGFwc1trXSAtIDEpOworCisJCQkJbG9jYWxzLT5FZmZlY3RpdmVMQkxhdGVuY3lIaWRpbmdTb3VyY2VMaW5lc0Nocm9tYSA9ICBkbWxfbWluKGxvY2Fscy0+TWF4TGluZUJ1ZmZlckxpbmVzLAorCQkJCQkJZG1sX2Zsb29yKGxvY2Fscy0+TGluZUJ1ZmZlclNpemUgLyBsb2NhbHMtPkxCQml0UGVyUGl4ZWxba10KKwkJCQkJCS8gKGxvY2Fscy0+U3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSAvIDIKKwkJCQkJCS8gZG1sX21heChsb2NhbHMtPkhSYXRpb1trXSAvIDIsIDEpKSwgMSkpIC0gKGxvY2Fscy0+VlRBUHNDaHJvbWFba10gLSAxKTsKKworCQkJCWxvY2Fscy0+RWZmZWN0aXZlREVUTEJMaW5lc0x1bWEgPSBkbWxfZmxvb3IobG9jYWxzLT5MaW5lc0luREVUTHVtYSArICBkbWxfbWluKAorCQkJCQkJbG9jYWxzLT5MaW5lc0luREVUTHVtYSAqIGxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdICogbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10gKgorCQkJCQkJbG9jYWxzLT5QU0NMX0ZBQ1RPUltrXSAvIGxvY2Fscy0+UmV0dXJuQldQZXJTdGF0ZVtpXSwKKwkJCQkJCWxvY2Fscy0+RWZmZWN0aXZlTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNMdW1hKSwKKwkJCQkJCWxvY2Fscy0+U3dhdGhIZWlnaHRZUGVyU3RhdGVbaV1bal1ba10pOworCisJCQkJbG9jYWxzLT5FZmZlY3RpdmVERVRMQkxpbmVzQ2hyb21hID0gZG1sX2Zsb29yKGxvY2Fscy0+TGluZXNJbkRFVENocm9tYSArIGRtbF9taW4oCisJCQkJCQlsb2NhbHMtPkxpbmVzSW5ERVRDaHJvbWEgKiBsb2NhbHMtPlJlcXVpcmVkRElTUENMS1tpXVtqXSAqIGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdICoKKwkJCQkJCWxvY2Fscy0+UFNDTF9GQUNUT1JfQ0hST01BW2tdIC8gbG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW2ldLAorCQkJCQkJbG9jYWxzLT5FZmZlY3RpdmVMQkxhdGVuY3lIaWRpbmdTb3VyY2VMaW5lc0Nocm9tYSksCisJCQkJCQlsb2NhbHMtPlN3YXRoSGVpZ2h0Q1BlclN0YXRlW2ldW2pdW2tdKTsKKworCQkJCWlmIChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSA9PSAwKSB7CisJCQkJCWxvY2Fscy0+VXJnZW50TGF0ZW5jeVN1cHBvcnRVc1BlclN0YXRlW2ldW2pdW2tdID0gbG9jYWxzLT5FZmZlY3RpdmVERVRMQkxpbmVzTHVtYSAqIChsb2NhbHMtPkhUb3RhbFtrXSAvIGxvY2Fscy0+UGl4ZWxDbG9ja1trXSkKKwkJCQkJCQkvIGxvY2Fscy0+VlJhdGlvW2tdIC0gbG9jYWxzLT5FZmZlY3RpdmVERVRMQkxpbmVzTHVtYSAqIGxvY2Fscy0+U3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSAqCisJCQkJCQkJCWRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdLCAxKSAvIChsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV0gLyBsb2NhbHMtPk5vT2ZEUFBbaV1bal1ba10pOworCQkJCX0gZWxzZSB7CisJCQkJCWxvY2Fscy0+VXJnZW50TGF0ZW5jeVN1cHBvcnRVc1BlclN0YXRlW2ldW2pdW2tdID0gZG1sX21pbigKKwkJCQkJCWxvY2Fscy0+RWZmZWN0aXZlREVUTEJMaW5lc0x1bWEgKiAobG9jYWxzLT5IVG90YWxba10gLyBsb2NhbHMtPlBpeGVsQ2xvY2tba10pCisJCQkJCQkvIGxvY2Fscy0+VlJhdGlvW2tdIC0gbG9jYWxzLT5FZmZlY3RpdmVERVRMQkxpbmVzTHVtYSAqIGxvY2Fscy0+U3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSAqCisJCQkJCQlkbWxfY2VpbChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSwgMSkgLyAobG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW2ldIC8gbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdKSwKKwkJCQkJCQlsb2NhbHMtPkVmZmVjdGl2ZURFVExCTGluZXNDaHJvbWEgKiAobG9jYWxzLT5IVG90YWxba10gLyBsb2NhbHMtPlBpeGVsQ2xvY2tba10pIC8gKGxvY2Fscy0+VlJhdGlvW2tdIC8gMikgLQorCQkJCQkJCWxvY2Fscy0+RWZmZWN0aXZlREVUTEJMaW5lc0Nocm9tYSAqIGxvY2Fscy0+U3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSAvIDIgKgorCQkJCQkJCWRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdLCAyKSAvIChsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV0gLyBsb2NhbHMtPk5vT2ZEUFBbaV1bal1ba10pKTsKKwkJCQl9CisJCQl9CisJCX0KKwl9CisKKwlmb3IgKGkgPSAwOyBpIDw9IGxvY2Fscy0+c29jLm51bV9zdGF0ZXM7IGkrKykgeworCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CisJCQlsb2NhbHMtPlVyZ2VudExhdGVuY3lTdXBwb3J0W2ldW2pdID0gdHJ1ZTsKKwkJCWZvciAoayA9IDA7IGsgPCBsb2NhbHMtPk51bWJlck9mQWN0aXZlUGxhbmVzOyBrKyspIHsKKwkJCQlpZiAobG9jYWxzLT5VcmdlbnRMYXRlbmN5U3VwcG9ydFVzUGVyU3RhdGVbaV1bal1ba10gPCBsb2NhbHMtPlVyZ2VudExhdGVuY3kpCisJCQkJCWxvY2Fscy0+VXJnZW50TGF0ZW5jeVN1cHBvcnRbaV1bal0gPSBmYWxzZTsKKwkJCX0KKwkJfQorCX0KKworCisJLypQcmVmZXRjaCBDaGVjayovCisJZm9yIChpID0gMDsgaSA8PSBsb2NhbHMtPnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJZm9yIChqID0gMDsgaiA8IDI7IGorKykgeworCQkJbG9jYWxzLT5Ub3RhbE51bWJlck9mRENDQWN0aXZlRFBQW2ldW2pdID0gMDsKKwkJCWZvciAoayA9IDA7IGsgPCBsb2NhbHMtPk51bWJlck9mQWN0aXZlUGxhbmVzOyBrKyspIHsKKwkJCQlpZiAobG9jYWxzLT5EQ0NFbmFibGVba10gPT0gdHJ1ZSkgeworCQkJCQlsb2NhbHMtPlRvdGFsTnVtYmVyT2ZEQ0NBY3RpdmVEUFBbaV1bal0gPQorCQkJCQkJbG9jYWxzLT5Ub3RhbE51bWJlck9mRENDQWN0aXZlRFBQW2ldW2pdICsgbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKworCUNhbGN1bGF0ZU1pbkFuZE1heFByZWZldGNoTW9kZShsb2NhbHMtPkFsbG93RFJBTVNlbGZSZWZyZXNoT3JEUkFNQ2xvY2tDaGFuZ2VJblZibGFuaywgJmxvY2Fscy0+TWluUHJlZmV0Y2hNb2RlLCAmbG9jYWxzLT5NYXhQcmVmZXRjaE1vZGUpOworCisJbG9jYWxzLT5NYXhUb3RhbFZBY3RpdmVSREJhbmR3aWR0aCA9IDA7CisJZm9yIChrID0gMDsgayA8IGxvY2Fscy0+TnVtYmVyT2ZBY3RpdmVQbGFuZXM7IGsrKykgeworCQlsb2NhbHMtPk1heFRvdGFsVkFjdGl2ZVJEQmFuZHdpZHRoID0gbG9jYWxzLT5NYXhUb3RhbFZBY3RpdmVSREJhbmR3aWR0aCArIGxvY2Fscy0+UmVhZEJhbmR3aWR0aFtrXTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDw9IGxvY2Fscy0+c29jLm51bV9zdGF0ZXM7IGkrKykgeworCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CisJCQlmb3IgKGsgPSAwOyBrIDwgbG9jYWxzLT5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgaysrKSB7CisJCQkJbG9jYWxzLT5Ob09mRFBQVGhpc1N0YXRlW2tdID0gbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdOworCQkJCWxvY2Fscy0+UmVxdWlyZWREUFBDTEtUaGlzU3RhdGVba10gPSBsb2NhbHMtPlJlcXVpcmVkRFBQQ0xLW2ldW2pdW2tdOworCQkJCWxvY2Fscy0+U3dhdGhIZWlnaHRZVGhpc1N0YXRlW2tdID0gbG9jYWxzLT5Td2F0aEhlaWdodFlQZXJTdGF0ZVtpXVtqXVtrXTsKKwkJCQlsb2NhbHMtPlN3YXRoSGVpZ2h0Q1RoaXNTdGF0ZVtrXSA9IGxvY2Fscy0+U3dhdGhIZWlnaHRDUGVyU3RhdGVbaV1bal1ba107CisJCQkJbG9jYWxzLT5Td2F0aFdpZHRoWVRoaXNTdGF0ZVtrXSA9IGxvY2Fscy0+U3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXTsKKwkJCQltb2RlX2xpYi0+dmJhLlByb2plY3RlZERDRkNMS0RlZXBTbGVlcCA9IGRtbF9tYXgoCisJCQkJCQltb2RlX2xpYi0+dmJhLlByb2plY3RlZERDRkNMS0RlZXBTbGVlcCwKKwkJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSAvIDE2LjApOworCQkJCWlmIChtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbEluREVUQ1trXSA9PSAwLjApIHsKKwkJCQkJaWYgKG1vZGVfbGliLT52YmEuVlJhdGlvW2tdIDw9IDEuMCkgeworCQkJCQkJbW9kZV9saWItPnZiYS5Qcm9qZWN0ZWREQ0ZDTEtEZWVwU2xlZXAgPQorCQkJCQkJCQlkbWxfbWF4KAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuUHJvamVjdGVkRENGQ0xLRGVlcFNsZWVwLAorCQkJCQkJCQkJCTEuMQorCQkJCQkJCQkJCQkJKiBkbWxfY2VpbCgKKwkJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxJbkRFVFlba10sCisJCQkJCQkJCQkJCQkJCTEuMCkKKwkJCQkJCQkJCQkJCS8gNjQuMAorCQkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXQorCQkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10KKwkJCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5Ob09mRFBQW2ldW2pdW2tdKTsKKwkJCQkJfSBlbHNlIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuUHJvamVjdGVkRENGQ0xLRGVlcFNsZWVwID0KKwkJCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlByb2plY3RlZERDRkNMS0RlZXBTbGVlcCwKKwkJCQkJCQkJCQkxLjEKKwkJCQkJCQkJCQkJCSogZG1sX2NlaWwoCisJCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsSW5ERVRZW2tdLAorCQkJCQkJCQkJCQkJCQkxLjApCisJCQkJCQkJCQkJCQkvIDY0LjAKKwkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5QU0NMX0ZBQ1RPUltrXQorCQkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlJlcXVpcmVkRFBQQ0xLW2ldW2pdW2tdKTsKKwkJCQkJfQorCQkJCX0gZWxzZSB7CisJCQkJCWlmIChtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSA8PSAxLjApIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuUHJvamVjdGVkRENGQ0xLRGVlcFNsZWVwID0KKwkJCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlByb2plY3RlZERDRkNMS0RlZXBTbGVlcCwKKwkJCQkJCQkJCQkxLjEKKwkJCQkJCQkJCQkJCSogZG1sX2NlaWwoCisJCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsSW5ERVRZW2tdLAorCQkJCQkJCQkJCQkJCQkxLjApCisJCQkJCQkJCQkJCQkvIDMyLjAKKwkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuTm9PZkRQUFtpXVtqXVtrXSk7CisJCQkJCX0gZWxzZSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLlByb2plY3RlZERDRkNMS0RlZXBTbGVlcCA9CisJCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Qcm9qZWN0ZWREQ0ZDTEtEZWVwU2xlZXAsCisJCQkJCQkJCQkJMS4xCisJCQkJCQkJCQkJCQkqIGRtbF9jZWlsKAorCQkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbEluREVUWVtrXSwKKwkJCQkJCQkJCQkJCQkJMS4wKQorCQkJCQkJCQkJCQkJLyAzMi4wCisJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuUFNDTF9GQUNUT1Jba10KKwkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5SZXF1aXJlZERQUENMS1tpXVtqXVtrXSk7CisJCQkJCX0KKwkJCQkJaWYgKG1vZGVfbGliLT52YmEuVlJhdGlvW2tdIC8gMi4wIDw9IDEuMCkgeworCQkJCQkJbW9kZV9saWItPnZiYS5Qcm9qZWN0ZWREQ0ZDTEtEZWVwU2xlZXAgPQorCQkJCQkJCQlkbWxfbWF4KAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuUHJvamVjdGVkRENGQ0xLRGVlcFNsZWVwLAorCQkJCQkJCQkJCTEuMQorCQkJCQkJCQkJCQkJKiBkbWxfY2VpbCgKKwkJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxJbkRFVENba10sCisJCQkJCQkJCQkJCQkJCTIuMCkKKwkJCQkJCQkJCQkJCS8gMzIuMAorCQkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXQorCQkJCQkJCQkJCQkJLyAyLjAKKwkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuTm9PZkRQUFtpXVtqXVtrXSk7CisJCQkJCX0gZWxzZSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLlByb2plY3RlZERDRkNMS0RlZXBTbGVlcCA9CisJCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Qcm9qZWN0ZWREQ0ZDTEtEZWVwU2xlZXAsCisJCQkJCQkJCQkJMS4xCisJCQkJCQkJCQkJCQkqIGRtbF9jZWlsKAorCQkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbEluREVUQ1trXSwKKwkJCQkJCQkJCQkJCQkJMi4wKQorCQkJCQkJCQkJCQkJLyAzMi4wCisJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuUFNDTF9GQUNUT1JfQ0hST01BW2tdCisJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuUmVxdWlyZWREUFBDTEtbaV1bal1ba10pOworCQkJCQl9CisJCQkJfQorCQkJfQorCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJbW9kZV9saWItPnZiYS5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZVkgPSBDYWxjdWxhdGVWTUFuZFJvd0J5dGVzKAorCQkJCQkJbW9kZV9saWIsCisJCQkJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuUmVhZDI1NkJsb2NrSGVpZ2h0WVtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuUmVhZDI1NkJsb2NrV2lkdGhZW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSwKKwkJCQkJCWRtbF9jZWlsKG1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsSW5ERVRZW2tdLCAxLjApLAorCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydFdpZHRoW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydEhlaWdodFtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUsCisJCQkJCQltb2RlX2xpYi0+dmJhLlZNTVBhZ2VTaXplLAorCQkJCQkJbW9kZV9saWItPnZiYS5QVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0x1bWEsCisJCQkJCQltb2RlX2xpYi0+dmJhLlBERVByb2Nlc3NpbmdCdWZJbjY0S0JSZXFzLAorCQkJCQkJbW9kZV9saWItPnZiYS5QaXRjaFlba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkRDQ01ldGFQaXRjaFlba10sCisJCQkJCQkmbW9kZV9saWItPnZiYS5NYWNyb1RpbGVXaWR0aFlba10sCisJCQkJCQkmbW9kZV9saWItPnZiYS5NZXRhUm93Qnl0ZXNZLAorCQkJCQkJJm1vZGVfbGliLT52YmEuRFBURUJ5dGVzUGVyUm93WSwKKwkJCQkJCSZtb2RlX2xpYi0+dmJhLlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZFlbaV1bal1ba10sCisJCQkJCQkmbW9kZV9saWItPnZiYS5kcHRlX3Jvd19oZWlnaHRba10sCisJCQkJCQkmbW9kZV9saWItPnZiYS5tZXRhX3Jvd19oZWlnaHRba10pOworCQkJCW1vZGVfbGliLT52YmEuUHJlZmV0Y2hMaW5lc1lba10gPSBDYWxjdWxhdGVQcmVmZXRjaFNvdXJjZUxpbmVzKAorCQkJCQkJbW9kZV9saWIsCisJCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXSwKKwkJCQkJCW1vZGVfbGliLT52YmEudnRhcHNba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkludGVybGFjZVtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCwKKwkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRZUGVyU3RhdGVbaV1bal1ba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLlZpZXdwb3J0WVN0YXJ0WVtrXSwKKwkJCQkJCSZtb2RlX2xpYi0+dmJhLlByZWZpbGxZW2tdLAorCQkJCQkJJm1vZGVfbGliLT52YmEuTWF4TnVtU3dZW2tdKTsKKwkJCQlpZiAoKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzY0CisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8zMgorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfMTYKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fbW9ub18xNgorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV9tb25vXzgpKSB7CisJCQkJCW1vZGVfbGliLT52YmEuUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVDID0gQ2FsY3VsYXRlVk1BbmRSb3dCeXRlcygKKwkJCQkJCQltb2RlX2xpYiwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlJlYWQyNTZCbG9ja0hlaWdodFlba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5SZWFkMjU2QmxvY2tXaWR0aFlba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10sCisJCQkJCQkJZG1sX2NlaWwobW9kZV9saWItPnZiYS5CeXRlUGVyUGl4ZWxJbkRFVENba10sIDIuMCksCisJCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFtrXSAvIDIuMCwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlZpZXdwb3J0SGVpZ2h0W2tdIC8gMi4wLAorCQkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSAvIDIuMCwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVk1NUGFnZVNpemUsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0x1bWEsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QREVQcm9jZXNzaW5nQnVmSW42NEtCUmVxcywKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlBpdGNoQ1trXSwKKwkJCQkJCQkwLjAsCisJCQkJCQkJJm1vZGVfbGliLT52YmEuTWFjcm9UaWxlV2lkdGhDW2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlc0MsCisJCQkJCQkJJm1vZGVfbGliLT52YmEuRFBURUJ5dGVzUGVyUm93QywKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5QVEVCdWZmZXJTaXplTm90RXhjZWVkZWRDW2ldW2pdW2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLmRwdGVfcm93X2hlaWdodF9jaHJvbWFba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEubWV0YV9yb3dfaGVpZ2h0X2Nocm9tYVtrXSk7CisJCQkJCW1vZGVfbGliLT52YmEuUHJlZmV0Y2hMaW5lc0Nba10gPSBDYWxjdWxhdGVQcmVmZXRjaFNvdXJjZUxpbmVzKAorCQkJCQkJCW1vZGVfbGliLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdIC8gMi4wLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVlRBUHNDaHJvbWFba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5JbnRlcmxhY2Vba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5Qcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDUGVyU3RhdGVbaV1bal1ba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydFlTdGFydENba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEuUHJlZmlsbENba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEuTWF4TnVtU3dDW2tdKTsKKwkJCQl9IGVsc2UgeworCQkJCQltb2RlX2xpYi0+dmJhLlBERUFuZE1ldGFQVEVCeXRlc1BlckZyYW1lQyA9IDAuMDsKKwkJCQkJbW9kZV9saWItPnZiYS5NZXRhUm93Qnl0ZXNDID0gMC4wOworCQkJCQltb2RlX2xpYi0+dmJhLkRQVEVCeXRlc1BlclJvd0MgPSAwLjA7CisJCQkJCWxvY2Fscy0+UHJlZmV0Y2hMaW5lc0Nba10gPSAwLjA7CisJCQkJCWxvY2Fscy0+UFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkQ1tpXVtqXVtrXSA9IHRydWU7CisJCQkJCWxvY2Fscy0+UFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNGb3JMdW1hID0gbW9kZV9saWItPnZiYS5QVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0x1bWEgKyBtb2RlX2xpYi0+dmJhLlBURUJ1ZmZlclNpemVJblJlcXVlc3RzQ2hyb21hOworCQkJCX0KKwkJCQlsb2NhbHMtPlBERUFuZE1ldGFQVEVCeXRlc1BlckZyYW1lW2tdID0KKwkJCQkJCW1vZGVfbGliLT52YmEuUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVZICsgbW9kZV9saWItPnZiYS5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZUM7CisJCQkJbG9jYWxzLT5NZXRhUm93Qnl0ZXNba10gPSBtb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlc1kgKyBtb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlc0M7CisJCQkJbG9jYWxzLT5EUFRFQnl0ZXNQZXJSb3dba10gPSBtb2RlX2xpYi0+dmJhLkRQVEVCeXRlc1BlclJvd1kgKyBtb2RlX2xpYi0+dmJhLkRQVEVCeXRlc1BlclJvd0M7CisKKwkJCQlDYWxjdWxhdGVBY3RpdmVSb3dCYW5kd2lkdGgoCisJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuTWV0YVJvd0J5dGVzWSwKKwkJCQkJCW1vZGVfbGliLT52YmEuTWV0YVJvd0J5dGVzQywKKwkJCQkJCW1vZGVfbGliLT52YmEubWV0YV9yb3dfaGVpZ2h0W2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5tZXRhX3Jvd19oZWlnaHRfY2hyb21hW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5EUFRFQnl0ZXNQZXJSb3dZLAorCQkJCQkJbW9kZV9saWItPnZiYS5EUFRFQnl0ZXNQZXJSb3dDLAorCQkJCQkJbW9kZV9saWItPnZiYS5kcHRlX3Jvd19oZWlnaHRba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLmRwdGVfcm93X2hlaWdodF9jaHJvbWFba10sCisJCQkJCQkmbW9kZV9saWItPnZiYS5tZXRhX3Jvd19id1trXSwKKwkJCQkJCSZtb2RlX2xpYi0+dmJhLmRwdGVfcm93X2J3W2tdLAorCQkJCQkJJm1vZGVfbGliLT52YmEucXVhbF9yb3dfYndba10pOworCQkJfQorCQkJbW9kZV9saWItPnZiYS5FeHRyYUxhdGVuY3kgPQorCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudFJvdW5kVHJpcEFuZE91dE9mT3JkZXJMYXRlbmN5UGVyU3RhdGVbaV0KKwkJCQkJCQkrIChtb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbaV1bal0KKwkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5QaXhlbENodW5rU2l6ZUluS0J5dGUKKwkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5Ub3RhbE51bWJlck9mRENDQWN0aXZlRFBQW2ldW2pdCisJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5NZXRhQ2h1bmtTaXplKQorCQkJCQkJCQkJKiAxMDI0LjAKKwkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5SZXR1cm5CV1BlclN0YXRlW2ldOworCQkJaWYgKG1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUgPT0gdHJ1ZSkgeworCQkJCW1vZGVfbGliLT52YmEuRXh0cmFMYXRlbmN5ID0gbW9kZV9saWItPnZiYS5FeHRyYUxhdGVuY3kKKwkJCQkJCSsgbW9kZV9saWItPnZiYS5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdCisJCQkJCQkJCSogbW9kZV9saWItPnZiYS5QVEVHcm91cFNpemUKKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlJldHVybkJXUGVyU3RhdGVbaV07CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLlRpbWVDYWxjID0gMjQuMCAvIG1vZGVfbGliLT52YmEuUHJvamVjdGVkRENGQ0xLRGVlcFNsZWVwOworCisJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBrKSB7CisJCQkJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQkJCQlsb2NhbHMtPldyaXRlYmFja0RlbGF5W2ldW2tdID0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5CisJCQkJCQkJCSsgQ2FsY3VsYXRlV3JpdGVCYWNrRGVsYXkoCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW2tdLAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10sCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW2tdKSAvIGxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdOworCQkJCQl9IGVsc2UgeworCQkJCQkJbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVtpXVtrXSA9IDAuMDsKKwkJCQkJfQorCQkJCQlmb3IgKG0gPSAwOyBtIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBtKyspIHsKKwkJCQkJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW21dID09IGsKKwkJCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tFbmFibGVbbV0KKwkJCQkJCQkJCQk9PSB0cnVlKSB7CisJCQkJCQkJbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVtpXVtrXSA9IGRtbF9tYXgobG9jYWxzLT5Xcml0ZWJhY2tEZWxheVtpXVtrXSwKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5ICsgQ2FsY3VsYXRlV3JpdGVCYWNrRGVsYXkoCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1ttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1ttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1ttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1ttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW21dLAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNbbV0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW21dKSAvIGxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdKTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCWZvciAobSA9IDA7IG0gPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IG0rKykgeworCQkJCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBtKSB7CisJCQkJCQlsb2NhbHMtPldyaXRlYmFja0RlbGF5W2ldW2tdID0gbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVtpXVttXTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCWZvciAobSA9IDA7IG0gPCBsb2NhbHMtPk51bWJlck9mQ3Vyc29yc1trXTsgbSsrKQorCQkJCQlsb2NhbHMtPmN1cnNvcl9id1trXSA9IGxvY2Fscy0+TnVtYmVyT2ZDdXJzb3JzW2tdICogbG9jYWxzLT5DdXJzb3JXaWR0aFtrXVttXSAqIGxvY2Fscy0+Q3Vyc29yQlBQW2tdW21dCisJCQkJCQkvIDggLyAobG9jYWxzLT5IVG90YWxba10gLyBsb2NhbHMtPlBpeGVsQ2xvY2tba10pICogbG9jYWxzLT5WUmF0aW9ba107CisJCQl9CisKKwkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCWxvY2Fscy0+TWF4aW11bVZTdGFydHVwW2tdID0gbW9kZV9saWItPnZiYS5WVG90YWxba10gLSBtb2RlX2xpYi0+dmJhLlZBY3RpdmVba10KKwkJCQkJLSBkbWxfbWF4KDEuMCwgZG1sX2NlaWwobG9jYWxzLT5Xcml0ZWJhY2tEZWxheVtpXVtrXSAvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSksIDEuMCkpOworCQkJfQorCisJCQltb2RlX2xpYi0+dmJhLk5leHRQcmVmZXRjaE1vZGUgPSBtb2RlX2xpYi0+dmJhLk1pblByZWZldGNoTW9kZTsKKwkJCWRvIHsKKwkJCQltb2RlX2xpYi0+dmJhLlByZWZldGNoTW9kZVtpXVtqXSA9IG1vZGVfbGliLT52YmEuTmV4dFByZWZldGNoTW9kZTsKKwkJCQltb2RlX2xpYi0+dmJhLk5leHRQcmVmZXRjaE1vZGUgPSBtb2RlX2xpYi0+dmJhLk5leHRQcmVmZXRjaE1vZGUgKyAxOworCisJCQkJbW9kZV9saWItPnZiYS5UV2FpdCA9IENhbGN1bGF0ZVRXYWl0KAorCQkJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaE1vZGVbaV1bal0sCisJCQkJCQltb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZUxhdGVuY3ksCisJCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudExhdGVuY3ksCisJCQkJCQltb2RlX2xpYi0+dmJhLlNSRW50ZXJQbHVzRXhpdFRpbWUpOworCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCisJCQkJCWlmIChtb2RlX2xpYi0+dmJhLlhGQ0VuYWJsZWRba10gPT0gdHJ1ZSkgeworCQkJCQkJbW9kZV9saWItPnZiYS5YRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5ID0KKwkJCQkJCQkJQ2FsY3VsYXRlUmVtb3RlU3VyZmFjZUZsaXBEZWxheSgKKwkJCQkJCQkJCQltb2RlX2xpYiwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXSwKKwkJCQkJCQkJCQlsb2NhbHMtPlN3YXRoV2lkdGhZUGVyU3RhdGVbaV1bal1ba10sCisJCQkJCQkJCQkJZG1sX2NlaWwobG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10sIDEuMCksCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10sCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNUU2x2VnVwZGF0ZU9mZnNldCwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1RTbHZWdXBkYXRlV2lkdGgsCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNUU2x2VnJlYWR5T2Zmc2V0LAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuWEZDWEJVRkxhdGVuY3lUb2xlcmFuY2UsCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNGaWxsQldPdmVyaGVhZCwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1NsdkNodW5rU2l6ZSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ0J1c1RyYW5zcG9ydFRpbWUsCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5UaW1lQ2FsYywKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlRXYWl0LAorCQkJCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlNyY0FjdGl2ZURyYWluUmF0ZSwKKwkJCQkJCQkJCQkmbW9kZV9saWItPnZiYS5USW5pdFhGaWxsLAorCQkJCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlRzbHZDaGspOworCQkJCQl9IGVsc2UgeworCQkJCQkJbW9kZV9saWItPnZiYS5YRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5ID0gMC4wOworCQkJCQl9CisKKwkJCQkJQ2FsY3VsYXRlRGVsYXlBZnRlclNjYWxlcihtb2RlX2xpYiwgbW9kZV9saWItPnZiYS5SZXR1cm5CV1BlclN0YXRlW2ldLCBtb2RlX2xpYi0+dmJhLlJlYWRCYW5kd2lkdGhMdW1hW2tdLCBtb2RlX2xpYi0+dmJhLlJlYWRCYW5kd2lkdGhDaHJvbWFba10sIG1vZGVfbGliLT52YmEuTWF4VG90YWxWQWN0aXZlUkRCYW5kd2lkdGgsCisJCQkJCQltb2RlX2xpYi0+dmJhLkRpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWFba10sIG1vZGVfbGliLT52YmEuRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5SZXF1aXJlZERQUENMS1tpXVtqXVtrXSwgbW9kZV9saWItPnZiYS5SZXF1aXJlZERJU1BDTEtbaV1bal0sIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSwgbW9kZV9saWItPnZiYS5EU0NEZWxheVBlclN0YXRlW2ldW2tdLCBtb2RlX2xpYi0+dmJhLk5vT2ZEUFBbaV1bal1ba10sIG1vZGVfbGliLT52YmEuU2NhbGVyRW5hYmxlZFtrXSwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkN1cnNvcnNba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkRQUENMS0RlbGF5U3VidG90YWwsIG1vZGVfbGliLT52YmEuRFBQQ0xLRGVsYXlTQ0wsIG1vZGVfbGliLT52YmEuRFBQQ0xLRGVsYXlTQ0xMQk9ubHksIG1vZGVfbGliLT52YmEuRFBQQ0xLRGVsYXlDTlZDRm9ybWF0ZXIsIG1vZGVfbGliLT52YmEuRFBQQ0xLRGVsYXlDTlZDQ3Vyc29yLCBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEZWxheVN1YnRvdGFsLAorCQkJCQkJbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoWVBlclN0YXRlW2ldW2pdW2tdIC8gbW9kZV9saWItPnZiYS5IUmF0aW9ba10sIG1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdLCBtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlTaW5nbGVEUFBba10sIG1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsSW5ERVRZW2tdLCBtb2RlX2xpYi0+dmJhLkJ5dGVQZXJQaXhlbEluREVUQ1trXSwgbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlUaGlzU3RhdGVba10sIG1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDVGhpc1N0YXRlW2tdLCBtb2RlX2xpYi0+dmJhLkludGVybGFjZVtrXSwgbW9kZV9saWItPnZiYS5Qcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQkJCQkJJm1vZGVfbGliLT52YmEuRFNUWEFmdGVyU2NhbGVyW2tdLCAmbW9kZV9saWItPnZiYS5EU1RZQWZ0ZXJTY2FsZXJba10pOworCisJCQkJCW1vZGVfbGliLT52YmEuSXNFcnJvclJlc3VsdFtpXVtqXVtrXSA9CisJCQkJCQkJQ2FsY3VsYXRlUHJlZmV0Y2hTY2hlZHVsZSgKKwkJCQkJCQkJCW1vZGVfbGliLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5SZXF1aXJlZERQUENMS1tpXVtqXVtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuUmVxdWlyZWRESVNQQ0xLW2ldW2pdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Qcm9qZWN0ZWREQ0ZDTEtEZWVwU2xlZXAsCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLk5vT2ZEUFBbaV1bal1ba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLk51bWJlck9mQ3Vyc29yc1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuVlRvdGFsW2tdCisJCQkJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5WQWN0aXZlW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IVG90YWxba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLk1heEludGVyRENOVGlsZVJlcGVhdGVycywKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4aW11bVZTdGFydHVwW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5HUFVWTU1heFBhZ2VUYWJsZUxldmVscywKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUsCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkR5bmFtaWNNZXRhZGF0YUVuYWJsZVtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhTGluZXNCZWZvcmVBY3RpdmVSZXF1aXJlZFtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhVHJhbnNtaXR0ZWRCeXRlc1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuRENDRW5hYmxlW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuRXh0cmFMYXRlbmN5LAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5UaW1lQ2FsYywKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlc1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuRFBURUJ5dGVzUGVyUm93W2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaExpbmVzWVtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhXaWR0aFlQZXJTdGF0ZVtpXVtqXVtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsSW5ERVRZW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5QcmVmaWxsWVtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4TnVtU3dZW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaExpbmVzQ1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuQnl0ZVBlclBpeGVsSW5ERVRDW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5QcmVmaWxsQ1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4TnVtU3dDW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlQZXJTdGF0ZVtpXVtqXVtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDUGVyU3RhdGVbaV1bal1ba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlRXYWl0LAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNFbmFibGVkW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5LAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5JbnRlcmxhY2Vba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFAsCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkRTVFhBZnRlclNjYWxlcltrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNUWUFmdGVyU2NhbGVyW2tdLAorCQkJCQkJCQkJJm1vZGVfbGliLT52YmEuTGluZVRpbWVzRm9yUHJlZmV0Y2hba10sCisJCQkJCQkJCQkmbW9kZV9saWItPnZiYS5QcmVmZXRjaEJXW2tdLAorCQkJCQkJCQkJJm1vZGVfbGliLT52YmEuTGluZXNGb3JNZXRhUFRFW2tdLAorCQkJCQkJCQkJJm1vZGVfbGliLT52YmEuTGluZXNGb3JNZXRhQW5kRFBURVJvd1trXSwKKwkJCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlZSYXRpb1ByZVlbaV1bal1ba10sCisJCQkJCQkJCQkmbW9kZV9saWItPnZiYS5WUmF0aW9QcmVDW2ldW2pdW2tdLAorCQkJCQkJCQkJJm1vZGVfbGliLT52YmEuUmVxdWlyZWRQcmVmZXRjaFBpeGVsRGF0YUJXTHVtYVtpXVtqXVtrXSwKKwkJCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlRub19id1trXSwKKwkJCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlZVcGRhdGVPZmZzZXRQaXhba10sCisJCQkJCQkJCQkmbW9kZV9saWItPnZiYS5WVXBkYXRlV2lkdGhQaXhba10sCisJCQkJCQkJCQkmbW9kZV9saWItPnZiYS5WUmVhZHlPZmZzZXRQaXhba10pOworCQkJCX0KKwkJCQltb2RlX2xpYi0+dmJhLk1heGltdW1SZWFkQmFuZHdpZHRoV2l0aG91dFByZWZldGNoID0gMC4wOworCQkJCW1vZGVfbGliLT52YmEuTWF4aW11bVJlYWRCYW5kd2lkdGhXaXRoUHJlZmV0Y2ggPSAwLjA7CisJCQkJbG9jYWxzLT5wcmVmZXRjaF92bV9id192YWxpZCA9IHRydWU7CisJCQkJbG9jYWxzLT5wcmVmZXRjaF9yb3dfYndfdmFsaWQgPSB0cnVlOworCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCQlpZiAobG9jYWxzLT5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZVtrXSA9PSAwKQorCQkJCQkJbG9jYWxzLT5wcmVmZXRjaF92bV9id1trXSA9IDA7CisJCQkJCWVsc2UgaWYgKGxvY2Fscy0+TGluZXNGb3JNZXRhUFRFW2tdID4gMCkKKwkJCQkJCWxvY2Fscy0+cHJlZmV0Y2hfdm1fYndba10gPSBsb2NhbHMtPlBERUFuZE1ldGFQVEVCeXRlc1BlckZyYW1lW2tdCisJCQkJCQkJLyAobG9jYWxzLT5MaW5lc0Zvck1ldGFQVEVba10gKiBsb2NhbHMtPkhUb3RhbFtrXSAvIGxvY2Fscy0+UGl4ZWxDbG9ja1trXSk7CisJCQkJCWVsc2UgeworCQkJCQkJbG9jYWxzLT5wcmVmZXRjaF92bV9id1trXSA9IDA7CisJCQkJCQlsb2NhbHMtPnByZWZldGNoX3ZtX2J3X3ZhbGlkID0gZmFsc2U7CisJCQkJCX0KKwkJCQkJaWYgKGxvY2Fscy0+TWV0YVJvd0J5dGVzW2tdICsgbG9jYWxzLT5EUFRFQnl0ZXNQZXJSb3dba10gPT0gMCkKKwkJCQkJCWxvY2Fscy0+cHJlZmV0Y2hfcm93X2J3W2tdID0gMDsKKwkJCQkJZWxzZSBpZiAobG9jYWxzLT5MaW5lc0Zvck1ldGFBbmREUFRFUm93W2tdID4gMCkKKwkJCQkJCWxvY2Fscy0+cHJlZmV0Y2hfcm93X2J3W2tdID0gKGxvY2Fscy0+TWV0YVJvd0J5dGVzW2tdICsgbG9jYWxzLT5EUFRFQnl0ZXNQZXJSb3dba10pCisJCQkJCQkJLyAobG9jYWxzLT5MaW5lc0Zvck1ldGFBbmREUFRFUm93W2tdICogbG9jYWxzLT5IVG90YWxba10gLyBsb2NhbHMtPlBpeGVsQ2xvY2tba10pOworCQkJCQllbHNlIHsKKwkJCQkJCWxvY2Fscy0+cHJlZmV0Y2hfcm93X2J3W2tdID0gMDsKKwkJCQkJCWxvY2Fscy0+cHJlZmV0Y2hfcm93X2J3X3ZhbGlkID0gZmFsc2U7CisJCQkJCX0KKworCQkJCQltb2RlX2xpYi0+dmJhLk1heGltdW1SZWFkQmFuZHdpZHRoV2l0aG91dFByZWZldGNoID0gbW9kZV9saWItPnZiYS5NYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhQcmVmZXRjaAorCQkJCQkJCSsgbW9kZV9saWItPnZiYS5jdXJzb3JfYndba10gKyBtb2RlX2xpYi0+dmJhLlJlYWRCYW5kd2lkdGhba10gKyBtb2RlX2xpYi0+dmJhLm1ldGFfcm93X2J3W2tdICsgbW9kZV9saWItPnZiYS5kcHRlX3Jvd19id1trXTsKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhQcmVmZXRjaCA9CisJCQkJCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhQcmVmZXRjaAorCQkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLmN1cnNvcl9id1trXQorCQkJCQkJCQkJKyBkbWxfbWF4MygKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5wcmVmZXRjaF92bV9id1trXSwKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5wcmVmZXRjaF9yb3dfYndba10sCisJCQkJCQkJCQkJCWRtbF9tYXgobW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoW2tdLAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlJlcXVpcmVkUHJlZmV0Y2hQaXhlbERhdGFCV0x1bWFbaV1bal1ba10pCisJCQkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5tZXRhX3Jvd19id1trXSArIG1vZGVfbGliLT52YmEuZHB0ZV9yb3dfYndba10pOworCQkJCX0KKwkJCQlsb2NhbHMtPkJhbmR3aWR0aFdpdGhvdXRQcmVmZXRjaFN1cHBvcnRlZFtpXSA9IHRydWU7CisJCQkJaWYgKG1vZGVfbGliLT52YmEuTWF4aW11bVJlYWRCYW5kd2lkdGhXaXRob3V0UHJlZmV0Y2ggPiBsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV0pIHsKKwkJCQkJbG9jYWxzLT5CYW5kd2lkdGhXaXRob3V0UHJlZmV0Y2hTdXBwb3J0ZWRbaV0gPSBmYWxzZTsKKwkJCQl9CisKKwkJCQlsb2NhbHMtPlByZWZldGNoU3VwcG9ydGVkW2ldW2pdID0gdHJ1ZTsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5NYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhQcmVmZXRjaCA+IGxvY2Fscy0+UmV0dXJuQldQZXJTdGF0ZVtpXSkgeworCQkJCQlsb2NhbHMtPlByZWZldGNoU3VwcG9ydGVkW2ldW2pdID0gZmFsc2U7CisJCQkJfQorCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCQlpZiAobG9jYWxzLT5MaW5lVGltZXNGb3JQcmVmZXRjaFtrXSA8IDIuMAorCQkJCQkJCXx8IGxvY2Fscy0+TGluZXNGb3JNZXRhUFRFW2tdID49IDguMAorCQkJCQkJCXx8IGxvY2Fscy0+TGluZXNGb3JNZXRhQW5kRFBURVJvd1trXSA+PSAxNi4wCisJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5Jc0Vycm9yUmVzdWx0W2ldW2pdW2tdID09IHRydWUpIHsKKwkJCQkJCWxvY2Fscy0+UHJlZmV0Y2hTdXBwb3J0ZWRbaV1bal0gPSBmYWxzZTsKKwkJCQkJfQorCQkJCX0KKwkJCQlsb2NhbHMtPlZSYXRpb0luUHJlZmV0Y2hTdXBwb3J0ZWRbaV1bal0gPSB0cnVlOworCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCQlpZiAobG9jYWxzLT5WUmF0aW9QcmVZW2ldW2pdW2tdID4gNC4wCisJCQkJCQkJfHwgbG9jYWxzLT5WUmF0aW9QcmVDW2ldW2pdW2tdID4gNC4wCisJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5Jc0Vycm9yUmVzdWx0W2ldW2pdW2tdID09IHRydWUpIHsKKwkJCQkJCWxvY2Fscy0+VlJhdGlvSW5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSA9IGZhbHNlOworCQkJCQl9CisJCQkJfQorCQkJfSB3aGlsZSAoKGxvY2Fscy0+UHJlZmV0Y2hTdXBwb3J0ZWRbaV1bal0gIT0gdHJ1ZSB8fCBsb2NhbHMtPlZSYXRpb0luUHJlZmV0Y2hTdXBwb3J0ZWRbaV1bal0gIT0gdHJ1ZSkKKwkJCQkJJiYgbW9kZV9saWItPnZiYS5OZXh0UHJlZmV0Y2hNb2RlIDwgbW9kZV9saWItPnZiYS5NYXhQcmVmZXRjaE1vZGUpOworCisJCQlpZiAobW9kZV9saWItPnZiYS5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSA9PSB0cnVlCisJCQkJCSYmIG1vZGVfbGliLT52YmEuVlJhdGlvSW5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSA9PSB0cnVlKSB7CisJCQkJbW9kZV9saWItPnZiYS5CYW5kd2lkdGhBdmFpbGFibGVGb3JJbW1lZGlhdGVGbGlwID0KKwkJCQkJCW1vZGVfbGliLT52YmEuUmV0dXJuQldQZXJTdGF0ZVtpXTsKKwkJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQkJbW9kZV9saWItPnZiYS5CYW5kd2lkdGhBdmFpbGFibGVGb3JJbW1lZGlhdGVGbGlwID0KKwkJCQkJCQltb2RlX2xpYi0+dmJhLkJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAKKwkJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5jdXJzb3JfYndba10KKwkJCQkJCQkJCS0gZG1sX21heCgKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoW2tdICsgbW9kZV9saWItPnZiYS5xdWFsX3Jvd19id1trXSwKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaEJXW2tdKTsKKwkJCQl9CisJCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJCW1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcEJ5dGVzW2tdID0gMC4wOworCQkJCQlpZiAoKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDIwXzgKKwkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQyMF8xMCkpIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcEJ5dGVzW2tdID0KKwkJCQkJCQkJbW9kZV9saWItPnZiYS5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZVtrXQorCQkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5NZXRhUm93Qnl0ZXNba10KKwkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuRFBURUJ5dGVzUGVyUm93W2tdOworCQkJCQl9CisJCQkJfQorCQkJCW1vZGVfbGliLT52YmEuVG90SW1tZWRpYXRlRmxpcEJ5dGVzID0gMC4wOworCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCQlpZiAoKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDIwXzgKKwkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQyMF8xMCkpIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuVG90SW1tZWRpYXRlRmxpcEJ5dGVzID0KKwkJCQkJCQkJbW9kZV9saWItPnZiYS5Ub3RJbW1lZGlhdGVGbGlwQnl0ZXMKKwkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcEJ5dGVzW2tdOworCQkJCQl9CisJCQkJfQorCisJCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJCUNhbGN1bGF0ZUZsaXBTY2hlZHVsZSgKKwkJCQkJCQltb2RlX2xpYiwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkV4dHJhTGF0ZW5jeSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5LAorCQkJCQkJCW1vZGVfbGliLT52YmEuR1BVVk1NYXhQYWdlVGFibGVMZXZlbHMsCisJCQkJCQkJbW9kZV9saWItPnZiYS5HUFVWTUVuYWJsZSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAsCisJCQkJCQkJbW9kZV9saWItPnZiYS5Ub3RJbW1lZGlhdGVGbGlwQnl0ZXMsCisJCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBCeXRlc1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5WUmF0aW9ba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5Ubm9fYndba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZVtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlc1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRQVEVCeXRlc1BlclJvd1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLmRwdGVfcm93X2hlaWdodFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLm1ldGFfcm93X2hlaWdodFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLnF1YWxfcm93X2J3W2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluSW1tZWRpYXRlRmxpcFtrXSwKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5JbW1lZGlhdGVGbGlwW2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLmZpbmFsX2ZsaXBfYndba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclBpcGVba10pOworCQkJCX0KKwkJCQltb2RlX2xpYi0+dmJhLnRvdGFsX2Rjbl9yZWFkX2J3X3dpdGhfZmxpcCA9IDAuMDsKKwkJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQkJbW9kZV9saWItPnZiYS50b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXAgPQorCQkJCQkJCW1vZGVfbGliLT52YmEudG90YWxfZGNuX3JlYWRfYndfd2l0aF9mbGlwCisJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuY3Vyc29yX2J3W2tdCisJCQkJCQkJCQkrIGRtbF9tYXgzKAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLnByZWZldGNoX3ZtX2J3W2tdLAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLnByZWZldGNoX3Jvd19id1trXSwKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5maW5hbF9mbGlwX2J3W2tdCisJCQkJCQkJCQkJCQkJKyBkbWxfbWF4KAorCQkJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5SZWFkQmFuZHdpZHRoW2tdLAorCQkJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5SZXF1aXJlZFByZWZldGNoUGl4ZWxEYXRhQldMdW1hW2ldW2pdW2tdKSk7CisJCQkJfQorCQkJCW1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclN0YXRlW2ldW2pdID0gdHJ1ZTsKKwkJCQlpZiAobW9kZV9saWItPnZiYS50b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXAKKwkJCQkJCT4gbW9kZV9saWItPnZiYS5SZXR1cm5CV1BlclN0YXRlW2ldKSB7CisJCQkJCW1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclN0YXRlW2ldW2pdID0gZmFsc2U7CisJCQkJfQorCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCQlpZiAobW9kZV9saWItPnZiYS5JbW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yUGlwZVtrXSA9PSBmYWxzZSkgeworCQkJCQkJbW9kZV9saWItPnZiYS5JbW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yU3RhdGVbaV1bal0gPSBmYWxzZTsKKwkJCQkJfQorCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5JbW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yU3RhdGVbaV1bal0gPSBmYWxzZTsKKwkJCX0KKwkJfQorCX0KKworCS8qVmVydGljYWwgQWN0aXZlIEJXIHN1cHBvcnQqLworCWZvciAoaSA9IDA7IGkgPD0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaSsrKSB7CisJCW1vZGVfbGliLT52YmEuTWF4VG90YWxWZXJ0aWNhbEFjdGl2ZUF2YWlsYWJsZUJhbmR3aWR0aFtpXSA9IGRtbF9taW4obW9kZV9saWItPnZiYS5SZXR1cm5CdXNXaWR0aCAqCisJCQkJbW9kZV9saWItPnZiYS5EQ0ZDTEtQZXJTdGF0ZVtpXSwgbW9kZV9saWItPnZiYS5GYWJyaWNBbmREUkFNQmFuZHdpZHRoUGVyU3RhdGVbaV0gKiAxMDAwKSAqCisJCQkJbW9kZV9saWItPnZiYS5NYXhBdmVyYWdlUGVyY2VudE9mSWRlYWxEUkFNQldEaXNwbGF5Q2FuVXNlSW5Ob3JtYWxTeXN0ZW1PcGVyYXRpb24gLyAxMDA7CisJCWlmIChtb2RlX2xpYi0+dmJhLk1heFRvdGFsVkFjdGl2ZVJEQmFuZHdpZHRoIDw9IG1vZGVfbGliLT52YmEuTWF4VG90YWxWZXJ0aWNhbEFjdGl2ZUF2YWlsYWJsZUJhbmR3aWR0aFtpXSkKKwkJCW1vZGVfbGliLT52YmEuVG90YWxWZXJ0aWNhbEFjdGl2ZUJhbmR3aWR0aFN1cHBvcnRbaV0gPSB0cnVlOworCQllbHNlCisJCQltb2RlX2xpYi0+dmJhLlRvdGFsVmVydGljYWxBY3RpdmVCYW5kd2lkdGhTdXBwb3J0W2ldID0gZmFsc2U7CisJfQorCisJLypQVEUgQnVmZmVyIFNpemUgQ2hlY2sqLworCisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJZm9yIChqID0gMDsgaiA8IDI7IGorKykgeworCQkJbG9jYWxzLT5QVEVCdWZmZXJTaXplTm90RXhjZWVkZWRbaV1bal0gPSB0cnVlOworCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJaWYgKGxvY2Fscy0+UFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkWVtpXVtqXVtrXSA9PSBmYWxzZQorCQkJCQkJfHwgbG9jYWxzLT5QVEVCdWZmZXJTaXplTm90RXhjZWVkZWRDW2ldW2pdW2tdID09IGZhbHNlKSB7CisJCQkJCWxvY2Fscy0+UFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkW2ldW2pdID0gZmFsc2U7CisJCQkJfQorCQkJfQorCQl9CisJfQorCS8qQ3Vyc29yIFN1cHBvcnQgQ2hlY2sqLworCW1vZGVfbGliLT52YmEuQ3Vyc29yU3VwcG9ydCA9IHRydWU7CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWZvciAoaiA9IDA7IGogPCAyOyBqKyspIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkN1cnNvcldpZHRoW2tdW2pdID4gMC4wKSB7CisJCQkJaWYgKGRtbF9mbG9vcigKKwkJCQkJCWRtbF9mbG9vcigKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5DdXJzb3JCdWZmZXJTaXplCisJCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLkN1cnNvckNodW5rU2l6ZSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5DdXJzb3JDaHVua1NpemUpICogMTAyNC4wCisJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuQ3Vyc29yV2lkdGhba11bal0KKwkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuQ3Vyc29yQlBQW2tdW2pdCisJCQkJCQkJCQkJLyA4LjApLAorCQkJCQkJMS4wKQorCQkJCQkJKiAobW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pCisJCQkJCQkvIG1vZGVfbGliLT52YmEuVlJhdGlvW2tdIDwgbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seQorCQkJCQkJfHwgKG1vZGVfbGliLT52YmEuQ3Vyc29yQlBQW2tdW2pdID09IDY0LjAKKwkJCQkJCQkJJiYgbW9kZV9saWItPnZiYS5DdXJzb3I2NEJwcFN1cHBvcnQgPT0gZmFsc2UpKSB7CisJCQkJCW1vZGVfbGliLT52YmEuQ3Vyc29yU3VwcG9ydCA9IGZhbHNlOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKwkvKlZhbGlkIFBpdGNoIENoZWNrKi8KKworCW1vZGVfbGliLT52YmEuUGl0Y2hTdXBwb3J0ID0gdHJ1ZTsKKwlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJbG9jYWxzLT5BbGlnbmVkWVBpdGNoW2tdID0gZG1sX2NlaWwoCisJCQkJZG1sX21heChtb2RlX2xpYi0+dmJhLlBpdGNoWVtrXSwgbW9kZV9saWItPnZiYS5WaWV3cG9ydFdpZHRoW2tdKSwKKwkJCQlsb2NhbHMtPk1hY3JvVGlsZVdpZHRoWVtrXSk7CisJCWlmIChsb2NhbHMtPkFsaWduZWRZUGl0Y2hba10gPiBtb2RlX2xpYi0+dmJhLlBpdGNoWVtrXSkgeworCQkJbW9kZV9saWItPnZiYS5QaXRjaFN1cHBvcnQgPSBmYWxzZTsKKwkJfQorCQlpZiAobW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10gPT0gdHJ1ZSkgeworCQkJbG9jYWxzLT5BbGlnbmVkRENDTWV0YVBpdGNoW2tdID0gZG1sX2NlaWwoCisJCQkJCWRtbF9tYXgoCisJCQkJCQkJbW9kZV9saWItPnZiYS5EQ0NNZXRhUGl0Y2hZW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFtrXSksCisJCQkJCTY0LjAgKiBsb2NhbHMtPlJlYWQyNTZCbG9ja1dpZHRoWVtrXSk7CisJCX0gZWxzZSB7CisJCQlsb2NhbHMtPkFsaWduZWREQ0NNZXRhUGl0Y2hba10gPSBtb2RlX2xpYi0+dmJhLkRDQ01ldGFQaXRjaFlba107CisJCX0KKwkJaWYgKGxvY2Fscy0+QWxpZ25lZERDQ01ldGFQaXRjaFtrXSA+IG1vZGVfbGliLT52YmEuRENDTWV0YVBpdGNoWVtrXSkgeworCQkJbW9kZV9saWItPnZiYS5QaXRjaFN1cHBvcnQgPSBmYWxzZTsKKwkJfQorCQlpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfNjQKKwkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8zMgorCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzE2CisJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV9tb25vXzE2CisJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV9tb25vXzgpIHsKKwkJCWxvY2Fscy0+QWxpZ25lZENQaXRjaFtrXSA9IGRtbF9jZWlsKAorCQkJCQlkbWxfbWF4KAorCQkJCQkJCW1vZGVfbGliLT52YmEuUGl0Y2hDW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFtrXSAvIDIuMCksCisJCQkJCWxvY2Fscy0+TWFjcm9UaWxlV2lkdGhDW2tdKTsKKwkJfSBlbHNlIHsKKwkJCWxvY2Fscy0+QWxpZ25lZENQaXRjaFtrXSA9IG1vZGVfbGliLT52YmEuUGl0Y2hDW2tdOworCQl9CisJCWlmIChsb2NhbHMtPkFsaWduZWRDUGl0Y2hba10gPiBtb2RlX2xpYi0+dmJhLlBpdGNoQ1trXSkgeworCQkJbW9kZV9saWItPnZiYS5QaXRjaFN1cHBvcnQgPSBmYWxzZTsKKwkJfQorCX0KKwkvKk1vZGUgU3VwcG9ydCwgVm9sdGFnZSBTdGF0ZSBhbmQgU09DIENvbmZpZ3VyYXRpb24qLworCisJZm9yIChpID0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaSA+PSAwOyBpLS0pIHsKKwkJZm9yIChqID0gMDsgaiA8IDI7IGorKykgeworCQkJZW51bSBkbV92YWxpZGF0aW9uX3N0YXR1cyBzdGF0dXMgPSBETUxfVkFMSURBVElPTl9PSzsKKworCQkJaWYgKG1vZGVfbGliLT52YmEuU2NhbGVSYXRpb0FuZFRhcHNTdXBwb3J0ICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9TQ0FMRV9SQVRJT19UQVA7CisJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlRm9ybWF0UGl4ZWxBbmRTY2FuU3VwcG9ydCAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfU09VUkNFX1BJWEVMX0ZPUk1BVDsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5WaWV3cG9ydFNpemVTdXBwb3J0W2ldICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9WSUVXUE9SVF9TSVpFOworCQkJfSBlbHNlIGlmIChsb2NhbHMtPkRJT1N1cHBvcnRbaV0gIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX0RJT19TVVBQT1JUOworCQkJfSBlbHNlIGlmIChsb2NhbHMtPk5vdEVub3VnaERTQ1VuaXRzW2ldICE9IGZhbHNlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfTk9UX0VOT1VHSF9EU0M7CisJCQl9IGVsc2UgaWYgKGxvY2Fscy0+RFNDQ0xLUmVxdWlyZWRNb3JlVGhhblN1cHBvcnRlZFtpXSAhPSBmYWxzZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX0RTQ19DTEtfUkVRVUlSRUQ7CisJCQl9IGVsc2UgaWYgKGxvY2Fscy0+VXJnZW50TGF0ZW5jeVN1cHBvcnRbaV1bal0gIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX1VSR0VOVF9MQVRFTkNZOworCQkJfSBlbHNlIGlmIChsb2NhbHMtPlJPQlN1cHBvcnRbaV0gIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX1JFT1JERVJJTkdfQlVGRkVSOworCQkJfSBlbHNlIGlmIChsb2NhbHMtPkRJU1BDTEtfRFBQQ0xLX1N1cHBvcnRbaV1bal0gIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX0RJU1BDTEtfRFBQQ0xLOworCQkJfSBlbHNlIGlmIChsb2NhbHMtPlRvdGFsQXZhaWxhYmxlUGlwZXNTdXBwb3J0W2ldW2pdICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9UT1RBTF9BVkFJTEFCTEVfUElQRVM7CisJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuTnVtYmVyT2ZPVEdTdXBwb3J0ICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9OVU1fT1RHOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja01vZGVTdXBwb3J0ICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9XUklURUJBQ0tfTU9ERTsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5U3VwcG9ydCAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfV1JJVEVCQUNLX0xBVEVOQ1k7CisJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrU2NhbGVSYXRpb0FuZFRhcHNTdXBwb3J0ICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9XUklURUJBQ0tfU0NBTEVfUkFUSU9fVEFQOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLkN1cnNvclN1cHBvcnQgIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX0NVUlNPUl9TVVBQT1JUOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlBpdGNoU3VwcG9ydCAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfUElUQ0hfU1VQUE9SVDsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfUFJFRkVUQ0hfU1VQUE9SVDsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5Ub3RhbFZlcnRpY2FsQWN0aXZlQmFuZHdpZHRoU3VwcG9ydFtpXSAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfVE9UQUxfVl9BQ1RJVkVfQlc7CisJCQl9IGVsc2UgaWYgKGxvY2Fscy0+VlJhdGlvSW5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfVl9SQVRJT19QUkVGRVRDSDsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5QVEVCdWZmZXJTaXplTm90RXhjZWVkZWRbaV1bal0gIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX1BURV9CVUZGRVJfU0laRTsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Ob25zdXBwb3J0ZWREU0NJbnB1dEJQQyAhPSBmYWxzZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX0RTQ19JTlBVVF9CUEM7CisJCQl9CisKKwkJCWlmIChzdGF0dXMgPT0gRE1MX1ZBTElEQVRJT05fT0spIHsKKwkJCQlsb2NhbHMtPk1vZGVTdXBwb3J0W2ldW2pdID0gdHJ1ZTsKKwkJCX0gZWxzZSB7CisJCQkJbG9jYWxzLT5Nb2RlU3VwcG9ydFtpXVtqXSA9IGZhbHNlOworCQkJfQorCQkJbG9jYWxzLT5WYWxpZGF0aW9uU3RhdHVzW2ldID0gc3RhdHVzOworCQl9CisJfQorCXsKKwkJdW5zaWduZWQgaW50IE1heGltdW1NUENDb21iaW5lID0gMDsKKwkJbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWwgPSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzICsgMTsKKwkJZm9yIChpID0gbW9kZV9saWItPnZiYS5Wb2x0YWdlT3ZlcnJpZGVMZXZlbDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJCWlmIChsb2NhbHMtPk1vZGVTdXBwb3J0W2ldWzBdID09IHRydWUgfHwgbG9jYWxzLT5Nb2RlU3VwcG9ydFtpXVsxXSA9PSB0cnVlKSB7CisJCQkJbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWwgPSBpOworCQkJCWlmIChsb2NhbHMtPk1vZGVTdXBwb3J0W2ldWzFdID09IHRydWUgJiYgKGxvY2Fscy0+TW9kZVN1cHBvcnRbaV1bMF0gPT0gZmFsc2UKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEuV2hlblRvRG9NUENDb21iaW5lID09IGRtX21wY19hbHdheXNfd2hlbl9wb3NzaWJsZSkpIHsKKwkJCQkJTWF4aW11bU1QQ0NvbWJpbmUgPSAxOworCQkJCX0gZWxzZSB7CisJCQkJCU1heGltdW1NUENDb21iaW5lID0gMDsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJbW9kZV9saWItPnZiYS5JbW1lZGlhdGVGbGlwU3VwcG9ydCA9CisJCQlsb2NhbHMtPkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWRGb3JTdGF0ZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1bTWF4aW11bU1QQ0NvbWJpbmVdOworCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCW1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba10gPSBsb2NhbHMtPk5vT2ZEUFBbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdW01heGltdW1NUENDb21iaW5lXVtrXTsKKwkJCWxvY2Fscy0+RFBQQ0xLW2tdID0gbG9jYWxzLT5SZXF1aXJlZERQUENMS1ttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1bTWF4aW11bU1QQ0NvbWJpbmVdW2tdOworCQl9CisJCW1vZGVfbGliLT52YmEuRElTUENMSyA9IGxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVtNYXhpbXVtTVBDQ29tYmluZV07CisJCW1vZGVfbGliLT52YmEubWF4TXBjQ29tYiA9IE1heGltdW1NUENDb21iaW5lOworCX0KKwltb2RlX2xpYi0+dmJhLkRDRkNMSyA9IG1vZGVfbGliLT52YmEuRENGQ0xLUGVyU3RhdGVbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdOworCW1vZGVfbGliLT52YmEuRFJBTVNwZWVkID0gbW9kZV9saWItPnZiYS5EUkFNU3BlZWRQZXJTdGF0ZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF07CisJbW9kZV9saWItPnZiYS5GYWJyaWNDbG9jayA9IG1vZGVfbGliLT52YmEuRmFicmljQ2xvY2tQZXJTdGF0ZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF07CisJbW9kZV9saWItPnZiYS5TT0NDTEsgPSBtb2RlX2xpYi0+dmJhLlNPQ0NMS1BlclN0YXRlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXTsKKwltb2RlX2xpYi0+dmJhLlJldHVybkJXID0gbG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXTsKKwltb2RlX2xpYi0+dmJhLkZhYnJpY0FuZERSQU1CYW5kd2lkdGggPSBsb2NhbHMtPkZhYnJpY0FuZERSQU1CYW5kd2lkdGhQZXJTdGF0ZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF07CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2tdID09IGspIHsKKwkJCW1vZGVfbGliLT52YmEuT0RNQ29tYmluZUVuYWJsZWRba10gPQorCQkJCQlsb2NhbHMtPk9ETUNvbWJpbmVFbmFibGVQZXJTdGF0ZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba107CisJCX0gZWxzZSB7CisJCQltb2RlX2xpYi0+dmJhLk9ETUNvbWJpbmVFbmFibGVkW2tdID0gMDsKKwkJfQorCQltb2RlX2xpYi0+dmJhLkRTQ0VuYWJsZWRba10gPQorCQkJCWxvY2Fscy0+UmVxdWlyZXNEU0NbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdW2tdOworCQltb2RlX2xpYi0+dmJhLk91dHB1dEJwcFtrXSA9CisJCQkJbG9jYWxzLT5PdXRwdXRCcHBQZXJTdGF0ZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba107CisJfQorfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24yMC9kaXNwbGF5X21vZGVfdmJhXzIwdjIuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjAvZGlzcGxheV9tb2RlX3ZiYV8yMHYyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk4OWQzYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjAvZGlzcGxheV9tb2RlX3ZiYV8yMHYyLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2lmbmRlZiBfRENOMjBWMl9ESVNQTEFZX01PREVfVkJBX0hfCisjZGVmaW5lIF9EQ04yMFYyX0RJU1BMQVlfTU9ERV9WQkFfSF8KKwordm9pZCBkbWwyMHYyX3JlY2FsY3VsYXRlKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYik7Cit2b2lkIGRtbDIwdjJfTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25maWd1cmF0aW9uRnVsbChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjAvZGlzcGxheV9ycV9kbGdfY2FsY18yMHYyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjIwL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjB2Mi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkOGJmNWYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjIwL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjB2Mi5jCkBAIC0wLDAgKzEsMTcwMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2luY2x1ZGUgIi4uL2Rpc3BsYXlfbW9kZV9saWIuaCIKKyNpbmNsdWRlICIuLi9kaXNwbGF5X21vZGVfdmJhLmgiCisjaW5jbHVkZSAiZGlzcGxheV9ycV9kbGdfY2FsY18yMHYyLmgiCisKKy8vIEZ1bmN0aW9uOiBkbWwyMHYyX3JxX2RsZ19nZXRfcnFfcGFyYW1zCisvLyAgQ2FsY3VsYXRlIHJlcXVlc3RvciByZWxhdGVkIHBhcmFtZXRlcnMgdGhhdCByZWdpc3RlciBkZWZpbml0aW9uIGFnbm9zdGljCisvLyAgKGkuZS4gdGhpcyBsYXllciBkb2VzIHRyeSB0byBzZXBhcmF0ZSByZWFsIHZhbHVlcyBmcm9tIHJlZ2lzdGVyIGRlZmluaXRpb24pCisvLyBJbnB1dDoKKy8vICBwaXBlX3NyY19wYXJhbSAtIHBpcGUgc291cmNlIGNvbmZpZ3VyYXRpb24gKGUuZy4gdnAsIHBpdGNoLCBldGMuKQorLy8gT3V0cHV0OgorLy8gIHJxX3BhcmFtIC0gdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2V0dXAgUlEgKGUuZy4gc3dhdGhfaGVpZ2h0LCBwbGFuZTFfYWRkciwgZXRjLikKKy8vCitzdGF0aWMgdm9pZCBkbWwyMHYyX3JxX2RsZ19nZXRfcnFfcGFyYW1zKAorCQlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRpc3BsYXlfcnFfcGFyYW1zX3N0ICogcnFfcGFyYW0sCisJCWNvbnN0IGRpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1zX3N0IHBpcGVfc3JjX3BhcmFtKTsKKworLy8gRnVuY3Rpb246IGRtbDIwdjJfcnFfZGxnX2dldF9kbGdfcGFyYW1zCisvLyAgQ2FsY3VsYXRlIGRlYWRsaW5lIHJlbGF0ZWQgcGFyYW1ldGVycworLy8KK3N0YXRpYyB2b2lkIGRtbDIwdjJfcnFfZGxnX2dldF9kbGdfcGFyYW1zKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKmUyZV9waXBlX3BhcmFtLAorCQljb25zdCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLAorCQljb25zdCB1bnNpZ25lZCBpbnQgcGlwZV9pZHgsCisJCWRpc3BsYXlfZGxnX3JlZ3Nfc3QgKmRpc3BfZGxnX3JlZ3MsCisJCWRpc3BsYXlfdHR1X3JlZ3Nfc3QgKmRpc3BfdHR1X3JlZ3MsCisJCWNvbnN0IGRpc3BsYXlfcnFfZGxnX3BhcmFtc19zdCBycV9kbGdfcGFyYW0sCisJCWNvbnN0IGRpc3BsYXlfZGxnX3N5c19wYXJhbXNfc3QgZGxnX3N5c19wYXJhbSwKKwkJY29uc3QgYm9vbCBjc3RhdGVfZW4sCisJCWNvbnN0IGJvb2wgcHN0YXRlX2VuKTsKKy8qCisgKiBOT1RFOgorICogICBUaGlzIGZpbGUgaXMgZ2NjLXBhcnNlYWJsZSBIVyBnb3NwZWwsIGNvbWluZyBzdHJhaWdodCBmcm9tIEhXIGVuZ2luZWVycy4KKyAqCisgKiBJdCBkb2Vzbid0IGFkaGVyZSB0byBMaW51eCBrZXJuZWwgc3R5bGUgYW5kIHNvbWV0aW1lcyB3aWxsIGRvIHRoaW5ncyBpbiBvZGQKKyAqIHdheXMuIFVubGVzcyB0aGVyZSBpcyBzb21ldGhpbmcgY2xlYXJseSB3cm9uZyB3aXRoIGl0IHRoZSBjb2RlIHNob3VsZAorICogcmVtYWluIGFzLWlzIGFzIGl0IHByb3ZpZGVzIHVzIHdpdGggYSBndWFyYW50ZWUgZnJvbSBIVyB0aGF0IGl0IGlzIGNvcnJlY3QuCisgKi8KKworc3RhdGljIHZvaWQgY2FsY3VsYXRlX3R0dV9jdXJzb3Ioc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIsCisJCWRvdWJsZSAqcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyLAorCQlkb3VibGUgcmVmY2xrX2ZyZXFfaW5fbWh6LAorCQlkb3VibGUgcmVmX2ZyZXFfdG9fcGl4X2ZyZXEsCisJCWRvdWJsZSBoc2NhbGVfcGl4ZWxfcmF0ZV9sLAorCQlkb3VibGUgaHNjbF9yYXRpbywKKwkJZG91YmxlIHZyYXRpb19wcmVfbCwKKwkJZG91YmxlIHZyYXRpb19sLAorCQl1bnNpZ25lZCBpbnQgY3VyX3dpZHRoLAorCQllbnVtIGN1cnNvcl9icHAgY3VyX2JwcCk7CisKKyNpbmNsdWRlICIuLi9kbWxfaW5saW5lX2RlZnMuaCIKKworc3RhdGljIHVuc2lnbmVkIGludCBnZXRfYnl0ZXNfcGVyX2VsZW1lbnQoZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIHNvdXJjZV9mb3JtYXQsIGJvb2wgaXNfY2hyb21hKQoreworCXVuc2lnbmVkIGludCByZXRfdmFsID0gMDsKKworCWlmIChzb3VyY2VfZm9ybWF0ID09IGRtXzQ0NF8xNikgeworCQlpZiAoIWlzX2Nocm9tYSkKKwkJCXJldF92YWwgPSAyOworCX0gZWxzZSBpZiAoc291cmNlX2Zvcm1hdCA9PSBkbV80NDRfMzIpIHsKKwkJaWYgKCFpc19jaHJvbWEpCisJCQlyZXRfdmFsID0gNDsKKwl9IGVsc2UgaWYgKHNvdXJjZV9mb3JtYXQgPT0gZG1fNDQ0XzY0KSB7CisJCWlmICghaXNfY2hyb21hKQorCQkJcmV0X3ZhbCA9IDg7CisJfSBlbHNlIGlmIChzb3VyY2VfZm9ybWF0ID09IGRtXzQyMF84KSB7CisJCWlmIChpc19jaHJvbWEpCisJCQlyZXRfdmFsID0gMjsKKwkJZWxzZQorCQkJcmV0X3ZhbCA9IDE7CisJfSBlbHNlIGlmIChzb3VyY2VfZm9ybWF0ID09IGRtXzQyMF8xMCkgeworCQlpZiAoaXNfY2hyb21hKQorCQkJcmV0X3ZhbCA9IDQ7CisJCWVsc2UKKwkJCXJldF92YWwgPSAyOworCX0gZWxzZSBpZiAoc291cmNlX2Zvcm1hdCA9PSBkbV80NDRfOCkgeworCQlyZXRfdmFsID0gMTsKKwl9CisJcmV0dXJuIHJldF92YWw7Cit9CisKK3N0YXRpYyBib29sIGlzX2R1YWxfcGxhbmUoZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIHNvdXJjZV9mb3JtYXQpCit7CisJYm9vbCByZXRfdmFsID0gMDsKKworCWlmICgoc291cmNlX2Zvcm1hdCA9PSBkbV80MjBfOCkgfHwgKHNvdXJjZV9mb3JtYXQgPT0gZG1fNDIwXzEwKSkKKwkJcmV0X3ZhbCA9IDE7CisKKwlyZXR1cm4gcmV0X3ZhbDsKK30KKworc3RhdGljIGRvdWJsZSBnZXRfcmVmY3ljX3Blcl9kZWxpdmVyeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRvdWJsZSByZWZjbGtfZnJlcV9pbl9taHosCisJCWRvdWJsZSBwY2xrX2ZyZXFfaW5fbWh6LAorCQlib29sIG9kbV9jb21iaW5lLAorCQl1bnNpZ25lZCBpbnQgcmVjb3V0X3dpZHRoLAorCQl1bnNpZ25lZCBpbnQgaGFjdGl2ZSwKKwkJZG91YmxlIHZyYXRpbywKKwkJZG91YmxlIGhzY2FsZV9waXhlbF9yYXRlLAorCQl1bnNpZ25lZCBpbnQgZGVsaXZlcnlfd2lkdGgsCisJCXVuc2lnbmVkIGludCByZXFfcGVyX3N3YXRoX3ViKQoreworCWRvdWJsZSByZWZjeWNfcGVyX2RlbGl2ZXJ5ID0gMC4wOworCisJaWYgKHZyYXRpbyA8PSAxLjApIHsKKwkJaWYgKG9kbV9jb21iaW5lKQorCQkJcmVmY3ljX3Blcl9kZWxpdmVyeSA9IChkb3VibGUpIHJlZmNsa19mcmVxX2luX21oegorCQkJCQkqIGRtbF9taW4oKGRvdWJsZSkgcmVjb3V0X3dpZHRoLCAoZG91YmxlKSBoYWN0aXZlIC8gMi4wKQorCQkJCQkvIHBjbGtfZnJlcV9pbl9taHogLyAoZG91YmxlKSByZXFfcGVyX3N3YXRoX3ViOworCQllbHNlCisJCQlyZWZjeWNfcGVyX2RlbGl2ZXJ5ID0gKGRvdWJsZSkgcmVmY2xrX2ZyZXFfaW5fbWh6ICogKGRvdWJsZSkgcmVjb3V0X3dpZHRoCisJCQkJCS8gcGNsa19mcmVxX2luX21oeiAvIChkb3VibGUpIHJlcV9wZXJfc3dhdGhfdWI7CisJfSBlbHNlIHsKKwkJcmVmY3ljX3Blcl9kZWxpdmVyeSA9IChkb3VibGUpIHJlZmNsa19mcmVxX2luX21oeiAqIChkb3VibGUpIGRlbGl2ZXJ5X3dpZHRoCisJCQkJLyAoZG91YmxlKSBoc2NhbGVfcGl4ZWxfcmF0ZSAvIChkb3VibGUpIHJlcV9wZXJfc3dhdGhfdWI7CisJfQorCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcmVmY2xrX2ZyZXFfaW5fbWh6ID0gJTMuMmZcbiIsIF9fZnVuY19fLCByZWZjbGtfZnJlcV9pbl9taHopOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHBjbGtfZnJlcV9pbl9taHogICA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgcGNsa19mcmVxX2luX21oeik7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcmVjb3V0X3dpZHRoICAgICAgID0gJWRcbiIsIF9fZnVuY19fLCByZWNvdXRfd2lkdGgpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHZyYXRpbyAgICAgICAgICAgICA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgdnJhdGlvKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZXFfcGVyX3N3YXRoX3ViICAgPSAlZFxuIiwgX19mdW5jX18sIHJlcV9wZXJfc3dhdGhfdWIpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHJlZmN5Y19wZXJfZGVsaXZlcnk9ICUzLjJmXG4iLCBfX2Z1bmNfXywgcmVmY3ljX3Blcl9kZWxpdmVyeSk7CisKKwlyZXR1cm4gcmVmY3ljX3Blcl9kZWxpdmVyeTsKKworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGdldF9ibGtfc2l6ZV9ieXRlcyhjb25zdCBlbnVtIHNvdXJjZV9tYWNyb190aWxlX3NpemUgdGlsZV9zaXplKQoreworCWlmICh0aWxlX3NpemUgPT0gZG1fMjU2a190aWxlKQorCQlyZXR1cm4gKDI1NiAqIDEwMjQpOworCWVsc2UgaWYgKHRpbGVfc2l6ZSA9PSBkbV82NGtfdGlsZSkKKwkJcmV0dXJuICg2NCAqIDEwMjQpOworCWVsc2UKKwkJcmV0dXJuICg0ICogMTAyNCk7Cit9CisKK3N0YXRpYyB2b2lkIGV4dHJhY3RfcnFfc2l6aW5nX3JlZ3Moc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkaXNwbGF5X2RhdGFfcnFfcmVnc19zdCAqcnFfcmVncywKKwkJY29uc3QgZGlzcGxheV9kYXRhX3JxX3NpemluZ19wYXJhbXNfc3QgcnFfc2l6aW5nKQoreworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHJxX3NpemluZyBwYXJhbVxuIiwgX19mdW5jX18pOworCXByaW50X19kYXRhX3JxX3NpemluZ19wYXJhbXNfc3QobW9kZV9saWIsIHJxX3NpemluZyk7CisKKwlycV9yZWdzLT5jaHVua19zaXplID0gZG1sX2xvZzIocnFfc2l6aW5nLmNodW5rX2J5dGVzKSAtIDEwOworCisJaWYgKHJxX3NpemluZy5taW5fY2h1bmtfYnl0ZXMgPT0gMCkKKwkJcnFfcmVncy0+bWluX2NodW5rX3NpemUgPSAwOworCWVsc2UKKwkJcnFfcmVncy0+bWluX2NodW5rX3NpemUgPSBkbWxfbG9nMihycV9zaXppbmcubWluX2NodW5rX2J5dGVzKSAtIDggKyAxOworCisJcnFfcmVncy0+bWV0YV9jaHVua19zaXplID0gZG1sX2xvZzIocnFfc2l6aW5nLm1ldGFfY2h1bmtfYnl0ZXMpIC0gMTA7CisJaWYgKHJxX3NpemluZy5taW5fbWV0YV9jaHVua19ieXRlcyA9PSAwKQorCQlycV9yZWdzLT5taW5fbWV0YV9jaHVua19zaXplID0gMDsKKwllbHNlCisJCXJxX3JlZ3MtPm1pbl9tZXRhX2NodW5rX3NpemUgPSBkbWxfbG9nMihycV9zaXppbmcubWluX21ldGFfY2h1bmtfYnl0ZXMpIC0gNiArIDE7CisKKwlycV9yZWdzLT5kcHRlX2dyb3VwX3NpemUgPSBkbWxfbG9nMihycV9zaXppbmcuZHB0ZV9ncm91cF9ieXRlcykgLSA2OworCXJxX3JlZ3MtPm1wdGVfZ3JvdXBfc2l6ZSA9IGRtbF9sb2cyKHJxX3NpemluZy5tcHRlX2dyb3VwX2J5dGVzKSAtIDY7Cit9CisKK3N0YXRpYyB2b2lkIGV4dHJhY3RfcnFfcmVncyhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRpc3BsYXlfcnFfcmVnc19zdCAqcnFfcmVncywKKwkJY29uc3QgZGlzcGxheV9ycV9wYXJhbXNfc3QgcnFfcGFyYW0pCit7CisJdW5zaWduZWQgaW50IGRldGlsZV9idWZfc2l6ZV9pbl9ieXRlcyA9IG1vZGVfbGliLT5pcC5kZXRfYnVmZmVyX3NpemVfa2J5dGVzICogMTAyNDsKKwl1bnNpZ25lZCBpbnQgZGV0aWxlX2J1Zl9wbGFuZTFfYWRkciA9IDA7CisKKwlleHRyYWN0X3JxX3NpemluZ19yZWdzKG1vZGVfbGliLCAmKHJxX3JlZ3MtPnJxX3JlZ3NfbCksIHJxX3BhcmFtLnNpemluZy5ycV9sKTsKKworCXJxX3JlZ3MtPnJxX3JlZ3NfbC5wdGVfcm93X2hlaWdodF9saW5lYXIgPSBkbWxfZmxvb3IoZG1sX2xvZzIocnFfcGFyYW0uZGxnLnJxX2wuZHB0ZV9yb3dfaGVpZ2h0KSwKKwkJCTEpIC0gMzsKKworCWlmIChycV9wYXJhbS55dXY0MjApIHsKKwkJZXh0cmFjdF9ycV9zaXppbmdfcmVncyhtb2RlX2xpYiwgJihycV9yZWdzLT5ycV9yZWdzX2MpLCBycV9wYXJhbS5zaXppbmcucnFfYyk7CisJCXJxX3JlZ3MtPnJxX3JlZ3NfYy5wdGVfcm93X2hlaWdodF9saW5lYXIgPSBkbWxfZmxvb3IoZG1sX2xvZzIocnFfcGFyYW0uZGxnLnJxX2MuZHB0ZV9yb3dfaGVpZ2h0KSwKKwkJCQkxKSAtIDM7CisJfQorCisJcnFfcmVncy0+cnFfcmVnc19sLnN3YXRoX2hlaWdodCA9IGRtbF9sb2cyKHJxX3BhcmFtLmRsZy5ycV9sLnN3YXRoX2hlaWdodCk7CisJcnFfcmVncy0+cnFfcmVnc19jLnN3YXRoX2hlaWdodCA9IGRtbF9sb2cyKHJxX3BhcmFtLmRsZy5ycV9jLnN3YXRoX2hlaWdodCk7CisKKwkvLyBGSVhNRTogdGFrZSB0aGUgbWF4IGJldHdlZW4gbHVtYSwgY2hyb21hIGNodW5rIHNpemU/CisJLy8gb2theSBmb3Igbm93LCBhcyB3ZSBhcmUgc2V0dGluZyBjaHVua19ieXRlcyB0byA4a2IgYW55d2F5cworCWlmIChycV9wYXJhbS5zaXppbmcucnFfbC5jaHVua19ieXRlcyA+PSAzMiAqIDEwMjQpIHsgLy8zMmtiCisJCXJxX3JlZ3MtPmRycV9leHBhbnNpb25fbW9kZSA9IDA7CisJfSBlbHNlIHsKKwkJcnFfcmVncy0+ZHJxX2V4cGFuc2lvbl9tb2RlID0gMjsKKwl9CisJcnFfcmVncy0+cHJxX2V4cGFuc2lvbl9tb2RlID0gMTsKKwlycV9yZWdzLT5tcnFfZXhwYW5zaW9uX21vZGUgPSAxOworCXJxX3JlZ3MtPmNycV9leHBhbnNpb25fbW9kZSA9IDE7CisKKwlpZiAocnFfcGFyYW0ueXV2NDIwKSB7CisJCWlmICgoZG91YmxlKSBycV9wYXJhbS5taXNjLnJxX2wuc3RvcmVkX3N3YXRoX2J5dGVzCisJCQkJLyAoZG91YmxlKSBycV9wYXJhbS5taXNjLnJxX2Muc3RvcmVkX3N3YXRoX2J5dGVzIDw9IDEuNSkgeworCQkJZGV0aWxlX2J1Zl9wbGFuZTFfYWRkciA9IChkZXRpbGVfYnVmX3NpemVfaW5fYnl0ZXMgLyAyLjAgLyA2NC4wKTsgLy8gaGFsZiB0byBjaHJvbWEKKwkJfSBlbHNlIHsKKwkJCWRldGlsZV9idWZfcGxhbmUxX2FkZHIgPSBkbWxfcm91bmRfdG9fbXVsdGlwbGUoKHVuc2lnbmVkIGludCkgKCgyLjAgKiBkZXRpbGVfYnVmX3NpemVfaW5fYnl0ZXMpIC8gMy4wKSwKKwkJCQkJMjU2LAorCQkJCQkwKSAvIDY0LjA7IC8vIDIvMyB0byBjaHJvbWEKKwkJfQorCX0KKwlycV9yZWdzLT5wbGFuZTFfYmFzZV9hZGRyZXNzID0gZGV0aWxlX2J1Zl9wbGFuZTFfYWRkcjsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlX2RldF9idWZfc3BsaXQoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkaXNwbGF5X3JxX3BhcmFtc19zdCAqcnFfcGFyYW0sCisJCWNvbnN0IGRpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1zX3N0IHBpcGVfc3JjX3BhcmFtKQoreworCXVuc2lnbmVkIGludCB0b3RhbF9zd2F0aF9ieXRlcyA9IDA7CisJdW5zaWduZWQgaW50IHN3YXRoX2J5dGVzX2wgPSAwOworCXVuc2lnbmVkIGludCBzd2F0aF9ieXRlc19jID0gMDsKKwl1bnNpZ25lZCBpbnQgZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfbCA9IDA7CisJdW5zaWduZWQgaW50IGZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2MgPSAwOworCWJvb2wgcmVxMTI4X2wgPSAwOworCWJvb2wgcmVxMTI4X2MgPSAwOworCWJvb2wgc3VyZl9saW5lYXIgPSAocGlwZV9zcmNfcGFyYW0uc3dfbW9kZSA9PSBkbV9zd19saW5lYXIpOworCWJvb2wgc3VyZl92ZXJ0ID0gKHBpcGVfc3JjX3BhcmFtLnNvdXJjZV9zY2FuID09IGRtX3ZlcnQpOworCXVuc2lnbmVkIGludCBsb2cyX3N3YXRoX2hlaWdodF9sID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9zd2F0aF9oZWlnaHRfYyA9IDA7CisJdW5zaWduZWQgaW50IGRldGlsZV9idWZfc2l6ZV9pbl9ieXRlcyA9IG1vZGVfbGliLT5pcC5kZXRfYnVmZmVyX3NpemVfa2J5dGVzICogMTAyNDsKKworCWZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2wgPSBycV9wYXJhbS0+bWlzYy5ycV9sLmZ1bGxfc3dhdGhfYnl0ZXM7CisJZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfYyA9IHJxX3BhcmFtLT5taXNjLnJxX2MuZnVsbF9zd2F0aF9ieXRlczsKKworCWlmIChycV9wYXJhbS0+eXV2NDIwXzEwYnBjKSB7CisJCWZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2wgPSBkbWxfcm91bmRfdG9fbXVsdGlwbGUocnFfcGFyYW0tPm1pc2MucnFfbC5mdWxsX3N3YXRoX2J5dGVzICogMiAvIDMsCisJCQkJMjU2LAorCQkJCTEpICsgMjU2OworCQlmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9jID0gZG1sX3JvdW5kX3RvX211bHRpcGxlKHJxX3BhcmFtLT5taXNjLnJxX2MuZnVsbF9zd2F0aF9ieXRlcyAqIDIgLyAzLAorCQkJCTI1NiwKKwkJCQkxKSArIDI1NjsKKwl9CisKKwlpZiAocnFfcGFyYW0tPnl1djQyMCkgeworCQl0b3RhbF9zd2F0aF9ieXRlcyA9IDIgKiBmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9sICsgMiAqIGZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2M7CisKKwkJaWYgKHRvdGFsX3N3YXRoX2J5dGVzIDw9IGRldGlsZV9idWZfc2l6ZV9pbl9ieXRlcykgeyAvL2Z1bGwgMjU2YiByZXF1ZXN0CisJCQlyZXExMjhfbCA9IDA7CisJCQlyZXExMjhfYyA9IDA7CisJCQlzd2F0aF9ieXRlc19sID0gZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfbDsKKwkJCXN3YXRoX2J5dGVzX2MgPSBmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9jOworCQl9IGVsc2UgeyAvLzEyOGIgcmVxdWVzdCAoZm9yIGx1bWEgb25seSBmb3IgeXV2NDIwIDhicGMpCisJCQlyZXExMjhfbCA9IDE7CisJCQlyZXExMjhfYyA9IDA7CisJCQlzd2F0aF9ieXRlc19sID0gZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfbCAvIDI7CisJCQlzd2F0aF9ieXRlc19jID0gZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfYzsKKwkJfQorCQkvLyBOb3RlOiBhc3N1bXB0aW9uLCB0aGUgY29uZmlnIHRoYXQgcGFzcyBpbiB3aWxsIGZpdCBpbnRvCisJCS8vICAgICAgIHRoZSBkZXRpbGVkIGJ1ZmZlci4KKwl9IGVsc2UgeworCQl0b3RhbF9zd2F0aF9ieXRlcyA9IDIgKiBmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9sOworCisJCWlmICh0b3RhbF9zd2F0aF9ieXRlcyA8PSBkZXRpbGVfYnVmX3NpemVfaW5fYnl0ZXMpCisJCQlyZXExMjhfbCA9IDA7CisJCWVsc2UKKwkJCXJlcTEyOF9sID0gMTsKKworCQlzd2F0aF9ieXRlc19sID0gdG90YWxfc3dhdGhfYnl0ZXM7CisJCXN3YXRoX2J5dGVzX2MgPSAwOworCX0KKwlycV9wYXJhbS0+bWlzYy5ycV9sLnN0b3JlZF9zd2F0aF9ieXRlcyA9IHN3YXRoX2J5dGVzX2w7CisJcnFfcGFyYW0tPm1pc2MucnFfYy5zdG9yZWRfc3dhdGhfYnl0ZXMgPSBzd2F0aF9ieXRlc19jOworCisJaWYgKHN1cmZfbGluZWFyKSB7CisJCWxvZzJfc3dhdGhfaGVpZ2h0X2wgPSAwOworCQlsb2cyX3N3YXRoX2hlaWdodF9jID0gMDsKKwl9IGVsc2UgaWYgKCFzdXJmX3ZlcnQpIHsKKwkJbG9nMl9zd2F0aF9oZWlnaHRfbCA9IGRtbF9sb2cyKHJxX3BhcmFtLT5taXNjLnJxX2wuYmxrMjU2X2hlaWdodCkgLSByZXExMjhfbDsKKwkJbG9nMl9zd2F0aF9oZWlnaHRfYyA9IGRtbF9sb2cyKHJxX3BhcmFtLT5taXNjLnJxX2MuYmxrMjU2X2hlaWdodCkgLSByZXExMjhfYzsKKwl9IGVsc2UgeworCQlsb2cyX3N3YXRoX2hlaWdodF9sID0gZG1sX2xvZzIocnFfcGFyYW0tPm1pc2MucnFfbC5ibGsyNTZfd2lkdGgpIC0gcmVxMTI4X2w7CisJCWxvZzJfc3dhdGhfaGVpZ2h0X2MgPSBkbWxfbG9nMihycV9wYXJhbS0+bWlzYy5ycV9jLmJsazI1Nl93aWR0aCkgLSByZXExMjhfYzsKKwl9CisJcnFfcGFyYW0tPmRsZy5ycV9sLnN3YXRoX2hlaWdodCA9IDEgPDwgbG9nMl9zd2F0aF9oZWlnaHRfbDsKKwlycV9wYXJhbS0+ZGxnLnJxX2Muc3dhdGhfaGVpZ2h0ID0gMSA8PCBsb2cyX3N3YXRoX2hlaWdodF9jOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcmVxMTI4X2wgPSAlMGRcbiIsIF9fZnVuY19fLCByZXExMjhfbCk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcmVxMTI4X2MgPSAlMGRcbiIsIF9fZnVuY19fLCByZXExMjhfYyk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfbCA9ICUwZFxuIiwKKwkJCV9fZnVuY19fLAorCQkJZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfbCk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfYyA9ICUwZFxuIiwKKwkJCV9fZnVuY19fLAorCQkJZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfYyk7Cit9CisKK3N0YXRpYyB2b2lkIGdldF9tZXRhX2FuZF9wdGVfYXR0cihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRpc3BsYXlfZGF0YV9ycV9kbGdfcGFyYW1zX3N0ICpycV9kbGdfcGFyYW0sCisJCWRpc3BsYXlfZGF0YV9ycV9taXNjX3BhcmFtc19zdCAqcnFfbWlzY19wYXJhbSwKKwkJZGlzcGxheV9kYXRhX3JxX3NpemluZ19wYXJhbXNfc3QgKnJxX3NpemluZ19wYXJhbSwKKwkJdW5zaWduZWQgaW50IHZwX3dpZHRoLAorCQl1bnNpZ25lZCBpbnQgdnBfaGVpZ2h0LAorCQl1bnNpZ25lZCBpbnQgZGF0YV9waXRjaCwKKwkJdW5zaWduZWQgaW50IG1ldGFfcGl0Y2gsCisJCXVuc2lnbmVkIGludCBzb3VyY2VfZm9ybWF0LAorCQl1bnNpZ25lZCBpbnQgdGlsaW5nLAorCQl1bnNpZ25lZCBpbnQgbWFjcm9fdGlsZV9zaXplLAorCQl1bnNpZ25lZCBpbnQgc291cmNlX3NjYW4sCisJCXVuc2lnbmVkIGludCBpc19jaHJvbWEpCit7CisJYm9vbCBzdXJmX2xpbmVhciA9ICh0aWxpbmcgPT0gZG1fc3dfbGluZWFyKTsKKwlib29sIHN1cmZfdmVydCA9IChzb3VyY2Vfc2NhbiA9PSBkbV92ZXJ0KTsKKworCXVuc2lnbmVkIGludCBieXRlc19wZXJfZWxlbWVudDsKKwl1bnNpZ25lZCBpbnQgYnl0ZXNfcGVyX2VsZW1lbnRfeSA9IGdldF9ieXRlc19wZXJfZWxlbWVudCgoZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzKShzb3VyY2VfZm9ybWF0KSwKKwkJCWZhbHNlKTsKKwl1bnNpZ25lZCBpbnQgYnl0ZXNfcGVyX2VsZW1lbnRfYyA9IGdldF9ieXRlc19wZXJfZWxlbWVudCgoZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzKShzb3VyY2VfZm9ybWF0KSwKKwkJCXRydWUpOworCisJdW5zaWduZWQgaW50IGJsazI1Nl93aWR0aCA9IDA7CisJdW5zaWduZWQgaW50IGJsazI1Nl9oZWlnaHQgPSAwOworCisJdW5zaWduZWQgaW50IGJsazI1Nl93aWR0aF95ID0gMDsKKwl1bnNpZ25lZCBpbnQgYmxrMjU2X2hlaWdodF95ID0gMDsKKwl1bnNpZ25lZCBpbnQgYmxrMjU2X3dpZHRoX2MgPSAwOworCXVuc2lnbmVkIGludCBibGsyNTZfaGVpZ2h0X2MgPSAwOworCXVuc2lnbmVkIGludCBsb2cyX2J5dGVzX3Blcl9lbGVtZW50OworCXVuc2lnbmVkIGludCBsb2cyX2JsazI1Nl93aWR0aDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9ibGsyNTZfaGVpZ2h0OworCXVuc2lnbmVkIGludCBibGtfYnl0ZXM7CisJdW5zaWduZWQgaW50IGxvZzJfYmxrX2J5dGVzOworCXVuc2lnbmVkIGludCBsb2cyX2Jsa19oZWlnaHQ7CisJdW5zaWduZWQgaW50IGxvZzJfYmxrX3dpZHRoOworCXVuc2lnbmVkIGludCBsb2cyX21ldGFfcmVxX2J5dGVzOworCXVuc2lnbmVkIGludCBsb2cyX21ldGFfcmVxX2hlaWdodDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9tZXRhX3JlcV93aWR0aDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9yZXFfd2lkdGg7CisJdW5zaWduZWQgaW50IG1ldGFfcmVxX2hlaWdodDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9tZXRhX3Jvd19oZWlnaHQ7CisJdW5zaWduZWQgaW50IG1ldGFfcm93X3dpZHRoX3ViOworCXVuc2lnbmVkIGludCBsb2cyX21ldGFfY2h1bmtfYnl0ZXM7CisJdW5zaWduZWQgaW50IGxvZzJfbWV0YV9jaHVua19oZWlnaHQ7CisKKwkvL2Z1bGwgc2l6ZWQgbWV0YSBjaHVuayB3aWR0aCBpbiB1bml0IG9mIGRhdGEgZWxlbWVudHMKKwl1bnNpZ25lZCBpbnQgbG9nMl9tZXRhX2NodW5rX3dpZHRoOworCXVuc2lnbmVkIGludCBsb2cyX21pbl9tZXRhX2NodW5rX2J5dGVzOworCXVuc2lnbmVkIGludCBtaW5fbWV0YV9jaHVua193aWR0aDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9jaHVua193aWR0aDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9jaHVua19wZXJfcm93X2ludDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9yb3dfcmVtYWluZGVyOworCXVuc2lnbmVkIGludCBtZXRhX2NodW5rX3RocmVzaG9sZDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9ibGtfYnl0ZXM7CisJdW5zaWduZWQgaW50IG1ldGFfYmxrX2hlaWdodDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9ibGtfd2lkdGg7CisJdW5zaWduZWQgaW50IG1ldGFfc3VyZmFjZV9ieXRlczsKKwl1bnNpZ25lZCBpbnQgdm1wZ19ieXRlczsKKwl1bnNpZ25lZCBpbnQgbWV0YV9wdGVfcmVxX3Blcl9mcmFtZV91YjsKKwl1bnNpZ25lZCBpbnQgbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViOworCWNvbnN0IHVuc2lnbmVkIGludCBsb2cyX3ZtcGdfYnl0ZXMgPSBkbWxfbG9nMihtb2RlX2xpYi0+c29jLnZtbV9wYWdlX3NpemVfYnl0ZXMpOworCWNvbnN0IHVuc2lnbmVkIGludCBkcHRlX2J1Zl9pbl9wdGVfcmVxcyA9IG1vZGVfbGliLT5pcC5kcHRlX2J1ZmZlcl9zaXplX2luX3B0ZV9yZXFzX2x1bWE7CisJY29uc3QgdW5zaWduZWQgaW50IHBkZV9wcm9jX2J1ZmZlcl9zaXplXzY0a19yZXFzID0KKwkJCW1vZGVfbGliLT5pcC5wZGVfcHJvY19idWZmZXJfc2l6ZV82NGtfcmVxczsKKworCXVuc2lnbmVkIGludCBsb2cyX3ZtcGdfaGVpZ2h0ID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl92bXBnX3dpZHRoID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9kcHRlX3JlcV9oZWlnaHRfcHRlcyA9IDA7CisJdW5zaWduZWQgaW50IGxvZzJfZHB0ZV9yZXFfaGVpZ2h0ID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9kcHRlX3JlcV93aWR0aCA9IDA7CisJdW5zaWduZWQgaW50IGxvZzJfZHB0ZV9yb3dfaGVpZ2h0X2xpbmVhciA9IDA7CisJdW5zaWduZWQgaW50IGxvZzJfZHB0ZV9yb3dfaGVpZ2h0ID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9kcHRlX2dyb3VwX3dpZHRoID0gMDsKKwl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfd2lkdGhfdWIgPSAwOworCXVuc2lnbmVkIGludCBkcHRlX3JlcV9oZWlnaHQgPSAwOworCXVuc2lnbmVkIGludCBkcHRlX3JlcV93aWR0aCA9IDA7CisJdW5zaWduZWQgaW50IGRwdGVfZ3JvdXBfd2lkdGggPSAwOworCXVuc2lnbmVkIGludCBsb2cyX2RwdGVfZ3JvdXBfYnl0ZXMgPSAwOworCXVuc2lnbmVkIGludCBsb2cyX2RwdGVfZ3JvdXBfbGVuZ3RoID0gMDsKKwl1bnNpZ25lZCBpbnQgcGRlX2J1Zl9lbnRyaWVzOworCWJvb2wgeXV2NDIwID0gKHNvdXJjZV9mb3JtYXQgPT0gZG1fNDIwXzggfHwgc291cmNlX2Zvcm1hdCA9PSBkbV80MjBfMTApOworCisJQ2FsY3VsYXRlMjU2QkJsb2NrU2l6ZXMoKGVudW0gc291cmNlX2Zvcm1hdF9jbGFzcykoc291cmNlX2Zvcm1hdCksCisJCQkoZW51bSBkbV9zd2l6emxlX21vZGUpKHRpbGluZyksCisJCQlieXRlc19wZXJfZWxlbWVudF95LAorCQkJYnl0ZXNfcGVyX2VsZW1lbnRfYywKKwkJCSZibGsyNTZfaGVpZ2h0X3ksCisJCQkmYmxrMjU2X2hlaWdodF9jLAorCQkJJmJsazI1Nl93aWR0aF95LAorCQkJJmJsazI1Nl93aWR0aF9jKTsKKworCWlmICghaXNfY2hyb21hKSB7CisJCWJsazI1Nl93aWR0aCA9IGJsazI1Nl93aWR0aF95OworCQlibGsyNTZfaGVpZ2h0ID0gYmxrMjU2X2hlaWdodF95OworCQlieXRlc19wZXJfZWxlbWVudCA9IGJ5dGVzX3Blcl9lbGVtZW50X3k7CisJfSBlbHNlIHsKKwkJYmxrMjU2X3dpZHRoID0gYmxrMjU2X3dpZHRoX2M7CisJCWJsazI1Nl9oZWlnaHQgPSBibGsyNTZfaGVpZ2h0X2M7CisJCWJ5dGVzX3Blcl9lbGVtZW50ID0gYnl0ZXNfcGVyX2VsZW1lbnRfYzsKKwl9CisKKwlsb2cyX2J5dGVzX3Blcl9lbGVtZW50ID0gZG1sX2xvZzIoYnl0ZXNfcGVyX2VsZW1lbnQpOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogc3VyZl9saW5lYXIgICAgICAgID0gJWRcbiIsIF9fZnVuY19fLCBzdXJmX2xpbmVhcik7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogc3VyZl92ZXJ0ICAgICAgICAgID0gJWRcbiIsIF9fZnVuY19fLCBzdXJmX3ZlcnQpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGJsazI1Nl93aWR0aCAgICAgICA9ICVkXG4iLCBfX2Z1bmNfXywgYmxrMjU2X3dpZHRoKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBibGsyNTZfaGVpZ2h0ICAgICAgPSAlZFxuIiwgX19mdW5jX18sIGJsazI1Nl9oZWlnaHQpOworCisJbG9nMl9ibGsyNTZfd2lkdGggPSBkbWxfbG9nMigoZG91YmxlKSBibGsyNTZfd2lkdGgpOworCWxvZzJfYmxrMjU2X2hlaWdodCA9IGRtbF9sb2cyKChkb3VibGUpIGJsazI1Nl9oZWlnaHQpOworCWJsa19ieXRlcyA9IHN1cmZfbGluZWFyID8KKwkJCTI1NiA6IGdldF9ibGtfc2l6ZV9ieXRlcygoZW51bSBzb3VyY2VfbWFjcm9fdGlsZV9zaXplKSBtYWNyb190aWxlX3NpemUpOworCWxvZzJfYmxrX2J5dGVzID0gZG1sX2xvZzIoKGRvdWJsZSkgYmxrX2J5dGVzKTsKKwlsb2cyX2Jsa19oZWlnaHQgPSAwOworCWxvZzJfYmxrX3dpZHRoID0gMDsKKworCS8vIHJlbWVtYmVyIGxvZyBydWxlCisJLy8gIisiIGluIGxvZyBpcyBtdWx0aXBseQorCS8vICItIiBpbiBsb2cgaXMgZGl2aWRlCisJLy8gIi8yIiBpcyBsaWtlIHNxdWFyZSByb290CisJLy8gYmxrIGlzIHZlcnRpY2FsIGJpYXNlZAorCWlmICh0aWxpbmcgIT0gZG1fc3dfbGluZWFyKQorCQlsb2cyX2Jsa19oZWlnaHQgPSBsb2cyX2JsazI1Nl9oZWlnaHQKKwkJCQkrIGRtbF9jZWlsKChkb3VibGUpIChsb2cyX2Jsa19ieXRlcyAtIDgpIC8gMi4wLCAxKTsKKwllbHNlCisJCWxvZzJfYmxrX2hlaWdodCA9IDA7ICAvLyBibGsgaGVpZ2h0IG9mIDEKKworCWxvZzJfYmxrX3dpZHRoID0gbG9nMl9ibGtfYnl0ZXMgLSBsb2cyX2J5dGVzX3Blcl9lbGVtZW50IC0gbG9nMl9ibGtfaGVpZ2h0OworCisJaWYgKCFzdXJmX3ZlcnQpIHsKKwkJcnFfZGxnX3BhcmFtLT5zd2F0aF93aWR0aF91YiA9IGRtbF9yb3VuZF90b19tdWx0aXBsZSh2cF93aWR0aCAtIDEsIGJsazI1Nl93aWR0aCwgMSkKKwkJCQkrIGJsazI1Nl93aWR0aDsKKwkJcnFfZGxnX3BhcmFtLT5yZXFfcGVyX3N3YXRoX3ViID0gcnFfZGxnX3BhcmFtLT5zd2F0aF93aWR0aF91YiA+PiBsb2cyX2JsazI1Nl93aWR0aDsKKwl9IGVsc2UgeworCQlycV9kbGdfcGFyYW0tPnN3YXRoX3dpZHRoX3ViID0gZG1sX3JvdW5kX3RvX211bHRpcGxlKHZwX2hlaWdodCAtIDEsIGJsazI1Nl9oZWlnaHQsIDEpCisJCQkJKyBibGsyNTZfaGVpZ2h0OworCQlycV9kbGdfcGFyYW0tPnJlcV9wZXJfc3dhdGhfdWIgPSBycV9kbGdfcGFyYW0tPnN3YXRoX3dpZHRoX3ViID4+IGxvZzJfYmxrMjU2X2hlaWdodDsKKwl9CisKKwlpZiAoIXN1cmZfdmVydCkKKwkJcnFfbWlzY19wYXJhbS0+ZnVsbF9zd2F0aF9ieXRlcyA9IHJxX2RsZ19wYXJhbS0+c3dhdGhfd2lkdGhfdWIgKiBibGsyNTZfaGVpZ2h0CisJCQkJKiBieXRlc19wZXJfZWxlbWVudDsKKwllbHNlCisJCXJxX21pc2NfcGFyYW0tPmZ1bGxfc3dhdGhfYnl0ZXMgPSBycV9kbGdfcGFyYW0tPnN3YXRoX3dpZHRoX3ViICogYmxrMjU2X3dpZHRoCisJCQkJKiBieXRlc19wZXJfZWxlbWVudDsKKworCXJxX21pc2NfcGFyYW0tPmJsazI1Nl9oZWlnaHQgPSBibGsyNTZfaGVpZ2h0OworCXJxX21pc2NfcGFyYW0tPmJsazI1Nl93aWR0aCA9IGJsazI1Nl93aWR0aDsKKworCS8vIC0tLS0tLS0KKwkvLyBtZXRhCisJLy8gLS0tLS0tLQorCWxvZzJfbWV0YV9yZXFfYnl0ZXMgPSA2OyAvLyBtZXRhIHJlcXVlc3QgaXMgNjRiIGFuZCBpcyA4eDhieXRlIG1ldGEgZWxlbWVudAorCisJLy8gZWFjaCA2NGIgbWV0YSByZXF1ZXN0IGZvciBkY24gaXMgOHg4IG1ldGEgZWxlbWVudHMgYW5kCisJLy8gYSBtZXRhIGVsZW1lbnQgY292ZXJzIG9uZSAyNTZiIGJsb2NrIG9mIHRoZSB0aGUgZGF0YSBzdXJmYWNlLgorCWxvZzJfbWV0YV9yZXFfaGVpZ2h0ID0gbG9nMl9ibGsyNTZfaGVpZ2h0ICsgMzsgLy8gbWV0YSByZXEgaXMgOHg4IGJ5dGUsIGVhY2ggYnl0ZSByZXByZXNlbnQgMSBibGsyNTYKKwlsb2cyX21ldGFfcmVxX3dpZHRoID0gbG9nMl9tZXRhX3JlcV9ieXRlcyArIDggLSBsb2cyX2J5dGVzX3Blcl9lbGVtZW50CisJCQktIGxvZzJfbWV0YV9yZXFfaGVpZ2h0OworCW1ldGFfcmVxX3dpZHRoID0gMSA8PCBsb2cyX21ldGFfcmVxX3dpZHRoOworCW1ldGFfcmVxX2hlaWdodCA9IDEgPDwgbG9nMl9tZXRhX3JlcV9oZWlnaHQ7CisJbG9nMl9tZXRhX3Jvd19oZWlnaHQgPSAwOworCW1ldGFfcm93X3dpZHRoX3ViID0gMDsKKworCS8vIHRoZSBkaW1lbnNpb25zIG9mIGEgbWV0YSByb3cgYXJlIG1ldGFfcm93X3dpZHRoIHggbWV0YV9yb3dfaGVpZ2h0IGluIGVsZW1lbnRzLgorCS8vIGNhbGN1bGF0ZSB1cHBlciBib3VuZCBvZiB0aGUgbWV0YV9yb3dfd2lkdGgKKwlpZiAoIXN1cmZfdmVydCkgeworCQlsb2cyX21ldGFfcm93X2hlaWdodCA9IGxvZzJfbWV0YV9yZXFfaGVpZ2h0OworCQltZXRhX3Jvd193aWR0aF91YiA9IGRtbF9yb3VuZF90b19tdWx0aXBsZSh2cF93aWR0aCAtIDEsIG1ldGFfcmVxX3dpZHRoLCAxKQorCQkJCSsgbWV0YV9yZXFfd2lkdGg7CisJCXJxX2RsZ19wYXJhbS0+bWV0YV9yZXFfcGVyX3Jvd191YiA9IG1ldGFfcm93X3dpZHRoX3ViIC8gbWV0YV9yZXFfd2lkdGg7CisJfSBlbHNlIHsKKwkJbG9nMl9tZXRhX3Jvd19oZWlnaHQgPSBsb2cyX21ldGFfcmVxX3dpZHRoOworCQltZXRhX3Jvd193aWR0aF91YiA9IGRtbF9yb3VuZF90b19tdWx0aXBsZSh2cF9oZWlnaHQgLSAxLCBtZXRhX3JlcV9oZWlnaHQsIDEpCisJCQkJKyBtZXRhX3JlcV9oZWlnaHQ7CisJCXJxX2RsZ19wYXJhbS0+bWV0YV9yZXFfcGVyX3Jvd191YiA9IG1ldGFfcm93X3dpZHRoX3ViIC8gbWV0YV9yZXFfaGVpZ2h0OworCX0KKwlycV9kbGdfcGFyYW0tPm1ldGFfYnl0ZXNfcGVyX3Jvd191YiA9IHJxX2RsZ19wYXJhbS0+bWV0YV9yZXFfcGVyX3Jvd191YiAqIDY0OworCisJcnFfZGxnX3BhcmFtLT5tZXRhX3Jvd19oZWlnaHQgPSAxIDw8IGxvZzJfbWV0YV9yb3dfaGVpZ2h0OworCisJbG9nMl9tZXRhX2NodW5rX2J5dGVzID0gZG1sX2xvZzIocnFfc2l6aW5nX3BhcmFtLT5tZXRhX2NodW5rX2J5dGVzKTsKKwlsb2cyX21ldGFfY2h1bmtfaGVpZ2h0ID0gbG9nMl9tZXRhX3Jvd19oZWlnaHQ7CisKKwkvL2Z1bGwgc2l6ZWQgbWV0YSBjaHVuayB3aWR0aCBpbiB1bml0IG9mIGRhdGEgZWxlbWVudHMKKwlsb2cyX21ldGFfY2h1bmtfd2lkdGggPSBsb2cyX21ldGFfY2h1bmtfYnl0ZXMgKyA4IC0gbG9nMl9ieXRlc19wZXJfZWxlbWVudAorCQkJLSBsb2cyX21ldGFfY2h1bmtfaGVpZ2h0OworCWxvZzJfbWluX21ldGFfY2h1bmtfYnl0ZXMgPSBkbWxfbG9nMihycV9zaXppbmdfcGFyYW0tPm1pbl9tZXRhX2NodW5rX2J5dGVzKTsKKwltaW5fbWV0YV9jaHVua193aWR0aCA9IDEKKwkJCTw8IChsb2cyX21pbl9tZXRhX2NodW5rX2J5dGVzICsgOCAtIGxvZzJfYnl0ZXNfcGVyX2VsZW1lbnQKKwkJCQkJLSBsb2cyX21ldGFfY2h1bmtfaGVpZ2h0KTsKKwltZXRhX2NodW5rX3dpZHRoID0gMSA8PCBsb2cyX21ldGFfY2h1bmtfd2lkdGg7CisJbWV0YV9jaHVua19wZXJfcm93X2ludCA9ICh1bnNpZ25lZCBpbnQpIChtZXRhX3Jvd193aWR0aF91YiAvIG1ldGFfY2h1bmtfd2lkdGgpOworCW1ldGFfcm93X3JlbWFpbmRlciA9IG1ldGFfcm93X3dpZHRoX3ViICUgbWV0YV9jaHVua193aWR0aDsKKwltZXRhX2NodW5rX3RocmVzaG9sZCA9IDA7CisJbWV0YV9ibGtfYnl0ZXMgPSA0MDk2OworCW1ldGFfYmxrX2hlaWdodCA9IGJsazI1Nl9oZWlnaHQgKiA2NDsKKwltZXRhX2Jsa193aWR0aCA9IG1ldGFfYmxrX2J5dGVzICogMjU2IC8gYnl0ZXNfcGVyX2VsZW1lbnQgLyBtZXRhX2Jsa19oZWlnaHQ7CisJbWV0YV9zdXJmYWNlX2J5dGVzID0gbWV0YV9waXRjaAorCQkJKiAoZG1sX3JvdW5kX3RvX211bHRpcGxlKHZwX2hlaWdodCAtIDEsIG1ldGFfYmxrX2hlaWdodCwgMSkgKyBtZXRhX2Jsa19oZWlnaHQpCisJCQkqIGJ5dGVzX3Blcl9lbGVtZW50IC8gMjU2OworCXZtcGdfYnl0ZXMgPSBtb2RlX2xpYi0+c29jLnZtbV9wYWdlX3NpemVfYnl0ZXM7CisJbWV0YV9wdGVfcmVxX3Blcl9mcmFtZV91YiA9IChkbWxfcm91bmRfdG9fbXVsdGlwbGUobWV0YV9zdXJmYWNlX2J5dGVzIC0gdm1wZ19ieXRlcywKKwkJCTggKiB2bXBnX2J5dGVzLAorCQkJMSkgKyA4ICogdm1wZ19ieXRlcykgLyAoOCAqIHZtcGdfYnl0ZXMpOworCW1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZV91YiA9IG1ldGFfcHRlX3JlcV9wZXJfZnJhbWVfdWIgKiA2NDsgLy82NEIgbXB0ZSByZXF1ZXN0CisJcnFfZGxnX3BhcmFtLT5tZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWIgPSBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWI7CisKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBtZXRhX2Jsa19oZWlnaHQgICAgICAgICAgICAgPSAlZFxuIiwgX19mdW5jX18sIG1ldGFfYmxrX2hlaWdodCk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogbWV0YV9ibGtfd2lkdGggICAgICAgICAgICAgID0gJWRcbiIsIF9fZnVuY19fLCBtZXRhX2Jsa193aWR0aCk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogbWV0YV9zdXJmYWNlX2J5dGVzICAgICAgICAgID0gJWRcbiIsIF9fZnVuY19fLCBtZXRhX3N1cmZhY2VfYnl0ZXMpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IG1ldGFfcHRlX3JlcV9wZXJfZnJhbWVfdWIgICA9ICVkXG4iLAorCQkJX19mdW5jX18sCisJCQltZXRhX3B0ZV9yZXFfcGVyX2ZyYW1lX3ViKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWIgPSAlZFxuIiwKKwkJCV9fZnVuY19fLAorCQkJbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViKTsKKworCWlmICghc3VyZl92ZXJ0KQorCQltZXRhX2NodW5rX3RocmVzaG9sZCA9IDIgKiBtaW5fbWV0YV9jaHVua193aWR0aCAtIG1ldGFfcmVxX3dpZHRoOworCWVsc2UKKwkJbWV0YV9jaHVua190aHJlc2hvbGQgPSAyICogbWluX21ldGFfY2h1bmtfd2lkdGggLSBtZXRhX3JlcV9oZWlnaHQ7CisKKwlpZiAobWV0YV9yb3dfcmVtYWluZGVyIDw9IG1ldGFfY2h1bmtfdGhyZXNob2xkKQorCQlycV9kbGdfcGFyYW0tPm1ldGFfY2h1bmtzX3Blcl9yb3dfdWIgPSBtZXRhX2NodW5rX3Blcl9yb3dfaW50ICsgMTsKKwllbHNlCisJCXJxX2RsZ19wYXJhbS0+bWV0YV9jaHVua3NfcGVyX3Jvd191YiA9IG1ldGFfY2h1bmtfcGVyX3Jvd19pbnQgKyAyOworCisJLy8gLS0tLS0tCisJLy8gZHB0ZQorCS8vIC0tLS0tLQorCWlmIChzdXJmX2xpbmVhcikgeworCQlsb2cyX3ZtcGdfaGVpZ2h0ID0gMDsgICAvLyBvbmUgbGluZSBoaWdoCisJfSBlbHNlIHsKKwkJbG9nMl92bXBnX2hlaWdodCA9IChsb2cyX3ZtcGdfYnl0ZXMgLSA4KSAvIDIgKyBsb2cyX2JsazI1Nl9oZWlnaHQ7CisJfQorCWxvZzJfdm1wZ193aWR0aCA9IGxvZzJfdm1wZ19ieXRlcyAtIGxvZzJfYnl0ZXNfcGVyX2VsZW1lbnQgLSBsb2cyX3ZtcGdfaGVpZ2h0OworCisJLy8gb25seSAzIHBvc3NpYmxlIHNoYXBlcyBmb3IgZHB0ZSByZXF1ZXN0IGluIGRpbWVuc2lvbnMgb2YgcHRlczogOHgxLCA0eDIsIDJ4NC4KKwlpZiAoc3VyZl9saW5lYXIpIHsgLy9vbmUgNjRCIFBURSByZXF1ZXN0IHJldHVybnMgOCBQVEVzCisJCWxvZzJfZHB0ZV9yZXFfaGVpZ2h0X3B0ZXMgPSAwOworCQlsb2cyX2RwdGVfcmVxX3dpZHRoID0gbG9nMl92bXBnX3dpZHRoICsgMzsKKwkJbG9nMl9kcHRlX3JlcV9oZWlnaHQgPSAwOworCX0gZWxzZSBpZiAobG9nMl9ibGtfYnl0ZXMgPT0gMTIpIHsgLy80S0IgdGlsZSBtZWFucyA0a0IgcGFnZSBzaXplCisJCS8vb25lIDY0QiByZXEgZ2l2ZXMgOHgxIFBURXMgZm9yIDRLQiB0aWxlCisJCWxvZzJfZHB0ZV9yZXFfaGVpZ2h0X3B0ZXMgPSAwOworCQlsb2cyX2RwdGVfcmVxX3dpZHRoID0gbG9nMl9ibGtfd2lkdGggKyAzOworCQlsb2cyX2RwdGVfcmVxX2hlaWdodCA9IGxvZzJfYmxrX2hlaWdodCArIDA7CisJfSBlbHNlIGlmICgobG9nMl9ibGtfYnl0ZXMgPj0gMTYpICYmIChsb2cyX3ZtcGdfYnl0ZXMgPT0gMTIpKSB7IC8vIHRpbGUgYmxvY2sgPj0gNjRLQgorCQkvL3R3byA2NEIgcmVxcyBvZiAyeDQgUFRFcyBnaXZlIDE2IFBURXMgdG8gY292ZXIgNjRLQgorCQlsb2cyX2RwdGVfcmVxX2hlaWdodF9wdGVzID0gNDsKKwkJbG9nMl9kcHRlX3JlcV93aWR0aCA9IGxvZzJfYmxrMjU2X3dpZHRoICsgNDsgLy8gbG9nMl82NEtCX3dpZHRoCisJCWxvZzJfZHB0ZV9yZXFfaGVpZ2h0ID0gbG9nMl9ibGsyNTZfaGVpZ2h0ICsgNDsgLy8gbG9nMl82NEtCX2hlaWdodAorCX0gZWxzZSB7IC8vNjRLQiBwYWdlIHNpemUgYW5kIG11c3QgNjRLQiB0aWxlIGJsb2NrCisJCSAvL29uZSA2NEIgcmVxIGdpdmVzIDh4MSBQVEVzIGZvciA2NEtCIHRpbGUKKwkJbG9nMl9kcHRlX3JlcV9oZWlnaHRfcHRlcyA9IDA7CisJCWxvZzJfZHB0ZV9yZXFfd2lkdGggPSBsb2cyX2Jsa193aWR0aCArIDM7CisJCWxvZzJfZHB0ZV9yZXFfaGVpZ2h0ID0gbG9nMl9ibGtfaGVpZ2h0ICsgMDsKKwl9CisKKwkvLyBUaGUgZHB0ZSByZXF1ZXN0IGRpbWVuc2lvbnMgaW4gZGF0YSBlbGVtZW50cyBpcyBkcHRlX3JlcV93aWR0aCB4IGRwdGVfcmVxX2hlaWdodAorCS8vIGxvZzJfdm1wZ193aWR0aCBpcyBob3cgbXVjaCAxIHB0ZSByZXByZXNlbnQsIG5vdyBjYWxjdWxhdGluZyBob3cgbXVjaCBhIDY0YiBwdGUgcmVxIHJlcHJlc2VudAorCS8vIFRoYXQgZGVwZW5kcyBvbiB0aGUgcHRlIHNoYXBlIChpLmUuIDh4MSwgNHgyLCAyeDQpCisJLy9sb2cyX2RwdGVfcmVxX2hlaWdodCAgICA9IGxvZzJfdm1wZ19oZWlnaHQgKyBsb2cyX2RwdGVfcmVxX2hlaWdodF9wdGVzOworCS8vbG9nMl9kcHRlX3JlcV93aWR0aCAgICAgPSBsb2cyX3ZtcGdfd2lkdGggKyBsb2cyX2RwdGVfcmVxX3dpZHRoX3B0ZXM7CisJZHB0ZV9yZXFfaGVpZ2h0ID0gMSA8PCBsb2cyX2RwdGVfcmVxX2hlaWdodDsKKwlkcHRlX3JlcV93aWR0aCA9IDEgPDwgbG9nMl9kcHRlX3JlcV93aWR0aDsKKworCS8vIGNhbGN1bGF0ZSBwaXRjaCBkcHRlIHJvdyBidWZmZXIgY2FuIGhvbGQKKwkvLyByb3VuZCB0aGUgcmVzdWx0IGRvd24gdG8gYSBwb3dlciBvZiB0d28uCisJcGRlX2J1Zl9lbnRyaWVzID0geXV2NDIwID8gKHBkZV9wcm9jX2J1ZmZlcl9zaXplXzY0a19yZXFzID4+IDEpIDogcGRlX3Byb2NfYnVmZmVyX3NpemVfNjRrX3JlcXM7CisJaWYgKHN1cmZfbGluZWFyKSB7CisJCXVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHQ7CisKKwkJbG9nMl9kcHRlX3Jvd19oZWlnaHRfbGluZWFyID0gZG1sX2Zsb29yKGRtbF9sb2cyKGRtbF9taW4oNjQgKiAxMDI0ICogcGRlX2J1Zl9lbnRyaWVzCisJCQkJCQkJCQkJLyBieXRlc19wZXJfZWxlbWVudCwKKwkJCQkJCQkJZHB0ZV9idWZfaW5fcHRlX3JlcXMKKwkJCQkJCQkJCQkqIGRwdGVfcmVxX3dpZHRoKQorCQkJCQkJCQkvIGRhdGFfcGl0Y2gpLAorCQkJCTEpOworCisJCUFTU0VSVChsb2cyX2RwdGVfcm93X2hlaWdodF9saW5lYXIgPj0gMyk7CisKKwkJaWYgKGxvZzJfZHB0ZV9yb3dfaGVpZ2h0X2xpbmVhciA+IDcpCisJCQlsb2cyX2RwdGVfcm93X2hlaWdodF9saW5lYXIgPSA3OworCisJCWxvZzJfZHB0ZV9yb3dfaGVpZ2h0ID0gbG9nMl9kcHRlX3Jvd19oZWlnaHRfbGluZWFyOworCQkvLyBGb3IgbGluZWFyLCB0aGUgZHB0ZSByb3cgaXMgcGl0Y2ggZGVwZW5kZW50IGFuZCB0aGUgcHRlIHJlcXVlc3RzIHdyYXAgYXQgdGhlIHBpdGNoIGJvdW5kYXJ5LgorCQkvLyB0aGUgZHB0ZV9yb3dfd2lkdGhfdWIgaXMgdGhlIHVwcGVyIGJvdW5kIG9mIGRhdGFfcGl0Y2gqZHB0ZV9yb3dfaGVpZ2h0IGluIGVsZW1lbnRzIHdpdGggdGhpcyB1bmlxdWUgYnVmZmVyaW5nLgorCQlkcHRlX3Jvd19oZWlnaHQgPSAxIDw8IGxvZzJfZHB0ZV9yb3dfaGVpZ2h0OworCQlkcHRlX3Jvd193aWR0aF91YiA9IGRtbF9yb3VuZF90b19tdWx0aXBsZShkYXRhX3BpdGNoICogZHB0ZV9yb3dfaGVpZ2h0IC0gMSwKKwkJCQlkcHRlX3JlcV93aWR0aCwKKwkJCQkxKSArIGRwdGVfcmVxX3dpZHRoOworCQlycV9kbGdfcGFyYW0tPmRwdGVfcmVxX3Blcl9yb3dfdWIgPSBkcHRlX3Jvd193aWR0aF91YiAvIGRwdGVfcmVxX3dpZHRoOworCX0gZWxzZSB7CisJCS8vIHRoZSB1cHBlciBib3VuZCBvZiB0aGUgZHB0ZV9yb3dfd2lkdGggd2l0aG91dCBkZXBlbmRlbmN5IG9uIHZpZXdwb3J0IHBvc2l0aW9uIGZvbGxvd3MuCisJCS8vIGZvciB0aWxlZCBtb2RlLCByb3cgaGVpZ2h0IGlzIHRoZSBzYW1lIGFzIHJlcSBoZWlnaHQgYW5kIHJvdyBzdG9yZSB1cCB0byB2cCBzaXplIHVwcGVyIGJvdW5kCisJCWlmICghc3VyZl92ZXJ0KSB7CisJCQlsb2cyX2RwdGVfcm93X2hlaWdodCA9IGxvZzJfZHB0ZV9yZXFfaGVpZ2h0OworCQkJZHB0ZV9yb3dfd2lkdGhfdWIgPSBkbWxfcm91bmRfdG9fbXVsdGlwbGUodnBfd2lkdGggLSAxLCBkcHRlX3JlcV93aWR0aCwgMSkKKwkJCQkJKyBkcHRlX3JlcV93aWR0aDsKKwkJCXJxX2RsZ19wYXJhbS0+ZHB0ZV9yZXFfcGVyX3Jvd191YiA9IGRwdGVfcm93X3dpZHRoX3ViIC8gZHB0ZV9yZXFfd2lkdGg7CisJCX0gZWxzZSB7CisJCQlsb2cyX2RwdGVfcm93X2hlaWdodCA9CisJCQkJCShsb2cyX2Jsa193aWR0aCA8IGxvZzJfZHB0ZV9yZXFfd2lkdGgpID8KKwkJCQkJCQlsb2cyX2Jsa193aWR0aCA6IGxvZzJfZHB0ZV9yZXFfd2lkdGg7CisJCQlkcHRlX3Jvd193aWR0aF91YiA9IGRtbF9yb3VuZF90b19tdWx0aXBsZSh2cF9oZWlnaHQgLSAxLCBkcHRlX3JlcV9oZWlnaHQsIDEpCisJCQkJCSsgZHB0ZV9yZXFfaGVpZ2h0OworCQkJcnFfZGxnX3BhcmFtLT5kcHRlX3JlcV9wZXJfcm93X3ViID0gZHB0ZV9yb3dfd2lkdGhfdWIgLyBkcHRlX3JlcV9oZWlnaHQ7CisJCX0KKwl9CisJaWYgKGxvZzJfYmxrX2J5dGVzID49IDE2ICYmIGxvZzJfdm1wZ19ieXRlcyA9PSAxMikgLy8gdGlsZSBibG9jayA+PSA2NEtCCisJCXJxX2RsZ19wYXJhbS0+ZHB0ZV9ieXRlc19wZXJfcm93X3ViID0gcnFfZGxnX3BhcmFtLT5kcHRlX3JlcV9wZXJfcm93X3ViICogMTI4OyAvLzIqNjRCIGRwdGUgcmVxdWVzdAorCWVsc2UKKwkJcnFfZGxnX3BhcmFtLT5kcHRlX2J5dGVzX3Blcl9yb3dfdWIgPSBycV9kbGdfcGFyYW0tPmRwdGVfcmVxX3Blcl9yb3dfdWIgKiA2NDsgLy82NEIgZHB0ZSByZXF1ZXN0CisKKwlycV9kbGdfcGFyYW0tPmRwdGVfcm93X2hlaWdodCA9IDEgPDwgbG9nMl9kcHRlX3Jvd19oZWlnaHQ7CisKKwkvLyB0aGUgZHB0ZV9ncm91cF9ieXRlcyBpcyByZWR1Y2VkIGZvciB0aGUgc3BlY2lmaWMgY2FzZSBvZiB2ZXJ0aWNhbAorCS8vIGFjY2VzcyBvZiBhIHRpbGUgc3VyZmFjZSB0aGF0IGhhcyBkcHRlIHJlcXVlc3Qgb2YgOHgxIHB0ZXMuCisJaWYgKCFzdXJmX2xpbmVhciAmIChsb2cyX2RwdGVfcmVxX2hlaWdodF9wdGVzID09IDApICYgc3VyZl92ZXJ0KSAvL3JlZHVjZWQsIGluIHRoaXMgY2FzZSwgd2lsbCBoYXZlIHBhZ2UgZmF1bHQgd2l0aGluIGEgZ3JvdXAKKwkJcnFfc2l6aW5nX3BhcmFtLT5kcHRlX2dyb3VwX2J5dGVzID0gNTEyOworCWVsc2UKKwkJLy9mdWxsIHNpemUKKwkJcnFfc2l6aW5nX3BhcmFtLT5kcHRlX2dyb3VwX2J5dGVzID0gMjA0ODsKKworCS8vc2luY2UgcHRlIHJlcXVlc3Qgc2l6ZSBpcyA2NGJ5dGUsIHRoZSBudW1iZXIgb2YgZGF0YSBwdGUgcmVxdWVzdHMgcGVyIGZ1bGwgc2l6ZWQgZ3JvdXAgaXMgYXMgZm9sbG93cy4KKwlsb2cyX2RwdGVfZ3JvdXBfYnl0ZXMgPSBkbWxfbG9nMihycV9zaXppbmdfcGFyYW0tPmRwdGVfZ3JvdXBfYnl0ZXMpOworCWxvZzJfZHB0ZV9ncm91cF9sZW5ndGggPSBsb2cyX2RwdGVfZ3JvdXBfYnl0ZXMgLSA2OyAvL2xlbmd0aCBpbiA2NGIgcmVxdWVzdHMKKworCS8vIGZ1bGwgc2l6ZWQgZGF0YSBwdGUgZ3JvdXAgd2lkdGggaW4gZWxlbWVudHMKKwlpZiAoIXN1cmZfdmVydCkKKwkJbG9nMl9kcHRlX2dyb3VwX3dpZHRoID0gbG9nMl9kcHRlX2dyb3VwX2xlbmd0aCArIGxvZzJfZHB0ZV9yZXFfd2lkdGg7CisJZWxzZQorCQlsb2cyX2RwdGVfZ3JvdXBfd2lkdGggPSBsb2cyX2RwdGVfZ3JvdXBfbGVuZ3RoICsgbG9nMl9kcHRlX3JlcV9oZWlnaHQ7CisKKwkvL0J1dCBpZiB0aGUgdGlsZSBibG9jayA+PTY0S0IgYW5kIHRoZSBwYWdlIHNpemUgaXMgNEtCLCB0aGVuIGVhY2ggZFBURSByZXF1ZXN0IGlzIDIqNjRCCisJaWYgKChsb2cyX2Jsa19ieXRlcyA+PSAxNikgJiYgKGxvZzJfdm1wZ19ieXRlcyA9PSAxMikpIC8vIHRpbGUgYmxvY2sgPj0gNjRLQgorCQlsb2cyX2RwdGVfZ3JvdXBfd2lkdGggPSBsb2cyX2RwdGVfZ3JvdXBfd2lkdGggLSAxOworCisJZHB0ZV9ncm91cF93aWR0aCA9IDEgPDwgbG9nMl9kcHRlX2dyb3VwX3dpZHRoOworCisJLy8gc2luY2UgZHB0ZSBncm91cHMgYXJlIG9ubHkgYWxpZ25lZCB0byBkcHRlX3JlcV93aWR0aCBhbmQgbm90IGRwdGVfZ3JvdXBfd2lkdGgsCisJLy8gdGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgZHB0ZSBncm91cHMgcGVyIHJvdyBpcyBhcyBmb2xsb3dzLgorCXJxX2RsZ19wYXJhbS0+ZHB0ZV9ncm91cHNfcGVyX3Jvd191YiA9IGRtbF9jZWlsKChkb3VibGUpIGRwdGVfcm93X3dpZHRoX3ViIC8gZHB0ZV9ncm91cF93aWR0aCwKKwkJCTEpOworfQorCitzdGF0aWMgdm9pZCBnZXRfc3VyZl9ycV9wYXJhbShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0ICpycV9zaXppbmdfcGFyYW0sCisJCWRpc3BsYXlfZGF0YV9ycV9kbGdfcGFyYW1zX3N0ICpycV9kbGdfcGFyYW0sCisJCWRpc3BsYXlfZGF0YV9ycV9taXNjX3BhcmFtc19zdCAqcnFfbWlzY19wYXJhbSwKKwkJY29uc3QgZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3QgcGlwZV9zcmNfcGFyYW0sCisJCWJvb2wgaXNfY2hyb21hKQoreworCWJvb2wgbW9kZV80MjIgPSAwOworCXVuc2lnbmVkIGludCB2cF93aWR0aCA9IDA7CisJdW5zaWduZWQgaW50IHZwX2hlaWdodCA9IDA7CisJdW5zaWduZWQgaW50IGRhdGFfcGl0Y2ggPSAwOworCXVuc2lnbmVkIGludCBtZXRhX3BpdGNoID0gMDsKKwl1bnNpZ25lZCBpbnQgcHBlID0gbW9kZV80MjIgPyAyIDogMTsKKworCS8vIEZJWE1FIGNoZWNrIGlmIHBwZSBhcHBseSBmb3IgYm90aCBsdW1hIGFuZCBjaHJvbWEgaW4gNDIyIGNhc2UKKwlpZiAoaXNfY2hyb21hKSB7CisJCXZwX3dpZHRoID0gcGlwZV9zcmNfcGFyYW0udmlld3BvcnRfd2lkdGhfYyAvIHBwZTsKKwkJdnBfaGVpZ2h0ID0gcGlwZV9zcmNfcGFyYW0udmlld3BvcnRfaGVpZ2h0X2M7CisJCWRhdGFfcGl0Y2ggPSBwaXBlX3NyY19wYXJhbS5kYXRhX3BpdGNoX2M7CisJCW1ldGFfcGl0Y2ggPSBwaXBlX3NyY19wYXJhbS5tZXRhX3BpdGNoX2M7CisJfSBlbHNlIHsKKwkJdnBfd2lkdGggPSBwaXBlX3NyY19wYXJhbS52aWV3cG9ydF93aWR0aCAvIHBwZTsKKwkJdnBfaGVpZ2h0ID0gcGlwZV9zcmNfcGFyYW0udmlld3BvcnRfaGVpZ2h0OworCQlkYXRhX3BpdGNoID0gcGlwZV9zcmNfcGFyYW0uZGF0YV9waXRjaDsKKwkJbWV0YV9waXRjaCA9IHBpcGVfc3JjX3BhcmFtLm1ldGFfcGl0Y2g7CisJfQorCisJcnFfc2l6aW5nX3BhcmFtLT5jaHVua19ieXRlcyA9IDgxOTI7CisKKwlpZiAocnFfc2l6aW5nX3BhcmFtLT5jaHVua19ieXRlcyA9PSA2NCAqIDEwMjQpCisJCXJxX3NpemluZ19wYXJhbS0+bWluX2NodW5rX2J5dGVzID0gMDsKKwllbHNlCisJCXJxX3NpemluZ19wYXJhbS0+bWluX2NodW5rX2J5dGVzID0gMTAyNDsKKworCXJxX3NpemluZ19wYXJhbS0+bWV0YV9jaHVua19ieXRlcyA9IDIwNDg7CisJcnFfc2l6aW5nX3BhcmFtLT5taW5fbWV0YV9jaHVua19ieXRlcyA9IDI1NjsKKworCXJxX3NpemluZ19wYXJhbS0+bXB0ZV9ncm91cF9ieXRlcyA9IDIwNDg7CisKKwlnZXRfbWV0YV9hbmRfcHRlX2F0dHIobW9kZV9saWIsCisJCQlycV9kbGdfcGFyYW0sCisJCQlycV9taXNjX3BhcmFtLAorCQkJcnFfc2l6aW5nX3BhcmFtLAorCQkJdnBfd2lkdGgsCisJCQl2cF9oZWlnaHQsCisJCQlkYXRhX3BpdGNoLAorCQkJbWV0YV9waXRjaCwKKwkJCXBpcGVfc3JjX3BhcmFtLnNvdXJjZV9mb3JtYXQsCisJCQlwaXBlX3NyY19wYXJhbS5zd19tb2RlLAorCQkJcGlwZV9zcmNfcGFyYW0ubWFjcm9fdGlsZV9zaXplLAorCQkJcGlwZV9zcmNfcGFyYW0uc291cmNlX3NjYW4sCisJCQlpc19jaHJvbWEpOworfQorCitzdGF0aWMgdm9pZCBkbWwyMHYyX3JxX2RsZ19nZXRfcnFfcGFyYW1zKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZGlzcGxheV9ycV9wYXJhbXNfc3QgKnJxX3BhcmFtLAorCQljb25zdCBkaXNwbGF5X3BpcGVfc291cmNlX3BhcmFtc19zdCBwaXBlX3NyY19wYXJhbSkKK3sKKwkvLyBnZXQgcGFyYW0gZm9yIGx1bWEgc3VyZmFjZQorCXJxX3BhcmFtLT55dXY0MjAgPSBwaXBlX3NyY19wYXJhbS5zb3VyY2VfZm9ybWF0ID09IGRtXzQyMF84CisJCQl8fCBwaXBlX3NyY19wYXJhbS5zb3VyY2VfZm9ybWF0ID09IGRtXzQyMF8xMDsKKwlycV9wYXJhbS0+eXV2NDIwXzEwYnBjID0gcGlwZV9zcmNfcGFyYW0uc291cmNlX2Zvcm1hdCA9PSBkbV80MjBfMTA7CisKKwlnZXRfc3VyZl9ycV9wYXJhbShtb2RlX2xpYiwKKwkJCSYocnFfcGFyYW0tPnNpemluZy5ycV9sKSwKKwkJCSYocnFfcGFyYW0tPmRsZy5ycV9sKSwKKwkJCSYocnFfcGFyYW0tPm1pc2MucnFfbCksCisJCQlwaXBlX3NyY19wYXJhbSwKKwkJCTApOworCisJaWYgKGlzX2R1YWxfcGxhbmUoKGVudW0gc291cmNlX2Zvcm1hdF9jbGFzcykocGlwZV9zcmNfcGFyYW0uc291cmNlX2Zvcm1hdCkpKSB7CisJCS8vIGdldCBwYXJhbSBmb3IgY2hyb21hIHN1cmZhY2UKKwkJZ2V0X3N1cmZfcnFfcGFyYW0obW9kZV9saWIsCisJCQkJJihycV9wYXJhbS0+c2l6aW5nLnJxX2MpLAorCQkJCSYocnFfcGFyYW0tPmRsZy5ycV9jKSwKKwkJCQkmKHJxX3BhcmFtLT5taXNjLnJxX2MpLAorCQkJCXBpcGVfc3JjX3BhcmFtLAorCQkJCTEpOworCX0KKworCS8vIGNhbGN1bGF0ZSBob3cgdG8gc3BsaXQgdGhlIGRldCBidWZmZXIgc3BhY2UgYmV0d2VlbiBsdW1hIGFuZCBjaHJvbWEKKwloYW5kbGVfZGV0X2J1Zl9zcGxpdChtb2RlX2xpYiwgcnFfcGFyYW0sIHBpcGVfc3JjX3BhcmFtKTsKKwlwcmludF9fcnFfcGFyYW1zX3N0KG1vZGVfbGliLCAqcnFfcGFyYW0pOworfQorCit2b2lkIGRtbDIwdjJfcnFfZGxnX2dldF9ycV9yZWcoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3JlZ3MsCisJCWNvbnN0IGRpc3BsYXlfcGlwZV9wYXJhbXNfc3QgcGlwZV9wYXJhbSkKK3sKKwlkaXNwbGF5X3JxX3BhcmFtc19zdCBycV9wYXJhbSA9IHswfTsKKworCW1lbXNldChycV9yZWdzLCAwLCBzaXplb2YoKnJxX3JlZ3MpKTsKKwlkbWwyMHYyX3JxX2RsZ19nZXRfcnFfcGFyYW1zKG1vZGVfbGliLCAmcnFfcGFyYW0sIHBpcGVfcGFyYW0uc3JjKTsKKwlleHRyYWN0X3JxX3JlZ3MobW9kZV9saWIsIHJxX3JlZ3MsIHJxX3BhcmFtKTsKKworCXByaW50X19ycV9yZWdzX3N0KG1vZGVfbGliLCAqcnFfcmVncyk7Cit9CisKKy8vIE5vdGU6IGN1cnJlbnRseSB0YWtlbiBpbiBhcyBpcy4KKy8vIE5pY2UgdG8gZGVjb3VwbGUgY29kZSBmcm9tIGh3IHJlZ2lzdGVyIGltcGxlbWVudCBhbmQgZXh0cmFjdCBjb2RlIHRoYXQgYXJlIHJlcGVhdGVkIGZvciBsdW1hIGFuZCBjaHJvbWEuCitzdGF0aWMgdm9pZCBkbWwyMHYyX3JxX2RsZ19nZXRfZGxnX3BhcmFtcyhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICplMmVfcGlwZV9wYXJhbSwKKwkJY29uc3QgdW5zaWduZWQgaW50IG51bV9waXBlcywKKwkJY29uc3QgdW5zaWduZWQgaW50IHBpcGVfaWR4LAorCQlkaXNwbGF5X2RsZ19yZWdzX3N0ICpkaXNwX2RsZ19yZWdzLAorCQlkaXNwbGF5X3R0dV9yZWdzX3N0ICpkaXNwX3R0dV9yZWdzLAorCQljb25zdCBkaXNwbGF5X3JxX2RsZ19wYXJhbXNfc3QgcnFfZGxnX3BhcmFtLAorCQljb25zdCBkaXNwbGF5X2RsZ19zeXNfcGFyYW1zX3N0IGRsZ19zeXNfcGFyYW0sCisJCWNvbnN0IGJvb2wgY3N0YXRlX2VuLAorCQljb25zdCBib29sIHBzdGF0ZV9lbikKK3sKKwljb25zdCBkaXNwbGF5X3BpcGVfc291cmNlX3BhcmFtc19zdCAqc3JjID0gJmUyZV9waXBlX3BhcmFtW3BpcGVfaWR4XS5waXBlLnNyYzsKKwljb25zdCBkaXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgKmRzdCA9ICZlMmVfcGlwZV9wYXJhbVtwaXBlX2lkeF0ucGlwZS5kZXN0OworCWNvbnN0IGRpc3BsYXlfb3V0cHV0X3BhcmFtc19zdCAqZG91dCA9ICZlMmVfcGlwZV9wYXJhbVtwaXBlX2lkeF0uZG91dDsKKwljb25zdCBkaXNwbGF5X2Nsb2Nrc19hbmRfY2ZnX3N0ICpjbGtzID0gJmUyZV9waXBlX3BhcmFtW3BpcGVfaWR4XS5jbGtzX2NmZzsKKwljb25zdCBzY2FsZXJfcmF0aW9fZGVwdGhfc3QgKnNjbCA9ICZlMmVfcGlwZV9wYXJhbVtwaXBlX2lkeF0ucGlwZS5zY2FsZV9yYXRpb19kZXB0aDsKKwljb25zdCBzY2FsZXJfdGFwc19zdCAqdGFwcyA9ICZlMmVfcGlwZV9wYXJhbVtwaXBlX2lkeF0ucGlwZS5zY2FsZV90YXBzOworCisJLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCS8vIFNlY3Rpb24gMS4xNS4yLjE6IE9URyBkZXBlbmRlbnQgUGFyYW1zCisJLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCS8vIFRpbWluZworCXVuc2lnbmVkIGludCBodG90YWwgPSBkc3QtPmh0b3RhbDsKKy8vICAgIHVuc2lnbmVkIGludCBoYmxhbmtfc3RhcnQgPSBkc3QuaGJsYW5rX3N0YXJ0OyAvLyBUT0RPOiBSZW1vdmUKKwl1bnNpZ25lZCBpbnQgaGJsYW5rX2VuZCA9IGRzdC0+aGJsYW5rX2VuZDsKKwl1bnNpZ25lZCBpbnQgdmJsYW5rX3N0YXJ0ID0gZHN0LT52Ymxhbmtfc3RhcnQ7CisJdW5zaWduZWQgaW50IHZibGFua19lbmQgPSBkc3QtPnZibGFua19lbmQ7CisJdW5zaWduZWQgaW50IG1pbl92YmxhbmsgPSBtb2RlX2xpYi0+aXAubWluX3ZibGFua19saW5lczsKKworCWRvdWJsZSBkcHBjbGtfZnJlcV9pbl9taHogPSBjbGtzLT5kcHBjbGtfbWh6OworCWRvdWJsZSBkaXNwY2xrX2ZyZXFfaW5fbWh6ID0gY2xrcy0+ZGlzcGNsa19taHo7CisJZG91YmxlIHJlZmNsa19mcmVxX2luX21oeiA9IGNsa3MtPnJlZmNsa19taHo7CisJZG91YmxlIHBjbGtfZnJlcV9pbl9taHogPSBkc3QtPnBpeGVsX3JhdGVfbWh6OworCWJvb2wgaW50ZXJsYWNlZCA9IGRzdC0+aW50ZXJsYWNlZDsKKworCWRvdWJsZSByZWZfZnJlcV90b19waXhfZnJlcSA9IHJlZmNsa19mcmVxX2luX21oeiAvIHBjbGtfZnJlcV9pbl9taHo7CisKKwlkb3VibGUgbWluX2RjZmNsa19taHo7CisJZG91YmxlIHRfY2FsY191czsKKwlkb3VibGUgbWluX3R0dV92Ymxhbms7CisKKwlkb3VibGUgbWluX2RzdF95X3R0dV92Ymxhbms7CisJdW5zaWduZWQgaW50IGRsZ192Ymxhbmtfc3RhcnQ7CisJYm9vbCBkdWFsX3BsYW5lOworCWJvb2wgbW9kZV80MjI7CisJdW5zaWduZWQgaW50IGFjY2Vzc19kaXI7CisJdW5zaWduZWQgaW50IHZwX2hlaWdodF9sOworCXVuc2lnbmVkIGludCB2cF93aWR0aF9sOworCXVuc2lnbmVkIGludCB2cF9oZWlnaHRfYzsKKwl1bnNpZ25lZCBpbnQgdnBfd2lkdGhfYzsKKworCS8vIFNjYWxpbmcKKwl1bnNpZ25lZCBpbnQgaHRhcHNfbDsKKwl1bnNpZ25lZCBpbnQgaHRhcHNfYzsKKwlkb3VibGUgaHJhdGlvX2w7CisJZG91YmxlIGhyYXRpb19jOworCWRvdWJsZSB2cmF0aW9fbDsKKwlkb3VibGUgdnJhdGlvX2M7CisJYm9vbCBzY2xfZW5hYmxlOworCisJZG91YmxlIGxpbmVfdGltZV9pbl91czsKKwkvLyAgICBkb3VibGUgdmluaXRfbDsKKwkvLyAgICBkb3VibGUgdmluaXRfYzsKKwkvLyAgICBkb3VibGUgdmluaXRfYm90X2w7CisJLy8gICAgZG91YmxlIHZpbml0X2JvdF9jOworCisJLy8gICAgdW5zaWduZWQgaW50IHN3YXRoX2hlaWdodF9sOworCXVuc2lnbmVkIGludCBzd2F0aF93aWR0aF91Yl9sOworCS8vICAgIHVuc2lnbmVkIGludCBkcHRlX2J5dGVzX3Blcl9yb3dfdWJfbDsKKwl1bnNpZ25lZCBpbnQgZHB0ZV9ncm91cHNfcGVyX3Jvd191Yl9sOworCS8vICAgIHVuc2lnbmVkIGludCBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbDsKKwkvLyAgICB1bnNpZ25lZCBpbnQgbWV0YV9ieXRlc19wZXJfcm93X3ViX2w7CisKKwkvLyAgICB1bnNpZ25lZCBpbnQgc3dhdGhfaGVpZ2h0X2M7CisJdW5zaWduZWQgaW50IHN3YXRoX3dpZHRoX3ViX2M7CisJLy8gICB1bnNpZ25lZCBpbnQgZHB0ZV9ieXRlc19wZXJfcm93X3ViX2M7CisJdW5zaWduZWQgaW50IGRwdGVfZ3JvdXBzX3Blcl9yb3dfdWJfYzsKKworCXVuc2lnbmVkIGludCBtZXRhX2NodW5rc19wZXJfcm93X3ViX2w7CisJdW5zaWduZWQgaW50IG1ldGFfY2h1bmtzX3Blcl9yb3dfdWJfYzsKKwl1bnNpZ25lZCBpbnQgdnVwZGF0ZV9vZmZzZXQ7CisJdW5zaWduZWQgaW50IHZ1cGRhdGVfd2lkdGg7CisJdW5zaWduZWQgaW50IHZyZWFkeV9vZmZzZXQ7CisKKwl1bnNpZ25lZCBpbnQgZHBwY2xrX2RlbGF5X3N1YnRvdGFsOworCXVuc2lnbmVkIGludCBkaXNwY2xrX2RlbGF5X3N1YnRvdGFsOworCXVuc2lnbmVkIGludCBwaXhlbF9yYXRlX2RlbGF5X3N1YnRvdGFsOworCisJdW5zaWduZWQgaW50IHZzdGFydHVwX3N0YXJ0OworCXVuc2lnbmVkIGludCBkc3RfeF9hZnRlcl9zY2FsZXI7CisJdW5zaWduZWQgaW50IGRzdF95X2FmdGVyX3NjYWxlcjsKKwlkb3VibGUgbGluZV93YWl0OworCWRvdWJsZSBkc3RfeV9wcmVmZXRjaDsKKwlkb3VibGUgZHN0X3lfcGVyX3ZtX3ZibGFuazsKKwlkb3VibGUgZHN0X3lfcGVyX3Jvd192Ymxhbms7CisJZG91YmxlIGRzdF95X3Blcl92bV9mbGlwOworCWRvdWJsZSBkc3RfeV9wZXJfcm93X2ZsaXA7CisJZG91YmxlIG1pbl9kc3RfeV9wZXJfdm1fdmJsYW5rOworCWRvdWJsZSBtaW5fZHN0X3lfcGVyX3Jvd192Ymxhbms7CisJZG91YmxlIGxzdzsKKwlkb3VibGUgdnJhdGlvX3ByZV9sOworCWRvdWJsZSB2cmF0aW9fcHJlX2M7CisJdW5zaWduZWQgaW50IHJlcV9wZXJfc3dhdGhfdWJfbDsKKwl1bnNpZ25lZCBpbnQgcmVxX3Blcl9zd2F0aF91Yl9jOworCXVuc2lnbmVkIGludCBtZXRhX3Jvd19oZWlnaHRfbDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVpZ2h0X2M7CisJdW5zaWduZWQgaW50IHN3YXRoX3dpZHRoX3BpeGVsc191Yl9sOworCXVuc2lnbmVkIGludCBzd2F0aF93aWR0aF9waXhlbHNfdWJfYzsKKwl1bnNpZ25lZCBpbnQgc2NhbGVyX3JlY19pbl93aWR0aF9sOworCXVuc2lnbmVkIGludCBzY2FsZXJfcmVjX2luX3dpZHRoX2M7CisJdW5zaWduZWQgaW50IGRwdGVfcm93X2hlaWdodF9sOworCXVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRfYzsKKwlkb3VibGUgaHNjYWxlX3BpeGVsX3JhdGVfbDsKKwlkb3VibGUgaHNjYWxlX3BpeGVsX3JhdGVfYzsKKwlkb3VibGUgbWluX2hyYXRpb19mYWN0X2w7CisJZG91YmxlIG1pbl9ocmF0aW9fZmFjdF9jOworCWRvdWJsZSByZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2w7CisJZG91YmxlIHJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYzsKKwlkb3VibGUgcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2w7CisJZG91YmxlIHJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9jOworCisJZG91YmxlIHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sOworCWRvdWJsZSByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfYzsKKwlkb3VibGUgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbDsKKwlkb3VibGUgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfYzsKKworCXVuc2lnbmVkIGludCBmdWxsX3JlY291dF93aWR0aDsKKwlkb3VibGUgeGZjX3RyYW5zZmVyX2RlbGF5OworCWRvdWJsZSB4ZmNfcHJlY2hhcmdlX2RlbGF5OworCWRvdWJsZSB4ZmNfcmVtb3RlX3N1cmZhY2VfZmxpcF9sYXRlbmN5OworCWRvdWJsZSB4ZmNfZHN0X3lfZGVsdGFfZHJxX2xpbWl0OworCWRvdWJsZSB4ZmNfcHJlZmV0Y2hfbWFyZ2luOworCWRvdWJsZSByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMDsKKwlkb3VibGUgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMDsKKwlkb3VibGUgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjE7CisJZG91YmxlIHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1cjE7CisKKwltZW1zZXQoZGlzcF9kbGdfcmVncywgMCwgc2l6ZW9mKCpkaXNwX2RsZ19yZWdzKSk7CisJbWVtc2V0KGRpc3BfdHR1X3JlZ3MsIDAsIHNpemVvZigqZGlzcF90dHVfcmVncykpOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogIGNzdGF0ZV9lbiA9ICVkXG4iLCBfX2Z1bmNfXywgY3N0YXRlX2VuKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiAgcHN0YXRlX2VuID0gJWRcbiIsIF9fZnVuY19fLCBwc3RhdGVfZW4pOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogZHBwY2xrX2ZyZXFfaW5fbWh6ICAgICA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgZHBwY2xrX2ZyZXFfaW5fbWh6KTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBkaXNwY2xrX2ZyZXFfaW5fbWh6ICAgID0gJTMuMmZcbiIsIF9fZnVuY19fLCBkaXNwY2xrX2ZyZXFfaW5fbWh6KTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZWZjbGtfZnJlcV9pbl9taHogICAgID0gJTMuMmZcbiIsIF9fZnVuY19fLCByZWZjbGtfZnJlcV9pbl9taHopOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHBjbGtfZnJlcV9pbl9taHogICAgICAgPSAlMy4yZlxuIiwgX19mdW5jX18sIHBjbGtfZnJlcV9pbl9taHopOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGludGVybGFjZWQgICAgICAgICAgICAgPSAlZFxuIiwgX19mdW5jX18sIGludGVybGFjZWQpOworCUFTU0VSVChyZWZfZnJlcV90b19waXhfZnJlcSA8IDQuMCk7CisKKwlkaXNwX2RsZ19yZWdzLT5yZWZfZnJlcV90b19waXhfZnJlcSA9CisJCQkodW5zaWduZWQgaW50KSAocmVmX2ZyZXFfdG9fcGl4X2ZyZXEgKiBkbWxfcG93KDIsIDE5KSk7CisJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9odG90YWwgPSAodW5zaWduZWQgaW50KSAocmVmX2ZyZXFfdG9fcGl4X2ZyZXEgKiAoZG91YmxlKSBodG90YWwKKwkJCSogZG1sX3BvdygyLCA4KSk7CisJZGlzcF9kbGdfcmVncy0+ZGxnX3ZibGFua19lbmQgPSBpbnRlcmxhY2VkID8gKHZibGFua19lbmQgLyAyKSA6IHZibGFua19lbmQ7IC8vIDE1IGJpdHMKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfaF9ibGFua19lbmQgPSAodW5zaWduZWQgaW50KSAoKGRvdWJsZSkgaGJsYW5rX2VuZAorCQkJKiAoZG91YmxlKSByZWZfZnJlcV90b19waXhfZnJlcSk7CisJQVNTRVJUKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19oX2JsYW5rX2VuZCA8ICh1bnNpZ25lZCBpbnQpIGRtbF9wb3coMiwgMTMpKTsKKworCW1pbl9kY2ZjbGtfbWh6ID0gZGxnX3N5c19wYXJhbS5kZWVwc2xlZXBfZGNmY2xrX21oejsKKwl0X2NhbGNfdXMgPSBnZXRfdGNhbGMobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMpOworCW1pbl90dHVfdmJsYW5rID0gZ2V0X21pbl90dHVfdmJsYW5rKG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzLCBwaXBlX2lkeCk7CisKKwltaW5fZHN0X3lfdHR1X3ZibGFuayA9IG1pbl90dHVfdmJsYW5rICogcGNsa19mcmVxX2luX21oeiAvIChkb3VibGUpIGh0b3RhbDsKKwlkbGdfdmJsYW5rX3N0YXJ0ID0gaW50ZXJsYWNlZCA/ICh2Ymxhbmtfc3RhcnQgLyAyKSA6IHZibGFua19zdGFydDsKKworCWRpc3BfZGxnX3JlZ3MtPm1pbl9kc3RfeV9uZXh0X3N0YXJ0ID0gKHVuc2lnbmVkIGludCkgKCgoZG91YmxlKSBkbGdfdmJsYW5rX3N0YXJ0CisJCQkrIG1pbl9kc3RfeV90dHVfdmJsYW5rKSAqIGRtbF9wb3coMiwgMikpOworCUFTU0VSVChkaXNwX2RsZ19yZWdzLT5taW5fZHN0X3lfbmV4dF9zdGFydCA8ICh1bnNpZ25lZCBpbnQpIGRtbF9wb3coMiwgMTgpKTsKKworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IG1pbl9kY2ZjbGtfbWh6ICAgICAgICAgICAgICAgICAgICAgICAgID0gJTMuMmZcbiIsCisJCQlfX2Z1bmNfXywKKwkJCW1pbl9kY2ZjbGtfbWh6KTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBtaW5fdHR1X3ZibGFuayAgICAgICAgICAgICAgICAgICAgICAgICA9ICUzLjJmXG4iLAorCQkJX19mdW5jX18sCisJCQltaW5fdHR1X3ZibGFuayk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogbWluX2RzdF95X3R0dV92YmxhbmsgICAgICAgICAgICAgICAgICAgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJbWluX2RzdF95X3R0dV92YmxhbmspOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHRfY2FsY191cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJTMuMmZcbiIsCisJCQlfX2Z1bmNfXywKKwkJCXRfY2FsY191cyk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogZGlzcF9kbGdfcmVncy0+bWluX2RzdF95X25leHRfc3RhcnQgICAgPSAweCUweFxuIiwKKwkJCV9fZnVuY19fLAorCQkJZGlzcF9kbGdfcmVncy0+bWluX2RzdF95X25leHRfc3RhcnQpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHJlZl9mcmVxX3RvX3BpeF9mcmVxICAgICAgICAgICAgICAgICAgID0gJTMuMmZcbiIsCisJCQlfX2Z1bmNfXywKKwkJCXJlZl9mcmVxX3RvX3BpeF9mcmVxKTsKKworCS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkvLyBTZWN0aW9uIDEuMTUuMi4yOiBQcmVmZXRjaCwgQWN0aXZlIGFuZCBUVFUKKwkvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJLy8gUHJlZmV0Y2ggQ2FsYworCS8vIFNvdXJjZQorLy8gICAgICAgICAgICAgZGNjX2VuICAgICAgICAgICAgICA9IHNyYy5kY2M7CisJZHVhbF9wbGFuZSA9IGlzX2R1YWxfcGxhbmUoKGVudW0gc291cmNlX2Zvcm1hdF9jbGFzcykoc3JjLT5zb3VyY2VfZm9ybWF0KSk7CisJbW9kZV80MjIgPSAwOyAvLyBGSVhNRQorCWFjY2Vzc19kaXIgPSAoc3JjLT5zb3VyY2Vfc2NhbiA9PSBkbV92ZXJ0KTsgLy8gdnAgYWNjZXNzIGRpcmVjdGlvbjogaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBhY2Nlc3NlZAorLy8gICAgICBieXRlc19wZXJfZWxlbWVudF9sID0gZ2V0X2J5dGVzX3Blcl9lbGVtZW50KHNvdXJjZV9mb3JtYXRfY2xhc3Moc3JjLnNvdXJjZV9mb3JtYXQpLCAwKTsKKy8vICAgICAgYnl0ZXNfcGVyX2VsZW1lbnRfYyA9IGdldF9ieXRlc19wZXJfZWxlbWVudChzb3VyY2VfZm9ybWF0X2NsYXNzKHNyYy5zb3VyY2VfZm9ybWF0KSwgMSk7CisJdnBfaGVpZ2h0X2wgPSBzcmMtPnZpZXdwb3J0X2hlaWdodDsKKwl2cF93aWR0aF9sID0gc3JjLT52aWV3cG9ydF93aWR0aDsKKwl2cF9oZWlnaHRfYyA9IHNyYy0+dmlld3BvcnRfaGVpZ2h0X2M7CisJdnBfd2lkdGhfYyA9IHNyYy0+dmlld3BvcnRfd2lkdGhfYzsKKworCS8vIFNjYWxpbmcKKwlodGFwc19sID0gdGFwcy0+aHRhcHM7CisJaHRhcHNfYyA9IHRhcHMtPmh0YXBzX2M7CisJaHJhdGlvX2wgPSBzY2wtPmhzY2xfcmF0aW87CisJaHJhdGlvX2MgPSBzY2wtPmhzY2xfcmF0aW9fYzsKKwl2cmF0aW9fbCA9IHNjbC0+dnNjbF9yYXRpbzsKKwl2cmF0aW9fYyA9IHNjbC0+dnNjbF9yYXRpb19jOworCXNjbF9lbmFibGUgPSBzY2wtPnNjbF9lbmFibGU7CisKKwlsaW5lX3RpbWVfaW5fdXMgPSAoaHRvdGFsIC8gcGNsa19mcmVxX2luX21oeik7CisvLyAgICAgdmluaXRfbCAgICAgICAgID0gc2NsLnZpbml0OworLy8gICAgIHZpbml0X2MgICAgICAgICA9IHNjbC52aW5pdF9jOworLy8gICAgIHZpbml0X2JvdF9sICAgICA9IHNjbC52aW5pdF9ib3Q7CisvLyAgICAgdmluaXRfYm90X2MgICAgID0gc2NsLnZpbml0X2JvdF9jOworCisvLyAgICB1bnNpZ25lZCBpbnQgc3dhdGhfaGVpZ2h0X2wgICAgICAgICAgICAgICAgID0gcnFfZGxnX3BhcmFtLnJxX2wuc3dhdGhfaGVpZ2h0OworCXN3YXRoX3dpZHRoX3ViX2wgPSBycV9kbGdfcGFyYW0ucnFfbC5zd2F0aF93aWR0aF91YjsKKy8vICAgIHVuc2lnbmVkIGludCBkcHRlX2J5dGVzX3Blcl9yb3dfdWJfbCAgICAgICAgPSBycV9kbGdfcGFyYW0ucnFfbC5kcHRlX2J5dGVzX3Blcl9yb3dfdWI7CisJZHB0ZV9ncm91cHNfcGVyX3Jvd191Yl9sID0gcnFfZGxnX3BhcmFtLnJxX2wuZHB0ZV9ncm91cHNfcGVyX3Jvd191YjsKKy8vICAgIHVuc2lnbmVkIGludCBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbCAgPSBycV9kbGdfcGFyYW0ucnFfbC5tZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWI7CisvLyAgICB1bnNpZ25lZCBpbnQgbWV0YV9ieXRlc19wZXJfcm93X3ViX2wgICAgICAgID0gcnFfZGxnX3BhcmFtLnJxX2wubWV0YV9ieXRlc19wZXJfcm93X3ViOworCisvLyAgICB1bnNpZ25lZCBpbnQgc3dhdGhfaGVpZ2h0X2MgICAgICAgICAgICAgICAgID0gcnFfZGxnX3BhcmFtLnJxX2Muc3dhdGhfaGVpZ2h0OworCXN3YXRoX3dpZHRoX3ViX2MgPSBycV9kbGdfcGFyYW0ucnFfYy5zd2F0aF93aWR0aF91YjsKKwkvLyAgIGRwdGVfYnl0ZXNfcGVyX3Jvd191Yl9jICAgICAgICA9IHJxX2RsZ19wYXJhbS5ycV9jLmRwdGVfYnl0ZXNfcGVyX3Jvd191YjsKKwlkcHRlX2dyb3Vwc19wZXJfcm93X3ViX2MgPSBycV9kbGdfcGFyYW0ucnFfYy5kcHRlX2dyb3Vwc19wZXJfcm93X3ViOworCisJbWV0YV9jaHVua3NfcGVyX3Jvd191Yl9sID0gcnFfZGxnX3BhcmFtLnJxX2wubWV0YV9jaHVua3NfcGVyX3Jvd191YjsKKwltZXRhX2NodW5rc19wZXJfcm93X3ViX2MgPSBycV9kbGdfcGFyYW0ucnFfYy5tZXRhX2NodW5rc19wZXJfcm93X3ViOworCXZ1cGRhdGVfb2Zmc2V0ID0gZHN0LT52dXBkYXRlX29mZnNldDsKKwl2dXBkYXRlX3dpZHRoID0gZHN0LT52dXBkYXRlX3dpZHRoOworCXZyZWFkeV9vZmZzZXQgPSBkc3QtPnZyZWFkeV9vZmZzZXQ7CisKKwlkcHBjbGtfZGVsYXlfc3VidG90YWwgPSBtb2RlX2xpYi0+aXAuZHBwY2xrX2RlbGF5X3N1YnRvdGFsOworCWRpc3BjbGtfZGVsYXlfc3VidG90YWwgPSBtb2RlX2xpYi0+aXAuZGlzcGNsa19kZWxheV9zdWJ0b3RhbDsKKworCWlmIChzY2xfZW5hYmxlKQorCQlkcHBjbGtfZGVsYXlfc3VidG90YWwgKz0gbW9kZV9saWItPmlwLmRwcGNsa19kZWxheV9zY2w7CisJZWxzZQorCQlkcHBjbGtfZGVsYXlfc3VidG90YWwgKz0gbW9kZV9saWItPmlwLmRwcGNsa19kZWxheV9zY2xfbGJfb25seTsKKworCWRwcGNsa19kZWxheV9zdWJ0b3RhbCArPSBtb2RlX2xpYi0+aXAuZHBwY2xrX2RlbGF5X2NudmNfZm9ybWF0dGVyCisJCQkrIHNyYy0+bnVtX2N1cnNvcnMgKiBtb2RlX2xpYi0+aXAuZHBwY2xrX2RlbGF5X2NudmNfY3Vyc29yOworCisJaWYgKGRvdXQtPmRzY19lbmFibGUpIHsKKwkJZG91YmxlIGRzY19kZWxheSA9IGdldF9kc2NfZGVsYXkobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMsIHBpcGVfaWR4KTsKKworCQlkaXNwY2xrX2RlbGF5X3N1YnRvdGFsICs9IGRzY19kZWxheTsKKwl9CisKKwlwaXhlbF9yYXRlX2RlbGF5X3N1YnRvdGFsID0gZHBwY2xrX2RlbGF5X3N1YnRvdGFsICogcGNsa19mcmVxX2luX21oeiAvIGRwcGNsa19mcmVxX2luX21oegorCQkJKyBkaXNwY2xrX2RlbGF5X3N1YnRvdGFsICogcGNsa19mcmVxX2luX21oeiAvIGRpc3BjbGtfZnJlcV9pbl9taHo7CisKKwl2c3RhcnR1cF9zdGFydCA9IGRzdC0+dnN0YXJ0dXBfc3RhcnQ7CisJaWYgKGludGVybGFjZWQpIHsKKwkJaWYgKHZzdGFydHVwX3N0YXJ0IC8gMi4wCisJCQkJLSAoZG91YmxlKSAodnJlYWR5X29mZnNldCArIHZ1cGRhdGVfd2lkdGggKyB2dXBkYXRlX29mZnNldCkgLyBodG90YWwKKwkJCQk8PSB2YmxhbmtfZW5kIC8gMi4wKQorCQkJZGlzcF9kbGdfcmVncy0+dnJlYWR5X2FmdGVyX3Zjb3VudDAgPSAxOworCQllbHNlCisJCQlkaXNwX2RsZ19yZWdzLT52cmVhZHlfYWZ0ZXJfdmNvdW50MCA9IDA7CisJfSBlbHNlIHsKKwkJaWYgKHZzdGFydHVwX3N0YXJ0CisJCQkJLSAoZG91YmxlKSAodnJlYWR5X29mZnNldCArIHZ1cGRhdGVfd2lkdGggKyB2dXBkYXRlX29mZnNldCkgLyBodG90YWwKKwkJCQk8PSB2YmxhbmtfZW5kKQorCQkJZGlzcF9kbGdfcmVncy0+dnJlYWR5X2FmdGVyX3Zjb3VudDAgPSAxOworCQllbHNlCisJCQlkaXNwX2RsZ19yZWdzLT52cmVhZHlfYWZ0ZXJfdmNvdW50MCA9IDA7CisJfQorCisJLy8gVE9ETzogV2hlcmUgaXMgdGhpcyBjb21pbmcgZnJvbT8KKwlpZiAoaW50ZXJsYWNlZCkKKwkJdnN0YXJ0dXBfc3RhcnQgPSB2c3RhcnR1cF9zdGFydCAvIDI7CisKKwkvLyBUT0RPOiBXaGF0IGlmIHRoaXMgbWluX3ZibGFuayBkb2Vzbid0IG1hdGNoIHRoZSB2YWx1ZSBpbiB0aGUgZG1sX2NvbmZpZ19zZXR0aW5ncy5jcHA/CisJaWYgKHZzdGFydHVwX3N0YXJ0ID49IG1pbl92YmxhbmspIHsKKwkJZG1sX3ByaW50KCJXQVJOSU5HOiBETUxfRExHOiAlczogdmJsYW5rX3N0YXJ0PSVkIHZibGFua19lbmQ9JWRcbiIsCisJCQkJX19mdW5jX18sCisJCQkJdmJsYW5rX3N0YXJ0LAorCQkJCXZibGFua19lbmQpOworCQlkbWxfcHJpbnQoIldBUk5JTkc6IERNTF9ETEc6ICVzOiB2c3RhcnR1cF9zdGFydD0lZCBzaG91bGQgYmUgbGVzcyB0aGFuIG1pbl92Ymxhbms9JWRcbiIsCisJCQkJX19mdW5jX18sCisJCQkJdnN0YXJ0dXBfc3RhcnQsCisJCQkJbWluX3ZibGFuayk7CisJCW1pbl92YmxhbmsgPSB2c3RhcnR1cF9zdGFydCArIDE7CisJCWRtbF9wcmludCgiV0FSTklORzogRE1MX0RMRzogJXM6IHZzdGFydHVwX3N0YXJ0PSVkIHNob3VsZCBiZSBsZXNzIHRoYW4gbWluX3ZibGFuaz0lZFxuIiwKKwkJCQlfX2Z1bmNfXywKKwkJCQl2c3RhcnR1cF9zdGFydCwKKwkJCQltaW5fdmJsYW5rKTsKKwl9CisKKwlkc3RfeF9hZnRlcl9zY2FsZXIgPSBnZXRfZHN0X3hfYWZ0ZXJfc2NhbGVyKG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzLCBwaXBlX2lkeCk7CisJZHN0X3lfYWZ0ZXJfc2NhbGVyID0gZ2V0X2RzdF95X2FmdGVyX3NjYWxlcihtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogaHRvdGFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAlZFxuIiwgX19mdW5jX18sIGh0b3RhbCk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcGl4ZWxfcmF0ZV9kZWxheV9zdWJ0b3RhbCAgICAgICAgICAgICAgPSAlZFxuIiwKKwkJCV9fZnVuY19fLAorCQkJcGl4ZWxfcmF0ZV9kZWxheV9zdWJ0b3RhbCk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogZHN0X3hfYWZ0ZXJfc2NhbGVyICAgICAgICAgICAgICAgICAgICAgPSAlZFxuIiwKKwkJCV9fZnVuY19fLAorCQkJZHN0X3hfYWZ0ZXJfc2NhbGVyKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBkc3RfeV9hZnRlcl9zY2FsZXIgICAgICAgICAgICAgICAgICAgICA9ICVkXG4iLAorCQkJX19mdW5jX18sCisJCQlkc3RfeV9hZnRlcl9zY2FsZXIpOworCisJLy8gTHdhaXQKKwlsaW5lX3dhaXQgPSBtb2RlX2xpYi0+c29jLnVyZ2VudF9sYXRlbmN5X3VzOworCWlmIChjc3RhdGVfZW4pCisJCWxpbmVfd2FpdCA9IGRtbF9tYXgobW9kZV9saWItPnNvYy5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cywgbGluZV93YWl0KTsKKwlpZiAocHN0YXRlX2VuKQorCQlsaW5lX3dhaXQgPSBkbWxfbWF4KG1vZGVfbGliLT5zb2MuZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV91cworCQkJCQkJKyBtb2RlX2xpYi0+c29jLnVyZ2VudF9sYXRlbmN5X3VzLAorCQkJCWxpbmVfd2FpdCk7CisJbGluZV93YWl0ID0gbGluZV93YWl0IC8gbGluZV90aW1lX2luX3VzOworCisJZHN0X3lfcHJlZmV0Y2ggPSBnZXRfZHN0X3lfcHJlZmV0Y2gobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMsIHBpcGVfaWR4KTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBkc3RfeV9wcmVmZXRjaCAoYWZ0ZXIgcm5kKSA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgZHN0X3lfcHJlZmV0Y2gpOworCisJZHN0X3lfcGVyX3ZtX3ZibGFuayA9IGdldF9kc3RfeV9wZXJfdm1fdmJsYW5rKG1vZGVfbGliLAorCQkJZTJlX3BpcGVfcGFyYW0sCisJCQludW1fcGlwZXMsCisJCQlwaXBlX2lkeCk7CisJZHN0X3lfcGVyX3Jvd192YmxhbmsgPSBnZXRfZHN0X3lfcGVyX3Jvd192YmxhbmsobW9kZV9saWIsCisJCQllMmVfcGlwZV9wYXJhbSwKKwkJCW51bV9waXBlcywKKwkJCXBpcGVfaWR4KTsKKwlkc3RfeV9wZXJfdm1fZmxpcCA9IGdldF9kc3RfeV9wZXJfdm1fZmxpcChtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpOworCWRzdF95X3Blcl9yb3dfZmxpcCA9IGdldF9kc3RfeV9wZXJfcm93X2ZsaXAobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMsIHBpcGVfaWR4KTsKKworCW1pbl9kc3RfeV9wZXJfdm1fdmJsYW5rID0gOC4wOworCW1pbl9kc3RfeV9wZXJfcm93X3ZibGFuayA9IDE2LjA7CisKKwkvLyBtYWdpYyEKKwlpZiAoaHRvdGFsIDw9IDc1KSB7CisJCW1pbl92YmxhbmsgPSAzMDA7CisJCW1pbl9kc3RfeV9wZXJfdm1fdmJsYW5rID0gMTAwLjA7CisJCW1pbl9kc3RfeV9wZXJfcm93X3ZibGFuayA9IDEwMC4wOworCX0KKworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGRzdF95X3Blcl92bV92YmxhbmsgICAgPSAlMy4yZlxuIiwgX19mdW5jX18sIGRzdF95X3Blcl92bV92YmxhbmspOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGRzdF95X3Blcl9yb3dfdmJsYW5rICAgPSAlMy4yZlxuIiwgX19mdW5jX18sIGRzdF95X3Blcl9yb3dfdmJsYW5rKTsKKworCUFTU0VSVChkc3RfeV9wZXJfdm1fdmJsYW5rIDwgbWluX2RzdF95X3Blcl92bV92YmxhbmspOworCUFTU0VSVChkc3RfeV9wZXJfcm93X3ZibGFuayA8IG1pbl9kc3RfeV9wZXJfcm93X3ZibGFuayk7CisKKwlBU1NFUlQoZHN0X3lfcHJlZmV0Y2ggPiAoZHN0X3lfcGVyX3ZtX3ZibGFuayArIGRzdF95X3Blcl9yb3dfdmJsYW5rKSk7CisJbHN3ID0gZHN0X3lfcHJlZmV0Y2ggLSAoZHN0X3lfcGVyX3ZtX3ZibGFuayArIGRzdF95X3Blcl9yb3dfdmJsYW5rKTsKKworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGxzdyA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgbHN3KTsKKworCXZyYXRpb19wcmVfbCA9IGdldF92cmF0aW9fcHJlZmV0Y2hfbChtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpOworCXZyYXRpb19wcmVfYyA9IGdldF92cmF0aW9fcHJlZmV0Y2hfYyhtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogdnJhdGlvX3ByZV9sPSUzLjJmXG4iLCBfX2Z1bmNfXywgdnJhdGlvX3ByZV9sKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiB2cmF0aW9fcHJlX2M9JTMuMmZcbiIsIF9fZnVuY19fLCB2cmF0aW9fcHJlX2MpOworCisJLy8gQWN0aXZlCisJcmVxX3Blcl9zd2F0aF91Yl9sID0gcnFfZGxnX3BhcmFtLnJxX2wucmVxX3Blcl9zd2F0aF91YjsKKwlyZXFfcGVyX3N3YXRoX3ViX2MgPSBycV9kbGdfcGFyYW0ucnFfYy5yZXFfcGVyX3N3YXRoX3ViOworCW1ldGFfcm93X2hlaWdodF9sID0gcnFfZGxnX3BhcmFtLnJxX2wubWV0YV9yb3dfaGVpZ2h0OworCW1ldGFfcm93X2hlaWdodF9jID0gcnFfZGxnX3BhcmFtLnJxX2MubWV0YV9yb3dfaGVpZ2h0OworCXN3YXRoX3dpZHRoX3BpeGVsc191Yl9sID0gMDsKKwlzd2F0aF93aWR0aF9waXhlbHNfdWJfYyA9IDA7CisJc2NhbGVyX3JlY19pbl93aWR0aF9sID0gMDsKKwlzY2FsZXJfcmVjX2luX3dpZHRoX2MgPSAwOworCWRwdGVfcm93X2hlaWdodF9sID0gcnFfZGxnX3BhcmFtLnJxX2wuZHB0ZV9yb3dfaGVpZ2h0OworCWRwdGVfcm93X2hlaWdodF9jID0gcnFfZGxnX3BhcmFtLnJxX2MuZHB0ZV9yb3dfaGVpZ2h0OworCisJaWYgKG1vZGVfNDIyKSB7CisJCXN3YXRoX3dpZHRoX3BpeGVsc191Yl9sID0gc3dhdGhfd2lkdGhfdWJfbCAqIDI7ICAvLyAqMiBmb3IgMiBwaXhlbCBwZXIgZWxlbWVudAorCQlzd2F0aF93aWR0aF9waXhlbHNfdWJfYyA9IHN3YXRoX3dpZHRoX3ViX2MgKiAyOworCX0gZWxzZSB7CisJCXN3YXRoX3dpZHRoX3BpeGVsc191Yl9sID0gc3dhdGhfd2lkdGhfdWJfbCAqIDE7CisJCXN3YXRoX3dpZHRoX3BpeGVsc191Yl9jID0gc3dhdGhfd2lkdGhfdWJfYyAqIDE7CisJfQorCisJaHNjYWxlX3BpeGVsX3JhdGVfbCA9IDAuOworCWhzY2FsZV9waXhlbF9yYXRlX2MgPSAwLjsKKwltaW5faHJhdGlvX2ZhY3RfbCA9IDEuMDsKKwltaW5faHJhdGlvX2ZhY3RfYyA9IDEuMDsKKworCWlmIChodGFwc19sIDw9IDEpCisJCW1pbl9ocmF0aW9fZmFjdF9sID0gMi4wOworCWVsc2UgaWYgKGh0YXBzX2wgPD0gNikgeworCQlpZiAoKGhyYXRpb19sICogMi4wKSA+IDQuMCkKKwkJCW1pbl9ocmF0aW9fZmFjdF9sID0gNC4wOworCQllbHNlCisJCQltaW5faHJhdGlvX2ZhY3RfbCA9IGhyYXRpb19sICogMi4wOworCX0gZWxzZSB7CisJCWlmIChocmF0aW9fbCA+IDQuMCkKKwkJCW1pbl9ocmF0aW9fZmFjdF9sID0gNC4wOworCQllbHNlCisJCQltaW5faHJhdGlvX2ZhY3RfbCA9IGhyYXRpb19sOworCX0KKworCWhzY2FsZV9waXhlbF9yYXRlX2wgPSBtaW5faHJhdGlvX2ZhY3RfbCAqIGRwcGNsa19mcmVxX2luX21oejsKKworCWlmIChodGFwc19jIDw9IDEpCisJCW1pbl9ocmF0aW9fZmFjdF9jID0gMi4wOworCWVsc2UgaWYgKGh0YXBzX2MgPD0gNikgeworCQlpZiAoKGhyYXRpb19jICogMi4wKSA+IDQuMCkKKwkJCW1pbl9ocmF0aW9fZmFjdF9jID0gNC4wOworCQllbHNlCisJCQltaW5faHJhdGlvX2ZhY3RfYyA9IGhyYXRpb19jICogMi4wOworCX0gZWxzZSB7CisJCWlmIChocmF0aW9fYyA+IDQuMCkKKwkJCW1pbl9ocmF0aW9fZmFjdF9jID0gNC4wOworCQllbHNlCisJCQltaW5faHJhdGlvX2ZhY3RfYyA9IGhyYXRpb19jOworCX0KKworCWhzY2FsZV9waXhlbF9yYXRlX2MgPSBtaW5faHJhdGlvX2ZhY3RfYyAqIGRwcGNsa19mcmVxX2luX21oejsKKworCXJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfbCA9IDAuOworCXJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYyA9IDAuOworCXJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9sID0gMC47CisJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2MgPSAwLjsKKworCXJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sID0gMC47CisJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2MgPSAwLjsKKwlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sID0gMC47CisJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfYyA9IDAuOworCisJZnVsbF9yZWNvdXRfd2lkdGggPSAwOworCS8vIEluIE9ETQorCWlmIChzcmMtPmlzX2hzcGxpdCkgeworCQkvLyBUaGlzICJoYWNrIiAgaXMgb25seSBhbGxvd2VkIChhbmQgdmFsaWQpIGZvciBNUEMgY29tYmluZS4gSW4gT0RNCisJCS8vIGNvbWJpbmUsIHlvdSBNVVNUIHNwZWNpZnkgdGhlIGZ1bGxfcmVjb3V0X3dpZHRoLi4uYWNjb3JkaW5nIHRvIE9zd2luCisJCWlmIChkc3QtPmZ1bGxfcmVjb3V0X3dpZHRoID09IDAgJiYgIWRzdC0+b2RtX2NvbWJpbmUpIHsKKwkJCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IFdhcm5pbmc6IGZ1bGxfcmVjb3V0X3dpZHRoIG5vdCBzZXQgaW4gaHNwbGl0IG1vZGVcbiIsCisJCQkJCV9fZnVuY19fKTsKKwkJCWZ1bGxfcmVjb3V0X3dpZHRoID0gZHN0LT5yZWNvdXRfd2lkdGggKiAyOyAvLyBhc3N1bWUgaGFsZiBzcGxpdCBmb3IgZGNuMQorCQl9IGVsc2UKKwkJCWZ1bGxfcmVjb3V0X3dpZHRoID0gZHN0LT5mdWxsX3JlY291dF93aWR0aDsKKwl9IGVsc2UKKwkJZnVsbF9yZWNvdXRfd2lkdGggPSBkc3QtPnJlY291dF93aWR0aDsKKworCS8vIEFzIG9mIERDTjIsIG1wY19jb21iaW5lIGFuZCBvZG1fY29tYmluZSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlCisJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sID0gZ2V0X3JlZmN5Y19wZXJfZGVsaXZlcnkobW9kZV9saWIsCisJCQlyZWZjbGtfZnJlcV9pbl9taHosCisJCQlwY2xrX2ZyZXFfaW5fbWh6LAorCQkJZHN0LT5vZG1fY29tYmluZSwKKwkJCWZ1bGxfcmVjb3V0X3dpZHRoLAorCQkJZHN0LT5oYWN0aXZlLAorCQkJdnJhdGlvX3ByZV9sLAorCQkJaHNjYWxlX3BpeGVsX3JhdGVfbCwKKwkJCXN3YXRoX3dpZHRoX3BpeGVsc191Yl9sLAorCQkJMSk7IC8vIHBlciBsaW5lCisKKwlyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfbCA9IGdldF9yZWZjeWNfcGVyX2RlbGl2ZXJ5KG1vZGVfbGliLAorCQkJcmVmY2xrX2ZyZXFfaW5fbWh6LAorCQkJcGNsa19mcmVxX2luX21oeiwKKwkJCWRzdC0+b2RtX2NvbWJpbmUsCisJCQlmdWxsX3JlY291dF93aWR0aCwKKwkJCWRzdC0+aGFjdGl2ZSwKKwkJCXZyYXRpb19sLAorCQkJaHNjYWxlX3BpeGVsX3JhdGVfbCwKKwkJCXN3YXRoX3dpZHRoX3BpeGVsc191Yl9sLAorCQkJMSk7IC8vIHBlciBsaW5lCisKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBmdWxsX3JlY291dF93aWR0aCAgICAgICAgICAgICAgPSAlZFxuIiwKKwkJCV9fZnVuY19fLAorCQkJZnVsbF9yZWNvdXRfd2lkdGgpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGhzY2FsZV9waXhlbF9yYXRlX2wgICAgICAgICAgICA9ICUzLjJmXG4iLAorCQkJX19mdW5jX18sCisJCQloc2NhbGVfcGl4ZWxfcmF0ZV9sKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2wgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfbCAgICAgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2wpOworCisJaWYgKGR1YWxfcGxhbmUpIHsKKwkJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9jID0gZ2V0X3JlZmN5Y19wZXJfZGVsaXZlcnkobW9kZV9saWIsCisJCQkJcmVmY2xrX2ZyZXFfaW5fbWh6LAorCQkJCXBjbGtfZnJlcV9pbl9taHosCisJCQkJZHN0LT5vZG1fY29tYmluZSwKKwkJCQlmdWxsX3JlY291dF93aWR0aCwKKwkJCQlkc3QtPmhhY3RpdmUsCisJCQkJdnJhdGlvX3ByZV9jLAorCQkJCWhzY2FsZV9waXhlbF9yYXRlX2MsCisJCQkJc3dhdGhfd2lkdGhfcGl4ZWxzX3ViX2MsCisJCQkJMSk7IC8vIHBlciBsaW5lCisKKwkJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2MgPSBnZXRfcmVmY3ljX3Blcl9kZWxpdmVyeShtb2RlX2xpYiwKKwkJCQlyZWZjbGtfZnJlcV9pbl9taHosCisJCQkJcGNsa19mcmVxX2luX21oeiwKKwkJCQlkc3QtPm9kbV9jb21iaW5lLAorCQkJCWZ1bGxfcmVjb3V0X3dpZHRoLAorCQkJCWRzdC0+aGFjdGl2ZSwKKwkJCQl2cmF0aW9fYywKKwkJCQloc2NhbGVfcGl4ZWxfcmF0ZV9jLAorCQkJCXN3YXRoX3dpZHRoX3BpeGVsc191Yl9jLAorCQkJCTEpOyAgLy8gcGVyIGxpbmUKKworCQlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2MgPSAlMy4yZlxuIiwKKwkJCQlfX2Z1bmNfXywKKwkJCQlyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2MpOworCQlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYyAgICAgPSAlMy4yZlxuIiwKKwkJCQlfX2Z1bmNfXywKKwkJCQlyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYyk7CisJfQorCisJLy8gVFRVIC0gTHVtYSAvIENocm9tYQorCWlmIChhY2Nlc3NfZGlyKSB7ICAvLyB2ZXJ0aWNhbCBhY2Nlc3MKKwkJc2NhbGVyX3JlY19pbl93aWR0aF9sID0gdnBfaGVpZ2h0X2w7CisJCXNjYWxlcl9yZWNfaW5fd2lkdGhfYyA9IHZwX2hlaWdodF9jOworCX0gZWxzZSB7CisJCXNjYWxlcl9yZWNfaW5fd2lkdGhfbCA9IHZwX3dpZHRoX2w7CisJCXNjYWxlcl9yZWNfaW5fd2lkdGhfYyA9IHZwX3dpZHRoX2M7CisJfQorCisJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2wgPSBnZXRfcmVmY3ljX3Blcl9kZWxpdmVyeShtb2RlX2xpYiwKKwkJCXJlZmNsa19mcmVxX2luX21oeiwKKwkJCXBjbGtfZnJlcV9pbl9taHosCisJCQlkc3QtPm9kbV9jb21iaW5lLAorCQkJZnVsbF9yZWNvdXRfd2lkdGgsCisJCQlkc3QtPmhhY3RpdmUsCisJCQl2cmF0aW9fcHJlX2wsCisJCQloc2NhbGVfcGl4ZWxfcmF0ZV9sLAorCQkJc2NhbGVyX3JlY19pbl93aWR0aF9sLAorCQkJcmVxX3Blcl9zd2F0aF91Yl9sKTsgIC8vIHBlciByZXEKKwlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sID0gZ2V0X3JlZmN5Y19wZXJfZGVsaXZlcnkobW9kZV9saWIsCisJCQlyZWZjbGtfZnJlcV9pbl9taHosCisJCQlwY2xrX2ZyZXFfaW5fbWh6LAorCQkJZHN0LT5vZG1fY29tYmluZSwKKwkJCWZ1bGxfcmVjb3V0X3dpZHRoLAorCQkJZHN0LT5oYWN0aXZlLAorCQkJdnJhdGlvX2wsCisJCQloc2NhbGVfcGl4ZWxfcmF0ZV9sLAorCQkJc2NhbGVyX3JlY19pbl93aWR0aF9sLAorCQkJcmVxX3Blcl9zd2F0aF91Yl9sKTsgIC8vIHBlciByZXEKKworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sID0gJTMuMmZcbiIsCisJCQlfX2Z1bmNfXywKKwkJCXJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sICAgICA9ICUzLjJmXG4iLAorCQkJX19mdW5jX18sCisJCQlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sKTsKKworCUFTU0VSVChyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfbCA8IGRtbF9wb3coMiwgMTMpKTsKKwlBU1NFUlQocmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbCA8IGRtbF9wb3coMiwgMTMpKTsKKworCWlmIChkdWFsX3BsYW5lKSB7CisJCXJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jID0gZ2V0X3JlZmN5Y19wZXJfZGVsaXZlcnkobW9kZV9saWIsCisJCQkJcmVmY2xrX2ZyZXFfaW5fbWh6LAorCQkJCXBjbGtfZnJlcV9pbl9taHosCisJCQkJZHN0LT5vZG1fY29tYmluZSwKKwkJCQlmdWxsX3JlY291dF93aWR0aCwKKwkJCQlkc3QtPmhhY3RpdmUsCisJCQkJdnJhdGlvX3ByZV9jLAorCQkJCWhzY2FsZV9waXhlbF9yYXRlX2MsCisJCQkJc2NhbGVyX3JlY19pbl93aWR0aF9jLAorCQkJCXJlcV9wZXJfc3dhdGhfdWJfYyk7ICAvLyBwZXIgcmVxCisJCXJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2MgPSBnZXRfcmVmY3ljX3Blcl9kZWxpdmVyeShtb2RlX2xpYiwKKwkJCQlyZWZjbGtfZnJlcV9pbl9taHosCisJCQkJcGNsa19mcmVxX2luX21oeiwKKwkJCQlkc3QtPm9kbV9jb21iaW5lLAorCQkJCWZ1bGxfcmVjb3V0X3dpZHRoLAorCQkJCWRzdC0+aGFjdGl2ZSwKKwkJCQl2cmF0aW9fYywKKwkJCQloc2NhbGVfcGl4ZWxfcmF0ZV9jLAorCQkJCXNjYWxlcl9yZWNfaW5fd2lkdGhfYywKKwkJCQlyZXFfcGVyX3N3YXRoX3ViX2MpOyAgLy8gcGVyIHJlcQorCisJCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jID0gJTMuMmZcbiIsCisJCQkJX19mdW5jX18sCisJCQkJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2MpOworCQlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jICAgICA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCXJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2MpOworCisJCUFTU0VSVChyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfYyA8IGRtbF9wb3coMiwgMTMpKTsKKwkJQVNTRVJUKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2MgPCBkbWxfcG93KDIsIDEzKSk7CisJfQorCisJLy8gWEZDCisJeGZjX3RyYW5zZmVyX2RlbGF5ID0gZ2V0X3hmY190cmFuc2Zlcl9kZWxheShtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpOworCXhmY19wcmVjaGFyZ2VfZGVsYXkgPSBnZXRfeGZjX3ByZWNoYXJnZV9kZWxheShtb2RlX2xpYiwKKwkJCWUyZV9waXBlX3BhcmFtLAorCQkJbnVtX3BpcGVzLAorCQkJcGlwZV9pZHgpOworCXhmY19yZW1vdGVfc3VyZmFjZV9mbGlwX2xhdGVuY3kgPSBnZXRfeGZjX3JlbW90ZV9zdXJmYWNlX2ZsaXBfbGF0ZW5jeShtb2RlX2xpYiwKKwkJCWUyZV9waXBlX3BhcmFtLAorCQkJbnVtX3BpcGVzLAorCQkJcGlwZV9pZHgpOworCXhmY19kc3RfeV9kZWx0YV9kcnFfbGltaXQgPSB4ZmNfcmVtb3RlX3N1cmZhY2VfZmxpcF9sYXRlbmN5OworCXhmY19wcmVmZXRjaF9tYXJnaW4gPSBnZXRfeGZjX3ByZWZldGNoX21hcmdpbihtb2RlX2xpYiwKKwkJCWUyZV9waXBlX3BhcmFtLAorCQkJbnVtX3BpcGVzLAorCQkJcGlwZV9pZHgpOworCisJLy8gVFRVIC0gQ3Vyc29yCisJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjAgPSAwLjA7CisJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMCA9IDAuMDsKKwlpZiAoc3JjLT5udW1fY3Vyc29ycyA+IDApIHsKKwkJY2FsY3VsYXRlX3R0dV9jdXJzb3IobW9kZV9saWIsCisJCQkJJnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIwLAorCQkJCSZyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIwLAorCQkJCXJlZmNsa19mcmVxX2luX21oeiwKKwkJCQlyZWZfZnJlcV90b19waXhfZnJlcSwKKwkJCQloc2NhbGVfcGl4ZWxfcmF0ZV9sLAorCQkJCXNjbC0+aHNjbF9yYXRpbywKKwkJCQl2cmF0aW9fcHJlX2wsCisJCQkJdnJhdGlvX2wsCisJCQkJc3JjLT5jdXIwX3NyY193aWR0aCwKKwkJCQkoZW51bSBjdXJzb3JfYnBwKShzcmMtPmN1cjBfYnBwKSk7CisJfQorCisJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjEgPSAwLjA7CisJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMSA9IDAuMDsKKwlpZiAoc3JjLT5udW1fY3Vyc29ycyA+IDEpIHsKKwkJY2FsY3VsYXRlX3R0dV9jdXJzb3IobW9kZV9saWIsCisJCQkJJnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIxLAorCQkJCSZyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIxLAorCQkJCXJlZmNsa19mcmVxX2luX21oeiwKKwkJCQlyZWZfZnJlcV90b19waXhfZnJlcSwKKwkJCQloc2NhbGVfcGl4ZWxfcmF0ZV9sLAorCQkJCXNjbC0+aHNjbF9yYXRpbywKKwkJCQl2cmF0aW9fcHJlX2wsCisJCQkJdnJhdGlvX2wsCisJCQkJc3JjLT5jdXIxX3NyY193aWR0aCwKKwkJCQkoZW51bSBjdXJzb3JfYnBwKShzcmMtPmN1cjFfYnBwKSk7CisJfQorCisJLy8gVFRVIC0gTWlzYworCS8vIGFsbCBoYXJkLWNvZGVkCisKKwkvLyBBc3NpZ25tZW50IHRvIHJlZ2lzdGVyIHN0cnVjdHVyZXMKKwlkaXNwX2RsZ19yZWdzLT5kc3RfeV9hZnRlcl9zY2FsZXIgPSBkc3RfeV9hZnRlcl9zY2FsZXI7IC8vIGluIHRlcm1zIG9mIGxpbmUKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfeF9hZnRlcl9zY2FsZXIgPSBkc3RfeF9hZnRlcl9zY2FsZXIgKiByZWZfZnJlcV90b19waXhfZnJlcTsgLy8gaW4gdGVybXMgb2YgcmVmY2xrCisJQVNTRVJUKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y194X2FmdGVyX3NjYWxlciA8ICh1bnNpZ25lZCBpbnQpIGRtbF9wb3coMiwgMTMpKTsKKwlkaXNwX2RsZ19yZWdzLT5kc3RfeV9wcmVmZXRjaCA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wcmVmZXRjaCAqIGRtbF9wb3coMiwgMikpOworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl92bV92YmxhbmsgPSAodW5zaWduZWQgaW50KSAoZHN0X3lfcGVyX3ZtX3ZibGFuayAqIGRtbF9wb3coMiwgMikpOworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9yb3dfdmJsYW5rID0gKHVuc2lnbmVkIGludCkgKGRzdF95X3Blcl9yb3dfdmJsYW5rICogZG1sX3BvdygyLCAyKSk7CisJZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX3ZtX2ZsaXAgPSAodW5zaWduZWQgaW50KSAoZHN0X3lfcGVyX3ZtX2ZsaXAgKiBkbWxfcG93KDIsIDIpKTsKKwlkaXNwX2RsZ19yZWdzLT5kc3RfeV9wZXJfcm93X2ZsaXAgPSAodW5zaWduZWQgaW50KSAoZHN0X3lfcGVyX3Jvd19mbGlwICogZG1sX3BvdygyLCAyKSk7CisKKwlkaXNwX2RsZ19yZWdzLT52cmF0aW9fcHJlZmV0Y2ggPSAodW5zaWduZWQgaW50KSAodnJhdGlvX3ByZV9sICogZG1sX3BvdygyLCAxOSkpOworCWRpc3BfZGxnX3JlZ3MtPnZyYXRpb19wcmVmZXRjaF9jID0gKHVuc2lnbmVkIGludCkgKHZyYXRpb19wcmVfYyAqIGRtbF9wb3coMiwgMTkpKTsKKworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX3ZibGFua19sID0KKwkJCSh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X3ZibGFuayAqIChkb3VibGUpIGh0b3RhbAorCQkJCQkqIHJlZl9mcmVxX3RvX3BpeF9mcmVxIC8gKGRvdWJsZSkgZHB0ZV9ncm91cHNfcGVyX3Jvd191Yl9sKTsKKwlBU1NFUlQoZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2wgPCAodW5zaWduZWQgaW50KSBkbWxfcG93KDIsIDEzKSk7CisKKwlpZiAoZHVhbF9wbGFuZSkgeworCQlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfYyA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X3ZibGFuaworCQkJCSogKGRvdWJsZSkgaHRvdGFsICogcmVmX2ZyZXFfdG9fcGl4X2ZyZXEKKwkJCQkvIChkb3VibGUpIGRwdGVfZ3JvdXBzX3Blcl9yb3dfdWJfYyk7CisJCUFTU0VSVChkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfYworCQkJCQkJPCAodW5zaWduZWQgaW50KSBkbWxfcG93KDIsIDEzKSk7CisJfQorCisJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX3ZibGFua19sID0KKwkJCSh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X3ZibGFuayAqIChkb3VibGUpIGh0b3RhbAorCQkJCQkqIHJlZl9mcmVxX3RvX3BpeF9mcmVxIC8gKGRvdWJsZSkgbWV0YV9jaHVua3NfcGVyX3Jvd191Yl9sKTsKKwlBU1NFUlQoZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX3ZibGFua19sIDwgKHVuc2lnbmVkIGludCkgZG1sX3BvdygyLCAxMykpOworCisJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX3ZibGFua19jID0KKwkJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua192YmxhbmtfbDsgLy8gZGNjIGZvciA0OjI6MCBpcyBub3Qgc3VwcG9ydGVkIGluIGRjbjEuMC4gIGFzc2lnbmVkIHRvIGJlIHRoZSBzYW1lIGFzIF9sIGZvciBub3cKKworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBfbCA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X2ZsaXAgKiBodG90YWwKKwkJCSogcmVmX2ZyZXFfdG9fcGl4X2ZyZXEpIC8gZHB0ZV9ncm91cHNfcGVyX3Jvd191Yl9sOworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua19mbGlwX2wgPSAodW5zaWduZWQgaW50KSAoZHN0X3lfcGVyX3Jvd19mbGlwICogaHRvdGFsCisJCQkqIHJlZl9mcmVxX3RvX3BpeF9mcmVxKSAvIG1ldGFfY2h1bmtzX3Blcl9yb3dfdWJfbDsKKworCWlmIChkdWFsX3BsYW5lKSB7CisJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBfYyA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X2ZsaXAKKwkJCQkqIGh0b3RhbCAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxKSAvIGRwdGVfZ3JvdXBzX3Blcl9yb3dfdWJfYzsKKwkJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX2ZsaXBfYyA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X2ZsaXAKKwkJCQkqIGh0b3RhbCAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxKSAvIG1ldGFfY2h1bmtzX3Blcl9yb3dfdWJfYzsKKwl9CisKKwlkaXNwX2RsZ19yZWdzLT5kc3RfeV9wZXJfcHRlX3Jvd19ub21fbCA9ICh1bnNpZ25lZCBpbnQpICgoZG91YmxlKSBkcHRlX3Jvd19oZWlnaHRfbAorCQkJLyAoZG91YmxlKSB2cmF0aW9fbCAqIGRtbF9wb3coMiwgMikpOworCUFTU0VSVChkaXNwX2RsZ19yZWdzLT5kc3RfeV9wZXJfcHRlX3Jvd19ub21fbCA8ICh1bnNpZ25lZCBpbnQpIGRtbF9wb3coMiwgMTcpKTsKKworCWlmIChkdWFsX3BsYW5lKSB7CisJCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9wdGVfcm93X25vbV9jID0gKHVuc2lnbmVkIGludCkgKChkb3VibGUpIGRwdGVfcm93X2hlaWdodF9jCisJCQkJLyAoZG91YmxlKSB2cmF0aW9fYyAqIGRtbF9wb3coMiwgMikpOworCQlpZiAoZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2MgPj0gKHVuc2lnbmVkIGludCkgZG1sX3BvdygyLCAxNykpIHsKKwkJCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IFdhcm5pbmcgZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2MgJXUgbGFyZ2VyIHRoYW4gc3VwcG9ydGVkIGJ5IHJlZ2lzdGVyIGZvcm1hdCBVMTUuMiAldVxuIiwKKwkJCQkJX19mdW5jX18sCisJCQkJCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9wdGVfcm93X25vbV9jLAorCQkJCQkodW5zaWduZWQgaW50KSBkbWxfcG93KDIsIDE3KSAtIDEpOworCQl9CisJfQorCisJZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX21ldGFfcm93X25vbV9sID0gKHVuc2lnbmVkIGludCkgKChkb3VibGUpIG1ldGFfcm93X2hlaWdodF9sCisJCQkvIChkb3VibGUpIHZyYXRpb19sICogZG1sX3BvdygyLCAyKSk7CisJQVNTRVJUKGRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9tZXRhX3Jvd19ub21fbCA8ICh1bnNpZ25lZCBpbnQpIGRtbF9wb3coMiwgMTcpKTsKKworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9tZXRhX3Jvd19ub21fYyA9IGRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9tZXRhX3Jvd19ub21fbDsgLy8gVE9ETzogZGNjIGZvciA0OjI6MCBpcyBub3Qgc3VwcG9ydGVkIGluIGRjbjEuMC4gIGFzc2lnbmVkIHRvIGJlIHRoZSBzYW1lIGFzIF9sIGZvciBub3cKKworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX25vbV9sID0gKHVuc2lnbmVkIGludCkgKChkb3VibGUpIGRwdGVfcm93X2hlaWdodF9sCisJCQkvIChkb3VibGUpIHZyYXRpb19sICogKGRvdWJsZSkgaHRvdGFsICogcmVmX2ZyZXFfdG9fcGl4X2ZyZXEKKwkJCS8gKGRvdWJsZSkgZHB0ZV9ncm91cHNfcGVyX3Jvd191Yl9sKTsKKwlpZiAoZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2wgPj0gKHVuc2lnbmVkIGludCkgZG1sX3BvdygyLCAyMykpCisJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX25vbV9sID0gZG1sX3BvdygyLCAyMykgLSAxOworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fbCA9ICh1bnNpZ25lZCBpbnQpICgoZG91YmxlKSBtZXRhX3Jvd19oZWlnaHRfbAorCQkJLyAoZG91YmxlKSB2cmF0aW9fbCAqIChkb3VibGUpIGh0b3RhbCAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxCisJCQkvIChkb3VibGUpIG1ldGFfY2h1bmtzX3Blcl9yb3dfdWJfbCk7CisJaWYgKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fbCA+PSAodW5zaWduZWQgaW50KSBkbWxfcG93KDIsIDIzKSkKKwkJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9sID0gZG1sX3BvdygyLCAyMykgLSAxOworCisJaWYgKGR1YWxfcGxhbmUpIHsKKwkJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2MgPQorCQkJCSh1bnNpZ25lZCBpbnQpICgoZG91YmxlKSBkcHRlX3Jvd19oZWlnaHRfYyAvIChkb3VibGUpIHZyYXRpb19jCisJCQkJCQkqIChkb3VibGUpIGh0b3RhbCAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxCisJCQkJCQkvIChkb3VibGUpIGRwdGVfZ3JvdXBzX3Blcl9yb3dfdWJfYyk7CisJCWlmIChkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9ub21fYyA+PSAodW5zaWduZWQgaW50KSBkbWxfcG93KDIsIDIzKSkKKwkJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX25vbV9jID0gZG1sX3BvdygyLCAyMykgLSAxOworCisJCS8vIFRPRE86IElzIHRoaXMgdGhlIHJpZ2h0IGNhbGN1bGF0aW9uPyBEb2VzIGh0b3RhbCBuZWVkIHRvIGJlIGhhbHZlZD8KKwkJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9jID0KKwkJCQkodW5zaWduZWQgaW50KSAoKGRvdWJsZSkgbWV0YV9yb3dfaGVpZ2h0X2MgLyAoZG91YmxlKSB2cmF0aW9fYworCQkJCQkJKiAoZG91YmxlKSBodG90YWwgKiByZWZfZnJlcV90b19waXhfZnJlcQorCQkJCQkJLyAoZG91YmxlKSBtZXRhX2NodW5rc19wZXJfcm93X3ViX2MpOworCQlpZiAoZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9jID49ICh1bnNpZ25lZCBpbnQpIGRtbF9wb3coMiwgMjMpKQorCQkJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9jID0gZG1sX3BvdygyLCAyMykgLSAxOworCX0KKworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfbCA9ICh1bnNpZ25lZCBpbnQpIGRtbF9mbG9vcihyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2wsCisJCQkxKTsKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfbCA9ICh1bnNpZ25lZCBpbnQpIGRtbF9mbG9vcihyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfbCwKKwkJCTEpOworCUFTU0VSVChkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2wgPCAodW5zaWduZWQgaW50KSBkbWxfcG93KDIsIDEzKSk7CisJQVNTRVJUKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9sIDwgKHVuc2lnbmVkIGludCkgZG1sX3BvdygyLCAxMykpOworCisJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9jID0gKHVuc2lnbmVkIGludCkgZG1sX2Zsb29yKHJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYywKKwkJCTEpOworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9jID0gKHVuc2lnbmVkIGludCkgZG1sX2Zsb29yKHJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9jLAorCQkJMSk7CisJQVNTRVJUKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYyA8ICh1bnNpZ25lZCBpbnQpIGRtbF9wb3coMiwgMTMpKTsKKwlBU1NFUlQoZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2MgPCAodW5zaWduZWQgaW50KSBkbWxfcG93KDIsIDEzKSk7CisKKwlkaXNwX2RsZ19yZWdzLT5jaHVua19oZGxfYWRqdXN0X2N1cjAgPSAzOworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X29mZnNldF9jdXIwID0gMDsKKwlkaXNwX2RsZ19yZWdzLT5jaHVua19oZGxfYWRqdXN0X2N1cjEgPSAzOworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X29mZnNldF9jdXIxID0gMDsKKworCWRpc3BfZGxnX3JlZ3MtPnhmY19yZWdfdHJhbnNmZXJfZGVsYXkgPSB4ZmNfdHJhbnNmZXJfZGVsYXk7CisJZGlzcF9kbGdfcmVncy0+eGZjX3JlZ19wcmVjaGFyZ2VfZGVsYXkgPSB4ZmNfcHJlY2hhcmdlX2RlbGF5OworCWRpc3BfZGxnX3JlZ3MtPnhmY19yZWdfcmVtb3RlX3N1cmZhY2VfZmxpcF9sYXRlbmN5ID0geGZjX3JlbW90ZV9zdXJmYWNlX2ZsaXBfbGF0ZW5jeTsKKwlkaXNwX2RsZ19yZWdzLT54ZmNfcmVnX3ByZWZldGNoX21hcmdpbiA9IGRtbF9jZWlsKHhmY19wcmVmZXRjaF9tYXJnaW4gKiByZWZjbGtfZnJlcV9pbl9taHosCisJCQkxKTsKKworCS8vIHNsYXZlIGhhcyB0byBoYXZlIHRoaXMgdmFsdWUgYWxzbyBzZXQgdG8gb2ZmCisJaWYgKHNyYy0+eGZjX2VuYWJsZSAmJiAhc3JjLT54ZmNfc2xhdmUpCisJCWRpc3BfZGxnX3JlZ3MtPmRzdF95X2RlbHRhX2RycV9saW1pdCA9IGRtbF9jZWlsKHhmY19kc3RfeV9kZWx0YV9kcnFfbGltaXQsIDEpOworCWVsc2UKKwkJZGlzcF9kbGdfcmVncy0+ZHN0X3lfZGVsdGFfZHJxX2xpbWl0ID0gMHg3ZmZmOyAvLyBvZmYKKworCWRpc3BfdHR1X3JlZ3MtPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sID0gKHVuc2lnbmVkIGludCkgKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sCisJCQkqIGRtbF9wb3coMiwgMTApKTsKKwlkaXNwX3R0dV9yZWdzLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sID0gKHVuc2lnbmVkIGludCkgKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2wKKwkJCSogZG1sX3BvdygyLCAxMCkpOworCWRpc3BfdHR1X3JlZ3MtPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jID0gKHVuc2lnbmVkIGludCkgKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jCisJCQkqIGRtbF9wb3coMiwgMTApKTsKKwlkaXNwX3R0dV9yZWdzLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jID0gKHVuc2lnbmVkIGludCkgKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2MKKwkJCSogZG1sX3BvdygyLCAxMCkpOworCWRpc3BfdHR1X3JlZ3MtPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIwID0KKwkJCSh1bnNpZ25lZCBpbnQpIChyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMCAqIGRtbF9wb3coMiwgMTApKTsKKwlkaXNwX3R0dV9yZWdzLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIwID0gKHVuc2lnbmVkIGludCkgKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1cjAKKwkJCSogZG1sX3BvdygyLCAxMCkpOworCWRpc3BfdHR1X3JlZ3MtPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIxID0KKwkJCSh1bnNpZ25lZCBpbnQpIChyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMSAqIGRtbF9wb3coMiwgMTApKTsKKwlkaXNwX3R0dV9yZWdzLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIxID0gKHVuc2lnbmVkIGludCkgKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1cjEKKwkJCSogZG1sX3BvdygyLCAxMCkpOworCWRpc3BfdHR1X3JlZ3MtPnFvc19sZXZlbF9sb3dfd20gPSAwOworCUFTU0VSVChkaXNwX3R0dV9yZWdzLT5xb3NfbGV2ZWxfbG93X3dtIDwgZG1sX3BvdygyLCAxNCkpOworCWRpc3BfdHR1X3JlZ3MtPnFvc19sZXZlbF9oaWdoX3dtID0gKHVuc2lnbmVkIGludCkgKDQuMCAqIChkb3VibGUpIGh0b3RhbAorCQkJKiByZWZfZnJlcV90b19waXhfZnJlcSk7CisJLypBU1NFUlQoZGlzcF90dHVfcmVncy0+cW9zX2xldmVsX2hpZ2hfd20gPCBkbWxfcG93KDIsIDE0KSk7Ki8KKworCWRpc3BfdHR1X3JlZ3MtPnFvc19sZXZlbF9mbGlwID0gMTQ7CisJZGlzcF90dHVfcmVncy0+cW9zX2xldmVsX2ZpeGVkX2wgPSA4OworCWRpc3BfdHR1X3JlZ3MtPnFvc19sZXZlbF9maXhlZF9jID0gODsKKwlkaXNwX3R0dV9yZWdzLT5xb3NfbGV2ZWxfZml4ZWRfY3VyMCA9IDg7CisJZGlzcF90dHVfcmVncy0+cW9zX3JhbXBfZGlzYWJsZV9sID0gMDsKKwlkaXNwX3R0dV9yZWdzLT5xb3NfcmFtcF9kaXNhYmxlX2MgPSAwOworCWRpc3BfdHR1X3JlZ3MtPnFvc19yYW1wX2Rpc2FibGVfY3VyMCA9IDA7CisKKwlkaXNwX3R0dV9yZWdzLT5taW5fdHR1X3ZibGFuayA9IG1pbl90dHVfdmJsYW5rICogcmVmY2xrX2ZyZXFfaW5fbWh6OworCUFTU0VSVChkaXNwX3R0dV9yZWdzLT5taW5fdHR1X3ZibGFuayA8IGRtbF9wb3coMiwgMjQpKTsKKworCXByaW50X190dHVfcmVnc19zdChtb2RlX2xpYiwgKmRpc3BfdHR1X3JlZ3MpOworCXByaW50X19kbGdfcmVnc19zdChtb2RlX2xpYiwgKmRpc3BfZGxnX3JlZ3MpOworfQorCit2b2lkIGRtbDIwdjJfcnFfZGxnX2dldF9kbGdfcmVnKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZGlzcGxheV9kbGdfcmVnc19zdCAqZGxnX3JlZ3MsCisJCWRpc3BsYXlfdHR1X3JlZ3Nfc3QgKnR0dV9yZWdzLAorCQlkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqZTJlX3BpcGVfcGFyYW0sCisJCWNvbnN0IHVuc2lnbmVkIGludCBudW1fcGlwZXMsCisJCWNvbnN0IHVuc2lnbmVkIGludCBwaXBlX2lkeCwKKwkJY29uc3QgYm9vbCBjc3RhdGVfZW4sCisJCWNvbnN0IGJvb2wgcHN0YXRlX2VuLAorCQljb25zdCBib29sIHZtX2VuLAorCQljb25zdCBib29sIGlnbm9yZV92aWV3cG9ydF9wb3MsCisJCWNvbnN0IGJvb2wgaW1tZWRpYXRlX2ZsaXBfc3VwcG9ydCkKK3sKKwlkaXNwbGF5X3JxX3BhcmFtc19zdCBycV9wYXJhbSA9IHswfTsKKwlkaXNwbGF5X2RsZ19zeXNfcGFyYW1zX3N0IGRsZ19zeXNfcGFyYW0gPSB7MH07CisKKwkvLyBHZXQgd2F0ZXJtYXJrIGFuZCBUZXguCisJZGxnX3N5c19wYXJhbS50X3VyZ193bV91cyA9IGdldF93bV91cmdlbnQobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMpOworCWRsZ19zeXNfcGFyYW0uZGVlcHNsZWVwX2RjZmNsa19taHogPSBnZXRfY2xrX2RjZl9kZWVwc2xlZXAobW9kZV9saWIsCisJCQllMmVfcGlwZV9wYXJhbSwKKwkJCW51bV9waXBlcyk7CisJZGxnX3N5c19wYXJhbS50X2V4dHJhX3VzID0gZ2V0X3VyZ2VudF9leHRyYV9sYXRlbmN5KG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzKTsKKwlkbGdfc3lzX3BhcmFtLm1lbV90cmlwX3VzID0gZ2V0X3dtX21lbW9yeV90cmlwKG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzKTsKKwlkbGdfc3lzX3BhcmFtLnRfbWNsa193bV91cyA9IGdldF93bV9kcmFtX2Nsb2NrX2NoYW5nZShtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcyk7CisJZGxnX3N5c19wYXJhbS50X3NyX3dtX3VzID0gZ2V0X3dtX3N0dXR0ZXJfZW50ZXJfZXhpdChtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcyk7CisJZGxnX3N5c19wYXJhbS50b3RhbF9mbGlwX2J3ID0gZ2V0X3RvdGFsX2ltbWVkaWF0ZV9mbGlwX2J3KG1vZGVfbGliLAorCQkJZTJlX3BpcGVfcGFyYW0sCisJCQludW1fcGlwZXMpOworCWRsZ19zeXNfcGFyYW0udG90YWxfZmxpcF9ieXRlcyA9IGdldF90b3RhbF9pbW1lZGlhdGVfZmxpcF9ieXRlcyhtb2RlX2xpYiwKKwkJCWUyZV9waXBlX3BhcmFtLAorCQkJbnVtX3BpcGVzKTsKKwlkbGdfc3lzX3BhcmFtLnRfc3J4X2RlbGF5X3VzID0gbW9kZV9saWItPmlwLmRjZmNsa19jc3RhdGVfbGF0ZW5jeQorCQkJLyBkbGdfc3lzX3BhcmFtLmRlZXBzbGVlcF9kY2ZjbGtfbWh6OyAvLyBUT0RPOiBEZXByZWNhdGVkCisKKwlwcmludF9fZGxnX3N5c19wYXJhbXNfc3QobW9kZV9saWIsIGRsZ19zeXNfcGFyYW0pOworCisJLy8gc3lzdGVtIHBhcmFtZXRlciBjYWxjdWxhdGlvbiBkb25lCisKKwlkbWxfcHJpbnQoIkRNTF9ETEc6IENhbGN1bGF0aW9uIGZvciBwaXBlWyVkXSBzdGFydFxuXG4iLCBwaXBlX2lkeCk7CisJZG1sMjB2Ml9ycV9kbGdfZ2V0X3JxX3BhcmFtcyhtb2RlX2xpYiwgJnJxX3BhcmFtLCBlMmVfcGlwZV9wYXJhbVtwaXBlX2lkeF0ucGlwZS5zcmMpOworCWRtbDIwdjJfcnFfZGxnX2dldF9kbGdfcGFyYW1zKG1vZGVfbGliLAorCQkJZTJlX3BpcGVfcGFyYW0sCisJCQludW1fcGlwZXMsCisJCQlwaXBlX2lkeCwKKwkJCWRsZ19yZWdzLAorCQkJdHR1X3JlZ3MsCisJCQlycV9wYXJhbS5kbGcsCisJCQlkbGdfc3lzX3BhcmFtLAorCQkJY3N0YXRlX2VuLAorCQkJcHN0YXRlX2VuKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6IENhbGN1bGF0aW9uIGZvciBwaXBlWyVkXSBlbmRcbiIsIHBpcGVfaWR4KTsKK30KKworc3RhdGljIHZvaWQgY2FsY3VsYXRlX3R0dV9jdXJzb3Ioc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIsCisJCWRvdWJsZSAqcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyLAorCQlkb3VibGUgcmVmY2xrX2ZyZXFfaW5fbWh6LAorCQlkb3VibGUgcmVmX2ZyZXFfdG9fcGl4X2ZyZXEsCisJCWRvdWJsZSBoc2NhbGVfcGl4ZWxfcmF0ZV9sLAorCQlkb3VibGUgaHNjbF9yYXRpbywKKwkJZG91YmxlIHZyYXRpb19wcmVfbCwKKwkJZG91YmxlIHZyYXRpb19sLAorCQl1bnNpZ25lZCBpbnQgY3VyX3dpZHRoLAorCQllbnVtIGN1cnNvcl9icHAgY3VyX2JwcCkKK3sKKwl1bnNpZ25lZCBpbnQgY3VyX3NyY193aWR0aCA9IGN1cl93aWR0aDsKKwl1bnNpZ25lZCBpbnQgY3VyX3JlcV9zaXplID0gMDsKKwl1bnNpZ25lZCBpbnQgY3VyX3JlcV93aWR0aCA9IDA7CisJZG91YmxlIGN1cl93aWR0aF91YiA9IDAuMDsKKwlkb3VibGUgY3VyX3JlcV9wZXJfd2lkdGggPSAwLjA7CisJZG91YmxlIGhhY3RpdmVfY3VyID0gMC4wOworCisJQVNTRVJUKGN1cl9zcmNfd2lkdGggPD0gMjU2KTsKKworCSpyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyID0gMC4wOworCSpyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIgPSAwLjA7CisJaWYgKGN1cl9zcmNfd2lkdGggPiAwKSB7CisJCXVuc2lnbmVkIGludCBjdXJfYml0X3Blcl9waXhlbCA9IDA7CisKKwkJaWYgKGN1cl9icHAgPT0gZG1fY3VyXzJiaXQpIHsKKwkJCWN1cl9yZXFfc2l6ZSA9IDY0OyAvLyBieXRlCisJCQljdXJfYml0X3Blcl9waXhlbCA9IDI7CisJCX0gZWxzZSB7IC8vIDMyYml0CisJCQljdXJfYml0X3Blcl9waXhlbCA9IDMyOworCQkJaWYgKGN1cl9zcmNfd2lkdGggPj0gMSAmJiBjdXJfc3JjX3dpZHRoIDw9IDE2KQorCQkJCWN1cl9yZXFfc2l6ZSA9IDY0OworCQkJZWxzZSBpZiAoY3VyX3NyY193aWR0aCA+PSAxNyAmJiBjdXJfc3JjX3dpZHRoIDw9IDMxKQorCQkJCWN1cl9yZXFfc2l6ZSA9IDEyODsKKwkJCWVsc2UKKwkJCQljdXJfcmVxX3NpemUgPSAyNTY7CisJCX0KKworCQljdXJfcmVxX3dpZHRoID0gKGRvdWJsZSkgY3VyX3JlcV9zaXplIC8gKChkb3VibGUpIGN1cl9iaXRfcGVyX3BpeGVsIC8gOC4wKTsKKwkJY3VyX3dpZHRoX3ViID0gZG1sX2NlaWwoKGRvdWJsZSkgY3VyX3NyY193aWR0aCAvIChkb3VibGUpIGN1cl9yZXFfd2lkdGgsIDEpCisJCQkJKiAoZG91YmxlKSBjdXJfcmVxX3dpZHRoOworCQljdXJfcmVxX3Blcl93aWR0aCA9IGN1cl93aWR0aF91YiAvIChkb3VibGUpIGN1cl9yZXFfd2lkdGg7CisJCWhhY3RpdmVfY3VyID0gKGRvdWJsZSkgY3VyX3NyY193aWR0aCAvIGhzY2xfcmF0aW87IC8vIEZJWE1FOiBvc3dpbiB0byB0aGluayBhYm91dCB3aGF0IHRvIGRvIGZvciBjdXJzb3IKKworCQlpZiAodnJhdGlvX3ByZV9sIDw9IDEuMCkgeworCQkJKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIgPSBoYWN0aXZlX2N1ciAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxCisJCQkJCS8gKGRvdWJsZSkgY3VyX3JlcV9wZXJfd2lkdGg7CisJCX0gZWxzZSB7CisJCQkqcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1ciA9IChkb3VibGUpIHJlZmNsa19mcmVxX2luX21oegorCQkJCQkqIChkb3VibGUpIGN1cl9zcmNfd2lkdGggLyBoc2NhbGVfcGl4ZWxfcmF0ZV9sCisJCQkJCS8gKGRvdWJsZSkgY3VyX3JlcV9wZXJfd2lkdGg7CisJCX0KKworCQlBU1NFUlQoKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIgPCBkbWxfcG93KDIsIDEzKSk7CisKKwkJaWYgKHZyYXRpb19sIDw9IDEuMCkgeworCQkJKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1ciA9IGhhY3RpdmVfY3VyICogcmVmX2ZyZXFfdG9fcGl4X2ZyZXEKKwkJCQkJLyAoZG91YmxlKSBjdXJfcmVxX3Blcl93aWR0aDsKKwkJfSBlbHNlIHsKKwkJCSpyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIgPSAoZG91YmxlKSByZWZjbGtfZnJlcV9pbl9taHoKKwkJCQkJKiAoZG91YmxlKSBjdXJfc3JjX3dpZHRoIC8gaHNjYWxlX3BpeGVsX3JhdGVfbAorCQkJCQkvIChkb3VibGUpIGN1cl9yZXFfcGVyX3dpZHRoOworCQl9CisKKwkJZG1sX3ByaW50KCJETUxfRExHOiAlczogY3VyX3JlcV93aWR0aCAgICAgICAgICAgICAgICAgICAgID0gJWRcbiIsCisJCQkJX19mdW5jX18sCisJCQkJY3VyX3JlcV93aWR0aCk7CisJCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGN1cl93aWR0aF91YiAgICAgICAgICAgICAgICAgICAgICA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCWN1cl93aWR0aF91Yik7CisJCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGN1cl9yZXFfcGVyX3dpZHRoICAgICAgICAgICAgICAgICA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCWN1cl9yZXFfcGVyX3dpZHRoKTsKKwkJZG1sX3ByaW50KCJETUxfRExHOiAlczogaGFjdGl2ZV9jdXIgICAgICAgICAgICAgICAgICAgICAgID0gJTMuMmZcbiIsCisJCQkJX19mdW5jX18sCisJCQkJaGFjdGl2ZV9jdXIpOworCQlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyICAgPSAlMy4yZlxuIiwKKwkJCQlfX2Z1bmNfXywKKwkJCQkqcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cik7CisJCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1ciAgICAgICA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCSpyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIpOworCisJCUFTU0VSVCgqcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyIDwgZG1sX3BvdygyLCAxMykpOworCX0KK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjAvZGlzcGxheV9ycV9kbGdfY2FsY18yMHYyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjIwL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjB2Mi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzNzg0MDYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjIwL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjB2Mi5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpZm5kZWYgX19ETUwyMFYyX0RJU1BMQVlfUlFfRExHX0NBTENfSF9fCisjZGVmaW5lIF9fRE1MMjBWMl9ESVNQTEFZX1JRX0RMR19DQUxDX0hfXworCisjaW5jbHVkZSAiLi4vZG1sX2NvbW1vbl9kZWZzLmgiCisjaW5jbHVkZSAiLi4vZGlzcGxheV9ycV9kbGdfaGVscGVycy5oIgorCitzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYjsKKworCisvLyBGdW5jdGlvbjogZG1sX3JxX2RsZ19nZXRfcnFfcmVnCisvLyAgTWFpbiBlbnRyeSBwb2ludCBmb3IgdGVzdCB0byBnZXQgdGhlIHJlZ2lzdGVyIHZhbHVlcyBvdXQgb2YgdGhpcyBETUwgY2xhc3MuCisvLyAgVGhpcyBmdW5jdGlvbiBjYWxscyA8Z2V0X3JxX3BhcmFtPiBhbmQgPGV4dHJhY3RfcnFfcmVncz4gZnVjbnRpb25zIHRvIGNhbGN1bGF0ZQorLy8gIGFuZCB0aGVuIHBvcHVsYXRlIHRoZSBycV9yZWdzIHN0cnVjdAorLy8gSW5wdXQ6CisvLyAgcGlwZV9zcmNfcGFyYW0gLSBwaXBlIHNvdXJjZSBjb25maWd1cmF0aW9uIChlLmcuIHZwLCBwaXRjaCwgZXRjLikKKy8vIE91dHB1dDoKKy8vICBycV9yZWdzIC0gc3RydWN0IHRoYXQgaG9sZHMgYWxsIHRoZSBSUSByZWdpc3RlcnMgZmllbGQgdmFsdWUuCisvLyAgICAgICAgICAgIFNlZSBhbHNvOiA8ZGlzcGxheV9ycV9yZWdzX3N0Pgordm9pZCBkbWwyMHYyX3JxX2RsZ19nZXRfcnFfcmVnKAorCQlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRpc3BsYXlfcnFfcmVnc19zdCAqcnFfcmVncywKKwkJY29uc3QgZGlzcGxheV9waXBlX3BhcmFtc19zdCBwaXBlX3BhcmFtKTsKKworCisvLyBGdW5jdGlvbjogZG1sX3JxX2RsZ19nZXRfZGxnX3JlZworLy8gICBDYWxjdWxhdGUgYW5kIHJldHVybiBETEcgYW5kIFRUVSByZWdpc3RlciBzdHJ1Y3QgZ2l2ZW4gdGhlIHN5c3RlbSBzZXR0aW5nCisvLyBPdXRwdXQ6CisvLyAgZGxnX3JlZ3MgLSBvdXRwdXQgRExHIHJlZ2lzdGVyIHN0cnVjdAorLy8gIHR0dV9yZWdzIC0gb3V0cHV0IERMRyBUVFUgcmVnaXN0ZXIgc3RydWN0CisvLyBJbnB1dDoKKy8vICBlMmVfcGlwZV9wYXJhbSAtICJjb21wYWN0ZWQiIGFycmF5IG9mIGUyZSBwaXBlIHBhcmFtIHN0cnVjdAorLy8gIG51bV9waXBlcyAtIG51bSBvZiBhY3RpdmUgInBpcGUiIG9yICJyb3V0ZSIKKy8vICBwaXBlX2lkeCAtIGluZGV4IHRoYXQgaWRlbnRpZmllcyB0aGUgZTJlX3BpcGVfcGFyYW0gdGhhdCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgZGxnCisvLyAgY3N0YXRlIC0gMDogd2hlbiBjYWxjdWxhdGUgbWluX3R0dV92YmxhbmsgaXQgaXMgYXNzdW1lZCBjc3RhdGUgaXMgbm90IHJlcXVpcmVkLiAxOiBOb3JtYWwgbW9kZSwgY3N0YXRlIGlzIGNvbnNpZGVyZWQuCisvLyAgICAgICAgICAgQWRkZWQgZm9yIGxlZ2FjeSBvciB1bnJlYWxpc3RpYyB0aW1pbmcgdGVzdHMuCit2b2lkIGRtbDIwdjJfcnFfZGxnX2dldF9kbGdfcmVnKAorCQlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRpc3BsYXlfZGxnX3JlZ3Nfc3QgKmRsZ19yZWdzLAorCQlkaXNwbGF5X3R0dV9yZWdzX3N0ICp0dHVfcmVncywKKwkJZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKmUyZV9waXBlX3BhcmFtLAorCQljb25zdCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLAorCQljb25zdCB1bnNpZ25lZCBpbnQgcGlwZV9pZHgsCisJCWNvbnN0IGJvb2wgY3N0YXRlX2VuLAorCQljb25zdCBib29sIHBzdGF0ZV9lbiwKKwkJY29uc3QgYm9vbCB2bV9lbiwKKwkJY29uc3QgYm9vbCBpZ25vcmVfdmlld3BvcnRfcG9zLAorCQljb25zdCBib29sIGltbWVkaWF0ZV9mbGlwX3N1cHBvcnQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjEvZGlzcGxheV9tb2RlX3ZiYV8yMS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24yMS9kaXNwbGF5X21vZGVfdmJhXzIxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU2Y2QwZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjEvZGlzcGxheV9tb2RlX3ZiYV8yMS5jCkBAIC0wLDAgKzEsNjEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMAorCisjaW5jbHVkZSAiLi4vZGlzcGxheV9tb2RlX2xpYi5oIgorI2luY2x1ZGUgIi4uL2RtbF9pbmxpbmVfZGVmcy5oIgorI2luY2x1ZGUgIi4uL2Rpc3BsYXlfbW9kZV92YmEuaCIKKyNpbmNsdWRlICJkaXNwbGF5X21vZGVfdmJhXzIxLmgiCisKKworLyoKKyAqIE5PVEU6CisgKiAgIFRoaXMgZmlsZSBpcyBnY2MtcGFyc2FibGUgSFcgZ29zcGVsLCBjb21pbmcgc3RyYWlnaHQgZnJvbSBIVyBlbmdpbmVlcnMuCisgKgorICogSXQgZG9lc24ndCBhZGhlcmUgdG8gTGludXgga2VybmVsIHN0eWxlIGFuZCBzb21ldGltZXMgd2lsbCBkbyB0aGluZ3MgaW4gb2RkCisgKiB3YXlzLiBVbmxlc3MgdGhlcmUgaXMgc29tZXRoaW5nIGNsZWFybHkgd3Jvbmcgd2l0aCBpdCB0aGUgY29kZSBzaG91bGQKKyAqIHJlbWFpbiBhcy1pcyBhcyBpdCBwcm92aWRlcyB1cyB3aXRoIGEgZ3VhcmFudGVlIGZyb20gSFcgdGhhdCBpdCBpcyBjb3JyZWN0LgorICovCisKK3R5cGVkZWYgdW5zaWduZWQgaW50IHVpbnQ7CisKK3R5cGVkZWYgc3RydWN0IHsKKwlkb3VibGUgRFBQQ0xLOworCWRvdWJsZSBESVNQQ0xLOworCWRvdWJsZSBQaXhlbENsb2NrOworCWRvdWJsZSBEQ0ZDTEtEZWVwU2xlZXA7CisJdW5zaWduZWQgaW50IERQUFBlclBsYW5lOworCWJvb2wgU2NhbGVyRW5hYmxlZDsKKwllbnVtIHNjYW5fZGlyZWN0aW9uX2NsYXNzIFNvdXJjZVNjYW47CisJdW5zaWduZWQgaW50IEJsb2NrV2lkdGgyNTZCeXRlc1k7CisJdW5zaWduZWQgaW50IEJsb2NrSGVpZ2h0MjU2Qnl0ZXNZOworCXVuc2lnbmVkIGludCBCbG9ja1dpZHRoMjU2Qnl0ZXNDOworCXVuc2lnbmVkIGludCBCbG9ja0hlaWdodDI1NkJ5dGVzQzsKKwl1bnNpZ25lZCBpbnQgSW50ZXJsYWNlRW5hYmxlOworCXVuc2lnbmVkIGludCBOdW1iZXJPZkN1cnNvcnM7CisJdW5zaWduZWQgaW50IFZCbGFuazsKKwl1bnNpZ25lZCBpbnQgSFRvdGFsOworfSBQaXBlOworCit0eXBlZGVmIHN0cnVjdCB7CisJYm9vbCBFbmFibGU7CisJdW5zaWduZWQgaW50IE1heFBhZ2VUYWJsZUxldmVsczsKKwl1bnNpZ25lZCBpbnQgQ2FjaGVkUGFnZVRhYmxlTGV2ZWxzOworfSBIb3N0Vk07CisKKyNkZWZpbmUgQlBQX0lOVkFMSUQgMAorI2RlZmluZSBCUFBfQkxFTkRFRF9QSVBFIDB4ZmZmZmZmZmYKKworc3RhdGljIHZvaWQgRGlzcGxheVBpcGVDb25maWd1cmF0aW9uKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYik7CitzdGF0aWMgdm9pZCBESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hbmNlQ2FsY3VsYXRpb24oCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYik7CitzdGF0aWMgdW5zaWduZWQgaW50IGRzY2NlQ29tcHV0ZURlbGF5KAorCQl1bnNpZ25lZCBpbnQgYnBjLAorCQlkb3VibGUgYnBwLAorCQl1bnNpZ25lZCBpbnQgc2xpY2VXaWR0aCwKKwkJdW5zaWduZWQgaW50IG51bVNsaWNlcywKKwkJZW51bSBvdXRwdXRfZm9ybWF0X2NsYXNzIHBpeGVsRm9ybWF0KTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZHNjQ29tcHV0ZURlbGF5KGVudW0gb3V0cHV0X2Zvcm1hdF9jbGFzcyBwaXhlbEZvcm1hdCk7CisvLyBTdXBlciBtb25zdGVyIGZ1bmN0aW9uIHdpdGggc29tZSA0NSBhcmd1bWVudAorc3RhdGljIGJvb2wgQ2FsY3VsYXRlUHJlZmV0Y2hTY2hlZHVsZSgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lQaXhlbE1peGVkV2l0aFZNRGF0YSwKKwkJZG91YmxlIFBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5Vk1EYXRhT25seSwKKwkJUGlwZSAqbXlQaXBlLAorCQl1bnNpZ25lZCBpbnQgRFNDRGVsYXksCisJCWRvdWJsZSBEUFBDTEtEZWxheVN1YnRvdGFsLAorCQlkb3VibGUgRFBQQ0xLRGVsYXlTQ0wsCisJCWRvdWJsZSBEUFBDTEtEZWxheVNDTExCT25seSwKKwkJZG91YmxlIERQUENMS0RlbGF5Q05WQ0Zvcm1hdGVyLAorCQlkb3VibGUgRFBQQ0xLRGVsYXlDTlZDQ3Vyc29yLAorCQlkb3VibGUgRElTUENMS0RlbGF5U3VidG90YWwsCisJCXVuc2lnbmVkIGludCBTY2FsZXJSZWNvdXRXaWR0aCwKKwkJZW51bSBvdXRwdXRfZm9ybWF0X2NsYXNzIE91dHB1dEZvcm1hdCwKKwkJdW5zaWduZWQgaW50IE1heEludGVyRENOVGlsZVJlcGVhdGVycywKKwkJdW5zaWduZWQgaW50IFZTdGFydHVwLAorCQl1bnNpZ25lZCBpbnQgTWF4VlN0YXJ0dXAsCisJCXVuc2lnbmVkIGludCBHUFVWTVBhZ2VUYWJsZUxldmVscywKKwkJYm9vbCBHUFVWTUVuYWJsZSwKKwkJSG9zdFZNICpteUhvc3RWTSwKKwkJYm9vbCBEeW5hbWljTWV0YWRhdGFFbmFibGUsCisJCWludCBEeW5hbWljTWV0YWRhdGFMaW5lc0JlZm9yZUFjdGl2ZVJlcXVpcmVkLAorCQl1bnNpZ25lZCBpbnQgRHluYW1pY01ldGFkYXRhVHJhbnNtaXR0ZWRCeXRlcywKKwkJYm9vbCBEQ0NFbmFibGUsCisJCWRvdWJsZSBVcmdlbnRMYXRlbmN5LAorCQlkb3VibGUgVXJnZW50RXh0cmFMYXRlbmN5LAorCQlkb3VibGUgVENhbGMsCisJCXVuc2lnbmVkIGludCBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlLAorCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvdywKKwkJZG91YmxlIFByZWZldGNoU291cmNlTGluZXNZLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aFksCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRZLAorCQlkb3VibGUgVkluaXRQcmVGaWxsWSwKKwkJdW5zaWduZWQgaW50IE1heE51bVN3YXRoWSwKKwkJZG91YmxlIFByZWZldGNoU291cmNlTGluZXNDLAorCQlkb3VibGUgQnl0ZVBlclBpeGVsREVUQywKKwkJZG91YmxlIFZJbml0UHJlRmlsbEMsCisJCXVuc2lnbmVkIGludCBNYXhOdW1Td2F0aEMsCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodFksCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodEMsCisJCWRvdWJsZSBUV2FpdCwKKwkJYm9vbCBYRkNFbmFibGVkLAorCQlkb3VibGUgWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheSwKKwkJYm9vbCBQcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQlkb3VibGUgKkRTVFhBZnRlclNjYWxlciwKKwkJZG91YmxlICpEU1RZQWZ0ZXJTY2FsZXIsCisJCWRvdWJsZSAqRGVzdGluYXRpb25MaW5lc0ZvclByZWZldGNoLAorCQlkb3VibGUgKlByZWZldGNoQmFuZHdpZHRoLAorCQlkb3VibGUgKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluVkJsYW5rLAorCQlkb3VibGUgKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJblZCbGFuaywKKwkJZG91YmxlICpWUmF0aW9QcmVmZXRjaFksCisJCWRvdWJsZSAqVlJhdGlvUHJlZmV0Y2hDLAorCQlkb3VibGUgKlJlcXVpcmVkUHJlZmV0Y2hQaXhEYXRhQldMdW1hLAorCQlkb3VibGUgKlJlcXVpcmVkUHJlZmV0Y2hQaXhEYXRhQldDaHJvbWEsCisJCXVuc2lnbmVkIGludCAqVlN0YXJ0dXBSZXF1aXJlZFdoZW5Ob3RFbm91Z2hUaW1lRm9yRHluYW1pY01ldGFkYXRhLAorCQlkb3VibGUgKlRub19idywKKwkJZG91YmxlICpwcmVmZXRjaF92bXJvd19idywKKwkJdW5zaWduZWQgaW50ICpzd2F0aF93aWR0aF9sdW1hX3ViLAorCQl1bnNpZ25lZCBpbnQgKnN3YXRoX3dpZHRoX2Nocm9tYV91YiwKKwkJdW5zaWduZWQgaW50ICpWVXBkYXRlT2Zmc2V0UGl4LAorCQlkb3VibGUgKlZVcGRhdGVXaWR0aFBpeCwKKwkJZG91YmxlICpWUmVhZHlPZmZzZXRQaXgpOworc3RhdGljIGRvdWJsZSBSb3VuZFRvREZTR3JhbnVsYXJpdHlVcChkb3VibGUgQ2xvY2ssIGRvdWJsZSBWQ09TcGVlZCk7CitzdGF0aWMgZG91YmxlIFJvdW5kVG9ERlNHcmFudWxhcml0eURvd24oZG91YmxlIENsb2NrLCBkb3VibGUgVkNPU3BlZWQpOworc3RhdGljIGRvdWJsZSBDYWxjdWxhdGVEQ0NDb25maWd1cmF0aW9uKAorCQlib29sICAgICAgICAgICAgICAgICBEQ0NFbmFibGVkLAorCQlib29sICAgICAgICAgICAgICAgICBEQ0NQcm9ncmFtbWluZ0Fzc3VtZXNTY2FuRGlyZWN0aW9uVW5rbm93biwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgVmlld3BvcnRXaWR0aCwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgVmlld3BvcnRIZWlnaHQsCisJCWRvdWJsZSAgICAgICAgICAgICAgIERFVEJ1ZmZlclNpemUsCisJCXVuc2lnbmVkIGludCAgICAgICAgIFJlcXVlc3RIZWlnaHQyNTZCeXRlLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICBTd2F0aEhlaWdodCwKKwkJZW51bSBkbV9zd2l6emxlX21vZGUgVGlsaW5nRm9ybWF0LAorCQl1bnNpZ25lZCBpbnQgICAgICAgICBCeXRlUGVyUGl4ZWwsCisJCWVudW0gc2Nhbl9kaXJlY3Rpb25fY2xhc3MgU2Nhbk9yaWVudGF0aW9uLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICpNYXhVbmNvbXByZXNzZWRCbG9jaywKKwkJdW5zaWduZWQgaW50ICAgICAgICAqTWF4Q29tcHJlc3NlZEJsb2NrLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICpJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrKTsKK3N0YXRpYyBkb3VibGUgQ2FsY3VsYXRlUHJlZmV0Y2hTb3VyY2VMaW5lcygKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgVlJhdGlvLAorCQlkb3VibGUgdnRhcHMsCisJCWJvb2wgSW50ZXJsYWNlLAorCQlib29sIFByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFAsCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodCwKKwkJdW5zaWduZWQgaW50IFZpZXdwb3J0WVN0YXJ0LAorCQlkb3VibGUgKlZJbml0UHJlRmlsbCwKKwkJdW5zaWduZWQgaW50ICpNYXhOdW1Td2F0aCk7CitzdGF0aWMgdW5zaWduZWQgaW50IENhbGN1bGF0ZVZNQW5kUm93Qnl0ZXMoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJYm9vbCBEQ0NFbmFibGUsCisJCXVuc2lnbmVkIGludCBCbG9ja0hlaWdodDI1NkJ5dGVzLAorCQl1bnNpZ25lZCBpbnQgQmxvY2tXaWR0aDI1NkJ5dGVzLAorCQllbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3MgU291cmNlUGl4ZWxGb3JtYXQsCisJCXVuc2lnbmVkIGludCBTdXJmYWNlVGlsaW5nLAorCQl1bnNpZ25lZCBpbnQgQnl0ZVBlclBpeGVsLAorCQllbnVtIHNjYW5fZGlyZWN0aW9uX2NsYXNzIFNjYW5EaXJlY3Rpb24sCisJCXVuc2lnbmVkIGludCBWaWV3cG9ydFdpZHRoLAorCQl1bnNpZ25lZCBpbnQgVmlld3BvcnRIZWlnaHQsCisJCXVuc2lnbmVkIGludCBTd2F0aFdpZHRoWSwKKwkJYm9vbCBHUFVWTUVuYWJsZSwKKwkJYm9vbCBIb3N0Vk1FbmFibGUsCisJCXVuc2lnbmVkIGludCBIb3N0Vk1NYXhQYWdlVGFibGVMZXZlbHMsCisJCXVuc2lnbmVkIGludCBIb3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHMsCisJCXVuc2lnbmVkIGludCBWTU1QYWdlU2l6ZSwKKwkJdW5zaWduZWQgaW50IFBURUJ1ZmZlclNpemVJblJlcXVlc3RzLAorCQl1bnNpZ25lZCBpbnQgUGl0Y2gsCisJCXVuc2lnbmVkIGludCBEQ0NNZXRhUGl0Y2gsCisJCXVuc2lnbmVkIGludCAqTWFjcm9UaWxlV2lkdGgsCisJCXVuc2lnbmVkIGludCAqTWV0YVJvd0J5dGUsCisJCXVuc2lnbmVkIGludCAqUGl4ZWxQVEVCeXRlc1BlclJvdywKKwkJYm9vbCAqUFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkLAorCQl1bnNpZ25lZCBpbnQgKmRwdGVfcm93X3dpZHRoX3ViLAorCQl1bnNpZ25lZCBpbnQgKmRwdGVfcm93X2hlaWdodCwKKwkJdW5zaWduZWQgaW50ICpNZXRhUmVxdWVzdFdpZHRoLAorCQl1bnNpZ25lZCBpbnQgKk1ldGFSZXF1ZXN0SGVpZ2h0LAorCQl1bnNpZ25lZCBpbnQgKm1ldGFfcm93X3dpZHRoLAorCQl1bnNpZ25lZCBpbnQgKm1ldGFfcm93X2hlaWdodCwKKwkJdW5zaWduZWQgaW50ICp2bV9ncm91cF9ieXRlcywKKwkJbG9uZyAgICAgICAgICpkcHRlX2dyb3VwX2J5dGVzLAorCQl1bnNpZ25lZCBpbnQgKlBpeGVsUFRFUmVxV2lkdGgsCisJCXVuc2lnbmVkIGludCAqUGl4ZWxQVEVSZXFIZWlnaHQsCisJCXVuc2lnbmVkIGludCAqUFRFUmVxdWVzdFNpemUsCisJCXVuc2lnbmVkIGludCAqRFBERTBCeXRlc0ZyYW1lLAorCQl1bnNpZ25lZCBpbnQgKk1ldGFQVEVCeXRlc0ZyYW1lKTsKKworc3RhdGljIGRvdWJsZSBDYWxjdWxhdGVUV2FpdCgKKwkJdW5zaWduZWQgaW50IFByZWZldGNoTW9kZSwKKwkJZG91YmxlIERSQU1DbG9ja0NoYW5nZUxhdGVuY3ksCisJCWRvdWJsZSBVcmdlbnRMYXRlbmN5LAorCQlkb3VibGUgU1JFbnRlclBsdXNFeGl0VGltZSk7CitzdGF0aWMgZG91YmxlIENhbGN1bGF0ZVJlbW90ZVN1cmZhY2VGbGlwRGVsYXkoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZG91YmxlIFZSYXRpbywKKwkJZG91YmxlIFN3YXRoV2lkdGgsCisJCWRvdWJsZSBCcHAsCisJCWRvdWJsZSBMaW5lVGltZSwKKwkJZG91YmxlIFhGQ1RTbHZWdXBkYXRlT2Zmc2V0LAorCQlkb3VibGUgWEZDVFNsdlZ1cGRhdGVXaWR0aCwKKwkJZG91YmxlIFhGQ1RTbHZWcmVhZHlPZmZzZXQsCisJCWRvdWJsZSBYRkNYQlVGTGF0ZW5jeVRvbGVyYW5jZSwKKwkJZG91YmxlIFhGQ0ZpbGxCV092ZXJoZWFkLAorCQlkb3VibGUgWEZDU2x2Q2h1bmtTaXplLAorCQlkb3VibGUgWEZDQnVzVHJhbnNwb3J0VGltZSwKKwkJZG91YmxlIFRDYWxjLAorCQlkb3VibGUgVFdhaXQsCisJCWRvdWJsZSAqU3JjQWN0aXZlRHJhaW5SYXRlLAorCQlkb3VibGUgKlRJbml0WEZpbGwsCisJCWRvdWJsZSAqVHNsdkNoayk7CitzdGF0aWMgdm9pZCBDYWxjdWxhdGVBY3RpdmVSb3dCYW5kd2lkdGgoCisJCWJvb2wgR1BVVk1FbmFibGUsCisJCWVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKKwkJZG91YmxlIFZSYXRpbywKKwkJYm9vbCBEQ0NFbmFibGUsCisJCWRvdWJsZSBMaW5lVGltZSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlTHVtYSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlQ2hyb21hLAorCQl1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVpZ2h0X2x1bWEsCisJCXVuc2lnbmVkIGludCBtZXRhX3Jvd19oZWlnaHRfY2hyb21hLAorCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvd0x1bWEsCisJCXVuc2lnbmVkIGludCBQaXhlbFBURUJ5dGVzUGVyUm93Q2hyb21hLAorCQl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVpZ2h0X2x1bWEsCisJCXVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRfY2hyb21hLAorCQlkb3VibGUgKm1ldGFfcm93X2J3LAorCQlkb3VibGUgKmRwdGVfcm93X2J3KTsKK3N0YXRpYyB2b2lkIENhbGN1bGF0ZUZsaXBTY2hlZHVsZSgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lQaXhlbE1peGVkV2l0aFZNRGF0YSwKKwkJZG91YmxlIFBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5Vk1EYXRhT25seSwKKwkJZG91YmxlIFVyZ2VudEV4dHJhTGF0ZW5jeSwKKwkJZG91YmxlIFVyZ2VudExhdGVuY3ksCisJCXVuc2lnbmVkIGludCBHUFVWTU1heFBhZ2VUYWJsZUxldmVscywKKwkJYm9vbCBIb3N0Vk1FbmFibGUsCisJCXVuc2lnbmVkIGludCBIb3N0Vk1NYXhQYWdlVGFibGVMZXZlbHMsCisJCXVuc2lnbmVkIGludCBIb3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHMsCisJCWJvb2wgR1BVVk1FbmFibGUsCisJCWRvdWJsZSBQREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZSwKKwkJZG91YmxlIE1ldGFSb3dCeXRlcywKKwkJZG91YmxlIERQVEVCeXRlc1BlclJvdywKKwkJZG91YmxlIEJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAsCisJCXVuc2lnbmVkIGludCBUb3RJbW1lZGlhdGVGbGlwQnl0ZXMsCisJCWVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKKwkJZG91YmxlIExpbmVUaW1lLAorCQlkb3VibGUgVlJhdGlvLAorCQlkb3VibGUgVG5vX2J3LAorCQlib29sIERDQ0VuYWJsZSwKKwkJdW5zaWduZWQgaW50IGRwdGVfcm93X2hlaWdodCwKKwkJdW5zaWduZWQgaW50IG1ldGFfcm93X2hlaWdodCwKKwkJdW5zaWduZWQgaW50IGRwdGVfcm93X2hlaWdodF9jaHJvbWEsCisJCXVuc2lnbmVkIGludCBtZXRhX3Jvd19oZWlnaHRfY2hyb21hLAorCQlkb3VibGUgKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluSW1tZWRpYXRlRmxpcCwKKwkJZG91YmxlICpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5JbW1lZGlhdGVGbGlwLAorCQlkb3VibGUgKmZpbmFsX2ZsaXBfYncsCisJCWJvb2wgKkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWRGb3JQaXBlKTsKK3N0YXRpYyBkb3VibGUgQ2FsY3VsYXRlV3JpdGVCYWNrRGVsYXkoCisJCWVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBXcml0ZWJhY2tQaXhlbEZvcm1hdCwKKwkJZG91YmxlIFdyaXRlYmFja0hSYXRpbywKKwkJZG91YmxlIFdyaXRlYmFja1ZSYXRpbywKKwkJdW5zaWduZWQgaW50IFdyaXRlYmFja0x1bWFIVGFwcywKKwkJdW5zaWduZWQgaW50IFdyaXRlYmFja0x1bWFWVGFwcywKKwkJdW5zaWduZWQgaW50IFdyaXRlYmFja0Nocm9tYUhUYXBzLAorCQl1bnNpZ25lZCBpbnQgV3JpdGViYWNrQ2hyb21hVlRhcHMsCisJCXVuc2lnbmVkIGludCBXcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoKTsKK3N0YXRpYyB2b2lkIENhbGN1bGF0ZVdhdGVybWFya3NBbmREUkFNU3BlZWRDaGFuZ2VTdXBwb3J0KAorCQlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCXVuc2lnbmVkIGludCBQcmVmZXRjaE1vZGUsCisJCXVuc2lnbmVkIGludCBOdW1iZXJPZkFjdGl2ZVBsYW5lcywKKwkJdW5zaWduZWQgaW50IE1heExpbmVCdWZmZXJMaW5lcywKKwkJdW5zaWduZWQgaW50IExpbmVCdWZmZXJTaXplLAorCQl1bnNpZ25lZCBpbnQgRFBQT3V0cHV0QnVmZmVyUGl4ZWxzLAorCQlkb3VibGUgREVUQnVmZmVyU2l6ZUluS0J5dGUsCisJCXVuc2lnbmVkIGludCBXcml0ZWJhY2tJbnRlcmZhY2VMdW1hQnVmZmVyU2l6ZSwKKwkJdW5zaWduZWQgaW50IFdyaXRlYmFja0ludGVyZmFjZUNocm9tYUJ1ZmZlclNpemUsCisJCWRvdWJsZSBEQ0ZDTEssCisJCWRvdWJsZSBVcmdlbnRPdXRPZk9yZGVyUmV0dXJuLAorCQlkb3VibGUgUmV0dXJuQlcsCisJCWJvb2wgR1BVVk1FbmFibGUsCisJCWxvbmcgZHB0ZV9ncm91cF9ieXRlc1tdLAorCQl1bnNpZ25lZCBpbnQgTWV0YUNodW5rU2l6ZSwKKwkJZG91YmxlIFVyZ2VudExhdGVuY3ksCisJCWRvdWJsZSBFeHRyYUxhdGVuY3ksCisJCWRvdWJsZSBXcml0ZWJhY2tMYXRlbmN5LAorCQlkb3VibGUgV3JpdGViYWNrQ2h1bmtTaXplLAorCQlkb3VibGUgU09DQ0xLLAorCQlkb3VibGUgRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeSwKKwkJZG91YmxlIFNSRXhpdFRpbWUsCisJCWRvdWJsZSBTUkVudGVyUGx1c0V4aXRUaW1lLAorCQlkb3VibGUgRENGQ0xLRGVlcFNsZWVwLAorCQlpbnQgRFBQUGVyUGxhbmVbXSwKKwkJYm9vbCBEQ0NFbmFibGVbXSwKKwkJZG91YmxlIERQUENMS1tdLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aFNpbmdsZURQUFlbXSwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WVtdLAorCQlkb3VibGUgUmVhZEJhbmR3aWR0aFBsYW5lTHVtYVtdLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRDW10sCisJCWRvdWJsZSBSZWFkQmFuZHdpZHRoUGxhbmVDaHJvbWFbXSwKKwkJdW5zaWduZWQgaW50IExCQml0UGVyUGl4ZWxbXSwKKwkJdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZW10sCisJCWRvdWJsZSBIUmF0aW9bXSwKKwkJdW5zaWduZWQgaW50IHZ0YXBzW10sCisJCXVuc2lnbmVkIGludCBWVEFQc0Nocm9tYVtdLAorCQlkb3VibGUgVlJhdGlvW10sCisJCXVuc2lnbmVkIGludCBIVG90YWxbXSwKKwkJZG91YmxlIFBpeGVsQ2xvY2tbXSwKKwkJdW5zaWduZWQgaW50IEJsZW5kaW5nQW5kVGltaW5nW10sCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRZW10sCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRDW10sCisJCWJvb2wgV3JpdGViYWNrRW5hYmxlW10sCisJCWVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBXcml0ZWJhY2tQaXhlbEZvcm1hdFtdLAorCQlkb3VibGUgV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtdLAorCQlkb3VibGUgV3JpdGViYWNrRGVzdGluYXRpb25IZWlnaHRbXSwKKwkJZG91YmxlIFdyaXRlYmFja1NvdXJjZUhlaWdodFtdLAorCQllbnVtIGNsb2NrX2NoYW5nZV9zdXBwb3J0ICpEUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0LAorCQlkb3VibGUgKlVyZ2VudFdhdGVybWFyaywKKwkJZG91YmxlICpXcml0ZWJhY2tVcmdlbnRXYXRlcm1hcmssCisJCWRvdWJsZSAqRFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJrLAorCQlkb3VibGUgKldyaXRlYmFja0RSQU1DbG9ja0NoYW5nZVdhdGVybWFyaywKKwkJZG91YmxlICpTdHV0dGVyRXhpdFdhdGVybWFyaywKKwkJZG91YmxlICpTdHV0dGVyRW50ZXJQbHVzRXhpdFdhdGVybWFyaywKKwkJZG91YmxlICpNaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5U3VwcG9ydGVkKTsKK3N0YXRpYyB2b2lkIENhbGN1bGF0ZURDRkNMS0RlZXBTbGVlcCgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQl1bnNpZ25lZCBpbnQgTnVtYmVyT2ZBY3RpdmVQbGFuZXMsCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRZW10sCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRDW10sCisJCWRvdWJsZSBWUmF0aW9bXSwKKwkJdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZW10sCisJCWludCBEUFBQZXJQbGFuZVtdLAorCQlkb3VibGUgSFJhdGlvW10sCisJCWRvdWJsZSBQaXhlbENsb2NrW10sCisJCWRvdWJsZSBQU0NMX1RIUk9VR0hQVVRbXSwKKwkJZG91YmxlIFBTQ0xfVEhST1VHSFBVVF9DSFJPTUFbXSwKKwkJZG91YmxlIERQUENMS1tdLAorCQlkb3VibGUgKkRDRkNMS0RlZXBTbGVlcCk7CitzdGF0aWMgdm9pZCBDYWxjdWxhdGVERVRCdWZmZXJTaXplKAorCQlkb3VibGUgREVUQnVmZmVyU2l6ZUluS0J5dGUsCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodFksCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodEMsCisJCWRvdWJsZSAqREVUQnVmZmVyU2l6ZVksCisJCWRvdWJsZSAqREVUQnVmZmVyU2l6ZUMpOworc3RhdGljIHZvaWQgQ2FsY3VsYXRlVXJnZW50QnVyc3RGYWN0b3IoCisJCXVuc2lnbmVkIGludCBERVRCdWZmZXJTaXplSW5LQnl0ZSwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WSwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0QywKKwkJdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZLAorCQlkb3VibGUgTGluZVRpbWUsCisJCWRvdWJsZSBVcmdlbnRMYXRlbmN5LAorCQlkb3VibGUgQ3Vyc29yQnVmZmVyU2l6ZSwKKwkJdW5zaWduZWQgaW50IEN1cnNvcldpZHRoLAorCQl1bnNpZ25lZCBpbnQgQ3Vyc29yQlBQLAorCQlkb3VibGUgVlJhdGlvLAorCQlkb3VibGUgVlJhdGlvUHJlWSwKKwkJZG91YmxlIFZSYXRpb1ByZUMsCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxJbkRFVFksCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxJbkRFVEMsCisJCWRvdWJsZSAqVXJnZW50QnVyc3RGYWN0b3JDdXJzb3IsCisJCWRvdWJsZSAqVXJnZW50QnVyc3RGYWN0b3JDdXJzb3JQcmUsCisJCWRvdWJsZSAqVXJnZW50QnVyc3RGYWN0b3JMdW1hLAorCQlkb3VibGUgKlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVByZSwKKwkJZG91YmxlICpVcmdlbnRCdXJzdEZhY3RvckNocm9tYSwKKwkJZG91YmxlICpVcmdlbnRCdXJzdEZhY3RvckNocm9tYVByZSwKKwkJdW5zaWduZWQgaW50ICpOb3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nLAorCQl1bnNpZ25lZCBpbnQgKk5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmdQcmUpOworCitzdGF0aWMgdm9pZCBDYWxjdWxhdGVQaXhlbERlbGl2ZXJ5VGltZXMoCisJCXVuc2lnbmVkIGludCAgICAgICAgICAgTnVtYmVyT2ZBY3RpdmVQbGFuZXMsCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgVlJhdGlvW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgVlJhdGlvUHJlZmV0Y2hZW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgVlJhdGlvUHJlZmV0Y2hDW10sCisJCXVuc2lnbmVkIGludCAgICAgICAgICAgc3dhdGhfd2lkdGhfbHVtYV91YltdLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIHN3YXRoX3dpZHRoX2Nocm9tYV91YltdLAorCQlpbnQgICAgICAgICAgICAgICAgICAgIERQUFBlclBsYW5lW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgSFJhdGlvW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgUGl4ZWxDbG9ja1tdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIFBTQ0xfVEhST1VHSFBVVFtdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIFBTQ0xfVEhST1VHSFBVVF9DSFJPTUFbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBEUFBDTEtbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBCeXRlUGVyUGl4ZWxERVRDW10sCisJCWVudW0gc2Nhbl9kaXJlY3Rpb25fY2xhc3MgU291cmNlU2NhbltdLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIEJsb2NrV2lkdGgyNTZCeXRlc1lbXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBCbG9ja0hlaWdodDI1NkJ5dGVzWVtdLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIEJsb2NrV2lkdGgyNTZCeXRlc0NbXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBCbG9ja0hlaWdodDI1NkJ5dGVzQ1tdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIERpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWFbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hUHJlZmV0Y2hbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFQcmVmZXRjaFtdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIERpc3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUx1bWFbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVDaHJvbWFbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVMdW1hUHJlZmV0Y2hbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVDaHJvbWFQcmVmZXRjaFtdKTsKKworc3RhdGljIHZvaWQgQ2FsY3VsYXRlTWV0YUFuZFBURVRpbWVzKAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIE51bWJlck9mQWN0aXZlUGxhbmVzLAorCQlib29sICAgICAgICAgICAgICAgICAgIEdQVVZNRW5hYmxlLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIE1ldGFDaHVua1NpemUsCisJCXVuc2lnbmVkIGludCAgICAgICAgICAgTWluTWV0YUNodW5rU2l6ZUJ5dGVzLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIEdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIEhUb3RhbFtdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIFZSYXRpb1tdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIFZSYXRpb1ByZWZldGNoWVtdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIFZSYXRpb1ByZWZldGNoQ1tdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJblZCbGFua1tdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJbkltbWVkaWF0ZUZsaXBbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFua1tdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluSW1tZWRpYXRlRmxpcFtdLAorCQlib29sICAgICAgICAgICAgICAgICAgIERDQ0VuYWJsZVtdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIFBpeGVsQ2xvY2tbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBCeXRlUGVyUGl4ZWxERVRZW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgQnl0ZVBlclBpeGVsREVUQ1tdLAorCQllbnVtIHNjYW5fZGlyZWN0aW9uX2NsYXNzIFNvdXJjZVNjYW5bXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBkcHRlX3Jvd19oZWlnaHRbXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBkcHRlX3Jvd19oZWlnaHRfY2hyb21hW10sCisJCXVuc2lnbmVkIGludCAgICAgICAgICAgbWV0YV9yb3dfd2lkdGhbXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBtZXRhX3Jvd19oZWlnaHRbXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBtZXRhX3JlcV93aWR0aFtdLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIG1ldGFfcmVxX2hlaWdodFtdLAorCQlsb25nICAgICAgICAgICAgICAgICAgIGRwdGVfZ3JvdXBfYnl0ZXNbXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBQVEVSZXF1ZXN0U2l6ZVlbXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBQVEVSZXF1ZXN0U2l6ZUNbXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBQaXhlbFBURVJlcVdpZHRoWVtdLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIFBpeGVsUFRFUmVxSGVpZ2h0WVtdLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIFBpeGVsUFRFUmVxV2lkdGhDW10sCisJCXVuc2lnbmVkIGludCAgICAgICAgICAgUGl4ZWxQVEVSZXFIZWlnaHRDW10sCisJCXVuc2lnbmVkIGludCAgICAgICAgICAgZHB0ZV9yb3dfd2lkdGhfbHVtYV91YltdLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIGRwdGVfcm93X3dpZHRoX2Nocm9tYV91YltdLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIHZtX2dyb3VwX2J5dGVzW10sCisJCXVuc2lnbmVkIGludCAgICAgICAgICAgZHBkZTBfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xbXSwKKwkJdW5zaWduZWQgaW50ICAgICAgICAgICBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfY1tdLAorCQl1bnNpZ25lZCBpbnQgICAgICAgICAgIG1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZV91Yl9sW10sCisJCXVuc2lnbmVkIGludCAgICAgICAgICAgbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2NbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBEU1RfWV9QRVJfUFRFX1JPV19OT01fTFtdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIERTVF9ZX1BFUl9QVEVfUk9XX05PTV9DW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgRFNUX1lfUEVSX01FVEFfUk9XX05PTV9MW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgVGltZVBlck1ldGFDaHVua05vbWluYWxbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICBUaW1lUGVyTWV0YUNodW5rVkJsYW5rW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgVGltZVBlck1ldGFDaHVua0ZsaXBbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICB0aW1lX3Blcl9wdGVfZ3JvdXBfbm9tX2x1bWFbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICB0aW1lX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2x1bWFbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICB0aW1lX3Blcl9wdGVfZ3JvdXBfZmxpcF9sdW1hW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgdGltZV9wZXJfcHRlX2dyb3VwX25vbV9jaHJvbWFbXSwKKwkJZG91YmxlICAgICAgICAgICAgICAgICB0aW1lX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2Nocm9tYVtdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIHRpbWVfcGVyX3B0ZV9ncm91cF9mbGlwX2Nocm9tYVtdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIFRpbWVQZXJWTUdyb3VwVkJsYW5rW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgVGltZVBlclZNR3JvdXBGbGlwW10sCisJCWRvdWJsZSAgICAgICAgICAgICAgICAgVGltZVBlclZNUmVxdWVzdFZCbGFua1tdLAorCQlkb3VibGUgICAgICAgICAgICAgICAgIFRpbWVQZXJWTVJlcXVlc3RGbGlwW10pOworCitzdGF0aWMgZG91YmxlIENhbGN1bGF0ZUV4dHJhTGF0ZW5jeSgKKwkJZG91YmxlIFVyZ2VudFJvdW5kVHJpcEFuZE91dE9mT3JkZXJMYXRlbmN5LAorCQlpbnQgVG90YWxOdW1iZXJPZkFjdGl2ZURQUCwKKwkJaW50IFBpeGVsQ2h1bmtTaXplSW5LQnl0ZSwKKwkJaW50IFRvdGFsTnVtYmVyT2ZEQ0NBY3RpdmVEUFAsCisJCWludCBNZXRhQ2h1bmtTaXplLAorCQlkb3VibGUgUmV0dXJuQlcsCisJCWJvb2wgR1BVVk1FbmFibGUsCisJCWJvb2wgSG9zdFZNRW5hYmxlLAorCQlpbnQgTnVtYmVyT2ZBY3RpdmVQbGFuZXMsCisJCWludCBOdW1iZXJPZkRQUFtdLAorCQlsb25nIGRwdGVfZ3JvdXBfYnl0ZXNbXSwKKwkJZG91YmxlIFBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5UGl4ZWxNaXhlZFdpdGhWTURhdGEsCisJCWRvdWJsZSBQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVZNRGF0YU9ubHksCisJCWludCBIb3N0Vk1NYXhQYWdlVGFibGVMZXZlbHMsCisJCWludCBIb3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHMpOworCit2b2lkIGRtbDIxX3JlY2FsY3VsYXRlKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYikKK3sKKwlNb2RlU3VwcG9ydEFuZFN5c3RlbUNvbmZpZ3VyYXRpb24obW9kZV9saWIpOworCVBpeGVsQ2xvY2tBZGp1c3RtZW50Rm9yUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXQobW9kZV9saWIpOworCURpc3BsYXlQaXBlQ29uZmlndXJhdGlvbihtb2RlX2xpYik7CisJRElTUENMS0RQUENMS0RDRkNMS0RlZXBTbGVlcFByZWZldGNoUGFyYW1ldGVyc1dhdGVybWFya3NBbmRQZXJmb3JtYW5jZUNhbGN1bGF0aW9uKG1vZGVfbGliKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCBkc2NjZUNvbXB1dGVEZWxheSgKKwkJdW5zaWduZWQgaW50IGJwYywKKwkJZG91YmxlIGJwcCwKKwkJdW5zaWduZWQgaW50IHNsaWNlV2lkdGgsCisJCXVuc2lnbmVkIGludCBudW1TbGljZXMsCisJCWVudW0gb3V0cHV0X2Zvcm1hdF9jbGFzcyBwaXhlbEZvcm1hdCkKK3sKKwkvLyB2YWxpZCBicGMgICAgICAgICA9IHNvdXJjZSBiaXRzIHBlciBjb21wb25lbnQgaW4gdGhlIHNldCBvZiB7OCwgMTAsIDEyfQorCS8vIHZhbGlkIGJwcCAgICAgICAgID0gaW5jcmVtZW50cyBvZiAxLzE2IG9mIGEgYml0CisJLy8gICAgICAgICAgICAgICAgICAgIG1pbiA9IDYvNy84IGluIE40MjAvTjQyMi80NDQsIHJlc3BlY3RpdmVseQorCS8vICAgICAgICAgICAgICAgICAgICBtYXggPSBzdWNoIHRoYXQgY29tcHJlc3Npb24gaXMgMToxCisJLy92YWxpZCBzbGljZVdpZHRoICA9IG51bWJlciBvZiBwaXhlbHMgcGVyIHNsaWNlIGxpbmUsIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUxODQvbnVtU2xpY2VzIChvciA0MDk2L251bVNsaWNlcyBpbiA0MjAgbW9kZSkKKwkvL3ZhbGlkIG51bVNsaWNlcyAgID0gbnVtYmVyIG9mIHNsaWNlcyBpbiB0aGUgaG9yaXppb250YWwgZGlyZWN0aW9uIHBlciBEU0MgZW5naW5lIGluIHRoZSBzZXQgb2YgezEsIDIsIDMsIDR9CisJLy92YWxpZCBwaXhlbEZvcm1hdCA9IHBpeGVsL2NvbG9yIGZvcm1hdCBpbiB0aGUgc2V0IG9mIHs6TjQ0NF9SR0IsIDpTNDIyLCA6TjQyMiwgOk40MjB9CisKKwkvLyBmaXhlZCB2YWx1ZQorCXVuc2lnbmVkIGludCByY01vZGVsU2l6ZSA9IDgxOTI7CisKKwkvLyBONDIyL040MjAgb3BlcmF0ZSBhdCAyIHBpeGVscyBwZXIgY2xvY2sKKwl1bnNpZ25lZCBpbnQgcGl4ZWxzUGVyQ2xvY2ssIGxzdGFsbCwgRCwgaW5pdGFsWG1pdERlbGF5LCB3LCBTLCBpeCwgd3gsIHAsIGwwLCBhLCBheCwgbCwKKwkJCURlbGF5LCBwaXhlbHM7CisKKwlpZiAocGl4ZWxGb3JtYXQgPT0gZG1fbjQyMiB8fCBwaXhlbEZvcm1hdCA9PSBkbV80MjApCisJCXBpeGVsc1BlckNsb2NrID0gMjsKKwkvLyAjYWxsIG90aGVyIG1vZGVzIG9wZXJhdGUgYXQgMSBwaXhlbCBwZXIgY2xvY2sKKwllbHNlCisJCXBpeGVsc1BlckNsb2NrID0gMTsKKworCS8vaW5pdGlhbCB0cmFuc21pdCBkZWxheSBhcyBwZXIgUFBTCisJaW5pdGFsWG1pdERlbGF5ID0gZG1sX3JvdW5kKHJjTW9kZWxTaXplIC8gMi4wIC8gYnBwIC8gcGl4ZWxzUGVyQ2xvY2spOworCisJLy9jb21wdXRlIHNzbSBkZWxheQorCWlmIChicGMgPT0gOCkKKwkJRCA9IDgxOworCWVsc2UgaWYgKGJwYyA9PSAxMCkKKwkJRCA9IDg5OworCWVsc2UKKwkJRCA9IDExMzsKKworCS8vZGl2aWRlIGJ5IHBpeGVsIHBlciBjeWNsZSB0byBjb21wdXRlIHNsaWNlIHdpZHRoIGFzIHNlZW4gYnkgRFNDCisJdyA9IHNsaWNlV2lkdGggLyBwaXhlbHNQZXJDbG9jazsKKworCS8vNDIyIG1vZGUgaGFzIGFuIGFkZGl0aW9uYWwgY3ljbGUgb2YgZGVsYXkKKwlpZiAocGl4ZWxGb3JtYXQgPT0gZG1fczQyMikKKwkJUyA9IDE7CisJZWxzZQorCQlTID0gMDsKKworCS8vbWFpbiBjYWxjdWxhdGlvbiBmb3IgdGhlIGRzY2NlCisJaXggPSBpbml0YWxYbWl0RGVsYXkgKyA0NTsKKwl3eCA9ICh3ICsgMikgLyAzOworCXAgPSAzICogd3ggLSB3OworCWwwID0gaXggLyB3OworCWEgPSBpeCArIHAgKiBsMDsKKwlheCA9IChhICsgMikgLyAzICsgRCArIDYgKyAxOworCWwgPSAoYXggKyB3eCAtIDEpIC8gd3g7CisJaWYgKChpeCAlIHcpID09IDAgJiYgcCAhPSAwKQorCQlsc3RhbGwgPSAxOworCWVsc2UKKwkJbHN0YWxsID0gMDsKKwlEZWxheSA9IGwgKiB3eCAqIChudW1TbGljZXMgLSAxKSArIGF4ICsgUyArIGxzdGFsbCArIDIyOworCisJLy9kc2MgcHJvY2Vzc2VzIDMgcGl4ZWwgY29udGFpbmVycyBwZXIgY3ljbGUgYW5kIGEgY29udGFpbmVyIGNhbiBjb250YWluIDEgb3IgMiBwaXhlbHMKKwlwaXhlbHMgPSBEZWxheSAqIDMgKiBwaXhlbHNQZXJDbG9jazsKKwlyZXR1cm4gcGl4ZWxzOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGRzY0NvbXB1dGVEZWxheShlbnVtIG91dHB1dF9mb3JtYXRfY2xhc3MgcGl4ZWxGb3JtYXQpCit7CisJdW5zaWduZWQgaW50IERlbGF5ID0gMDsKKworCWlmIChwaXhlbEZvcm1hdCA9PSBkbV80MjApIHsKKwkJLy8gICBzZnIKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjY2lmCisJCURlbGF5ID0gRGVsYXkgKyAwOworCQkvLyAgIGRzY2MgLSBpbnB1dCBkZXNlcmlhbGl6ZXIKKwkJRGVsYXkgPSBEZWxheSArIDM7CisJCS8vICAgZHNjYyBnZXRzIHBpeGVscyBldmVyeSBvdGhlciBjeWNsZQorCQlEZWxheSA9IERlbGF5ICsgMjsKKwkJLy8gICBkc2NjIC0gaW5wdXQgY2RjIGZpZm8KKwkJRGVsYXkgPSBEZWxheSArIDEyOworCQkvLyAgIGRzY2MgZ2V0cyBwaXhlbHMgZXZlcnkgb3RoZXIgY3ljbGUKKwkJRGVsYXkgPSBEZWxheSArIDEzOworCQkvLyAgIGRzY2MgLSBjZGMgdW5jZXJ0YWludHkKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjYyAtIG91dHB1dCBjZGMgZmlmbworCQlEZWxheSA9IERlbGF5ICsgNzsKKwkJLy8gICBkc2NjIGdldHMgcGl4ZWxzIGV2ZXJ5IG90aGVyIGN5Y2xlCisJCURlbGF5ID0gRGVsYXkgKyAzOworCQkvLyAgIGRzY2MgLSBjZGMgdW5jZXJ0YWludHkKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjYyAtIG91dHB1dCBzZXJpYWxpemVyCisJCURlbGF5ID0gRGVsYXkgKyAxOworCQkvLyAgIHNmdAorCQlEZWxheSA9IERlbGF5ICsgMTsKKwl9IGVsc2UgaWYgKHBpeGVsRm9ybWF0ID09IGRtX240MjIpIHsKKwkJLy8gICBzZnIKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjY2lmCisJCURlbGF5ID0gRGVsYXkgKyAxOworCQkvLyAgIGRzY2MgLSBpbnB1dCBkZXNlcmlhbGl6ZXIKKwkJRGVsYXkgPSBEZWxheSArIDU7CisJCS8vICBkc2NjIC0gaW5wdXQgY2RjIGZpZm8KKwkJRGVsYXkgPSBEZWxheSArIDI1OworCQkvLyAgIGRzY2MgLSBjZGMgdW5jZXJ0YWludHkKKwkJRGVsYXkgPSBEZWxheSArIDI7CisJCS8vICAgZHNjYyAtIG91dHB1dCBjZGMgZmlmbworCQlEZWxheSA9IERlbGF5ICsgMTA7CisJCS8vICAgZHNjYyAtIGNkYyB1bmNlcnRhaW50eQorCQlEZWxheSA9IERlbGF5ICsgMjsKKwkJLy8gICBkc2NjIC0gb3V0cHV0IHNlcmlhbGl6ZXIKKwkJRGVsYXkgPSBEZWxheSArIDE7CisJCS8vICAgc2Z0CisJCURlbGF5ID0gRGVsYXkgKyAxOworCX0gZWxzZSB7CisJCS8vICAgc2ZyCisJCURlbGF5ID0gRGVsYXkgKyAyOworCQkvLyAgIGRzY2NpZgorCQlEZWxheSA9IERlbGF5ICsgMDsKKwkJLy8gICBkc2NjIC0gaW5wdXQgZGVzZXJpYWxpemVyCisJCURlbGF5ID0gRGVsYXkgKyAzOworCQkvLyAgIGRzY2MgLSBpbnB1dCBjZGMgZmlmbworCQlEZWxheSA9IERlbGF5ICsgMTI7CisJCS8vICAgZHNjYyAtIGNkYyB1bmNlcnRhaW50eQorCQlEZWxheSA9IERlbGF5ICsgMjsKKwkJLy8gICBkc2NjIC0gb3V0cHV0IGNkYyBmaWZvCisJCURlbGF5ID0gRGVsYXkgKyA3OworCQkvLyAgIGRzY2MgLSBvdXRwdXQgc2VyaWFsaXplcgorCQlEZWxheSA9IERlbGF5ICsgMTsKKwkJLy8gICBkc2NjIC0gY2RjIHVuY2VydGFpbnR5CisJCURlbGF5ID0gRGVsYXkgKyAyOworCQkvLyAgIHNmdAorCQlEZWxheSA9IERlbGF5ICsgMTsKKwl9CisKKwlyZXR1cm4gRGVsYXk7Cit9CisKK3N0YXRpYyBib29sIENhbGN1bGF0ZVByZWZldGNoU2NoZWR1bGUoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZG91YmxlIFBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5UGl4ZWxNaXhlZFdpdGhWTURhdGEsCisJCWRvdWJsZSBQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVZNRGF0YU9ubHksCisJCVBpcGUgKm15UGlwZSwKKwkJdW5zaWduZWQgaW50IERTQ0RlbGF5LAorCQlkb3VibGUgRFBQQ0xLRGVsYXlTdWJ0b3RhbCwKKwkJZG91YmxlIERQUENMS0RlbGF5U0NMLAorCQlkb3VibGUgRFBQQ0xLRGVsYXlTQ0xMQk9ubHksCisJCWRvdWJsZSBEUFBDTEtEZWxheUNOVkNGb3JtYXRlciwKKwkJZG91YmxlIERQUENMS0RlbGF5Q05WQ0N1cnNvciwKKwkJZG91YmxlIERJU1BDTEtEZWxheVN1YnRvdGFsLAorCQl1bnNpZ25lZCBpbnQgU2NhbGVyUmVjb3V0V2lkdGgsCisJCWVudW0gb3V0cHV0X2Zvcm1hdF9jbGFzcyBPdXRwdXRGb3JtYXQsCisJCXVuc2lnbmVkIGludCBNYXhJbnRlckRDTlRpbGVSZXBlYXRlcnMsCisJCXVuc2lnbmVkIGludCBWU3RhcnR1cCwKKwkJdW5zaWduZWQgaW50IE1heFZTdGFydHVwLAorCQl1bnNpZ25lZCBpbnQgR1BVVk1QYWdlVGFibGVMZXZlbHMsCisJCWJvb2wgR1BVVk1FbmFibGUsCisJCUhvc3RWTSAqbXlIb3N0Vk0sCisJCWJvb2wgRHluYW1pY01ldGFkYXRhRW5hYmxlLAorCQlpbnQgRHluYW1pY01ldGFkYXRhTGluZXNCZWZvcmVBY3RpdmVSZXF1aXJlZCwKKwkJdW5zaWduZWQgaW50IER5bmFtaWNNZXRhZGF0YVRyYW5zbWl0dGVkQnl0ZXMsCisJCWJvb2wgRENDRW5hYmxlLAorCQlkb3VibGUgVXJnZW50TGF0ZW5jeSwKKwkJZG91YmxlIFVyZ2VudEV4dHJhTGF0ZW5jeSwKKwkJZG91YmxlIFRDYWxjLAorCQl1bnNpZ25lZCBpbnQgUERFQW5kTWV0YVBURUJ5dGVzRnJhbWUsCisJCXVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZSwKKwkJdW5zaWduZWQgaW50IFBpeGVsUFRFQnl0ZXNQZXJSb3csCisJCWRvdWJsZSBQcmVmZXRjaFNvdXJjZUxpbmVzWSwKKwkJdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZLAorCQlkb3VibGUgQnl0ZVBlclBpeGVsREVUWSwKKwkJZG91YmxlIFZJbml0UHJlRmlsbFksCisJCXVuc2lnbmVkIGludCBNYXhOdW1Td2F0aFksCisJCWRvdWJsZSBQcmVmZXRjaFNvdXJjZUxpbmVzQywKKwkJZG91YmxlIEJ5dGVQZXJQaXhlbERFVEMsCisJCWRvdWJsZSBWSW5pdFByZUZpbGxDLAorCQl1bnNpZ25lZCBpbnQgTWF4TnVtU3dhdGhDLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRDLAorCQlkb3VibGUgVFdhaXQsCisJCWJvb2wgWEZDRW5hYmxlZCwKKwkJZG91YmxlIFhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXksCisJCWJvb2wgUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCwKKwkJZG91YmxlICpEU1RYQWZ0ZXJTY2FsZXIsCisJCWRvdWJsZSAqRFNUWUFmdGVyU2NhbGVyLAorCQlkb3VibGUgKkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaCwKKwkJZG91YmxlICpQcmVmZXRjaEJhbmR3aWR0aCwKKwkJZG91YmxlICpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFuaywKKwkJZG91YmxlICpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmssCisJCWRvdWJsZSAqVlJhdGlvUHJlZmV0Y2hZLAorCQlkb3VibGUgKlZSYXRpb1ByZWZldGNoQywKKwkJZG91YmxlICpSZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXTHVtYSwKKwkJZG91YmxlICpSZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXQ2hyb21hLAorCQl1bnNpZ25lZCBpbnQgKlZTdGFydHVwUmVxdWlyZWRXaGVuTm90RW5vdWdoVGltZUZvckR5bmFtaWNNZXRhZGF0YSwKKwkJZG91YmxlICpUbm9fYncsCisJCWRvdWJsZSAqcHJlZmV0Y2hfdm1yb3dfYncsCisJCXVuc2lnbmVkIGludCAqc3dhdGhfd2lkdGhfbHVtYV91YiwKKwkJdW5zaWduZWQgaW50ICpzd2F0aF93aWR0aF9jaHJvbWFfdWIsCisJCXVuc2lnbmVkIGludCAqVlVwZGF0ZU9mZnNldFBpeCwKKwkJZG91YmxlICpWVXBkYXRlV2lkdGhQaXgsCisJCWRvdWJsZSAqVlJlYWR5T2Zmc2V0UGl4KQoreworCWJvb2wgTXlFcnJvciA9IGZhbHNlOworCXVuc2lnbmVkIGludCBEUFBDeWNsZXMsIERJU1BDTEtDeWNsZXM7CisJZG91YmxlIERTVFRvdGFsUGl4ZWxzQWZ0ZXJTY2FsZXIsIFRvdGFsUmVwZWF0ZXJEZWxheVRpbWU7CisJZG91YmxlIFRkbSwgTGluZVRpbWUsIFRzZXR1cDsKKwlkb3VibGUgZHN0X3lfcHJlZmV0Y2hfZXF1OworCWRvdWJsZSBUc3dfb3RvOworCWRvdWJsZSBwcmVmZXRjaF9id19vdG87CisJZG91YmxlIFR2bV9vdG87CisJZG91YmxlIFRyMF9vdG87CisJZG91YmxlIFR2bV9vdG9fbGluZXM7CisJZG91YmxlIFRyMF9vdG9fbGluZXM7CisJZG91YmxlIFRzd19vdG9fbGluZXM7CisJZG91YmxlIGRzdF95X3ByZWZldGNoX290bzsKKwlkb3VibGUgVGltZUZvckZldGNoaW5nTWV0YVBURSA9IDA7CisJZG91YmxlIFRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rID0gMDsKKwlkb3VibGUgTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YSA9IDA7CisJZG91YmxlIEhvc3RWTUluZWZmaWNpZW5jeUZhY3RvcjsKKwl1bnNpZ25lZCBpbnQgSG9zdFZNRHluYW1pY0xldmVsczsKKworCWlmIChHUFVWTUVuYWJsZSA9PSB0cnVlICYmIG15SG9zdFZNLT5FbmFibGUgPT0gdHJ1ZSkgeworCQlIb3N0Vk1JbmVmZmljaWVuY3lGYWN0b3IgPQorCQkJCVBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5UGl4ZWxNaXhlZFdpdGhWTURhdGEKKwkJCQkJCS8gUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lWTURhdGFPbmx5OworCQlIb3N0Vk1EeW5hbWljTGV2ZWxzID0gbXlIb3N0Vk0tPk1heFBhZ2VUYWJsZUxldmVscworCQkJCS0gbXlIb3N0Vk0tPkNhY2hlZFBhZ2VUYWJsZUxldmVsczsKKwl9IGVsc2UgeworCQlIb3N0Vk1JbmVmZmljaWVuY3lGYWN0b3IgPSAxOworCQlIb3N0Vk1EeW5hbWljTGV2ZWxzID0gMDsKKwl9CisKKwlpZiAobXlQaXBlLT5TY2FsZXJFbmFibGVkKQorCQlEUFBDeWNsZXMgPSBEUFBDTEtEZWxheVN1YnRvdGFsICsgRFBQQ0xLRGVsYXlTQ0w7CisJZWxzZQorCQlEUFBDeWNsZXMgPSBEUFBDTEtEZWxheVN1YnRvdGFsICsgRFBQQ0xLRGVsYXlTQ0xMQk9ubHk7CisKKwlEUFBDeWNsZXMgPSBEUFBDeWNsZXMgKyBEUFBDTEtEZWxheUNOVkNGb3JtYXRlciArIG15UGlwZS0+TnVtYmVyT2ZDdXJzb3JzICogRFBQQ0xLRGVsYXlDTlZDQ3Vyc29yOworCisJRElTUENMS0N5Y2xlcyA9IERJU1BDTEtEZWxheVN1YnRvdGFsOworCisJaWYgKG15UGlwZS0+RFBQQ0xLID09IDAuMCB8fCBteVBpcGUtPkRJU1BDTEsgPT0gMC4wKQorCQlyZXR1cm4gdHJ1ZTsKKworCSpEU1RYQWZ0ZXJTY2FsZXIgPSBEUFBDeWNsZXMgKiBteVBpcGUtPlBpeGVsQ2xvY2sgLyBteVBpcGUtPkRQUENMSworCQkJKyBESVNQQ0xLQ3ljbGVzICogbXlQaXBlLT5QaXhlbENsb2NrIC8gbXlQaXBlLT5ESVNQQ0xLICsgRFNDRGVsYXk7CisKKwlpZiAobXlQaXBlLT5EUFBQZXJQbGFuZSA+IDEpCisJCSpEU1RYQWZ0ZXJTY2FsZXIgPSAqRFNUWEFmdGVyU2NhbGVyICsgU2NhbGVyUmVjb3V0V2lkdGg7CisKKwlpZiAoT3V0cHV0Rm9ybWF0ID09IGRtXzQyMCB8fCAobXlQaXBlLT5JbnRlcmxhY2VFbmFibGUgJiYgUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCkpCisJCSpEU1RZQWZ0ZXJTY2FsZXIgPSAxOworCWVsc2UKKwkJKkRTVFlBZnRlclNjYWxlciA9IDA7CisKKwlEU1RUb3RhbFBpeGVsc0FmdGVyU2NhbGVyID0gKChkb3VibGUpICgqRFNUWUFmdGVyU2NhbGVyICogbXlQaXBlLT5IVG90YWwpKSArICpEU1RYQWZ0ZXJTY2FsZXI7CisJKkRTVFlBZnRlclNjYWxlciA9IGRtbF9mbG9vcihEU1RUb3RhbFBpeGVsc0FmdGVyU2NhbGVyIC8gbXlQaXBlLT5IVG90YWwsIDEpOworCSpEU1RYQWZ0ZXJTY2FsZXIgPSBEU1RUb3RhbFBpeGVsc0FmdGVyU2NhbGVyIC0gKChkb3VibGUpICgqRFNUWUFmdGVyU2NhbGVyICogbXlQaXBlLT5IVG90YWwpKTsKKworCSpWVXBkYXRlT2Zmc2V0UGl4ID0gZG1sX2NlaWwobXlQaXBlLT5IVG90YWwgLyA0LjAsIDEpOworCVRvdGFsUmVwZWF0ZXJEZWxheVRpbWUgPSBNYXhJbnRlckRDTlRpbGVSZXBlYXRlcnMgKiAoMi4wIC8gbXlQaXBlLT5EUFBDTEsgKyAzLjAgLyBteVBpcGUtPkRJU1BDTEspOworCSpWVXBkYXRlV2lkdGhQaXggPSAoMTQuMCAvIG15UGlwZS0+RENGQ0xLRGVlcFNsZWVwICsgMTIuMCAvIG15UGlwZS0+RFBQQ0xLICsgVG90YWxSZXBlYXRlckRlbGF5VGltZSkKKwkJCSogbXlQaXBlLT5QaXhlbENsb2NrOworCisJKlZSZWFkeU9mZnNldFBpeCA9IGRtbF9tYXgoCisJCQkxNTAuMCAvIG15UGlwZS0+RFBQQ0xLLAorCQkJVG90YWxSZXBlYXRlckRlbGF5VGltZSArIDIwLjAgLyBteVBpcGUtPkRDRkNMS0RlZXBTbGVlcCArIDEwLjAgLyBteVBpcGUtPkRQUENMSykKKwkJCSogbXlQaXBlLT5QaXhlbENsb2NrOworCisJVHNldHVwID0gKGRvdWJsZSkgKCpWVXBkYXRlT2Zmc2V0UGl4ICsgKlZVcGRhdGVXaWR0aFBpeCArICpWUmVhZHlPZmZzZXRQaXgpIC8gbXlQaXBlLT5QaXhlbENsb2NrOworCisJTGluZVRpbWUgPSAoZG91YmxlKSBteVBpcGUtPkhUb3RhbCAvIG15UGlwZS0+UGl4ZWxDbG9jazsKKworCWlmIChEeW5hbWljTWV0YWRhdGFFbmFibGUpIHsKKwkJZG91YmxlIFRkbWJmLCBUZG1lYywgVGRtc2tzOworCisJCVRkbSA9IGRtbF9tYXgoMC4wLCBVcmdlbnRFeHRyYUxhdGVuY3kgLSBUQ2FsYyk7CisJCVRkbWJmID0gRHluYW1pY01ldGFkYXRhVHJhbnNtaXR0ZWRCeXRlcyAvIDQuMCAvIG15UGlwZS0+RElTUENMSzsKKwkJVGRtZWMgPSBMaW5lVGltZTsKKwkJaWYgKER5bmFtaWNNZXRhZGF0YUxpbmVzQmVmb3JlQWN0aXZlUmVxdWlyZWQgPT0gLTEpCisJCQlUZG1za3MgPSBteVBpcGUtPlZCbGFuayAqIExpbmVUaW1lIC8gMi4wOworCQllbHNlCisJCQlUZG1za3MgPSBEeW5hbWljTWV0YWRhdGFMaW5lc0JlZm9yZUFjdGl2ZVJlcXVpcmVkICogTGluZVRpbWU7CisJCWlmIChteVBpcGUtPkludGVybGFjZUVuYWJsZSAmJiAhUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCkKKwkJCVRkbXNrcyA9IFRkbXNrcyAvIDI7CisJCWlmIChWU3RhcnR1cCAqIExpbmVUaW1lCisJCQkJPCBUc2V0dXAgKyBUV2FpdCArIFVyZ2VudEV4dHJhTGF0ZW5jeSArIFRkbWJmICsgVGRtZWMgKyBUZG1za3MpIHsKKwkJCU15RXJyb3IgPSB0cnVlOworCQkJKlZTdGFydHVwUmVxdWlyZWRXaGVuTm90RW5vdWdoVGltZUZvckR5bmFtaWNNZXRhZGF0YSA9IChUc2V0dXAgKyBUV2FpdAorCQkJCQkrIFVyZ2VudEV4dHJhTGF0ZW5jeSArIFRkbWJmICsgVGRtZWMgKyBUZG1za3MpIC8gTGluZVRpbWU7CisJCX0gZWxzZQorCQkJKlZTdGFydHVwUmVxdWlyZWRXaGVuTm90RW5vdWdoVGltZUZvckR5bmFtaWNNZXRhZGF0YSA9IDAuMDsKKwl9IGVsc2UKKwkJVGRtID0gMDsKKworCWlmIChHUFVWTUVuYWJsZSkgeworCQlpZiAoR1BVVk1QYWdlVGFibGVMZXZlbHMgPj0gMykKKwkJCSpUbm9fYncgPSBVcmdlbnRFeHRyYUxhdGVuY3kgKyBVcmdlbnRMYXRlbmN5ICogKChHUFVWTVBhZ2VUYWJsZUxldmVscyAtIDIpICogKG15SG9zdFZNLT5NYXhQYWdlVGFibGVMZXZlbHMgKyAxKSAtIDEpOworCQllbHNlCisJCQkqVG5vX2J3ID0gMDsKKwl9IGVsc2UgaWYgKCFEQ0NFbmFibGUpCisJCSpUbm9fYncgPSBMaW5lVGltZTsKKwllbHNlCisJCSpUbm9fYncgPSBMaW5lVGltZSAvIDQ7CisKKwlkc3RfeV9wcmVmZXRjaF9lcXUgPSBWU3RhcnR1cCAtIGRtbF9tYXgoVENhbGMgKyBUV2FpdCwgWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheSkgLyBMaW5lVGltZQorCQkJLSAoVHNldHVwICsgVGRtKSAvIExpbmVUaW1lCisJCQktICgqRFNUWUFmdGVyU2NhbGVyICsgKkRTVFhBZnRlclNjYWxlciAvIG15UGlwZS0+SFRvdGFsKTsKKworCVRzd19vdG8gPSBkbWxfbWF4KFByZWZldGNoU291cmNlTGluZXNZLCBQcmVmZXRjaFNvdXJjZUxpbmVzQykgKiBMaW5lVGltZTsKKworCWlmIChteVBpcGUtPlNvdXJjZVNjYW4gPT0gZG1faG9yeikgeworCQkqc3dhdGhfd2lkdGhfbHVtYV91YiA9IGRtbF9jZWlsKFN3YXRoV2lkdGhZIC0gMSwgbXlQaXBlLT5CbG9ja1dpZHRoMjU2Qnl0ZXNZKSArIG15UGlwZS0+QmxvY2tXaWR0aDI1NkJ5dGVzWTsKKwkJKnN3YXRoX3dpZHRoX2Nocm9tYV91YiA9IGRtbF9jZWlsKFN3YXRoV2lkdGhZIC8gMiAtIDEsIG15UGlwZS0+QmxvY2tXaWR0aDI1NkJ5dGVzQykgKyBteVBpcGUtPkJsb2NrV2lkdGgyNTZCeXRlc0M7CisJfSBlbHNlIHsKKwkJKnN3YXRoX3dpZHRoX2x1bWFfdWIgPSBkbWxfY2VpbChTd2F0aFdpZHRoWSAtIDEsIG15UGlwZS0+QmxvY2tIZWlnaHQyNTZCeXRlc1kpICsgbXlQaXBlLT5CbG9ja0hlaWdodDI1NkJ5dGVzWTsKKwkJKnN3YXRoX3dpZHRoX2Nocm9tYV91YiA9IGRtbF9jZWlsKFN3YXRoV2lkdGhZIC8gMiAtIDEsIG15UGlwZS0+QmxvY2tIZWlnaHQyNTZCeXRlc0MpICsgbXlQaXBlLT5CbG9ja0hlaWdodDI1NkJ5dGVzQzsKKwl9CisKKwlwcmVmZXRjaF9id19vdG8gPSAoUHJlZmV0Y2hTb3VyY2VMaW5lc1kgKiAqc3dhdGhfd2lkdGhfbHVtYV91YiAqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVFksIDEpICsgUHJlZmV0Y2hTb3VyY2VMaW5lc0MgKiAqc3dhdGhfd2lkdGhfY2hyb21hX3ViICogZG1sX2NlaWwoQnl0ZVBlclBpeGVsREVUQywgMikpIC8gVHN3X290bzsKKworCisJaWYgKEdQVVZNRW5hYmxlID09IHRydWUpIHsKKwkJVHZtX290byA9IGRtbF9tYXgoKlRub19idyArIFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yIC8gcHJlZmV0Y2hfYndfb3RvLAorCQkJCWRtbF9tYXgoVXJnZW50RXh0cmFMYXRlbmN5ICsgVXJnZW50TGF0ZW5jeSAqIChHUFVWTVBhZ2VUYWJsZUxldmVscyAqIChIb3N0Vk1EeW5hbWljTGV2ZWxzICsgMSkgLSAxKSwKKwkJCQkJTGluZVRpbWUgLyA0LjApKTsKKwl9IGVsc2UKKwkJVHZtX290byA9IExpbmVUaW1lIC8gNC4wOworCisJaWYgKChHUFVWTUVuYWJsZSA9PSB0cnVlIHx8IERDQ0VuYWJsZSA9PSB0cnVlKSkgeworCQlUcjBfb3RvID0gZG1sX21heCgKKwkJCQkoTWV0YVJvd0J5dGUgKyBQaXhlbFBURUJ5dGVzUGVyUm93ICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yKSAvIHByZWZldGNoX2J3X290bywKKwkJCQlkbWxfbWF4KFVyZ2VudExhdGVuY3kgKiAoSG9zdFZNRHluYW1pY0xldmVscyArIDEpLCBkbWxfbWF4KExpbmVUaW1lIC0gVHZtX290bywgTGluZVRpbWUgLyA0KSkpOworCX0gZWxzZQorCQlUcjBfb3RvID0gKExpbmVUaW1lIC0gVHZtX290bykgLyAyLjA7CisKKwlUdm1fb3RvX2xpbmVzID0gZG1sX2NlaWwoNCAqIFR2bV9vdG8gLyBMaW5lVGltZSwgMSkgLyA0LjA7CisJVHIwX290b19saW5lcyA9IGRtbF9jZWlsKDQgKiBUcjBfb3RvIC8gTGluZVRpbWUsIDEpIC8gNC4wOworCVRzd19vdG9fbGluZXMgPSBkbWxfY2VpbCg0ICogVHN3X290byAvIExpbmVUaW1lLCAxKSAvIDQuMDsKKwlkc3RfeV9wcmVmZXRjaF9vdG8gPSBUdm1fb3RvX2xpbmVzICsgMiAqIFRyMF9vdG9fbGluZXMgKyBUc3dfb3RvX2xpbmVzICsgMC43NTsKKworCWRzdF95X3ByZWZldGNoX2VxdSA9IGRtbF9mbG9vcig0LjAgKiAoZHN0X3lfcHJlZmV0Y2hfZXF1ICsgMC4xMjUpLCAxKSAvIDQuMDsKKworCWlmIChkc3RfeV9wcmVmZXRjaF9vdG8gPCBkc3RfeV9wcmVmZXRjaF9lcXUpCisJCSpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2ggPSBkc3RfeV9wcmVmZXRjaF9vdG87CisJZWxzZQorCQkqRGVzdGluYXRpb25MaW5lc0ZvclByZWZldGNoID0gZHN0X3lfcHJlZmV0Y2hfZXF1OworCisJZG1sX3ByaW50KCJETUw6IFZTdGFydHVwOiAlZFxuIiwgVlN0YXJ0dXApOworCWRtbF9wcmludCgiRE1MOiBUQ2FsYzogJWZcbiIsIFRDYWxjKTsKKwlkbWxfcHJpbnQoIkRNTDogVFdhaXQ6ICVmXG4iLCBUV2FpdCk7CisJZG1sX3ByaW50KCJETUw6IFhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXk6ICVmXG4iLCBYRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5KTsKKwlkbWxfcHJpbnQoIkRNTDogTGluZVRpbWU6ICVmXG4iLCBMaW5lVGltZSk7CisJZG1sX3ByaW50KCJETUw6IFRzZXR1cDogJWZcbiIsIFRzZXR1cCk7CisJZG1sX3ByaW50KCJETUw6IFRkbTogJWZcbiIsIFRkbSk7CisJZG1sX3ByaW50KCJETUw6IERTVFlBZnRlclNjYWxlcjogJWZcbiIsICpEU1RZQWZ0ZXJTY2FsZXIpOworCWRtbF9wcmludCgiRE1MOiBEU1RYQWZ0ZXJTY2FsZXI6ICVmXG4iLCAqRFNUWEFmdGVyU2NhbGVyKTsKKwlkbWxfcHJpbnQoIkRNTDogSFRvdGFsOiAlZFxuIiwgbXlQaXBlLT5IVG90YWwpOworCisJKlByZWZldGNoQmFuZHdpZHRoID0gMDsKKwkqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmsgPSAwOworCSpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmsgPSAwOworCSpWUmF0aW9QcmVmZXRjaFkgPSAwOworCSpWUmF0aW9QcmVmZXRjaEMgPSAwOworCSpSZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXTHVtYSA9IDA7CisJaWYgKCpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2ggPiAxKSB7CisJCWRvdWJsZSBQcmVmZXRjaEJhbmR3aWR0aDEgPSAoUERFQW5kTWV0YVBURUJ5dGVzRnJhbWUgKiBIb3N0Vk1JbmVmZmljaWVuY3lGYWN0b3IgKyAyICogTWV0YVJvd0J5dGUKKwkJCQkrIDIgKiBQaXhlbFBURUJ5dGVzUGVyUm93ICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yCisJCQkJKyBQcmVmZXRjaFNvdXJjZUxpbmVzWSAqICpzd2F0aF93aWR0aF9sdW1hX3ViICogZG1sX2NlaWwoQnl0ZVBlclBpeGVsREVUWSwgMSkKKwkJCQkrIFByZWZldGNoU291cmNlTGluZXNDICogKnN3YXRoX3dpZHRoX2Nocm9tYV91YiAqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVEMsIDIpKQorCQkJCS8gKCpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2ggKiBMaW5lVGltZSAtICpUbm9fYncpOworCisJCWRvdWJsZSBQcmVmZXRjaEJhbmR3aWR0aDIgPSAoUERFQW5kTWV0YVBURUJ5dGVzRnJhbWUgKgorCQkJCUhvc3RWTUluZWZmaWNpZW5jeUZhY3RvciArIFByZWZldGNoU291cmNlTGluZXNZICoKKwkJCQkqc3dhdGhfd2lkdGhfbHVtYV91YiAqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVFksIDEpICsKKwkJCQlQcmVmZXRjaFNvdXJjZUxpbmVzQyAqICpzd2F0aF93aWR0aF9jaHJvbWFfdWIgKgorCQkJCWRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVEMsIDIpKSAvCisJCQkJKCpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2ggKiBMaW5lVGltZSAtICpUbm9fYncgLSAyICoKKwkJCQlVcmdlbnRMYXRlbmN5ICogKDEgKyBIb3N0Vk1EeW5hbWljTGV2ZWxzKSk7CisKKwkJZG91YmxlIFByZWZldGNoQmFuZHdpZHRoMyA9ICgyICogTWV0YVJvd0J5dGUgKyAyICogUGl4ZWxQVEVCeXRlc1BlclJvdworCQkJCSogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yICsgUHJlZmV0Y2hTb3VyY2VMaW5lc1kgKgorCQkJCSpzd2F0aF93aWR0aF9sdW1hX3ViICogZG1sX2NlaWwoQnl0ZVBlclBpeGVsREVUWSwgMSkgKworCQkJCVByZWZldGNoU291cmNlTGluZXNDICogKnN3YXRoX3dpZHRoX2Nocm9tYV91YiAqCisJCQkJZG1sX2NlaWwoQnl0ZVBlclBpeGVsREVUQywgMikpIC8KKwkJCQkoKkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaCAqIExpbmVUaW1lIC0KKwkJCQlVcmdlbnRFeHRyYUxhdGVuY3kgLSBVcmdlbnRMYXRlbmN5ICogKEdQVVZNUGFnZVRhYmxlTGV2ZWxzCisJCQkJKiAoSG9zdFZNRHluYW1pY0xldmVscyArIDEpIC0gMSkpOworCisJCWRvdWJsZSBQcmVmZXRjaEJhbmR3aWR0aDQgPSAoUHJlZmV0Y2hTb3VyY2VMaW5lc1kgKiAqc3dhdGhfd2lkdGhfbHVtYV91YiAqCisJCQkJZG1sX2NlaWwoQnl0ZVBlclBpeGVsREVUWSwgMSkgKyBQcmVmZXRjaFNvdXJjZUxpbmVzQyAqCisJCQkJKnN3YXRoX3dpZHRoX2Nocm9tYV91YiAqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVEMsIDIpKSAvCisJCQkJKCpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2ggKiBMaW5lVGltZSAtCisJCQkJVXJnZW50RXh0cmFMYXRlbmN5IC0gVXJnZW50TGF0ZW5jeSAqIChHUFVWTVBhZ2VUYWJsZUxldmVscworCQkJCSogKEhvc3RWTUR5bmFtaWNMZXZlbHMgKyAxKSAtIDEpIC0gMiAqIFVyZ2VudExhdGVuY3kgKgorCQkJCSgxICsgSG9zdFZNRHluYW1pY0xldmVscykpOworCisJCWlmIChWU3RhcnR1cCA9PSBNYXhWU3RhcnR1cCAmJiAoUHJlZmV0Y2hCYW5kd2lkdGgxID4gNCAqIHByZWZldGNoX2J3X290bykgJiYgKCpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2ggLSBkbWxfY2VpbChUc3dfb3RvX2xpbmVzLCAxKSAvIDQuMCAtIDAuNzUpICogTGluZVRpbWUgLSAqVG5vX2J3ID4gMCkgeworCQkJUHJlZmV0Y2hCYW5kd2lkdGgxID0gKFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yICsgMiAqIE1ldGFSb3dCeXRlICsgMiAqIFBpeGVsUFRFQnl0ZXNQZXJSb3cgKiBIb3N0Vk1JbmVmZmljaWVuY3lGYWN0b3IpIC8gKCgqRGVzdGluYXRpb25MaW5lc0ZvclByZWZldGNoIC0gZG1sX2NlaWwoVHN3X290b19saW5lcywgMSkgLyA0LjAgLSAwLjc1KSAqIExpbmVUaW1lIC0gKlRub19idyk7CisJCX0KKwkJaWYgKCpUbm9fYncgKyBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZSAqIEhvc3RWTUluZWZmaWNpZW5jeUZhY3RvciAvIFByZWZldGNoQmFuZHdpZHRoMSA+PSBVcmdlbnRFeHRyYUxhdGVuY3kgKyBVcmdlbnRMYXRlbmN5ICogKEdQVVZNUGFnZVRhYmxlTGV2ZWxzICogKEhvc3RWTUR5bmFtaWNMZXZlbHMgKyAxKSAtIDEpICYmIChNZXRhUm93Qnl0ZSArIFBpeGVsUFRFQnl0ZXNQZXJSb3cgKiBIb3N0Vk1JbmVmZmljaWVuY3lGYWN0b3IpIC8gUHJlZmV0Y2hCYW5kd2lkdGgxID49IFVyZ2VudExhdGVuY3kgKiAoMSArIEhvc3RWTUR5bmFtaWNMZXZlbHMpKSB7CisJCQkqUHJlZmV0Y2hCYW5kd2lkdGggPSBQcmVmZXRjaEJhbmR3aWR0aDE7CisJCX0gZWxzZSBpZiAoKlRub19idyArIFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yIC8gUHJlZmV0Y2hCYW5kd2lkdGgyID49IFVyZ2VudEV4dHJhTGF0ZW5jeSArIFVyZ2VudExhdGVuY3kgKiAoR1BVVk1QYWdlVGFibGVMZXZlbHMgKiAoSG9zdFZNRHluYW1pY0xldmVscyArIDEpIC0gMSkgJiYgKE1ldGFSb3dCeXRlICsgUGl4ZWxQVEVCeXRlc1BlclJvdyAqIEhvc3RWTUluZWZmaWNpZW5jeUZhY3RvcikgLyBQcmVmZXRjaEJhbmR3aWR0aDIgPCBVcmdlbnRMYXRlbmN5ICogKDEgKyBIb3N0Vk1EeW5hbWljTGV2ZWxzKSkgeworCQkJKlByZWZldGNoQmFuZHdpZHRoID0gUHJlZmV0Y2hCYW5kd2lkdGgyOworCQl9IGVsc2UgaWYgKCpUbm9fYncgKyBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZSAqIEhvc3RWTUluZWZmaWNpZW5jeUZhY3RvciAvIFByZWZldGNoQmFuZHdpZHRoMyA8IFVyZ2VudEV4dHJhTGF0ZW5jeSArIFVyZ2VudExhdGVuY3kgKiAoR1BVVk1QYWdlVGFibGVMZXZlbHMgKiAoSG9zdFZNRHluYW1pY0xldmVscyArIDEpIC0gMSkgJiYgKE1ldGFSb3dCeXRlICsgUGl4ZWxQVEVCeXRlc1BlclJvdyAqIEhvc3RWTUluZWZmaWNpZW5jeUZhY3RvcikgLyBQcmVmZXRjaEJhbmR3aWR0aDMgPj0gVXJnZW50TGF0ZW5jeSAqICgxICsgSG9zdFZNRHluYW1pY0xldmVscykpIHsKKwkJCSpQcmVmZXRjaEJhbmR3aWR0aCA9IFByZWZldGNoQmFuZHdpZHRoMzsKKwkJfSBlbHNlIHsKKwkJCSpQcmVmZXRjaEJhbmR3aWR0aCA9IFByZWZldGNoQmFuZHdpZHRoNDsKKwkJfQorCisJCWlmIChHUFVWTUVuYWJsZSkgeworCQkJVGltZUZvckZldGNoaW5nTWV0YVBURSA9IGRtbF9tYXgoKlRub19idyArIChkb3VibGUpIFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yIC8gKlByZWZldGNoQmFuZHdpZHRoLAorCQkJCQlkbWxfbWF4KFVyZ2VudEV4dHJhTGF0ZW5jeSArIFVyZ2VudExhdGVuY3kgKiAoR1BVVk1QYWdlVGFibGVMZXZlbHMgKiAoSG9zdFZNRHluYW1pY0xldmVscyArIDEpIC0gMSksIExpbmVUaW1lIC8gNCkpOworCQl9IGVsc2UgeworLy8gNS8zMC8yMDE4IC0gVGhpcyB3YXMgYW4gb3B0aW1pemF0aW9uIHJlcXVlc3RlZCBmcm9tIFN5IGJ1dCBub3cgTnVtYmVyT2ZDdXJzb3JzIGlzIG5vIGxvbmdlciBhIGZhY3RvcgorLy8gICAgICAgICAgICAgc28gaWYgdGhpcyBuZWVkcyB0byBiZSByZWluc3RhdGVkLCB0aGVuIGl0IHNob3VsZCBiZSBvZmZpY2lhbGx5IGRvbmUgaW4gdGhlIFZCQSBjb2RlIGFzIHdlbGwuCisvLwkJCWlmIChtb2RlX2xpYi0+TnVtYmVyT2ZDdXJzb3JzID4gMCB8fCBYRkNFbmFibGVkKQorCQkJCVRpbWVGb3JGZXRjaGluZ01ldGFQVEUgPSBMaW5lVGltZSAvIDQ7CisvLwkJCWVsc2UKKy8vCQkJCVRpbWVGb3JGZXRjaGluZ01ldGFQVEUgPSAwLjA7CisJCX0KKworCQlpZiAoKEdQVVZNRW5hYmxlID09IHRydWUgfHwgRENDRW5hYmxlID09IHRydWUpKSB7CisJCQlUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFuayA9CisJCQkJCWRtbF9tYXgoCisJCQkJCQkJKE1ldGFSb3dCeXRlICsgUGl4ZWxQVEVCeXRlc1BlclJvdyAqIEhvc3RWTUluZWZmaWNpZW5jeUZhY3RvcikKKwkJCQkJCQkJCS8gKlByZWZldGNoQmFuZHdpZHRoLAorCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQlVcmdlbnRMYXRlbmN5ICogKDEgKyBIb3N0Vk1EeW5hbWljTGV2ZWxzKSwKKwkJCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQkJCShMaW5lVGltZQorCQkJCQkJCQkJCQkJCS0gVGltZUZvckZldGNoaW5nTWV0YVBURSkgLyAyLjAsCisJCQkJCQkJCQkJCUxpbmVUaW1lCisJCQkJCQkJCQkJCQkJLyA0LjApKSk7CisJCX0gZWxzZSB7CisvLyBTZWUgbm90ZSBhYm92ZSBkYXRlZCA1LzMwLzIwMTgKKy8vCQkJaWYgKE51bWJlck9mQ3Vyc29ycyA+IDAgfHwgWEZDRW5hYmxlZCkKKwkJCQlUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFuayA9IChMaW5lVGltZSAtIFRpbWVGb3JGZXRjaGluZ01ldGFQVEUpIC8gMi4wOworLy8JCQllbHNlIC8vIFRPRE86IERpZCBzb21lb25lIGVsc2UgYWRkIHRoaXM/PworLy8JCQkJVGltZUZvckZldGNoaW5nUm93SW5WQmxhbmsgPSAwLjA7CisJCX0KKworCQkqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmsgPSBkbWxfY2VpbCg0LjAgKiBUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFIC8gTGluZVRpbWUsIDEuMCkgLyA0LjA7CisKKwkJKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJblZCbGFuayA9IGRtbF9jZWlsKDQuMCAqIFRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rIC8gTGluZVRpbWUsIDEuMCkgLyA0LjA7CisKKwkJTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YSA9ICpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2gKKy8vIFNlZSBub3RlIGFib3ZlIGRhdGVkIDUvMzAvMjAxOAorLy8JCQkJCQktICgoTnVtYmVyT2ZDdXJzb3JzID4gMCB8fCBHUFVWTUVuYWJsZSB8fCBEQ0NFbmFibGUpID8KKwkJCQkJCS0gKChHUFVWTUVuYWJsZSB8fCBEQ0NFbmFibGUpID8KKwkJCQkJCQkJKCpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFuayArIDIgKiAqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luVkJsYW5rKSA6CisJCQkJCQkJCTAuMCk7IC8vIFRPRE86IERpZCBzb21lb25lIGVsc2UgYWRkIHRoaXM/PworCisJCWlmIChMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhID4gMCkgeworCisJCQkqVlJhdGlvUHJlZmV0Y2hZID0gKGRvdWJsZSkgUHJlZmV0Y2hTb3VyY2VMaW5lc1kKKwkJCQkJLyBMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhOworCQkJKlZSYXRpb1ByZWZldGNoWSA9IGRtbF9tYXgoKlZSYXRpb1ByZWZldGNoWSwgMS4wKTsKKwkJCWlmICgoU3dhdGhIZWlnaHRZID4gNCkgJiYgKFZJbml0UHJlRmlsbFkgPiAzKSkgeworCQkJCWlmIChMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhID4gKFZJbml0UHJlRmlsbFkgLSAzLjApIC8gMi4wKSB7CisJCQkJCSpWUmF0aW9QcmVmZXRjaFkgPQorCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQkoZG91YmxlKSBQcmVmZXRjaFNvdXJjZUxpbmVzWQorCQkJCQkJCQkJCQkvIExpbmVzVG9SZXF1ZXN0UHJlZmV0Y2hQaXhlbERhdGEsCisJCQkJCQkJCQkoZG91YmxlKSBNYXhOdW1Td2F0aFkKKwkJCQkJCQkJCQkJKiBTd2F0aEhlaWdodFkKKwkJCQkJCQkJCQkJLyAoTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YQorCQkJCQkJCQkJCQkJCS0gKFZJbml0UHJlRmlsbFkKKwkJCQkJCQkJCQkJCQkJCS0gMy4wKQorCQkJCQkJCQkJCQkJCQkJLyAyLjApKTsKKwkJCQkJKlZSYXRpb1ByZWZldGNoWSA9IGRtbF9tYXgoKlZSYXRpb1ByZWZldGNoWSwgMS4wKTsKKwkJCQl9IGVsc2UgeworCQkJCQlNeUVycm9yID0gdHJ1ZTsKKwkJCQkJKlZSYXRpb1ByZWZldGNoWSA9IDA7CisJCQkJfQorCQkJfQorCisJCQkqVlJhdGlvUHJlZmV0Y2hDID0gKGRvdWJsZSkgUHJlZmV0Y2hTb3VyY2VMaW5lc0MKKwkJCQkJLyBMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhOworCQkJKlZSYXRpb1ByZWZldGNoQyA9IGRtbF9tYXgoKlZSYXRpb1ByZWZldGNoQywgMS4wKTsKKworCQkJaWYgKChTd2F0aEhlaWdodEMgPiA0KSkgeworCQkJCWlmIChMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhID4gKFZJbml0UHJlRmlsbEMgLSAzLjApIC8gMi4wKSB7CisJCQkJCSpWUmF0aW9QcmVmZXRjaEMgPQorCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQkqVlJhdGlvUHJlZmV0Y2hDLAorCQkJCQkJCQkJKGRvdWJsZSkgTWF4TnVtU3dhdGhDCisJCQkJCQkJCQkJCSogU3dhdGhIZWlnaHRDCisJCQkJCQkJCQkJCS8gKExpbmVzVG9SZXF1ZXN0UHJlZmV0Y2hQaXhlbERhdGEKKwkJCQkJCQkJCQkJCQktIChWSW5pdFByZUZpbGxDCisJCQkJCQkJCQkJCQkJCQktIDMuMCkKKwkJCQkJCQkJCQkJCQkJCS8gMi4wKSk7CisJCQkJCSpWUmF0aW9QcmVmZXRjaEMgPSBkbWxfbWF4KCpWUmF0aW9QcmVmZXRjaEMsIDEuMCk7CisJCQkJfSBlbHNlIHsKKwkJCQkJTXlFcnJvciA9IHRydWU7CisJCQkJCSpWUmF0aW9QcmVmZXRjaEMgPSAwOworCQkJCX0KKwkJCX0KKworCQkJKlJlcXVpcmVkUHJlZmV0Y2hQaXhEYXRhQldMdW1hID0gbXlQaXBlLT5EUFBQZXJQbGFuZQorCQkJCQkqIChkb3VibGUpIFByZWZldGNoU291cmNlTGluZXNZIC8gTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YQorCQkJCQkqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVFksIDEpCisJCQkJCSogKnN3YXRoX3dpZHRoX2x1bWFfdWIgLyBMaW5lVGltZTsKKwkJCSpSZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXQ2hyb21hID0gbXlQaXBlLT5EUFBQZXJQbGFuZQorCQkJCQkqIChkb3VibGUpIFByZWZldGNoU291cmNlTGluZXNDIC8gTGluZXNUb1JlcXVlc3RQcmVmZXRjaFBpeGVsRGF0YQorCQkJCQkqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVEMsIDIpCisJCQkJCSogKnN3YXRoX3dpZHRoX2Nocm9tYV91YiAvIExpbmVUaW1lOworCQl9IGVsc2UgeworCQkJTXlFcnJvciA9IHRydWU7CisJCQkqVlJhdGlvUHJlZmV0Y2hZID0gMDsKKwkJCSpWUmF0aW9QcmVmZXRjaEMgPSAwOworCQkJKlJlcXVpcmVkUHJlZmV0Y2hQaXhEYXRhQldMdW1hID0gMDsKKwkJCSpSZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXQ2hyb21hID0gMDsKKwkJfQorCisJCWRtbF9wcmludCgiRE1MOiBUdm06ICVmdXNcbiIsIFRpbWVGb3JGZXRjaGluZ01ldGFQVEUpOworCQlkbWxfcHJpbnQoIkRNTDogVHIwOiAlZnVzXG4iLCBUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFuayk7CisJCWRtbF9wcmludCgiRE1MOiBUc3c6ICVmdXNcbiIsIChkb3VibGUpKCpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2gpICogTGluZVRpbWUgLSBUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFIC0gVGltZUZvckZldGNoaW5nUm93SW5WQmxhbmspOworCQlkbWxfcHJpbnQoIkRNTDogVHByZTogJWZ1c1xuIiwgKGRvdWJsZSkoKkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaCkgKiBMaW5lVGltZSk7CisJCWRtbF9wcmludCgiRE1MOiByb3dfYnl0ZXMgPSBkcHRlX3Jvd19ieXRlcyAocGVyX3BpcGUpID0gUGl4ZWxQVEVCeXRlc1BlclJvdyA9IDogJWRcbiIsIFBpeGVsUFRFQnl0ZXNQZXJSb3cpOworCisJfSBlbHNlIHsKKwkJTXlFcnJvciA9IHRydWU7CisJfQorCisJeworCQlkb3VibGUgcHJlZmV0Y2hfdm1fYnc7CisJCWRvdWJsZSBwcmVmZXRjaF9yb3dfYnc7CisKKwkJaWYgKFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lID09IDApIHsKKwkJCXByZWZldGNoX3ZtX2J3ID0gMDsKKwkJfSBlbHNlIGlmICgqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmsgPiAwKSB7CisJCQlwcmVmZXRjaF92bV9idyA9IFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yIC8gKCpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFuayAqIExpbmVUaW1lKTsKKwkJfSBlbHNlIHsKKwkJCXByZWZldGNoX3ZtX2J3ID0gMDsKKwkJCU15RXJyb3IgPSB0cnVlOworCQl9CisJCWlmIChNZXRhUm93Qnl0ZSArIFBpeGVsUFRFQnl0ZXNQZXJSb3cgPT0gMCkgeworCQkJcHJlZmV0Y2hfcm93X2J3ID0gMDsKKwkJfSBlbHNlIGlmICgqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luVkJsYW5rID4gMCkgeworCQkJcHJlZmV0Y2hfcm93X2J3ID0gKE1ldGFSb3dCeXRlICsgUGl4ZWxQVEVCeXRlc1BlclJvdyAqIEhvc3RWTUluZWZmaWNpZW5jeUZhY3RvcikgLyAoKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJblZCbGFuayAqIExpbmVUaW1lKTsKKwkJfSBlbHNlIHsKKwkJCXByZWZldGNoX3Jvd19idyA9IDA7CisJCQlNeUVycm9yID0gdHJ1ZTsKKwkJfQorCisJCSpwcmVmZXRjaF92bXJvd19idyA9IGRtbF9tYXgocHJlZmV0Y2hfdm1fYncsIHByZWZldGNoX3Jvd19idyk7CisJfQorCisJaWYgKE15RXJyb3IpIHsKKwkJKlByZWZldGNoQmFuZHdpZHRoID0gMDsKKwkJVGltZUZvckZldGNoaW5nTWV0YVBURSA9IDA7CisJCVRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rID0gMDsKKwkJKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluVkJsYW5rID0gMDsKKwkJKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJblZCbGFuayA9IDA7CisJCSpEZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2ggPSAwOworCQlMaW5lc1RvUmVxdWVzdFByZWZldGNoUGl4ZWxEYXRhID0gMDsKKwkJKlZSYXRpb1ByZWZldGNoWSA9IDA7CisJCSpWUmF0aW9QcmVmZXRjaEMgPSAwOworCQkqUmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0x1bWEgPSAwOworCQkqUmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0Nocm9tYSA9IDA7CisJfQorCisJcmV0dXJuIE15RXJyb3I7Cit9CisKK3N0YXRpYyBkb3VibGUgUm91bmRUb0RGU0dyYW51bGFyaXR5VXAoZG91YmxlIENsb2NrLCBkb3VibGUgVkNPU3BlZWQpCit7CisJcmV0dXJuIFZDT1NwZWVkICogNCAvIGRtbF9mbG9vcihWQ09TcGVlZCAqIDQgLyBDbG9jaywgMSk7Cit9CisKK3N0YXRpYyBkb3VibGUgUm91bmRUb0RGU0dyYW51bGFyaXR5RG93bihkb3VibGUgQ2xvY2ssIGRvdWJsZSBWQ09TcGVlZCkKK3sKKwlyZXR1cm4gVkNPU3BlZWQgKiA0IC8gZG1sX2NlaWwoVkNPU3BlZWQgKiA0IC8gQ2xvY2ssIDEpOworfQorCitzdGF0aWMgZG91YmxlIENhbGN1bGF0ZURDQ0NvbmZpZ3VyYXRpb24oCisJCWJvb2wgRENDRW5hYmxlZCwKKwkJYm9vbCBEQ0NQcm9ncmFtbWluZ0Fzc3VtZXNTY2FuRGlyZWN0aW9uVW5rbm93biwKKwkJdW5zaWduZWQgaW50IFZpZXdwb3J0V2lkdGgsCisJCXVuc2lnbmVkIGludCBWaWV3cG9ydEhlaWdodCwKKwkJZG91YmxlIERFVEJ1ZmZlclNpemUsCisJCXVuc2lnbmVkIGludCBSZXF1ZXN0SGVpZ2h0MjU2Qnl0ZSwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0LAorCQllbnVtIGRtX3N3aXp6bGVfbW9kZSBUaWxpbmdGb3JtYXQsCisJCXVuc2lnbmVkIGludCBCeXRlUGVyUGl4ZWwsCisJCWVudW0gc2Nhbl9kaXJlY3Rpb25fY2xhc3MgU2Nhbk9yaWVudGF0aW9uLAorCQl1bnNpZ25lZCBpbnQgKk1heFVuY29tcHJlc3NlZEJsb2NrLAorCQl1bnNpZ25lZCBpbnQgKk1heENvbXByZXNzZWRCbG9jaywKKwkJdW5zaWduZWQgaW50ICpJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrKQoreworCWRvdWJsZSBNYXhpbXVtRENDQ29tcHJlc3Npb25TdXJmYWNlID0gMC4wOworCWVudW0geworCQlSRVFfMjU2Qnl0ZXMsCisJCVJFUV8xMjhCeXRlc05vbkNvbnRpZ3VvdXMsCisJCVJFUV8xMjhCeXRlc0NvbnRpZ3VvdXMsCisJCVJFUV9OQQorCX0gUmVxdWVzdCA9IFJFUV9OQTsKKworCWlmIChEQ0NFbmFibGVkID09IHRydWUpIHsKKwkJaWYgKERDQ1Byb2dyYW1taW5nQXNzdW1lc1NjYW5EaXJlY3Rpb25Vbmtub3duID09IHRydWUpIHsKKwkJCWlmIChERVRCdWZmZXJTaXplID49IFJlcXVlc3RIZWlnaHQyNTZCeXRlICogVmlld3BvcnRXaWR0aCAqIEJ5dGVQZXJQaXhlbAorCQkJCQkmJiBERVRCdWZmZXJTaXplCisJCQkJCQkJPj0gMjU2IC8gUmVxdWVzdEhlaWdodDI1NkJ5dGUKKwkJCQkJCQkJCSogVmlld3BvcnRIZWlnaHQpIHsKKwkJCQlSZXF1ZXN0ID0gUkVRXzI1NkJ5dGVzOworCQkJfSBlbHNlIGlmICgoREVUQnVmZmVyU2l6ZQorCQkJCQk8IFJlcXVlc3RIZWlnaHQyNTZCeXRlICogVmlld3BvcnRXaWR0aCAqIEJ5dGVQZXJQaXhlbAorCQkJCQkmJiAoQnl0ZVBlclBpeGVsID09IDIgfHwgQnl0ZVBlclBpeGVsID09IDQpKQorCQkJCQl8fCAoREVUQnVmZmVyU2l6ZQorCQkJCQkJCTwgMjU2IC8gUmVxdWVzdEhlaWdodDI1NkJ5dGUKKwkJCQkJCQkJCSogVmlld3BvcnRIZWlnaHQKKwkJCQkJCQkmJiBCeXRlUGVyUGl4ZWwgPT0gOAorCQkJCQkJCSYmIChUaWxpbmdGb3JtYXQgPT0gZG1fc3dfNGtiX2QKKwkJCQkJCQkJCXx8IFRpbGluZ0Zvcm1hdAorCQkJCQkJCQkJCQk9PSBkbV9zd180a2JfZF94CisJCQkJCQkJCQl8fCBUaWxpbmdGb3JtYXQKKwkJCQkJCQkJCQkJPT0gZG1fc3dfdmFyX2QKKwkJCQkJCQkJCXx8IFRpbGluZ0Zvcm1hdAorCQkJCQkJCQkJCQk9PSBkbV9zd192YXJfZF94CisJCQkJCQkJCQl8fCBUaWxpbmdGb3JtYXQKKwkJCQkJCQkJCQkJPT0gZG1fc3dfNjRrYl9kCisJCQkJCQkJCQl8fCBUaWxpbmdGb3JtYXQKKwkJCQkJCQkJCQkJPT0gZG1fc3dfNjRrYl9kX3gKKwkJCQkJCQkJCXx8IFRpbGluZ0Zvcm1hdAorCQkJCQkJCQkJCQk9PSBkbV9zd182NGtiX2RfdAorCQkJCQkJCQkJfHwgVGlsaW5nRm9ybWF0CisJCQkJCQkJCQkJCT09IGRtX3N3XzY0a2Jfcl94KSkpIHsKKwkJCQlSZXF1ZXN0ID0gUkVRXzEyOEJ5dGVzTm9uQ29udGlndW91czsKKwkJCX0gZWxzZSB7CisJCQkJUmVxdWVzdCA9IFJFUV8xMjhCeXRlc0NvbnRpZ3VvdXM7CisJCQl9CisJCX0gZWxzZSB7CisJCQlpZiAoQnl0ZVBlclBpeGVsID09IDEpIHsKKwkJCQlpZiAoU2Nhbk9yaWVudGF0aW9uID09IGRtX3ZlcnQgfHwgU3dhdGhIZWlnaHQgPT0gMTYpIHsKKwkJCQkJUmVxdWVzdCA9IFJFUV8yNTZCeXRlczsKKwkJCQl9IGVsc2UgeworCQkJCQlSZXF1ZXN0ID0gUkVRXzEyOEJ5dGVzQ29udGlndW91czsKKwkJCQl9CisJCQl9IGVsc2UgaWYgKEJ5dGVQZXJQaXhlbCA9PSAyKSB7CisJCQkJaWYgKChTY2FuT3JpZW50YXRpb24gPT0gZG1fdmVydCAmJiBTd2F0aEhlaWdodCA9PSAxNikgfHwgKFNjYW5PcmllbnRhdGlvbiAhPSBkbV92ZXJ0ICYmIFN3YXRoSGVpZ2h0ID09IDgpKSB7CisJCQkJCVJlcXVlc3QgPSBSRVFfMjU2Qnl0ZXM7CisJCQkJfSBlbHNlIGlmIChTY2FuT3JpZW50YXRpb24gPT0gZG1fdmVydCkgeworCQkJCQlSZXF1ZXN0ID0gUkVRXzEyOEJ5dGVzQ29udGlndW91czsKKwkJCQl9IGVsc2UgeworCQkJCQlSZXF1ZXN0ID0gUkVRXzEyOEJ5dGVzTm9uQ29udGlndW91czsKKwkJCQl9CisJCQl9IGVsc2UgaWYgKEJ5dGVQZXJQaXhlbCA9PSA0KSB7CisJCQkJaWYgKFN3YXRoSGVpZ2h0ID09IDgpIHsKKwkJCQkJUmVxdWVzdCA9IFJFUV8yNTZCeXRlczsKKwkJCQl9IGVsc2UgaWYgKFNjYW5PcmllbnRhdGlvbiA9PSBkbV92ZXJ0KSB7CisJCQkJCVJlcXVlc3QgPSBSRVFfMTI4Qnl0ZXNDb250aWd1b3VzOworCQkJCX0gZWxzZSB7CisJCQkJCVJlcXVlc3QgPSBSRVFfMTI4Qnl0ZXNOb25Db250aWd1b3VzOworCQkJCX0KKwkJCX0gZWxzZSBpZiAoQnl0ZVBlclBpeGVsID09IDgpIHsKKwkJCQlpZiAoVGlsaW5nRm9ybWF0ID09IGRtX3N3XzRrYl9kIHx8IFRpbGluZ0Zvcm1hdCA9PSBkbV9zd180a2JfZF94CisJCQkJCQl8fCBUaWxpbmdGb3JtYXQgPT0gZG1fc3dfdmFyX2QKKwkJCQkJCXx8IFRpbGluZ0Zvcm1hdCA9PSBkbV9zd192YXJfZF94CisJCQkJCQl8fCBUaWxpbmdGb3JtYXQgPT0gZG1fc3dfNjRrYl9kCisJCQkJCQl8fCBUaWxpbmdGb3JtYXQgPT0gZG1fc3dfNjRrYl9kX3gKKwkJCQkJCXx8IFRpbGluZ0Zvcm1hdCA9PSBkbV9zd182NGtiX2RfdAorCQkJCQkJfHwgVGlsaW5nRm9ybWF0ID09IGRtX3N3XzY0a2Jfcl94KSB7CisJCQkJCWlmICgoU2Nhbk9yaWVudGF0aW9uID09IGRtX3ZlcnQgJiYgU3dhdGhIZWlnaHQgPT0gOCkKKwkJCQkJCQl8fCAoU2Nhbk9yaWVudGF0aW9uICE9IGRtX3ZlcnQKKwkJCQkJCQkJCSYmIFN3YXRoSGVpZ2h0ID09IDQpKSB7CisJCQkJCQlSZXF1ZXN0ID0gUkVRXzI1NkJ5dGVzOworCQkJCQl9IGVsc2UgaWYgKFNjYW5PcmllbnRhdGlvbiAhPSBkbV92ZXJ0KSB7CisJCQkJCQlSZXF1ZXN0ID0gUkVRXzEyOEJ5dGVzQ29udGlndW91czsKKwkJCQkJfSBlbHNlIHsKKwkJCQkJCVJlcXVlc3QgPSBSRVFfMTI4Qnl0ZXNOb25Db250aWd1b3VzOworCQkJCQl9CisJCQkJfSBlbHNlIHsKKwkJCQkJaWYgKFNjYW5PcmllbnRhdGlvbiAhPSBkbV92ZXJ0IHx8IFN3YXRoSGVpZ2h0ID09IDgpIHsKKwkJCQkJCVJlcXVlc3QgPSBSRVFfMjU2Qnl0ZXM7CisJCQkJCX0gZWxzZSB7CisJCQkJCQlSZXF1ZXN0ID0gUkVRXzEyOEJ5dGVzQ29udGlndW91czsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJfQorCX0gZWxzZSB7CisJCVJlcXVlc3QgPSBSRVFfTkE7CisJfQorCisJaWYgKFJlcXVlc3QgPT0gUkVRXzI1NkJ5dGVzKSB7CisJCSpNYXhVbmNvbXByZXNzZWRCbG9jayA9IDI1NjsKKwkJKk1heENvbXByZXNzZWRCbG9jayA9IDI1NjsKKwkJKkluZGVwZW5kZW50NjRCeXRlQmxvY2sgPSBmYWxzZTsKKwkJTWF4aW11bURDQ0NvbXByZXNzaW9uU3VyZmFjZSA9IDQuMDsKKwl9IGVsc2UgaWYgKFJlcXVlc3QgPT0gUkVRXzEyOEJ5dGVzQ29udGlndW91cykgeworCQkqTWF4VW5jb21wcmVzc2VkQmxvY2sgPSAxMjg7CisJCSpNYXhDb21wcmVzc2VkQmxvY2sgPSAxMjg7CisJCSpJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrID0gZmFsc2U7CisJCU1heGltdW1EQ0NDb21wcmVzc2lvblN1cmZhY2UgPSAyLjA7CisJfSBlbHNlIGlmIChSZXF1ZXN0ID09IFJFUV8xMjhCeXRlc05vbkNvbnRpZ3VvdXMpIHsKKwkJKk1heFVuY29tcHJlc3NlZEJsb2NrID0gMjU2OworCQkqTWF4Q29tcHJlc3NlZEJsb2NrID0gNjQ7CisJCSpJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrID0gdHJ1ZTsKKwkJTWF4aW11bURDQ0NvbXByZXNzaW9uU3VyZmFjZSA9IDQuMDsKKwl9IGVsc2UgeworCQkqTWF4VW5jb21wcmVzc2VkQmxvY2sgPSAwOworCQkqTWF4Q29tcHJlc3NlZEJsb2NrID0gMDsKKwkJKkluZGVwZW5kZW50NjRCeXRlQmxvY2sgPSAwOworCQlNYXhpbXVtRENDQ29tcHJlc3Npb25TdXJmYWNlID0gMC4wOworCX0KKworCXJldHVybiBNYXhpbXVtRENDQ29tcHJlc3Npb25TdXJmYWNlOworfQorCitzdGF0aWMgZG91YmxlIENhbGN1bGF0ZVByZWZldGNoU291cmNlTGluZXMoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZG91YmxlIFZSYXRpbywKKwkJZG91YmxlIHZ0YXBzLAorCQlib29sIEludGVybGFjZSwKKwkJYm9vbCBQcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHQsCisJCXVuc2lnbmVkIGludCBWaWV3cG9ydFlTdGFydCwKKwkJZG91YmxlICpWSW5pdFByZUZpbGwsCisJCXVuc2lnbmVkIGludCAqTWF4TnVtU3dhdGgpCit7CisJdW5zaWduZWQgaW50IE1heFBhcnRpYWxTd2F0aDsKKworCWlmIChQcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQKQorCQkqVkluaXRQcmVGaWxsID0gZG1sX2Zsb29yKChWUmF0aW8gKyB2dGFwcyArIDEpIC8gMi4wLCAxKTsKKwllbHNlCisJCSpWSW5pdFByZUZpbGwgPSBkbWxfZmxvb3IoKFZSYXRpbyArIHZ0YXBzICsgMSArIEludGVybGFjZSAqIDAuNSAqIFZSYXRpbykgLyAyLjAsIDEpOworCisJaWYgKCFtb2RlX2xpYi0+dmJhLklnbm9yZVZpZXdwb3J0UG9zaXRpb25pbmcpIHsKKworCQkqTWF4TnVtU3dhdGggPSBkbWxfY2VpbCgoKlZJbml0UHJlRmlsbCAtIDEuMCkgLyBTd2F0aEhlaWdodCwgMSkgKyAxLjA7CisKKwkJaWYgKCpWSW5pdFByZUZpbGwgPiAxLjApCisJCQlNYXhQYXJ0aWFsU3dhdGggPSAodW5zaWduZWQgaW50KSAoKlZJbml0UHJlRmlsbCAtIDIpICUgU3dhdGhIZWlnaHQ7CisJCWVsc2UKKwkJCU1heFBhcnRpYWxTd2F0aCA9ICh1bnNpZ25lZCBpbnQpICgqVkluaXRQcmVGaWxsICsgU3dhdGhIZWlnaHQgLSAyKQorCQkJCQklIFN3YXRoSGVpZ2h0OworCQlNYXhQYXJ0aWFsU3dhdGggPSBkbWxfbWF4KDFVLCBNYXhQYXJ0aWFsU3dhdGgpOworCisJfSBlbHNlIHsKKworCQlpZiAoVmlld3BvcnRZU3RhcnQgIT0gMCkKKwkJCWRtbF9wcmludCgKKwkJCQkJIldBUk5JTkcgRE1MOiB1c2luZyB2aWV3cG9ydCB5IHBvc2l0aW9uIG9mIDAgZXZlbiB0aG91Z2ggYWN0dWFsIHZpZXdwb3J0IHkgcG9zaXRpb24gaXMgbm9uLXplcm8gaW4gcHJlZmV0Y2ggc291cmNlIGxpbmVzIGNhbGN1bGF0aW9uXG4iKTsKKworCQkqTWF4TnVtU3dhdGggPSBkbWxfY2VpbCgqVkluaXRQcmVGaWxsIC8gU3dhdGhIZWlnaHQsIDEpOworCisJCWlmICgqVkluaXRQcmVGaWxsID4gMS4wKQorCQkJTWF4UGFydGlhbFN3YXRoID0gKHVuc2lnbmVkIGludCkgKCpWSW5pdFByZUZpbGwgLSAxKSAlIFN3YXRoSGVpZ2h0OworCQllbHNlCisJCQlNYXhQYXJ0aWFsU3dhdGggPSAodW5zaWduZWQgaW50KSAoKlZJbml0UHJlRmlsbCArIFN3YXRoSGVpZ2h0IC0gMSkKKwkJCQkJJSBTd2F0aEhlaWdodDsKKwl9CisKKwlyZXR1cm4gKk1heE51bVN3YXRoICogU3dhdGhIZWlnaHQgKyBNYXhQYXJ0aWFsU3dhdGg7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgQ2FsY3VsYXRlVk1BbmRSb3dCeXRlcygKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlib29sIERDQ0VuYWJsZSwKKwkJdW5zaWduZWQgaW50IEJsb2NrSGVpZ2h0MjU2Qnl0ZXMsCisJCXVuc2lnbmVkIGludCBCbG9ja1dpZHRoMjU2Qnl0ZXMsCisJCWVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKKwkJdW5zaWduZWQgaW50IFN1cmZhY2VUaWxpbmcsCisJCXVuc2lnbmVkIGludCBCeXRlUGVyUGl4ZWwsCisJCWVudW0gc2Nhbl9kaXJlY3Rpb25fY2xhc3MgU2NhbkRpcmVjdGlvbiwKKwkJdW5zaWduZWQgaW50IFZpZXdwb3J0V2lkdGgsCisJCXVuc2lnbmVkIGludCBWaWV3cG9ydEhlaWdodCwKKwkJdW5zaWduZWQgaW50IFN3YXRoV2lkdGgsCisJCWJvb2wgR1BVVk1FbmFibGUsCisJCWJvb2wgSG9zdFZNRW5hYmxlLAorCQl1bnNpZ25lZCBpbnQgSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQl1bnNpZ25lZCBpbnQgSG9zdFZNQ2FjaGVkUGFnZVRhYmxlTGV2ZWxzLAorCQl1bnNpZ25lZCBpbnQgVk1NUGFnZVNpemUsCisJCXVuc2lnbmVkIGludCBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0cywKKwkJdW5zaWduZWQgaW50IFBpdGNoLAorCQl1bnNpZ25lZCBpbnQgRENDTWV0YVBpdGNoLAorCQl1bnNpZ25lZCBpbnQgKk1hY3JvVGlsZVdpZHRoLAorCQl1bnNpZ25lZCBpbnQgKk1ldGFSb3dCeXRlLAorCQl1bnNpZ25lZCBpbnQgKlBpeGVsUFRFQnl0ZXNQZXJSb3csCisJCWJvb2wgKlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZCwKKwkJdW5zaWduZWQgaW50ICpkcHRlX3Jvd193aWR0aF91YiwKKwkJdW5zaWduZWQgaW50ICpkcHRlX3Jvd19oZWlnaHQsCisJCXVuc2lnbmVkIGludCAqTWV0YVJlcXVlc3RXaWR0aCwKKwkJdW5zaWduZWQgaW50ICpNZXRhUmVxdWVzdEhlaWdodCwKKwkJdW5zaWduZWQgaW50ICptZXRhX3Jvd193aWR0aCwKKwkJdW5zaWduZWQgaW50ICptZXRhX3Jvd19oZWlnaHQsCisJCXVuc2lnbmVkIGludCAqdm1fZ3JvdXBfYnl0ZXMsCisJCWxvbmcgICAgICAgICAqZHB0ZV9ncm91cF9ieXRlcywKKwkJdW5zaWduZWQgaW50ICpQaXhlbFBURVJlcVdpZHRoLAorCQl1bnNpZ25lZCBpbnQgKlBpeGVsUFRFUmVxSGVpZ2h0LAorCQl1bnNpZ25lZCBpbnQgKlBURVJlcXVlc3RTaXplLAorCQl1bnNpZ25lZCBpbnQgKkRQREUwQnl0ZXNGcmFtZSwKKwkJdW5zaWduZWQgaW50ICpNZXRhUFRFQnl0ZXNGcmFtZSkKK3sKKwl1bnNpZ25lZCBpbnQgTVBERUJ5dGVzRnJhbWU7CisJdW5zaWduZWQgaW50IERDQ01ldGFTdXJmYWNlQnl0ZXM7CisJdW5zaWduZWQgaW50IE1hY3JvVGlsZVNpemVCeXRlczsKKwl1bnNpZ25lZCBpbnQgTWFjcm9UaWxlSGVpZ2h0OworCXVuc2lnbmVkIGludCBFeHRyYURQREVCeXRlc0ZyYW1lOworCXVuc2lnbmVkIGludCBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZTsKKwl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVSZXFIZWlnaHRQVEVzOworCisJaWYgKERDQ0VuYWJsZSA9PSB0cnVlKSB7CisJCSpNZXRhUmVxdWVzdEhlaWdodCA9IDggKiBCbG9ja0hlaWdodDI1NkJ5dGVzOworCQkqTWV0YVJlcXVlc3RXaWR0aCA9IDggKiBCbG9ja1dpZHRoMjU2Qnl0ZXM7CisJCWlmIChTY2FuRGlyZWN0aW9uID09IGRtX2hvcnopIHsKKwkJCSptZXRhX3Jvd19oZWlnaHQgPSAqTWV0YVJlcXVlc3RIZWlnaHQ7CisJCQkqbWV0YV9yb3dfd2lkdGggPSBkbWxfY2VpbCgoZG91YmxlKSBTd2F0aFdpZHRoIC0gMSwgKk1ldGFSZXF1ZXN0V2lkdGgpCisJCQkJCSsgKk1ldGFSZXF1ZXN0V2lkdGg7CisJCQkqTWV0YVJvd0J5dGUgPSAqbWV0YV9yb3dfd2lkdGggKiAqTWV0YVJlcXVlc3RIZWlnaHQgKiBCeXRlUGVyUGl4ZWwgLyAyNTYuMDsKKwkJfSBlbHNlIHsKKwkJCSptZXRhX3Jvd19oZWlnaHQgPSAqTWV0YVJlcXVlc3RXaWR0aDsKKwkJCSptZXRhX3Jvd193aWR0aCA9IGRtbF9jZWlsKChkb3VibGUpIFN3YXRoV2lkdGggLSAxLCAqTWV0YVJlcXVlc3RIZWlnaHQpCisJCQkJCSsgKk1ldGFSZXF1ZXN0SGVpZ2h0OworCQkJKk1ldGFSb3dCeXRlID0gKm1ldGFfcm93X3dpZHRoICogKk1ldGFSZXF1ZXN0V2lkdGggKiBCeXRlUGVyUGl4ZWwgLyAyNTYuMDsKKwkJfQorCQlpZiAoU2NhbkRpcmVjdGlvbiA9PSBkbV9ob3J6KSB7CisJCQlEQ0NNZXRhU3VyZmFjZUJ5dGVzID0gRENDTWV0YVBpdGNoCisJCQkJCSogKGRtbF9jZWlsKFZpZXdwb3J0SGVpZ2h0IC0gMSwgNjQgKiBCbG9ja0hlaWdodDI1NkJ5dGVzKQorCQkJCQkJCSsgNjQgKiBCbG9ja0hlaWdodDI1NkJ5dGVzKSAqIEJ5dGVQZXJQaXhlbAorCQkJCQkvIDI1NjsKKwkJfSBlbHNlIHsKKwkJCURDQ01ldGFTdXJmYWNlQnl0ZXMgPSBEQ0NNZXRhUGl0Y2gKKwkJCQkJKiAoZG1sX2NlaWwoCisJCQkJCQkJKGRvdWJsZSkgVmlld3BvcnRIZWlnaHQgLSAxLAorCQkJCQkJCTY0ICogQmxvY2tIZWlnaHQyNTZCeXRlcykKKwkJCQkJCQkrIDY0ICogQmxvY2tIZWlnaHQyNTZCeXRlcykgKiBCeXRlUGVyUGl4ZWwKKwkJCQkJLyAyNTY7CisJCX0KKwkJaWYgKEdQVVZNRW5hYmxlID09IHRydWUpIHsKKwkJCSpNZXRhUFRFQnl0ZXNGcmFtZSA9IChkbWxfY2VpbCgKKwkJCQkJKGRvdWJsZSkgKERDQ01ldGFTdXJmYWNlQnl0ZXMgLSBWTU1QYWdlU2l6ZSkKKwkJCQkJCQkvICg4ICogVk1NUGFnZVNpemUpLAorCQkJCQkxKSArIDEpICogNjQ7CisJCQlNUERFQnl0ZXNGcmFtZSA9IDEyOCAqICgobW9kZV9saWItPnZiYS5HUFVWTU1heFBhZ2VUYWJsZUxldmVscyArIDEpICogKG1vZGVfbGliLT52YmEuSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzICsgMSkgLSAyKTsKKwkJfSBlbHNlIHsKKwkJCSpNZXRhUFRFQnl0ZXNGcmFtZSA9IDA7CisJCQlNUERFQnl0ZXNGcmFtZSA9IDA7CisJCX0KKwl9IGVsc2UgeworCQkqTWV0YVBURUJ5dGVzRnJhbWUgPSAwOworCQlNUERFQnl0ZXNGcmFtZSA9IDA7CisJCSpNZXRhUm93Qnl0ZSA9IDA7CisJfQorCisJaWYgKFN1cmZhY2VUaWxpbmcgPT0gZG1fc3dfbGluZWFyIHx8IFN1cmZhY2VUaWxpbmcgPT0gZG1fc3dfZ2Z4N18yZF90aGluX2dsIHx8IFN1cmZhY2VUaWxpbmcgPT0gZG1fc3dfZ2Z4N18yZF90aGluX2x2cCkgeworCQlNYWNyb1RpbGVTaXplQnl0ZXMgPSAyNTY7CisJCU1hY3JvVGlsZUhlaWdodCA9IEJsb2NrSGVpZ2h0MjU2Qnl0ZXM7CisJfSBlbHNlIGlmIChTdXJmYWNlVGlsaW5nID09IGRtX3N3XzRrYl9zIHx8IFN1cmZhY2VUaWxpbmcgPT0gZG1fc3dfNGtiX3NfeAorCQkJfHwgU3VyZmFjZVRpbGluZyA9PSBkbV9zd180a2JfZCB8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3XzRrYl9kX3gpIHsKKwkJTWFjcm9UaWxlU2l6ZUJ5dGVzID0gNDA5NjsKKwkJTWFjcm9UaWxlSGVpZ2h0ID0gNCAqIEJsb2NrSGVpZ2h0MjU2Qnl0ZXM7CisJfSBlbHNlIGlmIChTdXJmYWNlVGlsaW5nID09IGRtX3N3XzY0a2JfcyB8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3XzY0a2Jfc190CisJCQl8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3XzY0a2Jfc194IHx8IFN1cmZhY2VUaWxpbmcgPT0gZG1fc3dfNjRrYl9kCisJCQl8fCBTdXJmYWNlVGlsaW5nID09IGRtX3N3XzY0a2JfZF90IHx8IFN1cmZhY2VUaWxpbmcgPT0gZG1fc3dfNjRrYl9kX3gKKwkJCXx8IFN1cmZhY2VUaWxpbmcgPT0gZG1fc3dfNjRrYl9yX3gpIHsKKwkJTWFjcm9UaWxlU2l6ZUJ5dGVzID0gNjU1MzY7CisJCU1hY3JvVGlsZUhlaWdodCA9IDE2ICogQmxvY2tIZWlnaHQyNTZCeXRlczsKKwl9IGVsc2UgeworCQlNYWNyb1RpbGVTaXplQnl0ZXMgPSAyNjIxNDQ7CisJCU1hY3JvVGlsZUhlaWdodCA9IDMyICogQmxvY2tIZWlnaHQyNTZCeXRlczsKKwl9CisJKk1hY3JvVGlsZVdpZHRoID0gTWFjcm9UaWxlU2l6ZUJ5dGVzIC8gQnl0ZVBlclBpeGVsIC8gTWFjcm9UaWxlSGVpZ2h0OworCisJaWYgKEdQVVZNRW5hYmxlID09IHRydWUgJiYgKG1vZGVfbGliLT52YmEuR1BVVk1NYXhQYWdlVGFibGVMZXZlbHMgKyAxKSAqIChtb2RlX2xpYi0+dmJhLkhvc3RWTU1heFBhZ2VUYWJsZUxldmVscyArIDEpID4gMikgeworCQlpZiAoU2NhbkRpcmVjdGlvbiA9PSBkbV9ob3J6KSB7CisJCQkqRFBERTBCeXRlc0ZyYW1lID0gNjQgKiAoZG1sX2NlaWwoKChQaXRjaCAqIChkbWxfY2VpbChWaWV3cG9ydEhlaWdodCAtIDEsIE1hY3JvVGlsZUhlaWdodCkgKyBNYWNyb1RpbGVIZWlnaHQpICogQnl0ZVBlclBpeGVsKSAtIE1hY3JvVGlsZVNpemVCeXRlcykgLyAoOCAqIDIwOTcxNTIpLCAxKSArIDEpOworCQl9IGVsc2UgeworCQkJKkRQREUwQnl0ZXNGcmFtZSA9IDY0ICogKGRtbF9jZWlsKCgoUGl0Y2ggKiAoZG1sX2NlaWwoKGRvdWJsZSkgU3dhdGhXaWR0aCAtIDEsIE1hY3JvVGlsZUhlaWdodCkgKyBNYWNyb1RpbGVIZWlnaHQpICogQnl0ZVBlclBpeGVsKSAtIE1hY3JvVGlsZVNpemVCeXRlcykgLyAoOCAqIDIwOTcxNTIpLCAxKSArIDEpOworCQl9CisJCUV4dHJhRFBERUJ5dGVzRnJhbWUgPSAxMjggKiAoKG1vZGVfbGliLT52YmEuR1BVVk1NYXhQYWdlVGFibGVMZXZlbHMgKyAxKSAqIChtb2RlX2xpYi0+dmJhLkhvc3RWTU1heFBhZ2VUYWJsZUxldmVscyArIDEpIC0gMyk7CisJfSBlbHNlIHsKKwkJKkRQREUwQnl0ZXNGcmFtZSA9IDA7CisJCUV4dHJhRFBERUJ5dGVzRnJhbWUgPSAwOworCX0KKworCVBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lID0gKk1ldGFQVEVCeXRlc0ZyYW1lICsgTVBERUJ5dGVzRnJhbWUgKyAqRFBERTBCeXRlc0ZyYW1lCisJCQkrIEV4dHJhRFBERUJ5dGVzRnJhbWU7CisKKwlpZiAoSG9zdFZNRW5hYmxlID09IHRydWUpIHsKKwkJUERFQW5kTWV0YVBURUJ5dGVzRnJhbWUgPSBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZSAqICgxICsgOCAqIChIb3N0Vk1NYXhQYWdlVGFibGVMZXZlbHMgLSBIb3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHMpKTsKKwl9CisKKwlpZiAoR1BVVk1FbmFibGUgPT0gdHJ1ZSkgeworCQlkb3VibGUgRnJhY3Rpb25PZlBURVJldHVybkRyb3A7CisKKwkJaWYgKFN1cmZhY2VUaWxpbmcgPT0gZG1fc3dfbGluZWFyKSB7CisJCQlQaXhlbFBURVJlcUhlaWdodFBURXMgPSAxOworCQkJKlBpeGVsUFRFUmVxSGVpZ2h0ID0gMTsKKwkJCSpQaXhlbFBURVJlcVdpZHRoID0gOC4wICogVk1NUGFnZVNpemUgLyBCeXRlUGVyUGl4ZWw7CisJCQkqUFRFUmVxdWVzdFNpemUgPSA2NDsKKwkJCUZyYWN0aW9uT2ZQVEVSZXR1cm5Ecm9wID0gMDsKKwkJfSBlbHNlIGlmIChNYWNyb1RpbGVTaXplQnl0ZXMgPT0gNDA5NikgeworCQkJUGl4ZWxQVEVSZXFIZWlnaHRQVEVzID0gMTsKKwkJCSpQaXhlbFBURVJlcUhlaWdodCA9IE1hY3JvVGlsZUhlaWdodDsKKwkJCSpQaXhlbFBURVJlcVdpZHRoID0gOCAqICpNYWNyb1RpbGVXaWR0aDsKKwkJCSpQVEVSZXF1ZXN0U2l6ZSA9IDY0OworCQkJaWYgKFNjYW5EaXJlY3Rpb24gPT0gZG1faG9yeikKKwkJCQlGcmFjdGlvbk9mUFRFUmV0dXJuRHJvcCA9IDA7CisJCQllbHNlCisJCQkJRnJhY3Rpb25PZlBURVJldHVybkRyb3AgPSA3IC8gODsKKwkJfSBlbHNlIGlmIChWTU1QYWdlU2l6ZSA9PSA0MDk2ICYmIE1hY3JvVGlsZVNpemVCeXRlcyA+IDQwOTYpIHsKKwkJCVBpeGVsUFRFUmVxSGVpZ2h0UFRFcyA9IDE2OworCQkJKlBpeGVsUFRFUmVxSGVpZ2h0ID0gMTYgKiBCbG9ja0hlaWdodDI1NkJ5dGVzOworCQkJKlBpeGVsUFRFUmVxV2lkdGggPSAxNiAqIEJsb2NrV2lkdGgyNTZCeXRlczsKKwkJCSpQVEVSZXF1ZXN0U2l6ZSA9IDEyODsKKwkJCUZyYWN0aW9uT2ZQVEVSZXR1cm5Ecm9wID0gMDsKKwkJfSBlbHNlIHsKKwkJCVBpeGVsUFRFUmVxSGVpZ2h0UFRFcyA9IDE7CisJCQkqUGl4ZWxQVEVSZXFIZWlnaHQgPSBNYWNyb1RpbGVIZWlnaHQ7CisJCQkqUGl4ZWxQVEVSZXFXaWR0aCA9IDggKiAqTWFjcm9UaWxlV2lkdGg7CisJCQkqUFRFUmVxdWVzdFNpemUgPSA2NDsKKwkJCUZyYWN0aW9uT2ZQVEVSZXR1cm5Ecm9wID0gMDsKKwkJfQorCisJCWlmIChTdXJmYWNlVGlsaW5nID09IGRtX3N3X2xpbmVhcikgeworCQkJKmRwdGVfcm93X2hlaWdodCA9IGRtbF9taW4oMTI4LAorCQkJCQkxIDw8ICh1bnNpZ25lZCBpbnQpIGRtbF9mbG9vcigKKwkJCQkJCWRtbF9sb2cyKAorCQkJCQkJCShkb3VibGUpIFBURUJ1ZmZlclNpemVJblJlcXVlc3RzICogKlBpeGVsUFRFUmVxV2lkdGggLyBQaXRjaCksCisJCQkJCQkxKSk7CisJCQkqZHB0ZV9yb3dfd2lkdGhfdWIgPSAoZG1sX2NlaWwoKGRvdWJsZSkgKFBpdGNoICogKmRwdGVfcm93X2hlaWdodCAtIDEpIC8gKlBpeGVsUFRFUmVxV2lkdGgsIDEpICsgMSkgKiAqUGl4ZWxQVEVSZXFXaWR0aDsKKwkJCSpQaXhlbFBURUJ5dGVzUGVyUm93ID0gKmRwdGVfcm93X3dpZHRoX3ViIC8gKlBpeGVsUFRFUmVxV2lkdGggKiAqUFRFUmVxdWVzdFNpemU7CisJCX0gZWxzZSBpZiAoU2NhbkRpcmVjdGlvbiA9PSBkbV9ob3J6KSB7CisJCQkqZHB0ZV9yb3dfaGVpZ2h0ID0gKlBpeGVsUFRFUmVxSGVpZ2h0OworCQkJKmRwdGVfcm93X3dpZHRoX3ViID0gKGRtbF9jZWlsKChkb3VibGUpIChTd2F0aFdpZHRoIC0gMSkgLyAqUGl4ZWxQVEVSZXFXaWR0aCwgMSkgKyAxKSAqICpQaXhlbFBURVJlcVdpZHRoOworCQkJKlBpeGVsUFRFQnl0ZXNQZXJSb3cgPSAqZHB0ZV9yb3dfd2lkdGhfdWIgLyAqUGl4ZWxQVEVSZXFXaWR0aCAqICpQVEVSZXF1ZXN0U2l6ZTsKKwkJfSBlbHNlIHsKKwkJCSpkcHRlX3Jvd19oZWlnaHQgPSBkbWxfbWluKCpQaXhlbFBURVJlcVdpZHRoLCAqTWFjcm9UaWxlV2lkdGgpOworCQkJKmRwdGVfcm93X3dpZHRoX3ViID0gKGRtbF9jZWlsKChkb3VibGUpIChTd2F0aFdpZHRoIC0gMSkgLyAqUGl4ZWxQVEVSZXFIZWlnaHQsIDEpICsgMSkgKiAqUGl4ZWxQVEVSZXFIZWlnaHQ7CisJCQkqUGl4ZWxQVEVCeXRlc1BlclJvdyA9ICpkcHRlX3Jvd193aWR0aF91YiAvICpQaXhlbFBURVJlcUhlaWdodCAqICpQVEVSZXF1ZXN0U2l6ZTsKKwkJfQorCQlpZiAoKlBpeGVsUFRFQnl0ZXNQZXJSb3cgKiAoMSAtIEZyYWN0aW9uT2ZQVEVSZXR1cm5Ecm9wKQorCQkJCTw9IDY0ICogUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHMpIHsKKwkJCSpQVEVCdWZmZXJTaXplTm90RXhjZWVkZWQgPSB0cnVlOworCQl9IGVsc2UgeworCQkJKlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZCA9IGZhbHNlOworCQl9CisJfSBlbHNlIHsKKwkJKlBpeGVsUFRFQnl0ZXNQZXJSb3cgPSAwOworCQkqUFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkID0gdHJ1ZTsKKwl9CisJZG1sX3ByaW50KCJETUw6IHZtX2J5dGVzID0gbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lIChwZXJfcGlwZSkgPSBNZXRhUFRFQnl0ZXNGcmFtZSA9IDogJWRcbiIsICpNZXRhUFRFQnl0ZXNGcmFtZSk7CisKKwlpZiAoSG9zdFZNRW5hYmxlID09IHRydWUpIHsKKwkJKlBpeGVsUFRFQnl0ZXNQZXJSb3cgPSAqUGl4ZWxQVEVCeXRlc1BlclJvdyAqICgxICsgOCAqIChIb3N0Vk1NYXhQYWdlVGFibGVMZXZlbHMgLSBIb3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHMpKTsKKwl9CisKKwlpZiAoSG9zdFZNRW5hYmxlID09IHRydWUpIHsKKwkJKnZtX2dyb3VwX2J5dGVzID0gNTEyOworCQkqZHB0ZV9ncm91cF9ieXRlcyA9IDUxMjsKKwl9IGVsc2UgaWYgKEdQVVZNRW5hYmxlID09IHRydWUpIHsKKwkJKnZtX2dyb3VwX2J5dGVzID0gMjA0ODsKKwkJaWYgKFN1cmZhY2VUaWxpbmcgIT0gZG1fc3dfbGluZWFyICYmIFBpeGVsUFRFUmVxSGVpZ2h0UFRFcyA9PSAxICYmIFNjYW5EaXJlY3Rpb24gIT0gZG1faG9yeikgeworCQkJKmRwdGVfZ3JvdXBfYnl0ZXMgPSA1MTI7CisJCX0gZWxzZSB7CisJCQkqZHB0ZV9ncm91cF9ieXRlcyA9IDIwNDg7CisJCX0KKwl9IGVsc2UgeworCQkqdm1fZ3JvdXBfYnl0ZXMgPSAwOworCQkqZHB0ZV9ncm91cF9ieXRlcyA9IDA7CisJfQorCisJcmV0dXJuIFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lOworfQorCitzdGF0aWMgdm9pZCBESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hbmNlQ2FsY3VsYXRpb24oCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYikKK3sKKwlzdHJ1Y3QgdmJhX3ZhcnNfc3QgKmxvY2FscyA9ICZtb2RlX2xpYi0+dmJhOworCXVuc2lnbmVkIGludCBqLCBrOworCisJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tESVNQQ0xLID0gMC4wOworCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nID0gMDsKKwltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRob3V0UmFtcGluZyA9IDA7CisJbW9kZV9saWItPnZiYS5HbG9iYWxEUFBDTEsgPSAwLjA7CisKKwkvLyBESVNQQ0xLIGFuZCBEUFBDTEsgQ2FsY3VsYXRpb24KKwkvLworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlW2tdKSB7CisJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0RJU1BDTEsgPQorCQkJCQlkbWxfbWF4KAorCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRElTUENMSywKKwkJCQkJCQlDYWxjdWxhdGVXcml0ZUJhY2tESVNQQ0xLKAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrSFJhdGlvW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9ba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTHVtYVZUYXBzW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFIVGFwc1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hTGluZUJ1ZmZlcldpZHRoKSk7CisJCX0KKwl9CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSA+IDEpIHsKKwkJCWxvY2Fscy0+UFNDTF9USFJPVUdIUFVUX0xVTUFba10gPSBkbWxfbWluKAorCQkJCQltb2RlX2xpYi0+dmJhLk1heERDSFVCVG9QU0NMVGhyb3VnaHB1dCwKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhQU0NMVG9MQlRocm91Z2hwdXQKKwkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJLyBkbWxfY2VpbCgKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuaHRhcHNba10KKwkJCQkJCQkJCQkJLyA2LjAsCisJCQkJCQkJCQkxKSk7CisJCX0gZWxzZSB7CisJCQlsb2NhbHMtPlBTQ0xfVEhST1VHSFBVVF9MVU1BW2tdID0gZG1sX21pbigKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQsCisJCQkJCW1vZGVfbGliLT52YmEuTWF4UFNDTFRvTEJUaHJvdWdocHV0KTsKKwkJfQorCisJCW1vZGVfbGliLT52YmEuRFBQQ0xLVXNpbmdTaW5nbGVEUFBMdW1hID0KKwkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10KKwkJCQkJCSogZG1sX21heCgKKwkJCQkJCQkJbW9kZV9saWItPnZiYS52dGFwc1trXSAvIDYuMAorCQkJCQkJCQkJCSogZG1sX21pbigKKwkJCQkJCQkJCQkJCTEuMCwKKwkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdKSwKKwkJCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhSYXRpb1trXQorCQkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXQorCQkJCQkJCQkJCQkJLyBsb2NhbHMtPlBTQ0xfVEhST1VHSFBVVF9MVU1BW2tdLAorCQkJCQkJCQkJCTEuMCkpOworCisJCWlmICgobW9kZV9saWItPnZiYS5odGFwc1trXSA+IDYgfHwgbW9kZV9saWItPnZiYS52dGFwc1trXSA+IDYpCisJCQkJJiYgbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUEx1bWEKKwkJCQkJCTwgMiAqIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkgeworCQkJbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUEx1bWEgPSAyICogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQl9CisKKwkJaWYgKChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQyMF84CisJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80MjBfMTApKSB7CisJCQlsb2NhbHMtPlBTQ0xfVEhST1VHSFBVVF9DSFJPTUFba10gPSAwLjA7CisJCQlsb2NhbHMtPkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdID0KKwkJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUEx1bWE7CisJCX0gZWxzZSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5IUmF0aW9ba10gPiAxKSB7CisJCQkJbG9jYWxzLT5QU0NMX1RIUk9VR0hQVVRfQ0hST01BW2tdID0KKwkJCQkJCWRtbF9taW4oCisJCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4RENIVUJUb1BTQ0xUaHJvdWdocHV0LAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk1heFBTQ0xUb0xCVGhyb3VnaHB1dAorCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkvIDIKKwkJCQkJCQkJCQkvIGRtbF9jZWlsKAorCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IVEFQc0Nocm9tYVtrXQorCQkJCQkJCQkJCQkJCQkvIDYuMCwKKwkJCQkJCQkJCQkJCTEuMCkpOworCQkJfSBlbHNlIHsKKwkJCQlsb2NhbHMtPlBTQ0xfVEhST1VHSFBVVF9DSFJPTUFba10gPSBkbWxfbWluKAorCQkJCQkJbW9kZV9saWItPnZiYS5NYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQsCisJCQkJCQltb2RlX2xpYi0+dmJhLk1heFBTQ0xUb0xCVGhyb3VnaHB1dCk7CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLkRQUENMS1VzaW5nU2luZ2xlRFBQQ2hyb21hID0KKwkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJKiBkbWxfbWF4KAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5WVEFQc0Nocm9tYVtrXQorCQkJCQkJCQkJCQkvIDYuMAorCQkJCQkJCQkJCQkqIGRtbF9taW4oCisJCQkJCQkJCQkJCQkJMS4wLAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJCQkJCQkJCQkvIDIpLAorCQkJCQkJCQkJZG1sX21heCgKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuVlJhdGlvW2tdCisJCQkJCQkJCQkJCQkJLyA0CisJCQkJCQkJCQkJCQkJLyBsb2NhbHMtPlBTQ0xfVEhST1VHSFBVVF9DSFJPTUFba10sCisJCQkJCQkJCQkJCTEuMCkpOworCisJCQlpZiAoKG1vZGVfbGliLT52YmEuSFRBUHNDaHJvbWFba10gPiA2IHx8IG1vZGVfbGliLT52YmEuVlRBUHNDaHJvbWFba10gPiA2KQorCQkJCQkmJiBtb2RlX2xpYi0+dmJhLkRQUENMS1VzaW5nU2luZ2xlRFBQQ2hyb21hCisJCQkJCQkJPCAyICogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSB7CisJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUENocm9tYSA9IDIKKwkJCQkJCSogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQkJfQorCisJCQlsb2NhbHMtPkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdID0gZG1sX21heCgKKwkJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtVc2luZ1NpbmdsZURQUEx1bWEsCisJCQkJCW1vZGVfbGliLT52YmEuRFBQQ0xLVXNpbmdTaW5nbGVEUFBDaHJvbWEpOworCQl9CisJfQorCisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSAhPSBrKQorCQkJY29udGludWU7CisJCWlmIChtb2RlX2xpYi0+dmJhLk9ETUNvbWJpbmVFbmFibGVkW2tdKSB7CisJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRoUmFtcGluZyA9CisJCQkJCWRtbF9tYXgoCisJCQkJCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aFJhbXBpbmcsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdIC8gMgorCQkJCQkJCQkJKiAoMQorCQkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcKKwkJCQkJCQkJCQkJCQkvIDEwMCkKKwkJCQkJCQkJCSogKDEKKwkJCQkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtSYW1waW5nTWFyZ2luCisJCQkJCQkJCQkJCQkJLyAxMDApKTsKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhvdXRSYW1waW5nID0KKwkJCQkJZG1sX21heCgKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRob3V0UmFtcGluZywKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10gLyAyCisJCQkJCQkJCQkqICgxCisJCQkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZworCQkJCQkJCQkJCQkJCS8gMTAwKSk7CisJCX0gZWxzZSBpZiAoIW1vZGVfbGliLT52YmEuT0RNQ29tYmluZUVuYWJsZWRba10pIHsKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nID0KKwkJCQkJZG1sX21heCgKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRoUmFtcGluZywKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10KKwkJCQkJCQkJCSogKDEKKwkJCQkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nCisJCQkJCQkJCQkJCQkJLyAxMDApCisJCQkJCQkJCQkqICgxCisJCQkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5ESVNQQ0xLUmFtcGluZ01hcmdpbgorCQkJCQkJCQkJCQkJCS8gMTAwKSk7CisJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRob3V0UmFtcGluZyA9CisJCQkJCWRtbF9tYXgoCisJCQkJCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aG91dFJhbXBpbmcsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJCQkqICgxCisJCQkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZworCQkJCQkJCQkJCQkJCS8gMTAwKSk7CisJCX0KKwl9CisKKwltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRoUmFtcGluZyA9IGRtbF9tYXgoCisJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRoUmFtcGluZywKKwkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRElTUENMSyk7CisJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aG91dFJhbXBpbmcgPSBkbWxfbWF4KAorCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLV2l0aG91dFJhbXBpbmcsCisJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0RJU1BDTEspOworCisJQVNTRVJUKG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS1ZDT1NwZWVkICE9IDApOworCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHkgPSBSb3VuZFRvREZTR3JhbnVsYXJpdHlVcCgKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nLAorCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLVkNPU3BlZWQpOworCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhvdXRSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHkgPSBSb3VuZFRvREZTR3JhbnVsYXJpdHlVcCgKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhvdXRSYW1waW5nLAorCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLVkNPU3BlZWQpOworCW1vZGVfbGliLT52YmEuTWF4RGlzcGNsa1JvdW5kZWRUb0RGU0dyYW51bGFyaXR5ID0gUm91bmRUb0RGU0dyYW51bGFyaXR5RG93bigKKwkJCW1vZGVfbGliLT52YmEuc29jLmNsb2NrX2xpbWl0c1ttb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzIC0gMV0uZGlzcGNsa19taHosCisJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtWQ09TcGVlZCk7CisJaWYgKG1vZGVfbGliLT52YmEuRElTUENMS1dpdGhvdXRSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHkKKwkJCT4gbW9kZV9saWItPnZiYS5NYXhEaXNwY2xrUm91bmRlZFRvREZTR3JhbnVsYXJpdHkpIHsKKwkJbW9kZV9saWItPnZiYS5ESVNQQ0xLX2NhbGN1bGF0ZWQgPQorCQkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhvdXRSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHk7CisJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLkRJU1BDTEtXaXRoUmFtcGluZ1JvdW5kZWRUb0RGU0dyYW51bGFyaXR5CisJCQk+IG1vZGVfbGliLT52YmEuTWF4RGlzcGNsa1JvdW5kZWRUb0RGU0dyYW51bGFyaXR5KSB7CisJCW1vZGVfbGliLT52YmEuRElTUENMS19jYWxjdWxhdGVkID0gbW9kZV9saWItPnZiYS5NYXhEaXNwY2xrUm91bmRlZFRvREZTR3JhbnVsYXJpdHk7CisJfSBlbHNlIHsKKwkJbW9kZV9saWItPnZiYS5ESVNQQ0xLX2NhbGN1bGF0ZWQgPQorCQkJCW1vZGVfbGliLT52YmEuRElTUENMS1dpdGhSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHk7CisJfQorCURUUkFDRSgiICAgZGlzcGNsa19taHogKGNhbGN1bGF0ZWQpID0gJWYiLCBtb2RlX2xpYi0+dmJhLkRJU1BDTEtfY2FsY3VsYXRlZCk7CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCW1vZGVfbGliLT52YmEuRFBQQ0xLX2NhbGN1bGF0ZWRba10gPSBsb2NhbHMtPkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdCisJCQkJLyBtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdCisJCQkJKiAoMSArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDApOworCQltb2RlX2xpYi0+dmJhLkdsb2JhbERQUENMSyA9IGRtbF9tYXgoCisJCQkJbW9kZV9saWItPnZiYS5HbG9iYWxEUFBDTEssCisJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtfY2FsY3VsYXRlZFtrXSk7CisJfQorCW1vZGVfbGliLT52YmEuR2xvYmFsRFBQQ0xLID0gUm91bmRUb0RGU0dyYW51bGFyaXR5VXAoCisJCQltb2RlX2xpYi0+dmJhLkdsb2JhbERQUENMSywKKwkJCW1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS1ZDT1NwZWVkKTsKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCW1vZGVfbGliLT52YmEuRFBQQ0xLX2NhbGN1bGF0ZWRba10gPSBtb2RlX2xpYi0+dmJhLkdsb2JhbERQUENMSyAvIDI1NQorCQkJCSogZG1sX2NlaWwoCisJCQkJCQltb2RlX2xpYi0+dmJhLkRQUENMS19jYWxjdWxhdGVkW2tdICogMjU1CisJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5HbG9iYWxEUFBDTEssCisJCQkJCQkxKTsKKwkJRFRSQUNFKCIgICBkcHBjbGtfbWh6WyVpXSAoY2FsY3VsYXRlZCkgPSAlZiIsIGssIG1vZGVfbGliLT52YmEuRFBQQ0xLX2NhbGN1bGF0ZWRba10pOworCX0KKworCS8vIFVyZ2VudCBhbmQgQiBQLVN0YXRlL0RSQU0gQ2xvY2sgQ2hhbmdlIFdhdGVybWFyaworCURUUkFDRSgiICAgZGNmY2xrX21oeiAgICAgICAgID0gJWYiLCBtb2RlX2xpYi0+dmJhLkRDRkNMSyk7CisJRFRSQUNFKCIgICByZXR1cm5fYndfdG9fZGNuICAgPSAlZiIsIG1vZGVfbGliLT52YmEuUmV0dXJuQmFuZHdpZHRoVG9EQ04pOworCURUUkFDRSgiICAgcmV0dXJuX2J1c19idyAgICAgID0gJWYiLCBtb2RlX2xpYi0+dmJhLlJldHVybkJXKTsKKworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJYm9vbCBNYWluUGxhbmVEb2VzT0RNQ29tYmluZSA9IGZhbHNlOworCisJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikKKwkJCWxvY2Fscy0+U3dhdGhXaWR0aFNpbmdsZURQUFlba10gPSBtb2RlX2xpYi0+dmJhLlZpZXdwb3J0V2lkdGhba107CisJCWVsc2UKKwkJCWxvY2Fscy0+U3dhdGhXaWR0aFNpbmdsZURQUFlba10gPSBtb2RlX2xpYi0+dmJhLlZpZXdwb3J0SGVpZ2h0W2tdOworCisJCWlmIChtb2RlX2xpYi0+dmJhLk9ETUNvbWJpbmVFbmFibGVkW2tdID09IHRydWUpCisJCQlNYWluUGxhbmVEb2VzT0RNQ29tYmluZSA9IHRydWU7CisJCWZvciAoaiA9IDA7IGogPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2opCisJCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBqCisJCQkJCSYmIG1vZGVfbGliLT52YmEuT0RNQ29tYmluZUVuYWJsZWRbal0gPT0gdHJ1ZSkKKwkJCQlNYWluUGxhbmVEb2VzT0RNQ29tYmluZSA9IHRydWU7CisKKwkJaWYgKE1haW5QbGFuZURvZXNPRE1Db21iaW5lID09IHRydWUpCisJCQlsb2NhbHMtPlN3YXRoV2lkdGhZW2tdID0gZG1sX21pbigKKwkJCQkJKGRvdWJsZSkgbG9jYWxzLT5Td2F0aFdpZHRoU2luZ2xlRFBQWVtrXSwKKwkJCQkJZG1sX3JvdW5kKAorCQkJCQkJCW1vZGVfbGliLT52YmEuSEFjdGl2ZVtrXSAvIDIuMAorCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSkpOworCQllbHNlCisJCQlsb2NhbHMtPlN3YXRoV2lkdGhZW2tdID0gbG9jYWxzLT5Td2F0aFdpZHRoU2luZ2xlRFBQWVtrXQorCQkJCQkvIG1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba107CisJfQorCisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfNjQpIHsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSA9IDg7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbERFVENba10gPSAwOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzMyKSB7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbERFVFlba10gPSA0OworCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRDW2tdID0gMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8xNiB8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtX21vbm9fMTYpIHsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSA9IDI7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbERFVENba10gPSAwOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzggfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV9tb25vXzgpIHsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSA9IDE7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbERFVENba10gPSAwOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzgpIHsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSA9IDE7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbERFVENba10gPSAyOworCQl9IGVsc2UgeyAvLyBkbV80MjBfMTAKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSA9IDQuMCAvIDMuMDsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUQ1trXSA9IDguMCAvIDMuMDsKKwkJfQorCX0KKworCW1vZGVfbGliLT52YmEuVG90YWxEYXRhUmVhZEJhbmR3aWR0aCA9IDAuMDsKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWxvY2Fscy0+UmVhZEJhbmR3aWR0aFBsYW5lTHVtYVtrXSA9IGxvY2Fscy0+U3dhdGhXaWR0aFNpbmdsZURQUFlba10KKwkJCQkqIGRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSwgMSkKKwkJCQkvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkKKwkJCQkqIG1vZGVfbGliLT52YmEuVlJhdGlvW2tdOworCQlsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUNocm9tYVtrXSA9IGxvY2Fscy0+U3dhdGhXaWR0aFNpbmdsZURQUFlba10KKwkJCQkvIDIgKiBkbWxfY2VpbChsb2NhbHMtPkJ5dGVQZXJQaXhlbERFVENba10sIDIpCisJCQkJLyAobW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pCisJCQkJKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSAvIDI7CisJCURUUkFDRSgKKwkJCQkiICAgcmVhZF9id1slaV0gPSAlZkJwcyIsCisJCQkJaywKKwkJCQlsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUx1bWFba10KKwkJCQkJCSsgbG9jYWxzLT5SZWFkQmFuZHdpZHRoUGxhbmVDaHJvbWFba10pOworCQltb2RlX2xpYi0+dmJhLlRvdGFsRGF0YVJlYWRCYW5kd2lkdGggKz0gbG9jYWxzLT5SZWFkQmFuZHdpZHRoUGxhbmVMdW1hW2tdCisJCQkJKyBsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUNocm9tYVtrXTsKKwl9CisKKwkvLyBEQ0ZDTEsgRGVlcCBTbGVlcAorCUNhbGN1bGF0ZURDRkNMS0RlZXBTbGVlcCgKKwkJbW9kZV9saWIsCisJCW1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMsCisJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWSwKKwkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRDLAorCQltb2RlX2xpYi0+dmJhLlZSYXRpbywKKwkJbG9jYWxzLT5Td2F0aFdpZHRoWSwKKwkJbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZSwKKwkJbW9kZV9saWItPnZiYS5IUmF0aW8sCisJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9jaywKKwkJbG9jYWxzLT5QU0NMX1RIUk9VR0hQVVRfTFVNQSwKKwkJbG9jYWxzLT5QU0NMX1RIUk9VR0hQVVRfQ0hST01BLAorCQlsb2NhbHMtPkRQUENMSywKKwkJJm1vZGVfbGliLT52YmEuRENGQ0xLRGVlcFNsZWVwKTsKKworCS8vIERTQ0NMSworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2tdICE9IGspIHx8ICFtb2RlX2xpYi0+dmJhLkRTQ0VuYWJsZWRba10pIHsKKwkJCWxvY2Fscy0+RFNDQ0xLX2NhbGN1bGF0ZWRba10gPSAwLjA7CisJCX0gZWxzZSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10gPT0gZG1fNDIwCisJCQkJCXx8IG1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdID09IGRtX240MjIpCisJCQkJbW9kZV9saWItPnZiYS5EU0NGb3JtYXRGYWN0b3IgPSAyOworCQkJZWxzZQorCQkJCW1vZGVfbGliLT52YmEuRFNDRm9ybWF0RmFjdG9yID0gMTsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLk9ETUNvbWJpbmVFbmFibGVkW2tdKQorCQkJCWxvY2Fscy0+RFNDQ0xLX2NhbGN1bGF0ZWRba10gPQorCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSAvIDYKKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkRTQ0Zvcm1hdEZhY3RvcgorCQkJCQkJCQkvICgxCisJCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nCisJCQkJCQkJCQkJCQkvIDEwMCk7CisJCQllbHNlCisJCQkJbG9jYWxzLT5EU0NDTEtfY2FsY3VsYXRlZFtrXSA9CisJCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdIC8gMworCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuRFNDRm9ybWF0RmFjdG9yCisJCQkJCQkJCS8gKDEKKwkJCQkJCQkJCQktIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcKKwkJCQkJCQkJCQkJCS8gMTAwKTsKKwkJfQorCX0KKworCS8vIERTQyBEZWxheQorCS8vIFRPRE8KKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWRvdWJsZSBicHAgPSBtb2RlX2xpYi0+dmJhLk91dHB1dEJwcFtrXTsKKwkJdW5zaWduZWQgaW50IHNsaWNlcyA9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZEU0NTbGljZXNba107CisKKwkJaWYgKG1vZGVfbGliLT52YmEuRFNDRW5hYmxlZFtrXSAmJiBicHAgIT0gMCkgeworCQkJaWYgKCFtb2RlX2xpYi0+dmJhLk9ETUNvbWJpbmVFbmFibGVkW2tdKSB7CisJCQkJbG9jYWxzLT5EU0NEZWxheVtrXSA9CisJCQkJCQlkc2NjZUNvbXB1dGVEZWxheSgKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5EU0NJbnB1dEJpdFBlckNvbXBvbmVudFtrXSwKKwkJCQkJCQkJYnBwLAorCQkJCQkJCQlkbWxfY2VpbCgKKwkJCQkJCQkJCQkoZG91YmxlKSBtb2RlX2xpYi0+dmJhLkhBY3RpdmVba10KKwkJCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5OdW1iZXJPZkRTQ1NsaWNlc1trXSwKKwkJCQkJCQkJCQkxKSwKKwkJCQkJCQkJc2xpY2VzLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSkKKwkJCQkJCQkJKyBkc2NDb21wdXRlRGVsYXkoCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10pOworCQkJfSBlbHNlIHsKKwkJCQlsb2NhbHMtPkRTQ0RlbGF5W2tdID0KKwkJCQkJCTIKKwkJCQkJCQkJKiAoZHNjY2VDb21wdXRlRGVsYXkoCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5EU0NJbnB1dEJpdFBlckNvbXBvbmVudFtrXSwKKwkJCQkJCQkJCQlicHAsCisJCQkJCQkJCQkJZG1sX2NlaWwoCisJCQkJCQkJCQkJCQkoZG91YmxlKSBtb2RlX2xpYi0+dmJhLkhBY3RpdmVba10KKwkJCQkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLk51bWJlck9mRFNDU2xpY2VzW2tdLAorCQkJCQkJCQkJCQkJMSksCisJCQkJCQkJCQkJc2xpY2VzIC8gMi4wLAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdKQorCQkJCQkJCQkJCSsgZHNjQ29tcHV0ZURlbGF5KAorCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10pKTsKKwkJCX0KKwkJCWxvY2Fscy0+RFNDRGVsYXlba10gPSBsb2NhbHMtPkRTQ0RlbGF5W2tdCisJCQkJCSogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXTsKKwkJfSBlbHNlIHsKKwkJCWxvY2Fscy0+RFNDRGVsYXlba10gPSAwOworCQl9CisJfQorCisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykKKwkJZm9yIChqID0gMDsgaiA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraikgLy8gTnVtYmVyT2ZQbGFuZXMKKwkJCWlmIChqICE9IGsgJiYgbW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBqCisJCQkJCSYmIG1vZGVfbGliLT52YmEuRFNDRW5hYmxlZFtqXSkKKwkJCQlsb2NhbHMtPkRTQ0RlbGF5W2tdID0gbG9jYWxzLT5EU0NEZWxheVtqXTsKKworCS8vIFByZWZldGNoCisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQl1bnNpZ25lZCBpbnQgUERFQW5kTWV0YVBURUJ5dGVzRnJhbWVZOworCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvd1k7CisJCXVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZVk7CisJCXVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZUM7CisJCXVuc2lnbmVkIGludCBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZUM7CisJCXVuc2lnbmVkIGludCBQaXhlbFBURUJ5dGVzUGVyUm93QzsKKwkJYm9vbCAgICAgICAgIFBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZFk7CisJCWJvb2wgICAgICAgICBQVEVCdWZmZXJTaXplTm90RXhjZWVkZWRDOworCisJCUNhbGN1bGF0ZTI1NkJCbG9ja1NpemVzKAorCQkJCW1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10sCisJCQkJbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdLAorCQkJCWRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSwgMSksCisJCQkJZG1sX2NlaWwobG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRDW2tdLCAyKSwKKwkJCQkmbG9jYWxzLT5CbG9ja0hlaWdodDI1NkJ5dGVzWVtrXSwKKwkJCQkmbG9jYWxzLT5CbG9ja0hlaWdodDI1NkJ5dGVzQ1trXSwKKwkJCQkmbG9jYWxzLT5CbG9ja1dpZHRoMjU2Qnl0ZXNZW2tdLAorCQkJCSZsb2NhbHMtPkJsb2NrV2lkdGgyNTZCeXRlc0Nba10pOworCisJCWxvY2Fscy0+UHJlZmV0Y2hTb3VyY2VMaW5lc1lba10gPSBDYWxjdWxhdGVQcmVmZXRjaFNvdXJjZUxpbmVzKAorCQkJCW1vZGVfbGliLAorCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCW1vZGVfbGliLT52YmEudnRhcHNba10sCisJCQkJbW9kZV9saWItPnZiYS5JbnRlcmxhY2Vba10sCisJCQkJbW9kZV9saWItPnZiYS5Qcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRZW2tdLAorCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRZU3RhcnRZW2tdLAorCQkJCSZsb2NhbHMtPlZJbml0UHJlRmlsbFlba10sCisJCQkJJmxvY2Fscy0+TWF4TnVtU3dhdGhZW2tdKTsKKworCQlpZiAoKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzY0CisJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfMzIKKwkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8xNgorCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzgpKSB7CisJCQlQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZUMgPQorCQkJCQlDYWxjdWxhdGVWTUFuZFJvd0J5dGVzKAorCQkJCQkJCW1vZGVfbGliLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRENDRW5hYmxlW2tdLAorCQkJCQkJCWxvY2Fscy0+QmxvY2tIZWlnaHQyNTZCeXRlc0Nba10sCisJCQkJCQkJbG9jYWxzLT5CbG9ja1dpZHRoMjU2Qnl0ZXNDW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdLAorCQkJCQkJCWRtbF9jZWlsKAorCQkJCQkJCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRDW2tdLAorCQkJCQkJCQkJMiksCisJCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFtrXSAvIDIsCisJCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydEhlaWdodFtrXSAvIDIsCisJCQkJCQkJbG9jYWxzLT5Td2F0aFdpZHRoWVtrXSAvIDIsCisJCQkJCQkJbW9kZV9saWItPnZiYS5HUFVWTUVuYWJsZSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTUVuYWJsZSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTU1heFBhZ2VUYWJsZUxldmVscywKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTUNhY2hlZFBhZ2VUYWJsZUxldmVscywKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlZNTVBhZ2VTaXplLAorCQkJCQkJCW1vZGVfbGliLT52YmEuUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNDaHJvbWEsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QaXRjaENba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5EQ0NNZXRhUGl0Y2hDW2tdLAorCQkJCQkJCSZsb2NhbHMtPk1hY3JvVGlsZVdpZHRoQ1trXSwKKwkJCQkJCQkmTWV0YVJvd0J5dGVDLAorCQkJCQkJCSZQaXhlbFBURUJ5dGVzUGVyUm93QywKKwkJCQkJCQkmUFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkQywKKwkJCQkJCQkmbG9jYWxzLT5kcHRlX3Jvd193aWR0aF9jaHJvbWFfdWJba10sCisJCQkJCQkJJmxvY2Fscy0+ZHB0ZV9yb3dfaGVpZ2h0X2Nocm9tYVtrXSwKKwkJCQkJCQkmbG9jYWxzLT5tZXRhX3JlcV93aWR0aF9jaHJvbWFba10sCisJCQkJCQkJJmxvY2Fscy0+bWV0YV9yZXFfaGVpZ2h0X2Nocm9tYVtrXSwKKwkJCQkJCQkmbG9jYWxzLT5tZXRhX3Jvd193aWR0aF9jaHJvbWFba10sCisJCQkJCQkJJmxvY2Fscy0+bWV0YV9yb3dfaGVpZ2h0X2Nocm9tYVtrXSwKKwkJCQkJCQkmbG9jYWxzLT52bV9ncm91cF9ieXRlc19jaHJvbWEsCisJCQkJCQkJJmxvY2Fscy0+ZHB0ZV9ncm91cF9ieXRlc19jaHJvbWEsCisJCQkJCQkJJmxvY2Fscy0+UGl4ZWxQVEVSZXFXaWR0aENba10sCisJCQkJCQkJJmxvY2Fscy0+UGl4ZWxQVEVSZXFIZWlnaHRDW2tdLAorCQkJCQkJCSZsb2NhbHMtPlBURVJlcXVlc3RTaXplQ1trXSwKKwkJCQkJCQkmbG9jYWxzLT5kcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfY1trXSwKKwkJCQkJCQkmbG9jYWxzLT5tZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfY1trXSk7CisKKwkJCWxvY2Fscy0+UHJlZmV0Y2hTb3VyY2VMaW5lc0Nba10gPSBDYWxjdWxhdGVQcmVmZXRjaFNvdXJjZUxpbmVzKAorCQkJCQltb2RlX2xpYiwKKwkJCQkJbW9kZV9saWItPnZiYS5WUmF0aW9ba10gLyAyLAorCQkJCQltb2RlX2xpYi0+dmJhLlZUQVBzQ2hyb21hW2tdLAorCQkJCQltb2RlX2xpYi0+dmJhLkludGVybGFjZVtrXSwKKwkJCQkJbW9kZV9saWItPnZiYS5Qcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQkJCQltb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0Q1trXSwKKwkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydFlTdGFydENba10sCisJCQkJCSZsb2NhbHMtPlZJbml0UHJlRmlsbENba10sCisJCQkJCSZsb2NhbHMtPk1heE51bVN3YXRoQ1trXSk7CisJCX0gZWxzZSB7CisJCQlQaXhlbFBURUJ5dGVzUGVyUm93QyA9IDA7CisJCQlQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZUMgPSAwOworCQkJTWV0YVJvd0J5dGVDID0gMDsKKwkJCWxvY2Fscy0+TWF4TnVtU3dhdGhDW2tdID0gMDsKKwkJCWxvY2Fscy0+UHJlZmV0Y2hTb3VyY2VMaW5lc0Nba10gPSAwOworCQkJbG9jYWxzLT5QVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0Zvckx1bWEgPSBtb2RlX2xpYi0+dmJhLlBURUJ1ZmZlclNpemVJblJlcXVlc3RzTHVtYSArIG1vZGVfbGliLT52YmEuUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNDaHJvbWE7CisJCX0KKworCQlQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZVkgPSBDYWxjdWxhdGVWTUFuZFJvd0J5dGVzKAorCQkJCW1vZGVfbGliLAorCQkJCW1vZGVfbGliLT52YmEuRENDRW5hYmxlW2tdLAorCQkJCWxvY2Fscy0+QmxvY2tIZWlnaHQyNTZCeXRlc1lba10sCisJCQkJbG9jYWxzLT5CbG9ja1dpZHRoMjU2Qnl0ZXNZW2tdLAorCQkJCW1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10sCisJCQkJbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdLAorCQkJCWRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSwgMSksCisJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdLAorCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFtrXSwKKwkJCQltb2RlX2xpYi0+dmJhLlZpZXdwb3J0SGVpZ2h0W2tdLAorCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFlba10sCisJCQkJbW9kZV9saWItPnZiYS5HUFVWTUVuYWJsZSwKKwkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTUVuYWJsZSwKKwkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTU1heFBhZ2VUYWJsZUxldmVscywKKwkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTUNhY2hlZFBhZ2VUYWJsZUxldmVscywKKwkJCQltb2RlX2xpYi0+dmJhLlZNTVBhZ2VTaXplLAorCQkJCWxvY2Fscy0+UFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNGb3JMdW1hLAorCQkJCW1vZGVfbGliLT52YmEuUGl0Y2hZW2tdLAorCQkJCW1vZGVfbGliLT52YmEuRENDTWV0YVBpdGNoWVtrXSwKKwkJCQkmbG9jYWxzLT5NYWNyb1RpbGVXaWR0aFlba10sCisJCQkJJk1ldGFSb3dCeXRlWSwKKwkJCQkmUGl4ZWxQVEVCeXRlc1BlclJvd1ksCisJCQkJJlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZFksCisJCQkJJmxvY2Fscy0+ZHB0ZV9yb3dfd2lkdGhfbHVtYV91YltrXSwKKwkJCQkmbG9jYWxzLT5kcHRlX3Jvd19oZWlnaHRba10sCisJCQkJJmxvY2Fscy0+bWV0YV9yZXFfd2lkdGhba10sCisJCQkJJmxvY2Fscy0+bWV0YV9yZXFfaGVpZ2h0W2tdLAorCQkJCSZsb2NhbHMtPm1ldGFfcm93X3dpZHRoW2tdLAorCQkJCSZsb2NhbHMtPm1ldGFfcm93X2hlaWdodFtrXSwKKwkJCQkmbG9jYWxzLT52bV9ncm91cF9ieXRlc1trXSwKKwkJCQkmbG9jYWxzLT5kcHRlX2dyb3VwX2J5dGVzW2tdLAorCQkJCSZsb2NhbHMtPlBpeGVsUFRFUmVxV2lkdGhZW2tdLAorCQkJCSZsb2NhbHMtPlBpeGVsUFRFUmVxSGVpZ2h0WVtrXSwKKwkJCQkmbG9jYWxzLT5QVEVSZXF1ZXN0U2l6ZVlba10sCisJCQkJJmxvY2Fscy0+ZHBkZTBfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xba10sCisJCQkJJmxvY2Fscy0+bWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xba10pOworCisJCWxvY2Fscy0+UGl4ZWxQVEVCeXRlc1BlclJvd1trXSA9IFBpeGVsUFRFQnl0ZXNQZXJSb3dZICsgUGl4ZWxQVEVCeXRlc1BlclJvd0M7CisJCWxvY2Fscy0+UERFQW5kTWV0YVBURUJ5dGVzRnJhbWVba10gPSBQREVBbmRNZXRhUFRFQnl0ZXNGcmFtZVkKKwkJCQkrIFBERUFuZE1ldGFQVEVCeXRlc0ZyYW1lQzsKKwkJbG9jYWxzLT5NZXRhUm93Qnl0ZVtrXSA9IE1ldGFSb3dCeXRlWSArIE1ldGFSb3dCeXRlQzsKKworCQlDYWxjdWxhdGVBY3RpdmVSb3dCYW5kd2lkdGgoCisJCQkJbW9kZV9saWItPnZiYS5HUFVWTUVuYWJsZSwKKwkJCQltb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdLAorCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCW1vZGVfbGliLT52YmEuRENDRW5hYmxlW2tdLAorCQkJCW1vZGVfbGliLT52YmEuSFRvdGFsW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdLAorCQkJCU1ldGFSb3dCeXRlWSwKKwkJCQlNZXRhUm93Qnl0ZUMsCisJCQkJbG9jYWxzLT5tZXRhX3Jvd19oZWlnaHRba10sCisJCQkJbG9jYWxzLT5tZXRhX3Jvd19oZWlnaHRfY2hyb21hW2tdLAorCQkJCVBpeGVsUFRFQnl0ZXNQZXJSb3dZLAorCQkJCVBpeGVsUFRFQnl0ZXNQZXJSb3dDLAorCQkJCWxvY2Fscy0+ZHB0ZV9yb3dfaGVpZ2h0W2tdLAorCQkJCWxvY2Fscy0+ZHB0ZV9yb3dfaGVpZ2h0X2Nocm9tYVtrXSwKKwkJCQkmbG9jYWxzLT5tZXRhX3Jvd19id1trXSwKKwkJCQkmbG9jYWxzLT5kcHRlX3Jvd19id1trXSk7CisJfQorCisJbW9kZV9saWItPnZiYS5Ub3RhbERDQ0FjdGl2ZURQUCA9IDA7CisJbW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZURQUCA9IDA7CisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQltb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlRFBQID0gbW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZURQUAorCQkJCSsgbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZVtrXTsKKwkJaWYgKG1vZGVfbGliLT52YmEuRENDRW5hYmxlW2tdKQorCQkJbW9kZV9saWItPnZiYS5Ub3RhbERDQ0FjdGl2ZURQUCA9IG1vZGVfbGliLT52YmEuVG90YWxEQ0NBY3RpdmVEUFAKKwkJCQkJKyBtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdOworCX0KKworCW1vZGVfbGliLT52YmEuVXJnZW50T3V0T2ZPcmRlclJldHVyblBlckNoYW5uZWwgPSBkbWxfbWF4MygKKwkJCW1vZGVfbGliLT52YmEuVXJnZW50T3V0T2ZPcmRlclJldHVyblBlckNoYW5uZWxQaXhlbERhdGFPbmx5LAorCQkJbW9kZV9saWItPnZiYS5VcmdlbnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFBpeGVsTWl4ZWRXaXRoVk1EYXRhLAorCQkJbW9kZV9saWItPnZiYS5VcmdlbnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFZNRGF0YU9ubHkpOworCisJbW9kZV9saWItPnZiYS5VcmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeSA9CisJCQkobW9kZV9saWItPnZiYS5Sb3VuZFRyaXBQaW5nTGF0ZW5jeUN5Y2xlcyArIDMyKSAvIG1vZGVfbGliLT52YmEuRENGQ0xLCisJCQkJCSsgbW9kZV9saWItPnZiYS5VcmdlbnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbAorCQkJCQkJCSogbW9kZV9saWItPnZiYS5OdW1iZXJPZkNoYW5uZWxzCisJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlJldHVybkJXOworCisJbW9kZV9saWItPnZiYS5VcmdlbnRFeHRyYUxhdGVuY3kgPSBDYWxjdWxhdGVFeHRyYUxhdGVuY3koCisJCQltb2RlX2xpYi0+dmJhLlVyZ2VudFJvdW5kVHJpcEFuZE91dE9mT3JkZXJMYXRlbmN5LAorCQkJbW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZURQUCwKKwkJCW1vZGVfbGliLT52YmEuUGl4ZWxDaHVua1NpemVJbktCeXRlLAorCQkJbW9kZV9saWItPnZiYS5Ub3RhbERDQ0FjdGl2ZURQUCwKKwkJCW1vZGVfbGliLT52YmEuTWV0YUNodW5rU2l6ZSwKKwkJCW1vZGVfbGliLT52YmEuUmV0dXJuQlcsCisJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJbW9kZV9saWItPnZiYS5Ib3N0Vk1FbmFibGUsCisJCQltb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzLAorCQkJbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZSwKKwkJCWxvY2Fscy0+ZHB0ZV9ncm91cF9ieXRlcywKKwkJCW1vZGVfbGliLT52YmEuUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lQaXhlbE1peGVkV2l0aFZNRGF0YSwKKwkJCW1vZGVfbGliLT52YmEuUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lWTURhdGFPbmx5LAorCQkJbW9kZV9saWItPnZiYS5Ib3N0Vk1NYXhQYWdlVGFibGVMZXZlbHMsCisJCQltb2RlX2xpYi0+dmJhLkhvc3RWTUNhY2hlZFBhZ2VUYWJsZUxldmVscyk7CisKKworCW1vZGVfbGliLT52YmEuVENhbGMgPSAyNC4wIC8gbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXA7CisKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2tdID09IGspIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQkJbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba10gPQorCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5CisJCQkJCQkJCSsgQ2FsY3VsYXRlV3JpdGVCYWNrRGVsYXkoCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW2tdLAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10sCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW2tdKQorCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5ESVNQQ0xLOworCQkJfSBlbHNlCisJCQkJbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba10gPSAwOworCQkJZm9yIChqID0gMDsgaiA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraikgeworCQkJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2pdID09IGsKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlW2pdID09IHRydWUpIHsKKwkJCQkJbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba10gPQorCQkJCQkJCWRtbF9tYXgoCisJCQkJCQkJCQlsb2NhbHMtPldyaXRlYmFja0RlbGF5W21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeQorCQkJCQkJCQkJCQkrIENhbGN1bGF0ZVdyaXRlQmFja0RlbGF5KAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrUGl4ZWxGb3JtYXRbal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9bal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9bal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hSFRhcHNbal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVlRhcHNbal0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFIVGFwc1tqXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYVZUYXBzW2pdLAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtqXSkKKwkJCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuRElTUENMSyk7CisJCQkJfQorCQkJfQorCQl9CisJfQorCisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykKKwkJZm9yIChqID0gMDsgaiA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraikKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2tdID09IGopCisJCQkJbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1ba10gPQorCQkJCQkJbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1bal07CisKKwltb2RlX2xpYi0+dmJhLlZTdGFydHVwTGluZXMgPSAxMzsKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWxvY2Fscy0+TWF4VlN0YXJ0dXBMaW5lc1trXSA9IG1vZGVfbGliLT52YmEuVlRvdGFsW2tdIC0gbW9kZV9saWItPnZiYS5WQWN0aXZlW2tdIC0gZG1sX21heCgxLjAsIGRtbF9jZWlsKGxvY2Fscy0+V3JpdGViYWNrRGVsYXlbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdW2tdIC8gKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSwgMSkpOworCX0KKworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spCisJCWxvY2Fscy0+TWF4aW11bU1heFZTdGFydHVwTGluZXMgPSBkbWxfbWF4KGxvY2Fscy0+TWF4aW11bU1heFZTdGFydHVwTGluZXMsIGxvY2Fscy0+TWF4VlN0YXJ0dXBMaW5lc1trXSk7CisKKwkvLyBXZSBkb24ndCByZWFsbHkgY2FyZSB0byBpdGVyYXRlIGJldHdlZW4gdGhlIHZhcmlvdXMgcHJlZmV0Y2ggbW9kZXMKKwkvL21vZGVfbGliLT52YmEuUHJlZmV0Y2hFUlJPUiA9IENhbGN1bGF0ZU1pbkFuZE1heFByZWZldGNoTW9kZShtb2RlX2xpYi0+dmJhLkFsbG93RFJBTVNlbGZSZWZyZXNoT3JEUkFNQ2xvY2tDaGFuZ2VJblZibGFuaywgJm1vZGVfbGliLT52YmEuTWluUHJlZmV0Y2hNb2RlLCAmbW9kZV9saWItPnZiYS5NYXhQcmVmZXRjaE1vZGUpOworCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeSA9IGRtbF9tYXgzKG1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeVBpeGVsRGF0YU9ubHksIG1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhLCBtb2RlX2xpYi0+dmJhLlVyZ2VudExhdGVuY3lWTURhdGFPbmx5KTsKKworCWRvIHsKKwkJZG91YmxlIE1heFRvdGFsUkRCYW5kd2lkdGggPSAwOworCQlkb3VibGUgTWF4VG90YWxSREJhbmR3aWR0aE5vVXJnZW50QnVyc3QgPSAwOworCQlib29sIERlc3RpbmF0aW9uTGluZVRpbWVzRm9yUHJlZmV0Y2hMZXNzVGhhbjIgPSBmYWxzZTsKKwkJYm9vbCBWUmF0aW9QcmVmZXRjaE1vcmVUaGFuNCA9IGZhbHNlOworCQlkb3VibGUgVFdhaXQgPSBDYWxjdWxhdGVUV2FpdCgKKwkJCQltb2RlX2xpYi0+dmJhLlByZWZldGNoTW9kZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1bbW9kZV9saWItPnZiYS5tYXhNcGNDb21iXSwKKwkJCQltb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZUxhdGVuY3ksCisJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5LAorCQkJCW1vZGVfbGliLT52YmEuU1JFbnRlclBsdXNFeGl0VGltZSk7CisKKwkJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQkJUGlwZSAgIG15UGlwZTsKKwkJCUhvc3RWTSBteUhvc3RWTTsKKworCQkJaWYgKG1vZGVfbGliLT52YmEuWEZDRW5hYmxlZFtrXSA9PSB0cnVlKSB7CisJCQkJbW9kZV9saWItPnZiYS5YRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5ID0KKwkJCQkJCUNhbGN1bGF0ZVJlbW90ZVN1cmZhY2VGbGlwRGVsYXkoCisJCQkJCQkJCW1vZGVfbGliLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXSwKKwkJCQkJCQkJbG9jYWxzLT5Td2F0aFdpZHRoWVtrXSwKKwkJCQkJCQkJZG1sX2NlaWwoCisJCQkJCQkJCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRZW2tdLAorCQkJCQkJCQkJCTEpLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1RTbHZWdXBkYXRlT2Zmc2V0LAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1RTbHZWdXBkYXRlV2lkdGgsCisJCQkJCQkJCW1vZGVfbGliLT52YmEuWEZDVFNsdlZyZWFkeU9mZnNldCwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNYQlVGTGF0ZW5jeVRvbGVyYW5jZSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNGaWxsQldPdmVyaGVhZCwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNTbHZDaHVua1NpemUsCisJCQkJCQkJCW1vZGVfbGliLT52YmEuWEZDQnVzVHJhbnNwb3J0VGltZSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5UQ2FsYywKKwkJCQkJCQkJVFdhaXQsCisJCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlNyY0FjdGl2ZURyYWluUmF0ZSwKKwkJCQkJCQkJJm1vZGVfbGliLT52YmEuVEluaXRYRmlsbCwKKwkJCQkJCQkJJm1vZGVfbGliLT52YmEuVHNsdkNoayk7CisJCQl9IGVsc2UgeworCQkJCW1vZGVfbGliLT52YmEuWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheSA9IDA7CisJCQl9CisKKwkJCW15UGlwZS5EUFBDTEsgPSBsb2NhbHMtPkRQUENMS1trXTsKKwkJCW15UGlwZS5ESVNQQ0xLID0gbW9kZV9saWItPnZiYS5ESVNQQ0xLOworCQkJbXlQaXBlLlBpeGVsQ2xvY2sgPSBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba107CisJCQlteVBpcGUuRENGQ0xLRGVlcFNsZWVwID0gbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXA7CisJCQlteVBpcGUuRFBQUGVyUGxhbmUgPSBtb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW2tdOworCQkJbXlQaXBlLlNjYWxlckVuYWJsZWQgPSBtb2RlX2xpYi0+dmJhLlNjYWxlckVuYWJsZWRba107CisJCQlteVBpcGUuU291cmNlU2NhbiA9IG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXTsKKwkJCW15UGlwZS5CbG9ja1dpZHRoMjU2Qnl0ZXNZID0gbG9jYWxzLT5CbG9ja1dpZHRoMjU2Qnl0ZXNZW2tdOworCQkJbXlQaXBlLkJsb2NrSGVpZ2h0MjU2Qnl0ZXNZID0gbG9jYWxzLT5CbG9ja0hlaWdodDI1NkJ5dGVzWVtrXTsKKwkJCW15UGlwZS5CbG9ja1dpZHRoMjU2Qnl0ZXNDID0gbG9jYWxzLT5CbG9ja1dpZHRoMjU2Qnl0ZXNDW2tdOworCQkJbXlQaXBlLkJsb2NrSGVpZ2h0MjU2Qnl0ZXNDID0gbG9jYWxzLT5CbG9ja0hlaWdodDI1NkJ5dGVzQ1trXTsKKwkJCW15UGlwZS5JbnRlcmxhY2VFbmFibGUgPSBtb2RlX2xpYi0+dmJhLkludGVybGFjZVtrXTsKKwkJCW15UGlwZS5OdW1iZXJPZkN1cnNvcnMgPSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQ3Vyc29yc1trXTsKKwkJCW15UGlwZS5WQmxhbmsgPSBtb2RlX2xpYi0+dmJhLlZUb3RhbFtrXSAtIG1vZGVfbGliLT52YmEuVkFjdGl2ZVtrXTsKKwkJCW15UGlwZS5IVG90YWwgPSBtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXTsKKworCisJCQlteUhvc3RWTS5FbmFibGUgPSBtb2RlX2xpYi0+dmJhLkhvc3RWTUVuYWJsZTsKKwkJCW15SG9zdFZNLk1heFBhZ2VUYWJsZUxldmVscyA9IG1vZGVfbGliLT52YmEuSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzOworCQkJbXlIb3N0Vk0uQ2FjaGVkUGFnZVRhYmxlTGV2ZWxzID0gbW9kZV9saWItPnZiYS5Ib3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHM7CisKKwkJCW1vZGVfbGliLT52YmEuRXJyb3JSZXN1bHRba10gPQorCQkJCQlDYWxjdWxhdGVQcmVmZXRjaFNjaGVkdWxlKAorCQkJCQkJCW1vZGVfbGliLAorCQkJCQkJCW1vZGVfbGliLT52YmEuUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lQaXhlbE1peGVkV2l0aFZNRGF0YSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5Vk1EYXRhT25seSwKKwkJCQkJCQkmbXlQaXBlLAorCQkJCQkJCWxvY2Fscy0+RFNDRGVsYXlba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtEZWxheVN1YnRvdGFsLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRFBQQ0xLRGVsYXlTQ0wsCisJCQkJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtEZWxheVNDTExCT25seSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRQUENMS0RlbGF5Q05WQ0Zvcm1hdGVyLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRFBQQ0xLRGVsYXlDTlZDQ3Vyc29yLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRElTUENMS0RlbGF5U3VidG90YWwsCisJCQkJCQkJKHVuc2lnbmVkIGludCkgKGxvY2Fscy0+U3dhdGhXaWR0aFlba10KKwkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5IUmF0aW9ba10pLAorCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4SW50ZXJEQ05UaWxlUmVwZWF0ZXJzLAorCQkJCQkJCWRtbF9taW4obW9kZV9saWItPnZiYS5WU3RhcnR1cExpbmVzLCBsb2NhbHMtPk1heFZTdGFydHVwTGluZXNba10pLAorCQkJCQkJCWxvY2Fscy0+TWF4VlN0YXJ0dXBMaW5lc1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQkJCQkJCW1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUsCisJCQkJCQkJJm15SG9zdFZNLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhRW5hYmxlW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhTGluZXNCZWZvcmVBY3RpdmVSZXF1aXJlZFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkR5bmFtaWNNZXRhZGF0YVRyYW5zbWl0dGVkQnl0ZXNba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5LAorCQkJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50RXh0cmFMYXRlbmN5LAorCQkJCQkJCW1vZGVfbGliLT52YmEuVENhbGMsCisJCQkJCQkJbG9jYWxzLT5QREVBbmRNZXRhUFRFQnl0ZXNGcmFtZVtrXSwKKwkJCQkJCQlsb2NhbHMtPk1ldGFSb3dCeXRlW2tdLAorCQkJCQkJCWxvY2Fscy0+UGl4ZWxQVEVCeXRlc1BlclJvd1trXSwKKwkJCQkJCQlsb2NhbHMtPlByZWZldGNoU291cmNlTGluZXNZW2tdLAorCQkJCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFlba10sCisJCQkJCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRZW2tdLAorCQkJCQkJCWxvY2Fscy0+VkluaXRQcmVGaWxsWVtrXSwKKwkJCQkJCQlsb2NhbHMtPk1heE51bVN3YXRoWVtrXSwKKwkJCQkJCQlsb2NhbHMtPlByZWZldGNoU291cmNlTGluZXNDW2tdLAorCQkJCQkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUQ1trXSwKKwkJCQkJCQlsb2NhbHMtPlZJbml0UHJlRmlsbENba10sCisJCQkJCQkJbG9jYWxzLT5NYXhOdW1Td2F0aENba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodENba10sCisJCQkJCQkJVFdhaXQsCisJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNFbmFibGVkW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFAsCisJCQkJCQkJJmxvY2Fscy0+RFNUWEFmdGVyU2NhbGVyW2tdLAorCQkJCQkJCSZsb2NhbHMtPkRTVFlBZnRlclNjYWxlcltrXSwKKwkJCQkJCQkmbG9jYWxzLT5EZXN0aW5hdGlvbkxpbmVzRm9yUHJlZmV0Y2hba10sCisJCQkJCQkJJmxvY2Fscy0+UHJlZmV0Y2hCYW5kd2lkdGhba10sCisJCQkJCQkJJmxvY2Fscy0+RGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5WQmxhbmtba10sCisJCQkJCQkJJmxvY2Fscy0+RGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luVkJsYW5rW2tdLAorCQkJCQkJCSZsb2NhbHMtPlZSYXRpb1ByZWZldGNoWVtrXSwKKwkJCQkJCQkmbG9jYWxzLT5WUmF0aW9QcmVmZXRjaENba10sCisJCQkJCQkJJmxvY2Fscy0+UmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0x1bWFba10sCisJCQkJCQkJJmxvY2Fscy0+UmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0Nocm9tYVtrXSwKKwkJCQkJCQkmbG9jYWxzLT5WU3RhcnR1cFJlcXVpcmVkV2hlbk5vdEVub3VnaFRpbWVGb3JEeW5hbWljTWV0YWRhdGEsCisJCQkJCQkJJmxvY2Fscy0+VG5vX2J3W2tdLAorCQkJCQkJCSZsb2NhbHMtPnByZWZldGNoX3Ztcm93X2J3W2tdLAorCQkJCQkJCSZsb2NhbHMtPnN3YXRoX3dpZHRoX2x1bWFfdWJba10sCisJCQkJCQkJJmxvY2Fscy0+c3dhdGhfd2lkdGhfY2hyb21hX3ViW2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlZVcGRhdGVPZmZzZXRQaXhba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEuVlVwZGF0ZVdpZHRoUGl4W2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlZSZWFkeU9mZnNldFBpeFtrXSk7CisJCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBrKSB7CisJCQkJbG9jYWxzLT5WU3RhcnR1cFtrXSA9IGRtbF9taW4oCisJCQkJCQltb2RlX2xpYi0+dmJhLlZTdGFydHVwTGluZXMsCisJCQkJCQlsb2NhbHMtPk1heFZTdGFydHVwTGluZXNba10pOworCQkJCWlmIChsb2NhbHMtPlZTdGFydHVwUmVxdWlyZWRXaGVuTm90RW5vdWdoVGltZUZvckR5bmFtaWNNZXRhZGF0YQorCQkJCQkJIT0gMCkgeworCQkJCQlsb2NhbHMtPlZTdGFydHVwW2tdID0KKwkJCQkJCQlsb2NhbHMtPlZTdGFydHVwUmVxdWlyZWRXaGVuTm90RW5vdWdoVGltZUZvckR5bmFtaWNNZXRhZGF0YTsKKwkJCQl9CisJCQl9IGVsc2UgeworCQkJCWxvY2Fscy0+VlN0YXJ0dXBba10gPQorCQkJCQkJZG1sX21pbigKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5WU3RhcnR1cExpbmVzLAorCQkJCQkJCQlsb2NhbHMtPk1heFZTdGFydHVwTGluZXNbbW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXV0pOworCQkJfQorCQl9CisKKwkJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQkJdW5zaWduZWQgaW50IG07CisKKwkJCWxvY2Fscy0+Y3Vyc29yX2J3W2tdID0gMDsKKwkJCWxvY2Fscy0+Y3Vyc29yX2J3X3ByZVtrXSA9IDA7CisJCQlmb3IgKG0gPSAwOyBtIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkN1cnNvcnNba107IG0rKykgeworCQkJCWxvY2Fscy0+Y3Vyc29yX2J3W2tdICs9IG1vZGVfbGliLT52YmEuQ3Vyc29yV2lkdGhba11bbV0gKiBtb2RlX2xpYi0+dmJhLkN1cnNvckJQUFtrXVttXSAvIDguMCAvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkgKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXTsKKwkJCQlsb2NhbHMtPmN1cnNvcl9id19wcmVba10gKz0gbW9kZV9saWItPnZiYS5DdXJzb3JXaWR0aFtrXVttXSAqIG1vZGVfbGliLT52YmEuQ3Vyc29yQlBQW2tdW21dIC8gOC4wIC8gKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSAqIGxvY2Fscy0+VlJhdGlvUHJlZmV0Y2hZW2tdOworCQkJfQorCisJCQlDYWxjdWxhdGVVcmdlbnRCdXJzdEZhY3RvcigKKwkJCQkJbW9kZV9saWItPnZiYS5ERVRCdWZmZXJTaXplSW5LQnl0ZSwKKwkJCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlba10sCisJCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDW2tdLAorCQkJCQlsb2NhbHMtPlN3YXRoV2lkdGhZW2tdLAorCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvCisJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSwKKwkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5LAorCQkJCQltb2RlX2xpYi0+dmJhLkN1cnNvckJ1ZmZlclNpemUsCisJCQkJCW1vZGVfbGliLT52YmEuQ3Vyc29yV2lkdGhba11bMF0gKyBtb2RlX2xpYi0+dmJhLkN1cnNvcldpZHRoW2tdWzFdLAorCQkJCQlkbWxfbWF4KG1vZGVfbGliLT52YmEuQ3Vyc29yQlBQW2tdWzBdLCBtb2RlX2xpYi0+dmJhLkN1cnNvckJQUFtrXVsxXSksCisJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCQlsb2NhbHMtPlZSYXRpb1ByZWZldGNoWVtrXSwKKwkJCQkJbG9jYWxzLT5WUmF0aW9QcmVmZXRjaENba10sCisJCQkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSwKKwkJCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRDW2tdLAorCQkJCQkmbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvcltrXSwKKwkJCQkJJmxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDdXJzb3JQcmVba10sCisJCQkJCSZsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVtrXSwKKwkJCQkJJmxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JMdW1hUHJlW2tdLAorCQkJCQkmbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckNocm9tYVtrXSwKKwkJCQkJJmxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDaHJvbWFQcmVba10sCisJCQkJCSZsb2NhbHMtPk5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmcsCisJCQkJCSZsb2NhbHMtPk5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmdQcmUpOworCisJCQlpZiAobW9kZV9saWItPnZiYS5Vc2VVcmdlbnRCdXJzdEJhbmR3aWR0aCA9PSBmYWxzZSkgeworCQkJCWxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JMdW1hW2tdID0gMTsKKwkJCQlsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hW2tdID0gMTsKKwkJCQlsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ3Vyc29yW2tdID0gMTsKKwkJCQlsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVByZVtrXSA9IDE7CisJCQkJbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckNocm9tYVByZVtrXSA9IDE7CisJCQkJbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvclByZVtrXSA9IDE7CisJCQl9CisKKwkJCU1heFRvdGFsUkRCYW5kd2lkdGggPSBNYXhUb3RhbFJEQmFuZHdpZHRoICsKKwkJCQlkbWxfbWF4Myhsb2NhbHMtPnByZWZldGNoX3Ztcm93X2J3W2tdLAorCQkJCQlsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUx1bWFba10gKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVtrXQorCQkJCQkrIGxvY2Fscy0+UmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckNocm9tYVtrXSArIGxvY2Fscy0+Y3Vyc29yX2J3W2tdCisJCQkJCSogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvcltrXSArIGxvY2Fscy0+bWV0YV9yb3dfYndba10gKyBsb2NhbHMtPmRwdGVfcm93X2J3W2tdLAorCQkJCQlsb2NhbHMtPlJlcXVpcmVkUHJlZmV0Y2hQaXhEYXRhQldMdW1hW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3Rvckx1bWFQcmVba10gKyBsb2NhbHMtPlJlcXVpcmVkUHJlZmV0Y2hQaXhEYXRhQldDaHJvbWFba10KKwkJCQkJKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hUHJlW2tdICsgbG9jYWxzLT5jdXJzb3JfYndfcHJlW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvclByZVtrXSk7CisKKwkJCU1heFRvdGFsUkRCYW5kd2lkdGhOb1VyZ2VudEJ1cnN0ID0gTWF4VG90YWxSREJhbmR3aWR0aE5vVXJnZW50QnVyc3QgKworCQkJCWRtbF9tYXgzKGxvY2Fscy0+cHJlZmV0Y2hfdm1yb3dfYndba10sCisJCQkJCWxvY2Fscy0+UmVhZEJhbmR3aWR0aFBsYW5lTHVtYVtrXSArIGxvY2Fscy0+UmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdICsgbG9jYWxzLT5jdXJzb3JfYndba10KKwkJCQkJKyBsb2NhbHMtPm1ldGFfcm93X2J3W2tdICsgbG9jYWxzLT5kcHRlX3Jvd19id1trXSwKKwkJCQkJbG9jYWxzLT5SZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXTHVtYVtrXSArIGxvY2Fscy0+UmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0Nocm9tYVtrXSArIGxvY2Fscy0+Y3Vyc29yX2J3X3ByZVtrXSk7CisKKwkJCWlmIChsb2NhbHMtPkRlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaFtrXSA8IDIpCisJCQkJRGVzdGluYXRpb25MaW5lVGltZXNGb3JQcmVmZXRjaExlc3NUaGFuMiA9IHRydWU7CisJCQlpZiAobG9jYWxzLT5WUmF0aW9QcmVmZXRjaFlba10gPiA0IHx8IGxvY2Fscy0+VlJhdGlvUHJlZmV0Y2hDW2tdID4gNCkKKwkJCQlWUmF0aW9QcmVmZXRjaE1vcmVUaGFuNCA9IHRydWU7CisJCX0KKwkJbW9kZV9saWItPnZiYS5GcmFjdGlvbk9mVXJnZW50QmFuZHdpZHRoID0gTWF4VG90YWxSREJhbmR3aWR0aE5vVXJnZW50QnVyc3QgLyBtb2RlX2xpYi0+dmJhLlJldHVybkJXOworCisJCWlmIChNYXhUb3RhbFJEQmFuZHdpZHRoIDw9IG1vZGVfbGliLT52YmEuUmV0dXJuQlcgJiYgbG9jYWxzLT5Ob3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nID09IDAgJiYgbG9jYWxzLT5Ob3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nUHJlID09IDAgJiYgIVZSYXRpb1ByZWZldGNoTW9yZVRoYW40CisJCQkJJiYgIURlc3RpbmF0aW9uTGluZVRpbWVzRm9yUHJlZmV0Y2hMZXNzVGhhbjIpCisJCQltb2RlX2xpYi0+dmJhLlByZWZldGNoTW9kZVN1cHBvcnRlZCA9IHRydWU7CisJCWVsc2UgeworCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaE1vZGVTdXBwb3J0ZWQgPSBmYWxzZTsKKwkJCWRtbF9wcmludCgKKwkJCQkJIkRNTDogQ2FsY3VsYXRlUHJlZmV0Y2hTY2hlZHVsZSAqKipmYWlsZWQqKiouIEJhbmR3aWR0aCB2aW9sYXRpb24uIFJlc3VsdHMgYXJlIE5PVCB2YWxpZFxuIik7CisJCX0KKworCQlpZiAobW9kZV9saWItPnZiYS5QcmVmZXRjaE1vZGVTdXBwb3J0ZWQgPT0gdHJ1ZSkgeworCQkJbW9kZV9saWItPnZiYS5CYW5kd2lkdGhBdmFpbGFibGVGb3JJbW1lZGlhdGVGbGlwID0gbW9kZV9saWItPnZiYS5SZXR1cm5CVzsKKwkJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCQltb2RlX2xpYi0+dmJhLkJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAgPQorCQkJCQkJbW9kZV9saWItPnZiYS5CYW5kd2lkdGhBdmFpbGFibGVGb3JJbW1lZGlhdGVGbGlwCisJCQkJCQkJLSBkbWxfbWF4KAorCQkJCQkJCQlsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUx1bWFba10gKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVtrXQorCQkJCQkJCQkrIGxvY2Fscy0+UmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckNocm9tYVtrXQorCQkJCQkJCQkrIGxvY2Fscy0+Y3Vyc29yX2J3W2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvcltrXSwKKwkJCQkJCQkJbG9jYWxzLT5SZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXTHVtYVtrXSAqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JMdW1hUHJlW2tdICsKKwkJCQkJCQkJbG9jYWxzLT5SZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXQ2hyb21hW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckNocm9tYVByZVtrXSArCisJCQkJCQkJCWxvY2Fscy0+Y3Vyc29yX2J3X3ByZVtrXSAqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDdXJzb3JQcmVba10pOworCQkJfQorCisJCQltb2RlX2xpYi0+dmJhLlRvdEltbWVkaWF0ZUZsaXBCeXRlcyA9IDA7CisJCQlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCQkJbW9kZV9saWItPnZiYS5Ub3RJbW1lZGlhdGVGbGlwQnl0ZXMgPSBtb2RlX2xpYi0+dmJhLlRvdEltbWVkaWF0ZUZsaXBCeXRlcyArIGxvY2Fscy0+UERFQW5kTWV0YVBURUJ5dGVzRnJhbWVba10gKyBsb2NhbHMtPk1ldGFSb3dCeXRlW2tdICsgbG9jYWxzLT5QaXhlbFBURUJ5dGVzUGVyUm93W2tdOworCQkJfQorCQkJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQkJCUNhbGN1bGF0ZUZsaXBTY2hlZHVsZSgKKwkJCQkJCW1vZGVfbGliLAorCQkJCQkJbW9kZV9saWItPnZiYS5QZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhLAorCQkJCQkJbW9kZV9saWItPnZiYS5QZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVZNRGF0YU9ubHksCisJCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudEV4dHJhTGF0ZW5jeSwKKwkJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeSwKKwkJCQkJCW1vZGVfbGliLT52YmEuR1BVVk1NYXhQYWdlVGFibGVMZXZlbHMsCisJCQkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTUVuYWJsZSwKKwkJCQkJCW1vZGVfbGliLT52YmEuSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQkJCQkJbW9kZV9saWItPnZiYS5Ib3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHMsCisJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJCQkJbG9jYWxzLT5QREVBbmRNZXRhUFRFQnl0ZXNGcmFtZVtrXSwKKwkJCQkJCWxvY2Fscy0+TWV0YVJvd0J5dGVba10sCisJCQkJCQlsb2NhbHMtPlBpeGVsUFRFQnl0ZXNQZXJSb3dba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAsCisJCQkJCQltb2RlX2xpYi0+dmJhLlRvdEltbWVkaWF0ZUZsaXBCeXRlcywKKwkJCQkJCW1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCQkJbG9jYWxzLT5Ubm9fYndba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSwKKwkJCQkJCWxvY2Fscy0+ZHB0ZV9yb3dfaGVpZ2h0W2tdLAorCQkJCQkJbG9jYWxzLT5tZXRhX3Jvd19oZWlnaHRba10sCisJCQkJCQlsb2NhbHMtPmRwdGVfcm93X2hlaWdodF9jaHJvbWFba10sCisJCQkJCQlsb2NhbHMtPm1ldGFfcm93X2hlaWdodF9jaHJvbWFba10sCisJCQkJCQkmbG9jYWxzLT5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JbkltbWVkaWF0ZUZsaXBba10sCisJCQkJCQkmbG9jYWxzLT5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5JbW1lZGlhdGVGbGlwW2tdLAorCQkJCQkJJmxvY2Fscy0+ZmluYWxfZmxpcF9id1trXSwKKwkJCQkJCSZsb2NhbHMtPkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWRGb3JQaXBlW2tdKTsKKwkJCX0KKwkJCW1vZGVfbGliLT52YmEudG90YWxfZGNuX3JlYWRfYndfd2l0aF9mbGlwID0gMC4wOworCQkJbW9kZV9saWItPnZiYS50b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXBfbm9fdXJnZW50X2J1cnN0ID0gMC4wOworCQkJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQkJCW1vZGVfbGliLT52YmEudG90YWxfZGNuX3JlYWRfYndfd2l0aF9mbGlwID0KKwkJCQkJCW1vZGVfbGliLT52YmEudG90YWxfZGNuX3JlYWRfYndfd2l0aF9mbGlwICsgZG1sX21heDMoCisJCQkJCQkJbG9jYWxzLT5wcmVmZXRjaF92bXJvd19id1trXSwKKwkJCQkJCQlsb2NhbHMtPmZpbmFsX2ZsaXBfYndba10gKyBsb2NhbHMtPlJlYWRCYW5kd2lkdGhMdW1hW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3Rvckx1bWFba10KKwkJCQkJCQkrIGxvY2Fscy0+UmVhZEJhbmR3aWR0aENocm9tYVtrXSAqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDaHJvbWFba10gKyBsb2NhbHMtPmN1cnNvcl9id1trXSAqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDdXJzb3Jba10sCisJCQkJCQkJbG9jYWxzLT5maW5hbF9mbGlwX2J3W2tdICsgbG9jYWxzLT5SZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXTHVtYVtrXSAqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JMdW1hUHJlW2tdCisJCQkJCQkJKyBsb2NhbHMtPlJlcXVpcmVkUHJlZmV0Y2hQaXhEYXRhQldDaHJvbWFba10gKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hUHJlW2tdCisJCQkJCQkJKyBsb2NhbHMtPmN1cnNvcl9id19wcmVba10gKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ3Vyc29yUHJlW2tdKTsKKwkJCQltb2RlX2xpYi0+dmJhLnRvdGFsX2Rjbl9yZWFkX2J3X3dpdGhfZmxpcF9ub191cmdlbnRfYnVyc3QgPQorCQkJCW1vZGVfbGliLT52YmEudG90YWxfZGNuX3JlYWRfYndfd2l0aF9mbGlwX25vX3VyZ2VudF9idXJzdCArCisJCQkJCWRtbF9tYXgzKGxvY2Fscy0+cHJlZmV0Y2hfdm1yb3dfYndba10sCisJCQkJCQlsb2NhbHMtPmZpbmFsX2ZsaXBfYndba10gKyBsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUx1bWFba10gKyBsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUNocm9tYVtrXSArIGxvY2Fscy0+Y3Vyc29yX2J3W2tdLAorCQkJCQkJbG9jYWxzLT5maW5hbF9mbGlwX2J3W2tdICsgbG9jYWxzLT5SZXF1aXJlZFByZWZldGNoUGl4RGF0YUJXTHVtYVtrXSArIGxvY2Fscy0+UmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0Nocm9tYVtrXSArIGxvY2Fscy0+Y3Vyc29yX2J3X3ByZVtrXSk7CisKKwkJCX0KKwkJCW1vZGVfbGliLT52YmEuRnJhY3Rpb25PZlVyZ2VudEJhbmR3aWR0aEltbWVkaWF0ZUZsaXAgPSBtb2RlX2xpYi0+dmJhLnRvdGFsX2Rjbl9yZWFkX2J3X3dpdGhfZmxpcF9ub191cmdlbnRfYnVyc3QgLyBtb2RlX2xpYi0+dmJhLlJldHVybkJXOworCisJCQltb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWQgPSB0cnVlOworCQkJaWYgKG1vZGVfbGliLT52YmEudG90YWxfZGNuX3JlYWRfYndfd2l0aF9mbGlwID4gbW9kZV9saWItPnZiYS5SZXR1cm5CVykgeworCQkJCW1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcFN1cHBvcnRlZCA9IGZhbHNlOworCQkJfQorCQkJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQkJCWlmIChsb2NhbHMtPkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWRGb3JQaXBlW2tdID09IGZhbHNlKSB7CisJCQkJCW1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcFN1cHBvcnRlZCA9IGZhbHNlOworCQkJCX0KKwkJCX0KKwkJfSBlbHNlIHsKKwkJCW1vZGVfbGliLT52YmEuSW1tZWRpYXRlRmxpcFN1cHBvcnRlZCA9IGZhbHNlOworCQl9CisKKwkJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQkJaWYgKG1vZGVfbGliLT52YmEuRXJyb3JSZXN1bHRba10pIHsKKwkJCQltb2RlX2xpYi0+dmJhLlByZWZldGNoTW9kZVN1cHBvcnRlZCA9IGZhbHNlOworCQkJCWRtbF9wcmludCgKKwkJCQkJCSJETUw6IENhbGN1bGF0ZVByZWZldGNoU2NoZWR1bGUgKioqZmFpbGVkKioqLiBQcmVmZXRjaCBzY2hlZHVsZSB2aW9sYXRpb24uIFJlc3VsdHMgYXJlIE5PVCB2YWxpZFxuIik7CisJCQl9CisJCX0KKworCQltb2RlX2xpYi0+dmJhLlZTdGFydHVwTGluZXMgPSBtb2RlX2xpYi0+dmJhLlZTdGFydHVwTGluZXMgKyAxOworCX0gd2hpbGUgKCEoKG1vZGVfbGliLT52YmEuUHJlZmV0Y2hNb2RlU3VwcG9ydGVkCisJCQkmJiAoKCFtb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBTdXBwb3J0ICYmICFtb2RlX2xpYi0+dmJhLkhvc3RWTUVuYWJsZSkKKwkJCQkJfHwgbW9kZV9saWItPnZiYS5JbW1lZGlhdGVGbGlwU3VwcG9ydGVkKSkKKwkJCXx8IGxvY2Fscy0+TWF4aW11bU1heFZTdGFydHVwTGluZXMgPCBtb2RlX2xpYi0+dmJhLlZTdGFydHVwTGluZXMpKTsKKworCS8vV2F0ZXJtYXJrcyBhbmQgTkIgUC1TdGF0ZS9EUkFNIENsb2NrIENoYW5nZSBTdXBwb3J0CisJeworCQllbnVtIGNsb2NrX2NoYW5nZV9zdXBwb3J0IERSQU1DbG9ja0NoYW5nZVN1cHBvcnQ7IC8vIGR1bW15CisJCUNhbGN1bGF0ZVdhdGVybWFya3NBbmREUkFNU3BlZWRDaGFuZ2VTdXBwb3J0KAorCQkJCW1vZGVfbGliLAorCQkJCW1vZGVfbGliLT52YmEuUHJlZmV0Y2hNb2RlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVttb2RlX2xpYi0+dmJhLm1heE1wY0NvbWJdLAorCQkJCW1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMsCisJCQkJbW9kZV9saWItPnZiYS5NYXhMaW5lQnVmZmVyTGluZXMsCisJCQkJbW9kZV9saWItPnZiYS5MaW5lQnVmZmVyU2l6ZSwKKwkJCQltb2RlX2xpYi0+dmJhLkRQUE91dHB1dEJ1ZmZlclBpeGVscywKKwkJCQltb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVJbktCeXRlLAorCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrSW50ZXJmYWNlTHVtYUJ1ZmZlclNpemUsCisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VDaHJvbWFCdWZmZXJTaXplLAorCQkJCW1vZGVfbGliLT52YmEuRENGQ0xLLAorCQkJCW1vZGVfbGliLT52YmEuVXJnZW50T3V0T2ZPcmRlclJldHVyblBlckNoYW5uZWwgKiBtb2RlX2xpYi0+dmJhLk51bWJlck9mQ2hhbm5lbHMsCisJCQkJbW9kZV9saWItPnZiYS5SZXR1cm5CVywKKwkJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJCWxvY2Fscy0+ZHB0ZV9ncm91cF9ieXRlcywKKwkJCQltb2RlX2xpYi0+dmJhLk1ldGFDaHVua1NpemUsCisJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5LAorCQkJCW1vZGVfbGliLT52YmEuVXJnZW50RXh0cmFMYXRlbmN5LAorCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeSwKKwkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0NodW5rU2l6ZSwKKwkJCQltb2RlX2xpYi0+dmJhLlNPQ0NMSywKKwkJCQltb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZUxhdGVuY3ksCisJCQkJbW9kZV9saWItPnZiYS5TUkV4aXRUaW1lLAorCQkJCW1vZGVfbGliLT52YmEuU1JFbnRlclBsdXNFeGl0VGltZSwKKwkJCQltb2RlX2xpYi0+dmJhLkRDRkNMS0RlZXBTbGVlcCwKKwkJCQltb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lLAorCQkJCW1vZGVfbGliLT52YmEuRENDRW5hYmxlLAorCQkJCWxvY2Fscy0+RFBQQ0xLLAorCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFNpbmdsZURQUFksCisJCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFksCisJCQkJbG9jYWxzLT5SZWFkQmFuZHdpZHRoUGxhbmVMdW1hLAorCQkJCW1vZGVfbGliLT52YmEuU3dhdGhIZWlnaHRDLAorCQkJCWxvY2Fscy0+UmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hLAorCQkJCW1vZGVfbGliLT52YmEuTEJCaXRQZXJQaXhlbCwKKwkJCQlsb2NhbHMtPlN3YXRoV2lkdGhZLAorCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvLAorCQkJCW1vZGVfbGliLT52YmEudnRhcHMsCisJCQkJbW9kZV9saWItPnZiYS5WVEFQc0Nocm9tYSwKKwkJCQltb2RlX2xpYi0+dmJhLlZSYXRpbywKKwkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbCwKKwkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2ssCisJCQkJbW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZywKKwkJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbERFVFksCisJCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRDLAorCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlLAorCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrUGl4ZWxGb3JtYXQsCisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoLAorCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25IZWlnaHQsCisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tTb3VyY2VIZWlnaHQsCisJCQkJJkRSQU1DbG9ja0NoYW5nZVN1cHBvcnQsCisJCQkJJm1vZGVfbGliLT52YmEuVXJnZW50V2F0ZXJtYXJrLAorCQkJCSZtb2RlX2xpYi0+dmJhLldyaXRlYmFja1VyZ2VudFdhdGVybWFyaywKKwkJCQkmbW9kZV9saWItPnZiYS5EUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcmssCisJCQkJJm1vZGVfbGliLT52YmEuV3JpdGViYWNrRFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJrLAorCQkJCSZtb2RlX2xpYi0+dmJhLlN0dXR0ZXJFeGl0V2F0ZXJtYXJrLAorCQkJCSZtb2RlX2xpYi0+dmJhLlN0dXR0ZXJFbnRlclBsdXNFeGl0V2F0ZXJtYXJrLAorCQkJCSZtb2RlX2xpYi0+dmJhLk1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lTdXBwb3J0ZWQpOworCX0KKworCisJLy9EaXNwbGF5IFBpcGVsaW5lIERlbGl2ZXJ5IFRpbWUgaW4gUHJlZmV0Y2gsIEdyb3VwcworCUNhbGN1bGF0ZVBpeGVsRGVsaXZlcnlUaW1lcygKKwkJbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcywKKwkJbW9kZV9saWItPnZiYS5WUmF0aW8sCisJCWxvY2Fscy0+VlJhdGlvUHJlZmV0Y2hZLAorCQlsb2NhbHMtPlZSYXRpb1ByZWZldGNoQywKKwkJbG9jYWxzLT5zd2F0aF93aWR0aF9sdW1hX3ViLAorCQlsb2NhbHMtPnN3YXRoX3dpZHRoX2Nocm9tYV91YiwKKwkJbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZSwKKwkJbW9kZV9saWItPnZiYS5IUmF0aW8sCisJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9jaywKKwkJbG9jYWxzLT5QU0NMX1RIUk9VR0hQVVRfTFVNQSwKKwkJbG9jYWxzLT5QU0NMX1RIUk9VR0hQVVRfQ0hST01BLAorCQlsb2NhbHMtPkRQUENMSywKKwkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRDLAorCQltb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW4sCisJCWxvY2Fscy0+QmxvY2tXaWR0aDI1NkJ5dGVzWSwKKwkJbG9jYWxzLT5CbG9ja0hlaWdodDI1NkJ5dGVzWSwKKwkJbG9jYWxzLT5CbG9ja1dpZHRoMjU2Qnl0ZXNDLAorCQlsb2NhbHMtPkJsb2NrSGVpZ2h0MjU2Qnl0ZXNDLAorCQlsb2NhbHMtPkRpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWEsCisJCWxvY2Fscy0+RGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hLAorCQlsb2NhbHMtPkRpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWFQcmVmZXRjaCwKKwkJbG9jYWxzLT5EaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFQcmVmZXRjaCwKKwkJbG9jYWxzLT5EaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVMdW1hLAorCQlsb2NhbHMtPkRpc3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUNocm9tYSwKKwkJbG9jYWxzLT5EaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVMdW1hUHJlZmV0Y2gsCisJCWxvY2Fscy0+RGlzcGxheVBpcGVSZXF1ZXN0RGVsaXZlcnlUaW1lQ2hyb21hUHJlZmV0Y2gpOworCisJQ2FsY3VsYXRlTWV0YUFuZFBURVRpbWVzKAorCQltb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzLAorCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQltb2RlX2xpYi0+dmJhLk1ldGFDaHVua1NpemUsCisJCW1vZGVfbGliLT52YmEuTWluTWV0YUNodW5rU2l6ZUJ5dGVzLAorCQltb2RlX2xpYi0+dmJhLkdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQltb2RlX2xpYi0+dmJhLkhUb3RhbCwKKwkJbW9kZV9saWItPnZiYS5WUmF0aW8sCisJCWxvY2Fscy0+VlJhdGlvUHJlZmV0Y2hZLAorCQlsb2NhbHMtPlZSYXRpb1ByZWZldGNoQywKKwkJbG9jYWxzLT5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmssCisJCWxvY2Fscy0+RGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luSW1tZWRpYXRlRmxpcCwKKwkJbG9jYWxzLT5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFuaywKKwkJbG9jYWxzLT5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JbkltbWVkaWF0ZUZsaXAsCisJCW1vZGVfbGliLT52YmEuRENDRW5hYmxlLAorCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2ssCisJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWSwKKwkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRDLAorCQltb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW4sCisJCWxvY2Fscy0+ZHB0ZV9yb3dfaGVpZ2h0LAorCQlsb2NhbHMtPmRwdGVfcm93X2hlaWdodF9jaHJvbWEsCisJCWxvY2Fscy0+bWV0YV9yb3dfd2lkdGgsCisJCWxvY2Fscy0+bWV0YV9yb3dfaGVpZ2h0LAorCQlsb2NhbHMtPm1ldGFfcmVxX3dpZHRoLAorCQlsb2NhbHMtPm1ldGFfcmVxX2hlaWdodCwKKwkJbG9jYWxzLT5kcHRlX2dyb3VwX2J5dGVzLAorCQlsb2NhbHMtPlBURVJlcXVlc3RTaXplWSwKKwkJbG9jYWxzLT5QVEVSZXF1ZXN0U2l6ZUMsCisJCWxvY2Fscy0+UGl4ZWxQVEVSZXFXaWR0aFksCisJCWxvY2Fscy0+UGl4ZWxQVEVSZXFIZWlnaHRZLAorCQlsb2NhbHMtPlBpeGVsUFRFUmVxV2lkdGhDLAorCQlsb2NhbHMtPlBpeGVsUFRFUmVxSGVpZ2h0QywKKwkJbG9jYWxzLT5kcHRlX3Jvd193aWR0aF9sdW1hX3ViLAorCQlsb2NhbHMtPmRwdGVfcm93X3dpZHRoX2Nocm9tYV91YiwKKwkJbG9jYWxzLT52bV9ncm91cF9ieXRlcywKKwkJbG9jYWxzLT5kcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfbCwKKwkJbG9jYWxzLT5kcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfYywKKwkJbG9jYWxzLT5tZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbCwKKwkJbG9jYWxzLT5tZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfYywKKwkJbG9jYWxzLT5EU1RfWV9QRVJfUFRFX1JPV19OT01fTCwKKwkJbG9jYWxzLT5EU1RfWV9QRVJfUFRFX1JPV19OT01fQywKKwkJbG9jYWxzLT5EU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0wsCisJCWxvY2Fscy0+VGltZVBlck1ldGFDaHVua05vbWluYWwsCisJCWxvY2Fscy0+VGltZVBlck1ldGFDaHVua1ZCbGFuaywKKwkJbG9jYWxzLT5UaW1lUGVyTWV0YUNodW5rRmxpcCwKKwkJbG9jYWxzLT50aW1lX3Blcl9wdGVfZ3JvdXBfbm9tX2x1bWEsCisJCWxvY2Fscy0+dGltZV9wZXJfcHRlX2dyb3VwX3ZibGFua19sdW1hLAorCQlsb2NhbHMtPnRpbWVfcGVyX3B0ZV9ncm91cF9mbGlwX2x1bWEsCisJCWxvY2Fscy0+dGltZV9wZXJfcHRlX2dyb3VwX25vbV9jaHJvbWEsCisJCWxvY2Fscy0+dGltZV9wZXJfcHRlX2dyb3VwX3ZibGFua19jaHJvbWEsCisJCWxvY2Fscy0+dGltZV9wZXJfcHRlX2dyb3VwX2ZsaXBfY2hyb21hLAorCQlsb2NhbHMtPlRpbWVQZXJWTUdyb3VwVkJsYW5rLAorCQlsb2NhbHMtPlRpbWVQZXJWTUdyb3VwRmxpcCwKKwkJbG9jYWxzLT5UaW1lUGVyVk1SZXF1ZXN0VkJsYW5rLAorCQlsb2NhbHMtPlRpbWVQZXJWTVJlcXVlc3RGbGlwKTsKKworCisJLy8gTWluIFRUVVZCbGFuaworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuUHJlZmV0Y2hNb2RlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVttb2RlX2xpYi0+dmJhLm1heE1wY0NvbWJdID09IDApIHsKKwkJCWxvY2Fscy0+QWxsb3dEUkFNQ2xvY2tDaGFuZ2VEdXJpbmdWQmxhbmtba10gPSB0cnVlOworCQkJbG9jYWxzLT5BbGxvd0RSQU1TZWxmUmVmcmVzaER1cmluZ1ZCbGFua1trXSA9IHRydWU7CisJCQlsb2NhbHMtPk1pblRUVVZCbGFua1trXSA9IGRtbF9tYXgoCisJCQkJCW1vZGVfbGliLT52YmEuRFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJrLAorCQkJCQlkbWxfbWF4KAorCQkJCQkJCW1vZGVfbGliLT52YmEuU3R1dHRlckVudGVyUGx1c0V4aXRXYXRlcm1hcmssCisJCQkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRXYXRlcm1hcmspKTsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlByZWZldGNoTW9kZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1bbW9kZV9saWItPnZiYS5tYXhNcGNDb21iXSA9PSAxKSB7CisJCQlsb2NhbHMtPkFsbG93RFJBTUNsb2NrQ2hhbmdlRHVyaW5nVkJsYW5rW2tdID0gZmFsc2U7CisJCQlsb2NhbHMtPkFsbG93RFJBTVNlbGZSZWZyZXNoRHVyaW5nVkJsYW5rW2tdID0gdHJ1ZTsKKwkJCWxvY2Fscy0+TWluVFRVVkJsYW5rW2tdID0gZG1sX21heCgKKwkJCQkJbW9kZV9saWItPnZiYS5TdHV0dGVyRW50ZXJQbHVzRXhpdFdhdGVybWFyaywKKwkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRXYXRlcm1hcmspOworCQl9IGVsc2UgeworCQkJbG9jYWxzLT5BbGxvd0RSQU1DbG9ja0NoYW5nZUR1cmluZ1ZCbGFua1trXSA9IGZhbHNlOworCQkJbG9jYWxzLT5BbGxvd0RSQU1TZWxmUmVmcmVzaER1cmluZ1ZCbGFua1trXSA9IGZhbHNlOworCQkJbG9jYWxzLT5NaW5UVFVWQmxhbmtba10gPSBtb2RlX2xpYi0+dmJhLlVyZ2VudFdhdGVybWFyazsKKwkJfQorCQlpZiAoIW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhRW5hYmxlW2tdKQorCQkJbG9jYWxzLT5NaW5UVFVWQmxhbmtba10gPSBtb2RlX2xpYi0+dmJhLlRDYWxjCisJCQkJCSsgbG9jYWxzLT5NaW5UVFVWQmxhbmtba107CisJfQorCisJLy8gRENDIENvbmZpZ3VyYXRpb24KKwltb2RlX2xpYi0+dmJhLkFjdGl2ZURQUHMgPSAwOworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJbG9jYWxzLT5NYXhpbXVtRENDQ29tcHJlc3Npb25ZU3VyZmFjZVtrXSA9IENhbGN1bGF0ZURDQ0NvbmZpZ3VyYXRpb24oCisJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSwKKwkJCWZhbHNlLCAvLyBXZSBzaG91bGQgYWx3YXlzIGtub3cgdGhlIGRpcmVjdGlvbiBEQ0NQcm9ncmFtbWluZ0Fzc3VtZXNTY2FuRGlyZWN0aW9uVW5rbm93biwKKwkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFtrXSwKKwkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRIZWlnaHRba10sCisJCQltb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVJbktCeXRlICogMTAyNCwKKwkJCWxvY2Fscy0+QmxvY2tIZWlnaHQyNTZCeXRlc1lba10sCisJCQltb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0WVtrXSwKKwkJCW1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSwKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsREVUWVtrXSwKKwkJCW1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSwKKwkJCSZsb2NhbHMtPkRDQ1lNYXhVbmNvbXByZXNzZWRCbG9ja1trXSwKKwkJCSZsb2NhbHMtPkRDQ1lNYXhDb21wcmVzc2VkQmxvY2tba10sCisJCQkmbG9jYWxzLT5EQ0NZSW5kZXBlbmRlbnQ2NEJ5dGVCbG9ja1trXSk7CisJfQorCisJLy9YRkMgUGFyYW1ldGVyczoKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLlhGQ0VuYWJsZWRba10gPT0gdHJ1ZSkgeworCQkJZG91YmxlIFRXYWl0OworCisJCQlsb2NhbHMtPlhGQ1NsYXZlVlVwZGF0ZU9mZnNldFtrXSA9IG1vZGVfbGliLT52YmEuWEZDVFNsdlZ1cGRhdGVPZmZzZXQ7CisJCQlsb2NhbHMtPlhGQ1NsYXZlVnVwZGF0ZVdpZHRoW2tdID0gbW9kZV9saWItPnZiYS5YRkNUU2x2VnVwZGF0ZVdpZHRoOworCQkJbG9jYWxzLT5YRkNTbGF2ZVZSZWFkeU9mZnNldFtrXSA9IG1vZGVfbGliLT52YmEuWEZDVFNsdlZyZWFkeU9mZnNldDsKKwkJCVRXYWl0ID0gQ2FsY3VsYXRlVFdhaXQoCisJCQkJCW1vZGVfbGliLT52YmEuUHJlZmV0Y2hNb2RlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVttb2RlX2xpYi0+dmJhLm1heE1wY0NvbWJdLAorCQkJCQltb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZUxhdGVuY3ksCisJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeSwKKwkJCQkJbW9kZV9saWItPnZiYS5TUkVudGVyUGx1c0V4aXRUaW1lKTsKKwkJCW1vZGVfbGliLT52YmEuWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheSA9IENhbGN1bGF0ZVJlbW90ZVN1cmZhY2VGbGlwRGVsYXkoCisJCQkJCW1vZGVfbGliLAorCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXSwKKwkJCQkJbG9jYWxzLT5Td2F0aFdpZHRoWVtrXSwKKwkJCQkJZG1sX2NlaWwobG9jYWxzLT5CeXRlUGVyUGl4ZWxERVRZW2tdLCAxKSwKKwkJCQkJbW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10sCisJCQkJCW1vZGVfbGliLT52YmEuWEZDVFNsdlZ1cGRhdGVPZmZzZXQsCisJCQkJCW1vZGVfbGliLT52YmEuWEZDVFNsdlZ1cGRhdGVXaWR0aCwKKwkJCQkJbW9kZV9saWItPnZiYS5YRkNUU2x2VnJlYWR5T2Zmc2V0LAorCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1hCVUZMYXRlbmN5VG9sZXJhbmNlLAorCQkJCQltb2RlX2xpYi0+dmJhLlhGQ0ZpbGxCV092ZXJoZWFkLAorCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1NsdkNodW5rU2l6ZSwKKwkJCQkJbW9kZV9saWItPnZiYS5YRkNCdXNUcmFuc3BvcnRUaW1lLAorCQkJCQltb2RlX2xpYi0+dmJhLlRDYWxjLAorCQkJCQlUV2FpdCwKKwkJCQkJJm1vZGVfbGliLT52YmEuU3JjQWN0aXZlRHJhaW5SYXRlLAorCQkJCQkmbW9kZV9saWItPnZiYS5USW5pdFhGaWxsLAorCQkJCQkmbW9kZV9saWItPnZiYS5Uc2x2Q2hrKTsKKwkJCQkJbG9jYWxzLT5YRkNSZW1vdGVTdXJmYWNlRmxpcExhdGVuY3lba10gPQorCQkJCQlkbWxfZmxvb3IoCisJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5CisJCQkJCQkJCQkvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSksCisJCQkJCQkJMSk7CisJCQlsb2NhbHMtPlhGQ1RyYW5zZmVyRGVsYXlba10gPQorCQkJCQlkbWxfY2VpbCgKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ0J1c1RyYW5zcG9ydFRpbWUKKwkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSwKKwkJCQkJCQkxKTsKKwkJCWxvY2Fscy0+WEZDUHJlY2hhcmdlRGVsYXlba10gPQorCQkJCQlkbWxfY2VpbCgKKwkJCQkJCQkobW9kZV9saWItPnZiYS5YRkNCdXNUcmFuc3BvcnRUaW1lCisJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuVEluaXRYRmlsbAorCQkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLlRzbHZDaGspCisJCQkJCQkJCQkvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSksCisJCQkJCQkJMSk7CisJCQltb2RlX2xpYi0+dmJhLkluaXRGaWxsTGV2ZWwgPSBtb2RlX2xpYi0+dmJhLlhGQ1hCVUZMYXRlbmN5VG9sZXJhbmNlCisJCQkJCSogbW9kZV9saWItPnZiYS5TcmNBY3RpdmVEcmFpblJhdGU7CisJCQltb2RlX2xpYi0+dmJhLkZpbmFsRmlsbE1hcmdpbiA9CisJCQkJCShsb2NhbHMtPkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluVkJsYW5rW2tdCisJCQkJCQkJKyBsb2NhbHMtPkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJblZCbGFua1trXSkKKwkJCQkJCQkqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10KKwkJCQkJCQkqIG1vZGVfbGliLT52YmEuU3JjQWN0aXZlRHJhaW5SYXRlCisJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLlhGQ0ZpbGxDb25zdGFudDsKKwkJCW1vZGVfbGliLT52YmEuRmluYWxGaWxsTGV2ZWwgPSBtb2RlX2xpYi0+dmJhLlhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXkKKwkJCQkJKiBtb2RlX2xpYi0+dmJhLlNyY0FjdGl2ZURyYWluUmF0ZQorCQkJCQkrIG1vZGVfbGliLT52YmEuRmluYWxGaWxsTWFyZ2luOworCQkJbW9kZV9saWItPnZiYS5SZW1haW5pbmdGaWxsTGV2ZWwgPSBkbWxfbWF4KAorCQkJCQkwLjAsCisJCQkJCW1vZGVfbGliLT52YmEuRmluYWxGaWxsTGV2ZWwgLSBtb2RlX2xpYi0+dmJhLkluaXRGaWxsTGV2ZWwpOworCQkJbW9kZV9saWItPnZiYS5URmluYWx4RmlsbCA9IG1vZGVfbGliLT52YmEuUmVtYWluaW5nRmlsbExldmVsCisJCQkJCS8gKG1vZGVfbGliLT52YmEuU3JjQWN0aXZlRHJhaW5SYXRlCisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlhGQ0ZpbGxCV092ZXJoZWFkIC8gMTAwKTsKKwkJCWxvY2Fscy0+WEZDUHJlZmV0Y2hNYXJnaW5ba10gPQorCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXkKKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuVEZpbmFseEZpbGwKKwkJCQkJCQkrIChsb2NhbHMtPkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluVkJsYW5rW2tdCisJCQkJCQkJCQkrIGxvY2Fscy0+RGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luVkJsYW5rW2tdKQorCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba107CisJCX0gZWxzZSB7CisJCQlsb2NhbHMtPlhGQ1NsYXZlVlVwZGF0ZU9mZnNldFtrXSA9IDA7CisJCQlsb2NhbHMtPlhGQ1NsYXZlVnVwZGF0ZVdpZHRoW2tdID0gMDsKKwkJCWxvY2Fscy0+WEZDU2xhdmVWUmVhZHlPZmZzZXRba10gPSAwOworCQkJbG9jYWxzLT5YRkNSZW1vdGVTdXJmYWNlRmxpcExhdGVuY3lba10gPSAwOworCQkJbG9jYWxzLT5YRkNQcmVjaGFyZ2VEZWxheVtrXSA9IDA7CisJCQlsb2NhbHMtPlhGQ1RyYW5zZmVyRGVsYXlba10gPSAwOworCQkJbG9jYWxzLT5YRkNQcmVmZXRjaE1hcmdpbltrXSA9IDA7CisJCX0KKwl9CisKKwkvLyBTdHV0dGVyIEVmZmljaWVuY3kKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCUNhbGN1bGF0ZURFVEJ1ZmZlclNpemUoCisJCQltb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVJbktCeXRlLAorCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlba10sCisJCQltb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0Q1trXSwKKwkJCSZsb2NhbHMtPkRFVEJ1ZmZlclNpemVZW2tdLAorCQkJJmxvY2Fscy0+REVUQnVmZmVyU2l6ZUNba10pOworCisJCWxvY2Fscy0+TGluZXNJbkRFVFlba10gPSBsb2NhbHMtPkRFVEJ1ZmZlclNpemVZW2tdCisJCQkJLyBsb2NhbHMtPkJ5dGVQZXJQaXhlbERFVFlba10gLyBsb2NhbHMtPlN3YXRoV2lkdGhZW2tdOworCQlsb2NhbHMtPkxpbmVzSW5ERVRZUm91bmRlZERvd25Ub1N3YXRoW2tdID0gZG1sX2Zsb29yKAorCQkJCWxvY2Fscy0+TGluZXNJbkRFVFlba10sCisJCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlba10pOworCQlsb2NhbHMtPkZ1bGxERVRCdWZmZXJpbmdUaW1lWVtrXSA9CisJCQkJbG9jYWxzLT5MaW5lc0luREVUWVJvdW5kZWREb3duVG9Td2F0aFtrXQorCQkJCQkJKiAobW9kZV9saWItPnZiYS5IVG90YWxba10KKwkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pCisJCQkJCQkvIG1vZGVfbGliLT52YmEuVlJhdGlvW2tdOworCX0KKworCW1vZGVfbGliLT52YmEuU3R1dHRlclBlcmlvZCA9IDk5OTk5OS4wOworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKGxvY2Fscy0+RnVsbERFVEJ1ZmZlcmluZ1RpbWVZW2tdIDwgbW9kZV9saWItPnZiYS5TdHV0dGVyUGVyaW9kKSB7CisJCQltb2RlX2xpYi0+dmJhLlN0dXR0ZXJQZXJpb2QgPSBsb2NhbHMtPkZ1bGxERVRCdWZmZXJpbmdUaW1lWVtrXTsKKwkJCW1vZGVfbGliLT52YmEuRnJhbWVUaW1lRm9yTWluRnVsbERFVEJ1ZmZlcmluZ1RpbWUgPQorCQkJCShkb3VibGUpIG1vZGVfbGliLT52YmEuVlRvdGFsW2tdICogbW9kZV9saWItPnZiYS5IVG90YWxba10KKwkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXTsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsWUNyaXRpY2FsUGxhbmUgPSBkbWxfY2VpbChsb2NhbHMtPkJ5dGVQZXJQaXhlbERFVFlba10sIDEpOworCQkJbG9jYWxzLT5Td2F0aFdpZHRoWUNyaXRpY2FsUGxhbmUgPSBsb2NhbHMtPlN3YXRoV2lkdGhZW2tdOworCQkJbG9jYWxzLT5MaW5lc1RvRmluaXNoU3dhdGhUcmFuc2ZlclN0dXR0ZXJDcml0aWNhbFBsYW5lID0KKwkJCQltb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0WVtrXSAtIChsb2NhbHMtPkxpbmVzSW5ERVRZW2tdIC0gbG9jYWxzLT5MaW5lc0luREVUWVJvdW5kZWREb3duVG9Td2F0aFtrXSk7CisJCX0KKwl9CisKKwltb2RlX2xpYi0+dmJhLkF2ZXJhZ2VSZWFkQmFuZHdpZHRoID0gMC4wOworCW1vZGVfbGliLT52YmEuVG90YWxSb3dSZWFkQmFuZHdpZHRoID0gMC4wOworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJdW5zaWduZWQgaW50IERDQ1JhdGVMaW1pdDsKKworCQlpZiAobW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10pIHsKKwkJCWlmIChsb2NhbHMtPkRDQ1lNYXhDb21wcmVzc2VkQmxvY2tba10gPT0gMjU2KQorCQkJCURDQ1JhdGVMaW1pdCA9IDQ7CisJCQllbHNlCisJCQkJRENDUmF0ZUxpbWl0ID0gMjsKKworCQkJbW9kZV9saWItPnZiYS5BdmVyYWdlUmVhZEJhbmR3aWR0aCA9CisJCQkJCW1vZGVfbGliLT52YmEuQXZlcmFnZVJlYWRCYW5kd2lkdGgKKwkJCQkJCQkrIChsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUx1bWFba10gKyBsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUNocm9tYVtrXSkgLworCQkJCQkJCQlkbWxfbWluKG1vZGVfbGliLT52YmEuRENDUmF0ZVtrXSwgRENDUmF0ZUxpbWl0KTsKKwkJfSBlbHNlIHsKKwkJCW1vZGVfbGliLT52YmEuQXZlcmFnZVJlYWRCYW5kd2lkdGggPQorCQkJCQltb2RlX2xpYi0+dmJhLkF2ZXJhZ2VSZWFkQmFuZHdpZHRoCisJCQkJCQkJKyBsb2NhbHMtPlJlYWRCYW5kd2lkdGhQbGFuZUx1bWFba10KKwkJCQkJCQkrIGxvY2Fscy0+UmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdOworCQl9CisJCW1vZGVfbGliLT52YmEuVG90YWxSb3dSZWFkQmFuZHdpZHRoID0gbW9kZV9saWItPnZiYS5Ub3RhbFJvd1JlYWRCYW5kd2lkdGggKworCQlsb2NhbHMtPm1ldGFfcm93X2J3W2tdICsgbG9jYWxzLT5kcHRlX3Jvd19id1trXTsKKwl9CisKKwltb2RlX2xpYi0+dmJhLkF2ZXJhZ2VEQ0NDb21wcmVzc2lvblJhdGUgPSBtb2RlX2xpYi0+dmJhLlRvdGFsRGF0YVJlYWRCYW5kd2lkdGggLyBtb2RlX2xpYi0+dmJhLkF2ZXJhZ2VSZWFkQmFuZHdpZHRoOworCisJbW9kZV9saWItPnZiYS5QYXJ0T2ZCdXJzdFRoYXRGaXRzSW5ST0IgPQorCQkJZG1sX21pbigKKwkJCQkJbW9kZV9saWItPnZiYS5TdHV0dGVyUGVyaW9kCisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlRvdGFsRGF0YVJlYWRCYW5kd2lkdGgsCisJCQkJCW1vZGVfbGliLT52YmEuUk9CQnVmZmVyU2l6ZUluS0J5dGUgKiAxMDI0CisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkF2ZXJhZ2VEQ0NDb21wcmVzc2lvblJhdGUpOworCW1vZGVfbGliLT52YmEuU3R1dHRlckJ1cnN0VGltZSA9IG1vZGVfbGliLT52YmEuUGFydE9mQnVyc3RUaGF0Rml0c0luUk9CCisJCQkvIG1vZGVfbGliLT52YmEuQXZlcmFnZURDQ0NvbXByZXNzaW9uUmF0ZSAvIG1vZGVfbGliLT52YmEuUmV0dXJuQlcKKwkJCSsgKG1vZGVfbGliLT52YmEuU3R1dHRlclBlcmlvZCAqIG1vZGVfbGliLT52YmEuVG90YWxEYXRhUmVhZEJhbmR3aWR0aAorCQkJCQktIG1vZGVfbGliLT52YmEuUGFydE9mQnVyc3RUaGF0Rml0c0luUk9CKQorCQkJCQkvIChtb2RlX2xpYi0+dmJhLkRDRkNMSyAqIDY0KQorCQkJCQkrIG1vZGVfbGliLT52YmEuU3R1dHRlclBlcmlvZCAqIG1vZGVfbGliLT52YmEuVG90YWxSb3dSZWFkQmFuZHdpZHRoIC8gbW9kZV9saWItPnZiYS5SZXR1cm5CVzsKKwltb2RlX2xpYi0+dmJhLlN0dXR0ZXJCdXJzdFRpbWUgPSBkbWxfbWF4KAorCQltb2RlX2xpYi0+dmJhLlN0dXR0ZXJCdXJzdFRpbWUsCisJCShsb2NhbHMtPkxpbmVzVG9GaW5pc2hTd2F0aFRyYW5zZmVyU3R1dHRlckNyaXRpY2FsUGxhbmUgKiBsb2NhbHMtPkJ5dGVQZXJQaXhlbFlDcml0aWNhbFBsYW5lICoKKwkJbG9jYWxzLT5Td2F0aFdpZHRoWUNyaXRpY2FsUGxhbmUgLyBtb2RlX2xpYi0+dmJhLlJldHVybkJXKQorCSk7CisKKwltb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlV3JpdGViYWNrID0gMDsKKwlmb3IgKGsgPSAwOyBrIDwgbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQltb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlV3JpdGViYWNrID0gbW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZVdyaXRlYmFjayArIDE7CisJCX0KKwl9CisKKwlpZiAobW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZVdyaXRlYmFjayA9PSAwKSB7CisJCW1vZGVfbGliLT52YmEuU3R1dHRlckVmZmljaWVuY3lOb3RJbmNsdWRpbmdWQmxhbmsgPSAoMQorCQkJCS0gKG1vZGVfbGliLT52YmEuU1JFeGl0VGltZSArIG1vZGVfbGliLT52YmEuU3R1dHRlckJ1cnN0VGltZSkKKwkJCQkJCS8gbW9kZV9saWItPnZiYS5TdHV0dGVyUGVyaW9kKSAqIDEwMDsKKwl9IGVsc2UgeworCQltb2RlX2xpYi0+dmJhLlN0dXR0ZXJFZmZpY2llbmN5Tm90SW5jbHVkaW5nVkJsYW5rID0gMDsKKwl9CisKKwltb2RlX2xpYi0+dmJhLlNtYWxsZXN0VkJsYW5rID0gOTk5OTk5OworCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuU3luY2hyb25pemVkVkJsYW5rIHx8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgPT0gMSkgeworCQkJbW9kZV9saWItPnZiYS5WQmxhbmtUaW1lID0gKGRvdWJsZSkgKG1vZGVfbGliLT52YmEuVlRvdGFsW2tdCisJCQkJCS0gbW9kZV9saWItPnZiYS5WQWN0aXZlW2tdKSAqIG1vZGVfbGliLT52YmEuSFRvdGFsW2tdCisJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5WQmxhbmtUaW1lID0gMDsKKwkJfQorCQltb2RlX2xpYi0+dmJhLlNtYWxsZXN0VkJsYW5rID0gZG1sX21pbigKKwkJCQltb2RlX2xpYi0+dmJhLlNtYWxsZXN0VkJsYW5rLAorCQkJCW1vZGVfbGliLT52YmEuVkJsYW5rVGltZSk7CisJfQorCisJbW9kZV9saWItPnZiYS5TdHV0dGVyRWZmaWNpZW5jeSA9IChtb2RlX2xpYi0+dmJhLlN0dXR0ZXJFZmZpY2llbmN5Tm90SW5jbHVkaW5nVkJsYW5rIC8gMTAwCisJCQkqIChtb2RlX2xpYi0+dmJhLkZyYW1lVGltZUZvck1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lCisJCQkJCS0gbW9kZV9saWItPnZiYS5TbWFsbGVzdFZCbGFuaykKKwkJCSsgbW9kZV9saWItPnZiYS5TbWFsbGVzdFZCbGFuaykKKwkJCS8gbW9kZV9saWItPnZiYS5GcmFtZVRpbWVGb3JNaW5GdWxsREVUQnVmZmVyaW5nVGltZSAqIDEwMDsKK30KKworc3RhdGljIHZvaWQgRGlzcGxheVBpcGVDb25maWd1cmF0aW9uKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYikKK3sKKwkvLyBEaXNwbGF5IFBpcGUgQ29uZmlndXJhdGlvbgorCWRvdWJsZSBCeXRlUGVyUGl4REVUWTsKKwlkb3VibGUgQnl0ZVBlclBpeERFVEM7CisJZG91YmxlIFJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0WTsKKwlkb3VibGUgUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRDOworCWRvdWJsZSBSZWFkMjU2Qnl0ZXNCbG9ja1dpZHRoWTsKKwlkb3VibGUgUmVhZDI1NkJ5dGVzQmxvY2tXaWR0aEM7CisJZG91YmxlIE1heGltdW1Td2F0aEhlaWdodFk7CisJZG91YmxlIE1heGltdW1Td2F0aEhlaWdodEM7CisJZG91YmxlIE1pbmltdW1Td2F0aEhlaWdodFk7CisJZG91YmxlIE1pbmltdW1Td2F0aEhlaWdodEM7CisJZG91YmxlIFN3YXRoV2lkdGg7CisJZG91YmxlIFN3YXRoV2lkdGhHcmFudWxhcml0eVk7CisJZG91YmxlIFN3YXRoV2lkdGhHcmFudWxhcml0eUM7CisJZG91YmxlIFJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzWTsKKwlkb3VibGUgUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDOworCXVuc2lnbmVkIGludCBqLCBrOworCisJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlib29sIE1haW5QbGFuZURvZXNPRE1Db21iaW5lID0gZmFsc2U7CisKKwkJaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzY0KSB7CisJCQlCeXRlUGVyUGl4REVUWSA9IDg7CisJCQlCeXRlUGVyUGl4REVUQyA9IDA7CisJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMzIpIHsKKwkJCUJ5dGVQZXJQaXhERVRZID0gNDsKKwkJCUJ5dGVQZXJQaXhERVRDID0gMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8xNikgeworCQkJQnl0ZVBlclBpeERFVFkgPSAyOworCQkJQnl0ZVBlclBpeERFVEMgPSAwOworCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzgpIHsKKwkJCUJ5dGVQZXJQaXhERVRZID0gMTsKKwkJCUJ5dGVQZXJQaXhERVRDID0gMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQyMF84KSB7CisJCQlCeXRlUGVyUGl4REVUWSA9IDE7CisJCQlCeXRlUGVyUGl4REVUQyA9IDI7CisJCX0gZWxzZSB7CisJCQlCeXRlUGVyUGl4REVUWSA9IDQuMCAvIDMuMDsKKwkJCUJ5dGVQZXJQaXhERVRDID0gOC4wIC8gMy4wOworCQl9CisKKwkJaWYgKChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF82NAorCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzMyCisJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMTYKKwkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF84KSkgeworCQkJaWYgKG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSA9PSBkbV9zd19saW5lYXIpIHsKKwkJCQlSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodFkgPSAxOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF82NCkgeworCQkJCVJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0WSA9IDQ7CisJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzMyCisJCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzE2KSB7CisJCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRZID0gODsKKwkJCX0gZWxzZSB7CisJCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRZID0gMTY7CisJCQl9CisJCQlSZWFkMjU2Qnl0ZXNCbG9ja1dpZHRoWSA9IDI1NiAvIGRtbF9jZWlsKEJ5dGVQZXJQaXhERVRZLCAxKQorCQkJCQkvIFJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0WTsKKwkJCVJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0QyA9IDA7CisJCQlSZWFkMjU2Qnl0ZXNCbG9ja1dpZHRoQyA9IDA7CisJCX0gZWxzZSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X2xpbmVhcikgeworCQkJCVJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0WSA9IDE7CisJCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRDID0gMTsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfOCkgeworCQkJCVJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0WSA9IDE2OworCQkJCVJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0QyA9IDg7CisJCQl9IGVsc2UgeworCQkJCVJlYWQyNTZCeXRlc0Jsb2NrSGVpZ2h0WSA9IDg7CisJCQkJUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRDID0gODsKKwkJCX0KKwkJCVJlYWQyNTZCeXRlc0Jsb2NrV2lkdGhZID0gMjU2IC8gZG1sX2NlaWwoQnl0ZVBlclBpeERFVFksIDEpCisJCQkJCS8gUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRZOworCQkJUmVhZDI1NkJ5dGVzQmxvY2tXaWR0aEMgPSAyNTYgLyBkbWxfY2VpbChCeXRlUGVyUGl4REVUQywgMikKKwkJCQkJLyBSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodEM7CisJCX0KKworCQlpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdID09IGRtX2hvcnopIHsKKwkJCU1heGltdW1Td2F0aEhlaWdodFkgPSBSZWFkMjU2Qnl0ZXNCbG9ja0hlaWdodFk7CisJCQlNYXhpbXVtU3dhdGhIZWlnaHRDID0gUmVhZDI1NkJ5dGVzQmxvY2tIZWlnaHRDOworCQl9IGVsc2UgeworCQkJTWF4aW11bVN3YXRoSGVpZ2h0WSA9IFJlYWQyNTZCeXRlc0Jsb2NrV2lkdGhZOworCQkJTWF4aW11bVN3YXRoSGVpZ2h0QyA9IFJlYWQyNTZCeXRlc0Jsb2NrV2lkdGhDOworCQl9CisKKwkJaWYgKChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF82NAorCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzMyCisJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMTYKKwkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF84KSkgeworCQkJaWYgKG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSA9PSBkbV9zd19saW5lYXIKKwkJCQkJfHwgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzY0CisJCQkJCQkJJiYgKG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJPT0gZG1fc3dfNGtiX3MKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd180a2Jfc194CisJCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10KKwkJCQkJCQkJCQkJPT0gZG1fc3dfNjRrYl9zCisJCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10KKwkJCQkJCQkJCQkJPT0gZG1fc3dfNjRrYl9zX3QKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd182NGtiX3NfeAorCQkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQkJCT09IGRtX3N3X3Zhcl9zCisJCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10KKwkJCQkJCQkJCQkJPT0gZG1fc3dfdmFyX3NfeCkKKwkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikpIHsKKwkJCQlNaW5pbXVtU3dhdGhIZWlnaHRZID0gTWF4aW11bVN3YXRoSGVpZ2h0WTsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfOAorCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gIT0gZG1faG9yeikgeworCQkJCU1pbmltdW1Td2F0aEhlaWdodFkgPSBNYXhpbXVtU3dhdGhIZWlnaHRZOworCQkJfSBlbHNlIHsKKwkJCQlNaW5pbXVtU3dhdGhIZWlnaHRZID0gTWF4aW11bVN3YXRoSGVpZ2h0WSAvIDIuMDsKKwkJCX0KKwkJCU1pbmltdW1Td2F0aEhlaWdodEMgPSBNYXhpbXVtU3dhdGhIZWlnaHRDOworCQl9IGVsc2UgeworCQkJaWYgKG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSA9PSBkbV9zd19saW5lYXIpIHsKKwkJCQlNaW5pbXVtU3dhdGhIZWlnaHRZID0gTWF4aW11bVN3YXRoSGVpZ2h0WTsKKwkJCQlNaW5pbXVtU3dhdGhIZWlnaHRDID0gTWF4aW11bVN3YXRoSGVpZ2h0QzsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfOAorCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikgeworCQkJCU1pbmltdW1Td2F0aEhlaWdodFkgPSBNYXhpbXVtU3dhdGhIZWlnaHRZIC8gMi4wOworCQkJCU1pbmltdW1Td2F0aEhlaWdodEMgPSBNYXhpbXVtU3dhdGhIZWlnaHRDOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQyMF8xMAorCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikgeworCQkJCU1pbmltdW1Td2F0aEhlaWdodEMgPSBNYXhpbXVtU3dhdGhIZWlnaHRDIC8gMi4wOworCQkJCU1pbmltdW1Td2F0aEhlaWdodFkgPSBNYXhpbXVtU3dhdGhIZWlnaHRZOworCQkJfSBlbHNlIHsKKwkJCQlNaW5pbXVtU3dhdGhIZWlnaHRZID0gTWF4aW11bVN3YXRoSGVpZ2h0WTsKKwkJCQlNaW5pbXVtU3dhdGhIZWlnaHRDID0gTWF4aW11bVN3YXRoSGVpZ2h0QzsKKwkJCX0KKwkJfQorCisJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikgeworCQkJU3dhdGhXaWR0aCA9IG1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFtrXTsKKwkJfSBlbHNlIHsKKwkJCVN3YXRoV2lkdGggPSBtb2RlX2xpYi0+dmJhLlZpZXdwb3J0SGVpZ2h0W2tdOworCQl9CisKKwkJaWYgKG1vZGVfbGliLT52YmEuT0RNQ29tYmluZUVuYWJsZWRba10gPT0gdHJ1ZSkgeworCQkJTWFpblBsYW5lRG9lc09ETUNvbWJpbmUgPSB0cnVlOworCQl9CisJCWZvciAoaiA9IDA7IGogPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2opIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2tdID09IGoKKwkJCQkJJiYgbW9kZV9saWItPnZiYS5PRE1Db21iaW5lRW5hYmxlZFtqXSA9PSB0cnVlKSB7CisJCQkJTWFpblBsYW5lRG9lc09ETUNvbWJpbmUgPSB0cnVlOworCQkJfQorCQl9CisKKwkJaWYgKE1haW5QbGFuZURvZXNPRE1Db21iaW5lID09IHRydWUpIHsKKwkJCVN3YXRoV2lkdGggPSBkbWxfbWluKAorCQkJCQlTd2F0aFdpZHRoLAorCQkJCQltb2RlX2xpYi0+dmJhLkhBY3RpdmVba10gLyAyLjAgKiBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSk7CisJCX0gZWxzZSB7CisJCQlTd2F0aFdpZHRoID0gU3dhdGhXaWR0aCAvIG1vZGVfbGliLT52YmEuRFBQUGVyUGxhbmVba107CisJCX0KKworCQlTd2F0aFdpZHRoR3JhbnVsYXJpdHlZID0gMjU2IC8gZG1sX2NlaWwoQnl0ZVBlclBpeERFVFksIDEpIC8gTWF4aW11bVN3YXRoSGVpZ2h0WTsKKwkJUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNZID0gKGRtbF9jZWlsKAorCQkJCShkb3VibGUpIChTd2F0aFdpZHRoIC0gMSksCisJCQkJU3dhdGhXaWR0aEdyYW51bGFyaXR5WSkgKyBTd2F0aFdpZHRoR3JhbnVsYXJpdHlZKSAqIEJ5dGVQZXJQaXhERVRZCisJCQkJKiBNYXhpbXVtU3dhdGhIZWlnaHRZOworCQlpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfMTApIHsKKwkJCVJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzWSA9IGRtbF9jZWlsKFJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzWSwgMjU2KQorCQkJCQkrIDI1NjsKKwkJfQorCQlpZiAoTWF4aW11bVN3YXRoSGVpZ2h0QyA+IDApIHsKKwkJCVN3YXRoV2lkdGhHcmFudWxhcml0eUMgPSAyNTYuMCAvIGRtbF9jZWlsKEJ5dGVQZXJQaXhERVRDLCAyKQorCQkJCQkvIE1heGltdW1Td2F0aEhlaWdodEM7CisJCQlSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc0MgPSAoZG1sX2NlaWwoCisJCQkJCShkb3VibGUpIChTd2F0aFdpZHRoIC8gMi4wIC0gMSksCisJCQkJCVN3YXRoV2lkdGhHcmFudWxhcml0eUMpICsgU3dhdGhXaWR0aEdyYW51bGFyaXR5QykKKwkJCQkJKiBCeXRlUGVyUGl4REVUQyAqIE1heGltdW1Td2F0aEhlaWdodEM7CisJCQlpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfMTApIHsKKwkJCQlSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc0MgPSBkbWxfY2VpbCgKKwkJCQkJCVJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzQywKKwkJCQkJCTI1NikgKyAyNTY7CisJCQl9CisJCX0gZWxzZQorCQkJUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDID0gMC4wOworCisJCWlmIChSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc1kgKyBSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc0MKKwkJCQk8PSBtb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVJbktCeXRlICogMTAyNC4wIC8gMi4wKSB7CisJCQltb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0WVtrXSA9IE1heGltdW1Td2F0aEhlaWdodFk7CisJCQltb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0Q1trXSA9IE1heGltdW1Td2F0aEhlaWdodEM7CisJCX0gZWxzZSB7CisJCQltb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0WVtrXSA9IE1pbmltdW1Td2F0aEhlaWdodFk7CisJCQltb2RlX2xpYi0+dmJhLlN3YXRoSGVpZ2h0Q1trXSA9IE1pbmltdW1Td2F0aEhlaWdodEM7CisJCX0KKworCQlDYWxjdWxhdGVERVRCdWZmZXJTaXplKAorCQkJCW1vZGVfbGliLT52YmEuREVUQnVmZmVyU2l6ZUluS0J5dGUsCisJCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodFlba10sCisJCQkJbW9kZV9saWItPnZiYS5Td2F0aEhlaWdodENba10sCisJCQkJJm1vZGVfbGliLT52YmEuREVUQnVmZmVyU2l6ZVlba10sCisJCQkJJm1vZGVfbGliLT52YmEuREVUQnVmZmVyU2l6ZUNba10pOworCX0KK30KKworc3RhdGljIGRvdWJsZSBDYWxjdWxhdGVUV2FpdCgKKwkJdW5zaWduZWQgaW50IFByZWZldGNoTW9kZSwKKwkJZG91YmxlIERSQU1DbG9ja0NoYW5nZUxhdGVuY3ksCisJCWRvdWJsZSBVcmdlbnRMYXRlbmN5LAorCQlkb3VibGUgU1JFbnRlclBsdXNFeGl0VGltZSkKK3sKKwlpZiAoUHJlZmV0Y2hNb2RlID09IDApIHsKKwkJcmV0dXJuIGRtbF9tYXgoCisJCQkJRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeSArIFVyZ2VudExhdGVuY3ksCisJCQkJZG1sX21heChTUkVudGVyUGx1c0V4aXRUaW1lLCBVcmdlbnRMYXRlbmN5KSk7CisJfSBlbHNlIGlmIChQcmVmZXRjaE1vZGUgPT0gMSkgeworCQlyZXR1cm4gZG1sX21heChTUkVudGVyUGx1c0V4aXRUaW1lLCBVcmdlbnRMYXRlbmN5KTsKKwl9IGVsc2UgeworCQlyZXR1cm4gVXJnZW50TGF0ZW5jeTsKKwl9Cit9CisKK3N0YXRpYyBkb3VibGUgQ2FsY3VsYXRlUmVtb3RlU3VyZmFjZUZsaXBEZWxheSgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgVlJhdGlvLAorCQlkb3VibGUgU3dhdGhXaWR0aCwKKwkJZG91YmxlIEJwcCwKKwkJZG91YmxlIExpbmVUaW1lLAorCQlkb3VibGUgWEZDVFNsdlZ1cGRhdGVPZmZzZXQsCisJCWRvdWJsZSBYRkNUU2x2VnVwZGF0ZVdpZHRoLAorCQlkb3VibGUgWEZDVFNsdlZyZWFkeU9mZnNldCwKKwkJZG91YmxlIFhGQ1hCVUZMYXRlbmN5VG9sZXJhbmNlLAorCQlkb3VibGUgWEZDRmlsbEJXT3ZlcmhlYWQsCisJCWRvdWJsZSBYRkNTbHZDaHVua1NpemUsCisJCWRvdWJsZSBYRkNCdXNUcmFuc3BvcnRUaW1lLAorCQlkb3VibGUgVENhbGMsCisJCWRvdWJsZSBUV2FpdCwKKwkJZG91YmxlICpTcmNBY3RpdmVEcmFpblJhdGUsCisJCWRvdWJsZSAqVEluaXRYRmlsbCwKKwkJZG91YmxlICpUc2x2Q2hrKQoreworCWRvdWJsZSBUU2x2U2V0dXAsIEF2Z2ZpbGxSYXRlLCByZXN1bHQ7CisKKwkqU3JjQWN0aXZlRHJhaW5SYXRlID0gVlJhdGlvICogU3dhdGhXaWR0aCAqIEJwcCAvIExpbmVUaW1lOworCVRTbHZTZXR1cCA9IFhGQ1RTbHZWdXBkYXRlT2Zmc2V0ICsgWEZDVFNsdlZ1cGRhdGVXaWR0aCArIFhGQ1RTbHZWcmVhZHlPZmZzZXQ7CisJKlRJbml0WEZpbGwgPSBYRkNYQlVGTGF0ZW5jeVRvbGVyYW5jZSAvICgxICsgWEZDRmlsbEJXT3ZlcmhlYWQgLyAxMDApOworCUF2Z2ZpbGxSYXRlID0gKlNyY0FjdGl2ZURyYWluUmF0ZSAqICgxICsgWEZDRmlsbEJXT3ZlcmhlYWQgLyAxMDApOworCSpUc2x2Q2hrID0gWEZDU2x2Q2h1bmtTaXplIC8gQXZnZmlsbFJhdGU7CisJZG1sX3ByaW50KAorCQkJIkRNTDo6Q2FsY3VsYXRlUmVtb3RlU3VyZmFjZUZsaXBEZWxheTogU3JjQWN0aXZlRHJhaW5SYXRlOiAlZlxuIiwKKwkJCSpTcmNBY3RpdmVEcmFpblJhdGUpOworCWRtbF9wcmludCgiRE1MOjpDYWxjdWxhdGVSZW1vdGVTdXJmYWNlRmxpcERlbGF5OiBUU2x2U2V0dXA6ICVmXG4iLCBUU2x2U2V0dXApOworCWRtbF9wcmludCgiRE1MOjpDYWxjdWxhdGVSZW1vdGVTdXJmYWNlRmxpcERlbGF5OiBUSW5pdFhGaWxsOiAlZlxuIiwgKlRJbml0WEZpbGwpOworCWRtbF9wcmludCgiRE1MOjpDYWxjdWxhdGVSZW1vdGVTdXJmYWNlRmxpcERlbGF5OiBBdmdmaWxsUmF0ZTogJWZcbiIsIEF2Z2ZpbGxSYXRlKTsKKwlkbWxfcHJpbnQoIkRNTDo6Q2FsY3VsYXRlUmVtb3RlU3VyZmFjZUZsaXBEZWxheTogVHNsdkNoazogJWZcbiIsICpUc2x2Q2hrKTsKKwlyZXN1bHQgPSAyICogWEZDQnVzVHJhbnNwb3J0VGltZSArIFRTbHZTZXR1cCArIFRDYWxjICsgVFdhaXQgKyAqVHNsdkNoayArICpUSW5pdFhGaWxsOyAvLyBUT0RPOiBUaGlzIGRvZXNuJ3Qgc2VlbSB0byBtYXRjaCBwcm9ncmFtbWluZyBndWlkZQorCWRtbF9wcmludCgiRE1MOjpDYWxjdWxhdGVSZW1vdGVTdXJmYWNlRmxpcERlbGF5OiBSZW1vdGVTdXJmYWNlRmxpcERlbGF5OiAlZlxuIiwgcmVzdWx0KTsKKwlyZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgZG91YmxlIENhbGN1bGF0ZVdyaXRlQmFja0RlbGF5KAorCQllbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3MgV3JpdGViYWNrUGl4ZWxGb3JtYXQsCisJCWRvdWJsZSBXcml0ZWJhY2tIUmF0aW8sCisJCWRvdWJsZSBXcml0ZWJhY2tWUmF0aW8sCisJCXVuc2lnbmVkIGludCBXcml0ZWJhY2tMdW1hSFRhcHMsCisJCXVuc2lnbmVkIGludCBXcml0ZWJhY2tMdW1hVlRhcHMsCisJCXVuc2lnbmVkIGludCBXcml0ZWJhY2tDaHJvbWFIVGFwcywKKwkJdW5zaWduZWQgaW50IFdyaXRlYmFja0Nocm9tYVZUYXBzLAorCQl1bnNpZ25lZCBpbnQgV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aCkKK3sKKwlkb3VibGUgQ2FsY3VsYXRlV3JpdGVCYWNrRGVsYXkgPQorCQkJZG1sX21heCgKKwkJCQkJZG1sX2NlaWwoV3JpdGViYWNrTHVtYUhUYXBzIC8gNC4wLCAxKSAvIFdyaXRlYmFja0hSYXRpbywKKwkJCQkJV3JpdGViYWNrTHVtYVZUYXBzICogZG1sX2NlaWwoMS4wIC8gV3JpdGViYWNrVlJhdGlvLCAxKQorCQkJCQkJCSogZG1sX2NlaWwoCisJCQkJCQkJCQlXcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoCisJCQkJCQkJCQkJCS8gNC4wLAorCQkJCQkJCQkJMSkKKwkJCQkJCQkrIGRtbF9jZWlsKDEuMCAvIFdyaXRlYmFja1ZSYXRpbywgMSkKKwkJCQkJCQkJCSogKGRtbF9jZWlsKAorCQkJCQkJCQkJCQlXcml0ZWJhY2tMdW1hVlRhcHMKKwkJCQkJCQkJCQkJCQkvIDQuMCwKKwkJCQkJCQkJCQkJMSkgKyA0KSk7CisKKwlpZiAoV3JpdGViYWNrUGl4ZWxGb3JtYXQgIT0gZG1fNDQ0XzMyKSB7CisJCUNhbGN1bGF0ZVdyaXRlQmFja0RlbGF5ID0KKwkJCQlkbWxfbWF4KAorCQkJCQkJQ2FsY3VsYXRlV3JpdGVCYWNrRGVsYXksCisJCQkJCQlkbWxfbWF4KAorCQkJCQkJCQlkbWxfY2VpbCgKKwkJCQkJCQkJCQlXcml0ZWJhY2tDaHJvbWFIVGFwcworCQkJCQkJCQkJCQkJLyAyLjAsCisJCQkJCQkJCQkJMSkKKwkJCQkJCQkJCQkvICgyCisJCQkJCQkJCQkJCQkqIFdyaXRlYmFja0hSYXRpbyksCisJCQkJCQkJCVdyaXRlYmFja0Nocm9tYVZUYXBzCisJCQkJCQkJCQkJKiBkbWxfY2VpbCgKKwkJCQkJCQkJCQkJCTEKKwkJCQkJCQkJCQkJCQkJLyAoMgorCQkJCQkJCQkJCQkJCQkJCSogV3JpdGViYWNrVlJhdGlvKSwKKwkJCQkJCQkJCQkJCTEpCisJCQkJCQkJCQkJKiBkbWxfY2VpbCgKKwkJCQkJCQkJCQkJCVdyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGgKKwkJCQkJCQkJCQkJCQkJLyAyLjAKKwkJCQkJCQkJCQkJCQkJLyAyLjAsCisJCQkJCQkJCQkJCQkxKQorCQkJCQkJCQkJCSsgZG1sX2NlaWwoCisJCQkJCQkJCQkJCQkxCisJCQkJCQkJCQkJCQkJCS8gKDIKKwkJCQkJCQkJCQkJCQkJCQkqIFdyaXRlYmFja1ZSYXRpbyksCisJCQkJCQkJCQkJCQkxKQorCQkJCQkJCQkJCQkJKiAoZG1sX2NlaWwoCisJCQkJCQkJCQkJCQkJCVdyaXRlYmFja0Nocm9tYVZUYXBzCisJCQkJCQkJCQkJCQkJCQkJLyA0LjAsCisJCQkJCQkJCQkJCQkJCTEpCisJCQkJCQkJCQkJCQkJCSsgNCkpKTsKKwl9CisJcmV0dXJuIENhbGN1bGF0ZVdyaXRlQmFja0RlbGF5OworfQorCitzdGF0aWMgdm9pZCBDYWxjdWxhdGVBY3RpdmVSb3dCYW5kd2lkdGgoCisJCWJvb2wgR1BVVk1FbmFibGUsCisJCWVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKKwkJZG91YmxlIFZSYXRpbywKKwkJYm9vbCBEQ0NFbmFibGUsCisJCWRvdWJsZSBMaW5lVGltZSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlTHVtYSwKKwkJdW5zaWduZWQgaW50IE1ldGFSb3dCeXRlQ2hyb21hLAorCQl1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVpZ2h0X2x1bWEsCisJCXVuc2lnbmVkIGludCBtZXRhX3Jvd19oZWlnaHRfY2hyb21hLAorCQl1bnNpZ25lZCBpbnQgUGl4ZWxQVEVCeXRlc1BlclJvd0x1bWEsCisJCXVuc2lnbmVkIGludCBQaXhlbFBURUJ5dGVzUGVyUm93Q2hyb21hLAorCQl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVpZ2h0X2x1bWEsCisJCXVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRfY2hyb21hLAorCQlkb3VibGUgKm1ldGFfcm93X2J3LAorCQlkb3VibGUgKmRwdGVfcm93X2J3KQoreworCWlmIChEQ0NFbmFibGUgIT0gdHJ1ZSkgeworCQkqbWV0YV9yb3dfYncgPSAwOworCX0gZWxzZSBpZiAoU291cmNlUGl4ZWxGb3JtYXQgPT0gZG1fNDIwXzggfHwgU291cmNlUGl4ZWxGb3JtYXQgPT0gZG1fNDIwXzEwKSB7CisJCSptZXRhX3Jvd19idyA9IFZSYXRpbyAqIE1ldGFSb3dCeXRlTHVtYSAvIChtZXRhX3Jvd19oZWlnaHRfbHVtYSAqIExpbmVUaW1lKQorCQkJCSsgVlJhdGlvIC8gMiAqIE1ldGFSb3dCeXRlQ2hyb21hCisJCQkJCQkvIChtZXRhX3Jvd19oZWlnaHRfY2hyb21hICogTGluZVRpbWUpOworCX0gZWxzZSB7CisJCSptZXRhX3Jvd19idyA9IFZSYXRpbyAqIE1ldGFSb3dCeXRlTHVtYSAvIChtZXRhX3Jvd19oZWlnaHRfbHVtYSAqIExpbmVUaW1lKTsKKwl9CisKKwlpZiAoR1BVVk1FbmFibGUgIT0gdHJ1ZSkgeworCQkqZHB0ZV9yb3dfYncgPSAwOworCX0gZWxzZSBpZiAoU291cmNlUGl4ZWxGb3JtYXQgPT0gZG1fNDIwXzggfHwgU291cmNlUGl4ZWxGb3JtYXQgPT0gZG1fNDIwXzEwKSB7CisJCSpkcHRlX3Jvd19idyA9IFZSYXRpbyAqIFBpeGVsUFRFQnl0ZXNQZXJSb3dMdW1hIC8gKGRwdGVfcm93X2hlaWdodF9sdW1hICogTGluZVRpbWUpCisJCQkJKyBWUmF0aW8gLyAyICogUGl4ZWxQVEVCeXRlc1BlclJvd0Nocm9tYQorCQkJCQkJLyAoZHB0ZV9yb3dfaGVpZ2h0X2Nocm9tYSAqIExpbmVUaW1lKTsKKwl9IGVsc2UgeworCQkqZHB0ZV9yb3dfYncgPSBWUmF0aW8gKiBQaXhlbFBURUJ5dGVzUGVyUm93THVtYSAvIChkcHRlX3Jvd19oZWlnaHRfbHVtYSAqIExpbmVUaW1lKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIENhbGN1bGF0ZUZsaXBTY2hlZHVsZSgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lQaXhlbE1peGVkV2l0aFZNRGF0YSwKKwkJZG91YmxlIFBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5Vk1EYXRhT25seSwKKwkJZG91YmxlIFVyZ2VudEV4dHJhTGF0ZW5jeSwKKwkJZG91YmxlIFVyZ2VudExhdGVuY3ksCisJCXVuc2lnbmVkIGludCBHUFVWTU1heFBhZ2VUYWJsZUxldmVscywKKwkJYm9vbCBIb3N0Vk1FbmFibGUsCisJCXVuc2lnbmVkIGludCBIb3N0Vk1NYXhQYWdlVGFibGVMZXZlbHMsCisJCXVuc2lnbmVkIGludCBIb3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHMsCisJCWJvb2wgR1BVVk1FbmFibGUsCisJCWRvdWJsZSBQREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZSwKKwkJZG91YmxlIE1ldGFSb3dCeXRlcywKKwkJZG91YmxlIERQVEVCeXRlc1BlclJvdywKKwkJZG91YmxlIEJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAsCisJCXVuc2lnbmVkIGludCBUb3RJbW1lZGlhdGVGbGlwQnl0ZXMsCisJCWVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKKwkJZG91YmxlIExpbmVUaW1lLAorCQlkb3VibGUgVlJhdGlvLAorCQlkb3VibGUgVG5vX2J3LAorCQlib29sIERDQ0VuYWJsZSwKKwkJdW5zaWduZWQgaW50IGRwdGVfcm93X2hlaWdodCwKKwkJdW5zaWduZWQgaW50IG1ldGFfcm93X2hlaWdodCwKKwkJdW5zaWduZWQgaW50IGRwdGVfcm93X2hlaWdodF9jaHJvbWEsCisJCXVuc2lnbmVkIGludCBtZXRhX3Jvd19oZWlnaHRfY2hyb21hLAorCQlkb3VibGUgKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluSW1tZWRpYXRlRmxpcCwKKwkJZG91YmxlICpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5JbW1lZGlhdGVGbGlwLAorCQlkb3VibGUgKmZpbmFsX2ZsaXBfYncsCisJCWJvb2wgKkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWRGb3JQaXBlKQoreworCWRvdWJsZSBtaW5fcm93X3RpbWUgPSAwLjA7CisJdW5zaWduZWQgaW50IEhvc3RWTUR5bmFtaWNMZXZlbHM7CisJZG91YmxlIFRpbWVGb3JGZXRjaGluZ01ldGFQVEVJbW1lZGlhdGVGbGlwOworCWRvdWJsZSBUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFua0ltbWVkaWF0ZUZsaXA7CisJZG91YmxlIEltbWVkaWF0ZUZsaXBCVzsKKwlkb3VibGUgSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yOworCisJaWYgKEdQVVZNRW5hYmxlID09IHRydWUgJiYgSG9zdFZNRW5hYmxlID09IHRydWUpIHsKKwkJSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yID0KKwkJCQlQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhCisJCQkJCQkvIFBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5Vk1EYXRhT25seTsKKwkJSG9zdFZNRHluYW1pY0xldmVscyA9IEhvc3RWTU1heFBhZ2VUYWJsZUxldmVscyAtIEhvc3RWTUNhY2hlZFBhZ2VUYWJsZUxldmVsczsKKwl9IGVsc2UgeworCQlIb3N0Vk1JbmVmZmljaWVuY3lGYWN0b3IgPSAxOworCQlIb3N0Vk1EeW5hbWljTGV2ZWxzID0gMDsKKwl9CisKKwlJbW1lZGlhdGVGbGlwQlcgPSAoUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWUgKyBNZXRhUm93Qnl0ZXMgKyBEUFRFQnl0ZXNQZXJSb3cpCisJCQkqIEJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAgLyBUb3RJbW1lZGlhdGVGbGlwQnl0ZXM7CisKKwlpZiAoR1BVVk1FbmFibGUgPT0gdHJ1ZSkgeworCQlUaW1lRm9yRmV0Y2hpbmdNZXRhUFRFSW1tZWRpYXRlRmxpcCA9IGRtbF9tYXgzKAorCQkJVG5vX2J3ICsgUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWUgKiBIb3N0Vk1JbmVmZmljaWVuY3lGYWN0b3IgLyBJbW1lZGlhdGVGbGlwQlcsCisJCQlVcmdlbnRFeHRyYUxhdGVuY3kgKyBVcmdlbnRMYXRlbmN5ICogKEdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzICogKEhvc3RWTUR5bmFtaWNMZXZlbHMgKyAxKSAtIDEpLAorCQkJTGluZVRpbWUgLyA0LjApOworCX0gZWxzZSB7CisJCVRpbWVGb3JGZXRjaGluZ01ldGFQVEVJbW1lZGlhdGVGbGlwID0gMDsKKwl9CisKKwkqRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5JbW1lZGlhdGVGbGlwID0gZG1sX2NlaWwoNC4wICogKFRpbWVGb3JGZXRjaGluZ01ldGFQVEVJbW1lZGlhdGVGbGlwIC8gTGluZVRpbWUpLCAxKSAvIDQuMDsKKwlpZiAoKEdQVVZNRW5hYmxlID09IHRydWUgfHwgRENDRW5hYmxlID09IHRydWUpKSB7CisJCVRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rSW1tZWRpYXRlRmxpcCA9IGRtbF9tYXgzKChNZXRhUm93Qnl0ZXMgKyBEUFRFQnl0ZXNQZXJSb3cpICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yIC8gSW1tZWRpYXRlRmxpcEJXLCBVcmdlbnRMYXRlbmN5ICogKEhvc3RWTUR5bmFtaWNMZXZlbHMgKyAxKSwgTGluZVRpbWUgLyA0KTsKKwl9IGVsc2UgeworCQlUaW1lRm9yRmV0Y2hpbmdSb3dJblZCbGFua0ltbWVkaWF0ZUZsaXAgPSAwOworCX0KKworCSpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5JbW1lZGlhdGVGbGlwID0gZG1sX2NlaWwoNC4wICogKFRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rSW1tZWRpYXRlRmxpcCAvIExpbmVUaW1lKSwgMSkgLyA0LjA7CisJKmZpbmFsX2ZsaXBfYncgPSBkbWxfbWF4KFBERUFuZE1ldGFQVEVCeXRlc1BlckZyYW1lICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yIC8gKCpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JbkltbWVkaWF0ZUZsaXAgKiBMaW5lVGltZSksIChNZXRhUm93Qnl0ZXMgKyBEUFRFQnl0ZXNQZXJSb3cpICogSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yIC8gKCpEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5JbW1lZGlhdGVGbGlwICogTGluZVRpbWUpKTsKKwlpZiAoU291cmNlUGl4ZWxGb3JtYXQgPT0gZG1fNDIwXzggfHwgU291cmNlUGl4ZWxGb3JtYXQgPT0gZG1fNDIwXzEwKSB7CisJCWlmIChHUFVWTUVuYWJsZSA9PSB0cnVlICYmIERDQ0VuYWJsZSAhPSB0cnVlKSB7CisJCQltaW5fcm93X3RpbWUgPSBkbWxfbWluKAorCQkJCQlkcHRlX3Jvd19oZWlnaHQgKiBMaW5lVGltZSAvIFZSYXRpbywKKwkJCQkJZHB0ZV9yb3dfaGVpZ2h0X2Nocm9tYSAqIExpbmVUaW1lIC8gKFZSYXRpbyAvIDIpKTsKKwkJfSBlbHNlIGlmIChHUFVWTUVuYWJsZSAhPSB0cnVlICYmIERDQ0VuYWJsZSA9PSB0cnVlKSB7CisJCQltaW5fcm93X3RpbWUgPSBkbWxfbWluKAorCQkJCQltZXRhX3Jvd19oZWlnaHQgKiBMaW5lVGltZSAvIFZSYXRpbywKKwkJCQkJbWV0YV9yb3dfaGVpZ2h0X2Nocm9tYSAqIExpbmVUaW1lIC8gKFZSYXRpbyAvIDIpKTsKKwkJfSBlbHNlIHsKKwkJCW1pbl9yb3dfdGltZSA9IGRtbF9taW40KAorCQkJCQlkcHRlX3Jvd19oZWlnaHQgKiBMaW5lVGltZSAvIFZSYXRpbywKKwkJCQkJbWV0YV9yb3dfaGVpZ2h0ICogTGluZVRpbWUgLyBWUmF0aW8sCisJCQkJCWRwdGVfcm93X2hlaWdodF9jaHJvbWEgKiBMaW5lVGltZSAvIChWUmF0aW8gLyAyKSwKKwkJCQkJbWV0YV9yb3dfaGVpZ2h0X2Nocm9tYSAqIExpbmVUaW1lIC8gKFZSYXRpbyAvIDIpKTsKKwkJfQorCX0gZWxzZSB7CisJCWlmIChHUFVWTUVuYWJsZSA9PSB0cnVlICYmIERDQ0VuYWJsZSAhPSB0cnVlKSB7CisJCQltaW5fcm93X3RpbWUgPSBkcHRlX3Jvd19oZWlnaHQgKiBMaW5lVGltZSAvIFZSYXRpbzsKKwkJfSBlbHNlIGlmIChHUFVWTUVuYWJsZSAhPSB0cnVlICYmIERDQ0VuYWJsZSA9PSB0cnVlKSB7CisJCQltaW5fcm93X3RpbWUgPSBtZXRhX3Jvd19oZWlnaHQgKiBMaW5lVGltZSAvIFZSYXRpbzsKKwkJfSBlbHNlIHsKKwkJCW1pbl9yb3dfdGltZSA9IGRtbF9taW4oCisJCQkJCWRwdGVfcm93X2hlaWdodCAqIExpbmVUaW1lIC8gVlJhdGlvLAorCQkJCQltZXRhX3Jvd19oZWlnaHQgKiBMaW5lVGltZSAvIFZSYXRpbyk7CisJCX0KKwl9CisKKwlpZiAoKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluSW1tZWRpYXRlRmxpcCA+PSAzMgorCQkJfHwgKkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJbkltbWVkaWF0ZUZsaXAgPj0gMTYKKwkJCXx8IFRpbWVGb3JGZXRjaGluZ01ldGFQVEVJbW1lZGlhdGVGbGlwICsgMiAqIFRpbWVGb3JGZXRjaGluZ1Jvd0luVkJsYW5rSW1tZWRpYXRlRmxpcCA+IG1pbl9yb3dfdGltZSkgeworCQkqSW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclBpcGUgPSBmYWxzZTsKKwl9IGVsc2UgeworCQkqSW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclBpcGUgPSB0cnVlOworCX0KK30KKworc3RhdGljIHVuc2lnbmVkIGludCBUcnVuY1RvVmFsaWRCUFAoCisJCWRvdWJsZSBEZWNpbWFsQlBQLAorCQlkb3VibGUgRGVzaXJlZEJQUCwKKwkJYm9vbCBEU0NFbmFibGVkLAorCQllbnVtIG91dHB1dF9lbmNvZGVyX2NsYXNzIE91dHB1dCwKKwkJZW51bSBvdXRwdXRfZm9ybWF0X2NsYXNzIEZvcm1hdCwKKwkJdW5zaWduZWQgaW50IERTQ0lucHV0Qml0UGVyQ29tcG9uZW50KQoreworCWlmIChPdXRwdXQgPT0gZG1faGRtaSkgeworCQlpZiAoRm9ybWF0ID09IGRtXzQyMCkgeworCQkJaWYgKERlY2ltYWxCUFAgPj0gMTggJiYgKERlc2lyZWRCUFAgPT0gMCB8fCBEZXNpcmVkQlBQID09IDE4KSkKKwkJCQlyZXR1cm4gMTg7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDE1ICYmIChEZXNpcmVkQlBQID09IDAgfHwgRGVzaXJlZEJQUCA9PSAxNSkpCisJCQkJcmV0dXJuIDE1OworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAxMiAmJiAoRGVzaXJlZEJQUCA9PSAwIHx8IERlc2lyZWRCUFAgPT0gMTIpKQorCQkJCXJldHVybiAxMjsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gQlBQX0lOVkFMSUQ7CisJCX0gZWxzZSBpZiAoRm9ybWF0ID09IGRtXzQ0NCkgeworCQkJaWYgKERlY2ltYWxCUFAgPj0gMzYgJiYgKERlc2lyZWRCUFAgPT0gMCB8fCBEZXNpcmVkQlBQID09IDM2KSkKKwkJCQlyZXR1cm4gMzY7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDMwICYmIChEZXNpcmVkQlBQID09IDAgfHwgRGVzaXJlZEJQUCA9PSAzMCkpCisJCQkJcmV0dXJuIDMwOworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAyNCAmJiAoRGVzaXJlZEJQUCA9PSAwIHx8IERlc2lyZWRCUFAgPT0gMjQpKQorCQkJCXJldHVybiAyNDsKKwkJCWVsc2UgaWYgKERlY2ltYWxCUFAgPj0gMTggJiYgKERlc2lyZWRCUFAgPT0gMCB8fCBEZXNpcmVkQlBQID09IDE4KSkKKwkJCQlyZXR1cm4gMTg7CisJCQllbHNlCisJCQkJcmV0dXJuIEJQUF9JTlZBTElEOworCQl9IGVsc2UgeworCQkJaWYgKERlY2ltYWxCUFAgLyAxLjUgPj0gMjQgJiYgKERlc2lyZWRCUFAgPT0gMCB8fCBEZXNpcmVkQlBQID09IDI0KSkKKwkJCQlyZXR1cm4gMjQ7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQIC8gMS41ID49IDIwICYmIChEZXNpcmVkQlBQID09IDAgfHwgRGVzaXJlZEJQUCA9PSAyMCkpCisJCQkJcmV0dXJuIDIwOworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCAvIDEuNSA+PSAxNiAmJiAoRGVzaXJlZEJQUCA9PSAwIHx8IERlc2lyZWRCUFAgPT0gMTYpKQorCQkJCXJldHVybiAxNjsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gQlBQX0lOVkFMSUQ7CisJCX0KKwl9IGVsc2UgeworCQlpZiAoRFNDRW5hYmxlZCkgeworCQkJaWYgKEZvcm1hdCA9PSBkbV80MjApIHsKKwkJCQlpZiAoRGVzaXJlZEJQUCA9PSAwKSB7CisJCQkJCWlmIChEZWNpbWFsQlBQIDwgNikKKwkJCQkJCXJldHVybiBCUFBfSU5WQUxJRDsKKwkJCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAxLjUgKiBEU0NJbnB1dEJpdFBlckNvbXBvbmVudCAtIDEuMCAvIDE2LjApCisJCQkJCQlyZXR1cm4gMS41ICogRFNDSW5wdXRCaXRQZXJDb21wb25lbnQgLSAxLjAgLyAxNi4wOworCQkJCQllbHNlCisJCQkJCQlyZXR1cm4gZG1sX2Zsb29yKDE2ICogRGVjaW1hbEJQUCwgMSkgLyAxNi4wOworCQkJCX0gZWxzZSB7CisJCQkJCWlmIChEZWNpbWFsQlBQIDwgNgorCQkJCQkJCXx8IERlc2lyZWRCUFAgPCA2CisJCQkJCQkJfHwgRGVzaXJlZEJQUCA+IDEuNSAqIERTQ0lucHV0Qml0UGVyQ29tcG9uZW50IC0gMS4wIC8gMTYuMAorCQkJCQkJCXx8IERlY2ltYWxCUFAgPCBEZXNpcmVkQlBQKSB7CisJCQkJCQlyZXR1cm4gQlBQX0lOVkFMSUQ7CisJCQkJCX0gZWxzZSB7CisJCQkJCQlyZXR1cm4gRGVzaXJlZEJQUDsKKwkJCQkJfQorCQkJCX0KKwkJCX0gZWxzZSBpZiAoRm9ybWF0ID09IGRtX240MjIpIHsKKwkJCQlpZiAoRGVzaXJlZEJQUCA9PSAwKSB7CisJCQkJCWlmIChEZWNpbWFsQlBQIDwgNykKKwkJCQkJCXJldHVybiBCUFBfSU5WQUxJRDsKKwkJCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAyICogRFNDSW5wdXRCaXRQZXJDb21wb25lbnQgLSAxLjAgLyAxNi4wKQorCQkJCQkJcmV0dXJuIDIgKiBEU0NJbnB1dEJpdFBlckNvbXBvbmVudCAtIDEuMCAvIDE2LjA7CisJCQkJCWVsc2UKKwkJCQkJCXJldHVybiBkbWxfZmxvb3IoMTYgKiBEZWNpbWFsQlBQLCAxKSAvIDE2LjA7CisJCQkJfSBlbHNlIHsKKwkJCQkJaWYgKERlY2ltYWxCUFAgPCA3CisJCQkJCQkJfHwgRGVzaXJlZEJQUCA8IDcKKwkJCQkJCQl8fCBEZXNpcmVkQlBQID4gMiAqIERTQ0lucHV0Qml0UGVyQ29tcG9uZW50IC0gMS4wIC8gMTYuMAorCQkJCQkJCXx8IERlY2ltYWxCUFAgPCBEZXNpcmVkQlBQKSB7CisJCQkJCQlyZXR1cm4gQlBQX0lOVkFMSUQ7CisJCQkJCX0gZWxzZSB7CisJCQkJCQlyZXR1cm4gRGVzaXJlZEJQUDsKKwkJCQkJfQorCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJaWYgKERlc2lyZWRCUFAgPT0gMCkgeworCQkJCQlpZiAoRGVjaW1hbEJQUCA8IDgpCisJCQkJCQlyZXR1cm4gQlBQX0lOVkFMSUQ7CisJCQkJCWVsc2UgaWYgKERlY2ltYWxCUFAgPj0gMyAqIERTQ0lucHV0Qml0UGVyQ29tcG9uZW50IC0gMS4wIC8gMTYuMCkKKwkJCQkJCXJldHVybiAzICogRFNDSW5wdXRCaXRQZXJDb21wb25lbnQgLSAxLjAgLyAxNi4wOworCQkJCQllbHNlCisJCQkJCQlyZXR1cm4gZG1sX2Zsb29yKDE2ICogRGVjaW1hbEJQUCwgMSkgLyAxNi4wOworCQkJCX0gZWxzZSB7CisJCQkJCWlmIChEZWNpbWFsQlBQIDwgOAorCQkJCQkJCXx8IERlc2lyZWRCUFAgPCA4CisJCQkJCQkJfHwgRGVzaXJlZEJQUCA+IDMgKiBEU0NJbnB1dEJpdFBlckNvbXBvbmVudCAtIDEuMCAvIDE2LjAKKwkJCQkJCQl8fCBEZWNpbWFsQlBQIDwgRGVzaXJlZEJQUCkgeworCQkJCQkJcmV0dXJuIEJQUF9JTlZBTElEOworCQkJCQl9IGVsc2UgeworCQkJCQkJcmV0dXJuIERlc2lyZWRCUFA7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCX0gZWxzZSBpZiAoRm9ybWF0ID09IGRtXzQyMCkgeworCQkJaWYgKERlY2ltYWxCUFAgPj0gMTggJiYgKERlc2lyZWRCUFAgPT0gMCB8fCBEZXNpcmVkQlBQID09IDE4KSkKKwkJCQlyZXR1cm4gMTg7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDE1ICYmIChEZXNpcmVkQlBQID09IDAgfHwgRGVzaXJlZEJQUCA9PSAxNSkpCisJCQkJcmV0dXJuIDE1OworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAxMiAmJiAoRGVzaXJlZEJQUCA9PSAwIHx8IERlc2lyZWRCUFAgPT0gMTIpKQorCQkJCXJldHVybiAxMjsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gQlBQX0lOVkFMSUQ7CisJCX0gZWxzZSBpZiAoRm9ybWF0ID09IGRtX3M0MjIgfHwgRm9ybWF0ID09IGRtX240MjIpIHsKKwkJCWlmIChEZWNpbWFsQlBQID49IDI0ICYmIChEZXNpcmVkQlBQID09IDAgfHwgRGVzaXJlZEJQUCA9PSAyNCkpCisJCQkJcmV0dXJuIDI0OworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAyMCAmJiAoRGVzaXJlZEJQUCA9PSAwIHx8IERlc2lyZWRCUFAgPT0gMjApKQorCQkJCXJldHVybiAyMDsKKwkJCWVsc2UgaWYgKERlY2ltYWxCUFAgPj0gMTYgJiYgKERlc2lyZWRCUFAgPT0gMCB8fCBEZXNpcmVkQlBQID09IDE2KSkKKwkJCQlyZXR1cm4gMTY7CisJCQllbHNlCisJCQkJcmV0dXJuIEJQUF9JTlZBTElEOworCQl9IGVsc2UgeworCQkJaWYgKERlY2ltYWxCUFAgPj0gMzYgJiYgKERlc2lyZWRCUFAgPT0gMCB8fCBEZXNpcmVkQlBQID09IDM2KSkKKwkJCQlyZXR1cm4gMzY7CisJCQllbHNlIGlmIChEZWNpbWFsQlBQID49IDMwICYmIChEZXNpcmVkQlBQID09IDAgfHwgRGVzaXJlZEJQUCA9PSAzMCkpCisJCQkJcmV0dXJuIDMwOworCQkJZWxzZSBpZiAoRGVjaW1hbEJQUCA+PSAyNCAmJiAoRGVzaXJlZEJQUCA9PSAwIHx8IERlc2lyZWRCUFAgPT0gMjQpKQorCQkJCXJldHVybiAyNDsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gQlBQX0lOVkFMSUQ7CisJCX0KKwl9Cit9CisKK3ZvaWQgZG1sMjFfTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25maWd1cmF0aW9uRnVsbChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpCit7CisJc3RydWN0IHZiYV92YXJzX3N0ICpsb2NhbHMgPSAmbW9kZV9saWItPnZiYTsKKworCWludCBpOworCXVuc2lnbmVkIGludCBqLCBrLCBtOworCisJLypNT0RFIFNVUFBPUlQsIFZPTFRBR0UgU1RBVEUgQU5EIFNPQyBDT05GSUdVUkFUSU9OKi8KKworCS8qU2NhbGUgUmF0aW8sIHRhcHMgU3VwcG9ydCBDaGVjayovCisKKwltb2RlX2xpYi0+dmJhLlNjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydCA9IHRydWU7CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLlNjYWxlckVuYWJsZWRba10gPT0gZmFsc2UKKwkJCQkmJiAoKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzY0CisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8zMgorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfMTYKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fbW9ub18xNgorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV9tb25vXzgpCisJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSAhPSAxLjAKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEuaHRhcHNba10gIT0gMS4wCisJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSAhPSAxLjAKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEudnRhcHNba10gIT0gMS4wKSkgeworCQkJbW9kZV9saWItPnZiYS5TY2FsZVJhdGlvQW5kVGFwc1N1cHBvcnQgPSBmYWxzZTsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLnZ0YXBzW2tdIDwgMS4wIHx8IG1vZGVfbGliLT52YmEudnRhcHNba10gPiA4LjAKKwkJCQl8fCBtb2RlX2xpYi0+dmJhLmh0YXBzW2tdIDwgMS4wIHx8IG1vZGVfbGliLT52YmEuaHRhcHNba10gPiA4LjAKKwkJCQl8fCAobW9kZV9saWItPnZiYS5odGFwc1trXSA+IDEuMAorCQkJCQkJJiYgKG1vZGVfbGliLT52YmEuaHRhcHNba10gJSAyKSA9PSAxKQorCQkJCXx8IG1vZGVfbGliLT52YmEuSFJhdGlvW2tdID4gbW9kZV9saWItPnZiYS5NYXhIU0NMUmF0aW8KKwkJCQl8fCBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSA+IG1vZGVfbGliLT52YmEuTWF4VlNDTFJhdGlvCisJCQkJfHwgbW9kZV9saWItPnZiYS5IUmF0aW9ba10gPiBtb2RlX2xpYi0+dmJhLmh0YXBzW2tdCisJCQkJfHwgbW9kZV9saWItPnZiYS5WUmF0aW9ba10gPiBtb2RlX2xpYi0+dmJhLnZ0YXBzW2tdCisJCQkJfHwgKG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzY0CisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8zMgorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfMTYKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fbW9ub18xNgorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV9tb25vXzgKKwkJCQkJCSYmIChtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSAvIDIuMAorCQkJCQkJCQk+IG1vZGVfbGliLT52YmEuSFRBUHNDaHJvbWFba10KKwkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5WUmF0aW9ba10gLyAyLjAKKwkJCQkJCQkJCQk+IG1vZGVfbGliLT52YmEuVlRBUHNDaHJvbWFba10pKSkgeworCQkJbW9kZV9saWItPnZiYS5TY2FsZVJhdGlvQW5kVGFwc1N1cHBvcnQgPSBmYWxzZTsKKwkJfQorCX0KKwkvKlNvdXJjZSBGb3JtYXQsIFBpeGVsIEZvcm1hdCBhbmQgU2NhbiBTdXBwb3J0IENoZWNrKi8KKworCW1vZGVfbGliLT52YmEuU291cmNlRm9ybWF0UGl4ZWxBbmRTY2FuU3VwcG9ydCA9IHRydWU7CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmICgobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X2xpbmVhcgorCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSAhPSBkbV9ob3J6KQorCQkJCXx8ICgobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3XzRrYl9kCisJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfNGtiX2RfeAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3XzY0a2JfZAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3XzY0a2JfZF90CisJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfNjRrYl9kX3gKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSA9PSBkbV9zd192YXJfZAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X3Zhcl9kX3gpCisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF82NCkKKwkJCQl8fCAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3XzY0a2Jfcl94CisJCQkJCQkmJiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV9tb25vXzgKKwkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXQorCQkJCQkJCQkJCT09IGRtXzQyMF84CisJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10KKwkJCQkJCQkJCQk9PSBkbV80MjBfMTApKQorCQkJCXx8ICgoKG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSA9PSBkbV9zd19nZng3XzJkX3RoaW5fZ2wKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQk9PSBkbV9zd19nZng3XzJkX3RoaW5fbHZwKQorCQkJCQkJJiYgISgobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXQorCQkJCQkJCQk9PSBkbV80NDRfNjQKKwkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXQorCQkJCQkJCQkJCT09IGRtXzQ0NF8zMikKKwkJCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdCisJCQkJCQkJCQkJPT0gZG1faG9yegorCQkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlN1cHBvcnRHRlg3Q29tcGF0aWJsZVRpbGluZ0luMzJicHBBbmQ2NGJwcAorCQkJCQkJCQkJCT09IHRydWUKKwkJCQkJCQkJJiYgbW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10KKwkJCQkJCQkJCQk9PSBmYWxzZSkpCisJCQkJCQl8fCAobW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10gPT0gdHJ1ZQorCQkJCQkJCQkmJiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQkJPT0gZG1fc3dfbGluZWFyCisJCQkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXQorCQkJCQkJCQkJCQkJPT0gZG1fNDIwXzgKKwkJCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdCisJCQkJCQkJCQkJCQk9PSBkbV80MjBfMTApKSkpIHsKKwkJCW1vZGVfbGliLT52YmEuU291cmNlRm9ybWF0UGl4ZWxBbmRTY2FuU3VwcG9ydCA9IGZhbHNlOworCQl9CisJfQorCS8qQmFuZHdpZHRoIFN1cHBvcnQgQ2hlY2sqLworCisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF82NCkgeworCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10gPSA4LjA7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSA9IDAuMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8zMikgeworCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10gPSA0LjA7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSA9IDAuMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8xNgorCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fbW9ub18xNikgeworCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10gPSAyLjA7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSA9IDAuMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtX21vbm9fOCkgeworCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10gPSAxLjA7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSA9IDAuMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQyMF84KSB7CisJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSA9IDEuMDsKKwkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdID0gMi4wOworCQl9IGVsc2UgeworCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10gPSA0LjAgLyAzOworCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVENba10gPSA4LjAgLyAzOworCQl9CisJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikgeworCQkJbG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUFtrXSA9IG1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFtrXTsKKwkJfSBlbHNlIHsKKwkJCWxvY2Fscy0+U3dhdGhXaWR0aFlTaW5nbGVEUFBba10gPSBtb2RlX2xpYi0+dmJhLlZpZXdwb3J0SGVpZ2h0W2tdOworCQl9CisJfQorCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlsb2NhbHMtPlJlYWRCYW5kd2lkdGhMdW1hW2tdID0gbG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUFtrXSAqIGRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdLCAxLjApCisJCQkJLyAobW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pICogbW9kZV9saWItPnZiYS5WUmF0aW9ba107CisJCWxvY2Fscy0+UmVhZEJhbmR3aWR0aENocm9tYVtrXSA9IGxvY2Fscy0+U3dhdGhXaWR0aFlTaW5nbGVEUFBba10gLyAyICogZG1sX2NlaWwobG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVENba10sIDIuMCkKKwkJCQkvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkgKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXSAvIDIuMDsKKwkJbG9jYWxzLT5SZWFkQmFuZHdpZHRoW2tdID0gbG9jYWxzLT5SZWFkQmFuZHdpZHRoTHVtYVtrXSArIGxvY2Fscy0+UmVhZEJhbmR3aWR0aENocm9tYVtrXTsKKwl9CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlCisJCQkJJiYgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfMzIpIHsKKwkJCWxvY2Fscy0+V3JpdGVCYW5kd2lkdGhba10gPSBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJKiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uSGVpZ2h0W2tdCisJCQkJCS8gKG1vZGVfbGliLT52YmEuV3JpdGViYWNrU291cmNlSGVpZ2h0W2tdCisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSAqIDQuMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlCisJCQkJJiYgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfMTApIHsKKwkJCWxvY2Fscy0+V3JpdGVCYW5kd2lkdGhba10gPSBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJKiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uSGVpZ2h0W2tdCisJCQkJCS8gKG1vZGVfbGliLT52YmEuV3JpdGViYWNrU291cmNlSGVpZ2h0W2tdCisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXQorCQkJCQkJCS8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSAqIDMuMDsKKwkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQlsb2NhbHMtPldyaXRlQmFuZHdpZHRoW2tdID0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW2tdCisJCQkJCSogbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbkhlaWdodFtrXQorCQkJCQkvIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1NvdXJjZUhlaWdodFtrXQorCQkJCQkJCSogbW9kZV9saWItPnZiYS5IVG90YWxba10KKwkJCQkJCQkvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkgKiAxLjU7CisJCX0gZWxzZSB7CisJCQlsb2NhbHMtPldyaXRlQmFuZHdpZHRoW2tdID0gMC4wOworCQl9CisJfQorCW1vZGVfbGliLT52YmEuRENDRW5hYmxlZEluQW55UGxhbmUgPSBmYWxzZTsKKwlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuRENDRW5hYmxlW2tdID09IHRydWUpIHsKKwkJCW1vZGVfbGliLT52YmEuRENDRW5hYmxlZEluQW55UGxhbmUgPSB0cnVlOworCQl9CisJfQorCWZvciAoaSA9IDA7IGkgPD0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaSsrKSB7CisJCWxvY2Fscy0+SWRlYWxTRFBQb3J0QmFuZHdpZHRoUGVyU3RhdGVbaV0gPSBkbWxfbWluMygKKwkJCQltb2RlX2xpYi0+dmJhLlJldHVybkJ1c1dpZHRoICogbW9kZV9saWItPnZiYS5EQ0ZDTEtQZXJTdGF0ZVtpXSwKKwkJCQltb2RlX2xpYi0+dmJhLkRSQU1TcGVlZFBlclN0YXRlW2ldICogbW9kZV9saWItPnZiYS5OdW1iZXJPZkNoYW5uZWxzCisJCQkJCQkqIG1vZGVfbGliLT52YmEuRFJBTUNoYW5uZWxXaWR0aCwKKwkJCQltb2RlX2xpYi0+dmJhLkZhYnJpY0Nsb2NrUGVyU3RhdGVbaV0KKwkJCQkJCSogbW9kZV9saWItPnZiYS5GYWJyaWNEYXRhcGF0aFRvRENORGF0YVJldHVybik7CisJCWlmIChtb2RlX2xpYi0+dmJhLkhvc3RWTUVuYWJsZSA9PSBmYWxzZSkgeworCQkJbG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW2ldID0gbG9jYWxzLT5JZGVhbFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZVtpXQorCQkJCQkqIG1vZGVfbGliLT52YmEuUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lQaXhlbERhdGFPbmx5IC8gMTAwLjA7CisJCX0gZWxzZSB7CisJCQlsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV0gPSBsb2NhbHMtPklkZWFsU0RQUG9ydEJhbmR3aWR0aFBlclN0YXRlW2ldCisJCQkJCSogbW9kZV9saWItPnZiYS5QZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhIC8gMTAwLjA7CisJCX0KKwl9CisJLypXcml0ZWJhY2sgTGF0ZW5jeSBzdXBwb3J0IGNoZWNrKi8KKworCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeVN1cHBvcnQgPSB0cnVlOworCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tFbmFibGVba10gPT0gdHJ1ZSkgeworCQkJaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzMyKSB7CisJCQkJaWYgKGxvY2Fscy0+V3JpdGVCYW5kd2lkdGhba10KKwkJCQkJCT4gKG1vZGVfbGliLT52YmEuV3JpdGViYWNrSW50ZXJmYWNlTHVtYUJ1ZmZlclNpemUKKwkJCQkJCQkJKyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0ludGVyZmFjZUNocm9tYUJ1ZmZlclNpemUpCisJCQkJCQkJCS8gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5KSB7CisJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeVN1cHBvcnQgPSBmYWxzZTsKKwkJCQl9CisJCQl9IGVsc2UgeworCQkJCWlmIChsb2NhbHMtPldyaXRlQmFuZHdpZHRoW2tdCisJCQkJCQk+IDEuNQorCQkJCQkJCQkqIGRtbF9taW4oCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VMdW1hQnVmZmVyU2l6ZSwKKwkJCQkJCQkJCQkyLjAKKwkJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VDaHJvbWFCdWZmZXJTaXplKQorCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeSkgeworCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0xhdGVuY3lTdXBwb3J0ID0gZmFsc2U7CisJCQkJfQorCQkJfQorCQl9CisJfQorCS8qUmUtb3JkZXJpbmcgQnVmZmVyIFN1cHBvcnQgQ2hlY2sqLworCisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJbG9jYWxzLT5VcmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeVBlclN0YXRlW2ldID0KKwkJCQkobW9kZV9saWItPnZiYS5Sb3VuZFRyaXBQaW5nTGF0ZW5jeUN5Y2xlcyArIDMyLjApIC8gbW9kZV9saWItPnZiYS5EQ0ZDTEtQZXJTdGF0ZVtpXQorCQkJCSsgZG1sX21heDMobW9kZV9saWItPnZiYS5VcmdlbnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFBpeGVsRGF0YU9ubHksCisJCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudE91dE9mT3JkZXJSZXR1cm5QZXJDaGFubmVsUGl4ZWxNaXhlZFdpdGhWTURhdGEsCisJCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudE91dE9mT3JkZXJSZXR1cm5QZXJDaGFubmVsVk1EYXRhT25seSkKKwkJCQkJKiBtb2RlX2xpYi0+dmJhLk51bWJlck9mQ2hhbm5lbHMgLyBsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV07CisJCWlmICgobW9kZV9saWItPnZiYS5ST0JCdWZmZXJTaXplSW5LQnl0ZSAtIG1vZGVfbGliLT52YmEuUGl4ZWxDaHVua1NpemVJbktCeXRlKSAqIDEwMjQuMCAvIGxvY2Fscy0+UmV0dXJuQldQZXJTdGF0ZVtpXQorCQkJCT4gbG9jYWxzLT5VcmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeVBlclN0YXRlW2ldKSB7CisJCQlsb2NhbHMtPlJPQlN1cHBvcnRbaV0gPSB0cnVlOworCQl9IGVsc2UgeworCQkJbG9jYWxzLT5ST0JTdXBwb3J0W2ldID0gZmFsc2U7CisJCX0KKwl9CisJLypXcml0ZWJhY2sgTW9kZSBTdXBwb3J0IENoZWNrKi8KKworCW1vZGVfbGliLT52YmEuVG90YWxOdW1iZXJPZkFjdGl2ZVdyaXRlYmFjayA9IDA7CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5BY3RpdmVXcml0ZWJhY2tzUGVyUGxhbmVba10gPT0gMCkKKwkJCQltb2RlX2xpYi0+dmJhLkFjdGl2ZVdyaXRlYmFja3NQZXJQbGFuZVtrXSA9IDE7CisJCQltb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVXcml0ZWJhY2sgPQorCQkJCQltb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVXcml0ZWJhY2sKKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuQWN0aXZlV3JpdGViYWNrc1BlclBsYW5lW2tdOworCQl9CisJfQorCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTW9kZVN1cHBvcnQgPSB0cnVlOworCWlmIChtb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVXcml0ZWJhY2sgPiBtb2RlX2xpYi0+dmJhLk1heE51bVdyaXRlYmFjaykgeworCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja01vZGVTdXBwb3J0ID0gZmFsc2U7CisJfQorCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tFbmFibGVba10gPT0gdHJ1ZQorCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrMTBicGM0MjBTdXBwb3J0ZWQgIT0gdHJ1ZQorCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrUGl4ZWxGb3JtYXRba10gPT0gZG1fNDIwXzEwKSB7CisJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja01vZGVTdXBwb3J0ID0gZmFsc2U7CisJCX0KKwl9CisJLypXcml0ZWJhY2sgU2NhbGUgUmF0aW8gYW5kIFRhcHMgU3VwcG9ydCBDaGVjayovCisKKwltb2RlX2xpYi0+dmJhLldyaXRlYmFja1NjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydCA9IHRydWU7CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hQW5kQ2hyb21hU2NhbGluZ1N1cHBvcnRlZCA9PSBmYWxzZQorCQkJCQkmJiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9ba10gIT0gMS4wCisJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9ba10gIT0gMS4wKSkgeworCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrU2NhbGVSYXRpb0FuZFRhcHNTdXBwb3J0ID0gZmFsc2U7CisJCQl9CisJCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9ba10gPiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja01heEhTQ0xSYXRpbworCQkJCQl8fCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXQorCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tNYXhWU0NMUmF0aW8KKwkJCQkJfHwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9ba10KKwkJCQkJCQk8IG1vZGVfbGliLT52YmEuV3JpdGViYWNrTWluSFNDTFJhdGlvCisJCQkJCXx8IG1vZGVfbGliLT52YmEuV3JpdGViYWNrVlJhdGlvW2tdCisJCQkJCQkJPCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja01pblZTQ0xSYXRpbworCQkJCQl8fCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXQorCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tNYXhIU0NMVGFwcworCQkJCQl8fCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1trXQorCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tNYXhWU0NMVGFwcworCQkJCQl8fCBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1trXQorCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hSFRhcHNba10KKwkJCQkJfHwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9ba10KKwkJCQkJCQk+IG1vZGVfbGliLT52YmEuV3JpdGViYWNrTHVtYVZUYXBzW2tdCisJCQkJCXx8IChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXSA+IDIuMAorCQkJCQkJCSYmICgobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hSFRhcHNba10gJSAyKQorCQkJCQkJCQkJPT0gMSkpCisJCQkJCXx8IChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF8zMgorCQkJCQkJCSYmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW2tdCisJCQkJCQkJCQk+IG1vZGVfbGliLT52YmEuV3JpdGViYWNrTWF4SFNDTFRhcHMKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10KKwkJCQkJCQkJCQkJPiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja01heFZTQ0xUYXBzCisJCQkJCQkJCQl8fCAyLjAKKwkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1trXQorCQkJCQkJCQkJCQk+IG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hSFRhcHNba10KKwkJCQkJCQkJCXx8IDIuMAorCQkJCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuV3JpdGViYWNrVlJhdGlvW2tdCisJCQkJCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFWVGFwc1trXQorCQkJCQkJCQkJfHwgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hSFRhcHNba10gPiAyLjAKKwkJCQkJCQkJCQkmJiAoKG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hSFRhcHNba10gJSAyKSA9PSAxKSkpKSkgeworCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrU2NhbGVSYXRpb0FuZFRhcHNTdXBwb3J0ID0gZmFsc2U7CisJCQl9CisJCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tWUmF0aW9ba10gPCAxLjApIHsKKwkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWRXh0cmEgPQorCQkJCQkJZG1sX21heCgxLjAgLSAyLjAgLyBkbWxfY2VpbCgxLjAgLyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSwgMS4wKSwgMC4wKTsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVkV4dHJhID0gLTE7CisJCQl9CisJCQlpZiAoKG1vZGVfbGliLT52YmEuV3JpdGViYWNrUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzMyCisJCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrTHVtYVZUYXBzW2tdCisJCQkJCQkJPiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMaW5lQnVmZmVyTHVtYUJ1ZmZlclNpemUKKwkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMaW5lQnVmZmVyQ2hyb21hQnVmZmVyU2l6ZSkKKwkJCQkJCQkJCS8gMy4wCisJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtrXQorCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWRXh0cmEpCisJCQkJCXx8IChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdID09IGRtXzQyMF84CisJCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVlRhcHNba10KKwkJCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMaW5lQnVmZmVyTHVtYUJ1ZmZlclNpemUKKwkJCQkJCQkJCQkJKiA4LjAgLyAxMC4wIC8gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW2tdCisJCQkJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVkV4dHJhKQorCQkJCQl8fCAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfMTAKKwkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1trXQorCQkJCQkJCQkJPiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0xpbmVCdWZmZXJMdW1hQnVmZmVyU2l6ZQorCQkJCQkJCQkJCQkqIDguMCAvIDEwLjAKKwkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWRXh0cmEpKSB7CisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tTY2FsZVJhdGlvQW5kVGFwc1N1cHBvcnQgPSBmYWxzZTsKKwkJCX0KKwkJCWlmICgyLjAgKiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSA8IDEpIHsKKwkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYVZFeHRyYSA9IDAuMDsKKwkJCX0gZWxzZSB7CisJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFWRXh0cmEgPSAtMTsKKwkJCX0KKwkJCWlmICgobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfOAorCQkJCQkmJiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYVZUYXBzW2tdCisJCQkJCQkJPiBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0xpbmVCdWZmZXJDaHJvbWFCdWZmZXJTaXplCisJCQkJCQkJCQkqIDguMCAvIDEwLjAgLyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJCQkJCS0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFWRXh0cmEpCisJCQkJCXx8IChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdID09IGRtXzQyMF8xMAorCQkJCQkJCSYmIG1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10KKwkJCQkJCQkJCT4gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMaW5lQnVmZmVyQ2hyb21hQnVmZmVyU2l6ZQorCQkJCQkJCQkJCQkqIDguMCAvIDEwLjAKKwkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJCQkJCQkJLSBtb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYVZFeHRyYSkpIHsKKwkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1NjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydCA9IGZhbHNlOworCQkJfQorCQl9CisJfQorCS8qTWF4aW11bSBESVNQQ0xLL0RQUENMSyBTdXBwb3J0IGNoZWNrKi8KKworCW1vZGVfbGliLT52YmEuV3JpdGViYWNrUmVxdWlyZWRESVNQQ0xLID0gMC4wOworCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tFbmFibGVba10gPT0gdHJ1ZSkgeworCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tSZXF1aXJlZERJU1BDTEsgPQorCQkJCQlkbWxfbWF4KAorCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrUmVxdWlyZWRESVNQQ0xLLAorCQkJCQkJCUNhbGN1bGF0ZVdyaXRlQmFja0RJU1BDTEsoCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIUmF0aW9ba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrTHVtYUhUYXBzW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMdW1hVlRhcHNba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFWVGFwc1trXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFRvdGFsW2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tDaHJvbWFMaW5lQnVmZmVyV2lkdGgpKTsKKwkJfQorCX0KKwlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJaWYgKG1vZGVfbGliLT52YmEuSFJhdGlvW2tdID4gMS4wKSB7CisJCQlsb2NhbHMtPlBTQ0xfRkFDVE9SW2tdID0gZG1sX21pbigKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQsCisJCQkJCW1vZGVfbGliLT52YmEuTWF4UFNDTFRvTEJUaHJvdWdocHV0CisJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXQorCQkJCQkJCS8gZG1sX2NlaWwoCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLmh0YXBzW2tdCisJCQkJCQkJCQkJCS8gNi4wLAorCQkJCQkJCQkJMS4wKSk7CisJCX0gZWxzZSB7CisJCQlsb2NhbHMtPlBTQ0xfRkFDVE9SW2tdID0gZG1sX21pbigKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQsCisJCQkJCW1vZGVfbGliLT52YmEuTWF4UFNDTFRvTEJUaHJvdWdocHV0KTsKKwkJfQorCQlpZiAobG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVENba10gPT0gMC4wKSB7CisJCQlsb2NhbHMtPlBTQ0xfRkFDVE9SX0NIUk9NQVtrXSA9IDAuMDsKKwkJCWxvY2Fscy0+TWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBba10gPQorCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10KKwkJCQkJCQkqIGRtbF9tYXgzKAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS52dGFwc1trXSAvIDYuMAorCQkJCQkJCQkJCQkqIGRtbF9taW4oCisJCQkJCQkJCQkJCQkJMS4wLAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdKSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5WUmF0aW9ba10KKwkJCQkJCQkJCQkJLyBsb2NhbHMtPlBTQ0xfRkFDVE9SW2tdLAorCQkJCQkJCQkJMS4wKTsKKwkJCWlmICgobW9kZV9saWItPnZiYS5odGFwc1trXSA+IDYuMCB8fCBtb2RlX2xpYi0+dmJhLnZ0YXBzW2tdID4gNi4wKQorCQkJCQkmJiBsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdCisJCQkJCQkJPCAyLjAgKiBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pIHsKKwkJCQlsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdID0gMi4wCisJCQkJCQkqIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSAvIDIuMCA+IDEuMCkgeworCQkJCWxvY2Fscy0+UFNDTF9GQUNUT1JfQ0hST01BW2tdID0KKwkJCQkJCWRtbF9taW4oCisJCQkJCQkJCW1vZGVfbGliLT52YmEuTWF4RENIVUJUb1BTQ0xUaHJvdWdocHV0LAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk1heFBTQ0xUb0xCVGhyb3VnaHB1dAorCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkvIDIuMAorCQkJCQkJCQkJCS8gZG1sX2NlaWwoCisJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhUQVBzQ2hyb21hW2tdCisJCQkJCQkJCQkJCQkJCS8gNi4wLAorCQkJCQkJCQkJCQkJMS4wKSk7CisJCQl9IGVsc2UgeworCQkJCWxvY2Fscy0+UFNDTF9GQUNUT1JfQ0hST01BW2tdID0gZG1sX21pbigKKwkJCQkJCW1vZGVfbGliLT52YmEuTWF4RENIVUJUb1BTQ0xUaHJvdWdocHV0LAorCQkJCQkJbW9kZV9saWItPnZiYS5NYXhQU0NMVG9MQlRocm91Z2hwdXQpOworCQkJfQorCQkJbG9jYWxzLT5NaW5EUFBDTEtVc2luZ1NpbmdsZURQUFtrXSA9CisJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXQorCQkJCQkJCSogZG1sX21heDUoCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLnZ0YXBzW2tdIC8gNi4wCisJCQkJCQkJCQkJCSogZG1sX21pbigKKwkJCQkJCQkJCQkJCQkxLjAsCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW9ba10pLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLlZSYXRpb1trXQorCQkJCQkJCQkJCQkvIGxvY2Fscy0+UFNDTF9GQUNUT1Jba10sCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlZUQVBzQ2hyb21hW2tdCisJCQkJCQkJCQkJCS8gNi4wCisJCQkJCQkJCQkJCSogZG1sX21pbigKKwkJCQkJCQkJCQkJCQkxLjAsCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW9ba10KKwkJCQkJCQkJCQkJCQkJCS8gMi4wKSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuSFJhdGlvW2tdCisJCQkJCQkJCQkJCSogbW9kZV9saWItPnZiYS5WUmF0aW9ba10KKwkJCQkJCQkJCQkJLyA0LjAKKwkJCQkJCQkJCQkJLyBsb2NhbHMtPlBTQ0xfRkFDVE9SX0NIUk9NQVtrXSwKKwkJCQkJCQkJCTEuMCk7CisJCQlpZiAoKG1vZGVfbGliLT52YmEuaHRhcHNba10gPiA2LjAgfHwgbW9kZV9saWItPnZiYS52dGFwc1trXSA+IDYuMAorCQkJCQl8fCBtb2RlX2xpYi0+dmJhLkhUQVBzQ2hyb21hW2tdID4gNi4wCisJCQkJCXx8IG1vZGVfbGliLT52YmEuVlRBUHNDaHJvbWFba10gPiA2LjApCisJCQkJCSYmIGxvY2Fscy0+TWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBba10KKwkJCQkJCQk8IDIuMCAqIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkgeworCQkJCWxvY2Fscy0+TWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBba10gPSAyLjAKKwkJCQkJCSogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQkJfQorCQl9CisJfQorCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlDYWxjdWxhdGUyNTZCQmxvY2tTaXplcygKKwkJCQltb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdLAorCQkJCW1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSwKKwkJCQlkbWxfY2VpbChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSwgMS4wKSwKKwkJCQlkbWxfY2VpbChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSwgMi4wKSwKKwkJCQkmbG9jYWxzLT5SZWFkMjU2QmxvY2tIZWlnaHRZW2tdLAorCQkJCSZsb2NhbHMtPlJlYWQyNTZCbG9ja0hlaWdodENba10sCisJCQkJJmxvY2Fscy0+UmVhZDI1NkJsb2NrV2lkdGhZW2tdLAorCQkJCSZsb2NhbHMtPlJlYWQyNTZCbG9ja1dpZHRoQ1trXSk7CisJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikgeworCQkJbG9jYWxzLT5NYXhTd2F0aEhlaWdodFlba10gPSBsb2NhbHMtPlJlYWQyNTZCbG9ja0hlaWdodFlba107CisJCQlsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXSA9IGxvY2Fscy0+UmVhZDI1NkJsb2NrSGVpZ2h0Q1trXTsKKwkJfSBlbHNlIHsKKwkJCWxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdID0gbG9jYWxzLT5SZWFkMjU2QmxvY2tXaWR0aFlba107CisJCQlsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXSA9IGxvY2Fscy0+UmVhZDI1NkJsb2NrV2lkdGhDW2tdOworCQl9CisJCWlmICgobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfNjQKKwkJCQl8fCBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQ0NF8zMgorCQkJCXx8IG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzE2CisJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV9tb25vXzE2CisJCQkJfHwgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV9tb25vXzgpKSB7CisJCQlpZiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdID09IGRtX3N3X2xpbmVhcgorCQkJCQl8fCAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80NDRfNjQKKwkJCQkJCQkmJiAobW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQk9PSBkbV9zd180a2JfcworCQkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQkJCT09IGRtX3N3XzRrYl9zX3gKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd182NGtiX3MKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd182NGtiX3NfdAorCQkJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdCisJCQkJCQkJCQkJCT09IGRtX3N3XzY0a2Jfc194CisJCQkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10KKwkJCQkJCQkJCQkJPT0gZG1fc3dfdmFyX3MKKwkJCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXQorCQkJCQkJCQkJCQk9PSBkbV9zd192YXJfc194KQorCQkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSkgeworCQkJCWxvY2Fscy0+TWluU3dhdGhIZWlnaHRZW2tdID0gbG9jYWxzLT5NYXhTd2F0aEhlaWdodFlba107CisJCQl9IGVsc2UgeworCQkJCWxvY2Fscy0+TWluU3dhdGhIZWlnaHRZW2tdID0gbG9jYWxzLT5NYXhTd2F0aEhlaWdodFlba10KKwkJCQkJCS8gMi4wOworCQkJfQorCQkJbG9jYWxzLT5NaW5Td2F0aEhlaWdodENba10gPSBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXTsKKwkJfSBlbHNlIHsKKwkJCWlmIChtb2RlX2xpYi0+dmJhLlN1cmZhY2VUaWxpbmdba10gPT0gZG1fc3dfbGluZWFyKSB7CisJCQkJbG9jYWxzLT5NaW5Td2F0aEhlaWdodFlba10gPSBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0WVtrXTsKKwkJCQlsb2NhbHMtPk1pblN3YXRoSGVpZ2h0Q1trXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRDW2tdOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdID09IGRtXzQyMF84CisJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSB7CisJCQkJbG9jYWxzLT5NaW5Td2F0aEhlaWdodFlba10gPSBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0WVtrXQorCQkJCQkJLyAyLjA7CisJCQkJbG9jYWxzLT5NaW5Td2F0aEhlaWdodENba10gPSBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXTsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfMTAKKwkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdID09IGRtX2hvcnopIHsKKwkJCQlsb2NhbHMtPk1pblN3YXRoSGVpZ2h0Q1trXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRDW2tdCisJCQkJCQkvIDIuMDsKKwkJCQlsb2NhbHMtPk1pblN3YXRoSGVpZ2h0WVtrXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdOworCQkJfSBlbHNlIHsKKwkJCQlsb2NhbHMtPk1pblN3YXRoSGVpZ2h0WVtrXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdOworCQkJCWxvY2Fscy0+TWluU3dhdGhIZWlnaHRDW2tdID0gbG9jYWxzLT5NYXhTd2F0aEhlaWdodENba107CisJCQl9CisJCX0KKwkJaWYgKG1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSA9PSBkbV9zd19saW5lYXIpIHsKKwkJCW1vZGVfbGliLT52YmEuTWF4aW11bVN3YXRoV2lkdGhTdXBwb3J0ID0gODE5Mi4wOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aFN1cHBvcnQgPSA1MTIwLjA7CisJCX0KKwkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aEluREVUQnVmZmVyID0KKwkJCQlkbWxfbWluKAorCQkJCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aFN1cHBvcnQsCisJCQkJCQltb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVJbktCeXRlICogMTAyNC4wIC8gMi4wCisJCQkJCQkJCS8gKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdCisJCQkJCQkJCQkJKiBsb2NhbHMtPk1pblN3YXRoSGVpZ2h0WVtrXQorCQkJCQkJCQkJCSsgbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVENba10KKwkJCQkJCQkJCQkJCS8gMi4wCisJCQkJCQkJCQkJCQkqIGxvY2Fscy0+TWluU3dhdGhIZWlnaHRDW2tdKSk7CisJCWlmIChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSA9PSAwLjApIHsKKwkJCW1vZGVfbGliLT52YmEuTWF4aW11bVN3YXRoV2lkdGhJbkxpbmVCdWZmZXIgPQorCQkJCQltb2RlX2xpYi0+dmJhLkxpbmVCdWZmZXJTaXplCisJCQkJCQkJKiBkbWxfbWF4KG1vZGVfbGliLT52YmEuSFJhdGlvW2tdLCAxLjApCisJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkxCQml0UGVyUGl4ZWxba10KKwkJCQkJCQkvIChtb2RlX2xpYi0+dmJhLnZ0YXBzW2tdCisJCQkJCQkJCQkrIGRtbF9tYXgoCisJCQkJCQkJCQkJCWRtbF9jZWlsKAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCQkJCQkJCQkJCTEuMCkKKwkJCQkJCQkJCQkJCQktIDIsCisJCQkJCQkJCQkJCTAuMCkpOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aEluTGluZUJ1ZmZlciA9CisJCQkJCWRtbF9taW4oCisJCQkJCQkJbW9kZV9saWItPnZiYS5MaW5lQnVmZmVyU2l6ZQorCQkJCQkJCQkJKiBkbWxfbWF4KAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhSYXRpb1trXSwKKwkJCQkJCQkJCQkJMS4wKQorCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLkxCQml0UGVyUGl4ZWxba10KKwkJCQkJCQkJCS8gKG1vZGVfbGliLT52YmEudnRhcHNba10KKwkJCQkJCQkJCQkJKyBkbWxfbWF4KAorCQkJCQkJCQkJCQkJCWRtbF9jZWlsKAorCQkJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5WUmF0aW9ba10sCisJCQkJCQkJCQkJCQkJCQkxLjApCisJCQkJCQkJCQkJCQkJCQktIDIsCisJCQkJCQkJCQkJCQkJMC4wKSksCisJCQkJCQkJMi4wICogbW9kZV9saWItPnZiYS5MaW5lQnVmZmVyU2l6ZQorCQkJCQkJCQkJKiBkbWxfbWF4KAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkhSYXRpb1trXQorCQkJCQkJCQkJCQkJCS8gMi4wLAorCQkJCQkJCQkJCQkxLjApCisJCQkJCQkJCQkvIG1vZGVfbGliLT52YmEuTEJCaXRQZXJQaXhlbFtrXQorCQkJCQkJCQkJLyAobW9kZV9saWItPnZiYS5WVEFQc0Nocm9tYVtrXQorCQkJCQkJCQkJCQkrIGRtbF9tYXgoCisJCQkJCQkJCQkJCQkJZG1sX2NlaWwoCisJCQkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXQorCQkJCQkJCQkJCQkJCQkJCQkvIDIuMCwKKwkJCQkJCQkJCQkJCQkJCTEuMCkKKwkJCQkJCQkJCQkJCQkJCS0gMiwKKwkJCQkJCQkJCQkJCQkwLjApKSk7CisJCX0KKwkJbG9jYWxzLT5NYXhpbXVtU3dhdGhXaWR0aFtrXSA9IGRtbF9taW4oCisJCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtU3dhdGhXaWR0aEluREVUQnVmZmVyLAorCQkJCW1vZGVfbGliLT52YmEuTWF4aW11bVN3YXRoV2lkdGhJbkxpbmVCdWZmZXIpOworCX0KKwlmb3IgKGkgPSAwOyBpIDw9IG1vZGVfbGliLT52YmEuc29jLm51bV9zdGF0ZXM7IGkrKykgeworCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CisJCQltb2RlX2xpYi0+dmJhLk1heERpc3BjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHkgPSBSb3VuZFRvREZTR3JhbnVsYXJpdHlEb3duKAorCQkJCW1vZGVfbGliLT52YmEuTWF4RGlzcGNsa1tpXSwKKwkJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtWQ09TcGVlZCk7CisJCQltb2RlX2xpYi0+dmJhLk1heERwcGNsa1JvdW5kZWREb3duVG9ERlNHcmFudWxhcml0eSA9IFJvdW5kVG9ERlNHcmFudWxhcml0eURvd24oCisJCQkJbW9kZV9saWItPnZiYS5NYXhEcHBjbGtbaV0sCisJCQkJbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLVkNPU3BlZWQpOworCQkJbG9jYWxzLT5SZXF1aXJlZERJU1BDTEtbaV1bal0gPSAwLjA7CisJCQlsb2NhbHMtPkRJU1BDTEtfRFBQQ0xLX1N1cHBvcnRbaV1bal0gPSB0cnVlOworCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMS1dpdGhvdXRPRE1Db21iaW5lID0KKwkJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXQorCQkJCQkJCQkqICgxLjAKKwkJCQkJCQkJCQkrIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcKKwkJCQkJCQkJCQkJCS8gMTAwLjApCisJCQkJCQkJCSogKDEuMAorCQkJCQkJCQkJCSsgbW9kZV9saWItPnZiYS5ESVNQQ0xLUmFtcGluZ01hcmdpbgorCQkJCQkJCQkJCQkJLyAxMDAuMCk7CisJCQkJaWYgKG1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRob3V0T0RNQ29tYmluZSA+PSBtb2RlX2xpYi0+dmJhLk1heERpc3BjbGtbaV0KKwkJCQkJCSYmIGkgPT0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlcykKKwkJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMS1dpdGhvdXRPRE1Db21iaW5lID0gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJKiAoMSArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCk7CisKKwkJCQltb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aE9ETUNvbWJpbmUgPSBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10gLyAyCisJCQkJCSogKDEgKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nIC8gMTAwLjApICogKDEgKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtSYW1waW5nTWFyZ2luIC8gMTAwLjApOworCQkJCWlmIChtb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aE9ETUNvbWJpbmUgPj0gbW9kZV9saWItPnZiYS5NYXhEaXNwY2xrW2ldCisJCQkJCQkmJiBpID09IG1vZGVfbGliLT52YmEuc29jLm51bV9zdGF0ZXMpCisJCQkJCW1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRoT0RNQ29tYmluZSA9IG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSAvIDIKKwkJCQkJCQkqICgxICsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZyAvIDEwMC4wKTsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5PRE1DYXBhYmlsaXR5ID09IGZhbHNlIHx8IG1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRob3V0T0RNQ29tYmluZSA8PSBtb2RlX2xpYi0+dmJhLk1heERpc3BjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHkpIHsKKwkJCQkJbG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbaV1ba10gPSBmYWxzZTsKKwkJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyA9IG1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRob3V0T0RNQ29tYmluZTsKKwkJCQl9IGVsc2UgeworCQkJCQlsb2NhbHMtPk9ETUNvbWJpbmVFbmFibGVQZXJTdGF0ZVtpXVtrXSA9IHRydWU7CisJCQkJCW1vZGVfbGliLT52YmEuUGxhbmVSZXF1aXJlZERJU1BDTEsgPSBtb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aE9ETUNvbWJpbmU7CisJCQkJfQorCQkJCWlmIChsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCkgPD0gbW9kZV9saWItPnZiYS5NYXhEcHBjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHkKKwkJCQkJCSYmIGxvY2Fscy0+U3dhdGhXaWR0aFlTaW5nbGVEUFBba10gPD0gbG9jYWxzLT5NYXhpbXVtU3dhdGhXaWR0aFtrXQorCQkJCQkJJiYgbG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbaV1ba10gPT0gZmFsc2UpIHsKKwkJCQkJbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdID0gMTsKKwkJCQkJbG9jYWxzLT5SZXF1aXJlZERQUENMS1tpXVtqXVtrXSA9CisJCQkJCQlsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCk7CisJCQkJfSBlbHNlIHsKKwkJCQkJbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdID0gMjsKKwkJCQkJbG9jYWxzLT5SZXF1aXJlZERQUENMS1tpXVtqXVtrXSA9CisJCQkJCQlsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCkgLyAyLjA7CisJCQkJfQorCQkJCWxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdID0gZG1sX21heCgKKwkJCQkJCWxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdLAorCQkJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyk7CisJCQkJaWYgKChsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdIC8gbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCkKKwkJCQkJCT4gbW9kZV9saWItPnZiYS5NYXhEcHBjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHkpCisJCQkJCQl8fCAobW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyA+IG1vZGVfbGliLT52YmEuTWF4RGlzcGNsa1JvdW5kZWREb3duVG9ERlNHcmFudWxhcml0eSkpIHsKKwkJCQkJbG9jYWxzLT5ESVNQQ0xLX0RQUENMS19TdXBwb3J0W2ldW2pdID0gZmFsc2U7CisJCQkJfQorCQkJfQorCQkJbG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdID0gMC4wOworCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKQorCQkJCWxvY2Fscy0+VG90YWxOdW1iZXJPZkFjdGl2ZURQUFtpXVtqXSA9IGxvY2Fscy0+VG90YWxOdW1iZXJPZkFjdGl2ZURQUFtpXVtqXSArIGxvY2Fscy0+Tm9PZkRQUFtpXVtqXVtrXTsKKwkJCWlmIChqID09IDEpIHsKKwkJCQl3aGlsZSAobG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdIDwgbW9kZV9saWItPnZiYS5NYXhOdW1EUFAKKwkJCQkJCSYmIGxvY2Fscy0+VG90YWxOdW1iZXJPZkFjdGl2ZURQUFtpXVtqXSA8IDIgKiBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzKSB7CisJCQkJCWRvdWJsZSBCV09mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aDsKKwkJCQkJdW5zaWduZWQgaW50IE51bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aDsKKworCQkJCQlCV09mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aCA9IDA7CisJCQkJCU51bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aCA9IDA7CisJCQkJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCQkJCWlmIChsb2NhbHMtPlJlYWRCYW5kd2lkdGhba10gPiBCV09mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aCAmJiBsb2NhbHMtPk5vT2ZEUFBbaV1bal1ba10gPT0gMSkgeworCQkJCQkJCUJXT2ZOb25TcGxpdFBsYW5lT2ZNYXhpbXVtQmFuZHdpZHRoID0gbG9jYWxzLT5SZWFkQmFuZHdpZHRoW2tdOworCQkJCQkJCU51bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aCA9IGs7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJbG9jYWxzLT5Ob09mRFBQW2ldW2pdW051bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aF0gPSAyOworCQkJCQlsb2NhbHMtPlJlcXVpcmVkRFBQQ0xLW2ldW2pdW051bWJlck9mTm9uU3BsaXRQbGFuZU9mTWF4aW11bUJhbmR3aWR0aF0gPQorCQkJCQkJbG9jYWxzLT5NaW5EUFBDTEtVc2luZ1NpbmdsZURQUFtOdW1iZXJPZk5vblNwbGl0UGxhbmVPZk1heGltdW1CYW5kd2lkdGhdCisJCQkJCQkJKiAoMSArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDApIC8gMjsKKwkJCQkJbG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdID0gbG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdICsgMTsKKwkJCQl9CisJCQl9CisJCQlpZiAobG9jYWxzLT5Ub3RhbE51bWJlck9mQWN0aXZlRFBQW2ldW2pdID4gbW9kZV9saWItPnZiYS5NYXhOdW1EUFApIHsKKwkJCQlsb2NhbHMtPlJlcXVpcmVkRElTUENMS1tpXVtqXSA9IDAuMDsKKwkJCQlsb2NhbHMtPkRJU1BDTEtfRFBQQ0xLX1N1cHBvcnRbaV1bal0gPSB0cnVlOworCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCQlsb2NhbHMtPk9ETUNvbWJpbmVFbmFibGVQZXJTdGF0ZVtpXVtrXSA9IGZhbHNlOworCQkJCQlpZiAobG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUFtrXSA8PSBsb2NhbHMtPk1heGltdW1Td2F0aFdpZHRoW2tdKSB7CisJCQkJCQlsb2NhbHMtPk5vT2ZEUFBbaV1bal1ba10gPSAxOworCQkJCQkJbG9jYWxzLT5SZXF1aXJlZERQUENMS1tpXVtqXVtrXSA9IGxvY2Fscy0+TWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBba10KKwkJCQkJCQkqICgxLjAgKyBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nIC8gMTAwLjApOworCQkJCQl9IGVsc2UgeworCQkJCQkJbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdID0gMjsKKwkJCQkJCWxvY2Fscy0+UmVxdWlyZWREUFBDTEtbaV1bal1ba10gPSBsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdCisJCQkJCQkJCQkJKiAoMS4wICsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZyAvIDEwMC4wKSAvIDIuMDsKKwkJCQkJfQorCQkJCQlpZiAoaSAhPSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzKSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLID0KKwkJCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJCQkJKiAoMS4wICsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZyAvIDEwMC4wKQorCQkJCQkJCQkJCSogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS1JhbXBpbmdNYXJnaW4gLyAxMDAuMCk7CisJCQkJCX0gZWxzZSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLlBsYW5lUmVxdWlyZWRESVNQQ0xLID0gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdCisJCQkJCQkJKiAoMS4wICsgbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZyAvIDEwMC4wKTsKKwkJCQkJfQorCQkJCQlsb2NhbHMtPlJlcXVpcmVkRElTUENMS1tpXVtqXSA9IGRtbF9tYXgoCisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlZERJU1BDTEtbaV1bal0sCisJCQkJCQkJbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyk7CisJCQkJCWlmIChsb2NhbHMtPk1pbkRQUENMS1VzaW5nU2luZ2xlRFBQW2tdIC8gbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdICogKDEuMCArIG1vZGVfbGliLT52YmEuRElTUENMS0RQUENMS0RTQ0NMS0Rvd25TcHJlYWRpbmcgLyAxMDAuMCkKKwkJCQkJCQk+IG1vZGVfbGliLT52YmEuTWF4RHBwY2xrUm91bmRlZERvd25Ub0RGU0dyYW51bGFyaXR5CisJCQkJCQkJfHwgbW9kZV9saWItPnZiYS5QbGFuZVJlcXVpcmVkRElTUENMSyA+IG1vZGVfbGliLT52YmEuTWF4RGlzcGNsa1JvdW5kZWREb3duVG9ERlNHcmFudWxhcml0eSkKKwkJCQkJCWxvY2Fscy0+RElTUENMS19EUFBDTEtfU3VwcG9ydFtpXVtqXSA9IGZhbHNlOworCQkJCX0KKwkJCQlsb2NhbHMtPlRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbaV1bal0gPSAwLjA7CisJCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKQorCQkJCQlsb2NhbHMtPlRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbaV1bal0gPSBsb2NhbHMtPlRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbaV1bal0gKyBsb2NhbHMtPk5vT2ZEUFBbaV1bal1ba107CisJCQl9CisJCQlsb2NhbHMtPlJlcXVpcmVkRElTUENMS1tpXVtqXSA9IGRtbF9tYXgoCisJCQkJCWxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdLAorCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1JlcXVpcmVkRElTUENMSyk7CisJCQlpZiAobW9kZV9saWItPnZiYS5NYXhEaXNwY2xrUm91bmRlZERvd25Ub0RGU0dyYW51bGFyaXR5CisJCQkJCTwgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tSZXF1aXJlZERJU1BDTEspIHsKKwkJCQlsb2NhbHMtPkRJU1BDTEtfRFBQQ0xLX1N1cHBvcnRbaV1bal0gPSBmYWxzZTsKKwkJCX0KKwkJfQorCX0KKwkvKlZpZXdwb3J0IFNpemUgQ2hlY2sqLworCisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJbG9jYWxzLT5WaWV3cG9ydFNpemVTdXBwb3J0W2ldID0gdHJ1ZTsKKwkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQlpZiAobG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbaV1ba10gPT0gdHJ1ZSkgeworCQkJCWlmIChkbWxfbWluKGxvY2Fscy0+U3dhdGhXaWR0aFlTaW5nbGVEUFBba10sIGRtbF9yb3VuZChtb2RlX2xpYi0+dmJhLkhBY3RpdmVba10gLyAyLjAgKiBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSkpCisJCQkJCQk+IGxvY2Fscy0+TWF4aW11bVN3YXRoV2lkdGhba10pIHsKKwkJCQkJbG9jYWxzLT5WaWV3cG9ydFNpemVTdXBwb3J0W2ldID0gZmFsc2U7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQlpZiAobG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUFtrXSAvIDIuMCA+IGxvY2Fscy0+TWF4aW11bVN3YXRoV2lkdGhba10pIHsKKwkJCQkJbG9jYWxzLT5WaWV3cG9ydFNpemVTdXBwb3J0W2ldID0gZmFsc2U7CisJCQkJfQorCQkJfQorCQl9CisJfQorCS8qVG90YWwgQXZhaWxhYmxlIFBpcGVzIFN1cHBvcnQgQ2hlY2sqLworCisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJZm9yIChqID0gMDsgaiA8IDI7IGorKykgeworCQkJaWYgKGxvY2Fscy0+VG90YWxOdW1iZXJPZkFjdGl2ZURQUFtpXVtqXSA8PSBtb2RlX2xpYi0+dmJhLk1heE51bURQUCkKKwkJCQlsb2NhbHMtPlRvdGFsQXZhaWxhYmxlUGlwZXNTdXBwb3J0W2ldW2pdID0gdHJ1ZTsKKwkJCWVsc2UKKwkJCQlsb2NhbHMtPlRvdGFsQXZhaWxhYmxlUGlwZXNTdXBwb3J0W2ldW2pdID0gZmFsc2U7CisJCX0KKwl9CisJLypUb3RhbCBBdmFpbGFibGUgT1RHIFN1cHBvcnQgQ2hlY2sqLworCisJbW9kZV9saWItPnZiYS5Ub3RhbE51bWJlck9mQWN0aXZlT1RHID0gMC4wOworCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBrKSB7CisJCQltb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVPVEcgPSBtb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVPVEcKKwkJCQkJKyAxLjA7CisJCX0KKwl9CisJaWYgKG1vZGVfbGliLT52YmEuVG90YWxOdW1iZXJPZkFjdGl2ZU9URyA8PSBtb2RlX2xpYi0+dmJhLk1heE51bU9URykgeworCQltb2RlX2xpYi0+dmJhLk51bWJlck9mT1RHU3VwcG9ydCA9IHRydWU7CisJfSBlbHNlIHsKKwkJbW9kZV9saWItPnZiYS5OdW1iZXJPZk9UR1N1cHBvcnQgPSBmYWxzZTsKKwl9CisJLypEaXNwbGF5IElPIGFuZCBEU0MgU3VwcG9ydCBDaGVjayovCisKKwltb2RlX2xpYi0+dmJhLk5vbnN1cHBvcnRlZERTQ0lucHV0QlBDID0gZmFsc2U7CisJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCWlmICghKG1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10gPT0gMTIuMAorCQkJCXx8IG1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10gPT0gMTAuMAorCQkJCXx8IG1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10gPT0gOC4wKSkgeworCQkJbW9kZV9saWItPnZiYS5Ob25zdXBwb3J0ZWREU0NJbnB1dEJQQyA9IHRydWU7CisJCX0KKwl9CisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQlsb2NhbHMtPlJlcXVpcmVzRFNDW2ldW2tdID0gMDsKKwkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSAwOworCQkJaWYgKG1vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gaykgeworCQkJCWlmIChtb2RlX2xpYi0+dmJhLk91dHB1dFtrXSA9PSBkbV9oZG1pKSB7CisJCQkJCWxvY2Fscy0+UmVxdWlyZXNEU0NbaV1ba10gPSAwOworCQkJCQlsb2NhbHMtPlJlcXVpcmVzRkVDW2ldW2tdID0gMDsKKwkJCQkJbG9jYWxzLT5PdXRwdXRCcHBQZXJTdGF0ZVtpXVtrXSA9IFRydW5jVG9WYWxpZEJQUCgKKwkJCQkJCQlkbWxfbWluKDYwMC4wLCBtb2RlX2xpYi0+dmJhLlBIWUNMS1BlclN0YXRlW2ldKSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gKiAyNCwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkZvcmNlZE91dHB1dExpbmtCUFBba10sCisJCQkJCQkJZmFsc2UsCisJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5EU0NJbnB1dEJpdFBlckNvbXBvbmVudFtrXSk7CisJCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLk91dHB1dFtrXSA9PSBkbV9kcAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS5PdXRwdXRba10gPT0gZG1fZWRwKSB7CisJCQkJCWlmIChtb2RlX2xpYi0+dmJhLk91dHB1dFtrXSA9PSBkbV9lZHApIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuRWZmZWN0aXZlRkVDT3ZlcmhlYWQgPSAwLjA7CisJCQkJCX0gZWxzZSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLkVmZmVjdGl2ZUZFQ092ZXJoZWFkID0KKwkJCQkJCQkJbW9kZV9saWItPnZiYS5GRUNPdmVyaGVhZDsKKwkJCQkJfQorCQkJCQlpZiAobW9kZV9saWItPnZiYS5QSFlDTEtQZXJTdGF0ZVtpXSA+PSAyNzAuMCkgeworCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHAgPSBUcnVuY1RvVmFsaWRCUFAoCisJCQkJCQkJCSgxLjAgLSBtb2RlX2xpYi0+dmJhLkRvd25zcHJlYWRpbmcgLyAxMDAuMCkgKiAyNzAuMAorCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuT3V0cHV0TGlua0RQTGFuZXNba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdICogOC4wLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLkZvcmNlZE91dHB1dExpbmtCUFBba10sCisJCQkJCQkJCWZhbHNlLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dFtrXSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10pOworCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHBEU0MgPSBUcnVuY1RvVmFsaWRCUFAoCisJCQkJCQkJCSgxLjAgLSBtb2RlX2xpYi0+dmJhLkRvd25zcHJlYWRpbmcgLyAxMDAuMCkgKiAoMS4wIC0gbW9kZV9saWItPnZiYS5FZmZlY3RpdmVGRUNPdmVyaGVhZCAvIDEwMC4wKSAqIDI3MC4wCisJCQkJCQkJCSogbW9kZV9saWItPnZiYS5PdXRwdXRMaW5rRFBMYW5lc1trXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gKiA4LjAsCisJCQkJCQkJCW1vZGVfbGliLT52YmEuRm9yY2VkT3V0cHV0TGlua0JQUFtrXSwKKwkJCQkJCQkJdHJ1ZSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLkRTQ0lucHV0Qml0UGVyQ29tcG9uZW50W2tdKTsKKwkJCQkJCWlmIChtb2RlX2xpYi0+dmJhLkRTQ0VuYWJsZWRba10gPT0gdHJ1ZSkgeworCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNEU0NbaV1ba10gPSB0cnVlOworCQkJCQkJCWlmIChtb2RlX2xpYi0+dmJhLk91dHB1dFtrXSA9PSBkbV9kcCkgeworCQkJCQkJCQlsb2NhbHMtPlJlcXVpcmVzRkVDW2ldW2tdID0gdHJ1ZTsKKwkJCQkJCQl9IGVsc2UgeworCQkJCQkJCQlsb2NhbHMtPlJlcXVpcmVzRkVDW2ldW2tdID0gZmFsc2U7CisJCQkJCQkJfQorCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0YnBwID0gbW9kZV9saWItPnZiYS5PdXRicHBEU0M7CisJCQkJCQl9IGVsc2UgeworCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNEU0NbaV1ba10gPSBmYWxzZTsKKwkJCQkJCQlsb2NhbHMtPlJlcXVpcmVzRkVDW2ldW2tdID0gZmFsc2U7CisJCQkJCQl9CisJCQkJCQlsb2NhbHMtPk91dHB1dEJwcFBlclN0YXRlW2ldW2tdID0gbW9kZV9saWItPnZiYS5PdXRicHA7CisJCQkJCX0KKwkJCQkJaWYgKG1vZGVfbGliLT52YmEuT3V0YnBwID09IEJQUF9JTlZBTElEICYmIG1vZGVfbGliLT52YmEuUEhZQ0xLUGVyU3RhdGVbaV0gPj0gNTQwLjApIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuT3V0YnBwID0gVHJ1bmNUb1ZhbGlkQlBQKAorCQkJCQkJCQkoMS4wIC0gbW9kZV9saWItPnZiYS5Eb3duc3ByZWFkaW5nIC8gMTAwLjApICogNTQwLjAKKwkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLk91dHB1dExpbmtEUExhbmVzW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSAqIDguMCwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5Gb3JjZWRPdXRwdXRMaW5rQlBQW2tdLAorCQkJCQkJCQkJZmFsc2UsCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dFtrXSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5EU0NJbnB1dEJpdFBlckNvbXBvbmVudFtrXSk7CisJCQkJCQltb2RlX2xpYi0+dmJhLk91dGJwcERTQyA9IFRydW5jVG9WYWxpZEJQUCgKKwkJCQkJCQkJKDEuMCAtIG1vZGVfbGliLT52YmEuRG93bnNwcmVhZGluZyAvIDEwMC4wKSAqICgxLjAgLSBtb2RlX2xpYi0+dmJhLkVmZmVjdGl2ZUZFQ092ZXJoZWFkIC8gMTAwLjApICogNTQwLjAKKwkJCQkJCQkJKiBtb2RlX2xpYi0+dmJhLk91dHB1dExpbmtEUExhbmVzW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSAqIDguMCwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5Gb3JjZWRPdXRwdXRMaW5rQlBQW2tdLAorCQkJCQkJCQl0cnVlLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dFtrXSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10pOworCQkJCQkJaWYgKG1vZGVfbGliLT52YmEuRFNDRW5hYmxlZFtrXSA9PSB0cnVlKSB7CisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9IHRydWU7CisJCQkJCQkJaWYgKG1vZGVfbGliLT52YmEuT3V0cHV0W2tdID09IGRtX2RwKSB7CisJCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSB0cnVlOworCQkJCQkJCX0gZWxzZSB7CisJCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSBmYWxzZTsKKwkJCQkJCQl9CisJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHAgPSBtb2RlX2xpYi0+dmJhLk91dGJwcERTQzsKKwkJCQkJCX0gZWxzZSB7CisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9IGZhbHNlOworCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNGRUNbaV1ba10gPSBmYWxzZTsKKwkJCQkJCX0KKwkJCQkJCWxvY2Fscy0+T3V0cHV0QnBwUGVyU3RhdGVbaV1ba10gPSBtb2RlX2xpYi0+dmJhLk91dGJwcDsKKwkJCQkJfQorCQkJCQlpZiAobW9kZV9saWItPnZiYS5PdXRicHAgPT0gQlBQX0lOVkFMSUQKKwkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlBIWUNMS1BlclN0YXRlW2ldCisJCQkJCQkJCQk+PSA4MTAuMCkgeworCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHAgPSBUcnVuY1RvVmFsaWRCUFAoCisJCQkJCQkJCSgxLjAgLSBtb2RlX2xpYi0+dmJhLkRvd25zcHJlYWRpbmcgLyAxMDAuMCkgKiA4MTAuMAorCQkJCQkJCQkqIG1vZGVfbGliLT52YmEuT3V0cHV0TGlua0RQTGFuZXNba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdICogOC4wLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLkZvcmNlZE91dHB1dExpbmtCUFBba10sCisJCQkJCQkJCWZhbHNlLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dFtrXSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuRFNDSW5wdXRCaXRQZXJDb21wb25lbnRba10pOworCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHBEU0MgPSBUcnVuY1RvVmFsaWRCUFAoCisJCQkJCQkJCSgxLjAgLSBtb2RlX2xpYi0+dmJhLkRvd25zcHJlYWRpbmcgLyAxMDAuMCkgKiAoMS4wIC0gbW9kZV9saWItPnZiYS5FZmZlY3RpdmVGRUNPdmVyaGVhZCAvIDEwMC4wKSAqIDgxMC4wCisJCQkJCQkJCSogbW9kZV9saWItPnZiYS5PdXRwdXRMaW5rRFBMYW5lc1trXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gKiA4LjAsCisJCQkJCQkJCW1vZGVfbGliLT52YmEuRm9yY2VkT3V0cHV0TGlua0JQUFtrXSwKKwkJCQkJCQkJdHJ1ZSwKKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRba10sCisJCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdLAorCQkJCQkJCQltb2RlX2xpYi0+dmJhLkRTQ0lucHV0Qml0UGVyQ29tcG9uZW50W2tdKTsKKwkJCQkJCWlmIChtb2RlX2xpYi0+dmJhLkRTQ0VuYWJsZWRba10gPT0gdHJ1ZSB8fCBtb2RlX2xpYi0+dmJhLk91dGJwcCA9PSBCUFBfSU5WQUxJRCkgeworCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNEU0NbaV1ba10gPSB0cnVlOworCQkJCQkJCWlmIChtb2RlX2xpYi0+dmJhLk91dHB1dFtrXSA9PSBkbV9kcCkgeworCQkJCQkJCQlsb2NhbHMtPlJlcXVpcmVzRkVDW2ldW2tdID0gdHJ1ZTsKKwkJCQkJCQl9IGVsc2UgeworCQkJCQkJCQlsb2NhbHMtPlJlcXVpcmVzRkVDW2ldW2tdID0gZmFsc2U7CisJCQkJCQkJfQorCQkJCQkJCW1vZGVfbGliLT52YmEuT3V0YnBwID0gbW9kZV9saWItPnZiYS5PdXRicHBEU0M7CisJCQkJCQl9IGVsc2UgeworCQkJCQkJCWxvY2Fscy0+UmVxdWlyZXNEU0NbaV1ba10gPSBmYWxzZTsKKwkJCQkJCQlsb2NhbHMtPlJlcXVpcmVzRkVDW2ldW2tdID0gZmFsc2U7CisJCQkJCQl9CisJCQkJCQlsb2NhbHMtPk91dHB1dEJwcFBlclN0YXRlW2ldW2tdID0KKwkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRicHA7CisJCQkJCX0KKwkJCQl9CisJCQl9IGVsc2UgeworCQkJCWxvY2Fscy0+T3V0cHV0QnBwUGVyU3RhdGVbaV1ba10gPSBCUFBfQkxFTkRFRF9QSVBFOworCQkJfQorCQl9CisJfQorCWZvciAoaSA9IDA7IGkgPD0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaSsrKSB7CisJCWxvY2Fscy0+RElPU3VwcG9ydFtpXSA9IHRydWU7CisJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJaWYgKGxvY2Fscy0+T3V0cHV0QnBwUGVyU3RhdGVbaV1ba10gPT0gQlBQX0lOVkFMSUQKKwkJCQkJfHwgKG1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdID09IGRtXzQyMAorCQkJCQkJCSYmIG1vZGVfbGliLT52YmEuSW50ZXJsYWNlW2tdID09IHRydWUKKwkJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFAgPT0gdHJ1ZSkpIHsKKwkJCQlsb2NhbHMtPkRJT1N1cHBvcnRbaV0gPSBmYWxzZTsKKwkJCX0KKwkJfQorCX0KKwlmb3IgKGkgPSAwOyBpIDw9IG1vZGVfbGliLT52YmEuc29jLm51bV9zdGF0ZXM7IGkrKykgeworCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCWxvY2Fscy0+RFNDQ0xLUmVxdWlyZWRNb3JlVGhhblN1cHBvcnRlZFtpXSA9IGZhbHNlOworCQkJaWYgKG1vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gaykgeworCQkJCWlmICgobW9kZV9saWItPnZiYS5PdXRwdXRba10gPT0gZG1fZHAKKwkJCQkJCXx8IG1vZGVfbGliLT52YmEuT3V0cHV0W2tdID09IGRtX2VkcCkpIHsKKwkJCQkJaWYgKG1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdID09IGRtXzQyMAorCQkJCQkJCXx8IG1vZGVfbGliLT52YmEuT3V0cHV0Rm9ybWF0W2tdCisJCQkJCQkJCQk9PSBkbV9uNDIyKSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLkRTQ0Zvcm1hdEZhY3RvciA9IDI7CisJCQkJCX0gZWxzZSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLkRTQ0Zvcm1hdEZhY3RvciA9IDE7CisJCQkJCX0KKwkJCQkJaWYgKGxvY2Fscy0+UmVxdWlyZXNEU0NbaV1ba10gPT0gdHJ1ZSkgeworCQkJCQkJaWYgKGxvY2Fscy0+T0RNQ29tYmluZUVuYWJsZVBlclN0YXRlW2ldW2tdCisJCQkJCQkJCT09IHRydWUpIHsKKwkJCQkJCQlpZiAobW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSAvIDYuMCAvIG1vZGVfbGliLT52YmEuRFNDRm9ybWF0RmFjdG9yCisJCQkJCQkJCQk+ICgxLjAgLSBtb2RlX2xpYi0+dmJhLkRJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nIC8gMTAwLjApICogbW9kZV9saWItPnZiYS5NYXhEU0NDTEtbaV0pIHsKKwkJCQkJCQkJbG9jYWxzLT5EU0NDTEtSZXF1aXJlZE1vcmVUaGFuU3VwcG9ydGVkW2ldID0KKwkJCQkJCQkJCQl0cnVlOworCQkJCQkJCX0KKwkJCQkJCX0gZWxzZSB7CisJCQkJCQkJaWYgKG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gLyAzLjAgLyBtb2RlX2xpYi0+dmJhLkRTQ0Zvcm1hdEZhY3RvcgorCQkJCQkJCQkJPiAoMS4wIC0gbW9kZV9saWItPnZiYS5ESVNQQ0xLRFBQQ0xLRFNDQ0xLRG93blNwcmVhZGluZyAvIDEwMC4wKSAqIG1vZGVfbGliLT52YmEuTWF4RFNDQ0xLW2ldKSB7CisJCQkJCQkJCWxvY2Fscy0+RFNDQ0xLUmVxdWlyZWRNb3JlVGhhblN1cHBvcnRlZFtpXSA9CisJCQkJCQkJCQkJdHJ1ZTsKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCX0KKwl9CisJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpKyspIHsKKwkJbG9jYWxzLT5Ob3RFbm91Z2hEU0NVbml0c1tpXSA9IGZhbHNlOworCQltb2RlX2xpYi0+dmJhLlRvdGFsRFNDVW5pdHNSZXF1aXJlZCA9IDAuMDsKKwkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQlpZiAobG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9PSB0cnVlKSB7CisJCQkJaWYgKGxvY2Fscy0+T0RNQ29tYmluZUVuYWJsZVBlclN0YXRlW2ldW2tdID09IHRydWUpIHsKKwkJCQkJbW9kZV9saWItPnZiYS5Ub3RhbERTQ1VuaXRzUmVxdWlyZWQgPQorCQkJCQkJCW1vZGVfbGliLT52YmEuVG90YWxEU0NVbml0c1JlcXVpcmVkICsgMi4wOworCQkJCX0gZWxzZSB7CisJCQkJCW1vZGVfbGliLT52YmEuVG90YWxEU0NVbml0c1JlcXVpcmVkID0KKwkJCQkJCQltb2RlX2xpYi0+dmJhLlRvdGFsRFNDVW5pdHNSZXF1aXJlZCArIDEuMDsKKwkJCQl9CisJCQl9CisJCX0KKwkJaWYgKG1vZGVfbGliLT52YmEuVG90YWxEU0NVbml0c1JlcXVpcmVkID4gbW9kZV9saWItPnZiYS5OdW1iZXJPZkRTQykgeworCQkJbG9jYWxzLT5Ob3RFbm91Z2hEU0NVbml0c1tpXSA9IHRydWU7CisJCX0KKwl9CisJLypEU0MgRGVsYXkgcGVyIHN0YXRlKi8KKworCWZvciAoaSA9IDA7IGkgPD0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaSsrKSB7CisJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJaWYgKG1vZGVfbGliLT52YmEuQmxlbmRpbmdBbmRUaW1pbmdba10gIT0gaykgeworCQkJCW1vZGVfbGliLT52YmEuc2xpY2VzID0gMDsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVtrXSA9PSAwCisJCQkJCXx8IGxvY2Fscy0+UmVxdWlyZXNEU0NbaV1ba10gPT0gZmFsc2UpIHsKKwkJCQltb2RlX2xpYi0+dmJhLnNsaWNlcyA9IDA7CisJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja0JhY2tFbmRba10gPiAzMjAwLjApIHsKKwkJCQltb2RlX2xpYi0+dmJhLnNsaWNlcyA9IGRtbF9jZWlsKAorCQkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSAvIDQwMC4wLAorCQkJCQkJNC4wKTsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSA+IDEzNjAuMCkgeworCQkJCW1vZGVfbGliLT52YmEuc2xpY2VzID0gOC4wOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tCYWNrRW5kW2tdID4gNjgwLjApIHsKKwkJCQltb2RlX2xpYi0+dmJhLnNsaWNlcyA9IDQuMDsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXSA+IDM0MC4wKSB7CisJCQkJbW9kZV9saWItPnZiYS5zbGljZXMgPSAyLjA7CisJCQl9IGVsc2UgeworCQkJCW1vZGVfbGliLT52YmEuc2xpY2VzID0gMS4wOworCQkJfQorCQkJaWYgKGxvY2Fscy0+T3V0cHV0QnBwUGVyU3RhdGVbaV1ba10gPT0gQlBQX0JMRU5ERURfUElQRQorCQkJCQl8fCBsb2NhbHMtPk91dHB1dEJwcFBlclN0YXRlW2ldW2tdID09IEJQUF9JTlZBTElEKSB7CisJCQkJbW9kZV9saWItPnZiYS5icHAgPSAwLjA7CisJCQl9IGVsc2UgeworCQkJCW1vZGVfbGliLT52YmEuYnBwID0gbG9jYWxzLT5PdXRwdXRCcHBQZXJTdGF0ZVtpXVtrXTsKKwkJCX0KKwkJCWlmIChsb2NhbHMtPlJlcXVpcmVzRFNDW2ldW2tdID09IHRydWUgJiYgbW9kZV9saWItPnZiYS5icHAgIT0gMC4wKSB7CisJCQkJaWYgKGxvY2Fscy0+T0RNQ29tYmluZUVuYWJsZVBlclN0YXRlW2ldW2tdID09IGZhbHNlKSB7CisJCQkJCWxvY2Fscy0+RFNDRGVsYXlQZXJTdGF0ZVtpXVtrXSA9CisJCQkJCQkJZHNjY2VDb21wdXRlRGVsYXkoCisJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkRTQ0lucHV0Qml0UGVyQ29tcG9uZW50W2tdLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5icHAsCisJCQkJCQkJCQlkbWxfY2VpbCgKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IQWN0aXZlW2tdCisJCQkJCQkJCQkJCQkJLyBtb2RlX2xpYi0+dmJhLnNsaWNlcywKKwkJCQkJCQkJCQkJMS4wKSwKKwkJCQkJCQkJCW1vZGVfbGliLT52YmEuc2xpY2VzLAorCQkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10pCisJCQkJCQkJCQkrIGRzY0NvbXB1dGVEZWxheSgKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10pOworCQkJCX0gZWxzZSB7CisJCQkJCWxvY2Fscy0+RFNDRGVsYXlQZXJTdGF0ZVtpXVtrXSA9CisJCQkJCQkJMi4wICogKGRzY2NlQ29tcHV0ZURlbGF5KAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLkRTQ0lucHV0Qml0UGVyQ29tcG9uZW50W2tdLAorCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLmJwcCwKKwkJCQkJCQkJCQkJZG1sX2NlaWwobW9kZV9saWItPnZiYS5IQWN0aXZlW2tdIC8gbW9kZV9saWItPnZiYS5zbGljZXMsIDEuMCksCisJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuc2xpY2VzIC8gMiwKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5PdXRwdXRGb3JtYXRba10pCisJCQkJCQkJCQkrIGRzY0NvbXB1dGVEZWxheShtb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSkpOworCQkJCX0KKwkJCQlsb2NhbHMtPkRTQ0RlbGF5UGVyU3RhdGVbaV1ba10gPQorCQkJCQkJbG9jYWxzLT5EU0NEZWxheVBlclN0YXRlW2ldW2tdICogbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrQmFja0VuZFtrXTsKKwkJCX0gZWxzZSB7CisJCQkJbG9jYWxzLT5EU0NEZWxheVBlclN0YXRlW2ldW2tdID0gMC4wOworCQkJfQorCQl9CisJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJZm9yIChtID0gMDsgbSA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgbSsrKSB7CisJCQkJZm9yIChqID0gMDsgaiA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaisrKSB7CisJCQkJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW2tdID09IG0gJiYgbG9jYWxzLT5SZXF1aXJlc0RTQ1tpXVttXSA9PSB0cnVlKQorCQkJCQkJbG9jYWxzLT5EU0NEZWxheVBlclN0YXRlW2ldW2tdID0gbG9jYWxzLT5EU0NEZWxheVBlclN0YXRlW2ldW21dOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKworCS8vUHJlZmV0Y2ggQ2hlY2sKKwlmb3IgKGkgPSAwOyBpIDw9IG1vZGVfbGliLT52YmEuc29jLm51bV9zdGF0ZXM7ICsraSkgeworCQlmb3IgKGogPSAwOyBqIDw9IDE7ICsraikgeworCQkJbG9jYWxzLT5Ub3RhbE51bWJlck9mRENDQWN0aXZlRFBQW2ldW2pdID0gMDsKKwkJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10gPT0gdHJ1ZSkKKwkJCQkJbG9jYWxzLT5Ub3RhbE51bWJlck9mRENDQWN0aXZlRFBQW2ldW2pdID0gbG9jYWxzLT5Ub3RhbE51bWJlck9mRENDQWN0aXZlRFBQW2ldW2pdICsgbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdOworCQkJfQorCQl9CisJfQorCisJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5ID0gZG1sX21heDMoCisJCQltb2RlX2xpYi0+dmJhLlVyZ2VudExhdGVuY3lQaXhlbERhdGFPbmx5LAorCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5UGl4ZWxNaXhlZFdpdGhWTURhdGEsCisJCQltb2RlX2xpYi0+dmJhLlVyZ2VudExhdGVuY3lWTURhdGFPbmx5KTsKKwltb2RlX2xpYi0+dmJhLlByZWZldGNoRVJST1IgPSBDYWxjdWxhdGVNaW5BbmRNYXhQcmVmZXRjaE1vZGUoCisJCQltb2RlX2xpYi0+dmJhLkFsbG93RFJBTVNlbGZSZWZyZXNoT3JEUkFNQ2xvY2tDaGFuZ2VJblZibGFuaywKKwkJCSZtb2RlX2xpYi0+dmJhLk1pblByZWZldGNoTW9kZSwKKwkJCSZtb2RlX2xpYi0+dmJhLk1heFByZWZldGNoTW9kZSk7CisKKwlmb3IgKGkgPSAwOyBpIDw9IG1vZGVfbGliLT52YmEuc29jLm51bV9zdGF0ZXM7IGkrKykgeworCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CisJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQlsb2NhbHMtPlJlcXVpcmVkRFBQQ0xLVGhpc1N0YXRlW2tdID0gbG9jYWxzLT5SZXF1aXJlZERQUENMS1tpXVtqXVtrXTsKKwkJCQlsb2NhbHMtPk5vT2ZEUFBUaGlzU3RhdGVba10gICAgICAgID0gbG9jYWxzLT5Ob09mRFBQW2ldW2pdW2tdOworCQkJCWlmIChsb2NhbHMtPk9ETUNvbWJpbmVFbmFibGVQZXJTdGF0ZVtpXVtrXSA9PSB0cnVlKSB7CisJCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFlUaGlzU3RhdGVba10gPQorCQkJCQkJZG1sX21pbihsb2NhbHMtPlN3YXRoV2lkdGhZU2luZ2xlRFBQW2tdLCBkbWxfcm91bmQobW9kZV9saWItPnZiYS5IQWN0aXZlW2tdIC8gMi4wICogbW9kZV9saWItPnZiYS5IUmF0aW9ba10pKTsKKwkJCQl9IGVsc2UgeworCQkJCQlsb2NhbHMtPlN3YXRoV2lkdGhZVGhpc1N0YXRlW2tdID0gbG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUFtrXSAvIGxvY2Fscy0+Tm9PZkRQUFtpXVtqXVtrXTsKKwkJCQl9CisJCQkJbW9kZV9saWItPnZiYS5Td2F0aFdpZHRoR3JhbnVsYXJpdHlZID0gMjU2LjAKKwkJCQkJLyBkbWxfY2VpbChsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSwgMS4wKQorCQkJCQkvIGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdOworCQkJCW1vZGVfbGliLT52YmEuUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNZID0KKwkJCQkJKGRtbF9jZWlsKGxvY2Fscy0+U3dhdGhXaWR0aFlUaGlzU3RhdGVba10gLSAxLjAsIG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aEdyYW51bGFyaXR5WSkKKwkJCQkJKyBtb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhHcmFudWxhcml0eVkpICogbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10gKiBsb2NhbHMtPk1heFN3YXRoSGVpZ2h0WVtrXTsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfMTApIHsKKwkJCQkJbW9kZV9saWItPnZiYS5Sb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc1kgPSBkbWxfY2VpbCgKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzWSwKKwkJCQkJCQkyNTYuMCkgKyAyNTY7CisJCQkJfQorCQkJCWlmIChsb2NhbHMtPk1heFN3YXRoSGVpZ2h0Q1trXSA+IDAuMCkgeworCQkJCQltb2RlX2xpYi0+dmJhLlN3YXRoV2lkdGhHcmFudWxhcml0eUMgPSAyNTYuMCAvIGRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdLCAyLjApIC8gbG9jYWxzLT5NYXhTd2F0aEhlaWdodENba107CisJCQkJCW1vZGVfbGliLT52YmEuUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDID0gKGRtbF9jZWlsKGxvY2Fscy0+U3dhdGhXaWR0aFlUaGlzU3RhdGVba10gLyAyLjAgLSAxLjAsIG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aEdyYW51bGFyaXR5QykKKwkJCQkJCQkrIG1vZGVfbGliLT52YmEuU3dhdGhXaWR0aEdyYW51bGFyaXR5QykgKiBsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSAqIGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRDW2tdOworCQkJCQlpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSA9PSBkbV80MjBfMTApIHsKKwkJCQkJCW1vZGVfbGliLT52YmEuUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDID0gZG1sX2NlaWwobW9kZV9saWItPnZiYS5Sb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc0MsIDI1Ni4wKSArIDI1NjsKKwkJCQkJfQorCQkJCX0gZWxzZSB7CisJCQkJCW1vZGVfbGliLT52YmEuUm91bmRlZFVwTWF4U3dhdGhTaXplQnl0ZXNDID0gMC4wOworCQkJCX0KKwkJCQlpZiAobW9kZV9saWItPnZiYS5Sb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRlc1kgKyBtb2RlX2xpYi0+dmJhLlJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzQworCQkJCQkJPD0gbW9kZV9saWItPnZiYS5ERVRCdWZmZXJTaXplSW5LQnl0ZSAqIDEwMjQuMCAvIDIuMCkgeworCQkJCQlsb2NhbHMtPlN3YXRoSGVpZ2h0WVRoaXNTdGF0ZVtrXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRZW2tdOworCQkJCQlsb2NhbHMtPlN3YXRoSGVpZ2h0Q1RoaXNTdGF0ZVtrXSA9IGxvY2Fscy0+TWF4U3dhdGhIZWlnaHRDW2tdOworCQkJCX0gZWxzZSB7CisJCQkJCWxvY2Fscy0+U3dhdGhIZWlnaHRZVGhpc1N0YXRlW2tdID0KKwkJCQkJCQlsb2NhbHMtPk1pblN3YXRoSGVpZ2h0WVtrXTsKKwkJCQkJbG9jYWxzLT5Td2F0aEhlaWdodENUaGlzU3RhdGVba10gPQorCQkJCQkJCWxvY2Fscy0+TWluU3dhdGhIZWlnaHRDW2tdOworCQkJCX0KKwkJCX0KKworCQkJQ2FsY3VsYXRlRENGQ0xLRGVlcFNsZWVwKAorCQkJCQltb2RlX2xpYiwKKwkJCQkJbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcywKKwkJCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFksCisJCQkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDLAorCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpbywKKwkJCQkJbG9jYWxzLT5Td2F0aFdpZHRoWVRoaXNTdGF0ZSwKKwkJCQkJbG9jYWxzLT5Ob09mRFBQVGhpc1N0YXRlLAorCQkJCQltb2RlX2xpYi0+dmJhLkhSYXRpbywKKwkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrLAorCQkJCQlsb2NhbHMtPlBTQ0xfRkFDVE9SLAorCQkJCQlsb2NhbHMtPlBTQ0xfRkFDVE9SX0NIUk9NQSwKKwkJCQkJbG9jYWxzLT5SZXF1aXJlZERQUENMS1RoaXNTdGF0ZSwKKwkJCQkJJm1vZGVfbGliLT52YmEuUHJvamVjdGVkRENGQ0xLRGVlcFNsZWVwKTsKKworCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJaWYgKChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF82NAorCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfMzIKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzE2CisJCQkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtX21vbm9fMTYKKwkJCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fbW9ub184KSkgeworCQkJCQltb2RlX2xpYi0+dmJhLlBERUFuZE1ldGFQVEVCeXRlc1BlckZyYW1lQyA9IENhbGN1bGF0ZVZNQW5kUm93Qnl0ZXMoCisJCQkJCQkJbW9kZV9saWIsCisJCQkJCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10sCisJCQkJCQkJbG9jYWxzLT5SZWFkMjU2QmxvY2tIZWlnaHRDW2tdLAorCQkJCQkJCWxvY2Fscy0+UmVhZDI1NkJsb2NrV2lkdGhDW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5TdXJmYWNlVGlsaW5nW2tdLAorCQkJCQkJCWRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdLCAyLjApLAorCQkJCQkJCW1vZGVfbGliLT52YmEuU291cmNlU2NhbltrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlZpZXdwb3J0V2lkdGhba10gLyAyLjAsCisJCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydEhlaWdodFtrXSAvIDIuMCwKKwkJCQkJCQlsb2NhbHMtPlN3YXRoV2lkdGhZVGhpc1N0YXRlW2tdIC8gMi4wLAorCQkJCQkJCW1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUsCisJCQkJCQkJbW9kZV9saWItPnZiYS5Ib3N0Vk1FbmFibGUsCisJCQkJCQkJbW9kZV9saWItPnZiYS5Ib3N0Vk1NYXhQYWdlVGFibGVMZXZlbHMsCisJCQkJCQkJbW9kZV9saWItPnZiYS5Ib3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHMsCisJCQkJCQkJbW9kZV9saWItPnZiYS5WTU1QYWdlU2l6ZSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlBURUJ1ZmZlclNpemVJblJlcXVlc3RzQ2hyb21hLAorCQkJCQkJCW1vZGVfbGliLT52YmEuUGl0Y2hDW2tdLAorCQkJCQkJCTAuMCwKKwkJCQkJCQkmbG9jYWxzLT5NYWNyb1RpbGVXaWR0aENba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEuTWV0YVJvd0J5dGVzQywKKwkJCQkJCQkmbW9kZV9saWItPnZiYS5EUFRFQnl0ZXNQZXJSb3dDLAorCQkJCQkJCSZsb2NhbHMtPlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZENbaV1bal1ba10sCisJCQkJCQkJbG9jYWxzLT5kcHRlX3Jvd193aWR0aF9jaHJvbWFfdWIsCisJCQkJCQkJJmxvY2Fscy0+ZHB0ZV9yb3dfaGVpZ2h0X2Nocm9tYVtrXSwKKwkJCQkJCQkmbG9jYWxzLT5tZXRhX3JlcV93aWR0aF9jaHJvbWFba10sCisJCQkJCQkJJmxvY2Fscy0+bWV0YV9yZXFfaGVpZ2h0X2Nocm9tYVtrXSwKKwkJCQkJCQkmbG9jYWxzLT5tZXRhX3Jvd193aWR0aF9jaHJvbWFba10sCisJCQkJCQkJJmxvY2Fscy0+bWV0YV9yb3dfaGVpZ2h0X2Nocm9tYVtrXSwKKwkJCQkJCQkmbG9jYWxzLT52bV9ncm91cF9ieXRlc19jaHJvbWEsCisJCQkJCQkJJmxvY2Fscy0+ZHB0ZV9ncm91cF9ieXRlc19jaHJvbWEsCisJCQkJCQkJbG9jYWxzLT5QaXhlbFBURVJlcVdpZHRoQywKKwkJCQkJCQlsb2NhbHMtPlBpeGVsUFRFUmVxSGVpZ2h0QywKKwkJCQkJCQlsb2NhbHMtPlBURVJlcXVlc3RTaXplQywKKwkJCQkJCQlsb2NhbHMtPmRwZGUwX2J5dGVzX3Blcl9mcmFtZV91Yl9jLAorCQkJCQkJCWxvY2Fscy0+bWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2MpOworCQkJCQlsb2NhbHMtPlByZWZldGNoTGluZXNDW2tdID0gQ2FsY3VsYXRlUHJlZmV0Y2hTb3VyY2VMaW5lcygKKwkJCQkJCQltb2RlX2xpYiwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXS8yLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVlRBUHNDaHJvbWFba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5JbnRlcmxhY2Vba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5Qcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQkJCQkJCWxvY2Fscy0+U3dhdGhIZWlnaHRDVGhpc1N0YXRlW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRZU3RhcnRDW2tdLAorCQkJCQkJCSZsb2NhbHMtPlByZWZpbGxDW2tdLAorCQkJCQkJCSZsb2NhbHMtPk1heE51bVN3Q1trXSk7CisJCQkJCWxvY2Fscy0+UFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNGb3JMdW1hID0gbW9kZV9saWItPnZiYS5QVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0x1bWE7CisJCQkJfSBlbHNlIHsKKwkJCQkJbW9kZV9saWItPnZiYS5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZUMgPSAwLjA7CisJCQkJCW1vZGVfbGliLT52YmEuTWV0YVJvd0J5dGVzQyA9IDAuMDsKKwkJCQkJbW9kZV9saWItPnZiYS5EUFRFQnl0ZXNQZXJSb3dDID0gMC4wOworCQkJCQlsb2NhbHMtPlByZWZldGNoTGluZXNDW2tdID0gMC4wOworCQkJCQlsb2NhbHMtPlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZENbaV1bal1ba10gPSB0cnVlOworCQkJCQlsb2NhbHMtPlBURUJ1ZmZlclNpemVJblJlcXVlc3RzRm9yTHVtYSA9IG1vZGVfbGliLT52YmEuUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNMdW1hICsgbW9kZV9saWItPnZiYS5QVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0Nocm9tYTsKKwkJCQl9CisJCQkJbW9kZV9saWItPnZiYS5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZVkgPSBDYWxjdWxhdGVWTUFuZFJvd0J5dGVzKAorCQkJCQkJbW9kZV9saWIsCisJCQkJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSwKKwkJCQkJCWxvY2Fscy0+UmVhZDI1NkJsb2NrSGVpZ2h0WVtrXSwKKwkJCQkJCWxvY2Fscy0+UmVhZDI1NkJsb2NrV2lkdGhZW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuU3VyZmFjZVRpbGluZ1trXSwKKwkJCQkJCWRtbF9jZWlsKGxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRZW2tdLCAxLjApLAorCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydFdpZHRoW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydEhlaWdodFtrXSwKKwkJCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFlUaGlzU3RhdGVba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJCQkJbW9kZV9saWItPnZiYS5Ib3N0Vk1FbmFibGUsCisJCQkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTU1heFBhZ2VUYWJsZUxldmVscywKKwkJCQkJCW1vZGVfbGliLT52YmEuSG9zdFZNQ2FjaGVkUGFnZVRhYmxlTGV2ZWxzLAorCQkJCQkJbW9kZV9saWItPnZiYS5WTU1QYWdlU2l6ZSwKKwkJCQkJCWxvY2Fscy0+UFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNGb3JMdW1hLAorCQkJCQkJbW9kZV9saWItPnZiYS5QaXRjaFlba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkRDQ01ldGFQaXRjaFlba10sCisJCQkJCQkmbG9jYWxzLT5NYWNyb1RpbGVXaWR0aFlba10sCisJCQkJCQkmbW9kZV9saWItPnZiYS5NZXRhUm93Qnl0ZXNZLAorCQkJCQkJJm1vZGVfbGliLT52YmEuRFBURUJ5dGVzUGVyUm93WSwKKwkJCQkJCSZsb2NhbHMtPlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZFlbaV1bal1ba10sCisJCQkJCQlsb2NhbHMtPmRwdGVfcm93X3dpZHRoX2x1bWFfdWIsCisJCQkJCQkmbG9jYWxzLT5kcHRlX3Jvd19oZWlnaHRba10sCisJCQkJCQkmbG9jYWxzLT5tZXRhX3JlcV93aWR0aFtrXSwKKwkJCQkJCSZsb2NhbHMtPm1ldGFfcmVxX2hlaWdodFtrXSwKKwkJCQkJCSZsb2NhbHMtPm1ldGFfcm93X3dpZHRoW2tdLAorCQkJCQkJJmxvY2Fscy0+bWV0YV9yb3dfaGVpZ2h0W2tdLAorCQkJCQkJJmxvY2Fscy0+dm1fZ3JvdXBfYnl0ZXNba10sCisJCQkJCQkmbG9jYWxzLT5kcHRlX2dyb3VwX2J5dGVzW2tdLAorCQkJCQkJbG9jYWxzLT5QaXhlbFBURVJlcVdpZHRoWSwKKwkJCQkJCWxvY2Fscy0+UGl4ZWxQVEVSZXFIZWlnaHRZLAorCQkJCQkJbG9jYWxzLT5QVEVSZXF1ZXN0U2l6ZVksCisJCQkJCQlsb2NhbHMtPmRwZGUwX2J5dGVzX3Blcl9mcmFtZV91Yl9sLAorCQkJCQkJbG9jYWxzLT5tZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbCk7CisJCQkJbG9jYWxzLT5QcmVmZXRjaExpbmVzWVtrXSA9IENhbGN1bGF0ZVByZWZldGNoU291cmNlTGluZXMoCisJCQkJCQltb2RlX2xpYiwKKwkJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS52dGFwc1trXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuSW50ZXJsYWNlW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5Qcm9ncmVzc2l2ZVRvSW50ZXJsYWNlVW5pdEluT1BQLAorCQkJCQkJbG9jYWxzLT5Td2F0aEhlaWdodFlUaGlzU3RhdGVba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLlZpZXdwb3J0WVN0YXJ0WVtrXSwKKwkJCQkJCSZsb2NhbHMtPlByZWZpbGxZW2tdLAorCQkJCQkJJmxvY2Fscy0+TWF4TnVtU3dZW2tdKTsKKwkJCQlsb2NhbHMtPlBERUFuZE1ldGFQVEVCeXRlc1BlckZyYW1lW2tdID0KKwkJCQkJCW1vZGVfbGliLT52YmEuUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVZICsgbW9kZV9saWItPnZiYS5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZUM7CisJCQkJbG9jYWxzLT5NZXRhUm93Qnl0ZXNba10gPSBtb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlc1kgKyBtb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlc0M7CisJCQkJbG9jYWxzLT5EUFRFQnl0ZXNQZXJSb3dba10gPSBtb2RlX2xpYi0+dmJhLkRQVEVCeXRlc1BlclJvd1kgKyBtb2RlX2xpYi0+dmJhLkRQVEVCeXRlc1BlclJvd0M7CisKKwkJCQlDYWxjdWxhdGVBY3RpdmVSb3dCYW5kd2lkdGgoCisJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvCisJCQkJCQltb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10sCisJCQkJCQltb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlc1ksCisJCQkJCQltb2RlX2xpYi0+dmJhLk1ldGFSb3dCeXRlc0MsCisJCQkJCQlsb2NhbHMtPm1ldGFfcm93X2hlaWdodFtrXSwKKwkJCQkJCWxvY2Fscy0+bWV0YV9yb3dfaGVpZ2h0X2Nocm9tYVtrXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuRFBURUJ5dGVzUGVyUm93WSwKKwkJCQkJCW1vZGVfbGliLT52YmEuRFBURUJ5dGVzUGVyUm93QywKKwkJCQkJCWxvY2Fscy0+ZHB0ZV9yb3dfaGVpZ2h0W2tdLAorCQkJCQkJbG9jYWxzLT5kcHRlX3Jvd19oZWlnaHRfY2hyb21hW2tdLAorCQkJCQkJJmxvY2Fscy0+bWV0YV9yb3dfYndba10sCisJCQkJCQkmbG9jYWxzLT5kcHRlX3Jvd19id1trXSk7CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLkV4dHJhTGF0ZW5jeSA9IENhbGN1bGF0ZUV4dHJhTGF0ZW5jeSgKKwkJCQkJbG9jYWxzLT5VcmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeVBlclN0YXRlW2ldLAorCQkJCQlsb2NhbHMtPlRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbaV1bal0sCisJCQkJCW1vZGVfbGliLT52YmEuUGl4ZWxDaHVua1NpemVJbktCeXRlLAorCQkJCQlsb2NhbHMtPlRvdGFsTnVtYmVyT2ZEQ0NBY3RpdmVEUFBbaV1bal0sCisJCQkJCW1vZGVfbGliLT52YmEuTWV0YUNodW5rU2l6ZSwKKwkJCQkJbG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW2ldLAorCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNRW5hYmxlLAorCQkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTUVuYWJsZSwKKwkJCQkJbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcywKKwkJCQkJbG9jYWxzLT5Ob09mRFBQVGhpc1N0YXRlLAorCQkJCQlsb2NhbHMtPmRwdGVfZ3JvdXBfYnl0ZXMsCisJCQkJCW1vZGVfbGliLT52YmEuUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lQaXhlbE1peGVkV2l0aFZNRGF0YSwKKwkJCQkJbW9kZV9saWItPnZiYS5QZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVZNRGF0YU9ubHksCisJCQkJCW1vZGVfbGliLT52YmEuSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQkJCQltb2RlX2xpYi0+dmJhLkhvc3RWTUNhY2hlZFBhZ2VUYWJsZUxldmVscyk7CisKKwkJCW1vZGVfbGliLT52YmEuVGltZUNhbGMgPSAyNC4wIC8gbW9kZV9saWItPnZiYS5Qcm9qZWN0ZWREQ0ZDTEtEZWVwU2xlZXA7CisJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBrKSB7CisJCQkJCWlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQkJCQlsb2NhbHMtPldyaXRlYmFja0RlbGF5W2ldW2tdID0gbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5CisJCQkJCQkJCSsgQ2FsY3VsYXRlV3JpdGVCYWNrRGVsYXkoCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1trXSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW2tdLAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNba10sCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW2tdKSAvIGxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdOworCQkJCQl9IGVsc2UgeworCQkJCQkJbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVtpXVtrXSA9IDAuMDsKKwkJCQkJfQorCQkJCQlmb3IgKG0gPSAwOyBtIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBtKyspIHsKKwkJCQkJCWlmIChtb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nW21dID09IGsKKwkJCQkJCQkJJiYgbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tFbmFibGVbbV0KKwkJCQkJCQkJCQk9PSB0cnVlKSB7CisJCQkJCQkJbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVtpXVtrXSA9IGRtbF9tYXgobG9jYWxzLT5Xcml0ZWJhY2tEZWxheVtpXVtrXSwKKwkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tMYXRlbmN5ICsgQ2FsY3VsYXRlV3JpdGVCYWNrRGVsYXkoCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tQaXhlbEZvcm1hdFttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1ttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1ttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFIVGFwc1ttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0x1bWFWVGFwc1ttXSwKKwkJCQkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Nocm9tYUhUYXBzW21dLAorCQkJCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2hyb21hVlRhcHNbbV0sCisJCQkJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW21dKSAvIGxvY2Fscy0+UmVxdWlyZWRESVNQQ0xLW2ldW2pdKTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCWZvciAobSA9IDA7IG0gPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IG0rKykgeworCQkJCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBtKSB7CisJCQkJCQlsb2NhbHMtPldyaXRlYmFja0RlbGF5W2ldW2tdID0gbG9jYWxzLT5Xcml0ZWJhY2tEZWxheVtpXVttXTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCW1vZGVfbGliLT52YmEuTWF4TWF4VlN0YXJ0dXAgPSAwOworCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJbG9jYWxzLT5NYXhpbXVtVlN0YXJ0dXBba10gPSBtb2RlX2xpYi0+dmJhLlZUb3RhbFtrXSAtIG1vZGVfbGliLT52YmEuVkFjdGl2ZVtrXQorCQkJCQktIGRtbF9tYXgoMS4wLCBkbWxfY2VpbChsb2NhbHMtPldyaXRlYmFja0RlbGF5W2ldW2tdIC8gKG1vZGVfbGliLT52YmEuSFRvdGFsW2tdIC8gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdKSwgMS4wKSk7CisJCQkJbW9kZV9saWItPnZiYS5NYXhNYXhWU3RhcnR1cCA9IGRtbF9tYXgobW9kZV9saWItPnZiYS5NYXhNYXhWU3RhcnR1cCwgbG9jYWxzLT5NYXhpbXVtVlN0YXJ0dXBba10pOworCQkJfQorCisJCQltb2RlX2xpYi0+dmJhLk5leHRQcmVmZXRjaE1vZGUgPSBtb2RlX2xpYi0+dmJhLk1pblByZWZldGNoTW9kZTsKKwkJCW1vZGVfbGliLT52YmEuTmV4dE1heFZTdGFydHVwID0gbW9kZV9saWItPnZiYS5NYXhNYXhWU3RhcnR1cDsKKwkJCWRvIHsKKwkJCQltb2RlX2xpYi0+dmJhLlByZWZldGNoTW9kZVtpXVtqXSA9IG1vZGVfbGliLT52YmEuTmV4dFByZWZldGNoTW9kZTsKKwkJCQltb2RlX2xpYi0+dmJhLk1heFZTdGFydHVwID0gbW9kZV9saWItPnZiYS5OZXh0TWF4VlN0YXJ0dXA7CisKKwkJCQltb2RlX2xpYi0+dmJhLlRXYWl0ID0gQ2FsY3VsYXRlVFdhaXQoCisJCQkJCQltb2RlX2xpYi0+dmJhLlByZWZldGNoTW9kZVtpXVtqXSwKKwkJCQkJCW1vZGVfbGliLT52YmEuRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeSwKKwkJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeSwKKwkJCQkJCW1vZGVfbGliLT52YmEuU1JFbnRlclBsdXNFeGl0VGltZSk7CisJCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJCVBpcGUgbXlQaXBlOworCQkJCQlIb3N0Vk0gbXlIb3N0Vk07CisKKwkJCQkJaWYgKG1vZGVfbGliLT52YmEuWEZDRW5hYmxlZFtrXSA9PSB0cnVlKSB7CisJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVsYXkgPQorCQkJCQkJCQlDYWxjdWxhdGVSZW1vdGVTdXJmYWNlRmxpcERlbGF5KAorCQkJCQkJCQkJCW1vZGVfbGliLAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvW2tdLAorCQkJCQkJCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFlUaGlzU3RhdGVba10sCisJCQkJCQkJCQkJZG1sX2NlaWwobG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10sIDEuMCksCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10sCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNUU2x2VnVwZGF0ZU9mZnNldCwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1RTbHZWdXBkYXRlV2lkdGgsCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNUU2x2VnJlYWR5T2Zmc2V0LAorCQkJCQkJCQkJCW1vZGVfbGliLT52YmEuWEZDWEJVRkxhdGVuY3lUb2xlcmFuY2UsCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNGaWxsQldPdmVyaGVhZCwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ1NsdkNodW5rU2l6ZSwKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ0J1c1RyYW5zcG9ydFRpbWUsCisJCQkJCQkJCQkJbW9kZV9saWItPnZiYS5UaW1lQ2FsYywKKwkJCQkJCQkJCQltb2RlX2xpYi0+dmJhLlRXYWl0LAorCQkJCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlNyY0FjdGl2ZURyYWluUmF0ZSwKKwkJCQkJCQkJCQkmbW9kZV9saWItPnZiYS5USW5pdFhGaWxsLAorCQkJCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlRzbHZDaGspOworCQkJCQl9IGVsc2UgeworCQkJCQkJbW9kZV9saWItPnZiYS5YRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5ID0gMC4wOworCQkJCQl9CisKKwkJCQkJbXlQaXBlLkRQUENMSyA9IGxvY2Fscy0+UmVxdWlyZWREUFBDTEtbaV1bal1ba107CisJCQkJCW15UGlwZS5ESVNQQ0xLID0gbG9jYWxzLT5SZXF1aXJlZERJU1BDTEtbaV1bal07CisJCQkJCW15UGlwZS5QaXhlbENsb2NrID0gbW9kZV9saWItPnZiYS5QaXhlbENsb2NrW2tdOworCQkJCQlteVBpcGUuRENGQ0xLRGVlcFNsZWVwID0gbW9kZV9saWItPnZiYS5Qcm9qZWN0ZWREQ0ZDTEtEZWVwU2xlZXA7CisJCQkJCW15UGlwZS5EUFBQZXJQbGFuZSA9IGxvY2Fscy0+Tm9PZkRQUFtpXVtqXVtrXTsKKwkJCQkJbXlQaXBlLlNjYWxlckVuYWJsZWQgPSBtb2RlX2xpYi0+dmJhLlNjYWxlckVuYWJsZWRba107CisJCQkJCW15UGlwZS5Tb3VyY2VTY2FuID0gbW9kZV9saWItPnZiYS5Tb3VyY2VTY2FuW2tdOworCQkJCQlteVBpcGUuQmxvY2tXaWR0aDI1NkJ5dGVzWSA9IGxvY2Fscy0+UmVhZDI1NkJsb2NrV2lkdGhZW2tdOworCQkJCQlteVBpcGUuQmxvY2tIZWlnaHQyNTZCeXRlc1kgPSBsb2NhbHMtPlJlYWQyNTZCbG9ja0hlaWdodFlba107CisJCQkJCW15UGlwZS5CbG9ja1dpZHRoMjU2Qnl0ZXNDID0gbG9jYWxzLT5SZWFkMjU2QmxvY2tXaWR0aENba107CisJCQkJCW15UGlwZS5CbG9ja0hlaWdodDI1NkJ5dGVzQyA9IGxvY2Fscy0+UmVhZDI1NkJsb2NrSGVpZ2h0Q1trXTsKKwkJCQkJbXlQaXBlLkludGVybGFjZUVuYWJsZSA9IG1vZGVfbGliLT52YmEuSW50ZXJsYWNlW2tdOworCQkJCQlteVBpcGUuTnVtYmVyT2ZDdXJzb3JzID0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkN1cnNvcnNba107CisJCQkJCW15UGlwZS5WQmxhbmsgPSBtb2RlX2xpYi0+dmJhLlZUb3RhbFtrXSAtIG1vZGVfbGliLT52YmEuVkFjdGl2ZVtrXTsKKwkJCQkJbXlQaXBlLkhUb3RhbCA9IG1vZGVfbGliLT52YmEuSFRvdGFsW2tdOworCisKKwkJCQkJbXlIb3N0Vk0uRW5hYmxlID0gbW9kZV9saWItPnZiYS5Ib3N0Vk1FbmFibGU7CisJCQkJCW15SG9zdFZNLk1heFBhZ2VUYWJsZUxldmVscyA9IG1vZGVfbGliLT52YmEuSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzOworCQkJCQlteUhvc3RWTS5DYWNoZWRQYWdlVGFibGVMZXZlbHMgPSBtb2RlX2xpYi0+dmJhLkhvc3RWTUNhY2hlZFBhZ2VUYWJsZUxldmVsczsKKworCisJCQkJCW1vZGVfbGliLT52YmEuSXNFcnJvclJlc3VsdFtpXVtqXVtrXSA9IENhbGN1bGF0ZVByZWZldGNoU2NoZWR1bGUoCisJCQkJCQkJbW9kZV9saWIsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhLAorCQkJCQkJCW1vZGVfbGliLT52YmEuUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lWTURhdGFPbmx5LAorCQkJCQkJCSZteVBpcGUsCisJCQkJCQkJbG9jYWxzLT5EU0NEZWxheVBlclN0YXRlW2ldW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRFBQQ0xLRGVsYXlTdWJ0b3RhbCwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRQUENMS0RlbGF5U0NMLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRFBQQ0xLRGVsYXlTQ0xMQk9ubHksCisJCQkJCQkJbW9kZV9saWItPnZiYS5EUFBDTEtEZWxheUNOVkNGb3JtYXRlciwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRQUENMS0RlbGF5Q05WQ0N1cnNvciwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRJU1BDTEtEZWxheVN1YnRvdGFsLAorCQkJCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFlUaGlzU3RhdGVba10gLyBtb2RlX2xpYi0+dmJhLkhSYXRpb1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLk91dHB1dEZvcm1hdFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLk1heEludGVyRENOVGlsZVJlcGVhdGVycywKKwkJCQkJCQlkbWxfbWluKG1vZGVfbGliLT52YmEuTWF4VlN0YXJ0dXAsIGxvY2Fscy0+TWF4aW11bVZTdGFydHVwW2tdKSwKKwkJCQkJCQlsb2NhbHMtPk1heGltdW1WU3RhcnR1cFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQkJCQkJCW1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUsCisJCQkJCQkJJm15SG9zdFZNLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhRW5hYmxlW2tdLAorCQkJCQkJCW1vZGVfbGliLT52YmEuRHluYW1pY01ldGFkYXRhTGluZXNCZWZvcmVBY3RpdmVSZXF1aXJlZFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkR5bmFtaWNNZXRhZGF0YVRyYW5zbWl0dGVkQnl0ZXNba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5EQ0NFbmFibGVba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5LAorCQkJCQkJCW1vZGVfbGliLT52YmEuRXh0cmFMYXRlbmN5LAorCQkJCQkJCW1vZGVfbGliLT52YmEuVGltZUNhbGMsCisJCQkJCQkJbG9jYWxzLT5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZVtrXSwKKwkJCQkJCQlsb2NhbHMtPk1ldGFSb3dCeXRlc1trXSwKKwkJCQkJCQlsb2NhbHMtPkRQVEVCeXRlc1BlclJvd1trXSwKKwkJCQkJCQlsb2NhbHMtPlByZWZldGNoTGluZXNZW2tdLAorCQkJCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFlUaGlzU3RhdGVba10sCisJCQkJCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVFlba10sCisJCQkJCQkJbG9jYWxzLT5QcmVmaWxsWVtrXSwKKwkJCQkJCQlsb2NhbHMtPk1heE51bVN3WVtrXSwKKwkJCQkJCQlsb2NhbHMtPlByZWZldGNoTGluZXNDW2tdLAorCQkJCQkJCWxvY2Fscy0+Qnl0ZVBlclBpeGVsSW5ERVRDW2tdLAorCQkJCQkJCWxvY2Fscy0+UHJlZmlsbENba10sCisJCQkJCQkJbG9jYWxzLT5NYXhOdW1Td0Nba10sCisJCQkJCQkJbG9jYWxzLT5Td2F0aEhlaWdodFlUaGlzU3RhdGVba10sCisJCQkJCQkJbG9jYWxzLT5Td2F0aEhlaWdodENUaGlzU3RhdGVba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5UV2FpdCwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlhGQ0VuYWJsZWRba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5YRkNSZW1vdGVTdXJmYWNlRmxpcERlbGF5LAorCQkJCQkJCW1vZGVfbGliLT52YmEuUHJvZ3Jlc3NpdmVUb0ludGVybGFjZVVuaXRJbk9QUCwKKwkJCQkJCQkmbG9jYWxzLT5kc3RfeF9hZnRlcl9zY2FsZXIsCisJCQkJCQkJJmxvY2Fscy0+ZHN0X3lfYWZ0ZXJfc2NhbGVyLAorCQkJCQkJCSZsb2NhbHMtPkxpbmVUaW1lc0ZvclByZWZldGNoW2tdLAorCQkJCQkJCSZsb2NhbHMtPlByZWZldGNoQldba10sCisJCQkJCQkJJmxvY2Fscy0+TGluZXNGb3JNZXRhUFRFW2tdLAorCQkJCQkJCSZsb2NhbHMtPkxpbmVzRm9yTWV0YUFuZERQVEVSb3dba10sCisJCQkJCQkJJmxvY2Fscy0+VlJhdGlvUHJlWVtpXVtqXVtrXSwKKwkJCQkJCQkmbG9jYWxzLT5WUmF0aW9QcmVDW2ldW2pdW2tdLAorCQkJCQkJCSZsb2NhbHMtPlJlcXVpcmVkUHJlZmV0Y2hQaXhlbERhdGFCV0x1bWFbaV1bal1ba10sCisJCQkJCQkJJmxvY2Fscy0+UmVxdWlyZWRQcmVmZXRjaFBpeGVsRGF0YUJXQ2hyb21hW2ldW2pdW2tdLAorCQkJCQkJCSZsb2NhbHMtPlZTdGFydHVwUmVxdWlyZWRXaGVuTm90RW5vdWdoVGltZUZvckR5bmFtaWNNZXRhZGF0YSwKKwkJCQkJCQkmbG9jYWxzLT5Ubm9fYndba10sCisJCQkJCQkJJmxvY2Fscy0+cHJlZmV0Y2hfdm1yb3dfYndba10sCisJCQkJCQkJbG9jYWxzLT5zd2F0aF93aWR0aF9sdW1hX3ViLAorCQkJCQkJCWxvY2Fscy0+c3dhdGhfd2lkdGhfY2hyb21hX3ViLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlZVcGRhdGVPZmZzZXRQaXhba10sCisJCQkJCQkJJm1vZGVfbGliLT52YmEuVlVwZGF0ZVdpZHRoUGl4W2tdLAorCQkJCQkJCSZtb2RlX2xpYi0+dmJhLlZSZWFkeU9mZnNldFBpeFtrXSk7CisJCQkJfQorCQkJCW1vZGVfbGliLT52YmEuTWF4aW11bVJlYWRCYW5kd2lkdGhXaXRob3V0UHJlZmV0Y2ggPSAwLjA7CisJCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhQcmVmZXRjaCA9IDAuMDsKKwkJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQkJdWludCBtOworCisJCQkJCWxvY2Fscy0+Y3Vyc29yX2J3W2tdID0gMDsKKwkJCQkJbG9jYWxzLT5jdXJzb3JfYndfcHJlW2tdID0gMDsKKwkJCQkJZm9yIChtID0gMDsgbSA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZDdXJzb3JzW2tdOyBtKyspIHsKKwkJCQkJCWxvY2Fscy0+Y3Vyc29yX2J3W2tdID0gbW9kZV9saWItPnZiYS5DdXJzb3JXaWR0aFtrXVttXSAqIG1vZGVfbGliLT52YmEuQ3Vyc29yQlBQW2tdW21dCisJCQkJCQkJLyA4LjAgLyAobW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10pICogbW9kZV9saWItPnZiYS5WUmF0aW9ba107CisJCQkJCQlsb2NhbHMtPmN1cnNvcl9id19wcmVba10gPSBtb2RlX2xpYi0+dmJhLkN1cnNvcldpZHRoW2tdW21dICogbW9kZV9saWItPnZiYS5DdXJzb3JCUFBba11bbV0KKwkJCQkJCQkvIDguMCAvIChtb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSkgKiBsb2NhbHMtPlZSYXRpb1ByZVlbaV1bal1ba107CisJCQkJCX0KKworCQkJCQlDYWxjdWxhdGVVcmdlbnRCdXJzdEZhY3RvcigKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRFVEJ1ZmZlclNpemVJbktCeXRlLAorCQkJCQkJCWxvY2Fscy0+U3dhdGhIZWlnaHRZVGhpc1N0YXRlW2tdLAorCQkJCQkJCWxvY2Fscy0+U3dhdGhIZWlnaHRDVGhpc1N0YXRlW2tdLAorCQkJCQkJCWxvY2Fscy0+U3dhdGhXaWR0aFlUaGlzU3RhdGVba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5IVG90YWxba10gLyBtb2RlX2xpYi0+dmJhLlBpeGVsQ2xvY2tba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5LAorCQkJCQkJCW1vZGVfbGliLT52YmEuQ3Vyc29yQnVmZmVyU2l6ZSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkN1cnNvcldpZHRoW2tdWzBdICsgbW9kZV9saWItPnZiYS5DdXJzb3JXaWR0aFtrXVsxXSwKKwkJCQkJCQlkbWxfbWF4KG1vZGVfbGliLT52YmEuQ3Vyc29yQlBQW2tdWzBdLCBtb2RlX2xpYi0+dmJhLkN1cnNvckJQUFtrXVsxXSksCisJCQkJCQkJbW9kZV9saWItPnZiYS5WUmF0aW9ba10sCisJCQkJCQkJbG9jYWxzLT5WUmF0aW9QcmVZW2ldW2pdW2tdLAorCQkJCQkJCWxvY2Fscy0+VlJhdGlvUHJlQ1tpXVtqXVtrXSwKKwkJCQkJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWVtrXSwKKwkJCQkJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUQ1trXSwKKwkJCQkJCQkmbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvcltrXSwKKwkJCQkJCQkmbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvclByZVtrXSwKKwkJCQkJCQkmbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3Rvckx1bWFba10sCisJCQkJCQkJJmxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JMdW1hUHJlW2tdLAorCQkJCQkJCSZsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hW2tdLAorCQkJCQkJCSZsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hUHJlW2tdLAorCQkJCQkJCSZsb2NhbHMtPk5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmcsCisJCQkJCQkJJmxvY2Fscy0+Tm90RW5vdWdoVXJnZW50TGF0ZW5jeUhpZGluZ1ByZSk7CisKKwkJCQkJaWYgKG1vZGVfbGliLT52YmEuVXNlVXJnZW50QnVyc3RCYW5kd2lkdGggPT0gZmFsc2UpIHsKKwkJCQkJCWxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDdXJzb3Jba10gPSAxOworCQkJCQkJbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvclByZVtrXSA9IDE7CisJCQkJCQlsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVtrXSA9IDE7CisJCQkJCQlsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVByZVtrXSA9IDE7CisJCQkJCQlsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hW2tdID0gMTsKKwkJCQkJCWxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDaHJvbWFQcmVba10gPSAxOworCQkJCQl9CisKKwkJCQkJbW9kZV9saWItPnZiYS5NYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhvdXRQcmVmZXRjaCA9IG1vZGVfbGliLT52YmEuTWF4aW11bVJlYWRCYW5kd2lkdGhXaXRob3V0UHJlZmV0Y2gKKwkJCQkJCSsgbG9jYWxzLT5jdXJzb3JfYndba10gKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ3Vyc29yW2tdICsgbG9jYWxzLT5SZWFkQmFuZHdpZHRoTHVtYVtrXQorCQkJCQkJKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVtrXSArIGxvY2Fscy0+UmVhZEJhbmR3aWR0aENocm9tYVtrXQorCQkJCQkJKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hW2tdICsgbG9jYWxzLT5tZXRhX3Jvd19id1trXSArIGxvY2Fscy0+ZHB0ZV9yb3dfYndba107CisJCQkJCW1vZGVfbGliLT52YmEuTWF4aW11bVJlYWRCYW5kd2lkdGhXaXRoUHJlZmV0Y2ggPSBtb2RlX2xpYi0+dmJhLk1heGltdW1SZWFkQmFuZHdpZHRoV2l0aFByZWZldGNoCisJCQkJCQkrIGRtbF9tYXgzKGxvY2Fscy0+cHJlZmV0Y2hfdm1yb3dfYndba10sCisJCQkJCQlsb2NhbHMtPlJlYWRCYW5kd2lkdGhMdW1hW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3Rvckx1bWFba10gKyBsb2NhbHMtPlJlYWRCYW5kd2lkdGhDaHJvbWFba10KKwkJCQkJCSogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckNocm9tYVtrXSArIGxvY2Fscy0+Y3Vyc29yX2J3W2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvcltrXQorCQkJCQkJKyBsb2NhbHMtPm1ldGFfcm93X2J3W2tdICsgbG9jYWxzLT5kcHRlX3Jvd19id1trXSwKKwkJCQkJCWxvY2Fscy0+UmVxdWlyZWRQcmVmZXRjaFBpeGVsRGF0YUJXTHVtYVtpXVtqXVtrXSAqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JMdW1hUHJlW2tdCisJCQkJCQkrIGxvY2Fscy0+UmVxdWlyZWRQcmVmZXRjaFBpeGVsRGF0YUJXQ2hyb21hW2ldW2pdW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckNocm9tYVByZVtrXQorCQkJCQkJKyBsb2NhbHMtPmN1cnNvcl9id19wcmVba10gKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ3Vyc29yUHJlW2tdKTsKKwkJCQl9CisJCQkJbG9jYWxzLT5CYW5kd2lkdGhXaXRob3V0UHJlZmV0Y2hTdXBwb3J0ZWRbaV0gPSB0cnVlOworCQkJCWlmIChtb2RlX2xpYi0+dmJhLk1heGltdW1SZWFkQmFuZHdpZHRoV2l0aG91dFByZWZldGNoID4gbG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW2ldCisJCQkJCQl8fCBsb2NhbHMtPk5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmcgPT0gMSkgeworCQkJCQlsb2NhbHMtPkJhbmR3aWR0aFdpdGhvdXRQcmVmZXRjaFN1cHBvcnRlZFtpXSA9IGZhbHNlOworCQkJCX0KKworCQkJCWxvY2Fscy0+UHJlZmV0Y2hTdXBwb3J0ZWRbaV1bal0gPSB0cnVlOworCQkJCWlmIChtb2RlX2xpYi0+dmJhLk1heGltdW1SZWFkQmFuZHdpZHRoV2l0aFByZWZldGNoID4gbG9jYWxzLT5SZXR1cm5CV1BlclN0YXRlW2ldCisJCQkJCQl8fCBsb2NhbHMtPk5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmcgPT0gMQorCQkJCQkJfHwgbG9jYWxzLT5Ob3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nUHJlID09IDEpIHsKKwkJCQkJbG9jYWxzLT5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSA9IGZhbHNlOworCQkJCX0KKwkJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQkJaWYgKGxvY2Fscy0+TGluZVRpbWVzRm9yUHJlZmV0Y2hba10gPCAyLjAKKwkJCQkJCQl8fCBsb2NhbHMtPkxpbmVzRm9yTWV0YVBURVtrXSA+PSAzMi4wCisJCQkJCQkJfHwgbG9jYWxzLT5MaW5lc0Zvck1ldGFBbmREUFRFUm93W2tdID49IDE2LjAKKwkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLklzRXJyb3JSZXN1bHRbaV1bal1ba10gPT0gdHJ1ZSkgeworCQkJCQkJbG9jYWxzLT5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSA9IGZhbHNlOworCQkJCQl9CisJCQkJfQorCQkJCWxvY2Fscy0+VlJhdGlvSW5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSA9IHRydWU7CisJCQkJZm9yIChrID0gMDsgayA8PSBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzIC0gMTsgaysrKSB7CisJCQkJCWlmIChsb2NhbHMtPlZSYXRpb1ByZVlbaV1bal1ba10gPiA0LjAKKwkJCQkJCQl8fCBsb2NhbHMtPlZSYXRpb1ByZUNbaV1bal1ba10gPiA0LjAKKwkJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLklzRXJyb3JSZXN1bHRbaV1bal1ba10gPT0gdHJ1ZSkgeworCQkJCQkJbG9jYWxzLT5WUmF0aW9JblByZWZldGNoU3VwcG9ydGVkW2ldW2pdID0gZmFsc2U7CisJCQkJCX0KKwkJCQl9CisJCQkJbW9kZV9saWItPnZiYS5BbnlMaW5lc0ZvclZNT3JSb3dUb29MYXJnZSA9IGZhbHNlOworCQkJCWZvciAoayA9IDA7IGsgPCBtb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJCQkJaWYgKGxvY2Fscy0+TGluZXNGb3JNZXRhQW5kRFBURVJvd1trXSA+PSAxNiB8fCBsb2NhbHMtPkxpbmVzRm9yTWV0YVBURVtrXSA+PSAzMikgeworCQkJCQkJbW9kZV9saWItPnZiYS5BbnlMaW5lc0ZvclZNT3JSb3dUb29MYXJnZSA9IHRydWU7CisJCQkJCX0KKwkJCQl9CisKKwkJCQlpZiAobW9kZV9saWItPnZiYS5NYXhWU3RhcnR1cCA8PSAxMyB8fCBtb2RlX2xpYi0+dmJhLkFueUxpbmVzRm9yVk1PclJvd1Rvb0xhcmdlID09IGZhbHNlKSB7CisJCQkJCW1vZGVfbGliLT52YmEuTmV4dE1heFZTdGFydHVwID0gbW9kZV9saWItPnZiYS5NYXhNYXhWU3RhcnR1cDsKKwkJCQkJbW9kZV9saWItPnZiYS5OZXh0UHJlZmV0Y2hNb2RlID0gbW9kZV9saWItPnZiYS5OZXh0UHJlZmV0Y2hNb2RlICsgMTsKKwkJCQl9IGVsc2UgeworCQkJCQltb2RlX2xpYi0+dmJhLk5leHRNYXhWU3RhcnR1cCA9IG1vZGVfbGliLT52YmEuTmV4dE1heFZTdGFydHVwIC0gMTsKKwkJCQl9CisJCQl9IHdoaWxlICgobG9jYWxzLT5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSAhPSB0cnVlIHx8IGxvY2Fscy0+VlJhdGlvSW5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSAhPSB0cnVlKQorCQkJCQkmJiAobW9kZV9saWItPnZiYS5OZXh0TWF4VlN0YXJ0dXAgIT0gbW9kZV9saWItPnZiYS5NYXhNYXhWU3RhcnR1cAorCQkJCQkJfHwgbW9kZV9saWItPnZiYS5OZXh0UHJlZmV0Y2hNb2RlIDwgbW9kZV9saWItPnZiYS5NYXhQcmVmZXRjaE1vZGUpKTsKKworCQkJaWYgKGxvY2Fscy0+UHJlZmV0Y2hTdXBwb3J0ZWRbaV1bal0gPT0gdHJ1ZSAmJiBsb2NhbHMtPlZSYXRpb0luUHJlZmV0Y2hTdXBwb3J0ZWRbaV1bal0gPT0gdHJ1ZSkgeworCQkJCW1vZGVfbGliLT52YmEuQmFuZHdpZHRoQXZhaWxhYmxlRm9ySW1tZWRpYXRlRmxpcCA9IGxvY2Fscy0+UmV0dXJuQldQZXJTdGF0ZVtpXTsKKwkJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQkJbW9kZV9saWItPnZiYS5CYW5kd2lkdGhBdmFpbGFibGVGb3JJbW1lZGlhdGVGbGlwID0gbW9kZV9saWItPnZiYS5CYW5kd2lkdGhBdmFpbGFibGVGb3JJbW1lZGlhdGVGbGlwCisJCQkJCQktIGRtbF9tYXgobG9jYWxzLT5SZWFkQmFuZHdpZHRoTHVtYVtrXSAqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JMdW1hW2tdCisJCQkJCQkJKyBsb2NhbHMtPlJlYWRCYW5kd2lkdGhDaHJvbWFba10gKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hW2tdCisJCQkJCQkJKyBsb2NhbHMtPmN1cnNvcl9id1trXSAqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDdXJzb3Jba10sCisJCQkJCQkJbG9jYWxzLT5SZXF1aXJlZFByZWZldGNoUGl4ZWxEYXRhQldMdW1hW2ldW2pdW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3Rvckx1bWFQcmVba10KKwkJCQkJCQkrIGxvY2Fscy0+UmVxdWlyZWRQcmVmZXRjaFBpeGVsRGF0YUJXQ2hyb21hW2ldW2pdW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckNocm9tYVByZVtrXQorCQkJCQkJCSsgbG9jYWxzLT5jdXJzb3JfYndfcHJlW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckN1cnNvclByZVtrXSk7CisJCQkJfQorCQkJCW1vZGVfbGliLT52YmEuVG90SW1tZWRpYXRlRmxpcEJ5dGVzID0gMC4wOworCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCQltb2RlX2xpYi0+dmJhLlRvdEltbWVkaWF0ZUZsaXBCeXRlcyA9IG1vZGVfbGliLT52YmEuVG90SW1tZWRpYXRlRmxpcEJ5dGVzCisJCQkJCQkrIGxvY2Fscy0+UERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVba10gKyBsb2NhbHMtPk1ldGFSb3dCeXRlc1trXSArIGxvY2Fscy0+RFBURUJ5dGVzUGVyUm93W2tdOworCQkJCX0KKworCQkJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJCQlDYWxjdWxhdGVGbGlwU2NoZWR1bGUoCisJCQkJCQkJbW9kZV9saWIsCisJCQkJCQkJbW9kZV9saWItPnZiYS5QZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhLAorCQkJCQkJCW1vZGVfbGliLT52YmEuUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lWTURhdGFPbmx5LAorCQkJCQkJCW1vZGVfbGliLT52YmEuRXh0cmFMYXRlbmN5LAorCQkJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50TGF0ZW5jeSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQkJCQkJCW1vZGVfbGliLT52YmEuSG9zdFZNRW5hYmxlLAorCQkJCQkJCW1vZGVfbGliLT52YmEuSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQkJCQkJCW1vZGVfbGliLT52YmEuSG9zdFZNQ2FjaGVkUGFnZVRhYmxlTGV2ZWxzLAorCQkJCQkJCW1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUsCisJCQkJCQkJbG9jYWxzLT5QREVBbmRNZXRhUFRFQnl0ZXNQZXJGcmFtZVtrXSwKKwkJCQkJCQlsb2NhbHMtPk1ldGFSb3dCeXRlc1trXSwKKwkJCQkJCQlsb2NhbHMtPkRQVEVCeXRlc1BlclJvd1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkJhbmR3aWR0aEF2YWlsYWJsZUZvckltbWVkaWF0ZUZsaXAsCisJCQkJCQkJbW9kZV9saWItPnZiYS5Ub3RJbW1lZGlhdGVGbGlwQnl0ZXMsCisJCQkJCQkJbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbFtrXSAvIG1vZGVfbGliLT52YmEuUGl4ZWxDbG9ja1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLlZSYXRpb1trXSwKKwkJCQkJCQlsb2NhbHMtPlRub19id1trXSwKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSwKKwkJCQkJCQlsb2NhbHMtPmRwdGVfcm93X2hlaWdodFtrXSwKKwkJCQkJCQlsb2NhbHMtPm1ldGFfcm93X2hlaWdodFtrXSwKKwkJCQkJCQlsb2NhbHMtPmRwdGVfcm93X2hlaWdodF9jaHJvbWFba10sCisJCQkJCQkJbG9jYWxzLT5tZXRhX3Jvd19oZWlnaHRfY2hyb21hW2tdLAorCQkJCQkJCSZsb2NhbHMtPkRlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluSW1tZWRpYXRlRmxpcFtrXSwKKwkJCQkJCQkmbG9jYWxzLT5EZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5JbW1lZGlhdGVGbGlwW2tdLAorCQkJCQkJCSZsb2NhbHMtPmZpbmFsX2ZsaXBfYndba10sCisJCQkJCQkJJmxvY2Fscy0+SW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclBpcGVba10pOworCQkJCX0KKwkJCQltb2RlX2xpYi0+dmJhLnRvdGFsX2Rjbl9yZWFkX2J3X3dpdGhfZmxpcCA9IDAuMDsKKwkJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQkJbW9kZV9saWItPnZiYS50b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXAgPSBtb2RlX2xpYi0+dmJhLnRvdGFsX2Rjbl9yZWFkX2J3X3dpdGhfZmxpcCArIGRtbF9tYXgzKAorCQkJCQkJbG9jYWxzLT5wcmVmZXRjaF92bXJvd19id1trXSwKKwkJCQkJCWxvY2Fscy0+ZmluYWxfZmxpcF9id1trXSArICBsb2NhbHMtPlJlYWRCYW5kd2lkdGhMdW1hW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3Rvckx1bWFba10KKwkJCQkJCSsgbG9jYWxzLT5SZWFkQmFuZHdpZHRoQ2hyb21hW2tdICogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3RvckNocm9tYVtrXQorCQkJCQkJKyBsb2NhbHMtPmN1cnNvcl9id1trXSAqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDdXJzb3Jba10sCisJCQkJCQlsb2NhbHMtPmZpbmFsX2ZsaXBfYndba10gKyBsb2NhbHMtPlJlcXVpcmVkUHJlZmV0Y2hQaXhlbERhdGFCV0x1bWFbaV1bal1ba10KKwkJCQkJCSogbG9jYWxzLT5VcmdlbnRCdXJzdEZhY3Rvckx1bWFQcmVba10gKyBsb2NhbHMtPlJlcXVpcmVkUHJlZmV0Y2hQaXhlbERhdGFCV0Nocm9tYVtpXVtqXVtrXQorCQkJCQkJKiBsb2NhbHMtPlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hUHJlW2tdICsgbG9jYWxzLT5jdXJzb3JfYndfcHJlW2tdCisJCQkJCQkqIGxvY2Fscy0+VXJnZW50QnVyc3RGYWN0b3JDdXJzb3JQcmVba10pOworCQkJCX0KKwkJCQlsb2NhbHMtPkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWRGb3JTdGF0ZVtpXVtqXSA9IHRydWU7CisJCQkJaWYgKG1vZGVfbGliLT52YmEudG90YWxfZGNuX3JlYWRfYndfd2l0aF9mbGlwCisJCQkJCQk+IGxvY2Fscy0+UmV0dXJuQldQZXJTdGF0ZVtpXSkgeworCQkJCQlsb2NhbHMtPkltbWVkaWF0ZUZsaXBTdXBwb3J0ZWRGb3JTdGF0ZVtpXVtqXSA9IGZhbHNlOworCQkJCX0KKwkJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQkJaWYgKGxvY2Fscy0+SW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclBpcGVba10gPT0gZmFsc2UpIHsKKwkJCQkJCWxvY2Fscy0+SW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclN0YXRlW2ldW2pdID0gZmFsc2U7CisJCQkJCX0KKwkJCQl9CisJCQl9IGVsc2UgeworCQkJCWxvY2Fscy0+SW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclN0YXRlW2ldW2pdID0gZmFsc2U7CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLlVyZ2VudE91dE9mT3JkZXJSZXR1cm5QZXJDaGFubmVsID0gZG1sX21heDMoCisJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50T3V0T2ZPcmRlclJldHVyblBlckNoYW5uZWxQaXhlbERhdGFPbmx5LAorCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudE91dE9mT3JkZXJSZXR1cm5QZXJDaGFubmVsUGl4ZWxNaXhlZFdpdGhWTURhdGEsCisJCQkJCW1vZGVfbGliLT52YmEuVXJnZW50T3V0T2ZPcmRlclJldHVyblBlckNoYW5uZWxWTURhdGFPbmx5KTsKKwkJCUNhbGN1bGF0ZVdhdGVybWFya3NBbmREUkFNU3BlZWRDaGFuZ2VTdXBwb3J0KAorCQkJCQltb2RlX2xpYiwKKwkJCQkJbW9kZV9saWItPnZiYS5QcmVmZXRjaE1vZGVbaV1bal0sCisJCQkJCW1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMsCisJCQkJCW1vZGVfbGliLT52YmEuTWF4TGluZUJ1ZmZlckxpbmVzLAorCQkJCQltb2RlX2xpYi0+dmJhLkxpbmVCdWZmZXJTaXplLAorCQkJCQltb2RlX2xpYi0+dmJhLkRQUE91dHB1dEJ1ZmZlclBpeGVscywKKwkJCQkJbW9kZV9saWItPnZiYS5ERVRCdWZmZXJTaXplSW5LQnl0ZSwKKwkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VMdW1hQnVmZmVyU2l6ZSwKKwkJCQkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tJbnRlcmZhY2VDaHJvbWFCdWZmZXJTaXplLAorCQkJCQltb2RlX2xpYi0+dmJhLkRDRkNMS1BlclN0YXRlW2ldLAorCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudE91dE9mT3JkZXJSZXR1cm5QZXJDaGFubmVsICogbW9kZV9saWItPnZiYS5OdW1iZXJPZkNoYW5uZWxzLAorCQkJCQlsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbaV0sCisJCQkJCW1vZGVfbGliLT52YmEuR1BVVk1FbmFibGUsCisJCQkJCWxvY2Fscy0+ZHB0ZV9ncm91cF9ieXRlcywKKwkJCQkJbW9kZV9saWItPnZiYS5NZXRhQ2h1bmtTaXplLAorCQkJCQltb2RlX2xpYi0+dmJhLlVyZ2VudExhdGVuY3ksCisJCQkJCW1vZGVfbGliLT52YmEuRXh0cmFMYXRlbmN5LAorCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0xhdGVuY3ksCisJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrQ2h1bmtTaXplLAorCQkJCQltb2RlX2xpYi0+dmJhLlNPQ0NMS1BlclN0YXRlW2ldLAorCQkJCQltb2RlX2xpYi0+dmJhLkRSQU1DbG9ja0NoYW5nZUxhdGVuY3ksCisJCQkJCW1vZGVfbGliLT52YmEuU1JFeGl0VGltZSwKKwkJCQkJbW9kZV9saWItPnZiYS5TUkVudGVyUGx1c0V4aXRUaW1lLAorCQkJCQltb2RlX2xpYi0+dmJhLlByb2plY3RlZERDRkNMS0RlZXBTbGVlcCwKKwkJCQkJbG9jYWxzLT5Ob09mRFBQVGhpc1N0YXRlLAorCQkJCQltb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZSwKKwkJCQkJbG9jYWxzLT5SZXF1aXJlZERQUENMS1RoaXNTdGF0ZSwKKwkJCQkJbG9jYWxzLT5Td2F0aFdpZHRoWVNpbmdsZURQUCwKKwkJCQkJbG9jYWxzLT5Td2F0aEhlaWdodFlUaGlzU3RhdGUsCisJCQkJCWxvY2Fscy0+UmVhZEJhbmR3aWR0aEx1bWEsCisJCQkJCWxvY2Fscy0+U3dhdGhIZWlnaHRDVGhpc1N0YXRlLAorCQkJCQlsb2NhbHMtPlJlYWRCYW5kd2lkdGhDaHJvbWEsCisJCQkJCW1vZGVfbGliLT52YmEuTEJCaXRQZXJQaXhlbCwKKwkJCQkJbG9jYWxzLT5Td2F0aFdpZHRoWVRoaXNTdGF0ZSwKKwkJCQkJbW9kZV9saWItPnZiYS5IUmF0aW8sCisJCQkJCW1vZGVfbGliLT52YmEudnRhcHMsCisJCQkJCW1vZGVfbGliLT52YmEuVlRBUHNDaHJvbWEsCisJCQkJCW1vZGVfbGliLT52YmEuVlJhdGlvLAorCQkJCQltb2RlX2xpYi0+dmJhLkhUb3RhbCwKKwkJCQkJbW9kZV9saWItPnZiYS5QaXhlbENsb2NrLAorCQkJCQltb2RlX2xpYi0+dmJhLkJsZW5kaW5nQW5kVGltaW5nLAorCQkJCQlsb2NhbHMtPkJ5dGVQZXJQaXhlbEluREVUWSwKKwkJCQkJbG9jYWxzLT5CeXRlUGVyUGl4ZWxJbkRFVEMsCisJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRW5hYmxlLAorCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0LAorCQkJCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGgsCisJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrRGVzdGluYXRpb25IZWlnaHQsCisJCQkJCW1vZGVfbGliLT52YmEuV3JpdGViYWNrU291cmNlSGVpZ2h0LAorCQkJCQkmbG9jYWxzLT5EUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0W2ldW2pdLAorCQkJCQkmbW9kZV9saWItPnZiYS5VcmdlbnRXYXRlcm1hcmssCisJCQkJCSZtb2RlX2xpYi0+dmJhLldyaXRlYmFja1VyZ2VudFdhdGVybWFyaywKKwkJCQkJJm1vZGVfbGliLT52YmEuRFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJrLAorCQkJCQkmbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcmssCisJCQkJCSZtb2RlX2xpYi0+dmJhLlN0dXR0ZXJFeGl0V2F0ZXJtYXJrLAorCQkJCQkmbW9kZV9saWItPnZiYS5TdHV0dGVyRW50ZXJQbHVzRXhpdFdhdGVybWFyaywKKwkJCQkJJm1vZGVfbGliLT52YmEuTWluQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeVN1cHBvcnRlZCk7CisJCQl9CisJCX0KKworCQkvKlZlcnRpY2FsIEFjdGl2ZSBCVyBzdXBwb3J0Ki8KKwkJeworCQkJZG91YmxlIE1heFRvdGFsVkFjdGl2ZVJEQmFuZHdpZHRoID0gMC4wOworCQkJZm9yIChrID0gMDsgayA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQkJCU1heFRvdGFsVkFjdGl2ZVJEQmFuZHdpZHRoID0gTWF4VG90YWxWQWN0aXZlUkRCYW5kd2lkdGggKyBsb2NhbHMtPlJlYWRCYW5kd2lkdGhba107CisJCX0KKwkJZm9yIChpID0gMDsgaSA8PSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyArK2kpIHsKKwkJCWxvY2Fscy0+TWF4VG90YWxWZXJ0aWNhbEFjdGl2ZUF2YWlsYWJsZUJhbmR3aWR0aFtpXSA9IGRtbF9taW4oCisJCQkJbG9jYWxzLT5JZGVhbFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZVtpXSAqCisJCQkJbW9kZV9saWItPnZiYS5NYXhBdmVyYWdlUGVyY2VudE9mSWRlYWxTRFBQb3J0QldEaXNwbGF5Q2FuVXNlSW5Ob3JtYWxTeXN0ZW1PcGVyYXRpb24KKwkJCQkvIDEwMC4wLCBtb2RlX2xpYi0+dmJhLkRSQU1TcGVlZFBlclN0YXRlW2ldICoKKwkJCQltb2RlX2xpYi0+dmJhLk51bWJlck9mQ2hhbm5lbHMgKgorCQkJCW1vZGVfbGliLT52YmEuRFJBTUNoYW5uZWxXaWR0aCAqCisJCQkJbW9kZV9saWItPnZiYS5NYXhBdmVyYWdlUGVyY2VudE9mSWRlYWxEUkFNQldEaXNwbGF5Q2FuVXNlSW5Ob3JtYWxTeXN0ZW1PcGVyYXRpb24KKwkJCQkvIDEwMC4wKTsKKworCQkJaWYgKE1heFRvdGFsVkFjdGl2ZVJEQmFuZHdpZHRoIDw9IGxvY2Fscy0+TWF4VG90YWxWZXJ0aWNhbEFjdGl2ZUF2YWlsYWJsZUJhbmR3aWR0aFtpXSkgeworCQkJCWxvY2Fscy0+VG90YWxWZXJ0aWNhbEFjdGl2ZUJhbmR3aWR0aFN1cHBvcnRbaV0gPSB0cnVlOworCQkJfSBlbHNlIHsKKwkJCQlsb2NhbHMtPlRvdGFsVmVydGljYWxBY3RpdmVCYW5kd2lkdGhTdXBwb3J0W2ldID0gZmFsc2U7CisJCQl9CisJCX0KKwl9CisKKwkvKlBURSBCdWZmZXIgU2l6ZSBDaGVjayovCisKKwlmb3IgKGkgPSAwOyBpIDw9IG1vZGVfbGliLT52YmEuc29jLm51bV9zdGF0ZXM7IGkrKykgeworCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CisJCQlsb2NhbHMtPlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZFtpXVtqXSA9IHRydWU7CisJCQlmb3IgKGsgPSAwOyBrIDw9IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXMgLSAxOyBrKyspIHsKKwkJCQlpZiAobG9jYWxzLT5QVEVCdWZmZXJTaXplTm90RXhjZWVkZWRZW2ldW2pdW2tdID09IGZhbHNlCisJCQkJCQl8fCBsb2NhbHMtPlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZENbaV1bal1ba10gPT0gZmFsc2UpIHsKKwkJCQkJbG9jYWxzLT5QVEVCdWZmZXJTaXplTm90RXhjZWVkZWRbaV1bal0gPSBmYWxzZTsKKwkJCQl9CisJCQl9CisJCX0KKwl9CisJLypDdXJzb3IgU3VwcG9ydCBDaGVjayovCisKKwltb2RlX2xpYi0+dmJhLkN1cnNvclN1cHBvcnQgPSB0cnVlOworCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5DdXJzb3JXaWR0aFtrXVswXSA+IDAuMCkgeworCQkJZm9yIChtID0gMDsgbSA8IG1vZGVfbGliLT52YmEuTnVtYmVyT2ZDdXJzb3JzW2tdOyBtKyspIHsKKwkJCQlpZiAobW9kZV9saWItPnZiYS5DdXJzb3JCUFBba11bbV0gPT0gNjQgJiYgbW9kZV9saWItPnZiYS5DdXJzb3I2NEJwcFN1cHBvcnQgPT0gZmFsc2UpIHsKKwkJCQkJbW9kZV9saWItPnZiYS5DdXJzb3JTdXBwb3J0ID0gZmFsc2U7CisJCQkJfQorCQkJfQorCQl9CisJfQorCS8qVmFsaWQgUGl0Y2ggQ2hlY2sqLworCisJbW9kZV9saWItPnZiYS5QaXRjaFN1cHBvcnQgPSB0cnVlOworCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlsb2NhbHMtPkFsaWduZWRZUGl0Y2hba10gPSBkbWxfY2VpbCgKKwkJCQlkbWxfbWF4KG1vZGVfbGliLT52YmEuUGl0Y2hZW2tdLCBtb2RlX2xpYi0+dmJhLlZpZXdwb3J0V2lkdGhba10pLAorCQkJCWxvY2Fscy0+TWFjcm9UaWxlV2lkdGhZW2tdKTsKKwkJaWYgKGxvY2Fscy0+QWxpZ25lZFlQaXRjaFtrXSA+IG1vZGVfbGliLT52YmEuUGl0Y2hZW2tdKSB7CisJCQltb2RlX2xpYi0+dmJhLlBpdGNoU3VwcG9ydCA9IGZhbHNlOworCQl9CisJCWlmIChtb2RlX2xpYi0+dmJhLkRDQ0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQlsb2NhbHMtPkFsaWduZWREQ0NNZXRhUGl0Y2hba10gPSBkbWxfY2VpbCgKKwkJCQkJZG1sX21heCgKKwkJCQkJCQltb2RlX2xpYi0+dmJhLkRDQ01ldGFQaXRjaFlba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydFdpZHRoW2tdKSwKKwkJCQkJNjQuMCAqIGxvY2Fscy0+UmVhZDI1NkJsb2NrV2lkdGhZW2tdKTsKKwkJfSBlbHNlIHsKKwkJCWxvY2Fscy0+QWxpZ25lZERDQ01ldGFQaXRjaFtrXSA9IG1vZGVfbGliLT52YmEuRENDTWV0YVBpdGNoWVtrXTsKKwkJfQorCQlpZiAobG9jYWxzLT5BbGlnbmVkRENDTWV0YVBpdGNoW2tdID4gbW9kZV9saWItPnZiYS5EQ0NNZXRhUGl0Y2hZW2tdKSB7CisJCQltb2RlX2xpYi0+dmJhLlBpdGNoU3VwcG9ydCA9IGZhbHNlOworCQl9CisJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtXzQ0NF82NAorCQkJCSYmIG1vZGVfbGliLT52YmEuU291cmNlUGl4ZWxGb3JtYXRba10gIT0gZG1fNDQ0XzMyCisJCQkJJiYgbW9kZV9saWItPnZiYS5Tb3VyY2VQaXhlbEZvcm1hdFtrXSAhPSBkbV80NDRfMTYKKwkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtX21vbm9fMTYKKwkJCQkmJiBtb2RlX2xpYi0+dmJhLlNvdXJjZVBpeGVsRm9ybWF0W2tdICE9IGRtX21vbm9fOCkgeworCQkJbG9jYWxzLT5BbGlnbmVkQ1BpdGNoW2tdID0gZG1sX2NlaWwoCisJCQkJCWRtbF9tYXgoCisJCQkJCQkJbW9kZV9saWItPnZiYS5QaXRjaENba10sCisJCQkJCQkJbW9kZV9saWItPnZiYS5WaWV3cG9ydFdpZHRoW2tdIC8gMi4wKSwKKwkJCQkJbG9jYWxzLT5NYWNyb1RpbGVXaWR0aENba10pOworCQl9IGVsc2UgeworCQkJbG9jYWxzLT5BbGlnbmVkQ1BpdGNoW2tdID0gbW9kZV9saWItPnZiYS5QaXRjaENba107CisJCX0KKwkJaWYgKGxvY2Fscy0+QWxpZ25lZENQaXRjaFtrXSA+IG1vZGVfbGliLT52YmEuUGl0Y2hDW2tdKSB7CisJCQltb2RlX2xpYi0+dmJhLlBpdGNoU3VwcG9ydCA9IGZhbHNlOworCQl9CisJfQorCS8qTW9kZSBTdXBwb3J0LCBWb2x0YWdlIFN0YXRlIGFuZCBTT0MgQ29uZmlndXJhdGlvbiovCisKKwlmb3IgKGkgPSBtb2RlX2xpYi0+dmJhLnNvYy5udW1fc3RhdGVzOyBpID49IDA7IGktLSkgeworCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CisJCQllbnVtIGRtX3ZhbGlkYXRpb25fc3RhdHVzIHN0YXR1cyA9IERNTF9WQUxJREFUSU9OX09LOworCisJCQlpZiAobW9kZV9saWItPnZiYS5TY2FsZVJhdGlvQW5kVGFwc1N1cHBvcnQgIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX1NDQUxFX1JBVElPX1RBUDsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Tb3VyY2VGb3JtYXRQaXhlbEFuZFNjYW5TdXBwb3J0ICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9TT1VSQ0VfUElYRUxfRk9STUFUOworCQkJfSBlbHNlIGlmIChsb2NhbHMtPlZpZXdwb3J0U2l6ZVN1cHBvcnRbaV0gIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX1ZJRVdQT1JUX1NJWkU7CisJCQl9IGVsc2UgaWYgKGxvY2Fscy0+RElPU3VwcG9ydFtpXSAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfRElPX1NVUFBPUlQ7CisJCQl9IGVsc2UgaWYgKGxvY2Fscy0+Tm90RW5vdWdoRFNDVW5pdHNbaV0gIT0gZmFsc2UpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9OT1RfRU5PVUdIX0RTQzsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5EU0NDTEtSZXF1aXJlZE1vcmVUaGFuU3VwcG9ydGVkW2ldICE9IGZhbHNlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfRFNDX0NMS19SRVFVSVJFRDsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5ST0JTdXBwb3J0W2ldICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9SRU9SREVSSU5HX0JVRkZFUjsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5ESVNQQ0xLX0RQUENMS19TdXBwb3J0W2ldW2pdICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9ESVNQQ0xLX0RQUENMSzsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5Ub3RhbEF2YWlsYWJsZVBpcGVzU3VwcG9ydFtpXVtqXSAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfVE9UQUxfQVZBSUxBQkxFX1BJUEVTOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLk51bWJlck9mT1RHU3VwcG9ydCAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfTlVNX09URzsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5Xcml0ZWJhY2tNb2RlU3VwcG9ydCAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfV1JJVEVCQUNLX01PREU7CisJCQl9IGVsc2UgaWYgKG1vZGVfbGliLT52YmEuV3JpdGViYWNrTGF0ZW5jeVN1cHBvcnQgIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX1dSSVRFQkFDS19MQVRFTkNZOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLldyaXRlYmFja1NjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydCAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfV1JJVEVCQUNLX1NDQUxFX1JBVElPX1RBUDsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5DdXJzb3JTdXBwb3J0ICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9DVVJTT1JfU1VQUE9SVDsKKwkJCX0gZWxzZSBpZiAobW9kZV9saWItPnZiYS5QaXRjaFN1cHBvcnQgIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX1BJVENIX1NVUFBPUlQ7CisJCQl9IGVsc2UgaWYgKGxvY2Fscy0+VG90YWxWZXJ0aWNhbEFjdGl2ZUJhbmR3aWR0aFN1cHBvcnRbaV0gIT0gdHJ1ZSkgeworCQkJCXN0YXR1cyA9IERNTF9GQUlMX1RPVEFMX1ZfQUNUSVZFX0JXOworCQkJfSBlbHNlIGlmIChsb2NhbHMtPlBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZFtpXVtqXSAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfUFRFX0JVRkZFUl9TSVpFOworCQkJfSBlbHNlIGlmIChtb2RlX2xpYi0+dmJhLk5vbnN1cHBvcnRlZERTQ0lucHV0QlBDICE9IGZhbHNlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfRFNDX0lOUFVUX0JQQzsKKwkJCX0gZWxzZSBpZiAoKG1vZGVfbGliLT52YmEuSG9zdFZNRW5hYmxlICE9IGZhbHNlCisJCQkJCSYmIGxvY2Fscy0+SW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclN0YXRlW2ldW2pdICE9IHRydWUpKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfSE9TVF9WTV9JTU1FRElBVEVfRkxJUDsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5QcmVmZXRjaFN1cHBvcnRlZFtpXVtqXSAhPSB0cnVlKSB7CisJCQkJc3RhdHVzID0gRE1MX0ZBSUxfUFJFRkVUQ0hfU1VQUE9SVDsKKwkJCX0gZWxzZSBpZiAobG9jYWxzLT5WUmF0aW9JblByZWZldGNoU3VwcG9ydGVkW2ldW2pdICE9IHRydWUpIHsKKwkJCQlzdGF0dXMgPSBETUxfRkFJTF9WX1JBVElPX1BSRUZFVENIOworCQkJfQorCisJCQlpZiAoc3RhdHVzID09IERNTF9WQUxJREFUSU9OX09LKSB7CisJCQkJbG9jYWxzLT5Nb2RlU3VwcG9ydFtpXVtqXSA9IHRydWU7CisJCQl9IGVsc2UgeworCQkJCWxvY2Fscy0+TW9kZVN1cHBvcnRbaV1bal0gPSBmYWxzZTsKKwkJCX0KKwkJCWxvY2Fscy0+VmFsaWRhdGlvblN0YXR1c1tpXSA9IHN0YXR1czsKKwkJfQorCX0KKwl7CisJCXVuc2lnbmVkIGludCBNYXhpbXVtTVBDQ29tYmluZSA9IDA7CisJCW1vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsID0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlcyArIDE7CisJCWZvciAoaSA9IG1vZGVfbGliLT52YmEuVm9sdGFnZU92ZXJyaWRlTGV2ZWw7IGkgPD0gbW9kZV9saWItPnZiYS5zb2MubnVtX3N0YXRlczsgaSsrKSB7CisJCQlpZiAobG9jYWxzLT5Nb2RlU3VwcG9ydFtpXVswXSA9PSB0cnVlIHx8IGxvY2Fscy0+TW9kZVN1cHBvcnRbaV1bMV0gPT0gdHJ1ZSkgeworCQkJCW1vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsID0gaTsKKwkJCQlpZiAobG9jYWxzLT5Nb2RlU3VwcG9ydFtpXVsxXSA9PSB0cnVlICYmIChsb2NhbHMtPk1vZGVTdXBwb3J0W2ldWzBdID09IGZhbHNlCisJCQkJCQl8fCBtb2RlX2xpYi0+dmJhLldoZW5Ub0RvTVBDQ29tYmluZSA9PSBkbV9tcGNfYWx3YXlzX3doZW5fcG9zc2libGUKKwkJCQkJCXx8IChtb2RlX2xpYi0+dmJhLldoZW5Ub0RvTVBDQ29tYmluZSA9PSBkbV9tcGNfcmVkdWNlX3ZvbHRhZ2VfYW5kX2Nsb2NrcworCQkJCQkJCSYmICgobG9jYWxzLT5EUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0W2ldWzFdID09IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3ZhY3RpdmUKKwkJCQkJCQkJJiYgbG9jYWxzLT5EUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0W2ldWzBdICE9IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3ZhY3RpdmUpCisJCQkJCQkJfHwgKGxvY2Fscy0+RFJBTUNsb2NrQ2hhbmdlU3VwcG9ydFtpXVsxXSA9PSBkbV9kcmFtX2Nsb2NrX2NoYW5nZV92YmxhbmsKKwkJCQkJCQkJJiYgbG9jYWxzLT5EUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0W2ldWzBdID09IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3Vuc3VwcG9ydGVkKSkpKSkgeworCQkJCQlNYXhpbXVtTVBDQ29tYmluZSA9IDE7CisJCQkJfSBlbHNlIHsKKwkJCQkJTWF4aW11bU1QQ0NvbWJpbmUgPSAwOworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCQltb2RlX2xpYi0+dmJhLkltbWVkaWF0ZUZsaXBTdXBwb3J0ID0KKwkJCWxvY2Fscy0+SW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclN0YXRlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVtNYXhpbXVtTVBDQ29tYmluZV07CisJCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQkJbW9kZV9saWItPnZiYS5EUFBQZXJQbGFuZVtrXSA9IGxvY2Fscy0+Tm9PZkRQUFttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF1bTWF4aW11bU1QQ0NvbWJpbmVdW2tdOworCQkJbG9jYWxzLT5EUFBDTEtba10gPSBsb2NhbHMtPlJlcXVpcmVkRFBQQ0xLW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVtNYXhpbXVtTVBDQ29tYmluZV1ba107CisJCX0KKwkJbW9kZV9saWItPnZiYS5ESVNQQ0xLID0gbG9jYWxzLT5SZXF1aXJlZERJU1BDTEtbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdW01heGltdW1NUENDb21iaW5lXTsKKwkJbW9kZV9saWItPnZiYS5tYXhNcGNDb21iID0gTWF4aW11bU1QQ0NvbWJpbmU7CisJfQorCW1vZGVfbGliLT52YmEuRENGQ0xLID0gbW9kZV9saWItPnZiYS5EQ0ZDTEtQZXJTdGF0ZVttb2RlX2xpYi0+dmJhLlZvbHRhZ2VMZXZlbF07CisJbW9kZV9saWItPnZiYS5EUkFNU3BlZWQgPSBtb2RlX2xpYi0+dmJhLkRSQU1TcGVlZFBlclN0YXRlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXTsKKwltb2RlX2xpYi0+dmJhLkZhYnJpY0Nsb2NrID0gbW9kZV9saWItPnZiYS5GYWJyaWNDbG9ja1BlclN0YXRlW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXTsKKwltb2RlX2xpYi0+dmJhLlNPQ0NMSyA9IG1vZGVfbGliLT52YmEuU09DQ0xLUGVyU3RhdGVbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdOworCW1vZGVfbGliLT52YmEuUmV0dXJuQlcgPSBsb2NhbHMtPlJldHVybkJXUGVyU3RhdGVbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdOworCWZvciAoayA9IDA7IGsgPD0gbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lcyAtIDE7IGsrKykgeworCQlpZiAobW9kZV9saWItPnZiYS5CbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBrKSB7CisJCQltb2RlX2xpYi0+dmJhLk9ETUNvbWJpbmVFbmFibGVkW2tdID0KKwkJCQkJbG9jYWxzLT5PRE1Db21iaW5lRW5hYmxlUGVyU3RhdGVbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdW2tdOworCQl9IGVsc2UgeworCQkJbW9kZV9saWItPnZiYS5PRE1Db21iaW5lRW5hYmxlZFtrXSA9IDA7CisJCX0KKwkJbW9kZV9saWItPnZiYS5EU0NFbmFibGVkW2tdID0KKwkJCQlsb2NhbHMtPlJlcXVpcmVzRFNDW21vZGVfbGliLT52YmEuVm9sdGFnZUxldmVsXVtrXTsKKwkJbW9kZV9saWItPnZiYS5PdXRwdXRCcHBba10gPQorCQkJCWxvY2Fscy0+T3V0cHV0QnBwUGVyU3RhdGVbbW9kZV9saWItPnZiYS5Wb2x0YWdlTGV2ZWxdW2tdOworCX0KK30KKworc3RhdGljIHZvaWQgQ2FsY3VsYXRlV2F0ZXJtYXJrc0FuZERSQU1TcGVlZENoYW5nZVN1cHBvcnQoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJdW5zaWduZWQgaW50IFByZWZldGNoTW9kZSwKKwkJdW5zaWduZWQgaW50IE51bWJlck9mQWN0aXZlUGxhbmVzLAorCQl1bnNpZ25lZCBpbnQgTWF4TGluZUJ1ZmZlckxpbmVzLAorCQl1bnNpZ25lZCBpbnQgTGluZUJ1ZmZlclNpemUsCisJCXVuc2lnbmVkIGludCBEUFBPdXRwdXRCdWZmZXJQaXhlbHMsCisJCWRvdWJsZSBERVRCdWZmZXJTaXplSW5LQnl0ZSwKKwkJdW5zaWduZWQgaW50IFdyaXRlYmFja0ludGVyZmFjZUx1bWFCdWZmZXJTaXplLAorCQl1bnNpZ25lZCBpbnQgV3JpdGViYWNrSW50ZXJmYWNlQ2hyb21hQnVmZmVyU2l6ZSwKKwkJZG91YmxlIERDRkNMSywKKwkJZG91YmxlIFVyZ2VudE91dE9mT3JkZXJSZXR1cm4sCisJCWRvdWJsZSBSZXR1cm5CVywKKwkJYm9vbCBHUFVWTUVuYWJsZSwKKwkJbG9uZyBkcHRlX2dyb3VwX2J5dGVzW10sCisJCXVuc2lnbmVkIGludCBNZXRhQ2h1bmtTaXplLAorCQlkb3VibGUgVXJnZW50TGF0ZW5jeSwKKwkJZG91YmxlIEV4dHJhTGF0ZW5jeSwKKwkJZG91YmxlIFdyaXRlYmFja0xhdGVuY3ksCisJCWRvdWJsZSBXcml0ZWJhY2tDaHVua1NpemUsCisJCWRvdWJsZSBTT0NDTEssCisJCWRvdWJsZSBEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5LAorCQlkb3VibGUgU1JFeGl0VGltZSwKKwkJZG91YmxlIFNSRW50ZXJQbHVzRXhpdFRpbWUsCisJCWRvdWJsZSBEQ0ZDTEtEZWVwU2xlZXAsCisJCWludCBEUFBQZXJQbGFuZVtdLAorCQlib29sIERDQ0VuYWJsZVtdLAorCQlkb3VibGUgRFBQQ0xLW10sCisJCXVuc2lnbmVkIGludCBTd2F0aFdpZHRoU2luZ2xlRFBQWVtdLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZW10sCisJCWRvdWJsZSBSZWFkQmFuZHdpZHRoUGxhbmVMdW1hW10sCisJCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodENbXSwKKwkJZG91YmxlIFJlYWRCYW5kd2lkdGhQbGFuZUNocm9tYVtdLAorCQl1bnNpZ25lZCBpbnQgTEJCaXRQZXJQaXhlbFtdLAorCQl1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aFlbXSwKKwkJZG91YmxlIEhSYXRpb1tdLAorCQl1bnNpZ25lZCBpbnQgdnRhcHNbXSwKKwkJdW5zaWduZWQgaW50IFZUQVBzQ2hyb21hW10sCisJCWRvdWJsZSBWUmF0aW9bXSwKKwkJdW5zaWduZWQgaW50IEhUb3RhbFtdLAorCQlkb3VibGUgUGl4ZWxDbG9ja1tdLAorCQl1bnNpZ25lZCBpbnQgQmxlbmRpbmdBbmRUaW1pbmdbXSwKKwkJZG91YmxlIEJ5dGVQZXJQaXhlbERFVFlbXSwKKwkJZG91YmxlIEJ5dGVQZXJQaXhlbERFVENbXSwKKwkJYm9vbCBXcml0ZWJhY2tFbmFibGVbXSwKKwkJZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFdyaXRlYmFja1BpeGVsRm9ybWF0W10sCisJCWRvdWJsZSBXcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoW10sCisJCWRvdWJsZSBXcml0ZWJhY2tEZXN0aW5hdGlvbkhlaWdodFtdLAorCQlkb3VibGUgV3JpdGViYWNrU291cmNlSGVpZ2h0W10sCisJCWVudW0gY2xvY2tfY2hhbmdlX3N1cHBvcnQgKkRSQU1DbG9ja0NoYW5nZVN1cHBvcnQsCisJCWRvdWJsZSAqVXJnZW50V2F0ZXJtYXJrLAorCQlkb3VibGUgKldyaXRlYmFja1VyZ2VudFdhdGVybWFyaywKKwkJZG91YmxlICpEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcmssCisJCWRvdWJsZSAqV3JpdGViYWNrRFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJrLAorCQlkb3VibGUgKlN0dXR0ZXJFeGl0V2F0ZXJtYXJrLAorCQlkb3VibGUgKlN0dXR0ZXJFbnRlclBsdXNFeGl0V2F0ZXJtYXJrLAorCQlkb3VibGUgKk1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lTdXBwb3J0ZWQpCit7CisJZG91YmxlIEVmZmVjdGl2ZUxCTGF0ZW5jeUhpZGluZ1k7CisJZG91YmxlIEVmZmVjdGl2ZUxCTGF0ZW5jeUhpZGluZ0M7CisJZG91YmxlIERQUE91dHB1dEJ1ZmZlckxpbmVzWTsKKwlkb3VibGUgRFBQT3V0cHV0QnVmZmVyTGluZXNDOworCWRvdWJsZSBERVRCdWZmZXJTaXplWTsKKwlkb3VibGUgREVUQnVmZmVyU2l6ZUM7CisJZG91YmxlIExpbmVzSW5ERVRZW0RDX19OVU1fRFBQX19NQVhdOworCWRvdWJsZSBMaW5lc0luREVUQzsKKwl1bnNpZ25lZCBpbnQgTGluZXNJbkRFVFlSb3VuZGVkRG93blRvU3dhdGhbRENfX05VTV9EUFBfX01BWF07CisJdW5zaWduZWQgaW50IExpbmVzSW5ERVRDUm91bmRlZERvd25Ub1N3YXRoOworCWRvdWJsZSBGdWxsREVUQnVmZmVyaW5nVGltZVlbRENfX05VTV9EUFBfX01BWF07CisJZG91YmxlIEZ1bGxERVRCdWZmZXJpbmdUaW1lQzsKKwlkb3VibGUgQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpblk7CisJZG91YmxlIEFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5DOworCWRvdWJsZSBXcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luOworCWRvdWJsZSBQbGFuZVdpdGhNaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW47CisJZG91YmxlIFNlY29uZE1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbk9uZURpc3BsYXlJblZCTGFuazsKKwlkb3VibGUgRnVsbERFVEJ1ZmZlcmluZ1RpbWVZU3R1dHRlckNyaXRpY2FsUGxhbmUgPSAwOworCWRvdWJsZSBUaW1lVG9GaW5pc2hTd2F0aFRyYW5zZmVyU3R1dHRlckNyaXRpY2FsUGxhbmUgPSAwOworCXVpbnQgaywgajsKKworCW1vZGVfbGliLT52YmEuVG90YWxBY3RpdmVEUFAgPSAwOworCW1vZGVfbGliLT52YmEuVG90YWxEQ0NBY3RpdmVEUFAgPSAwOworCWZvciAoayA9IDA7IGsgPCBOdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCW1vZGVfbGliLT52YmEuVG90YWxBY3RpdmVEUFAgPSBtb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlRFBQICsgRFBQUGVyUGxhbmVba107CisJCWlmIChEQ0NFbmFibGVba10gPT0gdHJ1ZSkgeworCQkJbW9kZV9saWItPnZiYS5Ub3RhbERDQ0FjdGl2ZURQUCA9IG1vZGVfbGliLT52YmEuVG90YWxEQ0NBY3RpdmVEUFAgKyBEUFBQZXJQbGFuZVtrXTsKKwkJfQorCX0KKworCW1vZGVfbGliLT52YmEuVG90YWxEYXRhUmVhZEJhbmR3aWR0aCA9IDA7CisJZm9yIChrID0gMDsgayA8IE51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJbW9kZV9saWItPnZiYS5Ub3RhbERhdGFSZWFkQmFuZHdpZHRoID0gbW9kZV9saWItPnZiYS5Ub3RhbERhdGFSZWFkQmFuZHdpZHRoCisJCQkJKyBSZWFkQmFuZHdpZHRoUGxhbmVMdW1hW2tdICsgUmVhZEJhbmR3aWR0aFBsYW5lQ2hyb21hW2tdOworCX0KKworCSpVcmdlbnRXYXRlcm1hcmsgPSBVcmdlbnRMYXRlbmN5ICsgRXh0cmFMYXRlbmN5OworCisJKkRSQU1DbG9ja0NoYW5nZVdhdGVybWFyayA9IERSQU1DbG9ja0NoYW5nZUxhdGVuY3kgKyAqVXJnZW50V2F0ZXJtYXJrOworCisJbW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZVdyaXRlYmFjayA9IDA7CisJZm9yIChrID0gMDsgayA8IE51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKFdyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQltb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlV3JpdGViYWNrID0gbW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZVdyaXRlYmFjayArIDE7CisJCX0KKwl9CisKKwlpZiAobW9kZV9saWItPnZiYS5Ub3RhbEFjdGl2ZVdyaXRlYmFjayA8PSAxKSB7CisJCSpXcml0ZWJhY2tVcmdlbnRXYXRlcm1hcmsgPSBXcml0ZWJhY2tMYXRlbmN5OworCX0gZWxzZSB7CisJCSpXcml0ZWJhY2tVcmdlbnRXYXRlcm1hcmsgPSBXcml0ZWJhY2tMYXRlbmN5CisJCQkJKyBXcml0ZWJhY2tDaHVua1NpemUgKiAxMDI0LjAgLyAzMi4wIC8gU09DQ0xLOworCX0KKworCWlmIChtb2RlX2xpYi0+dmJhLlRvdGFsQWN0aXZlV3JpdGViYWNrIDw9IDEpIHsKKwkJKldyaXRlYmFja0RSQU1DbG9ja0NoYW5nZVdhdGVybWFyayA9IERSQU1DbG9ja0NoYW5nZUxhdGVuY3kgKyBXcml0ZWJhY2tMYXRlbmN5OworCX0gZWxzZSB7CisJCSpXcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcmsgPSBEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5ICsgV3JpdGViYWNrTGF0ZW5jeQorCQkJCSsgV3JpdGViYWNrQ2h1bmtTaXplICogMTAyNC4wIC8gMzIuMCAvIFNPQ0NMSzsKKwl9CisKKwlmb3IgKGsgPSAwOyBrIDwgTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCisJCW1vZGVfbGliLT52YmEuTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNZID0gZG1sX21pbigoZG91YmxlKSBNYXhMaW5lQnVmZmVyTGluZXMsCisJCQlkbWxfZmxvb3IoTGluZUJ1ZmZlclNpemUgLyBMQkJpdFBlclBpeGVsW2tdIC8gKFN3YXRoV2lkdGhZW2tdIC8gZG1sX21heChIUmF0aW9ba10sIDEuMCkpLCAxKSkKKwkJCQktICh2dGFwc1trXSAtIDEpOworCisJCW1vZGVfbGliLT52YmEuTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNDID0gZG1sX21pbigoZG91YmxlKSBNYXhMaW5lQnVmZmVyTGluZXMsCisJCQlkbWxfZmxvb3IoTGluZUJ1ZmZlclNpemUgLyBMQkJpdFBlclBpeGVsW2tdIC8gKFN3YXRoV2lkdGhZW2tdIC8gMiAvIGRtbF9tYXgoSFJhdGlvW2tdIC8gMiwgMS4wKSksIDEpKQorCQkJCS0gKFZUQVBzQ2hyb21hW2tdIC0gMSk7CisKKwkJRWZmZWN0aXZlTEJMYXRlbmN5SGlkaW5nWSA9IG1vZGVfbGliLT52YmEuTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNZIC8gVlJhdGlvW2tdCisJCQkJKiAoSFRvdGFsW2tdIC8gUGl4ZWxDbG9ja1trXSk7CisKKwkJRWZmZWN0aXZlTEJMYXRlbmN5SGlkaW5nQyA9IG1vZGVfbGliLT52YmEuTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNDCisJCQkJLyAoVlJhdGlvW2tdIC8gMikgKiAoSFRvdGFsW2tdIC8gUGl4ZWxDbG9ja1trXSk7CisKKwkJaWYgKFN3YXRoV2lkdGhZW2tdID4gMiAqIERQUE91dHB1dEJ1ZmZlclBpeGVscykgeworCQkJRFBQT3V0cHV0QnVmZmVyTGluZXNZID0gKGRvdWJsZSkgRFBQT3V0cHV0QnVmZmVyUGl4ZWxzIC8gU3dhdGhXaWR0aFlba107CisJCX0gZWxzZSBpZiAoU3dhdGhXaWR0aFlba10gPiBEUFBPdXRwdXRCdWZmZXJQaXhlbHMpIHsKKwkJCURQUE91dHB1dEJ1ZmZlckxpbmVzWSA9IDAuNTsKKwkJfSBlbHNlIHsKKwkJCURQUE91dHB1dEJ1ZmZlckxpbmVzWSA9IDE7CisJCX0KKworCQlpZiAoU3dhdGhXaWR0aFlba10gLyAyLjAgPiAyICogRFBQT3V0cHV0QnVmZmVyUGl4ZWxzKSB7CisJCQlEUFBPdXRwdXRCdWZmZXJMaW5lc0MgPSAoZG91YmxlKSBEUFBPdXRwdXRCdWZmZXJQaXhlbHMKKwkJCQkJLyAoU3dhdGhXaWR0aFlba10gLyAyLjApOworCQl9IGVsc2UgaWYgKFN3YXRoV2lkdGhZW2tdIC8gMi4wID4gRFBQT3V0cHV0QnVmZmVyUGl4ZWxzKSB7CisJCQlEUFBPdXRwdXRCdWZmZXJMaW5lc0MgPSAwLjU7CisJCX0gZWxzZSB7CisJCQlEUFBPdXRwdXRCdWZmZXJMaW5lc0MgPSAxOworCQl9CisKKwkJQ2FsY3VsYXRlREVUQnVmZmVyU2l6ZSgKKwkJCQlERVRCdWZmZXJTaXplSW5LQnl0ZSwKKwkJCQlTd2F0aEhlaWdodFlba10sCisJCQkJU3dhdGhIZWlnaHRDW2tdLAorCQkJCSZERVRCdWZmZXJTaXplWSwKKwkJCQkmREVUQnVmZmVyU2l6ZUMpOworCisJCUxpbmVzSW5ERVRZW2tdID0gREVUQnVmZmVyU2l6ZVkgLyBCeXRlUGVyUGl4ZWxERVRZW2tdIC8gU3dhdGhXaWR0aFlba107CisJCUxpbmVzSW5ERVRZUm91bmRlZERvd25Ub1N3YXRoW2tdID0gZG1sX2Zsb29yKExpbmVzSW5ERVRZW2tdLCBTd2F0aEhlaWdodFlba10pOworCQlGdWxsREVUQnVmZmVyaW5nVGltZVlba10gPSBMaW5lc0luREVUWVJvdW5kZWREb3duVG9Td2F0aFtrXQorCQkJCSogKEhUb3RhbFtrXSAvIFBpeGVsQ2xvY2tba10pIC8gVlJhdGlvW2tdOworCQlpZiAoQnl0ZVBlclBpeGVsREVUQ1trXSA+IDApIHsKKwkJCUxpbmVzSW5ERVRDID0gREVUQnVmZmVyU2l6ZUMgLyBCeXRlUGVyUGl4ZWxERVRDW2tdIC8gKFN3YXRoV2lkdGhZW2tdIC8gMi4wKTsKKwkJCUxpbmVzSW5ERVRDUm91bmRlZERvd25Ub1N3YXRoID0gZG1sX2Zsb29yKExpbmVzSW5ERVRDLCBTd2F0aEhlaWdodENba10pOworCQkJRnVsbERFVEJ1ZmZlcmluZ1RpbWVDID0gTGluZXNJbkRFVENSb3VuZGVkRG93blRvU3dhdGgKKwkJCQkJKiAoSFRvdGFsW2tdIC8gUGl4ZWxDbG9ja1trXSkgLyAoVlJhdGlvW2tdIC8gMik7CisJCX0gZWxzZSB7CisJCQlMaW5lc0luREVUQyA9IDA7CisJCQlGdWxsREVUQnVmZmVyaW5nVGltZUMgPSA5OTk5OTk7CisJCX0KKworCQlBY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luWSA9IEhUb3RhbFtrXSAvIFBpeGVsQ2xvY2tba10KKwkJCQkqIERQUE91dHB1dEJ1ZmZlckxpbmVzWSArIEVmZmVjdGl2ZUxCTGF0ZW5jeUhpZGluZ1kKKwkJCQkrIEZ1bGxERVRCdWZmZXJpbmdUaW1lWVtrXSAtICpEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcms7CisKKwkJaWYgKE51bWJlck9mQWN0aXZlUGxhbmVzID4gMSkgeworCQkJQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpblkgPSBBY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luWQorCQkJCS0gKDEgLSAxLjAgLyBOdW1iZXJPZkFjdGl2ZVBsYW5lcykgKiBTd2F0aEhlaWdodFlba10gKiBIVG90YWxba10gLyBQaXhlbENsb2NrW2tdIC8gVlJhdGlvW2tdOworCQl9CisKKwkJaWYgKEJ5dGVQZXJQaXhlbERFVENba10gPiAwKSB7CisJCQlBY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luQyA9IEhUb3RhbFtrXSAvIFBpeGVsQ2xvY2tba10KKwkJCQkJKiBEUFBPdXRwdXRCdWZmZXJMaW5lc0MgKyBFZmZlY3RpdmVMQkxhdGVuY3lIaWRpbmdDCisJCQkJCSsgRnVsbERFVEJ1ZmZlcmluZ1RpbWVDIC0gKkRSQU1DbG9ja0NoYW5nZVdhdGVybWFyazsKKwkJCWlmIChOdW1iZXJPZkFjdGl2ZVBsYW5lcyA+IDEpIHsKKwkJCQlBY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luQyA9IEFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5DCisJCQkJCS0gKDEgLSAxLjAgLyBOdW1iZXJPZkFjdGl2ZVBsYW5lcykgKiBTd2F0aEhlaWdodENba10gKiBIVG90YWxba10gLyBQaXhlbENsb2NrW2tdIC8gKFZSYXRpb1trXSAvIDIpOworCQkJfQorCQkJbW9kZV9saWItPnZiYS5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luW2tdID0gZG1sX21pbigKKwkJCQkJQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpblksCisJCQkJCUFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5DKTsKKwkJfSBlbHNlIHsKKwkJCW1vZGVfbGliLT52YmEuQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpbltrXSA9IEFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5ZOworCQl9CisKKwkJaWYgKFdyaXRlYmFja0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQlpZiAoV3JpdGViYWNrUGl4ZWxGb3JtYXRba10gPT0gZG1fNDQ0XzMyKSB7CisJCQkJV3JpdGViYWNrRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpbiA9IChXcml0ZWJhY2tJbnRlcmZhY2VMdW1hQnVmZmVyU2l6ZQorCQkJCQkrIFdyaXRlYmFja0ludGVyZmFjZUNocm9tYUJ1ZmZlclNpemUpIC8gKFdyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhba10KKwkJCQkJKiBXcml0ZWJhY2tEZXN0aW5hdGlvbkhlaWdodFtrXSAvIChXcml0ZWJhY2tTb3VyY2VIZWlnaHRba10gKiBIVG90YWxba10KKwkJCQkJLyBQaXhlbENsb2NrW2tdKSAqIDQpIC0gKldyaXRlYmFja0RSQU1DbG9ja0NoYW5nZVdhdGVybWFyazsKKwkJCX0gZWxzZSB7CisJCQkJV3JpdGViYWNrRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeU1hcmdpbiA9IGRtbF9taW4oCisJCQkJCQlXcml0ZWJhY2tJbnRlcmZhY2VMdW1hQnVmZmVyU2l6ZSAqIDguMCAvIDEwLAorCQkJCQkJMiAqIFdyaXRlYmFja0ludGVyZmFjZUNocm9tYUJ1ZmZlclNpemUgKiA4LjAgLyAxMCkgLyAoV3JpdGViYWNrRGVzdGluYXRpb25XaWR0aFtrXQorCQkJCQkJCSogV3JpdGViYWNrRGVzdGluYXRpb25IZWlnaHRba10gLyAoV3JpdGViYWNrU291cmNlSGVpZ2h0W2tdICogSFRvdGFsW2tdIC8gUGl4ZWxDbG9ja1trXSkpCisJCQkJCQktICpXcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcms7CisJCQl9CisJCQltb2RlX2xpYi0+dmJhLkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5ba10gPSBkbWxfbWluKAorCQkJCQltb2RlX2xpYi0+dmJhLkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5ba10sCisJCQkJCVdyaXRlYmFja0RSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW4pOworCQl9CisJfQorCisJbW9kZV9saWItPnZiYS5NaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW4gPSA5OTk5OTk7CisJUGxhbmVXaXRoTWluQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTWFyZ2luID0gMDsKKwlmb3IgKGsgPSAwOyBrIDwgTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlpZiAobW9kZV9saWItPnZiYS5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luW2tdCisJCQkJPCBtb2RlX2xpYi0+dmJhLk1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbikgeworCQkJbW9kZV9saWItPnZiYS5NaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW4gPQorCQkJCQltb2RlX2xpYi0+dmJhLkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5ba107CisJCQlpZiAoQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gaykgeworCQkJCVBsYW5lV2l0aE1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbiA9IGs7CisJCQl9IGVsc2UgeworCQkJCWZvciAoaiA9IDA7IGogPCBOdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytqKSB7CisJCQkJCWlmIChCbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBqKSB7CisJCQkJCQlQbGFuZVdpdGhNaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW4gPSBqOworCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CisJfQorCisJKk1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lTdXBwb3J0ZWQgPSBtb2RlX2xpYi0+dmJhLk1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbiArIERSQU1DbG9ja0NoYW5nZUxhdGVuY3k7CisKKwlTZWNvbmRNaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW5PbmVEaXNwbGF5SW5WQkxhbmsgPSA5OTk5OTk7CisJZm9yIChrID0gMDsgayA8IE51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKCEoKGsgPT0gUGxhbmVXaXRoTWluQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTWFyZ2luKSAmJiAoQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gaykpCisJCQkJJiYgIShCbGVuZGluZ0FuZFRpbWluZ1trXSA9PSBQbGFuZVdpdGhNaW5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VNYXJnaW4pCisJCQkJJiYgbW9kZV9saWItPnZiYS5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luW2tdCisJCQkJCQk8IFNlY29uZE1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbk9uZURpc3BsYXlJblZCTGFuaykgeworCQkJU2Vjb25kTWluQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTWFyZ2luT25lRGlzcGxheUluVkJMYW5rID0KKwkJCQkJbW9kZV9saWItPnZiYS5BY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luW2tdOworCQl9CisJfQorCisJbW9kZV9saWItPnZiYS5Ub3RhbE51bWJlck9mQWN0aXZlT1RHID0gMDsKKwlmb3IgKGsgPSAwOyBrIDwgTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlpZiAoQmxlbmRpbmdBbmRUaW1pbmdba10gPT0gaykgeworCQkJbW9kZV9saWItPnZiYS5Ub3RhbE51bWJlck9mQWN0aXZlT1RHID0gbW9kZV9saWItPnZiYS5Ub3RhbE51bWJlck9mQWN0aXZlT1RHICsgMTsKKwkJfQorCX0KKworCWlmIChtb2RlX2xpYi0+dmJhLk1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbiA+IDApIHsKKwkJKkRSQU1DbG9ja0NoYW5nZVN1cHBvcnQgPSBkbV9kcmFtX2Nsb2NrX2NoYW5nZV92YWN0aXZlOworCX0gZWxzZSBpZiAoKChtb2RlX2xpYi0+dmJhLlN5bmNocm9uaXplZFZCbGFuayA9PSB0cnVlCisJCQl8fCBtb2RlX2xpYi0+dmJhLlRvdGFsTnVtYmVyT2ZBY3RpdmVPVEcgPT0gMQorCQkJfHwgU2Vjb25kTWluQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTWFyZ2luT25lRGlzcGxheUluVkJMYW5rID4gMCkKKwkJCSYmIFByZWZldGNoTW9kZSA9PSAwKSkgeworCQkqRFJBTUNsb2NrQ2hhbmdlU3VwcG9ydCA9IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3ZibGFuazsKKwl9IGVsc2UgeworCQkqRFJBTUNsb2NrQ2hhbmdlU3VwcG9ydCA9IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3Vuc3VwcG9ydGVkOworCX0KKworCUZ1bGxERVRCdWZmZXJpbmdUaW1lWVN0dXR0ZXJDcml0aWNhbFBsYW5lID0gRnVsbERFVEJ1ZmZlcmluZ1RpbWVZWzBdOworCWZvciAoayA9IDA7IGsgPCBOdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChGdWxsREVUQnVmZmVyaW5nVGltZVlba10gPD0gRnVsbERFVEJ1ZmZlcmluZ1RpbWVZU3R1dHRlckNyaXRpY2FsUGxhbmUpIHsKKwkJCVRpbWVUb0ZpbmlzaFN3YXRoVHJhbnNmZXJTdHV0dGVyQ3JpdGljYWxQbGFuZSA9IChTd2F0aEhlaWdodFlba10KKwkJCQkJLSAoTGluZXNJbkRFVFlba10gLSBMaW5lc0luREVUWVJvdW5kZWREb3duVG9Td2F0aFtrXSkpCisJCQkJCSogKEhUb3RhbFtrXSAvIFBpeGVsQ2xvY2tba10pIC8gVlJhdGlvW2tdOworCQl9CisJfQorCisJKlN0dXR0ZXJFeGl0V2F0ZXJtYXJrID0gU1JFeGl0VGltZSArIG1vZGVfbGliLT52YmEuTGFzdFBpeGVsT2ZMaW5lRXh0cmFXYXRlcm1hcmsKKwkJCSsgRXh0cmFMYXRlbmN5ICsgMTAgLyBEQ0ZDTEtEZWVwU2xlZXA7CisJKlN0dXR0ZXJFbnRlclBsdXNFeGl0V2F0ZXJtYXJrID0gZG1sX21heCgKKwkJCVNSRW50ZXJQbHVzRXhpdFRpbWUgKyBtb2RlX2xpYi0+dmJhLkxhc3RQaXhlbE9mTGluZUV4dHJhV2F0ZXJtYXJrCisJCQkJCSsgRXh0cmFMYXRlbmN5ICsgMTAgLyBEQ0ZDTEtEZWVwU2xlZXAsCisJCQlUaW1lVG9GaW5pc2hTd2F0aFRyYW5zZmVyU3R1dHRlckNyaXRpY2FsUGxhbmUpOworCit9CisKK3N0YXRpYyB2b2lkIENhbGN1bGF0ZURDRkNMS0RlZXBTbGVlcCgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQl1bnNpZ25lZCBpbnQgTnVtYmVyT2ZBY3RpdmVQbGFuZXMsCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRZW10sCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRDW10sCisJCWRvdWJsZSBWUmF0aW9bXSwKKwkJdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZW10sCisJCWludCBEUFBQZXJQbGFuZVtdLAorCQlkb3VibGUgSFJhdGlvW10sCisJCWRvdWJsZSBQaXhlbENsb2NrW10sCisJCWRvdWJsZSBQU0NMX1RIUk9VR0hQVVRbXSwKKwkJZG91YmxlIFBTQ0xfVEhST1VHSFBVVF9DSFJPTUFbXSwKKwkJZG91YmxlIERQUENMS1tdLAorCQlkb3VibGUgKkRDRkNMS0RlZXBTbGVlcCkKK3sKKwl1aW50IGs7CisJZG91YmxlIERpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWE7CisJZG91YmxlIERpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUNocm9tYTsKKwkvL2RvdWJsZSAgIERDRkNMS0RlZXBTbGVlcFBlclBsYW5lW0RDX19OVU1fRFBQX19NQVhdOworCisJZm9yIChrID0gMDsgayA8IE51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKFZSYXRpb1trXSA8PSAxKSB7CisJCQlEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hID0gU3dhdGhXaWR0aFlba10gKiBEUFBQZXJQbGFuZVtrXQorCQkJCQkvIEhSYXRpb1trXSAvIFBpeGVsQ2xvY2tba107CisJCX0gZWxzZSB7CisJCQlEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hID0gU3dhdGhXaWR0aFlba10gLyBQU0NMX1RIUk9VR0hQVVRba10KKwkJCQkJLyBEUFBDTEtba107CisJCX0KKwkJaWYgKEJ5dGVQZXJQaXhlbERFVENba10gPT0gMCkgeworCQkJRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hID0gMDsKKwkJfSBlbHNlIHsKKwkJCWlmIChWUmF0aW9ba10gLyAyIDw9IDEpIHsKKwkJCQlEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWEgPSBTd2F0aFdpZHRoWVtrXSAvIDIuMAorCQkJCQkJKiBEUFBQZXJQbGFuZVtrXSAvIChIUmF0aW9ba10gLyAyKSAvIFBpeGVsQ2xvY2tba107CisJCQl9IGVsc2UgeworCQkJCURpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUNocm9tYSA9IFN3YXRoV2lkdGhZW2tdIC8gMi4wCisJCQkJCQkvIFBTQ0xfVEhST1VHSFBVVF9DSFJPTUFba10gLyBEUFBDTEtba107CisJCQl9CisJCX0KKworCQlpZiAoQnl0ZVBlclBpeGVsREVUQ1trXSA+IDApIHsKKwkJCW1vZGVfbGliLT52YmEuRENGQ0xLRGVlcFNsZWVwUGVyUGxhbmVba10gPSBkbWxfbWF4KAorCQkJCQkxLjEgKiBTd2F0aFdpZHRoWVtrXSAqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVFlba10sIDEpCisJCQkJCQkJLyAzMi4wIC8gRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lTHVtYSwKKwkJCQkJMS4xICogU3dhdGhXaWR0aFlba10gLyAyLjAKKwkJCQkJCQkqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVENba10sIDIpIC8gMzIuMAorCQkJCQkJCS8gRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hKTsKKwkJfSBlbHNlIHsKKwkJCW1vZGVfbGliLT52YmEuRENGQ0xLRGVlcFNsZWVwUGVyUGxhbmVba10gPSAxLjEgKiBTd2F0aFdpZHRoWVtrXQorCQkJCQkqIGRtbF9jZWlsKEJ5dGVQZXJQaXhlbERFVFlba10sIDEpIC8gNjQuMAorCQkJCQkvIERpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWE7CisJCX0KKwkJbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXBQZXJQbGFuZVtrXSA9IGRtbF9tYXgoCisJCQkJbW9kZV9saWItPnZiYS5EQ0ZDTEtEZWVwU2xlZXBQZXJQbGFuZVtrXSwKKwkJCQlQaXhlbENsb2NrW2tdIC8gMTYpOworCisJfQorCisJKkRDRkNMS0RlZXBTbGVlcCA9IDg7CisJZm9yIChrID0gMDsgayA8IE51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJKkRDRkNMS0RlZXBTbGVlcCA9IGRtbF9tYXgoCisJCQkJKkRDRkNMS0RlZXBTbGVlcCwKKwkJCQltb2RlX2xpYi0+dmJhLkRDRkNMS0RlZXBTbGVlcFBlclBsYW5lW2tdKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIENhbGN1bGF0ZURFVEJ1ZmZlclNpemUoCisJCWRvdWJsZSBERVRCdWZmZXJTaXplSW5LQnl0ZSwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WSwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0QywKKwkJZG91YmxlICpERVRCdWZmZXJTaXplWSwKKwkJZG91YmxlICpERVRCdWZmZXJTaXplQykKK3sKKwlpZiAoU3dhdGhIZWlnaHRDID09IDApIHsKKwkJKkRFVEJ1ZmZlclNpemVZID0gREVUQnVmZmVyU2l6ZUluS0J5dGUgKiAxMDI0OworCQkqREVUQnVmZmVyU2l6ZUMgPSAwOworCX0gZWxzZSBpZiAoU3dhdGhIZWlnaHRZIDw9IFN3YXRoSGVpZ2h0QykgeworCQkqREVUQnVmZmVyU2l6ZVkgPSBERVRCdWZmZXJTaXplSW5LQnl0ZSAqIDEwMjQgLyAyOworCQkqREVUQnVmZmVyU2l6ZUMgPSBERVRCdWZmZXJTaXplSW5LQnl0ZSAqIDEwMjQgLyAyOworCX0gZWxzZSB7CisJCSpERVRCdWZmZXJTaXplWSA9IERFVEJ1ZmZlclNpemVJbktCeXRlICogMTAyNCAqIDIgLyAzOworCQkqREVUQnVmZmVyU2l6ZUMgPSBERVRCdWZmZXJTaXplSW5LQnl0ZSAqIDEwMjQgLyAzOworCX0KK30KKworc3RhdGljIHZvaWQgQ2FsY3VsYXRlVXJnZW50QnVyc3RGYWN0b3IoCisJCXVuc2lnbmVkIGludCBERVRCdWZmZXJTaXplSW5LQnl0ZSwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WSwKKwkJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0QywKKwkJdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZLAorCQlkb3VibGUgTGluZVRpbWUsCisJCWRvdWJsZSBVcmdlbnRMYXRlbmN5LAorCQlkb3VibGUgQ3Vyc29yQnVmZmVyU2l6ZSwKKwkJdW5zaWduZWQgaW50IEN1cnNvcldpZHRoLAorCQl1bnNpZ25lZCBpbnQgQ3Vyc29yQlBQLAorCQlkb3VibGUgVlJhdGlvLAorCQlkb3VibGUgVlJhdGlvUHJlWSwKKwkJZG91YmxlIFZSYXRpb1ByZUMsCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxJbkRFVFksCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxJbkRFVEMsCisJCWRvdWJsZSAqVXJnZW50QnVyc3RGYWN0b3JDdXJzb3IsCisJCWRvdWJsZSAqVXJnZW50QnVyc3RGYWN0b3JDdXJzb3JQcmUsCisJCWRvdWJsZSAqVXJnZW50QnVyc3RGYWN0b3JMdW1hLAorCQlkb3VibGUgKlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVByZSwKKwkJZG91YmxlICpVcmdlbnRCdXJzdEZhY3RvckNocm9tYSwKKwkJZG91YmxlICpVcmdlbnRCdXJzdEZhY3RvckNocm9tYVByZSwKKwkJdW5zaWduZWQgaW50ICpOb3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nLAorCQl1bnNpZ25lZCBpbnQgKk5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmdQcmUpCit7CisJZG91YmxlIExpbmVzSW5ERVRMdW1hOworCWRvdWJsZSBMaW5lc0luREVUQ2hyb21hOworCXVuc2lnbmVkIGludCBMaW5lc0luQ3Vyc29yQnVmZmVyOworCWRvdWJsZSBDdXJzb3JCdWZmZXJTaXplSW5UaW1lOworCWRvdWJsZSBDdXJzb3JCdWZmZXJTaXplSW5UaW1lUHJlOworCWRvdWJsZSBERVRCdWZmZXJTaXplSW5UaW1lTHVtYTsKKwlkb3VibGUgREVUQnVmZmVyU2l6ZUluVGltZUx1bWFQcmU7CisJZG91YmxlIERFVEJ1ZmZlclNpemVJblRpbWVDaHJvbWE7CisJZG91YmxlIERFVEJ1ZmZlclNpemVJblRpbWVDaHJvbWFQcmU7CisJZG91YmxlIERFVEJ1ZmZlclNpemVZOworCWRvdWJsZSBERVRCdWZmZXJTaXplQzsKKworCSpOb3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nID0gMDsKKwkqTm90RW5vdWdoVXJnZW50TGF0ZW5jeUhpZGluZ1ByZSA9IDA7CisKKwlpZiAoQ3Vyc29yV2lkdGggPiAwKSB7CisJCUxpbmVzSW5DdXJzb3JCdWZmZXIgPSAxIDw8ICh1bnNpZ25lZCBpbnQpIGRtbF9mbG9vcigKKwkJCWRtbF9sb2cyKEN1cnNvckJ1ZmZlclNpemUgKiAxMDI0LjAgLyAoQ3Vyc29yV2lkdGggKiBDdXJzb3JCUFAgLyA4LjApKSwgMS4wKTsKKwkJQ3Vyc29yQnVmZmVyU2l6ZUluVGltZSA9IExpbmVzSW5DdXJzb3JCdWZmZXIgKiBMaW5lVGltZSAvIFZSYXRpbzsKKwkJaWYgKEN1cnNvckJ1ZmZlclNpemVJblRpbWUgLSBVcmdlbnRMYXRlbmN5IDw9IDApIHsKKwkJCSpOb3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nID0gMTsKKwkJCSpVcmdlbnRCdXJzdEZhY3RvckN1cnNvciA9IDA7CisJCX0gZWxzZSB7CisJCQkqVXJnZW50QnVyc3RGYWN0b3JDdXJzb3IgPSBDdXJzb3JCdWZmZXJTaXplSW5UaW1lCisJCQkJCS8gKEN1cnNvckJ1ZmZlclNpemVJblRpbWUgLSBVcmdlbnRMYXRlbmN5KTsKKwkJfQorCQlpZiAoVlJhdGlvUHJlWSA+IDApIHsKKwkJCUN1cnNvckJ1ZmZlclNpemVJblRpbWVQcmUgPSBMaW5lc0luQ3Vyc29yQnVmZmVyICogTGluZVRpbWUgLyBWUmF0aW9QcmVZOworCQkJaWYgKEN1cnNvckJ1ZmZlclNpemVJblRpbWVQcmUgLSBVcmdlbnRMYXRlbmN5IDw9IDApIHsKKwkJCQkqTm90RW5vdWdoVXJnZW50TGF0ZW5jeUhpZGluZ1ByZSA9IDE7CisJCQkJKlVyZ2VudEJ1cnN0RmFjdG9yQ3Vyc29yUHJlID0gMDsKKwkJCX0gZWxzZSB7CisJCQkJKlVyZ2VudEJ1cnN0RmFjdG9yQ3Vyc29yUHJlID0gQ3Vyc29yQnVmZmVyU2l6ZUluVGltZVByZQorCQkJCQkJLyAoQ3Vyc29yQnVmZmVyU2l6ZUluVGltZVByZSAtIFVyZ2VudExhdGVuY3kpOworCQkJfQorCQl9IGVsc2UgeworCQkJKlVyZ2VudEJ1cnN0RmFjdG9yQ3Vyc29yUHJlID0gMTsKKwkJfQorCX0KKworCUNhbGN1bGF0ZURFVEJ1ZmZlclNpemUoCisJCQlERVRCdWZmZXJTaXplSW5LQnl0ZSwKKwkJCVN3YXRoSGVpZ2h0WSwKKwkJCVN3YXRoSGVpZ2h0QywKKwkJCSZERVRCdWZmZXJTaXplWSwKKwkJCSZERVRCdWZmZXJTaXplQyk7CisKKwlMaW5lc0luREVUTHVtYSA9IERFVEJ1ZmZlclNpemVZIC8gQnl0ZVBlclBpeGVsSW5ERVRZIC8gU3dhdGhXaWR0aFk7CisJREVUQnVmZmVyU2l6ZUluVGltZUx1bWEgPSBkbWxfZmxvb3IoTGluZXNJbkRFVEx1bWEsIFN3YXRoSGVpZ2h0WSkgKiBMaW5lVGltZSAvIFZSYXRpbzsKKwlpZiAoREVUQnVmZmVyU2l6ZUluVGltZUx1bWEgLSBVcmdlbnRMYXRlbmN5IDw9IDApIHsKKwkJKk5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmcgPSAxOworCQkqVXJnZW50QnVyc3RGYWN0b3JMdW1hID0gMDsKKwl9IGVsc2UgeworCQkqVXJnZW50QnVyc3RGYWN0b3JMdW1hID0gREVUQnVmZmVyU2l6ZUluVGltZUx1bWEKKwkJCQkvIChERVRCdWZmZXJTaXplSW5UaW1lTHVtYSAtIFVyZ2VudExhdGVuY3kpOworCX0KKwlpZiAoVlJhdGlvUHJlWSA+IDApIHsKKwkJREVUQnVmZmVyU2l6ZUluVGltZUx1bWFQcmUgPSBkbWxfZmxvb3IoTGluZXNJbkRFVEx1bWEsIFN3YXRoSGVpZ2h0WSkgKiBMaW5lVGltZQorCQkJCS8gVlJhdGlvUHJlWTsKKwkJaWYgKERFVEJ1ZmZlclNpemVJblRpbWVMdW1hUHJlIC0gVXJnZW50TGF0ZW5jeSA8PSAwKSB7CisJCQkqTm90RW5vdWdoVXJnZW50TGF0ZW5jeUhpZGluZ1ByZSA9IDE7CisJCQkqVXJnZW50QnVyc3RGYWN0b3JMdW1hUHJlID0gMDsKKwkJfSBlbHNlIHsKKwkJCSpVcmdlbnRCdXJzdEZhY3Rvckx1bWFQcmUgPSBERVRCdWZmZXJTaXplSW5UaW1lTHVtYVByZQorCQkJCQkvIChERVRCdWZmZXJTaXplSW5UaW1lTHVtYVByZSAtIFVyZ2VudExhdGVuY3kpOworCQl9CisJfSBlbHNlIHsKKwkJKlVyZ2VudEJ1cnN0RmFjdG9yTHVtYVByZSA9IDE7CisJfQorCisJaWYgKEJ5dGVQZXJQaXhlbEluREVUQyA+IDApIHsKKwkJTGluZXNJbkRFVENocm9tYSA9IERFVEJ1ZmZlclNpemVDIC8gQnl0ZVBlclBpeGVsSW5ERVRDIC8gKFN3YXRoV2lkdGhZIC8gMik7CisJCURFVEJ1ZmZlclNpemVJblRpbWVDaHJvbWEgPSBkbWxfZmxvb3IoTGluZXNJbkRFVENocm9tYSwgU3dhdGhIZWlnaHRDKSAqIExpbmVUaW1lCisJCQkJLyAoVlJhdGlvIC8gMik7CisJCWlmIChERVRCdWZmZXJTaXplSW5UaW1lQ2hyb21hIC0gVXJnZW50TGF0ZW5jeSA8PSAwKSB7CisJCQkqTm90RW5vdWdoVXJnZW50TGF0ZW5jeUhpZGluZyA9IDE7CisJCQkqVXJnZW50QnVyc3RGYWN0b3JDaHJvbWEgPSAwOworCQl9IGVsc2UgeworCQkJKlVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hID0gREVUQnVmZmVyU2l6ZUluVGltZUNocm9tYQorCQkJCQkvIChERVRCdWZmZXJTaXplSW5UaW1lQ2hyb21hIC0gVXJnZW50TGF0ZW5jeSk7CisJCX0KKwkJaWYgKFZSYXRpb1ByZUMgPiAwKSB7CisJCQlERVRCdWZmZXJTaXplSW5UaW1lQ2hyb21hUHJlID0gZG1sX2Zsb29yKExpbmVzSW5ERVRDaHJvbWEsIFN3YXRoSGVpZ2h0QykKKwkJCQkJKiBMaW5lVGltZSAvIFZSYXRpb1ByZUM7CisJCQlpZiAoREVUQnVmZmVyU2l6ZUluVGltZUNocm9tYVByZSAtIFVyZ2VudExhdGVuY3kgPD0gMCkgeworCQkJCSpOb3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nUHJlID0gMTsKKwkJCQkqVXJnZW50QnVyc3RGYWN0b3JDaHJvbWFQcmUgPSAwOworCQkJfSBlbHNlIHsKKwkJCQkqVXJnZW50QnVyc3RGYWN0b3JDaHJvbWFQcmUgPSBERVRCdWZmZXJTaXplSW5UaW1lQ2hyb21hUHJlCisJCQkJCQkvIChERVRCdWZmZXJTaXplSW5UaW1lQ2hyb21hUHJlIC0gVXJnZW50TGF0ZW5jeSk7CisJCQl9CisJCX0gZWxzZSB7CisJCQkqVXJnZW50QnVyc3RGYWN0b3JDaHJvbWFQcmUgPSAxOworCQl9CisJfQorfQorCitzdGF0aWMgdm9pZCBDYWxjdWxhdGVQaXhlbERlbGl2ZXJ5VGltZXMoCisJCXVuc2lnbmVkIGludCBOdW1iZXJPZkFjdGl2ZVBsYW5lcywKKwkJZG91YmxlIFZSYXRpb1tdLAorCQlkb3VibGUgVlJhdGlvUHJlZmV0Y2hZW10sCisJCWRvdWJsZSBWUmF0aW9QcmVmZXRjaENbXSwKKwkJdW5zaWduZWQgaW50IHN3YXRoX3dpZHRoX2x1bWFfdWJbXSwKKwkJdW5zaWduZWQgaW50IHN3YXRoX3dpZHRoX2Nocm9tYV91YltdLAorCQlpbnQgRFBQUGVyUGxhbmVbXSwKKwkJZG91YmxlIEhSYXRpb1tdLAorCQlkb3VibGUgUGl4ZWxDbG9ja1tdLAorCQlkb3VibGUgUFNDTF9USFJPVUdIUFVUW10sCisJCWRvdWJsZSBQU0NMX1RIUk9VR0hQVVRfQ0hST01BW10sCisJCWRvdWJsZSBEUFBDTEtbXSwKKwkJZG91YmxlIEJ5dGVQZXJQaXhlbERFVENbXSwKKwkJZW51bSBzY2FuX2RpcmVjdGlvbl9jbGFzcyBTb3VyY2VTY2FuW10sCisJCXVuc2lnbmVkIGludCBCbG9ja1dpZHRoMjU2Qnl0ZXNZW10sCisJCXVuc2lnbmVkIGludCBCbG9ja0hlaWdodDI1NkJ5dGVzWVtdLAorCQl1bnNpZ25lZCBpbnQgQmxvY2tXaWR0aDI1NkJ5dGVzQ1tdLAorCQl1bnNpZ25lZCBpbnQgQmxvY2tIZWlnaHQyNTZCeXRlc0NbXSwKKwkJZG91YmxlIERpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWFbXSwKKwkJZG91YmxlIERpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUNocm9tYVtdLAorCQlkb3VibGUgRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lTHVtYVByZWZldGNoW10sCisJCWRvdWJsZSBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFQcmVmZXRjaFtdLAorCQlkb3VibGUgRGlzcGxheVBpcGVSZXF1ZXN0RGVsaXZlcnlUaW1lTHVtYVtdLAorCQlkb3VibGUgRGlzcGxheVBpcGVSZXF1ZXN0RGVsaXZlcnlUaW1lQ2hyb21hW10sCisJCWRvdWJsZSBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVMdW1hUHJlZmV0Y2hbXSwKKwkJZG91YmxlIERpc3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUNocm9tYVByZWZldGNoW10pCit7CisJZG91YmxlIHJlcV9wZXJfc3dhdGhfdWI7CisJdWludCBrOworCisJZm9yIChrID0gMDsgayA8IE51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKFZSYXRpb1trXSA8PSAxKSB7CisJCQlEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hW2tdID0gc3dhdGhfd2lkdGhfbHVtYV91YltrXSAqIERQUFBlclBsYW5lW2tdCisJCQkJCS8gSFJhdGlvW2tdIC8gUGl4ZWxDbG9ja1trXTsKKwkJfSBlbHNlIHsKKwkJCURpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWFba10gPSBzd2F0aF93aWR0aF9sdW1hX3ViW2tdCisJCQkJCS8gUFNDTF9USFJPVUdIUFVUW2tdIC8gRFBQQ0xLW2tdOworCQl9CisKKwkJaWYgKEJ5dGVQZXJQaXhlbERFVENba10gPT0gMCkgeworCQkJRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hW2tdID0gMDsKKwkJfSBlbHNlIHsKKwkJCWlmIChWUmF0aW9ba10gLyAyIDw9IDEpIHsKKwkJCQlEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFba10gPSBzd2F0aF93aWR0aF9jaHJvbWFfdWJba10KKwkJCQkJCSogRFBQUGVyUGxhbmVba10gLyAoSFJhdGlvW2tdIC8gMikgLyBQaXhlbENsb2NrW2tdOworCQkJfSBlbHNlIHsKKwkJCQlEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFba10gPSBzd2F0aF93aWR0aF9jaHJvbWFfdWJba10KKwkJCQkJCS8gUFNDTF9USFJPVUdIUFVUX0NIUk9NQVtrXSAvIERQUENMS1trXTsKKwkJCX0KKwkJfQorCisJCWlmIChWUmF0aW9QcmVmZXRjaFlba10gPD0gMSkgeworCQkJRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lTHVtYVByZWZldGNoW2tdID0gc3dhdGhfd2lkdGhfbHVtYV91YltrXQorCQkJCQkqIERQUFBlclBsYW5lW2tdIC8gSFJhdGlvW2tdIC8gUGl4ZWxDbG9ja1trXTsKKwkJfSBlbHNlIHsKKwkJCURpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWFQcmVmZXRjaFtrXSA9IHN3YXRoX3dpZHRoX2x1bWFfdWJba10KKwkJCQkJLyBQU0NMX1RIUk9VR0hQVVRba10gLyBEUFBDTEtba107CisJCX0KKworCQlpZiAoQnl0ZVBlclBpeGVsREVUQ1trXSA9PSAwKSB7CisJCQlEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFQcmVmZXRjaFtrXSA9IDA7CisJCX0gZWxzZSB7CisJCQlpZiAoVlJhdGlvUHJlZmV0Y2hDW2tdIDw9IDEpIHsKKwkJCQlEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVDaHJvbWFQcmVmZXRjaFtrXSA9CisJCQkJCQlzd2F0aF93aWR0aF9jaHJvbWFfdWJba10gKiBEUFBQZXJQbGFuZVtrXQorCQkJCQkJCQkvIChIUmF0aW9ba10gLyAyKSAvIFBpeGVsQ2xvY2tba107CisJCQl9IGVsc2UgeworCQkJCURpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUNocm9tYVByZWZldGNoW2tdID0KKwkJCQkJCXN3YXRoX3dpZHRoX2Nocm9tYV91YltrXSAvIFBTQ0xfVEhST1VHSFBVVF9DSFJPTUFba10gLyBEUFBDTEtba107CisJCQl9CisJCX0KKwl9CisKKwlmb3IgKGsgPSAwOyBrIDwgTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlpZiAoU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSB7CisJCQlyZXFfcGVyX3N3YXRoX3ViID0gc3dhdGhfd2lkdGhfbHVtYV91YltrXSAvIEJsb2NrV2lkdGgyNTZCeXRlc1lba107CisJCX0gZWxzZSB7CisJCQlyZXFfcGVyX3N3YXRoX3ViID0gc3dhdGhfd2lkdGhfbHVtYV91YltrXSAvIEJsb2NrSGVpZ2h0MjU2Qnl0ZXNZW2tdOworCQl9CisJCURpc3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUx1bWFba10gPSBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRpbWVMdW1hW2tdCisJCQkJLyByZXFfcGVyX3N3YXRoX3ViOworCQlEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVMdW1hUHJlZmV0Y2hba10gPQorCQkJCURpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUx1bWFQcmVmZXRjaFtrXSAvIHJlcV9wZXJfc3dhdGhfdWI7CisJCWlmIChCeXRlUGVyUGl4ZWxERVRDW2tdID09IDApIHsKKwkJCURpc3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUNocm9tYVtrXSA9IDA7CisJCQlEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVDaHJvbWFQcmVmZXRjaFtrXSA9IDA7CisJCX0gZWxzZSB7CisJCQlpZiAoU291cmNlU2NhbltrXSA9PSBkbV9ob3J6KSB7CisJCQkJcmVxX3Blcl9zd2F0aF91YiA9IHN3YXRoX3dpZHRoX2Nocm9tYV91YltrXQorCQkJCQkJLyBCbG9ja1dpZHRoMjU2Qnl0ZXNDW2tdOworCQkJfSBlbHNlIHsKKwkJCQlyZXFfcGVyX3N3YXRoX3ViID0gc3dhdGhfd2lkdGhfY2hyb21hX3ViW2tdCisJCQkJCQkvIEJsb2NrSGVpZ2h0MjU2Qnl0ZXNDW2tdOworCQkJfQorCQkJRGlzcGxheVBpcGVSZXF1ZXN0RGVsaXZlcnlUaW1lQ2hyb21hW2tdID0KKwkJCQkJRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hW2tdIC8gcmVxX3Blcl9zd2F0aF91YjsKKwkJCURpc3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUNocm9tYVByZWZldGNoW2tdID0KKwkJCQkJRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hUHJlZmV0Y2hba10gLyByZXFfcGVyX3N3YXRoX3ViOworCQl9CisJfQorfQorCitzdGF0aWMgdm9pZCBDYWxjdWxhdGVNZXRhQW5kUFRFVGltZXMoCisJCXVuc2lnbmVkIGludCBOdW1iZXJPZkFjdGl2ZVBsYW5lcywKKwkJYm9vbCBHUFVWTUVuYWJsZSwKKwkJdW5zaWduZWQgaW50IE1ldGFDaHVua1NpemUsCisJCXVuc2lnbmVkIGludCBNaW5NZXRhQ2h1bmtTaXplQnl0ZXMsCisJCXVuc2lnbmVkIGludCBHUFVWTU1heFBhZ2VUYWJsZUxldmVscywKKwkJdW5zaWduZWQgaW50IEhUb3RhbFtdLAorCQlkb3VibGUgVlJhdGlvW10sCisJCWRvdWJsZSBWUmF0aW9QcmVmZXRjaFlbXSwKKwkJZG91YmxlIFZSYXRpb1ByZWZldGNoQ1tdLAorCQlkb3VibGUgRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luVkJsYW5rW10sCisJCWRvdWJsZSBEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5JbW1lZGlhdGVGbGlwW10sCisJCWRvdWJsZSBEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFua1tdLAorCQlkb3VibGUgRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5JbW1lZGlhdGVGbGlwW10sCisJCWJvb2wgRENDRW5hYmxlW10sCisJCWRvdWJsZSBQaXhlbENsb2NrW10sCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRZW10sCisJCWRvdWJsZSBCeXRlUGVyUGl4ZWxERVRDW10sCisJCWVudW0gc2Nhbl9kaXJlY3Rpb25fY2xhc3MgU291cmNlU2NhbltdLAorCQl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVpZ2h0W10sCisJCXVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRfY2hyb21hW10sCisJCXVuc2lnbmVkIGludCBtZXRhX3Jvd193aWR0aFtdLAorCQl1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVpZ2h0W10sCisJCXVuc2lnbmVkIGludCBtZXRhX3JlcV93aWR0aFtdLAorCQl1bnNpZ25lZCBpbnQgbWV0YV9yZXFfaGVpZ2h0W10sCisJCWxvbmcgZHB0ZV9ncm91cF9ieXRlc1tdLAorCQl1bnNpZ25lZCBpbnQgUFRFUmVxdWVzdFNpemVZW10sCisJCXVuc2lnbmVkIGludCBQVEVSZXF1ZXN0U2l6ZUNbXSwKKwkJdW5zaWduZWQgaW50IFBpeGVsUFRFUmVxV2lkdGhZW10sCisJCXVuc2lnbmVkIGludCBQaXhlbFBURVJlcUhlaWdodFlbXSwKKwkJdW5zaWduZWQgaW50IFBpeGVsUFRFUmVxV2lkdGhDW10sCisJCXVuc2lnbmVkIGludCBQaXhlbFBURVJlcUhlaWdodENbXSwKKwkJdW5zaWduZWQgaW50IGRwdGVfcm93X3dpZHRoX2x1bWFfdWJbXSwKKwkJdW5zaWduZWQgaW50IGRwdGVfcm93X3dpZHRoX2Nocm9tYV91YltdLAorCQl1bnNpZ25lZCBpbnQgdm1fZ3JvdXBfYnl0ZXNbXSwKKwkJdW5zaWduZWQgaW50IGRwZGUwX2J5dGVzX3Blcl9mcmFtZV91Yl9sW10sCisJCXVuc2lnbmVkIGludCBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfY1tdLAorCQl1bnNpZ25lZCBpbnQgbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xbXSwKKwkJdW5zaWduZWQgaW50IG1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZV91Yl9jW10sCisJCWRvdWJsZSBEU1RfWV9QRVJfUFRFX1JPV19OT01fTFtdLAorCQlkb3VibGUgRFNUX1lfUEVSX1BURV9ST1dfTk9NX0NbXSwKKwkJZG91YmxlIERTVF9ZX1BFUl9NRVRBX1JPV19OT01fTFtdLAorCQlkb3VibGUgVGltZVBlck1ldGFDaHVua05vbWluYWxbXSwKKwkJZG91YmxlIFRpbWVQZXJNZXRhQ2h1bmtWQmxhbmtbXSwKKwkJZG91YmxlIFRpbWVQZXJNZXRhQ2h1bmtGbGlwW10sCisJCWRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBfbm9tX2x1bWFbXSwKKwkJZG91YmxlIHRpbWVfcGVyX3B0ZV9ncm91cF92YmxhbmtfbHVtYVtdLAorCQlkb3VibGUgdGltZV9wZXJfcHRlX2dyb3VwX2ZsaXBfbHVtYVtdLAorCQlkb3VibGUgdGltZV9wZXJfcHRlX2dyb3VwX25vbV9jaHJvbWFbXSwKKwkJZG91YmxlIHRpbWVfcGVyX3B0ZV9ncm91cF92YmxhbmtfY2hyb21hW10sCisJCWRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBfZmxpcF9jaHJvbWFbXSwKKwkJZG91YmxlIFRpbWVQZXJWTUdyb3VwVkJsYW5rW10sCisJCWRvdWJsZSBUaW1lUGVyVk1Hcm91cEZsaXBbXSwKKwkJZG91YmxlIFRpbWVQZXJWTVJlcXVlc3RWQmxhbmtbXSwKKwkJZG91YmxlIFRpbWVQZXJWTVJlcXVlc3RGbGlwW10pCit7CisJdW5zaWduZWQgaW50IG1ldGFfY2h1bmtfd2lkdGg7CisJdW5zaWduZWQgaW50IG1pbl9tZXRhX2NodW5rX3dpZHRoOworCXVuc2lnbmVkIGludCBtZXRhX2NodW5rX3Blcl9yb3dfaW50OworCXVuc2lnbmVkIGludCBtZXRhX3Jvd19yZW1haW5kZXI7CisJdW5zaWduZWQgaW50IG1ldGFfY2h1bmtfdGhyZXNob2xkOworCXVuc2lnbmVkIGludCBtZXRhX2NodW5rc19wZXJfcm93X3ViOworCXVuc2lnbmVkIGludCBkcHRlX2dyb3VwX3dpZHRoX2x1bWE7CisJdW5zaWduZWQgaW50IGRwdGVfZ3JvdXBfd2lkdGhfY2hyb21hOworCXVuc2lnbmVkIGludCBkcHRlX2dyb3Vwc19wZXJfcm93X2x1bWFfdWI7CisJdW5zaWduZWQgaW50IGRwdGVfZ3JvdXBzX3Blcl9yb3dfY2hyb21hX3ViOworCXVuc2lnbmVkIGludCBudW1fZ3JvdXBfcGVyX2xvd2VyX3ZtX3N0YWdlOworCXVuc2lnbmVkIGludCBudW1fcmVxX3Blcl9sb3dlcl92bV9zdGFnZTsKKwl1aW50IGs7CisKKwlmb3IgKGsgPSAwOyBrIDwgTnVtYmVyT2ZBY3RpdmVQbGFuZXM7ICsraykgeworCQlpZiAoR1BVVk1FbmFibGUgPT0gdHJ1ZSkgeworCQkJRFNUX1lfUEVSX1BURV9ST1dfTk9NX0xba10gPSBkcHRlX3Jvd19oZWlnaHRba10gLyBWUmF0aW9ba107CisJCQlpZiAoQnl0ZVBlclBpeGVsREVUQ1trXSA9PSAwKSB7CisJCQkJRFNUX1lfUEVSX1BURV9ST1dfTk9NX0Nba10gPSAwOworCQkJfSBlbHNlIHsKKwkJCQlEU1RfWV9QRVJfUFRFX1JPV19OT01fQ1trXSA9IGRwdGVfcm93X2hlaWdodF9jaHJvbWFba10gLyAoVlJhdGlvW2tdIC8gMik7CisJCQl9CisJCX0gZWxzZSB7CisJCQlEU1RfWV9QRVJfUFRFX1JPV19OT01fTFtrXSA9IDA7CisJCQlEU1RfWV9QRVJfUFRFX1JPV19OT01fQ1trXSA9IDA7CisJCX0KKwkJaWYgKERDQ0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQlEU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0xba10gPSBtZXRhX3Jvd19oZWlnaHRba10gLyBWUmF0aW9ba107CisJCX0gZWxzZSB7CisJCQlEU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0xba10gPSAwOworCQl9CisJfQorCisJZm9yIChrID0gMDsgayA8IE51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKERDQ0VuYWJsZVtrXSA9PSB0cnVlKSB7CisJCQltZXRhX2NodW5rX3dpZHRoID0gTWV0YUNodW5rU2l6ZSAqIDEwMjQgKiAyNTYKKwkJCQkJLyBkbWxfY2VpbChCeXRlUGVyUGl4ZWxERVRZW2tdLCAxKSAvIG1ldGFfcm93X2hlaWdodFtrXTsKKwkJCW1pbl9tZXRhX2NodW5rX3dpZHRoID0gTWluTWV0YUNodW5rU2l6ZUJ5dGVzICogMjU2CisJCQkJCS8gZG1sX2NlaWwoQnl0ZVBlclBpeGVsREVUWVtrXSwgMSkgLyBtZXRhX3Jvd19oZWlnaHRba107CisJCQltZXRhX2NodW5rX3Blcl9yb3dfaW50ID0gbWV0YV9yb3dfd2lkdGhba10gLyBtZXRhX2NodW5rX3dpZHRoOworCQkJbWV0YV9yb3dfcmVtYWluZGVyID0gbWV0YV9yb3dfd2lkdGhba10gJSBtZXRhX2NodW5rX3dpZHRoOworCQkJaWYgKFNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikgeworCQkJCW1ldGFfY2h1bmtfdGhyZXNob2xkID0gMiAqIG1pbl9tZXRhX2NodW5rX3dpZHRoIC0gbWV0YV9yZXFfd2lkdGhba107CisJCQl9IGVsc2UgeworCQkJCW1ldGFfY2h1bmtfdGhyZXNob2xkID0gMiAqIG1pbl9tZXRhX2NodW5rX3dpZHRoCisJCQkJCQktIG1ldGFfcmVxX2hlaWdodFtrXTsKKwkJCX0KKwkJCWlmIChtZXRhX3Jvd19yZW1haW5kZXIgPD0gbWV0YV9jaHVua190aHJlc2hvbGQpIHsKKwkJCQltZXRhX2NodW5rc19wZXJfcm93X3ViID0gbWV0YV9jaHVua19wZXJfcm93X2ludCArIDE7CisJCQl9IGVsc2UgeworCQkJCW1ldGFfY2h1bmtzX3Blcl9yb3dfdWIgPSBtZXRhX2NodW5rX3Blcl9yb3dfaW50ICsgMjsKKwkJCX0KKwkJCVRpbWVQZXJNZXRhQ2h1bmtOb21pbmFsW2tdID0gbWV0YV9yb3dfaGVpZ2h0W2tdIC8gVlJhdGlvW2tdICogSFRvdGFsW2tdCisJCQkJCS8gUGl4ZWxDbG9ja1trXSAvIG1ldGFfY2h1bmtzX3Blcl9yb3dfdWI7CisJCQlUaW1lUGVyTWV0YUNodW5rVkJsYW5rW2tdID0gRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luVkJsYW5rW2tdCisJCQkJCSogSFRvdGFsW2tdIC8gUGl4ZWxDbG9ja1trXSAvIG1ldGFfY2h1bmtzX3Blcl9yb3dfdWI7CisJCQlUaW1lUGVyTWV0YUNodW5rRmxpcFtrXSA9IERlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJbkltbWVkaWF0ZUZsaXBba10KKwkJCQkJKiBIVG90YWxba10gLyBQaXhlbENsb2NrW2tdIC8gbWV0YV9jaHVua3NfcGVyX3Jvd191YjsKKwkJfSBlbHNlIHsKKwkJCVRpbWVQZXJNZXRhQ2h1bmtOb21pbmFsW2tdID0gMDsKKwkJCVRpbWVQZXJNZXRhQ2h1bmtWQmxhbmtba10gPSAwOworCQkJVGltZVBlck1ldGFDaHVua0ZsaXBba10gPSAwOworCQl9CisJfQorCisJZm9yIChrID0gMDsgayA8IE51bWJlck9mQWN0aXZlUGxhbmVzOyArK2spIHsKKwkJaWYgKEdQVVZNRW5hYmxlID09IHRydWUpIHsKKwkJCWlmIChTb3VyY2VTY2FuW2tdID09IGRtX2hvcnopIHsKKwkJCQlkcHRlX2dyb3VwX3dpZHRoX2x1bWEgPSBkcHRlX2dyb3VwX2J5dGVzW2tdIC8gUFRFUmVxdWVzdFNpemVZW2tdCisJCQkJCQkqIFBpeGVsUFRFUmVxV2lkdGhZW2tdOworCQkJfSBlbHNlIHsKKwkJCQlkcHRlX2dyb3VwX3dpZHRoX2x1bWEgPSBkcHRlX2dyb3VwX2J5dGVzW2tdIC8gUFRFUmVxdWVzdFNpemVZW2tdCisJCQkJCQkqIFBpeGVsUFRFUmVxSGVpZ2h0WVtrXTsKKwkJCX0KKwkJCWRwdGVfZ3JvdXBzX3Blcl9yb3dfbHVtYV91YiA9IGRtbF9jZWlsKAorCQkJCQlkcHRlX3Jvd193aWR0aF9sdW1hX3ViW2tdIC8gZHB0ZV9ncm91cF93aWR0aF9sdW1hLAorCQkJCQkxKTsKKwkJCXRpbWVfcGVyX3B0ZV9ncm91cF9ub21fbHVtYVtrXSA9IERTVF9ZX1BFUl9QVEVfUk9XX05PTV9MW2tdICogSFRvdGFsW2tdCisJCQkJCS8gUGl4ZWxDbG9ja1trXSAvIGRwdGVfZ3JvdXBzX3Blcl9yb3dfbHVtYV91YjsKKwkJCXRpbWVfcGVyX3B0ZV9ncm91cF92YmxhbmtfbHVtYVtrXSA9IERlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJblZCbGFua1trXQorCQkJCQkqIEhUb3RhbFtrXSAvIFBpeGVsQ2xvY2tba10gLyBkcHRlX2dyb3Vwc19wZXJfcm93X2x1bWFfdWI7CisJCQl0aW1lX3Blcl9wdGVfZ3JvdXBfZmxpcF9sdW1hW2tdID0KKwkJCQkJRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFJvd0luSW1tZWRpYXRlRmxpcFtrXSAqIEhUb3RhbFtrXQorCQkJCQkJCS8gUGl4ZWxDbG9ja1trXQorCQkJCQkJCS8gZHB0ZV9ncm91cHNfcGVyX3Jvd19sdW1hX3ViOworCQkJaWYgKEJ5dGVQZXJQaXhlbERFVENba10gPT0gMCkgeworCQkJCXRpbWVfcGVyX3B0ZV9ncm91cF9ub21fY2hyb21hW2tdID0gMDsKKwkJCQl0aW1lX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2Nocm9tYVtrXSA9IDA7CisJCQkJdGltZV9wZXJfcHRlX2dyb3VwX2ZsaXBfY2hyb21hW2tdID0gMDsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKFNvdXJjZVNjYW5ba10gPT0gZG1faG9yeikgeworCQkJCQlkcHRlX2dyb3VwX3dpZHRoX2Nocm9tYSA9IGRwdGVfZ3JvdXBfYnl0ZXNba10KKwkJCQkJCQkvIFBURVJlcXVlc3RTaXplQ1trXSAqIFBpeGVsUFRFUmVxV2lkdGhDW2tdOworCQkJCX0gZWxzZSB7CisJCQkJCWRwdGVfZ3JvdXBfd2lkdGhfY2hyb21hID0gZHB0ZV9ncm91cF9ieXRlc1trXQorCQkJCQkJCS8gUFRFUmVxdWVzdFNpemVDW2tdCisJCQkJCQkJKiBQaXhlbFBURVJlcUhlaWdodENba107CisJCQkJfQorCQkJCWRwdGVfZ3JvdXBzX3Blcl9yb3dfY2hyb21hX3ViID0gZG1sX2NlaWwoCisJCQkJCQlkcHRlX3Jvd193aWR0aF9jaHJvbWFfdWJba10KKwkJCQkJCQkJLyBkcHRlX2dyb3VwX3dpZHRoX2Nocm9tYSwKKwkJCQkJCTEpOworCQkJCXRpbWVfcGVyX3B0ZV9ncm91cF9ub21fY2hyb21hW2tdID0gRFNUX1lfUEVSX1BURV9ST1dfTk9NX0Nba10KKwkJCQkJCSogSFRvdGFsW2tdIC8gUGl4ZWxDbG9ja1trXQorCQkJCQkJLyBkcHRlX2dyb3Vwc19wZXJfcm93X2Nocm9tYV91YjsKKwkJCQl0aW1lX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2Nocm9tYVtrXSA9CisJCQkJCQlEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Um93SW5WQmxhbmtba10gKiBIVG90YWxba10KKwkJCQkJCQkJLyBQaXhlbENsb2NrW2tdCisJCQkJCQkJCS8gZHB0ZV9ncm91cHNfcGVyX3Jvd19jaHJvbWFfdWI7CisJCQkJdGltZV9wZXJfcHRlX2dyb3VwX2ZsaXBfY2hyb21hW2tdID0KKwkJCQkJCURlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJbkltbWVkaWF0ZUZsaXBba10KKwkJCQkJCQkJKiBIVG90YWxba10gLyBQaXhlbENsb2NrW2tdCisJCQkJCQkJCS8gZHB0ZV9ncm91cHNfcGVyX3Jvd19jaHJvbWFfdWI7CisJCQl9CisJCX0gZWxzZSB7CisJCQl0aW1lX3Blcl9wdGVfZ3JvdXBfbm9tX2x1bWFba10gPSAwOworCQkJdGltZV9wZXJfcHRlX2dyb3VwX3ZibGFua19sdW1hW2tdID0gMDsKKwkJCXRpbWVfcGVyX3B0ZV9ncm91cF9mbGlwX2x1bWFba10gPSAwOworCQkJdGltZV9wZXJfcHRlX2dyb3VwX25vbV9jaHJvbWFba10gPSAwOworCQkJdGltZV9wZXJfcHRlX2dyb3VwX3ZibGFua19jaHJvbWFba10gPSAwOworCQkJdGltZV9wZXJfcHRlX2dyb3VwX2ZsaXBfY2hyb21hW2tdID0gMDsKKwkJfQorCX0KKworCWZvciAoayA9IDA7IGsgPCBOdW1iZXJPZkFjdGl2ZVBsYW5lczsgKytrKSB7CisJCWlmIChHUFVWTUVuYWJsZSA9PSB0cnVlICYmIChEQ0NFbmFibGVba10gPT0gdHJ1ZSB8fCBHUFVWTU1heFBhZ2VUYWJsZUxldmVscyA+IDEpKSB7CisJCQlpZiAoRENDRW5hYmxlW2tdID09IGZhbHNlKSB7CisJCQkJaWYgKEJ5dGVQZXJQaXhlbERFVENba10gPiAwKSB7CisJCQkJCW51bV9ncm91cF9wZXJfbG93ZXJfdm1fc3RhZ2UgPQorCQkJCQkJZG1sX2NlaWwoKGRvdWJsZSkgKGRwZGUwX2J5dGVzX3Blcl9mcmFtZV91Yl9sW2tdKSAvIChkb3VibGUpICh2bV9ncm91cF9ieXRlc1trXSksIDEpCisJCQkJCQkrIGRtbF9jZWlsKChkb3VibGUpIChkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfY1trXSkgLyAoZG91YmxlKSAodm1fZ3JvdXBfYnl0ZXNba10pLCAxKTsKKwkJCQl9IGVsc2UgeworCQkJCQludW1fZ3JvdXBfcGVyX2xvd2VyX3ZtX3N0YWdlID0KKwkJCQkJCQlkbWxfY2VpbCgoZG91YmxlKSAoZHBkZTBfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xba10pIC8gKGRvdWJsZSkgKHZtX2dyb3VwX2J5dGVzW2tdKSwgMSk7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQlpZiAoR1BVVk1NYXhQYWdlVGFibGVMZXZlbHMgPT0gMSkgeworCQkJCQlpZiAoQnl0ZVBlclBpeGVsREVUQ1trXSA+IDApIHsKKwkJCQkJCW51bV9ncm91cF9wZXJfbG93ZXJfdm1fc3RhZ2UgPQorCQkJCQkJCWRtbF9jZWlsKChkb3VibGUpIChtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbFtrXSkgLyAoZG91YmxlKSAodm1fZ3JvdXBfYnl0ZXNba10pLCAxKQorCQkJCQkJCSsgZG1sX2NlaWwoKGRvdWJsZSkgKG1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZV91Yl9jW2tdKSAvIChkb3VibGUpICh2bV9ncm91cF9ieXRlc1trXSksIDEpOworCQkJCQl9IGVsc2UgeworCQkJCQkJbnVtX2dyb3VwX3Blcl9sb3dlcl92bV9zdGFnZSA9CisJCQkJCQkJZG1sX2NlaWwoKGRvdWJsZSkgKG1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZV91Yl9sW2tdKSAvIChkb3VibGUpICh2bV9ncm91cF9ieXRlc1trXSksIDEpOworCQkJCQl9CisJCQkJfSBlbHNlIHsKKwkJCQkJaWYgKEJ5dGVQZXJQaXhlbERFVENba10gPiAwKSB7CisJCQkJCQludW1fZ3JvdXBfcGVyX2xvd2VyX3ZtX3N0YWdlID0KKwkJCQkJCQlkbWxfY2VpbCgoZG91YmxlKSAoZHBkZTBfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xba10pIC8gKGRvdWJsZSkgKHZtX2dyb3VwX2J5dGVzW2tdKSwgMSkKKwkJCQkJCQkrIGRtbF9jZWlsKChkb3VibGUpIChkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfY1trXSkgLyAoZG91YmxlKSAodm1fZ3JvdXBfYnl0ZXNba10pLCAxKQorCQkJCQkJCSsgZG1sX2NlaWwoKGRvdWJsZSkgKG1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZV91Yl9sW2tdKSAvIChkb3VibGUpICh2bV9ncm91cF9ieXRlc1trXSksIDEpCisJCQkJCQkJKyBkbWxfY2VpbCgoZG91YmxlKSAobWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2Nba10pIC8gKGRvdWJsZSkgKHZtX2dyb3VwX2J5dGVzW2tdKSwgMSk7CisJCQkJCX0gZWxzZSB7CisJCQkJCQludW1fZ3JvdXBfcGVyX2xvd2VyX3ZtX3N0YWdlID0KKwkJCQkJCQlkbWxfY2VpbCgoZG91YmxlKSAoZHBkZTBfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xba10pIC8gKGRvdWJsZSkgKHZtX2dyb3VwX2J5dGVzW2tdKSwgMSkKKwkJCQkJCQkrIGRtbF9jZWlsKChkb3VibGUpIChtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbFtrXSkgLyAoZG91YmxlKSAodm1fZ3JvdXBfYnl0ZXNba10pLCAxKTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKworCQkJaWYgKERDQ0VuYWJsZVtrXSA9PSBmYWxzZSkgeworCQkJCWlmIChCeXRlUGVyUGl4ZWxERVRDW2tdID4gMCkgeworCQkJCQludW1fcmVxX3Blcl9sb3dlcl92bV9zdGFnZSA9IGRwZGUwX2J5dGVzX3Blcl9mcmFtZV91Yl9sW2tdCisJCQkJCQkJLyA2NCArIGRwZGUwX2J5dGVzX3Blcl9mcmFtZV91Yl9jW2tdIC8gNjQ7CisJCQkJfSBlbHNlIHsKKwkJCQkJbnVtX3JlcV9wZXJfbG93ZXJfdm1fc3RhZ2UgPSBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfbFtrXQorCQkJCQkJCS8gNjQ7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQlpZiAoR1BVVk1NYXhQYWdlVGFibGVMZXZlbHMgPT0gMSkgeworCQkJCQlpZiAoQnl0ZVBlclBpeGVsREVUQ1trXSA+IDApIHsKKwkJCQkJCW51bV9yZXFfcGVyX2xvd2VyX3ZtX3N0YWdlID0gbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xba10gLyA2NAorCQkJCQkJCSsgbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2Nba10gLyA2NDsKKwkJCQkJfSBlbHNlIHsKKwkJCQkJCW51bV9yZXFfcGVyX2xvd2VyX3ZtX3N0YWdlID0gbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xba10gLyA2NDsKKwkJCQkJfQorCQkJCX0gZWxzZSB7CisJCQkJCWlmIChCeXRlUGVyUGl4ZWxERVRDW2tdID4gMCkgeworCQkJCQkJbnVtX3JlcV9wZXJfbG93ZXJfdm1fc3RhZ2UgPSBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfbFtrXSAvIDY0CisJCQkJCQkJKyBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfY1trXSAvIDY0CisJCQkJCQkJKyBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbFtrXSAvIDY0CisJCQkJCQkJKyBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfY1trXSAvIDY0OworCQkJCQl9IGVsc2UgeworCQkJCQkJbnVtX3JlcV9wZXJfbG93ZXJfdm1fc3RhZ2UgPSBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfbFtrXSAvIDY0CisJCQkJCQkJKyBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbFtrXSAvIDY0OworCQkJCQl9CisJCQkJfQorCQkJfQorCisJCQlUaW1lUGVyVk1Hcm91cFZCbGFua1trXSA9IERlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RWTUluVkJsYW5rW2tdICogSFRvdGFsW2tdCisJCQkJCS8gUGl4ZWxDbG9ja1trXSAvIG51bV9ncm91cF9wZXJfbG93ZXJfdm1fc3RhZ2U7CisJCQlUaW1lUGVyVk1Hcm91cEZsaXBba10gPSBEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JbkltbWVkaWF0ZUZsaXBba10KKwkJCQkJKiBIVG90YWxba10gLyBQaXhlbENsb2NrW2tdIC8gbnVtX2dyb3VwX3Blcl9sb3dlcl92bV9zdGFnZTsKKwkJCVRpbWVQZXJWTVJlcXVlc3RWQmxhbmtba10gPSBEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0Vk1JblZCbGFua1trXQorCQkJCQkqIEhUb3RhbFtrXSAvIFBpeGVsQ2xvY2tba10gLyBudW1fcmVxX3Blcl9sb3dlcl92bV9zdGFnZTsKKwkJCVRpbWVQZXJWTVJlcXVlc3RGbGlwW2tdID0gRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5JbW1lZGlhdGVGbGlwW2tdCisJCQkJCSogSFRvdGFsW2tdIC8gUGl4ZWxDbG9ja1trXSAvIG51bV9yZXFfcGVyX2xvd2VyX3ZtX3N0YWdlOworCisJCQlpZiAoR1BVVk1NYXhQYWdlVGFibGVMZXZlbHMgPiAyKSB7CisJCQkJVGltZVBlclZNR3JvdXBWQmxhbmtba10gPSBUaW1lUGVyVk1Hcm91cFZCbGFua1trXSAvIDI7CisJCQkJVGltZVBlclZNR3JvdXBGbGlwW2tdID0gVGltZVBlclZNR3JvdXBGbGlwW2tdIC8gMjsKKwkJCQlUaW1lUGVyVk1SZXF1ZXN0VkJsYW5rW2tdID0gVGltZVBlclZNUmVxdWVzdFZCbGFua1trXSAvIDI7CisJCQkJVGltZVBlclZNUmVxdWVzdEZsaXBba10gPSBUaW1lUGVyVk1SZXF1ZXN0RmxpcFtrXSAvIDI7CisJCQl9CisKKwkJfSBlbHNlIHsKKwkJCVRpbWVQZXJWTUdyb3VwVkJsYW5rW2tdID0gMDsKKwkJCVRpbWVQZXJWTUdyb3VwRmxpcFtrXSA9IDA7CisJCQlUaW1lUGVyVk1SZXF1ZXN0VkJsYW5rW2tdID0gMDsKKwkJCVRpbWVQZXJWTVJlcXVlc3RGbGlwW2tdID0gMDsKKwkJfQorCX0KK30KKworc3RhdGljIGRvdWJsZSBDYWxjdWxhdGVFeHRyYUxhdGVuY3koCisJCWRvdWJsZSBVcmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeSwKKwkJaW50IFRvdGFsTnVtYmVyT2ZBY3RpdmVEUFAsCisJCWludCBQaXhlbENodW5rU2l6ZUluS0J5dGUsCisJCWludCBUb3RhbE51bWJlck9mRENDQWN0aXZlRFBQLAorCQlpbnQgTWV0YUNodW5rU2l6ZSwKKwkJZG91YmxlIFJldHVybkJXLAorCQlib29sIEdQVVZNRW5hYmxlLAorCQlib29sIEhvc3RWTUVuYWJsZSwKKwkJaW50IE51bWJlck9mQWN0aXZlUGxhbmVzLAorCQlpbnQgTnVtYmVyT2ZEUFBbXSwKKwkJbG9uZyBkcHRlX2dyb3VwX2J5dGVzW10sCisJCWRvdWJsZSBQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhLAorCQlkb3VibGUgUGVyY2VudE9mSWRlYWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lWTURhdGFPbmx5LAorCQlpbnQgSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzLAorCQlpbnQgSG9zdFZNQ2FjaGVkUGFnZVRhYmxlTGV2ZWxzKQoreworCWRvdWJsZSBDYWxjdWxhdGVFeHRyYUxhdGVuY3k7CisJZG91YmxlIEhvc3RWTUluZWZmaWNpZW5jeUZhY3RvcjsKKwlpbnQgSG9zdFZNRHluYW1pY0xldmVsczsKKworCWlmIChHUFVWTUVuYWJsZSAmJiBIb3N0Vk1FbmFibGUpIHsKKwkJSG9zdFZNSW5lZmZpY2llbmN5RmFjdG9yID0KKwkJCQlQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhCisJCQkJCQkvIFBlcmNlbnRPZklkZWFsRFJBTUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5Vk1EYXRhT25seTsKKwkJSG9zdFZNRHluYW1pY0xldmVscyA9IEhvc3RWTU1heFBhZ2VUYWJsZUxldmVscyAtIEhvc3RWTUNhY2hlZFBhZ2VUYWJsZUxldmVsczsKKwl9IGVsc2UgeworCQlIb3N0Vk1JbmVmZmljaWVuY3lGYWN0b3IgPSAxOworCQlIb3N0Vk1EeW5hbWljTGV2ZWxzID0gMDsKKwl9CisKKwlDYWxjdWxhdGVFeHRyYUxhdGVuY3kgPSBVcmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeQorCQkJKyAoVG90YWxOdW1iZXJPZkFjdGl2ZURQUCAqIFBpeGVsQ2h1bmtTaXplSW5LQnl0ZQorCQkJCQkrIFRvdGFsTnVtYmVyT2ZEQ0NBY3RpdmVEUFAgKiBNZXRhQ2h1bmtTaXplKSAqIDEwMjQuMAorCQkJCQkvIFJldHVybkJXOworCisJaWYgKEdQVVZNRW5hYmxlKSB7CisJCWludCBrOworCisJCWZvciAoayA9IDA7IGsgPCBOdW1iZXJPZkFjdGl2ZVBsYW5lczsgaysrKSB7CisJCQlDYWxjdWxhdGVFeHRyYUxhdGVuY3kgPSBDYWxjdWxhdGVFeHRyYUxhdGVuY3kKKwkJCQkJKyBOdW1iZXJPZkRQUFtrXSAqIGRwdGVfZ3JvdXBfYnl0ZXNba10KKwkJCQkJCQkqICgxICsgOCAqIEhvc3RWTUR5bmFtaWNMZXZlbHMpCisJCQkJCQkJKiBIb3N0Vk1JbmVmZmljaWVuY3lGYWN0b3IgLyBSZXR1cm5CVzsKKwkJfQorCX0KKwlyZXR1cm4gQ2FsY3VsYXRlRXh0cmFMYXRlbmN5OworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjEvZGlzcGxheV9tb2RlX3ZiYV8yMS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24yMS9kaXNwbGF5X21vZGVfdmJhXzIxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI5NTQ4YQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjEvZGlzcGxheV9tb2RlX3ZiYV8yMS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNyBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpZm5kZWYgX19ETUwyMV9ESVNQTEFZX01PREVfVkJBX0hfXworI2RlZmluZSBfX0RNTDIxX0RJU1BMQVlfTU9ERV9WQkFfSF9fCisKK3ZvaWQgZG1sMjFfcmVjYWxjdWxhdGUoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliKTsKK3ZvaWQgZG1sMjFfTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25maWd1cmF0aW9uRnVsbChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpOworCisjZW5kaWYgLyogX0RNTDIxX0RJU1BMQVlfTU9ERV9WQkFfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjEvZGlzcGxheV9ycV9kbGdfY2FsY18yMS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24yMS9kaXNwbGF5X3JxX2RsZ19jYWxjXzIxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFmMjA3YwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjEvZGlzcGxheV9ycV9kbGdfY2FsY18yMS5jCkBAIC0wLDAgKzEsMTgyMyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMAorCisjaW5jbHVkZSAiLi4vZGlzcGxheV9tb2RlX2xpYi5oIgorI2luY2x1ZGUgIi4uL2Rpc3BsYXlfbW9kZV92YmEuaCIKKyNpbmNsdWRlICIuLi9kbWxfaW5saW5lX2RlZnMuaCIKKyNpbmNsdWRlICJkaXNwbGF5X3JxX2RsZ19jYWxjXzIxLmgiCisKKy8qCisgKiBOT1RFOgorICogICBUaGlzIGZpbGUgaXMgZ2NjLXBhcnNlYWJsZSBIVyBnb3NwZWwsIGNvbWluZyBzdHJhaWdodCBmcm9tIEhXIGVuZ2luZWVycy4KKyAqCisgKiBJdCBkb2Vzbid0IGFkaGVyZSB0byBMaW51eCBrZXJuZWwgc3R5bGUgYW5kIHNvbWV0aW1lcyB3aWxsIGRvIHRoaW5ncyBpbiBvZGQKKyAqIHdheXMuIFVubGVzcyB0aGVyZSBpcyBzb21ldGhpbmcgY2xlYXJseSB3cm9uZyB3aXRoIGl0IHRoZSBjb2RlIHNob3VsZAorICogcmVtYWluIGFzLWlzIGFzIGl0IHByb3ZpZGVzIHVzIHdpdGggYSBndWFyYW50ZWUgZnJvbSBIVyB0aGF0IGl0IGlzIGNvcnJlY3QuCisgKi8KKworc3RhdGljIHZvaWQgY2FsY3VsYXRlX3R0dV9jdXJzb3IoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZG91YmxlICpyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyLAorCQlkb3VibGUgKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1ciwKKwkJZG91YmxlIHJlZmNsa19mcmVxX2luX21oeiwKKwkJZG91YmxlIHJlZl9mcmVxX3RvX3BpeF9mcmVxLAorCQlkb3VibGUgaHNjYWxlX3BpeGVsX3JhdGVfbCwKKwkJZG91YmxlIGhzY2xfcmF0aW8sCisJCWRvdWJsZSB2cmF0aW9fcHJlX2wsCisJCWRvdWJsZSB2cmF0aW9fbCwKKwkJdW5zaWduZWQgaW50IGN1cl93aWR0aCwKKwkJZW51bSBjdXJzb3JfYnBwIGN1cl9icHApOworCitzdGF0aWMgdW5zaWduZWQgaW50IGdldF9ieXRlc19wZXJfZWxlbWVudChlbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3Mgc291cmNlX2Zvcm1hdCwgYm9vbCBpc19jaHJvbWEpCit7CisJdW5zaWduZWQgaW50IHJldF92YWwgPSAwOworCisJaWYgKHNvdXJjZV9mb3JtYXQgPT0gZG1fNDQ0XzE2KSB7CisJCWlmICghaXNfY2hyb21hKQorCQkJcmV0X3ZhbCA9IDI7CisJfSBlbHNlIGlmIChzb3VyY2VfZm9ybWF0ID09IGRtXzQ0NF8zMikgeworCQlpZiAoIWlzX2Nocm9tYSkKKwkJCXJldF92YWwgPSA0OworCX0gZWxzZSBpZiAoc291cmNlX2Zvcm1hdCA9PSBkbV80NDRfNjQpIHsKKwkJaWYgKCFpc19jaHJvbWEpCisJCQlyZXRfdmFsID0gODsKKwl9IGVsc2UgaWYgKHNvdXJjZV9mb3JtYXQgPT0gZG1fNDIwXzgpIHsKKwkJaWYgKGlzX2Nocm9tYSkKKwkJCXJldF92YWwgPSAyOworCQllbHNlCisJCQlyZXRfdmFsID0gMTsKKwl9IGVsc2UgaWYgKHNvdXJjZV9mb3JtYXQgPT0gZG1fNDIwXzEwKSB7CisJCWlmIChpc19jaHJvbWEpCisJCQlyZXRfdmFsID0gNDsKKwkJZWxzZQorCQkJcmV0X3ZhbCA9IDI7CisJfSBlbHNlIGlmIChzb3VyY2VfZm9ybWF0ID09IGRtXzQ0NF84KSB7CisJCXJldF92YWwgPSAxOworCX0KKwlyZXR1cm4gcmV0X3ZhbDsKK30KKworc3RhdGljIGJvb2wgaXNfZHVhbF9wbGFuZShlbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3Mgc291cmNlX2Zvcm1hdCkKK3sKKwlib29sIHJldF92YWwgPSAwOworCisJaWYgKChzb3VyY2VfZm9ybWF0ID09IGRtXzQyMF84KSB8fCAoc291cmNlX2Zvcm1hdCA9PSBkbV80MjBfMTApKQorCQlyZXRfdmFsID0gMTsKKworCXJldHVybiByZXRfdmFsOworfQorCitzdGF0aWMgZG91YmxlIGdldF9yZWZjeWNfcGVyX2RlbGl2ZXJ5KAorCQlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRvdWJsZSByZWZjbGtfZnJlcV9pbl9taHosCisJCWRvdWJsZSBwY2xrX2ZyZXFfaW5fbWh6LAorCQlib29sIG9kbV9jb21iaW5lLAorCQl1bnNpZ25lZCBpbnQgcmVjb3V0X3dpZHRoLAorCQl1bnNpZ25lZCBpbnQgaGFjdGl2ZSwKKwkJZG91YmxlIHZyYXRpbywKKwkJZG91YmxlIGhzY2FsZV9waXhlbF9yYXRlLAorCQl1bnNpZ25lZCBpbnQgZGVsaXZlcnlfd2lkdGgsCisJCXVuc2lnbmVkIGludCByZXFfcGVyX3N3YXRoX3ViKQoreworCWRvdWJsZSByZWZjeWNfcGVyX2RlbGl2ZXJ5ID0gMC4wOworCisJaWYgKHZyYXRpbyA8PSAxLjApIHsKKwkJaWYgKG9kbV9jb21iaW5lKQorCQkJcmVmY3ljX3Blcl9kZWxpdmVyeSA9IChkb3VibGUpIHJlZmNsa19mcmVxX2luX21oegorCQkJCQkqIGRtbF9taW4oKGRvdWJsZSkgcmVjb3V0X3dpZHRoLCAoZG91YmxlKSBoYWN0aXZlIC8gMi4wKQorCQkJCQkvIHBjbGtfZnJlcV9pbl9taHogLyAoZG91YmxlKSByZXFfcGVyX3N3YXRoX3ViOworCQllbHNlCisJCQlyZWZjeWNfcGVyX2RlbGl2ZXJ5ID0gKGRvdWJsZSkgcmVmY2xrX2ZyZXFfaW5fbWh6ICogKGRvdWJsZSkgcmVjb3V0X3dpZHRoCisJCQkJCS8gcGNsa19mcmVxX2luX21oeiAvIChkb3VibGUpIHJlcV9wZXJfc3dhdGhfdWI7CisJfSBlbHNlIHsKKwkJcmVmY3ljX3Blcl9kZWxpdmVyeSA9IChkb3VibGUpIHJlZmNsa19mcmVxX2luX21oeiAqIChkb3VibGUpIGRlbGl2ZXJ5X3dpZHRoCisJCQkJLyAoZG91YmxlKSBoc2NhbGVfcGl4ZWxfcmF0ZSAvIChkb3VibGUpIHJlcV9wZXJfc3dhdGhfdWI7CisJfQorCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcmVmY2xrX2ZyZXFfaW5fbWh6ID0gJTMuMmZcbiIsIF9fZnVuY19fLCByZWZjbGtfZnJlcV9pbl9taHopOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHBjbGtfZnJlcV9pbl9taHogICA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgcGNsa19mcmVxX2luX21oeik7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcmVjb3V0X3dpZHRoICAgICAgID0gJWRcbiIsIF9fZnVuY19fLCByZWNvdXRfd2lkdGgpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHZyYXRpbyAgICAgICAgICAgICA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgdnJhdGlvKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiByZXFfcGVyX3N3YXRoX3ViICAgPSAlZFxuIiwgX19mdW5jX18sIHJlcV9wZXJfc3dhdGhfdWIpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHJlZmN5Y19wZXJfZGVsaXZlcnk9ICUzLjJmXG4iLCBfX2Z1bmNfXywgcmVmY3ljX3Blcl9kZWxpdmVyeSk7CisKKwlyZXR1cm4gcmVmY3ljX3Blcl9kZWxpdmVyeTsKKworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGdldF9ibGtfc2l6ZV9ieXRlcyhjb25zdCBlbnVtIHNvdXJjZV9tYWNyb190aWxlX3NpemUgdGlsZV9zaXplKQoreworCWlmICh0aWxlX3NpemUgPT0gZG1fMjU2a190aWxlKQorCQlyZXR1cm4gKDI1NiAqIDEwMjQpOworCWVsc2UgaWYgKHRpbGVfc2l6ZSA9PSBkbV82NGtfdGlsZSkKKwkJcmV0dXJuICg2NCAqIDEwMjQpOworCWVsc2UKKwkJcmV0dXJuICg0ICogMTAyNCk7Cit9CisKK3N0YXRpYyB2b2lkIGV4dHJhY3RfcnFfc2l6aW5nX3JlZ3MoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZGlzcGxheV9kYXRhX3JxX3JlZ3Nfc3QgKnJxX3JlZ3MsCisJCWNvbnN0IGRpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0IHJxX3NpemluZykKK3sKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBycV9zaXppbmcgcGFyYW1cbiIsIF9fZnVuY19fKTsKKwlwcmludF9fZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0KG1vZGVfbGliLCBycV9zaXppbmcpOworCisJcnFfcmVncy0+Y2h1bmtfc2l6ZSA9IGRtbF9sb2cyKHJxX3NpemluZy5jaHVua19ieXRlcykgLSAxMDsKKworCWlmIChycV9zaXppbmcubWluX2NodW5rX2J5dGVzID09IDApCisJCXJxX3JlZ3MtPm1pbl9jaHVua19zaXplID0gMDsKKwllbHNlCisJCXJxX3JlZ3MtPm1pbl9jaHVua19zaXplID0gZG1sX2xvZzIocnFfc2l6aW5nLm1pbl9jaHVua19ieXRlcykgLSA4ICsgMTsKKworCXJxX3JlZ3MtPm1ldGFfY2h1bmtfc2l6ZSA9IGRtbF9sb2cyKHJxX3NpemluZy5tZXRhX2NodW5rX2J5dGVzKSAtIDEwOworCWlmIChycV9zaXppbmcubWluX21ldGFfY2h1bmtfYnl0ZXMgPT0gMCkKKwkJcnFfcmVncy0+bWluX21ldGFfY2h1bmtfc2l6ZSA9IDA7CisJZWxzZQorCQlycV9yZWdzLT5taW5fbWV0YV9jaHVua19zaXplID0gZG1sX2xvZzIocnFfc2l6aW5nLm1pbl9tZXRhX2NodW5rX2J5dGVzKSAtIDYgKyAxOworCisJcnFfcmVncy0+ZHB0ZV9ncm91cF9zaXplID0gZG1sX2xvZzIocnFfc2l6aW5nLmRwdGVfZ3JvdXBfYnl0ZXMpIC0gNjsKKwlycV9yZWdzLT5tcHRlX2dyb3VwX3NpemUgPSBkbWxfbG9nMihycV9zaXppbmcubXB0ZV9ncm91cF9ieXRlcykgLSA2OworfQorCitzdGF0aWMgdm9pZCBleHRyYWN0X3JxX3JlZ3MoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZGlzcGxheV9ycV9yZWdzX3N0ICpycV9yZWdzLAorCQljb25zdCBkaXNwbGF5X3JxX3BhcmFtc19zdCBycV9wYXJhbSkKK3sKKwl1bnNpZ25lZCBpbnQgZGV0aWxlX2J1Zl9zaXplX2luX2J5dGVzID0gbW9kZV9saWItPmlwLmRldF9idWZmZXJfc2l6ZV9rYnl0ZXMgKiAxMDI0OworCXVuc2lnbmVkIGludCBkZXRpbGVfYnVmX3BsYW5lMV9hZGRyID0gMDsKKworCWV4dHJhY3RfcnFfc2l6aW5nX3JlZ3MobW9kZV9saWIsICYocnFfcmVncy0+cnFfcmVnc19sKSwgcnFfcGFyYW0uc2l6aW5nLnJxX2wpOworCisJcnFfcmVncy0+cnFfcmVnc19sLnB0ZV9yb3dfaGVpZ2h0X2xpbmVhciA9IGRtbF9mbG9vcigKKwkJCWRtbF9sb2cyKHJxX3BhcmFtLmRsZy5ycV9sLmRwdGVfcm93X2hlaWdodCksCisJCQkxKSAtIDM7CisKKwlpZiAocnFfcGFyYW0ueXV2NDIwKSB7CisJCWV4dHJhY3RfcnFfc2l6aW5nX3JlZ3MobW9kZV9saWIsICYocnFfcmVncy0+cnFfcmVnc19jKSwgcnFfcGFyYW0uc2l6aW5nLnJxX2MpOworCQlycV9yZWdzLT5ycV9yZWdzX2MucHRlX3Jvd19oZWlnaHRfbGluZWFyID0gZG1sX2Zsb29yKAorCQkJCWRtbF9sb2cyKHJxX3BhcmFtLmRsZy5ycV9jLmRwdGVfcm93X2hlaWdodCksCisJCQkJMSkgLSAzOworCX0KKworCXJxX3JlZ3MtPnJxX3JlZ3NfbC5zd2F0aF9oZWlnaHQgPSBkbWxfbG9nMihycV9wYXJhbS5kbGcucnFfbC5zd2F0aF9oZWlnaHQpOworCXJxX3JlZ3MtPnJxX3JlZ3NfYy5zd2F0aF9oZWlnaHQgPSBkbWxfbG9nMihycV9wYXJhbS5kbGcucnFfYy5zd2F0aF9oZWlnaHQpOworCisJLy8gRklYTUU6IHRha2UgdGhlIG1heCBiZXR3ZWVuIGx1bWEsIGNocm9tYSBjaHVuayBzaXplPworCS8vIG9rYXkgZm9yIG5vdywgYXMgd2UgYXJlIHNldHRpbmcgY2h1bmtfYnl0ZXMgdG8gOGtiIGFueXdheXMKKwlpZiAocnFfcGFyYW0uc2l6aW5nLnJxX2wuY2h1bmtfYnl0ZXMgPj0gMzIgKiAxMDI0KSB7IC8vMzJrYgorCQlycV9yZWdzLT5kcnFfZXhwYW5zaW9uX21vZGUgPSAwOworCX0gZWxzZSB7CisJCXJxX3JlZ3MtPmRycV9leHBhbnNpb25fbW9kZSA9IDI7CisJfQorCXJxX3JlZ3MtPnBycV9leHBhbnNpb25fbW9kZSA9IDE7CisJcnFfcmVncy0+bXJxX2V4cGFuc2lvbl9tb2RlID0gMTsKKwlycV9yZWdzLT5jcnFfZXhwYW5zaW9uX21vZGUgPSAxOworCisJaWYgKHJxX3BhcmFtLnl1djQyMCkgeworCQlpZiAoKGRvdWJsZSkgcnFfcGFyYW0ubWlzYy5ycV9sLnN0b3JlZF9zd2F0aF9ieXRlcworCQkJCS8gKGRvdWJsZSkgcnFfcGFyYW0ubWlzYy5ycV9jLnN0b3JlZF9zd2F0aF9ieXRlcyA8PSAxLjUpIHsKKwkJCWRldGlsZV9idWZfcGxhbmUxX2FkZHIgPSAoZGV0aWxlX2J1Zl9zaXplX2luX2J5dGVzIC8gMi4wIC8gNjQuMCk7IC8vIGhhbGYgdG8gY2hyb21hCisJCX0gZWxzZSB7CisJCQlkZXRpbGVfYnVmX3BsYW5lMV9hZGRyID0gZG1sX3JvdW5kX3RvX211bHRpcGxlKAorCQkJCQkodW5zaWduZWQgaW50KSAoKDIuMCAqIGRldGlsZV9idWZfc2l6ZV9pbl9ieXRlcykgLyAzLjApLAorCQkJCQkyNTYsCisJCQkJCTApIC8gNjQuMDsgLy8gMi8zIHRvIGNocm9tYQorCQl9CisJfQorCXJxX3JlZ3MtPnBsYW5lMV9iYXNlX2FkZHJlc3MgPSBkZXRpbGVfYnVmX3BsYW5lMV9hZGRyOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVfZGV0X2J1Zl9zcGxpdCgKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkaXNwbGF5X3JxX3BhcmFtc19zdCAqcnFfcGFyYW0sCisJCWNvbnN0IGRpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1zX3N0IHBpcGVfc3JjX3BhcmFtKQoreworCXVuc2lnbmVkIGludCB0b3RhbF9zd2F0aF9ieXRlcyA9IDA7CisJdW5zaWduZWQgaW50IHN3YXRoX2J5dGVzX2wgPSAwOworCXVuc2lnbmVkIGludCBzd2F0aF9ieXRlc19jID0gMDsKKwl1bnNpZ25lZCBpbnQgZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfbCA9IDA7CisJdW5zaWduZWQgaW50IGZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2MgPSAwOworCWJvb2wgcmVxMTI4X2wgPSAwOworCWJvb2wgcmVxMTI4X2MgPSAwOworCWJvb2wgc3VyZl9saW5lYXIgPSAocGlwZV9zcmNfcGFyYW0uc3dfbW9kZSA9PSBkbV9zd19saW5lYXIpOworCWJvb2wgc3VyZl92ZXJ0ID0gKHBpcGVfc3JjX3BhcmFtLnNvdXJjZV9zY2FuID09IGRtX3ZlcnQpOworCXVuc2lnbmVkIGludCBsb2cyX3N3YXRoX2hlaWdodF9sID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9zd2F0aF9oZWlnaHRfYyA9IDA7CisJdW5zaWduZWQgaW50IGRldGlsZV9idWZfc2l6ZV9pbl9ieXRlcyA9IG1vZGVfbGliLT5pcC5kZXRfYnVmZmVyX3NpemVfa2J5dGVzICogMTAyNDsKKworCWZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2wgPSBycV9wYXJhbS0+bWlzYy5ycV9sLmZ1bGxfc3dhdGhfYnl0ZXM7CisJZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfYyA9IHJxX3BhcmFtLT5taXNjLnJxX2MuZnVsbF9zd2F0aF9ieXRlczsKKworCWlmIChycV9wYXJhbS0+eXV2NDIwXzEwYnBjKSB7CisJCWZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2wgPSBkbWxfcm91bmRfdG9fbXVsdGlwbGUoCisJCQkJcnFfcGFyYW0tPm1pc2MucnFfbC5mdWxsX3N3YXRoX2J5dGVzICogMiAvIDMsCisJCQkJMjU2LAorCQkJCTEpICsgMjU2OworCQlmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9jID0gZG1sX3JvdW5kX3RvX211bHRpcGxlKAorCQkJCXJxX3BhcmFtLT5taXNjLnJxX2MuZnVsbF9zd2F0aF9ieXRlcyAqIDIgLyAzLAorCQkJCTI1NiwKKwkJCQkxKSArIDI1NjsKKwl9CisKKwlpZiAocnFfcGFyYW0tPnl1djQyMCkgeworCQl0b3RhbF9zd2F0aF9ieXRlcyA9IDIgKiBmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9sICsgMiAqIGZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2M7CisKKwkJaWYgKHRvdGFsX3N3YXRoX2J5dGVzIDw9IGRldGlsZV9idWZfc2l6ZV9pbl9ieXRlcykgeyAvL2Z1bGwgMjU2YiByZXF1ZXN0CisJCQlyZXExMjhfbCA9IDA7CisJCQlyZXExMjhfYyA9IDA7CisJCQlzd2F0aF9ieXRlc19sID0gZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfbDsKKwkJCXN3YXRoX2J5dGVzX2MgPSBmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9jOworCQl9IGVsc2UgeyAvLzEyOGIgcmVxdWVzdCAoZm9yIGx1bWEgb25seSBmb3IgeXV2NDIwIDhicGMpCisJCQlyZXExMjhfbCA9IDE7CisJCQlyZXExMjhfYyA9IDA7CisJCQlzd2F0aF9ieXRlc19sID0gZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfbCAvIDI7CisJCQlzd2F0aF9ieXRlc19jID0gZnVsbF9zd2F0aF9ieXRlc19wYWNrZWRfYzsKKwkJfQorCQkvLyBOb3RlOiBhc3N1bXB0aW9uLCB0aGUgY29uZmlnIHRoYXQgcGFzcyBpbiB3aWxsIGZpdCBpbnRvCisJCS8vICAgICAgIHRoZSBkZXRpbGVkIGJ1ZmZlci4KKwl9IGVsc2UgeworCQl0b3RhbF9zd2F0aF9ieXRlcyA9IDIgKiBmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9sOworCisJCWlmICh0b3RhbF9zd2F0aF9ieXRlcyA8PSBkZXRpbGVfYnVmX3NpemVfaW5fYnl0ZXMpCisJCQlyZXExMjhfbCA9IDA7CisJCWVsc2UKKwkJCXJlcTEyOF9sID0gMTsKKworCQlzd2F0aF9ieXRlc19sID0gdG90YWxfc3dhdGhfYnl0ZXM7CisJCXN3YXRoX2J5dGVzX2MgPSAwOworCX0KKwlycV9wYXJhbS0+bWlzYy5ycV9sLnN0b3JlZF9zd2F0aF9ieXRlcyA9IHN3YXRoX2J5dGVzX2w7CisJcnFfcGFyYW0tPm1pc2MucnFfYy5zdG9yZWRfc3dhdGhfYnl0ZXMgPSBzd2F0aF9ieXRlc19jOworCisJaWYgKHN1cmZfbGluZWFyKSB7CisJCWxvZzJfc3dhdGhfaGVpZ2h0X2wgPSAwOworCQlsb2cyX3N3YXRoX2hlaWdodF9jID0gMDsKKwl9IGVsc2UgaWYgKCFzdXJmX3ZlcnQpIHsKKwkJbG9nMl9zd2F0aF9oZWlnaHRfbCA9IGRtbF9sb2cyKHJxX3BhcmFtLT5taXNjLnJxX2wuYmxrMjU2X2hlaWdodCkgLSByZXExMjhfbDsKKwkJbG9nMl9zd2F0aF9oZWlnaHRfYyA9IGRtbF9sb2cyKHJxX3BhcmFtLT5taXNjLnJxX2MuYmxrMjU2X2hlaWdodCkgLSByZXExMjhfYzsKKwl9IGVsc2UgeworCQlsb2cyX3N3YXRoX2hlaWdodF9sID0gZG1sX2xvZzIocnFfcGFyYW0tPm1pc2MucnFfbC5ibGsyNTZfd2lkdGgpIC0gcmVxMTI4X2w7CisJCWxvZzJfc3dhdGhfaGVpZ2h0X2MgPSBkbWxfbG9nMihycV9wYXJhbS0+bWlzYy5ycV9jLmJsazI1Nl93aWR0aCkgLSByZXExMjhfYzsKKwl9CisJcnFfcGFyYW0tPmRsZy5ycV9sLnN3YXRoX2hlaWdodCA9IDEgPDwgbG9nMl9zd2F0aF9oZWlnaHRfbDsKKwlycV9wYXJhbS0+ZGxnLnJxX2Muc3dhdGhfaGVpZ2h0ID0gMSA8PCBsb2cyX3N3YXRoX2hlaWdodF9jOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcmVxMTI4X2wgPSAlMGRcbiIsIF9fZnVuY19fLCByZXExMjhfbCk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcmVxMTI4X2MgPSAlMGRcbiIsIF9fZnVuY19fLCByZXExMjhfYyk7CisJZG1sX3ByaW50KAorCQkJIkRNTF9ETEc6ICVzOiBmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9sID0gJTBkXG4iLAorCQkJX19mdW5jX18sCisJCQlmdWxsX3N3YXRoX2J5dGVzX3BhY2tlZF9sKTsKKwlkbWxfcHJpbnQoCisJCQkiRE1MX0RMRzogJXM6IGZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2MgPSAlMGRcbiIsCisJCQlfX2Z1bmNfXywKKwkJCWZ1bGxfc3dhdGhfYnl0ZXNfcGFja2VkX2MpOworfQorCitzdGF0aWMgdm9pZCBnZXRfbWV0YV9hbmRfcHRlX2F0dHIoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZGlzcGxheV9kYXRhX3JxX2RsZ19wYXJhbXNfc3QgKnJxX2RsZ19wYXJhbSwKKwkJZGlzcGxheV9kYXRhX3JxX21pc2NfcGFyYW1zX3N0ICpycV9taXNjX3BhcmFtLAorCQlkaXNwbGF5X2RhdGFfcnFfc2l6aW5nX3BhcmFtc19zdCAqcnFfc2l6aW5nX3BhcmFtLAorCQl1bnNpZ25lZCBpbnQgdnBfd2lkdGgsCisJCXVuc2lnbmVkIGludCB2cF9oZWlnaHQsCisJCXVuc2lnbmVkIGludCBkYXRhX3BpdGNoLAorCQl1bnNpZ25lZCBpbnQgbWV0YV9waXRjaCwKKwkJdW5zaWduZWQgaW50IHNvdXJjZV9mb3JtYXQsCisJCXVuc2lnbmVkIGludCB0aWxpbmcsCisJCXVuc2lnbmVkIGludCBtYWNyb190aWxlX3NpemUsCisJCXVuc2lnbmVkIGludCBzb3VyY2Vfc2NhbiwKKwkJdW5zaWduZWQgaW50IGhvc3R2bV9lbmFibGUsCisJCXVuc2lnbmVkIGludCBpc19jaHJvbWEpCit7CisJYm9vbCBzdXJmX2xpbmVhciA9ICh0aWxpbmcgPT0gZG1fc3dfbGluZWFyKTsKKwlib29sIHN1cmZfdmVydCA9IChzb3VyY2Vfc2NhbiA9PSBkbV92ZXJ0KTsKKworCXVuc2lnbmVkIGludCBieXRlc19wZXJfZWxlbWVudDsKKwl1bnNpZ25lZCBpbnQgYnl0ZXNfcGVyX2VsZW1lbnRfeSA9IGdldF9ieXRlc19wZXJfZWxlbWVudCgKKwkJCShlbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3MpIChzb3VyY2VfZm9ybWF0KSwKKwkJCWZhbHNlKTsKKwl1bnNpZ25lZCBpbnQgYnl0ZXNfcGVyX2VsZW1lbnRfYyA9IGdldF9ieXRlc19wZXJfZWxlbWVudCgKKwkJCShlbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3MpIChzb3VyY2VfZm9ybWF0KSwKKwkJCXRydWUpOworCisJdW5zaWduZWQgaW50IGJsazI1Nl93aWR0aCA9IDA7CisJdW5zaWduZWQgaW50IGJsazI1Nl9oZWlnaHQgPSAwOworCisJdW5zaWduZWQgaW50IGJsazI1Nl93aWR0aF95ID0gMDsKKwl1bnNpZ25lZCBpbnQgYmxrMjU2X2hlaWdodF95ID0gMDsKKwl1bnNpZ25lZCBpbnQgYmxrMjU2X3dpZHRoX2MgPSAwOworCXVuc2lnbmVkIGludCBibGsyNTZfaGVpZ2h0X2MgPSAwOworCXVuc2lnbmVkIGludCBsb2cyX2J5dGVzX3Blcl9lbGVtZW50OworCXVuc2lnbmVkIGludCBsb2cyX2JsazI1Nl93aWR0aDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9ibGsyNTZfaGVpZ2h0OworCXVuc2lnbmVkIGludCBibGtfYnl0ZXM7CisJdW5zaWduZWQgaW50IGxvZzJfYmxrX2J5dGVzOworCXVuc2lnbmVkIGludCBsb2cyX2Jsa19oZWlnaHQ7CisJdW5zaWduZWQgaW50IGxvZzJfYmxrX3dpZHRoOworCXVuc2lnbmVkIGludCBsb2cyX21ldGFfcmVxX2J5dGVzOworCXVuc2lnbmVkIGludCBsb2cyX21ldGFfcmVxX2hlaWdodDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9tZXRhX3JlcV93aWR0aDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9yZXFfd2lkdGg7CisJdW5zaWduZWQgaW50IG1ldGFfcmVxX2hlaWdodDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9tZXRhX3Jvd19oZWlnaHQ7CisJdW5zaWduZWQgaW50IG1ldGFfcm93X3dpZHRoX3ViOworCXVuc2lnbmVkIGludCBsb2cyX21ldGFfY2h1bmtfYnl0ZXM7CisJdW5zaWduZWQgaW50IGxvZzJfbWV0YV9jaHVua19oZWlnaHQ7CisKKwkvL2Z1bGwgc2l6ZWQgbWV0YSBjaHVuayB3aWR0aCBpbiB1bml0IG9mIGRhdGEgZWxlbWVudHMKKwl1bnNpZ25lZCBpbnQgbG9nMl9tZXRhX2NodW5rX3dpZHRoOworCXVuc2lnbmVkIGludCBsb2cyX21pbl9tZXRhX2NodW5rX2J5dGVzOworCXVuc2lnbmVkIGludCBtaW5fbWV0YV9jaHVua193aWR0aDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9jaHVua193aWR0aDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9jaHVua19wZXJfcm93X2ludDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9yb3dfcmVtYWluZGVyOworCXVuc2lnbmVkIGludCBtZXRhX2NodW5rX3RocmVzaG9sZDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9ibGtfYnl0ZXM7CisJdW5zaWduZWQgaW50IG1ldGFfYmxrX2hlaWdodDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9ibGtfd2lkdGg7CisJdW5zaWduZWQgaW50IG1ldGFfc3VyZmFjZV9ieXRlczsKKwl1bnNpZ25lZCBpbnQgdm1wZ19ieXRlczsKKwl1bnNpZ25lZCBpbnQgbWV0YV9wdGVfcmVxX3Blcl9mcmFtZV91YjsKKwl1bnNpZ25lZCBpbnQgbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViOworCWNvbnN0IHVuc2lnbmVkIGludCBsb2cyX3ZtcGdfYnl0ZXMgPSBkbWxfbG9nMihtb2RlX2xpYi0+c29jLnZtbV9wYWdlX3NpemVfYnl0ZXMpOworCWNvbnN0IHVuc2lnbmVkIGludCBkcHRlX2J1Zl9pbl9wdGVfcmVxcyA9CisJCW1vZGVfbGliLT5pcC5kcHRlX2J1ZmZlcl9zaXplX2luX3B0ZV9yZXFzX2x1bWEgKyBtb2RlX2xpYi0+aXAuZHB0ZV9idWZmZXJfc2l6ZV9pbl9wdGVfcmVxc19jaHJvbWE7CisJY29uc3QgdW5zaWduZWQgaW50IHBkZV9wcm9jX2J1ZmZlcl9zaXplXzY0a19yZXFzID0KKwkJCW1vZGVfbGliLT5pcC5wZGVfcHJvY19idWZmZXJfc2l6ZV82NGtfcmVxczsKKworCXVuc2lnbmVkIGludCBsb2cyX3ZtcGdfaGVpZ2h0ID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl92bXBnX3dpZHRoID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9kcHRlX3JlcV9oZWlnaHRfcHRlcyA9IDA7CisJdW5zaWduZWQgaW50IGxvZzJfZHB0ZV9yZXFfaGVpZ2h0ID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9kcHRlX3JlcV93aWR0aCA9IDA7CisJdW5zaWduZWQgaW50IGxvZzJfZHB0ZV9yb3dfaGVpZ2h0X2xpbmVhciA9IDA7CisJdW5zaWduZWQgaW50IGxvZzJfZHB0ZV9yb3dfaGVpZ2h0ID0gMDsKKwl1bnNpZ25lZCBpbnQgbG9nMl9kcHRlX2dyb3VwX3dpZHRoID0gMDsKKwl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfd2lkdGhfdWIgPSAwOworCXVuc2lnbmVkIGludCBkcHRlX3JlcV9oZWlnaHQgPSAwOworCXVuc2lnbmVkIGludCBkcHRlX3JlcV93aWR0aCA9IDA7CisJdW5zaWduZWQgaW50IGRwdGVfZ3JvdXBfd2lkdGggPSAwOworCXVuc2lnbmVkIGludCBsb2cyX2RwdGVfZ3JvdXBfYnl0ZXMgPSAwOworCXVuc2lnbmVkIGludCBsb2cyX2RwdGVfZ3JvdXBfbGVuZ3RoID0gMDsKKwl1bnNpZ25lZCBpbnQgcGRlX2J1Zl9lbnRyaWVzOworCWJvb2wgeXV2NDIwID0gKHNvdXJjZV9mb3JtYXQgPT0gZG1fNDIwXzggfHwgc291cmNlX2Zvcm1hdCA9PSBkbV80MjBfMTApOworCisJQ2FsY3VsYXRlMjU2QkJsb2NrU2l6ZXMoCisJCQkoZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzKSAoc291cmNlX2Zvcm1hdCksCisJCQkoZW51bSBkbV9zd2l6emxlX21vZGUpICh0aWxpbmcpLAorCQkJYnl0ZXNfcGVyX2VsZW1lbnRfeSwKKwkJCWJ5dGVzX3Blcl9lbGVtZW50X2MsCisJCQkmYmxrMjU2X2hlaWdodF95LAorCQkJJmJsazI1Nl9oZWlnaHRfYywKKwkJCSZibGsyNTZfd2lkdGhfeSwKKwkJCSZibGsyNTZfd2lkdGhfYyk7CisKKwlpZiAoIWlzX2Nocm9tYSkgeworCQlibGsyNTZfd2lkdGggPSBibGsyNTZfd2lkdGhfeTsKKwkJYmxrMjU2X2hlaWdodCA9IGJsazI1Nl9oZWlnaHRfeTsKKwkJYnl0ZXNfcGVyX2VsZW1lbnQgPSBieXRlc19wZXJfZWxlbWVudF95OworCX0gZWxzZSB7CisJCWJsazI1Nl93aWR0aCA9IGJsazI1Nl93aWR0aF9jOworCQlibGsyNTZfaGVpZ2h0ID0gYmxrMjU2X2hlaWdodF9jOworCQlieXRlc19wZXJfZWxlbWVudCA9IGJ5dGVzX3Blcl9lbGVtZW50X2M7CisJfQorCisJbG9nMl9ieXRlc19wZXJfZWxlbWVudCA9IGRtbF9sb2cyKGJ5dGVzX3Blcl9lbGVtZW50KTsKKworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHN1cmZfbGluZWFyICAgICAgICA9ICVkXG4iLCBfX2Z1bmNfXywgc3VyZl9saW5lYXIpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHN1cmZfdmVydCAgICAgICAgICA9ICVkXG4iLCBfX2Z1bmNfXywgc3VyZl92ZXJ0KTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBibGsyNTZfd2lkdGggICAgICAgPSAlZFxuIiwgX19mdW5jX18sIGJsazI1Nl93aWR0aCk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogYmxrMjU2X2hlaWdodCAgICAgID0gJWRcbiIsIF9fZnVuY19fLCBibGsyNTZfaGVpZ2h0KTsKKworCWxvZzJfYmxrMjU2X3dpZHRoID0gZG1sX2xvZzIoKGRvdWJsZSkgYmxrMjU2X3dpZHRoKTsKKwlsb2cyX2JsazI1Nl9oZWlnaHQgPSBkbWxfbG9nMigoZG91YmxlKSBibGsyNTZfaGVpZ2h0KTsKKwlibGtfYnl0ZXMgPSBzdXJmX2xpbmVhciA/CisJCQkyNTYgOiBnZXRfYmxrX3NpemVfYnl0ZXMoKGVudW0gc291cmNlX21hY3JvX3RpbGVfc2l6ZSkgbWFjcm9fdGlsZV9zaXplKTsKKwlsb2cyX2Jsa19ieXRlcyA9IGRtbF9sb2cyKChkb3VibGUpIGJsa19ieXRlcyk7CisJbG9nMl9ibGtfaGVpZ2h0ID0gMDsKKwlsb2cyX2Jsa193aWR0aCA9IDA7CisKKwkvLyByZW1lbWJlciBsb2cgcnVsZQorCS8vICIrIiBpbiBsb2cgaXMgbXVsdGlwbHkKKwkvLyAiLSIgaW4gbG9nIGlzIGRpdmlkZQorCS8vICIvMiIgaXMgbGlrZSBzcXVhcmUgcm9vdAorCS8vIGJsayBpcyB2ZXJ0aWNhbCBiaWFzZWQKKwlpZiAodGlsaW5nICE9IGRtX3N3X2xpbmVhcikKKwkJbG9nMl9ibGtfaGVpZ2h0ID0gbG9nMl9ibGsyNTZfaGVpZ2h0CisJCQkJKyBkbWxfY2VpbCgoZG91YmxlKSAobG9nMl9ibGtfYnl0ZXMgLSA4KSAvIDIuMCwgMSk7CisJZWxzZQorCQlsb2cyX2Jsa19oZWlnaHQgPSAwOyAgLy8gYmxrIGhlaWdodCBvZiAxCisKKwlsb2cyX2Jsa193aWR0aCA9IGxvZzJfYmxrX2J5dGVzIC0gbG9nMl9ieXRlc19wZXJfZWxlbWVudCAtIGxvZzJfYmxrX2hlaWdodDsKKworCWlmICghc3VyZl92ZXJ0KSB7CisJCXJxX2RsZ19wYXJhbS0+c3dhdGhfd2lkdGhfdWIgPSBkbWxfcm91bmRfdG9fbXVsdGlwbGUodnBfd2lkdGggLSAxLCBibGsyNTZfd2lkdGgsIDEpCisJCQkJKyBibGsyNTZfd2lkdGg7CisJCXJxX2RsZ19wYXJhbS0+cmVxX3Blcl9zd2F0aF91YiA9IHJxX2RsZ19wYXJhbS0+c3dhdGhfd2lkdGhfdWIgPj4gbG9nMl9ibGsyNTZfd2lkdGg7CisJfSBlbHNlIHsKKwkJcnFfZGxnX3BhcmFtLT5zd2F0aF93aWR0aF91YiA9IGRtbF9yb3VuZF90b19tdWx0aXBsZSgKKwkJCQl2cF9oZWlnaHQgLSAxLAorCQkJCWJsazI1Nl9oZWlnaHQsCisJCQkJMSkgKyBibGsyNTZfaGVpZ2h0OworCQlycV9kbGdfcGFyYW0tPnJlcV9wZXJfc3dhdGhfdWIgPSBycV9kbGdfcGFyYW0tPnN3YXRoX3dpZHRoX3ViID4+IGxvZzJfYmxrMjU2X2hlaWdodDsKKwl9CisKKwlpZiAoIXN1cmZfdmVydCkKKwkJcnFfbWlzY19wYXJhbS0+ZnVsbF9zd2F0aF9ieXRlcyA9IHJxX2RsZ19wYXJhbS0+c3dhdGhfd2lkdGhfdWIgKiBibGsyNTZfaGVpZ2h0CisJCQkJKiBieXRlc19wZXJfZWxlbWVudDsKKwllbHNlCisJCXJxX21pc2NfcGFyYW0tPmZ1bGxfc3dhdGhfYnl0ZXMgPSBycV9kbGdfcGFyYW0tPnN3YXRoX3dpZHRoX3ViICogYmxrMjU2X3dpZHRoCisJCQkJKiBieXRlc19wZXJfZWxlbWVudDsKKworCXJxX21pc2NfcGFyYW0tPmJsazI1Nl9oZWlnaHQgPSBibGsyNTZfaGVpZ2h0OworCXJxX21pc2NfcGFyYW0tPmJsazI1Nl93aWR0aCA9IGJsazI1Nl93aWR0aDsKKworCS8vIC0tLS0tLS0KKwkvLyBtZXRhCisJLy8gLS0tLS0tLQorCWxvZzJfbWV0YV9yZXFfYnl0ZXMgPSA2OyAvLyBtZXRhIHJlcXVlc3QgaXMgNjRiIGFuZCBpcyA4eDhieXRlIG1ldGEgZWxlbWVudAorCisJLy8gZWFjaCA2NGIgbWV0YSByZXF1ZXN0IGZvciBkY24gaXMgOHg4IG1ldGEgZWxlbWVudHMgYW5kCisJLy8gYSBtZXRhIGVsZW1lbnQgY292ZXJzIG9uZSAyNTZiIGJsb2NrIG9mIHRoZSB0aGUgZGF0YSBzdXJmYWNlLgorCWxvZzJfbWV0YV9yZXFfaGVpZ2h0ID0gbG9nMl9ibGsyNTZfaGVpZ2h0ICsgMzsgLy8gbWV0YSByZXEgaXMgOHg4IGJ5dGUsIGVhY2ggYnl0ZSByZXByZXNlbnQgMSBibGsyNTYKKwlsb2cyX21ldGFfcmVxX3dpZHRoID0gbG9nMl9tZXRhX3JlcV9ieXRlcyArIDggLSBsb2cyX2J5dGVzX3Blcl9lbGVtZW50CisJCQktIGxvZzJfbWV0YV9yZXFfaGVpZ2h0OworCW1ldGFfcmVxX3dpZHRoID0gMSA8PCBsb2cyX21ldGFfcmVxX3dpZHRoOworCW1ldGFfcmVxX2hlaWdodCA9IDEgPDwgbG9nMl9tZXRhX3JlcV9oZWlnaHQ7CisJbG9nMl9tZXRhX3Jvd19oZWlnaHQgPSAwOworCW1ldGFfcm93X3dpZHRoX3ViID0gMDsKKworCS8vIHRoZSBkaW1lbnNpb25zIG9mIGEgbWV0YSByb3cgYXJlIG1ldGFfcm93X3dpZHRoIHggbWV0YV9yb3dfaGVpZ2h0IGluIGVsZW1lbnRzLgorCS8vIGNhbGN1bGF0ZSB1cHBlciBib3VuZCBvZiB0aGUgbWV0YV9yb3dfd2lkdGgKKwlpZiAoIXN1cmZfdmVydCkgeworCQlsb2cyX21ldGFfcm93X2hlaWdodCA9IGxvZzJfbWV0YV9yZXFfaGVpZ2h0OworCQltZXRhX3Jvd193aWR0aF91YiA9IGRtbF9yb3VuZF90b19tdWx0aXBsZSh2cF93aWR0aCAtIDEsIG1ldGFfcmVxX3dpZHRoLCAxKQorCQkJCSsgbWV0YV9yZXFfd2lkdGg7CisJCXJxX2RsZ19wYXJhbS0+bWV0YV9yZXFfcGVyX3Jvd191YiA9IG1ldGFfcm93X3dpZHRoX3ViIC8gbWV0YV9yZXFfd2lkdGg7CisJfSBlbHNlIHsKKwkJbG9nMl9tZXRhX3Jvd19oZWlnaHQgPSBsb2cyX21ldGFfcmVxX3dpZHRoOworCQltZXRhX3Jvd193aWR0aF91YiA9IGRtbF9yb3VuZF90b19tdWx0aXBsZSh2cF9oZWlnaHQgLSAxLCBtZXRhX3JlcV9oZWlnaHQsIDEpCisJCQkJKyBtZXRhX3JlcV9oZWlnaHQ7CisJCXJxX2RsZ19wYXJhbS0+bWV0YV9yZXFfcGVyX3Jvd191YiA9IG1ldGFfcm93X3dpZHRoX3ViIC8gbWV0YV9yZXFfaGVpZ2h0OworCX0KKwlycV9kbGdfcGFyYW0tPm1ldGFfYnl0ZXNfcGVyX3Jvd191YiA9IHJxX2RsZ19wYXJhbS0+bWV0YV9yZXFfcGVyX3Jvd191YiAqIDY0OworCisJcnFfZGxnX3BhcmFtLT5tZXRhX3Jvd19oZWlnaHQgPSAxIDw8IGxvZzJfbWV0YV9yb3dfaGVpZ2h0OworCisJbG9nMl9tZXRhX2NodW5rX2J5dGVzID0gZG1sX2xvZzIocnFfc2l6aW5nX3BhcmFtLT5tZXRhX2NodW5rX2J5dGVzKTsKKwlsb2cyX21ldGFfY2h1bmtfaGVpZ2h0ID0gbG9nMl9tZXRhX3Jvd19oZWlnaHQ7CisKKwkvL2Z1bGwgc2l6ZWQgbWV0YSBjaHVuayB3aWR0aCBpbiB1bml0IG9mIGRhdGEgZWxlbWVudHMKKwlsb2cyX21ldGFfY2h1bmtfd2lkdGggPSBsb2cyX21ldGFfY2h1bmtfYnl0ZXMgKyA4IC0gbG9nMl9ieXRlc19wZXJfZWxlbWVudAorCQkJLSBsb2cyX21ldGFfY2h1bmtfaGVpZ2h0OworCWxvZzJfbWluX21ldGFfY2h1bmtfYnl0ZXMgPSBkbWxfbG9nMihycV9zaXppbmdfcGFyYW0tPm1pbl9tZXRhX2NodW5rX2J5dGVzKTsKKwltaW5fbWV0YV9jaHVua193aWR0aCA9IDEKKwkJCTw8IChsb2cyX21pbl9tZXRhX2NodW5rX2J5dGVzICsgOCAtIGxvZzJfYnl0ZXNfcGVyX2VsZW1lbnQKKwkJCQkJLSBsb2cyX21ldGFfY2h1bmtfaGVpZ2h0KTsKKwltZXRhX2NodW5rX3dpZHRoID0gMSA8PCBsb2cyX21ldGFfY2h1bmtfd2lkdGg7CisJbWV0YV9jaHVua19wZXJfcm93X2ludCA9ICh1bnNpZ25lZCBpbnQpIChtZXRhX3Jvd193aWR0aF91YiAvIG1ldGFfY2h1bmtfd2lkdGgpOworCW1ldGFfcm93X3JlbWFpbmRlciA9IG1ldGFfcm93X3dpZHRoX3ViICUgbWV0YV9jaHVua193aWR0aDsKKwltZXRhX2NodW5rX3RocmVzaG9sZCA9IDA7CisJbWV0YV9ibGtfYnl0ZXMgPSA0MDk2OworCW1ldGFfYmxrX2hlaWdodCA9IGJsazI1Nl9oZWlnaHQgKiA2NDsKKwltZXRhX2Jsa193aWR0aCA9IG1ldGFfYmxrX2J5dGVzICogMjU2IC8gYnl0ZXNfcGVyX2VsZW1lbnQgLyBtZXRhX2Jsa19oZWlnaHQ7CisJbWV0YV9zdXJmYWNlX2J5dGVzID0gbWV0YV9waXRjaAorCQkJKiAoZG1sX3JvdW5kX3RvX211bHRpcGxlKHZwX2hlaWdodCAtIDEsIG1ldGFfYmxrX2hlaWdodCwgMSkKKwkJCQkJKyBtZXRhX2Jsa19oZWlnaHQpICogYnl0ZXNfcGVyX2VsZW1lbnQgLyAyNTY7CisJdm1wZ19ieXRlcyA9IG1vZGVfbGliLT5zb2Mudm1tX3BhZ2Vfc2l6ZV9ieXRlczsKKwltZXRhX3B0ZV9yZXFfcGVyX2ZyYW1lX3ViID0gKGRtbF9yb3VuZF90b19tdWx0aXBsZSgKKwkJCW1ldGFfc3VyZmFjZV9ieXRlcyAtIHZtcGdfYnl0ZXMsCisJCQk4ICogdm1wZ19ieXRlcywKKwkJCTEpICsgOCAqIHZtcGdfYnl0ZXMpIC8gKDggKiB2bXBnX2J5dGVzKTsKKwltZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWIgPSBtZXRhX3B0ZV9yZXFfcGVyX2ZyYW1lX3ViICogNjQ7IC8vNjRCIG1wdGUgcmVxdWVzdAorCXJxX2RsZ19wYXJhbS0+bWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViID0gbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogbWV0YV9ibGtfaGVpZ2h0ICAgICAgICAgICAgID0gJWRcbiIsIF9fZnVuY19fLCBtZXRhX2Jsa19oZWlnaHQpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IG1ldGFfYmxrX3dpZHRoICAgICAgICAgICAgICA9ICVkXG4iLCBfX2Z1bmNfXywgbWV0YV9ibGtfd2lkdGgpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IG1ldGFfc3VyZmFjZV9ieXRlcyAgICAgICAgICA9ICVkXG4iLCBfX2Z1bmNfXywgbWV0YV9zdXJmYWNlX2J5dGVzKTsKKwlkbWxfcHJpbnQoCisJCQkiRE1MX0RMRzogJXM6IG1ldGFfcHRlX3JlcV9wZXJfZnJhbWVfdWIgICA9ICVkXG4iLAorCQkJX19mdW5jX18sCisJCQltZXRhX3B0ZV9yZXFfcGVyX2ZyYW1lX3ViKTsKKwlkbWxfcHJpbnQoCisJCQkiRE1MX0RMRzogJXM6IG1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZV91YiA9ICVkXG4iLAorCQkJX19mdW5jX18sCisJCQltZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWIpOworCisJaWYgKCFzdXJmX3ZlcnQpCisJCW1ldGFfY2h1bmtfdGhyZXNob2xkID0gMiAqIG1pbl9tZXRhX2NodW5rX3dpZHRoIC0gbWV0YV9yZXFfd2lkdGg7CisJZWxzZQorCQltZXRhX2NodW5rX3RocmVzaG9sZCA9IDIgKiBtaW5fbWV0YV9jaHVua193aWR0aCAtIG1ldGFfcmVxX2hlaWdodDsKKworCWlmIChtZXRhX3Jvd19yZW1haW5kZXIgPD0gbWV0YV9jaHVua190aHJlc2hvbGQpCisJCXJxX2RsZ19wYXJhbS0+bWV0YV9jaHVua3NfcGVyX3Jvd191YiA9IG1ldGFfY2h1bmtfcGVyX3Jvd19pbnQgKyAxOworCWVsc2UKKwkJcnFfZGxnX3BhcmFtLT5tZXRhX2NodW5rc19wZXJfcm93X3ViID0gbWV0YV9jaHVua19wZXJfcm93X2ludCArIDI7CisKKwkvLyAtLS0tLS0KKwkvLyBkcHRlCisJLy8gLS0tLS0tCisJaWYgKHN1cmZfbGluZWFyKSB7CisJCWxvZzJfdm1wZ19oZWlnaHQgPSAwOyAgIC8vIG9uZSBsaW5lIGhpZ2gKKwl9IGVsc2UgeworCQlsb2cyX3ZtcGdfaGVpZ2h0ID0gKGxvZzJfdm1wZ19ieXRlcyAtIDgpIC8gMiArIGxvZzJfYmxrMjU2X2hlaWdodDsKKwl9CisJbG9nMl92bXBnX3dpZHRoID0gbG9nMl92bXBnX2J5dGVzIC0gbG9nMl9ieXRlc19wZXJfZWxlbWVudCAtIGxvZzJfdm1wZ19oZWlnaHQ7CisKKwkvLyBvbmx5IDMgcG9zc2libGUgc2hhcGVzIGZvciBkcHRlIHJlcXVlc3QgaW4gZGltZW5zaW9ucyBvZiBwdGVzOiA4eDEsIDR4MiwgMng0LgorCWlmIChzdXJmX2xpbmVhcikgeyAvL29uZSA2NEIgUFRFIHJlcXVlc3QgcmV0dXJucyA4IFBURXMKKwkJbG9nMl9kcHRlX3JlcV9oZWlnaHRfcHRlcyA9IDA7CisJCWxvZzJfZHB0ZV9yZXFfd2lkdGggPSBsb2cyX3ZtcGdfd2lkdGggKyAzOworCQlsb2cyX2RwdGVfcmVxX2hlaWdodCA9IDA7CisJfSBlbHNlIGlmIChsb2cyX2Jsa19ieXRlcyA9PSAxMikgeyAvLzRLQiB0aWxlIG1lYW5zIDRrQiBwYWdlIHNpemUKKwkJCQkJICAgLy9vbmUgNjRCIHJlcSBnaXZlcyA4eDEgUFRFcyBmb3IgNEtCIHRpbGUKKwkJbG9nMl9kcHRlX3JlcV9oZWlnaHRfcHRlcyA9IDA7CisJCWxvZzJfZHB0ZV9yZXFfd2lkdGggPSBsb2cyX2Jsa193aWR0aCArIDM7CisJCWxvZzJfZHB0ZV9yZXFfaGVpZ2h0ID0gbG9nMl9ibGtfaGVpZ2h0ICsgMDsKKwl9IGVsc2UgaWYgKChsb2cyX2Jsa19ieXRlcyA+PSAxNikgJiYgKGxvZzJfdm1wZ19ieXRlcyA9PSAxMikpIHsgLy8gdGlsZSBibG9jayA+PSA2NEtCCisJCQkJCQkJCQkvL3R3byA2NEIgcmVxcyBvZiAyeDQgUFRFcyBnaXZlIDE2IFBURXMgdG8gY292ZXIgNjRLQgorCQlsb2cyX2RwdGVfcmVxX2hlaWdodF9wdGVzID0gNDsKKwkJbG9nMl9kcHRlX3JlcV93aWR0aCA9IGxvZzJfYmxrMjU2X3dpZHRoICsgNDsgLy8gbG9nMl82NEtCX3dpZHRoCisJCWxvZzJfZHB0ZV9yZXFfaGVpZ2h0ID0gbG9nMl9ibGsyNTZfaGVpZ2h0ICsgNDsgLy8gbG9nMl82NEtCX2hlaWdodAorCX0gZWxzZSB7IC8vNjRLQiBwYWdlIHNpemUgYW5kIG11c3QgNjRLQiB0aWxlIGJsb2NrCisJCSAvL29uZSA2NEIgcmVxIGdpdmVzIDh4MSBQVEVzIGZvciA2NEtCIHRpbGUKKwkJbG9nMl9kcHRlX3JlcV9oZWlnaHRfcHRlcyA9IDA7CisJCWxvZzJfZHB0ZV9yZXFfd2lkdGggPSBsb2cyX2Jsa193aWR0aCArIDM7CisJCWxvZzJfZHB0ZV9yZXFfaGVpZ2h0ID0gbG9nMl9ibGtfaGVpZ2h0ICsgMDsKKwl9CisKKwkvLyBUaGUgZHB0ZSByZXF1ZXN0IGRpbWVuc2lvbnMgaW4gZGF0YSBlbGVtZW50cyBpcyBkcHRlX3JlcV93aWR0aCB4IGRwdGVfcmVxX2hlaWdodAorCS8vIGxvZzJfdm1wZ193aWR0aCBpcyBob3cgbXVjaCAxIHB0ZSByZXByZXNlbnQsIG5vdyBjYWxjdWxhdGluZyBob3cgbXVjaCBhIDY0YiBwdGUgcmVxIHJlcHJlc2VudAorCS8vIFRoYXQgZGVwZW5kcyBvbiB0aGUgcHRlIHNoYXBlIChpLmUuIDh4MSwgNHgyLCAyeDQpCisJLy9sb2cyX2RwdGVfcmVxX2hlaWdodCAgICA9IGxvZzJfdm1wZ19oZWlnaHQgKyBsb2cyX2RwdGVfcmVxX2hlaWdodF9wdGVzOworCS8vbG9nMl9kcHRlX3JlcV93aWR0aCAgICAgPSBsb2cyX3ZtcGdfd2lkdGggKyBsb2cyX2RwdGVfcmVxX3dpZHRoX3B0ZXM7CisJZHB0ZV9yZXFfaGVpZ2h0ID0gMSA8PCBsb2cyX2RwdGVfcmVxX2hlaWdodDsKKwlkcHRlX3JlcV93aWR0aCA9IDEgPDwgbG9nMl9kcHRlX3JlcV93aWR0aDsKKworCS8vIGNhbGN1bGF0ZSBwaXRjaCBkcHRlIHJvdyBidWZmZXIgY2FuIGhvbGQKKwkvLyByb3VuZCB0aGUgcmVzdWx0IGRvd24gdG8gYSBwb3dlciBvZiB0d28uCisJcGRlX2J1Zl9lbnRyaWVzID0KKwkJCXl1djQyMCA/IChwZGVfcHJvY19idWZmZXJfc2l6ZV82NGtfcmVxcyA+PiAxKSA6IHBkZV9wcm9jX2J1ZmZlcl9zaXplXzY0a19yZXFzOworCWlmIChzdXJmX2xpbmVhcikgeworCQl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVpZ2h0OworCisJCWxvZzJfZHB0ZV9yb3dfaGVpZ2h0X2xpbmVhciA9IGRtbF9mbG9vcigKKwkJCQlkbWxfbG9nMigKKwkJCQkJCWRtbF9taW4oCisJCQkJCQkJCTY0ICogMTAyNCAqIHBkZV9idWZfZW50cmllcworCQkJCQkJCQkJCS8gYnl0ZXNfcGVyX2VsZW1lbnQsCisJCQkJCQkJCWRwdGVfYnVmX2luX3B0ZV9yZXFzCisJCQkJCQkJCQkJKiBkcHRlX3JlcV93aWR0aCkKKwkJCQkJCQkJLyBkYXRhX3BpdGNoKSwKKwkJCQkxKTsKKworCQlBU1NFUlQobG9nMl9kcHRlX3Jvd19oZWlnaHRfbGluZWFyID49IDMpOworCisJCWlmIChsb2cyX2RwdGVfcm93X2hlaWdodF9saW5lYXIgPiA3KQorCQkJbG9nMl9kcHRlX3Jvd19oZWlnaHRfbGluZWFyID0gNzsKKworCQlsb2cyX2RwdGVfcm93X2hlaWdodCA9IGxvZzJfZHB0ZV9yb3dfaGVpZ2h0X2xpbmVhcjsKKwkJLy8gRm9yIGxpbmVhciwgdGhlIGRwdGUgcm93IGlzIHBpdGNoIGRlcGVuZGVudCBhbmQgdGhlIHB0ZSByZXF1ZXN0cyB3cmFwIGF0IHRoZSBwaXRjaCBib3VuZGFyeS4KKwkJLy8gdGhlIGRwdGVfcm93X3dpZHRoX3ViIGlzIHRoZSB1cHBlciBib3VuZCBvZiBkYXRhX3BpdGNoKmRwdGVfcm93X2hlaWdodCBpbiBlbGVtZW50cyB3aXRoIHRoaXMgdW5pcXVlIGJ1ZmZlcmluZy4KKwkJZHB0ZV9yb3dfaGVpZ2h0ID0gMSA8PCBsb2cyX2RwdGVfcm93X2hlaWdodDsKKwkJZHB0ZV9yb3dfd2lkdGhfdWIgPSBkbWxfcm91bmRfdG9fbXVsdGlwbGUoCisJCQkJZGF0YV9waXRjaCAqIGRwdGVfcm93X2hlaWdodCAtIDEsCisJCQkJZHB0ZV9yZXFfd2lkdGgsCisJCQkJMSkgKyBkcHRlX3JlcV93aWR0aDsKKwkJcnFfZGxnX3BhcmFtLT5kcHRlX3JlcV9wZXJfcm93X3ViID0gZHB0ZV9yb3dfd2lkdGhfdWIgLyBkcHRlX3JlcV93aWR0aDsKKwl9IGVsc2UgeworCQkvLyB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIGRwdGVfcm93X3dpZHRoIHdpdGhvdXQgZGVwZW5kZW5jeSBvbiB2aWV3cG9ydCBwb3NpdGlvbiBmb2xsb3dzLgorCQkvLyBmb3IgdGlsZWQgbW9kZSwgcm93IGhlaWdodCBpcyB0aGUgc2FtZSBhcyByZXEgaGVpZ2h0IGFuZCByb3cgc3RvcmUgdXAgdG8gdnAgc2l6ZSB1cHBlciBib3VuZAorCQlpZiAoIXN1cmZfdmVydCkgeworCQkJbG9nMl9kcHRlX3Jvd19oZWlnaHQgPSBsb2cyX2RwdGVfcmVxX2hlaWdodDsKKwkJCWRwdGVfcm93X3dpZHRoX3ViID0gZG1sX3JvdW5kX3RvX211bHRpcGxlKHZwX3dpZHRoIC0gMSwgZHB0ZV9yZXFfd2lkdGgsIDEpCisJCQkJCSsgZHB0ZV9yZXFfd2lkdGg7CisJCQlycV9kbGdfcGFyYW0tPmRwdGVfcmVxX3Blcl9yb3dfdWIgPSBkcHRlX3Jvd193aWR0aF91YiAvIGRwdGVfcmVxX3dpZHRoOworCQl9IGVsc2UgeworCQkJbG9nMl9kcHRlX3Jvd19oZWlnaHQgPQorCQkJCQkobG9nMl9ibGtfd2lkdGggPCBsb2cyX2RwdGVfcmVxX3dpZHRoKSA/CisJCQkJCQkJbG9nMl9ibGtfd2lkdGggOiBsb2cyX2RwdGVfcmVxX3dpZHRoOworCQkJZHB0ZV9yb3dfd2lkdGhfdWIgPSBkbWxfcm91bmRfdG9fbXVsdGlwbGUodnBfaGVpZ2h0IC0gMSwgZHB0ZV9yZXFfaGVpZ2h0LCAxKQorCQkJCQkrIGRwdGVfcmVxX2hlaWdodDsKKwkJCXJxX2RsZ19wYXJhbS0+ZHB0ZV9yZXFfcGVyX3Jvd191YiA9IGRwdGVfcm93X3dpZHRoX3ViIC8gZHB0ZV9yZXFfaGVpZ2h0OworCQl9CisJfQorCWlmIChsb2cyX2Jsa19ieXRlcyA+PSAxNiAmJiBsb2cyX3ZtcGdfYnl0ZXMgPT0gMTIpIC8vIHRpbGUgYmxvY2sgPj0gNjRLQgorCQlycV9kbGdfcGFyYW0tPmRwdGVfYnl0ZXNfcGVyX3Jvd191YiA9IHJxX2RsZ19wYXJhbS0+ZHB0ZV9yZXFfcGVyX3Jvd191YiAqIDEyODsgLy8yKjY0QiBkcHRlIHJlcXVlc3QKKwllbHNlCisJCXJxX2RsZ19wYXJhbS0+ZHB0ZV9ieXRlc19wZXJfcm93X3ViID0gcnFfZGxnX3BhcmFtLT5kcHRlX3JlcV9wZXJfcm93X3ViICogNjQ7IC8vNjRCIGRwdGUgcmVxdWVzdAorCisJcnFfZGxnX3BhcmFtLT5kcHRlX3Jvd19oZWlnaHQgPSAxIDw8IGxvZzJfZHB0ZV9yb3dfaGVpZ2h0OworCisJLy8gdGhlIGRwdGVfZ3JvdXBfYnl0ZXMgaXMgcmVkdWNlZCBmb3IgdGhlIHNwZWNpZmljIGNhc2Ugb2YgdmVydGljYWwKKwkvLyBhY2Nlc3Mgb2YgYSB0aWxlIHN1cmZhY2UgdGhhdCBoYXMgZHB0ZSByZXF1ZXN0IG9mIDh4MSBwdGVzLgorCisJaWYgKGhvc3R2bV9lbmFibGUpCisJCXJxX3NpemluZ19wYXJhbS0+ZHB0ZV9ncm91cF9ieXRlcyA9IDUxMjsKKwllbHNlIHsKKwkJaWYgKCFzdXJmX2xpbmVhciAmIChsb2cyX2RwdGVfcmVxX2hlaWdodF9wdGVzID09IDApICYgc3VyZl92ZXJ0KSAvL3JlZHVjZWQsIGluIHRoaXMgY2FzZSwgd2lsbCBoYXZlIHBhZ2UgZmF1bHQgd2l0aGluIGEgZ3JvdXAKKwkJCXJxX3NpemluZ19wYXJhbS0+ZHB0ZV9ncm91cF9ieXRlcyA9IDUxMjsKKwkJZWxzZQorCQkJLy9mdWxsIHNpemUKKwkJCXJxX3NpemluZ19wYXJhbS0+ZHB0ZV9ncm91cF9ieXRlcyA9IDIwNDg7CisJfQorCisJLy9zaW5jZSBwdGUgcmVxdWVzdCBzaXplIGlzIDY0Ynl0ZSwgdGhlIG51bWJlciBvZiBkYXRhIHB0ZSByZXF1ZXN0cyBwZXIgZnVsbCBzaXplZCBncm91cCBpcyBhcyBmb2xsb3dzLgorCWxvZzJfZHB0ZV9ncm91cF9ieXRlcyA9IGRtbF9sb2cyKHJxX3NpemluZ19wYXJhbS0+ZHB0ZV9ncm91cF9ieXRlcyk7CisJbG9nMl9kcHRlX2dyb3VwX2xlbmd0aCA9IGxvZzJfZHB0ZV9ncm91cF9ieXRlcyAtIDY7IC8vbGVuZ3RoIGluIDY0YiByZXF1ZXN0cworCisJLy8gZnVsbCBzaXplZCBkYXRhIHB0ZSBncm91cCB3aWR0aCBpbiBlbGVtZW50cworCWlmICghc3VyZl92ZXJ0KQorCQlsb2cyX2RwdGVfZ3JvdXBfd2lkdGggPSBsb2cyX2RwdGVfZ3JvdXBfbGVuZ3RoICsgbG9nMl9kcHRlX3JlcV93aWR0aDsKKwllbHNlCisJCWxvZzJfZHB0ZV9ncm91cF93aWR0aCA9IGxvZzJfZHB0ZV9ncm91cF9sZW5ndGggKyBsb2cyX2RwdGVfcmVxX2hlaWdodDsKKworCS8vQnV0IGlmIHRoZSB0aWxlIGJsb2NrID49NjRLQiBhbmQgdGhlIHBhZ2Ugc2l6ZSBpcyA0S0IsIHRoZW4gZWFjaCBkUFRFIHJlcXVlc3QgaXMgMio2NEIKKwlpZiAoKGxvZzJfYmxrX2J5dGVzID49IDE2KSAmJiAobG9nMl92bXBnX2J5dGVzID09IDEyKSkgLy8gdGlsZSBibG9jayA+PSA2NEtCCisJCWxvZzJfZHB0ZV9ncm91cF93aWR0aCA9IGxvZzJfZHB0ZV9ncm91cF93aWR0aCAtIDE7CisKKwlkcHRlX2dyb3VwX3dpZHRoID0gMSA8PCBsb2cyX2RwdGVfZ3JvdXBfd2lkdGg7CisKKwkvLyBzaW5jZSBkcHRlIGdyb3VwcyBhcmUgb25seSBhbGlnbmVkIHRvIGRwdGVfcmVxX3dpZHRoIGFuZCBub3QgZHB0ZV9ncm91cF93aWR0aCwKKwkvLyB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBkcHRlIGdyb3VwcyBwZXIgcm93IGlzIGFzIGZvbGxvd3MuCisJcnFfZGxnX3BhcmFtLT5kcHRlX2dyb3Vwc19wZXJfcm93X3ViID0gZG1sX2NlaWwoCisJCQkoZG91YmxlKSBkcHRlX3Jvd193aWR0aF91YiAvIGRwdGVfZ3JvdXBfd2lkdGgsCisJCQkxKTsKK30KKworc3RhdGljIHZvaWQgZ2V0X3N1cmZfcnFfcGFyYW0oCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZGlzcGxheV9kYXRhX3JxX3NpemluZ19wYXJhbXNfc3QgKnJxX3NpemluZ19wYXJhbSwKKwkJZGlzcGxheV9kYXRhX3JxX2RsZ19wYXJhbXNfc3QgKnJxX2RsZ19wYXJhbSwKKwkJZGlzcGxheV9kYXRhX3JxX21pc2NfcGFyYW1zX3N0ICpycV9taXNjX3BhcmFtLAorCQljb25zdCBkaXNwbGF5X3BpcGVfcGFyYW1zX3N0IHBpcGVfcGFyYW0sCisJCWJvb2wgaXNfY2hyb21hKQoreworCWJvb2wgbW9kZV80MjIgPSAwOworCXVuc2lnbmVkIGludCB2cF93aWR0aCA9IDA7CisJdW5zaWduZWQgaW50IHZwX2hlaWdodCA9IDA7CisJdW5zaWduZWQgaW50IGRhdGFfcGl0Y2ggPSAwOworCXVuc2lnbmVkIGludCBtZXRhX3BpdGNoID0gMDsKKwl1bnNpZ25lZCBpbnQgcHBlID0gbW9kZV80MjIgPyAyIDogMTsKKworCS8vIEZJWE1FIGNoZWNrIGlmIHBwZSBhcHBseSBmb3IgYm90aCBsdW1hIGFuZCBjaHJvbWEgaW4gNDIyIGNhc2UKKwlpZiAoaXNfY2hyb21hKSB7CisJCXZwX3dpZHRoID0gcGlwZV9wYXJhbS5zcmMudmlld3BvcnRfd2lkdGhfYyAvIHBwZTsKKwkJdnBfaGVpZ2h0ID0gcGlwZV9wYXJhbS5zcmMudmlld3BvcnRfaGVpZ2h0X2M7CisJCWRhdGFfcGl0Y2ggPSBwaXBlX3BhcmFtLnNyYy5kYXRhX3BpdGNoX2M7CisJCW1ldGFfcGl0Y2ggPSBwaXBlX3BhcmFtLnNyYy5tZXRhX3BpdGNoX2M7CisJfSBlbHNlIHsKKwkJdnBfd2lkdGggPSBwaXBlX3BhcmFtLnNyYy52aWV3cG9ydF93aWR0aCAvIHBwZTsKKwkJdnBfaGVpZ2h0ID0gcGlwZV9wYXJhbS5zcmMudmlld3BvcnRfaGVpZ2h0OworCQlkYXRhX3BpdGNoID0gcGlwZV9wYXJhbS5zcmMuZGF0YV9waXRjaDsKKwkJbWV0YV9waXRjaCA9IHBpcGVfcGFyYW0uc3JjLm1ldGFfcGl0Y2g7CisJfQorCisJaWYgKHBpcGVfcGFyYW0uZGVzdC5vZG1fY29tYmluZSkgeworCQl1bnNpZ25lZCBpbnQgYWNjZXNzX2RpcjsKKwkJdW5zaWduZWQgaW50IGZ1bGxfc3JjX3ZwX3dpZHRoOworCQl1bnNpZ25lZCBpbnQgaGFjdGl2ZV9oYWxmOworCQl1bnNpZ25lZCBpbnQgc3JjX2hhY3RpdmVfaGFsZjsKKwkJYWNjZXNzX2RpciA9IChwaXBlX3BhcmFtLnNyYy5zb3VyY2Vfc2NhbiA9PSBkbV92ZXJ0KTsgLy8gdnAgYWNjZXNzIGRpcmVjdGlvbjogaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBhY2Nlc3NlZAorCQloYWN0aXZlX2hhbGYgID0gcGlwZV9wYXJhbS5kZXN0LmhhY3RpdmUgLyAyOworCQlpZiAoaXNfY2hyb21hKSB7CisJCQlmdWxsX3NyY192cF93aWR0aCA9IHBpcGVfcGFyYW0uc2NhbGVfcmF0aW9fZGVwdGguaHNjbF9yYXRpb19jICogcGlwZV9wYXJhbS5kZXN0LmZ1bGxfcmVjb3V0X3dpZHRoOworCQkJc3JjX2hhY3RpdmVfaGFsZiAgPSBwaXBlX3BhcmFtLnNjYWxlX3JhdGlvX2RlcHRoLmhzY2xfcmF0aW9fYyAqIGhhY3RpdmVfaGFsZjsKKwkJfSBlbHNlIHsKKwkJCWZ1bGxfc3JjX3ZwX3dpZHRoID0gcGlwZV9wYXJhbS5zY2FsZV9yYXRpb19kZXB0aC5oc2NsX3JhdGlvICogcGlwZV9wYXJhbS5kZXN0LmZ1bGxfcmVjb3V0X3dpZHRoOworCQkJc3JjX2hhY3RpdmVfaGFsZiAgPSBwaXBlX3BhcmFtLnNjYWxlX3JhdGlvX2RlcHRoLmhzY2xfcmF0aW8gKiBoYWN0aXZlX2hhbGY7CisJCX0KKworCQlpZiAoYWNjZXNzX2RpciA9PSAwKSB7CisJCQl2cF93aWR0aCA9IGRtbF9taW4oZnVsbF9zcmNfdnBfd2lkdGgsIHNyY19oYWN0aXZlX2hhbGYpOworCQkJZG1sX3ByaW50KCJETUxfRExHOiAlczogdnBfd2lkdGggPSAlZFxuIiwgX19mdW5jX18sIHZwX3dpZHRoKTsKKwkJfSBlbHNlIHsKKwkJCXZwX2hlaWdodCA9IGRtbF9taW4oZnVsbF9zcmNfdnBfd2lkdGgsIHNyY19oYWN0aXZlX2hhbGYpOworCQkJZG1sX3ByaW50KCJETUxfRExHOiAlczogdnBfaGVpZ2h0ID0gJWRcbiIsIF9fZnVuY19fLCB2cF9oZWlnaHQpOworCisJCX0KKwkJZG1sX3ByaW50KCJETUxfRExHOiAlczogZnVsbF9zcmNfdnBfd2lkdGggPSAlZFxuIiwgX19mdW5jX18sIGZ1bGxfc3JjX3ZwX3dpZHRoKTsKKwkJZG1sX3ByaW50KCJETUxfRExHOiAlczogaGFjdGl2ZV9oYWxmID0gJWRcbiIsIF9fZnVuY19fLCBoYWN0aXZlX2hhbGYpOworCQlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBzcmNfaGFjdGl2ZV9oYWxmID0gJWRcbiIsIF9fZnVuY19fLCBzcmNfaGFjdGl2ZV9oYWxmKTsKKwl9CisJcnFfc2l6aW5nX3BhcmFtLT5jaHVua19ieXRlcyA9IDgxOTI7CisKKwlpZiAocnFfc2l6aW5nX3BhcmFtLT5jaHVua19ieXRlcyA9PSA2NCAqIDEwMjQpCisJCXJxX3NpemluZ19wYXJhbS0+bWluX2NodW5rX2J5dGVzID0gMDsKKwllbHNlCisJCXJxX3NpemluZ19wYXJhbS0+bWluX2NodW5rX2J5dGVzID0gMTAyNDsKKworCXJxX3NpemluZ19wYXJhbS0+bWV0YV9jaHVua19ieXRlcyA9IDIwNDg7CisJcnFfc2l6aW5nX3BhcmFtLT5taW5fbWV0YV9jaHVua19ieXRlcyA9IDI1NjsKKworCWlmIChwaXBlX3BhcmFtLnNyYy5ob3N0dm0pCisJCXJxX3NpemluZ19wYXJhbS0+bXB0ZV9ncm91cF9ieXRlcyA9IDUxMjsKKwllbHNlCisJCXJxX3NpemluZ19wYXJhbS0+bXB0ZV9ncm91cF9ieXRlcyA9IDIwNDg7CisKKwlnZXRfbWV0YV9hbmRfcHRlX2F0dHIoCisJCQltb2RlX2xpYiwKKwkJCXJxX2RsZ19wYXJhbSwKKwkJCXJxX21pc2NfcGFyYW0sCisJCQlycV9zaXppbmdfcGFyYW0sCisJCQl2cF93aWR0aCwKKwkJCXZwX2hlaWdodCwKKwkJCWRhdGFfcGl0Y2gsCisJCQltZXRhX3BpdGNoLAorCQkJcGlwZV9wYXJhbS5zcmMuc291cmNlX2Zvcm1hdCwKKwkJCXBpcGVfcGFyYW0uc3JjLnN3X21vZGUsCisJCQlwaXBlX3BhcmFtLnNyYy5tYWNyb190aWxlX3NpemUsCisJCQlwaXBlX3BhcmFtLnNyYy5zb3VyY2Vfc2NhbiwKKwkJCXBpcGVfcGFyYW0uc3JjLmhvc3R2bSwKKwkJCWlzX2Nocm9tYSk7Cit9CisKK3N0YXRpYyB2b2lkIGRtbF9ycV9kbGdfZ2V0X3JxX3BhcmFtcygKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkaXNwbGF5X3JxX3BhcmFtc19zdCAqcnFfcGFyYW0sCisJCWNvbnN0IGRpc3BsYXlfcGlwZV9wYXJhbXNfc3QgcGlwZV9wYXJhbSkKK3sKKwkvLyBnZXQgcGFyYW0gZm9yIGx1bWEgc3VyZmFjZQorCXJxX3BhcmFtLT55dXY0MjAgPSBwaXBlX3BhcmFtLnNyYy5zb3VyY2VfZm9ybWF0ID09IGRtXzQyMF84CisJCQl8fCBwaXBlX3BhcmFtLnNyYy5zb3VyY2VfZm9ybWF0ID09IGRtXzQyMF8xMDsKKwlycV9wYXJhbS0+eXV2NDIwXzEwYnBjID0gcGlwZV9wYXJhbS5zcmMuc291cmNlX2Zvcm1hdCA9PSBkbV80MjBfMTA7CisKKwlnZXRfc3VyZl9ycV9wYXJhbSgKKwkJCW1vZGVfbGliLAorCQkJJihycV9wYXJhbS0+c2l6aW5nLnJxX2wpLAorCQkJJihycV9wYXJhbS0+ZGxnLnJxX2wpLAorCQkJJihycV9wYXJhbS0+bWlzYy5ycV9sKSwKKwkJCXBpcGVfcGFyYW0sCisJCQkwKTsKKworCWlmIChpc19kdWFsX3BsYW5lKChlbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3MpIChwaXBlX3BhcmFtLnNyYy5zb3VyY2VfZm9ybWF0KSkpIHsKKwkJLy8gZ2V0IHBhcmFtIGZvciBjaHJvbWEgc3VyZmFjZQorCQlnZXRfc3VyZl9ycV9wYXJhbSgKKwkJCQltb2RlX2xpYiwKKwkJCQkmKHJxX3BhcmFtLT5zaXppbmcucnFfYyksCisJCQkJJihycV9wYXJhbS0+ZGxnLnJxX2MpLAorCQkJCSYocnFfcGFyYW0tPm1pc2MucnFfYyksCisJCQkJcGlwZV9wYXJhbSwKKwkJCQkxKTsKKwl9CisKKwkvLyBjYWxjdWxhdGUgaG93IHRvIHNwbGl0IHRoZSBkZXQgYnVmZmVyIHNwYWNlIGJldHdlZW4gbHVtYSBhbmQgY2hyb21hCisJaGFuZGxlX2RldF9idWZfc3BsaXQobW9kZV9saWIsIHJxX3BhcmFtLCBwaXBlX3BhcmFtLnNyYyk7CisJcHJpbnRfX3JxX3BhcmFtc19zdChtb2RlX2xpYiwgKnJxX3BhcmFtKTsKK30KKwordm9pZCBkbWwyMV9ycV9kbGdfZ2V0X3JxX3JlZygKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3JlZ3MsCisJCWNvbnN0IGRpc3BsYXlfcGlwZV9wYXJhbXNfc3QgcGlwZV9wYXJhbSkKK3sKKwlkaXNwbGF5X3JxX3BhcmFtc19zdCBycV9wYXJhbSA9IHswfTsKKworCW1lbXNldChycV9yZWdzLCAwLCBzaXplb2YoKnJxX3JlZ3MpKTsKKwlkbWxfcnFfZGxnX2dldF9ycV9wYXJhbXMobW9kZV9saWIsICZycV9wYXJhbSwgcGlwZV9wYXJhbSk7CisJZXh0cmFjdF9ycV9yZWdzKG1vZGVfbGliLCBycV9yZWdzLCBycV9wYXJhbSk7CisKKwlwcmludF9fcnFfcmVnc19zdChtb2RlX2xpYiwgKnJxX3JlZ3MpOworfQorCisvLyBOb3RlOiBjdXJyZW50bHkgdGFrZW4gaW4gYXMgaXMuCisvLyBOaWNlIHRvIGRlY291cGxlIGNvZGUgZnJvbSBodyByZWdpc3RlciBpbXBsZW1lbnQgYW5kIGV4dHJhY3QgY29kZSB0aGF0IGFyZSByZXBlYXRlZCBmb3IgbHVtYSBhbmQgY2hyb21hLgorc3RhdGljIHZvaWQgZG1sX3JxX2RsZ19nZXRfZGxnX3BhcmFtcygKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQljb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqZTJlX3BpcGVfcGFyYW0sCisJCWNvbnN0IHVuc2lnbmVkIGludCBudW1fcGlwZXMsCisJCWNvbnN0IHVuc2lnbmVkIGludCBwaXBlX2lkeCwKKwkJZGlzcGxheV9kbGdfcmVnc19zdCAqZGlzcF9kbGdfcmVncywKKwkJZGlzcGxheV90dHVfcmVnc19zdCAqZGlzcF90dHVfcmVncywKKwkJY29uc3QgZGlzcGxheV9ycV9kbGdfcGFyYW1zX3N0IHJxX2RsZ19wYXJhbSwKKwkJY29uc3QgZGlzcGxheV9kbGdfc3lzX3BhcmFtc19zdCBkbGdfc3lzX3BhcmFtLAorCQljb25zdCBib29sIGNzdGF0ZV9lbiwKKwkJY29uc3QgYm9vbCBwc3RhdGVfZW4pCit7CisJY29uc3QgZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3QgKnNyYyA9ICZlMmVfcGlwZV9wYXJhbVtwaXBlX2lkeF0ucGlwZS5zcmM7CisJY29uc3QgZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0ICpkc3QgPSAmZTJlX3BpcGVfcGFyYW1bcGlwZV9pZHhdLnBpcGUuZGVzdDsKKwljb25zdCBkaXNwbGF5X291dHB1dF9wYXJhbXNfc3QgKmRvdXQgPSAmZTJlX3BpcGVfcGFyYW1bcGlwZV9pZHhdLmRvdXQ7CisJY29uc3QgZGlzcGxheV9jbG9ja3NfYW5kX2NmZ19zdCAqY2xrcyA9ICZlMmVfcGlwZV9wYXJhbVtwaXBlX2lkeF0uY2xrc19jZmc7CisJY29uc3Qgc2NhbGVyX3JhdGlvX2RlcHRoX3N0ICpzY2wgPSAmZTJlX3BpcGVfcGFyYW1bcGlwZV9pZHhdLnBpcGUuc2NhbGVfcmF0aW9fZGVwdGg7CisJY29uc3Qgc2NhbGVyX3RhcHNfc3QgKnRhcHMgPSAmZTJlX3BpcGVfcGFyYW1bcGlwZV9pZHhdLnBpcGUuc2NhbGVfdGFwczsKKworCS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkvLyBTZWN0aW9uIDEuMTUuMi4xOiBPVEcgZGVwZW5kZW50IFBhcmFtcworCS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkvLyBUaW1pbmcKKwl1bnNpZ25lZCBpbnQgaHRvdGFsID0gZHN0LT5odG90YWw7CisJLy8gICAgdW5zaWduZWQgaW50IGhibGFua19zdGFydCA9IGRzdC5oYmxhbmtfc3RhcnQ7IC8vIFRPRE86IFJlbW92ZQorCXVuc2lnbmVkIGludCBoYmxhbmtfZW5kID0gZHN0LT5oYmxhbmtfZW5kOworCXVuc2lnbmVkIGludCB2Ymxhbmtfc3RhcnQgPSBkc3QtPnZibGFua19zdGFydDsKKwl1bnNpZ25lZCBpbnQgdmJsYW5rX2VuZCA9IGRzdC0+dmJsYW5rX2VuZDsKKwl1bnNpZ25lZCBpbnQgbWluX3ZibGFuayA9IG1vZGVfbGliLT5pcC5taW5fdmJsYW5rX2xpbmVzOworCisJZG91YmxlIGRwcGNsa19mcmVxX2luX21oeiA9IGNsa3MtPmRwcGNsa19taHo7CisJZG91YmxlIGRpc3BjbGtfZnJlcV9pbl9taHogPSBjbGtzLT5kaXNwY2xrX21oejsKKwlkb3VibGUgcmVmY2xrX2ZyZXFfaW5fbWh6ID0gY2xrcy0+cmVmY2xrX21oejsKKwlkb3VibGUgcGNsa19mcmVxX2luX21oeiA9IGRzdC0+cGl4ZWxfcmF0ZV9taHo7CisJYm9vbCBpbnRlcmxhY2VkID0gZHN0LT5pbnRlcmxhY2VkOworCisJZG91YmxlIHJlZl9mcmVxX3RvX3BpeF9mcmVxID0gcmVmY2xrX2ZyZXFfaW5fbWh6IC8gcGNsa19mcmVxX2luX21oejsKKworCWRvdWJsZSBtaW5fZGNmY2xrX21oejsKKwlkb3VibGUgdF9jYWxjX3VzOworCWRvdWJsZSBtaW5fdHR1X3ZibGFuazsKKworCWRvdWJsZSBtaW5fZHN0X3lfdHR1X3ZibGFuazsKKwl1bnNpZ25lZCBpbnQgZGxnX3ZibGFua19zdGFydDsKKwlib29sIGR1YWxfcGxhbmU7CisJYm9vbCBtb2RlXzQyMjsKKwl1bnNpZ25lZCBpbnQgYWNjZXNzX2RpcjsKKwl1bnNpZ25lZCBpbnQgdnBfaGVpZ2h0X2w7CisJdW5zaWduZWQgaW50IHZwX3dpZHRoX2w7CisJdW5zaWduZWQgaW50IHZwX2hlaWdodF9jOworCXVuc2lnbmVkIGludCB2cF93aWR0aF9jOworCisJLy8gU2NhbGluZworCXVuc2lnbmVkIGludCBodGFwc19sOworCXVuc2lnbmVkIGludCBodGFwc19jOworCWRvdWJsZSBocmF0aW9fbDsKKwlkb3VibGUgaHJhdGlvX2M7CisJZG91YmxlIHZyYXRpb19sOworCWRvdWJsZSB2cmF0aW9fYzsKKwlib29sIHNjbF9lbmFibGU7CisKKwlkb3VibGUgbGluZV90aW1lX2luX3VzOworCS8vICAgIGRvdWJsZSB2aW5pdF9sOworCS8vICAgIGRvdWJsZSB2aW5pdF9jOworCS8vICAgIGRvdWJsZSB2aW5pdF9ib3RfbDsKKwkvLyAgICBkb3VibGUgdmluaXRfYm90X2M7CisKKwkvLyAgICB1bnNpZ25lZCBpbnQgc3dhdGhfaGVpZ2h0X2w7CisJdW5zaWduZWQgaW50IHN3YXRoX3dpZHRoX3ViX2w7CisJLy8gICAgdW5zaWduZWQgaW50IGRwdGVfYnl0ZXNfcGVyX3Jvd191Yl9sOworCXVuc2lnbmVkIGludCBkcHRlX2dyb3Vwc19wZXJfcm93X3ViX2w7CisJLy8gICAgdW5zaWduZWQgaW50IG1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZV91Yl9sOworCS8vICAgIHVuc2lnbmVkIGludCBtZXRhX2J5dGVzX3Blcl9yb3dfdWJfbDsKKworCS8vICAgIHVuc2lnbmVkIGludCBzd2F0aF9oZWlnaHRfYzsKKwl1bnNpZ25lZCBpbnQgc3dhdGhfd2lkdGhfdWJfYzsKKwkvLyAgIHVuc2lnbmVkIGludCBkcHRlX2J5dGVzX3Blcl9yb3dfdWJfYzsKKwl1bnNpZ25lZCBpbnQgZHB0ZV9ncm91cHNfcGVyX3Jvd191Yl9jOworCisJdW5zaWduZWQgaW50IG1ldGFfY2h1bmtzX3Blcl9yb3dfdWJfbDsKKwl1bnNpZ25lZCBpbnQgbWV0YV9jaHVua3NfcGVyX3Jvd191Yl9jOworCXVuc2lnbmVkIGludCB2dXBkYXRlX29mZnNldDsKKwl1bnNpZ25lZCBpbnQgdnVwZGF0ZV93aWR0aDsKKwl1bnNpZ25lZCBpbnQgdnJlYWR5X29mZnNldDsKKworCXVuc2lnbmVkIGludCBkcHBjbGtfZGVsYXlfc3VidG90YWw7CisJdW5zaWduZWQgaW50IGRpc3BjbGtfZGVsYXlfc3VidG90YWw7CisJdW5zaWduZWQgaW50IHBpeGVsX3JhdGVfZGVsYXlfc3VidG90YWw7CisKKwl1bnNpZ25lZCBpbnQgdnN0YXJ0dXBfc3RhcnQ7CisJdW5zaWduZWQgaW50IGRzdF94X2FmdGVyX3NjYWxlcjsKKwl1bnNpZ25lZCBpbnQgZHN0X3lfYWZ0ZXJfc2NhbGVyOworCWRvdWJsZSBsaW5lX3dhaXQ7CisJZG91YmxlIGRzdF95X3ByZWZldGNoOworCWRvdWJsZSBkc3RfeV9wZXJfdm1fdmJsYW5rOworCWRvdWJsZSBkc3RfeV9wZXJfcm93X3ZibGFuazsKKwlkb3VibGUgZHN0X3lfcGVyX3ZtX2ZsaXA7CisJZG91YmxlIGRzdF95X3Blcl9yb3dfZmxpcDsKKwlkb3VibGUgbWF4X2RzdF95X3Blcl92bV92Ymxhbms7CisJZG91YmxlIG1heF9kc3RfeV9wZXJfcm93X3ZibGFuazsKKwlkb3VibGUgbHN3OworCWRvdWJsZSB2cmF0aW9fcHJlX2w7CisJZG91YmxlIHZyYXRpb19wcmVfYzsKKwl1bnNpZ25lZCBpbnQgcmVxX3Blcl9zd2F0aF91Yl9sOworCXVuc2lnbmVkIGludCByZXFfcGVyX3N3YXRoX3ViX2M7CisJdW5zaWduZWQgaW50IG1ldGFfcm93X2hlaWdodF9sOworCXVuc2lnbmVkIGludCBtZXRhX3Jvd19oZWlnaHRfYzsKKwl1bnNpZ25lZCBpbnQgc3dhdGhfd2lkdGhfcGl4ZWxzX3ViX2w7CisJdW5zaWduZWQgaW50IHN3YXRoX3dpZHRoX3BpeGVsc191Yl9jOworCXVuc2lnbmVkIGludCBzY2FsZXJfcmVjX2luX3dpZHRoX2w7CisJdW5zaWduZWQgaW50IHNjYWxlcl9yZWNfaW5fd2lkdGhfYzsKKwl1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVpZ2h0X2w7CisJdW5zaWduZWQgaW50IGRwdGVfcm93X2hlaWdodF9jOworCWRvdWJsZSBoc2NhbGVfcGl4ZWxfcmF0ZV9sOworCWRvdWJsZSBoc2NhbGVfcGl4ZWxfcmF0ZV9jOworCWRvdWJsZSBtaW5faHJhdGlvX2ZhY3RfbDsKKwlkb3VibGUgbWluX2hyYXRpb19mYWN0X2M7CisJZG91YmxlIHJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfbDsKKwlkb3VibGUgcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9jOworCWRvdWJsZSByZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfbDsKKwlkb3VibGUgcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2M7CisKKwlkb3VibGUgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2w7CisJZG91YmxlIHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jOworCWRvdWJsZSByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sOworCWRvdWJsZSByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jOworCisJdW5zaWduZWQgaW50IGZ1bGxfcmVjb3V0X3dpZHRoOworCWRvdWJsZSB4ZmNfdHJhbnNmZXJfZGVsYXk7CisJZG91YmxlIHhmY19wcmVjaGFyZ2VfZGVsYXk7CisJZG91YmxlIHhmY19yZW1vdGVfc3VyZmFjZV9mbGlwX2xhdGVuY3k7CisJZG91YmxlIHhmY19kc3RfeV9kZWx0YV9kcnFfbGltaXQ7CisJZG91YmxlIHhmY19wcmVmZXRjaF9tYXJnaW47CisJZG91YmxlIHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIwOworCWRvdWJsZSByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIwOworCWRvdWJsZSByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMTsKKwlkb3VibGUgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMTsKKworCW1lbXNldChkaXNwX2RsZ19yZWdzLCAwLCBzaXplb2YoKmRpc3BfZGxnX3JlZ3MpKTsKKwltZW1zZXQoZGlzcF90dHVfcmVncywgMCwgc2l6ZW9mKCpkaXNwX3R0dV9yZWdzKSk7CisKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiAgY3N0YXRlX2VuID0gJWRcbiIsIF9fZnVuY19fLCBjc3RhdGVfZW4pOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6ICBwc3RhdGVfZW4gPSAlZFxuIiwgX19mdW5jX18sIHBzdGF0ZV9lbik7CisKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBkcHBjbGtfZnJlcV9pbl9taHogICAgID0gJTMuMmZcbiIsIF9fZnVuY19fLCBkcHBjbGtfZnJlcV9pbl9taHopOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGRpc3BjbGtfZnJlcV9pbl9taHogICAgPSAlMy4yZlxuIiwgX19mdW5jX18sIGRpc3BjbGtfZnJlcV9pbl9taHopOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHJlZmNsa19mcmVxX2luX21oeiAgICAgPSAlMy4yZlxuIiwgX19mdW5jX18sIHJlZmNsa19mcmVxX2luX21oeik7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogcGNsa19mcmVxX2luX21oeiAgICAgICA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgcGNsa19mcmVxX2luX21oeik7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogaW50ZXJsYWNlZCAgICAgICAgICAgICA9ICVkXG4iLCBfX2Z1bmNfXywgaW50ZXJsYWNlZCk7CisJQVNTRVJUKHJlZl9mcmVxX3RvX3BpeF9mcmVxIDwgNC4wKTsKKworCWRpc3BfZGxnX3JlZ3MtPnJlZl9mcmVxX3RvX3BpeF9mcmVxID0KKwkJCSh1bnNpZ25lZCBpbnQpIChyZWZfZnJlcV90b19waXhfZnJlcSAqIGRtbF9wb3coMiwgMTkpKTsKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX2h0b3RhbCA9ICh1bnNpZ25lZCBpbnQpIChyZWZfZnJlcV90b19waXhfZnJlcSAqIChkb3VibGUpIGh0b3RhbAorCQkJKiBkbWxfcG93KDIsIDgpKTsKKwlkaXNwX2RsZ19yZWdzLT5kbGdfdmJsYW5rX2VuZCA9IGludGVybGFjZWQgPyAodmJsYW5rX2VuZCAvIDIpIDogdmJsYW5rX2VuZDsgLy8gMTUgYml0cworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19oX2JsYW5rX2VuZCA9ICh1bnNpZ25lZCBpbnQpICgoZG91YmxlKSBoYmxhbmtfZW5kCisJCQkqIChkb3VibGUpIHJlZl9mcmVxX3RvX3BpeF9mcmVxKTsKKwlBU1NFUlQoZGlzcF9kbGdfcmVncy0+cmVmY3ljX2hfYmxhbmtfZW5kIDwgKHVuc2lnbmVkIGludClkbWxfcG93KDIsIDEzKSk7CisKKwltaW5fZGNmY2xrX21oeiA9IGRsZ19zeXNfcGFyYW0uZGVlcHNsZWVwX2RjZmNsa19taHo7CisJdF9jYWxjX3VzID0gZ2V0X3RjYWxjKG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzKTsKKwltaW5fdHR1X3ZibGFuayA9IGdldF9taW5fdHR1X3ZibGFuayhtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpOworCisJbWluX2RzdF95X3R0dV92YmxhbmsgPSBtaW5fdHR1X3ZibGFuayAqIHBjbGtfZnJlcV9pbl9taHogLyAoZG91YmxlKSBodG90YWw7CisJZGxnX3ZibGFua19zdGFydCA9IGludGVybGFjZWQgPyAodmJsYW5rX3N0YXJ0IC8gMikgOiB2Ymxhbmtfc3RhcnQ7CisKKwlkaXNwX2RsZ19yZWdzLT5taW5fZHN0X3lfbmV4dF9zdGFydCA9ICh1bnNpZ25lZCBpbnQpICgoKGRvdWJsZSkgZGxnX3ZibGFua19zdGFydCkgKiBkbWxfcG93KDIsIDIpKTsKKwlBU1NFUlQoZGlzcF9kbGdfcmVncy0+bWluX2RzdF95X25leHRfc3RhcnQgPCAodW5zaWduZWQgaW50KWRtbF9wb3coMiwgMTgpKTsKKworCWRtbF9wcmludCgKKwkJCSJETUxfRExHOiAlczogbWluX2RjZmNsa19taHogICAgICAgICAgICAgICAgICAgICAgICAgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJbWluX2RjZmNsa19taHopOworCWRtbF9wcmludCgKKwkJCSJETUxfRExHOiAlczogbWluX3R0dV92YmxhbmsgICAgICAgICAgICAgICAgICAgICAgICAgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJbWluX3R0dV92YmxhbmspOworCWRtbF9wcmludCgKKwkJCSJETUxfRExHOiAlczogbWluX2RzdF95X3R0dV92YmxhbmsgICAgICAgICAgICAgICAgICAgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJbWluX2RzdF95X3R0dV92YmxhbmspOworCWRtbF9wcmludCgKKwkJCSJETUxfRExHOiAlczogdF9jYWxjX3VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJdF9jYWxjX3VzKTsKKwlkbWxfcHJpbnQoCisJCQkiRE1MX0RMRzogJXM6IGRpc3BfZGxnX3JlZ3MtPm1pbl9kc3RfeV9uZXh0X3N0YXJ0ICAgID0gMHglMHhcbiIsCisJCQlfX2Z1bmNfXywKKwkJCWRpc3BfZGxnX3JlZ3MtPm1pbl9kc3RfeV9uZXh0X3N0YXJ0KTsKKwlkbWxfcHJpbnQoCisJCQkiRE1MX0RMRzogJXM6IHJlZl9mcmVxX3RvX3BpeF9mcmVxICAgICAgICAgICAgICAgICAgID0gJTMuMmZcbiIsCisJCQlfX2Z1bmNfXywKKwkJCXJlZl9mcmVxX3RvX3BpeF9mcmVxKTsKKworCS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkvLyBTZWN0aW9uIDEuMTUuMi4yOiBQcmVmZXRjaCwgQWN0aXZlIGFuZCBUVFUKKwkvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJLy8gUHJlZmV0Y2ggQ2FsYworCS8vIFNvdXJjZQorCS8vICAgICAgICAgICAgIGRjY19lbiAgICAgICAgICAgICAgPSBzcmMuZGNjOworCWR1YWxfcGxhbmUgPSBpc19kdWFsX3BsYW5lKChlbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3MpIChzcmMtPnNvdXJjZV9mb3JtYXQpKTsKKwltb2RlXzQyMiA9IDA7IC8vIEZJWE1FCisJYWNjZXNzX2RpciA9IChzcmMtPnNvdXJjZV9zY2FuID09IGRtX3ZlcnQpOyAvLyB2cCBhY2Nlc3MgZGlyZWN0aW9uOiBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGFjY2Vzc2VkCisJCQkJCQkgICAgLy8gICAgICBieXRlc19wZXJfZWxlbWVudF9sID0gZ2V0X2J5dGVzX3Blcl9lbGVtZW50KHNvdXJjZV9mb3JtYXRfY2xhc3Moc3JjLnNvdXJjZV9mb3JtYXQpLCAwKTsKKwkJCQkJCSAgICAvLyAgICAgIGJ5dGVzX3Blcl9lbGVtZW50X2MgPSBnZXRfYnl0ZXNfcGVyX2VsZW1lbnQoc291cmNlX2Zvcm1hdF9jbGFzcyhzcmMuc291cmNlX2Zvcm1hdCksIDEpOworCXZwX2hlaWdodF9sID0gc3JjLT52aWV3cG9ydF9oZWlnaHQ7CisJdnBfd2lkdGhfbCA9IHNyYy0+dmlld3BvcnRfd2lkdGg7CisJdnBfaGVpZ2h0X2MgPSBzcmMtPnZpZXdwb3J0X2hlaWdodF9jOworCXZwX3dpZHRoX2MgPSBzcmMtPnZpZXdwb3J0X3dpZHRoX2M7CisKKwkvLyBTY2FsaW5nCisJaHRhcHNfbCA9IHRhcHMtPmh0YXBzOworCWh0YXBzX2MgPSB0YXBzLT5odGFwc19jOworCWhyYXRpb19sID0gc2NsLT5oc2NsX3JhdGlvOworCWhyYXRpb19jID0gc2NsLT5oc2NsX3JhdGlvX2M7CisJdnJhdGlvX2wgPSBzY2wtPnZzY2xfcmF0aW87CisJdnJhdGlvX2MgPSBzY2wtPnZzY2xfcmF0aW9fYzsKKwlzY2xfZW5hYmxlID0gc2NsLT5zY2xfZW5hYmxlOworCisJbGluZV90aW1lX2luX3VzID0gKGh0b3RhbCAvIHBjbGtfZnJlcV9pbl9taHopOworCXN3YXRoX3dpZHRoX3ViX2wgPSBycV9kbGdfcGFyYW0ucnFfbC5zd2F0aF93aWR0aF91YjsKKwlkcHRlX2dyb3Vwc19wZXJfcm93X3ViX2wgPSBycV9kbGdfcGFyYW0ucnFfbC5kcHRlX2dyb3Vwc19wZXJfcm93X3ViOworCXN3YXRoX3dpZHRoX3ViX2MgPSBycV9kbGdfcGFyYW0ucnFfYy5zd2F0aF93aWR0aF91YjsKKwlkcHRlX2dyb3Vwc19wZXJfcm93X3ViX2MgPSBycV9kbGdfcGFyYW0ucnFfYy5kcHRlX2dyb3Vwc19wZXJfcm93X3ViOworCisJbWV0YV9jaHVua3NfcGVyX3Jvd191Yl9sID0gcnFfZGxnX3BhcmFtLnJxX2wubWV0YV9jaHVua3NfcGVyX3Jvd191YjsKKwltZXRhX2NodW5rc19wZXJfcm93X3ViX2MgPSBycV9kbGdfcGFyYW0ucnFfYy5tZXRhX2NodW5rc19wZXJfcm93X3ViOworCXZ1cGRhdGVfb2Zmc2V0ID0gZHN0LT52dXBkYXRlX29mZnNldDsKKwl2dXBkYXRlX3dpZHRoID0gZHN0LT52dXBkYXRlX3dpZHRoOworCXZyZWFkeV9vZmZzZXQgPSBkc3QtPnZyZWFkeV9vZmZzZXQ7CisKKwlkcHBjbGtfZGVsYXlfc3VidG90YWwgPSBtb2RlX2xpYi0+aXAuZHBwY2xrX2RlbGF5X3N1YnRvdGFsOworCWRpc3BjbGtfZGVsYXlfc3VidG90YWwgPSBtb2RlX2xpYi0+aXAuZGlzcGNsa19kZWxheV9zdWJ0b3RhbDsKKworCWlmIChzY2xfZW5hYmxlKQorCQlkcHBjbGtfZGVsYXlfc3VidG90YWwgKz0gbW9kZV9saWItPmlwLmRwcGNsa19kZWxheV9zY2w7CisJZWxzZQorCQlkcHBjbGtfZGVsYXlfc3VidG90YWwgKz0gbW9kZV9saWItPmlwLmRwcGNsa19kZWxheV9zY2xfbGJfb25seTsKKworCWRwcGNsa19kZWxheV9zdWJ0b3RhbCArPSBtb2RlX2xpYi0+aXAuZHBwY2xrX2RlbGF5X2NudmNfZm9ybWF0dGVyCisJCQkrIHNyYy0+bnVtX2N1cnNvcnMgKiBtb2RlX2xpYi0+aXAuZHBwY2xrX2RlbGF5X2NudmNfY3Vyc29yOworCisJaWYgKGRvdXQtPmRzY19lbmFibGUpIHsKKwkJZG91YmxlIGRzY19kZWxheSA9IGdldF9kc2NfZGVsYXkobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMsIHBpcGVfaWR4KTsKKworCQlkaXNwY2xrX2RlbGF5X3N1YnRvdGFsICs9IGRzY19kZWxheTsKKwl9CisKKwlwaXhlbF9yYXRlX2RlbGF5X3N1YnRvdGFsID0gZHBwY2xrX2RlbGF5X3N1YnRvdGFsICogcGNsa19mcmVxX2luX21oeiAvIGRwcGNsa19mcmVxX2luX21oegorCQkJKyBkaXNwY2xrX2RlbGF5X3N1YnRvdGFsICogcGNsa19mcmVxX2luX21oeiAvIGRpc3BjbGtfZnJlcV9pbl9taHo7CisKKwl2c3RhcnR1cF9zdGFydCA9IGRzdC0+dnN0YXJ0dXBfc3RhcnQ7CisJaWYgKGludGVybGFjZWQpIHsKKwkJaWYgKHZzdGFydHVwX3N0YXJ0IC8gMi4wCisJCQkJLSAoZG91YmxlKSAodnJlYWR5X29mZnNldCArIHZ1cGRhdGVfd2lkdGggKyB2dXBkYXRlX29mZnNldCkgLyBodG90YWwKKwkJCQk8PSB2YmxhbmtfZW5kIC8gMi4wKQorCQkJZGlzcF9kbGdfcmVncy0+dnJlYWR5X2FmdGVyX3Zjb3VudDAgPSAxOworCQllbHNlCisJCQlkaXNwX2RsZ19yZWdzLT52cmVhZHlfYWZ0ZXJfdmNvdW50MCA9IDA7CisJfSBlbHNlIHsKKwkJaWYgKHZzdGFydHVwX3N0YXJ0CisJCQkJLSAoZG91YmxlKSAodnJlYWR5X29mZnNldCArIHZ1cGRhdGVfd2lkdGggKyB2dXBkYXRlX29mZnNldCkgLyBodG90YWwKKwkJCQk8PSB2YmxhbmtfZW5kKQorCQkJZGlzcF9kbGdfcmVncy0+dnJlYWR5X2FmdGVyX3Zjb3VudDAgPSAxOworCQllbHNlCisJCQlkaXNwX2RsZ19yZWdzLT52cmVhZHlfYWZ0ZXJfdmNvdW50MCA9IDA7CisJfQorCisJLy8gVE9ETzogV2hlcmUgaXMgdGhpcyBjb21pbmcgZnJvbT8KKwlpZiAoaW50ZXJsYWNlZCkKKwkJdnN0YXJ0dXBfc3RhcnQgPSB2c3RhcnR1cF9zdGFydCAvIDI7CisKKwkvLyBUT0RPOiBXaGF0IGlmIHRoaXMgbWluX3ZibGFuayBkb2Vzbid0IG1hdGNoIHRoZSB2YWx1ZSBpbiB0aGUgZG1sX2NvbmZpZ19zZXR0aW5ncy5jcHA/CisJaWYgKHZzdGFydHVwX3N0YXJ0ID49IG1pbl92YmxhbmspIHsKKwkJZG1sX3ByaW50KAorCQkJCSJXQVJOSU5HOiBETUxfRExHOiAlczogdmJsYW5rX3N0YXJ0PSVkIHZibGFua19lbmQ9JWRcbiIsCisJCQkJX19mdW5jX18sCisJCQkJdmJsYW5rX3N0YXJ0LAorCQkJCXZibGFua19lbmQpOworCQlkbWxfcHJpbnQoCisJCQkJIldBUk5JTkc6IERNTF9ETEc6ICVzOiB2c3RhcnR1cF9zdGFydD0lZCBzaG91bGQgYmUgbGVzcyB0aGFuIG1pbl92Ymxhbms9JWRcbiIsCisJCQkJX19mdW5jX18sCisJCQkJdnN0YXJ0dXBfc3RhcnQsCisJCQkJbWluX3ZibGFuayk7CisJCW1pbl92YmxhbmsgPSB2c3RhcnR1cF9zdGFydCArIDE7CisJCWRtbF9wcmludCgKKwkJCQkiV0FSTklORzogRE1MX0RMRzogJXM6IHZzdGFydHVwX3N0YXJ0PSVkIHNob3VsZCBiZSBsZXNzIHRoYW4gbWluX3ZibGFuaz0lZFxuIiwKKwkJCQlfX2Z1bmNfXywKKwkJCQl2c3RhcnR1cF9zdGFydCwKKwkJCQltaW5fdmJsYW5rKTsKKwl9CisKKwlkc3RfeF9hZnRlcl9zY2FsZXIgPSBnZXRfZHN0X3hfYWZ0ZXJfc2NhbGVyKG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzLCBwaXBlX2lkeCk7CisJZHN0X3lfYWZ0ZXJfc2NhbGVyID0gZ2V0X2RzdF95X2FmdGVyX3NjYWxlcihtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogaHRvdGFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAlZFxuIiwgX19mdW5jX18sIGh0b3RhbCk7CisJZG1sX3ByaW50KAorCQkJIkRNTF9ETEc6ICVzOiBwaXhlbF9yYXRlX2RlbGF5X3N1YnRvdGFsICAgICAgICAgICAgICA9ICVkXG4iLAorCQkJX19mdW5jX18sCisJCQlwaXhlbF9yYXRlX2RlbGF5X3N1YnRvdGFsKTsKKwlkbWxfcHJpbnQoCisJCQkiRE1MX0RMRzogJXM6IGRzdF94X2FmdGVyX3NjYWxlciAgICAgICAgICAgICAgICAgICAgID0gJWRcbiIsCisJCQlfX2Z1bmNfXywKKwkJCWRzdF94X2FmdGVyX3NjYWxlcik7CisJZG1sX3ByaW50KAorCQkJIkRNTF9ETEc6ICVzOiBkc3RfeV9hZnRlcl9zY2FsZXIgICAgICAgICAgICAgICAgICAgICA9ICVkXG4iLAorCQkJX19mdW5jX18sCisJCQlkc3RfeV9hZnRlcl9zY2FsZXIpOworCisJLy8gTHdhaXQKKwkvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSB1cmdlbnRfbGF0ZW5jeV9waXhlbF9taXhlZF93aXRoX3ZtX2RhdGFfdXM/CisJbGluZV93YWl0ID0gbW9kZV9saWItPnNvYy51cmdlbnRfbGF0ZW5jeV9waXhlbF9kYXRhX29ubHlfdXM7CisJaWYgKGNzdGF0ZV9lbikKKwkJbGluZV93YWl0ID0gZG1sX21heChtb2RlX2xpYi0+c29jLnNyX2VudGVyX3BsdXNfZXhpdF90aW1lX3VzLCBsaW5lX3dhaXQpOworCWlmIChwc3RhdGVfZW4pCisJCWxpbmVfd2FpdCA9IGRtbF9tYXgoCisJCQkJbW9kZV9saWItPnNvYy5kcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzCisJCQkJCQkrIG1vZGVfbGliLT5zb2MudXJnZW50X2xhdGVuY3lfcGl4ZWxfZGF0YV9vbmx5X3VzLCAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSB1cmdlbnRfbGF0ZW5jeV9waXhlbF9taXhlZF93aXRoX3ZtX2RhdGFfdXM/CisJCQkJbGluZV93YWl0KTsKKwlsaW5lX3dhaXQgPSBsaW5lX3dhaXQgLyBsaW5lX3RpbWVfaW5fdXM7CisKKwlkc3RfeV9wcmVmZXRjaCA9IGdldF9kc3RfeV9wcmVmZXRjaChtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGRzdF95X3ByZWZldGNoIChhZnRlciBybmQpID0gJTMuMmZcbiIsIF9fZnVuY19fLCBkc3RfeV9wcmVmZXRjaCk7CisKKwlkc3RfeV9wZXJfdm1fdmJsYW5rID0gZ2V0X2RzdF95X3Blcl92bV92YmxhbmsoCisJCQltb2RlX2xpYiwKKwkJCWUyZV9waXBlX3BhcmFtLAorCQkJbnVtX3BpcGVzLAorCQkJcGlwZV9pZHgpOworCWRzdF95X3Blcl9yb3dfdmJsYW5rID0gZ2V0X2RzdF95X3Blcl9yb3dfdmJsYW5rKAorCQkJbW9kZV9saWIsCisJCQllMmVfcGlwZV9wYXJhbSwKKwkJCW51bV9waXBlcywKKwkJCXBpcGVfaWR4KTsKKwlkc3RfeV9wZXJfdm1fZmxpcCA9IGdldF9kc3RfeV9wZXJfdm1fZmxpcChtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpOworCWRzdF95X3Blcl9yb3dfZmxpcCA9IGdldF9kc3RfeV9wZXJfcm93X2ZsaXAobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMsIHBpcGVfaWR4KTsKKworCW1heF9kc3RfeV9wZXJfdm1fdmJsYW5rID0gMzIuMDsKKwltYXhfZHN0X3lfcGVyX3Jvd192YmxhbmsgPSAxNi4wOworCisJLy8gbWFnaWMhCisJaWYgKGh0b3RhbCA8PSA3NSkgeworCQltaW5fdmJsYW5rID0gMzAwOworCQltYXhfZHN0X3lfcGVyX3ZtX3ZibGFuayA9IDEwMC4wOworCQltYXhfZHN0X3lfcGVyX3Jvd192YmxhbmsgPSAxMDAuMDsKKwl9CisKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBkc3RfeV9wZXJfdm1fZmxpcCAgICA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgZHN0X3lfcGVyX3ZtX2ZsaXApOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGRzdF95X3Blcl9yb3dfZmxpcCAgID0gJTMuMmZcbiIsIF9fZnVuY19fLCBkc3RfeV9wZXJfcm93X2ZsaXApOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGRzdF95X3Blcl92bV92YmxhbmsgID0gJTMuMmZcbiIsIF9fZnVuY19fLCBkc3RfeV9wZXJfdm1fdmJsYW5rKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBkc3RfeV9wZXJfcm93X3ZibGFuayA9ICUzLjJmXG4iLCBfX2Z1bmNfXywgZHN0X3lfcGVyX3Jvd192YmxhbmspOworCisJQVNTRVJUKGRzdF95X3Blcl92bV92YmxhbmsgPCBtYXhfZHN0X3lfcGVyX3ZtX3ZibGFuayk7CisJQVNTRVJUKGRzdF95X3Blcl9yb3dfdmJsYW5rIDwgbWF4X2RzdF95X3Blcl9yb3dfdmJsYW5rKTsKKworCUFTU0VSVChkc3RfeV9wcmVmZXRjaCA+IChkc3RfeV9wZXJfdm1fdmJsYW5rICsgZHN0X3lfcGVyX3Jvd192YmxhbmspKTsKKwlsc3cgPSBkc3RfeV9wcmVmZXRjaCAtIChkc3RfeV9wZXJfdm1fdmJsYW5rICsgZHN0X3lfcGVyX3Jvd192YmxhbmspOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogbHN3ID0gJTMuMmZcbiIsIF9fZnVuY19fLCBsc3cpOworCisJdnJhdGlvX3ByZV9sID0gZ2V0X3ZyYXRpb19wcmVmZXRjaF9sKG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzLCBwaXBlX2lkeCk7CisJdnJhdGlvX3ByZV9jID0gZ2V0X3ZyYXRpb19wcmVmZXRjaF9jKG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzLCBwaXBlX2lkeCk7CisKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiB2cmF0aW9fcHJlX2w9JTMuMmZcbiIsIF9fZnVuY19fLCB2cmF0aW9fcHJlX2wpOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IHZyYXRpb19wcmVfYz0lMy4yZlxuIiwgX19mdW5jX18sIHZyYXRpb19wcmVfYyk7CisKKwkvLyBBY3RpdmUKKwlyZXFfcGVyX3N3YXRoX3ViX2wgPSBycV9kbGdfcGFyYW0ucnFfbC5yZXFfcGVyX3N3YXRoX3ViOworCXJlcV9wZXJfc3dhdGhfdWJfYyA9IHJxX2RsZ19wYXJhbS5ycV9jLnJlcV9wZXJfc3dhdGhfdWI7CisJbWV0YV9yb3dfaGVpZ2h0X2wgPSBycV9kbGdfcGFyYW0ucnFfbC5tZXRhX3Jvd19oZWlnaHQ7CisJbWV0YV9yb3dfaGVpZ2h0X2MgPSBycV9kbGdfcGFyYW0ucnFfYy5tZXRhX3Jvd19oZWlnaHQ7CisJc3dhdGhfd2lkdGhfcGl4ZWxzX3ViX2wgPSAwOworCXN3YXRoX3dpZHRoX3BpeGVsc191Yl9jID0gMDsKKwlzY2FsZXJfcmVjX2luX3dpZHRoX2wgPSAwOworCXNjYWxlcl9yZWNfaW5fd2lkdGhfYyA9IDA7CisJZHB0ZV9yb3dfaGVpZ2h0X2wgPSBycV9kbGdfcGFyYW0ucnFfbC5kcHRlX3Jvd19oZWlnaHQ7CisJZHB0ZV9yb3dfaGVpZ2h0X2MgPSBycV9kbGdfcGFyYW0ucnFfYy5kcHRlX3Jvd19oZWlnaHQ7CisKKwlpZiAobW9kZV80MjIpIHsKKwkJc3dhdGhfd2lkdGhfcGl4ZWxzX3ViX2wgPSBzd2F0aF93aWR0aF91Yl9sICogMjsgIC8vICoyIGZvciAyIHBpeGVsIHBlciBlbGVtZW50CisJCXN3YXRoX3dpZHRoX3BpeGVsc191Yl9jID0gc3dhdGhfd2lkdGhfdWJfYyAqIDI7CisJfSBlbHNlIHsKKwkJc3dhdGhfd2lkdGhfcGl4ZWxzX3ViX2wgPSBzd2F0aF93aWR0aF91Yl9sICogMTsKKwkJc3dhdGhfd2lkdGhfcGl4ZWxzX3ViX2MgPSBzd2F0aF93aWR0aF91Yl9jICogMTsKKwl9CisKKwloc2NhbGVfcGl4ZWxfcmF0ZV9sID0gMC47CisJaHNjYWxlX3BpeGVsX3JhdGVfYyA9IDAuOworCW1pbl9ocmF0aW9fZmFjdF9sID0gMS4wOworCW1pbl9ocmF0aW9fZmFjdF9jID0gMS4wOworCisJaWYgKGh0YXBzX2wgPD0gMSkKKwkJbWluX2hyYXRpb19mYWN0X2wgPSAyLjA7CisJZWxzZSBpZiAoaHRhcHNfbCA8PSA2KSB7CisJCWlmICgoaHJhdGlvX2wgKiAyLjApID4gNC4wKQorCQkJbWluX2hyYXRpb19mYWN0X2wgPSA0LjA7CisJCWVsc2UKKwkJCW1pbl9ocmF0aW9fZmFjdF9sID0gaHJhdGlvX2wgKiAyLjA7CisJfSBlbHNlIHsKKwkJaWYgKGhyYXRpb19sID4gNC4wKQorCQkJbWluX2hyYXRpb19mYWN0X2wgPSA0LjA7CisJCWVsc2UKKwkJCW1pbl9ocmF0aW9fZmFjdF9sID0gaHJhdGlvX2w7CisJfQorCisJaHNjYWxlX3BpeGVsX3JhdGVfbCA9IG1pbl9ocmF0aW9fZmFjdF9sICogZHBwY2xrX2ZyZXFfaW5fbWh6OworCisJaWYgKGh0YXBzX2MgPD0gMSkKKwkJbWluX2hyYXRpb19mYWN0X2MgPSAyLjA7CisJZWxzZSBpZiAoaHRhcHNfYyA8PSA2KSB7CisJCWlmICgoaHJhdGlvX2MgKiAyLjApID4gNC4wKQorCQkJbWluX2hyYXRpb19mYWN0X2MgPSA0LjA7CisJCWVsc2UKKwkJCW1pbl9ocmF0aW9fZmFjdF9jID0gaHJhdGlvX2MgKiAyLjA7CisJfSBlbHNlIHsKKwkJaWYgKGhyYXRpb19jID4gNC4wKQorCQkJbWluX2hyYXRpb19mYWN0X2MgPSA0LjA7CisJCWVsc2UKKwkJCW1pbl9ocmF0aW9fZmFjdF9jID0gaHJhdGlvX2M7CisJfQorCisJaHNjYWxlX3BpeGVsX3JhdGVfYyA9IG1pbl9ocmF0aW9fZmFjdF9jICogZHBwY2xrX2ZyZXFfaW5fbWh6OworCisJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sID0gMC47CisJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9jID0gMC47CisJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2wgPSAwLjsKKwlyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYyA9IDAuOworCisJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2wgPSAwLjsKKwlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfYyA9IDAuOworCXJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2wgPSAwLjsKKwlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jID0gMC47CisKKwlmdWxsX3JlY291dF93aWR0aCA9IDA7CisJLy8gSW4gT0RNCisJaWYgKHNyYy0+aXNfaHNwbGl0KSB7CisJCS8vIFRoaXMgImhhY2siICBpcyBvbmx5IGFsbG93ZWQgKGFuZCB2YWxpZCkgZm9yIE1QQyBjb21iaW5lLiBJbiBPRE0KKwkJLy8gY29tYmluZSwgeW91IE1VU1Qgc3BlY2lmeSB0aGUgZnVsbF9yZWNvdXRfd2lkdGguLi5hY2NvcmRpbmcgdG8gT3N3aW4KKwkJaWYgKGRzdC0+ZnVsbF9yZWNvdXRfd2lkdGggPT0gMCAmJiAhZHN0LT5vZG1fY29tYmluZSkgeworCQkJZG1sX3ByaW50KAorCQkJCQkiRE1MX0RMRzogJXM6IFdhcm5pbmc6IGZ1bGxfcmVjb3V0X3dpZHRoIG5vdCBzZXQgaW4gaHNwbGl0IG1vZGVcbiIsCisJCQkJCV9fZnVuY19fKTsKKwkJCWZ1bGxfcmVjb3V0X3dpZHRoID0gZHN0LT5yZWNvdXRfd2lkdGggKiAyOyAvLyBhc3N1bWUgaGFsZiBzcGxpdCBmb3IgZGNuMQorCQl9IGVsc2UKKwkJCWZ1bGxfcmVjb3V0X3dpZHRoID0gZHN0LT5mdWxsX3JlY291dF93aWR0aDsKKwl9IGVsc2UKKwkJZnVsbF9yZWNvdXRfd2lkdGggPSBkc3QtPnJlY291dF93aWR0aDsKKworCS8vIEFzIG9mIERDTjIsIG1wY19jb21iaW5lIGFuZCBvZG1fY29tYmluZSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlCisJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sID0gZ2V0X3JlZmN5Y19wZXJfZGVsaXZlcnkoCisJCQltb2RlX2xpYiwKKwkJCXJlZmNsa19mcmVxX2luX21oeiwKKwkJCXBjbGtfZnJlcV9pbl9taHosCisJCQlkc3QtPm9kbV9jb21iaW5lLAorCQkJZnVsbF9yZWNvdXRfd2lkdGgsCisJCQlkc3QtPmhhY3RpdmUsCisJCQl2cmF0aW9fcHJlX2wsCisJCQloc2NhbGVfcGl4ZWxfcmF0ZV9sLAorCQkJc3dhdGhfd2lkdGhfcGl4ZWxzX3ViX2wsCisJCQkxKTsgLy8gcGVyIGxpbmUKKworCXJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9sID0gZ2V0X3JlZmN5Y19wZXJfZGVsaXZlcnkoCisJCQltb2RlX2xpYiwKKwkJCXJlZmNsa19mcmVxX2luX21oeiwKKwkJCXBjbGtfZnJlcV9pbl9taHosCisJCQlkc3QtPm9kbV9jb21iaW5lLAorCQkJZnVsbF9yZWNvdXRfd2lkdGgsCisJCQlkc3QtPmhhY3RpdmUsCisJCQl2cmF0aW9fbCwKKwkJCWhzY2FsZV9waXhlbF9yYXRlX2wsCisJCQlzd2F0aF93aWR0aF9waXhlbHNfdWJfbCwKKwkJCTEpOyAvLyBwZXIgbGluZQorCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogZnVsbF9yZWNvdXRfd2lkdGggICAgICAgICAgICAgID0gJWRcbiIsIF9fZnVuY19fLCBmdWxsX3JlY291dF93aWR0aCk7CisJZG1sX3ByaW50KAorCQkJIkRNTF9ETEc6ICVzOiBoc2NhbGVfcGl4ZWxfcmF0ZV9sICAgICAgICAgICAgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJaHNjYWxlX3BpeGVsX3JhdGVfbCk7CisJZG1sX3ByaW50KAorCQkJIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2wgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sKTsKKwlkbWxfcHJpbnQoCisJCQkiRE1MX0RMRzogJXM6IHJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9sICAgICA9ICUzLjJmXG4iLAorCQkJX19mdW5jX18sCisJCQlyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfbCk7CisKKwlpZiAoZHVhbF9wbGFuZSkgeworCQlyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2MgPSBnZXRfcmVmY3ljX3Blcl9kZWxpdmVyeSgKKwkJCQltb2RlX2xpYiwKKwkJCQlyZWZjbGtfZnJlcV9pbl9taHosCisJCQkJcGNsa19mcmVxX2luX21oeiwKKwkJCQlkc3QtPm9kbV9jb21iaW5lLAorCQkJCWZ1bGxfcmVjb3V0X3dpZHRoLAorCQkJCWRzdC0+aGFjdGl2ZSwKKwkJCQl2cmF0aW9fcHJlX2MsCisJCQkJaHNjYWxlX3BpeGVsX3JhdGVfYywKKwkJCQlzd2F0aF93aWR0aF9waXhlbHNfdWJfYywKKwkJCQkxKTsgLy8gcGVyIGxpbmUKKworCQlyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYyA9IGdldF9yZWZjeWNfcGVyX2RlbGl2ZXJ5KAorCQkJCW1vZGVfbGliLAorCQkJCXJlZmNsa19mcmVxX2luX21oeiwKKwkJCQlwY2xrX2ZyZXFfaW5fbWh6LAorCQkJCWRzdC0+b2RtX2NvbWJpbmUsCisJCQkJZnVsbF9yZWNvdXRfd2lkdGgsCisJCQkJZHN0LT5oYWN0aXZlLAorCQkJCXZyYXRpb19jLAorCQkJCWhzY2FsZV9waXhlbF9yYXRlX2MsCisJCQkJc3dhdGhfd2lkdGhfcGl4ZWxzX3ViX2MsCisJCQkJMSk7ICAvLyBwZXIgbGluZQorCisJCWRtbF9wcmludCgKKwkJCQkiRE1MX0RMRzogJXM6IHJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYyA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCXJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYyk7CisJCWRtbF9wcmludCgKKwkJCQkiRE1MX0RMRzogJXM6IHJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9jICAgICA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCXJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9jKTsKKwl9CisKKwkvLyBUVFUgLSBMdW1hIC8gQ2hyb21hCisJaWYgKGFjY2Vzc19kaXIpIHsgIC8vIHZlcnRpY2FsIGFjY2VzcworCQlzY2FsZXJfcmVjX2luX3dpZHRoX2wgPSB2cF9oZWlnaHRfbDsKKwkJc2NhbGVyX3JlY19pbl93aWR0aF9jID0gdnBfaGVpZ2h0X2M7CisJfSBlbHNlIHsKKwkJc2NhbGVyX3JlY19pbl93aWR0aF9sID0gdnBfd2lkdGhfbDsKKwkJc2NhbGVyX3JlY19pbl93aWR0aF9jID0gdnBfd2lkdGhfYzsKKwl9CisKKwlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfbCA9IGdldF9yZWZjeWNfcGVyX2RlbGl2ZXJ5KAorCQkJbW9kZV9saWIsCisJCQlyZWZjbGtfZnJlcV9pbl9taHosCisJCQlwY2xrX2ZyZXFfaW5fbWh6LAorCQkJZHN0LT5vZG1fY29tYmluZSwKKwkJCWZ1bGxfcmVjb3V0X3dpZHRoLAorCQkJZHN0LT5oYWN0aXZlLAorCQkJdnJhdGlvX3ByZV9sLAorCQkJaHNjYWxlX3BpeGVsX3JhdGVfbCwKKwkJCXNjYWxlcl9yZWNfaW5fd2lkdGhfbCwKKwkJCXJlcV9wZXJfc3dhdGhfdWJfbCk7ICAvLyBwZXIgcmVxCisJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbCA9IGdldF9yZWZjeWNfcGVyX2RlbGl2ZXJ5KAorCQkJbW9kZV9saWIsCisJCQlyZWZjbGtfZnJlcV9pbl9taHosCisJCQlwY2xrX2ZyZXFfaW5fbWh6LAorCQkJZHN0LT5vZG1fY29tYmluZSwKKwkJCWZ1bGxfcmVjb3V0X3dpZHRoLAorCQkJZHN0LT5oYWN0aXZlLAorCQkJdnJhdGlvX2wsCisJCQloc2NhbGVfcGl4ZWxfcmF0ZV9sLAorCQkJc2NhbGVyX3JlY19pbl93aWR0aF9sLAorCQkJcmVxX3Blcl9zd2F0aF91Yl9sKTsgIC8vIHBlciByZXEKKworCWRtbF9wcmludCgKKwkJCSJETUxfRExHOiAlczogcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2wgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2wpOworCWRtbF9wcmludCgKKwkJCSJETUxfRExHOiAlczogcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbCAgICAgPSAlMy4yZlxuIiwKKwkJCV9fZnVuY19fLAorCQkJcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbCk7CisKKwlBU1NFUlQocmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2wgPCBkbWxfcG93KDIsIDEzKSk7CisJQVNTRVJUKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2wgPCBkbWxfcG93KDIsIDEzKSk7CisKKwlpZiAoZHVhbF9wbGFuZSkgeworCQlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfYyA9IGdldF9yZWZjeWNfcGVyX2RlbGl2ZXJ5KAorCQkJCW1vZGVfbGliLAorCQkJCXJlZmNsa19mcmVxX2luX21oeiwKKwkJCQlwY2xrX2ZyZXFfaW5fbWh6LAorCQkJCWRzdC0+b2RtX2NvbWJpbmUsCisJCQkJZnVsbF9yZWNvdXRfd2lkdGgsCisJCQkJZHN0LT5oYWN0aXZlLAorCQkJCXZyYXRpb19wcmVfYywKKwkJCQloc2NhbGVfcGl4ZWxfcmF0ZV9jLAorCQkJCXNjYWxlcl9yZWNfaW5fd2lkdGhfYywKKwkJCQlyZXFfcGVyX3N3YXRoX3ViX2MpOyAgLy8gcGVyIHJlcQorCQlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jID0gZ2V0X3JlZmN5Y19wZXJfZGVsaXZlcnkoCisJCQkJbW9kZV9saWIsCisJCQkJcmVmY2xrX2ZyZXFfaW5fbWh6LAorCQkJCXBjbGtfZnJlcV9pbl9taHosCisJCQkJZHN0LT5vZG1fY29tYmluZSwKKwkJCQlmdWxsX3JlY291dF93aWR0aCwKKwkJCQlkc3QtPmhhY3RpdmUsCisJCQkJdnJhdGlvX2MsCisJCQkJaHNjYWxlX3BpeGVsX3JhdGVfYywKKwkJCQlzY2FsZXJfcmVjX2luX3dpZHRoX2MsCisJCQkJcmVxX3Blcl9zd2F0aF91Yl9jKTsgIC8vIHBlciByZXEKKworCQlkbWxfcHJpbnQoCisJCQkJIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfYyA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCXJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jKTsKKwkJZG1sX3ByaW50KAorCQkJCSJETUxfRExHOiAlczogcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfYyAgICAgPSAlMy4yZlxuIiwKKwkJCQlfX2Z1bmNfXywKKwkJCQlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jKTsKKworCQlBU1NFUlQocmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2MgPCBkbWxfcG93KDIsIDEzKSk7CisJCUFTU0VSVChyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jIDwgZG1sX3BvdygyLCAxMykpOworCX0KKworCS8vIFhGQworCXhmY190cmFuc2Zlcl9kZWxheSA9IGdldF94ZmNfdHJhbnNmZXJfZGVsYXkobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMsIHBpcGVfaWR4KTsKKwl4ZmNfcHJlY2hhcmdlX2RlbGF5ID0gZ2V0X3hmY19wcmVjaGFyZ2VfZGVsYXkoCisJCQltb2RlX2xpYiwKKwkJCWUyZV9waXBlX3BhcmFtLAorCQkJbnVtX3BpcGVzLAorCQkJcGlwZV9pZHgpOworCXhmY19yZW1vdGVfc3VyZmFjZV9mbGlwX2xhdGVuY3kgPSBnZXRfeGZjX3JlbW90ZV9zdXJmYWNlX2ZsaXBfbGF0ZW5jeSgKKwkJCW1vZGVfbGliLAorCQkJZTJlX3BpcGVfcGFyYW0sCisJCQludW1fcGlwZXMsCisJCQlwaXBlX2lkeCk7CisJeGZjX2RzdF95X2RlbHRhX2RycV9saW1pdCA9IHhmY19yZW1vdGVfc3VyZmFjZV9mbGlwX2xhdGVuY3k7CisJeGZjX3ByZWZldGNoX21hcmdpbiA9IGdldF94ZmNfcHJlZmV0Y2hfbWFyZ2luKAorCQkJbW9kZV9saWIsCisJCQllMmVfcGlwZV9wYXJhbSwKKwkJCW51bV9waXBlcywKKwkJCXBpcGVfaWR4KTsKKworCS8vIFRUVSAtIEN1cnNvcgorCXJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIwID0gMC4wOworCXJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1cjAgPSAwLjA7CisJaWYgKHNyYy0+bnVtX2N1cnNvcnMgPiAwKSB7CisJCWNhbGN1bGF0ZV90dHVfY3Vyc29yKAorCQkJCW1vZGVfbGliLAorCQkJCSZyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMCwKKwkJCQkmcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMCwKKwkJCQlyZWZjbGtfZnJlcV9pbl9taHosCisJCQkJcmVmX2ZyZXFfdG9fcGl4X2ZyZXEsCisJCQkJaHNjYWxlX3BpeGVsX3JhdGVfbCwKKwkJCQlzY2wtPmhzY2xfcmF0aW8sCisJCQkJdnJhdGlvX3ByZV9sLAorCQkJCXZyYXRpb19sLAorCQkJCXNyYy0+Y3VyMF9zcmNfd2lkdGgsCisJCQkJKGVudW0gY3Vyc29yX2JwcCkgKHNyYy0+Y3VyMF9icHApKTsKKwl9CisKKwlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMSA9IDAuMDsKKwlyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIxID0gMC4wOworCWlmIChzcmMtPm51bV9jdXJzb3JzID4gMSkgeworCQljYWxjdWxhdGVfdHR1X2N1cnNvcigKKwkJCQltb2RlX2xpYiwKKwkJCQkmcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjEsCisJCQkJJnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1cjEsCisJCQkJcmVmY2xrX2ZyZXFfaW5fbWh6LAorCQkJCXJlZl9mcmVxX3RvX3BpeF9mcmVxLAorCQkJCWhzY2FsZV9waXhlbF9yYXRlX2wsCisJCQkJc2NsLT5oc2NsX3JhdGlvLAorCQkJCXZyYXRpb19wcmVfbCwKKwkJCQl2cmF0aW9fbCwKKwkJCQlzcmMtPmN1cjFfc3JjX3dpZHRoLAorCQkJCShlbnVtIGN1cnNvcl9icHApIChzcmMtPmN1cjFfYnBwKSk7CisJfQorCisJLy8gVFRVIC0gTWlzYworCS8vIGFsbCBoYXJkLWNvZGVkCisKKwkvLyBBc3NpZ25tZW50IHRvIHJlZ2lzdGVyIHN0cnVjdHVyZXMKKwlkaXNwX2RsZ19yZWdzLT5kc3RfeV9hZnRlcl9zY2FsZXIgPSBkc3RfeV9hZnRlcl9zY2FsZXI7IC8vIGluIHRlcm1zIG9mIGxpbmUKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfeF9hZnRlcl9zY2FsZXIgPSBkc3RfeF9hZnRlcl9zY2FsZXIgKiByZWZfZnJlcV90b19waXhfZnJlcTsgLy8gaW4gdGVybXMgb2YgcmVmY2xrCisJQVNTRVJUKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y194X2FmdGVyX3NjYWxlciA8ICh1bnNpZ25lZCBpbnQpZG1sX3BvdygyLCAxMykpOworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3ByZWZldGNoID0gKHVuc2lnbmVkIGludCkgKGRzdF95X3ByZWZldGNoICogZG1sX3BvdygyLCAyKSk7CisJZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX3ZtX3ZibGFuayA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfdm1fdmJsYW5rICogZG1sX3BvdygyLCAyKSk7CisJZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX3Jvd192YmxhbmsgPSAodW5zaWduZWQgaW50KSAoZHN0X3lfcGVyX3Jvd192YmxhbmsgKiBkbWxfcG93KDIsIDIpKTsKKwlkaXNwX2RsZ19yZWdzLT5kc3RfeV9wZXJfdm1fZmxpcCA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfdm1fZmxpcCAqIGRtbF9wb3coMiwgMikpOworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9yb3dfZmxpcCA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X2ZsaXAgKiBkbWxfcG93KDIsIDIpKTsKKworCWRpc3BfZGxnX3JlZ3MtPnZyYXRpb19wcmVmZXRjaCA9ICh1bnNpZ25lZCBpbnQpICh2cmF0aW9fcHJlX2wgKiBkbWxfcG93KDIsIDE5KSk7CisJZGlzcF9kbGdfcmVncy0+dnJhdGlvX3ByZWZldGNoX2MgPSAodW5zaWduZWQgaW50KSAodnJhdGlvX3ByZV9jICogZG1sX3BvdygyLCAxOSkpOworCisJZG1sX3ByaW50KCJETUxfRExHOiAlczogZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX3ZtX3ZibGFuayAgPSAweCV4XG4iLCBfX2Z1bmNfXywgZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX3ZtX3ZibGFuayk7CisJZG1sX3ByaW50KCJETUxfRExHOiAlczogZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX3Jvd192YmxhbmsgPSAweCV4XG4iLCBfX2Z1bmNfXywgZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX3Jvd192YmxhbmspOworCWRtbF9wcmludCgiRE1MX0RMRzogJXM6IGRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl92bV9mbGlwICAgID0gMHgleFxuIiwgX19mdW5jX18sIGRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl92bV9mbGlwKTsKKwlkbWxfcHJpbnQoIkRNTF9ETEc6ICVzOiBkaXNwX2RsZ19yZWdzLT5kc3RfeV9wZXJfcm93X2ZsaXAgICA9IDB4JXhcbiIsIF9fZnVuY19fLCBkaXNwX2RsZ19yZWdzLT5kc3RfeV9wZXJfcm93X2ZsaXApOworCisJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2wgPQorCQkJKHVuc2lnbmVkIGludCkgKGRzdF95X3Blcl9yb3dfdmJsYW5rICogKGRvdWJsZSkgaHRvdGFsCisJCQkJCSogcmVmX2ZyZXFfdG9fcGl4X2ZyZXEgLyAoZG91YmxlKSBkcHRlX2dyb3Vwc19wZXJfcm93X3ViX2wpOworCUFTU0VSVChkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfbCA8ICh1bnNpZ25lZCBpbnQpZG1sX3BvdygyLCAxMykpOworCisJaWYgKGR1YWxfcGxhbmUpIHsKKwkJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2MgPSAodW5zaWduZWQgaW50KSAoZHN0X3lfcGVyX3Jvd192YmxhbmsKKwkJCQkqIChkb3VibGUpIGh0b3RhbCAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxCisJCQkJLyAoZG91YmxlKSBkcHRlX2dyb3Vwc19wZXJfcm93X3ViX2MpOworCQlBU1NFUlQoZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2MKKwkJCQk8ICh1bnNpZ25lZCBpbnQpZG1sX3BvdygyLCAxMykpOworCX0KKworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua192YmxhbmtfbCA9CisJCQkodW5zaWduZWQgaW50KSAoZHN0X3lfcGVyX3Jvd192YmxhbmsgKiAoZG91YmxlKSBodG90YWwKKwkJCQkJKiByZWZfZnJlcV90b19waXhfZnJlcSAvIChkb3VibGUpIG1ldGFfY2h1bmtzX3Blcl9yb3dfdWJfbCk7CisJQVNTRVJUKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua192YmxhbmtfbCA8ICh1bnNpZ25lZCBpbnQpZG1sX3BvdygyLCAxMykpOworCisJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX3ZibGFua19jID0KKwkJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua192YmxhbmtfbDsgLy8gZGNjIGZvciA0OjI6MCBpcyBub3Qgc3VwcG9ydGVkIGluIGRjbjEuMC4gIGFzc2lnbmVkIHRvIGJlIHRoZSBzYW1lIGFzIF9sIGZvciBub3cKKworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBfbCA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X2ZsaXAgKiBodG90YWwKKwkJCSogcmVmX2ZyZXFfdG9fcGl4X2ZyZXEpIC8gZHB0ZV9ncm91cHNfcGVyX3Jvd191Yl9sOworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua19mbGlwX2wgPSAodW5zaWduZWQgaW50KSAoZHN0X3lfcGVyX3Jvd19mbGlwICogaHRvdGFsCisJCQkqIHJlZl9mcmVxX3RvX3BpeF9mcmVxKSAvIG1ldGFfY2h1bmtzX3Blcl9yb3dfdWJfbDsKKworCWlmIChkdWFsX3BsYW5lKSB7CisJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBfYyA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X2ZsaXAKKwkJCQkqIGh0b3RhbCAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxKSAvIGRwdGVfZ3JvdXBzX3Blcl9yb3dfdWJfYzsKKwkJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX2ZsaXBfYyA9ICh1bnNpZ25lZCBpbnQpIChkc3RfeV9wZXJfcm93X2ZsaXAKKwkJCQkqIGh0b3RhbCAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxKSAvIG1ldGFfY2h1bmtzX3Blcl9yb3dfdWJfYzsKKwl9CisKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3ZtX2dyb3VwX3ZibGFuayAgID0gZ2V0X3JlZmN5Y19wZXJfdm1fZ3JvdXBfdmJsYW5rKG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzLCBwaXBlX2lkeCkgKiByZWZjbGtfZnJlcV9pbl9taHo7CisJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl92bV9ncm91cF9mbGlwICAgICA9IGdldF9yZWZjeWNfcGVyX3ZtX2dyb3VwX2ZsaXAobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMsIHBpcGVfaWR4KSAqIHJlZmNsa19mcmVxX2luX21oejsKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3ZtX3JlcV92YmxhbmsgICAgID0gZ2V0X3JlZmN5Y19wZXJfdm1fcmVxX3ZibGFuayhtb2RlX2xpYiwgZTJlX3BpcGVfcGFyYW0sIG51bV9waXBlcywgcGlwZV9pZHgpICogcmVmY2xrX2ZyZXFfaW5fbWh6OzsKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3ZtX3JlcV9mbGlwICAgICAgID0gZ2V0X3JlZmN5Y19wZXJfdm1fcmVxX2ZsaXAobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMsIHBpcGVfaWR4KSAqIHJlZmNsa19mcmVxX2luX21oejs7CisKKwkvLyBDbGFtcCB0byBtYXggZm9yIG5vdworCWlmIChkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3ZtX2dyb3VwX3ZibGFuayA+PSAodW5zaWduZWQgaW50KWRtbF9wb3coMiwgMjMpKQorCQlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3ZtX2dyb3VwX3ZibGFuayA9IGRtbF9wb3coMiwgMjMpIC0gMTsKKworCWlmIChkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3ZtX2dyb3VwX2ZsaXAgPj0gKHVuc2lnbmVkIGludClkbWxfcG93KDIsIDIzKSkKKwkJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl92bV9ncm91cF9mbGlwID0gZG1sX3BvdygyLCAyMykgLSAxOworCisJaWYgKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfdm1fcmVxX3ZibGFuayA+PSAodW5zaWduZWQgaW50KWRtbF9wb3coMiwgMjMpKQorCQlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3ZtX3JlcV92YmxhbmsgPSBkbWxfcG93KDIsIDIzKSAtIDE7CisKKwlpZiAoZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl92bV9yZXFfZmxpcCA+PSAodW5zaWduZWQgaW50KWRtbF9wb3coMiwgMjMpKQorCQlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3ZtX3JlcV9mbGlwID0gZG1sX3BvdygyLCAyMykgLSAxOworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9wdGVfcm93X25vbV9sID0gKHVuc2lnbmVkIGludCkgKChkb3VibGUpIGRwdGVfcm93X2hlaWdodF9sCisJCQkvIChkb3VibGUpIHZyYXRpb19sICogZG1sX3BvdygyLCAyKSk7CisJQVNTRVJUKGRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9wdGVfcm93X25vbV9sIDwgKHVuc2lnbmVkIGludClkbWxfcG93KDIsIDE3KSk7CisKKwlpZiAoZHVhbF9wbGFuZSkgeworCQlkaXNwX2RsZ19yZWdzLT5kc3RfeV9wZXJfcHRlX3Jvd19ub21fYyA9ICh1bnNpZ25lZCBpbnQpICgoZG91YmxlKSBkcHRlX3Jvd19oZWlnaHRfYworCQkJCS8gKGRvdWJsZSkgdnJhdGlvX2MgKiBkbWxfcG93KDIsIDIpKTsKKwkJaWYgKGRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9wdGVfcm93X25vbV9jID49ICh1bnNpZ25lZCBpbnQpIGRtbF9wb3coMiwgMTcpKSB7CisJCQlkbWxfcHJpbnQoCisJCQkJCSJETUxfRExHOiAlczogV2FybmluZyBkc3RfeV9wZXJfcHRlX3Jvd19ub21fYyAldSBsYXJnZXIgdGhhbiBzdXBwb3J0ZWQgYnkgcmVnaXN0ZXIgZm9ybWF0IFUxNS4yICV1XG4iLAorCQkJCQlfX2Z1bmNfXywKKwkJCQkJZGlzcF9kbGdfcmVncy0+ZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2MsCisJCQkJCSh1bnNpZ25lZCBpbnQpZG1sX3BvdygyLCAxNykgLSAxKTsKKwkJfQorCX0KKworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9tZXRhX3Jvd19ub21fbCA9ICh1bnNpZ25lZCBpbnQpICgoZG91YmxlKSBtZXRhX3Jvd19oZWlnaHRfbAorCQkJLyAoZG91YmxlKSB2cmF0aW9fbCAqIGRtbF9wb3coMiwgMikpOworCUFTU0VSVChkaXNwX2RsZ19yZWdzLT5kc3RfeV9wZXJfbWV0YV9yb3dfbm9tX2wgPCAodW5zaWduZWQgaW50KWRtbF9wb3coMiwgMTcpKTsKKworCWRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9tZXRhX3Jvd19ub21fYyA9IGRpc3BfZGxnX3JlZ3MtPmRzdF95X3Blcl9tZXRhX3Jvd19ub21fbDsgLy8gVE9ETzogZGNjIGZvciA0OjI6MCBpcyBub3Qgc3VwcG9ydGVkIGluIGRjbjEuMC4gIGFzc2lnbmVkIHRvIGJlIHRoZSBzYW1lIGFzIF9sIGZvciBub3cKKworCWRtbF9wcmludCgKKwkJCSJETUw6IFRyb3c6ICVmdXNcbiIsCisJCQlsaW5lX3RpbWVfaW5fdXMgKiAoZG91YmxlKWRwdGVfcm93X2hlaWdodF9sIC8gKGRvdWJsZSl2cmF0aW9fbCk7CisKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9ub21fbCA9ICh1bnNpZ25lZCBpbnQpICgoZG91YmxlKSBkcHRlX3Jvd19oZWlnaHRfbAorCQkJLyAoZG91YmxlKSB2cmF0aW9fbCAqIChkb3VibGUpIGh0b3RhbCAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxCisJCQkvIChkb3VibGUpIGRwdGVfZ3JvdXBzX3Blcl9yb3dfdWJfbCk7CisJaWYgKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX25vbV9sID49ICh1bnNpZ25lZCBpbnQpIGRtbF9wb3coMiwgMjMpKQorCQlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9ub21fbCA9IGRtbF9wb3coMiwgMjMpIC0gMTsKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2wgPSAodW5zaWduZWQgaW50KSAoKGRvdWJsZSkgbWV0YV9yb3dfaGVpZ2h0X2wKKwkJCS8gKGRvdWJsZSkgdnJhdGlvX2wgKiAoZG91YmxlKSBodG90YWwgKiByZWZfZnJlcV90b19waXhfZnJlcQorCQkJLyAoZG91YmxlKSBtZXRhX2NodW5rc19wZXJfcm93X3ViX2wpOworCWlmIChkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2wgPj0gKHVuc2lnbmVkIGludCkgZG1sX3BvdygyLCAyMykpCisJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fbCA9IGRtbF9wb3coMiwgMjMpIC0gMTsKKworCWlmIChkdWFsX3BsYW5lKSB7CisJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfcHRlX2dyb3VwX25vbV9jID0KKwkJCQkodW5zaWduZWQgaW50KSAoKGRvdWJsZSkgZHB0ZV9yb3dfaGVpZ2h0X2MgLyAoZG91YmxlKSB2cmF0aW9fYworCQkJCQkJKiAoZG91YmxlKSBodG90YWwgKiByZWZfZnJlcV90b19waXhfZnJlcQorCQkJCQkJLyAoZG91YmxlKSBkcHRlX2dyb3Vwc19wZXJfcm93X3ViX2MpOworCQlpZiAoZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2MgPj0gKHVuc2lnbmVkIGludCkgZG1sX3BvdygyLCAyMykpCisJCQlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9ub21fYyA9IGRtbF9wb3coMiwgMjMpIC0gMTsKKworCQkvLyBUT0RPOiBJcyB0aGlzIHRoZSByaWdodCBjYWxjdWxhdGlvbj8gRG9lcyBodG90YWwgbmVlZCB0byBiZSBoYWx2ZWQ/CisJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fYyA9CisJCQkJKHVuc2lnbmVkIGludCkgKChkb3VibGUpIG1ldGFfcm93X2hlaWdodF9jIC8gKGRvdWJsZSkgdnJhdGlvX2MKKwkJCQkJCSogKGRvdWJsZSkgaHRvdGFsICogcmVmX2ZyZXFfdG9fcGl4X2ZyZXEKKwkJCQkJCS8gKGRvdWJsZSkgbWV0YV9jaHVua3NfcGVyX3Jvd191Yl9jKTsKKwkJaWYgKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fYyA+PSAodW5zaWduZWQgaW50KSBkbWxfcG93KDIsIDIzKSkKKwkJCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fYyA9IGRtbF9wb3coMiwgMjMpIC0gMTsKKwl9CisKKwlkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2wgPSAodW5zaWduZWQgaW50KSBkbWxfZmxvb3IoCisJCQlyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2wsIDEpOworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9sID0gKHVuc2lnbmVkIGludCkgZG1sX2Zsb29yKAorCQkJcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2wsIDEpOworCUFTU0VSVChkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2wgPCAodW5zaWduZWQgaW50KWRtbF9wb3coMiwgMTMpKTsKKwlBU1NFUlQoZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2wgPCAodW5zaWduZWQgaW50KWRtbF9wb3coMiwgMTMpKTsKKworCWRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYyA9ICh1bnNpZ25lZCBpbnQpIGRtbF9mbG9vcigKKwkJCXJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYywgMSk7CisJZGlzcF9kbGdfcmVncy0+cmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2MgPSAodW5zaWduZWQgaW50KSBkbWxfZmxvb3IoCisJCQlyZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYywgMSk7CisJQVNTRVJUKGRpc3BfZGxnX3JlZ3MtPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYyA8ICh1bnNpZ25lZCBpbnQpZG1sX3BvdygyLCAxMykpOworCUFTU0VSVChkaXNwX2RsZ19yZWdzLT5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYyA8ICh1bnNpZ25lZCBpbnQpZG1sX3BvdygyLCAxMykpOworCisJZGlzcF9kbGdfcmVncy0+Y2h1bmtfaGRsX2FkanVzdF9jdXIwID0gMzsKKwlkaXNwX2RsZ19yZWdzLT5kc3RfeV9vZmZzZXRfY3VyMCA9IDA7CisJZGlzcF9kbGdfcmVncy0+Y2h1bmtfaGRsX2FkanVzdF9jdXIxID0gMzsKKwlkaXNwX2RsZ19yZWdzLT5kc3RfeV9vZmZzZXRfY3VyMSA9IDA7CisKKwlkaXNwX2RsZ19yZWdzLT54ZmNfcmVnX3RyYW5zZmVyX2RlbGF5ID0geGZjX3RyYW5zZmVyX2RlbGF5OworCWRpc3BfZGxnX3JlZ3MtPnhmY19yZWdfcHJlY2hhcmdlX2RlbGF5ID0geGZjX3ByZWNoYXJnZV9kZWxheTsKKwlkaXNwX2RsZ19yZWdzLT54ZmNfcmVnX3JlbW90ZV9zdXJmYWNlX2ZsaXBfbGF0ZW5jeSA9IHhmY19yZW1vdGVfc3VyZmFjZV9mbGlwX2xhdGVuY3k7CisJZGlzcF9kbGdfcmVncy0+eGZjX3JlZ19wcmVmZXRjaF9tYXJnaW4gPSBkbWxfY2VpbCgKKwkJCXhmY19wcmVmZXRjaF9tYXJnaW4gKiByZWZjbGtfZnJlcV9pbl9taHosIDEpOworCisJLy8gc2xhdmUgaGFzIHRvIGhhdmUgdGhpcyB2YWx1ZSBhbHNvIHNldCB0byBvZmYKKwlpZiAoc3JjLT54ZmNfZW5hYmxlICYmICFzcmMtPnhmY19zbGF2ZSkKKwkJZGlzcF9kbGdfcmVncy0+ZHN0X3lfZGVsdGFfZHJxX2xpbWl0ID0gZG1sX2NlaWwoeGZjX2RzdF95X2RlbHRhX2RycV9saW1pdCwgMSk7CisJZWxzZQorCQlkaXNwX2RsZ19yZWdzLT5kc3RfeV9kZWx0YV9kcnFfbGltaXQgPSAweDdmZmY7IC8vIG9mZgorCisJZGlzcF90dHVfcmVncy0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2wgPSAodW5zaWduZWQgaW50KSAocmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2wKKwkJCSogZG1sX3BvdygyLCAxMCkpOworCWRpc3BfdHR1X3JlZ3MtPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2wgPSAodW5zaWduZWQgaW50KSAocmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbAorCQkJKiBkbWxfcG93KDIsIDEwKSk7CisJZGlzcF90dHVfcmVncy0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2MgPSAodW5zaWduZWQgaW50KSAocmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2MKKwkJCSogZG1sX3BvdygyLCAxMCkpOworCWRpc3BfdHR1X3JlZ3MtPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2MgPSAodW5zaWduZWQgaW50KSAocmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfYworCQkJKiBkbWxfcG93KDIsIDEwKSk7CisJZGlzcF90dHVfcmVncy0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjAgPQorCQkJKHVuc2lnbmVkIGludCkgKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIwICogZG1sX3BvdygyLCAxMCkpOworCWRpc3BfdHR1X3JlZ3MtPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1cjAgPSAodW5zaWduZWQgaW50KSAocmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMAorCQkJKiBkbWxfcG93KDIsIDEwKSk7CisJZGlzcF90dHVfcmVncy0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjEgPQorCQkJKHVuc2lnbmVkIGludCkgKHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIxICogZG1sX3BvdygyLCAxMCkpOworCWRpc3BfdHR1X3JlZ3MtPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1cjEgPSAodW5zaWduZWQgaW50KSAocmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMQorCQkJKiBkbWxfcG93KDIsIDEwKSk7CisJZGlzcF90dHVfcmVncy0+cW9zX2xldmVsX2xvd193bSA9IDA7CisJQVNTRVJUKGRpc3BfdHR1X3JlZ3MtPnFvc19sZXZlbF9sb3dfd20gPCBkbWxfcG93KDIsIDE0KSk7CisJZGlzcF90dHVfcmVncy0+cW9zX2xldmVsX2hpZ2hfd20gPSAodW5zaWduZWQgaW50KSAoNC4wICogKGRvdWJsZSkgaHRvdGFsCisJCQkqIHJlZl9mcmVxX3RvX3BpeF9mcmVxKTsKKwlBU1NFUlQoZGlzcF90dHVfcmVncy0+cW9zX2xldmVsX2hpZ2hfd20gPCBkbWxfcG93KDIsIDE0KSk7CisKKwlkaXNwX3R0dV9yZWdzLT5xb3NfbGV2ZWxfZmxpcCA9IDE0OworCWRpc3BfdHR1X3JlZ3MtPnFvc19sZXZlbF9maXhlZF9sID0gODsKKwlkaXNwX3R0dV9yZWdzLT5xb3NfbGV2ZWxfZml4ZWRfYyA9IDg7CisJZGlzcF90dHVfcmVncy0+cW9zX2xldmVsX2ZpeGVkX2N1cjAgPSA4OworCWRpc3BfdHR1X3JlZ3MtPnFvc19yYW1wX2Rpc2FibGVfbCA9IDA7CisJZGlzcF90dHVfcmVncy0+cW9zX3JhbXBfZGlzYWJsZV9jID0gMDsKKwlkaXNwX3R0dV9yZWdzLT5xb3NfcmFtcF9kaXNhYmxlX2N1cjAgPSAwOworCisJZGlzcF90dHVfcmVncy0+bWluX3R0dV92YmxhbmsgPSBtaW5fdHR1X3ZibGFuayAqIHJlZmNsa19mcmVxX2luX21oejsKKwlBU1NFUlQoZGlzcF90dHVfcmVncy0+bWluX3R0dV92YmxhbmsgPCBkbWxfcG93KDIsIDI0KSk7CisKKwlwcmludF9fdHR1X3JlZ3Nfc3QobW9kZV9saWIsICpkaXNwX3R0dV9yZWdzKTsKKwlwcmludF9fZGxnX3JlZ3Nfc3QobW9kZV9saWIsICpkaXNwX2RsZ19yZWdzKTsKK30KKwordm9pZCBkbWwyMV9ycV9kbGdfZ2V0X2RsZ19yZWcoCisJCXN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKKwkJZGlzcGxheV9kbGdfcmVnc19zdCAqZGxnX3JlZ3MsCisJCWRpc3BsYXlfdHR1X3JlZ3Nfc3QgKnR0dV9yZWdzLAorCQlkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqZTJlX3BpcGVfcGFyYW0sCisJCWNvbnN0IHVuc2lnbmVkIGludCBudW1fcGlwZXMsCisJCWNvbnN0IHVuc2lnbmVkIGludCBwaXBlX2lkeCwKKwkJY29uc3QgYm9vbCBjc3RhdGVfZW4sCisJCWNvbnN0IGJvb2wgcHN0YXRlX2VuLAorCQljb25zdCBib29sIHZtX2VuLAorCQljb25zdCBib29sIGlnbm9yZV92aWV3cG9ydF9wb3MsCisJCWNvbnN0IGJvb2wgaW1tZWRpYXRlX2ZsaXBfc3VwcG9ydCkKK3sKKwlkaXNwbGF5X3JxX3BhcmFtc19zdCBycV9wYXJhbSA9IHswfTsKKwlkaXNwbGF5X2RsZ19zeXNfcGFyYW1zX3N0IGRsZ19zeXNfcGFyYW0gPSB7MH07CisKKwkvLyBHZXQgd2F0ZXJtYXJrIGFuZCBUZXguCisJZGxnX3N5c19wYXJhbS50X3VyZ193bV91cyA9IGdldF93bV91cmdlbnQobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMpOworCWRsZ19zeXNfcGFyYW0uZGVlcHNsZWVwX2RjZmNsa19taHogPSBnZXRfY2xrX2RjZl9kZWVwc2xlZXAoCisJCQltb2RlX2xpYiwKKwkJCWUyZV9waXBlX3BhcmFtLAorCQkJbnVtX3BpcGVzKTsKKwlkbGdfc3lzX3BhcmFtLnRfZXh0cmFfdXMgPSBnZXRfdXJnZW50X2V4dHJhX2xhdGVuY3kobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMpOworCWRsZ19zeXNfcGFyYW0ubWVtX3RyaXBfdXMgPSBnZXRfd21fbWVtb3J5X3RyaXAobW9kZV9saWIsIGUyZV9waXBlX3BhcmFtLCBudW1fcGlwZXMpOworCWRsZ19zeXNfcGFyYW0udF9tY2xrX3dtX3VzID0gZ2V0X3dtX2RyYW1fY2xvY2tfY2hhbmdlKG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzKTsKKwlkbGdfc3lzX3BhcmFtLnRfc3Jfd21fdXMgPSBnZXRfd21fc3R1dHRlcl9lbnRlcl9leGl0KG1vZGVfbGliLCBlMmVfcGlwZV9wYXJhbSwgbnVtX3BpcGVzKTsKKwlkbGdfc3lzX3BhcmFtLnRvdGFsX2ZsaXBfYncgPSBnZXRfdG90YWxfaW1tZWRpYXRlX2ZsaXBfYncoCisJCQltb2RlX2xpYiwKKwkJCWUyZV9waXBlX3BhcmFtLAorCQkJbnVtX3BpcGVzKTsKKwlkbGdfc3lzX3BhcmFtLnRvdGFsX2ZsaXBfYnl0ZXMgPSBnZXRfdG90YWxfaW1tZWRpYXRlX2ZsaXBfYnl0ZXMoCisJCQltb2RlX2xpYiwKKwkJCWUyZV9waXBlX3BhcmFtLAorCQkJbnVtX3BpcGVzKTsKKwlkbGdfc3lzX3BhcmFtLnRfc3J4X2RlbGF5X3VzID0gbW9kZV9saWItPmlwLmRjZmNsa19jc3RhdGVfbGF0ZW5jeQorCQkJLyBkbGdfc3lzX3BhcmFtLmRlZXBzbGVlcF9kY2ZjbGtfbWh6OyAvLyBUT0RPOiBEZXByZWNhdGVkCisKKwlwcmludF9fZGxnX3N5c19wYXJhbXNfc3QobW9kZV9saWIsIGRsZ19zeXNfcGFyYW0pOworCisJLy8gc3lzdGVtIHBhcmFtZXRlciBjYWxjdWxhdGlvbiBkb25lCisKKwlkbWxfcHJpbnQoIkRNTF9ETEc6IENhbGN1bGF0aW9uIGZvciBwaXBlWyVkXSBzdGFydFxuXG4iLCBwaXBlX2lkeCk7CisJZG1sX3JxX2RsZ19nZXRfcnFfcGFyYW1zKG1vZGVfbGliLCAmcnFfcGFyYW0sIGUyZV9waXBlX3BhcmFtW3BpcGVfaWR4XS5waXBlKTsKKwlkbWxfcnFfZGxnX2dldF9kbGdfcGFyYW1zKAorCQkJbW9kZV9saWIsCisJCQllMmVfcGlwZV9wYXJhbSwKKwkJCW51bV9waXBlcywKKwkJCXBpcGVfaWR4LAorCQkJZGxnX3JlZ3MsCisJCQl0dHVfcmVncywKKwkJCXJxX3BhcmFtLmRsZywKKwkJCWRsZ19zeXNfcGFyYW0sCisJCQljc3RhdGVfZW4sCisJCQlwc3RhdGVfZW4pOworCWRtbF9wcmludCgiRE1MX0RMRzogQ2FsY3VsYXRpb24gZm9yIHBpcGVbJWRdIGVuZFxuIiwgcGlwZV9pZHgpOworfQorCit2b2lkIGRtbF9ycV9kbGdfZ2V0X2FyYl9wYXJhbXMoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBkaXNwbGF5X2FyYl9wYXJhbXNfc3QgKmFyYl9wYXJhbSkKK3sKKwltZW1zZXQoYXJiX3BhcmFtLCAwLCBzaXplb2YoKmFyYl9wYXJhbSkpOworCWFyYl9wYXJhbS0+bWF4X3JlcV9vdXRzdGFuZGluZyA9IDI1NjsKKwlhcmJfcGFyYW0tPm1pbl9yZXFfb3V0c3RhbmRpbmcgPSA2ODsKKwlhcmJfcGFyYW0tPnNhdF9sZXZlbF91cyA9IDYwOworfQorCitzdGF0aWMgdm9pZCBjYWxjdWxhdGVfdHR1X2N1cnNvcigKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkb3VibGUgKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIsCisJCWRvdWJsZSAqcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyLAorCQlkb3VibGUgcmVmY2xrX2ZyZXFfaW5fbWh6LAorCQlkb3VibGUgcmVmX2ZyZXFfdG9fcGl4X2ZyZXEsCisJCWRvdWJsZSBoc2NhbGVfcGl4ZWxfcmF0ZV9sLAorCQlkb3VibGUgaHNjbF9yYXRpbywKKwkJZG91YmxlIHZyYXRpb19wcmVfbCwKKwkJZG91YmxlIHZyYXRpb19sLAorCQl1bnNpZ25lZCBpbnQgY3VyX3dpZHRoLAorCQllbnVtIGN1cnNvcl9icHAgY3VyX2JwcCkKK3sKKwl1bnNpZ25lZCBpbnQgY3VyX3NyY193aWR0aCA9IGN1cl93aWR0aDsKKwl1bnNpZ25lZCBpbnQgY3VyX3JlcV9zaXplID0gMDsKKwl1bnNpZ25lZCBpbnQgY3VyX3JlcV93aWR0aCA9IDA7CisJZG91YmxlIGN1cl93aWR0aF91YiA9IDAuMDsKKwlkb3VibGUgY3VyX3JlcV9wZXJfd2lkdGggPSAwLjA7CisJZG91YmxlIGhhY3RpdmVfY3VyID0gMC4wOworCisJQVNTRVJUKGN1cl9zcmNfd2lkdGggPD0gMjU2KTsKKworCSpyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyID0gMC4wOworCSpyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIgPSAwLjA7CisJaWYgKGN1cl9zcmNfd2lkdGggPiAwKSB7CisJCXVuc2lnbmVkIGludCBjdXJfYml0X3Blcl9waXhlbCA9IDA7CisKKwkJaWYgKGN1cl9icHAgPT0gZG1fY3VyXzJiaXQpIHsKKwkJCWN1cl9yZXFfc2l6ZSA9IDY0OyAvLyBieXRlCisJCQljdXJfYml0X3Blcl9waXhlbCA9IDI7CisJCX0gZWxzZSB7IC8vIDMyYml0CisJCQljdXJfYml0X3Blcl9waXhlbCA9IDMyOworCQkJaWYgKGN1cl9zcmNfd2lkdGggPj0gMSAmJiBjdXJfc3JjX3dpZHRoIDw9IDE2KQorCQkJCWN1cl9yZXFfc2l6ZSA9IDY0OworCQkJZWxzZSBpZiAoY3VyX3NyY193aWR0aCA+PSAxNyAmJiBjdXJfc3JjX3dpZHRoIDw9IDMxKQorCQkJCWN1cl9yZXFfc2l6ZSA9IDEyODsKKwkJCWVsc2UKKwkJCQljdXJfcmVxX3NpemUgPSAyNTY7CisJCX0KKworCQljdXJfcmVxX3dpZHRoID0gKGRvdWJsZSkgY3VyX3JlcV9zaXplIC8gKChkb3VibGUpIGN1cl9iaXRfcGVyX3BpeGVsIC8gOC4wKTsKKwkJY3VyX3dpZHRoX3ViID0gZG1sX2NlaWwoKGRvdWJsZSkgY3VyX3NyY193aWR0aCAvIChkb3VibGUpIGN1cl9yZXFfd2lkdGgsIDEpCisJCQkJKiAoZG91YmxlKSBjdXJfcmVxX3dpZHRoOworCQljdXJfcmVxX3Blcl93aWR0aCA9IGN1cl93aWR0aF91YiAvIChkb3VibGUpIGN1cl9yZXFfd2lkdGg7CisJCWhhY3RpdmVfY3VyID0gKGRvdWJsZSkgY3VyX3NyY193aWR0aCAvIGhzY2xfcmF0aW87IC8vIEZJWE1FOiBvc3dpbiB0byB0aGluayBhYm91dCB3aGF0IHRvIGRvIGZvciBjdXJzb3IKKworCQlpZiAodnJhdGlvX3ByZV9sIDw9IDEuMCkgeworCQkJKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIgPSBoYWN0aXZlX2N1ciAqIHJlZl9mcmVxX3RvX3BpeF9mcmVxCisJCQkJCS8gKGRvdWJsZSkgY3VyX3JlcV9wZXJfd2lkdGg7CisJCX0gZWxzZSB7CisJCQkqcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1ciA9IChkb3VibGUpIHJlZmNsa19mcmVxX2luX21oegorCQkJCQkqIChkb3VibGUpIGN1cl9zcmNfd2lkdGggLyBoc2NhbGVfcGl4ZWxfcmF0ZV9sCisJCQkJCS8gKGRvdWJsZSkgY3VyX3JlcV9wZXJfd2lkdGg7CisJCX0KKworCQlBU1NFUlQoKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIgPCBkbWxfcG93KDIsIDEzKSk7CisKKwkJaWYgKHZyYXRpb19sIDw9IDEuMCkgeworCQkJKnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1ciA9IGhhY3RpdmVfY3VyICogcmVmX2ZyZXFfdG9fcGl4X2ZyZXEKKwkJCQkJLyAoZG91YmxlKSBjdXJfcmVxX3Blcl93aWR0aDsKKwkJfSBlbHNlIHsKKwkJCSpyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIgPSAoZG91YmxlKSByZWZjbGtfZnJlcV9pbl9taHoKKwkJCQkJKiAoZG91YmxlKSBjdXJfc3JjX3dpZHRoIC8gaHNjYWxlX3BpeGVsX3JhdGVfbAorCQkJCQkvIChkb3VibGUpIGN1cl9yZXFfcGVyX3dpZHRoOworCQl9CisKKwkJZG1sX3ByaW50KAorCQkJCSJETUxfRExHOiAlczogY3VyX3JlcV93aWR0aCAgICAgICAgICAgICAgICAgICAgID0gJWRcbiIsCisJCQkJX19mdW5jX18sCisJCQkJY3VyX3JlcV93aWR0aCk7CisJCWRtbF9wcmludCgKKwkJCQkiRE1MX0RMRzogJXM6IGN1cl93aWR0aF91YiAgICAgICAgICAgICAgICAgICAgICA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCWN1cl93aWR0aF91Yik7CisJCWRtbF9wcmludCgKKwkJCQkiRE1MX0RMRzogJXM6IGN1cl9yZXFfcGVyX3dpZHRoICAgICAgICAgICAgICAgICA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCWN1cl9yZXFfcGVyX3dpZHRoKTsKKwkJZG1sX3ByaW50KAorCQkJCSJETUxfRExHOiAlczogaGFjdGl2ZV9jdXIgICAgICAgICAgICAgICAgICAgICAgID0gJTMuMmZcbiIsCisJCQkJX19mdW5jX18sCisJCQkJaGFjdGl2ZV9jdXIpOworCQlkbWxfcHJpbnQoCisJCQkJIkRNTF9ETEc6ICVzOiByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyICAgPSAlMy4yZlxuIiwKKwkJCQlfX2Z1bmNfXywKKwkJCQkqcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cik7CisJCWRtbF9wcmludCgKKwkJCQkiRE1MX0RMRzogJXM6IHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1ciAgICAgICA9ICUzLjJmXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCSpyZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIpOworCisJCUFTU0VSVCgqcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyIDwgZG1sX3BvdygyLCAxMykpOworCX0KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjIxL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjEuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMjEvZGlzcGxheV9ycV9kbGdfY2FsY18yMS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZTk1ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjIxL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjEuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IDIwMTcgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6IEFNRAorICoKKyAqLworCisjaWZuZGVmIF9fRE1MMjFfRElTUExBWV9SUV9ETEdfQ0FMQ19IX18KKyNkZWZpbmUgX19ETUwyMV9ESVNQTEFZX1JRX0RMR19DQUxDX0hfXworCisjaW5jbHVkZSAiLi4vZG1sX2NvbW1vbl9kZWZzLmgiCisjaW5jbHVkZSAiLi4vZGlzcGxheV9ycV9kbGdfaGVscGVycy5oIgorCitzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYjsKKworCisvLyBGdW5jdGlvbjogZG1sX3JxX2RsZ19nZXRfcnFfcmVnCisvLyAgTWFpbiBlbnRyeSBwb2ludCBmb3IgdGVzdCB0byBnZXQgdGhlIHJlZ2lzdGVyIHZhbHVlcyBvdXQgb2YgdGhpcyBETUwgY2xhc3MuCisvLyAgVGhpcyBmdW5jdGlvbiBjYWxscyA8Z2V0X3JxX3BhcmFtPiBhbmQgPGV4dHJhY3RfcnFfcmVncz4gZnVuY3Rpb25zIHRvIGNhbGN1bGF0ZQorLy8gIGFuZCB0aGVuIHBvcHVsYXRlIHRoZSBycV9yZWdzIHN0cnVjdAorLy8gSW5wdXQ6CisvLyAgcGlwZV9zcmNfcGFyYW0gLSBwaXBlIHNvdXJjZSBjb25maWd1cmF0aW9uIChlLmcuIHZwLCBwaXRjaCwgZXRjLikKKy8vIE91dHB1dDoKKy8vICBycV9yZWdzIC0gc3RydWN0IHRoYXQgaG9sZHMgYWxsIHRoZSBSUSByZWdpc3RlcnMgZmllbGQgdmFsdWUuCisvLyAgICAgICAgICAgIFNlZSBhbHNvOiA8ZGlzcGxheV9ycV9yZWdzX3N0Pgordm9pZCBkbWwyMV9ycV9kbGdfZ2V0X3JxX3JlZygKKwkJc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLAorCQlkaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3JlZ3MsCisJCWNvbnN0IGRpc3BsYXlfcGlwZV9wYXJhbXNfc3QgcGlwZV9wYXJhbSk7CisKKy8vIEZ1bmN0aW9uOiBkbWxfcnFfZGxnX2dldF9kbGdfcmVnCisvLyAgIENhbGN1bGF0ZSBhbmQgcmV0dXJuIERMRyBhbmQgVFRVIHJlZ2lzdGVyIHN0cnVjdCBnaXZlbiB0aGUgc3lzdGVtIHNldHRpbmcKKy8vIE91dHB1dDoKKy8vICBkbGdfcmVncyAtIG91dHB1dCBETEcgcmVnaXN0ZXIgc3RydWN0CisvLyAgdHR1X3JlZ3MgLSBvdXRwdXQgRExHIFRUVSByZWdpc3RlciBzdHJ1Y3QKKy8vIElucHV0OgorLy8gIGUyZV9waXBlX3BhcmFtIC0gImNvbXBhY3RlZCIgYXJyYXkgb2YgZTJlIHBpcGUgcGFyYW0gc3RydWN0CisvLyAgbnVtX3BpcGVzIC0gbnVtIG9mIGFjdGl2ZSAicGlwZSIgb3IgInJvdXRlIgorLy8gIHBpcGVfaWR4IC0gaW5kZXggdGhhdCBpZGVudGlmaWVzIHRoZSBlMmVfcGlwZV9wYXJhbSB0aGF0IGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBkbGcKKy8vICBjc3RhdGUgLSAwOiB3aGVuIGNhbGN1bGF0ZSBtaW5fdHR1X3ZibGFuayBpdCBpcyBhc3N1bWVkIGNzdGF0ZSBpcyBub3QgcmVxdWlyZWQuIDE6IE5vcm1hbCBtb2RlLCBjc3RhdGUgaXMgY29uc2lkZXJlZC4KKy8vICAgICAgICAgICBBZGRlZCBmb3IgbGVnYWN5IG9yIHVucmVhbGlzdGljIHRpbWluZyB0ZXN0cy4KK3ZvaWQgZG1sMjFfcnFfZGxnX2dldF9kbGdfcmVnKAorCQlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCisJCWRpc3BsYXlfZGxnX3JlZ3Nfc3QgKmRsZ19yZWdzLAorCQlkaXNwbGF5X3R0dV9yZWdzX3N0ICp0dHVfcmVncywKKwkJZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKmUyZV9waXBlX3BhcmFtLAorCQljb25zdCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLAorCQljb25zdCB1bnNpZ25lZCBpbnQgcGlwZV9pZHgsCisJCWNvbnN0IGJvb2wgY3N0YXRlX2VuLAorCQljb25zdCBib29sIHBzdGF0ZV9lbiwKKwkJY29uc3QgYm9vbCB2bV9lbiwKKwkJY29uc3QgYm9vbCBpZ25vcmVfdmlld3BvcnRfcG9zLAorCQljb25zdCBib29sIGltbWVkaWF0ZV9mbGlwX3N1cHBvcnQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX2VudW1zLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2Rpc3BsYXlfbW9kZV9lbnVtcy5oCmluZGV4IDBjMmZhYjEuLjFjOTcwODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX2VudW1zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfZW51bXMuaApAQCAtMzcsMTEgKzM3LDE0IEBAIGVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyB7CiAJZG1fNDQ0XzY0ID0gMiwKIAlkbV80MjBfOCA9IDMsCiAJZG1fNDIwXzEwID0gNCwKLQlkbV80MjJfOCA9IDUsCi0JZG1fNDIyXzEwID0gNiwKLQlkbV80NDRfOCA9IDcsCisJZG1fNDIwXzEyID0gNSwKKwlkbV80MjJfOCA9IDYsCisJZG1fNDIyXzEwID0gNywKKwlkbV80NDRfOCA9IDgsCiAJZG1fbW9ub184ID0gZG1fNDQ0XzgsCi0JZG1fbW9ub18xNiA9IGRtXzQ0NF8xNgorCWRtX21vbm9fMTYgPSBkbV80NDRfMTYsCisJZG1fcmdiZSA9IDksCisJZG1fcmdiZV9hbHBoYSA9IDEwLAogfTsKIGVudW0gb3V0cHV0X2JwY19jbGFzcyB7CiAJZG1fb3V0XzYgPSAwLCBkbV9vdXRfOCA9IDEsIGRtX291dF8xMCA9IDIsIGRtX291dF8xMiA9IDMsIGRtX291dF8xNiA9IDQKQEAgLTgzLDcgKzg2LDcgQEAgZW51bSBkbV9zd2l6emxlX21vZGUgewogCWRtX3N3X3Zhcl9kX3ggPSAzMCwKIAlkbV9zd182NGtiX3JfeCwKIAlkbV9zd19nZng3XzJkX3RoaW5fbHZwLAotCWRtX3N3X2dmeDdfMmRfdGhpbl9nbAorCWRtX3N3X2dmeDdfMmRfdGhpbl9nbCwKIH07CiBlbnVtIGxiX2RlcHRoIHsKIAlkbV9sYl8xMCA9IDAsIGRtX2xiXzggPSAxLCBkbV9sYl82ID0gMiwgZG1fbGJfMTIgPSAzLCBkbV9sYl8xNiA9IDQsCkBAIC0xMTIsNyArMTE1LDggQEAgZW51bSBvdXRwdXRfc3RhbmRhcmQgewogZW51bSBtcGNfY29tYmluZV9hZmZpbml0eSB7CiAJZG1fbXBjX2Fsd2F5c193aGVuX3Bvc3NpYmxlLAogCWRtX21wY19yZWR1Y2Vfdm9sdGFnZSwKLQlkbV9tcGNfcmVkdWNlX3ZvbHRhZ2VfYW5kX2Nsb2NrcworCWRtX21wY19yZWR1Y2Vfdm9sdGFnZV9hbmRfY2xvY2tzLAorCWRtX21wY19uZXZlcgogfTsKIAogZW51bSBzZWxmX3JlZnJlc2hfYWZmaW5pdHkgewpAQCAtMTU3LDQgKzE2MSwxMCBAQCBlbnVtIHdyaXRlYmFja19jb25maWcgewogCWRtX3dob2xlX2J1ZmZlcl9mb3Jfc2luZ2xlX3N0cmVhbV9pbnRlcmxlYXZlLAogfTsKIAorZW51bSBvZG1fY29tYmluZV9tb2RlIHsKKwlkbV9vZG1fY29tYmluZV9tb2RlX2Rpc2FibGVkLAorCWRtX29kbV9jb21iaW5lX21vZGVfMnRvMSwKKwlkbV9vZG1fY29tYmluZV9tb2RlXzR0bzEsCit9OworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX2xpYi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmMKaW5kZXggOTE4MTBjNy4uNzA0ZWZlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmMKQEAgLTI4LDYgKzI4LDEyIEBACiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCiAjaW5jbHVkZSAiZGNuMjAvZGlzcGxheV9tb2RlX3ZiYV8yMC5oIgogI2luY2x1ZGUgImRjbjIwL2Rpc3BsYXlfcnFfZGxnX2NhbGNfMjAuaCIKKyNpbmNsdWRlICJkY24yMC9kaXNwbGF5X21vZGVfdmJhXzIwdjIuaCIKKyNpbmNsdWRlICJkY24yMC9kaXNwbGF5X3JxX2RsZ19jYWxjXzIwdjIuaCIKKyNlbmRpZgorI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMQorI2luY2x1ZGUgImRjbjIxL2Rpc3BsYXlfbW9kZV92YmFfMjEuaCIKKyNpbmNsdWRlICJkY24yMS9kaXNwbGF5X3JxX2RsZ19jYWxjXzIxLmgiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQpAQCAtMzcsNiArNDMsMjIgQEAgY29uc3Qgc3RydWN0IGRtbF9mdW5jcyBkbWwyMF9mdW5jcyA9IHsKIAkucnFfZGxnX2dldF9kbGdfcmVnID0gZG1sMjBfcnFfZGxnX2dldF9kbGdfcmVnLAogCS5ycV9kbGdfZ2V0X3JxX3JlZyA9IGRtbDIwX3JxX2RsZ19nZXRfcnFfcmVnCiB9OworCitjb25zdCBzdHJ1Y3QgZG1sX2Z1bmNzIGRtbDIwdjJfZnVuY3MgPSB7CisJLnZhbGlkYXRlID0gZG1sMjB2Ml9Nb2RlU3VwcG9ydEFuZFN5c3RlbUNvbmZpZ3VyYXRpb25GdWxsLAorCS5yZWNhbGN1bGF0ZSA9IGRtbDIwdjJfcmVjYWxjdWxhdGUsCisJLnJxX2RsZ19nZXRfZGxnX3JlZyA9IGRtbDIwdjJfcnFfZGxnX2dldF9kbGdfcmVnLAorCS5ycV9kbGdfZ2V0X3JxX3JlZyA9IGRtbDIwdjJfcnFfZGxnX2dldF9ycV9yZWcKK307CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMQorY29uc3Qgc3RydWN0IGRtbF9mdW5jcyBkbWwyMV9mdW5jcyA9IHsKKyAgICAgICAgLnZhbGlkYXRlID0gZG1sMjFfTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25maWd1cmF0aW9uRnVsbCwKKyAgICAgICAgLnJlY2FsY3VsYXRlID0gZG1sMjFfcmVjYWxjdWxhdGUsCisgICAgICAgIC5ycV9kbGdfZ2V0X2RsZ19yZWcgPSBkbWwyMV9ycV9kbGdfZ2V0X2RsZ19yZWcsCisgICAgICAgIC5ycV9kbGdfZ2V0X3JxX3JlZyA9IGRtbDIxX3JxX2RsZ19nZXRfcnFfcmVnCit9OwogI2VuZGlmCiAKIHZvaWQgZG1sX2luaXRfaW5zdGFuY2Uoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKmxpYiwKQEAgLTUyLDcgKzc0LDE2IEBAIHZvaWQgZG1sX2luaXRfaW5zdGFuY2Uoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKmxpYiwKIAljYXNlIERNTF9QUk9KRUNUX05BVkkxMDoKIAkJbGliLT5mdW5jcyA9IGRtbDIwX2Z1bmNzOwogCQlicmVhazsKKwljYXNlIERNTF9QUk9KRUNUX05BVkkxMHYyOgorCQlsaWItPmZ1bmNzID0gZG1sMjB2Ml9mdW5jczsKKwkJYnJlYWs7CiAjZW5kaWYKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEKKyAgICAgICAgY2FzZSBETUxfUFJPSkVDVF9EQ04yMToKKyAgICAgICAgICAgICAgICBsaWItPmZ1bmNzID0gZG1sMjFfZnVuY3M7CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKwogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX2xpYi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmgKaW5kZXggNWJmMTNkNi4uZDhjNTlhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmgKQEAgLTM2LDYgKzM2LDEwIEBAIGVudW0gZG1sX3Byb2plY3QgewogCURNTF9QUk9KRUNUX1JBVkVOMSwKICNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzAKIAlETUxfUFJPSkVDVF9OQVZJMTAsCisJRE1MX1BST0pFQ1RfTkFWSTEwdjIsCisjZW5kaWYKKyNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEKKwlETUxfUFJPSkVDVF9EQ04yMSwKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfc3RydWN0cy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfc3RydWN0cy5oCmluZGV4IDU2Nzg0NzIuLmY0YzFlZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3N0cnVjdHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2Rpc3BsYXlfbW9kZV9zdHJ1Y3RzLmgKQEAgLTEwMCw2ICsxMDAsNyBAQCBzdHJ1Y3QgX3Zjc19kcGlfc29jX2JvdW5kaW5nX2JveF9zdCB7CiAJdW5zaWduZWQgaW50IHZtbV9wYWdlX3NpemVfYnl0ZXM7CiAJdW5zaWduZWQgaW50IGhvc3R2bV9taW5fcGFnZV9zaXplX2J5dGVzOwogCWRvdWJsZSBkcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzOworCWRvdWJsZSBkdW1teV9wc3RhdGVfbGF0ZW5jeV91czsKIAlkb3VibGUgd3JpdGViYWNrX2RyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3lfdXM7CiAJdW5zaWduZWQgaW50IHJldHVybl9idXNfd2lkdGhfYnl0ZXM7CiAJdW5zaWduZWQgaW50IHZvbHRhZ2Vfb3ZlcnJpZGU7CkBAIC0xMDgsNiArMTA5LDkgQEAgc3RydWN0IF92Y3NfZHBpX3NvY19ib3VuZGluZ19ib3hfc3QgewogCWludCB1c2VfdXJnZW50X2J1cnN0X2J3OwogCXVuc2lnbmVkIGludCBudW1fc3RhdGVzOwogCXN0cnVjdCBfdmNzX2RwaV92b2x0YWdlX3NjYWxpbmdfc3QgY2xvY2tfbGltaXRzW01BWF9DTE9DS19MSU1JVF9TVEFURVNdOworCWJvb2wgZG9fdXJnZW50X2xhdGVuY3lfYWRqdXN0bWVudDsKKwlkb3VibGUgdXJnZW50X2xhdGVuY3lfYWRqdXN0bWVudF9mYWJyaWNfY2xvY2tfY29tcG9uZW50X3VzOworCWRvdWJsZSB1cmdlbnRfbGF0ZW5jeV9hZGp1c3RtZW50X2ZhYnJpY19jbG9ja19yZWZlcmVuY2VfbWh6OwogfTsKIAogc3RydWN0IF92Y3NfZHBpX2lwX3BhcmFtc19zdCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2Rpc3BsYXlfbW9kZV92YmEuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3ZiYS5jCmluZGV4IDRkMmExMjYuLjY1Y2Y0ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3ZiYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3ZiYS5jCkBAIC0yNjIsNiArMjYyLDEzIEBAIHN0YXRpYyB2b2lkIGZldGNoX3NvY2JiX3BhcmFtcyhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpCiAJCS8vbW9kZV9saWItPnZiYS5EUkFNU3BlZWRQZXJTdGF0ZVtpXSA9IHNvYy0+Y2xvY2tfbGltaXRzW2ldLmRyYW1fc3BlZWRfbWh6OwogCQltb2RlX2xpYi0+dmJhLk1heERpc3BjbGtbaV0gPSBzb2MtPmNsb2NrX2xpbWl0c1tpXS5kaXNwY2xrX21oejsKIAl9CisKKwltb2RlX2xpYi0+dmJhLkRvVXJnZW50TGF0ZW5jeUFkanVzdG1lbnQgPQorCQlzb2MtPmRvX3VyZ2VudF9sYXRlbmN5X2FkanVzdG1lbnQ7CisJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5QWRqdXN0bWVudEZhYnJpY0Nsb2NrQ29tcG9uZW50ID0KKwkJc29jLT51cmdlbnRfbGF0ZW5jeV9hZGp1c3RtZW50X2ZhYnJpY19jbG9ja19jb21wb25lbnRfdXM7CisJbW9kZV9saWItPnZiYS5VcmdlbnRMYXRlbmN5QWRqdXN0bWVudEZhYnJpY0Nsb2NrUmVmZXJlbmNlID0KKwkJc29jLT51cmdlbnRfbGF0ZW5jeV9hZGp1c3RtZW50X2ZhYnJpY19jbG9ja19yZWZlcmVuY2VfbWh6OwogfQogCiBzdGF0aWMgdm9pZCBmZXRjaF9pcF9wYXJhbXMoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliKQpAQCAtMzg1LDggKzM5MiwxMCBAQCBzdGF0aWMgdm9pZCBmZXRjaF9waXBlX3BhcmFtcyhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpCiAJCQkJc3JjLT52aWV3cG9ydF95X2M7CiAJCW1vZGVfbGliLT52YmEuUGl0Y2hZW21vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXNdID0gc3JjLT5kYXRhX3BpdGNoOwogCQltb2RlX2xpYi0+dmJhLlN1cmZhY2VIZWlnaHRZW21vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXNdID0gc3JjLT52aWV3cG9ydF9oZWlnaHQ7CisJCW1vZGVfbGliLT52YmEuU3VyZmFjZVdpZHRoWVttb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzXSA9IHNyYy0+dmlld3BvcnRfd2lkdGg7CiAJCW1vZGVfbGliLT52YmEuUGl0Y2hDW21vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXNdID0gc3JjLT5kYXRhX3BpdGNoX2M7CiAJCW1vZGVfbGliLT52YmEuU3VyZmFjZUhlaWdodENbbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lc10gPSBzcmMtPnZpZXdwb3J0X2hlaWdodF9jOworCQltb2RlX2xpYi0+dmJhLlN1cmZhY2VXaWR0aENbbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lc10gPSBzcmMtPnZpZXdwb3J0X3dpZHRoX2M7CiAJCW1vZGVfbGliLT52YmEuRENDTWV0YVBpdGNoWVttb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzXSA9IHNyYy0+bWV0YV9waXRjaDsKIAkJbW9kZV9saWItPnZiYS5EQ0NNZXRhUGl0Y2hDW21vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXNdID0gc3JjLT5tZXRhX3BpdGNoX2M7CiAJCW1vZGVfbGliLT52YmEuSFJhdGlvW21vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXNdID0gc2NsLT5oc2NsX3JhdGlvOwpAQCAtNDU3LDYgKzQ2NiwxMCBAQCBzdGF0aWMgdm9pZCBmZXRjaF9waXBlX3BhcmFtcyhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpCiAJCQkJZG91dC0+d2Iud2JfZHN0X3dpZHRoOwogCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0Rlc3RpbmF0aW9uSGVpZ2h0W21vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXNdID0KIAkJCQlkb3V0LT53Yi53Yl9kc3RfaGVpZ2h0OworCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja0hSYXRpb1ttb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzXSA9CisJCQkJZG91dC0+d2Iud2JfaHJhdGlvOworCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1ZSYXRpb1ttb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzXSA9CisJCQkJZG91dC0+d2Iud2JfdnJhdGlvOwogCQltb2RlX2xpYi0+dmJhLldyaXRlYmFja1BpeGVsRm9ybWF0W21vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXNdID0KIAkJCQkoZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzKSAoZG91dC0+d2Iud2JfcGl4ZWxfZm9ybWF0KTsKIAkJbW9kZV9saWItPnZiYS5Xcml0ZWJhY2tIVGFwc1ttb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzXSA9CkBAIC01NjgsNiArNTgxLDcgQEAgc3RhdGljIHZvaWQgZmV0Y2hfcGlwZV9wYXJhbXMoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliKQogCQlpZiAoc3JjLT5pc19oc3BsaXQpIHsKIAkJCWZvciAoayA9IGogKyAxOyBrIDwgbW9kZV9saWItPnZiYS5jYWNoZV9udW1fcGlwZXM7ICsraykgewogCQkJCWRpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1zX3N0ICpzcmNfayA9ICZwaXBlc1trXS5waXBlLnNyYzsKKwkJCQlkaXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgKmRzdF9rID0gJnBpcGVzW2tdLnBpcGUuZGVzdDsKIAogCQkJCWlmIChzcmNfay0+aXNfaHNwbGl0ICYmICF2aXNpdGVkW2tdCiAJCQkJCQkmJiBzcmMtPmhzcGxpdF9ncnAgPT0gc3JjX2stPmhzcGxpdF9ncnApIHsKQEAgLTU3NSwxMiArNTg5LDE1IEBAIHN0YXRpYyB2b2lkIGZldGNoX3BpcGVfcGFyYW1zKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYikKIAkJCQkJCQltb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzOwogCQkJCQltb2RlX2xpYi0+dmJhLkRQUFBlclBsYW5lW21vZGVfbGliLT52YmEuTnVtYmVyT2ZBY3RpdmVQbGFuZXNdKys7CiAJCQkJCWlmIChtb2RlX2xpYi0+dmJhLlNvdXJjZVNjYW5bbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lc10KLQkJCQkJCQk9PSBkbV9ob3J6KQorCQkJCQkJCT09IGRtX2hvcnopIHsKIAkJCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRXaWR0aFttb2RlX2xpYi0+dmJhLk51bWJlck9mQWN0aXZlUGxhbmVzXSArPQogCQkJCQkJCQlzcmNfay0+dmlld3BvcnRfd2lkdGg7Ci0JCQkJCWVsc2UKKwkJCQkJCW1vZGVfbGliLT52YmEuU2NhbGVyUmVjb3V0V2lkdGhbbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lc10gKz0KKwkJCQkJCQkJZHN0X2stPnJlY291dF93aWR0aDsKKwkJCQkJfSBlbHNlIHsKIAkJCQkJCW1vZGVfbGliLT52YmEuVmlld3BvcnRIZWlnaHRbbW9kZV9saWItPnZiYS5OdW1iZXJPZkFjdGl2ZVBsYW5lc10gKz0KIAkJCQkJCQkJc3JjX2stPnZpZXdwb3J0X2hlaWdodDsKKwkJCQkJfQogCiAJCQkJCXZpc2l0ZWRba10gPSB0cnVlOwogCQkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3ZiYS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfdmJhLmgKaW5kZXggMDM0N2Y3NGMuLjkxZGVjYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3ZiYS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3ZiYS5oCkBAIC0yOTAsNiArMjkwLDcgQEAgc3RydWN0IHZiYV92YXJzX3N0IHsKIAlkb3VibGUgUGl4ZWxDbG9ja1tEQ19fTlVNX0RQUF9fTUFYXTsKIAlkb3VibGUgUGl4ZWxDbG9ja0JhY2tFbmRbRENfX05VTV9EUFBfX01BWF07CiAJYm9vbCBEQ0NFbmFibGVbRENfX05VTV9EUFBfX01BWF07CisJYm9vbCBGRUNFbmFibGVbRENfX05VTV9EUFBfX01BWF07CiAJdW5zaWduZWQgaW50IERDQ01ldGFQaXRjaFlbRENfX05VTV9EUFBfX01BWF07CiAJdW5zaWduZWQgaW50IERDQ01ldGFQaXRjaENbRENfX05VTV9EUFBfX01BWF07CiAJZW51bSBzY2FuX2RpcmVjdGlvbl9jbGFzcyBTb3VyY2VTY2FuW0RDX19OVU1fRFBQX19NQVhdOwpAQCAtMzE3LDYgKzMxOCw3IEBAIHN0cnVjdCB2YmFfdmFyc19zdCB7CiAJZG91YmxlIERDQ1JhdGVbRENfX05VTV9EUFBfX01BWF07CiAJZG91YmxlIEF2ZXJhZ2VEQ0NDb21wcmVzc2lvblJhdGU7CiAJYm9vbCBPRE1Db21iaW5lRW5hYmxlZFtEQ19fTlVNX0RQUF9fTUFYXTsKKwllbnVtIG9kbV9jb21iaW5lX21vZGUgT0RNQ29tYmluZVR5cGVFbmFibGVkW0RDX19OVU1fRFBQX19NQVhdOwogCWRvdWJsZSBPdXRwdXRCcHBbRENfX05VTV9EUFBfX01BWF07CiAJYm9vbCBEU0NFbmFibGVkW0RDX19OVU1fRFBQX19NQVhdOwogCXVuc2lnbmVkIGludCBEU0NJbnB1dEJpdFBlckNvbXBvbmVudFtEQ19fTlVNX0RQUF9fTUFYXTsKQEAgLTM5NSw2ICszOTcsNyBAQCBzdHJ1Y3QgdmJhX3ZhcnNfc3QgewogCWRvdWJsZSBGYWJyaWNDbG9ja1BlclN0YXRlW0RDX19WT0xUQUdFX1NUQVRFUyArIDFdOwogCWRvdWJsZSBTT0NDTEtQZXJTdGF0ZVtEQ19fVk9MVEFHRV9TVEFURVMgKyAxXTsKIAlkb3VibGUgUEhZQ0xLUGVyU3RhdGVbRENfX1ZPTFRBR0VfU1RBVEVTICsgMV07CisJZG91YmxlIERUQkNMS1BlclN0YXRlW0RDX19WT0xUQUdFX1NUQVRFUyArIDFdOwogCWRvdWJsZSBNYXhEcHBjbGtbRENfX1ZPTFRBR0VfU1RBVEVTICsgMV07CiAJZG91YmxlIE1heERTQ0NMS1tEQ19fVk9MVEFHRV9TVEFURVMgKyAxXTsKIAlkb3VibGUgRFJBTVNwZWVkUGVyU3RhdGVbRENfX1ZPTFRBR0VfU1RBVEVTICsgMV07CkBAIC00ODgsNiArNDkxLDcgQEAgc3RydWN0IHZiYV92YXJzX3N0IHsKIAl1bnNpZ25lZCBpbnQgTm9PZkRQUFtEQ19fVk9MVEFHRV9TVEFURVMgKyAxXVsyXVtEQ19fTlVNX0RQUF9fTUFYXTsKIAlpbnQgTm9PZkRQUFRoaXNTdGF0ZVtEQ19fTlVNX0RQUF9fTUFYXTsKIAlib29sIE9ETUNvbWJpbmVFbmFibGVQZXJTdGF0ZVtEQ19fVk9MVEFHRV9TVEFURVMgKyAxXVtEQ19fTlVNX0RQUF9fTUFYXTsKKwllbnVtIG9kbV9jb21iaW5lX21vZGUgT0RNQ29tYmluZVR5cGVFbmFibGVQZXJTdGF0ZVtEQ19fVk9MVEFHRV9TVEFURVMgKyAxXVtEQ19fTlVNX0RQUF9fTUFYXTsKIAl1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aFlUaGlzU3RhdGVbRENfX05VTV9EUFBfX01BWF07CiAJdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0Q1BlclN0YXRlW0RDX19WT0xUQUdFX1NUQVRFUyArIDFdWzJdW0RDX19OVU1fRFBQX19NQVhdOwogCXVuc2lnbmVkIGludCBTd2F0aEhlaWdodFlUaGlzU3RhdGVbRENfX05VTV9EUFBfX01BWF07CkBAIC01MTMsNiArNTE3LDcgQEAgc3RydWN0IHZiYV92YXJzX3N0IHsKIAlib29sIERJT1N1cHBvcnRbRENfX1ZPTFRBR0VfU1RBVEVTICsgMV07CiAJYm9vbCBOb3RFbm91Z2hEU0NVbml0c1tEQ19fVk9MVEFHRV9TVEFURVMgKyAxXTsKIAlib29sIERTQ0NMS1JlcXVpcmVkTW9yZVRoYW5TdXBwb3J0ZWRbRENfX1ZPTFRBR0VfU1RBVEVTICsgMV07CisJYm9vbCBEVEJDTEtSZXF1aXJlZE1vcmVUaGFuU3VwcG9ydGVkW0RDX19WT0xUQUdFX1NUQVRFUyArIDFdOwogCWRvdWJsZSBVcmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeVBlclN0YXRlW0RDX19WT0xUQUdFX1NUQVRFUyArIDFdOwogCWJvb2wgUk9CU3VwcG9ydFtEQ19fVk9MVEFHRV9TVEFURVMgKyAxXTsKIAlib29sIFBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZFtEQ19fVk9MVEFHRV9TVEFURVMgKyAxXVsyXTsKQEAgLTYwNSw2ICs2MTAsNyBAQCBzdHJ1Y3QgdmJhX3ZhcnNfc3QgewogCWRvdWJsZSAgICAgICAgIE1heGltdW1Td2F0aFdpZHRoTHVtYVtEQ19fTlVNX0RQUF9fTUFYXTsKIAlkb3VibGUgICAgICAgICBNYXhpbXVtU3dhdGhXaWR0aENocm9tYVtEQ19fTlVNX0RQUF9fTUFYXTsKIAlib29sIG9kbV9jb21iaW5lX2R1bW15W0RDX19OVU1fRFBQX19NQVhdOworCWVudW0gb2RtX2NvbWJpbmVfbW9kZSBvZG1fY29tYmluZV9tb2RlX2R1bW15W0RDX19OVU1fRFBQX19NQVhdOwogCWRvdWJsZSAgICAgICAgIGR1bW15MVtEQ19fTlVNX0RQUF9fTUFYXTsKIAlkb3VibGUgICAgICAgICBkdW1teTJbRENfX05VTV9EUFBfX01BWF07CiAJZG91YmxlICAgICAgICAgZHVtbXkzW0RDX19OVU1fRFBQX19NQVhdOwpAQCAtNjI1LDYgKzYzMSwxMSBAQCBzdHJ1Y3QgdmJhX3ZhcnNfc3QgewogCXVuc2lnbmVkIGludCAgICAgICAgZHVtbXlpbnRlZ2VyMTA7CiAJdW5zaWduZWQgaW50ICAgICAgICBkdW1teWludGVnZXIxMTsKIAl1bnNpZ25lZCBpbnQgICAgICAgIGR1bW15aW50ZWdlcjEyOworCXVuc2lnbmVkIGludCAgICAgICAgZHVtbXlpbnRlZ2VyYXJyMVtEQ19fTlVNX0RQUF9fTUFYXTsKKwl1bnNpZ25lZCBpbnQgICAgICAgIGR1bW15aW50ZWdlcmFycjJbRENfX05VTV9EUFBfX01BWF07CisJdW5zaWduZWQgaW50ICAgICAgICBkdW1teWludGVnZXJhcnIzW0RDX19OVU1fRFBQX19NQVhdOworCXVuc2lnbmVkIGludCAgICAgICAgZHVtbXlpbnRlZ2VyYXJyNFtEQ19fTlVNX0RQUF9fTUFYXTsKKwlsb25nICAgICAgICAgICAgICAgIGR1bW15bG9uZ2FycjFbRENfX05VTV9EUFBfX01BWF07CiAJYm9vbCAgICAgICAgICAgZHVtbXlzaW5nbGVzdHJpbmc7CiAJYm9vbCAgICAgICAgICAgU2luZ2xlRFBQVmlld3BvcnRTaXplU3VwcG9ydFBlclBsYW5lW0RDX19OVU1fRFBQX19NQVhdOwogCWRvdWJsZSAgICAgICAgIFBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aE9ETUNvbWJpbmUyVG8xOwpAQCAtNjMzLDYgKzY0NCw3IEBAIHN0cnVjdCB2YmFfdmFyc19zdCB7CiAJYm9vbCAgICAgICAgICAgTGlua0RTQ0VuYWJsZTsKIAlib29sICAgICAgICAgICBPRE1Db21iaW5lNFRvMVN1cHBvcnRDaGVja09LW0RDX19WT0xUQUdFX1NUQVRFUyArIDFdOwogCWJvb2wgT0RNQ29tYmluZUVuYWJsZVRoaXNTdGF0ZVtEQ19fTlVNX0RQUF9fTUFYXTsKKwllbnVtIG9kbV9jb21iaW5lX21vZGUgT0RNQ29tYmluZUVuYWJsZVR5cGVUaGlzU3RhdGVbRENfX05VTV9EUFBfX01BWF07CiAJdW5zaWduZWQgaW50ICAgU3dhdGhXaWR0aENUaGlzU3RhdGVbRENfX05VTV9EUFBfX01BWF07CiAJYm9vbCAgICAgICAgICAgVmlld3BvcnRTaXplU3VwcG9ydFBlclBsYW5lW0RDX19OVU1fRFBQX19NQVhdOwogCWRvdWJsZSAgICAgICAgIEFsaWduZWREQ0NNZXRhUGl0Y2hZW0RDX19OVU1fRFBQX19NQVhdOwpAQCAtNjQxLDYgKzY1Myw3IEBAIHN0cnVjdCB2YmFfdmFyc19zdCB7CiAJdW5zaWduZWQgaW50IE5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmc7CiAJdW5zaWduZWQgaW50IE5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmdQcmU7CiAJbG9uZyBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0Zvckx1bWE7CisJbG9uZyBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0ZvckNocm9tYTsKIAogCS8vIE1pc3NpbmcgZnJvbSBWQkEKIAlsb25nIGRwdGVfZ3JvdXBfYnl0ZXNfY2hyb21hOwpAQCAtNzg3LDYgKzgwMCw5IEBAIHN0cnVjdCB2YmFfdmFyc19zdCB7CiAJdW5zaWduZWQgaW50IFBERVByb2Nlc3NpbmdCdWZJbjY0S0JSZXFzOwogCiAJZG91YmxlIE1heFRvdGFsVkFjdGl2ZVJEQmFuZHdpZHRoOworCWJvb2wgRG9VcmdlbnRMYXRlbmN5QWRqdXN0bWVudDsKKwlkb3VibGUgVXJnZW50TGF0ZW5jeUFkanVzdG1lbnRGYWJyaWNDbG9ja0NvbXBvbmVudDsKKwlkb3VibGUgVXJnZW50TGF0ZW5jeUFkanVzdG1lbnRGYWJyaWNDbG9ja1JlZmVyZW5jZTsKIAlkb3VibGUgTWluVXJnZW50TGF0ZW5jeVN1cHBvcnRVczsKIAlkb3VibGUgTWluRnVsbERFVEJ1ZmZlcmluZ1RpbWU7CiAJZG91YmxlIEF2ZXJhZ2VSZWFkQmFuZHdpZHRoR0J5dGVQZXJTZWNvbmQ7CkBAIC04MDEsNiArODE3LDggQEAgc3RydWN0IHZiYV92YXJzX3N0IHsKIAlib29sIE1vZGVJc1N1cHBvcnRlZDsKIAlib29sIE9ETUNvbWJpbmU0VG8xU3VwcG9ydGVkOwogCisJdW5zaWduZWQgaW50IFN1cmZhY2VXaWR0aFlbRENfX05VTV9EUFBfX01BWF07CisJdW5zaWduZWQgaW50IFN1cmZhY2VXaWR0aENbRENfX05VTV9EUFBfX01BWF07CiAJdW5zaWduZWQgaW50IFN1cmZhY2VIZWlnaHRZW0RDX19OVU1fRFBQX19NQVhdOwogCXVuc2lnbmVkIGludCBTdXJmYWNlSGVpZ2h0Q1tEQ19fTlVNX0RQUF9fTUFYXTsKIAl1bnNpZ25lZCBpbnQgV3JpdGViYWNrSFRhcHNbRENfX05VTV9EUFBfX01BWF07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZHNjL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RzYy9NYWtlZmlsZQppbmRleCBlMDE5Y2Q5Li5iNDU2Y2QyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZHNjL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kc2MvTWFrZWZpbGUKQEAgLTksMTAgKzksMTMgQEAKIAogZHNjX2NjZmxhZ3MgOj0gLW1oYXJkLWZsb2F0IC1tc3NlICQoY2Nfc3RhY2tfYWxpZ24pCiAKLUNGTEFHU19yY19jYWxjLm8gOj0gJChkc2NfY2NmbGFncykKLUNGTEFHU19yY19jYWxjX2RwaS5vIDo9ICQoZHNjX2NjZmxhZ3MpCi1DRkxBR1NfY29kZWNfbWFpbl9hbWQubyA6PSAkKGRzY19jY2ZsYWdzKQotQ0ZMQUdTX2RjX2RzYy5vIDo9ICQoZHNjX2NjZmxhZ3MpCitpZmRlZiBDT05GSUdfQ0NfSVNfQ0xBTkcKK2RzY19jY2ZsYWdzICs9IC1tc3NlMgorZW5kaWYKKworQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZHNjL3JjX2NhbGMubyA6PSAkKGRzY19jY2ZsYWdzKQorQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZHNjL3JjX2NhbGNfZHBpLm8gOj0gJChkc2NfY2NmbGFncykKK0NGTEFHU18kKEFNRERBTFBBVEgpL2RjL2RzYy9kY19kc2MubyA6PSAkKGRzY19jY2ZsYWdzKQogCiBEU0MgPSBkY19kc2MubyByY19jYWxjLm8gcmNfY2FsY19kcGkubwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZHNjL2RjX2RzYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RzYy9kY19kc2MuYwppbmRleCBlZjVmODRhLi41OTk1YmNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZHNjL2RjX2RzYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kc2MvZGNfZHNjLmMKQEAgLTI4LDYgKzI4LDIzIEBACiAjaW5jbHVkZSAiZHNjLmgiCiAjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KIAorc3RydWN0IGRjX2RzY19wb2xpY3kgeworCWJvb2wgdXNlX21pbl9zbGljZXNfaDsKKwlpbnQgbWF4X3NsaWNlc19oOyAvLyBNYXhpbXVtIGF2YWlsYWJsZSBpZiAwCisJaW50IG1pbl9zaWNlX2hlaWdodDsgLy8gTXVzdCBub3QgYmUgbGVzcyB0aGFuIDgKKwlpbnQgbWF4X3RhcmdldF9icHA7CisJaW50IG1pbl90YXJnZXRfYnBwOyAvLyBNaW5pbXVtIHRhcmdldCBiaXRzIHBlciBwaXhlbAorfTsKKworY29uc3Qgc3RydWN0IGRjX2RzY19wb2xpY3kgZHNjX3BvbGljeSA9IHsKKwkudXNlX21pbl9zbGljZXNfaCA9IHRydWUsIC8vIERTQyBQb2xpY3k6IFVzZSBtaW5pbXVtIG51bWJlciBvZiBzbGljZXMgdGhhdCBmaXRzIHRoZSBwaXhlbCBjbG9jaworCS5tYXhfc2xpY2VzX2ggPSAwLCAvLyBEU0MgUG9saWN5OiBVc2UgbWF4IGF2YWlsYWJsZSBzbGljZXMgKGluIG91ciBjYXNlIDQgZm9yIG9yIDgsIGRlcGVuZGluZyBvbiB0aGUgbW9kZSkKKwkubWluX3NpY2VfaGVpZ2h0ID0gMTA4LCAvLyBEU0MgUG9saWN5OiBVc2Ugc2xpY2UgaGVpZ2h0IHJlY29tbWVuZGVkIGJ5IFZFU0EgRFNDIFNwcmVhZHNoZWV0IHVzZXIgZ3VpZGUKKwkubWF4X3RhcmdldF9icHAgPSAxNiwKKwkubWluX3RhcmdldF9icHAgPSA4LAorfTsKKworCiAvKiBUaGlzIG1vZHVsZSdzIGludGVybmFsIGZ1bmN0aW9ucyAqLwogCiBzdGF0aWMgYm9vbCBkc2NfYnVmZl9ibG9ja19zaXplX2Zyb21fZHBjZChpbnQgZHBjZF9idWZmX2Jsb2NrX3NpemUsIGludCAqYnVmZl9ibG9ja19zaXplKQpAQCAtMjQxLDE0ICsyNTgsNiBAQCBzdGF0aWMgYm9vbCBpbnRlcnNlY3RfZHNjX2NhcHMoCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0cnVjdCBkY19kc2NfcG9saWN5IHsKLQlib29sIHVzZV9taW5fc2xpY2VzX2g7Ci0JaW50IG1heF9zbGljZXNfaDsgLy8gTWF4aW11bSBhdmFpbGFibGUgaWYgMAotCWludCBudW1fc2xpY2VzX3Y7Ci0JaW50IG1heF90YXJnZXRfYnBwOwotCWludCBtaW5fdGFyZ2V0X2JwcDsgLy8gTWluaW11bSB0YXJnZXQgYml0cyBwZXIgcGl4ZWwKLX07Ci0KIHN0YXRpYyBpbmxpbmUgdWludDMyX3QgZHNjX2Rpdl9ieV8xMF9yb3VuZF91cCh1aW50MzJfdCB2YWx1ZSkKIHsKIAlyZXR1cm4gKHZhbHVlICsgOSkgLyAxMDsKQEAgLTI3MCwxOSArMjc5LDYgQEAgc3RhdGljIGlubGluZSB1aW50MzJfdCBjYWxjX2RzY19icHBfeDE2KHVpbnQzMl90IHN0cmVhbV9iYW5kd2lkdGhfa2JwcywgdWludDMyX3QKIAlyZXR1cm4gZHNjX3RhcmdldF9icHBfeDE2OwogfQogCi1jb25zdCBzdHJ1Y3QgZGNfZHNjX3BvbGljeSBkc2NfcG9saWN5ID0gewotCS51c2VfbWluX3NsaWNlc19oID0gdHJ1ZSwgLy8gRFNDIFBvbGljeTogVXNlIG1pbmltdW0gbnVtYmVyIG9mIHNsaWNlcyB0aGF0IGZpdHMgdGhlIHBpeGVsIGNsb2NrCi0JLm1heF9zbGljZXNfaCA9IDAsIC8vIERTQyBQb2xpY3k6IFVzZSBtYXggYXZhaWxhYmxlIHNsaWNlcyAoaW4gb3VyIGNhc2UgNCBmb3Igb3IgOCwgZGVwZW5kaW5nIG9uIHRoZSBtb2RlKQotCS8qIERTQyBQb2xpY3k6IE51bWJlciBvZiB2ZXJ0aWNhbCBzbGljZXMgc2V0IHRvIDIgZm9yIG5vIHBhcnRpY3VsYXIgcmVhc29uLgotCSAqIFNlZW1zIHNtYWxsIGVub3VnaCB0byBub3QgYWZmZWN0IHRoZSBxdWFsaXR5IHRvbyBtdWNoLCB3aGlsZSBzdGlsbCBwcm92aWRpbmcgc29tZSBlcnJvcgotCSAqIHByb3BhZ2F0aW9uIGNvbnRyb2wgKHdoaWNoIG1heSBhbHNvIGhlbHAgZGVidWdnaW5nKS4KLQkgKi8KLQkubnVtX3NsaWNlc192ID0gMTYsCi0JLm1heF90YXJnZXRfYnBwID0gMTYsCi0JLm1pbl90YXJnZXRfYnBwID0gOCwKLX07Ci0KLQogLyogR2V0IERTQyBiYW5kd2lkdGggcmFuZ2UgYmFzZWQgb24gW21pbl9icHAsIG1heF9icHBdIHRhcmdldCBiaXRyYXRlIHJhbmdlLCBhbmQgdGltaW5nJ3MgcGl4ZWwgY2xvY2sKICAqIGFuZCB1bmNvbXByZXNzZWQgYmFuZHdpZHRoLgogICovCkBAIC01MjgsOCArNTI0LDggQEAgc3RhdGljIGJvb2wgc2V0dXBfZHNjX2NvbmZpZygKIAlpbnQgc2lua19wZXJfc2xpY2VfdGhyb3VnaHB1dF9tcHM7CiAJaW50IGJyYW5jaF9tYXhfdGhyb3VnaHB1dF9tcHMgPSAwOwogCWJvb2wgaXNfZHNjX3Bvc3NpYmxlID0gZmFsc2U7Ci0JaW50IG51bV9zbGljZXNfdjsKIAlpbnQgcGljX2hlaWdodDsKKwlpbnQgc2xpY2VfaGVpZ2h0OwogCiAJbWVtc2V0KGRzY19jZmcsIDAsIHNpemVvZihzdHJ1Y3QgZGNfZHNjX2NvbmZpZykpOwogCkBAIC02MTUsNyArNjExLDcgQEAgc3RhdGljIGJvb2wgc2V0dXBfZHNjX2NvbmZpZygKIAlpZiAoIWlzX2RzY19wb3NzaWJsZSkKIAkJZ290byBkb25lOwogCi0JLy8gRFNDIHNsaWNpbmcKKwkvLyBTbGljZSB3aWR0aCAoaS5lLiBudW1iZXIgb2Ygc2xpY2VzIHBlciBsaW5lKQogCW1heF9zbGljZXNfaCA9IGdldF9tYXhfZHNjX3NsaWNlcyhkc2NfY29tbW9uX2NhcHMuc2xpY2VfY2Fwcyk7CiAKIAl3aGlsZSAobWF4X3NsaWNlc19oID4gMCkgewpAQCAtNjc4LDI5ICs2NzQsMjYgQEAgc3RhdGljIGJvb2wgc2V0dXBfZHNjX2NvbmZpZygKIAlkc2NfY2ZnLT5udW1fc2xpY2VzX2ggPSBudW1fc2xpY2VzX2g7CiAJc2xpY2Vfd2lkdGggPSBwaWNfd2lkdGggLyBudW1fc2xpY2VzX2g7CiAKLQkvLyBWZXJ0aWNhbCBudW1iZXIgb2Ygc2xpY2VzOiBzdGFydCBmcm9tIHBvbGljeSBhbmQgcGljayB0aGUgZmlyc3Qgb25lIHRoYXQgaGVpZ2h0IGlzIGRpdmlzaWJsZSBieS4KLQkvLyBGb3IgNDoyOjAgbWFrZSBzdXJlIHRoZSBzbGljZSBoZWlnaHQgaXMgZGl2aXNpYmxlIGJ5IDIgYXMgd2VsbC4KLQludW1fc2xpY2VzX3YgPSBkc2NfcG9saWN5Lm51bV9zbGljZXNfdjsKLQlpZiAobnVtX3NsaWNlc192IDwgMSkKLQkJbnVtX3NsaWNlc192ID0gMTsKLQotCXdoaWxlIChudW1fc2xpY2VzX3YgPj0gMSkgewotCQlpZiAodGltaW5nLT5waXhlbF9lbmNvZGluZyA9PSBQSVhFTF9FTkNPRElOR19ZQ0JDUjQyMCkgewotCQkJaW50IHNsaWNlX2hlaWdodCA9IHBpY19oZWlnaHQgLyBudW1fc2xpY2VzX3Y7Ci0JCQlpZiAocGljX2hlaWdodCAlIG51bV9zbGljZXNfdiA9PSAwICYmIHNsaWNlX2hlaWdodCAlIDIgPT0gMCkKLQkJCQlicmVhazsKLQkJfSBlbHNlIGlmIChwaWNfaGVpZ2h0ICUgbnVtX3NsaWNlc192ID09IDApCi0JCQlicmVhazsKLQotCQludW1fc2xpY2VzX3YtLTsKLQl9Ci0KLQlkc2NfY2ZnLT5udW1fc2xpY2VzX3YgPSBudW1fc2xpY2VzX3Y7Ci0KIAlpc19kc2NfcG9zc2libGUgPSBzbGljZV93aWR0aCA8PSBkc2NfY29tbW9uX2NhcHMubWF4X3NsaWNlX3dpZHRoOwogCWlmICghaXNfZHNjX3Bvc3NpYmxlKQogCQlnb3RvIGRvbmU7CiAKKwkvLyBTbGljZSBoZWlnaHQgKGkuZS4gbnVtYmVyIG9mIHNsaWNlcyBwZXIgY29sdW1uKTogc3RhcnQgd2l0aCBwb2xpY3kgYW5kIHBpY2sgdGhlIGZpcnN0IG9uZSB0aGF0IGhlaWdodCBpcyBkaXZpc2libGUgYnkuCisJLy8gRm9yIDQ6MjowIG1ha2Ugc3VyZSB0aGUgc2xpY2UgaGVpZ2h0IGlzIGRpdmlzaWJsZSBieSAyIGFzIHdlbGwuCisJc2xpY2VfaGVpZ2h0ID0gbWluKGRzY19wb2xpY3kubWluX3NpY2VfaGVpZ2h0LCBwaWNfaGVpZ2h0KTsKKworCXdoaWxlIChzbGljZV9oZWlnaHQgPCBwaWNfaGVpZ2h0ICYmIChwaWNfaGVpZ2h0ICUgc2xpY2VfaGVpZ2h0ICE9IDAgfHwKKwkJKHRpbWluZy0+cGl4ZWxfZW5jb2RpbmcgPT0gUElYRUxfRU5DT0RJTkdfWUNCQ1I0MjAgJiYgc2xpY2VfaGVpZ2h0ICUgMiAhPSAwKSkpCisJCXNsaWNlX2hlaWdodCsrOworCisJaWYgKHRpbWluZy0+cGl4ZWxfZW5jb2RpbmcgPT0gUElYRUxfRU5DT0RJTkdfWUNCQ1I0MjApIC8vIEZvciB0aGUgY2FzZSB3aGVuIHBpY19oZWlnaHQgPCBkc2NfcG9saWN5Lm1pbl9zaWNlX2hlaWdodAorCQlpc19kc2NfcG9zc2libGUgPSAoc2xpY2VfaGVpZ2h0ICUgMiA9PSAwKTsKKworCWlmICghaXNfZHNjX3Bvc3NpYmxlKQorCQlnb3RvIGRvbmU7CisKKwlkc2NfY2ZnLT5udW1fc2xpY2VzX3YgPSBwaWNfaGVpZ2h0L3NsaWNlX2hlaWdodDsKKwogCS8vIEZpbmFsIGRlY2lzc2lvbjogY2FuIHdlIGRvIERTQyBvciBub3Q/CiAJaWYgKGlzX2RzY19wb3NzaWJsZSkgewogCQkvLyBGaWxsIG91dCB0aGUgcmVzdCBvZiBEU0Mgc2V0dGluZ3MKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kc2MvZHJtX2RzY19kYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RzYy9kcm1fZHNjX2RjLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0MGVmNGQuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RzYy9kcm1fZHNjX2RjLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzODggKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnAKLSAqCi0gKiBBdXRob3I6Ci0gKiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgotICovCi0KLS8qIERDIHZlcnNpb25zIG9mIGxpbnV4IGluY2x1ZGVzICovCi0jaW5jbHVkZSA8aW5jbHVkZS9kcm1fZHNjX2RjLmg+Ci0KLSNkZWZpbmUgRVhQT1JUX1NZTUJPTChzeW1ib2wpCS8qIG5vdGhpbmcgKi8KLSNkZWZpbmUgQlVJTERfQlVHX09OKGNvbmQpCS8qIG5vdGhpbmcgKi8KLSNkZWZpbmUgRElWX1JPVU5EX1VQKGEsIGIpCSgoKGIpICsgKGEpIC0gMSkgLyAoYikpCi0jZGVmaW5lIEVSQU5HRQkJCS0xCi0jZGVmaW5lIERSTV9ERUJVR19LTVMobXNnKQkvKiBub3RoaW5nICovCi0jZGVmaW5lIGNwdV90b19iZTE2KF9feCkgbGl0dGxlX3RvX2JpZyhfX3gpCi0KLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCBsaXR0bGVfdG9fYmlnKGludCBkYXRhKQotewotCS8qIFN3YXAgbG93ZXIgYW5kIHVwcGVyIGJ5dGUuIERNQ1UgdXNlcyBiaWcgZW5kaWFuIGZvcm1hdC4gKi8KLQlyZXR1cm4gKDB4ZmYgJiAoZGF0YSA+PiA4KSkgKyAoKGRhdGEgJiAweGZmKSA8PCA4KTsKLX0KLQotLyoKLSAqIEV2ZXJ5dGhpbmcgYmVsb3cgdGhpcyBjb21tZW50IHdhcyBjb3BpZWQgZGlyZWN0bHkgZnJvbSBkcm1fZHNjLmMuCi0gKiBPbmx5IHRoZSBmdW5jdGlvbnMgbmVlZGVkIGluIERDIGFyZSBpbmNsdWRlZC4KLSAqIFBsZWFzZSBrZWVwIHRoaXMgZmlsZSBzeW5jZWQgd2l0aCB1cHN0cmVhbS4KLSAqLwotCi0vKioKLSAqIERPQzogZHNjIGhlbHBlcnMKLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgY29udGFpbiBzb21lIGNvbW1vbiBsb2dpYyBhbmQgaGVscGVycyB0byBkZWFsIHdpdGggVkVTQQotICogRGlzcGxheSBTdHJlYW0gQ29tcHJlc3Npb24gc3RhbmRhcmQgcmVxdWlyZWQgZm9yIERTQyBvbiBEaXNwbGF5IFBvcnQvZURQIG9yCi0gKiBNSVBJIGRpc3BsYXkgaW50ZXJmYWNlcy4KLSAqLwotCi0vKioKLSAqIGRybV9kc2NfcHBzX3BheWxvYWRfcGFjaygpIC0gUG9wdWxhdGVzIHRoZSBEU0MgUFBTCi0gKgotICogQHBwc19wYXlsb2FkOgotICogQml0d2lzZSBzdHJ1Y3QgZm9yIERTQyBQaWN0dXJlIFBhcmFtZXRlciBTZXQuIFRoaXMgaXMgZGVmaW5lZAotICogYnkgJnN0cnVjdCBkcm1fZHNjX3BpY3R1cmVfcGFyYW1ldGVyX3NldAotICogQGRzY19jZmc6Ci0gKiBEU0MgQ29uZmlndXJhdGlvbiBkYXRhIGZpbGxlZCBieSBkcml2ZXIgYXMgZGVmaW5lZCBieQotICogJnN0cnVjdCBkcm1fZHNjX2NvbmZpZwotICoKLSAqIERTQyBzb3VyY2UgZGV2aWNlIHNlbmRzIGEgcGljdHVyZSBwYXJhbWV0ZXIgc2V0IChQUFMpIGNvbnRhaW5pbmcgdGhlCi0gKiBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSB0aGUgc2luayB0byBkZWNvZGUgdGhlIGNvbXByZXNzZWQgZnJhbWUuIERyaXZlcgotICogcG9wdWxhdGVzIHRoZSBEU0MgUFBTIHN0cnVjdCB1c2luZyB0aGUgRFNDIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBpbgotICogdGhlIG9yZGVyIGV4cGVjdGVkIGJ5IHRoZSBEU0MgRGlzcGxheSBTaW5rIGRldmljZS4gRm9yIHRoZSBEU0MsIHRoZSBzaW5rCi0gKiBkZXZpY2UgZXhwZWN0cyB0aGUgUFBTIHBheWxvYWQgaW4gYmlnIGVuZGlhbiBmb3JtYXQgZm9yIGZpZWxkcwotICogdGhhdCBzcGFuIG1vcmUgdGhhbiAxIGJ5dGUuCi0gKi8KLXZvaWQgZHJtX2RzY19wcHNfcGF5bG9hZF9wYWNrKHN0cnVjdCBkcm1fZHNjX3BpY3R1cmVfcGFyYW1ldGVyX3NldCAqcHBzX3BheWxvYWQsCi0JCQkJY29uc3Qgc3RydWN0IGRybV9kc2NfY29uZmlnICpkc2NfY2ZnKQotewotCWludCBpOwotCi0JLyogUHJvdGVjdCBhZ2FpbnN0IHNvbWVvbmUgYWNjaWRlbnRseSBjaGFuZ2luZyBzdHJ1Y3Qgc2l6ZSAqLwotCUJVSUxEX0JVR19PTihzaXplb2YoKnBwc19wYXlsb2FkKSAhPQotCQkgICAgIERQX1NEUF9QUFNfSEVBREVSX1BBWUxPQURfQllURVNfTUlOVVNfMSArIDEpOwotCi0JbWVtc2V0KHBwc19wYXlsb2FkLCAwLCBzaXplb2YoKnBwc19wYXlsb2FkKSk7Ci0KLQkvKiBQUFMgMCAqLwotCXBwc19wYXlsb2FkLT5kc2NfdmVyc2lvbiA9Ci0JCWRzY19jZmctPmRzY192ZXJzaW9uX21pbm9yIHwKLQkJZHNjX2NmZy0+ZHNjX3ZlcnNpb25fbWFqb3IgPDwgRFNDX1BQU19WRVJTSU9OX01BSk9SX1NISUZUOwotCi0JLyogUFBTIDEsIDIgaXMgMCAqLwotCi0JLyogUFBTIDMgKi8KLQlwcHNfcGF5bG9hZC0+cHBzXzMgPQotCQlkc2NfY2ZnLT5saW5lX2J1Zl9kZXB0aCB8Ci0JCWRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCA8PCBEU0NfUFBTX0JQQ19TSElGVDsKLQotCS8qIFBQUyA0ICovCi0JcHBzX3BheWxvYWQtPnBwc180ID0KLQkJKChkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCAmIERTQ19QUFNfQlBQX0hJR0hfTUFTSykgPj4KLQkJIERTQ19QUFNfTVNCX1NISUZUKSB8Ci0JCWRzY19jZmctPnZicl9lbmFibGUgPDwgRFNDX1BQU19WQlJfRU5fU0hJRlQgfAotCQlkc2NfY2ZnLT5zaW1wbGVfNDIyIDw8IERTQ19QUFNfU0lNUExFNDIyX1NISUZUIHwKLQkJZHNjX2NmZy0+Y29udmVydF9yZ2IgPDwgRFNDX1BQU19DT05WRVJUX1JHQl9TSElGVCB8Ci0JCWRzY19jZmctPmJsb2NrX3ByZWRfZW5hYmxlIDw8IERTQ19QUFNfQkxPQ0tfUFJFRF9FTl9TSElGVDsKLQotCS8qIFBQUyA1ICovCi0JcHBzX3BheWxvYWQtPmJpdHNfcGVyX3BpeGVsX2xvdyA9Ci0JCShkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCAmIERTQ19QUFNfTFNCX01BU0spOwotCi0JLyoKLQkgKiBUaGUgRFNDIHBhbmVsIGV4cGVjdHMgdGhlIFBQUyBwYWNrZXQgdG8gaGF2ZSBiaWcgZW5kaWFuIGZvcm1hdAotCSAqIGZvciBkYXRhIHNwYW5uaW5nIDIgYnl0ZXMuIFVzZSBhIG1hY3JvIGNwdV90b19iZTE2KCkgdG8gY29udmVydAotCSAqIHRvIGJpZyBlbmRpYW4gZm9ybWF0LiBJZiBmb3JtYXQgaXMgbGl0dGxlIGVuZGlhbiwgaXQgd2lsbCBzd2FwCi0JICogYnl0ZXMgdG8gY29udmVydCB0byBCaWcgZW5kaWFuIGVsc2Uga2VlcCBpdCB1bmNoYW5nZWQuCi0JICovCi0KLQkvKiBQUFMgNiwgNyAqLwotCXBwc19wYXlsb2FkLT5waWNfaGVpZ2h0ID0gY3B1X3RvX2JlMTYoZHNjX2NmZy0+cGljX2hlaWdodCk7Ci0KLQkvKiBQUFMgOCwgOSAqLwotCXBwc19wYXlsb2FkLT5waWNfd2lkdGggPSBjcHVfdG9fYmUxNihkc2NfY2ZnLT5waWNfd2lkdGgpOwotCi0JLyogUFBTIDEwLCAxMSAqLwotCXBwc19wYXlsb2FkLT5zbGljZV9oZWlnaHQgPSBjcHVfdG9fYmUxNihkc2NfY2ZnLT5zbGljZV9oZWlnaHQpOwotCi0JLyogUFBTIDEyLCAxMyAqLwotCXBwc19wYXlsb2FkLT5zbGljZV93aWR0aCA9IGNwdV90b19iZTE2KGRzY19jZmctPnNsaWNlX3dpZHRoKTsKLQotCS8qIFBQUyAxNCwgMTUgKi8KLQlwcHNfcGF5bG9hZC0+Y2h1bmtfc2l6ZSA9IGNwdV90b19iZTE2KGRzY19jZmctPnNsaWNlX2NodW5rX3NpemUpOwotCi0JLyogUFBTIDE2ICovCi0JcHBzX3BheWxvYWQtPmluaXRpYWxfeG1pdF9kZWxheV9oaWdoID0KLQkJKChkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXkgJgotCQkgIERTQ19QUFNfSU5JVF9YTUlUX0RFTEFZX0hJR0hfTUFTSykgPj4KLQkJIERTQ19QUFNfTVNCX1NISUZUKTsKLQotCS8qIFBQUyAxNyAqLwotCXBwc19wYXlsb2FkLT5pbml0aWFsX3htaXRfZGVsYXlfbG93ID0KLQkJKGRzY19jZmctPmluaXRpYWxfeG1pdF9kZWxheSAmIERTQ19QUFNfTFNCX01BU0spOwotCi0JLyogUFBTIDE4LCAxOSAqLwotCXBwc19wYXlsb2FkLT5pbml0aWFsX2RlY19kZWxheSA9Ci0JCWNwdV90b19iZTE2KGRzY19jZmctPmluaXRpYWxfZGVjX2RlbGF5KTsKLQotCS8qIFBQUyAyMCBpcyAwICovCi0KLQkvKiBQUFMgMjEgKi8KLQlwcHNfcGF5bG9hZC0+aW5pdGlhbF9zY2FsZV92YWx1ZSA9Ci0JCWRzY19jZmctPmluaXRpYWxfc2NhbGVfdmFsdWU7Ci0KLQkvKiBQUFMgMjIsIDIzICovCi0JcHBzX3BheWxvYWQtPnNjYWxlX2luY3JlbWVudF9pbnRlcnZhbCA9Ci0JCWNwdV90b19iZTE2KGRzY19jZmctPnNjYWxlX2luY3JlbWVudF9pbnRlcnZhbCk7Ci0KLQkvKiBQUFMgMjQgKi8KLQlwcHNfcGF5bG9hZC0+c2NhbGVfZGVjcmVtZW50X2ludGVydmFsX2hpZ2ggPQotCQkoKGRzY19jZmctPnNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbCAmCi0JCSAgRFNDX1BQU19TQ0FMRV9ERUNfSU5UX0hJR0hfTUFTSykgPj4KLQkJIERTQ19QUFNfTVNCX1NISUZUKTsKLQotCS8qIFBQUyAyNSAqLwotCXBwc19wYXlsb2FkLT5zY2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWxfbG93ID0KLQkJKGRzY19jZmctPnNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbCAmIERTQ19QUFNfTFNCX01BU0spOwotCi0JLyogUFBTIDI2Wzc6MF0sIFBQUyAyN1s3OjVdIFJFU0VSVkVEICovCi0KLQkvKiBQUFMgMjcgKi8KLQlwcHNfcGF5bG9hZC0+Zmlyc3RfbGluZV9icGdfb2Zmc2V0ID0KLQkJZHNjX2NmZy0+Zmlyc3RfbGluZV9icGdfb2Zmc2V0OwotCi0JLyogUFBTIDI4LCAyOSAqLwotCXBwc19wYXlsb2FkLT5uZmxfYnBnX29mZnNldCA9Ci0JCWNwdV90b19iZTE2KGRzY19jZmctPm5mbF9icGdfb2Zmc2V0KTsKLQotCS8qIFBQUyAzMCwgMzEgKi8KLQlwcHNfcGF5bG9hZC0+c2xpY2VfYnBnX29mZnNldCA9Ci0JCWNwdV90b19iZTE2KGRzY19jZmctPnNsaWNlX2JwZ19vZmZzZXQpOwotCi0JLyogUFBTIDMyLCAzMyAqLwotCXBwc19wYXlsb2FkLT5pbml0aWFsX29mZnNldCA9Ci0JCWNwdV90b19iZTE2KGRzY19jZmctPmluaXRpYWxfb2Zmc2V0KTsKLQotCS8qIFBQUyAzNCwgMzUgKi8KLQlwcHNfcGF5bG9hZC0+ZmluYWxfb2Zmc2V0ID0gY3B1X3RvX2JlMTYoZHNjX2NmZy0+ZmluYWxfb2Zmc2V0KTsKLQotCS8qIFBQUyAzNiAqLwotCXBwc19wYXlsb2FkLT5mbGF0bmVzc19taW5fcXAgPSBkc2NfY2ZnLT5mbGF0bmVzc19taW5fcXA7Ci0KLQkvKiBQUFMgMzcgKi8KLQlwcHNfcGF5bG9hZC0+ZmxhdG5lc3NfbWF4X3FwID0gZHNjX2NmZy0+ZmxhdG5lc3NfbWF4X3FwOwotCi0JLyogUFBTIDM4LCAzOSAqLwotCXBwc19wYXlsb2FkLT5yY19tb2RlbF9zaXplID0KLQkJY3B1X3RvX2JlMTYoRFNDX1JDX01PREVMX1NJWkVfQ09OU1QpOwotCi0JLyogUFBTIDQwICovCi0JcHBzX3BheWxvYWQtPnJjX2VkZ2VfZmFjdG9yID0gRFNDX1JDX0VER0VfRkFDVE9SX0NPTlNUOwotCi0JLyogUFBTIDQxICovCi0JcHBzX3BheWxvYWQtPnJjX3F1YW50X2luY3JfbGltaXQwID0KLQkJZHNjX2NmZy0+cmNfcXVhbnRfaW5jcl9saW1pdDA7Ci0KLQkvKiBQUFMgNDIgKi8KLQlwcHNfcGF5bG9hZC0+cmNfcXVhbnRfaW5jcl9saW1pdDEgPQotCQlkc2NfY2ZnLT5yY19xdWFudF9pbmNyX2xpbWl0MTsKLQotCS8qIFBQUyA0MyAqLwotCXBwc19wYXlsb2FkLT5yY190Z3Rfb2Zmc2V0ID0gRFNDX1JDX1RHVF9PRkZTRVRfTE9fQ09OU1QgfAotCQlEU0NfUkNfVEdUX09GRlNFVF9ISV9DT05TVCA8PCBEU0NfUFBTX1JDX1RHVF9PRkZTRVRfSElfU0hJRlQ7Ci0KLQkvKiBQUFMgNDQgLSA1NyAqLwotCWZvciAoaSA9IDA7IGkgPCBEU0NfTlVNX0JVRl9SQU5HRVMgLSAxOyBpKyspCi0JCXBwc19wYXlsb2FkLT5yY19idWZfdGhyZXNoW2ldID0KLQkJCWRzY19jZmctPnJjX2J1Zl90aHJlc2hbaV07Ci0KLQkvKiBQUFMgNTggLSA4NyAqLwotCS8qCi0JICogRm9yIERTQyBzaW5rIHByb2dyYW1taW5nIHRoZSBSQyBSYW5nZSBwYXJhbWV0ZXIgZmllbGRzCi0JICogYXJlIGFzIGZvbGxvd3M6IE1pbl9xcFsxNToxMV0sIG1heF9xcFsxMDo2XSwgb2Zmc2V0WzU6MF0KLQkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgRFNDX05VTV9CVUZfUkFOR0VTOyBpKyspIHsKLQkJcHBzX3BheWxvYWQtPnJjX3JhbmdlX3BhcmFtZXRlcnNbaV0gPQotCQkJKChkc2NfY2ZnLT5yY19yYW5nZV9wYXJhbXNbaV0ucmFuZ2VfbWluX3FwIDw8Ci0JCQkgIERTQ19QUFNfUkNfUkFOR0VfTUlOUVBfU0hJRlQpIHwKLQkJCSAoZHNjX2NmZy0+cmNfcmFuZ2VfcGFyYW1zW2ldLnJhbmdlX21heF9xcCA8PAotCQkJICBEU0NfUFBTX1JDX1JBTkdFX01BWFFQX1NISUZUKSB8Ci0JCQkgKGRzY19jZmctPnJjX3JhbmdlX3BhcmFtc1tpXS5yYW5nZV9icGdfb2Zmc2V0KSk7Ci0JCXBwc19wYXlsb2FkLT5yY19yYW5nZV9wYXJhbWV0ZXJzW2ldID0KLQkJCWNwdV90b19iZTE2KHBwc19wYXlsb2FkLT5yY19yYW5nZV9wYXJhbWV0ZXJzW2ldKTsKLQl9Ci0KLQkvKiBQUFMgODggKi8KLQlwcHNfcGF5bG9hZC0+bmF0aXZlXzQyMl80MjAgPSBkc2NfY2ZnLT5uYXRpdmVfNDIyIHwKLQkJZHNjX2NmZy0+bmF0aXZlXzQyMCA8PCBEU0NfUFBTX05BVElWRV80MjBfU0hJRlQ7Ci0KLQkvKiBQUFMgODkgKi8KLQlwcHNfcGF5bG9hZC0+c2Vjb25kX2xpbmVfYnBnX29mZnNldCA9Ci0JCWRzY19jZmctPnNlY29uZF9saW5lX2JwZ19vZmZzZXQ7Ci0KLQkvKiBQUFMgOTAsIDkxICovCi0JcHBzX3BheWxvYWQtPm5zbF9icGdfb2Zmc2V0ID0KLQkJY3B1X3RvX2JlMTYoZHNjX2NmZy0+bnNsX2JwZ19vZmZzZXQpOwotCi0JLyogUFBTIDkyLCA5MyAqLwotCXBwc19wYXlsb2FkLT5zZWNvbmRfbGluZV9vZmZzZXRfYWRqID0KLQkJY3B1X3RvX2JlMTYoZHNjX2NmZy0+c2Vjb25kX2xpbmVfb2Zmc2V0X2Fkaik7Ci0KLQkvKiBQUFMgOTQgLSAxMjcgYXJlIE8gKi8KLX0KLUVYUE9SVF9TWU1CT0woZHJtX2RzY19wcHNfcGF5bG9hZF9wYWNrKTsKLQotLyoqCi0gKiBkcm1fZHNjX2NvbXB1dGVfcmNfcGFyYW1ldGVycygpIC0gV3JpdGUgcmF0ZSBjb250cm9sCi0gKiBwYXJhbWV0ZXJzIHRvIHRoZSBkc2MgY29uZmlndXJhdGlvbiBkZWZpbmVkIGluCi0gKiAmc3RydWN0IGRybV9kc2NfY29uZmlnIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgRFNDIDEuMgotICogc3BlY2lmaWNhdGlvbi4gU29tZSBjb25maWd1cmF0aW9uIGZpZWxkcyBtdXN0IGJlIHByZXNlbnQKLSAqIGJlZm9yZWhhbmQuCi0gKgotICogQHZkc2NfY2ZnOgotICogRFNDIENvbmZpZ3VyYXRpb24gZGF0YSBwYXJ0aWFsbHkgZmlsbGVkIGJ5IGRyaXZlcgotICovCi1pbnQgZHJtX2RzY19jb21wdXRlX3JjX3BhcmFtZXRlcnMoc3RydWN0IGRybV9kc2NfY29uZmlnICp2ZHNjX2NmZykKLXsKLQl1bnNpZ25lZCBsb25nIGdyb3Vwc19wZXJfbGluZSA9IDA7Ci0JdW5zaWduZWQgbG9uZyBncm91cHNfdG90YWwgPSAwOwotCXVuc2lnbmVkIGxvbmcgbnVtX2V4dHJhX211eF9iaXRzID0gMDsKLQl1bnNpZ25lZCBsb25nIHNsaWNlX2JpdHMgPSAwOwotCXVuc2lnbmVkIGxvbmcgaHJkX2RlbGF5ID0gMDsKLQl1bnNpZ25lZCBsb25nIGZpbmFsX3NjYWxlID0gMDsKLQl1bnNpZ25lZCBsb25nIHJic19taW4gPSAwOwotCi0JaWYgKHZkc2NfY2ZnLT5uYXRpdmVfNDIwIHx8IHZkc2NfY2ZnLT5uYXRpdmVfNDIyKSB7Ci0JCS8qIE51bWJlciBvZiBncm91cHMgdXNlZCB0byBjb2RlIGVhY2ggbGluZSBvZiBhIHNsaWNlICovCi0JCWdyb3Vwc19wZXJfbGluZSA9IERJVl9ST1VORF9VUCh2ZHNjX2NmZy0+c2xpY2Vfd2lkdGggLyAyLAotCQkJCQkgICAgICAgRFNDX1JDX1BJWEVMU19QRVJfR1JPVVApOwotCi0JCS8qIGNodW5rc2l6ZSBpbiBCeXRlcyAqLwotCQl2ZHNjX2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSA9IERJVl9ST1VORF9VUCh2ZHNjX2NmZy0+c2xpY2Vfd2lkdGggLyAyICoKLQkJCQkJCQkgIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCwKLQkJCQkJCQkgICg4ICogMTYpKTsKLQl9IGVsc2UgewotCQkvKiBOdW1iZXIgb2YgZ3JvdXBzIHVzZWQgdG8gY29kZSBlYWNoIGxpbmUgb2YgYSBzbGljZSAqLwotCQlncm91cHNfcGVyX2xpbmUgPSBESVZfUk9VTkRfVVAodmRzY19jZmctPnNsaWNlX3dpZHRoLAotCQkJCQkgICAgICAgRFNDX1JDX1BJWEVMU19QRVJfR1JPVVApOwotCi0JCS8qIGNodW5rc2l6ZSBpbiBCeXRlcyAqLwotCQl2ZHNjX2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSA9IERJVl9ST1VORF9VUCh2ZHNjX2NmZy0+c2xpY2Vfd2lkdGggKgotCQkJCQkJCSAgdmRzY19jZmctPmJpdHNfcGVyX3BpeGVsLAotCQkJCQkJCSAgKDggKiAxNikpOwotCX0KLQotCWlmICh2ZHNjX2NmZy0+Y29udmVydF9yZ2IpCi0JCW51bV9leHRyYV9tdXhfYml0cyA9IDMgKiAodmRzY19jZmctPm11eF93b3JkX3NpemUgKwotCQkJCQkgICg0ICogdmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCArIDQpCi0JCQkJCSAgLSAyKTsKLQllbHNlIGlmICh2ZHNjX2NmZy0+bmF0aXZlXzQyMikKLQkJbnVtX2V4dHJhX211eF9iaXRzID0gNCAqIHZkc2NfY2ZnLT5tdXhfd29yZF9zaXplICsKLQkJCSg0ICogdmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCArIDQpICsKLQkJCTMgKiAoNCAqIHZkc2NfY2ZnLT5iaXRzX3Blcl9jb21wb25lbnQpIC0gMjsKLQllbHNlCi0JCW51bV9leHRyYV9tdXhfYml0cyA9IDMgKiB2ZHNjX2NmZy0+bXV4X3dvcmRfc2l6ZSArCi0JCQkoNCAqIHZkc2NfY2ZnLT5iaXRzX3Blcl9jb21wb25lbnQgKyA0KSArCi0JCQkyICogKDQgKiB2ZHNjX2NmZy0+Yml0c19wZXJfY29tcG9uZW50KSAtIDI7Ci0JLyogTnVtYmVyIG9mIGJpdHMgaW4gb25lIFNsaWNlICovCi0Jc2xpY2VfYml0cyA9IDggKiB2ZHNjX2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSAqIHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQ7Ci0KLQl3aGlsZSAoKG51bV9leHRyYV9tdXhfYml0cyA+IDApICYmCi0JICAgICAgICgoc2xpY2VfYml0cyAtIG51bV9leHRyYV9tdXhfYml0cykgJSB2ZHNjX2NmZy0+bXV4X3dvcmRfc2l6ZSkpCi0JCW51bV9leHRyYV9tdXhfYml0cy0tOwotCi0JaWYgKGdyb3Vwc19wZXJfbGluZSA8IHZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlIC0gOCkKLQkJdmRzY19jZmctPmluaXRpYWxfc2NhbGVfdmFsdWUgPSBncm91cHNfcGVyX2xpbmUgKyA4OwotCi0JLyogc2NhbGVfZGVjcmVtZW50X2ludGVydmFsIGNhbGN1bGF0aW9uIGFjY29yZGluZyB0byBEU0Mgc3BlYyAxLjExICovCi0JaWYgKHZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlID4gOCkKLQkJdmRzY19jZmctPnNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbCA9IGdyb3Vwc19wZXJfbGluZSAvCi0JCQkodmRzY19jZmctPmluaXRpYWxfc2NhbGVfdmFsdWUgLSA4KTsKLQllbHNlCi0JCXZkc2NfY2ZnLT5zY2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWwgPSBEU0NfU0NBTEVfREVDUkVNRU5UX0lOVEVSVkFMX01BWDsKLQotCXZkc2NfY2ZnLT5maW5hbF9vZmZzZXQgPSB2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtCi0JCSh2ZHNjX2NmZy0+aW5pdGlhbF94bWl0X2RlbGF5ICoKLQkJIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCArIDgpIC8gMTYgKyBudW1fZXh0cmFfbXV4X2JpdHM7Ci0KLQlpZiAodmRzY19jZmctPmZpbmFsX29mZnNldCA+PSB2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSkgewotCQlEUk1fREVCVUdfS01TKCJGaW5hbE9mcyA8IFJjTW9kZWxTemUgZm9yIHRoaXMgSW5pdGlhbFhtaXREZWxheVxuIik7Ci0JCXJldHVybiAtRVJBTkdFOwotCX0KLQotCWZpbmFsX3NjYWxlID0gKHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplICogOCkgLwotCQkodmRzY19jZmctPnJjX21vZGVsX3NpemUgLSB2ZHNjX2NmZy0+ZmluYWxfb2Zmc2V0KTsKLQlpZiAodmRzY19jZmctPnNsaWNlX2hlaWdodCA+IDEpCi0JCS8qCi0JCSAqIE5mbEJwZ09mZnNldCBpcyAxNiBiaXQgdmFsdWUgd2l0aCAxMSBmcmFjdGlvbmFsIGJpdHMKLQkJICogaGVuY2Ugd2UgbXVsdGlwbHkgYnkgMl4xMSBmb3IgcHJlc2VydmluZyB0aGUKLQkJICogZnJhY3Rpb25hbCBwYXJ0Ci0JCSAqLwotCQl2ZHNjX2NmZy0+bmZsX2JwZ19vZmZzZXQgPSBESVZfUk9VTkRfVVAoKHZkc2NfY2ZnLT5maXJzdF9saW5lX2JwZ19vZmZzZXQgPDwgMTEpLAotCQkJCQkJCSh2ZHNjX2NmZy0+c2xpY2VfaGVpZ2h0IC0gMSkpOwotCWVsc2UKLQkJdmRzY19jZmctPm5mbF9icGdfb2Zmc2V0ID0gMDsKLQotCS8qIDJeMTYgLSAxICovCi0JaWYgKHZkc2NfY2ZnLT5uZmxfYnBnX29mZnNldCA+IDY1NTM1KSB7Ci0JCURSTV9ERUJVR19LTVMoIk5mbEJwZ09mZnNldCBpcyB0b28gbGFyZ2UgZm9yIHRoaXMgc2xpY2UgaGVpZ2h0XG4iKTsKLQkJcmV0dXJuIC1FUkFOR0U7Ci0JfQotCi0JLyogTnVtYmVyIG9mIGdyb3VwcyB1c2VkIHRvIGNvZGUgdGhlIGVudGlyZSBzbGljZSAqLwotCWdyb3Vwc190b3RhbCA9IGdyb3Vwc19wZXJfbGluZSAqIHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQ7Ci0KLQkvKiBzbGljZV9icGdfb2Zmc2V0IGlzIDE2IGJpdCB2YWx1ZSB3aXRoIDExIGZyYWN0aW9uYWwgYml0cyAqLwotCXZkc2NfY2ZnLT5zbGljZV9icGdfb2Zmc2V0ID0gRElWX1JPVU5EX1VQKCgodmRzY19jZmctPnJjX21vZGVsX3NpemUgLQotCQkJCQkJICAgIHZkc2NfY2ZnLT5pbml0aWFsX29mZnNldCArCi0JCQkJCQkgICAgbnVtX2V4dHJhX211eF9iaXRzKSA8PCAxMSksCi0JCQkJCQkgIGdyb3Vwc190b3RhbCk7Ci0KLQlpZiAoZmluYWxfc2NhbGUgPiA5KSB7Ci0JCS8qCi0JCSAqIFNjYWxlSW5jcmVtZW50SW50ZXJ2YWwgPQotCQkgKiBmaW5hbG9mZnNldC8oKE5mbEJwZ09mZnNldCArIFNsaWNlQnBnT2Zmc2V0KSo4KGZpbmFsc2NhbGUgLSAxLjEyNSkpCi0JCSAqIGFzIChOZmxCcGdPZmZzZXQgKyBTbGljZUJwZ09mZnNldCkgaGFzIDExIGJpdCBmcmFjdGlvbmFsIHZhbHVlLAotCQkgKiB3ZSBuZWVkIGRpdmlkZSBieSAyXjExIGZyb20gcHN0RHNjQ2ZnIHZhbHVlcwotCQkgKi8KLQkJdmRzY19jZmctPnNjYWxlX2luY3JlbWVudF9pbnRlcnZhbCA9Ci0JCQkJKHZkc2NfY2ZnLT5maW5hbF9vZmZzZXQgKiAoMSA8PCAxMSkpIC8KLQkJCQkoKHZkc2NfY2ZnLT5uZmxfYnBnX29mZnNldCArCi0JCQkJdmRzY19jZmctPnNsaWNlX2JwZ19vZmZzZXQpICoKLQkJCQkoZmluYWxfc2NhbGUgLSA5KSk7Ci0JfSBlbHNlIHsKLQkJLyoKLQkJICogSWYgZmluYWxTY2FsZVZhbHVlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byA5LCBhIHZhbHVlIG9mIDAgc2hvdWxkCi0JCSAqIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGUgc2NhbGUgaW5jcmVtZW50IGF0IHRoZSBlbmQgb2YgdGhlIHNsaWNlCi0JCSAqLwotCQl2ZHNjX2NmZy0+c2NhbGVfaW5jcmVtZW50X2ludGVydmFsID0gMDsKLQl9Ci0KLQlpZiAodmRzY19jZmctPnNjYWxlX2luY3JlbWVudF9pbnRlcnZhbCA+IDY1NTM1KSB7Ci0JCURSTV9ERUJVR19LTVMoIlNjYWxlSW5jcmVtZW50SW50ZXJ2YWwgaXMgbGFyZ2UgZm9yIHNsaWNlIGhlaWdodFxuIik7Ci0JCXJldHVybiAtRVJBTkdFOwotCX0KLQotCS8qCi0JICogRFNDIHNwZWMgbWVudGlvbnMgdGhhdCBiaXRzX3Blcl9waXhlbCBzcGVjaWZpZXMgdGhlIHRhcmdldAotCSAqIGJpdHMvcGl4ZWwgKGJwcCkgcmF0ZSB0aGF0IGlzIHVzZWQgYnkgdGhlIGVuY29kZXIsCi0JICogaW4gc3RlcHMgb2YgMS8xNiBvZiBhIGJpdCBwZXIgcGl4ZWwKLQkgKi8KLQlyYnNfbWluID0gdmRzY19jZmctPnJjX21vZGVsX3NpemUgLSB2ZHNjX2NmZy0+aW5pdGlhbF9vZmZzZXQgKwotCQlESVZfUk9VTkRfVVAodmRzY19jZmctPmluaXRpYWxfeG1pdF9kZWxheSAqCi0JCQkgICAgIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCwgMTYpICsKLQkJZ3JvdXBzX3Blcl9saW5lICogdmRzY19jZmctPmZpcnN0X2xpbmVfYnBnX29mZnNldDsKLQotCWhyZF9kZWxheSA9IERJVl9ST1VORF9VUCgocmJzX21pbiAqIDE2KSwgdmRzY19jZmctPmJpdHNfcGVyX3BpeGVsKTsKLQl2ZHNjX2NmZy0+cmNfYml0cyA9IChocmRfZGVsYXkgKiB2ZHNjX2NmZy0+Yml0c19wZXJfcGl4ZWwpIC8gMTY7Ci0JdmRzY19jZmctPmluaXRpYWxfZGVjX2RlbGF5ID0gaHJkX2RlbGF5IC0gdmRzY19jZmctPmluaXRpYWxfeG1pdF9kZWxheTsKLQotCS8qIEFzIHBlciBEU0Mgc3BlYyB2MS4yYSByZWNvbW1lbmRhdGlvbjogKi8KLQlpZiAodmRzY19jZmctPm5hdGl2ZV80MjApCi0JCXZkc2NfY2ZnLT5zZWNvbmRfbGluZV9vZmZzZXRfYWRqID0gNTEyOwotCWVsc2UKLQkJdmRzY19jZmctPnNlY29uZF9saW5lX29mZnNldF9hZGogPSAwOwotCi0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MKGRybV9kc2NfY29tcHV0ZV9yY19wYXJhbWV0ZXJzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vTWFrZWZpbGUKaW5kZXggYzNkOTI4Ny4uYjMwNjIyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vTWFrZWZpbGUKQEAgLTI0LDcgKzI0LDcgQEAKICMgSXQgcHJvdmlkZXMgdGhlIGNvbnRyb2wgYW5kIHN0YXR1cyBvZiBIVyBHUElPIHBpbnMuCiAKIEdQSU8gPSBncGlvX2Jhc2UubyBncGlvX3NlcnZpY2UubyBod19mYWN0b3J5Lm8gXAotICAgICAgIGh3X2dwaW8ubyBod19ocGQubyBod19kZGMubyBod190cmFuc2xhdGUubworICAgICAgIGh3X2dwaW8ubyBod19ocGQubyBod19kZGMubyBod19nZW5lcmljLm8gaHdfdHJhbnNsYXRlLm8KIAogQU1EX0RBTF9HUElPID0gJChhZGRwcmVmaXggJChBTUREQUxQQVRIKS9kYy9ncGlvLywkKEdQSU8pKQogCkBAIC04MCw2ICs4MCwxMyBAQAogQU1EX0RJU1BMQVlfRklMRVMgKz0gJChBTURfREFMX0dQSU9fRENOMjApCiBlbmRpZgogCitpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEKK0dQSU9fRENOMjEgPSBod190cmFuc2xhdGVfZGNuMjEubyBod19mYWN0b3J5X2RjbjIxLm8KKworQU1EX0RBTF9HUElPX0RDTjIxID0gJChhZGRwcmVmaXggJChBTUREQUxQQVRIKS9kYy9ncGlvL2RjbjIxLywkKEdQSU9fRENOMjEpKQorCitBTURfRElTUExBWV9GSUxFUyArPSAkKEFNRF9EQUxfR1BJT19EQ04yMSkKK2VuZGlmCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIERpYWdub3N0aWNzIG9uIEZQR0EKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjZTExMC9od19mYWN0b3J5X2RjZTExMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNlMTEwL2h3X2ZhY3RvcnlfZGNlMTEwLmMKaW5kZXggMjBkODFiYy4uNjZlNDg0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNlMTEwL2h3X2ZhY3RvcnlfZGNlMTEwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNlMTEwL2h3X2ZhY3RvcnlfZGNlMTEwLmMKQEAgLTI0LDkgKzI0LDE1IEBACiAgKi8KIAogI2luY2x1ZGUgImRtX3NlcnZpY2VzLmgiCisKICNpbmNsdWRlICJpbmNsdWRlL2dwaW9fdHlwZXMuaCIKICNpbmNsdWRlICIuLi9od19mYWN0b3J5LmgiCiAKKyNpbmNsdWRlICIuLi9od19ncGlvLmgiCisjaW5jbHVkZSAiLi4vaHdfZGRjLmgiCisjaW5jbHVkZSAiLi4vaHdfaHBkLmgiCisjaW5jbHVkZSAiLi4vaHdfZ2VuZXJpYy5oIgorCiAjaW5jbHVkZSAiaHdfZmFjdG9yeV9kY2UxMTAuaCIKIAogI2luY2x1ZGUgImRjZS9kY2VfMTFfMF9kLmgiCkBAIC0xNDMsMTIgKzE0OSwxMiBAQCBzdGF0aWMgdm9pZCBkZWZpbmVfaHBkX3JlZ2lzdGVycyhzdHJ1Y3QgaHdfZ3Bpb19waW4gKnBpbiwgdWludDMyX3QgZW4pCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfZmFjdG9yeV9mdW5jcyBmdW5jcyA9IHsKLQkuY3JlYXRlX2RkY19kYXRhID0gZGFsX2h3X2RkY19jcmVhdGUsCi0JLmNyZWF0ZV9kZGNfY2xvY2sgPSBkYWxfaHdfZGRjX2NyZWF0ZSwKLQkuY3JlYXRlX2dlbmVyaWMgPSBOVUxMLAotCS5jcmVhdGVfaHBkID0gZGFsX2h3X2hwZF9jcmVhdGUsCi0JLmNyZWF0ZV9zeW5jID0gTlVMTCwKLQkuY3JlYXRlX2dzbCA9IE5VTEwsCisJLmluaXRfZGRjX2RhdGEgPSBkYWxfaHdfZGRjX2luaXQsCisJLmluaXRfZ2VuZXJpYyA9IE5VTEwsCisJLmluaXRfaHBkID0gZGFsX2h3X2hwZF9pbml0LAorCS5nZXRfZGRjX3BpbiA9IGRhbF9od19kZGNfZ2V0X3BpbiwKKwkuZ2V0X2hwZF9waW4gPSBkYWxfaHdfaHBkX2dldF9waW4sCisJLmdldF9nZW5lcmljX3BpbiA9IE5VTEwsCiAJLmRlZmluZV9ocGRfcmVnaXN0ZXJzID0gZGVmaW5lX2hwZF9yZWdpc3RlcnMsCiAJLmRlZmluZV9kZGNfcmVnaXN0ZXJzID0gZGVmaW5lX2RkY19yZWdpc3RlcnMKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY2UxMjAvaHdfZmFjdG9yeV9kY2UxMjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjZTEyMC9od19mYWN0b3J5X2RjZTEyMC5jCmluZGV4IGVhM2Y4ODguLmNmOThhYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjZTEyMC9od19mYWN0b3J5X2RjZTEyMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjZTEyMC9od19mYWN0b3J5X2RjZTEyMC5jCkBAIC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJpbmNsdWRlL2dwaW9fdHlwZXMuaCIKICNpbmNsdWRlICIuLi9od19mYWN0b3J5LmgiCiAKLQogI2luY2x1ZGUgIi4uL2h3X2dwaW8uaCIKICNpbmNsdWRlICIuLi9od19kZGMuaCIKICNpbmNsdWRlICIuLi9od19ocGQuaCIKKyNpbmNsdWRlICIuLi9od19nZW5lcmljLmgiCiAKICNpbmNsdWRlICJod19mYWN0b3J5X2RjZTEyMC5oIgogCkBAIC0xNjQsMTIgKzE2NCwxMiBAQCBzdGF0aWMgdm9pZCBkZWZpbmVfaHBkX3JlZ2lzdGVycyhzdHJ1Y3QgaHdfZ3Bpb19waW4gKnBpbiwgdWludDMyX3QgZW4pCiAKIC8qIGZ1Y250aW9uIHRhYmxlICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IGh3X2ZhY3RvcnlfZnVuY3MgZnVuY3MgPSB7Ci0JLmNyZWF0ZV9kZGNfZGF0YSA9IGRhbF9od19kZGNfY3JlYXRlLAotCS5jcmVhdGVfZGRjX2Nsb2NrID0gZGFsX2h3X2RkY19jcmVhdGUsCi0JLmNyZWF0ZV9nZW5lcmljID0gTlVMTCwKLQkuY3JlYXRlX2hwZCA9IGRhbF9od19ocGRfY3JlYXRlLAotCS5jcmVhdGVfc3luYyA9IE5VTEwsCi0JLmNyZWF0ZV9nc2wgPSBOVUxMLAorCS5pbml0X2RkY19kYXRhID0gZGFsX2h3X2RkY19pbml0LAorCS5pbml0X2dlbmVyaWMgPSBOVUxMLAorCS5pbml0X2hwZCA9IGRhbF9od19ocGRfaW5pdCwKKwkuZ2V0X2RkY19waW4gPSBkYWxfaHdfZGRjX2dldF9waW4sCisJLmdldF9ocGRfcGluID0gZGFsX2h3X2hwZF9nZXRfcGluLAorCS5nZXRfZ2VuZXJpY19waW4gPSBOVUxMLAogCS5kZWZpbmVfaHBkX3JlZ2lzdGVycyA9IGRlZmluZV9ocGRfcmVnaXN0ZXJzLAogCS5kZWZpbmVfZGRjX3JlZ2lzdGVycyA9IGRlZmluZV9kZGNfcmVnaXN0ZXJzCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNlODAvaHdfZmFjdG9yeV9kY2U4MC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNlODAvaHdfZmFjdG9yeV9kY2U4MC5jCmluZGV4IDQ4YjY3ODYuLjQ5NmQzZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjZTgwL2h3X2ZhY3RvcnlfZGNlODAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY2U4MC9od19mYWN0b3J5X2RjZTgwLmMKQEAgLTMyLDEwICszMiwxMiBAQAogI2luY2x1ZGUgIi4uL2h3X2dwaW8uaCIKICNpbmNsdWRlICIuLi9od19kZGMuaCIKICNpbmNsdWRlICIuLi9od19ocGQuaCIKKyNpbmNsdWRlICIuLi9od19nZW5lcmljLmgiCiAKICNpbmNsdWRlICJkY2UvZGNlXzhfMF9kLmgiCiAjaW5jbHVkZSAiZGNlL2RjZV84XzBfc2hfbWFzay5oIgogCisKICNkZWZpbmUgUkVHKHJlZ19uYW1lKVwKIAkJbW0gIyMgcmVnX25hbWUKIApAQCAtMTQ3LDEyICsxNDksMTIgQEAgc3RhdGljIHZvaWQgZGVmaW5lX2hwZF9yZWdpc3RlcnMoc3RydWN0IGh3X2dwaW9fcGluICpwaW4sIHVpbnQzMl90IGVuKQogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGh3X2ZhY3RvcnlfZnVuY3MgZnVuY3MgPSB7Ci0JLmNyZWF0ZV9kZGNfZGF0YSA9IGRhbF9od19kZGNfY3JlYXRlLAotCS5jcmVhdGVfZGRjX2Nsb2NrID0gZGFsX2h3X2RkY19jcmVhdGUsCi0JLmNyZWF0ZV9nZW5lcmljID0gTlVMTCwKLQkuY3JlYXRlX2hwZCA9IGRhbF9od19ocGRfY3JlYXRlLAotCS5jcmVhdGVfc3luYyA9IE5VTEwsCi0JLmNyZWF0ZV9nc2wgPSBOVUxMLAorCS5pbml0X2RkY19kYXRhID0gZGFsX2h3X2RkY19pbml0LAorCS5pbml0X2dlbmVyaWMgPSBOVUxMLAorCS5pbml0X2hwZCA9IGRhbF9od19ocGRfaW5pdCwKKwkuZ2V0X2RkY19waW4gPSBkYWxfaHdfZGRjX2dldF9waW4sCisJLmdldF9ocGRfcGluID0gZGFsX2h3X2hwZF9nZXRfcGluLAorCS5nZXRfZ2VuZXJpY19waW4gPSBOVUxMLAogCS5kZWZpbmVfaHBkX3JlZ2lzdGVycyA9IGRlZmluZV9ocGRfcmVnaXN0ZXJzLAogCS5kZWZpbmVfZGRjX3JlZ2lzdGVycyA9IGRlZmluZV9kZGNfcmVnaXN0ZXJzCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNuMTAvaHdfZmFjdG9yeV9kY24xMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNuMTAvaHdfZmFjdG9yeV9kY24xMC5jCmluZGV4IDMyYWE0N2EuLmIzOGM5NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjbjEwL2h3X2ZhY3RvcnlfZGNuMTAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24xMC9od19mYWN0b3J5X2RjbjEwLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICIuLi9od19ncGlvLmgiCiAjaW5jbHVkZSAiLi4vaHdfZGRjLmgiCiAjaW5jbHVkZSAiLi4vaHdfaHBkLmgiCisjaW5jbHVkZSAiLi4vaHdfZ2VuZXJpYy5oIgogCiAjaW5jbHVkZSAiaHdfZmFjdG9yeV9kY24xMC5oIgogCkBAIC0xMjEsNiArMTIyLDQyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRjX3NoX21hc2sgZGRjX21hc2sgPSB7CiAJCUREQ19NQVNLX1NIX0xJU1QoX01BU0spCiB9OwogCisjaW5jbHVkZSAiLi4vZ2VuZXJpY19yZWdzLmgiCisKKy8qIHNldCBmaWVsZCBuYW1lICovCisjZGVmaW5lIFNGX0dFTkVSSUMocmVnX25hbWUsIGZpZWxkX25hbWUsIHBvc3RfZml4KVwKKwkuZmllbGRfbmFtZSA9IHJlZ19uYW1lICMjIF9fICMjIGZpZWxkX25hbWUgIyMgcG9zdF9maXgKKworI2RlZmluZSBnZW5lcmljX3JlZ3MoaWQpIFwKK3tcCisJR0VORVJJQ19SRUdfTElTVChpZClcCit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY19yZWdpc3RlcnMgZ2VuZXJpY19yZWdzW10gPSB7CisJZ2VuZXJpY19yZWdzKEEpLAorCWdlbmVyaWNfcmVncyhCKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY19zaF9tYXNrIGdlbmVyaWNfc2hpZnRbXSA9IHsKKwlHRU5FUklDX01BU0tfU0hfTElTVChfX1NISUZULCBBKSwKKwlHRU5FUklDX01BU0tfU0hfTElTVChfX1NISUZULCBCKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY19zaF9tYXNrIGdlbmVyaWNfbWFza1tdID0geworCUdFTkVSSUNfTUFTS19TSF9MSVNUKF9NQVNLLCBBKSwKKwlHRU5FUklDX01BU0tfU0hfTElTVChfTUFTSywgQiksCit9OworCitzdGF0aWMgdm9pZCBkZWZpbmVfZ2VuZXJpY19yZWdpc3RlcnMoc3RydWN0IGh3X2dwaW9fcGluICpwaW4sIHVpbnQzMl90IGVuKQoreworCXN0cnVjdCBod19nZW5lcmljICpnZW5lcmljID0gSFdfR0VORVJJQ19GUk9NX0JBU0UocGluKTsKKworCWdlbmVyaWMtPnJlZ3MgPSAmZ2VuZXJpY19yZWdzW2VuXTsKKwlnZW5lcmljLT5zaGlmdHMgPSAmZ2VuZXJpY19zaGlmdFtlbl07CisJZ2VuZXJpYy0+bWFza3MgPSAmZ2VuZXJpY19tYXNrW2VuXTsKKwlnZW5lcmljLT5iYXNlLnJlZ3MgPSAmZ2VuZXJpY19yZWdzW2VuXS5ncGlvOworfQorCiBzdGF0aWMgdm9pZCBkZWZpbmVfZGRjX3JlZ2lzdGVycygKIAkJc3RydWN0IGh3X2dwaW9fcGluICpwaW4sCiAJCXVpbnQzMl90IGVuKQpAQCAtMTU5LDE0ICsxOTYsMTUgQEAgc3RhdGljIHZvaWQgZGVmaW5lX2hwZF9yZWdpc3RlcnMoc3RydWN0IGh3X2dwaW9fcGluICpwaW4sIHVpbnQzMl90IGVuKQogCiAvKiBmdWNudGlvbiB0YWJsZSAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBod19mYWN0b3J5X2Z1bmNzIGZ1bmNzID0gewotCS5jcmVhdGVfZGRjX2RhdGEgPSBkYWxfaHdfZGRjX2NyZWF0ZSwKLQkuY3JlYXRlX2RkY19jbG9jayA9IGRhbF9od19kZGNfY3JlYXRlLAotCS5jcmVhdGVfZ2VuZXJpYyA9IE5VTEwsCi0JLmNyZWF0ZV9ocGQgPSBkYWxfaHdfaHBkX2NyZWF0ZSwKLQkuY3JlYXRlX3N5bmMgPSBOVUxMLAotCS5jcmVhdGVfZ3NsID0gTlVMTCwKKwkuaW5pdF9kZGNfZGF0YSA9IGRhbF9od19kZGNfaW5pdCwKKwkuaW5pdF9nZW5lcmljID0gZGFsX2h3X2dlbmVyaWNfaW5pdCwKKwkuaW5pdF9ocGQgPSBkYWxfaHdfaHBkX2luaXQsCisJLmdldF9kZGNfcGluID0gZGFsX2h3X2RkY19nZXRfcGluLAorCS5nZXRfaHBkX3BpbiA9IGRhbF9od19ocGRfZ2V0X3BpbiwKKwkuZ2V0X2dlbmVyaWNfcGluID0gZGFsX2h3X2dlbmVyaWNfZ2V0X3BpbiwKIAkuZGVmaW5lX2hwZF9yZWdpc3RlcnMgPSBkZWZpbmVfaHBkX3JlZ2lzdGVycywKLQkuZGVmaW5lX2RkY19yZWdpc3RlcnMgPSBkZWZpbmVfZGRjX3JlZ2lzdGVycworCS5kZWZpbmVfZGRjX3JlZ2lzdGVycyA9IGRlZmluZV9kZGNfcmVnaXN0ZXJzLAorCS5kZWZpbmVfZ2VuZXJpY19yZWdpc3RlcnMgPSBkZWZpbmVfZ2VuZXJpY19yZWdpc3RlcnMKIH07CiAvKgogICogZGFsX2h3X2ZhY3RvcnlfZGNuMTBfaW5pdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNuMjAvaHdfZmFjdG9yeV9kY24yMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNuMjAvaHdfZmFjdG9yeV9kY24yMC5jCmluZGV4IGFiZDc2ZDguLjQzYTQ0MDM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24yMC9od19mYWN0b3J5X2RjbjIwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNuMjAvaHdfZmFjdG9yeV9kY24yMC5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiLi4vaHdfZ3Bpby5oIgogI2luY2x1ZGUgIi4uL2h3X2RkYy5oIgogI2luY2x1ZGUgIi4uL2h3X2hwZC5oIgorI2luY2x1ZGUgIi4uL2h3X2dlbmVyaWMuaCIKIAogI2luY2x1ZGUgImh3X2ZhY3RvcnlfZGNuMjAuaCIKIApAQCAtMTM4LDYgKzEzOSwzMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRkY19zaF9tYXNrIGRkY19tYXNrW10gPSB7CiAJRERDX01BU0tfU0hfTElTVF9EQ04yKF9NQVNLLCA2KQogfTsKIAorI2luY2x1ZGUgIi4uL2dlbmVyaWNfcmVncy5oIgorCisvKiBzZXQgZmllbGQgbmFtZSAqLworI2RlZmluZSBTRl9HRU5FUklDKHJlZ19uYW1lLCBmaWVsZF9uYW1lLCBwb3N0X2ZpeClcCisJLmZpZWxkX25hbWUgPSByZWdfbmFtZSAjIyBfXyAjIyBmaWVsZF9uYW1lICMjIHBvc3RfZml4CisKKyNkZWZpbmUgZ2VuZXJpY19yZWdzKGlkKSBcCit7XAorCUdFTkVSSUNfUkVHX0xJU1QoaWQpXAorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfcmVnaXN0ZXJzIGdlbmVyaWNfcmVnc1tdID0geworCWdlbmVyaWNfcmVncyhBKSwKKwlnZW5lcmljX3JlZ3MoQiksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfc2hfbWFzayBnZW5lcmljX3NoaWZ0W10gPSB7CisJR0VORVJJQ19NQVNLX1NIX0xJU1QoX19TSElGVCwgQSksCisJR0VORVJJQ19NQVNLX1NIX0xJU1QoX19TSElGVCwgQiksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfc2hfbWFzayBnZW5lcmljX21hc2tbXSA9IHsKKwlHRU5FUklDX01BU0tfU0hfTElTVChfTUFTSywgQSksCisJR0VORVJJQ19NQVNLX1NIX0xJU1QoX01BU0ssIEIpLAorfTsKKwogc3RhdGljIHZvaWQgZGVmaW5lX2RkY19yZWdpc3RlcnMoCiAJCXN0cnVjdCBod19ncGlvX3BpbiAqcGluLAogCQl1aW50MzJfdCBlbikKQEAgLTE3MywxNyArMjAwLDI3IEBAIHN0YXRpYyB2b2lkIGRlZmluZV9ocGRfcmVnaXN0ZXJzKHN0cnVjdCBod19ncGlvX3BpbiAqcGluLCB1aW50MzJfdCBlbikKIAlocGQtPmJhc2UucmVncyA9ICZocGRfcmVnc1tlbl0uZ3BpbzsKIH0KIAorc3RhdGljIHZvaWQgZGVmaW5lX2dlbmVyaWNfcmVnaXN0ZXJzKHN0cnVjdCBod19ncGlvX3BpbiAqcGluLCB1aW50MzJfdCBlbikKK3sKKwlzdHJ1Y3QgaHdfZ2VuZXJpYyAqZ2VuZXJpYyA9IEhXX0dFTkVSSUNfRlJPTV9CQVNFKHBpbik7CisKKwlnZW5lcmljLT5yZWdzID0gJmdlbmVyaWNfcmVnc1tlbl07CisJZ2VuZXJpYy0+c2hpZnRzID0gJmdlbmVyaWNfc2hpZnRbZW5dOworCWdlbmVyaWMtPm1hc2tzID0gJmdlbmVyaWNfbWFza1tlbl07CisJZ2VuZXJpYy0+YmFzZS5yZWdzID0gJmdlbmVyaWNfcmVnc1tlbl0uZ3BpbzsKK30KIAogLyogZnVjbnRpb24gdGFibGUgKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfZmFjdG9yeV9mdW5jcyBmdW5jcyA9IHsKLQkuY3JlYXRlX2RkY19kYXRhID0gZGFsX2h3X2RkY19jcmVhdGUsCi0JLmNyZWF0ZV9kZGNfY2xvY2sgPSBkYWxfaHdfZGRjX2NyZWF0ZSwKLQkuY3JlYXRlX2dlbmVyaWMgPSBOVUxMLAotCS5jcmVhdGVfaHBkID0gZGFsX2h3X2hwZF9jcmVhdGUsCi0JLmNyZWF0ZV9zeW5jID0gTlVMTCwKLQkuY3JlYXRlX2dzbCA9IE5VTEwsCisJLmluaXRfZGRjX2RhdGEgPSBkYWxfaHdfZGRjX2luaXQsCisJLmluaXRfZ2VuZXJpYyA9IGRhbF9od19nZW5lcmljX2luaXQsCisJLmluaXRfaHBkID0gZGFsX2h3X2hwZF9pbml0LAorCS5nZXRfZGRjX3BpbiA9IGRhbF9od19kZGNfZ2V0X3BpbiwKKwkuZ2V0X2hwZF9waW4gPSBkYWxfaHdfaHBkX2dldF9waW4sCisJLmdldF9nZW5lcmljX3BpbiA9IGRhbF9od19nZW5lcmljX2dldF9waW4sCiAJLmRlZmluZV9ocGRfcmVnaXN0ZXJzID0gZGVmaW5lX2hwZF9yZWdpc3RlcnMsCi0JLmRlZmluZV9kZGNfcmVnaXN0ZXJzID0gZGVmaW5lX2RkY19yZWdpc3RlcnMKKwkuZGVmaW5lX2RkY19yZWdpc3RlcnMgPSBkZWZpbmVfZGRjX3JlZ2lzdGVycywKKwkuZGVmaW5lX2dlbmVyaWNfcmVnaXN0ZXJzID0gZGVmaW5lX2dlbmVyaWNfcmVnaXN0ZXJzLAogfTsKIC8qCiAgKiBkYWxfaHdfZmFjdG9yeV9kY24xMF9pbml0CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24yMC9od190cmFuc2xhdGVfZGNuMjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjbjIwL2h3X3RyYW5zbGF0ZV9kY24yMC5jCmluZGV4IGIzOTNjYzEuLjkxNWU4OTZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24yMC9od190cmFuc2xhdGVfZGNuMjAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24yMC9od190cmFuc2xhdGVfZGNuMjAuYwpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgYm9vbCBvZmZzZXRfdG9faWQoCiB7CiAJc3dpdGNoIChvZmZzZXQpIHsKIAkvKiBHRU5FUklDICovCi0JY2FzZSBSRUcoRENfR0VORVJJQ0EpOgorCWNhc2UgUkVHKERDX0dQSU9fR0VORVJJQ19BKToKIAkJKmlkID0gR1BJT19JRF9HRU5FUklDOwogCQlzd2l0Y2ggKG1hc2spIHsKIAkJY2FzZSBEQ19HUElPX0dFTkVSSUNfQV9fRENfR1BJT19HRU5FUklDQV9BX01BU0s6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24yMS9od19mYWN0b3J5X2RjbjIxLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24yMS9od19mYWN0b3J5X2RjbjIxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU3MjY3OAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjbjIxL2h3X2ZhY3RvcnlfZGNuMjEuYwpAQCAtMCwwICsxLDI0MiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEzLTE1IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKKyNpbmNsdWRlICJkbV9zZXJ2aWNlcy5oIgorI2luY2x1ZGUgImluY2x1ZGUvZ3Bpb190eXBlcy5oIgorI2luY2x1ZGUgIi4uL2h3X2ZhY3RvcnkuaCIKKworCisjaW5jbHVkZSAiLi4vaHdfZ3Bpby5oIgorI2luY2x1ZGUgIi4uL2h3X2RkYy5oIgorI2luY2x1ZGUgIi4uL2h3X2hwZC5oIgorI2luY2x1ZGUgIi4uL2h3X2dlbmVyaWMuaCIKKworI2luY2x1ZGUgImh3X2ZhY3RvcnlfZGNuMjEuaCIKKworI2luY2x1ZGUgImRjbi9kY25fMl8xXzBfb2Zmc2V0LmgiCisjaW5jbHVkZSAiZGNuL2Rjbl8yXzFfMF9zaF9tYXNrLmgiCisjaW5jbHVkZSAicmVub2lyX2lwX29mZnNldC5oIgorCisjaW5jbHVkZSAicmVnX2hlbHBlci5oIgorI2luY2x1ZGUgIi4uL2hwZF9yZWdzLmgiCisvKiBiZWdpbiAqKioqKioqKioqKioqKioqKioqKioKKyAqIG1hY3JvcyB0byBleHBlbmQgcmVnaXN0ZXIgbGlzdCBtYWNybyBkZWZpbmVkIGluIEhXIG9iamVjdCBoZWFkZXIgZmlsZSAqLworCisvKiBEQ04gKi8KKyNkZWZpbmUgYmxvY2sgSFBECisjZGVmaW5lIHJlZ19udW0gMAorCisjdW5kZWYgQkFTRV9JTk5FUgorI2RlZmluZSBCQVNFX0lOTkVSKHNlZykgRE1VX0JBU0VfX0lOU1QwX1NFRyAjIyBzZWcKKworI2RlZmluZSBCQVNFKHNlZykgQkFTRV9JTk5FUihzZWcpCisKKworCisjZGVmaW5lIFJFRyhyZWdfbmFtZSlcCisJCUJBU0UobW0gIyMgcmVnX25hbWUgIyMgX0JBU0VfSURYKSArIG1tICMjIHJlZ19uYW1lCisKKyNkZWZpbmUgU0ZfSFBEKHJlZ19uYW1lLCBmaWVsZF9uYW1lLCBwb3N0X2ZpeClcCisJLmZpZWxkX25hbWUgPSBIUEQwXyAjIyByZWdfbmFtZSAjIyBfXyAjIyBmaWVsZF9uYW1lICMjIHBvc3RfZml4CisKKyNkZWZpbmUgUkVHSShyZWdfbmFtZSwgYmxvY2ssIGlkKVwKKwlCQVNFKG1tICMjIGJsb2NrICMjIGlkICMjIF8gIyMgcmVnX25hbWUgIyMgX0JBU0VfSURYKSArIFwKKwkJCQltbSAjIyBibG9jayAjIyBpZCAjIyBfICMjIHJlZ19uYW1lCisKKyNkZWZpbmUgU0YocmVnX25hbWUsIGZpZWxkX25hbWUsIHBvc3RfZml4KVwKKwkuZmllbGRfbmFtZSA9IHJlZ19uYW1lICMjIF9fICMjIGZpZWxkX25hbWUgIyMgcG9zdF9maXgKKworLyogbWFjcm9zIHRvIGV4cGVuZCByZWdpc3RlciBsaXN0IG1hY3JvIGRlZmluZWQgaW4gSFcgb2JqZWN0IGhlYWRlciBmaWxlCisgKiBlbmQgKioqKioqKioqKioqKioqKioqKioqLworCisKKworI2RlZmluZSBocGRfcmVncyhpZCkgXAore1wKKwlIUERfUkVHX0xJU1QoaWQpXAorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGhwZF9yZWdpc3RlcnMgaHBkX3JlZ3NbXSA9IHsKKwlocGRfcmVncygwKSwKKwlocGRfcmVncygxKSwKKwlocGRfcmVncygyKSwKKwlocGRfcmVncygzKSwKKwlocGRfcmVncyg0KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHBkX3NoX21hc2sgaHBkX3NoaWZ0ID0geworCQlIUERfTUFTS19TSF9MSVNUKF9fU0hJRlQpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGhwZF9zaF9tYXNrIGhwZF9tYXNrID0geworCQlIUERfTUFTS19TSF9MSVNUKF9NQVNLKQorfTsKKworI2luY2x1ZGUgIi4uL2RkY19yZWdzLmgiCisKKyAvKiBzZXQgZmllbGQgbmFtZSAqLworI2RlZmluZSBTRl9EREMocmVnX25hbWUsIGZpZWxkX25hbWUsIHBvc3RfZml4KVwKKwkuZmllbGRfbmFtZSA9IHJlZ19uYW1lICMjIF9fICMjIGZpZWxkX25hbWUgIyMgcG9zdF9maXgKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkZGNfcmVnaXN0ZXJzIGRkY19kYXRhX3JlZ3NfZGNuW10gPSB7CisJZGRjX2RhdGFfcmVnc19kY24yKDEpLAorCWRkY19kYXRhX3JlZ3NfZGNuMigyKSwKKwlkZGNfZGF0YV9yZWdzX2RjbjIoMyksCisJZGRjX2RhdGFfcmVnc19kY24yKDQpLAorCWRkY19kYXRhX3JlZ3NfZGNuMig1KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGRjX3JlZ2lzdGVycyBkZGNfY2xrX3JlZ3NfZGNuW10gPSB7CisJZGRjX2Nsa19yZWdzX2RjbjIoMSksCisJZGRjX2Nsa19yZWdzX2RjbjIoMiksCisJZGRjX2Nsa19yZWdzX2RjbjIoMyksCisJZGRjX2Nsa19yZWdzX2RjbjIoNCksCisJZGRjX2Nsa19yZWdzX2RjbjIoNSksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRkY19zaF9tYXNrIGRkY19zaGlmdFtdID0geworCUREQ19NQVNLX1NIX0xJU1RfRENOMihfX1NISUZULCAxKSwKKwlERENfTUFTS19TSF9MSVNUX0RDTjIoX19TSElGVCwgMiksCisJRERDX01BU0tfU0hfTElTVF9EQ04yKF9fU0hJRlQsIDMpLAorCUREQ19NQVNLX1NIX0xJU1RfRENOMihfX1NISUZULCA0KSwKKwlERENfTUFTS19TSF9MSVNUX0RDTjIoX19TSElGVCwgNSksCisJRERDX01BU0tfU0hfTElTVF9EQ04yKF9fU0hJRlQsIDYpCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRkY19zaF9tYXNrIGRkY19tYXNrW10gPSB7CisJRERDX01BU0tfU0hfTElTVF9EQ04yKF9NQVNLLCAxKSwKKwlERENfTUFTS19TSF9MSVNUX0RDTjIoX01BU0ssIDIpLAorCUREQ19NQVNLX1NIX0xJU1RfRENOMihfTUFTSywgMyksCisJRERDX01BU0tfU0hfTElTVF9EQ04yKF9NQVNLLCA0KSwKKwlERENfTUFTS19TSF9MSVNUX0RDTjIoX01BU0ssIDUpLAorCUREQ19NQVNLX1NIX0xJU1RfRENOMihfTUFTSywgNikKK307CisKKyNpbmNsdWRlICIuLi9nZW5lcmljX3JlZ3MuaCIKKworLyogc2V0IGZpZWxkIG5hbWUgKi8KKyNkZWZpbmUgU0ZfR0VORVJJQyhyZWdfbmFtZSwgZmllbGRfbmFtZSwgcG9zdF9maXgpXAorCS5maWVsZF9uYW1lID0gcmVnX25hbWUgIyMgX18gIyMgZmllbGRfbmFtZSAjIyBwb3N0X2ZpeAorCisjZGVmaW5lIGdlbmVyaWNfcmVncyhpZCkgXAore1wKKwlHRU5FUklDX1JFR19MSVNUKGlkKVwKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3JlZ2lzdGVycyBnZW5lcmljX3JlZ3NbXSA9IHsKKwlnZW5lcmljX3JlZ3MoQSksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfc2hfbWFzayBnZW5lcmljX3NoaWZ0W10gPSB7CisJR0VORVJJQ19NQVNLX1NIX0xJU1QoX19TSElGVCwgQSksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfc2hfbWFzayBnZW5lcmljX21hc2tbXSA9IHsKKwlHRU5FUklDX01BU0tfU0hfTElTVChfTUFTSywgQSksCit9OworCitzdGF0aWMgdm9pZCBkZWZpbmVfZ2VuZXJpY19yZWdpc3RlcnMoc3RydWN0IGh3X2dwaW9fcGluICpwaW4sIHVpbnQzMl90IGVuKQoreworCXN0cnVjdCBod19nZW5lcmljICpnZW5lcmljID0gSFdfR0VORVJJQ19GUk9NX0JBU0UocGluKTsKKworCWdlbmVyaWMtPnJlZ3MgPSAmZ2VuZXJpY19yZWdzW2VuXTsKKwlnZW5lcmljLT5zaGlmdHMgPSAmZ2VuZXJpY19zaGlmdFtlbl07CisJZ2VuZXJpYy0+bWFza3MgPSAmZ2VuZXJpY19tYXNrW2VuXTsKKwlnZW5lcmljLT5iYXNlLnJlZ3MgPSAmZ2VuZXJpY19yZWdzW2VuXS5ncGlvOworfQorCitzdGF0aWMgdm9pZCBkZWZpbmVfZGRjX3JlZ2lzdGVycygKKwkJc3RydWN0IGh3X2dwaW9fcGluICpwaW4sCisJCXVpbnQzMl90IGVuKQoreworCXN0cnVjdCBod19kZGMgKmRkYyA9IEhXX0REQ19GUk9NX0JBU0UocGluKTsKKworCXN3aXRjaCAocGluLT5pZCkgeworCWNhc2UgR1BJT19JRF9ERENfREFUQToKKwkJZGRjLT5yZWdzID0gJmRkY19kYXRhX3JlZ3NfZGNuW2VuXTsKKwkJZGRjLT5iYXNlLnJlZ3MgPSAmZGRjX2RhdGFfcmVnc19kY25bZW5dLmdwaW87CisJCWJyZWFrOworCWNhc2UgR1BJT19JRF9ERENfQ0xPQ0s6CisJCWRkYy0+cmVncyA9ICZkZGNfY2xrX3JlZ3NfZGNuW2VuXTsKKwkJZGRjLT5iYXNlLnJlZ3MgPSAmZGRjX2Nsa19yZWdzX2Rjbltlbl0uZ3BpbzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJQVNTRVJUX0NSSVRJQ0FMKGZhbHNlKTsKKwkJcmV0dXJuOworCX0KKworCWRkYy0+c2hpZnRzID0gJmRkY19zaGlmdFtlbl07CisJZGRjLT5tYXNrcyA9ICZkZGNfbWFza1tlbl07CisKK30KKworc3RhdGljIHZvaWQgZGVmaW5lX2hwZF9yZWdpc3RlcnMoc3RydWN0IGh3X2dwaW9fcGluICpwaW4sIHVpbnQzMl90IGVuKQoreworCXN0cnVjdCBod19ocGQgKmhwZCA9IEhXX0hQRF9GUk9NX0JBU0UocGluKTsKKworCWhwZC0+cmVncyA9ICZocGRfcmVnc1tlbl07CisJaHBkLT5zaGlmdHMgPSAmaHBkX3NoaWZ0OworCWhwZC0+bWFza3MgPSAmaHBkX21hc2s7CisJaHBkLT5iYXNlLnJlZ3MgPSAmaHBkX3JlZ3NbZW5dLmdwaW87Cit9CisKKworLyogZnVjbnRpb24gdGFibGUgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfZmFjdG9yeV9mdW5jcyBmdW5jcyA9IHsKKwkuaW5pdF9kZGNfZGF0YSA9IGRhbF9od19kZGNfaW5pdCwKKwkuaW5pdF9nZW5lcmljID0gZGFsX2h3X2dlbmVyaWNfaW5pdCwKKwkuaW5pdF9ocGQgPSBkYWxfaHdfaHBkX2luaXQsCisJLmdldF9kZGNfcGluID0gZGFsX2h3X2RkY19nZXRfcGluLAorCS5nZXRfaHBkX3BpbiA9IGRhbF9od19ocGRfZ2V0X3BpbiwKKwkuZ2V0X2dlbmVyaWNfcGluID0gZGFsX2h3X2dlbmVyaWNfZ2V0X3BpbiwKKwkuZGVmaW5lX2hwZF9yZWdpc3RlcnMgPSBkZWZpbmVfaHBkX3JlZ2lzdGVycywKKwkuZGVmaW5lX2RkY19yZWdpc3RlcnMgPSBkZWZpbmVfZGRjX3JlZ2lzdGVycywKKwkuZGVmaW5lX2dlbmVyaWNfcmVnaXN0ZXJzID0gZGVmaW5lX2dlbmVyaWNfcmVnaXN0ZXJzCit9OworLyoKKyAqIGRhbF9od19mYWN0b3J5X2RjbjEwX2luaXQKKyAqCisgKiBAYnJpZWYKKyAqIEluaXRpYWxpemUgSFcgZmFjdG9yeSBmdW5jdGlvbiBwb2ludGVycyBhbmQgcGluIGluZm8KKyAqCisgKiBAcGFyYW0KKyAqIHN0cnVjdCBod19mYWN0b3J5ICpmYWN0b3J5IC0gW291dF0gc3RydWN0IG9mIGZ1bmN0aW9uIHBvaW50ZXJzCisgKi8KK3ZvaWQgZGFsX2h3X2ZhY3RvcnlfZGNuMjFfaW5pdChzdHJ1Y3QgaHdfZmFjdG9yeSAqZmFjdG9yeSkKK3sKKwkvKlRPRE8gY2hlY2sgQVNJQyBDQVBzKi8KKwlmYWN0b3J5LT5udW1iZXJfb2ZfcGluc1tHUElPX0lEX0REQ19EQVRBXSA9IDg7CisJZmFjdG9yeS0+bnVtYmVyX29mX3BpbnNbR1BJT19JRF9ERENfQ0xPQ0tdID0gODsKKwlmYWN0b3J5LT5udW1iZXJfb2ZfcGluc1tHUElPX0lEX0dFTkVSSUNdID0gNDsKKwlmYWN0b3J5LT5udW1iZXJfb2ZfcGluc1tHUElPX0lEX0hQRF0gPSA2OworCWZhY3RvcnktPm51bWJlcl9vZl9waW5zW0dQSU9fSURfR1BJT19QQURdID0gMjg7CisJZmFjdG9yeS0+bnVtYmVyX29mX3BpbnNbR1BJT19JRF9WSVBfUEFEXSA9IDA7CisJZmFjdG9yeS0+bnVtYmVyX29mX3BpbnNbR1BJT19JRF9TWU5DXSA9IDA7CisJZmFjdG9yeS0+bnVtYmVyX29mX3BpbnNbR1BJT19JRF9HU0xdID0gMDsvKmFkZCB0aGlzKi8KKworCWZhY3RvcnktPmZ1bmNzID0gJmZ1bmNzOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjbjIxL2h3X2ZhY3RvcnlfZGNuMjEuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjbjIxL2h3X2ZhY3RvcnlfZGNuMjEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDQzZjllCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNuMjEvaHdfZmFjdG9yeV9kY24yMS5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisjaWZuZGVmIF9fREFMX0hXX0ZBQ1RPUllfRENOMjFfSF9fCisjZGVmaW5lIF9fREFMX0hXX0ZBQ1RPUllfRENOMjFfSF9fCisKKy8qIEluaXRpYWxpemUgSFcgZmFjdG9yeSBmdW5jdGlvbiBwb2ludGVycyBhbmQgcGluIGluZm8gKi8KK3ZvaWQgZGFsX2h3X2ZhY3RvcnlfZGNuMjFfaW5pdChzdHJ1Y3QgaHdfZmFjdG9yeSAqZmFjdG9yeSk7CisKKyNlbmRpZiAvKiBfX0RBTF9IV19GQUNUT1JZX0RDTjIwX0hfXyAqLworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24yMS9od190cmFuc2xhdGVfZGNuMjEuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RjbjIxL2h3X3RyYW5zbGF0ZV9kY24yMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiYjU4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24yMS9od190cmFuc2xhdGVfZGNuMjEuYwpAQCAtMCwwICsxLDM4NSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworLyoKKyAqIFByZS1yZXF1aXNpdGVzOiBoZWFkZXJzIHJlcXVpcmVkIGJ5IGhlYWRlciBvZiB0aGlzIHVuaXQKKyAqLworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQorI2luY2x1ZGUgImh3X3RyYW5zbGF0ZV9kY24yMS5oIgorCisjaW5jbHVkZSAiZG1fc2VydmljZXMuaCIKKyNpbmNsdWRlICJpbmNsdWRlL2dwaW9fdHlwZXMuaCIKKyNpbmNsdWRlICIuLi9od190cmFuc2xhdGUuaCIKKworI2luY2x1ZGUgImRjbi9kY25fMl8xXzBfb2Zmc2V0LmgiCisjaW5jbHVkZSAiZGNuL2Rjbl8yXzFfMF9zaF9tYXNrLmgiCisjaW5jbHVkZSAicmVub2lyX2lwX29mZnNldC5oIgorCisKKworCisvKiBiZWdpbiAqKioqKioqKioqKioqKioqKioqKioKKyAqIG1hY3JvcyB0byBleHBlbmQgcmVnaXN0ZXIgbGlzdCBtYWNybyBkZWZpbmVkIGluIEhXIG9iamVjdCBoZWFkZXIgZmlsZSAqLworCisvKiBEQ04gKi8KKyNkZWZpbmUgYmxvY2sgSFBECisjZGVmaW5lIHJlZ19udW0gMAorCisjdW5kZWYgQkFTRV9JTk5FUgorI2RlZmluZSBCQVNFX0lOTkVSKHNlZykgRE1VX0JBU0VfX0lOU1QwX1NFRyAjIyBzZWcKKworI2RlZmluZSBCQVNFKHNlZykgQkFTRV9JTk5FUihzZWcpCisKKyN1bmRlZiBSRUcKKyNkZWZpbmUgUkVHKHJlZ19uYW1lKVwKKwkJQkFTRShtbSAjIyByZWdfbmFtZSAjIyBfQkFTRV9JRFgpICsgbW0gIyMgcmVnX25hbWUKKyNkZWZpbmUgU0ZfSFBEKHJlZ19uYW1lLCBmaWVsZF9uYW1lLCBwb3N0X2ZpeClcCisJLmZpZWxkX25hbWUgPSByZWdfbmFtZSAjIyBfXyAjIyBmaWVsZF9uYW1lICMjIHBvc3RfZml4CisKKy8qIG1hY3JvcyB0byBleHBlbmQgcmVnaXN0ZXIgbGlzdCBtYWNybyBkZWZpbmVkIGluIEhXIG9iamVjdCBoZWFkZXIgZmlsZQorICogZW5kICoqKioqKioqKioqKioqKioqKioqKi8KKworCitzdGF0aWMgYm9vbCBvZmZzZXRfdG9faWQoCisJdWludDMyX3Qgb2Zmc2V0LAorCXVpbnQzMl90IG1hc2ssCisJZW51bSBncGlvX2lkICppZCwKKwl1aW50MzJfdCAqZW4pCit7CisJc3dpdGNoIChvZmZzZXQpIHsKKwkvKiBHRU5FUklDICovCisJY2FzZSBSRUcoRENfR1BJT19HRU5FUklDX0EpOgorCQkqaWQgPSBHUElPX0lEX0dFTkVSSUM7CisJCXN3aXRjaCAobWFzaykgeworCQljYXNlIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNBX0FfTUFTSzoKKwkJCSplbiA9IEdQSU9fR0VORVJJQ19BOworCQkJcmV0dXJuIHRydWU7CisJCWNhc2UgRENfR1BJT19HRU5FUklDX0FfX0RDX0dQSU9fR0VORVJJQ0JfQV9NQVNLOgorCQkJKmVuID0gR1BJT19HRU5FUklDX0I7CisJCQlyZXR1cm4gdHJ1ZTsKKwkJY2FzZSBEQ19HUElPX0dFTkVSSUNfQV9fRENfR1BJT19HRU5FUklDQ19BX01BU0s6CisJCQkqZW4gPSBHUElPX0dFTkVSSUNfQzsKKwkJCXJldHVybiB0cnVlOworCQljYXNlIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNEX0FfTUFTSzoKKwkJCSplbiA9IEdQSU9fR0VORVJJQ19EOworCQkJcmV0dXJuIHRydWU7CisJCWNhc2UgRENfR1BJT19HRU5FUklDX0FfX0RDX0dQSU9fR0VORVJJQ0VfQV9NQVNLOgorCQkJKmVuID0gR1BJT19HRU5FUklDX0U7CisJCQlyZXR1cm4gdHJ1ZTsKKwkJY2FzZSBEQ19HUElPX0dFTkVSSUNfQV9fRENfR1BJT19HRU5FUklDRl9BX01BU0s6CisJCQkqZW4gPSBHUElPX0dFTkVSSUNfRjsKKwkJCXJldHVybiB0cnVlOworCQljYXNlIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNHX0FfTUFTSzoKKwkJCSplbiA9IEdQSU9fR0VORVJJQ19HOworCQkJcmV0dXJuIHRydWU7CisJCWRlZmF1bHQ6CisJCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOworI2lmZGVmIFBBTExBRElVTV9TVVBQT1JURUQKKwkJKmVuID0gR1BJT19ERENfTElORV9EREMxOworCQlyZXR1cm4gdHJ1ZTsKKyNlbmRpZgorCQkJcmV0dXJuIGZhbHNlOworCQl9CisJYnJlYWs7CisJLyogSFBEICovCisJY2FzZSBSRUcoRENfR1BJT19IUERfQSk6CisJCSppZCA9IEdQSU9fSURfSFBEOworCQlzd2l0Y2ggKG1hc2spIHsKKwkJY2FzZSBEQ19HUElPX0hQRF9BX19EQ19HUElPX0hQRDFfQV9NQVNLOgorCQkJKmVuID0gR1BJT19IUERfMTsKKwkJCXJldHVybiB0cnVlOworCQljYXNlIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBEMl9BX01BU0s6CisJCQkqZW4gPSBHUElPX0hQRF8yOworCQkJcmV0dXJuIHRydWU7CisJCWNhc2UgRENfR1BJT19IUERfQV9fRENfR1BJT19IUEQzX0FfTUFTSzoKKwkJCSplbiA9IEdQSU9fSFBEXzM7CisJCQlyZXR1cm4gdHJ1ZTsKKwkJY2FzZSBEQ19HUElPX0hQRF9BX19EQ19HUElPX0hQRDRfQV9NQVNLOgorCQkJKmVuID0gR1BJT19IUERfNDsKKwkJCXJldHVybiB0cnVlOworCQljYXNlIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBENV9BX01BU0s6CisJCQkqZW4gPSBHUElPX0hQRF81OworCQkJcmV0dXJuIHRydWU7CisJCWNhc2UgRENfR1BJT19IUERfQV9fRENfR1BJT19IUEQ2X0FfTUFTSzoKKwkJCSplbiA9IEdQSU9fSFBEXzY7CisJCQlyZXR1cm4gdHJ1ZTsKKwkJZGVmYXVsdDoKKwkJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwlicmVhazsKKwkvKiBSRUcoRENfR1BJT19HRU5MS19NQVNLICovCisJY2FzZSBSRUcoRENfR1BJT19HRU5MS19BKToKKwkJKmlkID0gR1BJT19JRF9HU0w7CisJCXN3aXRjaCAobWFzaykgeworCQljYXNlIERDX0dQSU9fR0VOTEtfQV9fRENfR1BJT19HRU5MS19DTEtfQV9NQVNLOgorCQkJKmVuID0gR1BJT19HU0xfR0VOTE9DS19DTE9DSzsKKwkJCXJldHVybiB0cnVlOworCQljYXNlIERDX0dQSU9fR0VOTEtfQV9fRENfR1BJT19HRU5MS19WU1lOQ19BX01BU0s6CisJCQkqZW4gPSBHUElPX0dTTF9HRU5MT0NLX1ZTWU5DOworCQkJcmV0dXJuIHRydWU7CisJCWNhc2UgRENfR1BJT19HRU5MS19BX19EQ19HUElPX1NXQVBMT0NLX0FfQV9NQVNLOgorCQkJKmVuID0gR1BJT19HU0xfU1dBUExPQ0tfQTsKKwkJCXJldHVybiB0cnVlOworCQljYXNlIERDX0dQSU9fR0VOTEtfQV9fRENfR1BJT19TV0FQTE9DS19CX0FfTUFTSzoKKwkJCSplbiA9IEdQSU9fR1NMX1NXQVBMT0NLX0I7CisJCQlyZXR1cm4gdHJ1ZTsKKwkJZGVmYXVsdDoKKwkJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwlicmVhazsKKwkvKiBEREMgKi8KKwkvKiB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBHUElPX0lEIGZvciBEREMKKwkgKiBpbiBEZGNIYW5kbGUgaXQgd2lsbCB1c2UgR1BJT19JRF9ERENfREFUQS9HUElPX0lEX0REQ19DTE9DSworCSAqIGRpcmVjdGx5IGluIHRoZSBjcmVhdGUgbWV0aG9kICovCisJY2FzZSBSRUcoRENfR1BJT19EREMxX0EpOgorCQkqZW4gPSBHUElPX0REQ19MSU5FX0REQzE7CisJCXJldHVybiB0cnVlOworCWNhc2UgUkVHKERDX0dQSU9fRERDMl9BKToKKwkJKmVuID0gR1BJT19ERENfTElORV9EREMyOworCQlyZXR1cm4gdHJ1ZTsKKwljYXNlIFJFRyhEQ19HUElPX0REQzNfQSk6CisJCSplbiA9IEdQSU9fRERDX0xJTkVfRERDMzsKKwkJcmV0dXJuIHRydWU7CisJY2FzZSBSRUcoRENfR1BJT19EREM0X0EpOgorCQkqZW4gPSBHUElPX0REQ19MSU5FX0REQzQ7CisJCXJldHVybiB0cnVlOworCWNhc2UgUkVHKERDX0dQSU9fRERDNV9BKToKKwkJKmVuID0gR1BJT19ERENfTElORV9EREM1OworCQlyZXR1cm4gdHJ1ZTsKKwljYXNlIFJFRyhEQ19HUElPX0REQ1ZHQV9BKToKKwkJKmVuID0gR1BJT19ERENfTElORV9ERENfVkdBOworCQlyZXR1cm4gdHJ1ZTsKKworLy8JY2FzZSBSRUcoRENfR1BJT19JMkNQQURfQSk6IG5vdCBleGl0CisvLwljYXNlIFJFRyhEQ19HUElPX1BXUlNFUV9BKToKKy8vCWNhc2UgUkVHKERDX0dQSU9fUEFEX1NUUkVOR1RIXzEpOgorLy8JY2FzZSBSRUcoRENfR1BJT19QQURfU1RSRU5HVEhfMik6CisvLwljYXNlIFJFRyhEQ19HUElPX0RFQlVHKToKKwkvKiBVTkVYUEVDVEVEICovCisJZGVmYXVsdDoKKy8vCWNhc2UgUkVHKERDX0dQSU9fU1lOQ0FfQSk6IG5vdCBleGlzdAorI2lmZGVmIFBBTExBRElVTV9TVVBQT1JURUQKKwkJKmlkID0gR1BJT19JRF9IUEQ7CisJCSplbiA9IEdQSU9fRERDX0xJTkVfRERDMTsKKwkJcmV0dXJuIHRydWU7CisjZW5kaWYKKwkJQVNTRVJUX0NSSVRJQ0FMKGZhbHNlKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KK30KKworc3RhdGljIGJvb2wgaWRfdG9fb2Zmc2V0KAorCWVudW0gZ3Bpb19pZCBpZCwKKwl1aW50MzJfdCBlbiwKKwlzdHJ1Y3QgZ3Bpb19waW5faW5mbyAqaW5mbykKK3sKKwlib29sIHJlc3VsdCA9IHRydWU7CisKKwlzd2l0Y2ggKGlkKSB7CisJY2FzZSBHUElPX0lEX0REQ19EQVRBOgorCQlpbmZvLT5tYXNrID0gRENfR1BJT19EREM1X0FfX0RDX0dQSU9fRERDNURBVEFfQV9NQVNLOworCQlzd2l0Y2ggKGVuKSB7CisJCWNhc2UgR1BJT19ERENfTElORV9EREMxOgorCQkJaW5mby0+b2Zmc2V0ID0gUkVHKERDX0dQSU9fRERDMV9BKTsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19ERENfTElORV9EREMyOgorCQkJaW5mby0+b2Zmc2V0ID0gUkVHKERDX0dQSU9fRERDMl9BKTsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19ERENfTElORV9EREMzOgorCQkJaW5mby0+b2Zmc2V0ID0gUkVHKERDX0dQSU9fRERDM19BKTsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19ERENfTElORV9EREM0OgorCQkJaW5mby0+b2Zmc2V0ID0gUkVHKERDX0dQSU9fRERDNF9BKTsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19ERENfTElORV9EREM1OgorCQkJaW5mby0+b2Zmc2V0ID0gUkVHKERDX0dQSU9fRERDNV9BKTsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19ERENfTElORV9ERENfVkdBOgorCQkJaW5mby0+b2Zmc2V0ID0gUkVHKERDX0dQSU9fRERDVkdBX0EpOworCQlicmVhazsKKwkJY2FzZSBHUElPX0REQ19MSU5FX0kyQ19QQUQ6CisJCWRlZmF1bHQ6CisJCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOworCQkJcmVzdWx0ID0gZmFsc2U7CisJCX0KKwlicmVhazsKKwljYXNlIEdQSU9fSURfRERDX0NMT0NLOgorCQlpbmZvLT5tYXNrID0gRENfR1BJT19EREM1X0FfX0RDX0dQSU9fRERDNUNMS19BX01BU0s7CisJCXN3aXRjaCAoZW4pIHsKKwkJY2FzZSBHUElPX0REQ19MSU5FX0REQzE6CisJCQlpbmZvLT5vZmZzZXQgPSBSRUcoRENfR1BJT19EREMxX0EpOworCQlicmVhazsKKwkJY2FzZSBHUElPX0REQ19MSU5FX0REQzI6CisJCQlpbmZvLT5vZmZzZXQgPSBSRUcoRENfR1BJT19EREMyX0EpOworCQlicmVhazsKKwkJY2FzZSBHUElPX0REQ19MSU5FX0REQzM6CisJCQlpbmZvLT5vZmZzZXQgPSBSRUcoRENfR1BJT19EREMzX0EpOworCQlicmVhazsKKwkJY2FzZSBHUElPX0REQ19MSU5FX0REQzQ6CisJCQlpbmZvLT5vZmZzZXQgPSBSRUcoRENfR1BJT19EREM0X0EpOworCQlicmVhazsKKwkJY2FzZSBHUElPX0REQ19MSU5FX0REQzU6CisJCQlpbmZvLT5vZmZzZXQgPSBSRUcoRENfR1BJT19EREM1X0EpOworCQlicmVhazsKKwkJY2FzZSBHUElPX0REQ19MSU5FX0REQ19WR0E6CisJCQlpbmZvLT5vZmZzZXQgPSBSRUcoRENfR1BJT19ERENWR0FfQSk7CisJCWJyZWFrOworCQljYXNlIEdQSU9fRERDX0xJTkVfSTJDX1BBRDoKKwkJZGVmYXVsdDoKKwkJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CisJCQlyZXN1bHQgPSBmYWxzZTsKKwkJfQorCWJyZWFrOworCWNhc2UgR1BJT19JRF9HRU5FUklDOgorCQlpbmZvLT5vZmZzZXQgPSBSRUcoRENfR1BJT19HRU5FUklDX0EpOworCQlzd2l0Y2ggKGVuKSB7CisJCWNhc2UgR1BJT19HRU5FUklDX0E6CisJCQlpbmZvLT5tYXNrID0gRENfR1BJT19HRU5FUklDX0FfX0RDX0dQSU9fR0VORVJJQ0FfQV9NQVNLOworCQlicmVhazsKKwkJY2FzZSBHUElPX0dFTkVSSUNfQjoKKwkJCWluZm8tPm1hc2sgPSBEQ19HUElPX0dFTkVSSUNfQV9fRENfR1BJT19HRU5FUklDQl9BX01BU0s7CisJCWJyZWFrOworCQljYXNlIEdQSU9fR0VORVJJQ19DOgorCQkJaW5mby0+bWFzayA9IERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNDX0FfTUFTSzsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19HRU5FUklDX0Q6CisJCQlpbmZvLT5tYXNrID0gRENfR1BJT19HRU5FUklDX0FfX0RDX0dQSU9fR0VORVJJQ0RfQV9NQVNLOworCQlicmVhazsKKwkJY2FzZSBHUElPX0dFTkVSSUNfRToKKwkJCWluZm8tPm1hc2sgPSBEQ19HUElPX0dFTkVSSUNfQV9fRENfR1BJT19HRU5FUklDRV9BX01BU0s7CisJCWJyZWFrOworCQljYXNlIEdQSU9fR0VORVJJQ19GOgorCQkJaW5mby0+bWFzayA9IERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNGX0FfTUFTSzsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19HRU5FUklDX0c6CisJCQlpbmZvLT5tYXNrID0gRENfR1BJT19HRU5FUklDX0FfX0RDX0dQSU9fR0VORVJJQ0dfQV9NQVNLOworCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CisJCQlyZXN1bHQgPSBmYWxzZTsKKwkJfQorCWJyZWFrOworCWNhc2UgR1BJT19JRF9IUEQ6CisJCWluZm8tPm9mZnNldCA9IFJFRyhEQ19HUElPX0hQRF9BKTsKKwkJc3dpdGNoIChlbikgeworCQljYXNlIEdQSU9fSFBEXzE6CisJCQlpbmZvLT5tYXNrID0gRENfR1BJT19IUERfQV9fRENfR1BJT19IUEQxX0FfTUFTSzsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19IUERfMjoKKwkJCWluZm8tPm1hc2sgPSBEQ19HUElPX0hQRF9BX19EQ19HUElPX0hQRDJfQV9NQVNLOworCQlicmVhazsKKwkJY2FzZSBHUElPX0hQRF8zOgorCQkJaW5mby0+bWFzayA9IERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBEM19BX01BU0s7CisJCWJyZWFrOworCQljYXNlIEdQSU9fSFBEXzQ6CisJCQlpbmZvLT5tYXNrID0gRENfR1BJT19IUERfQV9fRENfR1BJT19IUEQ0X0FfTUFTSzsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19IUERfNToKKwkJCWluZm8tPm1hc2sgPSBEQ19HUElPX0hQRF9BX19EQ19HUElPX0hQRDVfQV9NQVNLOworCQlicmVhazsKKwkJY2FzZSBHUElPX0hQRF82OgorCQkJaW5mby0+bWFzayA9IERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBENl9BX01BU0s7CisJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJQVNTRVJUX0NSSVRJQ0FMKGZhbHNlKTsKKyNpZmRlZiBQQUxMQURJVU1fU1VQUE9SVEVECisJCQlpbmZvLT5tYXNrID0gRENfR1BJT19IUERfQV9fRENfR1BJT19IUEQxX0FfTUFTSzsKKwkJCXJlc3VsdCA9IHRydWU7CisjZW5kaWYKKwkJCXJlc3VsdCA9IGZhbHNlOworCQl9CisJYnJlYWs7CisJY2FzZSBHUElPX0lEX0dTTDoKKwkJc3dpdGNoIChlbikgeworCQljYXNlIEdQSU9fR1NMX0dFTkxPQ0tfQ0xPQ0s6CisJCQkJLypub3QgaW1wbG1lbnRlZCovCisJCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOworCQkJcmVzdWx0ID0gZmFsc2U7CisJCWJyZWFrOworCQljYXNlIEdQSU9fR1NMX0dFTkxPQ0tfVlNZTkM6CisJCQkvKm5vdCBpbXBsbWVudGVkKi8KKwkJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CisJCQlyZXN1bHQgPSBmYWxzZTsKKwkJYnJlYWs7CisJCWNhc2UgR1BJT19HU0xfU1dBUExPQ0tfQToKKwkJCS8qbm90IGltcGxtZW50ZWQqLworCQkJQVNTRVJUX0NSSVRJQ0FMKGZhbHNlKTsKKwkJCXJlc3VsdCA9IGZhbHNlOworCQlicmVhazsKKwkJY2FzZSBHUElPX0dTTF9TV0FQTE9DS19COgorCQkJLypub3QgaW1wbG1lbnRlZCovCisJCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOworCQkJcmVzdWx0ID0gZmFsc2U7CisKKwkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOworCQkJcmVzdWx0ID0gZmFsc2U7CisJCX0KKwlicmVhazsKKwljYXNlIEdQSU9fSURfU1lOQzoKKwljYXNlIEdQSU9fSURfVklQX1BBRDoKKwlkZWZhdWx0OgorCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOworCQlyZXN1bHQgPSBmYWxzZTsKKwl9CisKKwlpZiAocmVzdWx0KSB7CisJCWluZm8tPm9mZnNldF95ID0gaW5mby0+b2Zmc2V0ICsgMjsKKwkJaW5mby0+b2Zmc2V0X2VuID0gaW5mby0+b2Zmc2V0ICsgMTsKKwkJaW5mby0+b2Zmc2V0X21hc2sgPSBpbmZvLT5vZmZzZXQgLSAxOworCisJCWluZm8tPm1hc2tfeSA9IGluZm8tPm1hc2s7CisJCWluZm8tPm1hc2tfZW4gPSBpbmZvLT5tYXNrOworCQlpbmZvLT5tYXNrX21hc2sgPSBpbmZvLT5tYXNrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qIGZ1bmN0aW9uIHRhYmxlICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGh3X3RyYW5zbGF0ZV9mdW5jcyBmdW5jcyA9IHsKKwkub2Zmc2V0X3RvX2lkID0gb2Zmc2V0X3RvX2lkLAorCS5pZF90b19vZmZzZXQgPSBpZF90b19vZmZzZXQsCit9OworCisvKgorICogZGFsX2h3X3RyYW5zbGF0ZV9kY24xMF9pbml0CisgKgorICogQGJyaWVmCisgKiBJbml0aWFsaXplIEh3IHRyYW5zbGF0ZSBmdW5jdGlvbiBwb2ludGVycy4KKyAqCisgKiBAcGFyYW0KKyAqIHN0cnVjdCBod190cmFuc2xhdGUgKnRyIC0gW291dF0gc3RydWN0IG9mIGZ1bmN0aW9uIHBvaW50ZXJzCisgKgorICovCit2b2lkIGRhbF9od190cmFuc2xhdGVfZGNuMjFfaW5pdChzdHJ1Y3QgaHdfdHJhbnNsYXRlICp0cikKK3sKKwl0ci0+ZnVuY3MgPSAmZnVuY3M7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNuMjEvaHdfdHJhbnNsYXRlX2RjbjIxLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9kY24yMS9od190cmFuc2xhdGVfZGNuMjEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmZhYWMyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGNuMjEvaHdfdHJhbnNsYXRlX2RjbjIxLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKyNpZm5kZWYgX19EQUxfSFdfVFJBTlNMQVRFX0RDTjIxX0hfXworI2RlZmluZSBfX0RBTF9IV19UUkFOU0xBVEVfRENOMjFfSF9fCisKK3N0cnVjdCBod190cmFuc2xhdGU7CisKKy8qIEluaXRpYWxpemUgSHcgdHJhbnNsYXRlIGZ1bmN0aW9uIHBvaW50ZXJzICovCit2b2lkIGRhbF9od190cmFuc2xhdGVfZGNuMjFfaW5pdChzdHJ1Y3QgaHdfdHJhbnNsYXRlICp0cik7CisKKyNlbmRpZiAvKiBfX0RBTF9IV19UUkFOU0xBVEVfRENOMjFfSF9fICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2RpYWdub3N0aWNzL2h3X2ZhY3RvcnlfZGlhZy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGlhZ25vc3RpY3MvaHdfZmFjdG9yeV9kaWFnLmMKaW5kZXggMjY2OTViOS4uZGY2ODQzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGlhZ25vc3RpY3MvaHdfZmFjdG9yeV9kaWFnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZGlhZ25vc3RpY3MvaHdfZmFjdG9yeV9kaWFnLmMKQEAgLTM4LDE1ICszOCwxMyBAQAogI2luY2x1ZGUgIi4uL2h3X2dwaW8uaCIKICNpbmNsdWRlICIuLi9od19kZGMuaCIKICNpbmNsdWRlICIuLi9od19ocGQuaCIKKyNpbmNsdWRlICIuLi9od19nZW5lcmljLmgiCiAKIC8qIGZ1bmN0aW9uIHRhYmxlICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IGh3X2ZhY3RvcnlfZnVuY3MgZnVuY3MgPSB7Ci0JLmNyZWF0ZV9kZGNfZGF0YSA9IE5VTEwsCi0JLmNyZWF0ZV9kZGNfY2xvY2sgPSBOVUxMLAotCS5jcmVhdGVfZ2VuZXJpYyA9IE5VTEwsCi0JLmNyZWF0ZV9ocGQgPSBOVUxMLAotCS5jcmVhdGVfc3luYyA9IE5VTEwsCi0JLmNyZWF0ZV9nc2wgPSBOVUxMLAorCS5pbml0X2RkY19kYXRhID0gTlVMTCwKKwkuaW5pdF9nZW5lcmljID0gTlVMTCwKKwkuaW5pdF9ocGQgPSBOVUxMLAogfTsKIAogdm9pZCBkYWxfaHdfZmFjdG9yeV9kaWFnX2ZwZ2FfaW5pdChzdHJ1Y3QgaHdfZmFjdG9yeSAqZmFjdG9yeSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2dlbmVyaWNfcmVncy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZ2VuZXJpY19yZWdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMwNTI5NQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2dlbmVyaWNfcmVncy5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMi0xNiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpZm5kZWYgRFJJVkVSU19HUFVfRFJNX0FNRF9EQ19ERVZfRENfR1BJT19HRU5FUklDX1JFR1NfSF8KKyNkZWZpbmUgRFJJVkVSU19HUFVfRFJNX0FNRF9EQ19ERVZfRENfR1BJT19HRU5FUklDX1JFR1NfSF8KKworI2luY2x1ZGUgImdwaW9fcmVncy5oIgorCisjZGVmaW5lIEdFTkVSSUNfR1BJT19SRUdfTElTVF9FTlRSWSh0eXBlLCBjZCwgaWQpIFwKKwkudHlwZSAjIyBfcmVnID0gIFJFRyhEQ19HUElPX0dFTkVSSUNfIyMgdHlwZSksXAorCS50eXBlICMjIF9tYXNrID0gIERDX0dQSU9fR0VORVJJQ18gIyMgdHlwZSAjIyBfX0RDX0dQSU9fR0VORVJJQyAjIyBpZCAjIyBfICMjIHR5cGUgIyMgX01BU0ssXAorCS50eXBlICMjIF9zaGlmdCA9IERDX0dQSU9fR0VORVJJQ18gIyMgdHlwZSAjIyBfX0RDX0dQSU9fR0VORVJJQyAjIyBpZCAjIyBfICMjIHR5cGUgIyMgX19TSElGVAorCisjZGVmaW5lIEdFTkVSSUNfR1BJT19SRUdfTElTVChpZCkgXAorCXtcCisJR0VORVJJQ19HUElPX1JFR19MSVNUX0VOVFJZKE1BU0ssIGNkLCBpZCksXAorCUdFTkVSSUNfR1BJT19SRUdfTElTVF9FTlRSWShBLCBjZCwgaWQpLFwKKwlHRU5FUklDX0dQSU9fUkVHX0xJU1RfRU5UUlkoRU4sIGNkLCBpZCksXAorCUdFTkVSSUNfR1BJT19SRUdfTElTVF9FTlRSWShZLCBjZCwgaWQpXAorCX0KKworI2RlZmluZSBHRU5FUklDX1JFR19MSVNUKGlkKSBcCisJR0VORVJJQ19HUElPX1JFR19MSVNUKGlkKSwgXAorCS5tdXggPSBSRUcoRENfR0VORVJJQyAjIyBpZCksXAorCisjZGVmaW5lIEdFTkVSSUNfTUFTS19TSF9MSVNUKG1hc2tfc2gsIGNkKSBcCisJeyhEQ19HRU5FUklDICMjIGNkICMjX19HRU5FUklDICMjIGNkICMjX0VOIyMgbWFza19zaCksXAorCShEQ19HRU5FUklDICMjIGNkICMjX19HRU5FUklDICMjIGNkICMjX1NFTCMjIG1hc2tfc2gpfQorCitzdHJ1Y3QgZ2VuZXJpY19yZWdpc3RlcnMgeworCXN0cnVjdCBncGlvX3JlZ2lzdGVycyBncGlvOworCXVpbnQzMl90IG11eDsKK307CisKK3N0cnVjdCBnZW5lcmljX3NoX21hc2sgeworCS8qIGVuYWJsZSAqLworCXVpbnQzMl90IEdFTkVSSUNfRU47CisJLyogc2VsZWN0ICovCisJdWludDMyX3QgR0VORVJJQ19TRUw7CisKK307CisKKworI2VuZGlmIC8qIERSSVZFUlNfR1BVX0RSTV9BTURfRENfREVWX0RDX0dQSU9fR0VORVJJQ19SRUdTX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9ncGlvX2Jhc2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2dwaW9fYmFzZS5jCmluZGV4IGQwM2IzOGUuLmY4Zjg1NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2dwaW9fYmFzZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2dwaW9fYmFzZS5jCkBAIC02NywxMCArNjcsMTQgQEAgZW51bSBncGlvX3Jlc3VsdCBkYWxfZ3Bpb19vcGVuX2V4KAogCQlyZXR1cm4gR1BJT19SRVNVTFRfQUxSRUFEWV9PUEVORUQ7CiAJfQogCisJLy8gTm8gYWN0aW9uIGlmIGFsbG9jYXRpb24gZmFpbGVkIGR1cmluZyBncGlvIGNvbnN0cnVjdAorCWlmICghZ3Bpby0+aHdfY29udGFpbmVyLmRkYykgeworCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOworCQlyZXR1cm4gR1BJT19SRVNVTFRfTk9OX1NQRUNJRklDX0VSUk9SOworCX0KIAlncGlvLT5tb2RlID0gbW9kZTsKIAotCXJldHVybiBkYWxfZ3Bpb19zZXJ2aWNlX29wZW4oCi0JCWdwaW8tPnNlcnZpY2UsIGdwaW8tPmlkLCBncGlvLT5lbiwgbW9kZSwgJmdwaW8tPnBpbik7CisJcmV0dXJuIGRhbF9ncGlvX3NlcnZpY2Vfb3BlbihncGlvKTsKIH0KIAogZW51bSBncGlvX3Jlc3VsdCBkYWxfZ3Bpb19nZXRfdmFsdWUoCkBAIC0yMzEsNiArMjM1LDIxIEBAIGVudW0gZ3Bpb19waW5fb3V0cHV0X3N0YXRlIGRhbF9ncGlvX2dldF9vdXRwdXRfc3RhdGUoCiAJcmV0dXJuIGdwaW8tPm91dHB1dF9zdGF0ZTsKIH0KIAorc3RydWN0IGh3X2RkYyAqZGFsX2dwaW9fZ2V0X2RkYyhzdHJ1Y3QgZ3BpbyAqZ3BpbykKK3sKKwlyZXR1cm4gZ3Bpby0+aHdfY29udGFpbmVyLmRkYzsKK30KKworc3RydWN0IGh3X2hwZCAqZGFsX2dwaW9fZ2V0X2hwZChzdHJ1Y3QgZ3BpbyAqZ3BpbykKK3sKKwlyZXR1cm4gZ3Bpby0+aHdfY29udGFpbmVyLmhwZDsKK30KKworc3RydWN0IGh3X2dlbmVyaWMgKmRhbF9ncGlvX2dldF9nZW5lcmljKHN0cnVjdCBncGlvICpncGlvKQoreworCXJldHVybiBncGlvLT5od19jb250YWluZXIuZ2VuZXJpYzsKK30KKwogdm9pZCBkYWxfZ3Bpb19jbG9zZSgKIAlzdHJ1Y3QgZ3BpbyAqZ3BpbykKIHsKQEAgLTI2Nyw2ICsyODYsMzAgQEAgc3RydWN0IGdwaW8gKmRhbF9ncGlvX2NyZWF0ZSgKIAlncGlvLT5tb2RlID0gR1BJT19NT0RFX1VOS05PV047CiAJZ3Bpby0+b3V0cHV0X3N0YXRlID0gb3V0cHV0X3N0YXRlOwogCisJLy9pbml0aWFsaXplIGh3X2NvbnRhaW5lciB1bmlvbiBiYXNlZCBvbiBpZAorCXN3aXRjaCAoZ3Bpby0+aWQpIHsKKwljYXNlIEdQSU9fSURfRERDX0RBVEE6CisJCWdwaW8tPnNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmluaXRfZGRjX2RhdGEoJmdwaW8tPmh3X2NvbnRhaW5lci5kZGMsIHNlcnZpY2UtPmN0eCwgaWQsIGVuKTsKKwkJYnJlYWs7CisJY2FzZSBHUElPX0lEX0REQ19DTE9DSzoKKwkJZ3Bpby0+c2VydmljZS0+ZmFjdG9yeS5mdW5jcy0+aW5pdF9kZGNfZGF0YSgmZ3Bpby0+aHdfY29udGFpbmVyLmRkYywgc2VydmljZS0+Y3R4LCBpZCwgZW4pOworCQlicmVhazsKKwljYXNlIEdQSU9fSURfR0VORVJJQzoKKwkJZ3Bpby0+c2VydmljZS0+ZmFjdG9yeS5mdW5jcy0+aW5pdF9nZW5lcmljKCZncGlvLT5od19jb250YWluZXIuZ2VuZXJpYywgc2VydmljZS0+Y3R4LCBpZCwgZW4pOworCQlicmVhazsKKwljYXNlIEdQSU9fSURfSFBEOgorCQlncGlvLT5zZXJ2aWNlLT5mYWN0b3J5LmZ1bmNzLT5pbml0X2hwZCgmZ3Bpby0+aHdfY29udGFpbmVyLmhwZCwgc2VydmljZS0+Y3R4LCBpZCwgZW4pOworCQlicmVhazsKKwkvLyBUT0RPOiBjdXJyZW50bHkgZ3BpbyBmb3Igc3luYyBhbmQgZ3NsIGRvZXMgbm90IGdldCBjcmVhdGVkLCBtaWdodCBuZWVkIGl0IGxhdGVyCisJY2FzZSBHUElPX0lEX1NZTkM6CisJCWJyZWFrOworCWNhc2UgR1BJT19JRF9HU0w6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CisJCWdwaW8tPnBpbiA9IE5VTEw7CisJfQorCiAJcmV0dXJuIGdwaW87CiB9CiAKQEAgLTI4MCw2ICszMjMsMzMgQEAgdm9pZCBkYWxfZ3Bpb19kZXN0cm95KAogCiAJZGFsX2dwaW9fY2xvc2UoKmdwaW8pOwogCisJc3dpdGNoICgoKmdwaW8pLT5pZCkgeworCWNhc2UgR1BJT19JRF9ERENfREFUQToKKwkJa2ZyZWUoKCpncGlvKS0+aHdfY29udGFpbmVyLmRkYyk7CisJCSgqZ3BpbyktPmh3X2NvbnRhaW5lci5kZGMgPSBOVUxMOworCQlicmVhazsKKwljYXNlIEdQSU9fSURfRERDX0NMT0NLOgorCQkvL1RPRE86IG1pZ2h0IHdhbnQgdG8gY2hhbmdlIGl0IHRvIGluaXRfZGRjX2Nsb2NrCisJCWtmcmVlKCgqZ3BpbyktPmh3X2NvbnRhaW5lci5kZGMpOworCQkoKmdwaW8pLT5od19jb250YWluZXIuZGRjID0gTlVMTDsKKwkJYnJlYWs7CisJY2FzZSBHUElPX0lEX0dFTkVSSUM6CisJCWtmcmVlKCgqZ3BpbyktPmh3X2NvbnRhaW5lci5nZW5lcmljKTsKKwkJKCpncGlvKS0+aHdfY29udGFpbmVyLmdlbmVyaWMgPSBOVUxMOworCQlicmVhazsKKwljYXNlIEdQSU9fSURfSFBEOgorCQlrZnJlZSgoKmdwaW8pLT5od19jb250YWluZXIuaHBkKTsKKwkJKCpncGlvKS0+aHdfY29udGFpbmVyLmhwZCA9IE5VTEw7CisJCWJyZWFrOworCS8vIFRPRE86IGN1cnJlbnRseSBncGlvIGZvciBzeW5jIGFuZCBnc2wgZG9lcyBub3QgZ2V0IGNyZWF0ZWQsIG1pZ2h0IG5lZWQgaXQgbGF0ZXIKKwljYXNlIEdQSU9fSURfU1lOQzoKKwkJYnJlYWs7CisJY2FzZSBHUElPX0lEX0dTTDoKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCiAJa2ZyZWUoKmdwaW8pOwogCiAJKmdwaW8gPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vZ3Bpb19zZXJ2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9ncGlvX3NlcnZpY2UuYwppbmRleCBhN2ZhYjQ0Li5kMDMxNjVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9ncGlvX3NlcnZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9ncGlvX3NlcnZpY2UuYwpAQCAtMTQxLDYgKzE0MSw1OCBAQCBzdHJ1Y3QgZ3BpbyAqZGFsX2dwaW9fc2VydmljZV9jcmVhdGVfaXJxKAogCXJldHVybiBkYWxfZ3Bpb19jcmVhdGVfaXJxKHNlcnZpY2UsIGlkLCBlbik7CiB9CiAKK3N0cnVjdCBncGlvICpkYWxfZ3Bpb19zZXJ2aWNlX2NyZWF0ZV9nZW5lcmljX211eCgKKwlzdHJ1Y3QgZ3Bpb19zZXJ2aWNlICpzZXJ2aWNlLAorCXVpbnQzMl90IG9mZnNldCwKKwl1aW50MzJfdCBtYXNrKQoreworCWVudW0gZ3Bpb19pZCBpZDsKKwl1aW50MzJfdCBlbjsKKwlzdHJ1Y3QgZ3BpbyAqZ2VuZXJpYzsKKworCWlmICghc2VydmljZS0+dHJhbnNsYXRlLmZ1bmNzLT5vZmZzZXRfdG9faWQob2Zmc2V0LCBtYXNrLCAmaWQsICZlbikpIHsKKwkJQVNTRVJUX0NSSVRJQ0FMKGZhbHNlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJZ2VuZXJpYyA9IGRhbF9ncGlvX2NyZWF0ZSgKKwkJc2VydmljZSwgaWQsIGVuLCBHUElPX1BJTl9PVVRQVVRfU1RBVEVfREVGQVVMVCk7CisKKwlyZXR1cm4gZ2VuZXJpYzsKK30KKwordm9pZCBkYWxfZ3Bpb19kZXN0cm95X2dlbmVyaWNfbXV4KAorCXN0cnVjdCBncGlvICoqbXV4KQoreworCWlmICghbXV4IHx8ICEqbXV4KSB7CisJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CisJCXJldHVybjsKKwl9CisKKwlkYWxfZ3Bpb19jbG9zZSgqbXV4KTsKKwlkYWxfZ3Bpb19kZXN0cm95KG11eCk7CisJa2ZyZWUoKm11eCk7CisKKwkqbXV4ID0gTlVMTDsKK30KKworc3RydWN0IGdwaW9fcGluX2luZm8gZGFsX2dwaW9fZ2V0X2dlbmVyaWNfcGluX2luZm8oCisJc3RydWN0IGdwaW9fc2VydmljZSAqc2VydmljZSwKKwllbnVtIGdwaW9faWQgaWQsCisJdWludDMyX3QgZW4pCit7CisJc3RydWN0IGdwaW9fcGluX2luZm8gcGluOworCisJaWYgKHNlcnZpY2UtPnRyYW5zbGF0ZS5mdW5jcy0+aWRfdG9fb2Zmc2V0KSB7CisJCXNlcnZpY2UtPnRyYW5zbGF0ZS5mdW5jcy0+aWRfdG9fb2Zmc2V0KGlkLCBlbiwgJnBpbik7CisJfSBlbHNlIHsKKwkJcGluLm1hc2sgPSAweEZGRkZGRkZGOworCQlwaW4ub2Zmc2V0ID0gMHhGRkZGRkZGRjsKKwl9CisKKwlyZXR1cm4gcGluOworfQorCiB2b2lkIGRhbF9ncGlvX3NlcnZpY2VfZGVzdHJveSgKIAlzdHJ1Y3QgZ3Bpb19zZXJ2aWNlICoqcHRyKQogewpAQCAtMTY1LDYgKzIxNywyMSBAQCB2b2lkIGRhbF9ncGlvX3NlcnZpY2VfZGVzdHJveSgKIAkqcHRyID0gTlVMTDsKIH0KIAorZW51bSBncGlvX3Jlc3VsdCBkYWxfbXV4X3NldHVwX2NvbmZpZygKKwlzdHJ1Y3QgZ3BpbyAqbXV4LAorCXN0cnVjdCBncGlvX2dlbmVyaWNfbXV4X2NvbmZpZyAqY29uZmlnKQoreworCXN0cnVjdCBncGlvX2NvbmZpZ19kYXRhIGNvbmZpZ19kYXRhOworCisJaWYgKCFjb25maWcpCisJCXJldHVybiBHUElPX1JFU1VMVF9JTlZBTElEX0RBVEE7CisKKwljb25maWdfZGF0YS5jb25maWcuZ2VuZXJpY19tdXggPSAqY29uZmlnOworCWNvbmZpZ19kYXRhLnR5cGUgPSBHUElPX0NPTkZJR19UWVBFX0dFTkVSSUNfTVVYOworCisJcmV0dXJuIGRhbF9ncGlvX3NldF9jb25maWcobXV4LCAmY29uZmlnX2RhdGEpOworfQorCiAvKgogICogQGJyaWVmCiAgKiBQcml2YXRlIEFQSS4KQEAgLTIyMywxMyArMjkwLDE1IEBAIGVudW0gZ3Bpb19yZXN1bHQgZGFsX2dwaW9fc2VydmljZV91bmxvY2soCiB9CiAKIGVudW0gZ3Bpb19yZXN1bHQgZGFsX2dwaW9fc2VydmljZV9vcGVuKAotCXN0cnVjdCBncGlvX3NlcnZpY2UgKnNlcnZpY2UsCi0JZW51bSBncGlvX2lkIGlkLAotCXVpbnQzMl90IGVuLAotCWVudW0gZ3Bpb19tb2RlIG1vZGUsCi0Jc3RydWN0IGh3X2dwaW9fcGluICoqcHRyKQorCXN0cnVjdCBncGlvICpncGlvKQogewotCXN0cnVjdCBod19ncGlvX3BpbiAqcGluOworCXN0cnVjdCBncGlvX3NlcnZpY2UgKnNlcnZpY2UgPSBncGlvLT5zZXJ2aWNlOworCWVudW0gZ3Bpb19pZCBpZCA9IGdwaW8tPmlkOworCXVpbnQzMl90IGVuID0gZ3Bpby0+ZW47CisJZW51bSBncGlvX21vZGUgbW9kZSA9IGdwaW8tPm1vZGU7CisKKwlzdHJ1Y3QgaHdfZ3Bpb19waW4gKipwaW4gPSAmZ3Bpby0+cGluOworCiAKIAlpZiAoIXNlcnZpY2UtPmJ1c3luZXNzW2lkXSkgewogCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOwpAQCAtMjQzLDUwICszMTIsNDMgQEAgZW51bSBncGlvX3Jlc3VsdCBkYWxfZ3Bpb19zZXJ2aWNlX29wZW4oCiAKIAlzd2l0Y2ggKGlkKSB7CiAJY2FzZSBHUElPX0lEX0REQ19EQVRBOgotCQlwaW4gPSBzZXJ2aWNlLT5mYWN0b3J5LmZ1bmNzLT5jcmVhdGVfZGRjX2RhdGEoCi0JCQlzZXJ2aWNlLT5jdHgsIGlkLCBlbik7Ci0JCXNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmRlZmluZV9kZGNfcmVnaXN0ZXJzKHBpbiwgZW4pOworCQkqcGluID0gc2VydmljZS0+ZmFjdG9yeS5mdW5jcy0+Z2V0X2RkY19waW4oZ3Bpbyk7CisJCXNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmRlZmluZV9kZGNfcmVnaXN0ZXJzKCpwaW4sIGVuKTsKIAlicmVhazsKIAljYXNlIEdQSU9fSURfRERDX0NMT0NLOgotCQlwaW4gPSBzZXJ2aWNlLT5mYWN0b3J5LmZ1bmNzLT5jcmVhdGVfZGRjX2Nsb2NrKAotCQkJc2VydmljZS0+Y3R4LCBpZCwgZW4pOwotCQlzZXJ2aWNlLT5mYWN0b3J5LmZ1bmNzLT5kZWZpbmVfZGRjX3JlZ2lzdGVycyhwaW4sIGVuKTsKKwkJKnBpbiA9IHNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmdldF9kZGNfcGluKGdwaW8pOworCQlzZXJ2aWNlLT5mYWN0b3J5LmZ1bmNzLT5kZWZpbmVfZGRjX3JlZ2lzdGVycygqcGluLCBlbik7CiAJYnJlYWs7CiAJY2FzZSBHUElPX0lEX0dFTkVSSUM6Ci0JCXBpbiA9IHNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmNyZWF0ZV9nZW5lcmljKAotCQkJc2VydmljZS0+Y3R4LCBpZCwgZW4pOworCQkqcGluID0gc2VydmljZS0+ZmFjdG9yeS5mdW5jcy0+Z2V0X2dlbmVyaWNfcGluKGdwaW8pOworCQlzZXJ2aWNlLT5mYWN0b3J5LmZ1bmNzLT5kZWZpbmVfZ2VuZXJpY19yZWdpc3RlcnMoKnBpbiwgZW4pOwogCWJyZWFrOwogCWNhc2UgR1BJT19JRF9IUEQ6Ci0JCXBpbiA9IHNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmNyZWF0ZV9ocGQoCi0JCQlzZXJ2aWNlLT5jdHgsIGlkLCBlbik7Ci0JCXNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmRlZmluZV9ocGRfcmVnaXN0ZXJzKHBpbiwgZW4pOworCQkqcGluID0gc2VydmljZS0+ZmFjdG9yeS5mdW5jcy0+Z2V0X2hwZF9waW4oZ3Bpbyk7CisJCXNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmRlZmluZV9ocGRfcmVnaXN0ZXJzKCpwaW4sIGVuKTsKIAlicmVhazsKKworCS8vVE9ETzogZ3NsIGFuZCBzeW5jIHN1cHBvcnQ/IGNyZWF0ZV9zeW5jIGFuZCBjcmVhdGVfZ3NsIGFyZSBOVUxMCiAJY2FzZSBHUElPX0lEX1NZTkM6Ci0JCXBpbiA9IHNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmNyZWF0ZV9zeW5jKAotCQkJc2VydmljZS0+Y3R4LCBpZCwgZW4pOwotCWJyZWFrOwogCWNhc2UgR1BJT19JRF9HU0w6Ci0JCXBpbiA9IHNlcnZpY2UtPmZhY3RvcnkuZnVuY3MtPmNyZWF0ZV9nc2woCi0JCQlzZXJ2aWNlLT5jdHgsIGlkLCBlbik7CiAJYnJlYWs7CiAJZGVmYXVsdDoKIAkJQVNTRVJUX0NSSVRJQ0FMKGZhbHNlKTsKIAkJcmV0dXJuIEdQSU9fUkVTVUxUX05PTl9TUEVDSUZJQ19FUlJPUjsKIAl9CiAKLQlpZiAoIXBpbikgeworCWlmICghKnBpbikgewogCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOwogCQlyZXR1cm4gR1BJT19SRVNVTFRfTk9OX1NQRUNJRklDX0VSUk9SOwogCX0KIAotCWlmICghcGluLT5mdW5jcy0+b3BlbihwaW4sIG1vZGUpKSB7CisJaWYgKCEoKnBpbiktPmZ1bmNzLT5vcGVuKCpwaW4sIG1vZGUpKSB7CiAJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7Ci0JCWRhbF9ncGlvX3NlcnZpY2VfY2xvc2Uoc2VydmljZSwgJnBpbik7CisJCWRhbF9ncGlvX3NlcnZpY2VfY2xvc2Uoc2VydmljZSwgcGluKTsKIAkJcmV0dXJuIEdQSU9fUkVTVUxUX09QRU5fRkFJTEVEOwogCX0KIAogCXNldF9waW5fYnVzeShzZXJ2aWNlLCBpZCwgZW4pOwotCSpwdHIgPSBwaW47CiAJcmV0dXJuIEdQSU9fUkVTVUxUX09LOwogfQogCkBAIC0zMDgsMTEgKzM3MCwxMCBAQCB2b2lkIGRhbF9ncGlvX3NlcnZpY2VfY2xvc2UoCiAKIAkJcGluLT5mdW5jcy0+Y2xvc2UocGluKTsKIAotCQlwaW4tPmZ1bmNzLT5kZXN0cm95KHB0cik7CisJCSpwdHIgPSBOVUxMOwogCX0KIH0KIAotCiBlbnVtIGRjX2lycV9zb3VyY2UgZGFsX2lycV9nZXRfc291cmNlKAogCWNvbnN0IHN0cnVjdCBncGlvICppcnEpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9ncGlvX3NlcnZpY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2dwaW9fc2VydmljZS5oCmluZGV4IDBjNjc4YWYuLmI5Nzc1YTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2dwaW9fc2VydmljZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2dwaW9fc2VydmljZS5oCkBAIC00MiwxMSArNDIsNyBAQCBzdHJ1Y3QgZ3Bpb19zZXJ2aWNlIHsKIH07CiAKIGVudW0gZ3Bpb19yZXN1bHQgZGFsX2dwaW9fc2VydmljZV9vcGVuKAotCXN0cnVjdCBncGlvX3NlcnZpY2UgKnNlcnZpY2UsCi0JZW51bSBncGlvX2lkIGlkLAotCXVpbnQzMl90IGVuLAotCWVudW0gZ3Bpb19tb2RlIG1vZGUsCi0Jc3RydWN0IGh3X2dwaW9fcGluICoqcHRyKTsKKwlzdHJ1Y3QgZ3BpbyAqZ3Bpbyk7CiAKIHZvaWQgZGFsX2dwaW9fc2VydmljZV9jbG9zZSgKIAlzdHJ1Y3QgZ3Bpb19zZXJ2aWNlICpzZXJ2aWNlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfZGRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19kZGMuYwppbmRleCA0MDg4NTdkLi4xYzEyOTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19kZGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19kZGMuYwpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiZG1fc2VydmljZXMuaCIKIAorI2luY2x1ZGUgImluY2x1ZGUvZ3Bpb19pbnRlcmZhY2UuaCIKICNpbmNsdWRlICJpbmNsdWRlL2dwaW9fdHlwZXMuaCIKICNpbmNsdWRlICJod19ncGlvLmgiCiAjaW5jbHVkZSAiaHdfZGRjLmgiCkBAIC00NSw2ICs0Niw4IEBACiAjZGVmaW5lIFJFRyhyZWcpXAogCShkZGMtPnJlZ3MtPnJlZykKIAorc3RydWN0IGdwaW87CisKIHN0YXRpYyB2b2lkIGRlc3RydWN0KAogCXN0cnVjdCBod19kZGMgKnBpbikKIHsKQEAgLTIyNywyNCArMjMwLDI5IEBAIHN0YXRpYyB2b2lkIGNvbnN0cnVjdCgKIAlkZGMtPmJhc2UuYmFzZS5mdW5jcyA9ICZmdW5jczsKIH0KIAotc3RydWN0IGh3X2dwaW9fcGluICpkYWxfaHdfZGRjX2NyZWF0ZSgKK3ZvaWQgZGFsX2h3X2RkY19pbml0KAorCXN0cnVjdCBod19kZGMgKipod19kZGMsCiAJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIAllbnVtIGdwaW9faWQgaWQsCiAJdWludDMyX3QgZW4pCiB7Ci0Jc3RydWN0IGh3X2RkYyAqcGluOwotCiAJaWYgKChlbiA8IEdQSU9fRERDX0xJTkVfTUlOKSB8fCAoZW4gPiBHUElPX0REQ19MSU5FX01BWCkpIHsKIAkJQVNTRVJUX0NSSVRJQ0FMKGZhbHNlKTsKLQkJcmV0dXJuIE5VTEw7CisJCSpod19kZGMgPSBOVUxMOwogCX0KIAotCXBpbiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBod19kZGMpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXBpbikgeworCSpod19kZGMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgaHdfZGRjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCEqaHdfZGRjKSB7CiAJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm47CiAJfQogCi0JY29uc3RydWN0KHBpbiwgaWQsIGVuLCBjdHgpOwotCXJldHVybiAmcGluLT5iYXNlLmJhc2U7CisJY29uc3RydWN0KCpod19kZGMsIGlkLCBlbiwgY3R4KTsKK30KKworc3RydWN0IGh3X2dwaW9fcGluICpkYWxfaHdfZGRjX2dldF9waW4oc3RydWN0IGdwaW8gKmdwaW8pCit7CisJc3RydWN0IGh3X2RkYyAqaHdfZGRjID0gZGFsX2dwaW9fZ2V0X2RkYyhncGlvKTsKKworCXJldHVybiAmaHdfZGRjLT5iYXNlLmJhc2U7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19kZGMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2RkYy5oCmluZGV4IDk2OTBlMmEuLmNjMzBlNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2RkYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2RkYy5oCkBAIC0zOCw5ICszOCwxMiBAQCBzdHJ1Y3QgaHdfZGRjIHsKICNkZWZpbmUgSFdfRERDX0ZST01fQkFTRShod19ncGlvKSBcCiAJY29udGFpbmVyX29mKChIV19HUElPX0ZST01fQkFTRShod19ncGlvKSksIHN0cnVjdCBod19kZGMsIGJhc2UpCiAKLXN0cnVjdCBod19ncGlvX3BpbiAqZGFsX2h3X2RkY19jcmVhdGUoCit2b2lkIGRhbF9od19kZGNfaW5pdCgKKwlzdHJ1Y3QgaHdfZGRjICoqaHdfZGRjLAogCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAJZW51bSBncGlvX2lkIGlkLAogCXVpbnQzMl90IGVuKTsKIAorc3RydWN0IGh3X2dwaW9fcGluICpkYWxfaHdfZGRjX2dldF9waW4oc3RydWN0IGdwaW8gKmdwaW8pOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2ZhY3RvcnkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2ZhY3RvcnkuYwppbmRleCA3OGY1MjhmLi5mYTlmMWQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19mYWN0b3J5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfZmFjdG9yeS5jCkBAIC01MSw2ICs1MSw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCiAjaW5jbHVkZSAiZGNuMjAvaHdfZmFjdG9yeV9kY24yMC5oIgogI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisjaW5jbHVkZSAiZGNuMjEvaHdfZmFjdG9yeV9kY24yMS5oIgorI2VuZGlmCiAKICNpbmNsdWRlICJkaWFnbm9zdGljcy9od19mYWN0b3J5X2RpYWcuaCIKIApAQCAtOTksNiArMTAyLDExIEBAIGJvb2wgZGFsX2h3X2ZhY3RvcnlfaW5pdCgKIAkJZGFsX2h3X2ZhY3RvcnlfZGNuMjBfaW5pdChmYWN0b3J5KTsKIAkJcmV0dXJuIHRydWU7CiAjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKwljYXNlIERDTl9WRVJTSU9OXzJfMToKKwkJZGFsX2h3X2ZhY3RvcnlfZGNuMjFfaW5pdChmYWN0b3J5KTsKKwkJcmV0dXJuIHRydWU7CisjZW5kaWYKIAogCWRlZmF1bHQ6CiAJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19mYWN0b3J5LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19mYWN0b3J5LmgKaW5kZXggNmU0ZGQzNS4uZTE1YjAzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfZmFjdG9yeS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2ZhY3RvcnkuaApAQCAtMjgsNDEgKzI4LDQ0IEBACiAKIHN0cnVjdCBod19ncGlvX3BpbjsKIHN0cnVjdCBod19ocGQ7CitzdHJ1Y3QgaHdfZGRjOworc3RydWN0IGh3X2dlbmVyaWM7CitzdHJ1Y3QgZ3BpbzsKIAogc3RydWN0IGh3X2ZhY3RvcnkgewogCXVpbnQzMl90IG51bWJlcl9vZl9waW5zW0dQSU9fSURfQ09VTlRdOwogCiAJY29uc3Qgc3RydWN0IGh3X2ZhY3RvcnlfZnVuY3MgewotCQlzdHJ1Y3QgaHdfZ3Bpb19waW4gKigqY3JlYXRlX2RkY19kYXRhKSgKLQkJCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCi0JCQllbnVtIGdwaW9faWQgaWQsCi0JCQl1aW50MzJfdCBlbik7Ci0JCXN0cnVjdCBod19ncGlvX3BpbiAqKCpjcmVhdGVfZGRjX2Nsb2NrKSgKLQkJCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCi0JCQllbnVtIGdwaW9faWQgaWQsCi0JCQl1aW50MzJfdCBlbik7Ci0JCXN0cnVjdCBod19ncGlvX3BpbiAqKCpjcmVhdGVfZ2VuZXJpYykoCi0JCQlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAotCQkJZW51bSBncGlvX2lkIGlkLAotCQkJdWludDMyX3QgZW4pOwotCQlzdHJ1Y3QgaHdfZ3Bpb19waW4gKigqY3JlYXRlX2hwZCkoCi0JCQlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAotCQkJZW51bSBncGlvX2lkIGlkLAotCQkJdWludDMyX3QgZW4pOwotCQlzdHJ1Y3QgaHdfZ3Bpb19waW4gKigqY3JlYXRlX3N5bmMpKAotCQkJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKLQkJCWVudW0gZ3Bpb19pZCBpZCwKLQkJCXVpbnQzMl90IGVuKTsKLQkJc3RydWN0IGh3X2dwaW9fcGluICooKmNyZWF0ZV9nc2wpKAotCQkJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKLQkJCWVudW0gZ3Bpb19pZCBpZCwKLQkJCXVpbnQzMl90IGVuKTsKKwkJdm9pZCAoKmluaXRfZGRjX2RhdGEpKAorCQkJCXN0cnVjdCBod19kZGMgKipod19kZGMsCisJCQkJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwkJCQllbnVtIGdwaW9faWQgaWQsCisJCQkJdWludDMyX3QgZW4pOworCQl2b2lkICgqaW5pdF9nZW5lcmljKSgKKwkJCQlzdHJ1Y3QgaHdfZ2VuZXJpYyAqKmh3X2dlbmVyaWMsCisJCQkJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwkJCQllbnVtIGdwaW9faWQgaWQsCisJCQkJdWludDMyX3QgZW4pOworCQl2b2lkICgqaW5pdF9ocGQpKAorCQkJCXN0cnVjdCBod19ocGQgKipod19ocGQsCisJCQkJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwkJCQllbnVtIGdwaW9faWQgaWQsCisJCQkJdWludDMyX3QgZW4pOworCQlzdHJ1Y3QgaHdfZ3Bpb19waW4gKigqZ2V0X2hwZF9waW4pKAorCQkJCXN0cnVjdCBncGlvICpncGlvKTsKKwkJc3RydWN0IGh3X2dwaW9fcGluICooKmdldF9kZGNfcGluKSgKKwkJCQlzdHJ1Y3QgZ3BpbyAqZ3Bpbyk7CisJCXN0cnVjdCBod19ncGlvX3BpbiAqKCpnZXRfZ2VuZXJpY19waW4pKAorCQkJCXN0cnVjdCBncGlvICpncGlvKTsKIAkJdm9pZCAoKmRlZmluZV9ocGRfcmVnaXN0ZXJzKSgKIAkJCQlzdHJ1Y3QgaHdfZ3Bpb19waW4gKnBpbiwKIAkJCQl1aW50MzJfdCBlbik7CiAJCXZvaWQgKCpkZWZpbmVfZGRjX3JlZ2lzdGVycykoCiAJCQkJc3RydWN0IGh3X2dwaW9fcGluICpwaW4sCiAJCQkJdWludDMyX3QgZW4pOworCQl2b2lkICgqZGVmaW5lX2dlbmVyaWNfcmVnaXN0ZXJzKSgKKwkJCQlzdHJ1Y3QgaHdfZ3Bpb19waW4gKnBpbiwKKwkJCQl1aW50MzJfdCBlbik7CiAJfSAqZnVuY3M7CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19nZW5lcmljLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19nZW5lcmljLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjliODk5NwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2dlbmVyaWMuYwpAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEyLTE1IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKworI2luY2x1ZGUgImRtX3NlcnZpY2VzLmgiCisKKyNpbmNsdWRlICJpbmNsdWRlL2dwaW9faW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiaW5jbHVkZS9ncGlvX3R5cGVzLmgiCisjaW5jbHVkZSAiaHdfZ3Bpby5oIgorI2luY2x1ZGUgImh3X2dlbmVyaWMuaCIKKworI2luY2x1ZGUgInJlZ19oZWxwZXIuaCIKKyNpbmNsdWRlICJnZW5lcmljX3JlZ3MuaCIKKworI3VuZGVmIEZOCisjZGVmaW5lIEZOKHJlZ19uYW1lLCBmaWVsZF9uYW1lKSBcCisJZ2VuZXJpYy0+c2hpZnRzLT5maWVsZF9uYW1lLCBnZW5lcmljLT5tYXNrcy0+ZmllbGRfbmFtZQorCisjZGVmaW5lIENUWCBcCisJZ2VuZXJpYy0+YmFzZS5iYXNlLmN0eAorI2RlZmluZSBSRUcocmVnKVwKKwkoZ2VuZXJpYy0+cmVncy0+cmVnKQorCitzdHJ1Y3QgZ3BpbzsKKworc3RhdGljIHZvaWQgZGFsX2h3X2dlbmVyaWNfY29uc3RydWN0KAorCXN0cnVjdCBod19nZW5lcmljICpwaW4sCisJZW51bSBncGlvX2lkIGlkLAorCXVpbnQzMl90IGVuLAorCXN0cnVjdCBkY19jb250ZXh0ICpjdHgpCit7CisJZGFsX2h3X2dwaW9fY29uc3RydWN0KCZwaW4tPmJhc2UsIGlkLCBlbiwgY3R4KTsKK30KKworc3RhdGljIHZvaWQgZGFsX2h3X2dlbmVyaWNfZGVzdHJ1Y3QoCisJc3RydWN0IGh3X2dlbmVyaWMgKnBpbikKK3sKKwlkYWxfaHdfZ3Bpb19kZXN0cnVjdCgmcGluLT5iYXNlKTsKK30KKworc3RhdGljIHZvaWQgZGVzdHJveSgKKwlzdHJ1Y3QgaHdfZ3Bpb19waW4gKipwdHIpCit7CisJc3RydWN0IGh3X2dlbmVyaWMgKmdlbmVyaWMgPSBIV19HRU5FUklDX0ZST01fQkFTRSgqcHRyKTsKKworCWRhbF9od19nZW5lcmljX2Rlc3RydWN0KGdlbmVyaWMpOworCisJa2ZyZWUoZ2VuZXJpYyk7CisKKwkqcHRyID0gTlVMTDsKK30KKworc3RhdGljIGVudW0gZ3Bpb19yZXN1bHQgc2V0X2NvbmZpZygKKwlzdHJ1Y3QgaHdfZ3Bpb19waW4gKnB0ciwKKwljb25zdCBzdHJ1Y3QgZ3Bpb19jb25maWdfZGF0YSAqY29uZmlnX2RhdGEpCit7CisJc3RydWN0IGh3X2dlbmVyaWMgKmdlbmVyaWMgPSBIV19HRU5FUklDX0ZST01fQkFTRShwdHIpOworCisJaWYgKCFjb25maWdfZGF0YSkKKwkJcmV0dXJuIEdQSU9fUkVTVUxUX0lOVkFMSURfREFUQTsKKworCVJFR19VUERBVEVfMihtdXgsCisJCUdFTkVSSUNfRU4sIGNvbmZpZ19kYXRhLT5jb25maWcuZ2VuZXJpY19tdXguZW5hYmxlX291dHB1dF9mcm9tX211eCwKKwkJR0VORVJJQ19TRUwsIGNvbmZpZ19kYXRhLT5jb25maWcuZ2VuZXJpY19tdXgubXV4X3NlbGVjdCk7CisKKwlyZXR1cm4gR1BJT19SRVNVTFRfT0s7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfZ3Bpb19waW5fZnVuY3MgZnVuY3MgPSB7CisJLmRlc3Ryb3kgPSBkZXN0cm95LAorCS5vcGVuID0gZGFsX2h3X2dwaW9fb3BlbiwKKwkuZ2V0X3ZhbHVlID0gZGFsX2h3X2dwaW9fZ2V0X3ZhbHVlLAorCS5zZXRfdmFsdWUgPSBkYWxfaHdfZ3Bpb19zZXRfdmFsdWUsCisJLnNldF9jb25maWcgPSBzZXRfY29uZmlnLAorCS5jaGFuZ2VfbW9kZSA9IGRhbF9od19ncGlvX2NoYW5nZV9tb2RlLAorCS5jbG9zZSA9IGRhbF9od19ncGlvX2Nsb3NlLAorfTsKKworc3RhdGljIHZvaWQgY29uc3RydWN0KAorCXN0cnVjdCBod19nZW5lcmljICpnZW5lcmljLAorCWVudW0gZ3Bpb19pZCBpZCwKKwl1aW50MzJfdCBlbiwKKwlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQoreworCWRhbF9od19nZW5lcmljX2NvbnN0cnVjdChnZW5lcmljLCBpZCwgZW4sIGN0eCk7CisJZ2VuZXJpYy0+YmFzZS5iYXNlLmZ1bmNzID0gJmZ1bmNzOworfQorCit2b2lkIGRhbF9od19nZW5lcmljX2luaXQoCisJc3RydWN0IGh3X2dlbmVyaWMgKipod19nZW5lcmljLAorCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCisJZW51bSBncGlvX2lkIGlkLAorCXVpbnQzMl90IGVuKQoreworCWlmICgoZW4gPCBHUElPX0REQ19MSU5FX01JTikgfHwgKGVuID4gR1BJT19ERENfTElORV9NQVgpKSB7CisJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CisJCSpod19nZW5lcmljID0gTlVMTDsKKwl9CisKKwkqaHdfZ2VuZXJpYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBod19nZW5lcmljKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCEqaHdfZ2VuZXJpYykgeworCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOworCQlyZXR1cm47CisJfQorCisJY29uc3RydWN0KCpod19nZW5lcmljLCBpZCwgZW4sIGN0eCk7Cit9CisKKworc3RydWN0IGh3X2dwaW9fcGluICpkYWxfaHdfZ2VuZXJpY19nZXRfcGluKHN0cnVjdCBncGlvICpncGlvKQoreworCXN0cnVjdCBod19nZW5lcmljICpod19nZW5lcmljID0gZGFsX2dwaW9fZ2V0X2dlbmVyaWMoZ3Bpbyk7CisKKwlyZXR1cm4gJmh3X2dlbmVyaWMtPmJhc2UuYmFzZTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2dlbmVyaWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2dlbmVyaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDZmZmViCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfZ2VuZXJpYy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMi0xNSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpZm5kZWYgX19EQUxfSFdfZ2VuZXJpY19IX18KKyNkZWZpbmUgX19EQUxfSFdfZ2VuZXJpY19IX18KKworI2luY2x1ZGUgImdlbmVyaWNfcmVncy5oIgorI2luY2x1ZGUgImh3X2dwaW8uaCIKKworc3RydWN0IGh3X2dlbmVyaWMgeworCXN0cnVjdCBod19ncGlvIGJhc2U7CisJY29uc3Qgc3RydWN0IGdlbmVyaWNfcmVnaXN0ZXJzICpyZWdzOworCWNvbnN0IHN0cnVjdCBnZW5lcmljX3NoX21hc2sgKnNoaWZ0czsKKwljb25zdCBzdHJ1Y3QgZ2VuZXJpY19zaF9tYXNrICptYXNrczsKK307CisKKyNkZWZpbmUgSFdfR0VORVJJQ19GUk9NX0JBU0UoaHdfZ3BpbykgXAorCWNvbnRhaW5lcl9vZigoSFdfR1BJT19GUk9NX0JBU0UoaHdfZ3BpbykpLCBzdHJ1Y3QgaHdfZ2VuZXJpYywgYmFzZSkKKwordm9pZCBkYWxfaHdfZ2VuZXJpY19pbml0KAorCXN0cnVjdCBod19nZW5lcmljICoqaHdfZ2VuZXJpYywKKwlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAorCWVudW0gZ3Bpb19pZCBpZCwKKwl1aW50MzJfdCBlbik7CisKK3N0cnVjdCBod19ncGlvX3BpbiAqZGFsX2h3X2dlbmVyaWNfZ2V0X3BpbihzdHJ1Y3QgZ3BpbyAqZ3Bpbyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfaHBkLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19ocGQuYwppbmRleCA1ZTExZDc0OC4uMDBjOWJjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfaHBkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfaHBkLmMKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgImRtX3NlcnZpY2VzLmgiCiAKKyNpbmNsdWRlICJpbmNsdWRlL2dwaW9faW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiaW5jbHVkZS9ncGlvX3R5cGVzLmgiCiAjaW5jbHVkZSAiaHdfZ3Bpby5oIgogI2luY2x1ZGUgImh3X2hwZC5oIgpAQCAtNDMsNiArNDQsOCBAQAogI2RlZmluZSBSRUcocmVnKVwKIAkoaHBkLT5yZWdzLT5yZWcpCiAKK3N0cnVjdCBncGlvOworCiBzdGF0aWMgdm9pZCBkYWxfaHdfaHBkX2NvbnN0cnVjdCgKIAlzdHJ1Y3QgaHdfaHBkICpwaW4sCiAJZW51bSBncGlvX2lkIGlkLApAQCAtMTM2LDI5ICsxMzksMjkgQEAgc3RhdGljIHZvaWQgY29uc3RydWN0KAogCWhwZC0+YmFzZS5iYXNlLmZ1bmNzID0gJmZ1bmNzOwogfQogCi1zdHJ1Y3QgaHdfZ3Bpb19waW4gKmRhbF9od19ocGRfY3JlYXRlKAordm9pZCBkYWxfaHdfaHBkX2luaXQoCisJc3RydWN0IGh3X2hwZCAqKmh3X2hwZCwKIAlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogCWVudW0gZ3Bpb19pZCBpZCwKIAl1aW50MzJfdCBlbikKIHsKLQlzdHJ1Y3QgaHdfaHBkICpocGQ7Ci0KLQlpZiAoaWQgIT0gR1BJT19JRF9IUEQpIHsKKwlpZiAoKGVuIDwgR1BJT19ERENfTElORV9NSU4pIHx8IChlbiA+IEdQSU9fRERDX0xJTkVfTUFYKSkgewogCQlBU1NFUlRfQ1JJVElDQUwoZmFsc2UpOwotCQlyZXR1cm4gTlVMTDsKKwkJKmh3X2hwZCA9IE5VTEw7CiAJfQogCi0JaWYgKChlbiA8IEdQSU9fSFBEX01JTikgfHwgKGVuID4gR1BJT19IUERfTUFYKSkgeworCSpod19ocGQgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgaHdfaHBkKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCEqaHdfaHBkKSB7CiAJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm47CiAJfQogCi0JaHBkID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGh3X2hwZCksIEdGUF9LRVJORUwpOwotCWlmICghaHBkKSB7Ci0JCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7Ci0JCXJldHVybiBOVUxMOwotCX0KKwljb25zdHJ1Y3QoKmh3X2hwZCwgaWQsIGVuLCBjdHgpOworfQogCi0JY29uc3RydWN0KGhwZCwgaWQsIGVuLCBjdHgpOwotCXJldHVybiAmaHBkLT5iYXNlLmJhc2U7CitzdHJ1Y3QgaHdfZ3Bpb19waW4gKmRhbF9od19ocGRfZ2V0X3BpbihzdHJ1Y3QgZ3BpbyAqZ3BpbykKK3sKKwlzdHJ1Y3QgaHdfaHBkICpod19ocGQgPSBkYWxfZ3Bpb19nZXRfaHBkKGdwaW8pOworCisJcmV0dXJuICZod19ocGQtPmJhc2UuYmFzZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X2hwZC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfaHBkLmgKaW5kZXggNGFiN2EyMC4uZTdkOGIzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfaHBkLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfaHBkLmgKQEAgLTM4LDkgKzM4LDEyIEBAIHN0cnVjdCBod19ocGQgewogI2RlZmluZSBIV19IUERfRlJPTV9CQVNFKGh3X2dwaW8pIFwKIAljb250YWluZXJfb2YoKEhXX0dQSU9fRlJPTV9CQVNFKGh3X2dwaW8pKSwgc3RydWN0IGh3X2hwZCwgYmFzZSkKIAotc3RydWN0IGh3X2dwaW9fcGluICpkYWxfaHdfaHBkX2NyZWF0ZSgKK3ZvaWQgZGFsX2h3X2hwZF9pbml0KAorCXN0cnVjdCBod19ocGQgKipod19ocGQsCiAJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIAllbnVtIGdwaW9faWQgaWQsCiAJdWludDMyX3QgZW4pOwogCitzdHJ1Y3QgaHdfZ3Bpb19waW4gKmRhbF9od19ocGRfZ2V0X3BpbihzdHJ1Y3QgZ3BpbyAqZ3Bpbyk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2dwaW8vaHdfdHJhbnNsYXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od190cmFuc2xhdGUuYwppbmRleCBjMzVmZTIwLi5mMjA0NmY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od190cmFuc2xhdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od190cmFuc2xhdGUuYwpAQCAtNDksNiArNDksOSBAQAogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQogI2luY2x1ZGUgImRjbjIwL2h3X3RyYW5zbGF0ZV9kY24yMC5oIgogI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisjaW5jbHVkZSAiZGNuMjEvaHdfdHJhbnNsYXRlX2RjbjIxLmgiCisjZW5kaWYKIAogI2luY2x1ZGUgImRpYWdub3N0aWNzL2h3X3RyYW5zbGF0ZV9kaWFnLmgiCiAKQEAgLTk0LDYgKzk3LDExIEBAIGJvb2wgZGFsX2h3X3RyYW5zbGF0ZV9pbml0KAogCQlkYWxfaHdfdHJhbnNsYXRlX2RjbjIwX2luaXQodHJhbnNsYXRlKTsKIAkJcmV0dXJuIHRydWU7CiAjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMSkKKwljYXNlIERDTl9WRVJTSU9OXzJfMToKKwkJZGFsX2h3X3RyYW5zbGF0ZV9kY24yMV9pbml0KHRyYW5zbGF0ZSk7CisJCXJldHVybiB0cnVlOworI2VuZGlmCiAKIAlkZWZhdWx0OgogCQlCUkVBS19UT19ERUJVR0dFUigpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9jb3JlX3N0YXR1cy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9jb3JlX3N0YXR1cy5oCmluZGV4IDBhMDk0ZDcuLmZkMzllMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvY29yZV9zdGF0dXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2NvcmVfc3RhdHVzLmgKQEAgLTQ4LDYgKzQ4LDkgQEAgZW51bSBkY19zdGF0dXMgewogCURDX05PX0RTQ19SRVNPVVJDRSA9IDE3LAogI2VuZGlmCiAJRENfRkFJTF9VTlNVUFBPUlRFRF8xID0gMTgsCisJRENfRkFJTF9DTEtfRVhDRUVEX01BWCA9IDIxLAorCURDX0ZBSUxfQ0xLX0JFTE9XX01JTiA9IDIyLCAvKlRISVMgSVMgTUlOIFBFUiBJUCovCisJRENfRkFJTF9DTEtfQkVMT1dfQ0ZHX1JFUVVJUkVEID0gMjMsIC8qVEhJUyBJUyBoYXJkX21pbiBpbiBQUExJQiovCiAKIAlEQ19FUlJPUl9VTkVYUEVDVEVEID0gLTEKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oCmluZGV4IGExNDhmZmQuLmYxODkzMDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oCkBAIC02MywxMSArNjMsNiBAQCBzdHJ1Y3QgbGlua19pbml0X2RhdGEgewogCQkJCVRPRE86IHJlbW92ZSBpdCB3aGVuIERDIGlzIGNvbXBsZXRlLiAqLwogfTsKIAotZW51bSB7Ci0JRlJFRV9BQ1FVSVJFRF9SRVNPVVJDRSA9IDAsCi0JS0VFUF9BQ1FVSVJFRF9SRVNPVVJDRSA9IDEsCi19OwotCiBzdHJ1Y3QgZGNfbGluayAqbGlua19jcmVhdGUoY29uc3Qgc3RydWN0IGxpbmtfaW5pdF9kYXRhICppbml0X3BhcmFtcyk7CiB2b2lkIGxpbmtfZGVzdHJveShzdHJ1Y3QgZGNfbGluayAqKmxpbmspOwogCkBAIC04Miw3ICs3Nyw3IEBAIHZvaWQgY29yZV9saW5rX2VuYWJsZV9zdHJlYW0oCiAJCXN0cnVjdCBkY19zdGF0ZSAqc3RhdGUsCiAJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogCi12b2lkIGNvcmVfbGlua19kaXNhYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBpbnQgb3B0aW9uKTsKK3ZvaWQgY29yZV9saW5rX2Rpc2FibGVfc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogCiB2b2lkIGNvcmVfbGlua19zZXRfYXZtdXRlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGJvb2wgZW5hYmxlKTsKIC8qKioqKioqKioqIERBTCBDb3JlKioqKioqKioqKioqKioqKioqKioqLwpAQCAtOTIsNiArODcsOSBAQCB2b2lkIGNvcmVfbGlua19zZXRfYXZtdXRlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGJvb2wgZW5hYmxlKTsKIHN0cnVjdCByZXNvdXJjZV9wb29sOwogc3RydWN0IGRjX3N0YXRlOwogc3RydWN0IHJlc291cmNlX2NvbnRleHQ7CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCitzdHJ1Y3QgY2xrX2J3X3BhcmFtczsKKyNlbmRpZgogCiBzdHJ1Y3QgcmVzb3VyY2VfZnVuY3MgewogCXZvaWQgKCpkZXN0cm95KShzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqKnBvb2wpOwpAQCAtMTQ3LDYgKzE0NSwxMSBAQCBzdHJ1Y3QgcmVzb3VyY2VfZnVuY3MgewogCQkJZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAogCQkJaW50IHBpcGVfY250KTsKICNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorCXZvaWQgKCp1cGRhdGVfYndfYm91bmRpbmdfYm94KSgKKwkJCXN0cnVjdCBkYyAqZGMsCisJCQlzdHJ1Y3QgY2xrX2J3X3BhcmFtcyAqYndfcGFyYW1zKTsKKyNlbmRpZgogCiB9OwogCkBAIC0yMjgsMTQgKzIzMSwxMiBAQCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCB7CiAKIHN0cnVjdCBkY25fZmVfYmFuZHdpZHRoIHsKIAlpbnQgZHBwY2xrX2toejsKLQogfTsKIAogc3RydWN0IHN0cmVhbV9yZXNvdXJjZSB7CiAJc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcDsKICNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EU0NfU1VQUE9SVAogCXN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2M7Ci0JaW50IGRzY2Nsa19raHo7CiAjZW5kaWYKIAlzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGc7CiAJc3RydWN0IHN0cmVhbV9lbmNvZGVyICpzdHJlYW1fZW5jOwpAQCAtMjk5LDYgKzMwMCw4IEBAIHN0cnVjdCBwaXBlX2N0eCB7CiAKIAlzdHJ1Y3QgcGlwZV9jdHggKnRvcF9waXBlOwogCXN0cnVjdCBwaXBlX2N0eCAqYm90dG9tX3BpcGU7CisJc3RydWN0IHBpcGVfY3R4ICpuZXh0X29kbV9waXBlOworCXN0cnVjdCBwaXBlX2N0eCAqcHJldl9vZG1fcGlwZTsKIAogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMAogCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0IGRsZ19yZWdzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9kY19saW5rX2RwLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2RjX2xpbmtfZHAuaAppbmRleCAyZDk1ZWZmLi4wOGE0ZGYyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9kY19saW5rX2RwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9kY19saW5rX2RwLmgKQEAgLTM4LDYgKzM4LDExIEBAIGJvb2wgZHBfdmVyaWZ5X2xpbmtfY2FwKAogCXN0cnVjdCBkY19saW5rX3NldHRpbmdzICprbm93bl9saW1pdF9saW5rX3NldHRpbmcsCiAJaW50ICpmYWlsX2NvdW50KTsKIAorYm9vbCBkcF92ZXJpZnlfbGlua19jYXBfd2l0aF9yZXRyaWVzKAorCXN0cnVjdCBkY19saW5rICpsaW5rLAorCXN0cnVjdCBkY19saW5rX3NldHRpbmdzICprbm93bl9saW1pdF9saW5rX3NldHRpbmcsCisJaW50IGF0dGVtcHRzKTsKKwogYm9vbCBkcF92YWxpZGF0ZV9tb2RlX3RpbWluZygKIAlzdHJ1Y3QgZGNfbGluayAqbGluaywKIAljb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZyk7CkBAIC02MiwxMCArNjcsMTUgQEAgYm9vbCBpc19kcF9hY3RpdmVfZG9uZ2xlKGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsKIAogdm9pZCBkcF9lbmFibGVfbXN0X29uX3Npbmsoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJvb2wgZW5hYmxlKTsKIAorZW51bSBkcF9wYW5lbF9tb2RlIGRwX2dldF9wYW5lbF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rKTsKK3ZvaWQgZHBfc2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmssIGVudW0gZHBfcGFuZWxfbW9kZSBwYW5lbF9tb2RlKTsKKwogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCiB2b2lkIGRwX3NldF9mZWNfcmVhZHkoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJvb2wgcmVhZHkpOwogdm9pZCBkcF9zZXRfZmVjX2VuYWJsZShzdHJ1Y3QgZGNfbGluayAqbGluaywgYm9vbCBlbmFibGUpOwogYm9vbCBkcF9zZXRfZHNjX2VuYWJsZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBib29sIGVuYWJsZSk7Citib29sIGRwX3NldF9kc2NfcHBzX3NkcChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBib29sIGVuYWJsZSk7Cit2b2lkIGRwX3NldF9kc2Nfb25fc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGJvb2wgZW5hYmxlKTsKIGJvb2wgZHBfdXBkYXRlX2RzY19jb25maWcoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9jbGtfbWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaAppbmRleCAzNmViZDViLi43NmY5YWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaApAQCAtMjgsNiArMjgsMTMxIEBACiAKICNpbmNsdWRlICJkYy5oIgogCisjZGVmaW5lIERDTl9NSU5JTVVNX0RJU1BDTEtfS2h6IDEwMDAwMAorI2RlZmluZSBEQ05fTUlOSU1VTV9EUFBDTEtfS2h6IDEwMDAwMAorCisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMl8xCisvKiBDb25zdGFudHMgKi8KKyNkZWZpbmUgRERSNF9EUkFNX1dJRFRIICAgNjQKKyNkZWZpbmUgV01fQSAwCisjZGVmaW5lIFdNX0IgMQorI2RlZmluZSBXTV9DIDIKKyNkZWZpbmUgV01fRCAzCisjZGVmaW5lIFdNX1NFVF9DT1VOVCA0CisjZW5kaWYKKworI2RlZmluZSBEQ05fTUlOSU1VTV9ESVNQQ0xLX0toeiAxMDAwMDAKKyNkZWZpbmUgRENOX01JTklNVU1fRFBQQ0xLX0toeiAxMDAwMDAKKworI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMQorLyogV2lsbCB0aGVzZSBidyBzdHJ1Y3R1cmVzIGJlIEFTSUMgc3BlY2lmaWM/ICovCisKKyNkZWZpbmUgTUFYX05VTV9EUE1fTFZMCQk0CisjZGVmaW5lIFdNX1NFVF9DT1VOVCAJCTQKKworCitzdHJ1Y3QgY2xrX2xpbWl0X3RhYmxlX2VudHJ5IHsKKwl1bnNpZ25lZCBpbnQgdm9sdGFnZTsgLyogbWlsaXZvbHRzIHdpdGhoIDIgZnJhY3Rpb25hbCBiaXRzICovCisJdW5zaWduZWQgaW50IGRjZmNsa19taHo7CisJdW5zaWduZWQgaW50IGZjbGtfbWh6OworCXVuc2lnbmVkIGludCBtZW1jbGtfbWh6OworCXVuc2lnbmVkIGludCBzb2NjbGtfbWh6OworfTsKKworLyogVGhpcyB0YWJsZSBpcyBjb250aWd1b3VzICovCitzdHJ1Y3QgY2xrX2xpbWl0X3RhYmxlIHsKKwlzdHJ1Y3QgY2xrX2xpbWl0X3RhYmxlX2VudHJ5IGVudHJpZXNbTUFYX05VTV9EUE1fTFZMXTsKKwl1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7Cit9OworCitzdHJ1Y3Qgd21fcmFuZ2VfdGFibGVfZW50cnkgeworCXVuc2lnbmVkIGludCB3bV9pbnN0OworCXVuc2lnbmVkIGludCB3bV90eXBlOworCWRvdWJsZSBwc3RhdGVfbGF0ZW5jeV91czsKKwlib29sIHZhbGlkOworfTsKKworCitzdHJ1Y3QgY2xrX2xvZ19pbmZvIHsKKwlib29sIGVuYWJsZWQ7CisJY2hhciAqcEJ1ZjsKKwl1bnNpZ25lZCBpbnQgYnVmU2l6ZTsKKwl1bnNpZ25lZCBpbnQgKnN1bV9jaGFyc19wcmludGVkOworfTsKKworc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnNfYW5kX2J5cGFzcyB7CisJdWludDMyX3QgZGNmY2xrOworCXVpbnQzMl90IGRjZl9kZWVwX3NsZWVwX2RpdmlkZXI7CisJdWludDMyX3QgZGNmX2RlZXBfc2xlZXBfYWxsb3c7CisJdWludDMyX3QgZHByZWZjbGs7CisJdWludDMyX3QgZGlzcGNsazsKKwl1aW50MzJfdCBkcHBjbGs7CisKKwl1aW50MzJfdCBkcHBjbGtfYnlwYXNzOworCXVpbnQzMl90IGRjZmNsa19ieXBhc3M7CisJdWludDMyX3QgZHByZWZjbGtfYnlwYXNzOworCXVpbnQzMl90IGRpc3BjbGtfYnlwYXNzOworfTsKKworc3RydWN0IHJ2MV9jbGtfaW50ZXJuYWwgeworCXVpbnQzMl90IENMSzBfQ0xLOF9DVVJSRU5UX0NOVDsgIC8vZGNmY2xrCisJdWludDMyX3QgQ0xLMF9DTEs4X0RTX0NOVEw7CQkgLy9kY2ZfZGVlcF9zbGVlcF9kaXZpZGVyCisJdWludDMyX3QgQ0xLMF9DTEs4X0FMTE9XX0RTOwkgLy9kY2ZfZGVlcF9zbGVlcF9hbGxvdworCXVpbnQzMl90IENMSzBfQ0xLMTBfQ1VSUkVOVF9DTlQ7IC8vZHByZWZjbGsKKwl1aW50MzJfdCBDTEswX0NMSzExX0NVUlJFTlRfQ05UOyAvL2Rpc3BjbGsKKworCXVpbnQzMl90IENMSzBfQ0xLOF9CWVBBU1NfQ05UTDsgIC8vZGNmY2xrIGJ5cGFzcworCXVpbnQzMl90IENMSzBfQ0xLMTBfQllQQVNTX0NOVEw7IC8vZHByZWZjbGsgYnlwYXNzCisJdWludDMyX3QgQ0xLMF9DTEsxMV9CWVBBU1NfQ05UTDsgLy9kaXNwY2xrIGJ5cGFzcworfTsKKworc3RydWN0IHJuX2Nsa19pbnRlcm5hbCB7CisJdWludDMyX3QgQ0xLMV9DTEswX0NVUlJFTlRfQ05UOyAvL2Rpc3BjbGsKKwl1aW50MzJfdCBDTEsxX0NMSzFfQ1VSUkVOVF9DTlQ7IC8vZHBwY2xrCisJdWludDMyX3QgQ0xLMV9DTEsyX0NVUlJFTlRfQ05UOyAvL2RwcmVmY2xrCisJdWludDMyX3QgQ0xLMV9DTEszX0NVUlJFTlRfQ05UOyAvL2RjZmNsaworCXVpbnQzMl90IENMSzFfQ0xLM19EU19DTlRMOwkJLy9kY2ZfZGVlcF9zbGVlcF9kaXZpZGVyCisJdWludDMyX3QgQ0xLMV9DTEszX0FMTE9XX0RTOwkvL2RjZl9kZWVwX3NsZWVwX2FsbG93CisKKwl1aW50MzJfdCBDTEsxX0NMSzBfQllQQVNTX0NOVEw7IC8vZGlzcGNsayBieXBhc3MKKwl1aW50MzJfdCBDTEsxX0NMSzFfQllQQVNTX0NOVEw7IC8vZHBwY2xrIGJ5cGFzcworCXVpbnQzMl90IENMSzFfQ0xLMl9CWVBBU1NfQ05UTDsgLy9kcHJlZmNsayBieXBhc3MKKwl1aW50MzJfdCBDTEsxX0NMSzNfQllQQVNTX0NOVEw7IC8vZGNmY2xrIGJ5cGFzcworCit9OworCisvKiBGb3IgZHRuIGxvZ2dpbmcgYW5kIGRlYnVnZ2luZyAqLworc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnMgeworCQl1aW50MzJfdCBDTEswX0NMSzhfQ1VSUkVOVF9DTlQ7ICAvL2RjZmNsaworCQl1aW50MzJfdCBDTEswX0NMSzhfRFNfQ05UTDsJCSAvL2RjZl9kZWVwX3NsZWVwX2RpdmlkZXIKKwkJdWludDMyX3QgQ0xLMF9DTEs4X0FMTE9XX0RTOwkgLy9kY2ZfZGVlcF9zbGVlcF9hbGxvdworCQl1aW50MzJfdCBDTEswX0NMSzEwX0NVUlJFTlRfQ05UOyAvL2RwcmVmY2xrCisJCXVpbnQzMl90IENMSzBfQ0xLMTFfQ1VSUkVOVF9DTlQ7IC8vZGlzcGNsaworfTsKKworLyogVE9ETzogY29tYmluZSB0aGlzIHdpdGggdGhlIGFib3ZlICovCitzdHJ1Y3QgY2xrX2J5cGFzcyB7CisJdWludDMyX3QgZGNmY2xrX2J5cGFzczsKKwl1aW50MzJfdCBkaXNwY2xrX3B5cGFzczsKKwl1aW50MzJfdCBkcHJlZmNsa19ieXBhc3M7Cit9OworLyoKKyAqIFRoaXMgdGFibGUgaXMgbm90IGNvbnRpZ3VvdXMsIGNhbiBoYXZlIGhvbGVzLCBlYWNoCisgKiBlbnRyeSBjb3JyZXNwb25kIHRvIG9uZSBzZXQgb2YgV00uIEZvciBleGFtcGxlIGlmCisgKiB3ZSBoYXZlIDIgRFBNIGFuZCBMUEREUiwgd2Ugd2lsbCBXTSBzZXQgQSwgQiBhbmQKKyAqIEQgb2NjdXBpZWQsIEMgd2lsbCBiZSBlbXB0cnkuCisgKi8KK3N0cnVjdCB3bV90YWJsZSB7CisJc3RydWN0IHdtX3JhbmdlX3RhYmxlX2VudHJ5IGVudHJpZXNbV01fU0VUX0NPVU5UXTsKK307CisKK3N0cnVjdCBjbGtfYndfcGFyYW1zIHsKKwl1bnNpZ25lZCBpbnQgdnJhbV90eXBlOworCXVuc2lnbmVkIGludCBudW1fY2hhbm5lbHM7CisJc3RydWN0IGNsa19saW1pdF90YWJsZSBjbGtfdGFibGU7CisJc3RydWN0IHdtX3RhYmxlIHdtX3RhYmxlOworfTsKKyNlbmRpZgogLyogUHVibGljIGludGVyZmFjZXMgKi8KIAogc3RydWN0IGNsa19zdGF0ZXMgewpAQCAtNTEsNiArMTc2LDEwIEBAIHN0cnVjdCBjbGtfbWdyX2Z1bmNzIHsKIAl2b2lkICgqaW5pdF9jbG9ja3MpKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyKTsKIAogCXZvaWQgKCplbmFibGVfcG1lX3dhKSAoc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IpOworCXZvaWQgKCpnZXRfY2xvY2spKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyLAorCQkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAorCQkJZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5cGUsCisJCQlzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOwogfTsKIAogc3RydWN0IGNsa19tZ3IgewpAQCAtNTgsNiArMTg3LDkgQEAgc3RydWN0IGNsa19tZ3IgewogCXN0cnVjdCBjbGtfbWdyX2Z1bmNzICpmdW5jczsKIAlzdHJ1Y3QgZGNfY2xvY2tzIGNsa3M7CiAJaW50IGRwcmVmY2xrX2toejsgLy8gVXNlZCBieSBwcm9ncmFtIHBpeGVsIGNsb2NrIGluIGNsb2NrIHNvdXJjZSBmdW5jcywgbmVlZCB0byBmaWd1cmVvdXQgd2hlcmUgdGhpcyBnb2VzCisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMl8xCisJc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFtczsKKyNlbmRpZgogfTsKIAogLyogZm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9jbGtfbWdyX2ludGVybmFsLmgKaW5kZXggMDgzNWFjMC4uN2RkNDZlYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5hbC5oCkBAIC02NCw2ICs2NCw4IEBAIGVudW0gZGVudGlzdF9kaXZpZGVyX3JhbmdlIHsKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqLwogCisvKiBNYWNyb3MgKi8KKwogI2RlZmluZSBUT19DTEtfTUdSX0lOVEVSTkFMKGNsa19tZ3IpXAogCWNvbnRhaW5lcl9vZihjbGtfbWdyLCBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCwgYmFzZSkKIApAQCAtMTg5LDYgKzE5MSw3IEBAIHN0cnVjdCBzdGF0ZV9kZXBlbmRlbnRfY2xvY2tzIHsKIAogc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgewogCXN0cnVjdCBjbGtfbWdyIGJhc2U7CisJaW50IHNtdV92ZXI7CiAJc3RydWN0IHBwX3NtdV9mdW5jcyAqcHBfc211OwogCXN0cnVjdCBjbGtfbWdyX2ludGVybmFsX2Z1bmNzICpmdW5jczsKIApAQCAtMjEzLDYgKzIxNiw4IEBAIHN0cnVjdCBjbGtfbWdyX2ludGVybmFsIHsKIAlib29sIGRmc19ieXBhc3NfZW5hYmxlZDsKIAkvKiBUcnVlIGlmIHRoZSBERlMtYnlwYXNzIGZlYXR1cmUgaXMgZW5hYmxlZCBhbmQgYWN0aXZlLiAqLwogCWJvb2wgZGZzX2J5cGFzc19hY3RpdmU7CisKKwl1aW50MzJfdCBkZnNfcmVmX2ZyZXFfa2h6OwogCS8qCiAJICogQ2FjaGUgdGhlIGRpc3BsYXkgY2xvY2sgcmV0dXJuZWQgYnkgVkJJT1MgaWYgREZTLWJ5cGFzcyBpcyBlbmFibGVkLgogCSAqIFRoaXMgaXMgYmFzaWNhbGx5ICJDcnlzdGFsIEZyZXF1ZW5jeSBJbiBLSHoiIChYVEFMSU4pIGZyZXF1ZW5jeQpAQCAtMjc2LDggKzI4MSwxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkX3NldF9jbG9jayhib29sIHNhZmVfdG9fbG93ZXIsIGludCBjYWxjX2NsaywgaW50IGN1cl9jbAogCiBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkX3VwZGF0ZV9wc3RhdGVfc3VwcG9ydChib29sIHNhZmVfdG9fbG93ZXIsIGJvb2wgY2FsY19zdXBwb3J0LCBib29sIGN1cl9zdXBwb3J0KQogewotCS8vIFdoZW5ldmVyIHdlIGFyZSB0cmFuc2l0aW9uaW5nIHBzdGF0ZSBzdXBwb3J0LCB3ZSBhbHdheXMgd2FudCB0byBub3RpZnkgcHJpb3IgdG8gY29tbWl0dGluZyBzdGF0ZQotCXJldHVybiAoY2FsY19zdXBwb3J0ICE9IGN1cl9zdXBwb3J0KSA/ICFzYWZlX3RvX2xvd2VyIDogZmFsc2U7CisJaWYgKGN1cl9zdXBwb3J0ICE9IGNhbGNfc3VwcG9ydCkgeworCQlpZiAoY2FsY19zdXBwb3J0ID09IHRydWUgJiYgc2FmZV90b19sb3dlcikKKwkJCXJldHVybiB0cnVlOworCQllbHNlIGlmIChjYWxjX3N1cHBvcnQgPT0gZmFsc2UgJiYgIXNhZmVfdG9fbG93ZXIpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7CiB9CiAKIGludCBjbGtfbWdyX2hlbHBlcl9nZXRfYWN0aXZlX2Rpc3BsYXlfY250KApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9kY2NnLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2RjY2cuaAppbmRleCAwNWVlNTI5Li5kOGU3NDRmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9kY2NnLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9kY2NnLmgKQEAgLTM4LDcgKzM4LDggQEAgc3RydWN0IGRjY2cgewogc3RydWN0IGRjY2dfZnVuY3MgewogCXZvaWQgKCp1cGRhdGVfZHBwX2R0bykoc3RydWN0IGRjY2cgKmRjY2csCiAJCQlpbnQgZHBwX2luc3QsCi0JCQlpbnQgcmVxX2RwcGNsayk7CisJCQlpbnQgcmVxX2RwcGNsaywKKwkJCWJvb2wgcmVkdWNlX2RpdmlkZXJfb25seSk7CiAJdm9pZCAoKmdldF9kY2NnX3JlZl9mcmVxKShzdHJ1Y3QgZGNjZyAqZGNjZywKIAkJCXVuc2lnbmVkIGludCB4dGFsaW5fZnJlcV9pbktoeiwKIAkJCXVuc2lnbmVkIGludCAqZGNjZ19yZWZfZnJlcV9pbktoeik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2RjaHViYnViLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2RjaHViYnViLmgKaW5kZXggOTUwMjQ3OC4uYTYyOTcyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9kY2h1YmJ1Yi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvZGNodWJidWIuaApAQCAtODAsNiArODAsOCBAQCBzdHJ1Y3QgZGNuX2h1YmJ1Yl9waHlzX2FkZHJfY29uZmlnIHsKIAkJdWludDY0X3QgcGFnZV90YWJsZV9lbmRfYWRkcjsKIAkJdWludDY0X3QgcGFnZV90YWJsZV9iYXNlX2FkZHI7CiAJfSBnYXJ0X2NvbmZpZzsKKworCXVpbnQ2NF90IHBhZ2VfdGFibGVfZGVmYXVsdF9wYWdlX2FkZHI7CiB9OwogCiBzdHJ1Y3QgZGNuX2h1YmJ1Yl92aXJ0X2FkZHJfY29uZmlnIHsKQEAgLTE0MSw2ICsxNDMsMTAgQEAgc3RydWN0IGh1YmJ1Yl9mdW5jcyB7CiAJCQlzdHJ1Y3QgZGNuX3dhdGVybWFya19zZXQgKndhdGVybWFya3MsCiAJCQl1bnNpZ25lZCBpbnQgcmVmY2xrX21oeiwKIAkJCWJvb2wgc2FmZV90b19sb3dlcik7CisKKwlib29sICgqaXNfYWxsb3dfc2VsZl9yZWZyZXNoX2VuYWJsZWQpKHN0cnVjdCBodWJidWIgKmh1YmJ1Yik7CisJdm9pZCAoKmFsbG93X3NlbGZfcmVmcmVzaF9jb250cm9sKShzdHJ1Y3QgaHViYnViICpodWJidWIsIGJvb2wgYWxsb3cpOworCiB9OwogCiBzdHJ1Y3QgaHViYnViIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvZHBwLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2RwcC5oCmluZGV4IDYwYzY3MWYuLjQ3NGM3MTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvZHBwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9kcHAuaApAQCAtNDIsNiArNDIsNyBAQCBzdHJ1Y3QgZHBwIHsKIAogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQogCXN0cnVjdCBwd2xfcGFyYW1zIHNoYXBlcl9wYXJhbXM7CisJYm9vbCBjbV9ieXBhc3NfbW9kZTsKICNlbmRpZgogfTsKIApAQCAtMjAwLDcgKzIwMSw3IEBAIHN0cnVjdCBkcHBfZnVuY3MgewogCiAJdm9pZCAoKnNldF9jdXJzb3JfYXR0cmlidXRlcykoCiAJCQlzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKLQkJCWVudW0gZGNfY3Vyc29yX2NvbG9yX2Zvcm1hdCBjb2xvcl9mb3JtYXQpOworCQkJc3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzICpjdXJzb3JfYXR0cmlidXRlcyk7CiAKIAl2b2lkICgqc2V0X2N1cnNvcl9wb3NpdGlvbikoCiAJCQlzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvZHNjLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2RzYy5oCmluZGV4IGM5MDVkMDIuLjFkZGIxYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvZHNjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9kc2MuaApAQCAtOTIsNyArOTIsOSBAQCBzdHJ1Y3QgZHNjX2Z1bmNzIHsKIAl2b2lkICgqZHNjX3JlYWRfc3RhdGUpKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIHN0cnVjdCBkY25fZHNjX3N0YXRlICpzKTsKIAlib29sICgqZHNjX3ZhbGlkYXRlX3N0cmVhbSkoc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywgY29uc3Qgc3RydWN0IGRzY19jb25maWcgKmRzY19jZmcpOwogCXZvaWQgKCpkc2Nfc2V0X2NvbmZpZykoc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywgY29uc3Qgc3RydWN0IGRzY19jb25maWcgKmRzY19jZmcsCi0JCQlzdHJ1Y3QgZHNjX29wdGNfY29uZmlnICpkc2Nfb3B0Y19jZmcsIHVpbnQ4X3QgKmRzY19wYWNrZWRfcHBzKTsKKwkJCXN0cnVjdCBkc2Nfb3B0Y19jb25maWcgKmRzY19vcHRjX2NmZyk7CisJYm9vbCAoKmRzY19nZXRfcGFja2VkX3Bwcykoc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywgY29uc3Qgc3RydWN0IGRzY19jb25maWcgKmRzY19jZmcsCisJCQl1aW50OF90ICpkc2NfcGFja2VkX3Bwcyk7CiAJdm9pZCAoKmRzY19lbmFibGUpKHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsIGludCBvcHBfcGlwZSk7CiAJdm9pZCAoKmRzY19kaXNhYmxlKShzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciAqZHNjKTsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2R3Yi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9kd2IuaAppbmRleCBhMzQwOTI5Li5mZjFhMDdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2R3Yi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvZHdiLmgKQEAgLTQ1LDIyICs0NSwxMCBAQCBlbnVtIGR3Yl9zb3VyY2UgewogCWR3Yl9zcmNfc2NsID0gMCwJLyogZm9yIERDRTd4Lzl4LCBEQ04gd29uJ3Qgc3VwcG9ydC4gKi8KIAlkd2Jfc3JjX2JsbmQsCQkvKiBmb3IgRENFN3gvOXggKi8KIAlkd2Jfc3JjX2ZtdCwJCS8qIGZvciBEQ0U3eC85eCAqLwotI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQogCWR3Yl9zcmNfb3RnMCA9IDB4MTAwLAkvKiBmb3IgRENOMS54L0RDTjIueCwgcmVnaXN0ZXI6IG1tRFdCX1NPVVJDRV9TRUxFQ1QgKi8KIAlkd2Jfc3JjX290ZzEsCQkvKiBmb3IgRENOMS54L0RDTjIueCAqLwogCWR3Yl9zcmNfb3RnMiwJCS8qIGZvciBEQ04xLngvRENOMi54ICovCiAJZHdiX3NyY19vdGczLAkJLyogZm9yIERDTjEueC9EQ04yLnggKi8KLSNlbHNlCi0JZHdiX3NyY19vdGcwID0gMHgxMDAsCS8qIGZvciBEQ04xLngsIHJlZ2lzdGVyOiBtbURXQl9TT1VSQ0VfU0VMRUNUICovCi0JZHdiX3NyY19vdGcxLAkJLyogZm9yIERDTjEueCAqLwotCWR3Yl9zcmNfb3RnMiwJCS8qIGZvciBEQ04xLnggKi8KLQlkd2Jfc3JjX290ZzMsCQkvKiBmb3IgRENOMS54ICovCi0jZW5kaWYKLQlkd2Jfc3JjX21wYzAgPSAweDIwMCwJLyogZm9yIERDTjIsIHJlZ2lzdGVyOiBtbU1QQ19EV0IwX01VWCwgbW1NUENfRFdCMV9NVVgsIG1tTVBDX0RXQjJfTVVYICovCi0JZHdiX3NyY19tcGMxLAkJLyogZm9yIERDTjIgKi8KLQlkd2Jfc3JjX21wYzIsCQkvKiBmb3IgRENOMiAqLwotCWR3Yl9zcmNfbXBjMywJCS8qIGZvciBEQ04yICovCi0JZHdiX3NyY19tcGM0LAkJLyogZm9yIERDTjIgKi8KIH07CiAKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvZ3Bpby5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9ncGlvLmgKaW5kZXggOTBkMDE0OC4uNTI1M2RjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9ncGlvLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9ncGlvLmgKQEAgLTI4LDEyICsyOCwyMiBAQAogCiAjaW5jbHVkZSAiZ3Bpb190eXBlcy5oIgogCisKK3VuaW9uIGdwaW9faHdfY29udGFpbmVyIHsKKwlzdHJ1Y3QgaHdfZGRjICpkZGM7CisJc3RydWN0IGh3X2dlbmVyaWMgKmdlbmVyaWM7CisJc3RydWN0IGh3X2hwZCAqaHBkOworfTsKKwogc3RydWN0IGdwaW8gewogCXN0cnVjdCBncGlvX3NlcnZpY2UgKnNlcnZpY2U7CiAJc3RydWN0IGh3X2dwaW9fcGluICpwaW47CiAJZW51bSBncGlvX2lkIGlkOwogCXVpbnQzMl90IGVuOworCisJdW5pb24gZ3Bpb19od19jb250YWluZXIgaHdfY29udGFpbmVyOwogCWVudW0gZ3Bpb19tb2RlIG1vZGU7CisKIAkvKiB3aGVuIEdQSU8gY29tZXMgZnJvbSBWQklPUywgaXQgaGFzIGRlZmluZWQgb3V0cHV0IHN0YXRlICovCiAJZW51bSBncGlvX3Bpbl9vdXRwdXRfc3RhdGUgb3V0cHV0X3N0YXRlOwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvaHVicC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9odWJwLmgKaW5kZXggNTFiZmY4Ny4uODA5YjYyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9odWJwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9odWJwLmgKQEAgLTQ3LDYgKzQ3LDExIEBAIGVudW0gY3Vyc29yX2xpbmVzX3Blcl9jaHVuayB7CiAJQ1VSU09SX0xJTkVfUEVSX0NIVU5LXzE2CiB9OwogCitlbnVtIGh1YnBfaW5kX2Jsb2NrX3NpemUgeworCWh1YnBfaW5kX2Jsb2NrX3VuY29uc3RyYWluZWQgPSAwLAorCWh1YnBfaW5kX2Jsb2NrXzY0YiwKK307CisKIHN0cnVjdCBodWJwIHsKIAljb25zdCBzdHJ1Y3QgaHVicF9mdW5jcyAqZnVuY3M7CiAJc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKQEAgLTc0LDcgKzc5LDggQEAgc3RydWN0IGh1YnBfZnVuY3MgewogCQkJc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfdHR1X3JlZ3Nfc3QgKnR0dV9yZWdzKTsKIAogCXZvaWQgKCpkY2NfY29udHJvbCkoc3RydWN0IGh1YnAgKmh1YnAsIGJvb2wgZW5hYmxlLAotCQkJYm9vbCBpbmRlcGVuZGVudF82NGJfYmxrcyk7CisJCQllbnVtIGh1YnBfaW5kX2Jsb2NrX3NpemUgYmxrX3NpemUpOworCiAJdm9pZCAoKm1lbV9wcm9ncmFtX3ZpZXdwb3J0KSgKIAkJCXN0cnVjdCBodWJwICpodWJwLAogCQkJY29uc3Qgc3RydWN0IHJlY3QgKnZpZXdwb3J0LApAQCAtMTAzLDcgKzEwOSw3IEBAIHN0cnVjdCBodWJwX2Z1bmNzIHsKIAkJc3RydWN0IGh1YnAgKmh1YnAsCiAJCWVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAogCQl1bmlvbiBkY190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCi0JCXVuaW9uIHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCisJCXN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAogCQllbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uLAogCQlzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtICpkY2MsCiAJCWJvb2wgaG9yaXpvbnRhbF9taXJyb3IsCkBAIC0xMTEsOSArMTE3LDYgQEAgc3RydWN0IGh1YnBfZnVuY3MgewogCiAJYm9vbCAoKmh1YnBfaXNfZmxpcF9wZW5kaW5nKShzdHJ1Y3QgaHVicCAqaHVicCk7CiAKLQl2b2lkICgqaHVicF91cGRhdGVfZGNodWIpKHN0cnVjdCBodWJwICpodWJwLAotCQkJCXN0cnVjdCBkY2h1Yl9pbml0X2RhdGEgKmRoX2RhdGEpOwotCiAJdm9pZCAoKnNldF9ibGFuaykoc3RydWN0IGh1YnAgKmh1YnAsIGJvb2wgYmxhbmspOwogCXZvaWQgKCpzZXRfaHVicF9ibGFua19lbikoc3RydWN0IGh1YnAgKmh1YnAsIGJvb2wgYmxhbmspOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2xpbmtfZW5jb2Rlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9saW5rX2VuY29kZXIuaAppbmRleCBlNWU4NjQwLi5hYmI0ZTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2xpbmtfZW5jb2Rlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvbGlua19lbmNvZGVyLmgKQEAgLTE4Myw2ICsxODMsOSBAQCBzdHJ1Y3QgbGlua19lbmNvZGVyX2Z1bmNzIHsKIAogCWJvb2wgKCpmZWNfaXNfYWN0aXZlKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMpOwogI2VuZGlmCisJYm9vbCAoKmlzX2luX2FsdF9tb2RlKSAoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKTsKKwllbnVtIHNpZ25hbF90eXBlICgqZ2V0X2RpZ19tb2RlKSgKKwkJc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKTsKIH07CiAKICNlbmRpZiAvKiBMSU5LX0VOQ09ERVJfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvbWVtX2lucHV0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L21lbV9pbnB1dC5oCmluZGV4IGRhODljMmUuLmU4NjY4MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvbWVtX2lucHV0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9tZW1faW5wdXQuaApAQCAtNDAsNiArNDAsMTAgQEAgc3RydWN0IGNzdGF0ZV9wc3RhdGVfd2F0ZXJtYXJrc19zdCB7CiBzdHJ1Y3QgZGNuX3dhdGVybWFya3MgewogCXVpbnQzMl90IHB0ZV9tZXRhX3VyZ2VudF9uczsKIAl1aW50MzJfdCB1cmdlbnRfbnM7CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisJdWludDMyX3QgZnJhY191cmdfYndfbm9tOworCXVpbnQzMl90IGZyYWNfdXJnX2J3X2ZsaXA7CisjZW5kaWYKIAlzdHJ1Y3QgY3N0YXRlX3BzdGF0ZV93YXRlcm1hcmtzX3N0IGNzdGF0ZV9wc3RhdGU7CiB9OwogCkBAIC0xNDksNyArMTUzLDcgQEAgc3RydWN0IG1lbV9pbnB1dF9mdW5jcyB7CiAJCXN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwKIAkJZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCiAJCXVuaW9uIGRjX3RpbGluZ19pbmZvICp0aWxpbmdfaW5mbywKLQkJdW5pb24gcGxhbmVfc2l6ZSAqcGxhbmVfc2l6ZSwKKwkJc3RydWN0IHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCiAJCWVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb24sCiAJCXN0cnVjdCBkY19wbGFuZV9kY2NfcGFyYW0gKmRjYywKIAkJYm9vbCBob3Jpem9udGFsX21pcnJvcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9tcGMuaAppbmRleCA0NWI5NGUzLi41ODgyNmJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgKQEAgLTEyOCw2ICsxMjgsNyBAQCBzdHJ1Y3QgbXBjIHsKIAlzdHJ1Y3QgbXBjYyBtcGNjX2FycmF5W01BWF9NUENDXTsKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKIAlzdHJ1Y3QgcHdsX3BhcmFtcyBibGVuZGVyX3BhcmFtczsKKwlib29sIGNtX2J5cGFzc19tb2RlOwogI2VuZGlmCiB9OwogCkBAIC0xOTgsNiArMTk5LDkgQEAgc3RydWN0IG1wY19mdW5jcyB7CiAJICogUmV0dXJuOiAgdm9pZAogCSAqLwogCXZvaWQgKCptcGNfaW5pdCkoc3RydWN0IG1wYyAqbXBjKTsKKwl2b2lkICgqbXBjX2luaXRfc2luZ2xlX2luc3QpKAorCQkJc3RydWN0IG1wYyAqbXBjLAorCQkJdW5zaWduZWQgaW50IG1wY2NfaWQpOwogCiAJLyoKIAkgKiBVcGRhdGUgdGhlIGJsZW5kaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGEgc3BlY2lmaWVkIE1QQ0MuCkBAIC0yNTAsNiArMjU0LDEwIEBAIHN0cnVjdCBtcGNfZnVuY3MgewogCQkJc3RydWN0IG1wYyAqbXBjLAogCQkJaW50IG1wY2NfaWQsCiAJCQljb25zdCBzdHJ1Y3QgcHdsX3BhcmFtcyAqcGFyYW1zKTsKKwl2b2lkICgqcG93ZXJfb25fbXBjX21lbV9wd3IpKAorCQkJc3RydWN0IG1wYyAqbXBjLAorCQkJaW50IG1wY2NfaWQsCisJCQlib29sIHBvd2VyX29uKTsKICNlbmRpZgogCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9vcHAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgKaW5kZXggNWQ4YTdiYy4uOTU3ZTkwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9vcHAuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L29wcC5oCkBAIC0zMTYsMTEgKzMxNiw2IEBAIHN0cnVjdCBvcHBfZnVuY3MgewogCWJvb2wgKCpkcGdfaXNfYmxhbmtlZCkoCiAJCQlzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwKTsKIAotCXZvaWQgKCpvcHBfY29udmVydF9wdGkpKAotCQlzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwLAotCQlib29sIGVuYWJsZSwKLQkJYm9vbCBwb2xhcml0eSk7Ci0KIAl2b2lkICgqb3BwX2RwZ19zZXRfYmxhbmtfY29sb3IpKAogCQkJc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKIAkJCWNvbnN0IHN0cnVjdCB0Z19jb2xvciAqY29sb3IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9zdHJlYW1fZW5jb2Rlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9zdHJlYW1fZW5jb2Rlci5oCmluZGV4IGVkN2Q5NTg4Li5mZTliN2ExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L3N0cmVhbV9lbmNvZGVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9zdHJlYW1fZW5jb2Rlci5oCkBAIC05MSw3ICs5MSw3IEBAIHN0cnVjdCBlbmNvZGVyX3VuYmxhbmtfcGFyYW0gewogCXN0cnVjdCBkY19saW5rX3NldHRpbmdzIGxpbmtfc2V0dGluZ3M7CiAJc3RydWN0IGRjX2NydGNfdGltaW5nIHRpbWluZzsKICNpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzAKLQlib29sIG9kbTsKKwlpbnQgb3BwX2NudDsKICNlbmRpZgogfTsKIApAQCAtMTIyLDkgKzEyMiw2IEBAIHN0cnVjdCBlbmNfc3RhdGUgewogI2VuZGlmCiAKIHN0cnVjdCBzdHJlYW1fZW5jb2Rlcl9mdW5jcyB7Ci0JI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCi0JCXZvaWQgKCplbmNfcmVhZF9zdGF0ZSkoc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsIHN0cnVjdCBlbmNfc3RhdGUgKnMpOwotCSNlbmRpZgogCXZvaWQgKCpkcF9zZXRfc3RyZWFtX2F0dHJpYnV0ZSkoCiAJCXN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAogCQlzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmNydGNfdGltaW5nLApAQCAtMjExLDE0ICsyMDgsMjUgQEAgc3RydWN0IHN0cmVhbV9lbmNvZGVyX2Z1bmNzIHsKIAkJc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAJCWludCB0Z19pbnN0KTsKIAorCXZvaWQgKCpoZG1pX3Jlc2V0X3N0cmVhbV9hdHRyaWJ1dGUpKAorCQlzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYyk7CisKKwl1bnNpZ25lZCBpbnQgKCpkaWdfc291cmNlX290ZykoCisJCXN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jKTsKKwogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8wKQogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCisJdm9pZCAoKmVuY19yZWFkX3N0YXRlKShzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywgc3RydWN0IGVuY19zdGF0ZSAqcyk7CisKIAl2b2lkICgqZHBfc2V0X2RzY19jb25maWcpKAogCQkJc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAJCQllbnVtIG9wdGNfZHNjX21vZGUgZHNjX21vZGUsCiAJCQl1aW50MzJfdCBkc2NfYnl0ZXNfcGVyX3BpeGVsLAotCQkJdWludDMyX3QgZHNjX3NsaWNlX3dpZHRoLAotCQkJdWludDhfdCAqZHNjX3BhY2tlZF9wcHMpOworCQkJdWludDMyX3QgZHNjX3NsaWNlX3dpZHRoKTsKKworCXZvaWQgKCpkcF9zZXRfZHNjX3Bwc19pbmZvX3BhY2tldCkoc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCisJCQkJYm9vbCBlbmFibGUsCisJCQkJdWludDhfdCAqZHNjX3BhY2tlZF9wcHMpOwogI2VuZGlmCiAKIAl2b2lkICgqc2V0X2R5bmFtaWNfbWV0YWRhdGEpKHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody90aW1pbmdfZ2VuZXJhdG9yLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L3RpbWluZ19nZW5lcmF0b3IuaAppbmRleCA1ZTkzYmMwLi42MTk2Y2MzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L3RpbWluZ19nZW5lcmF0b3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L3RpbWluZ19nZW5lcmF0b3IuaApAQCAtNTksNiArNTksOCBAQCBzdHJ1Y3QgZ3NsX3BhcmFtcyB7CiBzdHJ1Y3QgZHJyX3BhcmFtcyB7CiAJdWludDMyX3QgdmVydGljYWxfdG90YWxfbWluOwogCXVpbnQzMl90IHZlcnRpY2FsX3RvdGFsX21heDsKKwl1aW50MzJfdCB2ZXJ0aWNhbF90b3RhbF9taWQ7CisJdWludDMyX3QgdmVydGljYWxfdG90YWxfbWlkX2ZyYW1lX251bTsKIAlib29sIGltbWVkaWF0ZV9mbGlwOwogfTsKIApAQCAtOTYsNiArOTgsMTEgQEAgZW51bSBjcmNfc2VsZWN0aW9uIHsKIAlJTlRFUlNFQ1RfV0lORE9XX05PVF9BX05PVF9CLAogfTsKIAorZW51bSBoX3RpbWluZ19kaXZfbW9kZSB7CisJSF9USU1JTkdfTk9fRElWLAorCUhfVElNSU5HX0RJVl9CWTIsCit9OworCiBzdHJ1Y3QgY3JjX3BhcmFtcyB7CiAJLyogUmVnaW9ucyB1c2VkIHRvIGNhbGN1bGF0ZSBDUkMqLwogCXVpbnQxNl90IHdpbmRvd2FfeF9zdGFydDsKQEAgLTE4NCwxMCArMTkxLDggQEAgc3RydWN0IHRpbWluZ19nZW5lcmF0b3JfZnVuY3MgewogCWJvb2wgKCpkaWRfdHJpZ2dlcmVkX3Jlc2V0X29jY3VyKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwogCXZvaWQgKCpzZXR1cF9nbG9iYWxfc3dhcF9sb2NrKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCiAJCQkJCQkJY29uc3Qgc3RydWN0IGRjcF9nc2xfcGFyYW1zICpnc2xfcGFyYW1zKTsKLQl2b2lkICgqc2V0dXBfZ2xvYmFsX2xvY2spKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CiAJdm9pZCAoKnVubG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKIAl2b2lkICgqbG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKLQl2b2lkICgqbG9ja19nbG9iYWwpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CiAJdm9pZCAoKmxvY2tfZG91YmxlYnVmZmVyX2Rpc2FibGUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CiAJdm9pZCAoKmxvY2tfZG91YmxlYnVmZmVyX2VuYWJsZSkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKQEAgLTI2Nyw5ICsyNzIsOSBAQCBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvcl9mdW5jcyB7CiAJCQkgICAgICAgdWludDMyX3QgZHNjX2J5dGVzX3Blcl9waXhlbCwKIAkJCSAgICAgICB1aW50MzJfdCBkc2Nfc2xpY2Vfd2lkdGgpOwogI2VuZGlmCi0Jdm9pZCAoKnNldF9vZG1fYnlwYXNzKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsIGNvbnN0IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqZGNfY3J0Y190aW1pbmcpOwotCXZvaWQgKCpzZXRfb2RtX2NvbWJpbmUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywgaW50IGNvbWJpbmVfb3BwX2lkLAotCQlpbnQgbXBjY19oYWN0aXZlLCBlbnVtIGRjX3BpeGVsX2VuY29kaW5nIHBpeGVsX2VuY29kaW5nKTsKKwl2b2lkICgqc2V0X29kbV9ieXBhc3MpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLCBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmRjX2NydGNfdGltaW5nKTsKKwl2b2lkICgqc2V0X29kbV9jb21iaW5lKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywgaW50ICpvcHBfaWQsIGludCBvcHBfY250LAorCQkJc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcpOwogCXZvaWQgKCpzZXRfZ3NsKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywgY29uc3Qgc3RydWN0IGdzbF9wYXJhbXMgKnBhcmFtcyk7CiAJdm9pZCAoKnNldF9nc2xfc291cmNlX3NlbGVjdCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCiAJCQlpbnQgZ3JvdXBfaWR4LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9od19zZXF1ZW5jZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHdfc2VxdWVuY2VyLmgKaW5kZXggNGQ1NmQ0OC4uM2E5MzhjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9od19zZXF1ZW5jZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3X3NlcXVlbmNlci5oCkBAIC00OCw2ICs0OCw3IEBAIHN0cnVjdCBkY2VfaHdzZXFfd2EgewogCWJvb2wgREVHVklEQ04xMF8yNTM7CiAJYm9vbCBmYWxzZV9vcHRjX3VuZGVyZmxvdzsKIAlib29sIERFR1ZJRENOMTBfMjU0OworCWJvb2wgREVHVklEQ04yMTsKIH07CiAKIHN0cnVjdCBod3NlcV93YV9zdGF0ZSB7CkBAIC03OCw2ICs3OSw4IEBAIHN0cnVjdCBzdHJlYW1fcmVzb3VyY2U7CiBzdHJ1Y3QgZGNfcGh5X2FkZHJfc3BhY2VfY29uZmlnOwogc3RydWN0IGRjX3ZpcnR1YWxfYWRkcl9zcGFjZV9jb25maWc7CiAjZW5kaWYKK3N0cnVjdCBodWJwOworc3RydWN0IGRwcDsKIAogc3RydWN0IGh3X3NlcXVlbmNlcl9mdW5jcyB7CiAKQEAgLTE5NCw4ICsxOTcsNyBAQCBzdHJ1Y3QgaHdfc2VxdWVuY2VyX2Z1bmNzIHsKIAogCXZvaWQgKCplbmFibGVfc3RyZWFtKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIAotCXZvaWQgKCpkaXNhYmxlX3N0cmVhbSkoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKLQkJCWludCBvcHRpb24pOworCXZvaWQgKCpkaXNhYmxlX3N0cmVhbSkoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiAKIAl2b2lkICgqdW5ibGFua19zdHJlYW0pKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJCQlzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5ncyk7CkBAIC0yMDQsNyArMjA2LDcgQEAgc3RydWN0IGh3X3NlcXVlbmNlcl9mdW5jcyB7CiAKIAl2b2lkICgqZW5hYmxlX2F1ZGlvX3N0cmVhbSkoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiAKLQl2b2lkICgqZGlzYWJsZV9hdWRpb19zdHJlYW0pKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGludCBvcHRpb24pOworCXZvaWQgKCpkaXNhYmxlX2F1ZGlvX3N0cmVhbSkoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiAKIAl2b2lkICgqcGlwZV9jb250cm9sX2xvY2spKAogCQkJCXN0cnVjdCBkYyAqZGMsCkBAIC0yMzEsMTEgKzIzMywxMyBAQCBzdHJ1Y3QgaHdfc2VxdWVuY2VyX2Z1bmNzIHsKIAlib29sICgqdXBkYXRlX2JhbmR3aWR0aCkoCiAJCQlzdHJ1Y3QgZGMgKmRjLAogCQkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKKwl2b2lkICgqcHJvZ3JhbV9kbWRhdGFfZW5naW5lKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIAlib29sICgqZG1kYXRhX3N0YXR1c19kb25lKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKICNlbmRpZgogCiAJdm9pZCAoKnNldF9kcnIpKHN0cnVjdCBwaXBlX2N0eCAqKnBpcGVfY3R4LCBpbnQgbnVtX3BpcGVzLAotCQkJaW50IHZtaW4sIGludCB2bWF4KTsKKwkJCXVuc2lnbmVkIGludCB2bWluLCB1bnNpZ25lZCBpbnQgdm1heCwKKwkJCXVuc2lnbmVkIGludCB2bWlkLCB1bnNpZ25lZCBpbnQgdm1pZF9mcmFtZV9udW1iZXIpOwogCiAJdm9pZCAoKmdldF9wb3NpdGlvbikoc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsIGludCBudW1fcGlwZXMsCiAJCQlzdHJ1Y3QgY3J0Y19wb3NpdGlvbiAqcG9zaXRpb24pOwpAQCAtMjc5LDYgKzI4MywzNiBAQCBzdHJ1Y3QgaHdfc2VxdWVuY2VyX2Z1bmNzIHsKIAl2b2lkICgqc2V0dXBfdnVwZGF0ZV9pbnRlcnJ1cHQpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogCWJvb2wgKCpkaWRfdW5kZXJmbG93X29jY3VyKShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIAorCXZvaWQgKCppbml0X2JsYW5rKShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOworCXZvaWQgKCpkaXNhYmxlX3ZnYSkoc3RydWN0IGRjZV9od3NlcSAqaHdzKTsKKwl2b2lkICgqYmlvc19nb2xkZW5faW5pdCkoc3RydWN0IGRjICpkYyk7CisJdm9pZCAoKnBsYW5lX2F0b21pY19wb3dlcl9kb3duKShzdHJ1Y3QgZGMgKmRjLAorCQkJc3RydWN0IGRwcCAqZHBwLAorCQkJc3RydWN0IGh1YnAgKmh1YnApOworCisJdm9pZCAoKnBsYW5lX2F0b21pY19kaXNhYmxlKSgKKwkJCXN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOworCisJdm9pZCAoKmVuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUpKAorCQlzdHJ1Y3QgZGNlX2h3c2VxICpod3MsCisJCWJvb2wgZW5hYmxlKTsKKworCXZvaWQgKCpkcHBfcGdfY29udHJvbCkoCisJCQlzdHJ1Y3QgZGNlX2h3c2VxICpod3MsCisJCQl1bnNpZ25lZCBpbnQgZHBwX2luc3QsCisJCQlib29sIHBvd2VyX29uKTsKKworCXZvaWQgKCpodWJwX3BnX2NvbnRyb2wpKAorCQkJc3RydWN0IGRjZV9od3NlcSAqaHdzLAorCQkJdW5zaWduZWQgaW50IGh1YnBfaW5zdCwKKwkJCWJvb2wgcG93ZXJfb24pOworCisJdm9pZCAoKmRzY19wZ19jb250cm9sKSgKKwkJCXN0cnVjdCBkY2VfaHdzZXEgKmh3cywKKwkJCXVuc2lnbmVkIGludCBkc2NfaW5zdCwKKwkJCWJvb2wgcG93ZXJfb24pOworCisKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjJfMCkKIAl2b2lkICgqdXBkYXRlX29kbSkoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIAl2b2lkICgqcHJvZ3JhbV9hbGxfd3JpdGViYWNrX3BpcGVzX2luX3RyZWUpKApAQCAtMjk0LDYgKzMyOCwxNSBAQCBzdHJ1Y3QgaHdfc2VxdWVuY2VyX2Z1bmNzIHsKIAl2b2lkICgqZGlzYWJsZV93cml0ZWJhY2spKHN0cnVjdCBkYyAqZGMsCiAJCQl1bnNpZ25lZCBpbnQgZHdiX3BpcGVfaW5zdCk7CiAjZW5kaWYKKwllbnVtIGRjX3N0YXR1cyAoKnNldF9jbG9jaykoc3RydWN0IGRjICpkYywKKwkJCWVudW0gZGNfY2xvY2tfdHlwZSBjbG9ja190eXBlLAorCQkJdWludDMyX3QgY2xrX2toeiwKKwkJCXVpbnQzMl90IHN0ZXBwaW5nKTsKKworCXZvaWQgKCpnZXRfY2xvY2spKHN0cnVjdCBkYyAqZGMsCisJCQllbnVtIGRjX2Nsb2NrX3R5cGUgY2xvY2tfdHlwZSwKKwkJCXN0cnVjdCBkY19jbG9ja19jb25maWcgKmNsb2NrX2NmZyk7CisKIH07CiAKIHZvaWQgY29sb3Jfc3BhY2VfdG9fYmxhY2tfY29sb3IoCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2xpbmtfaHdzcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9saW5rX2h3c3MuaAppbmRleCAzMGJlN2JiLi40ZWZmNWQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2xpbmtfaHdzcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvbGlua19od3NzLmgKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBkcF9kaXNhYmxlX2xpbmtfcGh5X21zdChzdHJ1Y3QgZGNfbGluayAqbGluaywgZW51bSBzaWduYWxfdHlwZSBzaWduYWwpOwogCiBib29sIGRwX3NldF9od190cmFpbmluZ19wYXR0ZXJuKAogCXN0cnVjdCBkY19saW5rICpsaW5rLAotCWVudW0gaHdfZHBfdHJhaW5pbmdfcGF0dGVybiBwYXR0ZXJuKTsKKwllbnVtIGRjX2RwX3RyYWluaW5nX3BhdHRlcm4gcGF0dGVybik7CiAKIHZvaWQgZHBfc2V0X2h3X2xhbmVfc2V0dGluZ3MoCiAJc3RydWN0IGRjX2xpbmsgKmxpbmssCkBAIC03Miw4ICs3Miw2IEBAIHZvaWQgZHBfc2V0X2h3X3Rlc3RfcGF0dGVybigKIAl1aW50OF90ICpjdXN0b21fcGF0dGVybiwKIAl1aW50MzJfdCBjdXN0b21fcGF0dGVybl9zaXplKTsKIAotZW51bSBkcF9wYW5lbF9tb2RlIGRwX2dldF9wYW5lbF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rKTsKLQogdm9pZCBkcF9yZXRyYWluX2xpbmtfZHBfdGVzdChzdHJ1Y3QgZGNfbGluayAqbGluaywKIAkJc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKIAkJYm9vbCBza2lwX3ZpZGVvX3BhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9yZXNvdXJjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9yZXNvdXJjZS5oCmluZGV4IDQ3ZjgxMDcuLmJlZjIyNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvcmVzb3VyY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL3Jlc291cmNlLmgKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJkbV9wcF9zbXUuaCIKIAogI2RlZmluZSBNRU1PUllfVFlQRV9NVUxUSVBMSUVSX0NaIDQKKyNkZWZpbmUgTUVNT1JZX1RZUEVfSEJNIDIKKwogCiBlbnVtIGRjZV92ZXJzaW9uIHJlc291cmNlX3BhcnNlX2FzaWNfaWQoCiAJCXN0cnVjdCBod19hc2ljX2lkIGFzaWNfaWQpOwpAQCAtMTc5LDcgKzE4MSw0IEBAIHZvaWQgdXBkYXRlX2F1ZGlvX3VzYWdlKAogCiB1bnNpZ25lZCBpbnQgcmVzb3VyY2VfcGl4ZWxfZm9ybWF0X3RvX2JwcChlbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdCk7CiAKLXN0cnVjdCBwaXBlX2N0eCAqZGNfcmVzX2dldF9vZG1fYm90dG9tX3BpcGUoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7Ci1ib29sIGRjX3Jlc19pc19vZG1faGVhZF9waXBlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwotCiAjZW5kaWYgLyogRFJJVkVSU19HUFVfRFJNX0FNRF9EQ19ERVZfRENfSU5DX1JFU09VUkNFX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaXJxL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2lycS9NYWtlZmlsZQppbmRleCBhZDg3YzJmLi5lYTc1NDIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaXJxL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pcnEvTWFrZWZpbGUKQEAgLTc3LDMgKzc3LDEzIEBACiAKIEFNRF9ESVNQTEFZX0ZJTEVTICs9ICQoQU1EX0RBTF9JUlFfRENOMikKIGVuZGlmCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIERDTiAyMQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMl8xCitJUlFfRENOMjEgPSBpcnFfc2VydmljZV9kY24yMS5vCisKK0FNRF9EQUxfSVJRX0RDTjIxPSAkKGFkZHByZWZpeCAkKEFNRERBTFBBVEgpL2RjL2lycS9kY24yMS8sJChJUlFfRENOMjEpKQorCitBTURfRElTUExBWV9GSUxFUyArPSAkKEFNRF9EQUxfSVJRX0RDTjIxKQorZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pcnEvZGNuMjAvaXJxX3NlcnZpY2VfZGNuMjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pcnEvZGNuMjAvaXJxX3NlcnZpY2VfZGNuMjAuYwppbmRleCAzY2MwZjJhLi41ZGIyOWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaXJxL2RjbjIwL2lycV9zZXJ2aWNlX2RjbjIwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2lycS9kY24yMC9pcnFfc2VydmljZV9kY24yMC5jCkBAIC0xNjcsNiArMTY3LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX3NvdXJjZV9pbmZvX2Z1bmNzIHZibGFua19pcnFfaW5mb19mdW5jcyA9IHsKIAkuYWNrID0gTlVMTAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfc291cmNlX2luZm9fZnVuY3MgdnVwZGF0ZV9ub19sb2NrX2lycV9pbmZvX2Z1bmNzID0geworCS5zZXQgPSBOVUxMLAorCS5hY2sgPSBOVUxMCit9OworCiAjdW5kZWYgQkFTRV9JTk5FUgogI2RlZmluZSBCQVNFX0lOTkVSKHNlZykgRENOX0JBU0VfX0lOU1QwX1NFRyAjIyBzZWcKIApAQCAtMjIxLDEyICsyMjYsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfc291cmNlX2luZm9fZnVuY3MgdmJsYW5rX2lycV9pbmZvX2Z1bmNzID0gewogCQkuZnVuY3MgPSAmcGZsaXBfaXJxX2luZm9fZnVuY3NcCiAJfQogCi0jZGVmaW5lIHZ1cGRhdGVfaW50X2VudHJ5KHJlZ19udW0pXAorLyogdnVwZGF0ZV9ub19sb2NrX2ludF9lbnRyeSBtYXBzIHRvIERDX0lSUV9TT1VSQ0VfVlVQREFURXgsIHRvIG1hdGNoIHNlbWFudGljCisgKiBvZiBEQ0UncyBEQ19JUlFfU09VUkNFX1ZVUERBVEV4LgorICovCisjZGVmaW5lIHZ1cGRhdGVfbm9fbG9ja19pbnRfZW50cnkocmVnX251bSlcCiAJW0RDX0lSUV9TT1VSQ0VfVlVQREFURTEgKyByZWdfbnVtXSA9IHtcCiAJCUlSUV9SRUdfRU5UUlkoT1RHLCByZWdfbnVtLFwKLQkJCU9UR19HTE9CQUxfU1lOQ19TVEFUVVMsIFZVUERBVEVfSU5UX0VOLFwKLQkJCU9UR19HTE9CQUxfU1lOQ19TVEFUVVMsIFZVUERBVEVfRVZFTlRfQ0xFQVIpLFwKLQkJLmZ1bmNzID0gJnZibGFua19pcnFfaW5mb19mdW5jc1wKKwkJCU9UR19HTE9CQUxfU1lOQ19TVEFUVVMsIFZVUERBVEVfTk9fTE9DS19JTlRfRU4sXAorCQkJT1RHX0dMT0JBTF9TWU5DX1NUQVRVUywgVlVQREFURV9OT19MT0NLX0VWRU5UX0NMRUFSKSxcCisJCS5mdW5jcyA9ICZ2dXBkYXRlX25vX2xvY2tfaXJxX2luZm9fZnVuY3NcCiAJfQogCiAjZGVmaW5lIHZibGFua19pbnRfZW50cnkocmVnX251bSlcCkBAIC0zMzMsMTIgKzM0MSwxMiBAQCBpcnFfc291cmNlX2luZm9fZGNuMjBbREFMX0lSUV9TT1VSQ0VTX05VTUJFUl0gPSB7CiAJZGNfdW5kZXJmbG93X2ludF9lbnRyeSg2KSwKIAlbRENfSVJRX1NPVVJDRV9ETUNVX1NDUF0gPSBkdW1teV9pcnFfZW50cnkoKSwKIAlbRENfSVJRX1NPVVJDRV9WQklPU19TV10gPSBkdW1teV9pcnFfZW50cnkoKSwKLQl2dXBkYXRlX2ludF9lbnRyeSgwKSwKLQl2dXBkYXRlX2ludF9lbnRyeSgxKSwKLQl2dXBkYXRlX2ludF9lbnRyeSgyKSwKLQl2dXBkYXRlX2ludF9lbnRyeSgzKSwKLQl2dXBkYXRlX2ludF9lbnRyeSg0KSwKLQl2dXBkYXRlX2ludF9lbnRyeSg1KSwKKwl2dXBkYXRlX25vX2xvY2tfaW50X2VudHJ5KDApLAorCXZ1cGRhdGVfbm9fbG9ja19pbnRfZW50cnkoMSksCisJdnVwZGF0ZV9ub19sb2NrX2ludF9lbnRyeSgyKSwKKwl2dXBkYXRlX25vX2xvY2tfaW50X2VudHJ5KDMpLAorCXZ1cGRhdGVfbm9fbG9ja19pbnRfZW50cnkoNCksCisJdnVwZGF0ZV9ub19sb2NrX2ludF9lbnRyeSg1KSwKIAl2YmxhbmtfaW50X2VudHJ5KDApLAogCXZibGFua19pbnRfZW50cnkoMSksCiAJdmJsYW5rX2ludF9lbnRyeSgyKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pcnEvZGNuMjEvaXJxX3NlcnZpY2VfZGNuMjEuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pcnEvZGNuMjEvaXJxX3NlcnZpY2VfZGNuMjEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmU3ODE4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2lycS9kY24yMS9pcnFfc2VydmljZV9kY24yMS5jCkBAIC0wLDAgKzEsMzc0IEBACisvKgorICogQ29weXJpZ2h0IDIwMTggQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6IEFNRAorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorCisjaW5jbHVkZSAiZG1fc2VydmljZXMuaCIKKworI2luY2x1ZGUgImluY2x1ZGUvbG9nZ2VyX2ludGVyZmFjZS5oIgorCisjaW5jbHVkZSAiLi4vZGNlMTEwL2lycV9zZXJ2aWNlX2RjZTExMC5oIgorCisjaW5jbHVkZSAiZGNuL2Rjbl8yXzFfMF9vZmZzZXQuaCIKKyNpbmNsdWRlICJkY24vZGNuXzJfMV8wX3NoX21hc2suaCIKKyNpbmNsdWRlICJyZW5vaXJfaXBfb2Zmc2V0LmgiCisKKworI2luY2x1ZGUgImlycV9zZXJ2aWNlX2RjbjIxLmgiCisKKyNpbmNsdWRlICJpdnNyY2lkL2Rjbi9pcnFzcmNzX2Rjbl8xXzAuaCIKKworZW51bSBkY19pcnFfc291cmNlIHRvX2RhbF9pcnFfc291cmNlX2RjbjIxKAorCQlzdHJ1Y3QgaXJxX3NlcnZpY2UgKmlycV9zZXJ2aWNlLAorCQl1aW50MzJfdCBzcmNfaWQsCisJCXVpbnQzMl90IGV4dF9pZCkKK3sKKwlzd2l0Y2ggKHNyY19pZCkgeworCWNhc2UgRENOXzFfMF9fU1JDSURfX0RDX0QxX09UR19WU1RBUlRVUDoKKwkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfVkJMQU5LMTsKKwljYXNlIERDTl8xXzBfX1NSQ0lEX19EQ19EMl9PVEdfVlNUQVJUVVA6CisJCXJldHVybiBEQ19JUlFfU09VUkNFX1ZCTEFOSzI7CisJY2FzZSBEQ05fMV8wX19TUkNJRF9fRENfRDNfT1RHX1ZTVEFSVFVQOgorCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9WQkxBTkszOworCWNhc2UgRENOXzFfMF9fU1JDSURfX0RDX0Q0X09UR19WU1RBUlRVUDoKKwkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfVkJMQU5LNDsKKwljYXNlIERDTl8xXzBfX1NSQ0lEX19EQ19ENV9PVEdfVlNUQVJUVVA6CisJCXJldHVybiBEQ19JUlFfU09VUkNFX1ZCTEFOSzU7CisJY2FzZSBEQ05fMV8wX19TUkNJRF9fRENfRDZfT1RHX1ZTVEFSVFVQOgorCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9WQkxBTks2OworCWNhc2UgRENOXzFfMF9fU1JDSURfX0hVQlAwX0ZMSVBfSU5URVJSVVBUOgorCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9QRkxJUDE7CisJY2FzZSBEQ05fMV8wX19TUkNJRF9fSFVCUDFfRkxJUF9JTlRFUlJVUFQ6CisJCXJldHVybiBEQ19JUlFfU09VUkNFX1BGTElQMjsKKwljYXNlIERDTl8xXzBfX1NSQ0lEX19IVUJQMl9GTElQX0lOVEVSUlVQVDoKKwkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfUEZMSVAzOworCWNhc2UgRENOXzFfMF9fU1JDSURfX0hVQlAzX0ZMSVBfSU5URVJSVVBUOgorCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9QRkxJUDQ7CisJY2FzZSBEQ05fMV8wX19TUkNJRF9fSFVCUDRfRkxJUF9JTlRFUlJVUFQ6CisJCXJldHVybiBEQ19JUlFfU09VUkNFX1BGTElQNTsKKwljYXNlIERDTl8xXzBfX1NSQ0lEX19IVUJQNV9GTElQX0lOVEVSUlVQVDoKKwkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfUEZMSVA2OworCWNhc2UgRENOXzFfMF9fU1JDSURfX09URzBfSUhDX1ZfVVBEQVRFX05PX0xPQ0tfSU5URVJSVVBUOgorCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9WVVBEQVRFMTsKKwljYXNlIERDTl8xXzBfX1NSQ0lEX19PVEcxX0lIQ19WX1VQREFURV9OT19MT0NLX0lOVEVSUlVQVDoKKwkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfVlVQREFURTI7CisJY2FzZSBEQ05fMV8wX19TUkNJRF9fT1RHMl9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFQ6CisJCXJldHVybiBEQ19JUlFfU09VUkNFX1ZVUERBVEUzOworCWNhc2UgRENOXzFfMF9fU1JDSURfX09URzNfSUhDX1ZfVVBEQVRFX05PX0xPQ0tfSU5URVJSVVBUOgorCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9WVVBEQVRFNDsKKwljYXNlIERDTl8xXzBfX1NSQ0lEX19PVEc0X0lIQ19WX1VQREFURV9OT19MT0NLX0lOVEVSUlVQVDoKKwkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfVlVQREFURTU7CisJY2FzZSBEQ05fMV8wX19TUkNJRF9fT1RHNV9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFQ6CisJCXJldHVybiBEQ19JUlFfU09VUkNFX1ZVUERBVEU2OworCisJY2FzZSBEQ05fMV8wX19TUkNJRF9fRENfSFBEMV9JTlQ6CisJCS8qIGdlbmVyaWMgc3JjX2lkIGZvciBhbGwgSFBEIGFuZCBIUERSWCBpbnRlcnJ1cHRzICovCisJCXN3aXRjaCAoZXh0X2lkKSB7CisJCWNhc2UgRENOXzFfMF9fQ1RYSURfX0RDX0hQRDFfSU5UOgorCQkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfSFBEMTsKKwkJY2FzZSBEQ05fMV8wX19DVFhJRF9fRENfSFBEMl9JTlQ6CisJCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9IUEQyOworCQljYXNlIERDTl8xXzBfX0NUWElEX19EQ19IUEQzX0lOVDoKKwkJCXJldHVybiBEQ19JUlFfU09VUkNFX0hQRDM7CisJCWNhc2UgRENOXzFfMF9fQ1RYSURfX0RDX0hQRDRfSU5UOgorCQkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfSFBENDsKKwkJY2FzZSBEQ05fMV8wX19DVFhJRF9fRENfSFBENV9JTlQ6CisJCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9IUEQ1OworCQljYXNlIERDTl8xXzBfX0NUWElEX19EQ19IUEQ2X0lOVDoKKwkJCXJldHVybiBEQ19JUlFfU09VUkNFX0hQRDY7CisJCWNhc2UgRENOXzFfMF9fQ1RYSURfX0RDX0hQRDFfUlhfSU5UOgorCQkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfSFBEMVJYOworCQljYXNlIERDTl8xXzBfX0NUWElEX19EQ19IUEQyX1JYX0lOVDoKKwkJCXJldHVybiBEQ19JUlFfU09VUkNFX0hQRDJSWDsKKwkJY2FzZSBEQ05fMV8wX19DVFhJRF9fRENfSFBEM19SWF9JTlQ6CisJCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9IUEQzUlg7CisJCWNhc2UgRENOXzFfMF9fQ1RYSURfX0RDX0hQRDRfUlhfSU5UOgorCQkJcmV0dXJuIERDX0lSUV9TT1VSQ0VfSFBENFJYOworCQljYXNlIERDTl8xXzBfX0NUWElEX19EQ19IUEQ1X1JYX0lOVDoKKwkJCXJldHVybiBEQ19JUlFfU09VUkNFX0hQRDVSWDsKKwkJY2FzZSBEQ05fMV8wX19DVFhJRF9fRENfSFBENl9SWF9JTlQ6CisJCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9IUEQ2Ulg7CisJCWRlZmF1bHQ6CisJCQlyZXR1cm4gRENfSVJRX1NPVVJDRV9JTlZBTElEOworCQl9CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCXJldHVybiBEQ19JUlFfU09VUkNFX0lOVkFMSUQ7Cit9CisKK3N0YXRpYyBib29sIGhwZF9hY2soCisJc3RydWN0IGlycV9zZXJ2aWNlICppcnFfc2VydmljZSwKKwljb25zdCBzdHJ1Y3QgaXJxX3NvdXJjZV9pbmZvICppbmZvKQoreworCXVpbnQzMl90IGFkZHIgPSBpbmZvLT5zdGF0dXNfcmVnOworCXVpbnQzMl90IHZhbHVlID0gZG1fcmVhZF9yZWcoaXJxX3NlcnZpY2UtPmN0eCwgYWRkcik7CisJdWludDMyX3QgY3VycmVudF9zdGF0dXMgPQorCQlnZXRfcmVnX2ZpZWxkX3ZhbHVlKAorCQkJdmFsdWUsCisJCQlIUEQwX0RDX0hQRF9JTlRfU1RBVFVTLAorCQkJRENfSFBEX1NFTlNFX0RFTEFZRUQpOworCisJZGFsX2lycV9zZXJ2aWNlX2Fja19nZW5lcmljKGlycV9zZXJ2aWNlLCBpbmZvKTsKKworCXZhbHVlID0gZG1fcmVhZF9yZWcoaXJxX3NlcnZpY2UtPmN0eCwgaW5mby0+ZW5hYmxlX3JlZyk7CisKKwlzZXRfcmVnX2ZpZWxkX3ZhbHVlKAorCQl2YWx1ZSwKKwkJY3VycmVudF9zdGF0dXMgPyAwIDogMSwKKwkJSFBEMF9EQ19IUERfSU5UX0NPTlRST0wsCisJCURDX0hQRF9JTlRfUE9MQVJJVFkpOworCisJZG1fd3JpdGVfcmVnKGlycV9zZXJ2aWNlLT5jdHgsIGluZm8tPmVuYWJsZV9yZWcsIHZhbHVlKTsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9zb3VyY2VfaW5mb19mdW5jcyBocGRfaXJxX2luZm9fZnVuY3MgPSB7CisJLnNldCA9IE5VTEwsCisJLmFjayA9IGhwZF9hY2sKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX3NvdXJjZV9pbmZvX2Z1bmNzIGhwZF9yeF9pcnFfaW5mb19mdW5jcyA9IHsKKwkuc2V0ID0gTlVMTCwKKwkuYWNrID0gTlVMTAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfc291cmNlX2luZm9fZnVuY3MgcGZsaXBfaXJxX2luZm9fZnVuY3MgPSB7CisJLnNldCA9IE5VTEwsCisJLmFjayA9IE5VTEwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX3NvdXJjZV9pbmZvX2Z1bmNzIHZibGFua19pcnFfaW5mb19mdW5jcyA9IHsKKwkuc2V0ID0gTlVMTCwKKwkuYWNrID0gTlVMTAorfTsKKworI3VuZGVmIEJBU0VfSU5ORVIKKyNkZWZpbmUgQkFTRV9JTk5FUihzZWcpIERNVV9CQVNFX19JTlNUMF9TRUcgIyMgc2VnCisKKy8qIGNvbXBpbGUgdGltZSBleHBhbmQgYmFzZSBhZGRyZXNzLiAqLworI2RlZmluZSBCQVNFKHNlZykgXAorCUJBU0VfSU5ORVIoc2VnKQorCisKKyNkZWZpbmUgU1JJKHJlZ19uYW1lLCBibG9jaywgaWQpXAorCUJBU0UobW0gIyMgYmxvY2sgIyMgaWQgIyMgXyAjIyByZWdfbmFtZSAjIyBfQkFTRV9JRFgpICsgXAorCQkJbW0gIyMgYmxvY2sgIyMgaWQgIyMgXyAjIyByZWdfbmFtZQorCisKKyNkZWZpbmUgSVJRX1JFR19FTlRSWShibG9jaywgcmVnX251bSwgcmVnMSwgbWFzazEsIHJlZzIsIG1hc2syKVwKKwkuZW5hYmxlX3JlZyA9IFNSSShyZWcxLCBibG9jaywgcmVnX251bSksXAorCS5lbmFibGVfbWFzayA9IFwKKwkJYmxvY2sgIyMgcmVnX251bSAjIyBfICMjIHJlZzEgIyMgX18gIyMgbWFzazEgIyMgX01BU0ssXAorCS5lbmFibGVfdmFsdWUgPSB7XAorCQlibG9jayAjIyByZWdfbnVtICMjIF8gIyMgcmVnMSAjIyBfXyAjIyBtYXNrMSAjIyBfTUFTSyxcCisJCX5ibG9jayAjIyByZWdfbnVtICMjIF8gIyMgcmVnMSAjIyBfXyAjIyBtYXNrMSAjIyBfTUFTSyBcCisJfSxcCisJLmFja19yZWcgPSBTUkkocmVnMiwgYmxvY2ssIHJlZ19udW0pLFwKKwkuYWNrX21hc2sgPSBcCisJCWJsb2NrICMjIHJlZ19udW0gIyMgXyAjIyByZWcyICMjIF9fICMjIG1hc2syICMjIF9NQVNLLFwKKwkuYWNrX3ZhbHVlID0gXAorCQlibG9jayAjIyByZWdfbnVtICMjIF8gIyMgcmVnMiAjIyBfXyAjIyBtYXNrMiAjIyBfTUFTSyBcCisKKworCisjZGVmaW5lIGhwZF9pbnRfZW50cnkocmVnX251bSlcCisJW0RDX0lSUV9TT1VSQ0VfSFBEMSArIHJlZ19udW1dID0ge1wKKwkJSVJRX1JFR19FTlRSWShIUEQsIHJlZ19udW0sXAorCQkJRENfSFBEX0lOVF9DT05UUk9MLCBEQ19IUERfSU5UX0VOLFwKKwkJCURDX0hQRF9JTlRfQ09OVFJPTCwgRENfSFBEX0lOVF9BQ0spLFwKKwkJLnN0YXR1c19yZWcgPSBTUkkoRENfSFBEX0lOVF9TVEFUVVMsIEhQRCwgcmVnX251bSksXAorCQkuZnVuY3MgPSAmaHBkX2lycV9pbmZvX2Z1bmNzXAorCX0KKworI2RlZmluZSBocGRfcnhfaW50X2VudHJ5KHJlZ19udW0pXAorCVtEQ19JUlFfU09VUkNFX0hQRDFSWCArIHJlZ19udW1dID0ge1wKKwkJSVJRX1JFR19FTlRSWShIUEQsIHJlZ19udW0sXAorCQkJRENfSFBEX0lOVF9DT05UUk9MLCBEQ19IUERfUlhfSU5UX0VOLFwKKwkJCURDX0hQRF9JTlRfQ09OVFJPTCwgRENfSFBEX1JYX0lOVF9BQ0spLFwKKwkJLnN0YXR1c19yZWcgPSBTUkkoRENfSFBEX0lOVF9TVEFUVVMsIEhQRCwgcmVnX251bSksXAorCQkuZnVuY3MgPSAmaHBkX3J4X2lycV9pbmZvX2Z1bmNzXAorCX0KKyNkZWZpbmUgcGZsaXBfaW50X2VudHJ5KHJlZ19udW0pXAorCVtEQ19JUlFfU09VUkNFX1BGTElQMSArIHJlZ19udW1dID0ge1wKKwkJSVJRX1JFR19FTlRSWShIVUJQUkVRLCByZWdfbnVtLFwKKwkJCURDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBULCBTVVJGQUNFX0ZMSVBfSU5UX01BU0ssXAorCQkJRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFQsIFNVUkZBQ0VfRkxJUF9DTEVBUiksXAorCQkuZnVuY3MgPSAmcGZsaXBfaXJxX2luZm9fZnVuY3NcCisJfQorCisjZGVmaW5lIHZ1cGRhdGVfaW50X2VudHJ5KHJlZ19udW0pXAorCVtEQ19JUlFfU09VUkNFX1ZVUERBVEUxICsgcmVnX251bV0gPSB7XAorCQlJUlFfUkVHX0VOVFJZKE9URywgcmVnX251bSxcCisJCQlPVEdfR0xPQkFMX1NZTkNfU1RBVFVTLCBWVVBEQVRFX0lOVF9FTixcCisJCQlPVEdfR0xPQkFMX1NZTkNfU1RBVFVTLCBWVVBEQVRFX0VWRU5UX0NMRUFSKSxcCisJCS5mdW5jcyA9ICZ2YmxhbmtfaXJxX2luZm9fZnVuY3NcCisJfQorCisjZGVmaW5lIHZibGFua19pbnRfZW50cnkocmVnX251bSlcCisJW0RDX0lSUV9TT1VSQ0VfVkJMQU5LMSArIHJlZ19udW1dID0ge1wKKwkJSVJRX1JFR19FTlRSWShPVEcsIHJlZ19udW0sXAorCQkJT1RHX0dMT0JBTF9TWU5DX1NUQVRVUywgVlNUQVJUVVBfSU5UX0VOLFwKKwkJCU9UR19HTE9CQUxfU1lOQ19TVEFUVVMsIFZTVEFSVFVQX0VWRU5UX0NMRUFSKSxcCisJCS5mdW5jcyA9ICZ2YmxhbmtfaXJxX2luZm9fZnVuY3NcCisJfQorCisjZGVmaW5lIGR1bW15X2lycV9lbnRyeSgpIFwKKwl7XAorCQkuZnVuY3MgPSAmZHVtbXlfaXJxX2luZm9fZnVuY3NcCisJfQorCisjZGVmaW5lIGkyY19pbnRfZW50cnkocmVnX251bSkgXAorCVtEQ19JUlFfU09VUkNFX0kyQ19EREMgIyMgcmVnX251bV0gPSBkdW1teV9pcnFfZW50cnkoKQorCisjZGVmaW5lIGRwX3NpbmtfaW50X2VudHJ5KHJlZ19udW0pIFwKKwlbRENfSVJRX1NPVVJDRV9EUFNJTksgIyMgcmVnX251bV0gPSBkdW1teV9pcnFfZW50cnkoKQorCisjZGVmaW5lIGdwaW9fcGFkX2ludF9lbnRyeShyZWdfbnVtKSBcCisJW0RDX0lSUV9TT1VSQ0VfR1BJT1BBRCAjIyByZWdfbnVtXSA9IGR1bW15X2lycV9lbnRyeSgpCisKKyNkZWZpbmUgZGNfdW5kZXJmbG93X2ludF9lbnRyeShyZWdfbnVtKSBcCisJW0RDX0lSUV9TT1VSQ0VfREMgIyMgcmVnX251bSAjIyBVTkRFUkZMT1ddID0gZHVtbXlfaXJxX2VudHJ5KCkKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfc291cmNlX2luZm9fZnVuY3MgZHVtbXlfaXJxX2luZm9fZnVuY3MgPSB7CisJLnNldCA9IGRhbF9pcnFfc2VydmljZV9kdW1teV9zZXQsCisJLmFjayA9IGRhbF9pcnFfc2VydmljZV9kdW1teV9hY2sKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX3NvdXJjZV9pbmZvCitpcnFfc291cmNlX2luZm9fZGNuMjFbREFMX0lSUV9TT1VSQ0VTX05VTUJFUl0gPSB7CisJW0RDX0lSUV9TT1VSQ0VfSU5WQUxJRF0gPSBkdW1teV9pcnFfZW50cnkoKSwKKwlocGRfaW50X2VudHJ5KDApLAorCWhwZF9pbnRfZW50cnkoMSksCisJaHBkX2ludF9lbnRyeSgyKSwKKwlocGRfaW50X2VudHJ5KDMpLAorCWhwZF9pbnRfZW50cnkoNCksCisJaHBkX3J4X2ludF9lbnRyeSgwKSwKKwlocGRfcnhfaW50X2VudHJ5KDEpLAorCWhwZF9yeF9pbnRfZW50cnkoMiksCisJaHBkX3J4X2ludF9lbnRyeSgzKSwKKwlocGRfcnhfaW50X2VudHJ5KDQpLAorCWkyY19pbnRfZW50cnkoMSksCisJaTJjX2ludF9lbnRyeSgyKSwKKwlpMmNfaW50X2VudHJ5KDMpLAorCWkyY19pbnRfZW50cnkoNCksCisJaTJjX2ludF9lbnRyeSg1KSwKKwlpMmNfaW50X2VudHJ5KDYpLAorCWRwX3NpbmtfaW50X2VudHJ5KDEpLAorCWRwX3NpbmtfaW50X2VudHJ5KDIpLAorCWRwX3NpbmtfaW50X2VudHJ5KDMpLAorCWRwX3NpbmtfaW50X2VudHJ5KDQpLAorCWRwX3NpbmtfaW50X2VudHJ5KDUpLAorCWRwX3NpbmtfaW50X2VudHJ5KDYpLAorCVtEQ19JUlFfU09VUkNFX1RJTUVSXSA9IGR1bW15X2lycV9lbnRyeSgpLAorCXBmbGlwX2ludF9lbnRyeSgwKSwKKwlwZmxpcF9pbnRfZW50cnkoMSksCisJcGZsaXBfaW50X2VudHJ5KDIpLAorCXBmbGlwX2ludF9lbnRyeSgzKSwKKwlbRENfSVJRX1NPVVJDRV9QRkxJUDVdID0gZHVtbXlfaXJxX2VudHJ5KCksCisJW0RDX0lSUV9TT1VSQ0VfUEZMSVA2XSA9IGR1bW15X2lycV9lbnRyeSgpLAorCVtEQ19JUlFfU09VUkNFX1BGTElQX1VOREVSTEFZMF0gPSBkdW1teV9pcnFfZW50cnkoKSwKKwlncGlvX3BhZF9pbnRfZW50cnkoMCksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDEpLAorCWdwaW9fcGFkX2ludF9lbnRyeSgyKSwKKwlncGlvX3BhZF9pbnRfZW50cnkoMyksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDQpLAorCWdwaW9fcGFkX2ludF9lbnRyeSg1KSwKKwlncGlvX3BhZF9pbnRfZW50cnkoNiksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDcpLAorCWdwaW9fcGFkX2ludF9lbnRyeSg4KSwKKwlncGlvX3BhZF9pbnRfZW50cnkoOSksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDEwKSwKKwlncGlvX3BhZF9pbnRfZW50cnkoMTEpLAorCWdwaW9fcGFkX2ludF9lbnRyeSgxMiksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDEzKSwKKwlncGlvX3BhZF9pbnRfZW50cnkoMTQpLAorCWdwaW9fcGFkX2ludF9lbnRyeSgxNSksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDE2KSwKKwlncGlvX3BhZF9pbnRfZW50cnkoMTcpLAorCWdwaW9fcGFkX2ludF9lbnRyeSgxOCksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDE5KSwKKwlncGlvX3BhZF9pbnRfZW50cnkoMjApLAorCWdwaW9fcGFkX2ludF9lbnRyeSgyMSksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDIyKSwKKwlncGlvX3BhZF9pbnRfZW50cnkoMjMpLAorCWdwaW9fcGFkX2ludF9lbnRyeSgyNCksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDI1KSwKKwlncGlvX3BhZF9pbnRfZW50cnkoMjYpLAorCWdwaW9fcGFkX2ludF9lbnRyeSgyNyksCisJZ3Bpb19wYWRfaW50X2VudHJ5KDI4KSwKKwlncGlvX3BhZF9pbnRfZW50cnkoMjkpLAorCWdwaW9fcGFkX2ludF9lbnRyeSgzMCksCisJZGNfdW5kZXJmbG93X2ludF9lbnRyeSgxKSwKKwlkY191bmRlcmZsb3dfaW50X2VudHJ5KDIpLAorCWRjX3VuZGVyZmxvd19pbnRfZW50cnkoMyksCisJZGNfdW5kZXJmbG93X2ludF9lbnRyeSg0KSwKKwlkY191bmRlcmZsb3dfaW50X2VudHJ5KDUpLAorCWRjX3VuZGVyZmxvd19pbnRfZW50cnkoNiksCisJW0RDX0lSUV9TT1VSQ0VfRE1DVV9TQ1BdID0gZHVtbXlfaXJxX2VudHJ5KCksCisJW0RDX0lSUV9TT1VSQ0VfVkJJT1NfU1ddID0gZHVtbXlfaXJxX2VudHJ5KCksCisJdnVwZGF0ZV9pbnRfZW50cnkoMCksCisJdnVwZGF0ZV9pbnRfZW50cnkoMSksCisJdnVwZGF0ZV9pbnRfZW50cnkoMiksCisJdnVwZGF0ZV9pbnRfZW50cnkoMyksCisJdnVwZGF0ZV9pbnRfZW50cnkoNCksCisJdnVwZGF0ZV9pbnRfZW50cnkoNSksCisJdmJsYW5rX2ludF9lbnRyeSgwKSwKKwl2YmxhbmtfaW50X2VudHJ5KDEpLAorCXZibGFua19pbnRfZW50cnkoMiksCisJdmJsYW5rX2ludF9lbnRyeSgzKSwKKwl2YmxhbmtfaW50X2VudHJ5KDQpLAorCXZibGFua19pbnRfZW50cnkoNSksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9zZXJ2aWNlX2Z1bmNzIGlycV9zZXJ2aWNlX2Z1bmNzX2RjbjIxID0geworCQkudG9fZGFsX2lycV9zb3VyY2UgPSB0b19kYWxfaXJxX3NvdXJjZV9kY24yMQorfTsKKworc3RhdGljIHZvaWQgY29uc3RydWN0KAorCXN0cnVjdCBpcnFfc2VydmljZSAqaXJxX3NlcnZpY2UsCisJc3RydWN0IGlycV9zZXJ2aWNlX2luaXRfZGF0YSAqaW5pdF9kYXRhKQoreworCWRhbF9pcnFfc2VydmljZV9jb25zdHJ1Y3QoaXJxX3NlcnZpY2UsIGluaXRfZGF0YSk7CisKKwlpcnFfc2VydmljZS0+aW5mbyA9IGlycV9zb3VyY2VfaW5mb19kY24yMTsKKwlpcnFfc2VydmljZS0+ZnVuY3MgPSAmaXJxX3NlcnZpY2VfZnVuY3NfZGNuMjE7Cit9CisKK3N0cnVjdCBpcnFfc2VydmljZSAqZGFsX2lycV9zZXJ2aWNlX2RjbjIxX2NyZWF0ZSgKKwlzdHJ1Y3QgaXJxX3NlcnZpY2VfaW5pdF9kYXRhICppbml0X2RhdGEpCit7CisJc3RydWN0IGlycV9zZXJ2aWNlICppcnFfc2VydmljZSA9IGt6YWxsb2Moc2l6ZW9mKCppcnFfc2VydmljZSksCisJCQkJCQkgIEdGUF9LRVJORUwpOworCisJaWYgKCFpcnFfc2VydmljZSkKKwkJcmV0dXJuIE5VTEw7CisKKwljb25zdHJ1Y3QoaXJxX3NlcnZpY2UsIGluaXRfZGF0YSk7CisJcmV0dXJuIGlycV9zZXJ2aWNlOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2lycS9kY24yMS9pcnFfc2VydmljZV9kY24yMS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2lycS9kY24yMS9pcnFfc2VydmljZV9kY24yMS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMmJkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaXJxL2RjbjIxL2lycV9zZXJ2aWNlX2RjbjIxLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2lmbmRlZiBfX0RBTF9JUlFfU0VSVklDRV9EQ04yMV9IX18KKyNkZWZpbmUgX19EQUxfSVJRX1NFUlZJQ0VfRENOMjFfSF9fCisKKyNpbmNsdWRlICIuLi9pcnFfc2VydmljZS5oIgorCitzdHJ1Y3QgaXJxX3NlcnZpY2UgKmRhbF9pcnFfc2VydmljZV9kY24yMV9jcmVhdGUoCisJc3RydWN0IGlycV9zZXJ2aWNlX2luaXRfZGF0YSAqaW5pdF9kYXRhKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvdmlydHVhbC92aXJ0dWFsX3N0cmVhbV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvdmlydHVhbC92aXJ0dWFsX3N0cmVhbV9lbmNvZGVyLmMKaW5kZXggYzlhNmRkOC4uZmY2NjRiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3ZpcnR1YWwvdmlydHVhbF9zdHJlYW1fZW5jb2Rlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy92aXJ0dWFsL3ZpcnR1YWxfc3RyZWFtX2VuY29kZXIuYwpAQCAtNzcsNiArNzcsMTAgQEAgc3RhdGljIHZvaWQgdmlydHVhbF9hdWRpb19tdXRlX2NvbnRyb2woCiAJc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAJYm9vbCBtdXRlKSB7fQogCitzdGF0aWMgdm9pZCB2aXJ0dWFsX3N0cmVhbV9lbmNvZGVyX3Jlc2V0X2hkbWlfc3RyZWFtX2F0dHJpYnV0ZSgKKwkJc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMpCit7fQorCiAjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMl8wCiAjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRFNDX1NVUFBPUlQKIHN0YXRpYyB2b2lkIHZpcnR1YWxfZW5jX2RwX3NldF9vZG1fY29tYmluZSgKQEAgLTExNiw2ICsxMjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN0cmVhbV9lbmNvZGVyX2Z1bmNzIHZpcnR1YWxfc3RyX2VuY19mdW5jcyA9IHsKIAogCS5hdWRpb19tdXRlX2NvbnRyb2wgPSB2aXJ0dWFsX2F1ZGlvX211dGVfY29udHJvbCwKIAkuc2V0X2F2bXV0ZSA9IHZpcnR1YWxfc3RyZWFtX2VuY29kZXJfc2V0X2F2bXV0ZSwKKwkuaGRtaV9yZXNldF9zdHJlYW1fYXR0cmlidXRlID0gdmlydHVhbF9zdHJlYW1fZW5jb2Rlcl9yZXNldF9oZG1pX3N0cmVhbV9hdHRyaWJ1dGUsCiB9OwogCiBib29sIHZpcnR1YWxfc3RyZWFtX2VuY29kZXJfY29uc3RydWN0KApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvYXVkaW9fdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2F1ZGlvX3R5cGVzLmgKaW5kZXggNjM2NGZiYy4uNjZhNTRkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvYXVkaW9fdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9hdWRpb190eXBlcy5oCkBAIC0zOCw4ICszOCw4IEBAIHN0cnVjdCBhdWRpb19jcnRjX2luZm8gewogCXVpbnQzMl90IGhfYWN0aXZlOwogCXVpbnQzMl90IHZfYWN0aXZlOwogCXVpbnQzMl90IHBpeGVsX3JlcGV0aXRpb247Ci0JdWludDMyX3QgcmVxdWVzdGVkX3BpeGVsX2Nsb2NrOyAvKiBpbiBLSHogKi8KLQl1aW50MzJfdCBjYWxjdWxhdGVkX3BpeGVsX2Nsb2NrOyAvKiBpbiBLSHogKi8KKwl1aW50MzJfdCByZXF1ZXN0ZWRfcGl4ZWxfY2xvY2tfMTAwSHo7IC8qIGluIDEwMEh6ICovCisJdWludDMyX3QgY2FsY3VsYXRlZF9waXhlbF9jbG9ja18xMDBIejsgLyogaW4gMTAwSHogKi8KIAl1aW50MzJfdCByZWZyZXNoX3JhdGU7CiAJZW51bSBkY19jb2xvcl9kZXB0aCBjb2xvcl9kZXB0aDsKIAlib29sIGludGVybGFjZWQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9kYWxfYXNpY19pZC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZGFsX2FzaWNfaWQuaAppbmRleCA4ODdlNmE4Li4xYmU2YzQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9kYWxfYXNpY19pZC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2RhbF9hc2ljX2lkLmgKQEAgLTEzNywxMCArMTM3LDEzIEBACiAjZGVmaW5lIFJBVkVOMV9GMCAweEYwCiAjZGVmaW5lIFJBVkVOX1VOS05PV04gMHhGRgogCisjZGVmaW5lIFBJQ0FTU09fMTVEOF9SRVZfRTMgMHhFMworI2RlZmluZSBQSUNBU1NPXzE1RDhfUkVWX0U0IDB4RTQKKwogI2RlZmluZSBBU0lDUkVWX0lTX1JBVkVOKGVDaGlwUmV2KSAoKGVDaGlwUmV2ID49IFJBVkVOX0EwKSAmJiBlQ2hpcFJldiA8IFJBVkVOX1VOS05PV04pCiAjZGVmaW5lIEFTSUNSRVZfSVNfUElDQVNTTyhlQ2hpcFJldikgKChlQ2hpcFJldiA+PSBQSUNBU1NPX0EwKSAmJiAoZUNoaXBSZXYgPCBSQVZFTjJfQTApKQotI2RlZmluZSBBU0lDUkVWX0lTX1JBVkVOMihlQ2hpcFJldikgKChlQ2hpcFJldiA+PSBSQVZFTjJfQTApICYmIChlQ2hpcFJldiA8IDB4RjApKQotCisjZGVmaW5lIEFTSUNSRVZfSVNfUkFWRU4yKGVDaGlwUmV2KSAoKGVDaGlwUmV2ID49IFJBVkVOMl9BMCkgJiYgKGVDaGlwUmV2IDwgUElDQVNTT18xNUQ4X1JFVl9FMykpCisjZGVmaW5lIEFTSUNSRVZfSVNfREFMSShlQ2hpcFJldikgKChlQ2hpcFJldiA+PSBQSUNBU1NPXzE1RDhfUkVWX0UzKSAmJiAoZUNoaXBSZXYgPCBSQVZFTjFfRjApKQogCiAjZGVmaW5lIEFTSUNSRVZfSVNfUlYxX0YwKGVDaGlwUmV2KSAoKGVDaGlwUmV2ID49IFJBVkVOMV9GMCkgJiYgKGVDaGlwUmV2IDwgUkFWRU5fVU5LTk9XTikpCiAKQEAgLTE1MSw2ICsxNTQsMjEgQEAKIAogI2RlZmluZSBGQU1JTFlfTlYgMTQzIC8qIERDTiAyKi8KIAorZW51bSB7CisJTlZfTkFWSTEwX1BfQTAgICAgICA9IDEsCisJTlZfTkFWSTEyX1BfQTAgICAgICA9IDEwLAorCU5WX05BVkkxNF9NX0EwICAgICAgPSAyMCwKKwlOVl9VTktOT1dOICAgICAgICAgID0gMHhGRgorfTsKKworI2RlZmluZSBBU0lDUkVWX0lTX05BVkkxMF9QKGVDaGlwUmV2KSAgICAgICAgKGVDaGlwUmV2IDwgTlZfTkFWSTEyX1BfQTApCisjZGVmaW5lIEFTSUNSRVZfSVNfTkFWSTEyX1AoZUNoaXBSZXYpICAgICAgICAoKGVDaGlwUmV2ID49IE5WX05BVkkxMl9QX0EwKSAmJiAoZUNoaXBSZXYgPCBOVl9OQVZJMTRfTV9BMCkpCisjZGVmaW5lIEFTSUNSRVZfSVNfTkFWSTE0X00oZUNoaXBSZXYpICAgICAgICAoKGVDaGlwUmV2ID49IE5WX05BVkkxNF9NX0EwKSAmJiAoZUNoaXBSZXYgPCBOVl9VTktOT1dOKSkKKyNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMl8xKQorI2RlZmluZSBSRU5PSVJfQTAgMHg5MQorI2RlZmluZSBERVZJQ0VfSURfUkVOT0lSXzE2MzYgMHgxNjM2ICAgLy8gUmVub2lyCisjZGVmaW5lIEFTSUNSRVZfSVNfUkVOT0lSKGVDaGlwUmV2KSAoKGVDaGlwUmV2ID49IFJFTk9JUl9BMCkgJiYgKGVDaGlwUmV2IDwgMHhGRikpCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2RhbF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgKaW5kZXggMWUzY2U0ZC4uZmNjNDIzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgZW51bSBkY2VfdmVyc2lvbiB7CiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzApCiAJRENOX1ZFUlNJT05fMl8wLAogI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04yXzEpCisJRENOX1ZFUlNJT05fMl8xLAorI2VuZGlmCiAJRENOX1ZFUlNJT05fTUFYCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9kZGNfc2VydmljZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZGRjX3NlcnZpY2VfdHlwZXMuaAppbmRleCBkOTY4OTU2Li4xODk2MTcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9kZGNfc2VydmljZV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2RkY19zZXJ2aWNlX3R5cGVzLmgKQEAgLTI1LDEwICsyNSwxMiBAQAogI2lmbmRlZiBfX0RBTF9ERENfU0VSVklDRV9UWVBFU19IX18KICNkZWZpbmUgX19EQUxfRERDX1NFUlZJQ0VfVFlQRVNfSF9fCiAKLSNkZWZpbmUgRFBfQlJBTkNIX0RFVklDRV9JRF8xIDB4MDAxMEZBCi0jZGVmaW5lIERQX0JSQU5DSF9ERVZJQ0VfSURfMiAweDAwMjJCOQotI2RlZmluZSBEUF9CUkFOQ0hfREVWSUNFX0lEXzMgMHgwMDAwMUEKLSNkZWZpbmUgRFBfQlJBTkNIX0RFVklDRV9JRF80IDB4MDA4MGUxCisvKiAwMDEwRkEgZG9uZ2xlcyAoU1QgTWljcm8pIGV4dGVybmFsIGNvbnZlcnRlciBjaGlwIGlkICovCisjZGVmaW5lIERQX0JSQU5DSF9ERVZJQ0VfSURfMDAxMEZBIDB4MDAxMEZBCisvKiAwMDIyQjkgZXh0ZXJuYWwgY29udmVydGVyIGNoaXAgaWQgKi8KKyNkZWZpbmUgRFBfQlJBTkNIX0RFVklDRV9JRF8wMDIyQjkgMHgwMDIyQjkKKyNkZWZpbmUgRFBfQlJBTkNIX0RFVklDRV9JRF8wMDAwMUEgMHgwMDAwMUEKKyNkZWZpbmUgRFBfQlJBTkNIX0RFVklDRV9JRF8wMDgwRTEgMHgwMDgwZTEKIAogZW51bSBkZGNfcmVzdWx0IHsKIAlERENfUkVTVUxUX1VOS05PV04gPSAwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZ3Bpb19pbnRlcmZhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2dwaW9faW50ZXJmYWNlLmgKaW5kZXggN2RlNjQxOS4uNWU4ODhhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZ3Bpb19pbnRlcmZhY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX2ludGVyZmFjZS5oCkBAIC05Myw4ICs5MywxNyBAQCBlbnVtIHN5bmNfc291cmNlIGRhbF9ncGlvX2dldF9zeW5jX3NvdXJjZSgKIGVudW0gZ3Bpb19waW5fb3V0cHV0X3N0YXRlIGRhbF9ncGlvX2dldF9vdXRwdXRfc3RhdGUoCiAJY29uc3Qgc3RydWN0IGdwaW8gKmdwaW8pOwogCitzdHJ1Y3QgaHdfZGRjICpkYWxfZ3Bpb19nZXRfZGRjKHN0cnVjdCBncGlvICpncGlvKTsKKworc3RydWN0IGh3X2hwZCAqZGFsX2dwaW9fZ2V0X2hwZChzdHJ1Y3QgZ3BpbyAqZ3Bpbyk7CisKK3N0cnVjdCBod19nZW5lcmljICpkYWxfZ3Bpb19nZXRfZ2VuZXJpYyhzdHJ1Y3QgZ3BpbyAqZ3Bpbyk7CisKIC8qIENsb3NlIHRoZSBoYW5kbGUgKi8KIHZvaWQgZGFsX2dwaW9fY2xvc2UoCiAJc3RydWN0IGdwaW8gKmdwaW8pOwogCisKKworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2dwaW9fc2VydmljZV9pbnRlcmZhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2dwaW9fc2VydmljZV9pbnRlcmZhY2UuaAppbmRleCBmNDAyNTliLi45YzU1ZDI0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZ3Bpb19zZXJ2aWNlX2ludGVyZmFjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2dwaW9fc2VydmljZV9pbnRlcmZhY2UuaApAQCAtNTEsMTMgKzUxLDI5IEBAIHN0cnVjdCBncGlvICpkYWxfZ3Bpb19zZXJ2aWNlX2NyZWF0ZV9pcnEoCiAJdWludDMyX3Qgb2Zmc2V0LAogCXVpbnQzMl90IG1hc2spOwogCitzdHJ1Y3QgZ3BpbyAqZGFsX2dwaW9fc2VydmljZV9jcmVhdGVfZ2VuZXJpY19tdXgoCisJc3RydWN0IGdwaW9fc2VydmljZSAqc2VydmljZSwKKwl1aW50MzJfdCBvZmZzZXQsCisJdWludDMyX3QgbWFzayk7CisKK3ZvaWQgZGFsX2dwaW9fZGVzdHJveV9nZW5lcmljX211eCgKKwlzdHJ1Y3QgZ3BpbyAqKm11eCk7CisKK2VudW0gZ3Bpb19yZXN1bHQgZGFsX211eF9zZXR1cF9jb25maWcoCisJc3RydWN0IGdwaW8gKm11eCwKKwlzdHJ1Y3QgZ3Bpb19nZW5lcmljX211eF9jb25maWcgKmNvbmZpZyk7CisKK3N0cnVjdCBncGlvX3Bpbl9pbmZvIGRhbF9ncGlvX2dldF9nZW5lcmljX3Bpbl9pbmZvKAorCXN0cnVjdCBncGlvX3NlcnZpY2UgKnNlcnZpY2UsCisJZW51bSBncGlvX2lkIGlkLAorCXVpbnQzMl90IGVuKTsKKwogc3RydWN0IGRkYyAqZGFsX2dwaW9fY3JlYXRlX2RkYygKIAlzdHJ1Y3QgZ3Bpb19zZXJ2aWNlICpzZXJ2aWNlLAogCXVpbnQzMl90IG9mZnNldCwKIAl1aW50MzJfdCBtYXNrLAogCXN0cnVjdCBncGlvX2RkY19od19pbmZvICppbmZvKTsKIAotCiB2b2lkIGRhbF9ncGlvX2Rlc3Ryb3lfZGRjKAogCXN0cnVjdCBkZGMgKipkZGMpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9saW5rX3NlcnZpY2VfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2xpbmtfc2VydmljZV90eXBlcy5oCmluZGV4IDgwZjBkOTMuLjg3NmIwYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2xpbmtfc2VydmljZV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2xpbmtfc2VydmljZV90eXBlcy5oCkBAIC03MSwxNCArNzEsMTcgQEAgZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCB7CiBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyB7CiAJc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgbGlua19zZXR0aW5nczsKIAlzdHJ1Y3QgZGNfbGFuZV9zZXR0aW5ncyBsYW5lX3NldHRpbmdzW0xBTkVfQ09VTlRfRFBfTUFYXTsKLQlib29sIGFsbG93X2ludmFsaWRfbXNhX3RpbWluZ19wYXJhbTsKLX07CiAKLWVudW0gaHdfZHBfdHJhaW5pbmdfcGF0dGVybiB7Ci0JSFdfRFBfVFJBSU5JTkdfUEFUVEVSTl8xID0gMCwKLQlIV19EUF9UUkFJTklOR19QQVRURVJOXzIsCi0JSFdfRFBfVFJBSU5JTkdfUEFUVEVSTl8zLAotCUhXX0RQX1RSQUlOSU5HX1BBVFRFUk5fNAorCWVudW0gZGNfdm9sdGFnZV9zd2luZyAqdm9sdGFnZV9zd2luZzsKKwllbnVtIGRjX3ByZV9lbXBoYXNpcyAqcHJlX2VtcGhhc2lzOworCWVudW0gZGNfcG9zdF9jdXJzb3IyICpwb3N0X2N1cnNvcjI7CisKKwl1aW50MTZfdCBjcl9wYXR0ZXJuX3RpbWU7CisJdWludDE2X3QgZXFfcGF0dGVybl90aW1lOworCWVudW0gZGNfZHBfdHJhaW5pbmdfcGF0dGVybiBwYXR0ZXJuX2Zvcl9lcTsKKworCWJvb2wgZW5oYW5jZWRfZnJhbWluZzsKKwlib29sIGFsbG93X2ludmFsaWRfbXNhX3RpbWluZ19wYXJhbTsKIH07CiAKIC8qVE9ETzogTW92ZSB0aGlzIGVudW0gdGVzdCBoYXJuZXNzKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2xvZ2dlcl9pbnRlcmZhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2xvZ2dlcl9pbnRlcmZhY2UuaAppbmRleCBhMGI2OGMyLi42ZTAwOGRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9sb2dnZXJfaW50ZXJmYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvbG9nZ2VyX2ludGVyZmFjZS5oCkBAIC0xNTUsNCArMTU1LDYgQEAgdm9pZCBjb250ZXh0X2Nsb2NrX3RyYWNlKAogCiAjZGVmaW5lIERJU1BMQVlfU1RBVFNfRU5EKGVudHJ5KSAodm9pZCkoZW50cnkpCiAKKyNkZWZpbmUgTE9HX0dBTU1BX1dSSVRFKG1zZywgLi4uKQorCiAjZW5kaWYgLyogX19EQUxfTE9HR0VSX0lOVEVSRkFDRV9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2xvZ2dlcl90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvbG9nZ2VyX3R5cGVzLmgKaW5kZXggZWE4ZDQ0NS4uMmIyMTljZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvbG9nZ2VyX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvbG9nZ2VyX3R5cGVzLmgKQEAgLTYzLDYgKzYzLDkgQEAKICNkZWZpbmUgRENfTE9HX0lGX1RSQUNFKC4uLikgcHJfZGVidWcoIltJRl9UUkFDRV06Il9fVkFfQVJHU19fKQogI2RlZmluZSBEQ19MT0dfUEVSRl9UUkFDRSguLi4pIERSTV9ERUJVR19LTVMoX19WQV9BUkdTX18pCiAjZGVmaW5lIERDX0xPR19SRVRJTUVSX1JFRFJJVkVSKC4uLikgRFJNX0RFQlVHX0tNUyhfX1ZBX0FSR1NfXykKKyNkZWZpbmUgRENfTE9HX0dBTU1BKC4uLikgcHJfZGVidWcoIltHQU1NQV06Il9fVkFfQVJHU19fKQorI2RlZmluZSBEQ19MT0dfQUxMX0dBTU1BKC4uLikgcHJfZGVidWcoIltHQU1NQV06Il9fVkFfQVJHU19fKQorI2RlZmluZSBEQ19MT0dfQUxMX1RGX0NIQU5ORUxTKC4uLikgcHJfZGVidWcoIltHQU1NQV06Il9fVkFfQVJHU19fKQogI2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RTQ19TVVBQT1JUCiAjZGVmaW5lIERDX0xPR19EU0MoLi4uKSBEUk1fREVCVUdfS01TKF9fVkFfQVJHU19fKQogI2VuZGlmCkBAIC0xMTcsNiArMTIwLDEwIEBAIGVudW0gZGNfbG9nX3R5cGUgewogCUxPR19EU0MsCiAjZW5kaWYKIAlMT0dfRFdCLAorCUxPR19HQU1NQV9ERUJVRywKKwlMT0dfTUFYX0hXX1BPSU5UUywKKwlMT0dfQUxMX1RGX0NIQU5ORUxTLAorCUxPR19TQU1QTEVfMURMVVQsCiAJTE9HX1NFQ1RJT05fVE9UQUxfQ09VTlQKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2NvbG9yL2NvbG9yX2dhbW1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9jb2xvci9jb2xvcl9nYW1tYS5jCmluZGV4IDg4ODk4OTMuLjJkOGYxNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2NvbG9yL2NvbG9yX2dhbW1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvY29sb3IvY29sb3JfZ2FtbWEuYwpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIm9wcC5oIgogI2luY2x1ZGUgImNvbG9yX2dhbW1hLmgiCiAKLQogI2RlZmluZSBOVU1fUFRTX0lOX1JFR0lPTiAxNgogI2RlZmluZSBOVU1fUkVHSU9OUyAzMgogI2RlZmluZSBNQVhfSFdfUE9JTlRTIChOVU1fUFRTX0lOX1JFR0lPTipOVU1fUkVHSU9OUykKQEAgLTQwLDYgKzM5LDMzIEBAIHN0YXRpYyBzdHJ1Y3QgaHdfeF9wb2ludCBjb29yZGluYXRlc194W01BWF9IV19QT0lOVFMgKyAyXTsKIHN0YXRpYyBzdHJ1Y3QgZml4ZWQzMV8zMiBwcV90YWJsZVtNQVhfSFdfUE9JTlRTICsgMl07CiBzdGF0aWMgc3RydWN0IGZpeGVkMzFfMzIgZGVfcHFfdGFibGVbTUFYX0hXX1BPSU5UUyArIDJdOwogCisvLyB0aGVzZSBhcmUgaGVscGVycyBmb3IgY2FsY3VsYXRpb25zIHRvIHJlZHVjZSBzdGFjayB1c2FnZQorLy8gZG8gbm90IGRlcGVuZCBvbiB0aGVzZSBiZWluZyBwcmVzZXJ2ZWQgYWNyb3NzIGNhbGxzCitzdGF0aWMgc3RydWN0IGZpeGVkMzFfMzIgc2NyYXRjaF8xOworc3RhdGljIHN0cnVjdCBmaXhlZDMxXzMyIHNjcmF0Y2hfMjsKK3N0YXRpYyBzdHJ1Y3QgdHJhbnNsYXRlX2Zyb21fbGluZWFyX3NwYWNlX2FyZ3Mgc2NyYXRjaF9nYW1tYV9hcmdzOworCisvKiBIZWxwZXIgdG8gb3B0aW1pemUgZ2FtbWEgY2FsY3VsYXRpb24sIG9ubHkgdXNlIGluIHRyYW5zbGF0ZV9mcm9tX2xpbmVhciwgaW4KKyAqIHBhcnRpY3VsYXIgdGhlIGRjX2ZpeHB0X3BvdyBmdW5jdGlvbiB3aGljaCBpcyB2ZXJ5IGV4cGVuc2l2ZQorICogVGhlIGlkZWEgaXMgdGhhdCBvdXIgcmVnaW9ucyBmb3IgWCBwb2ludHMgYXJlIGV4cG9uZW50aWFsIGFuZCBjdXJyZW50bHkgdGhleSBhbGwgdXNlCisgKiB0aGUgc2FtZSBudW1iZXIgb2YgcG9pbnRzIChOVU1fUFRTX0lOX1JFR0lPTikgYW5kIGluIGVhY2ggcmVnaW9uIGV2ZXJ5IHBvaW50CisgKiBpcyBleGFjdGx5IDJ4IHRoZSBvbmUgYXQgdGhlIHNhbWUgaW5kZXggaW4gdGhlIHByZXZpb3VzIHJlZ2lvbi4gSW4gb3RoZXIgd29yZHMKKyAqIFhbaV0gPSAyICogWFtpLU5VTV9QVFNfSU5fUkVHSU9OXSBmb3IgaT49MTYKKyAqIFRoZSBvdGhlciBmYWN0IGlzIHRoYXQgKDJ4KV5nYW1tYSA9IDJeZ2FtbWEgKiB4XmdhbW1hCisgKiBTbyB3ZSBjb21wdXRlIGFuZCBzYXZlIHheZ2FtbWEgZm9yIHRoZSBmaXJzdCAxNiByZWdpb25zLCBhbmQgZm9yIGV2ZXJ5IG5leHQgcmVnaW9uCisgKiBqdXN0IG11bHRpcGx5IHdpdGggMl5nYW1tYSB3aGljaCBjYW4gYmUgY29tcHV0ZWQgb25jZSwgYW5kIHNhdmUgdGhlIHJlc3VsdCBzbyB3ZQorICogcmVjdXJzaXZlbHkgY29tcHV0ZSBhbGwgdGhlIHZhbHVlcy4KKyAqLworc3RhdGljIHN0cnVjdCBmaXhlZDMxXzMyIHBvd19idWZmZXJbTlVNX1BUU19JTl9SRUdJT05dOworc3RhdGljIHN0cnVjdCBmaXhlZDMxXzMyIGdhbW1hX29mXzI7IC8vIDJeZ2FtbWEKK2ludCBwb3dfYnVmZmVyX3B0ciA9IC0xOworCQkJCQkJCQkJCS8qc1JHQgkgNzA5IDIuMiAyLjQgUDMqLworc3RhdGljIGNvbnN0IGludDMyX3QgZ2FtbWFfbnVtZXJhdG9yMDFbXSA9IHsgMzEzMDgsCTE4MDAwMCwJMCwJMCwJMH07CitzdGF0aWMgY29uc3QgaW50MzJfdCBnYW1tYV9udW1lcmF0b3IwMltdID0geyAxMjkyMCwJNDUwMCwJMCwJMCwJMH07CitzdGF0aWMgY29uc3QgaW50MzJfdCBnYW1tYV9udW1lcmF0b3IwM1tdID0geyA1NSwJOTksCQkwLAkwLAkwfTsKK3N0YXRpYyBjb25zdCBpbnQzMl90IGdhbW1hX251bWVyYXRvcjA0W10gPSB7IDU1LAk5OSwJCTAsCTAsCTB9Oworc3RhdGljIGNvbnN0IGludDMyX3QgZ2FtbWFfbnVtZXJhdG9yMDVbXSA9IHsgMjQwMCwJMjIwMCwJMjIwMCwgMjQwMCwgMjYwMH07CisKIHN0YXRpYyBib29sIHBxX2luaXRpYWxpemVkOyAvKiA9IGZhbHNlOyAqLwogc3RhdGljIGJvb2wgZGVfcHFfaW5pdGlhbGl6ZWQ7IC8qID0gZmFsc2U7ICovCiAKQEAgLTcxLDYgKzk3LDE4IEBAIHZvaWQgc2V0dXBfeF9wb2ludHNfZGlzdHJpYnV0aW9uKHZvaWQpCiAJfQogfQogCit2b2lkIGxvZ194X3BvaW50c19kaXN0cmlidXRpb24oc3RydWN0IGRhbF9sb2dnZXIgKmxvZ2dlcikKK3sKKwlpbnQgaSA9IDA7CisKKwlpZiAobG9nZ2VyICE9IE5VTEwpIHsKKwkJTE9HX0dBTU1BX1dSSVRFKCJMb2cgWCBEaXN0cmlidXRpb25cbiIpOworCisJCWZvciAoaSA9IDA7IGkgPCBNQVhfSFdfUE9JTlRTOyBpKyspCisJCQlMT0dfR0FNTUFfV1JJVEUoIiVsbHVcbiIsIGNvb3JkaW5hdGVzX3hbaV0ueC52YWx1ZSk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBjb21wdXRlX3BxKHN0cnVjdCBmaXhlZDMxXzMyIGluX3gsIHN0cnVjdCBmaXhlZDMxXzMyICpvdXRfeSkKIHsKIAkvKiBjb25zdHMgZm9yIFBRIGdhbW1hIGZvcm11bGEuICovCkBAIC0xMzUsNTkgKzE3Myw2OCBAQCBzdGF0aWMgdm9pZCBjb21wdXRlX2RlX3BxKHN0cnVjdCBmaXhlZDMxXzMyIGluX3gsIHN0cnVjdCBmaXhlZDMxXzMyICpvdXRfeSkKIAogfQogCisKIC8qZGUgZ2FtbWEsIG5vbmUgbGluZWFyIHRvIGxpbmVhciovCi1zdGF0aWMgdm9pZCBjb21wdXRlX2hsZ19vZXRmKHN0cnVjdCBmaXhlZDMxXzMyIGluX3gsIGJvb2wgaXNfbGlnaHQwXzEyLCBzdHJ1Y3QgZml4ZWQzMV8zMiAqb3V0X3kpCitzdGF0aWMgdm9pZCBjb21wdXRlX2hsZ19lb3RmKHN0cnVjdCBmaXhlZDMxXzMyIGluX3gsCisJCXN0cnVjdCBmaXhlZDMxXzMyICpvdXRfeSwKKwkJdWludDMyX3Qgc2RyX3doaXRlX2xldmVsLCB1aW50MzJfdCBtYXhfbHVtaW5hbmNlX25pdHMpCiB7CiAJc3RydWN0IGZpeGVkMzFfMzIgYTsKIAlzdHJ1Y3QgZml4ZWQzMV8zMiBiOwogCXN0cnVjdCBmaXhlZDMxXzMyIGM7CiAJc3RydWN0IGZpeGVkMzFfMzIgdGhyZXNob2xkOwotCXN0cnVjdCBmaXhlZDMxXzMyIHJlZmVyZW5jZV93aGl0ZV9sZXZlbDsKKwlzdHJ1Y3QgZml4ZWQzMV8zMiB4OwogCisJc3RydWN0IGZpeGVkMzFfMzIgc2NhbGluZ19mYWN0b3IgPQorCQkJZGNfZml4cHRfZnJvbV9mcmFjdGlvbihtYXhfbHVtaW5hbmNlX25pdHMsIHNkcl93aGl0ZV9sZXZlbCk7CiAJYSA9IGRjX2ZpeHB0X2Zyb21fZnJhY3Rpb24oMTc4ODMyNzcsIDEwMDAwMDAwMCk7Ci0JaWYgKGlzX2xpZ2h0MF8xMikgewotCQkvKmxpZ2h0IDAtMTIqLwotCQliID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbigyODQ2Njg5MiwgMTAwMDAwMDAwKTsKLQkJYyA9IGRjX2ZpeHB0X2Zyb21fZnJhY3Rpb24oNTU5OTEwNzMsIDEwMDAwMDAwMCk7Ci0JCXRocmVzaG9sZCA9IGRjX2ZpeHB0X29uZTsKLQkJcmVmZXJlbmNlX3doaXRlX2xldmVsID0gZGNfZml4cHRfaGFsZjsKKwliID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbigyODQ2Njg5MiwgMTAwMDAwMDAwKTsKKwljID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbig1NTk5MTA3MywgMTAwMDAwMDAwKTsKKwl0aHJlc2hvbGQgPSBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKDEsIDIpOworCisJaWYgKGRjX2ZpeHB0X2x0KGluX3gsIHRocmVzaG9sZCkpIHsKKwkJeCA9IGRjX2ZpeHB0X211bChpbl94LCBpbl94KTsKKwkJeCA9IGRjX2ZpeHB0X2Rpdl9pbnQoeCwgMyk7CiAJfSBlbHNlIHsKLQkJLypsaWdodCAwLTEqLwotCQliID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbigyMzcyMjQxLCAxMDAwMDAwMDApOwotCQljID0gZGNfZml4cHRfYWRkKGRjX2ZpeHB0X29uZSwgZGNfZml4cHRfZnJvbV9mcmFjdGlvbig0MjkzNDcsIDEwMDAwMDAwMCkpOwotCQl0aHJlc2hvbGQgPSBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKDEsIDEyKTsKLQkJcmVmZXJlbmNlX3doaXRlX2xldmVsID0gZGNfZml4cHRfcG93KGRjX2ZpeHB0X2Zyb21fZnJhY3Rpb24oMywgMSksIGRjX2ZpeHB0X2hhbGYpOworCQl4ID0gZGNfZml4cHRfc3ViKGluX3gsIGMpOworCQl4ID0gZGNfZml4cHRfZGl2KHgsIGEpOworCQl4ID0gZGNfZml4cHRfZXhwKHgpOworCQl4ID0gZGNfZml4cHRfYWRkKHgsIGIpOworCQl4ID0gZGNfZml4cHRfZGl2X2ludCh4LCAxMik7CiAJfQotCWlmIChkY19maXhwdF9sdCh0aHJlc2hvbGQsIGluX3gpKQotCQkqb3V0X3kgPSBkY19maXhwdF9hZGQoYywgZGNfZml4cHRfbXVsKGEsIGRjX2ZpeHB0X2xvZyhkY19maXhwdF9zdWIoaW5feCwgYikpKSk7Ci0JZWxzZQotCQkqb3V0X3kgPSBkY19maXhwdF9tdWwoZGNfZml4cHRfcG93KGluX3gsIGRjX2ZpeHB0X2hhbGYpLCByZWZlcmVuY2Vfd2hpdGVfbGV2ZWwpOworCSpvdXRfeSA9IGRjX2ZpeHB0X211bCh4LCBzY2FsaW5nX2ZhY3Rvcik7CisKIH0KIAogLypyZSBnYW1tYSwgbGluZWFyIHRvIG5vbmUgbGluZWFyKi8KLXN0YXRpYyB2b2lkIGNvbXB1dGVfaGxnX2VvdGYoc3RydWN0IGZpeGVkMzFfMzIgaW5feCwgYm9vbCBpc19saWdodDBfMTIsIHN0cnVjdCBmaXhlZDMxXzMyICpvdXRfeSkKK3N0YXRpYyB2b2lkIGNvbXB1dGVfaGxnX29ldGYoc3RydWN0IGZpeGVkMzFfMzIgaW5feCwgc3RydWN0IGZpeGVkMzFfMzIgKm91dF95LAorCQl1aW50MzJfdCBzZHJfd2hpdGVfbGV2ZWwsIHVpbnQzMl90IG1heF9sdW1pbmFuY2Vfbml0cykKIHsKIAlzdHJ1Y3QgZml4ZWQzMV8zMiBhOwogCXN0cnVjdCBmaXhlZDMxXzMyIGI7CiAJc3RydWN0IGZpeGVkMzFfMzIgYzsKLQlzdHJ1Y3QgZml4ZWQzMV8zMiByZWZlcmVuY2Vfd2hpdGVfbGV2ZWw7CisJc3RydWN0IGZpeGVkMzFfMzIgdGhyZXNob2xkOworCXN0cnVjdCBmaXhlZDMxXzMyIHg7CiAKKwlzdHJ1Y3QgZml4ZWQzMV8zMiBzY2FsaW5nX2ZhY3RvciA9CisJCQlkY19maXhwdF9mcm9tX2ZyYWN0aW9uKHNkcl93aGl0ZV9sZXZlbCwgbWF4X2x1bWluYW5jZV9uaXRzKTsKIAlhID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbigxNzg4MzI3NywgMTAwMDAwMDAwKTsKLQlpZiAoaXNfbGlnaHQwXzEyKSB7Ci0JCS8qbGlnaHQgMC0xMiovCi0JCWIgPSBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKDI4NDY2ODkyLCAxMDAwMDAwMDApOwotCQljID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbig1NTk5MTA3MywgMTAwMDAwMDAwKTsKLQkJcmVmZXJlbmNlX3doaXRlX2xldmVsID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbig0LCAxKTsKKwliID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbigyODQ2Njg5MiwgMTAwMDAwMDAwKTsKKwljID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbig1NTk5MTA3MywgMTAwMDAwMDAwKTsKKwl0aHJlc2hvbGQgPSBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKDEsIDEyKTsKKwl4ID0gZGNfZml4cHRfbXVsKGluX3gsIHNjYWxpbmdfZmFjdG9yKTsKKworCisJaWYgKGRjX2ZpeHB0X2x0KHgsIHRocmVzaG9sZCkpIHsKKwkJeCA9IGRjX2ZpeHB0X211bCh4LCBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKDMsIDEpKTsKKwkJKm91dF95ID0gZGNfZml4cHRfcG93KHgsIGRjX2ZpeHB0X2hhbGYpOwogCX0gZWxzZSB7Ci0JCS8qbGlnaHQgMC0xKi8KLQkJYiA9IGRjX2ZpeHB0X2Zyb21fZnJhY3Rpb24oMjM3MjI0MSwgMTAwMDAwMDAwKTsKLQkJYyA9IGRjX2ZpeHB0X2FkZChkY19maXhwdF9vbmUsIGRjX2ZpeHB0X2Zyb21fZnJhY3Rpb24oNDI5MzQ3LCAxMDAwMDAwMDApKTsKLQkJcmVmZXJlbmNlX3doaXRlX2xldmVsID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbigxLCAzKTsKKwkJeCA9IGRjX2ZpeHB0X211bCh4LCBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKDEyLCAxKSk7CisJCXggPSBkY19maXhwdF9zdWIoeCwgYik7CisJCXggPSBkY19maXhwdF9sb2coeCk7CisJCXggPSBkY19maXhwdF9tdWwoYSwgeCk7CisJCSpvdXRfeSA9IGRjX2ZpeHB0X2FkZCh4LCBjKTsKIAl9Ci0JaWYgKGRjX2ZpeHB0X2x0KGRjX2ZpeHB0X2hhbGYsIGluX3gpKQotCQkqb3V0X3kgPSBkY19maXhwdF9hZGQoZGNfZml4cHRfZXhwKGRjX2ZpeHB0X2RpdihkY19maXhwdF9zdWIoaW5feCwgYyksIGEpKSwgYik7Ci0JZWxzZQotCQkqb3V0X3kgPSBkY19maXhwdF9tdWwoZGNfZml4cHRfcG93KGluX3gsIGRjX2ZpeHB0X2Zyb21fZnJhY3Rpb24oMiwgMSkpLCByZWZlcmVuY2Vfd2hpdGVfbGV2ZWwpOwogfQogCiAKQEAgLTI0Myw5MyArMjkwLDEwMSBAQCBzdHJ1Y3QgZGl2aWRlcnMgewogCXN0cnVjdCBmaXhlZDMxXzMyIGRpdmlkZXIzOwogfTsKIAotZW51bSBnYW1tYV90eXBlX2luZGV4IHsKLQlnYW1tYV90eXBlX2luZGV4XzJfNCwKLQlnYW1tYV90eXBlX2luZGV4XzJfMiwKLQlnYW1tYV90eXBlX2luZGV4XzJfMl9mbGF0Ci19OwogCi1zdGF0aWMgdm9pZCBidWlsZF9jb2VmZmljaWVudHMoc3RydWN0IGdhbW1hX2NvZWZmaWNpZW50cyAqY29lZmZpY2llbnRzLCBlbnVtIGdhbW1hX3R5cGVfaW5kZXggdHlwZSkKK3N0YXRpYyBib29sIGJ1aWxkX2NvZWZmaWNpZW50cyhzdHJ1Y3QgZ2FtbWFfY29lZmZpY2llbnRzICpjb2VmZmljaWVudHMsIGVudW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHR5cGUpCiB7Ci0Jc3RhdGljIGNvbnN0IGludDMyX3QgbnVtZXJhdG9yMDFbXSA9IHsgMzEzMDgsCTE4MDAwMCwJMH07Ci0Jc3RhdGljIGNvbnN0IGludDMyX3QgbnVtZXJhdG9yMDJbXSA9IHsgMTI5MjAsCTQ1MDAsCTB9OwotCXN0YXRpYyBjb25zdCBpbnQzMl90IG51bWVyYXRvcjAzW10gPSB7IDU1LAkJOTksCQkwfTsKLQlzdGF0aWMgY29uc3QgaW50MzJfdCBudW1lcmF0b3IwNFtdID0geyA1NSwJCTk5LAkJMH07Ci0Jc3RhdGljIGNvbnN0IGludDMyX3QgbnVtZXJhdG9yMDVbXSA9IHsgMjQwMCwJMjIwMCwgMjIwMH07CiAKIAl1aW50MzJfdCBpID0gMDsKIAl1aW50MzJfdCBpbmRleCA9IDA7CisJYm9vbCByZXQgPSB0cnVlOwogCi0JaWYgKHR5cGUgPT0gZ2FtbWFfdHlwZV9pbmRleF8yXzIpCisJaWYgKHR5cGUgPT0gVFJBTlNGRVJfRlVOQ1RJT05fU1JHQikKKwkJaW5kZXggPSAwOworCWVsc2UgaWYgKHR5cGUgPT0gVFJBTlNGRVJfRlVOQ1RJT05fQlQ3MDkpCiAJCWluZGV4ID0gMTsKLQllbHNlIGlmICh0eXBlID09IGdhbW1hX3R5cGVfaW5kZXhfMl8yX2ZsYXQpCisJZWxzZSBpZiAodHlwZSA9PSBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTIyKQogCQlpbmRleCA9IDI7CisJZWxzZSBpZiAodHlwZSA9PSBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI0KQorCQlpbmRleCA9IDM7CisJZWxzZSBpZiAodHlwZSA9PSBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI2KQorCQlpbmRleCA9IDQ7CisJZWxzZSB7CisJCXJldCA9IGZhbHNlOworCQlnb3RvIHJlbGVhc2U7CisJfQogCiAJZG8gewogCQljb2VmZmljaWVudHMtPmEwW2ldID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbigKLQkJCW51bWVyYXRvcjAxW2luZGV4XSwgMTAwMDAwMDApOworCQkJZ2FtbWFfbnVtZXJhdG9yMDFbaW5kZXhdLCAxMDAwMDAwMCk7CiAJCWNvZWZmaWNpZW50cy0+YTFbaV0gPSBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKAotCQkJbnVtZXJhdG9yMDJbaW5kZXhdLCAxMDAwKTsKKwkJCWdhbW1hX251bWVyYXRvcjAyW2luZGV4XSwgMTAwMCk7CiAJCWNvZWZmaWNpZW50cy0+YTJbaV0gPSBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKAotCQkJbnVtZXJhdG9yMDNbaW5kZXhdLCAxMDAwKTsKKwkJCWdhbW1hX251bWVyYXRvcjAzW2luZGV4XSwgMTAwMCk7CiAJCWNvZWZmaWNpZW50cy0+YTNbaV0gPSBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKAotCQkJbnVtZXJhdG9yMDRbaW5kZXhdLCAxMDAwKTsKKwkJCWdhbW1hX251bWVyYXRvcjA0W2luZGV4XSwgMTAwMCk7CiAJCWNvZWZmaWNpZW50cy0+dXNlcl9nYW1tYVtpXSA9IGRjX2ZpeHB0X2Zyb21fZnJhY3Rpb24oCi0JCQludW1lcmF0b3IwNVtpbmRleF0sIDEwMDApOworCQkJZ2FtbWFfbnVtZXJhdG9yMDVbaW5kZXhdLCAxMDAwKTsKIAogCQkrK2k7CiAJfSB3aGlsZSAoaSAhPSBBUlJBWV9TSVpFKGNvZWZmaWNpZW50cy0+YTApKTsKK3JlbGVhc2U6CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHN0cnVjdCBmaXhlZDMxXzMyIHRyYW5zbGF0ZV9mcm9tX2xpbmVhcl9zcGFjZSgKLQlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcsCi0Jc3RydWN0IGZpeGVkMzFfMzIgYTAsCi0Jc3RydWN0IGZpeGVkMzFfMzIgYTEsCi0Jc3RydWN0IGZpeGVkMzFfMzIgYTIsCi0Jc3RydWN0IGZpeGVkMzFfMzIgYTMsCi0Jc3RydWN0IGZpeGVkMzFfMzIgZ2FtbWEpCisJCXN0cnVjdCB0cmFuc2xhdGVfZnJvbV9saW5lYXJfc3BhY2VfYXJncyAqYXJncykKIHsKIAljb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBvbmUgPSBkY19maXhwdF9mcm9tX2ludCgxKTsKIAotCWlmIChkY19maXhwdF9sdChvbmUsIGFyZykpCisJaWYgKGRjX2ZpeHB0X2xlKG9uZSwgYXJncy0+YXJnKSkKIAkJcmV0dXJuIG9uZTsKIAotCWlmIChkY19maXhwdF9sZShhcmcsIGRjX2ZpeHB0X25lZyhhMCkpKQotCQlyZXR1cm4gZGNfZml4cHRfc3ViKAotCQkJYTIsCi0JCQlkY19maXhwdF9tdWwoCi0JCQkJZGNfZml4cHRfYWRkKAotCQkJCQlvbmUsCi0JCQkJCWEzKSwKLQkJCQlkY19maXhwdF9wb3coCi0JCQkJCWRjX2ZpeHB0X25lZyhhcmcpLAotCQkJCQlkY19maXhwdF9yZWNpcChnYW1tYSkpKSk7Ci0JZWxzZSBpZiAoZGNfZml4cHRfbGUoYTAsIGFyZykpCi0JCXJldHVybiBkY19maXhwdF9zdWIoCi0JCQlkY19maXhwdF9tdWwoCi0JCQkJZGNfZml4cHRfYWRkKAotCQkJCQlvbmUsCi0JCQkJCWEzKSwKLQkJCQlkY19maXhwdF9wb3coCi0JCQkJCWFyZywKLQkJCQkJZGNfZml4cHRfcmVjaXAoZ2FtbWEpKSksCi0JCQlhMik7CisJaWYgKGRjX2ZpeHB0X2xlKGFyZ3MtPmFyZywgZGNfZml4cHRfbmVnKGFyZ3MtPmEwKSkpIHsKKwkJc2NyYXRjaF8xID0gZGNfZml4cHRfYWRkKG9uZSwgYXJncy0+YTMpOworCQlzY3JhdGNoXzIgPSBkY19maXhwdF9wb3coCisJCQkJZGNfZml4cHRfbmVnKGFyZ3MtPmFyZyksCisJCQkJZGNfZml4cHRfcmVjaXAoYXJncy0+Z2FtbWEpKTsKKwkJc2NyYXRjaF8xID0gZGNfZml4cHRfbXVsKHNjcmF0Y2hfMSwgc2NyYXRjaF8yKTsKKwkJc2NyYXRjaF8xID0gZGNfZml4cHRfc3ViKGFyZ3MtPmEyLCBzY3JhdGNoXzEpOworCisJCXJldHVybiBzY3JhdGNoXzE7CisJfSBlbHNlIGlmIChkY19maXhwdF9sZShhcmdzLT5hMCwgYXJncy0+YXJnKSkgeworCQlpZiAocG93X2J1ZmZlcl9wdHIgPT0gMCkgeworCQkJZ2FtbWFfb2ZfMiA9IGRjX2ZpeHB0X3BvdyhkY19maXhwdF9mcm9tX2ludCgyKSwKKwkJCQkJZGNfZml4cHRfcmVjaXAoYXJncy0+Z2FtbWEpKTsKKwkJfQorCQlzY3JhdGNoXzEgPSBkY19maXhwdF9hZGQob25lLCBhcmdzLT5hMyk7CisJCWlmIChwb3dfYnVmZmVyX3B0ciA8IDE2KQorCQkJc2NyYXRjaF8yID0gZGNfZml4cHRfcG93KGFyZ3MtPmFyZywKKwkJCQkJZGNfZml4cHRfcmVjaXAoYXJncy0+Z2FtbWEpKTsKKwkJZWxzZQorCQkJc2NyYXRjaF8yID0gZGNfZml4cHRfbXVsKGdhbW1hX29mXzIsCisJCQkJCXBvd19idWZmZXJbcG93X2J1ZmZlcl9wdHIlMTZdKTsKKworCQlwb3dfYnVmZmVyW3Bvd19idWZmZXJfcHRyJTE2XSA9IHNjcmF0Y2hfMjsKKwkJcG93X2J1ZmZlcl9wdHIrKzsKKworCQlzY3JhdGNoXzEgPSBkY19maXhwdF9tdWwoc2NyYXRjaF8xLCBzY3JhdGNoXzIpOworCQlzY3JhdGNoXzEgPSBkY19maXhwdF9zdWIoc2NyYXRjaF8xLCBhcmdzLT5hMik7CisKKwkJcmV0dXJuIHNjcmF0Y2hfMTsKKwl9CiAJZWxzZQotCQlyZXR1cm4gZGNfZml4cHRfbXVsKAotCQkJYXJnLAotCQkJYTEpOworCQlyZXR1cm4gZGNfZml4cHRfbXVsKGFyZ3MtPmFyZywgYXJncy0+YTEpOwogfQogCiBzdGF0aWMgc3RydWN0IGZpeGVkMzFfMzIgY2FsY3VsYXRlX2dhbW1hMjIoc3RydWN0IGZpeGVkMzFfMzIgYXJnKQogewogCXN0cnVjdCBmaXhlZDMxXzMyIGdhbW1hID0gZGNfZml4cHRfZnJvbV9mcmFjdGlvbigyMiwgMTApOwogCi0JcmV0dXJuIHRyYW5zbGF0ZV9mcm9tX2xpbmVhcl9zcGFjZShhcmcsCi0JCQlkY19maXhwdF96ZXJvLAotCQkJZGNfZml4cHRfemVybywKLQkJCWRjX2ZpeHB0X3plcm8sCi0JCQlkY19maXhwdF96ZXJvLAotCQkJZ2FtbWEpOworCXNjcmF0Y2hfZ2FtbWFfYXJncy5hcmcgPSBhcmc7CisJc2NyYXRjaF9nYW1tYV9hcmdzLmEwID0gZGNfZml4cHRfemVybzsKKwlzY3JhdGNoX2dhbW1hX2FyZ3MuYTEgPSBkY19maXhwdF96ZXJvOworCXNjcmF0Y2hfZ2FtbWFfYXJncy5hMiA9IGRjX2ZpeHB0X3plcm87CisJc2NyYXRjaF9nYW1tYV9hcmdzLmEzID0gZGNfZml4cHRfemVybzsKKwlzY3JhdGNoX2dhbW1hX2FyZ3MuZ2FtbWEgPSBnYW1tYTsKKworCXJldHVybiB0cmFuc2xhdGVfZnJvbV9saW5lYXJfc3BhY2UoJnNjcmF0Y2hfZ2FtbWFfYXJncyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZml4ZWQzMV8zMiB0cmFuc2xhdGVfdG9fbGluZWFyX3NwYWNlKApAQCAtMzY1LDE4ICs0MjAsMTkgQEAgc3RhdGljIHN0cnVjdCBmaXhlZDMxXzMyIHRyYW5zbGF0ZV90b19saW5lYXJfc3BhY2UoCiAJcmV0dXJuIGxpbmVhcjsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgZml4ZWQzMV8zMiB0cmFuc2xhdGVfZnJvbV9saW5lYXJfc3BhY2VfZXgoCitzdGF0aWMgc3RydWN0IGZpeGVkMzFfMzIgdHJhbnNsYXRlX2Zyb21fbGluZWFyX3NwYWNlX2V4KAogCXN0cnVjdCBmaXhlZDMxXzMyIGFyZywKIAlzdHJ1Y3QgZ2FtbWFfY29lZmZpY2llbnRzICpjb2VmZiwKIAl1aW50MzJfdCBjb2xvcl9pbmRleCkKIHsKLQlyZXR1cm4gdHJhbnNsYXRlX2Zyb21fbGluZWFyX3NwYWNlKAotCQlhcmcsCi0JCWNvZWZmLT5hMFtjb2xvcl9pbmRleF0sCi0JCWNvZWZmLT5hMVtjb2xvcl9pbmRleF0sCi0JCWNvZWZmLT5hMltjb2xvcl9pbmRleF0sCi0JCWNvZWZmLT5hM1tjb2xvcl9pbmRleF0sCi0JCWNvZWZmLT51c2VyX2dhbW1hW2NvbG9yX2luZGV4XSk7CisJc2NyYXRjaF9nYW1tYV9hcmdzLmFyZyA9IGFyZzsKKwlzY3JhdGNoX2dhbW1hX2FyZ3MuYTAgPSBjb2VmZi0+YTBbY29sb3JfaW5kZXhdOworCXNjcmF0Y2hfZ2FtbWFfYXJncy5hMSA9IGNvZWZmLT5hMVtjb2xvcl9pbmRleF07CisJc2NyYXRjaF9nYW1tYV9hcmdzLmEyID0gY29lZmYtPmEyW2NvbG9yX2luZGV4XTsKKwlzY3JhdGNoX2dhbW1hX2FyZ3MuYTMgPSBjb2VmZi0+YTNbY29sb3JfaW5kZXhdOworCXNjcmF0Y2hfZ2FtbWFfYXJncy5nYW1tYSA9IGNvZWZmLT51c2VyX2dhbW1hW2NvbG9yX2luZGV4XTsKKworCXJldHVybiB0cmFuc2xhdGVfZnJvbV9saW5lYXJfc3BhY2UoJnNjcmF0Y2hfZ2FtbWFfYXJncyk7CiB9CiAKIApAQCAtNzA5LDMwICs3NjUsNDIgQEAgc3RhdGljIHZvaWQgYnVpbGRfZGVfcHEoc3RydWN0IHB3bF9mbG9hdF9kYXRhX2V4ICpkZV9wcSwKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGJ1aWxkX3JlZ2FtbWEoc3RydWN0IHB3bF9mbG9hdF9kYXRhX2V4ICpyZ2JfcmVnYW1tYSwKK3N0YXRpYyBib29sIGJ1aWxkX3JlZ2FtbWEoc3RydWN0IHB3bF9mbG9hdF9kYXRhX2V4ICpyZ2JfcmVnYW1tYSwKIAkJdWludDMyX3QgaHdfcG9pbnRzX251bSwKLQkJY29uc3Qgc3RydWN0IGh3X3hfcG9pbnQgKmNvb3JkaW5hdGVfeCwgZW51bSBnYW1tYV90eXBlX2luZGV4IHR5cGUpCisJCWNvbnN0IHN0cnVjdCBod194X3BvaW50ICpjb29yZGluYXRlX3gsIGVudW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHR5cGUpCiB7CiAJdWludDMyX3QgaTsKKwlib29sIHJldCA9IGZhbHNlOwogCi0Jc3RydWN0IGdhbW1hX2NvZWZmaWNpZW50cyBjb2VmZjsKKwlzdHJ1Y3QgZ2FtbWFfY29lZmZpY2llbnRzICpjb2VmZjsKIAlzdHJ1Y3QgcHdsX2Zsb2F0X2RhdGFfZXggKnJnYiA9IHJnYl9yZWdhbW1hOwogCWNvbnN0IHN0cnVjdCBod194X3BvaW50ICpjb29yZF94ID0gY29vcmRpbmF0ZV94OwogCi0JYnVpbGRfY29lZmZpY2llbnRzKCZjb2VmZiwgdHlwZSk7CisJY29lZmYgPSBrdnphbGxvYyhzaXplb2YoKmNvZWZmKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjb2VmZikKKwkJZ290byByZWxlYXNlOwogCisJaWYgKCFidWlsZF9jb2VmZmljaWVudHMoY29lZmYsIHR5cGUpKQorCQlnb3RvIHJlbGVhc2U7CisKKwltZW1zZXQocG93X2J1ZmZlciwgMCwgTlVNX1BUU19JTl9SRUdJT04gKiBzaXplb2Yoc3RydWN0IGZpeGVkMzFfMzIpKTsKKwlwb3dfYnVmZmVyX3B0ciA9IDA7IC8vIHNlZSB2YXJpYWJsZSBkZWZpbml0aW9uIGZvciBtb3JlIGluZm8KIAlpID0gMDsKLQotCXdoaWxlIChpICE9IGh3X3BvaW50c19udW0gKyAxKSB7CisJd2hpbGUgKGkgPD0gaHdfcG9pbnRzX251bSkgewogCQkvKlRPRE8gdXNlIHkgdnMgcixnLGIqLwogCQlyZ2ItPnIgPSB0cmFuc2xhdGVfZnJvbV9saW5lYXJfc3BhY2VfZXgoCi0JCQljb29yZF94LT54LCAmY29lZmYsIDApOworCQkJY29vcmRfeC0+eCwgY29lZmYsIDApOwogCQlyZ2ItPmcgPSByZ2ItPnI7CiAJCXJnYi0+YiA9IHJnYi0+cjsKIAkJKytjb29yZF94OwogCQkrK3JnYjsKIAkJKytpOwogCX0KKwlwb3dfYnVmZmVyX3B0ciA9IC0xOyAvLyByZXNldCBiYWNrIHRvIG5vIG9wdGltaXplCisJcmV0ID0gdHJ1ZTsKK3JlbGVhc2U6CisJa2ZyZWUoY29lZmYpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIGhlcm1pdGVfc3BsaW5lX2VldGYoc3RydWN0IGZpeGVkMzFfMzIgaW5wdXRfeCwKQEAgLTg2Miw2ICs5MzAsOCBAQCBzdGF0aWMgYm9vbCBidWlsZF9mcmVlc3luY19oZHIoc3RydWN0IHB3bF9mbG9hdF9kYXRhX2V4ICpyZ2JfcmVnYW1tYSwKIAllbHNlCiAJCW1heF9jb250ZW50ID0gbWF4X2Rpc3BsYXk7CiAKKwlpZiAoIXVzZV9lZXRmKQorCQlwb3dfYnVmZmVyX3B0ciA9IDA7IC8vIHNlZSB2YXIgZGVmaW5pdGlvbiBmb3IgbW9yZSBpbmZvCiAJcmdiICs9IDMyOyAvLyBmaXJzdCAzMiBwb2ludHMgaGF2ZSBwcm9ibGVtcyB3aXRoIGZpeGVkIHBvaW50LCB0b28gc21hbGwKIAljb29yZF94ICs9IDMyOwogCWZvciAoaSA9IDMyOyBpIDw9IGh3X3BvaW50c19udW07IGkrKykgewpAQCAtOTAwLDE5ICs5NzAsMjMgQEAgc3RhdGljIGJvb2wgYnVpbGRfZnJlZXN5bmNfaGRyKHN0cnVjdCBwd2xfZmxvYXRfZGF0YV9leCAqcmdiX3JlZ2FtbWEsCiAJCSsrY29vcmRfeDsKIAkJKytyZ2I7CiAJfQorCXBvd19idWZmZXJfcHRyID0gLTE7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgYnVpbGRfZGVnYW1tYShzdHJ1Y3QgcHdsX2Zsb2F0X2RhdGFfZXggKmN1cnZlLAorc3RhdGljIGJvb2wgYnVpbGRfZGVnYW1tYShzdHJ1Y3QgcHdsX2Zsb2F0X2RhdGFfZXggKmN1cnZlLAogCQl1aW50MzJfdCBod19wb2ludHNfbnVtLAotCQljb25zdCBzdHJ1Y3QgaHdfeF9wb2ludCAqY29vcmRpbmF0ZV94LCBlbnVtIGdhbW1hX3R5cGVfaW5kZXggdHlwZSkKKwkJY29uc3Qgc3RydWN0IGh3X3hfcG9pbnQgKmNvb3JkaW5hdGVfeCwgZW51bSBkY190cmFuc2Zlcl9mdW5jX3ByZWRlZmluZWQgdHlwZSkKIHsKIAl1aW50MzJfdCBpOwogCXN0cnVjdCBnYW1tYV9jb2VmZmljaWVudHMgY29lZmY7CiAJdWludDMyX3QgYmVnaW5faW5kZXgsIGVuZF9pbmRleDsKKwlib29sIHJldCA9IGZhbHNlOwogCi0JYnVpbGRfY29lZmZpY2llbnRzKCZjb2VmZiwgdHlwZSk7CisJaWYgKCFidWlsZF9jb2VmZmljaWVudHMoJmNvZWZmLCB0eXBlKSkKKwkJZ290byByZWxlYXNlOworCiAJaSA9IDA7CiAKIAkvKiBYIHBvaW50cyBpcyAyXi0yNSB0byAyXjcKQEAgLTk0MSwxMSArMTAxNSwxOSBAQCBzdGF0aWMgdm9pZCBidWlsZF9kZWdhbW1hKHN0cnVjdCBwd2xfZmxvYXRfZGF0YV9leCAqY3VydmUsCiAJCWN1cnZlW2ldLmIgPSBkY19maXhwdF9vbmU7CiAJCWkrKzsKIAl9CisJcmV0ID0gdHJ1ZTsKK3JlbGVhc2U6CisJcmV0dXJuIHJldDsKIH0KIAorCisKKworCiBzdGF0aWMgdm9pZCBidWlsZF9obGdfZGVnYW1tYShzdHJ1Y3QgcHdsX2Zsb2F0X2RhdGFfZXggKmRlZ2FtbWEsCiAJCXVpbnQzMl90IGh3X3BvaW50c19udW0sCi0JCWNvbnN0IHN0cnVjdCBod194X3BvaW50ICpjb29yZGluYXRlX3gsIGJvb2wgaXNfbGlnaHQwXzEyKQorCQljb25zdCBzdHJ1Y3QgaHdfeF9wb2ludCAqY29vcmRpbmF0ZV94LAorCQl1aW50MzJfdCBzZHJfd2hpdGVfbGV2ZWwsIHVpbnQzMl90IG1heF9sdW1pbmFuY2Vfbml0cykKIHsKIAl1aW50MzJfdCBpOwogCkBAIC05NTMsOSArMTAzNSw5IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2hsZ19kZWdhbW1hKHN0cnVjdCBwd2xfZmxvYXRfZGF0YV9leCAqZGVnYW1tYSwKIAljb25zdCBzdHJ1Y3QgaHdfeF9wb2ludCAqY29vcmRfeCA9IGNvb3JkaW5hdGVfeDsKIAogCWkgPSAwOwotCisJLy9jaGVjayB3aGVuIGkgPT0gNDM0CiAJd2hpbGUgKGkgIT0gaHdfcG9pbnRzX251bSArIDEpIHsKLQkJY29tcHV0ZV9obGdfb2V0Zihjb29yZF94LT54LCBpc19saWdodDBfMTIsICZyZ2ItPnIpOworCQljb21wdXRlX2hsZ19lb3RmKGNvb3JkX3gtPngsICZyZ2ItPnIsIHNkcl93aGl0ZV9sZXZlbCwgbWF4X2x1bWluYW5jZV9uaXRzKTsKIAkJcmdiLT5nID0gcmdiLT5yOwogCQlyZ2ItPmIgPSByZ2ItPnI7CiAJCSsrY29vcmRfeDsKQEAgLTk2NCw5ICsxMDQ2LDExIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2hsZ19kZWdhbW1hKHN0cnVjdCBwd2xfZmxvYXRfZGF0YV9leCAqZGVnYW1tYSwKIAl9CiB9CiAKKwogc3RhdGljIHZvaWQgYnVpbGRfaGxnX3JlZ2FtbWEoc3RydWN0IHB3bF9mbG9hdF9kYXRhX2V4ICpyZWdhbW1hLAogCQl1aW50MzJfdCBod19wb2ludHNfbnVtLAotCQljb25zdCBzdHJ1Y3QgaHdfeF9wb2ludCAqY29vcmRpbmF0ZV94LCBib29sIGlzX2xpZ2h0MF8xMikKKwkJY29uc3Qgc3RydWN0IGh3X3hfcG9pbnQgKmNvb3JkaW5hdGVfeCwKKwkJdWludDMyX3Qgc2RyX3doaXRlX2xldmVsLCB1aW50MzJfdCBtYXhfbHVtaW5hbmNlX25pdHMpCiB7CiAJdWludDMyX3QgaTsKIApAQCAtOTc1LDggKzEwNTksOSBAQCBzdGF0aWMgdm9pZCBidWlsZF9obGdfcmVnYW1tYShzdHJ1Y3QgcHdsX2Zsb2F0X2RhdGFfZXggKnJlZ2FtbWEsCiAKIAlpID0gMDsKIAorCS8vd2hlbiBpID09IDQ3MQogCXdoaWxlIChpICE9IGh3X3BvaW50c19udW0gKyAxKSB7Ci0JCWNvbXB1dGVfaGxnX2VvdGYoY29vcmRfeC0+eCwgaXNfbGlnaHQwXzEyLCAmcmdiLT5yKTsKKwkJY29tcHV0ZV9obGdfb2V0Zihjb29yZF94LT54LCAmcmdiLT5yLCBzZHJfd2hpdGVfbGV2ZWwsIG1heF9sdW1pbmFuY2Vfbml0cyk7CiAJCXJnYi0+ZyA9IHJnYi0+cjsKIAkJcmdiLT5iID0gcmdiLT5yOwogCQkrK2Nvb3JkX3g7CkBAIC0xNTcyLDE0ICsxNjU3LDE1IEBAIGJvb2wgbW9kX2NvbG9yX2NhbGN1bGF0ZV9yZWdhbW1hX3BhcmFtcyhzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqb3V0cHV0X3RmLAogCQkJb3V0cHV0X3RmLT50ZiA9PSBUUkFOU0ZFUl9GVU5DVElPTl9TUkdCKSB7CiAJCWlmIChyYW1wID09IE5VTEwpCiAJCQlyZXR1cm4gdHJ1ZTsKLQkJaWYgKChyYW1wLT5pc19sb2dpY2FsX2lkZW50aXR5KSB8fAorCQlpZiAoKHJhbXAtPmlzX2lkZW50aXR5ICYmIHJhbXAtPnR5cGUgIT0gR0FNTUFfQ1NfVEZNXzFEKSB8fAogCQkJCSghbWFwVXNlclJhbXAgJiYgcmFtcC0+dHlwZSA9PSBHQU1NQV9SR0JfMjU2KSkKIAkJCXJldHVybiB0cnVlOwogCX0KIAogCW91dHB1dF90Zi0+dHlwZSA9IFRGX1RZUEVfRElTVFJJQlVURURfUE9JTlRTOwogCi0JaWYgKHJhbXAgJiYgKG1hcFVzZXJSYW1wIHx8IHJhbXAtPnR5cGUgIT0gR0FNTUFfUkdCXzI1NikpIHsKKwlpZiAocmFtcCAmJiByYW1wLT50eXBlICE9IEdBTU1BX0NTX1RGTV8xRCAmJgorCQkJKG1hcFVzZXJSYW1wIHx8IHJhbXAtPnR5cGUgIT0gR0FNTUFfUkdCXzI1NikpIHsKIAkJcmdiX3VzZXIgPSBrdmNhbGxvYyhyYW1wLT5udW1fZW50cmllcyArIF9FWFRSQV9QT0lOVFMsCiAJCQkgICAgc2l6ZW9mKCpyZ2JfdXNlciksCiAJCQkgICAgR0ZQX0tFUk5FTCk7CkBAIC0xNjM0LDYgKzE3MjAsMTIgQEAgYm9vbCBtb2RfY29sb3JfY2FsY3VsYXRlX3JlZ2FtbWFfcGFyYW1zKHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICpvdXRwdXRfdGYsCiAJCQkJTUFYX0hXX1BPSU5UUywKIAkJCQljb29yZGluYXRlc194LAogCQkJCWZzX3BhcmFtcyk7CisJfSBlbHNlIGlmICh0ZiA9PSBUUkFOU0ZFUl9GVU5DVElPTl9ITEcpIHsKKwkJYnVpbGRfZnJlZXN5bmNfaGRyKHJnYl9yZWdhbW1hLAorCQkJCU1BWF9IV19QT0lOVFMsCisJCQkJY29vcmRpbmF0ZXNfeCwKKwkJCQlmc19wYXJhbXMpOworCiAJfSBlbHNlIHsKIAkJdGZfcHRzLT5lbmRfZXhwb25lbnQgPSAwOwogCQl0Zl9wdHMtPnhfcG9pbnRfYXRfeTFfcmVkID0gMTsKQEAgLTE2NDIsOSArMTczNCw3IEBAIGJvb2wgbW9kX2NvbG9yX2NhbGN1bGF0ZV9yZWdhbW1hX3BhcmFtcyhzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqb3V0cHV0X3RmLAogCiAJCWJ1aWxkX3JlZ2FtbWEocmdiX3JlZ2FtbWEsCiAJCQkJTUFYX0hXX1BPSU5UUywKLQkJCQljb29yZGluYXRlc194LCB0ZiA9PSBUUkFOU0ZFUl9GVU5DVElPTl9TUkdCID8gZ2FtbWFfdHlwZV9pbmRleF8yXzQgOgotCQkJCQl0ZiA9PSBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTIyID8KLQkJCQkJZ2FtbWFfdHlwZV9pbmRleF8yXzJfZmxhdCA6IGdhbW1hX3R5cGVfaW5kZXhfMl8yKTsKKwkJCQljb29yZGluYXRlc194LCB0Zik7CiAJfQogCW1hcF9yZWdhbW1hX2h3X3RvX3hfdXNlcihyYW1wLCBjb2VmZiwgcmdiX3VzZXIsCiAJCQljb29yZGluYXRlc194LCBheGlzX3gsIHJnYl9yZWdhbW1hLApAQCAtMTg0NSwxMyArMTkzNSwxOSBAQCBib29sIG1vZF9jb2xvcl9jYWxjdWxhdGVfZGVnYW1tYV9wYXJhbXMoc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKmlucHV0X3RmLAogCQkJCU1BWF9IV19QT0lOVFMsCiAJCQkJY29vcmRpbmF0ZXNfeCk7CiAJZWxzZSBpZiAodGYgPT0gVFJBTlNGRVJfRlVOQ1RJT05fU1JHQiB8fAotCQkJdGYgPT0gVFJBTlNGRVJfRlVOQ1RJT05fQlQ3MDkpCisJCXRmID09IFRSQU5TRkVSX0ZVTkNUSU9OX0JUNzA5IHx8CisJCXRmID09IFRSQU5TRkVSX0ZVTkNUSU9OX0dBTU1BMjIgfHwKKwkJdGYgPT0gVFJBTlNGRVJfRlVOQ1RJT05fR0FNTUEyNCB8fAorCQl0ZiA9PSBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI2KQogCQlidWlsZF9kZWdhbW1hKGN1cnZlLAogCQkJCU1BWF9IV19QT0lOVFMsCiAJCQkJY29vcmRpbmF0ZXNfeCwKLQkJCQl0ZiA9PSBUUkFOU0ZFUl9GVU5DVElPTl9TUkdCID8KLQkJCQlnYW1tYV90eXBlX2luZGV4XzJfNCA6IHRmID09IFRSQU5TRkVSX0ZVTkNUSU9OX0dBTU1BMjIgPwotCQkJCWdhbW1hX3R5cGVfaW5kZXhfMl8yX2ZsYXQgOiBnYW1tYV90eXBlX2luZGV4XzJfMik7CisJCQkJdGYpOworCWVsc2UgaWYgKHRmID09IFRSQU5TRkVSX0ZVTkNUSU9OX0hMRykKKwkJYnVpbGRfaGxnX2RlZ2FtbWEoY3VydmUsCisJCQkJTUFYX0hXX1BPSU5UUywKKwkJCQljb29yZGluYXRlc194LAorCQkJCTgwLCAxMDAwKTsKIAllbHNlIGlmICh0ZiA9PSBUUkFOU0ZFUl9GVU5DVElPTl9MSU5FQVIpIHsKIAkJLy8ganVzdCBjb3B5IGNvb3JkaW5hdGVzX3ggaW50byBjdXJ2ZQogCQlpID0gMDsKQEAgLTE5MzgsNyArMjAzNCwxMCBAQCBib29sICBtb2RfY29sb3JfY2FsY3VsYXRlX2N1cnZlKGVudW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHRyYW5zLAogCiAJCWt2ZnJlZShyZ2JfcmVnYW1tYSk7CiAJfSBlbHNlIGlmICh0cmFucyA9PSBUUkFOU0ZFUl9GVU5DVElPTl9TUkdCIHx8Ci0JCQkgIHRyYW5zID09IFRSQU5TRkVSX0ZVTkNUSU9OX0JUNzA5KSB7CisJCXRyYW5zID09IFRSQU5TRkVSX0ZVTkNUSU9OX0JUNzA5IHx8CisJCXRyYW5zID09IFRSQU5TRkVSX0ZVTkNUSU9OX0dBTU1BMjIgfHwKKwkJdHJhbnMgPT0gVFJBTlNGRVJfRlVOQ1RJT05fR0FNTUEyNCB8fAorCQl0cmFucyA9PSBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI2KSB7CiAJCXJnYl9yZWdhbW1hID0ga3ZjYWxsb2MoTUFYX0hXX1BPSU5UUyArIF9FWFRSQV9QT0lOVFMsCiAJCQkJICAgICAgIHNpemVvZigqcmdiX3JlZ2FtbWEpLAogCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKQEAgLTE5NTIsOSArMjA1MSw3IEBAIGJvb2wgIG1vZF9jb2xvcl9jYWxjdWxhdGVfY3VydmUoZW51bSBkY190cmFuc2Zlcl9mdW5jX3ByZWRlZmluZWQgdHJhbnMsCiAJCWJ1aWxkX3JlZ2FtbWEocmdiX3JlZ2FtbWEsCiAJCQkJTUFYX0hXX1BPSU5UUywKIAkJCQljb29yZGluYXRlc194LAotCQkJCXRyYW5zID09IFRSQU5TRkVSX0ZVTkNUSU9OX1NSR0IgPwotCQkJCWdhbW1hX3R5cGVfaW5kZXhfMl80IDogdHJhbnMgPT0gVFJBTlNGRVJfRlVOQ1RJT05fR0FNTUEyMiA/Ci0JCQkJZ2FtbWFfdHlwZV9pbmRleF8yXzJfZmxhdCA6IGdhbW1hX3R5cGVfaW5kZXhfMl8yKTsKKwkJCQl0cmFucyk7CiAJCWZvciAoaSA9IDA7IGkgPD0gTUFYX0hXX1BPSU5UUyA7IGkrKykgewogCQkJcG9pbnRzLT5yZWRbaV0gICAgPSByZ2JfcmVnYW1tYVtpXS5yOwogCQkJcG9pbnRzLT5ncmVlbltpXSAgPSByZ2JfcmVnYW1tYVtpXS5nOwpAQCAtMTk2MywxOCArMjA2MCwyMSBAQCBib29sICBtb2RfY29sb3JfY2FsY3VsYXRlX2N1cnZlKGVudW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHRyYW5zLAogCQlyZXQgPSB0cnVlOwogCiAJCWt2ZnJlZShyZ2JfcmVnYW1tYSk7Ci0JfSBlbHNlIGlmICh0cmFucyA9PSBUUkFOU0ZFUl9GVU5DVElPTl9ITEcgfHwKLQkJdHJhbnMgPT0gVFJBTlNGRVJfRlVOQ1RJT05fSExHMTIpIHsKKwl9IGVsc2UgaWYgKHRyYW5zID09IFRSQU5TRkVSX0ZVTkNUSU9OX0hMRykgewogCQlyZ2JfcmVnYW1tYSA9IGt2Y2FsbG9jKE1BWF9IV19QT0lOVFMgKyBfRVhUUkFfUE9JTlRTLAogCQkJCSAgICAgICBzaXplb2YoKnJnYl9yZWdhbW1hKSwKIAkJCQkgICAgICAgR0ZQX0tFUk5FTCk7CiAJCWlmICghcmdiX3JlZ2FtbWEpCiAJCQlnb3RvIHJnYl9yZWdhbW1hX2FsbG9jX2ZhaWw7CisJCXBvaW50cy0+ZW5kX2V4cG9uZW50ID0gNDsKKwkJcG9pbnRzLT54X3BvaW50X2F0X3kxX3JlZCA9IDEyOworCQlwb2ludHMtPnhfcG9pbnRfYXRfeTFfZ3JlZW4gPSAxMjsKKwkJcG9pbnRzLT54X3BvaW50X2F0X3kxX2JsdWUgPSAxMjsKIAogCQlidWlsZF9obGdfcmVnYW1tYShyZ2JfcmVnYW1tYSwKIAkJCQlNQVhfSFdfUE9JTlRTLAogCQkJCWNvb3JkaW5hdGVzX3gsCi0JCQkJdHJhbnMgPT0gVFJBTlNGRVJfRlVOQ1RJT05fSExHMTIgPyB0cnVlOmZhbHNlKTsKKwkJCQk4MCwgMTAwMCk7CiAJCWZvciAoaSA9IDA7IGkgPD0gTUFYX0hXX1BPSU5UUyA7IGkrKykgewogCQkJcG9pbnRzLT5yZWRbaV0gICAgPSByZ2JfcmVnYW1tYVtpXS5yOwogCQkJcG9pbnRzLT5ncmVlbltpXSAgPSByZ2JfcmVnYW1tYVtpXS5nOwpAQCAtMjAyNCw4ICsyMTI0LDEwIEBAIGJvb2wgIG1vZF9jb2xvcl9jYWxjdWxhdGVfZGVnYW1tYV9jdXJ2ZShlbnVtIGRjX3RyYW5zZmVyX2Z1bmNfcHJlZGVmaW5lZCB0cmFucywKIAogCQlrdmZyZWUocmdiX2RlZ2FtbWEpOwogCX0gZWxzZSBpZiAodHJhbnMgPT0gVFJBTlNGRVJfRlVOQ1RJT05fU1JHQiB8fAotCQkJICB0cmFucyA9PSBUUkFOU0ZFUl9GVU5DVElPTl9CVDcwOSB8fAotCQkJICB0cmFucyA9PSBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTIyKSB7CisJCXRyYW5zID09IFRSQU5TRkVSX0ZVTkNUSU9OX0JUNzA5IHx8CisJCXRyYW5zID09IFRSQU5TRkVSX0ZVTkNUSU9OX0dBTU1BMjIgfHwKKwkJdHJhbnMgPT0gVFJBTlNGRVJfRlVOQ1RJT05fR0FNTUEyNCB8fAorCQl0cmFucyA9PSBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI2KSB7CiAJCXJnYl9kZWdhbW1hID0ga3ZjYWxsb2MoTUFYX0hXX1BPSU5UUyArIF9FWFRSQV9QT0lOVFMsCiAJCQkJICAgICAgIHNpemVvZigqcmdiX2RlZ2FtbWEpLAogCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKQEAgLTIwMzUsOSArMjEzNyw3IEBAIGJvb2wgIG1vZF9jb2xvcl9jYWxjdWxhdGVfZGVnYW1tYV9jdXJ2ZShlbnVtIGRjX3RyYW5zZmVyX2Z1bmNfcHJlZGVmaW5lZCB0cmFucywKIAkJYnVpbGRfZGVnYW1tYShyZ2JfZGVnYW1tYSwKIAkJCQlNQVhfSFdfUE9JTlRTLAogCQkJCWNvb3JkaW5hdGVzX3gsCi0JCQkJdHJhbnMgPT0gVFJBTlNGRVJfRlVOQ1RJT05fU1JHQiA/Ci0JCQkJZ2FtbWFfdHlwZV9pbmRleF8yXzQgOiB0cmFucyA9PSBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTIyID8KLQkJCQlnYW1tYV90eXBlX2luZGV4XzJfMl9mbGF0IDogZ2FtbWFfdHlwZV9pbmRleF8yXzIpOworCQkJCXRyYW5zKTsKIAkJZm9yIChpID0gMDsgaSA8PSBNQVhfSFdfUE9JTlRTIDsgaSsrKSB7CiAJCQlwb2ludHMtPnJlZFtpXSAgICA9IHJnYl9kZWdhbW1hW2ldLnI7CiAJCQlwb2ludHMtPmdyZWVuW2ldICA9IHJnYl9kZWdhbW1hW2ldLmc7CkBAIC0yMDQ2LDggKzIxNDYsNyBAQCBib29sICBtb2RfY29sb3JfY2FsY3VsYXRlX2RlZ2FtbWFfY3VydmUoZW51bSBkY190cmFuc2Zlcl9mdW5jX3ByZWRlZmluZWQgdHJhbnMsCiAJCXJldCA9IHRydWU7CiAKIAkJa3ZmcmVlKHJnYl9kZWdhbW1hKTsKLQl9IGVsc2UgaWYgKHRyYW5zID09IFRSQU5TRkVSX0ZVTkNUSU9OX0hMRyB8fAotCQl0cmFucyA9PSBUUkFOU0ZFUl9GVU5DVElPTl9ITEcxMikgeworCX0gZWxzZSBpZiAodHJhbnMgPT0gVFJBTlNGRVJfRlVOQ1RJT05fSExHKSB7CiAJCXJnYl9kZWdhbW1hID0ga3ZjYWxsb2MoTUFYX0hXX1BPSU5UUyArIF9FWFRSQV9QT0lOVFMsCiAJCQkJICAgICAgIHNpemVvZigqcmdiX2RlZ2FtbWEpLAogCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKQEAgLTIwNTcsNyArMjE1Niw3IEBAIGJvb2wgIG1vZF9jb2xvcl9jYWxjdWxhdGVfZGVnYW1tYV9jdXJ2ZShlbnVtIGRjX3RyYW5zZmVyX2Z1bmNfcHJlZGVmaW5lZCB0cmFucywKIAkJYnVpbGRfaGxnX2RlZ2FtbWEocmdiX2RlZ2FtbWEsCiAJCQkJTUFYX0hXX1BPSU5UUywKIAkJCQljb29yZGluYXRlc194LAotCQkJCXRyYW5zID09IFRSQU5TRkVSX0ZVTkNUSU9OX0hMRzEyID8gdHJ1ZTpmYWxzZSk7CisJCQkJODAsIDEwMDApOwogCQlmb3IgKGkgPSAwOyBpIDw9IE1BWF9IV19QT0lOVFMgOyBpKyspIHsKIAkJCXBvaW50cy0+cmVkW2ldICAgID0gcmdiX2RlZ2FtbWFbaV0ucjsKIAkJCXBvaW50cy0+Z3JlZW5baV0gID0gcmdiX2RlZ2FtbWFbaV0uZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2NvbG9yL2NvbG9yX2dhbW1hLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9jb2xvci9jb2xvcl9nYW1tYS5oCmluZGV4IDM2OTk1M2YuLjQ0ZGRlYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2NvbG9yL2NvbG9yX2dhbW1hLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvY29sb3IvY29sb3JfZ2FtbWEuaApAQCAtODIsNyArODIsMTcgQEAgc3RydWN0IGZyZWVzeW5jX2hkcl90Zl9wYXJhbXMgewogCXVuc2lnbmVkIGludCBza2lwX3RtOyAvLyBza2lwIHRtCiB9OwogCitzdHJ1Y3QgdHJhbnNsYXRlX2Zyb21fbGluZWFyX3NwYWNlX2FyZ3MgeworCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzsKKwlzdHJ1Y3QgZml4ZWQzMV8zMiBhMDsKKwlzdHJ1Y3QgZml4ZWQzMV8zMiBhMTsKKwlzdHJ1Y3QgZml4ZWQzMV8zMiBhMjsKKwlzdHJ1Y3QgZml4ZWQzMV8zMiBhMzsKKwlzdHJ1Y3QgZml4ZWQzMV8zMiBnYW1tYTsKK307CisKIHZvaWQgc2V0dXBfeF9wb2ludHNfZGlzdHJpYnV0aW9uKHZvaWQpOwordm9pZCBsb2dfeF9wb2ludHNfZGlzdHJpYnV0aW9uKHN0cnVjdCBkYWxfbG9nZ2VyICpsb2dnZXIpOwogdm9pZCBwcmVjb21wdXRlX3BxKHZvaWQpOwogdm9pZCBwcmVjb21wdXRlX2RlX3BxKHZvaWQpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9mcmVlc3luYy9mcmVlc3luYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvZnJlZXN5bmMvZnJlZXN5bmMuYwppbmRleCA3YzIwMTcxLi5lYzcwYzliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9mcmVlc3luYy9mcmVlc3luYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2ZyZWVzeW5jL2ZyZWVzeW5jLmMKQEAgLTUyLDkzICs1Miw2IEBAIHN0cnVjdCBjb3JlX2ZyZWVzeW5jIHsKIAlzdHJ1Y3QgZGMgKmRjOwogfTsKIAotdm9pZCBzZXRGaWVsZFdpdGhNYXNrKHVuc2lnbmVkIGNoYXIgKmRlc3QsIHVuc2lnbmVkIGludCBtYXNrLCB1bnNpZ25lZCBpbnQgdmFsdWUpCi17Ci0JdW5zaWduZWQgaW50IHNoaWZ0ID0gMDsKLQotCWlmICghbWFzayB8fCAhZGVzdCkKLQkJcmV0dXJuOwotCi0Jd2hpbGUgKCEoKG1hc2sgPj4gc2hpZnQpICYgMSkpCi0JCXNoaWZ0Kys7Ci0KLQkvL3Jlc2V0Ci0JKmRlc3QgPSAqZGVzdCAmIH5tYXNrOwotCS8vc2V0Ci0JLy9kb250IGxldCB2YWx1ZSBzcGFuIHBhc3QgbWFzawotCXZhbHVlID0gdmFsdWUgJiAobWFzayA+PiBzaGlmdCk7Ci0JLy9pbnNlcnQgdmFsdWUKLQkqZGVzdCA9ICpkZXN0IHwgKHZhbHVlIDw8IHNoaWZ0KTsKLX0KLQotLy8gVlRFTSBCeXRlIE9mZnNldAotI2RlZmluZSBWUlJfVlRFTV9QQjAJCTAKLSNkZWZpbmUgVlJSX1ZURU1fUEIxCQkxCi0jZGVmaW5lIFZSUl9WVEVNX1BCMgkJMgotI2RlZmluZSBWUlJfVlRFTV9QQjMJCTMKLSNkZWZpbmUgVlJSX1ZURU1fUEI0CQk0Ci0jZGVmaW5lIFZSUl9WVEVNX1BCNQkJNQotI2RlZmluZSBWUlJfVlRFTV9QQjYJCTYKLQotI2RlZmluZSBWUlJfVlRFTV9NRDAJCTcKLSNkZWZpbmUgVlJSX1ZURU1fTUQxCQk4Ci0jZGVmaW5lIFZSUl9WVEVNX01EMgkJOQotI2RlZmluZSBWUlJfVlRFTV9NRDMJCTEwCi0KLQotLy8gVlRFTSBCeXRlIE1hc2tzCi0vL1BCMAotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9QQjBfX1JFU0VSVkVEMCAgMHgwMQotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9QQjBfX1NZTkMgICAgICAgMHgwMgotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9QQjBfX1ZGUiAgICAgICAgMHgwNAotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9QQjBfX0FGUiAgICAgICAgMHgwOAotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9QQjBfX0RTX1RZUEUgICAgMHgzMAotCS8vMDogUGVyaW9kaWMgcHNldWRvLXN0YXRpYyBFTSBEYXRhIFNldAotCS8vMTogUGVyaW9kaWMgZHluYW1pYyBFTSBEYXRhIFNldAotCS8vMjogVW5pcXVlIEVNIERhdGEgU2V0Ci0JLy8zOiBSZXNlcnZlZAotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9QQjBfX0VORCAgICAgICAgMHg0MAotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9QQjBfX05FVyAgICAgICAgMHg4MAotCi0vL1BCMQotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9QQjFfX1JFU0VSVkVEMSAweEZGCi0KLS8vUEIyCi0jZGVmaW5lIE1BU0tfX1ZSUl9WVEVNX1BCMl9fT1JHQU5JWkFUSU9OX0lEIDB4RkYKLQkvLzA6IFRoaXMgaXMgYSBWZW5kb3IgU3BlY2lmaWMgRU0gRGF0YSBTZXQKLQkvLzE6IFRoaXMgRU0gRGF0YSBTZXQgaXMgZGVmaW5lZCBieSBUaGlzIFNwZWNpZmljYXRpb24gKEhETUkgMi4xIHIxMDIuY2xlYW4pCi0JLy8yOiBUaGlzIEVNIERhdGEgU2V0IGlzIGRlZmluZWQgYnkgQ1RBLTg2MS1HCi0JLy8zOiBUaGlzIEVNIERhdGEgU2V0IGlzIGRlZmluZWQgYnkgVkVTQQotLy9QQjMKLSNkZWZpbmUgTUFTS19fVlJSX1ZURU1fUEIzX19EQVRBX1NFVF9UQUdfTVNCICAgIDB4RkYKLS8vUEI0Ci0jZGVmaW5lIE1BU0tfX1ZSUl9WVEVNX1BCNF9fREFUQV9TRVRfVEFHX0xTQiAgICAweEZGCi0vL1BCNQotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9QQjVfX0RBVEFfU0VUX0xFTkdUSF9NU0IgMHhGRgotLy9QQjYKLSNkZWZpbmUgTUFTS19fVlJSX1ZURU1fUEI2X19EQVRBX1NFVF9MRU5HVEhfTFNCIDB4RkYKLQotCi0KLS8vUEI3LTI3ICgyMCBieXRlcyk6Ci0vL1BCNyA9IE1EMAotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9NRDBfX1ZSUl9FTiAgICAgICAgIDB4MDEKLSNkZWZpbmUgTUFTS19fVlJSX1ZURU1fTUQwX19NX0NPTlNUICAgICAgICAweDAyCi0jZGVmaW5lIE1BU0tfX1ZSUl9WVEVNX01EMF9fUkVTRVJWRUQyICAgICAgMHgwQwotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9NRDBfX0ZWQV9GQUNUT1JfTTEgIDB4RjAKLQotLy9NRDEKLSNkZWZpbmUgTUFTS19fVlJSX1ZURU1fTUQxX19CQVNFX1ZGUk9OVCAgICAweEZGCi0KLS8vTUQyCi0jZGVmaW5lIE1BU0tfX1ZSUl9WVEVNX01EMl9fQkFTRV9SRUZSRVNIX1JBVEVfOTggIDB4MDMKLSNkZWZpbmUgTUFTS19fVlJSX1ZURU1fTUQyX19SQiAgICAgICAgICAgICAgICAgICAgMHgwNAotI2RlZmluZSBNQVNLX19WUlJfVlRFTV9NRDJfX1JFU0VSVkVEMyAgICAgICAgICAgICAweEY4Ci0KLS8vTUQzCi0jZGVmaW5lIE1BU0tfX1ZSUl9WVEVNX01EM19fQkFTRV9SRUZSRVNIX1JBVEVfMDcgIDB4RkYKLQotCiAjZGVmaW5lIE1PRF9GUkVFU1lOQ19UT19DT1JFKG1vZF9mcmVlc3luYylcCiAJCWNvbnRhaW5lcl9vZihtb2RfZnJlZXN5bmMsIHN0cnVjdCBjb3JlX2ZyZWVzeW5jLCBwdWJsaWMpCiAKQEAgLTQzNSw2ICszNDgsMTIgQEAgc3RhdGljIHZvaWQgYXBwbHlfYmVsb3dfdGhlX3JhbmdlKHN0cnVjdCBjb3JlX2ZyZWVzeW5jICpjb3JlX2ZyZWVzeW5jLAogCQkvKiBFaXRoZXIgd2UndmUgY2FsY3VsYXRlZCB0aGUgbnVtYmVyIG9mIGZyYW1lcyB0byBpbnNlcnQsCiAJCSAqIG9yIHdlIG5lZWQgdG8gaW5zZXJ0IG1pbiBkdXJhdGlvbiBmcmFtZXMKIAkJICovCisJCWlmIChsYXN0X3JlbmRlcl90aW1lX2luX3VzIC8gZnJhbWVzX3RvX2luc2VydCA8CisJCQkJaW5fb3V0X3Zyci0+bWluX2R1cmF0aW9uX2luX3VzKXsKKwkJCWZyYW1lc190b19pbnNlcnQgLT0gKGZyYW1lc190b19pbnNlcnQgPiAxKSA/CisJCQkJCTEgOiAwOworCQl9CisKIAkJaWYgKGZyYW1lc190b19pbnNlcnQgPiAwKQogCQkJaW5zZXJ0ZWRfZnJhbWVfZHVyYXRpb25faW5fdXMgPSBsYXN0X3JlbmRlcl90aW1lX2luX3VzIC8KIAkJCQkJCQlmcmFtZXNfdG9faW5zZXJ0OwpAQCAtNTY4LDIyICs0ODcsNjQgQEAgYm9vbCBtb2RfZnJlZXN5bmNfZ2V0X3ZfcG9zaXRpb24oc3RydWN0IG1vZF9mcmVlc3luYyAqbW9kX2ZyZWVzeW5jLAogCXJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQgYnVpbGRfdnJyX2luZm9wYWNrZXRfaGVhZGVyX3Z0ZW0oZW51bSBzaWduYWxfdHlwZSBzaWduYWwsCitzdGF0aWMgdm9pZCBidWlsZF92cnJfaW5mb3BhY2tldF9kYXRhKGNvbnN0IHN0cnVjdCBtb2RfdnJyX3BhcmFtcyAqdnJyLAogCQlzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgKmluZm9wYWNrZXQpCiB7Ci0JLy8gSEVBREVSCisJLyogUEIxID0gMHgxQSAoMjRiaXQgQU1EIElFRUUgT1VJICgweDAwMDAxQSkgLSBCeXRlIDApICovCisJaW5mb3BhY2tldC0+c2JbMV0gPSAweDFBOwogCi0JLy8gSEIwLCBIQjEsIEhCMiBpbmRpY2F0ZXMgUGFja2V0VHlwZSBWVEVNUGFja2V0Ci0JaW5mb3BhY2tldC0+aGIwID0gMHg3RjsKLQlpbmZvcGFja2V0LT5oYjEgPSAweEMwOwotCWluZm9wYWNrZXQtPmhiMiA9IDB4MDA7IC8vc2VxdWVuY2VfaW5kZXgKKwkvKiBQQjIgPSAweDAwICgyNGJpdCBBTUQgSUVFRSBPVUkgKDB4MDAwMDFBKSAtIEJ5dGUgMSkgKi8KKwlpbmZvcGFja2V0LT5zYlsyXSA9IDB4MDA7CiAKLQlzZXRGaWVsZFdpdGhNYXNrKCZpbmZvcGFja2V0LT5zYltWUlJfVlRFTV9QQjBdLCBNQVNLX19WUlJfVlRFTV9QQjBfX1ZGUiwgMSk7Ci0Jc2V0RmllbGRXaXRoTWFzaygmaW5mb3BhY2tldC0+c2JbVlJSX1ZURU1fUEIyXSwgTUFTS19fVlJSX1ZURU1fUEIyX19PUkdBTklaQVRJT05fSUQsIDEpOwotCXNldEZpZWxkV2l0aE1hc2soJmluZm9wYWNrZXQtPnNiW1ZSUl9WVEVNX1BCM10sIE1BU0tfX1ZSUl9WVEVNX1BCM19fREFUQV9TRVRfVEFHX01TQiwgMCk7Ci0Jc2V0RmllbGRXaXRoTWFzaygmaW5mb3BhY2tldC0+c2JbVlJSX1ZURU1fUEI0XSwgTUFTS19fVlJSX1ZURU1fUEI0X19EQVRBX1NFVF9UQUdfTFNCLCAxKTsKLQlzZXRGaWVsZFdpdGhNYXNrKCZpbmZvcGFja2V0LT5zYltWUlJfVlRFTV9QQjVdLCBNQVNLX19WUlJfVlRFTV9QQjVfX0RBVEFfU0VUX0xFTkdUSF9NU0IsIDApOwotCXNldEZpZWxkV2l0aE1hc2soJmluZm9wYWNrZXQtPnNiW1ZSUl9WVEVNX1BCNl0sIE1BU0tfX1ZSUl9WVEVNX1BCNl9fREFUQV9TRVRfTEVOR1RIX0xTQiwgNCk7CisJLyogUEIzID0gMHgwMCAoMjRiaXQgQU1EIElFRUUgT1VJICgweDAwMDAxQSkgLSBCeXRlIDIpICovCisJaW5mb3BhY2tldC0+c2JbM10gPSAweDAwOworCisJLyogUEI0ID0gUmVzZXJ2ZWQgKi8KKworCS8qIFBCNSA9IFJlc2VydmVkICovCisKKwkvKiBQQjYgPSBbQml0cyA3OjMgPSBSZXNlcnZlZF0gKi8KKworCS8qIFBCNiA9IFtCaXQgMCA9IEZyZWVTeW5jIFN1cHBvcnRlZF0gKi8KKwlpZiAodnJyLT5zdGF0ZSAhPSBWUlJfU1RBVEVfVU5TVVBQT1JURUQpCisJCWluZm9wYWNrZXQtPnNiWzZdIHw9IDB4MDE7CisKKwkvKiBQQjYgPSBbQml0IDEgPSBGcmVlU3luYyBFbmFibGVkXSAqLworCWlmICh2cnItPnN0YXRlICE9IFZSUl9TVEFURV9ESVNBQkxFRCAmJgorCQkJdnJyLT5zdGF0ZSAhPSBWUlJfU1RBVEVfVU5TVVBQT1JURUQpCisJCWluZm9wYWNrZXQtPnNiWzZdIHw9IDB4MDI7CisKKwkvKiBQQjYgPSBbQml0IDIgPSBGcmVlU3luYyBBY3RpdmVdICovCisJaWYgKHZyci0+c3RhdGUgPT0gVlJSX1NUQVRFX0FDVElWRV9WQVJJQUJMRSB8fAorCQkJdnJyLT5zdGF0ZSA9PSBWUlJfU1RBVEVfQUNUSVZFX0ZJWEVEKQorCQlpbmZvcGFja2V0LT5zYls2XSB8PSAweDA0OworCisJLyogUEI3ID0gRnJlZVN5bmMgTWluaW11bSByZWZyZXNoIHJhdGUgKEh6KSAqLworCWluZm9wYWNrZXQtPnNiWzddID0gKHVuc2lnbmVkIGNoYXIpKHZyci0+bWluX3JlZnJlc2hfaW5fdWh6IC8gMTAwMDAwMCk7CisKKwkvKiBQQjggPSBGcmVlU3luYyBNYXhpbXVtIHJlZnJlc2ggcmF0ZSAoSHopCisJICogTm90ZTogV2Ugc2hvdWxkIG5ldmVyIGdvIGFib3ZlIHRoZSBmaWVsZCByYXRlIG9mIHRoZSBtb2RlIHRpbWluZyBzZXQuCisJICovCisJaW5mb3BhY2tldC0+c2JbOF0gPSAodW5zaWduZWQgY2hhcikodnJyLT5tYXhfcmVmcmVzaF9pbl91aHogLyAxMDAwMDAwKTsKKworCisJLy9GcmVlU3luYyBIRFIKKwlpbmZvcGFja2V0LT5zYls5XSA9IDA7CisJaW5mb3BhY2tldC0+c2JbMTBdID0gMDsKK30KKworc3RhdGljIHZvaWQgYnVpbGRfdnJyX2luZm9wYWNrZXRfZnMyX2RhdGEoZW51bSBjb2xvcl90cmFuc2Zlcl9mdW5jIGFwcF90ZiwKKwkJc3RydWN0IGRjX2luZm9fcGFja2V0ICppbmZvcGFja2V0KQoreworCWlmIChhcHBfdGYgIT0gVFJBTlNGRVJfRlVOQ19VTktOT1dOKSB7CisJCWluZm9wYWNrZXQtPnZhbGlkID0gdHJ1ZTsKKworCQlpbmZvcGFja2V0LT5zYls2XSB8PSAweDA4OyAgLy8gUEI2ID0gW0JpdCAzID0gTmF0aXZlIENvbG9yIEFjdGl2ZV0KKworCQlpZiAoYXBwX3RmID09IFRSQU5TRkVSX0ZVTkNfR0FNTUFfMjIpIHsKKwkJCWluZm9wYWNrZXQtPnNiWzldIHw9IDB4MDQ7ICAvLyBQQjYgPSBbQml0IDIgPSBHYW1tYSAyLjIgRU9URiBBY3RpdmVdCisJCX0KKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGJ1aWxkX3Zycl9pbmZvcGFja2V0X2hlYWRlcl92MShlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCwKQEAgLTY4NCwxMDUgKzY0NSw2IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3Zycl9pbmZvcGFja2V0X2hlYWRlcl92MihlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCwKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGJ1aWxkX3Zycl92dGVtX2luZm9wYWNrZXRfZGF0YShjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCi0JCWNvbnN0IHN0cnVjdCBtb2RfdnJyX3BhcmFtcyAqdnJyLAotCQlzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgKmluZm9wYWNrZXQpCi17Ci0JdW5zaWduZWQgaW50IGZpZWxkUmF0ZUluSHo7Ci0KLQlpZiAodnJyLT5zdGF0ZSA9PSBWUlJfU1RBVEVfQUNUSVZFX1ZBUklBQkxFIHx8Ci0JCQkJdnJyLT5zdGF0ZSA9PSBWUlJfU1RBVEVfQUNUSVZFX0ZJWEVEKSB7Ci0JCXNldEZpZWxkV2l0aE1hc2soJmluZm9wYWNrZXQtPnNiW1ZSUl9WVEVNX01EMF0sIE1BU0tfX1ZSUl9WVEVNX01EMF9fVlJSX0VOLCAxKTsKLQl9IGVsc2UgewotCQlzZXRGaWVsZFdpdGhNYXNrKCZpbmZvcGFja2V0LT5zYltWUlJfVlRFTV9NRDBdLCBNQVNLX19WUlJfVlRFTV9NRDBfX1ZSUl9FTiwgMCk7Ci0JfQotCi0JaWYgKCFzdHJlYW0tPnRpbWluZy52aWMpIHsKLQkJc2V0RmllbGRXaXRoTWFzaygmaW5mb3BhY2tldC0+c2JbVlJSX1ZURU1fTUQxXSwgTUFTS19fVlJSX1ZURU1fTUQxX19CQVNFX1ZGUk9OVCwKLQkJCQlzdHJlYW0tPnRpbWluZy52X2Zyb250X3BvcmNoKTsKLQotCi0JCS8qIFRPRE86IEluIGRhbDIsIHdlIGNoZWNrIG1vZGUgZmxhZ3MgZm9yIGEgcmVkdWNlZCBibGFua2luZyB0aW1pbmcuCi0JCSAqIE5lZWQgYSB3YXkgdG8gcmVsYXkgdGhhdCBpbmZvcm1hdGlvbiB0byB0aGlzIGZ1bmN0aW9uLgotCQkgKiBpZigiUmVkdWNlZEJsYW5raW5nIikKLQkJICogewotCQkgKiAgIHNldEZpZWxkV2l0aE1hc2soJmluZm9wYWNrZXQtPnNiW1ZSUl9WVEVNX01EMl0sIE1BU0tfX1ZSUl9WVEVNX01EMl9fUkIsIDE7Ci0JCSAqIH0KLQkJICovCi0KLQkJLy9UT0RPOiBEQUwyIGRvZXMgRml4UG9pbnQgYW5kIHJvdW5kaW5nLiBIZXJlIHdlIG1pZ2h0IG5lZWQgdG8gYWNjb3VudCBmb3IgdGhhdAotCQlmaWVsZFJhdGVJbkh6ID0gKHN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHogKiAxMDApLwotCQkJKHN0cmVhbS0+dGltaW5nLmhfdG90YWwgKiBzdHJlYW0tPnRpbWluZy52X3RvdGFsKTsKLQotCQlzZXRGaWVsZFdpdGhNYXNrKCZpbmZvcGFja2V0LT5zYltWUlJfVlRFTV9NRDJdLCAgTUFTS19fVlJSX1ZURU1fTUQyX19CQVNFX1JFRlJFU0hfUkFURV85OCwKLQkJCQlmaWVsZFJhdGVJbkh6ID4+IDgpOwotCQlzZXRGaWVsZFdpdGhNYXNrKCZpbmZvcGFja2V0LT5zYltWUlJfVlRFTV9NRDNdLCBNQVNLX19WUlJfVlRFTV9NRDNfX0JBU0VfUkVGUkVTSF9SQVRFXzA3LAotCQkJCWZpZWxkUmF0ZUluSHopOwotCi0JfQotCWluZm9wYWNrZXQtPnZhbGlkID0gdHJ1ZTsKLX0KLQotc3RhdGljIHZvaWQgYnVpbGRfdnJyX2luZm9wYWNrZXRfZGF0YShjb25zdCBzdHJ1Y3QgbW9kX3Zycl9wYXJhbXMgKnZyciwKLQkJc3RydWN0IGRjX2luZm9fcGFja2V0ICppbmZvcGFja2V0KQotewotCS8qIFBCMSA9IDB4MUEgKDI0Yml0IEFNRCBJRUVFIE9VSSAoMHgwMDAwMUEpIC0gQnl0ZSAwKSAqLwotCWluZm9wYWNrZXQtPnNiWzFdID0gMHgxQTsKLQotCS8qIFBCMiA9IDB4MDAgKDI0Yml0IEFNRCBJRUVFIE9VSSAoMHgwMDAwMUEpIC0gQnl0ZSAxKSAqLwotCWluZm9wYWNrZXQtPnNiWzJdID0gMHgwMDsKLQotCS8qIFBCMyA9IDB4MDAgKDI0Yml0IEFNRCBJRUVFIE9VSSAoMHgwMDAwMUEpIC0gQnl0ZSAyKSAqLwotCWluZm9wYWNrZXQtPnNiWzNdID0gMHgwMDsKLQotCS8qIFBCNCA9IFJlc2VydmVkICovCi0KLQkvKiBQQjUgPSBSZXNlcnZlZCAqLwotCi0JLyogUEI2ID0gW0JpdHMgNzozID0gUmVzZXJ2ZWRdICovCi0KLQkvKiBQQjYgPSBbQml0IDAgPSBGcmVlU3luYyBTdXBwb3J0ZWRdICovCi0JaWYgKHZyci0+c3RhdGUgIT0gVlJSX1NUQVRFX1VOU1VQUE9SVEVEKQotCQlpbmZvcGFja2V0LT5zYls2XSB8PSAweDAxOwotCi0JLyogUEI2ID0gW0JpdCAxID0gRnJlZVN5bmMgRW5hYmxlZF0gKi8KLQlpZiAodnJyLT5zdGF0ZSAhPSBWUlJfU1RBVEVfRElTQUJMRUQgJiYKLQkJCXZyci0+c3RhdGUgIT0gVlJSX1NUQVRFX1VOU1VQUE9SVEVEKQotCQlpbmZvcGFja2V0LT5zYls2XSB8PSAweDAyOwotCi0JLyogUEI2ID0gW0JpdCAyID0gRnJlZVN5bmMgQWN0aXZlXSAqLwotCWlmICh2cnItPnN0YXRlID09IFZSUl9TVEFURV9BQ1RJVkVfVkFSSUFCTEUgfHwKLQkJCXZyci0+c3RhdGUgPT0gVlJSX1NUQVRFX0FDVElWRV9GSVhFRCkKLQkJaW5mb3BhY2tldC0+c2JbNl0gfD0gMHgwNDsKLQotCS8qIFBCNyA9IEZyZWVTeW5jIE1pbmltdW0gcmVmcmVzaCByYXRlIChIeikgKi8KLQlpbmZvcGFja2V0LT5zYls3XSA9ICh1bnNpZ25lZCBjaGFyKSh2cnItPm1pbl9yZWZyZXNoX2luX3VoeiAvIDEwMDAwMDApOwotCi0JLyogUEI4ID0gRnJlZVN5bmMgTWF4aW11bSByZWZyZXNoIHJhdGUgKEh6KQotCSAqIE5vdGU6IFdlIHNob3VsZCBuZXZlciBnbyBhYm92ZSB0aGUgZmllbGQgcmF0ZSBvZiB0aGUgbW9kZSB0aW1pbmcgc2V0LgotCSAqLwotCWluZm9wYWNrZXQtPnNiWzhdID0gKHVuc2lnbmVkIGNoYXIpKHZyci0+bWF4X3JlZnJlc2hfaW5fdWh6IC8gMTAwMDAwMCk7Ci0KLQotCS8vRnJlZVN5bmMgSERSCi0JaW5mb3BhY2tldC0+c2JbOV0gPSAwOwotCWluZm9wYWNrZXQtPnNiWzEwXSA9IDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGJ1aWxkX3Zycl9pbmZvcGFja2V0X2ZzMl9kYXRhKGVudW0gY29sb3JfdHJhbnNmZXJfZnVuYyBhcHBfdGYsCi0JCXN0cnVjdCBkY19pbmZvX3BhY2tldCAqaW5mb3BhY2tldCkKLXsKLQlpZiAoYXBwX3RmICE9IFRSQU5TRkVSX0ZVTkNfVU5LTk9XTikgewotCQlpbmZvcGFja2V0LT52YWxpZCA9IHRydWU7Ci0KLQkJaW5mb3BhY2tldC0+c2JbNl0gfD0gMHgwODsgIC8vIFBCNiA9IFtCaXQgMyA9IE5hdGl2ZSBDb2xvciBBY3RpdmVdCi0KLQkJaWYgKGFwcF90ZiA9PSBUUkFOU0ZFUl9GVU5DX0dBTU1BXzIyKSB7Ci0JCQlpbmZvcGFja2V0LT5zYls5XSB8PSAweDA0OyAgLy8gUEI2ID0gW0JpdCAyID0gR2FtbWEgMi4yIEVPVEYgQWN0aXZlXQotCQl9Ci0JfQotfQotCiBzdGF0aWMgdm9pZCBidWlsZF92cnJfaW5mb3BhY2tldF9jaGVja3N1bSh1bnNpZ25lZCBpbnQgKnBheWxvYWRfc2l6ZSwKIAkJc3RydWN0IGRjX2luZm9fcGFja2V0ICppbmZvcGFja2V0KQogewpAQCAtODM1LDIxICs2OTcsNiBAQCBzdGF0aWMgdm9pZCBidWlsZF92cnJfaW5mb3BhY2tldF92MihlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCwKIAlpbmZvcGFja2V0LT52YWxpZCA9IHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGJ1aWxkX3Zycl9pbmZvcGFja2V0X3Z0ZW0oY29uc3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAotCQljb25zdCBzdHJ1Y3QgbW9kX3Zycl9wYXJhbXMgKnZyciwKLQkJc3RydWN0IGRjX2luZm9fcGFja2V0ICppbmZvcGFja2V0KQotewotCS8vVlRFTSBpbmZvIHBhY2tldCBmb3IgSGRtaVZycgotCi0JbWVtc2V0KGluZm9wYWNrZXQsIDAsIHNpemVvZihzdHJ1Y3QgZGNfaW5mb19wYWNrZXQpKTsKLQotCS8vVlRFTSBQYWNrZXQgaXMgc3RydWN0dXJlZCBkaWZmZXJlbnRseQotCWJ1aWxkX3Zycl9pbmZvcGFja2V0X2hlYWRlcl92dGVtKHN0cmVhbS0+c2lnbmFsLCBpbmZvcGFja2V0KTsKLQlidWlsZF92cnJfdnRlbV9pbmZvcGFja2V0X2RhdGEoc3RyZWFtLCB2cnIsIGluZm9wYWNrZXQpOwotCi0JaW5mb3BhY2tldC0+dmFsaWQgPSB0cnVlOwotfQotCiB2b2lkIG1vZF9mcmVlc3luY19idWlsZF92cnJfaW5mb3BhY2tldChzdHJ1Y3QgbW9kX2ZyZWVzeW5jICptb2RfZnJlZXN5bmMsCiAJCWNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKIAkJY29uc3Qgc3RydWN0IG1vZF92cnJfcGFyYW1zICp2cnIsCkBAIC04NjIsMTYgKzcwOSwxMyBAQCB2b2lkIG1vZF9mcmVlc3luY19idWlsZF92cnJfaW5mb3BhY2tldChzdHJ1Y3QgbW9kX2ZyZWVzeW5jICptb2RfZnJlZXN5bmMsCiAJICogQ2hlY2sgaWYgRnJlZXN5bmMgaXMgc3VwcG9ydGVkLiBSZXR1cm4gaWYgZmFsc2UuIElmIHRydWUsCiAJICogc2V0IHRoZSBjb3JyZXNwb25kaW5nIGJpdCBpbiB0aGUgaW5mbyBwYWNrZXQKIAkgKi8KLQlpZiAoIXZyci0+c3VwcG9ydGVkIHx8ICghdnJyLT5zZW5kX2luZm9fZnJhbWUgJiYgcGFja2V0X3R5cGUgIT0gUEFDS0VUX1RZUEVfVlRFTSkpCisJaWYgKCF2cnItPnN1cHBvcnRlZCB8fCAoIXZyci0+c2VuZF9pbmZvX2ZyYW1lKSkKIAkJcmV0dXJuOwogCiAJc3dpdGNoIChwYWNrZXRfdHlwZSkgewogCWNhc2UgUEFDS0VUX1RZUEVfRlMyOgogCQlidWlsZF92cnJfaW5mb3BhY2tldF92MihzdHJlYW0tPnNpZ25hbCwgdnJyLCBhcHBfdGYsIGluZm9wYWNrZXQpOwogCQlicmVhazsKLQljYXNlIFBBQ0tFVF9UWVBFX1ZURU06Ci0JCWJ1aWxkX3Zycl9pbmZvcGFja2V0X3Z0ZW0oc3RyZWFtLCB2cnIsIGluZm9wYWNrZXQpOwotCQlicmVhazsKIAljYXNlIFBBQ0tFVF9UWVBFX1ZSUjoKIAljYXNlIFBBQ0tFVF9UWVBFX0ZTMToKIAlkZWZhdWx0OgpAQCAtODg3LDggKzczMSw4IEBAIHZvaWQgbW9kX2ZyZWVzeW5jX2J1aWxkX3Zycl9wYXJhbXMoc3RydWN0IG1vZF9mcmVlc3luYyAqbW9kX2ZyZWVzeW5jLAogCXN0cnVjdCBjb3JlX2ZyZWVzeW5jICpjb3JlX2ZyZWVzeW5jID0gTlVMTDsKIAl1bnNpZ25lZCBsb25nIGxvbmcgbm9taW5hbF9maWVsZF9yYXRlX2luX3VoeiA9IDA7CiAJdW5zaWduZWQgaW50IHJlZnJlc2hfcmFuZ2UgPSAwOwotCXVuc2lnbmVkIGludCBtaW5fcmVmcmVzaF9pbl91aHogPSAwOwotCXVuc2lnbmVkIGludCBtYXhfcmVmcmVzaF9pbl91aHogPSAwOworCXVuc2lnbmVkIGxvbmcgbG9uZyBtaW5fcmVmcmVzaF9pbl91aHogPSAwOworCXVuc2lnbmVkIGxvbmcgbG9uZyBtYXhfcmVmcmVzaF9pbl91aHogPSAwOwogCiAJaWYgKG1vZF9mcmVlc3luYyA9PSBOVUxMKQogCQlyZXR1cm47CkBAIC05MTUsNyArNzU5LDcgQEAgdm9pZCBtb2RfZnJlZXN5bmNfYnVpbGRfdnJyX3BhcmFtcyhzdHJ1Y3QgbW9kX2ZyZWVzeW5jICptb2RfZnJlZXN5bmMsCiAJCW1pbl9yZWZyZXNoX2luX3VoeiA9IG5vbWluYWxfZmllbGRfcmF0ZV9pbl91aHo7CiAKIAlpZiAoIXZycl9zZXR0aW5nc19yZXF1aXJlX3VwZGF0ZShjb3JlX2ZyZWVzeW5jLAotCQkJaW5fY29uZmlnLCBtaW5fcmVmcmVzaF9pbl91aHosIG1heF9yZWZyZXNoX2luX3VoeiwKKwkJCWluX2NvbmZpZywgKHVuc2lnbmVkIGludCltaW5fcmVmcmVzaF9pbl91aHosICh1bnNpZ25lZCBpbnQpbWF4X3JlZnJlc2hfaW5fdWh6LAogCQkJaW5fb3V0X3ZycikpCiAJCXJldHVybjsKIApAQCAtOTMxLDE1ICs3NzUsMTUgQEAgdm9pZCBtb2RfZnJlZXN5bmNfYnVpbGRfdnJyX3BhcmFtcyhzdHJ1Y3QgbW9kX2ZyZWVzeW5jICptb2RfZnJlZXN5bmMsCiAJCXJldHVybjsKIAogCX0gZWxzZSB7Ci0JCWluX291dF92cnItPm1pbl9yZWZyZXNoX2luX3VoeiA9IG1pbl9yZWZyZXNoX2luX3VoejsKKwkJaW5fb3V0X3Zyci0+bWluX3JlZnJlc2hfaW5fdWh6ID0gKHVuc2lnbmVkIGludCltaW5fcmVmcmVzaF9pbl91aHo7CiAJCWluX291dF92cnItPm1heF9kdXJhdGlvbl9pbl91cyA9CiAJCQkJY2FsY19kdXJhdGlvbl9pbl91c19mcm9tX3JlZnJlc2hfaW5fdWh6KAotCQkJCQkJbWluX3JlZnJlc2hfaW5fdWh6KTsKKwkJCQkJCSh1bnNpZ25lZCBpbnQpbWluX3JlZnJlc2hfaW5fdWh6KTsKIAotCQlpbl9vdXRfdnJyLT5tYXhfcmVmcmVzaF9pbl91aHogPSBtYXhfcmVmcmVzaF9pbl91aHo7CisJCWluX291dF92cnItPm1heF9yZWZyZXNoX2luX3VoeiA9ICh1bnNpZ25lZCBpbnQpbWF4X3JlZnJlc2hfaW5fdWh6OwogCQlpbl9vdXRfdnJyLT5taW5fZHVyYXRpb25faW5fdXMgPQogCQkJCWNhbGNfZHVyYXRpb25faW5fdXNfZnJvbV9yZWZyZXNoX2luX3VoeigKLQkJCQkJCW1heF9yZWZyZXNoX2luX3Voeik7CisJCQkJCQkodW5zaWduZWQgaW50KW1heF9yZWZyZXNoX2luX3Voeik7CiAKIAkJcmVmcmVzaF9yYW5nZSA9IGluX291dF92cnItPm1heF9yZWZyZXNoX2luX3VoeiAtCiAJCQkJaW5fb3V0X3Zyci0+bWluX3JlZnJlc2hfaW5fdWh6OwpAQCAtOTUwLDE3ICs3OTQsMTggQEAgdm9pZCBtb2RfZnJlZXN5bmNfYnVpbGRfdnJyX3BhcmFtcyhzdHJ1Y3QgbW9kX2ZyZWVzeW5jICptb2RfZnJlZXN5bmMsCiAJaW5fb3V0X3Zyci0+Zml4ZWQucmFtcGluZ19hY3RpdmUgPSBpbl9jb25maWctPnJhbXBpbmc7CiAKIAlpbl9vdXRfdnJyLT5idHIuYnRyX2VuYWJsZWQgPSBpbl9jb25maWctPmJ0cjsKKwogCWlmIChpbl9vdXRfdnJyLT5tYXhfcmVmcmVzaF9pbl91aHogPAogCQkJMiAqIGluX291dF92cnItPm1pbl9yZWZyZXNoX2luX3VoeikKIAkJaW5fb3V0X3Zyci0+YnRyLmJ0cl9lbmFibGVkID0gZmFsc2U7CisKIAlpbl9vdXRfdnJyLT5idHIuYnRyX2FjdGl2ZSA9IGZhbHNlOwogCWluX291dF92cnItPmJ0ci5pbnNlcnRlZF9kdXJhdGlvbl9pbl91cyA9IDA7CiAJaW5fb3V0X3Zyci0+YnRyLmZyYW1lc190b19pbnNlcnQgPSAwOwogCWluX291dF92cnItPmJ0ci5mcmFtZV9jb3VudGVyID0gMDsKIAlpbl9vdXRfdnJyLT5idHIubWlkX3BvaW50X2luX3VzID0KLQkJCWluX291dF92cnItPm1pbl9kdXJhdGlvbl9pbl91cyArCi0JCQkJKGluX291dF92cnItPm1heF9kdXJhdGlvbl9pbl91cyAtCi0JCQkJaW5fb3V0X3Zyci0+bWluX2R1cmF0aW9uX2luX3VzKSAvIDI7CisJCQkJKGluX291dF92cnItPm1pbl9kdXJhdGlvbl9pbl91cyArCisJCQkJIGluX291dF92cnItPm1heF9kdXJhdGlvbl9pbl91cykgLyAyOwogCiAJaWYgKGluX291dF92cnItPnN0YXRlID09IFZSUl9TVEFURV9VTlNVUFBPUlRFRCkgewogCQlpbl9vdXRfdnJyLT5hZGp1c3Qudl90b3RhbF9taW4gPSBzdHJlYW0tPnRpbWluZy52X3RvdGFsOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvaW5jL21vZF9mcmVlc3luYy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvaW5jL21vZF9mcmVlc3luYy5oCmluZGV4IGRjZWY4NTkuLmRjMTg3ODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2luYy9tb2RfZnJlZXN5bmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9pbmMvbW9kX2ZyZWVzeW5jLmgKQEAgLTE3Myw0ICsxNzMsNiBAQCBib29sIG1vZF9mcmVlc3luY19pc192YWxpZF9yYW5nZShzdHJ1Y3QgbW9kX2ZyZWVzeW5jICptb2RfZnJlZXN5bmMsCiAJCXVpbnQzMl90IG1pbl9yZWZyZXNoX3JlcXVlc3RfaW5fdWh6LAogCQl1aW50MzJfdCBtYXhfcmVmcmVzaF9yZXF1ZXN0X2luX3Voeik7CiAKKworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2luYy9tb2RfaW5mb19wYWNrZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2luYy9tb2RfaW5mb19wYWNrZXQuaAppbmRleCA1YjFjOWE0Li5kOTMwYmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9pbmMvbW9kX2luZm9fcGFja2V0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvaW5jL21vZF9pbmZvX3BhY2tldC5oCkBAIC0yNywxMCArMjcsMTAgQEAKICNkZWZpbmUgTU9EX0lORk9fUEFDS0VUX0hfCiAKICNpbmNsdWRlICJtb2Rfc2hhcmVkLmgiCi0KIC8vRm9yd2FyZCBEZWNsYXJhdGlvbnMKIHN0cnVjdCBkY19zdHJlYW1fc3RhdGU7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQ7CitzdHJ1Y3QgbW9kX3Zycl9wYXJhbXM7CiAKIHZvaWQgbW9kX2J1aWxkX3ZzY19pbmZvcGFja2V0KGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKIAkJc3RydWN0IGRjX2luZm9fcGFja2V0ICppbmZvX3BhY2tldCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9pbmZvX3BhY2tldC9pbmZvX3BhY2tldC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvaW5mb19wYWNrZXQvaW5mb19wYWNrZXQuYwppbmRleCBiYzEzYzU1Li5kODg1ZDY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9pbmZvX3BhY2tldC9pbmZvX3BhY2tldC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2luZm9fcGFja2V0L2luZm9fcGFja2V0LmMKQEAgLTI3LDkgKzI3LDc4IEBACiAjaW5jbHVkZSAiY29yZV90eXBlcy5oIgogI2luY2x1ZGUgImRjX3R5cGVzLmgiCiAjaW5jbHVkZSAibW9kX3NoYXJlZC5oIgorI2luY2x1ZGUgIm1vZF9mcmVlc3luYy5oIgorI2luY2x1ZGUgImRjLmgiCiAKICNkZWZpbmUgSERNSV9JTkZPRlJBTUVfVFlQRV9WRU5ET1IgMHg4MQogCisvLyBWVEVNIEJ5dGUgT2Zmc2V0CisjZGVmaW5lIFZURU1fUEIwCQkwCisjZGVmaW5lIFZURU1fUEIxCQkxCisjZGVmaW5lIFZURU1fUEIyCQkyCisjZGVmaW5lIFZURU1fUEIzCQkzCisjZGVmaW5lIFZURU1fUEI0CQk0CisjZGVmaW5lIFZURU1fUEI1CQk1CisjZGVmaW5lIFZURU1fUEI2CQk2CisKKyNkZWZpbmUgVlRFTV9NRDAJCTcKKyNkZWZpbmUgVlRFTV9NRDEJCTgKKyNkZWZpbmUgVlRFTV9NRDIJCTkKKyNkZWZpbmUgVlRFTV9NRDMJCTEwCisKKworLy8gVlRFTSBCeXRlIE1hc2tzCisvL1BCMAorI2RlZmluZSBNQVNLX1ZURU1fUEIwX19SRVNFUlZFRDAgIDB4MDEKKyNkZWZpbmUgTUFTS19WVEVNX1BCMF9fU1lOQyAgICAgICAweDAyCisjZGVmaW5lIE1BU0tfVlRFTV9QQjBfX1ZGUiAgICAgICAgMHgwNAorI2RlZmluZSBNQVNLX1ZURU1fUEIwX19BRlIgICAgICAgIDB4MDgKKyNkZWZpbmUgTUFTS19WVEVNX1BCMF9fRFNfVFlQRSAgICAweDMwCisJLy8wOiBQZXJpb2RpYyBwc2V1ZG8tc3RhdGljIEVNIERhdGEgU2V0CisJLy8xOiBQZXJpb2RpYyBkeW5hbWljIEVNIERhdGEgU2V0CisJLy8yOiBVbmlxdWUgRU0gRGF0YSBTZXQKKwkvLzM6IFJlc2VydmVkCisjZGVmaW5lIE1BU0tfVlRFTV9QQjBfX0VORCAgICAgICAgMHg0MAorI2RlZmluZSBNQVNLX1ZURU1fUEIwX19ORVcgICAgICAgIDB4ODAKKworLy9QQjEKKyNkZWZpbmUgTUFTS19WVEVNX1BCMV9fUkVTRVJWRUQxIDB4RkYKKworLy9QQjIKKyNkZWZpbmUgTUFTS19WVEVNX1BCMl9fT1JHQU5JWkFUSU9OX0lEIDB4RkYKKwkvLzA6IFRoaXMgaXMgYSBWZW5kb3IgU3BlY2lmaWMgRU0gRGF0YSBTZXQKKwkvLzE6IFRoaXMgRU0gRGF0YSBTZXQgaXMgZGVmaW5lZCBieSBUaGlzIFNwZWNpZmljYXRpb24gKEhETUkgMi4xIHIxMDIuY2xlYW4pCisJLy8yOiBUaGlzIEVNIERhdGEgU2V0IGlzIGRlZmluZWQgYnkgQ1RBLTg2MS1HCisJLy8zOiBUaGlzIEVNIERhdGEgU2V0IGlzIGRlZmluZWQgYnkgVkVTQQorLy9QQjMKKyNkZWZpbmUgTUFTS19WVEVNX1BCM19fREFUQV9TRVRfVEFHX01TQiAgICAweEZGCisvL1BCNAorI2RlZmluZSBNQVNLX1ZURU1fUEI0X19EQVRBX1NFVF9UQUdfTFNCICAgIDB4RkYKKy8vUEI1CisjZGVmaW5lIE1BU0tfVlRFTV9QQjVfX0RBVEFfU0VUX0xFTkdUSF9NU0IgMHhGRgorLy9QQjYKKyNkZWZpbmUgTUFTS19WVEVNX1BCNl9fREFUQV9TRVRfTEVOR1RIX0xTQiAweEZGCisKKworCisvL1BCNy0yNyAoMjAgYnl0ZXMpOgorLy9QQjcgPSBNRDAKKyNkZWZpbmUgTUFTS19WVEVNX01EMF9fVlJSX0VOICAgICAgICAgMHgwMQorI2RlZmluZSBNQVNLX1ZURU1fTUQwX19NX0NPTlNUICAgICAgICAweDAyCisjZGVmaW5lIE1BU0tfVlRFTV9NRDBfX1JFU0VSVkVEMiAgICAgIDB4MEMKKyNkZWZpbmUgTUFTS19WVEVNX01EMF9fRlZBX0ZBQ1RPUl9NMSAgMHhGMAorCisvL01EMQorI2RlZmluZSBNQVNLX1ZURU1fTUQxX19CQVNFX1ZGUk9OVCAgICAweEZGCisKKy8vTUQyCisjZGVmaW5lIE1BU0tfVlRFTV9NRDJfX0JBU0VfUkVGUkVTSF9SQVRFXzk4ICAweDAzCisjZGVmaW5lIE1BU0tfVlRFTV9NRDJfX1JCICAgICAgICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIE1BU0tfVlRFTV9NRDJfX1JFU0VSVkVEMyAgICAgICAgICAgICAweEY4CisKKy8vTUQzCisjZGVmaW5lIE1BU0tfVlRFTV9NRDNfX0JBU0VfUkVGUkVTSF9SQVRFXzA3ICAweEZGCisKIGVudW0gQ29sb3JpbWV0cnlSR0JEUCB7CiAJQ29sb3JpbWV0cnlSR0JfRFBfc1JHQiAgICAgICAgICAgICAgID0gMCwKIAlDb2xvcmltZXRyeVJHQl9EUF9BZG9iZVJHQiAgICAgICAgICAgPSAzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvcG93ZXIvcG93ZXJfaGVscGVycy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvcG93ZXIvcG93ZXJfaGVscGVycy5jCmluZGV4IGIzODEwYjguLjA1ZTJiZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL3Bvd2VyL3Bvd2VyX2hlbHBlcnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9wb3dlci9wb3dlcl9oZWxwZXJzLmMKQEAgLTY2LDYgKzY2LDM5IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFibV9jb25maWdbYWJtX2RlZmluZXNfbWF4X2NvbmZpZ11bYWJtX2RlZmluZXNfbWF4X2xlCiB7ICAgICAgIDMsICAgICAgICAgICAgICA2LCAgICAgICAgICAgICAgMTAsICAgICAgICAgICAgIDEyICAgICAgfSwJLyogQWx0ICMzICAtIFN1cGVyIGFnZ3Jlc3NpdmVuZXNzICovCiB9OwogCitzdHJ1Y3QgYWJtX3BhcmFtZXRlcnMgeworCXVuc2lnbmVkIGNoYXIgbWluX3JlZHVjdGlvbjsKKwl1bnNpZ25lZCBjaGFyIG1heF9yZWR1Y3Rpb247CisJdW5zaWduZWQgY2hhciBicmlnaHRfcG9zX2dhaW47CisJdW5zaWduZWQgY2hhciBkYXJrX3Bvc19nYWluOworCXVuc2lnbmVkIGNoYXIgYnJpZ2h0bmVzc19nYWluOworCXVuc2lnbmVkIGNoYXIgY29udHJhc3RfZmFjdG9yOworCXVuc2lnbmVkIGNoYXIgZGV2aWF0aW9uX2dhaW47CisJdW5zaWduZWQgY2hhciBtaW5fa25lZTsKKwl1bnNpZ25lZCBjaGFyIG1heF9rbmVlOworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBhYm1fcGFyYW1ldGVycyBhYm1fc2V0dGluZ3NfY29uZmlnMFthYm1fZGVmaW5lc19tYXhfbGV2ZWxdID0geworLy8gIG1pbl9yZWQgIG1heF9yZWQgIGJyaWdodF9wb3MgIGRhcmtfcG9zICBicmlnaHRuZXNzX2dhaW4gIGNvbnRyYXN0ICBkZXZpYXRpb24gIG1pbl9rbmVlICBtYXhfa25lZQorCXsweGZmLCAgIDB4YmYsICAgIDB4MjAsICAgICAgIDB4MDAsICAgICAweGZmLCAgICAgICAgICAgIDB4OTksICAgICAweGIzLCAgICAgIDB4NDAsICAgICAweEUwfSwKKwl7MHhmZiwgICAweDg1LCAgICAweDIwLCAgICAgICAweDAwLCAgICAgMHhmZiwgICAgICAgICAgICAweDkwLCAgICAgMHhhOCwgICAgICAweDQwLCAgICAgMHhFMH0sCisJezB4ZmYsICAgMHg0MCwgICAgMHgyMCwgICAgICAgMHgwMCwgICAgIDB4ZmYsICAgICAgICAgICAgMHg5MCwgICAgIDB4NjgsICAgICAgMHg0MCwgICAgIDB4RTB9LAorCXsweDgyLCAgIDB4NGQsICAgIDB4MjAsICAgICAgIDB4MDAsICAgICAweDAwLCAgICAgICAgICAgIDB4OTAsICAgICAweGIzLCAgICAgIDB4NzAsICAgICAweDcwfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWJtX3BhcmFtZXRlcnMgYWJtX3NldHRpbmdzX2NvbmZpZzFbYWJtX2RlZmluZXNfbWF4X2xldmVsXSA9IHsKKy8vICBtaW5fcmVkICBtYXhfcmVkICBicmlnaHRfcG9zICBkYXJrX3BvcyAgYnJpZ2h0bmVzc19nYWluICBjb250cmFzdCAgZGV2aWF0aW9uICBtaW5fa25lZSAgbWF4X2tuZWUKKwl7MHhmMCwgICAweGQ5LCAgICAweDIwLCAgICAgICAweDAwLCAgICAgMHgwMCwgICAgICAgICAgICAweGE4LCAgICAgMHhiMywgICAgICAweDcwLCAgICAgMHg3MH0sCisJezB4Y2QsICAgMHhhNSwgICAgMHgyMCwgICAgICAgMHgwMCwgICAgIDB4MDAsICAgICAgICAgICAgMHhhOCwgICAgIDB4YjMsICAgICAgMHg3MCwgICAgIDB4NzB9LAorCXsweDk5LCAgIDB4NjUsICAgIDB4MjAsICAgICAgIDB4MDAsICAgICAweDAwLCAgICAgICAgICAgIDB4YTgsICAgICAweGIzLCAgICAgIDB4NzAsICAgICAweDcwfSwKKwl7MHg4MiwgICAweDRkLCAgICAweDIwLCAgICAgICAweDAwLCAgICAgMHgwMCwgICAgICAgICAgICAweGE4LCAgICAgMHhiMywgICAgICAweDcwLCAgICAgMHg3MH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGFibV9wYXJhbWV0ZXJzICogY29uc3QgYWJtX3NldHRpbmdzW10gPSB7CisJYWJtX3NldHRpbmdzX2NvbmZpZzAsCisJYWJtX3NldHRpbmdzX2NvbmZpZzEsCit9OworCiAjZGVmaW5lIE5VTV9BTUJJX0xFVkVMICAgIDUKICNkZWZpbmUgTlVNX0FHR1JfTEVWRUwgICAgNAogI2RlZmluZSBOVU1fUE9XRVJfRk5fU0VHUyA4CkBAIC0xMzEsMTEgKzE2NCwxMyBAQCBzdHJ1Y3QgaXJhbV90YWJsZV92XzJfMiB7CiAJdWludDhfdCBtYXhfcmVkdWN0aW9uW05VTV9BTUJJX0xFVkVMXVtOVU1fQUdHUl9MRVZFTF07CQkvKiAweDE2IFUwLjggKi8KIAl1aW50OF90IGJyaWdodF9wb3NfZ2FpbltOVU1fQU1CSV9MRVZFTF1bTlVNX0FHR1JfTEVWRUxdOwkvKiAweDJhIFUyLjYgKi8KIAl1aW50OF90IGRhcmtfcG9zX2dhaW5bTlVNX0FNQklfTEVWRUxdW05VTV9BR0dSX0xFVkVMXTsJCS8qIDB4M2UgVTIuNiAqLwotCXVpbnQ4X3QgaHlicmlkRmFjdG9yW05VTV9BR0dSX0xFVkVMXTsJCQkJCQkvKiAweDUyIFUwLjggKi8KLQl1aW50OF90IGNvbnRyYXN0RmFjdG9yW05VTV9BR0dSX0xFVkVMXTsJCQkJCQkvKiAweDU2IFUwLjggKi8KKwl1aW50OF90IGh5YnJpZF9mYWN0b3JbTlVNX0FHR1JfTEVWRUxdOwkJCQkJCS8qIDB4NTIgVTAuOCAqLworCXVpbnQ4X3QgY29udHJhc3RfZmFjdG9yW05VTV9BR0dSX0xFVkVMXTsJCQkJCS8qIDB4NTYgVTAuOCAqLwogCXVpbnQ4X3QgZGV2aWF0aW9uX2dhaW5bTlVNX0FHR1JfTEVWRUxdOwkJCQkJCS8qIDB4NWEgVTAuOCAqLwogCXVpbnQ4X3QgaWlyX2N1cnZlW05VTV9BTUJJX0xFVkVMXTsJCQkJCQkJLyogMHg1ZSBVMC44ICovCi0JdWludDhfdCBwYWRbMjldOwkJCQkJCQkJCQkJLyogMHg2MyBVMC44ICovCisJdWludDhfdCBtaW5fa25lZVtOVU1fQUdHUl9MRVZFTF07CQkJCQkJCS8qIDB4NjMgVTAuOCAqLworCXVpbnQ4X3QgbWF4X2tuZWVbTlVNX0FHR1JfTEVWRUxdOwkJCQkJCQkvKiAweDY3IFUwLjggKi8KKwl1aW50OF90IHBhZFsyMV07CQkJCQkJCQkJCQkvKiAweDZiIFUwLjggKi8KIAogCS8qIHBhcmFtZXRlcnMgZm9yIGNyZ2IgY29udmVyc2lvbiAqLwogCXVpbnQxNl90IGNyZ2JfdGhyZXNoW05VTV9QT1dFUl9GTl9TRUdTXTsJCQkJCS8qIDB4ODAgVTMuMTMgKi8KQEAgLTUwMSwxNSArNTM2LDcyIEBAIHZvaWQgZmlsbF9pcmFtX3ZfMl8yKHN0cnVjdCBpcmFtX3RhYmxlX3ZfMl8yICpyYW1fdGFibGUsIHN0cnVjdCBkbWN1X2lyYW1fcGFyYW1lCiAJcmFtX3RhYmxlLT5kYXJrX3Bvc19nYWluWzRdWzJdID0gMHgwMDsKIAlyYW1fdGFibGUtPmRhcmtfcG9zX2dhaW5bNF1bM10gPSAweDAwOwogCi0JcmFtX3RhYmxlLT5oeWJyaWRGYWN0b3JbMF0gPSAweGZmOwotCXJhbV90YWJsZS0+aHlicmlkRmFjdG9yWzFdID0gMHhmZjsKLQlyYW1fdGFibGUtPmh5YnJpZEZhY3RvclsyXSA9IDB4ZmY7Ci0JcmFtX3RhYmxlLT5oeWJyaWRGYWN0b3JbM10gPSAweGMwOworCXJhbV90YWJsZS0+aHlicmlkX2ZhY3RvclswXSA9IDB4ZmY7CisJcmFtX3RhYmxlLT5oeWJyaWRfZmFjdG9yWzFdID0gMHhmZjsKKwlyYW1fdGFibGUtPmh5YnJpZF9mYWN0b3JbMl0gPSAweGZmOworCXJhbV90YWJsZS0+aHlicmlkX2ZhY3RvclszXSA9IDB4YzA7CiAKLQlyYW1fdGFibGUtPmNvbnRyYXN0RmFjdG9yWzBdID0gMHg5OTsKLQlyYW1fdGFibGUtPmNvbnRyYXN0RmFjdG9yWzFdID0gMHg5OTsKLQlyYW1fdGFibGUtPmNvbnRyYXN0RmFjdG9yWzJdID0gMHg5MDsKLQlyYW1fdGFibGUtPmNvbnRyYXN0RmFjdG9yWzNdID0gMHg4MDsKKwlyYW1fdGFibGUtPmNvbnRyYXN0X2ZhY3RvclswXSA9IDB4OTk7CisJcmFtX3RhYmxlLT5jb250cmFzdF9mYWN0b3JbMV0gPSAweDk5OworCXJhbV90YWJsZS0+Y29udHJhc3RfZmFjdG9yWzJdID0gMHg5MDsKKwlyYW1fdGFibGUtPmNvbnRyYXN0X2ZhY3RvclszXSA9IDB4ODA7CisKKwlyYW1fdGFibGUtPmlpcl9jdXJ2ZVswXSA9IDB4NjU7CisJcmFtX3RhYmxlLT5paXJfY3VydmVbMV0gPSAweDY1OworCXJhbV90YWJsZS0+aWlyX2N1cnZlWzJdID0gMHg2NTsKKwlyYW1fdGFibGUtPmlpcl9jdXJ2ZVszXSA9IDB4NjU7CisJcmFtX3RhYmxlLT5paXJfY3VydmVbNF0gPSAweDY1OworCisJLy9HYW1tYSAyLjIKKwlyYW1fdGFibGUtPmNyZ2JfdGhyZXNoWzBdID0gY3B1X3RvX2JlMTYoMHgxMjdjKTsKKwlyYW1fdGFibGUtPmNyZ2JfdGhyZXNoWzFdID0gY3B1X3RvX2JlMTYoMHgxNTFiKTsKKwlyYW1fdGFibGUtPmNyZ2JfdGhyZXNoWzJdID0gY3B1X3RvX2JlMTYoMHgxN2Q1KTsKKwlyYW1fdGFibGUtPmNyZ2JfdGhyZXNoWzNdID0gY3B1X3RvX2JlMTYoMHgxYTU2KTsKKwlyYW1fdGFibGUtPmNyZ2JfdGhyZXNoWzRdID0gY3B1X3RvX2JlMTYoMHgxYzgzKTsKKwlyYW1fdGFibGUtPmNyZ2JfdGhyZXNoWzVdID0gY3B1X3RvX2JlMTYoMHgxZTcyKTsKKwlyYW1fdGFibGUtPmNyZ2JfdGhyZXNoWzZdID0gY3B1X3RvX2JlMTYoMHgyMGYwKTsKKwlyYW1fdGFibGUtPmNyZ2JfdGhyZXNoWzddID0gY3B1X3RvX2JlMTYoMHgyMzJiKTsKKwlyYW1fdGFibGUtPmNyZ2Jfb2Zmc2V0WzBdID0gY3B1X3RvX2JlMTYoMHgyOTk5KTsKKwlyYW1fdGFibGUtPmNyZ2Jfb2Zmc2V0WzFdID0gY3B1X3RvX2JlMTYoMHgzOTk5KTsKKwlyYW1fdGFibGUtPmNyZ2Jfb2Zmc2V0WzJdID0gY3B1X3RvX2JlMTYoMHg0NjY2KTsKKwlyYW1fdGFibGUtPmNyZ2Jfb2Zmc2V0WzNdID0gY3B1X3RvX2JlMTYoMHg1OTk5KTsKKwlyYW1fdGFibGUtPmNyZ2Jfb2Zmc2V0WzRdID0gY3B1X3RvX2JlMTYoMHg2MzMzKTsKKwlyYW1fdGFibGUtPmNyZ2Jfb2Zmc2V0WzVdID0gY3B1X3RvX2JlMTYoMHg3ODAwKTsKKwlyYW1fdGFibGUtPmNyZ2Jfb2Zmc2V0WzZdID0gY3B1X3RvX2JlMTYoMHg4YzAwKTsKKwlyYW1fdGFibGUtPmNyZ2Jfb2Zmc2V0WzddID0gY3B1X3RvX2JlMTYoMHhhMDAwKTsKKwlyYW1fdGFibGUtPmNyZ2Jfc2xvcGVbMF0gID0gY3B1X3RvX2JlMTYoMHgzNjA5KTsKKwlyYW1fdGFibGUtPmNyZ2Jfc2xvcGVbMV0gID0gY3B1X3RvX2JlMTYoMHgyZGZhKTsKKwlyYW1fdGFibGUtPmNyZ2Jfc2xvcGVbMl0gID0gY3B1X3RvX2JlMTYoMHgyN2VhKTsKKwlyYW1fdGFibGUtPmNyZ2Jfc2xvcGVbM10gID0gY3B1X3RvX2JlMTYoMHgyMzVkKTsKKwlyYW1fdGFibGUtPmNyZ2Jfc2xvcGVbNF0gID0gY3B1X3RvX2JlMTYoMHgyMDQyKTsKKwlyYW1fdGFibGUtPmNyZ2Jfc2xvcGVbNV0gID0gY3B1X3RvX2JlMTYoMHgxZGMzKTsKKwlyYW1fdGFibGUtPmNyZ2Jfc2xvcGVbNl0gID0gY3B1X3RvX2JlMTYoMHgxYjFhKTsKKwlyYW1fdGFibGUtPmNyZ2Jfc2xvcGVbN10gID0gY3B1X3RvX2JlMTYoMHgxOTEwKTsKKworCWZpbGxfYmFja2xpZ2h0X3RyYW5zZm9ybV90YWJsZV92XzJfMigKKwkJCXBhcmFtcywgcmFtX3RhYmxlKTsKK30KKwordm9pZCBmaWxsX2lyYW1fdl8yXzMoc3RydWN0IGlyYW1fdGFibGVfdl8yXzIgKnJhbV90YWJsZSwgc3RydWN0IGRtY3VfaXJhbV9wYXJhbWV0ZXJzIHBhcmFtcykKK3sKKwl1bnNpZ25lZCBpbnQgaSwgajsKKwl1bnNpZ25lZCBpbnQgc2V0ID0gcGFyYW1zLnNldDsKKworCXJhbV90YWJsZS0+ZmxhZ3MgPSAweDA7CisJZm9yIChpID0gMDsgaSA8IE5VTV9BR0dSX0xFVkVMOyBpKyspIHsKKwkJcmFtX3RhYmxlLT5oeWJyaWRfZmFjdG9yW2ldID0gYWJtX3NldHRpbmdzW3NldF1baV0uYnJpZ2h0bmVzc19nYWluOworCQlyYW1fdGFibGUtPmNvbnRyYXN0X2ZhY3RvcltpXSA9IGFibV9zZXR0aW5nc1tzZXRdW2ldLmNvbnRyYXN0X2ZhY3RvcjsKKwkJcmFtX3RhYmxlLT5kZXZpYXRpb25fZ2FpbltpXSA9IGFibV9zZXR0aW5nc1tzZXRdW2ldLmRldmlhdGlvbl9nYWluOworCQlyYW1fdGFibGUtPm1pbl9rbmVlW2ldID0gYWJtX3NldHRpbmdzW3NldF1baV0ubWluX2tuZWU7CisJCXJhbV90YWJsZS0+bWF4X2tuZWVbaV0gPSBhYm1fc2V0dGluZ3Nbc2V0XVtpXS5tYXhfa25lZTsKKworCQlmb3IgKGogPSAwOyBqIDwgTlVNX0FNQklfTEVWRUw7IGorKykgeworCQkJcmFtX3RhYmxlLT5taW5fcmVkdWN0aW9uW2pdW2ldID0gYWJtX3NldHRpbmdzW3NldF1baV0ubWluX3JlZHVjdGlvbjsKKwkJCXJhbV90YWJsZS0+bWF4X3JlZHVjdGlvbltqXVtpXSA9IGFibV9zZXR0aW5nc1tzZXRdW2ldLm1heF9yZWR1Y3Rpb247CisJCQlyYW1fdGFibGUtPmJyaWdodF9wb3NfZ2FpbltqXVtpXSA9IGFibV9zZXR0aW5nc1tzZXRdW2ldLmJyaWdodF9wb3NfZ2FpbjsKKwkJCXJhbV90YWJsZS0+ZGFya19wb3NfZ2FpbltqXVtpXSA9IGFibV9zZXR0aW5nc1tzZXRdW2ldLmRhcmtfcG9zX2dhaW47CisJCX0KKwl9CiAKIAlyYW1fdGFibGUtPmlpcl9jdXJ2ZVswXSA9IDB4NjU7CiAJcmFtX3RhYmxlLT5paXJfY3VydmVbMV0gPSAweDY1OwpAQCAtNTYxLDcgKzY1MywxMiBAQCBib29sIGRtY3VfbG9hZF9pcmFtKHN0cnVjdCBkbWN1ICpkbWN1LAogCiAJbWVtc2V0KCZyYW1fdGFibGUsIDAsIHNpemVvZihyYW1fdGFibGUpKTsKIAotCWlmIChkbWN1LT5kbWN1X3ZlcnNpb24uYWJtX3ZlcnNpb24gPT0gMHgyMikgeworCWlmIChkbWN1LT5kbWN1X3ZlcnNpb24uYWJtX3ZlcnNpb24gPT0gMHgyMykgeworCQlmaWxsX2lyYW1fdl8yXzMoKHN0cnVjdCBpcmFtX3RhYmxlX3ZfMl8yICopcmFtX3RhYmxlLCBwYXJhbXMpOworCisJCXJlc3VsdCA9IGRtY3UtPmZ1bmNzLT5sb2FkX2lyYW0oCisJCQkJZG1jdSwgMCwgKGNoYXIgKikoJnJhbV90YWJsZSksIElSQU1fUkVTRVJWRV9BUkVBX1NUQVJUX1YyXzIpOworCX0gZWxzZSBpZiAoZG1jdS0+ZG1jdV92ZXJzaW9uLmFibV92ZXJzaW9uID09IDB4MjIpIHsKIAkJZmlsbF9pcmFtX3ZfMl8yKChzdHJ1Y3QgaXJhbV90YWJsZV92XzJfMiAqKXJhbV90YWJsZSwgcGFyYW1zKTsKIAogCQlyZXN1bHQgPSBkbWN1LT5mdW5jcy0+bG9hZF9pcmFtKApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FtZF9zaGFyZWQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hbWRfc2hhcmVkLmgKaW5kZXggYTBhNzIxMS4uODg4OWFhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FtZF9zaGFyZWQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYW1kX3NoYXJlZC5oCkBAIC0xNDIsNiArMTQyLDcgQEAgZW51bSBQUF9GRUFUVVJFX01BU0sgewogCiBlbnVtIERDX0ZFQVRVUkVfTUFTSyB7CiAJRENfRkJDX01BU0sgPSAweDEsCisJRENfTVVMVElfTU9OX1BQX01DTEtfU1dJVENIX01BU0sgPSAweDIsCiB9OwogCiBlbnVtIGFtZF9kcG1fZm9yY2VkX2xldmVsOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FyY3RfaXBfb2Zmc2V0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXJjdF9pcF9vZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzc5MWE5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FyY3RfaXBfb2Zmc2V0LmgKQEAgLTAsMCArMSwxNjUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9hcmN0X2lwX29mZnNldF9IRUFERVIKKyNkZWZpbmUgX2FyY3RfaXBfb2Zmc2V0X0hFQURFUgorCisjZGVmaW5lIE1BWF9JTlNUQU5DRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgKKyNkZWZpbmUgTUFYX1NFR01FTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYKKworCitzdHJ1Y3QgSVBfQkFTRV9JTlNUQU5DRQoreworICAgIHVuc2lnbmVkIGludCBzZWdtZW50W01BWF9TRUdNRU5UXTsKK307CisKK3N0cnVjdCBJUF9CQVNFCit7CisgICAgc3RydWN0IElQX0JBU0VfSU5TVEFOQ0UgaW5zdGFuY2VbTUFYX0lOU1RBTkNFXTsKK307CisKKworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIEFUSFVCX0JBU0UgICAgICAgICAgICA9eyB7IHsgeyAweDAwMDAwQzIwLCAweDAwMDEyNDYwLCAweDAwNDA4QzAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIENMS19CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAxMjBDMCwgMHgwMDAxNkMwMCwgMHgwMDQwMTgwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwMTIwRTAsIDB4MDAwMTZFMDAsIDB4MDA0MDFDMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDEyMTAwLCAweDAwMDE3MDAwLCAweDAwNDAyMDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDAxMjEyMCwgMHgwMDAxNzIwMCwgMHgwMDQwMjQwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwMTM2QzAsIDB4MDAwMUIwMDAsIDB4MDA0MkQ4MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDEzNzIwLCAweDAwMDFCMjAwLCAweDAwNDJFNDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDAxMjVFMCwgMHgwMDAxN0UwMCwgMHgwMDQwQkMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBERl9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAwNzAwMCwgMHgwMDAxMjVDMCwgMHgwMDQwQjgwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBGVVNFX0JBU0UgICAgICAgICAgICA9eyB7IHsgeyAweDAwMDEyMEEwLCAweDAwMDE3NDAwLCAweDAwNDAxNDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIEdDX0JBU0UgICAgICAgICAgICA9eyB7IHsgeyAweDAwMDAyMDAwLCAweDAwMDBBMDAwLCAweDAwMDEyMTYwLCAweDAwNDAyQzAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIEhEUF9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAwMEYyMCwgMHgwMDAxMjUyMCwgMHgwMDQwQTQwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBNTUhVQl9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAxMjQ0MCwgMHgwMDAxQTAwMCwgMHgwMDQwODgwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBNUDBfQkFTRSAgICAgICAgICAgID17IHsgeyB7IDB4MDAwMTYwMDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgTVAxX0JBU0UgICAgICAgICAgICA9eyB7IHsgeyAweDAwMDE2MDAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE5CSUYwX0JBU0UgICAgICAgICAgICA9eyB7IHsgeyAweDAwMDAwMDAwLCAweDAwMDAwMDE0LCAweDAwMDAwRDIwLCAweDAwMDEwNDAwLCAweDAwMDEyRDgwLCAweDAwNDFCMDAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE9TU1NZU19CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAwMTBBMCwgMHgwMDAxMjUwMCwgMHgwMDQwQTAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBQQ0lFMF9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAxMjhDMCwgMHgwMDQxMTgwMCwgMHgwNDQ0MDAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BMF9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAwMTI2MCwgMHgwMDAxMjU0MCwgMHgwMDQwQTgwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BMV9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAwMTg2MCwgMHgwMDAxMjU2MCwgMHgwMDQwQUMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BMl9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAxMzc2MCwgMHgwMDAxRTAwMCwgMHgwMDQyRUMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BM19CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAxMzc4MCwgMHgwMDAxRTQwMCwgMHgwMDQyRjAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BNF9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAxMzdBMCwgMHgwMDAxRTgwMCwgMHgwMDQyRjQwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BNV9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAxMzdDMCwgMHgwMDAxRUMwMCwgMHgwMDQyRjgwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BNl9CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAxMzdFMCwgMHgwMDAxRjAwMCwgMHgwMDQyRkMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFNETUE3X0JBU0UgICAgICAgICAgICA9eyB7IHsgeyAweDAwMDEzODAwLCAweDAwMDFGNDAwLCAweDAwNDMwMDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFNNVUlPX0JBU0UgICAgICAgICAgICA9eyB7IHsgeyAweDAwMDE2ODAwLCAweDAwMDE2QTAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBUSE1fQkFTRSAgICAgICAgICAgID17IHsgeyB7IDB4MDAwMTY2MDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFVNQ19CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAxMzJDMCwgMHgwMDAxNDAwMCwgMHgwMDQyNTgwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwMTMyRTAsIDB4MDAwNTQwMDAsIDB4MDA0MjVDMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDEzMzAwLCAweDAwMDk0MDAwLCAweDAwNDI2MDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDAxMzMyMCwgMHgwMDBENDAwMCwgMHgwMDQyNjQwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwMTMzNDAsIDB4MDAxMTQwMDAsIDB4MDA0MjY4MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDEzMzYwLCAweDAwMTU0MDAwLCAweDAwNDI2QzAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDAxMzM4MCwgMHgwMDE5NDAwMCwgMHgwMDQyNzAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwMTMzQTAsIDB4MDAxRDQwMDAsIDB4MDA0Mjc0MDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBVVkRfQkFTRSAgICAgICAgICAgID17IHsgeyB7IDB4MDAwMDc4MDAsIDB4MDAwMDdFMDAsIDB4MDAwMTIxODAsIDB4MDA0MDMwMDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDA3QTAwLCAweDAwMDA5MDAwLCAweDAwMDEzNkUwLCAweDAwNDJEQzAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgREJHVV9JT19CQVNFICAgICAgICAgICAgPXsgeyB7IHsgMHgwMDAwMDFFMCwgMHgwMDAxMjVBMCwgMHgwMDQwQjQwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBSU01VX0JBU0UgICAgICAgICAgICA9eyB7IHsgeyAweDAwMDEyMDAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OworCisKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMyMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMjQ2MAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMHgwMDQwOEMwMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q3X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q3X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q3X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q3X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q3X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q3X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTIwQzAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTZDMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDE4MDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMjBFMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNkUwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMUMwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEyMTAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE3MDAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAyMDAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTIxMjAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTcyMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDI0MDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMzZDMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxQjAwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyRDgwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEzNzIwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFCMjAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwNDJFNDAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTI1RTAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTdFMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MEJDMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDdfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDdfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDdfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDdfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDdfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDdfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEyNUMwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDBCODAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDdfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDdfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDdfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDdfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDdfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDdfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMjBBMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNzQwMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMTQwMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDdfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDdfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDdfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDdfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDdfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDdfU0VHNSAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEEwMDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTIxNjAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDJDMDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDBfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMV9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QyX1NFRzUgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDNfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNF9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q1X1NFRzUgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDZfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUN19TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUN19TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUN19TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUN19TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUN19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUN19TRUc1ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjIwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEyNTIwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwNDBBNDAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMF9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QxX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIRFBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDJfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUM19TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q0X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIRFBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDVfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNl9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q3X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q3X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q3X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q3X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q3X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q3X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMjQ0MAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMDAxQTAwMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMHgwMDQwODgwMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q3X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q3X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q3X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q3X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q3X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q3X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTNGRTAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTYwMDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0M0ZDMDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDB4MDBEQzAwMDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFNDAwMDAKKworI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDBfQkFTRV9fSU5TVDdfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDdfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDdfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDdfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDdfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDdfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEyMDIwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE2MjAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwNDAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAweDAwRTgwMDAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAweDAwRUMwMDAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMF9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QxX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDFfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDJfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUM19TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q0X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDFfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDVfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNl9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q3X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q3X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q3X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q3X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q3X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q3X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxNAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEQyMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDQwMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMkQ4MAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUc1ICAgICAgICAgICAgICAgICAgICAgMHgwMDQxQjAwMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q3X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q3X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q3X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q3X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q3X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q3X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwQTAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgIDB4MDAwMTI1MDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgIDB4MDA0MEEwMDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDdfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDdfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDdfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDdfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDdfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDdfU0VHNSAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDEyOEMwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAwNDExODAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAweDA0NDQwMDAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDdfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDdfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDdfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDdfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDdfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDdfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTI2MAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMjU0MAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMHgwMDQwQTgwMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxODYwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAwMDEyNTYwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAweDAwNDBBQzAwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUExX0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMV9CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTFfQkFTRV9fSU5TVDZfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDEzNzYwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAwMDFFMDAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAweDAwNDJFQzAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKworI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUMV9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1QyX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDNfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMl9CQVNFX19JTlNUNF9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEyX0JBU0VfX0lOU1Q1X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTJfQkFTRV9fSU5TVDZfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BM19CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMzc4MAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRTQwMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMHgwMDQyRjAwMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUMF9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1QxX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDJfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BM19CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUM19TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEzX0JBU0VfX0lOU1Q0X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTNfQkFTRV9fSU5TVDVfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BM19CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BM19CQVNFX19JTlNUNl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDEzN0EwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAwMDFFODAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAweDAwNDJGNDAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTRfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNF9CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE0X0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTM3QzAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUVDMDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgIDB4MDA0MkY4MDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDBfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUMV9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1QyX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDNfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNV9CQVNFX19JTlNUNF9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE1X0JBU0VfX0lOU1Q1X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTVfQkFTRV9fSU5TVDZfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMzdFMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjAwMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMHgwMDQyRkMwMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUMF9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1QxX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDJfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUM19TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE2X0JBU0VfX0lOU1Q0X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTZfQkFTRV9fSU5TVDVfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BNl9CQVNFX19JTlNUNl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDEzODAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAwMDFGNDAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAweDAwNDMwMDAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BN19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTdfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BN19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BN19CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUE3X0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTIwODAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTY4MDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTZBMDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDEwMDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgIDB4MDA0NDAwMDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzUgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHNSAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTTVVJT19CQVNFX19JTlNUN19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUN19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUN19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUN19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUN19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUN19TRUc1ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEyMDYwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE2NjAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwQzAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMF9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QxX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBUSE1fQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDJfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFRITV9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUM19TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q0X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBUSE1fQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDVfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNl9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q3X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q3X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q3X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q3X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q3X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q3X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMzJDMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNDAwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyNTgwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEzMkUwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwMDU0MDAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwNDI1QzAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTMzMDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOTQwMDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MjYwMDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMzMyMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBENDAwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyNjQwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEzMzQwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwMTE0MDAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwNDI2ODAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTMzNjAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxNTQwMDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MjZDMDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMzM4MAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE5NDAwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyNzAwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUN19TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEzM0EwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUN19TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwMUQ0MDAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUN19TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwNDI3NDAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUN19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUN19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUN19TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc4MDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdFMDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTIxODAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDMwMDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkRfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0EwMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwOTAwMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMzZFMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyREMwMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkRfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRF9CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEX0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkRfQkFTRV9fSU5TVDdfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDdfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDdfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDdfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDdfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkRfQkFTRV9fSU5TVDdfU0VHNSAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAweDAwMDAwMUUwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAweDAwMDEyNUEwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAweDAwNDBCNDAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDBfU0VHNSAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUMV9TRUc1ICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1QyX1NFRzUgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDNfU0VHNSAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUNF9TRUc1ICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPX0JBU0VfX0lOU1Q1X1NFRzUgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU9fQkFTRV9fSU5TVDZfU0VHNSAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUN19TRUcwICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUN19TRUcxICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUN19TRUcyICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUN19TRUczICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUN19TRUc0ICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JT19CQVNFX19JTlNUN19TRUc1ICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBSU01VX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgMHgwMDAxMjAwMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QwX1NFRzUgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDFfU0VHNSAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUMl9TRUc1ICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBSU01VX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1QzX1NFRzUgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDRfU0VHNSAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUlNNVV9CQVNFX19JTlNUNV9TRUc1ICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBSU01VX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSU01VX0JBU0VfX0lOU1Q2X1NFRzUgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDdfU0VHMCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDdfU0VHMSAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDdfU0VHMiAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDdfU0VHMyAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDdfU0VHNCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJTTVVfQkFTRV9fSU5TVDdfU0VHNSAgICAgICAgICAgICAgICAgICAwCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvY2xrL2Nsa18xMF8wXzJfb2Zmc2V0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvY2xrL2Nsa18xMF8wXzJfb2Zmc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRlNDUwMwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9jbGsvY2xrXzEwXzBfMl9vZmZzZXQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9jbGtfMTBfMF8yX09GRlNFVF9IRUFERVIKKyNkZWZpbmUgX2Nsa18xMF8wXzJfT0ZGU0VUX0hFQURFUgorCisKKworLy8gYWRkcmVzc0Jsb2NrOiBjbGtfY2xrMV8wX1NtdUNsa0RlYworLy8gYmFzZSBhZGRyZXNzOiAweDViODAwCisjZGVmaW5lIG1tQ0xLMV9DTEtfUExMX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBmCisjZGVmaW5lIG1tQ0xLMV9DTEtfUExMX1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUNMSzFfQ0xLMF9CWVBBU1NfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OQorI2RlZmluZSBtbUNMSzFfQ0xLMF9CWVBBU1NfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1DTEsxX0NMSzFfQllQQVNTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTMKKyNkZWZpbmUgbW1DTEsxX0NMSzFfQllQQVNTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQ0xLMV9DTEsyX0JZUEFTU19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVkCisjZGVmaW5lIG1tQ0xLMV9DTEsyX0JZUEFTU19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUNMSzFfQ0xLMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZQorI2RlZmluZSBtbUNMSzFfQ0xLMl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1DTEsxX0NMSzNfREZTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWYKKyNkZWZpbmUgbW1DTEsxX0NMSzNfREZTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQ0xLMV9DTEszX0RTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwCisjZGVmaW5lIG1tQ0xLMV9DTEszX0RTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUNMSzFfQ0xLM19BTExPV19EUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MQorI2RlZmluZSBtbUNMSzFfQ0xLM19BTExPV19EU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1DTEsxX0NMSzNfQllQQVNTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjcKKyNkZWZpbmUgbW1DTEsxX0NMSzNfQllQQVNTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQ0xLMV9DTEswX0NVUlJFTlRfQ05UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhhCisjZGVmaW5lIG1tQ0xLMV9DTEswX0NVUlJFTlRfQ05UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUNMSzFfQ0xLMV9DVVJSRU5UX0NOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YgorI2RlZmluZSBtbUNMSzFfQ0xLMV9DVVJSRU5UX0NOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1DTEsxX0NMSzJfQ1VSUkVOVF9DTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGMKKyNkZWZpbmUgbW1DTEsxX0NMSzJfQ1VSUkVOVF9DTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQ0xLMV9DTEszX0NVUlJFTlRfQ05UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhkCisjZGVmaW5lIG1tQ0xLMV9DTEszX0NVUlJFTlRfQ05UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2Nsay9jbGtfMTBfMF8yX3NoX21hc2suaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9jbGsvY2xrXzEwXzBfMl9zaF9tYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk0OWQwZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9jbGsvY2xrXzEwXzBfMl9zaF9tYXNrLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfY2xrXzEwXzBfMl9TSF9NQVNLX0hFQURFUgorI2RlZmluZSBfY2xrXzEwXzBfMl9TSF9NQVNLX0hFQURFUgorCisKKy8vIGFkZHJlc3NCbG9jazogY2xrX2NsazFfMF9TbXVDbGtEZWMKKy8vQ0xLMV9DTEtfUExMX1JFUQorI2RlZmluZSBDTEsxX0NMS19QTExfUkVRX19GYk11bHRfaW50X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0xLMV9DTEtfUExMX1JFUV9fUGxsU3BpbmVEaXZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENMSzFfQ0xLX1BMTF9SRVFfX0ZiTXVsdF9mcmFjX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ0xLMV9DTEtfUExMX1JFUV9fRmJNdWx0X2ludF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ0xLMV9DTEtfUExMX1JFUV9fUGxsU3BpbmVEaXZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQ0xLMV9DTEtfUExMX1JFUV9fRmJNdWx0X2ZyYWNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ0xLMV9DTEswX0JZUEFTU19DTlRMCisjZGVmaW5lIENMSzFfQ0xLMF9CWVBBU1NfQ05UTF9fQ0xLMF9CWVBBU1NfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTEsxX0NMSzBfQllQQVNTX0NOVExfX0NMSzBfQllQQVNTX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENMSzFfQ0xLMF9CWVBBU1NfQ05UTF9fQ0xLMF9CWVBBU1NfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIENMSzFfQ0xLMF9CWVBBU1NfQ05UTF9fQ0xLMF9CWVBBU1NfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL0NMSzFfQ0xLMV9CWVBBU1NfQ05UTAorI2RlZmluZSBDTEsxX0NMSzFfQllQQVNTX0NOVExfX0NMSzFfQllQQVNTX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0xLMV9DTEsxX0JZUEFTU19DTlRMX19DTEsxX0JZUEFTU19ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTEsxX0NMSzFfQllQQVNTX0NOVExfX0NMSzFfQllQQVNTX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBDTEsxX0NMSzFfQllQQVNTX0NOVExfX0NMSzFfQllQQVNTX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9DTEsxX0NMSzJfQllQQVNTX0NOVEwKKyNkZWZpbmUgQ0xLMV9DTEsyX0JZUEFTU19DTlRMX19DTEsyX0JZUEFTU19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENMSzFfQ0xLMl9CWVBBU1NfQ05UTF9fQ0xLMl9CWVBBU1NfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ0xLMV9DTEsyX0JZUEFTU19DTlRMX19DTEsyX0JZUEFTU19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQ0xLMV9DTEsyX0JZUEFTU19DTlRMX19DTEsyX0JZUEFTU19ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vQ0xLMV9DTEszX0RTX0NOVEwKKyNkZWZpbmUgQ0xLMV9DTEszX0RTX0NOVExfX0NMSzNfRFNfRElWX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENMSzFfQ0xLM19EU19DTlRMX19DTEszX0RTX0RJVl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL0NMSzFfQ0xLM19BTExPV19EUworI2RlZmluZSBDTEsxX0NMSzNfQUxMT1dfRFNfX0NMSzNfQUxMT1dfRFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0xLMV9DTEszX0FMTE9XX0RTX19DTEszX0FMTE9XX0RTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ0xLMV9DTEszX0JZUEFTU19DTlRMCisjZGVmaW5lIENMSzFfQ0xLM19CWVBBU1NfQ05UTF9fQ0xLM19CWVBBU1NfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTEsxX0NMSzNfQllQQVNTX0NOVExfX0NMSzNfQllQQVNTX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENMSzFfQ0xLM19CWVBBU1NfQ05UTF9fQ0xLM19CWVBBU1NfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIENMSzFfQ0xLM19CWVBBU1NfQ05UTF9fQ0xLM19CWVBBU1NfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL0NMSzFfQ0xLMF9DVVJSRU5UX0NOVAorI2RlZmluZSBDTEsxX0NMSzBfQ1VSUkVOVF9DTlRfX0NVUlJFTlRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0xLMV9DTEswX0NVUlJFTlRfQ05UX19DVVJSRU5UX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQ0xLMV9DTEsxX0NVUlJFTlRfQ05UCisjZGVmaW5lIENMSzFfQ0xLMV9DVVJSRU5UX0NOVF9fQ1VSUkVOVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTEsxX0NMSzFfQ1VSUkVOVF9DTlRfX0NVUlJFTlRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9DTEsxX0NMSzJfQ1VSUkVOVF9DTlQKKyNkZWZpbmUgQ0xLMV9DTEsyX0NVUlJFTlRfQ05UX19DVVJSRU5UX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENMSzFfQ0xLMl9DVVJSRU5UX0NOVF9fQ1VSUkVOVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0NMSzFfQ0xLM19DVVJSRU5UX0NOVAorI2RlZmluZSBDTEsxX0NMSzNfQ1VSUkVOVF9DTlRfX0NVUlJFTlRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0xLMV9DTEszX0NVUlJFTlRfQ05UX19DVVJSRU5UX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9kY24vZGNuXzJfMV8wX29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2Rjbi9kY25fMl8xXzBfb2Zmc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU0MjQ5YQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9kY24vZGNuXzJfMV8wX29mZnNldC5oCkBAIC0wLDAgKzEsMTM4NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX2Rjbl8yXzFfMF9PRkZTRVRfSEVBREVSCisjZGVmaW5lIF9kY25fMl8xXzBfT0ZGU0VUX0hFQURFUgorCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbW1odWJidWJfdmdhX2Rpc3BkZWNbNzIuLjc2XQorLy8gYmFzZSBhZGRyZXNzOiAweDQ4CisjZGVmaW5lIG1tVkdBX01FTV9XUklURV9QQUdFX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIG1tVkdBX01FTV9XUklURV9QQUdFX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVZHQV9NRU1fUkVBRF9QQUdFX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBtbVZHQV9NRU1fUkVBRF9QQUdFX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tbWh1YmJ1Yl92Z2FfZGlzcGRlY1s5NDguLjk4Nl0KKy8vIGJhc2UgYWRkcmVzczogMHgzYjQKKyNkZWZpbmUgbW1DUlRDOF9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmQKKyNkZWZpbmUgbW1DUlRDOF9JRFhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQ1JUQzhfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJkCisjZGVmaW5lIG1tQ1JUQzhfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUdFTkZDX1dUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZQorI2RlZmluZSBtbUdFTkZDX1dUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1HRU5TMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmUKKyNkZWZpbmUgbW1HRU5TMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRUUkRXICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwCisjZGVmaW5lIG1tQVRUUkRXX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUVFJYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMAorI2RlZmluZSBtbUFUVFJYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVFRSRFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKKyNkZWZpbmUgbW1BVFRSRFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tR0VOTU9fV1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwCisjZGVmaW5lIG1tR0VOTU9fV1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUdFTlMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMAorI2RlZmluZSBtbUdFTlMwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1HRU5FTkIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKKyNkZWZpbmUgbW1HRU5FTkJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0VROF9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMxCisjZGVmaW5lIG1tU0VROF9JRFhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNFUThfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMQorI2RlZmluZSBtbVNFUThfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzEKKyNkZWZpbmUgbW1EQUNfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFDX1JfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMxCisjZGVmaW5lIG1tREFDX1JfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBQ19XX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMgorI2RlZmluZSBtbURBQ19XX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUNfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzIKKyNkZWZpbmUgbW1EQUNfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tR0VORkNfUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMyCisjZGVmaW5lIG1tR0VORkNfUkRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUdFTk1PX1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMworI2RlZmluZSBtbUdFTk1PX1JEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1HUlBIOF9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzMKKyNkZWZpbmUgbW1HUlBIOF9JRFhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tR1JQSDhfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMzCisjZGVmaW5lIG1tR1JQSDhfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUNSVEM4X0lEWF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNQorI2RlZmluZSBtbUNSVEM4X0lEWF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1DUlRDOF9EQVRBXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzUKKyNkZWZpbmUgbW1DUlRDOF9EQVRBXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tR0VORkNfV1RfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM2CisjZGVmaW5lIG1tR0VORkNfV1RfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUdFTlMxXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBtbUdFTlMxXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tbWh1YmJ1Yl92Z2FfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1WR0FfUkVOREVSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgbW1WR0FfUkVOREVSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVkdBX1NFUVVFTkNFUl9SRVNFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIG1tVkdBX1NFUVVFTkNFUl9SRVNFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZHQV9NT0RFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBtbVZHQV9NT0RFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WR0FfU1VSRkFDRV9QSVRDSF9TRUxFQ1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgbW1WR0FfU1VSRkFDRV9QSVRDSF9TRUxFQ1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVkdBX01FTU9SWV9CQVNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIG1tVkdBX01FTU9SWV9CQVNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZHQV9URVNUX0RFQlVHX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBtbVZHQV9URVNUX0RFQlVHX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WR0FfRElTUEJVRjFfU1VSRkFDRV9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgbW1WR0FfRElTUEJVRjFfU1VSRkFDRV9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVkdBX1RFU1RfREVCVUdfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIG1tVkdBX1RFU1RfREVCVUdfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZHQV9ESVNQQlVGMl9TVVJGQUNFX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOAorI2RlZmluZSBtbVZHQV9ESVNQQlVGMl9TVVJGQUNFX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WR0FfTUVNT1JZX0JBU0VfQUREUkVTU19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDkKKyNkZWZpbmUgbW1WR0FfTUVNT1JZX0JBU0VfQUREUkVTU19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVkdBX0hEUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBhCisjZGVmaW5lIG1tVkdBX0hEUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZHQV9DQUNIRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYgorI2RlZmluZSBtbVZHQV9DQUNIRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EMVZHQV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGMKKyNkZWZpbmUgbW1EMVZHQV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVkdBX1NFQ1VSSVRZX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBkCisjZGVmaW5lIG1tVkdBX1NFQ1VSSVRZX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUQyVkdBX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZQorI2RlZmluZSBtbUQyVkdBX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WR0FfSFdfREVCVUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGYKKyNkZWZpbmUgbW1WR0FfSFdfREVCVUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVkdBX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwCisjZGVmaW5lIG1tVkdBX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZHQV9JTlRFUlJVUFRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMQorI2RlZmluZSBtbVZHQV9JTlRFUlJVUFRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WR0FfU1RBVFVTX0NMRUFSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTIKKyNkZWZpbmUgbW1WR0FfU1RBVFVTX0NMRUFSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVkdBX0lOVEVSUlVQVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEzCisjZGVmaW5lIG1tVkdBX0lOVEVSUlVQVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZHQV9NQUlOX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxNAorI2RlZmluZSBtbVZHQV9NQUlOX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WR0FfVEVTVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTUKKyNkZWZpbmUgbW1WR0FfVEVTVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVkdBX0RFQlVHX1JFQURCQUNLX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE2CisjZGVmaW5lIG1tVkdBX0RFQlVHX1JFQURCQUNLX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZHQV9ERUJVR19SRUFEQkFDS19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxNworI2RlZmluZSBtbVZHQV9ERUJVR19SRUFEQkFDS19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WR0FfUU9TX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTgKKyNkZWZpbmUgbW1WR0FfUU9TX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRDNWR0FfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIG1tRDNWR0FfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUQ0VkdBX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOQorI2RlZmluZSBtbUQ0VkdBX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1ENVZHQV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2EKKyNkZWZpbmUgbW1ENVZHQV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRDZWR0FfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNiCisjZGVmaW5lIG1tRDZWR0FfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZHQV9TT1VSQ0VfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYworI2RlZmluZSBtbVZHQV9TT1VSQ0VfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2NnX2RjY2dfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1QSFlQTExBX1BJWENMS19SRVNZTkNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAKKyNkZWZpbmUgbW1QSFlQTExBX1BJWENMS19SRVNZTkNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUEhZUExMQl9QSVhDTEtfUkVTWU5DX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQxCisjZGVmaW5lIG1tUEhZUExMQl9QSVhDTEtfUkVTWU5DX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBIWVBMTENfUElYQ0xLX1JFU1lOQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MgorI2RlZmluZSBtbVBIWVBMTENfUElYQ0xLX1JFU1lOQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QSFlQTExEX1BJWENMS19SRVNZTkNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDMKKyNkZWZpbmUgbW1QSFlQTExEX1BJWENMS19SRVNZTkNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRFBfRFRPX0RCVUZfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ0CisjZGVmaW5lIG1tRFBfRFRPX0RCVUZfRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURQUkVGQ0xLX0NHVFRfQkxLX0NUUkxfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OAorI2RlZmluZSBtbURQUkVGQ0xLX0NHVFRfQkxLX0NUUkxfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1SRUZDTEtfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDkKKyNkZWZpbmUgbW1SRUZDTEtfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUkVGQ0xLX0NHVFRfQkxLX0NUUkxfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRiCisjZGVmaW5lIG1tUkVGQ0xLX0NHVFRfQkxLX0NUUkxfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBIWVBMTEVfUElYQ0xLX1JFU1lOQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YworI2RlZmluZSBtbVBIWVBMTEVfUElYQ0xLX1JFU1lOQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQ0NHX1BFUkZNT05fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGUKKyNkZWZpbmUgbW1EQ0NHX1BFUkZNT05fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19EU19EVE9fSU5DUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUzCisjZGVmaW5lIG1tRENDR19EU19EVE9fSU5DUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfRFNfRFRPX01PRFVMTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBtbURDQ0dfRFNfRFRPX01PRFVMT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQ0NHX0RTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgbW1EQ0NHX0RTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19EU19IV19DQUxfSU5URVJWQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIG1tRENDR19EU19IV19DQUxfSU5URVJWQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURQUkVGQ0xLX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OAorI2RlZmluZSBtbURQUkVGQ0xLX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQ0VfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWUKKyNkZWZpbmUgbW1EQ0VfVkVSU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19HVENfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwCisjZGVmaW5lIG1tRENDR19HVENfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfR1RDX0RUT19JTkNSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MQorI2RlZmluZSBtbURDQ0dfR1RDX0RUT19JTkNSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQ0NHX0dUQ19EVE9fTU9EVUxPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjIKKyNkZWZpbmUgbW1EQ0NHX0dUQ19EVE9fTU9EVUxPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19HVENfQ1VSUkVOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYzCisjZGVmaW5lIG1tRENDR19HVENfQ1VSUkVOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURTQ0NMSzBfRFRPX1BBUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YworI2RlZmluZSBtbURTQ0NMSzBfRFRPX1BBUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EU0NDTEsxX0RUT19QQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmQKKyNkZWZpbmUgbW1EU0NDTEsxX0RUT19QQVJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRFNDQ0xLMl9EVE9fUEFSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZlCisjZGVmaW5lIG1tRFNDQ0xLMl9EVE9fUEFSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1JTExJU0VDT05EX1RJTUVfQkFTRV9ESVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MAorI2RlZmluZSBtbU1JTExJU0VDT05EX1RJTUVfQkFTRV9ESVZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1ESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzEKKyNkZWZpbmUgbW1ESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENfTUVNX0dMT0JBTF9QV1JfUkVRX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcyCisjZGVmaW5lIG1tRENfTUVNX0dMT0JBTF9QV1JfUkVRX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MworI2RlZmluZSBtbURDQ0dfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQ0NHX0dBVEVfRElTQUJMRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzQKKyNkZWZpbmUgbW1EQ0NHX0dBVEVfRElTQUJMRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRElTUENMS19DR1RUX0JMS19DVFJMX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDc1CisjZGVmaW5lIG1tRElTUENMS19DR1RUX0JMS19DVFJMX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNPQ0NMS19DR1RUX0JMS19DVFJMX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3NgorI2RlZmluZSBtbVNPQ0NMS19DR1RUX0JMS19DVFJMX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQ0NHX0NBQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzcKKyNkZWZpbmUgbW1EQ0NHX0NBQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTUlDUk9TRUNPTkRfVElNRV9CQVNFX0RJViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdiCisjZGVmaW5lIG1tTUlDUk9TRUNPTkRfVElNRV9CQVNFX0RJVl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfR0FURV9ESVNBQkxFX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3YworI2RlZmluZSBtbURDQ0dfR0FURV9ESVNBQkxFX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TWU1DTEtfQ0dUVF9CTEtfQ1RSTF9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2QKKyNkZWZpbmUgbW1TWU1DTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19ESVNQX0NOVExfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdmCisjZGVmaW5lIG1tRENDR19ESVNQX0NOVExfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU9URzBfUElYRUxfUkFURV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MAorI2RlZmluZSBtbU9URzBfUElYRUxfUkFURV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EUF9EVE8wX1BIQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODEKKyNkZWZpbmUgbW1EUF9EVE8wX1BIQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRFBfRFRPMF9NT0RVTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgyCisjZGVmaW5lIG1tRFBfRFRPMF9NT0RVTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU9URzBfUEhZUExMX1BJWEVMX1JBVEVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MworI2RlZmluZSBtbU9URzBfUEhZUExMX1BJWEVMX1JBVEVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1PVEcxX1BJWEVMX1JBVEVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODQKKyNkZWZpbmUgbW1PVEcxX1BJWEVMX1JBVEVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRFBfRFRPMV9QSEFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg1CisjZGVmaW5lIG1tRFBfRFRPMV9QSEFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURQX0RUTzFfTU9EVUxPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NgorI2RlZmluZSBtbURQX0RUTzFfTU9EVUxPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1PVEcxX1BIWVBMTF9QSVhFTF9SQVRFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODcKKyNkZWZpbmUgbW1PVEcxX1BIWVBMTF9QSVhFTF9SQVRFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tT1RHMl9QSVhFTF9SQVRFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg4CisjZGVmaW5lIG1tT1RHMl9QSVhFTF9SQVRFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURQX0RUTzJfUEhBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OQorI2RlZmluZSBtbURQX0RUTzJfUEhBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EUF9EVE8yX01PRFVMTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGEKKyNkZWZpbmUgbW1EUF9EVE8yX01PRFVMT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tT1RHMl9QSFlQTExfUElYRUxfUkFURV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhiCisjZGVmaW5lIG1tT1RHMl9QSFlQTExfUElYRUxfUkFURV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU9URzNfUElYRUxfUkFURV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YworI2RlZmluZSBtbU9URzNfUElYRUxfUkFURV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EUF9EVE8zX1BIQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGQKKyNkZWZpbmUgbW1EUF9EVE8zX1BIQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRFBfRFRPM19NT0RVTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhlCisjZGVmaW5lIG1tRFBfRFRPM19NT0RVTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU9URzNfUEhZUExMX1BJWEVMX1JBVEVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZgorI2RlZmluZSBtbU9URzNfUEhZUExMX1BJWEVMX1JBVEVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EUFBDTEtfQ0dUVF9CTEtfQ1RSTF9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTgKKyNkZWZpbmUgbW1EUFBDTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRFBQQ0xLMF9EVE9fUEFSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDk5CisjZGVmaW5lIG1tRFBQQ0xLMF9EVE9fUEFSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURQUENMSzFfRFRPX1BBUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5YQorI2RlZmluZSBtbURQUENMSzFfRFRPX1BBUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EUFBDTEsyX0RUT19QQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOWIKKyNkZWZpbmUgbW1EUFBDTEsyX0RUT19QQVJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRFBQQ0xLM19EVE9fUEFSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDljCisjZGVmaW5lIG1tRFBQQ0xLM19EVE9fUEFSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfQ0FDX1NUQVRVUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5ZgorI2RlZmluZSBtbURDQ0dfQ0FDX1NUQVRVUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TWU1DTEtBX0NMT0NLX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTAKKyNkZWZpbmUgbW1TWU1DTEtBX0NMT0NLX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU1lNQ0xLQl9DTE9DS19FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGExCisjZGVmaW5lIG1tU1lNQ0xLQl9DTE9DS19FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNZTUNMS0NfQ0xPQ0tfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhMgorI2RlZmluZSBtbVNZTUNMS0NfQ0xPQ0tfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TWU1DTEtEX0NMT0NLX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTMKKyNkZWZpbmUgbW1TWU1DTEtEX0NMT0NLX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU1lNQ0xLRV9DTE9DS19FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE0CisjZGVmaW5lIG1tU1lNQ0xLRV9DTE9DS19FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfU09GVF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhNgorI2RlZmluZSBtbURDQ0dfU09GVF9SRVNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EU0NDTEtfRFRPX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTcKKyNkZWZpbmUgbW1EU0NDTEtfRFRPX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19BVURJT19EVE9fU09VUkNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFiCisjZGVmaW5lIG1tRENDR19BVURJT19EVE9fU09VUkNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfQVVESU9fRFRPMF9QSEFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYworI2RlZmluZSBtbURDQ0dfQVVESU9fRFRPMF9QSEFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQ0NHX0FVRElPX0RUTzBfTU9EVUxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWQKKyNkZWZpbmUgbW1EQ0NHX0FVRElPX0RUTzBfTU9EVUxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19BVURJT19EVE8xX1BIQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFlCisjZGVmaW5lIG1tRENDR19BVURJT19EVE8xX1BIQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfQVVESU9fRFRPMV9NT0RVTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZgorI2RlZmluZSBtbURDQ0dfQVVESU9fRFRPMV9NT0RVTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQ0NHX1ZTWU5DX09URzBfTEFUQ0hfVkFMVUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjAKKyNkZWZpbmUgbW1EQ0NHX1ZTWU5DX09URzBfTEFUQ0hfVkFMVUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19WU1lOQ19PVEcxX0xBVENIX1ZBTFVFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIxCisjZGVmaW5lIG1tRENDR19WU1lOQ19PVEcxX0xBVENIX1ZBTFVFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfVlNZTkNfT1RHMl9MQVRDSF9WQUxVRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMgorI2RlZmluZSBtbURDQ0dfVlNZTkNfT1RHMl9MQVRDSF9WQUxVRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQ0NHX1ZTWU5DX09URzNfTEFUQ0hfVkFMVUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjMKKyNkZWZpbmUgbW1EQ0NHX1ZTWU5DX09URzNfTEFUQ0hfVkFMVUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19WU1lOQ19PVEc0X0xBVENIX1ZBTFVFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI0CisjZGVmaW5lIG1tRENDR19WU1lOQ19PVEc0X0xBVENIX1ZBTFVFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfVlNZTkNfT1RHNV9MQVRDSF9WQUxVRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNQorI2RlZmluZSBtbURDQ0dfVlNZTkNfT1RHNV9MQVRDSF9WQUxVRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EUFBDTEtfRFRPX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjYKKyNkZWZpbmUgbW1EUFBDTEtfRFRPX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19WU1lOQ19DTlRfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI4CisjZGVmaW5lIG1tRENDR19WU1lOQ19DTlRfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURDQ0dfVlNZTkNfQ05UX0lOVF9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiOQorI2RlZmluZSBtbURDQ0dfVlNZTkNfQ05UX0lOVF9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1GT1JDRV9TWU1DTEtfRElTQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYmEKKyNkZWZpbmUgbW1GT1JDRV9TWU1DTEtfRElTQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tRENDR19URVNUX0NMS19TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGJlCisjZGVmaW5lIG1tRENDR19URVNUX0NMS19TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjY2dfZGNjZ19kZnNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1ERU5USVNUX0RJU1BDTEtfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQKKyNkZWZpbmUgbW1ERU5USVNUX0RJU1BDTEtfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNjZ19kY2NnX2RjcGVyZm1vbjBfZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbURDX1BFUkZNT04wX1BFUkZDT1VOVEVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBtbURDX1BFUkZNT04wX1BFUkZDT1VOVEVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04wX1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBtbURDX1BFUkZNT04wX1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMF9QRVJGTU9OX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMF9QRVJGTU9OX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIG1tRENfUEVSRk1PTjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04wX1BFUkZNT05fQ1ZBTFVFX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBtbURDX1BFUkZNT04wX1BFUkZNT05fQ1ZBTFVFX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMF9QRVJGTU9OX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMF9QRVJGTU9OX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjBfUEVSRk1PTl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIG1tRENfUEVSRk1PTjBfUEVSRk1PTl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjY2dfZGNjZ19kY3BlcmZtb24xX2RjX3BlcmZtb25fZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDMwCisjZGVmaW5lIG1tRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBjCisjZGVmaW5lIG1tRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xX1BFUkZDT1VOVEVSX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZAorI2RlZmluZSBtbURDX1BFUkZNT04xX1BFUkZDT1VOVEVSX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9TVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGUKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9TVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjFfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBmCisjZGVmaW5lIG1tRENfUEVSRk1PTjFfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xX1BFUkZNT05fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBtbURDX1BFUkZNT04xX1BFUkZNT05fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjFfUEVSRk1PTl9DVkFMVUVfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEyCisjZGVmaW5lIG1tRENfUEVSRk1PTjFfUEVSRk1PTl9DVkFMVUVfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xX1BFUkZNT05fSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMworI2RlZmluZSBtbURDX1BFUkZNT04xX1BFUkZNT05fSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMV9QRVJGTU9OX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMV9QRVJGTU9OX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNjZ19kY2NnX3BsbF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxOAorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTkKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFhCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWMKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFkCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVENiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZQorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVENl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWYKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMQorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIzCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjUKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI2CisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNworI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjgKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI5CisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYQorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJjCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZAorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmUKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJmCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMAorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzEKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMworI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM1CisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOQorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2EKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNiCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYworI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2QKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNlCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZgorI2RlZmluZSBtbVBMTF9NQUNST19DTlRMX1JFU0VSVkVEMzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAKKyNkZWZpbmUgbW1QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ0MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQxCisjZGVmaW5lIG1tUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ0MV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RtdV9yYmJtaWZfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1SQkJNSUZfVElNRU9VVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWIKKyNkZWZpbmUgbW1SQkJNSUZfVElNRU9VVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkJCTUlGX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVjCisjZGVmaW5lIG1tUkJCTUlGX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJCQk1JRl9TVEFUVVNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZAorI2RlZmluZSBtbVJCQk1JRl9TVEFUVVNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SQkJNSUZfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWUKKyNkZWZpbmUgbW1SQkJNSUZfSU5UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkJCTUlGX1RJTUVPVVRfRElTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVmCisjZGVmaW5lIG1tUkJCTUlGX1RJTUVPVVRfRElTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJCQk1JRl9USU1FT1VUX0RJU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MAorI2RlZmluZSBtbVJCQk1JRl9USU1FT1VUX0RJU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SQkJNSUZfU1RBVFVTX0ZMQUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjEKKyNkZWZpbmUgbW1SQkJNSUZfU1RBVFVTX0ZMQUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZG11X2RjX3BnX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRE9NQUlOMF9QR19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwCisjZGVmaW5lIG1tRE9NQUlOMF9QR19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURPTUFJTjBfUEdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MQorI2RlZmluZSBtbURPTUFJTjBfUEdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ET01BSU4xX1BHX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODIKKyNkZWZpbmUgbW1ET01BSU4xX1BHX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE9NQUlOMV9QR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgzCisjZGVmaW5lIG1tRE9NQUlOMV9QR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURPTUFJTjJfUEdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NAorI2RlZmluZSBtbURPTUFJTjJfUEdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ET01BSU4yX1BHX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODUKKyNkZWZpbmUgbW1ET01BSU4yX1BHX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE9NQUlOM19QR19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg2CisjZGVmaW5lIG1tRE9NQUlOM19QR19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURPTUFJTjNfUEdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NworI2RlZmluZSBtbURPTUFJTjNfUEdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ET01BSU40X1BHX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODgKKyNkZWZpbmUgbW1ET01BSU40X1BHX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE9NQUlONF9QR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg5CisjZGVmaW5lIG1tRE9NQUlONF9QR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURPTUFJTjVfUEdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YQorI2RlZmluZSBtbURPTUFJTjVfUEdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ET01BSU41X1BHX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGIKKyNkZWZpbmUgbW1ET01BSU41X1BHX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE9NQUlONl9QR19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhjCisjZGVmaW5lIG1tRE9NQUlONl9QR19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURPTUFJTjZfUEdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZAorI2RlZmluZSBtbURPTUFJTjZfUEdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ET01BSU43X1BHX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGUKKyNkZWZpbmUgbW1ET01BSU43X1BHX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE9NQUlON19QR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhmCisjZGVmaW5lIG1tRE9NQUlON19QR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURPTUFJTjE2X1BHX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhMQorI2RlZmluZSBtbURPTUFJTjE2X1BHX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ET01BSU4xNl9QR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTIKKyNkZWZpbmUgbW1ET01BSU4xNl9QR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE9NQUlOMTdfUEdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGEzCisjZGVmaW5lIG1tRE9NQUlOMTdfUEdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURPTUFJTjE3X1BHX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhNAorI2RlZmluZSBtbURPTUFJTjE3X1BHX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ET01BSU4xOF9QR19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTUKKyNkZWZpbmUgbW1ET01BSU4xOF9QR19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE9NQUlOMThfUEdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE2CisjZGVmaW5lIG1tRE9NQUlOMThfUEdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDUEdfSU5URVJSVVBUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZAorI2RlZmluZSBtbURDUEdfSU5URVJSVVBUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ1BHX0lOVEVSUlVQVF9TVEFUVVNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWUKKyNkZWZpbmUgbW1EQ1BHX0lOVEVSUlVQVF9TVEFUVVNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFmCisjZGVmaW5lIG1tRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDUEdfSU5URVJSVVBUX0NPTlRST0xfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMAorI2RlZmluZSBtbURDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjEKKyNkZWZpbmUgbW1EQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfSVBfUkVRVUVTVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIyCisjZGVmaW5lIG1tRENfSVBfUkVRVUVTVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RtdV9kbXVfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDJmOAorI2RlZmluZSBtbURDX1BFUkZNT04yX1BFUkZDT1VOVEVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiZQorI2RlZmluZSBtbURDX1BFUkZNT04yX1BFUkZDT1VOVEVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYmYKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMwCisjZGVmaW5lIG1tRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yX1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMQorI2RlZmluZSBtbURDX1BFUkZNT04yX1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMl9QRVJGTU9OX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMl9QRVJGTU9OX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMzCisjZGVmaW5lIG1tRENfUEVSRk1PTjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yX1BFUkZNT05fQ1ZBTFVFX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNAorI2RlZmluZSBtbURDX1BFUkZNT04yX1BFUkZNT05fQ1ZBTFVFX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMl9QRVJGTU9OX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzUKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMl9QRVJGTU9OX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjJfUEVSRk1PTl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM2CisjZGVmaW5lIG1tRENfUEVSRk1PTjJfUEVSRk1PTl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RtdV9kbXVfbWlzY19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbUNDX0RDX1BJUEVfRElTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjYQorI2RlZmluZSBtbUNDX0RDX1BJUEVfRElTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETVVfQ0xLX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwY2IKKyNkZWZpbmUgbW1ETVVfQ0xLX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1VX01FTV9QV1JfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGNjCisjZGVmaW5lIG1tRE1VX01FTV9QV1JfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfU01VX0lOVEVSUlVQVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjZAorI2RlZmluZSBtbURNQ1VfU01VX0lOVEVSUlVQVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1TTVVfSU5URVJSVVBUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwY2UKKyNkZWZpbmUgbW1TTVVfSU5URVJSVVBUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1VX01JU0NfQUxMT1dfRFNfRk9SQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ2CisjZGVmaW5lIG1tRE1VX01JU0NfQUxMT1dfRFNfRk9SQ0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RtdV9kbWN1X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRE1DVV9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRhCisjZGVmaW5lIG1tRE1DVV9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYgorI2RlZmluZSBtbURNQ1VfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX1BDX1NUQVJUX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGMKKyNkZWZpbmUgbW1ETUNVX1BDX1NUQVJUX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9GV19TVEFSVF9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRkCisjZGVmaW5lIG1tRE1DVV9GV19TVEFSVF9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfRldfRU5EX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZQorI2RlZmluZSBtbURNQ1VfRldfRU5EX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0ZXX0lTUl9TVEFSVF9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGYKKyNkZWZpbmUgbW1ETUNVX0ZXX0lTUl9TVEFSVF9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9GV19DU19ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUwCisjZGVmaW5lIG1tRE1DVV9GV19DU19ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfRldfQ1NfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMQorI2RlZmluZSBtbURNQ1VfRldfQ1NfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX1JBTV9BQ0NFU1NfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTIKKyNkZWZpbmUgbW1ETUNVX1JBTV9BQ0NFU1NfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9FUkFNX1dSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUzCisjZGVmaW5lIG1tRE1DVV9FUkFNX1dSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfRVJBTV9XUl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNAorI2RlZmluZSBtbURNQ1VfRVJBTV9XUl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0VSQU1fUkRfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTUKKyNkZWZpbmUgbW1ETUNVX0VSQU1fUkRfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9FUkFNX1JEX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU2CisjZGVmaW5lIG1tRE1DVV9FUkFNX1JEX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfSVJBTV9XUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNworI2RlZmluZSBtbURNQ1VfSVJBTV9XUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0lSQU1fV1JfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTgKKyNkZWZpbmUgbW1ETUNVX0lSQU1fV1JfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9JUkFNX1JEX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU5CisjZGVmaW5lIG1tRE1DVV9JUkFNX1JEX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfSVJBTV9SRF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlYQorI2RlZmluZSBtbURNQ1VfSVJBTV9SRF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0VWRU5UX1RSSUdHRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWIKKyNkZWZpbmUgbW1ETUNVX0VWRU5UX1RSSUdHRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVjCisjZGVmaW5lIG1tRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfU1NfSU5URVJSVVBUX0NOVExfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlZAorI2RlZmluZSBtbURNQ1VfU1NfSU5URVJSVVBUX0NOVExfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWUKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVmCisjZGVmaW5lIG1tRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfSU5URVJSVVBUX1RPX0hPU1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmMAorI2RlZmluZSBtbURNQ1VfSU5URVJSVVBUX1RPX0hPU1RfRU5fTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjEKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGYyCisjZGVmaW5lIG1tRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmMworI2RlZmluZSBtbURNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjQKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfRE1DVV9TQ1JBVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGY1CisjZGVmaW5lIG1tRENfRE1DVV9TQ1JBVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfSU5UX0NOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmNgorI2RlZmluZSBtbURNQ1VfSU5UX0NOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0ZXX0NIRUNLU1VNX1NNUExfQllURV9QT1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjcKKyNkZWZpbmUgbW1ETUNVX0ZXX0NIRUNLU1VNX1NNUExfQllURV9QT1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9VQ19DTEtfR0FUSU5HX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGY4CisjZGVmaW5lIG1tRE1DVV9VQ19DTEtfR0FUSU5HX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1BU1RFUl9DT01NX0RBVEFfUkVHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmOQorI2RlZmluZSBtbU1BU1RFUl9DT01NX0RBVEFfUkVHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQVNURVJfQ09NTV9EQVRBX1JFRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZmEKKyNkZWZpbmUgbW1NQVNURVJfQ09NTV9EQVRBX1JFRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUFTVEVSX0NPTU1fREFUQV9SRUczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGZiCisjZGVmaW5lIG1tTUFTVEVSX0NPTU1fREFUQV9SRUczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1BU1RFUl9DT01NX0NNRF9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmYworI2RlZmluZSBtbU1BU1RFUl9DT01NX0NNRF9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQVNURVJfQ09NTV9DTlRMX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZmQKKyNkZWZpbmUgbW1NQVNURVJfQ09NTV9DTlRMX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tU0xBVkVfQ09NTV9EQVRBX1JFRzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGZlCisjZGVmaW5lIG1tU0xBVkVfQ09NTV9EQVRBX1JFRzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVNMQVZFX0NPTU1fREFUQV9SRUcyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZgorI2RlZmluZSBtbVNMQVZFX0NPTU1fREFUQV9SRUcyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1TTEFWRV9DT01NX0RBVEFfUkVHMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAKKyNkZWZpbmUgbW1TTEFWRV9DT01NX0RBVEFfUkVHM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tU0xBVkVfQ09NTV9DTURfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAxCisjZGVmaW5lIG1tU0xBVkVfQ09NTV9DTURfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVNMQVZFX0NPTU1fQ05UTF9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMgorI2RlZmluZSBtbVNMQVZFX0NPTU1fQ05UTF9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDUKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA2CisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNworI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDgKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA5CisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYQorI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0syICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGIKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0syX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBjCisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwZAorI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGUKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBmCisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExMAorI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTEKKyNkZWZpbmUgbW1ETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTEyCisjZGVmaW5lIG1tRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExMworI2RlZmluZSBtbURNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTQKKyNkZWZpbmUgbW1ETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE1CisjZGVmaW5lIG1tRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExNgorI2RlZmluZSBtbURNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTkKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFhCisjZGVmaW5lIG1tRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYgorI2RlZmluZSBtbURNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0lOVF9DTlRfQ09OVElOVUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWMKKyNkZWZpbmUgbW1ETUNVX0lOVF9DTlRfQ09OVElOVUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFkCisjZGVmaW5lIG1tRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VfSU5URVJSVVBUX1NUQVRVU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZQorI2RlZmluZSBtbURNQ1VfSU5URVJSVVBUX1NUQVRVU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWYKKyNkZWZpbmUgbW1ETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZG11X2loY19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbURDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyNgorI2RlZmluZSBtbURDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVlNUQVJUVVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjcKKyNkZWZpbmUgbW1EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVlNUQVJUVVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BVX1RJTUVSX1JFQUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTI4CisjZGVmaW5lIG1tRENfR1BVX1RJTUVSX1JFQURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQVV9USU1FUl9SRUFEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyOQorI2RlZmluZSBtbURDX0dQVV9USU1FUl9SRUFEX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMmEKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTJiCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyYworI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMmQKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTJlCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyZgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzAKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMxCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzMKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM0CisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNQorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzYKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM3CisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzOAorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzkKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNhCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2MKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNkCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZQorI2RlZmluZSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2YKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQwCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WUkVBRFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MQorI2RlZmluZSBtbURDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WUkVBRFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRkxJUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDIKKyNkZWZpbmUgbW1EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRkxJUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZfVVBEQVRFX05PX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQzCisjZGVmaW5lIG1tRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZfVVBEQVRFX05PX0xPQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0NAorI2RlZmluZSBtbURDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDUKKyNkZWZpbmUgbW1ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ2CisjZGVmaW5lIG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDQ0dfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0NworI2RlZmluZSBtbURDQ0dfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETVVfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDgKKyNkZWZpbmUgbW1ETVVfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENQR19JTlRFUlJVUFRfREVTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ5CisjZGVmaW5lIG1tRENQR19JTlRFUlJVUFRfREVTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDUEdfSU5URVJSVVBUX0RFU1QyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0YQorI2RlZmluZSBtbURDUEdfSU5URVJSVVBUX0RFU1QyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NTUhVQkJVQl9JTlRFUlJVUFRfREVTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNGIKKyNkZWZpbmUgbW1NTUhVQkJVQl9JTlRFUlJVUFRfREVTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTRjCisjZGVmaW5lIG1tV0JfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCX0lOVEVSUlVQVF9ERVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0ZAorI2RlZmluZSBtbURDSFVCX0lOVEVSUlVQVF9ERVNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNGUKKyNkZWZpbmUgbW1EQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJfSU5URVJSVVBUX0RFU1QyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTRmCisjZGVmaW5lIG1tRENIVUJfSU5URVJSVVBUX0RFU1QyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQUF9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1MAorI2RlZmluZSBtbURQUF9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTEKKyNkZWZpbmUgbW1NUENfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQX0lOVEVSUlVQVF9ERVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTUyCisjZGVmaW5lIG1tT1BQX0lOVEVSUlVQVF9ERVNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QVENfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1MworI2RlZmluZSBtbU9QVENfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX0lOVEVSUlVQVF9ERVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTQKKyNkZWZpbmUgbW1PVEcwX0lOVEVSUlVQVF9ERVNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9JTlRFUlJVUFRfREVTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU1CisjZGVmaW5lIG1tT1RHMV9JTlRFUlJVUFRfREVTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1NgorI2RlZmluZSBtbU9URzJfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX0lOVEVSUlVQVF9ERVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTcKKyNkZWZpbmUgbW1PVEczX0lOVEVSUlVQVF9ERVNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9JTlRFUlJVUFRfREVTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU4CisjZGVmaW5lIG1tT1RHNF9JTlRFUlJVUFRfREVTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1OQorI2RlZmluZSBtbU9URzVfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUdfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWEKKyNkZWZpbmUgbW1ESUdfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSTJDX0REQ19IUERfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTViCisjZGVmaW5lIG1tSTJDX0REQ19IUERfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJT19JTlRFUlJVUFRfREVTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1ZAorI2RlZmluZSBtbURJT19JTlRFUlJVUFRfREVTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0lPX0lOVEVSUlVQVF9ERVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWUKKyNkZWZpbmUgbW1EQ0lPX0lOVEVSUlVQVF9ERVNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFBEX0lOVEVSUlVQVF9ERVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVmCisjZGVmaW5lIG1tSFBEX0lOVEVSUlVQVF9ERVNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaX0lOVEVSUlVQVF9ERVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MAorI2RlZmluZSBtbUFaX0lOVEVSUlVQVF9ERVNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BVVhfSU5URVJSVVBUX0RFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjEKKyNkZWZpbmUgbW1BVVhfSU5URVJSVVBUX0RFU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDX0lOVEVSUlVQVF9ERVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYyCisjZGVmaW5lIG1tRFNDX0lOVEVSUlVQVF9ERVNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX3diMF9kaXNwZGVjX2Nudl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbVdCX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkYQorI2RlZmluZSBtbVdCX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQl9FQ19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZGIKKyNkZWZpbmUgbW1XQl9FQ19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWRjCisjZGVmaW5lIG1tQ05WX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVl9XSU5ET1dfU1RBUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkZAorI2RlZmluZSBtbUNOVl9XSU5ET1dfU1RBUlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZfV0lORE9XX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZGUKKyNkZWZpbmUgbW1DTlZfV0lORE9XX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWRmCisjZGVmaW5lIG1tQ05WX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVl9TT1VSQ0VfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMAorI2RlZmluZSBtbUNOVl9TT1VSQ0VfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZfVEVTVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWUKKyNkZWZpbmUgbW1DTlZfVEVTVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WX1RFU1RfQ1JDX1JFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVmCisjZGVmaW5lIG1tQ05WX1RFU1RfQ1JDX1JFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVl9URVNUX0NSQ19HUkVFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMAorI2RlZmluZSBtbUNOVl9URVNUX0NSQ19HUkVFTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZfVEVTVF9DUkNfQkxVRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjEKKyNkZWZpbmUgbW1DTlZfVEVTVF9DUkNfQkxVRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JfREVCVUdfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYyCisjZGVmaW5lIG1tV0JfREVCVUdfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCX0RCR19NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMworI2RlZmluZSBtbVdCX0RCR19NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQl9IV19ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjQKKyNkZWZpbmUgbW1XQl9IV19ERUJVR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JfU09GVF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWY1CisjZGVmaW5lIG1tV0JfU09GVF9SRVNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCX1dBUk1fVVBfTU9ERV9DVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmNgorI2RlZmluZSBtbVdCX1dBUk1fVVBfTU9ERV9DVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQl9XQVJNX1VQX01PREVfQ1RMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjcKKyNkZWZpbmUgbW1XQl9XQVJNX1VQX01PREVfQ1RMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WX1RFU1RfREVCVUdfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWY4CisjZGVmaW5lIG1tQ05WX1RFU1RfREVCVUdfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVl9URVNUX0RFQlVHX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmOQorI2RlZmluZSBtbUNOVl9URVNUX0RFQlVHX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY193YjBfZGlzcGRlY193YnNjbF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbVdCU0NMX0NPRUZfUkFNX1NFTEVDVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYQorI2RlZmluZSBtbVdCU0NMX0NPRUZfUkFNX1NFTEVDVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQlNDTF9DT0VGX1JBTV9UQVBfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGIKKyNkZWZpbmUgbW1XQlNDTF9DT0VGX1JBTV9UQVBfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JTQ0xfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBjCisjZGVmaW5lIG1tV0JTQ0xfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCU0NMX1RBUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwZAorI2RlZmluZSBtbVdCU0NMX1RBUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQlNDTF9ERVNUX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGUKKyNkZWZpbmUgbW1XQlNDTF9ERVNUX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JTQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBmCisjZGVmaW5lIG1tV0JTQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCU0NMX0hPUlpfRklMVEVSX0lOSVRfWV9SR0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMAorI2RlZmluZSBtbVdCU0NMX0hPUlpfRklMVEVSX0lOSVRfWV9SR0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQlNDTF9IT1JaX0ZJTFRFUl9JTklUX0NCQ1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTEKKyNkZWZpbmUgbW1XQlNDTF9IT1JaX0ZJTFRFUl9JTklUX0NCQ1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JTQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjEyCisjZGVmaW5lIG1tV0JTQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCU0NMX1ZFUlRfRklMVEVSX0lOSVRfWV9SR0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMworI2RlZmluZSBtbVdCU0NMX1ZFUlRfRklMVEVSX0lOSVRfWV9SR0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQlNDTF9WRVJUX0ZJTFRFUl9JTklUX0NCQ1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTQKKyNkZWZpbmUgbW1XQlNDTF9WRVJUX0ZJTFRFUl9JTklUX0NCQ1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JTQ0xfUk9VTkRfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE1CisjZGVmaW5lIG1tV0JTQ0xfUk9VTkRfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCU0NMX09WRVJGTE9XX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxNgorI2RlZmluZSBtbVdCU0NMX09WRVJGTE9XX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQlNDTF9DT0VGX1JBTV9DT05GTElDVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTcKKyNkZWZpbmUgbW1XQlNDTF9DT0VGX1JBTV9DT05GTElDVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JTQ0xfVEVTVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE4CisjZGVmaW5lIG1tV0JTQ0xfVEVTVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCU0NMX1RFU1RfQ1JDX1JFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxOQorI2RlZmluZSBtbVdCU0NMX1RFU1RfQ1JDX1JFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQlNDTF9URVNUX0NSQ19HUkVFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMWEKKyNkZWZpbmUgbW1XQlNDTF9URVNUX0NSQ19HUkVFTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JTQ0xfVEVTVF9DUkNfQkxVRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjFiCisjZGVmaW5lIG1tV0JTQ0xfVEVTVF9DUkNfQkxVRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCU0NMX0JBQ0tQUkVTU1VSRV9DTlRfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxYworI2RlZmluZSBtbVdCU0NMX0JBQ0tQUkVTU1VSRV9DTlRfRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQl9NQ0lGX0JBQ0tQUkVTU1VSRV9DTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMWQKKyNkZWZpbmUgbW1XQl9NQ0lGX0JBQ0tQUkVTU1VSRV9DTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JTQ0xfQ0xBTVBfWV9SR0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjFlCisjZGVmaW5lIG1tV0JTQ0xfQ0xBTVBfWV9SR0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCU0NMX0NMQU1QX0NCQ1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxZgorI2RlZmluZSBtbVdCU0NMX0NMQU1QX0NCQ1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQlNDTF9PVVRTSURFX1BJWF9TVFJBVEVHWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjAKKyNkZWZpbmUgbW1XQlNDTF9PVVRTSURFX1BJWF9TVFJBVEVHWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JTQ0xfT1VUU0lERV9QSVhfU1RSQVRFR1lfQ0JDUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIxCisjZGVmaW5lIG1tV0JTQ0xfT1VUU0lERV9QSVhfU1RSQVRFR1lfQ0JDUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCU0NMX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMgorI2RlZmluZSBtbVdCU0NMX0RFQlVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQlNDTF9URVNUX0RFQlVHX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjMKKyNkZWZpbmUgbW1XQlNDTF9URVNUX0RFQlVHX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JTQ0xfVEVTVF9ERUJVR19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI0CisjZGVmaW5lIG1tV0JTQ0xfVEVTVF9ERUJVR19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX3diMF9kaXNwZGVjX3diX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg4ZTgKKyNkZWZpbmUgbW1EQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2EKKyNkZWZpbmUgbW1EQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNiCisjZGVmaW5lIG1tRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYworI2RlZmluZSBtbURDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OM19QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2QKKyNkZWZpbmUgbW1EQ19QRVJGTU9OM19QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNlCisjZGVmaW5lIG1tRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04zX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZgorI2RlZmluZSBtbURDX1BFUkZNT04zX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OM19QRVJGTU9OX0NWQUxVRV9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAKKyNkZWZpbmUgbW1EQ19QRVJGTU9OM19QRVJGTU9OX0NWQUxVRV9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjNfUEVSRk1PTl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQxCisjZGVmaW5lIG1tRENfUEVSRk1PTjNfUEVSRk1PTl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04zX1BFUkZNT05fTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MgorI2RlZmluZSBtbURDX1BFUkZNT04zX1BFUkZNT05fTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tbWh1YmJ1Yl9tY2lmX3diMF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9DVVJfTElORV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjMKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9DVVJfTElORV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmI0CisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGX1BJVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiNQorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGX1BJVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjYKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9TVEFUVVMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmI3CisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiOAorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjkKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJhCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmMKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9TVEFUVVMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJkCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQVJCSVRSQVRJT05fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiZQorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQVJCSVRSQVRJT05fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX1NDTEtfQ0hBTkdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmYKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX1NDTEtfQ0hBTkdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMwCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMQorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMzCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzFfQUREUl9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNAorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzFfQUREUl9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfQ19PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzUKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfQ19PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM2CisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNworI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzgKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM5CisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjYQorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX0FERFJfWV9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyY2IKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX0FERFJfWV9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmNjCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjZAorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyY2UKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmNmCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzRfQUREUl9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMAorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzRfQUREUl9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfQ19PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDEKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfQ19PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfTkJfUFNUQVRFX0xBVEVOQ1lfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMworI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfTkJfUFNUQVRFX0xBVEVOQ1lfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX05CX1BTVEFURV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDQKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX05CX1BTVEFURV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ1CisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQ0xPQ0tfR0FURVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQ0xPQ0tfR0FURVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX1dBUk1fVVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDcKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX1dBUk1fVVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ4CisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01VTFRJX0xFVkVMX1FPU19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkOQorI2RlZmluZSBtbU1DSUZfV0IwX01VTFRJX0xFVkVMX1FPU19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX1NFQ1VSSVRZX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZGEKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX1NFQ1VSSVRZX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfTFVNQV9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmRiCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfTFVNQV9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGX0NIUk9NQV9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkYworI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGX0NIUk9NQV9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfWV9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZGQKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfWV9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX0NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmRlCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX0NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkZgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfQ19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTAKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfQ19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX1lfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmUxCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX1lfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfWV9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTMKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfWV9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX0NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU0CisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX0NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlNQorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTYKKyNkZWZpbmUgbW1NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU3CisjZGVmaW5lIG1tTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlOAorI2RlZmluZSBtbU1DSUZfV0IwX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tbWh1YmJ1Yl9tY2lmX3diMV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTAwCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMworI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjQKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfUElUQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY1CisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfUElUQ0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjcKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY4CisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmOQorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZmEKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19TVEFUVVMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmZiCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19TVEFUVVMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmYworI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZmQKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmZlCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfU0NMS19DSEFOR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmZgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfU0NMS19DSEFOR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX1RFU1RfREVCVUdfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX1RFU1RfREVCVUdfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9URVNUX0RFQlVHX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAxCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9URVNUX0RFQlVHX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX0FERFJfWV9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDMKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX0FERFJfWV9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzA0CisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9DX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwNQorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9DX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDYKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX1lfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzA3CisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX1lfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzJfQUREUl9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwOAorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzJfQUREUl9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfQ19PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDkKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfQ19PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzBhCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9ZX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwYgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9ZX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMGMKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX0NfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzBkCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX0NfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwZQorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X0FERFJfWV9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMGYKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X0FERFJfWV9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEwCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9DX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMQorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9DX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9OQl9QU1RBVEVfTEFURU5DWV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEzCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9OQl9QU1RBVEVfTEFURU5DWV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNAorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTUKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9DTE9DS19HQVRFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE2CisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9DTE9DS19HQVRFUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfV0FSTV9VUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNworI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfV0FSTV9VUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX1NFTEZfUkVGUkVTSF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTgKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX1NFTEZfUkVGUkVTSF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTVVMVElfTEVWRUxfUU9TX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE5CisjZGVmaW5lIG1tTUNJRl9XQjFfTVVMVElfTEVWRUxfUU9TX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGX0xVTUFfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGX0xVTUFfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl9DSFJPTUFfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWMKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl9DSFJPTUFfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX1lfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFkCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX1lfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxZQorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfWV9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWYKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfWV9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX0NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzIwCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX0NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyMQorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfQ19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfQ19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX1lfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzIzCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX1lfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyNAorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjUKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI2CisjZGVmaW5lIG1tTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyNworI2RlZmluZSBtbU1DSUZfV0IxX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjgKKyNkZWZpbmUgbW1NQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbW1odWJidWJfbW1odWJidWJfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1XQklGMF9NSVNDX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMzMKKyNkZWZpbmUgbW1XQklGMF9NSVNDX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tV0JJRjBfU01VX1dNX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzM0CisjZGVmaW5lIG1tV0JJRjBfU01VX1dNX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVdCSUYwX1BIQVNFMF9PVVRTVEFORElOR19DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMzNQorI2RlZmluZSBtbVdCSUYwX1BIQVNFMF9PVVRTVEFORElOR19DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1XQklGMF9QSEFTRTFfT1VUU1RBTkRJTkdfQ09VTlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMzYKKyNkZWZpbmUgbW1XQklGMF9QSEFTRTFfT1VUU1RBTkRJTkdfQ09VTlRFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tVkdBX1NSQ19TUExJVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzNmCisjZGVmaW5lIG1tVkdBX1NSQ19TUExJVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1NSFVCQlVCX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MAorI2RlZmluZSBtbU1NSFVCQlVCX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NTUhVQkJVQl9NRU1fUFdSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDEKKyNkZWZpbmUgbW1NTUhVQkJVQl9NRU1fUFdSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTU1IVUJCVUJfQ0xPQ0tfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQyCisjZGVmaW5lIG1tTU1IVUJCVUJfQ0xPQ0tfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1NSFVCQlVCX1NPRlRfUkVTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MworI2RlZmluZSBtbU1NSFVCQlVCX1NPRlRfUkVTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETVVfSUZfRVJSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDcKKyNkZWZpbmUgbW1ETVVfSUZfRVJSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTU1IVUJCVUJfQ0xJRU5UX1VOSVRfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ4CisjZGVmaW5lIG1tTU1IVUJCVUJfQ0xJRU5UX1VOSVRfSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21taHViYnViX3ZnYWlmX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tTUNJRl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRhCisjZGVmaW5lIG1tTUNJRl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV1JJVEVfQ09NQklORV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0YgorI2RlZmluZSBtbU1DSUZfV1JJVEVfQ09NQklORV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1BIQVNFMF9PVVRTVEFORElOR19DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGUKKyNkZWZpbmUgbW1NQ0lGX1BIQVNFMF9PVVRTVEFORElOR19DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9QSEFTRTFfT1VUU1RBTkRJTkdfQ09VTlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRmCisjZGVmaW5lIG1tTUNJRl9QSEFTRTFfT1VUU1RBTkRJTkdfQ09VTlRFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfUEhBU0UyX09VVFNUQU5ESU5HX0NPVU5URVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MAorI2RlZmluZSBtbU1DSUZfUEhBU0UyX09VVFNUQU5ESU5HX0NPVU5URVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tbWh1YmJ1Yl9tbWh1YmJ1Yl9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4ZDQ4CisjZGVmaW5lIG1tRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzUyCisjZGVmaW5lIG1tRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT040X1BFUkZDT1VOVEVSX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MworI2RlZmluZSBtbURDX1BFUkZNT040X1BFUkZDT1VOVEVSX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTQKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjRfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzU1CisjZGVmaW5lIG1tRENfUEVSRk1PTjRfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT040X1BFUkZNT05fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1NgorI2RlZmluZSBtbURDX1BFUkZNT040X1BFUkZNT05fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTcKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjRfUEVSRk1PTl9DVkFMVUVfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzU4CisjZGVmaW5lIG1tRENfUEVSRk1PTjRfUEVSRk1PTl9DVkFMVUVfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT040X1BFUkZNT05fSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1OQorI2RlZmluZSBtbURDX1BFUkZNT040X1BFUkZNT05fSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONF9QRVJGTU9OX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNWEKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONF9QRVJGTU9OX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBzdHJlYW0wX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tQVpGMFNUUkVBTTBfQVpBTElBX1NUUkVBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzVlCisjZGVmaW5lIG1tQVpGMFNUUkVBTTBfQVpBTElBX1NUUkVBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaRjBTVFJFQU0wX0FaQUxJQV9TVFJFQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1ZgorI2RlZmluZSBtbUFaRjBTVFJFQU0wX0FaQUxJQV9TVFJFQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMHN0cmVhbTFfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDgKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMV9BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjAKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMV9BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTTFfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzYxCisjZGVmaW5lIG1tQVpGMFNUUkVBTTFfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtMl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTAKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMl9BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjIKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMl9BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTTJfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzYzCisjZGVmaW5lIG1tQVpGMFNUUkVBTTJfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtM19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTgKKyNkZWZpbmUgbW1BWkYwU1RSRUFNM19BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjQKKyNkZWZpbmUgbW1BWkYwU1RSRUFNM19BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTTNfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzY1CisjZGVmaW5lIG1tQVpGMFNUUkVBTTNfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtNF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MjAKKyNkZWZpbmUgbW1BWkYwU1RSRUFNNF9BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjYKKyNkZWZpbmUgbW1BWkYwU1RSRUFNNF9BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTTRfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzY3CisjZGVmaW5lIG1tQVpGMFNUUkVBTTRfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtNV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MjgKKyNkZWZpbmUgbW1BWkYwU1RSRUFNNV9BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjgKKyNkZWZpbmUgbW1BWkYwU1RSRUFNNV9BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTTVfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzY5CisjZGVmaW5lIG1tQVpGMFNUUkVBTTVfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtNl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MzAKKyNkZWZpbmUgbW1BWkYwU1RSRUFNNl9BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmEKKyNkZWZpbmUgbW1BWkYwU1RSRUFNNl9BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTTZfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZiCisjZGVmaW5lIG1tQVpGMFNUUkVBTTZfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtN19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MzgKKyNkZWZpbmUgbW1BWkYwU1RSRUFNN19BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmMKKyNkZWZpbmUgbW1BWkYwU1RSRUFNN19BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTTdfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZkCisjZGVmaW5lIG1tQVpGMFNUUkVBTTdfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hel9taXNjX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tQVpfQ0xPQ0tfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcyCisjZGVmaW5lIG1tQVpfQ0xPQ0tfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hel9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4ZGU4CisjZGVmaW5lIG1tRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzdhCisjZGVmaW5lIG1tRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT041X1BFUkZDT1VOVEVSX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3YgorI2RlZmluZSBtbURDX1BFUkZNT041X1BFUkZDT1VOVEVSX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzN2MKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjVfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzdkCisjZGVmaW5lIG1tRENfUEVSRk1PTjVfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT041X1BFUkZNT05fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3ZQorI2RlZmluZSBtbURDX1BFUkZNT041X1BFUkZNT05fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzN2YKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjVfUEVSRk1PTl9DVkFMVUVfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwCisjZGVmaW5lIG1tRENfUEVSRk1PTjVfUEVSRk1PTl9DVkFMVUVfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT041X1BFUkZNT05fSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MQorI2RlZmluZSBtbURDX1BFUkZNT041X1BFUkZNT05fSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONV9QRVJGTU9OX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONV9QRVJGTU9OX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBlbmRwb2ludDBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODYKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg3CisjZGVmaW5lIG1tQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwZW5kcG9pbnQxX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxOAorI2RlZmluZSBtbUFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4YworI2RlZmluZSBtbUFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOGQKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBlbmRwb2ludDJfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDMwCisjZGVmaW5lIG1tQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzkyCisjZGVmaW5lIG1tQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5MworI2RlZmluZSBtbUFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGVuZHBvaW50M19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NDgKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOTgKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzk5CisjZGVmaW5lIG1tQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwZW5kcG9pbnQ0X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2MAorI2RlZmluZSBtbUFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5ZQorI2RlZmluZSBtbUFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWYKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBlbmRwb2ludDVfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDc4CisjZGVmaW5lIG1tQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E0CisjZGVmaW5lIG1tQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNQorI2RlZmluZSBtbUFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGVuZHBvaW50Nl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4OTAKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYWEKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2FiCisjZGVmaW5lIG1tQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwZW5kcG9pbnQ3X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHhhOAorI2RlZmluZSBtbUFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNiMAorI2RlZmluZSBtbUFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYjEKKyNkZWZpbmUgbW1BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBjb250cm9sbGVyX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tQVpBTElBX0NPTlRST0xMRVJfQ0xPQ0tfR0FUSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MyCisjZGVmaW5lIG1tQVpBTElBX0NPTlRST0xMRVJfQ0xPQ0tfR0FUSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9BVURJT19EVE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMworI2RlZmluZSBtbUFaQUxJQV9BVURJT19EVE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfQVVESU9fRFRPX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzQKKyNkZWZpbmUgbW1BWkFMSUFfQVVESU9fRFRPX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX1NPQ0NMS19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M1CisjZGVmaW5lIG1tQVpBTElBX1NPQ0NMS19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9VTkRFUkZMT1dfRklMTEVSX1NBTVBMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNgorI2RlZmluZSBtbUFaQUxJQV9VTkRFUkZMT1dfRklMTEVSX1NBTVBMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfREFUQV9ETUFfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzcKKyNkZWZpbmUgbW1BWkFMSUFfREFUQV9ETUFfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0JETF9ETUFfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M4CisjZGVmaW5lIG1tQVpBTElBX0JETF9ETUFfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9SSVJCX0FORF9EUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjOQorI2RlZmluZSBtbUFaQUxJQV9SSVJCX0FORF9EUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfQ09SQl9ETUFfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2EKKyNkZWZpbmUgbW1BWkFMSUFfQ09SQl9ETUFfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0FQUExJQ0FUSU9OX1BPU0lUSU9OX0lOX0NZQ0xJQ19CVUZGRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2QxCisjZGVmaW5lIG1tQVpBTElBX0FQUExJQ0FUSU9OX1BPU0lUSU9OX0lOX0NZQ0xJQ19CVUZGRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9DWUNMSUNfQlVGRkVSX1NZTkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkMgorI2RlZmluZSBtbUFaQUxJQV9DWUNMSUNfQlVGRkVSX1NZTkNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfR0xPQkFMX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDMKKyNkZWZpbmUgbW1BWkFMSUFfR0xPQkFMX0NBUEFCSUxJVElFU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX09VVFBVVF9QQVlMT0FEX0NBUEFCSUxJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q0CisjZGVmaW5lIG1tQVpBTElBX09VVFBVVF9QQVlMT0FEX0NBUEFCSUxJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9PVVRQVVRfU1RSRUFNX0FSQklURVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkNQorI2RlZmluZSBtbUFaQUxJQV9PVVRQVVRfU1RSRUFNX0FSQklURVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfSU5QVVRfUEFZTE9BRF9DQVBBQklMSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDYKKyNkZWZpbmUgbW1BWkFMSUFfSU5QVVRfUEFZTE9BRF9DQVBBQklMSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q5CisjZGVmaW5lIG1tQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9JTlBVVF9DUkMwX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYQorI2RlZmluZSBtbUFaQUxJQV9JTlBVVF9DUkMwX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfSU5QVVRfQ1JDMF9DT05UUk9MMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGIKKyNkZWZpbmUgbW1BWkFMSUFfSU5QVVRfQ1JDMF9DT05UUk9MMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RjCisjZGVmaW5lIG1tQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9JTlBVVF9DUkMwX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZAorI2RlZmluZSBtbUFaQUxJQV9JTlBVVF9DUkMwX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfSU5QVVRfQ1JDMV9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGUKKyNkZWZpbmUgbW1BWkFMSUFfSU5QVVRfQ1JDMV9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0lOUFVUX0NSQzFfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RmCisjZGVmaW5lIG1tQVpBTElBX0lOUFVUX0NSQzFfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlMAorI2RlZmluZSBtbUFaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfSU5QVVRfQ1JDMV9DT05UUk9MMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTEKKyNkZWZpbmUgbW1BWkFMSUFfSU5QVVRfQ1JDMV9DT05UUk9MM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0lOUFVUX0NSQzFfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2UyCisjZGVmaW5lIG1tQVpBTElBX0lOUFVUX0NSQzFfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9DUkMwX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlMworI2RlZmluZSBtbUFaQUxJQV9DUkMwX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfQ1JDMF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTQKKyNkZWZpbmUgbW1BWkFMSUFfQ1JDMF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0NSQzBfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2U1CisjZGVmaW5lIG1tQVpBTElBX0NSQzBfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9DUkMwX0NPTlRST0wzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlNgorI2RlZmluZSBtbUFaQUxJQV9DUkMwX0NPTlRST0wzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfQ1JDMF9SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTcKKyNkZWZpbmUgbW1BWkFMSUFfQ1JDMF9SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0NSQzFfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2U4CisjZGVmaW5lIG1tQVpBTElBX0NSQzFfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9DUkMxX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlOQorI2RlZmluZSBtbUFaQUxJQV9DUkMxX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfQ1JDMV9DT05UUk9MMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZWEKKyNkZWZpbmUgbW1BWkFMSUFfQ1JDMV9DT05UUk9MMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0NSQzFfQ09OVFJPTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ViCisjZGVmaW5lIG1tQVpBTElBX0NSQzFfQ09OVFJPTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9DUkMxX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlYworI2RlZmluZSBtbUFaQUxJQV9DUkMxX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZWUKKyNkZWZpbmUgbW1BWkFMSUFfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2VmCisjZGVmaW5lIG1tQVpBTElBX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwcm9vdF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbUFaQUxJQV9GMF9DT0RFQ19ST09UX1BBUkFNRVRFUl9WRU5ET1JfQU5EX0RFVklDRV9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNgorI2RlZmluZSBtbUFaQUxJQV9GMF9DT0RFQ19ST09UX1BBUkFNRVRFUl9WRU5ET1JfQU5EX0RFVklDRV9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfRjBfQ09ERUNfUk9PVF9QQVJBTUVURVJfUkVWSVNJT05fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDcKKyNkZWZpbmUgbW1BWkFMSUFfRjBfQ09ERUNfUk9PVF9QQVJBTUVURVJfUkVWSVNJT05fSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0YwX0NPREVDX0NIQU5ORUxfQ09VTlRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA4CisjZGVmaW5lIG1tQVpBTElBX0YwX0NPREVDX0NIQU5ORUxfQ09VTlRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9GMF9DT0RFQ19SRVNZTkNfRklGT19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwOQorI2RlZmluZSBtbUFaQUxJQV9GMF9DT0RFQ19SRVNZTkNfRklGT19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX0dST1VQX1RZUEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MGEKKyNkZWZpbmUgbW1BWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX0dST1VQX1RZUEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDBiCisjZGVmaW5lIG1tQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwYworI2RlZmluZSBtbUFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1BPV0VSX1NUQVRFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MGQKKyNkZWZpbmUgbW1BWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1BPV0VSX1NUQVRFU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUE9XRVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDBlCisjZGVmaW5lIG1tQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUE9XRVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwZgorI2RlZmluZSBtbUFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MTAKKyNkZWZpbmUgbW1BWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfQ09OVkVSVEVSX1NZTkNIUk9OSVpBVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDExCisjZGVmaW5lIG1tQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfQ09OVkVSVEVSX1NZTkNIUk9OSVpBVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNDX1JDVV9EQ19BVURJT19QT1JUX0NPTk5FQ1RJVklUWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQxMgorI2RlZmluZSBtbUNDX1JDVV9EQ19BVURJT19QT1JUX0NPTk5FQ1RJVklUWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DQ19SQ1VfRENfQVVESU9fSU5QVVRfUE9SVF9DT05ORUNUSVZJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MTMKKyNkZWZpbmUgbW1DQ19SQ1VfRENfQVVESU9fSU5QVVRfUE9SVF9DT05ORUNUSVZJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDE1CisjZGVmaW5lIG1tQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQxNgorI2RlZmluZSBtbUFaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MTcKKyNkZWZpbmUgbW1BWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDE4CisjZGVmaW5lIG1tQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQxOQorI2RlZmluZSBtbUFaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MWEKKyNkZWZpbmUgbW1BWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQ2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDFiCisjZGVmaW5lIG1tQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQ2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJFR19EQ19BVURJT19QT1JUX0NPTk5FQ1RJVklUWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQxYworI2RlZmluZSBtbVJFR19EQ19BVURJT19QT1JUX0NPTk5FQ1RJVklUWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRUdfRENfQVVESU9fSU5QVVRfUE9SVF9DT05ORUNUSVZJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MWQKKyNkZWZpbmUgbW1SRUdfRENfQVVESU9fSU5QVVRfUE9SVF9DT05ORUNUSVZJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBzdHJlYW04X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgzMjAKKyNkZWZpbmUgbW1BWkYwU1RSRUFNOF9BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MjYKKyNkZWZpbmUgbW1BWkYwU1RSRUFNOF9BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTThfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDI3CisjZGVmaW5lIG1tQVpGMFNUUkVBTThfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtOV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MzI4CisjZGVmaW5lIG1tQVpGMFNUUkVBTTlfQVpBTElBX1NUUkVBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDI4CisjZGVmaW5lIG1tQVpGMFNUUkVBTTlfQVpBTElBX1NUUkVBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaRjBTVFJFQU05X0FaQUxJQV9TVFJFQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQyOQorI2RlZmluZSBtbUFaRjBTVFJFQU05X0FaQUxJQV9TVFJFQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMHN0cmVhbTEwX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgzMzAKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMTBfQVpBTElBX1NUUkVBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MmEKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMTBfQVpBTElBX1NUUkVBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTTEwX0FaQUxJQV9TVFJFQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDJiCisjZGVmaW5lIG1tQVpGMFNUUkVBTTEwX0FaQUxJQV9TVFJFQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtMTFfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDMzOAorI2RlZmluZSBtbUFaRjBTVFJFQU0xMV9BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQyYworI2RlZmluZSBtbUFaRjBTVFJFQU0xMV9BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMTFfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MmQKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMTFfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBzdHJlYW0xMl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MzQwCisjZGVmaW5lIG1tQVpGMFNUUkVBTTEyX0FaQUxJQV9TVFJFQU1fSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDJlCisjZGVmaW5lIG1tQVpGMFNUUkVBTTEyX0FaQUxJQV9TVFJFQU1fSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaRjBTVFJFQU0xMl9BWkFMSUFfU1RSRUFNX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQyZgorI2RlZmluZSBtbUFaRjBTVFJFQU0xMl9BWkFMSUFfU1RSRUFNX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMHN0cmVhbTEzX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgzNDgKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMTNfQVpBTElBX1NUUkVBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MzAKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMTNfQVpBTElBX1NUUkVBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMFNUUkVBTTEzX0FaQUxJQV9TVFJFQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDMxCisjZGVmaW5lIG1tQVpGMFNUUkVBTTEzX0FaQUxJQV9TVFJFQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtMTRfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDM1MAorI2RlZmluZSBtbUFaRjBTVFJFQU0xNF9BWkFMSUFfU1RSRUFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzMgorI2RlZmluZSBtbUFaRjBTVFJFQU0xNF9BWkFMSUFfU1RSRUFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMTRfQVpBTElBX1NUUkVBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MzMKKyNkZWZpbmUgbW1BWkYwU1RSRUFNMTRfQVpBTElBX1NUUkVBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBzdHJlYW0xNV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MzU4CisjZGVmaW5lIG1tQVpGMFNUUkVBTTE1X0FaQUxJQV9TVFJFQU1fSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDM0CisjZGVmaW5lIG1tQVpGMFNUUkVBTTE1X0FaQUxJQV9TVFJFQU1fSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaRjBTVFJFQU0xNV9BWkFMSUFfU1RSRUFNX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzNQorI2RlZmluZSBtbUFaRjBTVFJFQU0xNV9BWkFMSUFfU1RSRUFNX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGlucHV0ZW5kcG9pbnQwX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDNhCisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzYgorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGlucHV0ZW5kcG9pbnQxX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxMAorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzZQorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0M2YKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBpbnB1dGVuZHBvaW50Ml9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MjAKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NDIKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDQzCisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwaW5wdXRlbmRwb2ludDNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDMwCisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDQ2CisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ0NworI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGlucHV0ZW5kcG9pbnQ0X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg0MAorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ0YQorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NGIKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBpbnB1dGVuZHBvaW50NV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NTAKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NGUKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDRmCisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwaW5wdXRlbmRwb2ludDZfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDYwCisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDUyCisjZGVmaW5lIG1tQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ1MworI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGlucHV0ZW5kcG9pbnQ3X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg3MAorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ1NgorI2RlZmluZSBtbUFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NTcKKyNkZWZpbmUgbW1BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNodWJidWJfaHViYnViX3NkcGlmX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRENIVUJCVUJfU0RQSUZfQ0ZHMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDhmCisjZGVmaW5lIG1tRENIVUJCVUJfU0RQSUZfQ0ZHMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVZNX1JFUVVFU1RfUEhZU0lDQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ5MAorI2RlZmluZSBtbVZNX1JFUVVFU1RfUEhZU0lDQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9GT1JDRV9JT19TVEFUVVNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OTEKKyNkZWZpbmUgbW1EQ0hVQkJVQl9GT1JDRV9JT19TVEFUVVNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDkyCisjZGVmaW5lIG1tRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9GQl9MT0NBVElPTl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ5MworI2RlZmluZSBtbURDTl9WTV9GQl9MT0NBVElPTl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fRkJfTE9DQVRJT05fVE9QICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OTQKKyNkZWZpbmUgbW1EQ05fVk1fRkJfTE9DQVRJT05fVE9QX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0ZCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDk1CisjZGVmaW5lIG1tRENOX1ZNX0ZCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9BR1BfQk9UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ5NgorI2RlZmluZSBtbURDTl9WTV9BR1BfQk9UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQUdQX1RPUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OTcKKyNkZWZpbmUgbW1EQ05fVk1fQUdQX1RPUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0FHUF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDk4CisjZGVmaW5lIG1tRENOX1ZNX0FHUF9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ5OQorI2RlZmluZSBtbURDTl9WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fTE9DQUxfSEJNX0FERFJFU1NfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OWEKKyNkZWZpbmUgbW1EQ05fVk1fTE9DQUxfSEJNX0FERFJFU1NfRU5EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX0xPQ0tfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDliCisjZGVmaW5lIG1tRENOX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX0xPQ0tfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1NEUElGX1BJUEVfU0VDX0xWTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRiOAorI2RlZmluZSBtbURDSFVCQlVCX1NEUElGX1BJUEVfU0VDX0xWTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9TRFBJRl9QSVBFX0RNREFUQV9TRUNfTFZMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YjkKKyNkZWZpbmUgbW1EQ0hVQkJVQl9TRFBJRl9QSVBFX0RNREFUQV9TRUNfTFZMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfU0RQSUZfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGJhCisjZGVmaW5lIG1tRENIVUJCVUJfU0RQSUZfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1NEUElGX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRiYgorI2RlZmluZSBtbURDSFVCQlVCX1NEUElGX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9TRFBJRl9DRkcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YmYKKyNkZWZpbmUgbW1EQ0hVQkJVQl9TRFBJRl9DRkcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfU0RQSUZfQ0ZHMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGMwCisjZGVmaW5lIG1tRENIVUJCVUJfU0RQSUZfQ0ZHMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjaHViYnViX2h1YmJ1Yl9yZXRfcGF0aF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRjZgorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHMF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ZDAKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHMF8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGQxCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcxXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRkMgorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcxXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHMV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ZDMKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHMV8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzJfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGQ0CisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzJfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcyXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRkNQorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcyXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHM18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ZDYKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHM18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGQ3CisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzNfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc0XzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRkOAorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc0XzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHNF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ZDkKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHNF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzVfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGRhCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzVfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc1XzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRkYgorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc1XzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHNl8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ZGMKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHNl8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzZfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGRkCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzZfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc3XzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRkZQorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc3XzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHN18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ZGYKKyNkZWZpbmUgbW1EQ0hVQkJVQl9SRVRfUEFUSF9EQ0NfQ0ZHN18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGVmCisjZGVmaW5lIG1tRENIVUJCVUJfUkVUX1BBVEhfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRmMAorI2RlZmluZSBtbURDSFVCQlVCX1JFVF9QQVRIX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9DUkNfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ZjEKKyNkZWZpbmUgbW1EQ0hVQkJVQl9DUkNfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQ1JDMF9WQUxfUl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGYyCisjZGVmaW5lIG1tRENIVUJCVUJfQ1JDMF9WQUxfUl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0NSQzBfVkFMX0JfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRmMworI2RlZmluZSBtbURDSFVCQlVCX0NSQzBfVkFMX0JfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9DUkMxX1ZBTF9SX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ZjQKKyNkZWZpbmUgbW1EQ0hVQkJVQl9DUkMxX1ZBTF9SX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQ1JDMV9WQUxfQl9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGY1CisjZGVmaW5lIG1tRENIVUJCVUJfQ1JDMV9WQUxfQl9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjaHViYnViX2h1YmJ1Yl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9ERl9SRVFfT1VUU1RBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwNQorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9ERl9SRVFfT1VUU1RBTkRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfU0FUX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MDYKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfU0FUX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX1FPU19GT1JDRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTA3CisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX1FPU19GT1JDRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9EUkFNX1NUQVRFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwOAorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9EUkFNX1NUQVRFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MDkKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTBhCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwYgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MGMKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTBkCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwZQorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfUkVGQ1lDX1BFUl9UUklQX1RPX01FTU9SWV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MGYKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfUkVGQ1lDX1BFUl9UUklQX1RPX01FTU9SWV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTEwCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxMQorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MTIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTEzCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxNAorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MTUKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTE2CisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxNworI2RlZmluZSBtbURDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MTgKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTE5CisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxYQorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MWIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTFjCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxZAorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfVElNRU9VVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MWUKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfVElNRU9VVF9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfR0xPQkFMX1RJTUVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTFmCisjZGVmaW5lIG1tRENIVUJCVUJfR0xPQkFMX1RJTUVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVNVUkZBQ0VfQ0hFQ0swX0FERFJFU1NfTFNCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyMAorI2RlZmluZSBtbVNVUkZBQ0VfQ0hFQ0swX0FERFJFU1NfTFNCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1TVVJGQUNFX0NIRUNLMF9BRERSRVNTX01TQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MjEKKyNkZWZpbmUgbW1TVVJGQUNFX0NIRUNLMF9BRERSRVNTX01TQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tU1VSRkFDRV9DSEVDSzFfQUREUkVTU19MU0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTIyCisjZGVmaW5lIG1tU1VSRkFDRV9DSEVDSzFfQUREUkVTU19MU0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVNVUkZBQ0VfQ0hFQ0sxX0FERFJFU1NfTVNCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyMworI2RlZmluZSBtbVNVUkZBQ0VfQ0hFQ0sxX0FERFJFU1NfTVNCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1TVVJGQUNFX0NIRUNLMl9BRERSRVNTX0xTQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MjQKKyNkZWZpbmUgbW1TVVJGQUNFX0NIRUNLMl9BRERSRVNTX0xTQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tU1VSRkFDRV9DSEVDSzJfQUREUkVTU19NU0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTI1CisjZGVmaW5lIG1tU1VSRkFDRV9DSEVDSzJfQUREUkVTU19NU0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVNVUkZBQ0VfQ0hFQ0szX0FERFJFU1NfTFNCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyNgorI2RlZmluZSBtbVNVUkZBQ0VfQ0hFQ0szX0FERFJFU1NfTFNCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1TVVJGQUNFX0NIRUNLM19BRERSRVNTX01TQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MjcKKyNkZWZpbmUgbW1TVVJGQUNFX0NIRUNLM19BRERSRVNTX01TQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tVlRHMF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTI4CisjZGVmaW5lIG1tVlRHMF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVZURzFfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyOQorI2RlZmluZSBtbVZURzFfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1WVEcyX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MmEKKyNkZWZpbmUgbW1WVEcyX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tVlRHM19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTJiCisjZGVmaW5lIG1tVlRHM19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1NPRlRfUkVTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyZQorI2RlZmluZSBtbURDSFVCQlVCX1NPRlRfUkVTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9DTE9DS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MmYKKyNkZWZpbmUgbW1EQ0hVQkJVQl9DTE9DS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENGQ0xLX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTMwCisjZGVmaW5lIG1tRENGQ0xLX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUzMQorI2RlZmluZSBtbURDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MzIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfVkxJTkVfU05BUFNIT1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTMzCisjZGVmaW5lIG1tRENIVUJCVUJfVkxJTkVfU05BUFNIT1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0NUUkxfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUzNAorI2RlZmluZSBtbURDSFVCQlVCX0NUUkxfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9USU1FT1VUX0RFVEVDVElPTl9DVFJMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1M2EKKyNkZWZpbmUgbW1EQ0hVQkJVQl9USU1FT1VUX0RFVEVDVElPTl9DVFJMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfVElNRU9VVF9ERVRFQ1RJT05fQ1RSTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTNiCisjZGVmaW5lIG1tRENIVUJCVUJfVElNRU9VVF9ERVRFQ1RJT05fQ1RSTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX1RJTUVPVVRfSU5URVJSVVBUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUzYworI2RlZmluZSBtbURDSFVCQlVCX1RJTUVPVVRfSU5URVJSVVBUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9URVNUX0RFQlVHX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1M2QKKyNkZWZpbmUgbW1EQ0hVQkJVQl9URVNUX0RFQlVHX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfVEVTVF9ERUJVR19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTNlCisjZGVmaW5lIG1tRENIVUJCVUJfVEVTVF9ERUJVR19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUzZgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NDAKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTQxCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU0MgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NDMKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTQ0CisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU0NQorI2RlZmluZSBtbURDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NDYKKyNkZWZpbmUgbW1EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0hPU1RWTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTQ3CisjZGVmaW5lIG1tRENIVUJCVUJfQVJCX0hPU1RWTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNT05fQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU0OAorI2RlZmluZSBtbUZNT05fQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2h1YmJ1Yl9kY2h1YmJ1Yl9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTUzNAorI2RlZmluZSBtbURDX1BFUkZNT042X1BFUkZDT1VOVEVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU0ZAorI2RlZmluZSBtbURDX1BFUkZNT042X1BFUkZDT1VOVEVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NGUKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTRmCisjZGVmaW5lIG1tRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT042X1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1MAorI2RlZmluZSBtbURDX1BFUkZNT042X1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONl9QRVJGTU9OX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NTEKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONl9QRVJGTU9OX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTUyCisjZGVmaW5lIG1tRENfUEVSRk1PTjZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1MworI2RlZmluZSBtbURDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONl9QRVJGTU9OX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NTQKKyNkZWZpbmUgbW1EQ19QRVJGTU9ONl9QRVJGTU9OX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjZfUEVSRk1PTl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTU1CisjZGVmaW5lIG1tRENfUEVSRk1PTjZfUEVSRk1PTl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjaHViYnViX2h1YmJ1Yl92bXJxX2lmX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQwX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTU5CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQwX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1YQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NWIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTVjCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1ZAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NWUKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTVmCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2MAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NjEKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTYyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2MworI2RlZmluZSBtbURDTl9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NjQKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTY1CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2NgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NjcKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTY4CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2OQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NmEKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTZiCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2YworI2RlZmluZSBtbURDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NmQKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQzX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTZlCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQzX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2ZgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NzAKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTcxCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3MgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NzMKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTc0CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3NQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NzYKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTc3CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3OAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NzkKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTdhCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3YgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1N2MKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTdkCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3ZQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1N2YKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTgwCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4MQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ODIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ2X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTgzCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ2X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4NAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ODUKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTg2CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4NworI2RlZmluZSBtbURDTl9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ODgKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTg5CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUN19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4YQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUN19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OGIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNThjCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4ZAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OGUKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNThmCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5MAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDhfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OTEKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDhfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTkyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5MworI2RlZmluZSBtbURDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OTQKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTk1CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5NgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OTcKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ5X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTk4CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ5X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5OQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OWEKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTliCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5YworI2RlZmluZSBtbURDTl9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OWQKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTllCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5ZgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YTAKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWExCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YTMKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWE0CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhNQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDExX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YTYKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDExX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWE3CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhOAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YTkKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWFhCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhYgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YWMKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWFkCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhZQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YWYKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWIwCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDViMQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YjIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWIzCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDViNAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YjUKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWI2CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDViNworI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YjgKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWI5CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDViYQorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE0X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YmIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE0X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWJjCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDViZAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YmUKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWJmCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVjMAorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YzEKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWMyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVjMworI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YzQKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWM1CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVjNgorI2RlZmluZSBtbURDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YzcKKyNkZWZpbmUgbW1EQ05fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWM4CisjZGVmaW5lIG1tRENOX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9ERUZBVUxUX0FERFJfTVNCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVjOQorI2RlZmluZSBtbURDTl9WTV9ERUZBVUxUX0FERFJfTVNCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fREVGQVVMVF9BRERSX0xTQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1Y2EKKyNkZWZpbmUgbW1EQ05fVk1fREVGQVVMVF9BRERSX0xTQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0ZBVUxUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWNiCisjZGVmaW5lIG1tRENOX1ZNX0ZBVUxUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDTl9WTV9GQVVMVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVjYworI2RlZmluZSBtbURDTl9WTV9GQVVMVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ05fVk1fRkFVTFRfQUREUl9NU0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1Y2QKKyNkZWZpbmUgbW1EQ05fVk1fRkFVTFRfQUREUl9NU0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENOX1ZNX0ZBVUxUX0FERFJfTFNCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWNlCisjZGVmaW5lIG1tRENOX1ZNX0ZBVUxUX0FERFJfTFNCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDBfZGlzcGRlY19odWJwX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tSFVCUDBfRENTVVJGX1NVUkZBQ0VfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWU1CisjZGVmaW5lIG1tSFVCUDBfRENTVVJGX1NVUkZBQ0VfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAwX0RDU1VSRl9BRERSX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVlNgorI2RlZmluZSBtbUhVQlAwX0RDU1VSRl9BRERSX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMF9EQ1NVUkZfVElMSU5HX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZTcKKyNkZWZpbmUgbW1IVUJQMF9EQ1NVUkZfVElMSU5HX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWU5CisjZGVmaW5lIG1tSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVlYQorI2RlZmluZSBtbUhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMF9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZWIKKyNkZWZpbmUgbW1IVUJQMF9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWVjCisjZGVmaW5lIG1tSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAwX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVlZAorI2RlZmluZSBtbUhVQlAwX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZWUKKyNkZWZpbmUgbW1IVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWVmCisjZGVmaW5lIG1tSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAwX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVmMAorI2RlZmluZSBtbUhVQlAwX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMF9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZjEKKyNkZWZpbmUgbW1IVUJQMF9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWYyCisjZGVmaW5lIG1tSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAwX0RDSFVCUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVmMworI2RlZmluZSBtbUhVQlAwX0RDSFVCUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMF9IVUJQX0NMS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZjQKKyNkZWZpbmUgbW1IVUJQMF9IVUJQX0NMS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDBfRENIVUJQX1ZNUEdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWY1CisjZGVmaW5lIG1tSFVCUDBfRENIVUJQX1ZNUEdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAwX0hVQlBSRVFfREVCVUdfREIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVmNgorI2RlZmluZSBtbUhVQlAwX0hVQlBSRVFfREVCVUdfREJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMF9IVUJQUkVRX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZjcKKyNkZWZpbmUgbW1IVUJQMF9IVUJQUkVRX0RFQlVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWZiCisjZGVmaW5lIG1tSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVmYworI2RlZmluZSBtbUhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAwX2Rpc3BkZWNfaHVicHJlcV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX1BJVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYwNworI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX1BJVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MDgKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfVk1JRF9TRVRUSU5HU18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjA5CisjZGVmaW5lIG1tSFVCUFJFUTBfVk1JRF9TRVRUSU5HU18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYwYQorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MGIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjBjCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYwZAorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MGUKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjBmCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYxMAorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MTEKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjEyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYxMworI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MTQKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjE1CisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYxNgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MTcKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjE4CisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYxOQorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MWEKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX0ZMSVBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjFiCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX0ZMSVBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYxYworI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MjAKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfSU5VU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjIxCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfSU5VU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYyMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MjMKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjI0CisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYyNQorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MjYKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjI3CisjZGVmaW5lIG1tSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYyOAorI2RlZmluZSBtbUhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fRVhQQU5TSU9OX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MmMKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fRVhQQU5TSU9OX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX1RUVV9RT1NfV00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjJkCisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX1RUVV9RT1NfV01fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDTl9HTE9CQUxfVFRVX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYyZQorI2RlZmluZSBtbUhVQlBSRVEwX0RDTl9HTE9CQUxfVFRVX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fU1VSRjBfVFRVX0NOVEwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MmYKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fU1VSRjBfVFRVX0NOVEwwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX1NVUkYwX1RUVV9DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjMwCisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX1NVUkYwX1RUVV9DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDTl9TVVJGMV9UVFVfQ05UTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYzMQorI2RlZmluZSBtbUhVQlBSRVEwX0RDTl9TVVJGMV9UVFVfQ05UTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fU1VSRjFfVFRVX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MzIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fU1VSRjFfVFRVX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX0NVUjBfVFRVX0NOVEwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjMzCisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX0NVUjBfVFRVX0NOVEwwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDTl9DVVIwX1RUVV9DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYzNAorI2RlZmluZSBtbUhVQlBSRVEwX0RDTl9DVVIwX1RUVV9DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fQ1VSMV9UVFVfQ05UTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MzUKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fQ1VSMV9UVFVfQ05UTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX0NVUjFfVFRVX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjM2CisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX0NVUjFfVFRVX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYzNworI2RlZmluZSBtbUhVQlBSRVEwX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MzgKKyNkZWZpbmUgbW1IVUJQUkVRMF9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX1ZNX01YX0wxX1RMQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjQ1CisjZGVmaW5lIG1tSFVCUFJFUTBfRENOX1ZNX01YX0wxX1RMQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0JMQU5LX09GRlNFVF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0NgorI2RlZmluZSBtbUhVQlBSRVEwX0JMQU5LX09GRlNFVF8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9CTEFOS19PRkZTRVRfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NDcKKyNkZWZpbmUgbW1IVUJQUkVRMF9CTEFOS19PRkZTRVRfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRFNUX0RJTUVOU0lPTlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjQ4CisjZGVmaW5lIG1tSFVCUFJFUTBfRFNUX0RJTUVOU0lPTlNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0RTVF9BRlRFUl9TQ0FMRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0OQorI2RlZmluZSBtbUhVQlBSRVEwX0RTVF9BRlRFUl9TQ0FMRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NGEKKyNkZWZpbmUgbW1IVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfUFJFRkVUQ0hfU0VUVElOR1NfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjRiCisjZGVmaW5lIG1tSFVCUFJFUTBfUFJFRkVUQ0hfU0VUVElOR1NfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0YworI2RlZmluZSBtbUhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NGQKKyNkZWZpbmUgbW1IVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjRlCisjZGVmaW5lIG1tSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0ZgorI2RlZmluZSBtbUhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU180ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NTAKKyNkZWZpbmUgbW1IVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU180X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjUxCisjZGVmaW5lIG1tSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1MgorI2RlZmluZSBtbUhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NTMKKyNkZWZpbmUgbW1IVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjU0CisjZGVmaW5lIG1tSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1NQorI2RlZmluZSBtbUhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9OT01fUEFSQU1FVEVSU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NTYKKyNkZWZpbmUgbW1IVUJQUkVRMF9OT01fUEFSQU1FVEVSU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjU3CisjZGVmaW5lIG1tSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1OAorI2RlZmluZSBtbUhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9OT01fUEFSQU1FVEVSU181ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NTkKKyNkZWZpbmUgbW1IVUJQUkVRMF9OT01fUEFSQU1FVEVSU181X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjVhCisjZGVmaW5lIG1tSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1YgorI2RlZmluZSBtbUhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9QRVJfTElORV9ERUxJVkVSWV9QUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NWMKKyNkZWZpbmUgbW1IVUJQUkVRMF9QRVJfTElORV9ERUxJVkVSWV9QUkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfUEVSX0xJTkVfREVMSVZFUlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjVkCisjZGVmaW5lIG1tSFVCUFJFUTBfUEVSX0xJTkVfREVMSVZFUllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0NVUlNPUl9TRVRUSU5HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1ZQorI2RlZmluZSBtbUhVQlBSRVEwX0NVUlNPUl9TRVRUSU5HU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9SRUZfRlJFUV9UT19QSVhfRlJFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NWYKKyNkZWZpbmUgbW1IVUJQUkVRMF9SRUZfRlJFUV9UT19QSVhfRlJFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRFNUX1lfREVMVEFfRFJRX0xJTUlUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjYwCisjZGVmaW5lIG1tSFVCUFJFUTBfRFNUX1lfREVMVEFfRFJRX0xJTUlUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0hVQlBSRVFfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY2MQorI2RlZmluZSBtbUhVQlBSRVEwX0hVQlBSRVFfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NjIKKyNkZWZpbmUgbW1IVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjY1CisjZGVmaW5lIG1tSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY2NgorI2RlZmluZSBtbUhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NjcKKyNkZWZpbmUgbW1IVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjY4CisjZGVmaW5lIG1tSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU181ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY2OQorI2RlZmluZSBtbUhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU181X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NmEKKyNkZWZpbmUgbW1IVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMF9kaXNwZGVjX2h1YnByZXRfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1IVUJQUkVUMF9IVUJQUkVUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NmMKKyNkZWZpbmUgbW1IVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDBfSFVCUFJFVF9NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjZkCisjZGVmaW5lIG1tSFVCUFJFVDBfSFVCUFJFVF9NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY2ZQorI2RlZmluZSBtbUhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9DVFJMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NmYKKyNkZWZpbmUgbW1IVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9DVFJMMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjcwCisjZGVmaW5lIG1tSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3MQorI2RlZmluZSBtbUhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NzIKKyNkZWZpbmUgbW1IVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDBfSFVCUFJFVF9JTlRFUlJVUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjczCisjZGVmaW5lIG1tSFVCUFJFVDBfSFVCUFJFVF9JTlRFUlJVUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FX1ZBTFVFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3NAorI2RlZmluZSBtbUhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FX1ZBTFVFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NzUKKyNkZWZpbmUgbW1IVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMF9kaXNwZGVjX2N1cnNvcjBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1DVVJTT1IwXzBfQ1VSU09SX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NzgKKyNkZWZpbmUgbW1DVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8wX0NVUlNPUl9TVVJGQUNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjc5CisjZGVmaW5lIG1tQ1VSU09SMF8wX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMF9DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3YQorI2RlZmluZSBtbUNVUlNPUjBfMF9DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzBfQ1VSU09SX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2N2IKKyNkZWZpbmUgbW1DVVJTT1IwXzBfQ1VSU09SX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8wX0NVUlNPUl9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjdjCisjZGVmaW5lIG1tQ1VSU09SMF8wX0NVUlNPUl9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMF9DVVJTT1JfSE9UX1NQT1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3ZAorI2RlZmluZSBtbUNVUlNPUjBfMF9DVVJTT1JfSE9UX1NQT1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzBfQ1VSU09SX1NURVJFT19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2N2UKKyNkZWZpbmUgbW1DVVJTT1IwXzBfQ1VSU09SX1NURVJFT19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8wX0NVUlNPUl9EU1RfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjdmCisjZGVmaW5lIG1tQ1VSU09SMF8wX0NVUlNPUl9EU1RfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMF9DVVJTT1JfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4MAorI2RlZmluZSBtbUNVUlNPUjBfMF9DVVJTT1JfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzBfQ1VSU09SX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ODEKKyNkZWZpbmUgbW1DVVJTT1IwXzBfQ1VSU09SX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8wX0RNREFUQV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjgyCisjZGVmaW5lIG1tQ1VSU09SMF8wX0RNREFUQV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMF9ETURBVEFfQUREUkVTU19MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4MworI2RlZmluZSBtbUNVUlNPUjBfMF9ETURBVEFfQUREUkVTU19MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzBfRE1EQVRBX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ODQKKyNkZWZpbmUgbW1DVVJTT1IwXzBfRE1EQVRBX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8wX0RNREFUQV9RT1NfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjg1CisjZGVmaW5lIG1tQ1VSU09SMF8wX0RNREFUQV9RT1NfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMF9ETURBVEFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4NgorI2RlZmluZSBtbUNVUlNPUjBfMF9ETURBVEFfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzBfRE1EQVRBX1NXX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ODcKKyNkZWZpbmUgbW1DVVJTT1IwXzBfRE1EQVRBX1NXX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8wX0RNREFUQV9TV19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjg4CisjZGVmaW5lIG1tQ1VSU09SMF8wX0RNREFUQV9TV19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDBfZGlzcGRlY19odWJwX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxYTc0CisjZGVmaW5lIG1tRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjlkCisjZGVmaW5lIG1tRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT043X1BFUkZDT1VOVEVSX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY5ZQorI2RlZmluZSBtbURDX1BFUkZNT043X1BFUkZDT1VOVEVSX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9TVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2OWYKKyNkZWZpbmUgbW1EQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9TVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjdfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmEwCisjZGVmaW5lIG1tRENfUEVSRk1PTjdfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT043X1BFUkZNT05fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZhMQorI2RlZmluZSBtbURDX1BFUkZNT043X1BFUkZNT05fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YTIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjdfUEVSRk1PTl9DVkFMVUVfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmEzCisjZGVmaW5lIG1tRENfUEVSRk1PTjdfUEVSRk1PTl9DVkFMVUVfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT043X1BFUkZNT05fSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZhNAorI2RlZmluZSBtbURDX1BFUkZNT043X1BFUkZNT05fSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9ON19QRVJGTU9OX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YTUKKyNkZWZpbmUgbW1EQ19QRVJGTU9ON19QRVJGTU9OX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMV9kaXNwZGVjX2h1YnBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDM3MAorI2RlZmluZSBtbUhVQlAxX0RDU1VSRl9TVVJGQUNFX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjMQorI2RlZmluZSBtbUhVQlAxX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMV9EQ1NVUkZfQUREUl9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YzIKKyNkZWZpbmUgbW1IVUJQMV9EQ1NVUkZfQUREUl9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDFfRENTVVJGX1RJTElOR19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmMzCisjZGVmaW5lIG1tSFVCUDFfRENTVVJGX1RJTElOR19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAxX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjNQorI2RlZmluZSBtbUhVQlAxX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YzYKKyNkZWZpbmUgbW1IVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmM3CisjZGVmaW5lIG1tSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAxX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjOAorI2RlZmluZSBtbUhVQlAxX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YzkKKyNkZWZpbmUgbW1IVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDFfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmNhCisjZGVmaW5lIG1tSFVCUDFfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjYgorI2RlZmluZSBtbUhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2Y2MKKyNkZWZpbmUgbW1IVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmNkCisjZGVmaW5lIG1tSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAxX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjZQorI2RlZmluZSBtbUhVQlAxX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMV9EQ0hVQlBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2Y2YKKyNkZWZpbmUgbW1IVUJQMV9EQ0hVQlBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDFfSFVCUF9DTEtfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmQwCisjZGVmaW5lIG1tSFVCUDFfSFVCUF9DTEtfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAxX0RDSFVCUF9WTVBHX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZkMQorI2RlZmluZSBtbUhVQlAxX0RDSFVCUF9WTVBHX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMV9IVUJQUkVRX0RFQlVHX0RCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZDIKKyNkZWZpbmUgbW1IVUJQMV9IVUJQUkVRX0RFQlVHX0RCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDFfSFVCUFJFUV9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmQzCisjZGVmaW5lIG1tSFVCUDFfSFVCUFJFUV9ERUJVR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAxX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZkNworI2RlZmluZSBtbUhVQlAxX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZDgKKyNkZWZpbmUgbW1IVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMV9kaXNwZGVjX2h1YnByZXFfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDM3MAorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX1BJVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlMworI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX1BJVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZTQKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfVk1JRF9TRVRUSU5HU18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmU1CisjZGVmaW5lIG1tSFVCUFJFUTFfVk1JRF9TRVRUSU5HU18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlNgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZTcKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmU4CisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlOQorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZWEKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmViCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlYworI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZWQKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmVlCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlZgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZjAKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmYxCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZmMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZjMKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmY0CisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZmNQorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZjYKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmY3CisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZmOAorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZmMKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmZkCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZmZQorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZmYKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMQorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAzCisjZGVmaW5lIG1tSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwNAorI2RlZmluZSBtbUhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fRVhQQU5TSU9OX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDgKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fRVhQQU5TSU9OX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX1RUVV9RT1NfV00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzA5CisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX1RUVV9RT1NfV01fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDTl9HTE9CQUxfVFRVX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwYQorI2RlZmluZSBtbUhVQlBSRVExX0RDTl9HTE9CQUxfVFRVX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fU1VSRjBfVFRVX0NOVEwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MGIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fU1VSRjBfVFRVX0NOVEwwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX1NVUkYwX1RUVV9DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzBjCisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX1NVUkYwX1RUVV9DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDTl9TVVJGMV9UVFVfQ05UTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwZAorI2RlZmluZSBtbUhVQlBSRVExX0RDTl9TVVJGMV9UVFVfQ05UTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fU1VSRjFfVFRVX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MGUKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fU1VSRjFfVFRVX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX0NVUjBfVFRVX0NOVEwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzBmCisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX0NVUjBfVFRVX0NOVEwwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDTl9DVVIwX1RUVV9DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcxMAorI2RlZmluZSBtbUhVQlBSRVExX0RDTl9DVVIwX1RUVV9DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fQ1VSMV9UVFVfQ05UTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MTEKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fQ1VSMV9UVFVfQ05UTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX0NVUjFfVFRVX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzEyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX0NVUjFfVFRVX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcxMworI2RlZmluZSBtbUhVQlBSRVExX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MTQKKyNkZWZpbmUgbW1IVUJQUkVRMV9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX1ZNX01YX0wxX1RMQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzIxCisjZGVmaW5lIG1tSFVCUFJFUTFfRENOX1ZNX01YX0wxX1RMQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0JMQU5LX09GRlNFVF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyMgorI2RlZmluZSBtbUhVQlBSRVExX0JMQU5LX09GRlNFVF8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9CTEFOS19PRkZTRVRfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MjMKKyNkZWZpbmUgbW1IVUJQUkVRMV9CTEFOS19PRkZTRVRfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRFNUX0RJTUVOU0lPTlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzI0CisjZGVmaW5lIG1tSFVCUFJFUTFfRFNUX0RJTUVOU0lPTlNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0RTVF9BRlRFUl9TQ0FMRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyNQorI2RlZmluZSBtbUhVQlBSRVExX0RTVF9BRlRFUl9TQ0FMRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9QUkVGRVRDSF9TRVRUSU5HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MjYKKyNkZWZpbmUgbW1IVUJQUkVRMV9QUkVGRVRDSF9TRVRUSU5HU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfUFJFRkVUQ0hfU0VUVElOR1NfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzI3CisjZGVmaW5lIG1tSFVCUFJFUTFfUFJFRkVUQ0hfU0VUVElOR1NfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyOAorI2RlZmluZSBtbUhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MjkKKyNkZWZpbmUgbW1IVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfVkJMQU5LX1BBUkFNRVRFUlNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzJhCisjZGVmaW5lIG1tSFVCUFJFUTFfVkJMQU5LX1BBUkFNRVRFUlNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyYgorI2RlZmluZSBtbUhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU180ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MmMKKyNkZWZpbmUgbW1IVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU180X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRkxJUF9QQVJBTUVURVJTXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzJkCisjZGVmaW5lIG1tSFVCUFJFUTFfRkxJUF9QQVJBTUVURVJTXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyZQorI2RlZmluZSBtbUhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MmYKKyNkZWZpbmUgbW1IVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzMwCisjZGVmaW5lIG1tSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX05PTV9QQVJBTUVURVJTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczMQorI2RlZmluZSBtbUhVQlBSRVExX05PTV9QQVJBTUVURVJTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9OT01fUEFSQU1FVEVSU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MzIKKyNkZWZpbmUgbW1IVUJQUkVRMV9OT01fUEFSQU1FVEVSU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzMzCisjZGVmaW5lIG1tSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX05PTV9QQVJBTUVURVJTXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczNAorI2RlZmluZSBtbUhVQlBSRVExX05PTV9QQVJBTUVURVJTXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9OT01fUEFSQU1FVEVSU181ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MzUKKyNkZWZpbmUgbW1IVUJQUkVRMV9OT01fUEFSQU1FVEVSU181X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzM2CisjZGVmaW5lIG1tSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX05PTV9QQVJBTUVURVJTXzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczNworI2RlZmluZSBtbUhVQlBSRVExX05PTV9QQVJBTUVURVJTXzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9QRVJfTElORV9ERUxJVkVSWV9QUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MzgKKyNkZWZpbmUgbW1IVUJQUkVRMV9QRVJfTElORV9ERUxJVkVSWV9QUkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfUEVSX0xJTkVfREVMSVZFUlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzM5CisjZGVmaW5lIG1tSFVCUFJFUTFfUEVSX0xJTkVfREVMSVZFUllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0NVUlNPUl9TRVRUSU5HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczYQorI2RlZmluZSBtbUhVQlBSRVExX0NVUlNPUl9TRVRUSU5HU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9SRUZfRlJFUV9UT19QSVhfRlJFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3M2IKKyNkZWZpbmUgbW1IVUJQUkVRMV9SRUZfRlJFUV9UT19QSVhfRlJFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRFNUX1lfREVMVEFfRFJRX0xJTUlUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzNjCisjZGVmaW5lIG1tSFVCUFJFUTFfRFNUX1lfREVMVEFfRFJRX0xJTUlUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczZAorI2RlZmluZSBtbUhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9IVUJQUkVRX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3M2UKKyNkZWZpbmUgbW1IVUJQUkVRMV9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfVkJMQU5LX1BBUkFNRVRFUlNfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzQxCisjZGVmaW5lIG1tSFVCUFJFUTFfVkJMQU5LX1BBUkFNRVRFUlNfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc0MgorI2RlZmluZSBtbUhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NDMKKyNkZWZpbmUgbW1IVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTFfRkxJUF9QQVJBTUVURVJTXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzQ0CisjZGVmaW5lIG1tSFVCUFJFUTFfRkxJUF9QQVJBTUVURVJTXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU181ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc0NQorI2RlZmluZSBtbUhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU181X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NDYKKyNkZWZpbmUgbW1IVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMV9kaXNwZGVjX2h1YnByZXRfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDM3MAorI2RlZmluZSBtbUhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc0OAorI2RlZmluZSBtbUhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUMV9IVUJQUkVUX01FTV9QV1JfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NDkKKyNkZWZpbmUgbW1IVUJQUkVUMV9IVUJQUkVUX01FTV9QV1JfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzRhCisjZGVmaW5lIG1tSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc0YgorI2RlZmluZSBtbUhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NGMKKyNkZWZpbmUgbW1IVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzRkCisjZGVmaW5lIG1tSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc0ZQorI2RlZmluZSBtbUhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUMV9IVUJQUkVUX0lOVEVSUlVQVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NGYKKyNkZWZpbmUgbW1IVUJQUkVUMV9IVUJQUkVUX0lOVEVSUlVQVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkVfVkFMVUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzUwCisjZGVmaW5lIG1tSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkVfVkFMVUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc1MQorI2RlZmluZSBtbUhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAxX2Rpc3BkZWNfY3Vyc29yMF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MzcwCisjZGVmaW5lIG1tQ1VSU09SMF8xX0NVUlNPUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzU0CisjZGVmaW5lIG1tQ1VSU09SMF8xX0NVUlNPUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMV9DVVJTT1JfU1VSRkFDRV9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc1NQorI2RlZmluZSBtbUNVUlNPUjBfMV9DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzFfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NTYKKyNkZWZpbmUgbW1DVVJTT1IwXzFfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8xX0NVUlNPUl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzU3CisjZGVmaW5lIG1tQ1VSU09SMF8xX0NVUlNPUl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMV9DVVJTT1JfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc1OAorI2RlZmluZSBtbUNVUlNPUjBfMV9DVVJTT1JfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzFfQ1VSU09SX0hPVF9TUE9UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NTkKKyNkZWZpbmUgbW1DVVJTT1IwXzFfQ1VSU09SX0hPVF9TUE9UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8xX0NVUlNPUl9TVEVSRU9fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzVhCisjZGVmaW5lIG1tQ1VSU09SMF8xX0NVUlNPUl9TVEVSRU9fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMV9DVVJTT1JfRFNUX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc1YgorI2RlZmluZSBtbUNVUlNPUjBfMV9DVVJTT1JfRFNUX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzFfQ1VSU09SX01FTV9QV1JfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NWMKKyNkZWZpbmUgbW1DVVJTT1IwXzFfQ1VSU09SX01FTV9QV1JfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8xX0NVUlNPUl9NRU1fUFdSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzVkCisjZGVmaW5lIG1tQ1VSU09SMF8xX0NVUlNPUl9NRU1fUFdSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMV9ETURBVEFfQUREUkVTU19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc1ZQorI2RlZmluZSBtbUNVUlNPUjBfMV9ETURBVEFfQUREUkVTU19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzFfRE1EQVRBX0FERFJFU1NfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NWYKKyNkZWZpbmUgbW1DVVJTT1IwXzFfRE1EQVRBX0FERFJFU1NfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8xX0RNREFUQV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzYwCisjZGVmaW5lIG1tQ1VSU09SMF8xX0RNREFUQV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMV9ETURBVEFfUU9TX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc2MQorI2RlZmluZSBtbUNVUlNPUjBfMV9ETURBVEFfUU9TX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzFfRE1EQVRBX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NjIKKyNkZWZpbmUgbW1DVVJTT1IwXzFfRE1EQVRBX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8xX0RNREFUQV9TV19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzYzCisjZGVmaW5lIG1tQ1VSU09SMF8xX0RNREFUQV9TV19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMV9ETURBVEFfU1dfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc2NAorI2RlZmluZSBtbUNVUlNPUjBfMV9ETURBVEFfU1dfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAxX2Rpc3BkZWNfaHVicF9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MWRlNAorI2RlZmluZSBtbURDX1BFUkZNT044X1BFUkZDT1VOVEVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc3OQorI2RlZmluZSBtbURDX1BFUkZNT044X1BFUkZDT1VOVEVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3N2EKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzdiCisjZGVmaW5lIG1tRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT044X1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc3YworI2RlZmluZSBtbURDX1BFUkZNT044X1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOF9QRVJGTU9OX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3N2QKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOF9QRVJGTU9OX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjhfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzdlCisjZGVmaW5lIG1tRENfUEVSRk1PTjhfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc3ZgorI2RlZmluZSBtbURDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOF9QRVJGTU9OX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ODAKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOF9QRVJGTU9OX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjhfUEVSRk1PTl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzgxCisjZGVmaW5lIG1tRENfUEVSRk1PTjhfUEVSRk1PTl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDJfZGlzcGRlY19odWJwX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2ZTAKKyNkZWZpbmUgbW1IVUJQMl9EQ1NVUkZfU1VSRkFDRV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OWQKKyNkZWZpbmUgbW1IVUJQMl9EQ1NVUkZfU1VSRkFDRV9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDJfRENTVVJGX0FERFJfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzllCisjZGVmaW5lIG1tSFVCUDJfRENTVVJGX0FERFJfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAyX0RDU1VSRl9USUxJTkdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc5ZgorI2RlZmluZSBtbUhVQlAyX0RDU1VSRl9USUxJTkdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YTEKKyNkZWZpbmUgbW1IVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDJfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2EyCisjZGVmaW5lIG1tSFVCUDJfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhMworI2RlZmluZSBtbUhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YTQKKyNkZWZpbmUgbW1IVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2E1CisjZGVmaW5lIG1tSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhNgorI2RlZmluZSBtbUhVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMl9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YTcKKyNkZWZpbmUgbW1IVUJQMl9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2E4CisjZGVmaW5lIG1tSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhOQorI2RlZmluZSBtbUhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YWEKKyNkZWZpbmUgbW1IVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDJfRENIVUJQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2FiCisjZGVmaW5lIG1tSFVCUDJfRENIVUJQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAyX0hVQlBfQ0xLX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhYworI2RlZmluZSBtbUhVQlAyX0hVQlBfQ0xLX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMl9EQ0hVQlBfVk1QR19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YWQKKyNkZWZpbmUgbW1IVUJQMl9EQ0hVQlBfVk1QR19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDJfSFVCUFJFUV9ERUJVR19EQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2FlCisjZGVmaW5lIG1tSFVCUDJfSFVCUFJFUV9ERUJVR19EQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAyX0hVQlBSRVFfREVCVUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhZgorI2RlZmluZSBtbUhVQlAyX0hVQlBSRVFfREVCVUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YjMKKyNkZWZpbmUgbW1IVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDJfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2I0CisjZGVmaW5lIG1tSFVCUDJfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDJfZGlzcGRlY19odWJwcmVxX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2ZTAKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9QSVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YmYKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2MwCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX1ZNSURfU0VUVElOR1NfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjMQorI2RlZmluZSBtbUhVQlBSRVEyX1ZNSURfU0VUVElOR1NfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YzIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2MzCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjNAorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YzUKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2M2CisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjNworI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YzgKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2M5CisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjYQorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3Y2IKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2NjCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjZAorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3Y2UKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2NmCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkMAorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZDEKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2QyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9GTElQX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkMworI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9GTElQX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZDQKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2Q4CisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0lOVVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkOQorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZGEKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfSU5VU0VfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2RiCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfSU5VU0VfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkYworI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZGQKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2RlCisjZGVmaW5lIG1tSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkZgorI2RlZmluZSBtbUhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZTAKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX0VYUEFOU0lPTl9NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2U0CisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX0VYUEFOU0lPTl9NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9UVFVfUU9TX1dNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdlNQorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9UVFVfUU9TX1dNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ05fR0xPQkFMX1RUVV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZTYKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ05fR0xPQkFMX1RUVV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX1NVUkYwX1RUVV9DTlRMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2U3CisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX1NVUkYwX1RUVV9DTlRMMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9TVVJGMF9UVFVfQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdlOAorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9TVVJGMF9UVFVfQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ05fU1VSRjFfVFRVX0NOVEwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZTkKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ05fU1VSRjFfVFRVX0NOVEwwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX1NVUkYxX1RUVV9DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2VhCisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX1NVUkYxX1RUVV9DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9DVVIwX1RUVV9DTlRMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdlYgorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9DVVIwX1RUVV9DTlRMMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ05fQ1VSMF9UVFVfQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZWMKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ05fQ1VSMF9UVFVfQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX0NVUjFfVFRVX0NOVEwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2VkCisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX0NVUjFfVFRVX0NOVEwwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9DVVIxX1RUVV9DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdlZQorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9DVVIxX1RUVV9DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZWYKKyNkZWZpbmUgbW1IVUJQUkVRMl9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2YwCisjZGVmaW5lIG1tSFVCUFJFUTJfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9WTV9NWF9MMV9UTEJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdmZAorI2RlZmluZSBtbUhVQlBSRVEyX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9CTEFOS19PRkZTRVRfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZmUKKyNkZWZpbmUgbW1IVUJQUkVRMl9CTEFOS19PRkZTRVRfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfQkxBTktfT0ZGU0VUXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2ZmCisjZGVmaW5lIG1tSFVCUFJFUTJfQkxBTktfT0ZGU0VUXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RTVF9ESU1FTlNJT05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMAorI2RlZmluZSBtbUhVQlBSRVEyX0RTVF9ESU1FTlNJT05TX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9EU1RfQUZURVJfU0NBTEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDEKKyNkZWZpbmUgbW1IVUJQUkVRMl9EU1RfQUZURVJfU0NBTEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfUFJFRkVUQ0hfU0VUVElOR1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAyCisjZGVmaW5lIG1tSFVCUFJFUTJfUFJFRkVUQ0hfU0VUVElOR1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX1BSRUZFVENIX1NFVFRJTkdTX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMworI2RlZmluZSBtbUhVQlBSRVEyX1BSRUZFVENIX1NFVFRJTkdTX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9WQkxBTktfUEFSQU1FVEVSU18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDQKKyNkZWZpbmUgbW1IVUJQUkVRMl9WQkxBTktfUEFSQU1FVEVSU18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODA1CisjZGVmaW5lIG1tSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwNgorI2RlZmluZSBtbUhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9WQkxBTktfUEFSQU1FVEVSU18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDcKKyNkZWZpbmUgbW1IVUJQUkVRMl9WQkxBTktfUEFSQU1FVEVSU18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODA4CisjZGVmaW5lIG1tSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwOQorI2RlZmluZSBtbUhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9GTElQX1BBUkFNRVRFUlNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MGEKKyNkZWZpbmUgbW1IVUJQUkVRMl9GTElQX1BBUkFNRVRFUlNfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODBiCisjZGVmaW5lIG1tSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwYworI2RlZmluZSBtbUhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9OT01fUEFSQU1FVEVSU18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MGQKKyNkZWZpbmUgbW1IVUJQUkVRMl9OT01fUEFSQU1FVEVSU18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfTk9NX1BBUkFNRVRFUlNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODBlCisjZGVmaW5lIG1tSFVCUFJFUTJfTk9NX1BBUkFNRVRFUlNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwZgorI2RlZmluZSBtbUhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9OT01fUEFSQU1FVEVSU180ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTAKKyNkZWZpbmUgbW1IVUJQUkVRMl9OT01fUEFSQU1FVEVSU180X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfTk9NX1BBUkFNRVRFUlNfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODExCisjZGVmaW5lIG1tSFVCUFJFUTJfTk9NX1BBUkFNRVRFUlNfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgxMgorI2RlZmluZSBtbUhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9OT01fUEFSQU1FVEVSU183ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTMKKyNkZWZpbmUgbW1IVUJQUkVRMl9OT01fUEFSQU1FVEVSU183X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfUEVSX0xJTkVfREVMSVZFUllfUFJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODE0CisjZGVmaW5lIG1tSFVCUFJFUTJfUEVSX0xJTkVfREVMSVZFUllfUFJFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX1BFUl9MSU5FX0RFTElWRVJZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgxNQorI2RlZmluZSBtbUhVQlBSRVEyX1BFUl9MSU5FX0RFTElWRVJZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9DVVJTT1JfU0VUVElOR1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTYKKyNkZWZpbmUgbW1IVUJQUkVRMl9DVVJTT1JfU0VUVElOR1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfUkVGX0ZSRVFfVE9fUElYX0ZSRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODE3CisjZGVmaW5lIG1tSFVCUFJFUTJfUkVGX0ZSRVFfVE9fUElYX0ZSRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0RTVF9ZX0RFTFRBX0RSUV9MSU1JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgxOAorI2RlZmluZSBtbUhVQlBSRVEyX0RTVF9ZX0RFTFRBX0RSUV9MSU1JVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9IVUJQUkVRX01FTV9QV1JfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTkKKyNkZWZpbmUgbW1IVUJQUkVRMl9IVUJQUkVRX01FTV9QV1JfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODFhCisjZGVmaW5lIG1tSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgxZAorI2RlZmluZSBtbUhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9WQkxBTktfUEFSQU1FVEVSU182ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MWUKKyNkZWZpbmUgbW1IVUJQUkVRMl9WQkxBTktfUEFSQU1FVEVSU182X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODFmCisjZGVmaW5lIG1tSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU180ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgyMAorI2RlZmluZSBtbUhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU180X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRMl9GTElQX1BBUkFNRVRFUlNfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MjEKKyNkZWZpbmUgbW1IVUJQUkVRMl9GTElQX1BBUkFNRVRFUlNfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODIyCisjZGVmaW5lIG1tSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDJfZGlzcGRlY19odWJwcmV0X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2ZTAKKyNkZWZpbmUgbW1IVUJQUkVUMl9IVUJQUkVUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MjQKKyNkZWZpbmUgbW1IVUJQUkVUMl9IVUJQUkVUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDJfSFVCUFJFVF9NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODI1CisjZGVmaW5lIG1tSFVCUFJFVDJfSFVCUFJFVF9NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQyX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgyNgorI2RlZmluZSBtbUhVQlBSRVQyX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORV9DVFJMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MjcKKyNkZWZpbmUgbW1IVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORV9DVFJMMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODI4CisjZGVmaW5lIG1tSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgyOQorI2RlZmluZSBtbUhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MmEKKyNkZWZpbmUgbW1IVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODJiCisjZGVmaW5lIG1tSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX1ZBTFVFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgyYworI2RlZmluZSBtbUhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX1ZBTFVFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MmQKKyNkZWZpbmUgbW1IVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMl9kaXNwZGVjX2N1cnNvcjBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDZlMAorI2RlZmluZSBtbUNVUlNPUjBfMl9DVVJTT1JfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgzMAorI2RlZmluZSBtbUNVUlNPUjBfMl9DVVJTT1JfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzJfQ1VSU09SX1NVUkZBQ0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MzEKKyNkZWZpbmUgbW1DVVJTT1IwXzJfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8yX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODMyCisjZGVmaW5lIG1tQ1VSU09SMF8yX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMl9DVVJTT1JfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgzMworI2RlZmluZSBtbUNVUlNPUjBfMl9DVVJTT1JfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzJfQ1VSU09SX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MzQKKyNkZWZpbmUgbW1DVVJTT1IwXzJfQ1VSU09SX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8yX0NVUlNPUl9IT1RfU1BPVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODM1CisjZGVmaW5lIG1tQ1VSU09SMF8yX0NVUlNPUl9IT1RfU1BPVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMl9DVVJTT1JfU1RFUkVPX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgzNgorI2RlZmluZSBtbUNVUlNPUjBfMl9DVVJTT1JfU1RFUkVPX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzJfQ1VSU09SX0RTVF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MzcKKyNkZWZpbmUgbW1DVVJTT1IwXzJfQ1VSU09SX0RTVF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8yX0NVUlNPUl9NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODM4CisjZGVmaW5lIG1tQ1VSU09SMF8yX0NVUlNPUl9NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMl9DVVJTT1JfTUVNX1BXUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgzOQorI2RlZmluZSBtbUNVUlNPUjBfMl9DVVJTT1JfTUVNX1BXUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzJfRE1EQVRBX0FERFJFU1NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4M2EKKyNkZWZpbmUgbW1DVVJTT1IwXzJfRE1EQVRBX0FERFJFU1NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8yX0RNREFUQV9BRERSRVNTX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODNiCisjZGVmaW5lIG1tQ1VSU09SMF8yX0RNREFUQV9BRERSRVNTX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMl9ETURBVEFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgzYworI2RlZmluZSBtbUNVUlNPUjBfMl9ETURBVEFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzJfRE1EQVRBX1FPU19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4M2QKKyNkZWZpbmUgbW1DVVJTT1IwXzJfRE1EQVRBX1FPU19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8yX0RNREFUQV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODNlCisjZGVmaW5lIG1tQ1VSU09SMF8yX0RNREFUQV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfMl9ETURBVEFfU1dfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgzZgorI2RlZmluZSBtbUNVUlNPUjBfMl9ETURBVEFfU1dfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzJfRE1EQVRBX1NXX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NDAKKyNkZWZpbmUgbW1DVVJTT1IwXzJfRE1EQVRBX1NXX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMl9kaXNwZGVjX2h1YnBfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDIxNTQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NTUKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODU2CisjZGVmaW5lIG1tRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg1NworI2RlZmluZSBtbURDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOV9QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NTgKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOV9QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODU5CisjZGVmaW5lIG1tRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT045X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg1YQorI2RlZmluZSBtbURDX1BFUkZNT045X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOV9QRVJGTU9OX0NWQUxVRV9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NWIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OOV9QRVJGTU9OX0NWQUxVRV9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjlfUEVSRk1PTl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODVjCisjZGVmaW5lIG1tRENfUEVSRk1PTjlfUEVSRk1PTl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT045X1BFUkZNT05fTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg1ZAorI2RlZmluZSBtbURDX1BFUkZNT045X1BFUkZNT05fTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAzX2Rpc3BkZWNfaHVicF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YTUwCisjZGVmaW5lIG1tSFVCUDNfRENTVVJGX1NVUkZBQ0VfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODc5CisjZGVmaW5lIG1tSFVCUDNfRENTVVJGX1NVUkZBQ0VfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAzX0RDU1VSRl9BRERSX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg3YQorI2RlZmluZSBtbUhVQlAzX0RDU1VSRl9BRERSX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQM19EQ1NVUkZfVElMSU5HX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4N2IKKyNkZWZpbmUgbW1IVUJQM19EQ1NVUkZfVElMSU5HX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODdkCisjZGVmaW5lIG1tSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg3ZQorI2RlZmluZSBtbUhVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQM19EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4N2YKKyNkZWZpbmUgbW1IVUJQM19EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODgwCisjZGVmaW5lIG1tSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAzX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg4MQorI2RlZmluZSBtbUhVQlAzX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ODIKKyNkZWZpbmUgbW1IVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODgzCisjZGVmaW5lIG1tSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAzX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg4NAorI2RlZmluZSBtbUhVQlAzX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQM19EQ0hVQlBfUkVRX1NJWkVfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ODUKKyNkZWZpbmUgbW1IVUJQM19EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODg2CisjZGVmaW5lIG1tSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAzX0RDSFVCUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg4NworI2RlZmluZSBtbUhVQlAzX0RDSFVCUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQM19IVUJQX0NMS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ODgKKyNkZWZpbmUgbW1IVUJQM19IVUJQX0NMS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDNfRENIVUJQX1ZNUEdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODg5CisjZGVmaW5lIG1tSFVCUDNfRENIVUJQX1ZNUEdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAzX0hVQlBSRVFfREVCVUdfREIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg4YQorI2RlZmluZSBtbUhVQlAzX0hVQlBSRVFfREVCVUdfREJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQM19IVUJQUkVRX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4OGIKKyNkZWZpbmUgbW1IVUJQM19IVUJQUkVRX0RFQlVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODhmCisjZGVmaW5lIG1tSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg5MAorI2RlZmluZSBtbUhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAzX2Rpc3BkZWNfaHVicHJlcV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YTUwCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfUElUQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODliCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX1BJVENIX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg5YworI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX1BJVENIX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19WTUlEX1NFVFRJTkdTXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4OWQKKyNkZWZpbmUgbW1IVUJQUkVRM19WTUlEX1NFVFRJTkdTXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODllCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg5ZgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YTAKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGExCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhhMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YTMKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGE0CisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhhNQorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YTYKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGE3CisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhhOAorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YTkKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGFhCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhhYgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YWMKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGFkCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhhZQorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YWYKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX0ZMSVBfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGIwCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX0ZMSVBfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhiNAorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9JTlVTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YjUKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9JTlVTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGI2CisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhiNworI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YjgKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGI5CisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhiYQorI2RlZmluZSBtbUhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YmIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGJjCisjZGVmaW5lIG1tSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9FWFBBTlNJT05fTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjMAorI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9FWFBBTlNJT05fTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fVFRVX1FPU19XTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YzEKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fVFRVX1FPU19XTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENOX0dMT0JBTF9UVFVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGMyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENOX0dMT0JBTF9UVFVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9TVVJGMF9UVFVfQ05UTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjMworI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9TVVJGMF9UVFVfQ05UTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fU1VSRjBfVFRVX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YzQKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fU1VSRjBfVFRVX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENOX1NVUkYxX1RUVV9DTlRMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGM1CisjZGVmaW5lIG1tSFVCUFJFUTNfRENOX1NVUkYxX1RUVV9DTlRMMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9TVVJGMV9UVFVfQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjNgorI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9TVVJGMV9UVFVfQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fQ1VSMF9UVFVfQ05UTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YzcKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fQ1VSMF9UVFVfQ05UTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENOX0NVUjBfVFRVX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGM4CisjZGVmaW5lIG1tSFVCUFJFUTNfRENOX0NVUjBfVFRVX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9DVVIxX1RUVV9DTlRMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjOQorI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9DVVIxX1RUVV9DTlRMMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fQ1VSMV9UVFVfQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4Y2EKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fQ1VSMV9UVFVfQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGNiCisjZGVmaW5lIG1tSFVCUFJFUTNfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjYworI2RlZmluZSBtbUhVQlBSRVEzX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fVk1fTVhfTDFfVExCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZDkKKyNkZWZpbmUgbW1IVUJQUkVRM19EQ05fVk1fTVhfTDFfVExCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfQkxBTktfT0ZGU0VUXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGRhCisjZGVmaW5lIG1tSFVCUFJFUTNfQkxBTktfT0ZGU0VUXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0JMQU5LX09GRlNFVF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhkYgorI2RlZmluZSBtbUhVQlBSRVEzX0JMQU5LX09GRlNFVF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EU1RfRElNRU5TSU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZGMKKyNkZWZpbmUgbW1IVUJQUkVRM19EU1RfRElNRU5TSU9OU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRFNUX0FGVEVSX1NDQUxFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGRkCisjZGVmaW5lIG1tSFVCUFJFUTNfRFNUX0FGVEVSX1NDQUxFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX1BSRUZFVENIX1NFVFRJTkdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhkZQorI2RlZmluZSBtbUhVQlBSRVEzX1BSRUZFVENIX1NFVFRJTkdTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19QUkVGRVRDSF9TRVRUSU5HU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZGYKKyNkZWZpbmUgbW1IVUJQUkVRM19QUkVGRVRDSF9TRVRUSU5HU19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGUwCisjZGVmaW5lIG1tSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX1ZCTEFOS19QQVJBTUVURVJTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlMQorI2RlZmluZSBtbUhVQlBSRVEzX1ZCTEFOS19QQVJBTUVURVJTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZTIKKyNkZWZpbmUgbW1IVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGUzCisjZGVmaW5lIG1tSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX1ZCTEFOS19QQVJBTUVURVJTXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlNAorI2RlZmluZSBtbUhVQlBSRVEzX1ZCTEFOS19QQVJBTUVURVJTXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZTUKKyNkZWZpbmUgbW1IVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGU2CisjZGVmaW5lIG1tSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlNworI2RlZmluZSBtbUhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19OT01fUEFSQU1FVEVSU18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZTgKKyNkZWZpbmUgbW1IVUJQUkVRM19OT01fUEFSQU1FVEVSU18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGU5CisjZGVmaW5lIG1tSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlYQorI2RlZmluZSBtbUhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19OT01fUEFSQU1FVEVSU18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZWIKKyNkZWZpbmUgbW1IVUJQUkVRM19OT01fUEFSQU1FVEVSU18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGVjCisjZGVmaW5lIG1tSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlZAorI2RlZmluZSBtbUhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19OT01fUEFSQU1FVEVSU182ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZWUKKyNkZWZpbmUgbW1IVUJQUkVRM19OT01fUEFSQU1FVEVSU182X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGVmCisjZGVmaW5lIG1tSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX1BFUl9MSU5FX0RFTElWRVJZX1BSRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmMAorI2RlZmluZSBtbUhVQlBSRVEzX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19QRVJfTElORV9ERUxJVkVSWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZjEKKyNkZWZpbmUgbW1IVUJQUkVRM19QRVJfTElORV9ERUxJVkVSWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfQ1VSU09SX1NFVFRJTkdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGYyCisjZGVmaW5lIG1tSFVCUFJFUTNfQ1VSU09SX1NFVFRJTkdTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX1JFRl9GUkVRX1RPX1BJWF9GUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmMworI2RlZmluZSBtbUhVQlBSRVEzX1JFRl9GUkVRX1RPX1BJWF9GUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19EU1RfWV9ERUxUQV9EUlFfTElNSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZjQKKyNkZWZpbmUgbW1IVUJQUkVRM19EU1RfWV9ERUxUQV9EUlFfTElNSVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfSFVCUFJFUV9NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGY1CisjZGVmaW5lIG1tSFVCUFJFUTNfSFVCUFJFUV9NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmNgorI2RlZmluZSBtbUhVQlBSRVEzX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU181ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZjkKKyNkZWZpbmUgbW1IVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU181X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGZhCisjZGVmaW5lIG1tSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmYgorI2RlZmluZSBtbUhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZmMKKyNkZWZpbmUgbW1IVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGZkCisjZGVmaW5lIG1tSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU182ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmZQorI2RlZmluZSBtbUhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU182X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAzX2Rpc3BkZWNfaHVicHJldF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YTUwCisjZGVmaW5lIG1tSFVCUFJFVDNfSFVCUFJFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTAwCisjZGVmaW5lIG1tSFVCUFJFVDNfSFVCUFJFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwMQorI2RlZmluZSBtbUhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUM19IVUJQUkVUX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MDIKKyNkZWZpbmUgbW1IVUJQUkVUM19IVUJQUkVUX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTAzCisjZGVmaW5lIG1tSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwNAorI2RlZmluZSBtbUhVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUM19IVUJQUkVUX1JFQURfTElORTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MDUKKyNkZWZpbmUgbW1IVUJQUkVUM19IVUJQUkVUX1JFQURfTElORTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTA2CisjZGVmaW5lIG1tSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhVQlBSRVQzX0hVQlBSRVRfSU5URVJSVVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwNworI2RlZmluZSBtbUhVQlBSRVQzX0hVQlBSRVRfSU5URVJSVVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9WQUxVRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MDgKKyNkZWZpbmUgbW1IVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9WQUxVRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTA5CisjZGVmaW5lIG1tSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDNfZGlzcGRlY19jdXJzb3IwX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHhhNTAKKyNkZWZpbmUgbW1DVVJTT1IwXzNfQ1VSU09SX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MGMKKyNkZWZpbmUgbW1DVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8zX0NVUlNPUl9TVVJGQUNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTBkCisjZGVmaW5lIG1tQ1VSU09SMF8zX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfM19DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwZQorI2RlZmluZSBtbUNVUlNPUjBfM19DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzNfQ1VSU09SX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MGYKKyNkZWZpbmUgbW1DVVJTT1IwXzNfQ1VSU09SX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8zX0NVUlNPUl9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTEwCisjZGVmaW5lIG1tQ1VSU09SMF8zX0NVUlNPUl9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfM19DVVJTT1JfSE9UX1NQT1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxMQorI2RlZmluZSBtbUNVUlNPUjBfM19DVVJTT1JfSE9UX1NQT1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzNfQ1VSU09SX1NURVJFT19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MTIKKyNkZWZpbmUgbW1DVVJTT1IwXzNfQ1VSU09SX1NURVJFT19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8zX0NVUlNPUl9EU1RfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTEzCisjZGVmaW5lIG1tQ1VSU09SMF8zX0NVUlNPUl9EU1RfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfM19DVVJTT1JfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxNAorI2RlZmluZSBtbUNVUlNPUjBfM19DVVJTT1JfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzNfQ1VSU09SX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MTUKKyNkZWZpbmUgbW1DVVJTT1IwXzNfQ1VSU09SX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8zX0RNREFUQV9BRERSRVNTX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTE2CisjZGVmaW5lIG1tQ1VSU09SMF8zX0RNREFUQV9BRERSRVNTX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfM19ETURBVEFfQUREUkVTU19MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxNworI2RlZmluZSBtbUNVUlNPUjBfM19ETURBVEFfQUREUkVTU19MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzNfRE1EQVRBX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MTgKKyNkZWZpbmUgbW1DVVJTT1IwXzNfRE1EQVRBX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8zX0RNREFUQV9RT1NfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTE5CisjZGVmaW5lIG1tQ1VSU09SMF8zX0RNREFUQV9RT1NfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUlNPUjBfM19ETURBVEFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxYQorI2RlZmluZSBtbUNVUlNPUjBfM19ETURBVEFfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJTT1IwXzNfRE1EQVRBX1NXX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MWIKKyNkZWZpbmUgbW1DVVJTT1IwXzNfRE1EQVRBX1NXX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSU09SMF8zX0RNREFUQV9TV19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTFjCisjZGVmaW5lIG1tQ1VSU09SMF8zX0RNREFUQV9TV19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDNfZGlzcGRlY19odWJwX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgyNGM0CisjZGVmaW5lIG1tRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTMxCisjZGVmaW5lIG1tRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkzMgorI2RlZmluZSBtbURDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MzMKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTM0CisjZGVmaW5lIG1tRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xMF9QRVJGTU9OX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkzNQorI2RlZmluZSBtbURDX1BFUkZNT04xMF9QRVJGTU9OX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MzYKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjEwX1BFUkZNT05fQ1ZBTFVFX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTM3CisjZGVmaW5lIG1tRENfUEVSRk1PTjEwX1BFUkZNT05fQ1ZBTFVFX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xMF9QRVJGTU9OX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkzOAorI2RlZmluZSBtbURDX1BFUkZNT04xMF9QRVJGTU9OX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTBfUEVSRk1PTl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MzkKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTBfUEVSRk1PTl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMF9kaXNwZGVjX2RwcF90b3BfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1EUFBfVE9QMF9EUFBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjYzUKKyNkZWZpbmUgbW1EUFBfVE9QMF9EUFBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBQX1RPUDBfRFBQX1NPRlRfUkVTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2M2CisjZGVmaW5lIG1tRFBQX1RPUDBfRFBQX1NPRlRfUkVTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQUF9UT1AwX0RQUF9DUkNfVkFMX1JfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNjNworI2RlZmluZSBtbURQUF9UT1AwX0RQUF9DUkNfVkFMX1JfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUFBfVE9QMF9EUFBfQ1JDX1ZBTF9CX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjYzgKKyNkZWZpbmUgbW1EUFBfVE9QMF9EUFBfQ1JDX1ZBTF9CX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBQX1RPUDBfRFBQX0NSQ19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2M5CisjZGVmaW5lIG1tRFBQX1RPUDBfRFBQX0NSQ19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQUF9UT1AwX0hPU1RfUkVBRF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNjYQorI2RlZmluZSBtbURQUF9UT1AwX0hPU1RfUkVBRF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAwX2Rpc3BkZWNfY252Y19jZmdfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1DTlZDX0NGRzBfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjY2YKKyNkZWZpbmUgbW1DTlZDX0NGRzBfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2QwCisjZGVmaW5lIG1tQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMF9GQ05WX0ZQX0JJQVNfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNkMQorI2RlZmluZSBtbUNOVkNfQ0ZHMF9GQ05WX0ZQX0JJQVNfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzBfRkNOVl9GUF9CSUFTX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZDIKKyNkZWZpbmUgbW1DTlZDX0NGRzBfRkNOVl9GUF9CSUFTX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcwX0ZDTlZfRlBfQklBU19CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2QzCisjZGVmaW5lIG1tQ05WQ19DRkcwX0ZDTlZfRlBfQklBU19CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMF9GQ05WX0ZQX1NDQUxFX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNkNAorI2RlZmluZSBtbUNOVkNfQ0ZHMF9GQ05WX0ZQX1NDQUxFX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzBfRkNOVl9GUF9TQ0FMRV9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZDUKKyNkZWZpbmUgbW1DTlZDX0NGRzBfRkNOVl9GUF9TQ0FMRV9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcwX0ZDTlZfRlBfU0NBTEVfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2Q2CisjZGVmaW5lIG1tQ05WQ19DRkcwX0ZDTlZfRlBfU0NBTEVfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMF9DT0xPUl9LRVlFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNkNworI2RlZmluZSBtbUNOVkNfQ0ZHMF9DT0xPUl9LRVlFUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzBfQ09MT1JfS0VZRVJfQUxQSEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZDgKKyNkZWZpbmUgbW1DTlZDX0NGRzBfQ09MT1JfS0VZRVJfQUxQSEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcwX0NPTE9SX0tFWUVSX1JFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2Q5CisjZGVmaW5lIG1tQ05WQ19DRkcwX0NPTE9SX0tFWUVSX1JFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMF9DT0xPUl9LRVlFUl9HUkVFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNkYQorI2RlZmluZSBtbUNOVkNfQ0ZHMF9DT0xPUl9LRVlFUl9HUkVFTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzBfQ09MT1JfS0VZRVJfQkxVRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZGIKKyNkZWZpbmUgbW1DTlZDX0NGRzBfQ09MT1JfS0VZRVJfQkxVRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcwX0FMUEhBXzJCSVRfTFVUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2RkCisjZGVmaW5lIG1tQ05WQ19DRkcwX0FMUEhBXzJCSVRfTFVUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDBfZGlzcGRlY19jbnZjX2N1cl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbUNOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNlMAorI2RlZmluZSBtbUNOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NVUjBfQ1VSU09SMF9DT0xPUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZTEKKyNkZWZpbmUgbW1DTlZDX0NVUjBfQ1VSU09SMF9DT0xPUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DVVIwX0NVUlNPUjBfQ09MT1IxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2UyCisjZGVmaW5lIG1tQ05WQ19DVVIwX0NVUlNPUjBfQ09MT1IxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ1VSMF9DVVJTT1IwX0ZQX1NDQUxFX0JJQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNlMworI2RlZmluZSBtbUNOVkNfQ1VSMF9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAwX2Rpc3BkZWNfZHNjbF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbURTQ0wwX1NDTF9DT0VGX1JBTV9UQVBfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNlYQorI2RlZmluZSBtbURTQ0wwX1NDTF9DT0VGX1JBTV9UQVBfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfQ09FRl9SQU1fVEFQX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZWIKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfU0NMX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2VjCisjZGVmaW5lIG1tRFNDTDBfU0NMX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX1NDTF9UQVBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNlZAorI2RlZmluZSBtbURTQ0wwX1NDTF9UQVBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9EU0NMX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZWUKKyNkZWZpbmUgbW1EU0NMMF9EU0NMX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfRFNDTF8yVEFQX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2VmCisjZGVmaW5lIG1tRFNDTDBfRFNDTF8yVEFQX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX1NDTF9NQU5VQUxfUkVQTElDQVRFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNmMAorI2RlZmluZSBtbURTQ0wwX1NDTF9NQU5VQUxfUkVQTElDQVRFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZjEKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfU0NMX0hPUlpfRklMVEVSX0lOSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2YyCisjZGVmaW5lIG1tRFNDTDBfU0NMX0hPUlpfRklMVEVSX0lOSVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNmMworI2RlZmluZSBtbURTQ0wwX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZjQKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2Y1CisjZGVmaW5lIG1tRFNDTDBfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9JTklUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNmNgorI2RlZmluZSBtbURTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZjcKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2Y4CisjZGVmaW5lIG1tRFNDTDBfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNmOQorI2RlZmluZSBtbURTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZmEKKyNkZWZpbmUgbW1EU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfU0NMX0JMQUNLX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2ZiCisjZGVmaW5lIG1tRFNDTDBfU0NMX0JMQUNLX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX0RTQ0xfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNmYworI2RlZmluZSBtbURTQ0wwX0RTQ0xfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9EU0NMX0FVVE9DQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjZmQKKyNkZWZpbmUgbW1EU0NMMF9EU0NMX0FVVE9DQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwY2ZlCisjZGVmaW5lIG1tRFNDTDBfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGNmZgorI2RlZmluZSBtbURTQ0wwX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9PVEdfSF9CTEFOSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMDAKKyNkZWZpbmUgbW1EU0NMMF9PVEdfSF9CTEFOS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfT1RHX1ZfQkxBTksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDAxCisjZGVmaW5lIG1tRFNDTDBfT1RHX1ZfQkxBTktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX1JFQ09VVF9TVEFSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQwMgorI2RlZmluZSBtbURTQ0wwX1JFQ09VVF9TVEFSVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9SRUNPVVRfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMDMKKyNkZWZpbmUgbW1EU0NMMF9SRUNPVVRfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfTVBDX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDA0CisjZGVmaW5lIG1tRFNDTDBfTVBDX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX0xCX0RBVEFfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQwNQorI2RlZmluZSBtbURTQ0wwX0xCX0RBVEFfRk9STUFUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9MQl9NRU1PUllfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMDYKKyNkZWZpbmUgbW1EU0NMMF9MQl9NRU1PUllfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfTEJfVl9DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDA3CisjZGVmaW5lIG1tRFNDTDBfTEJfVl9DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX0RTQ0xfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQwOAorI2RlZmluZSBtbURTQ0wwX0RTQ0xfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMF9EU0NMX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMDkKKyNkZWZpbmUgbW1EU0NMMF9EU0NMX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDBfT0JVRl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDBhCisjZGVmaW5lIG1tRFNDTDBfT0JVRl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wwX09CVUZfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQwYgorI2RlZmluZSBtbURTQ0wwX09CVUZfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAwX2Rpc3BkZWNfY21fZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1DTTBfQ01fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMWEKKyNkZWZpbmUgbW1DTTBfQ01fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDFiCisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9JQ1NDX0MxMV9DMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQxYworI2RlZmluZSBtbUNNMF9DTV9JQ1NDX0MxMV9DMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fSUNTQ19DMTNfQzE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMWQKKyNkZWZpbmUgbW1DTTBfQ01fSUNTQ19DMTNfQzE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQzIxX0MyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDFlCisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQzIxX0MyMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9JQ1NDX0MyM19DMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQxZgorI2RlZmluZSBtbUNNMF9DTV9JQ1NDX0MyM19DMjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fSUNTQ19DMzFfQzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMjAKKyNkZWZpbmUgbW1DTTBfQ01fSUNTQ19DMzFfQzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQzMzX0MzNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDIxCisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQzMzX0MzNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9JQ1NDX0JfQzExX0MxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQyMgorI2RlZmluZSBtbUNNMF9DTV9JQ1NDX0JfQzExX0MxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fSUNTQ19CX0MxM19DMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMjMKKyNkZWZpbmUgbW1DTTBfQ01fSUNTQ19CX0MxM19DMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQl9DMjFfQzIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDI0CisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQl9DMjFfQzIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9JQ1NDX0JfQzIzX0MyNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQyNQorI2RlZmluZSBtbUNNMF9DTV9JQ1NDX0JfQzIzX0MyNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fSUNTQ19CX0MzMV9DMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMjYKKyNkZWZpbmUgbW1DTTBfQ01fSUNTQ19CX0MzMV9DMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQl9DMzNfQzM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDI3CisjZGVmaW5lIG1tQ00wX0NNX0lDU0NfQl9DMzNfQzM0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQyOAorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fR0FNVVRfUkVNQVBfQzExX0MxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMjkKKyNkZWZpbmUgbW1DTTBfQ01fR0FNVVRfUkVNQVBfQzExX0MxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0dBTVVUX1JFTUFQX0MxM19DMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDJhCisjZGVmaW5lIG1tQ00wX0NNX0dBTVVUX1JFTUFQX0MxM19DMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQyYgorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fR0FNVVRfUkVNQVBfQzIzX0MyNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMmMKKyNkZWZpbmUgbW1DTTBfQ01fR0FNVVRfUkVNQVBfQzIzX0MyNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0dBTVVUX1JFTUFQX0MzMV9DMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDJkCisjZGVmaW5lIG1tQ00wX0NNX0dBTVVUX1JFTUFQX0MzMV9DMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQyZQorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fR0FNVVRfUkVNQVBfQl9DMTFfQzEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMmYKKyNkZWZpbmUgbW1DTTBfQ01fR0FNVVRfUkVNQVBfQl9DMTFfQzEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDMwCisjZGVmaW5lIG1tQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQzMQorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fR0FNVVRfUkVNQVBfQl9DMjNfQzI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMzIKKyNkZWZpbmUgbW1DTTBfQ01fR0FNVVRfUkVNQVBfQl9DMjNfQzI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDMzCisjZGVmaW5lIG1tQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQzNAorI2RlZmluZSBtbUNNMF9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQklBU19DUl9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMzUKKyNkZWZpbmUgbW1DTTBfQ01fQklBU19DUl9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JJQVNfWV9HX0NCX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDM2CisjZGVmaW5lIG1tQ00wX0NNX0JJQVNfWV9HX0NCX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQzNworI2RlZmluZSBtbUNNMF9DTV9ER0FNX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkMzgKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDM5CisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQzYQorI2RlZmluZSBtbUNNMF9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkM2IKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDNjCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQzZAorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkM2UKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDNmCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ0MAorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNDEKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDQyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ0MworI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNDQKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDQ1CisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ0NgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNDcKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDQ4CisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ0OQorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNGEKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDRiCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ0YworI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNGQKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDRlCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ0ZgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNTAKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDUxCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ1MgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNTMKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDU0CisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ1NQorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNTYKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDU3CisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ1OAorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNTkKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDVhCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ1YgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNWMKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDVkCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ1ZQorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNWYKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDYwCisjZGVmaW5lIG1tQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ2MQorI2RlZmluZSBtbUNNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNjIKKyNkZWZpbmUgbW1DTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDYzCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX0xVVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ2NAorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX0xVVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9MVVRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNjUKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9MVVRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDY2CisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ2NworI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNjgKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDY5CisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ2YQorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNmIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDZjCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ2ZAorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNmUKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDZmCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ3MAorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNzEKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDcyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ3MworI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNzQKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDc1CisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ3NgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkNzcKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDc4CisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ3OQorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkN2EKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDdiCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ3YworI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkN2QKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDdlCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ3ZgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkODAKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDgxCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ4MgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkODMKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDg0CisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfU1RBUlRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ4NQorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkODYKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDg3CisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ4OAorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkODkKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDhhCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ4YgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkOGMKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDhkCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ4ZQorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkOGYKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDkwCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ5MQorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkOTIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDkzCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ5NAorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkOTUKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTJfMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDk2CisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTJfMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ5NworI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkOTgKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMThfMTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDk5CisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMThfMTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ5YQorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkOWIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjRfMjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDljCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjRfMjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQ5ZAorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkOWUKKyNkZWZpbmUgbW1DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzBfMzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZDlmCisjZGVmaW5lIG1tQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzBfMzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRhMAorI2RlZmluZSBtbUNNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fSERSX01VTFRfQ09FRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYTEKKyNkZWZpbmUgbW1DTTBfQ01fSERSX01VTFRfQ09FRl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX01FTV9QV1JfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGEyCisjZGVmaW5lIG1tQ00wX0NNX01FTV9QV1JfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9NRU1fUFdSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRhMworI2RlZmluZSBtbUNNMF9DTV9NRU1fUFdSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fREVBTFBIQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYTUKKyNkZWZpbmUgbW1DTTBfQ01fREVBTFBIQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX0NPRUZfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGE2CisjZGVmaW5lIG1tQ00wX0NNX0NPRUZfRk9STUFUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRhNworI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX09GRlNFVF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYTgKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX09GRlNFVF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9PRkZTRVRfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGE5CisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9PRkZTRVRfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfT0ZGU0VUX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRhYQorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfT0ZGU0VUX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1NDQUxFX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYWIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1NDQUxFX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9TQ0FMRV9HX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGFjCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9TQ0FMRV9HX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfTFVUX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRhZAorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfTFVUX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX0xVVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYWUKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX0xVVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGFmCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRiMAorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYjEKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGIyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9FTkRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRiMworI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9FTkRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYjQKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGI1CisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRiNgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYjcKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGI4CisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNl83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRiOQorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNl83X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYmEKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMF8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGJiCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMF8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRiYworI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYmQKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNl8xNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGJlCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNl8xN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRiZgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYzAKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMl8yMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGMxCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMl8yM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRjMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYzMKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yOF8yOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGM0CisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yOF8yOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRjNQorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYzYKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGM3CisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRjOAorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkYzkKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGNhCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9FTkRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRjYgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9FTkRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkY2MKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGNkCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRjZQorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkY2YKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGQwCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRkMQorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkZDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGQzCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRkNAorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkZDUKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGQ2CisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRkNworI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkZDgKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGQ5CisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRkYQorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkZGIKKyNkZWZpbmUgbW1DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGRjCisjZGVmaW5lIG1tQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRkZAorI2RlZmluZSBtbUNNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fTUVNX1BXUl9DVFJMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkZGUKKyNkZWZpbmUgbW1DTTBfQ01fTUVNX1BXUl9DVFJMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNX01FTV9QV1JfU1RBVFVTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGRmCisjZGVmaW5lIG1tQ00wX0NNX01FTV9QV1JfU1RBVFVTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV8zRExVVF9NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRlMAorI2RlZmluZSBtbUNNMF9DTV8zRExVVF9NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fM0RMVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkZTEKKyNkZWZpbmUgbW1DTTBfQ01fM0RMVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNXzNETFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGUyCisjZGVmaW5lIG1tQ00wX0NNXzNETFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV8zRExVVF9EQVRBXzMwQklUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRlMworI2RlZmluZSBtbUNNMF9DTV8zRExVVF9EQVRBXzMwQklUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkZTQKKyNkZWZpbmUgbW1DTTBfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNXzNETFVUX09VVF9OT1JNX0ZBQ1RPUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGU1CisjZGVmaW5lIG1tQ00wX0NNXzNETFVUX09VVF9OT1JNX0ZBQ1RPUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV8zRExVVF9PVVRfT0ZGU0VUX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRlNgorI2RlZmluZSBtbUNNMF9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fM0RMVVRfT1VUX09GRlNFVF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkZTcKKyNkZWZpbmUgbW1DTTBfQ01fM0RMVVRfT1VUX09GRlNFVF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00wX0NNXzNETFVUX09VVF9PRkZTRVRfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZGU4CisjZGVmaW5lIG1tQ00wX0NNXzNETFVUX09VVF9PRkZTRVRfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMF9DTV9URVNUX0RFQlVHX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGRlOQorI2RlZmluZSBtbUNNMF9DTV9URVNUX0RFQlVHX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTBfQ01fVEVTVF9ERUJVR19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBkZWEKKyNkZWZpbmUgbW1DTTBfQ01fVEVTVF9ERUJVR19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMF9kaXNwZGVjX2RwcF9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4Mzg5MAorI2RlZmluZSBtbURDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGUyNAorI2RlZmluZSBtbURDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlMjUKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTI2CisjZGVmaW5lIG1tRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xMV9QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGUyNworI2RlZmluZSBtbURDX1BFUkZNT04xMV9QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTFfUEVSRk1PTl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlMjgKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTFfUEVSRk1PTl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjExX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTI5CisjZGVmaW5lIG1tRENfUEVSRk1PTjExX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xMV9QRVJGTU9OX0NWQUxVRV9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGUyYQorI2RlZmluZSBtbURDX1BFUkZNT04xMV9QRVJGTU9OX0NWQUxVRV9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTFfUEVSRk1PTl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlMmIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTFfUEVSRk1PTl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjExX1BFUkZNT05fTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTJjCisjZGVmaW5lIG1tRENfUEVSRk1PTjExX1BFUkZNT05fTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDFfZGlzcGRlY19kcHBfdG9wX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg1YWMKKyNkZWZpbmUgbW1EUFBfVE9QMV9EUFBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlMzAKKyNkZWZpbmUgbW1EUFBfVE9QMV9EUFBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBQX1RPUDFfRFBQX1NPRlRfUkVTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTMxCisjZGVmaW5lIG1tRFBQX1RPUDFfRFBQX1NPRlRfUkVTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQUF9UT1AxX0RQUF9DUkNfVkFMX1JfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGUzMgorI2RlZmluZSBtbURQUF9UT1AxX0RQUF9DUkNfVkFMX1JfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUFBfVE9QMV9EUFBfQ1JDX1ZBTF9CX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlMzMKKyNkZWZpbmUgbW1EUFBfVE9QMV9EUFBfQ1JDX1ZBTF9CX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBQX1RPUDFfRFBQX0NSQ19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTM0CisjZGVmaW5lIG1tRFBQX1RPUDFfRFBQX0NSQ19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQUF9UT1AxX0hPU1RfUkVBRF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGUzNQorI2RlZmluZSBtbURQUF9UT1AxX0hPU1RfUkVBRF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAxX2Rpc3BkZWNfY252Y19jZmdfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDVhYworI2RlZmluZSBtbUNOVkNfQ0ZHMV9DTlZDX1NVUkZBQ0VfUElYRUxfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGUzYQorI2RlZmluZSBtbUNOVkNfQ0ZHMV9DTlZDX1NVUkZBQ0VfUElYRUxfRk9STUFUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzFfRk9STUFUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlM2IKKyNkZWZpbmUgbW1DTlZDX0NGRzFfRk9STUFUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcxX0ZDTlZfRlBfQklBU19SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTNjCisjZGVmaW5lIG1tQ05WQ19DRkcxX0ZDTlZfRlBfQklBU19SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMV9GQ05WX0ZQX0JJQVNfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGUzZAorI2RlZmluZSBtbUNOVkNfQ0ZHMV9GQ05WX0ZQX0JJQVNfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzFfRkNOVl9GUF9CSUFTX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlM2UKKyNkZWZpbmUgbW1DTlZDX0NGRzFfRkNOVl9GUF9CSUFTX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcxX0ZDTlZfRlBfU0NBTEVfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTNmCisjZGVmaW5lIG1tQ05WQ19DRkcxX0ZDTlZfRlBfU0NBTEVfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMV9GQ05WX0ZQX1NDQUxFX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU0MAorI2RlZmluZSBtbUNOVkNfQ0ZHMV9GQ05WX0ZQX1NDQUxFX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzFfRkNOVl9GUF9TQ0FMRV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNDEKKyNkZWZpbmUgbW1DTlZDX0NGRzFfRkNOVl9GUF9TQ0FMRV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTQyCisjZGVmaW5lIG1tQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMV9DT0xPUl9LRVlFUl9BTFBIQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU0MworI2RlZmluZSBtbUNOVkNfQ0ZHMV9DT0xPUl9LRVlFUl9BTFBIQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzFfQ09MT1JfS0VZRVJfUkVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNDQKKyNkZWZpbmUgbW1DTlZDX0NGRzFfQ09MT1JfS0VZRVJfUkVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0dSRUVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTQ1CisjZGVmaW5lIG1tQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0dSRUVOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMV9DT0xPUl9LRVlFUl9CTFVFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU0NgorI2RlZmluZSBtbUNOVkNfQ0ZHMV9DT0xPUl9LRVlFUl9CTFVFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzFfQUxQSEFfMkJJVF9MVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNDgKKyNkZWZpbmUgbW1DTlZDX0NGRzFfQUxQSEFfMkJJVF9MVVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMV9kaXNwZGVjX2NudmNfY3VyX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg1YWMKKyNkZWZpbmUgbW1DTlZDX0NVUjFfQ1VSU09SMF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNGIKKyNkZWZpbmUgbW1DTlZDX0NVUjFfQ1VSU09SMF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DVVIxX0NVUlNPUjBfQ09MT1IwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTRjCisjZGVmaW5lIG1tQ05WQ19DVVIxX0NVUlNPUjBfQ09MT1IwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ1VSMV9DVVJTT1IwX0NPTE9SMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU0ZAorI2RlZmluZSBtbUNOVkNfQ1VSMV9DVVJTT1IwX0NPTE9SMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NVUjFfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNGUKKyNkZWZpbmUgbW1DTlZDX0NVUjFfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMV9kaXNwZGVjX2RzY2xfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDVhYworI2RlZmluZSBtbURTQ0wxX1NDTF9DT0VGX1JBTV9UQVBfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU1NQorI2RlZmluZSBtbURTQ0wxX1NDTF9DT0VGX1JBTV9UQVBfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfQ09FRl9SQU1fVEFQX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNTYKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfU0NMX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTU3CisjZGVmaW5lIG1tRFNDTDFfU0NMX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX1NDTF9UQVBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU1OAorI2RlZmluZSBtbURTQ0wxX1NDTF9UQVBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9EU0NMX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNTkKKyNkZWZpbmUgbW1EU0NMMV9EU0NMX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfRFNDTF8yVEFQX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTVhCisjZGVmaW5lIG1tRFNDTDFfRFNDTF8yVEFQX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX1NDTF9NQU5VQUxfUkVQTElDQVRFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU1YgorI2RlZmluZSBtbURTQ0wxX1NDTF9NQU5VQUxfUkVQTElDQVRFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNWMKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfU0NMX0hPUlpfRklMVEVSX0lOSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTVkCisjZGVmaW5lIG1tRFNDTDFfU0NMX0hPUlpfRklMVEVSX0lOSVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU1ZQorI2RlZmluZSBtbURTQ0wxX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNWYKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTYwCisjZGVmaW5lIG1tRFNDTDFfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9JTklUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU2MQorI2RlZmluZSBtbURTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNjIKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTYzCisjZGVmaW5lIG1tRFNDTDFfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU2NAorI2RlZmluZSBtbURTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNjUKKyNkZWZpbmUgbW1EU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfU0NMX0JMQUNLX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTY2CisjZGVmaW5lIG1tRFNDTDFfU0NMX0JMQUNLX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX0RTQ0xfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU2NworI2RlZmluZSBtbURTQ0wxX0RTQ0xfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9EU0NMX0FVVE9DQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNjgKKyNkZWZpbmUgbW1EU0NMMV9EU0NMX0FVVE9DQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTY5CisjZGVmaW5lIG1tRFNDTDFfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU2YQorI2RlZmluZSBtbURTQ0wxX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9PVEdfSF9CTEFOSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNmIKKyNkZWZpbmUgbW1EU0NMMV9PVEdfSF9CTEFOS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfT1RHX1ZfQkxBTksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTZjCisjZGVmaW5lIG1tRFNDTDFfT1RHX1ZfQkxBTktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX1JFQ09VVF9TVEFSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU2ZAorI2RlZmluZSBtbURTQ0wxX1JFQ09VVF9TVEFSVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9SRUNPVVRfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNmUKKyNkZWZpbmUgbW1EU0NMMV9SRUNPVVRfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfTVBDX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTZmCisjZGVmaW5lIG1tRFNDTDFfTVBDX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX0xCX0RBVEFfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU3MAorI2RlZmluZSBtbURTQ0wxX0xCX0RBVEFfRk9STUFUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9MQl9NRU1PUllfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNzEKKyNkZWZpbmUgbW1EU0NMMV9MQl9NRU1PUllfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfTEJfVl9DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTcyCisjZGVmaW5lIG1tRFNDTDFfTEJfVl9DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX0RTQ0xfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU3MworI2RlZmluZSBtbURTQ0wxX0RTQ0xfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMV9EU0NMX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlNzQKKyNkZWZpbmUgbW1EU0NMMV9EU0NMX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDFfT0JVRl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTc1CisjZGVmaW5lIG1tRFNDTDFfT0JVRl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wxX09CVUZfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU3NgorI2RlZmluZSBtbURTQ0wxX09CVUZfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAxX2Rpc3BkZWNfY21fZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDVhYworI2RlZmluZSBtbUNNMV9DTV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU4NQorI2RlZmluZSBtbUNNMV9DTV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlODYKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0lDU0NfQzExX0MxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTg3CisjZGVmaW5lIG1tQ00xX0NNX0lDU0NfQzExX0MxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9JQ1NDX0MxM19DMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU4OAorI2RlZmluZSBtbUNNMV9DTV9JQ1NDX0MxM19DMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19DMjFfQzIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlODkKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19DMjFfQzIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0lDU0NfQzIzX0MyNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZThhCisjZGVmaW5lIG1tQ00xX0NNX0lDU0NfQzIzX0MyNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9JQ1NDX0MzMV9DMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU4YgorI2RlZmluZSBtbUNNMV9DTV9JQ1NDX0MzMV9DMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19DMzNfQzM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlOGMKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19DMzNfQzM0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0lDU0NfQl9DMTFfQzEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZThkCisjZGVmaW5lIG1tQ00xX0NNX0lDU0NfQl9DMTFfQzEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9JQ1NDX0JfQzEzX0MxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU4ZQorI2RlZmluZSBtbUNNMV9DTV9JQ1NDX0JfQzEzX0MxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19CX0MyMV9DMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlOGYKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19CX0MyMV9DMjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0lDU0NfQl9DMjNfQzI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTkwCisjZGVmaW5lIG1tQ00xX0NNX0lDU0NfQl9DMjNfQzI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9JQ1NDX0JfQzMxX0MzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU5MQorI2RlZmluZSBtbUNNMV9DTV9JQ1NDX0JfQzMxX0MzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19CX0MzM19DMzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlOTIKKyNkZWZpbmUgbW1DTTFfQ01fSUNTQ19CX0MzM19DMzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTkzCisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU5NAorI2RlZmluZSBtbUNNMV9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fR0FNVVRfUkVNQVBfQzEzX0MxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlOTUKKyNkZWZpbmUgbW1DTTFfQ01fR0FNVVRfUkVNQVBfQzEzX0MxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0MyMV9DMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTk2CisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0MyMV9DMjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU5NworI2RlZmluZSBtbUNNMV9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fR0FNVVRfUkVNQVBfQzMxX0MzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlOTgKKyNkZWZpbmUgbW1DTTFfQ01fR0FNVVRfUkVNQVBfQzMxX0MzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0MzM19DMzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTk5CisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0MzM19DMzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU5YQorI2RlZmluZSBtbUNNMV9DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlOWIKKyNkZWZpbmUgbW1DTTFfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzIxX0MyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTljCisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzIxX0MyMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGU5ZAorI2RlZmluZSBtbUNNMV9DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlOWUKKyNkZWZpbmUgbW1DTTFfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzMzX0MzNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZTlmCisjZGVmaW5lIG1tQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzMzX0MzNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CSUFTX0NSX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVhMAorI2RlZmluZSBtbUNNMV9DTV9CSUFTX0NSX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQklBU19ZX0dfQ0JfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYTEKKyNkZWZpbmUgbW1DTTFfQ01fQklBU19ZX0dfQ0JfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWEyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX0xVVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVhMworI2RlZmluZSBtbUNNMV9DTV9ER0FNX0xVVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9MVVRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYTQKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9MVVRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fTFVUX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWE1CisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fTFVUX1dSSVRFX0VOX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVhNgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYTcKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWE4CisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVhOQorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYWEKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWFiCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVhYworI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYWQKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWFlCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVhZgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYjAKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWIxCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGViMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYjMKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWI0CisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGViNQorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYjYKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWI3CisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGViOAorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYjkKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9TVEFSVF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWJhCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9TVEFSVF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGViYgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYmMKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWJkCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGViZQorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYmYKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWMwCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVjMQorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYzIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWMzCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVjNAorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYzUKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWM2CisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVjNworI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX1JFR0lPTl80XzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlYzgKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWM5CisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVjYQorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8xMF8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlY2IKKyNkZWZpbmUgbW1DTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWNjCisjZGVmaW5lIG1tQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVjZAorI2RlZmluZSBtbUNNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlY2UKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fTFVUX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWNmCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fTFVUX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX0xVVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVkMAorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX0xVVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9MVVRfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZDEKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9MVVRfV1JJVEVfRU5fTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWQyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVkMworI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1NUQVJUX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZDQKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1NUQVJUX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWQ1CisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVkNgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZDcKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWQ4CisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVkOQorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZGEKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWRiCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVkYworI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZGQKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWRlCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVkZgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZTAKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWUxCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVlMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZTMKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWU0CisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE0XzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVlNQorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZTYKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWU3CisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIwXzIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVlOAorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIwXzIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZTkKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWVhCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI2XzI3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVlYgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI2XzI3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZWMKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWVkCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMyXzMzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVlZQorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMyXzMzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZWYKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWYwCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVmMQorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZjIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWYzCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVmNAorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZjUKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWY2CisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVmNworI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZjgKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWY5CisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVmYQorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZmIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWZjCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGVmZAorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBlZmUKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZWZmCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYwMAorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMDEKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYwMworI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMDQKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjA1CisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYwNgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMDcKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjA4CisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYwOQorI2RlZmluZSBtbUNNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMGEKKyNkZWZpbmUgbW1DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjBiCisjZGVmaW5lIG1tQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9IRFJfTVVMVF9DT0VGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYwYworI2RlZmluZSBtbUNNMV9DTV9IRFJfTVVMVF9DT0VGX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMGQKKyNkZWZpbmUgbW1DTTFfQ01fTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjBlCisjZGVmaW5lIG1tQ00xX0NNX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9ERUFMUEhBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYxMAorI2RlZmluZSBtbUNNMV9DTV9ERUFMUEhBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fQ09FRl9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMTEKKyNkZWZpbmUgbW1DTTFfQ01fQ09FRl9GT1JNQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjEyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfT0ZGU0VUX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYxMworI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfT0ZGU0VUX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX09GRlNFVF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMTQKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX09GRlNFVF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9PRkZTRVRfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjE1CisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9PRkZTRVRfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfU0NBTEVfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYxNgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfU0NBTEVfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1NDQUxFX0dfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMTcKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1NDQUxFX0dfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjE4CisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYxOQorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMWEKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjFiCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYxYworI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMWQKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjFlCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9FTkRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYxZgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9FTkRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMjAKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjIxCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYyMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMjMKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjI0CisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYyNQorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMjYKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjI3CisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYyOAorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMjkKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjJhCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYyYgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMmMKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjJkCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYyZQorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMmYKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjMwCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYzMQorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMzIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjMzCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYzNAorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMzUKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjM2CisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9FTkRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYzNworI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9FTkRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmMzgKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjM5CisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYzYQorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmM2IKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjNjCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYzZAorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmM2UKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjNmCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY0MAorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmNDEKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjQyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY0MworI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmNDQKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjQ1CisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY0NgorI2RlZmluZSBtbUNNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmNDcKKyNkZWZpbmUgbW1DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjQ4CisjZGVmaW5lIG1tQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9NRU1fUFdSX0NUUkwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY0OQorI2RlZmluZSBtbUNNMV9DTV9NRU1fUFdSX0NUUkwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fTUVNX1BXUl9TVEFUVVMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmNGEKKyNkZWZpbmUgbW1DTTFfQ01fTUVNX1BXUl9TVEFUVVMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNXzNETFVUX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjRiCisjZGVmaW5lIG1tQ00xX0NNXzNETFVUX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV8zRExVVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY0YworI2RlZmluZSBtbUNNMV9DTV8zRExVVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fM0RMVVRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmNGQKKyNkZWZpbmUgbW1DTTFfQ01fM0RMVVRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNXzNETFVUX0RBVEFfMzBCSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjRlCisjZGVmaW5lIG1tQ00xX0NNXzNETFVUX0RBVEFfMzBCSVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV8zRExVVF9SRUFEX1dSSVRFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY0ZgorI2RlZmluZSBtbUNNMV9DTV8zRExVVF9SRUFEX1dSSVRFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmNTAKKyNkZWZpbmUgbW1DTTFfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNXzNETFVUX09VVF9PRkZTRVRfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjUxCisjZGVmaW5lIG1tQ00xX0NNXzNETFVUX09VVF9PRkZTRVRfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV8zRExVVF9PVVRfT0ZGU0VUX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY1MgorI2RlZmluZSBtbUNNMV9DTV8zRExVVF9PVVRfT0ZGU0VUX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTFfQ01fM0RMVVRfT1VUX09GRlNFVF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmNTMKKyNkZWZpbmUgbW1DTTFfQ01fM0RMVVRfT1VUX09GRlNFVF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00xX0NNX1RFU1RfREVCVUdfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjU0CisjZGVmaW5lIG1tQ00xX0NNX1RFU1RfREVCVUdfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMV9DTV9URVNUX0RFQlVHX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY1NQorI2RlZmluZSBtbUNNMV9DTV9URVNUX0RFQlVHX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAxX2Rpc3BkZWNfZHBwX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgzZTNjCisjZGVmaW5lIG1tRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjhmCisjZGVmaW5lIG1tRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY5MAorI2RlZmluZSBtbURDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmOTEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjkyCisjZGVmaW5lIG1tRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xMl9QRVJGTU9OX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY5MworI2RlZmluZSBtbURDX1BFUkZNT04xMl9QRVJGTU9OX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmOTQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjEyX1BFUkZNT05fQ1ZBTFVFX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjk1CisjZGVmaW5lIG1tRENfUEVSRk1PTjEyX1BFUkZNT05fQ1ZBTFVFX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xMl9QRVJGTU9OX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY5NgorI2RlZmluZSBtbURDX1BFUkZNT04xMl9QRVJGTU9OX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTJfUEVSRk1PTl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmOTcKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTJfUEVSRk1PTl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMl9kaXNwZGVjX2RwcF90b3BfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweGI1OAorI2RlZmluZSBtbURQUF9UT1AyX0RQUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY5YgorI2RlZmluZSBtbURQUF9UT1AyX0RQUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUFBfVE9QMl9EUFBfU09GVF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmOWMKKyNkZWZpbmUgbW1EUFBfVE9QMl9EUFBfU09GVF9SRVNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBQX1RPUDJfRFBQX0NSQ19WQUxfUl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZjlkCisjZGVmaW5lIG1tRFBQX1RPUDJfRFBQX0NSQ19WQUxfUl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQUF9UT1AyX0RQUF9DUkNfVkFMX0JfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGY5ZQorI2RlZmluZSBtbURQUF9UT1AyX0RQUF9DUkNfVkFMX0JfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUFBfVE9QMl9EUFBfQ1JDX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmOWYKKyNkZWZpbmUgbW1EUFBfVE9QMl9EUFBfQ1JDX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBQX1RPUDJfSE9TVF9SRUFEX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmEwCisjZGVmaW5lIG1tRFBQX1RPUDJfSE9TVF9SRUFEX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDJfZGlzcGRlY19jbnZjX2NmZ19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YjU4CisjZGVmaW5lIG1tQ05WQ19DRkcyX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmE1CisjZGVmaW5lIG1tQ05WQ19DRkcyX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMl9GT1JNQVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZhNgorI2RlZmluZSBtbUNOVkNfQ0ZHMl9GT1JNQVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzJfRkNOVl9GUF9CSUFTX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmYTcKKyNkZWZpbmUgbW1DTlZDX0NGRzJfRkNOVl9GUF9CSUFTX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcyX0ZDTlZfRlBfQklBU19HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmE4CisjZGVmaW5lIG1tQ05WQ19DRkcyX0ZDTlZfRlBfQklBU19HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMl9GQ05WX0ZQX0JJQVNfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZhOQorI2RlZmluZSBtbUNOVkNfQ0ZHMl9GQ05WX0ZQX0JJQVNfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzJfRkNOVl9GUF9TQ0FMRV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmYWEKKyNkZWZpbmUgbW1DTlZDX0NGRzJfRkNOVl9GUF9TQ0FMRV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcyX0ZDTlZfRlBfU0NBTEVfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmFiCisjZGVmaW5lIG1tQ05WQ19DRkcyX0ZDTlZfRlBfU0NBTEVfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMl9GQ05WX0ZQX1NDQUxFX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZhYworI2RlZmluZSBtbUNOVkNfQ0ZHMl9GQ05WX0ZQX1NDQUxFX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzJfQ09MT1JfS0VZRVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmYWQKKyNkZWZpbmUgbW1DTlZDX0NGRzJfQ09MT1JfS0VZRVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0FMUEhBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmFlCisjZGVmaW5lIG1tQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0FMUEhBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMl9DT0xPUl9LRVlFUl9SRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZhZgorI2RlZmluZSBtbUNOVkNfQ0ZHMl9DT0xPUl9LRVlFUl9SRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzJfQ09MT1JfS0VZRVJfR1JFRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmYjAKKyNkZWZpbmUgbW1DTlZDX0NGRzJfQ09MT1JfS0VZRVJfR1JFRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0JMVUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmIxCisjZGVmaW5lIG1tQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0JMVUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHMl9BTFBIQV8yQklUX0xVVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZiMworI2RlZmluZSBtbUNOVkNfQ0ZHMl9BTFBIQV8yQklUX0xVVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAyX2Rpc3BkZWNfY252Y19jdXJfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweGI1OAorI2RlZmluZSBtbUNOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZiNgorI2RlZmluZSBtbUNOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NVUjJfQ1VSU09SMF9DT0xPUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmYjcKKyNkZWZpbmUgbW1DTlZDX0NVUjJfQ1VSU09SMF9DT0xPUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DVVIyX0NVUlNPUjBfQ09MT1IxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmI4CisjZGVmaW5lIG1tQ05WQ19DVVIyX0NVUlNPUjBfQ09MT1IxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ1VSMl9DVVJTT1IwX0ZQX1NDQUxFX0JJQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZiOQorI2RlZmluZSBtbUNOVkNfQ1VSMl9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAyX2Rpc3BkZWNfZHNjbF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YjU4CisjZGVmaW5lIG1tRFNDTDJfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmMwCisjZGVmaW5lIG1tRFNDTDJfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX1NDTF9DT0VGX1JBTV9UQVBfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZjMQorI2RlZmluZSBtbURTQ0wyX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmYzIKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfU0NMX1RBUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmMzCisjZGVmaW5lIG1tRFNDTDJfU0NMX1RBUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX0RTQ0xfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZjNAorI2RlZmluZSBtbURTQ0wyX0RTQ0xfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9EU0NMXzJUQVBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmYzUKKyNkZWZpbmUgbW1EU0NMMl9EU0NMXzJUQVBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmM2CisjZGVmaW5lIG1tRFNDTDJfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZjNworI2RlZmluZSBtbURTQ0wyX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfSE9SWl9GSUxURVJfSU5JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmYzgKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfSE9SWl9GSUxURVJfSU5JVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmM5CisjZGVmaW5lIG1tRFNDTDJfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX1NDTF9IT1JaX0ZJTFRFUl9JTklUX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZjYQorI2RlZmluZSBtbURTQ0wyX1NDTF9IT1JaX0ZJTFRFUl9JTklUX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmY2IKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfU0NMX1ZFUlRfRklMVEVSX0lOSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmNjCisjZGVmaW5lIG1tRFNDTDJfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZjZAorI2RlZmluZSBtbURTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmY2UKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmNmCisjZGVmaW5lIG1tRFNDTDJfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZkMAorI2RlZmluZSBtbURTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfQkxBQ0tfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZDEKKyNkZWZpbmUgbW1EU0NMMl9TQ0xfQkxBQ0tfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfRFNDTF9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmQyCisjZGVmaW5lIG1tRFNDTDJfRFNDTF9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX0RTQ0xfQVVUT0NBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZkMworI2RlZmluZSBtbURTQ0wyX0RTQ0xfQVVUT0NBTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZDQKKyNkZWZpbmUgbW1EU0NMMl9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfRFNDTF9FWFRfT1ZFUlNDQU5fVE9QX0JPVFRPTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmQ1CisjZGVmaW5lIG1tRFNDTDJfRFNDTF9FWFRfT1ZFUlNDQU5fVE9QX0JPVFRPTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX09UR19IX0JMQU5LICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZkNgorI2RlZmluZSBtbURTQ0wyX09UR19IX0JMQU5LX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9PVEdfVl9CTEFOSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZDcKKyNkZWZpbmUgbW1EU0NMMl9PVEdfVl9CTEFOS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfUkVDT1VUX1NUQVJUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmQ4CisjZGVmaW5lIG1tRFNDTDJfUkVDT1VUX1NUQVJUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX1JFQ09VVF9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZkOQorI2RlZmluZSBtbURTQ0wyX1JFQ09VVF9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9NUENfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZGEKKyNkZWZpbmUgbW1EU0NMMl9NUENfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfTEJfREFUQV9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmRiCisjZGVmaW5lIG1tRFNDTDJfTEJfREFUQV9GT1JNQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX0xCX01FTU9SWV9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZkYworI2RlZmluZSBtbURTQ0wyX0xCX01FTU9SWV9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9MQl9WX0NPVU5URVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZGQKKyNkZWZpbmUgbW1EU0NMMl9MQl9WX0NPVU5URVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmRlCisjZGVmaW5lIG1tRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wyX0RTQ0xfTUVNX1BXUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZkZgorI2RlZmluZSBtbURTQ0wyX0RTQ0xfTUVNX1BXUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMMl9PQlVGX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZTAKKyNkZWZpbmUgbW1EU0NMMl9PQlVGX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDJfT0JVRl9NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmUxCisjZGVmaW5lIG1tRFNDTDJfT0JVRl9NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDJfZGlzcGRlY19jbV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YjU4CisjZGVmaW5lIG1tQ00yX0NNX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmYwCisjZGVmaW5lIG1tQ00yX0NNX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZmMQorI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fSUNTQ19DMTFfQzEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZjIKKyNkZWZpbmUgbW1DTTJfQ01fSUNTQ19DMTFfQzEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0lDU0NfQzEzX0MxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmYzCisjZGVmaW5lIG1tQ00yX0NNX0lDU0NfQzEzX0MxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0MyMV9DMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZmNAorI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0MyMV9DMjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fSUNTQ19DMjNfQzI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZjUKKyNkZWZpbmUgbW1DTTJfQ01fSUNTQ19DMjNfQzI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0lDU0NfQzMxX0MzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmY2CisjZGVmaW5lIG1tQ00yX0NNX0lDU0NfQzMxX0MzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0MzM19DMzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZmNworI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0MzM19DMzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fSUNTQ19CX0MxMV9DMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZjgKKyNkZWZpbmUgbW1DTTJfQ01fSUNTQ19CX0MxMV9DMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0lDU0NfQl9DMTNfQzE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmY5CisjZGVmaW5lIG1tQ00yX0NNX0lDU0NfQl9DMTNfQzE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0JfQzIxX0MyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZmYQorI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0JfQzIxX0MyMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fSUNTQ19CX0MyM19DMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZmIKKyNkZWZpbmUgbW1DTTJfQ01fSUNTQ19CX0MyM19DMjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0lDU0NfQl9DMzFfQzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmZjCisjZGVmaW5lIG1tQ00yX0NNX0lDU0NfQl9DMzFfQzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0JfQzMzX0MzNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGZmZAorI2RlZmluZSBtbUNNMl9DTV9JQ1NDX0JfQzMzX0MzNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBmZmUKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0dBTVVUX1JFTUFQX0MxMV9DMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwZmZmCisjZGVmaW5lIG1tQ00yX0NNX0dBTVVUX1JFTUFQX0MxMV9DMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMAorI2RlZmluZSBtbUNNMl9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQzIxX0MyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDEKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQzIxX0MyMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0dBTVVUX1JFTUFQX0MyM19DMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAyCisjZGVmaW5lIG1tQ00yX0NNX0dBTVVUX1JFTUFQX0MyM19DMjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMworI2RlZmluZSBtbUNNMl9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQzMzX0MzNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDQKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQzMzX0MzNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDA1CisjZGVmaW5lIG1tQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9HQU1VVF9SRU1BUF9CX0MxM19DMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwNgorI2RlZmluZSBtbUNNMl9DTV9HQU1VVF9SRU1BUF9CX0MxM19DMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDcKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDA4CisjZGVmaW5lIG1tQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9HQU1VVF9SRU1BUF9CX0MzMV9DMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwOQorI2RlZmluZSBtbUNNMl9DTV9HQU1VVF9SRU1BUF9CX0MzMV9DMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMGEKKyNkZWZpbmUgbW1DTTJfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JJQVNfQ1JfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDBiCisjZGVmaW5lIG1tQ00yX0NNX0JJQVNfQ1JfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CSUFTX1lfR19DQl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwYworI2RlZmluZSBtbUNNMl9DTV9CSUFTX1lfR19DQl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMGQKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fTFVUX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDBlCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fTFVUX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX0xVVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwZgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX0xVVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMTAKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDExCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfU1RBUlRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAxMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfU1RBUlRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMTMKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDE0CisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAxNQorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMTYKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDE3CisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAxOAorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMTkKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDFhCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAxYgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMWMKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDFkCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAxZQorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX1JFR0lPTl80XzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMWYKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDIwCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAyMQorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMjIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMTJfMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDIzCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMTJfMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAyNAorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMjUKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDI2CisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAyNworI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMjgKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDI5CisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAyYQorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMmIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDJjCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAyZAorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMmUKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDJmCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAzMAorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMzEKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDMyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAzMworI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMzQKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDM1CisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAzNgorI2RlZmluZSBtbUNNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMzcKKyNkZWZpbmUgbW1DTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDM4CisjZGVmaW5lIG1tQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAzOQorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwM2EKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDNiCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX0xVVF9XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAzYworI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX0xVVF9XUklURV9FTl9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwM2QKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDNlCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAzZgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNDAKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDQxCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA0MgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNDMKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDQ0CisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA0NQorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNDYKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDQ3CisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA0OAorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNDkKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDRhCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA0YgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNGMKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDRkCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA0ZQorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNGYKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDUwCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA1MQorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNTIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDUzCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA1NAorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNTUKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDU2CisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA1NworI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNTgKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDU5CisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA1YQorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNWIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDVjCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA1ZAorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNWUKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDVmCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA2MAorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNjEKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDYyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA2MworI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNjQKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDY1CisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA2NgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNjcKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDY4CisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA2OQorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNmEKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDZiCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA2YworI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNmQKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDZlCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA2ZgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNzAKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDcxCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA3MgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNzMKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDc0CisjZGVmaW5lIG1tQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA3NQorI2RlZmluZSBtbUNNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNzYKKyNkZWZpbmUgbW1DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0hEUl9NVUxUX0NPRUYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDc3CisjZGVmaW5lIG1tQ00yX0NNX0hEUl9NVUxUX0NPRUZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA3OAorI2RlZmluZSBtbUNNMl9DTV9NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fTUVNX1BXUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwNzkKKyNkZWZpbmUgbW1DTTJfQ01fTUVNX1BXUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX0RFQUxQSEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDdiCisjZGVmaW5lIG1tQ00yX0NNX0RFQUxQSEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9DT0VGX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA3YworI2RlZmluZSBtbUNNMl9DTV9DT0VGX0ZPUk1BVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwN2QKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9PRkZTRVRfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDdlCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9PRkZTRVRfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfT0ZGU0VUX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA3ZgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfT0ZGU0VUX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX09GRlNFVF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwODAKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX09GRlNFVF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9TQ0FMRV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDgxCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9TQ0FMRV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfU0NBTEVfR19CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA4MgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfU0NBTEVfR19CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX0xVVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwODMKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX0xVVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9MVVRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDg0CisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9MVVRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA4NQorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwODYKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDg3CisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA4OAorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwODkKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDhhCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9FTkRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA4YgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9FTkRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwOGMKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDhkCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA4ZQorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwOGYKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDkwCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA5MQorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwOTIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDkzCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA5NAorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwOTUKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDk2CisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA5NworI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwOTgKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDk5CisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA5YQorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwOWIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDljCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTA5ZAorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwOWUKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDlmCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9FTkRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBhMAorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9FTkRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYTEKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGEyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBhMworI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYTQKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGE1CisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNl83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBhNgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNl83X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYTcKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMF8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGE4CisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMF8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBhOQorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYWEKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNl8xNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGFiCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNl8xN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBhYworI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYWQKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMl8yMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGFlCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMl8yM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBhZgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYjAKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yOF8yOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGIxCisjZGVmaW5lIG1tQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yOF8yOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBiMgorI2RlZmluZSBtbUNNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYjMKKyNkZWZpbmUgbW1DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX01FTV9QV1JfQ1RSTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGI0CisjZGVmaW5lIG1tQ00yX0NNX01FTV9QV1JfQ1RSTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV9NRU1fUFdSX1NUQVRVUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBiNQorI2RlZmluZSBtbUNNMl9DTV9NRU1fUFdSX1NUQVRVUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fM0RMVVRfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYjYKKyNkZWZpbmUgbW1DTTJfQ01fM0RMVVRfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNXzNETFVUX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGI3CisjZGVmaW5lIG1tQ00yX0NNXzNETFVUX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV8zRExVVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBiOAorI2RlZmluZSBtbUNNMl9DTV8zRExVVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fM0RMVVRfREFUQV8zMEJJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYjkKKyNkZWZpbmUgbW1DTTJfQ01fM0RMVVRfREFUQV8zMEJJVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGJhCisjZGVmaW5lIG1tQ00yX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV8zRExVVF9PVVRfTk9STV9GQUNUT1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBiYgorI2RlZmluZSBtbUNNMl9DTV8zRExVVF9PVVRfTk9STV9GQUNUT1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fM0RMVVRfT1VUX09GRlNFVF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYmMKKyNkZWZpbmUgbW1DTTJfQ01fM0RMVVRfT1VUX09GRlNFVF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNXzNETFVUX09VVF9PRkZTRVRfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGJkCisjZGVmaW5lIG1tQ00yX0NNXzNETFVUX09VVF9PRkZTRVRfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNMl9DTV8zRExVVF9PVVRfT0ZGU0VUX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBiZQorI2RlZmluZSBtbUNNMl9DTV8zRExVVF9PVVRfT0ZGU0VUX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTJfQ01fVEVTVF9ERUJVR19JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwYmYKKyNkZWZpbmUgbW1DTTJfQ01fVEVTVF9ERUJVR19JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00yX0NNX1RFU1RfREVCVUdfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGMwCisjZGVmaW5lIG1tQ00yX0NNX1RFU1RfREVCVUdfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDJfZGlzcGRlY19kcHBfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDQzZTgKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwZmEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGZiCisjZGVmaW5lIG1tRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9TVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBmYworI2RlZmluZSBtbURDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9TVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTNfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwZmQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTNfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMGZlCisjZGVmaW5lIG1tRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBmZgorI2RlZmluZSBtbURDX1BFUkZNT04xM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMDAKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjEzX1BFUkZNT05fSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTAxCisjZGVmaW5lIG1tRENfUEVSRk1PTjEzX1BFUkZNT05fSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xM19QRVJGTU9OX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEwMgorI2RlZmluZSBtbURDX1BFUkZNT04xM19QRVJGTU9OX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAzX2Rpc3BkZWNfZHBwX3RvcF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTEwNAorI2RlZmluZSBtbURQUF9UT1AzX0RQUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEwNgorI2RlZmluZSBtbURQUF9UT1AzX0RQUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUFBfVE9QM19EUFBfU09GVF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMDcKKyNkZWZpbmUgbW1EUFBfVE9QM19EUFBfU09GVF9SRVNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBQX1RPUDNfRFBQX0NSQ19WQUxfUl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTA4CisjZGVmaW5lIG1tRFBQX1RPUDNfRFBQX0NSQ19WQUxfUl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQUF9UT1AzX0RQUF9DUkNfVkFMX0JfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEwOQorI2RlZmluZSBtbURQUF9UT1AzX0RQUF9DUkNfVkFMX0JfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUFBfVE9QM19EUFBfQ1JDX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMGEKKyNkZWZpbmUgbW1EUFBfVE9QM19EUFBfQ1JDX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBQX1RPUDNfSE9TVF9SRUFEX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTBiCisjZGVmaW5lIG1tRFBQX1RPUDNfSE9TVF9SRUFEX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDNfZGlzcGRlY19jbnZjX2NmZ19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTEwNAorI2RlZmluZSBtbUNOVkNfQ0ZHM19DTlZDX1NVUkZBQ0VfUElYRUxfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMAorI2RlZmluZSBtbUNOVkNfQ0ZHM19DTlZDX1NVUkZBQ0VfUElYRUxfRk9STUFUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzNfRk9STUFUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMTEKKyNkZWZpbmUgbW1DTlZDX0NGRzNfRk9STUFUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkczX0ZDTlZfRlBfQklBU19SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTEyCisjZGVmaW5lIG1tQ05WQ19DRkczX0ZDTlZfRlBfQklBU19SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHM19GQ05WX0ZQX0JJQVNfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMworI2RlZmluZSBtbUNOVkNfQ0ZHM19GQ05WX0ZQX0JJQVNfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzNfRkNOVl9GUF9CSUFTX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMTQKKyNkZWZpbmUgbW1DTlZDX0NGRzNfRkNOVl9GUF9CSUFTX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkczX0ZDTlZfRlBfU0NBTEVfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTE1CisjZGVmaW5lIG1tQ05WQ19DRkczX0ZDTlZfRlBfU0NBTEVfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHM19GQ05WX0ZQX1NDQUxFX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExNgorI2RlZmluZSBtbUNOVkNfQ0ZHM19GQ05WX0ZQX1NDQUxFX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzNfRkNOVl9GUF9TQ0FMRV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMTcKKyNkZWZpbmUgbW1DTlZDX0NGRzNfRkNOVl9GUF9TQ0FMRV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkczX0NPTE9SX0tFWUVSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTE4CisjZGVmaW5lIG1tQ05WQ19DRkczX0NPTE9SX0tFWUVSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHM19DT0xPUl9LRVlFUl9BTFBIQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExOQorI2RlZmluZSBtbUNOVkNfQ0ZHM19DT0xPUl9LRVlFUl9BTFBIQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzNfQ09MT1JfS0VZRVJfUkVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMWEKKyNkZWZpbmUgbW1DTlZDX0NGRzNfQ09MT1JfS0VZRVJfUkVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DRkczX0NPTE9SX0tFWUVSX0dSRUVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTFiCisjZGVmaW5lIG1tQ05WQ19DRkczX0NPTE9SX0tFWUVSX0dSRUVOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ0ZHM19DT0xPUl9LRVlFUl9CTFVFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExYworI2RlZmluZSBtbUNOVkNfQ0ZHM19DT0xPUl9LRVlFUl9CTFVFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NGRzNfQUxQSEFfMkJJVF9MVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMWUKKyNkZWZpbmUgbW1DTlZDX0NGRzNfQUxQSEFfMkJJVF9MVVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwM19kaXNwZGVjX2NudmNfY3VyX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxMTA0CisjZGVmaW5lIG1tQ05WQ19DVVIzX0NVUlNPUjBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTIxCisjZGVmaW5lIG1tQ05WQ19DVVIzX0NVUlNPUjBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNOVkNfQ1VSM19DVVJTT1IwX0NPTE9SMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEyMgorI2RlZmluZSBtbUNOVkNfQ1VSM19DVVJTT1IwX0NPTE9SMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTlZDX0NVUjNfQ1VSU09SMF9DT0xPUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMjMKKyNkZWZpbmUgbW1DTlZDX0NVUjNfQ1VSU09SMF9DT0xPUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ05WQ19DVVIzX0NVUlNPUjBfRlBfU0NBTEVfQklBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTI0CisjZGVmaW5lIG1tQ05WQ19DVVIzX0NVUlNPUjBfRlBfU0NBTEVfQklBU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDNfZGlzcGRlY19kc2NsX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxMTA0CisjZGVmaW5lIG1tRFNDTDNfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTJiCisjZGVmaW5lIG1tRFNDTDNfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX1NDTF9DT0VGX1JBTV9UQVBfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEyYworI2RlZmluZSBtbURTQ0wzX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19TQ0xfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMmQKKyNkZWZpbmUgbW1EU0NMM19TQ0xfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfU0NMX1RBUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTJlCisjZGVmaW5lIG1tRFNDTDNfU0NMX1RBUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX0RTQ0xfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEyZgorI2RlZmluZSBtbURTQ0wzX0RTQ0xfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19EU0NMXzJUQVBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMzAKKyNkZWZpbmUgbW1EU0NMM19EU0NMXzJUQVBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTMxCisjZGVmaW5lIG1tRFNDTDNfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEzMgorI2RlZmluZSBtbURTQ0wzX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19TQ0xfSE9SWl9GSUxURVJfSU5JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMzMKKyNkZWZpbmUgbW1EU0NMM19TQ0xfSE9SWl9GSUxURVJfSU5JVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTM0CisjZGVmaW5lIG1tRFNDTDNfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX1NDTF9IT1JaX0ZJTFRFUl9JTklUX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEzNQorI2RlZmluZSBtbURTQ0wzX1NDTF9IT1JaX0ZJTFRFUl9JTklUX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMzYKKyNkZWZpbmUgbW1EU0NMM19TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfU0NMX1ZFUlRfRklMVEVSX0lOSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTM3CisjZGVmaW5lIG1tRFNDTDNfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEzOAorI2RlZmluZSBtbURTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMzkKKyNkZWZpbmUgbW1EU0NMM19TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTNhCisjZGVmaW5lIG1tRFNDTDNfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEzYgorI2RlZmluZSBtbURTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19TQ0xfQkxBQ0tfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExM2MKKyNkZWZpbmUgbW1EU0NMM19TQ0xfQkxBQ0tfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfRFNDTF9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTNkCisjZGVmaW5lIG1tRFNDTDNfRFNDTF9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX0RTQ0xfQVVUT0NBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEzZQorI2RlZmluZSBtbURTQ0wzX0RTQ0xfQVVUT0NBTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExM2YKKyNkZWZpbmUgbW1EU0NMM19EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfRFNDTF9FWFRfT1ZFUlNDQU5fVE9QX0JPVFRPTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTQwCisjZGVmaW5lIG1tRFNDTDNfRFNDTF9FWFRfT1ZFUlNDQU5fVE9QX0JPVFRPTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX09UR19IX0JMQU5LICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE0MQorI2RlZmluZSBtbURTQ0wzX09UR19IX0JMQU5LX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19PVEdfVl9CTEFOSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNDIKKyNkZWZpbmUgbW1EU0NMM19PVEdfVl9CTEFOS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfUkVDT1VUX1NUQVJUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTQzCisjZGVmaW5lIG1tRFNDTDNfUkVDT1VUX1NUQVJUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX1JFQ09VVF9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE0NAorI2RlZmluZSBtbURTQ0wzX1JFQ09VVF9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19NUENfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNDUKKyNkZWZpbmUgbW1EU0NMM19NUENfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfTEJfREFUQV9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTQ2CisjZGVmaW5lIG1tRFNDTDNfTEJfREFUQV9GT1JNQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX0xCX01FTU9SWV9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE0NworI2RlZmluZSBtbURTQ0wzX0xCX01FTU9SWV9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19MQl9WX0NPVU5URVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNDgKKyNkZWZpbmUgbW1EU0NMM19MQl9WX0NPVU5URVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTQ5CisjZGVmaW5lIG1tRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0wzX0RTQ0xfTUVNX1BXUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE0YQorI2RlZmluZSBtbURTQ0wzX0RTQ0xfTUVNX1BXUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NMM19PQlVGX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNGIKKyNkZWZpbmUgbW1EU0NMM19PQlVGX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDTDNfT0JVRl9NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTRjCisjZGVmaW5lIG1tRFNDTDNfT0JVRl9NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDNfZGlzcGRlY19jbV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTEwNAorI2RlZmluZSBtbUNNM19DTV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE1YgorI2RlZmluZSBtbUNNM19DTV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNWMKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0lDU0NfQzExX0MxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTVkCisjZGVmaW5lIG1tQ00zX0NNX0lDU0NfQzExX0MxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9JQ1NDX0MxM19DMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE1ZQorI2RlZmluZSBtbUNNM19DTV9JQ1NDX0MxM19DMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19DMjFfQzIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNWYKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19DMjFfQzIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0lDU0NfQzIzX0MyNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTYwCisjZGVmaW5lIG1tQ00zX0NNX0lDU0NfQzIzX0MyNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9JQ1NDX0MzMV9DMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE2MQorI2RlZmluZSBtbUNNM19DTV9JQ1NDX0MzMV9DMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19DMzNfQzM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNjIKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19DMzNfQzM0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0lDU0NfQl9DMTFfQzEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTYzCisjZGVmaW5lIG1tQ00zX0NNX0lDU0NfQl9DMTFfQzEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9JQ1NDX0JfQzEzX0MxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE2NAorI2RlZmluZSBtbUNNM19DTV9JQ1NDX0JfQzEzX0MxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19CX0MyMV9DMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNjUKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19CX0MyMV9DMjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0lDU0NfQl9DMjNfQzI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTY2CisjZGVmaW5lIG1tQ00zX0NNX0lDU0NfQl9DMjNfQzI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9JQ1NDX0JfQzMxX0MzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE2NworI2RlZmluZSBtbUNNM19DTV9JQ1NDX0JfQzMxX0MzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19CX0MzM19DMzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNjgKKyNkZWZpbmUgbW1DTTNfQ01fSUNTQ19CX0MzM19DMzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTY5CisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9HQU1VVF9SRU1BUF9DMTFfQzEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE2YQorI2RlZmluZSBtbUNNM19DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fR0FNVVRfUkVNQVBfQzEzX0MxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNmIKKyNkZWZpbmUgbW1DTTNfQ01fR0FNVVRfUkVNQVBfQzEzX0MxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0MyMV9DMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTZjCisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0MyMV9DMjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9HQU1VVF9SRU1BUF9DMjNfQzI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE2ZAorI2RlZmluZSBtbUNNM19DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fR0FNVVRfUkVNQVBfQzMxX0MzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNmUKKyNkZWZpbmUgbW1DTTNfQ01fR0FNVVRfUkVNQVBfQzMxX0MzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0MzM19DMzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTZmCisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0MzM19DMzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE3MAorI2RlZmluZSBtbUNNM19DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNzEKKyNkZWZpbmUgbW1DTTNfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzIxX0MyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTcyCisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzIxX0MyMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE3MworI2RlZmluZSBtbUNNM19DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNzQKKyNkZWZpbmUgbW1DTTNfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzMzX0MzNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTc1CisjZGVmaW5lIG1tQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzMzX0MzNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CSUFTX0NSX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE3NgorI2RlZmluZSBtbUNNM19DTV9CSUFTX0NSX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQklBU19ZX0dfQ0JfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNzcKKyNkZWZpbmUgbW1DTTNfQ01fQklBU19ZX0dfQ0JfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTc4CisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX0xVVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE3OQorI2RlZmluZSBtbUNNM19DTV9ER0FNX0xVVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9MVVRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExN2EKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9MVVRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fTFVUX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTdiCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fTFVUX1dSSVRFX0VOX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE3YworI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExN2QKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTdlCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE3ZgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExODAKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTgxCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE4MgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExODMKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTg0CisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE4NQorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExODYKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTg3CisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE4OAorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExODkKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMThhCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE4YgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExOGMKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMThkCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE4ZQorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExOGYKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9TVEFSVF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTkwCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9TVEFSVF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE5MQorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExOTIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTkzCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE5NAorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExOTUKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTk2CisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE5NworI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExOTgKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTk5CisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE5YQorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExOWIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTljCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE5ZAorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX1JFR0lPTl80XzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExOWUKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTlmCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFhMAorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8xMF8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYTEKKyNkZWZpbmUgbW1DTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWEyCisjZGVmaW5lIG1tQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFhMworI2RlZmluZSBtbUNNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYTQKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fTFVUX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWE1CisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fTFVUX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX0xVVF9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFhNgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX0xVVF9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9MVVRfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYTcKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9MVVRfV1JJVEVfRU5fTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWE4CisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFhOQorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1NUQVJUX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYWEKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1NUQVJUX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWFiCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFhYworI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYWQKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWFlCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFhZgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYjAKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWIxCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFiMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYjMKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWI0CisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFiNQorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYjYKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWI3CisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFiOAorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYjkKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWJhCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE0XzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFiYgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYmMKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWJkCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIwXzIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFiZQorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIwXzIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYmYKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWMwCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI2XzI3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFjMQorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI2XzI3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYzIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWMzCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMyXzMzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFjNAorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMyXzMzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYzUKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWM2CisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFjNworI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExYzgKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWM5CisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFjYQorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExY2IKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWNjCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFjZAorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExY2UKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWNmCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFkMAorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZDEKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWQyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFkMworI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZDQKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWQ1CisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFkNgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZDcKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWQ4CisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFkOQorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZGEKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWRiCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFkYworI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZGQKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWRlCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFkZgorI2RlZmluZSBtbUNNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZTAKKyNkZWZpbmUgbW1DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWUxCisjZGVmaW5lIG1tQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9IRFJfTVVMVF9DT0VGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFlMgorI2RlZmluZSBtbUNNM19DTV9IRFJfTVVMVF9DT0VGX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZTMKKyNkZWZpbmUgbW1DTTNfQ01fTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWU0CisjZGVmaW5lIG1tQ00zX0NNX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9ERUFMUEhBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFlNgorI2RlZmluZSBtbUNNM19DTV9ERUFMUEhBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fQ09FRl9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZTcKKyNkZWZpbmUgbW1DTTNfQ01fQ09FRl9GT1JNQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWU4CisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfT0ZGU0VUX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFlOQorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfT0ZGU0VUX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX09GRlNFVF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZWEKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX09GRlNFVF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9PRkZTRVRfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWViCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9PRkZTRVRfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfU0NBTEVfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFlYworI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfU0NBTEVfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1NDQUxFX0dfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZWQKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1NDQUxFX0dfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWVlCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFlZgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZjAKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWYxCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFmMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZjMKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWY0CisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9FTkRfQ05UTF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFmNQorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9FTkRfQ05UTF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZjYKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWY3CisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFmOAorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZjkKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWZhCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFmYgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZmMKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMWZkCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTFmZQorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExZmYKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjAwCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIwMQorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjAzCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIwNAorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMDUKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjA2CisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIwNworI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMDgKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjA5CisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIwYQorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMGIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjBjCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9FTkRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIwZAorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9FTkRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMGUKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjBmCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIxMAorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMTEKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjEyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIxMworI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMTQKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjE1CisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIxNgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMTcKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjE4CisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIxOQorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMWEKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjFiCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIxYworI2RlZmluZSBtbUNNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMWQKKyNkZWZpbmUgbW1DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjFlCisjZGVmaW5lIG1tQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9NRU1fUFdSX0NUUkwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIxZgorI2RlZmluZSBtbUNNM19DTV9NRU1fUFdSX0NUUkwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fTUVNX1BXUl9TVEFUVVMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMjAKKyNkZWZpbmUgbW1DTTNfQ01fTUVNX1BXUl9TVEFUVVMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNXzNETFVUX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjIxCisjZGVmaW5lIG1tQ00zX0NNXzNETFVUX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV8zRExVVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIyMgorI2RlZmluZSBtbUNNM19DTV8zRExVVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fM0RMVVRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMjMKKyNkZWZpbmUgbW1DTTNfQ01fM0RMVVRfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNXzNETFVUX0RBVEFfMzBCSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjI0CisjZGVmaW5lIG1tQ00zX0NNXzNETFVUX0RBVEFfMzBCSVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV8zRExVVF9SRUFEX1dSSVRFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIyNQorI2RlZmluZSBtbUNNM19DTV8zRExVVF9SRUFEX1dSSVRFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMjYKKyNkZWZpbmUgbW1DTTNfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNXzNETFVUX09VVF9PRkZTRVRfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjI3CisjZGVmaW5lIG1tQ00zX0NNXzNETFVUX09VVF9PRkZTRVRfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV8zRExVVF9PVVRfT0ZGU0VUX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIyOAorI2RlZmluZSBtbUNNM19DTV8zRExVVF9PVVRfT0ZGU0VUX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DTTNfQ01fM0RMVVRfT1VUX09GRlNFVF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyMjkKKyNkZWZpbmUgbW1DTTNfQ01fM0RMVVRfT1VUX09GRlNFVF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ00zX0NNX1RFU1RfREVCVUdfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjJhCisjZGVmaW5lIG1tQ00zX0NNX1RFU1RfREVCVUdfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNNM19DTV9URVNUX0RFQlVHX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIyYgorI2RlZmluZSBtbUNNM19DTV9URVNUX0RFQlVHX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAzX2Rpc3BkZWNfZHBwX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg0OTk0CisjZGVmaW5lIG1tRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjY1CisjZGVmaW5lIG1tRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI2NgorI2RlZmluZSBtbURDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyNjcKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjY4CisjZGVmaW5lIG1tRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xNF9QRVJGTU9OX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI2OQorI2RlZmluZSBtbURDX1BFUkZNT04xNF9QRVJGTU9OX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyNmEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE0X1BFUkZNT05fQ1ZBTFVFX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjZiCisjZGVmaW5lIG1tRENfUEVSRk1PTjE0X1BFUkZNT05fQ1ZBTFVFX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xNF9QRVJGTU9OX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI2YworI2RlZmluZSBtbURDX1BFUkZNT04xNF9QRVJGTU9OX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTRfUEVSRk1PTl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyNmQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTRfUEVSRk1PTl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2MwX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tTVBDQzBfTVBDQ19UT1BfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjcxCisjZGVmaW5lIG1tTVBDQzBfTVBDQ19UT1BfU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MwX01QQ0NfQk9UX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI3MgorI2RlZmluZSBtbU1QQ0MwX01QQ0NfQk9UX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMF9NUENDX09QUF9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyNzMKKyNkZWZpbmUgbW1NUENDMF9NUENDX09QUF9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzBfTVBDQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjc0CisjZGVmaW5lIG1tTVBDQzBfTVBDQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MwX01QQ0NfU01fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI3NQorI2RlZmluZSBtbU1QQ0MwX01QQ0NfU01fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMF9NUENDX1VQREFURV9MT0NLX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyNzYKKyNkZWZpbmUgbW1NUENDMF9NUENDX1VQREFURV9MT0NLX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzBfTVBDQ19UT1BfR0FJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjc3CisjZGVmaW5lIG1tTVBDQzBfTVBDQ19UT1BfR0FJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MwX01QQ0NfQk9UX0dBSU5fSU5TSURFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI3OAorI2RlZmluZSBtbU1QQ0MwX01QQ0NfQk9UX0dBSU5fSU5TSURFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMF9NUENDX0JPVF9HQUlOX09VVFNJREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyNzkKKyNkZWZpbmUgbW1NUENDMF9NUENDX0JPVF9HQUlOX09VVFNJREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzBfTVBDQ19CR19SX0NSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjdhCisjZGVmaW5lIG1tTVBDQzBfTVBDQ19CR19SX0NSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MwX01QQ0NfQkdfR19ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI3YgorI2RlZmluZSBtbU1QQ0MwX01QQ0NfQkdfR19ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMF9NUENDX0JHX0JfQ0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyN2MKKyNkZWZpbmUgbW1NUENDMF9NUENDX0JHX0JfQ0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzBfTVBDQ19NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjdkCisjZGVmaW5lIG1tTVBDQzBfTVBDQ19NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MwX01QQ0NfU1RBTExfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI3ZQorI2RlZmluZSBtbU1QQ0MwX01QQ0NfU1RBTExfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMF9NUENDX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyN2YKKyNkZWZpbmUgbW1NUENDMF9NUENDX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2MxX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2YworI2RlZmluZSBtbU1QQ0MxX01QQ0NfVE9QX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI4YworI2RlZmluZSBtbU1QQ0MxX01QQ0NfVE9QX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMV9NUENDX0JPVF9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyOGQKKyNkZWZpbmUgbW1NUENDMV9NUENDX0JPVF9TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzFfTVBDQ19PUFBfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjhlCisjZGVmaW5lIG1tTVBDQzFfTVBDQ19PUFBfSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MxX01QQ0NfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI4ZgorI2RlZmluZSBtbU1QQ0MxX01QQ0NfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMV9NUENDX1NNX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyOTAKKyNkZWZpbmUgbW1NUENDMV9NUENDX1NNX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzFfTVBDQ19VUERBVEVfTE9DS19TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjkxCisjZGVmaW5lIG1tTVBDQzFfTVBDQ19VUERBVEVfTE9DS19TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MxX01QQ0NfVE9QX0dBSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI5MgorI2RlZmluZSBtbU1QQ0MxX01QQ0NfVE9QX0dBSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMV9NUENDX0JPVF9HQUlOX0lOU0lERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyOTMKKyNkZWZpbmUgbW1NUENDMV9NUENDX0JPVF9HQUlOX0lOU0lERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzFfTVBDQ19CT1RfR0FJTl9PVVRTSURFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjk0CisjZGVmaW5lIG1tTVBDQzFfTVBDQ19CT1RfR0FJTl9PVVRTSURFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MxX01QQ0NfQkdfUl9DUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI5NQorI2RlZmluZSBtbU1QQ0MxX01QQ0NfQkdfUl9DUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMV9NUENDX0JHX0dfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyOTYKKyNkZWZpbmUgbW1NUENDMV9NUENDX0JHX0dfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzFfTVBDQ19CR19CX0NCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjk3CisjZGVmaW5lIG1tTVBDQzFfTVBDQ19CR19CX0NCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MxX01QQ0NfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTI5OAorI2RlZmluZSBtbU1QQ0MxX01QQ0NfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMV9NUENDX1NUQUxMX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyOTkKKyNkZWZpbmUgbW1NUENDMV9NUENDX1NUQUxMX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzFfTVBDQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjlhCisjZGVmaW5lIG1tTVBDQzFfTVBDQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21wY19tcGNjMl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4ZDgKKyNkZWZpbmUgbW1NUENDMl9NUENDX1RPUF9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyYTcKKyNkZWZpbmUgbW1NUENDMl9NUENDX1RPUF9TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzJfTVBDQ19CT1RfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmE4CisjZGVmaW5lIG1tTVBDQzJfTVBDQ19CT1RfU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MyX01QQ0NfT1BQX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJhOQorI2RlZmluZSBtbU1QQ0MyX01QQ0NfT1BQX0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMl9NUENDX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyYWEKKyNkZWZpbmUgbW1NUENDMl9NUENDX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzJfTVBDQ19TTV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmFiCisjZGVmaW5lIG1tTVBDQzJfTVBDQ19TTV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MyX01QQ0NfVVBEQVRFX0xPQ0tfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJhYworI2RlZmluZSBtbU1QQ0MyX01QQ0NfVVBEQVRFX0xPQ0tfU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMl9NUENDX1RPUF9HQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyYWQKKyNkZWZpbmUgbW1NUENDMl9NUENDX1RPUF9HQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzJfTVBDQ19CT1RfR0FJTl9JTlNJREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmFlCisjZGVmaW5lIG1tTVBDQzJfTVBDQ19CT1RfR0FJTl9JTlNJREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MyX01QQ0NfQk9UX0dBSU5fT1VUU0lERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJhZgorI2RlZmluZSBtbU1QQ0MyX01QQ0NfQk9UX0dBSU5fT1VUU0lERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMl9NUENDX0JHX1JfQ1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyYjAKKyNkZWZpbmUgbW1NUENDMl9NUENDX0JHX1JfQ1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzJfTVBDQ19CR19HX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmIxCisjZGVmaW5lIG1tTVBDQzJfTVBDQ19CR19HX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MyX01QQ0NfQkdfQl9DQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJiMgorI2RlZmluZSBtbU1QQ0MyX01QQ0NfQkdfQl9DQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDMl9NUENDX01FTV9QV1JfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyYjMKKyNkZWZpbmUgbW1NUENDMl9NUENDX01FTV9QV1JfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzJfTVBDQ19TVEFMTF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmI0CisjZGVmaW5lIG1tTVBDQzJfTVBDQ19TVEFMTF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MyX01QQ0NfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJiNQorI2RlZmluZSBtbU1QQ0MyX01QQ0NfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tcGNfbXBjYzNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDE0NAorI2RlZmluZSBtbU1QQ0MzX01QQ0NfVE9QX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJjMgorI2RlZmluZSBtbU1QQ0MzX01QQ0NfVE9QX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDM19NUENDX0JPVF9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyYzMKKyNkZWZpbmUgbW1NUENDM19NUENDX0JPVF9TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzNfTVBDQ19PUFBfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmM0CisjZGVmaW5lIG1tTVBDQzNfTVBDQ19PUFBfSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MzX01QQ0NfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJjNQorI2RlZmluZSBtbU1QQ0MzX01QQ0NfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDM19NUENDX1NNX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyYzYKKyNkZWZpbmUgbW1NUENDM19NUENDX1NNX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzNfTVBDQ19VUERBVEVfTE9DS19TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmM3CisjZGVmaW5lIG1tTVBDQzNfTVBDQ19VUERBVEVfTE9DS19TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MzX01QQ0NfVE9QX0dBSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJjOAorI2RlZmluZSBtbU1QQ0MzX01QQ0NfVE9QX0dBSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDM19NUENDX0JPVF9HQUlOX0lOU0lERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyYzkKKyNkZWZpbmUgbW1NUENDM19NUENDX0JPVF9HQUlOX0lOU0lERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzNfTVBDQ19CT1RfR0FJTl9PVVRTSURFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmNhCisjZGVmaW5lIG1tTVBDQzNfTVBDQ19CT1RfR0FJTl9PVVRTSURFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MzX01QQ0NfQkdfUl9DUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJjYgorI2RlZmluZSBtbU1QQ0MzX01QQ0NfQkdfUl9DUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDM19NUENDX0JHX0dfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyY2MKKyNkZWZpbmUgbW1NUENDM19NUENDX0JHX0dfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzNfTVBDQ19CR19CX0NCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmNkCisjZGVmaW5lIG1tTVBDQzNfTVBDQ19CR19CX0NCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0MzX01QQ0NfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJjZQorI2RlZmluZSBtbU1QQ0MzX01QQ0NfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDM19NUENDX1NUQUxMX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyY2YKKyNkZWZpbmUgbW1NUENDM19NUENDX1NUQUxMX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzNfTVBDQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmQwCisjZGVmaW5lIG1tTVBDQzNfTVBDQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21wY19tcGNjNF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MWIwCisjZGVmaW5lIG1tTVBDQzRfTVBDQ19UT1BfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmRkCisjZGVmaW5lIG1tTVBDQzRfTVBDQ19UT1BfU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M0X01QQ0NfQk9UX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJkZQorI2RlZmluZSBtbU1QQ0M0X01QQ0NfQk9UX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNF9NUENDX09QUF9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyZGYKKyNkZWZpbmUgbW1NUENDNF9NUENDX09QUF9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzRfTVBDQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmUwCisjZGVmaW5lIG1tTVBDQzRfTVBDQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M0X01QQ0NfU01fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJlMQorI2RlZmluZSBtbU1QQ0M0X01QQ0NfU01fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNF9NUENDX1VQREFURV9MT0NLX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyZTIKKyNkZWZpbmUgbW1NUENDNF9NUENDX1VQREFURV9MT0NLX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzRfTVBDQ19UT1BfR0FJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmUzCisjZGVmaW5lIG1tTVBDQzRfTVBDQ19UT1BfR0FJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M0X01QQ0NfQk9UX0dBSU5fSU5TSURFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJlNAorI2RlZmluZSBtbU1QQ0M0X01QQ0NfQk9UX0dBSU5fSU5TSURFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNF9NUENDX0JPVF9HQUlOX09VVFNJREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyZTUKKyNkZWZpbmUgbW1NUENDNF9NUENDX0JPVF9HQUlOX09VVFNJREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzRfTVBDQ19CR19SX0NSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmU2CisjZGVmaW5lIG1tTVBDQzRfTVBDQ19CR19SX0NSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M0X01QQ0NfQkdfR19ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJlNworI2RlZmluZSBtbU1QQ0M0X01QQ0NfQkdfR19ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNF9NUENDX0JHX0JfQ0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyZTgKKyNkZWZpbmUgbW1NUENDNF9NUENDX0JHX0JfQ0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzRfTVBDQ19NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmU5CisjZGVmaW5lIG1tTVBDQzRfTVBDQ19NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M0X01QQ0NfU1RBTExfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJlYQorI2RlZmluZSBtbU1QQ0M0X01QQ0NfU1RBTExfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNF9NUENDX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyZWIKKyNkZWZpbmUgbW1NUENDNF9NUENDX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2M1X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgyMWMKKyNkZWZpbmUgbW1NUENDNV9NUENDX1RPUF9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyZjgKKyNkZWZpbmUgbW1NUENDNV9NUENDX1RPUF9TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzVfTVBDQ19CT1RfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmY5CisjZGVmaW5lIG1tTVBDQzVfTVBDQ19CT1RfU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M1X01QQ0NfT1BQX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJmYQorI2RlZmluZSBtbU1QQ0M1X01QQ0NfT1BQX0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNV9NUENDX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyZmIKKyNkZWZpbmUgbW1NUENDNV9NUENDX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzVfTVBDQ19TTV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmZjCisjZGVmaW5lIG1tTVBDQzVfTVBDQ19TTV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M1X01QQ0NfVVBEQVRFX0xPQ0tfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTJmZAorI2RlZmluZSBtbU1QQ0M1X01QQ0NfVVBEQVRFX0xPQ0tfU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNV9NUENDX1RPUF9HQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyZmUKKyNkZWZpbmUgbW1NUENDNV9NUENDX1RPUF9HQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzVfTVBDQ19CT1RfR0FJTl9JTlNJREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMmZmCisjZGVmaW5lIG1tTVBDQzVfTVBDQ19CT1RfR0FJTl9JTlNJREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M1X01QQ0NfQk9UX0dBSU5fT1VUU0lERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMwMAorI2RlZmluZSBtbU1QQ0M1X01QQ0NfQk9UX0dBSU5fT1VUU0lERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNV9NUENDX0JHX1JfQ1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMDEKKyNkZWZpbmUgbW1NUENDNV9NUENDX0JHX1JfQ1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzVfTVBDQ19CR19HX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzAyCisjZGVmaW5lIG1tTVBDQzVfTVBDQ19CR19HX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M1X01QQ0NfQkdfQl9DQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMwMworI2RlZmluZSBtbU1QQ0M1X01QQ0NfQkdfQl9DQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNV9NUENDX01FTV9QV1JfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMDQKKyNkZWZpbmUgbW1NUENDNV9NUENDX01FTV9QV1JfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzVfTVBDQ19TVEFMTF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzA1CisjZGVmaW5lIG1tTVBDQzVfTVBDQ19TVEFMTF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M1X01QQ0NfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMwNgorI2RlZmluZSBtbU1QQ0M1X01QQ0NfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tcGNfbXBjYzZfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDI4OAorI2RlZmluZSBtbU1QQ0M2X01QQ0NfVE9QX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMxMworI2RlZmluZSBtbU1QQ0M2X01QQ0NfVE9QX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNl9NUENDX0JPVF9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMTQKKyNkZWZpbmUgbW1NUENDNl9NUENDX0JPVF9TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzZfTVBDQ19PUFBfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzE1CisjZGVmaW5lIG1tTVBDQzZfTVBDQ19PUFBfSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M2X01QQ0NfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMxNgorI2RlZmluZSBtbU1QQ0M2X01QQ0NfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNl9NUENDX1NNX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMTcKKyNkZWZpbmUgbW1NUENDNl9NUENDX1NNX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzZfTVBDQ19VUERBVEVfTE9DS19TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzE4CisjZGVmaW5lIG1tTVBDQzZfTVBDQ19VUERBVEVfTE9DS19TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M2X01QQ0NfVE9QX0dBSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMxOQorI2RlZmluZSBtbU1QQ0M2X01QQ0NfVE9QX0dBSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNl9NUENDX0JPVF9HQUlOX0lOU0lERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMWEKKyNkZWZpbmUgbW1NUENDNl9NUENDX0JPVF9HQUlOX0lOU0lERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzZfTVBDQ19CT1RfR0FJTl9PVVRTSURFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzFiCisjZGVmaW5lIG1tTVBDQzZfTVBDQ19CT1RfR0FJTl9PVVRTSURFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M2X01QQ0NfQkdfUl9DUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMxYworI2RlZmluZSBtbU1QQ0M2X01QQ0NfQkdfUl9DUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNl9NUENDX0JHX0dfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMWQKKyNkZWZpbmUgbW1NUENDNl9NUENDX0JHX0dfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzZfTVBDQ19CR19CX0NCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzFlCisjZGVmaW5lIG1tTVBDQzZfTVBDQ19CR19CX0NCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M2X01QQ0NfTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMxZgorI2RlZmluZSBtbU1QQ0M2X01QQ0NfTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDNl9NUENDX1NUQUxMX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMjAKKyNkZWZpbmUgbW1NUENDNl9NUENDX1NUQUxMX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzZfTVBDQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzIxCisjZGVmaW5lIG1tTVBDQzZfTVBDQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21wY19tcGNjN19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MmY0CisjZGVmaW5lIG1tTVBDQzdfTVBDQ19UT1BfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzJlCisjZGVmaW5lIG1tTVBDQzdfTVBDQ19UT1BfU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M3X01QQ0NfQk9UX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMyZgorI2RlZmluZSBtbU1QQ0M3X01QQ0NfQk9UX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDN19NUENDX09QUF9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMzAKKyNkZWZpbmUgbW1NUENDN19NUENDX09QUF9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzdfTVBDQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzMxCisjZGVmaW5lIG1tTVBDQzdfTVBDQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M3X01QQ0NfU01fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMzMgorI2RlZmluZSBtbU1QQ0M3X01QQ0NfU01fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDN19NUENDX1VQREFURV9MT0NLX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMzMKKyNkZWZpbmUgbW1NUENDN19NUENDX1VQREFURV9MT0NLX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzdfTVBDQ19UT1BfR0FJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzM0CisjZGVmaW5lIG1tTVBDQzdfTVBDQ19UT1BfR0FJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M3X01QQ0NfQk9UX0dBSU5fSU5TSURFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMzNQorI2RlZmluZSBtbU1QQ0M3X01QQ0NfQk9UX0dBSU5fSU5TSURFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDN19NUENDX0JPVF9HQUlOX09VVFNJREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMzYKKyNkZWZpbmUgbW1NUENDN19NUENDX0JPVF9HQUlOX09VVFNJREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzdfTVBDQ19CR19SX0NSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzM3CisjZGVmaW5lIG1tTVBDQzdfTVBDQ19CR19SX0NSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M3X01QQ0NfQkdfR19ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMzOAorI2RlZmluZSBtbU1QQ0M3X01QQ0NfQkdfR19ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDN19NUENDX0JHX0JfQ0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzMzkKKyNkZWZpbmUgbW1NUENDN19NUENDX0JHX0JfQ0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQzdfTVBDQ19NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzNhCisjZGVmaW5lIG1tTVBDQzdfTVBDQ19NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0M3X01QQ0NfU1RBTExfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMzYgorI2RlZmluZSBtbU1QQ0M3X01QQ0NfU1RBTExfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDN19NUENDX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzM2MKKyNkZWZpbmUgbW1NUENDN19NUENDX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY19jZmdfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1NUENfQ0xPQ0tfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNDkKKyNkZWZpbmUgbW1NUENfQ0xPQ0tfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX1NPRlRfUkVTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzRhCisjZGVmaW5lIG1tTVBDX1NPRlRfUkVTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19DUkNfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM0YgorI2RlZmluZSBtbU1QQ19DUkNfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfQ1JDX1NFTF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNGMKKyNkZWZpbmUgbW1NUENfQ1JDX1NFTF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX0NSQ19SRVNVTFRfQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzRkCisjZGVmaW5lIG1tTVBDX0NSQ19SRVNVTFRfQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19DUkNfUkVTVUxUX0dCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM0ZQorI2RlZmluZSBtbU1QQ19DUkNfUkVTVUxUX0dCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfQ1JDX1JFU1VMVF9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNGYKKyNkZWZpbmUgbW1NUENfQ1JDX1JFU1VMVF9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX1BFUkZNT05fRVZFTlRfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzUyCisjZGVmaW5lIG1tTVBDX1BFUkZNT05fRVZFTlRfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19CWVBBU1NfQkdfQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM1MworI2RlZmluZSBtbU1QQ19CWVBBU1NfQkdfQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfQllQQVNTX0JHX0dCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNTQKKyNkZWZpbmUgbW1NUENfQllQQVNTX0JHX0dCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX1NUQUxMX0dSQUNFX1dJTkRPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzU1CisjZGVmaW5lIG1tTVBDX1NUQUxMX0dSQUNFX1dJTkRPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19IT1NUX1JFQURfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM1NgorI2RlZmluZSBtbU1QQ19IT1NUX1JFQURfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNTcKKyNkZWZpbmUgbW1NUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzU5CisjZGVmaW5lIG1tTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19VUERBVEVfQUNLX1JFRzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM1YgorI2RlZmluZSBtbU1QQ19VUERBVEVfQUNLX1JFRzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNWQKKyNkZWZpbmUgbW1BRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzVlCisjZGVmaW5lIG1tQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFEUl9WVVBEQVRFX0xPQ0tfU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM1ZgorI2RlZmluZSBtbUFEUl9WVVBEQVRFX0xPQ0tfU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DRkdfVlVQREFURV9MT0NLX1NFVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNjAKKyNkZWZpbmUgbW1DRkdfVlVQREFURV9MT0NLX1NFVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSX1ZVUERBVEVfTE9DS19TRVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzYxCisjZGVmaW5lIG1tQ1VSX1ZVUERBVEVfTE9DS19TRVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFEUl9DRkdfQ1VSX1ZVUERBVEVfTE9DS19TRVQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM2MgorI2RlZmluZSBtbUFEUl9DRkdfQ1VSX1ZVUERBVEVfTE9DS19TRVQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BRFJfQ0ZHX1ZVUERBVEVfTE9DS19TRVQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNjMKKyNkZWZpbmUgbW1BRFJfQ0ZHX1ZVUERBVEVfTE9DS19TRVQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQURSX1ZVUERBVEVfTE9DS19TRVQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzY0CisjZGVmaW5lIG1tQURSX1ZVUERBVEVfTE9DS19TRVQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNGR19WVVBEQVRFX0xPQ0tfU0VUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM2NQorI2RlZmluZSBtbUNGR19WVVBEQVRFX0xPQ0tfU0VUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DVVJfVlVQREFURV9MT0NLX1NFVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNjYKKyNkZWZpbmUgbW1DVVJfVlVQREFURV9MT0NLX1NFVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQURSX0NGR19DVVJfVlVQREFURV9MT0NLX1NFVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzY3CisjZGVmaW5lIG1tQURSX0NGR19DVVJfVlVQREFURV9MT0NLX1NFVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFEUl9DRkdfVlVQREFURV9MT0NLX1NFVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM2OAorI2RlZmluZSBtbUFEUl9DRkdfVlVQREFURV9MT0NLX1NFVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BRFJfVlVQREFURV9MT0NLX1NFVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNjkKKyNkZWZpbmUgbW1BRFJfVlVQREFURV9MT0NLX1NFVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ0ZHX1ZVUERBVEVfTE9DS19TRVQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzZhCisjZGVmaW5lIG1tQ0ZHX1ZVUERBVEVfTE9DS19TRVQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUNVUl9WVVBEQVRFX0xPQ0tfU0VUMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM2YgorI2RlZmluZSBtbUNVUl9WVVBEQVRFX0xPQ0tfU0VUMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1BRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNmMKKyNkZWZpbmUgbW1BRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzZkCisjZGVmaW5lIG1tQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFEUl9WVVBEQVRFX0xPQ0tfU0VUMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM2ZQorI2RlZmluZSBtbUFEUl9WVVBEQVRFX0xPQ0tfU0VUM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1DRkdfVlVQREFURV9MT0NLX1NFVDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzNmYKKyNkZWZpbmUgbW1DRkdfVlVQREFURV9MT0NLX1NFVDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQ1VSX1ZVUERBVEVfTE9DS19TRVQzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzcwCisjZGVmaW5lIG1tQ1VSX1ZVUERBVEVfTE9DS19TRVQzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQwX01VWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM4NQorI2RlZmluZSBtbU1QQ19PVVQwX01VWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMF9ERU5PUk1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzODYKKyNkZWZpbmUgbW1NUENfT1VUMF9ERU5PUk1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDBfREVOT1JNX0NMQU1QX0dfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzg3CisjZGVmaW5lIG1tTVBDX09VVDBfREVOT1JNX0NMQU1QX0dfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQwX0RFTk9STV9DTEFNUF9CX0NCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM4OAorI2RlZmluZSBtbU1QQ19PVVQwX0RFTk9STV9DTEFNUF9CX0NCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMV9NVVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzODkKKyNkZWZpbmUgbW1NUENfT1VUMV9NVVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDFfREVOT1JNX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzhhCisjZGVmaW5lIG1tTVBDX09VVDFfREVOT1JNX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQxX0RFTk9STV9DTEFNUF9HX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM4YgorI2RlZmluZSBtbU1QQ19PVVQxX0RFTk9STV9DTEFNUF9HX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMV9ERU5PUk1fQ0xBTVBfQl9DQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzOGMKKyNkZWZpbmUgbW1NUENfT1VUMV9ERU5PUk1fQ0xBTVBfQl9DQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDJfTVVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzhkCisjZGVmaW5lIG1tTVBDX09VVDJfTVVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQyX0RFTk9STV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM4ZQorI2RlZmluZSBtbU1QQ19PVVQyX0RFTk9STV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMl9ERU5PUk1fQ0xBTVBfR19ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzOGYKKyNkZWZpbmUgbW1NUENfT1VUMl9ERU5PUk1fQ0xBTVBfR19ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDJfREVOT1JNX0NMQU1QX0JfQ0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzkwCisjZGVmaW5lIG1tTVBDX09VVDJfREVOT1JNX0NMQU1QX0JfQ0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQzX01VWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM5MQorI2RlZmluZSBtbU1QQ19PVVQzX01VWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUM19ERU5PUk1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzOTIKKyNkZWZpbmUgbW1NUENfT1VUM19ERU5PUk1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDNfREVOT1JNX0NMQU1QX0dfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzkzCisjZGVmaW5lIG1tTVBDX09VVDNfREVOT1JNX0NMQU1QX0dfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQzX0RFTk9STV9DTEFNUF9CX0NCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTM5NAorI2RlZmluZSBtbU1QQ19PVVQzX0RFTk9STV9DTEFNUF9CX0NCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tcGNfbXBjY19vZ2FtMF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNhZQorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzYWYKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2IwCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNiMQorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzYjIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2IzCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNiNAorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzYjUKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2I2CisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNiNworI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzYjgKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2I5CisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNiYQorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzYmIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2JjCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNiZAorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzYmUKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2JmCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNjMAorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzYzEKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2MyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNjMworI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzYzQKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2M1CisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNjNgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzYzcKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2M4CisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNjOQorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzY2EKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2NiCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNjYworI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzY2QKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2NlCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNjZgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZDAKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2QxCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNkMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZDMKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2Q0CisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNkNQorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZDYKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2Q3CisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNkOAorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZDkKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2RhCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNkYgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZGMKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2RkCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNkZQorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZGYKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2UwCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNlMQorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZTIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2UzCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNlNAorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZTUKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2U2CisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNlNworI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZTgKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2U5CisjZGVmaW5lIG1tTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNlYQorI2RlZmluZSBtbU1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZWIKKyNkZWZpbmUgbW1NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTFfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDEwNAorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNlZgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZjAKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2YxCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNmMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZjMKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2Y0CisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNmNQorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZjYKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2Y3CisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNmOAorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZjkKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2ZhCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNmYgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZmMKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxM2ZkCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTNmZQorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzZmYKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDAwCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQwMQorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDAzCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQwNAorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MDUKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDA2CisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQwNworI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MDgKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDA5CisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQwYQorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MGIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDBjCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQwZAorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MGUKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDBmCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQxMAorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MTEKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDEyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQxMworI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MTQKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDE1CisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQxNgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MTcKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDE4CisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQxOQorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MWEKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDFiCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQxYworI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MWQKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDFlCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQxZgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MjAKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDIxCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQyMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MjMKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDI0CisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQyNQorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MjYKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDI3CisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQyOAorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MjkKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDJhCisjZGVmaW5lIG1tTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQyYgorI2RlZmluZSBtbU1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MmMKKyNkZWZpbmUgbW1NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTJfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDIwOAorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQzMAorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MzEKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDMyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQzMworI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MzQKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDM1CisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQzNgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0MzcKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDM4CisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQzOQorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0M2EKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDNiCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQzYworI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0M2QKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDNlCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQzZgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NDAKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDQxCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ0MgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NDMKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDQ0CisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ0NQorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NDYKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDQ3CisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ0OAorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NDkKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDRhCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ0YgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NGMKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDRkCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ0ZQorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NGYKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDUwCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ1MQorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NTIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDUzCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ1NAorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NTUKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDU2CisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ1NworI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NTgKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDU5CisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ1YQorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NWIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDVjCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ1ZAorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NWUKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDVmCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ2MAorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NjEKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDYyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ2MworI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NjQKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDY1CisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ2NgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NjcKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDY4CisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ2OQorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NmEKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDZiCisjZGVmaW5lIG1tTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ2YworI2RlZmluZSBtbU1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NmQKKyNkZWZpbmUgbW1NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDMwYworI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ3MQorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NzIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDczCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ3NAorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NzUKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDc2CisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ3NworI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0NzgKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDc5CisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ3YQorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0N2IKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDdjCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ3ZAorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0N2UKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDdmCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ4MAorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ODEKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDgyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ4MworI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ODQKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDg1CisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ4NgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ODcKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDg4CisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ4OQorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0OGEKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDhiCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ4YworI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0OGQKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDhlCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ4ZgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0OTAKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDkxCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ5MgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0OTMKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDk0CisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ5NQorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0OTYKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDk3CisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ5OAorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0OTkKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDlhCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ5YgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0OWMKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDlkCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQ5ZQorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0OWYKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGEwCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRhMQorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YTIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGEzCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRhNAorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YTUKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGE2CisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRhNworI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YTgKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGE5CisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRhYQorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YWIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGFjCisjZGVmaW5lIG1tTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRhZAorI2RlZmluZSBtbU1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YWUKKyNkZWZpbmUgbW1NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTRfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDQxMAorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRiMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YjMKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGI0CisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRiNQorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YjYKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGI3CisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRiOAorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YjkKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGJhCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRiYgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YmMKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGJkCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRiZQorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YmYKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGMwCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRjMQorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YzIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGMzCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRjNAorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YzUKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGM2CisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRjNworI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0YzgKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGM5CisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRjYQorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0Y2IKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGNjCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRjZAorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0Y2UKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGNmCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRkMAorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZDEKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGQyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRkMworI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZDQKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGQ1CisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRkNgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZDcKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGQ4CisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRkOQorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZGEKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGRiCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRkYworI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZGQKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGRlCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRkZgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZTAKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGUxCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRlMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZTMKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGU0CisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRlNQorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZTYKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGU3CisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRlOAorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZTkKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGVhCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRlYgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZWMKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGVkCisjZGVmaW5lIG1tTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRlZQorI2RlZmluZSBtbU1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZWYKKyNkZWZpbmUgbW1NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTVfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDUxNAorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRmMworI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZjQKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGY1CisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRmNgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZjcKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGY4CisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRmOQorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZmEKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGZiCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRmYworI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0ZmQKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNGZlCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRmZgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MDAKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTAxCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUwMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MDMKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTA0CisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUwNQorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MDYKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTA3CisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUwOAorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MDkKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTBhCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUwYgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MGMKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTBkCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUwZQorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MGYKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTEwCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUxMQorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MTIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTEzCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUxNAorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MTUKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTE2CisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUxNworI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MTgKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTE5CisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUxYQorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MWIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTFjCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUxZAorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MWUKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTFmCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUyMAorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MjEKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTIyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUyMworI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MjQKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTI1CisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUyNgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MjcKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTI4CisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUyOQorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MmEKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTJiCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUyYworI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MmQKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTJlCisjZGVmaW5lIG1tTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUyZgorI2RlZmluZSBtbU1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MzAKKyNkZWZpbmUgbW1NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTZfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDYxOAorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUzNAorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MzUKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTM2CisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUzNworI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1MzgKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTM5CisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUzYQorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1M2IKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTNjCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUzZAorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1M2UKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTNmCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU0MAorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NDEKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTQyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU0MworI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NDQKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTQ1CisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU0NgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NDcKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTQ4CisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU0OQorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NGEKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTRiCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU0YworI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NGQKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTRlCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU0ZgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NTAKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTUxCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU1MgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NTMKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTU0CisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU1NQorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NTYKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTU3CisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU1OAorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NTkKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTVhCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU1YgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NWMKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTVkCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU1ZQorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NWYKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTYwCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU2MQorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NjIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTYzCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU2NAorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NjUKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTY2CisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU2NworI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NjgKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTY5CisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU2YQorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NmIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTZjCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU2ZAorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NmUKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTZmCisjZGVmaW5lIG1tTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU3MAorI2RlZmluZSBtbU1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NzEKKyNkZWZpbmUgbW1NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTdfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDcxYworI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU3NQorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9MVVRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NzYKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9MVVRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fTFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTc3CisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fTFVUX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU3OAorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1NzkKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1NUQVJUX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTdhCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU3YgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1N2MKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTdkCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU3ZQorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1N2YKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTgwCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU4MQorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ODIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTgzCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU4NAorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ODUKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTg2CisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU4NworI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ODgKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fOF85ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTg5CisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU4YQorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1OGIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNThjCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU4ZAorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1OGUKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNThmCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU5MAorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1OTEKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTkyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU5MworI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1OTQKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTk1CisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU5NgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfU1RBUlRfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1OTcKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTk4CisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU5OQorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1OWEKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTliCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU5YworI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1OWQKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNTllCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTU5ZgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YTAKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWExCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVhMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YTMKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fNF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWE0CisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVhNQorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YTYKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWE3CisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVhOAorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YTkKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWFhCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVhYgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YWMKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWFkCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVhZQorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YWYKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWIwCisjZGVmaW5lIG1tTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTViMQorI2RlZmluZSBtbU1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YjIKKyNkZWZpbmUgbW1NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY19vY3NjX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tTVBDX09VVF9DU0NfQ09FRl9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWI2CisjZGVmaW5lIG1tTVBDX09VVF9DU0NfQ09FRl9GT1JNQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTViNworI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMF9DU0NfQzExX0MxMl9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YjgKKyNkZWZpbmUgbW1NUENfT1VUMF9DU0NfQzExX0MxMl9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDBfQ1NDX0MxM19DMTRfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWI5CisjZGVmaW5lIG1tTVBDX09VVDBfQ1NDX0MxM19DMTRfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19DMjFfQzIyX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTViYQorI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19DMjFfQzIyX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMF9DU0NfQzIzX0MyNF9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YmIKKyNkZWZpbmUgbW1NUENfT1VUMF9DU0NfQzIzX0MyNF9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDBfQ1NDX0MzMV9DMzJfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWJjCisjZGVmaW5lIG1tTVBDX09VVDBfQ1NDX0MzMV9DMzJfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19DMzNfQzM0X0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTViZAorI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19DMzNfQzM0X0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMF9DU0NfQzExX0MxMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YmUKKyNkZWZpbmUgbW1NUENfT1VUMF9DU0NfQzExX0MxMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDBfQ1NDX0MxM19DMTRfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWJmCisjZGVmaW5lIG1tTVBDX09VVDBfQ1NDX0MxM19DMTRfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19DMjFfQzIyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVjMAorI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19DMjFfQzIyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMF9DU0NfQzIzX0MyNF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YzEKKyNkZWZpbmUgbW1NUENfT1VUMF9DU0NfQzIzX0MyNF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDBfQ1NDX0MzMV9DMzJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWMyCisjZGVmaW5lIG1tTVBDX09VVDBfQ1NDX0MzMV9DMzJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19DMzNfQzM0X0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVjMworI2RlZmluZSBtbU1QQ19PVVQwX0NTQ19DMzNfQzM0X0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YzQKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDFfQ1NDX0MxMV9DMTJfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWM1CisjZGVmaW5lIG1tTVBDX09VVDFfQ1NDX0MxMV9DMTJfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQxX0NTQ19DMTNfQzE0X0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVjNgorI2RlZmluZSBtbU1QQ19PVVQxX0NTQ19DMTNfQzE0X0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfQzIxX0MyMl9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1YzcKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfQzIxX0MyMl9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDFfQ1NDX0MyM19DMjRfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWM4CisjZGVmaW5lIG1tTVBDX09VVDFfQ1NDX0MyM19DMjRfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQxX0NTQ19DMzFfQzMyX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVjOQorI2RlZmluZSBtbU1QQ19PVVQxX0NTQ19DMzFfQzMyX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfQzMzX0MzNF9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1Y2EKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfQzMzX0MzNF9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDFfQ1NDX0MxMV9DMTJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWNiCisjZGVmaW5lIG1tTVBDX09VVDFfQ1NDX0MxMV9DMTJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQxX0NTQ19DMTNfQzE0X0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVjYworI2RlZmluZSBtbU1QQ19PVVQxX0NTQ19DMTNfQzE0X0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfQzIxX0MyMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1Y2QKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfQzIxX0MyMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDFfQ1NDX0MyM19DMjRfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWNlCisjZGVmaW5lIG1tTVBDX09VVDFfQ1NDX0MyM19DMjRfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQxX0NTQ19DMzFfQzMyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVjZgorI2RlZmluZSBtbU1QQ19PVVQxX0NTQ19DMzFfQzMyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfQzMzX0MzNF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ZDAKKyNkZWZpbmUgbW1NUENfT1VUMV9DU0NfQzMzX0MzNF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWQxCisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQyX0NTQ19DMTFfQzEyX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVkMgorI2RlZmluZSBtbU1QQ19PVVQyX0NTQ19DMTFfQzEyX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMl9DU0NfQzEzX0MxNF9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ZDMKKyNkZWZpbmUgbW1NUENfT1VUMl9DU0NfQzEzX0MxNF9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX0MyMV9DMjJfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWQ0CisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX0MyMV9DMjJfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQyX0NTQ19DMjNfQzI0X0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVkNQorI2RlZmluZSBtbU1QQ19PVVQyX0NTQ19DMjNfQzI0X0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMl9DU0NfQzMxX0MzMl9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ZDYKKyNkZWZpbmUgbW1NUENfT1VUMl9DU0NfQzMxX0MzMl9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX0MzM19DMzRfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWQ3CisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX0MzM19DMzRfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQyX0NTQ19DMTFfQzEyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVkOAorI2RlZmluZSBtbU1QQ19PVVQyX0NTQ19DMTFfQzEyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMl9DU0NfQzEzX0MxNF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ZDkKKyNkZWZpbmUgbW1NUENfT1VUMl9DU0NfQzEzX0MxNF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX0MyMV9DMjJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWRhCisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX0MyMV9DMjJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQyX0NTQ19DMjNfQzI0X0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVkYgorI2RlZmluZSBtbU1QQ19PVVQyX0NTQ19DMjNfQzI0X0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUMl9DU0NfQzMxX0MzMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ZGMKKyNkZWZpbmUgbW1NUENfT1VUMl9DU0NfQzMxX0MzMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX0MzM19DMzRfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWRkCisjZGVmaW5lIG1tTVBDX09VVDJfQ1NDX0MzM19DMzRfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVkZQorI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUM19DU0NfQzExX0MxMl9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ZGYKKyNkZWZpbmUgbW1NUENfT1VUM19DU0NfQzExX0MxMl9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDNfQ1NDX0MxM19DMTRfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWUwCisjZGVmaW5lIG1tTVBDX09VVDNfQ1NDX0MxM19DMTRfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19DMjFfQzIyX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVlMQorI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19DMjFfQzIyX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUM19DU0NfQzIzX0MyNF9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ZTIKKyNkZWZpbmUgbW1NUENfT1VUM19DU0NfQzIzX0MyNF9BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDNfQ1NDX0MzMV9DMzJfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWUzCisjZGVmaW5lIG1tTVBDX09VVDNfQ1NDX0MzMV9DMzJfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19DMzNfQzM0X0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVlNAorI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19DMzNfQzM0X0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUM19DU0NfQzExX0MxMl9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ZTUKKyNkZWZpbmUgbW1NUENfT1VUM19DU0NfQzExX0MxMl9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDNfQ1NDX0MxM19DMTRfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWU2CisjZGVmaW5lIG1tTVBDX09VVDNfQ1NDX0MxM19DMTRfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19DMjFfQzIyX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVlNworI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19DMjFfQzIyX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NUENfT1VUM19DU0NfQzIzX0MyNF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1ZTgKKyNkZWZpbmUgbW1NUENfT1VUM19DU0NfQzIzX0MyNF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTVBDX09VVDNfQ1NDX0MzMV9DMzJfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNWU5CisjZGVmaW5lIG1tTVBDX09VVDNfQ1NDX0MzMV9DMzJfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19DMzNfQzM0X0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTVlYQorI2RlZmluZSBtbU1QQ19PVVQzX0NTQ19DMzNfQzM0X0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tcGNfbXBjX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg1OTY0CisjZGVmaW5lIG1tRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNjU5CisjZGVmaW5lIG1tRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTY1YQorI2RlZmluZSBtbURDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2NWIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE1X1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNjVjCisjZGVmaW5lIG1tRENfUEVSRk1PTjE1X1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xNV9QRVJGTU9OX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTY1ZAorI2RlZmluZSBtbURDX1BFUkZNT04xNV9QRVJGTU9OX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2NWUKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNjVmCisjZGVmaW5lIG1tRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xNV9QRVJGTU9OX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTY2MAorI2RlZmluZSBtbURDX1BFUkZNT04xNV9QRVJGTU9OX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTVfUEVSRk1PTl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2NjEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTVfUEVSRk1PTl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2FibTBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1CTDFfUFdNX0FNQklFTlRfTElHSFRfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3YjAKKyNkZWZpbmUgbW1CTDFfUFdNX0FNQklFTlRfTElHSFRfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQkwxX1BXTV9VU0VSX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2IxCisjZGVmaW5lIG1tQkwxX1BXTV9VU0VSX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUJMMV9QV01fVEFSR0VUX0FCTV9MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdiMgorI2RlZmluZSBtbUJMMV9QV01fVEFSR0VUX0FCTV9MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1CTDFfUFdNX0NVUlJFTlRfQUJNX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3YjMKKyNkZWZpbmUgbW1CTDFfUFdNX0NVUlJFTlRfQUJNX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQkwxX1BXTV9GSU5BTF9EVVRZX0NZQ0xFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2I0CisjZGVmaW5lIG1tQkwxX1BXTV9GSU5BTF9EVVRZX0NZQ0xFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUJMMV9QV01fTUlOSU1VTV9EVVRZX0NZQ0xFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdiNQorI2RlZmluZSBtbUJMMV9QV01fTUlOSU1VTV9EVVRZX0NZQ0xFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1CTDFfUFdNX0FCTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3YjYKKyNkZWZpbmUgbW1CTDFfUFdNX0FCTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2I3CisjZGVmaW5lIG1tQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUJMMV9QV01fR1JQMl9SRUdfTE9DSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdiOAorI2RlZmluZSBtbUJMMV9QV01fR1JQMl9SRUdfTE9DS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3YjkKKyNkZWZpbmUgbW1EQ19BQk0xX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9JUENTQ19DT0VGRl9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2JhCisjZGVmaW5lIG1tRENfQUJNMV9JUENTQ19DT0VGRl9TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdiYgorI2RlZmluZSBtbURDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3YmMKKyNkZWZpbmUgbW1EQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2JkCisjZGVmaW5lIG1tRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdiZQorI2RlZmluZSBtbURDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3YmYKKyNkZWZpbmUgbW1EQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9BQ0VfVEhSRVNfMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2MwCisjZGVmaW5lIG1tRENfQUJNMV9BQ0VfVEhSRVNfMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfQUNFX1RIUkVTXzM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdjMQorI2RlZmluZSBtbURDX0FCTTFfQUNFX1RIUkVTXzM0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0FDRV9DTlRMX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3YzIKKyNkZWZpbmUgbW1EQ19BQk0xX0FDRV9DTlRMX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2M0CisjZGVmaW5lIG1tRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfTUlTQ19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdjNQorI2RlZmluZSBtbURDX0FCTTFfSEdfTUlTQ19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0xTX1NVTV9PRl9MVU1BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3YzYKKyNkZWZpbmUgbW1EQ19BQk0xX0xTX1NVTV9PRl9MVU1BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9MU19NSU5fTUFYX0xVTUEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2M3CisjZGVmaW5lIG1tRENfQUJNMV9MU19NSU5fTUFYX0xVTUFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfTFNfRklMVEVSRURfTUlOX01BWF9MVU1BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdjOAorI2RlZmluZSBtbURDX0FCTTFfTFNfRklMVEVSRURfTUlOX01BWF9MVU1BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0xTX1BJWEVMX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3YzkKKyNkZWZpbmUgbW1EQ19BQk0xX0xTX1BJWEVMX0NPVU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9MU19NSU5fTUFYX1BJWEVMX1ZBTFVFX1RIUkVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2NhCisjZGVmaW5lIG1tRENfQUJNMV9MU19NSU5fTUFYX1BJWEVMX1ZBTFVFX1RIUkVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfTFNfTUlOX1BJWEVMX1ZBTFVFX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdjYgorI2RlZmluZSBtbURDX0FCTTFfTFNfTUlOX1BJWEVMX1ZBTFVFX0NPVU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0xTX01BWF9QSVhFTF9WQUxVRV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3Y2MKKyNkZWZpbmUgbW1EQ19BQk0xX0xTX01BWF9QSVhFTF9WQUxVRV9DT1VOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19TQU1QTEVfUkFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2NkCisjZGVmaW5lIG1tRENfQUJNMV9IR19TQU1QTEVfUkFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfTFNfU0FNUExFX1JBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdjZQorI2RlZmluZSBtbURDX0FCTTFfTFNfU0FNUExFX1JBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX0JJTl8xXzMyX1NISUZUX0ZMQUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3Y2YKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX0JJTl8xXzMyX1NISUZUX0ZMQUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19CSU5fMV84X1NISUZUX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2QwCisjZGVmaW5lIG1tRENfQUJNMV9IR19CSU5fMV84X1NISUZUX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfQklOXzlfMTZfU0hJRlRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdkMQorI2RlZmluZSBtbURDX0FCTTFfSEdfQklOXzlfMTZfU0hJRlRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX0JJTl8xN18yNF9TSElGVF9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3ZDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX0JJTl8xN18yNF9TSElGVF9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19CSU5fMjVfMzJfU0hJRlRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2QzCisjZGVmaW5lIG1tRENfQUJNMV9IR19CSU5fMjVfMzJfU0hJRlRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdkNAorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3ZDUKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2Q2CisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdkNworI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3ZDgKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2Q5CisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdkYQorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3ZGIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF84X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2RjCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdkZAorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3ZGUKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2RmCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdlMAorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8xNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3ZTEKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8xNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2UyCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdlMworI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8xNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3ZTQKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8xN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2U1CisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdlNgorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8yMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3ZTcKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8yMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2U4CisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdlOQorI2RlZmluZSBtbURDX0FCTTFfSEdfUkVTVUxUXzIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8yMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3ZWEKKyNkZWZpbmUgbW1EQ19BQk0xX0hHX1JFU1VMVF8yM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxN2ViCisjZGVmaW5lIG1tRENfQUJNMV9IR19SRVNVTFRfMjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0FCTTFfQkxfTUFTVEVSX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdlYworI2RlZmluZSBtbURDX0FCTTFfQkxfTUFTVEVSX0xPQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZm10MF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbUZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgzYworI2RlZmluZSBtbUZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQwX0ZNVF9DTEFNUF9DT01QT05FTlRfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4M2QKKyNkZWZpbmUgbW1GTVQwX0ZNVF9DTEFNUF9DT01QT05FTlRfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMF9GTVRfQ0xBTVBfQ09NUE9ORU5UX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODNlCisjZGVmaW5lIG1tRk1UMF9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDBfRk1UX0RZTkFNSUNfRVhQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgzZgorI2RlZmluZSBtbUZNVDBfRk1UX0RZTkFNSUNfRVhQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQwX0ZNVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4NDAKKyNkZWZpbmUgbW1GTVQwX0ZNVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODQxCisjZGVmaW5lIG1tRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDBfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg0MgorI2RlZmluZSBtbUZNVDBfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQwX0ZNVF9ESVRIRVJfUkFORF9HX1NFRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4NDMKKyNkZWZpbmUgbW1GTVQwX0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMF9GTVRfRElUSEVSX1JBTkRfQl9TRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODQ0CisjZGVmaW5lIG1tRk1UMF9GTVRfRElUSEVSX1JBTkRfQl9TRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDBfRk1UX0NMQU1QX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg0NQorI2RlZmluZSBtbUZNVDBfRk1UX0NMQU1QX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQwX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4NDYKKyNkZWZpbmUgbW1GTVQwX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODQ3CisjZGVmaW5lIG1tRk1UMF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDBfRk1UXzQyMl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg0OQorI2RlZmluZSBtbUZNVDBfRk1UXzQyMl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZHBnMF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbURQRzBfRFBHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg1NAorI2RlZmluZSBtbURQRzBfRFBHX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEcwX0RQR19SQU1QX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4NTUKKyNkZWZpbmUgbW1EUEcwX0RQR19SQU1QX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHMF9EUEdfRElNRU5TSU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODU2CisjZGVmaW5lIG1tRFBHMF9EUEdfRElNRU5TSU9OU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzBfRFBHX0NPTE9VUl9SX0NSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg1NworI2RlZmluZSBtbURQRzBfRFBHX0NPTE9VUl9SX0NSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEcwX0RQR19DT0xPVVJfR19ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4NTgKKyNkZWZpbmUgbW1EUEcwX0RQR19DT0xPVVJfR19ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHMF9EUEdfQ09MT1VSX0JfQ0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODU5CisjZGVmaW5lIG1tRFBHMF9EUEdfQ09MT1VSX0JfQ0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzBfRFBHX09GRlNFVF9TRUdNRU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg1YQorI2RlZmluZSBtbURQRzBfRFBHX09GRlNFVF9TRUdNRU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEcwX0RQR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4NWIKKyNkZWZpbmUgbW1EUEcwX0RQR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcGJ1ZjBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1PUFBCVUYwX09QUEJVRl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4ODQKKyNkZWZpbmUgbW1PUFBCVUYwX09QUEJVRl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQQlVGMF9PUFBCVUZfM0RfUEFSQU1FVEVSU18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODg1CisjZGVmaW5lIG1tT1BQQlVGMF9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUEJVRjBfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg4NgorI2RlZmluZSBtbU9QUEJVRjBfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBCVUYwX09QUEJVRl9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4ODkKKyNkZWZpbmUgbW1PUFBCVUYwX09QUEJVRl9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcF9waXBlMF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbU9QUF9QSVBFMF9PUFBfUElQRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg4YworI2RlZmluZSBtbU9QUF9QSVBFMF9PUFBfUElQRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwX3BpcGVfY3JjMF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg5MQorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4OTIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfUkVTVUxUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODkzCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfUkVTVUxUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX1JFU1VMVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg5NAorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19SRVNVTFQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4OTUKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19SRVNVTFQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2ZtdDFfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDE2OAorI2RlZmluZSBtbUZNVDFfRk1UX0NMQU1QX0NPTVBPTkVOVF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg5NgorI2RlZmluZSBtbUZNVDFfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4OTcKKyNkZWZpbmUgbW1GTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODk4CisjZGVmaW5lIG1tRk1UMV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDFfRk1UX0RZTkFNSUNfRVhQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg5OQorI2RlZmluZSBtbUZNVDFfRk1UX0RZTkFNSUNfRVhQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQxX0ZNVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4OWEKKyNkZWZpbmUgbW1GTVQxX0ZNVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMV9GTVRfQklUX0RFUFRIX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODliCisjZGVmaW5lIG1tRk1UMV9GTVRfQklUX0RFUFRIX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDFfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg5YworI2RlZmluZSBtbUZNVDFfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQxX0ZNVF9ESVRIRVJfUkFORF9HX1NFRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4OWQKKyNkZWZpbmUgbW1GTVQxX0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMV9GTVRfRElUSEVSX1JBTkRfQl9TRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxODllCisjZGVmaW5lIG1tRk1UMV9GTVRfRElUSEVSX1JBTkRfQl9TRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDFfRk1UX0NMQU1QX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTg5ZgorI2RlZmluZSBtbUZNVDFfRk1UX0NMQU1QX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQxX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4YTAKKyNkZWZpbmUgbW1GTVQxX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMV9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGExCisjZGVmaW5lIG1tRk1UMV9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDFfRk1UXzQyMl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThhMworI2RlZmluZSBtbUZNVDFfRk1UXzQyMl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZHBnMV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTY4CisjZGVmaW5lIG1tRFBHMV9EUEdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGFlCisjZGVmaW5lIG1tRFBHMV9EUEdfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzFfRFBHX1JBTVBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThhZgorI2RlZmluZSBtbURQRzFfRFBHX1JBTVBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEcxX0RQR19ESU1FTlNJT05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4YjAKKyNkZWZpbmUgbW1EUEcxX0RQR19ESU1FTlNJT05TX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHMV9EUEdfQ09MT1VSX1JfQ1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGIxCisjZGVmaW5lIG1tRFBHMV9EUEdfQ09MT1VSX1JfQ1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzFfRFBHX0NPTE9VUl9HX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThiMgorI2RlZmluZSBtbURQRzFfRFBHX0NPTE9VUl9HX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEcxX0RQR19DT0xPVVJfQl9DQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4YjMKKyNkZWZpbmUgbW1EUEcxX0RQR19DT0xPVVJfQl9DQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHMV9EUEdfT0ZGU0VUX1NFR01FTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGI0CisjZGVmaW5lIG1tRFBHMV9EUEdfT0ZGU0VUX1NFR01FTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzFfRFBHX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThiNQorI2RlZmluZSBtbURQRzFfRFBHX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwYnVmMV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTY4CisjZGVmaW5lIG1tT1BQQlVGMV9PUFBCVUZfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGRlCisjZGVmaW5lIG1tT1BQQlVGMV9PUFBCVUZfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUEJVRjFfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThkZgorI2RlZmluZSBtbU9QUEJVRjFfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBCVUYxX09QUEJVRl8zRF9QQVJBTUVURVJTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4ZTAKKyNkZWZpbmUgbW1PUFBCVUYxX09QUEJVRl8zRF9QQVJBTUVURVJTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQQlVGMV9PUFBCVUZfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGUzCisjZGVmaW5lIG1tT1BQQlVGMV9PUFBCVUZfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfcGlwZTFfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDE2OAorI2RlZmluZSBtbU9QUF9QSVBFMV9PUFBfUElQRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThlNgorI2RlZmluZSBtbU9QUF9QSVBFMV9PUFBfUElQRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwX3BpcGVfY3JjMV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTY4CisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGViCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThlYworI2RlZmluZSBtbU9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19SRVNVTFQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4ZWQKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19SRVNVTFQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfUkVTVUxUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGVlCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfUkVTVUxUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX1JFU1VMVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThlZgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX1JFU1VMVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZm10Ml9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MmQwCisjZGVmaW5lIG1tRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGYwCisjZGVmaW5lIG1tRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDJfRk1UX0NMQU1QX0NPTVBPTkVOVF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThmMQorI2RlZmluZSBtbUZNVDJfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQyX0ZNVF9DTEFNUF9DT01QT05FTlRfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4ZjIKKyNkZWZpbmUgbW1GTVQyX0ZNVF9DTEFNUF9DT01QT05FTlRfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMl9GTVRfRFlOQU1JQ19FWFBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGYzCisjZGVmaW5lIG1tRk1UMl9GTVRfRFlOQU1JQ19FWFBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDJfRk1UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThmNAorI2RlZmluZSBtbUZNVDJfRk1UX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4ZjUKKyNkZWZpbmUgbW1GTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMl9GTVRfRElUSEVSX1JBTkRfUl9TRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGY2CisjZGVmaW5lIG1tRk1UMl9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDJfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThmNworI2RlZmluZSBtbUZNVDJfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQyX0ZNVF9ESVRIRVJfUkFORF9CX1NFRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4ZjgKKyNkZWZpbmUgbW1GTVQyX0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMl9GTVRfQ0xBTVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGY5CisjZGVmaW5lIG1tRk1UMl9GTVRfQ0xBTVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDJfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MThmYQorI2RlZmluZSBtbUZNVDJfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQyX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4ZmIKKyNkZWZpbmUgbW1GTVQyX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UMl9GTVRfNDIyX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOGZkCisjZGVmaW5lIG1tRk1UMl9GTVRfNDIyX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kcGcyX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgyZDAKKyNkZWZpbmUgbW1EUEcyX0RQR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5MDgKKyNkZWZpbmUgbW1EUEcyX0RQR19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHMl9EUEdfUkFNUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTA5CisjZGVmaW5lIG1tRFBHMl9EUEdfUkFNUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzJfRFBHX0RJTUVOU0lPTlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkwYQorI2RlZmluZSBtbURQRzJfRFBHX0RJTUVOU0lPTlNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEcyX0RQR19DT0xPVVJfUl9DUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5MGIKKyNkZWZpbmUgbW1EUEcyX0RQR19DT0xPVVJfUl9DUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHMl9EUEdfQ09MT1VSX0dfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTBjCisjZGVmaW5lIG1tRFBHMl9EUEdfQ09MT1VSX0dfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzJfRFBHX0NPTE9VUl9CX0NCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkwZAorI2RlZmluZSBtbURQRzJfRFBHX0NPTE9VUl9CX0NCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEcyX0RQR19PRkZTRVRfU0VHTUVOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5MGUKKyNkZWZpbmUgbW1EUEcyX0RQR19PRkZTRVRfU0VHTUVOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHMl9EUEdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTBmCisjZGVmaW5lIG1tRFBHMl9EUEdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBidWYyX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgyZDAKKyNkZWZpbmUgbW1PUFBCVUYyX09QUEJVRl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5MzgKKyNkZWZpbmUgbW1PUFBCVUYyX09QUEJVRl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQQlVGMl9PUFBCVUZfM0RfUEFSQU1FVEVSU18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTM5CisjZGVmaW5lIG1tT1BQQlVGMl9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUEJVRjJfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkzYQorI2RlZmluZSBtbU9QUEJVRjJfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBCVUYyX09QUEJVRl9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5M2QKKyNkZWZpbmUgbW1PUFBCVUYyX09QUEJVRl9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcF9waXBlMl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MmQwCisjZGVmaW5lIG1tT1BQX1BJUEUyX09QUF9QSVBFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTQwCisjZGVmaW5lIG1tT1BQX1BJUEUyX09QUF9QSVBFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfcGlwZV9jcmMyX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgyZDAKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NDUKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTQ2CisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX1JFU1VMVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk0NworI2RlZmluZSBtbU9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19SRVNVTFQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NDgKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19SRVNVTFQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfUkVTVUxUMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTQ5CisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfUkVTVUxUMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9mbXQzX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg0MzgKKyNkZWZpbmUgbW1GTVQzX0ZNVF9DTEFNUF9DT01QT05FTlRfUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NGEKKyNkZWZpbmUgbW1GTVQzX0ZNVF9DTEFNUF9DT01QT05FTlRfUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UM19GTVRfQ0xBTVBfQ09NUE9ORU5UX0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTRiCisjZGVmaW5lIG1tRk1UM19GTVRfQ0xBTVBfQ09NUE9ORU5UX0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk0YworI2RlZmluZSBtbUZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQzX0ZNVF9EWU5BTUlDX0VYUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NGQKKyNkZWZpbmUgbW1GTVQzX0ZNVF9EWU5BTUlDX0VYUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UM19GTVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTRlCisjZGVmaW5lIG1tRk1UM19GTVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDNfRk1UX0JJVF9ERVBUSF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk0ZgorI2RlZmluZSBtbUZNVDNfRk1UX0JJVF9ERVBUSF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQzX0ZNVF9ESVRIRVJfUkFORF9SX1NFRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NTAKKyNkZWZpbmUgbW1GTVQzX0ZNVF9ESVRIRVJfUkFORF9SX1NFRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UM19GTVRfRElUSEVSX1JBTkRfR19TRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTUxCisjZGVmaW5lIG1tRk1UM19GTVRfRElUSEVSX1JBTkRfR19TRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDNfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk1MgorI2RlZmluZSBtbUZNVDNfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQzX0ZNVF9DTEFNUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NTMKKyNkZWZpbmUgbW1GTVQzX0ZNVF9DTEFNUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UM19GTVRfU0lERV9CWV9TSURFX1NURVJFT19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTU0CisjZGVmaW5lIG1tRk1UM19GTVRfU0lERV9CWV9TSURFX1NURVJFT19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDNfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk1NQorI2RlZmluZSBtbUZNVDNfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQzX0ZNVF80MjJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NTcKKyNkZWZpbmUgbW1GTVQzX0ZNVF80MjJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2RwZzNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDQzOAorI2RlZmluZSBtbURQRzNfRFBHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk2MgorI2RlZmluZSBtbURQRzNfRFBHX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEczX0RQR19SQU1QX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NjMKKyNkZWZpbmUgbW1EUEczX0RQR19SQU1QX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHM19EUEdfRElNRU5TSU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTY0CisjZGVmaW5lIG1tRFBHM19EUEdfRElNRU5TSU9OU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzNfRFBHX0NPTE9VUl9SX0NSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk2NQorI2RlZmluZSBtbURQRzNfRFBHX0NPTE9VUl9SX0NSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEczX0RQR19DT0xPVVJfR19ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NjYKKyNkZWZpbmUgbW1EUEczX0RQR19DT0xPVVJfR19ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHM19EUEdfQ09MT1VSX0JfQ0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTY3CisjZGVmaW5lIG1tRFBHM19EUEdfQ09MT1VSX0JfQ0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzNfRFBHX09GRlNFVF9TRUdNRU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk2OAorI2RlZmluZSBtbURQRzNfRFBHX09GRlNFVF9TRUdNRU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEczX0RQR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5NjkKKyNkZWZpbmUgbW1EUEczX0RQR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcGJ1ZjNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDQzOAorI2RlZmluZSBtbU9QUEJVRjNfT1BQQlVGX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk5MgorI2RlZmluZSBtbU9QUEJVRjNfT1BQQlVGX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBCVUYzX09QUEJVRl8zRF9QQVJBTUVURVJTXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5OTMKKyNkZWZpbmUgbW1PUFBCVUYzX09QUEJVRl8zRF9QQVJBTUVURVJTXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQQlVGM19PUFBCVUZfM0RfUEFSQU1FVEVSU18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOTk0CisjZGVmaW5lIG1tT1BQQlVGM19PUFBCVUZfM0RfUEFSQU1FVEVSU18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUEJVRjNfT1BQQlVGX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk5NworI2RlZmluZSBtbU9QUEJVRjNfT1BQQlVGX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwX3BpcGUzX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg0MzgKKyNkZWZpbmUgbW1PUFBfUElQRTNfT1BQX1BJUEVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5OWEKKyNkZWZpbmUgbW1PUFBfUElQRTNfT1BQX1BJUEVfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcF9waXBlX2NyYzNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDQzOAorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTk5ZgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5YTAKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfUkVTVUxUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWExCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfUkVTVUxUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX1JFU1VMVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTlhMgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19SRVNVTFQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5YTMKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19SRVNVTFQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2ZtdDRfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDVhMAorI2RlZmluZSBtbUZNVDRfRk1UX0NMQU1QX0NPTVBPTkVOVF9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTlhNAorI2RlZmluZSBtbUZNVDRfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5YTUKKyNkZWZpbmUgbW1GTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UNF9GTVRfQ0xBTVBfQ09NUE9ORU5UX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWE2CisjZGVmaW5lIG1tRk1UNF9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDRfRk1UX0RZTkFNSUNfRVhQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTlhNworI2RlZmluZSBtbUZNVDRfRk1UX0RZTkFNSUNfRVhQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQ0X0ZNVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5YTgKKyNkZWZpbmUgbW1GTVQ0X0ZNVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UNF9GTVRfQklUX0RFUFRIX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWE5CisjZGVmaW5lIG1tRk1UNF9GTVRfQklUX0RFUFRIX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDRfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTlhYQorI2RlZmluZSBtbUZNVDRfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQ0X0ZNVF9ESVRIRVJfUkFORF9HX1NFRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5YWIKKyNkZWZpbmUgbW1GTVQ0X0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UNF9GTVRfRElUSEVSX1JBTkRfQl9TRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWFjCisjZGVmaW5lIG1tRk1UNF9GTVRfRElUSEVSX1JBTkRfQl9TRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDRfRk1UX0NMQU1QX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTlhZAorI2RlZmluZSBtbUZNVDRfRk1UX0NMQU1QX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQ0X0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5YWUKKyNkZWZpbmUgbW1GTVQ0X0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UNF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWFmCisjZGVmaW5lIG1tRk1UNF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDRfRk1UXzQyMl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTliMQorI2RlZmluZSBtbUZNVDRfRk1UXzQyMl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZHBnNF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NWEwCisjZGVmaW5lIG1tRFBHNF9EUEdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWJjCisjZGVmaW5lIG1tRFBHNF9EUEdfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzRfRFBHX1JBTVBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTliZAorI2RlZmluZSBtbURQRzRfRFBHX1JBTVBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEc0X0RQR19ESU1FTlNJT05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5YmUKKyNkZWZpbmUgbW1EUEc0X0RQR19ESU1FTlNJT05TX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHNF9EUEdfQ09MT1VSX1JfQ1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWJmCisjZGVmaW5lIG1tRFBHNF9EUEdfQ09MT1VSX1JfQ1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzRfRFBHX0NPTE9VUl9HX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTljMAorI2RlZmluZSBtbURQRzRfRFBHX0NPTE9VUl9HX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEc0X0RQR19DT0xPVVJfQl9DQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5YzEKKyNkZWZpbmUgbW1EUEc0X0RQR19DT0xPVVJfQl9DQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHNF9EUEdfT0ZGU0VUX1NFR01FTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWMyCisjZGVmaW5lIG1tRFBHNF9EUEdfT0ZGU0VUX1NFR01FTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzRfRFBHX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTljMworI2RlZmluZSBtbURQRzRfRFBHX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwYnVmNF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NWEwCisjZGVmaW5lIG1tT1BQQlVGNF9PUFBCVUZfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWVjCisjZGVmaW5lIG1tT1BQQlVGNF9PUFBCVUZfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUEJVRjRfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTllZAorI2RlZmluZSBtbU9QUEJVRjRfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBCVUY0X09QUEJVRl8zRF9QQVJBTUVURVJTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5ZWUKKyNkZWZpbmUgbW1PUFBCVUY0X09QUEJVRl8zRF9QQVJBTUVURVJTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQQlVGNF9PUFBCVUZfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWYxCisjZGVmaW5lIG1tT1BQQlVGNF9PUFBCVUZfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfcGlwZTRfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDVhMAorI2RlZmluZSBtbU9QUF9QSVBFNF9PUFBfUElQRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTlmNAorI2RlZmluZSBtbU9QUF9QSVBFNF9PUFBfUElQRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwX3BpcGVfY3JjNF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NWEwCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWY5CisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTlmYQorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19SRVNVTFQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5ZmIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19SRVNVTFQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfUkVTVUxUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWZjCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfUkVTVUxUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX1JFU1VMVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTlmZAorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX1JFU1VMVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZm10NV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NzA4CisjZGVmaW5lIG1tRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOWZlCisjZGVmaW5lIG1tRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDVfRk1UX0NMQU1QX0NPTVBPTkVOVF9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTlmZgorI2RlZmluZSBtbUZNVDVfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQ1X0ZNVF9DTEFNUF9DT01QT05FTlRfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhMDAKKyNkZWZpbmUgbW1GTVQ1X0ZNVF9DTEFNUF9DT01QT05FTlRfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UNV9GTVRfRFlOQU1JQ19FWFBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTAxCisjZGVmaW5lIG1tRk1UNV9GTVRfRFlOQU1JQ19FWFBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDVfRk1UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEwMgorI2RlZmluZSBtbUZNVDVfRk1UX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhMDMKKyNkZWZpbmUgbW1GTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UNV9GTVRfRElUSEVSX1JBTkRfUl9TRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTA0CisjZGVmaW5lIG1tRk1UNV9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDVfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEwNQorI2RlZmluZSBtbUZNVDVfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQ1X0ZNVF9ESVRIRVJfUkFORF9CX1NFRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhMDYKKyNkZWZpbmUgbW1GTVQ1X0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UNV9GTVRfQ0xBTVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTA3CisjZGVmaW5lIG1tRk1UNV9GTVRfQ0xBTVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUZNVDVfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEwOAorI2RlZmluZSBtbUZNVDVfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1GTVQ1X0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhMDkKKyNkZWZpbmUgbW1GTVQ1X0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRk1UNV9GTVRfNDIyX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTBiCisjZGVmaW5lIG1tRk1UNV9GTVRfNDIyX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kcGc1X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg3MDgKKyNkZWZpbmUgbW1EUEc1X0RQR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhMTYKKyNkZWZpbmUgbW1EUEc1X0RQR19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHNV9EUEdfUkFNUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTE3CisjZGVmaW5lIG1tRFBHNV9EUEdfUkFNUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzVfRFBHX0RJTUVOU0lPTlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWExOAorI2RlZmluZSBtbURQRzVfRFBHX0RJTUVOU0lPTlNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEc1X0RQR19DT0xPVVJfUl9DUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhMTkKKyNkZWZpbmUgbW1EUEc1X0RQR19DT0xPVVJfUl9DUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHNV9EUEdfQ09MT1VSX0dfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTFhCisjZGVmaW5lIG1tRFBHNV9EUEdfQ09MT1VSX0dfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQRzVfRFBHX0NPTE9VUl9CX0NCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWExYgorI2RlZmluZSBtbURQRzVfRFBHX0NPTE9VUl9CX0NCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUEc1X0RQR19PRkZTRVRfU0VHTUVOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhMWMKKyNkZWZpbmUgbW1EUEc1X0RQR19PRkZTRVRfU0VHTUVOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBHNV9EUEdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTFkCisjZGVmaW5lIG1tRFBHNV9EUEdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBidWY1X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg3MDgKKyNkZWZpbmUgbW1PUFBCVUY1X09QUEJVRl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhNDYKKyNkZWZpbmUgbW1PUFBCVUY1X09QUEJVRl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQQlVGNV9PUFBCVUZfM0RfUEFSQU1FVEVSU18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTQ3CisjZGVmaW5lIG1tT1BQQlVGNV9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUEJVRjVfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWE0OAorI2RlZmluZSBtbU9QUEJVRjVfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBCVUY1X09QUEJVRl9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhNGIKKyNkZWZpbmUgbW1PUFBCVUY1X09QUEJVRl9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcF9waXBlNV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NzA4CisjZGVmaW5lIG1tT1BQX1BJUEU1X09QUF9QSVBFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTRlCisjZGVmaW5lIG1tT1BQX1BJUEU1X09QUF9QSVBFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfcGlwZV9jcmM1X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg3MDgKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhNTMKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTU0CisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX1JFU1VMVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWE1NQorI2RlZmluZSBtbU9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19SRVNVTFQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhNTYKKyNkZWZpbmUgbW1PUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19SRVNVTFQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfUkVTVUxUMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTU3CisjZGVmaW5lIG1tT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfUkVTVUxUMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfdG9wX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tT1BQX1RPUF9DTEtfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTVlCisjZGVmaW5lIG1tT1BQX1RPUF9DTEtfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kc2NybTBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1EU0NSTTBfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhNjQKKyNkZWZpbmUgbW1EU0NSTTBfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2RzY3JtMV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NAorI2RlZmluZSBtbURTQ1JNMV9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWE2NQorI2RlZmluZSBtbURTQ1JNMV9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZHNjcm0yX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg4CisjZGVmaW5lIG1tRFNDUk0yX0RTQ1JNX0RTQ19GT1JXQVJEX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYTY2CisjZGVmaW5lIG1tRFNDUk0yX0RTQ1JNX0RTQ19GT1JXQVJEX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kc2NybTNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweGMKKyNkZWZpbmUgbW1EU0NSTTNfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhNjcKKyNkZWZpbmUgbW1EU0NSTTNfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2RzY3JtNF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTAKKyNkZWZpbmUgbW1EU0NSTTRfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhNjgKKyNkZWZpbmUgbW1EU0NSTTRfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2RzY3JtNV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTQKKyNkZWZpbmUgbW1EU0NSTTVfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhNjkKKyNkZWZpbmUgbW1EU0NSTTVfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcF9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NmFmOAorI2RlZmluZSBtbURDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFiZQorI2RlZmluZSBtbURDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhYmYKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX1NUQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWMwCisjZGVmaW5lIG1tRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX1NUQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xNl9QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFjMQorI2RlZmluZSBtbURDX1BFUkZNT04xNl9QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTZfUEVSRk1PTl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhYzIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTZfUEVSRk1PTl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWMzCisjZGVmaW5lIG1tRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xNl9QRVJGTU9OX0NWQUxVRV9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFjNAorI2RlZmluZSBtbURDX1BFUkZNT04xNl9QRVJGTU9OX0NWQUxVRV9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTZfUEVSRk1PTl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhYzUKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTZfUEVSRk1PTl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE2X1BFUkZNT05fTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWM2CisjZGVmaW5lIG1tRENfUEVSRk1PTjE2X1BFUkZNT05fTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb2RtMF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbU9ETTBfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFjYQorI2RlZmluZSBtbU9ETTBfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0wX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhY2IKKyNkZWZpbmUgbW1PRE0wX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNMF9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWNjCisjZGVmaW5lIG1tT0RNMF9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTBfT1BUQ19CWVRFU19QRVJfUElYRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFjZAorI2RlZmluZSBtbU9ETTBfT1BUQ19CWVRFU19QRVJfUElYRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0wX09QVENfV0lEVEhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhY2UKKyNkZWZpbmUgbW1PRE0wX09QVENfV0lEVEhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNMF9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWNmCisjZGVmaW5lIG1tT0RNMF9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTBfT1BUQ19NRU1PUllfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFkMAorI2RlZmluZSBtbU9ETTBfT1BUQ19NRU1PUllfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0wX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhZDEKKyNkZWZpbmUgbW1PRE0wX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vZG0xX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg0MAorI2RlZmluZSBtbU9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFkYQorI2RlZmluZSBtbU9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0xX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhZGIKKyNkZWZpbmUgbW1PRE0xX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNMV9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWRjCisjZGVmaW5lIG1tT0RNMV9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTFfT1BUQ19CWVRFU19QRVJfUElYRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFkZAorI2RlZmluZSBtbU9ETTFfT1BUQ19CWVRFU19QRVJfUElYRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0xX09QVENfV0lEVEhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhZGUKKyNkZWZpbmUgbW1PRE0xX09QVENfV0lEVEhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNMV9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWRmCisjZGVmaW5lIG1tT0RNMV9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTFfT1BUQ19NRU1PUllfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFlMAorI2RlZmluZSBtbU9ETTFfT1BUQ19NRU1PUllfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0xX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhZTEKKyNkZWZpbmUgbW1PRE0xX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vZG0yX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg4MAorI2RlZmluZSBtbU9ETTJfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFlYQorI2RlZmluZSBtbU9ETTJfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0yX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhZWIKKyNkZWZpbmUgbW1PRE0yX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNMl9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWVjCisjZGVmaW5lIG1tT0RNMl9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTJfT1BUQ19CWVRFU19QRVJfUElYRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFlZAorI2RlZmluZSBtbU9ETTJfT1BUQ19CWVRFU19QRVJfUElYRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0yX09QVENfV0lEVEhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhZWUKKyNkZWZpbmUgbW1PRE0yX09QVENfV0lEVEhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNMl9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWVmCisjZGVmaW5lIG1tT0RNMl9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTJfT1BUQ19NRU1PUllfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFmMAorI2RlZmluZSBtbU9ETTJfT1BUQ19NRU1PUllfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0yX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhZjEKKyNkZWZpbmUgbW1PRE0yX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vZG0zX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHhjMAorI2RlZmluZSBtbU9ETTNfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFmYQorI2RlZmluZSBtbU9ETTNfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0zX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhZmIKKyNkZWZpbmUgbW1PRE0zX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNM19PUFRDX0RBVEFfRk9STUFUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWZjCisjZGVmaW5lIG1tT0RNM19PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTNfT1BUQ19CWVRFU19QRVJfUElYRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWFmZAorI2RlZmluZSBtbU9ETTNfT1BUQ19CWVRFU19QRVJfUElYRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0zX09QVENfV0lEVEhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhZmUKKyNkZWZpbmUgbW1PRE0zX09QVENfV0lEVEhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNM19PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYWZmCisjZGVmaW5lIG1tT0RNM19PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTNfT1BUQ19NRU1PUllfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIwMAorI2RlZmluZSBtbU9ETTNfT1BUQ19NRU1PUllfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE0zX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMDEKKyNkZWZpbmUgbW1PRE0zX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vZG00X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxMDAKKyNkZWZpbmUgbW1PRE00X09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMGEKKyNkZWZpbmUgbW1PRE00X09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNNF9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjBiCisjZGVmaW5lIG1tT0RNNF9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTRfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIwYworI2RlZmluZSBtbU9ETTRfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE00X09QVENfQllURVNfUEVSX1BJWEVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMGQKKyNkZWZpbmUgbW1PRE00X09QVENfQllURVNfUEVSX1BJWEVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNNF9PUFRDX1dJRFRIX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjBlCisjZGVmaW5lIG1tT0RNNF9PUFRDX1dJRFRIX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTRfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIwZgorI2RlZmluZSBtbU9ETTRfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE00X09QVENfTUVNT1JZX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMTAKKyNkZWZpbmUgbW1PRE00X09QVENfTUVNT1JZX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNNF9PUFRDX0lOUFVUX1NQQVJFX1JFR0lTVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjExCisjZGVmaW5lIG1tT0RNNF9PUFRDX0lOUFVUX1NQQVJFX1JFR0lTVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb2RtNV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTQwCisjZGVmaW5lIG1tT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjFhCisjZGVmaW5lIG1tT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTVfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIxYgorI2RlZmluZSBtbU9ETTVfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE01X09QVENfREFUQV9GT1JNQVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMWMKKyNkZWZpbmUgbW1PRE01X09QVENfREFUQV9GT1JNQVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNNV9PUFRDX0JZVEVTX1BFUl9QSVhFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjFkCisjZGVmaW5lIG1tT0RNNV9PUFRDX0JZVEVTX1BFUl9QSVhFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTVfT1BUQ19XSURUSF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIxZQorI2RlZmluZSBtbU9ETTVfT1BUQ19XSURUSF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE01X09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMWYKKyNkZWZpbmUgbW1PRE01X09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNNV9PUFRDX01FTU9SWV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjIwCisjZGVmaW5lIG1tT0RNNV9PUFRDX01FTU9SWV9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETTVfT1BUQ19JTlBVVF9TUEFSRV9SRUdJU1RFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIyMQorI2RlZmluZSBtbU9ETTVfT1BUQ19JTlBVVF9TUEFSRV9SRUdJU1RFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHRjX290ZzBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1PVEcwX09UR19IX1RPVEFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMmEKKyNkZWZpbmUgbW1PVEcwX09UR19IX1RPVEFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfSF9CTEFOS19TVEFSVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjJiCisjZGVmaW5lIG1tT1RHMF9PVEdfSF9CTEFOS19TVEFSVF9FTkRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0hfU1lOQ19BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIyYworI2RlZmluZSBtbU9URzBfT1RHX0hfU1lOQ19BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19IX1NZTkNfQV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMmQKKyNkZWZpbmUgbW1PVEcwX09UR19IX1NZTkNfQV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfSF9USU1JTkdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjJlCisjZGVmaW5lIG1tT1RHMF9PVEdfSF9USU1JTkdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1ZfVE9UQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIyZgorI2RlZmluZSBtbU9URzBfT1RHX1ZfVE9UQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19WX1RPVEFMX01JTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMzAKKyNkZWZpbmUgbW1PVEcwX09UR19WX1RPVEFMX01JTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfVl9UT1RBTF9NQVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjMxCisjZGVmaW5lIG1tT1RHMF9PVEdfVl9UT1RBTF9NQVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1ZfVE9UQUxfTUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIzMgorI2RlZmluZSBtbU9URzBfT1RHX1ZfVE9UQUxfTUlEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19WX1RPVEFMX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMzMKKyNkZWZpbmUgbW1PVEcwX09UR19WX1RPVEFMX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjM0CisjZGVmaW5lIG1tT1RHMF9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIzNQorI2RlZmluZSBtbU9URzBfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19WX0JMQU5LX1NUQVJUX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMzYKKyNkZWZpbmUgbW1PVEcwX09UR19WX0JMQU5LX1NUQVJUX0VORF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfVl9TWU5DX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjM3CisjZGVmaW5lIG1tT1RHMF9PVEdfVl9TWU5DX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1ZfU1lOQ19BX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIzOAorI2RlZmluZSBtbU9URzBfT1RHX1ZfU1lOQ19BX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19UUklHQV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiMzkKKyNkZWZpbmUgbW1PVEcwX09UR19UUklHQV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfVFJJR0FfTUFOVUFMX1RSSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjNhCisjZGVmaW5lIG1tT1RHMF9PVEdfVFJJR0FfTUFOVUFMX1RSSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1RSSUdCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIzYgorI2RlZmluZSBtbU9URzBfT1RHX1RSSUdCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19UUklHQl9NQU5VQUxfVFJJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiM2MKKyNkZWZpbmUgbW1PVEcwX09UR19UUklHQl9NQU5VQUxfVFJJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjNkCisjZGVmaW5lIG1tT1RHMF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0ZMT1dfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIzZQorI2RlZmluZSBtbU9URzBfT1RHX0ZMT1dfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiM2YKKyNkZWZpbmUgbW1PVEcwX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjQxCisjZGVmaW5lIG1tT1RHMF9PVEdfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0JMQU5LX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI0MgorI2RlZmluZSBtbU9URzBfT1RHX0JMQU5LX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19QSVBFX0FCT1JUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNDMKKyNkZWZpbmUgbW1PVEcwX09UR19QSVBFX0FCT1JUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfSU5URVJMQUNFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjQ0CisjZGVmaW5lIG1tT1RHMF9PVEdfSU5URVJMQUNFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0lOVEVSTEFDRV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI0NQorI2RlZmluZSBtbU9URzBfT1RHX0lOVEVSTEFDRV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNDcKKyNkZWZpbmUgbW1PVEcwX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjQ4CisjZGVmaW5lIG1tT1RHMF9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI0OQorI2RlZmluZSBtbU9URzBfT1RHX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19TVEFUVVNfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNGEKKyNkZWZpbmUgbW1PVEcwX09UR19TVEFUVVNfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfTk9NX1ZFUlRfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjRiCisjZGVmaW5lIG1tT1RHMF9PVEdfTk9NX1ZFUlRfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1NUQVRVU19GUkFNRV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI0YworI2RlZmluZSBtbU9URzBfT1RHX1NUQVRVU19GUkFNRV9DT1VOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19TVEFUVVNfVkZfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNGQKKyNkZWZpbmUgbW1PVEcwX09UR19TVEFUVVNfVkZfQ09VTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfU1RBVFVTX0hWX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjRlCisjZGVmaW5lIG1tT1RHMF9PVEdfU1RBVFVTX0hWX0NPVU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0NPVU5UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI0ZgorI2RlZmluZSBtbU9URzBfT1RHX0NPVU5UX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19DT1VOVF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNTAKKyNkZWZpbmUgbW1PVEcwX09UR19DT1VOVF9SRVNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjUxCisjZGVmaW5lIG1tT1RHMF9PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1ZFUlRfU1lOQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI1MgorI2RlZmluZSBtbU9URzBfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19TVEVSRU9fU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNTMKKyNkZWZpbmUgbW1PVEcwX09UR19TVEVSRU9fU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfU1RFUkVPX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjU0CisjZGVmaW5lIG1tT1RHMF9PVEdfU1RFUkVPX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1NOQVBTSE9UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI1NQorI2RlZmluZSBtbU9URzBfT1RHX1NOQVBTSE9UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19TTkFQU0hPVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNTYKKyNkZWZpbmUgbW1PVEcwX09UR19TTkFQU0hPVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfU05BUFNIT1RfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjU3CisjZGVmaW5lIG1tT1RHMF9PVEdfU05BUFNIT1RfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1NOQVBTSE9UX0ZSQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI1OAorI2RlZmluZSBtbU9URzBfT1RHX1NOQVBTSE9UX0ZSQU1FX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19JTlRFUlJVUFRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNTkKKyNkZWZpbmUgbW1PVEcwX09UR19JTlRFUlJVUFRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfVVBEQVRFX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjVhCisjZGVmaW5lIG1tT1RHMF9PVEdfVVBEQVRFX0xPQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI1YgorI2RlZmluZSBtbU9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19NQVNURVJfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNWMKKyNkZWZpbmUgbW1PVEcwX09UR19NQVNURVJfRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfQkxBTktfREFUQV9DT0xPUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjVlCisjZGVmaW5lIG1tT1RHMF9PVEdfQkxBTktfREFUQV9DT0xPUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI1ZgorI2RlZmluZSBtbU9URzBfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19CTEFDS19DT0xPUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNjAKKyNkZWZpbmUgbW1PVEcwX09UR19CTEFDS19DT0xPUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfQkxBQ0tfQ09MT1JfRVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjYxCisjZGVmaW5lIG1tT1RHMF9PVEdfQkxBQ0tfQ09MT1JfRVhUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI2MgorI2RlZmluZSBtbU9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNjMKKyNkZWZpbmUgbW1PVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjY0CisjZGVmaW5lIG1tT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI2NQorI2RlZmluZSBtbU9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNjYKKyNkZWZpbmUgbW1PVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjY3CisjZGVmaW5lIG1tT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0NSQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI2OAorI2RlZmluZSBtbU9URzBfT1RHX0NSQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19DUkNfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNjkKKyNkZWZpbmUgbW1PVEcwX09UR19DUkNfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjZhCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI2YgorI2RlZmluZSBtbU9URzBfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNmMKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjZkCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0NSQzBfREFUQV9SRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI2ZQorI2RlZmluZSBtbU9URzBfT1RHX0NSQzBfREFUQV9SR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMwX0RBVEFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNmYKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMwX0RBVEFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjcwCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI3MQorI2RlZmluZSBtbU9URzBfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNzIKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjczCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0NSQzFfREFUQV9SRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI3NAorI2RlZmluZSBtbU9URzBfT1RHX0NSQzFfREFUQV9SR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMxX0RBVEFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNzUKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMxX0RBVEFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMl9EQVRBX1JHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjc2CisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDMl9EQVRBX1JHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0NSQzJfREFUQV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI3NworI2RlZmluZSBtbU9URzBfT1RHX0NSQzJfREFUQV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMzX0RBVEFfUkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiNzgKKyNkZWZpbmUgbW1PVEcwX09UR19DUkMzX0RBVEFfUkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDM19EQVRBX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjc5CisjZGVmaW5lIG1tT1RHMF9PVEdfQ1JDM19EQVRBX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI3YQorI2RlZmluZSBtbU9URzBfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiN2IKKyNkZWZpbmUgbW1PVEcwX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjgyCisjZGVmaW5lIG1tT1RHMF9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI4MworI2RlZmluZSBtbU9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19HU0xfVlNZTkNfR0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiODQKKyNkZWZpbmUgbW1PVEcwX09UR19HU0xfVlNZTkNfR0FQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfTUFTVEVSX1VQREFURV9NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjg1CisjZGVmaW5lIG1tT1RHMF9PVEdfTUFTVEVSX1VQREFURV9NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0NMT0NLX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI4NgorI2RlZmluZSBtbU9URzBfT1RHX0NMT0NLX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19WU1RBUlRVUF9QQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiODcKKyNkZWZpbmUgbW1PVEcwX09UR19WU1RBUlRVUF9QQVJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfVlVQREFURV9QQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjg4CisjZGVmaW5lIG1tT1RHMF9PVEdfVlVQREFURV9QQVJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1ZSRUFEWV9QQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI4OQorI2RlZmluZSBtbU9URzBfT1RHX1ZSRUFEWV9QQVJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiOGEKKyNkZWZpbmUgbW1PVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfTUFTVEVSX1VQREFURV9MT0NLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjhiCisjZGVmaW5lIG1tT1RHMF9PVEdfTUFTVEVSX1VQREFURV9MT0NLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0dTTF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI4YworI2RlZmluZSBtbU9URzBfT1RHX0dTTF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19HU0xfV0lORE9XX1ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiOGQKKyNkZWZpbmUgbW1PVEcwX09UR19HU0xfV0lORE9XX1hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfR1NMX1dJTkRPV19ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjhlCisjZGVmaW5lIG1tT1RHMF9PVEdfR1NMX1dJTkRPV19ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1ZVUERBVEVfS0VFUE9VVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI4ZgorI2RlZmluZSBtbU9URzBfT1RHX1ZVUERBVEVfS0VFUE9VVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19HTE9CQUxfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiOTAKKyNkZWZpbmUgbW1PVEcwX09UR19HTE9CQUxfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfR0xPQkFMX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjkxCisjZGVmaW5lIG1tT1RHMF9PVEdfR0xPQkFMX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX0dMT0JBTF9DT05UUk9MMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI5MgorI2RlZmluZSBtbU9URzBfT1RHX0dMT0JBTF9DT05UUk9MMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19HTE9CQUxfQ09OVFJPTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiOTMKKyNkZWZpbmUgbW1PVEcwX09UR19HTE9CQUxfQ09OVFJPTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfVFJJR19NQU5VQUxfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjk0CisjZGVmaW5lIG1tT1RHMF9PVEdfVFJJR19NQU5VQUxfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX01BTlVBTF9GTE9XX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI5NQorI2RlZmluZSBtbU9URzBfT1RHX01BTlVBTF9GTE9XX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiOTYKKyNkZWZpbmUgbW1PVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfRFJSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjk3CisjZGVmaW5lIG1tT1RHMF9PVEdfRFJSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1JFUVVFU1RfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI5OAorI2RlZmluZSBtbU9URzBfT1RHX1JFUVVFU1RfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcwX09UR19EU0NfU1RBUlRfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiOTkKKyNkZWZpbmUgbW1PVEcwX09UR19EU0NfU1RBUlRfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMF9PVEdfUElQRV9VUERBVEVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYjlhCisjZGVmaW5lIG1tT1RHMF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzBfT1RHX1NQQVJFX1JFR0lTVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWI5YworI2RlZmluZSBtbU9URzBfT1RHX1NQQVJFX1JFR0lTVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHRjX290ZzFfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDIwMAorI2RlZmluZSBtbU9URzFfT1RHX0hfVE9UQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJhYQorI2RlZmluZSBtbU9URzFfT1RHX0hfVE9UQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19IX0JMQU5LX1NUQVJUX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYWIKKyNkZWZpbmUgbW1PVEcxX09UR19IX0JMQU5LX1NUQVJUX0VORF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfSF9TWU5DX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmFjCisjZGVmaW5lIG1tT1RHMV9PVEdfSF9TWU5DX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0hfU1lOQ19BX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJhZAorI2RlZmluZSBtbU9URzFfT1RHX0hfU1lOQ19BX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19IX1RJTUlOR19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYWUKKyNkZWZpbmUgbW1PVEcxX09UR19IX1RJTUlOR19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVl9UT1RBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmFmCisjZGVmaW5lIG1tT1RHMV9PVEdfVl9UT1RBTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1ZfVE9UQUxfTUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJiMAorI2RlZmluZSBtbU9URzFfT1RHX1ZfVE9UQUxfTUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19WX1RPVEFMX01BWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYjEKKyNkZWZpbmUgbW1PVEcxX09UR19WX1RPVEFMX01BWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVl9UT1RBTF9NSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmIyCisjZGVmaW5lIG1tT1RHMV9PVEdfVl9UT1RBTF9NSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1ZfVE9UQUxfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJiMworI2RlZmluZSBtbU9URzFfT1RHX1ZfVE9UQUxfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19WX1RPVEFMX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYjQKKyNkZWZpbmUgbW1PVEcxX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmI1CisjZGVmaW5lIG1tT1RHMV9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1ZfQkxBTktfU1RBUlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJiNgorI2RlZmluZSBtbU9URzFfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19WX1NZTkNfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYjcKKyNkZWZpbmUgbW1PVEcxX09UR19WX1NZTkNfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVl9TWU5DX0FfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmI4CisjZGVmaW5lIG1tT1RHMV9PVEdfVl9TWU5DX0FfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1RSSUdBX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJiOQorI2RlZmluZSBtbU9URzFfT1RHX1RSSUdBX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19UUklHQV9NQU5VQUxfVFJJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYmEKKyNkZWZpbmUgbW1PVEcxX09UR19UUklHQV9NQU5VQUxfVFJJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVFJJR0JfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmJiCisjZGVmaW5lIG1tT1RHMV9PVEdfVFJJR0JfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1RSSUdCX01BTlVBTF9UUklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJiYworI2RlZmluZSBtbU9URzFfT1RHX1RSSUdCX01BTlVBTF9UUklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYmQKKyNkZWZpbmUgbW1PVEcxX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfRkxPV19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmJlCisjZGVmaW5lIG1tT1RHMV9PVEdfRkxPV19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJiZgorI2RlZmluZSBtbU9URzFfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYzEKKyNkZWZpbmUgbW1PVEcxX09UR19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQkxBTktfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmMyCisjZGVmaW5lIG1tT1RHMV9PVEdfQkxBTktfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJjMworI2RlZmluZSBtbU9URzFfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19JTlRFUkxBQ0VfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYzQKKyNkZWZpbmUgbW1PVEcxX09UR19JTlRFUkxBQ0VfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfSU5URVJMQUNFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmM1CisjZGVmaW5lIG1tT1RHMV9PVEdfSU5URVJMQUNFX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJjNworI2RlZmluZSBtbU9URzFfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiYzgKKyNkZWZpbmUgbW1PVEcxX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmM5CisjZGVmaW5lIG1tT1RHMV9PVEdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1NUQVRVU19QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJjYQorI2RlZmluZSBtbU9URzFfT1RHX1NUQVRVU19QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19OT01fVkVSVF9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiY2IKKyNkZWZpbmUgbW1PVEcxX09UR19OT01fVkVSVF9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmNjCisjZGVmaW5lIG1tT1RHMV9PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1NUQVRVU19WRl9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJjZAorI2RlZmluZSBtbU9URzFfT1RHX1NUQVRVU19WRl9DT1VOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19TVEFUVVNfSFZfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiY2UKKyNkZWZpbmUgbW1PVEcxX09UR19TVEFUVVNfSFZfQ09VTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQ09VTlRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmNmCisjZGVmaW5lIG1tT1RHMV9PVEdfQ09VTlRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0NPVU5UX1JFU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJkMAorI2RlZmluZSBtbU9URzFfT1RHX0NPVU5UX1JFU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZDEKKyNkZWZpbmUgbW1PVEcxX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVkVSVF9TWU5DX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmQyCisjZGVmaW5lIG1tT1RHMV9PVEdfVkVSVF9TWU5DX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1NURVJFT19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJkMworI2RlZmluZSBtbU9URzFfT1RHX1NURVJFT19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19TVEVSRU9fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZDQKKyNkZWZpbmUgbW1PVEcxX09UR19TVEVSRU9fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfU05BUFNIT1RfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmQ1CisjZGVmaW5lIG1tT1RHMV9PVEdfU05BUFNIT1RfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1NOQVBTSE9UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJkNgorI2RlZmluZSBtbU9URzFfT1RHX1NOQVBTSE9UX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19TTkFQU0hPVF9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZDcKKyNkZWZpbmUgbW1PVEcxX09UR19TTkFQU0hPVF9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfU05BUFNIT1RfRlJBTUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmQ4CisjZGVmaW5lIG1tT1RHMV9PVEdfU05BUFNIT1RfRlJBTUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJkOQorI2RlZmluZSBtbU9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19VUERBVEVfTE9DSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZGEKKyNkZWZpbmUgbW1PVEcxX09UR19VUERBVEVfTE9DS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmRiCisjZGVmaW5lIG1tT1RHMV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX01BU1RFUl9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJkYworI2RlZmluZSBtbU9URzFfT1RHX01BU1RFUl9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19CTEFOS19EQVRBX0NPTE9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZGUKKyNkZWZpbmUgbW1PVEcxX09UR19CTEFOS19EQVRBX0NPTE9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmRmCisjZGVmaW5lIG1tT1RHMV9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0JMQUNLX0NPTE9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJlMAorI2RlZmluZSBtbU9URzFfT1RHX0JMQUNLX0NPTE9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19CTEFDS19DT0xPUl9FWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZTEKKyNkZWZpbmUgbW1PVEcxX09UR19CTEFDS19DT0xPUl9FWFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmUyCisjZGVmaW5lIG1tT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJlMworI2RlZmluZSBtbU9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZTQKKyNkZWZpbmUgbW1PVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmU1CisjZGVmaW5lIG1tT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJlNgorI2RlZmluZSBtbU9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZTcKKyNkZWZpbmUgbW1PVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmU4CisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0NSQ19DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJlOQorI2RlZmluZSBtbU9URzFfT1RHX0NSQ19DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZWEKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmViCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJlYworI2RlZmluZSBtbU9URzFfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZWQKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMF9EQVRBX1JHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmVlCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMF9EQVRBX1JHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0NSQzBfREFUQV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJlZgorI2RlZmluZSBtbU9URzFfT1RHX0NSQzBfREFUQV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZjAKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmYxCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJmMgorI2RlZmluZSBtbU9URzFfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZjMKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMV9EQVRBX1JHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmY0CisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMV9EQVRBX1JHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0NSQzFfREFUQV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJmNQorI2RlZmluZSBtbU9URzFfT1RHX0NSQzFfREFUQV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMyX0RBVEFfUkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZjYKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMyX0RBVEFfUkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMl9EQVRBX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmY3CisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDMl9EQVRBX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0NSQzNfREFUQV9SRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJmOAorI2RlZmluZSBtbU9URzFfT1RHX0NSQzNfREFUQV9SR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMzX0RBVEFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiZjkKKyNkZWZpbmUgbW1PVEcxX09UR19DUkMzX0RBVEFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYmZhCisjZGVmaW5lIG1tT1RHMV9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWJmYgorI2RlZmluZSBtbU9URzFfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMDIKKyNkZWZpbmUgbW1PVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzAzCisjZGVmaW5lIG1tT1RHMV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0dTTF9WU1lOQ19HQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMwNAorI2RlZmluZSBtbU9URzFfT1RHX0dTTF9WU1lOQ19HQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19NQVNURVJfVVBEQVRFX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMDUKKyNkZWZpbmUgbW1PVEcxX09UR19NQVNURVJfVVBEQVRFX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfQ0xPQ0tfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzA2CisjZGVmaW5lIG1tT1RHMV9PVEdfQ0xPQ0tfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1ZTVEFSVFVQX1BBUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMwNworI2RlZmluZSBtbU9URzFfT1RHX1ZTVEFSVFVQX1BBUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19WVVBEQVRFX1BBUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMDgKKyNkZWZpbmUgbW1PVEcxX09UR19WVVBEQVRFX1BBUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVlJFQURZX1BBUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzA5CisjZGVmaW5lIG1tT1RHMV9PVEdfVlJFQURZX1BBUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMwYQorI2RlZmluZSBtbU9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19NQVNURVJfVVBEQVRFX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMGIKKyNkZWZpbmUgbW1PVEcxX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfR1NMX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzBjCisjZGVmaW5lIG1tT1RHMV9PVEdfR1NMX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0dTTF9XSU5ET1dfWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMwZAorI2RlZmluZSBtbU9URzFfT1RHX0dTTF9XSU5ET1dfWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19HU0xfV0lORE9XX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMGUKKyNkZWZpbmUgbW1PVEcxX09UR19HU0xfV0lORE9XX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfVlVQREFURV9LRUVQT1VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzBmCisjZGVmaW5lIG1tT1RHMV9PVEdfVlVQREFURV9LRUVQT1VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0dMT0JBTF9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMxMAorI2RlZmluZSBtbU9URzFfT1RHX0dMT0JBTF9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19HTE9CQUxfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMTEKKyNkZWZpbmUgbW1PVEcxX09UR19HTE9CQUxfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzEyCisjZGVmaW5lIG1tT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0dMT0JBTF9DT05UUk9MMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMxMworI2RlZmluZSBtbU9URzFfT1RHX0dMT0JBTF9DT05UUk9MM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19UUklHX01BTlVBTF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMTQKKyNkZWZpbmUgbW1PVEcxX09UR19UUklHX01BTlVBTF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzE1CisjZGVmaW5lIG1tT1RHMV9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMxNgorI2RlZmluZSBtbU9URzFfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19EUlJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMTcKKyNkZWZpbmUgbW1PVEcxX09UR19EUlJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfUkVRVUVTVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzE4CisjZGVmaW5lIG1tT1RHMV9PVEdfUkVRVUVTVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzFfT1RHX0RTQ19TVEFSVF9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMxOQorI2RlZmluZSBtbU9URzFfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcxX09UR19QSVBFX1VQREFURV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMWEKKyNkZWZpbmUgbW1PVEcxX09UR19QSVBFX1VQREFURV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMV9PVEdfU1BBUkVfUkVHSVNURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzFjCisjZGVmaW5lIG1tT1RHMV9PVEdfU1BBUkVfUkVHSVNURVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb3RnMl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NDAwCisjZGVmaW5lIG1tT1RHMl9PVEdfSF9UT1RBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzJhCisjZGVmaW5lIG1tT1RHMl9PVEdfSF9UT1RBTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0hfQkxBTktfU1RBUlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMyYgorI2RlZmluZSBtbU9URzJfT1RHX0hfQkxBTktfU1RBUlRfRU5EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19IX1NZTkNfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMmMKKyNkZWZpbmUgbW1PVEcyX09UR19IX1NZTkNfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfSF9TWU5DX0FfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzJkCisjZGVmaW5lIG1tT1RHMl9PVEdfSF9TWU5DX0FfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0hfVElNSU5HX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMyZQorI2RlZmluZSBtbU9URzJfT1RHX0hfVElNSU5HX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19WX1RPVEFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMmYKKyNkZWZpbmUgbW1PVEcyX09UR19WX1RPVEFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfVl9UT1RBTF9NSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzMwCisjZGVmaW5lIG1tT1RHMl9PVEdfVl9UT1RBTF9NSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1ZfVE9UQUxfTUFYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMzMQorI2RlZmluZSBtbU9URzJfT1RHX1ZfVE9UQUxfTUFYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19WX1RPVEFMX01JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMzIKKyNkZWZpbmUgbW1PVEcyX09UR19WX1RPVEFMX01JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfVl9UT1RBTF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzMzCisjZGVmaW5lIG1tT1RHMl9PVEdfVl9UT1RBTF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMzNAorI2RlZmluZSBtbU9URzJfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19WU1lOQ19OT01fSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMzUKKyNkZWZpbmUgbW1PVEcyX09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfVl9CTEFOS19TVEFSVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzM2CisjZGVmaW5lIG1tT1RHMl9PVEdfVl9CTEFOS19TVEFSVF9FTkRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1ZfU1lOQ19BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMzNworI2RlZmluZSBtbU9URzJfT1RHX1ZfU1lOQ19BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19WX1NZTkNfQV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjMzgKKyNkZWZpbmUgbW1PVEcyX09UR19WX1NZTkNfQV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfVFJJR0FfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzM5CisjZGVmaW5lIG1tT1RHMl9PVEdfVFJJR0FfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1RSSUdBX01BTlVBTF9UUklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMzYQorI2RlZmluZSBtbU9URzJfT1RHX1RSSUdBX01BTlVBTF9UUklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19UUklHQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjM2IKKyNkZWZpbmUgbW1PVEcyX09UR19UUklHQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfVFJJR0JfTUFOVUFMX1RSSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzNjCisjZGVmaW5lIG1tT1RHMl9PVEdfVFJJR0JfTUFOVUFMX1RSSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMzZAorI2RlZmluZSBtbU9URzJfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19GTE9XX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjM2UKKyNkZWZpbmUgbW1PVEcyX09UR19GTE9XX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzNmCisjZGVmaW5lIG1tT1RHMl9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM0MQorI2RlZmluZSBtbU9URzJfT1RHX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19CTEFOS19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNDIKKyNkZWZpbmUgbW1PVEcyX09UR19CTEFOS19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfUElQRV9BQk9SVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzQzCisjZGVmaW5lIG1tT1RHMl9PVEdfUElQRV9BQk9SVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0lOVEVSTEFDRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM0NAorI2RlZmluZSBtbU9URzJfT1RHX0lOVEVSTEFDRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19JTlRFUkxBQ0VfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNDUKKyNkZWZpbmUgbW1PVEcyX09UR19JTlRFUkxBQ0VfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzQ3CisjZGVmaW5lIG1tT1RHMl9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM0OAorI2RlZmluZSBtbU9URzJfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNDkKKyNkZWZpbmUgbW1PVEcyX09UR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfU1RBVFVTX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzRhCisjZGVmaW5lIG1tT1RHMl9PVEdfU1RBVFVTX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX05PTV9WRVJUX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM0YgorI2RlZmluZSBtbU9URzJfT1RHX05PTV9WRVJUX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19TVEFUVVNfRlJBTUVfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNGMKKyNkZWZpbmUgbW1PVEcyX09UR19TVEFUVVNfRlJBTUVfQ09VTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfU1RBVFVTX1ZGX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzRkCisjZGVmaW5lIG1tT1RHMl9PVEdfU1RBVFVTX1ZGX0NPVU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1NUQVRVU19IVl9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM0ZQorI2RlZmluZSBtbU9URzJfT1RHX1NUQVRVU19IVl9DT1VOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19DT1VOVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNGYKKyNkZWZpbmUgbW1PVEcyX09UR19DT1VOVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfQ09VTlRfUkVTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzUwCisjZGVmaW5lIG1tT1RHMl9PVEdfQ09VTlRfUkVTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM1MQorI2RlZmluZSBtbU9URzJfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19WRVJUX1NZTkNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNTIKKyNkZWZpbmUgbW1PVEcyX09UR19WRVJUX1NZTkNfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfU1RFUkVPX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzUzCisjZGVmaW5lIG1tT1RHMl9PVEdfU1RFUkVPX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1NURVJFT19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM1NAorI2RlZmluZSBtbU9URzJfT1RHX1NURVJFT19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19TTkFQU0hPVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNTUKKyNkZWZpbmUgbW1PVEcyX09UR19TTkFQU0hPVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfU05BUFNIT1RfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzU2CisjZGVmaW5lIG1tT1RHMl9PVEdfU05BUFNIT1RfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1NOQVBTSE9UX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM1NworI2RlZmluZSBtbU9URzJfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19TTkFQU0hPVF9GUkFNRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNTgKKyNkZWZpbmUgbW1PVEcyX09UR19TTkFQU0hPVF9GUkFNRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfSU5URVJSVVBUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzU5CisjZGVmaW5lIG1tT1RHMl9PVEdfSU5URVJSVVBUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1VQREFURV9MT0NLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM1YQorI2RlZmluZSBtbU9URzJfT1RHX1VQREFURV9MT0NLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNWIKKyNkZWZpbmUgbW1PVEcyX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfTUFTVEVSX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzVjCisjZGVmaW5lIG1tT1RHMl9PVEdfTUFTVEVSX0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0JMQU5LX0RBVEFfQ09MT1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM1ZQorI2RlZmluZSBtbU9URzJfT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNWYKKyNkZWZpbmUgbW1PVEcyX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfQkxBQ0tfQ09MT1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzYwCisjZGVmaW5lIG1tT1RHMl9PVEdfQkxBQ0tfQ09MT1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0JMQUNLX0NPTE9SX0VYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM2MQorI2RlZmluZSBtbU9URzJfT1RHX0JMQUNLX0NPTE9SX0VYVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNjIKKyNkZWZpbmUgbW1PVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzYzCisjZGVmaW5lIG1tT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM2NAorI2RlZmluZSBtbU9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNjUKKyNkZWZpbmUgbW1PVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzY2CisjZGVmaW5lIG1tT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM2NworI2RlZmluZSBtbU9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19DUkNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNjgKKyNkZWZpbmUgbW1PVEcyX09UR19DUkNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzY5CisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM2YQorI2RlZmluZSBtbU9URzJfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNmIKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzZjCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM2ZAorI2RlZmluZSBtbU9URzJfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMwX0RBVEFfUkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNmUKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMwX0RBVEFfUkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDMF9EQVRBX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzZmCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDMF9EQVRBX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM3MAorI2RlZmluZSBtbU9URzJfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNzEKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzcyCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM3MworI2RlZmluZSBtbU9URzJfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMxX0RBVEFfUkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNzQKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMxX0RBVEFfUkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDMV9EQVRBX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzc1CisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDMV9EQVRBX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0NSQzJfREFUQV9SRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM3NgorI2RlZmluZSBtbU9URzJfT1RHX0NSQzJfREFUQV9SR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMyX0RBVEFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjNzcKKyNkZWZpbmUgbW1PVEcyX09UR19DUkMyX0RBVEFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDM19EQVRBX1JHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzc4CisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDM19EQVRBX1JHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0NSQzNfREFUQV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM3OQorI2RlZmluZSBtbU9URzJfT1RHX0NSQzNfREFUQV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjN2EKKyNkZWZpbmUgbW1PVEcyX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzdiCisjZGVmaW5lIG1tT1RHMl9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM4MgorI2RlZmluZSBtbU9URzJfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjODMKKyNkZWZpbmUgbW1PVEcyX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfR1NMX1ZTWU5DX0dBUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzg0CisjZGVmaW5lIG1tT1RHMl9PVEdfR1NMX1ZTWU5DX0dBUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX01BU1RFUl9VUERBVEVfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM4NQorI2RlZmluZSBtbU9URzJfT1RHX01BU1RFUl9VUERBVEVfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19DTE9DS19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjODYKKyNkZWZpbmUgbW1PVEcyX09UR19DTE9DS19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfVlNUQVJUVVBfUEFSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzg3CisjZGVmaW5lIG1tT1RHMl9PVEdfVlNUQVJUVVBfUEFSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1ZVUERBVEVfUEFSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM4OAorI2RlZmluZSBtbU9URzJfT1RHX1ZVUERBVEVfUEFSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19WUkVBRFlfUEFSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjODkKKyNkZWZpbmUgbW1PVEcyX09UR19WUkVBRFlfUEFSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzhhCisjZGVmaW5lIG1tT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX01BU1RFUl9VUERBVEVfTE9DSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM4YgorI2RlZmluZSBtbU9URzJfT1RHX01BU1RFUl9VUERBVEVfTE9DS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19HU0xfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjOGMKKyNkZWZpbmUgbW1PVEcyX09UR19HU0xfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfR1NMX1dJTkRPV19YICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzhkCisjZGVmaW5lIG1tT1RHMl9PVEdfR1NMX1dJTkRPV19YX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0dTTF9XSU5ET1dfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM4ZQorI2RlZmluZSBtbU9URzJfT1RHX0dTTF9XSU5ET1dfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19WVVBEQVRFX0tFRVBPVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjOGYKKyNkZWZpbmUgbW1PVEcyX09UR19WVVBEQVRFX0tFRVBPVVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzkwCisjZGVmaW5lIG1tT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0dMT0JBTF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM5MQorI2RlZmluZSBtbU9URzJfT1RHX0dMT0JBTF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19HTE9CQUxfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjOTIKKyNkZWZpbmUgbW1PVEcyX09UR19HTE9CQUxfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzkzCisjZGVmaW5lIG1tT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM5NAorI2RlZmluZSBtbU9URzJfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19NQU5VQUxfRkxPV19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjOTUKKyNkZWZpbmUgbW1PVEcyX09UR19NQU5VQUxfRkxPV19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzk2CisjZGVmaW5lIG1tT1RHMl9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX0RSUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM5NworI2RlZmluZSBtbU9URzJfT1RHX0RSUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19SRVFVRVNUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjOTgKKyNkZWZpbmUgbW1PVEcyX09UR19SRVFVRVNUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHMl9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYzk5CisjZGVmaW5lIG1tT1RHMl9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWM5YQorI2RlZmluZSBtbU9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEcyX09UR19TUEFSRV9SRUdJU1RFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjOWMKKyNkZWZpbmUgbW1PVEcyX09UR19TUEFSRV9SRUdJU1RFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vdGczX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2MDAKKyNkZWZpbmUgbW1PVEczX09UR19IX1RPVEFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYWEKKyNkZWZpbmUgbW1PVEczX09UR19IX1RPVEFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfSF9CTEFOS19TVEFSVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2FiCisjZGVmaW5lIG1tT1RHM19PVEdfSF9CTEFOS19TVEFSVF9FTkRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0hfU1lOQ19BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNhYworI2RlZmluZSBtbU9URzNfT1RHX0hfU1lOQ19BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19IX1NZTkNfQV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYWQKKyNkZWZpbmUgbW1PVEczX09UR19IX1NZTkNfQV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfSF9USU1JTkdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2FlCisjZGVmaW5lIG1tT1RHM19PVEdfSF9USU1JTkdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1ZfVE9UQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNhZgorI2RlZmluZSBtbU9URzNfT1RHX1ZfVE9UQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19WX1RPVEFMX01JTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYjAKKyNkZWZpbmUgbW1PVEczX09UR19WX1RPVEFMX01JTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfVl9UT1RBTF9NQVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2IxCisjZGVmaW5lIG1tT1RHM19PVEdfVl9UT1RBTF9NQVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1ZfVE9UQUxfTUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNiMgorI2RlZmluZSBtbU9URzNfT1RHX1ZfVE9UQUxfTUlEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19WX1RPVEFMX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYjMKKyNkZWZpbmUgbW1PVEczX09UR19WX1RPVEFMX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfVl9UT1RBTF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2I0CisjZGVmaW5lIG1tT1RHM19PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNiNQorI2RlZmluZSBtbU9URzNfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19WX0JMQU5LX1NUQVJUX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYjYKKyNkZWZpbmUgbW1PVEczX09UR19WX0JMQU5LX1NUQVJUX0VORF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfVl9TWU5DX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2I3CisjZGVmaW5lIG1tT1RHM19PVEdfVl9TWU5DX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1ZfU1lOQ19BX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNiOAorI2RlZmluZSBtbU9URzNfT1RHX1ZfU1lOQ19BX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19UUklHQV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYjkKKyNkZWZpbmUgbW1PVEczX09UR19UUklHQV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfVFJJR0FfTUFOVUFMX1RSSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2JhCisjZGVmaW5lIG1tT1RHM19PVEdfVFJJR0FfTUFOVUFMX1RSSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1RSSUdCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNiYgorI2RlZmluZSBtbU9URzNfT1RHX1RSSUdCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19UUklHQl9NQU5VQUxfVFJJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYmMKKyNkZWZpbmUgbW1PVEczX09UR19UUklHQl9NQU5VQUxfVFJJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2JkCisjZGVmaW5lIG1tT1RHM19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0ZMT1dfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNiZQorI2RlZmluZSBtbU9URzNfT1RHX0ZMT1dfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYmYKKyNkZWZpbmUgbW1PVEczX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2MxCisjZGVmaW5lIG1tT1RHM19PVEdfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0JMQU5LX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNjMgorI2RlZmluZSBtbU9URzNfT1RHX0JMQU5LX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19QSVBFX0FCT1JUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYzMKKyNkZWZpbmUgbW1PVEczX09UR19QSVBFX0FCT1JUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfSU5URVJMQUNFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2M0CisjZGVmaW5lIG1tT1RHM19PVEdfSU5URVJMQUNFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0lOVEVSTEFDRV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNjNQorI2RlZmluZSBtbU9URzNfT1RHX0lOVEVSTEFDRV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjYzcKKyNkZWZpbmUgbW1PVEczX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfUElYRUxfREFUQV9SRUFEQkFDSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2M4CisjZGVmaW5lIG1tT1RHM19PVEdfUElYRUxfREFUQV9SRUFEQkFDSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNjOQorI2RlZmluZSBtbU9URzNfT1RHX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19TVEFUVVNfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjY2EKKyNkZWZpbmUgbW1PVEczX09UR19TVEFUVVNfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfTk9NX1ZFUlRfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2NiCisjZGVmaW5lIG1tT1RHM19PVEdfTk9NX1ZFUlRfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1NUQVRVU19GUkFNRV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNjYworI2RlZmluZSBtbU9URzNfT1RHX1NUQVRVU19GUkFNRV9DT1VOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19TVEFUVVNfVkZfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjY2QKKyNkZWZpbmUgbW1PVEczX09UR19TVEFUVVNfVkZfQ09VTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfU1RBVFVTX0hWX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2NlCisjZGVmaW5lIG1tT1RHM19PVEdfU1RBVFVTX0hWX0NPVU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0NPVU5UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNjZgorI2RlZmluZSBtbU9URzNfT1RHX0NPVU5UX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19DT1VOVF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZDAKKyNkZWZpbmUgbW1PVEczX09UR19DT1VOVF9SRVNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2QxCisjZGVmaW5lIG1tT1RHM19PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1ZFUlRfU1lOQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNkMgorI2RlZmluZSBtbU9URzNfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19TVEVSRU9fU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZDMKKyNkZWZpbmUgbW1PVEczX09UR19TVEVSRU9fU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfU1RFUkVPX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2Q0CisjZGVmaW5lIG1tT1RHM19PVEdfU1RFUkVPX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1NOQVBTSE9UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNkNQorI2RlZmluZSBtbU9URzNfT1RHX1NOQVBTSE9UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19TTkFQU0hPVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZDYKKyNkZWZpbmUgbW1PVEczX09UR19TTkFQU0hPVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfU05BUFNIT1RfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2Q3CisjZGVmaW5lIG1tT1RHM19PVEdfU05BUFNIT1RfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1NOQVBTSE9UX0ZSQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNkOAorI2RlZmluZSBtbU9URzNfT1RHX1NOQVBTSE9UX0ZSQU1FX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19JTlRFUlJVUFRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZDkKKyNkZWZpbmUgbW1PVEczX09UR19JTlRFUlJVUFRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfVVBEQVRFX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2RhCisjZGVmaW5lIG1tT1RHM19PVEdfVVBEQVRFX0xPQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNkYgorI2RlZmluZSBtbU9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19NQVNURVJfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZGMKKyNkZWZpbmUgbW1PVEczX09UR19NQVNURVJfRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfQkxBTktfREFUQV9DT0xPUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2RlCisjZGVmaW5lIG1tT1RHM19PVEdfQkxBTktfREFUQV9DT0xPUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNkZgorI2RlZmluZSBtbU9URzNfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19CTEFDS19DT0xPUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZTAKKyNkZWZpbmUgbW1PVEczX09UR19CTEFDS19DT0xPUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfQkxBQ0tfQ09MT1JfRVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2UxCisjZGVmaW5lIG1tT1RHM19PVEdfQkxBQ0tfQ09MT1JfRVhUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNlMgorI2RlZmluZSBtbU9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZTMKKyNkZWZpbmUgbW1PVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2U0CisjZGVmaW5lIG1tT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNlNQorI2RlZmluZSBtbU9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZTYKKyNkZWZpbmUgbW1PVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2U3CisjZGVmaW5lIG1tT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0NSQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNlOAorI2RlZmluZSBtbU9URzNfT1RHX0NSQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19DUkNfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZTkKKyNkZWZpbmUgbW1PVEczX09UR19DUkNfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2VhCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNlYgorI2RlZmluZSBtbU9URzNfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZWMKKyNkZWZpbmUgbW1PVEczX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2VkCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0NSQzBfREFUQV9SRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNlZQorI2RlZmluZSBtbU9URzNfT1RHX0NSQzBfREFUQV9SR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19DUkMwX0RBVEFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZWYKKyNkZWZpbmUgbW1PVEczX09UR19DUkMwX0RBVEFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2YwCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNmMQorI2RlZmluZSBtbU9URzNfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZjIKKyNkZWZpbmUgbW1PVEczX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2YzCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0NSQzFfREFUQV9SRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNmNAorI2RlZmluZSBtbU9URzNfT1RHX0NSQzFfREFUQV9SR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19DUkMxX0RBVEFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZjUKKyNkZWZpbmUgbW1PVEczX09UR19DUkMxX0RBVEFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMl9EQVRBX1JHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2Y2CisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDMl9EQVRBX1JHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0NSQzJfREFUQV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNmNworI2RlZmluZSBtbU9URzNfT1RHX0NSQzJfREFUQV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19DUkMzX0RBVEFfUkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZjgKKyNkZWZpbmUgbW1PVEczX09UR19DUkMzX0RBVEFfUkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDM19EQVRBX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxY2Y5CisjZGVmaW5lIG1tT1RHM19PVEdfQ1JDM19EQVRBX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWNmYQorI2RlZmluZSBtbU9URzNfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjZmIKKyNkZWZpbmUgbW1PVEczX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDAyCisjZGVmaW5lIG1tT1RHM19PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQwMworI2RlZmluZSBtbU9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19HU0xfVlNZTkNfR0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMDQKKyNkZWZpbmUgbW1PVEczX09UR19HU0xfVlNZTkNfR0FQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfTUFTVEVSX1VQREFURV9NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDA1CisjZGVmaW5lIG1tT1RHM19PVEdfTUFTVEVSX1VQREFURV9NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0NMT0NLX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQwNgorI2RlZmluZSBtbU9URzNfT1RHX0NMT0NLX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19WU1RBUlRVUF9QQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMDcKKyNkZWZpbmUgbW1PVEczX09UR19WU1RBUlRVUF9QQVJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfVlVQREFURV9QQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDA4CisjZGVmaW5lIG1tT1RHM19PVEdfVlVQREFURV9QQVJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1ZSRUFEWV9QQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQwOQorI2RlZmluZSBtbU9URzNfT1RHX1ZSRUFEWV9QQVJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMGEKKyNkZWZpbmUgbW1PVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfTUFTVEVSX1VQREFURV9MT0NLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDBiCisjZGVmaW5lIG1tT1RHM19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0dTTF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQwYworI2RlZmluZSBtbU9URzNfT1RHX0dTTF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19HU0xfV0lORE9XX1ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMGQKKyNkZWZpbmUgbW1PVEczX09UR19HU0xfV0lORE9XX1hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfR1NMX1dJTkRPV19ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDBlCisjZGVmaW5lIG1tT1RHM19PVEdfR1NMX1dJTkRPV19ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1ZVUERBVEVfS0VFUE9VVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQwZgorI2RlZmluZSBtbU9URzNfT1RHX1ZVUERBVEVfS0VFUE9VVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19HTE9CQUxfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMTAKKyNkZWZpbmUgbW1PVEczX09UR19HTE9CQUxfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfR0xPQkFMX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDExCisjZGVmaW5lIG1tT1RHM19PVEdfR0xPQkFMX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX0dMT0JBTF9DT05UUk9MMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQxMgorI2RlZmluZSBtbU9URzNfT1RHX0dMT0JBTF9DT05UUk9MMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19HTE9CQUxfQ09OVFJPTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMTMKKyNkZWZpbmUgbW1PVEczX09UR19HTE9CQUxfQ09OVFJPTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfVFJJR19NQU5VQUxfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDE0CisjZGVmaW5lIG1tT1RHM19PVEdfVFJJR19NQU5VQUxfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX01BTlVBTF9GTE9XX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQxNQorI2RlZmluZSBtbU9URzNfT1RHX01BTlVBTF9GTE9XX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMTYKKyNkZWZpbmUgbW1PVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfRFJSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDE3CisjZGVmaW5lIG1tT1RHM19PVEdfRFJSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1JFUVVFU1RfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQxOAorI2RlZmluZSBtbU9URzNfT1RHX1JFUVVFU1RfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEczX09UR19EU0NfU1RBUlRfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMTkKKyNkZWZpbmUgbW1PVEczX09UR19EU0NfU1RBUlRfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHM19PVEdfUElQRV9VUERBVEVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDFhCisjZGVmaW5lIG1tT1RHM19PVEdfUElQRV9VUERBVEVfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzNfT1RHX1NQQVJFX1JFR0lTVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQxYworI2RlZmluZSBtbU9URzNfT1RHX1NQQVJFX1JFR0lTVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHRjX290ZzRfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDgwMAorI2RlZmluZSBtbU9URzRfT1RHX0hfVE9UQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQyYQorI2RlZmluZSBtbU9URzRfT1RHX0hfVE9UQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19IX0JMQU5LX1NUQVJUX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMmIKKyNkZWZpbmUgbW1PVEc0X09UR19IX0JMQU5LX1NUQVJUX0VORF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfSF9TWU5DX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDJjCisjZGVmaW5lIG1tT1RHNF9PVEdfSF9TWU5DX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0hfU1lOQ19BX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQyZAorI2RlZmluZSBtbU9URzRfT1RHX0hfU1lOQ19BX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19IX1RJTUlOR19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMmUKKyNkZWZpbmUgbW1PVEc0X09UR19IX1RJTUlOR19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVl9UT1RBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDJmCisjZGVmaW5lIG1tT1RHNF9PVEdfVl9UT1RBTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1ZfVE9UQUxfTUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQzMAorI2RlZmluZSBtbU9URzRfT1RHX1ZfVE9UQUxfTUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19WX1RPVEFMX01BWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMzEKKyNkZWZpbmUgbW1PVEc0X09UR19WX1RPVEFMX01BWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVl9UT1RBTF9NSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDMyCisjZGVmaW5lIG1tT1RHNF9PVEdfVl9UT1RBTF9NSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1ZfVE9UQUxfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQzMworI2RlZmluZSBtbU9URzRfT1RHX1ZfVE9UQUxfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19WX1RPVEFMX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMzQKKyNkZWZpbmUgbW1PVEc0X09UR19WX1RPVEFMX0lOVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDM1CisjZGVmaW5lIG1tT1RHNF9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1ZfQkxBTktfU1RBUlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQzNgorI2RlZmluZSBtbU9URzRfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19WX1NZTkNfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkMzcKKyNkZWZpbmUgbW1PVEc0X09UR19WX1NZTkNfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVl9TWU5DX0FfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDM4CisjZGVmaW5lIG1tT1RHNF9PVEdfVl9TWU5DX0FfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1RSSUdBX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQzOQorI2RlZmluZSBtbU9URzRfT1RHX1RSSUdBX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19UUklHQV9NQU5VQUxfVFJJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkM2EKKyNkZWZpbmUgbW1PVEc0X09UR19UUklHQV9NQU5VQUxfVFJJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVFJJR0JfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDNiCisjZGVmaW5lIG1tT1RHNF9PVEdfVFJJR0JfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1RSSUdCX01BTlVBTF9UUklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQzYworI2RlZmluZSBtbU9URzRfT1RHX1RSSUdCX01BTlVBTF9UUklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkM2QKKyNkZWZpbmUgbW1PVEc0X09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfRkxPV19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDNlCisjZGVmaW5lIG1tT1RHNF9PVEdfRkxPV19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQzZgorI2RlZmluZSBtbU9URzRfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNDEKKyNkZWZpbmUgbW1PVEc0X09UR19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQkxBTktfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDQyCisjZGVmaW5lIG1tT1RHNF9PVEdfQkxBTktfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ0MworI2RlZmluZSBtbU9URzRfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19JTlRFUkxBQ0VfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNDQKKyNkZWZpbmUgbW1PVEc0X09UR19JTlRFUkxBQ0VfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfSU5URVJMQUNFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDQ1CisjZGVmaW5lIG1tT1RHNF9PVEdfSU5URVJMQUNFX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ0NworI2RlZmluZSBtbU9URzRfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNDgKKyNkZWZpbmUgbW1PVEc0X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDQ5CisjZGVmaW5lIG1tT1RHNF9PVEdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1NUQVRVU19QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ0YQorI2RlZmluZSBtbU9URzRfT1RHX1NUQVRVU19QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19OT01fVkVSVF9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNGIKKyNkZWZpbmUgbW1PVEc0X09UR19OT01fVkVSVF9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDRjCisjZGVmaW5lIG1tT1RHNF9PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1NUQVRVU19WRl9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ0ZAorI2RlZmluZSBtbU9URzRfT1RHX1NUQVRVU19WRl9DT1VOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19TVEFUVVNfSFZfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNGUKKyNkZWZpbmUgbW1PVEc0X09UR19TVEFUVVNfSFZfQ09VTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQ09VTlRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDRmCisjZGVmaW5lIG1tT1RHNF9PVEdfQ09VTlRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0NPVU5UX1JFU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ1MAorI2RlZmluZSBtbU9URzRfT1RHX0NPVU5UX1JFU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNTEKKyNkZWZpbmUgbW1PVEc0X09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVkVSVF9TWU5DX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDUyCisjZGVmaW5lIG1tT1RHNF9PVEdfVkVSVF9TWU5DX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1NURVJFT19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ1MworI2RlZmluZSBtbU9URzRfT1RHX1NURVJFT19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19TVEVSRU9fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNTQKKyNkZWZpbmUgbW1PVEc0X09UR19TVEVSRU9fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfU05BUFNIT1RfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDU1CisjZGVmaW5lIG1tT1RHNF9PVEdfU05BUFNIT1RfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1NOQVBTSE9UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ1NgorI2RlZmluZSBtbU9URzRfT1RHX1NOQVBTSE9UX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19TTkFQU0hPVF9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNTcKKyNkZWZpbmUgbW1PVEc0X09UR19TTkFQU0hPVF9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfU05BUFNIT1RfRlJBTUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDU4CisjZGVmaW5lIG1tT1RHNF9PVEdfU05BUFNIT1RfRlJBTUVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ1OQorI2RlZmluZSBtbU9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19VUERBVEVfTE9DSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNWEKKyNkZWZpbmUgbW1PVEc0X09UR19VUERBVEVfTE9DS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDViCisjZGVmaW5lIG1tT1RHNF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX01BU1RFUl9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ1YworI2RlZmluZSBtbU9URzRfT1RHX01BU1RFUl9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19CTEFOS19EQVRBX0NPTE9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNWUKKyNkZWZpbmUgbW1PVEc0X09UR19CTEFOS19EQVRBX0NPTE9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDVmCisjZGVmaW5lIG1tT1RHNF9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0JMQUNLX0NPTE9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ2MAorI2RlZmluZSBtbU9URzRfT1RHX0JMQUNLX0NPTE9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19CTEFDS19DT0xPUl9FWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNjEKKyNkZWZpbmUgbW1PVEc0X09UR19CTEFDS19DT0xPUl9FWFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDYyCisjZGVmaW5lIG1tT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ2MworI2RlZmluZSBtbU9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNjQKKyNkZWZpbmUgbW1PVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDY1CisjZGVmaW5lIG1tT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ2NgorI2RlZmluZSBtbU9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNjcKKyNkZWZpbmUgbW1PVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDY4CisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0NSQ19DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ2OQorI2RlZmluZSBtbU9URzRfT1RHX0NSQ19DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNmEKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDZiCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ2YworI2RlZmluZSBtbU9URzRfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNmQKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMF9EQVRBX1JHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDZlCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMF9EQVRBX1JHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0NSQzBfREFUQV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ2ZgorI2RlZmluZSBtbU9URzRfT1RHX0NSQzBfREFUQV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNzAKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDcxCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ3MgorI2RlZmluZSBtbU9URzRfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNzMKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMV9EQVRBX1JHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDc0CisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMV9EQVRBX1JHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0NSQzFfREFUQV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ3NQorI2RlZmluZSBtbU9URzRfT1RHX0NSQzFfREFUQV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMyX0RBVEFfUkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNzYKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMyX0RBVEFfUkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMl9EQVRBX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDc3CisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDMl9EQVRBX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0NSQzNfREFUQV9SRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ3OAorI2RlZmluZSBtbU9URzRfT1RHX0NSQzNfREFUQV9SR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMzX0RBVEFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkNzkKKyNkZWZpbmUgbW1PVEc0X09UR19DUkMzX0RBVEFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDdhCisjZGVmaW5lIG1tT1RHNF9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ3YgorI2RlZmluZSBtbU9URzRfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkODIKKyNkZWZpbmUgbW1PVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDgzCisjZGVmaW5lIG1tT1RHNF9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0dTTF9WU1lOQ19HQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ4NAorI2RlZmluZSBtbU9URzRfT1RHX0dTTF9WU1lOQ19HQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19NQVNURVJfVVBEQVRFX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkODUKKyNkZWZpbmUgbW1PVEc0X09UR19NQVNURVJfVVBEQVRFX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfQ0xPQ0tfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDg2CisjZGVmaW5lIG1tT1RHNF9PVEdfQ0xPQ0tfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1ZTVEFSVFVQX1BBUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ4NworI2RlZmluZSBtbU9URzRfT1RHX1ZTVEFSVFVQX1BBUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19WVVBEQVRFX1BBUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkODgKKyNkZWZpbmUgbW1PVEc0X09UR19WVVBEQVRFX1BBUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVlJFQURZX1BBUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDg5CisjZGVmaW5lIG1tT1RHNF9PVEdfVlJFQURZX1BBUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ4YQorI2RlZmluZSBtbU9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19NQVNURVJfVVBEQVRFX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkOGIKKyNkZWZpbmUgbW1PVEc0X09UR19NQVNURVJfVVBEQVRFX0xPQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfR1NMX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDhjCisjZGVmaW5lIG1tT1RHNF9PVEdfR1NMX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0dTTF9XSU5ET1dfWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ4ZAorI2RlZmluZSBtbU9URzRfT1RHX0dTTF9XSU5ET1dfWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19HU0xfV0lORE9XX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkOGUKKyNkZWZpbmUgbW1PVEc0X09UR19HU0xfV0lORE9XX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfVlVQREFURV9LRUVQT1VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDhmCisjZGVmaW5lIG1tT1RHNF9PVEdfVlVQREFURV9LRUVQT1VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0dMT0JBTF9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ5MAorI2RlZmluZSBtbU9URzRfT1RHX0dMT0JBTF9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19HTE9CQUxfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkOTEKKyNkZWZpbmUgbW1PVEc0X09UR19HTE9CQUxfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDkyCisjZGVmaW5lIG1tT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0dMT0JBTF9DT05UUk9MMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ5MworI2RlZmluZSBtbU9URzRfT1RHX0dMT0JBTF9DT05UUk9MM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19UUklHX01BTlVBTF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkOTQKKyNkZWZpbmUgbW1PVEc0X09UR19UUklHX01BTlVBTF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDk1CisjZGVmaW5lIG1tT1RHNF9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ5NgorI2RlZmluZSBtbU9URzRfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19EUlJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkOTcKKyNkZWZpbmUgbW1PVEc0X09UR19EUlJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfUkVRVUVTVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDk4CisjZGVmaW5lIG1tT1RHNF9PVEdfUkVRVUVTVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzRfT1RHX0RTQ19TVEFSVF9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQ5OQorI2RlZmluZSBtbU9URzRfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc0X09UR19QSVBFX1VQREFURV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkOWEKKyNkZWZpbmUgbW1PVEc0X09UR19QSVBFX1VQREFURV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNF9PVEdfU1BBUkVfUkVHSVNURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZDljCisjZGVmaW5lIG1tT1RHNF9PVEdfU1BBUkVfUkVHSVNURVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb3RnNV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YTAwCisjZGVmaW5lIG1tT1RHNV9PVEdfSF9UT1RBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGFhCisjZGVmaW5lIG1tT1RHNV9PVEdfSF9UT1RBTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0hfQkxBTktfU1RBUlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRhYgorI2RlZmluZSBtbU9URzVfT1RHX0hfQkxBTktfU1RBUlRfRU5EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19IX1NZTkNfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYWMKKyNkZWZpbmUgbW1PVEc1X09UR19IX1NZTkNfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfSF9TWU5DX0FfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGFkCisjZGVmaW5lIG1tT1RHNV9PVEdfSF9TWU5DX0FfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0hfVElNSU5HX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRhZQorI2RlZmluZSBtbU9URzVfT1RHX0hfVElNSU5HX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19WX1RPVEFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYWYKKyNkZWZpbmUgbW1PVEc1X09UR19WX1RPVEFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfVl9UT1RBTF9NSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGIwCisjZGVmaW5lIG1tT1RHNV9PVEdfVl9UT1RBTF9NSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1ZfVE9UQUxfTUFYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRiMQorI2RlZmluZSBtbU9URzVfT1RHX1ZfVE9UQUxfTUFYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19WX1RPVEFMX01JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYjIKKyNkZWZpbmUgbW1PVEc1X09UR19WX1RPVEFMX01JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfVl9UT1RBTF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGIzCisjZGVmaW5lIG1tT1RHNV9PVEdfVl9UT1RBTF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRiNAorI2RlZmluZSBtbU9URzVfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19WU1lOQ19OT01fSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYjUKKyNkZWZpbmUgbW1PVEc1X09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfVl9CTEFOS19TVEFSVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGI2CisjZGVmaW5lIG1tT1RHNV9PVEdfVl9CTEFOS19TVEFSVF9FTkRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1ZfU1lOQ19BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRiNworI2RlZmluZSBtbU9URzVfT1RHX1ZfU1lOQ19BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19WX1NZTkNfQV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYjgKKyNkZWZpbmUgbW1PVEc1X09UR19WX1NZTkNfQV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfVFJJR0FfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGI5CisjZGVmaW5lIG1tT1RHNV9PVEdfVFJJR0FfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1RSSUdBX01BTlVBTF9UUklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRiYQorI2RlZmluZSBtbU9URzVfT1RHX1RSSUdBX01BTlVBTF9UUklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19UUklHQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYmIKKyNkZWZpbmUgbW1PVEc1X09UR19UUklHQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfVFJJR0JfTUFOVUFMX1RSSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGJjCisjZGVmaW5lIG1tT1RHNV9PVEdfVFJJR0JfTUFOVUFMX1RSSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRiZAorI2RlZmluZSBtbU9URzVfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19GTE9XX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYmUKKyNkZWZpbmUgbW1PVEc1X09UR19GTE9XX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGJmCisjZGVmaW5lIG1tT1RHNV9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRjMQorI2RlZmluZSBtbU9URzVfT1RHX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19CTEFOS19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYzIKKyNkZWZpbmUgbW1PVEc1X09UR19CTEFOS19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfUElQRV9BQk9SVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGMzCisjZGVmaW5lIG1tT1RHNV9PVEdfUElQRV9BQk9SVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0lOVEVSTEFDRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRjNAorI2RlZmluZSBtbU9URzVfT1RHX0lOVEVSTEFDRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19JTlRFUkxBQ0VfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYzUKKyNkZWZpbmUgbW1PVEc1X09UR19JTlRFUkxBQ0VfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGM3CisjZGVmaW5lIG1tT1RHNV9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRjOAorI2RlZmluZSBtbU9URzVfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkYzkKKyNkZWZpbmUgbW1PVEc1X09UR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfU1RBVFVTX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGNhCisjZGVmaW5lIG1tT1RHNV9PVEdfU1RBVFVTX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX05PTV9WRVJUX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRjYgorI2RlZmluZSBtbU9URzVfT1RHX05PTV9WRVJUX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19TVEFUVVNfRlJBTUVfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkY2MKKyNkZWZpbmUgbW1PVEc1X09UR19TVEFUVVNfRlJBTUVfQ09VTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfU1RBVFVTX1ZGX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGNkCisjZGVmaW5lIG1tT1RHNV9PVEdfU1RBVFVTX1ZGX0NPVU5UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1NUQVRVU19IVl9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRjZQorI2RlZmluZSBtbU9URzVfT1RHX1NUQVRVU19IVl9DT1VOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19DT1VOVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkY2YKKyNkZWZpbmUgbW1PVEc1X09UR19DT1VOVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfQ09VTlRfUkVTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGQwCisjZGVmaW5lIG1tT1RHNV9PVEdfQ09VTlRfUkVTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRkMQorI2RlZmluZSBtbU9URzVfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19WRVJUX1NZTkNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZDIKKyNkZWZpbmUgbW1PVEc1X09UR19WRVJUX1NZTkNfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfU1RFUkVPX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGQzCisjZGVmaW5lIG1tT1RHNV9PVEdfU1RFUkVPX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1NURVJFT19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRkNAorI2RlZmluZSBtbU9URzVfT1RHX1NURVJFT19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19TTkFQU0hPVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZDUKKyNkZWZpbmUgbW1PVEc1X09UR19TTkFQU0hPVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfU05BUFNIT1RfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGQ2CisjZGVmaW5lIG1tT1RHNV9PVEdfU05BUFNIT1RfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1NOQVBTSE9UX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRkNworI2RlZmluZSBtbU9URzVfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19TTkFQU0hPVF9GUkFNRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZDgKKyNkZWZpbmUgbW1PVEc1X09UR19TTkFQU0hPVF9GUkFNRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfSU5URVJSVVBUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGQ5CisjZGVmaW5lIG1tT1RHNV9PVEdfSU5URVJSVVBUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1VQREFURV9MT0NLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRkYQorI2RlZmluZSBtbU9URzVfT1RHX1VQREFURV9MT0NLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZGIKKyNkZWZpbmUgbW1PVEc1X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfTUFTVEVSX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGRjCisjZGVmaW5lIG1tT1RHNV9PVEdfTUFTVEVSX0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0JMQU5LX0RBVEFfQ09MT1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRkZQorI2RlZmluZSBtbU9URzVfT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19CTEFOS19EQVRBX0NPTE9SX0VYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZGYKKyNkZWZpbmUgbW1PVEc1X09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfQkxBQ0tfQ09MT1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGUwCisjZGVmaW5lIG1tT1RHNV9PVEdfQkxBQ0tfQ09MT1JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0JMQUNLX0NPTE9SX0VYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRlMQorI2RlZmluZSBtbU9URzVfT1RHX0JMQUNLX0NPTE9SX0VYVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZTIKKyNkZWZpbmUgbW1PVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGUzCisjZGVmaW5lIG1tT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRlNAorI2RlZmluZSBtbU9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZTUKKyNkZWZpbmUgbW1PVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGU2CisjZGVmaW5lIG1tT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRlNworI2RlZmluZSBtbU9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19DUkNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZTgKKyNkZWZpbmUgbW1PVEc1X09UR19DUkNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGU5CisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRlYQorI2RlZmluZSBtbU9URzVfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZWIKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGVjCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRlZAorI2RlZmluZSBtbU9URzVfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMwX0RBVEFfUkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZWUKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMwX0RBVEFfUkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDMF9EQVRBX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGVmCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDMF9EQVRBX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRmMAorI2RlZmluZSBtbU9URzVfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZjEKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGYyCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRmMworI2RlZmluZSBtbU9URzVfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMxX0RBVEFfUkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZjQKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMxX0RBVEFfUkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDMV9EQVRBX0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGY1CisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDMV9EQVRBX0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0NSQzJfREFUQV9SRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRmNgorI2RlZmluZSBtbU9URzVfT1RHX0NSQzJfREFUQV9SR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMyX0RBVEFfQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZjcKKyNkZWZpbmUgbW1PVEc1X09UR19DUkMyX0RBVEFfQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDM19EQVRBX1JHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGY4CisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDM19EQVRBX1JHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0NSQzNfREFUQV9CICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWRmOQorI2RlZmluZSBtbU9URzVfT1RHX0NSQzNfREFUQV9CX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkZmEKKyNkZWZpbmUgbW1PVEc1X09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZGZiCisjZGVmaW5lIG1tT1RHNV9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUwMgorI2RlZmluZSBtbU9URzVfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMDMKKyNkZWZpbmUgbW1PVEc1X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfR1NMX1ZTWU5DX0dBUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTA0CisjZGVmaW5lIG1tT1RHNV9PVEdfR1NMX1ZTWU5DX0dBUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX01BU1RFUl9VUERBVEVfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUwNQorI2RlZmluZSBtbU9URzVfT1RHX01BU1RFUl9VUERBVEVfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19DTE9DS19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMDYKKyNkZWZpbmUgbW1PVEc1X09UR19DTE9DS19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfVlNUQVJUVVBfUEFSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTA3CisjZGVmaW5lIG1tT1RHNV9PVEdfVlNUQVJUVVBfUEFSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1ZVUERBVEVfUEFSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUwOAorI2RlZmluZSBtbU9URzVfT1RHX1ZVUERBVEVfUEFSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19WUkVBRFlfUEFSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMDkKKyNkZWZpbmUgbW1PVEc1X09UR19WUkVBRFlfUEFSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTBhCisjZGVmaW5lIG1tT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX01BU1RFUl9VUERBVEVfTE9DSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUwYgorI2RlZmluZSBtbU9URzVfT1RHX01BU1RFUl9VUERBVEVfTE9DS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19HU0xfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMGMKKyNkZWZpbmUgbW1PVEc1X09UR19HU0xfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfR1NMX1dJTkRPV19YICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTBkCisjZGVmaW5lIG1tT1RHNV9PVEdfR1NMX1dJTkRPV19YX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0dTTF9XSU5ET1dfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUwZQorI2RlZmluZSBtbU9URzVfT1RHX0dTTF9XSU5ET1dfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19WVVBEQVRFX0tFRVBPVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMGYKKyNkZWZpbmUgbW1PVEc1X09UR19WVVBEQVRFX0tFRVBPVVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTEwCisjZGVmaW5lIG1tT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0dMT0JBTF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUxMQorI2RlZmluZSBtbU9URzVfT1RHX0dMT0JBTF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19HTE9CQUxfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMTIKKyNkZWZpbmUgbW1PVEc1X09UR19HTE9CQUxfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTEzCisjZGVmaW5lIG1tT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUxNAorI2RlZmluZSBtbU9URzVfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19NQU5VQUxfRkxPV19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMTUKKyNkZWZpbmUgbW1PVEc1X09UR19NQU5VQUxfRkxPV19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTE2CisjZGVmaW5lIG1tT1RHNV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX0RSUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUxNworI2RlZmluZSBtbU9URzVfT1RHX0RSUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19SRVFVRVNUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMTgKKyNkZWZpbmUgbW1PVEc1X09UR19SRVFVRVNUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1RHNV9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTE5CisjZGVmaW5lIG1tT1RHNV9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUxYQorI2RlZmluZSBtbU9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PVEc1X09UR19TUEFSRV9SRUdJU1RFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMWMKKyNkZWZpbmUgbW1PVEc1X09UR19TUEFSRV9SRUdJU1RFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vcHRjX21pc2NfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1EV0JfU09VUkNFX1NFTEVDVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMmEKKyNkZWZpbmUgbW1EV0JfU09VUkNFX1NFTEVDVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tR1NMX1NPVVJDRV9TRUxFQ1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTJiCisjZGVmaW5lIG1tR1NMX1NPVVJDRV9TRUxFQ1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9QVENfQ0xPQ0tfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUyYworI2RlZmluZSBtbU9QVENfQ0xPQ0tfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE1fTUVNX1BXUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMmQKKyNkZWZpbmUgbW1PRE1fTUVNX1BXUl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT0RNX01FTV9QV1JfQ1RSTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTJlCisjZGVmaW5lIG1tT0RNX01FTV9QV1JfQ1RSTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU9ETV9NRU1fUFdSX0NUUkwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUyZgorI2RlZmluZSBtbU9ETV9NRU1fUFdSX0NUUkwzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1PRE1fTUVNX1BXUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMzAKKyNkZWZpbmUgbW1PRE1fTUVNX1BXUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tT1BUQ19NSVNDX1NQQVJFX1JFR0lTVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTMxCisjZGVmaW5lIG1tT1BUQ19NSVNDX1NQQVJFX1JFR0lTVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb3B0Y19kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NzlhOAorI2RlZmluZSBtbURDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWU2YQorI2RlZmluZSBtbURDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlNmIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX1NUQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTZjCisjZGVmaW5lIG1tRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX1NUQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xN19QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWU2ZAorI2RlZmluZSBtbURDX1BFUkZNT04xN19QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlNmUKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE3X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTZmCisjZGVmaW5lIG1tRENfUEVSRk1PTjE3X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWU3MAorI2RlZmluZSBtbURDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTdfUEVSRk1PTl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlNzEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTdfUEVSRk1PTl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE3X1BFUkZNT05fTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTcyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE3X1BFUkZNT05fTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kb3V0X2kyY19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbURDX0kyQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWU5OAorI2RlZmluZSBtbURDX0kyQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19JMkNfQVJCSVRSQVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlOTkKKyNkZWZpbmUgbW1EQ19JMkNfQVJCSVRSQVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTlhCisjZGVmaW5lIG1tRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0kyQ19TV19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWU5YgorI2RlZmluZSBtbURDX0kyQ19TV19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19JMkNfRERDMV9IV19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlOWMKKyNkZWZpbmUgbW1EQ19JMkNfRERDMV9IV19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfSTJDX0REQzJfSFdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTlkCisjZGVmaW5lIG1tRENfSTJDX0REQzJfSFdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0kyQ19EREMzX0hXX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWU5ZQorI2RlZmluZSBtbURDX0kyQ19EREMzX0hXX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19JMkNfRERDNF9IV19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlOWYKKyNkZWZpbmUgbW1EQ19JMkNfRERDNF9IV19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfSTJDX0REQzVfSFdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWEwCisjZGVmaW5lIG1tRENfSTJDX0REQzVfSFdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0kyQ19EREMxX1NQRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVhMgorI2RlZmluZSBtbURDX0kyQ19EREMxX1NQRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19JMkNfRERDMV9TRVRVUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlYTMKKyNkZWZpbmUgbW1EQ19JMkNfRERDMV9TRVRVUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfSTJDX0REQzJfU1BFRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWE0CisjZGVmaW5lIG1tRENfSTJDX0REQzJfU1BFRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0kyQ19EREMyX1NFVFVQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVhNQorI2RlZmluZSBtbURDX0kyQ19EREMyX1NFVFVQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19JMkNfRERDM19TUEVFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlYTYKKyNkZWZpbmUgbW1EQ19JMkNfRERDM19TUEVFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfSTJDX0REQzNfU0VUVVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWE3CisjZGVmaW5lIG1tRENfSTJDX0REQzNfU0VUVVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0kyQ19EREM0X1NQRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVhOAorI2RlZmluZSBtbURDX0kyQ19EREM0X1NQRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19JMkNfRERDNF9TRVRVUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlYTkKKyNkZWZpbmUgbW1EQ19JMkNfRERDNF9TRVRVUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfSTJDX0REQzVfU1BFRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWFhCisjZGVmaW5lIG1tRENfSTJDX0REQzVfU1BFRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0kyQ19EREM1X1NFVFVQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVhYgorI2RlZmluZSBtbURDX0kyQ19EREM1X1NFVFVQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19JMkNfVFJBTlNBQ1RJT04wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlYWUKKyNkZWZpbmUgbW1EQ19JMkNfVFJBTlNBQ1RJT04wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfSTJDX1RSQU5TQUNUSU9OMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWFmCisjZGVmaW5lIG1tRENfSTJDX1RSQU5TQUNUSU9OMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0kyQ19UUkFOU0FDVElPTjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWViMAorI2RlZmluZSBtbURDX0kyQ19UUkFOU0FDVElPTjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19JMkNfVFJBTlNBQ1RJT04zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlYjEKKyNkZWZpbmUgbW1EQ19JMkNfVFJBTlNBQ1RJT04zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfSTJDX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWIyCisjZGVmaW5lIG1tRENfSTJDX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0kyQ19FRElEX0RFVEVDVF9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWViNgorI2RlZmluZSBtbURDX0kyQ19FRElEX0RFVEVDVF9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlYjcKKyNkZWZpbmUgbW1EQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2Rpb19taXNjX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRElPX1NDUkFUQ0gwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWNhCisjZGVmaW5lIG1tRElPX1NDUkFUQ0gwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJT19TQ1JBVENIMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVjYgorI2RlZmluZSBtbURJT19TQ1JBVENIMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESU9fU0NSQVRDSDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlY2MKKyNkZWZpbmUgbW1ESU9fU0NSQVRDSDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElPX1NDUkFUQ0gzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWNkCisjZGVmaW5lIG1tRElPX1NDUkFUQ0gzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJT19TQ1JBVENINCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVjZQorI2RlZmluZSBtbURJT19TQ1JBVENINF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESU9fU0NSQVRDSDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlY2YKKyNkZWZpbmUgbW1ESU9fU0NSQVRDSDVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElPX1NDUkFUQ0g2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWQwCisjZGVmaW5lIG1tRElPX1NDUkFUQ0g2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJT19TQ1JBVENINyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVkMQorI2RlZmluZSBtbURJT19TQ1JBVENIN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0VfVkNFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlZDIKKyNkZWZpbmUgbW1EQ0VfVkNFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElPX01FTV9QV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWRkCisjZGVmaW5lIG1tRElPX01FTV9QV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJT19NRU1fUFdSX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVkZQorI2RlZmluZSBtbURJT19NRU1fUFdSX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESU9fTUVNX1BXUl9DVFJMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlZGYKKyNkZWZpbmUgbW1ESU9fTUVNX1BXUl9DVFJMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElPX0NMS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWUwCisjZGVmaW5lIG1tRElPX0NMS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJT19NRU1fUFdSX0NUUkwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVlMQorI2RlZmluZSBtbURJT19NRU1fUFdSX0NUUkwzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESU9fUE9XRVJfTUFOQUdFTUVOVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlZTQKKyNkZWZpbmUgbW1ESU9fUE9XRVJfTUFOQUdFTUVOVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHX1NPRlRfUkVTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWVlCisjZGVmaW5lIG1tRElHX1NPRlRfUkVTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJT19NRU1fUFdSX1NUQVRVUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVmMAorI2RlZmluZSBtbURJT19NRU1fUFdSX1NUQVRVUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESU9fQ0xLX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlZjIKKyNkZWZpbmUgbW1ESU9fQ0xLX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElPX0NMS19DTlRMMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZWYzCisjZGVmaW5lIG1tRElPX0NMS19DTlRMM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJT19IRE1JX1JYU1RBVFVTX1RJTUVSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWVmZgorI2RlZmluZSBtbURJT19IRE1JX1JYU1RBVFVTX1RJTUVSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESU9fUFNQX0lOVEVSUlVQVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMDAKKyNkZWZpbmUgbW1ESU9fUFNQX0lOVEVSUlVQVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElPX1BTUF9JTlRFUlJVUFRfQ0xFQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjAxCisjZGVmaW5lIG1tRElPX1BTUF9JTlRFUlJVUFRfQ0xFQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJT19HRU5FUklDX0lOVEVSUlVQVF9NRVNTQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYwMgorI2RlZmluZSBtbURJT19HRU5FUklDX0lOVEVSUlVQVF9NRVNTQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESU9fR0VORVJJQ19JTlRFUlJVUFRfQ0xFQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMDMKKyNkZWZpbmUgbW1ESU9fR0VORVJJQ19JTlRFUlJVUFRfQ0xFQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2hwZDBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1IUEQwX0RDX0hQRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMTQKKyNkZWZpbmUgbW1IUEQwX0RDX0hQRF9JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFBEMF9EQ19IUERfSU5UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjE1CisjZGVmaW5lIG1tSFBEMF9EQ19IUERfSU5UX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhQRDBfRENfSFBEX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYxNgorI2RlZmluZSBtbUhQRDBfRENfSFBEX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IUEQwX0RDX0hQRF9GQVNUX1RSQUlOX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMTcKKyNkZWZpbmUgbW1IUEQwX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFBEMF9EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjE4CisjZGVmaW5lIG1tSFBEMF9EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19ocGQxX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgyMAorI2RlZmluZSBtbUhQRDFfRENfSFBEX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYxYworI2RlZmluZSBtbUhQRDFfRENfSFBEX0lOVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IUEQxX0RDX0hQRF9JTlRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMWQKKyNkZWZpbmUgbW1IUEQxX0RDX0hQRF9JTlRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFBEMV9EQ19IUERfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjFlCisjZGVmaW5lIG1tSFBEMV9EQ19IUERfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhQRDFfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYxZgorI2RlZmluZSBtbUhQRDFfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IUEQxX0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMjAKKyNkZWZpbmUgbW1IUEQxX0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2hwZDJfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDQwCisjZGVmaW5lIG1tSFBEMl9EQ19IUERfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjI0CisjZGVmaW5lIG1tSFBEMl9EQ19IUERfSU5UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhQRDJfRENfSFBEX0lOVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYyNQorI2RlZmluZSBtbUhQRDJfRENfSFBEX0lOVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IUEQyX0RDX0hQRF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMjYKKyNkZWZpbmUgbW1IUEQyX0RDX0hQRF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFBEMl9EQ19IUERfRkFTVF9UUkFJTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjI3CisjZGVmaW5lIG1tSFBEMl9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhQRDJfRENfSFBEX1RPR0dMRV9GSUxUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYyOAorI2RlZmluZSBtbUhQRDJfRENfSFBEX1RPR0dMRV9GSUxUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9faHBkM19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NjAKKyNkZWZpbmUgbW1IUEQzX0RDX0hQRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMmMKKyNkZWZpbmUgbW1IUEQzX0RDX0hQRF9JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFBEM19EQ19IUERfSU5UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjJkCisjZGVmaW5lIG1tSFBEM19EQ19IUERfSU5UX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhQRDNfRENfSFBEX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYyZQorI2RlZmluZSBtbUhQRDNfRENfSFBEX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IUEQzX0RDX0hQRF9GQVNUX1RSQUlOX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMmYKKyNkZWZpbmUgbW1IUEQzX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFBEM19EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjMwCisjZGVmaW5lIG1tSFBEM19EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19ocGQ0X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg4MAorI2RlZmluZSBtbUhQRDRfRENfSFBEX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYzNAorI2RlZmluZSBtbUhQRDRfRENfSFBEX0lOVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IUEQ0X0RDX0hQRF9JTlRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMzUKKyNkZWZpbmUgbW1IUEQ0X0RDX0hQRF9JTlRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tSFBENF9EQ19IUERfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjM2CisjZGVmaW5lIG1tSFBENF9EQ19IUERfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUhQRDRfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYzNworI2RlZmluZSBtbUhQRDRfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1IUEQ0X0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMzgKKyNkZWZpbmUgbW1IUEQ0X0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2Rpb19kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4N2QxMAorI2RlZmluZSBtbURDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY0NAorI2RlZmluZSBtbURDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNDUKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjQ2CisjZGVmaW5lIG1tRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xOF9QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY0NworI2RlZmluZSBtbURDX1BFUkZNT04xOF9QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMThfUEVSRk1PTl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNDgKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMThfUEVSRk1PTl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE4X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjQ5CisjZGVmaW5lIG1tRENfUEVSRk1PTjE4X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xOF9QRVJGTU9OX0NWQUxVRV9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY0YQorI2RlZmluZSBtbURDX1BFUkZNT04xOF9QRVJGTU9OX0NWQUxVRV9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMThfUEVSRk1PTl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNGIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMThfUEVSRk1PTl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE4X1BFUkZNT05fTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjRjCisjZGVmaW5lIG1tRENfUEVSRk1PTjE4X1BFUkZNT05fTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kcF9hdXgwX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjUwCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDBfQVVYX1NXX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY1MQorI2RlZmluZSBtbURQX0FVWDBfQVVYX1NXX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9BUkJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNTIKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9BUkJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjUzCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDBfQVVYX1NXX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY1NAorI2RlZmluZSBtbURQX0FVWDBfQVVYX1NXX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9MU19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNTUKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9MU19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfU1dfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjU2CisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfU1dfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDBfQVVYX0xTX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY1NworI2RlZmluZSBtbURQX0FVWDBfQVVYX0xTX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNTgKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfRFBIWV9UWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjU5CisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfRFBIWV9UWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDBfQVVYX0RQSFlfUlhfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY1YQorI2RlZmluZSBtbURQX0FVWDBfQVVYX0RQSFlfUlhfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNWIKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfRFBIWV9UWF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjVjCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfRFBIWV9UWF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDBfQVVYX0RQSFlfUlhfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY1ZAorI2RlZmluZSBtbURQX0FVWDBfQVVYX0RQSFlfUlhfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNWUKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjVmCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY2MAorI2RlZmluZSBtbURQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9HVENfU1lOQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNjEKKyNkZWZpbmUgbW1EUF9BVVgwX0FVWF9HVENfU1lOQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfUEhZX1dBS0VfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjY2CisjZGVmaW5lIG1tRFBfQVVYMF9BVVhfUEhZX1dBS0VfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kcF9hdXgxX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg3MAorI2RlZmluZSBtbURQX0FVWDFfQVVYX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY2YworI2RlZmluZSBtbURQX0FVWDFfQVVYX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9TV19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNmQKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9TV19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfQVJCX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjZlCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfQVJCX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDFfQVVYX0lOVEVSUlVQVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY2ZgorI2RlZmluZSBtbURQX0FVWDFfQVVYX0lOVEVSUlVQVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9TV19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNzAKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9TV19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfTFNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjcxCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfTFNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDFfQVVYX1NXX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY3MgorI2RlZmluZSBtbURQX0FVWDFfQVVYX1NXX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9MU19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNzMKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9MU19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjc0CisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDFfQVVYX0RQSFlfVFhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY3NQorI2RlZmluZSBtbURQX0FVWDFfQVVYX0RQSFlfVFhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9EUEhZX1JYX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNzYKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9EUEhZX1JYX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfRFBIWV9SWF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjc3CisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfRFBIWV9SWF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDFfQVVYX0RQSFlfVFhfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY3OAorI2RlZmluZSBtbURQX0FVWDFfQVVYX0RQSFlfVFhfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9EUEhZX1JYX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmNzkKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9EUEhZX1JYX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjdhCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDFfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY3YgorI2RlZmluZSBtbURQX0FVWDFfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmN2MKKyNkZWZpbmUgbW1EUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfR1RDX1NZTkNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjdkCisjZGVmaW5lIG1tRFBfQVVYMV9BVVhfR1RDX1NZTkNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDFfQVVYX1BIWV9XQUtFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY4MgorI2RlZmluZSBtbURQX0FVWDFfQVVYX1BIWV9XQUtFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZHBfYXV4Ml9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4ZTAKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmODgKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfU1dfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjg5CisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfU1dfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDJfQVVYX0FSQl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY4YQorI2RlZmluZSBtbURQX0FVWDJfQVVYX0FSQl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9JTlRFUlJVUFRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmOGIKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfU1dfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjhjCisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfU1dfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDJfQVVYX0xTX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY4ZAorI2RlZmluZSBtbURQX0FVWDJfQVVYX0xTX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9TV19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmOGUKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9TV19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfTFNfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjhmCisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfTFNfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDJfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY5MAorI2RlZmluZSBtbURQX0FVWDJfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9EUEhZX1RYX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmOTEKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9EUEhZX1RYX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjkyCisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDJfQVVYX0RQSFlfUlhfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY5MworI2RlZmluZSBtbURQX0FVWDJfQVVYX0RQSFlfUlhfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9EUEhZX1RYX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmOTQKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9EUEhZX1RYX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfRFBIWV9SWF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjk1CisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfRFBIWV9SWF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY5NgorI2RlZmluZSBtbURQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmOTcKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjk4CisjZGVmaW5lIG1tRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWY5OQorI2RlZmluZSBtbURQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9QSFlfV0FLRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmOWUKKyNkZWZpbmUgbW1EUF9BVVgyX0FVWF9QSFlfV0FLRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2RwX2F1eDNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDE1MAorI2RlZmluZSBtbURQX0FVWDNfQVVYX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZhNAorI2RlZmluZSBtbURQX0FVWDNfQVVYX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9TV19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmYTUKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9TV19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYM19BVVhfQVJCX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmE2CisjZGVmaW5lIG1tRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDNfQVVYX0lOVEVSUlVQVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZhNworI2RlZmluZSBtbURQX0FVWDNfQVVYX0lOVEVSUlVQVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9TV19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmYTgKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9TV19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYM19BVVhfTFNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmE5CisjZGVmaW5lIG1tRFBfQVVYM19BVVhfTFNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDNfQVVYX1NXX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZhYQorI2RlZmluZSBtbURQX0FVWDNfQVVYX1NXX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9MU19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmYWIKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9MU19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYM19BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmFjCisjZGVmaW5lIG1tRFBfQVVYM19BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDNfQVVYX0RQSFlfVFhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZhZAorI2RlZmluZSBtbURQX0FVWDNfQVVYX0RQSFlfVFhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmYWUKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYM19BVVhfRFBIWV9SWF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmFmCisjZGVmaW5lIG1tRFBfQVVYM19BVVhfRFBIWV9SWF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDNfQVVYX0RQSFlfVFhfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZiMAorI2RlZmluZSBtbURQX0FVWDNfQVVYX0RQSFlfVFhfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9EUEhZX1JYX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmYjEKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9EUEhZX1JYX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmIyCisjZGVmaW5lIG1tRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDNfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZiMworI2RlZmluZSBtbURQX0FVWDNfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmYjQKKyNkZWZpbmUgbW1EUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmI1CisjZGVmaW5lIG1tRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDNfQVVYX1BIWV9XQUtFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZiYQorI2RlZmluZSBtbURQX0FVWDNfQVVYX1BIWV9XQUtFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZHBfYXV4NF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MWMwCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmMwCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDRfQVVYX1NXX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZjMQorI2RlZmluZSBtbURQX0FVWDRfQVVYX1NXX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9BUkJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmYzIKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfSU5URVJSVVBUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmMzCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfSU5URVJSVVBUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDRfQVVYX1NXX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZjNAorI2RlZmluZSBtbURQX0FVWDRfQVVYX1NXX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9MU19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmYzUKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9MU19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfU1dfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmM2CisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfU1dfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDRfQVVYX0xTX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZjNworI2RlZmluZSBtbURQX0FVWDRfQVVYX0xTX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmYzgKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfRFBIWV9UWF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmM5CisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfRFBIWV9UWF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZjYQorI2RlZmluZSBtbURQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9EUEhZX1JYX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmY2IKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9EUEhZX1JYX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfRFBIWV9UWF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmNjCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfRFBIWV9UWF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDRfQVVYX0RQSFlfUlhfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZjZAorI2RlZmluZSBtbURQX0FVWDRfQVVYX0RQSFlfUlhfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmY2UKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmNmCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZkMAorI2RlZmluZSBtbURQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmZDEKKyNkZWZpbmUgbW1EUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfUEhZX1dBS0VfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZmQ2CisjZGVmaW5lIG1tRFBfQVVYNF9BVVhfUEhZX1dBS0VfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kaWcwX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRElHMF9ESUdfRkVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDY4CisjZGVmaW5lIG1tRElHMF9ESUdfRkVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfRElHX09VVFBVVF9DUkNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA2OQorI2RlZmluZSBtbURJRzBfRElHX09VVFBVVF9DUkNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0RJR19PVVRQVVRfQ1JDX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwNmEKKyNkZWZpbmUgbW1ESUcwX0RJR19PVVRQVVRfQ1JDX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9ESUdfQ0xPQ0tfUEFUVEVSTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDZiCisjZGVmaW5lIG1tRElHMF9ESUdfQ0xPQ0tfUEFUVEVSTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfRElHX1RFU1RfUEFUVEVSTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA2YworI2RlZmluZSBtbURJRzBfRElHX1RFU1RfUEFUVEVSTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwNmQKKyNkZWZpbmUgbW1ESUcwX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9ESUdfRklGT19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDZlCisjZGVmaW5lIG1tRElHMF9ESUdfRklGT19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA2ZgorI2RlZmluZSBtbURJRzBfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwNzAKKyNkZWZpbmUgbW1ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9IRE1JX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDcxCisjZGVmaW5lIG1tRElHMF9IRE1JX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfSERNSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA3MgorI2RlZmluZSBtbURJRzBfSERNSV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwNzMKKyNkZWZpbmUgbW1ESUcwX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDc0CisjZGVmaW5lIG1tRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfSERNSV9WQklfUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA3NQorI2RlZmluZSBtbURJRzBfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwNzYKKyNkZWZpbmUgbW1ESUcwX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDc3CisjZGVmaW5lIG1tRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA3OAorI2RlZmluZSBtbURJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfSU5URVJSVVBUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwNzkKKyNkZWZpbmUgbW1ESUcwX0FGTVRfSU5URVJSVVBUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9IRE1JX0dDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDdiCisjZGVmaW5lIG1tRElHMF9IRE1JX0dDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA3YworI2RlZmluZSBtbURJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfSVNSQzFfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwN2QKKyNkZWZpbmUgbW1ESUcwX0FGTVRfSVNSQzFfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0lTUkMxXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDdlCisjZGVmaW5lIG1tRElHMF9BRk1UX0lTUkMxXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9JU1JDMV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA3ZgorI2RlZmluZSBtbURJRzBfQUZNVF9JU1JDMV8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfSVNSQzFfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwODAKKyNkZWZpbmUgbW1ESUcwX0FGTVRfSVNSQzFfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0lTUkMxXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDgxCisjZGVmaW5lIG1tRElHMF9BRk1UX0lTUkMxXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9JU1JDMl8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA4MgorI2RlZmluZSBtbURJRzBfQUZNVF9JU1JDMl8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfSVNSQzJfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwODMKKyNkZWZpbmUgbW1ESUcwX0FGTVRfSVNSQzJfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0lTUkMyXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDg0CisjZGVmaW5lIG1tRElHMF9BRk1UX0lTUkMyXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9JU1JDMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA4NQorI2RlZmluZSBtbURJRzBfQUZNVF9JU1JDMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwODYKKyNkZWZpbmUgbW1ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDg3CisjZGVmaW5lIG1tRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfSERNSV9EQl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA4OAorI2RlZmluZSBtbURJRzBfSERNSV9EQl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0RNRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwODkKKyNkZWZpbmUgbW1ESUcwX0RNRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX01QRUdfSU5GTzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDhhCisjZGVmaW5lIG1tRElHMF9BRk1UX01QRUdfSU5GTzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9NUEVHX0lORk8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA4YgorI2RlZmluZSBtbURJRzBfQUZNVF9NUEVHX0lORk8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfR0VORVJJQ19IRFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwOGMKKyNkZWZpbmUgbW1ESUcwX0FGTVRfR0VORVJJQ19IRFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0dFTkVSSUNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDhkCisjZGVmaW5lIG1tRElHMF9BRk1UX0dFTkVSSUNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9HRU5FUklDXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA4ZQorI2RlZmluZSBtbURJRzBfQUZNVF9HRU5FUklDXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfR0VORVJJQ18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwOGYKKyNkZWZpbmUgbW1ESUcwX0FGTVRfR0VORVJJQ18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0dFTkVSSUNfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDkwCisjZGVmaW5lIG1tRElHMF9BRk1UX0dFTkVSSUNfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9HRU5FUklDXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA5MQorI2RlZmluZSBtbURJRzBfQUZNVF9HRU5FUklDXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfR0VORVJJQ181ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwOTIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfR0VORVJJQ181X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0dFTkVSSUNfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDkzCisjZGVmaW5lIG1tRElHMF9BRk1UX0dFTkVSSUNfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9HRU5FUklDXzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA5NAorI2RlZmluZSBtbURJRzBfQUZNVF9HRU5FUklDXzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwOTUKKyNkZWZpbmUgbW1ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9IRE1JX0FDUl8zMl8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDk2CisjZGVmaW5lIG1tRElHMF9IRE1JX0FDUl8zMl8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfSERNSV9BQ1JfMzJfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA5NworI2RlZmluZSBtbURJRzBfSERNSV9BQ1JfMzJfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0hETUlfQUNSXzQ0XzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwOTgKKyNkZWZpbmUgbW1ESUcwX0hETUlfQUNSXzQ0XzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9IRE1JX0FDUl80NF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDk5CisjZGVmaW5lIG1tRElHMF9IRE1JX0FDUl80NF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfSERNSV9BQ1JfNDhfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA5YQorI2RlZmluZSBtbURJRzBfSERNSV9BQ1JfNDhfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0hETUlfQUNSXzQ4XzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwOWIKKyNkZWZpbmUgbW1ESUcwX0hETUlfQUNSXzQ4XzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9IRE1JX0FDUl9TVEFUVVNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDljCisjZGVmaW5lIG1tRElHMF9IRE1JX0FDUl9TVEFUVVNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfSERNSV9BQ1JfU1RBVFVTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA5ZAorI2RlZmluZSBtbURJRzBfSERNSV9BQ1JfU1RBVFVTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfQVVESU9fSU5GTzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwOWUKKyNkZWZpbmUgbW1ESUcwX0FGTVRfQVVESU9fSU5GTzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0FVRElPX0lORk8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDlmCisjZGVmaW5lIG1tRElHMF9BRk1UX0FVRElPX0lORk8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF82MDk1OF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBhMAorI2RlZmluZSBtbURJRzBfQUZNVF82MDk1OF8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfNjA5NThfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwYTEKKyNkZWZpbmUgbW1ESUcwX0FGTVRfNjA5NThfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0FVRElPX0NSQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGEyCisjZGVmaW5lIG1tRElHMF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9SQU1QX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBhMworI2RlZmluZSBtbURJRzBfQUZNVF9SQU1QX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfUkFNUF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwYTQKKyNkZWZpbmUgbW1ESUcwX0FGTVRfUkFNUF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX1JBTVBfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGE1CisjZGVmaW5lIG1tRElHMF9BRk1UX1JBTVBfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9SQU1QX0NPTlRST0wzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBhNgorI2RlZmluZSBtbURJRzBfQUZNVF9SQU1QX0NPTlRST0wzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfNjA5NThfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwYTcKKyNkZWZpbmUgbW1ESUcwX0FGTVRfNjA5NThfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0FVRElPX0NSQ19SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGE4CisjZGVmaW5lIG1tRElHMF9BRk1UX0FVRElPX0NSQ19SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBhOQorI2RlZmluZSBtbURJRzBfQUZNVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwYWEKKyNkZWZpbmUgbW1ESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGFiCisjZGVmaW5lIG1tRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBhYworI2RlZmluZSBtbURJRzBfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0FGTVRfQVVESU9fU1JDX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwYWQKKyNkZWZpbmUgbW1ESUcwX0FGTVRfQVVESU9fU1JDX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9ESUdfQkVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGFmCisjZGVmaW5lIG1tRElHMF9ESUdfQkVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfRElHX0JFX0VOX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBiMAorI2RlZmluZSBtbURJRzBfRElHX0JFX0VOX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX1RNRFNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwZDMKKyNkZWZpbmUgbW1ESUcwX1RNRFNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9UTURTX0NPTlRST0xfQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGQ0CisjZGVmaW5lIG1tRElHMF9UTURTX0NPTlRST0xfQ0hBUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfVE1EU19DT05UUk9MMF9GRUVEQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBkNQorI2RlZmluZSBtbURJRzBfVE1EU19DT05UUk9MMF9GRUVEQkFDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwZDYKKyNkZWZpbmUgbW1ESUcwX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGQ3CisjZGVmaW5lIG1tRElHMF9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBkOAorI2RlZmluZSBtbURJRzBfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX1RNRFNfQ1RMX0JJVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwZGEKKyNkZWZpbmUgbW1ESUcwX1RNRFNfQ1RMX0JJVFNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGRiCisjZGVmaW5lIG1tRElHMF9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBkYworI2RlZmluZSBtbURJRzBfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwZGQKKyNkZWZpbmUgbW1ESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9UTURTX0NUTDJfM19HRU5fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGRlCisjZGVmaW5lIG1tRElHMF9UTURTX0NUTDJfM19HRU5fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfRElHX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBlMAorI2RlZmluZSBtbURJRzBfRElHX1ZFUlNJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0RJR19MQU5FX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwZTEKKyNkZWZpbmUgbW1ESUcwX0RJR19MQU5FX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9BRk1UX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGU2CisjZGVmaW5lIG1tRElHMF9BRk1UX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBlNworI2RlZmluZSBtbURJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwZjYKKyNkZWZpbmUgbW1ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMF9GT1JDRV9ESUdfRElTQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMGY3CisjZGVmaW5lIG1tRElHMF9GT1JDRV9ESUdfRElTQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kcDBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1EUDBfRFBfTElOS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMDgKKyNkZWZpbmUgbW1EUDBfRFBfTElOS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1BJWEVMX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTA5CisjZGVmaW5lIG1tRFAwX0RQX1BJWEVMX0ZPUk1BVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9NU0FfQ09MT1JJTUVUUlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEwYQorI2RlZmluZSBtbURQMF9EUF9NU0FfQ09MT1JJTUVUUllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMGIKKyNkZWZpbmUgbW1EUDBfRFBfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1ZJRF9TVFJFQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTBjCisjZGVmaW5lIG1tRFAwX0RQX1ZJRF9TVFJFQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9TVEVFUl9GSUZPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEwZAorI2RlZmluZSBtbURQMF9EUF9TVEVFUl9GSUZPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfTVNBX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMGUKKyNkZWZpbmUgbW1EUDBfRFBfTVNBX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1ZJRF9USU1JTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTEwCisjZGVmaW5lIG1tRFAwX0RQX1ZJRF9USU1JTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9WSURfTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjExMQorI2RlZmluZSBtbURQMF9EUF9WSURfTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfVklEX00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMTIKKyNkZWZpbmUgbW1EUDBfRFBfVklEX01fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX0xJTktfRlJBTUlOR19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTEzCisjZGVmaW5lIG1tRFAwX0RQX0xJTktfRlJBTUlOR19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9IQlIyX0VZRV9QQVRURVJOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjExNAorI2RlZmluZSBtbURQMF9EUF9IQlIyX0VZRV9QQVRURVJOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfVklEX01TQV9WQklEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMTUKKyNkZWZpbmUgbW1EUDBfRFBfVklEX01TQV9WQklEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTE2CisjZGVmaW5lIG1tRFAwX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9EUEhZX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjExNworI2RlZmluZSBtbURQMF9EUF9EUEhZX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMTgKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfU1lNMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTE5CisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfU1lNMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9EUEhZX1NZTTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjExYQorI2RlZmluZSBtbURQMF9EUF9EUEhZX1NZTTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9TWU0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMWIKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9TWU0yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfOEIxMEJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTFjCisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfOEIxMEJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9EUEhZX1BSQlNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjExZAorI2RlZmluZSBtbURQMF9EUF9EUEhZX1BSQlNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9TQ1JBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMWUKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9TQ1JBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfQ1JDX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTFmCisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfQ1JDX0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9EUEhZX0NSQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEyMAorI2RlZmluZSBtbURQMF9EUF9EUEhZX0NSQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9DUkNfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMjEKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9DUkNfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfQ1JDX01TVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTIyCisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfQ1JDX01TVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEyMworI2RlZmluZSBtbURQMF9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMjQKKyNkZWZpbmUgbW1EUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTI1CisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9TRUNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEyYgorI2RlZmluZSBtbURQMF9EUF9TRUNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMmMKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19GUkFNSU5HMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTJkCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19GUkFNSU5HMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9TRUNfRlJBTUlORzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEyZQorI2RlZmluZSBtbURQMF9EUF9TRUNfRlJBTUlORzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0ZSQU1JTkczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMmYKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0ZSQU1JTkczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19GUkFNSU5HNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTMwCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19GUkFNSU5HNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9TRUNfQVVEX04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEzMQorI2RlZmluZSBtbURQMF9EUF9TRUNfQVVEX05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0FVRF9OX1JFQURCQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMzIKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0FVRF9OX1JFQURCQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19BVURfTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTMzCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19BVURfTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9TRUNfQVVEX01fUkVBREJBQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEzNAorI2RlZmluZSBtbURQMF9EUF9TRUNfQVVEX01fUkVBREJBQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX1RJTUVTVEFNUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMzUKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX1RJTUVTVEFNUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19QQUNLRVRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTM2CisjZGVmaW5lIG1tRFAwX0RQX1NFQ19QQUNLRVRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9NU0VfUkFURV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEzNworI2RlZmluZSBtbURQMF9EUF9NU0VfUkFURV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfTVNFX1JBVEVfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxMzkKKyNkZWZpbmUgbW1EUDBfRFBfTVNFX1JBVEVfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX01TRV9TQVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTNhCisjZGVmaW5lIG1tRFAwX0RQX01TRV9TQVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9NU0VfU0FUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEzYgorI2RlZmluZSBtbURQMF9EUF9NU0VfU0FUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfTVNFX1NBVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxM2MKKyNkZWZpbmUgbW1EUDBfRFBfTVNFX1NBVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX01TRV9TQVRfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTNkCisjZGVmaW5lIG1tRFAwX0RQX01TRV9TQVRfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9NU0VfTElOS19USU1JTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEzZQorI2RlZmluZSBtbURQMF9EUF9NU0VfTElOS19USU1JTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfTVNFX01JU0NfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxM2YKKyNkZWZpbmUgbW1EUDBfRFBfTVNFX01JU0NfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTQ0CisjZGVmaW5lIG1tRFAwX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE0NQorI2RlZmluZSBtbURQMF9EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfTVNFX1NBVDBfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNDcKKyNkZWZpbmUgbW1EUDBfRFBfTVNFX1NBVDBfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX01TRV9TQVQxX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTQ4CisjZGVmaW5lIG1tRFAwX0RQX01TRV9TQVQxX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9NU0VfU0FUMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE0OQorI2RlZmluZSBtbURQMF9EUF9NU0VfU0FUMl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfTVNBX1RJTUlOR19QQVJBTTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNGMKKyNkZWZpbmUgbW1EUDBfRFBfTVNBX1RJTUlOR19QQVJBTTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX01TQV9USU1JTkdfUEFSQU0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTRkCisjZGVmaW5lIG1tRFAwX0RQX01TQV9USU1JTkdfUEFSQU0yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9NU0FfVElNSU5HX1BBUkFNMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE0ZQorI2RlZmluZSBtbURQMF9EUF9NU0FfVElNSU5HX1BBUkFNM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfTVNBX1RJTUlOR19QQVJBTTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNGYKKyNkZWZpbmUgbW1EUDBfRFBfTVNBX1RJTUlOR19QQVJBTTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX01TT19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTUwCisjZGVmaW5lIG1tRFAwX0RQX01TT19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9NU09fQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE1MQorI2RlZmluZSBtbURQMF9EUF9NU09fQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfRFNDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNTIKKyNkZWZpbmUgbW1EUDBfRFBfRFNDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTUzCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9TRUNfQ05UTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE1NAorI2RlZmluZSBtbURQMF9EUF9TRUNfQ05UTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0NOVEw0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNTUKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0NOVEw0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX1NFQ19DTlRMNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTU2CisjZGVmaW5lIG1tRFAwX0RQX1NFQ19DTlRMNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9TRUNfQ05UTDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE1NworI2RlZmluZSBtbURQMF9EUF9TRUNfQ05UTDZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0NOVEw3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNTgKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX0NOVEw3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX0RCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTU5CisjZGVmaW5lIG1tRFAwX0RQX0RCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9NU0FfVkJJRF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE1YQorI2RlZmluZSBtbURQMF9EUF9NU0FfVkJJRF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNWIKKyNkZWZpbmUgbW1EUDBfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAwX0RQX0RTQ19CWVRFU19QRVJfUElYRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTVjCisjZGVmaW5lIG1tRFAwX0RQX0RTQ19CWVRFU19QRVJfUElYRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMF9EUF9BTFBNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE1ZAorI2RlZmluZSBtbURQMF9EUF9BTFBNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZGlnMV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NDAwCisjZGVmaW5lIG1tRElHMV9ESUdfRkVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTY4CisjZGVmaW5lIG1tRElHMV9ESUdfRkVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfRElHX09VVFBVVF9DUkNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE2OQorI2RlZmluZSBtbURJRzFfRElHX09VVFBVVF9DUkNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0RJR19PVVRQVVRfQ1JDX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNmEKKyNkZWZpbmUgbW1ESUcxX0RJR19PVVRQVVRfQ1JDX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9ESUdfQ0xPQ0tfUEFUVEVSTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTZiCisjZGVmaW5lIG1tRElHMV9ESUdfQ0xPQ0tfUEFUVEVSTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfRElHX1RFU1RfUEFUVEVSTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE2YworI2RlZmluZSBtbURJRzFfRElHX1RFU1RfUEFUVEVSTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNmQKKyNkZWZpbmUgbW1ESUcxX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9ESUdfRklGT19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTZlCisjZGVmaW5lIG1tRElHMV9ESUdfRklGT19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE2ZgorI2RlZmluZSBtbURJRzFfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNzAKKyNkZWZpbmUgbW1ESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9IRE1JX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTcxCisjZGVmaW5lIG1tRElHMV9IRE1JX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfSERNSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE3MgorI2RlZmluZSBtbURJRzFfSERNSV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNzMKKyNkZWZpbmUgbW1ESUcxX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTc0CisjZGVmaW5lIG1tRElHMV9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE3NQorI2RlZmluZSBtbURJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNzYKKyNkZWZpbmUgbW1ESUcxX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9IRE1JX0lORk9GUkFNRV9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTc3CisjZGVmaW5lIG1tRElHMV9IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE3OAorI2RlZmluZSBtbURJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfSU5URVJSVVBUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxNzkKKyNkZWZpbmUgbW1ESUcxX0FGTVRfSU5URVJSVVBUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9IRE1JX0dDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTdiCisjZGVmaW5lIG1tRElHMV9IRE1JX0dDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE3YworI2RlZmluZSBtbURJRzFfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfSVNSQzFfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxN2QKKyNkZWZpbmUgbW1ESUcxX0FGTVRfSVNSQzFfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0lTUkMxXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTdlCisjZGVmaW5lIG1tRElHMV9BRk1UX0lTUkMxXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9JU1JDMV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE3ZgorI2RlZmluZSBtbURJRzFfQUZNVF9JU1JDMV8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfSVNSQzFfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxODAKKyNkZWZpbmUgbW1ESUcxX0FGTVRfSVNSQzFfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0lTUkMxXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTgxCisjZGVmaW5lIG1tRElHMV9BRk1UX0lTUkMxXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9JU1JDMl8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE4MgorI2RlZmluZSBtbURJRzFfQUZNVF9JU1JDMl8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfSVNSQzJfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxODMKKyNkZWZpbmUgbW1ESUcxX0FGTVRfSVNSQzJfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0lTUkMyXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTg0CisjZGVmaW5lIG1tRElHMV9BRk1UX0lTUkMyXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9JU1JDMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE4NQorI2RlZmluZSBtbURJRzFfQUZNVF9JU1JDMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxODYKKyNkZWZpbmUgbW1ESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTg3CisjZGVmaW5lIG1tRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfSERNSV9EQl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE4OAorI2RlZmluZSBtbURJRzFfSERNSV9EQl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0RNRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxODkKKyNkZWZpbmUgbW1ESUcxX0RNRV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX01QRUdfSU5GTzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMThhCisjZGVmaW5lIG1tRElHMV9BRk1UX01QRUdfSU5GTzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9NUEVHX0lORk8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE4YgorI2RlZmluZSBtbURJRzFfQUZNVF9NUEVHX0lORk8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfR0VORVJJQ19IRFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxOGMKKyNkZWZpbmUgbW1ESUcxX0FGTVRfR0VORVJJQ19IRFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0dFTkVSSUNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMThkCisjZGVmaW5lIG1tRElHMV9BRk1UX0dFTkVSSUNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9HRU5FUklDXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE4ZQorI2RlZmluZSBtbURJRzFfQUZNVF9HRU5FUklDXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfR0VORVJJQ18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxOGYKKyNkZWZpbmUgbW1ESUcxX0FGTVRfR0VORVJJQ18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0dFTkVSSUNfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTkwCisjZGVmaW5lIG1tRElHMV9BRk1UX0dFTkVSSUNfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9HRU5FUklDXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE5MQorI2RlZmluZSBtbURJRzFfQUZNVF9HRU5FUklDXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfR0VORVJJQ181ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxOTIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfR0VORVJJQ181X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0dFTkVSSUNfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTkzCisjZGVmaW5lIG1tRElHMV9BRk1UX0dFTkVSSUNfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9HRU5FUklDXzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE5NAorI2RlZmluZSBtbURJRzFfQUZNVF9HRU5FUklDXzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxOTUKKyNkZWZpbmUgbW1ESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9IRE1JX0FDUl8zMl8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTk2CisjZGVmaW5lIG1tRElHMV9IRE1JX0FDUl8zMl8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfSERNSV9BQ1JfMzJfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE5NworI2RlZmluZSBtbURJRzFfSERNSV9BQ1JfMzJfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0hETUlfQUNSXzQ0XzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxOTgKKyNkZWZpbmUgbW1ESUcxX0hETUlfQUNSXzQ0XzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9IRE1JX0FDUl80NF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTk5CisjZGVmaW5lIG1tRElHMV9IRE1JX0FDUl80NF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfSERNSV9BQ1JfNDhfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE5YQorI2RlZmluZSBtbURJRzFfSERNSV9BQ1JfNDhfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0hETUlfQUNSXzQ4XzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxOWIKKyNkZWZpbmUgbW1ESUcxX0hETUlfQUNSXzQ4XzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9IRE1JX0FDUl9TVEFUVVNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTljCisjZGVmaW5lIG1tRElHMV9IRE1JX0FDUl9TVEFUVVNfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfSERNSV9BQ1JfU1RBVFVTXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjE5ZAorI2RlZmluZSBtbURJRzFfSERNSV9BQ1JfU1RBVFVTXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfQVVESU9fSU5GTzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxOWUKKyNkZWZpbmUgbW1ESUcxX0FGTVRfQVVESU9fSU5GTzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0FVRElPX0lORk8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMTlmCisjZGVmaW5lIG1tRElHMV9BRk1UX0FVRElPX0lORk8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF82MDk1OF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFhMAorI2RlZmluZSBtbURJRzFfQUZNVF82MDk1OF8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfNjA5NThfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxYTEKKyNkZWZpbmUgbW1ESUcxX0FGTVRfNjA5NThfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0FVRElPX0NSQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWEyCisjZGVmaW5lIG1tRElHMV9BRk1UX0FVRElPX0NSQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9SQU1QX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFhMworI2RlZmluZSBtbURJRzFfQUZNVF9SQU1QX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfUkFNUF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxYTQKKyNkZWZpbmUgbW1ESUcxX0FGTVRfUkFNUF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX1JBTVBfQ09OVFJPTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWE1CisjZGVmaW5lIG1tRElHMV9BRk1UX1JBTVBfQ09OVFJPTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9SQU1QX0NPTlRST0wzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFhNgorI2RlZmluZSBtbURJRzFfQUZNVF9SQU1QX0NPTlRST0wzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfNjA5NThfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxYTcKKyNkZWZpbmUgbW1ESUcxX0FGTVRfNjA5NThfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0FVRElPX0NSQ19SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWE4CisjZGVmaW5lIG1tRElHMV9BRk1UX0FVRElPX0NSQ19SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFhOQorI2RlZmluZSBtbURJRzFfQUZNVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxYWEKKyNkZWZpbmUgbW1ESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWFiCisjZGVmaW5lIG1tRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFhYworI2RlZmluZSBtbURJRzFfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0FGTVRfQVVESU9fU1JDX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxYWQKKyNkZWZpbmUgbW1ESUcxX0FGTVRfQVVESU9fU1JDX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9ESUdfQkVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWFmCisjZGVmaW5lIG1tRElHMV9ESUdfQkVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfRElHX0JFX0VOX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFiMAorI2RlZmluZSBtbURJRzFfRElHX0JFX0VOX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX1RNRFNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxZDMKKyNkZWZpbmUgbW1ESUcxX1RNRFNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9UTURTX0NPTlRST0xfQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWQ0CisjZGVmaW5lIG1tRElHMV9UTURTX0NPTlRST0xfQ0hBUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfVE1EU19DT05UUk9MMF9GRUVEQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFkNQorI2RlZmluZSBtbURJRzFfVE1EU19DT05UUk9MMF9GRUVEQkFDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxZDYKKyNkZWZpbmUgbW1ESUcxX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWQ3CisjZGVmaW5lIG1tRElHMV9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFkOAorI2RlZmluZSBtbURJRzFfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX1RNRFNfQ1RMX0JJVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxZGEKKyNkZWZpbmUgbW1ESUcxX1RNRFNfQ1RMX0JJVFNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWRiCisjZGVmaW5lIG1tRElHMV9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFkYworI2RlZmluZSBtbURJRzFfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX1RNRFNfQ1RMMF8xX0dFTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxZGQKKyNkZWZpbmUgbW1ESUcxX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9UTURTX0NUTDJfM19HRU5fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWRlCisjZGVmaW5lIG1tRElHMV9UTURTX0NUTDJfM19HRU5fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfRElHX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFlMAorI2RlZmluZSBtbURJRzFfRElHX1ZFUlNJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0RJR19MQU5FX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxZTEKKyNkZWZpbmUgbW1ESUcxX0RJR19MQU5FX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9BRk1UX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWU2CisjZGVmaW5lIG1tRElHMV9BRk1UX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjFlNworI2RlZmluZSBtbURJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxZjYKKyNkZWZpbmUgbW1ESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMV9GT1JDRV9ESUdfRElTQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMWY3CisjZGVmaW5lIG1tRElHMV9GT1JDRV9ESUdfRElTQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kcDFfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDQwMAorI2RlZmluZSBtbURQMV9EUF9MSU5LX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIwOAorI2RlZmluZSBtbURQMV9EUF9MSU5LX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfUElYRUxfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMDkKKyNkZWZpbmUgbW1EUDFfRFBfUElYRUxfRk9STUFUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX01TQV9DT0xPUklNRVRSWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjBhCisjZGVmaW5lIG1tRFAxX0RQX01TQV9DT0xPUklNRVRSWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIwYgorI2RlZmluZSBtbURQMV9EUF9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfVklEX1NUUkVBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMGMKKyNkZWZpbmUgbW1EUDFfRFBfVklEX1NUUkVBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX1NURUVSX0ZJRk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjBkCisjZGVmaW5lIG1tRFAxX0RQX1NURUVSX0ZJRk9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9NU0FfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIwZQorI2RlZmluZSBtbURQMV9EUF9NU0FfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfVklEX1RJTUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMTAKKyNkZWZpbmUgbW1EUDFfRFBfVklEX1RJTUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX1ZJRF9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjExCisjZGVmaW5lIG1tRFAxX0RQX1ZJRF9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9WSURfTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIxMgorI2RlZmluZSBtbURQMV9EUF9WSURfTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfTElOS19GUkFNSU5HX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMTMKKyNkZWZpbmUgbW1EUDFfRFBfTElOS19GUkFNSU5HX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX0hCUjJfRVlFX1BBVFRFUk4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjE0CisjZGVmaW5lIG1tRFAxX0RQX0hCUjJfRVlFX1BBVFRFUk5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9WSURfTVNBX1ZCSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIxNQorI2RlZmluZSBtbURQMV9EUF9WSURfTVNBX1ZCSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfVklEX0lOVEVSUlVQVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMTYKKyNkZWZpbmUgbW1EUDFfRFBfVklEX0lOVEVSUlVQVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjE3CisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9EUEhZX1RSQUlOSU5HX1BBVFRFUk5fU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIxOAorI2RlZmluZSBtbURQMV9EUF9EUEhZX1RSQUlOSU5HX1BBVFRFUk5fU0VMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9TWU0wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMTkKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9TWU0wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfU1lNMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjFhCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfU1lNMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9EUEhZX1NZTTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIxYgorI2RlZmluZSBtbURQMV9EUF9EUEhZX1NZTTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV84QjEwQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMWMKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV84QjEwQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfUFJCU19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjFkCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfUFJCU19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9EUEhZX1NDUkFNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIxZQorI2RlZmluZSBtbURQMV9EUF9EUEhZX1NDUkFNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9DUkNfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMWYKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9DUkNfRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfQ1JDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjIwCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfQ1JDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9EUEhZX0NSQ19SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIyMQorI2RlZmluZSBtbURQMV9EUF9EUEhZX0NSQ19SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9DUkNfTVNUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMjIKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9DUkNfTVNUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjIzCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIyNAorI2RlZmluZSBtbURQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMjUKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX1NFQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjJiCisjZGVmaW5lIG1tRFAxX0RQX1NFQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9TRUNfQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIyYworI2RlZmluZSBtbURQMV9EUF9TRUNfQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0ZSQU1JTkcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMmQKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0ZSQU1JTkcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX1NFQ19GUkFNSU5HMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjJlCisjZGVmaW5lIG1tRFAxX0RQX1NFQ19GUkFNSU5HMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9TRUNfRlJBTUlORzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIyZgorI2RlZmluZSBtbURQMV9EUF9TRUNfRlJBTUlORzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0ZSQU1JTkc0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMzAKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0ZSQU1JTkc0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX1NFQ19BVURfTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjMxCisjZGVmaW5lIG1tRFAxX0RQX1NFQ19BVURfTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9TRUNfQVVEX05fUkVBREJBQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIzMgorI2RlZmluZSBtbURQMV9EUF9TRUNfQVVEX05fUkVBREJBQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0FVRF9NICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMzMKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0FVRF9NX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX1NFQ19BVURfTV9SRUFEQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjM0CisjZGVmaW5lIG1tRFAxX0RQX1NFQ19BVURfTV9SRUFEQkFDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9TRUNfVElNRVNUQU1QICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIzNQorI2RlZmluZSBtbURQMV9EUF9TRUNfVElNRVNUQU1QX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX1BBQ0tFVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyMzYKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX1BBQ0tFVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX01TRV9SQVRFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjM3CisjZGVmaW5lIG1tRFAxX0RQX01TRV9SQVRFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9NU0VfUkFURV9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIzOQorI2RlZmluZSBtbURQMV9EUF9NU0VfUkFURV9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfTVNFX1NBVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyM2EKKyNkZWZpbmUgbW1EUDFfRFBfTVNFX1NBVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX01TRV9TQVQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjNiCisjZGVmaW5lIG1tRFAxX0RQX01TRV9TQVQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9NU0VfU0FUMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIzYworI2RlZmluZSBtbURQMV9EUF9NU0VfU0FUMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfTVNFX1NBVF9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyM2QKKyNkZWZpbmUgbW1EUDFfRFBfTVNFX1NBVF9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX01TRV9MSU5LX1RJTUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjNlCisjZGVmaW5lIG1tRFAxX0RQX01TRV9MSU5LX1RJTUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9NU0VfTUlTQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIzZgorI2RlZmluZSBtbURQMV9EUF9NU0VfTUlTQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9CU19TUl9TV0FQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNDQKKyNkZWZpbmUgbW1EUDFfRFBfRFBIWV9CU19TUl9TV0FQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjQ1CisjZGVmaW5lIG1tRFAxX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9NU0VfU0FUMF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI0NworI2RlZmluZSBtbURQMV9EUF9NU0VfU0FUMF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfTVNFX1NBVDFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNDgKKyNkZWZpbmUgbW1EUDFfRFBfTVNFX1NBVDFfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX01TRV9TQVQyX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjQ5CisjZGVmaW5lIG1tRFAxX0RQX01TRV9TQVQyX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9NU0FfVElNSU5HX1BBUkFNMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI0YworI2RlZmluZSBtbURQMV9EUF9NU0FfVElNSU5HX1BBUkFNMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfTVNBX1RJTUlOR19QQVJBTTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNGQKKyNkZWZpbmUgbW1EUDFfRFBfTVNBX1RJTUlOR19QQVJBTTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX01TQV9USU1JTkdfUEFSQU0zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjRlCisjZGVmaW5lIG1tRFAxX0RQX01TQV9USU1JTkdfUEFSQU0zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9NU0FfVElNSU5HX1BBUkFNNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI0ZgorI2RlZmluZSBtbURQMV9EUF9NU0FfVElNSU5HX1BBUkFNNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfTVNPX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNTAKKyNkZWZpbmUgbW1EUDFfRFBfTVNPX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX01TT19DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjUxCisjZGVmaW5lIG1tRFAxX0RQX01TT19DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9EU0NfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI1MgorI2RlZmluZSBtbURQMV9EUF9EU0NfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNTMKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX1NFQ19DTlRMMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjU0CisjZGVmaW5lIG1tRFAxX0RQX1NFQ19DTlRMM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9TRUNfQ05UTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI1NQorI2RlZmluZSBtbURQMV9EUF9TRUNfQ05UTDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0NOVEw1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNTYKKyNkZWZpbmUgbW1EUDFfRFBfU0VDX0NOVEw1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX1NFQ19DTlRMNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjU3CisjZGVmaW5lIG1tRFAxX0RQX1NFQ19DTlRMNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9TRUNfQ05UTDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI1OAorI2RlZmluZSBtbURQMV9EUF9TRUNfQ05UTDdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfREJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNTkKKyNkZWZpbmUgbW1EUDFfRFBfREJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX01TQV9WQklEX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjVhCisjZGVmaW5lIG1tRFAxX0RQX01TQV9WQklEX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMV9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI1YgorI2RlZmluZSBtbURQMV9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDFfRFBfRFNDX0JZVEVTX1BFUl9QSVhFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNWMKKyNkZWZpbmUgbW1EUDFfRFBfRFNDX0JZVEVTX1BFUl9QSVhFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAxX0RQX0FMUE1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjVkCisjZGVmaW5lIG1tRFAxX0RQX0FMUE1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kaWcyX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg4MDAKKyNkZWZpbmUgbW1ESUcyX0RJR19GRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNjgKKyNkZWZpbmUgbW1ESUcyX0RJR19GRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9ESUdfT1VUUFVUX0NSQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjY5CisjZGVmaW5lIG1tRElHMl9ESUdfT1VUUFVUX0NSQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfRElHX09VVFBVVF9DUkNfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI2YQorI2RlZmluZSBtbURJRzJfRElHX09VVFBVVF9DUkNfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0RJR19DTE9DS19QQVRURVJOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNmIKKyNkZWZpbmUgbW1ESUcyX0RJR19DTE9DS19QQVRURVJOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9ESUdfVEVTVF9QQVRURVJOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjZjCisjZGVmaW5lIG1tRElHMl9ESUdfVEVTVF9QQVRURVJOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfRElHX1JBTkRPTV9QQVRURVJOX1NFRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI2ZAorI2RlZmluZSBtbURJRzJfRElHX1JBTkRPTV9QQVRURVJOX1NFRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0RJR19GSUZPX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNmUKKyNkZWZpbmUgbW1ESUcyX0RJR19GSUZPX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjZmCisjZGVmaW5lIG1tRElHMl9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI3MAorI2RlZmluZSBtbURJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0hETUlfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNzEKKyNkZWZpbmUgbW1ESUcyX0hETUlfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9IRE1JX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjcyCisjZGVmaW5lIG1tRElHMl9IRE1JX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI3MworI2RlZmluZSBtbURJRzJfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNzQKKyNkZWZpbmUgbW1ESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjc1CisjZGVmaW5lIG1tRElHMl9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI3NgorI2RlZmluZSBtbURJRzJfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNzcKKyNkZWZpbmUgbW1ESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjc4CisjZGVmaW5lIG1tRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9JTlRFUlJVUFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI3OQorI2RlZmluZSBtbURJRzJfQUZNVF9JTlRFUlJVUFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0hETUlfR0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyN2IKKyNkZWZpbmUgbW1ESUcyX0hETUlfR0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjdjCisjZGVmaW5lIG1tRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9JU1JDMV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI3ZAorI2RlZmluZSBtbURJRzJfQUZNVF9JU1JDMV8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfSVNSQzFfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyN2UKKyNkZWZpbmUgbW1ESUcyX0FGTVRfSVNSQzFfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX0lTUkMxXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjdmCisjZGVmaW5lIG1tRElHMl9BRk1UX0lTUkMxXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9JU1JDMV8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI4MAorI2RlZmluZSBtbURJRzJfQUZNVF9JU1JDMV8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfSVNSQzFfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyODEKKyNkZWZpbmUgbW1ESUcyX0FGTVRfSVNSQzFfNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX0lTUkMyXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjgyCisjZGVmaW5lIG1tRElHMl9BRk1UX0lTUkMyXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9JU1JDMl8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI4MworI2RlZmluZSBtbURJRzJfQUZNVF9JU1JDMl8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfSVNSQzJfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyODQKKyNkZWZpbmUgbW1ESUcyX0FGTVRfSVNSQzJfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX0lTUkMyXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjg1CisjZGVmaW5lIG1tRElHMl9BRk1UX0lTUkMyXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI4NgorI2RlZmluZSBtbURJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyODcKKyNkZWZpbmUgbW1ESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9IRE1JX0RCX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjg4CisjZGVmaW5lIG1tRElHMl9IRE1JX0RCX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfRE1FX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI4OQorI2RlZmluZSBtbURJRzJfRE1FX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfTVBFR19JTkZPMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyOGEKKyNkZWZpbmUgbW1ESUcyX0FGTVRfTVBFR19JTkZPMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX01QRUdfSU5GTzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjhiCisjZGVmaW5lIG1tRElHMl9BRk1UX01QRUdfSU5GTzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9HRU5FUklDX0hEUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI4YworI2RlZmluZSBtbURJRzJfQUZNVF9HRU5FUklDX0hEUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfR0VORVJJQ18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyOGQKKyNkZWZpbmUgbW1ESUcyX0FGTVRfR0VORVJJQ18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX0dFTkVSSUNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjhlCisjZGVmaW5lIG1tRElHMl9BRk1UX0dFTkVSSUNfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9HRU5FUklDXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI4ZgorI2RlZmluZSBtbURJRzJfQUZNVF9HRU5FUklDXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfR0VORVJJQ18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyOTAKKyNkZWZpbmUgbW1ESUcyX0FGTVRfR0VORVJJQ18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX0dFTkVSSUNfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjkxCisjZGVmaW5lIG1tRElHMl9BRk1UX0dFTkVSSUNfNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9HRU5FUklDXzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI5MgorI2RlZmluZSBtbURJRzJfQUZNVF9HRU5FUklDXzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfR0VORVJJQ182ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyOTMKKyNkZWZpbmUgbW1ESUcyX0FGTVRfR0VORVJJQ182X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX0dFTkVSSUNfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjk0CisjZGVmaW5lIG1tRElHMl9BRk1UX0dFTkVSSUNfN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI5NQorI2RlZmluZSBtbURJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0hETUlfQUNSXzMyXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyOTYKKyNkZWZpbmUgbW1ESUcyX0hETUlfQUNSXzMyXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9IRE1JX0FDUl8zMl8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjk3CisjZGVmaW5lIG1tRElHMl9IRE1JX0FDUl8zMl8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfSERNSV9BQ1JfNDRfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI5OAorI2RlZmluZSBtbURJRzJfSERNSV9BQ1JfNDRfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0hETUlfQUNSXzQ0XzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyOTkKKyNkZWZpbmUgbW1ESUcyX0hETUlfQUNSXzQ0XzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9IRE1JX0FDUl80OF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjlhCisjZGVmaW5lIG1tRElHMl9IRE1JX0FDUl80OF8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfSERNSV9BQ1JfNDhfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI5YgorI2RlZmluZSBtbURJRzJfSERNSV9BQ1JfNDhfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0hETUlfQUNSX1NUQVRVU18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyOWMKKyNkZWZpbmUgbW1ESUcyX0hETUlfQUNSX1NUQVRVU18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9IRE1JX0FDUl9TVEFUVVNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjlkCisjZGVmaW5lIG1tRElHMl9IRE1JX0FDUl9TVEFUVVNfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9BVURJT19JTkZPMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjI5ZQorI2RlZmluZSBtbURJRzJfQUZNVF9BVURJT19JTkZPMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfQVVESU9fSU5GTzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyOWYKKyNkZWZpbmUgbW1ESUcyX0FGTVRfQVVESU9fSU5GTzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UXzYwOTU4XzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmEwCisjZGVmaW5lIG1tRElHMl9BRk1UXzYwOTU4XzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF82MDk1OF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJhMQorI2RlZmluZSBtbURJRzJfQUZNVF82MDk1OF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfQVVESU9fQ1JDX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyYTIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX1JBTVBfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmEzCisjZGVmaW5lIG1tRElHMl9BRk1UX1JBTVBfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9SQU1QX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJhNAorI2RlZmluZSBtbURJRzJfQUZNVF9SQU1QX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfUkFNUF9DT05UUk9MMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyYTUKKyNkZWZpbmUgbW1ESUcyX0FGTVRfUkFNUF9DT05UUk9MMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX1JBTVBfQ09OVFJPTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmE2CisjZGVmaW5lIG1tRElHMl9BRk1UX1JBTVBfQ09OVFJPTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF82MDk1OF8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJhNworI2RlZmluZSBtbURJRzJfQUZNVF82MDk1OF8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfQVVESU9fQ1JDX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyYTgKKyNkZWZpbmUgbW1ESUcyX0FGTVRfQVVESU9fQ1JDX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmE5CisjZGVmaW5lIG1tRElHMl9BRk1UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJhYQorI2RlZmluZSBtbURJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyYWIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX0lORk9GUkFNRV9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmFjCisjZGVmaW5lIG1tRElHMl9BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfQUZNVF9BVURJT19TUkNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJhZAorI2RlZmluZSBtbURJRzJfQUZNVF9BVURJT19TUkNfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0RJR19CRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyYWYKKyNkZWZpbmUgbW1ESUcyX0RJR19CRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9ESUdfQkVfRU5fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmIwCisjZGVmaW5lIG1tRElHMl9ESUdfQkVfRU5fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfVE1EU19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJkMworI2RlZmluZSBtbURJRzJfVE1EU19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX1RNRFNfQ09OVFJPTF9DSEFSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyZDQKKyNkZWZpbmUgbW1ESUcyX1RNRFNfQ09OVFJPTF9DSEFSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9UTURTX0NPTlRST0wwX0ZFRURCQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmQ1CisjZGVmaW5lIG1tRElHMl9UTURTX0NPTlRST0wwX0ZFRURCQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfVE1EU19TVEVSRU9TWU5DX0NUTF9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJkNgorI2RlZmluZSBtbURJRzJfVE1EU19TVEVSRU9TWU5DX0NUTF9TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyZDcKKyNkZWZpbmUgbW1ESUcyX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmQ4CisjZGVmaW5lIG1tRElHMl9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfVE1EU19DVExfQklUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJkYQorI2RlZmluZSBtbURJRzJfVE1EU19DVExfQklUU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyZGIKKyNkZWZpbmUgbW1ESUcyX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9UTURTX1NZTkNfRENCQUxBTkNFX0NIQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmRjCisjZGVmaW5lIG1tRElHMl9UTURTX1NZTkNfRENCQUxBTkNFX0NIQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfVE1EU19DVEwwXzFfR0VOX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJkZAorI2RlZmluZSBtbURJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX1RNRFNfQ1RMMl8zX0dFTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyZGUKKyNkZWZpbmUgbW1ESUcyX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9ESUdfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmUwCisjZGVmaW5lIG1tRElHMl9ESUdfVkVSU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfRElHX0xBTkVfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJlMQorI2RlZmluZSBtbURJRzJfRElHX0xBTkVfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0FGTVRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyZTYKKyNkZWZpbmUgbW1ESUcyX0FGTVRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMmU3CisjZGVmaW5lIG1tRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjJmNgorI2RlZmluZSBtbURJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUcyX0ZPUkNFX0RJR19ESVNBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyZjcKKyNkZWZpbmUgbW1ESUcyX0ZPUkNFX0RJR19ESVNBQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2RwMl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4ODAwCisjZGVmaW5lIG1tRFAyX0RQX0xJTktfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzA4CisjZGVmaW5lIG1tRFAyX0RQX0xJTktfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9QSVhFTF9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMwOQorI2RlZmluZSBtbURQMl9EUF9QSVhFTF9GT1JNQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfTVNBX0NPTE9SSU1FVFJZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMGEKKyNkZWZpbmUgbW1EUDJfRFBfTVNBX0NPTE9SSU1FVFJZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzBiCisjZGVmaW5lIG1tRFAyX0RQX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9WSURfU1RSRUFNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMwYworI2RlZmluZSBtbURQMl9EUF9WSURfU1RSRUFNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfU1RFRVJfRklGTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMGQKKyNkZWZpbmUgbW1EUDJfRFBfU1RFRVJfRklGT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX01TQV9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzBlCisjZGVmaW5lIG1tRFAyX0RQX01TQV9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9WSURfVElNSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMxMAorI2RlZmluZSBtbURQMl9EUF9WSURfVElNSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfVklEX04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMTEKKyNkZWZpbmUgbW1EUDJfRFBfVklEX05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX1ZJRF9NICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzEyCisjZGVmaW5lIG1tRFAyX0RQX1ZJRF9NX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9MSU5LX0ZSQU1JTkdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMxMworI2RlZmluZSBtbURQMl9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfSEJSMl9FWUVfUEFUVEVSTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMTQKKyNkZWZpbmUgbW1EUDJfRFBfSEJSMl9FWUVfUEFUVEVSTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX1ZJRF9NU0FfVkJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzE1CisjZGVmaW5lIG1tRFAyX0RQX1ZJRF9NU0FfVkJJRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9WSURfSU5URVJSVVBUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMxNgorI2RlZmluZSBtbURQMl9EUF9WSURfSU5URVJSVVBUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMTcKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzE4CisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9EUEhZX1NZTTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMxOQorI2RlZmluZSBtbURQMl9EUF9EUEhZX1NZTTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9TWU0xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMWEKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9TWU0xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfU1lNMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzFiCisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfU1lNMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9EUEhZXzhCMTBCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMxYworI2RlZmluZSBtbURQMl9EUF9EUEhZXzhCMTBCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9QUkJTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMWQKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9QUkJTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfU0NSQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzFlCisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfU0NSQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9EUEhZX0NSQ19FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMxZgorI2RlZmluZSBtbURQMl9EUF9EUEhZX0NSQ19FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9DUkNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMjAKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9DUkNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfQ1JDX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzIxCisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfQ1JDX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9EUEhZX0NSQ19NU1RfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMyMgorI2RlZmluZSBtbURQMl9EUF9EUEhZX0NSQ19NU1RfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9DUkNfTVNUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMjMKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfRkFTVF9UUkFJTklORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzI0CisjZGVmaW5lIG1tRFAyX0RQX0RQSFlfRkFTVF9UUkFJTklOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMyNQorI2RlZmluZSBtbURQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMmIKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzJjCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9TRUNfRlJBTUlORzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMyZAorI2RlZmluZSBtbURQMl9EUF9TRUNfRlJBTUlORzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0ZSQU1JTkcyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMmUKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0ZSQU1JTkcyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19GUkFNSU5HMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzJmCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19GUkFNSU5HM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9TRUNfRlJBTUlORzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMzMAorI2RlZmluZSBtbURQMl9EUF9TRUNfRlJBTUlORzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0FVRF9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMzEKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0FVRF9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19BVURfTl9SRUFEQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzMyCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19BVURfTl9SRUFEQkFDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9TRUNfQVVEX00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMzMworI2RlZmluZSBtbURQMl9EUF9TRUNfQVVEX01fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0FVRF9NX1JFQURCQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMzQKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0FVRF9NX1JFQURCQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19USU1FU1RBTVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzM1CisjZGVmaW5lIG1tRFAyX0RQX1NFQ19USU1FU1RBTVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9TRUNfUEFDS0VUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMzNgorI2RlZmluZSBtbURQMl9EUF9TRUNfUEFDS0VUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfTVNFX1JBVEVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzMzcKKyNkZWZpbmUgbW1EUDJfRFBfTVNFX1JBVEVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX01TRV9SQVRFX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzM5CisjZGVmaW5lIG1tRFAyX0RQX01TRV9SQVRFX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9NU0VfU0FUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMzYQorI2RlZmluZSBtbURQMl9EUF9NU0VfU0FUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfTVNFX1NBVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzM2IKKyNkZWZpbmUgbW1EUDJfRFBfTVNFX1NBVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX01TRV9TQVQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzNjCisjZGVmaW5lIG1tRFAyX0RQX01TRV9TQVQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9NU0VfU0FUX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMzZAorI2RlZmluZSBtbURQMl9EUF9NU0VfU0FUX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfTVNFX0xJTktfVElNSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzM2UKKyNkZWZpbmUgbW1EUDJfRFBfTVNFX0xJTktfVElNSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX01TRV9NSVNDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzNmCisjZGVmaW5lIG1tRFAyX0RQX01TRV9NSVNDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM0NAorI2RlZmluZSBtbURQMl9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNDUKKyNkZWZpbmUgbW1EUDJfRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX01TRV9TQVQwX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzQ3CisjZGVmaW5lIG1tRFAyX0RQX01TRV9TQVQwX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9NU0VfU0FUMV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM0OAorI2RlZmluZSBtbURQMl9EUF9NU0VfU0FUMV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfTVNFX1NBVDJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNDkKKyNkZWZpbmUgbW1EUDJfRFBfTVNFX1NBVDJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX01TQV9USU1JTkdfUEFSQU0xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzRjCisjZGVmaW5lIG1tRFAyX0RQX01TQV9USU1JTkdfUEFSQU0xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9NU0FfVElNSU5HX1BBUkFNMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM0ZAorI2RlZmluZSBtbURQMl9EUF9NU0FfVElNSU5HX1BBUkFNMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfTVNBX1RJTUlOR19QQVJBTTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNGUKKyNkZWZpbmUgbW1EUDJfRFBfTVNBX1RJTUlOR19QQVJBTTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX01TQV9USU1JTkdfUEFSQU00ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzRmCisjZGVmaW5lIG1tRFAyX0RQX01TQV9USU1JTkdfUEFSQU00X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9NU09fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM1MAorI2RlZmluZSBtbURQMl9EUF9NU09fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfTVNPX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNTEKKyNkZWZpbmUgbW1EUDJfRFBfTVNPX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX0RTQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzUyCisjZGVmaW5lIG1tRFAyX0RQX0RTQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9TRUNfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM1MworI2RlZmluZSBtbURQMl9EUF9TRUNfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0NOVEwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNTQKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0NOVEwzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19DTlRMNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzU1CisjZGVmaW5lIG1tRFAyX0RQX1NFQ19DTlRMNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9TRUNfQ05UTDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM1NgorI2RlZmluZSBtbURQMl9EUF9TRUNfQ05UTDVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0NOVEw2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNTcKKyNkZWZpbmUgbW1EUDJfRFBfU0VDX0NOVEw2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19DTlRMNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzU4CisjZGVmaW5lIG1tRFAyX0RQX1NFQ19DTlRMN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9EQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM1OQorI2RlZmluZSBtbURQMl9EUF9EQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfTVNBX1ZCSURfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNWEKKyNkZWZpbmUgbW1EUDJfRFBfTVNBX1ZCSURfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzViCisjZGVmaW5lIG1tRFAyX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQMl9EUF9EU0NfQllURVNfUEVSX1BJWEVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM1YworI2RlZmluZSBtbURQMl9EUF9EU0NfQllURVNfUEVSX1BJWEVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDJfRFBfQUxQTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNWQKKyNkZWZpbmUgbW1EUDJfRFBfQUxQTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2RpZzNfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweGMwMAorI2RlZmluZSBtbURJRzNfRElHX0ZFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM2OAorI2RlZmluZSBtbURJRzNfRElHX0ZFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0RJR19PVVRQVVRfQ1JDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNjkKKyNkZWZpbmUgbW1ESUczX0RJR19PVVRQVVRfQ1JDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19ESUdfT1VUUFVUX0NSQ19SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzZhCisjZGVmaW5lIG1tRElHM19ESUdfT1VUUFVUX0NSQ19SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfRElHX0NMT0NLX1BBVFRFUk4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM2YgorI2RlZmluZSBtbURJRzNfRElHX0NMT0NLX1BBVFRFUk5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0RJR19URVNUX1BBVFRFUk4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNmMKKyNkZWZpbmUgbW1ESUczX0RJR19URVNUX1BBVFRFUk5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19ESUdfUkFORE9NX1BBVFRFUk5fU0VFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzZkCisjZGVmaW5lIG1tRElHM19ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfRElHX0ZJRk9fU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM2ZQorI2RlZmluZSBtbURJRzNfRElHX0ZJRk9fU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNmYKKyNkZWZpbmUgbW1ESUczX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzcwCisjZGVmaW5lIG1tRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfSERNSV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM3MQorI2RlZmluZSBtbURJRzNfSERNSV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0hETUlfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNzIKKyNkZWZpbmUgbW1ESUczX0hETUlfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzczCisjZGVmaW5lIG1tRElHM19IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM3NAorI2RlZmluZSBtbURJRzNfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNzUKKyNkZWZpbmUgbW1ESUczX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzc2CisjZGVmaW5lIG1tRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM3NworI2RlZmluZSBtbURJRzNfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzNzgKKyNkZWZpbmUgbW1ESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0lOVEVSUlVQVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzc5CisjZGVmaW5lIG1tRElHM19BRk1UX0lOVEVSUlVQVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfSERNSV9HQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM3YgorI2RlZmluZSBtbURJRzNfSERNSV9HQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzN2MKKyNkZWZpbmUgbW1ESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0lTUkMxXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzdkCisjZGVmaW5lIG1tRElHM19BRk1UX0lTUkMxXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9JU1JDMV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM3ZQorI2RlZmluZSBtbURJRzNfQUZNVF9JU1JDMV8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfSVNSQzFfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzN2YKKyNkZWZpbmUgbW1ESUczX0FGTVRfSVNSQzFfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0lTUkMxXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzgwCisjZGVmaW5lIG1tRElHM19BRk1UX0lTUkMxXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9JU1JDMV80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM4MQorI2RlZmluZSBtbURJRzNfQUZNVF9JU1JDMV80X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfSVNSQzJfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzODIKKyNkZWZpbmUgbW1ESUczX0FGTVRfSVNSQzJfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0lTUkMyXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzgzCisjZGVmaW5lIG1tRElHM19BRk1UX0lTUkMyXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9JU1JDMl8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM4NAorI2RlZmluZSBtbURJRzNfQUZNVF9JU1JDMl8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfSVNSQzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzODUKKyNkZWZpbmUgbW1ESUczX0FGTVRfSVNSQzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzg2CisjZGVmaW5lIG1tRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM4NworI2RlZmluZSBtbURJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0hETUlfREJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzODgKKyNkZWZpbmUgbW1ESUczX0hETUlfREJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19ETUVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzg5CisjZGVmaW5lIG1tRElHM19ETUVfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9NUEVHX0lORk8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM4YQorI2RlZmluZSBtbURJRzNfQUZNVF9NUEVHX0lORk8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfTVBFR19JTkZPMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzOGIKKyNkZWZpbmUgbW1ESUczX0FGTVRfTVBFR19JTkZPMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0dFTkVSSUNfSERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzhjCisjZGVmaW5lIG1tRElHM19BRk1UX0dFTkVSSUNfSERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9HRU5FUklDXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM4ZAorI2RlZmluZSBtbURJRzNfQUZNVF9HRU5FUklDXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfR0VORVJJQ18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzOGUKKyNkZWZpbmUgbW1ESUczX0FGTVRfR0VORVJJQ18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0dFTkVSSUNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzhmCisjZGVmaW5lIG1tRElHM19BRk1UX0dFTkVSSUNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9HRU5FUklDXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM5MAorI2RlZmluZSBtbURJRzNfQUZNVF9HRU5FUklDXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfR0VORVJJQ180ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzOTEKKyNkZWZpbmUgbW1ESUczX0FGTVRfR0VORVJJQ180X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0dFTkVSSUNfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzkyCisjZGVmaW5lIG1tRElHM19BRk1UX0dFTkVSSUNfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9HRU5FUklDXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM5MworI2RlZmluZSBtbURJRzNfQUZNVF9HRU5FUklDXzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfR0VORVJJQ183ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzOTQKKyNkZWZpbmUgbW1ESUczX0FGTVRfR0VORVJJQ183X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzk1CisjZGVmaW5lIG1tRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfSERNSV9BQ1JfMzJfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM5NgorI2RlZmluZSBtbURJRzNfSERNSV9BQ1JfMzJfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0hETUlfQUNSXzMyXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzOTcKKyNkZWZpbmUgbW1ESUczX0hETUlfQUNSXzMyXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19IRE1JX0FDUl80NF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzk4CisjZGVmaW5lIG1tRElHM19IRE1JX0FDUl80NF8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfSERNSV9BQ1JfNDRfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM5OQorI2RlZmluZSBtbURJRzNfSERNSV9BQ1JfNDRfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0hETUlfQUNSXzQ4XzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzOWEKKyNkZWZpbmUgbW1ESUczX0hETUlfQUNSXzQ4XzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19IRE1JX0FDUl80OF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzliCisjZGVmaW5lIG1tRElHM19IRE1JX0FDUl80OF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfSERNSV9BQ1JfU1RBVFVTXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM5YworI2RlZmluZSBtbURJRzNfSERNSV9BQ1JfU1RBVFVTXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0hETUlfQUNSX1NUQVRVU18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzOWQKKyNkZWZpbmUgbW1ESUczX0hETUlfQUNSX1NUQVRVU18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0FVRElPX0lORk8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMzllCisjZGVmaW5lIG1tRElHM19BRk1UX0FVRElPX0lORk8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9BVURJT19JTkZPMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjM5ZgorI2RlZmluZSBtbURJRzNfQUZNVF9BVURJT19JTkZPMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfNjA5NThfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzYTAKKyNkZWZpbmUgbW1ESUczX0FGTVRfNjA5NThfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UXzYwOTU4XzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2ExCisjZGVmaW5lIG1tRElHM19BRk1UXzYwOTU4XzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9BVURJT19DUkNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNhMgorI2RlZmluZSBtbURJRzNfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfUkFNUF9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzYTMKKyNkZWZpbmUgbW1ESUczX0FGTVRfUkFNUF9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX1JBTVBfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2E0CisjZGVmaW5lIG1tRElHM19BRk1UX1JBTVBfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9SQU1QX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNhNQorI2RlZmluZSBtbURJRzNfQUZNVF9SQU1QX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfUkFNUF9DT05UUk9MMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzYTYKKyNkZWZpbmUgbW1ESUczX0FGTVRfUkFNUF9DT05UUk9MM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UXzYwOTU4XzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2E3CisjZGVmaW5lIG1tRElHM19BRk1UXzYwOTU4XzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9BVURJT19DUkNfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNhOAorI2RlZmluZSBtbURJRzNfQUZNVF9BVURJT19DUkNfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzYTkKKyNkZWZpbmUgbW1ESUczX0FGTVRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2FhCisjZGVmaW5lIG1tRElHM19BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNhYgorI2RlZmluZSBtbURJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzYWMKKyNkZWZpbmUgbW1ESUczX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19BRk1UX0FVRElPX1NSQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2FkCisjZGVmaW5lIG1tRElHM19BRk1UX0FVRElPX1NSQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfRElHX0JFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNhZgorI2RlZmluZSBtbURJRzNfRElHX0JFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0RJR19CRV9FTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzYjAKKyNkZWZpbmUgbW1ESUczX0RJR19CRV9FTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19UTURTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2QzCisjZGVmaW5lIG1tRElHM19UTURTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfVE1EU19DT05UUk9MX0NIQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNkNAorI2RlZmluZSBtbURJRzNfVE1EU19DT05UUk9MX0NIQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzZDUKKyNkZWZpbmUgbW1ESUczX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19UTURTX1NURVJFT1NZTkNfQ1RMX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2Q2CisjZGVmaW5lIG1tRElHM19UTURTX1NURVJFT1NZTkNfQ1RMX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNkNworI2RlZmluZSBtbURJRzNfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzZDgKKyNkZWZpbmUgbW1ESUczX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19UTURTX0NUTF9CSVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2RhCisjZGVmaW5lIG1tRElHM19UTURTX0NUTF9CSVRTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNkYgorI2RlZmluZSBtbURJRzNfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzZGMKKyNkZWZpbmUgbW1ESUczX1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19UTURTX0NUTDBfMV9HRU5fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2RkCisjZGVmaW5lIG1tRElHM19UTURTX0NUTDBfMV9HRU5fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfVE1EU19DVEwyXzNfR0VOX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNkZQorI2RlZmluZSBtbURJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0RJR19WRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzZTAKKyNkZWZpbmUgbW1ESUczX0RJR19WRVJTSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19ESUdfTEFORV9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2UxCisjZGVmaW5lIG1tRElHM19ESUdfTEFORV9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfQUZNVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNlNgorI2RlZmluZSBtbURJRzNfQUZNVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzZTcKKyNkZWZpbmUgbW1ESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyM2Y2CisjZGVmaW5lIG1tRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzNfRk9SQ0VfRElHX0RJU0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjNmNworI2RlZmluZSBtbURJRzNfRk9SQ0VfRElHX0RJU0FCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZHAzX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHhjMDAKKyNkZWZpbmUgbW1EUDNfRFBfTElOS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MDgKKyNkZWZpbmUgbW1EUDNfRFBfTElOS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1BJWEVMX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDA5CisjZGVmaW5lIG1tRFAzX0RQX1BJWEVMX0ZPUk1BVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9NU0FfQ09MT1JJTUVUUlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQwYQorI2RlZmluZSBtbURQM19EUF9NU0FfQ09MT1JJTUVUUllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MGIKKyNkZWZpbmUgbW1EUDNfRFBfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1ZJRF9TVFJFQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDBjCisjZGVmaW5lIG1tRFAzX0RQX1ZJRF9TVFJFQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9TVEVFUl9GSUZPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQwZAorI2RlZmluZSBtbURQM19EUF9TVEVFUl9GSUZPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfTVNBX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MGUKKyNkZWZpbmUgbW1EUDNfRFBfTVNBX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1ZJRF9USU1JTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDEwCisjZGVmaW5lIG1tRFAzX0RQX1ZJRF9USU1JTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9WSURfTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQxMQorI2RlZmluZSBtbURQM19EUF9WSURfTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfVklEX00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MTIKKyNkZWZpbmUgbW1EUDNfRFBfVklEX01fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX0xJTktfRlJBTUlOR19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDEzCisjZGVmaW5lIG1tRFAzX0RQX0xJTktfRlJBTUlOR19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9IQlIyX0VZRV9QQVRURVJOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQxNAorI2RlZmluZSBtbURQM19EUF9IQlIyX0VZRV9QQVRURVJOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfVklEX01TQV9WQklEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MTUKKyNkZWZpbmUgbW1EUDNfRFBfVklEX01TQV9WQklEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDE2CisjZGVmaW5lIG1tRFAzX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9EUEhZX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQxNworI2RlZmluZSBtbURQM19EUF9EUEhZX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MTgKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfU1lNMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDE5CisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfU1lNMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9EUEhZX1NZTTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQxYQorI2RlZmluZSBtbURQM19EUF9EUEhZX1NZTTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9TWU0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MWIKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9TWU0yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfOEIxMEJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDFjCisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfOEIxMEJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9EUEhZX1BSQlNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQxZAorI2RlZmluZSBtbURQM19EUF9EUEhZX1BSQlNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9TQ1JBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MWUKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9TQ1JBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfQ1JDX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDFmCisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfQ1JDX0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9EUEhZX0NSQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQyMAorI2RlZmluZSBtbURQM19EUF9EUEhZX0NSQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9DUkNfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MjEKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9DUkNfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfQ1JDX01TVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDIyCisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfQ1JDX01TVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9EUEhZX0NSQ19NU1RfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQyMworI2RlZmluZSBtbURQM19EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MjQKKyNkZWZpbmUgbW1EUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDI1CisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9TRUNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQyYgorI2RlZmluZSBtbURQM19EUF9TRUNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MmMKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19GUkFNSU5HMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDJkCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19GUkFNSU5HMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9TRUNfRlJBTUlORzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQyZQorI2RlZmluZSBtbURQM19EUF9TRUNfRlJBTUlORzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0ZSQU1JTkczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MmYKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0ZSQU1JTkczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19GUkFNSU5HNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDMwCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19GUkFNSU5HNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9TRUNfQVVEX04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQzMQorI2RlZmluZSBtbURQM19EUF9TRUNfQVVEX05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0FVRF9OX1JFQURCQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MzIKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0FVRF9OX1JFQURCQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19BVURfTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDMzCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19BVURfTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9TRUNfQVVEX01fUkVBREJBQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQzNAorI2RlZmluZSBtbURQM19EUF9TRUNfQVVEX01fUkVBREJBQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX1RJTUVTVEFNUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MzUKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX1RJTUVTVEFNUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19QQUNLRVRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDM2CisjZGVmaW5lIG1tRFAzX0RQX1NFQ19QQUNLRVRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9NU0VfUkFURV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQzNworI2RlZmluZSBtbURQM19EUF9NU0VfUkFURV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfTVNFX1JBVEVfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0MzkKKyNkZWZpbmUgbW1EUDNfRFBfTVNFX1JBVEVfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX01TRV9TQVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDNhCisjZGVmaW5lIG1tRFAzX0RQX01TRV9TQVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9NU0VfU0FUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQzYgorI2RlZmluZSBtbURQM19EUF9NU0VfU0FUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfTVNFX1NBVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0M2MKKyNkZWZpbmUgbW1EUDNfRFBfTVNFX1NBVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX01TRV9TQVRfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDNkCisjZGVmaW5lIG1tRFAzX0RQX01TRV9TQVRfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9NU0VfTElOS19USU1JTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQzZQorI2RlZmluZSBtbURQM19EUF9NU0VfTElOS19USU1JTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfTVNFX01JU0NfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0M2YKKyNkZWZpbmUgbW1EUDNfRFBfTVNFX01JU0NfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDQ0CisjZGVmaW5lIG1tRFAzX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ0NQorI2RlZmluZSBtbURQM19EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfTVNFX1NBVDBfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NDcKKyNkZWZpbmUgbW1EUDNfRFBfTVNFX1NBVDBfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX01TRV9TQVQxX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDQ4CisjZGVmaW5lIG1tRFAzX0RQX01TRV9TQVQxX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9NU0VfU0FUMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ0OQorI2RlZmluZSBtbURQM19EUF9NU0VfU0FUMl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfTVNBX1RJTUlOR19QQVJBTTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NGMKKyNkZWZpbmUgbW1EUDNfRFBfTVNBX1RJTUlOR19QQVJBTTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX01TQV9USU1JTkdfUEFSQU0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDRkCisjZGVmaW5lIG1tRFAzX0RQX01TQV9USU1JTkdfUEFSQU0yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9NU0FfVElNSU5HX1BBUkFNMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ0ZQorI2RlZmluZSBtbURQM19EUF9NU0FfVElNSU5HX1BBUkFNM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfTVNBX1RJTUlOR19QQVJBTTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NGYKKyNkZWZpbmUgbW1EUDNfRFBfTVNBX1RJTUlOR19QQVJBTTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX01TT19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDUwCisjZGVmaW5lIG1tRFAzX0RQX01TT19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9NU09fQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ1MQorI2RlZmluZSBtbURQM19EUF9NU09fQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfRFNDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NTIKKyNkZWZpbmUgbW1EUDNfRFBfRFNDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDUzCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9TRUNfQ05UTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ1NAorI2RlZmluZSBtbURQM19EUF9TRUNfQ05UTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0NOVEw0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NTUKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0NOVEw0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX1NFQ19DTlRMNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDU2CisjZGVmaW5lIG1tRFAzX0RQX1NFQ19DTlRMNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9TRUNfQ05UTDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ1NworI2RlZmluZSBtbURQM19EUF9TRUNfQ05UTDZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0NOVEw3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NTgKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX0NOVEw3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX0RCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDU5CisjZGVmaW5lIG1tRFAzX0RQX0RCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9NU0FfVkJJRF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ1YQorI2RlZmluZSBtbURQM19EUF9NU0FfVkJJRF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NWIKKyNkZWZpbmUgbW1EUDNfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFAzX0RQX0RTQ19CWVRFU19QRVJfUElYRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDVjCisjZGVmaW5lIG1tRFAzX0RQX0RTQ19CWVRFU19QRVJfUElYRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQM19EUF9BTFBNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ1ZAorI2RlZmluZSBtbURQM19EUF9BTFBNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZGlnNF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MTAwMAorI2RlZmluZSBtbURJRzRfRElHX0ZFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ2OAorI2RlZmluZSBtbURJRzRfRElHX0ZFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0RJR19PVVRQVVRfQ1JDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NjkKKyNkZWZpbmUgbW1ESUc0X0RJR19PVVRQVVRfQ1JDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9ESUdfT1VUUFVUX0NSQ19SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDZhCisjZGVmaW5lIG1tRElHNF9ESUdfT1VUUFVUX0NSQ19SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfRElHX0NMT0NLX1BBVFRFUk4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ2YgorI2RlZmluZSBtbURJRzRfRElHX0NMT0NLX1BBVFRFUk5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0RJR19URVNUX1BBVFRFUk4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NmMKKyNkZWZpbmUgbW1ESUc0X0RJR19URVNUX1BBVFRFUk5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9ESUdfUkFORE9NX1BBVFRFUk5fU0VFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDZkCisjZGVmaW5lIG1tRElHNF9ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfRElHX0ZJRk9fU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ2ZQorI2RlZmluZSBtbURJRzRfRElHX0ZJRk9fU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NmYKKyNkZWZpbmUgbW1ESUc0X0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDcwCisjZGVmaW5lIG1tRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfSERNSV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ3MQorI2RlZmluZSBtbURJRzRfSERNSV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0hETUlfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NzIKKyNkZWZpbmUgbW1ESUc0X0hETUlfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDczCisjZGVmaW5lIG1tRElHNF9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ3NAorI2RlZmluZSBtbURJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NzUKKyNkZWZpbmUgbW1ESUc0X0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDc2CisjZGVmaW5lIG1tRElHNF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ3NworI2RlZmluZSBtbURJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0NzgKKyNkZWZpbmUgbW1ESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0lOVEVSUlVQVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDc5CisjZGVmaW5lIG1tRElHNF9BRk1UX0lOVEVSUlVQVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfSERNSV9HQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ3YgorI2RlZmluZSBtbURJRzRfSERNSV9HQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0N2MKKyNkZWZpbmUgbW1ESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0lTUkMxXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDdkCisjZGVmaW5lIG1tRElHNF9BRk1UX0lTUkMxXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9JU1JDMV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ3ZQorI2RlZmluZSBtbURJRzRfQUZNVF9JU1JDMV8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfSVNSQzFfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0N2YKKyNkZWZpbmUgbW1ESUc0X0FGTVRfSVNSQzFfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0lTUkMxXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDgwCisjZGVmaW5lIG1tRElHNF9BRk1UX0lTUkMxXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9JU1JDMV80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ4MQorI2RlZmluZSBtbURJRzRfQUZNVF9JU1JDMV80X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfSVNSQzJfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0ODIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfSVNSQzJfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0lTUkMyXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDgzCisjZGVmaW5lIG1tRElHNF9BRk1UX0lTUkMyXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9JU1JDMl8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ4NAorI2RlZmluZSBtbURJRzRfQUZNVF9JU1JDMl8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfSVNSQzJfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0ODUKKyNkZWZpbmUgbW1ESUc0X0FGTVRfSVNSQzJfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDg2CisjZGVmaW5lIG1tRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ4NworI2RlZmluZSBtbURJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0hETUlfREJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0ODgKKyNkZWZpbmUgbW1ESUc0X0hETUlfREJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9ETUVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDg5CisjZGVmaW5lIG1tRElHNF9ETUVfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9NUEVHX0lORk8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ4YQorI2RlZmluZSBtbURJRzRfQUZNVF9NUEVHX0lORk8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfTVBFR19JTkZPMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0OGIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfTVBFR19JTkZPMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0dFTkVSSUNfSERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDhjCisjZGVmaW5lIG1tRElHNF9BRk1UX0dFTkVSSUNfSERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9HRU5FUklDXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ4ZAorI2RlZmluZSBtbURJRzRfQUZNVF9HRU5FUklDXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfR0VORVJJQ18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0OGUKKyNkZWZpbmUgbW1ESUc0X0FGTVRfR0VORVJJQ18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0dFTkVSSUNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDhmCisjZGVmaW5lIG1tRElHNF9BRk1UX0dFTkVSSUNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9HRU5FUklDXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ5MAorI2RlZmluZSBtbURJRzRfQUZNVF9HRU5FUklDXzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfR0VORVJJQ180ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0OTEKKyNkZWZpbmUgbW1ESUc0X0FGTVRfR0VORVJJQ180X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0dFTkVSSUNfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDkyCisjZGVmaW5lIG1tRElHNF9BRk1UX0dFTkVSSUNfNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9HRU5FUklDXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ5MworI2RlZmluZSBtbURJRzRfQUZNVF9HRU5FUklDXzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfR0VORVJJQ183ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0OTQKKyNkZWZpbmUgbW1ESUc0X0FGTVRfR0VORVJJQ183X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDk1CisjZGVmaW5lIG1tRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfSERNSV9BQ1JfMzJfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ5NgorI2RlZmluZSBtbURJRzRfSERNSV9BQ1JfMzJfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0hETUlfQUNSXzMyXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0OTcKKyNkZWZpbmUgbW1ESUc0X0hETUlfQUNSXzMyXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9IRE1JX0FDUl80NF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDk4CisjZGVmaW5lIG1tRElHNF9IRE1JX0FDUl80NF8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfSERNSV9BQ1JfNDRfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ5OQorI2RlZmluZSBtbURJRzRfSERNSV9BQ1JfNDRfMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0hETUlfQUNSXzQ4XzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0OWEKKyNkZWZpbmUgbW1ESUc0X0hETUlfQUNSXzQ4XzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9IRE1JX0FDUl80OF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDliCisjZGVmaW5lIG1tRElHNF9IRE1JX0FDUl80OF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfSERNSV9BQ1JfU1RBVFVTXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ5YworI2RlZmluZSBtbURJRzRfSERNSV9BQ1JfU1RBVFVTXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0hETUlfQUNSX1NUQVRVU18xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0OWQKKyNkZWZpbmUgbW1ESUc0X0hETUlfQUNSX1NUQVRVU18xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0FVRElPX0lORk8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNDllCisjZGVmaW5lIG1tRElHNF9BRk1UX0FVRElPX0lORk8wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9BVURJT19JTkZPMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQ5ZgorI2RlZmluZSBtbURJRzRfQUZNVF9BVURJT19JTkZPMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfNjA5NThfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0YTAKKyNkZWZpbmUgbW1ESUc0X0FGTVRfNjA5NThfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UXzYwOTU4XzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGExCisjZGVmaW5lIG1tRElHNF9BRk1UXzYwOTU4XzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9BVURJT19DUkNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRhMgorI2RlZmluZSBtbURJRzRfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfUkFNUF9DT05UUk9MMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0YTMKKyNkZWZpbmUgbW1ESUc0X0FGTVRfUkFNUF9DT05UUk9MMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX1JBTVBfQ09OVFJPTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGE0CisjZGVmaW5lIG1tRElHNF9BRk1UX1JBTVBfQ09OVFJPTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9SQU1QX0NPTlRST0wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRhNQorI2RlZmluZSBtbURJRzRfQUZNVF9SQU1QX0NPTlRST0wyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfUkFNUF9DT05UUk9MMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0YTYKKyNkZWZpbmUgbW1ESUc0X0FGTVRfUkFNUF9DT05UUk9MM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UXzYwOTU4XzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGE3CisjZGVmaW5lIG1tRElHNF9BRk1UXzYwOTU4XzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9BVURJT19DUkNfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRhOAorI2RlZmluZSBtbURJRzRfQUZNVF9BVURJT19DUkNfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0YTkKKyNkZWZpbmUgbW1ESUc0X0FGTVRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGFhCisjZGVmaW5lIG1tRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRhYgorI2RlZmluZSBtbURJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0YWMKKyNkZWZpbmUgbW1ESUc0X0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9BRk1UX0FVRElPX1NSQ19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGFkCisjZGVmaW5lIG1tRElHNF9BRk1UX0FVRElPX1NSQ19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfRElHX0JFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRhZgorI2RlZmluZSBtbURJRzRfRElHX0JFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0RJR19CRV9FTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0YjAKKyNkZWZpbmUgbW1ESUc0X0RJR19CRV9FTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9UTURTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGQzCisjZGVmaW5lIG1tRElHNF9UTURTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfVE1EU19DT05UUk9MX0NIQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRkNAorI2RlZmluZSBtbURJRzRfVE1EU19DT05UUk9MX0NIQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X1RNRFNfQ09OVFJPTDBfRkVFREJBQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0ZDUKKyNkZWZpbmUgbW1ESUc0X1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9UTURTX1NURVJFT1NZTkNfQ1RMX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGQ2CisjZGVmaW5lIG1tRElHNF9UTURTX1NURVJFT1NZTkNfQ1RMX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRkNworI2RlZmluZSBtbURJRzRfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0ZDgKKyNkZWZpbmUgbW1ESUc0X1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9UTURTX0NUTF9CSVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGRhCisjZGVmaW5lIG1tRElHNF9UTURTX0NUTF9CSVRTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRkYgorI2RlZmluZSBtbURJRzRfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0ZGMKKyNkZWZpbmUgbW1ESUc0X1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGRkCisjZGVmaW5lIG1tRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfVE1EU19DVEwyXzNfR0VOX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRkZQorI2RlZmluZSBtbURJRzRfVE1EU19DVEwyXzNfR0VOX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0RJR19WRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0ZTAKKyNkZWZpbmUgbW1ESUc0X0RJR19WRVJTSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9ESUdfTEFORV9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGUxCisjZGVmaW5lIG1tRElHNF9ESUdfTEFORV9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfQUZNVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRlNgorI2RlZmluZSBtbURJRzRfQUZNVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0ZTcKKyNkZWZpbmUgbW1ESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNGY2CisjZGVmaW5lIG1tRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURJRzRfRk9SQ0VfRElHX0RJU0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjRmNworI2RlZmluZSBtbURJRzRfRk9SQ0VfRElHX0RJU0FCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZHA0X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxMDAwCisjZGVmaW5lIG1tRFA0X0RQX0xJTktfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTA4CisjZGVmaW5lIG1tRFA0X0RQX0xJTktfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9QSVhFTF9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUwOQorI2RlZmluZSBtbURQNF9EUF9QSVhFTF9GT1JNQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfTVNBX0NPTE9SSU1FVFJZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MGEKKyNkZWZpbmUgbW1EUDRfRFBfTVNBX0NPTE9SSU1FVFJZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTBiCisjZGVmaW5lIG1tRFA0X0RQX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9WSURfU1RSRUFNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUwYworI2RlZmluZSBtbURQNF9EUF9WSURfU1RSRUFNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfU1RFRVJfRklGTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MGQKKyNkZWZpbmUgbW1EUDRfRFBfU1RFRVJfRklGT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX01TQV9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTBlCisjZGVmaW5lIG1tRFA0X0RQX01TQV9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9WSURfVElNSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUxMAorI2RlZmluZSBtbURQNF9EUF9WSURfVElNSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfVklEX04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MTEKKyNkZWZpbmUgbW1EUDRfRFBfVklEX05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX1ZJRF9NICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTEyCisjZGVmaW5lIG1tRFA0X0RQX1ZJRF9NX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9MSU5LX0ZSQU1JTkdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUxMworI2RlZmluZSBtbURQNF9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfSEJSMl9FWUVfUEFUVEVSTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MTQKKyNkZWZpbmUgbW1EUDRfRFBfSEJSMl9FWUVfUEFUVEVSTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX1ZJRF9NU0FfVkJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTE1CisjZGVmaW5lIG1tRFA0X0RQX1ZJRF9NU0FfVkJJRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9WSURfSU5URVJSVVBUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUxNgorI2RlZmluZSBtbURQNF9EUF9WSURfSU5URVJSVVBUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MTcKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTE4CisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9EUEhZX1NZTTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUxOQorI2RlZmluZSBtbURQNF9EUF9EUEhZX1NZTTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9TWU0xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MWEKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9TWU0xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfU1lNMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTFiCisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfU1lNMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9EUEhZXzhCMTBCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUxYworI2RlZmluZSBtbURQNF9EUF9EUEhZXzhCMTBCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9QUkJTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MWQKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9QUkJTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfU0NSQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTFlCisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfU0NSQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9EUEhZX0NSQ19FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUxZgorI2RlZmluZSBtbURQNF9EUF9EUEhZX0NSQ19FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9DUkNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MjAKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9DUkNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfQ1JDX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTIxCisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfQ1JDX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9EUEhZX0NSQ19NU1RfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUyMgorI2RlZmluZSBtbURQNF9EUF9EUEhZX0NSQ19NU1RfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9DUkNfTVNUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MjMKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTI0CisjZGVmaW5lIG1tRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUyNQorI2RlZmluZSBtbURQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MmIKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTJjCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9TRUNfRlJBTUlORzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUyZAorI2RlZmluZSBtbURQNF9EUF9TRUNfRlJBTUlORzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0ZSQU1JTkcyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MmUKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0ZSQU1JTkcyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19GUkFNSU5HMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTJmCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19GUkFNSU5HM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9TRUNfRlJBTUlORzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUzMAorI2RlZmluZSBtbURQNF9EUF9TRUNfRlJBTUlORzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0FVRF9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MzEKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0FVRF9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19BVURfTl9SRUFEQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTMyCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19BVURfTl9SRUFEQkFDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9TRUNfQVVEX00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUzMworI2RlZmluZSBtbURQNF9EUF9TRUNfQVVEX01fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0FVRF9NX1JFQURCQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MzQKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0FVRF9NX1JFQURCQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19USU1FU1RBTVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTM1CisjZGVmaW5lIG1tRFA0X0RQX1NFQ19USU1FU1RBTVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9TRUNfUEFDS0VUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUzNgorI2RlZmluZSBtbURQNF9EUF9TRUNfUEFDS0VUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfTVNFX1JBVEVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1MzcKKyNkZWZpbmUgbW1EUDRfRFBfTVNFX1JBVEVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX01TRV9SQVRFX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTM5CisjZGVmaW5lIG1tRFA0X0RQX01TRV9SQVRFX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9NU0VfU0FUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUzYQorI2RlZmluZSBtbURQNF9EUF9NU0VfU0FUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfTVNFX1NBVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1M2IKKyNkZWZpbmUgbW1EUDRfRFBfTVNFX1NBVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX01TRV9TQVQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTNjCisjZGVmaW5lIG1tRFA0X0RQX01TRV9TQVQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9NU0VfU0FUX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUzZAorI2RlZmluZSBtbURQNF9EUF9NU0VfU0FUX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfTVNFX0xJTktfVElNSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1M2UKKyNkZWZpbmUgbW1EUDRfRFBfTVNFX0xJTktfVElNSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX01TRV9NSVNDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTNmCisjZGVmaW5lIG1tRFA0X0RQX01TRV9NSVNDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjU0NAorI2RlZmluZSBtbURQNF9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1NDUKKyNkZWZpbmUgbW1EUDRfRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX01TRV9TQVQwX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTQ3CisjZGVmaW5lIG1tRFA0X0RQX01TRV9TQVQwX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9NU0VfU0FUMV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjU0OAorI2RlZmluZSBtbURQNF9EUF9NU0VfU0FUMV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfTVNFX1NBVDJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1NDkKKyNkZWZpbmUgbW1EUDRfRFBfTVNFX1NBVDJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX01TQV9USU1JTkdfUEFSQU0xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTRjCisjZGVmaW5lIG1tRFA0X0RQX01TQV9USU1JTkdfUEFSQU0xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9NU0FfVElNSU5HX1BBUkFNMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjU0ZAorI2RlZmluZSBtbURQNF9EUF9NU0FfVElNSU5HX1BBUkFNMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfTVNBX1RJTUlOR19QQVJBTTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1NGUKKyNkZWZpbmUgbW1EUDRfRFBfTVNBX1RJTUlOR19QQVJBTTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX01TQV9USU1JTkdfUEFSQU00ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTRmCisjZGVmaW5lIG1tRFA0X0RQX01TQV9USU1JTkdfUEFSQU00X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9NU09fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjU1MAorI2RlZmluZSBtbURQNF9EUF9NU09fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfTVNPX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1NTEKKyNkZWZpbmUgbW1EUDRfRFBfTVNPX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX0RTQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTUyCisjZGVmaW5lIG1tRFA0X0RQX0RTQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9TRUNfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjU1MworI2RlZmluZSBtbURQNF9EUF9TRUNfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0NOVEwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1NTQKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0NOVEwzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19DTlRMNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTU1CisjZGVmaW5lIG1tRFA0X0RQX1NFQ19DTlRMNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9TRUNfQ05UTDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjU1NgorI2RlZmluZSBtbURQNF9EUF9TRUNfQ05UTDVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0NOVEw2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1NTcKKyNkZWZpbmUgbW1EUDRfRFBfU0VDX0NOVEw2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19DTlRMNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTU4CisjZGVmaW5lIG1tRFA0X0RQX1NFQ19DTlRMN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9EQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjU1OQorI2RlZmluZSBtbURQNF9EUF9EQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfTVNBX1ZCSURfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1NWEKKyNkZWZpbmUgbW1EUDRfRFBfTVNBX1ZCSURfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNTViCisjZGVmaW5lIG1tRFA0X0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQNF9EUF9EU0NfQllURVNfUEVSX1BJWEVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjU1YworI2RlZmluZSBtbURQNF9EUF9EU0NfQllURVNfUEVSX1BJWEVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUDRfRFBfQUxQTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1NWQKKyNkZWZpbmUgbW1EUDRfRFBfQUxQTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNpb19kY2lvX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRENfR0VORVJJQ0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODY4CisjZGVmaW5lIG1tRENfR0VORVJJQ0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dFTkVSSUNCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjg2OQorI2RlZmluZSBtbURDX0dFTkVSSUNCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19SRUZfQ0xLX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4NmIKKyNkZWZpbmUgbW1EQ19SRUZfQ0xLX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tVU5JUEhZQV9MSU5LX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODZkCisjZGVmaW5lIG1tVU5JUEhZQV9MSU5LX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVVOSVBIWUFfQ0hBTk5FTF9YQkFSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjg2ZQorI2RlZmluZSBtbVVOSVBIWUFfQ0hBTk5FTF9YQkFSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1VTklQSFlCX0xJTktfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4NmYKKyNkZWZpbmUgbW1VTklQSFlCX0xJTktfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tVU5JUEhZQl9DSEFOTkVMX1hCQVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODcwCisjZGVmaW5lIG1tVU5JUEhZQl9DSEFOTkVMX1hCQVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVVOSVBIWUNfTElOS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjg3MQorI2RlZmluZSBtbVVOSVBIWUNfTElOS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1VTklQSFlDX0NIQU5ORUxfWEJBUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4NzIKKyNkZWZpbmUgbW1VTklQSFlDX0NIQU5ORUxfWEJBUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tVU5JUEhZRF9MSU5LX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODczCisjZGVmaW5lIG1tVU5JUEhZRF9MSU5LX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVVOSVBIWURfQ0hBTk5FTF9YQkFSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjg3NAorI2RlZmluZSBtbVVOSVBIWURfQ0hBTk5FTF9YQkFSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1VTklQSFlFX0xJTktfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4NzUKKyNkZWZpbmUgbW1VTklQSFlFX0xJTktfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tVU5JUEhZRV9DSEFOTkVMX1hCQVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODc2CisjZGVmaW5lIG1tVU5JUEhZRV9DSEFOTkVMX1hCQVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSU9fV1JDTURfREVMQVkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjg3ZQorI2RlZmluZSBtbURDSU9fV1JDTURfREVMQVlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QSU5TVFJBUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ODAKKyNkZWZpbmUgbW1EQ19QSU5TVFJBUFNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTFZUTUFfUFdSU0VRX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODgzCisjZGVmaW5lIG1tTFZUTUFfUFdSU0VRX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUxWVE1BX1BXUlNFUV9TVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjg4NAorI2RlZmluZSBtbUxWVE1BX1BXUlNFUV9TVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1MVlRNQV9QV1JTRVFfUkVGX0RJViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ODUKKyNkZWZpbmUgbW1MVlRNQV9QV1JTRVFfUkVGX0RJVl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTFZUTUFfUFdSU0VRX0RFTEFZMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODg2CisjZGVmaW5lIG1tTFZUTUFfUFdSU0VRX0RFTEFZMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUxWVE1BX1BXUlNFUV9ERUxBWTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjg4NworI2RlZmluZSBtbUxWVE1BX1BXUlNFUV9ERUxBWTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1CTF9QV01fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ODgKKyNkZWZpbmUgbW1CTF9QV01fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tQkxfUFdNX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODg5CisjZGVmaW5lIG1tQkxfUFdNX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUJMX1BXTV9QRVJJT0RfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjg4YQorI2RlZmluZSBtbUJMX1BXTV9QRVJJT0RfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1CTF9QV01fR1JQMV9SRUdfTE9DSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4OGIKKyNkZWZpbmUgbW1CTF9QV01fR1JQMV9SRUdfTE9DS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENJT19HU0xfR0VOTEtfUEFEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODhjCisjZGVmaW5lIG1tRENJT19HU0xfR0VOTEtfUEFEX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDSU9fR1NMX1NXQVBMT0NLX1BBRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjg4ZAorI2RlZmluZSBtbURDSU9fR1NMX1NXQVBMT0NLX1BBRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ0lPX0NMT0NLX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4OTUKKyNkZWZpbmUgbW1EQ0lPX0NMT0NLX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENJT19TT0ZUX1JFU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODllCisjZGVmaW5lIG1tRENJT19TT0ZUX1JFU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjaW9fZGNpb19jaGlwX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRENfR1BJT19HRU5FUklDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGM4CisjZGVmaW5lIG1tRENfR1BJT19HRU5FUklDX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fR0VORVJJQ19BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhjOQorI2RlZmluZSBtbURDX0dQSU9fR0VORVJJQ19BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0dFTkVSSUNfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4Y2EKKyNkZWZpbmUgbW1EQ19HUElPX0dFTkVSSUNfRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19HRU5FUklDX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGNiCisjZGVmaW5lIG1tRENfR1BJT19HRU5FUklDX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fRERDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhkMAorI2RlZmluZSBtbURDX0dQSU9fRERDMV9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0REQzFfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZDEKKyNkZWZpbmUgbW1EQ19HUElPX0REQzFfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19EREMxX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGQyCisjZGVmaW5lIG1tRENfR1BJT19EREMxX0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fRERDMV9ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhkMworI2RlZmluZSBtbURDX0dQSU9fRERDMV9ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0REQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZDQKKyNkZWZpbmUgbW1EQ19HUElPX0REQzJfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19EREMyX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGQ1CisjZGVmaW5lIG1tRENfR1BJT19EREMyX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fRERDMl9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhkNgorI2RlZmluZSBtbURDX0dQSU9fRERDMl9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0REQzJfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZDcKKyNkZWZpbmUgbW1EQ19HUElPX0REQzJfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19EREMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGQ4CisjZGVmaW5lIG1tRENfR1BJT19EREMzX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fRERDM19BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhkOQorI2RlZmluZSBtbURDX0dQSU9fRERDM19BX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0REQzNfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZGEKKyNkZWZpbmUgbW1EQ19HUElPX0REQzNfRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19EREMzX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGRiCisjZGVmaW5lIG1tRENfR1BJT19EREMzX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fRERDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhkYworI2RlZmluZSBtbURDX0dQSU9fRERDNF9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0REQzRfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZGQKKyNkZWZpbmUgbW1EQ19HUElPX0REQzRfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19EREM0X0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGRlCisjZGVmaW5lIG1tRENfR1BJT19EREM0X0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fRERDNF9ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhkZgorI2RlZmluZSBtbURDX0dQSU9fRERDNF9ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0REQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZTAKKyNkZWZpbmUgbW1EQ19HUElPX0REQzVfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19EREM1X0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGUxCisjZGVmaW5lIG1tRENfR1BJT19EREM1X0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fRERDNV9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhlMgorI2RlZmluZSBtbURDX0dQSU9fRERDNV9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0REQzVfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZTMKKyNkZWZpbmUgbW1EQ19HUElPX0REQzVfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19ERENWR0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGU4CisjZGVmaW5lIG1tRENfR1BJT19ERENWR0FfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fRERDVkdBX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhlOQorI2RlZmluZSBtbURDX0dQSU9fRERDVkdBX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0REQ1ZHQV9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZWEKKyNkZWZpbmUgbW1EQ19HUElPX0REQ1ZHQV9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19ERENWR0FfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGViCisjZGVmaW5lIG1tRENfR1BJT19ERENWR0FfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fR0VOTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhmMAorI2RlZmluZSBtbURDX0dQSU9fR0VOTEtfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0dFTkxLX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZjEKKyNkZWZpbmUgbW1EQ19HUElPX0dFTkxLX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19HRU5MS19FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGYyCisjZGVmaW5lIG1tRENfR1BJT19HRU5MS19FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fR0VOTEtfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhmMworI2RlZmluZSBtbURDX0dQSU9fR0VOTEtfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0hQRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZjQKKyNkZWZpbmUgbW1EQ19HUElPX0hQRF9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19IUERfQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGY1CisjZGVmaW5lIG1tRENfR1BJT19IUERfQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fSFBEX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhmNgorI2RlZmluZSBtbURDX0dQSU9fSFBEX0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0hQRF9ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZjcKKyNkZWZpbmUgbW1EQ19HUElPX0hQRF9ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19QV1JTRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGY4CisjZGVmaW5lIG1tRENfR1BJT19QV1JTRVFfTUFTS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fUFdSU0VRX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhmOQorI2RlZmluZSBtbURDX0dQSU9fUFdSU0VRX0FfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX1BXUlNFUV9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZmEKKyNkZWZpbmUgbW1EQ19HUElPX1BXUlNFUV9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19QV1JTRVFfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGZiCisjZGVmaW5lIG1tRENfR1BJT19QV1JTRVFfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fUEFEX1NUUkVOR1RIXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhmYworI2RlZmluZSBtbURDX0dQSU9fUEFEX1NUUkVOR1RIXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX1BBRF9TVFJFTkdUSF8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI4ZmQKKyNkZWZpbmUgbW1EQ19HUElPX1BBRF9TVFJFTkdUSF8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUEhZX0FVWF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOGZmCisjZGVmaW5lIG1tUEhZX0FVWF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fVFgxMl9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkxNQorI2RlZmluZSBtbURDX0dQSU9fVFgxMl9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0FVWF9DVFJMXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MTYKKyNkZWZpbmUgbW1EQ19HUElPX0FVWF9DVFJMXzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19BVVhfQ1RSTF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTE3CisjZGVmaW5lIG1tRENfR1BJT19BVVhfQ1RSTF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fQVVYX0NUUkxfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkxOAorI2RlZmluZSBtbURDX0dQSU9fQVVYX0NUUkxfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX1JYRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MTkKKyNkZWZpbmUgbW1EQ19HUElPX1JYRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19QVUxMVVBFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTFhCisjZGVmaW5lIG1tRENfR1BJT19QVUxMVVBFTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX0dQSU9fQVVYX0NUUkxfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkxYgorI2RlZmluZSBtbURDX0dQSU9fQVVYX0NUUkxfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19HUElPX0FVWF9DVFJMXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MWMKKyNkZWZpbmUgbW1EQ19HUElPX0FVWF9DVFJMXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfR1BJT19BVVhfQ1RSTF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTFkCisjZGVmaW5lIG1tRENfR1BJT19BVVhfQ1RSTF81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbUFVWEkyQ19QQURfQUxMX1BXUl9PSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkxZQorI2RlZmluZSBtbUFVWEkyQ19QQURfQUxMX1BXUl9PS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjMF9kaXNwZGVjX2RzY190b3BfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1EU0NfVE9QMF9EU0NfVE9QX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAKKyNkZWZpbmUgbW1EU0NfVE9QMF9EU0NfVE9QX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDX1RPUDBfRFNDX0RFQlVHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAxCisjZGVmaW5lIG1tRFNDX1RPUDBfRFNDX0RFQlVHX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzBfZGlzcGRlY19kc2NjaWZfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1EU0NDSUYwX0RTQ0NJRl9DT05GSUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDUKKyNkZWZpbmUgbW1EU0NDSUYwX0RTQ0NJRl9DT05GSUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQ0lGMF9EU0NDSUZfQ09ORklHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDA2CisjZGVmaW5lIG1tRFNDQ0lGMF9EU0NDSUZfQ09ORklHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzBfZGlzcGRlY19kc2NjX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19DT05GSUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDBhCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19DT05GSUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfQ09ORklHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwYgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfQ09ORklHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMGMKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDBkCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwZQorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMGYKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDEwCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxMQorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUc0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMTIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUc0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDEzCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxNAorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUc3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMTUKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUc3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDE2CisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxNworI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMTgKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDE5CisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxYQorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMWIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDFjCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxZAorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMWUKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDFmCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyMAorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMjEKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcxOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDIyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19QUFNfQ09ORklHMjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyMworI2RlZmluZSBtbURTQ0MwX0RTQ0NfUFBTX0NPTkZJRzIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMjQKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1BQU19DT05GSUcyMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDI1CisjZGVmaW5lIG1tRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyNgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMjcKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDI4CisjZGVmaW5lIG1tRFNDQzBfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyOQorI2RlZmluZSBtbURTQ0MwX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMmEKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDJiCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfTUFYX0FCU19FUlJPUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyYworI2RlZmluZSBtbURTQ0MwX0RTQ0NfTUFYX0FCU19FUlJPUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX01BWF9BQlNfRVJST1IxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMmQKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX01BWF9BQlNfRVJST1IxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDJlCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyZgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMzAKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDMxCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAzMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMzMKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzBfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDM0CisjZGVmaW5lIG1tRFNDQzBfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAzNQorI2RlZmluZSBtbURTQ0MwX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwM2EKKyNkZWZpbmUgbW1EU0NDMF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjMF9kaXNwZGVjX2RzY19kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YzE0MAorI2RlZmluZSBtbURDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA1MAorI2RlZmluZSBtbURDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNTEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDUyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xOV9QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA1MworI2RlZmluZSBtbURDX1BFUkZNT04xOV9QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTlfUEVSRk1PTl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNTQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTlfUEVSRk1PTl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE5X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDU1CisjZGVmaW5lIG1tRENfUEVSRk1PTjE5X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04xOV9QRVJGTU9OX0NWQUxVRV9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA1NgorI2RlZmluZSBtbURDX1BFUkZNT04xOV9QRVJGTU9OX0NWQUxVRV9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTlfUEVSRk1PTl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNTcKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMTlfUEVSRk1PTl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjE5X1BFUkZNT05fTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDU4CisjZGVmaW5lIG1tRENfUEVSRk1PTjE5X1BFUkZNT05fTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzFfZGlzcGRlY19kc2NfdG9wX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxNzAKKyNkZWZpbmUgbW1EU0NfVE9QMV9EU0NfVE9QX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNWMKKyNkZWZpbmUgbW1EU0NfVE9QMV9EU0NfVE9QX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDX1RPUDFfRFNDX0RFQlVHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDVkCisjZGVmaW5lIG1tRFNDX1RPUDFfRFNDX0RFQlVHX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzFfZGlzcGRlY19kc2NjaWZfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDE3MAorI2RlZmluZSBtbURTQ0NJRjFfRFNDQ0lGX0NPTkZJRzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2MQorI2RlZmluZSBtbURTQ0NJRjFfRFNDQ0lGX0NPTkZJRzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDSUYxX0RTQ0NJRl9DT05GSUcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNjIKKyNkZWZpbmUgbW1EU0NDSUYxX0RTQ0NJRl9DT05GSUcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjMV9kaXNwZGVjX2RzY2NfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDE3MAorI2RlZmluZSBtbURTQ0MxX0RTQ0NfQ09ORklHMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2NgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfQ09ORklHMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX0NPTkZJRzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNjcKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX0NPTkZJRzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDY4CisjZGVmaW5lIG1tRFNDQzFfRFNDQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2OQorI2RlZmluZSBtbURTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNmEKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDZiCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2YworI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNmQKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDZlCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2ZgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUc2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNzAKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUc2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDcxCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3MgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUc5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNzMKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUc5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDc0CisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3NQorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNzYKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDc3CisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3OAorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNzkKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDdhCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3YgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcxOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwN2MKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcxOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDdkCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3ZQorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcyMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwN2YKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1BQU19DT05GSUcyMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDgwCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19QUFNfQ09ORklHMjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4MQorI2RlZmluZSBtbURTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwODIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDgzCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4NAorI2RlZmluZSBtbURTQ0MxX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwODUKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDg2CisjZGVmaW5lIG1tRFNDQzFfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4NworI2RlZmluZSBtbURTQ0MxX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX01BWF9BQlNfRVJST1IwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwODgKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX01BWF9BQlNfRVJST1IwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19NQVhfQUJTX0VSUk9SMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDg5CisjZGVmaW5lIG1tRFNDQzFfRFNDQ19NQVhfQUJTX0VSUk9SMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4YQorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOGIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDhjCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4ZAorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOGUKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDhmCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA5MAorI2RlZmluZSBtbURTQ0MxX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOTEKKyNkZWZpbmUgbW1EU0NDMV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzFfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDk2CisjZGVmaW5lIG1tRFNDQzFfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzFfZGlzcGRlY19kc2NfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweGMyYjAKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYWMKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGFkCisjZGVmaW5lIG1tRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBhZQorI2RlZmluZSBtbURDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjBfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYWYKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjBfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIwX1BFUkZNT05fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGIwCisjZGVmaW5lIG1tRENfUEVSRk1PTjIwX1BFUkZNT05fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBiMQorI2RlZmluZSBtbURDX1BFUkZNT04yMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjBfUEVSRk1PTl9DVkFMVUVfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYjIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjBfUEVSRk1PTl9DVkFMVUVfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIwX1BFUkZNT05fSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGIzCisjZGVmaW5lIG1tRENfUEVSRk1PTjIwX1BFUkZNT05fSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yMF9QRVJGTU9OX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBiNAorI2RlZmluZSBtbURDX1BFUkZNT04yMF9QRVJGTU9OX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2MyX2Rpc3BkZWNfZHNjX3RvcF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MmUwCisjZGVmaW5lIG1tRFNDX1RPUDJfRFNDX1RPUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGI4CisjZGVmaW5lIG1tRFNDX1RPUDJfRFNDX1RPUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ19UT1AyX0RTQ19ERUJVR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBiOQorI2RlZmluZSBtbURTQ19UT1AyX0RTQ19ERUJVR19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2MyX2Rpc3BkZWNfZHNjY2lmX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgyZTAKKyNkZWZpbmUgbW1EU0NDSUYyX0RTQ0NJRl9DT05GSUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYmQKKyNkZWZpbmUgbW1EU0NDSUYyX0RTQ0NJRl9DT05GSUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQ0lGMl9EU0NDSUZfQ09ORklHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGJlCisjZGVmaW5lIG1tRFNDQ0lGMl9EU0NDSUZfQ09ORklHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzJfZGlzcGRlY19kc2NjX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgyZTAKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX0NPTkZJRzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYzIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX0NPTkZJRzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19DT05GSUcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGMzCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19DT05GSUcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBjNAorI2RlZmluZSBtbURTQ0MyX0RTQ0NfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYzUKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGM2CisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBjNworI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYzgKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGM5CisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBjYQorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUc1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwY2IKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUc1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGNjCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBjZAorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUc4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwY2UKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUc4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGNmCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkMAorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZDEKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGQyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkMworI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZDQKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGQ1CisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkNgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcxNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZDcKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcxN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGQ4CisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkOQorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZGEKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1BQU19DT05GSUcyMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGRiCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19QUFNfQ09ORklHMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkYworI2RlZmluZSBtbURTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZGQKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGRlCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkZgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZTAKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGUxCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBlMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZTMKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19NQVhfQUJTX0VSUk9SMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGU0CisjZGVmaW5lIG1tRFNDQzJfRFNDQ19NQVhfQUJTX0VSUk9SMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfTUFYX0FCU19FUlJPUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBlNQorI2RlZmluZSBtbURTQ0MyX0RTQ0NfTUFYX0FCU19FUlJPUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZTYKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGU3CisjZGVmaW5lIG1tRFNDQzJfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBlOAorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZTkKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGVhCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBlYgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZWMKKyNkZWZpbmUgbW1EU0NDMl9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGVkCisjZGVmaW5lIG1tRFNDQzJfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBmMgorI2RlZmluZSBtbURTQ0MyX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2MyX2Rpc3BkZWNfZHNjX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHhjNDIwCisjZGVmaW5lIG1tRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTA4CisjZGVmaW5lIG1tRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEwOQorI2RlZmluZSBtbURDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMGEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIxX1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTBiCisjZGVmaW5lIG1tRENfUEVSRk1PTjIxX1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yMV9QRVJGTU9OX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEwYworI2RlZmluZSBtbURDX1BFUkZNT04yMV9QRVJGTU9OX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMGQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIxX1BFUkZNT05fQ1ZBTFVFX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTBlCisjZGVmaW5lIG1tRENfUEVSRk1PTjIxX1BFUkZNT05fQ1ZBTFVFX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yMV9QRVJGTU9OX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEwZgorI2RlZmluZSBtbURDX1BFUkZNT04yMV9QRVJGTU9OX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjFfUEVSRk1PTl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMTAKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjFfUEVSRk1PTl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjM19kaXNwZGVjX2RzY190b3BfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDQ1MAorI2RlZmluZSBtbURTQ19UT1AzX0RTQ19UT1BfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzExNAorI2RlZmluZSBtbURTQ19UT1AzX0RTQ19UT1BfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NfVE9QM19EU0NfREVCVUdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMTUKKyNkZWZpbmUgbW1EU0NfVE9QM19EU0NfREVCVUdfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjM19kaXNwZGVjX2RzY2NpZl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NDUwCisjZGVmaW5lIG1tRFNDQ0lGM19EU0NDSUZfQ09ORklHMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTE5CisjZGVmaW5lIG1tRFNDQ0lGM19EU0NDSUZfQ09ORklHMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0NJRjNfRFNDQ0lGX0NPTkZJRzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzExYQorI2RlZmluZSBtbURTQ0NJRjNfRFNDQ0lGX0NPTkZJRzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2MzX2Rpc3BkZWNfZHNjY19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NDUwCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19DT05GSUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTFlCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19DT05GSUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfQ09ORklHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzExZgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfQ09ORklHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMjAKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTIxCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMjMKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTI0CisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyNQorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUc0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMjYKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUc0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTI3CisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyOAorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUc3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMjkKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUc3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTJhCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyYgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMmMKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTJkCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyZQorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMmYKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTMwCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzMQorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMzIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTMzCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzNAorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMzUKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcxOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTM2CisjZGVmaW5lIG1tRFNDQzNfRFNDQ19QUFNfQ09ORklHMjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzNworI2RlZmluZSBtbURTQ0MzX0RTQ0NfUFBTX0NPTkZJRzIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMzgKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1BQU19DT05GSUcyMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTM5CisjZGVmaW5lIG1tRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzYQorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxM2IKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTNjCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzZAorI2RlZmluZSBtbURTQ0MzX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxM2UKKyNkZWZpbmUgbW1EU0NDM19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTNmCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfTUFYX0FCU19FUlJPUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE0MAorI2RlZmluZSBtbURTQ0MzX0RTQ0NfTUFYX0FCU19FUlJPUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX01BWF9BQlNfRVJST1IxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNDEKKyNkZWZpbmUgbW1EU0NDM19EU0NDX01BWF9BQlNfRVJST1IxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTQyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE0MworI2RlZmluZSBtbURTQ0MzX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNDQKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTQ1CisjZGVmaW5lIG1tRFNDQzNfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE0NgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNDcKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzNfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTQ4CisjZGVmaW5lIG1tRFNDQzNfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE0OQorI2RlZmluZSBtbURTQ0MzX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNGUKKyNkZWZpbmUgbW1EU0NDM19EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzNfZGlzcGRlY19kc2NfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweGM1OTAKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNjQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTY1CisjZGVmaW5lIG1tRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9TVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE2NgorI2RlZmluZSBtbURDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9TVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjJfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNjcKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjJfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTY4CisjZGVmaW5lIG1tRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE2OQorI2RlZmluZSBtbURDX1BFUkZNT04yMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNmEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIyX1BFUkZNT05fSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTZiCisjZGVmaW5lIG1tRENfUEVSRk1PTjIyX1BFUkZNT05fSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yMl9QRVJGTU9OX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE2YworI2RlZmluZSBtbURDX1BFUkZNT04yMl9QRVJGTU9OX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2M0X2Rpc3BkZWNfZHNjX3RvcF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NWMwCisjZGVmaW5lIG1tRFNDX1RPUDRfRFNDX1RPUF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTcwCisjZGVmaW5lIG1tRFNDX1RPUDRfRFNDX1RPUF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ19UT1A0X0RTQ19ERUJVR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE3MQorI2RlZmluZSBtbURTQ19UT1A0X0RTQ19ERUJVR19DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2M0X2Rpc3BkZWNfZHNjY2lmX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg1YzAKKyNkZWZpbmUgbW1EU0NDSUY0X0RTQ0NJRl9DT05GSUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNzUKKyNkZWZpbmUgbW1EU0NDSUY0X0RTQ0NJRl9DT05GSUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQ0lGNF9EU0NDSUZfQ09ORklHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTc2CisjZGVmaW5lIG1tRFNDQ0lGNF9EU0NDSUZfQ09ORklHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzRfZGlzcGRlY19kc2NjX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg1YzAKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX0NPTkZJRzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxN2EKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX0NPTkZJRzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19DT05GSUcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTdiCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19DT05GSUcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE3YworI2RlZmluZSBtbURTQ0M0X0RTQ0NfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxN2QKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTdlCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE3ZgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxODAKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTgxCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE4MgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUc1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxODMKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUc1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTg0CisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE4NQorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUc4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxODYKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUc4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTg3CisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE4OAorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxODkKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMThhCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE4YgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxOGMKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMThkCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE4ZQorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcxNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxOGYKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcxN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTkwCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE5MQorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxOTIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1BQU19DT05GSUcyMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTkzCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19QUFNfQ09ORklHMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE5NAorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUFBTX0NPTkZJRzIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX01FTV9QT1dFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxOTUKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX01FTV9QT1dFUl9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTk2CisjZGVmaW5lIG1tRFNDQzRfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE5NworI2RlZmluZSBtbURTQ0M0X0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxOTgKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTk5CisjZGVmaW5lIG1tRFNDQzRfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE5YQorI2RlZmluZSBtbURTQ0M0X0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxOWIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19NQVhfQUJTX0VSUk9SMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTljCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19NQVhfQUJTX0VSUk9SMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfTUFYX0FCU19FUlJPUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE5ZAorI2RlZmluZSBtbURTQ0M0X0RTQ0NfTUFYX0FCU19FUlJPUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxOWUKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTlmCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFhMAorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxYTEKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWEyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFhMworI2RlZmluZSBtbURTQ0M0X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxYTQKKyNkZWZpbmUgbW1EU0NDNF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzRfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWE1CisjZGVmaW5lIG1tRFNDQzRfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M0X0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFhYQorI2RlZmluZSBtbURTQ0M0X0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjNF9kaXNwZGVjX2RzY19kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YzcwMAorI2RlZmluZSBtbURDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFjMAorI2RlZmluZSBtbURDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxYzEKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX1NUQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWMyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX1NUQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yM19QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFjMworI2RlZmluZSBtbURDX1BFUkZNT04yM19QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjNfUEVSRk1PTl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxYzQKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjNfUEVSRk1PTl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWM1CisjZGVmaW5lIG1tRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yM19QRVJGTU9OX0NWQUxVRV9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFjNgorI2RlZmluZSBtbURDX1BFUkZNT04yM19QRVJGTU9OX0NWQUxVRV9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjNfUEVSRk1PTl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxYzcKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjNfUEVSRk1PTl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjIzX1BFUkZNT05fTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWM4CisjZGVmaW5lIG1tRENfUEVSRk1PTjIzX1BFUkZNT05fTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzVfZGlzcGRlY19kc2NfdG9wX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg3MzAKKyNkZWZpbmUgbW1EU0NfVE9QNV9EU0NfVE9QX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxY2MKKyNkZWZpbmUgbW1EU0NfVE9QNV9EU0NfVE9QX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDX1RPUDVfRFNDX0RFQlVHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWNkCisjZGVmaW5lIG1tRFNDX1RPUDVfRFNDX0RFQlVHX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzVfZGlzcGRlY19kc2NjaWZfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDczMAorI2RlZmluZSBtbURTQ0NJRjVfRFNDQ0lGX0NPTkZJRzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFkMQorI2RlZmluZSBtbURTQ0NJRjVfRFNDQ0lGX0NPTkZJRzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDSUY1X0RTQ0NJRl9DT05GSUcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZDIKKyNkZWZpbmUgbW1EU0NDSUY1X0RTQ0NJRl9DT05GSUcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjNV9kaXNwZGVjX2RzY2NfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDczMAorI2RlZmluZSBtbURTQ0M1X0RTQ0NfQ09ORklHMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFkNgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfQ09ORklHMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX0NPTkZJRzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZDcKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX0NPTkZJRzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWQ4CisjZGVmaW5lIG1tRFNDQzVfRFNDQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFkOQorI2RlZmluZSBtbURTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZGEKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWRiCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFkYworI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZGQKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWRlCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFkZgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUc2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZTAKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUc2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWUxCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFlMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUc5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZTMKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUc5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWU0CisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFlNQorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZTYKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWU3CisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFlOAorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZTkKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWVhCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFlYgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcxOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZWMKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcxOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWVkCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFlZQorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcyMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZWYKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1BQU19DT05GSUcyMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWYwCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19QUFNfQ09ORklHMjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFmMQorI2RlZmluZSBtbURTQ0M1X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZjIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWYzCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFmNAorI2RlZmluZSBtbURTQ0M1X0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZjUKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWY2CisjZGVmaW5lIG1tRFNDQzVfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFmNworI2RlZmluZSBtbURTQ0M1X0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX01BWF9BQlNfRVJST1IwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZjgKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX01BWF9BQlNfRVJST1IwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19NQVhfQUJTX0VSUk9SMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWY5CisjZGVmaW5lIG1tRFNDQzVfRFNDQ19NQVhfQUJTX0VSUk9SMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFmYQorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZmIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWZjCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzFmZAorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxZmUKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMWZmCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzIwMAorI2RlZmluZSBtbURTQ0M1X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyMDEKKyNkZWZpbmUgbW1EU0NDNV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFNDQzVfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjA2CisjZGVmaW5lIG1tRFNDQzVfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzVfZGlzcGRlY19kc2NfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweGM4NzAKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyMWMKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjFkCisjZGVmaW5lIG1tRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9TVEFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzIxZQorI2RlZmluZSBtbURDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9TVEFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyMWYKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjI0X1BFUkZNT05fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjIwCisjZGVmaW5lIG1tRENfUEVSRk1PTjI0X1BFUkZNT05fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzIyMQorI2RlZmluZSBtbURDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjRfUEVSRk1PTl9DVkFMVUVfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyMjIKKyNkZWZpbmUgbW1EQ19QRVJGTU9OMjRfUEVSRk1PTl9DVkFMVUVfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRENfUEVSRk1PTjI0X1BFUkZNT05fSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjIzCisjZGVmaW5lIG1tRENfUEVSRk1PTjI0X1BFUkZNT05fSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURDX1BFUkZNT04yNF9QRVJGTU9OX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzIyNAorI2RlZmluZSBtbURDX1BFUkZNT04yNF9QRVJGTU9OX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kbXVfZG1jdWJfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04wX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyMzgKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04wX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OMF9PRkZTRVRfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjM5CisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OMF9PRkZTRVRfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjFfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzIzYQorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjFfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04xX09GRlNFVF9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyM2IKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04xX09GRlNFVF9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OMl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjNjCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OMl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjJfT0ZGU0VUX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzIzZAorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjJfT0ZGU0VUX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT040X09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNDAKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT040X09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9ONF9PRkZTRVRfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjQxCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9ONF9PRkZTRVRfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjVfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI0MgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjVfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT041X09GRlNFVF9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNDMKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT041X09GRlNFVF9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9ONl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjQ0CisjZGVmaW5lIG1tRE1DVUJfUkVHSU9ONl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjZfT0ZGU0VUX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI0NQorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjZfT0ZGU0VUX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT043X09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNDYKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT043X09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9ON19PRkZTRVRfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjQ3CisjZGVmaW5lIG1tRE1DVUJfUkVHSU9ON19PRkZTRVRfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjBfVE9QX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI0OAorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjBfVE9QX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04xX1RPUF9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNDkKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04xX1RPUF9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OMl9UT1BfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjRhCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OMl9UT1BfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjRfVE9QX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI0YgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjRfVE9QX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT041X1RPUF9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNGMKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT041X1RPUF9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9ONl9UT1BfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjRkCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9ONl9UT1BfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjdfVE9QX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI0ZQorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjdfVE9QX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXMF9CQVNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNGYKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXMF9CQVNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzFfQkFTRV9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjUwCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzFfQkFTRV9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1cyX0JBU0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI1MQorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1cyX0JBU0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXM19CQVNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNTIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXM19CQVNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzRfQkFTRV9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjUzCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzRfQkFTRV9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1c1X0JBU0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI1NAorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1c1X0JBU0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXNl9CQVNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNTUKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXNl9CQVNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzdfQkFTRV9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjU2CisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzdfQkFTRV9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1cwX1RPUF9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI1NworI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1cwX1RPUF9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXMV9UT1BfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNTgKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXMV9UT1BfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzJfVE9QX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjU5CisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzJfVE9QX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1czX1RPUF9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI1YQorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1czX1RPUF9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXNF9UT1BfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNWIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXNF9UT1BfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzVfVE9QX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjVjCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzVfVE9QX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1c2X1RPUF9BRERSRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI1ZAorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1c2X1RPUF9BRERSRVNTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXN19UT1BfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNWUKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXN19UT1BfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzBfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjVmCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzBfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1cwX09GRlNFVF9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI2MAorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1cwX09GRlNFVF9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXMV9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNjEKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXMV9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzFfT0ZGU0VUX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjYyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzFfT0ZGU0VUX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1cyX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI2MworI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1cyX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXMl9PRkZTRVRfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNjQKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXMl9PRkZTRVRfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzNfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjY1CisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzNfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1czX09GRlNFVF9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI2NgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1czX09GRlNFVF9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXNF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNjcKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXNF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzRfT0ZGU0VUX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjY4CisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzRfT0ZGU0VUX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1c1X09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI2OQorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1c1X09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXNV9PRkZTRVRfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNmEKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXNV9PRkZTRVRfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzZfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjZiCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzZfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1c2X09GRlNFVF9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI2YworI2RlZmluZSBtbURNQ1VCX1JFR0lPTjNfQ1c2X09GRlNFVF9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXN19PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNmQKKyNkZWZpbmUgbW1ETUNVQl9SRUdJT04zX0NXN19PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzdfT0ZGU0VUX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjZlCisjZGVmaW5lIG1tRE1DVUJfUkVHSU9OM19DVzdfT0ZGU0VUX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX0lOVEVSUlVQVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI2ZgorI2RlZmluZSBtbURNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9JTlRFUlJVUFRfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNzAKKyNkZWZpbmUgbW1ETUNVQl9JTlRFUlJVUFRfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfSU5URVJSVVBUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjcxCisjZGVmaW5lIG1tRE1DVUJfSU5URVJSVVBUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX0lOVEVSUlVQVF9UWVBFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI3MgorI2RlZmluZSBtbURNQ1VCX0lOVEVSUlVQVF9UWVBFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9FWFRfSU5URVJSVVBUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNzMKKyNkZWZpbmUgbW1ETUNVQl9FWFRfSU5URVJSVVBUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfRVhUX0lOVEVSUlVQVF9DVFhJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjc0CisjZGVmaW5lIG1tRE1DVUJfRVhUX0lOVEVSUlVQVF9DVFhJRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX0VYVF9JTlRFUlJVUFRfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI3NQorI2RlZmluZSBtbURNQ1VCX0VYVF9JTlRFUlJVUFRfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9JTlNUX0ZFVENIX0ZBVUxUX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNzYKKyNkZWZpbmUgbW1ETUNVQl9JTlNUX0ZFVENIX0ZBVUxUX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfREFUQV9XUklURV9GQVVMVF9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjc3CisjZGVmaW5lIG1tRE1DVUJfREFUQV9XUklURV9GQVVMVF9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1NFQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI3OAorI2RlZmluZSBtbURNQ1VCX1NFQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9NRU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyNzkKKyNkZWZpbmUgbW1ETUNVQl9NRU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfSU5CT1gwX0JBU0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjdhCisjZGVmaW5lIG1tRE1DVUJfSU5CT1gwX0JBU0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX0lOQk9YMF9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI3YgorI2RlZmluZSBtbURNQ1VCX0lOQk9YMF9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9JTkJPWDBfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyN2MKKyNkZWZpbmUgbW1ETUNVQl9JTkJPWDBfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfSU5CT1gwX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjdkCisjZGVmaW5lIG1tRE1DVUJfSU5CT1gwX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX0lOQk9YMV9CQVNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI3ZQorI2RlZmluZSBtbURNQ1VCX0lOQk9YMV9CQVNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9JTkJPWDFfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyN2YKKyNkZWZpbmUgbW1ETUNVQl9JTkJPWDFfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfSU5CT1gxX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjgwCisjZGVmaW5lIG1tRE1DVUJfSU5CT1gxX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX0lOQk9YMV9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4MQorI2RlZmluZSBtbURNQ1VCX0lOQk9YMV9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9PVVRCT1gwX0JBU0VfQUREUkVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyODIKKyNkZWZpbmUgbW1ETUNVQl9PVVRCT1gwX0JBU0VfQUREUkVTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfT1VUQk9YMF9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjgzCisjZGVmaW5lIG1tRE1DVUJfT1VUQk9YMF9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX09VVEJPWDBfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4NAorI2RlZmluZSBtbURNQ1VCX09VVEJPWDBfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9PVVRCT1gwX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyODUKKyNkZWZpbmUgbW1ETUNVQl9PVVRCT1gwX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfT1VUQk9YMV9CQVNFX0FERFJFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjg2CisjZGVmaW5lIG1tRE1DVUJfT1VUQk9YMV9CQVNFX0FERFJFU1NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX09VVEJPWDFfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4NworI2RlZmluZSBtbURNQ1VCX09VVEJPWDFfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9PVVRCT1gxX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyODgKKyNkZWZpbmUgbW1ETUNVQl9PVVRCT1gxX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfT1VUQk9YMV9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjg5CisjZGVmaW5lIG1tRE1DVUJfT1VUQk9YMV9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1RJTUVSX1RSSUdHRVIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4YQorI2RlZmluZSBtbURNQ1VCX1RJTUVSX1RSSUdHRVIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9USU1FUl9UUklHR0VSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOGIKKyNkZWZpbmUgbW1ETUNVQl9USU1FUl9UUklHR0VSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfVElNRVJfV0lORE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjhjCisjZGVmaW5lIG1tRE1DVUJfVElNRVJfV0lORE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0gwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4ZAorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0gwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENIMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOGUKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENIMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjhmCisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0gzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5MAorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0gzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENINCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOTEKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENINF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjkyCisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0g2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5MworI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0g2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENINyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOTQKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENIN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjk1CisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0g5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5NgorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0g5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENIMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOTcKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENIMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjk4CisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0gxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5OQorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0gxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENIMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOWEKKyNkZWZpbmUgbW1ETUNVQl9TQ1JBVENIMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjliCisjZGVmaW5lIG1tRE1DVUJfU0NSQVRDSDE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0gxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5YworI2RlZmluZSBtbURNQ1VCX1NDUkFUQ0gxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYTAKKyNkZWZpbmUgbW1ETUNVQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfR1BJTlRfREFUQUlOMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmExCisjZGVmaW5lIG1tRE1DVUJfR1BJTlRfREFUQUlOMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX0dQSU5UX0RBVEFJTjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJhMgorI2RlZmluZSBtbURNQ1VCX0dQSU5UX0RBVEFJTjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9HUElOVF9EQVRBT1VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYTMKKyNkZWZpbmUgbW1ETUNVQl9HUElOVF9EQVRBT1VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfVU5ERUZJTkVEX0FERFJFU1NfRkFVTFRfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmE0CisjZGVmaW5lIG1tRE1DVUJfVU5ERUZJTkVEX0FERFJFU1NfRkFVTFRfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX0xTX1dBS0VfSU5UX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJhNQorI2RlZmluZSBtbURNQ1VCX0xTX1dBS0VfSU5UX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1ETUNVQl9NRU1fUFdSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYTYKKyNkZWZpbmUgbW1ETUNVQl9NRU1fUFdSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRE1DVUJfVElNRVJfQ1VSUkVOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmE3CisjZGVmaW5lIG1tRE1DVUJfVElNRVJfQ1VSUkVOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURNQ1VCX1BST0NfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJhOQorI2RlZmluZSBtbURNQ1VCX1BST0NfSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tbWh1YmJ1Yl9tY2lmX3diMl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YzZiOAorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2MAorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9DVVJfTElORV9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NjEKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9DVVJfTElORV9SX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDYyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGX1BJVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2MworI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGX1BJVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NjQKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9TVEFUVVMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDY1CisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2NgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NjcKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDY4CisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2OQorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NmEKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9TVEFUVVMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDZiCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQVJCSVRSQVRJT05fQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2YworI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQVJCSVRSQVRJT05fQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX1NDTEtfQ0hBTkdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NmQKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX1NDTEtfQ0hBTkdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDZlCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2ZgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NzAKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDcxCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ3MgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfQ19PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NzMKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfQ19PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDc0CisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ3NQorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX0FERFJfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NzYKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX0FERFJfQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDc3CisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ3OAorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9ZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfWV9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NzkKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfWV9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDdhCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ3YgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0N2MKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDdkCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ3ZQorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9DX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfQ19PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0N2YKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfQ19PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDgwCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfTkJfUFNUQVRFX0xBVEVOQ1lfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ4MQorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfTkJfUFNUQVRFX0xBVEVOQ1lfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX05CX1BTVEFURV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0ODIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX05CX1BTVEFURV9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDgzCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQ0xPQ0tfR0FURVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ4NAorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQ0xPQ0tfR0FURVJfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX1dBUk1fVVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0ODUKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX1dBUk1fVVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDg2CisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01VTFRJX0xFVkVMX1FPU19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ4NworI2RlZmluZSBtbU1DSUZfV0IyX01VTFRJX0xFVkVMX1FPU19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl9MVU1BX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0ODkKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl9MVU1BX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfQ0hST01BX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDhhCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfQ0hST01BX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ4YgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfQ19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0OGMKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfQ19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX1lfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDhkCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX1lfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ4ZQorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfWV9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0OGYKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfWV9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX0NfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDkwCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX0NfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ5MQorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfQ19ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0OTIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfQ19ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9SRVNPTFVUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDkzCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9SRVNPTFVUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzJfUkVTT0xVVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ5NAorI2RlZmluZSBtbU1DSUZfV0IyX01DSUZfV0JfQlVGXzJfUkVTT0xVVElPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1JFU09MVVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0OTUKKyNkZWZpbmUgbW1NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1JFU09MVVRJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9SRVNPTFVUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDk2CisjZGVmaW5lIG1tTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9SRVNPTFVUSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjaHZtX2h2bV9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbURDSFZNX0NUUkwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2YgorI2RlZmluZSBtbURDSFZNX0NUUkwwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgbW1EQ0hWTV9DVFJMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNmMKKyNkZWZpbmUgbW1EQ0hWTV9DVFJMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIG1tRENIVk1fQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTZkCisjZGVmaW5lIG1tRENIVk1fQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMworI2RlZmluZSBtbURDSFZNX01FTV9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2ZQorI2RlZmluZSBtbURDSFZNX01FTV9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgbW1EQ0hWTV9SSU9NTVVfQ1RSTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNmYKKyNkZWZpbmUgbW1EQ0hWTV9SSU9NTVVfQ1RSTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIG1tRENIVk1fUklPTU1VX1NUQVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcwCisjZGVmaW5lIG1tRENIVk1fUklPTU1VX1NUQVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMworCisKKy8vIGFkZHJlc3NCbG9jazogdmdhX3ZnYXNlcWluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhTRVEwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgaXhTRVEwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhTRVEwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhTRVEwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhTRVEwNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKworCisvLyBhZGRyZXNzQmxvY2s6IHZnYV92Z2FjcnRpbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4Q1JUMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIGl4Q1JUMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4Q1JUMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4Q1JUMDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4Q1JUMDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIGl4Q1JUMDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIGl4Q1JUMDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIGl4Q1JUMDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIGl4Q1JUMDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIGl4Q1JUMDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CisjZGVmaW5lIGl4Q1JUMEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBhCisjZGVmaW5lIGl4Q1JUMEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBiCisjZGVmaW5lIGl4Q1JUMEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBjCisjZGVmaW5lIGl4Q1JUMEQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBkCisjZGVmaW5lIGl4Q1JUMEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBlCisjZGVmaW5lIGl4Q1JUMEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBmCisjZGVmaW5lIGl4Q1JUMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwCisjZGVmaW5lIGl4Q1JUMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDExCisjZGVmaW5lIGl4Q1JUMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEyCisjZGVmaW5lIGl4Q1JUMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEzCisjZGVmaW5lIGl4Q1JUMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE0CisjZGVmaW5lIGl4Q1JUMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE1CisjZGVmaW5lIGl4Q1JUMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE2CisjZGVmaW5lIGl4Q1JUMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE3CisjZGVmaW5lIGl4Q1JUMTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4CisjZGVmaW5lIGl4Q1JUMUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFlCisjZGVmaW5lIGl4Q1JUMUYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFmCisjZGVmaW5lIGl4Q1JUMjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyCisKKworLy8gYWRkcmVzc0Jsb2NrOiB2Z2FfdmdhZ3JwaGluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhHUkEwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgaXhHUkEwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhHUkEwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhHUkEwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhHUkEwNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgaXhHUkEwNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgaXhHUkEwNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgaXhHUkEwNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgaXhHUkEwOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKworCisvLyBhZGRyZXNzQmxvY2s6IHZnYV92Z2FhdHRyaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFUVFIwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFUVFIwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFUVFIwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFUVFIwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFUVFIwNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBpeEFUVFIwNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBpeEFUVFIwNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBpeEFUVFIwNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNworI2RlZmluZSBpeEFUVFIwOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOAorI2RlZmluZSBpeEFUVFIwOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOQorI2RlZmluZSBpeEFUVFIwQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYQorI2RlZmluZSBpeEFUVFIwQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYgorI2RlZmluZSBpeEFUVFIwQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYworI2RlZmluZSBpeEFUVFIwRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZAorI2RlZmluZSBpeEFUVFIwRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZQorI2RlZmluZSBpeEFUVFIwRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZgorI2RlZmluZSBpeEFUVFIxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBpeEFUVFIxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMQorI2RlZmluZSBpeEFUVFIxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMgorI2RlZmluZSBpeEFUVFIxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMworI2RlZmluZSBpeEFUVFIxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXplbmRwb2ludF9mMmNvZGVjaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIwMAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjcwNgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjcwZAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjcwZQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjcyNAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjczZQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjc3MAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjc3MQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmYwOQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmYwYQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmYwYgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05ORUNUSU9OX0xJU1RfRU5UUlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzcwMgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzcwNworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzcwOAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzcwOQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzcxYworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzcxZAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzcxZQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzcxZgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9TUEVBS0VSX0FMTE9DQVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3MAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3MQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9ET1dOX01JWF9JTkZPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3MgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3NgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3NgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwwMV9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3NworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwyM19FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3OAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw0NV9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3OQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw2N19FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3YQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9MSVBTWU5DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3YgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9IQlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc3YworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19TSU5LX0lORk9fSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4MAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19TSU5LX0lORk9fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4MQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwxX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4NQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwzX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4NgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw1X0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4NworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw3X0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4OAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4OQorI2RlZmluZSBpeEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4YQorI2RlZmluZSBpeEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4YgorI2RlZmluZSBpeEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4YworI2RlZmluZSBpeEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4ZAorI2RlZmluZSBpeEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4ZQorI2RlZmluZSBpeEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc4ZgorI2RlZmluZSBpeEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5MAorI2RlZmluZSBpeEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5MQorI2RlZmluZSBpeEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5MgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5MworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5NworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5OAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9MUElCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5OQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5YQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5YgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5YworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5ZAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzc5ZQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YwOQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YwYworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NPTk5FQ1RJT05fTElTVF9MRU5HVEggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YwZQorCisKKy8vIGFkZHJlc3NCbG9jazogYXplbmRwb2ludF9kZXNjcmlwdG9yaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1IwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1IxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1IyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1IzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1I0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1I1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1I2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNworI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1I3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOAorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1I4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOQorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1I5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYQorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1IxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYgorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1IxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYworI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1IxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZAorI2RlZmluZSBpeEFVRElPX0RFU0NSSVBUT1IxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZQorCisKKy8vIGFkZHJlc3NCbG9jazogYXplbmRwb2ludF9zaW5raW5mb2luZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTUFOVUZBQ1RVUkVSX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUFJPRFVDVF9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfU0lOS19ERVNDUklQVElPTl9MRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUE9SVElEMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUE9SVElEMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9ONCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDkKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9ONSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGEKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9ONiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGIKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9ONyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGMKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGQKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGUKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGYKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTEKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTIKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTMKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTQKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTUKKyNkZWZpbmUgaXhTSU5LX0RFU0NSSVBUSU9OMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTYKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBjb250cm9sbGVyX2F6aW5wdXRjcmMwcmVzdWx0aW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUw0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBpeEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUw1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBpeEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUw2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBpeEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUw3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNworCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGNvbnRyb2xsZXJfYXppbnB1dGNyYzFyZXN1bHRpbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIGl4QVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIGl4QVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIGl4QVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIGl4QVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwY29udHJvbGxlcl9hemNyYzByZXN1bHRpbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpBTElBX0NSQzBfQ0hBTk5FTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIGl4QVpBTElBX0NSQzBfQ0hBTk5FTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpBTElBX0NSQzBfQ0hBTk5FTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpBTElBX0NSQzBfQ0hBTk5FTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpBTElBX0NSQzBfQ0hBTk5FTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIGl4QVpBTElBX0NSQzBfQ0hBTk5FTDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIGl4QVpBTElBX0NSQzBfQ0hBTk5FTDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIGl4QVpBTElBX0NSQzBfQ0hBTk5FTDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwY29udHJvbGxlcl9hemNyYzFyZXN1bHRpbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpBTElBX0NSQzFfQ0hBTk5FTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIGl4QVpBTElBX0NSQzFfQ0hBTk5FTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpBTElBX0NSQzFfQ0hBTk5FTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpBTElBX0NSQzFfQ0hBTk5FTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpBTElBX0NSQzFfQ0hBTk5FTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIGl4QVpBTElBX0NSQzFfQ0hBTk5FTDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIGl4QVpBTElBX0NSQzFfQ0hBTk5FTDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIGl4QVpBTElBX0NSQzFfQ0hBTk5FTDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemlucHV0ZW5kcG9pbnRfZjJjb2RlY2luZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYyMDAKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDY3MDYKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDY3MGQKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgICAweDZmMDkKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDZmMGEKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDZmMGIKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3MDcKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3MDgKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3MDkKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3MWMKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3MWQKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3MWUKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3MWYKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9BTExPQ0FUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3NzEKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3NzcKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMl9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3NzgKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3NzkKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNl9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3N2EKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSEJSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3N2MKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMV9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3ODUKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMM19FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3ODYKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNV9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3ODcKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMN19FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3ODgKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3OTgKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3OTkKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3OWEKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3OWIKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3OWMKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9TVEFUVVNfTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3OWQKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9TVEFUVVNfSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc3OWUKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmMDkKKyNkZWZpbmUgaXhBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmMGMKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6cm9vdF9mMmNvZGVjaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19ST09UX1BBUkFNRVRFUl9WRU5ET1JfQU5EX0RFVklDRV9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYwMAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19ST09UX1BBUkFNRVRFUl9SRVZJU0lPTl9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYwMgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19ST09UX1BBUkFNRVRFUl9TVUJPUkRJTkFURV9OT0RFX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGYwNAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcwNQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcyMAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRF8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcyMQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRF8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcyMgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRF80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcyMworI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX0NPTlZFUlRFUl9TWU5DSFJPTklaQVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTc3MAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTdmZgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1VCT1JESU5BVEVfTk9ERV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYwNAorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfR1JPVVBfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYwNQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYwYQorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYwYgorI2RlZmluZSBpeEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfUE9XRVJfU1RBVEVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYwZgorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTBfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU0wX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU0wX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU0wX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU0wX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU0wX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTFfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU0xX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU0xX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU0xX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU0xX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU0xX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTJfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU0yX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU0yX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU0yX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU0yX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU0yX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTNfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU0zX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU0zX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU0zX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU0zX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU0zX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTRfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU00X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU00X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU00X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU00X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU00X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTVfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU01X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU01X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU01X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU01X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU01X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTZfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU02X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU02X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU02X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU02X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU02X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTdfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU03X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU03X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU03X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU03X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU03X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbThfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU04X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU04X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU04X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU04X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU04X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTlfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU05X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU05X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU05X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU05X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU05X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTEwX3N0cmVhbWluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTBfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTBfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTBfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTBfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTBfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBzdHJlYW0xMV9zdHJlYW1pbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpGMFNUUkVBTTExX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIGl4QVpGMFNUUkVBTTExX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpGMFNUUkVBTTExX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpGMFNUUkVBTTExX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpGMFNUUkVBTTExX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwc3RyZWFtMTJfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU0xMl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU0xMl9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU0xMl9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU0xMl9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU0xMl9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTEzX3N0cmVhbWluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTNfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTNfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTNfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTNfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhBWkYwU1RSRUFNMTNfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBzdHJlYW0xNF9zdHJlYW1pbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpGMFNUUkVBTTE0X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIGl4QVpGMFNUUkVBTTE0X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpGMFNUUkVBTTE0X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpGMFNUUkVBTTE0X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpGMFNUUkVBTTE0X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwc3RyZWFtMTVfc3RyZWFtaW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBTVFJFQU0xNV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBpeEFaRjBTVFJFQU0xNV9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBTVFJFQU0xNV9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBTVFJFQU0xNV9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBTVFJFQU0xNV9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGVuZHBvaW50MF9lbmRwb2ludGluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2EKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2IKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2MKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2QKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2UKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2YKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwNTYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OICAgICAgICAgICAgICAgICAgICAweDAwNjkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmUKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBlbmRwb2ludDFfZW5kcG9pbnRpbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJiCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJmCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNiCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNmCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0UgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDViCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVmCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTiAgICAgICAgICAgICAgICAgICAgMHgwMDY5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZiCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZlCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwZW5kcG9pbnQyX2VuZHBvaW50aW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVMgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDA1NgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2OAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT04gICAgICAgICAgICAgICAgICAgIDB4MDA2OQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0VOQUJMRV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2ZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2ZQorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGVuZHBvaW50M19lbmRwb2ludGluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2EKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2IKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2MKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2QKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2UKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2YKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwNTYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OICAgICAgICAgICAgICAgICAgICAweDAwNjkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmUKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBlbmRwb2ludDRfZW5kcG9pbnRpbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJiCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJmCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNiCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNmCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0UgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDViCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVmCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTiAgICAgICAgICAgICAgICAgICAgMHgwMDY5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZiCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZlCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwZW5kcG9pbnQ1X2VuZHBvaW50aW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVMgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDA1NgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2OAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT04gICAgICAgICAgICAgICAgICAgIDB4MDA2OQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YQorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0VOQUJMRV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YgorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YworI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2ZAorI2RlZmluZSBpeEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2ZQorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGVuZHBvaW50Nl9lbmRwb2ludGluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2EKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2IKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2MKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2QKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2UKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2YKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwNTYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjUKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjYKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjcKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjgKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OICAgICAgICAgICAgICAgICAgICAweDAwNjkKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmEKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmIKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmMKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmQKKyNkZWZpbmUgaXhBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmUKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBlbmRwb2ludDdfZW5kcG9pbnRpbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJiCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJmCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNiCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNmCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0UgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDViCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVlCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVmCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYyCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYzCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY0CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY1CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY2CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY3CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY4CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTiAgICAgICAgICAgICAgICAgICAgMHgwMDY5CisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZhCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZiCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZjCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZkCisjZGVmaW5lIGl4QVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZlCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwaW5wdXRlbmRwb2ludDBfaW5wdXRlbmRwb2ludGluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVMgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjEKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0lOUFVUX1BJTl9TRU5TRSAgICAgICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAweDAwMzYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTiAgICAgICAgICAgICAgICAgICAgICAweDAwNTMKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVCAgICAgICAgICAweDAwNTYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAweDAwNjQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjUKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1QgICAgICAgICAgICAgICAgICAgICAweDAwNjYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MICAgICAgICAgICAgICAgICAgICAweDAwNjcKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjgKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBpbnB1dGVuZHBvaW50MV9pbnB1dGVuZHBvaW50aW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVCAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUyAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUyAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgIDB4MDAyMAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UgICAgICAgICAgICAgICAgICAgIDB4MDAyMgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFICAgICAgICAgICAgICAgIDB4MDAyMworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIgICAgICAgICAgICAgICAgICAgIDB4MDAzNworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9BTExPQ0FUSU9OICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0UgICAgICAgICAgICAgIDB4MDA1NQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUICAgICAgICAgIDB4MDA1NgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MICAgICAgICAgICAgICAgICAgIDB4MDA2NAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVCAgICAgICAgICAgICAgICAgICAgIDB4MDA2NgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0wgICAgICAgICAgICAgICAgICAgIDB4MDA2NworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2OAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQyX2lucHV0ZW5kcG9pbnRpbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRCAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUiAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIxCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRSAgICAgICAgICAgICAgICAgICAgMHgwMDIyCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0UgICAgICAgICAgICAgICAgMHgwMDIzCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI0CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgMHgwMDM2CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMiAgICAgICAgICAgICAgICAgICAgMHgwMDM3CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT04gICAgICAgICAgICAgICAgICAgICAgMHgwMDUzCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU0CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRSAgICAgICAgICAgICAgMHgwMDU1CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgMHgwMDY0CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY1CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UICAgICAgICAgICAgICAgICAgICAgMHgwMDY2CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgMHgwMDY3CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY4CisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwaW5wdXRlbmRwb2ludDNfaW5wdXRlbmRwb2ludGluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVMgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjEKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0lOUFVUX1BJTl9TRU5TRSAgICAgICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAweDAwMzYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTiAgICAgICAgICAgICAgICAgICAgICAweDAwNTMKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVCAgICAgICAgICAweDAwNTYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAweDAwNjQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjUKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1QgICAgICAgICAgICAgICAgICAgICAweDAwNjYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MICAgICAgICAgICAgICAgICAgICAweDAwNjcKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjgKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBpbnB1dGVuZHBvaW50NF9pbnB1dGVuZHBvaW50aW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVCAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUyAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUyAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgIDB4MDAyMAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UgICAgICAgICAgICAgICAgICAgIDB4MDAyMgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFICAgICAgICAgICAgICAgIDB4MDAyMworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIgICAgICAgICAgICAgICAgICAgIDB4MDAzNworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9BTExPQ0FUSU9OICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0UgICAgICAgICAgICAgIDB4MDA1NQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUICAgICAgICAgIDB4MDA1NgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MICAgICAgICAgICAgICAgICAgIDB4MDA2NAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVCAgICAgICAgICAgICAgICAgICAgIDB4MDA2NgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0wgICAgICAgICAgICAgICAgICAgIDB4MDA2NworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2OAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQ1X2lucHV0ZW5kcG9pbnRpbmQKKy8vIGJhc2UgYWRkcmVzczogMHgwCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgMHgwMDAxCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUICAgICAgICAgICAgICAgICAgMHgwMDAyCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRCAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUiAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIxCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRSAgICAgICAgICAgICAgICAgICAgMHgwMDIyCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0UgICAgICAgICAgICAgICAgMHgwMDIzCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI0CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgMHgwMDM2CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMiAgICAgICAgICAgICAgICAgICAgMHgwMDM3CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT04gICAgICAgICAgICAgICAgICAgICAgMHgwMDUzCisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU0CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRSAgICAgICAgICAgICAgMHgwMDU1CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wgICAgICAgICAgICAgICAgICAgMHgwMDY0CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY1CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UICAgICAgICAgICAgICAgICAgICAgMHgwMDY2CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgMHgwMDY3CisjZGVmaW5lIGl4QVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY4CisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwaW5wdXRlbmRwb2ludDZfaW5wdXRlbmRwb2ludGluZAorLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAweDAwMDEKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEICAgICAgICAgICAgICAgICAweDAwMDMKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVMgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUyAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjEKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0lOUFVUX1BJTl9TRU5TRSAgICAgICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAweDAwMzYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTiAgICAgICAgICAgICAgICAgICAgICAweDAwNTMKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVCAgICAgICAgICAweDAwNTYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAweDAwNjQKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjUKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1QgICAgICAgICAgICAgICAgICAgICAweDAwNjYKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MICAgICAgICAgICAgICAgICAgICAweDAwNjcKKyNkZWZpbmUgaXhBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjgKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBpbnB1dGVuZHBvaW50N19pbnB1dGVuZHBvaW50aW5kCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgIDB4MDAwMQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVCAgICAgICAgICAgICAgICAgIDB4MDAwMgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQgICAgICAgICAgICAgICAgIDB4MDAwMworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUyAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUyAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTICAgICAgICAgICAgIDB4MDAyMAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UgICAgICAgICAgICAgICAgICAgIDB4MDAyMgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFICAgICAgICAgICAgICAgIDB4MDAyMworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIgICAgICAgICAgICAgICAgICAgIDB4MDAzNworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9BTExPQ0FUSU9OICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0UgICAgICAgICAgICAgIDB4MDA1NQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUICAgICAgICAgIDB4MDA1NgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MICAgICAgICAgICAgICAgICAgIDB4MDA2NAorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NQorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVCAgICAgICAgICAgICAgICAgICAgIDB4MDA2NgorI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0wgICAgICAgICAgICAgICAgICAgIDB4MDA2NworI2RlZmluZSBpeEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2OAorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2Rjbi9kY25fMl8xXzBfc2hfbWFzay5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2Rjbi9kY25fMl8xXzBfc2hfbWFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhYTBlNzYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvZGNuL2Rjbl8yXzFfMF9zaF9tYXNrLmgKQEAgLTAsMCArMSw1NjYzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfZGNuXzJfMV8wX1NIX01BU0tfSEVBREVSCisjZGVmaW5lIF9kY25fMl8xXzBfU0hfTUFTS19IRUFERVIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19tbWh1YmJ1Yl92Z2FfZGlzcGRlY1s3Mi4uNzZdCisvL1ZHQV9NRU1fV1JJVEVfUEFHRV9BRERSCisjZGVmaW5lIFZHQV9NRU1fV1JJVEVfUEFHRV9BRERSX19WR0FfTUVNX1dSSVRFX1BBR0UwX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWR0FfTUVNX1dSSVRFX1BBR0VfQUREUl9fVkdBX01FTV9XUklURV9QQUdFMV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZHQV9NRU1fV1JJVEVfUEFHRV9BRERSX19WR0FfTUVNX1dSSVRFX1BBR0UwX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIFZHQV9NRU1fV1JJVEVfUEFHRV9BRERSX19WR0FfTUVNX1dSSVRFX1BBR0UxX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1ZHQV9NRU1fUkVBRF9QQUdFX0FERFIKKyNkZWZpbmUgVkdBX01FTV9SRUFEX1BBR0VfQUREUl9fVkdBX01FTV9SRUFEX1BBR0UwX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZHQV9NRU1fUkVBRF9QQUdFX0FERFJfX1ZHQV9NRU1fUkVBRF9QQUdFMV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVkdBX01FTV9SRUFEX1BBR0VfQUREUl9fVkdBX01FTV9SRUFEX1BBR0UwX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgVkdBX01FTV9SRUFEX1BBR0VfQUREUl9fVkdBX01FTV9SRUFEX1BBR0UxX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21taHViYnViX3ZnYV9kaXNwZGVjCisvL1ZHQV9SRU5ERVJfQ09OVFJPTAorI2RlZmluZSBWR0FfUkVOREVSX0NPTlRST0xfX1ZHQV9CTElOS19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVkdBX1JFTkRFUl9DT05UUk9MX19WR0FfQkxJTktfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFZHQV9SRU5ERVJfQ09OVFJPTF9fVkdBX0NVUlNPUl9CTElOS19JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWR0FfUkVOREVSX0NPTlRST0xfX1ZHQV9FWFREX0FERFJfQ09VTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVkdBX1JFTkRFUl9DT05UUk9MX19WR0FfVlNUQVRVU19DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWR0FfUkVOREVSX0NPTlRST0xfX1ZHQV9MT0NLXzhET1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZHQV9SRU5ERVJfQ09OVFJPTF9fVkdBUkVHX0xJTkVDTVBfQ09NUEFUSUJJTElUWV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVkdBX1JFTkRFUl9DT05UUk9MX19WR0FfQkxJTktfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgVkdBX1JFTkRFUl9DT05UUk9MX19WR0FfQkxJTktfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA2MEwKKyNkZWZpbmUgVkdBX1JFTkRFUl9DT05UUk9MX19WR0FfQ1VSU09SX0JMSU5LX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVkdBX1JFTkRFUl9DT05UUk9MX19WR0FfRVhURF9BRERSX0NPVU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVkdBX1JFTkRFUl9DT05UUk9MX19WR0FfVlNUQVRVU19DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVkdBX1JFTkRFUl9DT05UUk9MX19WR0FfTE9DS184RE9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVkdBX1JFTkRFUl9DT05UUk9MX19WR0FSRUdfTElORUNNUF9DT01QQVRJQklMSVRZX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vVkdBX1NFUVVFTkNFUl9SRVNFVF9DT05UUk9MCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDFfQkxBTktfRElTUExBWV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWR0FfU0VRVUVOQ0VSX1JFU0VUX0NPTlRST0xfX0QyX0JMQU5LX0RJU1BMQVlfV0hFTl9TRVFVRU5DRVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVkdBX1NFUVVFTkNFUl9SRVNFVF9DT05UUk9MX19EM19CTEFOS19ESVNQTEFZX1dIRU5fU0VRVUVOQ0VSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDRfQkxBTktfRElTUExBWV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWR0FfU0VRVUVOQ0VSX1JFU0VUX0NPTlRST0xfX0Q1X0JMQU5LX0RJU1BMQVlfV0hFTl9TRVFVRU5DRVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVkdBX1NFUVVFTkNFUl9SRVNFVF9DT05UUk9MX19ENl9CTEFOS19ESVNQTEFZX1dIRU5fU0VRVUVOQ0VSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDFfRElTQUJMRV9TWU5DU19BTkRfREVfV0hFTl9TRVFVRU5DRVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWR0FfU0VRVUVOQ0VSX1JFU0VUX0NPTlRST0xfX0QyX0RJU0FCTEVfU1lOQ1NfQU5EX0RFX1dIRU5fU0VRVUVOQ0VSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVkdBX1NFUVVFTkNFUl9SRVNFVF9DT05UUk9MX19EM19ESVNBQkxFX1NZTkNTX0FORF9ERV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDRfRElTQUJMRV9TWU5DU19BTkRfREVfV0hFTl9TRVFVRU5DRVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWR0FfU0VRVUVOQ0VSX1JFU0VUX0NPTlRST0xfX0Q1X0RJU0FCTEVfU1lOQ1NfQU5EX0RFX1dIRU5fU0VRVUVOQ0VSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVkdBX1NFUVVFTkNFUl9SRVNFVF9DT05UUk9MX19ENl9ESVNBQkxFX1NZTkNTX0FORF9ERV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fVkdBX01PREVfQVVUT19UUklHR0VSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVkdBX1NFUVVFTkNFUl9SRVNFVF9DT05UUk9MX19WR0FfTU9ERV9BVVRPX1RSSUdHRVJfUkVHSVNURVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWR0FfU0VRVUVOQ0VSX1JFU0VUX0NPTlRST0xfX1ZHQV9NT0RFX0FVVE9fVFJJR0dFUl9JTkRFWF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDFfQkxBTktfRElTUExBWV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDJfQkxBTktfRElTUExBWV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDNfQkxBTktfRElTUExBWV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDRfQkxBTktfRElTUExBWV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDVfQkxBTktfRElTUExBWV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDZfQkxBTktfRElTUExBWV9XSEVOX1NFUVVFTkNFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDFfRElTQUJMRV9TWU5DU19BTkRfREVfV0hFTl9TRVFVRU5DRVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDJfRElTQUJMRV9TWU5DU19BTkRfREVfV0hFTl9TRVFVRU5DRVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDNfRElTQUJMRV9TWU5DU19BTkRfREVfV0hFTl9TRVFVRU5DRVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDRfRElTQUJMRV9TWU5DU19BTkRfREVfV0hFTl9TRVFVRU5DRVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDVfRElTQUJMRV9TWU5DU19BTkRfREVfV0hFTl9TRVFVRU5DRVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fRDZfRElTQUJMRV9TWU5DU19BTkRfREVfV0hFTl9TRVFVRU5DRVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fVkdBX01PREVfQVVUT19UUklHR0VSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fVkdBX01PREVfQVVUT19UUklHR0VSX1JFR0lTVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFZHQV9TRVFVRU5DRVJfUkVTRVRfQ09OVFJPTF9fVkdBX01PREVfQVVUT19UUklHR0VSX0lOREVYX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisvL1ZHQV9NT0RFX0NPTlRST0wKKyNkZWZpbmUgVkdBX01PREVfQ09OVFJPTF9fVkdBX0FUSV9MSU5FQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZHQV9NT0RFX0NPTlRST0xfX1ZHQV9MVVRfUEFMRVRURV9VUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWR0FfTU9ERV9DT05UUk9MX19WR0FfMTI4S19BUEVSVFVSRV9QQUdJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVkdBX01PREVfQ09OVFJPTF9fVkdBX1RFWFRfMTMyX0NPTFVNTlNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWR0FfTU9ERV9DT05UUk9MX19WR0FfREVFUF9TTEVFUF9GT1JDRV9FWElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZHQV9NT0RFX0NPTlRST0xfX1ZHQV9BVElfTElORUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZHQV9NT0RFX0NPTlRST0xfX1ZHQV9MVVRfUEFMRVRURV9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFZHQV9NT0RFX0NPTlRST0xfX1ZHQV8xMjhLX0FQRVJUVVJFX1BBR0lOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZHQV9NT0RFX0NPTlRST0xfX1ZHQV9URVhUXzEzMl9DT0xVTU5TX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZHQV9NT0RFX0NPTlRST0xfX1ZHQV9ERUVQX1NMRUVQX0ZPUkNFX0VYSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL1ZHQV9TVVJGQUNFX1BJVENIX1NFTEVDVAorI2RlZmluZSBWR0FfU1VSRkFDRV9QSVRDSF9TRUxFQ1RfX1ZHQV9TVVJGQUNFX1BJVENIX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVkdBX1NVUkZBQ0VfUElUQ0hfU0VMRUNUX19WR0FfU1VSRkFDRV9IRUlHSFRfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZHQV9TVVJGQUNFX1BJVENIX1NFTEVDVF9fVkdBX1NVUkZBQ0VfUElUQ0hfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFZHQV9TVVJGQUNFX1BJVENIX1NFTEVDVF9fVkdBX1NVUkZBQ0VfSEVJR0hUX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisvL1ZHQV9NRU1PUllfQkFTRV9BRERSRVNTCisjZGVmaW5lIFZHQV9NRU1PUllfQkFTRV9BRERSRVNTX19WR0FfTUVNT1JZX0JBU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWR0FfTUVNT1JZX0JBU0VfQUREUkVTU19fVkdBX01FTU9SWV9CQVNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WR0FfRElTUEJVRjFfU1VSRkFDRV9BRERSCisjZGVmaW5lIFZHQV9ESVNQQlVGMV9TVVJGQUNFX0FERFJfX1ZHQV9ESVNQQlVGMV9TVVJGQUNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWR0FfRElTUEJVRjFfU1VSRkFDRV9BRERSX19WR0FfRElTUEJVRjFfU1VSRkFDRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkZGRkZGTAorLy9WR0FfRElTUEJVRjJfU1VSRkFDRV9BRERSCisjZGVmaW5lIFZHQV9ESVNQQlVGMl9TVVJGQUNFX0FERFJfX1ZHQV9ESVNQQlVGMl9TVVJGQUNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWR0FfRElTUEJVRjJfU1VSRkFDRV9BRERSX19WR0FfRElTUEJVRjJfU1VSRkFDRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkZGRkZGTAorLy9WR0FfTUVNT1JZX0JBU0VfQUREUkVTU19ISUdICisjZGVmaW5lIFZHQV9NRU1PUllfQkFTRV9BRERSRVNTX0hJR0hfX1ZHQV9NRU1PUllfQkFTRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWR0FfTUVNT1JZX0JBU0VfQUREUkVTU19ISUdIX19WR0FfTUVNT1JZX0JBU0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9WR0FfSERQX0NPTlRST0wKKyNkZWZpbmUgVkdBX0hEUF9DT05UUk9MX19WR0FfTUVNX1BBR0VfU0VMRUNUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZHQV9IRFBfQ09OVFJPTF9fVkdBX01FTU9SWV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWR0FfSERQX0NPTlRST0xfX1ZHQV9SQkJNX0xPQ0tfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVkdBX0hEUF9DT05UUk9MX19WR0FfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWR0FfSERQX0NPTlRST0xfX1ZHQV9URVNUX1JFU0VUX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZHQV9IRFBfQ09OVFJPTF9fVkdBX01FTV9QQUdFX1NFTEVDVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZHQV9IRFBfQ09OVFJPTF9fVkdBX01FTU9SWV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFZHQV9IRFBfQ09OVFJPTF9fVkdBX1JCQk1fTE9DS19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZHQV9IRFBfQ09OVFJPTF9fVkdBX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZHQV9IRFBfQ09OVFJPTF9fVkdBX1RFU1RfUkVTRVRfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL1ZHQV9DQUNIRV9DT05UUk9MCisjZGVmaW5lIFZHQV9DQUNIRV9DT05UUk9MX19WR0FfV1JJVEVfVEhST1VHSF9DQUNIRV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWR0FfQ0FDSEVfQ09OVFJPTF9fVkdBX1JFQURfQ0FDSEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVkdBX0NBQ0hFX0NPTlRST0xfX1ZHQV9SRUFEX0JVRkZFUl9JTlZBTElEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWR0FfQ0FDSEVfQ09OVFJPTF9fVkdBX0RDQ0lGX1cyNTZPTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZHQV9DQUNIRV9DT05UUk9MX19WR0FfRENDSUZfV0NfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVkdBX0NBQ0hFX0NPTlRST0xfX1ZHQV9XUklURV9USFJPVUdIX0NBQ0hFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVkdBX0NBQ0hFX0NPTlRST0xfX1ZHQV9SRUFEX0NBQ0hFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVkdBX0NBQ0hFX0NPTlRST0xfX1ZHQV9SRUFEX0JVRkZFUl9JTlZBTElEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVkdBX0NBQ0hFX0NPTlRST0xfX1ZHQV9EQ0NJRl9XMjU2T05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVkdBX0NBQ0hFX0NPTlRST0xfX1ZHQV9EQ0NJRl9XQ19USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRDFWR0FfQ09OVFJPTAorI2RlZmluZSBEMVZHQV9DT05UUk9MX19EMVZHQV9NT0RFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRDFWR0FfQ09OVFJPTF9fRDFWR0FfVElNSU5HX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEQxVkdBX0NPTlRST0xfX0QxVkdBX1NZTkNfUE9MQVJJVFlfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEMVZHQV9DT05UUk9MX19EMVZHQV9PVkVSU0NBTl9DT0xPUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEQxVkdBX0NPTlRST0xfX0QxVkdBX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRDFWR0FfQ09OVFJPTF9fRDFWR0FfTU9ERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRDFWR0FfQ09OVFJPTF9fRDFWR0FfVElNSU5HX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRDFWR0FfQ09OVFJPTF9fRDFWR0FfU1lOQ19QT0xBUklUWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRDFWR0FfQ09OVFJPTF9fRDFWR0FfT1ZFUlNDQU5fQ09MT1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRDFWR0FfQ09OVFJPTF9fRDFWR0FfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKy8vRDJWR0FfQ09OVFJPTAorI2RlZmluZSBEMlZHQV9DT05UUk9MX19EMlZHQV9NT0RFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRDJWR0FfQ09OVFJPTF9fRDJWR0FfVElNSU5HX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEQyVkdBX0NPTlRST0xfX0QyVkdBX1NZTkNfUE9MQVJJVFlfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEMlZHQV9DT05UUk9MX19EMlZHQV9PVkVSU0NBTl9DT0xPUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEQyVkdBX0NPTlRST0xfX0QyVkdBX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRDJWR0FfQ09OVFJPTF9fRDJWR0FfTU9ERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRDJWR0FfQ09OVFJPTF9fRDJWR0FfVElNSU5HX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRDJWR0FfQ09OVFJPTF9fRDJWR0FfU1lOQ19QT0xBUklUWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRDJWR0FfQ09OVFJPTF9fRDJWR0FfT1ZFUlNDQU5fQ09MT1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRDJWR0FfQ09OVFJPTF9fRDJWR0FfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKy8vVkdBX1NUQVRVUworI2RlZmluZSBWR0FfU1RBVFVTX19WR0FfTUVNX0FDQ0VTU19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVkdBX1NUQVRVU19fVkdBX1JFR19BQ0NFU1NfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZHQV9TVEFUVVNfX1ZHQV9ESVNQTEFZX1NXSVRDSF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBWR0FfU1RBVFVTX19WR0FfTU9ERV9BVVRPX1RSSUdHRVJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVkdBX1NUQVRVU19fVkdBX01FTV9BQ0NFU1NfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVkdBX1NUQVRVU19fVkdBX1JFR19BQ0NFU1NfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVkdBX1NUQVRVU19fVkdBX0RJU1BMQVlfU1dJVENIX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVkdBX1NUQVRVU19fVkdBX01PREVfQVVUT19UUklHR0VSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKy8vVkdBX0lOVEVSUlVQVF9DT05UUk9MCisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfQ09OVFJPTF9fVkdBX01FTV9BQ0NFU1NfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWR0FfSU5URVJSVVBUX0NPTlRST0xfX1ZHQV9SRUdfQUNDRVNTX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVkdBX0lOVEVSUlVQVF9DT05UUk9MX19WR0FfRElTUExBWV9TV0lUQ0hfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWR0FfSU5URVJSVVBUX0NPTlRST0xfX1ZHQV9NT0RFX0FVVE9fVFJJR0dFUl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfQ09OVFJPTF9fVkdBX01FTV9BQ0NFU1NfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfQ09OVFJPTF9fVkdBX1JFR19BQ0NFU1NfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfQ09OVFJPTF9fVkdBX0RJU1BMQVlfU1dJVENIX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfQ09OVFJPTF9fVkdBX01PREVfQVVUT19UUklHR0VSX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL1ZHQV9TVEFUVVNfQ0xFQVIKKyNkZWZpbmUgVkdBX1NUQVRVU19DTEVBUl9fVkdBX01FTV9BQ0NFU1NfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZHQV9TVEFUVVNfQ0xFQVJfX1ZHQV9SRUdfQUNDRVNTX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWR0FfU1RBVFVTX0NMRUFSX19WR0FfRElTUExBWV9TV0lUQ0hfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZHQV9TVEFUVVNfQ0xFQVJfX1ZHQV9NT0RFX0FVVE9fVFJJR0dFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVkdBX1NUQVRVU19DTEVBUl9fVkdBX01FTV9BQ0NFU1NfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVkdBX1NUQVRVU19DTEVBUl9fVkdBX1JFR19BQ0NFU1NfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVkdBX1NUQVRVU19DTEVBUl9fVkdBX0RJU1BMQVlfU1dJVENIX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVkdBX1NUQVRVU19DTEVBUl9fVkdBX01PREVfQVVUT19UUklHR0VSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vVkdBX0lOVEVSUlVQVF9TVEFUVVMKKyNkZWZpbmUgVkdBX0lOVEVSUlVQVF9TVEFUVVNfX1ZHQV9NRU1fQUNDRVNTX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfU1RBVFVTX19WR0FfUkVHX0FDQ0VTU19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWR0FfSU5URVJSVVBUX1NUQVRVU19fVkdBX0RJU1BMQVlfU1dJVENIX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVkdBX0lOVEVSUlVQVF9TVEFUVVNfX1ZHQV9NT0RFX0FVVE9fVFJJR0dFUl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfU1RBVFVTX19WR0FfTUVNX0FDQ0VTU19JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfU1RBVFVTX19WR0FfUkVHX0FDQ0VTU19JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfU1RBVFVTX19WR0FfRElTUExBWV9TV0lUQ0hfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFZHQV9JTlRFUlJVUFRfU1RBVFVTX19WR0FfTU9ERV9BVVRPX1RSSUdHRVJfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisvL1ZHQV9NQUlOX0NPTlRST0wKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX0NSVENfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZHQV9NQUlOX0NPTlRST0xfX1ZHQV9SRU5ERVJfVElNRU9VVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWR0FfTUFJTl9DT05UUk9MX19WR0FfVklSVFVBTF9WRVJUSUNBTF9SRVRSQUNFX0RVUkFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX1JFQURCQUNLX1ZHQV9WU1RBVFVTX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZHQV9NQUlOX0NPTlRST0xfX1ZHQV9NQ19XUklURV9DTEVBTl9XQUlUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWR0FfTUFJTl9DT05UUk9MX19WR0FfUkVBREJBQ0tfTk9fRElTUExBWV9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZHQV9NQUlOX0NPTlRST0xfX1ZHQV9SRUFEQkFDS19DUlRfSU5UUl9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX1JFQURCQUNLX1NFTlNFX1NXSVRDSF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBWR0FfTUFJTl9DT05UUk9MX19WR0FfRVhURVJOQUxfREFDX1NFTlNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZHQV9NQUlOX0NPTlRST0xfX1ZHQV9NQUlOX1RFU1RfVlNUQVRVU19OT19ESVNQTEFZX0NSVENfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX0NSVENfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX1JFTkRFUl9USU1FT1VUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX1ZJUlRVQUxfVkVSVElDQUxfUkVUUkFDRV9EVVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBFMEwKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX1JFQURCQUNLX1ZHQV9WU1RBVFVTX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX01DX1dSSVRFX0NMRUFOX1dBSVRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX1JFQURCQUNLX05PX0RJU1BMQVlfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX1JFQURCQUNLX0NSVF9JTlRSX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX1JFQURCQUNLX1NFTlNFX1NXSVRDSF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX0VYVEVSTkFMX0RBQ19TRU5TRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgVkdBX01BSU5fQ09OVFJPTF9fVkdBX01BSU5fVEVTVF9WU1RBVFVTX05PX0RJU1BMQVlfQ1JUQ19USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVkdBX1RFU1RfQ09OVFJPTAorI2RlZmluZSBWR0FfVEVTVF9DT05UUk9MX19WR0FfVEVTVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVkdBX1RFU1RfQ09OVFJPTF9fVkdBX1RFU1RfUkVOREVSX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZHQV9URVNUX0NPTlRST0xfX1ZHQV9URVNUX1JFTkRFUl9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVkdBX1RFU1RfQ09OVFJPTF9fVkdBX1RFU1RfUkVOREVSX0RJU1BCVUZfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWR0FfVEVTVF9DT05UUk9MX19WR0FfVEVTVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWR0FfVEVTVF9DT05UUk9MX19WR0FfVEVTVF9SRU5ERVJfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWR0FfVEVTVF9DT05UUk9MX19WR0FfVEVTVF9SRU5ERVJfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWR0FfVEVTVF9DT05UUk9MX19WR0FfVEVTVF9SRU5ERVJfRElTUEJVRl9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9WR0FfUU9TX0NUUkwKKyNkZWZpbmUgVkdBX1FPU19DVFJMX19WR0FfUkVBRF9RT1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZHQV9RT1NfQ1RSTF9fVkdBX1dSSVRFX1FPU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWR0FfUU9TX0NUUkxfX1ZHQV9SRUFEX1FPU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBWR0FfUU9TX0NUUkxfX1ZHQV9XUklURV9RT1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9EM1ZHQV9DT05UUk9MCisjZGVmaW5lIEQzVkdBX0NPTlRST0xfX0QzVkdBX01PREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEM1ZHQV9DT05UUk9MX19EM1ZHQV9USU1JTkdfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRDNWR0FfQ09OVFJPTF9fRDNWR0FfU1lOQ19QT0xBUklUWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEQzVkdBX0NPTlRST0xfX0QzVkdBX09WRVJTQ0FOX0NPTE9SX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRDNWR0FfQ09OVFJPTF9fRDNWR0FfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEM1ZHQV9DT05UUk9MX19EM1ZHQV9NT0RFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEM1ZHQV9DT05UUk9MX19EM1ZHQV9USU1JTkdfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEM1ZHQV9DT05UUk9MX19EM1ZHQV9TWU5DX1BPTEFSSVRZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEM1ZHQV9DT05UUk9MX19EM1ZHQV9PVkVSU0NBTl9DT0xPUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEM1ZHQV9DT05UUk9MX19EM1ZHQV9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9ENFZHQV9DT05UUk9MCisjZGVmaW5lIEQ0VkdBX0NPTlRST0xfX0Q0VkdBX01PREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBENFZHQV9DT05UUk9MX19ENFZHQV9USU1JTkdfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRDRWR0FfQ09OVFJPTF9fRDRWR0FfU1lOQ19QT0xBUklUWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEQ0VkdBX0NPTlRST0xfX0Q0VkdBX09WRVJTQ0FOX0NPTE9SX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRDRWR0FfQ09OVFJPTF9fRDRWR0FfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBENFZHQV9DT05UUk9MX19ENFZHQV9NT0RFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBENFZHQV9DT05UUk9MX19ENFZHQV9USU1JTkdfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBENFZHQV9DT05UUk9MX19ENFZHQV9TWU5DX1BPTEFSSVRZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBENFZHQV9DT05UUk9MX19ENFZHQV9PVkVSU0NBTl9DT0xPUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBENFZHQV9DT05UUk9MX19ENFZHQV9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9ENVZHQV9DT05UUk9MCisjZGVmaW5lIEQ1VkdBX0NPTlRST0xfX0Q1VkdBX01PREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBENVZHQV9DT05UUk9MX19ENVZHQV9USU1JTkdfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRDVWR0FfQ09OVFJPTF9fRDVWR0FfU1lOQ19QT0xBUklUWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEQ1VkdBX0NPTlRST0xfX0Q1VkdBX09WRVJTQ0FOX0NPTE9SX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRDVWR0FfQ09OVFJPTF9fRDVWR0FfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBENVZHQV9DT05UUk9MX19ENVZHQV9NT0RFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBENVZHQV9DT05UUk9MX19ENVZHQV9USU1JTkdfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBENVZHQV9DT05UUk9MX19ENVZHQV9TWU5DX1BPTEFSSVRZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBENVZHQV9DT05UUk9MX19ENVZHQV9PVkVSU0NBTl9DT0xPUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBENVZHQV9DT05UUk9MX19ENVZHQV9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9ENlZHQV9DT05UUk9MCisjZGVmaW5lIEQ2VkdBX0NPTlRST0xfX0Q2VkdBX01PREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBENlZHQV9DT05UUk9MX19ENlZHQV9USU1JTkdfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRDZWR0FfQ09OVFJPTF9fRDZWR0FfU1lOQ19QT0xBUklUWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEQ2VkdBX0NPTlRST0xfX0Q2VkdBX09WRVJTQ0FOX0NPTE9SX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRDZWR0FfQ09OVFJPTF9fRDZWR0FfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBENlZHQV9DT05UUk9MX19ENlZHQV9NT0RFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBENlZHQV9DT05UUk9MX19ENlZHQV9USU1JTkdfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBENlZHQV9DT05UUk9MX19ENlZHQV9TWU5DX1BPTEFSSVRZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBENlZHQV9DT05UUk9MX19ENlZHQV9PVkVSU0NBTl9DT0xPUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBENlZHQV9DT05UUk9MX19ENlZHQV9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9WR0FfU09VUkNFX1NFTEVDVAorI2RlZmluZSBWR0FfU09VUkNFX1NFTEVDVF9fVkdBX1NPVVJDRV9TRUxfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVkdBX1NPVVJDRV9TRUxFQ1RfX1ZHQV9TT1VSQ0VfU0VMX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZHQV9TT1VSQ0VfU0VMRUNUX19WR0FfU09VUkNFX1NFTF9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFZHQV9TT1VSQ0VfU0VMRUNUX19WR0FfU09VUkNFX1NFTF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNjZ19kY2NnX2Rpc3BkZWMKKy8vUEhZUExMQV9QSVhDTEtfUkVTWU5DX0NOVEwKKyNkZWZpbmUgUEhZUExMQV9QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTEFfUElYQ0xLX1JFU1lOQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBIWVBMTEFfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExBX0RDQ0dfREVFUF9DT0xPUl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQSFlQTExBX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMQV9QSVhDTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUEhZUExMQV9QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTEFfUElYQ0xLX0RPVUJMRV9SQVRFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBIWVBMTEFfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExBX1BJWENMS19SRVNZTkNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBIWVBMTEFfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExBX0RDQ0dfREVFUF9DT0xPUl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFBIWVBMTEFfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExBX1BJWENMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBIWVBMTEFfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExBX1BJWENMS19ET1VCTEVfUkFURV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisvL1BIWVBMTEJfUElYQ0xLX1JFU1lOQ19DTlRMCisjZGVmaW5lIFBIWVBMTEJfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExCX1BJWENMS19SRVNZTkNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQSFlQTExCX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMQl9EQ0NHX0RFRVBfQ09MT1JfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUEhZUExMQl9QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTEJfUElYQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBIWVBMTEJfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExCX1BJWENMS19ET1VCTEVfUkFURV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQSFlQTExCX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMQl9QSVhDTEtfUkVTWU5DX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQSFlQTExCX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMQl9EQ0NHX0RFRVBfQ09MT1JfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBQSFlQTExCX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMQl9QSVhDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQSFlQTExCX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMQl9QSVhDTEtfRE9VQkxFX1JBVEVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorLy9QSFlQTExDX1BJWENMS19SRVNZTkNfQ05UTAorI2RlZmluZSBQSFlQTExDX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMQ19QSVhDTEtfUkVTWU5DX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUEhZUExMQ19QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTENfRENDR19ERUVQX0NPTE9SX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBIWVBMTENfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExDX1BJWENMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQSFlQTExDX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMQ19QSVhDTEtfRE9VQkxFX1JBVEVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUEhZUExMQ19QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTENfUElYQ0xLX1JFU1lOQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUEhZUExMQ19QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTENfRENDR19ERUVQX0NPTE9SX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgUEhZUExMQ19QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTENfUElYQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUEhZUExMQ19QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTENfUElYQ0xLX0RPVUJMRV9SQVRFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKy8vUEhZUExMRF9QSVhDTEtfUkVTWU5DX0NOVEwKKyNkZWZpbmUgUEhZUExMRF9QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTERfUElYQ0xLX1JFU1lOQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBIWVBMTERfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExEX0RDQ0dfREVFUF9DT0xPUl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQSFlQTExEX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMRF9QSVhDTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUEhZUExMRF9QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTERfUElYQ0xLX0RPVUJMRV9SQVRFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBIWVBMTERfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExEX1BJWENMS19SRVNZTkNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBIWVBMTERfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExEX0RDQ0dfREVFUF9DT0xPUl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFBIWVBMTERfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExEX1BJWENMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBIWVBMTERfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExEX1BJWENMS19ET1VCTEVfUkFURV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisvL0RQX0RUT19EQlVGX0VOCisjZGVmaW5lIERQX0RUT19EQlVGX0VOX19EUF9EVE8wX0RCVUZfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9EVE9fREJVRl9FTl9fRFBfRFRPMV9EQlVGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzJfREJVRl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQX0RUT19EQlVGX0VOX19EUF9EVE8zX0RCVUZfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUF9EVE9fREJVRl9FTl9fRFBfRFRPNF9EQlVGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzVfREJVRl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQX0RUT19EQlVGX0VOX19EUF9EVE82X0RCVUZfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUF9EVE9fREJVRl9FTl9fRFBfRFRPN19EQlVGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzBfREJVRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzFfREJVRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzJfREJVRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzNfREJVRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzRfREJVRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzVfREJVRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzZfREJVRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFBfRFRPX0RCVUZfRU5fX0RQX0RUTzdfREJVRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vRFBSRUZDTEtfQ0dUVF9CTEtfQ1RSTF9SRUcKKyNkZWZpbmUgRFBSRUZDTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfX0RQUkVGQ0xLX1RVUk5fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUkVGQ0xLX0NHVFRfQkxLX0NUUkxfUkVHX19EUFJFRkNMS19UVVJOX09GRl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUFJFRkNMS19DR1RUX0JMS19DVFJMX1JFR19fRFBSRUZDTEtfVFVSTl9PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEUFJFRkNMS19DR1RUX0JMS19DVFJMX1JFR19fRFBSRUZDTEtfVFVSTl9PRkZfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorLy9SRUZDTEtfQ05UTAorI2RlZmluZSBSRUZDTEtfQ05UTF9fUkVGQ0xLX0NMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkVGQ0xLX0NOVExfX1JFRkNMS19TUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJFRkNMS19DTlRMX19SRUZDTEtfQ0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJFRkNMS19DTlRMX19SRUZDTEtfU1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL1JFRkNMS19DR1RUX0JMS19DVFJMX1JFRworI2RlZmluZSBSRUZDTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfX1JFRkNMS19UVVJOX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkVGQ0xLX0NHVFRfQkxLX0NUUkxfUkVHX19SRUZDTEtfVFVSTl9PRkZfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJFRkNMS19DR1RUX0JMS19DVFJMX1JFR19fUkVGQ0xLX1RVUk5fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFJFRkNMS19DR1RUX0JMS19DVFJMX1JFR19fUkVGQ0xLX1RVUk5fT0ZGX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisvL1BIWVBMTEVfUElYQ0xLX1JFU1lOQ19DTlRMCisjZGVmaW5lIFBIWVBMTEVfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExFX1BJWENMS19SRVNZTkNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQSFlQTExFX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMRV9EQ0NHX0RFRVBfQ09MT1JfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUEhZUExMRV9QSVhDTEtfUkVTWU5DX0NOVExfX1BIWVBMTEVfUElYQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBIWVBMTEVfUElYQ0xLX1JFU1lOQ19DTlRMX19QSFlQTExFX1BJWENMS19ET1VCTEVfUkFURV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQSFlQTExFX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMRV9QSVhDTEtfUkVTWU5DX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQSFlQTExFX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMRV9EQ0NHX0RFRVBfQ09MT1JfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBQSFlQTExFX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMRV9QSVhDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQSFlQTExFX1BJWENMS19SRVNZTkNfQ05UTF9fUEhZUExMRV9QSVhDTEtfRE9VQkxFX1JBVEVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorLy9EQ0NHX1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfRFNJQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMMl9fRENDR19QRVJGX1JFRkNMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ0NHX1BFUkZNT05fQ05UTDJfX0RDQ0dfUEVSRl9QSVhDTEsxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfUElYQ0xLMl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMMl9fRENDR19QRVJGX1VOSVBIWUNfUElYQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0NHX1BFUkZNT05fQ05UTDJfX0RDQ0dfUEVSRl9VTklQSFlEX1BJWENMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfVU5JUEhZRV9QSVhDTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMMl9fRENDR19QRVJGX1VOSVBIWUZfUElYQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ0NHX1BFUkZNT05fQ05UTDJfX0RDQ0dfUEVSRl9VTklQSFlHX1BJWENMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfRFNJQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfUkVGQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfUElYQ0xLMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfUElYQ0xLMl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfVU5JUEhZQ19QSVhDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfVU5JUEhZRF9QSVhDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfVU5JUEhZRV9QSVhDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfVU5JUEhZRl9QSVhDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVEwyX19EQ0NHX1BFUkZfVU5JUEhZR19QSVhDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRENDR19EU19EVE9fSU5DUgorI2RlZmluZSBEQ0NHX0RTX0RUT19JTkNSX19EQ0NHX0RTX0RUT19JTkNSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENDR19EU19EVE9fSU5DUl9fRENDR19EU19EVE9fSU5DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENDR19EU19EVE9fTU9EVUxPCisjZGVmaW5lIERDQ0dfRFNfRFRPX01PRFVMT19fRENDR19EU19EVE9fTU9EVUxPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX0RTX0RUT19NT0RVTE9fX0RDQ0dfRFNfRFRPX01PRFVMT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ0NHX0RTX0NOVEwKKyNkZWZpbmUgRENDR19EU19DTlRMX19EQ0NHX0RTX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfRFNfQ05UTF9fRENDR19EU19SRUZfU1JDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0NHX0RTX0NOVExfX0RDQ0dfRFNfSFdfQ0FMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENDR19EU19DTlRMX19EQ0NHX0RTX0VOQUJMRURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDQ0dfRFNfQ05UTF9fRENDR19EU19YVEFMSU5fUkFURV9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENDR19EU19DTlRMX19EQ0NHX0RTX0pJVFRFUl9SRU1PVkVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ0NHX0RTX0NOVExfX0RDQ0dfRFNfREVMQVlfWFRBTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDQ0dfRFNfQ05UTF9fRENDR19EU19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDQ0dfRFNfQ05UTF9fRENDR19EU19SRUZfU1JDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDQ0dfRFNfQ05UTF9fRENDR19EU19IV19DQUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDQ0dfRFNfQ05UTF9fRENDR19EU19FTkFCTEVEX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDQ0dfRFNfQ05UTF9fRENDR19EU19YVEFMSU5fUkFURV9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERDQ0dfRFNfQ05UTF9fRENDR19EU19KSVRURVJfUkVNT1ZFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDQ0dfRFNfQ05UTF9fRENDR19EU19ERUxBWV9YVEFMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisvL0RDQ0dfRFNfSFdfQ0FMX0lOVEVSVkFMCisjZGVmaW5lIERDQ0dfRFNfSFdfQ0FMX0lOVEVSVkFMX19EQ0NHX0RTX0hXX0NBTF9JTlRFUlZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX0RTX0hXX0NBTF9JTlRFUlZBTF9fRENDR19EU19IV19DQUxfSU5URVJWQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EUFJFRkNMS19DTlRMCisjZGVmaW5lIERQUkVGQ0xLX0NOVExfX0RQUkVGQ0xLX1NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUFJFRkNMS19DTlRMX19EUFJFRkNMS19TUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorLy9EQ0VfVkVSU0lPTgorI2RlZmluZSBEQ0VfVkVSU0lPTl9fTUFKT1JfVkVSU0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENFX1ZFUlNJT05fX01JTk9SX1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDRV9WRVJTSU9OX19NQUpPUl9WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERDRV9WRVJTSU9OX19NSU5PUl9WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0RDQ0dfR1RDX0NOVEwKKyNkZWZpbmUgRENDR19HVENfQ05UTF9fRENDR19HVENfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfR1RDX0NOVExfX0RDQ0dfR1RDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RDQ0dfR1RDX0RUT19JTkNSCisjZGVmaW5lIERDQ0dfR1RDX0RUT19JTkNSX19EQ0NHX0dUQ19EVE9fSU5DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX0dUQ19EVE9fSU5DUl9fRENDR19HVENfRFRPX0lOQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ0NHX0dUQ19EVE9fTU9EVUxPCisjZGVmaW5lIERDQ0dfR1RDX0RUT19NT0RVTE9fX0RDQ0dfR1RDX0RUT19NT0RVTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX0dUQ19EVE9fTU9EVUxPX19EQ0NHX0dUQ19EVE9fTU9EVUxPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ0NHX0dUQ19DVVJSRU5UCisjZGVmaW5lIERDQ0dfR1RDX0NVUlJFTlRfX0RDQ0dfR1RDX0NVUlJFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX0dUQ19DVVJSRU5UX19EQ0NHX0dUQ19DVVJSRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDTEswX0RUT19QQVJBTQorI2RlZmluZSBEU0NDTEswX0RUT19QQVJBTV9fRFNDQ0xLMF9EVE9fUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQ0xLMF9EVE9fUEFSQU1fX0RTQ0NMSzBfRFRPX01PRFVMT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDTEswX0RUT19QQVJBTV9fRFNDQ0xLMF9EVE9fUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDTEswX0RUT19QQVJBTV9fRFNDQ0xLMF9EVE9fTU9EVUxPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9EU0NDTEsxX0RUT19QQVJBTQorI2RlZmluZSBEU0NDTEsxX0RUT19QQVJBTV9fRFNDQ0xLMV9EVE9fUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQ0xLMV9EVE9fUEFSQU1fX0RTQ0NMSzFfRFRPX01PRFVMT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDTEsxX0RUT19QQVJBTV9fRFNDQ0xLMV9EVE9fUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDTEsxX0RUT19QQVJBTV9fRFNDQ0xLMV9EVE9fTU9EVUxPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9EU0NDTEsyX0RUT19QQVJBTQorI2RlZmluZSBEU0NDTEsyX0RUT19QQVJBTV9fRFNDQ0xLMl9EVE9fUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQ0xLMl9EVE9fUEFSQU1fX0RTQ0NMSzJfRFRPX01PRFVMT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDTEsyX0RUT19QQVJBTV9fRFNDQ0xLMl9EVE9fUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDTEsyX0RUT19QQVJBTV9fRFNDQ0xLMl9EVE9fTU9EVUxPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9NSUxMSVNFQ09ORF9USU1FX0JBU0VfRElWCisjZGVmaW5lIE1JTExJU0VDT05EX1RJTUVfQkFTRV9ESVZfX01JTExJU0VDT05EX1RJTUVfQkFTRV9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNSUxMSVNFQ09ORF9USU1FX0JBU0VfRElWX19NSUxMSVNFQ09ORF9USU1FX0JBU0VfQ0xPQ0tfU09VUkNFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1JTExJU0VDT05EX1RJTUVfQkFTRV9ESVZfX01JTExJU0VDT05EX1RJTUVfQkFTRV9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisjZGVmaW5lIE1JTExJU0VDT05EX1RJTUVfQkFTRV9ESVZfX01JTExJU0VDT05EX1RJTUVfQkFTRV9DTE9DS19TT1VSQ0VfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL0RJU1BDTEtfRlJFUV9DSEFOR0VfQ05UTAorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RJU1BDTEtfU1RFUF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElTUENMS19GUkVRX0NIQU5HRV9DTlRMX19ESVNQQ0xLX1NURVBfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RJU1BDTEtfRlJFUV9SQU1QX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJU1BDTEtfRlJFUV9DSEFOR0VfQ05UTF9fRElTUENMS19NQVhfRVJSREVUX0NZQ0xFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRElTUENMS19GUkVRX0NIQU5HRV9DTlRMX19EQ0NHX0ZJRk9fRVJSREVUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RDQ0dfRklGT19FUlJERVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERJU1BDTEtfRlJFUV9DSEFOR0VfQ05UTF9fRENDR19GSUZPX0VSUkRFVF9PVlJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElTUENMS19GUkVRX0NIQU5HRV9DTlRMX19ESVNQQ0xLX0NIR19GV0RfQ09SUl9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RJU1BDTEtfU1RFUF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RJU1BDTEtfU1RFUF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RJU1BDTEtfRlJFUV9SQU1QX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RJU1BDTEtfTUFYX0VSUkRFVF9DWUNMRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RDQ0dfRklGT19FUlJERVRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RDQ0dfRklGT19FUlJERVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RDQ0dfRklGT19FUlJERVRfT1ZSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBESVNQQ0xLX0ZSRVFfQ0hBTkdFX0NOVExfX0RJU1BDTEtfQ0hHX0ZXRF9DT1JSX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19NRU1fR0xPQkFMX1BXUl9SRVFfQ05UTAorI2RlZmluZSBEQ19NRU1fR0xPQkFMX1BXUl9SRVFfQ05UTF9fRENfTUVNX0dMT0JBTF9QV1JfUkVRX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfTUVNX0dMT0JBTF9QV1JfUkVRX0NOVExfX0RDX01FTV9HTE9CQUxfUFdSX1JFUV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRENDR19QRVJGTU9OX0NOVEwKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVExfX0RDQ0dfUEVSRl9ESVNQQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfRFBSRUZDTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ0NHX1BFUkZNT05fQ05UTF9fRENDR19QRVJGX1VOSVBIWUFfUElYQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVExfX0RDQ0dfUEVSRl9VTklQSFlCX1BJWENMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfUElYQ0xLMF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0NHX1BFUkZNT05fQ05UTF9fRENDR19QRVJGX1JVTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVExfX0RDQ0dfUEVSRl9NT0RFX1ZTWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfTU9ERV9IU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ0NHX1BFUkZNT05fQ05UTF9fRENDR19QRVJGX09UR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENDR19QRVJGTU9OX0NOVExfX0RDQ0dfUEVSRl9YVEFMSU5fUFVMU0VfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfRElTUENMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfRFBSRUZDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfVU5JUEhZQV9QSVhDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfVU5JUEhZQl9QSVhDTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfUElYQ0xLMF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfTU9ERV9WU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfTU9ERV9IU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfT1RHX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERDQ0dfUEVSRk1PTl9DTlRMX19EQ0NHX1BFUkZfWFRBTElOX1BVTFNFX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkY4MDBMCisvL0RDQ0dfR0FURV9ESVNBQkxFX0NOVEwKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTF9fRElTUENMS19EQ0NHX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RJU1BDTEtfUl9EQ0NHX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMX19TT0NDTEtfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTF9fRFBSRUZDTEtfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RBQ0FDTEtfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMX19EVk9BQ0xLX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTF9fRFBSRUZDTEtfUl9EQ0NHX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RQUENMS19HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMX19EUFBDTEtfUl9EQ0NHX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTF9fRFNDQ0xLX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RNQ1VCQ0xLX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMX19BT01DTEswX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0FPTUNMSzFfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTF9fQU9NQ0xLMl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMX19BVURJT19EVE8yX0NMS19HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RQUkVGQ0xLX0dUQ19HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTF9fUkVGQ0xLX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMX19SRUZDTEtfUl9ESUdfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RTSUNMS19HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTF9fQllURUNMS19HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMX19FU0NDTEtfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RJU1BDTEtfRENDR19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RJU1BDTEtfUl9EQ0NHX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX1NPQ0NMS19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RQUkVGQ0xLX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RBQ0FDTEtfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RWT0FDTEtfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RQUkVGQ0xLX1JfRENDR19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RQUENMS19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RQUENMS19SX0RDQ0dfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RTQ0NMS19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RNQ1VCQ0xLX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0FPTUNMSzBfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0FPTUNMSzFfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0FPTUNMSzJfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0FVRElPX0RUTzJfQ0xLX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RQUkVGQ0xLX0dUQ19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX1JFRkNMS19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX1JFRkNMS19SX0RJR19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0RTSUNMS19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0JZVEVDTEtfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVExfX0VTQ0NMS19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RJU1BDTEtfQ0dUVF9CTEtfQ1RSTF9SRUcKKyNkZWZpbmUgRElTUENMS19DR1RUX0JMS19DVFJMX1JFR19fRElTUENMS19UVVJOX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJU1BDTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfX0RJU1BDTEtfVFVSTl9PRkZfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESVNQQ0xLX0NHVFRfQkxLX0NUUkxfUkVHX19ESVNQQ0xLX1RVUk5fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBESVNQQ0xLX0NHVFRfQkxLX0NUUkxfUkVHX19ESVNQQ0xLX1RVUk5fT0ZGX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorLy9TT0NDTEtfQ0dUVF9CTEtfQ1RSTF9SRUcKKyNkZWZpbmUgU09DQ0xLX0NHVFRfQkxLX0NUUkxfUkVHX19TT0NDTEtfVFVSTl9PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNPQ0NMS19DR1RUX0JMS19DVFJMX1JFR19fU09DQ0xLX1RVUk5fT0ZGX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTT0NDTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfX1NPQ0NMS19UVVJOX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTT0NDTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfX1NPQ0NMS19UVVJOX09GRl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorLy9EQ0NHX0NBQ19TVEFUVVMKKyNkZWZpbmUgRENDR19DQUNfU1RBVFVTX19DQUNfU1RBVFVTX1JEREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfQ0FDX1NUQVRVU19fQ0FDX1NUQVRVU19SRERBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01JQ1JPU0VDT05EX1RJTUVfQkFTRV9ESVYKKyNkZWZpbmUgTUlDUk9TRUNPTkRfVElNRV9CQVNFX0RJVl9fTUlDUk9TRUNPTkRfVElNRV9CQVNFX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1JQ1JPU0VDT05EX1RJTUVfQkFTRV9ESVZfX1hUQUxfUkVGX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNSUNST1NFQ09ORF9USU1FX0JBU0VfRElWX19YVEFMX1JFRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1JQ1JPU0VDT05EX1RJTUVfQkFTRV9ESVZfX1hUQUxfUkVGX0NMT0NLX1NPVVJDRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTUlDUk9TRUNPTkRfVElNRV9CQVNFX0RJVl9fTUlDUk9TRUNPTkRfVElNRV9CQVNFX0NMT0NLX1NPVVJDRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNSUNST1NFQ09ORF9USU1FX0JBU0VfRElWX19NSUNST1NFQ09ORF9USU1FX0JBU0VfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBNSUNST1NFQ09ORF9USU1FX0JBU0VfRElWX19YVEFMX1JFRl9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNSUNST1NFQ09ORF9USU1FX0JBU0VfRElWX19YVEFMX1JFRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNSUNST1NFQ09ORF9USU1FX0JBU0VfRElWX19YVEFMX1JFRl9DTE9DS19TT1VSQ0VfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNSUNST1NFQ09ORF9USU1FX0JBU0VfRElWX19NSUNST1NFQ09ORF9USU1FX0JBU0VfQ0xPQ0tfU09VUkNFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9EQ0NHX0dBVEVfRElTQUJMRV9DTlRMMgorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLQV9GRV9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTDJfX1NZTUNMS0JfRkVfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVEwyX19TWU1DTEtDX0ZFX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLRF9GRV9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTDJfX1NZTUNMS0VfRkVfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVEwyX19TWU1DTEtGX0ZFX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLR19GRV9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTDJfX1NZTUNMS0FfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLQl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVEwyX19TWU1DTEtDX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTDJfX1NZTUNMS0RfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLRV9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDQ0dfR0FURV9ESVNBQkxFX0NOVEwyX19TWU1DTEtGX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRENDR19HQVRFX0RJU0FCTEVfQ05UTDJfX1NZTUNMS0dfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLQV9GRV9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLQl9GRV9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLQ19GRV9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLRF9GRV9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLRV9GRV9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLRl9GRV9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLR19GRV9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLQV9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLQl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLQ19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLRF9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLRV9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLRl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQ0NHX0dBVEVfRElTQUJMRV9DTlRMMl9fU1lNQ0xLR19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9TWU1DTEtfQ0dUVF9CTEtfQ1RSTF9SRUcKKyNkZWZpbmUgU1lNQ0xLX0NHVFRfQkxLX0NUUkxfUkVHX19TWU1DTEtfVFVSTl9PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNZTUNMS19DR1RUX0JMS19DVFJMX1JFR19fU1lNQ0xLX1RVUk5fT0ZGX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTWU1DTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfX1NZTUNMS19UVVJOX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTWU1DTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfX1NZTUNMS19UVVJOX09GRl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorLy9EQ0NHX0RJU1BfQ05UTF9SRUcKKyNkZWZpbmUgRENDR19ESVNQX0NOVExfUkVHX19BTExPV19TUl9PTl9UUkFOU19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDQ0dfRElTUF9DTlRMX1JFR19fQUxMT1dfU1JfT05fVFJBTlNfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL09URzBfUElYRUxfUkFURV9DTlRMCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19PVEcwX1BJWEVMX1JBVEVfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX1BJWEVMX1JBVEVfQ05UTF9fRFBfRFRPMF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMF9QSVhFTF9SQVRFX0NOVExfX0RQX0RUTzBfRFNfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19PVEcwX0FERF9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX1BJWEVMX1JBVEVfQ05UTF9fT1RHMF9EUk9QX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHMF9QSVhFTF9SQVRFX0NOVExfX09URzBfRElTUE9VVF9IQUxGX1JBVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19PVEcwX0RJT19GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEcwX1BJWEVMX1JBVEVfQ05UTF9fT1RHMF9ESU9fRVJST1JfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19PVEcwX1BJWEVMX1JBVEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19EUF9EVE8wX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19EUF9EVE8wX0RTX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19PVEcwX0FERF9QSVhFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19PVEcwX0RST1BfUElYRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19PVEcwX0RJU1BPVVRfSEFMRl9SQVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19PVEcwX0RJT19GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE9URzBfUElYRUxfUkFURV9DTlRMX19PVEcwX0RJT19FUlJPUl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL0RQX0RUTzBfUEhBU0UKKyNkZWZpbmUgRFBfRFRPMF9QSEFTRV9fRFBfRFRPMF9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0RUTzBfUEhBU0VfX0RQX0RUTzBfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RQX0RUTzBfTU9EVUxPCisjZGVmaW5lIERQX0RUTzBfTU9EVUxPX19EUF9EVE8wX01PRFVMT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9EVE8wX01PRFVMT19fRFBfRFRPMF9NT0RVTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9PVEcwX1BIWVBMTF9QSVhFTF9SQVRFX0NOVEwKKyNkZWZpbmUgT1RHMF9QSFlQTExfUElYRUxfUkFURV9DTlRMX19PVEcwX1BIWVBMTF9QSVhFTF9SQVRFX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfUEhZUExMX1BJWEVMX1JBVEVfQ05UTF9fT1RHMF9QSVhFTF9SQVRFX1BMTF9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcwX1BIWVBMTF9QSVhFTF9SQVRFX0NOVExfX09URzBfUEhZUExMX1BJWEVMX1JBVEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBPVEcwX1BIWVBMTF9QSVhFTF9SQVRFX0NOVExfX09URzBfUElYRUxfUkFURV9QTExfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9PVEcxX1BJWEVMX1JBVEVfQ05UTAorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9QSVhFTF9SQVRFX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9QSVhFTF9SQVRFX0NOVExfX0RQX0RUTzFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzFfUElYRUxfUkFURV9DTlRMX19EUF9EVE8xX0RTX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9BRERfUElYRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9QSVhFTF9SQVRFX0NOVExfX09URzFfRFJPUF9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzFfUElYRUxfUkFURV9DTlRMX19PVEcxX0RJU1BPVVRfSEFMRl9SQVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9ESU9fRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHMV9QSVhFTF9SQVRFX0NOVExfX09URzFfRElPX0VSUk9SX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9QSVhFTF9SQVRFX1NPVVJDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fRFBfRFRPMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fRFBfRFRPMV9EU19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9BRERfUElYRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9EUk9QX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9ESVNQT1VUX0hBTEZfUkFURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9ESU9fRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBPVEcxX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9ESU9fRVJST1JfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkYwMDAwTAorLy9EUF9EVE8xX1BIQVNFCisjZGVmaW5lIERQX0RUTzFfUEhBU0VfX0RQX0RUTzFfUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9EVE8xX1BIQVNFX19EUF9EVE8xX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EUF9EVE8xX01PRFVMTworI2RlZmluZSBEUF9EVE8xX01PRFVMT19fRFBfRFRPMV9NT0RVTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfRFRPMV9NT0RVTE9fX0RQX0RUTzFfTU9EVUxPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vT1RHMV9QSFlQTExfUElYRUxfUkFURV9DTlRMCisjZGVmaW5lIE9URzFfUEhZUExMX1BJWEVMX1JBVEVfQ05UTF9fT1RHMV9QSFlQTExfUElYRUxfUkFURV9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX1BIWVBMTF9QSVhFTF9SQVRFX0NOVExfX09URzFfUElYRUxfUkFURV9QTExfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMV9QSFlQTExfUElYRUxfUkFURV9DTlRMX19PVEcxX1BIWVBMTF9QSVhFTF9SQVRFX1NPVVJDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgT1RHMV9QSFlQTExfUElYRUxfUkFURV9DTlRMX19PVEcxX1BJWEVMX1JBVEVfUExMX1NPVVJDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vT1RHMl9QSVhFTF9SQVRFX0NOVEwKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX09URzJfUElYRUxfUkFURV9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfUElYRUxfUkFURV9DTlRMX19EUF9EVE8yX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX1BJWEVMX1JBVEVfQ05UTF9fRFBfRFRPMl9EU19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX09URzJfQUREX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfUElYRUxfUkFURV9DTlRMX19PVEcyX0RST1BfUElYRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEcyX1BJWEVMX1JBVEVfQ05UTF9fT1RHMl9ESVNQT1VUX0hBTEZfUkFURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX09URzJfRElPX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzJfUElYRUxfUkFURV9DTlRMX19PVEcyX0RJT19FUlJPUl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX09URzJfUElYRUxfUkFURV9TT1VSQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX0RQX0RUTzJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX0RQX0RUTzJfRFNfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX09URzJfQUREX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX09URzJfRFJPUF9QSVhFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX09URzJfRElTUE9VVF9IQUxGX1JBVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX09URzJfRElPX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgT1RHMl9QSVhFTF9SQVRFX0NOVExfX09URzJfRElPX0VSUk9SX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGMDAwMEwKKy8vRFBfRFRPMl9QSEFTRQorI2RlZmluZSBEUF9EVE8yX1BIQVNFX19EUF9EVE8yX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfRFRPMl9QSEFTRV9fRFBfRFRPMl9QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFBfRFRPMl9NT0RVTE8KKyNkZWZpbmUgRFBfRFRPMl9NT0RVTE9fX0RQX0RUTzJfTU9EVUxPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0RUTzJfTU9EVUxPX19EUF9EVE8yX01PRFVMT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL09URzJfUEhZUExMX1BJWEVMX1JBVEVfQ05UTAorI2RlZmluZSBPVEcyX1BIWVBMTF9QSVhFTF9SQVRFX0NOVExfX09URzJfUEhZUExMX1BJWEVMX1JBVEVfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9QSFlQTExfUElYRUxfUkFURV9DTlRMX19PVEcyX1BJWEVMX1JBVEVfUExMX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzJfUEhZUExMX1BJWEVMX1JBVEVfQ05UTF9fT1RHMl9QSFlQTExfUElYRUxfUkFURV9TT1VSQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE9URzJfUEhZUExMX1BJWEVMX1JBVEVfQ05UTF9fT1RHMl9QSVhFTF9SQVRFX1BMTF9TT1VSQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL09URzNfUElYRUxfUkFURV9DTlRMCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19PVEczX1BJWEVMX1JBVEVfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX1BJWEVMX1JBVEVfQ05UTF9fRFBfRFRPM19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHM19QSVhFTF9SQVRFX0NOVExfX0RQX0RUTzNfRFNfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19PVEczX0FERF9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX1BJWEVMX1JBVEVfQ05UTF9fT1RHM19EUk9QX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHM19QSVhFTF9SQVRFX0NOVExfX09URzNfRElTUE9VVF9IQUxGX1JBVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19PVEczX0RJT19GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEczX1BJWEVMX1JBVEVfQ05UTF9fT1RHM19ESU9fRVJST1JfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19PVEczX1BJWEVMX1JBVEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19EUF9EVE8zX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19EUF9EVE8zX0RTX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19PVEczX0FERF9QSVhFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19PVEczX0RST1BfUElYRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19PVEczX0RJU1BPVVRfSEFMRl9SQVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19PVEczX0RJT19GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE9URzNfUElYRUxfUkFURV9DTlRMX19PVEczX0RJT19FUlJPUl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL0RQX0RUTzNfUEhBU0UKKyNkZWZpbmUgRFBfRFRPM19QSEFTRV9fRFBfRFRPM19QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0RUTzNfUEhBU0VfX0RQX0RUTzNfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RQX0RUTzNfTU9EVUxPCisjZGVmaW5lIERQX0RUTzNfTU9EVUxPX19EUF9EVE8zX01PRFVMT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9EVE8zX01PRFVMT19fRFBfRFRPM19NT0RVTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9PVEczX1BIWVBMTF9QSVhFTF9SQVRFX0NOVEwKKyNkZWZpbmUgT1RHM19QSFlQTExfUElYRUxfUkFURV9DTlRMX19PVEczX1BIWVBMTF9QSVhFTF9SQVRFX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfUEhZUExMX1BJWEVMX1JBVEVfQ05UTF9fT1RHM19QSVhFTF9SQVRFX1BMTF9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEczX1BIWVBMTF9QSVhFTF9SQVRFX0NOVExfX09URzNfUEhZUExMX1BJWEVMX1JBVEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBPVEczX1BIWVBMTF9QSVhFTF9SQVRFX0NOVExfX09URzNfUElYRUxfUkFURV9QTExfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9EUFBDTEtfQ0dUVF9CTEtfQ1RSTF9SRUcKKyNkZWZpbmUgRFBQQ0xLX0NHVFRfQkxLX0NUUkxfUkVHX19EUFBDTEtfVFVSTl9PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUENMS19DR1RUX0JMS19DVFJMX1JFR19fRFBQQ0xLX1RVUk5fT0ZGX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUFBDTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfX0RQUENMS19UVVJOX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEUFBDTEtfQ0dUVF9CTEtfQ1RSTF9SRUdfX0RQUENMS19UVVJOX09GRl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorLy9EUFBDTEswX0RUT19QQVJBTQorI2RlZmluZSBEUFBDTEswX0RUT19QQVJBTV9fRFBQQ0xLMF9EVE9fUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQQ0xLMF9EVE9fUEFSQU1fX0RQUENMSzBfRFRPX01PRFVMT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBDTEswX0RUT19QQVJBTV9fRFBQQ0xLMF9EVE9fUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUFBDTEswX0RUT19QQVJBTV9fRFBQQ0xLMF9EVE9fTU9EVUxPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9EUFBDTEsxX0RUT19QQVJBTQorI2RlZmluZSBEUFBDTEsxX0RUT19QQVJBTV9fRFBQQ0xLMV9EVE9fUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQQ0xLMV9EVE9fUEFSQU1fX0RQUENMSzFfRFRPX01PRFVMT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBDTEsxX0RUT19QQVJBTV9fRFBQQ0xLMV9EVE9fUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUFBDTEsxX0RUT19QQVJBTV9fRFBQQ0xLMV9EVE9fTU9EVUxPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9EUFBDTEsyX0RUT19QQVJBTQorI2RlZmluZSBEUFBDTEsyX0RUT19QQVJBTV9fRFBQQ0xLMl9EVE9fUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQQ0xLMl9EVE9fUEFSQU1fX0RQUENMSzJfRFRPX01PRFVMT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBDTEsyX0RUT19QQVJBTV9fRFBQQ0xLMl9EVE9fUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUFBDTEsyX0RUT19QQVJBTV9fRFBQQ0xLMl9EVE9fTU9EVUxPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9EUFBDTEszX0RUT19QQVJBTQorI2RlZmluZSBEUFBDTEszX0RUT19QQVJBTV9fRFBQQ0xLM19EVE9fUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQQ0xLM19EVE9fUEFSQU1fX0RQUENMSzNfRFRPX01PRFVMT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBDTEszX0RUT19QQVJBTV9fRFBQQ0xLM19EVE9fUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUFBDTEszX0RUT19QQVJBTV9fRFBQQ0xLM19EVE9fTU9EVUxPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9EQ0NHX0NBQ19TVEFUVVMyCisjZGVmaW5lIERDQ0dfQ0FDX1NUQVRVUzJfX0NBQ19TVEFUVVNfUkREQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX0NBQ19TVEFUVVMyX19DQUNfU1RBVFVTX1JEREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorLy9TWU1DTEtBX0NMT0NLX0VOQUJMRQorI2RlZmluZSBTWU1DTEtBX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQV9DTE9DS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU1lNQ0xLQV9DTE9DS19FTkFCTEVfX1NZTUNMS0FfRkVfRk9SQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNZTUNMS0FfQ0xPQ0tfRU5BQkxFX19TWU1DTEtBX0ZFX0ZPUkNFX1NSQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTWU1DTEtBX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQV9DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTWU1DTEtBX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQV9GRV9GT1JDRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTWU1DTEtBX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQV9GRV9GT1JDRV9TUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorLy9TWU1DTEtCX0NMT0NLX0VOQUJMRQorI2RlZmluZSBTWU1DTEtCX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQl9DTE9DS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU1lNQ0xLQl9DTE9DS19FTkFCTEVfX1NZTUNMS0JfRkVfRk9SQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNZTUNMS0JfQ0xPQ0tfRU5BQkxFX19TWU1DTEtCX0ZFX0ZPUkNFX1NSQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTWU1DTEtCX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQl9DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTWU1DTEtCX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQl9GRV9GT1JDRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTWU1DTEtCX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQl9GRV9GT1JDRV9TUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorLy9TWU1DTEtDX0NMT0NLX0VOQUJMRQorI2RlZmluZSBTWU1DTEtDX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQ19DTE9DS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU1lNQ0xLQ19DTE9DS19FTkFCTEVfX1NZTUNMS0NfRkVfRk9SQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNZTUNMS0NfQ0xPQ0tfRU5BQkxFX19TWU1DTEtDX0ZFX0ZPUkNFX1NSQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTWU1DTEtDX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQ19DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTWU1DTEtDX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQ19GRV9GT1JDRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTWU1DTEtDX0NMT0NLX0VOQUJMRV9fU1lNQ0xLQ19GRV9GT1JDRV9TUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorLy9TWU1DTEtEX0NMT0NLX0VOQUJMRQorI2RlZmluZSBTWU1DTEtEX0NMT0NLX0VOQUJMRV9fU1lNQ0xLRF9DTE9DS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU1lNQ0xLRF9DTE9DS19FTkFCTEVfX1NZTUNMS0RfRkVfRk9SQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNZTUNMS0RfQ0xPQ0tfRU5BQkxFX19TWU1DTEtEX0ZFX0ZPUkNFX1NSQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTWU1DTEtEX0NMT0NLX0VOQUJMRV9fU1lNQ0xLRF9DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTWU1DTEtEX0NMT0NLX0VOQUJMRV9fU1lNQ0xLRF9GRV9GT1JDRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTWU1DTEtEX0NMT0NLX0VOQUJMRV9fU1lNQ0xLRF9GRV9GT1JDRV9TUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorLy9TWU1DTEtFX0NMT0NLX0VOQUJMRQorI2RlZmluZSBTWU1DTEtFX0NMT0NLX0VOQUJMRV9fU1lNQ0xLRV9DTE9DS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU1lNQ0xLRV9DTE9DS19FTkFCTEVfX1NZTUNMS0VfRkVfRk9SQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNZTUNMS0VfQ0xPQ0tfRU5BQkxFX19TWU1DTEtFX0ZFX0ZPUkNFX1NSQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTWU1DTEtFX0NMT0NLX0VOQUJMRV9fU1lNQ0xLRV9DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTWU1DTEtFX0NMT0NLX0VOQUJMRV9fU1lNQ0xLRV9GRV9GT1JDRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTWU1DTEtFX0NMT0NLX0VOQUJMRV9fU1lNQ0xLRV9GRV9GT1JDRV9TUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorLy9EQ0NHX1NPRlRfUkVTRVQKKyNkZWZpbmUgRENDR19TT0ZUX1JFU0VUX19SRUZDTEtfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fUENJRV9SRUZDTEtfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ0NHX1NPRlRfUkVTRVRfX1NPRlRfUkVTRVRfRFZPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENDR19TT0ZUX1JFU0VUX19EVk9fRU5BQkxFX1JTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQVVESU9fRFRPMl9DTEtfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0NHX1NPRlRfUkVTRVRfX0RQUkVGQ0xLX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENDR19TT0ZUX1JFU0VUX19BTUNMSzBfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQU1DTEsxX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ0NHX1NPRlRfUkVTRVRfX1AwUExMX0NGR19JRl9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENDR19TT0ZUX1JFU0VUX19QMVBMTF9DRkdfSUZfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fUDJQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENDR19TT0ZUX1JFU0VUX19BMFBMTF9DRkdfSUZfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQ0NHX1NPRlRfUkVTRVRfX0ExUExMX0NGR19JRl9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQzBQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRENDR19TT0ZUX1JFU0VUX19DMVBMTF9DRkdfSUZfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ0NHX1NPRlRfUkVTRVRfX0MyUExMX0NGR19JRl9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fUkVGQ0xLX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fUENJRV9SRUZDTEtfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fU09GVF9SRVNFVF9EVk9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fRFZPX0VOQUJMRV9SU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQVVESU9fRFRPMl9DTEtfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fRFBSRUZDTEtfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQU1DTEswX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQU1DTEsxX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fUDBQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fUDFQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fUDJQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQTBQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQTFQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQzBQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQzFQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDQ0dfU09GVF9SRVNFVF9fQzJQTExfQ0ZHX0lGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisvL0RTQ0NMS19EVE9fQ1RSTAorI2RlZmluZSBEU0NDTEtfRFRPX0NUUkxfX0RTQ0NMSzBfRFRPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQ0xLX0RUT19DVFJMX19EU0NDTEsxX0RUT19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLMl9EVE9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEU0NDTEtfRFRPX0NUUkxfX0RTQ0NMSzNfRFRPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFNDQ0xLX0RUT19DVFJMX19EU0NDTEs0X0RUT19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLNV9EVE9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDTEtfRFRPX0NUUkxfX0RTQ0NMSzZfRFRPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDQ0xLX0RUT19DVFJMX19EU0NDTEswX0RUT19EQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLMV9EVE9fREJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEU0NDTEtfRFRPX0NUUkxfX0RTQ0NMSzJfRFRPX0RCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQ0xLX0RUT19DVFJMX19EU0NDTEszX0RUT19EQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLNF9EVE9fREJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NDTEtfRFRPX0NUUkxfX0RTQ0NMSzVfRFRPX0RCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFNDQ0xLX0RUT19DVFJMX19EU0NDTEs2X0RUT19EQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLMF9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLMV9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLMl9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLM19EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLNF9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLNV9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLNl9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLMF9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLMV9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLMl9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLM19EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLNF9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLNV9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERTQ0NMS19EVE9fQ1RSTF9fRFNDQ0xLNl9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisvL0RDQ0dfQVVESU9fRFRPX1NPVVJDRQorI2RlZmluZSBEQ0NHX0FVRElPX0RUT19TT1VSQ0VfX0RDQ0dfQVVESU9fRFRPMF9TT1VSQ0VfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENDR19BVURJT19EVE9fU09VUkNFX19EQ0NHX0FVRElPX0RUT19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDQ0dfQVVESU9fRFRPX1NPVVJDRV9fRENDR19BVURJT19EVE8yX1NPVVJDRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ0NHX0FVRElPX0RUT19TT1VSQ0VfX0RDQ0dfQVVESU9fRFRPMl9DTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPX1NPVVJDRV9fRENDR19BVURJT19EVE8yX1VTRV81MTJGQlJfRFRPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENDR19BVURJT19EVE9fU09VUkNFX19EQ0NHX0FVRElPX0RUTzBfVVNFXzUxMkZCUl9EVE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ0NHX0FVRElPX0RUT19TT1VSQ0VfX0RDQ0dfQVVESU9fRFRPMV9VU0VfNTEyRkJSX0RUT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPX1NPVVJDRV9fRENDR19BVURJT19EVE8wX1NPVVJDRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPX1NPVVJDRV9fRENDR19BVURJT19EVE9fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPX1NPVVJDRV9fRENDR19BVURJT19EVE8yX1NPVVJDRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPX1NPVVJDRV9fRENDR19BVURJT19EVE8yX0NMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPX1NPVVJDRV9fRENDR19BVURJT19EVE8yX1VTRV81MTJGQlJfRFRPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPX1NPVVJDRV9fRENDR19BVURJT19EVE8wX1VTRV81MTJGQlJfRFRPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPX1NPVVJDRV9fRENDR19BVURJT19EVE8xX1VTRV81MTJGQlJfRFRPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RDQ0dfQVVESU9fRFRPMF9QSEFTRQorI2RlZmluZSBEQ0NHX0FVRElPX0RUTzBfUEhBU0VfX0RDQ0dfQVVESU9fRFRPMF9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENDR19BVURJT19EVE8wX1BIQVNFX19EQ0NHX0FVRElPX0RUTzBfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENDR19BVURJT19EVE8wX01PRFVMRQorI2RlZmluZSBEQ0NHX0FVRElPX0RUTzBfTU9EVUxFX19EQ0NHX0FVRElPX0RUTzBfTU9EVUxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENDR19BVURJT19EVE8wX01PRFVMRV9fRENDR19BVURJT19EVE8wX01PRFVMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENDR19BVURJT19EVE8xX1BIQVNFCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPMV9QSEFTRV9fRENDR19BVURJT19EVE8xX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX0FVRElPX0RUTzFfUEhBU0VfX0RDQ0dfQVVESU9fRFRPMV9QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ0NHX0FVRElPX0RUTzFfTU9EVUxFCisjZGVmaW5lIERDQ0dfQVVESU9fRFRPMV9NT0RVTEVfX0RDQ0dfQVVESU9fRFRPMV9NT0RVTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX0FVRElPX0RUTzFfTU9EVUxFX19EQ0NHX0FVRElPX0RUTzFfTU9EVUxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ0NHX1ZTWU5DX09URzBfTEFUQ0hfVkFMVUUKKyNkZWZpbmUgRENDR19WU1lOQ19PVEcwX0xBVENIX1ZBTFVFX19EQ0NHX1ZTWU5DX0NOVF9PVEcwX0xBVENIX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfVlNZTkNfT1RHMF9MQVRDSF9WQUxVRV9fRENDR19WU1lOQ19DTlRfT1RHMF9MQVRDSF9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDQ0dfVlNZTkNfT1RHMV9MQVRDSF9WQUxVRQorI2RlZmluZSBEQ0NHX1ZTWU5DX09URzFfTEFUQ0hfVkFMVUVfX0RDQ0dfVlNZTkNfQ05UX09URzFfTEFUQ0hfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENDR19WU1lOQ19PVEcxX0xBVENIX1ZBTFVFX19EQ0NHX1ZTWU5DX0NOVF9PVEcxX0xBVENIX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENDR19WU1lOQ19PVEcyX0xBVENIX1ZBTFVFCisjZGVmaW5lIERDQ0dfVlNZTkNfT1RHMl9MQVRDSF9WQUxVRV9fRENDR19WU1lOQ19DTlRfT1RHMl9MQVRDSF9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX1ZTWU5DX09URzJfTEFUQ0hfVkFMVUVfX0RDQ0dfVlNZTkNfQ05UX09URzJfTEFUQ0hfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ0NHX1ZTWU5DX09URzNfTEFUQ0hfVkFMVUUKKyNkZWZpbmUgRENDR19WU1lOQ19PVEczX0xBVENIX1ZBTFVFX19EQ0NHX1ZTWU5DX0NOVF9PVEczX0xBVENIX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfVlNZTkNfT1RHM19MQVRDSF9WQUxVRV9fRENDR19WU1lOQ19DTlRfT1RHM19MQVRDSF9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDQ0dfVlNZTkNfT1RHNF9MQVRDSF9WQUxVRQorI2RlZmluZSBEQ0NHX1ZTWU5DX09URzRfTEFUQ0hfVkFMVUVfX0RDQ0dfVlNZTkNfQ05UX09URzRfTEFUQ0hfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENDR19WU1lOQ19PVEc0X0xBVENIX1ZBTFVFX19EQ0NHX1ZTWU5DX0NOVF9PVEc0X0xBVENIX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENDR19WU1lOQ19PVEc1X0xBVENIX1ZBTFVFCisjZGVmaW5lIERDQ0dfVlNZTkNfT1RHNV9MQVRDSF9WQUxVRV9fRENDR19WU1lOQ19DTlRfT1RHNV9MQVRDSF9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX1ZTWU5DX09URzVfTEFUQ0hfVkFMVUVfX0RDQ0dfVlNZTkNfQ05UX09URzVfTEFUQ0hfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EUFBDTEtfRFRPX0NUUkwKKyNkZWZpbmUgRFBQQ0xLX0RUT19DVFJMX19EUFBDTEswX0RUT19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLMF9EVE9fREJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUFBDTEtfRFRPX0NUUkxfX0RQUENMSzFfRFRPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBQQ0xLX0RUT19DVFJMX19EUFBDTEsxX0RUT19EQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLMl9EVE9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUFBDTEtfRFRPX0NUUkxfX0RQUENMSzJfRFRPX0RCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBQQ0xLX0RUT19DVFJMX19EUFBDTEszX0RUT19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLM19EVE9fREJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUFBDTEtfRFRPX0NUUkxfX0RQUENMSzRfRFRPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLNF9EVE9fREJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBQQ0xLX0RUT19DVFJMX19EUFBDTEs1X0RUT19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUFBDTEtfRFRPX0NUUkxfX0RQUENMSzVfRFRPX0RCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLMF9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLMF9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLMV9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLMV9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLMl9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLMl9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLM19EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLM19EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLNF9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLNF9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLNV9EVE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQUENMS19EVE9fQ1RSTF9fRFBQQ0xLNV9EVE9fREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisvL0RDQ0dfVlNZTkNfQ05UX0NUUkwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX1JFRkNMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9DVFJMX19EQ0NHX1ZTWU5DX0NOVF9TV19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfUkVTRVRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX0VYVF9UUklHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9DVFJMX19EQ0NHX1ZTWU5DX0NOVF9GUkFNRV9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEcwX0xBVENIX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9DVFJMX19EQ0NHX1ZTWU5DX09URzFfTEFUQ0hfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0NUUkxfX0RDQ0dfVlNZTkNfT1RHMl9MQVRDSF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEczX0xBVENIX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9DVFJMX19EQ0NHX1ZTWU5DX09URzRfTEFUQ0hfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0NUUkxfX0RDQ0dfVlNZTkNfT1RHNV9MQVRDSF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEcwX1ZTWU5DX1RSSUdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9DVFJMX19EQ0NHX1ZTWU5DX09URzFfVlNZTkNfVFJJR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0NUUkxfX0RDQ0dfVlNZTkNfT1RHMl9WU1lOQ19UUklHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEczX1ZTWU5DX1RSSUdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9DVFJMX19EQ0NHX1ZTWU5DX09URzRfVlNZTkNfVFJJR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0NUUkxfX0RDQ0dfVlNZTkNfT1RHNV9WU1lOQ19UUklHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfUkVGQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfU1dfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfUkVTRVRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfRVhUX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfRlJBTUVfQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEcwX0xBVENIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEcxX0xBVENIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEcyX0xBVENIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEczX0xBVENIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEc0X0xBVENIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEc1X0xBVENIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEcwX1ZTWU5DX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEcxX1ZTWU5DX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEcyX1ZTWU5DX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEczX1ZTWU5DX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEc0X1ZTWU5DX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfQ1RSTF9fRENDR19WU1lOQ19PVEc1X1ZTWU5DX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vRENDR19WU1lOQ19DTlRfSU5UX0NUUkwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzBfTEFUQ0hfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0lOVF9DVFJMX19EQ0NHX1ZTWU5DX0NOVF9PVEcwX0xBVENIX0lOVEVSUlVQVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9JTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfT1RHMV9MQVRDSF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzFfTEFUQ0hfSU5URVJSVVBUX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0lOVF9DVFJMX19EQ0NHX1ZTWU5DX0NOVF9PVEcyX0xBVENIX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9JTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfT1RHMl9MQVRDSF9JTlRFUlJVUFRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzNfTEFUQ0hfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0lOVF9DVFJMX19EQ0NHX1ZTWU5DX0NOVF9PVEczX0xBVENIX0lOVEVSUlVQVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9JTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfT1RHNF9MQVRDSF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzRfTEFUQ0hfSU5URVJSVVBUX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0lOVF9DVFJMX19EQ0NHX1ZTWU5DX0NOVF9PVEc1X0xBVENIX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9JTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfT1RHNV9MQVRDSF9JTlRFUlJVUFRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzBfTEFUQ0hfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0lOVF9DVFJMX19EQ0NHX1ZTWU5DX0NOVF9PVEcxX0xBVENIX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9JTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfT1RHMl9MQVRDSF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzNfTEFUQ0hfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDQ0dfVlNZTkNfQ05UX0lOVF9DVFJMX19EQ0NHX1ZTWU5DX0NOVF9PVEc0X0xBVENIX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ0NHX1ZTWU5DX0NOVF9JTlRfQ1RSTF9fRENDR19WU1lOQ19DTlRfT1RHNV9MQVRDSF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzBfTEFUQ0hfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzBfTEFUQ0hfSU5URVJSVVBUX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzFfTEFUQ0hfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzFfTEFUQ0hfSU5URVJSVVBUX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzJfTEFUQ0hfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzJfTEFUQ0hfSU5URVJSVVBUX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzNfTEFUQ0hfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzNfTEFUQ0hfSU5URVJSVVBUX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzRfTEFUQ0hfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzRfTEFUQ0hfSU5URVJSVVBUX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzVfTEFUQ0hfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzVfTEFUQ0hfSU5URVJSVVBUX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzBfTEFUQ0hfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzFfTEFUQ0hfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzJfTEFUQ0hfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzNfTEFUQ0hfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzRfTEFUQ0hfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENDR19WU1lOQ19DTlRfSU5UX0NUUkxfX0RDQ0dfVlNZTkNfQ05UX09URzVfTEFUQ0hfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vRk9SQ0VfU1lNQ0xLX0RJU0FCTEUKKyNkZWZpbmUgRk9SQ0VfU1lNQ0xLX0RJU0FCTEVfX0ZPUkNFX1NZTUNMS0FfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZPUkNFX1NZTUNMS19ESVNBQkxFX19GT1JDRV9TWU1DTEtCX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBGT1JDRV9TWU1DTEtfRElTQUJMRV9fRk9SQ0VfU1lNQ0xLQ19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRk9SQ0VfU1lNQ0xLX0RJU0FCTEVfX0ZPUkNFX1NZTUNMS0RfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEZPUkNFX1NZTUNMS19ESVNBQkxFX19GT1JDRV9TWU1DTEtFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGT1JDRV9TWU1DTEtfRElTQUJMRV9fRk9SQ0VfU1lNQ0xLRl9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRk9SQ0VfU1lNQ0xLX0RJU0FCTEVfX0ZPUkNFX1NZTUNMS0dfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEZPUkNFX1NZTUNMS19ESVNBQkxFX19GT1JDRV9TWU1DTEtBX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEZPUkNFX1NZTUNMS19ESVNBQkxFX19GT1JDRV9TWU1DTEtCX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEZPUkNFX1NZTUNMS19ESVNBQkxFX19GT1JDRV9TWU1DTEtDX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEZPUkNFX1NZTUNMS19ESVNBQkxFX19GT1JDRV9TWU1DTEtEX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEZPUkNFX1NZTUNMS19ESVNBQkxFX19GT1JDRV9TWU1DTEtFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEZPUkNFX1NZTUNMS19ESVNBQkxFX19GT1JDRV9TWU1DTEtGX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEZPUkNFX1NZTUNMS19ESVNBQkxFX19GT1JDRV9TWU1DTEtHX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL0RDQ0dfVEVTVF9DTEtfU0VMCisjZGVmaW5lIERDQ0dfVEVTVF9DTEtfU0VMX19EQ0NHX1RFU1RfQ0xLX0dFTkVSSUNBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0NHX1RFU1RfQ0xLX1NFTF9fRENDR19URVNUX0NMS19HRU5FUklDQV9JTlZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENDR19URVNUX0NMS19TRUxfX0RDQ0dfVEVTVF9DTEtfR0VORVJJQ0FfRElWX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDQ0dfVEVTVF9DTEtfU0VMX19EQ0NHX1RFU1RfQ0xLX0dFTkVSSUNCX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENDR19URVNUX0NMS19TRUxfX0RDQ0dfVEVTVF9DTEtfR0VORVJJQ0JfSU5WX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ0NHX1RFU1RfQ0xLX1NFTF9fRENDR19URVNUX0NMS19HRU5FUklDQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBEQ0NHX1RFU1RfQ0xLX1NFTF9fRENDR19URVNUX0NMS19HRU5FUklDQV9JTlZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ0NHX1RFU1RfQ0xLX1NFTF9fRENDR19URVNUX0NMS19HRU5FUklDQV9ESVZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBEQ0NHX1RFU1RfQ0xLX1NFTF9fRENDR19URVNUX0NMS19HRU5FUklDQl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBEQ0NHX1RFU1RfQ0xLX1NFTF9fRENDR19URVNUX0NMS19HRU5FUklDQl9JTlZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjY2dfZGNjZ19kZnNfZGlzcGRlYworLy9ERU5USVNUX0RJU1BDTEtfQ05UTAorI2RlZmluZSBERU5USVNUX0RJU1BDTEtfQ05UTF9fREVOVElTVF9ESVNQQ0xLX1dESVZJREVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREVOVElTVF9ESVNQQ0xLX0NOVExfX0RFTlRJU1RfRElTUENMS19SRElWSURFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RJU1BDTEtfQ0hHX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBERU5USVNUX0RJU1BDTEtfQ05UTF9fREVOVElTVF9ESVNQQ0xLX0NIR1RPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RJU1BDTEtfRE9ORVRPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgREVOVElTVF9ESVNQQ0xLX0NOVExfX0RFTlRJU1RfRElTUENMS19DSEdfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBERU5USVNUX0RJU1BDTEtfQ05UTF9fREVOVElTVF9EUFBDTEtfQ0hHX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RQUENMS19DSEdUT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREVOVElTVF9ESVNQQ0xLX0NOVExfX0RFTlRJU1RfRFBQQ0xLX0RPTkVUT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBERU5USVNUX0RJU1BDTEtfQ05UTF9fREVOVElTVF9EUFBDTEtfV0RJVklERVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RJU1BDTEtfV0RJVklERVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RJU1BDTEtfUkRJVklERVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RJU1BDTEtfQ0hHX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RJU1BDTEtfQ0hHVE9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RJU1BDTEtfRE9ORVRPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RJU1BDTEtfQ0hHX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RQUENMS19DSEdfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RQUENMS19DSEdUT0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RQUENMS19ET05FVE9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERFTlRJU1RfRElTUENMS19DTlRMX19ERU5USVNUX0RQUENMS19XRElWSURFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0YwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNjZ19kY2NnX2RjcGVyZm1vbjBfZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04wX1BFUkZDT1VOVEVSX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjBfUEVSRk1PTl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19QRVJGTU9OMF9QRVJGTU9OX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGQzAwTAorLy9EQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMF9QRVJGTU9OX0NWQUxVRV9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX1BFUkZNT04wX1BFUkZNT05fSEkKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjBfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjBfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04wX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNjZ19kY2NnX2RjcGVyZm1vbjFfZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04xX1BFUkZDT1VOVEVSX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjFfUEVSRk1PTl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19QRVJGTU9OMV9QRVJGTU9OX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGQzAwTAorLy9EQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMV9QRVJGTU9OX0NWQUxVRV9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX1BFUkZNT04xX1BFUkZNT05fSEkKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjFfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjFfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNjZ19kY2NnX3BsbF9kaXNwZGVjCisvL1BMTF9NQUNST19DTlRMX1JFU0VSVkVEMAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDBfX1BMTF9NQUNST19DTlRMX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQwX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxCisjZGVmaW5lIFBMTF9NQUNST19DTlRMX1JFU0VSVkVEMV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDFfX1BMTF9NQUNST19DTlRMX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDIKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBMTF9NQUNST19DTlRMX1JFU0VSVkVEMl9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1BMTF9NQUNST19DTlRMX1JFU0VSVkVEMworI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDNfX1BMTF9NQUNST19DTlRMX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ0CisjZGVmaW5lIFBMTF9NQUNST19DTlRMX1JFU0VSVkVENF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDRfX1BMTF9NQUNST19DTlRMX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDUKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ1X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBMTF9NQUNST19DTlRMX1JFU0VSVkVENV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1BMTF9NQUNST19DTlRMX1JFU0VSVkVENgorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDZfX1BMTF9NQUNST19DTlRMX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ2X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ3CisjZGVmaW5lIFBMTF9NQUNST19DTlRMX1JFU0VSVkVEN19fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDdfX1BMTF9NQUNST19DTlRMX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QTExfTUFDUk9fQ05UTF9SRVNFUlZFRDgKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ4X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBMTF9NQUNST19DTlRMX1JFU0VSVkVEOF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1BMTF9NQUNST19DTlRMX1JFU0VSVkVEOQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDlfX1BMTF9NQUNST19DTlRMX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ5X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxMAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDEwX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxMF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxMQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDExX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxMV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxMgorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDEyX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxMl9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxMworI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDEzX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxM19fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE0X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE1X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNgorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE2X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNl9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxNworI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE3X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxN19fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxOAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE4X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxOF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxOQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDE5X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQxOV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDIwX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDIxX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMgorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDIyX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMl9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyMworI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDIzX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyM19fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyNAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI0X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyNF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyNQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI1X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyNV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyNgorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI2X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyNl9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyNworI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI3X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyN19fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyOAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI4X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyOF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyOQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDI5X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQyOV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzMAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDMwX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzMF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzMQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDMxX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzMV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzMgorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDMyX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzMl9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzMworI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDMzX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzM19fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzNAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM0X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzNF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzNQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM1X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzNV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzNgorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM2X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzNl9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzNworI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM3X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzN19fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzOAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM4X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzOF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzOQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDM5X19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQzOV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ0MAorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDQwX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ0MF9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ0MQorI2RlZmluZSBQTExfTUFDUk9fQ05UTF9SRVNFUlZFRDQxX19QTExfTUFDUk9fQ05UTF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUExMX01BQ1JPX0NOVExfUkVTRVJWRUQ0MV9fUExMX01BQ1JPX0NOVExfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kbXVfcmJibWlmX2Rpc3BkZWMKKy8vUkJCTUlGX1RJTUVPVVQKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfX1JCQk1JRl9USU1FT1VUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX19SQkJNSUZfVElNRU9VVF9UT19SRVFfSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfX1JCQk1JRl9USU1FT1VUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfX1JCQk1JRl9USU1FT1VUX1RPX1JFUV9IT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vUkJCTUlGX1NUQVRVUworI2RlZmluZSBSQkJNSUZfU1RBVFVTX19SQkJNSUZfVElNRU9VVF9DTElFTlRTX0RFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19fUkJCTUlGX1RJTUVPVVRfQ0xJRU5UU19ERUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUkJCTUlGX1NUQVRVU18yCisjZGVmaW5lIFJCQk1JRl9TVEFUVVNfMl9fUkJCTUlGX1RJTUVPVVRfQ0xJRU5UU19ERUNfMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSQkJNSUZfU1RBVFVTXzJfX1JCQk1JRl9USU1FT1VUX0NMSUVOVFNfREVDXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9SQkJNSUZfSU5UX1NUQVRVUworI2RlZmluZSBSQkJNSUZfSU5UX1NUQVRVU19fUkJCTUlGX1RJTUVPVVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkJCTUlGX0lOVF9TVEFUVVNfX1JCQk1JRl9USU1FT1VUX09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSQkJNSUZfSU5UX1NUQVRVU19fUkJCTUlGX1RJTUVPVVRfUkRXUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJCQk1JRl9JTlRfU1RBVFVTX19SQkJNSUZfVElNRU9VVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgUkJCTUlGX0lOVF9TVEFUVVNfX1JCQk1JRl9USU1FT1VUX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBSQkJNSUZfSU5UX1NUQVRVU19fUkJCTUlGX1RJTUVPVVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZDTAorI2RlZmluZSBSQkJNSUZfSU5UX1NUQVRVU19fUkJCTUlGX1RJTUVPVVRfT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSQkJNSUZfSU5UX1NUQVRVU19fUkJCTUlGX1RJTUVPVVRfUkRXUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBSQkJNSUZfSU5UX1NUQVRVU19fUkJCTUlGX1RJTUVPVVRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBSQkJNSUZfSU5UX1NUQVRVU19fUkJCTUlGX1RJTUVPVVRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9SQkJNSUZfVElNRU9VVF9ESVMKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQwX1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UMV9USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDJfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQzX1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UNF9USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDVfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQ2X1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UN19USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDhfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQ5X1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UMTBfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDExX1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxMl9USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UMTNfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDE0X1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxNV9USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UMTZfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxN19USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDE4X1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UMTlfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyMF9USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDIxX1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UMjJfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyM19USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDI0X1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UMjVfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyNl9USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDI3X1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UMjhfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyOV9USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfX0NMSUVOVDMwX1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU19fQ0xJRU5UMzFfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQwX1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxX1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyX1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQzX1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQ0X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQ1X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQ2X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQ3X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQ4X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQ5X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxMF9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxMV9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxMl9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxM19USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxNF9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxNV9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxNl9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxN19USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxOF9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQxOV9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyMF9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyMV9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyMl9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyM19USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyNF9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyNV9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyNl9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyN19USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyOF9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQyOV9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQzMF9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTX19DTElFTlQzMV9USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vUkJCTUlGX1RJTUVPVVRfRElTXzIKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTXzJfX0NMSUVOVDMyX1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU18yX19DTElFTlQzM19USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfMl9fQ0xJRU5UMzRfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTXzJfX0NMSUVOVDM1X1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJCQk1JRl9USU1FT1VUX0RJU18yX19DTElFTlQzNl9USU1FT1VUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSQkJNSUZfVElNRU9VVF9ESVNfMl9fQ0xJRU5UMzdfVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTXzJfX0NMSUVOVDMyX1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTXzJfX0NMSUVOVDMzX1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTXzJfX0NMSUVOVDM0X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTXzJfX0NMSUVOVDM1X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTXzJfX0NMSUVOVDM2X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkJCTUlGX1RJTUVPVVRfRElTXzJfX0NMSUVOVDM3X1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vUkJCTUlGX1NUQVRVU19GTEFHCisjZGVmaW5lIFJCQk1JRl9TVEFUVVNfRkxBR19fUkJCTUlGX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSQkJNSUZfU1RBVFVTX0ZMQUdfX1JCQk1JRl9SRUFEX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19GTEFHX19SQkJNSUZfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJCQk1JRl9TVEFUVVNfRkxBR19fUkJCTUlGX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSQkJNSUZfU1RBVFVTX0ZMQUdfX1JCQk1JRl9JTlZBTElEX0FDQ0VTU19GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19GTEFHX19SQkJNSUZfSU5WQUxJRF9BQ0NFU1NfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJCQk1JRl9TVEFUVVNfRkxBR19fUkJCTUlGX0lOVkFMSURfQUNDRVNTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19GTEFHX19SQkJNSUZfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19GTEFHX19SQkJNSUZfUkVBRF9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19GTEFHX19SQkJNSUZfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19GTEFHX19SQkJNSUZfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19GTEFHX19SQkJNSUZfSU5WQUxJRF9BQ0NFU1NfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19GTEFHX19SQkJNSUZfSU5WQUxJRF9BQ0NFU1NfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgUkJCTUlGX1NUQVRVU19GTEFHX19SQkJNSUZfSU5WQUxJRF9BQ0NFU1NfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kbXVfZGNfcGdfZGlzcGRlYworLy9ET01BSU4wX1BHX0NPTkZJRworI2RlZmluZSBET01BSU4wX1BHX0NPTkZJR19fRE9NQUlOMF9QT1dFUl9GT1JDRU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE9NQUlOMF9QR19DT05GSUdfX0RPTUFJTjBfUE9XRVJfR0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERPTUFJTjBfUEdfQ09ORklHX19ET01BSU4wX1BPV0VSX0ZPUkNFT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERPTUFJTjBfUEdfQ09ORklHX19ET01BSU4wX1BPV0VSX0dBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RPTUFJTjBfUEdfU1RBVFVTCisjZGVmaW5lIERPTUFJTjBfUEdfU1RBVFVTX19ET01BSU4wX0RFU0lSRURfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE9NQUlOMF9QR19TVEFUVVNfX0RPTUFJTjBfUEdGU01fUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBET01BSU4wX1BHX1NUQVRVU19fRE9NQUlOMF9ERVNJUkVEX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBET01BSU4wX1BHX1NUQVRVU19fRE9NQUlOMF9QR0ZTTV9QV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ET01BSU4xX1BHX0NPTkZJRworI2RlZmluZSBET01BSU4xX1BHX0NPTkZJR19fRE9NQUlOMV9QT1dFUl9GT1JDRU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE9NQUlOMV9QR19DT05GSUdfX0RPTUFJTjFfUE9XRVJfR0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERPTUFJTjFfUEdfQ09ORklHX19ET01BSU4xX1BPV0VSX0ZPUkNFT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERPTUFJTjFfUEdfQ09ORklHX19ET01BSU4xX1BPV0VSX0dBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RPTUFJTjFfUEdfU1RBVFVTCisjZGVmaW5lIERPTUFJTjFfUEdfU1RBVFVTX19ET01BSU4xX0RFU0lSRURfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE9NQUlOMV9QR19TVEFUVVNfX0RPTUFJTjFfUEdGU01fUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBET01BSU4xX1BHX1NUQVRVU19fRE9NQUlOMV9ERVNJUkVEX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBET01BSU4xX1BHX1NUQVRVU19fRE9NQUlOMV9QR0ZTTV9QV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ET01BSU4yX1BHX0NPTkZJRworI2RlZmluZSBET01BSU4yX1BHX0NPTkZJR19fRE9NQUlOMl9QT1dFUl9GT1JDRU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE9NQUlOMl9QR19DT05GSUdfX0RPTUFJTjJfUE9XRVJfR0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERPTUFJTjJfUEdfQ09ORklHX19ET01BSU4yX1BPV0VSX0ZPUkNFT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERPTUFJTjJfUEdfQ09ORklHX19ET01BSU4yX1BPV0VSX0dBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RPTUFJTjJfUEdfU1RBVFVTCisjZGVmaW5lIERPTUFJTjJfUEdfU1RBVFVTX19ET01BSU4yX0RFU0lSRURfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE9NQUlOMl9QR19TVEFUVVNfX0RPTUFJTjJfUEdGU01fUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBET01BSU4yX1BHX1NUQVRVU19fRE9NQUlOMl9ERVNJUkVEX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBET01BSU4yX1BHX1NUQVRVU19fRE9NQUlOMl9QR0ZTTV9QV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ET01BSU4zX1BHX0NPTkZJRworI2RlZmluZSBET01BSU4zX1BHX0NPTkZJR19fRE9NQUlOM19QT1dFUl9GT1JDRU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE9NQUlOM19QR19DT05GSUdfX0RPTUFJTjNfUE9XRVJfR0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERPTUFJTjNfUEdfQ09ORklHX19ET01BSU4zX1BPV0VSX0ZPUkNFT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERPTUFJTjNfUEdfQ09ORklHX19ET01BSU4zX1BPV0VSX0dBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RPTUFJTjNfUEdfU1RBVFVTCisjZGVmaW5lIERPTUFJTjNfUEdfU1RBVFVTX19ET01BSU4zX0RFU0lSRURfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE9NQUlOM19QR19TVEFUVVNfX0RPTUFJTjNfUEdGU01fUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBET01BSU4zX1BHX1NUQVRVU19fRE9NQUlOM19ERVNJUkVEX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBET01BSU4zX1BHX1NUQVRVU19fRE9NQUlOM19QR0ZTTV9QV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ET01BSU40X1BHX0NPTkZJRworI2RlZmluZSBET01BSU40X1BHX0NPTkZJR19fRE9NQUlONF9QT1dFUl9GT1JDRU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE9NQUlONF9QR19DT05GSUdfX0RPTUFJTjRfUE9XRVJfR0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERPTUFJTjRfUEdfQ09ORklHX19ET01BSU40X1BPV0VSX0ZPUkNFT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERPTUFJTjRfUEdfQ09ORklHX19ET01BSU40X1BPV0VSX0dBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RPTUFJTjRfUEdfU1RBVFVTCisjZGVmaW5lIERPTUFJTjRfUEdfU1RBVFVTX19ET01BSU40X0RFU0lSRURfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE9NQUlONF9QR19TVEFUVVNfX0RPTUFJTjRfUEdGU01fUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBET01BSU40X1BHX1NUQVRVU19fRE9NQUlONF9ERVNJUkVEX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBET01BSU40X1BHX1NUQVRVU19fRE9NQUlONF9QR0ZTTV9QV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ET01BSU41X1BHX0NPTkZJRworI2RlZmluZSBET01BSU41X1BHX0NPTkZJR19fRE9NQUlONV9QT1dFUl9GT1JDRU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE9NQUlONV9QR19DT05GSUdfX0RPTUFJTjVfUE9XRVJfR0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERPTUFJTjVfUEdfQ09ORklHX19ET01BSU41X1BPV0VSX0ZPUkNFT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERPTUFJTjVfUEdfQ09ORklHX19ET01BSU41X1BPV0VSX0dBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RPTUFJTjVfUEdfU1RBVFVTCisjZGVmaW5lIERPTUFJTjVfUEdfU1RBVFVTX19ET01BSU41X0RFU0lSRURfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE9NQUlONV9QR19TVEFUVVNfX0RPTUFJTjVfUEdGU01fUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBET01BSU41X1BHX1NUQVRVU19fRE9NQUlONV9ERVNJUkVEX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBET01BSU41X1BHX1NUQVRVU19fRE9NQUlONV9QR0ZTTV9QV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ET01BSU42X1BHX0NPTkZJRworI2RlZmluZSBET01BSU42X1BHX0NPTkZJR19fRE9NQUlONl9QT1dFUl9GT1JDRU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE9NQUlONl9QR19DT05GSUdfX0RPTUFJTjZfUE9XRVJfR0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERPTUFJTjZfUEdfQ09ORklHX19ET01BSU42X1BPV0VSX0ZPUkNFT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERPTUFJTjZfUEdfQ09ORklHX19ET01BSU42X1BPV0VSX0dBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RPTUFJTjZfUEdfU1RBVFVTCisjZGVmaW5lIERPTUFJTjZfUEdfU1RBVFVTX19ET01BSU42X0RFU0lSRURfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE9NQUlONl9QR19TVEFUVVNfX0RPTUFJTjZfUEdGU01fUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBET01BSU42X1BHX1NUQVRVU19fRE9NQUlONl9ERVNJUkVEX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBET01BSU42X1BHX1NUQVRVU19fRE9NQUlONl9QR0ZTTV9QV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ET01BSU43X1BHX0NPTkZJRworI2RlZmluZSBET01BSU43X1BHX0NPTkZJR19fRE9NQUlON19QT1dFUl9GT1JDRU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE9NQUlON19QR19DT05GSUdfX0RPTUFJTjdfUE9XRVJfR0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERPTUFJTjdfUEdfQ09ORklHX19ET01BSU43X1BPV0VSX0ZPUkNFT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERPTUFJTjdfUEdfQ09ORklHX19ET01BSU43X1BPV0VSX0dBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RPTUFJTjdfUEdfU1RBVFVTCisjZGVmaW5lIERPTUFJTjdfUEdfU1RBVFVTX19ET01BSU43X0RFU0lSRURfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE9NQUlON19QR19TVEFUVVNfX0RPTUFJTjdfUEdGU01fUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBET01BSU43X1BHX1NUQVRVU19fRE9NQUlON19ERVNJUkVEX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBET01BSU43X1BHX1NUQVRVU19fRE9NQUlON19QR0ZTTV9QV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ET01BSU4xNl9QR19DT05GSUcKKyNkZWZpbmUgRE9NQUlOMTZfUEdfQ09ORklHX19ET01BSU4xNl9QT1dFUl9GT1JDRU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERPTUFJTjE2X1BHX0NPTkZJR19fRE9NQUlOMTZfUE9XRVJfR0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBET01BSU4xNl9QR19DT05GSUdfX0RPTUFJTjE2X1BPV0VSX0ZPUkNFT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBET01BSU4xNl9QR19DT05GSUdfX0RPTUFJTjE2X1BPV0VSX0dBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9ET01BSU4xNl9QR19TVEFUVVMKKyNkZWZpbmUgRE9NQUlOMTZfUEdfU1RBVFVTX19ET01BSU4xNl9ERVNJUkVEX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBET01BSU4xNl9QR19TVEFUVVNfX0RPTUFJTjE2X1BHRlNNX1BXUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERPTUFJTjE2X1BHX1NUQVRVU19fRE9NQUlOMTZfREVTSVJFRF9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERPTUFJTjE2X1BHX1NUQVRVU19fRE9NQUlOMTZfUEdGU01fUFdSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL0RPTUFJTjE3X1BHX0NPTkZJRworI2RlZmluZSBET01BSU4xN19QR19DT05GSUdfX0RPTUFJTjE3X1BPV0VSX0ZPUkNFT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE9NQUlOMTdfUEdfQ09ORklHX19ET01BSU4xN19QT1dFUl9HQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERPTUFJTjE3X1BHX0NPTkZJR19fRE9NQUlOMTdfUE9XRVJfRk9SQ0VPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERPTUFJTjE3X1BHX0NPTkZJR19fRE9NQUlOMTdfUE9XRVJfR0FURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RPTUFJTjE3X1BHX1NUQVRVUworI2RlZmluZSBET01BSU4xN19QR19TVEFUVVNfX0RPTUFJTjE3X0RFU0lSRURfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERPTUFJTjE3X1BHX1NUQVRVU19fRE9NQUlOMTdfUEdGU01fUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRE9NQUlOMTdfUEdfU1RBVFVTX19ET01BSU4xN19ERVNJUkVEX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRE9NQUlOMTdfUEdfU1RBVFVTX19ET01BSU4xN19QR0ZTTV9QV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vRE9NQUlOMThfUEdfQ09ORklHCisjZGVmaW5lIERPTUFJTjE4X1BHX0NPTkZJR19fRE9NQUlOMThfUE9XRVJfRk9SQ0VPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBET01BSU4xOF9QR19DT05GSUdfX0RPTUFJTjE4X1BPV0VSX0dBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE9NQUlOMThfUEdfQ09ORklHX19ET01BSU4xOF9QT1dFUl9GT1JDRU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE9NQUlOMThfUEdfQ09ORklHX19ET01BSU4xOF9QT1dFUl9HQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRE9NQUlOMThfUEdfU1RBVFVTCisjZGVmaW5lIERPTUFJTjE4X1BHX1NUQVRVU19fRE9NQUlOMThfREVTSVJFRF9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE9NQUlOMThfUEdfU1RBVFVTX19ET01BSU4xOF9QR0ZTTV9QV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBET01BSU4xOF9QR19TVEFUVVNfX0RPTUFJTjE4X0RFU0lSRURfUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBET01BSU4xOF9QR19TVEFUVVNfX0RPTUFJTjE4X1BHRlNNX1BXUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9EQ1BHX0lOVEVSUlVQVF9TVEFUVVMKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4wX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlOMF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjFfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlOMl9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjJfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4zX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlOM19QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjRfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU40X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlONV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjVfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU42X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlONl9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjdfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU43X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlOOF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU44X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjlfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlOOV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xMF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjEwX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlOMTFfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xMV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjEyX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlOMTJfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xM19QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjEzX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlOMTRfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xNF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfX0RPTUFJTjE1X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU19fRE9NQUlOMTVfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4wX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4wX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4yX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4yX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4zX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4zX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU40X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU40X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU41X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU41X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU42X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU42X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU43X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU43X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU44X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU44X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU45X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU45X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xMF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xMF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xMV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xMV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xMl9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xMl9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xM19QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xM19QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xNF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xNF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xNV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTX19ET01BSU4xNV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENQR19JTlRFUlJVUFRfU1RBVFVTXzIKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE2X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU18yX19ET01BSU4xNl9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfMl9fRE9NQUlOMTdfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE3X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU18yX19ET01BSU4xOF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfMl9fRE9NQUlOMThfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE5X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU18yX19ET01BSU4xOV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfMl9fRE9NQUlOMjBfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjIwX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX1NUQVRVU18yX19ET01BSU4yMV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9TVEFUVVNfMl9fRE9NQUlOMjFfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE2X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE2X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE3X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE3X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE4X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE4X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE5X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjE5X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjIwX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjIwX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjIxX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfU1RBVFVTXzJfX0RPTUFJTjIxX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKy8vRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMF9QT1dFUl9VUF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjBfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU4wX1BPV0VSX0RPV05fSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMF9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjFfUE9XRVJfVVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU4xX1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMV9QT1dFUl9ET1dOX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjFfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU4yX1BPV0VSX1VQX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMl9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjJfUE9XRVJfRE9XTl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU4yX1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOM19QT1dFUl9VUF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjNfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU4zX1BPV0VSX0RPV05fSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOM19QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjRfUE9XRVJfVVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONF9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU40X1BPV0VSX0RPV05fSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjRfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONV9QT1dFUl9VUF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU41X1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjVfUE9XRVJfRE9XTl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU42X1BPV0VSX1VQX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjZfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONl9QT1dFUl9ET1dOX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU42X1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjdfUE9XRVJfVVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlON19QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8xX19ET01BSU43X1BPV0VSX0RPV05fSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzFfX0RPTUFJTjdfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMF9QT1dFUl9VUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMF9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMF9QT1dFUl9ET1dOX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMF9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMV9QT1dFUl9VUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMV9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMV9QT1dFUl9ET1dOX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMl9QT1dFUl9VUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMl9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMl9QT1dFUl9ET1dOX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOMl9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOM19QT1dFUl9VUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOM19QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOM19QT1dFUl9ET1dOX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlOM19QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONF9QT1dFUl9VUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONF9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONF9QT1dFUl9ET1dOX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONF9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONV9QT1dFUl9VUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONV9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONV9QT1dFUl9ET1dOX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONl9QT1dFUl9VUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONl9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONl9QT1dFUl9ET1dOX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlONl9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlON19QT1dFUl9VUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlON19QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlON19QT1dFUl9ET1dOX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMV9fRE9NQUlON19QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDUEdfSU5URVJSVVBUX0NPTlRST0xfMgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjhfUE9XRVJfVVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU44X1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOOF9QT1dFUl9ET1dOX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjhfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU45X1BPV0VSX1VQX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOOV9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjlfUE9XRVJfRE9XTl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU45X1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOMTBfUE9XRVJfVVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEwX1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU4xMF9QT1dFUl9ET1dOX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOMTBfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjExX1BPV0VSX1VQX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU4xMV9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjExX1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU4xMl9QT1dFUl9VUF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEyX1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOMTJfUE9XRVJfRE9XTl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU4xMl9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEzX1BPV0VSX1VQX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOMTNfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU4xM19QT1dFUl9ET1dOX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEzX1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOMTRfUE9XRVJfVVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU4xNF9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE0X1BPV0VSX0RPV05fSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOMTRfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU4xNV9QT1dFUl9VUF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE1X1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfMl9fRE9NQUlOMTVfUE9XRVJfRE9XTl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8yX19ET01BSU4xNV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjhfUE9XRVJfVVBfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjhfUE9XRVJfVVBfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjhfUE9XRVJfRE9XTl9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjhfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjlfUE9XRVJfVVBfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjlfUE9XRVJfVVBfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjlfUE9XRVJfRE9XTl9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjlfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEwX1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEwX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEwX1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEwX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjExX1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjExX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjExX1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjExX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEyX1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEyX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEyX1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEyX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEzX1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEzX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEzX1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjEzX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE0X1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE0X1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE0X1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE0X1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE1X1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE1X1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE1X1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzJfX0RPTUFJTjE1X1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzMKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8zX19ET01BSU4xNl9QT1dFUl9VUF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfM19fRE9NQUlOMTZfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE2X1BPV0VSX0RPV05fSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8zX19ET01BSU4xNl9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfM19fRE9NQUlOMTdfUE9XRVJfVVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE3X1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8zX19ET01BSU4xN19QT1dFUl9ET1dOX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfM19fRE9NQUlOMTdfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE4X1BPV0VSX1VQX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8zX19ET01BSU4xOF9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfM19fRE9NQUlOMThfUE9XRVJfRE9XTl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE4X1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8zX19ET01BSU4xOV9QT1dFUl9VUF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfM19fRE9NQUlOMTlfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE5X1BPV0VSX0RPV05fSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8zX19ET01BSU4xOV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfM19fRE9NQUlOMjBfUE9XRVJfVVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8zX19ET01BSU4yMF9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIwX1BPV0VSX0RPV05fSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfM19fRE9NQUlOMjBfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8zX19ET01BSU4yMV9QT1dFUl9VUF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIxX1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0NPTlRST0xfM19fRE9NQUlOMjFfUE9XRVJfRE9XTl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfQ09OVFJPTF8zX19ET01BSU4yMV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE2X1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE2X1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE2X1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE2X1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE3X1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE3X1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE3X1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE3X1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE4X1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE4X1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE4X1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE4X1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE5X1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE5X1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE5X1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjE5X1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIwX1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIwX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIwX1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIwX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIxX1BPV0VSX1VQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIxX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIxX1BPV0VSX0RPV05fSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9DT05UUk9MXzNfX0RPTUFJTjIxX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9EQ19JUF9SRVFVRVNUX0NOVEwKKyNkZWZpbmUgRENfSVBfUkVRVUVTVF9DTlRMX19JUF9SRVFVRVNUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0lQX1JFUVVFU1RfQ05UTF9fSVBfUkVRVUVTVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZG11X2RtdV9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04yX1BFUkZDT1VOVEVSX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjJfUEVSRk1PTl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19QRVJGTU9OMl9QRVJGTU9OX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGQzAwTAorLy9EQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMl9QRVJGTU9OX0NWQUxVRV9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX1BFUkZNT04yX1BFUkZNT05fSEkKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjJfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjJfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZG11X2RtdV9taXNjX2Rpc3BkZWMKKy8vQ0NfRENfUElQRV9ESVMKKyNkZWZpbmUgQ0NfRENfUElQRV9ESVNfX0RDX1BJUEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENDX0RDX1BJUEVfRElTX19EQ19ETUNVQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ0NfRENfUElQRV9ESVNfX0RDX1BJUEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQ0NfRENfUElQRV9ESVNfX0RDX0RNQ1VCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vRE1VX0NMS19DTlRMCisjZGVmaW5lIERNVV9DTEtfQ05UTF9fRE1VX1RFU1RfQ0xLX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETVVfQ0xLX0NOVExfX0RJU1BDTEtfUl9ETVVfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1VX0NMS19DTlRMX19ESVNQQ0xLX0dfRE1DVV9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERNVV9DTEtfQ05UTF9fRElTUENMS19HX1JCQk1JRl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETVVfQ0xLX0NOVExfX0RJU1BDTEtfUl9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1VX0NMS19DTlRMX19ESVNQQ0xLX0dfRE1DVV9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNVV9DTEtfQ05UTF9fRElTUENMS19HX1JCQk1JRl9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBETVVfQ0xLX0NOVExfX0RNVV9URVNUX0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBETVVfQ0xLX0NOVExfX0RJU1BDTEtfUl9ETVVfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBETVVfQ0xLX0NOVExfX0RJU1BDTEtfR19ETUNVX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBETVVfQ0xLX0NOVExfX0RJU1BDTEtfR19SQkJNSUZfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBETVVfQ0xLX0NOVExfX0RJU1BDTEtfUl9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETVVfQ0xLX0NOVExfX0RJU1BDTEtfR19ETUNVX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBETVVfQ0xLX0NOVExfX0RJU1BDTEtfR19SQkJNSUZfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9ETVVfTUVNX1BXUl9DTlRMCisjZGVmaW5lIERNVV9NRU1fUFdSX0NOVExfX0RNQ1VfRVJBTV9NRU1fUFdSX01PREVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETVVfTUVNX1BXUl9DTlRMX19ETUNVX0VSQU1fTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1VX01FTV9QV1JfQ05UTF9fRE1DVV9FUkFNX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNVV9NRU1fUFdSX0NOVExfX0RNQ1VfRVJBTV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETVVfTUVNX1BXUl9DTlRMX19ETUNVX0lSQU1fTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1VX01FTV9QV1JfQ05UTF9fRE1DVV9JUkFNX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNVV9NRU1fUFdSX0NOVExfX0RNQ1VfSVJBTV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBETVVfTUVNX1BXUl9DTlRMX19ETUNVX0VSQU1fTUVNX1BXUl9NT0RFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETVVfTUVNX1BXUl9DTlRMX19ETUNVX0VSQU1fTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBETVVfTUVNX1BXUl9DTlRMX19ETUNVX0VSQU1fTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETVVfTUVNX1BXUl9DTlRMX19ETUNVX0VSQU1fTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBETVVfTUVNX1BXUl9DTlRMX19ETUNVX0lSQU1fTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETVVfTUVNX1BXUl9DTlRMX19ETUNVX0lSQU1fTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBETVVfTUVNX1BXUl9DTlRMX19ETUNVX0lSQU1fTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9ETUNVX1NNVV9JTlRFUlJVUFRfQ05UTAorI2RlZmluZSBETUNVX1NNVV9JTlRFUlJVUFRfQ05UTF9fRE1DVV9TTVVfU1RBVElDX1NDUkVFTl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9TTVVfSU5URVJSVVBUX0NOVExfX0RNQ1VfU01VX1NUQVRJQ19TQ1JFRU5fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBETUNVX1NNVV9JTlRFUlJVUFRfQ05UTF9fRE1DVV9TTVVfU1RBVElDX1NDUkVFTl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETUNVX1NNVV9JTlRFUlJVUFRfQ05UTF9fRE1DVV9TTVVfU1RBVElDX1NDUkVFTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TTVVfSU5URVJSVVBUX0NPTlRST0wKKyNkZWZpbmUgU01VX0lOVEVSUlVQVF9DT05UUk9MX19EQ19TTVVfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNNVV9JTlRFUlJVUFRfQ09OVFJPTF9fRENfU01VX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTTVVfSU5URVJSVVBUX0NPTlRST0xfX0RDX1NNVV9JTlRfRVZFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNNVV9JTlRFUlJVUFRfQ09OVFJPTF9fRENfU01VX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNNVV9JTlRFUlJVUFRfQ09OVFJPTF9fRENfU01VX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNNVV9JTlRFUlJVUFRfQ09OVFJPTF9fRENfU01VX0lOVF9FVkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RNVV9NSVNDX0FMTE9XX0RTX0ZPUkNFCisjZGVmaW5lIERNVV9NSVNDX0FMTE9XX0RTX0ZPUkNFX19ETVVfTUlTQ19BTExPV19EU19GT1JDRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETVVfTUlTQ19BTExPV19EU19GT1JDRV9fRE1VX01JU0NfQUxMT1dfRFNfRk9SQ0VfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1VX01JU0NfQUxMT1dfRFNfRk9SQ0VfX0RNVV9NSVNDX0FMTE9XX0RTX0ZPUkNFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1VX01JU0NfQUxMT1dfRFNfRk9SQ0VfX0RNVV9NSVNDX0FMTE9XX0RTX0ZPUkNFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kbXVfZG1jdV9kaXNwZGVjCisvL0RNQ1VfQ1RSTAorI2RlZmluZSBETUNVX0NUUkxfX1JFU0VUX1VDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9DVFJMX19JR05PUkVfUFdSTUdUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfQ1RSTF9fRElTQUJMRV9JUlFfVE9fVUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX0NUUkxfX0RJU0FCTEVfWElSUV9UT19VQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9DVFJMX19ETUNVX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfQ1RSTF9fRE1DVV9EWU5fQ0xLX0dBVElOR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX0NUUkxfX1VDX1JFR19SRF9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERNQ1VfQ1RSTF9fUkVTRVRfVUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfQ1RSTF9fSUdOT1JFX1BXUk1HVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfQ1RSTF9fRElTQUJMRV9JUlFfVE9fVUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfQ1RSTF9fRElTQUJMRV9YSVJRX1RPX1VDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfQ1RSTF9fRE1DVV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfQ1RSTF9fRE1DVV9EWU5fQ0xLX0dBVElOR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfQ1RSTF9fVUNfUkVHX1JEX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RNQ1VfU1RBVFVTCisjZGVmaW5lIERNQ1VfU1RBVFVTX19VQ19JTl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX1NUQVRVU19fVUNfSU5fV0FJVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9TVEFUVVNfX1VDX0lOX1NUT1BfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfU1RBVFVTX19VQ19JTl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfU1RBVFVTX19VQ19JTl9XQUlUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfU1RBVFVTX19VQ19JTl9TVE9QX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL0RNQ1VfUENfU1RBUlRfQUREUgorI2RlZmluZSBETUNVX1BDX1NUQVJUX0FERFJfX1BDX1NUQVJUX0FERFJfTFNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9QQ19TVEFSVF9BRERSX19QQ19TVEFSVF9BRERSX01TQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfUENfU1RBUlRfQUREUl9fUENfU1RBUlRfQUREUl9MU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERNQ1VfUENfU1RBUlRfQUREUl9fUENfU1RBUlRfQUREUl9NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0RNQ1VfRldfU1RBUlRfQUREUgorI2RlZmluZSBETUNVX0ZXX1NUQVJUX0FERFJfX0ZXX1NUQVJUX0FERFJfTFNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9GV19TVEFSVF9BRERSX19GV19TVEFSVF9BRERSX01TQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfRldfU1RBUlRfQUREUl9fRldfU1RBUlRfQUREUl9MU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERNQ1VfRldfU1RBUlRfQUREUl9fRldfU1RBUlRfQUREUl9NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0RNQ1VfRldfRU5EX0FERFIKKyNkZWZpbmUgRE1DVV9GV19FTkRfQUREUl9fRldfRU5EX0FERFJfTFNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfRldfRU5EX0FERFJfX0ZXX0VORF9BRERSX01TQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX0ZXX0VORF9BRERSX19GV19FTkRfQUREUl9MU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBETUNVX0ZXX0VORF9BRERSX19GV19FTkRfQUREUl9NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9ETUNVX0ZXX0lTUl9TVEFSVF9BRERSCisjZGVmaW5lIERNQ1VfRldfSVNSX1NUQVJUX0FERFJfX0ZXX0lTUl9TVEFSVF9BRERSX0xTQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0ZXX0lTUl9TVEFSVF9BRERSX19GV19JU1JfU1RBUlRfQUREUl9NU0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9GV19JU1JfU1RBUlRfQUREUl9fRldfSVNSX1NUQVJUX0FERFJfTFNCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRE1DVV9GV19JU1JfU1RBUlRfQUREUl9fRldfSVNSX1NUQVJUX0FERFJfTVNCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vRE1DVV9GV19DU19ISQorI2RlZmluZSBETUNVX0ZXX0NTX0hJX19GV19DSEVDS1NVTV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9GV19DU19ISV9fRldfQ0hFQ0tTVU1fSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVV9GV19DU19MTworI2RlZmluZSBETUNVX0ZXX0NTX0xPX19GV19DSEVDS1NVTV9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9GV19DU19MT19fRldfQ0hFQ0tTVU1fTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVV9SQU1fQUNDRVNTX0NUUkwKKyNkZWZpbmUgRE1DVV9SQU1fQUNDRVNTX0NUUkxfX0VSQU1fV1JfQUREUl9BVVRPX0lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfUkFNX0FDQ0VTU19DVFJMX19FUkFNX1JEX0FERFJfQVVUT19JTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX1JBTV9BQ0NFU1NfQ1RSTF9fSVJBTV9XUl9BRERSX0FVVE9fSU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9SQU1fQUNDRVNTX0NUUkxfX0lSQU1fUkRfQUREUl9BVVRPX0lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfUkFNX0FDQ0VTU19DVFJMX19FUkFNX0hPU1RfQUNDRVNTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX1JBTV9BQ0NFU1NfQ1RSTF9fSVJBTV9IT1NUX0FDQ0VTU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9SQU1fQUNDRVNTX0NUUkxfX0VSQU1fV1JfQUREUl9BVVRPX0lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9SQU1fQUNDRVNTX0NUUkxfX0VSQU1fUkRfQUREUl9BVVRPX0lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9SQU1fQUNDRVNTX0NUUkxfX0lSQU1fV1JfQUREUl9BVVRPX0lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9SQU1fQUNDRVNTX0NUUkxfX0lSQU1fUkRfQUREUl9BVVRPX0lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9SQU1fQUNDRVNTX0NUUkxfX0VSQU1fSE9TVF9BQ0NFU1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRE1DVV9SQU1fQUNDRVNTX0NUUkxfX0lSQU1fSE9TVF9BQ0NFU1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vRE1DVV9FUkFNX1dSX0NUUkwKKyNkZWZpbmUgRE1DVV9FUkFNX1dSX0NUUkxfX0VSQU1fV1JfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfRVJBTV9XUl9DVFJMX19FUkFNX1dSX0JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVV9FUkFNX1dSX0NUUkxfX0VSQU1fV1JfQllURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX0VSQU1fV1JfQ1RSTF9fRVJBTV9XUl9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBETUNVX0VSQU1fV1JfQ1RSTF9fRVJBTV9XUl9CRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBETUNVX0VSQU1fV1JfQ1RSTF9fRVJBTV9XUl9CWVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9ETUNVX0VSQU1fV1JfREFUQQorI2RlZmluZSBETUNVX0VSQU1fV1JfREFUQV9fRVJBTV9XUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9FUkFNX1dSX0RBVEFfX0VSQU1fV1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVV9FUkFNX1JEX0NUUkwKKyNkZWZpbmUgRE1DVV9FUkFNX1JEX0NUUkxfX0VSQU1fUkRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfRVJBTV9SRF9DVFJMX19FUkFNX1JEX0JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVV9FUkFNX1JEX0NUUkxfX0VSQU1fUkRfQllURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX0VSQU1fUkRfQ1RSTF9fRVJBTV9SRF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBETUNVX0VSQU1fUkRfQ1RSTF9fRVJBTV9SRF9CRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBETUNVX0VSQU1fUkRfQ1RSTF9fRVJBTV9SRF9CWVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9ETUNVX0VSQU1fUkRfREFUQQorI2RlZmluZSBETUNVX0VSQU1fUkRfREFUQV9fRVJBTV9SRF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9FUkFNX1JEX0RBVEFfX0VSQU1fUkRfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVV9JUkFNX1dSX0NUUkwKKyNkZWZpbmUgRE1DVV9JUkFNX1dSX0NUUkxfX0lSQU1fV1JfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfSVJBTV9XUl9DVFJMX19JUkFNX1dSX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL0RNQ1VfSVJBTV9XUl9EQVRBCisjZGVmaW5lIERNQ1VfSVJBTV9XUl9EQVRBX19JUkFNX1dSX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0lSQU1fV1JfREFUQV9fSVJBTV9XUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9ETUNVX0lSQU1fUkRfQ1RSTAorI2RlZmluZSBETUNVX0lSQU1fUkRfQ1RSTF9fSVJBTV9SRF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9JUkFNX1JEX0NUUkxfX0lSQU1fUkRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKy8vRE1DVV9JUkFNX1JEX0RBVEEKKyNkZWZpbmUgRE1DVV9JUkFNX1JEX0RBVEFfX0lSQU1fUkRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfSVJBTV9SRF9EQVRBX19JUkFNX1JEX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0RNQ1VfRVZFTlRfVFJJR0dFUgorI2RlZmluZSBETUNVX0VWRU5UX1RSSUdHRVJfX0dFTl9TV19JTlRfVE9fVUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9FVkVOVF9UUklHR0VSX19VQ19JTlRFUk5BTF9JTlRfQ09ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBETUNVX0VWRU5UX1RSSUdHRVJfX0dFTl9VQ19JTlRFUk5BTF9JTlRfVE9fSE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERNQ1VfRVZFTlRfVFJJR0dFUl9fR0VOX1NXX0lOVF9UT19VQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfRVZFTlRfVFJJR0dFUl9fVUNfSU5URVJOQUxfSU5UX0NPREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisjZGVmaW5lIERNQ1VfRVZFTlRfVFJJR0dFUl9fR0VOX1VDX0lOVEVSTkFMX0lOVF9UT19IT1NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL0RNQ1VfVUNfSU5URVJOQUxfSU5UX1NUQVRVUworI2RlZmluZSBETUNVX1VDX0lOVEVSTkFMX0lOVF9TVEFUVVNfX1VDX0lOVF9JUlFfTl9QSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfWElSUV9OX1BJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfVUNfSU5URVJOQUxfSU5UX1NUQVRVU19fVUNfSU5UX1NPRlRXQVJFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX1VDX0lOVEVSTkFMX0lOVF9TVEFUVVNfX1VDX0lOVF9JTExFR0FMX09QQ09ERV9UUkFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfT1VUUFVUX0NPTVBBUkVfNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfVUNfSU5URVJOQUxfSU5UX1NUQVRVU19fVUNfSU5UX1RJTUVSX09VVFBVVF9DT01QQVJFXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVX1VDX0lOVEVSTkFMX0lOVF9TVEFUVVNfX1VDX0lOVF9USU1FUl9PVVRQVVRfQ09NUEFSRV8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfT1VUUFVUX0NPTVBBUkVfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfVUNfSU5URVJOQUxfSU5UX1NUQVRVU19fVUNfSU5UX1RJTUVSX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX1VDX0lOVEVSTkFMX0lOVF9TVEFUVVNfX1VDX0lOVF9SRUFMX1RJTUVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfSU5QVVRfQ0FQVFVSRV80X09VVFBVVF9DT01QQVJFXzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERNQ1VfVUNfSU5URVJOQUxfSU5UX1NUQVRVU19fVUNfSU5UX1RJTUVSX0lOUFVUX0NBUFRVUkVfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBETUNVX1VDX0lOVEVSTkFMX0lOVF9TVEFUVVNfX1VDX0lOVF9USU1FUl9JTlBVVF9DQVBUVVJFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfSU5QVVRfQ0FQVFVSRV8xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERNQ1VfVUNfSU5URVJOQUxfSU5UX1NUQVRVU19fVUNfSU5UX1BVTFNFX0FDQ1VNVUxBVE9SX0lOUFVUX0VER0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBETUNVX1VDX0lOVEVSTkFMX0lOVF9TVEFUVVNfX1VDX0lOVF9QVUxTRV9BQ0NVTVVMQVRPUl9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfSVJRX05fUElOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfWElSUV9OX1BJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfU09GVFdBUkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfSUxMRUdBTF9PUENPREVfVFJBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfT1VUUFVUX0NPTVBBUkVfNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfT1VUUFVUX0NPTVBBUkVfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfT1VUUFVUX0NPTVBBUkVfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfT1VUUFVUX0NPTVBBUkVfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfUkVBTF9USU1FX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfSU5QVVRfQ0FQVFVSRV80X09VVFBVVF9DT01QQVJFXzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfSU5QVVRfQ0FQVFVSRV8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfSU5QVVRfQ0FQVFVSRV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfVElNRVJfSU5QVVRfQ0FQVFVSRV8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfUFVMU0VfQUNDVU1VTEFUT1JfSU5QVVRfRURHRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRE1DVV9VQ19JTlRFUk5BTF9JTlRfU1RBVFVTX19VQ19JTlRfUFVMU0VfQUNDVU1VTEFUT1JfT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vRE1DVV9TU19JTlRFUlJVUFRfQ05UTF9TVEFUVVMKKyNkZWZpbmUgRE1DVV9TU19JTlRFUlJVUFRfQ05UTF9TVEFUVVNfX1NUQVRJQ19TQ1JFRU4xX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERNQ1VfU1NfSU5URVJSVVBUX0NOVExfU1RBVFVTX19TVEFUSUNfU0NSRUVOMV9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjFfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRE1DVV9TU19JTlRFUlJVUFRfQ05UTF9TVEFUVVNfX1NUQVRJQ19TQ1JFRU4yX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERNQ1VfU1NfSU5URVJSVVBUX0NOVExfU1RBVFVTX19TVEFUSUNfU0NSRUVOMl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVV9TU19JTlRFUlJVUFRfQ05UTF9TVEFUVVNfX1NUQVRJQ19TQ1JFRU4yX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjNfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERNQ1VfU1NfSU5URVJSVVBUX0NOVExfU1RBVFVTX19TVEFUSUNfU0NSRUVOM19JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRE1DVV9TU19JTlRFUlJVUFRfQ05UTF9TVEFUVVNfX1NUQVRJQ19TQ1JFRU4zX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjRfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERNQ1VfU1NfSU5URVJSVVBUX0NOVExfU1RBVFVTX19TVEFUSUNfU0NSRUVONF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRE1DVV9TU19JTlRFUlJVUFRfQ05UTF9TVEFUVVNfX1NUQVRJQ19TQ1JFRU40X0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjVfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERNQ1VfU1NfSU5URVJSVVBUX0NOVExfU1RBVFVTX19TVEFUSUNfU0NSRUVONV9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRE1DVV9TU19JTlRFUlJVUFRfQ05UTF9TVEFUVVNfX1NUQVRJQ19TQ1JFRU41X0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjZfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERNQ1VfU1NfSU5URVJSVVBUX0NOVExfU1RBVFVTX19TVEFUSUNfU0NSRUVONl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRE1DVV9TU19JTlRFUlJVUFRfQ05UTF9TVEFUVVNfX1NUQVRJQ19TQ1JFRU42X0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjFfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjFfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjFfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjJfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjJfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjJfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjNfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjNfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjNfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjRfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjRfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjRfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjVfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjVfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjVfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjZfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBETUNVX1NTX0lOVEVSUlVQVF9DTlRMX1NUQVRVU19fU1RBVElDX1NDUkVFTjZfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9ETUNVX0lOVEVSUlVQVF9TVEFUVVMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19BQk0xX0hHX1JFQURZX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fQUJNMV9IR19SRUFEWV9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0FCTTFfTFNfUkVBRFlfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19BQk0xX0xTX1JFQURZX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fQUJNMV9CTF9VUERBVEVfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0FCTTFfQkxfVVBEQVRFX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19NQ1BfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fRVhURVJOQUxfU1dfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0VYVEVSTkFMX1NXX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19TQ1BfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fVUNfSU5URVJOQUxfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX1VDX0lOVEVSTkFMX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19VQ19SRUdfUkRfVElNRU9VVF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fVUNfUkVHX1JEX1RJTUVPVVRfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0RDUEdfSUhDX0RPTUFJTjBfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fRENQR19JSENfRE9NQUlOMV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0RDUEdfSUhDX0RPTUFJTjFfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4yX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fRENQR19JSENfRE9NQUlOMl9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0RDUEdfSUhDX0RPTUFJTjNfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fRENQR19JSENfRE9NQUlONF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fRENQR19JSENfRE9NQUlONV9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0RDUEdfSUhDX0RPTUFJTjBfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fRENQR19JSENfRE9NQUlOMV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0RDUEdfSUhDX0RPTUFJTjJfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fRENQR19JSENfRE9NQUlOMl9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0RDUEdfSUhDX0RPTUFJTjNfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fRENQR19JSENfRE9NQUlONF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fRENQR19JSENfRE9NQUlONV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTksxX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX1ZCTEFOSzFfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fVkJMQU5LMl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTksyX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX1ZCTEFOSzNfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fVkJMQU5LM19JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTks0X0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX1ZCTEFOSzRfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fVkJMQU5LNV9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTks1X0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfX1ZCTEFOSzZfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19fVkJMQU5LNl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19BQk0xX0hHX1JFQURZX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19BQk0xX0hHX1JFQURZX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19BQk0xX0xTX1JFQURZX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19BQk0xX0xTX1JFQURZX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19BQk0xX0JMX1VQREFURV9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19BQk0xX0JMX1VQREFURV9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19NQ1BfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19FWFRFUk5BTF9TV19JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19FWFRFUk5BTF9TV19JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19TQ1BfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19VQ19JTlRFUk5BTF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19VQ19JTlRFUk5BTF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19VQ19SRUdfUkRfVElNRU9VVF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19VQ19SRUdfUkRfVElNRU9VVF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4yX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4yX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU41X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU41X1BPV0VSX1VQX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4yX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4yX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU41X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19EQ1BHX0lIQ19ET01BSU41X1BPV0VSX0RPV05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTksxX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTksxX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTksyX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTksyX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTkszX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTkszX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTks0X0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTks0X0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTks1X0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTks1X0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTks2X0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX19WQkxBTks2X0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzFfX09URzBfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18xX19PVEcwX1JBTkdFX1RJTUlOR19VUERBVEVfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHMV9SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzFfX09URzFfUkFOR0VfVElNSU5HX1VQREFURV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18xX19PVEcyX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHMl9SQU5HRV9USU1JTkdfVVBEQVRFX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzFfX09URzNfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18xX19PVEczX1JBTkdFX1RJTUlOR19VUERBVEVfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHNF9SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzFfX09URzRfUkFOR0VfVElNSU5HX1VQREFURV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18xX19PVEc1X1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHNV9SQU5HRV9USU1JTkdfVVBEQVRFX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzFfX0RNQ1VfR0VORVJJQ19JTlRFUlJVUFRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18xX19ETUNVX0dFTkVSSUNfSU5URVJSVVBUX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHMF9SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHMF9SQU5HRV9USU1JTkdfVVBEQVRFX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHMV9SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHMV9SQU5HRV9USU1JTkdfVVBEQVRFX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHMl9SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHMl9SQU5HRV9USU1JTkdfVVBEQVRFX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHM19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHM19SQU5HRV9USU1JTkdfVVBEQVRFX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHNF9SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHNF9SQU5HRV9USU1JTkdfVVBEQVRFX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHNV9SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fT1RHNV9SQU5HRV9USU1JTkdfVVBEQVRFX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fRE1DVV9HRU5FUklDX0lOVEVSUlVQVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMV9fRE1DVV9HRU5FUklDX0lOVEVSUlVQVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9ETUNVX0lOVEVSUlVQVF9UT19IT1NUX0VOX01BU0sKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19BQk0wX0hHX1JFQURZX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX0hPU1RfRU5fTUFTS19fQUJNMF9MU19SRUFEWV9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19IT1NUX0VOX01BU0tfX0FCTTBfQkxfVVBEQVRFX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19BQk0xX0hHX1JFQURZX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX0hPU1RfRU5fTUFTS19fQUJNMV9MU19SRUFEWV9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19IT1NUX0VOX01BU0tfX0FCTTFfQkxfVVBEQVRFX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19TQ1BfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX0hPU1RfRU5fTUFTS19fVUNfSU5URVJOQUxfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19IT1NUX0VOX01BU0tfX1VDX1JFR19SRF9USU1FT1VUX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19BQk0wX0hHX1JFQURZX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19BQk0wX0xTX1JFQURZX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19BQk0wX0JMX1VQREFURV9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19BQk0xX0hHX1JFQURZX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19BQk0xX0xTX1JFQURZX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19BQk0xX0JMX1VQREFURV9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19TQ1BfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19VQ19JTlRFUk5BTF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fSE9TVF9FTl9NQVNLX19VQ19SRUdfUkRfVElNRU9VVF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKy8vRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19BQk0xX0hHX1JFQURZX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fQUJNMV9MU19SRUFEWV9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0FCTTFfQkxfVVBEQVRFX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19NQ1BfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fU1RBVElDX1NDUkVFTjFfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1NUQVRJQ19TQ1JFRU4yX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19FWFRFUk5BTF9TV19JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fU1RBVElDX1NDUkVFTjNfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1NUQVRJQ19TQ1JFRU40X0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19TVEFUSUNfU0NSRUVONV9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fRENQR19JSENfRE9NQUlOMF9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjFfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19EQ1BHX0lIQ19ET01BSU4yX1BPV0VSX1VQX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fRENQR19JSENfRE9NQUlOM19QT1dFUl9VUF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjRfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fRENQR19JSENfRE9NQUlONV9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX0RPV05fSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjFfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fRENQR19JSENfRE9NQUlOMl9QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX0RPV05fSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjRfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fRENQR19JSENfRE9NQUlONV9QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19WQkxBTksxX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1ZCTEFOSzJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fVkJMQU5LM19JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19WQkxBTks0X0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1ZCTEFOSzVfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19fVkJMQU5LNl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX19TVEFUSUNfU0NSRUVONl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0FCTTFfSEdfUkVBRFlfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0FCTTFfTFNfUkVBRFlfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0FCTTFfQkxfVVBEQVRFX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX01DUF9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1NUQVRJQ19TQ1JFRU4xX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1NUQVRJQ19TQ1JFRU4yX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0VYVEVSTkFMX1NXX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1NUQVRJQ19TQ1JFRU4zX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1NUQVRJQ19TQ1JFRU40X0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1NUQVRJQ19TQ1JFRU41X0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjBfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjFfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjJfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjNfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjRfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjBfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjFfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjJfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjNfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjRfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1ZCTEFOSzFfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1ZCTEFOSzJfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1ZCTEFOSzNfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1ZCTEFOSzRfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1ZCTEFOSzVfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1ZCTEFOSzZfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfX1NUQVRJQ19TQ1JFRU42X0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzFfX09URzBfUkFOR0VfVElNSU5HX1VQREFURV9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX19PVEcxX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMV9fT1RHMl9SQU5HRV9USU1JTkdfVVBEQVRFX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzFfX09URzNfUkFOR0VfVElNSU5HX1VQREFURV9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX19PVEc0X1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMV9fT1RHNV9SQU5HRV9USU1JTkdfVVBEQVRFX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzFfX0RNQ1VfR0VORVJJQ19JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX19PVEcwX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX19PVEcxX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX19PVEcyX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX19PVEczX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX19PVEc0X1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX19PVEc1X1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18xX19ETUNVX0dFTkVSSUNfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fQUJNMV9IR19SRUFEWV9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX0FCTTFfTFNfUkVBRFlfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19BQk0xX0JMX1VQREFURV9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fTUNQX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX1NUQVRJQ19TQ1JFRU4xX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19TVEFUSUNfU0NSRUVOMl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fRVhURVJOQUxfU1dfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX1NUQVRJQ19TQ1JFRU4zX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19TVEFUSUNfU0NSRUVONF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fU1RBVElDX1NDUkVFTjVfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX0RDUEdfSUhDX0RPTUFJTjBfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fRENQR19JSENfRE9NQUlOMl9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX0RDUEdfSUhDX0RPTUFJTjNfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fRENQR19JSENfRE9NQUlOMF9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX0RDUEdfSUhDX0RPTUFJTjJfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fRENQR19JSENfRE9NQUlOM19QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fVkJMQU5LMV9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19WQkxBTksyX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX1ZCTEFOSzNfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fVkJMQU5LNF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19WQkxBTks1X0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfX1ZCTEFOSzZfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9fU1RBVElDX1NDUkVFTjZfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19BQk0xX0hHX1JFQURZX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19BQk0xX0xTX1JFQURZX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19BQk0xX0JMX1VQREFURV9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19NQ1BfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19TVEFUSUNfU0NSRUVOMV9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19TVEFUSUNfU0NSRUVOMl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19FWFRFUk5BTF9TV19JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19TVEFUSUNfU0NSRUVOM19JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19TVEFUSUNfU0NSRUVONF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19TVEFUSUNfU0NSRUVONV9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4yX1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU41X1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4yX1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19EQ1BHX0lIQ19ET01BSU41X1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19WQkxBTksxX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19WQkxBTksyX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19WQkxBTkszX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19WQkxBTks0X0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19WQkxBTks1X0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19WQkxBTks2X0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX19TVEFUSUNfU0NSRUVONl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMXzEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMXzFfX09URzBfUkFOR0VfVElNSU5HX1VQREFURV9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF8xX19PVEcxX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfMV9fT1RHMl9SQU5HRV9USU1JTkdfVVBEQVRFX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMXzFfX09URzNfUkFOR0VfVElNSU5HX1VQREFURV9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF8xX19PVEc0X1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfMV9fT1RHNV9SQU5HRV9USU1JTkdfVVBEQVRFX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMXzFfX0RNQ1VfR0VORVJJQ19JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF8xX19PVEcwX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF8xX19PVEcxX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF8xX19PVEcyX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF8xX19PVEczX1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF8xX19PVEc0X1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF8xX19PVEc1X1JBTkdFX1RJTUlOR19VUERBVEVfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF8xX19ETUNVX0dFTkVSSUNfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL0RDX0RNQ1VfU0NSQVRDSAorI2RlZmluZSBEQ19ETUNVX1NDUkFUQ0hfX0RNQ1VfU0NSQVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfRE1DVV9TQ1JBVENIX19ETUNVX1NDUkFUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVV9JTlRfQ05UCisjZGVmaW5lIERNQ1VfSU5UX0NOVF9fRE1DVV9BQk0xX0hHX1JFQURZX0lOVF9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0lOVF9DTlRfX0RNQ1VfQUJNMV9MU19SRUFEWV9JTlRfQ05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9JTlRfQ05UX19ETUNVX0FCTTFfQkxfVVBEQVRFX0lOVF9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBETUNVX0lOVF9DTlRfX0RNQ1VfQUJNMV9IR19SRUFEWV9JTlRfQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBETUNVX0lOVF9DTlRfX0RNQ1VfQUJNMV9MU19SRUFEWV9JTlRfQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBETUNVX0lOVF9DTlRfX0RNQ1VfQUJNMV9CTF9VUERBVEVfSU5UX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9ETUNVX0ZXX0NIRUNLU1VNX1NNUExfQllURV9QT1MKKyNkZWZpbmUgRE1DVV9GV19DSEVDS1NVTV9TTVBMX0JZVEVfUE9TX19ETUNVX0ZXX0NIRUNLU1VNX0xPX1NNUExfQllURV9QT1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfRldfQ0hFQ0tTVU1fU01QTF9CWVRFX1BPU19fRE1DVV9GV19DSEVDS1NVTV9ISV9TTVBMX0JZVEVfUE9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX0ZXX0NIRUNLU1VNX1NNUExfQllURV9QT1NfX0RNQ1VfRldfQ0hFQ0tTVU1fTE9fU01QTF9CWVRFX1BPU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBETUNVX0ZXX0NIRUNLU1VNX1NNUExfQllURV9QT1NfX0RNQ1VfRldfQ0hFQ0tTVU1fSElfU01QTF9CWVRFX1BPU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9ETUNVX1VDX0NMS19HQVRJTkdfQ05UTAorI2RlZmluZSBETUNVX1VDX0NMS19HQVRJTkdfQ05UTF9fVUNfSVJBTV9SRF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9VQ19DTEtfR0FUSU5HX0NOVExfX1VDX0VSQU1fUkRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfVUNfQ0xLX0dBVElOR19DTlRMX19VQ19SQkJNX1JEX0NMS19HQVRJTkdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVV9VQ19DTEtfR0FUSU5HX0NOVExfX1VDX0lSQU1fUkRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRE1DVV9VQ19DTEtfR0FUSU5HX0NOVExfX1VDX0VSQU1fUkRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRE1DVV9VQ19DTEtfR0FUSU5HX0NOVExfX1VDX1JCQk1fUkRfQ0xLX0dBVElOR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vTUFTVEVSX0NPTU1fREFUQV9SRUcxCisjZGVmaW5lIE1BU1RFUl9DT01NX0RBVEFfUkVHMV9fTUFTVEVSX0NPTU1fREFUQV9SRUcxX0JZVEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQVNURVJfQ09NTV9EQVRBX1JFRzFfX01BU1RFUl9DT01NX0RBVEFfUkVHMV9CWVRFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUFTVEVSX0NPTU1fREFUQV9SRUcxX19NQVNURVJfQ09NTV9EQVRBX1JFRzFfQllURTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQVNURVJfQ09NTV9EQVRBX1JFRzFfX01BU1RFUl9DT01NX0RBVEFfUkVHMV9CWVRFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1BU1RFUl9DT01NX0RBVEFfUkVHMV9fTUFTVEVSX0NPTU1fREFUQV9SRUcxX0JZVEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1BU1RFUl9DT01NX0RBVEFfUkVHMV9fTUFTVEVSX0NPTU1fREFUQV9SRUcxX0JZVEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1BU1RFUl9DT01NX0RBVEFfUkVHMV9fTUFTVEVSX0NPTU1fREFUQV9SRUcxX0JZVEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1BU1RFUl9DT01NX0RBVEFfUkVHMV9fTUFTVEVSX0NPTU1fREFUQV9SRUcxX0JZVEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01BU1RFUl9DT01NX0RBVEFfUkVHMgorI2RlZmluZSBNQVNURVJfQ09NTV9EQVRBX1JFRzJfX01BU1RFUl9DT01NX0RBVEFfUkVHMl9CWVRFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUFTVEVSX0NPTU1fREFUQV9SRUcyX19NQVNURVJfQ09NTV9EQVRBX1JFRzJfQllURTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1BU1RFUl9DT01NX0RBVEFfUkVHMl9fTUFTVEVSX0NPTU1fREFUQV9SRUcyX0JZVEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTUFTVEVSX0NPTU1fREFUQV9SRUcyX19NQVNURVJfQ09NTV9EQVRBX1JFRzJfQllURTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNQVNURVJfQ09NTV9EQVRBX1JFRzJfX01BU1RFUl9DT01NX0RBVEFfUkVHMl9CWVRFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNQVNURVJfQ09NTV9EQVRBX1JFRzJfX01BU1RFUl9DT01NX0RBVEFfUkVHMl9CWVRFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNQVNURVJfQ09NTV9EQVRBX1JFRzJfX01BU1RFUl9DT01NX0RBVEFfUkVHMl9CWVRFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNQVNURVJfQ09NTV9EQVRBX1JFRzJfX01BU1RFUl9DT01NX0RBVEFfUkVHMl9CWVRFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NQVNURVJfQ09NTV9EQVRBX1JFRzMKKyNkZWZpbmUgTUFTVEVSX0NPTU1fREFUQV9SRUczX19NQVNURVJfQ09NTV9EQVRBX1JFRzNfQllURTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1BU1RFUl9DT01NX0RBVEFfUkVHM19fTUFTVEVSX0NPTU1fREFUQV9SRUczX0JZVEUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNQVNURVJfQ09NTV9EQVRBX1JFRzNfX01BU1RFUl9DT01NX0RBVEFfUkVHM19CWVRFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1BU1RFUl9DT01NX0RBVEFfUkVHM19fTUFTVEVSX0NPTU1fREFUQV9SRUczX0JZVEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTUFTVEVSX0NPTU1fREFUQV9SRUczX19NQVNURVJfQ09NTV9EQVRBX1JFRzNfQllURTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTUFTVEVSX0NPTU1fREFUQV9SRUczX19NQVNURVJfQ09NTV9EQVRBX1JFRzNfQllURTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTUFTVEVSX0NPTU1fREFUQV9SRUczX19NQVNURVJfQ09NTV9EQVRBX1JFRzNfQllURTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTUFTVEVSX0NPTU1fREFUQV9SRUczX19NQVNURVJfQ09NTV9EQVRBX1JFRzNfQllURTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTUFTVEVSX0NPTU1fQ01EX1JFRworI2RlZmluZSBNQVNURVJfQ09NTV9DTURfUkVHX19NQVNURVJfQ09NTV9DTURfUkVHX0JZVEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUFTVEVSX0NPTU1fQ01EX1JFR19fTUFTVEVSX0NPTU1fQ01EX1JFR19CWVRFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1BU1RFUl9DT01NX0NNRF9SRUdfX01BU1RFUl9DT01NX0NNRF9SRUdfQllURTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTUFTVEVSX0NPTU1fQ01EX1JFR19fTUFTVEVSX0NPTU1fQ01EX1JFR19CWVRFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNQVNURVJfQ09NTV9DTURfUkVHX19NQVNURVJfQ09NTV9DTURfUkVHX0JZVEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNQVNURVJfQ09NTV9DTURfUkVHX19NQVNURVJfQ09NTV9DTURfUkVHX0JZVEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNQVNURVJfQ09NTV9DTURfUkVHX19NQVNURVJfQ09NTV9DTURfUkVHX0JZVEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNQVNURVJfQ09NTV9DTURfUkVHX19NQVNURVJfQ09NTV9DTURfUkVHX0JZVEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NQVNURVJfQ09NTV9DTlRMX1JFRworI2RlZmluZSBNQVNURVJfQ09NTV9DTlRMX1JFR19fTUFTVEVSX0NPTU1fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUFTVEVSX0NPTU1fQ05UTF9SRUdfX01BU1RFUl9DT01NX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0xBVkVfQ09NTV9EQVRBX1JFRzEKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzFfX1NMQVZFX0NPTU1fREFUQV9SRUcxX0JZVEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNMQVZFX0NPTU1fREFUQV9SRUcxX19TTEFWRV9DT01NX0RBVEFfUkVHMV9CWVRFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTTEFWRV9DT01NX0RBVEFfUkVHMV9fU0xBVkVfQ09NTV9EQVRBX1JFRzFfQllURTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNMQVZFX0NPTU1fREFUQV9SRUcxX19TTEFWRV9DT01NX0RBVEFfUkVHMV9CWVRFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzFfX1NMQVZFX0NPTU1fREFUQV9SRUcxX0JZVEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzFfX1NMQVZFX0NPTU1fREFUQV9SRUcxX0JZVEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzFfX1NMQVZFX0NPTU1fREFUQV9SRUcxX0JZVEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzFfX1NMQVZFX0NPTU1fREFUQV9SRUcxX0JZVEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vU0xBVkVfQ09NTV9EQVRBX1JFRzIKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzJfX1NMQVZFX0NPTU1fREFUQV9SRUcyX0JZVEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNMQVZFX0NPTU1fREFUQV9SRUcyX19TTEFWRV9DT01NX0RBVEFfUkVHMl9CWVRFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTTEFWRV9DT01NX0RBVEFfUkVHMl9fU0xBVkVfQ09NTV9EQVRBX1JFRzJfQllURTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNMQVZFX0NPTU1fREFUQV9SRUcyX19TTEFWRV9DT01NX0RBVEFfUkVHMl9CWVRFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzJfX1NMQVZFX0NPTU1fREFUQV9SRUcyX0JZVEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzJfX1NMQVZFX0NPTU1fREFUQV9SRUcyX0JZVEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzJfX1NMQVZFX0NPTU1fREFUQV9SRUcyX0JZVEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzJfX1NMQVZFX0NPTU1fREFUQV9SRUcyX0JZVEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vU0xBVkVfQ09NTV9EQVRBX1JFRzMKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzNfX1NMQVZFX0NPTU1fREFUQV9SRUczX0JZVEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNMQVZFX0NPTU1fREFUQV9SRUczX19TTEFWRV9DT01NX0RBVEFfUkVHM19CWVRFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTTEFWRV9DT01NX0RBVEFfUkVHM19fU0xBVkVfQ09NTV9EQVRBX1JFRzNfQllURTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNMQVZFX0NPTU1fREFUQV9SRUczX19TTEFWRV9DT01NX0RBVEFfUkVHM19CWVRFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzNfX1NMQVZFX0NPTU1fREFUQV9SRUczX0JZVEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzNfX1NMQVZFX0NPTU1fREFUQV9SRUczX0JZVEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzNfX1NMQVZFX0NPTU1fREFUQV9SRUczX0JZVEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgU0xBVkVfQ09NTV9EQVRBX1JFRzNfX1NMQVZFX0NPTU1fREFUQV9SRUczX0JZVEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vU0xBVkVfQ09NTV9DTURfUkVHCisjZGVmaW5lIFNMQVZFX0NPTU1fQ01EX1JFR19fU0xBVkVfQ09NTV9DTURfUkVHX0JZVEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTTEFWRV9DT01NX0NNRF9SRUdfX1NMQVZFX0NPTU1fQ01EX1JFR19CWVRFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0xBVkVfQ09NTV9DTURfUkVHX19TTEFWRV9DT01NX0NNRF9SRUdfQllURTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTTEFWRV9DT01NX0NNRF9SRUdfX1NMQVZFX0NPTU1fQ01EX1JFR19CWVRFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNMQVZFX0NPTU1fQ01EX1JFR19fU0xBVkVfQ09NTV9DTURfUkVHX0JZVEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNMQVZFX0NPTU1fQ01EX1JFR19fU0xBVkVfQ09NTV9DTURfUkVHX0JZVEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFNMQVZFX0NPTU1fQ01EX1JFR19fU0xBVkVfQ09NTV9DTURfUkVHX0JZVEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFNMQVZFX0NPTU1fQ01EX1JFR19fU0xBVkVfQ09NTV9DTURfUkVHX0JZVEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL1NMQVZFX0NPTU1fQ05UTF9SRUcKKyNkZWZpbmUgU0xBVkVfQ09NTV9DTlRMX1JFR19fU0xBVkVfQ09NTV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNMQVZFX0NPTU1fQ05UTF9SRUdfX0NPTU1fUE9SVF9NU0dfVE9fSE9TVF9JTl9QUk9HUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTTEFWRV9DT01NX0NOVExfUkVHX19TTEFWRV9DT01NX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTTEFWRV9DT01NX0NOVExfUkVHX19DT01NX1BPUlRfTVNHX1RPX0hPU1RfSU5fUFJPR1JFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9ETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzEKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMxX19ETVVfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMV9fRE1VX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzFfX0RJT19QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMxX19ESU9fUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMV9fRENDR19QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzFfX0RDQ0dfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMxX19ETVVfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMxX19ETVVfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMxX19ESU9fUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMxX19ESU9fUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMxX19EQ0NHX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMxX19EQ0NHX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMyCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzJfX0hVQlAwX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMyX19IVUJQMV9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDFfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzJfX0hVQlAyX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMyX19IVUJQMl9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzJfX0hVQlAzX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMyX19IVUJQNF9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDRfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzJfX0hVQlA1X1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMyX19IVUJQNV9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzJfX0hVQlA2X1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMyX19IVUJQN19QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDdfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzJfX0hVQkJVQl9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMyX19IVUJCVUJfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDFfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDFfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDJfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDJfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDRfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDRfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDVfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDVfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDdfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCUDdfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCQlVCX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMl9fSFVCQlVCX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTMworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzNfX0RQUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAwX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTM19fRFBQMV9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzNfX0RQUDFfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAyX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTM19fRFBQMl9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzNfX0RQUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAzX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTM19fRFBQNF9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzNfX0RQUDRfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA1X1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTM19fRFBQNV9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzNfX0RQUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA2X1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTM19fRFBQN19QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzNfX0RQUDdfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAwX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAwX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAxX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAxX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAyX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAyX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAzX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFAzX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA0X1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA0X1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA1X1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA1X1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA2X1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA2X1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA3X1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVMzX19EUFA3X1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM0CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNF9fV0IwX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX1dCMF9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM0X19XQjFfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNF9fV0IxX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX0RDQ0dfUEVSRk1PTjJfQ09VTlRFUl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM0X19EQ0NHX1BFUkZNT04yX0NPVU5URVJfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNF9fTU1IVUJCVUJfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX01NSFVCQlVCX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM0X19XQjJfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNF9fV0IyX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX1dCMF9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX1dCMF9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX1dCMV9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX1dCMV9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX0RDQ0dfUEVSRk1PTjJfQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX0RDQ0dfUEVSRk1PTjJfQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX01NSFVCQlVCX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX01NSFVCQlVCX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX1dCMl9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzRfX1dCMl9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9ETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzUKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM1X19NUENfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNV9fTVBDX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX09QUF9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM1X19PUFBfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNV9fT1BUQ19QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX09QVENfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM1X19IREFfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNV9fSERBX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzBfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM1X19EU0MwX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNV9fRFNDMV9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzFfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM1X19EU0MyX1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNV9fRFNDMl9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzNfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM1X19EU0MzX1BFUkZNT05fQ09VTlRFUl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNV9fRFNDNF9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzRfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9TVEFUVVM1X19EU0M1X1BFUkZNT05fQ09VTlRFUl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfU1RBVFVTNV9fRFNDNV9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX01QQ19QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX01QQ19QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX09QUF9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX09QUF9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX09QVENfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX09QVENfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0hEQV9QRVJGTU9OX0NPVU5URVJfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0hEQV9QRVJGTU9OX0NPVU5URVJfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzBfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzBfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzFfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzFfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzJfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzJfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzNfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzNfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzRfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzRfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzVfUEVSRk1PTl9DT1VOVEVSX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1NUQVRVUzVfX0RTQzVfUEVSRk1PTl9DT1VOVEVSX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorLy9ETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RNVV9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19ESU9fUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRENDR19QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RNVV9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RJT19QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RDQ0dfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL0RNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzIKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzJfX0hVQlAxX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0syX19IVUJQMl9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzJfX0hVQlA0X1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0syX19IVUJQNV9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzJfX0hVQlA3X1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0syX19IVUJCVUJfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDFfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDJfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDRfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDVfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCUDdfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMl9fSFVCQlVCX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0szX19EUFAwX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLM19fRFBQMV9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDJfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0szX19EUFAzX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLM19fRFBQNF9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDVfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0szX19EUFA2X1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLM19fRFBQN19QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDFfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDJfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDRfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDVfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzNfX0RQUDdfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0RNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzQKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLNF9fV0IwX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzRfX1dCMV9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s0X19EQ0NHX1BFUkZNT04yX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLNF9fTU1IVUJCVUJfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzRfX1dCMl9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s0X19XQjBfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s0X19XQjFfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s0X19EQ0NHX1BFUkZNT04yX0NPVU5URVJfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s0X19NTUhVQkJVQl9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s0X19XQjJfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9ETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzVfX01QQ19QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19PUFBfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLNV9fT1BUQ19QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzVfX0hEQV9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19EU0MwX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLNV9fRFNDMV9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzVfX0RTQzJfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19EU0MzX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLNV9fRFNDNF9QRVJGTU9OX0NPVU5URVJfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzVfX0RTQzVfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19NUENfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19PUFBfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19PUFRDX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19IREFfUEVSRk1PTl9DT1VOVEVSX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19EU0MwX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19EU0MxX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19EU0MyX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19EU0MzX1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19EU0M0X1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX0VOX01BU0s1X19EU0M1X1BFUkZNT05fQ09VTlRFUl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorLy9ETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDEKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19ETVVfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRElPX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RDQ0dfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19ETVVfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19ESU9fUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EQ0NHX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwyCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDJfX0hVQlAxX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwyX19IVUJQMl9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDJfX0hVQlA0X1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwyX19IVUJQNV9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDJfX0hVQlA3X1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwyX19IVUJCVUJfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDFfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDJfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDRfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDVfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCUDdfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMl9fSFVCQlVCX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMworI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDNfX0RQUDBfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwzX19EUFAxX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQMl9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDNfX0RQUDNfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwzX19EUFA0X1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQNV9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDNfX0RQUDZfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwzX19EUFA3X1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQMF9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQMV9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQMl9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQM19QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQNF9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQNV9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQNl9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMM19fRFBQN19QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0RNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDRfX1dCMF9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw0X19XQjFfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNF9fRENDR19QRVJGTU9OMl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDRfX01NSFVCQlVCX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw0X19XQjJfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNF9fV0IwX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNF9fV0IxX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNF9fRENDR19QRVJGTU9OMl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNF9fTU1IVUJCVUJfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNF9fV0IyX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0RNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDVfX01QQ19QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19PUFRDX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNV9fT1BQX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDVfX0hEQV9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19EU0MwX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNV9fRFNDMV9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDVfX0RTQzJfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19EU0MzX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfUEVSRk1PTl9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMNV9fRFNDNF9QRVJGTU9OX0NPVU5URVJfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX1BFUkZNT05fSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDVfX0RTQzVfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19NUENfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19PUFRDX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19PUFBfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19IREFfUEVSRk1PTl9DT1VOVEVSX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19EU0MwX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19EU0MxX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19EU0MyX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19EU0MzX1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19EU0M0X1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRE1DVV9QRVJGTU9OX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUw1X19EU0M1X1BFUkZNT05fQ09VTlRFUl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKy8vRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9NU0FfUkVDRUlWRURfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfU0QwUDBfTVNBX1JFQ0VJVkVEX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX1NEMFAwX1ZCSURfVklEX1NUUkVBTV9TVEFUVVNfVE9HR0xFRF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9WQklEX1ZJRF9TVFJFQU1fU1RBVFVTX1RPR0dMRURfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfU0QwUDBfVkVSVElDQUxfSU5UMF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX1NEMFAwX1ZFUlRJQ0FMX0lOVDBfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9WRVJUSUNBTF9JTlQxX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfU0QwUDBfVkVSVElDQUxfSU5UMV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX1NEMFAwX1NEUF9SRUNFSVZFRF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9TRFBfUkVDRUlWRURfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfU0QxUDBfTVNBX1JFQ0VJVkVEX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX1NEMVAwX01TQV9SRUNFSVZFRF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9WQklEX1ZJRF9TVFJFQU1fU1RBVFVTX1RPR0dMRURfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgIDB4NgorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfU0QxUDBfVkJJRF9WSURfU1RSRUFNX1NUQVRVU19UT0dHTEVEX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX1NEMVAwX1ZFUlRJQ0FMX0lOVDBfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9WRVJUSUNBTF9JTlQwX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfU0QxUDBfVkVSVElDQUxfSU5UMV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX1NEMVAwX1ZFUlRJQ0FMX0lOVDFfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9TRFBfUkVDRUlWRURfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfU0QxUDBfU0RQX1JFQ0VJVkVEX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0RQSFlfUDBfQlNfSU5URVJWQUxfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgMHhhCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0JTX0lOVEVSVkFMX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgIDB4YQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfRFBIWV9QMF9TUl9JTlRFUlZBTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAweGIKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0RQSFlfUDBfU1JfSU5URVJWQUxfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgMHhiCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1NZTUJPTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgIDB4YworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfRFBIWV9QMF9TWU1CT0xfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0RQSFlfUDBfRElTUEFSSVRZX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgMHhkCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0RJU1BBUklUWV9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgIDB4ZAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfRFBIWV9QMF9UUkFJTklOR19FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAweGUKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0RQSFlfUDBfVFJBSU5JTkdfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1RFU1RfUEFUVEVSTl9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgIDB4ZgorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfRFBIWV9QMF9URVNUX1BBVFRFUk5fRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAweGYKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0RQSFlfUDBfRUNGX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfRFBIWV9QMF9FQ0ZfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0RFVEVDVF9TUl9MT0NLX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0RQSFlfUDBfREVURUNUX1NSX0xPQ0tfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfRFBIWV9QMF9MT1NTX09GX0FMSUdOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0xPU1NfT0ZfQUxJR05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0RQSFlfUDBfTE9TU19PRl9ERVNLRVdfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfRFBIWV9QMF9MT1NTX09GX0RFU0tFV19JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0VYQ0VTU0lWRV9FUlJPUl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0RQSFlfUDBfRVhDRVNTSVZFX0VSUk9SX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfRFBIWV9QMF9ERVNLRVdfRklGT19PVkVSRkxPV19JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0RFU0tFV19GSUZPX09WRVJGTE9XX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0FVWF9QMF9BVVhfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfQVVYX1AwX0FVWF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfSTJDX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0FVWF9QMF9JMkNfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfQVVYX1AwX0NQVV9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfQ1BVX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0FVWF9QMF9NU0cxX1RJTUVPVVRfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfQVVYX1AwX01TRzFfVElNRU9VVF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHMl9USU1FT1VUX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0FVWF9QMF9NU0cyX1RJTUVPVVRfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfQVVYX1AwX01TRzNfVElNRU9VVF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHM19USU1FT1VUX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9TVEFUVVMxX19EUFJYX0FVWF9QMF9NU0c0X1RJTUVPVVRfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1NUQVRVUzFfX0RQUlhfQVVYX1AwX01TRzRfVElNRU9VVF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9NU0FfUkVDRUlWRURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9NU0FfUkVDRUlWRURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9WQklEX1ZJRF9TVFJFQU1fU1RBVFVTX1RPR0dMRURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9WQklEX1ZJRF9TVFJFQU1fU1RBVFVTX1RPR0dMRURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9WRVJUSUNBTF9JTlQwX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9WRVJUSUNBTF9JTlQwX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9WRVJUSUNBTF9JTlQxX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9WRVJUSUNBTF9JTlQxX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9TRFBfUkVDRUlWRURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDBQMF9TRFBfUkVDRUlWRURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9NU0FfUkVDRUlWRURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9NU0FfUkVDRUlWRURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9WQklEX1ZJRF9TVFJFQU1fU1RBVFVTX1RPR0dMRURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9WQklEX1ZJRF9TVFJFQU1fU1RBVFVTX1RPR0dMRURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9WRVJUSUNBTF9JTlQwX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9WRVJUSUNBTF9JTlQwX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9WRVJUSUNBTF9JTlQxX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9WRVJUSUNBTF9JTlQxX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9TRFBfUkVDRUlWRURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9TRDFQMF9TRFBfUkVDRUlWRURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0JTX0lOVEVSVkFMX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0JTX0lOVEVSVkFMX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1NSX0lOVEVSVkFMX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1NSX0lOVEVSVkFMX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1NZTUJPTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1NZTUJPTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0RJU1BBUklUWV9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0RJU1BBUklUWV9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1RSQUlOSU5HX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1RSQUlOSU5HX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1RFU1RfUEFUVEVSTl9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX1RFU1RfUEFUVEVSTl9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0VDRl9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0VDRl9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0RFVEVDVF9TUl9MT0NLX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0RFVEVDVF9TUl9MT0NLX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0xPU1NfT0ZfQUxJR05fSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0xPU1NfT0ZfQUxJR05fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0xPU1NfT0ZfREVTS0VXX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0xPU1NfT0ZfREVTS0VXX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0VYQ0VTU0lWRV9FUlJPUl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0VYQ0VTU0lWRV9FUlJPUl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0RFU0tFV19GSUZPX09WRVJGTE9XX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9EUEhZX1AwX0RFU0tFV19GSUZPX09WRVJGTE9XX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfQVVYX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfQVVYX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfSTJDX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfSTJDX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfQ1BVX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfQ1BVX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHMV9USU1FT1VUX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHMV9USU1FT1VUX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHMl9USU1FT1VUX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHMl9USU1FT1VUX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHM19USU1FT1VUX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHM19USU1FT1VUX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHNF9USU1FT1VUX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfU1RBVFVTMV9fRFBSWF9BVVhfUDBfTVNHNF9USU1FT1VUX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzEKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRFBSWF9TRDBQMF9NU0FfUkVDRUlWRURfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QwUDBfVkJJRF9WSURfU1RSRUFNX1NUQVRVU19UT0dHTEVEX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgIDB4MQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX1NEMFAwX1ZFUlRJQ0FMX0lOVDBfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRFBSWF9TRDBQMF9WRVJUSUNBTF9JTlQxX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QwUDBfU0RQX1JFQ0VJVkVEX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX1NEMVAwX01TQV9SRUNFSVZFRF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRFBSWF9TRDFQMF9WQklEX1ZJRF9TVFJFQU1fU1RBVFVTX1RPR0dMRURfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgMHg2CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QxUDBfVkVSVElDQUxfSU5UMF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX1NEMVAwX1ZFUlRJQ0FMX0lOVDFfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRFBSWF9TRDFQMF9TRFBfUkVDRUlWRURfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9CU19JTlRFUlZBTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1RPX1VDX0VOX19TSElGVCAgMHhhCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9TUl9JTlRFUlZBTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1RPX1VDX0VOX19TSElGVCAgMHhiCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9TWU1CT0xfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgIDB4YworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0RQSFlfUDBfRElTUEFSSVRZX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfVE9fVUNfRU5fX1NISUZUICAweGQKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRFBSWF9EUEhZX1AwX1RSQUlOSU5HX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfVE9fVUNfRU5fX1NISUZUICAgMHhlCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9URVNUX1BBVFRFUk5fRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9UT19VQ19FTl9fU0hJRlQgIDB4ZgorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0RQSFlfUDBfRUNGX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAweDEwCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9ERVRFQ1RfU1JfTE9DS19JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRFBSWF9EUEhZX1AwX0xPU1NfT0ZfQUxJR05fSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0RQSFlfUDBfTE9TU19PRl9ERVNLRVdfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9FWENFU1NJVkVfRVJST1JfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRFBSWF9EUEhZX1AwX0RFU0tFV19GSUZPX09WRVJGTE9XX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9BVVhfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfQVVYX1AwX0kyQ19JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRFBSWF9BVVhfUDBfQ1BVX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9NU0cxX1RJTUVPVVRfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfQVVYX1AwX01TRzJfVElNRU9VVF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLMV9fRFBSWF9BVVhfUDBfTVNHM19USU1FT1VUX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9NU0c0X1RJTUVPVVRfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QwUDBfTVNBX1JFQ0VJVkVEX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QwUDBfVkJJRF9WSURfU1RSRUFNX1NUQVRVU19UT0dHTEVEX0lOVF9UT19VQ19FTl9NQVNLICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QwUDBfVkVSVElDQUxfSU5UMF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QwUDBfVkVSVElDQUxfSU5UMV9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QwUDBfU0RQX1JFQ0VJVkVEX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QxUDBfTVNBX1JFQ0VJVkVEX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QxUDBfVkJJRF9WSURfU1RSRUFNX1NUQVRVU19UT0dHTEVEX0lOVF9UT19VQ19FTl9NQVNLICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QxUDBfVkVSVElDQUxfSU5UMF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QxUDBfVkVSVElDQUxfSU5UMV9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfU0QxUDBfU0RQX1JFQ0VJVkVEX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9CU19JTlRFUlZBTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1RPX1VDX0VOX01BU0sgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9TUl9JTlRFUlZBTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1RPX1VDX0VOX01BU0sgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9TWU1CT0xfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9UT19VQ19FTl9NQVNLICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9ESVNQQVJJVFlfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9UT19VQ19FTl9NQVNLICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9UUkFJTklOR19FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1RPX1VDX0VOX01BU0sgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTSzFfX0RQUlhfRFBIWV9QMF9URVNUX1BBVFRFUk5fRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9UT19VQ19FTl9NQVNLICAweDAwMDA4MDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0RQSFlfUDBfRUNGX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0RQSFlfUDBfREVURUNUX1NSX0xPQ0tfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0RQSFlfUDBfTE9TU19PRl9BTElHTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0RQSFlfUDBfTE9TU19PRl9ERVNLRVdfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0RQSFlfUDBfRVhDRVNTSVZFX0VSUk9SX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0RQSFlfUDBfREVTS0VXX0ZJRk9fT1ZFUkZMT1dfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9BVVhfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9JMkNfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9DUFVfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9NU0cxX1RJTUVPVVRfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9NU0cyX1RJTUVPVVRfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9NU0czX1RJTUVPVVRfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX0VOX01BU0sxX19EUFJYX0FVWF9QMF9NU0c0X1RJTUVPVVRfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9ETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDEKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX1NEMFAwX01TQV9SRUNFSVZFRF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9TRDBQMF9WQklEX1ZJRF9TVFJFQU1fU1RBVFVTX1RPR0dMRURfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgIDB4MQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfU0QwUDBfVkVSVElDQUxfSU5UMF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX1NEMFAwX1ZFUlRJQ0FMX0lOVDFfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9TRDBQMF9TRFBfUkVDRUlWRURfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfU0QxUDBfTVNBX1JFQ0VJVkVEX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX1NEMVAwX1ZCSURfVklEX1NUUkVBTV9TVEFUVVNfVE9HR0xFRF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgMHg2CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9TRDFQMF9WRVJUSUNBTF9JTlQwX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfU0QxUDBfVkVSVElDQUxfSU5UMV9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX1NEMVAwX1NEUF9SRUNFSVZFRF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9EUEhZX1AwX0JTX0lOVEVSVkFMX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgMHhhCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9EUEhZX1AwX1NSX0lOVEVSVkFMX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgMHhiCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9EUEhZX1AwX1NZTUJPTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgIDB4YworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfRFBIWV9QMF9ESVNQQVJJVFlfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAweGQKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfVFJBSU5JTkdfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAweGUKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfVEVTVF9QQVRURVJOX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgMHhmCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9EUEhZX1AwX0VDRl9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfREVURUNUX1NSX0xPQ0tfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgMHgxMQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfRFBIWV9QMF9MT1NTX09GX0FMSUdOX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAweDEyCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9EUEhZX1AwX0xPU1NfT0ZfREVTS0VXX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfRVhDRVNTSVZFX0VSUk9SX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfRFBIWV9QMF9ERVNLRVdfRklGT19PVkVSRkxPV19JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAweDE1CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9BVVhfUDBfQVVYX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0FVWF9QMF9JMkNfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfQVVYX1AwX0NQVV9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9BVVhfUDBfTVNHMV9USU1FT1VUX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0FVWF9QMF9NU0cyX1RJTUVPVVRfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfQVVYX1AwX01TRzNfVElNRU9VVF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9BVVhfUDBfTVNHNF9USU1FT1VUX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX1NEMFAwX01TQV9SRUNFSVZFRF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX1NEMFAwX1ZCSURfVklEX1NUUkVBTV9TVEFUVVNfVE9HR0xFRF9JTlRfWElSUV9JUlFfU0VMX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9TRDBQMF9WRVJUSUNBTF9JTlQwX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9TRDBQMF9WRVJUSUNBTF9JTlQxX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9TRDBQMF9TRFBfUkVDRUlWRURfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9TRDFQMF9NU0FfUkVDRUlWRURfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9TRDFQMF9WQklEX1ZJRF9TVFJFQU1fU1RBVFVTX1RPR0dMRURfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAweDAwMDAwMDQwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfU0QxUDBfVkVSVElDQUxfSU5UMF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfU0QxUDBfVkVSVElDQUxfSU5UMV9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfU0QxUDBfU0RQX1JFQ0VJVkVEX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfRFBIWV9QMF9CU19JTlRFUlZBTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfRFBIWV9QMF9TUl9JTlRFUlZBTF9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAweDAwMDAwODAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfRFBIWV9QMF9TWU1CT0xfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfRElTUEFSSVRZX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfWElSUV9JUlFfU0VMX01BU0sgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9EUEhZX1AwX1RSQUlOSU5HX0VSUk9SX1RIUkVTSF9FWENFRURFRF9JTlRfWElSUV9JUlFfU0VMX01BU0sgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERNQ1VfRFBSWF9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMMV9fRFBSWF9EUEhZX1AwX1RFU1RfUEFUVEVSTl9FUlJPUl9USFJFU0hfRVhDRUVERURfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAweDAwMDA4MDAwTAorI2RlZmluZSBETUNVX0RQUlhfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTDFfX0RQUlhfRFBIWV9QMF9FQ0ZfRVJST1JfVEhSRVNIX0VYQ0VFREVEX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfREVURUNUX1NSX0xPQ0tfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfTE9TU19PRl9BTElHTl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfTE9TU19PRl9ERVNLRVdfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfRVhDRVNTSVZFX0VSUk9SX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0RQSFlfUDBfREVTS0VXX0ZJRk9fT1ZFUkZMT1dfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0FVWF9QMF9BVVhfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0FVWF9QMF9JMkNfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0FVWF9QMF9DUFVfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0FVWF9QMF9NU0cxX1RJTUVPVVRfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0FVWF9QMF9NU0cyX1RJTUVPVVRfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0FVWF9QMF9NU0czX1RJTUVPVVRfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRE1DVV9EUFJYX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUwxX19EUFJYX0FVWF9QMF9NU0c0X1RJTUVPVVRfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjZfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU43X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlON19QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjhfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU44X1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjlfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xMF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjExX1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xMV9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjEyX1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xM19QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjE0X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xNF9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjE1X1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU42X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjdfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU43X1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjhfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU45X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjEwX1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xMF9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjExX1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xMl9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjEyX1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xM19QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjE0X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xNV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjE1X1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ0NHX0RNQ1VfSU5UX1ZTWU5DX0NOVF9PVEcwX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDQ0dfRE1DVV9JTlRfVlNZTkNfQ05UX09URzFfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ0NHX0RNQ1VfSU5UX1ZTWU5DX0NOVF9PVEcyX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDQ0dfRE1DVV9JTlRfVlNZTkNfQ05UX09URzJfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHM19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ0NHX0RNQ1VfSU5UX1ZTWU5DX0NOVF9PVEczX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDQ0dfRE1DVV9JTlRfVlNZTkNfQ05UX09URzRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHNF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ0NHX0RNQ1VfSU5UX1ZTWU5DX0NOVF9PVEc1X09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDQ0dfRE1DVV9JTlRfVlNZTkNfQ05UX09URzVfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fQUJNMF9IR19SRUFEWV9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19BQk0wX0hHX1JFQURZX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0FCTTBfTFNfUkVBRFlfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fQUJNMF9MU19SRUFEWV9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19BQk0wX0JMX1VQREFURV9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0FCTTBfQkxfVVBEQVRFX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlON19QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlON19QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfVVBfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfVVBfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfVVBfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfVVBfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfVVBfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfVVBfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlON19QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlON19QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMl9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHM19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHM19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHNF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHNF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHNV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHNV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fQUJNMF9IR19SRUFEWV9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fQUJNMF9IR19SRUFEWV9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fQUJNMF9MU19SRUFEWV9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fQUJNMF9MU19SRUFEWV9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fQUJNMF9CTF9VUERBVEVfSU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fQUJNMF9CTF9VUERBVEVfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjdfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU44X1BPV0VSX1VQX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjEwX1BPV0VSX1VQX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xMV9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjEzX1BPV0VSX1VQX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xNF9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjZfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU43X1BPV0VSX0RPV05fSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjlfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xMF9QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjEyX1BPV0VSX0RPV05fSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xNF9QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjE1X1BPV0VSX0RPV05fSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0NPTlRJTlVFX19EQ0NHX0RNQ1VfSU5UX1ZTWU5DX0NOVF9PVEcxX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0RDQ0dfRE1DVV9JTlRfVlNZTkNfQ05UX09URzJfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHM19UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0NPTlRJTlVFX19EQ0NHX0RNQ1VfSU5UX1ZTWU5DX0NOVF9PVEc0X1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0RDQ0dfRE1DVV9JTlRfVlNZTkNfQ05UX09URzVfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fQUJNMF9IR19SRUFEWV9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLX0NPTlRJTlVFX19BQk0wX0xTX1JFQURZX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfQ09OVElOVUVfX0FCTTBfQkxfVVBEQVRFX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlON19QT1dFUl9VUF9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlON19QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMV9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMl9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHM19UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHNF9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHNV9UT19VQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fQUJNMF9IR19SRUFEWV9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fQUJNMF9MU19SRUFEWV9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS19DT05USU5VRV9fQUJNMF9CTF9VUERBVEVfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjdfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU44X1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgIDB4MworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjEwX1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAweDQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xMV9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgMHg1CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgIDB4NgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjEzX1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAweDcKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xNF9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgIDB4OQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjZfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAweGEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU43X1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgMHhiCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgIDB4YworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjlfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAweGQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xMF9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgMHhlCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgIDB4ZgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjEyX1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAweDEwCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgIDB4MTEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFX19EQ1BHX0lIQ19ET01BSU4xNF9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgMHgxMgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0RDUEdfSUhDX0RPTUFJTjE1X1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAweDEzCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFX19EQ0NHX0RNQ1VfSU5UX1ZTWU5DX0NOVF9PVEcxX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgMHgxNQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0RDQ0dfRE1DVV9JTlRfVlNZTkNfQ05UX09URzJfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAweDE2CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHM19YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFX19EQ0NHX0RNQ1VfSU5UX1ZTWU5DX0NOVF9PVEc0X1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgMHgxOAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0RDQ0dfRE1DVV9JTlRfVlNZTkNfQ05UX09URzVfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAweDE5CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fQUJNMF9IR19SRUFEWV9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlRJTlVFX19BQk0wX0xTX1JFQURZX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVElOVUVfX0FCTTBfQkxfVVBEQVRFX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlON19QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlONl9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlON19QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMV9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHMl9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHM19YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHNF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fRENDR19ETUNVX0lOVF9WU1lOQ19DTlRfT1RHNV9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fQUJNMF9IR19SRUFEWV9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fQUJNMF9MU19SRUFEWV9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05USU5VRV9fQUJNMF9CTF9VUERBVEVfSU5UX1hJUlFfSVJRX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RNQ1VfSU5UX0NOVF9DT05USU5VRQorI2RlZmluZSBETUNVX0lOVF9DTlRfQ09OVElOVUVfX0RNQ1VfQUJNMF9IR19SRUFEWV9JTlRfQ05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9JTlRfQ05UX0NPTlRJTlVFX19ETUNVX0FCTTBfTFNfUkVBRFlfSU5UX0NOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfSU5UX0NOVF9DT05USU5VRV9fRE1DVV9BQk0wX0JMX1VQREFURV9JTlRfQ05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVV9JTlRfQ05UX0NPTlRJTlVFX19ETUNVX0FCTTBfSEdfUkVBRFlfSU5UX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRE1DVV9JTlRfQ05UX0NPTlRJTlVFX19ETUNVX0FCTTBfTFNfUkVBRFlfSU5UX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRE1DVV9JTlRfQ05UX0NPTlRJTlVFX19ETUNVX0FCTTBfQkxfVVBEQVRFX0lOVF9DTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05UMl9fRENQR19JSENfRE9NQUlOMTZfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVDJfX0RDUEdfSUhDX0RPTUFJTjE3X1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05UMl9fRENQR19JSENfRE9NQUlOMTlfUE9XRVJfVVBfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVDJfX0RDUEdfSUhDX0RPTUFJTjIwX1BPV0VSX1VQX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgMHg1CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05UMl9fRENQR19JSENfRE9NQUlOMTZfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgIDB4NgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVDJfX0RDUEdfSUhDX0RPTUFJTjE3X1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAweDcKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05UMl9fRENQR19JSENfRE9NQUlOMTlfUE9XRVJfRE9XTl9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgIDB4OQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVDJfX0RDUEdfSUhDX0RPTUFJTjIwX1BPV0VSX0RPV05fSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAweGEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgMHhiCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05UMl9fRENJT19EUENTX1RYQV9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ0lPX0RQQ1NfVFhCX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVDJfX0RDSU9fRFBDU19UWENfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05UMl9fRENJT19EUENTX1RYRF9JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ0lPX0RQQ1NfVFhFX0lOVF9YSVJRX0lSUV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19YSVJRX0lSUV9TRUxfQ09OVDJfX0RDSU9fRFBDU19UWEZfSU5UX1hJUlFfSVJRX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX1hJUlFfSVJRX1NFTF9DT05UMl9fRENJT19EUENTX1RYR19JTlRfWElSUV9JUlFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9VUF9JTlRfWElSUV9JUlFfU0VMX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9ET1dOX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ0lPX0RQQ1NfVFhBX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ0lPX0RQQ1NfVFhCX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ0lPX0RQQ1NfVFhDX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ0lPX0RQQ1NfVFhEX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ0lPX0RQQ1NfVFhFX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ0lPX0RQQ1NfVFhGX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfWElSUV9JUlFfU0VMX0NPTlQyX19EQ0lPX0RQQ1NfVFhHX0lOVF9YSVJRX0lSUV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDUEdfSUhDX0RPTUFJTjE2X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENQR19JSENfRE9NQUlOMTdfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDUEdfSUhDX0RPTUFJTjE3X1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENQR19JSENfRE9NQUlOMThfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDUEdfSUhDX0RPTUFJTjE5X1BPV0VSX1VQX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9VUF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENQR19JSENfRE9NQUlOMjBfUE9XRVJfVVBfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDUEdfSUhDX0RPTUFJTjIwX1BPV0VSX1VQX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENQR19JSENfRE9NQUlOMjFfUE9XRVJfVVBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDUEdfSUhDX0RPTUFJTjE2X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENQR19JSENfRE9NQUlOMTdfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDUEdfSUhDX0RPTUFJTjE3X1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENQR19JSENfRE9NQUlOMThfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDUEdfSUhDX0RPTUFJTjE5X1BPV0VSX0RPV05fSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENQR19JSENfRE9NQUlOMjBfUE9XRVJfRE9XTl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDUEdfSUhDX0RPTUFJTjIwX1BPV0VSX0RPV05fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENQR19JSENfRE9NQUlOMjFfUE9XRVJfRE9XTl9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDSU9fRFBDU19UWEFfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENJT19EUENTX1RYQV9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhCX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDSU9fRFBDU19UWEJfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENJT19EUENTX1RYQ19JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhDX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDSU9fRFBDU19UWERfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENJT19EUENTX1RYRF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhFX0lOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDSU9fRFBDU19UWEVfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENJT19EUENTX1RYRl9JTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhGX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfU1RBVFVTXzJfX0RDSU9fRFBDU19UWEdfSU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9TVEFUVVNfMl9fRENJT19EUENTX1RYR19JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9VUF9JTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9VUF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9ET1dOX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9ET1dOX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhBX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhBX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhCX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhCX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhDX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhDX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhEX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhEX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhFX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhFX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhGX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhGX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhHX0lOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1NUQVRVU18yX19EQ0lPX0RQQ1NfVFhHX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL0RNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzJfX0RDUEdfSUhDX0RPTUFJTjE2X1BPV0VSX1VQX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18yX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9VUF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMThfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzJfX0RDUEdfSUhDX0RPTUFJTjE5X1BPV0VSX1VQX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18yX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9VUF9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMjFfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzJfX0RDUEdfSUhDX0RPTUFJTjE2X1BPV0VSX0RPV05fSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18yX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMThfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzJfX0RDUEdfSUhDX0RPTUFJTjE5X1BPV0VSX0RPV05fSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18yX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9ET1dOX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMjFfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzJfX0RDSU9fRFBDU19UWEFfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENJT19EUENTX1RYQl9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18yX19EQ0lPX0RQQ1NfVFhDX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzJfX0RDSU9fRFBDU19UWERfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENJT19EUENTX1RYRV9JTlRfVE9fVUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRE1DVV9JTlRFUlJVUFRfVE9fVUNfRU5fTUFTS18yX19EQ0lPX0RQQ1NfVFhGX0lOVF9UT19VQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBETUNVX0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLXzJfX0RDSU9fRFBDU19UWEdfSU5UX1RPX1VDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMTZfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMTdfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMThfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMTlfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMjBfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMjFfUE9XRVJfVVBfSU5UX1RPX1VDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMTZfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMTdfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMThfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMTlfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMjBfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENQR19JSENfRE9NQUlOMjFfUE9XRVJfRE9XTl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENJT19EUENTX1RYQV9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENJT19EUENTX1RYQl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENJT19EUENTX1RYQ19JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENJT19EUENTX1RYRF9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENJT19EUENTX1RYRV9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENJT19EUENTX1RYRl9JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0tfMl9fRENJT19EUENTX1RYR19JTlRfVE9fVUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZG11X2loY19kaXNwZGVjCisvL0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURQorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMV9WX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZfVVBEQVRFX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDJfVl9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX1ZfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENF9WX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZfVVBEQVRFX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDVfVl9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENl9WX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QxX1ZfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QyX1ZfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX1ZfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q0X1ZfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q1X1ZfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q2X1ZfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisvL0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WU1RBUlRVUAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVlNUQVJUVVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMV9WU1RBUlRVUF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZTVEFSVFVQX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDJfVlNUQVJUVVBfX1NISUZUICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WU1RBUlRVUF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX1ZTVEFSVFVQX19TSElGVCAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVlNUQVJUVVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENF9WU1RBUlRVUF9fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZTVEFSVFVQX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDVfVlNUQVJUVVBfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVlNUQVJUVVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENl9WU1RBUlRVUF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WU1RBUlRVUF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QxX1ZTVEFSVFVQX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WU1RBUlRVUF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QyX1ZTVEFSVFVQX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WU1RBUlRVUF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX1ZTVEFSVFVQX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WU1RBUlRVUF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q0X1ZTVEFSVFVQX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WU1RBUlRVUF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q1X1ZTVEFSVFVQX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WU1RBUlRVUF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q2X1ZTVEFSVFVQX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisvL0RDX0dQVV9USU1FUl9SRUFECisjZGVmaW5lIERDX0dQVV9USU1FUl9SRUFEX19EQ19HUFVfVElNRVJfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9fRENfR1BVX1RJTUVSX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19HUFVfVElNRVJfUkVBRF9DTlRMCisjZGVmaW5lIERDX0dQVV9USU1FUl9SRUFEX0NOVExfX0RDX0dQVV9USU1FUl9SRUFEX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9DTlRMX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDFfVlNZTkNfTk9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1JFQURfQ05UTF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QyX1ZTWU5DX05PTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDX0dQVV9USU1FUl9SRUFEX0NOVExfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EM19WU1lOQ19OT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9DTlRMX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDRfVlNZTkNfTk9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX0dQVV9USU1FUl9SRUFEX0NOVExfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENV9WU1lOQ19OT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1JFQURfQ05UTF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q2X1ZTWU5DX05PTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9DTlRMX19EQ19HUFVfVElNRVJfUkVBRF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9DTlRMX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDFfVlNZTkNfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9DTlRMX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDJfVlNZTkNfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9DTlRMX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDNfVlNZTkNfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFDMDAwTAorI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9DTlRMX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDRfVlNZTkNfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9DTlRMX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDVfVlNZTkNfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBEQ19HUFVfVElNRVJfUkVBRF9DTlRMX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDZfVlNZTkNfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX19PUFRDMV9EQVRBX1VOREVSRkxPV19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfU05BUFNIT1RfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfX09URzFfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX19PVEcxX0lIQ19GT1JDRV9DT1VOVF9OT1dfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfVFJJR0FfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfX09URzFfSUhDX1RSSUdCX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX19PVEcxX0lIQ19WU1lOQ19OT01fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfX0RJR0FfRFBfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX19ESUdBX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfX0RDX0hQRDFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRENfSFBEMV9SWF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX19BVVgxX1NXX0RPTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfX0FVWDFfTFNfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fREFDQV9BVVRPREVURUNUX0dFTkVSSVRFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX19SQkJNSUZfSUhDX1RJTUVPVVRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfX0RDX0kyQ19TV19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRE1DVV9VQ19JTlRFUk5BTF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX19ETUNVX1NDUF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfX0FCTTFfSEdfUkVBRFlfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fQUJNMV9MU19SRUFEWV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX19BQk0xX0JMX1VQREFURV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1BUQzFfREFUQV9VTkRFUkZMT1dfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfU05BUFNIT1RfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfRk9SQ0VfQ09VTlRfTk9XX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfVFJJR0FfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfVFJJR0JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfVlNZTkNfTk9NX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fT1RHMV9JSENfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRElHQV9EUF9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRElHQV9EUF9WSURfU1RSRUFNX0RJU0FCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRENfSFBEMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRENfSFBEMV9SWF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fQVVYMV9TV19ET05FX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fQVVYMV9MU19ET05FX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fREFDQV9BVVRPREVURUNUX0dFTkVSSVRFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fUkJCTUlGX0lIQ19USU1FT1VUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRENfSTJDX1NXX0RPTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRE1DVV9VQ19JTlRFUk5BTF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRE1DVV9TQ1BfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fQUJNMV9IR19SRUFEWV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fQUJNMV9MU19SRUFEWV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fQUJNMV9CTF9VUERBVEVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09QVEMyX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19PVEcyX0lIQ19TTkFQU0hPVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fT1RHMl9JSENfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzJfSUhDX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19PVEcyX0lIQ19UUklHQV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fT1RHMl9JSENfVFJJR0JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzJfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19PVEcyX0lIQ19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRElHQl9EUF9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RJR0JfRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fRENfSFBEMl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ19IUEQyX1JYX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0FVWDJfU1dfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fQVVYMl9MU19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19PVEcxX0lIQ19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzFfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fT1RHMV9JSENfRVhUX1RJTUlOR19TWU5DX1NJR05BTF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19PVEcxX0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzFfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRV9fT1RHMV9JSENfVkVSVElDQUxfSU5URVJSVVBUMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09QVEMyX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzJfSUhDX1NOQVBTSE9UX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzJfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzJfSUhDX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzJfSUhDX1RSSUdBX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzJfSUhDX1RSSUdCX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzJfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzJfSUhDX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUkVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RJR0JfRFBfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RJR0JfRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDX0hQRDJfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RDX0hQRDJfUlhfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0FVWDJfU1dfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0FVWDJfTFNfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzFfSUhDX0VYVF9USU1JTkdfU1lOQ19MT1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzFfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzFfSUhDX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzFfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzFfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX09URzFfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUVfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09QVEMzX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyX19PVEczX0lIQ19TTkFQU0hPVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMl9fT1RHM19JSENfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzNfSUhDX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyX19PVEczX0lIQ19UUklHQV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMl9fT1RHM19JSENfVFJJR0JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzNfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyX19PVEczX0lIQ19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMl9fRElHQ19EUF9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0RJR0NfRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMl9fRENfSFBEM19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyX19EQ19IUEQzX1JYX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0FVWDNfU1dfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMl9fQVVYM19MU19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyX19PVEcyX0lIQ19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzJfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMl9fT1RHMl9JSENfRVhUX1RJTUlOR19TWU5DX1NJR05BTF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyX19PVEcyX0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzJfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMl9fT1RHMl9JSENfVkVSVElDQUxfSU5URVJSVVBUMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyX19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09QVEMzX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzNfSUhDX1NOQVBTSE9UX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzNfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzNfSUhDX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzNfSUhDX1RSSUdBX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzNfSUhDX1RSSUdCX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzNfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzNfSUhDX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUkVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0RJR0NfRFBfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0RJR0NfRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0RDX0hQRDNfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0RDX0hQRDNfUlhfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0FVWDNfU1dfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0FVWDNfTFNfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzJfSUhDX0VYVF9USU1JTkdfU1lOQ19MT1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzJfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzJfSUhDX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzJfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzJfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX09URzJfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFM19fT1BUQzRfREFUQV9VTkRFUkZMT1dfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX1NOQVBTSE9UX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX19PVEc0X0lIQ19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFM19fT1RHNF9JSENfRk9SQ0VfQ09VTlRfTk9XX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX1RSSUdBX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX19PVEc0X0lIQ19UUklHQl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFM19fT1RHNF9JSENfVlNZTkNfTk9NX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUkVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX19ESUdEX0RQX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFM19fRElHRF9EUF9WSURfU1RSRUFNX0RJU0FCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX19EQ19IUEQ0X0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX0RDX0hQRDRfUlhfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFM19fQVVYNF9TV19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX19BVVg0X0xTX0RPTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX1dCU0NMMF9IT1NUX0NPTkZMSUNUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFM19fV0JTQ0wwX0RBVEFfT1ZFUkZMT1dfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX19PVEczX0lIQ19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzNfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFM19fT1RHM19JSENfRVhUX1RJTUlOR19TWU5DX1NJR05BTF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX19PVEczX0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzNfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFM19fT1RHM19JSENfVkVSVElDQUxfSU5URVJSVVBUMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUzX19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09QVEM0X0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX1NOQVBTSE9UX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX1RSSUdBX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX1RSSUdCX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzRfSUhDX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUkVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX0RJR0RfRFBfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX0RJR0RfRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX0RDX0hQRDRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX0RDX0hQRDRfUlhfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX0FVWDRfU1dfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX0FVWDRfTFNfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX1dCU0NMMF9IT1NUX0NPTkZMSUNUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX1dCU0NMMF9EQVRBX09WRVJGTE9XX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzNfSUhDX0VYVF9USU1JTkdfU1lOQ19MT1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzNfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzNfSUhDX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzNfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzNfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX09URzNfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fT1BUQzVfREFUQV9VTkRFUkZMT1dfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09QVEM2X0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU0X19PVEc1X0lIQ19TTkFQU0hPVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fT1RHNV9JSENfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU0X19PVEc1X0lIQ19UUklHQV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fT1RHNV9JSENfVFJJR0JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU0X19PVEc1X0lIQ19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fRElHRV9EUF9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX0RJR0VfRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fRENfSFBENV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU0X19EQ19IUEQ1X1JYX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX0FVWDVfU1dfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fQVVYNV9MU19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU0X19PVEc0X0lIQ19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzRfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fT1RHNF9JSENfRVhUX1RJTUlOR19TWU5DX1NJR05BTF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU0X19PVEc1X0lIQ19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fT1RHNV9JSENfRVhUX1RJTUlOR19TWU5DX1NJR05BTF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU0X19PVEc0X0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzRfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fT1RHNF9JSENfVkVSVElDQUxfSU5URVJSVVBUMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU0X19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09QVEM1X0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09QVEM2X0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX1NOQVBTSE9UX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX1RSSUdBX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX1RSSUdCX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUkVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX0RJR0VfRFBfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX0RJR0VfRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX0RDX0hQRDVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX0RDX0hQRDVfUlhfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX0FVWDVfU1dfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX0FVWDVfTFNfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzRfSUhDX0VYVF9USU1JTkdfU1lOQ19MT1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzRfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzRfSUhDX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX0VYVF9USU1JTkdfU1lOQ19MT1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzVfSUhDX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzRfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzRfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX09URzRfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTRfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNV9fT1RHNl9JSENfU05BUFNIT1RfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfX09URzZfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19GT1JDRV9DT1VOVF9OT1dfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNV9fT1RHNl9JSENfVFJJR0FfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfX09URzZfSUhDX1RSSUdCX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19WU1lOQ19OT01fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNV9fT1RHNl9JSENfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfX0RJR0ZfRFBfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19ESUdGX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfX0RDX0hQRDZfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNV9fRENfSFBENl9SWF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19BVVg2X1NXX0RPTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfX0FVWDZfTFNfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNV9fT1RHNl9JSENfRVhUX1RJTUlOR19TWU5DX0xPU1NfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19FWFRfVElNSU5HX1NZTkNfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfX09URzZfSUhDX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNV9fT1RHNV9JSENfVkVSVElDQUxfSU5URVJSVVBUMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc1X0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfX09URzVfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNV9fT1RHNl9JSENfVkVSVElDQUxfSU5URVJSVVBUMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTVfX09URzZfSUhDX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNV9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19TTkFQU0hPVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19GT1JDRV9DT1VOVF9OT1dfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19UUklHQV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19UUklHQl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19WU1lOQ19OT01fSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJFRF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19ESUdGX0RQX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19ESUdGX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19EQ19IUEQ2X0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19EQ19IUEQ2X1JYX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19BVVg2X1NXX0RPTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19BVVg2X0xTX0RPTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19FWFRfVElNSU5HX1NZTkNfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19FWFRfVElNSU5HX1NZTkNfU0lHTkFMX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc1X0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc1X0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc1X0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19PVEc2X0lIQ19WRVJUSUNBTF9JTlRFUlJVUFQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTZfX01DSUZfQ1dCMF9JSElGX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19NQ0lGX0NXQjFfSUhJRl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNl9fTUNJRl9EV0IwX0lISUZfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTZfX01DSUZfRFdCMV9JSElGX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19NQ0lGX0RXQjJfSUhJRl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNl9fQVVYMV9HVENfU1lOQ19MT0NLX0RPTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVgxX0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTZfX0FVWDJfR1RDX1NZTkNfTE9DS19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNl9fQVVYMl9HVENfU1lOQ19FUlJPUl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVgzX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTZfX0FVWDNfR1RDX1NZTkNfRVJST1JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNl9fQVVYNF9HVENfU1lOQ19MT0NLX0RPTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVg0X0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTZfX0FVWDVfR1RDX1NZTkNfTE9DS19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNl9fQVVYNV9HVENfU1lOQ19FUlJPUl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVg2X0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTZfX0FVWDZfR1RDX1NZTkNfRVJST1JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNl9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19NQ0lGX0NXQjBfSUhJRl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19NQ0lGX0NXQjFfSUhJRl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19NQ0lGX0RXQjBfSUhJRl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19NQ0lGX0RXQjFfSUhJRl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19NQ0lGX0RXQjJfSUhJRl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVgxX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVgxX0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVgyX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVgyX0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVgzX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVgzX0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVg0X0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVg0X0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVg1X0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVg1X0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVg2X0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19BVVg2X0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU2X19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTdfX0RDQ0dfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU3X19EQ0NHX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fRE1VX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTdfX0RNVV9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU3X19ESU9fUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTdfX0RJT19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fV0IwX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU3X19XQjBfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTdfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fRENDR19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fRENDR19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fRE1VX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fRE1VX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fRElPX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fRElPX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fV0IwX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fV0IwX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFN19fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU4X19EUFAwX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9fRFBQMF9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRThfX0RQUDFfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU4X19EUFAxX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9fRFBQMl9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU4X19EUFAyX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRThfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9fRFBQMF9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9fRFBQMF9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9fRFBQMV9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9fRFBQMV9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9fRFBQMl9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9fRFBQMl9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOF9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19EUFAzX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOV9fRFBQM19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTlfX0RQUDRfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19EUFA0X1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOV9fRFBQNV9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19EUFA1X1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTlfX1dCU0NMMV9IT1NUX0NPTkZMSUNUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOV9fV0JTQ0wxX0RBVEFfT1ZFUkZMT1dfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19XQlNDTDJfSE9TVF9DT05GTElDVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTlfX1dCU0NMMl9EQVRBX09WRVJGTE9XX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFOV9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19EUFAzX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19EUFAzX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19EUFA0X1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19EUFA0X1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19EUFA1X1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19EUFA1X1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19XQlNDTDFfSE9TVF9DT05GTElDVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19XQlNDTDFfREFUQV9PVkVSRkxPV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19XQlNDTDJfSE9TVF9DT05GTElDVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19XQlNDTDJfREFUQV9PVkVSRkxPV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU5X19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMF9fRENDR19JSENfVlNZTkNfT1RHMF9MQVRDSF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfSUhDX1ZTWU5DX09URzFfTEFUQ0hfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEwX19EQ0NHX0lIQ19WU1lOQ19PVEcyX0xBVENIX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMF9fRENDR19JSENfVlNZTkNfT1RHM19MQVRDSF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfSUhDX1ZTWU5DX09URzRfTEFUQ0hfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEwX19EQ0NHX0lIQ19WU1lOQ19PVEc1X0xBVENIX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMF9fRENDR19QRVJGTU9OMl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfUEVSRk1PTjJfQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEwX19PVEcxX0lIQ19SQU5HRV9USU1JTkdfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX09URzJfSUhDX1JBTkdFX1RJTUlOR19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMF9fT1RHM19JSENfUkFOR0VfVElNSU5HX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEwX19PVEc0X0lIQ19SQU5HRV9USU1JTkdfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX09URzVfSUhDX1JBTkdFX1RJTUlOR19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMF9fT1RHNl9JSENfUkFOR0VfVElNSU5HX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEwX19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfSUhDX1ZTWU5DX09URzBfTEFUQ0hfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfSUhDX1ZTWU5DX09URzFfTEFUQ0hfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfSUhDX1ZTWU5DX09URzJfTEFUQ0hfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfSUhDX1ZTWU5DX09URzNfTEFUQ0hfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfSUhDX1ZTWU5DX09URzRfTEFUQ0hfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfSUhDX1ZTWU5DX09URzVfTEFUQ0hfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfUEVSRk1PTjJfQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RDQ0dfUEVSRk1PTjJfQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX09URzFfSUhDX1JBTkdFX1RJTUlOR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX09URzJfSUhDX1JBTkdFX1RJTUlOR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX09URzNfSUhDX1JBTkdFX1RJTUlOR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX09URzRfSUhDX1JBTkdFX1RJTUlOR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX09URzVfSUhDX1JBTkdFX1RJTUlOR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX09URzZfSUhDX1JBTkdFX1RJTUlOR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTBfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTFfX1dCMV9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTExX19XQjFfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fV0IyX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTFfX1dCMl9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTExX19NUENDMF9TVEFMTF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzFfU1RBTExfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTExX19NUENDMl9TVEFMTF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTFfX01QQ0MzX1NUQUxMX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzRfU1RBTExfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTExX19NUENDNV9TVEFMTF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTFfX01QQ0M2X1NUQUxMX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzdfU1RBTExfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTExX19WR0FfSUhDX1ZHQV9DUlRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTFfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fV0IxX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fV0IxX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fV0IyX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fV0IyX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzBfU1RBTExfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzFfU1RBTExfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzJfU1RBTExfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzNfU1RBTExfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzRfU1RBTExfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzVfU1RBTExfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzZfU1RBTExfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fTVBDQzdfU1RBTExfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fVkdBX0lIQ19WR0FfQ1JUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMV9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMl9fTVBDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfX01QQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEyX19EUFA2X1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMl9fRFBQNl9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfX0RQUDdfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxMl9fRFBQN19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEyX19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfX01QQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfX01QQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfX0RQUDZfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfX0RQUDZfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfX0RQUDdfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfX0RQUDdfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTJfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQkJVQl9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEzX19IVUJCVUJfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxM19fSFVCQlVCX0lIQ19WTV9GQVVMVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQkJVQl9JSENfVElNRU9VVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEzX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX1VQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxM19fRENQR19JSENfRE9NQUlOMV9QT1dFUl9VUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjJfUE9XRVJfVVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEzX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX1VQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxM19fRENQR19JSENfRE9NQUlONF9QT1dFUl9VUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfVVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEzX19EQ1BHX0lIQ19ET01BSU42X1BPV0VSX1VQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxM19fRENQR19JSENfRE9NQUlON19QT1dFUl9VUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEzX19IVUJQMF9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQlAwX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxM19fSFVCUDBfSUhDX1ZCTEFOS19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEzX19IVUJQMF9JSENfVkxJTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQlAwX0lIQ19WTElORTJfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxM19fSFVCUDBfSUhDX1RJTUVPVVRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTEzX19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQkJVQl9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQkJVQl9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQkJVQl9JSENfVk1fRkFVTFRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQkJVQl9JSENfVElNRU9VVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjBfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjFfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjJfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjNfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjRfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjZfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RDUEdfSUhDX0RPTUFJTjdfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQlAwX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQlAwX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQlAwX0lIQ19WQkxBTktfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQlAwX0lIQ19WTElORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQlAwX0lIQ19WTElORTJfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0hVQlAwX0lIQ19USU1FT1VUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTNfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAxX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE0X19IVUJQMV9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNF9fSFVCUDJfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAyX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE0X19IVUJQM19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAzX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNF9fSFVCUDFfSUhDX1ZCTEFOS19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE0X19IVUJQMV9JSENfVkxJTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAxX0lIQ19WTElORTJfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNF9fSFVCUDFfSUhDX1RJTUVPVVRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE0X19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAxX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAxX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAyX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAyX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAzX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAzX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAxX0lIQ19WQkxBTktfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAxX0lIQ19WTElORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAxX0lIQ19WTElORTJfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0hVQlAxX0lIQ19USU1FT1VUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTRfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlA0X1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE1X19IVUJQNF9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNV9fSFVCUDVfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlA1X1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE1X19IVUJQNl9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlA2X1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNV9fSFVCUDJfSUhDX1ZCTEFOS19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE1X19IVUJQMl9JSENfVkxJTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlAyX0lIQ19WTElORTJfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNV9fSFVCUDJfSUhDX1RJTUVPVVRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE1X19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlA0X1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlA0X1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlA1X1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlA1X1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlA2X1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlA2X1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlAyX0lIQ19WQkxBTktfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlAyX0lIQ19WTElORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlAyX0lIQ19WTElORTJfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0hVQlAyX0lIQ19USU1FT1VUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTVfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTZfX0hVQlA3X1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQN19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNl9fSFVCUDNfSUhDX1ZCTEFOS19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTZfX0hVQlAzX0lIQ19WTElORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQM19JSENfVkxJTkUyX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNl9fSFVCUDRfSUhDX1ZCTEFOS19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTZfX0hVQlA0X0lIQ19WTElORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNF9JSENfVkxJTkUyX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNl9fSFVCUDVfSUhDX1ZCTEFOS19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTZfX0hVQlA1X0lIQ19WTElORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNl9fSFVCUDVfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNl9JSENfVkJMQU5LX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTZfX0hVQlA2X0lIQ19WTElORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNl9fSFVCUDZfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQN19JSENfVkJMQU5LX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTZfX0hVQlA3X0lIQ19WTElORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNl9fSFVCUDdfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQM19JSENfVElNRU9VVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTZfX0hVQlA0X0lIQ19USU1FT1VUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNl9fSFVCUDVfSUhDX1RJTUVPVVRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNl9JSENfVElNRU9VVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTZfX0hVQlA3X0lIQ19USU1FT1VUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxNl9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQN19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQN19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQM19JSENfVkJMQU5LX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQM19JSENfVkxJTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQM19JSENfVkxJTkUyX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNF9JSENfVkJMQU5LX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNF9JSENfVkxJTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNF9JSENfVkxJTkUyX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNV9JSENfVkJMQU5LX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNV9JSENfVkxJTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNV9JSENfVkxJTkUyX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNl9JSENfVkJMQU5LX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNl9JSENfVkxJTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNl9JSENfVkxJTkUyX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQN19JSENfVkJMQU5LX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQN19JSENfVkxJTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQN19JSENfVkxJTkUyX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQM19JSENfVElNRU9VVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNF9JSENfVElNRU9VVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNV9JSENfVElNRU9VVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQNl9JSENfVElNRU9VVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19IVUJQN19JSENfVElNRU9VVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE2X19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3X19PUFBfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fT1BQX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTdfX0hVQlAwX0lIQ19GTElQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3X19IVUJQMV9JSENfRkxJUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDJfSUhDX0ZMSVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTdfX0hVQlAzX0lIQ19GTElQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3X19IVUJQNF9JSENfRkxJUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDVfSUhDX0ZMSVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTdfX0hVQlA2X0lIQ19GTElQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3X19IVUJQN19JSENfRkxJUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fT1BUQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTdfX09QVENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3X19NTUhVQkJVQl9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTdfX01NSFVCQlVCX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDBfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3X19IVUJQMV9JSENfRkxJUF9BV0FZX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTdfX0hVQlAyX0lIQ19GTElQX0FXQVlfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDNfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3X19IVUJQNF9JSENfRkxJUF9BV0FZX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTdfX0hVQlA1X0lIQ19GTElQX0FXQVlfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDZfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE3X19IVUJQN19JSENfRkxJUF9BV0FZX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTdfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fT1BQX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fT1BQX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDBfSUhDX0ZMSVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDFfSUhDX0ZMSVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDJfSUhDX0ZMSVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDNfSUhDX0ZMSVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDRfSUhDX0ZMSVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDVfSUhDX0ZMSVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDZfSUhDX0ZMSVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDdfSUhDX0ZMSVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fT1BUQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fT1BUQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fTU1IVUJCVUJfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fTU1IVUJCVUJfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDBfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDFfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDJfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDNfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDRfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDVfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDZfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fSFVCUDdfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxN19fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fQVpfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMThfX0FaX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE4X19EQ0lPX0lIQ19SWFNFTlNFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYQV9JSENfRVJST1JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMThfX0RDSU9fRFBDU19UWEJfSUhDX0VSUk9SX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE4X19EQ0lPX0RQQ1NfVFhDX0lIQ19FUlJPUl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYRF9JSENfRVJST1JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMThfX0RDSU9fRFBDU19UWEVfSUhDX0VSUk9SX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE4X19EQ0lPX0RQQ1NfVFhGX0lIQ19FUlJPUl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYR19JSENfRVJST1JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMThfX0RDSU9fRFBDU19SWEFfSUhDX0VSUk9SX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlOMF9QT1dFUl9ET1dOX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE4X19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX0RPV05fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMThfX0RDUEdfSUhDX0RPTUFJTjJfUE9XRVJfRE9XTl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlOM19QT1dFUl9ET1dOX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE4X19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX0RPV05fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMThfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfRE9XTl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlONl9QT1dFUl9ET1dOX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE4X19EQ1BHX0lIQ19ET01BSU43X1BPV0VSX0RPV05fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMThfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fQVpfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fQVpfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19JSENfUlhTRU5TRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYQV9JSENfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYQl9JSENfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYQ19JSENfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYRF9JSENfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYRV9JSENfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYRl9JSENfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1RYR19JSENfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENJT19EUENTX1JYQV9JSENfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlOMF9QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlOMV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlOMl9QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlOM19QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlONF9QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlONV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlONl9QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRENQR19JSENfRE9NQUlON19QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOF9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fQVpfSUhDX0VORFBPSU5UMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfX0FaX0lIQ19FTkRQT0lOVDFfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQyX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fQVpfSUhDX0VORFBPSU5UM19BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfX0FaX0lIQ19FTkRQT0lOVDRfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ1X0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fQVpfSUhDX0VORFBPSU5UNl9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfX0FaX0lIQ19FTkRQT0lOVDdfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQwX0FVRElPX0VOQUJMRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fQVpfSUhDX0VORFBPSU5UMV9BVURJT19FTkFCTEVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfX0FaX0lIQ19FTkRQT0lOVDJfQVVESU9fRU5BQkxFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQzX0FVRElPX0VOQUJMRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fQVpfSUhDX0VORFBPSU5UNF9BVURJT19FTkFCTEVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfX0FaX0lIQ19FTkRQT0lOVDVfQVVESU9fRU5BQkxFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ2X0FVRElPX0VOQUJMRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fQVpfSUhDX0VORFBPSU5UN19BVURJT19FTkFCTEVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfX0FaX0lIQ19FTkRQT0lOVDBfQVVESU9fRElTQUJMRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fQVpfSUhDX0VORFBPSU5UMV9BVURJT19ESVNBQkxFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQyX0FVRElPX0RJU0FCTEVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfX0FaX0lIQ19FTkRQT0lOVDNfQVVESU9fRElTQUJMRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fQVpfSUhDX0VORFBPSU5UNF9BVURJT19ESVNBQkxFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ1X0FVRElPX0RJU0FCTEVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfX0FaX0lIQ19FTkRQT0lOVDZfQVVESU9fRElTQUJMRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fQVpfSUhDX0VORFBPSU5UN19BVURJT19ESVNBQkxFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19ESUdHX0RQX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMTlfX0RJR0dfRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUxOV9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQxX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQyX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQzX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ0X0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ1X0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ2X0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ3X0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQwX0FVRElPX0VOQUJMRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQxX0FVRElPX0VOQUJMRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQyX0FVRElPX0VOQUJMRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQzX0FVRElPX0VOQUJMRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ0X0FVRElPX0VOQUJMRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ1X0FVRElPX0VOQUJMRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ2X0FVRElPX0VOQUJMRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ3X0FVRElPX0VOQUJMRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQwX0FVRElPX0RJU0FCTEVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQxX0FVRElPX0RJU0FCTEVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQyX0FVRElPX0RJU0FCTEVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQzX0FVRElPX0RJU0FCTEVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ0X0FVRElPX0RJU0FCTEVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ1X0FVRElPX0RJU0FCTEVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ2X0FVRElPX0RJU0FCTEVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19BWl9JSENfRU5EUE9JTlQ3X0FVRElPX0RJU0FCTEVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19ESUdHX0RQX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19ESUdHX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTE5X19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEcxX0lIQ19DUFVfU1NfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfQ1BVX1NTX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX09URzNfSUhDX0NQVV9TU19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEc0X0lIQ19DUFVfU1NfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfQ1BVX1NTX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX09URzZfSUhDX0NQVV9TU19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEcxX0lIQ19WX1VQREFURV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfVl9VUERBVEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX09URzNfSUhDX1ZfVVBEQVRFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEc0X0lIQ19WX1VQREFURV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfVl9VUERBVEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX09URzZfSUhDX1ZfVVBEQVRFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEcxX0lIQ19HU0xfVlNZTkNfR0FQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX09URzNfSUhDX0dTTF9WU1lOQ19HQVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEc0X0lIQ19HU0xfVlNZTkNfR0FQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEc2X0lIQ19HU0xfVlNZTkNfR0FQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX09URzFfSUhDX1ZTVEFSVFVQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfVlNUQVJUVVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEczX0lIQ19WU1RBUlRVUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX09URzRfSUhDX1ZTVEFSVFVQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfVlNUQVJUVVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEc2X0lIQ19WU1RBUlRVUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX09URzFfSUhDX1ZSRUFEWV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfVlJFQURZX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEczX0lIQ19WUkVBRFlfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX09URzRfSUhDX1ZSRUFEWV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfVlJFQURZX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIwX19PVEc2X0lIQ19WUkVBRFlfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjBfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMV9JSENfQ1BVX1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfQ1BVX1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHM19JSENfQ1BVX1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNF9JSENfQ1BVX1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfQ1BVX1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNl9JSENfQ1BVX1NTX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMV9JSENfVl9VUERBVEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfVl9VUERBVEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHM19JSENfVl9VUERBVEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNF9JSENfVl9VUERBVEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfVl9VUERBVEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNl9JSENfVl9VUERBVEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMV9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHM19JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNF9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNl9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMV9JSENfVlNUQVJUVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfVlNUQVJUVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHM19JSENfVlNUQVJUVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNF9JSENfVlNUQVJUVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfVlNUQVJUVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNl9JSENfVlNUQVJUVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMV9JSENfVlJFQURZX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHMl9JSENfVlJFQURZX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHM19JSENfVlJFQURZX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNF9JSENfVlJFQURZX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNV9JSENfVlJFQURZX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fT1RHNl9JSENfVlJFQURZX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMF9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQzFfSFdfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjFfX0RPVVRfSUhDX0kyQ19EREMyX0hXX0RPTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIxX19ET1VUX0lIQ19JMkNfRERDM19IV19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQzRfSFdfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjFfX0RPVVRfSUhDX0kyQ19EREM1X0hXX0RPTkVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIxX19ET1VUX0lIQ19JMkNfRERDNl9IV19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQ1ZHQV9IV19ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjFfX0RDX0kyQ19EREMxX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIxX19EQ19JMkNfRERDMl9SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRENfSTJDX0REQzNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjFfX0RDX0kyQ19EREM0X1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIxX19EQ19JMkNfRERDNV9SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRENfSTJDX0REQzZfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjFfX0RDX0kyQ19WR0FfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIxX19HRU5FUklDX0kyQ19ERENfUkVBRF9SRVVFU1RfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRElHSF9EUF9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIxX19ESUdIX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjFfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQzFfSFdfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQzJfSFdfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQzNfSFdfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQzRfSFdfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQzVfSFdfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQzZfSFdfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRE9VVF9JSENfSTJDX0REQ1ZHQV9IV19ET05FX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRENfSTJDX0REQzFfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRENfSTJDX0REQzJfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRENfSTJDX0REQzNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRENfSTJDX0REQzRfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRENfSTJDX0REQzVfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRENfSTJDX0REQzZfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRENfSTJDX1ZHQV9SRUFEX1JFUVVFU1RfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fR0VORVJJQ19JMkNfRERDX1JFQURfUkVVRVNUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRElHSF9EUF9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRElHSF9EUF9WSURfU1RSRUFNX0RJU0FCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMV9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9VUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfX0RDUEdfSUhDX0RPTUFJTjlfUE9XRVJfVVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIyX19EQ1BHX0lIQ19ET01BSU4xMF9QT1dFUl9VUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfVVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfX0RDUEdfSUhDX0RPTUFJTjEyX1BPV0VSX1VQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIyX19EQ1BHX0lIQ19ET01BSU4xM19QT1dFUl9VUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfVVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfX0RDUEdfSUhDX0RPTUFJTjE1X1BPV0VSX1VQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIyX19EQ1BHX0lIQ19ET01BSU44X1BPV0VSX0RPV05fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfX0RDUEdfSUhDX0RPTUFJTjEwX1BPV0VSX0RPV05fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIyX19EQ1BHX0lIQ19ET01BSU4xMV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfRE9XTl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfX0RDUEdfSUhDX0RPTUFJTjEzX1BPV0VSX0RPV05fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIyX19EQ1BHX0lIQ19ET01BSU4xNF9QT1dFUl9ET1dOX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfRE9XTl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfX0FCTTBfSEdfUkVBRFlfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fQUJNMF9MU19SRUFEWV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIyX19BQk0wX0JMX1VQREFURV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfX09URzBfSUhDX1ZfVVBEQVRFX05PX0xPQ0tfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fT1RHMV9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIyX19PVEcyX0lIQ19WX1VQREFURV9OT19MT0NLX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfX09URzNfSUhDX1ZfVVBEQVRFX05PX0xPQ0tfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fT1RHNF9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIyX19PVEc1X0lIQ19WX1VQREFURV9OT19MT0NLX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjJfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9VUF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9VUF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfVVBfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOOV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTBfUE9XRVJfRE9XTl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTJfUE9XRVJfRE9XTl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTNfUE9XRVJfRE9XTl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfRE9XTl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRENQR19JSENfRE9NQUlOMTVfUE9XRVJfRE9XTl9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fQUJNMF9IR19SRUFEWV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fQUJNMF9MU19SRUFEWV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fQUJNMF9CTF9VUERBVEVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fT1RHMF9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fT1RHMV9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fT1RHMl9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fT1RHM19JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fT1RHNF9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fT1RHNV9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyMl9fRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVlJFQURZCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WUkVBRFlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMV9WUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVlJFQURZX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDJfVlJFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZSRUFEWV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX1ZSRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WUkVBRFlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENF9WUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVlJFQURZX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDVfVlJFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WUkVBRFlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENl9WUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZSRUFEWV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QxX1ZSRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZSRUFEWV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QyX1ZSRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZSRUFEWV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX1ZSRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZSRUFEWV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q0X1ZSRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZSRUFEWV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q1X1ZSRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZSRUFEWV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q2X1ZSRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKy8vRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVAKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMV9GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDJfRkxJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRkxJUF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX0ZMSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENF9GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDVfRkxJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENl9GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRkxJUF9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q3X0ZMSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDhfRkxJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMV9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMl9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EM19GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENF9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENV9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENl9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EN19GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwMDAwMEwKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EOF9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZfVVBEQVRFX05PX0xPQ0sKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZfVVBEQVRFX05PX0xPQ0tfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMV9WX1VQREFURV9OT19MT0NLX19TSElGVCAgMHgwCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9OT19MT0NLX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDJfVl9VUERBVEVfTk9fTE9DS19fU0hJRlQgIDB4NAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfTk9fTE9DS19fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX1ZfVVBEQVRFX05PX0xPQ0tfX1NISUZUICAweDgKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZfVVBEQVRFX05PX0xPQ0tfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENF9WX1VQREFURV9OT19MT0NLX19TSElGVCAgMHhjCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9WX1VQREFURV9OT19MT0NLX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDVfVl9VUERBVEVfTk9fTE9DS19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX1ZfVVBEQVRFX05PX0xPQ0tfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENl9WX1VQREFURV9OT19MT0NLX19TSElGVCAgMHgxNAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfTk9fTE9DS19fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QxX1ZfVVBEQVRFX05PX0xPQ0tfTUFTSyAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfTk9fTE9DS19fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QyX1ZfVVBEQVRFX05PX0xPQ0tfTUFTSyAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfTk9fTE9DS19fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX1ZfVVBEQVRFX05PX0xPQ0tfTUFTSyAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfTk9fTE9DS19fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q0X1ZfVVBEQVRFX05PX0xPQ0tfTUFTSyAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfTk9fTE9DS19fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q1X1ZfVVBEQVRFX05PX0xPQ0tfTUFTSyAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fVl9VUERBVEVfTk9fTE9DS19fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q2X1ZfVVBEQVRFX05PX0xPQ0tfTUFTSyAgICAweDAwNzAwMDAwTAorLy9EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRkxJUF9BV0FZCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMV9GTElQX0FXQVlfX1NISUZUICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRkxJUF9BV0FZX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDJfRkxJUF9BV0FZX19TSElGVCAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfQVdBWV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0QzX0ZMSVBfQVdBWV9fU0hJRlQgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENF9GTElQX0FXQVlfX1NISUZUICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRkxJUF9BV0FZX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDVfRkxJUF9BV0FZX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENl9GTElQX0FXQVlfX1NISUZUICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0ZMSVBfQVdBWV9fRENfR1BVX1RJTUVSX1NUQVJUX1BPU0lUSU9OX0Q3X0ZMSVBfQVdBWV9fU0hJRlQgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRkxJUF9BV0FZX19EQ19HUFVfVElNRVJfU1RBUlRfUE9TSVRJT05fRDhfRkxJUF9BV0FZX19TSElGVCAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMV9GTElQX0FXQVlfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EMl9GTElQX0FXQVlfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EM19GTElQX0FXQVlfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENF9GTElQX0FXQVlfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENV9GTElQX0FXQVlfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9ENl9GTElQX0FXQVlfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EN19GTElQX0FXQVlfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisjZGVmaW5lIERDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9GTElQX0FXQVlfX0RDX0dQVV9USU1FUl9TVEFSVF9QT1NJVElPTl9EOF9GTElQX0FXQVlfTUFTSyAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9VUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyM19fRENQR19JSENfRE9NQUlOMTdfUE9XRVJfVVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE4X1BPV0VSX1VQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9VUF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyM19fRENQR19JSENfRE9NQUlOMjBfUE9XRVJfVVBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjIxX1BPV0VSX1VQX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9ET1dOX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyM19fRENQR19JSENfRE9NQUlOMTdfUE9XRVJfRE9XTl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE4X1BPV0VSX0RPV05fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyM19fRENQR19JSENfRE9NQUlOMjBfUE9XRVJfRE9XTl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjIxX1BPV0VSX0RPV05fSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19EU0MwX0lIQ19JTlBVVF9VTkRFUkZMT1dfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzFfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyM19fRFNDMl9JSENfSU5QVVRfVU5ERVJGTE9XX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19EU0MzX0lIQ19JTlBVVF9VTkRFUkZMT1dfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzRfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyM19fRFNDNV9JSENfSU5QVVRfVU5ERVJGTE9XX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19EU0MwX0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzFfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyM19fRFNDMl9JSENfQ09SRV9FUlJPUl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19EU0MzX0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzRfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyM19fRFNDNV9JSENfQ09SRV9FUlJPUl9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIzX19ESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE2X1BPV0VSX1VQX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE3X1BPV0VSX1VQX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE4X1BPV0VSX1VQX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE5X1BPV0VSX1VQX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjIwX1BPV0VSX1VQX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjIxX1BPV0VSX1VQX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE2X1BPV0VSX0RPV05fSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE3X1BPV0VSX0RPV05fSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE4X1BPV0VSX0RPV05fSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjE5X1BPV0VSX0RPV05fSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjIwX1BPV0VSX0RPV05fSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RDUEdfSUhDX0RPTUFJTjIxX1BPV0VSX0RPV05fSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzBfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzFfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzJfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzNfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzRfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzVfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzBfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzFfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzJfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzNfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzRfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RTQzVfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjNfX0RJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjQKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzBfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X19EU0MwX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyNF9fRFNDMV9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzFfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X19EU0MyX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyNF9fRFNDMl9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzNfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X19EU0MzX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyNF9fRFNDNF9QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzRfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X19EU0M1X1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyNF9fRFNDNV9QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX1RJTUVSX0hJR0hfUFJJT1JJVFlfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X19ETUNVQl9USU1FUl9MT1dfUFJJT1JJVFlfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyNF9fRE1DVUJfSU5CT1hfSElHSF9QUklPUklUWV9SRUFEWV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0lOQk9YX0hJR0hfUFJJT1JJVFlfRE9ORV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X19ETUNVQl9JTkJPWF9MT1dfUFJJT1JJVFlfUkVBRFlfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0lOQk9YX0xPV19QUklPUklUWV9ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyNF9fRE1DVUJfT1VUQk9YX0hJR0hfUFJJT1JJVFlfUkVBRFlfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X19ETUNVQl9PVVRCT1hfSElHSF9QUklPUklUWV9ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX09VVEJPWF9MT1dfUFJJT1JJVFlfUkVBRFlfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyNF9fRE1DVUJfT1VUQk9YX0xPV19QUklPUklUWV9ET05FX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X19ETUNVQl9HRU5FUkFMX0RBVEFJTjBfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0dFTkVSQUxfREFUQUlOMV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyNF9fRE1DVUJfR0VORVJBTF9EQVRBT1VUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTI0X19ETUNVQl9VTkRFRklORURfQUREUkVTU19GQVVMVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzBfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzBfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzFfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzFfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzJfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzJfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzNfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzNfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzRfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzRfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzVfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RTQzVfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX1RJTUVSX0hJR0hfUFJJT1JJVFlfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX1RJTUVSX0xPV19QUklPUklUWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0lOQk9YX0hJR0hfUFJJT1JJVFlfUkVBRFlfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0lOQk9YX0hJR0hfUFJJT1JJVFlfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0lOQk9YX0xPV19QUklPUklUWV9SRUFEWV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0lOQk9YX0xPV19QUklPUklUWV9ET05FX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX09VVEJPWF9ISUdIX1BSSU9SSVRZX1JFQURZX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX09VVEJPWF9ISUdIX1BSSU9SSVRZX0RPTkVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX09VVEJPWF9MT1dfUFJJT1JJVFlfUkVBRFlfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX09VVEJPWF9MT1dfUFJJT1JJVFlfRE9ORV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0dFTkVSQUxfREFUQUlOMF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0dFTkVSQUxfREFUQUlOMV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX0dFTkVSQUxfREFUQU9VVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMjRfX0RNQ1VCX1VOREVGSU5FRF9BRERSRVNTX0ZBVUxUX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vRENDR19JTlRFUlJVUFRfREVTVAorI2RlZmluZSBEQ0NHX0lOVEVSUlVQVF9ERVNUX19EQ0NHX0lIQ19WU1lOQ19PVEcwX0xBVENIX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfVlNZTkNfT1RHMV9MQVRDSF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDQ0dfSU5URVJSVVBUX0RFU1RfX0RDQ0dfSUhDX1ZTWU5DX09URzJfTEFUQ0hfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0NHX0lOVEVSUlVQVF9ERVNUX19EQ0NHX0lIQ19WU1lOQ19PVEczX0xBVENIX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfVlNZTkNfT1RHNF9MQVRDSF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDQ0dfSU5URVJSVVBUX0RFU1RfX0RDQ0dfSUhDX1ZTWU5DX09URzVfTEFUQ0hfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ0NHX0lOVEVSUlVQVF9ERVNUX19EQ0NHX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDQ0dfSU5URVJSVVBUX0RFU1RfX0RDQ0dfSUhDX1BFUkZNT04yX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ0NHX0lOVEVSUlVQVF9ERVNUX19EQ0NHX0lIQ19QRVJGTU9OMl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfVlNZTkNfT1RHMF9MQVRDSF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfVlNZTkNfT1RHMV9MQVRDSF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfVlNZTkNfT1RHMl9MQVRDSF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfVlNZTkNfT1RHM19MQVRDSF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfVlNZTkNfT1RHNF9MQVRDSF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfVlNZTkNfT1RHNV9MQVRDSF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfUEVSRk1PTjJfQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENDR19JTlRFUlJVUFRfREVTVF9fRENDR19JSENfUEVSRk1PTjJfQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vRE1VX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIERNVV9JTlRFUlJVUFRfREVTVF9fRE1DVUJfSUhDX1RJTUVSMF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19USU1FUjFfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1VX0lOVEVSUlVQVF9ERVNUX19ETUNVQl9JSENfR1BJTlQwX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNVV9JTlRFUlJVUFRfREVTVF9fRE1DVUJfSUhDX0dQSU5UMV9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19JTkJPWDBfUkVBRFlfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1VX0lOVEVSUlVQVF9ERVNUX19ETUNVQl9JSENfSU5CT1gwX0RPTkVfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERNVV9JTlRFUlJVUFRfREVTVF9fRE1DVUJfSUhDX0lOQk9YMV9SRUFEWV9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19JTkJPWDFfRE9ORV9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRE1VX0lOVEVSUlVQVF9ERVNUX19ETUNVQl9JSENfT1VUQk9YMF9SRUFEWV9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNVV9JTlRFUlJVUFRfREVTVF9fRE1DVUJfSUhDX09VVEJPWDBfRE9ORV9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19PVVRCT1gxX1JFQURZX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRE1VX0lOVEVSUlVQVF9ERVNUX19ETUNVQl9JSENfT1VUQk9YMV9ET05FX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERNVV9JTlRFUlJVUFRfREVTVF9fRE1VX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNVV9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRE1VX0lOVEVSUlVQVF9ERVNUX19ETUNVX0lIQ19BQk0wX0hHX1JFQURZX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERNVV9JTlRFUlJVUFRfREVTVF9fRE1DVV9JSENfQUJNMF9MU19SRUFEWV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX0FCTTBfQkxfVVBEQVRFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERNVV9JTlRFUlJVUFRfREVTVF9fRE1DVV9JSENfQUJNMV9IR19SRUFEWV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRE1VX0lOVEVSUlVQVF9ERVNUX19ETUNVX0lIQ19BQk0xX0xTX1JFQURZX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX0FCTTFfQkxfVVBEQVRFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERNVV9JTlRFUlJVUFRfREVTVF9fRE1DVUJfSUhDX0dQSU5UMl9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRE1VX0lOVEVSUlVQVF9ERVNUX19ETUNVQl9JSENfVU5ERUZJTkVEX0FERFJFU1NfRkFVTFRfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX1JCQk1JRl9JSENfVElNRU9VVF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERNVV9JTlRFUlJVUFRfREVTVF9fRE1DVV9JSENfRE1DVV9JTlRFUk5BTF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRE1VX0lOVEVSUlVQVF9ERVNUX19ETUNVX0lIQ19TQ1BfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19USU1FUjBfSU5UX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19USU1FUjFfSU5UX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19HUElOVDBfSU5UX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19HUElOVDFfSU5UX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19JTkJPWDBfUkVBRFlfSU5UX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19JTkJPWDBfRE9ORV9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19JTkJPWDFfUkVBRFlfSU5UX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19JTkJPWDFfRE9ORV9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19PVVRCT1gwX1JFQURZX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19PVVRCT1gwX0RPTkVfSU5UX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19PVVRCT1gxX1JFQURZX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19PVVRCT1gxX0RPTkVfSU5UX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNVV9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNVV9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX0FCTTBfSEdfUkVBRFlfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX0FCTTBfTFNfUkVBRFlfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX0FCTTBfQkxfVVBEQVRFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX0FCTTFfSEdfUkVBRFlfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX0FCTTFfTFNfUkVBRFlfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX0FCTTFfQkxfVVBEQVRFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19HUElOVDJfSU5UX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VCX0lIQ19VTkRFRklORURfQUREUkVTU19GQVVMVF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX1JCQk1JRl9JSENfVElNRU9VVF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX0RNQ1VfSU5URVJOQUxfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBETVVfSU5URVJSVVBUX0RFU1RfX0RNQ1VfSUhDX1NDUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9EQ1BHX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjBfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU4xX1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlOMl9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjNfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU40X1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlONV9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjZfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU43X1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjlfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU4xMF9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjEyX1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU4xM19QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjE1X1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU4wX1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjFfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlOMl9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU4zX1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjRfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlONV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU42X1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjdfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlOOF9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU45X1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjEwX1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlOMTFfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU4xMl9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjEzX1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVF9fRENQR19JSENfRE9NQUlOMTRfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUX19EQ1BHX0lIQ19ET01BSU4xNV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjBfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjFfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjJfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjNfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjRfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjZfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjdfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjhfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjlfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjEwX1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjExX1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjEyX1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjEzX1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjE0X1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjE1X1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjBfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjFfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjJfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjNfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjRfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjVfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjZfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjdfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjhfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjlfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjEwX1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjExX1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjEyX1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjEzX1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjE0X1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1RfX0RDUEdfSUhDX0RPTUFJTjE1X1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDUEdfSU5URVJSVVBUX0RFU1QyCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUMl9fRENQR19JSENfRE9NQUlOMTdfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVDJfX0RDUEdfSUhDX0RPTUFJTjE4X1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUMl9fRENQR19JSENfRE9NQUlOMjBfUE9XRVJfVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVDJfX0RDUEdfSUhDX0RPTUFJTjIxX1BPV0VSX1VQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUMl9fRENQR19JSENfRE9NQUlOMTdfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVDJfX0RDUEdfSUhDX0RPTUFJTjE4X1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ1BHX0lOVEVSUlVQVF9ERVNUMl9fRENQR19JSENfRE9NQUlOMjBfUE9XRVJfRE9XTl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENQR19JTlRFUlJVUFRfREVTVDJfX0RDUEdfSUhDX0RPTUFJTjIxX1BPV0VSX0RPV05fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9VUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xNl9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xN19QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xOF9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4xOV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4yMF9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDUEdfSU5URVJSVVBUX0RFU1QyX19EQ1BHX0lIQ19ET01BSU4yMV9QT1dFUl9ET1dOX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisvL01NSFVCQlVCX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIE1NSFVCQlVCX0lOVEVSUlVQVF9ERVNUX19WR0FfSUhDX1ZHQV9DUlRfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUhVQkJVQl9JTlRFUlJVUFRfREVTVF9fQlVGTUdSX0NXQjBfSUhJRl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX0JVRk1HUl9DV0IxX0lISUZfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NSFVCQlVCX0lOVEVSUlVQVF9ERVNUX19CVUZNR1JfRFdCMF9JSElGX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUhVQkJVQl9JTlRFUlJVUFRfREVTVF9fQlVGTUdSX0RXQjFfSUhJRl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX0JVRk1HUl9EV0IyX0lISUZfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NSFVCQlVCX0lOVEVSUlVQVF9ERVNUX19NTUhVQkJVQl9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUhVQkJVQl9JTlRFUlJVUFRfREVTVF9fTU1IVUJCVUJfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX1ZHQV9JSENfVkdBX0NSVF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX0JVRk1HUl9DV0IwX0lISUZfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX0JVRk1HUl9DV0IxX0lISUZfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX0JVRk1HUl9EV0IwX0lISUZfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX0JVRk1HUl9EV0IxX0lISUZfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX0JVRk1HUl9EV0IyX0lISUZfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX01NSFVCQlVCX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1IVUJCVUJfSU5URVJSVVBUX0RFU1RfX01NSFVCQlVCX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vV0JfSU5URVJSVVBUX0RFU1QKKyNkZWZpbmUgV0JfSU5URVJSVVBUX0RFU1RfX1dCU0NMMF9JSElGX0hPU1RfQ09ORkxJQ1RfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCX0lOVEVSUlVQVF9ERVNUX19XQlNDTDBfSUhJRl9EQVRBX09WRVJGTE9XX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0JTQ0wxX0lISUZfSE9TVF9DT05GTElDVF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgV0JfSU5URVJSVVBUX0RFU1RfX1dCU0NMMV9JSElGX0RBVEFfT1ZFUkZMT1dfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFdCX0lOVEVSUlVQVF9ERVNUX19XQlNDTDJfSUhJRl9IT1NUX0NPTkZMSUNUX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0JTQ0wyX0lISUZfREFUQV9PVkVSRkxPV19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgV0JfSU5URVJSVVBUX0RFU1RfX1dCMF9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFdCX0lOVEVSUlVQVF9ERVNUX19XQjBfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0IxX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgV0JfSU5URVJSVVBUX0RFU1RfX1dCMV9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFdCX0lOVEVSUlVQVF9ERVNUX19XQjJfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgV0JfSU5URVJSVVBUX0RFU1RfX1dCMl9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0JTQ0wwX0lISUZfSE9TVF9DT05GTElDVF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0JTQ0wwX0lISUZfREFUQV9PVkVSRkxPV19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0JTQ0wxX0lISUZfSE9TVF9DT05GTElDVF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0JTQ0wxX0lISUZfREFUQV9PVkVSRkxPV19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0JTQ0wyX0lISUZfSE9TVF9DT05GTElDVF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0JTQ0wyX0lISUZfREFUQV9PVkVSRkxPV19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0IwX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0IwX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0IxX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0IxX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0IyX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBXQl9JTlRFUlJVUFRfREVTVF9fV0IyX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9EQ0hVQl9JTlRFUlJVUFRfREVTVAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDBfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlAwX0lIQ19WTElORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQMF9JSENfVkxJTkUyX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDBfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlAxX0lIQ19WQkxBTktfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQMV9JSENfVkxJTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDFfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlAxX0lIQ19USU1FT1VUX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQMl9JSENfVkJMQU5LX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDJfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlAyX0lIQ19WTElORTJfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQMl9JSENfVElNRU9VVF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDNfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlAzX0lIQ19WTElORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQM19JSENfVkxJTkUyX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDNfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlA0X0lIQ19WQkxBTktfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDRfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQNF9JSENfVkxJTkUyX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlA0X0lIQ19USU1FT1VUX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDVfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQNV9JSENfVkxJTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlA1X0lIQ19WTElORTJfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDVfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQNl9JSENfVkJMQU5LX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlA2X0lIQ19WTElORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDZfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQNl9JSENfVElNRU9VVF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlA3X0lIQ19WQkxBTktfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDdfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUX19IVUJQN19JSENfVkxJTkUyX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1RfX0hVQlA3X0lIQ19USU1FT1VUX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDBfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDBfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDBfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDBfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDFfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDFfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDFfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDFfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDJfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDJfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDJfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDJfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDNfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDNfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDNfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDNfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDRfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDRfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDRfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDRfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDVfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDVfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDVfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDVfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDZfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDZfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDZfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDZfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDdfSUhDX1ZCTEFOS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDdfSUhDX1ZMSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDdfSUhDX1ZMSU5FMl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVF9fSFVCUDdfSUhDX1RJTUVPVVRfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVAorI2RlZmluZSBEQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fSFVCQlVCX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENIVUJfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0hVQkJVQl9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQMF9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fSFVCUDBfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENIVUJfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0hVQlAxX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fSFVCUDFfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQMl9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENIVUJfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0hVQlAyX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fSFVCUDNfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQM19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRENIVUJfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0hVQlA0X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fSFVCUDRfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQNV9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENIVUJfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0hVQlA1X0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fSFVCUDZfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQNl9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRENIVUJfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0hVQlA3X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ0hVQl9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fSFVCUDdfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJCVUJfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJCVUJfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQMF9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQMF9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQMV9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQMV9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQMl9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQMl9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQM19JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQM19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQNF9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQNF9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQNV9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQNV9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQNl9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQNl9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQN19JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDSFVCX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19IVUJQN19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RDSFVCX0lOVEVSUlVQVF9ERVNUMgorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVDJfX0hVQlAwX0lIQ19GTElQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1QyX19IVUJQMF9JSENfRkxJUF9BV0FZX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDFfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVDJfX0hVQlAxX0lIQ19GTElQX0FXQVlfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1QyX19IVUJQMl9JSENfRkxJUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDJfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVDJfX0hVQlAzX0lIQ19GTElQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1QyX19IVUJQM19JSENfRkxJUF9BV0FZX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDRfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVDJfX0hVQlA0X0lIQ19GTElQX0FXQVlfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1QyX19IVUJQNV9JSENfRkxJUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDVfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVDJfX0hVQlA2X0lIQ19GTElQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1QyX19IVUJQNl9JSENfRkxJUF9BV0FZX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDdfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVDJfX0hVQlA3X0lIQ19GTElQX0FXQVlfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENIVUJfSU5URVJSVVBUX0RFU1QyX19IVUJCVUJfSUhDX1ZNX0ZBVUxUX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ0hVQl9JTlRFUlJVUFRfREVTVDJfX0hVQkJVQl9JSENfVElNRU9VVF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDBfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDBfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDFfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDFfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDJfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDJfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDNfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDNfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDRfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDRfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDVfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDVfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDZfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDZfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDdfSUhDX0ZMSVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCUDdfSUhDX0ZMSVBfQVdBWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCQlVCX0lIQ19WTV9GQVVMVF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDSFVCX0lOVEVSUlVQVF9ERVNUMl9fSFVCQlVCX0lIQ19USU1FT1VUX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisvL0RQUF9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVAorI2RlZmluZSBEUFBfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0RQUDBfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAwX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQUF9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fRFBQMV9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUFBfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0RQUDFfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAyX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0RQUDJfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQUF9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fRFBQM19JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAzX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUFBfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0RQUDRfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQUF9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fRFBQNF9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA1X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUFBfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0RQUDVfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQUF9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fRFBQNl9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA2X0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUFBfUEVSRkNPVU5URVJfSU5URVJSVVBUX0RFU1RfX0RQUDdfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERQUF9QRVJGQ09VTlRFUl9JTlRFUlJVUFRfREVTVF9fRFBQN19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAwX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAwX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAxX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAxX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAyX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAyX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAzX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFAzX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA0X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA0X0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA1X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA1X0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA2X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA2X0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA3X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFBQX1BFUkZDT1VOVEVSX0lOVEVSUlVQVF9ERVNUX19EUFA3X0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKy8vTVBDX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIE1QQ19JTlRFUlJVUFRfREVTVF9fTVBDQzBfU1RBTExfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0MxX1NUQUxMX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDX0lOVEVSUlVQVF9ERVNUX19NUENDMl9TVEFMTF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ19JTlRFUlJVUFRfREVTVF9fTVBDQzNfU1RBTExfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0M0X1NUQUxMX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDX0lOVEVSUlVQVF9ERVNUX19NUENDNV9TVEFMTF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1QQ19JTlRFUlJVUFRfREVTVF9fTVBDQzZfU1RBTExfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0M3X1NUQUxMX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTVBDX0lOVEVSUlVQVF9ERVNUX19NUENfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ19JTlRFUlJVUFRfREVTVF9fTVBDX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0MwX1NUQUxMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0MxX1NUQUxMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0MyX1NUQUxMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0MzX1NUQUxMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0M0X1NUQUxMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0M1X1NUQUxMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0M2X1NUQUxMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ0M3X1NUQUxMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ19JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNUENfSU5URVJSVVBUX0RFU1RfX01QQ19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9PUFBfSU5URVJSVVBUX0RFU1QKKyNkZWZpbmUgT1BQX0lOVEVSUlVQVF9ERVNUX19PUFBfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9QUF9JTlRFUlJVUFRfREVTVF9fT1BQX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPUFBfSU5URVJSVVBUX0RFU1RfX09QUF9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPUFBfSU5URVJSVVBUX0RFU1RfX09QUF9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9PUFRDX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIE9QVENfSU5URVJSVVBUX0RFU1RfX09QVENfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPUFRDX0lOVEVSUlVQVF9ERVNUX19PUFRDX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQzBfSUhDX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPUFRDX0lOVEVSUlVQVF9ERVNUX19PUFRDMV9JSENfREFUQV9VTkRFUkZMT1dfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE9QVENfSU5URVJSVVBUX0RFU1RfX09QVEMyX0lIQ19EQVRBX1VOREVSRkxPV19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQzNfSUhDX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBPUFRDX0lOVEVSUlVQVF9ERVNUX19PUFRDNF9JSENfREFUQV9VTkRFUkZMT1dfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9QVENfSU5URVJSVVBUX0RFU1RfX09QVEM1X0lIQ19EQVRBX1VOREVSRkxPV19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQ19JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQ19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQzBfSUhDX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQzFfSUhDX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQzJfSUhDX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQzNfSUhDX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQzRfSUhDX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgT1BUQ19JTlRFUlJVUFRfREVTVF9fT1BUQzVfSUhDX0RBVEFfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vT1RHMF9JTlRFUlJVUFRfREVTVAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19DUFVfU1NfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9JTlRFUlJVUFRfREVTVF9fT1RHMF9JSENfUkFOR0VfVElNSU5HX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzBfSU5URVJSVVBUX0RFU1RfX09URzBfSUhDX1ZfVVBEQVRFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19TTkFQU0hPVF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHMF9JTlRFUlJVUFRfREVTVF9fT1RHMF9JSENfT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzBfSU5URVJSVVBUX0RFU1RfX09URzBfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfVFJJR0FfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT1RHMF9JTlRFUlJVUFRfREVTVF9fT1RHMF9JSENfT1RHX1RSSUdCX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE9URzBfSU5URVJSVVBUX0RFU1RfX09URzBfSUhDX0dTTF9WU1lOQ19HQVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHMF9JTlRFUlJVUFRfREVTVF9fT1RHMF9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzBfSU5URVJSVVBUX0RFU1RfX09URzBfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX0xPU1NfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMF9JTlRFUlJVUFRfREVTVF9fT1RHMF9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzBfSU5URVJSVVBUX0RFU1RfX09URzBfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfU0lHTkFMX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJFRF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgT1RHMF9JTlRFUlJVUFRfREVTVF9fT1RHMF9JSENfVlNUQVJUVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19WUkVBRFlfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzBfSU5URVJSVVBUX0RFU1RfX09URzBfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHMF9JTlRFUlJVUFRfREVTVF9fT1RHMF9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19DUFVfU1NfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19SQU5HRV9USU1JTkdfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19WX1VQREFURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19TTkFQU0hPVF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfVFJJR0FfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfVFJJR0JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19HU0xfVlNZTkNfR0FQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX0xPU1NfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX1NJR05BTF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJFRF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19WU1RBUlRVUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19WUkVBRFlfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19WU1lOQ19OT01fSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBPVEcwX0lOVEVSUlVQVF9ERVNUX19PVEcwX0lIQ19WX1VQREFURV9OT19MT0NLX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9PVEcxX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX0NQVV9TU19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX0lOVEVSUlVQVF9ERVNUX19PVEcxX0lIQ19SQU5HRV9USU1JTkdfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMV9JTlRFUlJVUFRfREVTVF9fT1RHMV9JSENfVl9VUERBVEVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1NOQVBTSE9UX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEcxX0lOVEVSUlVQVF9ERVNUX19PVEcxX0lIQ19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMV9JTlRFUlJVUFRfREVTVF9fT1RHMV9JSENfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19UUklHQV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBPVEcxX0lOVEVSUlVQVF9ERVNUX19PVEcxX0lIQ19PVEdfVFJJR0JfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgT1RHMV9JTlRFUlJVUFRfREVTVF9fT1RHMV9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEcxX0lOVEVSUlVQVF9ERVNUX19PVEcxX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHMV9JTlRFUlJVUFRfREVTVF9fT1RHMV9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcxX0lOVEVSUlVQVF9ERVNUX19PVEcxX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHMV9JTlRFUlJVUFRfREVTVF9fT1RHMV9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUkVEX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBPVEcxX0lOVEVSUlVQVF9ERVNUX19PVEcxX0lIQ19WU1RBUlRVUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1ZSRUFEWV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHMV9JTlRFUlJVUFRfREVTVF9fT1RHMV9JSENfVlNZTkNfTk9NX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEcxX0lOVEVSUlVQVF9ERVNUX19PVEcxX0lIQ19WX1VQREFURV9OT19MT0NLX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX0NQVV9TU19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1JBTkdFX1RJTUlOR19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1ZfVVBEQVRFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1NOQVBTSE9UX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19GT1JDRV9DT1VOVF9OT1dfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19UUklHQV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19UUklHQl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX0dTTF9WU1lOQ19HQVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfU0lHTkFMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUkVEX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1ZTVEFSVFVQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1ZSRUFEWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE9URzFfSU5URVJSVVBUX0RFU1RfX09URzFfSUhDX1ZfVVBEQVRFX05PX0xPQ0tfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL09URzJfSU5URVJSVVBUX0RFU1QKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfQ1BVX1NTX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfSU5URVJSVVBUX0RFU1RfX09URzJfSUhDX1JBTkdFX1RJTUlOR19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcyX0lOVEVSUlVQVF9ERVNUX19PVEcyX0lIQ19WX1VQREFURV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfU05BUFNIT1RfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzJfSU5URVJSVVBUX0RFU1RfX09URzJfSUhDX09UR19GT1JDRV9DT1VOVF9OT1dfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX0lOVEVSUlVQVF9ERVNUX19PVEcyX0lIQ19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX1RSSUdBX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE9URzJfSU5URVJSVVBUX0RFU1RfX09URzJfSUhDX09UR19UUklHQl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBPVEcyX0lOVEVSUlVQVF9ERVNUX19PVEcyX0lIQ19HU0xfVlNZTkNfR0FQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzJfSU5URVJSVVBUX0RFU1RfX09URzJfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEcyX0lOVEVSUlVQVF9ERVNUX19PVEcyX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19MT1NTX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzJfSU5URVJSVVBUX0RFU1RfX09URzJfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEcyX0lOVEVSUlVQVF9ERVNUX19PVEcyX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX1NJR05BTF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSRURfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE9URzJfSU5URVJSVVBUX0RFU1RfX09URzJfSUhDX1ZTVEFSVFVQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfVlJFQURZX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEcyX0lOVEVSUlVQVF9ERVNUX19PVEcyX0lIQ19WU1lOQ19OT01fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzJfSU5URVJSVVBUX0RFU1RfX09URzJfSUhDX1ZfVVBEQVRFX05PX0xPQ0tfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfQ1BVX1NTX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfUkFOR0VfVElNSU5HX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfVl9VUERBVEVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfU05BUFNIT1RfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX1RSSUdBX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX1RSSUdCX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19MT1NTX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSRURfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfVlNUQVJUVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfVlJFQURZX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfVlNZTkNfTk9NX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgT1RHMl9JTlRFUlJVUFRfREVTVF9fT1RHMl9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vT1RHM19JTlRFUlJVUFRfREVTVAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19DUFVfU1NfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19JTlRFUlJVUFRfREVTVF9fT1RHM19JSENfUkFOR0VfVElNSU5HX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzNfSU5URVJSVVBUX0RFU1RfX09URzNfSUhDX1ZfVVBEQVRFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19TTkFQU0hPVF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHM19JTlRFUlJVUFRfREVTVF9fT1RHM19JSENfT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzNfSU5URVJSVVBUX0RFU1RfX09URzNfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfVFJJR0FfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT1RHM19JTlRFUlJVUFRfREVTVF9fT1RHM19JSENfT1RHX1RSSUdCX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE9URzNfSU5URVJSVVBUX0RFU1RfX09URzNfSUhDX0dTTF9WU1lOQ19HQVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHM19JTlRFUlJVUFRfREVTVF9fT1RHM19JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzNfSU5URVJSVVBUX0RFU1RfX09URzNfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX0xPU1NfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHM19JTlRFUlJVUFRfREVTVF9fT1RHM19JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzNfSU5URVJSVVBUX0RFU1RfX09URzNfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfU0lHTkFMX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJFRF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgT1RHM19JTlRFUlJVUFRfREVTVF9fT1RHM19JSENfVlNUQVJUVVBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19WUkVBRFlfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzNfSU5URVJSVVBUX0RFU1RfX09URzNfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHM19JTlRFUlJVUFRfREVTVF9fT1RHM19JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19DUFVfU1NfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19SQU5HRV9USU1JTkdfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19WX1VQREFURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19TTkFQU0hPVF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfVFJJR0FfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfVFJJR0JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19HU0xfVlNZTkNfR0FQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX0xPU1NfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX1NJR05BTF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJFRF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19WU1RBUlRVUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19WUkVBRFlfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19WU1lOQ19OT01fSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBPVEczX0lOVEVSUlVQVF9ERVNUX19PVEczX0lIQ19WX1VQREFURV9OT19MT0NLX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9PVEc0X0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX0NQVV9TU19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X0lOVEVSUlVQVF9ERVNUX19PVEc0X0lIQ19SQU5HRV9USU1JTkdfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHNF9JTlRFUlJVUFRfREVTVF9fT1RHNF9JSENfVl9VUERBVEVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1NOQVBTSE9UX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEc0X0lOVEVSUlVQVF9ERVNUX19PVEc0X0lIQ19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHNF9JTlRFUlJVUFRfREVTVF9fT1RHNF9JSENfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19UUklHQV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBPVEc0X0lOVEVSUlVQVF9ERVNUX19PVEc0X0lIQ19PVEdfVFJJR0JfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgT1RHNF9JTlRFUlJVUFRfREVTVF9fT1RHNF9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEc0X0lOVEVSUlVQVF9ERVNUX19PVEc0X0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHNF9JTlRFUlJVUFRfREVTVF9fT1RHNF9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc0X0lOVEVSUlVQVF9ERVNUX19PVEc0X0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHNF9JTlRFUlJVUFRfREVTVF9fT1RHNF9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUkVEX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBPVEc0X0lOVEVSUlVQVF9ERVNUX19PVEc0X0lIQ19WU1RBUlRVUF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1ZSRUFEWV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHNF9JTlRFUlJVUFRfREVTVF9fT1RHNF9JSENfVlNZTkNfTk9NX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEc0X0lOVEVSUlVQVF9ERVNUX19PVEc0X0lIQ19WX1VQREFURV9OT19MT0NLX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX0NQVV9TU19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1JBTkdFX1RJTUlOR19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1ZfVVBEQVRFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1NOQVBTSE9UX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19GT1JDRV9DT1VOVF9OT1dfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19UUklHQV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19UUklHQl9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX0dTTF9WU1lOQ19HQVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfTE9TU19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfU0lHTkFMX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUkVEX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1ZTVEFSVFVQX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1ZSRUFEWV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1ZTWU5DX05PTV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE9URzRfSU5URVJSVVBUX0RFU1RfX09URzRfSUhDX1ZfVVBEQVRFX05PX0xPQ0tfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL09URzVfSU5URVJSVVBUX0RFU1QKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfQ1BVX1NTX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfSU5URVJSVVBUX0RFU1RfX09URzVfSUhDX1JBTkdFX1RJTUlOR19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEc1X0lOVEVSUlVQVF9ERVNUX19PVEc1X0lIQ19WX1VQREFURV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfU05BUFNIT1RfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzVfSU5URVJSVVBUX0RFU1RfX09URzVfSUhDX09UR19GT1JDRV9DT1VOVF9OT1dfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc1X0lOVEVSUlVQVF9ERVNUX19PVEc1X0lIQ19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX1RSSUdBX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE9URzVfSU5URVJSVVBUX0RFU1RfX09URzVfSUhDX09UR19UUklHQl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBPVEc1X0lOVEVSUlVQVF9ERVNUX19PVEc1X0lIQ19HU0xfVlNZTkNfR0FQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzVfSU5URVJSVVBUX0RFU1RfX09URzVfSUhDX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEc1X0lOVEVSUlVQVF9ERVNUX19PVEc1X0lIQ19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19MT1NTX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzVfSU5URVJSVVBUX0RFU1RfX09URzVfSUhDX09UR19FWFRfVElNSU5HX1NZTkNfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEc1X0lOVEVSUlVQVF9ERVNUX19PVEc1X0lIQ19PVEdfRVhUX1RJTUlOR19TWU5DX1NJR05BTF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSRURfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE9URzVfSU5URVJSVVBUX0RFU1RfX09URzVfSUhDX1ZTVEFSVFVQX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfVlJFQURZX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEc1X0lOVEVSUlVQVF9ERVNUX19PVEc1X0lIQ19WU1lOQ19OT01fSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzVfSU5URVJSVVBUX0RFU1RfX09URzVfSUhDX1ZfVVBEQVRFX05PX0xPQ0tfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfQ1BVX1NTX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfUkFOR0VfVElNSU5HX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfVl9VUERBVEVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfU05BUFNIT1RfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX1RSSUdBX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX1RSSUdCX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfR1NMX1ZTWU5DX0dBUF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19MT1NTX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfT1RHX0VYVF9USU1JTkdfU1lOQ19TSUdOQUxfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSRURfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfVlNUQVJUVVBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfVlJFQURZX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfVlNZTkNfTk9NX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgT1RHNV9JTlRFUlJVUFRfREVTVF9fT1RHNV9JSENfVl9VUERBVEVfTk9fTE9DS19JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vRElHX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIERJR19JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfRElHQV9WSURfU1RSRUFNX0RJU0FCTEVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0JfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19ESUdDX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJR19JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfRElHRF9WSURfU1RSRUFNX0RJU0FCTEVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0VfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19ESUdGX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJR19JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfRElHR19WSURfU1RSRUFNX0RJU0FCTEVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0hfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19ESUdBX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJR19JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfRElHQl9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0NfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19ESUdEX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJR19JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfRElHRV9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0ZfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElHX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19ESUdHX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJR19JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfRElHSF9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0FfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0JfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0NfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0RfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0VfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0ZfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0dfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0hfVklEX1NUUkVBTV9ESVNBQkxFX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0FfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0JfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0NfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0RfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0VfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0ZfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0dfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESUdfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RJR0hfRkFTVF9UUkFJTklOR19DT01QTEVURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9JMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSTJDX0REQ19IUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0kyQ19EREMxX0hXX0RPTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEkyQ19ERENfSFBEX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19JMkNfRERDMl9IV19ET05FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX0REQzNfSFdfRE9ORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgSTJDX0REQ19IUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0kyQ19EREM0X0hXX0RPTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEkyQ19ERENfSFBEX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19JMkNfRERDNV9IV19ET05FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX0REQzZfSFdfRE9ORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgSTJDX0REQ19IUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0kyQ19ERENWR0FfSFdfRE9ORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEkyQ19ERENfSFBEX0lOVEVSUlVQVF9ERVNUX19EQ19JMkNfRERDMV9SRUFEX1JFUVVFU1RfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSTJDX0REQ19IUERfSU5URVJSVVBUX0RFU1RfX0RDX0kyQ19EREMyX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRENfSTJDX0REQzNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEkyQ19ERENfSFBEX0lOVEVSUlVQVF9ERVNUX19EQ19JMkNfRERDNF9SRUFEX1JFUVVFU1RfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgSTJDX0REQ19IUERfSU5URVJSVVBUX0RFU1RfX0RDX0kyQ19EREM1X1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRENfSTJDX0REQzZfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIEkyQ19ERENfSFBEX0lOVEVSUlVQVF9ERVNUX19EQ19JMkNfRERDVkdBX1JFQURfUkVRVUVTVF9JTlRFUlJQVVRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgSTJDX0REQ19IUERfSU5URVJSVVBUX0RFU1RfX0dFTkVSSUNfSTJDX0REQ19SRUFEX1JFUVVFU1RfSU5URVJSUFVUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX0REQzFfSFdfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX0REQzJfSFdfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX0REQzNfSFdfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX0REQzRfSFdfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX0REQzVfSFdfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX0REQzZfSFdfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSTJDX0REQ1ZHQV9IV19ET05FX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRENfSTJDX0REQzFfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRENfSTJDX0REQzJfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRENfSTJDX0REQzNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRENfSTJDX0REQzRfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRENfSTJDX0REQzVfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRENfSTJDX0REQzZfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fRENfSTJDX0REQ1ZHQV9SRUFEX1JFUVVFU1RfSU5URVJSUFVUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBJMkNfRERDX0hQRF9JTlRFUlJVUFRfREVTVF9fR0VORVJJQ19JMkNfRERDX1JFQURfUkVRVUVTVF9JTlRFUlJQVVRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9ESU9fSU5URVJSVVBUX0RFU1QKKyNkZWZpbmUgRElPX0lOVEVSUlVQVF9ERVNUX19ESU9fSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJT19JTlRFUlJVUFRfREVTVF9fRElPX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBESU9fSU5URVJSVVBUX0RFU1RfX0RJT19JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESU9fSU5URVJSVVBUX0RFU1RfX0RJT19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9EQ0lPX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIERDSU9fSU5URVJSVVBUX0RFU1RfX0RDSU9fRFBDU19UWEFfSUhDX0VSUk9SX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0lPX0lOVEVSUlVQVF9ERVNUX19EQ0lPX0RQQ1NfVFhCX0lIQ19FUlJPUl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1RYQ19JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDSU9fSU5URVJSVVBUX0RFU1RfX0RDSU9fRFBDU19UWERfSUhDX0VSUk9SX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ0lPX0lOVEVSUlVQVF9ERVNUX19EQ0lPX0RQQ1NfVFhFX0lIQ19FUlJPUl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1RYRl9JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDSU9fSU5URVJSVVBUX0RFU1RfX0RDSU9fRFBDU19UWEdfSUhDX0VSUk9SX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ0lPX0lOVEVSUlVQVF9ERVNUX19EQ0lPX0RQQ1NfUlhBX0lIQ19FUlJPUl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDSU9fSU5URVJSVVBUX0RFU1RfX0RDSU9fSUhDX1JYU0VOU0VfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1RYQV9JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1RYQl9JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1RYQ19JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1RYRF9JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1RYRV9JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1RYRl9JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1RYR19JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19EUENTX1JYQV9JSENfRVJST1JfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENJT19JTlRFUlJVUFRfREVTVF9fRENJT19JSENfUlhTRU5TRV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vSFBEX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIEhQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSFBEMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDJfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFBEX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19IUEQzX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSFBENF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFBEX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19IUEQ2X0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEhQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSFBEMV9SWF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDJfUlhfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgSFBEX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19IUEQzX1JYX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfSFBENF9SWF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDVfUlhfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFBEX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19IUEQ2X1JYX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEhQRF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfREFDQV9BVVRPREVURUNUX0dFTkVSQVRFX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDFfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDJfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDNfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDRfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDZfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDFfUlhfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDJfUlhfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDNfUlhfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDRfUlhfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDVfUlhfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0hQRDZfUlhfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBIUERfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0RBQ0FfQVVUT0RFVEVDVF9HRU5FUkFURV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorLy9BWl9JTlRFUlJVUFRfREVTVAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpfSU5URVJSVVBUX0RFU1RfX0FaX0lIQ19FTkRQT0lOVDFfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaX0lOVEVSUlVQVF9ERVNUX19BWl9JSENfRU5EUE9JTlQyX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UM19BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpfSU5URVJSVVBUX0RFU1RfX0FaX0lIQ19FTkRQT0lOVDRfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaX0lOVEVSUlVQVF9ERVNUX19BWl9JSENfRU5EUE9JTlQ1X0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNl9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpfSU5URVJSVVBUX0RFU1RfX0FaX0lIQ19FTkRQT0lOVDdfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaX0lOVEVSUlVQVF9ERVNUX19BWl9JSENfRU5EUE9JTlQwX0FVRElPX0VOQUJMRURfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMV9BVURJT19FTkFCTEVEX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpfSU5URVJSVVBUX0RFU1RfX0FaX0lIQ19FTkRQT0lOVDJfQVVESU9fRU5BQkxFRF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaX0lOVEVSUlVQVF9ERVNUX19BWl9JSENfRU5EUE9JTlQzX0FVRElPX0VOQUJMRURfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNF9BVURJT19FTkFCTEVEX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQVpfSU5URVJSVVBUX0RFU1RfX0FaX0lIQ19FTkRQT0lOVDVfQVVESU9fRU5BQkxFRF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEFaX0lOVEVSUlVQVF9ERVNUX19BWl9JSENfRU5EUE9JTlQ2X0FVRElPX0VOQUJMRURfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UN19BVURJT19FTkFCTEVEX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgQVpfSU5URVJSVVBUX0RFU1RfX0FaX0lIQ19FTkRQT0lOVDBfQVVESU9fRElTQUJMRURfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMV9BVURJT19ESVNBQkxFRF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaX0lOVEVSUlVQVF9ERVNUX19BWl9JSENfRU5EUE9JTlQyX0FVRElPX0RJU0FCTEVEX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgQVpfSU5URVJSVVBUX0RFU1RfX0FaX0lIQ19FTkRQT0lOVDNfQVVESU9fRElTQUJMRURfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNF9BVURJT19ESVNBQkxFRF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaX0lOVEVSUlVQVF9ERVNUX19BWl9JSENfRU5EUE9JTlQ1X0FVRElPX0RJU0FCTEVEX0lOVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgQVpfSU5URVJSVVBUX0RFU1RfX0FaX0lIQ19FTkRQT0lOVDZfQVVESU9fRElTQUJMRURfSU5UX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UN19BVURJT19ESVNBQkxFRF9JTlRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIEFaX0lOVEVSUlVQVF9ERVNUX19BWl9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgQVpfSU5URVJSVVBUX0RFU1RfX0FaX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMV9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMl9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UM19BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNV9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNl9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UN19BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMF9BVURJT19FTkFCTEVEX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMV9BVURJT19FTkFCTEVEX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMl9BVURJT19FTkFCTEVEX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UM19BVURJT19FTkFCTEVEX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNF9BVURJT19FTkFCTEVEX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNV9BVURJT19FTkFCTEVEX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNl9BVURJT19FTkFCTEVEX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UN19BVURJT19FTkFCTEVEX0lOVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMF9BVURJT19ESVNBQkxFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMV9BVURJT19ESVNBQkxFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UMl9BVURJT19ESVNBQkxFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UM19BVURJT19ESVNBQkxFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNF9BVURJT19ESVNBQkxFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNV9BVURJT19ESVNBQkxFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UNl9BVURJT19ESVNBQkxFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX0VORFBPSU5UN19BVURJT19ESVNBQkxFRF9JTlRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBBWl9JTlRFUlJVUFRfREVTVF9fQVpfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BVVhfSU5URVJSVVBUX0RFU1QKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgxX1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVWF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfQVVYMV9MU19ET05FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBVVhfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0FVWDJfU1dfRE9ORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgyX0xTX0RPTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFVWF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfQVVYM19TV19ET05FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBVVhfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0FVWDNfTFNfRE9ORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg0X1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFVWF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfQVVYNF9MU19ET05FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBVVhfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0FVWDVfU1dfRE9ORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg1X0xTX0RPTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFVWF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfQVVYNl9TV19ET05FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBBVVhfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0FVWDZfTFNfRE9ORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgxX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBVVhfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0FVWDFfR1RDX1NZTkNfRVJST1JfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFVWF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfQVVYMl9HVENfU1lOQ19MT0NLX0RPTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgyX0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBBVVhfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0FVWDNfR1RDX1NZTkNfTE9DS19ET05FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFVWF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfQVVYM19HVENfU1lOQ19FUlJPUl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg0X0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBBVVhfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0FVWDRfR1RDX1NZTkNfRVJST1JfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIEFVWF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfQVVYNV9HVENfU1lOQ19MT0NLX0RPTkVfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg1X0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBBVVhfSU5URVJSVVBUX0RFU1RfX0RPVVRfSUhDX0FVWDZfR1RDX1NZTkNfTE9DS19ET05FX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIEFVWF9JTlRFUlJVUFRfREVTVF9fRE9VVF9JSENfQVVYNl9HVENfU1lOQ19FUlJPUl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgxX1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgxX0xTX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgyX1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgyX0xTX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgzX1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgzX0xTX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg0X1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg0X0xTX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg1X1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg1X0xTX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg2X1NXX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg2X0xTX0RPTkVfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgxX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgxX0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgyX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgyX0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgzX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVgzX0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg0X0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg0X0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg1X0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg1X0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg2X0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRFUlJVUFRfREVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgQVVYX0lOVEVSUlVQVF9ERVNUX19ET1VUX0lIQ19BVVg2X0dUQ19TWU5DX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKy8vRFNDX0lOVEVSUlVQVF9ERVNUCisjZGVmaW5lIERTQ19JTlRFUlJVUFRfREVTVF9fRFNDMF9JSENfSU5QVVRfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NfSU5URVJSVVBUX0RFU1RfX0RTQzBfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MwX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ19JTlRFUlJVUFRfREVTVF9fRFNDMF9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEU0NfSU5URVJSVVBUX0RFU1RfX0RTQzFfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MxX0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ19JTlRFUlJVUFRfREVTVF9fRFNDMV9JSENfUEVSRk1PTl9DT1VOVEVSMF9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEU0NfSU5URVJSVVBUX0RFU1RfX0RTQzFfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MyX0lIQ19JTlBVVF9VTkRFUkZMT1dfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ19JTlRFUlJVUFRfREVTVF9fRFNDMl9JSENfQ09SRV9FUlJPUl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEU0NfSU5URVJSVVBUX0RFU1RfX0RTQzJfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MyX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERTQ19JTlRFUlJVUFRfREVTVF9fRFNDM19JSENfSU5QVVRfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NfSU5URVJSVVBUX0RFU1RfX0RTQzNfSUhDX0NPUkVfRVJST1JfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MzX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERTQ19JTlRFUlJVUFRfREVTVF9fRFNDM19JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEU0NfSU5URVJSVVBUX0RFU1RfX0RTQzRfSUhDX0lOUFVUX1VOREVSRkxPV19JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ19JTlRFUlJVUFRfREVTVF9fRFNDNF9JSENfQ09SRV9FUlJPUl9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M0X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEU0NfSU5URVJSVVBUX0RFU1RfX0RTQzRfSUhDX1BFUkZNT05fQ09VTlRFUjFfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERTQ19JTlRFUlJVUFRfREVTVF9fRFNDNV9JSENfSU5QVVRfVU5ERVJGTE9XX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M1X0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9ERVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NfSU5URVJSVVBUX0RFU1RfX0RTQzVfSUhDX1BFUkZNT05fQ09VTlRFUjBfSU5URVJSVVBUX0RFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERTQ19JTlRFUlJVUFRfREVTVF9fRFNDNV9JSENfUEVSRk1PTl9DT1VOVEVSMV9JTlRFUlJVUFRfREVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MwX0lIQ19JTlBVVF9VTkRFUkZMT1dfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MwX0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MwX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MwX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MxX0lIQ19JTlBVVF9VTkRFUkZMT1dfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MxX0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MxX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MxX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MyX0lIQ19JTlBVVF9VTkRFUkZMT1dfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MyX0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MyX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MyX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MzX0lIQ19JTlBVVF9VTkRFUkZMT1dfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MzX0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MzX0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0MzX0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M0X0lIQ19JTlBVVF9VTkRFUkZMT1dfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M0X0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M0X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M0X0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M1X0lIQ19JTlBVVF9VTkRFUkZMT1dfSU5URVJSVVBUX0RFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M1X0lIQ19DT1JFX0VSUk9SX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M1X0lIQ19QRVJGTU9OX0NPVU5URVIwX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFNDX0lOVEVSUlVQVF9ERVNUX19EU0M1X0lIQ19QRVJGTU9OX0NPVU5URVIxX0lOVEVSUlVQVF9ERVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY193YjBfZGlzcGRlY19jbnZfZGlzcGRlYworLy9XQl9FTkFCTEUKKyNkZWZpbmUgV0JfRU5BQkxFX19XQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCX0VOQUJMRV9fV0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1dCX0VDX0NPTkZJRworI2RlZmluZSBXQl9FQ19DT05GSUdfX0RJU1BDTEtfUl9XQl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19ESVNQQ0xLX0dfV0JfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFdCX0VDX0NPTkZJR19fRElTUENMS19HX1dCU0NMX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBXQl9FQ19DT05GSUdfX1dCX1RFU1RfQ0xLX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQl9MQl9MU19ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFdCX0VDX0NPTkZJR19fV0JfTEJfU0RfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBXQl9FQ19DT05GSUdfX1dCX0xVVF9MU19ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQlNDTF9MQl9NRU1fUFdSX01PREVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFdCX0VDX0NPTkZJR19fV0JTQ0xfTEJfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBXQl9FQ19DT05GSUdfX1dCU0NMX0xCX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQlNDTF9MQl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBXQl9FQ19DT05GSUdfX1dCX1JBTV9QV19TQVZFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFdCX0VDX0NPTkZJR19fV0JTQ0xfTFVUX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19ESVNQQ0xLX1JfV0JfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19ESVNQQ0xLX0dfV0JfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19ESVNQQ0xLX0dfV0JTQ0xfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQl9URVNUX0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQl9MQl9MU19ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQl9MQl9TRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQl9MVVRfTFNfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQlNDTF9MQl9NRU1fUFdSX01PREVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQlNDTF9MQl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQlNDTF9MQl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQlNDTF9MQl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQl9SQU1fUFdfU0FWRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgV0JfRUNfQ09ORklHX19XQlNDTF9MVVRfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKy8vQ05WX01PREUKKyNkZWZpbmUgQ05WX01PREVfX0NOVl9PVVRfQlBDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENOVl9NT0RFX19DTlZfRlJBTUVfQ0FQVFVSRV9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTlZfTU9ERV9fQ05WX1dJTkRPV19DUk9QX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ05WX01PREVfX0NOVl9TVEVSRU9fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIENOVl9NT0RFX19DTlZfSU5URVJMQUNFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBDTlZfTU9ERV9fQ05WX0VZRV9TRUxFQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVl9NT0RFX19DTlZfU1RFUkVPX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgQ05WX01PREVfX0NOVl9JTlRFUkxBQ0VEX0ZJRUxEX09SREVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBDTlZfTU9ERV9fQ05WX1NURVJFT19TUExJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENOVl9NT0RFX19DTlZfTkVXX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQ05WX01PREVfX0NOVl9GUkFNRV9DQVBUVVJFX0VOX0NVUlJFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBDTlZfTU9ERV9fQ05WX0ZSQU1FX0NBUFRVUkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIENOVl9NT0RFX19DTlZfT1VUX0JQQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfRlJBTUVfQ0FQVFVSRV9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfV0lORE9XX0NST1BfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfU1RFUkVPX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDYwMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfSU5URVJMQUNFRF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfRVlFX1NFTEVDVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfU1RFUkVPX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfSU5URVJMQUNFRF9GSUVMRF9PUkRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfU1RFUkVPX1NQTElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfRlJBTUVfQ0FQVFVSRV9FTl9DVVJSRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIENOVl9NT0RFX19DTlZfRlJBTUVfQ0FQVFVSRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0NOVl9XSU5ET1dfU1RBUlQKKyNkZWZpbmUgQ05WX1dJTkRPV19TVEFSVF9fQ05WX1dJTkRPV19TVEFSVF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVl9XSU5ET1dfU1RBUlRfX0NOVl9XSU5ET1dfU1RBUlRfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WX1dJTkRPV19TVEFSVF9fQ05WX1dJTkRPV19TVEFSVF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgQ05WX1dJTkRPV19TVEFSVF9fQ05WX1dJTkRPV19TVEFSVF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGMDAwMEwKKy8vQ05WX1dJTkRPV19TSVpFCisjZGVmaW5lIENOVl9XSU5ET1dfU0laRV9fQ05WX1dJTkRPV19XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZfV0lORE9XX1NJWkVfX0NOVl9XSU5ET1dfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVl9XSU5ET1dfU0laRV9fQ05WX1dJTkRPV19XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIENOVl9XSU5ET1dfU0laRV9fQ05WX1dJTkRPV19IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL0NOVl9VUERBVEUKKyNkZWZpbmUgQ05WX1VQREFURV9fQ05WX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVl9VUERBVEVfX0NOVl9VUERBVEVfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTlZfVVBEQVRFX19DTlZfVVBEQVRFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVl9VUERBVEVfX0NOVl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENOVl9VUERBVEVfX0NOVl9VUERBVEVfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIENOVl9VUERBVEVfX0NOVl9VUERBVEVfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0NOVl9TT1VSQ0VfU0laRQorI2RlZmluZSBDTlZfU09VUkNFX1NJWkVfX0NOVl9TT1VSQ0VfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WX1NPVVJDRV9TSVpFX19DTlZfU09VUkNFX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZfU09VUkNFX1NJWkVfX0NOVl9TT1VSQ0VfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBDTlZfU09VUkNFX1NJWkVfX0NOVl9TT1VSQ0VfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9DTlZfVEVTVF9DTlRMCisjZGVmaW5lIENOVl9URVNUX0NOVExfX0NOVl9URVNUX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDTlZfVEVTVF9DTlRMX19DTlZfVEVTVF9DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ05WX1RFU1RfQ05UTF9fQ05WX1RFU1RfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ05WX1RFU1RfQ05UTF9fQ05WX1RFU1RfQ1JDX0NPTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQ05WX1RFU1RfQ1JDX1JFRAorI2RlZmluZSBDTlZfVEVTVF9DUkNfUkVEX19DTlZfVEVTVF9DUkNfUkVEX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ05WX1RFU1RfQ1JDX1JFRF9fQ05WX1RFU1RfQ1JDX1NJR19SRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZfVEVTVF9DUkNfUkVEX19DTlZfVEVTVF9DUkNfUkVEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBDTlZfVEVTVF9DUkNfUkVEX19DTlZfVEVTVF9DUkNfU0lHX1JFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTlZfVEVTVF9DUkNfR1JFRU4KKyNkZWZpbmUgQ05WX1RFU1RfQ1JDX0dSRUVOX19DTlZfVEVTVF9DUkNfR1JFRU5fTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENOVl9URVNUX0NSQ19HUkVFTl9fQ05WX1RFU1RfQ1JDX1NJR19HUkVFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WX1RFU1RfQ1JDX0dSRUVOX19DTlZfVEVTVF9DUkNfR1JFRU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgQ05WX1RFU1RfQ1JDX0dSRUVOX19DTlZfVEVTVF9DUkNfU0lHX0dSRUVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WX1RFU1RfQ1JDX0JMVUUKKyNkZWZpbmUgQ05WX1RFU1RfQ1JDX0JMVUVfX0NOVl9URVNUX0NSQ19CTFVFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENOVl9URVNUX0NSQ19CTFVFX19DTlZfVEVTVF9DUkNfU0lHX0JMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WX1RFU1RfQ1JDX0JMVUVfX0NOVl9URVNUX0NSQ19CTFVFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgQ05WX1RFU1RfQ1JDX0JMVUVfX0NOVl9URVNUX0NSQ19TSUdfQkxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vV0JfREVCVUdfQ1RSTAorI2RlZmluZSBXQl9ERUJVR19DVFJMX19XQl9ERUJVR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JfREVCVUdfQ1RSTF9fV0JfREVCVUdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFdCX0RFQlVHX0NUUkxfX1dCX0RFQlVHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFdCX0RFQlVHX0NUUkxfX1dCX0RFQlVHX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisvL1dCX0RCR19NT0RFCisjZGVmaW5lIFdCX0RCR19NT0RFX19XQl9EQkdfTU9ERV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQl9EQkdfTU9ERV9fV0JfREJHX0RJTl9GTVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgV0JfREJHX01PREVfX1dCX0RCR18zNk1PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFdCX0RCR19NT0RFX19XQl9EQkdfQ01BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBXQl9EQkdfTU9ERV9fV0JfREJHX1BYTFJBVEVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgV0JfREJHX01PREVfX1dCX0RCR19TT1VSQ0VfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBXQl9EQkdfTU9ERV9fV0JfREJHX01PREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBXQl9EQkdfTU9ERV9fV0JfREJHX0RJTl9GTVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBXQl9EQkdfTU9ERV9fV0JfREJHXzM2TU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBXQl9EQkdfTU9ERV9fV0JfREJHX0NNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBXQl9EQkdfTU9ERV9fV0JfREJHX1BYTFJBVEVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBXQl9EQkdfTU9ERV9fV0JfREJHX1NPVVJDRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9XQl9IV19ERUJVRworI2RlZmluZSBXQl9IV19ERUJVR19fV0JfSFdfREVCVUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JfSFdfREVCVUdfX1dCX0hXX0RFQlVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vV0JfU09GVF9SRVNFVAorI2RlZmluZSBXQl9TT0ZUX1JFU0VUX19XQl9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JfU09GVF9SRVNFVF9fV0JfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vV0JfV0FSTV9VUF9NT0RFX0NUTDEKKyNkZWZpbmUgV0JfV0FSTV9VUF9NT0RFX0NUTDFfX1dJRFRIX1dBUk1VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCX1dBUk1fVVBfTU9ERV9DVEwxX19IRUlHSFRfV0FSTVVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgV0JfV0FSTV9VUF9NT0RFX0NUTDFfX0dNQ19XQVJNX1VQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBXQl9XQVJNX1VQX01PREVfQ1RMMV9fV0lEVEhfV0FSTVVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBXQl9XQVJNX1VQX01PREVfQ1RMMV9fSEVJR0hUX1dBUk1VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorI2RlZmluZSBXQl9XQVJNX1VQX01PREVfQ1RMMV9fR01DX1dBUk1fVVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9XQl9XQVJNX1VQX01PREVfQ1RMMgorI2RlZmluZSBXQl9XQVJNX1VQX01PREVfQ1RMMl9fREFUQV9WQUxVRV9XQVJNVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JfV0FSTV9VUF9NT0RFX0NUTDJfX01PREVfV0FSTVVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBXQl9XQVJNX1VQX01PREVfQ1RMMl9fREFUQV9ERVBUSF9XQVJNVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFdCX1dBUk1fVVBfTU9ERV9DVEwyX19EQVRBX1ZBTFVFX1dBUk1VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIFdCX1dBUk1fVVBfTU9ERV9DVEwyX19NT0RFX1dBUk1VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFdCX1dBUk1fVVBfTU9ERV9DVEwyX19EQVRBX0RFUFRIX1dBUk1VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL0NOVl9URVNUX0RFQlVHX0lOREVYCisjZGVmaW5lIENOVl9URVNUX0RFQlVHX0lOREVYX19DTlZfVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZfVEVTVF9ERUJVR19JTkRFWF9fQ05WX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ05WX1RFU1RfREVCVUdfSU5ERVhfX0NOVl9URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQ05WX1RFU1RfREVCVUdfSU5ERVhfX0NOVl9URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQ05WX1RFU1RfREVCVUdfREFUQQorI2RlZmluZSBDTlZfVEVTVF9ERUJVR19EQVRBX19DTlZfVEVTVF9ERUJVR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WX1RFU1RfREVCVUdfREFUQV9fQ05WX1RFU1RfREVCVUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY193YjBfZGlzcGRlY193YnNjbF9kaXNwZGVjCisvL1dCU0NMX0NPRUZfUkFNX1NFTEVDVAorI2RlZmluZSBXQlNDTF9DT0VGX1JBTV9TRUxFQ1RfX1dCU0NMX0NPRUZfUkFNX1RBUF9QQUlSX0lEWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fU0VMRUNUX19XQlNDTF9DT0VGX1JBTV9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFdCU0NMX0NPRUZfUkFNX1NFTEVDVF9fV0JTQ0xfQ09FRl9SQU1fRklMVEVSX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fU0VMRUNUX19XQlNDTF9DT0VGX1JBTV9UQVBfUEFJUl9JRFhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fU0VMRUNUX19XQlNDTF9DT0VGX1JBTV9QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fU0VMRUNUX19XQlNDTF9DT0VGX1JBTV9GSUxURVJfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKy8vV0JTQ0xfQ09FRl9SQU1fVEFQX0RBVEEKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1dCU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX0NPRUZfUkFNX1RBUF9EQVRBX19XQlNDTF9DT0VGX1JBTV9FVkVOX1RBUF9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBXQlNDTF9DT0VGX1JBTV9UQVBfREFUQV9fV0JTQ0xfQ09FRl9SQU1fT0REX1RBUF9DT0VGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFdCU0NMX0NPRUZfUkFNX1RBUF9EQVRBX19XQlNDTF9DT0VGX1JBTV9PRERfVEFQX0NPRUZfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1dCU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1dCU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1dCU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1dCU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vV0JTQ0xfTU9ERQorI2RlZmluZSBXQlNDTF9NT0RFX19XQlNDTF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JTQ0xfTU9ERV9fV0JTQ0xfT1VUX0JJVF9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFdCU0NMX01PREVfX1dCU0NMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFdCU0NMX01PREVfX1dCU0NMX09VVF9CSVRfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL1dCU0NMX1RBUF9DT05UUk9MCisjZGVmaW5lIFdCU0NMX1RBUF9DT05UUk9MX19XQlNDTF9WX05VTV9PRl9UQVBTX1lfUkdCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQlNDTF9UQVBfQ09OVFJPTF9fV0JTQ0xfVl9OVU1fT0ZfVEFQU19DQkNSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgV0JTQ0xfVEFQX0NPTlRST0xfX1dCU0NMX0hfTlVNX09GX1RBUFNfWV9SR0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFdCU0NMX1RBUF9DT05UUk9MX19XQlNDTF9IX05VTV9PRl9UQVBTX0NCQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBXQlNDTF9UQVBfQ09OVFJPTF9fV0JTQ0xfVl9OVU1fT0ZfVEFQU19ZX1JHQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBXQlNDTF9UQVBfQ09OVFJPTF9fV0JTQ0xfVl9OVU1fT0ZfVEFQU19DQkNSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBXQlNDTF9UQVBfQ09OVFJPTF9fV0JTQ0xfSF9OVU1fT0ZfVEFQU19ZX1JHQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBXQlNDTF9UQVBfQ09OVFJPTF9fV0JTQ0xfSF9OVU1fT0ZfVEFQU19DQkNSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorLy9XQlNDTF9ERVNUX1NJWkUKKyNkZWZpbmUgV0JTQ0xfREVTVF9TSVpFX19XQlNDTF9ERVNUX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX0RFU1RfU0laRV9fV0JTQ0xfREVTVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgV0JTQ0xfREVTVF9TSVpFX19XQlNDTF9ERVNUX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgV0JTQ0xfREVTVF9TSVpFX19XQlNDTF9ERVNUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vV0JTQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU8KKyNkZWZpbmUgV0JTQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fX1dCU0NMX0hfU0NBTEVfUkFUSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPX19XQlNDTF9IX1NDQUxFX1JBVElPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRkZGRkZMCisvL1dCU0NMX0hPUlpfRklMVEVSX0lOSVRfWV9SR0IKKyNkZWZpbmUgV0JTQ0xfSE9SWl9GSUxURVJfSU5JVF9ZX1JHQl9fV0JTQ0xfSF9JTklUX0ZSQUNfWV9SR0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX0hPUlpfRklMVEVSX0lOSVRfWV9SR0JfX1dCU0NMX0hfSU5JVF9JTlRfWV9SR0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgV0JTQ0xfSE9SWl9GSUxURVJfSU5JVF9ZX1JHQl9fV0JTQ0xfSF9JTklUX0ZSQUNfWV9SR0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKyNkZWZpbmUgV0JTQ0xfSE9SWl9GSUxURVJfSU5JVF9ZX1JHQl9fV0JTQ0xfSF9JTklUX0lOVF9ZX1JHQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKy8vV0JTQ0xfSE9SWl9GSUxURVJfSU5JVF9DQkNSCisjZGVmaW5lIFdCU0NMX0hPUlpfRklMVEVSX0lOSVRfQ0JDUl9fV0JTQ0xfSF9JTklUX0ZSQUNfQ0JDUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQlNDTF9IT1JaX0ZJTFRFUl9JTklUX0NCQ1JfX1dCU0NMX0hfSU5JVF9JTlRfQ0JDUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFdCU0NMX0hPUlpfRklMVEVSX0lOSVRfQ0JDUl9fV0JTQ0xfSF9JTklUX0ZSQUNfQ0JDUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIFdCU0NMX0hPUlpfRklMVEVSX0lOSVRfQ0JDUl9fV0JTQ0xfSF9JTklUX0lOVF9DQkNSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL1dCU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPCisjZGVmaW5lIFdCU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX19XQlNDTF9WX1NDQUxFX1JBVElPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQlNDTF9WRVJUX0ZJTFRFUl9TQ0FMRV9SQVRJT19fV0JTQ0xfVl9TQ0FMRV9SQVRJT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkZGRkZGTAorLy9XQlNDTF9WRVJUX0ZJTFRFUl9JTklUX1lfUkdCCisjZGVmaW5lIFdCU0NMX1ZFUlRfRklMVEVSX0lOSVRfWV9SR0JfX1dCU0NMX1ZfSU5JVF9GUkFDX1lfUkdCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQlNDTF9WRVJUX0ZJTFRFUl9JTklUX1lfUkdCX19XQlNDTF9WX0lOSVRfSU5UX1lfUkdCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFdCU0NMX1ZFUlRfRklMVEVSX0lOSVRfWV9SR0JfX1dCU0NMX1ZfSU5JVF9GUkFDX1lfUkdCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIFdCU0NMX1ZFUlRfRklMVEVSX0lOSVRfWV9SR0JfX1dCU0NMX1ZfSU5JVF9JTlRfWV9SR0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL1dCU0NMX1ZFUlRfRklMVEVSX0lOSVRfQ0JDUgorI2RlZmluZSBXQlNDTF9WRVJUX0ZJTFRFUl9JTklUX0NCQ1JfX1dCU0NMX1ZfSU5JVF9GUkFDX0NCQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JTQ0xfVkVSVF9GSUxURVJfSU5JVF9DQkNSX19XQlNDTF9WX0lOSVRfSU5UX0NCQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBXQlNDTF9WRVJUX0ZJTFRFUl9JTklUX0NCQ1JfX1dCU0NMX1ZfSU5JVF9GUkFDX0NCQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBXQlNDTF9WRVJUX0ZJTFRFUl9JTklUX0NCQ1JfX1dCU0NMX1ZfSU5JVF9JTlRfQ0JDUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorLy9XQlNDTF9ST1VORF9PRkZTRVQKKyNkZWZpbmUgV0JTQ0xfUk9VTkRfT0ZGU0VUX19XQlNDTF9ST1VORF9PRkZTRVRfWV9SR0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX1JPVU5EX09GRlNFVF9fV0JTQ0xfUk9VTkRfT0ZGU0VUX0NCQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgV0JTQ0xfUk9VTkRfT0ZGU0VUX19XQlNDTF9ST1VORF9PRkZTRVRfWV9SR0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgV0JTQ0xfUk9VTkRfT0ZGU0VUX19XQlNDTF9ST1VORF9PRkZTRVRfQ0JDUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vV0JTQ0xfT1ZFUkZMT1dfU1RBVFVTCisjZGVmaW5lIFdCU0NMX09WRVJGTE9XX1NUQVRVU19fV0JTQ0xfREFUQV9PVkVSRkxPV19GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQlNDTF9PVkVSRkxPV19TVEFUVVNfX1dCU0NMX0RBVEFfT1ZFUkZMT1dfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgV0JTQ0xfT1ZFUkZMT1dfU1RBVFVTX19XQlNDTF9EQVRBX09WRVJGTE9XX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFdCU0NMX09WRVJGTE9XX1NUQVRVU19fV0JTQ0xfREFUQV9PVkVSRkxPV19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgV0JTQ0xfT1ZFUkZMT1dfU1RBVFVTX19XQlNDTF9EQVRBX09WRVJGTE9XX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBXQlNDTF9PVkVSRkxPV19TVEFUVVNfX1dCU0NMX0RBVEFfT1ZFUkZMT1dfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBXQlNDTF9PVkVSRkxPV19TVEFUVVNfX1dCU0NMX0RBVEFfT1ZFUkZMT1dfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBXQlNDTF9PVkVSRkxPV19TVEFUVVNfX1dCU0NMX0RBVEFfT1ZFUkZMT1dfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBXQlNDTF9PVkVSRkxPV19TVEFUVVNfX1dCU0NMX0RBVEFfT1ZFUkZMT1dfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBXQlNDTF9PVkVSRkxPV19TVEFUVVNfX1dCU0NMX0RBVEFfT1ZFUkZMT1dfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9XQlNDTF9DT0VGX1JBTV9DT05GTElDVF9TVEFUVVMKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fQ09ORkxJQ1RfU1RBVFVTX19XQlNDTF9IT1NUX0NPTkZMSUNUX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX0NPRUZfUkFNX0NPTkZMSUNUX1NUQVRVU19fV0JTQ0xfSE9TVF9DT05GTElDVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBXQlNDTF9DT0VGX1JBTV9DT05GTElDVF9TVEFUVVNfX1dCU0NMX0hPU1RfQ09ORkxJQ1RfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgV0JTQ0xfQ09FRl9SQU1fQ09ORkxJQ1RfU1RBVFVTX19XQlNDTF9IT1NUX0NPTkZMSUNUX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBXQlNDTF9DT0VGX1JBTV9DT05GTElDVF9TVEFUVVNfX1dCU0NMX0hPU1RfQ09ORkxJQ1RfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFdCU0NMX0NPRUZfUkFNX0NPTkZMSUNUX1NUQVRVU19fV0JTQ0xfSE9TVF9DT05GTElDVF9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFdCU0NMX0NPRUZfUkFNX0NPTkZMSUNUX1NUQVRVU19fV0JTQ0xfSE9TVF9DT05GTElDVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFdCU0NMX0NPRUZfUkFNX0NPTkZMSUNUX1NUQVRVU19fV0JTQ0xfSE9TVF9DT05GTElDVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFdCU0NMX0NPRUZfUkFNX0NPTkZMSUNUX1NUQVRVU19fV0JTQ0xfSE9TVF9DT05GTElDVF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFdCU0NMX0NPRUZfUkFNX0NPTkZMSUNUX1NUQVRVU19fV0JTQ0xfSE9TVF9DT05GTElDVF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL1dCU0NMX1RFU1RfQ05UTAorI2RlZmluZSBXQlNDTF9URVNUX0NOVExfX1dCU0NMX1RFU1RfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgV0JTQ0xfVEVTVF9DTlRMX19XQlNDTF9URVNUX0NSQ19DT05UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFdCU0NMX1RFU1RfQ05UTF9fV0JTQ0xfVEVTVF9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFdCU0NMX1RFU1RfQ05UTF9fV0JTQ0xfVEVTVF9DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1dCU0NMX1RFU1RfQ1JDX1JFRAorI2RlZmluZSBXQlNDTF9URVNUX0NSQ19SRURfX1dCU0NMX1RFU1RfQ1JDX1JFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JTQ0xfVEVTVF9DUkNfUkVEX19XQlNDTF9URVNUX0NSQ19TSUdfUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBXQlNDTF9URVNUX0NSQ19SRURfX1dCU0NMX1RFU1RfQ1JDX1JFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBXQlNDTF9URVNUX0NSQ19SRURfX1dCU0NMX1RFU1RfQ1JDX1NJR19SRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9XQlNDTF9URVNUX0NSQ19HUkVFTgorI2RlZmluZSBXQlNDTF9URVNUX0NSQ19HUkVFTl9fV0JTQ0xfVEVTVF9DUkNfR1JFRU5fTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JTQ0xfVEVTVF9DUkNfR1JFRU5fX1dCU0NMX1RFU1RfQ1JDX1NJR19HUkVFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBXQlNDTF9URVNUX0NSQ19HUkVFTl9fV0JTQ0xfVEVTVF9DUkNfR1JFRU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBXQlNDTF9URVNUX0NSQ19HUkVFTl9fV0JTQ0xfVEVTVF9DUkNfU0lHX0dSRUVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9XQlNDTF9URVNUX0NSQ19CTFVFCisjZGVmaW5lIFdCU0NMX1RFU1RfQ1JDX0JMVUVfX1dCU0NMX1RFU1RfQ1JDX0JMVUVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQlNDTF9URVNUX0NSQ19CTFVFX19XQlNDTF9URVNUX0NSQ19TSUdfQkxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFdCU0NMX1RFU1RfQ1JDX0JMVUVfX1dCU0NMX1RFU1RfQ1JDX0JMVUVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIFdCU0NMX1RFU1RfQ1JDX0JMVUVfX1dCU0NMX1RFU1RfQ1JDX1NJR19CTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1dCU0NMX0JBQ0tQUkVTU1VSRV9DTlRfRU4KKyNkZWZpbmUgV0JTQ0xfQkFDS1BSRVNTVVJFX0NOVF9FTl9fV0JTQ0xfQkFDS1BSRVNTVVJFX0NOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX0JBQ0tQUkVTU1VSRV9DTlRfRU5fX1dCU0NMX0JBQ0tQUkVTU1VSRV9DTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1dCX01DSUZfQkFDS1BSRVNTVVJFX0NOVAorI2RlZmluZSBXQl9NQ0lGX0JBQ0tQUkVTU1VSRV9DTlRfX1dCX01DSUZfWV9NQVhfQkFDS1BSRVNTVVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JfTUNJRl9CQUNLUFJFU1NVUkVfQ05UX19XQl9NQ0lGX0NfTUFYX0JBQ0tQUkVTU1VSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBXQl9NQ0lGX0JBQ0tQUkVTU1VSRV9DTlRfX1dCX01DSUZfWV9NQVhfQkFDS1BSRVNTVVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBXQl9NQ0lGX0JBQ0tQUkVTU1VSRV9DTlRfX1dCX01DSUZfQ19NQVhfQkFDS1BSRVNTVVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9XQlNDTF9DTEFNUF9ZX1JHQgorI2RlZmluZSBXQlNDTF9DTEFNUF9ZX1JHQl9fV0JTQ0xfQ0xBTVBfVVBQRVJfWV9SR0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgV0JTQ0xfQ0xBTVBfWV9SR0JfX1dCU0NMX0NMQU1QX0xPV0VSX1lfUkdCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBXQlNDTF9DTEFNUF9ZX1JHQl9fV0JTQ0xfQ0xBTVBfVVBQRVJfWV9SR0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBXQlNDTF9DTEFNUF9ZX1JHQl9fV0JTQ0xfQ0xBTVBfTE9XRVJfWV9SR0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9XQlNDTF9DTEFNUF9DQkNSCisjZGVmaW5lIFdCU0NMX0NMQU1QX0NCQ1JfX1dCU0NMX0NMQU1QX1VQUEVSX0NCQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQlNDTF9DTEFNUF9DQkNSX19XQlNDTF9DTEFNUF9MT1dFUl9DQkNSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFdCU0NMX0NMQU1QX0NCQ1JfX1dCU0NMX0NMQU1QX1VQUEVSX0NCQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIFdCU0NMX0NMQU1QX0NCQ1JfX1dCU0NMX0NMQU1QX0xPV0VSX0NCQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1dCU0NMX09VVFNJREVfUElYX1NUUkFURUdZCisjZGVmaW5lIFdCU0NMX09VVFNJREVfUElYX1NUUkFURUdZX19XQlNDTF9PVVRTSURFX1BJWF9TVFJBVEVHWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQlNDTF9PVVRTSURFX1BJWF9TVFJBVEVHWV9fV0JTQ0xfQkxBQ0tfQ09MT1JfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFdCU0NMX09VVFNJREVfUElYX1NUUkFURUdZX19XQlNDTF9PVVRTSURFX1BJWF9TVFJBVEVHWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFdCU0NMX09VVFNJREVfUElYX1NUUkFURUdZX19XQlNDTF9CTEFDS19DT0xPUl9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1dCU0NMX09VVFNJREVfUElYX1NUUkFURUdZX0NCQ1IKKyNkZWZpbmUgV0JTQ0xfT1VUU0lERV9QSVhfU1RSQVRFR1lfQ0JDUl9fV0JTQ0xfQkxBQ0tfQ09MT1JfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX09VVFNJREVfUElYX1NUUkFURUdZX0NCQ1JfX1dCU0NMX0JMQUNLX0NPTE9SX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgV0JTQ0xfT1VUU0lERV9QSVhfU1RSQVRFR1lfQ0JDUl9fV0JTQ0xfQkxBQ0tfQ09MT1JfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgV0JTQ0xfT1VUU0lERV9QSVhfU1RSQVRFR1lfQ0JDUl9fV0JTQ0xfQkxBQ0tfQ09MT1JfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vV0JTQ0xfREVCVUcKKyNkZWZpbmUgV0JTQ0xfREVCVUdfX1dCU0NMX0RFQlVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX0RFQlVHX19XQlNDTF9ERUJVR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1dCU0NMX1RFU1RfREVCVUdfSU5ERVgKKyNkZWZpbmUgV0JTQ0xfVEVTVF9ERUJVR19JTkRFWF9fV0JTQ0xfVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX1RFU1RfREVCVUdfSU5ERVhfX1dCU0NMX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBXQlNDTF9URVNUX0RFQlVHX0lOREVYX19XQlNDTF9URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBXQlNDTF9URVNUX0RFQlVHX0lOREVYX19XQlNDTF9URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9XQlNDTF9URVNUX0RFQlVHX0RBVEEKKyNkZWZpbmUgV0JTQ0xfVEVTVF9ERUJVR19EQVRBX19XQlNDTF9URVNUX0RFQlVHX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCU0NMX1RFU1RfREVCVUdfREFUQV9fV0JTQ0xfVEVTVF9ERUJVR19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfd2IwX2Rpc3BkZWNfd2JfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy9EQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RDX1BFUkZNT04zX1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGQ0wKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkMwMEwKKy8vRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENfUEVSRk1PTjNfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OM19QRVJGTU9OX0hJCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fSElfX1BFUkZNT05fSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fSElfX1BFUkZNT05fSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04zX1BFUkZNT05fTE9XCisjZGVmaW5lIERDX1BFUkZNT04zX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OM19QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21taHViYnViX21jaWZfd2IwX2Rpc3BkZWMKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9fTUNJRl9XQl9CVUZfRFVBTFNJWkVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9TV19JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9fTUNJRl9XQl9CVUZNR1JfU1dfU0xJQ0VfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX09WRVJSVU5fSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9TV19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9fTUNJRl9XQl9QX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRl9BRERSX0ZFTkNFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGX0RVQUxTSVpFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX1NMSUNFX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX09WRVJSVU5fSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfUF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGX0FERFJfRkVOQ0VfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1IKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfQ1VSX0xJTkVfUl9fTUNJRl9XQl9CVUZNR1JfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1JfX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX19NQ0lGX1dCX0JVRk1HUl9TV19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NUQVRVU19fTUNJRl9XQl9CVUZNR1JfU1dfT1ZFUlJVTl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9CVUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX19NQ0lGX1dCX0JVRl9EVUFMU0laRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1NUQVRVU19fTUNJRl9XQl9CVUZNR1JfQlVGVEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX19NQ0lGX1dCX0JVRk1HUl9ORVhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1NXX09WRVJSVU5fSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGX0RVQUxTSVpFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkZGMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX05FWFRfQlVGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl9QSVRDSAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl9QSVRDSF9fTUNJRl9XQl9CVUZfTFVNQV9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfUElUQ0hfX01DSUZfV0JfQlVGX0NIUk9NQV9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl9QSVRDSF9fTUNJRl9XQl9CVUZfTFVNQV9QSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl9QSVRDSF9fTUNJRl9XQl9CVUZfQ0hST01BX1BJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX19NQ0lGX1dCX0JVRl8xX05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMV9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX19NQ0lGX1dCX0JVRl8xX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMV9DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX19NQ0lGX1dCX0JVRl8xX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9TVEFUVVMyX19NQ0lGX1dCX0JVRl8yX05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMl9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9TVEFUVVMyX19NQ0lGX1dCX0JVRl8yX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMl9DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9TVEFUVVMyX19NQ0lGX1dCX0JVRl8yX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19TVEFUVVMyX19NQ0lGX1dCX0JVRl8zX05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTMl9fTUNJRl9XQl9CVUZfM19DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19TVEFUVVMyX19NQ0lGX1dCX0JVRl8zX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfU1RBVFVTMl9fTUNJRl9XQl9CVUZfM19DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19TVEFUVVMyX19NQ0lGX1dCX0JVRl8zX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX19NQ0lGX1dCX0JVRl80X05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTMl9fTUNJRl9XQl9CVUZfNF9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX19NQ0lGX1dCX0JVRl80X1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfU1RBVFVTMl9fTUNJRl9XQl9CVUZfNF9DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX19NQ0lGX1dCX0JVRl80X0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0FSQklUUkFUSU9OX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX19NQ0lGX1dCX0NMSUVOVF9BUkJJVFJBVElPTl9TTElDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQVJCSVRSQVRJT05fQ09OVFJPTF9fTUNJRl9XQl9USU1FX1BFUl9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX19NQ0lGX1dCX0NMSUVOVF9BUkJJVFJBVElPTl9TTElDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX19NQ0lGX1dCX1RJTUVfUEVSX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkMwMDAwMEwKKy8vTUNJRl9XQjBfTUNJRl9XQl9TQ0xLX0NIQU5HRQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX1NDTEtfQ0hBTkdFX19XTV9DSEFOR0VfQUNLX0ZPUkNFX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9TQ0xLX0NIQU5HRV9fTUNJRl9XQl9DTElfV0FURVJNQVJLX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfU0NMS19DSEFOR0VfX1dNX0NIQU5HRV9BQ0tfRk9SQ0VfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfU0NMS19DSEFOR0VfX01DSUZfV0JfQ0xJX1dBVEVSTUFSS19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisvL01DSUZfV0IwX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX1RFU1RfREVCVUdfSU5ERVhfX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYX19NQ0lGX1dCX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWF9fTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWF9fTUNJRl9XQl9URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL01DSUZfV0IwX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBX19NQ0lGX1dCX1RFU1RfREVCVUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX1RFU1RfREVCVUdfREFUQV9fTUNJRl9XQl9URVNUX0RFQlVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfWV9fTUNJRl9XQl9CVUZfMV9BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX1lfX01DSUZfV0JfQlVGXzFfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzFfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfQworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfQ19fTUNJRl9XQl9CVUZfMV9BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX0NfX01DSUZfV0JfQlVGXzFfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfMV9BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzFfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfWV9fTUNJRl9XQl9CVUZfMl9BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX1lfX01DSUZfV0JfQlVGXzJfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfMl9BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfQworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfQ19fTUNJRl9XQl9CVUZfMl9BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX0NfX01DSUZfV0JfQlVGXzJfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzJfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX0FERFJfWV9fTUNJRl9XQl9CVUZfM19BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX1lfX01DSUZfV0JfQlVGXzNfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfM19BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzNfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX0FERFJfQworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX0FERFJfQ19fTUNJRl9XQl9CVUZfM19BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX0NfX01DSUZfV0JfQlVGXzNfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfM19BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfWV9fTUNJRl9XQl9CVUZfNF9BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX1lfX01DSUZfV0JfQlVGXzRfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzRfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfQworI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfQ19fTUNJRl9XQl9CVUZfNF9BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX0NfX01DSUZfV0JfQlVGXzRfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfNF9BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzRfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTF9fTUNJRl9XQl9CVUZNR1JfVkNFX0xPQ0tfSUdOT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1ZDRV9DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9WQ0VfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTF9fTUNJRl9XQl9CVUZNR1JfVkNFX1NMSUNFX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGTUdSX1ZDRV9DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9TTElDRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9MT0NLX0lHTk9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9TTElDRV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NMSUNFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vTUNJRl9XQjBfTUNJRl9XQl9OQl9QU1RBVEVfTEFURU5DWV9XQVRFUk1BUksKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9OQl9QU1RBVEVfTEFURU5DWV9XQVRFUk1BUktfX05CX1BTVEFURV9DSEFOR0VfUkVGUkVTSF9XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfTkJfUFNUQVRFX0xBVEVOQ1lfV0FURVJNQVJLX19OQl9QU1RBVEVfQ0hBTkdFX1JFRlJFU0hfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01DSUZfV0IwX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9OQl9QU1RBVEVfQ09OVFJPTF9fTkJfUFNUQVRFX0NIQU5HRV9VUkdFTlRfRFVSSU5HX1JFUVVFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfRk9SQ0VfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX05CX1BTVEFURV9DT05UUk9MX19OQl9QU1RBVEVfQUxMT1dfRk9SX1VSR0VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9OQl9QU1RBVEVfQ09OVFJPTF9fTkJfUFNUQVRFX0NIQU5HRV9XQVRFUk1BUktfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfVVJHRU5UX0RVUklOR19SRVFVRVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfRk9SQ0VfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9BTExPV19GT1JfVVJHRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfV0FURVJNQVJLX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01DSUZfV0IwX01DSUZfV0JfV0FURVJNQVJLCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfV0FURVJNQVJLX19NQ0lGX1dCX0NMSV9XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX1dBVEVSTUFSS19fTUNJRl9XQl9DTElfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0NMT0NLX0dBVEVSX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9DTE9DS19HQVRFUl9DT05UUk9MX19NQ0lGX1dCX0NMSV9DTE9DS19HQVRFUl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQ0xPQ0tfR0FURVJfQ09OVFJPTF9fTUNJRl9XQl9DTElfQ0xPQ0tfR0FURVJfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL01DSUZfV0IwX01DSUZfV0JfV0FSTV9VUF9DTlRMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfV0FSTV9VUF9DTlRMX19NQ0lGX1dCX1BJVENIX1NJWkVfV0FSTVVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX1dBUk1fVVBfQ05UTF9fTUNJRl9XQl9QSVRDSF9TSVpFX1dBUk1VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX1NFTEZfUkVGUkVTSF9DT05UUk9MCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfU0VMRl9SRUZSRVNIX0NPTlRST0xfX0RJU19SRUZSRVNIX1VOREVSX05CUFJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX1NFTEZfUkVGUkVTSF9DT05UUk9MX19QRVJGUkFNRV9TRUxGX1JFRlJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTF9fRElTX1JFRlJFU0hfVU5ERVJfTkJQUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTF9fUEVSRlJBTUVfU0VMRl9SRUZSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vTUNJRl9XQjBfTVVMVElfTEVWRUxfUU9TX0NUUkwKKyNkZWZpbmUgTUNJRl9XQjBfTVVMVElfTEVWRUxfUU9TX0NUUkxfX01BWF9TQ0FMRURfVElNRV9UT19VUkdFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01VTFRJX0xFVkVMX1FPU19DVFJMX19NQVhfU0NBTEVEX1RJTUVfVE9fVVJHRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkZMCisvL01DSUZfV0IwX01DSUZfV0JfU0VDVVJJVFlfTEVWRUwKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9TRUNVUklUWV9MRVZFTF9fTUNJRl9XQl9TRUNVUklUWV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfU0VDVVJJVFlfTEVWRUxfX01DSUZfV0JfU0VDVVJJVFlfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGX0xVTUFfU0laRQorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl9MVU1BX1NJWkVfX01DSUZfV0JfQlVGX0xVTUFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfTFVNQV9TSVpFX19NQ0lGX1dCX0JVRl9MVU1BX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfQ0hST01BX1NJWkUKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfQ0hST01BX1NJWkVfX01DSUZfV0JfQlVGX0NIUk9NQV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGX0NIUk9NQV9TSVpFX19NQ0lGX1dCX0JVRl9DSFJPTUFfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfMV9BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfMV9BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfMl9BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfMl9BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfM19BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfM19BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfNF9BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfNF9BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMV9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9NQ0lGX1dCMF9NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT04KKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzJfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vTUNJRl9XQjBfTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl8zX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIE1DSUZfV0IwX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL01DSUZfV0IwX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTgorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjBfTUNJRl9XQl9CVUZfNF9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMF9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21taHViYnViX21jaWZfd2IxX2Rpc3BkZWMKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9fTUNJRl9XQl9CVUZfRFVBTFNJWkVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9TV19JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9fTUNJRl9XQl9CVUZNR1JfU1dfU0xJQ0VfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX09WRVJSVU5fSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9TV19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9fTUNJRl9XQl9QX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRl9BRERSX0ZFTkNFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGX0RVQUxTSVpFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX1NMSUNFX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX09WRVJSVU5fSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfUF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGX0FERFJfRkVOQ0VfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1IKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfQ1VSX0xJTkVfUl9fTUNJRl9XQl9CVUZNR1JfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1JfX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX19NQ0lGX1dCX0JVRk1HUl9TV19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NUQVRVU19fTUNJRl9XQl9CVUZNR1JfU1dfT1ZFUlJVTl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9CVUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX19NQ0lGX1dCX0JVRl9EVUFMU0laRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1NUQVRVU19fTUNJRl9XQl9CVUZNR1JfQlVGVEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX19NQ0lGX1dCX0JVRk1HUl9ORVhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1NXX09WRVJSVU5fSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGX0RVQUxTSVpFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkZGMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX05FWFRfQlVGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl9QSVRDSAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl9QSVRDSF9fTUNJRl9XQl9CVUZfTFVNQV9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfUElUQ0hfX01DSUZfV0JfQlVGX0NIUk9NQV9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl9QSVRDSF9fTUNJRl9XQl9CVUZfTFVNQV9QSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl9QSVRDSF9fTUNJRl9XQl9CVUZfQ0hST01BX1BJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX19NQ0lGX1dCX0JVRl8xX05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMV9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX19NQ0lGX1dCX0JVRl8xX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMV9DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX19NQ0lGX1dCX0JVRl8xX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9TVEFUVVMyX19NQ0lGX1dCX0JVRl8yX05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMl9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9TVEFUVVMyX19NQ0lGX1dCX0JVRl8yX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMl9DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9TVEFUVVMyX19NQ0lGX1dCX0JVRl8yX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19TVEFUVVMyX19NQ0lGX1dCX0JVRl8zX05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTMl9fTUNJRl9XQl9CVUZfM19DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19TVEFUVVMyX19NQ0lGX1dCX0JVRl8zX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfU1RBVFVTMl9fTUNJRl9XQl9CVUZfM19DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19TVEFUVVMyX19NQ0lGX1dCX0JVRl8zX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX19NQ0lGX1dCX0JVRl80X05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTMl9fTUNJRl9XQl9CVUZfNF9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX19NQ0lGX1dCX0JVRl80X1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfU1RBVFVTMl9fTUNJRl9XQl9CVUZfNF9DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX19NQ0lGX1dCX0JVRl80X0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0FSQklUUkFUSU9OX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX19NQ0lGX1dCX0NMSUVOVF9BUkJJVFJBVElPTl9TTElDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQVJCSVRSQVRJT05fQ09OVFJPTF9fTUNJRl9XQl9USU1FX1BFUl9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX19NQ0lGX1dCX0NMSUVOVF9BUkJJVFJBVElPTl9TTElDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX19NQ0lGX1dCX1RJTUVfUEVSX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkMwMDAwMEwKKy8vTUNJRl9XQjFfTUNJRl9XQl9TQ0xLX0NIQU5HRQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX1NDTEtfQ0hBTkdFX19XTV9DSEFOR0VfQUNLX0ZPUkNFX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9TQ0xLX0NIQU5HRV9fTUNJRl9XQl9DTElfV0FURVJNQVJLX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfU0NMS19DSEFOR0VfX1dNX0NIQU5HRV9BQ0tfRk9SQ0VfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfU0NMS19DSEFOR0VfX01DSUZfV0JfQ0xJX1dBVEVSTUFSS19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisvL01DSUZfV0IxX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX1RFU1RfREVCVUdfSU5ERVhfX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYX19NQ0lGX1dCX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWF9fTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWF9fTUNJRl9XQl9URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL01DSUZfV0IxX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBX19NQ0lGX1dCX1RFU1RfREVCVUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX1RFU1RfREVCVUdfREFUQV9fTUNJRl9XQl9URVNUX0RFQlVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX0FERFJfWV9fTUNJRl9XQl9CVUZfMV9BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX1lfX01DSUZfV0JfQlVGXzFfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzFfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX0FERFJfQworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX0FERFJfQ19fTUNJRl9XQl9CVUZfMV9BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX0NfX01DSUZfV0JfQlVGXzFfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfMV9BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzFfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfWV9fTUNJRl9XQl9CVUZfMl9BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX1lfX01DSUZfV0JfQlVGXzJfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfMl9BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfQworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfQ19fTUNJRl9XQl9CVUZfMl9BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX0NfX01DSUZfV0JfQlVGXzJfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzJfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfWV9fTUNJRl9XQl9CVUZfM19BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX1lfX01DSUZfV0JfQlVGXzNfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfM19BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzNfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfQworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfQ19fTUNJRl9XQl9CVUZfM19BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX0NfX01DSUZfV0JfQlVGXzNfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfM19BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X0FERFJfWV9fTUNJRl9XQl9CVUZfNF9BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX1lfX01DSUZfV0JfQlVGXzRfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzRfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X0FERFJfQworI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X0FERFJfQ19fTUNJRl9XQl9CVUZfNF9BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX0NfX01DSUZfV0JfQlVGXzRfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfNF9BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzRfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTF9fTUNJRl9XQl9CVUZNR1JfVkNFX0xPQ0tfSUdOT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1ZDRV9DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9WQ0VfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTF9fTUNJRl9XQl9CVUZNR1JfVkNFX1NMSUNFX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGTUdSX1ZDRV9DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9TTElDRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9MT0NLX0lHTk9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9TTElDRV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NMSUNFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vTUNJRl9XQjFfTUNJRl9XQl9OQl9QU1RBVEVfTEFURU5DWV9XQVRFUk1BUksKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9OQl9QU1RBVEVfTEFURU5DWV9XQVRFUk1BUktfX05CX1BTVEFURV9DSEFOR0VfUkVGUkVTSF9XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfTkJfUFNUQVRFX0xBVEVOQ1lfV0FURVJNQVJLX19OQl9QU1RBVEVfQ0hBTkdFX1JFRlJFU0hfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01DSUZfV0IxX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9OQl9QU1RBVEVfQ09OVFJPTF9fTkJfUFNUQVRFX0NIQU5HRV9VUkdFTlRfRFVSSU5HX1JFUVVFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfRk9SQ0VfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX05CX1BTVEFURV9DT05UUk9MX19OQl9QU1RBVEVfQUxMT1dfRk9SX1VSR0VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9OQl9QU1RBVEVfQ09OVFJPTF9fTkJfUFNUQVRFX0NIQU5HRV9XQVRFUk1BUktfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfVVJHRU5UX0RVUklOR19SRVFVRVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfRk9SQ0VfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9BTExPV19GT1JfVVJHRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfV0FURVJNQVJLX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01DSUZfV0IxX01DSUZfV0JfV0FURVJNQVJLCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfV0FURVJNQVJLX19NQ0lGX1dCX0NMSV9XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX1dBVEVSTUFSS19fTUNJRl9XQl9DTElfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0NMT0NLX0dBVEVSX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9DTE9DS19HQVRFUl9DT05UUk9MX19NQ0lGX1dCX0NMSV9DTE9DS19HQVRFUl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQ0xPQ0tfR0FURVJfQ09OVFJPTF9fTUNJRl9XQl9DTElfQ0xPQ0tfR0FURVJfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL01DSUZfV0IxX01DSUZfV0JfV0FSTV9VUF9DTlRMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfV0FSTV9VUF9DTlRMX19NQ0lGX1dCX1BJVENIX1NJWkVfV0FSTVVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX1dBUk1fVVBfQ05UTF9fTUNJRl9XQl9QSVRDSF9TSVpFX1dBUk1VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX1NFTEZfUkVGUkVTSF9DT05UUk9MCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfU0VMRl9SRUZSRVNIX0NPTlRST0xfX0RJU19SRUZSRVNIX1VOREVSX05CUFJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX1NFTEZfUkVGUkVTSF9DT05UUk9MX19QRVJGUkFNRV9TRUxGX1JFRlJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTF9fRElTX1JFRlJFU0hfVU5ERVJfTkJQUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTF9fUEVSRlJBTUVfU0VMRl9SRUZSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vTUNJRl9XQjFfTVVMVElfTEVWRUxfUU9TX0NUUkwKKyNkZWZpbmUgTUNJRl9XQjFfTVVMVElfTEVWRUxfUU9TX0NUUkxfX01BWF9TQ0FMRURfVElNRV9UT19VUkdFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01VTFRJX0xFVkVMX1FPU19DVFJMX19NQVhfU0NBTEVEX1RJTUVfVE9fVVJHRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGX0xVTUFfU0laRQorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl9MVU1BX1NJWkVfX01DSUZfV0JfQlVGX0xVTUFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfTFVNQV9TSVpFX19NQ0lGX1dCX0JVRl9MVU1BX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfQ0hST01BX1NJWkUKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfQ0hST01BX1NJWkVfX01DSUZfV0JfQlVGX0NIUk9NQV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGX0NIUk9NQV9TSVpFX19NQ0lGX1dCX0JVRl9DSFJPTUFfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfMV9BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfMV9BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfMl9BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfMl9BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfM19BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfM19BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfNF9BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfNF9BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMV9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9NQ0lGX1dCMV9NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT04KKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzJfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vTUNJRl9XQjFfTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl8zX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIE1DSUZfV0IxX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL01DSUZfV0IxX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTgorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjFfTUNJRl9XQl9CVUZfNF9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMV9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21taHViYnViX21taHViYnViX2Rpc3BkZWMKKy8vV0JJRjBfTUlTQ19DVFJMCisjZGVmaW5lIFdCSUYwX01JU0NfQ1RSTF9fTUNJRldCMF9XUl9DT01CSU5FX1RJTUVPVVRfVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQklGMF9NSVNDX0NUUkxfX01DSUZfV0IwX1NPQ0NMS19EU19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFdCSUYwX01JU0NfQ1RSTF9fTUNJRldCMF9XUl9DT01CSU5FX1RJTUVPVVRfVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIFdCSUYwX01JU0NfQ1RSTF9fTUNJRl9XQjBfU09DQ0xLX0RTX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1dCSUYwX1NNVV9XTV9DT05UUk9MCisjZGVmaW5lIFdCSUYwX1NNVV9XTV9DT05UUk9MX19NQ0lGX1dCMF9XTV9DSEdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgV0JJRjBfU01VX1dNX0NPTlRST0xfX01DSUZfV0IwX1dNX0NIR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBXQklGMF9TTVVfV01fQ09OVFJPTF9fTUNJRl9XQjBfV01fQ0hHX0FDS19JTlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFdCSUYwX1NNVV9XTV9DT05UUk9MX19NQ0lGX1dCMF9XTV9DSEdfQUNLX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgV0JJRjBfU01VX1dNX0NPTlRST0xfX01DSUZfV0IwX1dNX0NIR19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgV0JJRjBfU01VX1dNX0NPTlRST0xfX01DSUZfV0IwX1dNX0NIR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgV0JJRjBfU01VX1dNX0NPTlRST0xfX01DSUZfV0IwX1dNX0NIR19BQ0tfSU5UX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgV0JJRjBfU01VX1dNX0NPTlRST0xfX01DSUZfV0IwX1dNX0NIR19BQ0tfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vV0JJRjBfUEhBU0UwX09VVFNUQU5ESU5HX0NPVU5URVIKKyNkZWZpbmUgV0JJRjBfUEhBU0UwX09VVFNUQU5ESU5HX0NPVU5URVJfX01DSUZfV0IwX1BIQVNFMF9PVVRTVEFORElOR19DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFdCSUYwX1BIQVNFMF9PVVRTVEFORElOR19DT1VOVEVSX19NQ0lGX1dCMF9QSEFTRTBfT1VUU1RBTkRJTkdfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRkZGRkZMCisvL1dCSUYwX1BIQVNFMV9PVVRTVEFORElOR19DT1VOVEVSCisjZGVmaW5lIFdCSUYwX1BIQVNFMV9PVVRTVEFORElOR19DT1VOVEVSX19NQ0lGX1dCMF9QSEFTRTFfT1VUU1RBTkRJTkdfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBXQklGMF9QSEFTRTFfT1VUU1RBTkRJTkdfQ09VTlRFUl9fTUNJRl9XQjBfUEhBU0UxX09VVFNUQU5ESU5HX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkZGRkZGTAorLy9WR0FfU1JDX1NQTElUX0NOVEwKKyNkZWZpbmUgVkdBX1NSQ19TUExJVF9DTlRMX19WR0FfU1BMSVRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZHQV9TUkNfU1BMSVRfQ05UTF9fVkdBX1NQTElUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL01NSFVCQlVCX01FTV9QV1JfU1RBVFVTCisjZGVmaW5lIE1NSFVCQlVCX01FTV9QV1JfU1RBVFVTX19NQ0lGX0RXQjBfTFVNQV9NRU0wX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUhVQkJVQl9NRU1fUFdSX1NUQVRVU19fTUNJRl9EV0IwX0xVTUFfTUVNMV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9TVEFUVVNfX01DSUZfRFdCMF9DSFJPTUFfTUVNMF9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NSFVCQlVCX01FTV9QV1JfU1RBVFVTX19NQ0lGX0RXQjBfQ0hST01BX01FTTFfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUhVQkJVQl9NRU1fUFdSX1NUQVRVU19fVkdBX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NSFVCQlVCX01FTV9QV1JfU1RBVFVTX19NQ0lGX0RXQjBfTFVNQV9NRU0wX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NSFVCQlVCX01FTV9QV1JfU1RBVFVTX19NQ0lGX0RXQjBfTFVNQV9NRU0xX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NSFVCQlVCX01FTV9QV1JfU1RBVFVTX19NQ0lGX0RXQjBfQ0hST01BX01FTTBfUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NSFVCQlVCX01FTV9QV1JfU1RBVFVTX19NQ0lGX0RXQjBfQ0hST01BX01FTTFfUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NSFVCQlVCX01FTV9QV1JfU1RBVFVTX19WR0FfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NSFVCQlVCX01FTV9QV1JfQ05UTAorI2RlZmluZSBNTUhVQkJVQl9NRU1fUFdSX0NOVExfX1ZHQV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9DTlRMX19WR0FfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NSFVCQlVCX01FTV9QV1JfQ05UTF9fTUNJRl9EV0IwX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUhVQkJVQl9NRU1fUFdSX0NOVExfX01DSUZfRFdCMF9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9DTlRMX19NQ0lGX0RXQjBfTUVNX1BXUl9NT0RFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NSFVCQlVCX01FTV9QV1JfQ05UTF9fTUNJRl9EV0IwX0xVTUFfTUVNX0VOX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUhVQkJVQl9NRU1fUFdSX0NOVExfX01DSUZfRFdCMF9DSFJPTUFfTUVNX0VOX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9DTlRMX19WR0FfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9DTlRMX19WR0FfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9DTlRMX19NQ0lGX0RXQjBfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9DTlRMX19NQ0lGX0RXQjBfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9DTlRMX19NQ0lGX0RXQjBfTUVNX1BXUl9NT0RFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA2MEwKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9DTlRMX19NQ0lGX0RXQjBfTFVNQV9NRU1fRU5fTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1IVUJCVUJfTUVNX1BXUl9DTlRMX19NQ0lGX0RXQjBfQ0hST01BX01FTV9FTl9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vTU1IVUJCVUJfQ0xPQ0tfQ05UTAorI2RlZmluZSBNTUhVQkJVQl9DTE9DS19DTlRMX19NTUhVQkJVQl9URVNUX0NMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1IVUJCVUJfQ0xPQ0tfQ05UTF9fRElTUENMS19SX01NSFVCQlVCX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NSFVCQlVCX0NMT0NLX0NOVExfX0RJU1BDTEtfR19WR0FJRl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUhVQkJVQl9DTE9DS19DTlRMX19TT0NDTEtfR19WR0FJRl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1IVUJCVUJfQ0xPQ0tfQ05UTF9fRElTUENMS19HX1ZHQV9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NSFVCQlVCX0NMT0NLX0NOVExfX0RJU1BDTEtfR19XQklGMF9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUhVQkJVQl9DTE9DS19DTlRMX19TT0NDTEtfR19XQklGMF9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1IVUJCVUJfQ0xPQ0tfQ05UTF9fTU1IVUJCVUJfVEVTVF9DTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1IVUJCVUJfQ0xPQ0tfQ05UTF9fRElTUENMS19SX01NSFVCQlVCX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1IVUJCVUJfQ0xPQ0tfQ05UTF9fRElTUENMS19HX1ZHQUlGX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1IVUJCVUJfQ0xPQ0tfQ05UTF9fU09DQ0xLX0dfVkdBSUZfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1IVUJCVUJfQ0xPQ0tfQ05UTF9fRElTUENMS19HX1ZHQV9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1IVUJCVUJfQ0xPQ0tfQ05UTF9fRElTUENMS19HX1dCSUYwX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1IVUJCVUJfQ0xPQ0tfQ05UTF9fU09DQ0xLX0dfV0JJRjBfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vTU1IVUJCVUJfU09GVF9SRVNFVAorI2RlZmluZSBNTUhVQkJVQl9TT0ZUX1JFU0VUX19WR0FfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1IVUJCVUJfU09GVF9SRVNFVF9fVkdBSUZfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NSFVCQlVCX1NPRlRfUkVTRVRfX1dCSUYwX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUhVQkJVQl9TT0ZUX1JFU0VUX19ETVVJRl9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1IVUJCVUJfU09GVF9SRVNFVF9fVkdBX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1IVUJCVUJfU09GVF9SRVNFVF9fVkdBSUZfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1IVUJCVUJfU09GVF9SRVNFVF9fV0JJRjBfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1IVUJCVUJfU09GVF9SRVNFVF9fRE1VSUZfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRE1VX0lGX0VSUl9TVEFUVVMKKyNkZWZpbmUgRE1VX0lGX0VSUl9TVEFUVVNfX0RNVV9SRF9PVVRTVEFORElOR19FUlJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNVV9JRl9FUlJfU1RBVFVTX19ETVVfUkRfT1VUU1RBTkRJTkdfRVJSX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETVVfSUZfRVJSX1NUQVRVU19fRE1VX1JEX09VVFNUQU5ESU5HX0VSUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETVVfSUZfRVJSX1NUQVRVU19fRE1VX1JEX09VVFNUQU5ESU5HX0VSUl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9NTUhVQkJVQl9DTElFTlRfVU5JVF9JRAorI2RlZmluZSBNTUhVQkJVQl9DTElFTlRfVU5JVF9JRF9fVkdBX1VOSVRfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1IVUJCVUJfQ0xJRU5UX1VOSVRfSURfX1dCSUYwX1VOSVRfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NSFVCQlVCX0NMSUVOVF9VTklUX0lEX19WR0FfVU5JVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NSFVCQlVCX0NMSUVOVF9VTklUX0lEX19XQklGMF9VTklUX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbW1odWJidWJfdmdhaWZfZGlzcGRlYworLy9NQ0lGX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9DT05UUk9MX19NQ0lGX01DX0xBVEVOQ1lfQ09VTlRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX0NPTlRST0xfX01DSUZfTUNfTEFURU5DWV9DT1VOVEVSX1VSR0VOVF9PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfQ09OVFJPTF9fTUNJRl9NQ19MQVRFTkNZX0NPVU5URVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfQ09OVFJPTF9fTUNJRl9NQ19MQVRFTkNZX0NPVU5URVJfVVJHRU5UX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV1JJVEVfQ09NQklORV9DT05UUk9MCisjZGVmaW5lIE1DSUZfV1JJVEVfQ09NQklORV9DT05UUk9MX19NQ0lGX1dSSVRFX0NPTUJJTkVfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dSSVRFX0NPTUJJTkVfQ09OVFJPTF9fTUNJRl9XUklURV9DT01CSU5FX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9NQ0lGX1BIQVNFMF9PVVRTVEFORElOR19DT1VOVEVSCisjZGVmaW5lIE1DSUZfUEhBU0UwX09VVFNUQU5ESU5HX0NPVU5URVJfX01DSUZfUEhBU0UwX09VVFNUQU5ESU5HX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1BIQVNFMF9PVVRTVEFORElOR19DT1VOVEVSX19NQ0lGX1BIQVNFMF9PVVRTVEFORElOR19DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkZGRkZGTAorLy9NQ0lGX1BIQVNFMV9PVVRTVEFORElOR19DT1VOVEVSCisjZGVmaW5lIE1DSUZfUEhBU0UxX09VVFNUQU5ESU5HX0NPVU5URVJfX01DSUZfUEhBU0UxX09VVFNUQU5ESU5HX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1BIQVNFMV9PVVRTVEFORElOR19DT1VOVEVSX19NQ0lGX1BIQVNFMV9PVVRTVEFORElOR19DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkZGRkZGTAorLy9NQ0lGX1BIQVNFMl9PVVRTVEFORElOR19DT1VOVEVSCisjZGVmaW5lIE1DSUZfUEhBU0UyX09VVFNUQU5ESU5HX0NPVU5URVJfX01DSUZfUEhBU0UyX09VVFNUQU5ESU5HX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1BIQVNFMl9PVVRTVEFORElOR19DT1VOVEVSX19NQ0lGX1BIQVNFMl9PVVRTVEFORElOR19DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21taHViYnViX21taHViYnViX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfQ05UTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURQorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EQ19QRVJGTU9ONF9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX1BFUkZNT040X1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDX1BFUkZNT040X1BFUkZNT05fQ1ZBTFVFX0xPVworI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfUEVSRk1PTjRfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9ONF9QRVJGTU9OX0xPVworI2RlZmluZSBEQ19QRVJGTU9ONF9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjRfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMHN0cmVhbTBfZGlzcGRlYworLy9BWkYwU1RSRUFNMF9BWkFMSUFfU1RSRUFNX0lOREVYCisjZGVmaW5lIEFaRjBTVFJFQU0wX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMF9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTBfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMFNUUkVBTTBfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMFNUUkVBTTBfQVpBTElBX1NUUkVBTV9EQVRBCisjZGVmaW5lIEFaRjBTVFJFQU0wX0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMF9BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtMV9kaXNwZGVjCisvL0FaRjBTVFJFQU0xX0FaQUxJQV9TVFJFQU1fSU5ERVgKKyNkZWZpbmUgQVpGMFNUUkVBTTFfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNMV9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwU1RSRUFNMV9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwU1RSRUFNMV9BWkFMSUFfU1RSRUFNX0RBVEEKKyNkZWZpbmUgQVpGMFNUUkVBTTFfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xX0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBzdHJlYW0yX2Rpc3BkZWMKKy8vQVpGMFNUUkVBTTJfQVpBTElBX1NUUkVBTV9JTkRFWAorI2RlZmluZSBBWkYwU1RSRUFNMl9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTJfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU0yX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBTVFJFQU0yX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBTVFJFQU0yX0FaQUxJQV9TVFJFQU1fREFUQQorI2RlZmluZSBBWkYwU1RSRUFNMl9BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTJfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMHN0cmVhbTNfZGlzcGRlYworLy9BWkYwU1RSRUFNM19BWkFMSUFfU1RSRUFNX0lOREVYCisjZGVmaW5lIEFaRjBTVFJFQU0zX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNM19BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTNfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMFNUUkVBTTNfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMFNUUkVBTTNfQVpBTElBX1NUUkVBTV9EQVRBCisjZGVmaW5lIEFaRjBTVFJFQU0zX0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNM19BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtNF9kaXNwZGVjCisvL0FaRjBTVFJFQU00X0FaQUxJQV9TVFJFQU1fSU5ERVgKKyNkZWZpbmUgQVpGMFNUUkVBTTRfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU00X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNNF9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwU1RSRUFNNF9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwU1RSRUFNNF9BWkFMSUFfU1RSRUFNX0RBVEEKKyNkZWZpbmUgQVpGMFNUUkVBTTRfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU00X0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBzdHJlYW01X2Rpc3BkZWMKKy8vQVpGMFNUUkVBTTVfQVpBTElBX1NUUkVBTV9JTkRFWAorI2RlZmluZSBBWkYwU1RSRUFNNV9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTVfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU01X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBTVFJFQU01X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBTVFJFQU01X0FaQUxJQV9TVFJFQU1fREFUQQorI2RlZmluZSBBWkYwU1RSRUFNNV9BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTVfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMHN0cmVhbTZfZGlzcGRlYworLy9BWkYwU1RSRUFNNl9BWkFMSUFfU1RSRUFNX0lOREVYCisjZGVmaW5lIEFaRjBTVFJFQU02X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNNl9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTZfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMFNUUkVBTTZfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMFNUUkVBTTZfQVpBTElBX1NUUkVBTV9EQVRBCisjZGVmaW5lIEFaRjBTVFJFQU02X0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNNl9BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtN19kaXNwZGVjCisvL0FaRjBTVFJFQU03X0FaQUxJQV9TVFJFQU1fSU5ERVgKKyNkZWZpbmUgQVpGMFNUUkVBTTdfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU03X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNN19BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwU1RSRUFNN19BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwU1RSRUFNN19BWkFMSUFfU1RSRUFNX0RBVEEKKyNkZWZpbmUgQVpGMFNUUkVBTTdfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU03X0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6X21pc2NfZGlzcGRlYworLy9BWl9DTE9DS19DTlRMCisjZGVmaW5lIEFaX0NMT0NLX0NOVExfX1NDTEtfR19TVFJFQU1fQVpfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWl9DTE9DS19DTlRMX19TQ0xLX1JfQVpfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpfQ0xPQ0tfQ05UTF9fU0NMS19HX0NOVExfQVpfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWl9DTE9DS19DTlRMX19EQ0lQR19URVNUX0NMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaX0NMT0NLX0NOVExfX1NDTEtfR19TVFJFQU1fQVpfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaX0NMT0NLX0NOVExfX1NDTEtfUl9BWl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaX0NMT0NLX0NOVExfX1NDTEtfR19DTlRMX0FaX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaX0NMT0NLX0NOVExfX0RDSVBHX1RFU1RfQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6X2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfQ05UTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURQorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EQ19QRVJGTU9ONV9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX1BFUkZNT041X1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDX1BFUkZNT041X1BFUkZNT05fQ1ZBTFVFX0xPVworI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfUEVSRk1PTjVfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9ONV9QRVJGTU9OX0xPVworI2RlZmluZSBEQ19QRVJGTU9ONV9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjVfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGVuZHBvaW50MF9kaXNwZGVjCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYX19BWkFMSUFfRU5EUE9JTlRfUkVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0VORFBPSU5UX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9FTkRQT0lOVF9SRUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBX19BWkFMSUFfRU5EUE9JTlRfUkVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwZW5kcG9pbnQxX2Rpc3BkZWMKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9FTkRQT0lOVF9SRUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYX19BWkFMSUFfRU5EUE9JTlRfUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQV9fQVpBTElBX0VORFBPSU5UX1JFR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9FTkRQT0lOVF9SRUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBlbmRwb2ludDJfZGlzcGRlYworLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0VORFBPSU5UX1JFR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9FTkRQT0lOVF9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBX19BWkFMSUFfRU5EUE9JTlRfUkVHX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQV9fQVpBTElBX0VORFBPSU5UX1JFR19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGVuZHBvaW50M19kaXNwZGVjCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYX19BWkFMSUFfRU5EUE9JTlRfUkVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0VORFBPSU5UX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9FTkRQT0lOVF9SRUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBX19BWkFMSUFfRU5EUE9JTlRfUkVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwZW5kcG9pbnQ0X2Rpc3BkZWMKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9FTkRQT0lOVF9SRUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYX19BWkFMSUFfRU5EUE9JTlRfUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQV9fQVpBTElBX0VORFBPSU5UX1JFR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9FTkRQT0lOVF9SRUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBlbmRwb2ludDVfZGlzcGRlYworLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0VORFBPSU5UX1JFR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9FTkRQT0lOVF9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBX19BWkFMSUFfRU5EUE9JTlRfUkVHX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQV9fQVpBTElBX0VORFBPSU5UX1JFR19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGVuZHBvaW50Nl9kaXNwZGVjCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYX19BWkFMSUFfRU5EUE9JTlRfUkVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0VORFBPSU5UX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9FTkRQT0lOVF9SRUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19FTkRQT0lOVF9EQVRBX19BWkFMSUFfRU5EUE9JTlRfUkVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwZW5kcG9pbnQ3X2Rpc3BkZWMKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9FTkRQT0lOVF9SRUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0lOREVYX19BWkFMSUFfRU5EUE9JTlRfUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfRU5EUE9JTlRfREFUQV9fQVpBTElBX0VORFBPSU5UX1JFR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9FTkRQT0lOVF9SRUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBjb250cm9sbGVyX2Rpc3BkZWMKKy8vQVpBTElBX0NPTlRST0xMRVJfQ0xPQ0tfR0FUSU5HCisjZGVmaW5lIEFaQUxJQV9DT05UUk9MTEVSX0NMT0NLX0dBVElOR19fRU5BQkxFX0NMT0NLX0dBVElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ09OVFJPTExFUl9DTE9DS19HQVRJTkdfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0NPTlRST0xMRVJfQ0xPQ0tfR0FUSU5HX19FTkFCTEVfQ0xPQ0tfR0FUSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0NPTlRST0xMRVJfQ0xPQ0tfR0FUSU5HX19DTE9DS19PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQVpBTElBX0FVRElPX0RUTworI2RlZmluZSBBWkFMSUFfQVVESU9fRFRPX19BWkFMSUFfQVVESU9fRFRPX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0FVRElPX0RUT19fQVpBTElBX0FVRElPX0RUT19NT0RVTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkFMSUFfQVVESU9fRFRPX19BWkFMSUFfQVVESU9fRFRPX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBBWkFMSUFfQVVESU9fRFRPX19BWkFMSUFfQVVESU9fRFRPX01PRFVMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9BWkFMSUFfQVVESU9fRFRPX0NPTlRST0wKKyNkZWZpbmUgQVpBTElBX0FVRElPX0RUT19DT05UUk9MX19BWkFMSUFfQVVESU9fRk9SQ0VfRFRPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaQUxJQV9BVURJT19EVE9fQ09OVFJPTF9fQVpBTElBX0FVRElPX0ZPUkNFX0RUT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisvL0FaQUxJQV9TT0NDTEtfQ09OVFJPTAorI2RlZmluZSBBWkFMSUFfU09DQ0xLX0NPTlRST0xfX0FVRElPX1NUUkVBTV9TT0NDTEtfREVFUF9TTEVFUF9FWElUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpBTElBX1NPQ0NMS19DT05UUk9MX19BVURJT19TVFJFQU1fU09DQ0xLX0RFRVBfU0xFRVBfRVhJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vQVpBTElBX1VOREVSRkxPV19GSUxMRVJfU0FNUExFCisjZGVmaW5lIEFaQUxJQV9VTkRFUkZMT1dfRklMTEVSX1NBTVBMRV9fQVpBTElBX1VOREVSRkxPV19GSUxMRVJfU0FNUExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfVU5ERVJGTE9XX0ZJTExFUl9TQU1QTEVfX0FaQUxJQV9VTkRFUkZMT1dfRklMTEVSX1NBTVBMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfREFUQV9ETUFfQ09OVFJPTAorI2RlZmluZSBBWkFMSUFfREFUQV9ETUFfQ09OVFJPTF9fREFUQV9ETUFfTk9OX1NOT09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0RBVEFfRE1BX0NPTlRST0xfX0lOUFVUX0RBVEFfRE1BX05PTl9TTk9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaQUxJQV9EQVRBX0RNQV9DT05UUk9MX19EQVRBX0RNQV9JU09DSFJPTk9VU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfREFUQV9ETUFfQ09OVFJPTF9fSU5QVVRfREFUQV9ETUFfSVNPQ0hST05PVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpBTElBX0RBVEFfRE1BX0NPTlRST0xfX0FaQUxJQV9JT0NfR0VORVJBVElPTl9NRVRIT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkFMSUFfREFUQV9ETUFfQ09OVFJPTF9fQVpBTElBX1VOREVSRkxPV19DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaQUxJQV9EQVRBX0RNQV9DT05UUk9MX19EQVRBX0RNQV9OT05fU05PT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaQUxJQV9EQVRBX0RNQV9DT05UUk9MX19JTlBVVF9EQVRBX0RNQV9OT05fU05PT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIEFaQUxJQV9EQVRBX0RNQV9DT05UUk9MX19EQVRBX0RNQV9JU09DSFJPTk9VU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIEFaQUxJQV9EQVRBX0RNQV9DT05UUk9MX19JTlBVVF9EQVRBX0RNQV9JU09DSFJPTk9VU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIEFaQUxJQV9EQVRBX0RNQV9DT05UUk9MX19BWkFMSUFfSU9DX0dFTkVSQVRJT05fTUVUSE9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaQUxJQV9EQVRBX0RNQV9DT05UUk9MX19BWkFMSUFfVU5ERVJGTE9XX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL0FaQUxJQV9CRExfRE1BX0NPTlRST0wKKyNkZWZpbmUgQVpBTElBX0JETF9ETUFfQ09OVFJPTF9fQkRMX0RNQV9OT05fU05PT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9CRExfRE1BX0NPTlRST0xfX0lOUFVUX0JETF9ETUFfTk9OX1NOT09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkFMSUFfQkRMX0RNQV9DT05UUk9MX19CRExfRE1BX0lTT0NIUk9OT1VTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0JETF9ETUFfQ09OVFJPTF9fSU5QVVRfQkRMX0RNQV9JU09DSFJPTk9VU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaQUxJQV9CRExfRE1BX0NPTlRST0xfX0JETF9ETUFfTk9OX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaQUxJQV9CRExfRE1BX0NPTlRST0xfX0lOUFVUX0JETF9ETUFfTk9OX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIEFaQUxJQV9CRExfRE1BX0NPTlRST0xfX0JETF9ETUFfSVNPQ0hST05PVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIEFaQUxJQV9CRExfRE1BX0NPTlRST0xfX0lOUFVUX0JETF9ETUFfSVNPQ0hST05PVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisvL0FaQUxJQV9SSVJCX0FORF9EUF9DT05UUk9MCisjZGVmaW5lIEFaQUxJQV9SSVJCX0FORF9EUF9DT05UUk9MX19SSVJCX05PTl9TTk9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfUklSQl9BTkRfRFBfQ09OVFJPTF9fRFBfRE1BX05PTl9TTk9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX1JJUkJfQU5EX0RQX0NPTlRST0xfX0RQX1VQREFURV9GUkVRX0RJVklERVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaQUxJQV9SSVJCX0FORF9EUF9DT05UUk9MX19SSVJCX05PTl9TTk9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9SSVJCX0FORF9EUF9DT05UUk9MX19EUF9ETUFfTk9OX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaQUxJQV9SSVJCX0FORF9EUF9DT05UUk9MX19EUF9VUERBVEVfRlJFUV9ESVZJREVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRTBMCisvL0FaQUxJQV9DT1JCX0RNQV9DT05UUk9MCisjZGVmaW5lIEFaQUxJQV9DT1JCX0RNQV9DT05UUk9MX19DT1JCX0RNQV9OT05fU05PT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ09SQl9ETUFfQ09OVFJPTF9fQ09SQl9ETUFfSVNPQ0hST05PVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0NPUkJfRE1BX0NPTlRST0xfX0NPUkJfRE1BX05PTl9TTk9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0NPUkJfRE1BX0NPTlRST0xfX0NPUkJfRE1BX0lTT0NIUk9OT1VTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQVpBTElBX0FQUExJQ0FUSU9OX1BPU0lUSU9OX0lOX0NZQ0xJQ19CVUZGRVIKKyNkZWZpbmUgQVpBTElBX0FQUExJQ0FUSU9OX1BPU0lUSU9OX0lOX0NZQ0xJQ19CVUZGRVJfX0FQUExJQ0FUSU9OX1BPU0lUSU9OX0lOX0NZQ0xJQ19CVUZGRVJfX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9BUFBMSUNBVElPTl9QT1NJVElPTl9JTl9DWUNMSUNfQlVGRkVSX19BUFBMSUNBVElPTl9QT1NJVElPTl9JTl9DWUNMSUNfQlVGRkVSX01BU0sgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9DWUNMSUNfQlVGRkVSX1NZTkMKKyNkZWZpbmUgQVpBTElBX0NZQ0xJQ19CVUZGRVJfU1lOQ19fQ1lDTElDX0JVRkZFUl9TWU5DX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9DWUNMSUNfQlVGRkVSX1NZTkNfX0NZQ0xJQ19CVUZGRVJfU1lOQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaQUxJQV9HTE9CQUxfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaQUxJQV9HTE9CQUxfQ0FQQUJJTElUSUVTX19OVU1CRVJfT0ZfU0VSSUFMX0RBVEFfT1VUUFVUX1NJR05BTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkFMSUFfR0xPQkFMX0NBUEFCSUxJVElFU19fTlVNQkVSX09GX1NFUklBTF9EQVRBX09VVFBVVF9TSUdOQUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorLy9BWkFMSUFfT1VUUFVUX1BBWUxPQURfQ0FQQUJJTElUWQorI2RlZmluZSBBWkFMSUFfT1VUUFVUX1BBWUxPQURfQ0FQQUJJTElUWV9fT1VUUFVUX1BBWUxPQURfQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX09VVFBVVF9QQVlMT0FEX0NBUEFCSUxJVFlfX09VVFNUUk1QQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkFMSUFfT1VUUFVUX1BBWUxPQURfQ0FQQUJJTElUWV9fT1VUUFVUX1BBWUxPQURfQ0FQQUJJTElUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBBWkFMSUFfT1VUUFVUX1BBWUxPQURfQ0FQQUJJTElUWV9fT1VUU1RSTVBBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9BWkFMSUFfT1VUUFVUX1NUUkVBTV9BUkJJVEVSX0NPTlRST0wKKyNkZWZpbmUgQVpBTElBX09VVFBVVF9TVFJFQU1fQVJCSVRFUl9DT05UUk9MX19MQVRFTkNZX0hJRElOR19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9PVVRQVVRfU1RSRUFNX0FSQklURVJfQ09OVFJPTF9fU1lTX01FTV9BQ1RJVkVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfT1VUUFVUX1NUUkVBTV9BUkJJVEVSX0NPTlRST0xfX0lOUFVUX0xBVEVOQ1lfSElESU5HX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaQUxJQV9PVVRQVVRfU1RSRUFNX0FSQklURVJfQ09OVFJPTF9fTEFURU5DWV9ISURJTkdfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaQUxJQV9PVVRQVVRfU1RSRUFNX0FSQklURVJfQ09OVFJPTF9fU1lTX01FTV9BQ1RJVkVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaQUxJQV9PVVRQVVRfU1RSRUFNX0FSQklURVJfQ09OVFJPTF9fSU5QVVRfTEFURU5DWV9ISURJTkdfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaQUxJQV9JTlBVVF9QQVlMT0FEX0NBUEFCSUxJVFkKKyNkZWZpbmUgQVpBTElBX0lOUFVUX1BBWUxPQURfQ0FQQUJJTElUWV9fSU5QVVRfUEFZTE9BRF9DQVBBQklMSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9QQVlMT0FEX0NBUEFCSUxJVFlfX0lOU1RSTVBBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX1BBWUxPQURfQ0FQQUJJTElUWV9fSU5QVVRfUEFZTE9BRF9DQVBBQklMSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQVpBTElBX0lOUFVUX1BBWUxPQURfQ0FQQUJJTElUWV9fSU5TVFJNUEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDBfX0lOUFVUX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NPTlRST0wwX19JTlBVVF9DUkNfQkxPQ0tfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DT05UUk9MMF9fSU5QVVRfQ1JDX0lOU1RBTkNFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDBfX0lOUFVUX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDBfX0lOUFVUX0NSQ19CTE9DS19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDBfX0lOUFVUX0NSQ19JTlNUQU5DRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKy8vQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDEKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDFfX0lOUFVUX0NSQ19CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NPTlRST0wxX19JTlBVVF9DUkNfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9JTlBVVF9DUkMwX0NPTlRST0wyCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NPTlRST0wyX19JTlBVVF9DUkNfQkxPQ0tfSVRFUkFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DT05UUk9MMl9fSU5QVVRfQ1JDX0JMT0NLX0lURVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9BWkFMSUFfSU5QVVRfQ1JDMF9DT05UUk9MMworI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DT05UUk9MM19fSU5QVVRfQ1JDX0NPTVBMRVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ09OVFJPTDNfX0lOUFVUX0NSQ19CTE9DS19DT01QTEVURV9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NPTlRST0wzX19JTlBVVF9DUkNfQ0hBTk5FTF9SRVNVTFRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DT05UUk9MM19fSU5QVVRfQ1JDX0NPTVBMRVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DT05UUk9MM19fSU5QVVRfQ1JDX0JMT0NLX0NPTVBMRVRFX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DT05UUk9MM19fSU5QVVRfQ1JDX0NIQU5ORUxfUkVTVUxUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorLy9BWkFMSUFfSU5QVVRfQ1JDMF9SRVNVTFQKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfUkVTVUxUX19JTlBVVF9DUkNfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX1JFU1VMVF9fSU5QVVRfQ1JDX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wwX19JTlBVVF9DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9DT05UUk9MMF9fSU5QVVRfQ1JDX0JMT0NLX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ09OVFJPTDBfX0lOUFVUX0NSQ19JTlNUQU5DRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wwX19JTlBVVF9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wwX19JTlBVVF9DUkNfQkxPQ0tfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wwX19JTlBVVF9DUkNfSU5TVEFOQ0VfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisvL0FaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wxCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wxX19JTlBVVF9DUkNfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9DT05UUk9MMV9fSU5QVVRfQ1JDX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfSU5QVVRfQ1JDMV9DT05UUk9MMgorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9DT05UUk9MMl9fSU5QVVRfQ1JDX0JMT0NLX0lURVJBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ09OVFJPTDJfX0lOUFVUX0NSQ19CTE9DS19JVEVSQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQVpBTElBX0lOUFVUX0NSQzFfQ09OVFJPTDMKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ09OVFJPTDNfX0lOUFVUX0NSQ19DT01QTEVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NPTlRST0wzX19JTlBVVF9DUkNfQkxPQ0tfQ09NUExFVEVfUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9DT05UUk9MM19fSU5QVVRfQ1JDX0NIQU5ORUxfUkVTVUxUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ09OVFJPTDNfX0lOUFVUX0NSQ19DT01QTEVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ09OVFJPTDNfX0lOUFVUX0NSQ19CTE9DS19DT01QTEVURV9QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ09OVFJPTDNfX0lOUFVUX0NSQ19DSEFOTkVMX1JFU1VMVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKy8vQVpBTElBX0lOUFVUX0NSQzFfUkVTVUxUCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX1JFU1VMVF9fSU5QVVRfQ1JDX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9SRVNVTFRfX0lOUFVUX0NSQ19SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfQ1JDMF9DT05UUk9MMAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DT05UUk9MMF9fQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ09OVFJPTDBfX0NSQ19CTE9DS19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9DUkMwX0NPTlRST0wwX19DUkNfSU5TVEFOQ0VfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DT05UUk9MMF9fQ1JDX1NPVVJDRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ09OVFJPTDBfX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ09OVFJPTDBfX0NSQ19CTE9DS19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ09OVFJPTDBfX0NSQ19JTlNUQU5DRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ09OVFJPTDBfX0NSQ19TT1VSQ0VfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vQVpBTElBX0NSQzBfQ09OVFJPTDEKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ09OVFJPTDFfX0NSQ19CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9DUkMwX0NPTlRST0wxX19DUkNfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9DUkMwX0NPTlRST0wyCisjZGVmaW5lIEFaQUxJQV9DUkMwX0NPTlRST0wyX19DUkNfQkxPQ0tfSVRFUkFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DT05UUk9MMl9fQ1JDX0JMT0NLX0lURVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9BWkFMSUFfQ1JDMF9DT05UUk9MMworI2RlZmluZSBBWkFMSUFfQ1JDMF9DT05UUk9MM19fQ1JDX0NPTVBMRVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ09OVFJPTDNfX0NSQ19CTE9DS19DT01QTEVURV9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9DUkMwX0NPTlRST0wzX19DUkNfQ0hBTk5FTF9SRVNVTFRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DT05UUk9MM19fQ1JDX0NPTVBMRVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DT05UUk9MM19fQ1JDX0JMT0NLX0NPTVBMRVRFX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DT05UUk9MM19fQ1JDX0NIQU5ORUxfUkVTVUxUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorLy9BWkFMSUFfQ1JDMF9SRVNVTFQKKyNkZWZpbmUgQVpBTElBX0NSQzBfUkVTVUxUX19DUkNfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9DUkMwX1JFU1VMVF9fQ1JDX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9DUkMxX0NPTlRST0wwCisjZGVmaW5lIEFaQUxJQV9DUkMxX0NPTlRST0wwX19DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ1JDMV9DT05UUk9MMF9fQ1JDX0JMT0NLX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ09OVFJPTDBfX0NSQ19JTlNUQU5DRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaQUxJQV9DUkMxX0NPTlRST0wwX19DUkNfU09VUkNFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBBWkFMSUFfQ1JDMV9DT05UUk9MMF9fQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfQ1JDMV9DT05UUk9MMF9fQ1JDX0JMT0NLX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkFMSUFfQ1JDMV9DT05UUk9MMF9fQ1JDX0lOU1RBTkNFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBBWkFMSUFfQ1JDMV9DT05UUk9MMF9fQ1JDX1NPVVJDRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9BWkFMSUFfQ1JDMV9DT05UUk9MMQorI2RlZmluZSBBWkFMSUFfQ1JDMV9DT05UUk9MMV9fQ1JDX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ09OVFJPTDFfX0NSQ19CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0NSQzFfQ09OVFJPTDIKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ09OVFJPTDJfX0NSQ19CTE9DS19JVEVSQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9DUkMxX0NPTlRST0wyX19DUkNfQkxPQ0tfSVRFUkFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0FaQUxJQV9DUkMxX0NPTlRST0wzCisjZGVmaW5lIEFaQUxJQV9DUkMxX0NPTlRST0wzX19DUkNfQ09NUExFVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ1JDMV9DT05UUk9MM19fQ1JDX0JMT0NLX0NPTVBMRVRFX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ09OVFJPTDNfX0NSQ19DSEFOTkVMX1JFU1VMVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaQUxJQV9DUkMxX0NPTlRST0wzX19DUkNfQ09NUExFVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9DUkMxX0NPTlRST0wzX19DUkNfQkxPQ0tfQ09NUExFVEVfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaQUxJQV9DUkMxX0NPTlRST0wzX19DUkNfQ0hBTk5FTF9SRVNVTFRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisvL0FaQUxJQV9DUkMxX1JFU1VMVAorI2RlZmluZSBBWkFMSUFfQ1JDMV9SRVNVTFRfX0NSQ19SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzFfUkVTVUxUX19DUkNfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX01FTV9QV1JfQ1RSTAorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9DVFJMX19BWl9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaQUxJQV9NRU1fUFdSX0NUUkxfX0FaX0lOUFVUX1NUUkVBTTBfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9DVFJMX19BWl9JTlBVVF9TVFJFQU0wX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNMV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaQUxJQV9NRU1fUFdSX0NUUkxfX0FaX0lOUFVUX1NUUkVBTTFfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9DVFJMX19BWl9JTlBVVF9TVFJFQU0yX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNMl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEFaQUxJQV9NRU1fUFdSX0NUUkxfX0FaX0lOUFVUX1NUUkVBTTNfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9DVFJMX19BWl9JTlBVVF9TVFJFQU0zX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNNF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEFaQUxJQV9NRU1fUFdSX0NUUkxfX0FaX0lOUFVUX1NUUkVBTTRfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNNV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9DVFJMX19BWl9JTlBVVF9TVFJFQU01X01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaQUxJQV9NRU1fUFdSX0NUUkxfX0FaX01FTV9QV1JfTU9ERV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNMF9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNMF9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNMV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNMV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNMl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNMl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNM19NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNM19NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNNF9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNNF9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNNV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfSU5QVVRfU1RSRUFNNV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfQ1RSTF9fQVpfTUVNX1BXUl9NT0RFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vQVpBTElBX01FTV9QV1JfU1RBVFVTCisjZGVmaW5lIEFaQUxJQV9NRU1fUFdSX1NUQVRVU19fQVpfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9TVEFUVVNfX0FaX0lOUFVUX1NUUkVBTTBfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfU1RBVFVTX19BWl9JTlBVVF9TVFJFQU0xX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9NRU1fUFdSX1NUQVRVU19fQVpfSU5QVVRfU1RSRUFNMl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9TVEFUVVNfX0FaX0lOUFVUX1NUUkVBTTNfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpBTElBX01FTV9QV1JfU1RBVFVTX19BWl9JTlBVVF9TVFJFQU00X01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaQUxJQV9NRU1fUFdSX1NUQVRVU19fQVpfSU5QVVRfU1RSRUFNNV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9TVEFUVVNfX0FaX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9TVEFUVVNfX0FaX0lOUFVUX1NUUkVBTTBfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9TVEFUVVNfX0FaX0lOUFVUX1NUUkVBTTFfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9TVEFUVVNfX0FaX0lOUFVUX1NUUkVBTTJfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9TVEFUVVNfX0FaX0lOUFVUX1NUUkVBTTNfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9TVEFUVVNfX0FaX0lOUFVUX1NUUkVBTTRfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBBWkFMSUFfTUVNX1BXUl9TVEFUVVNfX0FaX0lOUFVUX1NUUkVBTTVfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwcm9vdF9kaXNwZGVjCisvL0FaQUxJQV9GMF9DT0RFQ19ST09UX1BBUkFNRVRFUl9WRU5ET1JfQU5EX0RFVklDRV9JRAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfUk9PVF9QQVJBTUVURVJfVkVORE9SX0FORF9ERVZJQ0VfSURfX0FaQUxJQV9DT0RFQ19ST09UX1BBUkFNRVRFUl9WRU5ET1JfQU5EX0RFVklDRV9JRF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfUk9PVF9QQVJBTUVURVJfVkVORE9SX0FORF9ERVZJQ0VfSURfX0FaQUxJQV9DT0RFQ19ST09UX1BBUkFNRVRFUl9WRU5ET1JfQU5EX0RFVklDRV9JRF9NQVNLICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjBfQ09ERUNfUk9PVF9QQVJBTUVURVJfUkVWSVNJT05fSUQKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX1JPT1RfUEFSQU1FVEVSX1JFVklTSU9OX0lEX19BWkFMSUFfQ09ERUNfUk9PVF9QQVJBTUVURVJfUkVWSVNJT05fSURfX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19ST09UX1BBUkFNRVRFUl9SRVZJU0lPTl9JRF9fQVpBTElBX0NPREVDX1JPT1RfUEFSQU1FVEVSX1JFVklTSU9OX0lEX01BU0sgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMF9DT0RFQ19DSEFOTkVMX0NPVU5UX0NPTlRST0wKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0NIQU5ORUxfQ09VTlRfQ09OVFJPTF9fSEJSX0NIQU5ORUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19DSEFOTkVMX0NPVU5UX0NPTlRST0xfX0NPTVBSRVNTRURfQ0hBTk5FTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfQ0hBTk5FTF9DT1VOVF9DT05UUk9MX19IQlJfQ0hBTk5FTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfQ0hBTk5FTF9DT1VOVF9DT05UUk9MX19DT01QUkVTU0VEX0NIQU5ORUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorLy9BWkFMSUFfRjBfQ09ERUNfUkVTWU5DX0ZJRk9fQ09OVFJPTAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfUkVTWU5DX0ZJRk9fQ09OVFJPTF9fUkVTWU5DX0ZJRk9fU1RBUlRVUF9LRUVQT1VUX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX1JFU1lOQ19GSUZPX0NPTlRST0xfX1JFU1lOQ19GSUZPX1NUQVJUVVBfS0VFUE9VVF9XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9HUk9VUF9UWVBFCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfR1JPVVBfVFlQRV9fQVpBTElBX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9HUk9VUF9UWVBFX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX0dST1VQX1RZUEVfX0FaQUxJQV9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfR1JPVVBfVFlQRV9NQVNLICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisvL0FaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fQVpBTElBX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19BWkFMSUFfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX01BU0sgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfUE9XRVJfU1RBVEVTCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfUE9XRVJfU1RBVEVTX19BWkFMSUFfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1BPV0VSX1NUQVRFU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1BPV0VSX1NUQVRFU19fQ0xLU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfUE9XRVJfU1RBVEVTX19FUFNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9QT1dFUl9TVEFURVNfX0FaQUxJQV9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfUE9XRVJfU1RBVEVTX01BU0sgICAgMHgzRkZGRkZGRkwKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9QT1dFUl9TVEFURVNfX0NMS1NUT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9QT1dFUl9TVEFURVNfX0VQU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUE9XRVJfU1RBVEUKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUE9XRVJfU1RBVEVfX1BPV0VSX1NUQVRFX1NFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19QT1dFUl9TVEFURV9BQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9QT1dFUl9TVEFURV9fQ0xLU1RPUE9LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUE9XRVJfU1RBVEVfX1BPV0VSX1NUQVRFX1NFVFRJTkdTX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19QT1dFUl9TVEFURV9TRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19QT1dFUl9TVEFURV9BQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19DTEtTVE9QT0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19QT1dFUl9TVEFURV9TRVRUSU5HU19SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL0FaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU0VUCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU0VUX19DT0RFQ19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNFVF9fQ09ERUNfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSUQKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEX19TVUJTWVNURU1fSURfQllURTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRF9fU1VCU1lTVEVNX0lEX0JZVEUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfX1NVQlNZU1RFTV9JRF9CWVRFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaQUxJQV9GMF9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRF9fU1VCU1lTVEVNX0lEX0JZVEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEX19TVUJTWVNURU1fSURfQllURTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEX19TVUJTWVNURU1fSURfQllURTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEX19TVUJTWVNURU1fSURfQllURTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEX19TVUJTWVNURU1fSURfQllURTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfQ09OVkVSVEVSX1NZTkNIUk9OSVpBVElPTgorI2RlZmluZSBBWkFMSUFfRjBfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9DT05WRVJURVJfU1lOQ0hST05JWkFUSU9OX19DT05WRVJURVJfU1lOQ0hST05JWkFUSU9OX19TSElGVCAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YwX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfQ09OVkVSVEVSX1NZTkNIUk9OSVpBVElPTl9fQ09OVkVSVEVSX1NZTkNIUk9OSVpBVElPTl9NQVNLICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQ0NfUkNVX0RDX0FVRElPX1BPUlRfQ09OTkVDVElWSVRZCisjZGVmaW5lIENDX1JDVV9EQ19BVURJT19QT1JUX0NPTk5FQ1RJVklUWV9fUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDQ19SQ1VfRENfQVVESU9fUE9SVF9DT05ORUNUSVZJVFlfX1BPUlRfQ09OTkVDVElWSVRZX09WRVJSSURFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ0NfUkNVX0RDX0FVRElPX1BPUlRfQ09OTkVDVElWSVRZX19QT1JUX0NPTk5FQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQ0NfUkNVX0RDX0FVRElPX1BPUlRfQ09OTkVDVElWSVRZX19QT1JUX0NPTk5FQ1RJVklUWV9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQ0NfUkNVX0RDX0FVRElPX0lOUFVUX1BPUlRfQ09OTkVDVElWSVRZCisjZGVmaW5lIENDX1JDVV9EQ19BVURJT19JTlBVVF9QT1JUX0NPTk5FQ1RJVklUWV9fSU5QVVRfUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDQ19SQ1VfRENfQVVESU9fSU5QVVRfUE9SVF9DT05ORUNUSVZJVFlfX0lOUFVUX1BPUlRfQ09OTkVDVElWSVRZX09WRVJSSURFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ0NfUkNVX0RDX0FVRElPX0lOUFVUX1BPUlRfQ09OTkVDVElWSVRZX19JTlBVVF9QT1JUX0NPTk5FQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQ0NfUkNVX0RDX0FVRElPX0lOUFVUX1BPUlRfQ09OTkVDVElWSVRZX19JTlBVVF9QT1JUX0NPTk5FQ1RJVklUWV9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQwCisjZGVmaW5lIEFaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUMF9fR1RDX0dST1VQX09GRlNFVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDBfX0dUQ19HUk9VUF9PRkZTRVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDEKKyNkZWZpbmUgQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQxX19HVENfR1JPVVBfT0ZGU0VUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUMV9fR1RDX0dST1VQX09GRlNFVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUMgorI2RlZmluZSBBWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDJfX0dUQ19HUk9VUF9PRkZTRVQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQyX19HVENfR1JPVVBfT0ZGU0VUMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQzCisjZGVmaW5lIEFaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUM19fR1RDX0dST1VQX09GRlNFVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDNfX0dUQ19HUk9VUF9PRkZTRVQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDQKKyNkZWZpbmUgQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQ0X19HVENfR1JPVVBfT0ZGU0VUNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUNF9fR1RDX0dST1VQX09GRlNFVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUNQorI2RlZmluZSBBWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDVfX0dUQ19HUk9VUF9PRkZTRVQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQ1X19HVENfR1JPVVBfT0ZGU0VUNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0YwX0dUQ19HUk9VUF9PRkZTRVQ2CisjZGVmaW5lIEFaQUxJQV9GMF9HVENfR1JPVVBfT0ZGU0VUNl9fR1RDX0dST1VQX09GRlNFVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjBfR1RDX0dST1VQX09GRlNFVDZfX0dUQ19HUk9VUF9PRkZTRVQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9SRUdfRENfQVVESU9fUE9SVF9DT05ORUNUSVZJVFkKKyNkZWZpbmUgUkVHX0RDX0FVRElPX1BPUlRfQ09OTkVDVElWSVRZX19SRUdfUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJFR19EQ19BVURJT19QT1JUX0NPTk5FQ1RJVklUWV9fUkVHX1BPUlRfQ09OTkVDVElWSVRZX09WRVJSSURFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRUdfRENfQVVESU9fUE9SVF9DT05ORUNUSVZJVFlfX1JFR19QT1JUX0NPTk5FQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBSRUdfRENfQVVESU9fUE9SVF9DT05ORUNUSVZJVFlfX1JFR19QT1JUX0NPTk5FQ1RJVklUWV9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9SRUdfRENfQVVESU9fSU5QVVRfUE9SVF9DT05ORUNUSVZJVFkKKyNkZWZpbmUgUkVHX0RDX0FVRElPX0lOUFVUX1BPUlRfQ09OTkVDVElWSVRZX19SRUdfSU5QVVRfUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJFR19EQ19BVURJT19JTlBVVF9QT1JUX0NPTk5FQ1RJVklUWV9fUkVHX0lOUFVUX1BPUlRfQ09OTkVDVElWSVRZX09WRVJSSURFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRUdfRENfQVVESU9fSU5QVVRfUE9SVF9DT05ORUNUSVZJVFlfX1JFR19JTlBVVF9QT1JUX0NPTk5FQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBSRUdfRENfQVVESU9fSU5QVVRfUE9SVF9DT05ORUNUSVZJVFlfX1JFR19JTlBVVF9QT1JUX0NPTk5FQ1RJVklUWV9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtOF9kaXNwZGVjCisvL0FaRjBTVFJFQU04X0FaQUxJQV9TVFJFQU1fSU5ERVgKKyNkZWZpbmUgQVpGMFNUUkVBTThfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU04X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNOF9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwU1RSRUFNOF9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwU1RSRUFNOF9BWkFMSUFfU1RSRUFNX0RBVEEKKyNkZWZpbmUgQVpGMFNUUkVBTThfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU04X0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBzdHJlYW05X2Rpc3BkZWMKKy8vQVpGMFNUUkVBTTlfQVpBTElBX1NUUkVBTV9JTkRFWAorI2RlZmluZSBBWkYwU1RSRUFNOV9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTlfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU05X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBTVFJFQU05X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBTVFJFQU05X0FaQUxJQV9TVFJFQU1fREFUQQorI2RlZmluZSBBWkYwU1RSRUFNOV9BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTlfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMHN0cmVhbTEwX2Rpc3BkZWMKKy8vQVpGMFNUUkVBTTEwX0FaQUxJQV9TVFJFQU1fSU5ERVgKKyNkZWZpbmUgQVpGMFNUUkVBTTEwX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xMF9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNMTBfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwU1RSRUFNMTBfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwU1RSRUFNMTBfQVpBTElBX1NUUkVBTV9EQVRBCisjZGVmaW5lIEFaRjBTVFJFQU0xMF9BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTBfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtMTFfZGlzcGRlYworLy9BWkYwU1RSRUFNMTFfQVpBTElBX1NUUkVBTV9JTkRFWAorI2RlZmluZSBBWkYwU1RSRUFNMTFfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTExX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU0xMV9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBTVFJFQU0xMV9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBTVFJFQU0xMV9BWkFMSUFfU1RSRUFNX0RBVEEKKyNkZWZpbmUgQVpGMFNUUkVBTTExX0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xMV9BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBzdHJlYW0xMl9kaXNwZGVjCisvL0FaRjBTVFJFQU0xMl9BWkFMSUFfU1RSRUFNX0lOREVYCisjZGVmaW5lIEFaRjBTVFJFQU0xMl9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTJfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTEyX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMFNUUkVBTTEyX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMFNUUkVBTTEyX0FaQUxJQV9TVFJFQU1fREFUQQorI2RlZmluZSBBWkYwU1RSRUFNMTJfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTEyX0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMHN0cmVhbTEzX2Rpc3BkZWMKKy8vQVpGMFNUUkVBTTEzX0FaQUxJQV9TVFJFQU1fSU5ERVgKKyNkZWZpbmUgQVpGMFNUUkVBTTEzX0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xM19BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNMTNfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwU1RSRUFNMTNfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwU1RSRUFNMTNfQVpBTElBX1NUUkVBTV9EQVRBCisjZGVmaW5lIEFaRjBTVFJFQU0xM19BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTNfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwc3RyZWFtMTRfZGlzcGRlYworLy9BWkYwU1RSRUFNMTRfQVpBTElBX1NUUkVBTV9JTkRFWAorI2RlZmluZSBBWkYwU1RSRUFNMTRfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTE0X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU0xNF9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBTVFJFQU0xNF9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBTVFJFQU0xNF9BWkFMSUFfU1RSRUFNX0RBVEEKKyNkZWZpbmUgQVpGMFNUUkVBTTE0X0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xNF9BWkFMSUFfU1RSRUFNX0RBVEFfX0FaQUxJQV9TVFJFQU1fUkVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBzdHJlYW0xNV9kaXNwZGVjCisvL0FaRjBTVFJFQU0xNV9BWkFMSUFfU1RSRUFNX0lOREVYCisjZGVmaW5lIEFaRjBTVFJFQU0xNV9BWkFMSUFfU1RSRUFNX0lOREVYX19BWkFMSUFfU1RSRUFNX1JFR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTVfQVpBTElBX1NUUkVBTV9JTkRFWF9fQVpBTElBX1NUUkVBTV9SRUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTE1X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMFNUUkVBTTE1X0FaQUxJQV9TVFJFQU1fSU5ERVhfX0FaQUxJQV9TVFJFQU1fUkVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMFNUUkVBTTE1X0FaQUxJQV9TVFJFQU1fREFUQQorI2RlZmluZSBBWkYwU1RSRUFNMTVfQVpBTElBX1NUUkVBTV9EQVRBX19BWkFMSUFfU1RSRUFNX1JFR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTE1X0FaQUxJQV9TVFJFQU1fREFUQV9fQVpBTElBX1NUUkVBTV9SRUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGlucHV0ZW5kcG9pbnQwX2Rpc3BkZWMKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0lOREVYX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19JTkRFWF9NQVNLICAgICAgICAgMHgwMDAwM0ZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQV9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19EQVRBX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfREFUQV9NQVNLICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwaW5wdXRlbmRwb2ludDFfZGlzcGRlYworLy9BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfSU5ERVhfX1NISUZUICAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0lOREVYX01BU0sgICAgICAgICAweDAwMDAzRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0RBVEFfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQV9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19EQVRBX01BU0sgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBpbnB1dGVuZHBvaW50Ml9kaXNwZGVjCisvL0FaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19JTkRFWF9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfSU5ERVhfTUFTSyAgICAgICAgIDB4MDAwMDNGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfREFUQV9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0RBVEFfTUFTSyAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGlucHV0ZW5kcG9pbnQzX2Rpc3BkZWMKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0lOREVYX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19JTkRFWF9NQVNLICAgICAgICAgMHgwMDAwM0ZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQV9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19EQVRBX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfREFUQV9NQVNLICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwaW5wdXRlbmRwb2ludDRfZGlzcGRlYworLy9BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfSU5ERVhfX1NISUZUICAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0lOREVYX01BU0sgICAgICAgICAweDAwMDAzRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0RBVEFfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQV9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19EQVRBX01BU0sgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfaGRhX2F6ZjBpbnB1dGVuZHBvaW50NV9kaXNwZGVjCisvL0FaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19JTkRFWF9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfSU5ERVhfTUFTSyAgICAgICAgIDB4MDAwMDNGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfREFUQV9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0RBVEFfTUFTSyAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19oZGFfYXpmMGlucHV0ZW5kcG9pbnQ2X2Rpc3BkZWMKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0lOREVYX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9JTkRFWF9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19JTkRFWF9NQVNLICAgICAgICAgMHgwMDAwM0ZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQV9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19EQVRBX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEFfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfREFUQV9NQVNLICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2hkYV9hemYwaW5wdXRlbmRwb2ludDdfZGlzcGRlYworLy9BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfSU5ERVhfX0FaQUxJQV9JTlBVVF9FTkRQT0lOVF9SRUdfSU5ERVhfX1NISUZUICAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0lOREVYX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0lOREVYX01BU0sgICAgICAgICAweDAwMDAzRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0VORFBPSU5UX0RBVEEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9FTkRQT0lOVF9EQVRBX19BWkFMSUFfSU5QVVRfRU5EUE9JTlRfUkVHX0RBVEFfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfRU5EUE9JTlRfREFUQV9fQVpBTElBX0lOUFVUX0VORFBPSU5UX1JFR19EQVRBX01BU0sgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNodWJidWJfaHViYnViX3NkcGlmX2Rpc3BkZWMKKy8vRENIVUJCVUJfU0RQSUZfQ0ZHMAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9OT19PVVRTVEFORElOR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfQ0ZHMF9fU0RQSUZfUE9SVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX0NGRzBfX1NEUElGX0RBVEFfUkVTUE9OU0VfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9SRVNQT05TRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfQ0ZHMF9fU0RQSUZfUkVRX0NSRURJVF9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX0NGRzBfX1NEUElGX1JFU1BPTlNFX1NUQVRVU19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9SRVFfQ1JFRElUX0VSUk9SX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfQ0ZHMF9fU0RQSUZfRkxVU0hfUkVRX0NSRURJVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX0NGRzBfX1NEUElGX1JFUV9DUkVESVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9QT1JUX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfQ0ZHMF9fU0RQSUZfQ1JFRElUX0RJU0NPTk5FQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9OT19PVVRTVEFORElOR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9QT1JUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9EQVRBX1JFU1BPTlNFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9SRVNQT05TRV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0MwTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9SRVFfQ1JFRElUX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9SRVNQT05TRV9TVEFUVVNfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9SRVFfQ1JFRElUX0VSUk9SX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9GTFVTSF9SRVFfQ1JFRElUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9SRVFfQ1JFRElUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9QT1JUX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcwX19TRFBJRl9DUkVESVRfRElTQ09OTkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdFMDAwMDAwTAorLy9WTV9SRVFVRVNUX1BIWVNJQ0FMCisjZGVmaW5lIFZNX1JFUVVFU1RfUEhZU0lDQUxfX1BERV9SRVFVRVNUX1BIWVNJQ0FMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTV9SRVFVRVNUX1BIWVNJQ0FMX19QVEVfUkVRVUVTVF9QSFlTSUNBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1fUkVRVUVTVF9QSFlTSUNBTF9fUERFX1JFUVVFU1RfUEhZU0lDQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1fUkVRVUVTVF9QSFlTSUNBTF9fUFRFX1JFUVVFU1RfUEhZU0lDQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKy8vRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzAKKyNkZWZpbmUgRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzBfX1NEUElGX0ZPUkNFX0lPX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0ZPUkNFX0lPX1NUQVRVU18wX19TRFBJRl9GT1JDRV9JT19TVEFUVVNfU1RJQ0tZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ0hVQkJVQl9GT1JDRV9JT19TVEFUVVNfMF9fU0RQSUZfRk9SQ0VfSU9fU1RBVFVTX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzBfX1NEUElGX0ZPUkNFX0lPX1NUQVRVU19QSVBFX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDSFVCQlVCX0ZPUkNFX0lPX1NUQVRVU18wX19TRFBJRl9GT1JDRV9JT19TVEFUVVNfUkVRVUVTVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ0hVQkJVQl9GT1JDRV9JT19TVEFUVVNfMF9fU0RQSUZfRk9SQ0VfSU9fU1RBVFVTX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzBfX1NEUElGX0ZPUkNFX0lPX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzBfX1NEUElGX0ZPUkNFX0lPX1NUQVRVU19TVElDS1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzBfX1NEUElGX0ZPUkNFX0lPX1NUQVRVU19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzBfX1NEUElGX0ZPUkNFX0lPX1NUQVRVU19QSVBFX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzBfX1NEUElGX0ZPUkNFX0lPX1NUQVRVU19SRVFVRVNUX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDM4MEwKKyNkZWZpbmUgRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzBfX1NEUElGX0ZPUkNFX0lPX1NUQVRVU19BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkMwMEwKKy8vRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzEKKyNkZWZpbmUgRENIVUJCVUJfRk9SQ0VfSU9fU1RBVFVTXzFfX1NEUElGX0ZPUkNFX0lPX1NUQVRVU19BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0ZPUkNFX0lPX1NUQVRVU18xX19TRFBJRl9GT1JDRV9JT19TVEFUVVNfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL0RDTl9WTV9GQl9MT0NBVElPTl9CQVNFCisjZGVmaW5lIERDTl9WTV9GQl9MT0NBVElPTl9CQVNFX19GQl9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fRkJfTE9DQVRJT05fQkFTRV9fRkJfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EQ05fVk1fRkJfTE9DQVRJT05fVE9QCisjZGVmaW5lIERDTl9WTV9GQl9MT0NBVElPTl9UT1BfX0ZCX1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fRkJfTE9DQVRJT05fVE9QX19GQl9UT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EQ05fVk1fRkJfT0ZGU0VUCisjZGVmaW5lIERDTl9WTV9GQl9PRkZTRVRfX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fRkJfT0ZGU0VUX19GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EQ05fVk1fQUdQX0JPVAorI2RlZmluZSBEQ05fVk1fQUdQX0JPVF9fQUdQX0JPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0FHUF9CT1RfX0FHUF9CT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRENOX1ZNX0FHUF9UT1AKKyNkZWZpbmUgRENOX1ZNX0FHUF9UT1BfX0FHUF9UT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9BR1BfVE9QX19BR1BfVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RDTl9WTV9BR1BfQkFTRQorI2RlZmluZSBEQ05fVk1fQUdQX0JBU0VfX0FHUF9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0FHUF9CQVNFX19BR1BfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRENOX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX1NUQVJUCisjZGVmaW5lIERDTl9WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVF9fQUREUkVTU19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fTE9DQUxfSEJNX0FERFJFU1NfU1RBUlRfX0FERFJFU1NfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9EQ05fVk1fTE9DQUxfSEJNX0FERFJFU1NfRU5ECisjZGVmaW5lIERDTl9WTV9MT0NBTF9IQk1fQUREUkVTU19FTkRfX0FERFJFU1NfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fTE9DQUxfSEJNX0FERFJFU1NfRU5EX19BRERSRVNTX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9EQ05fVk1fTE9DQUxfSEJNX0FERFJFU1NfTE9DS19DTlRMCisjZGVmaW5lIERDTl9WTV9MT0NBTF9IQk1fQUREUkVTU19MT0NLX0NOVExfX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fTE9DQUxfSEJNX0FERFJFU1NfTE9DS19DTlRMX19MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EQ0hVQkJVQl9TRFBJRl9QSVBFX1NFQ19MVkwKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfUElQRV9TRUNfTFZMX19TRFBJRl9QSVBFMF9TRUNfTFZMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfU0VDX0xWTF9fU0RQSUZfUElQRTFfU0VDX0xWTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9QSVBFX1NFQ19MVkxfX1NEUElGX1BJUEUyX1NFQ19MVkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfUElQRV9TRUNfTFZMX19TRFBJRl9QSVBFM19TRUNfTFZMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfU0VDX0xWTF9fU0RQSUZfUElQRTBfU0VDX0xWTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfU0VDX0xWTF9fU0RQSUZfUElQRTFfU0VDX0xWTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfU0VDX0xWTF9fU0RQSUZfUElQRTJfU0VDX0xWTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfU0VDX0xWTF9fU0RQSUZfUElQRTNfU0VDX0xWTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL0RDSFVCQlVCX1NEUElGX1BJUEVfRE1EQVRBX1NFQ19MVkwKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfUElQRV9ETURBVEFfU0VDX0xWTF9fU0RQSUZfUElQRTBfRE1EQVRBX1NFQ19MVkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfRE1EQVRBX1NFQ19MVkxfX1NEUElGX1BJUEUxX0RNREFUQV9TRUNfTFZMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9QSVBFX0RNREFUQV9TRUNfTFZMX19TRFBJRl9QSVBFMl9ETURBVEFfU0VDX0xWTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfUElQRV9ETURBVEFfU0VDX0xWTF9fU0RQSUZfUElQRTNfRE1EQVRBX1NFQ19MVkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfRE1EQVRBX1NFQ19MVkxfX1NEUElGX1BJUEUwX0RNREFUQV9TRUNfTFZMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfRE1EQVRBX1NFQ19MVkxfX1NEUElGX1BJUEUxX0RNREFUQV9TRUNfTFZMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfRE1EQVRBX1NFQ19MVkxfX1NEUElGX1BJUEUyX0RNREFUQV9TRUNfTFZMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX1BJUEVfRE1EQVRBX1NFQ19MVkxfX1NEUElGX1BJUEUzX0RNREFUQV9TRUNfTFZMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL0RDSFVCQlVCX1NEUElGX01FTV9QV1JfQ1RSTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9NRU1fUFdSX0NUUkxfX0RDSFVCQlVCX1NEUElGX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfTUVNX1BXUl9DVFJMX19EQ0hVQkJVQl9TRFBJRl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX01FTV9QV1JfQ1RSTF9fRENIVUJCVUJfU0RQSUZfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX01FTV9QV1JfQ1RSTF9fRENIVUJCVUJfU0RQSUZfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL0RDSFVCQlVCX1NEUElGX01FTV9QV1JfU1RBVFVTCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX01FTV9QV1JfU1RBVFVTX19EQ0hVQkJVQl9TRFBJRl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9NRU1fUFdSX1NUQVRVU19fRENIVUJCVUJfU0RQSUZfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9EQ0hVQkJVQl9TRFBJRl9DRkcxCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX0NGRzFfX1NEUElGX1BSUV9FUlJPUl9ERVRFQ1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcxX19TRFBJRl9QUlFfRVJST1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfQ0ZHMV9fU0RQSUZfUFJRX0VSUk9SX1NUQVRVU19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX0NGRzFfX1NEUElGX0ZPUkNFX1NOT09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcxX19TRFBJRl9QUlFfRVJST1JfREVURUNUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcxX19TRFBJRl9QUlFfRVJST1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcxX19TRFBJRl9QUlFfRVJST1JfU1RBVFVTX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcxX19TRFBJRl9GT1JDRV9TTk9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EQ0hVQkJVQl9TRFBJRl9DRkcyCisjZGVmaW5lIERDSFVCQlVCX1NEUElGX0NGRzJfX2RHUFVfQUREUl9QUkVTRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcyX19TRFBJRl9IT1NUVk1fU0VDX0xWTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENIVUJCVUJfU0RQSUZfQ0ZHMl9fU0RQSUZfVU5JVF9JRF9CSVRNQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcyX19kR1BVX0FERFJfUFJFU0VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcyX19TRFBJRl9IT1NUVk1fU0VDX0xWTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEQ0hVQkJVQl9TRFBJRl9DRkcyX19TRFBJRl9VTklUX0lEX0JJVE1BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjaHViYnViX2h1YmJ1Yl9yZXRfcGF0aF9kaXNwZGVjCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGR19fRENDX1ZJREVPX0ZPUk1BVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkdfX0RDQ19WSURFT19GT1JNQVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcwXzAKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzBfMF9fRENDX0NGRzBfQ09OU1RBTlRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcwXzBfX0RDQ19DRkcwX0NPTlNUQU5UXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcwXzEKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzBfMV9fRENDX0NGRzBfQ09OU1RBTlRfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcwXzFfX0RDQ19DRkcwX0NPTlNUQU5UXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcxXzAKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzFfMF9fRENDX0NGRzFfQ09OU1RBTlRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcxXzBfX0RDQ19DRkcxX0NPTlNUQU5UXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcxXzEKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzFfMV9fRENDX0NGRzFfQ09OU1RBTlRfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcxXzFfX0RDQ19DRkcxX0NPTlNUQU5UXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcyXzAKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzJfMF9fRENDX0NGRzJfQ09OU1RBTlRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcyXzBfX0RDQ19DRkcyX0NPTlNUQU5UXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcyXzEKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzJfMV9fRENDX0NGRzJfQ09OU1RBTlRfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkcyXzFfX0RDQ19DRkcyX0NPTlNUQU5UXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkczXzAKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzNfMF9fRENDX0NGRzNfQ09OU1RBTlRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkczXzBfX0RDQ19DRkczX0NPTlNUQU5UXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkczXzEKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzNfMV9fRENDX0NGRzNfQ09OU1RBTlRfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkczXzFfX0RDQ19DRkczX0NPTlNUQU5UXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc0XzAKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzRfMF9fRENDX0NGRzRfQ09OU1RBTlRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc0XzBfX0RDQ19DRkc0X0NPTlNUQU5UXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc0XzEKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzRfMV9fRENDX0NGRzRfQ09OU1RBTlRfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc0XzFfX0RDQ19DRkc0X0NPTlNUQU5UXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc1XzAKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzVfMF9fRENDX0NGRzVfQ09OU1RBTlRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc1XzBfX0RDQ19DRkc1X0NPTlNUQU5UXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc1XzEKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzVfMV9fRENDX0NGRzVfQ09OU1RBTlRfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc1XzFfX0RDQ19DRkc1X0NPTlNUQU5UXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc2XzAKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzZfMF9fRENDX0NGRzZfQ09OU1RBTlRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc2XzBfX0RDQ19DRkc2X0NPTlNUQU5UXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc2XzEKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzZfMV9fRENDX0NGRzZfQ09OU1RBTlRfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc2XzFfX0RDQ19DRkc2X0NPTlNUQU5UXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc3XzAKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzdfMF9fRENDX0NGRzdfQ09OU1RBTlRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc3XzBfX0RDQ19DRkc3X0NPTlNUQU5UXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc3XzEKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfRENDX0NGRzdfMV9fRENDX0NGRzdfQ09OU1RBTlRfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX0RDQ19DRkc3XzFfX0RDQ19DRkc3X0NPTlNUQU5UXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX1JFVF9QQVRIX01FTV9QV1JfQ1RSTAorI2RlZmluZSBEQ0hVQkJVQl9SRVRfUEFUSF9NRU1fUFdSX0NUUkxfX0RDSFVCQlVCX1JFVF9QQVRIX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfUkVUX1BBVEhfTUVNX1BXUl9DVFJMX19EQ0hVQkJVQl9SRVRfUEFUSF9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX01FTV9QV1JfQ1RSTF9fRENIVUJCVUJfUkVUX1BBVEhfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX01FTV9QV1JfQ1RSTF9fRENIVUJCVUJfUkVUX1BBVEhfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL0RDSFVCQlVCX1JFVF9QQVRIX01FTV9QV1JfU1RBVFVTCisjZGVmaW5lIERDSFVCQlVCX1JFVF9QQVRIX01FTV9QV1JfU1RBVFVTX19EQ0hVQkJVQl9SRVRfUEFUSF9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9SRVRfUEFUSF9NRU1fUFdSX1NUQVRVU19fRENIVUJCVUJfUkVUX1BBVEhfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9EQ0hVQkJVQl9DUkNfQ1RSTAorI2RlZmluZSBEQ0hVQkJVQl9DUkNfQ1RSTF9fRENIVUJCVUJfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQ1JDX0NUUkxfX0RDSFVCQlVCX0NSQ19DT05UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkMwX09ORV9TSE9UX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0hVQkJVQl9DUkNfQ1RSTF9fRENIVUJCVUJfQ1JDMV9PTkVfU0hPVF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENIVUJCVUJfQ1JDX0NUUkxfX0RDSFVCQlVCX0NSQzBfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkMxX1NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ0hVQkJVQl9DUkNfQ1RSTF9fRENIVUJCVUJfQ1JDX1BJUEVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENIVUJCVUJfQ1JDX0NUUkxfX0RDSFVCQlVCX0NSQ19TVVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkNfTUFTS19TVVJGX1NFTF9NU0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ0hVQkJVQl9DUkNfQ1RSTF9fRENIVUJCVUJfQ1JDX0RBVEFfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkMwX09ORV9TSE9UX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkMxX09ORV9TSE9UX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkMwX1NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkMxX1NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkNfUElQRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkNfU1VSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkNfTUFTS19TVVJGX1NFTF9NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDSFVCQlVCX0NSQ19DVFJMX19EQ0hVQkJVQl9DUkNfREFUQV9TUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL0RDSFVCQlVCX0NSQzBfVkFMX1JfRworI2RlZmluZSBEQ0hVQkJVQl9DUkMwX1ZBTF9SX0dfX0RDSFVCQlVCX0NSQzBfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQ1JDMF9WQUxfUl9HX19EQ0hVQkJVQl9DUkMwX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQkJVQl9DUkMwX1ZBTF9SX0dfX0RDSFVCQlVCX0NSQzBfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ0hVQkJVQl9DUkMwX1ZBTF9SX0dfX0RDSFVCQlVCX0NSQzBfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ0hVQkJVQl9DUkMwX1ZBTF9CX0EKKyNkZWZpbmUgRENIVUJCVUJfQ1JDMF9WQUxfQl9BX19EQ0hVQkJVQl9DUkMwX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0NSQzBfVkFMX0JfQV9fRENIVUJCVUJfQ1JDMF9BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENIVUJCVUJfQ1JDMF9WQUxfQl9BX19EQ0hVQkJVQl9DUkMwX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENIVUJCVUJfQ1JDMF9WQUxfQl9BX19EQ0hVQkJVQl9DUkMwX0FMUEhBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENIVUJCVUJfQ1JDMV9WQUxfUl9HCisjZGVmaW5lIERDSFVCQlVCX0NSQzFfVkFMX1JfR19fRENIVUJCVUJfQ1JDMV9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9DUkMxX1ZBTF9SX0dfX0RDSFVCQlVCX0NSQzFfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDSFVCQlVCX0NSQzFfVkFMX1JfR19fRENIVUJCVUJfQ1JDMV9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDSFVCQlVCX0NSQzFfVkFMX1JfR19fRENIVUJCVUJfQ1JDMV9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDSFVCQlVCX0NSQzFfVkFMX0JfQQorI2RlZmluZSBEQ0hVQkJVQl9DUkMxX1ZBTF9CX0FfX0RDSFVCQlVCX0NSQzFfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQ1JDMV9WQUxfQl9BX19EQ0hVQkJVQl9DUkMxX0FMUEhBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQkJVQl9DUkMxX1ZBTF9CX0FfX0RDSFVCQlVCX0NSQzFfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ0hVQkJVQl9DUkMxX1ZBTF9CX0FfX0RDSFVCQlVCX0NSQzFfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjaHViYnViX2h1YmJ1Yl9kaXNwZGVjCisvL0RDSFVCQlVCX0FSQl9ERl9SRVFfT1VUU1RBTkQKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0RGX1JFUV9PVVRTVEFORF9fRENIVUJCVUJfQVJCX01BWF9SRVFfT1VUU1RBTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9ERl9SRVFfT1VUU1RBTkRfX0RDSFVCQlVCX0FSQl9NSU5fUkVRX09VVFNUQU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ0hVQkJVQl9BUkJfREZfUkVRX09VVFNUQU5EX19EQ0hVQkJVQl9BUkJfTUlOX1JFUV9PVVRTVEFORF9DT01NSVRfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDSFVCQlVCX0FSQl9ERl9SRVFfT1VUU1RBTkRfX0RDSFVCQlVCX0FSQl9NQVhfUkVRX09VVFNUQU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9ERl9SRVFfT1VUU1RBTkRfX0RDSFVCQlVCX0FSQl9NSU5fUkVRX09VVFNUQU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkYwMDBMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9ERl9SRVFfT1VUU1RBTkRfX0RDSFVCQlVCX0FSQl9NSU5fUkVRX09VVFNUQU5EX0NPTU1JVF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkY4MDAwMDBMCisvL0RDSFVCQlVCX0FSQl9TQVRfTEVWRUwKKyNkZWZpbmUgRENIVUJCVUJfQVJCX1NBVF9MRVZFTF9fRENIVUJCVUJfQVJCX1NBVF9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9TQVRfTEVWRUxfX0RDSFVCQlVCX0FSQl9TQVRfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDSFVCQlVCX0FSQl9RT1NfRk9SQ0UKKyNkZWZpbmUgRENIVUJCVUJfQVJCX1FPU19GT1JDRV9fRENIVUJCVUJfQVJCX1FPU19GT1JDRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9RT1NfRk9SQ0VfX0RDSFVCQlVCX0FSQl9RT1NfRk9SQ0VfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfUU9TX0ZPUkNFX19EQ0hVQkJVQl9BUkJfUU9TX0ZPUkNFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfUU9TX0ZPUkNFX19EQ0hVQkJVQl9BUkJfUU9TX0ZPUkNFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9EUkFNX1NUQVRFX0NOVExfX0RDSFVCQlVCX0FSQl9BTExPV19TRUxGX1JFRlJFU0hfRk9SQ0VfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMX19EQ0hVQkJVQl9BUkJfQUxMT1dfU0VMRl9SRUZSRVNIX0ZPUkNFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0RSQU1fU1RBVEVfQ05UTF9fRENIVUJCVUJfQVJCX0FMTE9XX1BTVEFURV9DSEFOR0VfRk9SQ0VfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDSFVCQlVCX0FSQl9EUkFNX1NUQVRFX0NOVExfX0RDSFVCQlVCX0FSQl9BTExPV19QU1RBVEVfQ0hBTkdFX0ZPUkNFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMX19EQ0hVQkJVQl9BUkJfRE9fTk9UX0ZPUkNFX1VSR0VOQ1lfQU5EX1NFTEZfUkVGUkVTSF9EVVJJTkdfRFJBTV9DTE9DS19OQlBTVEFURV9DSEFOR0VfUkVRVUVTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMX19EQ0hVQkJVQl9BUkJfRk9SQ0VfVVJHRU5DWV9EVVJJTkdfRFJBTV9DTE9DS19OQlBTVEFURV9DSEFOR0VfUkVRVUVTVF9SRUdBUkRMRVNTX09GX0FMTE9XX1NJR05BTF9fU0hJRlQgIDB4OQorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMX19EQ0hVQkJVQl9BUkJfQUxMT1dfU0VMRl9SRUZSRVNIX0ZPUkNFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMX19EQ0hVQkJVQl9BUkJfQUxMT1dfU0VMRl9SRUZSRVNIX0ZPUkNFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMX19EQ0hVQkJVQl9BUkJfQUxMT1dfUFNUQVRFX0NIQU5HRV9GT1JDRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMX19EQ0hVQkJVQl9BUkJfQUxMT1dfUFNUQVRFX0NIQU5HRV9GT1JDRV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMX19EQ0hVQkJVQl9BUkJfRE9fTk9UX0ZPUkNFX1VSR0VOQ1lfQU5EX1NFTEZfUkVGUkVTSF9EVVJJTkdfRFJBTV9DTE9DS19OQlBTVEFURV9DSEFOR0VfUkVRVUVTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRFJBTV9TVEFURV9DTlRMX19EQ0hVQkJVQl9BUkJfRk9SQ0VfVVJHRU5DWV9EVVJJTkdfRFJBTV9DTE9DS19OQlBTVEFURV9DSEFOR0VfUkVRVUVTVF9SRUdBUkRMRVNTX09GX0FMTE9XX1NJR05BTF9NQVNLICAweDAwMDAwMjAwTAorLy9EQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19BCisjZGVmaW5lIERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0FfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19BX19EQ0hVQkJVQl9BUkJfVk1fUk9XX1VSR0VOQ1lfV0FURVJNQVJLX0FfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9WTV9ST1dfVVJHRU5DWV9XQVRFUk1BUktfQV9NQVNLICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0EKKyNkZWZpbmUgRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQV9fRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQV9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0FfX0RDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0FfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisvL0RDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQQorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQV9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19BX19EQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19BX19TSElGVCAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQV9NQVNLICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0FfTUFTSyAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQQorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQV9fRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0FfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQV9fU0hJRlQgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQV9fRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0FfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQV9fRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FWElUX1dBVEVSTUFSS19BX01BU0sgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19BCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0FfX1NISUZUICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQV9fRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0FfX1NISUZUICAweDEwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0FfTUFTSyAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0FfX0RDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19BX01BU0sgIDB4RkZGRjAwMDBMCisvL0RDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0IKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0JfX0RDSFVCQlVCX0FSQl9WTV9ST1dfVVJHRU5DWV9XQVRFUk1BUktfQl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX1ZNX1JPV19VUkdFTkNZX1dBVEVSTUFSS19CX01BU0sgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQgorI2RlZmluZSBEQ0hVQkJVQl9BUkJfUkVGQ1lDX1BFUl9UUklQX1RPX01FTU9SWV9CX19EQ0hVQkJVQl9BUkJfUkVGQ1lDX1BFUl9UUklQX1RPX01FTU9SWV9CX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQl9fRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfQl9NQVNLICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKy8vRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19CCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19CX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0JfX0RDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0JfX1NISUZUICAgICAgICAweDEwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19CX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQl9NQVNLICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19CCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19CX19EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FWElUX1dBVEVSTUFSS19CX19TSElGVCAgICAgICAgICAweDEwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19CX19EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19CX19EQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0JfTUFTSyAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0IKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQl9fU0hJRlQgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19CX19EQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQl9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQl9NQVNLICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQl9fRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0JfTUFTSyAgMHhGRkZGMDAwMEwKKy8vRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQworI2RlZmluZSBEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19DX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0RBVEFfVVJHRU5DWV9XQVRFUk1BUktfQ19fRENIVUJCVUJfQVJCX1ZNX1JPV19VUkdFTkNZX1dBVEVSTUFSS19DX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19DX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfVk1fUk9XX1VSR0VOQ1lfV0FURVJNQVJLX0NfTUFTSyAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EQ0hVQkJVQl9BUkJfUkVGQ1lDX1BFUl9UUklQX1RPX01FTU9SWV9DCisjZGVmaW5lIERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0NfX0RDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0NfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfUkVGQ1lDX1BFUl9UUklQX1RPX01FTU9SWV9DX19EQ0hVQkJVQl9BUkJfUkVGQ1lDX1BFUl9UUklQX1RPX01FTU9SWV9DX01BU0sgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorLy9EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0MKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0NfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQ19fRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfQ19fU0hJRlQgICAgICAgIDB4MTAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0NfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19DX01BU0sgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0MKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0NfX0RDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19DX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0NfX1NISUZUICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0NfX0RDSFVCQlVCX0FSQl9BTExPV19TUl9FWElUX1dBVEVSTUFSS19DX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0NfX0RDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfQ19NQVNLICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQworI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19DX19TSElGVCAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0NfX0RDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19DX19TSElGVCAgMHgxMAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19DX01BU0sgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19DX19EQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfQ19NQVNLICAweEZGRkYwMDAwTAorLy9EQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19ECisjZGVmaW5lIERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0RfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfREFUQV9VUkdFTkNZX1dBVEVSTUFSS19EX19EQ0hVQkJVQl9BUkJfVk1fUk9XX1VSR0VOQ1lfV0FURVJNQVJLX0RfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0RfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9EQVRBX1VSR0VOQ1lfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9WTV9ST1dfVVJHRU5DWV9XQVRFUk1BUktfRF9NQVNLICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0QKKyNkZWZpbmUgRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfRF9fRENIVUJCVUJfQVJCX1JFRkNZQ19QRVJfVFJJUF9UT19NRU1PUllfRF9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0RfX0RDSFVCQlVCX0FSQl9SRUZDWUNfUEVSX1RSSVBfVE9fTUVNT1JZX0RfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisvL0RDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfRAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfRF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19EX19EQ0hVQkJVQl9BUkJfVk1fUk9XX0FMTE9XX1NSX0VOVEVSX1dBVEVSTUFSS19EX19TSElGVCAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9BTExPV19TUl9FTlRFUl9XQVRFUk1BUktfRF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRU5URVJfV0FURVJNQVJLX0RfTUFTSyAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfRAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfRF9fRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0RfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfRF9fU0hJRlQgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfRF9fRENIVUJCVUJfQVJCX0FMTE9XX1NSX0VYSVRfV0FURVJNQVJLX0RfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfQUxMT1dfU1JfRVhJVF9XQVRFUk1BUktfRF9fRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19TUl9FWElUX1dBVEVSTUFSS19EX01BU0sgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ0hVQkJVQl9BUkJfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19ECisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0RfX1NISUZUICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0FMTE9XX0RSQU1fQ0xLX0NIQU5HRV9XQVRFUk1BUktfRF9fRENIVUJCVUJfQVJCX1ZNX1JPV19BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0RfX1NISUZUICAweDEwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0RfTUFTSyAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9BTExPV19EUkFNX0NMS19DSEFOR0VfV0FURVJNQVJLX0RfX0RDSFVCQlVCX0FSQl9WTV9ST1dfQUxMT1dfRFJBTV9DTEtfQ0hBTkdFX1dBVEVSTUFSS19EX01BU0sgIDB4RkZGRjAwMDBMCisvL0RDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0NOVEwKKyNkZWZpbmUgRENIVUJCVUJfQVJCX1dBVEVSTUFSS19DSEFOR0VfQ05UTF9fRENIVUJCVUJfQVJCX1dBVEVSTUFSS19DSEFOR0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0NOVExfX0RDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0RPTkVfSU5URVJSVVBUX0RJU0FCTEVfX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfV0FURVJNQVJLX0NIQU5HRV9DTlRMX19EQ0hVQkJVQl9BUkJfV0FURVJNQVJLX0NIQU5HRV9ET05FX0lOVEVSUlVQVF9TVEFUVVNfX1NISUZUICAgICAgICAweDUKKyNkZWZpbmUgRENIVUJCVUJfQVJCX1dBVEVSTUFSS19DSEFOR0VfQ05UTF9fRENIVUJCVUJfQVJCX1dBVEVSTUFSS19DSEFOR0VfUkVRVUVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0NOVExfX0RDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0NOVExfX0RDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0RPTkVfSU5URVJSVVBUX0RJU0FCTEVfTUFTSyAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0NOVExfX0RDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0RPTkVfSU5URVJSVVBUX1NUQVRVU19NQVNLICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX0NOVExfX0RDSFVCQlVCX0FSQl9XQVRFUk1BUktfQ0hBTkdFX1JFUVVFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RDSFVCQlVCX0FSQl9USU1FT1VUX0VOQUJMRQorI2RlZmluZSBEQ0hVQkJVQl9BUkJfVElNRU9VVF9FTkFCTEVfX0RDSFVCQlVCX0FSQl9USU1FT1VUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX1RJTUVPVVRfRU5BQkxFX19EQ0hVQkJVQl9BUkJfVElNRU9VVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRENIVUJCVUJfR0xPQkFMX1RJTUVSX0NOVEwKKyNkZWZpbmUgRENIVUJCVUJfR0xPQkFMX1RJTUVSX0NOVExfX0RDSFVCQlVCX0dMT0JBTF9USU1FUl9SRUZESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0dMT0JBTF9USU1FUl9DTlRMX19EQ0hVQkJVQl9HTE9CQUxfVElNRVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ0hVQkJVQl9HTE9CQUxfVElNRVJfQ05UTF9fRENIVUJCVUJfR0xPQkFMX1RJTUVSX0lOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDSFVCQlVCX0dMT0JBTF9USU1FUl9DTlRMX19EQ0hVQkJVQl9HTE9CQUxfVElNRVJfUkVGRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERDSFVCQlVCX0dMT0JBTF9USU1FUl9DTlRMX19EQ0hVQkJVQl9HTE9CQUxfVElNRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDSFVCQlVCX0dMT0JBTF9USU1FUl9DTlRMX19EQ0hVQkJVQl9HTE9CQUxfVElNRVJfSU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NVUkZBQ0VfQ0hFQ0swX0FERFJFU1NfTFNCCisjZGVmaW5lIFNVUkZBQ0VfQ0hFQ0swX0FERFJFU1NfTFNCX19TVVJGQUNFX0NIRUNLMF9BRERSRVNTX0xTQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTVVJGQUNFX0NIRUNLMF9BRERSRVNTX0xTQl9fU1VSRkFDRV9DSEVDSzBfQUREUkVTU19MU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TVVJGQUNFX0NIRUNLMF9BRERSRVNTX01TQgorI2RlZmluZSBTVVJGQUNFX0NIRUNLMF9BRERSRVNTX01TQl9fU1VSRkFDRV9DSEVDSzBfQUREUkVTU19NU0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU1VSRkFDRV9DSEVDSzBfQUREUkVTU19NU0JfX0NIRUNLRVIwX1NVUkZBQ0VfSU5VU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTVVJGQUNFX0NIRUNLMF9BRERSRVNTX01TQl9fU1VSRkFDRV9DSEVDSzBfQUREUkVTU19NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTVVJGQUNFX0NIRUNLMF9BRERSRVNTX01TQl9fQ0hFQ0tFUjBfU1VSRkFDRV9JTlVTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TVVJGQUNFX0NIRUNLMV9BRERSRVNTX0xTQgorI2RlZmluZSBTVVJGQUNFX0NIRUNLMV9BRERSRVNTX0xTQl9fU1VSRkFDRV9DSEVDSzFfQUREUkVTU19MU0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU1VSRkFDRV9DSEVDSzFfQUREUkVTU19MU0JfX1NVUkZBQ0VfQ0hFQ0sxX0FERFJFU1NfTFNCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU1VSRkFDRV9DSEVDSzFfQUREUkVTU19NU0IKKyNkZWZpbmUgU1VSRkFDRV9DSEVDSzFfQUREUkVTU19NU0JfX1NVUkZBQ0VfQ0hFQ0sxX0FERFJFU1NfTVNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNVUkZBQ0VfQ0hFQ0sxX0FERFJFU1NfTVNCX19DSEVDS0VSMV9TVVJGQUNFX0lOVVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU1VSRkFDRV9DSEVDSzFfQUREUkVTU19NU0JfX1NVUkZBQ0VfQ0hFQ0sxX0FERFJFU1NfTVNCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU1VSRkFDRV9DSEVDSzFfQUREUkVTU19NU0JfX0NIRUNLRVIxX1NVUkZBQ0VfSU5VU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU1VSRkFDRV9DSEVDSzJfQUREUkVTU19MU0IKKyNkZWZpbmUgU1VSRkFDRV9DSEVDSzJfQUREUkVTU19MU0JfX1NVUkZBQ0VfQ0hFQ0syX0FERFJFU1NfTFNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNVUkZBQ0VfQ0hFQ0syX0FERFJFU1NfTFNCX19TVVJGQUNFX0NIRUNLMl9BRERSRVNTX0xTQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NVUkZBQ0VfQ0hFQ0syX0FERFJFU1NfTVNCCisjZGVmaW5lIFNVUkZBQ0VfQ0hFQ0syX0FERFJFU1NfTVNCX19TVVJGQUNFX0NIRUNLMl9BRERSRVNTX01TQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTVVJGQUNFX0NIRUNLMl9BRERSRVNTX01TQl9fQ0hFQ0tFUjJfU1VSRkFDRV9JTlVTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNVUkZBQ0VfQ0hFQ0syX0FERFJFU1NfTVNCX19TVVJGQUNFX0NIRUNLMl9BRERSRVNTX01TQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNVUkZBQ0VfQ0hFQ0syX0FERFJFU1NfTVNCX19DSEVDS0VSMl9TVVJGQUNFX0lOVVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NVUkZBQ0VfQ0hFQ0szX0FERFJFU1NfTFNCCisjZGVmaW5lIFNVUkZBQ0VfQ0hFQ0szX0FERFJFU1NfTFNCX19TVVJGQUNFX0NIRUNLM19BRERSRVNTX0xTQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTVVJGQUNFX0NIRUNLM19BRERSRVNTX0xTQl9fU1VSRkFDRV9DSEVDSzNfQUREUkVTU19MU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TVVJGQUNFX0NIRUNLM19BRERSRVNTX01TQgorI2RlZmluZSBTVVJGQUNFX0NIRUNLM19BRERSRVNTX01TQl9fU1VSRkFDRV9DSEVDSzNfQUREUkVTU19NU0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU1VSRkFDRV9DSEVDSzNfQUREUkVTU19NU0JfX0NIRUNLRVIzX1NVUkZBQ0VfSU5VU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTVVJGQUNFX0NIRUNLM19BRERSRVNTX01TQl9fU1VSRkFDRV9DSEVDSzNfQUREUkVTU19NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTVVJGQUNFX0NIRUNLM19BRERSRVNTX01TQl9fQ0hFQ0tFUjNfU1VSRkFDRV9JTlVTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WVEcwX0NPTlRST0wKKyNkZWZpbmUgVlRHMF9DT05UUk9MX19WVEcwX0ZQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZURzBfQ09OVFJPTF9fVlRHMF9WQ09VTlRfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVlRHMF9DT05UUk9MX19WVEcwX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWVEcwX0NPTlRST0xfX1ZURzBfRlAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBWVEcwX0NPTlRST0xfX1ZURzBfVkNPVU5UX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorI2RlZmluZSBWVEcwX0NPTlRST0xfX1ZURzBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WVEcxX0NPTlRST0wKKyNkZWZpbmUgVlRHMV9DT05UUk9MX19WVEcxX0ZQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZURzFfQ09OVFJPTF9fVlRHMV9WQ09VTlRfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVlRHMV9DT05UUk9MX19WVEcxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWVEcxX0NPTlRST0xfX1ZURzFfRlAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBWVEcxX0NPTlRST0xfX1ZURzFfVkNPVU5UX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorI2RlZmluZSBWVEcxX0NPTlRST0xfX1ZURzFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WVEcyX0NPTlRST0wKKyNkZWZpbmUgVlRHMl9DT05UUk9MX19WVEcyX0ZQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZURzJfQ09OVFJPTF9fVlRHMl9WQ09VTlRfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVlRHMl9DT05UUk9MX19WVEcyX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWVEcyX0NPTlRST0xfX1ZURzJfRlAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBWVEcyX0NPTlRST0xfX1ZURzJfVkNPVU5UX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorI2RlZmluZSBWVEcyX0NPTlRST0xfX1ZURzJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WVEczX0NPTlRST0wKKyNkZWZpbmUgVlRHM19DT05UUk9MX19WVEczX0ZQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZURzNfQ09OVFJPTF9fVlRHM19WQ09VTlRfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVlRHM19DT05UUk9MX19WVEczX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWVEczX0NPTlRST0xfX1ZURzNfRlAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBWVEczX0NPTlRST0xfX1ZURzNfVkNPVU5UX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorI2RlZmluZSBWVEczX0NPTlRST0xfX1ZURzNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ0hVQkJVQl9TT0ZUX1JFU0VUCisjZGVmaW5lIERDSFVCQlVCX1NPRlRfUkVTRVRfX0RDSFVCQlVCX0dMT0JBTF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9TT0ZUX1JFU0VUX19BTExPV19DU1RBVEVfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENIVUJCVUJfU09GVF9SRVNFVF9fR0xCRkxJUF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDSFVCQlVCX1NPRlRfUkVTRVRfX0RDSFVCQlVCX0dMT0JBTF9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDSFVCQlVCX1NPRlRfUkVTRVRfX0FMTE9XX0NTVEFURV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDSFVCQlVCX1NPRlRfUkVTRVRfX0dMQkZMSVBfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0RDSFVCQlVCX0NMT0NLX0NOVEwKKyNkZWZpbmUgRENIVUJCVUJfQ0xPQ0tfQ05UTF9fRENIVUJCVUJfVEVTVF9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0NMT0NLX0NOVExfX0RJU1BDTEtfUl9EQ0hVQkJVQl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ0hVQkJVQl9DTE9DS19DTlRMX19EQ0ZDTEtfUl9EQ0hVQkJVQl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENIVUJCVUJfQ0xPQ0tfQ05UTF9fRENIVUJCVUJfVEVTVF9DTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRENIVUJCVUJfQ0xPQ0tfQ05UTF9fRElTUENMS19SX0RDSFVCQlVCX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENIVUJCVUJfQ0xPQ0tfQ05UTF9fRENGQ0xLX1JfRENIVUJCVUJfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vRENGQ0xLX0NOVEwKKyNkZWZpbmUgRENGQ0xLX0NOVExfX0RDRkNMS19UVVJOX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDRkNMS19DTlRMX19EQ0ZDTEtfVFVSTl9PRkZfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0ZDTEtfQ05UTF9fRENGQ0xLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDRkNMS19DTlRMX19EQ0ZDTEtfVFVSTl9PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERDRkNMS19DTlRMX19EQ0ZDTEtfVFVSTl9PRkZfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERDRkNMS19DTlRMX19EQ0ZDTEtfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVEwKKyNkZWZpbmUgRENIVUJCVUJfUEVSRk9STUFOQ0VfTUVBU1VSRU1FTlRfQ05UTF9fRENIVUJCVUJfTEFURU5DWV9DTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVExfX0FSQl9MQVRFTkNZX1BJUEVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMX19BUkJfTEFURU5DWV9SRVFfVFlQRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENIVUJCVUJfUEVSRk9STUFOQ0VfTUVBU1VSRU1FTlRfQ05UTF9fREZfTEFURU5DWV9VUkdFTlRfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVExfX1JPQl9GSUZPX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMX19EQ0hVQkJVQl9MQVRFTkNZX0NOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMX19BUkJfTEFURU5DWV9QSVBFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBEQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMX19BUkJfTEFURU5DWV9SRVFfVFlQRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzgwTAorI2RlZmluZSBEQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMX19ERl9MQVRFTkNZX1VSR0VOVF9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMX19ST0JfRklGT19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGODAwTAorLy9EQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMMgorI2RlZmluZSBEQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMMl9fRENIVUJCVUJfTEFURU5DWV9GUkFNRV9XSU5fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfUEVSRk9STUFOQ0VfTUVBU1VSRU1FTlRfQ05UTDJfX0RDSFVCQlVCX0xBVEVOQ1lfRlJBTUVfV0lOX1NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVEwyX19EQ0hVQkJVQl9MQVRFTkNZX0ZSQU1FX1dJTl9EVVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMMl9fTEFURU5DWV9TT1VSQ0VfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENIVUJCVUJfUEVSRk9STUFOQ0VfTUVBU1VSRU1FTlRfQ05UTDJfX1JPQl9NQVhfRklGT19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ0hVQkJVQl9QRVJGT1JNQU5DRV9NRUFTVVJFTUVOVF9DTlRMMl9fUk9CX01BWF9GSUZPX0xFVkVMX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVEwyX19EQ0hVQkJVQl9MQVRFTkNZX0ZSQU1FX1dJTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVEwyX19EQ0hVQkJVQl9MQVRFTkNZX0ZSQU1FX1dJTl9TUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIERDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVEwyX19EQ0hVQkJVQl9MQVRFTkNZX0ZSQU1FX1dJTl9EVVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVEwyX19MQVRFTkNZX1NPVVJDRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVEwyX19ST0JfTUFYX0ZJRk9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGODAwMDBMCisjZGVmaW5lIERDSFVCQlVCX1BFUkZPUk1BTkNFX01FQVNVUkVNRU5UX0NOVEwyX19ST0JfTUFYX0ZJRk9fTEVWRUxfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDSFVCQlVCX1ZMSU5FX1NOQVBTSE9UCisjZGVmaW5lIERDSFVCQlVCX1ZMSU5FX1NOQVBTSE9UX19EQ0hVQkJVQl9WTElORV9TTkFQU0hPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9WTElORV9TTkFQU0hPVF9fRENIVUJCVUJfVkxJTkVfU05BUFNIT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EQ0hVQkJVQl9DVFJMX1NUQVRVUworI2RlZmluZSBEQ0hVQkJVQl9DVFJMX1NUQVRVU19fVVJHRU5UX1pFUk9fU0laRV9SRVFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQ1RSTF9TVEFUVVNfX1VSR0VOVF9aRVJPX1NJWkVfUkVRX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRENIVUJCVUJfVElNRU9VVF9ERVRFQ1RJT05fQ1RSTDEKKyNkZWZpbmUgRENIVUJCVUJfVElNRU9VVF9ERVRFQ1RJT05fQ1RSTDFfX0RDSFVCQlVCX1RJTUVPVVRfRVJST1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX1RJTUVPVVRfREVURUNUSU9OX0NUUkwxX19EQ0hVQkJVQl9USU1FT1VUX1JFUV9TVEFMTF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ0hVQkJVQl9USU1FT1VUX0RFVEVDVElPTl9DVFJMMV9fRENIVUJCVUJfVElNRU9VVF9FUlJPUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQ0hVQkJVQl9USU1FT1VUX0RFVEVDVElPTl9DVFJMMV9fRENIVUJCVUJfVElNRU9VVF9SRVFfU1RBTExfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkMwTAorLy9EQ0hVQkJVQl9USU1FT1VUX0RFVEVDVElPTl9DVFJMMgorI2RlZmluZSBEQ0hVQkJVQl9USU1FT1VUX0RFVEVDVElPTl9DVFJMMl9fRENIVUJCVUJfVElNRU9VVF9QU1RBVEVfU1RBTExfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfVElNRU9VVF9ERVRFQ1RJT05fQ1RSTDJfX0RDSFVCQlVCX1RJTUVPVVRfREVURUNUSU9OX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQ0hVQkJVQl9USU1FT1VUX0RFVEVDVElPTl9DVFJMMl9fRENIVUJCVUJfVElNRU9VVF9USU1FUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDSFVCQlVCX1RJTUVPVVRfREVURUNUSU9OX0NUUkwyX19EQ0hVQkJVQl9USU1FT1VUX1BTVEFURV9TVEFMTF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRkZGRkZMCisjZGVmaW5lIERDSFVCQlVCX1RJTUVPVVRfREVURUNUSU9OX0NUUkwyX19EQ0hVQkJVQl9USU1FT1VUX0RFVEVDVElPTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERDSFVCQlVCX1RJTUVPVVRfREVURUNUSU9OX0NUUkwyX19EQ0hVQkJVQl9USU1FT1VUX1RJTUVSX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RDSFVCQlVCX1RJTUVPVVRfSU5URVJSVVBUX1NUQVRVUworI2RlZmluZSBEQ0hVQkJVQl9USU1FT1VUX0lOVEVSUlVQVF9TVEFUVVNfX0RDSFVCQlVCX1RJTUVPVVRfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfVElNRU9VVF9JTlRFUlJVUFRfU1RBVFVTX19EQ0hVQkJVQl9USU1FT1VUX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDSFVCQlVCX1RJTUVPVVRfSU5URVJSVVBUX1NUQVRVU19fRENIVUJCVUJfVElNRU9VVF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0hVQkJVQl9USU1FT1VUX0lOVEVSUlVQVF9TVEFUVVNfX0RDSFVCQlVCX1RJTUVPVVRfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENIVUJCVUJfVElNRU9VVF9JTlRFUlJVUFRfU1RBVFVTX19EQ0hVQkJVQl9USU1FT1VUX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENIVUJCVUJfVElNRU9VVF9JTlRFUlJVUFRfU1RBVFVTX19EQ0hVQkJVQl9USU1FT1VUX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENIVUJCVUJfVElNRU9VVF9JTlRFUlJVUFRfU1RBVFVTX19EQ0hVQkJVQl9USU1FT1VUX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENIVUJCVUJfVElNRU9VVF9JTlRFUlJVUFRfU1RBVFVTX19EQ0hVQkJVQl9USU1FT1VUX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGOEwKKy8vRENIVUJCVUJfVEVTVF9ERUJVR19JTkRFWAorI2RlZmluZSBEQ0hVQkJVQl9URVNUX0RFQlVHX0lOREVYX19EQ0hVQkJVQl9URVNUX0RFQlVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfVEVTVF9ERUJVR19JTkRFWF9fRENIVUJCVUJfVEVTVF9ERUJVR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vRENIVUJCVUJfVEVTVF9ERUJVR19EQVRBCisjZGVmaW5lIERDSFVCQlVCX1RFU1RfREVCVUdfREFUQV9fRENIVUJCVUJfVEVTVF9ERUJVR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9URVNUX0RFQlVHX0RBVEFfX0RDSFVCQlVCX1RFU1RfREVCVUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0EKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9BX19EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQV9fRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL0RDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0EKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQV9fRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0FfX0RDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL0RDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQgorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0JfX0RDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9CX19EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKy8vRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQgorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9CX19EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQl9fRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKy8vRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9DCisjZGVmaW5lIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQ19fRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0NfX0RDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9DCisjZGVmaW5lIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0NfX0RDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9DX19EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfRkxJUF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0QKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9EX19EQ0hVQkJVQl9BUkJfRlJBQ19VUkdfQldfTk9NX0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19OT01fRF9fRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX05PTV9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL0RDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0QKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfRF9fRENIVUJCVUJfQVJCX0ZSQUNfVVJHX0JXX0ZMSVBfRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0RfX0RDSFVCQlVCX0FSQl9GUkFDX1VSR19CV19GTElQX0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL0RDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfSE9TVFZNX0NOVExfX0RJU0FCTEVfSE9TVFZNX0ZPUkNFX0NTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0hPU1RWTV9DTlRMX19ESVNBQkxFX0hPU1RWTV9GT1JDRV9BTExPV19QU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fUFJRX1NMQUNLX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0hVQkJVQl9BUkJfSE9TVFZNX0NOVExfX1BSUV9TUEFDRV9PS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0hPU1RWTV9DTlRMX19QUlFfR0lEX0ZSRUVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fRENIVk1fUkVUX0ZJRk9fRlJFRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ0hVQkJVQl9BUkJfSE9TVFZNX0NOVExfX05PTl9QUlFfQ0xJRU5UX1dJTk5FUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0hPU1RWTV9DTlRMX19IT1NUVk1fTUFYX0FMTE9DQVRFRF9HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fSE9TVFZNX01BWF9SRF9GSUZPX0VOVFJJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENIVUJCVUJfQVJCX0hPU1RWTV9DTlRMX19IT1NUVk1fUU9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ0hVQkJVQl9BUkJfSE9TVFZNX0NOVExfX0RDSFVCQlVCX0FSQl9NQVhfUU9TX0NPTU1JVF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fRElTQUJMRV9IT1NUVk1fRk9SQ0VfQ1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fRElTQUJMRV9IT1NUVk1fRk9SQ0VfQUxMT1dfUFNUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fUFJRX1NMQUNLX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fUFJRX1NQQUNFX09LX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fUFJRX0dJRF9GUkVFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fRENIVk1fUkVUX0ZJRk9fRlJFRV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fTk9OX1BSUV9DTElFTlRfV0lOTkVSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fSE9TVFZNX01BWF9BTExPQ0FURURfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fSE9TVFZNX01BWF9SRF9GSUZPX0VOVFJJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fSE9TVFZNX1FPU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERDSFVCQlVCX0FSQl9IT1NUVk1fQ05UTF9fRENIVUJCVUJfQVJCX01BWF9RT1NfQ09NTUlUX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0ZNT05fQ1RSTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1PTl9DVFJMX19GTU9OX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEZNT05fQ1RSTF9fRk1PTl9QU1RBVEVfSUdOT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fU1RBVFVTX0lHTk9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRk1PTl9DVFJMX19GTU9OX1VSR19NT0RFX0dSRUFURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEZNT05fQ1RSTF9fRk1PTl9GSUxURVJfVUlEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRk1PTl9DVFJMX19GTU9OX1VSR19GSUxURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEZNT05fQ1RSTF9fRk1PTl9VUkdfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fRklMVEVSX1VJRF8xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEZNT05fQ1RSTF9fRk1PTl9GSUxURVJfVUlEXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRk1PTl9DVFJMX19GTU9OX1NPRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fUFNUQVRFX0lHTk9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fU1RBVFVTX0lHTk9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fVVJHX01PREVfR1JFQVRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fRklMVEVSX1VJRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTgwTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fVVJHX0ZJTFRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fVVJHX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFFMDAwTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fRklMVEVSX1VJRF8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0UwMDAwTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fRklMVEVSX1VJRF8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3QzAwMDAwTAorI2RlZmluZSBGTU9OX0NUUkxfX0ZNT05fU09GX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4MDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjaHViYnViX2RjaHViYnViX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfQ05UTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURQorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EQ19QRVJGTU9ONl9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX1BFUkZNT042X1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDX1BFUkZNT042X1BFUkZNT05fQ1ZBTFVFX0xPVworI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfUEVSRk1PTjZfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9ONl9QRVJGTU9OX0xPVworI2RlZmluZSBEQ19QRVJGTU9ONl9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjZfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2h1YmJ1Yl9odWJidWJfdm1ycV9pZl9kaXNwZGVjCisvL0RDTl9WTV9DT05URVhUMF9DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUMF9DTlRMX19WTV9DT05URVhUMF9QQUdFX1RBQkxFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDBfQ05UTF9fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQwX0NOVExfX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQwX0NOVExfX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQwX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19WTV9DT05URVhUMF9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUMF9QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDBfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19WTV9DT05URVhUMF9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDBfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQwX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19WTV9DT05URVhUMF9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUMF9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDBfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19WTV9DT05URVhUMF9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDBfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQxX0NOVEwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxX0NOVExfX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDTl9WTV9DT05URVhUMV9DTlRMX19WTV9DT05URVhUMV9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ05fVk1fQ09OVEVYVDFfQ05UTF9fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDFfQ05UTF9fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorLy9EQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDFfUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUMV9QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX01BU0sgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19WTV9DT05URVhUMV9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vRENOX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDFfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUMV9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19WTV9DT05URVhUMV9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDJfQ05UTAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDJfQ05UTF9fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQyX0NOVExfX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDTl9WTV9DT05URVhUMl9DTlRMX19WTV9DT05URVhUMl9QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIERDTl9WTV9DT05URVhUMl9DTlRMX19WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisvL0RDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19WTV9DT05URVhUMl9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDJfUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDJfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1ZNX0NPTlRFWFQyX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDJfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQyX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19WTV9DT05URVhUMl9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDJfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDJfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQyX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDJfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQyX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUM19DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUM19DTlRMX19WTV9DT05URVhUM19QQUdFX1RBQkxFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDNfQ05UTF9fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQzX0NOVExfX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQzX0NOVExfX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQzX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19WTV9DT05URVhUM19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUM19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDNfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19WTV9DT05URVhUM19TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDNfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQzX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19WTV9DT05URVhUM19TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUM19FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDNfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19WTV9DT05URVhUM19FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDNfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQ0X0NOVEwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ0X0NOVExfX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDTl9WTV9DT05URVhUNF9DTlRMX19WTV9DT05URVhUNF9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ05fVk1fQ09OVEVYVDRfQ05UTF9fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDRfQ05UTF9fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorLy9EQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDRfUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ0X1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ0X1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUNF9QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX01BU0sgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ0X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19WTV9DT05URVhUNF9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vRENOX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDRfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ0X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ0X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUNF9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ0X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19WTV9DT05URVhUNF9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDVfQ05UTAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDVfQ05UTF9fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ1X0NOVExfX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDTl9WTV9DT05URVhUNV9DTlRMX19WTV9DT05URVhUNV9QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIERDTl9WTV9DT05URVhUNV9DTlRMX19WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisvL0RDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19WTV9DT05URVhUNV9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDVfUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDVfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ1X1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDVfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ1X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19WTV9DT05URVhUNV9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDVfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDVfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ1X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDVfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ1X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUNl9DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUNl9DTlRMX19WTV9DT05URVhUNl9QQUdFX1RBQkxFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDZfQ05UTF9fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ2X0NOVExfX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ2X0NOVExfX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ2X1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19WTV9DT05URVhUNl9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUNl9QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDZfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19WTV9DT05URVhUNl9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDZfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ2X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19WTV9DT05URVhUNl9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUNl9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDZfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19WTV9DT05URVhUNl9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDZfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQ3X0NOVEwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ3X0NOVExfX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDTl9WTV9DT05URVhUN19DTlRMX19WTV9DT05URVhUN19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ05fVk1fQ09OVEVYVDdfQ05UTF9fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDdfQ05UTF9fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorLy9EQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDdfUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ3X1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ3X1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUN19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUN19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX01BU0sgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ3X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19WTV9DT05URVhUN19TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vRENOX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDdfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ3X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ3X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUN19FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ3X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19WTV9DT05URVhUN19FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDhfQ05UTAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDhfQ05UTF9fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ4X0NOVExfX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDTl9WTV9DT05URVhUOF9DTlRMX19WTV9DT05URVhUOF9QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIERDTl9WTV9DT05URVhUOF9DTlRMX19WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisvL0RDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19WTV9DT05URVhUOF9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDhfUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDhfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ4X1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDhfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ4X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19WTV9DT05URVhUOF9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDhfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDhfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ4X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDhfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ4X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUOV9DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUOV9DTlRMX19WTV9DT05URVhUOV9QQUdFX1RBQkxFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDlfQ05UTF9fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ5X0NOVExfX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ5X0NOVExfX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQ5X1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19WTV9DT05URVhUOV9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUOV9QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDlfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19WTV9DT05URVhUOV9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDlfU1RBUlRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQ5X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19WTV9DT05URVhUOV9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUOV9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDlfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19WTV9DT05URVhUOV9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDlfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQxMF9DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTBfQ05UTF9fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEwX0NOVExfX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMF9DTlRMX19WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMF9DTlRMX19WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDEwX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxMF9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUMTBfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDEwX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDEwX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxMF9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDEwX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxMF9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUMTBfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDEwX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDEwX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxMF9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQxMV9DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTFfQ05UTF9fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDExX0NOVExfX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMV9DTlRMX19WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMV9DTlRMX19WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDExX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxMV9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUMTFfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDExX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDExX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxMV9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDExX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxMV9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUMTFfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDExX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDExX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxMV9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQxMl9DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTJfQ05UTF9fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEyX0NOVExfX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMl9DTlRMX19WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMl9DTlRMX19WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDEyX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxMl9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUMTJfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDEyX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDEyX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxMl9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDEyX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxMl9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUMTJfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDEyX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDEyX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxMl9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQxM19DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTNfQ05UTF9fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEzX0NOVExfX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxM19DTlRMX19WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxM19DTlRMX19WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDEzX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxM19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUMTNfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDEzX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDEzX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxM19TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDEzX1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxM19TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUMTNfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDEzX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDEzX0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxM19FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQxNF9DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTRfQ05UTF9fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDE0X0NOVExfX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNF9DTlRMX19WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNF9DTlRMX19WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDE0X1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxNF9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUMTRfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDE0X1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDE0X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxNF9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDE0X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxNF9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUMTRfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDE0X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDE0X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxNF9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0NPTlRFWFQxNV9DTlRMCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTVfQ05UTF9fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDE1X0NOVExfX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNV9DTlRMX19WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNV9DTlRMX19WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKy8vRENOX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fVk1fQ09OVEVYVDE1X1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxNV9QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ05fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19WTV9DT05URVhUMTVfUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fVk1fQ09OVEVYVDE1X1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fVk1fQ09OVEVYVDE1X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX1ZNX0NPTlRFWFQxNV9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0RDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fVk1fQ09OVEVYVDE1X1NUQVJUX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxNV9TVEFSVF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIERDTl9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19WTV9DT05URVhUMTVfRU5EX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fVk1fQ09OVEVYVDE1X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9EQ05fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBEQ05fVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fVk1fQ09OVEVYVDE1X0VORF9MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX1ZNX0NPTlRFWFQxNV9FTkRfTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0RFRkFVTFRfQUREUl9NU0IKKyNkZWZpbmUgRENOX1ZNX0RFRkFVTFRfQUREUl9NU0JfX0RDTl9WTV9ERUZBVUxUX0FERFJfTVNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9ERUZBVUxUX0FERFJfTVNCX19EQ05fVk1fREVGQVVMVF9TUEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENOX1ZNX0RFRkFVTFRfQUREUl9NU0JfX0RDTl9WTV9ERUZBVUxUX1NOT09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ05fVk1fREVGQVVMVF9BRERSX01TQl9fRENOX1ZNX0RFRkFVTFRfQUREUl9NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQ05fVk1fREVGQVVMVF9BRERSX01TQl9fRENOX1ZNX0RFRkFVTFRfU1BBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ05fVk1fREVGQVVMVF9BRERSX01TQl9fRENOX1ZNX0RFRkFVTFRfU05PT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EQ05fVk1fREVGQVVMVF9BRERSX0xTQgorI2RlZmluZSBEQ05fVk1fREVGQVVMVF9BRERSX0xTQl9fRENOX1ZNX0RFRkFVTFRfQUREUl9MU0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0RFRkFVTFRfQUREUl9MU0JfX0RDTl9WTV9ERUZBVUxUX0FERFJfTFNCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENOX1ZNX0ZBVUxUX0NOVEwKKyNkZWZpbmUgRENOX1ZNX0ZBVUxUX0NOVExfX0RDTl9WTV9FUlJPUl9TVEFUVVNfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDTl9WTV9GQVVMVF9DTlRMX19EQ05fVk1fRVJST1JfU1RBVFVTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ05fVk1fRkFVTFRfQ05UTF9fRENOX1ZNX0VSUk9SX0lOVEVSUlVQVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENOX1ZNX0ZBVUxUX0NOVExfX0RDTl9WTV9SQU5HRV9GQVVMVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDTl9WTV9GQVVMVF9DTlRMX19EQ05fVk1fUFJRX0ZBVUxUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ05fVk1fRkFVTFRfQ05UTF9fRENOX1ZNX0VSUk9SX1NUQVRVU19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ05fVk1fRkFVTFRfQ05UTF9fRENOX1ZNX0VSUk9SX1NUQVRVU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ05fVk1fRkFVTFRfQ05UTF9fRENOX1ZNX0VSUk9SX0lOVEVSUlVQVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ05fVk1fRkFVTFRfQ05UTF9fRENOX1ZNX1JBTkdFX0ZBVUxUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ05fVk1fRkFVTFRfQ05UTF9fRENOX1ZNX1BSUV9GQVVMVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorLy9EQ05fVk1fRkFVTFRfU1RBVFVTCisjZGVmaW5lIERDTl9WTV9GQVVMVF9TVEFUVVNfX0RDTl9WTV9FUlJPUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fRkFVTFRfU1RBVFVTX19EQ05fVk1fRVJST1JfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDTl9WTV9GQVVMVF9TVEFUVVNfX0RDTl9WTV9FUlJPUl9UQUJMRV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENOX1ZNX0ZBVUxUX1NUQVRVU19fRENOX1ZNX0VSUk9SX1BJUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ05fVk1fRkFVTFRfU1RBVFVTX19EQ05fVk1fRVJST1JfSU5URVJSVVBUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDTl9WTV9GQVVMVF9TVEFUVVNfX0RDTl9WTV9FUlJPUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDTl9WTV9GQVVMVF9TVEFUVVNfX0RDTl9WTV9FUlJPUl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERDTl9WTV9GQVVMVF9TVEFUVVNfX0RDTl9WTV9FUlJPUl9UQUJMRV9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDTl9WTV9GQVVMVF9TVEFUVVNfX0RDTl9WTV9FUlJPUl9QSVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERDTl9WTV9GQVVMVF9TVEFUVVNfX0RDTl9WTV9FUlJPUl9JTlRFUlJVUFRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDTl9WTV9GQVVMVF9BRERSX01TQgorI2RlZmluZSBEQ05fVk1fRkFVTFRfQUREUl9NU0JfX0RDTl9WTV9GQVVMVF9BRERSX01TQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENOX1ZNX0ZBVUxUX0FERFJfTVNCX19EQ05fVk1fRkFVTFRfQUREUl9NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vRENOX1ZNX0ZBVUxUX0FERFJfTFNCCisjZGVmaW5lIERDTl9WTV9GQVVMVF9BRERSX0xTQl9fRENOX1ZNX0ZBVUxUX0FERFJfTFNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ05fVk1fRkFVTFRfQUREUl9MU0JfX0RDTl9WTV9GQVVMVF9BRERSX0xTQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDBfZGlzcGRlY19odWJwX2Rpc3BkZWMKKy8vSFVCUDBfRENTVVJGX1NVUkZBQ0VfQ09ORklHCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fU1VSRkFDRV9QSVhFTF9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfU1VSRkFDRV9DT05GSUdfX1JPVEFUSU9OX0FOR0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1NVUkZBQ0VfQ09ORklHX19IX01JUlJPUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fU1VSRkFDRV9QSVhFTF9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fUk9UQVRJT05fQU5HTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fSF9NSVJST1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL0hVQlAwX0RDU1VSRl9BRERSX0NPTkZJRworI2RlZmluZSBIVUJQMF9EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9QSVBFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDBfRENTVVJGX0FERFJfQ09ORklHX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQMF9EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9TRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUDBfRENTVVJGX0FERFJfQ09ORklHX19OVU1fUkJfUEVSX1NFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9BRERSX0NPTkZJR19fTUFYX0NPTVBSRVNTRURfRlJBR1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQMF9EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9QSVBFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9TRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9SQl9QRVJfU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfQUREUl9DT05GSUdfX01BWF9DT01QUkVTU0VEX0ZSQUdTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorLy9IVUJQMF9EQ1NVUkZfVElMSU5HX0NPTkZJRworI2RlZmluZSBIVUJQMF9EQ1NVUkZfVElMSU5HX0NPTkZJR19fU1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1RJTElOR19DT05GSUdfX0RJTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEhVQlAwX0RDU1VSRl9USUxJTkdfQ09ORklHX19NRVRBX0xJTkVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQMF9EQ1NVUkZfVElMSU5HX0NPTkZJR19fUkJfQUxJR05FRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1RJTElOR19DT05GSUdfX1BJUEVfQUxJR05FRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9USUxJTkdfQ09ORklHX19TV19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9USUxJTkdfQ09ORklHX19ESU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxODBMCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9USUxJTkdfQ09ORklHX19NRVRBX0xJTkVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9USUxJTkdfQ09ORklHX19SQl9BTElHTkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9USUxJTkdfQ09ORklHX19QSVBFX0FMSUdORURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisvL0hVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlQKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9fUFJJX1ZJRVdQT1JUX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfX1BSSV9WSUVXUE9SVF9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9fUFJJX1ZJRVdQT1JUX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9fUFJJX1ZJRVdQT1JUX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT04KKyNkZWZpbmUgSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fX1BSSV9WSUVXUE9SVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX19QUklfVklFV1BPUlRfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fX1BSSV9WSUVXUE9SVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fX1BSSV9WSUVXUE9SVF9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9DCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQ19fUFJJX1ZJRVdQT1JUX1hfU1RBUlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0NfX1BSSV9WSUVXUE9SVF9ZX1NUQVJUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQ19fUFJJX1ZJRVdQT1JUX1hfU1RBUlRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQ19fUFJJX1ZJRVdQT1JUX1lfU1RBUlRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0MKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQ19fUFJJX1ZJRVdQT1JUX1dJRFRIX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0NfX1BSSV9WSUVXUE9SVF9IRUlHSFRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQ19fUFJJX1ZJRVdQT1JUX1dJRFRIX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQ19fUFJJX1ZJRVdQT1JUX0hFSUdIVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX19TRUNfVklFV1BPUlRfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9fU0VDX1ZJRVdQT1JUX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX19TRUNfVklFV1BPUlRfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX19TRUNfVklFV1BPUlRfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTgorI2RlZmluZSBIVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9fU0VDX1ZJRVdQT1JUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fX1NFQ19WSUVXUE9SVF9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9fU0VDX1ZJRVdQT1JUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9fU0VDX1ZJRVdQT1JUX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX0MKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DX19TRUNfVklFV1BPUlRfWF9TVEFSVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAwX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQ19fU0VDX1ZJRVdQT1JUX1lfU1RBUlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DX19TRUNfVklFV1BPUlRfWF9TVEFSVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DX19TRUNfVklFV1BPUlRfWV9TVEFSVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQworI2RlZmluZSBIVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19TRUNfVklFV1BPUlRfV0lEVEhfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDBfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQ19fU0VDX1ZJRVdQT1JUX0hFSUdIVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19TRUNfVklFV1BPUlRfV0lEVEhfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQMF9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19TRUNfVklFV1BPUlRfSEVJR0hUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQMF9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1NXQVRIX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19QVEVfUk9XX0hFSUdIVF9MSU5FQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fQ0hVTktfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01JTl9DSFVOS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBIVUJQMF9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19NRVRBX0NIVU5LX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01JTl9NRVRBX0NIVU5LX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fRFBURV9HUk9VUF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19WTV9HUk9VUF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1NXQVRIX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1BURV9ST1dfSEVJR0hUX0xJTkVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX0NIVU5LX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01JTl9DSFVOS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01FVEFfQ0hVTktfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01JTl9NRVRBX0NIVU5LX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX0RQVEVfR1JPVVBfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1ZNX0dST1VQX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisvL0hVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQworI2RlZmluZSBIVUJQMF9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX1NXQVRIX0hFSUdIVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19QVEVfUk9XX0hFSUdIVF9MSU5FQVJfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fQ0hVTktfU0laRV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX01JTl9DSFVOS19TSVpFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NRVRBX0NIVU5LX1NJWkVfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX01JTl9NRVRBX0NIVU5LX1NJWkVfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fRFBURV9HUk9VUF9TSVpFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19TV0FUSF9IRUlHSFRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19QVEVfUk9XX0hFSUdIVF9MSU5FQVJfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19DSFVOS19TSVpFX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NSU5fQ0hVTktfU0laRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTgwMEwKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NRVRBX0NIVU5LX1NJWkVfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NSU5fTUVUQV9DSFVOS19TSVpFX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19EUFRFX0dST1VQX1NJWkVfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKy8vSFVCUDBfRENIVUJQX0NOVEwKKyNkZWZpbmUgSFVCUDBfRENIVUJQX0NOVExfX0hVQlBfQkxBTktfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9DTlRMX19IVUJQX05PX09VVFNUQU5ESU5HX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUDBfRENIVUJQX0NOVExfX0hVQlBfSU5fQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9DTlRMX19IVUJQX1ZUR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9WUkVBRFlfQVRfT1JfQUZURVJfVlNZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUDBfRENIVUJQX0NOVExfX0hVQlBfRElTQUJMRV9TVE9QX0RBVEFfRFVSSU5HX1ZNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlAwX0RDSFVCUF9DTlRMX19IVUJQX1RUVV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9UVFVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgSFVCUDBfRENIVUJQX0NOVExfX0hVQlBfWFJRX05PX09VVFNUQU5ESU5HX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlAwX0RDSFVCUF9DTlRMX19IVUJQX1RJTUVPVVRfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUDBfRENIVUJQX0NOVExfX0hVQlBfVElNRU9VVF9TVEFUVVNfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX0lOVEVSUlVQVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9DTlRMX19IVUJQX1VOREVSRkxPV19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUDBfRENIVUJQX0NOVExfX0hVQlBfVU5ERVJGTE9XX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9CTEFOS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9OT19PVVRTVEFORElOR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9JTl9CTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9WVEdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9WUkVBRFlfQVRfT1JfQUZURVJfVlNZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9ESVNBQkxFX1NUT1BfREFUQV9EVVJJTkdfVk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9UVFVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9UVFVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBFMDAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9YUlFfTk9fT1VUU1RBTkRJTkdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1NUQVRVU19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX0lOVEVSUlVQVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9VTkRFUkZMT1dfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorI2RlZmluZSBIVUJQMF9EQ0hVQlBfQ05UTF9fSFVCUF9VTkRFUkZMT1dfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9IVUJQMF9IVUJQX0NMS19DTlRMCisjZGVmaW5lIEhVQlAwX0hVQlBfQ0xLX0NOVExfX0hVQlBfQ0xPQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RJU1BDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUDBfSFVCUF9DTEtfQ05UTF9fSFVCUF9EUFBDTEtfR19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlAwX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX1JfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19HX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAwX0hVQlBfQ0xLX0NOVExfX0hVQlBfRElTUENMS19SX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUDBfSFVCUF9DTEtfQ05UTF9fSFVCUF9EUFBDTEtfR19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19SX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIEhVQlAwX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX0dfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgSFVCUDBfSFVCUF9DTEtfQ05UTF9fSFVCUF9URVNUX0NMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0NMT0NLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RJU1BDTEtfUl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RQUENMS19HX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19SX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19HX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RJU1BDTEtfUl9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RQUENMS19HX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19SX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19HX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBIVUJQMF9IVUJQX0NMS19DTlRMX19IVUJQX1RFU1RfQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9IVUJQMF9EQ0hVQlBfVk1QR19DT05GSUcKKyNkZWZpbmUgSFVCUDBfRENIVUJQX1ZNUEdfQ09ORklHX19WTVBHX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAwX0RDSFVCUF9WTVBHX0NPTkZJR19fVk1QR19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0hVQlAwX0hVQlBSRVFfREVCVUdfREIKKyNkZWZpbmUgSFVCUDBfSFVCUFJFUV9ERUJVR19EQl9fSFVCUFJFUV9ERUJVR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAwX0hVQlBSRVFfREVCVUdfREJfX0hVQlBSRVFfREVCVUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEsKKyNkZWZpbmUgSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9NRUFTVVJFX1dJTl9FTl9EQ0ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fUEVSSU9EX00xX0RDRkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQMF9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX1BFUkZNT05fU1RBUlRfU0VMX0RDRkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9QRVJGTU9OX1NUT1BfU0VMX0RDRkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQMF9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX01FQVNVUkVfV0lOX01PREVfRENGQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fRU5fRENGQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fUEVSSU9EX00xX0RDRkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIEhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfUEVSRk1PTl9TVEFSVF9TRUxfRENGQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIEhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfUEVSRk1PTl9TVE9QX1NFTF9EQ0ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGMDAwMDBMCisjZGVmaW5lIEhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fTU9ERV9EQ0ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL0hVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEsKKyNkZWZpbmUgSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9FTl9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfTUVBU1VSRV9XSU5fU1JDX1NFTF9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIVUJQMF9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX01FQVNVUkVfV0lOX1BFUklPRF9NMV9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9QRVJGTU9OX1NUQVJUX1NFTF9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlAwX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfUEVSRk1PTl9TVE9QX1NFTF9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9FTl9EUFBDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9TUkNfU0VMX0RQUENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9QRVJJT0RfTTFfRFBQQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9QRVJGTU9OX1NUQVJUX1NFTF9EUFBDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjAwMEwKKyNkZWZpbmUgSFVCUDBfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9QRVJGTU9OX1NUT1BfU0VMX0RQUENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAwX2Rpc3BkZWNfaHVicHJlcV9kaXNwZGVjCisvL0hVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX1BJVENICisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX1BJVENIX19QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9fTUVUQV9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX1BJVENIX19QSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX1BJVENIX19NRVRBX1BJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX1BJVENIX0MKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQ19fUElUQ0hfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX1BJVENIX0NfX01FVEFfUElUQ0hfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQ19fUElUQ0hfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQ19fTUVUQV9QSVRDSF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUFJFUTBfVk1JRF9TRVRUSU5HU18wCisjZGVmaW5lIEhVQlBSRVEwX1ZNSURfU0VUVElOR1NfMF9fVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9WTUlEX1NFVFRJTkdTXzBfX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9IVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1MKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdICisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQworI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQ19fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0NfX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQworI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1MKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0MKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQ19fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0NfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQworI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1MKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0MKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19NQVNLICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQworI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19NQVNLICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTUworI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdICisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0MKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TSElGVCAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19NQVNLICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfRENDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9UTVpfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfRENDX0lORF82NEJfQkxLX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfVE1aX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfVE1aX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX01FVEFfU1VSRkFDRV9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfTUVUQV9TVVJGQUNFX1RNWl9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX1RNWl9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9UTVpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9EQ0NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9UTVpfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX1RNWl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX1RNWl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfTUVUQV9TVVJGQUNFX1RNWl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfTUVUQV9TVVJGQUNFX1RNWl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfVE1aX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL0hVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9VUERBVEVfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfVlVQREFURV9TS0lQX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0xfX0hVQlBSRVFfTUFTVEVSX1VQREFURV9MT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfTU9ERV9GT1JfU1RFUkVPU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX0lOX1NURVJFT1NZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfU1RFUkVPX1NFTEVDVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9TVEVSRU9fU0VMRUNUX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1BFTkRJTkdfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX1VQREFURV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfVlVQREFURV9TS0lQX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19IVUJQUkVRX01BU1RFUl9VUERBVEVfTE9DS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfTU9ERV9GT1JfU1RFUkVPU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfSU5fU1RFUkVPU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfU1RFUkVPX1NFTEVDVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfU1RFUkVPX1NFTEVDVF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfUEVORElOR19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRjAwMDAwTAorLy9IVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MMgorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9GTElQX1BFTkRJTkdfTUlOX1RJTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfR1NMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0dTTF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9UUklQTEVfQlVGRkVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfSU5VU0VfUkFFRF9OT19MQVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0ZMSVBfUEVORElOR19NSU5fVElNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0dTTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0dTTF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX1RSSVBMRV9CVUZGRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0lOVVNFX1JBRURfTk9fTEFUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0hVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfSU5VU0UKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfSU5VU0VfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0lOVVNFX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9fU1VSRkFDRV9JTlVTRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0MKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfSU5VU0VfQ19fU1VSRkFDRV9JTlVTRV9BRERSRVNTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0NfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfQworI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIX0NfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19ISUdIX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9DX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfSElHSF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0UKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0MKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQ19fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0NfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEwX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfQworI2RlZmluZSBIVUJQUkVRMF9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX0NfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19ISUdIX0NfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9DX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfSElHSF9DX01BU0sgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTBfRENOX0VYUEFOU0lPTl9NT0RFCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9FWFBBTlNJT05fTU9ERV9fRFJRX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ05fRVhQQU5TSU9OX01PREVfX0NSUV9FWFBBTlNJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFUTBfRENOX0VYUEFOU0lPTl9NT0RFX19NUlFfRVhQQU5TSU9OX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVEwX0RDTl9FWFBBTlNJT05fTU9ERV9fUFJRX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQUkVRMF9EQ05fRVhQQU5TSU9OX01PREVfX0RSUV9FWFBBTlNJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBIVUJQUkVRMF9EQ05fRVhQQU5TSU9OX01PREVfX0NSUV9FWFBBTlNJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBIVUJQUkVRMF9EQ05fRVhQQU5TSU9OX01PREVfX01SUV9FWFBBTlNJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBIVUJQUkVRMF9EQ05fRVhQQU5TSU9OX01PREVfX1BSUV9FWFBBTlNJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorLy9IVUJQUkVRMF9EQ05fVFRVX1FPU19XTQorI2RlZmluZSBIVUJQUkVRMF9EQ05fVFRVX1FPU19XTV9fUW9TX0xFVkVMX0xPV19XTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1RUVV9RT1NfV01fX1FvU19MRVZFTF9ISUdIX1dNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMF9EQ05fVFRVX1FPU19XTV9fUW9TX0xFVkVMX0xPV19XTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVRMF9EQ05fVFRVX1FPU19XTV9fUW9TX0xFVkVMX0hJR0hfV01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVRMF9EQ05fR0xPQkFMX1RUVV9DTlRMCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9HTE9CQUxfVFRVX0NOVExfX01JTl9UVFVfVkJMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ05fR0xPQkFMX1RUVV9DTlRMX19Rb1NfTEVWRUxfRkxJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9HTE9CQUxfVFRVX0NOVExfX01JTl9UVFVfVkJMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9HTE9CQUxfVFRVX0NOVExfX1FvU19MRVZFTF9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0hVQlBSRVEwX0RDTl9TVVJGMF9UVFVfQ05UTDAKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1NVUkYwX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9TVVJGMF9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1NVUkYwX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQUkVRMF9EQ05fU1VSRjBfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorI2RlZmluZSBIVUJQUkVRMF9EQ05fU1VSRjBfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBIVUJQUkVRMF9EQ05fU1VSRjBfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9IVUJQUkVRMF9EQ05fU1VSRjBfVFRVX0NOVEwxCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9TVVJGMF9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ05fU1VSRjBfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMF9EQ05fU1VSRjFfVFRVX0NOVEwwCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9TVVJGMV9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ05fU1VSRjFfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlBSRVEwX0RDTl9TVVJGMV9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1NVUkYxX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1NVUkYxX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1NVUkYxX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vSFVCUFJFUTBfRENOX1NVUkYxX1RUVV9DTlRMMQorI2RlZmluZSBIVUJQUkVRMF9EQ05fU1VSRjFfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1NVUkYxX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTBfRENOX0NVUjBfVFRVX0NOVEwwCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9DVVIwX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ05fQ1VSMF9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlBSRVEwX0RDTl9DVVIwX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUFJFUTBfRENOX0NVUjBfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKyNkZWZpbmUgSFVCUFJFUTBfRENOX0NVUjBfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTBfRENOX0NVUjBfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vSFVCUFJFUTBfRENOX0NVUjBfVFRVX0NOVEwxCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9DVVIwX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ05fQ1VSMF9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMF9EQ05fQ1VSMV9UVFVfQ05UTDAKKyNkZWZpbmUgSFVCUFJFUTBfRENOX0NVUjFfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9DVVIxX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFUTBfRENOX0NVUjFfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQUkVRMF9EQ05fQ1VSMV9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorI2RlZmluZSBIVUJQUkVRMF9EQ05fQ1VSMV9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBIVUJQUkVRMF9EQ05fQ1VSMV9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9IVUJQUkVRMF9EQ05fQ1VSMV9UVFVfQ05UTDEKKyNkZWZpbmUgSFVCUFJFUTBfRENOX0NVUjFfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9DVVIxX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEwX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFIKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9fTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRkZGRkZMCisvL0hVQlBSRVEwX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX19NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9fTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDNGRkZGRkZGTAorLy9IVUJQUkVRMF9EQ05fVk1fTVhfTDFfVExCX0NOVEwKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfTDFfVExCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fU1lTVEVNX0FDQ0VTU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBIVUJQUkVRMF9EQ05fVk1fTVhfTDFfVExCX0NOVExfX1NZU1RFTV9BUEVSVFVSRV9VTk1BUFBFRF9BQ0NFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgSFVCUFJFUTBfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfQURWQU5DRURfRFJJVkVSX01PREVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEhVQlBSRVEwX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fRU5BQkxFX0wxX1RMQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fU1lTVEVNX0FDQ0VTU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fU1lTVEVNX0FQRVJUVVJFX1VOTUFQUEVEX0FDQ0VTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEhVQlBSRVEwX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fRU5BQkxFX0FEVkFOQ0VEX0RSSVZFUl9NT0RFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL0hVQlBSRVEwX0JMQU5LX09GRlNFVF8wCisjZGVmaW5lIEhVQlBSRVEwX0JMQU5LX09GRlNFVF8wX19SRUZDWUNfSF9CTEFOS19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9CTEFOS19PRkZTRVRfMF9fRExHX1ZfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEwX0JMQU5LX09GRlNFVF8wX19SRUZDWUNfSF9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIEhVQlBSRVEwX0JMQU5LX09GRlNFVF8wX19ETEdfVl9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL0hVQlBSRVEwX0JMQU5LX09GRlNFVF8xCisjZGVmaW5lIEhVQlBSRVEwX0JMQU5LX09GRlNFVF8xX19NSU5fRFNUX1lfTkVYVF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9CTEFOS19PRkZTRVRfMV9fTUlOX0RTVF9ZX05FWFRfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9IVUJQUkVRMF9EU1RfRElNRU5TSU9OUworI2RlZmluZSBIVUJQUkVRMF9EU1RfRElNRU5TSU9OU19fUkVGQ1lDX1BFUl9IVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRFNUX0RJTUVOU0lPTlNfX1JFRkNZQ19QRVJfSFRPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vSFVCUFJFUTBfRFNUX0FGVEVSX1NDQUxFUgorI2RlZmluZSBIVUJQUkVRMF9EU1RfQUZURVJfU0NBTEVSX19SRUZDWUNfWF9BRlRFUl9TQ0FMRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRFNUX0FGVEVSX1NDQUxFUl9fRFNUX1lfQUZURVJfU0NBTEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMF9EU1RfQUZURVJfU0NBTEVSX19SRUZDWUNfWF9BRlRFUl9TQ0FMRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBIVUJQUkVRMF9EU1RfQUZURVJfU0NBTEVSX19EU1RfWV9BRlRFUl9TQ0FMRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorLy9IVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HUworI2RlZmluZSBIVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HU19fVlJBVElPX1BSRUZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfUFJFRkVUQ0hfU0VUVElOR1NfX0RTVF9ZX1BSRUZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HU19fVlJBVElPX1BSRUZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZGTAorI2RlZmluZSBIVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HU19fRFNUX1lfUFJFRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9IVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HU19DCisjZGVmaW5lIEhVQlBSRVEwX1BSRUZFVENIX1NFVFRJTkdTX0NfX1ZSQVRJT19QUkVGRVRDSF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9QUkVGRVRDSF9TRVRUSU5HU19DX19WUkFUSU9fUFJFRkVUQ0hfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZGTAorLy9IVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU18wCisjZGVmaW5lIEhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9WTV9WQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfUk9XX1ZCTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1ZNX1ZCTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1JPV19WQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKy8vSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfMQorI2RlZmluZSBIVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU18xX19SRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxBTktfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfMV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfMgorI2RlZmluZSBIVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU18yX19SRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxBTktfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfMl9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfMworI2RlZmluZSBIVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU18zX19SRUZDWUNfUEVSX01FVEFfQ0hVTktfVkJMQU5LX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfM19fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX1ZCTEFOS19MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfNAorI2RlZmluZSBIVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU180X19SRUZDWUNfUEVSX01FVEFfQ0hVTktfVkJMQU5LX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfVkJMQU5LX1BBUkFNRVRFUlNfNF9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX1ZCTEFOS19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzAKKyNkZWZpbmUgSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9WTV9GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfUk9XX0ZMSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1ZNX0ZMSVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBIVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1JPV19GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorLy9IVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfMQorI2RlZmluZSBIVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfMV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzFfX1JFRkNZQ19QRVJfUFRFX0dST1VQX0ZMSVBfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzIKKyNkZWZpbmUgSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzJfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19GTElQX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU18yX19SRUZDWUNfUEVSX01FVEFfQ0hVTktfRkxJUF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEwX05PTV9QQVJBTUVURVJTXzAKKyNkZWZpbmUgSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1BURV9ST1dfTk9NX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9QVEVfUk9XX05PTV9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL0hVQlBSRVEwX05PTV9QQVJBTUVURVJTXzEKKyNkZWZpbmUgSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfMV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfTk9NX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzFfX1JFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEwX05PTV9QQVJBTUVURVJTXzIKKyNkZWZpbmUgSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfMl9fRFNUX1lfUEVSX1BURV9ST1dfTk9NX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzJfX0RTVF9ZX1BFUl9QVEVfUk9XX05PTV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL0hVQlBSRVEwX05PTV9QQVJBTUVURVJTXzMKKyNkZWZpbmUgSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfM19fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfTk9NX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzNfX1JFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEwX05PTV9QQVJBTUVURVJTXzQKKyNkZWZpbmUgSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfNF9fRFNUX1lfUEVSX01FVEFfUk9XX05PTV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzRfX0RTVF9ZX1BFUl9NRVRBX1JPV19OT01fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL0hVQlBSRVEwX05PTV9QQVJBTUVURVJTXzUKKyNkZWZpbmUgSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfNV9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX05PTV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzVfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19OT01fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEwX05PTV9QQVJBTUVURVJTXzYKKyNkZWZpbmUgSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfNl9fRFNUX1lfUEVSX01FVEFfUk9XX05PTV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzZfX0RTVF9ZX1BFUl9NRVRBX1JPV19OT01fQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL0hVQlBSRVEwX05PTV9QQVJBTUVURVJTXzcKKyNkZWZpbmUgSFVCUFJFUTBfTk9NX1BBUkFNRVRFUlNfN19fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX05PTV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX05PTV9QQVJBTUVURVJTXzdfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19OT01fQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEwX1BFUl9MSU5FX0RFTElWRVJZX1BSRQorI2RlZmluZSBIVUJQUkVRMF9QRVJfTElORV9ERUxJVkVSWV9QUkVfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9QUkVfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfUEVSX0xJTkVfREVMSVZFUllfUFJFX19SRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfUFJFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMF9QRVJfTElORV9ERUxJVkVSWV9QUkVfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9QUkVfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBIVUJQUkVRMF9QRVJfTElORV9ERUxJVkVSWV9QUkVfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9QUkVfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9IVUJQUkVRMF9QRVJfTElORV9ERUxJVkVSWQorI2RlZmluZSBIVUJQUkVRMF9QRVJfTElORV9ERUxJVkVSWV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfUEVSX0xJTkVfREVMSVZFUllfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMF9QRVJfTElORV9ERUxJVkVSWV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBIVUJQUkVRMF9QRVJfTElORV9ERUxJVkVSWV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9IVUJQUkVRMF9DVVJTT1JfU0VUVElOR1MKKyNkZWZpbmUgSFVCUFJFUTBfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IwX0RTVF9ZX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMF9DSFVOS19IRExfQURKVVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRMF9DVVJTT1JfU0VUVElOR1NfX0NVUlNPUjFfRFNUX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEwX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMV9DSFVOS19IRExfQURKVVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFUTBfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IwX0RTVF9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgSFVCUFJFUTBfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IwX0NIVU5LX0hETF9BREpVU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgSFVCUFJFUTBfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IxX0RTVF9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTBfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IxX0NIVU5LX0hETF9BREpVU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKy8vSFVCUFJFUTBfUkVGX0ZSRVFfVE9fUElYX0ZSRVEKKyNkZWZpbmUgSFVCUFJFUTBfUkVGX0ZSRVFfVE9fUElYX0ZSRVFfX1JFRl9GUkVRX1RPX1BJWF9GUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX1JFRl9GUkVRX1RPX1BJWF9GUkVRX19SRUZfRlJFUV9UT19QSVhfRlJFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL0hVQlBSRVEwX0RTVF9ZX0RFTFRBX0RSUV9MSU1JVAorI2RlZmluZSBIVUJQUkVRMF9EU1RfWV9ERUxUQV9EUlFfTElNSVRfX0RTVF9ZX0RFTFRBX0RSUV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRFNUX1lfREVMVEFfRFJRX0xJTUlUX19EU1RfWV9ERUxUQV9EUlFfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vSFVCUFJFUTBfSFVCUFJFUV9NRU1fUFdSX0NUUkwKKyNkZWZpbmUgSFVCUFJFUTBfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9EUFRFX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfRFBURV9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01QVEVfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFUTBfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9NUFRFX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEhVQlBSRVEwX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfTUVUQV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01FVEFfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUFJFUTBfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9QREVfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVEwX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfUERFX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX0RQVEVfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX0RQVEVfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01QVEVfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01QVEVfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01FVEFfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01FVEFfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX1BERV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX1BERV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorLy9IVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfU1RBVFVTCisjZGVmaW5lIEhVQlBSRVEwX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9EUFRFX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfTVBURV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFUTBfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19fUkVRX01FVEFfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVEwX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9QREVfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfRFBURV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfTVBURV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfTUVUQV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBIVUJQUkVRMF9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfUERFX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorLy9IVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU181CisjZGVmaW5lIEhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzVfX1JFRkNZQ19QRVJfVk1fR1JPVVBfVkJMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU181X19SRUZDWUNfUEVSX1ZNX0dST1VQX1ZCTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU182CisjZGVmaW5lIEhVQlBSRVEwX1ZCTEFOS19QQVJBTUVURVJTXzZfX1JFRkNZQ19QRVJfVk1fUkVRX1ZCTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9WQkxBTktfUEFSQU1FVEVSU182X19SRUZDWUNfUEVSX1ZNX1JFUV9WQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfMworI2RlZmluZSBIVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfM19fUkVGQ1lDX1BFUl9WTV9HUk9VUF9GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzNfX1JFRkNZQ19QRVJfVk1fR1JPVVBfRkxJUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzQKKyNkZWZpbmUgSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzRfX1JFRkNZQ19QRVJfVk1fUkVRX0ZMSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU180X19SRUZDWUNfUEVSX1ZNX1JFUV9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU181CisjZGVmaW5lIEhVQlBSRVEwX0ZMSVBfUEFSQU1FVEVSU181X19SRUZDWUNfUEVSX1BURV9HUk9VUF9GTElQX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfNV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfNgorI2RlZmluZSBIVUJQUkVRMF9GTElQX1BBUkFNRVRFUlNfNl9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX0ZMSVBfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTBfRkxJUF9QQVJBTUVURVJTXzZfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19GTElQX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAwX2Rpc3BkZWNfaHVicHJldF9kaXNwZGVjCisvL0hVQlBSRVQwX0hVQlBSRVRfQ09OVFJPTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfX0RFVF9CVUZfUExBTkUxX0JBU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9DT05UUk9MX19QQUNLXzNUTzJfRUxFTUVOVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX0FMUEhBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9DT05UUk9MX19DUk9TU0JBUl9TUkNfWV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19DQl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX0NSX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9DT05UUk9MX19IVUJQUkVUX0NPTlRST0xfU1BBUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfX0RFVF9CVUZfUExBTkUxX0JBU0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfX1BBQ0tfM1RPMl9FTEVNRU5UX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19BTFBIQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19ZX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19DQl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19DUl9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0NPTlRST0xfX0hVQlBSRVRfQ09OVFJPTF9TUEFSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9IVUJQUkVUMF9IVUJQUkVUX01FTV9QV1JfQ1RSTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fREVUX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RFVF9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9MU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fRE1ST0JfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RNUk9CX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX1BJWENEQ19NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fUElYQ0RDX01FTV9QV1JfTFNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9MU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ETVJPQl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ETVJPQl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9MU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisvL0hVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVMKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fREVUX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVNfX0RNUk9CX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX01FTV9QV1JfU1RBVFVTX19QSVhDRENfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fREVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fRE1ST0JfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fUElYQ0RDX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDBfX1BJUEVfUkVBRF9MSU5FX0lOVEVSVkFMX0lOX05PTkFDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwwX19QSVBFX1JFQURfTElORV9WQkxBTktfTUFYSU1VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDBfX1BJUEVfUkVBRF9MSU5FX0lOVEVSVkFMX0lOX05PTkFDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDBfX1BJUEVfUkVBRF9MSU5FX1ZCTEFOS19NQVhJTVVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDEKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfX1BJUEVfUkVBRF9MSU5FX1JFUE9SVEVEX1dIRU5fUkVRX0RJU0FCTEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxX19IVUJQUkVUX1JFQURfTElORV9DVFJMMV9TUEFSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfX1BJUEVfUkVBRF9MSU5FX1JFUE9SVEVEX1dIRU5fUkVRX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkUwCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FMF9fUElQRV9SRUFEX0xJTkUwX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORTBfX1BJUEVfUkVBRF9MSU5FMF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FMF9fUElQRV9SRUFEX0xJTkUwX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FMF9fUElQRV9SRUFEX0xJTkUwX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FMQorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORTFfX1BJUEVfUkVBRF9MSU5FMV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkUxX19QSVBFX1JFQURfTElORTFfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORTFfX1BJUEVfUkVBRF9MSU5FMV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORTFfX1BJUEVfUkVBRF9MSU5FMV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9IVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9WQUxVRQorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9WQUxVRV9fUElQRV9SRUFEX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfVkFMVUVfX1BJUEVfUkVBRF9MSU5FX1NOQVBTSE9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9WQUxVRV9fUElQRV9SRUFEX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9WQUxVRV9fUElQRV9SRUFEX0xJTkVfU05BUFNIT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9TVEFUVVMKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfVkJMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUwX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMF9PVVRTSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgSFVCUFJFVDBfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfTElORTFfSU5TSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVQwX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUxX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9WQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMF9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMF9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMV9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQUkVUMF9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMV9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDBfZGlzcGRlY19jdXJzb3IwX2Rpc3BkZWMKKy8vQ1VSU09SMF8wX0NVUlNPUl9DT05UUk9MCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl8yWF9NQUdOSUZZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9TTk9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfU1lTVEVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1BJVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfWFlfUE9TSVRJT05fUk9UQVRJT05fQU5EX01JUlJPUklOR19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9MSU5FU19QRVJfQ0hVTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1BFUkZNT05fTEFURU5DWV9NRUFTVVJFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfUEVSRk1PTl9MQVRFTkNZX01FQVNVUkVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl8yWF9NQUdOSUZZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9UTVpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9TTk9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9TWVNURU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9QSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9YWV9QT1NJVElPTl9ST1RBVElPTl9BTkRfTUlSUk9SSU5HX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9MSU5FU19QRVJfQ0hVTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9QRVJGTU9OX0xBVEVOQ1lfTUVBU1VSRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9QRVJGTU9OX0xBVEVOQ1lfTUVBU1VSRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9DVVJTT1IwXzBfQ1VSU09SX1NVUkZBQ0VfQUREUkVTUworI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19fQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQ1VSU09SMF8wX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdIX19DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSF9fQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ1VSU09SMF8wX0NVUlNPUl9TSVpFCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfU0laRV9fQ1VSU09SX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX1NJWkVfX0NVUlNPUl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfU0laRV9fQ1VSU09SX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfU0laRV9fQ1VSU09SX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisvL0NVUlNPUjBfMF9DVVJTT1JfUE9TSVRJT04KKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9QT1NJVElPTl9fQ1VSU09SX1lfUE9TSVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfUE9TSVRJT05fX0NVUlNPUl9YX1BPU0lUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9QT1NJVElPTl9fQ1VSU09SX1lfUE9TSVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9QT1NJVElPTl9fQ1VSU09SX1hfUE9TSVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vQ1VSU09SMF8wX0NVUlNPUl9IT1RfU1BPVAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0hPVF9TUE9UX19DVVJTT1JfSE9UX1NQT1RfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9IT1RfU1BPVF9fQ1VSU09SX0hPVF9TUE9UX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0hPVF9TUE9UX19DVVJTT1JfSE9UX1NQT1RfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX0hPVF9TUE9UX19DVVJTT1JfSE9UX1NQT1RfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9DVVJTT1IwXzBfQ1VSU09SX1NURVJFT19DT05UUk9MCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfU1RFUkVPX0NPTlRST0xfX0NVUlNPUl9TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfUFJJTUFSWV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9TVEVSRU9fQ09OVFJPTF9fQ1VSU09SX1NFQ09OREFSWV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfUFJJTUFSWV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkYwTAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfU0VDT05EQVJZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkMwMDAwTAorLy9DVVJTT1IwXzBfQ1VSU09SX0RTVF9PRkZTRVQKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9EU1RfT0ZGU0VUX19DVVJTT1JfRFNUX1hfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfRFNUX09GRlNFVF9fQ1VSU09SX0RTVF9YX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL0NVUlNPUjBfMF9DVVJTT1JfTUVNX1BXUl9DVFJMCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzBfQ1VSU09SX01FTV9QV1JfQ1RSTF9fQ1JPQl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9NRU1fUFdSX0NUUkxfX0NST0JfTUVNX1BXUl9MU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfTFNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisvL0NVUlNPUjBfMF9DVVJTT1JfTUVNX1BXUl9TVEFUVVMKKyNkZWZpbmUgQ1VSU09SMF8wX0NVUlNPUl9NRU1fUFdSX1NUQVRVU19fQ1JPQl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMF9DVVJTT1JfTUVNX1BXUl9TVEFUVVNfX0NST0JfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0NVUlNPUjBfMF9ETURBVEFfQUREUkVTU19ISUdICisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1NZU1RFTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfU05PT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgQ1VSU09SMF8wX0RNREFUQV9BRERSRVNTX0hJR0hfX0RNREFUQV9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1NZU1RFTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1RNWl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9DVVJTT1IwXzBfRE1EQVRBX0FERFJFU1NfTE9XCisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfQUREUkVTU19MT1dfX0RNREFUQV9BRERSRVNTX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0FERFJFU1NfTE9XX19ETURBVEFfQUREUkVTU19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9DVVJTT1IwXzBfRE1EQVRBX0NOVEwKKyNkZWZpbmUgQ1VSU09SMF8wX0RNREFUQV9DTlRMX19ETURBVEFfVVBEQVRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfQ05UTF9fRE1EQVRBX1JFUEVBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0NOVExfX0RNREFUQV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ1VSU09SMF8wX0RNREFUQV9DTlRMX19ETURBVEFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0NOVExfX0RNREFUQV9VUERBVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0NOVExfX0RNREFUQV9SRVBFQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0NOVExfX0RNREFUQV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX0NOVExfX0RNREFUQV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkYwMDAwTAorLy9DVVJTT1IwXzBfRE1EQVRBX1FPU19DTlRMCisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfUU9TX0NOVExfX0RNREFUQV9RT1NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfUU9TX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ1VSU09SMF8wX0RNREFUQV9RT1NfQ05UTF9fRE1EQVRBX0RMX0RFTFRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfUU9TX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfUU9TX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfRExfREVMVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DVVJTT1IwXzBfRE1EQVRBX1NUQVRVUworI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1NUQVRVU19fRE1EQVRBX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8wX0RNREFUQV9TVEFUVVNfX0RNREFUQV9VTkRFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfU1RBVFVTX19ETURBVEFfVU5ERVJGTE9XX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1NUQVRVU19fRE1EQVRBX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1NUQVRVU19fRE1EQVRBX1VOREVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1NUQVRVU19fRE1EQVRBX1VOREVSRkxPV19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9DVVJTT1IwXzBfRE1EQVRBX1NXX0NOVEwKKyNkZWZpbmUgQ1VSU09SMF8wX0RNREFUQV9TV19DTlRMX19ETURBVEFfU1dfVVBEQVRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1JFUEVBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1NXX0NOVExfX0RNREFUQV9TV19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1VQREFURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1JFUEVBVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENVUlNPUjBfMF9ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL0NVUlNPUjBfMF9ETURBVEFfU1dfREFUQQorI2RlZmluZSBDVVJTT1IwXzBfRE1EQVRBX1NXX0RBVEFfX0RNREFUQV9TV19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8wX0RNREFUQV9TV19EQVRBX19ETURBVEFfU1dfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAwX2Rpc3BkZWNfaHVicF9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT043X1BFUkZDT1VOVEVSX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjdfUEVSRk1PTl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRjAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19QRVJGTU9ON19QRVJGTU9OX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGQzAwTAorLy9EQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9ON19QRVJGTU9OX0NWQUxVRV9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX1BFUkZNT043X1BFUkZNT05fSEkKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjdfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjdfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT043X1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMV9kaXNwZGVjX2h1YnBfZGlzcGRlYworLy9IVUJQMV9EQ1NVUkZfU1VSRkFDRV9DT05GSUcKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1NVUkZBQ0VfQ09ORklHX19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fUk9UQVRJT05fQU5HTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfU1VSRkFDRV9DT05GSUdfX0hfTUlSUk9SX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1NVUkZBQ0VfQ09ORklHX19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1NVUkZBQ0VfQ09ORklHX19ST1RBVElPTl9BTkdMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1NVUkZBQ0VfQ09ORklHX19IX01JUlJPUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vSFVCUDFfRENTVVJGX0FERFJfQ09ORklHCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9BRERSX0NPTkZJR19fTlVNX1BJUEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgSFVCUDFfRENTVVJGX0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEhVQlAxX0RDU1VSRl9BRERSX0NPTkZJR19fTlVNX1NFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9SQl9QRVJfU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUDFfRENTVVJGX0FERFJfQ09ORklHX19NQVhfQ09NUFJFU1NFRF9GUkFHU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9BRERSX0NPTkZJR19fTlVNX1BJUEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9BRERSX0NPTkZJR19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9BRERSX0NPTkZJR19fTlVNX1NFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9BRERSX0NPTkZJR19fTlVNX1JCX1BFUl9TRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9BRERSX0NPTkZJR19fTUFYX0NPTVBSRVNTRURfRlJBR1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisvL0hVQlAxX0RDU1VSRl9USUxJTkdfQ09ORklHCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9USUxJTkdfQ09ORklHX19TV19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfVElMSU5HX0NPTkZJR19fRElNX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1RJTElOR19DT05GSUdfX01FVEFfTElORUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlAxX0RDU1VSRl9USUxJTkdfQ09ORklHX19SQl9BTElHTkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQMV9EQ1NVUkZfVElMSU5HX0NPTkZJR19fUElQRV9BTElHTkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1RJTElOR19DT05GSUdfX1NXX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1RJTElOR19DT05GSUdfX0RJTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDE4MEwKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1RJTElOR19DT05GSUdfX01FVEFfTElORUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1RJTElOR19DT05GSUdfX1JCX0FMSUdORURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1RJTElOR19DT05GSUdfX1BJUEVfQUxJR05FRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKy8vSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX19QUklfVklFV1BPUlRfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9fUFJJX1ZJRVdQT1JUX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX19QUklfVklFV1BPUlRfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX19QUklfVklFV1BPUlRfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTgorI2RlZmluZSBIVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9fUFJJX1ZJRVdQT1JUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fX1BSSV9WSUVXUE9SVF9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9fUFJJX1ZJRVdQT1JUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9fUFJJX1ZJRVdQT1JUX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0MKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9DX19QUklfVklFV1BPUlRfWF9TVEFSVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQ19fUFJJX1ZJRVdQT1JUX1lfU1RBUlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9DX19QUklfVklFV1BPUlRfWF9TVEFSVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9DX19QUklfVklFV1BPUlRfWV9TVEFSVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQworI2RlZmluZSBIVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19QUklfVklFV1BPUlRfV0lEVEhfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQ19fUFJJX1ZJRVdQT1JUX0hFSUdIVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19QUklfVklFV1BPUlRfV0lEVEhfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19QUklfVklFV1BPUlRfSEVJR0hUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfX1NFQ19WSUVXUE9SVF9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX19TRUNfVklFV1BPUlRfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfX1NFQ19WSUVXUE9SVF9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfX1NFQ19WSUVXUE9SVF9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX19TRUNfVklFV1BPUlRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9fU0VDX1ZJRVdQT1JUX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX19TRUNfVklFV1BPUlRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX19TRUNfVklFV1BPUlRfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQworI2RlZmluZSBIVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX0NfX1NFQ19WSUVXUE9SVF9YX1NUQVJUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDFfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DX19TRUNfVklFV1BPUlRfWV9TVEFSVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX0NfX1NFQ19WSUVXUE9SVF9YX1NUQVJUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX0NfX1NFQ19WSUVXUE9SVF9ZX1NUQVJUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0NfX1NFQ19WSUVXUE9SVF9XSURUSF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMV9EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19TRUNfVklFV1BPUlRfSEVJR0hUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0NfX1NFQ19WSUVXUE9SVF9XSURUSF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlAxX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0NfX1NFQ19WSUVXUE9SVF9IRUlHSFRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlAxX0RDSFVCUF9SRVFfU0laRV9DT05GSUcKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fU1dBVEhfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1BURV9ST1dfSEVJR0hUX0xJTkVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19DSFVOS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fTUlOX0NIVU5LX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01FVEFfQ0hVTktfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fTUlOX01FVEFfQ0hVTktfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19EUFRFX0dST1VQX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlAxX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1ZNX0dST1VQX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fU1dBVEhfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fUFRFX1JPV19IRUlHSFRfTElORUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fQ0hVTktfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fTUlOX0NIVU5LX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTgwMEwKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fTUVUQV9DSFVOS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fTUlOX01FVEFfQ0hVTktfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fRFBURV9HUk9VUF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fVk1fR1JPVVBfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwMDAwMEwKKy8vSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fU1dBVEhfSEVJR0hUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX1BURV9ST1dfSEVJR0hUX0xJTkVBUl9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19DSFVOS19TSVpFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlAxX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fTUlOX0NIVU5LX1NJWkVfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX01FVEFfQ0hVTktfU0laRV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fTUlOX01FVEFfQ0hVTktfU0laRV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19EUFRFX0dST1VQX1NJWkVfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX1NXQVRIX0hFSUdIVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX1BURV9ST1dfSEVJR0hUX0xJTkVBUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX0NIVU5LX1NJWkVfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX01JTl9DSFVOS19TSVpFX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxODAwTAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX01FVEFfQ0hVTktfU0laRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX01JTl9NRVRBX0NIVU5LX1NJWkVfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX0RQVEVfR1JPVVBfU0laRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorLy9IVUJQMV9EQ0hVQlBfQ05UTAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfQ05UTF9fSFVCUF9CTEFOS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDFfRENIVUJQX0NOVExfX0hVQlBfTk9fT1VUU1RBTkRJTkdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQMV9EQ0hVQlBfQ05UTF9fSFVCUF9JTl9CTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgSFVCUDFfRENIVUJQX0NOVExfX0hVQlBfVlRHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1ZSRUFEWV9BVF9PUl9BRlRFUl9WU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfQ05UTF9fSFVCUF9ESVNBQkxFX1NUT1BfREFUQV9EVVJJTkdfVk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgSFVCUDFfRENIVUJQX0NOVExfX0hVQlBfVFRVX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1RUVV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfQ05UTF9fSFVCUF9YUlFfTk9fT1VUU1RBTkRJTkdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1RJTUVPVVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUDFfRENIVUJQX0NOVExfX0hVQlBfVElNRU9VVF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQMV9EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1NUQVRVU19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1RJTUVPVVRfSU5URVJSVVBUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgSFVCUDFfRENIVUJQX0NOVExfX0hVQlBfVU5ERVJGTE9XX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQMV9EQ0hVQlBfQ05UTF9fSFVCUF9VTkRFUkZMT1dfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX0JMQU5LX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX05PX09VVFNUQU5ESU5HX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX0lOX0JMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1ZUR19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1ZSRUFEWV9BVF9PUl9BRlRFUl9WU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX0RJU0FCTEVfU1RPUF9EQVRBX0RVUklOR19WTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1RUVV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1RUVV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEUwMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1hSUV9OT19PVVRTVEFORElOR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1RJTUVPVVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1RJTUVPVVRfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1RJTUVPVVRfU1RBVFVTX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1RJTUVPVVRfSU5URVJSVVBUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1VOREVSRkxPV19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisjZGVmaW5lIEhVQlAxX0RDSFVCUF9DTlRMX19IVUJQX1VOREVSRkxPV19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0hVQlAxX0hVQlBfQ0xLX0NOVEwKKyNkZWZpbmUgSFVCUDFfSFVCUF9DTEtfQ05UTF9fSFVCUF9DTE9DS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRElTUENMS19SX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQMV9IVUJQX0NMS19DTlRMX19IVUJQX0RQUENMS19HX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUDFfSFVCUF9DTEtfQ05UTF9fSFVCUF9EQ0ZDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX0dfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDFfSFVCUF9DTEtfQ05UTF9fSFVCUF9ESVNQQ0xLX1JfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQMV9IVUJQX0NMS19DTlRMX19IVUJQX0RQUENMS19HX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX1JfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgSFVCUDFfSFVCUF9DTEtfQ05UTF9fSFVCUF9EQ0ZDTEtfR19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBIVUJQMV9IVUJQX0NMS19DTlRMX19IVUJQX1RFU1RfQ0xLX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfQ0xPQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRElTUENMS19SX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRFBQQ0xLX0dfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX1JfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX0dfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRElTUENMS19SX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRFBQQ0xLX0dfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX1JfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX0dfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIEhVQlAxX0hVQlBfQ0xLX0NOVExfX0hVQlBfVEVTVF9DTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0hVQlAxX0RDSFVCUF9WTVBHX0NPTkZJRworI2RlZmluZSBIVUJQMV9EQ0hVQlBfVk1QR19DT05GSUdfX1ZNUEdfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDFfRENIVUJQX1ZNUEdfQ09ORklHX19WTVBHX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vSFVCUDFfSFVCUFJFUV9ERUJVR19EQgorI2RlZmluZSBIVUJQMV9IVUJQUkVRX0RFQlVHX0RCX19IVUJQUkVRX0RFQlVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDFfSFVCUFJFUV9ERUJVR19EQl9fSFVCUFJFUV9ERUJVR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMSworI2RlZmluZSBIVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX01FQVNVUkVfV0lOX0VOX0RDRkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9NRUFTVVJFX1dJTl9QRVJJT0RfTTFfRENGQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlAxX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfUEVSRk1PTl9TVEFSVF9TRUxfRENGQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX1BFUkZNT05fU1RPUF9TRUxfRENGQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlAxX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fTU9ERV9EQ0ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9NRUFTVVJFX1dJTl9FTl9EQ0ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9NRUFTVVJFX1dJTl9QRVJJT0RfTTFfRENGQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9QRVJGTU9OX1NUQVJUX1NFTF9EQ0ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjAwMEwKKyNkZWZpbmUgSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9QRVJGTU9OX1NUT1BfU0VMX0RDRkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKyNkZWZpbmUgSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9NRUFTVVJFX1dJTl9NT0RFX0RDRkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMSworI2RlZmluZSBIVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX01FQVNVUkVfV0lOX0VOX0RQUENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9TUkNfU0VMX0RQUENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEhVQlAxX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfTUVBU1VSRV9XSU5fUEVSSU9EX00xX0RQUENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX1BFUkZNT05fU1RBUlRfU0VMX0RQUENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUDFfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9QRVJGTU9OX1NUT1BfU0VMX0RQUENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX01FQVNVUkVfV0lOX0VOX0RQUENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX01FQVNVUkVfV0lOX1NSQ19TRUxfRFBQQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX01FQVNVUkVfV0lOX1BFUklPRF9NMV9EUFBDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBIVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX1BFUkZNT05fU1RBUlRfU0VMX0RQUENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGMDAwTAorI2RlZmluZSBIVUJQMV9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX1BFUkZNT05fU1RPUF9TRUxfRFBQQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDFfZGlzcGRlY19odWJwcmVxX2Rpc3BkZWMKKy8vSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfUElUQ0gKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfUElUQ0hfX1BJVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX1BJVENIX19NRVRBX1BJVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfUElUQ0hfX1BJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfUElUQ0hfX01FVEFfUElUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9DX19QSVRDSF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQ19fTUVUQV9QSVRDSF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9DX19QSVRDSF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9DX19NRVRBX1BJVENIX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVRMV9WTUlEX1NFVFRJTkdTXzAKKyNkZWZpbmUgSFVCUFJFUTFfVk1JRF9TRVRUSU5HU18wX19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX1ZNSURfU0VUVElOR1NfMF9fVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL0hVQlBSRVExX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTUworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVExX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19DCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19DX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQ19fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTUworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19DX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQ19fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTUworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX01BU0sgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NISUZUICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX01BU0sgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfTUFTSyAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19NQVNLICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NISUZUICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX01BU0sgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0NPTlRST0wKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9EQ0NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfRENDX0lORF82NEJfQkxLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX1RNWl9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfRENDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9UTVpfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfRENDX0lORF82NEJfQkxLX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfTUVUQV9TVVJGQUNFX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfVE1aX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfVE1aX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX1RNWl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX0RDQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX1RNWl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfRENDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfRENDX0lORF82NEJfQkxLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfVE1aX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfRENDX0lORF82NEJfQkxLX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfVE1aX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9UTVpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9UTVpfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX1VQREFURV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9WVVBEQVRFX1NLSVBfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTF9fSFVCUFJFUV9NQVNURVJfVVBEQVRFX0xPQ0tfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9NT0RFX0ZPUl9TVEVSRU9TWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfSU5fU1RFUkVPU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9TVEVSRU9fU0VMRUNUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1NURVJFT19TRUxFQ1RfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfUEVORElOR19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfVVBEQVRFX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9WVVBEQVRFX1NLSVBfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX0hVQlBSRVFfTUFTVEVSX1VQREFURV9MT0NLX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9NT0RFX0ZPUl9TVEVSRU9TWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9JTl9TVEVSRU9TWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9TVEVSRU9fU0VMRUNUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9TVEVSRU9fU0VMRUNUX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9QRU5ESU5HX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGMDAwMDBMCisvL0hVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0wyCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0ZMSVBfUEVORElOR19NSU5fVElNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9HU0xfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfR1NMX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX1RSSVBMRV9CVUZGRVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9JTlVTRV9SQUVEX05PX0xBVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfRkxJUF9QRU5ESU5HX01JTl9USU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfR1NMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfR1NMX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfVFJJUExFX0JVRkZFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfSU5VU0VfUkFFRF9OT19MQVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFQKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9JTlVTRQorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9fU1VSRkFDRV9JTlVTRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0VfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9fU1VSRkFDRV9JTlVTRV9BRERSRVNTX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0VfQworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9DX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0VfQ19fU1VSRkFDRV9JTlVTRV9BRERSRVNTX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9DCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfQ19fU1VSRkFDRV9JTlVTRV9BRERSRVNTX0hJR0hfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIX0NfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19ISUdIX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRQorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQworI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9DX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQ19fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9DCisjZGVmaW5lIEhVQlBSRVExX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfQ19fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX0hJR0hfQ19fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX0NfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19ISUdIX0NfTUFTSyAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMV9EQ05fRVhQQU5TSU9OX01PREUKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0VYUEFOU0lPTl9NT0RFX19EUlFfRVhQQU5TSU9OX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDTl9FWFBBTlNJT05fTU9ERV9fQ1JRX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVRMV9EQ05fRVhQQU5TSU9OX01PREVfX01SUV9FWFBBTlNJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0VYUEFOU0lPTl9NT0RFX19QUlFfRVhQQU5TSU9OX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEhVQlBSRVExX0RDTl9FWFBBTlNJT05fTU9ERV9fRFJRX0VYUEFOU0lPTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEhVQlBSRVExX0RDTl9FWFBBTlNJT05fTU9ERV9fQ1JRX0VYUEFOU0lPTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIEhVQlBSRVExX0RDTl9FWFBBTlNJT05fTU9ERV9fTVJRX0VYUEFOU0lPTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIEhVQlBSRVExX0RDTl9FWFBBTlNJT05fTU9ERV9fUFJRX0VYUEFOU0lPTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisvL0hVQlBSRVExX0RDTl9UVFVfUU9TX1dNCisjZGVmaW5lIEhVQlBSRVExX0RDTl9UVFVfUU9TX1dNX19Rb1NfTEVWRUxfTE9XX1dNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ05fVFRVX1FPU19XTV9fUW9TX0xFVkVMX0hJR0hfV01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVExX0RDTl9UVFVfUU9TX1dNX19Rb1NfTEVWRUxfTE9XX1dNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlBSRVExX0RDTl9UVFVfUU9TX1dNX19Rb1NfTEVWRUxfSElHSF9XTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlBSRVExX0RDTl9HTE9CQUxfVFRVX0NOVEwKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0dMT0JBTF9UVFVfQ05UTF9fTUlOX1RUVV9WQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDTl9HTE9CQUxfVFRVX0NOVExfX1FvU19MRVZFTF9GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0dMT0JBTF9UVFVfQ05UTF9fTUlOX1RUVV9WQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0dMT0JBTF9UVFVfQ05UTF9fUW9TX0xFVkVMX0ZMSVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vSFVCUFJFUTFfRENOX1NVUkYwX1RUVV9DTlRMMAorI2RlZmluZSBIVUJQUkVRMV9EQ05fU1VSRjBfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1NVUkYwX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQUkVRMV9EQ05fU1VSRjBfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlBSRVExX0RDTl9TVVJGMF9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisjZGVmaW5lIEhVQlBSRVExX0RDTl9TVVJGMF9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIEhVQlBSRVExX0RDTl9TVVJGMF9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0hVQlBSRVExX0RDTl9TVVJGMF9UVFVfQ05UTDEKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1NVUkYwX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDTl9TVVJGMF9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVExX0RDTl9TVVJGMV9UVFVfQ05UTDAKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1NVUkYxX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDTl9TVVJGMV9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1NVUkYxX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQUkVRMV9EQ05fU1VSRjFfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorI2RlZmluZSBIVUJQUkVRMV9EQ05fU1VSRjFfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBIVUJQUkVRMV9EQ05fU1VSRjFfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9IVUJQUkVRMV9EQ05fU1VSRjFfVFRVX0NOVEwxCisjZGVmaW5lIEhVQlBSRVExX0RDTl9TVVJGMV9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EQ05fU1VSRjFfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMV9EQ05fQ1VSMF9UVFVfQ05UTDAKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0NVUjBfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDTl9DVVIwX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0NVUjBfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQUkVRMV9EQ05fQ1VSMF9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorI2RlZmluZSBIVUJQUkVRMV9EQ05fQ1VSMF9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBIVUJQUkVRMV9EQ05fQ1VSMF9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9IVUJQUkVRMV9EQ05fQ1VSMF9UVFVfQ05UTDEKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0NVUjBfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDTl9DVVIwX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVExX0RDTl9DVVIxX1RUVV9DTlRMMAorI2RlZmluZSBIVUJQUkVRMV9EQ05fQ1VSMV9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0NVUjFfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQUkVRMV9EQ05fQ1VSMV9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlBSRVExX0RDTl9DVVIxX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisjZGVmaW5lIEhVQlBSRVExX0RDTl9DVVIxX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIEhVQlBSRVExX0RDTl9DVVIxX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0hVQlBSRVExX0RDTl9DVVIxX1RUVV9DTlRMMQorI2RlZmluZSBIVUJQUkVRMV9EQ05fQ1VSMV9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENOX0NVUjFfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTFfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUgorI2RlZmluZSBIVUJQUkVRMV9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX19NQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9fTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGRkZGRkwKKy8vSFVCUFJFUTFfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFIKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX19NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRkZGRkZMCisvL0hVQlBSRVExX0RDTl9WTV9NWF9MMV9UTEJfQ05UTAorI2RlZmluZSBIVUJQUkVRMV9EQ05fVk1fTVhfTDFfVExCX0NOVExfX0VOQUJMRV9MMV9UTEJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQUNDRVNTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEhVQlBSRVExX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fU1lTVEVNX0FQRVJUVVJFX1VOTUFQUEVEX0FDQ0VTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBIVUJQUkVRMV9EQ05fVk1fTVhfTDFfVExCX0NOVExfX0VOQUJMRV9BRFZBTkNFRF9EUklWRVJfTU9ERUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfTDFfVExCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQUNDRVNTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQVBFUlRVUkVfVU5NQVBQRURfQUNDRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgSFVCUFJFUTFfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfQURWQU5DRURfRFJJVkVSX01PREVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vSFVCUFJFUTFfQkxBTktfT0ZGU0VUXzAKKyNkZWZpbmUgSFVCUFJFUTFfQkxBTktfT0ZGU0VUXzBfX1JFRkNZQ19IX0JMQU5LX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0JMQU5LX09GRlNFVF8wX19ETEdfVl9CTEFOS19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTFfQkxBTktfT0ZGU0VUXzBfX1JFRkNZQ19IX0JMQU5LX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgSFVCUFJFUTFfQkxBTktfT0ZGU0VUXzBfX0RMR19WX0JMQU5LX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vSFVCUFJFUTFfQkxBTktfT0ZGU0VUXzEKKyNkZWZpbmUgSFVCUFJFUTFfQkxBTktfT0ZGU0VUXzFfX01JTl9EU1RfWV9ORVhUX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0JMQU5LX09GRlNFVF8xX19NSU5fRFNUX1lfTkVYVF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0hVQlBSRVExX0RTVF9ESU1FTlNJT05TCisjZGVmaW5lIEhVQlBSRVExX0RTVF9ESU1FTlNJT05TX19SRUZDWUNfUEVSX0hUT1RBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EU1RfRElNRU5TSU9OU19fUkVGQ1lDX1BFUl9IVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGTAorLy9IVUJQUkVRMV9EU1RfQUZURVJfU0NBTEVSCisjZGVmaW5lIEhVQlBSRVExX0RTVF9BRlRFUl9TQ0FMRVJfX1JFRkNZQ19YX0FGVEVSX1NDQUxFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EU1RfQUZURVJfU0NBTEVSX19EU1RfWV9BRlRFUl9TQ0FMRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVExX0RTVF9BRlRFUl9TQ0FMRVJfX1JFRkNZQ19YX0FGVEVSX1NDQUxFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIEhVQlBSRVExX0RTVF9BRlRFUl9TQ0FMRVJfX0RTVF9ZX0FGVEVSX1NDQUxFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisvL0hVQlBSRVExX1BSRUZFVENIX1NFVFRJTkdTCisjZGVmaW5lIEhVQlBSRVExX1BSRUZFVENIX1NFVFRJTkdTX19WUkFUSU9fUFJFRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9QUkVGRVRDSF9TRVRUSU5HU19fRFNUX1lfUFJFRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlBSRVExX1BSRUZFVENIX1NFVFRJTkdTX19WUkFUSU9fUFJFRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkZMCisjZGVmaW5lIEhVQlBSRVExX1BSRUZFVENIX1NFVFRJTkdTX19EU1RfWV9QUkVGRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0hVQlBSRVExX1BSRUZFVENIX1NFVFRJTkdTX0MKKyNkZWZpbmUgSFVCUFJFUTFfUFJFRkVUQ0hfU0VUVElOR1NfQ19fVlJBVElPX1BSRUZFVENIX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX1BSRUZFVENIX1NFVFRJTkdTX0NfX1ZSQVRJT19QUkVGRVRDSF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkZMCisvL0hVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzAKKyNkZWZpbmUgSFVCUFJFUTFfVkJMQU5LX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1ZNX1ZCTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9ST1dfVkJMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfVk1fVkJMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBIVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfUk9XX1ZCTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorLy9IVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18xCisjZGVmaW5lIEhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzFfX1JFRkNZQ19QRVJfUFRFX0dST1VQX1ZCTEFOS19MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18xX19SRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxBTktfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18yCisjZGVmaW5lIEhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzJfX1JFRkNZQ19QRVJfUFRFX0dST1VQX1ZCTEFOS19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18yX19SRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxBTktfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18zCisjZGVmaW5lIEhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzNfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19WQkxBTktfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU18zX19SRUZDWUNfUEVSX01FVEFfQ0hVTktfVkJMQU5LX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU180CisjZGVmaW5lIEhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzRfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19WQkxBTktfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9WQkxBTktfUEFSQU1FVEVSU180X19SRUZDWUNfUEVSX01FVEFfQ0hVTktfVkJMQU5LX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfMAorI2RlZmluZSBIVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1ZNX0ZMSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRkxJUF9QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9ST1dfRkxJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfVk1fRkxJUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfUk9XX0ZMSVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisvL0hVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU18xCisjZGVmaW5lIEhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU18xX19SRUZDWUNfUEVSX1BURV9HUk9VUF9GTElQX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfMV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfMgorI2RlZmluZSBIVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfMl9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX0ZMSVBfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRkxJUF9QQVJBTUVURVJTXzJfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19GTElQX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMAorI2RlZmluZSBIVUJQUkVRMV9OT01fUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfUFRFX1JPV19OT01fTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1BURV9ST1dfTk9NX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRkwKKy8vSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMQorI2RlZmluZSBIVUJQUkVRMV9OT01fUEFSQU1FVEVSU18xX19SRUZDWUNfUEVSX1BURV9HUk9VUF9OT01fTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfTk9NX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMgorI2RlZmluZSBIVUJQUkVRMV9OT01fUEFSQU1FVEVSU18yX19EU1RfWV9QRVJfUFRFX1JPV19OT01fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMl9fRFNUX1lfUEVSX1BURV9ST1dfTk9NX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRkwKKy8vSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfMworI2RlZmluZSBIVUJQUkVRMV9OT01fUEFSQU1FVEVSU18zX19SRUZDWUNfUEVSX1BURV9HUk9VUF9OT01fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfM19fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfTk9NX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfNAorI2RlZmluZSBIVUJQUkVRMV9OT01fUEFSQU1FVEVSU180X19EU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfNF9fRFNUX1lfUEVSX01FVEFfUk9XX05PTV9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRkwKKy8vSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfNQorI2RlZmluZSBIVUJQUkVRMV9OT01fUEFSQU1FVEVSU181X19SRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9NX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfNV9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX05PTV9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfNgorI2RlZmluZSBIVUJQUkVRMV9OT01fUEFSQU1FVEVSU182X19EU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfNl9fRFNUX1lfUEVSX01FVEFfUk9XX05PTV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRkwKKy8vSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfNworI2RlZmluZSBIVUJQUkVRMV9OT01fUEFSQU1FVEVSU183X19SRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9NX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfTk9NX1BBUkFNRVRFUlNfN19fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX05PTV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTFfUEVSX0xJTkVfREVMSVZFUllfUFJFCisjZGVmaW5lIEhVQlBSRVExX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9QRVJfTElORV9ERUxJVkVSWV9QUkVfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9QUkVfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVExX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIEhVQlBSRVExX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL0hVQlBSRVExX1BFUl9MSU5FX0RFTElWRVJZCisjZGVmaW5lIEhVQlBSRVExX1BFUl9MSU5FX0RFTElWRVJZX19SRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9QRVJfTElORV9ERUxJVkVSWV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVExX1BFUl9MSU5FX0RFTElWRVJZX19SRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIEhVQlBSRVExX1BFUl9MSU5FX0RFTElWRVJZX19SRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL0hVQlBSRVExX0NVUlNPUl9TRVRUSU5HUworI2RlZmluZSBIVUJQUkVRMV9DVVJTT1JfU0VUVElOR1NfX0NVUlNPUjBfRFNUX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IwX0NIVU5LX0hETF9BREpVU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVExX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMV9EU1RfWV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTFfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IxX0NIVU5LX0hETF9BREpVU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQUkVRMV9DVVJTT1JfU0VUVElOR1NfX0NVUlNPUjBfRFNUX1lfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBIVUJQUkVRMV9DVVJTT1JfU0VUVElOR1NfX0NVUlNPUjBfQ0hVTktfSERMX0FESlVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBIVUJQUkVRMV9DVVJTT1JfU0VUVElOR1NfX0NVUlNPUjFfRFNUX1lfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBIVUJQUkVRMV9DVVJTT1JfU0VUVElOR1NfX0NVUlNPUjFfQ0hVTktfSERMX0FESlVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9IVUJQUkVRMV9SRUZfRlJFUV9UT19QSVhfRlJFUQorI2RlZmluZSBIVUJQUkVRMV9SRUZfRlJFUV9UT19QSVhfRlJFUV9fUkVGX0ZSRVFfVE9fUElYX0ZSRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfUkVGX0ZSRVFfVE9fUElYX0ZSRVFfX1JFRl9GUkVRX1RPX1BJWF9GUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vSFVCUFJFUTFfRFNUX1lfREVMVEFfRFJRX0xJTUlUCisjZGVmaW5lIEhVQlBSRVExX0RTVF9ZX0RFTFRBX0RSUV9MSU1JVF9fRFNUX1lfREVMVEFfRFJRX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9EU1RfWV9ERUxUQV9EUlFfTElNSVRfX0RTVF9ZX0RFTFRBX0RSUV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9IVUJQUkVRMV9IVUJQUkVRX01FTV9QV1JfQ1RSTAorI2RlZmluZSBIVUJQUkVRMV9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX0RQVEVfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9EUFRFX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfTVBURV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVRMV9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01QVEVfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgSFVCUFJFUTFfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9NRVRBX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfTUVUQV9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQUkVRMV9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX1BERV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUFJFUTFfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9QREVfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfRFBURV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfRFBURV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfTVBURV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfTVBURV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfTUVUQV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfTUVUQV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfUERFX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfUERFX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisvL0hVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVMKKyNkZWZpbmUgSFVCUFJFUTFfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19fUkVRX0RQVEVfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9NUFRFX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVRMV9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfTUVUQV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFUTFfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19fUkVRX1BERV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9EUFRFX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9NUFRFX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9NRVRBX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIEhVQlBSRVExX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9QREVfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisvL0hVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzUKKyNkZWZpbmUgSFVCUFJFUTFfVkJMQU5LX1BBUkFNRVRFUlNfNV9fUkVGQ1lDX1BFUl9WTV9HUk9VUF9WQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzVfX1JFRkNZQ19QRVJfVk1fR1JPVVBfVkJMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzYKKyNkZWZpbmUgSFVCUFJFUTFfVkJMQU5LX1BBUkFNRVRFUlNfNl9fUkVGQ1lDX1BFUl9WTV9SRVFfVkJMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX1ZCTEFOS19QQVJBTUVURVJTXzZfX1JFRkNZQ19QRVJfVk1fUkVRX1ZCTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU18zCisjZGVmaW5lIEhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU18zX19SRUZDWUNfUEVSX1ZNX0dST1VQX0ZMSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfM19fUkVGQ1lDX1BFUl9WTV9HUk9VUF9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfNAorI2RlZmluZSBIVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfNF9fUkVGQ1lDX1BFUl9WTV9SRVFfRkxJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTFfRkxJUF9QQVJBTUVURVJTXzRfX1JFRkNZQ19QRVJfVk1fUkVRX0ZMSVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTFfRkxJUF9QQVJBTUVURVJTXzUKKyNkZWZpbmUgSFVCUFJFUTFfRkxJUF9QQVJBTUVURVJTXzVfX1JFRkNZQ19QRVJfUFRFX0dST1VQX0ZMSVBfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU181X19SRUZDWUNfUEVSX1BURV9HUk9VUF9GTElQX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU182CisjZGVmaW5lIEhVQlBSRVExX0ZMSVBfUEFSQU1FVEVSU182X19SRUZDWUNfUEVSX01FVEFfQ0hVTktfRkxJUF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMV9GTElQX1BBUkFNRVRFUlNfNl9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX0ZMSVBfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDFfZGlzcGRlY19odWJwcmV0X2Rpc3BkZWMKKy8vSFVCUFJFVDFfSFVCUFJFVF9DT05UUk9MCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9fREVUX0JVRl9QTEFORTFfQkFTRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX0NPTlRST0xfX1BBQ0tfM1RPMl9FTEVNRU5UX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9DT05UUk9MX19DUk9TU0JBUl9TUkNfQUxQSEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19ZX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX0NCX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9DT05UUk9MX19DUk9TU0JBUl9TUkNfQ1JfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX0NPTlRST0xfX0hVQlBSRVRfQ09OVFJPTF9TUEFSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9fREVUX0JVRl9QTEFORTFfQkFTRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9fUEFDS18zVE8yX0VMRU1FTlRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX0FMUEhBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX1lfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX0NCX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX0NSX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfQ09OVFJPTF9fSFVCUFJFVF9DT05UUk9MX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0hVQlBSRVQxX0hVQlBSRVRfTUVNX1BXUl9DVFJMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fREVUX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RFVF9NRU1fUFdSX0xTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ETVJPQl9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fRE1ST0JfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX1BJWENEQ19NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fUElYQ0RDX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9MU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RFVF9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RFVF9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RFVF9NRU1fUFdSX0xTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RNUk9CX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RNUk9CX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX1BJWENEQ19NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX1BJWENEQ19NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX1BJWENEQ19NRU1fUFdSX0xTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKy8vSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX1NUQVRVUworI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX01FTV9QV1JfU1RBVFVTX19ERVRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fRE1ST0JfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVNfX1BJWENEQ19NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX01FTV9QV1JfU1RBVFVTX19ERVRfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX01FTV9QV1JfU1RBVFVTX19ETVJPQl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX01FTV9QV1JfU1RBVFVTX19QSVhDRENfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9IVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMF9fUElQRV9SRUFEX0xJTkVfSU5URVJWQUxfSU5fTk9OQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDBfX1BJUEVfUkVBRF9MSU5FX1ZCTEFOS19NQVhJTVVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMF9fUElQRV9SRUFEX0xJTkVfSU5URVJWQUxfSU5fTk9OQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMF9fUElQRV9SRUFEX0xJTkVfVkJMQU5LX01BWElNVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMQorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMV9fUElQRV9SRUFEX0xJTkVfUkVQT1JURURfV0hFTl9SRVFfRElTQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxX1NQQVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMV9fUElQRV9SRUFEX0xJTkVfUkVQT1JURURfV0hFTl9SRVFfRElTQUJMRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9DVFJMMV9fSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfU1BBUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9IVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORTAKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkUwX19QSVBFX1JFQURfTElORTBfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FMF9fUElQRV9SRUFEX0xJTkUwX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkUwX19QSVBFX1JFQURfTElORTBfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkUwX19QSVBFX1JFQURfTElORTBfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkUxCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FMV9fUElQRV9SRUFEX0xJTkUxX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORTFfX1BJUEVfUkVBRF9MSU5FMV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FMV9fUElQRV9SRUFEX0xJTkUxX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FMV9fUElQRV9SRUFEX0xJTkUxX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1ZCTEFOS19JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL0hVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1ZBTFVFCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1ZBTFVFX19QSVBFX1JFQURfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9WQUxVRV9fUElQRV9SRUFEX0xJTkVfU05BUFNIT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1ZBTFVFX19QSVBFX1JFQURfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1ZBTFVFX19QSVBFX1JFQURfTElORV9TTkFQU0hPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVUworI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9WQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfTElORTBfSU5TSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUwX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBIVUJQUkVUMV9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMV9JTlNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFVDFfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfTElORTFfT1VUU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX1ZCTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUwX0lOU0lERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUwX09VVFNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUxX0lOU0lERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlBSRVQxX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUxX09VVFNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMV9kaXNwZGVjX2N1cnNvcjBfZGlzcGRlYworLy9DVVJTT1IwXzFfQ1VSU09SX0NPTlRST0wKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SXzJYX01BR05JRllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfVE1aX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1NOT09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9TWVNURU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfUElUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9YWV9QT1NJVElPTl9ST1RBVElPTl9BTkRfTUlSUk9SSU5HX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX0xJTkVTX1BFUl9DSFVOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfUEVSRk1PTl9MQVRFTkNZX01FQVNVUkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9QRVJGTU9OX0xBVEVOQ1lfTUVBU1VSRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SXzJYX01BR05JRllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1RNWl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1NZU1RFTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1BJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1hZX1BPU0lUSU9OX1JPVEFUSU9OX0FORF9NSVJST1JJTkdfQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX0xJTkVTX1BFUl9DSFVOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1BFUkZNT05fTEFURU5DWV9NRUFTVVJFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1BFUkZNT05fTEFURU5DWV9NRUFTVVJFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0NVUlNPUjBfMV9DVVJTT1JfU1VSRkFDRV9BRERSRVNTCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfU1VSRkFDRV9BRERSRVNTX19DVVJTT1JfU1VSRkFDRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19fQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9DVVJTT1IwXzFfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdICisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0hfX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdIX19DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DVVJTT1IwXzFfQ1VSU09SX1NJWkUKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9TSVpFX19DVVJTT1JfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfU0laRV9fQ1VSU09SX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9TSVpFX19DVVJTT1JfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9TSVpFX19DVVJTT1JfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKy8vQ1VSU09SMF8xX0NVUlNPUl9QT1NJVElPTgorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX1BPU0lUSU9OX19DVVJTT1JfWV9QT1NJVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9QT1NJVElPTl9fQ1VSU09SX1hfUE9TSVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX1BPU0lUSU9OX19DVVJTT1JfWV9QT1NJVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX1BPU0lUSU9OX19DVVJTT1JfWF9QT1NJVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DVVJTT1IwXzFfQ1VSU09SX0hPVF9TUE9UCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfSE9UX1NQT1RfX0NVUlNPUl9IT1RfU1BPVF9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX0hPVF9TUE9UX19DVVJTT1JfSE9UX1NQT1RfWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfSE9UX1NQT1RfX0NVUlNPUl9IT1RfU1BPVF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfSE9UX1NQT1RfX0NVUlNPUl9IT1RfU1BPVF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0NVUlNPUjBfMV9DVVJTT1JfU1RFUkVPX0NPTlRST0wKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9TVEVSRU9fQ09OVFJPTF9fQ1VSU09SX1NURVJFT19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfU1RFUkVPX0NPTlRST0xfX0NVUlNPUl9QUklNQVJZX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfU0VDT05EQVJZX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfU1RFUkVPX0NPTlRST0xfX0NVUlNPUl9TVEVSRU9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfU1RFUkVPX0NPTlRST0xfX0NVUlNPUl9QUklNQVJZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRjBMCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfU1RFUkVPX0NPTlRST0xfX0NVUlNPUl9TRUNPTkRBUllfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGQzAwMDBMCisvL0NVUlNPUjBfMV9DVVJTT1JfRFNUX09GRlNFVAorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX0RTVF9PRkZTRVRfX0NVUlNPUl9EU1RfWF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9EU1RfT0ZGU0VUX19DVVJTT1JfRFNUX1hfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKy8vQ1VSU09SMF8xX0NVUlNPUl9NRU1fUFdSX0NUUkwKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9NRU1fUFdSX0NUUkxfX0NST0JfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMV9DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX01FTV9QV1JfQ1RSTF9fQ1JPQl9NRU1fUFdSX0xTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9NRU1fUFdSX0NUUkxfX0NST0JfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9NRU1fUFdSX0NUUkxfX0NST0JfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9NRU1fUFdSX0NUUkxfX0NST0JfTUVNX1BXUl9MU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vQ1VSU09SMF8xX0NVUlNPUl9NRU1fUFdSX1NUQVRVUworI2RlZmluZSBDVVJTT1IwXzFfQ1VSU09SX01FTV9QV1JfU1RBVFVTX19DUk9CX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8xX0NVUlNPUl9NRU1fUFdSX1NUQVRVU19fQ1JPQl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ1VSU09SMF8xX0RNREFUQV9BRERSRVNTX0hJR0gKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9BRERSRVNTX0hJR0hfX0RNREFUQV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfU1lTVEVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9BRERSRVNTX0hJR0hfX0RNREFUQV9TTk9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBDVVJTT1IwXzFfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfU1lTVEVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfU05PT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0NVUlNPUjBfMV9ETURBVEFfQUREUkVTU19MT1cKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9BRERSRVNTX0xPV19fRE1EQVRBX0FERFJFU1NfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQUREUkVTU19MT1dfX0RNREFUQV9BRERSRVNTX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0NVUlNPUjBfMV9ETURBVEFfQ05UTAorI2RlZmluZSBDVVJTT1IwXzFfRE1EQVRBX0NOVExfX0RNREFUQV9VUERBVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9DTlRMX19ETURBVEFfUkVQRUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQ05UTF9fRE1EQVRBX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDVVJTT1IwXzFfRE1EQVRBX0NOVExfX0RNREFUQV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQ05UTF9fRE1EQVRBX1VQREFURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQ05UTF9fRE1EQVRBX1JFUEVBVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQ05UTF9fRE1EQVRBX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfQ05UTF9fRE1EQVRBX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL0NVUlNPUjBfMV9ETURBVEFfUU9TX0NOVEwKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9RT1NfQ05UTF9fRE1EQVRBX1FPU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfUU9TX0NOVExfX0RNREFUQV9RT1NfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDVVJTT1IwXzFfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfRExfREVMVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfUU9TX0NOVExfX0RNREFUQV9RT1NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfUU9TX0NOVExfX0RNREFUQV9RT1NfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfUU9TX0NOVExfX0RNREFUQV9ETF9ERUxUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NVUlNPUjBfMV9ETURBVEFfU1RBVFVTCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfU1RBVFVTX19ETURBVEFfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzFfRE1EQVRBX1NUQVRVU19fRE1EQVRBX1VOREVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9TVEFUVVNfX0RNREFUQV9VTkRFUkZMT1dfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfU1RBVFVTX19ETURBVEFfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfU1RBVFVTX19ETURBVEFfVU5ERVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfU1RBVFVTX19ETURBVEFfVU5ERVJGTE9XX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0NVUlNPUjBfMV9ETURBVEFfU1dfQ05UTAorI2RlZmluZSBDVVJTT1IwXzFfRE1EQVRBX1NXX0NOVExfX0RNREFUQV9TV19VUERBVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9TV19DTlRMX19ETURBVEFfU1dfUkVQRUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9TV19DTlRMX19ETURBVEFfU1dfVVBEQVRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9TV19DTlRMX19ETURBVEFfU1dfUkVQRUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQ1VSU09SMF8xX0RNREFUQV9TV19DTlRMX19ETURBVEFfU1dfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGMDAwMEwKKy8vQ1VSU09SMF8xX0RNREFUQV9TV19EQVRBCisjZGVmaW5lIENVUlNPUjBfMV9ETURBVEFfU1dfREFUQV9fRE1EQVRBX1NXX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzFfRE1EQVRBX1NXX0RBVEFfX0RNREFUQV9TV19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDFfZGlzcGRlY19odWJwX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURQorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EQ19QRVJGTU9OOF9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX1BFUkZNT044X1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDX1BFUkZNT044X1BFUkZNT05fQ1ZBTFVFX0xPVworI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfUEVSRk1PTjhfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OOF9QRVJGTU9OX0xPVworI2RlZmluZSBEQ19QRVJGTU9OOF9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjhfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAyX2Rpc3BkZWNfaHVicF9kaXNwZGVjCisvL0hVQlAyX0RDU1VSRl9TVVJGQUNFX0NPTkZJRworI2RlZmluZSBIVUJQMl9EQ1NVUkZfU1VSRkFDRV9DT05GSUdfX1NVUkZBQ0VfUElYRUxfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NVUkZBQ0VfQ09ORklHX19ST1RBVElPTl9BTkdMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlAyX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fSF9NSVJST1JfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQMl9EQ1NVUkZfU1VSRkFDRV9DT05GSUdfX1NVUkZBQ0VfUElYRUxfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfU1VSRkFDRV9DT05GSUdfX1JPVEFUSU9OX0FOR0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfU1VSRkFDRV9DT05GSUdfX0hfTUlSUk9SX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9IVUJQMl9EQ1NVUkZfQUREUl9DT05GSUcKKyNkZWZpbmUgSFVCUDJfRENTVVJGX0FERFJfQ09ORklHX19OVU1fUElQRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9BRERSX0NPTkZJR19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBIVUJQMl9EQ1NVUkZfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgSFVCUDJfRENTVVJGX0FERFJfQ09ORklHX19OVU1fU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlAyX0RDU1VSRl9BRERSX0NPTkZJR19fTlVNX1JCX1BFUl9TRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQMl9EQ1NVUkZfQUREUl9DT05GSUdfX01BWF9DT01QUkVTU0VEX0ZSQUdTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUDJfRENTVVJGX0FERFJfQ09ORklHX19OVU1fUElQRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgSFVCUDJfRENTVVJGX0FERFJfQ09ORklHX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgSFVCUDJfRENTVVJGX0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgSFVCUDJfRENTVVJGX0FERFJfQ09ORklHX19OVU1fU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgSFVCUDJfRENTVVJGX0FERFJfQ09ORklHX19OVU1fUkJfUEVSX1NFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgSFVCUDJfRENTVVJGX0FERFJfQ09ORklHX19NQVhfQ09NUFJFU1NFRF9GUkFHU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vSFVCUDJfRENTVVJGX1RJTElOR19DT05GSUcKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1RJTElOR19DT05GSUdfX1NXX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9USUxJTkdfQ09ORklHX19ESU1fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBIVUJQMl9EQ1NVUkZfVElMSU5HX0NPTkZJR19fTUVUQV9MSU5FQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1RJTElOR19DT05GSUdfX1JCX0FMSUdORURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9USUxJTkdfQ09ORklHX19QSVBFX0FMSUdORURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBIVUJQMl9EQ1NVUkZfVElMSU5HX0NPTkZJR19fU1dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfVElMSU5HX0NPTkZJR19fRElNX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTgwTAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfVElMSU5HX0NPTkZJR19fTUVUQV9MSU5FQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfVElMSU5HX0NPTkZJR19fUkJfQUxJR05FRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfVElMSU5HX0NPTkZJR19fUElQRV9BTElHTkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorLy9IVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfX1BSSV9WSUVXUE9SVF9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX19QUklfVklFV1BPUlRfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfX1BSSV9WSUVXUE9SVF9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfX1BSSV9WSUVXUE9SVF9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX19QUklfVklFV1BPUlRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9fUFJJX1ZJRVdQT1JUX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX19QUklfVklFV1BPUlRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX19QUklfVklFV1BPUlRfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQworI2RlZmluZSBIVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0NfX1BSSV9WSUVXUE9SVF9YX1NUQVJUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9DX19QUklfVklFV1BPUlRfWV9TVEFSVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0NfX1BSSV9WSUVXUE9SVF9YX1NUQVJUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0NfX1BSSV9WSUVXUE9SVF9ZX1NUQVJUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9DCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0NfX1BSSV9WSUVXUE9SVF9XSURUSF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfUFJJX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19QUklfVklFV1BPUlRfSEVJR0hUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0NfX1BSSV9WSUVXUE9SVF9XSURUSF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0NfX1BSSV9WSUVXUE9SVF9IRUlHSFRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlQKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9fU0VDX1ZJRVdQT1JUX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfX1NFQ19WSUVXUE9SVF9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9fU0VDX1ZJRVdQT1JUX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9fU0VDX1ZJRVdQT1JUX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT04KKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fX1NFQ19WSUVXUE9SVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX19TRUNfVklFV1BPUlRfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fX1NFQ19WSUVXUE9SVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fX1NFQ19WSUVXUE9SVF9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQ19fU0VDX1ZJRVdQT1JUX1hfU1RBUlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMl9EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX0NfX1NFQ19WSUVXUE9SVF9ZX1NUQVJUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQ19fU0VDX1ZJRVdQT1JUX1hfU1RBUlRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQ19fU0VDX1ZJRVdQT1JUX1lfU1RBUlRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0MKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQ19fU0VDX1ZJRVdQT1JUX1dJRFRIX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAyX0RDU1VSRl9TRUNfVklFV1BPUlRfRElNRU5TSU9OX0NfX1NFQ19WSUVXUE9SVF9IRUlHSFRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQ19fU0VDX1ZJRVdQT1JUX1dJRFRIX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDJfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQ19fU0VDX1ZJRVdQT1JUX0hFSUdIVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDJfRENIVUJQX1JFUV9TSVpFX0NPTkZJRworI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19TV0FUSF9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDJfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fUFRFX1JPV19IRUlHSFRfTElORUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX0NIVU5LX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19NSU5fQ0hVTktfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgSFVCUDJfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fTUVUQV9DSFVOS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19NSU5fTUVUQV9DSFVOS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX0RQVEVfR1JPVVBfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUDJfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fVk1fR1JPVVBfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19TV0FUSF9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19QVEVfUk9XX0hFSUdIVF9MSU5FQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19DSFVOS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19NSU5fQ0hVTktfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxODAwTAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19NRVRBX0NIVU5LX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19NSU5fTUVUQV9DSFVOS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19EUFRFX0dST1VQX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19WTV9HUk9VUF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorLy9IVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0MKKyNkZWZpbmUgSFVCUDJfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19TV0FUSF9IRUlHSFRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fUFRFX1JPV19IRUlHSFRfTElORUFSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX0NIVU5LX1NJWkVfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUDJfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NSU5fQ0hVTktfU0laRV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fTUVUQV9DSFVOS19TSVpFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDJfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NSU5fTUVUQV9DSFVOS19TSVpFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQMl9EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX0RQVEVfR1JPVVBfU0laRV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fU1dBVEhfSEVJR0hUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fUFRFX1JPV19IRUlHSFRfTElORUFSX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fQ0hVTktfU0laRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fTUlOX0NIVU5LX1NJWkVfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fTUVUQV9DSFVOS19TSVpFX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fTUlOX01FVEFfQ0hVTktfU0laRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fRFBURV9HUk9VUF9TSVpFX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisvL0hVQlAyX0RDSFVCUF9DTlRMCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9DTlRMX19IVUJQX0JMQU5LX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfQ05UTF9fSFVCUF9OT19PVVRTVEFORElOR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9DTlRMX19IVUJQX0lOX0JMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBIVUJQMl9EQ0hVQlBfQ05UTF9fSFVCUF9WVEdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVlJFQURZX0FUX09SX0FGVEVSX1ZTWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlAyX0RDSFVCUF9DTlRMX19IVUJQX0RJU0FCTEVfU1RPUF9EQVRBX0RVUklOR19WTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQMl9EQ0hVQlBfQ05UTF9fSFVCUF9UVFVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVFRVX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9DTlRMX19IVUJQX1hSUV9OT19PVVRTVEFORElOR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVElNRU9VVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlAyX0RDSFVCUF9DTlRMX19IVUJQX1RJTUVPVVRfU1RBVFVTX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVElNRU9VVF9JTlRFUlJVUFRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBIVUJQMl9EQ0hVQlBfQ05UTF9fSFVCUF9VTkRFUkZMT1dfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9DTlRMX19IVUJQX1VOREVSRkxPV19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfQkxBTktfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfTk9fT1VUU1RBTkRJTkdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfSU5fQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVlRHX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVlJFQURZX0FUX09SX0FGVEVSX1ZTWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfRElTQUJMRV9TVE9QX0RBVEFfRFVSSU5HX1ZNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVFRVX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVFRVX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRTAwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfWFJRX05PX09VVFNUQU5ESU5HX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVElNRU9VVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVElNRU9VVF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVElNRU9VVF9TVEFUVVNfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVElNRU9VVF9JTlRFUlJVUFRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVU5ERVJGTE9XX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKyNkZWZpbmUgSFVCUDJfRENIVUJQX0NOVExfX0hVQlBfVU5ERVJGTE9XX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vSFVCUDJfSFVCUF9DTEtfQ05UTAorI2RlZmluZSBIVUJQMl9IVUJQX0NMS19DTlRMX19IVUJQX0NMT0NLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9ESVNQQ0xLX1JfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlAyX0hVQlBfQ0xLX0NOVExfX0hVQlBfRFBQQ0xLX0dfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQMl9IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19SX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9EQ0ZDTEtfR19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQMl9IVUJQX0NMS19DTlRMX19IVUJQX0RJU1BDTEtfUl9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlAyX0hVQlBfQ0xLX0NOVExfX0hVQlBfRFBQQ0xLX0dfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9EQ0ZDTEtfUl9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBIVUJQMl9IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19HX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIEhVQlAyX0hVQlBfQ0xLX0NOVExfX0hVQlBfVEVTVF9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9ESVNQQ0xLX1JfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9EUFBDTEtfR19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9EQ0ZDTEtfUl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9EQ0ZDTEtfR19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9ESVNQQ0xLX1JfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9EUFBDTEtfR19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9EQ0ZDTEtfUl9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9EQ0ZDTEtfR19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgSFVCUDJfSFVCUF9DTEtfQ05UTF9fSFVCUF9URVNUX0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vSFVCUDJfRENIVUJQX1ZNUEdfQ09ORklHCisjZGVmaW5lIEhVQlAyX0RDSFVCUF9WTVBHX0NPTkZJR19fVk1QR19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMl9EQ0hVQlBfVk1QR19DT05GSUdfX1ZNUEdfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9IVUJQMl9IVUJQUkVRX0RFQlVHX0RCCisjZGVmaW5lIEhVQlAyX0hVQlBSRVFfREVCVUdfREJfX0hVQlBSRVFfREVCVUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMl9IVUJQUkVRX0RFQlVHX0RCX19IVUJQUkVRX0RFQlVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLCisjZGVmaW5lIEhVQlAyX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fRU5fRENGQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX01FQVNVUkVfV0lOX1BFUklPRF9NMV9EQ0ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUDJfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9QRVJGTU9OX1NUQVJUX1NFTF9EQ0ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlAyX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfUEVSRk1PTl9TVE9QX1NFTF9EQ0ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUDJfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9NRUFTVVJFX1dJTl9NT0RFX0RDRkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX01FQVNVUkVfV0lOX0VOX0RDRkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX01FQVNVUkVfV0lOX1BFUklPRF9NMV9EQ0ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBIVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX1BFUkZNT05fU1RBUlRfU0VMX0RDRkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGMDAwTAorI2RlZmluZSBIVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX1BFUkZNT05fU1RPUF9TRUxfRENGQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorI2RlZmluZSBIVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX01FQVNVUkVfV0lOX01PREVfRENGQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9IVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLCisjZGVmaW5lIEhVQlAyX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfTUVBU1VSRV9XSU5fRU5fRFBQQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX01FQVNVUkVfV0lOX1NSQ19TRUxfRFBQQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFVCUDJfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9QRVJJT0RfTTFfRFBQQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlAyX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfUEVSRk1PTl9TVEFSVF9TRUxfRFBQQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQMl9IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX1BFUkZNT05fU1RPUF9TRUxfRFBQQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlAyX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfTUVBU1VSRV9XSU5fRU5fRFBQQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlAyX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfTUVBU1VSRV9XSU5fU1JDX1NFTF9EUFBDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEhVQlAyX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfTUVBU1VSRV9XSU5fUEVSSU9EX00xX0RQUENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIEhVQlAyX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfUEVSRk1PTl9TVEFSVF9TRUxfRFBQQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIEhVQlAyX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfUEVSRk1PTl9TVE9QX1NFTF9EUFBDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMl9kaXNwZGVjX2h1YnByZXFfZGlzcGRlYworLy9IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9QSVRDSAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9fUElUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfUElUQ0hfX01FVEFfUElUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9fUElUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9fTUVUQV9QSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9DCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX1BJVENIX0NfX1BJVENIX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9QSVRDSF9DX19NRVRBX1BJVENIX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX1BJVENIX0NfX1BJVENIX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX1BJVENIX0NfX01FVEFfUElUQ0hfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlBSRVEyX1ZNSURfU0VUVElOR1NfMAorI2RlZmluZSBIVUJQUkVRMl9WTUlEX1NFVFRJTkdTXzBfX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfVk1JRF9TRVRUSU5HU18wX19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0MKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0NfX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19DX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEyX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdICisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19DCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0NfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19DX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEyX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdICisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfTUFTSyAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfTUFTSyAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0MKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfTUFTSyAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1MKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQworI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fU0hJRlQgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfTUFTSyAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfVE1aX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX0RDQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfVE1aX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9EQ0NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfRENDX0lORF82NEJfQkxLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX1RNWl9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfVE1aX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX01FVEFfU1VSRkFDRV9UTVpfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfVE1aX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9UTVpfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfRENDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfRENDX0lORF82NEJfQkxLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfVE1aX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfRENDX0lORF82NEJfQkxLX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9UTVpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9EQ0NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9UTVpfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX01FVEFfU1VSRkFDRV9UTVpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX01FVEFfU1VSRkFDRV9UTVpfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX1RNWl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX1RNWl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9IVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfVVBEQVRFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1ZVUERBVEVfU0tJUF9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MX19IVUJQUkVRX01BU1RFUl9VUERBVEVfTE9DS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX01PREVfRk9SX1NURVJFT1NZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9JTl9TVEVSRU9TWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1NURVJFT19TRUxFQ1RfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfU1RFUkVPX1NFTEVDVF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9QRU5ESU5HX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9VUERBVEVfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1ZVUERBVEVfU0tJUF9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fSFVCUFJFUV9NQVNURVJfVVBEQVRFX0xPQ0tfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX01PREVfRk9SX1NURVJFT1NZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX0lOX1NURVJFT1NZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1NURVJFT19TRUxFQ1RfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1NURVJFT19TRUxFQ1RfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1BFTkRJTkdfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkYwMDAwMEwKKy8vSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTDIKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfRkxJUF9QRU5ESU5HX01JTl9USU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0dTTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9HU0xfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfVFJJUExFX0JVRkZFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0lOVVNFX1JBRURfTk9fTEFUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9GTElQX1BFTkRJTkdfTUlOX1RJTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9HU0xfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9HU0xfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9UUklQTEVfQlVGRkVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9JTlVTRV9SQUVEX05PX0xBVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL0hVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0lOVVNFCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0lOVVNFX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9fU1VSRkFDRV9JTlVTRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdICisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9DCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0NfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9DX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIX0MKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9DX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfSElHSF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfQ19fU1VSRkFDRV9JTlVTRV9BRERSRVNTX0hJR0hfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdICisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9DCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0NfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9DX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX0MKKyNkZWZpbmUgSFVCUFJFUTJfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9DX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfSElHSF9DX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfQ19fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX0hJR0hfQ19NQVNLICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEyX0RDTl9FWFBBTlNJT05fTU9ERQorI2RlZmluZSBIVUJQUkVRMl9EQ05fRVhQQU5TSU9OX01PREVfX0RSUV9FWFBBTlNJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0VYUEFOU0lPTl9NT0RFX19DUlFfRVhQQU5TSU9OX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9FWFBBTlNJT05fTU9ERV9fTVJRX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVRMl9EQ05fRVhQQU5TSU9OX01PREVfX1BSUV9FWFBBTlNJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0VYUEFOU0lPTl9NT0RFX19EUlFfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0VYUEFOU0lPTl9NT0RFX19DUlFfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0VYUEFOU0lPTl9NT0RFX19NUlFfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0VYUEFOU0lPTl9NT0RFX19QUlFfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKy8vSFVCUFJFUTJfRENOX1RUVV9RT1NfV00KKyNkZWZpbmUgSFVCUFJFUTJfRENOX1RUVV9RT1NfV01fX1FvU19MRVZFTF9MT1dfV01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9UVFVfUU9TX1dNX19Rb1NfTEVWRUxfSElHSF9XTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1RUVV9RT1NfV01fX1FvU19MRVZFTF9MT1dfV01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1RUVV9RT1NfV01fX1FvU19MRVZFTF9ISUdIX1dNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUFJFUTJfRENOX0dMT0JBTF9UVFVfQ05UTAorI2RlZmluZSBIVUJQUkVRMl9EQ05fR0xPQkFMX1RUVV9DTlRMX19NSU5fVFRVX1ZCTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0dMT0JBTF9UVFVfQ05UTF9fUW9TX0xFVkVMX0ZMSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQUkVRMl9EQ05fR0xPQkFMX1RUVV9DTlRMX19NSU5fVFRVX1ZCTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBIVUJQUkVRMl9EQ05fR0xPQkFMX1RUVV9DTlRMX19Rb1NfTEVWRUxfRkxJUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9IVUJQUkVRMl9EQ05fU1VSRjBfVFRVX0NOVEwwCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9TVVJGMF9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ05fU1VSRjBfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlBSRVEyX0RDTl9TVVJGMF9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1NVUkYwX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1NVUkYwX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1NVUkYwX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vSFVCUFJFUTJfRENOX1NVUkYwX1RUVV9DTlRMMQorI2RlZmluZSBIVUJQUkVRMl9EQ05fU1VSRjBfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1NVUkYwX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTJfRENOX1NVUkYxX1RUVV9DTlRMMAorI2RlZmluZSBIVUJQUkVRMl9EQ05fU1VSRjFfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1NVUkYxX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQUkVRMl9EQ05fU1VSRjFfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9TVVJGMV9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9TVVJGMV9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9TVVJGMV9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0hVQlBSRVEyX0RDTl9TVVJGMV9UVFVfQ05UTDEKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1NVUkYxX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9TVVJGMV9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEyX0RDTl9DVVIwX1RUVV9DTlRMMAorI2RlZmluZSBIVUJQUkVRMl9EQ05fQ1VSMF9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0NVUjBfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQUkVRMl9EQ05fQ1VSMF9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9DVVIwX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9DVVIwX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9DVVIwX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0hVQlBSRVEyX0RDTl9DVVIwX1RUVV9DTlRMMQorI2RlZmluZSBIVUJQUkVRMl9EQ05fQ1VSMF9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0NVUjBfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTJfRENOX0NVUjFfVFRVX0NOVEwwCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9DVVIxX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ05fQ1VSMV9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlBSRVEyX0RDTl9DVVIxX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0NVUjFfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0NVUjFfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTJfRENOX0NVUjFfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vSFVCUFJFUTJfRENOX0NVUjFfVFRVX0NOVEwxCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9DVVIxX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ05fQ1VSMV9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMl9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX19NQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkZGRkZGTAorLy9IVUJQUkVRMl9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUgorI2RlZmluZSBIVUJQUkVRMl9EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9fTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGRkZGRkwKKy8vSFVCUFJFUTJfRENOX1ZNX01YX0wxX1RMQl9DTlRMCisjZGVmaW5lIEhVQlBSRVEyX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fRU5BQkxFX0wxX1RMQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9EQ05fVk1fTVhfTDFfVExCX0NOVExfX1NZU1RFTV9BQ0NFU1NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgSFVCUFJFUTJfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQVBFUlRVUkVfVU5NQVBQRURfQUNDRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEhVQlBSRVEyX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fRU5BQkxFX0FEVkFOQ0VEX0RSSVZFUl9NT0RFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQUkVRMl9EQ05fVk1fTVhfTDFfVExCX0NOVExfX0VOQUJMRV9MMV9UTEJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQUkVRMl9EQ05fVk1fTVhfTDFfVExCX0NOVExfX1NZU1RFTV9BQ0NFU1NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBIVUJQUkVRMl9EQ05fVk1fTVhfTDFfVExCX0NOVExfX1NZU1RFTV9BUEVSVFVSRV9VTk1BUFBFRF9BQ0NFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBIVUJQUkVRMl9EQ05fVk1fTVhfTDFfVExCX0NOVExfX0VOQUJMRV9BRFZBTkNFRF9EUklWRVJfTU9ERUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9IVUJQUkVRMl9CTEFOS19PRkZTRVRfMAorI2RlZmluZSBIVUJQUkVRMl9CTEFOS19PRkZTRVRfMF9fUkVGQ1lDX0hfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfQkxBTktfT0ZGU0VUXzBfX0RMR19WX0JMQU5LX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMl9CTEFOS19PRkZTRVRfMF9fUkVGQ1lDX0hfQkxBTktfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBIVUJQUkVRMl9CTEFOS19PRkZTRVRfMF9fRExHX1ZfQkxBTktfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9IVUJQUkVRMl9CTEFOS19PRkZTRVRfMQorI2RlZmluZSBIVUJQUkVRMl9CTEFOS19PRkZTRVRfMV9fTUlOX0RTVF9ZX05FWFRfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfQkxBTktfT0ZGU0VUXzFfX01JTl9EU1RfWV9ORVhUX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vSFVCUFJFUTJfRFNUX0RJTUVOU0lPTlMKKyNkZWZpbmUgSFVCUFJFUTJfRFNUX0RJTUVOU0lPTlNfX1JFRkNZQ19QRVJfSFRPVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RTVF9ESU1FTlNJT05TX19SRUZDWUNfUEVSX0hUT1RBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL0hVQlBSRVEyX0RTVF9BRlRFUl9TQ0FMRVIKKyNkZWZpbmUgSFVCUFJFUTJfRFNUX0FGVEVSX1NDQUxFUl9fUkVGQ1lDX1hfQUZURVJfU0NBTEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RTVF9BRlRFUl9TQ0FMRVJfX0RTVF9ZX0FGVEVSX1NDQUxFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTJfRFNUX0FGVEVSX1NDQUxFUl9fUkVGQ1lDX1hfQUZURVJfU0NBTEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgSFVCUFJFUTJfRFNUX0FGVEVSX1NDQUxFUl9fRFNUX1lfQUZURVJfU0NBTEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKy8vSFVCUFJFUTJfUFJFRkVUQ0hfU0VUVElOR1MKKyNkZWZpbmUgSFVCUFJFUTJfUFJFRkVUQ0hfU0VUVElOR1NfX1ZSQVRJT19QUkVGRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX1BSRUZFVENIX1NFVFRJTkdTX19EU1RfWV9QUkVGRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFUTJfUFJFRkVUQ0hfU0VUVElOR1NfX1ZSQVRJT19QUkVGRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGRkwKKyNkZWZpbmUgSFVCUFJFUTJfUFJFRkVUQ0hfU0VUVElOR1NfX0RTVF9ZX1BSRUZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vSFVCUFJFUTJfUFJFRkVUQ0hfU0VUVElOR1NfQworI2RlZmluZSBIVUJQUkVRMl9QUkVGRVRDSF9TRVRUSU5HU19DX19WUkFUSU9fUFJFRkVUQ0hfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfUFJFRkVUQ0hfU0VUVElOR1NfQ19fVlJBVElPX1BSRUZFVENIX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGRkwKKy8vSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfMAorI2RlZmluZSBIVUJQUkVRMl9WQkxBTktfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfVk1fVkJMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1JPV19WQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9WTV9WQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9ST1dfVkJMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisvL0hVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzEKKyNkZWZpbmUgSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfMV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzFfX1JFRkNZQ19QRVJfUFRFX0dST1VQX1ZCTEFOS19MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzIKKyNkZWZpbmUgSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfMl9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzJfX1JFRkNZQ19QRVJfUFRFX0dST1VQX1ZCTEFOS19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzMKKyNkZWZpbmUgSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfM19fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX1ZCTEFOS19MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzNfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19WQkxBTktfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzQKKyNkZWZpbmUgSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfNF9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX1ZCTEFOS19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX1ZCTEFOS19QQVJBTUVURVJTXzRfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19WQkxBTktfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU18wCisjZGVmaW5lIEhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfVk1fRkxJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9GTElQX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1JPV19GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9WTV9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9ST1dfRkxJUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKy8vSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzEKKyNkZWZpbmUgSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzFfX1JFRkNZQ19QRVJfUFRFX0dST1VQX0ZMSVBfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU18xX19SRUZDWUNfUEVSX1BURV9HUk9VUF9GTElQX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU18yCisjZGVmaW5lIEhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU18yX19SRUZDWUNfUEVSX01FVEFfQ0hVTktfRkxJUF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9GTElQX1BBUkFNRVRFUlNfMl9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX0ZMSVBfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMl9OT01fUEFSQU1FVEVSU18wCisjZGVmaW5lIEhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9QVEVfUk9XX05PTV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9OT01fUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfUFRFX1JPV19OT01fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGTAorLy9IVUJQUkVRMl9OT01fUEFSQU1FVEVSU18xCisjZGVmaW5lIEhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzFfX1JFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9OT01fUEFSQU1FVEVSU18xX19SRUZDWUNfUEVSX1BURV9HUk9VUF9OT01fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMl9OT01fUEFSQU1FVEVSU18yCisjZGVmaW5lIEhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzJfX0RTVF9ZX1BFUl9QVEVfUk9XX05PTV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9OT01fUEFSQU1FVEVSU18yX19EU1RfWV9QRVJfUFRFX1JPV19OT01fQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGTAorLy9IVUJQUkVRMl9OT01fUEFSQU1FVEVSU18zCisjZGVmaW5lIEhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzNfX1JFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9OT01fUEFSQU1FVEVSU18zX19SRUZDWUNfUEVSX1BURV9HUk9VUF9OT01fQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMl9OT01fUEFSQU1FVEVSU180CisjZGVmaW5lIEhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzRfX0RTVF9ZX1BFUl9NRVRBX1JPV19OT01fTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9OT01fUEFSQU1FVEVSU180X19EU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGTAorLy9IVUJQUkVRMl9OT01fUEFSQU1FVEVSU181CisjZGVmaW5lIEhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzVfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19OT01fTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9OT01fUEFSQU1FVEVSU181X19SRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9NX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMl9OT01fUEFSQU1FVEVSU182CisjZGVmaW5lIEhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzZfX0RTVF9ZX1BFUl9NRVRBX1JPV19OT01fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9OT01fUEFSQU1FVEVSU182X19EU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGTAorLy9IVUJQUkVRMl9OT01fUEFSQU1FVEVSU183CisjZGVmaW5lIEhVQlBSRVEyX05PTV9QQVJBTUVURVJTXzdfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19OT01fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9OT01fUEFSQU1FVEVSU183X19SRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9NX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMl9QRVJfTElORV9ERUxJVkVSWV9QUkUKKyNkZWZpbmUgSFVCUFJFUTJfUEVSX0xJTkVfREVMSVZFUllfUFJFX19SRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfUFJFX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTJfUEVSX0xJTkVfREVMSVZFUllfUFJFX19SRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfUFJFX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgSFVCUFJFUTJfUEVSX0xJTkVfREVMSVZFUllfUFJFX19SRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfUFJFX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vSFVCUFJFUTJfUEVSX0xJTkVfREVMSVZFUlkKKyNkZWZpbmUgSFVCUFJFUTJfUEVSX0xJTkVfREVMSVZFUllfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX1BFUl9MSU5FX0RFTElWRVJZX19SRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTJfUEVSX0xJTkVfREVMSVZFUllfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgSFVCUFJFUTJfUEVSX0xJTkVfREVMSVZFUllfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vSFVCUFJFUTJfQ1VSU09SX1NFVFRJTkdTCisjZGVmaW5lIEhVQlBSRVEyX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMF9EU1RfWV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9DVVJTT1JfU0VUVElOR1NfX0NVUlNPUjBfQ0hVTktfSERMX0FESlVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTJfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IxX0RTVF9ZX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRMl9DVVJTT1JfU0VUVElOR1NfX0NVUlNPUjFfQ0hVTktfSERMX0FESlVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlBSRVEyX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMF9EU1RfWV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEhVQlBSRVEyX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMF9DSFVOS19IRExfQURKVVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEhVQlBSRVEyX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMV9EU1RfWV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEhVQlBSRVEyX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMV9DSFVOS19IRExfQURKVVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisvL0hVQlBSRVEyX1JFRl9GUkVRX1RPX1BJWF9GUkVRCisjZGVmaW5lIEhVQlBSRVEyX1JFRl9GUkVRX1RPX1BJWF9GUkVRX19SRUZfRlJFUV9UT19QSVhfRlJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9SRUZfRlJFUV9UT19QSVhfRlJFUV9fUkVGX0ZSRVFfVE9fUElYX0ZSRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGTAorLy9IVUJQUkVRMl9EU1RfWV9ERUxUQV9EUlFfTElNSVQKKyNkZWZpbmUgSFVCUFJFUTJfRFNUX1lfREVMVEFfRFJRX0xJTUlUX19EU1RfWV9ERUxUQV9EUlFfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0RTVF9ZX0RFTFRBX0RSUV9MSU1JVF9fRFNUX1lfREVMVEFfRFJRX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL0hVQlBSRVEyX0hVQlBSRVFfTUVNX1BXUl9DVFJMCisjZGVmaW5lIEhVQlBSRVEyX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfRFBURV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX0RQVEVfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9NUFRFX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVEyX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfTVBURV9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQUkVRMl9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01FVEFfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9NRVRBX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlBSRVEyX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfUERFX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQUkVRMl9IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX1BERV9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9EUFRFX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9EUFRFX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9NUFRFX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9NUFRFX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9NRVRBX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9NRVRBX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9QREVfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9QREVfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKy8vSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX1NUQVRVUworI2RlZmluZSBIVUJQUkVRMl9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfRFBURV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19fUkVRX01QVEVfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVEyX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9NRVRBX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVRMl9IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfUERFX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19fUkVRX0RQVEVfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19fUkVRX01QVEVfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19fUkVRX01FVEFfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgSFVCUFJFUTJfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19fUkVRX1BERV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKy8vSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfNQorI2RlZmluZSBIVUJQUkVRMl9WQkxBTktfUEFSQU1FVEVSU181X19SRUZDWUNfUEVSX1ZNX0dST1VQX1ZCTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfNV9fUkVGQ1lDX1BFUl9WTV9HUk9VUF9WQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfNgorI2RlZmluZSBIVUJQUkVRMl9WQkxBTktfUEFSQU1FVEVSU182X19SRUZDWUNfUEVSX1ZNX1JFUV9WQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfVkJMQU5LX1BBUkFNRVRFUlNfNl9fUkVGQ1lDX1BFUl9WTV9SRVFfVkJMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzMKKyNkZWZpbmUgSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzNfX1JFRkNZQ19QRVJfVk1fR1JPVVBfRkxJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU18zX19SRUZDWUNfUEVSX1ZNX0dST1VQX0ZMSVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU180CisjZGVmaW5lIEhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU180X19SRUZDWUNfUEVSX1ZNX1JFUV9GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRMl9GTElQX1BBUkFNRVRFUlNfNF9fUkVGQ1lDX1BFUl9WTV9SRVFfRkxJUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRMl9GTElQX1BBUkFNRVRFUlNfNQorI2RlZmluZSBIVUJQUkVRMl9GTElQX1BBUkFNRVRFUlNfNV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzVfX1JFRkNZQ19QRVJfUFRFX0dST1VQX0ZMSVBfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzYKKyNkZWZpbmUgSFVCUFJFUTJfRkxJUF9QQVJBTUVURVJTXzZfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19GTElQX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEyX0ZMSVBfUEFSQU1FVEVSU182X19SRUZDWUNfUEVSX01FVEFfQ0hVTktfRkxJUF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMl9kaXNwZGVjX2h1YnByZXRfZGlzcGRlYworLy9IVUJQUkVUMl9IVUJQUkVUX0NPTlRST0wKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9DT05UUk9MX19ERVRfQlVGX1BMQU5FMV9CQVNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfQ09OVFJPTF9fUEFDS18zVE8yX0VMRU1FTlRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX1lfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9DT05UUk9MX19DUk9TU0JBUl9TUkNfQ0JfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19DUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfQ09OVFJPTF9fSFVCUFJFVF9DT05UUk9MX1NQQVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9DT05UUk9MX19ERVRfQlVGX1BMQU5FMV9CQVNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9DT05UUk9MX19QQUNLXzNUTzJfRUxFTUVOVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9DT05UUk9MX19DUk9TU0JBUl9TUkNfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9DT05UUk9MX19DUk9TU0JBUl9TUkNfWV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9DT05UUk9MX19DUk9TU0JBUl9TUkNfQ0JfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9DT05UUk9MX19DUk9TU0JBUl9TUkNfQ1JfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9DT05UUk9MX19IVUJQUkVUX0NPTlRST0xfU1BBUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vSFVCUFJFVDJfSFVCUFJFVF9NRU1fUFdSX0NUUkwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RFVF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fREVUX01FTV9QV1JfTFNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RNUk9CX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ETVJPQl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fUElYQ0RDX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX1BJWENEQ19NRU1fUFdSX0xTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fREVUX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fREVUX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fREVUX01FTV9QV1JfTFNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fRE1ST0JfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fRE1ST0JfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fUElYQ0RDX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fUElYQ0RDX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfQ1RSTF9fUElYQ0RDX01FTV9QV1JfTFNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorLy9IVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfU1RBVFVTCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVNfX0RFVF9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX01FTV9QV1JfU1RBVFVTX19ETVJPQl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fUElYQ0RDX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVNfX0RFVF9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVNfX0RNUk9CX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVNfX1BJWENEQ19NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisvL0hVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwwX19QSVBFX1JFQURfTElORV9JTlRFUlZBTF9JTl9OT05BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORV9DVFJMMF9fUElQRV9SRUFEX0xJTkVfVkJMQU5LX01BWElNVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwwX19QSVBFX1JFQURfTElORV9JTlRFUlZBTF9JTl9OT05BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwwX19QSVBFX1JFQURfTElORV9WQkxBTktfTUFYSU1VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxX19QSVBFX1JFQURfTElORV9SRVBPUlRFRF9XSEVOX1JFUV9ESVNBQkxFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORV9DVFJMMV9fSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfU1BBUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxX19QSVBFX1JFQURfTElORV9SRVBPUlRFRF9XSEVOX1JFUV9ESVNBQkxFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxX19IVUJQUkVUX1JFQURfTElORV9DVFJMMV9TUEFSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0hVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FMAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORTBfX1BJUEVfUkVBRF9MSU5FMF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkUwX19QSVBFX1JFQURfTElORTBfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORTBfX1BJUEVfUkVBRF9MSU5FMF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORTBfX1BJUEVfUkVBRF9MSU5FMF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORTEKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkUxX19QSVBFX1JFQURfTElORTFfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FMV9fUElQRV9SRUFEX0xJTkUxX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkUxX19QSVBFX1JFQURfTElORTFfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkUxX19QSVBFX1JFQURfTElORTFfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFQKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfVkJMQU5LX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfVkFMVUUKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfVkFMVUVfX1BJUEVfUkVBRF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX1ZBTFVFX19QSVBFX1JFQURfTElORV9TTkFQU0hPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfVkFMVUVfX1BJUEVfUkVBRF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfVkFMVUVfX1BJUEVfUkVBRF9MSU5FX1NOQVBTSE9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTCisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX1ZCTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMF9JTlNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfTElORTBfT1VUU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEhVQlBSRVQyX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUxX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVUMl9IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMV9PVVRTSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfVkJMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfTElORTBfSU5TSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfTElORTBfT1VUU0lERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfTElORTFfSU5TSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFVCUFJFVDJfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfTElORTFfT1VUU0lERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAyX2Rpc3BkZWNfY3Vyc29yMF9kaXNwZGVjCisvL0NVUlNPUjBfMl9DVVJTT1JfQ09OVFJPTAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfMlhfTUFHTklGWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfU05PT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1NZU1RFTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1hZX1BPU0lUSU9OX1JPVEFUSU9OX0FORF9NSVJST1JJTkdfQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfTElORVNfUEVSX0NIVU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9QRVJGTU9OX0xBVEVOQ1lfTUVBU1VSRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1BFUkZNT05fTEFURU5DWV9NRUFTVVJFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfMlhfTUFHTklGWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfU05PT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfU1lTVEVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfUElUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfWFlfUE9TSVRJT05fUk9UQVRJT05fQU5EX01JUlJPUklOR19CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfTElORVNfUEVSX0NIVU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfUEVSRk1PTl9MQVRFTkNZX01FQVNVUkVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfUEVSRk1PTl9MQVRFTkNZX01FQVNVUkVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQ1VSU09SMF8yX0NVUlNPUl9TVVJGQUNFX0FERFJFU1MKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfU1VSRkFDRV9BRERSRVNTX19DVVJTT1JfU1VSRkFDRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0NVUlNPUjBfMl9DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0gKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSF9fQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0hfX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NVUlNPUjBfMl9DVVJTT1JfU0laRQorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX1NJWkVfX0NVUlNPUl9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9TSVpFX19DVVJTT1JfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX1NJWkVfX0NVUlNPUl9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX1NJWkVfX0NVUlNPUl9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorLy9DVVJTT1IwXzJfQ1VSU09SX1BPU0lUSU9OCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfUE9TSVRJT05fX0NVUlNPUl9ZX1BPU0lUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX1BPU0lUSU9OX19DVVJTT1JfWF9QT1NJVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfUE9TSVRJT05fX0NVUlNPUl9ZX1BPU0lUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfUE9TSVRJT05fX0NVUlNPUl9YX1BPU0lUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0NVUlNPUjBfMl9DVVJTT1JfSE9UX1NQT1QKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9IT1RfU1BPVF9fQ1VSU09SX0hPVF9TUE9UX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfSE9UX1NQT1RfX0NVUlNPUl9IT1RfU1BPVF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9IT1RfU1BPVF9fQ1VSU09SX0hPVF9TUE9UX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9IT1RfU1BPVF9fQ1VSU09SX0hPVF9TUE9UX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQ1VSU09SMF8yX0NVUlNPUl9TVEVSRU9fQ09OVFJPTAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfU1RFUkVPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9TVEVSRU9fQ09OVFJPTF9fQ1VSU09SX1BSSU1BUllfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfU1RFUkVPX0NPTlRST0xfX0NVUlNPUl9TRUNPTkRBUllfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9TVEVSRU9fQ09OVFJPTF9fQ1VSU09SX1NURVJFT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9TVEVSRU9fQ09OVFJPTF9fQ1VSU09SX1BSSU1BUllfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9TVEVSRU9fQ09OVFJPTF9fQ1VSU09SX1NFQ09OREFSWV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZDMDAwMEwKKy8vQ1VSU09SMF8yX0NVUlNPUl9EU1RfT0ZGU0VUCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfRFNUX09GRlNFVF9fQ1VSU09SX0RTVF9YX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX0RTVF9PRkZTRVRfX0NVUlNPUl9EU1RfWF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorLy9DVVJTT1IwXzJfQ1VSU09SX01FTV9QV1JfQ1RSTAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX01FTV9QV1JfQ1RSTF9fQ1JPQl9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8yX0NVUlNPUl9NRU1fUFdSX0NUUkxfX0NST0JfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfTFNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX01FTV9QV1JfQ1RSTF9fQ1JPQl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX01FTV9QV1JfQ1RSTF9fQ1JPQl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX01FTV9QV1JfQ1RSTF9fQ1JPQl9NRU1fUFdSX0xTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9DVVJTT1IwXzJfQ1VSU09SX01FTV9QV1JfU1RBVFVTCisjZGVmaW5lIENVUlNPUjBfMl9DVVJTT1JfTUVNX1BXUl9TVEFUVVNfX0NST0JfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzJfQ1VSU09SX01FTV9QV1JfU1RBVFVTX19DUk9CX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9DVVJTT1IwXzJfRE1EQVRBX0FERFJFU1NfSElHSAorI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX0FERFJFU1NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9BRERSRVNTX0hJR0hfX0RNREFUQV9TWVNURU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1NOT09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIENVUlNPUjBfMl9ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfVE1aX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9BRERSRVNTX0hJR0hfX0RNREFUQV9BRERSRVNTX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9BRERSRVNTX0hJR0hfX0RNREFUQV9TWVNURU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9BRERSRVNTX0hJR0hfX0RNREFUQV9TTk9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9BRERSRVNTX0hJR0hfX0RNREFUQV9UTVpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vQ1VSU09SMF8yX0RNREFUQV9BRERSRVNTX0xPVworI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX0FERFJFU1NfTE9XX19ETURBVEFfQUREUkVTU19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9BRERSRVNTX0xPV19fRE1EQVRBX0FERFJFU1NfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQ1VSU09SMF8yX0RNREFUQV9DTlRMCisjZGVmaW5lIENVUlNPUjBfMl9ETURBVEFfQ05UTF9fRE1EQVRBX1VQREFURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX0NOVExfX0RNREFUQV9SRVBFQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9DTlRMX19ETURBVEFfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIENVUlNPUjBfMl9ETURBVEFfQ05UTF9fRE1EQVRBX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9DTlRMX19ETURBVEFfVVBEQVRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9DTlRMX19ETURBVEFfUkVQRUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9DTlRMX19ETURBVEFfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9DTlRMX19ETURBVEFfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGMDAwMEwKKy8vQ1VSU09SMF8yX0RNREFUQV9RT1NfQ05UTAorI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfUU9TX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9RT1NfQ05UTF9fRE1EQVRBX1FPU19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENVUlNPUjBfMl9ETURBVEFfUU9TX0NOVExfX0RNREFUQV9ETF9ERUxUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9RT1NfQ05UTF9fRE1EQVRBX1FPU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9RT1NfQ05UTF9fRE1EQVRBX1FPU19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9RT1NfQ05UTF9fRE1EQVRBX0RMX0RFTFRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ1VSU09SMF8yX0RNREFUQV9TVEFUVVMKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9TVEFUVVNfX0RNREFUQV9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMl9ETURBVEFfU1RBVFVTX19ETURBVEFfVU5ERVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX1NUQVRVU19fRE1EQVRBX1VOREVSRkxPV19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9TVEFUVVNfX0RNREFUQV9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9TVEFUVVNfX0RNREFUQV9VTkRFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9TVEFUVVNfX0RNREFUQV9VTkRFUkZMT1dfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQ1VSU09SMF8yX0RNREFUQV9TV19DTlRMCisjZGVmaW5lIENVUlNPUjBfMl9ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1VQREFURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX1NXX0NOVExfX0RNREFUQV9TV19SRVBFQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9TV19DTlRMX19ETURBVEFfU1dfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX1NXX0NOVExfX0RNREFUQV9TV19VUERBVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX1NXX0NOVExfX0RNREFUQV9TV19SRVBFQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBDVVJTT1IwXzJfRE1EQVRBX1NXX0NOVExfX0RNREFUQV9TV19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkYwMDAwTAorLy9DVVJTT1IwXzJfRE1EQVRBX1NXX0RBVEEKKyNkZWZpbmUgQ1VSU09SMF8yX0RNREFUQV9TV19EQVRBX19ETURBVEFfU1dfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfMl9ETURBVEFfU1dfREFUQV9fRE1EQVRBX1NXX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNidWJwMl9kaXNwZGVjX2h1YnBfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy9EQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RDX1BFUkZNT045X1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGQ0wKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkMwMEwKKy8vRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENfUEVSRk1PTjlfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OOV9QRVJGTU9OX0hJCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fSElfX1BFUkZNT05fSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fSElfX1BFUkZNT05fSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT045X1BFUkZNT05fTE9XCisjZGVmaW5lIERDX1BFUkZNT045X1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OOV9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDNfZGlzcGRlY19odWJwX2Rpc3BkZWMKKy8vSFVCUDNfRENTVVJGX1NVUkZBQ0VfQ09ORklHCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fU1VSRkFDRV9QSVhFTF9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQM19EQ1NVUkZfU1VSRkFDRV9DT05GSUdfX1JPVEFUSU9OX0FOR0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1NVUkZBQ0VfQ09ORklHX19IX01JUlJPUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fU1VSRkFDRV9QSVhFTF9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fUk9UQVRJT05fQU5HTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9TVVJGQUNFX0NPTkZJR19fSF9NSVJST1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL0hVQlAzX0RDU1VSRl9BRERSX0NPTkZJRworI2RlZmluZSBIVUJQM19EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9QSVBFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDNfRENTVVJGX0FERFJfQ09ORklHX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQM19EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9TRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUDNfRENTVVJGX0FERFJfQ09ORklHX19OVU1fUkJfUEVSX1NFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9BRERSX0NPTkZJR19fTUFYX0NPTVBSRVNTRURfRlJBR1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQM19EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9QSVBFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBIVUJQM19EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBIVUJQM19EQ1NVUkZfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBIVUJQM19EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9TRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBIVUJQM19EQ1NVUkZfQUREUl9DT05GSUdfX05VTV9SQl9QRVJfU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBIVUJQM19EQ1NVUkZfQUREUl9DT05GSUdfX01BWF9DT01QUkVTU0VEX0ZSQUdTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorLy9IVUJQM19EQ1NVUkZfVElMSU5HX0NPTkZJRworI2RlZmluZSBIVUJQM19EQ1NVUkZfVElMSU5HX0NPTkZJR19fU1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1RJTElOR19DT05GSUdfX0RJTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEhVQlAzX0RDU1VSRl9USUxJTkdfQ09ORklHX19NRVRBX0xJTkVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQM19EQ1NVUkZfVElMSU5HX0NPTkZJR19fUkJfQUxJR05FRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1RJTElOR19DT05GSUdfX1BJUEVfQUxJR05FRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9USUxJTkdfQ09ORklHX19TV19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9USUxJTkdfQ09ORklHX19ESU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxODBMCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9USUxJTkdfQ09ORklHX19NRVRBX0xJTkVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9USUxJTkdfQ09ORklHX19SQl9BTElHTkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9USUxJTkdfQ09ORklHX19QSVBFX0FMSUdORURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisvL0hVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlQKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9fUFJJX1ZJRVdQT1JUX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfX1BSSV9WSUVXUE9SVF9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9fUFJJX1ZJRVdQT1JUX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9fUFJJX1ZJRVdQT1JUX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT04KKyNkZWZpbmUgSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fX1BSSV9WSUVXUE9SVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX19QUklfVklFV1BPUlRfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fX1BSSV9WSUVXUE9SVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fX1BSSV9WSUVXUE9SVF9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9TVEFSVF9DCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQ19fUFJJX1ZJRVdQT1JUX1hfU1RBUlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQM19EQ1NVUkZfUFJJX1ZJRVdQT1JUX1NUQVJUX0NfX1BSSV9WSUVXUE9SVF9ZX1NUQVJUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQ19fUFJJX1ZJRVdQT1JUX1hfU1RBUlRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfU1RBUlRfQ19fUFJJX1ZJRVdQT1JUX1lfU1RBUlRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0MKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQ19fUFJJX1ZJRVdQT1JUX1dJRFRIX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX0NfX1BSSV9WSUVXUE9SVF9IRUlHSFRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQ19fUFJJX1ZJRVdQT1JUX1dJRFRIX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1BSSV9WSUVXUE9SVF9ESU1FTlNJT05fQ19fUFJJX1ZJRVdQT1JUX0hFSUdIVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVAorI2RlZmluZSBIVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX19TRUNfVklFV1BPUlRfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9fU0VDX1ZJRVdQT1JUX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX19TRUNfVklFV1BPUlRfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX19TRUNfVklFV1BPUlRfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTgorI2RlZmluZSBIVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9fU0VDX1ZJRVdQT1JUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fX1NFQ19WSUVXUE9SVF9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9fU0VDX1ZJRVdQT1JUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9fU0VDX1ZJRVdQT1JUX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX1NUQVJUX0MKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DX19TRUNfVklFV1BPUlRfWF9TVEFSVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAzX0RDU1VSRl9TRUNfVklFV1BPUlRfU1RBUlRfQ19fU0VDX1ZJRVdQT1JUX1lfU1RBUlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DX19TRUNfVklFV1BPUlRfWF9TVEFSVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9TVEFSVF9DX19TRUNfVklFV1BPUlRfWV9TVEFSVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQworI2RlZmluZSBIVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19TRUNfVklFV1BPUlRfV0lEVEhfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDNfRENTVVJGX1NFQ19WSUVXUE9SVF9ESU1FTlNJT05fQ19fU0VDX1ZJRVdQT1JUX0hFSUdIVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19TRUNfVklFV1BPUlRfV0lEVEhfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQM19EQ1NVUkZfU0VDX1ZJRVdQT1JUX0RJTUVOU0lPTl9DX19TRUNfVklFV1BPUlRfSEVJR0hUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQM19EQ0hVQlBfUkVRX1NJWkVfQ09ORklHCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1NXQVRIX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQM19EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19QVEVfUk9XX0hFSUdIVF9MSU5FQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fQ0hVTktfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01JTl9DSFVOS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBIVUJQM19EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19NRVRBX0NIVU5LX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01JTl9NRVRBX0NIVU5LX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19fRFBURV9HUk9VUF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQM19EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX19WTV9HUk9VUF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1NXQVRIX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1BURV9ST1dfSEVJR0hUX0xJTkVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX0NIVU5LX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01JTl9DSFVOS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01FVEFfQ0hVTktfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX01JTl9NRVRBX0NIVU5LX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX0RQVEVfR1JPVVBfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfX1ZNX0dST1VQX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisvL0hVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQworI2RlZmluZSBIVUJQM19EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX1NXQVRIX0hFSUdIVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19QVEVfUk9XX0hFSUdIVF9MSU5FQVJfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fQ0hVTktfU0laRV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQM19EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX01JTl9DSFVOS19TSVpFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NRVRBX0NIVU5LX1NJWkVfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQM19EQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0NfX01JTl9NRVRBX0NIVU5LX1NJWkVfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9SRVFfU0laRV9DT05GSUdfQ19fRFBURV9HUk9VUF9TSVpFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19TV0FUSF9IRUlHSFRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19QVEVfUk9XX0hFSUdIVF9MSU5FQVJfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19DSFVOS19TSVpFX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NSU5fQ0hVTktfU0laRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTgwMEwKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NRVRBX0NIVU5LX1NJWkVfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19NSU5fTUVUQV9DSFVOS19TSVpFX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DX19EUFRFX0dST1VQX1NJWkVfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKy8vSFVCUDNfRENIVUJQX0NOVEwKKyNkZWZpbmUgSFVCUDNfRENIVUJQX0NOVExfX0hVQlBfQkxBTktfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9DTlRMX19IVUJQX05PX09VVFNUQU5ESU5HX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUDNfRENIVUJQX0NOVExfX0hVQlBfSU5fQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9DTlRMX19IVUJQX1ZUR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9WUkVBRFlfQVRfT1JfQUZURVJfVlNZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUDNfRENIVUJQX0NOVExfX0hVQlBfRElTQUJMRV9TVE9QX0RBVEFfRFVSSU5HX1ZNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlAzX0RDSFVCUF9DTlRMX19IVUJQX1RUVV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9UVFVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgSFVCUDNfRENIVUJQX0NOVExfX0hVQlBfWFJRX05PX09VVFNUQU5ESU5HX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlAzX0RDSFVCUF9DTlRMX19IVUJQX1RJTUVPVVRfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUDNfRENIVUJQX0NOVExfX0hVQlBfVElNRU9VVF9TVEFUVVNfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX0lOVEVSUlVQVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9DTlRMX19IVUJQX1VOREVSRkxPV19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUDNfRENIVUJQX0NOVExfX0hVQlBfVU5ERVJGTE9XX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9CTEFOS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9OT19PVVRTVEFORElOR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9JTl9CTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9WVEdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9WUkVBRFlfQVRfT1JfQUZURVJfVlNZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9ESVNBQkxFX1NUT1BfREFUQV9EVVJJTkdfVk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9UVFVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9UVFVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBFMDAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9YUlFfTk9fT1VUU1RBTkRJTkdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX1NUQVRVU19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9USU1FT1VUX0lOVEVSUlVQVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9VTkRFUkZMT1dfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorI2RlZmluZSBIVUJQM19EQ0hVQlBfQ05UTF9fSFVCUF9VTkRFUkZMT1dfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9IVUJQM19IVUJQX0NMS19DTlRMCisjZGVmaW5lIEhVQlAzX0hVQlBfQ0xLX0NOVExfX0hVQlBfQ0xPQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RJU1BDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUDNfSFVCUF9DTEtfQ05UTF9fSFVCUF9EUFBDTEtfR19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlAzX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX1JfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19HX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlAzX0hVQlBfQ0xLX0NOVExfX0hVQlBfRElTUENMS19SX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUDNfSFVCUF9DTEtfQ05UTF9fSFVCUF9EUFBDTEtfR19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19SX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIEhVQlAzX0hVQlBfQ0xLX0NOVExfX0hVQlBfRENGQ0xLX0dfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgSFVCUDNfSFVCUF9DTEtfQ05UTF9fSFVCUF9URVNUX0NMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0NMT0NLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RJU1BDTEtfUl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RQUENMS19HX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19SX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19HX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RJU1BDTEtfUl9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RQUENMS19HX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19SX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX0RDRkNMS19HX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBIVUJQM19IVUJQX0NMS19DTlRMX19IVUJQX1RFU1RfQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9IVUJQM19EQ0hVQlBfVk1QR19DT05GSUcKKyNkZWZpbmUgSFVCUDNfRENIVUJQX1ZNUEdfQ09ORklHX19WTVBHX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAzX0RDSFVCUF9WTVBHX0NPTkZJR19fVk1QR19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0hVQlAzX0hVQlBSRVFfREVCVUdfREIKKyNkZWZpbmUgSFVCUDNfSFVCUFJFUV9ERUJVR19EQl9fSFVCUFJFUV9ERUJVR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAzX0hVQlBSRVFfREVCVUdfREJfX0hVQlBSRVFfREVCVUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEsKKyNkZWZpbmUgSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9NRUFTVVJFX1dJTl9FTl9EQ0ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fUEVSSU9EX00xX0RDRkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQM19IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX1BFUkZNT05fU1RBUlRfU0VMX0RDRkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RDRkNMS19fSFVCUF9QRVJGTU9OX1NUT1BfU0VMX0RDRkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQM19IVUJQX01FQVNVUkVfV0lOX0NUUkxfRENGQ0xLX19IVUJQX01FQVNVUkVfV0lOX01PREVfRENGQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fRU5fRENGQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fUEVSSU9EX00xX0RDRkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIEhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfUEVSRk1PTl9TVEFSVF9TRUxfRENGQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIEhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfUEVSRk1PTl9TVE9QX1NFTF9EQ0ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGMDAwMDBMCisjZGVmaW5lIEhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EQ0ZDTEtfX0hVQlBfTUVBU1VSRV9XSU5fTU9ERV9EQ0ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL0hVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEsKKyNkZWZpbmUgSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9FTl9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfTUVBU1VSRV9XSU5fU1JDX1NFTF9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIVUJQM19IVUJQX01FQVNVUkVfV0lOX0NUUkxfRFBQQ0xLX19IVUJQX01FQVNVUkVfV0lOX1BFUklPRF9NMV9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9QRVJGTU9OX1NUQVJUX1NFTF9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlAzX0hVQlBfTUVBU1VSRV9XSU5fQ1RSTF9EUFBDTEtfX0hVQlBfUEVSRk1PTl9TVE9QX1NFTF9EUFBDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9FTl9EUFBDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9TUkNfU0VMX0RQUENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9NRUFTVVJFX1dJTl9QRVJJT0RfTTFfRFBQQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9QRVJGTU9OX1NUQVJUX1NFTF9EUFBDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjAwMEwKKyNkZWZpbmUgSFVCUDNfSFVCUF9NRUFTVVJFX1dJTl9DVFJMX0RQUENMS19fSFVCUF9QRVJGTU9OX1NUT1BfU0VMX0RQUENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAzX2Rpc3BkZWNfaHVicHJlcV9kaXNwZGVjCisvL0hVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX1BJVENICisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX1BJVENIX19QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9QSVRDSF9fTUVUQV9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX1BJVENIX19QSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX1BJVENIX19NRVRBX1BJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX1BJVENIX0MKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQ19fUElUQ0hfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX1BJVENIX0NfX01FVEFfUElUQ0hfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQ19fUElUQ0hfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfUElUQ0hfQ19fTUVUQV9QSVRDSF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUFJFUTNfVk1JRF9TRVRUSU5HU18wCisjZGVmaW5lIEhVQlBSRVEzX1ZNSURfU0VUVElOR1NfMF9fVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19WTUlEX1NFVFRJTkdTXzBfX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9IVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1MKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdICisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQworI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQ19fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0NfX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQworI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1MKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0MKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQ19fU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0NfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQworI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1MKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0MKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19fUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19NQVNLICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQworI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0NfX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19NQVNLICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTUworI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdICisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRM19EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0MKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19DX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQ19fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0NfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSF9DX19TSElGVCAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQ19NQVNLICAgICAweDAwMDBGRkZGTAorLy9IVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9DT05UUk9MCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfRENDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fUFJJTUFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9UTVpfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX1NVUkZBQ0VfRENDX0lORF82NEJfQkxLX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfVE1aX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX1NVUkZBQ0VfVE1aX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19QUklNQVJZX01FVEFfU1VSRkFDRV9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfTUVUQV9TVVJGQUNFX1RNWl9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfQ09OVFJPTF9fU0VDT05EQVJZX01FVEFfU1VSRkFDRV9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9DT05UUk9MX19TRUNPTkRBUllfTUVUQV9TVVJGQUNFX1RNWl9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9UTVpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9EQ0NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9UTVpfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfU1VSRkFDRV9EQ0NfSU5EXzY0Ql9CTEtfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX1RNWl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX1RNWl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9TVVJGQUNFX0RDQ19JTkRfNjRCX0JMS19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfTUVUQV9TVVJGQUNFX1RNWl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1BSSU1BUllfTUVUQV9TVVJGQUNFX1RNWl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0NPTlRST0xfX1NFQ09OREFSWV9NRVRBX1NVUkZBQ0VfVE1aX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL0hVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0wKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9VUERBVEVfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfVlVQREFURV9TS0lQX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0xfX0hVQlBSRVFfTUFTVEVSX1VQREFURV9MT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfTU9ERV9GT1JfU1RFUkVPU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX0lOX1NURVJFT1NZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfU1RFUkVPX1NFTEVDVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0xfX1NVUkZBQ0VfRkxJUF9TVEVSRU9fU0VMRUNUX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX0ZMSVBfQ09OVFJPTF9fU1VSRkFDRV9GTElQX1BFTkRJTkdfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX1VQREFURV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfVlVQREFURV9TS0lQX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19IVUJQUkVRX01BU1RFUl9VUERBVEVfTE9DS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfTU9ERV9GT1JfU1RFUkVPU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfSU5fU1RFUkVPU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfU1RFUkVPX1NFTEVDVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfU1RFUkVPX1NFTEVDVF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MX19TVVJGQUNFX0ZMSVBfUEVORElOR19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRjAwMDAwTAorLy9IVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MMgorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9GTElQX1BFTkRJTkdfTUlOX1RJTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfR1NMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0dTTF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfRkxJUF9DT05UUk9MMl9fU1VSRkFDRV9UUklQTEVfQlVGRkVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX0ZMSVBfQ09OVFJPTDJfX1NVUkZBQ0VfSU5VU0VfUkFFRF9OT19MQVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0ZMSVBfUEVORElOR19NSU5fVElNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0dTTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0dTTF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX1RSSVBMRV9CVUZGRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9GTElQX0NPTlRST0wyX19TVVJGQUNFX0lOVVNFX1JBRURfTk9fTEFUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0hVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9GTElQX0lOVEVSUlVQVF9fU1VSRkFDRV9GTElQX0FXQVlfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0ZMSVBfSU5URVJSVVBUX19TVVJGQUNFX0ZMSVBfQVdBWV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRkxJUF9JTlRFUlJVUFRfX1NVUkZBQ0VfRkxJUF9BV0FZX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfSU5VU0UKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfSU5VU0VfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0lOVVNFX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9fU1VSRkFDRV9JTlVTRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0MKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfSU5VU0VfQ19fU1VSRkFDRV9JTlVTRV9BRERSRVNTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0NfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0lOVVNFX0hJR0hfQworI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9JTlVTRV9ISUdIX0NfX1NVUkZBQ0VfSU5VU0VfQUREUkVTU19ISUdIX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfSU5VU0VfSElHSF9DX19TVVJGQUNFX0lOVVNFX0FERFJFU1NfSElHSF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0UKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0gKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0MKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQ19fU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9BRERSRVNTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0NfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0hVQlBSRVEzX0RDU1VSRl9TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0hJR0hfQworI2RlZmluZSBIVUJQUkVRM19EQ1NVUkZfU1VSRkFDRV9FQVJMSUVTVF9JTlVTRV9ISUdIX0NfX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfQUREUkVTU19ISUdIX0NfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENTVVJGX1NVUkZBQ0VfRUFSTElFU1RfSU5VU0VfSElHSF9DX19TVVJGQUNFX0VBUkxJRVNUX0lOVVNFX0FERFJFU1NfSElHSF9DX01BU0sgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vSFVCUFJFUTNfRENOX0VYUEFOU0lPTl9NT0RFCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9FWFBBTlNJT05fTU9ERV9fRFJRX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ05fRVhQQU5TSU9OX01PREVfX0NSUV9FWFBBTlNJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFUTNfRENOX0VYUEFOU0lPTl9NT0RFX19NUlFfRVhQQU5TSU9OX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVEzX0RDTl9FWFBBTlNJT05fTU9ERV9fUFJRX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQUkVRM19EQ05fRVhQQU5TSU9OX01PREVfX0RSUV9FWFBBTlNJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBIVUJQUkVRM19EQ05fRVhQQU5TSU9OX01PREVfX0NSUV9FWFBBTlNJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBIVUJQUkVRM19EQ05fRVhQQU5TSU9OX01PREVfX01SUV9FWFBBTlNJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBIVUJQUkVRM19EQ05fRVhQQU5TSU9OX01PREVfX1BSUV9FWFBBTlNJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorLy9IVUJQUkVRM19EQ05fVFRVX1FPU19XTQorI2RlZmluZSBIVUJQUkVRM19EQ05fVFRVX1FPU19XTV9fUW9TX0xFVkVMX0xPV19XTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1RUVV9RT1NfV01fX1FvU19MRVZFTF9ISUdIX1dNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRM19EQ05fVFRVX1FPU19XTV9fUW9TX0xFVkVMX0xPV19XTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVRM19EQ05fVFRVX1FPU19XTV9fUW9TX0xFVkVMX0hJR0hfV01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVRM19EQ05fR0xPQkFMX1RUVV9DTlRMCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9HTE9CQUxfVFRVX0NOVExfX01JTl9UVFVfVkJMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ05fR0xPQkFMX1RUVV9DTlRMX19Rb1NfTEVWRUxfRkxJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9HTE9CQUxfVFRVX0NOVExfX01JTl9UVFVfVkJMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9HTE9CQUxfVFRVX0NOVExfX1FvU19MRVZFTF9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0hVQlBSRVEzX0RDTl9TVVJGMF9UVFVfQ05UTDAKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1NVUkYwX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9TVVJGMF9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1NVUkYwX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQUkVRM19EQ05fU1VSRjBfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorI2RlZmluZSBIVUJQUkVRM19EQ05fU1VSRjBfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBIVUJQUkVRM19EQ05fU1VSRjBfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9IVUJQUkVRM19EQ05fU1VSRjBfVFRVX0NOVEwxCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9TVVJGMF9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ05fU1VSRjBfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRM19EQ05fU1VSRjFfVFRVX0NOVEwwCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9TVVJGMV9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ05fU1VSRjFfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlBSRVEzX0RDTl9TVVJGMV9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1NVUkYxX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1NVUkYxX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1NVUkYxX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vSFVCUFJFUTNfRENOX1NVUkYxX1RUVV9DTlRMMQorI2RlZmluZSBIVUJQUkVRM19EQ05fU1VSRjFfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1NVUkYxX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTNfRENOX0NVUjBfVFRVX0NOVEwwCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9DVVIwX1RUVV9DTlRMMF9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ05fQ1VSMF9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhVQlBSRVEzX0RDTl9DVVIwX1RUVV9DTlRMMF9fUW9TX1JBTVBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFVCUFJFUTNfRENOX0NVUjBfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKyNkZWZpbmUgSFVCUFJFUTNfRENOX0NVUjBfVFRVX0NOVEwwX19Rb1NfTEVWRUxfRklYRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTNfRENOX0NVUjBfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vSFVCUFJFUTNfRENOX0NVUjBfVFRVX0NOVEwxCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9DVVIwX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ05fQ1VSMF9UVFVfQ05UTDFfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRM19EQ05fQ1VSMV9UVFVfQ05UTDAKKyNkZWZpbmUgSFVCUFJFUTNfRENOX0NVUjFfVFRVX0NOVEwwX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9DVVIxX1RUVV9DTlRMMF9fUW9TX0xFVkVMX0ZJWEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFUTNfRENOX0NVUjFfVFRVX0NOVEwwX19Rb1NfUkFNUF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIVUJQUkVRM19EQ05fQ1VSMV9UVFVfQ05UTDBfX1JFRkNZQ19QRVJfUkVRX0RFTElWRVJZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorI2RlZmluZSBIVUJQUkVRM19EQ05fQ1VSMV9UVFVfQ05UTDBfX1FvU19MRVZFTF9GSVhFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBIVUJQUkVRM19EQ05fQ1VSMV9UVFVfQ05UTDBfX1FvU19SQU1QX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9IVUJQUkVRM19EQ05fQ1VSMV9UVFVfQ05UTDEKKyNkZWZpbmUgSFVCUFJFUTNfRENOX0NVUjFfVFRVX0NOVEwxX19SRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9DVVIxX1RUVV9DTlRMMV9fUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEzX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFIKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9fTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRkZGRkZMCisvL0hVQlBSRVEzX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX19NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19EQ05fVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9fTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDNGRkZGRkZGTAorLy9IVUJQUkVRM19EQ05fVk1fTVhfTDFfVExCX0NOVEwKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfTDFfVExCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fU1lTVEVNX0FDQ0VTU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBIVUJQUkVRM19EQ05fVk1fTVhfTDFfVExCX0NOVExfX1NZU1RFTV9BUEVSVFVSRV9VTk1BUFBFRF9BQ0NFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgSFVCUFJFUTNfRENOX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfQURWQU5DRURfRFJJVkVSX01PREVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEhVQlBSRVEzX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fRU5BQkxFX0wxX1RMQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fU1lTVEVNX0FDQ0VTU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fU1lTVEVNX0FQRVJUVVJFX1VOTUFQUEVEX0FDQ0VTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEhVQlBSRVEzX0RDTl9WTV9NWF9MMV9UTEJfQ05UTF9fRU5BQkxFX0FEVkFOQ0VEX0RSSVZFUl9NT0RFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL0hVQlBSRVEzX0JMQU5LX09GRlNFVF8wCisjZGVmaW5lIEhVQlBSRVEzX0JMQU5LX09GRlNFVF8wX19SRUZDWUNfSF9CTEFOS19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19CTEFOS19PRkZTRVRfMF9fRExHX1ZfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEzX0JMQU5LX09GRlNFVF8wX19SRUZDWUNfSF9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIEhVQlBSRVEzX0JMQU5LX09GRlNFVF8wX19ETEdfVl9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL0hVQlBSRVEzX0JMQU5LX09GRlNFVF8xCisjZGVmaW5lIEhVQlBSRVEzX0JMQU5LX09GRlNFVF8xX19NSU5fRFNUX1lfTkVYVF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19CTEFOS19PRkZTRVRfMV9fTUlOX0RTVF9ZX05FWFRfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9IVUJQUkVRM19EU1RfRElNRU5TSU9OUworI2RlZmluZSBIVUJQUkVRM19EU1RfRElNRU5TSU9OU19fUkVGQ1lDX1BFUl9IVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRFNUX0RJTUVOU0lPTlNfX1JFRkNZQ19QRVJfSFRPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vSFVCUFJFUTNfRFNUX0FGVEVSX1NDQUxFUgorI2RlZmluZSBIVUJQUkVRM19EU1RfQUZURVJfU0NBTEVSX19SRUZDWUNfWF9BRlRFUl9TQ0FMRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRFNUX0FGVEVSX1NDQUxFUl9fRFNUX1lfQUZURVJfU0NBTEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRM19EU1RfQUZURVJfU0NBTEVSX19SRUZDWUNfWF9BRlRFUl9TQ0FMRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBIVUJQUkVRM19EU1RfQUZURVJfU0NBTEVSX19EU1RfWV9BRlRFUl9TQ0FMRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorLy9IVUJQUkVRM19QUkVGRVRDSF9TRVRUSU5HUworI2RlZmluZSBIVUJQUkVRM19QUkVGRVRDSF9TRVRUSU5HU19fVlJBVElPX1BSRUZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfUFJFRkVUQ0hfU0VUVElOR1NfX0RTVF9ZX1BSRUZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQUkVRM19QUkVGRVRDSF9TRVRUSU5HU19fVlJBVElPX1BSRUZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZGTAorI2RlZmluZSBIVUJQUkVRM19QUkVGRVRDSF9TRVRUSU5HU19fRFNUX1lfUFJFRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9IVUJQUkVRM19QUkVGRVRDSF9TRVRUSU5HU19DCisjZGVmaW5lIEhVQlBSRVEzX1BSRUZFVENIX1NFVFRJTkdTX0NfX1ZSQVRJT19QUkVGRVRDSF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19QUkVGRVRDSF9TRVRUSU5HU19DX19WUkFUSU9fUFJFRkVUQ0hfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZGTAorLy9IVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU18wCisjZGVmaW5lIEhVQlBSRVEzX1ZCTEFOS19QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9WTV9WQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfUk9XX1ZCTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1ZNX1ZCTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1JPV19WQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKy8vSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMQorI2RlZmluZSBIVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU18xX19SRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxBTktfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMgorI2RlZmluZSBIVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU18yX19SRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxBTktfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMl9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfMworI2RlZmluZSBIVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU18zX19SRUZDWUNfUEVSX01FVEFfQ0hVTktfVkJMQU5LX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfM19fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX1ZCTEFOS19MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfNAorI2RlZmluZSBIVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU180X19SRUZDWUNfUEVSX01FVEFfQ0hVTktfVkJMQU5LX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfVkJMQU5LX1BBUkFNRVRFUlNfNF9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX1ZCTEFOS19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzAKKyNkZWZpbmUgSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9WTV9GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU18wX19EU1RfWV9QRVJfUk9XX0ZMSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1ZNX0ZMSVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBIVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1JPV19GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorLy9IVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfMQorI2RlZmluZSBIVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfMV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzFfX1JFRkNZQ19QRVJfUFRFX0dST1VQX0ZMSVBfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzIKKyNkZWZpbmUgSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzJfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19GTElQX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU18yX19SRUZDWUNfUEVSX01FVEFfQ0hVTktfRkxJUF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEzX05PTV9QQVJBTUVURVJTXzAKKyNkZWZpbmUgSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfMF9fRFNUX1lfUEVSX1BURV9ST1dfTk9NX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzBfX0RTVF9ZX1BFUl9QVEVfUk9XX05PTV9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL0hVQlBSRVEzX05PTV9QQVJBTUVURVJTXzEKKyNkZWZpbmUgSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfMV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfTk9NX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzFfX1JFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEzX05PTV9QQVJBTUVURVJTXzIKKyNkZWZpbmUgSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfMl9fRFNUX1lfUEVSX1BURV9ST1dfTk9NX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzJfX0RTVF9ZX1BFUl9QVEVfUk9XX05PTV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL0hVQlBSRVEzX05PTV9QQVJBTUVURVJTXzMKKyNkZWZpbmUgSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfM19fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfTk9NX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzNfX1JFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEzX05PTV9QQVJBTUVURVJTXzQKKyNkZWZpbmUgSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfNF9fRFNUX1lfUEVSX01FVEFfUk9XX05PTV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzRfX0RTVF9ZX1BFUl9NRVRBX1JPV19OT01fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL0hVQlBSRVEzX05PTV9QQVJBTUVURVJTXzUKKyNkZWZpbmUgSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfNV9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX05PTV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzVfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19OT01fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEzX05PTV9QQVJBTUVURVJTXzYKKyNkZWZpbmUgSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfNl9fRFNUX1lfUEVSX01FVEFfUk9XX05PTV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzZfX0RTVF9ZX1BFUl9NRVRBX1JPV19OT01fQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL0hVQlBSRVEzX05PTV9QQVJBTUVURVJTXzcKKyNkZWZpbmUgSFVCUFJFUTNfTk9NX1BBUkFNRVRFUlNfN19fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX05PTV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX05PTV9QQVJBTUVURVJTXzdfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19OT01fQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEzX1BFUl9MSU5FX0RFTElWRVJZX1BSRQorI2RlZmluZSBIVUJQUkVRM19QRVJfTElORV9ERUxJVkVSWV9QUkVfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9QUkVfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfUEVSX0xJTkVfREVMSVZFUllfUFJFX19SRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfUFJFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRM19QRVJfTElORV9ERUxJVkVSWV9QUkVfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9QUkVfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBIVUJQUkVRM19QRVJfTElORV9ERUxJVkVSWV9QUkVfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9QUkVfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9IVUJQUkVRM19QRVJfTElORV9ERUxJVkVSWQorI2RlZmluZSBIVUJQUkVRM19QRVJfTElORV9ERUxJVkVSWV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfUEVSX0xJTkVfREVMSVZFUllfX1JFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVRM19QRVJfTElORV9ERUxJVkVSWV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBIVUJQUkVRM19QRVJfTElORV9ERUxJVkVSWV9fUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9IVUJQUkVRM19DVVJTT1JfU0VUVElOR1MKKyNkZWZpbmUgSFVCUFJFUTNfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IwX0RTVF9ZX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMF9DSFVOS19IRExfQURKVVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRM19DVVJTT1JfU0VUVElOR1NfX0NVUlNPUjFfRFNUX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVEzX0NVUlNPUl9TRVRUSU5HU19fQ1VSU09SMV9DSFVOS19IRExfQURKVVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFVCUFJFUTNfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IwX0RTVF9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgSFVCUFJFUTNfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IwX0NIVU5LX0hETF9BREpVU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgSFVCUFJFUTNfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IxX0RTVF9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgSFVCUFJFUTNfQ1VSU09SX1NFVFRJTkdTX19DVVJTT1IxX0NIVU5LX0hETF9BREpVU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKy8vSFVCUFJFUTNfUkVGX0ZSRVFfVE9fUElYX0ZSRVEKKyNkZWZpbmUgSFVCUFJFUTNfUkVGX0ZSRVFfVE9fUElYX0ZSRVFfX1JFRl9GUkVRX1RPX1BJWF9GUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX1JFRl9GUkVRX1RPX1BJWF9GUkVRX19SRUZfRlJFUV9UT19QSVhfRlJFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL0hVQlBSRVEzX0RTVF9ZX0RFTFRBX0RSUV9MSU1JVAorI2RlZmluZSBIVUJQUkVRM19EU1RfWV9ERUxUQV9EUlFfTElNSVRfX0RTVF9ZX0RFTFRBX0RSUV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRFNUX1lfREVMVEFfRFJRX0xJTUlUX19EU1RfWV9ERUxUQV9EUlFfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vSFVCUFJFUTNfSFVCUFJFUV9NRU1fUFdSX0NUUkwKKyNkZWZpbmUgSFVCUFJFUTNfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9EUFRFX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfRFBURV9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01QVEVfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFUTNfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9NUFRFX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEhVQlBSRVEzX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfTUVUQV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01FVEFfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSFVCUFJFUTNfSFVCUFJFUV9NRU1fUFdSX0NUUkxfX1JFUV9QREVfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVEzX0hVQlBSRVFfTUVNX1BXUl9DVFJMX19SRVFfUERFX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX0RQVEVfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX0RQVEVfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01QVEVfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01QVEVfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01FVEFfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX01FVEFfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX1BERV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfQ1RSTF9fUkVRX1BERV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorLy9IVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfU1RBVFVTCisjZGVmaW5lIEhVQlBSRVEzX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9EUFRFX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfTVBURV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSFVCUFJFUTNfSFVCUFJFUV9NRU1fUFdSX1NUQVRVU19fUkVRX01FVEFfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhVQlBSRVEzX0hVQlBSRVFfTUVNX1BXUl9TVEFUVVNfX1JFUV9QREVfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfRFBURV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfTVBURV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfTUVUQV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBIVUJQUkVRM19IVUJQUkVRX01FTV9QV1JfU1RBVFVTX19SRVFfUERFX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorLy9IVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU181CisjZGVmaW5lIEhVQlBSRVEzX1ZCTEFOS19QQVJBTUVURVJTXzVfX1JFRkNZQ19QRVJfVk1fR1JPVVBfVkJMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU181X19SRUZDWUNfUEVSX1ZNX0dST1VQX1ZCTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU182CisjZGVmaW5lIEhVQlBSRVEzX1ZCTEFOS19QQVJBTUVURVJTXzZfX1JFRkNZQ19QRVJfVk1fUkVRX1ZCTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19WQkxBTktfUEFSQU1FVEVSU182X19SRUZDWUNfUEVSX1ZNX1JFUV9WQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfMworI2RlZmluZSBIVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfM19fUkVGQ1lDX1BFUl9WTV9HUk9VUF9GTElQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzNfX1JFRkNZQ19QRVJfVk1fR1JPVVBfRkxJUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzQKKyNkZWZpbmUgSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzRfX1JFRkNZQ19QRVJfVk1fUkVRX0ZMSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU180X19SRUZDWUNfUEVSX1ZNX1JFUV9GTElQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0hVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU181CisjZGVmaW5lIEhVQlBSRVEzX0ZMSVBfUEFSQU1FVEVSU181X19SRUZDWUNfUEVSX1BURV9HUk9VUF9GTElQX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfNV9fUkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9IVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfNgorI2RlZmluZSBIVUJQUkVRM19GTElQX1BBUkFNRVRFUlNfNl9fUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX0ZMSVBfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFUTNfRkxJUF9QQVJBTUVURVJTXzZfX1JFRkNZQ19QRVJfTUVUQV9DSFVOS19GTElQX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAzX2Rpc3BkZWNfaHVicHJldF9kaXNwZGVjCisvL0hVQlBSRVQzX0hVQlBSRVRfQ09OVFJPTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0NPTlRST0xfX0RFVF9CVUZfUExBTkUxX0JBU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9DT05UUk9MX19QQUNLXzNUTzJfRUxFTUVOVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX0FMUEhBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9DT05UUk9MX19DUk9TU0JBUl9TUkNfWV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19DQl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfQ09OVFJPTF9fQ1JPU1NCQVJfU1JDX0NSX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9DT05UUk9MX19IVUJQUkVUX0NPTlRST0xfU1BBUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0NPTlRST0xfX0RFVF9CVUZfUExBTkUxX0JBU0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0NPTlRST0xfX1BBQ0tfM1RPMl9FTEVNRU5UX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19BTFBIQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19ZX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19DQl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0NPTlRST0xfX0NST1NTQkFSX1NSQ19DUl9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0NPTlRST0xfX0hVQlBSRVRfQ09OVFJPTF9TUEFSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9IVUJQUkVUM19IVUJQUkVUX01FTV9QV1JfQ1RSTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX01FTV9QV1JfQ1RSTF9fREVUX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RFVF9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9MU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX01FTV9QV1JfQ1RSTF9fRE1ST0JfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX0RNUk9CX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9NRU1fUFdSX0NUUkxfX1BJWENEQ19NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX01FTV9QV1JfQ1RSTF9fUElYQ0RDX01FTV9QV1JfTFNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ERVRfTUVNX1BXUl9MU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ETVJPQl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19ETVJPQl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9DVFJMX19QSVhDRENfTUVNX1BXUl9MU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisvL0hVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVMKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fREVUX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfTUVNX1BXUl9TVEFUVVNfX0RNUk9CX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX01FTV9QV1JfU1RBVFVTX19QSVhDRENfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fREVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fRE1ST0JfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9NRU1fUFdSX1NUQVRVU19fUElYQ0RDX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDBfX1BJUEVfUkVBRF9MSU5FX0lOVEVSVkFMX0lOX05PTkFDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwwX19QSVBFX1JFQURfTElORV9WQkxBTktfTUFYSU1VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDBfX1BJUEVfUkVBRF9MSU5FX0lOVEVSVkFMX0lOX05PTkFDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDBfX1BJUEVfUkVBRF9MSU5FX1ZCTEFOS19NQVhJTVVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDEKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfX1BJUEVfUkVBRF9MSU5FX1JFUE9SVEVEX1dIRU5fUkVRX0RJU0FCTEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxX19IVUJQUkVUX1JFQURfTElORV9DVFJMMV9TUEFSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfX1BJUEVfUkVBRF9MSU5FX1JFUE9SVEVEX1dIRU5fUkVRX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfQ1RSTDFfX0hVQlBSRVRfUkVBRF9MSU5FX0NUUkwxX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkUwCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FMF9fUElQRV9SRUFEX0xJTkUwX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORTBfX1BJUEVfUkVBRF9MSU5FMF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FMF9fUElQRV9SRUFEX0xJTkUwX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FMF9fUElQRV9SRUFEX0xJTkUwX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0hVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FMQorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORTFfX1BJUEVfUkVBRF9MSU5FMV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkUxX19QSVBFX1JFQURfTElORTFfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORTFfX1BJUEVfUkVBRF9MSU5FMV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORTFfX1BJUEVfUkVBRF9MSU5FMV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfSU5URVJSVVBUX19QSVBFX1JFQURfTElORTBfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9JTlRFUlJVUFRfX1BJUEVfUkVBRF9MSU5FMV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9WQkxBTktfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUwX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX0lOVEVSUlVQVF9fUElQRV9SRUFEX0xJTkUxX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9IVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9WQUxVRQorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9WQUxVRV9fUElQRV9SRUFEX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfVkFMVUVfX1BJUEVfUkVBRF9MSU5FX1NOQVBTSE9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9WQUxVRV9fUElQRV9SRUFEX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9WQUxVRV9fUElQRV9SRUFEX0xJTkVfU05BUFNIT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9IVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9TVEFUVVMKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfVkJMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUwX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMF9PVVRTSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgSFVCUFJFVDNfSFVCUFJFVF9SRUFEX0xJTkVfU1RBVFVTX19QSVBFX1JFQURfTElORTFfSU5TSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhVQlBSRVQzX0hVQlBSRVRfUkVBRF9MSU5FX1NUQVRVU19fUElQRV9SRUFEX0xJTkUxX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9WQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMF9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMF9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMV9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIVUJQUkVUM19IVUJQUkVUX1JFQURfTElORV9TVEFUVVNfX1BJUEVfUkVBRF9MSU5FMV9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjYnVicDNfZGlzcGRlY19jdXJzb3IwX2Rpc3BkZWMKKy8vQ1VSU09SMF8zX0NVUlNPUl9DT05UUk9MCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl8yWF9NQUdOSUZZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9TTk9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfU1lTVEVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1BJVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfWFlfUE9TSVRJT05fUk9UQVRJT05fQU5EX01JUlJPUklOR19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9MSU5FU19QRVJfQ0hVTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfQ09OVFJPTF9fQ1VSU09SX1BFUkZNT05fTEFURU5DWV9NRUFTVVJFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9DT05UUk9MX19DVVJTT1JfUEVSRk1PTl9MQVRFTkNZX01FQVNVUkVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl8yWF9NQUdOSUZZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9UTVpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9TTk9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9TWVNURU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9QSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9YWV9QT1NJVElPTl9ST1RBVElPTl9BTkRfTUlSUk9SSU5HX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9MSU5FU19QRVJfQ0hVTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9QRVJGTU9OX0xBVEVOQ1lfTUVBU1VSRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0NPTlRST0xfX0NVUlNPUl9QRVJGTU9OX0xBVEVOQ1lfTUVBU1VSRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9DVVJTT1IwXzNfQ1VSU09SX1NVUkZBQ0VfQUREUkVTUworI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19fQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQ1VSU09SMF8zX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdIX19DVVJTT1JfU1VSRkFDRV9BRERSRVNTX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9TVVJGQUNFX0FERFJFU1NfSElHSF9fQ1VSU09SX1NVUkZBQ0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ1VSU09SMF8zX0NVUlNPUl9TSVpFCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfU0laRV9fQ1VSU09SX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX1NJWkVfX0NVUlNPUl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfU0laRV9fQ1VSU09SX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfU0laRV9fQ1VSU09SX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisvL0NVUlNPUjBfM19DVVJTT1JfUE9TSVRJT04KKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9QT1NJVElPTl9fQ1VSU09SX1lfUE9TSVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfUE9TSVRJT05fX0NVUlNPUl9YX1BPU0lUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9QT1NJVElPTl9fQ1VSU09SX1lfUE9TSVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9QT1NJVElPTl9fQ1VSU09SX1hfUE9TSVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vQ1VSU09SMF8zX0NVUlNPUl9IT1RfU1BPVAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0hPVF9TUE9UX19DVVJTT1JfSE9UX1NQT1RfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9IT1RfU1BPVF9fQ1VSU09SX0hPVF9TUE9UX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0hPVF9TUE9UX19DVVJTT1JfSE9UX1NQT1RfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX0hPVF9TUE9UX19DVVJTT1JfSE9UX1NQT1RfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9DVVJTT1IwXzNfQ1VSU09SX1NURVJFT19DT05UUk9MCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfU1RFUkVPX0NPTlRST0xfX0NVUlNPUl9TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfUFJJTUFSWV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9TVEVSRU9fQ09OVFJPTF9fQ1VSU09SX1NFQ09OREFSWV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfUFJJTUFSWV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkYwTAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX1NURVJFT19DT05UUk9MX19DVVJTT1JfU0VDT05EQVJZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkMwMDAwTAorLy9DVVJTT1IwXzNfQ1VSU09SX0RTVF9PRkZTRVQKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9EU1RfT0ZGU0VUX19DVVJTT1JfRFNUX1hfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfRFNUX09GRlNFVF9fQ1VSU09SX0RTVF9YX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL0NVUlNPUjBfM19DVVJTT1JfTUVNX1BXUl9DVFJMCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzNfQ1VSU09SX01FTV9QV1JfQ1RSTF9fQ1JPQl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9NRU1fUFdSX0NUUkxfX0NST0JfTUVNX1BXUl9MU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfTUVNX1BXUl9DVFJMX19DUk9CX01FTV9QV1JfTFNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisvL0NVUlNPUjBfM19DVVJTT1JfTUVNX1BXUl9TVEFUVVMKKyNkZWZpbmUgQ1VSU09SMF8zX0NVUlNPUl9NRU1fUFdSX1NUQVRVU19fQ1JPQl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfM19DVVJTT1JfTUVNX1BXUl9TVEFUVVNfX0NST0JfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0NVUlNPUjBfM19ETURBVEFfQUREUkVTU19ISUdICisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1NZU1RFTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfQUREUkVTU19ISUdIX19ETURBVEFfU05PT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgQ1VSU09SMF8zX0RNREFUQV9BRERSRVNTX0hJR0hfX0RNREFUQV9UTVpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX0FERFJFU1NfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1NZU1RFTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0FERFJFU1NfSElHSF9fRE1EQVRBX1RNWl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9DVVJTT1IwXzNfRE1EQVRBX0FERFJFU1NfTE9XCisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfQUREUkVTU19MT1dfX0RNREFUQV9BRERSRVNTX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0FERFJFU1NfTE9XX19ETURBVEFfQUREUkVTU19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9DVVJTT1IwXzNfRE1EQVRBX0NOVEwKKyNkZWZpbmUgQ1VSU09SMF8zX0RNREFUQV9DTlRMX19ETURBVEFfVVBEQVRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfQ05UTF9fRE1EQVRBX1JFUEVBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0NOVExfX0RNREFUQV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ1VSU09SMF8zX0RNREFUQV9DTlRMX19ETURBVEFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0NOVExfX0RNREFUQV9VUERBVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0NOVExfX0RNREFUQV9SRVBFQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0NOVExfX0RNREFUQV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX0NOVExfX0RNREFUQV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkYwMDAwTAorLy9DVVJTT1IwXzNfRE1EQVRBX1FPU19DTlRMCisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfUU9TX0NOVExfX0RNREFUQV9RT1NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfUU9TX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ1VSU09SMF8zX0RNREFUQV9RT1NfQ05UTF9fRE1EQVRBX0RMX0RFTFRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfUU9TX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfUU9TX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1FPU19DTlRMX19ETURBVEFfRExfREVMVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DVVJTT1IwXzNfRE1EQVRBX1NUQVRVUworI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1NUQVRVU19fRE1EQVRBX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8zX0RNREFUQV9TVEFUVVNfX0RNREFUQV9VTkRFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfU1RBVFVTX19ETURBVEFfVU5ERVJGTE9XX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1NUQVRVU19fRE1EQVRBX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1NUQVRVU19fRE1EQVRBX1VOREVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1NUQVRVU19fRE1EQVRBX1VOREVSRkxPV19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9DVVJTT1IwXzNfRE1EQVRBX1NXX0NOVEwKKyNkZWZpbmUgQ1VSU09SMF8zX0RNREFUQV9TV19DTlRMX19ETURBVEFfU1dfVVBEQVRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1JFUEVBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1NXX0NOVExfX0RNREFUQV9TV19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1VQREFURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1JFUEVBVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENVUlNPUjBfM19ETURBVEFfU1dfQ05UTF9fRE1EQVRBX1NXX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL0NVUlNPUjBfM19ETURBVEFfU1dfREFUQQorI2RlZmluZSBDVVJTT1IwXzNfRE1EQVRBX1NXX0RBVEFfX0RNREFUQV9TV19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSU09SMF8zX0RNREFUQV9TV19EQVRBX19ETURBVEFfU1dfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2J1YnAzX2Rpc3BkZWNfaHVicF9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT04xMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OMTBfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9OMTBfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTBfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjEwX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xMF9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMF9kaXNwZGVjX2RwcF90b3BfZGlzcGRlYworLy9EUFBfVE9QMF9EUFBfQ09OVFJPTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ09OVFJPTF9fRFBQX0NMT0NLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RQUENMS19HX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQUF9UT1AwX0RQUF9DT05UUk9MX19EUFBDTEtfR19EWU5fR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ09OVFJPTF9fRFBQQ0xLX0dfRFNDTF9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfQUxQSEFfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQUF9UT1AwX0RQUF9DT05UUk9MX19EUFBDTEtfUl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RJU1BDTEtfUl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ09OVFJPTF9fRElTUENMS19HX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQUF9UT1AwX0RQUF9DT05UUk9MX19EUFBfVEVTVF9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RQUF9DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RQUENMS19HX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RQUENMS19HX0RZTl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfQUxQSEFfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RQUENMS19SX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RJU1BDTEtfUl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RJU1BDTEtfR19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NPTlRST0xfX0RQUF9URVNUX0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBQX1RPUDBfRFBQX1NPRlRfUkVTRVQKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX1NPRlRfUkVTRVRfX0NOVkNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUF9UT1AwX0RQUF9TT0ZUX1JFU0VUX19EU0NMX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUFBfVE9QMF9EUFBfU09GVF9SRVNFVF9fQ01fU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX1NPRlRfUkVTRVRfX09CVUZfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQUF9UT1AwX0RQUF9TT0ZUX1JFU0VUX19DTlZDX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQUF9UT1AwX0RQUF9TT0ZUX1JFU0VUX19EU0NMX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQUF9UT1AwX0RQUF9TT0ZUX1JFU0VUX19DTV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQUF9UT1AwX0RQUF9TT0ZUX1JFU0VUX19PQlVGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RQUF9UT1AwX0RQUF9DUkNfVkFMX1JfRworI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NSQ19WQUxfUl9HX19EUFBfQ1JDX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUFBfVE9QMF9EUFBfQ1JDX1ZBTF9CX0EKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUF9UT1AwX0RQUF9DUkNfVkFMX0JfQV9fRFBQX0NSQ19BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0FMUEhBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBQX1RPUDBfRFBQX0NSQ19DVFJMCisjZGVmaW5lIERQUF9UT1AwX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX09ORV9TSE9UX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQUF9UT1AwX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ180MjBfQ09NUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX0NVUlNPUl9CSVRTX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQUF9UT1AwX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX0lOVEVSTEFDRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQUF9UT1AwX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19QSVhfRk9STUFUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0ZPUk1BVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFBQX1RPUDBfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfT05FX1NIT1RfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfNDIwX0NPTVBfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0JJVFNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfSU5URVJMQUNFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfUElYX0ZPUk1BVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0ZPUk1BVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUFBfVE9QMF9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUFBfVE9QMF9IT1NUX1JFQURfQ09OVFJPTAorI2RlZmluZSBEUFBfVE9QMF9IT1NUX1JFQURfQ09OVFJPTF9fSE9TVF9SRUFEX1JBVEVfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQX1RPUDBfSE9TVF9SRUFEX0NPTlRST0xfX0hPU1RfUkVBRF9SQVRFX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAwX2Rpc3BkZWNfY252Y19jZmdfZGlzcGRlYworLy9DTlZDX0NGRzBfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVAorI2RlZmluZSBDTlZDX0NGRzBfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9fQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcwX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVRfX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKy8vQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MCisjZGVmaW5lIENOVkNfQ0ZHMF9GT1JNQVRfQ09OVFJPTF9fRk9STUFUX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzBfRk9STUFUX0NPTlRST0xfX0ZPUk1BVF9DTlYxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19BTFBIQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENOVkNfQ0ZHMF9GT1JNQVRfQ09OVFJPTF9fQ05WQ19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTlZDX0NGRzBfRk9STUFUX0NPTlRST0xfX0NOVkNfQllQQVNTX01TQl9BTElHTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzBfRk9STUFUX0NPTlRST0xfX0NMQU1QX1BPU0lUSVZFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIENOVkNfQ0ZHMF9GT1JNQVRfQ09OVFJPTF9fQ05WQ19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19GT1JNQVRfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19GT1JNQVRfQ05WMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19BTFBIQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19DTlZDX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19DTlZDX0JZUEFTU19NU0JfQUxJR05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQ05WQ19DRkcwX0ZPUk1BVF9DT05UUk9MX19DTlZDX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vQ05WQ19DRkcwX0ZDTlZfRlBfQklBU19SCisjZGVmaW5lIENOVkNfQ0ZHMF9GQ05WX0ZQX0JJQVNfUl9fRkNOVl9GUF9CSUFTX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzBfRkNOVl9GUF9CSUFTX1JfX0ZDTlZfRlBfQklBU19SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9DTlZDX0NGRzBfRkNOVl9GUF9CSUFTX0cKKyNkZWZpbmUgQ05WQ19DRkcwX0ZDTlZfRlBfQklBU19HX19GQ05WX0ZQX0JJQVNfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMF9GQ05WX0ZQX0JJQVNfR19fRkNOVl9GUF9CSUFTX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL0NOVkNfQ0ZHMF9GQ05WX0ZQX0JJQVNfQgorI2RlZmluZSBDTlZDX0NGRzBfRkNOVl9GUF9CSUFTX0JfX0ZDTlZfRlBfQklBU19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcwX0ZDTlZfRlBfQklBU19CX19GQ05WX0ZQX0JJQVNfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcwX0ZDTlZfRlBfU0NBTEVfUgorI2RlZmluZSBDTlZDX0NGRzBfRkNOVl9GUF9TQ0FMRV9SX19GQ05WX0ZQX1NDQUxFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcwX0ZDTlZfRlBfU0NBTEVfUl9fRkNOVl9GUF9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcwX0ZDTlZfRlBfU0NBTEVfRworI2RlZmluZSBDTlZDX0NGRzBfRkNOVl9GUF9TQ0FMRV9HX19GQ05WX0ZQX1NDQUxFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcwX0ZDTlZfRlBfU0NBTEVfR19fRkNOVl9GUF9TQ0FMRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcwX0ZDTlZfRlBfU0NBTEVfQgorI2RlZmluZSBDTlZDX0NGRzBfRkNOVl9GUF9TQ0FMRV9CX19GQ05WX0ZQX1NDQUxFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcwX0ZDTlZfRlBfU0NBTEVfQl9fRkNOVl9GUF9TQ0FMRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0NPTlRST0wKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0NPTlRST0xfX0NPTE9SX0tFWUVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMF9DT0xPUl9LRVlFUl9DT05UUk9MX19DT0xPUl9LRVlFUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDTlZDX0NGRzBfQ09MT1JfS0VZRVJfQ09OVFJPTF9fQ09MT1JfS0VZRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDTlZDX0NGRzBfQ09MT1JfS0VZRVJfQ09OVFJPTF9fQ09MT1JfS0VZRVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9DTlZDX0NGRzBfQ09MT1JfS0VZRVJfQUxQSEEKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMF9DT0xPUl9LRVlFUl9BTFBIQV9fQ09MT1JfS0VZRVJfQUxQSEFfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkcwX0NPTE9SX0tFWUVSX1JFRAorI2RlZmluZSBDTlZDX0NGRzBfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX1JFRF9fQ09MT1JfS0VZRVJfUkVEX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzBfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTlZDX0NGRzBfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTlZDX0NGRzBfQ09MT1JfS0VZRVJfR1JFRU4KKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMF9DT0xPUl9LRVlFUl9HUkVFTl9fQ09MT1JfS0VZRVJfR1JFRU5fSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0JMVUUKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMF9DT0xPUl9LRVlFUl9CTFVFX19DT0xPUl9LRVlFUl9CTFVFX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkcwX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkcwX0FMUEhBXzJCSVRfTFVUCisjZGVmaW5lIENOVkNfQ0ZHMF9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzBfQUxQSEFfMkJJVF9MVVRfX0FMUEhBXzJCSVRfTFVUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ05WQ19DRkcwX0FMUEhBXzJCSVRfTFVUX19BTFBIQV8yQklUX0xVVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzBfQUxQSEFfMkJJVF9MVVRfX0FMUEhBXzJCSVRfTFVUM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIENOVkNfQ0ZHMF9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENOVkNfQ0ZHMF9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIENOVkNfQ0ZHMF9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIENOVkNfQ0ZHMF9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMF9kaXNwZGVjX2NudmNfY3VyX2Rpc3BkZWMKKy8vQ05WQ19DVVIwX0NVUlNPUjBfQ09OVFJPTAorI2RlZmluZSBDTlZDX0NVUjBfQ1VSU09SMF9DT05UUk9MX19DVVIwX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DVVIwX0NVUlNPUjBfQ09OVFJPTF9fQ1VSMF9FWFBBTlNJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYX0lOVl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDTlZDX0NVUjBfQ1VSU09SMF9DT05UUk9MX19DVVIwX1JPTV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQ05WQ19DVVIwX0NVUlNPUjBfQ09OVFJPTF9fQ1VSMF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYRUxfQUxQSEFfTU9EX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBDTlZDX0NVUjBfQ1VSU09SMF9DT05UUk9MX19DVVIwX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfX0NVUjBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfX0NVUjBfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYX0lOVl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUk9NX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfX0NVUjBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYRUxfQUxQSEFfTU9EX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTlRST0xfX0NVUjBfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0NOVkNfQ1VSMF9DVVJTT1IwX0NPTE9SMAorI2RlZmluZSBDTlZDX0NVUjBfQ1VSU09SMF9DT0xPUjBfX0NVUjBfQ09MT1IwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DVVIwX0NVUlNPUjBfQ09MT1IwX19DVVIwX0NPTE9SMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vQ05WQ19DVVIwX0NVUlNPUjBfQ09MT1IxCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0NPTE9SMV9fQ1VSMF9DT0xPUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NVUjBfQ1VSU09SMF9DT0xPUjFfX0NVUjBfQ09MT1IxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9DTlZDX0NVUjBfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfU0NBTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NVUjBfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTX19DVVIwX0ZQX0JJQVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfU0NBTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENOVkNfQ1VSMF9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfQklBU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMF9kaXNwZGVjX2RzY2xfZGlzcGRlYworLy9EU0NMMF9TQ0xfQ09FRl9SQU1fVEFQX1NFTEVDVAorI2RlZmluZSBEU0NMMF9TQ0xfQ09FRl9SQU1fVEFQX1NFTEVDVF9fU0NMX0NPRUZfUkFNX1RBUF9QQUlSX0lEWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wwX1NDTF9DT0VGX1JBTV9UQVBfU0VMRUNUX19TQ0xfQ09FRl9SQU1fRklMVEVSX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDBfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9UQVBfUEFJUl9JRFhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDBfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFNDTDBfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9GSUxURVJfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKy8vRFNDTDBfU0NMX0NPRUZfUkFNX1RBUF9EQVRBCisjZGVmaW5lIERTQ0wwX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1NDTF9DT0VGX1JBTV9FVkVOX1RBUF9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFNDTDBfU0NMX0NPRUZfUkFNX1RBUF9EQVRBX19TQ0xfQ09FRl9SQU1fT0REX1RBUF9DT0VGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMF9TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1NDTF9DT0VGX1JBTV9PRERfVEFQX0NPRUZfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERTQ0wwX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wwX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERTQ0wwX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisjZGVmaW5lIERTQ0wwX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RTQ0wwX1NDTF9NT0RFCisjZGVmaW5lIERTQ0wwX1NDTF9NT0RFX19EU0NMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9TQ0xfTU9ERV9fU0NMX0NPRUZfUkFNX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDBfU0NMX01PREVfX1NDTF9DT0VGX1JBTV9TRUxFQ1RfQ1VSUkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0wwX1NDTF9NT0RFX19TQ0xfQ0hST01BX0NPRUZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDBfU0NMX01PREVfX1NDTF9BTFBIQV9DT0VGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEU0NMMF9TQ0xfTU9ERV9fU0NMX0NPRUZfUkFNX1NFTEVDVF9SRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wwX1NDTF9NT0RFX19EU0NMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERTQ0wwX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0wwX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX0NVUlJFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERTQ0wwX1NDTF9NT0RFX19TQ0xfQ0hST01BX0NPRUZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERTQ0wwX1NDTF9NT0RFX19TQ0xfQUxQSEFfQ09FRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERTQ0wwX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX1JEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RTQ0wwX1NDTF9UQVBfQ09OVFJPTAorI2RlZmluZSBEU0NMMF9TQ0xfVEFQX0NPTlRST0xfX1NDTF9WX05VTV9UQVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wwX1NDTF9UQVBfQ09OVFJPTF9fU0NMX1ZfTlVNX1RBUFNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMMF9TQ0xfVEFQX0NPTlRST0xfX1NDTF9IX05VTV9UQVBTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDBfU0NMX1RBUF9DT05UUk9MX19TQ0xfVl9OVU1fVEFQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFNDTDBfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFNDTDBfU0NMX1RBUF9DT05UUk9MX19TQ0xfVl9OVU1fVEFQU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRFNDTDBfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKy8vRFNDTDBfRFNDTF9DT05UUk9MCisjZGVmaW5lIERTQ0wwX0RTQ0xfQ09OVFJPTF9fU0NMX0JPVU5EQVJZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9EU0NMX0NPTlRST0xfX1NDTF9CT1VOREFSWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NMMF9EU0NMXzJUQVBfQ09OVFJPTAorI2RlZmluZSBEU0NMMF9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfRFNDTF8yVEFQX0NPTlRST0xfX1NDTF9IXzJUQVBfU0hBUlBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wwX0RTQ0xfMlRBUF9DT05UUk9MX19TQ0xfSF8yVEFQX1NIQVJQX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMMF9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wwX0RTQ0xfMlRBUF9DT05UUk9MX19TQ0xfVl8yVEFQX1NIQVJQX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFNDTDBfRFNDTF8yVEFQX0NPTlRST0xfX1NDTF9WXzJUQVBfU0hBUlBfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMF9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NMMF9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9TSEFSUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NMMF9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9TSEFSUF9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEU0NMMF9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEU0NMMF9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9TSEFSUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEU0NMMF9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9TSEFSUF9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorLy9EU0NMMF9TQ0xfTUFOVUFMX1JFUExJQ0FURV9DT05UUk9MCisjZGVmaW5lIERTQ0wwX1NDTF9NQU5VQUxfUkVQTElDQVRFX0NPTlRST0xfX1NDTF9WX01BTlVBTF9SRVBMSUNBVEVfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9TQ0xfTUFOVUFMX1JFUExJQ0FURV9DT05UUk9MX19TQ0xfSF9NQU5VQUxfUkVQTElDQVRFX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDBfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9fU0NMX1ZfTUFOVUFMX1JFUExJQ0FURV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDTDBfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9fU0NMX0hfTUFOVUFMX1JFUExJQ0FURV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKy8vRFNDTDBfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPCisjZGVmaW5lIERTQ0wwX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19fU0NMX0hfU0NBTEVfUkFUSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fX1NDTF9IX1NDQUxFX1JBVElPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRkZGTAorLy9EU0NMMF9TQ0xfSE9SWl9GSUxURVJfSU5JVAorI2RlZmluZSBEU0NMMF9TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9GUkFDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfU0NMX0hPUlpfRklMVEVSX0lOSVRfX1NDTF9IX0lOSVRfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMF9TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9GUkFDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMF9TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMF9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQworI2RlZmluZSBEU0NMMF9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQ19fU0NMX0hfU0NBTEVfUkFUSU9fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPX0NfX1NDTF9IX1NDQUxFX1JBVElPX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKy8vRFNDTDBfU0NMX0hPUlpfRklMVEVSX0lOSVRfQworI2RlZmluZSBEU0NMMF9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0ZSQUNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfU0NMX0hPUlpfRklMVEVSX0lOSVRfQ19fU0NMX0hfSU5JVF9JTlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMF9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0ZSQUNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMF9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0lOVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMF9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU8KKyNkZWZpbmUgRFNDTDBfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX19TQ0xfVl9TQ0FMRV9SQVRJT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9TQ0FMRV9SQVRJT19fU0NMX1ZfU0NBTEVfUkFUSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGRkZMCisvL0RTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9JTklUCisjZGVmaW5lIERTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0ZSQUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9fU0NMX1ZfSU5JVF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0ZSQUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIERTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL0RTQ0wwX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVAorI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfRlJBQ19CT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQk9UX19TQ0xfVl9JTklUX0lOVF9CT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfRlJBQ19CT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfSU5UX0JPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMF9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQworI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQ19fU0NMX1ZfU0NBTEVfUkFUSU9fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0NfX1NDTF9WX1NDQUxFX1JBVElPX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKy8vRFNDTDBfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQworI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0ZSQUNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQ19fU0NMX1ZfSU5JVF9JTlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0ZSQUNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0lOVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQworI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9GUkFDX0JPVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQk9UX0NfX1NDTF9WX0lOSVRfSU5UX0JPVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9GUkFDX0JPVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMF9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9JTlRfQk9UX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMF9TQ0xfQkxBQ0tfT0ZGU0VUCisjZGVmaW5lIERTQ0wwX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfUkdCX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9TQ0xfQkxBQ0tfT0ZGU0VUX19TQ0xfQkxBQ0tfT0ZGU0VUX0NCQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wwX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfUkdCX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0wwX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfQ0JDUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0wwX0RTQ0xfVVBEQVRFCisjZGVmaW5lIERTQ0wwX0RTQ0xfVVBEQVRFX19TQ0xfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9EU0NMX1VQREFURV9fU0NMX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NMMF9EU0NMX0FVVE9DQUwKKyNkZWZpbmUgRFNDTDBfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wwX0RTQ0xfQVVUT0NBTF9fQVVUT0NBTF9OVU1fUElQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMMF9EU0NMX0FVVE9DQUxfX0FVVE9DQUxfUElQRV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDBfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDBfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX05VTV9QSVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX1BJUEVfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRFNDTDBfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVAorI2RlZmluZSBEU0NMMF9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fUklHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVF9fRVhUX09WRVJTQ0FOX0xFRlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMF9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fUklHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMMF9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fTEVGVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMMF9EU0NMX0VYVF9PVkVSU0NBTl9UT1BfQk9UVE9NCisjZGVmaW5lIERTQ0wwX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9CT1RUT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9EU0NMX0VYVF9PVkVSU0NBTl9UT1BfQk9UVE9NX19FWFRfT1ZFUlNDQU5fVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wwX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9CT1RUT01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIERTQ0wwX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9UT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL0RTQ0wwX09UR19IX0JMQU5LCisjZGVmaW5lIERTQ0wwX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9PVEdfSF9CTEFOS19fT1RHX0hfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wwX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wwX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RTQ0wwX09UR19WX0JMQU5LCisjZGVmaW5lIERTQ0wwX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9PVEdfVl9CTEFOS19fT1RHX1ZfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wwX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wwX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RTQ0wwX1JFQ09VVF9TVEFSVAorI2RlZmluZSBEU0NMMF9SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfUkVDT1VUX1NUQVJUX19SRUNPVVRfU1RBUlRfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMF9SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMMF9SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMMF9SRUNPVVRfU0laRQorI2RlZmluZSBEU0NMMF9SRUNPVVRfU0laRV9fUkVDT1VUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfUkVDT1VUX1NJWkVfX1JFQ09VVF9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMF9SRUNPVVRfU0laRV9fUkVDT1VUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEU0NMMF9SRUNPVVRfU0laRV9fUkVDT1VUX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EU0NMMF9NUENfU0laRQorI2RlZmluZSBEU0NMMF9NUENfU0laRV9fTVBDX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfTVBDX1NJWkVfX01QQ19IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMF9NUENfU0laRV9fTVBDX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEU0NMMF9NUENfU0laRV9fTVBDX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EU0NMMF9MQl9EQVRBX0ZPUk1BVAorI2RlZmluZSBEU0NMMF9MQl9EQVRBX0ZPUk1BVF9fSU5URVJMRUFWRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfTEJfREFUQV9GT1JNQVRfX0FMUEhBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wwX0xCX0RBVEFfRk9STUFUX19JTlRFUkxFQVZFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ0wwX0xCX0RBVEFfRk9STUFUX19BTFBIQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0RTQ0wwX0xCX01FTU9SWV9DVFJMCisjZGVmaW5lIERTQ0wwX0xCX01FTU9SWV9DVFJMX19NRU1PUllfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9MQl9NRU1PUllfQ1RSTF9fTEJfTUFYX1BBUlRJVElPTlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDBfTEJfTUVNT1JZX0NUUkxfX0xCX05VTV9QQVJUSVRJT05TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMF9MQl9NRU1PUllfQ1RSTF9fTEJfTlVNX1BBUlRJVElPTlNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wwX0xCX01FTU9SWV9DVFJMX19NRU1PUllfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERTQ0wwX0xCX01FTU9SWV9DVFJMX19MQl9NQVhfUEFSVElUSU9OU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERTQ0wwX0xCX01FTU9SWV9DVFJMX19MQl9OVU1fUEFSVElUSU9OU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisjZGVmaW5lIERTQ0wwX0xCX01FTU9SWV9DVFJMX19MQl9OVU1fUEFSVElUSU9OU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0YwMDAwMDBMCisvL0RTQ0wwX0xCX1ZfQ09VTlRFUgorI2RlZmluZSBEU0NMMF9MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfTEJfVl9DT1VOVEVSX19WX0NPVU5URVJfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMF9MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMMF9MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMMF9EU0NMX01FTV9QV1JfQ1RSTAorI2RlZmluZSBEU0NMMF9EU0NMX01FTV9QV1JfQ1RSTF9fTFVUX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0wwX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HMV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NMMF9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzFfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wwX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HMl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NMMF9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzNfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERTQ0wwX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HNF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEU0NMMF9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzVfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERTQ0wwX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HNV9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMF9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzZfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0wwX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9NRU1fUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cxX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cxX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c1X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c1X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX01FTV9QV1JfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVUworI2RlZmluZSBEU0NMMF9EU0NMX01FTV9QV1JfU1RBVFVTX19MVVRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzFfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0wwX0RTQ0xfTUVNX1BXUl9TVEFUVVNfX0xCX0cyX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NMMF9EU0NMX01FTV9QV1JfU1RBVFVTX19MQl9HM19NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wwX0RTQ0xfTUVNX1BXUl9TVEFUVVNfX0xCX0c1X01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NMMF9EU0NMX01FTV9QV1JfU1RBVFVTX19MQl9HNl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVU19fTFVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzFfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzJfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzNfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzRfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzVfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgRFNDTDBfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzZfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRFNDTDBfT0JVRl9DT05UUk9MCisjZGVmaW5lIERTQ0wwX09CVUZfQ09OVFJPTF9fT0JVRl9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMF9PQlVGX0NPTlRST0xfX09CVUZfVVNFX0ZVTExfQlVGRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDTDBfT0JVRl9DT05UUk9MX19PQlVGX0lTX0hBTEZfUkVDT1VUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0wwX09CVUZfQ09OVFJPTF9fT0JVRl9PVVRfSE9MRF9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDTDBfT0JVRl9DT05UUk9MX19PQlVGX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDTDBfT0JVRl9DT05UUk9MX19PQlVGX1VTRV9GVUxMX0JVRkZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDTDBfT0JVRl9DT05UUk9MX19PQlVGX0lTX0hBTEZfUkVDT1VUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFNDTDBfT0JVRl9DT05UUk9MX19PQlVGX09VVF9IT0xEX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFNDTDBfT0JVRl9NRU1fUFdSX0NUUkwKKyNkZWZpbmUgRFNDTDBfT0JVRl9NRU1fUFdSX0NUUkxfX09CVUZfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wwX09CVUZfTUVNX1BXUl9DVFJMX19PQlVGX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEU0NMMF9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDBfT0JVRl9NRU1fUFdSX0NUUkxfX09CVUZfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMF9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEU0NMMF9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEU0NMMF9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NMMF9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDBfZGlzcGRlY19jbV9kaXNwZGVjCisvL0NNMF9DTV9DT05UUk9MCisjZGVmaW5lIENNMF9DTV9DT05UUk9MX19DTV9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQ09OVFJPTF9fQ01fVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00wX0NNX0NPTlRST0xfX0NNX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ00wX0NNX0NPTlRST0xfX0NNX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQ00wX0NNX0lDU0NfQ09OVFJPTAorI2RlZmluZSBDTTBfQ01fSUNTQ19DT05UUk9MX19DTV9JQ1NDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQ09OVFJPTF9fQ01fSUNTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00wX0NNX0lDU0NfQzExX0MxMgorI2RlZmluZSBDTTBfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQzExX0MxMl9fQ01fSUNTQ19DMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fSUNTQ19DMTNfQzE0CisjZGVmaW5lIENNMF9DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fSUNTQ19DMTNfQzE0X19DTV9JQ1NDX0MxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9JQ1NDX0MyMV9DMjIKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9JQ1NDX0MyMV9DMjJfX0NNX0lDU0NfQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0lDU0NfQzIzX0MyNAorI2RlZmluZSBDTTBfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQzIzX0MyNF9fQ01fSUNTQ19DMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fSUNTQ19DMzFfQzMyCisjZGVmaW5lIENNMF9DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fSUNTQ19DMzFfQzMyX19DTV9JQ1NDX0MzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9JQ1NDX0MzM19DMzQKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9JQ1NDX0MzM19DMzRfX0NNX0lDU0NfQzM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0lDU0NfQl9DMTFfQzEyCisjZGVmaW5lIENNMF9DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fSUNTQ19CX0MxMV9DMTJfX0NNX0lDU0NfQl9DMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9JQ1NDX0JfQzEzX0MxNAorI2RlZmluZSBDTTBfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQl9DMTNfQzE0X19DTV9JQ1NDX0JfQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fSUNTQ19CX0MyMV9DMjIKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9JQ1NDX0JfQzIxX0MyMl9fQ01fSUNTQ19CX0MyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0lDU0NfQl9DMjNfQzI0CisjZGVmaW5lIENNMF9DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fSUNTQ19CX0MyM19DMjRfX0NNX0lDU0NfQl9DMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9JQ1NDX0JfQzMxX0MzMgorI2RlZmluZSBDTTBfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQl9DMzFfQzMyX19DTV9JQ1NDX0JfQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fSUNTQ19CX0MzM19DMzQKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9JQ1NDX0JfQzMzX0MzNF9fQ01fSUNTQ19CX0MzNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0dBTVVUX1JFTUFQX0NPTlRST0wKKyNkZWZpbmUgQ00wX0NNX0dBTVVUX1JFTUFQX0NPTlRST0xfX0NNX0dBTVVUX1JFTUFQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DT05UUk9MX19DTV9HQU1VVF9SRU1BUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0NNMF9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0CisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQzEzX0MxNF9fQ01fR0FNVVRfUkVNQVBfQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQzIxX0MyMl9fQ01fR0FNVVRfUkVNQVBfQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0CisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQzI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQzMxX0MzMl9fQ01fR0FNVVRfUkVNQVBfQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0CisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQzMzX0MzNF9fQ01fR0FNVVRfUkVNQVBfQzM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTIKKyNkZWZpbmUgQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTJfX0NNX0dBTVVUX1JFTUFQX0JfQzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNF9fQ01fR0FNVVRfUkVNQVBfQl9DMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9CX0MyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjQKKyNkZWZpbmUgQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjRfX0NNX0dBTVVUX1JFTUFQX0JfQzI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMgorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMl9fQ01fR0FNVVRfUkVNQVBfQl9DMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0CisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9CX0MzNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9CSUFTX0NSX1IKKyNkZWZpbmUgQ00wX0NNX0JJQVNfQ1JfUl9fQ01fQklBU19DUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CSUFTX0NSX1JfX0NNX0JJQVNfQ1JfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMF9DTV9CSUFTX1lfR19DQl9CCisjZGVmaW5lIENNMF9DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX1lfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQklBU19ZX0dfQ0JfQl9fQ01fQklBU19DQl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX1lfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX0NCX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9ER0FNX0NPTlRST0wKKyNkZWZpbmUgQ00wX0NNX0RHQU1fQ09OVFJPTF9fQ01fREdBTV9MVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX0NPTlRST0xfX0NNX0RHQU1fTFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL0NNMF9DTV9ER0FNX0xVVF9JTkRFWAorI2RlZmluZSBDTTBfQ01fREdBTV9MVVRfSU5ERVhfX0NNX0RHQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fTFVUX0lOREVYX19DTV9ER0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKy8vQ00wX0NNX0RHQU1fTFVUX0RBVEEKKyNkZWZpbmUgQ00wX0NNX0RHQU1fTFVUX0RBVEFfX0NNX0RHQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX0xVVF9EQVRBX19DTV9ER0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL0NNMF9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLCisjZGVmaW5lIENNMF9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00wX0NNX0RHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0RHQU1fQ09ORklHX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNMF9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9ER0FNX1dSSVRFX0xVVF9CQVNFX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBDTTBfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTBfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9DT05GSUdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBDTTBfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9XUklURV9MVVRfQkFTRV9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9DTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQgorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfRworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTBfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQgorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00wX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMF9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0cKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0cKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUgorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUgorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzEKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNQorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fREdBTV9SQU1BX1JFR0lPTl82XzcKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85CisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1CisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTBfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfRworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0dfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00wX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1IKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0IKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0IKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfRworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfRworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMQorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81CisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzZfNworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fREdBTV9SQU1CX1JFR0lPTl84XzkKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTEKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTUKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0JMTkRHQU1fQ09OVFJPTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9DT05UUk9MX19DTV9CTE5ER0FNX0xVVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fQ09OVFJPTF9fQ01fQkxOREdBTV9MVVRfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00wX0NNX0JMTkRHQU1fTFVUX0lOREVYCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX0xVVF9JTkRFWF9fQ01fQkxOREdBTV9MVVRfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9MVVRfSU5ERVhfX0NNX0JMTkRHQU1fTFVUX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorLy9DTTBfQ01fQkxOREdBTV9MVVRfREFUQQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9MVVRfREFUQV9fQ01fQkxOREdBTV9MVVRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fTFVUX0RBVEFfX0NNX0JMTkRHQU1fTFVUX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00wX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0sKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9CTE5ER0FNX0xVVF9XUklURV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fQkxOREdBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfR19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9IRFJfTVVMVF9DT0VGCisjZGVmaW5lIENNMF9DTV9IRFJfTVVMVF9DT0VGX19DTV9IRFJfTVVMVF9DT0VGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fSERSX01VTFRfQ09FRl9fQ01fSERSX01VTFRfQ09FRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9DTTBfQ01fTUVNX1BXUl9DVFJMCisjZGVmaW5lIENNMF9DTV9NRU1fUFdSX0NUUkxfX1NIQVJFRF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ00wX0NNX01FTV9QV1JfQ1RSTF9fQkxOREdBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNMF9DTV9NRU1fUFdSX0NUUkxfX0JMTkRHQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9DVFJMX19CTE5ER0FNX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9DVFJMX19CTE5ER0FNX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9DTTBfQ01fTUVNX1BXUl9TVEFUVVMKKyNkZWZpbmUgQ00wX0NNX01FTV9QV1JfU1RBVFVTX19TSEFSRURfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9NRU1fUFdSX1NUQVRVU19fQkxOREdBTV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9TVEFUVVNfX1NIQVJFRF9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9TVEFUVVNfX0JMTkRHQU1fTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9DTTBfQ01fREVBTFBIQQorI2RlZmluZSBDTTBfQ01fREVBTFBIQV9fQ01fREVBTFBIQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX0RFQUxQSEFfX0NNX0RFQUxQSEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ00wX0NNX0NPRUZfRk9STUFUCisjZGVmaW5lIENNMF9DTV9DT0VGX0ZPUk1BVF9fQ01fQklBU19GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fQ09FRl9GT1JNQVRfX0NNX0lDU0NfQ09FRl9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00wX0NNX0NPRUZfRk9STUFUX19DTV9HQU1VVF9SRU1BUF9DT0VGX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNMF9DTV9DT0VGX0ZPUk1BVF9fQ01fQklBU19GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENNMF9DTV9DT0VGX0ZPUk1BVF9fQ01fSUNTQ19DT0VGX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENNMF9DTV9DT0VGX0ZPUk1BVF9fQ01fR0FNVVRfUkVNQVBfQ09FRl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0NNMF9DTV9TSEFQRVJfQ09OVFJPTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX0NPTlRST0xfX0NNX1NIQVBFUl9MVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9DT05UUk9MX19DTV9TSEFQRVJfTFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00wX0NNX1NIQVBFUl9PRkZTRVRfUgorI2RlZmluZSBDTTBfQ01fU0hBUEVSX09GRlNFVF9SX19DTV9TSEFQRVJfT0ZGU0VUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9PRkZTRVRfUl9fQ01fU0hBUEVSX09GRlNFVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00wX0NNX1NIQVBFUl9PRkZTRVRfRworI2RlZmluZSBDTTBfQ01fU0hBUEVSX09GRlNFVF9HX19DTV9TSEFQRVJfT0ZGU0VUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9PRkZTRVRfR19fQ01fU0hBUEVSX09GRlNFVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00wX0NNX1NIQVBFUl9PRkZTRVRfQgorI2RlZmluZSBDTTBfQ01fU0hBUEVSX09GRlNFVF9CX19DTV9TSEFQRVJfT0ZGU0VUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9PRkZTRVRfQl9fQ01fU0hBUEVSX09GRlNFVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00wX0NNX1NIQVBFUl9TQ0FMRV9SCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfU0NBTEVfUl9fQ01fU0hBUEVSX1NDQUxFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1NDQUxFX1JfX0NNX1NIQVBFUl9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTBfQ01fU0hBUEVSX1NDQUxFX0dfQgorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9TQ0FMRV9HX0JfX0NNX1NIQVBFUl9TQ0FMRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fU0hBUEVSX0xVVF9JTkRFWAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX0xVVF9JTkRFWF9fQ01fU0hBUEVSX0xVVF9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9MVVRfSU5ERVhfX0NNX1NIQVBFUl9MVVRfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQ00wX0NNX1NIQVBFUl9MVVRfREFUQQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX0xVVF9EQVRBX19DTV9TSEFQRVJfTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9MVVRfREFUQV9fQ01fU0hBUEVSX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vQ00wX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTSworI2RlZmluZSBDTTBfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTS19fQ01fU0hBUEVSX0xVVF9XUklURV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNMF9DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfX0NNX1NIQVBFUl9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQgorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfRworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUgorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX1JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMF8xX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMl8zX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNF81X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfNworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNl83X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fOF85X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTRfMTVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNl8xN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTkKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE4XzE5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjBfMjFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMl8yM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjUKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI0XzI1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjZfMjdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzEKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMwXzMxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzJfMzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQgorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfRworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUgorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX1JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMF8xX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfMworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMl8zX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNF81X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfNworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNl83X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fOF85X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTRfMTVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNl8xN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTkKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjBfMjFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMl8yM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjUKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjZfMjdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzEKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMF9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzJfMzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTBfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTBfQ01fTUVNX1BXUl9DVFJMMgorI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9DVFJMMl9fU0hBUEVSX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00wX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIENNMF9DTV9NRU1fUFdSX0NUUkwyX19IRFIzRExVVF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9DVFJMMl9fSERSM0RMVVRfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgQ00wX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgQ00wX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQ00wX0NNX01FTV9QV1JfQ1RSTDJfX0hEUjNETFVUX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgQ00wX0NNX01FTV9QV1JfQ1RSTDJfX0hEUjNETFVUX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKy8vQ00wX0NNX01FTV9QV1JfU1RBVFVTMgorI2RlZmluZSBDTTBfQ01fTUVNX1BXUl9TVEFUVVMyX19TSEFQRVJfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00wX0NNX01FTV9QV1JfU1RBVFVTMl9fSERSM0RMVVRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIENNMF9DTV9NRU1fUFdSX1NUQVRVUzJfX1NIQVBFUl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIENNMF9DTV9NRU1fUFdSX1NUQVRVUzJfX0hEUjNETFVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisvL0NNMF9DTV8zRExVVF9NT0RFCisjZGVmaW5lIENNMF9DTV8zRExVVF9NT0RFX19DTV8zRExVVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fM0RMVVRfTU9ERV9fQ01fM0RMVVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00wX0NNXzNETFVUX01PREVfX0NNXzNETFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQ00wX0NNXzNETFVUX01PREVfX0NNXzNETFVUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQ00wX0NNXzNETFVUX0lOREVYCisjZGVmaW5lIENNMF9DTV8zRExVVF9JTkRFWF9fQ01fM0RMVVRfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fM0RMVVRfSU5ERVhfX0NNXzNETFVUX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0ZGTAorLy9DTTBfQ01fM0RMVVRfREFUQQorI2RlZmluZSBDTTBfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNXzNETFVUX0RBVEFfX0NNXzNETFVUX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fM0RMVVRfREFUQV8zMEJJVAorI2RlZmluZSBDTTBfQ01fM0RMVVRfREFUQV8zMEJJVF9fQ01fM0RMVVRfREFUQV8zMEJJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ00wX0NNXzNETFVUX0RBVEFfMzBCSVRfX0NNXzNETFVUX0RBVEFfMzBCSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vQ00wX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTAorI2RlZmluZSBDTTBfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9XUklURV9FTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTF9fQ01fM0RMVVRfUkFNX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNMF9DTV8zRExVVF9SRUFEX1dSSVRFX0NPTlRST0xfX0NNXzNETFVUXzMwQklUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTTBfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00wX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTF9fQ01fM0RMVVRfUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9XUklURV9FTl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBDTTBfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9SQU1fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTBfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF8zMEJJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBDTTBfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9DT05GSUdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBDTTBfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9DTTBfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SCisjZGVmaW5lIENNMF9DTV8zRExVVF9PVVRfTk9STV9GQUNUT1JfX0NNXzNETFVUX09VVF9OT1JNX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SX19DTV8zRExVVF9PVVRfTk9STV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTBfQ01fM0RMVVRfT1VUX09GRlNFVF9SCisjZGVmaW5lIENNMF9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9PRkZTRVRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTBfQ01fM0RMVVRfT1VUX09GRlNFVF9SX19DTV8zRExVVF9PVVRfU0NBTEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMF9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9PRkZTRVRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMF9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMF9DTV8zRExVVF9PVVRfT0ZGU0VUX0cKKyNkZWZpbmUgQ00wX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX09GRlNFVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV8zRExVVF9PVVRfT0ZGU0VUX0dfX0NNXzNETFVUX09VVF9TQ0FMRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00wX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX09GRlNFVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00wX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX1NDQUxFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00wX0NNXzNETFVUX09VVF9PRkZTRVRfQgorI2RlZmluZSBDTTBfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfT0ZGU0VUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNXzNETFVUX09VVF9PRkZTRVRfQl9fQ01fM0RMVVRfT1VUX1NDQUxFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTBfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfT0ZGU0VUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTBfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfU0NBTEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTBfQ01fVEVTVF9ERUJVR19JTkRFWAorI2RlZmluZSBDTTBfQ01fVEVTVF9ERUJVR19JTkRFWF9fQ01fVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00wX0NNX1RFU1RfREVCVUdfSU5ERVhfX0NNX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNMF9DTV9URVNUX0RFQlVHX0lOREVYX19DTV9URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENNMF9DTV9URVNUX0RFQlVHX0lOREVYX19DTV9URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0NNMF9DTV9URVNUX0RFQlVHX0RBVEEKKyNkZWZpbmUgQ00wX0NNX1RFU1RfREVCVUdfREFUQV9fQ01fVEVTVF9ERUJVR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMF9DTV9URVNUX0RFQlVHX0RBVEFfX0NNX1RFU1RfREVCVUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMF9kaXNwZGVjX2RwcF9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT04xMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OMTFfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9OMTFfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTFfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjExX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xMV9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMV9kaXNwZGVjX2RwcF90b3BfZGlzcGRlYworLy9EUFBfVE9QMV9EUFBfQ09OVFJPTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ09OVFJPTF9fRFBQX0NMT0NLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RQUENMS19HX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQUF9UT1AxX0RQUF9DT05UUk9MX19EUFBDTEtfR19EWU5fR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ09OVFJPTF9fRFBQQ0xLX0dfRFNDTF9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfQUxQSEFfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQUF9UT1AxX0RQUF9DT05UUk9MX19EUFBDTEtfUl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RJU1BDTEtfUl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ09OVFJPTF9fRElTUENMS19HX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQUF9UT1AxX0RQUF9DT05UUk9MX19EUFBfVEVTVF9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RQUF9DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RQUENMS19HX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RQUENMS19HX0RZTl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfQUxQSEFfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RQUENMS19SX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RJU1BDTEtfUl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RJU1BDTEtfR19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NPTlRST0xfX0RQUF9URVNUX0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBQX1RPUDFfRFBQX1NPRlRfUkVTRVQKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX1NPRlRfUkVTRVRfX0NOVkNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUF9UT1AxX0RQUF9TT0ZUX1JFU0VUX19EU0NMX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUFBfVE9QMV9EUFBfU09GVF9SRVNFVF9fQ01fU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX1NPRlRfUkVTRVRfX09CVUZfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQUF9UT1AxX0RQUF9TT0ZUX1JFU0VUX19DTlZDX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQUF9UT1AxX0RQUF9TT0ZUX1JFU0VUX19EU0NMX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQUF9UT1AxX0RQUF9TT0ZUX1JFU0VUX19DTV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQUF9UT1AxX0RQUF9TT0ZUX1JFU0VUX19PQlVGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RQUF9UT1AxX0RQUF9DUkNfVkFMX1JfRworI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NSQ19WQUxfUl9HX19EUFBfQ1JDX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUFBfVE9QMV9EUFBfQ1JDX1ZBTF9CX0EKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUF9UT1AxX0RQUF9DUkNfVkFMX0JfQV9fRFBQX0NSQ19BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0FMUEhBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBQX1RPUDFfRFBQX0NSQ19DVFJMCisjZGVmaW5lIERQUF9UT1AxX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX09ORV9TSE9UX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQUF9UT1AxX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ180MjBfQ09NUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX0NVUlNPUl9CSVRTX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQUF9UT1AxX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX0lOVEVSTEFDRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQUF9UT1AxX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19QSVhfRk9STUFUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0ZPUk1BVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFBQX1RPUDFfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfT05FX1NIT1RfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfNDIwX0NPTVBfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0JJVFNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfSU5URVJMQUNFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfUElYX0ZPUk1BVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0ZPUk1BVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUFBfVE9QMV9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUFBfVE9QMV9IT1NUX1JFQURfQ09OVFJPTAorI2RlZmluZSBEUFBfVE9QMV9IT1NUX1JFQURfQ09OVFJPTF9fSE9TVF9SRUFEX1JBVEVfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQX1RPUDFfSE9TVF9SRUFEX0NPTlRST0xfX0hPU1RfUkVBRF9SQVRFX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAxX2Rpc3BkZWNfY252Y19jZmdfZGlzcGRlYworLy9DTlZDX0NGRzFfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVAorI2RlZmluZSBDTlZDX0NGRzFfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9fQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcxX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVRfX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKy8vQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MCisjZGVmaW5lIENOVkNfQ0ZHMV9GT1JNQVRfQ09OVFJPTF9fRk9STUFUX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzFfRk9STUFUX0NPTlRST0xfX0ZPUk1BVF9DTlYxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19BTFBIQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENOVkNfQ0ZHMV9GT1JNQVRfQ09OVFJPTF9fQ05WQ19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTlZDX0NGRzFfRk9STUFUX0NPTlRST0xfX0NOVkNfQllQQVNTX01TQl9BTElHTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzFfRk9STUFUX0NPTlRST0xfX0NMQU1QX1BPU0lUSVZFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIENOVkNfQ0ZHMV9GT1JNQVRfQ09OVFJPTF9fQ05WQ19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19GT1JNQVRfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19GT1JNQVRfQ05WMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19BTFBIQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19DTlZDX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19DTlZDX0JZUEFTU19NU0JfQUxJR05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQ05WQ19DRkcxX0ZPUk1BVF9DT05UUk9MX19DTlZDX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vQ05WQ19DRkcxX0ZDTlZfRlBfQklBU19SCisjZGVmaW5lIENOVkNfQ0ZHMV9GQ05WX0ZQX0JJQVNfUl9fRkNOVl9GUF9CSUFTX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzFfRkNOVl9GUF9CSUFTX1JfX0ZDTlZfRlBfQklBU19SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9DTlZDX0NGRzFfRkNOVl9GUF9CSUFTX0cKKyNkZWZpbmUgQ05WQ19DRkcxX0ZDTlZfRlBfQklBU19HX19GQ05WX0ZQX0JJQVNfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMV9GQ05WX0ZQX0JJQVNfR19fRkNOVl9GUF9CSUFTX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL0NOVkNfQ0ZHMV9GQ05WX0ZQX0JJQVNfQgorI2RlZmluZSBDTlZDX0NGRzFfRkNOVl9GUF9CSUFTX0JfX0ZDTlZfRlBfQklBU19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcxX0ZDTlZfRlBfQklBU19CX19GQ05WX0ZQX0JJQVNfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcxX0ZDTlZfRlBfU0NBTEVfUgorI2RlZmluZSBDTlZDX0NGRzFfRkNOVl9GUF9TQ0FMRV9SX19GQ05WX0ZQX1NDQUxFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcxX0ZDTlZfRlBfU0NBTEVfUl9fRkNOVl9GUF9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcxX0ZDTlZfRlBfU0NBTEVfRworI2RlZmluZSBDTlZDX0NGRzFfRkNOVl9GUF9TQ0FMRV9HX19GQ05WX0ZQX1NDQUxFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcxX0ZDTlZfRlBfU0NBTEVfR19fRkNOVl9GUF9TQ0FMRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcxX0ZDTlZfRlBfU0NBTEVfQgorI2RlZmluZSBDTlZDX0NGRzFfRkNOVl9GUF9TQ0FMRV9CX19GQ05WX0ZQX1NDQUxFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcxX0ZDTlZfRlBfU0NBTEVfQl9fRkNOVl9GUF9TQ0FMRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0NPTlRST0wKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0NPTlRST0xfX0NPTE9SX0tFWUVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMV9DT0xPUl9LRVlFUl9DT05UUk9MX19DT0xPUl9LRVlFUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDTlZDX0NGRzFfQ09MT1JfS0VZRVJfQ09OVFJPTF9fQ09MT1JfS0VZRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDTlZDX0NGRzFfQ09MT1JfS0VZRVJfQ09OVFJPTF9fQ09MT1JfS0VZRVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9DTlZDX0NGRzFfQ09MT1JfS0VZRVJfQUxQSEEKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMV9DT0xPUl9LRVlFUl9BTFBIQV9fQ09MT1JfS0VZRVJfQUxQSEFfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkcxX0NPTE9SX0tFWUVSX1JFRAorI2RlZmluZSBDTlZDX0NGRzFfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX1JFRF9fQ09MT1JfS0VZRVJfUkVEX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzFfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTlZDX0NGRzFfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTlZDX0NGRzFfQ09MT1JfS0VZRVJfR1JFRU4KKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMV9DT0xPUl9LRVlFUl9HUkVFTl9fQ09MT1JfS0VZRVJfR1JFRU5fSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0JMVUUKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMV9DT0xPUl9LRVlFUl9CTFVFX19DT0xPUl9LRVlFUl9CTFVFX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkcxX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkcxX0FMUEhBXzJCSVRfTFVUCisjZGVmaW5lIENOVkNfQ0ZHMV9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzFfQUxQSEFfMkJJVF9MVVRfX0FMUEhBXzJCSVRfTFVUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ05WQ19DRkcxX0FMUEhBXzJCSVRfTFVUX19BTFBIQV8yQklUX0xVVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzFfQUxQSEFfMkJJVF9MVVRfX0FMUEhBXzJCSVRfTFVUM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIENOVkNfQ0ZHMV9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENOVkNfQ0ZHMV9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIENOVkNfQ0ZHMV9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIENOVkNfQ0ZHMV9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMV9kaXNwZGVjX2NudmNfY3VyX2Rpc3BkZWMKKy8vQ05WQ19DVVIxX0NVUlNPUjBfQ09OVFJPTAorI2RlZmluZSBDTlZDX0NVUjFfQ1VSU09SMF9DT05UUk9MX19DVVIwX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DVVIxX0NVUlNPUjBfQ09OVFJPTF9fQ1VSMF9FWFBBTlNJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYX0lOVl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDTlZDX0NVUjFfQ1VSU09SMF9DT05UUk9MX19DVVIwX1JPTV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQ05WQ19DVVIxX0NVUlNPUjBfQ09OVFJPTF9fQ1VSMF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYRUxfQUxQSEFfTU9EX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBDTlZDX0NVUjFfQ1VSU09SMF9DT05UUk9MX19DVVIwX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTlRST0xfX0NVUjBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTlRST0xfX0NVUjBfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYX0lOVl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUk9NX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTlRST0xfX0NVUjBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYRUxfQUxQSEFfTU9EX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTlRST0xfX0NVUjBfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0NOVkNfQ1VSMV9DVVJTT1IwX0NPTE9SMAorI2RlZmluZSBDTlZDX0NVUjFfQ1VSU09SMF9DT0xPUjBfX0NVUjBfQ09MT1IwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DVVIxX0NVUlNPUjBfQ09MT1IwX19DVVIwX0NPTE9SMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vQ05WQ19DVVIxX0NVUlNPUjBfQ09MT1IxCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0NPTE9SMV9fQ1VSMF9DT0xPUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NVUjFfQ1VSU09SMF9DT0xPUjFfX0NVUjBfQ09MT1IxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9DTlZDX0NVUjFfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfU0NBTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NVUjFfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTX19DVVIwX0ZQX0JJQVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfU0NBTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENOVkNfQ1VSMV9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfQklBU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMV9kaXNwZGVjX2RzY2xfZGlzcGRlYworLy9EU0NMMV9TQ0xfQ09FRl9SQU1fVEFQX1NFTEVDVAorI2RlZmluZSBEU0NMMV9TQ0xfQ09FRl9SQU1fVEFQX1NFTEVDVF9fU0NMX0NPRUZfUkFNX1RBUF9QQUlSX0lEWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wxX1NDTF9DT0VGX1JBTV9UQVBfU0VMRUNUX19TQ0xfQ09FRl9SQU1fRklMVEVSX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDFfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9UQVBfUEFJUl9JRFhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDFfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFNDTDFfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9GSUxURVJfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKy8vRFNDTDFfU0NMX0NPRUZfUkFNX1RBUF9EQVRBCisjZGVmaW5lIERTQ0wxX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1NDTF9DT0VGX1JBTV9FVkVOX1RBUF9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFNDTDFfU0NMX0NPRUZfUkFNX1RBUF9EQVRBX19TQ0xfQ09FRl9SQU1fT0REX1RBUF9DT0VGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMV9TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1NDTF9DT0VGX1JBTV9PRERfVEFQX0NPRUZfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERTQ0wxX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wxX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERTQ0wxX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisjZGVmaW5lIERTQ0wxX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RTQ0wxX1NDTF9NT0RFCisjZGVmaW5lIERTQ0wxX1NDTF9NT0RFX19EU0NMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9TQ0xfTU9ERV9fU0NMX0NPRUZfUkFNX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDFfU0NMX01PREVfX1NDTF9DT0VGX1JBTV9TRUxFQ1RfQ1VSUkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0wxX1NDTF9NT0RFX19TQ0xfQ0hST01BX0NPRUZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDFfU0NMX01PREVfX1NDTF9BTFBIQV9DT0VGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEU0NMMV9TQ0xfTU9ERV9fU0NMX0NPRUZfUkFNX1NFTEVDVF9SRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wxX1NDTF9NT0RFX19EU0NMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERTQ0wxX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0wxX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX0NVUlJFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERTQ0wxX1NDTF9NT0RFX19TQ0xfQ0hST01BX0NPRUZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERTQ0wxX1NDTF9NT0RFX19TQ0xfQUxQSEFfQ09FRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERTQ0wxX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX1JEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RTQ0wxX1NDTF9UQVBfQ09OVFJPTAorI2RlZmluZSBEU0NMMV9TQ0xfVEFQX0NPTlRST0xfX1NDTF9WX05VTV9UQVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wxX1NDTF9UQVBfQ09OVFJPTF9fU0NMX1ZfTlVNX1RBUFNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMMV9TQ0xfVEFQX0NPTlRST0xfX1NDTF9IX05VTV9UQVBTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDFfU0NMX1RBUF9DT05UUk9MX19TQ0xfVl9OVU1fVEFQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFNDTDFfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFNDTDFfU0NMX1RBUF9DT05UUk9MX19TQ0xfVl9OVU1fVEFQU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRFNDTDFfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKy8vRFNDTDFfRFNDTF9DT05UUk9MCisjZGVmaW5lIERTQ0wxX0RTQ0xfQ09OVFJPTF9fU0NMX0JPVU5EQVJZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9EU0NMX0NPTlRST0xfX1NDTF9CT1VOREFSWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NMMV9EU0NMXzJUQVBfQ09OVFJPTAorI2RlZmluZSBEU0NMMV9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfRFNDTF8yVEFQX0NPTlRST0xfX1NDTF9IXzJUQVBfU0hBUlBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wxX0RTQ0xfMlRBUF9DT05UUk9MX19TQ0xfSF8yVEFQX1NIQVJQX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMMV9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wxX0RTQ0xfMlRBUF9DT05UUk9MX19TQ0xfVl8yVEFQX1NIQVJQX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFNDTDFfRFNDTF8yVEFQX0NPTlRST0xfX1NDTF9WXzJUQVBfU0hBUlBfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMV9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NMMV9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9TSEFSUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NMMV9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9TSEFSUF9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEU0NMMV9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEU0NMMV9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9TSEFSUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEU0NMMV9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9TSEFSUF9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorLy9EU0NMMV9TQ0xfTUFOVUFMX1JFUExJQ0FURV9DT05UUk9MCisjZGVmaW5lIERTQ0wxX1NDTF9NQU5VQUxfUkVQTElDQVRFX0NPTlRST0xfX1NDTF9WX01BTlVBTF9SRVBMSUNBVEVfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9TQ0xfTUFOVUFMX1JFUExJQ0FURV9DT05UUk9MX19TQ0xfSF9NQU5VQUxfUkVQTElDQVRFX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDFfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9fU0NMX1ZfTUFOVUFMX1JFUExJQ0FURV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDTDFfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9fU0NMX0hfTUFOVUFMX1JFUExJQ0FURV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKy8vRFNDTDFfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPCisjZGVmaW5lIERTQ0wxX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19fU0NMX0hfU0NBTEVfUkFUSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fX1NDTF9IX1NDQUxFX1JBVElPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRkZGTAorLy9EU0NMMV9TQ0xfSE9SWl9GSUxURVJfSU5JVAorI2RlZmluZSBEU0NMMV9TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9GUkFDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfU0NMX0hPUlpfRklMVEVSX0lOSVRfX1NDTF9IX0lOSVRfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMV9TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9GUkFDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMV9TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMV9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQworI2RlZmluZSBEU0NMMV9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQ19fU0NMX0hfU0NBTEVfUkFUSU9fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPX0NfX1NDTF9IX1NDQUxFX1JBVElPX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKy8vRFNDTDFfU0NMX0hPUlpfRklMVEVSX0lOSVRfQworI2RlZmluZSBEU0NMMV9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0ZSQUNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfU0NMX0hPUlpfRklMVEVSX0lOSVRfQ19fU0NMX0hfSU5JVF9JTlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMV9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0ZSQUNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMV9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0lOVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMV9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU8KKyNkZWZpbmUgRFNDTDFfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX19TQ0xfVl9TQ0FMRV9SQVRJT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9TQ0FMRV9SQVRJT19fU0NMX1ZfU0NBTEVfUkFUSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGRkZMCisvL0RTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9JTklUCisjZGVmaW5lIERTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0ZSQUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9fU0NMX1ZfSU5JVF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0ZSQUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIERTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL0RTQ0wxX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVAorI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfRlJBQ19CT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQk9UX19TQ0xfVl9JTklUX0lOVF9CT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfRlJBQ19CT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfSU5UX0JPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMV9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQworI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQ19fU0NMX1ZfU0NBTEVfUkFUSU9fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0NfX1NDTF9WX1NDQUxFX1JBVElPX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKy8vRFNDTDFfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQworI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0ZSQUNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQ19fU0NMX1ZfSU5JVF9JTlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0ZSQUNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0lOVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQworI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9GUkFDX0JPVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQk9UX0NfX1NDTF9WX0lOSVRfSU5UX0JPVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9GUkFDX0JPVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMV9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9JTlRfQk9UX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMV9TQ0xfQkxBQ0tfT0ZGU0VUCisjZGVmaW5lIERTQ0wxX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfUkdCX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9TQ0xfQkxBQ0tfT0ZGU0VUX19TQ0xfQkxBQ0tfT0ZGU0VUX0NCQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wxX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfUkdCX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0wxX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfQ0JDUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0wxX0RTQ0xfVVBEQVRFCisjZGVmaW5lIERTQ0wxX0RTQ0xfVVBEQVRFX19TQ0xfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9EU0NMX1VQREFURV9fU0NMX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NMMV9EU0NMX0FVVE9DQUwKKyNkZWZpbmUgRFNDTDFfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wxX0RTQ0xfQVVUT0NBTF9fQVVUT0NBTF9OVU1fUElQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMMV9EU0NMX0FVVE9DQUxfX0FVVE9DQUxfUElQRV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDFfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDFfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX05VTV9QSVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX1BJUEVfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRFNDTDFfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVAorI2RlZmluZSBEU0NMMV9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fUklHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVF9fRVhUX09WRVJTQ0FOX0xFRlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMV9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fUklHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMMV9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fTEVGVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMMV9EU0NMX0VYVF9PVkVSU0NBTl9UT1BfQk9UVE9NCisjZGVmaW5lIERTQ0wxX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9CT1RUT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9EU0NMX0VYVF9PVkVSU0NBTl9UT1BfQk9UVE9NX19FWFRfT1ZFUlNDQU5fVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wxX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9CT1RUT01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIERTQ0wxX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9UT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL0RTQ0wxX09UR19IX0JMQU5LCisjZGVmaW5lIERTQ0wxX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9PVEdfSF9CTEFOS19fT1RHX0hfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wxX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wxX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RTQ0wxX09UR19WX0JMQU5LCisjZGVmaW5lIERTQ0wxX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9PVEdfVl9CTEFOS19fT1RHX1ZfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wxX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wxX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RTQ0wxX1JFQ09VVF9TVEFSVAorI2RlZmluZSBEU0NMMV9SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfUkVDT1VUX1NUQVJUX19SRUNPVVRfU1RBUlRfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMV9SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMMV9SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMMV9SRUNPVVRfU0laRQorI2RlZmluZSBEU0NMMV9SRUNPVVRfU0laRV9fUkVDT1VUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfUkVDT1VUX1NJWkVfX1JFQ09VVF9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMV9SRUNPVVRfU0laRV9fUkVDT1VUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEU0NMMV9SRUNPVVRfU0laRV9fUkVDT1VUX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EU0NMMV9NUENfU0laRQorI2RlZmluZSBEU0NMMV9NUENfU0laRV9fTVBDX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfTVBDX1NJWkVfX01QQ19IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMV9NUENfU0laRV9fTVBDX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEU0NMMV9NUENfU0laRV9fTVBDX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EU0NMMV9MQl9EQVRBX0ZPUk1BVAorI2RlZmluZSBEU0NMMV9MQl9EQVRBX0ZPUk1BVF9fSU5URVJMRUFWRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfTEJfREFUQV9GT1JNQVRfX0FMUEhBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wxX0xCX0RBVEFfRk9STUFUX19JTlRFUkxFQVZFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ0wxX0xCX0RBVEFfRk9STUFUX19BTFBIQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0RTQ0wxX0xCX01FTU9SWV9DVFJMCisjZGVmaW5lIERTQ0wxX0xCX01FTU9SWV9DVFJMX19NRU1PUllfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9MQl9NRU1PUllfQ1RSTF9fTEJfTUFYX1BBUlRJVElPTlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDFfTEJfTUVNT1JZX0NUUkxfX0xCX05VTV9QQVJUSVRJT05TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMV9MQl9NRU1PUllfQ1RSTF9fTEJfTlVNX1BBUlRJVElPTlNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wxX0xCX01FTU9SWV9DVFJMX19NRU1PUllfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERTQ0wxX0xCX01FTU9SWV9DVFJMX19MQl9NQVhfUEFSVElUSU9OU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERTQ0wxX0xCX01FTU9SWV9DVFJMX19MQl9OVU1fUEFSVElUSU9OU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisjZGVmaW5lIERTQ0wxX0xCX01FTU9SWV9DVFJMX19MQl9OVU1fUEFSVElUSU9OU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0YwMDAwMDBMCisvL0RTQ0wxX0xCX1ZfQ09VTlRFUgorI2RlZmluZSBEU0NMMV9MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfTEJfVl9DT1VOVEVSX19WX0NPVU5URVJfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMV9MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMMV9MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMMV9EU0NMX01FTV9QV1JfQ1RSTAorI2RlZmluZSBEU0NMMV9EU0NMX01FTV9QV1JfQ1RSTF9fTFVUX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0wxX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HMV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NMMV9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzFfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wxX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HMl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NMMV9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzNfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERTQ0wxX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HNF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEU0NMMV9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzVfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERTQ0wxX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HNV9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMV9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzZfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0wxX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9NRU1fUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cxX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cxX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c1X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c1X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX01FTV9QV1JfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVUworI2RlZmluZSBEU0NMMV9EU0NMX01FTV9QV1JfU1RBVFVTX19MVVRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzFfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0wxX0RTQ0xfTUVNX1BXUl9TVEFUVVNfX0xCX0cyX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NMMV9EU0NMX01FTV9QV1JfU1RBVFVTX19MQl9HM19NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wxX0RTQ0xfTUVNX1BXUl9TVEFUVVNfX0xCX0c1X01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NMMV9EU0NMX01FTV9QV1JfU1RBVFVTX19MQl9HNl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVU19fTFVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzFfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzJfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzNfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzRfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzVfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgRFNDTDFfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzZfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRFNDTDFfT0JVRl9DT05UUk9MCisjZGVmaW5lIERTQ0wxX09CVUZfQ09OVFJPTF9fT0JVRl9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMV9PQlVGX0NPTlRST0xfX09CVUZfVVNFX0ZVTExfQlVGRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDTDFfT0JVRl9DT05UUk9MX19PQlVGX0lTX0hBTEZfUkVDT1VUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0wxX09CVUZfQ09OVFJPTF9fT0JVRl9PVVRfSE9MRF9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDTDFfT0JVRl9DT05UUk9MX19PQlVGX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDTDFfT0JVRl9DT05UUk9MX19PQlVGX1VTRV9GVUxMX0JVRkZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDTDFfT0JVRl9DT05UUk9MX19PQlVGX0lTX0hBTEZfUkVDT1VUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFNDTDFfT0JVRl9DT05UUk9MX19PQlVGX09VVF9IT0xEX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFNDTDFfT0JVRl9NRU1fUFdSX0NUUkwKKyNkZWZpbmUgRFNDTDFfT0JVRl9NRU1fUFdSX0NUUkxfX09CVUZfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wxX09CVUZfTUVNX1BXUl9DVFJMX19PQlVGX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEU0NMMV9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDFfT0JVRl9NRU1fUFdSX0NUUkxfX09CVUZfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMV9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEU0NMMV9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEU0NMMV9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NMMV9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDFfZGlzcGRlY19jbV9kaXNwZGVjCisvL0NNMV9DTV9DT05UUk9MCisjZGVmaW5lIENNMV9DTV9DT05UUk9MX19DTV9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQ09OVFJPTF9fQ01fVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00xX0NNX0NPTlRST0xfX0NNX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ00xX0NNX0NPTlRST0xfX0NNX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQ00xX0NNX0lDU0NfQ09OVFJPTAorI2RlZmluZSBDTTFfQ01fSUNTQ19DT05UUk9MX19DTV9JQ1NDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQ09OVFJPTF9fQ01fSUNTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00xX0NNX0lDU0NfQzExX0MxMgorI2RlZmluZSBDTTFfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQzExX0MxMl9fQ01fSUNTQ19DMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fSUNTQ19DMTNfQzE0CisjZGVmaW5lIENNMV9DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fSUNTQ19DMTNfQzE0X19DTV9JQ1NDX0MxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9JQ1NDX0MyMV9DMjIKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9JQ1NDX0MyMV9DMjJfX0NNX0lDU0NfQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0lDU0NfQzIzX0MyNAorI2RlZmluZSBDTTFfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQzIzX0MyNF9fQ01fSUNTQ19DMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fSUNTQ19DMzFfQzMyCisjZGVmaW5lIENNMV9DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fSUNTQ19DMzFfQzMyX19DTV9JQ1NDX0MzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9JQ1NDX0MzM19DMzQKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9JQ1NDX0MzM19DMzRfX0NNX0lDU0NfQzM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0lDU0NfQl9DMTFfQzEyCisjZGVmaW5lIENNMV9DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fSUNTQ19CX0MxMV9DMTJfX0NNX0lDU0NfQl9DMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9JQ1NDX0JfQzEzX0MxNAorI2RlZmluZSBDTTFfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQl9DMTNfQzE0X19DTV9JQ1NDX0JfQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fSUNTQ19CX0MyMV9DMjIKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9JQ1NDX0JfQzIxX0MyMl9fQ01fSUNTQ19CX0MyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0lDU0NfQl9DMjNfQzI0CisjZGVmaW5lIENNMV9DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fSUNTQ19CX0MyM19DMjRfX0NNX0lDU0NfQl9DMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9JQ1NDX0JfQzMxX0MzMgorI2RlZmluZSBDTTFfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQl9DMzFfQzMyX19DTV9JQ1NDX0JfQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fSUNTQ19CX0MzM19DMzQKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9JQ1NDX0JfQzMzX0MzNF9fQ01fSUNTQ19CX0MzNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0dBTVVUX1JFTUFQX0NPTlRST0wKKyNkZWZpbmUgQ00xX0NNX0dBTVVUX1JFTUFQX0NPTlRST0xfX0NNX0dBTVVUX1JFTUFQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DT05UUk9MX19DTV9HQU1VVF9SRU1BUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0NNMV9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0CisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQzEzX0MxNF9fQ01fR0FNVVRfUkVNQVBfQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQzIxX0MyMl9fQ01fR0FNVVRfUkVNQVBfQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0CisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQzI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQzMxX0MzMl9fQ01fR0FNVVRfUkVNQVBfQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0CisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQzMzX0MzNF9fQ01fR0FNVVRfUkVNQVBfQzM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTIKKyNkZWZpbmUgQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTJfX0NNX0dBTVVUX1JFTUFQX0JfQzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNF9fQ01fR0FNVVRfUkVNQVBfQl9DMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9CX0MyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjQKKyNkZWZpbmUgQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjRfX0NNX0dBTVVUX1JFTUFQX0JfQzI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMgorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMl9fQ01fR0FNVVRfUkVNQVBfQl9DMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0CisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9CX0MzNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9CSUFTX0NSX1IKKyNkZWZpbmUgQ00xX0NNX0JJQVNfQ1JfUl9fQ01fQklBU19DUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CSUFTX0NSX1JfX0NNX0JJQVNfQ1JfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMV9DTV9CSUFTX1lfR19DQl9CCisjZGVmaW5lIENNMV9DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX1lfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQklBU19ZX0dfQ0JfQl9fQ01fQklBU19DQl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX1lfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX0NCX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9ER0FNX0NPTlRST0wKKyNkZWZpbmUgQ00xX0NNX0RHQU1fQ09OVFJPTF9fQ01fREdBTV9MVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX0NPTlRST0xfX0NNX0RHQU1fTFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL0NNMV9DTV9ER0FNX0xVVF9JTkRFWAorI2RlZmluZSBDTTFfQ01fREdBTV9MVVRfSU5ERVhfX0NNX0RHQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fTFVUX0lOREVYX19DTV9ER0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKy8vQ00xX0NNX0RHQU1fTFVUX0RBVEEKKyNkZWZpbmUgQ00xX0NNX0RHQU1fTFVUX0RBVEFfX0NNX0RHQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX0xVVF9EQVRBX19DTV9ER0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL0NNMV9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLCisjZGVmaW5lIENNMV9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00xX0NNX0RHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0RHQU1fQ09ORklHX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNMV9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9ER0FNX1dSSVRFX0xVVF9CQVNFX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBDTTFfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTFfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9DT05GSUdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBDTTFfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9XUklURV9MVVRfQkFTRV9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9DTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQgorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfRworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTFfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQgorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00xX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMV9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0cKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0cKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUgorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUgorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzEKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNQorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fREdBTV9SQU1BX1JFR0lPTl82XzcKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85CisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1CisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTFfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfRworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0dfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00xX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1IKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0IKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0IKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfRworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfRworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMQorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81CisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzZfNworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fREdBTV9SQU1CX1JFR0lPTl84XzkKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTEKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTUKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0JMTkRHQU1fQ09OVFJPTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9DT05UUk9MX19DTV9CTE5ER0FNX0xVVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fQ09OVFJPTF9fQ01fQkxOREdBTV9MVVRfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00xX0NNX0JMTkRHQU1fTFVUX0lOREVYCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX0xVVF9JTkRFWF9fQ01fQkxOREdBTV9MVVRfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9MVVRfSU5ERVhfX0NNX0JMTkRHQU1fTFVUX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorLy9DTTFfQ01fQkxOREdBTV9MVVRfREFUQQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9MVVRfREFUQV9fQ01fQkxOREdBTV9MVVRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fTFVUX0RBVEFfX0NNX0JMTkRHQU1fTFVUX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00xX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0sKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9CTE5ER0FNX0xVVF9XUklURV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fQkxOREdBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfR19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9IRFJfTVVMVF9DT0VGCisjZGVmaW5lIENNMV9DTV9IRFJfTVVMVF9DT0VGX19DTV9IRFJfTVVMVF9DT0VGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fSERSX01VTFRfQ09FRl9fQ01fSERSX01VTFRfQ09FRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9DTTFfQ01fTUVNX1BXUl9DVFJMCisjZGVmaW5lIENNMV9DTV9NRU1fUFdSX0NUUkxfX1NIQVJFRF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ00xX0NNX01FTV9QV1JfQ1RSTF9fQkxOREdBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNMV9DTV9NRU1fUFdSX0NUUkxfX0JMTkRHQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9DVFJMX19CTE5ER0FNX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9DVFJMX19CTE5ER0FNX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9DTTFfQ01fTUVNX1BXUl9TVEFUVVMKKyNkZWZpbmUgQ00xX0NNX01FTV9QV1JfU1RBVFVTX19TSEFSRURfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9NRU1fUFdSX1NUQVRVU19fQkxOREdBTV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9TVEFUVVNfX1NIQVJFRF9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9TVEFUVVNfX0JMTkRHQU1fTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9DTTFfQ01fREVBTFBIQQorI2RlZmluZSBDTTFfQ01fREVBTFBIQV9fQ01fREVBTFBIQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX0RFQUxQSEFfX0NNX0RFQUxQSEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ00xX0NNX0NPRUZfRk9STUFUCisjZGVmaW5lIENNMV9DTV9DT0VGX0ZPUk1BVF9fQ01fQklBU19GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fQ09FRl9GT1JNQVRfX0NNX0lDU0NfQ09FRl9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00xX0NNX0NPRUZfRk9STUFUX19DTV9HQU1VVF9SRU1BUF9DT0VGX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNMV9DTV9DT0VGX0ZPUk1BVF9fQ01fQklBU19GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENNMV9DTV9DT0VGX0ZPUk1BVF9fQ01fSUNTQ19DT0VGX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENNMV9DTV9DT0VGX0ZPUk1BVF9fQ01fR0FNVVRfUkVNQVBfQ09FRl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0NNMV9DTV9TSEFQRVJfQ09OVFJPTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX0NPTlRST0xfX0NNX1NIQVBFUl9MVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9DT05UUk9MX19DTV9TSEFQRVJfTFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00xX0NNX1NIQVBFUl9PRkZTRVRfUgorI2RlZmluZSBDTTFfQ01fU0hBUEVSX09GRlNFVF9SX19DTV9TSEFQRVJfT0ZGU0VUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9PRkZTRVRfUl9fQ01fU0hBUEVSX09GRlNFVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00xX0NNX1NIQVBFUl9PRkZTRVRfRworI2RlZmluZSBDTTFfQ01fU0hBUEVSX09GRlNFVF9HX19DTV9TSEFQRVJfT0ZGU0VUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9PRkZTRVRfR19fQ01fU0hBUEVSX09GRlNFVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00xX0NNX1NIQVBFUl9PRkZTRVRfQgorI2RlZmluZSBDTTFfQ01fU0hBUEVSX09GRlNFVF9CX19DTV9TSEFQRVJfT0ZGU0VUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9PRkZTRVRfQl9fQ01fU0hBUEVSX09GRlNFVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00xX0NNX1NIQVBFUl9TQ0FMRV9SCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfU0NBTEVfUl9fQ01fU0hBUEVSX1NDQUxFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1NDQUxFX1JfX0NNX1NIQVBFUl9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTFfQ01fU0hBUEVSX1NDQUxFX0dfQgorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9TQ0FMRV9HX0JfX0NNX1NIQVBFUl9TQ0FMRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fU0hBUEVSX0xVVF9JTkRFWAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX0xVVF9JTkRFWF9fQ01fU0hBUEVSX0xVVF9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9MVVRfSU5ERVhfX0NNX1NIQVBFUl9MVVRfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQ00xX0NNX1NIQVBFUl9MVVRfREFUQQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX0xVVF9EQVRBX19DTV9TSEFQRVJfTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9MVVRfREFUQV9fQ01fU0hBUEVSX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vQ00xX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTSworI2RlZmluZSBDTTFfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTS19fQ01fU0hBUEVSX0xVVF9XUklURV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNMV9DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfX0NNX1NIQVBFUl9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQgorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfRworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUgorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX1JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMF8xX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMl8zX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNF81X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfNworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNl83X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fOF85X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTRfMTVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNl8xN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTkKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE4XzE5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjBfMjFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMl8yM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjUKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI0XzI1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjZfMjdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzEKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMwXzMxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzJfMzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQgorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfRworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUgorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX1JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMF8xX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfMworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMl8zX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNF81X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfNworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNl83X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fOF85X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTRfMTVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNl8xN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTkKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjBfMjFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMl8yM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjUKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjZfMjdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzEKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMV9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzJfMzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTFfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTFfQ01fTUVNX1BXUl9DVFJMMgorI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9DVFJMMl9fU0hBUEVSX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00xX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIENNMV9DTV9NRU1fUFdSX0NUUkwyX19IRFIzRExVVF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9DVFJMMl9fSERSM0RMVVRfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgQ00xX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgQ00xX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQ00xX0NNX01FTV9QV1JfQ1RSTDJfX0hEUjNETFVUX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgQ00xX0NNX01FTV9QV1JfQ1RSTDJfX0hEUjNETFVUX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKy8vQ00xX0NNX01FTV9QV1JfU1RBVFVTMgorI2RlZmluZSBDTTFfQ01fTUVNX1BXUl9TVEFUVVMyX19TSEFQRVJfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00xX0NNX01FTV9QV1JfU1RBVFVTMl9fSERSM0RMVVRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIENNMV9DTV9NRU1fUFdSX1NUQVRVUzJfX1NIQVBFUl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIENNMV9DTV9NRU1fUFdSX1NUQVRVUzJfX0hEUjNETFVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisvL0NNMV9DTV8zRExVVF9NT0RFCisjZGVmaW5lIENNMV9DTV8zRExVVF9NT0RFX19DTV8zRExVVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fM0RMVVRfTU9ERV9fQ01fM0RMVVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00xX0NNXzNETFVUX01PREVfX0NNXzNETFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQ00xX0NNXzNETFVUX01PREVfX0NNXzNETFVUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQ00xX0NNXzNETFVUX0lOREVYCisjZGVmaW5lIENNMV9DTV8zRExVVF9JTkRFWF9fQ01fM0RMVVRfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fM0RMVVRfSU5ERVhfX0NNXzNETFVUX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0ZGTAorLy9DTTFfQ01fM0RMVVRfREFUQQorI2RlZmluZSBDTTFfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNXzNETFVUX0RBVEFfX0NNXzNETFVUX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fM0RMVVRfREFUQV8zMEJJVAorI2RlZmluZSBDTTFfQ01fM0RMVVRfREFUQV8zMEJJVF9fQ01fM0RMVVRfREFUQV8zMEJJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ00xX0NNXzNETFVUX0RBVEFfMzBCSVRfX0NNXzNETFVUX0RBVEFfMzBCSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vQ00xX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTAorI2RlZmluZSBDTTFfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9XUklURV9FTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTF9fQ01fM0RMVVRfUkFNX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNMV9DTV8zRExVVF9SRUFEX1dSSVRFX0NPTlRST0xfX0NNXzNETFVUXzMwQklUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTTFfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00xX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTF9fQ01fM0RMVVRfUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9XUklURV9FTl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBDTTFfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9SQU1fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTFfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF8zMEJJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBDTTFfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9DT05GSUdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBDTTFfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9DTTFfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SCisjZGVmaW5lIENNMV9DTV8zRExVVF9PVVRfTk9STV9GQUNUT1JfX0NNXzNETFVUX09VVF9OT1JNX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SX19DTV8zRExVVF9PVVRfTk9STV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTFfQ01fM0RMVVRfT1VUX09GRlNFVF9SCisjZGVmaW5lIENNMV9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9PRkZTRVRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTFfQ01fM0RMVVRfT1VUX09GRlNFVF9SX19DTV8zRExVVF9PVVRfU0NBTEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMV9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9PRkZTRVRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMV9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMV9DTV8zRExVVF9PVVRfT0ZGU0VUX0cKKyNkZWZpbmUgQ00xX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX09GRlNFVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV8zRExVVF9PVVRfT0ZGU0VUX0dfX0NNXzNETFVUX09VVF9TQ0FMRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00xX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX09GRlNFVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00xX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX1NDQUxFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00xX0NNXzNETFVUX09VVF9PRkZTRVRfQgorI2RlZmluZSBDTTFfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfT0ZGU0VUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNXzNETFVUX09VVF9PRkZTRVRfQl9fQ01fM0RMVVRfT1VUX1NDQUxFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTFfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfT0ZGU0VUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTFfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfU0NBTEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTFfQ01fVEVTVF9ERUJVR19JTkRFWAorI2RlZmluZSBDTTFfQ01fVEVTVF9ERUJVR19JTkRFWF9fQ01fVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00xX0NNX1RFU1RfREVCVUdfSU5ERVhfX0NNX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNMV9DTV9URVNUX0RFQlVHX0lOREVYX19DTV9URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENNMV9DTV9URVNUX0RFQlVHX0lOREVYX19DTV9URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0NNMV9DTV9URVNUX0RFQlVHX0RBVEEKKyNkZWZpbmUgQ00xX0NNX1RFU1RfREVCVUdfREFUQV9fQ01fVEVTVF9ERUJVR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMV9DTV9URVNUX0RFQlVHX0RBVEFfX0NNX1RFU1RfREVCVUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMV9kaXNwZGVjX2RwcF9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT04xMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OMTJfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9OMTJfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTJfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjEyX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xMl9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMl9kaXNwZGVjX2RwcF90b3BfZGlzcGRlYworLy9EUFBfVE9QMl9EUFBfQ09OVFJPTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ09OVFJPTF9fRFBQX0NMT0NLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RQUENMS19HX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQUF9UT1AyX0RQUF9DT05UUk9MX19EUFBDTEtfR19EWU5fR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ09OVFJPTF9fRFBQQ0xLX0dfRFNDTF9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfQUxQSEFfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQUF9UT1AyX0RQUF9DT05UUk9MX19EUFBDTEtfUl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RJU1BDTEtfUl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ09OVFJPTF9fRElTUENMS19HX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQUF9UT1AyX0RQUF9DT05UUk9MX19EUFBfVEVTVF9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RQUF9DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RQUENMS19HX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RQUENMS19HX0RZTl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfQUxQSEFfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RQUENMS19SX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RJU1BDTEtfUl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RJU1BDTEtfR19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NPTlRST0xfX0RQUF9URVNUX0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBQX1RPUDJfRFBQX1NPRlRfUkVTRVQKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX1NPRlRfUkVTRVRfX0NOVkNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUF9UT1AyX0RQUF9TT0ZUX1JFU0VUX19EU0NMX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUFBfVE9QMl9EUFBfU09GVF9SRVNFVF9fQ01fU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX1NPRlRfUkVTRVRfX09CVUZfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQUF9UT1AyX0RQUF9TT0ZUX1JFU0VUX19DTlZDX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQUF9UT1AyX0RQUF9TT0ZUX1JFU0VUX19EU0NMX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQUF9UT1AyX0RQUF9TT0ZUX1JFU0VUX19DTV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQUF9UT1AyX0RQUF9TT0ZUX1JFU0VUX19PQlVGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RQUF9UT1AyX0RQUF9DUkNfVkFMX1JfRworI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NSQ19WQUxfUl9HX19EUFBfQ1JDX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUFBfVE9QMl9EUFBfQ1JDX1ZBTF9CX0EKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUF9UT1AyX0RQUF9DUkNfVkFMX0JfQV9fRFBQX0NSQ19BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0FMUEhBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBQX1RPUDJfRFBQX0NSQ19DVFJMCisjZGVmaW5lIERQUF9UT1AyX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX09ORV9TSE9UX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQUF9UT1AyX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ180MjBfQ09NUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX0NVUlNPUl9CSVRTX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQUF9UT1AyX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX0lOVEVSTEFDRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQUF9UT1AyX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19QSVhfRk9STUFUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0ZPUk1BVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFBQX1RPUDJfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfT05FX1NIT1RfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfNDIwX0NPTVBfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0JJVFNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfSU5URVJMQUNFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfUElYX0ZPUk1BVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0ZPUk1BVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUFBfVE9QMl9EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUFBfVE9QMl9IT1NUX1JFQURfQ09OVFJPTAorI2RlZmluZSBEUFBfVE9QMl9IT1NUX1JFQURfQ09OVFJPTF9fSE9TVF9SRUFEX1JBVEVfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQX1RPUDJfSE9TVF9SRUFEX0NPTlRST0xfX0hPU1RfUkVBRF9SQVRFX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAyX2Rpc3BkZWNfY252Y19jZmdfZGlzcGRlYworLy9DTlZDX0NGRzJfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVAorI2RlZmluZSBDTlZDX0NGRzJfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9fQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcyX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVRfX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKy8vQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MCisjZGVmaW5lIENOVkNfQ0ZHMl9GT1JNQVRfQ09OVFJPTF9fRk9STUFUX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzJfRk9STUFUX0NPTlRST0xfX0ZPUk1BVF9DTlYxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19BTFBIQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENOVkNfQ0ZHMl9GT1JNQVRfQ09OVFJPTF9fQ05WQ19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTlZDX0NGRzJfRk9STUFUX0NPTlRST0xfX0NOVkNfQllQQVNTX01TQl9BTElHTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzJfRk9STUFUX0NPTlRST0xfX0NMQU1QX1BPU0lUSVZFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIENOVkNfQ0ZHMl9GT1JNQVRfQ09OVFJPTF9fQ05WQ19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19GT1JNQVRfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19GT1JNQVRfQ05WMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19BTFBIQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19DTlZDX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19DTlZDX0JZUEFTU19NU0JfQUxJR05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQ05WQ19DRkcyX0ZPUk1BVF9DT05UUk9MX19DTlZDX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vQ05WQ19DRkcyX0ZDTlZfRlBfQklBU19SCisjZGVmaW5lIENOVkNfQ0ZHMl9GQ05WX0ZQX0JJQVNfUl9fRkNOVl9GUF9CSUFTX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzJfRkNOVl9GUF9CSUFTX1JfX0ZDTlZfRlBfQklBU19SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9DTlZDX0NGRzJfRkNOVl9GUF9CSUFTX0cKKyNkZWZpbmUgQ05WQ19DRkcyX0ZDTlZfRlBfQklBU19HX19GQ05WX0ZQX0JJQVNfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMl9GQ05WX0ZQX0JJQVNfR19fRkNOVl9GUF9CSUFTX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL0NOVkNfQ0ZHMl9GQ05WX0ZQX0JJQVNfQgorI2RlZmluZSBDTlZDX0NGRzJfRkNOVl9GUF9CSUFTX0JfX0ZDTlZfRlBfQklBU19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcyX0ZDTlZfRlBfQklBU19CX19GQ05WX0ZQX0JJQVNfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcyX0ZDTlZfRlBfU0NBTEVfUgorI2RlZmluZSBDTlZDX0NGRzJfRkNOVl9GUF9TQ0FMRV9SX19GQ05WX0ZQX1NDQUxFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcyX0ZDTlZfRlBfU0NBTEVfUl9fRkNOVl9GUF9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcyX0ZDTlZfRlBfU0NBTEVfRworI2RlZmluZSBDTlZDX0NGRzJfRkNOVl9GUF9TQ0FMRV9HX19GQ05WX0ZQX1NDQUxFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcyX0ZDTlZfRlBfU0NBTEVfR19fRkNOVl9GUF9TQ0FMRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcyX0ZDTlZfRlBfU0NBTEVfQgorI2RlZmluZSBDTlZDX0NGRzJfRkNOVl9GUF9TQ0FMRV9CX19GQ05WX0ZQX1NDQUxFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcyX0ZDTlZfRlBfU0NBTEVfQl9fRkNOVl9GUF9TQ0FMRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0NPTlRST0wKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0NPTlRST0xfX0NPTE9SX0tFWUVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMl9DT0xPUl9LRVlFUl9DT05UUk9MX19DT0xPUl9LRVlFUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDTlZDX0NGRzJfQ09MT1JfS0VZRVJfQ09OVFJPTF9fQ09MT1JfS0VZRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDTlZDX0NGRzJfQ09MT1JfS0VZRVJfQ09OVFJPTF9fQ09MT1JfS0VZRVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9DTlZDX0NGRzJfQ09MT1JfS0VZRVJfQUxQSEEKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMl9DT0xPUl9LRVlFUl9BTFBIQV9fQ09MT1JfS0VZRVJfQUxQSEFfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkcyX0NPTE9SX0tFWUVSX1JFRAorI2RlZmluZSBDTlZDX0NGRzJfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX1JFRF9fQ09MT1JfS0VZRVJfUkVEX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzJfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTlZDX0NGRzJfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTlZDX0NGRzJfQ09MT1JfS0VZRVJfR1JFRU4KKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMl9DT0xPUl9LRVlFUl9HUkVFTl9fQ09MT1JfS0VZRVJfR1JFRU5fSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0JMVUUKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHMl9DT0xPUl9LRVlFUl9CTFVFX19DT0xPUl9LRVlFUl9CTFVFX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkcyX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkcyX0FMUEhBXzJCSVRfTFVUCisjZGVmaW5lIENOVkNfQ0ZHMl9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzJfQUxQSEFfMkJJVF9MVVRfX0FMUEhBXzJCSVRfTFVUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ05WQ19DRkcyX0FMUEhBXzJCSVRfTFVUX19BTFBIQV8yQklUX0xVVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzJfQUxQSEFfMkJJVF9MVVRfX0FMUEhBXzJCSVRfTFVUM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIENOVkNfQ0ZHMl9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENOVkNfQ0ZHMl9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIENOVkNfQ0ZHMl9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIENOVkNfQ0ZHMl9BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMl9kaXNwZGVjX2NudmNfY3VyX2Rpc3BkZWMKKy8vQ05WQ19DVVIyX0NVUlNPUjBfQ09OVFJPTAorI2RlZmluZSBDTlZDX0NVUjJfQ1VSU09SMF9DT05UUk9MX19DVVIwX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DVVIyX0NVUlNPUjBfQ09OVFJPTF9fQ1VSMF9FWFBBTlNJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYX0lOVl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDTlZDX0NVUjJfQ1VSU09SMF9DT05UUk9MX19DVVIwX1JPTV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQ05WQ19DVVIyX0NVUlNPUjBfQ09OVFJPTF9fQ1VSMF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYRUxfQUxQSEFfTU9EX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBDTlZDX0NVUjJfQ1VSU09SMF9DT05UUk9MX19DVVIwX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfX0NVUjBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfX0NVUjBfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYX0lOVl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUk9NX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfX0NVUjBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYRUxfQUxQSEFfTU9EX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTlRST0xfX0NVUjBfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0NOVkNfQ1VSMl9DVVJTT1IwX0NPTE9SMAorI2RlZmluZSBDTlZDX0NVUjJfQ1VSU09SMF9DT0xPUjBfX0NVUjBfQ09MT1IwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DVVIyX0NVUlNPUjBfQ09MT1IwX19DVVIwX0NPTE9SMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vQ05WQ19DVVIyX0NVUlNPUjBfQ09MT1IxCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0NPTE9SMV9fQ1VSMF9DT0xPUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NVUjJfQ1VSU09SMF9DT0xPUjFfX0NVUjBfQ09MT1IxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9DTlZDX0NVUjJfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfU0NBTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NVUjJfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTX19DVVIwX0ZQX0JJQVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfU0NBTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENOVkNfQ1VSMl9DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfQklBU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMl9kaXNwZGVjX2RzY2xfZGlzcGRlYworLy9EU0NMMl9TQ0xfQ09FRl9SQU1fVEFQX1NFTEVDVAorI2RlZmluZSBEU0NMMl9TQ0xfQ09FRl9SQU1fVEFQX1NFTEVDVF9fU0NMX0NPRUZfUkFNX1RBUF9QQUlSX0lEWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wyX1NDTF9DT0VGX1JBTV9UQVBfU0VMRUNUX19TQ0xfQ09FRl9SQU1fRklMVEVSX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDJfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9UQVBfUEFJUl9JRFhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDJfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFNDTDJfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9GSUxURVJfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKy8vRFNDTDJfU0NMX0NPRUZfUkFNX1RBUF9EQVRBCisjZGVmaW5lIERTQ0wyX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1NDTF9DT0VGX1JBTV9FVkVOX1RBUF9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFNDTDJfU0NMX0NPRUZfUkFNX1RBUF9EQVRBX19TQ0xfQ09FRl9SQU1fT0REX1RBUF9DT0VGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMl9TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1NDTF9DT0VGX1JBTV9PRERfVEFQX0NPRUZfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERTQ0wyX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wyX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERTQ0wyX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisjZGVmaW5lIERTQ0wyX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RTQ0wyX1NDTF9NT0RFCisjZGVmaW5lIERTQ0wyX1NDTF9NT0RFX19EU0NMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9TQ0xfTU9ERV9fU0NMX0NPRUZfUkFNX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDJfU0NMX01PREVfX1NDTF9DT0VGX1JBTV9TRUxFQ1RfQ1VSUkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0wyX1NDTF9NT0RFX19TQ0xfQ0hST01BX0NPRUZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDJfU0NMX01PREVfX1NDTF9BTFBIQV9DT0VGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEU0NMMl9TQ0xfTU9ERV9fU0NMX0NPRUZfUkFNX1NFTEVDVF9SRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wyX1NDTF9NT0RFX19EU0NMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERTQ0wyX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0wyX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX0NVUlJFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERTQ0wyX1NDTF9NT0RFX19TQ0xfQ0hST01BX0NPRUZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERTQ0wyX1NDTF9NT0RFX19TQ0xfQUxQSEFfQ09FRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERTQ0wyX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX1JEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RTQ0wyX1NDTF9UQVBfQ09OVFJPTAorI2RlZmluZSBEU0NMMl9TQ0xfVEFQX0NPTlRST0xfX1NDTF9WX05VTV9UQVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wyX1NDTF9UQVBfQ09OVFJPTF9fU0NMX1ZfTlVNX1RBUFNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMMl9TQ0xfVEFQX0NPTlRST0xfX1NDTF9IX05VTV9UQVBTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDJfU0NMX1RBUF9DT05UUk9MX19TQ0xfVl9OVU1fVEFQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFNDTDJfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFNDTDJfU0NMX1RBUF9DT05UUk9MX19TQ0xfVl9OVU1fVEFQU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRFNDTDJfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKy8vRFNDTDJfRFNDTF9DT05UUk9MCisjZGVmaW5lIERTQ0wyX0RTQ0xfQ09OVFJPTF9fU0NMX0JPVU5EQVJZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9EU0NMX0NPTlRST0xfX1NDTF9CT1VOREFSWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NMMl9EU0NMXzJUQVBfQ09OVFJPTAorI2RlZmluZSBEU0NMMl9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfRFNDTF8yVEFQX0NPTlRST0xfX1NDTF9IXzJUQVBfU0hBUlBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wyX0RTQ0xfMlRBUF9DT05UUk9MX19TQ0xfSF8yVEFQX1NIQVJQX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMMl9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wyX0RTQ0xfMlRBUF9DT05UUk9MX19TQ0xfVl8yVEFQX1NIQVJQX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFNDTDJfRFNDTF8yVEFQX0NPTlRST0xfX1NDTF9WXzJUQVBfU0hBUlBfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMl9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NMMl9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9TSEFSUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NMMl9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9TSEFSUF9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEU0NMMl9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEU0NMMl9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9TSEFSUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEU0NMMl9EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9TSEFSUF9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorLy9EU0NMMl9TQ0xfTUFOVUFMX1JFUExJQ0FURV9DT05UUk9MCisjZGVmaW5lIERTQ0wyX1NDTF9NQU5VQUxfUkVQTElDQVRFX0NPTlRST0xfX1NDTF9WX01BTlVBTF9SRVBMSUNBVEVfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9TQ0xfTUFOVUFMX1JFUExJQ0FURV9DT05UUk9MX19TQ0xfSF9NQU5VQUxfUkVQTElDQVRFX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDJfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9fU0NMX1ZfTUFOVUFMX1JFUExJQ0FURV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDTDJfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9fU0NMX0hfTUFOVUFMX1JFUExJQ0FURV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKy8vRFNDTDJfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPCisjZGVmaW5lIERTQ0wyX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19fU0NMX0hfU0NBTEVfUkFUSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fX1NDTF9IX1NDQUxFX1JBVElPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRkZGTAorLy9EU0NMMl9TQ0xfSE9SWl9GSUxURVJfSU5JVAorI2RlZmluZSBEU0NMMl9TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9GUkFDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfU0NMX0hPUlpfRklMVEVSX0lOSVRfX1NDTF9IX0lOSVRfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMl9TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9GUkFDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMl9TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMl9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQworI2RlZmluZSBEU0NMMl9TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQ19fU0NMX0hfU0NBTEVfUkFUSU9fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPX0NfX1NDTF9IX1NDQUxFX1JBVElPX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKy8vRFNDTDJfU0NMX0hPUlpfRklMVEVSX0lOSVRfQworI2RlZmluZSBEU0NMMl9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0ZSQUNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfU0NMX0hPUlpfRklMVEVSX0lOSVRfQ19fU0NMX0hfSU5JVF9JTlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMl9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0ZSQUNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMl9TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0lOVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMl9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU8KKyNkZWZpbmUgRFNDTDJfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX19TQ0xfVl9TQ0FMRV9SQVRJT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9TQ0FMRV9SQVRJT19fU0NMX1ZfU0NBTEVfUkFUSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGRkZMCisvL0RTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9JTklUCisjZGVmaW5lIERTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0ZSQUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9fU0NMX1ZfSU5JVF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0ZSQUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIERTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL0RTQ0wyX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVAorI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfRlJBQ19CT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQk9UX19TQ0xfVl9JTklUX0lOVF9CT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfRlJBQ19CT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfSU5UX0JPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMl9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQworI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQ19fU0NMX1ZfU0NBTEVfUkFUSU9fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0NfX1NDTF9WX1NDQUxFX1JBVElPX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKy8vRFNDTDJfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQworI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0ZSQUNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQ19fU0NMX1ZfSU5JVF9JTlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0ZSQUNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0lOVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQworI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9GUkFDX0JPVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQk9UX0NfX1NDTF9WX0lOSVRfSU5UX0JPVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9GUkFDX0JPVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMMl9TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9JTlRfQk9UX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMMl9TQ0xfQkxBQ0tfT0ZGU0VUCisjZGVmaW5lIERTQ0wyX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfUkdCX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9TQ0xfQkxBQ0tfT0ZGU0VUX19TQ0xfQkxBQ0tfT0ZGU0VUX0NCQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wyX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfUkdCX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0wyX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfQ0JDUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0wyX0RTQ0xfVVBEQVRFCisjZGVmaW5lIERTQ0wyX0RTQ0xfVVBEQVRFX19TQ0xfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9EU0NMX1VQREFURV9fU0NMX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NMMl9EU0NMX0FVVE9DQUwKKyNkZWZpbmUgRFNDTDJfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wyX0RTQ0xfQVVUT0NBTF9fQVVUT0NBTF9OVU1fUElQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMMl9EU0NMX0FVVE9DQUxfX0FVVE9DQUxfUElQRV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDJfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDJfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX05VTV9QSVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX1BJUEVfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRFNDTDJfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVAorI2RlZmluZSBEU0NMMl9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fUklHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVF9fRVhUX09WRVJTQ0FOX0xFRlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMl9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fUklHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMMl9EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fTEVGVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMMl9EU0NMX0VYVF9PVkVSU0NBTl9UT1BfQk9UVE9NCisjZGVmaW5lIERTQ0wyX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9CT1RUT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9EU0NMX0VYVF9PVkVSU0NBTl9UT1BfQk9UVE9NX19FWFRfT1ZFUlNDQU5fVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wyX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9CT1RUT01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIERTQ0wyX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9UT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL0RTQ0wyX09UR19IX0JMQU5LCisjZGVmaW5lIERTQ0wyX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9PVEdfSF9CTEFOS19fT1RHX0hfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wyX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wyX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RTQ0wyX09UR19WX0JMQU5LCisjZGVmaW5lIERTQ0wyX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9PVEdfVl9CTEFOS19fT1RHX1ZfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wyX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wyX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RTQ0wyX1JFQ09VVF9TVEFSVAorI2RlZmluZSBEU0NMMl9SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfUkVDT1VUX1NUQVJUX19SRUNPVVRfU1RBUlRfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMl9SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMMl9SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMMl9SRUNPVVRfU0laRQorI2RlZmluZSBEU0NMMl9SRUNPVVRfU0laRV9fUkVDT1VUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfUkVDT1VUX1NJWkVfX1JFQ09VVF9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMl9SRUNPVVRfU0laRV9fUkVDT1VUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEU0NMMl9SRUNPVVRfU0laRV9fUkVDT1VUX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EU0NMMl9NUENfU0laRQorI2RlZmluZSBEU0NMMl9NUENfU0laRV9fTVBDX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfTVBDX1NJWkVfX01QQ19IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMl9NUENfU0laRV9fTVBDX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEU0NMMl9NUENfU0laRV9fTVBDX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EU0NMMl9MQl9EQVRBX0ZPUk1BVAorI2RlZmluZSBEU0NMMl9MQl9EQVRBX0ZPUk1BVF9fSU5URVJMRUFWRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfTEJfREFUQV9GT1JNQVRfX0FMUEhBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wyX0xCX0RBVEFfRk9STUFUX19JTlRFUkxFQVZFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ0wyX0xCX0RBVEFfRk9STUFUX19BTFBIQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0RTQ0wyX0xCX01FTU9SWV9DVFJMCisjZGVmaW5lIERTQ0wyX0xCX01FTU9SWV9DVFJMX19NRU1PUllfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9MQl9NRU1PUllfQ1RSTF9fTEJfTUFYX1BBUlRJVElPTlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDJfTEJfTUVNT1JZX0NUUkxfX0xCX05VTV9QQVJUSVRJT05TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMl9MQl9NRU1PUllfQ1RSTF9fTEJfTlVNX1BBUlRJVElPTlNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wyX0xCX01FTU9SWV9DVFJMX19NRU1PUllfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERTQ0wyX0xCX01FTU9SWV9DVFJMX19MQl9NQVhfUEFSVElUSU9OU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERTQ0wyX0xCX01FTU9SWV9DVFJMX19MQl9OVU1fUEFSVElUSU9OU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisjZGVmaW5lIERTQ0wyX0xCX01FTU9SWV9DVFJMX19MQl9OVU1fUEFSVElUSU9OU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0YwMDAwMDBMCisvL0RTQ0wyX0xCX1ZfQ09VTlRFUgorI2RlZmluZSBEU0NMMl9MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfTEJfVl9DT1VOVEVSX19WX0NPVU5URVJfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMl9MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMMl9MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMMl9EU0NMX01FTV9QV1JfQ1RSTAorI2RlZmluZSBEU0NMMl9EU0NMX01FTV9QV1JfQ1RSTF9fTFVUX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0wyX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HMV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NMMl9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzFfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wyX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HMl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NMMl9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzNfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERTQ0wyX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HNF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEU0NMMl9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzVfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERTQ0wyX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HNV9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMMl9EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzZfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0wyX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9NRU1fUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cxX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cxX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c1X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c1X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX01FTV9QV1JfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVUworI2RlZmluZSBEU0NMMl9EU0NMX01FTV9QV1JfU1RBVFVTX19MVVRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzFfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0wyX0RTQ0xfTUVNX1BXUl9TVEFUVVNfX0xCX0cyX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NMMl9EU0NMX01FTV9QV1JfU1RBVFVTX19MQl9HM19NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wyX0RTQ0xfTUVNX1BXUl9TVEFUVVNfX0xCX0c1X01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NMMl9EU0NMX01FTV9QV1JfU1RBVFVTX19MQl9HNl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVU19fTFVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzFfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzJfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzNfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzRfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzVfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgRFNDTDJfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzZfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRFNDTDJfT0JVRl9DT05UUk9MCisjZGVmaW5lIERTQ0wyX09CVUZfQ09OVFJPTF9fT0JVRl9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMMl9PQlVGX0NPTlRST0xfX09CVUZfVVNFX0ZVTExfQlVGRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDTDJfT0JVRl9DT05UUk9MX19PQlVGX0lTX0hBTEZfUkVDT1VUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0wyX09CVUZfQ09OVFJPTF9fT0JVRl9PVVRfSE9MRF9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDTDJfT0JVRl9DT05UUk9MX19PQlVGX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDTDJfT0JVRl9DT05UUk9MX19PQlVGX1VTRV9GVUxMX0JVRkZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDTDJfT0JVRl9DT05UUk9MX19PQlVGX0lTX0hBTEZfUkVDT1VUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFNDTDJfT0JVRl9DT05UUk9MX19PQlVGX09VVF9IT0xEX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFNDTDJfT0JVRl9NRU1fUFdSX0NUUkwKKyNkZWZpbmUgRFNDTDJfT0JVRl9NRU1fUFdSX0NUUkxfX09CVUZfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wyX09CVUZfTUVNX1BXUl9DVFJMX19PQlVGX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEU0NMMl9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDJfT0JVRl9NRU1fUFdSX0NUUkxfX09CVUZfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMMl9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEU0NMMl9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEU0NMMl9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NMMl9PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDJfZGlzcGRlY19jbV9kaXNwZGVjCisvL0NNMl9DTV9DT05UUk9MCisjZGVmaW5lIENNMl9DTV9DT05UUk9MX19DTV9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQ09OVFJPTF9fQ01fVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00yX0NNX0NPTlRST0xfX0NNX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ00yX0NNX0NPTlRST0xfX0NNX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQ00yX0NNX0lDU0NfQ09OVFJPTAorI2RlZmluZSBDTTJfQ01fSUNTQ19DT05UUk9MX19DTV9JQ1NDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQ09OVFJPTF9fQ01fSUNTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00yX0NNX0lDU0NfQzExX0MxMgorI2RlZmluZSBDTTJfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQzExX0MxMl9fQ01fSUNTQ19DMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fSUNTQ19DMTNfQzE0CisjZGVmaW5lIENNMl9DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fSUNTQ19DMTNfQzE0X19DTV9JQ1NDX0MxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9JQ1NDX0MyMV9DMjIKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9JQ1NDX0MyMV9DMjJfX0NNX0lDU0NfQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0lDU0NfQzIzX0MyNAorI2RlZmluZSBDTTJfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQzIzX0MyNF9fQ01fSUNTQ19DMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fSUNTQ19DMzFfQzMyCisjZGVmaW5lIENNMl9DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fSUNTQ19DMzFfQzMyX19DTV9JQ1NDX0MzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9JQ1NDX0MzM19DMzQKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9JQ1NDX0MzM19DMzRfX0NNX0lDU0NfQzM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0lDU0NfQl9DMTFfQzEyCisjZGVmaW5lIENNMl9DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fSUNTQ19CX0MxMV9DMTJfX0NNX0lDU0NfQl9DMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9JQ1NDX0JfQzEzX0MxNAorI2RlZmluZSBDTTJfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQl9DMTNfQzE0X19DTV9JQ1NDX0JfQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fSUNTQ19CX0MyMV9DMjIKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9JQ1NDX0JfQzIxX0MyMl9fQ01fSUNTQ19CX0MyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0lDU0NfQl9DMjNfQzI0CisjZGVmaW5lIENNMl9DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fSUNTQ19CX0MyM19DMjRfX0NNX0lDU0NfQl9DMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9JQ1NDX0JfQzMxX0MzMgorI2RlZmluZSBDTTJfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQl9DMzFfQzMyX19DTV9JQ1NDX0JfQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fSUNTQ19CX0MzM19DMzQKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9JQ1NDX0JfQzMzX0MzNF9fQ01fSUNTQ19CX0MzNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0dBTVVUX1JFTUFQX0NPTlRST0wKKyNkZWZpbmUgQ00yX0NNX0dBTVVUX1JFTUFQX0NPTlRST0xfX0NNX0dBTVVUX1JFTUFQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DT05UUk9MX19DTV9HQU1VVF9SRU1BUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0NNMl9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0CisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQzEzX0MxNF9fQ01fR0FNVVRfUkVNQVBfQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQzIxX0MyMl9fQ01fR0FNVVRfUkVNQVBfQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0CisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQzI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQzMxX0MzMl9fQ01fR0FNVVRfUkVNQVBfQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0CisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQzMzX0MzNF9fQ01fR0FNVVRfUkVNQVBfQzM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTIKKyNkZWZpbmUgQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTJfX0NNX0dBTVVUX1JFTUFQX0JfQzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNF9fQ01fR0FNVVRfUkVNQVBfQl9DMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9CX0MyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjQKKyNkZWZpbmUgQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjRfX0NNX0dBTVVUX1JFTUFQX0JfQzI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMgorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMl9fQ01fR0FNVVRfUkVNQVBfQl9DMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0CisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9CX0MzNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9CSUFTX0NSX1IKKyNkZWZpbmUgQ00yX0NNX0JJQVNfQ1JfUl9fQ01fQklBU19DUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CSUFTX0NSX1JfX0NNX0JJQVNfQ1JfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMl9DTV9CSUFTX1lfR19DQl9CCisjZGVmaW5lIENNMl9DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX1lfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQklBU19ZX0dfQ0JfQl9fQ01fQklBU19DQl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX1lfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX0NCX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9ER0FNX0NPTlRST0wKKyNkZWZpbmUgQ00yX0NNX0RHQU1fQ09OVFJPTF9fQ01fREdBTV9MVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX0NPTlRST0xfX0NNX0RHQU1fTFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL0NNMl9DTV9ER0FNX0xVVF9JTkRFWAorI2RlZmluZSBDTTJfQ01fREdBTV9MVVRfSU5ERVhfX0NNX0RHQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fTFVUX0lOREVYX19DTV9ER0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKy8vQ00yX0NNX0RHQU1fTFVUX0RBVEEKKyNkZWZpbmUgQ00yX0NNX0RHQU1fTFVUX0RBVEFfX0NNX0RHQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX0xVVF9EQVRBX19DTV9ER0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL0NNMl9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLCisjZGVmaW5lIENNMl9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00yX0NNX0RHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0RHQU1fQ09ORklHX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNMl9DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9ER0FNX1dSSVRFX0xVVF9CQVNFX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBDTTJfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTJfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9DT05GSUdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBDTTJfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9XUklURV9MVVRfQkFTRV9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9DTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQgorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfRworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTJfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQgorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00yX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMl9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0cKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0cKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUgorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUgorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzEKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNQorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fREdBTV9SQU1BX1JFR0lPTl82XzcKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85CisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1CisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTJfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfRworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0dfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00yX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1IKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0IKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0IKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfRworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfRworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMQorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81CisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzZfNworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fREdBTV9SQU1CX1JFR0lPTl84XzkKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTEKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTUKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0JMTkRHQU1fQ09OVFJPTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9DT05UUk9MX19DTV9CTE5ER0FNX0xVVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fQ09OVFJPTF9fQ01fQkxOREdBTV9MVVRfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00yX0NNX0JMTkRHQU1fTFVUX0lOREVYCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX0xVVF9JTkRFWF9fQ01fQkxOREdBTV9MVVRfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9MVVRfSU5ERVhfX0NNX0JMTkRHQU1fTFVUX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorLy9DTTJfQ01fQkxOREdBTV9MVVRfREFUQQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9MVVRfREFUQV9fQ01fQkxOREdBTV9MVVRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fTFVUX0RBVEFfX0NNX0JMTkRHQU1fTFVUX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00yX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0sKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9CTE5ER0FNX0xVVF9XUklURV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fQkxOREdBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfR19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9IRFJfTVVMVF9DT0VGCisjZGVmaW5lIENNMl9DTV9IRFJfTVVMVF9DT0VGX19DTV9IRFJfTVVMVF9DT0VGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fSERSX01VTFRfQ09FRl9fQ01fSERSX01VTFRfQ09FRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9DTTJfQ01fTUVNX1BXUl9DVFJMCisjZGVmaW5lIENNMl9DTV9NRU1fUFdSX0NUUkxfX1NIQVJFRF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ00yX0NNX01FTV9QV1JfQ1RSTF9fQkxOREdBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNMl9DTV9NRU1fUFdSX0NUUkxfX0JMTkRHQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9DVFJMX19CTE5ER0FNX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9DVFJMX19CTE5ER0FNX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9DTTJfQ01fTUVNX1BXUl9TVEFUVVMKKyNkZWZpbmUgQ00yX0NNX01FTV9QV1JfU1RBVFVTX19TSEFSRURfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9NRU1fUFdSX1NUQVRVU19fQkxOREdBTV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9TVEFUVVNfX1NIQVJFRF9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9TVEFUVVNfX0JMTkRHQU1fTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9DTTJfQ01fREVBTFBIQQorI2RlZmluZSBDTTJfQ01fREVBTFBIQV9fQ01fREVBTFBIQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX0RFQUxQSEFfX0NNX0RFQUxQSEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ00yX0NNX0NPRUZfRk9STUFUCisjZGVmaW5lIENNMl9DTV9DT0VGX0ZPUk1BVF9fQ01fQklBU19GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fQ09FRl9GT1JNQVRfX0NNX0lDU0NfQ09FRl9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00yX0NNX0NPRUZfRk9STUFUX19DTV9HQU1VVF9SRU1BUF9DT0VGX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNMl9DTV9DT0VGX0ZPUk1BVF9fQ01fQklBU19GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENNMl9DTV9DT0VGX0ZPUk1BVF9fQ01fSUNTQ19DT0VGX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENNMl9DTV9DT0VGX0ZPUk1BVF9fQ01fR0FNVVRfUkVNQVBfQ09FRl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0NNMl9DTV9TSEFQRVJfQ09OVFJPTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX0NPTlRST0xfX0NNX1NIQVBFUl9MVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9DT05UUk9MX19DTV9TSEFQRVJfTFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00yX0NNX1NIQVBFUl9PRkZTRVRfUgorI2RlZmluZSBDTTJfQ01fU0hBUEVSX09GRlNFVF9SX19DTV9TSEFQRVJfT0ZGU0VUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9PRkZTRVRfUl9fQ01fU0hBUEVSX09GRlNFVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00yX0NNX1NIQVBFUl9PRkZTRVRfRworI2RlZmluZSBDTTJfQ01fU0hBUEVSX09GRlNFVF9HX19DTV9TSEFQRVJfT0ZGU0VUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9PRkZTRVRfR19fQ01fU0hBUEVSX09GRlNFVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00yX0NNX1NIQVBFUl9PRkZTRVRfQgorI2RlZmluZSBDTTJfQ01fU0hBUEVSX09GRlNFVF9CX19DTV9TSEFQRVJfT0ZGU0VUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9PRkZTRVRfQl9fQ01fU0hBUEVSX09GRlNFVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00yX0NNX1NIQVBFUl9TQ0FMRV9SCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfU0NBTEVfUl9fQ01fU0hBUEVSX1NDQUxFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1NDQUxFX1JfX0NNX1NIQVBFUl9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTJfQ01fU0hBUEVSX1NDQUxFX0dfQgorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9TQ0FMRV9HX0JfX0NNX1NIQVBFUl9TQ0FMRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fU0hBUEVSX0xVVF9JTkRFWAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX0xVVF9JTkRFWF9fQ01fU0hBUEVSX0xVVF9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9MVVRfSU5ERVhfX0NNX1NIQVBFUl9MVVRfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQ00yX0NNX1NIQVBFUl9MVVRfREFUQQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX0xVVF9EQVRBX19DTV9TSEFQRVJfTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9MVVRfREFUQV9fQ01fU0hBUEVSX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vQ00yX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTSworI2RlZmluZSBDTTJfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTS19fQ01fU0hBUEVSX0xVVF9XUklURV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNMl9DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfX0NNX1NIQVBFUl9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQgorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfRworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUgorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX1JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMF8xX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMl8zX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNF81X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfNworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fNl83X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fOF85X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTRfMTVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNl8xN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTkKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE4XzE5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjBfMjFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMl8yM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjUKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI0XzI1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjZfMjdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzEKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMwXzMxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzJfMzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQgorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfRworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUgorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX1JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMF8xX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfMworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMl8zX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNF81X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfNworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fNl83X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fOF85X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTRfMTVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNl8xN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTkKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjBfMjFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMl8yM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjUKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjZfMjdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzEKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNMl9DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzJfMzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTJfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTJfQ01fTUVNX1BXUl9DVFJMMgorI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9DVFJMMl9fU0hBUEVSX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00yX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIENNMl9DTV9NRU1fUFdSX0NUUkwyX19IRFIzRExVVF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9DVFJMMl9fSERSM0RMVVRfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgQ00yX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgQ00yX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQ00yX0NNX01FTV9QV1JfQ1RSTDJfX0hEUjNETFVUX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgQ00yX0NNX01FTV9QV1JfQ1RSTDJfX0hEUjNETFVUX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKy8vQ00yX0NNX01FTV9QV1JfU1RBVFVTMgorI2RlZmluZSBDTTJfQ01fTUVNX1BXUl9TVEFUVVMyX19TSEFQRVJfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00yX0NNX01FTV9QV1JfU1RBVFVTMl9fSERSM0RMVVRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIENNMl9DTV9NRU1fUFdSX1NUQVRVUzJfX1NIQVBFUl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIENNMl9DTV9NRU1fUFdSX1NUQVRVUzJfX0hEUjNETFVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisvL0NNMl9DTV8zRExVVF9NT0RFCisjZGVmaW5lIENNMl9DTV8zRExVVF9NT0RFX19DTV8zRExVVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fM0RMVVRfTU9ERV9fQ01fM0RMVVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00yX0NNXzNETFVUX01PREVfX0NNXzNETFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQ00yX0NNXzNETFVUX01PREVfX0NNXzNETFVUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQ00yX0NNXzNETFVUX0lOREVYCisjZGVmaW5lIENNMl9DTV8zRExVVF9JTkRFWF9fQ01fM0RMVVRfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fM0RMVVRfSU5ERVhfX0NNXzNETFVUX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0ZGTAorLy9DTTJfQ01fM0RMVVRfREFUQQorI2RlZmluZSBDTTJfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNXzNETFVUX0RBVEFfX0NNXzNETFVUX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fM0RMVVRfREFUQV8zMEJJVAorI2RlZmluZSBDTTJfQ01fM0RMVVRfREFUQV8zMEJJVF9fQ01fM0RMVVRfREFUQV8zMEJJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ00yX0NNXzNETFVUX0RBVEFfMzBCSVRfX0NNXzNETFVUX0RBVEFfMzBCSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vQ00yX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTAorI2RlZmluZSBDTTJfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9XUklURV9FTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTF9fQ01fM0RMVVRfUkFNX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNMl9DTV8zRExVVF9SRUFEX1dSSVRFX0NPTlRST0xfX0NNXzNETFVUXzMwQklUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTTJfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00yX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTF9fQ01fM0RMVVRfUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9XUklURV9FTl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBDTTJfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9SQU1fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTJfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF8zMEJJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBDTTJfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9DT05GSUdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBDTTJfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9DTTJfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SCisjZGVmaW5lIENNMl9DTV8zRExVVF9PVVRfTk9STV9GQUNUT1JfX0NNXzNETFVUX09VVF9OT1JNX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SX19DTV8zRExVVF9PVVRfTk9STV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTJfQ01fM0RMVVRfT1VUX09GRlNFVF9SCisjZGVmaW5lIENNMl9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9PRkZTRVRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTJfQ01fM0RMVVRfT1VUX09GRlNFVF9SX19DTV8zRExVVF9PVVRfU0NBTEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNMl9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9PRkZTRVRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNMl9DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNMl9DTV8zRExVVF9PVVRfT0ZGU0VUX0cKKyNkZWZpbmUgQ00yX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX09GRlNFVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV8zRExVVF9PVVRfT0ZGU0VUX0dfX0NNXzNETFVUX09VVF9TQ0FMRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00yX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX09GRlNFVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00yX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX1NDQUxFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00yX0NNXzNETFVUX09VVF9PRkZTRVRfQgorI2RlZmluZSBDTTJfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfT0ZGU0VUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNXzNETFVUX09VVF9PRkZTRVRfQl9fQ01fM0RMVVRfT1VUX1NDQUxFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTJfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfT0ZGU0VUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTJfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfU0NBTEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTJfQ01fVEVTVF9ERUJVR19JTkRFWAorI2RlZmluZSBDTTJfQ01fVEVTVF9ERUJVR19JTkRFWF9fQ01fVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00yX0NNX1RFU1RfREVCVUdfSU5ERVhfX0NNX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNMl9DTV9URVNUX0RFQlVHX0lOREVYX19DTV9URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENNMl9DTV9URVNUX0RFQlVHX0lOREVYX19DTV9URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0NNMl9DTV9URVNUX0RFQlVHX0RBVEEKKyNkZWZpbmUgQ00yX0NNX1RFU1RfREVCVUdfREFUQV9fQ01fVEVTVF9ERUJVR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNMl9DTV9URVNUX0RFQlVHX0RBVEFfX0NNX1RFU1RfREVCVUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwMl9kaXNwZGVjX2RwcF9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT04xM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OMTNfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9OMTNfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTNfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjEzX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xM19QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwM19kaXNwZGVjX2RwcF90b3BfZGlzcGRlYworLy9EUFBfVE9QM19EUFBfQ09OVFJPTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ09OVFJPTF9fRFBQX0NMT0NLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RQUENMS19HX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQUF9UT1AzX0RQUF9DT05UUk9MX19EUFBDTEtfR19EWU5fR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUFBfVE9QM19EUFBfQ09OVFJPTF9fRFBQQ0xLX0dfRFNDTF9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfQUxQSEFfR0FURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQUF9UT1AzX0RQUF9DT05UUk9MX19EUFBDTEtfUl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RJU1BDTEtfUl9HQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUFBfVE9QM19EUFBfQ09OVFJPTF9fRElTUENMS19HX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQUF9UT1AzX0RQUF9DT05UUk9MX19EUFBfVEVTVF9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RQUF9DTE9DS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RQUENMS19HX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RQUENMS19HX0RZTl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RQUENMS19HX0RTQ0xfQUxQSEFfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RQUENMS19SX0dBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RJU1BDTEtfUl9HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RJU1BDTEtfR19HQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NPTlRST0xfX0RQUF9URVNUX0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBQX1RPUDNfRFBQX1NPRlRfUkVTRVQKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX1NPRlRfUkVTRVRfX0NOVkNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUF9UT1AzX0RQUF9TT0ZUX1JFU0VUX19EU0NMX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUFBfVE9QM19EUFBfU09GVF9SRVNFVF9fQ01fU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX1NPRlRfUkVTRVRfX09CVUZfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQUF9UT1AzX0RQUF9TT0ZUX1JFU0VUX19DTlZDX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQUF9UT1AzX0RQUF9TT0ZUX1JFU0VUX19EU0NMX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQUF9UT1AzX0RQUF9TT0ZUX1JFU0VUX19DTV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQUF9UT1AzX0RQUF9TT0ZUX1JFU0VUX19PQlVGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RQUF9UT1AzX0RQUF9DUkNfVkFMX1JfRworI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NSQ19WQUxfUl9HX19EUFBfQ1JDX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX1ZBTF9SX0dfX0RQUF9DUkNfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUFBfVE9QM19EUFBfQ1JDX1ZBTF9CX0EKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQUF9UT1AzX0RQUF9DUkNfVkFMX0JfQV9fRFBQX0NSQ19BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NSQ19WQUxfQl9BX19EUFBfQ1JDX0FMUEhBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBQX1RPUDNfRFBQX0NSQ19DVFJMCisjZGVmaW5lIERQUF9UT1AzX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX09ORV9TSE9UX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQUF9UT1AzX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ180MjBfQ09NUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX0NVUlNPUl9CSVRTX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQUF9UT1AzX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX0lOVEVSTEFDRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQUF9UT1AzX0RQUF9DUkNfQ1RSTF9fRFBQX0NSQ19QSVhfRk9STUFUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0ZPUk1BVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFBQX1RPUDNfRFBQX0NSQ19DVFJMX19EUFBfQ1JDX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfT05FX1NIT1RfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfNDIwX0NPTVBfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0JJVFNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfU1RFUkVPX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfSU5URVJMQUNFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfUElYX0ZPUk1BVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfQ1VSU09SX0ZPUk1BVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUFBfVE9QM19EUFBfQ1JDX0NUUkxfX0RQUF9DUkNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUFBfVE9QM19IT1NUX1JFQURfQ09OVFJPTAorI2RlZmluZSBEUFBfVE9QM19IT1NUX1JFQURfQ09OVFJPTF9fSE9TVF9SRUFEX1JBVEVfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBQX1RPUDNfSE9TVF9SRUFEX0NPTlRST0xfX0hPU1RfUkVBRF9SQVRFX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kcHAzX2Rpc3BkZWNfY252Y19jZmdfZGlzcGRlYworLy9DTlZDX0NGRzNfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVAorI2RlZmluZSBDTlZDX0NGRzNfQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9fQ05WQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkczX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVRfX0NOVkNfU1VSRkFDRV9QSVhFTF9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKy8vQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MCisjZGVmaW5lIENOVkNfQ0ZHM19GT1JNQVRfQ09OVFJPTF9fRk9STUFUX0VYUEFOU0lPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzNfRk9STUFUX0NPTlRST0xfX0ZPUk1BVF9DTlYxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19BTFBIQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENOVkNfQ0ZHM19GT1JNQVRfQ09OVFJPTF9fQ05WQ19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTlZDX0NGRzNfRk9STUFUX0NPTlRST0xfX0NOVkNfQllQQVNTX01TQl9BTElHTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzNfRk9STUFUX0NPTlRST0xfX0NMQU1QX1BPU0lUSVZFX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIENOVkNfQ0ZHM19GT1JNQVRfQ09OVFJPTF9fQ05WQ19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19GT1JNQVRfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19GT1JNQVRfQ05WMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19BTFBIQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19DTlZDX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19DTlZDX0JZUEFTU19NU0JfQUxJR05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19DTEFNUF9QT1NJVElWRV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQ05WQ19DRkczX0ZPUk1BVF9DT05UUk9MX19DTlZDX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vQ05WQ19DRkczX0ZDTlZfRlBfQklBU19SCisjZGVmaW5lIENOVkNfQ0ZHM19GQ05WX0ZQX0JJQVNfUl9fRkNOVl9GUF9CSUFTX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzNfRkNOVl9GUF9CSUFTX1JfX0ZDTlZfRlBfQklBU19SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9DTlZDX0NGRzNfRkNOVl9GUF9CSUFTX0cKKyNkZWZpbmUgQ05WQ19DRkczX0ZDTlZfRlBfQklBU19HX19GQ05WX0ZQX0JJQVNfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHM19GQ05WX0ZQX0JJQVNfR19fRkNOVl9GUF9CSUFTX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL0NOVkNfQ0ZHM19GQ05WX0ZQX0JJQVNfQgorI2RlZmluZSBDTlZDX0NGRzNfRkNOVl9GUF9CSUFTX0JfX0ZDTlZfRlBfQklBU19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkczX0ZDTlZfRlBfQklBU19CX19GQ05WX0ZQX0JJQVNfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkczX0ZDTlZfRlBfU0NBTEVfUgorI2RlZmluZSBDTlZDX0NGRzNfRkNOVl9GUF9TQ0FMRV9SX19GQ05WX0ZQX1NDQUxFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkczX0ZDTlZfRlBfU0NBTEVfUl9fRkNOVl9GUF9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkczX0ZDTlZfRlBfU0NBTEVfRworI2RlZmluZSBDTlZDX0NGRzNfRkNOVl9GUF9TQ0FMRV9HX19GQ05WX0ZQX1NDQUxFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkczX0ZDTlZfRlBfU0NBTEVfR19fRkNOVl9GUF9TQ0FMRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkczX0ZDTlZfRlBfU0NBTEVfQgorI2RlZmluZSBDTlZDX0NGRzNfRkNOVl9GUF9TQ0FMRV9CX19GQ05WX0ZQX1NDQUxFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkczX0ZDTlZfRlBfU0NBTEVfQl9fRkNOVl9GUF9TQ0FMRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ05WQ19DRkczX0NPTE9SX0tFWUVSX0NPTlRST0wKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0NPTlRST0xfX0NPTE9SX0tFWUVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHM19DT0xPUl9LRVlFUl9DT05UUk9MX19DT0xPUl9LRVlFUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDTlZDX0NGRzNfQ09MT1JfS0VZRVJfQ09OVFJPTF9fQ09MT1JfS0VZRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDTlZDX0NGRzNfQ09MT1JfS0VZRVJfQ09OVFJPTF9fQ09MT1JfS0VZRVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9DTlZDX0NGRzNfQ09MT1JfS0VZRVJfQUxQSEEKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHM19DT0xPUl9LRVlFUl9BTFBIQV9fQ09MT1JfS0VZRVJfQUxQSEFfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0FMUEhBX19DT0xPUl9LRVlFUl9BTFBIQV9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkczX0NPTE9SX0tFWUVSX1JFRAorI2RlZmluZSBDTlZDX0NGRzNfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX1JFRF9fQ09MT1JfS0VZRVJfUkVEX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzNfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTlZDX0NGRzNfQ09MT1JfS0VZRVJfUkVEX19DT0xPUl9LRVlFUl9SRURfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTlZDX0NGRzNfQ09MT1JfS0VZRVJfR1JFRU4KKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHM19DT0xPUl9LRVlFUl9HUkVFTl9fQ09MT1JfS0VZRVJfR1JFRU5fSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0dSRUVOX19DT0xPUl9LRVlFUl9HUkVFTl9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkczX0NPTE9SX0tFWUVSX0JMVUUKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENOVkNfQ0ZHM19DT0xPUl9LRVlFUl9CTFVFX19DT0xPUl9LRVlFUl9CTFVFX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ05WQ19DRkczX0NPTE9SX0tFWUVSX0JMVUVfX0NPTE9SX0tFWUVSX0JMVUVfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ05WQ19DRkczX0FMUEhBXzJCSVRfTFVUCisjZGVmaW5lIENOVkNfQ0ZHM19BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NGRzNfQUxQSEFfMkJJVF9MVVRfX0FMUEhBXzJCSVRfTFVUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ05WQ19DRkczX0FMUEhBXzJCSVRfTFVUX19BTFBIQV8yQklUX0xVVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTlZDX0NGRzNfQUxQSEFfMkJJVF9MVVRfX0FMUEhBXzJCSVRfTFVUM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIENOVkNfQ0ZHM19BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENOVkNfQ0ZHM19BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIENOVkNfQ0ZHM19BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIENOVkNfQ0ZHM19BTFBIQV8yQklUX0xVVF9fQUxQSEFfMkJJVF9MVVQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwM19kaXNwZGVjX2NudmNfY3VyX2Rpc3BkZWMKKy8vQ05WQ19DVVIzX0NVUlNPUjBfQ09OVFJPTAorI2RlZmluZSBDTlZDX0NVUjNfQ1VSU09SMF9DT05UUk9MX19DVVIwX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DVVIzX0NVUlNPUjBfQ09OVFJPTF9fQ1VSMF9FWFBBTlNJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYX0lOVl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDTlZDX0NVUjNfQ1VSU09SMF9DT05UUk9MX19DVVIwX1JPTV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQ05WQ19DVVIzX0NVUlNPUjBfQ09OVFJPTF9fQ1VSMF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYRUxfQUxQSEFfTU9EX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBDTlZDX0NVUjNfQ1VSU09SMF9DT05UUk9MX19DVVIwX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTlRST0xfX0NVUjBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTlRST0xfX0NVUjBfRVhQQU5TSU9OX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYX0lOVl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTlRST0xfX0NVUjBfUk9NX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTlRST0xfX0NVUjBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTlRST0xfX0NVUjBfUElYRUxfQUxQSEFfTU9EX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTlRST0xfX0NVUjBfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0NOVkNfQ1VSM19DVVJTT1IwX0NPTE9SMAorI2RlZmluZSBDTlZDX0NVUjNfQ1VSU09SMF9DT0xPUjBfX0NVUjBfQ09MT1IwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ05WQ19DVVIzX0NVUlNPUjBfQ09MT1IwX19DVVIwX0NPTE9SMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vQ05WQ19DVVIzX0NVUlNPUjBfQ09MT1IxCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0NPTE9SMV9fQ1VSMF9DT0xPUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NVUjNfQ1VSU09SMF9DT0xPUjFfX0NVUjBfQ09MT1IxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9DTlZDX0NVUjNfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfU0NBTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTlZDX0NVUjNfQ1VSU09SMF9GUF9TQ0FMRV9CSUFTX19DVVIwX0ZQX0JJQVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfU0NBTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENOVkNfQ1VSM19DVVJTT1IwX0ZQX1NDQUxFX0JJQVNfX0NVUjBfRlBfQklBU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwM19kaXNwZGVjX2RzY2xfZGlzcGRlYworLy9EU0NMM19TQ0xfQ09FRl9SQU1fVEFQX1NFTEVDVAorI2RlZmluZSBEU0NMM19TQ0xfQ09FRl9SQU1fVEFQX1NFTEVDVF9fU0NMX0NPRUZfUkFNX1RBUF9QQUlSX0lEWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wzX1NDTF9DT0VGX1JBTV9UQVBfU0VMRUNUX19TQ0xfQ09FRl9SQU1fRklMVEVSX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDNfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9UQVBfUEFJUl9JRFhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDNfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFNDTDNfU0NMX0NPRUZfUkFNX1RBUF9TRUxFQ1RfX1NDTF9DT0VGX1JBTV9GSUxURVJfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKy8vRFNDTDNfU0NMX0NPRUZfUkFNX1RBUF9EQVRBCisjZGVmaW5lIERTQ0wzX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1NDTF9DT0VGX1JBTV9FVkVOX1RBUF9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFNDTDNfU0NMX0NPRUZfUkFNX1RBUF9EQVRBX19TQ0xfQ09FRl9SQU1fT0REX1RBUF9DT0VGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMM19TQ0xfQ09FRl9SQU1fVEFQX0RBVEFfX1NDTF9DT0VGX1JBTV9PRERfVEFQX0NPRUZfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERTQ0wzX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wzX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX0VWRU5fVEFQX0NPRUZfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERTQ0wzX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisjZGVmaW5lIERTQ0wzX1NDTF9DT0VGX1JBTV9UQVBfREFUQV9fU0NMX0NPRUZfUkFNX09ERF9UQVBfQ09FRl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RTQ0wzX1NDTF9NT0RFCisjZGVmaW5lIERTQ0wzX1NDTF9NT0RFX19EU0NMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19TQ0xfTU9ERV9fU0NMX0NPRUZfUkFNX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDNfU0NMX01PREVfX1NDTF9DT0VGX1JBTV9TRUxFQ1RfQ1VSUkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0wzX1NDTF9NT0RFX19TQ0xfQ0hST01BX0NPRUZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDNfU0NMX01PREVfX1NDTF9BTFBIQV9DT0VGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEU0NMM19TQ0xfTU9ERV9fU0NMX0NPRUZfUkFNX1NFTEVDVF9SRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wzX1NDTF9NT0RFX19EU0NMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERTQ0wzX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0wzX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX0NVUlJFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERTQ0wzX1NDTF9NT0RFX19TQ0xfQ0hST01BX0NPRUZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERTQ0wzX1NDTF9NT0RFX19TQ0xfQUxQSEFfQ09FRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERTQ0wzX1NDTF9NT0RFX19TQ0xfQ09FRl9SQU1fU0VMRUNUX1JEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RTQ0wzX1NDTF9UQVBfQ09OVFJPTAorI2RlZmluZSBEU0NMM19TQ0xfVEFQX0NPTlRST0xfX1NDTF9WX05VTV9UQVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wzX1NDTF9UQVBfQ09OVFJPTF9fU0NMX1ZfTlVNX1RBUFNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMM19TQ0xfVEFQX0NPTlRST0xfX1NDTF9IX05VTV9UQVBTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDNfU0NMX1RBUF9DT05UUk9MX19TQ0xfVl9OVU1fVEFQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFNDTDNfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFNDTDNfU0NMX1RBUF9DT05UUk9MX19TQ0xfVl9OVU1fVEFQU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRFNDTDNfU0NMX1RBUF9DT05UUk9MX19TQ0xfSF9OVU1fVEFQU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKy8vRFNDTDNfRFNDTF9DT05UUk9MCisjZGVmaW5lIERTQ0wzX0RTQ0xfQ09OVFJPTF9fU0NMX0JPVU5EQVJZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19EU0NMX0NPTlRST0xfX1NDTF9CT1VOREFSWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NMM19EU0NMXzJUQVBfQ09OVFJPTAorI2RlZmluZSBEU0NMM19EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfRFNDTF8yVEFQX0NPTlRST0xfX1NDTF9IXzJUQVBfU0hBUlBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wzX0RTQ0xfMlRBUF9DT05UUk9MX19TQ0xfSF8yVEFQX1NIQVJQX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMM19EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wzX0RTQ0xfMlRBUF9DT05UUk9MX19TQ0xfVl8yVEFQX1NIQVJQX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFNDTDNfRFNDTF8yVEFQX0NPTlRST0xfX1NDTF9WXzJUQVBfU0hBUlBfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMM19EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NMM19EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9TSEFSUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NMM19EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX0hfMlRBUF9TSEFSUF9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEU0NMM19EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9IQVJEQ09ERV9DT0VGX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEU0NMM19EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9TSEFSUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEU0NMM19EU0NMXzJUQVBfQ09OVFJPTF9fU0NMX1ZfMlRBUF9TSEFSUF9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorLy9EU0NMM19TQ0xfTUFOVUFMX1JFUExJQ0FURV9DT05UUk9MCisjZGVmaW5lIERTQ0wzX1NDTF9NQU5VQUxfUkVQTElDQVRFX0NPTlRST0xfX1NDTF9WX01BTlVBTF9SRVBMSUNBVEVfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19TQ0xfTUFOVUFMX1JFUExJQ0FURV9DT05UUk9MX19TQ0xfSF9NQU5VQUxfUkVQTElDQVRFX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDNfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9fU0NMX1ZfTUFOVUFMX1JFUExJQ0FURV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDTDNfU0NMX01BTlVBTF9SRVBMSUNBVEVfQ09OVFJPTF9fU0NMX0hfTUFOVUFMX1JFUExJQ0FURV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKy8vRFNDTDNfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPCisjZGVmaW5lIERTQ0wzX1NDTF9IT1JaX0ZJTFRFUl9TQ0FMRV9SQVRJT19fU0NMX0hfU0NBTEVfUkFUSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fX1NDTF9IX1NDQUxFX1JBVElPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRkZGTAorLy9EU0NMM19TQ0xfSE9SWl9GSUxURVJfSU5JVAorI2RlZmluZSBEU0NMM19TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9GUkFDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfU0NMX0hPUlpfRklMVEVSX0lOSVRfX1NDTF9IX0lOSVRfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMM19TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9GUkFDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMM19TQ0xfSE9SWl9GSUxURVJfSU5JVF9fU0NMX0hfSU5JVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMM19TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQworI2RlZmluZSBEU0NMM19TQ0xfSE9SWl9GSUxURVJfU0NBTEVfUkFUSU9fQ19fU0NMX0hfU0NBTEVfUkFUSU9fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfU0NMX0hPUlpfRklMVEVSX1NDQUxFX1JBVElPX0NfX1NDTF9IX1NDQUxFX1JBVElPX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKy8vRFNDTDNfU0NMX0hPUlpfRklMVEVSX0lOSVRfQworI2RlZmluZSBEU0NMM19TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0ZSQUNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfU0NMX0hPUlpfRklMVEVSX0lOSVRfQ19fU0NMX0hfSU5JVF9JTlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMM19TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0ZSQUNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMM19TQ0xfSE9SWl9GSUxURVJfSU5JVF9DX19TQ0xfSF9JTklUX0lOVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMM19TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU8KKyNkZWZpbmUgRFNDTDNfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX19TQ0xfVl9TQ0FMRV9SQVRJT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9TQ0FMRV9SQVRJT19fU0NMX1ZfU0NBTEVfUkFUSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGRkZMCisvL0RTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9JTklUCisjZGVmaW5lIERTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0ZSQUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9fU0NMX1ZfSU5JVF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0ZSQUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIERTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9JTklUX19TQ0xfVl9JTklUX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL0RTQ0wzX1NDTF9WRVJUX0ZJTFRFUl9JTklUX0JPVAorI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfRlJBQ19CT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQk9UX19TQ0xfVl9JTklUX0lOVF9CT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfRlJBQ19CT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfX1NDTF9WX0lOSVRfSU5UX0JPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMM19TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQworI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfU0NBTEVfUkFUSU9fQ19fU0NMX1ZfU0NBTEVfUkFUSU9fQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfU0NMX1ZFUlRfRklMVEVSX1NDQUxFX1JBVElPX0NfX1NDTF9WX1NDQUxFX1JBVElPX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKy8vRFNDTDNfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQworI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0ZSQUNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQ19fU0NMX1ZfSU5JVF9JTlRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0ZSQUNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9DX19TQ0xfVl9JTklUX0lOVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQworI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9GUkFDX0JPVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfU0NMX1ZFUlRfRklMVEVSX0lOSVRfQk9UX0NfX1NDTF9WX0lOSVRfSU5UX0JPVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9GUkFDX0JPVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBEU0NMM19TQ0xfVkVSVF9GSUxURVJfSU5JVF9CT1RfQ19fU0NMX1ZfSU5JVF9JTlRfQk9UX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9EU0NMM19TQ0xfQkxBQ0tfT0ZGU0VUCisjZGVmaW5lIERTQ0wzX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfUkdCX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19TQ0xfQkxBQ0tfT0ZGU0VUX19TQ0xfQkxBQ0tfT0ZGU0VUX0NCQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wzX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfUkdCX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0wzX1NDTF9CTEFDS19PRkZTRVRfX1NDTF9CTEFDS19PRkZTRVRfQ0JDUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0wzX0RTQ0xfVVBEQVRFCisjZGVmaW5lIERTQ0wzX0RTQ0xfVVBEQVRFX19TQ0xfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19EU0NMX1VQREFURV9fU0NMX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NMM19EU0NMX0FVVE9DQUwKKyNkZWZpbmUgRFNDTDNfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wzX0RTQ0xfQVVUT0NBTF9fQVVUT0NBTF9OVU1fUElQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NMM19EU0NMX0FVVE9DQUxfX0FVVE9DQUxfUElQRV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDNfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDNfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX05VTV9QSVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9BVVRPQ0FMX19BVVRPQ0FMX1BJUEVfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRFNDTDNfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVAorI2RlZmluZSBEU0NMM19EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fUklHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfRFNDTF9FWFRfT1ZFUlNDQU5fTEVGVF9SSUdIVF9fRVhUX09WRVJTQ0FOX0xFRlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMM19EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fUklHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMM19EU0NMX0VYVF9PVkVSU0NBTl9MRUZUX1JJR0hUX19FWFRfT1ZFUlNDQU5fTEVGVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMM19EU0NMX0VYVF9PVkVSU0NBTl9UT1BfQk9UVE9NCisjZGVmaW5lIERTQ0wzX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9CT1RUT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19EU0NMX0VYVF9PVkVSU0NBTl9UT1BfQk9UVE9NX19FWFRfT1ZFUlNDQU5fVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wzX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9CT1RUT01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIERTQ0wzX0RTQ0xfRVhUX09WRVJTQ0FOX1RPUF9CT1RUT01fX0VYVF9PVkVSU0NBTl9UT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL0RTQ0wzX09UR19IX0JMQU5LCisjZGVmaW5lIERTQ0wzX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19PVEdfSF9CTEFOS19fT1RHX0hfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wzX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wzX09UR19IX0JMQU5LX19PVEdfSF9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RTQ0wzX09UR19WX0JMQU5LCisjZGVmaW5lIERTQ0wzX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19PVEdfVl9CTEFOS19fT1RHX1ZfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0wzX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERTQ0wzX09UR19WX0JMQU5LX19PVEdfVl9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RTQ0wzX1JFQ09VVF9TVEFSVAorI2RlZmluZSBEU0NMM19SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfUkVDT1VUX1NUQVJUX19SRUNPVVRfU1RBUlRfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMM19SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMM19SRUNPVVRfU1RBUlRfX1JFQ09VVF9TVEFSVF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMM19SRUNPVVRfU0laRQorI2RlZmluZSBEU0NMM19SRUNPVVRfU0laRV9fUkVDT1VUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfUkVDT1VUX1NJWkVfX1JFQ09VVF9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMM19SRUNPVVRfU0laRV9fUkVDT1VUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEU0NMM19SRUNPVVRfU0laRV9fUkVDT1VUX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EU0NMM19NUENfU0laRQorI2RlZmluZSBEU0NMM19NUENfU0laRV9fTVBDX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfTVBDX1NJWkVfX01QQ19IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMM19NUENfU0laRV9fTVBDX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEU0NMM19NUENfU0laRV9fTVBDX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EU0NMM19MQl9EQVRBX0ZPUk1BVAorI2RlZmluZSBEU0NMM19MQl9EQVRBX0ZPUk1BVF9fSU5URVJMRUFWRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfTEJfREFUQV9GT1JNQVRfX0FMUEhBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0wzX0xCX0RBVEFfRk9STUFUX19JTlRFUkxFQVZFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ0wzX0xCX0RBVEFfRk9STUFUX19BTFBIQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0RTQ0wzX0xCX01FTU9SWV9DVFJMCisjZGVmaW5lIERTQ0wzX0xCX01FTU9SWV9DVFJMX19NRU1PUllfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19MQl9NRU1PUllfQ1RSTF9fTEJfTUFYX1BBUlRJVElPTlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDNfTEJfTUVNT1JZX0NUUkxfX0xCX05VTV9QQVJUSVRJT05TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMM19MQl9NRU1PUllfQ1RSTF9fTEJfTlVNX1BBUlRJVElPTlNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0wzX0xCX01FTU9SWV9DVFJMX19NRU1PUllfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERTQ0wzX0xCX01FTU9SWV9DVFJMX19MQl9NQVhfUEFSVElUSU9OU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERTQ0wzX0xCX01FTU9SWV9DVFJMX19MQl9OVU1fUEFSVElUSU9OU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisjZGVmaW5lIERTQ0wzX0xCX01FTU9SWV9DVFJMX19MQl9OVU1fUEFSVElUSU9OU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0YwMDAwMDBMCisvL0RTQ0wzX0xCX1ZfQ09VTlRFUgorI2RlZmluZSBEU0NMM19MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfTEJfVl9DT1VOVEVSX19WX0NPVU5URVJfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMM19MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBEU0NMM19MQl9WX0NPVU5URVJfX1ZfQ09VTlRFUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EU0NMM19EU0NMX01FTV9QV1JfQ1RSTAorI2RlZmluZSBEU0NMM19EU0NMX01FTV9QV1JfQ1RSTF9fTFVUX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0wzX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HMV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NMM19EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzFfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wzX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HMl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NMM19EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzNfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERTQ0wzX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HNF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEU0NMM19EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzVfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERTQ0wzX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9HNV9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NMM19EU0NMX01FTV9QV1JfQ1RSTF9fTEJfRzZfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0wzX0RTQ0xfTUVNX1BXUl9DVFJMX19MQl9NRU1fUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xVVF9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cxX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cxX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0cyX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0czX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c0X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c1X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c1X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX0c2X01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX0NUUkxfX0xCX01FTV9QV1JfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVUworI2RlZmluZSBEU0NMM19EU0NMX01FTV9QV1JfU1RBVFVTX19MVVRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzFfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0wzX0RTQ0xfTUVNX1BXUl9TVEFUVVNfX0xCX0cyX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NMM19EU0NMX01FTV9QV1JfU1RBVFVTX19MQl9HM19NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0wzX0RTQ0xfTUVNX1BXUl9TVEFUVVNfX0xCX0c1X01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NMM19EU0NMX01FTV9QV1JfU1RBVFVTX19MQl9HNl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVU19fTFVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzFfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzJfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzNfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzRfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzVfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgRFNDTDNfRFNDTF9NRU1fUFdSX1NUQVRVU19fTEJfRzZfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRFNDTDNfT0JVRl9DT05UUk9MCisjZGVmaW5lIERTQ0wzX09CVUZfQ09OVFJPTF9fT0JVRl9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NMM19PQlVGX0NPTlRST0xfX09CVUZfVVNFX0ZVTExfQlVGRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDTDNfT0JVRl9DT05UUk9MX19PQlVGX0lTX0hBTEZfUkVDT1VUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0wzX09CVUZfQ09OVFJPTF9fT0JVRl9PVVRfSE9MRF9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDTDNfT0JVRl9DT05UUk9MX19PQlVGX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDTDNfT0JVRl9DT05UUk9MX19PQlVGX1VTRV9GVUxMX0JVRkZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDTDNfT0JVRl9DT05UUk9MX19PQlVGX0lTX0hBTEZfUkVDT1VUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFNDTDNfT0JVRl9DT05UUk9MX19PQlVGX09VVF9IT0xEX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFNDTDNfT0JVRl9NRU1fUFdSX0NUUkwKKyNkZWZpbmUgRFNDTDNfT0JVRl9NRU1fUFdSX0NUUkxfX09CVUZfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0wzX09CVUZfTUVNX1BXUl9DVFJMX19PQlVGX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEU0NMM19PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDTDNfT0JVRl9NRU1fUFdSX0NUUkxfX09CVUZfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NMM19PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEU0NMM19PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEU0NMM19PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NMM19PQlVGX01FTV9QV1JfQ1RSTF9fT0JVRl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RwcDNfZGlzcGRlY19jbV9kaXNwZGVjCisvL0NNM19DTV9DT05UUk9MCisjZGVmaW5lIENNM19DTV9DT05UUk9MX19DTV9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQ09OVFJPTF9fQ01fVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00zX0NNX0NPTlRST0xfX0NNX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ00zX0NNX0NPTlRST0xfX0NNX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQ00zX0NNX0lDU0NfQ09OVFJPTAorI2RlZmluZSBDTTNfQ01fSUNTQ19DT05UUk9MX19DTV9JQ1NDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQ09OVFJPTF9fQ01fSUNTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00zX0NNX0lDU0NfQzExX0MxMgorI2RlZmluZSBDTTNfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQzExX0MxMl9fQ01fSUNTQ19DMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fSUNTQ19DMTFfQzEyX19DTV9JQ1NDX0MxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fSUNTQ19DMTNfQzE0CisjZGVmaW5lIENNM19DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fSUNTQ19DMTNfQzE0X19DTV9JQ1NDX0MxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9JQ1NDX0MxM19DMTRfX0NNX0lDU0NfQzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9JQ1NDX0MyMV9DMjIKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9JQ1NDX0MyMV9DMjJfX0NNX0lDU0NfQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQzIxX0MyMl9fQ01fSUNTQ19DMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0lDU0NfQzIzX0MyNAorI2RlZmluZSBDTTNfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQzIzX0MyNF9fQ01fSUNTQ19DMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fSUNTQ19DMjNfQzI0X19DTV9JQ1NDX0MyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fSUNTQ19DMzFfQzMyCisjZGVmaW5lIENNM19DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fSUNTQ19DMzFfQzMyX19DTV9JQ1NDX0MzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9JQ1NDX0MzMV9DMzJfX0NNX0lDU0NfQzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9JQ1NDX0MzM19DMzQKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9JQ1NDX0MzM19DMzRfX0NNX0lDU0NfQzM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQzMzX0MzNF9fQ01fSUNTQ19DMzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0lDU0NfQl9DMTFfQzEyCisjZGVmaW5lIENNM19DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fSUNTQ19CX0MxMV9DMTJfX0NNX0lDU0NfQl9DMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9JQ1NDX0JfQzExX0MxMl9fQ01fSUNTQ19CX0MxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9JQ1NDX0JfQzEzX0MxNAorI2RlZmluZSBDTTNfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQl9DMTNfQzE0X19DTV9JQ1NDX0JfQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fSUNTQ19CX0MxM19DMTRfX0NNX0lDU0NfQl9DMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fSUNTQ19CX0MyMV9DMjIKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9JQ1NDX0JfQzIxX0MyMl9fQ01fSUNTQ19CX0MyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQl9DMjFfQzIyX19DTV9JQ1NDX0JfQzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0lDU0NfQl9DMjNfQzI0CisjZGVmaW5lIENNM19DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fSUNTQ19CX0MyM19DMjRfX0NNX0lDU0NfQl9DMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9JQ1NDX0JfQzIzX0MyNF9fQ01fSUNTQ19CX0MyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9JQ1NDX0JfQzMxX0MzMgorI2RlZmluZSBDTTNfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQl9DMzFfQzMyX19DTV9JQ1NDX0JfQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fSUNTQ19CX0MzMV9DMzJfX0NNX0lDU0NfQl9DMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fSUNTQ19CX0MzM19DMzQKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9JQ1NDX0JfQzMzX0MzNF9fQ01fSUNTQ19CX0MzNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0lDU0NfQl9DMzNfQzM0X19DTV9JQ1NDX0JfQzM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0dBTVVUX1JFTUFQX0NPTlRST0wKKyNkZWZpbmUgQ00zX0NNX0dBTVVUX1JFTUFQX0NPTlRST0xfX0NNX0dBTVVUX1JFTUFQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DT05UUk9MX19DTV9HQU1VVF9SRU1BUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0NNM19DTV9HQU1VVF9SRU1BUF9DMTFfQzEyCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMTFfQzEyX19DTV9HQU1VVF9SRU1BUF9DMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9HQU1VVF9SRU1BUF9DMTNfQzE0CisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQzEzX0MxNF9fQ01fR0FNVVRfUkVNQVBfQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9DMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9HQU1VVF9SRU1BUF9DMjFfQzIyCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQzIxX0MyMl9fQ01fR0FNVVRfUkVNQVBfQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9DMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9HQU1VVF9SRU1BUF9DMjNfQzI0CisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQzI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMjNfQzI0X19DTV9HQU1VVF9SRU1BUF9DMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9HQU1VVF9SRU1BUF9DMzFfQzMyCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQzMxX0MzMl9fQ01fR0FNVVRfUkVNQVBfQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9DMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9HQU1VVF9SRU1BUF9DMzNfQzM0CisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQzMzX0MzNF9fQ01fR0FNVVRfUkVNQVBfQzM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9DMzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTIKKyNkZWZpbmUgQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9CX0MxMV9DMTJfX0NNX0dBTVVUX1JFTUFQX0JfQzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzExX0MxMl9fQ01fR0FNVVRfUkVNQVBfQl9DMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzEzX0MxNF9fQ01fR0FNVVRfUkVNQVBfQl9DMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQl9DMTNfQzE0X19DTV9HQU1VVF9SRU1BUF9CX0MxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQl9DMjFfQzIyX19DTV9HQU1VVF9SRU1BUF9CX0MyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9CX0MyMV9DMjJfX0NNX0dBTVVUX1JFTUFQX0JfQzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjQKKyNkZWZpbmUgQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9CX0MyM19DMjRfX0NNX0dBTVVUX1JFTUFQX0JfQzI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzIzX0MyNF9fQ01fR0FNVVRfUkVNQVBfQl9DMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMgorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0dBTVVUX1JFTUFQX0JfQzMxX0MzMl9fQ01fR0FNVVRfUkVNQVBfQl9DMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQl9DMzFfQzMyX19DTV9HQU1VVF9SRU1BUF9CX0MzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0CisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fR0FNVVRfUkVNQVBfQl9DMzNfQzM0X19DTV9HQU1VVF9SRU1BUF9CX0MzNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9HQU1VVF9SRU1BUF9CX0MzM19DMzRfX0NNX0dBTVVUX1JFTUFQX0JfQzM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9CSUFTX0NSX1IKKyNkZWZpbmUgQ00zX0NNX0JJQVNfQ1JfUl9fQ01fQklBU19DUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CSUFTX0NSX1JfX0NNX0JJQVNfQ1JfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNM19DTV9CSUFTX1lfR19DQl9CCisjZGVmaW5lIENNM19DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX1lfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQklBU19ZX0dfQ0JfQl9fQ01fQklBU19DQl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX1lfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9CSUFTX1lfR19DQl9CX19DTV9CSUFTX0NCX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9ER0FNX0NPTlRST0wKKyNkZWZpbmUgQ00zX0NNX0RHQU1fQ09OVFJPTF9fQ01fREdBTV9MVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX0NPTlRST0xfX0NNX0RHQU1fTFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL0NNM19DTV9ER0FNX0xVVF9JTkRFWAorI2RlZmluZSBDTTNfQ01fREdBTV9MVVRfSU5ERVhfX0NNX0RHQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fTFVUX0lOREVYX19DTV9ER0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKy8vQ00zX0NNX0RHQU1fTFVUX0RBVEEKKyNkZWZpbmUgQ00zX0NNX0RHQU1fTFVUX0RBVEFfX0NNX0RHQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX0xVVF9EQVRBX19DTV9ER0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL0NNM19DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLCisjZGVmaW5lIENNM19DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00zX0NNX0RHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0RHQU1fQ09ORklHX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNM19DTV9ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9ER0FNX1dSSVRFX0xVVF9CQVNFX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBDTTNfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9MVVRfV1JJVEVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTNfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9DT05GSUdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBDTTNfQ01fREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fREdBTV9XUklURV9MVVRfQkFTRV9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9DTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQgorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfRworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTNfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQgorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfQl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00zX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9TTE9QRV9DTlRMX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNM19DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfU0xPUEVfQ05UTF9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1NMT1BFX0NOVExfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9CX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0cKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwxX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0cKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUgorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMV9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDFfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUgorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzEKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNQorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fNF81X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fREdBTV9SQU1BX1JFR0lPTl82XzcKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fNl83X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85CisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fOF85X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1CisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9CX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTNfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfRworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1NMT1BFX0NOVExfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX0dfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00zX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1IKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9TTE9QRV9DTlRMX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0IKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX0JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0IKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfQl9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfRworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDFfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfRworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9HX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwxX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMV9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfRU5EX0NOVEwyX1JfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMQorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81CisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fNF81X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzZfNworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fNl83X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fREdBTV9SQU1CX1JFR0lPTl84XzkKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fOF85X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTEKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTUKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fREdBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0RHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0RHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0JMTkRHQU1fQ09OVFJPTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9DT05UUk9MX19DTV9CTE5ER0FNX0xVVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fQ09OVFJPTF9fQ01fQkxOREdBTV9MVVRfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00zX0NNX0JMTkRHQU1fTFVUX0lOREVYCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX0xVVF9JTkRFWF9fQ01fQkxOREdBTV9MVVRfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9MVVRfSU5ERVhfX0NNX0JMTkRHQU1fTFVUX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorLy9DTTNfQ01fQkxOREdBTV9MVVRfREFUQQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9MVVRfREFUQV9fQ01fQkxOREdBTV9MVVRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fTFVUX0RBVEFfX0NNX0JMTkRHQU1fTFVUX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00zX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0sKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX0xVVF9XUklURV9FTl9NQVNLX19DTV9CTE5ER0FNX0xVVF9XUklURV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9MVVRfV1JJVEVfRU5fTUFTS19fQ01fQkxOREdBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fTFVUX1dSSVRFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fTFVUX1dSSVRFX0VOX01BU0tfX0NNX0JMTkRHQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNM19DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfU0xPUEVfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfR19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1NMT1BFX0NOVExfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9TTE9QRV9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfQl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfQl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMV9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX0VORF9DTlRMMl9HX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDFfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwxX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfRU5EX0NOVEwyX1JfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQV9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQV9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1BX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9TVEFSVF9DTlRMX1JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NUQVJUX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfQl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9TTE9QRV9DTlRMX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9HX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfU0xPUEVfQ05UTF9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1NMT1BFX0NOVExfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9DTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9CX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9CX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0JfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwxX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfRU5EX0NOVEwyX0dfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfR19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMV9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDFfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9FTkRfQ05UTDJfUl9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX0VORF9DTlRMMl9SX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8wXzFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzBfMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMF8xX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMl8zX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yXzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzJfM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzRfNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNF81X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl80XzVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl82XzdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzZfN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fNl83X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fOF85X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl84XzlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzhfOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTBfMTFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEwXzExX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTJfMTNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xMl8xM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTRfMTVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMTZfMTdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xNl8xN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMThfMTlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjBfMjFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjJfMjNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yMl8yM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjRfMjVfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjZfMjdfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yNl8yN19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMjhfMjlfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzBfMzFfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX0JMTkRHQU1fUkFNQl9SRUdJT05fMzJfMzNfX0NNX0JMTkRHQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fQkxOREdBTV9SQU1CX1JFR0lPTl8zMl8zM19fQ01fQkxOREdBTV9SQU1CX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9CTE5ER0FNX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9CTE5ER0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9IRFJfTVVMVF9DT0VGCisjZGVmaW5lIENNM19DTV9IRFJfTVVMVF9DT0VGX19DTV9IRFJfTVVMVF9DT0VGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fSERSX01VTFRfQ09FRl9fQ01fSERSX01VTFRfQ09FRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9DTTNfQ01fTUVNX1BXUl9DVFJMCisjZGVmaW5lIENNM19DTV9NRU1fUFdSX0NUUkxfX1NIQVJFRF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ00zX0NNX01FTV9QV1JfQ1RSTF9fQkxOREdBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNM19DTV9NRU1fUFdSX0NUUkxfX0JMTkRHQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9DVFJMX19TSEFSRURfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9DVFJMX19CTE5ER0FNX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9DVFJMX19CTE5ER0FNX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9DTTNfQ01fTUVNX1BXUl9TVEFUVVMKKyNkZWZpbmUgQ00zX0NNX01FTV9QV1JfU1RBVFVTX19TSEFSRURfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9NRU1fUFdSX1NUQVRVU19fQkxOREdBTV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9TVEFUVVNfX1NIQVJFRF9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9TVEFUVVNfX0JMTkRHQU1fTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9DTTNfQ01fREVBTFBIQQorI2RlZmluZSBDTTNfQ01fREVBTFBIQV9fQ01fREVBTFBIQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX0RFQUxQSEFfX0NNX0RFQUxQSEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ00zX0NNX0NPRUZfRk9STUFUCisjZGVmaW5lIENNM19DTV9DT0VGX0ZPUk1BVF9fQ01fQklBU19GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fQ09FRl9GT1JNQVRfX0NNX0lDU0NfQ09FRl9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00zX0NNX0NPRUZfRk9STUFUX19DTV9HQU1VVF9SRU1BUF9DT0VGX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNM19DTV9DT0VGX0ZPUk1BVF9fQ01fQklBU19GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENNM19DTV9DT0VGX0ZPUk1BVF9fQ01fSUNTQ19DT0VGX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENNM19DTV9DT0VGX0ZPUk1BVF9fQ01fR0FNVVRfUkVNQVBfQ09FRl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0NNM19DTV9TSEFQRVJfQ09OVFJPTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX0NPTlRST0xfX0NNX1NIQVBFUl9MVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9DT05UUk9MX19DTV9TSEFQRVJfTFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vQ00zX0NNX1NIQVBFUl9PRkZTRVRfUgorI2RlZmluZSBDTTNfQ01fU0hBUEVSX09GRlNFVF9SX19DTV9TSEFQRVJfT0ZGU0VUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9PRkZTRVRfUl9fQ01fU0hBUEVSX09GRlNFVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00zX0NNX1NIQVBFUl9PRkZTRVRfRworI2RlZmluZSBDTTNfQ01fU0hBUEVSX09GRlNFVF9HX19DTV9TSEFQRVJfT0ZGU0VUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9PRkZTRVRfR19fQ01fU0hBUEVSX09GRlNFVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00zX0NNX1NIQVBFUl9PRkZTRVRfQgorI2RlZmluZSBDTTNfQ01fU0hBUEVSX09GRlNFVF9CX19DTV9TSEFQRVJfT0ZGU0VUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9PRkZTRVRfQl9fQ01fU0hBUEVSX09GRlNFVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRkwKKy8vQ00zX0NNX1NIQVBFUl9TQ0FMRV9SCisjZGVmaW5lIENNM19DTV9TSEFQRVJfU0NBTEVfUl9fQ01fU0hBUEVSX1NDQUxFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1NDQUxFX1JfX0NNX1NIQVBFUl9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTNfQ01fU0hBUEVSX1NDQUxFX0dfQgorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9TQ0FMRV9HX0JfX0NNX1NIQVBFUl9TQ0FMRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1NDQUxFX0dfQl9fQ01fU0hBUEVSX1NDQUxFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fU0hBUEVSX0xVVF9JTkRFWAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX0xVVF9JTkRFWF9fQ01fU0hBUEVSX0xVVF9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9MVVRfSU5ERVhfX0NNX1NIQVBFUl9MVVRfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQ00zX0NNX1NIQVBFUl9MVVRfREFUQQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX0xVVF9EQVRBX19DTV9TSEFQRVJfTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9MVVRfREFUQV9fQ01fU0hBUEVSX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vQ00zX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTSworI2RlZmluZSBDTTNfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9MVVRfV1JJVEVfRU5fTUFTS19fQ01fU0hBUEVSX0xVVF9XUklURV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNM19DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfX0NNX1NIQVBFUl9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfTFVUX1dSSVRFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX0xVVF9XUklURV9FTl9NQVNLX19DTV9TSEFQRVJfQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9CX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9TVEFSVF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1NUQVJUX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQgorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfRworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUgorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX0VORF9DTlRMX1JfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMF8xX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMl8zX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fNF81X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfNworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fNl83X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fOF85X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMF8xMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzEyXzEzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTRfMTVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xNl8xN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTkKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzE4XzE5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjBfMjFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yMl8yM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjUKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI0XzI1X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjZfMjdfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8yOF8yOV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzEKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMwXzMxX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQV9SRUdJT05fMzJfMzNfX0NNX1NIQVBFUl9SQU1BX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1BX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUFfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQV9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9CX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9TVEFSVF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1NUQVJUX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfU1RBUlRfQ05UTF9SX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQgorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfQl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfRworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX0dfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfR19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUgorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX0VORF9DTlRMX1JfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfRU5EX0NOVExfUl9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMF8xX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8wXzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzBfMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfMworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMl8zX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yXzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzJfM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fNF81X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl80XzVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzRfNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfNworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fNl83X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl82XzdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzZfN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fOF85X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl84XzlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzhfOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMF8xMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEwXzExX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTBfMTFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzEyXzEzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTJfMTNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xMl8xM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTRfMTVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNF8xNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE0XzE1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xNl8xN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE2XzE3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMTZfMTdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTkKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzE4XzE5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMThfMTlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8xOF8xOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMQorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjBfMjFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMF8yMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIwXzIxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yMl8yM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzIyXzIzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjJfMjNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjUKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI0XzI1X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjRfMjVfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNF8yNV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yNworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjZfMjdfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yNl8yN19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI2XzI3X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8yOF8yOV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzI4XzI5X19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMjhfMjlfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0NNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzEKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMwXzMxX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzBfMzFfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMF8zMV9fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zMworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIENNM19DTV9TSEFQRVJfUkFNQl9SRUdJT05fMzJfMzNfX0NNX1NIQVBFUl9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNX1NIQVBFUl9SQU1CX1JFR0lPTl8zMl8zM19fQ01fU0hBUEVSX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBDTTNfQ01fU0hBUEVSX1JBTUJfUkVHSU9OXzMyXzMzX19DTV9TSEFQRVJfUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9DTTNfQ01fTUVNX1BXUl9DVFJMMgorI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9DVFJMMl9fU0hBUEVSX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ00zX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIENNM19DTV9NRU1fUFdSX0NUUkwyX19IRFIzRExVVF9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9DVFJMMl9fSERSM0RMVVRfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgQ00zX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgQ00zX0NNX01FTV9QV1JfQ1RSTDJfX1NIQVBFUl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQ00zX0NNX01FTV9QV1JfQ1RSTDJfX0hEUjNETFVUX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgQ00zX0NNX01FTV9QV1JfQ1RSTDJfX0hEUjNETFVUX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKy8vQ00zX0NNX01FTV9QV1JfU1RBVFVTMgorI2RlZmluZSBDTTNfQ01fTUVNX1BXUl9TVEFUVVMyX19TSEFQRVJfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00zX0NNX01FTV9QV1JfU1RBVFVTMl9fSERSM0RMVVRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIENNM19DTV9NRU1fUFdSX1NUQVRVUzJfX1NIQVBFUl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIENNM19DTV9NRU1fUFdSX1NUQVRVUzJfX0hEUjNETFVUX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisvL0NNM19DTV8zRExVVF9NT0RFCisjZGVmaW5lIENNM19DTV8zRExVVF9NT0RFX19DTV8zRExVVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fM0RMVVRfTU9ERV9fQ01fM0RMVVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ00zX0NNXzNETFVUX01PREVfX0NNXzNETFVUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQ00zX0NNXzNETFVUX01PREVfX0NNXzNETFVUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQ00zX0NNXzNETFVUX0lOREVYCisjZGVmaW5lIENNM19DTV8zRExVVF9JTkRFWF9fQ01fM0RMVVRfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fM0RMVVRfSU5ERVhfX0NNXzNETFVUX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0ZGTAorLy9DTTNfQ01fM0RMVVRfREFUQQorI2RlZmluZSBDTTNfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNXzNETFVUX0RBVEFfX0NNXzNETFVUX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fM0RMVVRfREFUQV9fQ01fM0RMVVRfREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fM0RMVVRfREFUQV8zMEJJVAorI2RlZmluZSBDTTNfQ01fM0RMVVRfREFUQV8zMEJJVF9fQ01fM0RMVVRfREFUQV8zMEJJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ00zX0NNXzNETFVUX0RBVEFfMzBCSVRfX0NNXzNETFVUX0RBVEFfMzBCSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vQ00zX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTAorI2RlZmluZSBDTTNfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9XUklURV9FTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTF9fQ01fM0RMVVRfUkFNX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENNM19DTV8zRExVVF9SRUFEX1dSSVRFX0NPTlRST0xfX0NNXzNETFVUXzMwQklUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDTTNfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ00zX0NNXzNETFVUX1JFQURfV1JJVEVfQ09OVFJPTF9fQ01fM0RMVVRfUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9XUklURV9FTl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBDTTNfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9SQU1fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBDTTNfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF8zMEJJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBDTTNfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9DT05GSUdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBDTTNfQ01fM0RMVVRfUkVBRF9XUklURV9DT05UUk9MX19DTV8zRExVVF9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9DTTNfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SCisjZGVmaW5lIENNM19DTV8zRExVVF9PVVRfTk9STV9GQUNUT1JfX0NNXzNETFVUX09VVF9OT1JNX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fM0RMVVRfT1VUX05PUk1fRkFDVE9SX19DTV8zRExVVF9PVVRfTk9STV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DTTNfQ01fM0RMVVRfT1VUX09GRlNFVF9SCisjZGVmaW5lIENNM19DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9PRkZTRVRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDTTNfQ01fM0RMVVRfT1VUX09GRlNFVF9SX19DTV8zRExVVF9PVVRfU0NBTEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIENNM19DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9PRkZTRVRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIENNM19DTV8zRExVVF9PVVRfT0ZGU0VUX1JfX0NNXzNETFVUX09VVF9TQ0FMRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0NNM19DTV8zRExVVF9PVVRfT0ZGU0VUX0cKKyNkZWZpbmUgQ00zX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX09GRlNFVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV8zRExVVF9PVVRfT0ZGU0VUX0dfX0NNXzNETFVUX09VVF9TQ0FMRV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ00zX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX09GRlNFVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQ00zX0NNXzNETFVUX09VVF9PRkZTRVRfR19fQ01fM0RMVVRfT1VUX1NDQUxFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQ00zX0NNXzNETFVUX09VVF9PRkZTRVRfQgorI2RlZmluZSBDTTNfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfT0ZGU0VUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNXzNETFVUX09VVF9PRkZTRVRfQl9fQ01fM0RMVVRfT1VUX1NDQUxFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBDTTNfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfT0ZGU0VUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBDTTNfQ01fM0RMVVRfT1VUX09GRlNFVF9CX19DTV8zRExVVF9PVVRfU0NBTEVfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9DTTNfQ01fVEVTVF9ERUJVR19JTkRFWAorI2RlZmluZSBDTTNfQ01fVEVTVF9ERUJVR19JTkRFWF9fQ01fVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ00zX0NNX1RFU1RfREVCVUdfSU5ERVhfX0NNX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENNM19DTV9URVNUX0RFQlVHX0lOREVYX19DTV9URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENNM19DTV9URVNUX0RFQlVHX0lOREVYX19DTV9URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0NNM19DTV9URVNUX0RFQlVHX0RBVEEKKyNkZWZpbmUgQ00zX0NNX1RFU1RfREVCVUdfREFUQV9fQ01fVEVTVF9ERUJVR19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENNM19DTV9URVNUX0RFQlVHX0RBVEFfX0NNX1RFU1RfREVCVUdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHBwM19kaXNwZGVjX2RwcF9kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT04xNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OMTRfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9OMTRfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTRfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjE0X1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNF9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2MwX2Rpc3BkZWMKKy8vTVBDQzBfTVBDQ19UT1BfU0VMCisjZGVmaW5lIE1QQ0MwX01QQ0NfVE9QX1NFTF9fTVBDQ19UT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMF9NUENDX1RPUF9TRUxfX01QQ0NfVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDMF9NUENDX0JPVF9TRUwKKyNkZWZpbmUgTVBDQzBfTVBDQ19CT1RfU0VMX19NUENDX0JPVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MwX01QQ0NfQk9UX1NFTF9fTVBDQ19CT1RfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL01QQ0MwX01QQ0NfT1BQX0lECisjZGVmaW5lIE1QQ0MwX01QQ0NfT1BQX0lEX19NUENDX09QUF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMF9NUENDX09QUF9JRF9fTVBDQ19PUFBfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDMF9NUENDX0NPTlRST0wKKyNkZWZpbmUgTVBDQzBfTVBDQ19DT05UUk9MX19NUENDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDMF9NUENDX0NPTlRST0xfX01QQ0NfQUxQSEFfTVVMVElQTElFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVBDQzBfTVBDQ19DT05UUk9MX19NUENDX0JMTkRfQUNUSVZFX09WRVJMQVBfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUENDMF9NUENDX0NPTlRST0xfX01QQ0NfQk9UX0dBSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDQzBfTVBDQ19DT05UUk9MX19NUENDX0dMT0JBTF9BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDMF9NUENDX0NPTlRST0xfX01QQ0NfR0xPQkFMX0dBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9NVUxUSVBMSUVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19CTE5EX0FDVElWRV9PVkVSTEFQX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19CT1RfR0FJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01QQ0MwX01QQ0NfU01fQ09OVFJPTAorI2RlZmluZSBNUENDMF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzBfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1QQ0MwX01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GUkFNRV9BTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDMF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDQzBfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0ZPUkNFX05FWFRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1QQ0MwX01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GT1JDRV9ORVhUX1RPUF9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQzBfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0NVUlJFTlRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNUENDMF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENDMF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNUENDMF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRlJBTUVfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENDMF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENDMF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNUENDMF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9UT1BfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNUENDMF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fQ1VSUkVOVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9NUENDMF9NUENDX1VQREFURV9MT0NLX1NFTAorI2RlZmluZSBNUENDMF9NUENDX1VQREFURV9MT0NLX1NFTF9fTVBDQ19VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzBfTVBDQ19VUERBVEVfTE9DS19TRUxfX01QQ0NfVVBEQVRFX0xPQ0tFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ0MwX01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1QQ0MwX01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01QQ0MwX01QQ0NfVE9QX0dBSU4KKyNkZWZpbmUgTVBDQzBfTVBDQ19UT1BfR0FJTl9fTVBDQ19UT1BfR0FJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MwX01QQ0NfVE9QX0dBSU5fX01QQ0NfVE9QX0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0MwX01QQ0NfQk9UX0dBSU5fSU5TSURFCisjZGVmaW5lIE1QQ0MwX01QQ0NfQk9UX0dBSU5fSU5TSURFX19NUENDX0JPVF9HQUlOX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMF9NUENDX0JPVF9HQUlOX0lOU0lERV9fTVBDQ19CT1RfR0FJTl9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDMF9NUENDX0JPVF9HQUlOX09VVFNJREUKKyNkZWZpbmUgTVBDQzBfTVBDQ19CT1RfR0FJTl9PVVRTSURFX19NUENDX0JPVF9HQUlOX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MwX01QQ0NfQk9UX0dBSU5fT1VUU0lERV9fTVBDQ19CT1RfR0FJTl9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0MwX01QQ0NfQkdfUl9DUgorI2RlZmluZSBNUENDMF9NUENDX0JHX1JfQ1JfX01QQ0NfQkdfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzBfTVBDQ19CR19SX0NSX19NUENDX0JHX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzBfTVBDQ19CR19HX1kKKyNkZWZpbmUgTVBDQzBfTVBDQ19CR19HX1lfX01QQ0NfQkdfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MwX01QQ0NfQkdfR19ZX19NUENDX0JHX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisvL01QQ0MwX01QQ0NfQkdfQl9DQgorI2RlZmluZSBNUENDMF9NUENDX0JHX0JfQ0JfX01QQ0NfQkdfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzBfTVBDQ19CR19CX0NCX19NUENDX0JHX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzBfTVBDQ19NRU1fUFdSX0NUUkwKKyNkZWZpbmUgTVBDQzBfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MwX01QQ0NfTUVNX1BXUl9DVFJMX19NUENDX09HQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNUENDMF9NUENDX01FTV9QV1JfQ1RSTF9fTVBDQ19PR0FNX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQzBfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTVBDQzBfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTVBDQzBfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQzBfTVBDQ19TVEFMTF9TVEFUVVMKKyNkZWZpbmUgTVBDQzBfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDMF9NUENDX1NUQUxMX1NUQVRVU19fTVBDQ19TVEFMTF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDQzBfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL01QQ0MwX01QQ0NfU1RBVFVTCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBVFVTX19NUENDX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMF9NUENDX1NUQVRVU19fTVBDQ19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDQzBfTVBDQ19TVEFUVVNfX01QQ0NfRElTQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTVBDQzBfTVBDQ19TVEFUVVNfX0RQUF9NUENDX0lOUFVUX0NIRUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNUENDMF9NUENDX1NUQVRVU19fRFBQX01QQ0NfRVhDRVBUSU9OX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBVFVTX19NUENDX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBVFVTX19NUENDX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBVFVTX19NUENDX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19JTlBVVF9DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1QQ0MwX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19FWENFUFRJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2MxX2Rpc3BkZWMKKy8vTVBDQzFfTVBDQ19UT1BfU0VMCisjZGVmaW5lIE1QQ0MxX01QQ0NfVE9QX1NFTF9fTVBDQ19UT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMV9NUENDX1RPUF9TRUxfX01QQ0NfVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDMV9NUENDX0JPVF9TRUwKKyNkZWZpbmUgTVBDQzFfTVBDQ19CT1RfU0VMX19NUENDX0JPVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MxX01QQ0NfQk9UX1NFTF9fTVBDQ19CT1RfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL01QQ0MxX01QQ0NfT1BQX0lECisjZGVmaW5lIE1QQ0MxX01QQ0NfT1BQX0lEX19NUENDX09QUF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMV9NUENDX09QUF9JRF9fTVBDQ19PUFBfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDMV9NUENDX0NPTlRST0wKKyNkZWZpbmUgTVBDQzFfTVBDQ19DT05UUk9MX19NUENDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDMV9NUENDX0NPTlRST0xfX01QQ0NfQUxQSEFfTVVMVElQTElFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVBDQzFfTVBDQ19DT05UUk9MX19NUENDX0JMTkRfQUNUSVZFX09WRVJMQVBfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUENDMV9NUENDX0NPTlRST0xfX01QQ0NfQk9UX0dBSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDQzFfTVBDQ19DT05UUk9MX19NUENDX0dMT0JBTF9BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDMV9NUENDX0NPTlRST0xfX01QQ0NfR0xPQkFMX0dBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9NVUxUSVBMSUVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19CTE5EX0FDVElWRV9PVkVSTEFQX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19CT1RfR0FJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01QQ0MxX01QQ0NfU01fQ09OVFJPTAorI2RlZmluZSBNUENDMV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzFfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1QQ0MxX01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GUkFNRV9BTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDMV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDQzFfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0ZPUkNFX05FWFRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1QQ0MxX01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GT1JDRV9ORVhUX1RPUF9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQzFfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0NVUlJFTlRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNUENDMV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENDMV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNUENDMV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRlJBTUVfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENDMV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENDMV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNUENDMV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9UT1BfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNUENDMV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fQ1VSUkVOVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9NUENDMV9NUENDX1VQREFURV9MT0NLX1NFTAorI2RlZmluZSBNUENDMV9NUENDX1VQREFURV9MT0NLX1NFTF9fTVBDQ19VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzFfTVBDQ19VUERBVEVfTE9DS19TRUxfX01QQ0NfVVBEQVRFX0xPQ0tFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ0MxX01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1QQ0MxX01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01QQ0MxX01QQ0NfVE9QX0dBSU4KKyNkZWZpbmUgTVBDQzFfTVBDQ19UT1BfR0FJTl9fTVBDQ19UT1BfR0FJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MxX01QQ0NfVE9QX0dBSU5fX01QQ0NfVE9QX0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0MxX01QQ0NfQk9UX0dBSU5fSU5TSURFCisjZGVmaW5lIE1QQ0MxX01QQ0NfQk9UX0dBSU5fSU5TSURFX19NUENDX0JPVF9HQUlOX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMV9NUENDX0JPVF9HQUlOX0lOU0lERV9fTVBDQ19CT1RfR0FJTl9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDMV9NUENDX0JPVF9HQUlOX09VVFNJREUKKyNkZWZpbmUgTVBDQzFfTVBDQ19CT1RfR0FJTl9PVVRTSURFX19NUENDX0JPVF9HQUlOX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MxX01QQ0NfQk9UX0dBSU5fT1VUU0lERV9fTVBDQ19CT1RfR0FJTl9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0MxX01QQ0NfQkdfUl9DUgorI2RlZmluZSBNUENDMV9NUENDX0JHX1JfQ1JfX01QQ0NfQkdfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzFfTVBDQ19CR19SX0NSX19NUENDX0JHX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzFfTVBDQ19CR19HX1kKKyNkZWZpbmUgTVBDQzFfTVBDQ19CR19HX1lfX01QQ0NfQkdfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MxX01QQ0NfQkdfR19ZX19NUENDX0JHX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisvL01QQ0MxX01QQ0NfQkdfQl9DQgorI2RlZmluZSBNUENDMV9NUENDX0JHX0JfQ0JfX01QQ0NfQkdfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzFfTVBDQ19CR19CX0NCX19NUENDX0JHX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzFfTVBDQ19NRU1fUFdSX0NUUkwKKyNkZWZpbmUgTVBDQzFfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MxX01QQ0NfTUVNX1BXUl9DVFJMX19NUENDX09HQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNUENDMV9NUENDX01FTV9QV1JfQ1RSTF9fTVBDQ19PR0FNX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQzFfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTVBDQzFfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTVBDQzFfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQzFfTVBDQ19TVEFMTF9TVEFUVVMKKyNkZWZpbmUgTVBDQzFfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDMV9NUENDX1NUQUxMX1NUQVRVU19fTVBDQ19TVEFMTF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDQzFfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL01QQ0MxX01QQ0NfU1RBVFVTCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBVFVTX19NUENDX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMV9NUENDX1NUQVRVU19fTVBDQ19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDQzFfTVBDQ19TVEFUVVNfX01QQ0NfRElTQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTVBDQzFfTVBDQ19TVEFUVVNfX0RQUF9NUENDX0lOUFVUX0NIRUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNUENDMV9NUENDX1NUQVRVU19fRFBQX01QQ0NfRVhDRVBUSU9OX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBVFVTX19NUENDX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBVFVTX19NUENDX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBVFVTX19NUENDX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19JTlBVVF9DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1QQ0MxX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19FWENFUFRJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2MyX2Rpc3BkZWMKKy8vTVBDQzJfTVBDQ19UT1BfU0VMCisjZGVmaW5lIE1QQ0MyX01QQ0NfVE9QX1NFTF9fTVBDQ19UT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMl9NUENDX1RPUF9TRUxfX01QQ0NfVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDMl9NUENDX0JPVF9TRUwKKyNkZWZpbmUgTVBDQzJfTVBDQ19CT1RfU0VMX19NUENDX0JPVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MyX01QQ0NfQk9UX1NFTF9fTVBDQ19CT1RfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL01QQ0MyX01QQ0NfT1BQX0lECisjZGVmaW5lIE1QQ0MyX01QQ0NfT1BQX0lEX19NUENDX09QUF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMl9NUENDX09QUF9JRF9fTVBDQ19PUFBfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDMl9NUENDX0NPTlRST0wKKyNkZWZpbmUgTVBDQzJfTVBDQ19DT05UUk9MX19NUENDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDMl9NUENDX0NPTlRST0xfX01QQ0NfQUxQSEFfTVVMVElQTElFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVBDQzJfTVBDQ19DT05UUk9MX19NUENDX0JMTkRfQUNUSVZFX09WRVJMQVBfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUENDMl9NUENDX0NPTlRST0xfX01QQ0NfQk9UX0dBSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDQzJfTVBDQ19DT05UUk9MX19NUENDX0dMT0JBTF9BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDMl9NUENDX0NPTlRST0xfX01QQ0NfR0xPQkFMX0dBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9NVUxUSVBMSUVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19CTE5EX0FDVElWRV9PVkVSTEFQX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19CT1RfR0FJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01QQ0MyX01QQ0NfU01fQ09OVFJPTAorI2RlZmluZSBNUENDMl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzJfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1QQ0MyX01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GUkFNRV9BTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDMl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDQzJfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0ZPUkNFX05FWFRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1QQ0MyX01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GT1JDRV9ORVhUX1RPUF9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQzJfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0NVUlJFTlRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNUENDMl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENDMl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNUENDMl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRlJBTUVfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENDMl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENDMl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNUENDMl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9UT1BfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNUENDMl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fQ1VSUkVOVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9NUENDMl9NUENDX1VQREFURV9MT0NLX1NFTAorI2RlZmluZSBNUENDMl9NUENDX1VQREFURV9MT0NLX1NFTF9fTVBDQ19VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzJfTVBDQ19VUERBVEVfTE9DS19TRUxfX01QQ0NfVVBEQVRFX0xPQ0tFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ0MyX01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1QQ0MyX01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01QQ0MyX01QQ0NfVE9QX0dBSU4KKyNkZWZpbmUgTVBDQzJfTVBDQ19UT1BfR0FJTl9fTVBDQ19UT1BfR0FJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MyX01QQ0NfVE9QX0dBSU5fX01QQ0NfVE9QX0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0MyX01QQ0NfQk9UX0dBSU5fSU5TSURFCisjZGVmaW5lIE1QQ0MyX01QQ0NfQk9UX0dBSU5fSU5TSURFX19NUENDX0JPVF9HQUlOX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMl9NUENDX0JPVF9HQUlOX0lOU0lERV9fTVBDQ19CT1RfR0FJTl9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDMl9NUENDX0JPVF9HQUlOX09VVFNJREUKKyNkZWZpbmUgTVBDQzJfTVBDQ19CT1RfR0FJTl9PVVRTSURFX19NUENDX0JPVF9HQUlOX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MyX01QQ0NfQk9UX0dBSU5fT1VUU0lERV9fTVBDQ19CT1RfR0FJTl9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0MyX01QQ0NfQkdfUl9DUgorI2RlZmluZSBNUENDMl9NUENDX0JHX1JfQ1JfX01QQ0NfQkdfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzJfTVBDQ19CR19SX0NSX19NUENDX0JHX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzJfTVBDQ19CR19HX1kKKyNkZWZpbmUgTVBDQzJfTVBDQ19CR19HX1lfX01QQ0NfQkdfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MyX01QQ0NfQkdfR19ZX19NUENDX0JHX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisvL01QQ0MyX01QQ0NfQkdfQl9DQgorI2RlZmluZSBNUENDMl9NUENDX0JHX0JfQ0JfX01QQ0NfQkdfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzJfTVBDQ19CR19CX0NCX19NUENDX0JHX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzJfTVBDQ19NRU1fUFdSX0NUUkwKKyNkZWZpbmUgTVBDQzJfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MyX01QQ0NfTUVNX1BXUl9DVFJMX19NUENDX09HQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNUENDMl9NUENDX01FTV9QV1JfQ1RSTF9fTVBDQ19PR0FNX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQzJfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTVBDQzJfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTVBDQzJfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQzJfTVBDQ19TVEFMTF9TVEFUVVMKKyNkZWZpbmUgTVBDQzJfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDMl9NUENDX1NUQUxMX1NUQVRVU19fTVBDQ19TVEFMTF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDQzJfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL01QQ0MyX01QQ0NfU1RBVFVTCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBVFVTX19NUENDX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDMl9NUENDX1NUQVRVU19fTVBDQ19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDQzJfTVBDQ19TVEFUVVNfX01QQ0NfRElTQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTVBDQzJfTVBDQ19TVEFUVVNfX0RQUF9NUENDX0lOUFVUX0NIRUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNUENDMl9NUENDX1NUQVRVU19fRFBQX01QQ0NfRVhDRVBUSU9OX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBVFVTX19NUENDX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBVFVTX19NUENDX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBVFVTX19NUENDX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19JTlBVVF9DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1QQ0MyX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19FWENFUFRJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2MzX2Rpc3BkZWMKKy8vTVBDQzNfTVBDQ19UT1BfU0VMCisjZGVmaW5lIE1QQ0MzX01QQ0NfVE9QX1NFTF9fTVBDQ19UT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDM19NUENDX1RPUF9TRUxfX01QQ0NfVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDM19NUENDX0JPVF9TRUwKKyNkZWZpbmUgTVBDQzNfTVBDQ19CT1RfU0VMX19NUENDX0JPVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MzX01QQ0NfQk9UX1NFTF9fTVBDQ19CT1RfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL01QQ0MzX01QQ0NfT1BQX0lECisjZGVmaW5lIE1QQ0MzX01QQ0NfT1BQX0lEX19NUENDX09QUF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDM19NUENDX09QUF9JRF9fTVBDQ19PUFBfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDM19NUENDX0NPTlRST0wKKyNkZWZpbmUgTVBDQzNfTVBDQ19DT05UUk9MX19NUENDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDM19NUENDX0NPTlRST0xfX01QQ0NfQUxQSEFfTVVMVElQTElFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVBDQzNfTVBDQ19DT05UUk9MX19NUENDX0JMTkRfQUNUSVZFX09WRVJMQVBfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUENDM19NUENDX0NPTlRST0xfX01QQ0NfQk9UX0dBSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDQzNfTVBDQ19DT05UUk9MX19NUENDX0dMT0JBTF9BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDM19NUENDX0NPTlRST0xfX01QQ0NfR0xPQkFMX0dBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9NVUxUSVBMSUVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19CTE5EX0FDVElWRV9PVkVSTEFQX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19CT1RfR0FJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01QQ0MzX01QQ0NfU01fQ09OVFJPTAorI2RlZmluZSBNUENDM19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzNfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1QQ0MzX01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GUkFNRV9BTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDM19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDQzNfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0ZPUkNFX05FWFRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1QQ0MzX01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GT1JDRV9ORVhUX1RPUF9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQzNfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0NVUlJFTlRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNUENDM19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENDM19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNUENDM19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRlJBTUVfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENDM19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENDM19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNUENDM19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9UT1BfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNUENDM19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fQ1VSUkVOVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9NUENDM19NUENDX1VQREFURV9MT0NLX1NFTAorI2RlZmluZSBNUENDM19NUENDX1VQREFURV9MT0NLX1NFTF9fTVBDQ19VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzNfTVBDQ19VUERBVEVfTE9DS19TRUxfX01QQ0NfVVBEQVRFX0xPQ0tFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ0MzX01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1QQ0MzX01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01QQ0MzX01QQ0NfVE9QX0dBSU4KKyNkZWZpbmUgTVBDQzNfTVBDQ19UT1BfR0FJTl9fTVBDQ19UT1BfR0FJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MzX01QQ0NfVE9QX0dBSU5fX01QQ0NfVE9QX0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0MzX01QQ0NfQk9UX0dBSU5fSU5TSURFCisjZGVmaW5lIE1QQ0MzX01QQ0NfQk9UX0dBSU5fSU5TSURFX19NUENDX0JPVF9HQUlOX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDM19NUENDX0JPVF9HQUlOX0lOU0lERV9fTVBDQ19CT1RfR0FJTl9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDM19NUENDX0JPVF9HQUlOX09VVFNJREUKKyNkZWZpbmUgTVBDQzNfTVBDQ19CT1RfR0FJTl9PVVRTSURFX19NUENDX0JPVF9HQUlOX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MzX01QQ0NfQk9UX0dBSU5fT1VUU0lERV9fTVBDQ19CT1RfR0FJTl9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0MzX01QQ0NfQkdfUl9DUgorI2RlZmluZSBNUENDM19NUENDX0JHX1JfQ1JfX01QQ0NfQkdfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzNfTVBDQ19CR19SX0NSX19NUENDX0JHX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzNfTVBDQ19CR19HX1kKKyNkZWZpbmUgTVBDQzNfTVBDQ19CR19HX1lfX01QQ0NfQkdfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MzX01QQ0NfQkdfR19ZX19NUENDX0JHX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisvL01QQ0MzX01QQ0NfQkdfQl9DQgorI2RlZmluZSBNUENDM19NUENDX0JHX0JfQ0JfX01QQ0NfQkdfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzNfTVBDQ19CR19CX0NCX19NUENDX0JHX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzNfTVBDQ19NRU1fUFdSX0NUUkwKKyNkZWZpbmUgTVBDQzNfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MzX01QQ0NfTUVNX1BXUl9DVFJMX19NUENDX09HQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNUENDM19NUENDX01FTV9QV1JfQ1RSTF9fTVBDQ19PR0FNX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQzNfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTVBDQzNfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTVBDQzNfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQzNfTVBDQ19TVEFMTF9TVEFUVVMKKyNkZWZpbmUgTVBDQzNfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDM19NUENDX1NUQUxMX1NUQVRVU19fTVBDQ19TVEFMTF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDQzNfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL01QQ0MzX01QQ0NfU1RBVFVTCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBVFVTX19NUENDX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDM19NUENDX1NUQVRVU19fTVBDQ19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDQzNfTVBDQ19TVEFUVVNfX01QQ0NfRElTQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTVBDQzNfTVBDQ19TVEFUVVNfX0RQUF9NUENDX0lOUFVUX0NIRUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNUENDM19NUENDX1NUQVRVU19fRFBQX01QQ0NfRVhDRVBUSU9OX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBVFVTX19NUENDX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBVFVTX19NUENDX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBVFVTX19NUENDX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19JTlBVVF9DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1QQ0MzX01QQ0NfU1RBVFVTX19EUFBfTVBDQ19FWENFUFRJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2M0X2Rpc3BkZWMKKy8vTVBDQzRfTVBDQ19UT1BfU0VMCisjZGVmaW5lIE1QQ0M0X01QQ0NfVE9QX1NFTF9fTVBDQ19UT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNF9NUENDX1RPUF9TRUxfX01QQ0NfVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDNF9NUENDX0JPVF9TRUwKKyNkZWZpbmUgTVBDQzRfTVBDQ19CT1RfU0VMX19NUENDX0JPVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M0X01QQ0NfQk9UX1NFTF9fTVBDQ19CT1RfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL01QQ0M0X01QQ0NfT1BQX0lECisjZGVmaW5lIE1QQ0M0X01QQ0NfT1BQX0lEX19NUENDX09QUF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNF9NUENDX09QUF9JRF9fTVBDQ19PUFBfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDNF9NUENDX0NPTlRST0wKKyNkZWZpbmUgTVBDQzRfTVBDQ19DT05UUk9MX19NUENDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDNF9NUENDX0NPTlRST0xfX01QQ0NfQUxQSEFfTVVMVElQTElFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVBDQzRfTVBDQ19DT05UUk9MX19NUENDX0JMTkRfQUNUSVZFX09WRVJMQVBfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUENDNF9NUENDX0NPTlRST0xfX01QQ0NfQk9UX0dBSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDQzRfTVBDQ19DT05UUk9MX19NUENDX0dMT0JBTF9BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDNF9NUENDX0NPTlRST0xfX01QQ0NfR0xPQkFMX0dBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9NVUxUSVBMSUVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19CTE5EX0FDVElWRV9PVkVSTEFQX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19CT1RfR0FJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01QQ0M0X01QQ0NfU01fQ09OVFJPTAorI2RlZmluZSBNUENDNF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzRfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1QQ0M0X01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GUkFNRV9BTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDNF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDQzRfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0ZPUkNFX05FWFRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1QQ0M0X01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GT1JDRV9ORVhUX1RPUF9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQzRfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0NVUlJFTlRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNUENDNF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENDNF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNUENDNF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRlJBTUVfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENDNF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENDNF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNUENDNF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9UT1BfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNUENDNF9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fQ1VSUkVOVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9NUENDNF9NUENDX1VQREFURV9MT0NLX1NFTAorI2RlZmluZSBNUENDNF9NUENDX1VQREFURV9MT0NLX1NFTF9fTVBDQ19VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzRfTVBDQ19VUERBVEVfTE9DS19TRUxfX01QQ0NfVVBEQVRFX0xPQ0tFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ0M0X01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1QQ0M0X01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01QQ0M0X01QQ0NfVE9QX0dBSU4KKyNkZWZpbmUgTVBDQzRfTVBDQ19UT1BfR0FJTl9fTVBDQ19UT1BfR0FJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M0X01QQ0NfVE9QX0dBSU5fX01QQ0NfVE9QX0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0M0X01QQ0NfQk9UX0dBSU5fSU5TSURFCisjZGVmaW5lIE1QQ0M0X01QQ0NfQk9UX0dBSU5fSU5TSURFX19NUENDX0JPVF9HQUlOX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNF9NUENDX0JPVF9HQUlOX0lOU0lERV9fTVBDQ19CT1RfR0FJTl9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDNF9NUENDX0JPVF9HQUlOX09VVFNJREUKKyNkZWZpbmUgTVBDQzRfTVBDQ19CT1RfR0FJTl9PVVRTSURFX19NUENDX0JPVF9HQUlOX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M0X01QQ0NfQk9UX0dBSU5fT1VUU0lERV9fTVBDQ19CT1RfR0FJTl9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0M0X01QQ0NfQkdfUl9DUgorI2RlZmluZSBNUENDNF9NUENDX0JHX1JfQ1JfX01QQ0NfQkdfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzRfTVBDQ19CR19SX0NSX19NUENDX0JHX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzRfTVBDQ19CR19HX1kKKyNkZWZpbmUgTVBDQzRfTVBDQ19CR19HX1lfX01QQ0NfQkdfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M0X01QQ0NfQkdfR19ZX19NUENDX0JHX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisvL01QQ0M0X01QQ0NfQkdfQl9DQgorI2RlZmluZSBNUENDNF9NUENDX0JHX0JfQ0JfX01QQ0NfQkdfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzRfTVBDQ19CR19CX0NCX19NUENDX0JHX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzRfTVBDQ19NRU1fUFdSX0NUUkwKKyNkZWZpbmUgTVBDQzRfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M0X01QQ0NfTUVNX1BXUl9DVFJMX19NUENDX09HQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNUENDNF9NUENDX01FTV9QV1JfQ1RSTF9fTVBDQ19PR0FNX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQzRfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTVBDQzRfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTVBDQzRfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQzRfTVBDQ19TVEFMTF9TVEFUVVMKKyNkZWZpbmUgTVBDQzRfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDNF9NUENDX1NUQUxMX1NUQVRVU19fTVBDQ19TVEFMTF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDQzRfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL01QQ0M0X01QQ0NfU1RBVFVTCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBVFVTX19NUENDX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNF9NUENDX1NUQVRVU19fTVBDQ19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDQzRfTVBDQ19TVEFUVVNfX01QQ0NfRElTQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTVBDQzRfTVBDQ19TVEFUVVNfX0RQUF9NUENDX0lOUFVUX0NIRUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNUENDNF9NUENDX1NUQVRVU19fRFBQX01QQ0NfRVhDRVBUSU9OX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBVFVTX19NUENDX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBVFVTX19NUENDX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBVFVTX19NUENDX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19JTlBVVF9DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1QQ0M0X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19FWENFUFRJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2M1X2Rpc3BkZWMKKy8vTVBDQzVfTVBDQ19UT1BfU0VMCisjZGVmaW5lIE1QQ0M1X01QQ0NfVE9QX1NFTF9fTVBDQ19UT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNV9NUENDX1RPUF9TRUxfX01QQ0NfVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDNV9NUENDX0JPVF9TRUwKKyNkZWZpbmUgTVBDQzVfTVBDQ19CT1RfU0VMX19NUENDX0JPVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M1X01QQ0NfQk9UX1NFTF9fTVBDQ19CT1RfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL01QQ0M1X01QQ0NfT1BQX0lECisjZGVmaW5lIE1QQ0M1X01QQ0NfT1BQX0lEX19NUENDX09QUF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNV9NUENDX09QUF9JRF9fTVBDQ19PUFBfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDNV9NUENDX0NPTlRST0wKKyNkZWZpbmUgTVBDQzVfTVBDQ19DT05UUk9MX19NUENDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDNV9NUENDX0NPTlRST0xfX01QQ0NfQUxQSEFfTVVMVElQTElFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVBDQzVfTVBDQ19DT05UUk9MX19NUENDX0JMTkRfQUNUSVZFX09WRVJMQVBfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUENDNV9NUENDX0NPTlRST0xfX01QQ0NfQk9UX0dBSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDQzVfTVBDQ19DT05UUk9MX19NUENDX0dMT0JBTF9BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDNV9NUENDX0NPTlRST0xfX01QQ0NfR0xPQkFMX0dBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9NVUxUSVBMSUVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19CTE5EX0FDVElWRV9PVkVSTEFQX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19CT1RfR0FJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01QQ0M1X01QQ0NfU01fQ09OVFJPTAorI2RlZmluZSBNUENDNV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzVfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1QQ0M1X01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GUkFNRV9BTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDNV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDQzVfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0ZPUkNFX05FWFRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1QQ0M1X01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GT1JDRV9ORVhUX1RPUF9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQzVfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0NVUlJFTlRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNUENDNV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENDNV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNUENDNV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRlJBTUVfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENDNV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENDNV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNUENDNV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9UT1BfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNUENDNV9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fQ1VSUkVOVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9NUENDNV9NUENDX1VQREFURV9MT0NLX1NFTAorI2RlZmluZSBNUENDNV9NUENDX1VQREFURV9MT0NLX1NFTF9fTVBDQ19VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzVfTVBDQ19VUERBVEVfTE9DS19TRUxfX01QQ0NfVVBEQVRFX0xPQ0tFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ0M1X01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1QQ0M1X01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01QQ0M1X01QQ0NfVE9QX0dBSU4KKyNkZWZpbmUgTVBDQzVfTVBDQ19UT1BfR0FJTl9fTVBDQ19UT1BfR0FJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M1X01QQ0NfVE9QX0dBSU5fX01QQ0NfVE9QX0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0M1X01QQ0NfQk9UX0dBSU5fSU5TSURFCisjZGVmaW5lIE1QQ0M1X01QQ0NfQk9UX0dBSU5fSU5TSURFX19NUENDX0JPVF9HQUlOX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNV9NUENDX0JPVF9HQUlOX0lOU0lERV9fTVBDQ19CT1RfR0FJTl9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDNV9NUENDX0JPVF9HQUlOX09VVFNJREUKKyNkZWZpbmUgTVBDQzVfTVBDQ19CT1RfR0FJTl9PVVRTSURFX19NUENDX0JPVF9HQUlOX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M1X01QQ0NfQk9UX0dBSU5fT1VUU0lERV9fTVBDQ19CT1RfR0FJTl9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0M1X01QQ0NfQkdfUl9DUgorI2RlZmluZSBNUENDNV9NUENDX0JHX1JfQ1JfX01QQ0NfQkdfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzVfTVBDQ19CR19SX0NSX19NUENDX0JHX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzVfTVBDQ19CR19HX1kKKyNkZWZpbmUgTVBDQzVfTVBDQ19CR19HX1lfX01QQ0NfQkdfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M1X01QQ0NfQkdfR19ZX19NUENDX0JHX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisvL01QQ0M1X01QQ0NfQkdfQl9DQgorI2RlZmluZSBNUENDNV9NUENDX0JHX0JfQ0JfX01QQ0NfQkdfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzVfTVBDQ19CR19CX0NCX19NUENDX0JHX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzVfTVBDQ19NRU1fUFdSX0NUUkwKKyNkZWZpbmUgTVBDQzVfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M1X01QQ0NfTUVNX1BXUl9DVFJMX19NUENDX09HQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNUENDNV9NUENDX01FTV9QV1JfQ1RSTF9fTVBDQ19PR0FNX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQzVfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTVBDQzVfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTVBDQzVfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQzVfTVBDQ19TVEFMTF9TVEFUVVMKKyNkZWZpbmUgTVBDQzVfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDNV9NUENDX1NUQUxMX1NUQVRVU19fTVBDQ19TVEFMTF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDQzVfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL01QQ0M1X01QQ0NfU1RBVFVTCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBVFVTX19NUENDX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNV9NUENDX1NUQVRVU19fTVBDQ19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDQzVfTVBDQ19TVEFUVVNfX01QQ0NfRElTQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTVBDQzVfTVBDQ19TVEFUVVNfX0RQUF9NUENDX0lOUFVUX0NIRUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNUENDNV9NUENDX1NUQVRVU19fRFBQX01QQ0NfRVhDRVBUSU9OX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBVFVTX19NUENDX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBVFVTX19NUENDX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBVFVTX19NUENDX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19JTlBVVF9DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1QQ0M1X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19FWENFUFRJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2M2X2Rpc3BkZWMKKy8vTVBDQzZfTVBDQ19UT1BfU0VMCisjZGVmaW5lIE1QQ0M2X01QQ0NfVE9QX1NFTF9fTVBDQ19UT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNl9NUENDX1RPUF9TRUxfX01QQ0NfVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDNl9NUENDX0JPVF9TRUwKKyNkZWZpbmUgTVBDQzZfTVBDQ19CT1RfU0VMX19NUENDX0JPVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M2X01QQ0NfQk9UX1NFTF9fTVBDQ19CT1RfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL01QQ0M2X01QQ0NfT1BQX0lECisjZGVmaW5lIE1QQ0M2X01QQ0NfT1BQX0lEX19NUENDX09QUF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNl9NUENDX09QUF9JRF9fTVBDQ19PUFBfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDNl9NUENDX0NPTlRST0wKKyNkZWZpbmUgTVBDQzZfTVBDQ19DT05UUk9MX19NUENDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDNl9NUENDX0NPTlRST0xfX01QQ0NfQUxQSEFfTVVMVElQTElFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVBDQzZfTVBDQ19DT05UUk9MX19NUENDX0JMTkRfQUNUSVZFX09WRVJMQVBfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUENDNl9NUENDX0NPTlRST0xfX01QQ0NfQk9UX0dBSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDQzZfTVBDQ19DT05UUk9MX19NUENDX0dMT0JBTF9BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDNl9NUENDX0NPTlRST0xfX01QQ0NfR0xPQkFMX0dBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9NVUxUSVBMSUVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19CTE5EX0FDVElWRV9PVkVSTEFQX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19CT1RfR0FJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01QQ0M2X01QQ0NfU01fQ09OVFJPTAorI2RlZmluZSBNUENDNl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzZfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1QQ0M2X01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GUkFNRV9BTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDNl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDQzZfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0ZPUkNFX05FWFRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1QQ0M2X01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GT1JDRV9ORVhUX1RPUF9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQzZfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0NVUlJFTlRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNUENDNl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENDNl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNUENDNl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRlJBTUVfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENDNl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENDNl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNUENDNl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9UT1BfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNUENDNl9NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fQ1VSUkVOVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9NUENDNl9NUENDX1VQREFURV9MT0NLX1NFTAorI2RlZmluZSBNUENDNl9NUENDX1VQREFURV9MT0NLX1NFTF9fTVBDQ19VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzZfTVBDQ19VUERBVEVfTE9DS19TRUxfX01QQ0NfVVBEQVRFX0xPQ0tFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ0M2X01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1QQ0M2X01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01QQ0M2X01QQ0NfVE9QX0dBSU4KKyNkZWZpbmUgTVBDQzZfTVBDQ19UT1BfR0FJTl9fTVBDQ19UT1BfR0FJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M2X01QQ0NfVE9QX0dBSU5fX01QQ0NfVE9QX0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0M2X01QQ0NfQk9UX0dBSU5fSU5TSURFCisjZGVmaW5lIE1QQ0M2X01QQ0NfQk9UX0dBSU5fSU5TSURFX19NUENDX0JPVF9HQUlOX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNl9NUENDX0JPVF9HQUlOX0lOU0lERV9fTVBDQ19CT1RfR0FJTl9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDNl9NUENDX0JPVF9HQUlOX09VVFNJREUKKyNkZWZpbmUgTVBDQzZfTVBDQ19CT1RfR0FJTl9PVVRTSURFX19NUENDX0JPVF9HQUlOX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M2X01QQ0NfQk9UX0dBSU5fT1VUU0lERV9fTVBDQ19CT1RfR0FJTl9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0M2X01QQ0NfQkdfUl9DUgorI2RlZmluZSBNUENDNl9NUENDX0JHX1JfQ1JfX01QQ0NfQkdfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzZfTVBDQ19CR19SX0NSX19NUENDX0JHX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzZfTVBDQ19CR19HX1kKKyNkZWZpbmUgTVBDQzZfTVBDQ19CR19HX1lfX01QQ0NfQkdfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M2X01QQ0NfQkdfR19ZX19NUENDX0JHX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisvL01QQ0M2X01QQ0NfQkdfQl9DQgorI2RlZmluZSBNUENDNl9NUENDX0JHX0JfQ0JfX01QQ0NfQkdfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzZfTVBDQ19CR19CX0NCX19NUENDX0JHX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzZfTVBDQ19NRU1fUFdSX0NUUkwKKyNkZWZpbmUgTVBDQzZfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M2X01QQ0NfTUVNX1BXUl9DVFJMX19NUENDX09HQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNUENDNl9NUENDX01FTV9QV1JfQ1RSTF9fTVBDQ19PR0FNX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQzZfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTVBDQzZfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTVBDQzZfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQzZfTVBDQ19TVEFMTF9TVEFUVVMKKyNkZWZpbmUgTVBDQzZfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDNl9NUENDX1NUQUxMX1NUQVRVU19fTVBDQ19TVEFMTF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDQzZfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL01QQ0M2X01QQ0NfU1RBVFVTCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBVFVTX19NUENDX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDNl9NUENDX1NUQVRVU19fTVBDQ19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDQzZfTVBDQ19TVEFUVVNfX01QQ0NfRElTQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTVBDQzZfTVBDQ19TVEFUVVNfX0RQUF9NUENDX0lOUFVUX0NIRUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNUENDNl9NUENDX1NUQVRVU19fRFBQX01QQ0NfRVhDRVBUSU9OX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBVFVTX19NUENDX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBVFVTX19NUENDX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBVFVTX19NUENDX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19JTlBVVF9DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1QQ0M2X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19FWENFUFRJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2M3X2Rpc3BkZWMKKy8vTVBDQzdfTVBDQ19UT1BfU0VMCisjZGVmaW5lIE1QQ0M3X01QQ0NfVE9QX1NFTF9fTVBDQ19UT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDN19NUENDX1RPUF9TRUxfX01QQ0NfVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDN19NUENDX0JPVF9TRUwKKyNkZWZpbmUgTVBDQzdfTVBDQ19CT1RfU0VMX19NUENDX0JPVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M3X01QQ0NfQk9UX1NFTF9fTVBDQ19CT1RfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL01QQ0M3X01QQ0NfT1BQX0lECisjZGVmaW5lIE1QQ0M3X01QQ0NfT1BQX0lEX19NUENDX09QUF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDN19NUENDX09QUF9JRF9fTVBDQ19PUFBfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NUENDN19NUENDX0NPTlRST0wKKyNkZWZpbmUgTVBDQzdfTVBDQ19DT05UUk9MX19NUENDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDN19NUENDX0NPTlRST0xfX01QQ0NfQUxQSEFfTVVMVElQTElFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVBDQzdfTVBDQ19DT05UUk9MX19NUENDX0JMTkRfQUNUSVZFX09WRVJMQVBfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUENDN19NUENDX0NPTlRST0xfX01QQ0NfQk9UX0dBSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDQzdfTVBDQ19DT05UUk9MX19NUENDX0dMT0JBTF9BTFBIQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDN19NUENDX0NPTlRST0xfX01QQ0NfR0xPQkFMX0dBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9CTE5EX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19BTFBIQV9NVUxUSVBMSUVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19CTE5EX0FDVElWRV9PVkVSTEFQX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19CR19CUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19CT1RfR0FJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfQUxQSEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfQ09OVFJPTF9fTVBDQ19HTE9CQUxfR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01QQ0M3X01QQ0NfU01fQ09OVFJPTAorI2RlZmluZSBNUENDN19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzdfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1QQ0M3X01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GUkFNRV9BTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDN19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDQzdfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0ZPUkNFX05FWFRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1QQ0M3X01QQ0NfU01fQ09OVFJPTF9fTVBDQ19TTV9GT1JDRV9ORVhUX1RPUF9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQzdfTVBDQ19TTV9DT05UUk9MX19NUENDX1NNX0NVUlJFTlRfRlJBTUVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNUENDN19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENDN19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNUENDN19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRlJBTUVfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENDN19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRklFTERfQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENDN19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNUENDN19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fRk9SQ0VfTkVYVF9UT1BfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNUENDN19NUENDX1NNX0NPTlRST0xfX01QQ0NfU01fQ1VSUkVOVF9GUkFNRV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9NUENDN19NUENDX1VQREFURV9MT0NLX1NFTAorI2RlZmluZSBNUENDN19NUENDX1VQREFURV9MT0NLX1NFTF9fTVBDQ19VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzdfTVBDQ19VUERBVEVfTE9DS19TRUxfX01QQ0NfVVBEQVRFX0xPQ0tFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ0M3X01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1QQ0M3X01QQ0NfVVBEQVRFX0xPQ0tfU0VMX19NUENDX1VQREFURV9MT0NLRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01QQ0M3X01QQ0NfVE9QX0dBSU4KKyNkZWZpbmUgTVBDQzdfTVBDQ19UT1BfR0FJTl9fTVBDQ19UT1BfR0FJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M3X01QQ0NfVE9QX0dBSU5fX01QQ0NfVE9QX0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0M3X01QQ0NfQk9UX0dBSU5fSU5TSURFCisjZGVmaW5lIE1QQ0M3X01QQ0NfQk9UX0dBSU5fSU5TSURFX19NUENDX0JPVF9HQUlOX0lOU0lERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDN19NUENDX0JPVF9HQUlOX0lOU0lERV9fTVBDQ19CT1RfR0FJTl9JTlNJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDN19NUENDX0JPVF9HQUlOX09VVFNJREUKKyNkZWZpbmUgTVBDQzdfTVBDQ19CT1RfR0FJTl9PVVRTSURFX19NUENDX0JPVF9HQUlOX09VVFNJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M3X01QQ0NfQk9UX0dBSU5fT1VUU0lERV9fTVBDQ19CT1RfR0FJTl9PVVRTSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01QQ0M3X01QQ0NfQkdfUl9DUgorI2RlZmluZSBNUENDN19NUENDX0JHX1JfQ1JfX01QQ0NfQkdfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzdfTVBDQ19CR19SX0NSX19NUENDX0JHX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzdfTVBDQ19CR19HX1kKKyNkZWZpbmUgTVBDQzdfTVBDQ19CR19HX1lfX01QQ0NfQkdfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M3X01QQ0NfQkdfR19ZX19NUENDX0JHX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisvL01QQ0M3X01QQ0NfQkdfQl9DQgorI2RlZmluZSBNUENDN19NUENDX0JHX0JfQ0JfX01QQ0NfQkdfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQzdfTVBDQ19CR19CX0NCX19NUENDX0JHX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKy8vTVBDQzdfTVBDQ19NRU1fUFdSX0NUUkwKKyNkZWZpbmUgTVBDQzdfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M3X01QQ0NfTUVNX1BXUl9DVFJMX19NUENDX09HQU1fTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNUENDN19NUENDX01FTV9QV1JfQ1RSTF9fTVBDQ19PR0FNX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQzdfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTVBDQzdfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTVBDQzdfTVBDQ19NRU1fUFdSX0NUUkxfX01QQ0NfT0dBTV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQzdfTVBDQ19TVEFMTF9TVEFUVVMKKyNkZWZpbmUgTVBDQzdfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENDN19NUENDX1NUQUxMX1NUQVRVU19fTVBDQ19TVEFMTF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDQzdfTVBDQ19TVEFMTF9TVEFUVVNfX01QQ0NfU1RBTExfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBTExfU1RBVFVTX19NUENDX1NUQUxMX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL01QQ0M3X01QQ0NfU1RBVFVTCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBVFVTX19NUENDX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDN19NUENDX1NUQVRVU19fTVBDQ19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDQzdfTVBDQ19TVEFUVVNfX01QQ0NfRElTQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTVBDQzdfTVBDQ19TVEFUVVNfX0RQUF9NUENDX0lOUFVUX0NIRUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNUENDN19NUENDX1NUQVRVU19fRFBQX01QQ0NfRVhDRVBUSU9OX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBVFVTX19NUENDX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBVFVTX19NUENDX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBVFVTX19NUENDX0RJU0FCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19QSVhfREFUQV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19JTlBVVF9DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1QQ0M3X01QQ0NfU1RBVFVTX19EUFBfTVBDQ19FWENFUFRJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY19jZmdfZGlzcGRlYworLy9NUENfQ0xPQ0tfQ09OVFJPTAorI2RlZmluZSBNUENfQ0xPQ0tfQ09OVFJPTF9fRElTUENMS19SX0dBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDX0NMT0NLX0NPTlRST0xfX01QQ19URVNUX0NMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ19DTE9DS19DT05UUk9MX19ESVNQQ0xLX1JfR0FURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ19DTE9DS19DT05UUk9MX19NUENfVEVTVF9DTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisvL01QQ19TT0ZUX1JFU0VUCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENDMF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfU09GVF9SRVNFVF9fTVBDQzFfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTVBDX1NPRlRfUkVTRVRfX01QQ0MyX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENDM19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENfU09GVF9SRVNFVF9fTVBDX1NGUjBfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTVBDX1NPRlRfUkVTRVRfX01QQ19TRlIxX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZSMl9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfU09GVF9SRVNFVF9fTVBDX1NGUjNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTVBDX1NPRlRfUkVTRVRfX01QQ19TRlQwX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENfU09GVF9SRVNFVF9fTVBDX1NGVDFfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZUMl9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTVBDX1NPRlRfUkVTRVRfX01QQ19TRlQzX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNUENfU09GVF9SRVNFVF9fTVBDX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENDMF9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENDMV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENDMl9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENDM19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZSMF9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZSMV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZSMl9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZSM19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZUMF9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZUMV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZUMl9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU0ZUM19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1QQ19TT0ZUX1JFU0VUX19NUENfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01QQ19DUkNfQ1RSTAorI2RlZmluZSBNUENfQ1JDX0NUUkxfX01QQ19DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX0NPTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ19DUkNfQ1RSTF9fTVBDX0NSQ19TVEVSRU9fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUENfQ1JDX0NUUkxfX01QQ19DUkNfU1RFUkVPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX0lOVEVSTEFDRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ19DUkNfQ1RSTF9fTVBDX0NSQ19TUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX09ORV9TSE9UX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENfQ1JDX0NUUkxfX01QQ19DUkNfVVBEQVRFX0VOQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1QQ19DUkNfQ1RSTF9fTVBDX0NSQ19VUERBVEVfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX0NPTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX1NURVJFT19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX1NURVJFT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX0lOVEVSTEFDRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX1NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX09ORV9TSE9UX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX1VQREFURV9FTkFCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTVBDX0NSQ19DVFJMX19NUENfQ1JDX1VQREFURV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTVBDX0NSQ19TRUxfQ09OVFJPTAorI2RlZmluZSBNUENfQ1JDX1NFTF9DT05UUk9MX19NUENfQ1JDX0RQUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX0NSQ19TRUxfQ09OVFJPTF9fTVBDX0NSQ19PUFBfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ19DUkNfU0VMX0NPTlRST0xfX01QQ19DUkNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX0NSQ19TRUxfQ09OVFJPTF9fTVBDX0NSQ19EUFBfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTVBDX0NSQ19TRUxfQ09OVFJPTF9fTVBDX0NSQ19PUFBfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTVBDX0NSQ19TRUxfQ09OVFJPTF9fTVBDX0NSQ19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX0NSQ19SRVNVTFRfQVIKKyNkZWZpbmUgTVBDX0NSQ19SRVNVTFRfQVJfX01QQ19DUkNfUkVTVUxUX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19DUkNfUkVTVUxUX0FSX19NUENfQ1JDX1JFU1VMVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX0NSQ19SRVNVTFRfQVJfX01QQ19DUkNfUkVTVUxUX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX0NSQ19SRVNVTFRfQVJfX01QQ19DUkNfUkVTVUxUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX0NSQ19SRVNVTFRfR0IKKyNkZWZpbmUgTVBDX0NSQ19SRVNVTFRfR0JfX01QQ19DUkNfUkVTVUxUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19DUkNfUkVTVUxUX0dCX19NUENfQ1JDX1JFU1VMVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX0NSQ19SRVNVTFRfR0JfX01QQ19DUkNfUkVTVUxUX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX0NSQ19SRVNVTFRfR0JfX01QQ19DUkNfUkVTVUxUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX0NSQ19SRVNVTFRfQworI2RlZmluZSBNUENfQ1JDX1JFU1VMVF9DX19NUENfQ1JDX1JFU1VMVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX0NSQ19SRVNVTFRfQ19fTVBDX0NSQ19SRVNVTFRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDX1BFUkZNT05fRVZFTlRfQ1RSTAorI2RlZmluZSBNUENfUEVSRk1PTl9FVkVOVF9DVFJMX19NUENfUEVSRk1PTl9FVkVOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX1BFUkZNT05fRVZFTlRfQ1RSTF9fTVBDX1BFUkZNT05fRVZFTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vTVBDX0JZUEFTU19CR19BUgorI2RlZmluZSBNUENfQllQQVNTX0JHX0FSX19NUENfQllQQVNTX0JHX0FMUEhBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX0JZUEFTU19CR19BUl9fTVBDX0JZUEFTU19CR19SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfQllQQVNTX0JHX0FSX19NUENfQllQQVNTX0JHX0FMUEhBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfQllQQVNTX0JHX0FSX19NUENfQllQQVNTX0JHX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfQllQQVNTX0JHX0dCCisjZGVmaW5lIE1QQ19CWVBBU1NfQkdfR0JfX01QQ19CWVBBU1NfQkdfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfQllQQVNTX0JHX0dCX19NUENfQllQQVNTX0JHX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19CWVBBU1NfQkdfR0JfX01QQ19CWVBBU1NfQkdfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19CWVBBU1NfQkdfR0JfX01QQ19CWVBBU1NfQkdfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19TVEFMTF9HUkFDRV9XSU5ET1cKKyNkZWZpbmUgTVBDX1NUQUxMX0dSQUNFX1dJTkRPV19fTVBDX1NUQUxMX0dSQUNFX1dJTkRPV19QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19TVEFMTF9HUkFDRV9XSU5ET1dfX01QQ19TVEFMTF9HUkFDRV9XSU5ET1dfUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01QQ19IT1NUX1JFQURfQ09OVFJPTAorI2RlZmluZSBNUENfSE9TVF9SRUFEX0NPTlRST0xfX0hPU1RfUkVBRF9SQVRFX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX0hPU1RfUkVBRF9DT05UUk9MX19IT1NUX1JFQURfUkFURV9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzEKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzFfX0lOX0RQUDBfU1VSRkFDRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUcxX19JTl9EUFAwX1NVUkZBQ0VfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMF9DT05GSUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzFfX0lOX0RQUDBfQ09ORklHX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUcxX19JTl9EUFAwX0NVUlNPUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMF9DVVJTT1JfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzFfX0lOX0RQUDFfU1VSRkFDRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUcxX19JTl9EUFAxX1NVUkZBQ0VfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMV9DT05GSUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzFfX0lOX0RQUDFfQ09ORklHX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUcxX19JTl9EUFAxX0NVUlNPUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMV9DVVJTT1JfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzFfX0lOX0RQUDJfU1VSRkFDRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUcxX19JTl9EUFAyX1NVUkZBQ0VfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMl9DT05GSUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzFfX0lOX0RQUDJfQ09ORklHX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUcxX19JTl9EUFAyX0NVUlNPUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzFfX0lOX0RQUDJfQ1VSU09SX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQM19TVVJGQUNFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUcxX19JTl9EUFAzX1NVUkZBQ0VfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzFfX0lOX0RQUDNfQ09ORklHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQM19DT05GSUdfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUcxX19JTl9EUFAzX0NVUlNPUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzFfX0lOX0RQUDNfQ1VSU09SX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMF9TVVJGQUNFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMF9TVVJGQUNFX1VQREFURV9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMF9DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMF9DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMF9DVVJTT1JfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMF9DVVJTT1JfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMV9TVVJGQUNFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMV9TVVJGQUNFX1VQREFURV9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMV9DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMV9DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMV9DVVJTT1JfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMV9DVVJTT1JfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMl9TVVJGQUNFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMl9TVVJGQUNFX1VQREFURV9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMl9DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMl9DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMl9DVVJTT1JfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQMl9DVVJTT1JfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQM19TVVJGQUNFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQM19TVVJGQUNFX1VQREFURV9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQM19DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQM19DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQM19DVVJTT1JfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMV9fSU5fRFBQM19DVVJTT1JfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9NUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHMworI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHM19fT1VUX09QUDBfQ09ORklHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzNfX09VVF9PUFAwX0NPTkZJR19VUERBVEVfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQMV9DT05GSUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHM19fT1VUX09QUDFfQ09ORklHX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzNfX09VVF9PUFAyX0NPTkZJR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQMl9DT05GSUdfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHM19fT1VUX09QUDNfQ09ORklHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzNfX09VVF9PUFAzX0NPTkZJR19VUERBVEVfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDMF9DT05GSUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHM19fTVBDQzBfQ09ORklHX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzNfX01QQ0MxX0NPTkZJR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDMV9DT05GSUdfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHM19fTVBDQzJfQ09ORklHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDMl9DT05GSUdfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTVBDX1BFTkRJTkdfVEFLRU5fU1RBVFVTX1JFRzNfX01QQ0MzX0NPTkZJR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNUENfUEVORElOR19UQUtFTl9TVEFUVVNfUkVHM19fTVBDQzNfQ09ORklHX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQMF9DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQMF9DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQMV9DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQMV9DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQMl9DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQMl9DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQM19DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19PVVRfT1BQM19DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDMF9DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDMF9DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDMV9DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDMV9DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDMl9DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDMl9DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDM19DT05GSUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1QQ19QRU5ESU5HX1RBS0VOX1NUQVRVU19SRUczX19NUENDM19DT05GSUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL01QQ19VUERBVEVfQUNLX1JFRzUKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMF9TVVJGQUNFX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19VUERBVEVfQUNLX1JFRzVfX0lOX0RQUDBfQ09ORklHX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNUENfVVBEQVRFX0FDS19SRUc1X19JTl9EUFAwX0NVUlNPUl9VUERBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMV9TVVJGQUNFX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1QQ19VUERBVEVfQUNLX1JFRzVfX0lOX0RQUDFfQ09ORklHX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNUENfVVBEQVRFX0FDS19SRUc1X19JTl9EUFAxX0NVUlNPUl9VUERBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMl9TVVJGQUNFX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1QQ19VUERBVEVfQUNLX1JFRzVfX0lOX0RQUDJfQ09ORklHX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNUENfVVBEQVRFX0FDS19SRUc1X19JTl9EUFAyX0NVUlNPUl9VUERBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQM19TVVJGQUNFX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1QQ19VUERBVEVfQUNLX1JFRzVfX0lOX0RQUDNfQ09ORklHX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNUENfVVBEQVRFX0FDS19SRUc1X19JTl9EUFAzX0NVUlNPUl9VUERBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fTVBDQzBfQ09ORklHX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1QQ19VUERBVEVfQUNLX1JFRzVfX01QQ0MxX0NPTkZJR19VUERBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fTVBDQzJfQ09ORklHX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNUENfVVBEQVRFX0FDS19SRUc1X19NUENDM19DT05GSUdfVVBEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1QQ19VUERBVEVfQUNLX1JFRzVfX09VVF9PUFAwX0NPTkZJR19VUERBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fT1VUX09QUDFfQ09ORklHX1VQREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNUENfVVBEQVRFX0FDS19SRUc1X19PVVRfT1BQMl9DT05GSUdfVVBEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1QQ19VUERBVEVfQUNLX1JFRzVfX09VVF9PUFAzX0NPTkZJR19VUERBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMF9TVVJGQUNFX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMF9DT05GSUdfVVBEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMF9DVVJTT1JfVVBEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMV9TVVJGQUNFX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMV9DT05GSUdfVVBEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMV9DVVJTT1JfVVBEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMl9TVVJGQUNFX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMl9DT05GSUdfVVBEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQMl9DVVJTT1JfVVBEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQM19TVVJGQUNFX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQM19DT05GSUdfVVBEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fSU5fRFBQM19DVVJTT1JfVVBEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fTVBDQzBfQ09ORklHX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fTVBDQzFfQ09ORklHX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fTVBDQzJfQ09ORklHX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fTVBDQzNfQ09ORklHX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fT1VUX09QUDBfQ09ORklHX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fT1VUX09QUDFfQ09ORklHX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fT1VUX09QUDJfQ09ORklHX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTVBDX1VQREFURV9BQ0tfUkVHNV9fT1VUX09QUDNfQ09ORklHX1VQREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vQURSX0NGR19DVVJfVlVQREFURV9MT0NLX1NFVDAKKyNkZWZpbmUgQURSX0NGR19DVVJfVlVQREFURV9MT0NLX1NFVDBfX0FEUl9DRkdfQ1VSX1ZVUERBVEVfTE9DS19TRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFEUl9DRkdfQ1VSX1ZVUERBVEVfTE9DS19TRVQwX19BRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FEUl9DRkdfVlVQREFURV9MT0NLX1NFVDAKKyNkZWZpbmUgQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUMF9fQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFEUl9DRkdfVlVQREFURV9MT0NLX1NFVDBfX0FEUl9DRkdfVlVQREFURV9MT0NLX1NFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FEUl9WVVBEQVRFX0xPQ0tfU0VUMAorI2RlZmluZSBBRFJfVlVQREFURV9MT0NLX1NFVDBfX0FEUl9WVVBEQVRFX0xPQ0tfU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQURSX1ZVUERBVEVfTE9DS19TRVQwX19BRFJfVlVQREFURV9MT0NLX1NFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ0ZHX1ZVUERBVEVfTE9DS19TRVQwCisjZGVmaW5lIENGR19WVVBEQVRFX0xPQ0tfU0VUMF9fQ0ZHX1ZVUERBVEVfTE9DS19TRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDRkdfVlVQREFURV9MT0NLX1NFVDBfX0NGR19WVVBEQVRFX0xPQ0tfU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9DVVJfVlVQREFURV9MT0NLX1NFVDAKKyNkZWZpbmUgQ1VSX1ZVUERBVEVfTE9DS19TRVQwX19DVVJfVlVQREFURV9MT0NLX1NFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUl9WVVBEQVRFX0xPQ0tfU0VUMF9fQ1VSX1ZVUERBVEVfTE9DS19TRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FEUl9DRkdfQ1VSX1ZVUERBVEVfTE9DS19TRVQxCisjZGVmaW5lIEFEUl9DRkdfQ1VSX1ZVUERBVEVfTE9DS19TRVQxX19BRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUMV9fQURSX0NGR19DVVJfVlVQREFURV9MT0NLX1NFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BRFJfQ0ZHX1ZVUERBVEVfTE9DS19TRVQxCisjZGVmaW5lIEFEUl9DRkdfVlVQREFURV9MT0NLX1NFVDFfX0FEUl9DRkdfVlVQREFURV9MT0NLX1NFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBRFJfQ0ZHX1ZVUERBVEVfTE9DS19TRVQxX19BRFJfQ0ZHX1ZVUERBVEVfTE9DS19TRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BRFJfVlVQREFURV9MT0NLX1NFVDEKKyNkZWZpbmUgQURSX1ZVUERBVEVfTE9DS19TRVQxX19BRFJfVlVQREFURV9MT0NLX1NFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFEUl9WVVBEQVRFX0xPQ0tfU0VUMV9fQURSX1ZVUERBVEVfTE9DS19TRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0NGR19WVVBEQVRFX0xPQ0tfU0VUMQorI2RlZmluZSBDRkdfVlVQREFURV9MT0NLX1NFVDFfX0NGR19WVVBEQVRFX0xPQ0tfU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0ZHX1ZVUERBVEVfTE9DS19TRVQxX19DRkdfVlVQREFURV9MT0NLX1NFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ1VSX1ZVUERBVEVfTE9DS19TRVQxCisjZGVmaW5lIENVUl9WVVBEQVRFX0xPQ0tfU0VUMV9fQ1VSX1ZVUERBVEVfTE9DS19TRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDVVJfVlVQREFURV9MT0NLX1NFVDFfX0NVUl9WVVBEQVRFX0xPQ0tfU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUMgorI2RlZmluZSBBRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUMl9fQURSX0NGR19DVVJfVlVQREFURV9MT0NLX1NFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQURSX0NGR19DVVJfVlVQREFURV9MT0NLX1NFVDJfX0FEUl9DRkdfQ1VSX1ZVUERBVEVfTE9DS19TRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUMgorI2RlZmluZSBBRFJfQ0ZHX1ZVUERBVEVfTE9DS19TRVQyX19BRFJfQ0ZHX1ZVUERBVEVfTE9DS19TRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUMl9fQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQURSX1ZVUERBVEVfTE9DS19TRVQyCisjZGVmaW5lIEFEUl9WVVBEQVRFX0xPQ0tfU0VUMl9fQURSX1ZVUERBVEVfTE9DS19TRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBRFJfVlVQREFURV9MT0NLX1NFVDJfX0FEUl9WVVBEQVRFX0xPQ0tfU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9DRkdfVlVQREFURV9MT0NLX1NFVDIKKyNkZWZpbmUgQ0ZHX1ZVUERBVEVfTE9DS19TRVQyX19DRkdfVlVQREFURV9MT0NLX1NFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENGR19WVVBEQVRFX0xPQ0tfU0VUMl9fQ0ZHX1ZVUERBVEVfTE9DS19TRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0NVUl9WVVBEQVRFX0xPQ0tfU0VUMgorI2RlZmluZSBDVVJfVlVQREFURV9MT0NLX1NFVDJfX0NVUl9WVVBEQVRFX0xPQ0tfU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1VSX1ZVUERBVEVfTE9DS19TRVQyX19DVVJfVlVQREFURV9MT0NLX1NFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQURSX0NGR19DVVJfVlVQREFURV9MT0NLX1NFVDMKKyNkZWZpbmUgQURSX0NGR19DVVJfVlVQREFURV9MT0NLX1NFVDNfX0FEUl9DRkdfQ1VSX1ZVUERBVEVfTE9DS19TRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFEUl9DRkdfQ1VSX1ZVUERBVEVfTE9DS19TRVQzX19BRFJfQ0ZHX0NVUl9WVVBEQVRFX0xPQ0tfU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FEUl9DRkdfVlVQREFURV9MT0NLX1NFVDMKKyNkZWZpbmUgQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUM19fQURSX0NGR19WVVBEQVRFX0xPQ0tfU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFEUl9DRkdfVlVQREFURV9MT0NLX1NFVDNfX0FEUl9DRkdfVlVQREFURV9MT0NLX1NFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FEUl9WVVBEQVRFX0xPQ0tfU0VUMworI2RlZmluZSBBRFJfVlVQREFURV9MT0NLX1NFVDNfX0FEUl9WVVBEQVRFX0xPQ0tfU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQURSX1ZVUERBVEVfTE9DS19TRVQzX19BRFJfVlVQREFURV9MT0NLX1NFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ0ZHX1ZVUERBVEVfTE9DS19TRVQzCisjZGVmaW5lIENGR19WVVBEQVRFX0xPQ0tfU0VUM19fQ0ZHX1ZVUERBVEVfTE9DS19TRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDRkdfVlVQREFURV9MT0NLX1NFVDNfX0NGR19WVVBEQVRFX0xPQ0tfU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9DVVJfVlVQREFURV9MT0NLX1NFVDMKKyNkZWZpbmUgQ1VSX1ZVUERBVEVfTE9DS19TRVQzX19DVVJfVlVQREFURV9MT0NLX1NFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENVUl9WVVBEQVRFX0xPQ0tfU0VUM19fQ1VSX1ZVUERBVEVfTE9DS19TRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL01QQ19PVVQwX01VWAorI2RlZmluZSBNUENfT1VUMF9NVVhfX01QQ19PVVRfTVVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDBfTVVYX19NUENfT1VUX01VWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vTVBDX09VVDBfREVOT1JNX0NPTlRST0wKKyNkZWZpbmUgTVBDX09VVDBfREVOT1JNX0NPTlRST0xfX01QQ19PVVRfREVOT1JNX0NMQU1QX01JTl9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQwX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfT1VUMF9ERU5PUk1fQ09OVFJPTF9fTVBDX09VVF9ERU5PUk1fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ19PVVQwX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE1QQ19PVVQwX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisjZGVmaW5lIE1QQ19PVVQwX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisvL01QQ19PVVQwX0RFTk9STV9DTEFNUF9HX1kKKyNkZWZpbmUgTVBDX09VVDBfREVOT1JNX0NMQU1QX0dfWV9fTVBDX09VVF9ERU5PUk1fQ0xBTVBfTUlOX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQwX0RFTk9STV9DTEFNUF9HX1lfX01QQ19PVVRfREVOT1JNX0NMQU1QX01BWF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfT1VUMF9ERU5PUk1fQ0xBTVBfR19ZX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBNUENfT1VUMF9ERU5PUk1fQ0xBTVBfR19ZX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGMDAwTAorLy9NUENfT1VUMF9ERU5PUk1fQ0xBTVBfQl9DQgorI2RlZmluZSBNUENfT1VUMF9ERU5PUk1fQ0xBTVBfQl9DQl9fTVBDX09VVF9ERU5PUk1fQ0xBTVBfTUlOX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDBfREVOT1JNX0NMQU1QX0JfQ0JfX01QQ19PVVRfREVOT1JNX0NMQU1QX01BWF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ19PVVQwX0RFTk9STV9DTEFNUF9CX0NCX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE1QQ19PVVQwX0RFTk9STV9DTEFNUF9CX0NCX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisvL01QQ19PVVQxX01VWAorI2RlZmluZSBNUENfT1VUMV9NVVhfX01QQ19PVVRfTVVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDFfTVVYX19NUENfT1VUX01VWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vTVBDX09VVDFfREVOT1JNX0NPTlRST0wKKyNkZWZpbmUgTVBDX09VVDFfREVOT1JNX0NPTlRST0xfX01QQ19PVVRfREVOT1JNX0NMQU1QX01JTl9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQxX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfT1VUMV9ERU5PUk1fQ09OVFJPTF9fTVBDX09VVF9ERU5PUk1fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ19PVVQxX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE1QQ19PVVQxX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisjZGVmaW5lIE1QQ19PVVQxX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisvL01QQ19PVVQxX0RFTk9STV9DTEFNUF9HX1kKKyNkZWZpbmUgTVBDX09VVDFfREVOT1JNX0NMQU1QX0dfWV9fTVBDX09VVF9ERU5PUk1fQ0xBTVBfTUlOX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQxX0RFTk9STV9DTEFNUF9HX1lfX01QQ19PVVRfREVOT1JNX0NMQU1QX01BWF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfT1VUMV9ERU5PUk1fQ0xBTVBfR19ZX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBNUENfT1VUMV9ERU5PUk1fQ0xBTVBfR19ZX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGMDAwTAorLy9NUENfT1VUMV9ERU5PUk1fQ0xBTVBfQl9DQgorI2RlZmluZSBNUENfT1VUMV9ERU5PUk1fQ0xBTVBfQl9DQl9fTVBDX09VVF9ERU5PUk1fQ0xBTVBfTUlOX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDFfREVOT1JNX0NMQU1QX0JfQ0JfX01QQ19PVVRfREVOT1JNX0NMQU1QX01BWF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ19PVVQxX0RFTk9STV9DTEFNUF9CX0NCX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE1QQ19PVVQxX0RFTk9STV9DTEFNUF9CX0NCX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisvL01QQ19PVVQyX01VWAorI2RlZmluZSBNUENfT1VUMl9NVVhfX01QQ19PVVRfTVVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDJfTVVYX19NUENfT1VUX01VWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vTVBDX09VVDJfREVOT1JNX0NPTlRST0wKKyNkZWZpbmUgTVBDX09VVDJfREVOT1JNX0NPTlRST0xfX01QQ19PVVRfREVOT1JNX0NMQU1QX01JTl9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQyX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfT1VUMl9ERU5PUk1fQ09OVFJPTF9fTVBDX09VVF9ERU5PUk1fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ19PVVQyX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE1QQ19PVVQyX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisjZGVmaW5lIE1QQ19PVVQyX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisvL01QQ19PVVQyX0RFTk9STV9DTEFNUF9HX1kKKyNkZWZpbmUgTVBDX09VVDJfREVOT1JNX0NMQU1QX0dfWV9fTVBDX09VVF9ERU5PUk1fQ0xBTVBfTUlOX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQyX0RFTk9STV9DTEFNUF9HX1lfX01QQ19PVVRfREVOT1JNX0NMQU1QX01BWF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfT1VUMl9ERU5PUk1fQ0xBTVBfR19ZX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBNUENfT1VUMl9ERU5PUk1fQ0xBTVBfR19ZX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGMDAwTAorLy9NUENfT1VUMl9ERU5PUk1fQ0xBTVBfQl9DQgorI2RlZmluZSBNUENfT1VUMl9ERU5PUk1fQ0xBTVBfQl9DQl9fTVBDX09VVF9ERU5PUk1fQ0xBTVBfTUlOX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDJfREVOT1JNX0NMQU1QX0JfQ0JfX01QQ19PVVRfREVOT1JNX0NMQU1QX01BWF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ19PVVQyX0RFTk9STV9DTEFNUF9CX0NCX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE1QQ19PVVQyX0RFTk9STV9DTEFNUF9CX0NCX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisvL01QQ19PVVQzX01VWAorI2RlZmluZSBNUENfT1VUM19NVVhfX01QQ19PVVRfTVVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDNfTVVYX19NUENfT1VUX01VWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vTVBDX09VVDNfREVOT1JNX0NPTlRST0wKKyNkZWZpbmUgTVBDX09VVDNfREVOT1JNX0NPTlRST0xfX01QQ19PVVRfREVOT1JNX0NMQU1QX01JTl9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQzX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfT1VUM19ERU5PUk1fQ09OVFJPTF9fTVBDX09VVF9ERU5PUk1fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1QQ19PVVQzX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE1QQ19PVVQzX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisjZGVmaW5lIE1QQ19PVVQzX0RFTk9STV9DT05UUk9MX19NUENfT1VUX0RFTk9STV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisvL01QQ19PVVQzX0RFTk9STV9DTEFNUF9HX1kKKyNkZWZpbmUgTVBDX09VVDNfREVOT1JNX0NMQU1QX0dfWV9fTVBDX09VVF9ERU5PUk1fQ0xBTVBfTUlOX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQzX0RFTk9STV9DTEFNUF9HX1lfX01QQ19PVVRfREVOT1JNX0NMQU1QX01BWF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENfT1VUM19ERU5PUk1fQ0xBTVBfR19ZX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBNUENfT1VUM19ERU5PUk1fQ0xBTVBfR19ZX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGMDAwTAorLy9NUENfT1VUM19ERU5PUk1fQ0xBTVBfQl9DQgorI2RlZmluZSBNUENfT1VUM19ERU5PUk1fQ0xBTVBfQl9DQl9fTVBDX09VVF9ERU5PUk1fQ0xBTVBfTUlOX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDNfREVOT1JNX0NMQU1QX0JfQ0JfX01QQ19PVVRfREVOT1JNX0NMQU1QX01BWF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ19PVVQzX0RFTk9STV9DTEFNUF9CX0NCX19NUENfT1VUX0RFTk9STV9DTEFNUF9NSU5fQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE1QQ19PVVQzX0RFTk9STV9DTEFNUF9CX0NCX19NUENfT1VUX0RFTk9STV9DTEFNUF9NQVhfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTBfZGlzcGRlYworLy9NUENDX09HQU0wX01QQ0NfT0dBTV9NT0RFCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX01PREVfX01QQ0NfT0dBTV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9NT0RFX19NUENDX09HQU1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9MVVRfSU5ERVgKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fTFVUX0lOREVYX19NUENDX09HQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX0xVVF9JTkRFWF9fTVBDQ19PR0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX0xVVF9EQVRBCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX0xVVF9EQVRBX19NUENDX09HQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9MVVRfREFUQV9fTVBDQ19PR0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0wKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9fTVBDQ19PR0FNX0xVVF9SQU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0xfX01QQ0NfT0dBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1JBTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfR19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMF9NUENDX09HQU1fUkFNQl9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0wX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTBfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTFfZGlzcGRlYworLy9NUENDX09HQU0xX01QQ0NfT0dBTV9NT0RFCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX01PREVfX01QQ0NfT0dBTV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9NT0RFX19NUENDX09HQU1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9MVVRfSU5ERVgKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fTFVUX0lOREVYX19NUENDX09HQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX0xVVF9JTkRFWF9fTVBDQ19PR0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX0xVVF9EQVRBCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX0xVVF9EQVRBX19NUENDX09HQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9MVVRfREFUQV9fTVBDQ19PR0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0wKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9fTVBDQ19PR0FNX0xVVF9SQU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0xfX01QQ0NfT0dBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1JBTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfR19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMV9NUENDX09HQU1fUkFNQl9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0xX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTFfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTJfZGlzcGRlYworLy9NUENDX09HQU0yX01QQ0NfT0dBTV9NT0RFCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX01PREVfX01QQ0NfT0dBTV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9NT0RFX19NUENDX09HQU1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9MVVRfSU5ERVgKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fTFVUX0lOREVYX19NUENDX09HQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX0xVVF9JTkRFWF9fTVBDQ19PR0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX0xVVF9EQVRBCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX0xVVF9EQVRBX19NUENDX09HQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9MVVRfREFUQV9fTVBDQ19PR0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0wKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9fTVBDQ19PR0FNX0xVVF9SQU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0xfX01QQ0NfT0dBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1JBTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfR19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNMl9NUENDX09HQU1fUkFNQl9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0yX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTJfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTNfZGlzcGRlYworLy9NUENDX09HQU0zX01QQ0NfT0dBTV9NT0RFCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX01PREVfX01QQ0NfT0dBTV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9NT0RFX19NUENDX09HQU1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9MVVRfSU5ERVgKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fTFVUX0lOREVYX19NUENDX09HQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX0xVVF9JTkRFWF9fTVBDQ19PR0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX0xVVF9EQVRBCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX0xVVF9EQVRBX19NUENDX09HQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9MVVRfREFUQV9fTVBDQ19PR0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0wKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9fTVBDQ19PR0FNX0xVVF9SQU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0xfX01QQ0NfT0dBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1JBTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfR19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNM19NUENDX09HQU1fUkFNQl9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU0zX01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTNfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTRfZGlzcGRlYworLy9NUENDX09HQU00X01QQ0NfT0dBTV9NT0RFCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX01PREVfX01QQ0NfT0dBTV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9NT0RFX19NUENDX09HQU1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9MVVRfSU5ERVgKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fTFVUX0lOREVYX19NUENDX09HQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX0xVVF9JTkRFWF9fTVBDQ19PR0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX0xVVF9EQVRBCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX0xVVF9EQVRBX19NUENDX09HQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9MVVRfREFUQV9fTVBDQ19PR0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0wKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9fTVBDQ19PR0FNX0xVVF9SQU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0xfX01QQ0NfT0dBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1JBTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfR19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNF9NUENDX09HQU1fUkFNQl9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU00X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTRfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTVfZGlzcGRlYworLy9NUENDX09HQU01X01QQ0NfT0dBTV9NT0RFCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX01PREVfX01QQ0NfT0dBTV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9NT0RFX19NUENDX09HQU1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9MVVRfSU5ERVgKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fTFVUX0lOREVYX19NUENDX09HQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX0xVVF9JTkRFWF9fTVBDQ19PR0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX0xVVF9EQVRBCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX0xVVF9EQVRBX19NUENDX09HQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9MVVRfREFUQV9fTVBDQ19PR0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0wKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9fTVBDQ19PR0FNX0xVVF9SQU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0xfX01QQ0NfT0dBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1JBTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfR19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNV9NUENDX09HQU1fUkFNQl9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU01X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTVfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTZfZGlzcGRlYworLy9NUENDX09HQU02X01QQ0NfT0dBTV9NT0RFCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX01PREVfX01QQ0NfT0dBTV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9NT0RFX19NUENDX09HQU1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9MVVRfSU5ERVgKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fTFVUX0lOREVYX19NUENDX09HQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX0xVVF9JTkRFWF9fTVBDQ19PR0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX0xVVF9EQVRBCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX0xVVF9EQVRBX19NUENDX09HQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9MVVRfREFUQV9fTVBDQ19PR0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0wKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9fTVBDQ19PR0FNX0xVVF9SQU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0xfX01QQ0NfT0dBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1JBTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfR19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNNl9NUENDX09HQU1fUkFNQl9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU02X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTZfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY2Nfb2dhbTdfZGlzcGRlYworLy9NUENDX09HQU03X01QQ0NfT0dBTV9NT0RFCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX01PREVfX01QQ0NfT0dBTV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9NT0RFX19NUENDX09HQU1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9MVVRfSU5ERVgKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fTFVUX0lOREVYX19NUENDX09HQU1fTFVUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX0xVVF9JTkRFWF9fTVBDQ19PR0FNX0xVVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX0xVVF9EQVRBCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX0xVVF9EQVRBX19NUENDX09HQU1fTFVUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9MVVRfREFUQV9fTVBDQ19PR0FNX0xVVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkZGTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0wKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX0xVVF9SQU1fQ09OVFJPTF9fTVBDQ19PR0FNX0xVVF9SQU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9MVVRfUkFNX0NPTlRST0xfX01QQ0NfT0dBTV9DT05GSUdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1dSSVRFX0VOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fTFVUX1JBTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fTFVUX1JBTV9DT05UUk9MX19NUENDX09HQU1fQ09ORklHX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfQl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfR19fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1IKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU1RBUlRfQ05UTF9SX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX1NUQVJUX1NFR01FTlRfUl9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX01BU0sgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0IKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfR19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUgorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9TTE9QRV9DTlRMX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX1JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQgorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQgorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfQl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9TTE9QRV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMV9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX0VORF9DTlRMMl9HX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OX0VORF9CQVNFX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1NMT1BFX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfR19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1IKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwxX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1IKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfRU5EX0NOVEwyX1JfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT05fRU5EX0JBU0VfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04wX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfMworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzUKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjRfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjVfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fNl83CisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT042X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT043X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOQorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMQorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xMworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNQorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xNworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOQorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04xOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMQorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yMworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNQorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yNworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yNl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yN19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOQorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04yOV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMQorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zMworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zMl9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUFfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQV9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQV9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1BX0VYUF9SRUdJT04zM19OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1BX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUFfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQgorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9CX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfRworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9HX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX0dfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUgorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TVEFSVF9DTlRMX1JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fU1RBUlRfU0VHTUVOVF9SX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NUQVJUX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9TVEFSVF9TRUdNRU5UX1JfTUFTSyAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQgorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfQl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfQl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0cKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9TTE9QRV9DTlRMX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fTElORUFSX1NMT1BFX0dfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9HX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9HX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfU0xPUEVfQ05UTF9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0xJTkVBUl9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1NMT1BFX0NOVExfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9MSU5FQVJfU0xPUEVfUl9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9CX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX1NMT1BFX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0JfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0cKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwxX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0cKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfRU5EX0NOVEwyX0dfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT05fRU5EX0JBU0VfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfU0xPUEVfR19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfR19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUgorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMV9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDFfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUgorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9FTkRfQ05UTDJfUl9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTl9FTkRfQkFTRV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9TTE9QRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX0VORF9DTlRMMl9SX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OX0VORF9CQVNFX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzEKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjBfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8wXzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xX0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzBfMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjFfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMF9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMF8xX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMV9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMl8zX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yXzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzJfM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNQorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONF9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzRfNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjVfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fNF81X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONV9OVU1fU0VHTUVOVFNfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT040X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X0xVVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl80XzVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT041X05VTV9TRUdNRU5UU19NQVNLICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzcKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjZfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl82XzdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT043X0xVVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzZfN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjdfTlVNX1NFR01FTlRTX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ONl9OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19MVVRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fNl83X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9ON19OVU1fU0VHTUVOVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fOF85CisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT044X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fOF85X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl84XzlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT045X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzhfOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMTBfMTFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMF8xMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjExX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEwXzExX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMTJfMTNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xMl8xM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjEzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzEyXzEzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1CisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMTRfMTVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNF8xNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE0XzE1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3CisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMTZfMTdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xNl8xN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE2XzE3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5CisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMThfMTlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04xOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8xOF8xOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjE5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMThfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzE4XzE5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMTlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMjBfMjFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMF8yMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIwXzIxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMjJfMjNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yMl8yM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjIzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzIyXzIzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1CisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI0X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMjRfMjVfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yNV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNF8yNV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI1X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjRfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI0XzI1X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjVfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3CisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI2X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMjZfMjdfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yN19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yNl8yN19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI3X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjZfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI2XzI3X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjdfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5CisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI4X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMjhfMjlfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04yOV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8yOF8yOV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjI5X05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjhfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzI4XzI5X19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMjlfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMwX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMzBfMzFfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zMV9MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMF8zMV9fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMxX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzBfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMwXzMxX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzFfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL01QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMyX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTVBDQ19PR0FNN19NUENDX09HQU1fUkFNQl9SRUdJT05fMzJfMzNfX01QQ0NfT0dBTV9SQU1CX0VYUF9SRUdJT04zM19MVVRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENDX09HQU03X01QQ0NfT0dBTV9SQU1CX1JFR0lPTl8zMl8zM19fTVBDQ19PR0FNX1JBTUJfRVhQX1JFR0lPTjMzX05VTV9TRUdNRU5UU19fU0hJRlQgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzJfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTFVUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisjZGVmaW5lIE1QQ0NfT0dBTTdfTVBDQ19PR0FNX1JBTUJfUkVHSU9OXzMyXzMzX19NUENDX09HQU1fUkFNQl9FWFBfUkVHSU9OMzNfTlVNX1NFR01FTlRTX01BU0sgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfbXBjX21wY19vY3NjX2Rpc3BkZWMKKy8vTVBDX09VVF9DU0NfQ09FRl9GT1JNQVQKKyNkZWZpbmUgTVBDX09VVF9DU0NfQ09FRl9GT1JNQVRfX01QQ19PQ1NDMF9DT0VGX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVRfQ1NDX0NPRUZfRk9STUFUX19NUENfT0NTQzFfQ09FRl9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNUENfT1VUX0NTQ19DT0VGX0ZPUk1BVF9fTVBDX09DU0MyX0NPRUZfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTVBDX09VVF9DU0NfQ09FRl9GT1JNQVRfX01QQ19PQ1NDM19DT0VGX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1QQ19PVVRfQ1NDX0NPRUZfRk9STUFUX19NUENfT0NTQzBfQ09FRl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QQ19PVVRfQ1NDX0NPRUZfRk9STUFUX19NUENfT0NTQzFfQ09FRl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QQ19PVVRfQ1NDX0NPRUZfRk9STUFUX19NUENfT0NTQzJfQ09FRl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QQ19PVVRfQ1NDX0NPRUZfRk9STUFUX19NUENfT0NTQzNfQ09FRl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisvL01QQ19PVVQwX0NTQ19NT0RFCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19NT0RFX19NUENfT0NTQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMF9DU0NfTU9ERV9fTVBDX09DU0NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENfT1VUMF9DU0NfQzExX0MxMl9BCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMTFfQzEyX0FfX01QQ19PQ1NDX0MxMV9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzExX0MxMl9BX19NUENfT0NTQ19DMTJfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMTFfQzEyX0FfX01QQ19PQ1NDX0MxMV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMTFfQzEyX0FfX01QQ19PQ1NDX0MxMl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQwX0NTQ19DMTNfQzE0X0EKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MxM19DMTRfQV9fTVBDX09DU0NfQzEzX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMTNfQzE0X0FfX01QQ19PQ1NDX0MxNF9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MxM19DMTRfQV9fTVBDX09DU0NfQzEzX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MxM19DMTRfQV9fTVBDX09DU0NfQzE0X0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDBfQ1NDX0MyMV9DMjJfQQorI2RlZmluZSBNUENfT1VUMF9DU0NfQzIxX0MyMl9BX19NUENfT0NTQ19DMjFfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MyMV9DMjJfQV9fTVBDX09DU0NfQzIyX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzIxX0MyMl9BX19NUENfT0NTQ19DMjFfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzIxX0MyMl9BX19NUENfT0NTQ19DMjJfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMF9DU0NfQzIzX0MyNF9BCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMjNfQzI0X0FfX01QQ19PQ1NDX0MyM19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzIzX0MyNF9BX19NUENfT0NTQ19DMjRfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMjNfQzI0X0FfX01QQ19PQ1NDX0MyM19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMjNfQzI0X0FfX01QQ19PQ1NDX0MyNF9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQwX0NTQ19DMzFfQzMyX0EKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MzMV9DMzJfQV9fTVBDX09DU0NfQzMxX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMzFfQzMyX0FfX01QQ19PQ1NDX0MzMl9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MzMV9DMzJfQV9fTVBDX09DU0NfQzMxX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MzMV9DMzJfQV9fTVBDX09DU0NfQzMyX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDBfQ1NDX0MzM19DMzRfQQorI2RlZmluZSBNUENfT1VUMF9DU0NfQzMzX0MzNF9BX19NUENfT0NTQ19DMzNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MzM19DMzRfQV9fTVBDX09DU0NfQzM0X0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzMzX0MzNF9BX19NUENfT0NTQ19DMzNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzMzX0MzNF9BX19NUENfT0NTQ19DMzRfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMF9DU0NfQzExX0MxMl9CCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMTFfQzEyX0JfX01QQ19PQ1NDX0MxMV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzExX0MxMl9CX19NUENfT0NTQ19DMTJfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMTFfQzEyX0JfX01QQ19PQ1NDX0MxMV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMTFfQzEyX0JfX01QQ19PQ1NDX0MxMl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQwX0NTQ19DMTNfQzE0X0IKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MxM19DMTRfQl9fTVBDX09DU0NfQzEzX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMTNfQzE0X0JfX01QQ19PQ1NDX0MxNF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MxM19DMTRfQl9fTVBDX09DU0NfQzEzX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MxM19DMTRfQl9fTVBDX09DU0NfQzE0X0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDBfQ1NDX0MyMV9DMjJfQgorI2RlZmluZSBNUENfT1VUMF9DU0NfQzIxX0MyMl9CX19NUENfT0NTQ19DMjFfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MyMV9DMjJfQl9fTVBDX09DU0NfQzIyX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzIxX0MyMl9CX19NUENfT0NTQ19DMjFfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzIxX0MyMl9CX19NUENfT0NTQ19DMjJfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMF9DU0NfQzIzX0MyNF9CCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMjNfQzI0X0JfX01QQ19PQ1NDX0MyM19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzIzX0MyNF9CX19NUENfT0NTQ19DMjRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMjNfQzI0X0JfX01QQ19PQ1NDX0MyM19CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMjNfQzI0X0JfX01QQ19PQ1NDX0MyNF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQwX0NTQ19DMzFfQzMyX0IKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MzMV9DMzJfQl9fTVBDX09DU0NfQzMxX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQwX0NTQ19DMzFfQzMyX0JfX01QQ19PQ1NDX0MzMl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MzMV9DMzJfQl9fTVBDX09DU0NfQzMxX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MzMV9DMzJfQl9fTVBDX09DU0NfQzMyX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDBfQ1NDX0MzM19DMzRfQgorI2RlZmluZSBNUENfT1VUMF9DU0NfQzMzX0MzNF9CX19NUENfT0NTQ19DMzNfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDBfQ1NDX0MzM19DMzRfQl9fTVBDX09DU0NfQzM0X0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzMzX0MzNF9CX19NUENfT0NTQ19DMzNfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMF9DU0NfQzMzX0MzNF9CX19NUENfT0NTQ19DMzRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMV9DU0NfTU9ERQorI2RlZmluZSBNUENfT1VUMV9DU0NfTU9ERV9fTVBDX09DU0NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX01PREVfX01QQ19PQ1NDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vTVBDX09VVDFfQ1NDX0MxMV9DMTJfQQorI2RlZmluZSBNUENfT1VUMV9DU0NfQzExX0MxMl9BX19NUENfT0NTQ19DMTFfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MxMV9DMTJfQV9fTVBDX09DU0NfQzEyX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzExX0MxMl9BX19NUENfT0NTQ19DMTFfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzExX0MxMl9BX19NUENfT0NTQ19DMTJfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMV9DU0NfQzEzX0MxNF9BCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMTNfQzE0X0FfX01QQ19PQ1NDX0MxM19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzEzX0MxNF9BX19NUENfT0NTQ19DMTRfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMTNfQzE0X0FfX01QQ19PQ1NDX0MxM19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMTNfQzE0X0FfX01QQ19PQ1NDX0MxNF9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQxX0NTQ19DMjFfQzIyX0EKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MyMV9DMjJfQV9fTVBDX09DU0NfQzIxX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMjFfQzIyX0FfX01QQ19PQ1NDX0MyMl9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MyMV9DMjJfQV9fTVBDX09DU0NfQzIxX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MyMV9DMjJfQV9fTVBDX09DU0NfQzIyX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDFfQ1NDX0MyM19DMjRfQQorI2RlZmluZSBNUENfT1VUMV9DU0NfQzIzX0MyNF9BX19NUENfT0NTQ19DMjNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MyM19DMjRfQV9fTVBDX09DU0NfQzI0X0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzIzX0MyNF9BX19NUENfT0NTQ19DMjNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzIzX0MyNF9BX19NUENfT0NTQ19DMjRfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMV9DU0NfQzMxX0MzMl9BCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMzFfQzMyX0FfX01QQ19PQ1NDX0MzMV9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzMxX0MzMl9BX19NUENfT0NTQ19DMzJfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMzFfQzMyX0FfX01QQ19PQ1NDX0MzMV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMzFfQzMyX0FfX01QQ19PQ1NDX0MzMl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQxX0NTQ19DMzNfQzM0X0EKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MzM19DMzRfQV9fTVBDX09DU0NfQzMzX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMzNfQzM0X0FfX01QQ19PQ1NDX0MzNF9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MzM19DMzRfQV9fTVBDX09DU0NfQzMzX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MzM19DMzRfQV9fTVBDX09DU0NfQzM0X0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDFfQ1NDX0MxMV9DMTJfQgorI2RlZmluZSBNUENfT1VUMV9DU0NfQzExX0MxMl9CX19NUENfT0NTQ19DMTFfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MxMV9DMTJfQl9fTVBDX09DU0NfQzEyX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzExX0MxMl9CX19NUENfT0NTQ19DMTFfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzExX0MxMl9CX19NUENfT0NTQ19DMTJfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMV9DU0NfQzEzX0MxNF9CCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMTNfQzE0X0JfX01QQ19PQ1NDX0MxM19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzEzX0MxNF9CX19NUENfT0NTQ19DMTRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMTNfQzE0X0JfX01QQ19PQ1NDX0MxM19CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMTNfQzE0X0JfX01QQ19PQ1NDX0MxNF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQxX0NTQ19DMjFfQzIyX0IKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MyMV9DMjJfQl9fTVBDX09DU0NfQzIxX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMjFfQzIyX0JfX01QQ19PQ1NDX0MyMl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MyMV9DMjJfQl9fTVBDX09DU0NfQzIxX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MyMV9DMjJfQl9fTVBDX09DU0NfQzIyX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDFfQ1NDX0MyM19DMjRfQgorI2RlZmluZSBNUENfT1VUMV9DU0NfQzIzX0MyNF9CX19NUENfT0NTQ19DMjNfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MyM19DMjRfQl9fTVBDX09DU0NfQzI0X0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzIzX0MyNF9CX19NUENfT0NTQ19DMjNfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzIzX0MyNF9CX19NUENfT0NTQ19DMjRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMV9DU0NfQzMxX0MzMl9CCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMzFfQzMyX0JfX01QQ19PQ1NDX0MzMV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMV9DU0NfQzMxX0MzMl9CX19NUENfT0NTQ19DMzJfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMzFfQzMyX0JfX01QQ19PQ1NDX0MzMV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMzFfQzMyX0JfX01QQ19PQ1NDX0MzMl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQxX0NTQ19DMzNfQzM0X0IKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MzM19DMzRfQl9fTVBDX09DU0NfQzMzX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQxX0NTQ19DMzNfQzM0X0JfX01QQ19PQ1NDX0MzNF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MzM19DMzRfQl9fTVBDX09DU0NfQzMzX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDFfQ1NDX0MzM19DMzRfQl9fTVBDX09DU0NfQzM0X0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDJfQ1NDX01PREUKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX01PREVfX01QQ19PQ1NDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19NT0RFX19NUENfT0NTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL01QQ19PVVQyX0NTQ19DMTFfQzEyX0EKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MxMV9DMTJfQV9fTVBDX09DU0NfQzExX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMTFfQzEyX0FfX01QQ19PQ1NDX0MxMl9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MxMV9DMTJfQV9fTVBDX09DU0NfQzExX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MxMV9DMTJfQV9fTVBDX09DU0NfQzEyX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDJfQ1NDX0MxM19DMTRfQQorI2RlZmluZSBNUENfT1VUMl9DU0NfQzEzX0MxNF9BX19NUENfT0NTQ19DMTNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MxM19DMTRfQV9fTVBDX09DU0NfQzE0X0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzEzX0MxNF9BX19NUENfT0NTQ19DMTNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzEzX0MxNF9BX19NUENfT0NTQ19DMTRfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMl9DU0NfQzIxX0MyMl9BCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMjFfQzIyX0FfX01QQ19PQ1NDX0MyMV9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzIxX0MyMl9BX19NUENfT0NTQ19DMjJfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMjFfQzIyX0FfX01QQ19PQ1NDX0MyMV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMjFfQzIyX0FfX01QQ19PQ1NDX0MyMl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQyX0NTQ19DMjNfQzI0X0EKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MyM19DMjRfQV9fTVBDX09DU0NfQzIzX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMjNfQzI0X0FfX01QQ19PQ1NDX0MyNF9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MyM19DMjRfQV9fTVBDX09DU0NfQzIzX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MyM19DMjRfQV9fTVBDX09DU0NfQzI0X0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDJfQ1NDX0MzMV9DMzJfQQorI2RlZmluZSBNUENfT1VUMl9DU0NfQzMxX0MzMl9BX19NUENfT0NTQ19DMzFfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MzMV9DMzJfQV9fTVBDX09DU0NfQzMyX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzMxX0MzMl9BX19NUENfT0NTQ19DMzFfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzMxX0MzMl9BX19NUENfT0NTQ19DMzJfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMl9DU0NfQzMzX0MzNF9BCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMzNfQzM0X0FfX01QQ19PQ1NDX0MzM19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzMzX0MzNF9BX19NUENfT0NTQ19DMzRfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMzNfQzM0X0FfX01QQ19PQ1NDX0MzM19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMzNfQzM0X0FfX01QQ19PQ1NDX0MzNF9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQyX0NTQ19DMTFfQzEyX0IKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MxMV9DMTJfQl9fTVBDX09DU0NfQzExX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMTFfQzEyX0JfX01QQ19PQ1NDX0MxMl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MxMV9DMTJfQl9fTVBDX09DU0NfQzExX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MxMV9DMTJfQl9fTVBDX09DU0NfQzEyX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDJfQ1NDX0MxM19DMTRfQgorI2RlZmluZSBNUENfT1VUMl9DU0NfQzEzX0MxNF9CX19NUENfT0NTQ19DMTNfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MxM19DMTRfQl9fTVBDX09DU0NfQzE0X0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzEzX0MxNF9CX19NUENfT0NTQ19DMTNfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzEzX0MxNF9CX19NUENfT0NTQ19DMTRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMl9DU0NfQzIxX0MyMl9CCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMjFfQzIyX0JfX01QQ19PQ1NDX0MyMV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzIxX0MyMl9CX19NUENfT0NTQ19DMjJfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMjFfQzIyX0JfX01QQ19PQ1NDX0MyMV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMjFfQzIyX0JfX01QQ19PQ1NDX0MyMl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQyX0NTQ19DMjNfQzI0X0IKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MyM19DMjRfQl9fTVBDX09DU0NfQzIzX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMjNfQzI0X0JfX01QQ19PQ1NDX0MyNF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MyM19DMjRfQl9fTVBDX09DU0NfQzIzX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MyM19DMjRfQl9fTVBDX09DU0NfQzI0X0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDJfQ1NDX0MzMV9DMzJfQgorI2RlZmluZSBNUENfT1VUMl9DU0NfQzMxX0MzMl9CX19NUENfT0NTQ19DMzFfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDJfQ1NDX0MzMV9DMzJfQl9fTVBDX09DU0NfQzMyX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzMxX0MzMl9CX19NUENfT0NTQ19DMzFfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzMxX0MzMl9CX19NUENfT0NTQ19DMzJfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUMl9DU0NfQzMzX0MzNF9CCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMzNfQzM0X0JfX01QQ19PQ1NDX0MzM19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUMl9DU0NfQzMzX0MzNF9CX19NUENfT0NTQ19DMzRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMzNfQzM0X0JfX01QQ19PQ1NDX0MzM19CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQyX0NTQ19DMzNfQzM0X0JfX01QQ19PQ1NDX0MzNF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQzX0NTQ19NT0RFCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19NT0RFX19NUENfT0NTQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUM19DU0NfTU9ERV9fTVBDX09DU0NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9NUENfT1VUM19DU0NfQzExX0MxMl9BCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMTFfQzEyX0FfX01QQ19PQ1NDX0MxMV9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUM19DU0NfQzExX0MxMl9BX19NUENfT0NTQ19DMTJfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMTFfQzEyX0FfX01QQ19PQ1NDX0MxMV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMTFfQzEyX0FfX01QQ19PQ1NDX0MxMl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQzX0NTQ19DMTNfQzE0X0EKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MxM19DMTRfQV9fTVBDX09DU0NfQzEzX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMTNfQzE0X0FfX01QQ19PQ1NDX0MxNF9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MxM19DMTRfQV9fTVBDX09DU0NfQzEzX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MxM19DMTRfQV9fTVBDX09DU0NfQzE0X0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDNfQ1NDX0MyMV9DMjJfQQorI2RlZmluZSBNUENfT1VUM19DU0NfQzIxX0MyMl9BX19NUENfT0NTQ19DMjFfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MyMV9DMjJfQV9fTVBDX09DU0NfQzIyX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUM19DU0NfQzIxX0MyMl9BX19NUENfT0NTQ19DMjFfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUM19DU0NfQzIxX0MyMl9BX19NUENfT0NTQ19DMjJfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUM19DU0NfQzIzX0MyNF9BCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMjNfQzI0X0FfX01QQ19PQ1NDX0MyM19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUM19DU0NfQzIzX0MyNF9BX19NUENfT0NTQ19DMjRfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMjNfQzI0X0FfX01QQ19PQ1NDX0MyM19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMjNfQzI0X0FfX01QQ19PQ1NDX0MyNF9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQzX0NTQ19DMzFfQzMyX0EKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MzMV9DMzJfQV9fTVBDX09DU0NfQzMxX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMzFfQzMyX0FfX01QQ19PQ1NDX0MzMl9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MzMV9DMzJfQV9fTVBDX09DU0NfQzMxX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MzMV9DMzJfQV9fTVBDX09DU0NfQzMyX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDNfQ1NDX0MzM19DMzRfQQorI2RlZmluZSBNUENfT1VUM19DU0NfQzMzX0MzNF9BX19NUENfT0NTQ19DMzNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MzM19DMzRfQV9fTVBDX09DU0NfQzM0X0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUM19DU0NfQzMzX0MzNF9BX19NUENfT0NTQ19DMzNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUM19DU0NfQzMzX0MzNF9BX19NUENfT0NTQ19DMzRfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUM19DU0NfQzExX0MxMl9CCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMTFfQzEyX0JfX01QQ19PQ1NDX0MxMV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUM19DU0NfQzExX0MxMl9CX19NUENfT0NTQ19DMTJfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMTFfQzEyX0JfX01QQ19PQ1NDX0MxMV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMTFfQzEyX0JfX01QQ19PQ1NDX0MxMl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQzX0NTQ19DMTNfQzE0X0IKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MxM19DMTRfQl9fTVBDX09DU0NfQzEzX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMTNfQzE0X0JfX01QQ19PQ1NDX0MxNF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MxM19DMTRfQl9fTVBDX09DU0NfQzEzX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MxM19DMTRfQl9fTVBDX09DU0NfQzE0X0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDNfQ1NDX0MyMV9DMjJfQgorI2RlZmluZSBNUENfT1VUM19DU0NfQzIxX0MyMl9CX19NUENfT0NTQ19DMjFfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MyMV9DMjJfQl9fTVBDX09DU0NfQzIyX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUM19DU0NfQzIxX0MyMl9CX19NUENfT0NTQ19DMjFfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUM19DU0NfQzIxX0MyMl9CX19NUENfT0NTQ19DMjJfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NUENfT1VUM19DU0NfQzIzX0MyNF9CCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMjNfQzI0X0JfX01QQ19PQ1NDX0MyM19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUENfT1VUM19DU0NfQzIzX0MyNF9CX19NUENfT0NTQ19DMjRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMjNfQzI0X0JfX01QQ19PQ1NDX0MyM19CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMjNfQzI0X0JfX01QQ19PQ1NDX0MyNF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01QQ19PVVQzX0NTQ19DMzFfQzMyX0IKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MzMV9DMzJfQl9fTVBDX09DU0NfQzMxX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QQ19PVVQzX0NTQ19DMzFfQzMyX0JfX01QQ19PQ1NDX0MzMl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MzMV9DMzJfQl9fTVBDX09DU0NfQzMxX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MzMV9DMzJfQl9fTVBDX09DU0NfQzMyX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTVBDX09VVDNfQ1NDX0MzM19DMzRfQgorI2RlZmluZSBNUENfT1VUM19DU0NfQzMzX0MzNF9CX19NUENfT0NTQ19DMzNfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVBDX09VVDNfQ1NDX0MzM19DMzRfQl9fTVBDX09DU0NfQzM0X0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNUENfT1VUM19DU0NfQzMzX0MzNF9CX19NUENfT0NTQ19DMzNfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNUENfT1VUM19DU0NfQzMzX0MzNF9CX19NUENfT0NTQ19DMzRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21wY19tcGNfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy9EQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX1NUQVRFCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RDX1BFUkZNT04xNV9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX1BFUkZNT04xNV9QRVJGTU9OX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGQzAwTAorLy9EQ19QRVJGTU9OMTVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0xPVworI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfUEVSRk1PTjE1X1BFUkZNT05fSEkKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fSElfX1BFUkZNT05fSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fSElfX1BFUkZNT05fSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjE1X1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjE1X1BFUkZNT05fTE9XCisjZGVmaW5lIERDX1BFUkZNT04xNV9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTVfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9hYm0wX2Rpc3BkZWMKKy8vQkwxX1BXTV9BTUJJRU5UX0xJR0hUX0xFVkVMCisjZGVmaW5lIEJMMV9QV01fQU1CSUVOVF9MSUdIVF9MRVZFTF9fQkwxX1BXTV9BTUJJRU5UX0xJR0hUX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBCTDFfUFdNX0FNQklFTlRfTElHSFRfTEVWRUxfX0JMMV9QV01fQU1CSUVOVF9MSUdIVF9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGTAorLy9CTDFfUFdNX1VTRVJfTEVWRUwKKyNkZWZpbmUgQkwxX1BXTV9VU0VSX0xFVkVMX19CTDFfUFdNX1VTRVJfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEJMMV9QV01fVVNFUl9MRVZFTF9fQkwxX1BXTV9VU0VSX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL0JMMV9QV01fVEFSR0VUX0FCTV9MRVZFTAorI2RlZmluZSBCTDFfUFdNX1RBUkdFVF9BQk1fTEVWRUxfX0JMMV9QV01fVEFSR0VUX0FCTV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQkwxX1BXTV9UQVJHRVRfQUJNX0xFVkVMX19CTDFfUFdNX1RBUkdFVF9BQk1fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRkwKKy8vQkwxX1BXTV9DVVJSRU5UX0FCTV9MRVZFTAorI2RlZmluZSBCTDFfUFdNX0NVUlJFTlRfQUJNX0xFVkVMX19CTDFfUFdNX0NVUlJFTlRfQUJNX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQkwxX1BXTV9DVVJSRU5UX0FCTV9MRVZFTF9fQkwxX1BXTV9DVVJSRU5UX0FCTV9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRkwKKy8vQkwxX1BXTV9GSU5BTF9EVVRZX0NZQ0xFCisjZGVmaW5lIEJMMV9QV01fRklOQUxfRFVUWV9DWUNMRV9fQkwxX1BXTV9GSU5BTF9EVVRZX0NZQ0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBCTDFfUFdNX0ZJTkFMX0RVVFlfQ1lDTEVfX0JMMV9QV01fRklOQUxfRFVUWV9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGTAorLy9CTDFfUFdNX01JTklNVU1fRFVUWV9DWUNMRQorI2RlZmluZSBCTDFfUFdNX01JTklNVU1fRFVUWV9DWUNMRV9fQkwxX1BXTV9NSU5JTVVNX0RVVFlfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQkwxX1BXTV9NSU5JTVVNX0RVVFlfQ1lDTEVfX0JMMV9QV01fTUlOSU1VTV9EVVRZX0NZQ0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRkwKKy8vQkwxX1BXTV9BQk1fQ05UTAorI2RlZmluZSBCTDFfUFdNX0FCTV9DTlRMX19CTDFfUFdNX1VTRV9BQk1fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQkwxX1BXTV9BQk1fQ05UTF9fQkwxX1BXTV9VU0VfQU1CSUVOVF9MRVZFTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEJMMV9QV01fQUJNX0NOVExfX0JMMV9QV01fQVVUT19VUERBVEVfQ1VSUkVOVF9BQk1fTEVWRUxfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBCTDFfUFdNX0FCTV9DTlRMX19CTDFfUFdNX0FVVE9fQ0FMQ19GSU5BTF9EVVRZX0NZQ0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQkwxX1BXTV9BQk1fQ05UTF9fQkwxX1BXTV9BVVRPX1VQREFURV9DVVJSRU5UX0FCTV9TVEVQX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBCTDFfUFdNX0FCTV9DTlRMX19CTDFfUFdNX1VTRV9BQk1fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBCTDFfUFdNX0FCTV9DTlRMX19CTDFfUFdNX1VTRV9BTUJJRU5UX0xFVkVMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBCTDFfUFdNX0FCTV9DTlRMX19CTDFfUFdNX0FVVE9fVVBEQVRFX0NVUlJFTlRfQUJNX0xFVkVMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBCTDFfUFdNX0FCTV9DTlRMX19CTDFfUFdNX0FVVE9fQ0FMQ19GSU5BTF9EVVRZX0NZQ0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBCTDFfUFdNX0FCTV9DTlRMX19CTDFfUFdNX0FVVE9fVVBEQVRFX0NVUlJFTlRfQUJNX1NURVBfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9CTDFfUFdNX0JMX1VQREFURV9TQU1QTEVfUkFURQorI2RlZmluZSBCTDFfUFdNX0JMX1VQREFURV9TQU1QTEVfUkFURV9fQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEVfQ09VTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEVfX0JMMV9QV01fQkxfVVBEQVRFX1JFU0VUX1NBTVBMRV9SQVRFX0ZSQU1FX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEJMMV9QV01fQkxfVVBEQVRFX1NBTVBMRV9SQVRFX19CTDFfUFdNX0JMX1VQREFURV9TQU1QTEVfUkFURV9GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBCTDFfUFdNX0JMX1VQREFURV9TQU1QTEVfUkFURV9fQkwxX1BXTV9CTF9VUERBVEVfSU5JVElBTF9TQU1QTEVfUkFURV9DT1VOVF9WQUxVRV9XSEVOX1JFU0VUX19TSElGVCAgICAweDEwCisjZGVmaW5lIEJMMV9QV01fQkxfVVBEQVRFX1NBTVBMRV9SQVRFX19BQk0xX0hHTFNfUkVHX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEVfX0JMMV9QV01fQkxfVVBEQVRFX1NBTVBMRV9SQVRFX0NPVU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEVfX0JMMV9QV01fQkxfVVBEQVRFX1JFU0VUX1NBTVBMRV9SQVRFX0ZSQU1FX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEVfX0JMMV9QV01fQkxfVVBEQVRFX1NBTVBMRV9SQVRFX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEVfX0JMMV9QV01fQkxfVVBEQVRFX0lOSVRJQUxfU0FNUExFX1JBVEVfQ09VTlRfVkFMVUVfV0hFTl9SRVNFVF9NQVNLICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEVfX0FCTTFfSEdMU19SRUdfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQkwxX1BXTV9HUlAyX1JFR19MT0NLCisjZGVmaW5lIEJMMV9QV01fR1JQMl9SRUdfTE9DS19fQkwxX1BXTV9HUlAyX1JFR19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBCTDFfUFdNX0dSUDJfUkVHX0xPQ0tfX0JMMV9QV01fR1JQMl9SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQkwxX1BXTV9HUlAyX1JFR19MT0NLX19CTDFfUFdNX0dSUDJfVVBEQVRFX0FUX0ZSQU1FX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBCTDFfUFdNX0dSUDJfUkVHX0xPQ0tfX0JMMV9QV01fR1JQMl9GUkFNRV9TVEFSVF9ESVNQX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEJMMV9QV01fR1JQMl9SRUdfTE9DS19fQkwxX1BXTV9HUlAyX1JFQURCQUNLX0RCX1JFR19WQUxVRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQkwxX1BXTV9HUlAyX1JFR19MT0NLX19CTDFfUFdNX0dSUDJfSUdOT1JFX01BU1RFUl9MT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBCTDFfUFdNX0dSUDJfUkVHX0xPQ0tfX0JMMV9QV01fR1JQMl9SRUdfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBCTDFfUFdNX0dSUDJfUkVHX0xPQ0tfX0JMMV9QV01fR1JQMl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBCTDFfUFdNX0dSUDJfUkVHX0xPQ0tfX0JMMV9QV01fR1JQMl9VUERBVEVfQVRfRlJBTUVfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBCTDFfUFdNX0dSUDJfUkVHX0xPQ0tfX0JMMV9QV01fR1JQMl9GUkFNRV9TVEFSVF9ESVNQX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBCTDFfUFdNX0dSUDJfUkVHX0xPQ0tfX0JMMV9QV01fR1JQMl9SRUFEQkFDS19EQl9SRUdfVkFMVUVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBCTDFfUFdNX0dSUDJfUkVHX0xPQ0tfX0JMMV9QV01fR1JQMl9JR05PUkVfTUFTVEVSX0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19BQk0xX0NOVEwKKyNkZWZpbmUgRENfQUJNMV9DTlRMX19BQk0xX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfQ05UTF9fQUJNMV9QUk9DRVNTSU5HX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19BQk0xX0NOVExfX0FCTTFfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfQUJNMV9DTlRMX19BQk0xX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfQUJNMV9DTlRMX19BQk0xX1BST0NFU1NJTkdfQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfQUJNMV9DTlRMX19BQk0xX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKy8vRENfQUJNMV9JUENTQ19DT0VGRl9TRUwKKyNkZWZpbmUgRENfQUJNMV9JUENTQ19DT0VGRl9TRUxfX0FCTTFfSVBDU0NfQ09FRkZfU0VMX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSVBDU0NfQ09FRkZfU0VMX19BQk0xX0lQQ1NDX0NPRUZGX1NFTF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19BQk0xX0lQQ1NDX0NPRUZGX1NFTF9fQUJNMV9JUENTQ19DT0VGRl9TRUxfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0FCTTFfSVBDU0NfQ09FRkZfU0VMX19BQk0xX0hHTFNfUkVHX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfQUJNMV9JUENTQ19DT0VGRl9TRUxfX0FCTTFfSVBDU0NfQ09FRkZfU0VMX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRENfQUJNMV9JUENTQ19DT0VGRl9TRUxfX0FCTTFfSVBDU0NfQ09FRkZfU0VMX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRENfQUJNMV9JUENTQ19DT0VGRl9TRUxfX0FCTTFfSVBDU0NfQ09FRkZfU0VMX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRENfQUJNMV9JUENTQ19DT0VGRl9TRUxfX0FCTTFfSEdMU19SRUdfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzAKKyNkZWZpbmUgRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzBfX0FCTTFfQUNFX1NMT1BFXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8wX19BQk0xX0FDRV9PRkZTRVRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzBfX0FCTTFfQUNFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfMF9fQUJNMV9BQ0VfU0xPUEVfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfMF9fQUJNMV9BQ0VfT0ZGU0VUXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkYwMDAwTAorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfMF9fQUJNMV9BQ0VfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfMQorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfMV9fQUJNMV9BQ0VfU0xPUEVfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzFfX0FCTTFfQUNFX09GRlNFVF8xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfMV9fQUJNMV9BQ0VfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8xX19BQk0xX0FDRV9TTE9QRV8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8xX19BQk0xX0FDRV9PRkZTRVRfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRjAwMDBMCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8xX19BQk0xX0FDRV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8yCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8yX19BQk0xX0FDRV9TTE9QRV8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfMl9fQUJNMV9BQ0VfT0ZGU0VUXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8yX19BQk0xX0FDRV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzJfX0FCTTFfQUNFX1NMT1BFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzJfX0FCTTFfQUNFX09GRlNFVF8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0ZGMDAwMEwKKyNkZWZpbmUgRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzJfX0FCTTFfQUNFX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzMKKyNkZWZpbmUgRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzNfX0FCTTFfQUNFX1NMT1BFXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV8zX19BQk0xX0FDRV9PRkZTRVRfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzNfX0FCTTFfQUNFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfM19fQUJNMV9BQ0VfU0xPUEVfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfM19fQUJNMV9BQ0VfT0ZGU0VUXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkYwMDAwTAorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfM19fQUJNMV9BQ0VfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfNAorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfNF9fQUJNMV9BQ0VfU0xPUEVfNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfQUJNMV9BQ0VfT0ZGU0VUX1NMT1BFXzRfX0FCTTFfQUNFX09GRlNFVF80X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19BQk0xX0FDRV9PRkZTRVRfU0xPUEVfNF9fQUJNMV9BQ0VfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV80X19BQk0xX0FDRV9TTE9QRV80X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV80X19BQk0xX0FDRV9PRkZTRVRfNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRjAwMDBMCisjZGVmaW5lIERDX0FCTTFfQUNFX09GRlNFVF9TTE9QRV80X19BQk0xX0FDRV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX0FCTTFfQUNFX1RIUkVTXzEyCisjZGVmaW5lIERDX0FCTTFfQUNFX1RIUkVTXzEyX19BQk0xX0FDRV9USFJFU18xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0FDRV9USFJFU18xMl9fQUJNMV9BQ0VfVEhSRVNfMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0FCTTFfQUNFX1RIUkVTXzEyX19BQk0xX0FDRV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfQUJNMV9BQ0VfVEhSRVNfMTJfX0FCTTFfQUNFX1RIUkVTXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRENfQUJNMV9BQ0VfVEhSRVNfMTJfX0FCTTFfQUNFX1RIUkVTXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKyNkZWZpbmUgRENfQUJNMV9BQ0VfVEhSRVNfMTJfX0FCTTFfQUNFX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfQUJNMV9BQ0VfVEhSRVNfMzQKKyNkZWZpbmUgRENfQUJNMV9BQ0VfVEhSRVNfMzRfX0FCTTFfQUNFX1RIUkVTXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfQUNFX1RIUkVTXzM0X19BQk0xX0FDRV9USFJFU180X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfQUJNMV9BQ0VfVEhSRVNfMzRfX0FCTTFfQUNFX0lHTk9SRV9NQVNURVJfTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19BQk0xX0FDRV9USFJFU18zNF9fQUJNMV9BQ0VfUkVBREJBQ0tfREJfUkVHX1ZBTFVFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX0FCTTFfQUNFX1RIUkVTXzM0X19BQk0xX0FDRV9EQlVGX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfQUJNMV9BQ0VfVEhSRVNfMzRfX0FCTTFfQUNFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19BQk0xX0FDRV9USFJFU18zNF9fQUJNMV9BQ0VfVEhSRVNfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEQ19BQk0xX0FDRV9USFJFU18zNF9fQUJNMV9BQ0VfVEhSRVNfNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorI2RlZmluZSBEQ19BQk0xX0FDRV9USFJFU18zNF9fQUJNMV9BQ0VfSUdOT1JFX01BU1RFUl9MT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19BQk0xX0FDRV9USFJFU18zNF9fQUJNMV9BQ0VfUkVBREJBQ0tfREJfUkVHX1ZBTFVFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19BQk0xX0FDRV9USFJFU18zNF9fQUJNMV9BQ0VfREJVRl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ19BQk0xX0FDRV9USFJFU18zNF9fQUJNMV9BQ0VfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19BQk0xX0FDRV9DTlRMX01JU0MKKyNkZWZpbmUgRENfQUJNMV9BQ0VfQ05UTF9NSVNDX19BQk0xX0FDRV9SRUdfV1JfTUlTU0VEX0ZSQU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfQUNFX0NOVExfTUlTQ19fQUJNMV9BQ0VfUkVHX1dSX01JU1NFRF9GUkFNRV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19BQk0xX0FDRV9DTlRMX01JU0NfX0FCTTFfQUNFX1JFR19XUl9NSVNTRURfRlJBTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19BQk0xX0FDRV9DTlRMX01JU0NfX0FCTTFfQUNFX1JFR19XUl9NSVNTRURfRlJBTUVfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EQ19BQk0xX0hHTFNfUkVHX1JFQURfUFJPR1JFU1MKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0hHX1JFR19SRUFEX0lOX1BST0dSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSEdMU19SRUdfUkVBRF9QUk9HUkVTU19fQUJNMV9MU19SRUdfUkVBRF9JTl9QUk9HUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19BQk0xX0hHTFNfUkVHX1JFQURfUFJPR1JFU1NfX0FCTTFfQkxfUkVHX1JFQURfSU5fUFJPR1JFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0hHX1JFR19SRUFEX01JU1NFRF9GUkFNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0FCTTFfSEdMU19SRUdfUkVBRF9QUk9HUkVTU19fQUJNMV9MU19SRUdfUkVBRF9NSVNTRURfRlJBTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19BQk0xX0hHTFNfUkVHX1JFQURfUFJPR1JFU1NfX0FCTTFfQkxfUkVHX1JFQURfTUlTU0VEX0ZSQU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0hHX1JFR19SRUFEX01JU1NFRF9GUkFNRV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19BQk0xX0hHTFNfUkVHX1JFQURfUFJPR1JFU1NfX0FCTTFfTFNfUkVHX1JFQURfTUlTU0VEX0ZSQU1FX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0FCTTFfSEdMU19SRUdfUkVBRF9QUk9HUkVTU19fQUJNMV9CTF9SRUdfUkVBRF9NSVNTRURfRlJBTUVfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0hHX1JFR19SRUFEX0lOX1BST0dSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0xTX1JFR19SRUFEX0lOX1BST0dSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0JMX1JFR19SRUFEX0lOX1BST0dSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0hHX1JFR19SRUFEX01JU1NFRF9GUkFNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0xTX1JFR19SRUFEX01JU1NFRF9GUkFNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0JMX1JFR19SRUFEX01JU1NFRF9GUkFNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0hHX1JFR19SRUFEX01JU1NFRF9GUkFNRV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0xTX1JFR19SRUFEX01JU1NFRF9GUkFNRV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNTX19BQk0xX0JMX1JFR19SRUFEX01JU1NFRF9GUkFNRV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfQUJNMV9IR19NSVNDX0NUUkwKKyNkZWZpbmUgRENfQUJNMV9IR19NSVNDX0NUUkxfX0FCTTFfSEdfTlVNX09GX0JJTlNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0hHX1ZNQVhfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19BQk0xX0hHX01JU0NfQ1RSTF9fQUJNMV9IR19GSU5FX01PREVfQklOX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfQUJNMV9IR19NSVNDX0NUUkxfX0FCTTFfSEdfQklOX0JJVFdJRFRIX1NJWkVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19BQk0xX0hHX01JU0NfQ1RSTF9fQUJNMV9PVlJfU0NBTl9QSVhFTF9QUk9DRVNTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0RCVUZfSEdMU19SRUFEQkFDS19EQl9SRUdfVkFMVUVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfQUJNMV9IR19NSVNDX0NUUkxfX0FCTTFfREJVRl9IR0xTX1JFR19GUkFNRV9TVEFSVF9ESVNQX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19BQk0xX0hHX01JU0NfQ1RSTF9fQUJNMV9EQlVGX0hHTFNfUkVHX1VQREFURV9BVF9GUkFNRV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0hHTFNfSUdOT1JFX01BU1RFUl9MT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfQUJNMV9IR19NSVNDX0NUUkxfX0FCTTFfREJVRl9IR0xTX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19BQk0xX0hHX01JU0NfQ1RSTF9fQUJNMV9IR0xTX1JFR19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0hHX05VTV9PRl9CSU5TX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0hHX1ZNQVhfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0hHX0ZJTkVfTU9ERV9CSU5fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0hHX0JJTl9CSVRXSURUSF9TSVpFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX09WUl9TQ0FOX1BJWEVMX1BST0NFU1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0RCVUZfSEdMU19SRUFEQkFDS19EQl9SRUdfVkFMVUVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0RCVUZfSEdMU19SRUdfRlJBTUVfU1RBUlRfRElTUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0RCVUZfSEdMU19SRUdfVVBEQVRFX0FUX0ZSQU1FX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0hHTFNfSUdOT1JFX01BU1RFUl9MT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0RCVUZfSEdMU19SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDX0FCTTFfSEdfTUlTQ19DVFJMX19BQk0xX0hHTFNfUkVHX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX0FCTTFfTFNfU1VNX09GX0xVTUEKKyNkZWZpbmUgRENfQUJNMV9MU19TVU1fT0ZfTFVNQV9fQUJNMV9MU19TVU1fT0ZfTFVNQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfTFNfU1VNX09GX0xVTUFfX0FCTTFfTFNfU1VNX09GX0xVTUFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX0FCTTFfTFNfTUlOX01BWF9MVU1BCisjZGVmaW5lIERDX0FCTTFfTFNfTUlOX01BWF9MVU1BX19BQk0xX0xTX01JTl9MVU1BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0xTX01JTl9NQVhfTFVNQV9fQUJNMV9MU19NQVhfTFVNQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0FCTTFfTFNfTUlOX01BWF9MVU1BX19BQk0xX0xTX01JTl9MVU1BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERDX0FCTTFfTFNfTUlOX01BWF9MVU1BX19BQk0xX0xTX01BWF9MVU1BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RDX0FCTTFfTFNfRklMVEVSRURfTUlOX01BWF9MVU1BCisjZGVmaW5lIERDX0FCTTFfTFNfRklMVEVSRURfTUlOX01BWF9MVU1BX19BQk0xX0xTX0ZJTFRFUkVEX01JTl9MVU1BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0xTX0ZJTFRFUkVEX01JTl9NQVhfTFVNQV9fQUJNMV9MU19GSUxURVJFRF9NQVhfTFVNQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0FCTTFfTFNfRklMVEVSRURfTUlOX01BWF9MVU1BX19BQk0xX0xTX0ZJTFRFUkVEX01JTl9MVU1BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERDX0FCTTFfTFNfRklMVEVSRURfTUlOX01BWF9MVU1BX19BQk0xX0xTX0ZJTFRFUkVEX01BWF9MVU1BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RDX0FCTTFfTFNfUElYRUxfQ09VTlQKKyNkZWZpbmUgRENfQUJNMV9MU19QSVhFTF9DT1VOVF9fQUJNMV9MU19QSVhFTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfTFNfUElYRUxfQ09VTlRfX0FCTTFfTFNfU1VNX09GX0xVTUFfTVNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfQUJNMV9MU19QSVhFTF9DT1VOVF9fQUJNMV9MU19QSVhFTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKyNkZWZpbmUgRENfQUJNMV9MU19QSVhFTF9DT1VOVF9fQUJNMV9MU19TVU1fT0ZfTFVNQV9NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRENfQUJNMV9MU19NSU5fTUFYX1BJWEVMX1ZBTFVFX1RIUkVTCisjZGVmaW5lIERDX0FCTTFfTFNfTUlOX01BWF9QSVhFTF9WQUxVRV9USFJFU19fQUJNMV9MU19NSU5fUElYRUxfVkFMVUVfVEhSRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0xTX01JTl9NQVhfUElYRUxfVkFMVUVfVEhSRVNfX0FCTTFfTFNfTUFYX1BJWEVMX1ZBTFVFX1RIUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0FCTTFfTFNfTUlOX01BWF9QSVhFTF9WQUxVRV9USFJFU19fQUJNMV9IR0xTX1JFR19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfQUJNMV9MU19NSU5fTUFYX1BJWEVMX1ZBTFVFX1RIUkVTX19BQk0xX0xTX01JTl9QSVhFTF9WQUxVRV9USFJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRENfQUJNMV9MU19NSU5fTUFYX1BJWEVMX1ZBTFVFX1RIUkVTX19BQk0xX0xTX01BWF9QSVhFTF9WQUxVRV9USFJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKyNkZWZpbmUgRENfQUJNMV9MU19NSU5fTUFYX1BJWEVMX1ZBTFVFX1RIUkVTX19BQk0xX0hHTFNfUkVHX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfQUJNMV9MU19NSU5fUElYRUxfVkFMVUVfQ09VTlQKKyNkZWZpbmUgRENfQUJNMV9MU19NSU5fUElYRUxfVkFMVUVfQ09VTlRfX0FCTTFfTFNfTUlOX1BJWEVMX1ZBTFVFX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfTFNfTUlOX1BJWEVMX1ZBTFVFX0NPVU5UX19BQk0xX0xTX01JTl9QSVhFTF9WQUxVRV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RDX0FCTTFfTFNfTUFYX1BJWEVMX1ZBTFVFX0NPVU5UCisjZGVmaW5lIERDX0FCTTFfTFNfTUFYX1BJWEVMX1ZBTFVFX0NPVU5UX19BQk0xX0xTX01BWF9QSVhFTF9WQUxVRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0xTX01BWF9QSVhFTF9WQUxVRV9DT1VOVF9fQUJNMV9MU19NQVhfUElYRUxfVkFMVUVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EQ19BQk0xX0hHX1NBTVBMRV9SQVRFCisjZGVmaW5lIERDX0FCTTFfSEdfU0FNUExFX1JBVEVfX0FCTTFfSEdfU0FNUExFX1JBVEVfQ09VTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1NBTVBMRV9SQVRFX19BQk0xX0hHX1JFU0VUX1NBTVBMRV9SQVRFX0ZSQU1FX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfQUJNMV9IR19TQU1QTEVfUkFURV9fQUJNMV9IR19TQU1QTEVfUkFURV9GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0FCTTFfSEdfU0FNUExFX1JBVEVfX0FCTTFfSEdfSU5JVElBTF9TQU1QTEVfUkFURV9DT1VOVF9WQUxVRV9XSEVOX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfQUJNMV9IR19TQU1QTEVfUkFURV9fQUJNMV9IR0xTX1JFR19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19BQk0xX0hHX1NBTVBMRV9SQVRFX19BQk0xX0hHX1NBTVBMRV9SQVRFX0NPVU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19BQk0xX0hHX1NBTVBMRV9SQVRFX19BQk0xX0hHX1JFU0VUX1NBTVBMRV9SQVRFX0ZSQU1FX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19BQk0xX0hHX1NBTVBMRV9SQVRFX19BQk0xX0hHX1NBTVBMRV9SQVRFX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQ19BQk0xX0hHX1NBTVBMRV9SQVRFX19BQk0xX0hHX0lOSVRJQUxfU0FNUExFX1JBVEVfQ09VTlRfVkFMVUVfV0hFTl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEQ19BQk0xX0hHX1NBTVBMRV9SQVRFX19BQk0xX0hHTFNfUkVHX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19BQk0xX0xTX1NBTVBMRV9SQVRFCisjZGVmaW5lIERDX0FCTTFfTFNfU0FNUExFX1JBVEVfX0FCTTFfTFNfU0FNUExFX1JBVEVfQ09VTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0xTX1NBTVBMRV9SQVRFX19BQk0xX0xTX1JFU0VUX1NBTVBMRV9SQVRFX0ZSQU1FX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfQUJNMV9MU19TQU1QTEVfUkFURV9fQUJNMV9MU19TQU1QTEVfUkFURV9GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0FCTTFfTFNfU0FNUExFX1JBVEVfX0FCTTFfTFNfSU5JVElBTF9TQU1QTEVfUkFURV9DT1VOVF9WQUxVRV9XSEVOX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfQUJNMV9MU19TQU1QTEVfUkFURV9fQUJNMV9IR0xTX1JFR19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19BQk0xX0xTX1NBTVBMRV9SQVRFX19BQk0xX0xTX1NBTVBMRV9SQVRFX0NPVU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19BQk0xX0xTX1NBTVBMRV9SQVRFX19BQk0xX0xTX1JFU0VUX1NBTVBMRV9SQVRFX0ZSQU1FX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19BQk0xX0xTX1NBTVBMRV9SQVRFX19BQk0xX0xTX1NBTVBMRV9SQVRFX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQ19BQk0xX0xTX1NBTVBMRV9SQVRFX19BQk0xX0xTX0lOSVRJQUxfU0FNUExFX1JBVEVfQ09VTlRfVkFMVUVfV0hFTl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEQ19BQk0xX0xTX1NBTVBMRV9SQVRFX19BQk0xX0hHTFNfUkVHX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19BQk0xX0hHX0JJTl8xXzMyX1NISUZUX0ZMQUcKKyNkZWZpbmUgRENfQUJNMV9IR19CSU5fMV8zMl9TSElGVF9GTEFHX19BQk0xX0hHX0JJTl8xXzMyX1NISUZUX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSEdfQklOXzFfMzJfU0hJRlRfRkxBR19fQUJNMV9IR19CSU5fMV8zMl9TSElGVF9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX0FCTTFfSEdfQklOXzFfOF9TSElGVF9JTkRFWAorI2RlZmluZSBEQ19BQk0xX0hHX0JJTl8xXzhfU0hJRlRfSU5ERVhfX0FCTTFfSEdfQklOXzFfOF9TSElGVF9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfQUJNMV9IR19CSU5fMV84X1NISUZUX0lOREVYX19BQk0xX0hHX0JJTl8xXzhfU0hJRlRfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfQUJNMV9IR19CSU5fOV8xNl9TSElGVF9JTkRFWAorI2RlZmluZSBEQ19BQk0xX0hHX0JJTl85XzE2X1NISUZUX0lOREVYX19BQk0xX0hHX0JJTl85XzE2X1NISUZUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfQUJNMV9IR19CSU5fOV8xNl9TSElGVF9JTkRFWF9fQUJNMV9IR19CSU5fOV8xNl9TSElGVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfQUJNMV9IR19CSU5fMTdfMjRfU0hJRlRfSU5ERVgKKyNkZWZpbmUgRENfQUJNMV9IR19CSU5fMTdfMjRfU0hJRlRfSU5ERVhfX0FCTTFfSEdfQklOXzE3XzI0X1NISUZUX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSEdfQklOXzE3XzI0X1NISUZUX0lOREVYX19BQk0xX0hHX0JJTl8xN18yNF9TSElGVF9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX0FCTTFfSEdfQklOXzI1XzMyX1NISUZUX0lOREVYCisjZGVmaW5lIERDX0FCTTFfSEdfQklOXzI1XzMyX1NISUZUX0lOREVYX19BQk0xX0hHX0JJTl8yNV8zMl9TSElGVF9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX0JJTl8yNV8zMl9TSElGVF9JTkRFWF9fQUJNMV9IR19CSU5fMjVfMzJfU0hJRlRfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF8xCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzFfX0FCTTFfSEdfUkVTVUxUXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8xX19BQk0xX0hHX1JFU1VMVF8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF8yCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzJfX0FCTTFfSEdfUkVTVUxUXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8yX19BQk0xX0hHX1JFU1VMVF8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF8zCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzNfX0FCTTFfSEdfUkVTVUxUXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8zX19BQk0xX0hHX1JFU1VMVF8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF80CisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzRfX0FCTTFfSEdfUkVTVUxUXzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF80X19BQk0xX0hHX1JFU1VMVF80X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF81CisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzVfX0FCTTFfSEdfUkVTVUxUXzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF81X19BQk0xX0hHX1JFU1VMVF81X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF82CisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzZfX0FCTTFfSEdfUkVTVUxUXzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF82X19BQk0xX0hHX1JFU1VMVF82X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF83CisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzdfX0FCTTFfSEdfUkVTVUxUXzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF83X19BQk0xX0hHX1JFU1VMVF83X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF84CisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzhfX0FCTTFfSEdfUkVTVUxUXzhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF84X19BQk0xX0hHX1JFU1VMVF84X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF85CisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzlfX0FCTTFfSEdfUkVTVUxUXzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF85X19BQk0xX0hHX1JFU1VMVF85X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF8xMAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8xMF9fQUJNMV9IR19SRVNVTFRfMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMTBfX0FCTTFfSEdfUkVTVUxUXzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfQUJNMV9IR19SRVNVTFRfMTEKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMTFfX0FCTTFfSEdfUkVTVUxUXzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzExX19BQk0xX0hHX1JFU1VMVF8xMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX0FCTTFfSEdfUkVTVUxUXzEyCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzEyX19BQk0xX0hHX1JFU1VMVF8xMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8xMl9fQUJNMV9IR19SRVNVTFRfMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF8xMworI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8xM19fQUJNMV9IR19SRVNVTFRfMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMTNfX0FCTTFfSEdfUkVTVUxUXzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfQUJNMV9IR19SRVNVTFRfMTQKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMTRfX0FCTTFfSEdfUkVTVUxUXzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzE0X19BQk0xX0hHX1JFU1VMVF8xNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX0FCTTFfSEdfUkVTVUxUXzE1CisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzE1X19BQk0xX0hHX1JFU1VMVF8xNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8xNV9fQUJNMV9IR19SRVNVTFRfMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF8xNgorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8xNl9fQUJNMV9IR19SRVNVTFRfMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMTZfX0FCTTFfSEdfUkVTVUxUXzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfQUJNMV9IR19SRVNVTFRfMTcKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMTdfX0FCTTFfSEdfUkVTVUxUXzE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzE3X19BQk0xX0hHX1JFU1VMVF8xN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX0FCTTFfSEdfUkVTVUxUXzE4CisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzE4X19BQk0xX0hHX1JFU1VMVF8xOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8xOF9fQUJNMV9IR19SRVNVTFRfMThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF8xOQorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8xOV9fQUJNMV9IR19SRVNVTFRfMTlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMTlfX0FCTTFfSEdfUkVTVUxUXzE5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfQUJNMV9IR19SRVNVTFRfMjAKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMjBfX0FCTTFfSEdfUkVTVUxUXzIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzIwX19BQk0xX0hHX1JFU1VMVF8yMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX0FCTTFfSEdfUkVTVUxUXzIxCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzIxX19BQk0xX0hHX1JFU1VMVF8yMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8yMV9fQUJNMV9IR19SRVNVTFRfMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0hHX1JFU1VMVF8yMgorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8yMl9fQUJNMV9IR19SRVNVTFRfMjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMjJfX0FCTTFfSEdfUkVTVUxUXzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfQUJNMV9IR19SRVNVTFRfMjMKKyNkZWZpbmUgRENfQUJNMV9IR19SRVNVTFRfMjNfX0FCTTFfSEdfUkVTVUxUXzIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzIzX19BQk0xX0hHX1JFU1VMVF8yM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX0FCTTFfSEdfUkVTVUxUXzI0CisjZGVmaW5lIERDX0FCTTFfSEdfUkVTVUxUXzI0X19BQk0xX0hHX1JFU1VMVF8yNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19BQk0xX0hHX1JFU1VMVF8yNF9fQUJNMV9IR19SRVNVTFRfMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19BQk0xX0JMX01BU1RFUl9MT0NLCisjZGVmaW5lIERDX0FCTTFfQkxfTUFTVEVSX0xPQ0tfX0FCTTFfQkxfTUFTVEVSX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfQUJNMV9CTF9NQVNURVJfTE9DS19fQUJNMV9CTF9NQVNURVJfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZm10MF9kaXNwZGVjCisvL0ZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9SCisjZGVmaW5lIEZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX19GTVRfQ0xBTVBfTE9XRVJfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQwX0ZNVF9DTEFNUF9DT01QT05FTlRfUl9fRk1UX0NMQU1QX1VQUEVSX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX19GTVRfQ0xBTVBfTE9XRVJfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX19GTVRfQ0xBTVBfVVBQRVJfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9HCisjZGVmaW5lIEZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX19GTVRfQ0xBTVBfTE9XRVJfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQwX0ZNVF9DTEFNUF9DT01QT05FTlRfR19fRk1UX0NMQU1QX1VQUEVSX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX19GTVRfQ0xBTVBfTE9XRVJfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX19GTVRfQ0xBTVBfVVBQRVJfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9CCisjZGVmaW5lIEZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9CX19GTVRfQ0xBTVBfTE9XRVJfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQwX0ZNVF9DTEFNUF9DT01QT05FTlRfQl9fRk1UX0NMQU1QX1VQUEVSX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9CX19GTVRfQ0xBTVBfTE9XRVJfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEZNVDBfRk1UX0NMQU1QX0NPTVBPTkVOVF9CX19GTVRfQ0xBTVBfVVBQRVJfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDBfRk1UX0RZTkFNSUNfRVhQX0NOVEwKKyNkZWZpbmUgRk1UMF9GTVRfRFlOQU1JQ19FWFBfQ05UTF9fRk1UX0RZTkFNSUNfRVhQX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDBfRk1UX0RZTkFNSUNfRVhQX0NOVExfX0ZNVF9EWU5BTUlDX0VYUF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGTVQwX0ZNVF9EWU5BTUlDX0VYUF9DTlRMX19GTVRfRFlOQU1JQ19FWFBfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBGTVQwX0ZNVF9EWU5BTUlDX0VYUF9DTlRMX19GTVRfRFlOQU1JQ19FWFBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9GTVQwX0ZNVF9DT05UUk9MCisjZGVmaW5lIEZNVDBfRk1UX0NPTlRST0xfX0ZNVF9TVEVSRU9TWU5DX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfUFRJX0ZJRUxEX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRk1UMF9GTVRfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0ZSQU1FX0NPVU5URVJfTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEZNVDBfRk1UX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9GUkFNRV9DT1VOVEVSX0JJVF9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfUElYRUxfRU5DT0RJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDBfRk1UX0NPTlRST0xfX0ZNVF9TVUJTQU1QTElOR19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRk1UMF9GTVRfQ09OVFJPTF9fRk1UX1NVQlNBTVBMSU5HX09SREVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfQ0JDUl9CSVRfUkVEVUNUSU9OX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIEZNVDBfRk1UX0NPTlRST0xfX0ZNVF9ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRk1UMF9GTVRfQ09OVFJPTF9fRk1UX1BUSV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfU1RFUkVPU1lOQ19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfUFRJX0ZJRUxEX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRlJBTUVfQ09VTlRFUl9NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRlJBTUVfQ09VTlRFUl9CSVRfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfUElYRUxfRU5DT0RJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfU1VCU0FNUExJTkdfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfU1VCU0FNUExJTkdfT1JERVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfQ0JDUl9CSVRfUkVEVUNUSU9OX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBGTVQwX0ZNVF9DT05UUk9MX19GTVRfUFRJX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9GTVQwX0ZNVF9CSVRfREVQVEhfQ09OVFJPTAorI2RlZmluZSBGTVQwX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEZNVDBfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGTVQwX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEZNVDBfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBGTVQwX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX0ZSQU1FX1JBTkRPTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9SR0JfUkFORE9NX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEZNVDBfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfSElHSFBBU1NfUkFORE9NX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBGTVQwX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDBfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBGTVQwX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEZNVDBfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF8yNUZSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBGTVQwX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzUwRlJDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEZNVDBfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfNzVGUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTgwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9GUkFNRV9SQU5ET01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9SR0JfUkFORE9NX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9ISUdIUEFTU19SQU5ET01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2MDAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF8yNUZSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF81MEZSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRk1UMF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF83NUZSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vRk1UMF9GTVRfRElUSEVSX1JBTkRfUl9TRUVECisjZGVmaW5lIEZNVDBfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9fRk1UX1JBTkRfUl9TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQwX0ZNVF9ESVRIRVJfUkFORF9SX1NFRURfX0ZNVF9PRkZTRVRfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDBfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9fRk1UX1JBTkRfUl9TRUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEZNVDBfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9fRk1UX09GRlNFVF9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDBfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRAorI2RlZmluZSBGTVQwX0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfX0ZNVF9SQU5EX0dfU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMF9GTVRfRElUSEVSX1JBTkRfR19TRUVEX19GTVRfT0ZGU0VUX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQwX0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfX0ZNVF9SQU5EX0dfU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBGTVQwX0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfX0ZNVF9PRkZTRVRfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQwX0ZNVF9ESVRIRVJfUkFORF9CX1NFRUQKKyNkZWZpbmUgRk1UMF9GTVRfRElUSEVSX1JBTkRfQl9TRUVEX19GTVRfUkFORF9CX1NFRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDBfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRF9fRk1UX09GRlNFVF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UMF9GTVRfRElUSEVSX1JBTkRfQl9TRUVEX19GTVRfUkFORF9CX1NFRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRk1UMF9GTVRfRElUSEVSX1JBTkRfQl9TRUVEX19GTVRfT0ZGU0VUX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UMF9GTVRfQ0xBTVBfQ05UTAorI2RlZmluZSBGTVQwX0ZNVF9DTEFNUF9DTlRMX19GTVRfQ0xBTVBfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMF9GTVRfQ0xBTVBfQ05UTF9fRk1UX0NMQU1QX0NPTE9SX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQwX0ZNVF9DTEFNUF9DTlRMX19GTVRfQ0xBTVBfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBGTVQwX0ZNVF9DTEFNUF9DTlRMX19GTVRfQ0xBTVBfQ09MT1JfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorLy9GTVQwX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0wKKyNkZWZpbmUgRk1UMF9GTVRfU0lERV9CWV9TSURFX1NURVJFT19DT05UUk9MX19GTVRfU0lERV9CWV9TSURFX1NURVJFT19BQ1RJVkVfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDBfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTF9fRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQUNUSVZFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL0ZNVDBfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTAorI2RlZmluZSBGTVQwX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEZNVDBfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBGTVQwX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9ERUZBVUxUX01FTV9MT1dfUE9XRVJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRk1UMF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRk1UMF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRk1UMF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRk1UMF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfREVGQVVMVF9NRU1fTE9XX1BPV0VSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRk1UMF9GTVRfNDIyX0NPTlRST0wKKyNkZWZpbmUgRk1UMF9GTVRfNDIyX0NPTlRST0xfX0ZNVF9MRUZUX0VER0VfRVhUUkFfUElYRUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDBfRk1UXzQyMl9DT05UUk9MX19GTVRfTEVGVF9FREdFX0VYVFJBX1BJWEVMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2RwZzBfZGlzcGRlYworLy9EUEcwX0RQR19DT05UUk9MCisjZGVmaW5lIERQRzBfRFBHX0NPTlRST0xfX0RQR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEcwX0RQR19DT05UUk9MX19EUEdfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBHMF9EUEdfQ09OVFJPTF9fRFBHX0RZTkFNSUNfUkFOR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQRzBfRFBHX0NPTlRST0xfX0RQR19CSVRfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUEcwX0RQR19DT05UUk9MX19EUEdfVlJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzBfRFBHX0NPTlRST0xfX0RQR19IUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBHMF9EUEdfQ09OVFJPTF9fRFBHX0ZJRUxEX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUEcwX0RQR19DT05UUk9MX19EUEdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUEcwX0RQR19DT05UUk9MX19EUEdfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUEcwX0RQR19DT05UUk9MX19EUEdfRFlOQU1JQ19SQU5HRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUEcwX0RQR19DT05UUk9MX19EUEdfQklUX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEUEcwX0RQR19DT05UUk9MX19EUEdfVlJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEUEcwX0RQR19DT05UUk9MX19EUEdfSFJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEUEcwX0RQR19DT05UUk9MX19EUEdfRklFTERfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUEcwX0RQR19SQU1QX0NPTlRST0wKKyNkZWZpbmUgRFBHMF9EUEdfUkFNUF9DT05UUk9MX19EUEdfUkFNUDBfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzBfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX0lOQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBHMF9EUEdfUkFNUF9DT05UUk9MX19EUEdfSU5DMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUEcwX0RQR19SQU1QX0NPTlRST0xfX0RQR19SQU1QMF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUEcwX0RQR19SQU1QX0NPTlRST0xfX0RQR19JTkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEUEcwX0RQR19SQU1QX0NPTlRST0xfX0RQR19JTkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EUEcwX0RQR19ESU1FTlNJT05TCisjZGVmaW5lIERQRzBfRFBHX0RJTUVOU0lPTlNfX0RQR19BQ1RJVkVfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEcwX0RQR19ESU1FTlNJT05TX19EUEdfQUNUSVZFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzBfRFBHX0RJTUVOU0lPTlNfX0RQR19BQ1RJVkVfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERQRzBfRFBHX0RJTUVOU0lPTlNfX0RQR19BQ1RJVkVfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RQRzBfRFBHX0NPTE9VUl9SX0NSCisjZGVmaW5lIERQRzBfRFBHX0NPTE9VUl9SX0NSX19EUEdfQ09MT1VSMF9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEcwX0RQR19DT0xPVVJfUl9DUl9fRFBHX0NPTE9VUjFfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzBfRFBHX0NPTE9VUl9SX0NSX19EUEdfQ09MT1VSMF9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQRzBfRFBHX0NPTE9VUl9SX0NSX19EUEdfQ09MT1VSMV9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQRzBfRFBHX0NPTE9VUl9HX1kKKyNkZWZpbmUgRFBHMF9EUEdfQ09MT1VSX0dfWV9fRFBHX0NPTE9VUjBfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzBfRFBHX0NPTE9VUl9HX1lfX0RQR19DT0xPVVIxX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHMF9EUEdfQ09MT1VSX0dfWV9fRFBHX0NPTE9VUjBfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBHMF9EUEdfQ09MT1VSX0dfWV9fRFBHX0NPTE9VUjFfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBHMF9EUEdfQ09MT1VSX0JfQ0IKKyNkZWZpbmUgRFBHMF9EUEdfQ09MT1VSX0JfQ0JfX0RQR19DT0xPVVIwX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzBfRFBHX0NPTE9VUl9CX0NCX19EUEdfQ09MT1VSMV9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHMF9EUEdfQ09MT1VSX0JfQ0JfX0RQR19DT0xPVVIwX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBHMF9EUEdfQ09MT1VSX0JfQ0JfX0RQR19DT0xPVVIxX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBHMF9EUEdfT0ZGU0VUX1NFR01FTlQKKyNkZWZpbmUgRFBHMF9EUEdfT0ZGU0VUX1NFR01FTlRfX0RQR19YX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzBfRFBHX09GRlNFVF9TRUdNRU5UX19EUEdfU0VHTUVOVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHMF9EUEdfT0ZGU0VUX1NFR01FTlRfX0RQR19YX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgRFBHMF9EUEdfT0ZGU0VUX1NFR01FTlRfX0RQR19TRUdNRU5UX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vRFBHMF9EUEdfU1RBVFVTCisjZGVmaW5lIERQRzBfRFBHX1NUQVRVU19fRFBHX0RPVUJMRV9CVUZGRVJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEcwX0RQR19TVEFUVVNfX0RQR19ET1VCTEVfQlVGRkVSX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBidWYwX2Rpc3BkZWMKKy8vT1BQQlVGMF9PUFBCVUZfQ09OVFJPTAorI2RlZmluZSBPUFBCVUYwX09QUEJVRl9DT05UUk9MX19PUFBCVUZfQUNUSVZFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQQlVGMF9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0RJU1BMQVlfU0VHTUVOVEFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPUFBCVUYwX09QUEJVRl9DT05UUk9MX19PUFBCVUZfT1ZFUkxBUF9QSVhFTF9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9QUEJVRjBfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9QSVhFTF9SRVBFVElUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1BQQlVGMF9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0RPVUJMRV9CVUZGRVJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPUFBCVUYwX09QUEJVRl9DT05UUk9MX19PUFBCVUZfQUNUSVZFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBPUFBCVUYwX09QUEJVRl9DT05UUk9MX19PUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBPUFBCVUYwX09QUEJVRl9DT05UUk9MX19PUFBCVUZfT1ZFUkxBUF9QSVhFTF9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBPUFBCVUYwX09QUEJVRl9DT05UUk9MX19PUFBCVUZfUElYRUxfUkVQRVRJVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBPUFBCVUYwX09QUEJVRl9DT05UUk9MX19PUFBCVUZfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9PUFBCVUYwX09QUEJVRl8zRF9QQVJBTUVURVJTXzAKKyNkZWZpbmUgT1BQQlVGMF9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfM0RfVkFDVF9TUEFDRTFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUEJVRjBfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGXzNEX1ZBQ1RfU1BBQ0UyX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPUFBCVUYwX09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl9EVU1NWV9EQVRBX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9QUEJVRjBfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGXzNEX1ZBQ1RfU1BBQ0UxX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIE9QUEJVRjBfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGXzNEX1ZBQ1RfU1BBQ0UyX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIE9QUEJVRjBfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGX0RVTU1ZX0RBVEFfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL09QUEJVRjBfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMQorI2RlZmluZSBPUFBCVUYwX09QUEJVRl8zRF9QQVJBTUVURVJTXzFfX09QUEJVRl9EVU1NWV9EQVRBX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQQlVGMF9PUFBCVUZfM0RfUEFSQU1FVEVSU18xX19PUFBCVUZfRFVNTVlfREFUQV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPUFBCVUYwX09QUEJVRl8zRF9QQVJBTUVURVJTXzFfX09QUEJVRl9EVU1NWV9EQVRBX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBPUFBCVUYwX09QUEJVRl8zRF9QQVJBTUVURVJTXzFfX09QUEJVRl9EVU1NWV9EQVRBX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkYwMDAwTAorLy9PUFBCVUYwX09QUEJVRl9DT05UUk9MMQorI2RlZmluZSBPUFBCVUYwX09QUEJVRl9DT05UUk9MMV9fT1BQQlVGX05VTV9TRUdNRU5UX1BBRERFRF9QSVhFTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQQlVGMF9PUFBCVUZfQ09OVFJPTDFfX09QUEJVRl9OVU1fU0VHTUVOVF9QQURERURfUElYRUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwX3BpcGUwX2Rpc3BkZWMKKy8vT1BQX1BJUEUwX09QUF9QSVBFX0NPTlRST0wKKyNkZWZpbmUgT1BQX1BJUEUwX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0NMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFMF9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPUFBfUElQRTBfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfRElHSVRBTF9CWVBBU1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1BQX1BJUEUwX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0NMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1BQX1BJUEUwX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1BQX1BJUEUwX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0RJR0lUQUxfQllQQVNTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwX3BpcGVfY3JjMF9kaXNwZGVjCisvL09QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX0NPTlRST0wKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19DT05UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU1RFUkVPX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NURVJFT19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19JTlRFUkxBQ0VfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfSU5URVJMQUNFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1BJWEVMX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19PTkVfU0hPVF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0NPTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NURVJFT19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NURVJFT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0lOVEVSTEFDRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0lOVEVSTEFDRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1BJWEVMX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX09ORV9TSE9UX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfTUFTSworI2RlZmluZSBPUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19NQVNLX19PUFBfUElQRV9DUkNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfTUFTS19fT1BQX1BJUEVfQ1JDX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfUkVTVUxUMAorI2RlZmluZSBPUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19SRVNVTFQwX19PUFBfUElQRV9DUkNfUkVTVUxUX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfUkVTVUxUMF9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19SRVNVTFQwX19PUFBfUElQRV9DUkNfUkVTVUxUX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19SRVNVTFQwX19PUFBfUElQRV9DUkNfUkVTVUxUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19SRVNVTFQxCisjZGVmaW5lIE9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfX09QUF9QSVBFX0NSQ19SRVNVTFRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkMwX09QUF9QSVBFX0NSQ19SRVNVTFQxX19PUFBfUElQRV9DUkNfUkVTVUxUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfX09QUF9QSVBFX0NSQ19SRVNVTFRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfX09QUF9QSVBFX0NSQ19SRVNVTFRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX1JFU1VMVDIKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMF9PUFBfUElQRV9DUkNfUkVTVUxUMl9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzBfT1BQX1BJUEVfQ1JDX1JFU1VMVDJfX09QUF9QSVBFX0NSQ19SRVNVTFRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2ZtdDFfZGlzcGRlYworLy9GTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfUgorI2RlZmluZSBGTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfUl9fRk1UX0NMQU1QX0xPV0VSX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMV9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfX0ZNVF9DTEFNUF9VUFBFUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfUl9fRk1UX0NMQU1QX0xPV0VSX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBGTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfUl9fRk1UX0NMQU1QX1VQUEVSX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfRworI2RlZmluZSBGTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfR19fRk1UX0NMQU1QX0xPV0VSX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0dfX0ZNVF9DTEFNUF9VUFBFUl9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfR19fRk1UX0NMQU1QX0xPV0VSX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBGTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfR19fRk1UX0NMQU1QX1VQUEVSX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfQgorI2RlZmluZSBGTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfQl9fRk1UX0NMQU1QX0xPV0VSX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfX0ZNVF9DTEFNUF9VUFBFUl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfQl9fRk1UX0NMQU1QX0xPV0VSX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBGTVQxX0ZNVF9DTEFNUF9DT01QT05FTlRfQl9fRk1UX0NMQU1QX1VQUEVSX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQxX0ZNVF9EWU5BTUlDX0VYUF9DTlRMCisjZGVmaW5lIEZNVDFfRk1UX0RZTkFNSUNfRVhQX0NOVExfX0ZNVF9EWU5BTUlDX0VYUF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQxX0ZNVF9EWU5BTUlDX0VYUF9DTlRMX19GTVRfRFlOQU1JQ19FWFBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRk1UMV9GTVRfRFlOQU1JQ19FWFBfQ05UTF9fRk1UX0RZTkFNSUNfRVhQX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRk1UMV9GTVRfRFlOQU1JQ19FWFBfQ05UTF9fRk1UX0RZTkFNSUNfRVhQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vRk1UMV9GTVRfQ09OVFJPTAorI2RlZmluZSBGTVQxX0ZNVF9DT05UUk9MX19GTVRfU1RFUkVPU1lOQ19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1BUSV9GSUVMRF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEZNVDFfRk1UX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9GUkFNRV9DT1VOVEVSX01BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBGTVQxX0ZNVF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRlJBTUVfQ09VTlRFUl9CSVRfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1BJWEVMX0VOQ09ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQxX0ZNVF9DT05UUk9MX19GTVRfU1VCU0FNUExJTkdfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEZNVDFfRk1UX0NPTlRST0xfX0ZNVF9TVUJTQU1QTElOR19PUkRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX0NCQ1JfQklUX1JFRFVDVElPTl9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBGTVQxX0ZNVF9DT05UUk9MX19GTVRfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEZNVDFfRk1UX0NPTlRST0xfX0ZNVF9QVElfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1NURVJFT1NZTkNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1BUSV9GSUVMRF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0ZSQU1FX0NPVU5URVJfTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0ZSQU1FX0NPVU5URVJfQklUX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1BJWEVMX0VOQ09ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1NVQlNBTVBMSU5HX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1NVQlNBTVBMSU5HX09SREVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX0NCQ1JfQklUX1JFRFVDVElPTl9CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRk1UMV9GTVRfQ09OVFJPTF9fRk1UX1BUSV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRk1UMV9GTVRfQklUX0RFUFRIX0NPTlRST0wKKyNkZWZpbmUgRk1UMV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBGTVQxX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRk1UMV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBGTVQxX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRk1UMV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9GUkFNRV9SQU5ET01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfUkdCX1JBTkRPTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBGTVQxX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX0hJR0hQQVNTX1JBTkRPTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRk1UMV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQxX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRk1UMV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBGTVQxX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfMjVGUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRk1UMV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF81MEZSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBGTVQxX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzc1RlJDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfRlJBTUVfUkFORE9NX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfUkdCX1JBTkRPTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfSElHSFBBU1NfUkFORE9NX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNjAwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfMjVGUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfNTBGUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIEZNVDFfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfNzVGUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL0ZNVDFfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRAorI2RlZmluZSBGTVQxX0ZNVF9ESVRIRVJfUkFORF9SX1NFRURfX0ZNVF9SQU5EX1JfU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMV9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX19GTVRfT0ZGU0VUX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQxX0ZNVF9ESVRIRVJfUkFORF9SX1NFRURfX0ZNVF9SQU5EX1JfU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBGTVQxX0ZNVF9ESVRIRVJfUkFORF9SX1NFRURfX0ZNVF9PRkZTRVRfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQxX0ZNVF9ESVRIRVJfUkFORF9HX1NFRUQKKyNkZWZpbmUgRk1UMV9GTVRfRElUSEVSX1JBTkRfR19TRUVEX19GTVRfUkFORF9HX1NFRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDFfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9fRk1UX09GRlNFVF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UMV9GTVRfRElUSEVSX1JBTkRfR19TRUVEX19GTVRfUkFORF9HX1NFRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRk1UMV9GTVRfRElUSEVSX1JBTkRfR19TRUVEX19GTVRfT0ZGU0VUX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UMV9GTVRfRElUSEVSX1JBTkRfQl9TRUVECisjZGVmaW5lIEZNVDFfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRF9fRk1UX1JBTkRfQl9TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQxX0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfX0ZNVF9PRkZTRVRfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDFfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRF9fRk1UX1JBTkRfQl9TRUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEZNVDFfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRF9fRk1UX09GRlNFVF9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDFfRk1UX0NMQU1QX0NOVEwKKyNkZWZpbmUgRk1UMV9GTVRfQ0xBTVBfQ05UTF9fRk1UX0NMQU1QX0RBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDFfRk1UX0NMQU1QX0NOVExfX0ZNVF9DTEFNUF9DT0xPUl9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UMV9GTVRfQ0xBTVBfQ05UTF9fRk1UX0NMQU1QX0RBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRk1UMV9GTVRfQ0xBTVBfQ05UTF9fRk1UX0NMQU1QX0NPTE9SX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKy8vRk1UMV9GTVRfU0lERV9CWV9TSURFX1NURVJFT19DT05UUk9MCisjZGVmaW5lIEZNVDFfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTF9fRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQUNUSVZFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQxX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0xfX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0FDVElWRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorLy9GTVQxX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0wKKyNkZWZpbmUgRk1UMV9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDFfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGTVQxX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRk1UMV9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfREVGQVVMVF9NRU1fTE9XX1BPV0VSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEZNVDFfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEZNVDFfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEZNVDFfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEZNVDFfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX0RFRkFVTFRfTUVNX0xPV19QT1dFUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisvL0ZNVDFfRk1UXzQyMl9DT05UUk9MCisjZGVmaW5lIEZNVDFfRk1UXzQyMl9DT05UUk9MX19GTVRfTEVGVF9FREdFX0VYVFJBX1BJWEVMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQxX0ZNVF80MjJfQ09OVFJPTF9fRk1UX0xFRlRfRURHRV9FWFRSQV9QSVhFTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kcGcxX2Rpc3BkZWMKKy8vRFBHMV9EUEdfQ09OVFJPTAorI2RlZmluZSBEUEcxX0RQR19DT05UUk9MX19EUEdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHMV9EUEdfQ09OVFJPTF9fRFBHX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQRzFfRFBHX0NPTlRST0xfX0RQR19EWU5BTUlDX1JBTkdFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUEcxX0RQR19DT05UUk9MX19EUEdfQklUX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBHMV9EUEdfQ09OVFJPTF9fRFBHX1ZSRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEcxX0RQR19DT05UUk9MX19EUEdfSFJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQRzFfRFBHX0NPTlRST0xfX0RQR19GSUVMRF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBHMV9EUEdfQ09OVFJPTF9fRFBHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBHMV9EUEdfQ09OVFJPTF9fRFBHX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBHMV9EUEdfQ09OVFJPTF9fRFBHX0RZTkFNSUNfUkFOR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBHMV9EUEdfQ09OVFJPTF9fRFBHX0JJVF9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRFBHMV9EUEdfQ09OVFJPTF9fRFBHX1ZSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRFBHMV9EUEdfQ09OVFJPTF9fRFBHX0hSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRFBHMV9EUEdfQ09OVFJPTF9fRFBHX0ZJRUxEX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFBHMV9EUEdfUkFNUF9DT05UUk9MCisjZGVmaW5lIERQRzFfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX1JBTVAwX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEcxX0RQR19SQU1QX0NPTlRST0xfX0RQR19JTkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQRzFfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX0lOQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBHMV9EUEdfUkFNUF9DT05UUk9MX19EUEdfUkFNUDBfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBHMV9EUEdfUkFNUF9DT05UUk9MX19EUEdfSU5DMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFBHMV9EUEdfUkFNUF9DT05UUk9MX19EUEdfSU5DMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBHMV9EUEdfRElNRU5TSU9OUworI2RlZmluZSBEUEcxX0RQR19ESU1FTlNJT05TX19EUEdfQUNUSVZFX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHMV9EUEdfRElNRU5TSU9OU19fRFBHX0FDVElWRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEcxX0RQR19ESU1FTlNJT05TX19EUEdfQUNUSVZFX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEUEcxX0RQR19ESU1FTlNJT05TX19EUEdfQUNUSVZFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EUEcxX0RQR19DT0xPVVJfUl9DUgorI2RlZmluZSBEUEcxX0RQR19DT0xPVVJfUl9DUl9fRFBHX0NPTE9VUjBfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHMV9EUEdfQ09MT1VSX1JfQ1JfX0RQR19DT0xPVVIxX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEcxX0RQR19DT0xPVVJfUl9DUl9fRFBHX0NPTE9VUjBfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUEcxX0RQR19DT0xPVVJfUl9DUl9fRFBHX0NPTE9VUjFfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUEcxX0RQR19DT0xPVVJfR19ZCisjZGVmaW5lIERQRzFfRFBHX0NPTE9VUl9HX1lfX0RQR19DT0xPVVIwX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEcxX0RQR19DT0xPVVJfR19ZX19EUEdfQ09MT1VSMV9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzFfRFBHX0NPTE9VUl9HX1lfX0RQR19DT0xPVVIwX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQRzFfRFBHX0NPTE9VUl9HX1lfX0RQR19DT0xPVVIxX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQRzFfRFBHX0NPTE9VUl9CX0NCCisjZGVmaW5lIERQRzFfRFBHX0NPTE9VUl9CX0NCX19EUEdfQ09MT1VSMF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEcxX0RQR19DT0xPVVJfQl9DQl9fRFBHX0NPTE9VUjFfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzFfRFBHX0NPTE9VUl9CX0NCX19EUEdfQ09MT1VSMF9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQRzFfRFBHX0NPTE9VUl9CX0NCX19EUEdfQ09MT1VSMV9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQRzFfRFBHX09GRlNFVF9TRUdNRU5UCisjZGVmaW5lIERQRzFfRFBHX09GRlNFVF9TRUdNRU5UX19EUEdfWF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEcxX0RQR19PRkZTRVRfU0VHTUVOVF9fRFBHX1NFR01FTlRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzFfRFBHX09GRlNFVF9TRUdNRU5UX19EUEdfWF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERQRzFfRFBHX09GRlNFVF9TRUdNRU5UX19EUEdfU0VHTUVOVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RQRzFfRFBHX1NUQVRVUworI2RlZmluZSBEUEcxX0RQR19TVEFUVVNfX0RQR19ET1VCTEVfQlVGRkVSX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHMV9EUEdfU1RBVFVTX19EUEdfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwYnVmMV9kaXNwZGVjCisvL09QUEJVRjFfT1BQQlVGX0NPTlRST0wKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0FDVElWRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUEJVRjFfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9ESVNQTEFZX1NFR01FTlRBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX09WRVJMQVBfUElYRUxfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPUFBCVUYxX09QUEJVRl9DT05UUk9MX19PUFBCVUZfUElYRUxfUkVQRVRJVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9QUEJVRjFfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9ET1VCTEVfQlVGRkVSX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0FDVElWRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0RJU1BMQVlfU0VHTUVOVEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX09WRVJMQVBfUElYRUxfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX1BJWEVMX1JFUEVUSVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0RPVUJMRV9CVUZGRVJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vT1BQQlVGMV9PUFBCVUZfM0RfUEFSQU1FVEVSU18wCisjZGVmaW5lIE9QUEJVRjFfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGXzNEX1ZBQ1RfU1BBQ0UxX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBCVUYxX09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl8zRF9WQUNUX1NQQUNFMl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfRFVNTVlfREFUQV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPUFBCVUYxX09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl8zRF9WQUNUX1NQQUNFMV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBPUFBCVUYxX09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl8zRF9WQUNUX1NQQUNFMl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorI2RlZmluZSBPUFBCVUYxX09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl9EVU1NWV9EQVRBX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9PUFBCVUYxX09QUEJVRl8zRF9QQVJBTUVURVJTXzEKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfM0RfUEFSQU1FVEVSU18xX19PUFBCVUZfRFVNTVlfREFUQV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUEJVRjFfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9fT1BQQlVGX0RVTU1ZX0RBVEFfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfM0RfUEFSQU1FVEVSU18xX19PUFBCVUZfRFVNTVlfREFUQV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfM0RfUEFSQU1FVEVSU18xX19PUFBCVUZfRFVNTVlfREFUQV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGMDAwMEwKKy8vT1BQQlVGMV9PUFBCVUZfQ09OVFJPTDEKKyNkZWZpbmUgT1BQQlVGMV9PUFBCVUZfQ09OVFJPTDFfX09QUEJVRl9OVU1fU0VHTUVOVF9QQURERURfUElYRUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUEJVRjFfT1BQQlVGX0NPTlRST0wxX19PUFBCVUZfTlVNX1NFR01FTlRfUEFEREVEX1BJWEVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcF9waXBlMV9kaXNwZGVjCisvL09QUF9QSVBFMV9PUFBfUElQRV9DT05UUk9MCisjZGVmaW5lIE9QUF9QSVBFMV9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9DTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRTFfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1BQX1BJUEUxX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0RJR0lUQUxfQllQQVNTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9QUF9QSVBFMV9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9DTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9QUF9QSVBFMV9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9QUF9QSVBFMV9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9ESUdJVEFMX0JZUEFTU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcF9waXBlX2NyYzFfZGlzcGRlYworLy9PUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19DT05UUk9MCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NURVJFT19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfSU5URVJMQUNFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0lOVEVSTEFDRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19QSVhFTF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfT05FX1NIT1RfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19DT05UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TVEVSRU9fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TVEVSRU9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19JTlRFUkxBQ0VfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19JTlRFUkxBQ0VfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19QSVhFTF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19PTkVfU0hPVF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL09QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX01BU0sKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfTUFTS19fT1BQX1BJUEVfQ1JDX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX01BU0tfX09QUF9QSVBFX0NSQ19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL09QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX1JFU1VMVDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfUkVTVUxUMF9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfX09QUF9QSVBFX0NSQ19SRVNVTFRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfUkVTVUxUMF9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfUkVTVUxUMF9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfUkVTVUxUMQorI2RlZmluZSBPUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19SRVNVTFQxX19PUFBfUElQRV9DUkNfUkVTVUxUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMV9PUFBfUElQRV9DUkNfUkVTVUxUMV9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19SRVNVTFQxX19PUFBfUElQRV9DUkNfUkVTVUxUX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19SRVNVTFQxX19PUFBfUElQRV9DUkNfUkVTVUxUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19SRVNVTFQyCisjZGVmaW5lIE9QUF9QSVBFX0NSQzFfT1BQX1BJUEVfQ1JDX1JFU1VMVDJfX09QUF9QSVBFX0NSQ19SRVNVTFRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkMxX09QUF9QSVBFX0NSQ19SRVNVTFQyX19PUFBfUElQRV9DUkNfUkVTVUxUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9mbXQyX2Rpc3BkZWMKKy8vRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX1IKKyNkZWZpbmUgRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfX0ZNVF9DTEFNUF9MT1dFUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDJfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX19GTVRfQ0xBTVBfVVBQRVJfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfX0ZNVF9DTEFNUF9MT1dFUl9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfX0ZNVF9DTEFNUF9VUFBFUl9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX0cKKyNkZWZpbmUgRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX0dfX0ZNVF9DTEFNUF9MT1dFUl9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDJfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX19GTVRfQ0xBTVBfVVBQRVJfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX0dfX0ZNVF9DTEFNUF9MT1dFUl9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX0dfX0ZNVF9DTEFNUF9VUFBFUl9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX0IKKyNkZWZpbmUgRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfX0ZNVF9DTEFNUF9MT1dFUl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDJfRk1UX0NMQU1QX0NPTVBPTkVOVF9CX19GTVRfQ0xBTVBfVVBQRVJfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfX0ZNVF9DTEFNUF9MT1dFUl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRk1UMl9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfX0ZNVF9DTEFNUF9VUFBFUl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UMl9GTVRfRFlOQU1JQ19FWFBfQ05UTAorI2RlZmluZSBGTVQyX0ZNVF9EWU5BTUlDX0VYUF9DTlRMX19GTVRfRFlOQU1JQ19FWFBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMl9GTVRfRFlOQU1JQ19FWFBfQ05UTF9fRk1UX0RZTkFNSUNfRVhQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEZNVDJfRk1UX0RZTkFNSUNfRVhQX0NOVExfX0ZNVF9EWU5BTUlDX0VYUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEZNVDJfRk1UX0RZTkFNSUNfRVhQX0NOVExfX0ZNVF9EWU5BTUlDX0VYUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0ZNVDJfRk1UX0NPTlRST0wKKyNkZWZpbmUgRk1UMl9GTVRfQ09OVFJPTF9fRk1UX1NURVJFT1NZTkNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9QVElfRklFTERfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGTVQyX0ZNVF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRlJBTUVfQ09VTlRFUl9NQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRk1UMl9GTVRfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0ZSQU1FX0NPVU5URVJfQklUX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9QSVhFTF9FTkNPRElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UMl9GTVRfQ09OVFJPTF9fRk1UX1NVQlNBTVBMSU5HX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBGTVQyX0ZNVF9DT05UUk9MX19GTVRfU1VCU0FNUExJTkdfT1JERVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9DQkNSX0JJVF9SRURVQ1RJT05fQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRk1UMl9GTVRfQ09OVFJPTF9fRk1UX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBGTVQyX0ZNVF9DT05UUk9MX19GTVRfUFRJX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9TVEVSRU9TWU5DX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9QVElfRklFTERfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9GUkFNRV9DT1VOVEVSX01BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9GUkFNRV9DT1VOVEVSX0JJVF9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9QSVhFTF9FTkNPRElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9TVUJTQU1QTElOR19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9TVUJTQU1QTElOR19PUkRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9DQkNSX0JJVF9SRURVQ1RJT05fQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEZNVDJfRk1UX0NPTlRST0xfX0ZNVF9QVElfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0ZNVDJfRk1UX0JJVF9ERVBUSF9DT05UUk9MCisjZGVmaW5lIEZNVDJfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRk1UMl9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEZNVDJfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRk1UMl9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEZNVDJfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfRlJBTUVfUkFORE9NX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1JHQl9SQU5ET01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRk1UMl9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9ISUdIUEFTU19SQU5ET01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEZNVDJfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UMl9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIEZNVDJfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRk1UMl9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzI1RlJDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIEZNVDJfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfNTBGUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRk1UMl9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF83NUZSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxODAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX0ZSQU1FX1JBTkRPTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1JHQl9SQU5ET01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX0hJR0hQQVNTX1JBTkRPTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYwMDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzI1RlJDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzUwRlJDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBGTVQyX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzc1RlJDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9GTVQyX0ZNVF9ESVRIRVJfUkFORF9SX1NFRUQKKyNkZWZpbmUgRk1UMl9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX19GTVRfUkFORF9SX1NFRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDJfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9fRk1UX09GRlNFVF9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UMl9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX19GTVRfUkFORF9SX1NFRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRk1UMl9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX19GTVRfT0ZGU0VUX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UMl9GTVRfRElUSEVSX1JBTkRfR19TRUVECisjZGVmaW5lIEZNVDJfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9fRk1UX1JBTkRfR19TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQyX0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfX0ZNVF9PRkZTRVRfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDJfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9fRk1UX1JBTkRfR19TRUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEZNVDJfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9fRk1UX09GRlNFVF9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDJfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRAorI2RlZmluZSBGTVQyX0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfX0ZNVF9SQU5EX0JfU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMl9GTVRfRElUSEVSX1JBTkRfQl9TRUVEX19GTVRfT0ZGU0VUX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQyX0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfX0ZNVF9SQU5EX0JfU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBGTVQyX0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfX0ZNVF9PRkZTRVRfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQyX0ZNVF9DTEFNUF9DTlRMCisjZGVmaW5lIEZNVDJfRk1UX0NMQU1QX0NOVExfX0ZNVF9DTEFNUF9EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQyX0ZNVF9DTEFNUF9DTlRMX19GTVRfQ0xBTVBfQ09MT1JfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDJfRk1UX0NMQU1QX0NOVExfX0ZNVF9DTEFNUF9EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEZNVDJfRk1UX0NMQU1QX0NOVExfX0ZNVF9DTEFNUF9DT0xPUl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisvL0ZNVDJfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTAorI2RlZmluZSBGTVQyX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0xfX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0FDVElWRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMl9GTVRfU0lERV9CWV9TSURFX1NURVJFT19DT05UUk9MX19GTVRfU0lERV9CWV9TSURFX1NURVJFT19BQ1RJVkVfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKy8vRk1UMl9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MCisjZGVmaW5lIEZNVDJfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQyX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRk1UMl9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEZNVDJfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX0RFRkFVTFRfTUVNX0xPV19QT1dFUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBGTVQyX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBGTVQyX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBGTVQyX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBGTVQyX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9ERUZBVUxUX01FTV9MT1dfUE9XRVJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorLy9GTVQyX0ZNVF80MjJfQ09OVFJPTAorI2RlZmluZSBGTVQyX0ZNVF80MjJfQ09OVFJPTF9fRk1UX0xFRlRfRURHRV9FWFRSQV9QSVhFTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UMl9GTVRfNDIyX0NPTlRST0xfX0ZNVF9MRUZUX0VER0VfRVhUUkFfUElYRUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZHBnMl9kaXNwZGVjCisvL0RQRzJfRFBHX0NPTlRST0wKKyNkZWZpbmUgRFBHMl9EUEdfQ09OVFJPTF9fRFBHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzJfRFBHX0NPTlRST0xfX0RQR19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUEcyX0RQR19DT05UUk9MX19EUEdfRFlOQU1JQ19SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBHMl9EUEdfQ09OVFJPTF9fRFBHX0JJVF9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQRzJfRFBHX0NPTlRST0xfX0RQR19WUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHMl9EUEdfQ09OVFJPTF9fRFBHX0hSRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUEcyX0RQR19DT05UUk9MX19EUEdfRklFTERfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQRzJfRFBHX0NPTlRST0xfX0RQR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQRzJfRFBHX0NPTlRST0xfX0RQR19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQRzJfRFBHX0NPTlRST0xfX0RQR19EWU5BTUlDX1JBTkdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQRzJfRFBHX0NPTlRST0xfX0RQR19CSVRfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERQRzJfRFBHX0NPTlRST0xfX0RQR19WUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERQRzJfRFBHX0NPTlRST0xfX0RQR19IUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERQRzJfRFBHX0NPTlRST0xfX0RQR19GSUVMRF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RQRzJfRFBHX1JBTVBfQ09OVFJPTAorI2RlZmluZSBEUEcyX0RQR19SQU1QX0NPTlRST0xfX0RQR19SQU1QMF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHMl9EUEdfUkFNUF9DT05UUk9MX19EUEdfSU5DMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUEcyX0RQR19SQU1QX0NPTlRST0xfX0RQR19JTkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQRzJfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX1JBTVAwX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQRzJfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX0lOQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERQRzJfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX0lOQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RQRzJfRFBHX0RJTUVOU0lPTlMKKyNkZWZpbmUgRFBHMl9EUEdfRElNRU5TSU9OU19fRFBHX0FDVElWRV9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzJfRFBHX0RJTUVOU0lPTlNfX0RQR19BQ1RJVkVfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHMl9EUEdfRElNRU5TSU9OU19fRFBHX0FDVElWRV9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgRFBHMl9EUEdfRElNRU5TSU9OU19fRFBHX0FDVElWRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vRFBHMl9EUEdfQ09MT1VSX1JfQ1IKKyNkZWZpbmUgRFBHMl9EUEdfQ09MT1VSX1JfQ1JfX0RQR19DT0xPVVIwX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzJfRFBHX0NPTE9VUl9SX0NSX19EUEdfQ09MT1VSMV9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHMl9EUEdfQ09MT1VSX1JfQ1JfX0RQR19DT0xPVVIwX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBHMl9EUEdfQ09MT1VSX1JfQ1JfX0RQR19DT0xPVVIxX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBHMl9EUEdfQ09MT1VSX0dfWQorI2RlZmluZSBEUEcyX0RQR19DT0xPVVJfR19ZX19EUEdfQ09MT1VSMF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHMl9EUEdfQ09MT1VSX0dfWV9fRFBHX0NPTE9VUjFfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEcyX0RQR19DT0xPVVJfR19ZX19EUEdfQ09MT1VSMF9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUEcyX0RQR19DT0xPVVJfR19ZX19EUEdfQ09MT1VSMV9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUEcyX0RQR19DT0xPVVJfQl9DQgorI2RlZmluZSBEUEcyX0RQR19DT0xPVVJfQl9DQl9fRFBHX0NPTE9VUjBfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHMl9EUEdfQ09MT1VSX0JfQ0JfX0RQR19DT0xPVVIxX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEcyX0RQR19DT0xPVVJfQl9DQl9fRFBHX0NPTE9VUjBfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUEcyX0RQR19DT0xPVVJfQl9DQl9fRFBHX0NPTE9VUjFfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUEcyX0RQR19PRkZTRVRfU0VHTUVOVAorI2RlZmluZSBEUEcyX0RQR19PRkZTRVRfU0VHTUVOVF9fRFBHX1hfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHMl9EUEdfT0ZGU0VUX1NFR01FTlRfX0RQR19TRUdNRU5UX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEcyX0RQR19PRkZTRVRfU0VHTUVOVF9fRFBHX1hfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEUEcyX0RQR19PRkZTRVRfU0VHTUVOVF9fRFBHX1NFR01FTlRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EUEcyX0RQR19TVEFUVVMKKyNkZWZpbmUgRFBHMl9EUEdfU1RBVFVTX19EUEdfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzJfRFBHX1NUQVRVU19fRFBHX0RPVUJMRV9CVUZGRVJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcGJ1ZjJfZGlzcGRlYworLy9PUFBCVUYyX09QUEJVRl9DT05UUk9MCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9BQ1RJVkVfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBCVUYyX09QUEJVRl9DT05UUk9MX19PUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9PVkVSTEFQX1BJWEVMX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1BQQlVGMl9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX1BJWEVMX1JFUEVUSVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPUFBCVUYyX09QUEJVRl9DT05UUk9MX19PUFBCVUZfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9BQ1RJVkVfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9ESVNQTEFZX1NFR01FTlRBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9PVkVSTEFQX1BJWEVMX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9QSVhFTF9SRVBFVElUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9ET1VCTEVfQlVGRkVSX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL09QUEJVRjJfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMAorI2RlZmluZSBPUFBCVUYyX09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl8zRF9WQUNUX1NQQUNFMV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQQlVGMl9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfM0RfVkFDVF9TUEFDRTJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGX0RVTU1ZX0RBVEFfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1BQQlVGMl9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfM0RfVkFDVF9TUEFDRTFfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgT1BQQlVGMl9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfM0RfVkFDVF9TUEFDRTJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgT1BQQlVGMl9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfRFVNTVlfREFUQV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vT1BQQlVGMl9PUFBCVUZfM0RfUEFSQU1FVEVSU18xCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9fT1BQQlVGX0RVTU1ZX0RBVEFfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBCVUYyX09QUEJVRl8zRF9QQVJBTUVURVJTXzFfX09QUEJVRl9EVU1NWV9EQVRBX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9fT1BQQlVGX0RVTU1ZX0RBVEFfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9fT1BQQlVGX0RVTU1ZX0RBVEFfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL09QUEJVRjJfT1BQQlVGX0NPTlRST0wxCisjZGVmaW5lIE9QUEJVRjJfT1BQQlVGX0NPTlRST0wxX19PUFBCVUZfTlVNX1NFR01FTlRfUEFEREVEX1BJWEVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBCVUYyX09QUEJVRl9DT05UUk9MMV9fT1BQQlVGX05VTV9TRUdNRU5UX1BBRERFRF9QSVhFTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfcGlwZTJfZGlzcGRlYworLy9PUFBfUElQRTJfT1BQX1BJUEVfQ09OVFJPTAorI2RlZmluZSBPUFBfUElQRTJfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfQ0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEUyX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9QUF9QSVBFMl9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9ESUdJVEFMX0JZUEFTU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPUFBfUElQRTJfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfQ0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPUFBfUElQRTJfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPUFBfUElQRTJfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfRElHSVRBTF9CWVBBU1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfcGlwZV9jcmMyX2Rpc3BkZWMKKy8vT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfQ09OVFJPTAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0NPTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TVEVSRU9fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU1RFUkVPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0lOVEVSTEFDRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19JTlRFUkxBQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfUElYRUxfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX09ORV9TSE9UX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU1RFUkVPX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfSU5URVJMQUNFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfSU5URVJMQUNFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfUElYRUxfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfT05FX1NIT1RfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9PUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19NQVNLCisjZGVmaW5lIE9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX01BU0tfX09QUF9QSVBFX0NSQ19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19NQVNLX19PUFBfUElQRV9DUkNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9PUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19SRVNVTFQwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfX09QUF9QSVBFX0NSQ19SRVNVTFRfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19SRVNVTFQwX19PUFBfUElQRV9DUkNfUkVTVUxUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfX09QUF9QSVBFX0NSQ19SRVNVTFRfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfX09QUF9QSVBFX0NSQ19SRVNVTFRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX1JFU1VMVDEKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfUkVTVUxUMV9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzJfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfX09QUF9QSVBFX0NSQ19SRVNVTFRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfUkVTVUxUMV9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfUkVTVUxUMV9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfUkVTVUxUMgorI2RlZmluZSBPUFBfUElQRV9DUkMyX09QUF9QSVBFX0NSQ19SRVNVTFQyX19PUFBfUElQRV9DUkNfUkVTVUxUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDMl9PUFBfUElQRV9DUkNfUkVTVUxUMl9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZm10M19kaXNwZGVjCisvL0ZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9SCisjZGVmaW5lIEZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX19GTVRfQ0xBTVBfTE9XRVJfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQzX0ZNVF9DTEFNUF9DT01QT05FTlRfUl9fRk1UX0NMQU1QX1VQUEVSX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX19GTVRfQ0xBTVBfTE9XRVJfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX19GTVRfQ0xBTVBfVVBQRVJfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9HCisjZGVmaW5lIEZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX19GTVRfQ0xBTVBfTE9XRVJfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQzX0ZNVF9DTEFNUF9DT01QT05FTlRfR19fRk1UX0NMQU1QX1VQUEVSX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX19GTVRfQ0xBTVBfTE9XRVJfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX19GTVRfQ0xBTVBfVVBQRVJfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9CCisjZGVmaW5lIEZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9CX19GTVRfQ0xBTVBfTE9XRVJfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQzX0ZNVF9DTEFNUF9DT01QT05FTlRfQl9fRk1UX0NMQU1QX1VQUEVSX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9CX19GTVRfQ0xBTVBfTE9XRVJfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEZNVDNfRk1UX0NMQU1QX0NPTVBPTkVOVF9CX19GTVRfQ0xBTVBfVVBQRVJfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDNfRk1UX0RZTkFNSUNfRVhQX0NOVEwKKyNkZWZpbmUgRk1UM19GTVRfRFlOQU1JQ19FWFBfQ05UTF9fRk1UX0RZTkFNSUNfRVhQX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDNfRk1UX0RZTkFNSUNfRVhQX0NOVExfX0ZNVF9EWU5BTUlDX0VYUF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGTVQzX0ZNVF9EWU5BTUlDX0VYUF9DTlRMX19GTVRfRFlOQU1JQ19FWFBfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBGTVQzX0ZNVF9EWU5BTUlDX0VYUF9DTlRMX19GTVRfRFlOQU1JQ19FWFBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9GTVQzX0ZNVF9DT05UUk9MCisjZGVmaW5lIEZNVDNfRk1UX0NPTlRST0xfX0ZNVF9TVEVSRU9TWU5DX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfUFRJX0ZJRUxEX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRk1UM19GTVRfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0ZSQU1FX0NPVU5URVJfTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEZNVDNfRk1UX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9GUkFNRV9DT1VOVEVSX0JJVF9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfUElYRUxfRU5DT0RJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDNfRk1UX0NPTlRST0xfX0ZNVF9TVUJTQU1QTElOR19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRk1UM19GTVRfQ09OVFJPTF9fRk1UX1NVQlNBTVBMSU5HX09SREVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfQ0JDUl9CSVRfUkVEVUNUSU9OX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIEZNVDNfRk1UX0NPTlRST0xfX0ZNVF9ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRk1UM19GTVRfQ09OVFJPTF9fRk1UX1BUSV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfU1RFUkVPU1lOQ19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfUFRJX0ZJRUxEX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRlJBTUVfQ09VTlRFUl9NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRlJBTUVfQ09VTlRFUl9CSVRfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfUElYRUxfRU5DT0RJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfU1VCU0FNUExJTkdfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfU1VCU0FNUExJTkdfT1JERVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfQ0JDUl9CSVRfUkVEVUNUSU9OX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBGTVQzX0ZNVF9DT05UUk9MX19GTVRfUFRJX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9GTVQzX0ZNVF9CSVRfREVQVEhfQ09OVFJPTAorI2RlZmluZSBGTVQzX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEZNVDNfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGTVQzX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEZNVDNfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBGTVQzX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX0ZSQU1FX1JBTkRPTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9SR0JfUkFORE9NX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEZNVDNfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfSElHSFBBU1NfUkFORE9NX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBGTVQzX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDNfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBGTVQzX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEZNVDNfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF8yNUZSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBGTVQzX0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzUwRlJDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEZNVDNfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfNzVGUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTgwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9GUkFNRV9SQU5ET01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9SR0JfUkFORE9NX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9ISUdIUEFTU19SQU5ET01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2MDAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF8yNUZSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF81MEZSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRk1UM19GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF83NUZSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vRk1UM19GTVRfRElUSEVSX1JBTkRfUl9TRUVECisjZGVmaW5lIEZNVDNfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9fRk1UX1JBTkRfUl9TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQzX0ZNVF9ESVRIRVJfUkFORF9SX1NFRURfX0ZNVF9PRkZTRVRfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDNfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9fRk1UX1JBTkRfUl9TRUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEZNVDNfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9fRk1UX09GRlNFVF9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDNfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRAorI2RlZmluZSBGTVQzX0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfX0ZNVF9SQU5EX0dfU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UM19GTVRfRElUSEVSX1JBTkRfR19TRUVEX19GTVRfT0ZGU0VUX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQzX0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfX0ZNVF9SQU5EX0dfU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBGTVQzX0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfX0ZNVF9PRkZTRVRfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQzX0ZNVF9ESVRIRVJfUkFORF9CX1NFRUQKKyNkZWZpbmUgRk1UM19GTVRfRElUSEVSX1JBTkRfQl9TRUVEX19GTVRfUkFORF9CX1NFRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDNfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRF9fRk1UX09GRlNFVF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UM19GTVRfRElUSEVSX1JBTkRfQl9TRUVEX19GTVRfUkFORF9CX1NFRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRk1UM19GTVRfRElUSEVSX1JBTkRfQl9TRUVEX19GTVRfT0ZGU0VUX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UM19GTVRfQ0xBTVBfQ05UTAorI2RlZmluZSBGTVQzX0ZNVF9DTEFNUF9DTlRMX19GTVRfQ0xBTVBfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UM19GTVRfQ0xBTVBfQ05UTF9fRk1UX0NMQU1QX0NPTE9SX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQzX0ZNVF9DTEFNUF9DTlRMX19GTVRfQ0xBTVBfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBGTVQzX0ZNVF9DTEFNUF9DTlRMX19GTVRfQ0xBTVBfQ09MT1JfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorLy9GTVQzX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0wKKyNkZWZpbmUgRk1UM19GTVRfU0lERV9CWV9TSURFX1NURVJFT19DT05UUk9MX19GTVRfU0lERV9CWV9TSURFX1NURVJFT19BQ1RJVkVfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDNfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTF9fRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQUNUSVZFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL0ZNVDNfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTAorI2RlZmluZSBGTVQzX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UM19GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEZNVDNfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBGTVQzX0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9ERUZBVUxUX01FTV9MT1dfUE9XRVJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRk1UM19GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRk1UM19GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRk1UM19GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRk1UM19GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfREVGQVVMVF9NRU1fTE9XX1BPV0VSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKy8vRk1UM19GTVRfNDIyX0NPTlRST0wKKyNkZWZpbmUgRk1UM19GTVRfNDIyX0NPTlRST0xfX0ZNVF9MRUZUX0VER0VfRVhUUkFfUElYRUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDNfRk1UXzQyMl9DT05UUk9MX19GTVRfTEVGVF9FREdFX0VYVFJBX1BJWEVMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2RwZzNfZGlzcGRlYworLy9EUEczX0RQR19DT05UUk9MCisjZGVmaW5lIERQRzNfRFBHX0NPTlRST0xfX0RQR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEczX0RQR19DT05UUk9MX19EUEdfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBHM19EUEdfQ09OVFJPTF9fRFBHX0RZTkFNSUNfUkFOR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQRzNfRFBHX0NPTlRST0xfX0RQR19CSVRfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUEczX0RQR19DT05UUk9MX19EUEdfVlJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzNfRFBHX0NPTlRST0xfX0RQR19IUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBHM19EUEdfQ09OVFJPTF9fRFBHX0ZJRUxEX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUEczX0RQR19DT05UUk9MX19EUEdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUEczX0RQR19DT05UUk9MX19EUEdfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUEczX0RQR19DT05UUk9MX19EUEdfRFlOQU1JQ19SQU5HRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUEczX0RQR19DT05UUk9MX19EUEdfQklUX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEUEczX0RQR19DT05UUk9MX19EUEdfVlJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEUEczX0RQR19DT05UUk9MX19EUEdfSFJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEUEczX0RQR19DT05UUk9MX19EUEdfRklFTERfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUEczX0RQR19SQU1QX0NPTlRST0wKKyNkZWZpbmUgRFBHM19EUEdfUkFNUF9DT05UUk9MX19EUEdfUkFNUDBfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzNfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX0lOQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBHM19EUEdfUkFNUF9DT05UUk9MX19EUEdfSU5DMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUEczX0RQR19SQU1QX0NPTlRST0xfX0RQR19SQU1QMF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUEczX0RQR19SQU1QX0NPTlRST0xfX0RQR19JTkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEUEczX0RQR19SQU1QX0NPTlRST0xfX0RQR19JTkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EUEczX0RQR19ESU1FTlNJT05TCisjZGVmaW5lIERQRzNfRFBHX0RJTUVOU0lPTlNfX0RQR19BQ1RJVkVfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEczX0RQR19ESU1FTlNJT05TX19EUEdfQUNUSVZFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzNfRFBHX0RJTUVOU0lPTlNfX0RQR19BQ1RJVkVfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERQRzNfRFBHX0RJTUVOU0lPTlNfX0RQR19BQ1RJVkVfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RQRzNfRFBHX0NPTE9VUl9SX0NSCisjZGVmaW5lIERQRzNfRFBHX0NPTE9VUl9SX0NSX19EUEdfQ09MT1VSMF9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEczX0RQR19DT0xPVVJfUl9DUl9fRFBHX0NPTE9VUjFfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzNfRFBHX0NPTE9VUl9SX0NSX19EUEdfQ09MT1VSMF9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQRzNfRFBHX0NPTE9VUl9SX0NSX19EUEdfQ09MT1VSMV9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQRzNfRFBHX0NPTE9VUl9HX1kKKyNkZWZpbmUgRFBHM19EUEdfQ09MT1VSX0dfWV9fRFBHX0NPTE9VUjBfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzNfRFBHX0NPTE9VUl9HX1lfX0RQR19DT0xPVVIxX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHM19EUEdfQ09MT1VSX0dfWV9fRFBHX0NPTE9VUjBfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBHM19EUEdfQ09MT1VSX0dfWV9fRFBHX0NPTE9VUjFfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBHM19EUEdfQ09MT1VSX0JfQ0IKKyNkZWZpbmUgRFBHM19EUEdfQ09MT1VSX0JfQ0JfX0RQR19DT0xPVVIwX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzNfRFBHX0NPTE9VUl9CX0NCX19EUEdfQ09MT1VSMV9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHM19EUEdfQ09MT1VSX0JfQ0JfX0RQR19DT0xPVVIwX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBHM19EUEdfQ09MT1VSX0JfQ0JfX0RQR19DT0xPVVIxX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBHM19EUEdfT0ZGU0VUX1NFR01FTlQKKyNkZWZpbmUgRFBHM19EUEdfT0ZGU0VUX1NFR01FTlRfX0RQR19YX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzNfRFBHX09GRlNFVF9TRUdNRU5UX19EUEdfU0VHTUVOVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHM19EUEdfT0ZGU0VUX1NFR01FTlRfX0RQR19YX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgRFBHM19EUEdfT0ZGU0VUX1NFR01FTlRfX0RQR19TRUdNRU5UX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vRFBHM19EUEdfU1RBVFVTCisjZGVmaW5lIERQRzNfRFBHX1NUQVRVU19fRFBHX0RPVUJMRV9CVUZGRVJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEczX0RQR19TVEFUVVNfX0RQR19ET1VCTEVfQlVGRkVSX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBidWYzX2Rpc3BkZWMKKy8vT1BQQlVGM19PUFBCVUZfQ09OVFJPTAorI2RlZmluZSBPUFBCVUYzX09QUEJVRl9DT05UUk9MX19PUFBCVUZfQUNUSVZFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQQlVGM19PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0RJU1BMQVlfU0VHTUVOVEFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPUFBCVUYzX09QUEJVRl9DT05UUk9MX19PUFBCVUZfT1ZFUkxBUF9QSVhFTF9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9QUEJVRjNfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9QSVhFTF9SRVBFVElUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1BQQlVGM19PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0RPVUJMRV9CVUZGRVJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPUFBCVUYzX09QUEJVRl9DT05UUk9MX19PUFBCVUZfQUNUSVZFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBPUFBCVUYzX09QUEJVRl9DT05UUk9MX19PUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBPUFBCVUYzX09QUEJVRl9DT05UUk9MX19PUFBCVUZfT1ZFUkxBUF9QSVhFTF9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBPUFBCVUYzX09QUEJVRl9DT05UUk9MX19PUFBCVUZfUElYRUxfUkVQRVRJVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBPUFBCVUYzX09QUEJVRl9DT05UUk9MX19PUFBCVUZfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9PUFBCVUYzX09QUEJVRl8zRF9QQVJBTUVURVJTXzAKKyNkZWZpbmUgT1BQQlVGM19PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfM0RfVkFDVF9TUEFDRTFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUEJVRjNfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGXzNEX1ZBQ1RfU1BBQ0UyX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPUFBCVUYzX09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl9EVU1NWV9EQVRBX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9QUEJVRjNfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGXzNEX1ZBQ1RfU1BBQ0UxX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIE9QUEJVRjNfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGXzNEX1ZBQ1RfU1BBQ0UyX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIE9QUEJVRjNfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGX0RVTU1ZX0RBVEFfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL09QUEJVRjNfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMQorI2RlZmluZSBPUFBCVUYzX09QUEJVRl8zRF9QQVJBTUVURVJTXzFfX09QUEJVRl9EVU1NWV9EQVRBX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQQlVGM19PUFBCVUZfM0RfUEFSQU1FVEVSU18xX19PUFBCVUZfRFVNTVlfREFUQV9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPUFBCVUYzX09QUEJVRl8zRF9QQVJBTUVURVJTXzFfX09QUEJVRl9EVU1NWV9EQVRBX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBPUFBCVUYzX09QUEJVRl8zRF9QQVJBTUVURVJTXzFfX09QUEJVRl9EVU1NWV9EQVRBX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkYwMDAwTAorLy9PUFBCVUYzX09QUEJVRl9DT05UUk9MMQorI2RlZmluZSBPUFBCVUYzX09QUEJVRl9DT05UUk9MMV9fT1BQQlVGX05VTV9TRUdNRU5UX1BBRERFRF9QSVhFTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQQlVGM19PUFBCVUZfQ09OVFJPTDFfX09QUEJVRl9OVU1fU0VHTUVOVF9QQURERURfUElYRUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwX3BpcGUzX2Rpc3BkZWMKKy8vT1BQX1BJUEUzX09QUF9QSVBFX0NPTlRST0wKKyNkZWZpbmUgT1BQX1BJUEUzX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0NMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFM19PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPUFBfUElQRTNfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfRElHSVRBTF9CWVBBU1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1BQX1BJUEUzX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0NMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1BQX1BJUEUzX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1BQX1BJUEUzX09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0RJR0lUQUxfQllQQVNTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwX3BpcGVfY3JjM19kaXNwZGVjCisvL09QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX0NPTlRST0wKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19DT05UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU1RFUkVPX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NURVJFT19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19JTlRFUkxBQ0VfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfSU5URVJMQUNFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1BJWEVMX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19PTkVfU0hPVF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0NPTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NURVJFT19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NURVJFT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0lOVEVSTEFDRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0lOVEVSTEFDRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1BJWEVMX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX09ORV9TSE9UX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfTUFTSworI2RlZmluZSBPUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19NQVNLX19PUFBfUElQRV9DUkNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfTUFTS19fT1BQX1BJUEVfQ1JDX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfUkVTVUxUMAorI2RlZmluZSBPUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19SRVNVTFQwX19PUFBfUElQRV9DUkNfUkVTVUxUX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfUkVTVUxUMF9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19SRVNVTFQwX19PUFBfUElQRV9DUkNfUkVTVUxUX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19SRVNVTFQwX19PUFBfUElQRV9DUkNfUkVTVUxUX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19SRVNVTFQxCisjZGVmaW5lIE9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfX09QUF9QSVBFX0NSQ19SRVNVTFRfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkMzX09QUF9QSVBFX0NSQ19SRVNVTFQxX19PUFBfUElQRV9DUkNfUkVTVUxUX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfX09QUF9QSVBFX0NSQ19SRVNVTFRfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfX09QUF9QSVBFX0NSQ19SRVNVTFRfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX1JFU1VMVDIKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDM19PUFBfUElQRV9DUkNfUkVTVUxUMl9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzNfT1BQX1BJUEVfQ1JDX1JFU1VMVDJfX09QUF9QSVBFX0NSQ19SRVNVTFRfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX2ZtdDRfZGlzcGRlYworLy9GTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfUgorI2RlZmluZSBGTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfUl9fRk1UX0NMQU1QX0xPV0VSX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UNF9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfX0ZNVF9DTEFNUF9VUFBFUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfUl9fRk1UX0NMQU1QX0xPV0VSX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBGTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfUl9fRk1UX0NMQU1QX1VQUEVSX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfRworI2RlZmluZSBGTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfR19fRk1UX0NMQU1QX0xPV0VSX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UNF9GTVRfQ0xBTVBfQ09NUE9ORU5UX0dfX0ZNVF9DTEFNUF9VUFBFUl9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfR19fRk1UX0NMQU1QX0xPV0VSX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBGTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfR19fRk1UX0NMQU1QX1VQUEVSX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfQgorI2RlZmluZSBGTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfQl9fRk1UX0NMQU1QX0xPV0VSX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UNF9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfX0ZNVF9DTEFNUF9VUFBFUl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfQl9fRk1UX0NMQU1QX0xPV0VSX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBGTVQ0X0ZNVF9DTEFNUF9DT01QT05FTlRfQl9fRk1UX0NMQU1QX1VQUEVSX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQ0X0ZNVF9EWU5BTUlDX0VYUF9DTlRMCisjZGVmaW5lIEZNVDRfRk1UX0RZTkFNSUNfRVhQX0NOVExfX0ZNVF9EWU5BTUlDX0VYUF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQ0X0ZNVF9EWU5BTUlDX0VYUF9DTlRMX19GTVRfRFlOQU1JQ19FWFBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRk1UNF9GTVRfRFlOQU1JQ19FWFBfQ05UTF9fRk1UX0RZTkFNSUNfRVhQX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRk1UNF9GTVRfRFlOQU1JQ19FWFBfQ05UTF9fRk1UX0RZTkFNSUNfRVhQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vRk1UNF9GTVRfQ09OVFJPTAorI2RlZmluZSBGTVQ0X0ZNVF9DT05UUk9MX19GTVRfU1RFUkVPU1lOQ19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1BUSV9GSUVMRF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEZNVDRfRk1UX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9GUkFNRV9DT1VOVEVSX01BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBGTVQ0X0ZNVF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRlJBTUVfQ09VTlRFUl9CSVRfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1BJWEVMX0VOQ09ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQ0X0ZNVF9DT05UUk9MX19GTVRfU1VCU0FNUExJTkdfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEZNVDRfRk1UX0NPTlRST0xfX0ZNVF9TVUJTQU1QTElOR19PUkRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX0NCQ1JfQklUX1JFRFVDVElPTl9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBGTVQ0X0ZNVF9DT05UUk9MX19GTVRfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEZNVDRfRk1UX0NPTlRST0xfX0ZNVF9QVElfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1NURVJFT1NZTkNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1BUSV9GSUVMRF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0ZSQU1FX0NPVU5URVJfTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0ZSQU1FX0NPVU5URVJfQklUX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1BJWEVMX0VOQ09ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1NVQlNBTVBMSU5HX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1NVQlNBTVBMSU5HX09SREVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX0NCQ1JfQklUX1JFRFVDVElPTl9CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRk1UNF9GTVRfQ09OVFJPTF9fRk1UX1BUSV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRk1UNF9GTVRfQklUX0RFUFRIX0NPTlRST0wKKyNkZWZpbmUgRk1UNF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBGTVQ0X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRk1UNF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBGTVQ0X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRk1UNF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9GUkFNRV9SQU5ET01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfUkdCX1JBTkRPTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBGTVQ0X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX0hJR0hQQVNTX1JBTkRPTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRk1UNF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQ0X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRk1UNF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBGTVQ0X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfMjVGUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRk1UNF9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF81MEZSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBGTVQ0X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzc1RlJDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfRlJBTUVfUkFORE9NX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfUkdCX1JBTkRPTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfSElHSFBBU1NfUkFORE9NX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNjAwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfMjVGUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfNTBGUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIEZNVDRfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfNzVGUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL0ZNVDRfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRAorI2RlZmluZSBGTVQ0X0ZNVF9ESVRIRVJfUkFORF9SX1NFRURfX0ZNVF9SQU5EX1JfU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UNF9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX19GTVRfT0ZGU0VUX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQ0X0ZNVF9ESVRIRVJfUkFORF9SX1NFRURfX0ZNVF9SQU5EX1JfU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBGTVQ0X0ZNVF9ESVRIRVJfUkFORF9SX1NFRURfX0ZNVF9PRkZTRVRfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQ0X0ZNVF9ESVRIRVJfUkFORF9HX1NFRUQKKyNkZWZpbmUgRk1UNF9GTVRfRElUSEVSX1JBTkRfR19TRUVEX19GTVRfUkFORF9HX1NFRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDRfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9fRk1UX09GRlNFVF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UNF9GTVRfRElUSEVSX1JBTkRfR19TRUVEX19GTVRfUkFORF9HX1NFRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRk1UNF9GTVRfRElUSEVSX1JBTkRfR19TRUVEX19GTVRfT0ZGU0VUX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UNF9GTVRfRElUSEVSX1JBTkRfQl9TRUVECisjZGVmaW5lIEZNVDRfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRF9fRk1UX1JBTkRfQl9TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQ0X0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfX0ZNVF9PRkZTRVRfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDRfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRF9fRk1UX1JBTkRfQl9TRUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEZNVDRfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRF9fRk1UX09GRlNFVF9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDRfRk1UX0NMQU1QX0NOVEwKKyNkZWZpbmUgRk1UNF9GTVRfQ0xBTVBfQ05UTF9fRk1UX0NMQU1QX0RBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDRfRk1UX0NMQU1QX0NOVExfX0ZNVF9DTEFNUF9DT0xPUl9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UNF9GTVRfQ0xBTVBfQ05UTF9fRk1UX0NMQU1QX0RBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRk1UNF9GTVRfQ0xBTVBfQ05UTF9fRk1UX0NMQU1QX0NPTE9SX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKy8vRk1UNF9GTVRfU0lERV9CWV9TSURFX1NURVJFT19DT05UUk9MCisjZGVmaW5lIEZNVDRfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTF9fRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQUNUSVZFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQ0X0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0xfX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0FDVElWRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorLy9GTVQ0X0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0wKKyNkZWZpbmUgRk1UNF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDRfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGTVQ0X0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRk1UNF9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfREVGQVVMVF9NRU1fTE9XX1BPV0VSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEZNVDRfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEZNVDRfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEZNVDRfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEZNVDRfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX0RFRkFVTFRfTUVNX0xPV19QT1dFUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisvL0ZNVDRfRk1UXzQyMl9DT05UUk9MCisjZGVmaW5lIEZNVDRfRk1UXzQyMl9DT05UUk9MX19GTVRfTEVGVF9FREdFX0VYVFJBX1BJWEVMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQ0X0ZNVF80MjJfQ09OVFJPTF9fRk1UX0xFRlRfRURHRV9FWFRSQV9QSVhFTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kcGc0X2Rpc3BkZWMKKy8vRFBHNF9EUEdfQ09OVFJPTAorI2RlZmluZSBEUEc0X0RQR19DT05UUk9MX19EUEdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHNF9EUEdfQ09OVFJPTF9fRFBHX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQRzRfRFBHX0NPTlRST0xfX0RQR19EWU5BTUlDX1JBTkdFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUEc0X0RQR19DT05UUk9MX19EUEdfQklUX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBHNF9EUEdfQ09OVFJPTF9fRFBHX1ZSRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEc0X0RQR19DT05UUk9MX19EUEdfSFJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQRzRfRFBHX0NPTlRST0xfX0RQR19GSUVMRF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBHNF9EUEdfQ09OVFJPTF9fRFBHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBHNF9EUEdfQ09OVFJPTF9fRFBHX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBHNF9EUEdfQ09OVFJPTF9fRFBHX0RZTkFNSUNfUkFOR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBHNF9EUEdfQ09OVFJPTF9fRFBHX0JJVF9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRFBHNF9EUEdfQ09OVFJPTF9fRFBHX1ZSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRFBHNF9EUEdfQ09OVFJPTF9fRFBHX0hSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRFBHNF9EUEdfQ09OVFJPTF9fRFBHX0ZJRUxEX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFBHNF9EUEdfUkFNUF9DT05UUk9MCisjZGVmaW5lIERQRzRfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX1JBTVAwX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEc0X0RQR19SQU1QX0NPTlRST0xfX0RQR19JTkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQRzRfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX0lOQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBHNF9EUEdfUkFNUF9DT05UUk9MX19EUEdfUkFNUDBfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBHNF9EUEdfUkFNUF9DT05UUk9MX19EUEdfSU5DMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFBHNF9EUEdfUkFNUF9DT05UUk9MX19EUEdfSU5DMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBHNF9EUEdfRElNRU5TSU9OUworI2RlZmluZSBEUEc0X0RQR19ESU1FTlNJT05TX19EUEdfQUNUSVZFX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHNF9EUEdfRElNRU5TSU9OU19fRFBHX0FDVElWRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEc0X0RQR19ESU1FTlNJT05TX19EUEdfQUNUSVZFX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEUEc0X0RQR19ESU1FTlNJT05TX19EUEdfQUNUSVZFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EUEc0X0RQR19DT0xPVVJfUl9DUgorI2RlZmluZSBEUEc0X0RQR19DT0xPVVJfUl9DUl9fRFBHX0NPTE9VUjBfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHNF9EUEdfQ09MT1VSX1JfQ1JfX0RQR19DT0xPVVIxX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEc0X0RQR19DT0xPVVJfUl9DUl9fRFBHX0NPTE9VUjBfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUEc0X0RQR19DT0xPVVJfUl9DUl9fRFBHX0NPTE9VUjFfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUEc0X0RQR19DT0xPVVJfR19ZCisjZGVmaW5lIERQRzRfRFBHX0NPTE9VUl9HX1lfX0RQR19DT0xPVVIwX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEc0X0RQR19DT0xPVVJfR19ZX19EUEdfQ09MT1VSMV9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzRfRFBHX0NPTE9VUl9HX1lfX0RQR19DT0xPVVIwX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQRzRfRFBHX0NPTE9VUl9HX1lfX0RQR19DT0xPVVIxX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQRzRfRFBHX0NPTE9VUl9CX0NCCisjZGVmaW5lIERQRzRfRFBHX0NPTE9VUl9CX0NCX19EUEdfQ09MT1VSMF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEc0X0RQR19DT0xPVVJfQl9DQl9fRFBHX0NPTE9VUjFfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzRfRFBHX0NPTE9VUl9CX0NCX19EUEdfQ09MT1VSMF9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQRzRfRFBHX0NPTE9VUl9CX0NCX19EUEdfQ09MT1VSMV9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQRzRfRFBHX09GRlNFVF9TRUdNRU5UCisjZGVmaW5lIERQRzRfRFBHX09GRlNFVF9TRUdNRU5UX19EUEdfWF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUEc0X0RQR19PRkZTRVRfU0VHTUVOVF9fRFBHX1NFR01FTlRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQRzRfRFBHX09GRlNFVF9TRUdNRU5UX19EUEdfWF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERQRzRfRFBHX09GRlNFVF9TRUdNRU5UX19EUEdfU0VHTUVOVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRjAwMDBMCisvL0RQRzRfRFBHX1NUQVRVUworI2RlZmluZSBEUEc0X0RQR19TVEFUVVNfX0RQR19ET1VCTEVfQlVGRkVSX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHNF9EUEdfU1RBVFVTX19EUEdfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwYnVmNF9kaXNwZGVjCisvL09QUEJVRjRfT1BQQlVGX0NPTlRST0wKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0FDVElWRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUEJVRjRfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9ESVNQTEFZX1NFR01FTlRBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX09WRVJMQVBfUElYRUxfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPUFBCVUY0X09QUEJVRl9DT05UUk9MX19PUFBCVUZfUElYRUxfUkVQRVRJVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9QUEJVRjRfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9ET1VCTEVfQlVGRkVSX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0FDVElWRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0RJU1BMQVlfU0VHTUVOVEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX09WRVJMQVBfUElYRUxfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX1BJWEVMX1JFUEVUSVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX0RPVUJMRV9CVUZGRVJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vT1BQQlVGNF9PUFBCVUZfM0RfUEFSQU1FVEVSU18wCisjZGVmaW5lIE9QUEJVRjRfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGXzNEX1ZBQ1RfU1BBQ0UxX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBCVUY0X09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl8zRF9WQUNUX1NQQUNFMl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfRFVNTVlfREFUQV9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPUFBCVUY0X09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl8zRF9WQUNUX1NQQUNFMV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBPUFBCVUY0X09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl8zRF9WQUNUX1NQQUNFMl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorI2RlZmluZSBPUFBCVUY0X09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl9EVU1NWV9EQVRBX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9PUFBCVUY0X09QUEJVRl8zRF9QQVJBTUVURVJTXzEKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfM0RfUEFSQU1FVEVSU18xX19PUFBCVUZfRFVNTVlfREFUQV9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUEJVRjRfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9fT1BQQlVGX0RVTU1ZX0RBVEFfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfM0RfUEFSQU1FVEVSU18xX19PUFBCVUZfRFVNTVlfREFUQV9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfM0RfUEFSQU1FVEVSU18xX19PUFBCVUZfRFVNTVlfREFUQV9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGMDAwMEwKKy8vT1BQQlVGNF9PUFBCVUZfQ09OVFJPTDEKKyNkZWZpbmUgT1BQQlVGNF9PUFBCVUZfQ09OVFJPTDFfX09QUEJVRl9OVU1fU0VHTUVOVF9QQURERURfUElYRUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUEJVRjRfT1BQQlVGX0NPTlRST0wxX19PUFBCVUZfTlVNX1NFR01FTlRfUEFEREVEX1BJWEVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcF9waXBlNF9kaXNwZGVjCisvL09QUF9QSVBFNF9PUFBfUElQRV9DT05UUk9MCisjZGVmaW5lIE9QUF9QSVBFNF9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9DTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRTRfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1BQX1BJUEU0X09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0RJR0lUQUxfQllQQVNTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9QUF9QSVBFNF9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9DTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9QUF9QSVBFNF9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9QUF9QSVBFNF9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9ESUdJVEFMX0JZUEFTU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcF9waXBlX2NyYzRfZGlzcGRlYworLy9PUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19DT05UUk9MCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NURVJFT19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfSU5URVJMQUNFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0lOVEVSTEFDRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19QSVhFTF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfT05FX1NIT1RfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19DT05UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TVEVSRU9fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TVEVSRU9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19JTlRFUkxBQ0VfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19JTlRFUkxBQ0VfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19QSVhFTF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19PTkVfU0hPVF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL09QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX01BU0sKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfTUFTS19fT1BQX1BJUEVfQ1JDX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX01BU0tfX09QUF9QSVBFX0NSQ19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL09QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX1JFU1VMVDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfUkVTVUxUMF9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfX09QUF9QSVBFX0NSQ19SRVNVTFRfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfUkVTVUxUMF9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfUkVTVUxUMF9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfUkVTVUxUMQorI2RlZmluZSBPUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19SRVNVTFQxX19PUFBfUElQRV9DUkNfUkVTVUxUX0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNF9PUFBfUElQRV9DUkNfUkVTVUxUMV9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19SRVNVTFQxX19PUFBfUElQRV9DUkNfUkVTVUxUX0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19SRVNVTFQxX19PUFBfUElQRV9DUkNfUkVTVUxUX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19SRVNVTFQyCisjZGVmaW5lIE9QUF9QSVBFX0NSQzRfT1BQX1BJUEVfQ1JDX1JFU1VMVDJfX09QUF9QSVBFX0NSQ19SRVNVTFRfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkM0X09QUF9QSVBFX0NSQ19SRVNVTFQyX19PUFBfUElQRV9DUkNfUkVTVUxUX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9mbXQ1X2Rpc3BkZWMKKy8vRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX1IKKyNkZWZpbmUgRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfX0ZNVF9DTEFNUF9MT1dFUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDVfRk1UX0NMQU1QX0NPTVBPTkVOVF9SX19GTVRfQ0xBTVBfVVBQRVJfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfX0ZNVF9DTEFNUF9MT1dFUl9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX1JfX0ZNVF9DTEFNUF9VUFBFUl9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0cKKyNkZWZpbmUgRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0dfX0ZNVF9DTEFNUF9MT1dFUl9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDVfRk1UX0NMQU1QX0NPTVBPTkVOVF9HX19GTVRfQ0xBTVBfVVBQRVJfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0dfX0ZNVF9DTEFNUF9MT1dFUl9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0dfX0ZNVF9DTEFNUF9VUFBFUl9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0IKKyNkZWZpbmUgRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfX0ZNVF9DTEFNUF9MT1dFUl9CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDVfRk1UX0NMQU1QX0NPTVBPTkVOVF9CX19GTVRfQ0xBTVBfVVBQRVJfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfX0ZNVF9DTEFNUF9MT1dFUl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRk1UNV9GTVRfQ0xBTVBfQ09NUE9ORU5UX0JfX0ZNVF9DTEFNUF9VUFBFUl9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UNV9GTVRfRFlOQU1JQ19FWFBfQ05UTAorI2RlZmluZSBGTVQ1X0ZNVF9EWU5BTUlDX0VYUF9DTlRMX19GTVRfRFlOQU1JQ19FWFBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UNV9GTVRfRFlOQU1JQ19FWFBfQ05UTF9fRk1UX0RZTkFNSUNfRVhQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEZNVDVfRk1UX0RZTkFNSUNfRVhQX0NOVExfX0ZNVF9EWU5BTUlDX0VYUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEZNVDVfRk1UX0RZTkFNSUNfRVhQX0NOVExfX0ZNVF9EWU5BTUlDX0VYUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0ZNVDVfRk1UX0NPTlRST0wKKyNkZWZpbmUgRk1UNV9GTVRfQ09OVFJPTF9fRk1UX1NURVJFT1NZTkNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9QVElfRklFTERfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBGTVQ1X0ZNVF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRlJBTUVfQ09VTlRFUl9NQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRk1UNV9GTVRfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0ZSQU1FX0NPVU5URVJfQklUX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9QSVhFTF9FTkNPRElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UNV9GTVRfQ09OVFJPTF9fRk1UX1NVQlNBTVBMSU5HX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBGTVQ1X0ZNVF9DT05UUk9MX19GTVRfU1VCU0FNUExJTkdfT1JERVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9DQkNSX0JJVF9SRURVQ1RJT05fQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRk1UNV9GTVRfQ09OVFJPTF9fRk1UX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBGTVQ1X0ZNVF9DT05UUk9MX19GTVRfUFRJX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9TVEVSRU9TWU5DX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9QVElfRklFTERfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9GUkFNRV9DT1VOVEVSX01BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9GUkFNRV9DT1VOVEVSX0JJVF9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9QSVhFTF9FTkNPRElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9TVUJTQU1QTElOR19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9TVUJTQU1QTElOR19PUkRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9DQkNSX0JJVF9SRURVQ1RJT05fQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEZNVDVfRk1UX0NPTlRST0xfX0ZNVF9QVElfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0ZNVDVfRk1UX0JJVF9ERVBUSF9DT05UUk9MCisjZGVmaW5lIEZNVDVfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNBVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRk1UNV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9UUlVOQ0FURV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEZNVDVfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRIRVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRk1UNV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9TUEFUSUFMX0RJVEhFUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEZNVDVfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfRlJBTUVfUkFORE9NX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1JHQl9SQU5ET01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRk1UNV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9ISUdIUEFTU19SQU5ET01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEZNVDVfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfRElUSEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UNV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIEZNVDVfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVEVNUE9SQUxfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRk1UNV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9URU1QT1JBTF9ESVRIRVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzI1RlJDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIEZNVDVfRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfNTBGUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRk1UNV9GTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF83NUZSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RSVU5DQVRFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxODAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX0ZSQU1FX1JBTkRPTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1JHQl9SQU5ET01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX0hJR0hQQVNTX1JBTkRPTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYwMDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX1RFTVBPUkFMX0RJVEhFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzI1RlJDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzUwRlJDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBGTVQ1X0ZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UXzc1RlJDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9GTVQ1X0ZNVF9ESVRIRVJfUkFORF9SX1NFRUQKKyNkZWZpbmUgRk1UNV9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX19GTVRfUkFORF9SX1NFRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEZNVDVfRk1UX0RJVEhFUl9SQU5EX1JfU0VFRF9fRk1UX09GRlNFVF9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRk1UNV9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX19GTVRfUkFORF9SX1NFRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRk1UNV9GTVRfRElUSEVSX1JBTkRfUl9TRUVEX19GTVRfT0ZGU0VUX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRk1UNV9GTVRfRElUSEVSX1JBTkRfR19TRUVECisjZGVmaW5lIEZNVDVfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9fRk1UX1JBTkRfR19TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQ1X0ZNVF9ESVRIRVJfUkFORF9HX1NFRURfX0ZNVF9PRkZTRVRfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDVfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9fRk1UX1JBTkRfR19TRUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEZNVDVfRk1UX0RJVEhFUl9SQU5EX0dfU0VFRF9fRk1UX09GRlNFVF9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0ZNVDVfRk1UX0RJVEhFUl9SQU5EX0JfU0VFRAorI2RlZmluZSBGTVQ1X0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfX0ZNVF9SQU5EX0JfU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UNV9GTVRfRElUSEVSX1JBTkRfQl9TRUVEX19GTVRfT0ZGU0VUX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTVQ1X0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfX0ZNVF9SQU5EX0JfU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBGTVQ1X0ZNVF9ESVRIRVJfUkFORF9CX1NFRURfX0ZNVF9PRkZTRVRfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9GTVQ1X0ZNVF9DTEFNUF9DTlRMCisjZGVmaW5lIEZNVDVfRk1UX0NMQU1QX0NOVExfX0ZNVF9DTEFNUF9EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQ1X0ZNVF9DTEFNUF9DTlRMX19GTVRfQ0xBTVBfQ09MT1JfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEZNVDVfRk1UX0NMQU1QX0NOVExfX0ZNVF9DTEFNUF9EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEZNVDVfRk1UX0NMQU1QX0NOVExfX0ZNVF9DTEFNUF9DT0xPUl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisvL0ZNVDVfRk1UX1NJREVfQllfU0lERV9TVEVSRU9fQ09OVFJPTAorI2RlZmluZSBGTVQ1X0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0NPTlRST0xfX0ZNVF9TSURFX0JZX1NJREVfU1RFUkVPX0FDVElWRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UNV9GTVRfU0lERV9CWV9TSURFX1NURVJFT19DT05UUk9MX19GTVRfU0lERV9CWV9TSURFX1NURVJFT19BQ1RJVkVfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKy8vRk1UNV9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MCisjZGVmaW5lIEZNVDVfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX01BUDQyME1FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBGTVQ1X0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRk1UNV9GTVRfTUFQNDIwX01FTU9SWV9DT05UUk9MX19GTVRfTUFQNDIwTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEZNVDVfRk1UX01BUDQyMF9NRU1PUllfQ09OVFJPTF9fRk1UX0RFRkFVTFRfTUVNX0xPV19QT1dFUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBGTVQ1X0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBGTVQ1X0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBGTVQ1X0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9NQVA0MjBNRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBGTVQ1X0ZNVF9NQVA0MjBfTUVNT1JZX0NPTlRST0xfX0ZNVF9ERUZBVUxUX01FTV9MT1dfUE9XRVJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorLy9GTVQ1X0ZNVF80MjJfQ09OVFJPTAorI2RlZmluZSBGTVQ1X0ZNVF80MjJfQ09OVFJPTF9fRk1UX0xFRlRfRURHRV9FWFRSQV9QSVhFTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRk1UNV9GTVRfNDIyX0NPTlRST0xfX0ZNVF9MRUZUX0VER0VfRVhUUkFfUElYRUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfZHBnNV9kaXNwZGVjCisvL0RQRzVfRFBHX0NPTlRST0wKKyNkZWZpbmUgRFBHNV9EUEdfQ09OVFJPTF9fRFBHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzVfRFBHX0NPTlRST0xfX0RQR19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUEc1X0RQR19DT05UUk9MX19EUEdfRFlOQU1JQ19SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBHNV9EUEdfQ09OVFJPTF9fRFBHX0JJVF9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQRzVfRFBHX0NPTlRST0xfX0RQR19WUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHNV9EUEdfQ09OVFJPTF9fRFBHX0hSRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUEc1X0RQR19DT05UUk9MX19EUEdfRklFTERfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQRzVfRFBHX0NPTlRST0xfX0RQR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQRzVfRFBHX0NPTlRST0xfX0RQR19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQRzVfRFBHX0NPTlRST0xfX0RQR19EWU5BTUlDX1JBTkdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQRzVfRFBHX0NPTlRST0xfX0RQR19CSVRfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERQRzVfRFBHX0NPTlRST0xfX0RQR19WUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERQRzVfRFBHX0NPTlRST0xfX0RQR19IUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERQRzVfRFBHX0NPTlRST0xfX0RQR19GSUVMRF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RQRzVfRFBHX1JBTVBfQ09OVFJPTAorI2RlZmluZSBEUEc1X0RQR19SQU1QX0NPTlRST0xfX0RQR19SQU1QMF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHNV9EUEdfUkFNUF9DT05UUk9MX19EUEdfSU5DMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUEc1X0RQR19SQU1QX0NPTlRST0xfX0RQR19JTkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQRzVfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX1JBTVAwX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQRzVfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX0lOQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERQRzVfRFBHX1JBTVBfQ09OVFJPTF9fRFBHX0lOQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RQRzVfRFBHX0RJTUVOU0lPTlMKKyNkZWZpbmUgRFBHNV9EUEdfRElNRU5TSU9OU19fRFBHX0FDVElWRV9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzVfRFBHX0RJTUVOU0lPTlNfX0RQR19BQ1RJVkVfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHNV9EUEdfRElNRU5TSU9OU19fRFBHX0FDVElWRV9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgRFBHNV9EUEdfRElNRU5TSU9OU19fRFBHX0FDVElWRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGMDAwMEwKKy8vRFBHNV9EUEdfQ09MT1VSX1JfQ1IKKyNkZWZpbmUgRFBHNV9EUEdfQ09MT1VSX1JfQ1JfX0RQR19DT0xPVVIwX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzVfRFBHX0NPTE9VUl9SX0NSX19EUEdfQ09MT1VSMV9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBHNV9EUEdfQ09MT1VSX1JfQ1JfX0RQR19DT0xPVVIwX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFBHNV9EUEdfQ09MT1VSX1JfQ1JfX0RQR19DT0xPVVIxX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFBHNV9EUEdfQ09MT1VSX0dfWQorI2RlZmluZSBEUEc1X0RQR19DT0xPVVJfR19ZX19EUEdfQ09MT1VSMF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHNV9EUEdfQ09MT1VSX0dfWV9fRFBHX0NPTE9VUjFfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEc1X0RQR19DT0xPVVJfR19ZX19EUEdfQ09MT1VSMF9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUEc1X0RQR19DT0xPVVJfR19ZX19EUEdfQ09MT1VSMV9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUEc1X0RQR19DT0xPVVJfQl9DQgorI2RlZmluZSBEUEc1X0RQR19DT0xPVVJfQl9DQl9fRFBHX0NPTE9VUjBfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHNV9EUEdfQ09MT1VSX0JfQ0JfX0RQR19DT0xPVVIxX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEc1X0RQR19DT0xPVVJfQl9DQl9fRFBHX0NPTE9VUjBfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUEc1X0RQR19DT0xPVVJfQl9DQl9fRFBHX0NPTE9VUjFfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUEc1X0RQR19PRkZTRVRfU0VHTUVOVAorI2RlZmluZSBEUEc1X0RQR19PRkZTRVRfU0VHTUVOVF9fRFBHX1hfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBHNV9EUEdfT0ZGU0VUX1NFR01FTlRfX0RQR19TRUdNRU5UX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUEc1X0RQR19PRkZTRVRfU0VHTUVOVF9fRFBHX1hfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEUEc1X0RQR19PRkZTRVRfU0VHTUVOVF9fRFBHX1NFR01FTlRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYwMDAwTAorLy9EUEc1X0RQR19TVEFUVVMKKyNkZWZpbmUgRFBHNV9EUEdfU1RBVFVTX19EUEdfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQRzVfRFBHX1NUQVRVU19fRFBHX0RPVUJMRV9CVUZGRVJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3BwX29wcGJ1ZjVfZGlzcGRlYworLy9PUFBCVUY1X09QUEJVRl9DT05UUk9MCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9BQ1RJVkVfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBCVUY1X09QUEJVRl9DT05UUk9MX19PUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9PVkVSTEFQX1BJWEVMX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1BQQlVGNV9PUFBCVUZfQ09OVFJPTF9fT1BQQlVGX1BJWEVMX1JFUEVUSVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPUFBCVUY1X09QUEJVRl9DT05UUk9MX19PUFBCVUZfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9BQ1RJVkVfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9ESVNQTEFZX1NFR01FTlRBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9PVkVSTEFQX1BJWEVMX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9QSVhFTF9SRVBFVElUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGX0NPTlRST0xfX09QUEJVRl9ET1VCTEVfQlVGRkVSX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL09QUEJVRjVfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMAorI2RlZmluZSBPUFBCVUY1X09QUEJVRl8zRF9QQVJBTUVURVJTXzBfX09QUEJVRl8zRF9WQUNUX1NQQUNFMV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQQlVGNV9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfM0RfVkFDVF9TUEFDRTJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMF9fT1BQQlVGX0RVTU1ZX0RBVEFfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1BQQlVGNV9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfM0RfVkFDVF9TUEFDRTFfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgT1BQQlVGNV9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfM0RfVkFDVF9TUEFDRTJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgT1BQQlVGNV9PUFBCVUZfM0RfUEFSQU1FVEVSU18wX19PUFBCVUZfRFVNTVlfREFUQV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vT1BQQlVGNV9PUFBCVUZfM0RfUEFSQU1FVEVSU18xCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9fT1BQQlVGX0RVTU1ZX0RBVEFfR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBCVUY1X09QUEJVRl8zRF9QQVJBTUVURVJTXzFfX09QUEJVRl9EVU1NWV9EQVRBX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9fT1BQQlVGX0RVTU1ZX0RBVEFfR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGXzNEX1BBUkFNRVRFUlNfMV9fT1BQQlVGX0RVTU1ZX0RBVEFfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL09QUEJVRjVfT1BQQlVGX0NPTlRST0wxCisjZGVmaW5lIE9QUEJVRjVfT1BQQlVGX0NPTlRST0wxX19PUFBCVUZfTlVNX1NFR01FTlRfUEFEREVEX1BJWEVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBCVUY1X09QUEJVRl9DT05UUk9MMV9fT1BQQlVGX05VTV9TRUdNRU5UX1BBRERFRF9QSVhFTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfcGlwZTVfZGlzcGRlYworLy9PUFBfUElQRTVfT1BQX1BJUEVfQ09OVFJPTAorI2RlZmluZSBPUFBfUElQRTVfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfQ0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEU1X09QUF9QSVBFX0NPTlRST0xfX09QUF9QSVBFX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9QUF9QSVBFNV9PUFBfUElQRV9DT05UUk9MX19PUFBfUElQRV9ESUdJVEFMX0JZUEFTU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPUFBfUElQRTVfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfQ0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPUFBfUElQRTVfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPUFBfUElQRTVfT1BQX1BJUEVfQ09OVFJPTF9fT1BQX1BJUEVfRElHSVRBTF9CWVBBU1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfcGlwZV9jcmM1X2Rpc3BkZWMKKy8vT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfQ09OVFJPTAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0NPTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TVEVSRU9fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU1RFUkVPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX0lOVEVSTEFDRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19JTlRFUkxBQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfUElYRUxfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX0NPTlRST0xfX09QUF9QSVBFX0NSQ19TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfQ09OVFJPTF9fT1BQX1BJUEVfQ1JDX09ORV9TSE9UX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU1RFUkVPX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfSU5URVJMQUNFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfSU5URVJMQUNFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfUElYRUxfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19DT05UUk9MX19PUFBfUElQRV9DUkNfT05FX1NIT1RfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9PUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19NQVNLCisjZGVmaW5lIE9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX01BU0tfX09QUF9QSVBFX0NSQ19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19NQVNLX19PUFBfUElQRV9DUkNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9PUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19SRVNVTFQwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfX09QUF9QSVBFX0NSQ19SRVNVTFRfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19SRVNVTFQwX19PUFBfUElQRV9DUkNfUkVTVUxUX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfX09QUF9QSVBFX0NSQ19SRVNVTFRfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX1JFU1VMVDBfX09QUF9QSVBFX0NSQ19SRVNVTFRfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX1JFU1VMVDEKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfUkVTVUxUMV9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9QSVBFX0NSQzVfT1BQX1BJUEVfQ1JDX1JFU1VMVDFfX09QUF9QSVBFX0NSQ19SRVNVTFRfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfUkVTVUxUMV9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfUkVTVUxUMV9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfUkVTVUxUMgorI2RlZmluZSBPUFBfUElQRV9DUkM1X09QUF9QSVBFX0NSQ19SRVNVTFQyX19PUFBfUElQRV9DUkNfUkVTVUxUX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1BQX1BJUEVfQ1JDNV9PUFBfUElQRV9DUkNfUkVTVUxUMl9fT1BQX1BJUEVfQ1JDX1JFU1VMVF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHBfb3BwX3RvcF9kaXNwZGVjCisvL09QUF9UT1BfQ0xLX0NPTlRST0wKKyNkZWZpbmUgT1BQX1RPUF9DTEtfQ09OVFJPTF9fT1BQX0RJU1BDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QUF9UT1BfQ0xLX0NPTlRST0xfX09QUF9ESVNQQ0xLX0dfQUJNX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPUFBfVE9QX0NMS19DT05UUk9MX19PUFBfVEVTVF9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1BQX1RPUF9DTEtfQ09OVFJPTF9fT1BQX0FCTTBfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9QUF9UT1BfQ0xLX0NPTlRST0xfX09QUF9BQk0xX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPUFBfVE9QX0NMS19DT05UUk9MX19PUFBfRElTUENMS19SX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPUFBfVE9QX0NMS19DT05UUk9MX19PUFBfRElTUENMS19HX0FCTV9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPUFBfVE9QX0NMS19DT05UUk9MX19PUFBfVEVTVF9DTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBPUFBfVE9QX0NMS19DT05UUk9MX19PUFBfQUJNMF9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPUFBfVE9QX0NMS19DT05UUk9MX19PUFBfQUJNMV9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kc2NybTBfZGlzcGRlYworLy9EU0NSTTBfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHCisjZGVmaW5lIERTQ1JNMF9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NSTTBfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDUk0wX0RTQ1JNX0RTQ19GT1JXQVJEX0NPTkZJR19fRFNDUk1fRFNDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ1JNMF9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NSTTBfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NSTTBfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEU0NSTTBfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NSTTBfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kc2NybTFfZGlzcGRlYworLy9EU0NSTTFfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHCisjZGVmaW5lIERTQ1JNMV9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NSTTFfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDUk0xX0RTQ1JNX0RTQ19GT1JXQVJEX0NPTkZJR19fRFNDUk1fRFNDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ1JNMV9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NSTTFfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NSTTFfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEU0NSTTFfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NSTTFfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kc2NybTJfZGlzcGRlYworLy9EU0NSTTJfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHCisjZGVmaW5lIERTQ1JNMl9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NSTTJfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDUk0yX0RTQ1JNX0RTQ19GT1JXQVJEX0NPTkZJR19fRFNDUk1fRFNDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ1JNMl9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NSTTJfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NSTTJfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEU0NSTTJfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NSTTJfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kc2NybTNfZGlzcGRlYworLy9EU0NSTTNfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHCisjZGVmaW5lIERTQ1JNM19EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NSTTNfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDUk0zX0RTQ1JNX0RTQ19GT1JXQVJEX0NPTkZJR19fRFNDUk1fRFNDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ1JNM19EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NSTTNfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NSTTNfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEU0NSTTNfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NSTTNfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kc2NybTRfZGlzcGRlYworLy9EU0NSTTRfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHCisjZGVmaW5lIERTQ1JNNF9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NSTTRfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDUk00X0RTQ1JNX0RTQ19GT1JXQVJEX0NPTkZJR19fRFNDUk1fRFNDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ1JNNF9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NSTTRfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NSTTRfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEU0NSTTRfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NSTTRfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9kc2NybTVfZGlzcGRlYworLy9EU0NSTTVfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHCisjZGVmaW5lIERTQ1JNNV9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NSTTVfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDUk01X0RTQ1JNX0RTQ19GT1JXQVJEX0NPTkZJR19fRFNDUk1fRFNDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ1JNNV9EU0NSTV9EU0NfRk9SV0FSRF9DT05GSUdfX0RTQ1JNX0RTQ19GT1JXQVJEX0VOX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NSTTVfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NSTTVfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfT1BQX1BJUEVfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEU0NSTTVfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NSTTVfRFNDUk1fRFNDX0ZPUldBUkRfQ09ORklHX19EU0NSTV9EU0NfRk9SV0FSRF9FTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wcF9vcHBfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy9EQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX1NUQVRFCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RDX1BFUkZNT04xNl9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX1BFUkZNT04xNl9QRVJGTU9OX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGQzAwTAorLy9EQ19QRVJGTU9OMTZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0xPVworI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfUEVSRk1PTjE2X1BFUkZNT05fSEkKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fSElfX1BFUkZNT05fSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fSElfX1BFUkZNT05fSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjE2X1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjE2X1BFUkZNT05fTE9XCisjZGVmaW5lIERDX1BFUkZNT04xNl9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTZfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb2RtMF9kaXNwZGVjCisvL09ETTBfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTAorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfSU5QVVRfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNMF9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9ETTBfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX09DQ1VSUkVEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT0RNMF9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9ETTBfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX09DQ1VSUkVEX0NVUlJFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT0RNMF9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX0RPVUJMRV9CVUZGRVJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfSU5QVVRfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX09DQ1VSUkVEX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX09DQ1VSUkVEX0NVUlJFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PRE0wX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUCisjZGVmaW5lIE9ETTBfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfTlVNX09GX0lOUFVUX1NFR01FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0wX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX05VTV9PRl9PVVRQVVRfU0VHTUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT0RNMF9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19TRUcwX1NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9ETTBfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfU0VHMV9TUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPRE0wX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX05VTV9PRl9JTlBVVF9TRUdNRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPRE0wX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX05VTV9PRl9PVVRQVVRfU0VHTUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBPRE0wX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX1NFRzBfU1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBPRE0wX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX1NFRzFfU1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorLy9PRE0wX09QVENfREFUQV9GT1JNQVRfQ09OVFJPTAorI2RlZmluZSBPRE0wX09QVENfREFUQV9GT1JNQVRfQ09OVFJPTF9fT1BUQ19EQVRBX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNMF9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfX09QVENfRFNDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9ETTBfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MX19PUFRDX0RBVEFfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9ETTBfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MX19PUFRDX0RTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisvL09ETTBfT1BUQ19CWVRFU19QRVJfUElYRUwKKyNkZWZpbmUgT0RNMF9PUFRDX0JZVEVTX1BFUl9QSVhFTF9fT1BUQ19EU0NfQllURVNfUEVSX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTBfT1BUQ19CWVRFU19QRVJfUElYRUxfX09QVENfRFNDX0JZVEVTX1BFUl9QSVhFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL09ETTBfT1BUQ19XSURUSF9DT05UUk9MCisjZGVmaW5lIE9ETTBfT1BUQ19XSURUSF9DT05UUk9MX19PUFRDX1NFR01FTlRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0wX09QVENfV0lEVEhfQ09OVFJPTF9fT1BUQ19EU0NfU0xJQ0VfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9ETTBfT1BUQ19XSURUSF9DT05UUk9MX19PUFRDX1NFR01FTlRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIE9ETTBfT1BUQ19XSURUSF9DT05UUk9MX19PUFRDX0RTQ19TTElDRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL09ETTBfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MCisjZGVmaW5lIE9ETTBfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0wX09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT0RNMF9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9ETTBfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9ETTBfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9ETTBfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL09ETTBfT1BUQ19NRU1PUllfQ09ORklHCisjZGVmaW5lIE9ETTBfT1BUQ19NRU1PUllfQ09ORklHX19PUFRDX01FTV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0wX09QVENfTUVNT1JZX0NPTkZJR19fT1BUQ19NRU1fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9PRE0wX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVIKKyNkZWZpbmUgT0RNMF9PUFRDX0lOUFVUX1NQQVJFX1JFR0lTVEVSX19PUFRDX0lOUFVUX1NQQVJFX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTBfT1BUQ19JTlBVVF9TUEFSRV9SRUdJU1RFUl9fT1BUQ19JTlBVVF9TUEFSRV9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vZG0xX2Rpc3BkZWMKKy8vT0RNMV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19JTlBVVF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0xX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT0RNMV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfT0NDVVJSRURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPRE0xX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT0RNMV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfT0NDVVJSRURfQ1VSUkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPRE0xX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19JTlBVVF9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfT0NDVVJSRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfT0NDVVJSRURfQ1VSUkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19ET1VCTEVfQlVGRkVSX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09ETTFfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1QKKyNkZWZpbmUgT0RNMV9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19OVU1fT0ZfSU5QVVRfU0VHTUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTFfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfTlVNX09GX09VVFBVVF9TRUdNRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPRE0xX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX1NFRzBfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT0RNMV9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19TRUcxX1NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9ETTFfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfTlVNX09GX0lOUFVUX1NFR01FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9ETTFfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfTlVNX09GX09VVFBVVF9TRUdNRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE9ETTFfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfU0VHMF9TUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE9ETTFfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfU0VHMV9TUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisvL09ETTFfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MCisjZGVmaW5lIE9ETTFfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MX19PUFRDX0RBVEFfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0xX09QVENfREFUQV9GT1JNQVRfQ09OVFJPTF9fT1BUQ19EU0NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT0RNMV9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfX09QVENfREFUQV9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT0RNMV9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfX09QVENfRFNDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vT0RNMV9PUFRDX0JZVEVTX1BFUl9QSVhFTAorI2RlZmluZSBPRE0xX09QVENfQllURVNfUEVSX1BJWEVMX19PUFRDX0RTQ19CWVRFU19QRVJfUElYRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNMV9PUFRDX0JZVEVTX1BFUl9QSVhFTF9fT1BUQ19EU0NfQllURVNfUEVSX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vT0RNMV9PUFRDX1dJRFRIX0NPTlRST0wKKyNkZWZpbmUgT0RNMV9PUFRDX1dJRFRIX0NPTlRST0xfX09QVENfU0VHTUVOVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTFfT1BUQ19XSURUSF9DT05UUk9MX19PUFRDX0RTQ19TTElDRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT0RNMV9PUFRDX1dJRFRIX0NPTlRST0xfX09QVENfU0VHTUVOVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgT0RNMV9PUFRDX1dJRFRIX0NPTlRST0xfX09QVENfRFNDX1NMSUNFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vT0RNMV9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0wKKyNkZWZpbmUgT0RNMV9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTFfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPRE0xX09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT0RNMV9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT0RNMV9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT0RNMV9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vT0RNMV9PUFRDX01FTU9SWV9DT05GSUcKKyNkZWZpbmUgT0RNMV9PUFRDX01FTU9SWV9DT05GSUdfX09QVENfTUVNX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTFfT1BUQ19NRU1PUllfQ09ORklHX19PUFRDX01FTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL09ETTFfT1BUQ19JTlBVVF9TUEFSRV9SRUdJU1RFUgorI2RlZmluZSBPRE0xX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVJfX09QVENfSU5QVVRfU1BBUkVfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNMV9PUFRDX0lOUFVUX1NQQVJFX1JFR0lTVEVSX19PUFRDX0lOUFVUX1NQQVJFX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHRjX29kbTJfZGlzcGRlYworLy9PRE0yX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0wKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX0lOUFVUX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTJfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPRE0yX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19PQ0NVUlJFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9ETTJfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPRE0yX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19PQ0NVUlJFRF9DVVJSRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9ETTJfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19ET1VCTEVfQlVGRkVSX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX0lOUFVUX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19PQ0NVUlJFRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19PQ0NVUlJFRF9DVVJSRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX0RPVUJMRV9CVUZGRVJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT0RNMl9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVAorI2RlZmluZSBPRE0yX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX05VTV9PRl9JTlBVVF9TRUdNRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNMl9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19OVU1fT0ZfT1VUUFVUX1NFR01FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9ETTJfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfU0VHMF9TUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPRE0yX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX1NFRzFfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT0RNMl9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19OVU1fT0ZfSU5QVVRfU0VHTUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT0RNMl9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19OVU1fT0ZfT1VUUFVUX1NFR01FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgT0RNMl9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19TRUcwX1NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgT0RNMl9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19TRUcxX1NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKy8vT0RNMl9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0wKKyNkZWZpbmUgT0RNMl9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfX09QVENfREFUQV9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTJfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MX19PUFRDX0RTQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPRE0yX09QVENfREFUQV9GT1JNQVRfQ09OVFJPTF9fT1BUQ19EQVRBX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPRE0yX09QVENfREFUQV9GT1JNQVRfQ09OVFJPTF9fT1BUQ19EU0NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9PRE0yX09QVENfQllURVNfUEVSX1BJWEVMCisjZGVmaW5lIE9ETTJfT1BUQ19CWVRFU19QRVJfUElYRUxfX09QVENfRFNDX0JZVEVTX1BFUl9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0yX09QVENfQllURVNfUEVSX1BJWEVMX19PUFRDX0RTQ19CWVRFU19QRVJfUElYRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9PRE0yX09QVENfV0lEVEhfQ09OVFJPTAorI2RlZmluZSBPRE0yX09QVENfV0lEVEhfQ09OVFJPTF9fT1BUQ19TRUdNRU5UX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNMl9PUFRDX1dJRFRIX0NPTlRST0xfX09QVENfRFNDX1NMSUNFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPRE0yX09QVENfV0lEVEhfQ09OVFJPTF9fT1BUQ19TRUdNRU5UX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBPRE0yX09QVENfV0lEVEhfQ09OVFJPTF9fT1BUQ19EU0NfU0xJQ0VfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9PRE0yX09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTAorI2RlZmluZSBPRE0yX09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNMl9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9ETTJfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPRE0yX09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPRE0yX09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPRE0yX09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9PRE0yX09QVENfTUVNT1JZX0NPTkZJRworI2RlZmluZSBPRE0yX09QVENfTUVNT1JZX0NPTkZJR19fT1BUQ19NRU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNMl9PUFRDX01FTU9SWV9DT05GSUdfX09QVENfTUVNX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vT0RNMl9PUFRDX0lOUFVUX1NQQVJFX1JFR0lTVEVSCisjZGVmaW5lIE9ETTJfT1BUQ19JTlBVVF9TUEFSRV9SRUdJU1RFUl9fT1BUQ19JTlBVVF9TUEFSRV9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0yX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVJfX09QVENfSU5QVVRfU1BBUkVfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb2RtM19kaXNwZGVjCisvL09ETTNfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTAorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfSU5QVVRfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNM19PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9ETTNfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX09DQ1VSUkVEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT0RNM19PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9ETTNfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX09DQ1VSUkVEX0NVUlJFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT0RNM19PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX0RPVUJMRV9CVUZGRVJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfSU5QVVRfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX09DQ1VSUkVEX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX09DQ1VSUkVEX0NVUlJFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PRE0zX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUCisjZGVmaW5lIE9ETTNfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfTlVNX09GX0lOUFVUX1NFR01FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0zX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX05VTV9PRl9PVVRQVVRfU0VHTUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT0RNM19PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19TRUcwX1NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9ETTNfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfU0VHMV9TUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPRE0zX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX05VTV9PRl9JTlBVVF9TRUdNRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPRE0zX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX05VTV9PRl9PVVRQVVRfU0VHTUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBPRE0zX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX1NFRzBfU1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBPRE0zX09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX1NFRzFfU1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorLy9PRE0zX09QVENfREFUQV9GT1JNQVRfQ09OVFJPTAorI2RlZmluZSBPRE0zX09QVENfREFUQV9GT1JNQVRfQ09OVFJPTF9fT1BUQ19EQVRBX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNM19PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfX09QVENfRFNDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9ETTNfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MX19PUFRDX0RBVEFfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9ETTNfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MX19PUFRDX0RTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisvL09ETTNfT1BUQ19CWVRFU19QRVJfUElYRUwKKyNkZWZpbmUgT0RNM19PUFRDX0JZVEVTX1BFUl9QSVhFTF9fT1BUQ19EU0NfQllURVNfUEVSX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTNfT1BUQ19CWVRFU19QRVJfUElYRUxfX09QVENfRFNDX0JZVEVTX1BFUl9QSVhFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL09ETTNfT1BUQ19XSURUSF9DT05UUk9MCisjZGVmaW5lIE9ETTNfT1BUQ19XSURUSF9DT05UUk9MX19PUFRDX1NFR01FTlRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0zX09QVENfV0lEVEhfQ09OVFJPTF9fT1BUQ19EU0NfU0xJQ0VfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9ETTNfT1BUQ19XSURUSF9DT05UUk9MX19PUFRDX1NFR01FTlRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIE9ETTNfT1BUQ19XSURUSF9DT05UUk9MX19PUFRDX0RTQ19TTElDRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL09ETTNfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MCisjZGVmaW5lIE9ETTNfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0zX09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT0RNM19PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9ETTNfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9ETTNfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9ETTNfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL09ETTNfT1BUQ19NRU1PUllfQ09ORklHCisjZGVmaW5lIE9ETTNfT1BUQ19NRU1PUllfQ09ORklHX19PUFRDX01FTV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE0zX09QVENfTUVNT1JZX0NPTkZJR19fT1BUQ19NRU1fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9PRE0zX09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVIKKyNkZWZpbmUgT0RNM19PUFRDX0lOUFVUX1NQQVJFX1JFR0lTVEVSX19PUFRDX0lOUFVUX1NQQVJFX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTNfT1BUQ19JTlBVVF9TUEFSRV9SRUdJU1RFUl9fT1BUQ19JTlBVVF9TUEFSRV9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vZG00X2Rpc3BkZWMKKy8vT0RNNF9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19JTlBVVF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE00X09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT0RNNF9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfT0NDVVJSRURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPRE00X09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT0RNNF9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfT0NDVVJSRURfQ1VSUkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPRE00X09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfRE9VQkxFX0JVRkZFUl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19JTlBVVF9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfT0NDVVJSRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfT0NDVVJSRURfQ1VSUkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19ET1VCTEVfQlVGRkVSX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09ETTRfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1QKKyNkZWZpbmUgT0RNNF9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19OVU1fT0ZfSU5QVVRfU0VHTUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTRfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfTlVNX09GX09VVFBVVF9TRUdNRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPRE00X09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX1NFRzBfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT0RNNF9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19TRUcxX1NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9ETTRfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfTlVNX09GX0lOUFVUX1NFR01FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9ETTRfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfTlVNX09GX09VVFBVVF9TRUdNRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE9ETTRfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfU0VHMF9TUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE9ETTRfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfU0VHMV9TUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisvL09ETTRfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MCisjZGVmaW5lIE9ETTRfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MX19PUFRDX0RBVEFfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE00X09QVENfREFUQV9GT1JNQVRfQ09OVFJPTF9fT1BUQ19EU0NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT0RNNF9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfX09QVENfREFUQV9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT0RNNF9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfX09QVENfRFNDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vT0RNNF9PUFRDX0JZVEVTX1BFUl9QSVhFTAorI2RlZmluZSBPRE00X09QVENfQllURVNfUEVSX1BJWEVMX19PUFRDX0RTQ19CWVRFU19QRVJfUElYRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNNF9PUFRDX0JZVEVTX1BFUl9QSVhFTF9fT1BUQ19EU0NfQllURVNfUEVSX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vT0RNNF9PUFRDX1dJRFRIX0NPTlRST0wKKyNkZWZpbmUgT0RNNF9PUFRDX1dJRFRIX0NPTlRST0xfX09QVENfU0VHTUVOVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTRfT1BUQ19XSURUSF9DT05UUk9MX19PUFRDX0RTQ19TTElDRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT0RNNF9PUFRDX1dJRFRIX0NPTlRST0xfX09QVENfU0VHTUVOVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgT0RNNF9PUFRDX1dJRFRIX0NPTlRST0xfX09QVENfRFNDX1NMSUNFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vT0RNNF9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0wKKyNkZWZpbmUgT0RNNF9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTRfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPRE00X09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT0RNNF9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT0RNNF9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT0RNNF9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vT0RNNF9PUFRDX01FTU9SWV9DT05GSUcKKyNkZWZpbmUgT0RNNF9PUFRDX01FTU9SWV9DT05GSUdfX09QVENfTUVNX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTRfT1BUQ19NRU1PUllfQ09ORklHX19PUFRDX01FTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL09ETTRfT1BUQ19JTlBVVF9TUEFSRV9SRUdJU1RFUgorI2RlZmluZSBPRE00X09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVJfX09QVENfSU5QVVRfU1BBUkVfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNNF9PUFRDX0lOUFVUX1NQQVJFX1JFR0lTVEVSX19PUFRDX0lOUFVUX1NQQVJFX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHRjX29kbTVfZGlzcGRlYworLy9PRE01X09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0wKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX0lOUFVUX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTVfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPRE01X09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19PQ0NVUlJFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9ETTVfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19VTkRFUkZMT1dfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPRE01X09QVENfSU5QVVRfR0xPQkFMX0NPTlRST0xfX09QVENfVU5ERVJGTE9XX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19PQ0NVUlJFRF9DVVJSRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9ETTVfT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTF9fT1BUQ19ET1VCTEVfQlVGRkVSX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX0lOUFVUX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19PQ0NVUlJFRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX1VOREVSRkxPV19PQ0NVUlJFRF9DVVJSRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0dMT0JBTF9DT05UUk9MX19PUFRDX0RPVUJMRV9CVUZGRVJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT0RNNV9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVAorI2RlZmluZSBPRE01X09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX05VTV9PRl9JTlBVVF9TRUdNRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNNV9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19OVU1fT0ZfT1VUUFVUX1NFR01FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9ETTVfT1BUQ19EQVRBX1NPVVJDRV9TRUxFQ1RfX09QVENfU0VHMF9TUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPRE01X09QVENfREFUQV9TT1VSQ0VfU0VMRUNUX19PUFRDX1NFRzFfU1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT0RNNV9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19OVU1fT0ZfSU5QVVRfU0VHTUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT0RNNV9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19OVU1fT0ZfT1VUUFVUX1NFR01FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgT0RNNV9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19TRUcwX1NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgT0RNNV9PUFRDX0RBVEFfU09VUkNFX1NFTEVDVF9fT1BUQ19TRUcxX1NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKy8vT0RNNV9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0wKKyNkZWZpbmUgT0RNNV9PUFRDX0RBVEFfRk9STUFUX0NPTlRST0xfX09QVENfREFUQV9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9ETTVfT1BUQ19EQVRBX0ZPUk1BVF9DT05UUk9MX19PUFRDX0RTQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPRE01X09QVENfREFUQV9GT1JNQVRfQ09OVFJPTF9fT1BUQ19EQVRBX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPRE01X09QVENfREFUQV9GT1JNQVRfQ09OVFJPTF9fT1BUQ19EU0NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9PRE01X09QVENfQllURVNfUEVSX1BJWEVMCisjZGVmaW5lIE9ETTVfT1BUQ19CWVRFU19QRVJfUElYRUxfX09QVENfRFNDX0JZVEVTX1BFUl9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE01X09QVENfQllURVNfUEVSX1BJWEVMX19PUFRDX0RTQ19CWVRFU19QRVJfUElYRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9PRE01X09QVENfV0lEVEhfQ09OVFJPTAorI2RlZmluZSBPRE01X09QVENfV0lEVEhfQ09OVFJPTF9fT1BUQ19TRUdNRU5UX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNNV9PUFRDX1dJRFRIX0NPTlRST0xfX09QVENfRFNDX1NMSUNFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPRE01X09QVENfV0lEVEhfQ09OVFJPTF9fT1BUQ19TRUdNRU5UX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBPRE01X09QVENfV0lEVEhfQ09OVFJPTF9fT1BUQ19EU0NfU0xJQ0VfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9PRE01X09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTAorI2RlZmluZSBPRE01X09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNNV9PUFRDX0lOUFVUX0NMT0NLX0NPTlRST0xfX09QVENfSU5QVVRfQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9ETTVfT1BUQ19JTlBVVF9DTE9DS19DT05UUk9MX19PUFRDX0lOUFVUX0NMS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPRE01X09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPRE01X09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPRE01X09QVENfSU5QVVRfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19JTlBVVF9DTEtfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9PRE01X09QVENfTUVNT1JZX0NPTkZJRworI2RlZmluZSBPRE01X09QVENfTUVNT1JZX0NPTkZJR19fT1BUQ19NRU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNNV9PUFRDX01FTU9SWV9DT05GSUdfX09QVENfTUVNX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vT0RNNV9PUFRDX0lOUFVUX1NQQVJFX1JFR0lTVEVSCisjZGVmaW5lIE9ETTVfT1BUQ19JTlBVVF9TUEFSRV9SRUdJU1RFUl9fT1BUQ19JTlBVVF9TUEFSRV9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE01X09QVENfSU5QVVRfU1BBUkVfUkVHSVNURVJfX09QVENfSU5QVVRfU1BBUkVfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb3RnMF9kaXNwZGVjCisvL09URzBfT1RHX0hfVE9UQUwKKyNkZWZpbmUgT1RHMF9PVEdfSF9UT1RBTF9fT1RHX0hfVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0hfVE9UQUxfX09UR19IX1RPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzBfT1RHX0hfQkxBTktfU1RBUlRfRU5ECisjZGVmaW5lIE9URzBfT1RHX0hfQkxBTktfU1RBUlRfRU5EX19PVEdfSF9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19IX0JMQU5LX1NUQVJUX0VORF9fT1RHX0hfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0hfQkxBTktfU1RBUlRfRU5EX19PVEdfSF9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzBfT1RHX0hfQkxBTktfU1RBUlRfRU5EX19PVEdfSF9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzBfT1RHX0hfU1lOQ19BCisjZGVmaW5lIE9URzBfT1RHX0hfU1lOQ19BX19PVEdfSF9TWU5DX0FfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19IX1NZTkNfQV9fT1RHX0hfU1lOQ19BX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0hfU1lOQ19BX19PVEdfSF9TWU5DX0FfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzBfT1RHX0hfU1lOQ19BX19PVEdfSF9TWU5DX0FfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzBfT1RHX0hfU1lOQ19BX0NOVEwKKyNkZWZpbmUgT1RHMF9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0hfU1lOQ19BX1BPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0hfU1lOQ19BX0NOVExfX09UR19DT01QX1NZTkNfQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0hfU1lOQ19BX0NVVE9GRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEcwX09UR19IX1NZTkNfQV9DTlRMX19PVEdfSF9TWU5DX0FfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19IX1NZTkNfQV9DTlRMX19PVEdfQ09NUF9TWU5DX0FfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcwX09UR19IX1NZTkNfQV9DTlRMX19PVEdfSF9TWU5DX0FfQ1VUT0ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9PVEcwX09UR19IX1RJTUlOR19DTlRMCisjZGVmaW5lIE9URzBfT1RHX0hfVElNSU5HX0NOVExfX09UR19IX1RJTUlOR19ESVZfQlkyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19IX1RJTUlOR19DTlRMX19PVEdfSF9USU1JTkdfRElWX0JZMl9VUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfSF9USU1JTkdfQ05UTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMF9PVEdfSF9USU1JTkdfQ05UTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfVVBEQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vT1RHMF9PVEdfVl9UT1RBTAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX19PVEdfVl9UT1RBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfVl9UT1RBTF9fT1RHX1ZfVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHMF9PVEdfVl9UT1RBTF9NSU4KKyNkZWZpbmUgT1RHMF9PVEdfVl9UT1RBTF9NSU5fX09UR19WX1RPVEFMX01JTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfTUlOX19PVEdfVl9UT1RBTF9NSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzBfT1RHX1ZfVE9UQUxfTUFYCisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfTUFYX19PVEdfVl9UT1RBTF9NQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX01BWF9fT1RHX1ZfVE9UQUxfTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEcwX09UR19WX1RPVEFMX01JRAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX01JRF9fT1RHX1ZfVE9UQUxfTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfVl9UT1RBTF9NSURfX09UR19WX1RPVEFMX01JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHMF9PVEdfVl9UT1RBTF9DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTUlOX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WX1RPVEFMX01BWF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9SRVBMQUNJTkdfTUFYX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfUkVQTEFDSU5HX01JTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19GT1JDRV9MT0NLX09OX0VWRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfRFJSX0VWRU5UX0FDVElWRV9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1NFVF9WX1RPVEFMX01JTl9NQVNLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX0ZSQU1FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WX1RPVEFMX01JTl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WX1RPVEFMX01BWF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NQVhfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NSU5fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19GT1JDRV9MT0NLX09OX0VWRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19EUlJfRVZFTlRfQUNUSVZFX1BFUklPRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19TRVRfVl9UT1RBTF9NSU5fTUFTS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX0ZSQU1FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19TRVRfVl9UT1RBTF9NSU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcwX09UR19WX1RPVEFMX0lOVF9TVEFUVVMKKyNkZWZpbmUgT1RHMF9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcwX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL09URzBfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTCisjZGVmaW5lIE9URzBfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX19PVEdfVlNZTkNfTk9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19fT1RHX1ZTWU5DX05PTV9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMF9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfX09UR19WU1lOQ19OT01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMF9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfX09UR19WU1lOQ19OT01fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vT1RHMF9PVEdfVl9CTEFOS19TVEFSVF9FTkQKKyNkZWZpbmUgT1RHMF9PVEdfVl9CTEFOS19TVEFSVF9FTkRfX09UR19WX0JMQU5LX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX19PVEdfVl9CTEFOS19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfVl9CTEFOS19TVEFSVF9FTkRfX09UR19WX0JMQU5LX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfVl9CTEFOS19TVEFSVF9FTkRfX09UR19WX0JMQU5LX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMF9PVEdfVl9TWU5DX0EKKyNkZWZpbmUgT1RHMF9PVEdfVl9TWU5DX0FfX09UR19WX1NZTkNfQV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1ZfU1lOQ19BX19PVEdfVl9TWU5DX0FfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfVl9TWU5DX0FfX09UR19WX1NZTkNfQV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfVl9TWU5DX0FfX09UR19WX1NZTkNfQV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMF9PVEdfVl9TWU5DX0FfQ05UTAorI2RlZmluZSBPVEcwX09UR19WX1NZTkNfQV9DTlRMX19PVEdfVl9TWU5DX0FfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfVl9TWU5DX0FfQ05UTF9fT1RHX1ZfU1lOQ19BX1BPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMF9PVEdfVFJJR0FfQ05UTAorI2RlZmluZSBPVEcwX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1NPVVJDRV9QSVBFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9QT0xBUklUWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUkVTWU5DX0JZUEFTU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0lOUFVUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9QT0xBUklUWV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEcwX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1JJU0lOR19FREdFX0RFVEVDVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfRkFMTElOR19FREdFX0RFVEVDVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9GUkVRVUVOQ1lfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcwX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9TT1VSQ0VfUElQRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9QT0xBUklUWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9SRVNZTkNfQllQQVNTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9JTlBVVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9QT0xBUklUWV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9SSVNJTkdfRURHRV9ERVRFQ1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9GQUxMSU5HX0VER0VfREVURUNUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9GUkVRVUVOQ1lfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzBfT1RHX1RSSUdBX01BTlVBTF9UUklHCisjZGVmaW5lIE9URzBfT1RHX1RSSUdBX01BTlVBTF9UUklHX19PVEdfVFJJR0FfTUFOVUFMX1RSSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19UUklHQV9NQU5VQUxfVFJJR19fT1RHX1RSSUdBX01BTlVBTF9UUklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcwX09UR19UUklHQl9DTlRMCisjZGVmaW5lIE9URzBfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfU09VUkNFX1BJUEVfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1BPTEFSSVRZX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9SRVNZTkNfQllQQVNTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPVEcwX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfSU5QVVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1BPTEFSSVRZX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzBfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEcwX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUklTSU5HX0VER0VfREVURUNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9GQUxMSU5HX0VER0VfREVURUNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0ZSRVFVRU5DWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcwX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1NPVVJDRV9QSVBFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBFMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1BPTEFSSVRZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1JFU1lOQ19CWVBBU1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0lOUFVUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1BPTEFSSVRZX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1JJU0lOR19FREdFX0RFVEVDVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0ZBTExJTkdfRURHRV9ERVRFQ1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0ZSRVFVRU5DWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMF9PVEdfVFJJR0JfTUFOVUFMX1RSSUcKKyNkZWZpbmUgT1RHMF9PVEdfVFJJR0JfTUFOVUFMX1RSSUdfX09UR19UUklHQl9NQU5VQUxfVFJJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1RSSUdCX01BTlVBTF9UUklHX19PVEdfVFJJR0JfTUFOVUFMX1RSSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzBfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMCisjZGVmaW5lIE9URzBfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19DSEVDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfVFJJR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcwX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPVEcwX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19DSEVDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcwX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19UUklHX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcwX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcwX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEcwX09UR19GTE9XX0NPTlRST0wKKyNkZWZpbmUgT1RHMF9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfR1JBTlVMQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9JTlBVVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMF9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgT1RHMF9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMF9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX0dSQU5VTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX0lOUFVUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHMF9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19BVlNZTkNfRlJBTUVfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfQVZTWU5DX0xJTkVfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19BVlNZTkNfRlJBTUVfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19BVlNZTkNfTElORV9DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9PVEcwX09UR19DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX0NPTlRST0xfX09UR19NQVNURVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfRElTQUJMRV9QT0lOVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfQ09OVFJPTF9fT1RHX1NUQVJUX1BPSU5UX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzBfT1RHX0NPTlRST0xfX09UR19GSUVMRF9OVU1CRVJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfRklFTERfTlVNQkVSX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHMF9PVEdfQ09OVFJPTF9fT1RHX0NVUlJFTlRfTUFTVEVSX0VOX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfRElTUF9SRUFEX1JFUVVFU1RfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX0NPTlRST0xfX09UR19BVlNZTkNfTE9DS19TTkFQU0hPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHMF9PVEdfQ09OVFJPTF9fT1RHX0FWU1lOQ19WU1lOQ19OX0hTWU5DX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfTUFTVEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfRElTQUJMRV9QT0lOVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfU1RBUlRfUE9JTlRfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfRklFTERfTlVNQkVSX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfRklFTERfTlVNQkVSX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfQ1VSUkVOVF9NQVNURVJfRU5fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfRElTUF9SRUFEX1JFUVVFU1RfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfQVZTWU5DX0xPQ0tfU05BUFNIT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEcwX09UR19DT05UUk9MX19PVEdfQVZTWU5DX1ZTWU5DX05fSFNZTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcwX09UR19CTEFOS19DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX0JMQU5LX0NPTlRST0xfX09UR19DVVJSRU5UX0JMQU5LX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19CTEFOS19DT05UUk9MX19PVEdfQkxBTktfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0JMQU5LX0RFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19CTEFOS19DT05UUk9MX19PVEdfQ1VSUkVOVF9CTEFOS19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19CTEFOS19DT05UUk9MX19PVEdfQkxBTktfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcwX09UR19CTEFOS19DT05UUk9MX19PVEdfQkxBTktfREVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9PVEcwX09UR19QSVBFX0FCT1JUX0NPTlRST0wKKyNkZWZpbmUgT1RHMF9PVEdfUElQRV9BQk9SVF9DT05UUk9MX19PVEdfUElQRV9BQk9SVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9fT1RHX1BJUEVfQUJPUlRfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX09UR19QSVBFX0FCT1JUX0NPTlRST0xfX09UR19QSVBFX0FCT1JUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19QSVBFX0FCT1JUX0NPTlRST0xfX09UR19QSVBFX0FCT1JUX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9PVEcwX09UR19JTlRFUkxBQ0VfQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19JTlRFUkxBQ0VfQ09OVFJPTF9fT1RHX0lOVEVSTEFDRV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJMQUNFX0NPTlRST0xfX09UR19JTlRFUkxBQ0VfRk9SQ0VfTkVYVF9GSUVMRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19JTlRFUkxBQ0VfQ09OVFJPTF9fT1RHX0lOVEVSTEFDRV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19JTlRFUkxBQ0VfQ09OVFJPTF9fT1RHX0lOVEVSTEFDRV9GT1JDRV9ORVhUX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9PVEcwX09UR19JTlRFUkxBQ0VfU1RBVFVTCisjZGVmaW5lIE9URzBfT1RHX0lOVEVSTEFDRV9TVEFUVVNfX09UR19JTlRFUkxBQ0VfQ1VSUkVOVF9GSUVMRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19JTlRFUkxBQ0VfU1RBVFVTX19PVEdfSU5URVJMQUNFX05FWFRfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJMQUNFX1NUQVRVU19fT1RHX0lOVEVSTEFDRV9DVVJSRU5UX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJMQUNFX1NUQVRVU19fT1RHX0lOVEVSTEFDRV9ORVhUX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vT1RHMF9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzAKKyNkZWZpbmUgT1RHMF9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfX09UR19QSVhFTF9EQVRBX0JMVUVfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX19PVEdfUElYRUxfREFUQV9HUkVFTl9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfX09UR19QSVhFTF9EQVRBX0JMVUVfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfX09UR19QSVhFTF9EQVRBX0dSRUVOX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMF9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzEKKyNkZWZpbmUgT1RHMF9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzFfX09UR19QSVhFTF9EQVRBX1JFRF9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxX19PVEdfUElYRUxfREFUQV9SRURfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL09URzBfT1RHX1NUQVRVUworI2RlZmluZSBPVEcwX09UR19TVEFUVVNfX09UR19WX0JMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU1RBVFVTX19PVEdfVl9BQ1RJVkVfRElTUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX1ZfU1lOQ19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEcwX09UR19TVEFUVVNfX09UR19WX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHMF9PVEdfU1RBVFVTX19PVEdfVl9CTEFOS18zRF9TVFJVQ1RVUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX0hfQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfU1RBVFVTX19PVEdfSF9BQ1RJVkVfRElTUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEcwX09UR19TVEFUVVNfX09UR19IX1NZTkNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX1ZfQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX1ZfQUNUSVZFX0RJU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX1ZfU1lOQ19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX1ZfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX1ZfQkxBTktfM0RfU1RSVUNUVVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX0hfQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX0hfQUNUSVZFX0RJU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19fT1RHX0hfU1lOQ19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL09URzBfT1RHX1NUQVRVU19QT1NJVElPTgorI2RlZmluZSBPVEcwX09UR19TVEFUVVNfUE9TSVRJT05fX09UR19WRVJUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU1RBVFVTX1BPU0lUSU9OX19PVEdfSE9SWl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19TVEFUVVNfUE9TSVRJT05fX09UR19WRVJUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcwX09UR19TVEFUVVNfUE9TSVRJT05fX09UR19IT1JaX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcwX09UR19OT01fVkVSVF9QT1NJVElPTgorI2RlZmluZSBPVEcwX09UR19OT01fVkVSVF9QT1NJVElPTl9fT1RHX1ZFUlRfQ09VTlRfTk9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfTk9NX1ZFUlRfUE9TSVRJT05fX09UR19WRVJUX0NPVU5UX05PTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHMF9PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19GUkFNRV9DT1VOVF9fT1RHX0ZSQU1FX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19TVEFUVVNfRlJBTUVfQ09VTlRfX09UR19GUkFNRV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9PVEcwX09UR19TVEFUVVNfVkZfQ09VTlQKKyNkZWZpbmUgT1RHMF9PVEdfU1RBVFVTX1ZGX0NPVU5UX19PVEdfVkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1NUQVRVU19WRl9DT1VOVF9fT1RHX1ZGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL09URzBfT1RHX1NUQVRVU19IVl9DT1VOVAorI2RlZmluZSBPVEcwX09UR19TVEFUVVNfSFZfQ09VTlRfX09UR19IVl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU1RBVFVTX0hWX0NPVU5UX19PVEdfSFZfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vT1RHMF9PVEdfQ09VTlRfQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19DT1VOVF9DT05UUk9MX19PVEdfSE9SWl9DT1VOVF9CWTJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfQ09VTlRfQ09OVFJPTF9fT1RHX0hPUlpfUkVQRVRJVElPTl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzBfT1RHX0NPVU5UX0NPTlRST0xfX09UR19IT1JaX0NPVU5UX0JZMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzBfT1RHX0NPVU5UX0NPTlRST0xfX09UR19IT1JaX1JFUEVUSVRJT05fQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUVMCisvL09URzBfT1RHX0NPVU5UX1JFU0VUCisjZGVmaW5lIE9URzBfT1RHX0NPVU5UX1JFU0VUX19PVEdfUkVTRVRfRlJBTUVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DT1VOVF9SRVNFVF9fT1RHX1JFU0VUX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcwX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FCisjZGVmaW5lIE9URzBfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX19PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcwX09UR19WRVJUX1NZTkNfQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfQVVUT19GT1JDRV9WU1lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19BVVRPX0ZPUkNFX1ZTWU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKy8vT1RHMF9PVEdfU1RFUkVPX1NUQVRVUworI2RlZmluZSBPVEcwX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0NVUlJFTlRfRVlFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19TWU5DX09VVFBVVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fU1lOQ19TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19FWUVfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19TVEFUVVNfX09UR19DVVJSRU5UXzNEX1NUUlVDVFVSRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHMF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX0NVUlJFTlRfU1RFUkVPU1lOQ19FTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0NVUlJFTlRfRVlFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX1NZTkNfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0VZRV9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fU1RBVFVTX19PVEdfQ1VSUkVOVF8zRF9TVFJVQ1RVUkVfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fU1RBVFVTX19PVEdfQ1VSUkVOVF9TVEVSRU9TWU5DX0VOX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcwX09UR19TVEVSRU9fQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19TWU5DX09VVFBVVF9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX0VZRV9GTEFHX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHMF9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX1NURVJFT1NZTkNfT1VUUFVUX0ZPUl9EUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfRklFTERfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9WX0JMQU5LX0ZPUl9EUF9GSVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMF9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19GSUVMRF9OVU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBPVEcwX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX0VZRV9GTEFHX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9TVEVSRU9TWU5DX09VVFBVVF9GT1JfRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9GSUVMRF9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9WX0JMQU5LX0ZPUl9EUF9GSVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRklFTERfTlVNX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzBfT1RHX1NOQVBTSE9UX1NUQVRVUworI2RlZmluZSBPVEcwX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzBfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX01BTlVBTF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEcwX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcwX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9NQU5VQUxfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9PVEcwX09UR19TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX1NOQVBTSE9UX0NPTlRST0xfX09UR19BVVRPX1NOQVBTSE9UX1RSSUdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19TTkFQU0hPVF9DT05UUk9MX19PVEdfQVVUT19TTkFQU0hPVF9UUklHX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9PVEcwX09UR19TTkFQU0hPVF9QT1NJVElPTgorI2RlZmluZSBPVEcwX09UR19TTkFQU0hPVF9QT1NJVElPTl9fT1RHX1NOQVBTSE9UX1ZFUlRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU05BUFNIT1RfUE9TSVRJT05fX09UR19TTkFQU0hPVF9IT1JaX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19TTkFQU0hPVF9QT1NJVElPTl9fT1RHX1NOQVBTSE9UX1ZFUlRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcwX09UR19TTkFQU0hPVF9QT1NJVElPTl9fT1RHX1NOQVBTSE9UX0hPUlpfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcwX09UR19TTkFQU0hPVF9GUkFNRQorI2RlZmluZSBPVEcwX09UR19TTkFQU0hPVF9GUkFNRV9fT1RHX1NOQVBTSE9UX0ZSQU1FX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU05BUFNIT1RfRlJBTUVfX09UR19TTkFQU0hPVF9GUkFNRV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0wKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19TTkFQU0hPVF9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfU05BUFNIT1RfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcwX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9DT1VOVF9OT1dfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzBfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEcwX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdBX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0JfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBPVEcwX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdCX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE9URzBfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVlNZTkNfTk9NX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19WU1lOQ19OT01fSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBPVEcwX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0dTTF9WU1lOQ19HQVBfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzBfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfR1NMX1ZTWU5DX0dBUF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19TTkFQU0hPVF9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19TTkFQU0hPVF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9DT1VOVF9OT1dfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9DT1VOVF9OT1dfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQV9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQl9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19WU1lOQ19OT01fSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19WU1lOQ19OT01fSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19HU0xfVlNZTkNfR0FQX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19HU0xfVlNZTkNfR0FQX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMF9PVEdfVVBEQVRFX0xPQ0sKKyNkZWZpbmUgT1RHMF9PVEdfVVBEQVRFX0xPQ0tfX09UR19VUERBVEVfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1VQREFURV9MT0NLX19PVEdfVVBEQVRFX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfSF9USU1JTkdfRElWX0JZMl9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRU5fVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEcwX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19SQU5HRV9USU1JTkdfREJVRl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVElNSU5HX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHXzNEX0NUUkxfREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBPVEcwX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRU5fREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgT1RHMF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVVBEQVRFX0lOU1RBTlRMWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1ZTVEFSVFVQX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEcwX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19EU0NfUE9TSVRJT05fREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHMF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfQkxBTktfREFUQV9ET1VCTEVfQlVGRkVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19SQU5HRV9USU1JTkdfREJVRl9VUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRU5fVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1JBTkdFX1RJTUlOR19EQlVGX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1RJTUlOR19EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHXzNEX0NUUkxfREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9FTl9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1VQREFURV9JTlNUQU5UTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1ZTVEFSVFVQX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0RTQ19QT1NJVElPTl9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRE9VQkxFX0JVRkZFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1JBTkdFX1RJTUlOR19EQlVGX1VQREFURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisvL09URzBfT1RHX01BU1RFUl9FTgorI2RlZmluZSBPVEcwX09UR19NQVNURVJfRU5fX09UR19NQVNURVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfTUFTVEVSX0VOX19PVEdfTUFTVEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMF9PVEdfQkxBTktfREFUQV9DT0xPUgorI2RlZmluZSBPVEcwX09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9CTFVFX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfR1JFRU5fWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzBfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX1JFRF9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMF9PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkxVRV9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgT1RHMF9PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfR1JFRU5fWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgT1RHMF9PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfUkVEX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkYwMDAwMEwKKy8vT1RHMF9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFQKKyNkZWZpbmUgT1RHMF9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX0JMVUVfQ0JfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9HUkVFTl9ZX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfUkVEX0NSX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9CTFVFX0NCX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE9URzBfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9HUkVFTl9ZX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIE9URzBfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9SRURfQ1JfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRjAwMDBMCisvL09URzBfT1RHX0JMQUNLX0NPTE9SCisjZGVmaW5lIE9URzBfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHMF9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcwX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBPVEcwX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorI2RlZmluZSBPVEcwX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRjAwMDAwTAorLy9PVEcwX09UR19CTEFDS19DT0xPUl9FWFQKKyNkZWZpbmUgT1RHMF9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfQl9DQl9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX0dfWV9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9SX0NSX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX0JfQ0JfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE9URzBfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX0dfWV9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIE9URzBfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX1JfQ1JfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRjAwMDBMCisvL09URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT04KKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTElORV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0xJTkVfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTElORV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTElORV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfT1VUUFVUX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfT1VUUFVUX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT04KKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfTElORV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0xJTkVfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT04KKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfTElORV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0xJTkVfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcwX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzBfT1RHX0NSQ19DTlRMCisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19EVUFMX0xJTktfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDX0NOVExfX09UR19DUkNfRFVBTF9MSU5LX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0JMQU5LX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19DT05UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDX0NOVExfX09UR19DUkNfQ0FQVFVSRV9TVEFSVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX1NURVJFT19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19JTlRFUkxBQ0VfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDX0NOVExfX09UR19DUkNfVVNFX05FV19BTkRfUkVQRUFURURfUElYRUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQzBfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMX19PVEdfQ1JDMV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMwX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzFfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMzX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19EVUFMX0xJTktfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19EVUFMX0xJTktfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19CTEFOS19PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19DT05UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19DQVBUVVJFX1NUQVJUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDYwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19TVEVSRU9fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19JTlRFUkxBQ0VfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQ19VU0VfTkVXX0FORF9SRVBFQVRFRF9QSVhFTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQzBfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX0NSQzFfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzBfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzFfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzNfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcwX09UR19DUkNfQ05UTDIKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RTQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX1NUUkVBTV9DT01CSU5FX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcwX09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9TVFJFQU1fU1BMSVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EU0NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX1NUUkVBTV9DT01CSU5FX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX1NUUkVBTV9TUExJVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE9URzBfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisvL09URzBfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0wKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9YX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMF9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9ZX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcwX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1lfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcwX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1hfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzBfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0wKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9ZX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMF9PVEdfQ1JDMF9EQVRBX1JHCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfREFUQV9SR19fQ1JDMF9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DUkMwX0RBVEFfUkdfX0NSQzBfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfREFUQV9SR19fQ1JDMF9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfREFUQV9SR19fQ1JDMF9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzBfT1RHX0NSQzBfREFUQV9CCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfREFUQV9CX19DUkMwX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DUkMwX0RBVEFfQl9fQ1JDMF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfREFUQV9CX19DUkMwX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzBfT1RHX0NSQzBfREFUQV9CX19DUkMwX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzBfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0wKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9YX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMF9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9ZX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcwX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1lfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcwX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1hfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzBfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0wKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9ZX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMF9PVEdfQ1JDMV9EQVRBX1JHCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfREFUQV9SR19fQ1JDMV9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DUkMxX0RBVEFfUkdfX0NSQzFfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfREFUQV9SR19fQ1JDMV9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfREFUQV9SR19fQ1JDMV9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzBfT1RHX0NSQzFfREFUQV9CCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfREFUQV9CX19DUkMxX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DUkMxX0RBVEFfQl9fQ1JDMV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfREFUQV9CX19DUkMxX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzBfT1RHX0NSQzFfREFUQV9CX19DUkMxX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzBfT1RHX0NSQzJfREFUQV9SRworI2RlZmluZSBPVEcwX09UR19DUkMyX0RBVEFfUkdfX0NSQzJfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMl9EQVRBX1JHX19DUkMyX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19DUkMyX0RBVEFfUkdfX0NSQzJfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcwX09UR19DUkMyX0RBVEFfUkdfX0NSQzJfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcwX09UR19DUkMyX0RBVEFfQgorI2RlZmluZSBPVEcwX09UR19DUkMyX0RBVEFfQl9fQ1JDMl9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDMl9EQVRBX0JfX0NSQzJfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19DUkMyX0RBVEFfQl9fQ1JDMl9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcwX09UR19DUkMyX0RBVEFfQl9fQ1JDMl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcwX09UR19DUkMzX0RBVEFfUkcKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDM19EQVRBX1JHX19DUkMzX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0NSQzNfREFUQV9SR19fQ1JDM19HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDM19EQVRBX1JHX19DUkMzX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDM19EQVRBX1JHX19DUkMzX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMF9PVEdfQ1JDM19EQVRBX0IKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDM19EQVRBX0JfX0NSQzNfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0NSQzNfREFUQV9CX19DUkMzX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDM19EQVRBX0JfX0NSQzNfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDM19EQVRBX0JfX0NSQzNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMF9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTSworI2RlZmluZSBPVEcwX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX19PVEdfQ1JDX1NJR19SRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19fT1RHX0NSQ19TSUdfR1JFRU5fTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX19PVEdfQ1JDX1NJR19SRURfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcwX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX19PVEdfQ1JDX1NJR19HUkVFTl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcwX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLCisjZGVmaW5lIE9URzBfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfX09UR19DUkNfU0lHX0JMVUVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX19PVEdfQ1JDX1NJR19DT05UUk9MX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfX09UR19DUkNfU0lHX0JMVUVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzBfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfX09UR19DUkNfU0lHX0NPTlRST0xfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX0VWRU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NTX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgT1RHMF9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBPVEcwX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1RHMF9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEcwX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX09WRVJSSURFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fRVZFTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fRlJBTUVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NTX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fT1ZFUlJJREVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9WX1VQREFURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfU1RFUkVPX1NFTF9PVlJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9SRVNFVF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEcwX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX1ZfVVBEQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX1NURVJFT19TRUxfT1ZSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfUkVTRVRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzBfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL09URzBfT1RHX0dTTF9WU1lOQ19HQVAKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9TT1VSQ0VfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzBfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01BU1RFUl9GQVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9TT1VSQ0VfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYwMDAwTAorI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NQVNURVJfRkFTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBPVEcwX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9PVEcwX09UR19NQVNURVJfVVBEQVRFX01PREUKKyNkZWZpbmUgT1RHMF9PVEdfTUFTVEVSX1VQREFURV9NT0RFX19NQVNURVJfVVBEQVRFX0lOVEVSTEFDRURfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX01BU1RFUl9VUERBVEVfTU9ERV9fTUFTVEVSX1VQREFURV9JTlRFUkxBQ0VEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL09URzBfT1RHX0NMT0NLX0NPTlRST0wKKyNkZWZpbmUgT1RHMF9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcwX09UR19DTE9DS19DT05UUk9MX19PVEdfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMF9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX0NMT0NLX0NPTlRST0xfX09UR19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMF9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMF9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMF9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMF9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vT1RHMF9PVEdfVlNUQVJUVVBfUEFSQU0KKyNkZWZpbmUgT1RHMF9PVEdfVlNUQVJUVVBfUEFSQU1fX1ZTVEFSVFVQX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1ZTVEFSVFVQX1BBUkFNX19WU1RBUlRVUF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL09URzBfT1RHX1ZVUERBVEVfUEFSQU0KKyNkZWZpbmUgT1RHMF9PVEdfVlVQREFURV9QQVJBTV9fVlVQREFURV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1ZVUERBVEVfUEFSQU1fX1ZVUERBVEVfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfVlVQREFURV9QQVJBTV9fVlVQREFURV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfVlVQREFURV9QQVJBTV9fVlVQREFURV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vT1RHMF9PVEdfVlJFQURZX1BBUkFNCisjZGVmaW5lIE9URzBfT1RHX1ZSRUFEWV9QQVJBTV9fVlJFQURZX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19WUkVBRFlfUEFSQU1fX1ZSRUFEWV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9PVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVMKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfRVZFTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfUE9TSVRJT05fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBPVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9FVkVOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0VWRU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0VWRU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19TVEVSRU9fU0VMRUNUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX0ZJRUxEX05VTUJFUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfRVZFTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfUE9TSVRJT05fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9FVkVOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0VWRU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0VWRU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fU1RFUkVPX1NFTEVDVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fRklFTERfTlVNQkVSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisvL09URzBfT1RHX01BU1RFUl9VUERBVEVfTE9DSworI2RlZmluZSBPVEcwX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfTUFTVEVSX1VQREFURV9MT0NLX19VUERBVEVfTE9DS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX01BU1RFUl9VUERBVEVfTE9DS19fT1RHX01BU1RFUl9VUERBVEVfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzBfT1RHX01BU1RFUl9VUERBVEVfTE9DS19fVVBEQVRFX0xPQ0tfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL09URzBfT1RHX0dTTF9DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX01BU1RFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEcwX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9NQVNURVJfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfQ0hFQ0tfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0ZPUkNFX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfQ0hFQ0tfQUxMX0ZJRUxEU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPVEcwX09UR19HU0xfQ09OVFJPTF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19HU0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX01BU1RFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX01BU1RFUl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0NIRUNLX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0ZPUkNFX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0NIRUNLX0FMTF9GSUVMRFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dTTF9DT05UUk9MX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0dTTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzBfT1RHX0dTTF9XSU5ET1dfWAorI2RlZmluZSBPVEcwX09UR19HU0xfV0lORE9XX1hfX09UR19HU0xfV0lORE9XX1NUQVJUX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX1dJTkRPV19YX19PVEdfR1NMX1dJTkRPV19FTkRfWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19HU0xfV0lORE9XX1hfX09UR19HU0xfV0lORE9XX1NUQVJUX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcwX09UR19HU0xfV0lORE9XX1hfX09UR19HU0xfV0lORE9XX0VORF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcwX09UR19HU0xfV0lORE9XX1kKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX1dJTkRPV19ZX19PVEdfR1NMX1dJTkRPV19TVEFSVF9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0dTTF9XSU5ET1dfWV9fT1RHX0dTTF9XSU5ET1dfRU5EX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX1dJTkRPV19ZX19PVEdfR1NMX1dJTkRPV19TVEFSVF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfR1NMX1dJTkRPV19ZX19PVEdfR1NMX1dJTkRPV19FTkRfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMF9PVEdfVlVQREFURV9LRUVQT1VUCisjZGVmaW5lIE9URzBfT1RHX1ZVUERBVEVfS0VFUE9VVF9fTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9TVEFSVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19WVVBEQVRFX0tFRVBPVVRfX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfRU5EX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX1ZVUERBVEVfS0VFUE9VVF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMF9PVEdfVlVQREFURV9LRUVQT1VUX19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX1NUQVJUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMF9PVEdfVlVQREFURV9LRUVQT1VUX19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX0VORF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKyNkZWZpbmUgT1RHMF9PVEdfVlVQREFURV9LRUVQT1VUX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMF9PVEdfR0xPQkFMX0NPTlRST0wwCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19IVE9UQUxfS0VFUE9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfSFRPVEFMX0tFRVBPVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfSFRPVEFMX0tFRVBPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfSFRPVEFMX0tFRVBPVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorLy9PVEcwX09UR19HTE9CQUxfQ09OVFJPTDEKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcwX09UR19HTE9CQUxfQ09OVFJPTDIKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX0NPTlRST0wyX19ESUdfVVBEQVRFX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMl9fR0xPQkFMX1VQREFURV9MT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDJfX01BTlVBTF9GTE9XX0NPTlRST0xfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMl9fTUFTVEVSX1VQREFURV9MT0NLX1dJTkRPV19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX0NPTlRST0wyX19PVEdfVlVQREFURV9CTE9DS19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDJfX0RDQ0dfVlVQREFURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMl9fRElHX1VQREFURV9MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMl9fR0xPQkFMX1VQREFURV9MT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMl9fTUFOVUFMX0ZMT1dfQ09OVFJPTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMl9fTUFTVEVSX1VQREFURV9MT0NLX1dJTkRPV19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMl9fT1RHX1ZVUERBVEVfQkxPQ0tfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MMl9fRENDR19WVVBEQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzBfT1RHX0dMT0JBTF9DT05UUk9MMworI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9GSUVMRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfU1RFUkVPX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzBfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX0ZJRUxEX1NURVJFT19GTEFHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9TVEVSRU9fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBPVEcwX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9GSUVMRF9TVEVSRU9fRkxBR19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9PVEcwX09UR19UUklHX01BTlVBTF9DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0xfX1RSSUdfTUFOVUFMX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19UUklHX01BTlVBTF9DT05UUk9MX19UUklHX01BTlVBTF9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcwX09UR19NQU5VQUxfRkxPV19DT05UUk9MCisjZGVmaW5lIE9URzBfT1RHX01BTlVBTF9GTE9XX0NPTlRST0xfX01BTlVBTF9GTE9XX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcwX09UR19NQU5VQUxfRkxPV19DT05UUk9MX19NQU5VQUxfRkxPV19DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVUworI2RlZmluZSBPVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzBfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcwX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9PVEcwX09UR19EUlJfQ09OVFJPTAorI2RlZmluZSBPVEcwX09UR19EUlJfQ09OVFJPTF9fT1RHX0RSUl9BVkVSQUdFX0ZSQU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfRFJSX0NPTlRST0xfX09UR19WX1RPVEFMX0xBU1RfVVNFRF9CWV9EUlJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19EUlJfQ09OVFJPTF9fT1RHX0RSUl9BVkVSQUdFX0ZSQU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBPVEcwX09UR19EUlJfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTEFTVF9VU0VEX0JZX0RSUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcwX09UR19SRVFVRVNUX0NPTlRST0wKKyNkZWZpbmUgT1RHMF9PVEdfUkVRVUVTVF9DT05UUk9MX19PVEdfUkVRVUVTVF9NT0RFX0ZPUl9IX0RVUExJQ0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1JFUVVFU1RfQ09OVFJPTF9fT1RHX1JFUVVFU1RfTU9ERV9GT1JfSF9EVVBMSUNBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzBfT1RHX0RTQ19TVEFSVF9QT1NJVElPTgorI2RlZmluZSBPVEcwX09UR19EU0NfU1RBUlRfUE9TSVRJT05fX09UR19EU0NfU1RBUlRfUE9TSVRJT05fWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX19PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19EU0NfU1RBUlRfUE9TSVRJT05fX09UR19EU0NfU1RBUlRfUE9TSVRJT05fWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcwX09UR19EU0NfU1RBUlRfUE9TSVRJT05fX09UR19EU0NfU1RBUlRfUE9TSVRJT05fTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9PVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVMKKyNkZWZpbmUgT1RHMF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzBfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1RBS0VOX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHMF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzBfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1RBS0VOX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT1RHMF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzBfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1RBS0VOX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHMF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfVlVQREFURV9LRUVQT1VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1RBS0VOX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1RBS0VOX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1RBS0VOX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEcwX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19WVVBEQVRFX0tFRVBPVVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9PVEcwX09UR19TUEFSRV9SRUdJU1RFUgorI2RlZmluZSBPVEcwX09UR19TUEFSRV9SRUdJU1RFUl9fT1RHX1NQQVJFX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMF9PVEdfU1BBUkVfUkVHSVNURVJfX09UR19TUEFSRV9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHRjX290ZzFfZGlzcGRlYworLy9PVEcxX09UR19IX1RPVEFMCisjZGVmaW5lIE9URzFfT1RHX0hfVE9UQUxfX09UR19IX1RPVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19IX1RPVEFMX19PVEdfSF9UT1RBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEcxX09UR19IX0JMQU5LX1NUQVJUX0VORAorI2RlZmluZSBPVEcxX09UR19IX0JMQU5LX1NUQVJUX0VORF9fT1RHX0hfQkxBTktfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfSF9CTEFOS19TVEFSVF9FTkRfX09UR19IX0JMQU5LX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19IX0JMQU5LX1NUQVJUX0VORF9fT1RHX0hfQkxBTktfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcxX09UR19IX0JMQU5LX1NUQVJUX0VORF9fT1RHX0hfQkxBTktfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcxX09UR19IX1NZTkNfQQorI2RlZmluZSBPVEcxX09UR19IX1NZTkNfQV9fT1RHX0hfU1lOQ19BX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfSF9TWU5DX0FfX09UR19IX1NZTkNfQV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19IX1NZTkNfQV9fT1RHX0hfU1lOQ19BX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcxX09UR19IX1NZTkNfQV9fT1RHX0hfU1lOQ19BX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcxX09UR19IX1NZTkNfQV9DTlRMCisjZGVmaW5lIE9URzFfT1RHX0hfU1lOQ19BX0NOVExfX09UR19IX1NZTkNfQV9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19IX1NZTkNfQV9DTlRMX19PVEdfQ09NUF9TWU5DX0FfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0hfU1lOQ19BX0NOVExfX09UR19IX1NZTkNfQV9DVVRPRkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHMV9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0hfU1lOQ19BX1BPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0NPTVBfU1lOQ19BX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0hfU1lOQ19BX0NVVE9GRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vT1RHMV9PVEdfSF9USU1JTkdfQ05UTAorI2RlZmluZSBPVEcxX09UR19IX1RJTUlOR19DTlRMX19PVEdfSF9USU1JTkdfRElWX0JZMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfSF9USU1JTkdfQ05UTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX0hfVElNSU5HX0NOVExfX09UR19IX1RJTUlOR19ESVZfQlkyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzFfT1RHX0hfVElNSU5HX0NOVExfX09UR19IX1RJTUlOR19ESVZfQlkyX1VQREFURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL09URzFfT1RHX1ZfVE9UQUwKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9fT1RHX1ZfVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1ZfVE9UQUxfX09UR19WX1RPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzFfT1RHX1ZfVE9UQUxfTUlOCisjZGVmaW5lIE9URzFfT1RHX1ZfVE9UQUxfTUlOX19PVEdfVl9UT1RBTF9NSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX01JTl9fT1RHX1ZfVE9UQUxfTUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEcxX09UR19WX1RPVEFMX01BWAorI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX01BWF9fT1RHX1ZfVE9UQUxfTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9NQVhfX09UR19WX1RPVEFMX01BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHMV9PVEdfVl9UT1RBTF9NSUQKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9NSURfX09UR19WX1RPVEFMX01JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1ZfVE9UQUxfTUlEX19PVEdfVl9UT1RBTF9NSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzFfT1RHX1ZfVE9UQUxfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WX1RPVEFMX01JTl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVl9UT1RBTF9NQVhfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzFfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfUkVQTEFDSU5HX01BWF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NSU5fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfRk9SQ0VfTE9DS19PTl9FVkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzFfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX0RSUl9FVkVOVF9BQ1RJVkVfUEVSSU9EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19TRVRfVl9UT1RBTF9NSU5fTUFTS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9GUkFNRV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1NFVF9WX1RPVEFMX01JTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVl9UT1RBTF9NSU5fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVl9UT1RBTF9NQVhfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9SRVBMQUNJTkdfTUFYX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9SRVBMQUNJTkdfTUlOX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfRk9SQ0VfTE9DS19PTl9FVkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfRFJSX0VWRU5UX0FDVElWRV9QRVJJT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9GUkFNRV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMV9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTCisjZGVmaW5lIE9URzFfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMV9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcxX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9PVEcxX09UR19WU1lOQ19OT01fSU5UX1NUQVRVUworI2RlZmluZSBPVEcxX09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19fT1RHX1ZTWU5DX05PTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfX09UR19WU1lOQ19OT01fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzFfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX19PVEdfVlNZTkNfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzFfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX19PVEdfVlNZTkNfTk9NX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL09URzFfT1RHX1ZfQkxBTktfU1RBUlRfRU5ECisjZGVmaW5lIE9URzFfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX19PVEdfVl9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19WX0JMQU5LX1NUQVJUX0VORF9fT1RHX1ZfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX19PVEdfVl9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzFfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX19PVEdfVl9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzFfT1RHX1ZfU1lOQ19BCisjZGVmaW5lIE9URzFfT1RHX1ZfU1lOQ19BX19PVEdfVl9TWU5DX0FfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19WX1NZTkNfQV9fT1RHX1ZfU1lOQ19BX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1ZfU1lOQ19BX19PVEdfVl9TWU5DX0FfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzFfT1RHX1ZfU1lOQ19BX19PVEdfVl9TWU5DX0FfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzFfT1RHX1ZfU1lOQ19BX0NOVEwKKyNkZWZpbmUgT1RHMV9PVEdfVl9TWU5DX0FfQ05UTF9fT1RHX1ZfU1lOQ19BX1BPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1ZfU1lOQ19BX0NOVExfX09UR19WX1NZTkNfQV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzFfT1RHX1RSSUdBX0NOVEwKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9TT1VSQ0VfUElQRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUE9MQVJJVFlfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1JFU1lOQ19CWVBBU1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzFfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9JTlBVVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUE9MQVJJVFlfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzFfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9SSVNJTkdfRURHRV9ERVRFQ1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0ZBTExJTkdfRURHRV9ERVRFQ1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfRlJFUVVFTkNZX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzFfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfU09VUkNFX1BJUEVfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEUwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUE9MQVJJVFlfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUkVTWU5DX0JZUEFTU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfSU5QVVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUE9MQVJJVFlfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUklTSU5HX0VER0VfREVURUNUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfRkFMTElOR19FREdFX0RFVEVDVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfRlJFUVVFTkNZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcxX09UR19UUklHQV9NQU5VQUxfVFJJRworI2RlZmluZSBPVEcxX09UR19UUklHQV9NQU5VQUxfVFJJR19fT1RHX1RSSUdBX01BTlVBTF9UUklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0FfTUFOVUFMX1RSSUdfX09UR19UUklHQV9NQU5VQUxfVFJJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMV9PVEdfVFJJR0JfQ05UTAorI2RlZmluZSBPVEcxX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1NPVVJDRV9QSVBFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9QT0xBUklUWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUkVTWU5DX0JZUEFTU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0lOUFVUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9QT0xBUklUWV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEcxX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1JJU0lOR19FREdFX0RFVEVDVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfRkFMTElOR19FREdFX0RFVEVDVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9GUkVRVUVOQ1lfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9TT1VSQ0VfUElQRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9QT0xBUklUWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9SRVNZTkNfQllQQVNTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9JTlBVVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9QT0xBUklUWV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9SSVNJTkdfRURHRV9ERVRFQ1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9GQUxMSU5HX0VER0VfREVURUNUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9GUkVRVUVOQ1lfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzFfT1RHX1RSSUdCX01BTlVBTF9UUklHCisjZGVmaW5lIE9URzFfT1RHX1RSSUdCX01BTlVBTF9UUklHX19PVEdfVFJJR0JfTUFOVUFMX1RSSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19UUklHQl9NQU5VQUxfVFJJR19fT1RHX1RSSUdCX01BTlVBTF9UUklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcxX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTAorI2RlZmluZSBPVEcxX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfQ0hFQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzFfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX1RSSUdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMV9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT1RHMV9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfQ0hFQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMV9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfVFJJR19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMV9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHMV9PVEdfRkxPV19DT05UUk9MCisjZGVmaW5lIE9URzFfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX0dSQU5VTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfSU5QVVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzFfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE9URzFfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzFfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9HUkFOVUxBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9JTlBVVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzFfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRQorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfQVZTWU5DX0ZSQU1FX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX0FWU1lOQ19MSU5FX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfQVZTWU5DX0ZSQU1FX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfQVZTWU5DX0xJTkVfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vT1RHMV9PVEdfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19DT05UUk9MX19PVEdfTUFTVEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0RJU0FCTEVfUE9JTlRfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX0NPTlRST0xfX09UR19TVEFSVF9QT0lOVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcxX09UR19DT05UUk9MX19PVEdfRklFTERfTlVNQkVSX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0ZJRUxEX05VTUJFUl9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzFfT1RHX0NPTlRST0xfX09UR19DVVJSRU5UX01BU1RFUl9FTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0RJU1BfUkVBRF9SRVFVRVNUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19DT05UUk9MX19PVEdfQVZTWU5DX0xPQ0tfU05BUFNIT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzFfT1RHX0NPTlRST0xfX09UR19BVlNZTkNfVlNZTkNfTl9IU1lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX01BU1RFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0RJU0FCTEVfUE9JTlRfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX1NUQVJUX1BPSU5UX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0ZJRUxEX05VTUJFUl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0ZJRUxEX05VTUJFUl9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0NVUlJFTlRfTUFTVEVSX0VOX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0RJU1BfUkVBRF9SRVFVRVNUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0FWU1lOQ19MT0NLX1NOQVBTSE9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ09OVFJPTF9fT1RHX0FWU1lOQ19WU1lOQ19OX0hTWU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMV9PVEdfQkxBTktfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19CTEFOS19DT05UUk9MX19PVEdfQ1VSUkVOVF9CTEFOS19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX0JMQU5LX0NPTlRST0xfX09UR19CTEFOS19ERV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0NVUlJFTlRfQkxBTktfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0JMQU5LX0RFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vT1RHMV9PVEdfUElQRV9BQk9SVF9DT05UUk9MCisjZGVmaW5lIE9URzFfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9fT1RHX1BJUEVfQUJPUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19QSVBFX0FCT1JUX0NPTlRST0xfX09UR19QSVBFX0FCT1JUX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9BQk9SVF9DT05UUk9MX19PVEdfUElQRV9BQk9SVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9BQk9SVF9DT05UUk9MX19PVEdfUElQRV9BQk9SVF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vT1RHMV9PVEdfSU5URVJMQUNFX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfSU5URVJMQUNFX0NPTlRST0xfX09UR19JTlRFUkxBQ0VfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSTEFDRV9DT05UUk9MX19PVEdfSU5URVJMQUNFX0ZPUkNFX05FWFRfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfSU5URVJMQUNFX0NPTlRST0xfX09UR19JTlRFUkxBQ0VfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfSU5URVJMQUNFX0NPTlRST0xfX09UR19JTlRFUkxBQ0VfRk9SQ0VfTkVYVF9GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKy8vT1RHMV9PVEdfSU5URVJMQUNFX1NUQVRVUworI2RlZmluZSBPVEcxX09UR19JTlRFUkxBQ0VfU1RBVFVTX19PVEdfSU5URVJMQUNFX0NVUlJFTlRfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfSU5URVJMQUNFX1NUQVRVU19fT1RHX0lOVEVSTEFDRV9ORVhUX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSTEFDRV9TVEFUVVNfX09UR19JTlRFUkxBQ0VfQ1VSUkVOVF9GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSTEFDRV9TVEFUVVNfX09UR19JTlRFUkxBQ0VfTkVYVF9GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL09URzFfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swCisjZGVmaW5lIE9URzFfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX19PVEdfUElYRUxfREFUQV9CTFVFX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9fT1RHX1BJWEVMX0RBVEFfR1JFRU5fWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX19PVEdfUElYRUxfREFUQV9CTFVFX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzFfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX19PVEdfUElYRUxfREFUQV9HUkVFTl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzFfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxCisjZGVmaW5lIE9URzFfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxX19PVEdfUElYRUxfREFUQV9SRURfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMV9fT1RHX1BJWEVMX0RBVEFfUkVEX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9PVEcxX09UR19TVEFUVVMKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVFVTX19PVEdfVl9CTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NUQVRVU19fT1RHX1ZfQUNUSVZFX0RJU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19WX1NZTkNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVFVTX19PVEdfVl9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzFfT1RHX1NUQVRVU19fT1RHX1ZfQkxBTktfM0RfU1RSVUNUVVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19IX0JMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1NUQVRVU19fT1RHX0hfQUNUSVZFX0RJU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVFVTX19PVEdfSF9TWU5DX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19WX0JMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19WX0FDVElWRV9ESVNQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19WX1NZTkNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19WX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19WX0JMQU5LXzNEX1NUUlVDVFVSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19IX0JMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19IX0FDVElWRV9ESVNQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfX09UR19IX1NZTkNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9PVEcxX09UR19TVEFUVVNfUE9TSVRJT04KKyNkZWZpbmUgT1RHMV9PVEdfU1RBVFVTX1BPU0lUSU9OX19PVEdfVkVSVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NUQVRVU19QT1NJVElPTl9fT1RHX0hPUlpfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVFVTX1BPU0lUSU9OX19PVEdfVkVSVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVFVTX1BPU0lUSU9OX19PVEdfSE9SWl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMV9PVEdfTk9NX1ZFUlRfUE9TSVRJT04KKyNkZWZpbmUgT1RHMV9PVEdfTk9NX1ZFUlRfUE9TSVRJT05fX09UR19WRVJUX0NPVU5UX05PTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX05PTV9WRVJUX1BPU0lUSU9OX19PVEdfVkVSVF9DT1VOVF9OT01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzFfT1RHX1NUQVRVU19GUkFNRV9DT1VOVAorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfRlJBTUVfQ09VTlRfX09UR19GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UX19PVEdfRlJBTUVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vT1RHMV9PVEdfU1RBVFVTX1ZGX0NPVU5UCisjZGVmaW5lIE9URzFfT1RHX1NUQVRVU19WRl9DT1VOVF9fT1RHX1ZGX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19TVEFUVVNfVkZfQ09VTlRfX09UR19WRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9PVEcxX09UR19TVEFUVVNfSFZfQ09VTlQKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVFVTX0hWX0NPVU5UX19PVEdfSFZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NUQVRVU19IVl9DT1VOVF9fT1RHX0hWX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL09URzFfT1RHX0NPVU5UX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfQ09VTlRfQ09OVFJPTF9fT1RHX0hPUlpfQ09VTlRfQlkyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0NPVU5UX0NPTlRST0xfX09UR19IT1JaX1JFUEVUSVRJT05fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcxX09UR19DT1VOVF9DT05UUk9MX19PVEdfSE9SWl9DT1VOVF9CWTJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcxX09UR19DT1VOVF9DT05UUk9MX19PVEdfSE9SWl9SRVBFVElUSU9OX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFFTAorLy9PVEcxX09UR19DT1VOVF9SRVNFVAorI2RlZmluZSBPVEcxX09UR19DT1VOVF9SRVNFVF9fT1RHX1JFU0VUX0ZSQU1FX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ09VTlRfUkVTRVRfX09UR19SRVNFVF9GUkFNRV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMV9PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORQorI2RlZmluZSBPVEcxX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX19PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9fT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMV9PVEdfVkVSVF9TWU5DX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0FVVE9fRk9SQ0VfVlNZTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfQVVUT19GT1JDRV9WU1lOQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisvL09URzFfT1RHX1NURVJFT19TVEFUVVMKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19DVVJSRU5UX0VZRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX1NZTkNfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fRVlFX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fU1RBVFVTX19PVEdfQ1VSUkVOVF8zRF9TVFJVQ1RVUkVfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzFfT1RHX1NURVJFT19TVEFUVVNfX09UR19DVVJSRU5UX1NURVJFT1NZTkNfRU5fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19DVVJSRU5UX0VZRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19TWU5DX09VVFBVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19TWU5DX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19FWUVfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX0NVUlJFTlRfM0RfU1RSVUNUVVJFX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX0NVUlJFTlRfU1RFUkVPU1lOQ19FTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMV9PVEdfU1RFUkVPX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19FWUVfRkxBR19QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzFfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9TVEVSRU9TWU5DX09VVFBVVF9GT1JfRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX0ZJRUxEX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfVl9CTEFOS19GT1JfRFBfRklYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzFfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRklFTERfTlVNX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgT1RHMV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19TWU5DX09VVFBVVF9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19TWU5DX09VVFBVVF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19FWUVfRkxBR19QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfU1RFUkVPU1lOQ19PVVRQVVRfRk9SX0RQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfRklFTERfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfVl9CTEFOS19GT1JfRFBfRklYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0ZJRUxEX05VTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEcxX09UR19TTkFQU0hPVF9TVEFUVVMKKyNkZWZpbmUgT1RHMV9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcxX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9NQU5VQUxfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHMV9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMV9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfTUFOVUFMX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vT1RHMV9PVEdfU05BUFNIT1RfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19TTkFQU0hPVF9DT05UUk9MX19PVEdfQVVUT19TTkFQU0hPVF9UUklHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfU05BUFNIT1RfQ09OVFJPTF9fT1RHX0FVVE9fU05BUFNIT1RfVFJJR19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vT1RHMV9PVEdfU05BUFNIT1RfUE9TSVRJT04KKyNkZWZpbmUgT1RHMV9PVEdfU05BUFNIT1RfUE9TSVRJT05fX09UR19TTkFQU0hPVF9WRVJUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX19PVEdfU05BUFNIT1RfSE9SWl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfU05BUFNIT1RfUE9TSVRJT05fX09UR19TTkFQU0hPVF9WRVJUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfU05BUFNIT1RfUE9TSVRJT05fX09UR19TTkFQU0hPVF9IT1JaX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMV9PVEdfU05BUFNIT1RfRlJBTUUKKyNkZWZpbmUgT1RHMV9PVEdfU05BUFNIT1RfRlJBTUVfX09UR19TTkFQU0hPVF9GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NOQVBTSE9UX0ZSQU1FX19PVEdfU05BUFNIT1RfRlJBTUVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL09URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfU05BUFNIT1RfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1NOQVBTSE9UX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMV9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9DT1VOVF9OT1dfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEcxX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHMV9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQV9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdCX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0FfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgT1RHMV9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBPVEcxX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1ZTWU5DX05PTV9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVlNZTkNfTk9NX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgT1RHMV9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19HU0xfVlNZTkNfR0FQX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEcxX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0dTTF9WU1lOQ19HQVBfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfU05BUFNIT1RfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfU05BUFNIT1RfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0FfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0JfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0FfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0JfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVlNZTkNfTk9NX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVlNZTkNfTk9NX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfR1NMX1ZTWU5DX0dBUF9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzFfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfR1NMX1ZTWU5DX0dBUF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzFfT1RHX1VQREFURV9MT0NLCisjZGVmaW5lIE9URzFfT1RHX1VQREFURV9MT0NLX19PVEdfVVBEQVRFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19VUERBVEVfTE9DS19fT1RHX1VQREFURV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0VOX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHMV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfUkFOR0VfVElNSU5HX0RCVUZfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzFfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1RJTUlOR19EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR18zRF9DVFJMX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT1RHMV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0VOX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE9URzFfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1VQREFURV9JTlNUQU5UTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19WU1RBUlRVUF9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHMV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfRFNDX1BPU0lUSU9OX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzFfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRE9VQkxFX0JVRkZFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfUkFOR0VfVElNSU5HX0RCVUZfVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19IX1RJTUlOR19ESVZfQlkyX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0VOX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19SQU5HRV9USU1JTkdfREJVRl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19USU1JTkdfREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR18zRF9DVFJMX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRU5fREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19VUERBVEVfSU5TVEFOVExZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19WU1RBUlRVUF9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19EU0NfUE9TSVRJT05fREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0RPVUJMRV9CVUZGRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcxX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19SQU5HRV9USU1JTkdfREJVRl9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9PVEcxX09UR19NQVNURVJfRU4KKyNkZWZpbmUgT1RHMV9PVEdfTUFTVEVSX0VOX19PVEdfTUFTVEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX01BU1RFUl9FTl9fT1RHX01BU1RFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzFfT1RHX0JMQU5LX0RBVEFfQ09MT1IKKyNkZWZpbmUgT1RHMV9PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkxVRV9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX0dSRUVOX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEcxX09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9SRURfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzFfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX0JMVUVfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIE9URzFfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX0dSRUVOX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIE9URzFfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX1JFRF9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGMDAwMDBMCisvL09URzFfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUCisjZGVmaW5lIE9URzFfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9CTFVFX0NCX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfR1JFRU5fWV9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX1JFRF9DUl9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkxVRV9DQl9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBPVEcxX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfR1JFRU5fWV9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBPVEcxX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfUkVEX0NSX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9PVEcxX09UR19CTEFDS19DT0xPUgorI2RlZmluZSBPVEcxX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzFfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMV9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgT1RHMV9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkYwMDAwMEwKKy8vT1RHMV9PVEdfQkxBQ0tfQ09MT1JfRVhUCisjZGVmaW5lIE9URzFfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX0JfQ0JfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9HX1lfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfUl9DUl9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9CX0NCX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBPVEcxX09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9HX1lfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBPVEcxX09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9SX0NSX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9PVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0xJTkVfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9MSU5FX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0xJTkVfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0xJTkVfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX09VVFBVVF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX09VVFBVVF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0xJTkVfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9MSU5FX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0xJTkVfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9MSU5FX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEcxX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEcxX09UR19DUkNfQ05UTAorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTF9fT1RHX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfRFVBTF9MSU5LX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzFfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0RVQUxfTElOS19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTF9fT1RHX0NSQ19CTEFOS19PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzFfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0NBUFRVUkVfU1RBUlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTF9fT1RHX0NSQ19TVEVSRU9fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfSU5URVJMQUNFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzFfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX1VTRV9ORVdfQU5EX1JFUEVBVEVEX1BJWEVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkMwX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTF9fT1RHX0NSQzFfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzFfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMxX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzFfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDM19QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfRFVBTF9MSU5LX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfRFVBTF9MSU5LX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfQkxBTktfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfQ0FQVFVSRV9TVEFSVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA2MEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfU1RFUkVPX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfSU5URVJMQUNFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkNfVVNFX05FV19BTkRfUkVQRUFURURfUElYRUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkMwX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19DUkMxX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMwX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMxX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMyX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMzX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMV9PVEdfQ1JDX0NOVEwyCisjZGVmaW5lIE9URzFfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EU0NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9TVFJFQU1fQ09NQklORV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfU1RSRUFNX1NQTElUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzFfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTDJfX09UR19DUkNfRFNDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9TVFJFQU1fQ09NQklORV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9TVFJFQU1fU1BMSVRfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBPVEcxX09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9PVEcxX09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MCisjZGVmaW5lIE9URzFfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1hfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzFfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzFfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9ZX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMV9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9YX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcxX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1hfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcxX09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MCisjZGVmaW5lIE9URzFfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1lfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzFfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzFfT1RHX0NSQzBfREFUQV9SRworI2RlZmluZSBPVEcxX09UR19DUkMwX0RBVEFfUkdfX0NSQzBfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMF9EQVRBX1JHX19DUkMwX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19DUkMwX0RBVEFfUkdfX0NSQzBfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcxX09UR19DUkMwX0RBVEFfUkdfX0NSQzBfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcxX09UR19DUkMwX0RBVEFfQgorI2RlZmluZSBPVEcxX09UR19DUkMwX0RBVEFfQl9fQ1JDMF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMF9EQVRBX0JfX0NSQzBfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19DUkMwX0RBVEFfQl9fQ1JDMF9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcxX09UR19DUkMwX0RBVEFfQl9fQ1JDMF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcxX09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MCisjZGVmaW5lIE9URzFfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1hfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzFfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzFfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9ZX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMV9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9YX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcxX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1hfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcxX09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MCisjZGVmaW5lIE9URzFfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1lfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzFfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzFfT1RHX0NSQzFfREFUQV9SRworI2RlZmluZSBPVEcxX09UR19DUkMxX0RBVEFfUkdfX0NSQzFfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMV9EQVRBX1JHX19DUkMxX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19DUkMxX0RBVEFfUkdfX0NSQzFfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcxX09UR19DUkMxX0RBVEFfUkdfX0NSQzFfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcxX09UR19DUkMxX0RBVEFfQgorI2RlZmluZSBPVEcxX09UR19DUkMxX0RBVEFfQl9fQ1JDMV9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMV9EQVRBX0JfX0NSQzFfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19DUkMxX0RBVEFfQl9fQ1JDMV9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcxX09UR19DUkMxX0RBVEFfQl9fQ1JDMV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcxX09UR19DUkMyX0RBVEFfUkcKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMl9EQVRBX1JHX19DUkMyX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0NSQzJfREFUQV9SR19fQ1JDMl9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMl9EQVRBX1JHX19DUkMyX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMl9EQVRBX1JHX19DUkMyX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMV9PVEdfQ1JDMl9EQVRBX0IKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMl9EQVRBX0JfX0NSQzJfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0NSQzJfREFUQV9CX19DUkMyX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMl9EQVRBX0JfX0NSQzJfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDMl9EQVRBX0JfX0NSQzJfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMV9PVEdfQ1JDM19EQVRBX1JHCisjZGVmaW5lIE9URzFfT1RHX0NSQzNfREFUQV9SR19fQ1JDM19SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19DUkMzX0RBVEFfUkdfX0NSQzNfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0NSQzNfREFUQV9SR19fQ1JDM19SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzFfT1RHX0NSQzNfREFUQV9SR19fQ1JDM19HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzFfT1RHX0NSQzNfREFUQV9CCisjZGVmaW5lIE9URzFfT1RHX0NSQzNfREFUQV9CX19DUkMzX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19DUkMzX0RBVEFfQl9fQ1JDM19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0NSQzNfREFUQV9CX19DUkMzX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzFfT1RHX0NSQzNfREFUQV9CX19DUkMzX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzFfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0sKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19fT1RHX0NSQ19TSUdfUkVEX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfX09UR19DUkNfU0lHX0dSRUVOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19fT1RHX0NSQ19TSUdfUkVEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19fT1RHX0NSQ19TSUdfR1JFRU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMV9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTSworI2RlZmluZSBPVEcxX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX19PVEdfQ1JDX1NJR19CTFVFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19fT1RHX0NSQ19TSUdfQ09OVFJPTF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX19PVEdfQ1JDX1NJR19CTFVFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcxX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX19PVEdfQ1JDX1NJR19DT05UUk9MX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9FVkVOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fRlJBTUVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TU19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE9URzFfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9URzFfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHMV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9PVkVSUklERV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX0VWRU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TU19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX09WRVJSSURFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcxX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfVl9VUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX1NURVJFT19TRUxfT1ZSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcxX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfUkVTRVRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHMV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEcxX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcxX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9WX1VQREFURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPVEcxX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9TVEVSRU9fU0VMX09WUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcxX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcxX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX1JFU0VUX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEcxX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9PVEcxX09UR19HU0xfVlNZTkNfR0FQCisjZGVmaW5lIE9URzFfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfU09VUkNFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzFfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcxX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NQVNURVJfRkFTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE9URzFfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfU09VUkNFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2MDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTUFTVEVSX0ZBU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vT1RHMV9PVEdfTUFTVEVSX1VQREFURV9NT0RFCisjZGVmaW5lIE9URzFfT1RHX01BU1RFUl9VUERBVEVfTU9ERV9fTUFTVEVSX1VQREFURV9JTlRFUkxBQ0VEX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19NQVNURVJfVVBEQVRFX01PREVfX01BU1RFUl9VUERBVEVfSU5URVJMQUNFRF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9PVEcxX09UR19DTE9DS19DT05UUk9MCisjZGVmaW5lIE9URzFfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMV9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzFfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19DTE9DS19DT05UUk9MX19PVEdfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzFfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzFfT1RHX0NMT0NLX0NPTlRST0xfX09UR19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzFfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzFfT1RHX0NMT0NLX0NPTlRST0xfX09UR19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL09URzFfT1RHX1ZTVEFSVFVQX1BBUkFNCisjZGVmaW5lIE9URzFfT1RHX1ZTVEFSVFVQX1BBUkFNX19WU1RBUlRVUF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19WU1RBUlRVUF9QQVJBTV9fVlNUQVJUVVBfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9PVEcxX09UR19WVVBEQVRFX1BBUkFNCisjZGVmaW5lIE9URzFfT1RHX1ZVUERBVEVfUEFSQU1fX1ZVUERBVEVfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19WVVBEQVRFX1BBUkFNX19WVVBEQVRFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX1ZVUERBVEVfUEFSQU1fX1ZVUERBVEVfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzFfT1RHX1ZVUERBVEVfUEFSQU1fX1ZVUERBVEVfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL09URzFfT1RHX1ZSRUFEWV9QQVJBTQorI2RlZmluZSBPVEcxX09UR19WUkVBRFlfUEFSQU1fX1ZSRUFEWV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfVlJFQURZX1BBUkFNX19WUkVBRFlfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vT1RHMV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0VWRU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1BPU0lUSU9OX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfRVZFTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19FVkVOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9FVkVOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fU1RFUkVPX1NFTEVDVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19GSUVMRF9OVU1CRVJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0VWRU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1BPU0lUSU9OX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfRVZFTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19FVkVOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9FVkVOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1NURVJFT19TRUxFQ1RfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX0ZJRUxEX05VTUJFUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorLy9PVEcxX09UR19NQVNURVJfVVBEQVRFX0xPQ0sKKyNkZWZpbmUgT1RHMV9PVEdfTUFTVEVSX1VQREFURV9MT0NLX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX01BU1RFUl9VUERBVEVfTE9DS19fVVBEQVRFX0xPQ0tfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcxX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX1VQREFURV9MT0NLX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9PVEcxX09UR19HU0xfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wxX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzFfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9NQVNURVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfTUFTVEVSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzFfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0NIRUNLX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9GT1JDRV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0NIRUNLX0FMTF9GSUVMRFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX0NPTlRST0xfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfR1NMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDBfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9NQVNURVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9NQVNURVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9DSEVDS19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9GT1JDRV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9DSEVDS19BTExfRklFTERTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19HU0xfQ09OVFJPTF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19HU0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcxX09UR19HU0xfV0lORE9XX1gKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1dJTkRPV19YX19PVEdfR1NMX1dJTkRPV19TVEFSVF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0dTTF9XSU5ET1dfWF9fT1RHX0dTTF9XSU5ET1dfRU5EX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1dJTkRPV19YX19PVEdfR1NMX1dJTkRPV19TVEFSVF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfR1NMX1dJTkRPV19YX19PVEdfR1NMX1dJTkRPV19FTkRfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMV9PVEdfR1NMX1dJTkRPV19ZCisjZGVmaW5lIE9URzFfT1RHX0dTTF9XSU5ET1dfWV9fT1RHX0dTTF9XSU5ET1dfU1RBUlRfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19HU0xfV0lORE9XX1lfX09UR19HU0xfV0lORE9XX0VORF9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0dTTF9XSU5ET1dfWV9fT1RHX0dTTF9XSU5ET1dfU1RBUlRfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzFfT1RHX0dTTF9XSU5ET1dfWV9fT1RHX0dTTF9XSU5ET1dfRU5EX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzFfT1RHX1ZVUERBVEVfS0VFUE9VVAorI2RlZmluZSBPVEcxX09UR19WVVBEQVRFX0tFRVBPVVRfX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfU1RBUlRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfVlVQREFURV9LRUVQT1VUX19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX0VORF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19WVVBEQVRFX0tFRVBPVVRfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzFfT1RHX1ZVUERBVEVfS0VFUE9VVF9fTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9TVEFSVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzFfT1RHX1ZVUERBVEVfS0VFUE9VVF9fTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9FTkRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisjZGVmaW5lIE9URzFfT1RHX1ZVUERBVEVfS0VFUE9VVF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzFfT1RHX0dMT0JBTF9DT05UUk9MMAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfSFRPVEFMX0tFRVBPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0hUT1RBTF9LRUVQT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0hUT1RBTF9LRUVQT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0hUT1RBTF9LRUVQT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKy8vT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wxCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wyCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9DT05UUk9MMl9fRElHX1VQREFURV9MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDJfX0dMT0JBTF9VUERBVEVfTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wyX19NQU5VQUxfRkxPV19DT05UUk9MX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDJfX01BU1RFUl9VUERBVEVfTE9DS19XSU5ET1dfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9DT05UUk9MMl9fT1RHX1ZVUERBVEVfQkxPQ0tfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wyX19EQ0NHX1ZVUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDJfX0RJR19VUERBVEVfTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDJfX0dMT0JBTF9VUERBVEVfTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDJfX01BTlVBTF9GTE9XX0NPTlRST0xfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDJfX01BU1RFUl9VUERBVEVfTE9DS19XSU5ET1dfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDJfX09UR19WVVBEQVRFX0JMT0NLX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDJfX0RDQ0dfVlVQREFURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcxX09UR19HTE9CQUxfQ09OVFJPTDMKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX1NURVJFT19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcxX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9GSUVMRF9TVEVSRU9fRkxBR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRklFTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfU1RFUkVPX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgT1RHMV9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRklFTERfU1RFUkVPX0ZMQUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vT1RHMV9PVEdfVFJJR19NQU5VQUxfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19UUklHX01BTlVBTF9DT05UUk9MX19UUklHX01BTlVBTF9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfVFJJR19NQU5VQUxfQ09OVFJPTF9fVFJJR19NQU5VQUxfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMV9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTAorI2RlZmluZSBPVEcxX09UR19NQU5VQUxfRkxPV19DT05UUk9MX19NQU5VQUxfRkxPV19DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMV9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTF9fTUFOVUFMX0ZMT1dfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVMKKyNkZWZpbmUgT1RHMV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcxX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzFfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vT1RHMV9PVEdfRFJSX0NPTlRST0wKKyNkZWZpbmUgT1RHMV9PVEdfRFJSX0NPTlRST0xfX09UR19EUlJfQVZFUkFHRV9GUkFNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0RSUl9DT05UUk9MX19PVEdfVl9UT1RBTF9MQVNUX1VTRURfQllfRFJSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfRFJSX0NPTlRST0xfX09UR19EUlJfQVZFUkFHRV9GUkFNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgT1RHMV9PVEdfRFJSX0NPTlRST0xfX09UR19WX1RPVEFMX0xBU1RfVVNFRF9CWV9EUlJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMV9PVEdfUkVRVUVTVF9DT05UUk9MCisjZGVmaW5lIE9URzFfT1RHX1JFUVVFU1RfQ09OVFJPTF9fT1RHX1JFUVVFU1RfTU9ERV9GT1JfSF9EVVBMSUNBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19SRVFVRVNUX0NPTlRST0xfX09UR19SRVFVRVNUX01PREVfRk9SX0hfRFVQTElDQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcxX09UR19EU0NfU1RBUlRfUE9TSVRJT04KKyNkZWZpbmUgT1RHMV9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX19PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9fT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX19PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMV9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX19PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTCisjZGVmaW5lIE9URzFfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcxX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9UQUtFTl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzFfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcxX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9UQUtFTl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE9URzFfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcxX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9UQUtFTl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzFfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX1ZVUERBVEVfS0VFUE9VVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9UQUtFTl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9UQUtFTl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9UQUtFTl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHMV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfVlVQREFURV9LRUVQT1VUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vT1RHMV9PVEdfU1BBUkVfUkVHSVNURVIKKyNkZWZpbmUgT1RHMV9PVEdfU1BBUkVfUkVHSVNURVJfX09UR19TUEFSRV9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzFfT1RHX1NQQVJFX1JFR0lTVEVSX19PVEdfU1BBUkVfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vdGcyX2Rpc3BkZWMKKy8vT1RHMl9PVEdfSF9UT1RBTAorI2RlZmluZSBPVEcyX09UR19IX1RPVEFMX19PVEdfSF9UT1RBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfSF9UT1RBTF9fT1RHX0hfVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHMl9PVEdfSF9CTEFOS19TVEFSVF9FTkQKKyNkZWZpbmUgT1RHMl9PVEdfSF9CTEFOS19TVEFSVF9FTkRfX09UR19IX0JMQU5LX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0hfQkxBTktfU1RBUlRfRU5EX19PVEdfSF9CTEFOS19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfSF9CTEFOS19TVEFSVF9FTkRfX09UR19IX0JMQU5LX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfSF9CTEFOS19TVEFSVF9FTkRfX09UR19IX0JMQU5LX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMl9PVEdfSF9TWU5DX0EKKyNkZWZpbmUgT1RHMl9PVEdfSF9TWU5DX0FfX09UR19IX1NZTkNfQV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0hfU1lOQ19BX19PVEdfSF9TWU5DX0FfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfSF9TWU5DX0FfX09UR19IX1NZTkNfQV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfSF9TWU5DX0FfX09UR19IX1NZTkNfQV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMl9PVEdfSF9TWU5DX0FfQ05UTAorI2RlZmluZSBPVEcyX09UR19IX1NZTkNfQV9DTlRMX19PVEdfSF9TWU5DX0FfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0NPTVBfU1lOQ19BX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19IX1NZTkNfQV9DTlRMX19PVEdfSF9TWU5DX0FfQ1VUT0ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzJfT1RHX0hfU1lOQ19BX0NOVExfX09UR19IX1NZTkNfQV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX0hfU1lOQ19BX0NOVExfX09UR19DT01QX1NZTkNfQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0hfU1lOQ19BX0NOVExfX09UR19IX1NZTkNfQV9DVVRPRkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL09URzJfT1RHX0hfVElNSU5HX0NOVEwKKyNkZWZpbmUgT1RHMl9PVEdfSF9USU1JTkdfQ05UTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0hfVElNSU5HX0NOVExfX09UR19IX1RJTUlOR19ESVZfQlkyX1VQREFURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19IX1RJTUlOR19DTlRMX19PVEdfSF9USU1JTkdfRElWX0JZMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcyX09UR19IX1RJTUlOR19DTlRMX19PVEdfSF9USU1JTkdfRElWX0JZMl9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9PVEcyX09UR19WX1RPVEFMCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfX09UR19WX1RPVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19WX1RPVEFMX19PVEdfVl9UT1RBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEcyX09UR19WX1RPVEFMX01JTgorI2RlZmluZSBPVEcyX09UR19WX1RPVEFMX01JTl9fT1RHX1ZfVE9UQUxfTUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9NSU5fX09UR19WX1RPVEFMX01JTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHMl9PVEdfVl9UT1RBTF9NQVgKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9NQVhfX09UR19WX1RPVEFMX01BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfTUFYX19PVEdfVl9UT1RBTF9NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzJfT1RHX1ZfVE9UQUxfTUlECisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfTUlEX19PVEdfVl9UT1RBTF9NSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19WX1RPVEFMX01JRF9fT1RHX1ZfVE9UQUxfTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEcyX09UR19WX1RPVEFMX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVl9UT1RBTF9NSU5fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTUFYX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcyX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NQVhfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9SRVBMQUNJTkdfTUlOX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX0ZPUkNFX0xPQ0tfT05fRVZFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19EUlJfRVZFTlRfQUNUSVZFX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfRlJBTUVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19TRVRfVl9UT1RBTF9NSU5fTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTUlOX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTUFYX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfUkVQTEFDSU5HX01BWF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfUkVQTEFDSU5HX01JTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX0ZPUkNFX0xPQ0tfT05fRVZFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX0RSUl9FVkVOVF9BQ1RJVkVfUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1NFVF9WX1RPVEFMX01JTl9NQVNLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfRlJBTUVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1NFVF9WX1RPVEFMX01JTl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzJfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVUworI2RlZmluZSBPVEcyX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzJfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vT1RHMl9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVMKKyNkZWZpbmUgT1RHMl9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfX09UR19WU1lOQ19OT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX19PVEdfVlNZTkNfTk9NX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19fT1RHX1ZTWU5DX05PTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcyX09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19fT1RHX1ZTWU5DX05PTV9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9PVEcyX09UR19WX0JMQU5LX1NUQVJUX0VORAorI2RlZmluZSBPVEcyX09UR19WX0JMQU5LX1NUQVJUX0VORF9fT1RHX1ZfQkxBTktfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVl9CTEFOS19TVEFSVF9FTkRfX09UR19WX0JMQU5LX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19WX0JMQU5LX1NUQVJUX0VORF9fT1RHX1ZfQkxBTktfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcyX09UR19WX0JMQU5LX1NUQVJUX0VORF9fT1RHX1ZfQkxBTktfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcyX09UR19WX1NZTkNfQQorI2RlZmluZSBPVEcyX09UR19WX1NZTkNfQV9fT1RHX1ZfU1lOQ19BX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVl9TWU5DX0FfX09UR19WX1NZTkNfQV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19WX1NZTkNfQV9fT1RHX1ZfU1lOQ19BX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcyX09UR19WX1NZTkNfQV9fT1RHX1ZfU1lOQ19BX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcyX09UR19WX1NZTkNfQV9DTlRMCisjZGVmaW5lIE9URzJfT1RHX1ZfU1lOQ19BX0NOVExfX09UR19WX1NZTkNfQV9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19WX1NZTkNfQV9DTlRMX19PVEdfVl9TWU5DX0FfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcyX09UR19UUklHQV9DTlRMCisjZGVmaW5lIE9URzJfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfU09VUkNFX1BJUEVfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1BPTEFSSVRZX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9SRVNZTkNfQllQQVNTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPVEcyX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfSU5QVVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1BPTEFSSVRZX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzJfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEcyX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUklTSU5HX0VER0VfREVURUNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9GQUxMSU5HX0VER0VfREVURUNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0ZSRVFVRU5DWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcyX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzJfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1NPVVJDRV9QSVBFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBFMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1BPTEFSSVRZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1JFU1lOQ19CWVBBU1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0lOUFVUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1BPTEFSSVRZX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1JJU0lOR19FREdFX0RFVEVDVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0ZBTExJTkdfRURHRV9ERVRFQ1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0ZSRVFVRU5DWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMl9PVEdfVFJJR0FfTUFOVUFMX1RSSUcKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0FfTUFOVUFMX1RSSUdfX09UR19UUklHQV9NQU5VQUxfVFJJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1RSSUdBX01BTlVBTF9UUklHX19PVEdfVFJJR0FfTUFOVUFMX1RSSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzJfT1RHX1RSSUdCX0NOVEwKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9TT1VSQ0VfUElQRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUE9MQVJJVFlfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1JFU1lOQ19CWVBBU1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzJfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9JTlBVVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUE9MQVJJVFlfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzJfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9SSVNJTkdfRURHRV9ERVRFQ1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0ZBTExJTkdfRURHRV9ERVRFQ1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfRlJFUVVFTkNZX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzJfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfU09VUkNFX1BJUEVfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEUwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUE9MQVJJVFlfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUkVTWU5DX0JZUEFTU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfSU5QVVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUE9MQVJJVFlfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUklTSU5HX0VER0VfREVURUNUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfRkFMTElOR19FREdFX0RFVEVDVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfRlJFUVVFTkNZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBPVEcyX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcyX09UR19UUklHQl9NQU5VQUxfVFJJRworI2RlZmluZSBPVEcyX09UR19UUklHQl9NQU5VQUxfVFJJR19fT1RHX1RSSUdCX01BTlVBTF9UUklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR0JfTUFOVUFMX1RSSUdfX09UR19UUklHQl9NQU5VQUxfVFJJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMl9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVEwKKyNkZWZpbmUgT1RHMl9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NIRUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19UUklHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzJfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9URzJfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NIRUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzJfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzJfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzJfT1RHX0ZMT1dfQ09OVFJPTAorI2RlZmluZSBPVEcyX09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9HUkFOVUxBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX0lOUFVUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcyX09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBPVEcyX09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcyX09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfR1JBTlVMQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcyX09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfSU5QVVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEcyX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUUKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX0FWU1lOQ19GUkFNRV9DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19BVlNZTkNfTElORV9DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX0FWU1lOQ19GUkFNRV9DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX0FWU1lOQ19MSU5FX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL09URzJfT1RHX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfQ09OVFJPTF9fT1RHX01BU1RFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19ESVNBQkxFX1BPSU5UX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19DT05UUk9MX19PVEdfU1RBUlRfUE9JTlRfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMl9PVEdfQ09OVFJPTF9fT1RHX0ZJRUxEX05VTUJFUl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19GSUVMRF9OVU1CRVJfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEcyX09UR19DT05UUk9MX19PVEdfQ1VSUkVOVF9NQVNURVJfRU5fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19ESVNQX1JFQURfUkVRVUVTVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfQ09OVFJPTF9fT1RHX0FWU1lOQ19MT0NLX1NOQVBTSE9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEcyX09UR19DT05UUk9MX19PVEdfQVZTWU5DX1ZTWU5DX05fSFNZTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19NQVNURVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19ESVNBQkxFX1BPSU5UX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19TVEFSVF9QT0lOVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19GSUVMRF9OVU1CRVJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19GSUVMRF9OVU1CRVJfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19DVVJSRU5UX01BU1RFUl9FTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19ESVNQX1JFQURfUkVRVUVTVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19BVlNZTkNfTE9DS19TTkFQU0hPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NPTlRST0xfX09UR19BVlNZTkNfVlNZTkNfTl9IU1lOQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzJfT1RHX0JMQU5LX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0NVUlJFTlRfQkxBTktfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0JMQU5LX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19CTEFOS19DT05UUk9MX19PVEdfQkxBTktfREVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0JMQU5LX0NPTlRST0xfX09UR19DVVJSRU5UX0JMQU5LX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX0JMQU5LX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzJfT1RHX0JMQU5LX0NPTlRST0xfX09UR19CTEFOS19ERV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL09URzJfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTAorI2RlZmluZSBPVEcyX09UR19QSVBFX0FCT1JUX0NPTlRST0xfX09UR19QSVBFX0FCT1JUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfUElQRV9BQk9SVF9DT05UUk9MX19PVEdfUElQRV9BQk9SVF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9fT1RHX1BJUEVfQUJPUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9fT1RHX1BJUEVfQUJPUlRfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL09URzJfT1RHX0lOVEVSTEFDRV9DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX0lOVEVSTEFDRV9DT05UUk9MX19PVEdfSU5URVJMQUNFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19JTlRFUkxBQ0VfQ09OVFJPTF9fT1RHX0lOVEVSTEFDRV9GT1JDRV9ORVhUX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0lOVEVSTEFDRV9DT05UUk9MX19PVEdfSU5URVJMQUNFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX0lOVEVSTEFDRV9DT05UUk9MX19PVEdfSU5URVJMQUNFX0ZPUkNFX05FWFRfRklFTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisvL09URzJfT1RHX0lOVEVSTEFDRV9TVEFUVVMKKyNkZWZpbmUgT1RHMl9PVEdfSU5URVJMQUNFX1NUQVRVU19fT1RHX0lOVEVSTEFDRV9DVVJSRU5UX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0lOVEVSTEFDRV9TVEFUVVNfX09UR19JTlRFUkxBQ0VfTkVYVF9GSUVMRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcyX09UR19JTlRFUkxBQ0VfU1RBVFVTX19PVEdfSU5URVJMQUNFX0NVUlJFTlRfRklFTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcyX09UR19JTlRFUkxBQ0VfU1RBVFVTX19PVEdfSU5URVJMQUNFX05FWFRfRklFTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9PVEcyX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMAorI2RlZmluZSBPVEcyX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9fT1RHX1BJWEVMX0RBVEFfQkxVRV9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfX09UR19QSVhFTF9EQVRBX0dSRUVOX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9fT1RHX1BJWEVMX0RBVEFfQkxVRV9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcyX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9fT1RHX1BJWEVMX0RBVEFfR1JFRU5fWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcyX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMQorI2RlZmluZSBPVEcyX09UR19QSVhFTF9EQVRBX1JFQURCQUNLMV9fT1RHX1BJWEVMX0RBVEFfUkVEX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzFfX09UR19QSVhFTF9EQVRBX1JFRF9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vT1RHMl9PVEdfU1RBVFVTCisjZGVmaW5lIE9URzJfT1RHX1NUQVRVU19fT1RHX1ZfQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TVEFUVVNfX09UR19WX0FDVElWRV9ESVNQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfVl9TWU5DX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzJfT1RHX1NUQVRVU19fT1RHX1ZfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEcyX09UR19TVEFUVVNfX09UR19WX0JMQU5LXzNEX1NUUlVDVFVSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfSF9CTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19TVEFUVVNfX09UR19IX0FDVElWRV9ESVNQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzJfT1RHX1NUQVRVU19fT1RHX0hfU1lOQ19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfVl9CTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfVl9BQ1RJVkVfRElTUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfVl9TWU5DX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfVl9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfVl9CTEFOS18zRF9TVFJVQ1RVUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfSF9CTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfSF9BQ1RJVkVfRElTUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX19PVEdfSF9TWU5DX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vT1RHMl9PVEdfU1RBVFVTX1BPU0lUSU9OCisjZGVmaW5lIE9URzJfT1RHX1NUQVRVU19QT1NJVElPTl9fT1RHX1ZFUlRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TVEFUVVNfUE9TSVRJT05fX09UR19IT1JaX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX1NUQVRVU19QT1NJVElPTl9fT1RHX1ZFUlRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzJfT1RHX1NUQVRVU19QT1NJVElPTl9fT1RHX0hPUlpfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzJfT1RHX05PTV9WRVJUX1BPU0lUSU9OCisjZGVmaW5lIE9URzJfT1RHX05PTV9WRVJUX1BPU0lUSU9OX19PVEdfVkVSVF9DT1VOVF9OT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19OT01fVkVSVF9QT1NJVElPTl9fT1RHX1ZFUlRfQ09VTlRfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEcyX09UR19TVEFUVVNfRlJBTUVfQ09VTlQKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UX19PVEdfRlJBTUVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1NUQVRVU19GUkFNRV9DT1VOVF9fT1RHX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL09URzJfT1RHX1NUQVRVU19WRl9DT1VOVAorI2RlZmluZSBPVEcyX09UR19TVEFUVVNfVkZfQ09VTlRfX09UR19WRl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVFVTX1ZGX0NPVU5UX19PVEdfVkZfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vT1RHMl9PVEdfU1RBVFVTX0hWX0NPVU5UCisjZGVmaW5lIE9URzJfT1RHX1NUQVRVU19IVl9DT1VOVF9fT1RHX0hWX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TVEFUVVNfSFZfQ09VTlRfX09UR19IVl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9PVEcyX09UR19DT1VOVF9DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX0NPVU5UX0NPTlRST0xfX09UR19IT1JaX0NPVU5UX0JZMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19DT1VOVF9DT05UUk9MX19PVEdfSE9SWl9SRVBFVElUSU9OX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMl9PVEdfQ09VTlRfQ09OVFJPTF9fT1RHX0hPUlpfQ09VTlRfQlkyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9PVEdfQ09VTlRfQ09OVFJPTF9fT1RHX0hPUlpfUkVQRVRJVElPTl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRUwKKy8vT1RHMl9PVEdfQ09VTlRfUkVTRVQKKyNkZWZpbmUgT1RHMl9PVEdfQ09VTlRfUkVTRVRfX09UR19SRVNFVF9GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NPVU5UX1JFU0VUX19PVEdfUkVTRVRfRlJBTUVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzJfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkUKKyNkZWZpbmUgT1RHMl9PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9fT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzJfT1RHX1ZFUlRfU1lOQ19DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19BVVRPX0ZPUkNFX1ZTWU5DX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcyX09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcyX09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0FVVE9fRk9SQ0VfVlNZTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9PVEcyX09UR19TVEVSRU9fU1RBVFVTCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fQ1VSUkVOVF9FWUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19TWU5DX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX0NVUlJFTlRfM0RfU1RSVUNUVVJFX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEcyX09UR19TVEVSRU9fU1RBVFVTX19PVEdfQ1VSUkVOVF9TVEVSRU9TWU5DX0VOX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fQ1VSUkVOVF9FWUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fU1lOQ19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19TVEFUVVNfX09UR19DVVJSRU5UXzNEX1NUUlVDVFVSRV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19TVEFUVVNfX09UR19DVVJSRU5UX1NURVJFT1NZTkNfRU5fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzJfT1RHX1NURVJFT19DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19TWU5DX09VVFBVVF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fRVlFX0ZMQUdfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEcyX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfU1RFUkVPU1lOQ19PVVRQVVRfRk9SX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9GSUVMRF9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX1ZfQkxBTktfRk9SX0RQX0ZJWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcyX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0ZJRUxEX05VTV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE9URzJfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fRVlFX0ZMQUdfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX1NURVJFT1NZTkNfT1VUUFVUX0ZPUl9EUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX0ZJRUxEX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX1ZfQkxBTktfRk9SX0RQX0ZJWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19GSUVMRF9OVU1fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHMl9PVEdfU05BUFNIT1RfU1RBVFVTCisjZGVmaW5lIE9URzJfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHMl9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfTUFOVUFMX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzJfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzJfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX01BTlVBTF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL09URzJfT1RHX1NOQVBTSE9UX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfU05BUFNIT1RfQ09OVFJPTF9fT1RHX0FVVE9fU05BUFNIT1RfVFJJR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1NOQVBTSE9UX0NPTlRST0xfX09UR19BVVRPX1NOQVBTSE9UX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL09URzJfT1RHX1NOQVBTSE9UX1BPU0lUSU9OCisjZGVmaW5lIE9URzJfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX19PVEdfU05BUFNIT1RfVkVSVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TTkFQU0hPVF9QT1NJVElPTl9fT1RHX1NOQVBTSE9UX0hPUlpfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX19PVEdfU05BUFNIT1RfVkVSVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzJfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX19PVEdfU05BUFNIT1RfSE9SWl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzJfT1RHX1NOQVBTSE9UX0ZSQU1FCisjZGVmaW5lIE9URzJfT1RHX1NOQVBTSE9UX0ZSQU1FX19PVEdfU05BUFNIT1RfRlJBTUVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TTkFQU0hPVF9GUkFNRV9fT1RHX1NOQVBTSE9UX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9PVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1NOQVBTSE9UX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19TTkFQU0hPVF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzJfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHMl9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzJfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0FfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQl9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdBX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE9URzJfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0JfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgT1RHMl9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19WU1lOQ19OT01fSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1ZTWU5DX05PTV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE9URzJfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfR1NMX1ZTWU5DX0dBUF9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHMl9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19HU0xfVlNZTkNfR0FQX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1NOQVBTSE9UX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1NOQVBTSE9UX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdBX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdCX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdBX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdCX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1ZTWU5DX05PTV9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1ZTWU5DX05PTV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0dTTF9WU1lOQ19HQVBfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEcyX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0dTTF9WU1lOQ19HQVBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcyX09UR19VUERBVEVfTE9DSworI2RlZmluZSBPVEcyX09UR19VUERBVEVfTE9DS19fT1RHX1VQREFURV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVVBEQVRFX0xPQ0tfX09UR19VUERBVEVfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19IX1RJTUlOR19ESVZfQlkyX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfQkxBTktfREFUQV9FTl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzJfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1JBTkdFX1RJTUlOR19EQlVGX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19USU1JTkdfREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfM0RfQ1RSTF9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE9URzJfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9FTl9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBPVEcyX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19VUERBVEVfSU5TVEFOVExZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVlNUQVJUVVBfREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzJfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0RTQ19QT1NJVElPTl9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEcyX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0RPVUJMRV9CVUZGRVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1JBTkdFX1RJTUlOR19EQlVGX1VQREFURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfSF9USU1JTkdfRElWX0JZMl9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfQkxBTktfREFUQV9FTl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfUkFOR0VfVElNSU5HX0RCVUZfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVElNSU5HX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfM0RfQ1RSTF9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0VOX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVVBEQVRFX0lOU1RBTlRMWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVlNUQVJUVVBfREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfRFNDX1BPU0lUSU9OX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfQkxBTktfREFUQV9ET1VCTEVfQlVGRkVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfUkFOR0VfVElNSU5HX0RCVUZfVVBEQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKy8vT1RHMl9PVEdfTUFTVEVSX0VOCisjZGVmaW5lIE9URzJfT1RHX01BU1RFUl9FTl9fT1RHX01BU1RFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19NQVNURVJfRU5fX09UR19NQVNURVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEcyX09UR19CTEFOS19EQVRBX0NPTE9SCisjZGVmaW5lIE9URzJfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX0JMVUVfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9HUkVFTl9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHMl9PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfUkVEX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEcyX09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9CTFVFX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBPVEcyX09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9HUkVFTl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorI2RlZmluZSBPVEcyX09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9SRURfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRjAwMDAwTAorLy9PVEcyX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVAorI2RlZmluZSBPVEcyX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkxVRV9DQl9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX0dSRUVOX1lfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9SRURfQ1JfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX0JMVUVfQ0JfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgT1RHMl9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX0dSRUVOX1lfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgT1RHMl9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX1JFRF9DUl9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vT1RHMl9PVEdfQkxBQ0tfQ09MT1IKKyNkZWZpbmUgT1RHMl9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEcyX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzJfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIE9URzJfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIE9URzJfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGMDAwMDBMCisvL09URzJfT1RHX0JMQUNLX0NPTE9SX0VYVAorI2RlZmluZSBPVEcyX09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9CX0NCX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfR19ZX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX1JfQ1JfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfQl9DQl9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgT1RHMl9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfR19ZX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgT1RHMl9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfUl9DUl9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTgorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9MSU5FX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTElORV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9MSU5FX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9MSU5FX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9PVVRQVVRfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9PVVRQVVRfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTgorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9MSU5FX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfTElORV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTgorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9MSU5FX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfTElORV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzJfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHMl9PVEdfQ1JDX0NOVEwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVExfX09UR19DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0RVQUxfTElOS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcyX09UR19DUkNfQ05UTF9fT1RHX0NSQ19EVUFMX0xJTktfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVExfX09UR19DUkNfQkxBTktfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0NPTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX09UR19DUkNfQ05UTF9fT1RHX0NSQ19DQVBUVVJFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVExfX09UR19DUkNfU1RFUkVPX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0lOVEVSTEFDRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcyX09UR19DUkNfQ05UTF9fT1RHX0NSQ19VU0VfTkVXX0FORF9SRVBFQVRFRF9QSVhFTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDMF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVExfX09UR19DUkMxX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEcyX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzBfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMyX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEcyX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzNfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0RVQUxfTElOS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0RVQUxfTElOS19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0JMQU5LX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0NPTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0NBUFRVUkVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNjBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX1NURVJFT19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0lOVEVSTEFDRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX1VTRV9ORVdfQU5EX1JFUEVBVEVEX1BJWEVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDMF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfQ1JDMV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDM19QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzJfT1RHX0NSQ19DTlRMMgorI2RlZmluZSBPVEcyX09UR19DUkNfQ05UTDJfX09UR19DUkNfRFNDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfU1RSRUFNX0NPTUJJTkVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzJfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX1NUUkVBTV9TUExJVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfU1RSRUFNX0NPTUJJTkVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfU1RSRUFNX1NQTElUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vT1RHMl9PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTAorI2RlZmluZSBPVEcyX09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9YX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcyX09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1hfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcyX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1lfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzJfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzJfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9YX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMl9PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTAorI2RlZmluZSBPVEcyX09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9ZX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcyX09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1lfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcyX09UR19DUkMwX0RBVEFfUkcKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9EQVRBX1JHX19DUkMwX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NSQzBfREFUQV9SR19fQ1JDMF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9EQVRBX1JHX19DUkMwX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9EQVRBX1JHX19DUkMwX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMl9PVEdfQ1JDMF9EQVRBX0IKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9EQVRBX0JfX0NSQzBfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NSQzBfREFUQV9CX19DUkMwX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9EQVRBX0JfX0NSQzBfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMF9EQVRBX0JfX0NSQzBfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMl9PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTAorI2RlZmluZSBPVEcyX09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9YX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcyX09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1hfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcyX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1lfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzJfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzJfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9YX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHMl9PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTAorI2RlZmluZSBPVEcyX09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9ZX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcyX09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1lfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcyX09UR19DUkMxX0RBVEFfUkcKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9EQVRBX1JHX19DUkMxX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NSQzFfREFUQV9SR19fQ1JDMV9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9EQVRBX1JHX19DUkMxX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9EQVRBX1JHX19DUkMxX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMl9PVEdfQ1JDMV9EQVRBX0IKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9EQVRBX0JfX0NSQzFfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NSQzFfREFUQV9CX19DUkMxX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9EQVRBX0JfX0NSQzFfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDMV9EQVRBX0JfX0NSQzFfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMl9PVEdfQ1JDMl9EQVRBX1JHCisjZGVmaW5lIE9URzJfT1RHX0NSQzJfREFUQV9SR19fQ1JDMl9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19DUkMyX0RBVEFfUkdfX0NSQzJfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0NSQzJfREFUQV9SR19fQ1JDMl9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzJfT1RHX0NSQzJfREFUQV9SR19fQ1JDMl9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzJfT1RHX0NSQzJfREFUQV9CCisjZGVmaW5lIE9URzJfT1RHX0NSQzJfREFUQV9CX19DUkMyX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19DUkMyX0RBVEFfQl9fQ1JDMl9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0NSQzJfREFUQV9CX19DUkMyX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzJfT1RHX0NSQzJfREFUQV9CX19DUkMyX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzJfT1RHX0NSQzNfREFUQV9SRworI2RlZmluZSBPVEcyX09UR19DUkMzX0RBVEFfUkdfX0NSQzNfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDM19EQVRBX1JHX19DUkMzX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19DUkMzX0RBVEFfUkdfX0NSQzNfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcyX09UR19DUkMzX0RBVEFfUkdfX0NSQzNfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcyX09UR19DUkMzX0RBVEFfQgorI2RlZmluZSBPVEcyX09UR19DUkMzX0RBVEFfQl9fQ1JDM19CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDM19EQVRBX0JfX0NSQzNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19DUkMzX0RBVEFfQl9fQ1JDM19CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcyX09UR19DUkMzX0RBVEFfQl9fQ1JDM19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEcyX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLCisjZGVmaW5lIE9URzJfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfX09UR19DUkNfU0lHX1JFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX19PVEdfQ1JDX1NJR19HUkVFTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfX09UR19DUkNfU0lHX1JFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzJfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfX09UR19DUkNfU0lHX0dSRUVOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzJfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0sKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19fT1RHX0NSQ19TSUdfQkxVRV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfX09UR19DUkNfU0lHX0NPTlRST0xfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19fT1RHX0NSQ19TSUdfQkxVRV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19fT1RHX0NSQ19TSUdfQ09OVFJPTF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fRVZFTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX0ZSQU1FX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1NfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBPVEcyX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE9URzJfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPVEcyX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzJfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fT1ZFUlJJREVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9FVkVOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9GUkFNRV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1NfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9PVkVSUklERV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMl9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX1ZfVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9TVEVSRU9fU0VMX09WUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMl9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX1JFU0VUX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzJfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHMl9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfVl9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgT1RHMl9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfU1RFUkVPX1NFTF9PVlJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9SRVNFVF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vT1RHMl9PVEdfR1NMX1ZTWU5DX0dBUAorI2RlZmluZSBPVEcyX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX1NPVVJDRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEcyX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTUFTVEVSX0ZBU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBPVEcyX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX1NPVVJDRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNjAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01BU1RFUl9GQVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL09URzJfT1RHX01BU1RFUl9VUERBVEVfTU9ERQorI2RlZmluZSBPVEcyX09UR19NQVNURVJfVVBEQVRFX01PREVfX01BU1RFUl9VUERBVEVfSU5URVJMQUNFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfTUFTVEVSX1VQREFURV9NT0RFX19NQVNURVJfVVBEQVRFX0lOVEVSTEFDRURfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vT1RHMl9PVEdfQ0xPQ0tfQ09OVFJPTAorI2RlZmluZSBPVEcyX09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzJfT1RHX0NMT0NLX0NPTlRST0xfX09UR19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEcyX09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEcyX09UR19DTE9DS19DT05UUk9MX19PVEdfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEcyX09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEcyX09UR19DTE9DS19DT05UUk9MX19PVEdfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9PVEcyX09UR19WU1RBUlRVUF9QQVJBTQorI2RlZmluZSBPVEcyX09UR19WU1RBUlRVUF9QQVJBTV9fVlNUQVJUVVBfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVlNUQVJUVVBfUEFSQU1fX1ZTVEFSVFVQX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKy8vT1RHMl9PVEdfVlVQREFURV9QQVJBTQorI2RlZmluZSBPVEcyX09UR19WVVBEQVRFX1BBUkFNX19WVVBEQVRFX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfVlVQREFURV9QQVJBTV9fVlVQREFURV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19WVVBEQVRFX1BBUkFNX19WVVBEQVRFX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcyX09UR19WVVBEQVRFX1BBUkFNX19WVVBEQVRFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9PVEcyX09UR19WUkVBRFlfUEFSQU0KKyNkZWZpbmUgT1RHMl9PVEdfVlJFQURZX1BBUkFNX19WUkVBRFlfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1ZSRUFEWV9QQVJBTV9fVlJFQURZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL09URzJfT1RHX0dMT0JBTF9TWU5DX1NUQVRVUworI2RlZmluZSBPVEcyX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9FVkVOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9QT1NJVElPTl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0VWRU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfRVZFTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEcyX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfRVZFTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1NURVJFT19TRUxFQ1RfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fRklFTERfTlVNQkVSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9FVkVOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9QT1NJVElPTl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0VWRU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfRVZFTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfRVZFTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19TVEVSRU9fU0VMRUNUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19GSUVMRF9OVU1CRVJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vT1RHMl9PVEdfTUFTVEVSX1VQREFURV9MT0NLCisjZGVmaW5lIE9URzJfT1RHX01BU1RFUl9VUERBVEVfTE9DS19fT1RHX01BU1RFUl9VUERBVEVfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX1VQREFURV9MT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfTUFTVEVSX1VQREFURV9MT0NLX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9PVEdfTUFTVEVSX1VQREFURV9MT0NLX19VUERBVEVfTE9DS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vT1RHMl9PVEdfR1NMX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wwX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEcyX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfTUFTVEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzJfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX01BU1RFUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEcyX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9DSEVDS19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfRk9SQ0VfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9DSEVDS19BTExfRklFTERTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9URzJfT1RHX0dTTF9DT05UUk9MX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0dTTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wwX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wxX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfTUFTVEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfTUFTVEVSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfQ0hFQ0tfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfRk9SQ0VfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfQ0hFQ0tfQUxMX0ZJRUxEU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX0NPTlRST0xfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfR1NMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMl9PVEdfR1NMX1dJTkRPV19YCisjZGVmaW5lIE9URzJfT1RHX0dTTF9XSU5ET1dfWF9fT1RHX0dTTF9XSU5ET1dfU1RBUlRfWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19HU0xfV0lORE9XX1hfX09UR19HU0xfV0lORE9XX0VORF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0dTTF9XSU5ET1dfWF9fT1RHX0dTTF9XSU5ET1dfU1RBUlRfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzJfT1RHX0dTTF9XSU5ET1dfWF9fT1RHX0dTTF9XSU5ET1dfRU5EX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzJfT1RHX0dTTF9XSU5ET1dfWQorI2RlZmluZSBPVEcyX09UR19HU0xfV0lORE9XX1lfX09UR19HU0xfV0lORE9XX1NUQVJUX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfR1NMX1dJTkRPV19ZX19PVEdfR1NMX1dJTkRPV19FTkRfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19HU0xfV0lORE9XX1lfX09UR19HU0xfV0lORE9XX1NUQVJUX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEcyX09UR19HU0xfV0lORE9XX1lfX09UR19HU0xfV0lORE9XX0VORF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEcyX09UR19WVVBEQVRFX0tFRVBPVVQKKyNkZWZpbmUgT1RHMl9PVEdfVlVQREFURV9LRUVQT1VUX19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX1NUQVJUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1ZVUERBVEVfS0VFUE9VVF9fTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9FTkRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfVlVQREFURV9LRUVQT1VUX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEcyX09UR19WVVBEQVRFX0tFRVBPVVRfX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfU1RBUlRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEcyX09UR19WVVBEQVRFX0tFRVBPVVRfX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfRU5EX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorI2RlZmluZSBPVEcyX09UR19WVVBEQVRFX0tFRVBPVVRfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEcyX09UR19HTE9CQUxfQ09OVFJPTDAKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0hUT1RBTF9LRUVQT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19IVE9UQUxfS0VFUE9VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19IVE9UQUxfS0VFUE9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19IVE9UQUxfS0VFUE9VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisvL09URzJfT1RHX0dMT0JBTF9DT05UUk9MMQorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzJfT1RHX0dMT0JBTF9DT05UUk9MMgorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfQ09OVFJPTDJfX0RJR19VUERBVEVfTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wyX19HTE9CQUxfVVBEQVRFX0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MMl9fTUFOVUFMX0ZMT1dfQ09OVFJPTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wyX19NQVNURVJfVVBEQVRFX0xPQ0tfV0lORE9XX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfQ09OVFJPTDJfX09UR19WVVBEQVRFX0JMT0NLX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MMl9fRENDR19WVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wyX19ESUdfVVBEQVRFX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wyX19HTE9CQUxfVVBEQVRFX0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wyX19NQU5VQUxfRkxPV19DT05UUk9MX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wyX19NQVNURVJfVVBEQVRFX0xPQ0tfV0lORE9XX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wyX19PVEdfVlVQREFURV9CTE9DS19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wyX19EQ0NHX1ZVUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wzCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9TVEVSRU9fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMl9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRklFTERfU1RFUkVPX0ZMQUdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX1NURVJFT19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE9URzJfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX0ZJRUxEX1NURVJFT19GTEFHX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL09URzJfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfVFJJR19NQU5VQUxfQ09OVFJPTF9fVFJJR19NQU5VQUxfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0xfX1RSSUdfTUFOVUFMX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzJfT1RHX01BTlVBTF9GTE9XX0NPTlRST0wKKyNkZWZpbmUgT1RHMl9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTF9fTUFOVUFMX0ZMT1dfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzJfT1RHX01BTlVBTF9GTE9XX0NPTlRST0xfX01BTlVBTF9GTE9XX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzJfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTCisjZGVmaW5lIE9URzJfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMl9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzJfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEcyX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzJfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzJfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzJfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL09URzJfT1RHX0RSUl9DT05UUk9MCisjZGVmaW5lIE9URzJfT1RHX0RSUl9DT05UUk9MX19PVEdfRFJSX0FWRVJBR0VfRlJBTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19EUlJfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTEFTVF9VU0VEX0JZX0RSUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0RSUl9DT05UUk9MX19PVEdfRFJSX0FWRVJBR0VfRlJBTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE9URzJfT1RHX0RSUl9DT05UUk9MX19PVEdfVl9UT1RBTF9MQVNUX1VTRURfQllfRFJSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzJfT1RHX1JFUVVFU1RfQ09OVFJPTAorI2RlZmluZSBPVEcyX09UR19SRVFVRVNUX0NPTlRST0xfX09UR19SRVFVRVNUX01PREVfRk9SX0hfRFVQTElDQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfUkVRVUVTVF9DT05UUk9MX19PVEdfUkVRVUVTVF9NT0RFX0ZPUl9IX0RVUExJQ0FURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHMl9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OCisjZGVmaW5lIE9URzJfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9fT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19EU0NfU1RBUlRfUE9TSVRJT05fX09UR19EU0NfU1RBUlRfUE9TSVRJT05fTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9fT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzJfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9fT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL09URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVUworI2RlZmluZSBPVEcyX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHMl9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfVEFLRU5fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEcyX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHMl9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfVEFLRU5fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBPVEcyX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHMl9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfVEFLRU5fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEcyX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19WVVBEQVRFX0tFRVBPVVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfVEFLRU5fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfVEFLRU5fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfVEFLRU5fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzJfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX1ZVUERBVEVfS0VFUE9VVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL09URzJfT1RHX1NQQVJFX1JFR0lTVEVSCisjZGVmaW5lIE9URzJfT1RHX1NQQVJFX1JFR0lTVEVSX19PVEdfU1BBUkVfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEcyX09UR19TUEFSRV9SRUdJU1RFUl9fT1RHX1NQQVJFX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb3RnM19kaXNwZGVjCisvL09URzNfT1RHX0hfVE9UQUwKKyNkZWZpbmUgT1RHM19PVEdfSF9UT1RBTF9fT1RHX0hfVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0hfVE9UQUxfX09UR19IX1RPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzNfT1RHX0hfQkxBTktfU1RBUlRfRU5ECisjZGVmaW5lIE9URzNfT1RHX0hfQkxBTktfU1RBUlRfRU5EX19PVEdfSF9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19IX0JMQU5LX1NUQVJUX0VORF9fT1RHX0hfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0hfQkxBTktfU1RBUlRfRU5EX19PVEdfSF9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzNfT1RHX0hfQkxBTktfU1RBUlRfRU5EX19PVEdfSF9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzNfT1RHX0hfU1lOQ19BCisjZGVmaW5lIE9URzNfT1RHX0hfU1lOQ19BX19PVEdfSF9TWU5DX0FfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19IX1NZTkNfQV9fT1RHX0hfU1lOQ19BX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0hfU1lOQ19BX19PVEdfSF9TWU5DX0FfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzNfT1RHX0hfU1lOQ19BX19PVEdfSF9TWU5DX0FfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzNfT1RHX0hfU1lOQ19BX0NOVEwKKyNkZWZpbmUgT1RHM19PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0hfU1lOQ19BX1BPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0hfU1lOQ19BX0NOVExfX09UR19DT01QX1NZTkNfQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0hfU1lOQ19BX0NVVE9GRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEczX09UR19IX1NZTkNfQV9DTlRMX19PVEdfSF9TWU5DX0FfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19IX1NZTkNfQV9DTlRMX19PVEdfQ09NUF9TWU5DX0FfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEczX09UR19IX1NZTkNfQV9DTlRMX19PVEdfSF9TWU5DX0FfQ1VUT0ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9PVEczX09UR19IX1RJTUlOR19DTlRMCisjZGVmaW5lIE9URzNfT1RHX0hfVElNSU5HX0NOVExfX09UR19IX1RJTUlOR19ESVZfQlkyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19IX1RJTUlOR19DTlRMX19PVEdfSF9USU1JTkdfRElWX0JZMl9VUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfSF9USU1JTkdfQ05UTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHM19PVEdfSF9USU1JTkdfQ05UTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfVVBEQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vT1RHM19PVEdfVl9UT1RBTAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX19PVEdfVl9UT1RBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfVl9UT1RBTF9fT1RHX1ZfVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHM19PVEdfVl9UT1RBTF9NSU4KKyNkZWZpbmUgT1RHM19PVEdfVl9UT1RBTF9NSU5fX09UR19WX1RPVEFMX01JTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfTUlOX19PVEdfVl9UT1RBTF9NSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzNfT1RHX1ZfVE9UQUxfTUFYCisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfTUFYX19PVEdfVl9UT1RBTF9NQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX01BWF9fT1RHX1ZfVE9UQUxfTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEczX09UR19WX1RPVEFMX01JRAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX01JRF9fT1RHX1ZfVE9UQUxfTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfVl9UT1RBTF9NSURfX09UR19WX1RPVEFMX01JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHM19PVEdfVl9UT1RBTF9DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTUlOX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WX1RPVEFMX01BWF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHM19PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9SRVBMQUNJTkdfTUFYX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfUkVQTEFDSU5HX01JTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19GT1JDRV9MT0NLX09OX0VWRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHM19PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfRFJSX0VWRU5UX0FDVElWRV9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1NFVF9WX1RPVEFMX01JTl9NQVNLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX0ZSQU1FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WX1RPVEFMX01JTl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WX1RPVEFMX01BWF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NQVhfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NSU5fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19GT1JDRV9MT0NLX09OX0VWRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19EUlJfRVZFTlRfQUNUSVZFX1BFUklPRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19TRVRfVl9UT1RBTF9NSU5fTUFTS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX0ZSQU1FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0NPTlRST0xfX09UR19TRVRfVl9UT1RBTF9NSU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEczX09UR19WX1RPVEFMX0lOVF9TVEFUVVMKKyNkZWZpbmUgT1RHM19PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEczX09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL09URzNfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTCisjZGVmaW5lIE9URzNfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX19PVEdfVlNZTkNfTk9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19fT1RHX1ZTWU5DX05PTV9JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHM19PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfX09UR19WU1lOQ19OT01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHM19PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfX09UR19WU1lOQ19OT01fSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vT1RHM19PVEdfVl9CTEFOS19TVEFSVF9FTkQKKyNkZWZpbmUgT1RHM19PVEdfVl9CTEFOS19TVEFSVF9FTkRfX09UR19WX0JMQU5LX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX19PVEdfVl9CTEFOS19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfVl9CTEFOS19TVEFSVF9FTkRfX09UR19WX0JMQU5LX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHM19PVEdfVl9CTEFOS19TVEFSVF9FTkRfX09UR19WX0JMQU5LX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHM19PVEdfVl9TWU5DX0EKKyNkZWZpbmUgT1RHM19PVEdfVl9TWU5DX0FfX09UR19WX1NZTkNfQV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1ZfU1lOQ19BX19PVEdfVl9TWU5DX0FfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfVl9TWU5DX0FfX09UR19WX1NZTkNfQV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHM19PVEdfVl9TWU5DX0FfX09UR19WX1NZTkNfQV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHM19PVEdfVl9TWU5DX0FfQ05UTAorI2RlZmluZSBPVEczX09UR19WX1NZTkNfQV9DTlRMX19PVEdfVl9TWU5DX0FfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfVl9TWU5DX0FfQ05UTF9fT1RHX1ZfU1lOQ19BX1BPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHM19PVEdfVFJJR0FfQ05UTAorI2RlZmluZSBPVEczX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1NPVVJDRV9QSVBFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9QT0xBUklUWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUkVTWU5DX0JZUEFTU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0lOUFVUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9QT0xBUklUWV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEczX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1JJU0lOR19FREdFX0RFVEVDVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfRkFMTElOR19FREdFX0RFVEVDVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9GUkVRVUVOQ1lfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEczX09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9TT1VSQ0VfUElQRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9QT0xBUklUWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9SRVNZTkNfQllQQVNTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9JTlBVVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9QT0xBUklUWV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9SSVNJTkdfRURHRV9ERVRFQ1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9GQUxMSU5HX0VER0VfREVURUNUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9GUkVRVUVOQ1lfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzNfT1RHX1RSSUdBX01BTlVBTF9UUklHCisjZGVmaW5lIE9URzNfT1RHX1RSSUdBX01BTlVBTF9UUklHX19PVEdfVFJJR0FfTUFOVUFMX1RSSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19UUklHQV9NQU5VQUxfVFJJR19fT1RHX1RSSUdBX01BTlVBTF9UUklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEczX09UR19UUklHQl9DTlRMCisjZGVmaW5lIE9URzNfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfU09VUkNFX1BJUEVfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1BPTEFSSVRZX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9SRVNZTkNfQllQQVNTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPVEczX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfSU5QVVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1BPTEFSSVRZX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzNfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEczX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUklTSU5HX0VER0VfREVURUNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9GQUxMSU5HX0VER0VfREVURUNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0ZSRVFVRU5DWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEczX09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1NPVVJDRV9QSVBFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBFMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1BPTEFSSVRZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1JFU1lOQ19CWVBBU1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0lOUFVUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1BPTEFSSVRZX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1JJU0lOR19FREdFX0RFVEVDVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0ZBTExJTkdfRURHRV9ERVRFQ1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0ZSRVFVRU5DWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHM19PVEdfVFJJR0JfTUFOVUFMX1RSSUcKKyNkZWZpbmUgT1RHM19PVEdfVFJJR0JfTUFOVUFMX1RSSUdfX09UR19UUklHQl9NQU5VQUxfVFJJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1RSSUdCX01BTlVBTF9UUklHX19PVEdfVFJJR0JfTUFOVUFMX1RSSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzNfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMCisjZGVmaW5lIE9URzNfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19DSEVDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHM19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfVFJJR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEczX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPVEczX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19DSEVDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEczX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19UUklHX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEczX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEczX09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEczX09UR19GTE9XX0NPTlRST0wKKyNkZWZpbmUgT1RHM19PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfR1JBTlVMQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9JTlBVVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHM19PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgT1RHM19PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHM19PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX0dSQU5VTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX0lOUFVUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHM19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19BVlNZTkNfRlJBTUVfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfQVZTWU5DX0xJTkVfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19BVlNZTkNfRlJBTUVfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19BVlNZTkNfTElORV9DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9PVEczX09UR19DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX0NPTlRST0xfX09UR19NQVNURVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfRElTQUJMRV9QT0lOVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfQ09OVFJPTF9fT1RHX1NUQVJUX1BPSU5UX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzNfT1RHX0NPTlRST0xfX09UR19GSUVMRF9OVU1CRVJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfRklFTERfTlVNQkVSX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHM19PVEdfQ09OVFJPTF9fT1RHX0NVUlJFTlRfTUFTVEVSX0VOX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfRElTUF9SRUFEX1JFUVVFU1RfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX0NPTlRST0xfX09UR19BVlNZTkNfTE9DS19TTkFQU0hPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHM19PVEdfQ09OVFJPTF9fT1RHX0FWU1lOQ19WU1lOQ19OX0hTWU5DX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfTUFTVEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfRElTQUJMRV9QT0lOVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfU1RBUlRfUE9JTlRfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfRklFTERfTlVNQkVSX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfRklFTERfTlVNQkVSX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfQ1VSUkVOVF9NQVNURVJfRU5fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfRElTUF9SRUFEX1JFUVVFU1RfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfQVZTWU5DX0xPQ0tfU05BUFNIT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEczX09UR19DT05UUk9MX19PVEdfQVZTWU5DX1ZTWU5DX05fSFNZTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEczX09UR19CTEFOS19DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX0JMQU5LX0NPTlRST0xfX09UR19DVVJSRU5UX0JMQU5LX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19CTEFOS19DT05UUk9MX19PVEdfQkxBTktfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0JMQU5LX0RFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19CTEFOS19DT05UUk9MX19PVEdfQ1VSUkVOVF9CTEFOS19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19CTEFOS19DT05UUk9MX19PVEdfQkxBTktfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEczX09UR19CTEFOS19DT05UUk9MX19PVEdfQkxBTktfREVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9PVEczX09UR19QSVBFX0FCT1JUX0NPTlRST0wKKyNkZWZpbmUgT1RHM19PVEdfUElQRV9BQk9SVF9DT05UUk9MX19PVEdfUElQRV9BQk9SVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9fT1RHX1BJUEVfQUJPUlRfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX09UR19QSVBFX0FCT1JUX0NPTlRST0xfX09UR19QSVBFX0FCT1JUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19QSVBFX0FCT1JUX0NPTlRST0xfX09UR19QSVBFX0FCT1JUX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9PVEczX09UR19JTlRFUkxBQ0VfQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19JTlRFUkxBQ0VfQ09OVFJPTF9fT1RHX0lOVEVSTEFDRV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJMQUNFX0NPTlRST0xfX09UR19JTlRFUkxBQ0VfRk9SQ0VfTkVYVF9GSUVMRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19JTlRFUkxBQ0VfQ09OVFJPTF9fT1RHX0lOVEVSTEFDRV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19JTlRFUkxBQ0VfQ09OVFJPTF9fT1RHX0lOVEVSTEFDRV9GT1JDRV9ORVhUX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9PVEczX09UR19JTlRFUkxBQ0VfU1RBVFVTCisjZGVmaW5lIE9URzNfT1RHX0lOVEVSTEFDRV9TVEFUVVNfX09UR19JTlRFUkxBQ0VfQ1VSUkVOVF9GSUVMRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19JTlRFUkxBQ0VfU1RBVFVTX19PVEdfSU5URVJMQUNFX05FWFRfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJMQUNFX1NUQVRVU19fT1RHX0lOVEVSTEFDRV9DVVJSRU5UX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJMQUNFX1NUQVRVU19fT1RHX0lOVEVSTEFDRV9ORVhUX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vT1RHM19PVEdfUElYRUxfREFUQV9SRUFEQkFDSzAKKyNkZWZpbmUgT1RHM19PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfX09UR19QSVhFTF9EQVRBX0JMVUVfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX19PVEdfUElYRUxfREFUQV9HUkVFTl9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfX09UR19QSVhFTF9EQVRBX0JMVUVfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHM19PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfX09UR19QSVhFTF9EQVRBX0dSRUVOX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHM19PVEdfUElYRUxfREFUQV9SRUFEQkFDSzEKKyNkZWZpbmUgT1RHM19PVEdfUElYRUxfREFUQV9SRUFEQkFDSzFfX09UR19QSVhFTF9EQVRBX1JFRF9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxX19PVEdfUElYRUxfREFUQV9SRURfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL09URzNfT1RHX1NUQVRVUworI2RlZmluZSBPVEczX09UR19TVEFUVVNfX09UR19WX0JMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU1RBVFVTX19PVEdfVl9BQ1RJVkVfRElTUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX1ZfU1lOQ19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEczX09UR19TVEFUVVNfX09UR19WX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHM19PVEdfU1RBVFVTX19PVEdfVl9CTEFOS18zRF9TVFJVQ1RVUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX0hfQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfU1RBVFVTX19PVEdfSF9BQ1RJVkVfRElTUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEczX09UR19TVEFUVVNfX09UR19IX1NZTkNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX1ZfQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX1ZfQUNUSVZFX0RJU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX1ZfU1lOQ19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX1ZfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX1ZfQkxBTktfM0RfU1RSVUNUVVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX0hfQkxBTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX0hfQUNUSVZFX0RJU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19fT1RHX0hfU1lOQ19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL09URzNfT1RHX1NUQVRVU19QT1NJVElPTgorI2RlZmluZSBPVEczX09UR19TVEFUVVNfUE9TSVRJT05fX09UR19WRVJUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU1RBVFVTX1BPU0lUSU9OX19PVEdfSE9SWl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19TVEFUVVNfUE9TSVRJT05fX09UR19WRVJUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEczX09UR19TVEFUVVNfUE9TSVRJT05fX09UR19IT1JaX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEczX09UR19OT01fVkVSVF9QT1NJVElPTgorI2RlZmluZSBPVEczX09UR19OT01fVkVSVF9QT1NJVElPTl9fT1RHX1ZFUlRfQ09VTlRfTk9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfTk9NX1ZFUlRfUE9TSVRJT05fX09UR19WRVJUX0NPVU5UX05PTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHM19PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19GUkFNRV9DT1VOVF9fT1RHX0ZSQU1FX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19TVEFUVVNfRlJBTUVfQ09VTlRfX09UR19GUkFNRV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9PVEczX09UR19TVEFUVVNfVkZfQ09VTlQKKyNkZWZpbmUgT1RHM19PVEdfU1RBVFVTX1ZGX0NPVU5UX19PVEdfVkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1NUQVRVU19WRl9DT1VOVF9fT1RHX1ZGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL09URzNfT1RHX1NUQVRVU19IVl9DT1VOVAorI2RlZmluZSBPVEczX09UR19TVEFUVVNfSFZfQ09VTlRfX09UR19IVl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU1RBVFVTX0hWX0NPVU5UX19PVEdfSFZfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vT1RHM19PVEdfQ09VTlRfQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19DT1VOVF9DT05UUk9MX19PVEdfSE9SWl9DT1VOVF9CWTJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfQ09VTlRfQ09OVFJPTF9fT1RHX0hPUlpfUkVQRVRJVElPTl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzNfT1RHX0NPVU5UX0NPTlRST0xfX09UR19IT1JaX0NPVU5UX0JZMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzNfT1RHX0NPVU5UX0NPTlRST0xfX09UR19IT1JaX1JFUEVUSVRJT05fQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUVMCisvL09URzNfT1RHX0NPVU5UX1JFU0VUCisjZGVmaW5lIE9URzNfT1RHX0NPVU5UX1JFU0VUX19PVEdfUkVTRVRfRlJBTUVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DT1VOVF9SRVNFVF9fT1RHX1JFU0VUX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEczX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FCisjZGVmaW5lIE9URzNfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX19PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEczX09UR19WRVJUX1NZTkNfQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfQVVUT19GT1JDRV9WU1lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHM19PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHM19PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19BVVRPX0ZPUkNFX1ZTWU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKy8vT1RHM19PVEdfU1RFUkVPX1NUQVRVUworI2RlZmluZSBPVEczX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0NVUlJFTlRfRVlFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19TWU5DX09VVFBVVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fU1lOQ19TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19FWUVfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19TVEFUVVNfX09UR19DVVJSRU5UXzNEX1NUUlVDVFVSRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHM19PVEdfU1RFUkVPX1NUQVRVU19fT1RHX0NVUlJFTlRfU1RFUkVPU1lOQ19FTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEczX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0NVUlJFTlRfRVlFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX1NZTkNfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0VZRV9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fU1RBVFVTX19PVEdfQ1VSUkVOVF8zRF9TVFJVQ1RVUkVfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fU1RBVFVTX19PVEdfQ1VSUkVOVF9TVEVSRU9TWU5DX0VOX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEczX09UR19TVEVSRU9fQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19TWU5DX09VVFBVVF9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX0VZRV9GTEFHX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHM19PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX1NURVJFT1NZTkNfT1VUUFVUX0ZPUl9EUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEczX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfRklFTERfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9WX0JMQU5LX0ZPUl9EUF9GSVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHM19PVEdfU1RFUkVPX0NPTlRST0xfX09UR19GSUVMRF9OVU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBPVEczX09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX0VZRV9GTEFHX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9TVEVSRU9TWU5DX09VVFBVVF9GT1JfRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9GSUVMRF9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9WX0JMQU5LX0ZPUl9EUF9GSVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRklFTERfTlVNX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzNfT1RHX1NOQVBTSE9UX1NUQVRVUworI2RlZmluZSBPVEczX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzNfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX01BTlVBTF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEczX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEczX09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9NQU5VQUxfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9PVEczX09UR19TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX1NOQVBTSE9UX0NPTlRST0xfX09UR19BVVRPX1NOQVBTSE9UX1RSSUdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19TTkFQU0hPVF9DT05UUk9MX19PVEdfQVVUT19TTkFQU0hPVF9UUklHX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9PVEczX09UR19TTkFQU0hPVF9QT1NJVElPTgorI2RlZmluZSBPVEczX09UR19TTkFQU0hPVF9QT1NJVElPTl9fT1RHX1NOQVBTSE9UX1ZFUlRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU05BUFNIT1RfUE9TSVRJT05fX09UR19TTkFQU0hPVF9IT1JaX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19TTkFQU0hPVF9QT1NJVElPTl9fT1RHX1NOQVBTSE9UX1ZFUlRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEczX09UR19TTkFQU0hPVF9QT1NJVElPTl9fT1RHX1NOQVBTSE9UX0hPUlpfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEczX09UR19TTkFQU0hPVF9GUkFNRQorI2RlZmluZSBPVEczX09UR19TTkFQU0hPVF9GUkFNRV9fT1RHX1NOQVBTSE9UX0ZSQU1FX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU05BUFNIT1RfRlJBTUVfX09UR19TTkFQU0hPVF9GUkFNRV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0wKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19TTkFQU0hPVF9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfU05BUFNIT1RfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEczX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9DT1VOVF9OT1dfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzNfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEczX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdBX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0JfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBPVEczX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdCX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE9URzNfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVlNZTkNfTk9NX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19WU1lOQ19OT01fSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBPVEczX09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0dTTF9WU1lOQ19HQVBfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzNfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfR1NMX1ZTWU5DX0dBUF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19TTkFQU0hPVF9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19TTkFQU0hPVF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9DT1VOVF9OT1dfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9DT1VOVF9OT1dfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQV9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQl9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19WU1lOQ19OT01fSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19WU1lOQ19OT01fSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19HU0xfVlNZTkNfR0FQX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19HU0xfVlNZTkNfR0FQX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHM19PVEdfVVBEQVRFX0xPQ0sKKyNkZWZpbmUgT1RHM19PVEdfVVBEQVRFX0xPQ0tfX09UR19VUERBVEVfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1VQREFURV9MT0NLX19PVEdfVVBEQVRFX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfSF9USU1JTkdfRElWX0JZMl9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRU5fVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEczX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19SQU5HRV9USU1JTkdfREJVRl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHM19PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVElNSU5HX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHXzNEX0NUUkxfREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBPVEczX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRU5fREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgT1RHM19PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVVBEQVRFX0lOU1RBTlRMWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1ZTVEFSVFVQX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEczX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19EU0NfUE9TSVRJT05fREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHM19PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfQkxBTktfREFUQV9ET1VCTEVfQlVGRkVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19SQU5HRV9USU1JTkdfREJVRl9VUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRU5fVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1JBTkdFX1RJTUlOR19EQlVGX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1RJTUlOR19EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHXzNEX0NUUkxfREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9FTl9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1VQREFURV9JTlNUQU5UTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1ZTVEFSVFVQX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0RTQ19QT1NJVElPTl9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRE9VQkxFX0JVRkZFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1JBTkdFX1RJTUlOR19EQlVGX1VQREFURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisvL09URzNfT1RHX01BU1RFUl9FTgorI2RlZmluZSBPVEczX09UR19NQVNURVJfRU5fX09UR19NQVNURVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfTUFTVEVSX0VOX19PVEdfTUFTVEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHM19PVEdfQkxBTktfREFUQV9DT0xPUgorI2RlZmluZSBPVEczX09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9CTFVFX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfR1JFRU5fWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzNfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX1JFRF9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHM19PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkxVRV9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgT1RHM19PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfR1JFRU5fWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgT1RHM19PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfUkVEX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkYwMDAwMEwKKy8vT1RHM19PVEdfQkxBTktfREFUQV9DT0xPUl9FWFQKKyNkZWZpbmUgT1RHM19PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX0JMVUVfQ0JfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9HUkVFTl9ZX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfUkVEX0NSX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9CTFVFX0NCX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE9URzNfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9HUkVFTl9ZX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIE9URzNfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9SRURfQ1JfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRjAwMDBMCisvL09URzNfT1RHX0JMQUNLX0NPTE9SCisjZGVmaW5lIE9URzNfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHM19PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEczX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBPVEczX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorI2RlZmluZSBPVEczX09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRjAwMDAwTAorLy9PVEczX09UR19CTEFDS19DT0xPUl9FWFQKKyNkZWZpbmUgT1RHM19PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfQl9DQl9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX0dfWV9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9SX0NSX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX0JfQ0JfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE9URzNfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX0dfWV9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIE9URzNfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX1JfQ1JfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRjAwMDBMCisvL09URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT04KKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTElORV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0xJTkVfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTElORV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTElORV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfT1VUUFVUX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfT1VUUFVUX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT04KKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfTElORV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0xJTkVfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT04KKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfTElORV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0xJTkVfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEczX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzNfT1RHX0NSQ19DTlRMCisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19EVUFMX0xJTktfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHM19PVEdfQ1JDX0NOVExfX09UR19DUkNfRFVBTF9MSU5LX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0JMQU5LX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19DT05UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHM19PVEdfQ1JDX0NOVExfX09UR19DUkNfQ0FQVFVSRV9TVEFSVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX1NURVJFT19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19JTlRFUkxBQ0VfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHM19PVEdfQ1JDX0NOVExfX09UR19DUkNfVVNFX05FV19BTkRfUkVQRUFURURfUElYRUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQzBfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMX19PVEdfQ1JDMV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHM19PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMwX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzFfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHM19PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMzX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19EVUFMX0xJTktfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19EVUFMX0xJTktfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19CTEFOS19PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19DT05UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19DQVBUVVJFX1NUQVJUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDYwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19TVEVSRU9fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19JTlRFUkxBQ0VfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQ19VU0VfTkVXX0FORF9SRVBFQVRFRF9QSVhFTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQzBfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX0NSQzFfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzBfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzFfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzNfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEczX09UR19DUkNfQ05UTDIKKyNkZWZpbmUgT1RHM19PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RTQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX1NUUkVBTV9DT01CSU5FX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEczX09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9TVFJFQU1fU1BMSVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHM19PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EU0NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX1NUUkVBTV9DT01CSU5FX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX1NUUkVBTV9TUExJVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE9URzNfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisvL09URzNfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0wKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9YX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHM19PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9ZX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEczX09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1lfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEczX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1hfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzNfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0wKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9ZX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHM19PVEdfQ1JDMF9EQVRBX1JHCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfREFUQV9SR19fQ1JDMF9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DUkMwX0RBVEFfUkdfX0NSQzBfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfREFUQV9SR19fQ1JDMF9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfREFUQV9SR19fQ1JDMF9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzNfT1RHX0NSQzBfREFUQV9CCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfREFUQV9CX19DUkMwX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DUkMwX0RBVEFfQl9fQ1JDMF9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfREFUQV9CX19DUkMwX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzNfT1RHX0NSQzBfREFUQV9CX19DUkMwX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzNfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0wKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9YX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHM19PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9ZX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEczX09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1lfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEczX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1hfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzNfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0wKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9ZX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHM19PVEdfQ1JDMV9EQVRBX1JHCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfREFUQV9SR19fQ1JDMV9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DUkMxX0RBVEFfUkdfX0NSQzFfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfREFUQV9SR19fQ1JDMV9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfREFUQV9SR19fQ1JDMV9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzNfT1RHX0NSQzFfREFUQV9CCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfREFUQV9CX19DUkMxX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DUkMxX0RBVEFfQl9fQ1JDMV9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfREFUQV9CX19DUkMxX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzNfT1RHX0NSQzFfREFUQV9CX19DUkMxX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzNfT1RHX0NSQzJfREFUQV9SRworI2RlZmluZSBPVEczX09UR19DUkMyX0RBVEFfUkdfX0NSQzJfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMl9EQVRBX1JHX19DUkMyX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19DUkMyX0RBVEFfUkdfX0NSQzJfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEczX09UR19DUkMyX0RBVEFfUkdfX0NSQzJfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEczX09UR19DUkMyX0RBVEFfQgorI2RlZmluZSBPVEczX09UR19DUkMyX0RBVEFfQl9fQ1JDMl9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDMl9EQVRBX0JfX0NSQzJfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19DUkMyX0RBVEFfQl9fQ1JDMl9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEczX09UR19DUkMyX0RBVEFfQl9fQ1JDMl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEczX09UR19DUkMzX0RBVEFfUkcKKyNkZWZpbmUgT1RHM19PVEdfQ1JDM19EQVRBX1JHX19DUkMzX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0NSQzNfREFUQV9SR19fQ1JDM19HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDM19EQVRBX1JHX19DUkMzX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHM19PVEdfQ1JDM19EQVRBX1JHX19DUkMzX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHM19PVEdfQ1JDM19EQVRBX0IKKyNkZWZpbmUgT1RHM19PVEdfQ1JDM19EQVRBX0JfX0NSQzNfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0NSQzNfREFUQV9CX19DUkMzX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDM19EQVRBX0JfX0NSQzNfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHM19PVEdfQ1JDM19EQVRBX0JfX0NSQzNfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHM19PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTSworI2RlZmluZSBPVEczX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX19PVEdfQ1JDX1NJR19SRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19fT1RHX0NSQ19TSUdfR1JFRU5fTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX19PVEdfQ1JDX1NJR19SRURfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEczX09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX19PVEdfQ1JDX1NJR19HUkVFTl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEczX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLCisjZGVmaW5lIE9URzNfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfX09UR19DUkNfU0lHX0JMVUVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX19PVEdfQ1JDX1NJR19DT05UUk9MX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfX09UR19DUkNfU0lHX0JMVUVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzNfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfX09UR19DUkNfU0lHX0NPTlRST0xfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX0VWRU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NTX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgT1RHM19PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBPVEczX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1RHM19PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEczX09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX09WRVJSSURFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fRVZFTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fRlJBTUVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NTX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fT1ZFUlJJREVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9WX1VQREFURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfU1RFUkVPX1NFTF9PVlJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9SRVNFVF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEczX09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX1ZfVVBEQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX1NURVJFT19TRUxfT1ZSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfUkVTRVRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzNfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL09URzNfT1RHX0dTTF9WU1lOQ19HQVAKKyNkZWZpbmUgT1RHM19PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9TT1VSQ0VfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHM19PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzNfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01BU1RFUl9GQVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgT1RHM19PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9TT1VSQ0VfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYwMDAwTAorI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NQVNURVJfRkFTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBPVEczX09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9PVEczX09UR19NQVNURVJfVVBEQVRFX01PREUKKyNkZWZpbmUgT1RHM19PVEdfTUFTVEVSX1VQREFURV9NT0RFX19NQVNURVJfVVBEQVRFX0lOVEVSTEFDRURfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX01BU1RFUl9VUERBVEVfTU9ERV9fTUFTVEVSX1VQREFURV9JTlRFUkxBQ0VEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL09URzNfT1RHX0NMT0NLX0NPTlRST0wKKyNkZWZpbmUgT1RHM19PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEczX09UR19DTE9DS19DT05UUk9MX19PVEdfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHM19PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX0NMT0NLX0NPTlRST0xfX09UR19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHM19PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHM19PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHM19PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHM19PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vT1RHM19PVEdfVlNUQVJUVVBfUEFSQU0KKyNkZWZpbmUgT1RHM19PVEdfVlNUQVJUVVBfUEFSQU1fX1ZTVEFSVFVQX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1ZTVEFSVFVQX1BBUkFNX19WU1RBUlRVUF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL09URzNfT1RHX1ZVUERBVEVfUEFSQU0KKyNkZWZpbmUgT1RHM19PVEdfVlVQREFURV9QQVJBTV9fVlVQREFURV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1ZVUERBVEVfUEFSQU1fX1ZVUERBVEVfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfVlVQREFURV9QQVJBTV9fVlVQREFURV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHM19PVEdfVlVQREFURV9QQVJBTV9fVlVQREFURV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vT1RHM19PVEdfVlJFQURZX1BBUkFNCisjZGVmaW5lIE9URzNfT1RHX1ZSRUFEWV9QQVJBTV9fVlJFQURZX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19WUkVBRFlfUEFSQU1fX1ZSRUFEWV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9PVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVMKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfRVZFTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfUE9TSVRJT05fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBPVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9FVkVOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0VWRU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0VWRU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19TVEVSRU9fU0VMRUNUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX0ZJRUxEX05VTUJFUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfRVZFTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfUE9TSVRJT05fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9FVkVOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0VWRU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0VWRU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fU1RFUkVPX1NFTEVDVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fRklFTERfTlVNQkVSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisvL09URzNfT1RHX01BU1RFUl9VUERBVEVfTE9DSworI2RlZmluZSBPVEczX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfTUFTVEVSX1VQREFURV9MT0NLX19VUERBVEVfTE9DS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX01BU1RFUl9VUERBVEVfTE9DS19fT1RHX01BU1RFUl9VUERBVEVfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzNfT1RHX01BU1RFUl9VUERBVEVfTE9DS19fVVBEQVRFX0xPQ0tfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL09URzNfT1RHX0dTTF9DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHM19PVEdfR1NMX0NPTlRST0xfX09UR19HU0wyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX01BU1RFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEczX09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9NQVNURVJfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHM19PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfQ0hFQ0tfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0ZPUkNFX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfQ0hFQ0tfQUxMX0ZJRUxEU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPVEczX09UR19HU0xfQ09OVFJPTF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19HU0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX01BU1RFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX01BU1RFUl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0NIRUNLX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0ZPUkNFX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0NIRUNLX0FMTF9GSUVMRFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dTTF9DT05UUk9MX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0dTTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzNfT1RHX0dTTF9XSU5ET1dfWAorI2RlZmluZSBPVEczX09UR19HU0xfV0lORE9XX1hfX09UR19HU0xfV0lORE9XX1NUQVJUX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfR1NMX1dJTkRPV19YX19PVEdfR1NMX1dJTkRPV19FTkRfWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19HU0xfV0lORE9XX1hfX09UR19HU0xfV0lORE9XX1NUQVJUX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEczX09UR19HU0xfV0lORE9XX1hfX09UR19HU0xfV0lORE9XX0VORF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEczX09UR19HU0xfV0lORE9XX1kKKyNkZWZpbmUgT1RHM19PVEdfR1NMX1dJTkRPV19ZX19PVEdfR1NMX1dJTkRPV19TVEFSVF9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0dTTF9XSU5ET1dfWV9fT1RHX0dTTF9XSU5ET1dfRU5EX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfR1NMX1dJTkRPV19ZX19PVEdfR1NMX1dJTkRPV19TVEFSVF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHM19PVEdfR1NMX1dJTkRPV19ZX19PVEdfR1NMX1dJTkRPV19FTkRfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHM19PVEdfVlVQREFURV9LRUVQT1VUCisjZGVmaW5lIE9URzNfT1RHX1ZVUERBVEVfS0VFUE9VVF9fTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9TVEFSVF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19WVVBEQVRFX0tFRVBPVVRfX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfRU5EX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX1ZVUERBVEVfS0VFUE9VVF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHM19PVEdfVlVQREFURV9LRUVQT1VUX19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX1NUQVJUX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHM19PVEdfVlVQREFURV9LRUVQT1VUX19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX0VORF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKyNkZWZpbmUgT1RHM19PVEdfVlVQREFURV9LRUVQT1VUX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHM19PVEdfR0xPQkFMX0NPTlRST0wwCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19IVE9UQUxfS0VFUE9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfSFRPVEFMX0tFRVBPVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfSFRPVEFMX0tFRVBPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfSFRPVEFMX0tFRVBPVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorLy9PVEczX09UR19HTE9CQUxfQ09OVFJPTDEKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEczX09UR19HTE9CQUxfQ09OVFJPTDIKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX0NPTlRST0wyX19ESUdfVVBEQVRFX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMl9fR0xPQkFMX1VQREFURV9MT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDJfX01BTlVBTF9GTE9XX0NPTlRST0xfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMl9fTUFTVEVSX1VQREFURV9MT0NLX1dJTkRPV19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX0NPTlRST0wyX19PVEdfVlVQREFURV9CTE9DS19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDJfX0RDQ0dfVlVQREFURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMl9fRElHX1VQREFURV9MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMl9fR0xPQkFMX1VQREFURV9MT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMl9fTUFOVUFMX0ZMT1dfQ09OVFJPTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMl9fTUFTVEVSX1VQREFURV9MT0NLX1dJTkRPV19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMl9fT1RHX1ZVUERBVEVfQkxPQ0tfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MMl9fRENDR19WVVBEQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzNfT1RHX0dMT0JBTF9DT05UUk9MMworI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9GSUVMRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfU1RFUkVPX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzNfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX0ZJRUxEX1NURVJFT19GTEFHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9TVEVSRU9fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBPVEczX09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9GSUVMRF9TVEVSRU9fRkxBR19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9PVEczX09UR19UUklHX01BTlVBTF9DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0xfX1RSSUdfTUFOVUFMX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19UUklHX01BTlVBTF9DT05UUk9MX19UUklHX01BTlVBTF9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEczX09UR19NQU5VQUxfRkxPV19DT05UUk9MCisjZGVmaW5lIE9URzNfT1RHX01BTlVBTF9GTE9XX0NPTlRST0xfX01BTlVBTF9GTE9XX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEczX09UR19NQU5VQUxfRkxPV19DT05UUk9MX19NQU5VQUxfRkxPV19DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVUworI2RlZmluZSBPVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzNfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHM19PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEczX09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9PVEczX09UR19EUlJfQ09OVFJPTAorI2RlZmluZSBPVEczX09UR19EUlJfQ09OVFJPTF9fT1RHX0RSUl9BVkVSQUdFX0ZSQU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfRFJSX0NPTlRST0xfX09UR19WX1RPVEFMX0xBU1RfVVNFRF9CWV9EUlJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19EUlJfQ09OVFJPTF9fT1RHX0RSUl9BVkVSQUdFX0ZSQU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBPVEczX09UR19EUlJfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTEFTVF9VU0VEX0JZX0RSUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEczX09UR19SRVFVRVNUX0NPTlRST0wKKyNkZWZpbmUgT1RHM19PVEdfUkVRVUVTVF9DT05UUk9MX19PVEdfUkVRVUVTVF9NT0RFX0ZPUl9IX0RVUExJQ0FURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1JFUVVFU1RfQ09OVFJPTF9fT1RHX1JFUVVFU1RfTU9ERV9GT1JfSF9EVVBMSUNBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzNfT1RHX0RTQ19TVEFSVF9QT1NJVElPTgorI2RlZmluZSBPVEczX09UR19EU0NfU1RBUlRfUE9TSVRJT05fX09UR19EU0NfU1RBUlRfUE9TSVRJT05fWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX19PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19EU0NfU1RBUlRfUE9TSVRJT05fX09UR19EU0NfU1RBUlRfUE9TSVRJT05fWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEczX09UR19EU0NfU1RBUlRfUE9TSVRJT05fX09UR19EU0NfU1RBUlRfUE9TSVRJT05fTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9PVEczX09UR19QSVBFX1VQREFURV9TVEFUVVMKKyNkZWZpbmUgT1RHM19PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzNfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1RBS0VOX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHM19PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzNfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1RBS0VOX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT1RHM19PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzNfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1RBS0VOX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHM19PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfVlVQREFURV9LRUVQT1VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1RBS0VOX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1RBS0VOX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1RBS0VOX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEczX09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19WVVBEQVRFX0tFRVBPVVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9PVEczX09UR19TUEFSRV9SRUdJU1RFUgorI2RlZmluZSBPVEczX09UR19TUEFSRV9SRUdJU1RFUl9fT1RHX1NQQVJFX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHM19PVEdfU1BBUkVfUkVHSVNURVJfX09UR19TUEFSRV9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19vcHRjX290ZzRfZGlzcGRlYworLy9PVEc0X09UR19IX1RPVEFMCisjZGVmaW5lIE9URzRfT1RHX0hfVE9UQUxfX09UR19IX1RPVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19IX1RPVEFMX19PVEdfSF9UT1RBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEc0X09UR19IX0JMQU5LX1NUQVJUX0VORAorI2RlZmluZSBPVEc0X09UR19IX0JMQU5LX1NUQVJUX0VORF9fT1RHX0hfQkxBTktfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfSF9CTEFOS19TVEFSVF9FTkRfX09UR19IX0JMQU5LX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19IX0JMQU5LX1NUQVJUX0VORF9fT1RHX0hfQkxBTktfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc0X09UR19IX0JMQU5LX1NUQVJUX0VORF9fT1RHX0hfQkxBTktfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc0X09UR19IX1NZTkNfQQorI2RlZmluZSBPVEc0X09UR19IX1NZTkNfQV9fT1RHX0hfU1lOQ19BX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfSF9TWU5DX0FfX09UR19IX1NZTkNfQV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19IX1NZTkNfQV9fT1RHX0hfU1lOQ19BX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc0X09UR19IX1NZTkNfQV9fT1RHX0hfU1lOQ19BX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc0X09UR19IX1NZTkNfQV9DTlRMCisjZGVmaW5lIE9URzRfT1RHX0hfU1lOQ19BX0NOVExfX09UR19IX1NZTkNfQV9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19IX1NZTkNfQV9DTlRMX19PVEdfQ09NUF9TWU5DX0FfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0hfU1lOQ19BX0NOVExfX09UR19IX1NZTkNfQV9DVVRPRkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHNF9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0hfU1lOQ19BX1BPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0NPTVBfU1lOQ19BX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0hfU1lOQ19BX0NVVE9GRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vT1RHNF9PVEdfSF9USU1JTkdfQ05UTAorI2RlZmluZSBPVEc0X09UR19IX1RJTUlOR19DTlRMX19PVEdfSF9USU1JTkdfRElWX0JZMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfSF9USU1JTkdfQ05UTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX0hfVElNSU5HX0NOVExfX09UR19IX1RJTUlOR19ESVZfQlkyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzRfT1RHX0hfVElNSU5HX0NOVExfX09UR19IX1RJTUlOR19ESVZfQlkyX1VQREFURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL09URzRfT1RHX1ZfVE9UQUwKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9fT1RHX1ZfVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1ZfVE9UQUxfX09UR19WX1RPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzRfT1RHX1ZfVE9UQUxfTUlOCisjZGVmaW5lIE9URzRfT1RHX1ZfVE9UQUxfTUlOX19PVEdfVl9UT1RBTF9NSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX01JTl9fT1RHX1ZfVE9UQUxfTUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEc0X09UR19WX1RPVEFMX01BWAorI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX01BWF9fT1RHX1ZfVE9UQUxfTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9NQVhfX09UR19WX1RPVEFMX01BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHNF9PVEdfVl9UT1RBTF9NSUQKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9NSURfX09UR19WX1RPVEFMX01JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1ZfVE9UQUxfTUlEX19PVEdfVl9UT1RBTF9NSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzRfT1RHX1ZfVE9UQUxfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WX1RPVEFMX01JTl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVl9UT1RBTF9NQVhfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzRfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfUkVQTEFDSU5HX01BWF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NSU5fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfRk9SQ0VfTE9DS19PTl9FVkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzRfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX0RSUl9FVkVOVF9BQ1RJVkVfUEVSSU9EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX0NPTlRST0xfX09UR19TRVRfVl9UT1RBTF9NSU5fTUFTS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9GUkFNRV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1NFVF9WX1RPVEFMX01JTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVl9UT1RBTF9NSU5fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVl9UT1RBTF9NQVhfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9SRVBMQUNJTkdfTUFYX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9SRVBMQUNJTkdfTUlOX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfRk9SQ0VfTE9DS19PTl9FVkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfRFJSX0VWRU5UX0FDVElWRV9QRVJJT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9GUkFNRV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHNF9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTCisjZGVmaW5lIE9URzRfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHNF9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc0X09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9PVEc0X09UR19WU1lOQ19OT01fSU5UX1NUQVRVUworI2RlZmluZSBPVEc0X09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19fT1RHX1ZTWU5DX05PTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfX09UR19WU1lOQ19OT01fSU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzRfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX19PVEdfVlNZTkNfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzRfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX19PVEdfVlNZTkNfTk9NX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL09URzRfT1RHX1ZfQkxBTktfU1RBUlRfRU5ECisjZGVmaW5lIE9URzRfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX19PVEdfVl9CTEFOS19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19WX0JMQU5LX1NUQVJUX0VORF9fT1RHX1ZfQkxBTktfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX19PVEdfVl9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzRfT1RHX1ZfQkxBTktfU1RBUlRfRU5EX19PVEdfVl9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzRfT1RHX1ZfU1lOQ19BCisjZGVmaW5lIE9URzRfT1RHX1ZfU1lOQ19BX19PVEdfVl9TWU5DX0FfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19WX1NZTkNfQV9fT1RHX1ZfU1lOQ19BX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1ZfU1lOQ19BX19PVEdfVl9TWU5DX0FfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzRfT1RHX1ZfU1lOQ19BX19PVEdfVl9TWU5DX0FfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzRfT1RHX1ZfU1lOQ19BX0NOVEwKKyNkZWZpbmUgT1RHNF9PVEdfVl9TWU5DX0FfQ05UTF9fT1RHX1ZfU1lOQ19BX1BPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1ZfU1lOQ19BX0NOVExfX09UR19WX1NZTkNfQV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzRfT1RHX1RSSUdBX0NOVEwKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9TT1VSQ0VfUElQRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUE9MQVJJVFlfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1JFU1lOQ19CWVBBU1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzRfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9JTlBVVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUE9MQVJJVFlfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzRfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9SSVNJTkdfRURHRV9ERVRFQ1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0ZBTExJTkdfRURHRV9ERVRFQ1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfRlJFUVVFTkNZX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzRfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfU09VUkNFX1BJUEVfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEUwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUE9MQVJJVFlfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUkVTWU5DX0JZUEFTU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfSU5QVVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUE9MQVJJVFlfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUklTSU5HX0VER0VfREVURUNUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfRkFMTElOR19FREdFX0RFVEVDVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfRlJFUVVFTkNZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEc0X09UR19UUklHQV9NQU5VQUxfVFJJRworI2RlZmluZSBPVEc0X09UR19UUklHQV9NQU5VQUxfVFJJR19fT1RHX1RSSUdBX01BTlVBTF9UUklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0FfTUFOVUFMX1RSSUdfX09UR19UUklHQV9NQU5VQUxfVFJJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHNF9PVEdfVFJJR0JfQ05UTAorI2RlZmluZSBPVEc0X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1NPVVJDRV9QSVBFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9QT0xBUklUWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUkVTWU5DX0JZUEFTU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0lOUFVUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9QT0xBUklUWV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBPVEc0X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1JJU0lOR19FREdFX0RFVEVDVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfRkFMTElOR19FREdFX0RFVEVDVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9GUkVRVUVOQ1lfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9TT1VSQ0VfUElQRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9QT0xBUklUWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9SRVNZTkNfQllQQVNTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9JTlBVVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9QT0xBUklUWV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9SSVNJTkdfRURHRV9ERVRFQ1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9GQUxMSU5HX0VER0VfREVURUNUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9GUkVRVUVOQ1lfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzRfT1RHX1RSSUdCX01BTlVBTF9UUklHCisjZGVmaW5lIE9URzRfT1RHX1RSSUdCX01BTlVBTF9UUklHX19PVEdfVFJJR0JfTUFOVUFMX1RSSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19UUklHQl9NQU5VQUxfVFJJR19fT1RHX1RSSUdCX01BTlVBTF9UUklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEc0X09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTAorI2RlZmluZSBPVEc0X09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfQ0hFQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzRfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX1RSSUdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT1RHNF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfQ0hFQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfVFJJR19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHNF9PVEdfRkxPV19DT05UUk9MCisjZGVmaW5lIE9URzRfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNF9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX0dSQU5VTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfSU5QVVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzRfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE9URzRfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzRfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9HUkFOVUxBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9JTlBVVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzRfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRQorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfQVZTWU5DX0ZSQU1FX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX0FWU1lOQ19MSU5FX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfQVZTWU5DX0ZSQU1FX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfQVZTWU5DX0xJTkVfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vT1RHNF9PVEdfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19DT05UUk9MX19PVEdfTUFTVEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0RJU0FCTEVfUE9JTlRfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX0NPTlRST0xfX09UR19TVEFSVF9QT0lOVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc0X09UR19DT05UUk9MX19PVEdfRklFTERfTlVNQkVSX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0ZJRUxEX05VTUJFUl9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzRfT1RHX0NPTlRST0xfX09UR19DVVJSRU5UX01BU1RFUl9FTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0RJU1BfUkVBRF9SRVFVRVNUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19DT05UUk9MX19PVEdfQVZTWU5DX0xPQ0tfU05BUFNIT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzRfT1RHX0NPTlRST0xfX09UR19BVlNZTkNfVlNZTkNfTl9IU1lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX01BU1RFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0RJU0FCTEVfUE9JTlRfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX1NUQVJUX1BPSU5UX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0ZJRUxEX05VTUJFUl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0ZJRUxEX05VTUJFUl9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0NVUlJFTlRfTUFTVEVSX0VOX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0RJU1BfUkVBRF9SRVFVRVNUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0FWU1lOQ19MT0NLX1NOQVBTSE9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ09OVFJPTF9fT1RHX0FWU1lOQ19WU1lOQ19OX0hTWU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHNF9PVEdfQkxBTktfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19CTEFOS19DT05UUk9MX19PVEdfQ1VSUkVOVF9CTEFOS19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX0JMQU5LX0NPTlRST0xfX09UR19CTEFOS19ERV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0NVUlJFTlRfQkxBTktfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0JMQU5LX0RFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vT1RHNF9PVEdfUElQRV9BQk9SVF9DT05UUk9MCisjZGVmaW5lIE9URzRfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9fT1RHX1BJUEVfQUJPUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19QSVBFX0FCT1JUX0NPTlRST0xfX09UR19QSVBFX0FCT1JUX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9BQk9SVF9DT05UUk9MX19PVEdfUElQRV9BQk9SVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9BQk9SVF9DT05UUk9MX19PVEdfUElQRV9BQk9SVF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vT1RHNF9PVEdfSU5URVJMQUNFX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfSU5URVJMQUNFX0NPTlRST0xfX09UR19JTlRFUkxBQ0VfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSTEFDRV9DT05UUk9MX19PVEdfSU5URVJMQUNFX0ZPUkNFX05FWFRfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfSU5URVJMQUNFX0NPTlRST0xfX09UR19JTlRFUkxBQ0VfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfSU5URVJMQUNFX0NPTlRST0xfX09UR19JTlRFUkxBQ0VfRk9SQ0VfTkVYVF9GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKy8vT1RHNF9PVEdfSU5URVJMQUNFX1NUQVRVUworI2RlZmluZSBPVEc0X09UR19JTlRFUkxBQ0VfU1RBVFVTX19PVEdfSU5URVJMQUNFX0NVUlJFTlRfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfSU5URVJMQUNFX1NUQVRVU19fT1RHX0lOVEVSTEFDRV9ORVhUX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSTEFDRV9TVEFUVVNfX09UR19JTlRFUkxBQ0VfQ1VSUkVOVF9GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSTEFDRV9TVEFUVVNfX09UR19JTlRFUkxBQ0VfTkVYVF9GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL09URzRfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swCisjZGVmaW5lIE9URzRfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX19PVEdfUElYRUxfREFUQV9CTFVFX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9fT1RHX1BJWEVMX0RBVEFfR1JFRU5fWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX19PVEdfUElYRUxfREFUQV9CTFVFX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzRfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0swX19PVEdfUElYRUxfREFUQV9HUkVFTl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzRfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxCisjZGVmaW5lIE9URzRfT1RHX1BJWEVMX0RBVEFfUkVBREJBQ0sxX19PVEdfUElYRUxfREFUQV9SRURfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMV9fT1RHX1BJWEVMX0RBVEFfUkVEX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9PVEc0X09UR19TVEFUVVMKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVFVTX19PVEdfVl9CTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NUQVRVU19fT1RHX1ZfQUNUSVZFX0RJU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19WX1NZTkNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVFVTX19PVEdfVl9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzRfT1RHX1NUQVRVU19fT1RHX1ZfQkxBTktfM0RfU1RSVUNUVVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19IX0JMQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1NUQVRVU19fT1RHX0hfQUNUSVZFX0RJU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVFVTX19PVEdfSF9TWU5DX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19WX0JMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19WX0FDVElWRV9ESVNQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19WX1NZTkNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19WX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19WX0JMQU5LXzNEX1NUUlVDVFVSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19IX0JMQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19IX0FDVElWRV9ESVNQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfX09UR19IX1NZTkNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9PVEc0X09UR19TVEFUVVNfUE9TSVRJT04KKyNkZWZpbmUgT1RHNF9PVEdfU1RBVFVTX1BPU0lUSU9OX19PVEdfVkVSVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NUQVRVU19QT1NJVElPTl9fT1RHX0hPUlpfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVFVTX1BPU0lUSU9OX19PVEdfVkVSVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVFVTX1BPU0lUSU9OX19PVEdfSE9SWl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNF9PVEdfTk9NX1ZFUlRfUE9TSVRJT04KKyNkZWZpbmUgT1RHNF9PVEdfTk9NX1ZFUlRfUE9TSVRJT05fX09UR19WRVJUX0NPVU5UX05PTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX05PTV9WRVJUX1BPU0lUSU9OX19PVEdfVkVSVF9DT1VOVF9OT01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzRfT1RHX1NUQVRVU19GUkFNRV9DT1VOVAorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfRlJBTUVfQ09VTlRfX09UR19GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UX19PVEdfRlJBTUVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vT1RHNF9PVEdfU1RBVFVTX1ZGX0NPVU5UCisjZGVmaW5lIE9URzRfT1RHX1NUQVRVU19WRl9DT1VOVF9fT1RHX1ZGX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19TVEFUVVNfVkZfQ09VTlRfX09UR19WRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9PVEc0X09UR19TVEFUVVNfSFZfQ09VTlQKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVFVTX0hWX0NPVU5UX19PVEdfSFZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NUQVRVU19IVl9DT1VOVF9fT1RHX0hWX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL09URzRfT1RHX0NPVU5UX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfQ09VTlRfQ09OVFJPTF9fT1RHX0hPUlpfQ09VTlRfQlkyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0NPVU5UX0NPTlRST0xfX09UR19IT1JaX1JFUEVUSVRJT05fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEc0X09UR19DT1VOVF9DT05UUk9MX19PVEdfSE9SWl9DT1VOVF9CWTJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc0X09UR19DT1VOVF9DT05UUk9MX19PVEdfSE9SWl9SRVBFVElUSU9OX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFFTAorLy9PVEc0X09UR19DT1VOVF9SRVNFVAorI2RlZmluZSBPVEc0X09UR19DT1VOVF9SRVNFVF9fT1RHX1JFU0VUX0ZSQU1FX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ09VTlRfUkVTRVRfX09UR19SRVNFVF9GUkFNRV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHNF9PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORQorI2RlZmluZSBPVEc0X09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX19PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9fT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHNF9PVEdfVkVSVF9TWU5DX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0FVVE9fRk9SQ0VfVlNZTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfQVVUT19GT1JDRV9WU1lOQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisvL09URzRfT1RHX1NURVJFT19TVEFUVVMKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19DVVJSRU5UX0VZRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX1NZTkNfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fRVlFX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fU1RBVFVTX19PVEdfQ1VSUkVOVF8zRF9TVFJVQ1RVUkVfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzRfT1RHX1NURVJFT19TVEFUVVNfX09UR19DVVJSRU5UX1NURVJFT1NZTkNfRU5fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19DVVJSRU5UX0VZRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19TWU5DX09VVFBVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19TWU5DX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19FWUVfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX0NVUlJFTlRfM0RfU1RSVUNUVVJFX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX0NVUlJFTlRfU1RFUkVPU1lOQ19FTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHNF9PVEdfU1RFUkVPX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19FWUVfRkxBR19QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzRfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9TVEVSRU9TWU5DX09VVFBVVF9GT1JfRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX0ZJRUxEX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfVl9CTEFOS19GT1JfRFBfRklYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzRfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRklFTERfTlVNX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgT1RHNF9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19TWU5DX09VVFBVVF9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19TWU5DX09VVFBVVF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19FWUVfRkxBR19QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfU1RFUkVPU1lOQ19PVVRQVVRfRk9SX0RQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfRklFTERfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfVl9CTEFOS19GT1JfRFBfRklYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0ZJRUxEX05VTV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEc0X09UR19TTkFQU0hPVF9TVEFUVVMKKyNkZWZpbmUgT1RHNF9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEc0X09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9NQU5VQUxfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHNF9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHNF9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfTUFOVUFMX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vT1RHNF9PVEdfU05BUFNIT1RfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19TTkFQU0hPVF9DT05UUk9MX19PVEdfQVVUT19TTkFQU0hPVF9UUklHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfU05BUFNIT1RfQ09OVFJPTF9fT1RHX0FVVE9fU05BUFNIT1RfVFJJR19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vT1RHNF9PVEdfU05BUFNIT1RfUE9TSVRJT04KKyNkZWZpbmUgT1RHNF9PVEdfU05BUFNIT1RfUE9TSVRJT05fX09UR19TTkFQU0hPVF9WRVJUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX19PVEdfU05BUFNIT1RfSE9SWl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfU05BUFNIT1RfUE9TSVRJT05fX09UR19TTkFQU0hPVF9WRVJUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfU05BUFNIT1RfUE9TSVRJT05fX09UR19TTkFQU0hPVF9IT1JaX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNF9PVEdfU05BUFNIT1RfRlJBTUUKKyNkZWZpbmUgT1RHNF9PVEdfU05BUFNIT1RfRlJBTUVfX09UR19TTkFQU0hPVF9GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NOQVBTSE9UX0ZSQU1FX19PVEdfU05BUFNIT1RfRlJBTUVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL09URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfU05BUFNIT1RfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1NOQVBTSE9UX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHNF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9DT1VOVF9OT1dfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEc0X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHNF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQV9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdCX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0FfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgT1RHNF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBPVEc0X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1ZTWU5DX05PTV9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVlNZTkNfTk9NX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgT1RHNF9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19HU0xfVlNZTkNfR0FQX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEc0X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0dTTF9WU1lOQ19HQVBfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfU05BUFNIT1RfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfU05BUFNIT1RfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0FfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0JfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0FfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0JfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVlNZTkNfTk9NX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVlNZTkNfTk9NX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfR1NMX1ZTWU5DX0dBUF9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzRfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfR1NMX1ZTWU5DX0dBUF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzRfT1RHX1VQREFURV9MT0NLCisjZGVmaW5lIE9URzRfT1RHX1VQREFURV9MT0NLX19PVEdfVVBEQVRFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19VUERBVEVfTE9DS19fT1RHX1VQREFURV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0VOX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHNF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfUkFOR0VfVElNSU5HX0RCVUZfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzRfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1RJTUlOR19EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR18zRF9DVFJMX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT1RHNF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0VOX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE9URzRfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1VQREFURV9JTlNUQU5UTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19WU1RBUlRVUF9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHNF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfRFNDX1BPU0lUSU9OX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzRfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0JMQU5LX0RBVEFfRE9VQkxFX0JVRkZFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfUkFOR0VfVElNSU5HX0RCVUZfVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19IX1RJTUlOR19ESVZfQlkyX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0VOX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19SQU5HRV9USU1JTkdfREJVRl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19USU1JTkdfREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR18zRF9DVFJMX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRU5fREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19VUERBVEVfSU5TVEFOVExZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19WU1RBUlRVUF9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19EU0NfUE9TSVRJT05fREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0RPVUJMRV9CVUZGRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEc0X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19SQU5HRV9USU1JTkdfREJVRl9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9PVEc0X09UR19NQVNURVJfRU4KKyNkZWZpbmUgT1RHNF9PVEdfTUFTVEVSX0VOX19PVEdfTUFTVEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX01BU1RFUl9FTl9fT1RHX01BU1RFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzRfT1RHX0JMQU5LX0RBVEFfQ09MT1IKKyNkZWZpbmUgT1RHNF9PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkxVRV9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX0dSRUVOX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEc0X09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9SRURfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzRfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX0JMVUVfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIE9URzRfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX0dSRUVOX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIE9URzRfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX1JFRF9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGMDAwMDBMCisvL09URzRfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUCisjZGVmaW5lIE9URzRfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9CTFVFX0NCX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfR1JFRU5fWV9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNF9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX1JFRF9DUl9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkxVRV9DQl9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBPVEc0X09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfR1JFRU5fWV9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBPVEc0X09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfUkVEX0NSX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9PVEc0X09UR19CTEFDS19DT0xPUgorI2RlZmluZSBPVEc0X09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzRfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHNF9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgT1RHNF9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkYwMDAwMEwKKy8vT1RHNF9PVEdfQkxBQ0tfQ09MT1JfRVhUCisjZGVmaW5lIE9URzRfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX0JfQ0JfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9HX1lfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNF9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfUl9DUl9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9CX0NCX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBPVEc0X09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9HX1lfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBPVEc0X09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9SX0NSX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9PVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0xJTkVfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9MSU5FX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0xJTkVfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0xJTkVfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX09VVFBVVF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX09VVFBVVF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0xJTkVfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9MSU5FX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfUE9TSVRJT05fX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0xJTkVfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9MSU5FX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHNF9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEc0X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEc0X09UR19DUkNfQ05UTAorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTF9fT1RHX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfRFVBTF9MSU5LX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzRfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0RVQUxfTElOS19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTF9fT1RHX0NSQ19CTEFOS19PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzRfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0NBUFRVUkVfU1RBUlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTF9fT1RHX0NSQ19TVEVSRU9fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfSU5URVJMQUNFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzRfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX1VTRV9ORVdfQU5EX1JFUEVBVEVEX1BJWEVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkMwX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTF9fT1RHX0NSQzFfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzRfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMxX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzRfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDM19QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfRFVBTF9MSU5LX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfRFVBTF9MSU5LX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfQkxBTktfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfQ0FQVFVSRV9TVEFSVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA2MEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfU1RFUkVPX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfSU5URVJMQUNFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkNfVVNFX05FV19BTkRfUkVQRUFURURfUElYRUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkMwX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19DUkMxX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMwX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMxX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMyX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMzX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHNF9PVEdfQ1JDX0NOVEwyCisjZGVmaW5lIE9URzRfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EU0NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9TVFJFQU1fQ09NQklORV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfU1RSRUFNX1NQTElUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzRfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTDJfX09UR19DUkNfRFNDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9TVFJFQU1fQ09NQklORV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9TVFJFQU1fU1BMSVRfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBPVEc0X09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9PVEc0X09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MCisjZGVmaW5lIE9URzRfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1hfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzRfT1RHX0NSQzBfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzRfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMF9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9ZX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNF9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9YX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc0X09UR19DUkMwX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1hfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc0X09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MCisjZGVmaW5lIE9URzRfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1lfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzRfT1RHX0NSQzBfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzRfT1RHX0NSQzBfREFUQV9SRworI2RlZmluZSBPVEc0X09UR19DUkMwX0RBVEFfUkdfX0NSQzBfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMF9EQVRBX1JHX19DUkMwX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19DUkMwX0RBVEFfUkdfX0NSQzBfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc0X09UR19DUkMwX0RBVEFfUkdfX0NSQzBfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEc0X09UR19DUkMwX0RBVEFfQgorI2RlZmluZSBPVEc0X09UR19DUkMwX0RBVEFfQl9fQ1JDMF9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMF9EQVRBX0JfX0NSQzBfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19DUkMwX0RBVEFfQl9fQ1JDMF9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc0X09UR19DUkMwX0RBVEFfQl9fQ1JDMF9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEc0X09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MCisjZGVmaW5lIE9URzRfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1hfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzRfT1RHX0NSQzFfV0lORE9XQV9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzRfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9ZX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9ZX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMV9XSU5ET1dBX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9ZX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNF9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9YX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc0X09UR19DUkMxX1dJTkRPV0JfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1hfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc0X09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MCisjZGVmaW5lIE9URzRfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1lfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzRfT1RHX0NSQzFfV0lORE9XQl9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzRfT1RHX0NSQzFfREFUQV9SRworI2RlZmluZSBPVEc0X09UR19DUkMxX0RBVEFfUkdfX0NSQzFfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMV9EQVRBX1JHX19DUkMxX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19DUkMxX0RBVEFfUkdfX0NSQzFfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc0X09UR19DUkMxX0RBVEFfUkdfX0NSQzFfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEc0X09UR19DUkMxX0RBVEFfQgorI2RlZmluZSBPVEc0X09UR19DUkMxX0RBVEFfQl9fQ1JDMV9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMV9EQVRBX0JfX0NSQzFfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19DUkMxX0RBVEFfQl9fQ1JDMV9CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc0X09UR19DUkMxX0RBVEFfQl9fQ1JDMV9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEc0X09UR19DUkMyX0RBVEFfUkcKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMl9EQVRBX1JHX19DUkMyX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0NSQzJfREFUQV9SR19fQ1JDMl9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMl9EQVRBX1JHX19DUkMyX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMl9EQVRBX1JHX19DUkMyX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHNF9PVEdfQ1JDMl9EQVRBX0IKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMl9EQVRBX0JfX0NSQzJfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0NSQzJfREFUQV9CX19DUkMyX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMl9EQVRBX0JfX0NSQzJfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDMl9EQVRBX0JfX0NSQzJfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHNF9PVEdfQ1JDM19EQVRBX1JHCisjZGVmaW5lIE9URzRfT1RHX0NSQzNfREFUQV9SR19fQ1JDM19SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19DUkMzX0RBVEFfUkdfX0NSQzNfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0NSQzNfREFUQV9SR19fQ1JDM19SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzRfT1RHX0NSQzNfREFUQV9SR19fQ1JDM19HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzRfT1RHX0NSQzNfREFUQV9CCisjZGVmaW5lIE9URzRfT1RHX0NSQzNfREFUQV9CX19DUkMzX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19DUkMzX0RBVEFfQl9fQ1JDM19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0NSQzNfREFUQV9CX19DUkMzX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzRfT1RHX0NSQzNfREFUQV9CX19DUkMzX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzRfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0sKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19fT1RHX0NSQ19TSUdfUkVEX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfX09UR19DUkNfU0lHX0dSRUVOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19fT1RHX0NSQ19TSUdfUkVEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX1NJR19SRURfR1JFRU5fTUFTS19fT1RHX0NSQ19TSUdfR1JFRU5fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHNF9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTSworI2RlZmluZSBPVEc0X09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX19PVEdfQ1JDX1NJR19CTFVFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19fT1RHX0NSQ19TSUdfQ09OVFJPTF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX19PVEdfQ1JDX1NJR19CTFVFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc0X09UR19DUkNfU0lHX0JMVUVfQ09OVFJPTF9NQVNLX19PVEdfQ1JDX1NJR19DT05UUk9MX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9FVkVOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fRlJBTUVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TU19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE9URzRfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9URzRfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHNF9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9PVkVSUklERV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX0VWRU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TU19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX09WRVJSSURFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEc0X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfVl9VUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX1NURVJFT19TRUxfT1ZSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc0X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfUkVTRVRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHNF9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEc0X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc0X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9WX1VQREFURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPVEc0X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9TVEVSRU9fU0VMX09WUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEc0X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEc0X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX1JFU0VUX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEc0X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9PVEc0X09UR19HU0xfVlNZTkNfR0FQCisjZGVmaW5lIE9URzRfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfU09VUkNFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzRfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEc0X09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9NQVNURVJfRkFTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE9URzRfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfU09VUkNFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2MDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTUFTVEVSX0ZBU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vT1RHNF9PVEdfTUFTVEVSX1VQREFURV9NT0RFCisjZGVmaW5lIE9URzRfT1RHX01BU1RFUl9VUERBVEVfTU9ERV9fTUFTVEVSX1VQREFURV9JTlRFUkxBQ0VEX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19NQVNURVJfVVBEQVRFX01PREVfX01BU1RFUl9VUERBVEVfSU5URVJMQUNFRF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9PVEc0X09UR19DTE9DS19DT05UUk9MCisjZGVmaW5lIE9URzRfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHNF9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzRfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19DTE9DS19DT05UUk9MX19PVEdfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzRfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzRfT1RHX0NMT0NLX0NPTlRST0xfX09UR19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzRfT1RHX0NMT0NLX0NPTlRST0xfX09UR19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzRfT1RHX0NMT0NLX0NPTlRST0xfX09UR19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL09URzRfT1RHX1ZTVEFSVFVQX1BBUkFNCisjZGVmaW5lIE9URzRfT1RHX1ZTVEFSVFVQX1BBUkFNX19WU1RBUlRVUF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19WU1RBUlRVUF9QQVJBTV9fVlNUQVJUVVBfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9PVEc0X09UR19WVVBEQVRFX1BBUkFNCisjZGVmaW5lIE9URzRfT1RHX1ZVUERBVEVfUEFSQU1fX1ZVUERBVEVfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19WVVBEQVRFX1BBUkFNX19WVVBEQVRFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX1ZVUERBVEVfUEFSQU1fX1ZVUERBVEVfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzRfT1RHX1ZVUERBVEVfUEFSQU1fX1ZVUERBVEVfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL09URzRfT1RHX1ZSRUFEWV9QQVJBTQorI2RlZmluZSBPVEc0X09UR19WUkVBRFlfUEFSQU1fX1ZSRUFEWV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfVlJFQURZX1BBUkFNX19WUkVBRFlfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vT1RHNF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0VWRU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1BPU0lUSU9OX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfRVZFTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19FVkVOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9FVkVOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fU1RFUkVPX1NFTEVDVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19GSUVMRF9OVU1CRVJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0VWRU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1BPU0lUSU9OX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfRVZFTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19FVkVOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9FVkVOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1NURVJFT19TRUxFQ1RfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX0ZJRUxEX05VTUJFUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorLy9PVEc0X09UR19NQVNURVJfVVBEQVRFX0xPQ0sKKyNkZWZpbmUgT1RHNF9PVEdfTUFTVEVSX1VQREFURV9MT0NLX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX01BU1RFUl9VUERBVEVfTE9DS19fVVBEQVRFX0xPQ0tfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc0X09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX1VQREFURV9MT0NLX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9PVEc0X09UR19HU0xfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wxX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzRfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9NQVNURVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfTUFTVEVSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzRfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0NIRUNLX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9GT1JDRV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX0NIRUNLX0FMTF9GSUVMRFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX0NPTlRST0xfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfR1NMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDBfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9NQVNURVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9NQVNURVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9DSEVDS19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9GT1JDRV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9DSEVDS19BTExfRklFTERTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19HU0xfQ09OVFJPTF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19HU0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEc0X09UR19HU0xfV0lORE9XX1gKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1dJTkRPV19YX19PVEdfR1NMX1dJTkRPV19TVEFSVF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0dTTF9XSU5ET1dfWF9fT1RHX0dTTF9XSU5ET1dfRU5EX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1dJTkRPV19YX19PVEdfR1NMX1dJTkRPV19TVEFSVF9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfR1NMX1dJTkRPV19YX19PVEdfR1NMX1dJTkRPV19FTkRfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNF9PVEdfR1NMX1dJTkRPV19ZCisjZGVmaW5lIE9URzRfT1RHX0dTTF9XSU5ET1dfWV9fT1RHX0dTTF9XSU5ET1dfU1RBUlRfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19HU0xfV0lORE9XX1lfX09UR19HU0xfV0lORE9XX0VORF9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0dTTF9XSU5ET1dfWV9fT1RHX0dTTF9XSU5ET1dfU1RBUlRfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzRfT1RHX0dTTF9XSU5ET1dfWV9fT1RHX0dTTF9XSU5ET1dfRU5EX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzRfT1RHX1ZVUERBVEVfS0VFUE9VVAorI2RlZmluZSBPVEc0X09UR19WVVBEQVRFX0tFRVBPVVRfX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfU1RBUlRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfVlVQREFURV9LRUVQT1VUX19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX0VORF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19WVVBEQVRFX0tFRVBPVVRfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzRfT1RHX1ZVUERBVEVfS0VFUE9VVF9fTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9TVEFSVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzRfT1RHX1ZVUERBVEVfS0VFUE9VVF9fTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9FTkRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisjZGVmaW5lIE9URzRfT1RHX1ZVUERBVEVfS0VFUE9VVF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzRfT1RHX0dMT0JBTF9DT05UUk9MMAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfSFRPVEFMX0tFRVBPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0hUT1RBTF9LRUVQT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0hUT1RBTF9LRUVQT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0hUT1RBTF9LRUVQT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKy8vT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wxCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wyCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9DT05UUk9MMl9fRElHX1VQREFURV9MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDJfX0dMT0JBTF9VUERBVEVfTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wyX19NQU5VQUxfRkxPV19DT05UUk9MX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDJfX01BU1RFUl9VUERBVEVfTE9DS19XSU5ET1dfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9DT05UUk9MMl9fT1RHX1ZVUERBVEVfQkxPQ0tfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wyX19EQ0NHX1ZVUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDJfX0RJR19VUERBVEVfTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDJfX0dMT0JBTF9VUERBVEVfTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDJfX01BTlVBTF9GTE9XX0NPTlRST0xfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDJfX01BU1RFUl9VUERBVEVfTE9DS19XSU5ET1dfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDJfX09UR19WVVBEQVRFX0JMT0NLX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDJfX0RDQ0dfVlVQREFURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEc0X09UR19HTE9CQUxfQ09OVFJPTDMKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX1NURVJFT19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc0X09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9GSUVMRF9TVEVSRU9fRkxBR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRklFTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfU1RFUkVPX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgT1RHNF9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRklFTERfU1RFUkVPX0ZMQUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vT1RHNF9PVEdfVFJJR19NQU5VQUxfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19UUklHX01BTlVBTF9DT05UUk9MX19UUklHX01BTlVBTF9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfVFJJR19NQU5VQUxfQ09OVFJPTF9fVFJJR19NQU5VQUxfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHNF9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTAorI2RlZmluZSBPVEc0X09UR19NQU5VQUxfRkxPV19DT05UUk9MX19NQU5VQUxfRkxPV19DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNF9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTF9fTUFOVUFMX0ZMT1dfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHNF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVMKKyNkZWZpbmUgT1RHNF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc0X09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE9URzRfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHNF9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vT1RHNF9PVEdfRFJSX0NPTlRST0wKKyNkZWZpbmUgT1RHNF9PVEdfRFJSX0NPTlRST0xfX09UR19EUlJfQVZFUkFHRV9GUkFNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0RSUl9DT05UUk9MX19PVEdfVl9UT1RBTF9MQVNUX1VTRURfQllfRFJSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfRFJSX0NPTlRST0xfX09UR19EUlJfQVZFUkFHRV9GUkFNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgT1RHNF9PVEdfRFJSX0NPTlRST0xfX09UR19WX1RPVEFMX0xBU1RfVVNFRF9CWV9EUlJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNF9PVEdfUkVRVUVTVF9DT05UUk9MCisjZGVmaW5lIE9URzRfT1RHX1JFUVVFU1RfQ09OVFJPTF9fT1RHX1JFUVVFU1RfTU9ERV9GT1JfSF9EVVBMSUNBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19SRVFVRVNUX0NPTlRST0xfX09UR19SRVFVRVNUX01PREVfRk9SX0hfRFVQTElDQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEc0X09UR19EU0NfU1RBUlRfUE9TSVRJT04KKyNkZWZpbmUgT1RHNF9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX19PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9fT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX19PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNF9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX19PVEdfRFNDX1NUQVJUX1BPU0lUSU9OX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTCisjZGVmaW5lIE9URzRfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc0X09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9UQUtFTl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzRfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc0X09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9UQUtFTl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE9URzRfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc0X09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9UQUtFTl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzRfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX1ZVUERBVEVfS0VFUE9VVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9UQUtFTl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9UQUtFTl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9UQUtFTl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHNF9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfVlVQREFURV9LRUVQT1VUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vT1RHNF9PVEdfU1BBUkVfUkVHSVNURVIKKyNkZWZpbmUgT1RHNF9PVEdfU1BBUkVfUkVHSVNURVJfX09UR19TUEFSRV9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzRfT1RHX1NQQVJFX1JFR0lTVEVSX19PVEdfU1BBUkVfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vdGc1X2Rpc3BkZWMKKy8vT1RHNV9PVEdfSF9UT1RBTAorI2RlZmluZSBPVEc1X09UR19IX1RPVEFMX19PVEdfSF9UT1RBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfSF9UT1RBTF9fT1RHX0hfVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHNV9PVEdfSF9CTEFOS19TVEFSVF9FTkQKKyNkZWZpbmUgT1RHNV9PVEdfSF9CTEFOS19TVEFSVF9FTkRfX09UR19IX0JMQU5LX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0hfQkxBTktfU1RBUlRfRU5EX19PVEdfSF9CTEFOS19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfSF9CTEFOS19TVEFSVF9FTkRfX09UR19IX0JMQU5LX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfSF9CTEFOS19TVEFSVF9FTkRfX09UR19IX0JMQU5LX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNV9PVEdfSF9TWU5DX0EKKyNkZWZpbmUgT1RHNV9PVEdfSF9TWU5DX0FfX09UR19IX1NZTkNfQV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0hfU1lOQ19BX19PVEdfSF9TWU5DX0FfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfSF9TWU5DX0FfX09UR19IX1NZTkNfQV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfSF9TWU5DX0FfX09UR19IX1NZTkNfQV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNV9PVEdfSF9TWU5DX0FfQ05UTAorI2RlZmluZSBPVEc1X09UR19IX1NZTkNfQV9DTlRMX19PVEdfSF9TWU5DX0FfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfSF9TWU5DX0FfQ05UTF9fT1RHX0NPTVBfU1lOQ19BX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19IX1NZTkNfQV9DTlRMX19PVEdfSF9TWU5DX0FfQ1VUT0ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzVfT1RHX0hfU1lOQ19BX0NOVExfX09UR19IX1NZTkNfQV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX0hfU1lOQ19BX0NOVExfX09UR19DT01QX1NZTkNfQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0hfU1lOQ19BX0NOVExfX09UR19IX1NZTkNfQV9DVVRPRkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL09URzVfT1RHX0hfVElNSU5HX0NOVEwKKyNkZWZpbmUgT1RHNV9PVEdfSF9USU1JTkdfQ05UTF9fT1RHX0hfVElNSU5HX0RJVl9CWTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0hfVElNSU5HX0NOVExfX09UR19IX1RJTUlOR19ESVZfQlkyX1VQREFURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19IX1RJTUlOR19DTlRMX19PVEdfSF9USU1JTkdfRElWX0JZMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc1X09UR19IX1RJTUlOR19DTlRMX19PVEdfSF9USU1JTkdfRElWX0JZMl9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9PVEc1X09UR19WX1RPVEFMCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfX09UR19WX1RPVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19WX1RPVEFMX19PVEdfVl9UT1RBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEc1X09UR19WX1RPVEFMX01JTgorI2RlZmluZSBPVEc1X09UR19WX1RPVEFMX01JTl9fT1RHX1ZfVE9UQUxfTUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9NSU5fX09UR19WX1RPVEFMX01JTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHNV9PVEdfVl9UT1RBTF9NQVgKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9NQVhfX09UR19WX1RPVEFMX01BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfTUFYX19PVEdfVl9UT1RBTF9NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisvL09URzVfT1RHX1ZfVE9UQUxfTUlECisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfTUlEX19PVEdfVl9UT1RBTF9NSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19WX1RPVEFMX01JRF9fT1RHX1ZfVE9UQUxfTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEc1X09UR19WX1RPVEFMX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVl9UT1RBTF9NSU5fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTUFYX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEc1X09UR19WX1RPVEFMX0NPTlRST0xfX09UR19WVE9UQUxfTUlEX1JFUExBQ0lOR19NQVhfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfVlRPVEFMX01JRF9SRVBMQUNJTkdfTUlOX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX0ZPUkNFX0xPQ0tfT05fRVZFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc1X09UR19WX1RPVEFMX0NPTlRST0xfX09UR19EUlJfRVZFTlRfQUNUSVZFX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9DT05UUk9MX19PVEdfU0VUX1ZfVE9UQUxfTUlOX01BU0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfRlJBTUVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19WX1RPVEFMX0NPTlRST0xfX09UR19TRVRfVl9UT1RBTF9NSU5fTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTUlOX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTUFYX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfUkVQTEFDSU5HX01BWF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfUkVQTEFDSU5HX01JTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX0ZPUkNFX0xPQ0tfT05fRVZFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX0RSUl9FVkVOVF9BQ1RJVkVfUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1NFVF9WX1RPVEFMX01JTl9NQVNLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1ZUT1RBTF9NSURfRlJBTUVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfQ09OVFJPTF9fT1RHX1NFVF9WX1RPVEFMX01JTl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzVfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVUworI2RlZmluZSBPVEc1X09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzVfT1RHX1ZfVE9UQUxfSU5UX1NUQVRVU19fT1RHX1NFVF9WX1RPVEFMX01JTl9FVkVOVF9PQ0NVUlJFRF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19WX1RPVEFMX0lOVF9TVEFUVVNfX09UR19TRVRfVl9UT1RBTF9NSU5fRVZFTlRfT0NDVVJSRURfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVl9UT1RBTF9JTlRfU1RBVFVTX19PVEdfU0VUX1ZfVE9UQUxfTUlOX0VWRU5UX09DQ1VSUkVEX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vT1RHNV9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVMKKyNkZWZpbmUgT1RHNV9PVEdfVlNZTkNfTk9NX0lOVF9TVEFUVVNfX09UR19WU1lOQ19OT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1ZTWU5DX05PTV9JTlRfU1RBVFVTX19PVEdfVlNZTkNfTk9NX0lOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc1X09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19fT1RHX1ZTWU5DX05PTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc1X09UR19WU1lOQ19OT01fSU5UX1NUQVRVU19fT1RHX1ZTWU5DX05PTV9JTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9PVEc1X09UR19WX0JMQU5LX1NUQVJUX0VORAorI2RlZmluZSBPVEc1X09UR19WX0JMQU5LX1NUQVJUX0VORF9fT1RHX1ZfQkxBTktfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVl9CTEFOS19TVEFSVF9FTkRfX09UR19WX0JMQU5LX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19WX0JMQU5LX1NUQVJUX0VORF9fT1RHX1ZfQkxBTktfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc1X09UR19WX0JMQU5LX1NUQVJUX0VORF9fT1RHX1ZfQkxBTktfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc1X09UR19WX1NZTkNfQQorI2RlZmluZSBPVEc1X09UR19WX1NZTkNfQV9fT1RHX1ZfU1lOQ19BX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVl9TWU5DX0FfX09UR19WX1NZTkNfQV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19WX1NZTkNfQV9fT1RHX1ZfU1lOQ19BX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc1X09UR19WX1NZTkNfQV9fT1RHX1ZfU1lOQ19BX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc1X09UR19WX1NZTkNfQV9DTlRMCisjZGVmaW5lIE9URzVfT1RHX1ZfU1lOQ19BX0NOVExfX09UR19WX1NZTkNfQV9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19WX1NZTkNfQV9DTlRMX19PVEdfVl9TWU5DX0FfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEc1X09UR19UUklHQV9DTlRMCisjZGVmaW5lIE9URzVfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfU09VUkNFX1BJUEVfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1BPTEFSSVRZX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzVfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9SRVNZTkNfQllQQVNTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPVEc1X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfSU5QVVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1BPTEFSSVRZX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzVfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEc1X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfUklTSU5HX0VER0VfREVURUNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9GQUxMSU5HX0VER0VfREVURUNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0ZSRVFVRU5DWV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEc1X09UR19UUklHQV9DTlRMX19PVEdfVFJJR0FfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzVfT1RHX1RSSUdBX0NOVExfX09UR19UUklHQV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1NPVVJDRV9QSVBFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBFMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1BPTEFSSVRZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1JFU1lOQ19CWVBBU1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0lOUFVUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1BPTEFSSVRZX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX1JJU0lOR19FREdFX0RFVEVDVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0ZBTExJTkdfRURHRV9ERVRFQ1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0ZSRVFVRU5DWV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfQ05UTF9fT1RHX1RSSUdBX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHNV9PVEdfVFJJR0FfTUFOVUFMX1RSSUcKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0FfTUFOVUFMX1RSSUdfX09UR19UUklHQV9NQU5VQUxfVFJJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1RSSUdBX01BTlVBTF9UUklHX19PVEdfVFJJR0FfTUFOVUFMX1RSSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzVfT1RHX1RSSUdCX0NOVEwKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9TT1VSQ0VfUElQRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUE9MQVJJVFlfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX1JFU1lOQ19CWVBBU1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE9URzVfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9JTlBVVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUE9MQVJJVFlfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9URzVfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9SSVNJTkdfRURHRV9ERVRFQ1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0ZBTExJTkdfRURHRV9ERVRFQ1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfRlJFUVVFTkNZX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzVfT1RHX1RSSUdCX0NOVExfX09UR19UUklHQl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0JfQ05UTF9fT1RHX1RSSUdCX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfU09VUkNFX1BJUEVfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEUwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUE9MQVJJVFlfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUkVTWU5DX0JZUEFTU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfSU5QVVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUE9MQVJJVFlfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfUklTSU5HX0VER0VfREVURUNUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfRkFMTElOR19FREdFX0RFVEVDVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfRlJFUVVFTkNZX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBPVEc1X09UR19UUklHQl9DTlRMX19PVEdfVFJJR0JfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEc1X09UR19UUklHQl9NQU5VQUxfVFJJRworI2RlZmluZSBPVEc1X09UR19UUklHQl9NQU5VQUxfVFJJR19fT1RHX1RSSUdCX01BTlVBTF9UUklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR0JfTUFOVUFMX1RSSUdfX09UR19UUklHQl9NQU5VQUxfVFJJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHNV9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVEwKKyNkZWZpbmUgT1RHNV9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NIRUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc1X09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19UUklHX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfRk9SQ0VfQ09VTlRfTk9XX0NOVExfX09UR19GT1JDRV9DT1VOVF9OT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19GT1JDRV9DT1VOVF9OT1dfQ05UTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzVfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9URzVfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NIRUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzVfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzVfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0ZPUkNFX0NPVU5UX05PV19DTlRMX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL09URzVfT1RHX0ZMT1dfQ09OVFJPTAorI2RlZmluZSBPVEc1X09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzVfT1RHX0ZMT1dfQ09OVFJPTF9fT1RHX0ZMT1dfQ09OVFJPTF9HUkFOVUxBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfRkxPV19DT05UUk9MX19PVEdfRkxPV19DT05UUk9MX0lOUFVUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc1X09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBPVEc1X09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc1X09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfR1JBTlVMQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEc1X09UR19GTE9XX0NPTlRST0xfX09UR19GTE9XX0NPTlRST0xfSU5QVVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9PVEc1X09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUUKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19PVEdfU1RFUkVPX0ZPUkNFX05FWFRfRVlFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX0FWU1lOQ19GUkFNRV9DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfX09UR19BVlNZTkNfTElORV9DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX0FWU1lOQ19GUkFNRV9DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19GT1JDRV9ORVhUX0VZRV9fT1RHX0FWU1lOQ19MSU5FX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL09URzVfT1RHX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfQ09OVFJPTF9fT1RHX01BU1RFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19ESVNBQkxFX1BPSU5UX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19DT05UUk9MX19PVEdfU1RBUlRfUE9JTlRfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHNV9PVEdfQ09OVFJPTF9fT1RHX0ZJRUxEX05VTUJFUl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19GSUVMRF9OVU1CRVJfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEc1X09UR19DT05UUk9MX19PVEdfQ1VSUkVOVF9NQVNURVJfRU5fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19ESVNQX1JFQURfUkVRVUVTVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfQ09OVFJPTF9fT1RHX0FWU1lOQ19MT0NLX1NOQVBTSE9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEc1X09UR19DT05UUk9MX19PVEdfQVZTWU5DX1ZTWU5DX05fSFNZTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19NQVNURVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19ESVNBQkxFX1BPSU5UX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19TVEFSVF9QT0lOVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19GSUVMRF9OVU1CRVJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19GSUVMRF9OVU1CRVJfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19DVVJSRU5UX01BU1RFUl9FTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19ESVNQX1JFQURfUkVRVUVTVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19BVlNZTkNfTE9DS19TTkFQU0hPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NPTlRST0xfX09UR19BVlNZTkNfVlNZTkNfTl9IU1lOQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzVfT1RHX0JMQU5LX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfQkxBTktfQ09OVFJPTF9fT1RHX0NVUlJFTlRfQkxBTktfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0JMQU5LX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19CTEFOS19DT05UUk9MX19PVEdfQkxBTktfREVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0JMQU5LX0NPTlRST0xfX09UR19DVVJSRU5UX0JMQU5LX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX0JMQU5LX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzVfT1RHX0JMQU5LX0NPTlRST0xfX09UR19CTEFOS19ERV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL09URzVfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTAorI2RlZmluZSBPVEc1X09UR19QSVBFX0FCT1JUX0NPTlRST0xfX09UR19QSVBFX0FCT1JUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfUElQRV9BQk9SVF9DT05UUk9MX19PVEdfUElQRV9BQk9SVF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzVfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9fT1RHX1BJUEVfQUJPUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfQUJPUlRfQ09OVFJPTF9fT1RHX1BJUEVfQUJPUlRfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL09URzVfT1RHX0lOVEVSTEFDRV9DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX0lOVEVSTEFDRV9DT05UUk9MX19PVEdfSU5URVJMQUNFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19JTlRFUkxBQ0VfQ09OVFJPTF9fT1RHX0lOVEVSTEFDRV9GT1JDRV9ORVhUX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0lOVEVSTEFDRV9DT05UUk9MX19PVEdfSU5URVJMQUNFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX0lOVEVSTEFDRV9DT05UUk9MX19PVEdfSU5URVJMQUNFX0ZPUkNFX05FWFRfRklFTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisvL09URzVfT1RHX0lOVEVSTEFDRV9TVEFUVVMKKyNkZWZpbmUgT1RHNV9PVEdfSU5URVJMQUNFX1NUQVRVU19fT1RHX0lOVEVSTEFDRV9DVVJSRU5UX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0lOVEVSTEFDRV9TVEFUVVNfX09UR19JTlRFUkxBQ0VfTkVYVF9GSUVMRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEc1X09UR19JTlRFUkxBQ0VfU1RBVFVTX19PVEdfSU5URVJMQUNFX0NVUlJFTlRfRklFTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc1X09UR19JTlRFUkxBQ0VfU1RBVFVTX19PVEdfSU5URVJMQUNFX05FWFRfRklFTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9PVEc1X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMAorI2RlZmluZSBPVEc1X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9fT1RHX1BJWEVMX0RBVEFfQkxVRV9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzBfX09UR19QSVhFTF9EQVRBX0dSRUVOX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9fT1RHX1BJWEVMX0RBVEFfQkxVRV9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc1X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMF9fT1RHX1BJWEVMX0RBVEFfR1JFRU5fWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEc1X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMQorI2RlZmluZSBPVEc1X09UR19QSVhFTF9EQVRBX1JFQURCQUNLMV9fT1RHX1BJWEVMX0RBVEFfUkVEX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfUElYRUxfREFUQV9SRUFEQkFDSzFfX09UR19QSVhFTF9EQVRBX1JFRF9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vT1RHNV9PVEdfU1RBVFVTCisjZGVmaW5lIE9URzVfT1RHX1NUQVRVU19fT1RHX1ZfQkxBTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TVEFUVVNfX09UR19WX0FDVElWRV9ESVNQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfVl9TWU5DX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzVfT1RHX1NUQVRVU19fT1RHX1ZfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBPVEc1X09UR19TVEFUVVNfX09UR19WX0JMQU5LXzNEX1NUUlVDVFVSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfSF9CTEFOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19TVEFUVVNfX09UR19IX0FDVElWRV9ESVNQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzVfT1RHX1NUQVRVU19fT1RHX0hfU1lOQ19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfVl9CTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfVl9BQ1RJVkVfRElTUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfVl9TWU5DX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfVl9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfVl9CTEFOS18zRF9TVFJVQ1RVUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfSF9CTEFOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfSF9BQ1RJVkVfRElTUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX19PVEdfSF9TWU5DX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vT1RHNV9PVEdfU1RBVFVTX1BPU0lUSU9OCisjZGVmaW5lIE9URzVfT1RHX1NUQVRVU19QT1NJVElPTl9fT1RHX1ZFUlRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TVEFUVVNfUE9TSVRJT05fX09UR19IT1JaX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX1NUQVRVU19QT1NJVElPTl9fT1RHX1ZFUlRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzVfT1RHX1NUQVRVU19QT1NJVElPTl9fT1RHX0hPUlpfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzVfT1RHX05PTV9WRVJUX1BPU0lUSU9OCisjZGVmaW5lIE9URzVfT1RHX05PTV9WRVJUX1BPU0lUSU9OX19PVEdfVkVSVF9DT1VOVF9OT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19OT01fVkVSVF9QT1NJVElPTl9fT1RHX1ZFUlRfQ09VTlRfTk9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9PVEc1X09UR19TVEFUVVNfRlJBTUVfQ09VTlQKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX0ZSQU1FX0NPVU5UX19PVEdfRlJBTUVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1NUQVRVU19GUkFNRV9DT1VOVF9fT1RHX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL09URzVfT1RHX1NUQVRVU19WRl9DT1VOVAorI2RlZmluZSBPVEc1X09UR19TVEFUVVNfVkZfQ09VTlRfX09UR19WRl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVFVTX1ZGX0NPVU5UX19PVEdfVkZfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vT1RHNV9PVEdfU1RBVFVTX0hWX0NPVU5UCisjZGVmaW5lIE9URzVfT1RHX1NUQVRVU19IVl9DT1VOVF9fT1RHX0hWX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TVEFUVVNfSFZfQ09VTlRfX09UR19IVl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9PVEc1X09UR19DT1VOVF9DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX0NPVU5UX0NPTlRST0xfX09UR19IT1JaX0NPVU5UX0JZMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19DT1VOVF9DT05UUk9MX19PVEdfSE9SWl9SRVBFVElUSU9OX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHNV9PVEdfQ09VTlRfQ09OVFJPTF9fT1RHX0hPUlpfQ09VTlRfQlkyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9PVEdfQ09VTlRfQ09OVFJPTF9fT1RHX0hPUlpfUkVQRVRJVElPTl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRUwKKy8vT1RHNV9PVEdfQ09VTlRfUkVTRVQKKyNkZWZpbmUgT1RHNV9PVEdfQ09VTlRfUkVTRVRfX09UR19SRVNFVF9GUkFNRV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NPVU5UX1JFU0VUX19PVEdfUkVTRVRfRlJBTUVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzVfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkUKKyNkZWZpbmUgT1RHNV9PVEdfTUFOVUFMX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9fT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX01BTlVBTF9GT1JDRV9WU1lOQ19ORVhUX0xJTkVfX09UR19NQU5VQUxfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzVfT1RHX1ZFUlRfU1lOQ19DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX1ZFUlRfU1lOQ19DT05UUk9MX19PVEdfRk9SQ0VfVlNZTkNfTkVYVF9MSU5FX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVF9TWU5DX0NPTlRST0xfX09UR19BVVRPX0ZPUkNFX1ZTWU5DX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc1X09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc1X09UR19WRVJUX1NZTkNfQ09OVFJPTF9fT1RHX0FVVE9fRk9SQ0VfVlNZTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9PVEc1X09UR19TVEVSRU9fU1RBVFVTCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fQ1VSUkVOVF9FWUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX1NURVJFT19TWU5DX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19TVEVSRU9fU1RBVFVTX19PVEdfU1RFUkVPX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX1NUQVRVU19fT1RHX0NVUlJFTlRfM0RfU1RSVUNUVVJFX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEc1X09UR19TVEVSRU9fU1RBVFVTX19PVEdfQ1VSUkVOVF9TVEVSRU9TWU5DX0VOX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fQ1VSUkVOVF9FWUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fU1lOQ19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19TVEFUVVNfX09UR19TVEVSRU9fRk9SQ0VfTkVYVF9FWUVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19TVEFUVVNfX09UR19DVVJSRU5UXzNEX1NUUlVDVFVSRV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19TVEFUVVNfX09UR19DVVJSRU5UX1NURVJFT1NZTkNfRU5fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzVfT1RHX1NURVJFT19DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX1NZTkNfT1VUUFVUX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX1NURVJFT19TWU5DX09VVFBVVF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fRVlFX0ZMQUdfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEc1X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0RJU0FCTEVfU1RFUkVPU1lOQ19PVVRQVVRfRk9SX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19DT05UUk9MX19PVEdfRElTQUJMRV9GSUVMRF9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX1ZfQkxBTktfRk9SX0RQX0ZJWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEc1X09UR19TVEVSRU9fQ09OVFJPTF9fT1RHX0ZJRUxEX05VTV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE9URzVfT1RHX1NURVJFT19DT05UUk9MX19PVEdfU1RFUkVPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fU1lOQ19PVVRQVVRfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fRVlFX0ZMQUdfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX1NURVJFT1NZTkNfT1VUUFVUX0ZPUl9EUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX0ZJRUxEX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19ESVNBQkxFX1ZfQkxBTktfRk9SX0RQX0ZJWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19GSUVMRF9OVU1fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RFUkVPX0NPTlRST0xfX09UR19TVEVSRU9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHNV9PVEdfU05BUFNIT1RfU1RBVFVTCisjZGVmaW5lIE9URzVfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TTkFQU0hPVF9TVEFUVVNfX09UR19TTkFQU0hPVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgT1RHNV9PVEdfU05BUFNIT1RfU1RBVFVTX19PVEdfU05BUFNIT1RfTUFOVUFMX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9URzVfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzVfT1RHX1NOQVBTSE9UX1NUQVRVU19fT1RHX1NOQVBTSE9UX01BTlVBTF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL09URzVfT1RHX1NOQVBTSE9UX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfU05BUFNIT1RfQ09OVFJPTF9fT1RHX0FVVE9fU05BUFNIT1RfVFJJR19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1NOQVBTSE9UX0NPTlRST0xfX09UR19BVVRPX1NOQVBTSE9UX1RSSUdfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL09URzVfT1RHX1NOQVBTSE9UX1BPU0lUSU9OCisjZGVmaW5lIE9URzVfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX19PVEdfU05BUFNIT1RfVkVSVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TTkFQU0hPVF9QT1NJVElPTl9fT1RHX1NOQVBTSE9UX0hPUlpfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX19PVEdfU05BUFNIT1RfVkVSVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzVfT1RHX1NOQVBTSE9UX1BPU0lUSU9OX19PVEdfU05BUFNIT1RfSE9SWl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzVfT1RHX1NOQVBTSE9UX0ZSQU1FCisjZGVmaW5lIE9URzVfT1RHX1NOQVBTSE9UX0ZSQU1FX19PVEdfU05BUFNIT1RfRlJBTUVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TTkFQU0hPVF9GUkFNRV9fT1RHX1NOQVBTSE9UX0ZSQU1FX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9PVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1NOQVBTSE9UX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19TTkFQU0hPVF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzVfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfRk9SQ0VfQ09VTlRfTk9XX0lOVF9NU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHNV9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19GT1JDRV9WU1lOQ19ORVhUX0xJTkVfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzVfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0FfSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19UUklHQl9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdBX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE9URzVfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfVFJJR0JfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgT1RHNV9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19WU1lOQ19OT01fSU5UX01TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1ZTWU5DX05PTV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE9URzVfT1RHX0lOVEVSUlVQVF9DT05UUk9MX19PVEdfR1NMX1ZTWU5DX0dBUF9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgT1RHNV9PVEdfSU5URVJSVVBUX0NPTlRST0xfX09UR19HU0xfVlNZTkNfR0FQX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1NOQVBTSE9UX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1NOQVBTSE9UX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX0NPVU5UX05PV19JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0ZPUkNFX1ZTWU5DX05FWFRfTElORV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdBX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdCX0lOVF9NU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdBX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1RSSUdCX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1ZTWU5DX05PTV9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX1ZTWU5DX05PTV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0dTTF9WU1lOQ19HQVBfSU5UX01TS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBPVEc1X09UR19JTlRFUlJVUFRfQ09OVFJPTF9fT1RHX0dTTF9WU1lOQ19HQVBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEc1X09UR19VUERBVEVfTE9DSworI2RlZmluZSBPVEc1X09UR19VUERBVEVfTE9DS19fT1RHX1VQREFURV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVVBEQVRFX0xPQ0tfX09UR19VUERBVEVfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19IX1RJTUlOR19ESVZfQlkyX0RCX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfQkxBTktfREFUQV9FTl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzVfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1JBTkdFX1RJTUlOR19EQlVGX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc1X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19USU1JTkdfREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfM0RfQ1RSTF9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE9URzVfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9FTl9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBPVEc1X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19VUERBVEVfSU5TVEFOVExZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVlNUQVJUVVBfREJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzVfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX0RTQ19QT1NJVElPTl9EQl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEc1X09UR19ET1VCTEVfQlVGRkVSX0NPTlRST0xfX09UR19CTEFOS19EQVRBX0RPVUJMRV9CVUZGRVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0RPVUJMRV9CVUZGRVJfQ09OVFJPTF9fT1RHX1JBTkdFX1RJTUlOR19EQlVGX1VQREFURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfSF9USU1JTkdfRElWX0JZMl9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfQkxBTktfREFUQV9FTl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfUkFOR0VfVElNSU5HX0RCVUZfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVElNSU5HX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfM0RfQ1RSTF9EQl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0VOX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVVBEQVRFX0lOU1RBTlRMWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfVlNUQVJUVVBfREJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfRFNDX1BPU0lUSU9OX0RCX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfQkxBTktfREFUQV9ET1VCTEVfQlVGRkVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfRE9VQkxFX0JVRkZFUl9DT05UUk9MX19PVEdfUkFOR0VfVElNSU5HX0RCVUZfVVBEQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKy8vT1RHNV9PVEdfTUFTVEVSX0VOCisjZGVmaW5lIE9URzVfT1RHX01BU1RFUl9FTl9fT1RHX01BU1RFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19NQVNURVJfRU5fX09UR19NQVNURVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9PVEc1X09UR19CTEFOS19EQVRBX0NPTE9SCisjZGVmaW5lIE9URzVfT1RHX0JMQU5LX0RBVEFfQ09MT1JfX09UR19CTEFOS19EQVRBX0NPTE9SX0JMVUVfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9HUkVFTl9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgT1RHNV9PVEdfQkxBTktfREFUQV9DT0xPUl9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfUkVEX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBPVEc1X09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9CTFVFX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBPVEc1X09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9HUkVFTl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorI2RlZmluZSBPVEc1X09UR19CTEFOS19EQVRBX0NPTE9SX19PVEdfQkxBTktfREFUQV9DT0xPUl9SRURfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRjAwMDAwTAorLy9PVEc1X09UR19CTEFOS19EQVRBX0NPTE9SX0VYVAorI2RlZmluZSBPVEc1X09UR19CTEFOS19EQVRBX0NPTE9SX0VYVF9fT1RHX0JMQU5LX0RBVEFfQ09MT1JfQkxVRV9DQl9FWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX0dSRUVOX1lfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzVfT1RHX0JMQU5LX0RBVEFfQ09MT1JfRVhUX19PVEdfQkxBTktfREFUQV9DT0xPUl9SRURfQ1JfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX0JMVUVfQ0JfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgT1RHNV9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX0dSRUVOX1lfRVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgT1RHNV9PVEdfQkxBTktfREFUQV9DT0xPUl9FWFRfX09UR19CTEFOS19EQVRBX0NPTE9SX1JFRF9DUl9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vT1RHNV9PVEdfQkxBQ0tfQ09MT1IKKyNkZWZpbmUgT1RHNV9PVEdfQkxBQ0tfQ09MT1JfX09UR19CTEFDS19DT0xPUl9CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEc1X09UR19CTEFDS19DT0xPUl9fT1RHX0JMQUNLX0NPTE9SX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzVfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIE9URzVfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIE9URzVfT1RHX0JMQUNLX0NPTE9SX19PVEdfQkxBQ0tfQ09MT1JfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGMDAwMDBMCisvL09URzVfT1RHX0JMQUNLX0NPTE9SX0VYVAorI2RlZmluZSBPVEc1X09UR19CTEFDS19DT0xPUl9FWFRfX09UR19CTEFDS19DT0xPUl9CX0NCX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfR19ZX0VYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzVfT1RHX0JMQUNLX0NPTE9SX0VYVF9fT1RHX0JMQUNLX0NPTE9SX1JfQ1JfRVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfQl9DQl9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgT1RHNV9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfR19ZX0VYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgT1RHNV9PVEdfQkxBQ0tfQ09MT1JfRVhUX19PVEdfQkxBQ0tfQ09MT1JfUl9DUl9FWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTgorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9MSU5FX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfTElORV9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9MSU5FX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9MSU5FX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9PVVRQVVRfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQwX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9PVVRQVVRfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTgorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9MSU5FX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfTElORV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQxX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDFfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTgorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1BPU0lUSU9OX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9MSU5FX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9QT1NJVElPTl9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfTElORV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKy8vT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NPTlRST0xfX09UR19WRVJUSUNBTF9JTlRFUlJVUFQyX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzVfT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfQ09OVFJPTF9fT1RHX1ZFUlRJQ0FMX0lOVEVSUlVQVDJfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9DT05UUk9MX19PVEdfVkVSVElDQUxfSU5URVJSVVBUMl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vT1RHNV9PVEdfQ1JDX0NOVEwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVExfX09UR19DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0RVQUxfTElOS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEc1X09UR19DUkNfQ05UTF9fT1RHX0NSQ19EVUFMX0xJTktfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVExfX09UR19DUkNfQkxBTktfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0NPTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc1X09UR19DUkNfQ05UTF9fT1RHX0NSQ19DQVBUVVJFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVExfX09UR19DUkNfU1RFUkVPX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0lOVEVSTEFDRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc1X09UR19DUkNfQ05UTF9fT1RHX0NSQ19VU0VfTkVXX0FORF9SRVBFQVRFRF9QSVhFTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDMF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVExfX09UR19DUkMxX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPVEc1X09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzBfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVExfX09UR19PTkVfU0hPVF9DUkMyX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPVEc1X09UR19DUkNfQ05UTF9fT1RHX09ORV9TSE9UX0NSQzNfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0RVQUxfTElOS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0RVQUxfTElOS19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0JMQU5LX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0NPTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0NBUFRVUkVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNjBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX1NURVJFT19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX0lOVEVSTEFDRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDX1VTRV9ORVdfQU5EX1JFUEVBVEVEX1BJWEVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDMF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfQ1JDMV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDMl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMX19PVEdfT05FX1NIT1RfQ1JDM19QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzVfT1RHX0NSQ19DTlRMMgorI2RlZmluZSBPVEc1X09UR19DUkNfQ05UTDJfX09UR19DUkNfRFNDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfU1RSRUFNX0NPTUJJTkVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzVfT1RHX0NSQ19DTlRMMl9fT1RHX0NSQ19EQVRBX1NUUkVBTV9TUExJVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc1X09UR19DUkNfQ05UTDJfX09UR19DUkNfREFUQV9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfU1RSRUFNX0NPTUJJTkVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfU1RSRUFNX1NQTElUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX0NOVEwyX19PVEdfQ1JDX0RBVEFfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vT1RHNV9PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTAorI2RlZmluZSBPVEc1X09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQV9YX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc1X09UR19DUkMwX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1hfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc1X09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19DUkMwX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dBX1lfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzVfT1RHX0NSQzBfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0FfWV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzVfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NSQzBfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMwX1dJTkRPV0JfWF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9YX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNV9PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTAorI2RlZmluZSBPVEc1X09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzBfV0lORE9XQl9ZX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc1X09UR19DUkMwX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMF9XSU5ET1dCX1lfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc1X09UR19DUkMwX0RBVEFfUkcKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9EQVRBX1JHX19DUkMwX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NSQzBfREFUQV9SR19fQ1JDMF9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9EQVRBX1JHX19DUkMwX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9EQVRBX1JHX19DUkMwX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHNV9PVEdfQ1JDMF9EQVRBX0IKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9EQVRBX0JfX0NSQzBfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NSQzBfREFUQV9CX19DUkMwX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9EQVRBX0JfX0NSQzBfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMF9EQVRBX0JfX0NSQzBfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHNV9PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTAorI2RlZmluZSBPVEc1X09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1hfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9XSU5ET1dBX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQV9YX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1hfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc1X09UR19DUkMxX1dJTkRPV0FfWF9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1hfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc1X09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19DUkMxX1dJTkRPV0FfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dBX1lfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzVfT1RHX0NSQzFfV0lORE9XQV9ZX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0FfWV9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzVfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9YX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NSQzFfV0lORE9XQl9YX0NPTlRST0xfX09UR19DUkMxX1dJTkRPV0JfWF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9YX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9XSU5ET1dCX1hfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9YX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKy8vT1RHNV9PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTAorI2RlZmluZSBPVEc1X09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1lfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9XSU5ET1dCX1lfQ09OVFJPTF9fT1RHX0NSQzFfV0lORE9XQl9ZX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1lfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc1X09UR19DUkMxX1dJTkRPV0JfWV9DT05UUk9MX19PVEdfQ1JDMV9XSU5ET1dCX1lfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc1X09UR19DUkMxX0RBVEFfUkcKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9EQVRBX1JHX19DUkMxX1JfQ1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NSQzFfREFUQV9SR19fQ1JDMV9HX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9EQVRBX1JHX19DUkMxX1JfQ1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9EQVRBX1JHX19DUkMxX0dfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHNV9PVEdfQ1JDMV9EQVRBX0IKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9EQVRBX0JfX0NSQzFfQl9DQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NSQzFfREFUQV9CX19DUkMxX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9EQVRBX0JfX0NSQzFfQl9DQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDMV9EQVRBX0JfX0NSQzFfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHNV9PVEdfQ1JDMl9EQVRBX1JHCisjZGVmaW5lIE9URzVfT1RHX0NSQzJfREFUQV9SR19fQ1JDMl9SX0NSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19DUkMyX0RBVEFfUkdfX0NSQzJfR19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0NSQzJfREFUQV9SR19fQ1JDMl9SX0NSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzVfT1RHX0NSQzJfREFUQV9SR19fQ1JDMl9HX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzVfT1RHX0NSQzJfREFUQV9CCisjZGVmaW5lIE9URzVfT1RHX0NSQzJfREFUQV9CX19DUkMyX0JfQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19DUkMyX0RBVEFfQl9fQ1JDMl9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0NSQzJfREFUQV9CX19DUkMyX0JfQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzVfT1RHX0NSQzJfREFUQV9CX19DUkMyX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzVfT1RHX0NSQzNfREFUQV9SRworI2RlZmluZSBPVEc1X09UR19DUkMzX0RBVEFfUkdfX0NSQzNfUl9DUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDM19EQVRBX1JHX19DUkMzX0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19DUkMzX0RBVEFfUkdfX0NSQzNfUl9DUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc1X09UR19DUkMzX0RBVEFfUkdfX0NSQzNfR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEc1X09UR19DUkMzX0RBVEFfQgorI2RlZmluZSBPVEc1X09UR19DUkMzX0RBVEFfQl9fQ1JDM19CX0NCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDM19EQVRBX0JfX0NSQzNfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19DUkMzX0RBVEFfQl9fQ1JDM19CX0NCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc1X09UR19DUkMzX0RBVEFfQl9fQ1JDM19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9PVEc1X09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLCisjZGVmaW5lIE9URzVfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfX09UR19DUkNfU0lHX1JFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19DUkNfU0lHX1JFRF9HUkVFTl9NQVNLX19PVEdfQ1JDX1NJR19HUkVFTl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfX09UR19DUkNfU0lHX1JFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE9URzVfT1RHX0NSQ19TSUdfUkVEX0dSRUVOX01BU0tfX09UR19DUkNfU0lHX0dSRUVOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL09URzVfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0sKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19fT1RHX0NSQ19TSUdfQkxVRV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0NSQ19TSUdfQkxVRV9DT05UUk9MX01BU0tfX09UR19DUkNfU0lHX0NPTlRST0xfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19fT1RHX0NSQ19TSUdfQkxVRV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfQ1JDX1NJR19CTFVFX0NPTlRST0xfTUFTS19fT1RHX0NSQ19TSUdfQ09OVFJPTF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fRVZFTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX0ZSQU1FX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1NfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBPVEc1X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19DUFVfU1NfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE9URzVfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX0NQVV9TU19JTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBPVEc1X09UR19TVEFUSUNfU0NSRUVOX0NPTlRST0xfX09UR19TVEFUSUNfU0NSRUVOX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzVfT1RHX1NUQVRJQ19TQ1JFRU5fQ09OVFJPTF9fT1RHX1NUQVRJQ19TQ1JFRU5fT1ZFUlJJREVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9FVkVOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9GUkFNRV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1NfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfQ1BVX1NTX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfU1RBVElDX1NDUkVFTl9DT05UUk9MX19PVEdfU1RBVElDX1NDUkVFTl9PVkVSUklERV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHNV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX1ZfVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9TVEVSRU9fU0VMX09WUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHNV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR18zRF9TVFJVQ1RVUkVfQ09OVFJPTF9fT1RHXzNEX1NUUlVDVFVSRV9GX0NPVU5UX1JFU0VUX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzVfT1RHXzNEX1NUUlVDVFVSRV9DT05UUk9MX19PVEdfM0RfU1RSVUNUVVJFX0ZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHNV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfVl9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgT1RHNV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfU1RFUkVPX1NFTF9PVlJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9SRVNFVF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfM0RfU1RSVUNUVVJFX0NPTlRST0xfX09UR18zRF9TVFJVQ1RVUkVfRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vT1RHNV9PVEdfR1NMX1ZTWU5DX0dBUAorI2RlZmluZSBPVEc1X09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX1NPVVJDRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBPVEc1X09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX1ZTWU5DX0dBUF9fT1RHX0dTTF9WU1lOQ19HQVBfTUFTVEVSX0ZBU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBPVEc1X09UR19HU0xfVlNZTkNfR0FQX19PVEdfR1NMX1ZTWU5DX0dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX1NPVVJDRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNjAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01BU1RFUl9GQVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0dTTF9WU1lOQ19HQVBfX09UR19HU0xfVlNZTkNfR0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL09URzVfT1RHX01BU1RFUl9VUERBVEVfTU9ERQorI2RlZmluZSBPVEc1X09UR19NQVNURVJfVVBEQVRFX01PREVfX01BU1RFUl9VUERBVEVfSU5URVJMQUNFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfTUFTVEVSX1VQREFURV9NT0RFX19NQVNURVJfVVBEQVRFX0lOVEVSTEFDRURfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vT1RHNV9PVEdfQ0xPQ0tfQ09OVFJPTAorI2RlZmluZSBPVEc1X09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0NMT0NLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzVfT1RHX0NMT0NLX0NPTlRST0xfX09UR19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc1X09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfQ0xPQ0tfQ09OVFJPTF9fT1RHX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBPVEc1X09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBPVEc1X09UR19DTE9DS19DT05UUk9MX19PVEdfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBPVEc1X09UR19DTE9DS19DT05UUk9MX19PVEdfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBPVEc1X09UR19DTE9DS19DT05UUk9MX19PVEdfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9PVEc1X09UR19WU1RBUlRVUF9QQVJBTQorI2RlZmluZSBPVEc1X09UR19WU1RBUlRVUF9QQVJBTV9fVlNUQVJUVVBfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVlNUQVJUVVBfUEFSQU1fX1ZTVEFSVFVQX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKy8vT1RHNV9PVEdfVlVQREFURV9QQVJBTQorI2RlZmluZSBPVEc1X09UR19WVVBEQVRFX1BBUkFNX19WVVBEQVRFX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfVlVQREFURV9QQVJBTV9fVlVQREFURV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19WVVBEQVRFX1BBUkFNX19WVVBEQVRFX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc1X09UR19WVVBEQVRFX1BBUkFNX19WVVBEQVRFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9PVEc1X09UR19WUkVBRFlfUEFSQU0KKyNkZWZpbmUgT1RHNV9PVEdfVlJFQURZX1BBUkFNX19WUkVBRFlfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1ZSRUFEWV9QQVJBTV9fVlJFQURZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL09URzVfT1RHX0dMT0JBTF9TWU5DX1NUQVRVUworI2RlZmluZSBPVEc1X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlNUQVJUVVBfRVZFTlRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZTVEFSVFVQX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9FVkVOVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9QT1NJVElPTl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0VWRU5UX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlVQREFURV9OT19MT0NLX0VWRU5UX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfRVZFTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZVUERBVEVfTk9fTE9DS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBPVEc1X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1ZSRUFEWV9FVkVOVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fVlJFQURZX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfRVZFTlRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfU1lOQ19TVEFUVVNfX1NURVJFT19TRUxFQ1RfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9TWU5DX1NUQVRVU19fRklFTERfTlVNQkVSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9FVkVOVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WU1RBUlRVUF9FVkVOVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9QT1NJVElPTl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0VWRU5UX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX0VWRU5UX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfRVZFTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WVVBEQVRFX05PX0xPQ0tfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfRVZFTlRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19WUkVBRFlfRVZFTlRfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19TVEVSRU9fU0VMRUNUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX1NZTkNfU1RBVFVTX19GSUVMRF9OVU1CRVJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vT1RHNV9PVEdfTUFTVEVSX1VQREFURV9MT0NLCisjZGVmaW5lIE9URzVfT1RHX01BU1RFUl9VUERBVEVfTE9DS19fT1RHX01BU1RFUl9VUERBVEVfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19NQVNURVJfVVBEQVRFX0xPQ0tfX1VQREFURV9MT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfTUFTVEVSX1VQREFURV9MT0NLX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9PVEdfTUFTVEVSX1VQREFURV9MT0NLX19VUERBVEVfTE9DS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vT1RHNV9PVEdfR1NMX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wwX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMMV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPVEc1X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTDJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfTUFTVEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE9URzVfT1RHX0dTTF9DT05UUk9MX19PVEdfR1NMX01BU1RFUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPVEc1X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9DSEVDS19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfRk9SQ0VfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19HU0xfQ09OVFJPTF9fT1RHX0dTTF9DSEVDS19BTExfRklFTERTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE9URzVfT1RHX0dTTF9DT05UUk9MX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0dTTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wwX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wxX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0wyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfTUFTVEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfTUFTVEVSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfQ0hFQ0tfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfRk9SQ0VfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19HU0xfQ0hFQ0tfQUxMX0ZJRUxEU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX0NPTlRST0xfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfR1NMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHNV9PVEdfR1NMX1dJTkRPV19YCisjZGVmaW5lIE9URzVfT1RHX0dTTF9XSU5ET1dfWF9fT1RHX0dTTF9XSU5ET1dfU1RBUlRfWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19HU0xfV0lORE9XX1hfX09UR19HU0xfV0lORE9XX0VORF9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0dTTF9XSU5ET1dfWF9fT1RHX0dTTF9XSU5ET1dfU1RBUlRfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzVfT1RHX0dTTF9XSU5ET1dfWF9fT1RHX0dTTF9XSU5ET1dfRU5EX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzVfT1RHX0dTTF9XSU5ET1dfWQorI2RlZmluZSBPVEc1X09UR19HU0xfV0lORE9XX1lfX09UR19HU0xfV0lORE9XX1NUQVJUX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfR1NMX1dJTkRPV19ZX19PVEdfR1NMX1dJTkRPV19FTkRfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19HU0xfV0lORE9XX1lfX09UR19HU0xfV0lORE9XX1NUQVJUX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBPVEc1X09UR19HU0xfV0lORE9XX1lfX09UR19HU0xfV0lORE9XX0VORF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorLy9PVEc1X09UR19WVVBEQVRFX0tFRVBPVVQKKyNkZWZpbmUgT1RHNV9PVEdfVlVQREFURV9LRUVQT1VUX19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX1NUQVJUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1ZVUERBVEVfS0VFUE9VVF9fTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9FTkRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfVlVQREFURV9LRUVQT1VUX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX1ZVUERBVEVfS0VFUE9VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBPVEc1X09UR19WVVBEQVRFX0tFRVBPVVRfX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfU1RBUlRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBPVEc1X09UR19WVVBEQVRFX0tFRVBPVVRfX01BU1RFUl9VUERBVEVfTE9DS19WVVBEQVRFX0tFRVBPVVRfRU5EX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorI2RlZmluZSBPVEc1X09UR19WVVBEQVRFX0tFRVBPVVRfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfVlVQREFURV9LRUVQT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9PVEc1X09UR19HTE9CQUxfQ09OVFJPTDAKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wwX19PVEdfTUFTVEVSX1VQREFURV9MT0NLX0hUT1RBTF9LRUVQT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19IVE9UQUxfS0VFUE9VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfQ09OVFJPTDBfX09UR19NQVNURVJfVVBEQVRFX0xPQ0tfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19IVE9UQUxfS0VFUE9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19IVE9UQUxfS0VFUE9VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MMF9fT1RHX01BU1RFUl9VUERBVEVfTE9DS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisvL09URzVfT1RHX0dMT0JBTF9DT05UUk9MMQorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wxX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfQ09OVFJPTDFfX01BU1RFUl9VUERBVEVfTE9DS19EQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MMV9fTUFTVEVSX1VQREFURV9MT0NLX0RCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL09URzVfT1RHX0dMT0JBTF9DT05UUk9MMgorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfQ09OVFJPTDJfX0RJR19VUERBVEVfTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wyX19HTE9CQUxfVVBEQVRFX0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MMl9fTUFOVUFMX0ZMT1dfQ09OVFJPTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wyX19NQVNURVJfVVBEQVRFX0xPQ0tfV0lORE9XX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfQ09OVFJPTDJfX09UR19WVVBEQVRFX0JMT0NLX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MMl9fRENDR19WVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wyX19ESUdfVVBEQVRFX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wyX19HTE9CQUxfVVBEQVRFX0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wyX19NQU5VQUxfRkxPV19DT05UUk9MX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wyX19NQVNURVJfVVBEQVRFX0xPQ0tfV0lORE9XX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wyX19PVEdfVlVQREFURV9CTE9DS19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wyX19EQ0NHX1ZVUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wzCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19HTE9CQUxfQ09OVFJPTDNfX01BU1RFUl9VUERBVEVfTE9DS19EQl9TVEVSRU9fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHNV9PVEdfR0xPQkFMX0NPTlRST0wzX19NQVNURVJfVVBEQVRFX0xPQ0tfREJfRklFTERfU1RFUkVPX0ZMQUdfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX1NURVJFT19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE9URzVfT1RHX0dMT0JBTF9DT05UUk9MM19fTUFTVEVSX1VQREFURV9MT0NLX0RCX0ZJRUxEX1NURVJFT19GTEFHX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL09URzVfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfVFJJR19NQU5VQUxfQ09OVFJPTF9fVFJJR19NQU5VQUxfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX1RSSUdfTUFOVUFMX0NPTlRST0xfX1RSSUdfTUFOVUFMX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzVfT1RHX01BTlVBTF9GTE9XX0NPTlRST0wKKyNkZWZpbmUgT1RHNV9PVEdfTUFOVUFMX0ZMT1dfQ09OVFJPTF9fTUFOVUFMX0ZMT1dfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9URzVfT1RHX01BTlVBTF9GTE9XX0NPTlRST0xfX01BTlVBTF9GTE9XX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL09URzVfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTCisjZGVmaW5lIE9URzVfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHNV9PVEdfUkFOR0VfVElNSU5HX0lOVF9TVEFUVVNfX09UR19SQU5HRV9USU1JTkdfVVBEQVRFX09DQ1VSUkVEX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9URzVfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfTVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPVEc1X09UR19SQU5HRV9USU1JTkdfSU5UX1NUQVRVU19fT1RHX1JBTkdFX1RJTUlOR19VUERBVEVfT0NDVVJSRURfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzVfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzVfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfTVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE9URzVfT1RHX1JBTkdFX1RJTUlOR19JTlRfU1RBVFVTX19PVEdfUkFOR0VfVElNSU5HX1VQREFURV9PQ0NVUlJFRF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL09URzVfT1RHX0RSUl9DT05UUk9MCisjZGVmaW5lIE9URzVfT1RHX0RSUl9DT05UUk9MX19PVEdfRFJSX0FWRVJBR0VfRlJBTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19EUlJfQ09OVFJPTF9fT1RHX1ZfVE9UQUxfTEFTVF9VU0VEX0JZX0RSUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0RSUl9DT05UUk9MX19PVEdfRFJSX0FWRVJBR0VfRlJBTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE9URzVfT1RHX0RSUl9DT05UUk9MX19PVEdfVl9UT1RBTF9MQVNUX1VTRURfQllfRFJSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisvL09URzVfT1RHX1JFUVVFU1RfQ09OVFJPTAorI2RlZmluZSBPVEc1X09UR19SRVFVRVNUX0NPTlRST0xfX09UR19SRVFVRVNUX01PREVfRk9SX0hfRFVQTElDQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfUkVRVUVTVF9DT05UUk9MX19PVEdfUkVRVUVTVF9NT0RFX0ZPUl9IX0RVUExJQ0FURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vT1RHNV9PVEdfRFNDX1NUQVJUX1BPU0lUSU9OCisjZGVmaW5lIE9URzVfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9fT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19EU0NfU1RBUlRfUE9TSVRJT05fX09UR19EU0NfU1RBUlRfUE9TSVRJT05fTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9fT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIE9URzVfT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9fT1RHX0RTQ19TVEFSVF9QT1NJVElPTl9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL09URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVUworI2RlZmluZSBPVEc1X09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19GTElQX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT1RHNV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRkxJUF9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfVEFLRU5fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBPVEc1X09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19EQ19SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgT1RHNV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfRENfUkVHX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfVEFLRU5fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBPVEc1X09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19DVVJTT1JfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1RHNV9PVEdfUElQRV9VUERBVEVfU1RBVFVTX19PVEdfQ1VSU09SX1VQREFURV9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfVEFLRU5fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPVEc1X09UR19QSVBFX1VQREFURV9TVEFUVVNfX09UR19WVVBEQVRFX0tFRVBPVVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0ZMSVBfVEFLRU5fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0RDX1JFR19VUERBVEVfVEFLRU5fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX0NVUlNPUl9VUERBVEVfVEFLRU5fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9URzVfT1RHX1BJUEVfVVBEQVRFX1NUQVRVU19fT1RHX1ZVUERBVEVfS0VFUE9VVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL09URzVfT1RHX1NQQVJFX1JFR0lTVEVSCisjZGVmaW5lIE9URzVfT1RHX1NQQVJFX1JFR0lTVEVSX19PVEdfU1BBUkVfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPVEc1X09UR19TUEFSRV9SRUdJU1RFUl9fT1RHX1NQQVJFX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX29wdGNfb3B0Y19taXNjX2Rpc3BkZWMKKy8vRFdCX1NPVVJDRV9TRUxFQ1QKKyNkZWZpbmUgRFdCX1NPVVJDRV9TRUxFQ1RfX09QVENfRFdCMF9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERXQl9TT1VSQ0VfU0VMRUNUX19PUFRDX0RXQjFfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEV0JfU09VUkNFX1NFTEVDVF9fT1BUQ19EV0IyX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFdCX1NPVVJDRV9TRUxFQ1RfX09QVENfRFdCMF9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFdCX1NPVVJDRV9TRUxFQ1RfX09QVENfRFdCMV9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgRFdCX1NPVVJDRV9TRUxFQ1RfX09QVENfRFdCMl9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKy8vR1NMX1NPVVJDRV9TRUxFQ1QKKyNkZWZpbmUgR1NMX1NPVVJDRV9TRUxFQ1RfX0dTTDBfUkVBRFlfU09VUkNFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEdTTF9TT1VSQ0VfU0VMRUNUX19HU0wxX1JFQURZX1NPVVJDRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBHU0xfU09VUkNFX1NFTEVDVF9fR1NMMl9SRUFEWV9TT1VSQ0VfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgR1NMX1NPVVJDRV9TRUxFQ1RfX0dTTF9USU1JTkdfU1lOQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBHU0xfU09VUkNFX1NFTEVDVF9fR1NMMF9SRUFEWV9TT1VSQ0VfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBHU0xfU09VUkNFX1NFTEVDVF9fR1NMMV9SRUFEWV9TT1VSQ0VfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBHU0xfU09VUkNFX1NFTEVDVF9fR1NMMl9SRUFEWV9TT1VSQ0VfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBHU0xfU09VUkNFX1NFTEVDVF9fR1NMX1RJTUlOR19TWU5DX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorLy9PUFRDX0NMT0NLX0NPTlRST0wKKyNkZWZpbmUgT1BUQ19DTE9DS19DT05UUk9MX19PUFRDX0RJU1BDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QVENfQ0xPQ0tfQ09OVFJPTF9fT1BUQ19ESVNQQ0xLX1JfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBPUFRDX0NMT0NLX0NPTlRST0xfX09QVENfVEVTVF9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT1BUQ19DTE9DS19DT05UUk9MX19PUFRDX0RJU1BDTEtfUl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgT1BUQ19DTE9DS19DT05UUk9MX19PUFRDX0RJU1BDTEtfUl9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgT1BUQ19DTE9DS19DT05UUk9MX19PUFRDX1RFU1RfQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKy8vT0RNX01FTV9QV1JfQ1RSTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNMF9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTF9fT0RNX01FTTBfUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkxfX09ETV9NRU0xX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNMV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTF9fT0RNX01FTTJfUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkxfX09ETV9NRU0yX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNM19QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTF9fT0RNX01FTTNfUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkxfX09ETV9NRU00X1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTF9fT0RNX01FTTRfUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNNV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkxfX09ETV9NRU01X1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTF9fT0RNX01FTTZfUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNNl9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkxfX09ETV9NRU03X1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTF9fT0RNX01FTTdfUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNMF9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNMF9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNMV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNMV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNMl9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNMl9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNM19QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNM19QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNNF9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNNF9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNNV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNNV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNNl9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNNl9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNN19QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMX19PRE1fTUVNN19QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9PRE1fTUVNX1BXUl9DVFJMMgorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMMl9fT0RNX01FTThfUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTDJfX09ETV9NRU04X1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNOV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMMl9fT0RNX01FTTlfUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTDJfX09ETV9NRU0xMF9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNMTBfUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMMl9fT0RNX01FTTExX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTDJfX09ETV9NRU0xMV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNOF9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNOF9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNOV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNOV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNMTBfUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNMTBfUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNMTFfUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwyX19PRE1fTUVNMTFfUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisvL09ETV9NRU1fUFdSX0NUUkwzCisjZGVmaW5lIE9ETV9NRU1fUFdSX0NUUkwzX19PRE1fTUVNX1VOQVNTSUdORURfUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE1fTUVNX1BXUl9DVFJMM19fT0RNX01FTV9WQkxBTktfUFdSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTDNfX09ETV9NRU1fVU5BU1NJR05FRF9QV1JfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgT0RNX01FTV9QV1JfQ1RSTDNfX09ETV9NRU1fVkJMQU5LX1BXUl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKy8vT0RNX01FTV9QV1JfU1RBVFVTCisjZGVmaW5lIE9ETV9NRU1fUFdSX1NUQVRVU19fT0RNX01FTTBfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU0xX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgT0RNX01FTV9QV1JfU1RBVFVTX19PRE1fTUVNMl9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE9ETV9NRU1fUFdSX1NUQVRVU19fT0RNX01FTTNfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU00X1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgT0RNX01FTV9QV1JfU1RBVFVTX19PRE1fTUVNNV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE9ETV9NRU1fUFdSX1NUQVRVU19fT0RNX01FTTZfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU03X1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgT0RNX01FTV9QV1JfU1RBVFVTX19PRE1fTUVNOF9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU05X1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE9ETV9NRU1fUFdSX1NUQVRVU19fT0RNX01FTTEwX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgT0RNX01FTV9QV1JfU1RBVFVTX19PRE1fTUVNMTFfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU0wX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU0xX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU0yX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU0zX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU00X1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU01X1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU02X1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU03X1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU04X1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU05X1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU0xMF9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBPRE1fTUVNX1BXUl9TVEFUVVNfX09ETV9NRU0xMV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorLy9PUFRDX01JU0NfU1BBUkVfUkVHSVNURVIKKyNkZWZpbmUgT1BUQ19NSVNDX1NQQVJFX1JFR0lTVEVSX19PUFRDX01JU0NfU1BBUkVfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE9QVENfTUlTQ19TUEFSRV9SRUdJU1RFUl9fT1BUQ19NSVNDX1NQQVJFX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfb3B0Y19vcHRjX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9TVEFURQorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGQ0wKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkMwMEwKKy8vRENfUEVSRk1PTjE3X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX1BFUkZNT04xN19QRVJGTU9OX0hJCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0hJX19QRVJGTU9OX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0hJX19QRVJGTU9OX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDX1BFUkZNT04xN19QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04xN19QRVJGTU9OX0xPVworI2RlZmluZSBEQ19QRVJGTU9OMTdfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE3X1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZG91dF9pMmNfZGlzcGRlYworLy9EQ19JMkNfQ09OVFJPTAorI2RlZmluZSBEQ19JMkNfQ09OVFJPTF9fRENfSTJDX0dPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX0NPTlRST0xfX0RDX0kyQ19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX0kyQ19DT05UUk9MX19EQ19JMkNfU0VORF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19JMkNfQ09OVFJPTF9fRENfSTJDX1NXX1NUQVRVU19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfSTJDX0NPTlRST0xfX0RDX0kyQ19ERENfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0kyQ19DT05UUk9MX19EQ19JMkNfVFJBTlNBQ1RJT05fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfSTJDX0NPTlRST0xfX0RDX0kyQ19HT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfSTJDX0NPTlRST0xfX0RDX0kyQ19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfSTJDX0NPTlRST0xfX0RDX0kyQ19TRU5EX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfSTJDX0NPTlRST0xfX0RDX0kyQ19TV19TVEFUVVNfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfSTJDX0NPTlRST0xfX0RDX0kyQ19ERENfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRENfSTJDX0NPTlRST0xfX0RDX0kyQ19UUkFOU0FDVElPTl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKy8vRENfSTJDX0FSQklUUkFUSU9OCisjZGVmaW5lIERDX0kyQ19BUkJJVFJBVElPTl9fRENfSTJDX1NXX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19SRUdfUldfQ05UTF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfSTJDX0FSQklUUkFUSU9OX19EQ19JMkNfTk9fUVVFVUVEX1NXX0dPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0kyQ19BUkJJVFJBVElPTl9fRENfSTJDX0FCT1JUX0hXX1hGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19BQk9SVF9TV19YRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfSTJDX0FSQklUUkFUSU9OX19EQ19JMkNfU1dfVVNFX0kyQ19SRUdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19TV19ET05FX1VTSU5HX0kyQ19SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDX0kyQ19BUkJJVFJBVElPTl9fRENfSTJDX0RNQ1VfVVNFX0kyQ19SRUdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfSTJDX0FSQklUUkFUSU9OX19EQ19JMkNfRE1DVV9ET05FX1VTSU5HX0kyQ19SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19TV19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19SRUdfUldfQ05UTF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19OT19RVUVVRURfU1dfR09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19BQk9SVF9IV19YRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19BQk9SVF9TV19YRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19TV19VU0VfSTJDX1JFR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19TV19ET05FX1VTSU5HX0kyQ19SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19ETUNVX1VTRV9JMkNfUkVHX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19JMkNfQVJCSVRSQVRJT05fX0RDX0kyQ19ETUNVX0RPTkVfVVNJTkdfSTJDX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorLy9EQ19JMkNfSU5URVJSVVBUX0NPTlRST0wKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfU1dfRE9ORV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0kyQ19JTlRFUlJVUFRfQ09OVFJPTF9fRENfSTJDX1NXX0RPTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19JMkNfSU5URVJSVVBUX0NPTlRST0xfX0RDX0kyQ19TV19ET05FX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDMV9IV19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0kyQ19JTlRFUlJVUFRfQ09OVFJPTF9fRENfSTJDX0REQzFfSFdfRE9ORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19JMkNfSU5URVJSVVBUX0NPTlRST0xfX0RDX0kyQ19EREMxX0hXX0RPTkVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDMl9IV19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0kyQ19JTlRFUlJVUFRfQ09OVFJPTF9fRENfSTJDX0REQzJfSFdfRE9ORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19JMkNfSU5URVJSVVBUX0NPTlRST0xfX0RDX0kyQ19EREMyX0hXX0RPTkVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDM19IV19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0kyQ19JTlRFUlJVUFRfQ09OVFJPTF9fRENfSTJDX0REQzNfSFdfRE9ORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19JMkNfSU5URVJSVVBUX0NPTlRST0xfX0RDX0kyQ19EREMzX0hXX0RPTkVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNF9IV19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19JMkNfSU5URVJSVVBUX0NPTlRST0xfX0RDX0kyQ19EREM0X0hXX0RPTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX0kyQ19JTlRFUlJVUFRfQ09OVFJPTF9fRENfSTJDX0REQzRfSFdfRE9ORV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNV9IV19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19JMkNfSU5URVJSVVBUX0NPTlRST0xfX0RDX0kyQ19EREM1X0hXX0RPTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDX0kyQ19JTlRFUlJVUFRfQ09OVFJPTF9fRENfSTJDX0REQzVfSFdfRE9ORV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNl9IV19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19JMkNfSU5URVJSVVBUX0NPTlRST0xfX0RDX0kyQ19EREM2X0hXX0RPTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX0kyQ19JTlRFUlJVUFRfQ09OVFJPTF9fRENfSTJDX0REQzZfSFdfRE9ORV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDVkdBX0hXX0RPTkVfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQ19JMkNfSU5URVJSVVBUX0NPTlRST0xfX0RDX0kyQ19ERENWR0FfSFdfRE9ORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0kyQ19JTlRFUlJVUFRfQ09OVFJPTF9fRENfSTJDX0REQ1ZHQV9IV19ET05FX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfU1dfRE9ORV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfU1dfRE9ORV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfU1dfRE9ORV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDMV9IV19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDMV9IV19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDMV9IV19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDMl9IV19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDMl9IV19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDMl9IV19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDM19IV19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDM19IV19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDM19IV19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNF9IV19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNF9IV19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNF9IV19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNV9IV19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNV9IV19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNV9IV19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNl9IV19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNl9IV19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDNl9IV19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDVkdBX0hXX0RPTkVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDVkdBX0hXX0RPTkVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0lOVEVSUlVQVF9DT05UUk9MX19EQ19JMkNfRERDVkdBX0hXX0RPTkVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vRENfSTJDX1NXX1NUQVRVUworI2RlZmluZSBEQ19JMkNfU1dfU1RBVFVTX19EQ19JMkNfU1dfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0kyQ19TV19TVEFUVVNfX0RDX0kyQ19TV19BQk9SVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19JMkNfU1dfU1RBVFVTX19EQ19JMkNfU1dfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX0lOVEVSUlVQVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX0kyQ19TV19TVEFUVVNfX0RDX0kyQ19TV19CVUZGRVJfT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19JMkNfU1dfU1RBVFVTX19EQ19JMkNfU1dfU1RPUFBFRF9PTl9OQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX05BQ0swX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0kyQ19TV19TVEFUVVNfX0RDX0kyQ19TV19OQUNLMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19JMkNfU1dfU1RBVFVTX19EQ19JMkNfU1dfTkFDSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX05BQ0szX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX0kyQ19TV19TVEFUVVNfX0RDX0kyQ19TV19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX0FCT1JURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX0lOVEVSUlVQVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX0JVRkZFUl9PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX1NUT1BQRURfT05fTkFDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX05BQ0swX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX05BQ0sxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX05BQ0syX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX05BQ0szX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfSTJDX1NXX1NUQVRVU19fRENfSTJDX1NXX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vRENfSTJDX0REQzFfSFdfU1RBVFVTCisjZGVmaW5lIERDX0kyQ19EREMxX0hXX1NUQVRVU19fRENfSTJDX0REQzFfSFdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19JMkNfRERDMV9IV19TVEFUVVNfX0RDX0kyQ19EREMxX0hXX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfSTJDX0REQzFfSFdfU1RBVFVTX19EQ19JMkNfRERDMV9IV19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19JMkNfRERDMV9IV19TVEFUVVNfX0RDX0kyQ19EREMxX0hXX1VSR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX0kyQ19EREMxX0hXX1NUQVRVU19fRENfSTJDX0REQzFfRURJRF9ERVRFQ1RfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfSTJDX0REQzFfSFdfU1RBVFVTX19EQ19JMkNfRERDMV9FRElEX0RFVEVDVF9OVU1fVkFMSURfVFJJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19JMkNfRERDMV9IV19TVEFUVVNfX0RDX0kyQ19EREMxX0VESURfREVURUNUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0kyQ19EREMxX0hXX1NUQVRVU19fRENfSTJDX0REQzFfSFdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX0kyQ19EREMxX0hXX1NUQVRVU19fRENfSTJDX0REQzFfSFdfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX0kyQ19EREMxX0hXX1NUQVRVU19fRENfSTJDX0REQzFfSFdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0kyQ19EREMxX0hXX1NUQVRVU19fRENfSTJDX0REQzFfSFdfVVJHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDX0kyQ19EREMxX0hXX1NUQVRVU19fRENfSTJDX0REQzFfRURJRF9ERVRFQ1RfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDX0kyQ19EREMxX0hXX1NUQVRVU19fRENfSTJDX0REQzFfRURJRF9ERVRFQ1RfTlVNX1ZBTElEX1RSSUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERDX0kyQ19EREMxX0hXX1NUQVRVU19fRENfSTJDX0REQzFfRURJRF9ERVRFQ1RfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0RDX0kyQ19EREMyX0hXX1NUQVRVUworI2RlZmluZSBEQ19JMkNfRERDMl9IV19TVEFUVVNfX0RDX0kyQ19EREMyX0hXX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX0REQzJfSFdfU1RBVFVTX19EQ19JMkNfRERDMl9IV19ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX0kyQ19EREMyX0hXX1NUQVRVU19fRENfSTJDX0REQzJfSFdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfSTJDX0REQzJfSFdfU1RBVFVTX19EQ19JMkNfRERDMl9IV19VUkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQ19JMkNfRERDMl9IV19TVEFUVVNfX0RDX0kyQ19EREMyX0VESURfREVURUNUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0kyQ19EREMyX0hXX1NUQVRVU19fRENfSTJDX0REQzJfRURJRF9ERVRFQ1RfTlVNX1ZBTElEX1RSSUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfSTJDX0REQzJfSFdfU1RBVFVTX19EQ19JMkNfRERDMl9FRElEX0RFVEVDVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19JMkNfRERDMl9IV19TVEFUVVNfX0RDX0kyQ19EREMyX0hXX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19JMkNfRERDMl9IV19TVEFUVVNfX0RDX0kyQ19EREMyX0hXX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19JMkNfRERDMl9IV19TVEFUVVNfX0RDX0kyQ19EREMyX0hXX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19JMkNfRERDMl9IV19TVEFUVVNfX0RDX0kyQ19EREMyX0hXX1VSR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEQ19JMkNfRERDMl9IV19TVEFUVVNfX0RDX0kyQ19EREMyX0VESURfREVURUNUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ19JMkNfRERDMl9IV19TVEFUVVNfX0RDX0kyQ19EREMyX0VESURfREVURUNUX05VTV9WQUxJRF9UUklFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQ19JMkNfRERDMl9IV19TVEFUVVNfX0RDX0kyQ19EREMyX0VESURfREVURUNUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9EQ19JMkNfRERDM19IV19TVEFUVVMKKyNkZWZpbmUgRENfSTJDX0REQzNfSFdfU1RBVFVTX19EQ19JMkNfRERDM19IV19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0kyQ19EREMzX0hXX1NUQVRVU19fRENfSTJDX0REQzNfSFdfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19JMkNfRERDM19IV19TVEFUVVNfX0RDX0kyQ19EREMzX0hXX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0kyQ19EREMzX0hXX1NUQVRVU19fRENfSTJDX0REQzNfSFdfVVJHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRENfSTJDX0REQzNfSFdfU1RBVFVTX19EQ19JMkNfRERDM19FRElEX0RFVEVDVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19JMkNfRERDM19IV19TVEFUVVNfX0RDX0kyQ19EREMzX0VESURfREVURUNUX05VTV9WQUxJRF9UUklFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0kyQ19EREMzX0hXX1NUQVRVU19fRENfSTJDX0REQzNfRURJRF9ERVRFQ1RfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfSTJDX0REQzNfSFdfU1RBVFVTX19EQ19JMkNfRERDM19IV19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfSTJDX0REQzNfSFdfU1RBVFVTX19EQ19JMkNfRERDM19IV19ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfSTJDX0REQzNfSFdfU1RBVFVTX19EQ19JMkNfRERDM19IV19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfSTJDX0REQzNfSFdfU1RBVFVTX19EQ19JMkNfRERDM19IV19VUkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRENfSTJDX0REQzNfSFdfU1RBVFVTX19EQ19JMkNfRERDM19FRElEX0RFVEVDVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0REQzNfSFdfU1RBVFVTX19EQ19JMkNfRERDM19FRElEX0RFVEVDVF9OVU1fVkFMSURfVFJJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX0REQzNfSFdfU1RBVFVTX19EQ19JMkNfRERDM19FRElEX0RFVEVDVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vRENfSTJDX0REQzRfSFdfU1RBVFVTCisjZGVmaW5lIERDX0kyQ19EREM0X0hXX1NUQVRVU19fRENfSTJDX0REQzRfSFdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19JMkNfRERDNF9IV19TVEFUVVNfX0RDX0kyQ19EREM0X0hXX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfSTJDX0REQzRfSFdfU1RBVFVTX19EQ19JMkNfRERDNF9IV19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19JMkNfRERDNF9IV19TVEFUVVNfX0RDX0kyQ19EREM0X0hXX1VSR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX0kyQ19EREM0X0hXX1NUQVRVU19fRENfSTJDX0REQzRfRURJRF9ERVRFQ1RfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfSTJDX0REQzRfSFdfU1RBVFVTX19EQ19JMkNfRERDNF9FRElEX0RFVEVDVF9OVU1fVkFMSURfVFJJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19JMkNfRERDNF9IV19TVEFUVVNfX0RDX0kyQ19EREM0X0VESURfREVURUNUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0kyQ19EREM0X0hXX1NUQVRVU19fRENfSTJDX0REQzRfSFdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX0kyQ19EREM0X0hXX1NUQVRVU19fRENfSTJDX0REQzRfSFdfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX0kyQ19EREM0X0hXX1NUQVRVU19fRENfSTJDX0REQzRfSFdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0kyQ19EREM0X0hXX1NUQVRVU19fRENfSTJDX0REQzRfSFdfVVJHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDX0kyQ19EREM0X0hXX1NUQVRVU19fRENfSTJDX0REQzRfRURJRF9ERVRFQ1RfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDX0kyQ19EREM0X0hXX1NUQVRVU19fRENfSTJDX0REQzRfRURJRF9ERVRFQ1RfTlVNX1ZBTElEX1RSSUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERDX0kyQ19EREM0X0hXX1NUQVRVU19fRENfSTJDX0REQzRfRURJRF9ERVRFQ1RfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0RDX0kyQ19EREM1X0hXX1NUQVRVUworI2RlZmluZSBEQ19JMkNfRERDNV9IV19TVEFUVVNfX0RDX0kyQ19EREM1X0hXX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX0REQzVfSFdfU1RBVFVTX19EQ19JMkNfRERDNV9IV19ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX0kyQ19EREM1X0hXX1NUQVRVU19fRENfSTJDX0REQzVfSFdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfSTJDX0REQzVfSFdfU1RBVFVTX19EQ19JMkNfRERDNV9IV19VUkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQ19JMkNfRERDNV9IV19TVEFUVVNfX0RDX0kyQ19EREM1X0VESURfREVURUNUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0kyQ19EREM1X0hXX1NUQVRVU19fRENfSTJDX0REQzVfRURJRF9ERVRFQ1RfTlVNX1ZBTElEX1RSSUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfSTJDX0REQzVfSFdfU1RBVFVTX19EQ19JMkNfRERDNV9FRElEX0RFVEVDVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19JMkNfRERDNV9IV19TVEFUVVNfX0RDX0kyQ19EREM1X0hXX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19JMkNfRERDNV9IV19TVEFUVVNfX0RDX0kyQ19EREM1X0hXX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19JMkNfRERDNV9IV19TVEFUVVNfX0RDX0kyQ19EREM1X0hXX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19JMkNfRERDNV9IV19TVEFUVVNfX0RDX0kyQ19EREM1X0hXX1VSR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEQ19JMkNfRERDNV9IV19TVEFUVVNfX0RDX0kyQ19EREM1X0VESURfREVURUNUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ19JMkNfRERDNV9IV19TVEFUVVNfX0RDX0kyQ19EREM1X0VESURfREVURUNUX05VTV9WQUxJRF9UUklFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQ19JMkNfRERDNV9IV19TVEFUVVNfX0RDX0kyQ19EREM1X0VESURfREVURUNUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9EQ19JMkNfRERDMV9TUEVFRAorI2RlZmluZSBEQ19JMkNfRERDMV9TUEVFRF9fRENfSTJDX0REQzFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX0REQzFfU1BFRURfX0RDX0kyQ19EREMxX0RJU0FCTEVfRklMVEVSX0RVUklOR19TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0kyQ19EREMxX1NQRUVEX19EQ19JMkNfRERDMV9TVEFSVF9TVE9QX1RJTUlOR19DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19JMkNfRERDMV9TUEVFRF9fRENfSTJDX0REQzFfUFJFU0NBTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0kyQ19EREMxX1NQRUVEX19EQ19JMkNfRERDMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX0kyQ19EREMxX1NQRUVEX19EQ19JMkNfRERDMV9ESVNBQkxFX0ZJTFRFUl9EVVJJTkdfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX0kyQ19EREMxX1NQRUVEX19EQ19JMkNfRERDMV9TVEFSVF9TVE9QX1RJTUlOR19DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX0kyQ19EREMxX1NQRUVEX19EQ19JMkNfRERDMV9QUkVTQ0FMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDX0kyQ19EREMxX1NFVFVQCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9EQVRBX0RSSVZFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19JMkNfRERDMV9TRVRVUF9fRENfSTJDX0REQzFfREFUQV9EUklWRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfSTJDX0REQzFfU0VUVVBfX0RDX0kyQ19EREMxX1NFTkRfUkVTRVRfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9FRElEX0RFVEVDVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19JMkNfRERDMV9TRVRVUF9fRENfSTJDX0REQzFfRURJRF9ERVRFQ1RfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfSTJDX0REQzFfU0VUVVBfX0RDX0kyQ19EREMxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9DTEtfRFJJVkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19JMkNfRERDMV9TRVRVUF9fRENfSTJDX0REQzFfSU5UUkFfQllURV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfSTJDX0REQzFfU0VUVVBfX0RDX0kyQ19EREMxX0lOVFJBX1RSQU5TQUNUSU9OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19JMkNfRERDMV9TRVRVUF9fRENfSTJDX0REQzFfVElNRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9EQVRBX0RSSVZFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9EQVRBX0RSSVZFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9TRU5EX1JFU0VUX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9FRElEX0RFVEVDVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9FRElEX0RFVEVDVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9DTEtfRFJJVkVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9JTlRSQV9CWVRFX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9JTlRSQV9UUkFOU0FDVElPTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERDX0kyQ19EREMxX1NFVFVQX19EQ19JMkNfRERDMV9USU1FX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RDX0kyQ19EREMyX1NQRUVECisjZGVmaW5lIERDX0kyQ19EREMyX1NQRUVEX19EQ19JMkNfRERDMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19JMkNfRERDMl9TUEVFRF9fRENfSTJDX0REQzJfRElTQUJMRV9GSUxURVJfRFVSSU5HX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfSTJDX0REQzJfU1BFRURfX0RDX0kyQ19EREMyX1NUQVJUX1NUT1BfVElNSU5HX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0kyQ19EREMyX1NQRUVEX19EQ19JMkNfRERDMl9QUkVTQ0FMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfSTJDX0REQzJfU1BFRURfX0RDX0kyQ19EREMyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfSTJDX0REQzJfU1BFRURfX0RDX0kyQ19EREMyX0RJU0FCTEVfRklMVEVSX0RVUklOR19TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfSTJDX0REQzJfU1BFRURfX0RDX0kyQ19EREMyX1NUQVJUX1NUT1BfVElNSU5HX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfSTJDX0REQzJfU1BFRURfX0RDX0kyQ19EREMyX1BSRVNDQUxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENfSTJDX0REQzJfU0VUVVAKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0RBVEFfRFJJVkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0kyQ19EREMyX1NFVFVQX19EQ19JMkNfRERDMl9EQVRBX0RSSVZFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19JMkNfRERDMl9TRVRVUF9fRENfSTJDX0REQzJfU0VORF9SRVNFVF9MRU5HVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0VESURfREVURUNUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0kyQ19EREMyX1NFVFVQX19EQ19JMkNfRERDMl9FRElEX0RFVEVDVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19JMkNfRERDMl9TRVRVUF9fRENfSTJDX0REQzJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0NMS19EUklWRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX0kyQ19EREMyX1NFVFVQX19EQ19JMkNfRERDMl9JTlRSQV9CWVRFX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19JMkNfRERDMl9TRVRVUF9fRENfSTJDX0REQzJfSU5UUkFfVFJBTlNBQ1RJT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0kyQ19EREMyX1NFVFVQX19EQ19JMkNfRERDMl9USU1FX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0RBVEFfRFJJVkVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0RBVEFfRFJJVkVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX1NFTkRfUkVTRVRfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0VESURfREVURUNUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0VESURfREVURUNUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0NMS19EUklWRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0lOVFJBX0JZVEVfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX0lOVFJBX1RSQU5TQUNUSU9OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRENfSTJDX0REQzJfU0VUVVBfX0RDX0kyQ19EREMyX1RJTUVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRENfSTJDX0REQzNfU1BFRUQKKyNkZWZpbmUgRENfSTJDX0REQzNfU1BFRURfX0RDX0kyQ19EREMzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0kyQ19EREMzX1NQRUVEX19EQ19JMkNfRERDM19ESVNBQkxFX0ZJTFRFUl9EVVJJTkdfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19JMkNfRERDM19TUEVFRF9fRENfSTJDX0REQzNfU1RBUlRfU1RPUF9USU1JTkdfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfSTJDX0REQzNfU1BFRURfX0RDX0kyQ19EREMzX1BSRVNDQUxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19JMkNfRERDM19TUEVFRF9fRENfSTJDX0REQzNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19JMkNfRERDM19TUEVFRF9fRENfSTJDX0REQzNfRElTQUJMRV9GSUxURVJfRFVSSU5HX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19JMkNfRERDM19TUEVFRF9fRENfSTJDX0REQzNfU1RBUlRfU1RPUF9USU1JTkdfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEQ19JMkNfRERDM19TUEVFRF9fRENfSTJDX0REQzNfUFJFU0NBTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19JMkNfRERDM19TRVRVUAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfREFUQV9EUklWRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX0REQzNfU0VUVVBfX0RDX0kyQ19EREMzX0RBVEFfRFJJVkVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX0kyQ19EREMzX1NFVFVQX19EQ19JMkNfRERDM19TRU5EX1JFU0VUX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfRURJRF9ERVRFQ1RfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfSTJDX0REQzNfU0VUVVBfX0RDX0kyQ19EREMzX0VESURfREVURUNUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX0kyQ19EREMzX1NFVFVQX19EQ19JMkNfRERDM19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfQ0xLX0RSSVZFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfSTJDX0REQzNfU0VUVVBfX0RDX0kyQ19EREMzX0lOVFJBX0JZVEVfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0kyQ19EREMzX1NFVFVQX19EQ19JMkNfRERDM19JTlRSQV9UUkFOU0FDVElPTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfSTJDX0REQzNfU0VUVVBfX0RDX0kyQ19EREMzX1RJTUVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfREFUQV9EUklWRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfREFUQV9EUklWRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfU0VORF9SRVNFVF9MRU5HVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfRURJRF9ERVRFQ1RfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfRURJRF9ERVRFQ1RfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfQ0xLX0RSSVZFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfSU5UUkFfQllURV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfSU5UUkFfVFJBTlNBQ1RJT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEQ19JMkNfRERDM19TRVRVUF9fRENfSTJDX0REQzNfVElNRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EQ19JMkNfRERDNF9TUEVFRAorI2RlZmluZSBEQ19JMkNfRERDNF9TUEVFRF9fRENfSTJDX0REQzRfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX0REQzRfU1BFRURfX0RDX0kyQ19EREM0X0RJU0FCTEVfRklMVEVSX0RVUklOR19TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0kyQ19EREM0X1NQRUVEX19EQ19JMkNfRERDNF9TVEFSVF9TVE9QX1RJTUlOR19DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19JMkNfRERDNF9TUEVFRF9fRENfSTJDX0REQzRfUFJFU0NBTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0kyQ19EREM0X1NQRUVEX19EQ19JMkNfRERDNF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX0kyQ19EREM0X1NQRUVEX19EQ19JMkNfRERDNF9ESVNBQkxFX0ZJTFRFUl9EVVJJTkdfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX0kyQ19EREM0X1NQRUVEX19EQ19JMkNfRERDNF9TVEFSVF9TVE9QX1RJTUlOR19DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX0kyQ19EREM0X1NQRUVEX19EQ19JMkNfRERDNF9QUkVTQ0FMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDX0kyQ19EREM0X1NFVFVQCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9EQVRBX0RSSVZFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19JMkNfRERDNF9TRVRVUF9fRENfSTJDX0REQzRfREFUQV9EUklWRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfSTJDX0REQzRfU0VUVVBfX0RDX0kyQ19EREM0X1NFTkRfUkVTRVRfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9FRElEX0RFVEVDVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19JMkNfRERDNF9TRVRVUF9fRENfSTJDX0REQzRfRURJRF9ERVRFQ1RfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfSTJDX0REQzRfU0VUVVBfX0RDX0kyQ19EREM0X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9DTEtfRFJJVkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19JMkNfRERDNF9TRVRVUF9fRENfSTJDX0REQzRfSU5UUkFfQllURV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfSTJDX0REQzRfU0VUVVBfX0RDX0kyQ19EREM0X0lOVFJBX1RSQU5TQUNUSU9OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19JMkNfRERDNF9TRVRVUF9fRENfSTJDX0REQzRfVElNRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9EQVRBX0RSSVZFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9EQVRBX0RSSVZFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9TRU5EX1JFU0VUX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9FRElEX0RFVEVDVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9FRElEX0RFVEVDVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9DTEtfRFJJVkVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9JTlRSQV9CWVRFX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9JTlRSQV9UUkFOU0FDVElPTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERDX0kyQ19EREM0X1NFVFVQX19EQ19JMkNfRERDNF9USU1FX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RDX0kyQ19EREM1X1NQRUVECisjZGVmaW5lIERDX0kyQ19EREM1X1NQRUVEX19EQ19JMkNfRERDNV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19JMkNfRERDNV9TUEVFRF9fRENfSTJDX0REQzVfRElTQUJMRV9GSUxURVJfRFVSSU5HX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfSTJDX0REQzVfU1BFRURfX0RDX0kyQ19EREM1X1NUQVJUX1NUT1BfVElNSU5HX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0kyQ19EREM1X1NQRUVEX19EQ19JMkNfRERDNV9QUkVTQ0FMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfSTJDX0REQzVfU1BFRURfX0RDX0kyQ19EREM1X1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfSTJDX0REQzVfU1BFRURfX0RDX0kyQ19EREM1X0RJU0FCTEVfRklMVEVSX0RVUklOR19TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfSTJDX0REQzVfU1BFRURfX0RDX0kyQ19EREM1X1NUQVJUX1NUT1BfVElNSU5HX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfSTJDX0REQzVfU1BFRURfX0RDX0kyQ19EREM1X1BSRVNDQUxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENfSTJDX0REQzVfU0VUVVAKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0RBVEFfRFJJVkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0kyQ19EREM1X1NFVFVQX19EQ19JMkNfRERDNV9EQVRBX0RSSVZFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19JMkNfRERDNV9TRVRVUF9fRENfSTJDX0REQzVfU0VORF9SRVNFVF9MRU5HVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0VESURfREVURUNUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0kyQ19EREM1X1NFVFVQX19EQ19JMkNfRERDNV9FRElEX0RFVEVDVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19JMkNfRERDNV9TRVRVUF9fRENfSTJDX0REQzVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0NMS19EUklWRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX0kyQ19EREM1X1NFVFVQX19EQ19JMkNfRERDNV9JTlRSQV9CWVRFX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19JMkNfRERDNV9TRVRVUF9fRENfSTJDX0REQzVfSU5UUkFfVFJBTlNBQ1RJT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0kyQ19EREM1X1NFVFVQX19EQ19JMkNfRERDNV9USU1FX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0RBVEFfRFJJVkVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0RBVEFfRFJJVkVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X1NFTkRfUkVTRVRfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0VESURfREVURUNUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0VESURfREVURUNUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0NMS19EUklWRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0lOVFJBX0JZVEVfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X0lOVFJBX1RSQU5TQUNUSU9OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRENfSTJDX0REQzVfU0VUVVBfX0RDX0kyQ19EREM1X1RJTUVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRENfSTJDX1RSQU5TQUNUSU9OMAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04wX19EQ19JMkNfUlcwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMF9fRENfSTJDX1NUT1BfT05fTkFDSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjBfX0RDX0kyQ19TVEFSVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04wX19EQ19JMkNfU1RPUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMF9fRENfSTJDX0NPVU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04wX19EQ19JMkNfUlcwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04wX19EQ19JMkNfU1RPUF9PTl9OQUNLMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04wX19EQ19JMkNfU1RBUlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04wX19EQ19JMkNfU1RPUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04wX19EQ19JMkNfQ09VTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9EQ19JMkNfVFJBTlNBQ1RJT04xCisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjFfX0RDX0kyQ19SVzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04xX19EQ19JMkNfU1RPUF9PTl9OQUNLMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMV9fRENfSTJDX1NUQVJUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjFfX0RDX0kyQ19TVE9QMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04xX19EQ19JMkNfQ09VTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjFfX0RDX0kyQ19SVzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjFfX0RDX0kyQ19TVE9QX09OX05BQ0sxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjFfX0RDX0kyQ19TVEFSVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjFfX0RDX0kyQ19TVE9QMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjFfX0RDX0kyQ19DT1VOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RDX0kyQ19UUkFOU0FDVElPTjIKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMl9fRENfSTJDX1JXMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjJfX0RDX0kyQ19TVE9QX09OX05BQ0syX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04yX19EQ19JMkNfU1RBUlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMl9fRENfSTJDX1NUT1AyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjJfX0RDX0kyQ19DT1VOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMl9fRENfSTJDX1JXMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMl9fRENfSTJDX1NUT1BfT05fTkFDSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMl9fRENfSTJDX1NUQVJUMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMl9fRENfSTJDX1NUT1AyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OMl9fRENfSTJDX0NPVU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vRENfSTJDX1RSQU5TQUNUSU9OMworI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04zX19EQ19JMkNfUlczX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OM19fRENfSTJDX1NUT1BfT05fTkFDSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0kyQ19UUkFOU0FDVElPTjNfX0RDX0kyQ19TVEFSVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04zX19EQ19JMkNfU1RPUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfSTJDX1RSQU5TQUNUSU9OM19fRENfSTJDX0NPVU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04zX19EQ19JMkNfUlczX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04zX19EQ19JMkNfU1RPUF9PTl9OQUNLM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04zX19EQ19JMkNfU1RBUlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04zX19EQ19JMkNfU1RPUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19JMkNfVFJBTlNBQ1RJT04zX19EQ19JMkNfQ09VTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9EQ19JMkNfREFUQQorI2RlZmluZSBEQ19JMkNfREFUQV9fRENfSTJDX0RBVEFfUldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX0RBVEFfX0RDX0kyQ19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0kyQ19EQVRBX19EQ19JMkNfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfSTJDX0RBVEFfX0RDX0kyQ19JTkRFWF9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19JMkNfREFUQV9fRENfSTJDX0RBVEFfUldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19JMkNfREFUQV9fRENfSTJDX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQ19JMkNfREFUQV9fRENfSTJDX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorI2RlZmluZSBEQ19JMkNfREFUQV9fRENfSTJDX0lOREVYX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19JMkNfRURJRF9ERVRFQ1RfQ1RSTAorI2RlZmluZSBEQ19JMkNfRURJRF9ERVRFQ1RfQ1RSTF9fRENfSTJDX0VESURfREVURUNUX1dBSVRfVElNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfSTJDX0VESURfREVURUNUX0NUUkxfX0RDX0kyQ19FRElEX0RFVEVDVF9OVU1fVFJJRVNfVU5USUxfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19JMkNfRURJRF9ERVRFQ1RfQ1RSTF9fRENfSTJDX0VESURfREVURUNUX1NFTkRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0kyQ19FRElEX0RFVEVDVF9DVFJMX19EQ19JMkNfRURJRF9ERVRFQ1RfV0FJVF9USU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDX0kyQ19FRElEX0RFVEVDVF9DVFJMX19EQ19JMkNfRURJRF9ERVRFQ1RfTlVNX1RSSUVTX1VOVElMX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERDX0kyQ19FRElEX0RFVEVDVF9DVFJMX19EQ19JMkNfRURJRF9ERVRFQ1RfU0VORF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUCisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDMV9SRUFEX1JFUVVFU1RfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQzFfUkVBRF9SRVFVRVNUX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMxX1JFQURfUkVRVUVTVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDMV9SRUFEX1JFUVVFU1RfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQzJfUkVBRF9SRVFVRVNUX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMyX1JFQURfUkVRVUVTVF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDMl9SRUFEX1JFUVVFU1RfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQzJfUkVBRF9SRVFVRVNUX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMzX1JFQURfUkVRVUVTVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDM19SRUFEX1JFUVVFU1RfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQzNfUkVBRF9SRVFVRVNUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMzX1JFQURfUkVRVUVTVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDNF9SRUFEX1JFUVVFU1RfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQzRfUkVBRF9SRVFVRVNUX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM0X1JFQURfUkVRVUVTVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDNF9SRUFEX1JFUVVFU1RfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQzVfUkVBRF9SRVFVRVNUX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDNV9SRUFEX1JFUVVFU1RfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM1X1JFQURfUkVRVUVTVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQzVfUkVBRF9SRVFVRVNUX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDNl9SRUFEX1JFUVVFU1RfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM2X1JFQURfUkVRVUVTVF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQzZfUkVBRF9SRVFVRVNUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDNl9SRUFEX1JFUVVFU1RfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19ERENWR0FfUkVBRF9SRVFVRVNUX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQ1ZHQV9SRUFEX1JFUVVFU1RfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDVkdBX1JFQURfUkVRVUVTVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19ERENWR0FfUkVBRF9SRVFVRVNUX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQ19JMkNfUkVBRF9SRVFVRVNUX0lOVEVSUlVQVF9fRENfSTJDX0REQ19SRUFEX1JFUVVFU1RfQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX0kyQ19SRUFEX1JFUVVFU1RfSU5URVJSVVBUX19EQ19JMkNfRERDX1JFQURfUkVRVUVTVF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMxX1JFQURfUkVRVUVTVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMxX1JFQURfUkVRVUVTVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMxX1JFQURfUkVRVUVTVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMxX1JFQURfUkVRVUVTVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMyX1JFQURfUkVRVUVTVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMyX1JFQURfUkVRVUVTVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMyX1JFQURfUkVRVUVTVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMyX1JFQURfUkVRVUVTVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMzX1JFQURfUkVRVUVTVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMzX1JFQURfUkVRVUVTVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMzX1JFQURfUkVRVUVTVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREMzX1JFQURfUkVRVUVTVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM0X1JFQURfUkVRVUVTVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM0X1JFQURfUkVRVUVTVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM0X1JFQURfUkVRVUVTVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM0X1JFQURfUkVRVUVTVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM1X1JFQURfUkVRVUVTVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM1X1JFQURfUkVRVUVTVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM1X1JFQURfUkVRVUVTVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM1X1JFQURfUkVRVUVTVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM2X1JFQURfUkVRVUVTVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM2X1JFQURfUkVRVUVTVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM2X1JFQURfUkVRVUVTVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19EREM2X1JFQURfUkVRVUVTVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19ERENWR0FfUkVBRF9SRVFVRVNUX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19ERENWR0FfUkVBRF9SRVFVRVNUX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19ERENWR0FfUkVBRF9SRVFVRVNUX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19ERENWR0FfUkVBRF9SRVFVRVNUX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19ERENfUkVBRF9SRVFVRVNUX0FDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfSTJDX1JFQURfUkVRVUVTVF9JTlRFUlJVUFRfX0RDX0kyQ19ERENfUkVBRF9SRVFVRVNUX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKworCisvL0RJR19TT0ZUX1JFU0VUCisjZGVmaW5lIERJR19TT0ZUX1JFU0VUX19ESUdBX0ZFX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUdfU09GVF9SRVNFVF9fRElHQV9CRV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0JfRkVfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJR19TT0ZUX1JFU0VUX19ESUdCX0JFX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUdfU09GVF9SRVNFVF9fRElHQ19GRV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0NfQkVfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJR19TT0ZUX1JFU0VUX19ESUdEX0ZFX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUdfU09GVF9SRVNFVF9fRElHRF9CRV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0VfRkVfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUdfU09GVF9SRVNFVF9fRElHRV9CRV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJR19TT0ZUX1JFU0VUX19ESUdGX0ZFX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0ZfQkVfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBESUdfU09GVF9SRVNFVF9fRElHR19GRV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJR19TT0ZUX1JFU0VUX19ESUdHX0JFX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0FfRkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0FfQkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0JfRkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0JfQkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0NfRkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0NfQkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0RfRkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0RfQkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0VfRkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0VfQkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0ZfRkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0ZfQkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0dfRkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHX1NPRlRfUkVTRVRfX0RJR0dfQkVfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vRElPX01FTV9QV1JfU1RBVFVTMQorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19BRk1UMF9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElPX01FTV9QV1JfU1RBVFVTMV9fQUZNVDFfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJT19NRU1fUFdSX1NUQVRVUzFfX0FGTVQyX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19BRk1UM19NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElPX01FTV9QV1JfU1RBVFVTMV9fQUZNVDRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJT19NRU1fUFdSX1NUQVRVUzFfX0FGTVQ1X01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19ETUUwX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJT19NRU1fUFdSX1NUQVRVUzFfX0RNRTFfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElPX01FTV9QV1JfU1RBVFVTMV9fRE1FMl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19ETUUzX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERJT19NRU1fUFdSX1NUQVRVUzFfX0RNRTRfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElPX01FTV9QV1JfU1RBVFVTMV9fRE1FNV9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19BRk1UMF9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19BRk1UMV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19BRk1UMl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19BRk1UM19NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19BRk1UNF9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19BRk1UNV9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19ETUUwX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19ETUUxX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19ETUUyX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19ETUUzX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19ETUU0X01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBESU9fTUVNX1BXUl9TVEFUVVMxX19ETUU1X01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorLy9ESU9fQ0xLX0NOVEwyCisjZGVmaW5lIERJT19DTEtfQ05UTDJfX0RJT19URVNUX0NMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1UQV9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElPX0NMS19DTlRMMl9fU09DQ0xLX0dfQUZNVEJfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJT19DTEtfQ05UTDJfX1NPQ0NMS19HX0FGTVRDX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1URF9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElPX0NMS19DTlRMMl9fU09DQ0xLX0dfQUZNVEVfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJT19DTEtfQ05UTDJfX1NPQ0NMS19HX0FGTVRGX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1UR19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElPX0NMS19DTlRMMl9fU1lNQ0xLQV9GRV9HX0FGTVRfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TWU1DTEtCX0ZFX0dfQUZNVF9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJT19DTEtfQ05UTDJfX1NZTUNMS0NfRkVfR19BRk1UX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElPX0NMS19DTlRMMl9fU1lNQ0xLRF9GRV9HX0FGTVRfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TWU1DTEtFX0ZFX0dfQUZNVF9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERJT19DTEtfQ05UTDJfX1NZTUNMS0ZfRkVfR19BRk1UX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElPX0NMS19DTlRMMl9fU1lNQ0xLR19GRV9HX0FGTVRfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESU9fQ0xLX0NOVEwyX19ESU9fVEVTVF9DTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1UQV9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1UQl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1UQ19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1URF9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1URV9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1URl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TT0NDTEtfR19BRk1UR19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TWU1DTEtBX0ZFX0dfQUZNVF9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TWU1DTEtCX0ZFX0dfQUZNVF9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TWU1DTEtDX0ZFX0dfQUZNVF9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TWU1DTEtEX0ZFX0dfQUZNVF9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TWU1DTEtFX0ZFX0dfQUZNVF9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TWU1DTEtGX0ZFX0dfQUZNVF9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESU9fQ0xLX0NOVEwyX19TWU1DTEtHX0ZFX0dfQUZNVF9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9ESU9fQ0xLX0NOVEwzCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0FfRkVfR19UTURTX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESU9fQ0xLX0NOVEwzX19TWU1DTEtCX0ZFX0dfVE1EU19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElPX0NMS19DTlRMM19fU1lNQ0xLQ19GRV9HX1RNRFNfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0RfRkVfR19UTURTX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESU9fQ0xLX0NOVEwzX19TWU1DTEtFX0ZFX0dfVE1EU19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElPX0NMS19DTlRMM19fU1lNQ0xLRl9GRV9HX1RNRFNfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0dfRkVfR19UTURTX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESU9fQ0xLX0NOVEwzX19TWU1DTEtBX0dfVE1EU19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElPX0NMS19DTlRMM19fU1lNQ0xLQl9HX1RNRFNfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0NfR19UTURTX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESU9fQ0xLX0NOVEwzX19TWU1DTEtEX0dfVE1EU19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElPX0NMS19DTlRMM19fU1lNQ0xLRV9HX1RNRFNfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0ZfR19UTURTX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESU9fQ0xLX0NOVEwzX19TWU1DTEtHX0dfVE1EU19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0FfRkVfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0JfRkVfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0NfRkVfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0RfRkVfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0VfRkVfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0ZfRkVfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0dfRkVfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0FfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0JfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0NfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0RfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0VfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0ZfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJT19DTEtfQ05UTDNfX1NZTUNMS0dfR19UTURTX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0RJT19IRE1JX1JYU1RBVFVTX1RJTUVSX0NPTlRST0wKKyNkZWZpbmUgRElPX0hETUlfUlhTVEFUVVNfVElNRVJfQ09OVFJPTF9fRElPX0hETUlfUlhTVEFUVVNfVElNRVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJT19IRE1JX1JYU1RBVFVTX1RJTUVSX0NPTlRST0xfX0RJT19IRE1JX1JYU1RBVFVTX1RJTUVSX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESU9fSERNSV9SWFNUQVRVU19USU1FUl9DT05UUk9MX19ESU9fSERNSV9SWFNUQVRVU19USU1FUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElPX0hETUlfUlhTVEFUVVNfVElNRVJfQ09OVFJPTF9fRElPX0hETUlfUlhTVEFUVVNfVElNRVJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJT19IRE1JX1JYU1RBVFVTX1RJTUVSX0NPTlRST0xfX0RJT19IRE1JX1JYU1RBVFVTX1RJTUVSX0lOVEVSVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElPX0hETUlfUlhTVEFUVVNfVElNRVJfQ09OVFJPTF9fRElPX0hETUlfUlhTVEFUVVNfVElNRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElPX0hETUlfUlhTVEFUVVNfVElNRVJfQ09OVFJPTF9fRElPX0hETUlfUlhTVEFUVVNfVElNRVJfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElPX0hETUlfUlhTVEFUVVNfVElNRVJfQ09OVFJPTF9fRElPX0hETUlfUlhTVEFUVVNfVElNRVJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElPX0hETUlfUlhTVEFUVVNfVElNRVJfQ09OVFJPTF9fRElPX0hETUlfUlhTVEFUVVNfVElNRVJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElPX0hETUlfUlhTVEFUVVNfVElNRVJfQ09OVFJPTF9fRElPX0hETUlfUlhTVEFUVVNfVElNRVJfSU5URVJWQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGMDAwMEwKKy8vRElPX1BTUF9JTlRFUlJVUFRfU1RBVFVTCisjZGVmaW5lIERJT19QU1BfSU5URVJSVVBUX1NUQVRVU19fRElPX1BTUF9JTlRFUlJVUFRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESU9fUFNQX0lOVEVSUlVQVF9TVEFUVVNfX0RJT19QU1BfSU5URVJSVVBUX01FU1NBR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElPX1BTUF9JTlRFUlJVUFRfU1RBVFVTX19ESU9fUFNQX0lOVEVSUlVQVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElPX1BTUF9JTlRFUlJVUFRfU1RBVFVTX19ESU9fUFNQX0lOVEVSUlVQVF9NRVNTQUdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vRElPX1BTUF9JTlRFUlJVUFRfQ0xFQVIKKyNkZWZpbmUgRElPX1BTUF9JTlRFUlJVUFRfQ0xFQVJfX0RJT19QU1BfSU5URVJSVVBUX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJT19QU1BfSU5URVJSVVBUX0NMRUFSX19ESU9fUFNQX0lOVEVSUlVQVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RJT19HRU5FUklDX0lOVEVSUlVQVF9NRVNTQUdFCisjZGVmaW5lIERJT19HRU5FUklDX0lOVEVSUlVQVF9NRVNTQUdFX19ESU9fR0VORVJJQ19JTlRFUlJVUFRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESU9fR0VORVJJQ19JTlRFUlJVUFRfTUVTU0FHRV9fRElPX0dFTkVSSUNfSU5URVJSVVBUX01FU1NBR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElPX0dFTkVSSUNfSU5URVJSVVBUX01FU1NBR0VfX0RJT19HRU5FUklDX0lOVEVSUlVQVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElPX0dFTkVSSUNfSU5URVJSVVBUX01FU1NBR0VfX0RJT19HRU5FUklDX0lOVEVSUlVQVF9NRVNTQUdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vRElPX0dFTkVSSUNfSU5URVJSVVBUX0NMRUFSCisjZGVmaW5lIERJT19HRU5FUklDX0lOVEVSUlVQVF9DTEVBUl9fRElPX0dFTkVSSUNfSU5URVJSVVBUX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESU9fR0VORVJJQ19JTlRFUlJVUFRfQ0xFQVJfX0RJT19HRU5FUklDX0lOVEVSUlVQVF9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19ocGQwX2Rpc3BkZWMKKy8vSFBEMF9EQ19IUERfSU5UX1NUQVRVUworI2RlZmluZSBIUEQwX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1NFTlNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEhQRDBfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9TRU5TRV9ERUxBWUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIUEQwX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfUlhfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1RPR0dMRV9GSUxUX0NPTl9USU1FUl9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhQRDBfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9UT0dHTEVfRklMVF9ESVNDT05fVElNRVJfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1NFTlNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1NFTlNFX0RFTEFZRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1JYX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1RPR0dMRV9GSUxUX0NPTl9USU1FUl9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1RPR0dMRV9GSUxUX0RJU0NPTl9USU1FUl9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vSFBEMF9EQ19IUERfSU5UX0NPTlRST0wKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhQRDBfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfSU5UX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIUEQwX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhQRDBfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfUlhfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFBEMF9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIUEQwX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIUEQwX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIUEQwX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIUEQwX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBIUEQwX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9IUEQwX0RDX0hQRF9DT05UUk9MCisjZGVmaW5lIEhQRDBfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9DT05ORUNUSU9OX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUEQwX0RDX0hQRF9DT05UUk9MX19EQ19IUERfUlhfSU5UX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhQRDBfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFBEMF9EQ19IUERfQ09OVFJPTF9fRENfSFBEX0NPTk5FQ1RJT05fVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgSFBEMF9EQ19IUERfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKyNkZWZpbmUgSFBEMF9EQ19IUERfQ09OVFJPTF9fRENfSFBEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vSFBEMF9EQ19IUERfRkFTVF9UUkFJTl9DTlRMCisjZGVmaW5lIEhQRDBfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfQVVYX1RYX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUEQwX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0ZBU1RfVFJBSU5fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFBEMF9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9BVVhfVFhfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIUEQwX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0ZBU1RfVFJBSU5fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhQRDBfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfQVVYX1RYX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEhQRDBfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfRkFTVF9UUkFJTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIEhQRDBfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfQVVYX1RYX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEhQRDBfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfRkFTVF9UUkFJTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0hQRDBfRENfSFBEX1RPR0dMRV9GSUxUX0NOVEwKKyNkZWZpbmUgSFBEMF9EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTF9fRENfSFBEX0NPTk5FQ1RfSU5UX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhQRDBfRENfSFBEX1RPR0dMRV9GSUxUX0NOVExfX0RDX0hQRF9ESVNDT05ORUNUX0lOVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFBEMF9EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTF9fRENfSFBEX0NPTk5FQ1RfSU5UX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgSFBEMF9EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTF9fRENfSFBEX0RJU0NPTk5FQ1RfSU5UX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkYwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9faHBkMV9kaXNwZGVjCisvL0hQRDFfRENfSFBEX0lOVF9TVEFUVVMKKyNkZWZpbmUgSFBEMV9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9TRU5TRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIUEQxX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfU0VOU0VfREVMQVlFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFBEMV9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1JYX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9UT0dHTEVfRklMVF9DT05fVElNRVJfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIUEQxX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfVE9HR0xFX0ZJTFRfRElTQ09OX1RJTUVSX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9TRU5TRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9TRU5TRV9ERUxBWUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9SWF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9UT0dHTEVfRklMVF9DT05fVElNRVJfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9UT0dHTEVfRklMVF9ESVNDT05fVElNRVJfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0hQRDFfRENfSFBEX0lOVF9DT05UUk9MCisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUEQxX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFBEMV9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIUEQxX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhQRDFfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfUlhfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFBEMV9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFBEMV9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFBEMV9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgSFBEMV9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgSFBEMV9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vSFBEMV9EQ19IUERfQ09OVFJPTAorI2RlZmluZSBIUEQxX0RDX0hQRF9DT05UUk9MX19EQ19IUERfQ09OTkVDVElPTl9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFBEMV9EQ19IUERfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIUEQxX0RDX0hQRF9DT05UUk9MX19EQ19IUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhQRDFfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9DT05ORUNUSU9OX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIEhQRDFfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisjZGVmaW5lIEhQRDFfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0hQRDFfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTAorI2RlZmluZSBIUEQxX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0FVWF9UWF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFBEMV9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9GQVNUX1RSQUlOX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhQRDFfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfQVVYX1RYX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFBEMV9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9GQVNUX1RSQUlOX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIUEQxX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0FVWF9UWF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBIUEQxX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0ZBU1RfVFJBSU5fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBIUEQxX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0FVWF9UWF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBIUEQxX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0ZBU1RfVFJBSU5fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9IUEQxX0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMCisjZGVmaW5lIEhQRDFfRENfSFBEX1RPR0dMRV9GSUxUX0NOVExfX0RDX0hQRF9DT05ORUNUX0lOVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUEQxX0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMX19EQ19IUERfRElTQ09OTkVDVF9JTlRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhQRDFfRENfSFBEX1RPR0dMRV9GSUxUX0NOVExfX0RDX0hQRF9DT05ORUNUX0lOVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEhQRDFfRENfSFBEX1RPR0dMRV9GSUxUX0NOVExfX0RDX0hQRF9ESVNDT05ORUNUX0lOVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2hwZDJfZGlzcGRlYworLy9IUEQyX0RDX0hQRF9JTlRfU1RBVFVTCisjZGVmaW5lIEhQRDJfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfU0VOU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSFBEMl9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1NFTlNFX0RFTEFZRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEhQRDJfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9SWF9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfVE9HR0xFX0ZJTFRfQ09OX1RJTUVSX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFBEMl9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1RPR0dMRV9GSUxUX0RJU0NPTl9USU1FUl9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfU0VOU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfU0VOU0VfREVMQVlFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfUlhfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfVE9HR0xFX0ZJTFRfQ09OX1RJTUVSX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfVE9HR0xFX0ZJTFRfRElTQ09OX1RJTUVSX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9IUEQyX0RDX0hQRF9JTlRfQ09OVFJPTAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFBEMl9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhQRDJfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFBEMl9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIUEQyX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhQRDJfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhQRDJfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfSU5UX1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhQRDJfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEhQRDJfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfUlhfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIEhQRDJfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfUlhfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0hQRDJfRENfSFBEX0NPTlRST0wKKyNkZWZpbmUgSFBEMl9EQ19IUERfQ09OVFJPTF9fRENfSFBEX0NPTk5FQ1RJT05fVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhQRDJfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSFBEMl9EQ19IUERfQ09OVFJPTF9fRENfSFBEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIUEQyX0RDX0hQRF9DT05UUk9MX19EQ19IUERfQ09OTkVDVElPTl9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBIUEQyX0RDX0hQRF9DT05UUk9MX19EQ19IUERfUlhfSU5UX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorI2RlZmluZSBIUEQyX0RDX0hQRF9DT05UUk9MX19EQ19IUERfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9IUEQyX0RDX0hQRF9GQVNUX1RSQUlOX0NOVEwKKyNkZWZpbmUgSFBEMl9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9BVVhfVFhfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhQRDJfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfRkFTVF9UUkFJTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIUEQyX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0FVWF9UWF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhQRDJfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfRkFTVF9UUkFJTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFBEMl9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9BVVhfVFhfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgSFBEMl9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9GQVNUX1RSQUlOX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgSFBEMl9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9BVVhfVFhfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgSFBEMl9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9GQVNUX1RSQUlOX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vSFBEMl9EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTAorI2RlZmluZSBIUEQyX0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMX19EQ19IUERfQ09OTkVDVF9JTlRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFBEMl9EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTF9fRENfSFBEX0RJU0NPTk5FQ1RfSU5UX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBIUEQyX0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMX19EQ19IUERfQ09OTkVDVF9JTlRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBIUEQyX0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMX19EQ19IUERfRElTQ09OTkVDVF9JTlRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRjAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19ocGQzX2Rpc3BkZWMKKy8vSFBEM19EQ19IUERfSU5UX1NUQVRVUworI2RlZmluZSBIUEQzX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1NFTlNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEhQRDNfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9TRU5TRV9ERUxBWUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBIUEQzX0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfUlhfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1RPR0dMRV9GSUxUX0NPTl9USU1FUl9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhQRDNfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9UT0dHTEVfRklMVF9ESVNDT05fVElNRVJfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1NFTlNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1NFTlNFX0RFTEFZRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1JYX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1RPR0dMRV9GSUxUX0NPTl9USU1FUl9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1RPR0dMRV9GSUxUX0RJU0NPTl9USU1FUl9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vSFBEM19EQ19IUERfSU5UX0NPTlRST0wKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhQRDNfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfSU5UX1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBIUEQzX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhQRDNfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfUlhfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFBEM19EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIUEQzX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBIUEQzX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9QT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBIUEQzX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBIUEQzX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBIUEQzX0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9IUEQzX0RDX0hQRF9DT05UUk9MCisjZGVmaW5lIEhQRDNfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9DT05ORUNUSU9OX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUEQzX0RDX0hQRF9DT05UUk9MX19EQ19IUERfUlhfSU5UX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEhQRDNfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgSFBEM19EQ19IUERfQ09OVFJPTF9fRENfSFBEX0NPTk5FQ1RJT05fVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgSFBEM19EQ19IUERfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKyNkZWZpbmUgSFBEM19EQ19IUERfQ09OVFJPTF9fRENfSFBEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vSFBEM19EQ19IUERfRkFTVF9UUkFJTl9DTlRMCisjZGVmaW5lIEhQRDNfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfQVVYX1RYX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUEQzX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0ZBU1RfVFJBSU5fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgSFBEM19EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9BVVhfVFhfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBIUEQzX0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0ZBU1RfVFJBSU5fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhQRDNfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfQVVYX1RYX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEhQRDNfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfRkFTVF9UUkFJTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIEhQRDNfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfQVVYX1RYX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEhQRDNfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfRkFTVF9UUkFJTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0hQRDNfRENfSFBEX1RPR0dMRV9GSUxUX0NOVEwKKyNkZWZpbmUgSFBEM19EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTF9fRENfSFBEX0NPTk5FQ1RfSU5UX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhQRDNfRENfSFBEX1RPR0dMRV9GSUxUX0NOVExfX0RDX0hQRF9ESVNDT05ORUNUX0lOVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSFBEM19EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTF9fRENfSFBEX0NPTk5FQ1RfSU5UX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgSFBEM19EQ19IUERfVE9HR0xFX0ZJTFRfQ05UTF9fRENfSFBEX0RJU0NPTk5FQ1RfSU5UX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkYwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9faHBkNF9kaXNwZGVjCisvL0hQRDRfRENfSFBEX0lOVF9TVEFUVVMKKyNkZWZpbmUgSFBENF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9TRU5TRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBIUEQ0X0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfU0VOU0VfREVMQVlFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSFBENF9EQ19IUERfSU5UX1NUQVRVU19fRENfSFBEX1JYX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9UT0dHTEVfRklMVF9DT05fVElNRVJfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBIUEQ0X0RDX0hQRF9JTlRfU1RBVFVTX19EQ19IUERfVE9HR0xFX0ZJTFRfRElTQ09OX1RJTUVSX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9TRU5TRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9TRU5TRV9ERUxBWUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9SWF9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9UT0dHTEVfRklMVF9DT05fVElNRVJfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9TVEFUVVNfX0RDX0hQRF9UT0dHTEVfRklMVF9ESVNDT05fVElNRVJfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0hQRDRfRENfSFBEX0lOVF9DT05UUk9MCisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUEQ0X0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX0lOVF9QT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSFBENF9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIUEQ0X0RDX0hQRF9JTlRfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhQRDRfRENfSFBEX0lOVF9DT05UUk9MX19EQ19IUERfUlhfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFBENF9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSFBENF9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgSFBENF9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgSFBENF9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgSFBENF9EQ19IUERfSU5UX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vSFBENF9EQ19IUERfQ09OVFJPTAorI2RlZmluZSBIUEQ0X0RDX0hQRF9DT05UUk9MX19EQ19IUERfQ09OTkVDVElPTl9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFBENF9EQ19IUERfQ09OVFJPTF9fRENfSFBEX1JYX0lOVF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBIUEQ0X0RDX0hQRF9DT05UUk9MX19EQ19IUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIEhQRDRfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9DT05ORUNUSU9OX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIEhQRDRfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9SWF9JTlRfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisjZGVmaW5lIEhQRDRfRENfSFBEX0NPTlRST0xfX0RDX0hQRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0hQRDRfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTAorI2RlZmluZSBIUEQ0X0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0FVWF9UWF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSFBENF9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9GQVNUX1RSQUlOX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEhQRDRfRENfSFBEX0ZBU1RfVFJBSU5fQ05UTF9fRENfSFBEX0NPTk5FQ1RfQVVYX1RYX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSFBENF9EQ19IUERfRkFTVF9UUkFJTl9DTlRMX19EQ19IUERfQ09OTkVDVF9GQVNUX1RSQUlOX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBIUEQ0X0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0FVWF9UWF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBIUEQ0X0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0ZBU1RfVFJBSU5fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBIUEQ0X0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0FVWF9UWF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBIUEQ0X0RDX0hQRF9GQVNUX1RSQUlOX0NOVExfX0RDX0hQRF9DT05ORUNUX0ZBU1RfVFJBSU5fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9IUEQ0X0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMCisjZGVmaW5lIEhQRDRfRENfSFBEX1RPR0dMRV9GSUxUX0NOVExfX0RDX0hQRF9DT05ORUNUX0lOVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBIUEQ0X0RDX0hQRF9UT0dHTEVfRklMVF9DTlRMX19EQ19IUERfRElTQ09OTkVDVF9JTlRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEhQRDRfRENfSFBEX1RPR0dMRV9GSUxUX0NOVExfX0RDX0hQRF9DT05ORUNUX0lOVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEhQRDRfRENfSFBEX1RPR0dMRV9GSUxUX0NOVExfX0RDX0hQRF9ESVNDT05ORUNUX0lOVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2Rpb19kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT04xOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OMThfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9OMThfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMThfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjE4X1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xOF9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2RwX2F1eDBfZGlzcGRlYworLy9EUF9BVVgwX0FVWF9DT05UUk9MCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgwX0FVWF9DT05UUk9MX19BVVhfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQ09OVFJPTF9fQVVYX1JFU0VUX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9MU19SRUFEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgwX0FVWF9DT05UUk9MX19BVVhfTFNfVVBEQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQ09OVFJPTF9fQVVYX0lHTk9SRV9IUERfRElTQ09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgwX0FVWF9DT05UUk9MX19BVVhfTU9ERV9ERVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9IUERfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQ09OVFJPTF9fQVVYX0lNUENBTF9SRVFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgwX0FVWF9DT05UUk9MX19BVVhfVEVTVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9ERUdMSVRDSF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQ09OVFJPTF9fU1BBUkVfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEUF9BVVgwX0FVWF9DT05UUk9MX19TUEFSRV8xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9SRVNFVF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9MU19SRUFEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9MU19VUERBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9JR05PUkVfSFBEX0RJU0NPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9NT0RFX0RFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9IUERfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9JTVBDQUxfUkVRX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9URVNUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX0FVWF9ERUdMSVRDSF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX1NQQVJFXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0NPTlRST0xfX1NQQVJFXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQX0FVWDBfQVVYX1NXX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfQ09OVFJPTF9fQVVYX1NXX0dPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX0NPTlRST0xfX0FVWF9MU19SRUFEX1RSSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUF9BVVgwX0FVWF9TV19DT05UUk9MX19BVVhfU1dfU1RBUlRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfQ09OVFJPTF9fQVVYX1NXX1dSX0JZVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgwX0FVWF9TV19DT05UUk9MX19BVVhfU1dfR09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgwX0FVWF9TV19DT05UUk9MX19BVVhfTFNfUkVBRF9UUklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUF9BVVgwX0FVWF9TV19DT05UUk9MX19BVVhfU1dfU1RBUlRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9TV19DT05UUk9MX19BVVhfU1dfV1JfQllURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorLy9EUF9BVVgwX0FVWF9BUkJfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgwX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0FSQl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9SRUdfUldfQ05UTF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQX0FVWDBfQVVYX0FSQl9DT05UUk9MX19BVVhfTk9fUVVFVUVEX1NXX0dPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgwX0FVWF9BUkJfQ09OVFJPTF9fQVVYX05PX1FVRVVFRF9MU19HT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19VU0VfQVVYX1JFR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgwX0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX1BFTkRJTkdfVVNFX0FVWF9SRUdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDBfQVVYX0FSQl9DT05UUk9MX19BVVhfU1dfRE9ORV9VU0lOR19BVVhfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX1VTRV9BVVhfUkVHX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgwX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfUEVORElOR19VU0VfQVVYX1JFR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDBfQVVYX0FSQl9DT05UUk9MX19BVVhfRE1DVV9ET05FX1VTSU5HX0FVWF9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9BUkJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9SRUdfUldfQ05UTF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9OT19RVUVVRURfU1dfR09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9OT19RVUVVRURfTFNfR09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19VU0VfQVVYX1JFR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19QRU5ESU5HX1VTRV9BVVhfUkVHX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19ET05FX1VTSU5HX0FVWF9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX1VTRV9BVVhfUkVHX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX1BFTkRJTkdfVVNFX0FVWF9SRUdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX0RPTkVfVVNJTkdfQVVYX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDBfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfU1dfRE9ORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUF9BVVgwX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDBfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfTFNfRE9ORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUF9BVVgwX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDBfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19ET05FX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUF9BVVgwX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDBfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfRVJST1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUF9BVVgwX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKy8vRFBfQVVYMF9BVVhfU1dfU1RBVFVTCisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX1NUQVRVU19fQVVYX1NXX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgwX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfVElNRU9VVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUF9BVVgwX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfSFBEX0RJU0NPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1BBUlRJQUxfQllURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVgwX0FVWF9TV19TVEFUVVNfX0FVWF9TV19OT05fQVVYX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfTUlOX0NPVU5UX1ZJT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX0lOVkFMSURfU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUF9BVVgwX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9TWU5DX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1NZTkNfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfSU5WQUxJRF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUF9BVVgwX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX05PX0RFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1JFQ1ZfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUF9BVVgwX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SRVBMWV9CWVRFX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX1NUQVRVU19fQVVYX0FSQl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfVElNRU9VVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfSFBEX0RJU0NPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUEFSVElBTF9CWVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfTk9OX0FVWF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfTUlOX0NPVU5UX1ZJT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfSU5WQUxJRF9TVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfU1lOQ19JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfU1lOQ19JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfSU5WQUxJRF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9OT19ERVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUkVQTFlfQllURV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfU1RBVFVTX19BVVhfQVJCX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRFBfQVVYMF9BVVhfTFNfU1RBVFVTCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgwX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfQVVYMF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfVElNRU9VVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUF9BVVgwX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfSFBEX0RJU0NPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1BBUlRJQUxfQllURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVgwX0FVWF9MU19TVEFUVVNfX0FVWF9MU19OT05fQVVYX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFBfQVVYMF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfTUlOX0NPVU5UX1ZJT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX0lOVkFMSURfU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUF9BVVgwX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9TWU5DX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1NZTkNfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBfQVVYMF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfSU5WQUxJRF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUF9BVVgwX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9SRUNWX05PX0RFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFBfQVVYMF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUF9BVVgwX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SRVBMWV9CWVRFX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0NQX0lSUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfVVBEQVRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEUF9BVVgwX0FVWF9MU19TVEFUVVNfX0FVWF9MU19VUERBVEVEX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1RJTUVPVVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0hQRF9ESVNDT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1BBUlRJQUxfQllURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX05PTl9BVVhfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX01JTl9DT1VOVF9WSU9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX0lOVkFMSURfU1RPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1NZTkNfSU5WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1NZTkNfSU5WQUxJRF9IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX0lOVkFMSURfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfTk9fREVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfSU5WQUxJRF9IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfSU5WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JFUExZX0JZVEVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0NQX0lSUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1VQREFURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1VQREFURURfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQX0FVWDBfQVVYX1NXX0RBVEEKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfREFUQV9fQVVYX1NXX0RBVEFfUldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX0RBVEFfX0FVWF9TV19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgwX0FVWF9TV19EQVRBX19BVVhfU1dfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDBfQVVYX1NXX0RBVEFfX0FVWF9TV19BVVRPSU5DUkVNRU5UX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfREFUQV9fQVVYX1NXX0RBVEFfUldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfREFUQV9fQVVYX1NXX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfREFUQV9fQVVYX1NXX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfU1dfREFUQV9fQVVYX1NXX0FVVE9JTkNSRU1FTlRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFBfQVVYMF9BVVhfTFNfREFUQQorI2RlZmluZSBEUF9BVVgwX0FVWF9MU19EQVRBX19BVVhfTFNfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMF9BVVhfTFNfREFUQV9fQVVYX0xTX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgwX0FVWF9MU19EQVRBX19BVVhfTFNfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9MU19EQVRBX19BVVhfTFNfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorLy9EUF9BVVgwX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MCisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SRUZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9fQVVYX1RYX1JFRl9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkVGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkVGX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorLy9EUF9BVVgwX0FVWF9EUEhZX1RYX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX1BSRUNIQVJHRV9MRU5fTVVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9PRV9BU1NFUlRfVElNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX1NZTUJPTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX01PREVfREVUX0NIRUNLX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX0xFTl9NVUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfT0VfQVNTRVJUX1RJTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX1NZTUJPTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfTU9ERV9ERVRfQ0hFQ0tfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKy8vRFBfQVVYMF9BVVhfRFBIWV9SWF9DT05UUk9MMAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfU1RBUlRfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1JFQ0VJVkVfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9IQUxGX1NZTV9ERVRFQ1RfTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfVFJBTlNJVElPTl9GSUxURVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfUEhBU0VfREVURUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0FMTE9XX0JFTE9XX1RIUkVTSE9MRF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1NUT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9QSEFTRV9ERVRFQ1RfTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0RFVEVDVElPTl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfU1RBUlRfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfUkVDRUlWRV9XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfSEFMRl9TWU1fREVURUNUX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfVFJBTlNJVElPTl9GSUxURVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1BIQVNFX0RFVEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1NUT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfUEhBU0VfREVURUNUX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfREVURUNUSU9OX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9EUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wxCisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9QUkVDSEFSR0VfU0tJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX0NPTlRST0wxX19BVVhfUlhfVElNRU9VVF9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1RJTUVPVVRfTEVOX01VTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9QUkVDSEFSR0VfU0tJUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9USU1FT1VUX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9USU1FT1VUX0xFTl9NVUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisvL0RQX0FVWDBfQVVYX0RQSFlfVFhfU1RBVFVTCisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9UWF9TVEFUVVNfX0FVWF9UWF9IQUxGX1NZTV9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX0hBTEZfU1lNX1BFUklPRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorLy9EUF9BVVgwX0FVWF9EUEhZX1JYX1NUQVRVUworI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9TWU5DX1ZBTElEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDBfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfSEFMRl9TWU1fUEVSSU9EX0ZSQUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMF9BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9IQUxGX1NZTV9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX1NZTkNfVkFMSURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX0hBTEZfU1lNX1BFUklPRF9GUkFDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX0hBTEZfU1lNX1BFUklPRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRTAwMDAwTAorLy9EUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU1QQ0FMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lNUENBTF9JTlRFUlZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19NQUlOVF9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19CTE9DS19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lOVEVSVkFMX1JFU0VUX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfT0ZGU0VUX0NBTENfTUFYX0FUVEVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9NQVhfQVRURU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lNUENBTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lNUENBTF9JTlRFUlZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1BFUklPRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfTUFJTlRfUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0JMT0NLX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lOVEVSVkFMX1JFU0VUX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX09GRlNFVF9DQUxDX01BWF9BVFRFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX01BWF9BVFRFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBfQVVYMF9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1BPVEVOVElBTF9FUlJPUl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19ERUZJTklURV9FUlJPUl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX05VTV9SRVRSWV9GT1JfTE9DS19NQUlOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1BPVEVOVElBTF9FUlJPUl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX0RFRklOSVRFX0VSUk9SX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1NZTkNfTlVNX1JFVFJZX0ZPUl9MT0NLX01BSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorLy9EUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVUworI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX0NPTVBMRVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0xPU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1RJTUVPVVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19QSEFTRV9BREpVU1RfVElNRV9WSU9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0NSSVRJQ0FMX0VSUl9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1JJVElDQUxfRVJSX09DQ1VSUkVEX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfUE9URU5USUFMX0VSUl9SRUFDSEVEX19TSElGVCAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9QT1RFTlRJQUxfRVJSX1JFQUNIRURfQUNLX19TSElGVCAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX0RFRklOSVRFX0VSUl9SRUFDSEVEX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfREVGSU5JVEVfRVJSX1JFQUNIRURfQUNLX19TSElGVCAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0NUUkxfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfQ09NUExFVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19MT1NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFFMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfUEhBU0VfQURKVVNUX1RJTUVfVklPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1JJVElDQUxfRVJSX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1JJVElDQUxfRVJSX09DQ1VSUkVEX0FDS19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX1BPVEVOVElBTF9FUlJfUkVBQ0hFRF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX1BPVEVOVElBTF9FUlJfUkVBQ0hFRF9BQ0tfTUFTSyAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX0RFRklOSVRFX0VSUl9SRUFDSEVEX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX0RFRklOSVRFX0VSUl9SRUFDSEVEX0FDS19NQVNLICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1RSTF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RQX0FVWDBfQVVYX0dUQ19TWU5DX1NUQVRVUworI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1RJTUVPVVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX0hQRF9ESVNDT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9QQVJUSUFMX0JZVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfTk9OX0FVWF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX01JTl9DT1VOVF9WSU9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9JTlZBTElEX1NUT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfU1lOQ19JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9TWU5DX0lOVkFMSURfSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX0lOVkFMSURfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9OT19ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX0lOVkFMSURfSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1JFQ1ZfSU5WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUkVQTFlfQllURV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgwX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19OQUNLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERQX0FVWDBfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19NQVNURVJfUkVRX0JZX1JYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfVElNRU9VVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfSFBEX0RJU0NPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUEFSVElBTF9CWVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfTk9OX0FVWF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfTUlOX0NPVU5UX1ZJT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfSU5WQUxJRF9TVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfU1lOQ19JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfU1lOQ19JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfSU5WQUxJRF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9OT19ERVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUkVQTFlfQllURV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfTkFDS0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX01BU1RFUl9SRVFfQllfUlhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRFBfQVVYMF9BVVhfUEhZX1dBS0VfQ05UTAorI2RlZmluZSBEUF9BVVgwX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfR09fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMF9BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQX0FVWDBfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUF9BVVgwX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFBfQVVYMF9BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX0dPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFBfQVVYMF9BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZHBfYXV4MV9kaXNwZGVjCisvL0RQX0FVWDFfQVVYX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDFfQVVYX0NPTlRST0xfX0FVWF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgxX0FVWF9DT05UUk9MX19BVVhfUkVTRVRfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0xTX1JFQURfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDFfQVVYX0NPTlRST0xfX0FVWF9MU19VUERBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgxX0FVWF9DT05UUk9MX19BVVhfSUdOT1JFX0hQRF9ESVNDT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDFfQVVYX0NPTlRST0xfX0FVWF9NT0RFX0RFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0hQRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgxX0FVWF9DT05UUk9MX19BVVhfSU1QQ0FMX1JFUV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDFfQVVYX0NPTlRST0xfX0FVWF9URVNUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0RFR0xJVENIX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUF9BVVgxX0FVWF9DT05UUk9MX19TUEFSRV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERQX0FVWDFfQVVYX0NPTlRST0xfX1NQQVJFXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX1JFU0VUX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0xTX1JFQURfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0xTX1VQREFURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0lHTk9SRV9IUERfRElTQ09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX01PREVfREVUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0hQRF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0lNUENBTF9SRVFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX1RFU1RfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fQVVYX0RFR0xJVENIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fU1BBUkVfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQ09OVFJPTF9fU1BBUkVfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFBfQVVYMV9BVVhfU1dfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19DT05UUk9MX19BVVhfU1dfR09fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfQ09OVFJPTF9fQVVYX0xTX1JFQURfVFJJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19TVEFSVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19DT05UUk9MX19BVVhfU1dfV1JfQllURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19HT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX0NPTlRST0xfX0FVWF9MU19SRUFEX1RSSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19TVEFSVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19XUl9CWVRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisvL0RQX0FVWDFfQVVYX0FSQl9DT05UUk9MCisjZGVmaW5lIERQX0FVWDFfQVVYX0FSQl9DT05UUk9MX19BVVhfQVJCX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX1JFR19SV19DTlRMX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQVJCX0NPTlRST0xfX0FVWF9OT19RVUVVRURfU1dfR09fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDFfQVVYX0FSQl9DT05UUk9MX19BVVhfTk9fUVVFVUVEX0xTX0dPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX1VTRV9BVVhfUkVHX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDFfQVVYX0FSQl9DT05UUk9MX19BVVhfU1dfUEVORElOR19VU0VfQVVYX1JFR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19ET05FX1VTSU5HX0FVWF9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfVVNFX0FVWF9SRUdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDFfQVVYX0FSQl9DT05UUk9MX19BVVhfRE1DVV9QRU5ESU5HX1VTRV9BVVhfUkVHX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX0RPTkVfVVNJTkdfQVVYX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0FSQl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX1JFR19SV19DTlRMX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX05PX1FVRVVFRF9TV19HT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX05PX1FVRVVFRF9MU19HT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX1VTRV9BVVhfUkVHX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX1BFTkRJTkdfVVNFX0FVWF9SRUdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX0RPTkVfVVNJTkdfQVVYX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfVVNFX0FVWF9SRUdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfUEVORElOR19VU0VfQVVYX1JFR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfRE9ORV9VU0lOR19BVVhfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorLy9EUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMV9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQX0FVWDFfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfU1dfRE9ORV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMV9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQX0FVWDFfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfTFNfRE9ORV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQX0FVWDFfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19ET05FX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYMV9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQX0FVWDFfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfRVJST1JfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorLy9EUF9BVVgxX0FVWF9TV19TVEFUVVMKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfU1RBVFVTX19BVVhfU1dfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9USU1FT1VUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19IUERfRElTQ09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUEFSVElBTF9CWVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX1NUQVRVU19fQVVYX1NXX05PTl9BVVhfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9NSU5fQ09VTlRfVklPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfSU5WQUxJRF9TVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1NZTkNfSU5WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfU1lOQ19JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9JTlZBTElEX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1JFQ1ZfTk9fREVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JFUExZX0JZVEVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfU1RBVFVTX19BVVhfQVJCX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9USU1FT1VUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19IUERfRElTQ09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9QQVJUSUFMX0JZVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19OT05fQVVYX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9NSU5fQ09VTlRfVklPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9JTlZBTElEX1NUT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9TWU5DX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9TWU5DX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9JTlZBTElEX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX05PX0RFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SRVBMWV9CWVRFX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19TVEFUVVNfX0FVWF9BUkJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EUF9BVVgxX0FVWF9MU19TVEFUVVMKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUF9BVVgxX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9USU1FT1VUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgxX0FVWF9MU19TVEFUVVNfX0FVWF9MU19IUERfRElTQ09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUEFSVElBTF9CWVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX1NUQVRVU19fQVVYX0xTX05PTl9BVVhfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUF9BVVgxX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9NSU5fQ09VTlRfVklPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfSU5WQUxJRF9TVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1NZTkNfSU5WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfU1lOQ19JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUF9BVVgxX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9JTlZBTElEX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfTk9fREVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUF9BVVgxX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9SRUNWX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JFUExZX0JZVEVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfQ1BfSVJRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUF9BVVgxX0FVWF9MU19TVEFUVVNfX0FVWF9MU19VUERBVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1VQREFURURfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfVElNRU9VVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfSFBEX0RJU0NPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUEFSVElBTF9CWVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfTk9OX0FVWF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfTUlOX0NPVU5UX1ZJT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfSU5WQUxJRF9TVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfU1lOQ19JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfU1lOQ19JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfSU5WQUxJRF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9OT19ERVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUkVQTFlfQllURV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfQ1BfSVJRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfVVBEQVRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfTFNfU1RBVFVTX19BVVhfTFNfVVBEQVRFRF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFBfQVVYMV9BVVhfU1dfREFUQQorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19EQVRBX19BVVhfU1dfREFUQV9SV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfREFUQV9fQVVYX1NXX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDFfQVVYX1NXX0RBVEFfX0FVWF9TV19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMV9BVVhfU1dfREFUQV9fQVVYX1NXX0FVVE9JTkNSRU1FTlRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19EQVRBX19BVVhfU1dfREFUQV9SV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19EQVRBX19BVVhfU1dfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19EQVRBX19BVVhfU1dfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9TV19EQVRBX19BVVhfU1dfQVVUT0lOQ1JFTUVOVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUF9BVVgxX0FVWF9MU19EQVRBCisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX0RBVEFfX0FVWF9MU19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgxX0FVWF9MU19EQVRBX19BVVhfTFNfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX0RBVEFfX0FVWF9MU19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0xTX0RBVEFfX0FVWF9MU19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisvL0RQX0FVWDFfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9fQVVYX1RYX1JFRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkVGX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SRUZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SRUZfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisvL0RQX0FVWDFfQVVYX0RQSFlfVFhfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX0xFTl9NVUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX09FX0FTU0VSVF9USU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfU1lNQk9MU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfTU9ERV9ERVRfQ0hFQ0tfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfTEVOX01VTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9PRV9BU1NFUlRfVElNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfU1lNQk9MU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9NT0RFX0RFVF9DSEVDS19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorLy9EUF9BVVgxX0FVWF9EUEhZX1JYX0NPTlRST0wwCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9TVEFSVF9XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfUkVDRUlWRV9XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0hBTEZfU1lNX0RFVEVDVF9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9UUkFOU0lUSU9OX0ZJTFRFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0FMTE9XX0JFTE9XX1RIUkVTSE9MRF9QSEFTRV9ERVRFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1BIQVNFX0RFVEVDVF9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfREVURUNUSU9OX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9TVEFSVF9XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9SRUNFSVZFX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9IQUxGX1NZTV9ERVRFQ1RfTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9UUkFOU0lUSU9OX0ZJTFRFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfUEhBU0VfREVURUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfU1RPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9QSEFTRV9ERVRFQ1RfTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9ERVRFQ1RJT05fVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0RQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDEKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1BSRUNIQVJHRV9TS0lQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9USU1FT1VUX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1JYX0NPTlRST0wxX19BVVhfUlhfVElNRU9VVF9MRU5fTVVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1BSRUNIQVJHRV9TS0lQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1RJTUVPVVRfTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1RJTUVPVVRfTEVOX01VTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKy8vRFBfQVVYMV9BVVhfRFBIWV9UWF9TVEFUVVMKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9UWF9TVEFUVVNfX0FVWF9UWF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX0hBTEZfU1lNX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfSEFMRl9TWU1fUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisvL0RQX0FVWDFfQVVYX0RQSFlfUlhfU1RBVFVTCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX1NZTkNfVkFMSURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9IQUxGX1NZTV9QRVJJT0RfRlJBQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgxX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX0hBTEZfU1lNX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfU1lOQ19WQUxJRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfSEFMRl9TWU1fUEVSSU9EX0ZSQUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfSEFMRl9TWU1fUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZFMDAwMDBMCisvL0RQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19JTVBDQUxfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU1QQ0FMX0lOVEVSVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX01BSU5UX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0JMT0NLX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU5URVJWQUxfUkVTRVRfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19PRkZTRVRfQ0FMQ19NQVhfQVRURU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX01BWF9BVFRFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU1QQ0FMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU1QQ0FMX0lOVEVSVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19NQUlOVF9QRVJJT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfQkxPQ0tfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU5URVJWQUxfUkVTRVRfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfT0ZGU0VUX0NBTENfTUFYX0FUVEVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfTUFYX0FUVEVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EUF9BVVgxX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfUE9URU5USUFMX0VSUk9SX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX0RFRklOSVRFX0VSUk9SX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1RJTUVPVVRfTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1NZTkNfTlVNX1JFVFJZX0ZPUl9MT0NLX01BSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfUE9URU5USUFMX0VSUk9SX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfREVGSU5JVEVfRVJST1JfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfU1lOQ19OVU1fUkVUUllfRk9SX0xPQ0tfTUFJTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisvL0RQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfQ09NUExFVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfTE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX1BIQVNFX0FESlVTVF9USU1FX1ZJT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1JJVElDQUxfRVJSX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DUklUSUNBTF9FUlJfT0NDVVJSRURfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9QT1RFTlRJQUxfRVJSX1JFQUNIRURfX1NISUZUICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX1BPVEVOVElBTF9FUlJfUkVBQ0hFRF9BQ0tfX1NISUZUICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfREVGSU5JVEVfRVJSX1JFQUNIRURfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9ERUZJTklURV9FUlJfUkVBQ0hFRF9BQ0tfX1NISUZUICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1RSTF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9DT01QTEVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0xPU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUUwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19QSEFTRV9BREpVU1RfVElNRV9WSU9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DUklUSUNBTF9FUlJfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DUklUSUNBTF9FUlJfT0NDVVJSRURfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfUE9URU5USUFMX0VSUl9SRUFDSEVEX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfUE9URU5USUFMX0VSUl9SRUFDSEVEX0FDS19NQVNLICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfREVGSU5JVEVfRVJSX1JFQUNIRURfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfREVGSU5JVEVfRVJSX1JFQUNIRURfQUNLX01BU0sgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DVFJMX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBfQVVYMV9BVVhfR1RDX1NZTkNfU1RBVFVTCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfVElNRU9VVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfSFBEX0RJU0NPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1BBUlRJQUxfQllURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19OT05fQVVYX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfTUlOX0NPVU5UX1ZJT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX0lOVkFMSURfU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9TWU5DX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1NZTkNfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfSU5WQUxJRF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX05PX0RFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1JFQ1ZfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SRVBMWV9CWVRFX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDFfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX05BQ0tFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFBfQVVYMV9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX01BU1RFUl9SRVFfQllfUlhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9USU1FT1VUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19IUERfRElTQ09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9QQVJUSUFMX0JZVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19OT05fQVVYX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9NSU5fQ09VTlRfVklPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9JTlZBTElEX1NUT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9TWU5DX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9TWU5DX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9JTlZBTElEX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX05PX0RFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SRVBMWV9CWVRFX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19OQUNLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEUF9BVVgxX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfTUFTVEVSX1JFUV9CWV9SWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EUF9BVVgxX0FVWF9QSFlfV0FLRV9DTlRMCisjZGVmaW5lIERQX0FVWDFfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9HT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgxX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfQVVYMV9BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQX0FVWDFfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUF9BVVgxX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfR09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgxX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUF9BVVgxX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUF9BVVgxX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kcF9hdXgyX2Rpc3BkZWMKKy8vRFBfQVVYMl9BVVhfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfQ09OVFJPTF9fQVVYX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDJfQVVYX0NPTlRST0xfX0FVWF9SRVNFVF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfTFNfUkVBRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMl9BVVhfQ09OVFJPTF9fQVVYX0xTX1VQREFURV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDJfQVVYX0NPTlRST0xfX0FVWF9JR05PUkVfSFBEX0RJU0NPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfQ09OVFJPTF9fQVVYX01PREVfREVUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfSFBEX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDJfQVVYX0NPTlRST0xfX0FVWF9JTVBDQUxfUkVRX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYMl9BVVhfQ09OVFJPTF9fQVVYX1RFU1RfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfREVHTElUQ0hfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERQX0FVWDJfQVVYX0NPTlRST0xfX1NQQVJFXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRFBfQVVYMl9BVVhfQ09OVFJPTF9fU1BBUkVfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfUkVTRVRfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfTFNfUkVBRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfTFNfVVBEQVRFX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfSUdOT1JFX0hQRF9ESVNDT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfTU9ERV9ERVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfSFBEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfSU1QQ0FMX1JFUV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfVEVTVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19BVVhfREVHTElUQ0hfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19TUEFSRV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9DT05UUk9MX19TUEFSRV8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUF9BVVgyX0FVWF9TV19DT05UUk9MCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19HT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgyX0FVWF9TV19DT05UUk9MX19BVVhfTFNfUkVBRF9UUklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfQ09OVFJPTF9fQVVYX1NXX1NUQVJUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19XUl9CWVRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfQ09OVFJPTF9fQVVYX1NXX0dPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfQ09OVFJPTF9fQVVYX0xTX1JFQURfVFJJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfQ09OVFJPTF9fQVVYX1NXX1NUQVJUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfQ09OVFJPTF9fQVVYX1NXX1dSX0JZVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKy8vRFBfQVVYMl9BVVhfQVJCX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYMl9BVVhfQVJCX0NPTlRST0xfX0FVWF9BUkJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfUkVHX1JXX0NOVExfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUF9BVVgyX0FVWF9BUkJfQ09OVFJPTF9fQVVYX05PX1FVRVVFRF9TV19HT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMl9BVVhfQVJCX0NPTlRST0xfX0FVWF9OT19RVUVVRURfTFNfR09fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfU1dfVVNFX0FVWF9SRUdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19QRU5ESU5HX1VTRV9BVVhfUkVHX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgyX0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX0RPTkVfVVNJTkdfQVVYX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfRE1DVV9VU0VfQVVYX1JFR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYMl9BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX1BFTkRJTkdfVVNFX0FVWF9SRUdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgyX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfRE9ORV9VU0lOR19BVVhfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfQVJCX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfUkVHX1JXX0NOVExfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfTk9fUVVFVUVEX1NXX0dPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfTk9fUVVFVUVEX0xTX0dPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfU1dfVVNFX0FVWF9SRUdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfU1dfUEVORElOR19VU0VfQVVYX1JFR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfU1dfRE9ORV9VU0lOR19BVVhfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfRE1DVV9VU0VfQVVYX1JFR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfRE1DVV9QRU5ESU5HX1VTRV9BVVhfUkVHX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0FSQl9DT05UUk9MX19BVVhfRE1DVV9ET05FX1VTSU5HX0FVWF9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisvL0RQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfU1dfRE9ORV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgyX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfQVVYMl9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfTFNfRE9ORV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgyX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFBfQVVYMl9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgyX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBfQVVYMl9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfRVJST1JfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgyX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFBfQVVYMl9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfU1dfRE9ORV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfU1dfRE9ORV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfU1dfRE9ORV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfTFNfRE9ORV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfTFNfRE9ORV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfTFNfRE9ORV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19ET05FX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfRVJST1JfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfRVJST1JfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfRVJST1JfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisvL0RQX0FVWDJfQVVYX1NXX1NUQVRVUworI2RlZmluZSBEUF9BVVgyX0FVWF9TV19TVEFUVVNfX0FVWF9TV19ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1RJTUVPVVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgyX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX0hQRF9ESVNDT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUF9BVVgyX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9QQVJUSUFMX0JZVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfU1RBVFVTX19BVVhfU1dfTk9OX0FVWF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX01JTl9DT1VOVF9WSU9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgyX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9JTlZBTElEX1NUT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfU1lOQ19JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUF9BVVgyX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9TWU5DX0lOVkFMSURfSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX0lOVkFMSURfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9OT19ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgyX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX0lOVkFMSURfSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1JFQ1ZfSU5WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUkVQTFlfQllURV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgyX0FVWF9TV19TVEFUVVNfX0FVWF9BUkJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1RJTUVPVVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX0hQRF9ESVNDT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1BBUlRJQUxfQllURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX05PTl9BVVhfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX01JTl9DT1VOVF9WSU9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX0lOVkFMSURfU1RPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1NZTkNfSU5WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1NZTkNfSU5WQUxJRF9IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX0lOVkFMSURfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1JFQ1ZfTk9fREVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1JFQ1ZfSU5WQUxJRF9IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1JFQ1ZfSU5WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JFUExZX0JZVEVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX1NUQVRVU19fQVVYX0FSQl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RQX0FVWDJfQVVYX0xTX1NUQVRVUworI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQX0FVWDJfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1RJTUVPVVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDJfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0hQRF9ESVNDT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9QQVJUSUFMX0JZVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfU1RBVFVTX19BVVhfTFNfTk9OX0FVWF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERQX0FVWDJfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX01JTl9DT1VOVF9WSU9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9JTlZBTElEX1NUT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfU1lOQ19JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9TWU5DX0lOVkFMSURfSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQX0FVWDJfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX0lOVkFMSURfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9OT19ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9SRUNWX0lOVkFMSURfSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQX0FVWDJfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfSU5WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUkVQTFlfQllURV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19DUF9JUlFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERQX0FVWDJfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1VQREFURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfU1RBVFVTX19BVVhfTFNfVVBEQVRFRF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9USU1FT1VUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19IUERfRElTQ09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9QQVJUSUFMX0JZVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19OT05fQVVYX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9NSU5fQ09VTlRfVklPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9JTlZBTElEX1NUT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9TWU5DX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9TWU5DX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9JTlZBTElEX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9SRUNWX05PX0RFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9SRUNWX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9SRUNWX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SRVBMWV9CWVRFX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19DUF9JUlFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19VUERBVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9MU19TVEFUVVNfX0FVWF9MU19VUERBVEVEX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUF9BVVgyX0FVWF9TV19EQVRBCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX0RBVEFfX0FVWF9TV19EQVRBX1JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgyX0FVWF9TV19EQVRBX19BVVhfU1dfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMl9BVVhfU1dfREFUQV9fQVVYX1NXX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgyX0FVWF9TV19EQVRBX19BVVhfU1dfQVVUT0lOQ1JFTUVOVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX0RBVEFfX0FVWF9TV19EQVRBX1JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX0RBVEFfX0FVWF9TV19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX0RBVEFfX0FVWF9TV19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX1NXX0RBVEFfX0FVWF9TV19BVVRPSU5DUkVNRU5UX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQX0FVWDJfQVVYX0xTX0RBVEEKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfREFUQV9fQVVYX0xTX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDJfQVVYX0xTX0RBVEFfX0FVWF9MU19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfREFUQV9fQVVYX0xTX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfTFNfREFUQV9fQVVYX0xTX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKy8vRFBfQVVYMl9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkVGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9fQVVYX1RYX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SRUZfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9fQVVYX1RYX1JFRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9fQVVYX1RYX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9fQVVYX1RYX1JFRl9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKy8vRFBfQVVYMl9BVVhfRFBIWV9UWF9DT05UUk9MCisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX1BSRUNIQVJHRV9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfTEVOX01VTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfT0VfQVNTRVJUX1RJTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX1BSRUNIQVJHRV9TWU1CT0xTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9NT0RFX0RFVF9DSEVDS19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX1BSRUNIQVJHRV9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX1BSRUNIQVJHRV9MRU5fTVVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX09FX0FTU0VSVF9USU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX1BSRUNIQVJHRV9TWU1CT0xTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX01PREVfREVUX0NIRUNLX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisvL0RQX0FVWDJfQVVYX0RQSFlfUlhfQ09OVFJPTDAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1NUQVJUX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9SRUNFSVZFX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfSEFMRl9TWU1fREVURUNUX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1RSQU5TSVRJT05fRklMVEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1BIQVNFX0RFVEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0FMTE9XX0JFTE9XX1RIUkVTSE9MRF9TVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfUEhBU0VfREVURUNUX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9ERVRFQ1RJT05fVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1NUQVJUX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1JFQ0VJVkVfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0hBTEZfU1lNX0RFVEVDVF9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1RSQU5TSVRJT05fRklMVEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0FMTE9XX0JFTE9XX1RIUkVTSE9MRF9QSEFTRV9ERVRFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0FMTE9XX0JFTE9XX1RIUkVTSE9MRF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0FMTE9XX0JFTE9XX1RIUkVTSE9MRF9TVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1BIQVNFX0RFVEVDVF9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0RFVEVDVElPTl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMQorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1JYX0NPTlRST0wxX19BVVhfUlhfUFJFQ0hBUkdFX1NLSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1RJTUVPVVRfTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9USU1FT1VUX0xFTl9NVUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1JYX0NPTlRST0wxX19BVVhfUlhfUFJFQ0hBUkdFX1NLSVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1JYX0NPTlRST0wxX19BVVhfUlhfVElNRU9VVF9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1JYX0NPTlRST0wxX19BVVhfUlhfVElNRU9VVF9MRU5fTVVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorLy9EUF9BVVgyX0FVWF9EUEhZX1RYX1NUQVRVUworI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9UWF9TVEFUVVNfX0FVWF9UWF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfSEFMRl9TWU1fUEVSSU9EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9UWF9TVEFUVVNfX0FVWF9UWF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9UWF9TVEFUVVNfX0FVWF9UWF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9UWF9TVEFUVVNfX0FVWF9UWF9IQUxGX1NZTV9QRVJJT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGMDAwMEwKKy8vRFBfQVVYMl9BVVhfRFBIWV9SWF9TVEFUVVMKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfU1lOQ19WQUxJRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgyX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX0hBTEZfU1lNX1BFUklPRF9GUkFDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDJfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfSEFMRl9TWU1fUEVSSU9EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9TWU5DX1ZBTElEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9IQUxGX1NZTV9QRVJJT0RfRlJBQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9IQUxGX1NZTV9QRVJJT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkUwMDAwMEwKKy8vRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lNUENBTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19JTVBDQUxfSU5URVJWQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfUEVSSU9EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfTUFJTlRfUEVSSU9EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfQkxPQ0tfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19JTlRFUlZBTF9SRVNFVF9XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX09GRlNFVF9DQUxDX01BWF9BVFRFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfTUFYX0FUVEVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19JTVBDQUxfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19JTVBDQUxfSU5URVJWQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9QRVJJT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX01BSU5UX1BFUklPRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19CTE9DS19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19JTlRFUlZBTF9SRVNFVF9XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19PRkZTRVRfQ0FMQ19NQVhfQVRURU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9NQVhfQVRURU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RQX0FVWDJfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19QT1RFTlRJQUxfRVJST1JfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfREVGSU5JVEVfRVJST1JfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfU1lOQ19OVU1fUkVUUllfRk9SX0xPQ0tfTUFJTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19QT1RFTlRJQUxfRVJST1JfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19ERUZJTklURV9FUlJPUl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1RJTUVPVVRfTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX05VTV9SRVRSWV9GT1JfTE9DS19NQUlOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKy8vRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVMKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9DT01QTEVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19MT1NUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1RJTUVPVVRfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfUEhBU0VfQURKVVNUX1RJTUVfVklPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DUklUSUNBTF9FUlJfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0NSSVRJQ0FMX0VSUl9PQ0NVUlJFRF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX1BPVEVOVElBTF9FUlJfUkVBQ0hFRF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfUE9URU5USUFMX0VSUl9SRUFDSEVEX0FDS19fU0hJRlQgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9ERUZJTklURV9FUlJfUkVBQ0hFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX0RFRklOSVRFX0VSUl9SRUFDSEVEX0FDS19fU0hJRlQgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DVFJMX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX0NPTVBMRVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfTE9TVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1RJTUVPVVRfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1RJTUVPVVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRTAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX1BIQVNFX0FESlVTVF9USU1FX1ZJT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0NSSVRJQ0FMX0VSUl9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0NSSVRJQ0FMX0VSUl9PQ0NVUlJFRF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9QT1RFTlRJQUxfRVJSX1JFQUNIRURfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9QT1RFTlRJQUxfRVJSX1JFQUNIRURfQUNLX01BU0sgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9ERUZJTklURV9FUlJfUkVBQ0hFRF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9ERUZJTklURV9FUlJfUkVBQ0hFRF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0NUUkxfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EUF9BVVgyX0FVWF9HVENfU1lOQ19TVEFUVVMKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9USU1FT1VUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19IUERfRElTQ09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUEFSVElBTF9CWVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX05PTl9BVVhfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9NSU5fQ09VTlRfVklPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfSU5WQUxJRF9TVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1NZTkNfSU5WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfU1lOQ19JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9JTlZBTElEX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1JFQ1ZfTk9fREVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JFUExZX0JZVEVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYMl9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfTkFDS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUF9BVVgyX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfTUFTVEVSX1JFUV9CWV9SWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1RJTUVPVVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX0hQRF9ESVNDT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1BBUlRJQUxfQllURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX05PTl9BVVhfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX01JTl9DT1VOVF9WSU9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX0lOVkFMSURfU1RPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1NZTkNfSU5WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1NZTkNfSU5WQUxJRF9IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX0lOVkFMSURfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1JFQ1ZfTk9fREVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1JFQ1ZfSU5WQUxJRF9IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1JFQ1ZfSU5WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JFUExZX0JZVEVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX05BQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDJfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19NQVNURVJfUkVRX0JZX1JYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RQX0FVWDJfQVVYX1BIWV9XQUtFX0NOVEwKKyNkZWZpbmUgRFBfQVVYMl9BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX0dPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDJfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUF9BVVgyX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFBfQVVYMl9BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERQX0FVWDJfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9HT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDJfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQX0FVWDJfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQX0FVWDJfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2RwX2F1eDNfZGlzcGRlYworLy9EUF9BVVgzX0FVWF9DT05UUk9MCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgzX0FVWF9DT05UUk9MX19BVVhfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYM19BVVhfQ09OVFJPTF9fQVVYX1JFU0VUX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9MU19SRUFEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgzX0FVWF9DT05UUk9MX19BVVhfTFNfVVBEQVRFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYM19BVVhfQ09OVFJPTF9fQVVYX0lHTk9SRV9IUERfRElTQ09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgzX0FVWF9DT05UUk9MX19BVVhfTU9ERV9ERVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9IUERfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYM19BVVhfQ09OVFJPTF9fQVVYX0lNUENBTF9SRVFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgzX0FVWF9DT05UUk9MX19BVVhfVEVTVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9ERUdMSVRDSF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFBfQVVYM19BVVhfQ09OVFJPTF9fU1BBUkVfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEUF9BVVgzX0FVWF9DT05UUk9MX19TUEFSRV8xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9SRVNFVF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9MU19SRUFEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9MU19VUERBVEVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9JR05PUkVfSFBEX0RJU0NPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9NT0RFX0RFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9IUERfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9JTVBDQUxfUkVRX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9URVNUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX0FVWF9ERUdMSVRDSF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX1NQQVJFXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0NPTlRST0xfX1NQQVJFXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQX0FVWDNfQVVYX1NXX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfQ09OVFJPTF9fQVVYX1NXX0dPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX0NPTlRST0xfX0FVWF9MU19SRUFEX1RSSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUF9BVVgzX0FVWF9TV19DT05UUk9MX19BVVhfU1dfU1RBUlRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfQ09OVFJPTF9fQVVYX1NXX1dSX0JZVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgzX0FVWF9TV19DT05UUk9MX19BVVhfU1dfR09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgzX0FVWF9TV19DT05UUk9MX19BVVhfTFNfUkVBRF9UUklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUF9BVVgzX0FVWF9TV19DT05UUk9MX19BVVhfU1dfU1RBUlRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9TV19DT05UUk9MX19BVVhfU1dfV1JfQllURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorLy9EUF9BVVgzX0FVWF9BUkJfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgzX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0FSQl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9SRUdfUldfQ05UTF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQX0FVWDNfQVVYX0FSQl9DT05UUk9MX19BVVhfTk9fUVVFVUVEX1NXX0dPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgzX0FVWF9BUkJfQ09OVFJPTF9fQVVYX05PX1FVRVVFRF9MU19HT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19VU0VfQVVYX1JFR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgzX0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX1BFTkRJTkdfVVNFX0FVWF9SRUdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDNfQVVYX0FSQl9DT05UUk9MX19BVVhfU1dfRE9ORV9VU0lOR19BVVhfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX1VTRV9BVVhfUkVHX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgzX0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfUEVORElOR19VU0VfQVVYX1JFR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDNfQVVYX0FSQl9DT05UUk9MX19BVVhfRE1DVV9ET05FX1VTSU5HX0FVWF9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9BUkJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9SRUdfUldfQ05UTF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9OT19RVUVVRURfU1dfR09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9OT19RVUVVRURfTFNfR09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19VU0VfQVVYX1JFR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19QRU5ESU5HX1VTRV9BVVhfUkVHX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19ET05FX1VTSU5HX0FVWF9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX1VTRV9BVVhfUkVHX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX1BFTkRJTkdfVVNFX0FVWF9SRUdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX0RPTkVfVVNJTkdfQVVYX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDNfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfU1dfRE9ORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUF9BVVgzX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDNfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfTFNfRE9ORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUF9BVVgzX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDNfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19ET05FX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUF9BVVgzX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDNfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfRVJST1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUF9BVVgzX0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfSU5UX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKy8vRFBfQVVYM19BVVhfU1dfU1RBVFVTCisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX1NUQVRVU19fQVVYX1NXX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgzX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfVElNRU9VVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUF9BVVgzX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfSFBEX0RJU0NPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1BBUlRJQUxfQllURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVgzX0FVWF9TV19TVEFUVVNfX0FVWF9TV19OT05fQVVYX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfTUlOX0NPVU5UX1ZJT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX0lOVkFMSURfU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUF9BVVgzX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9TWU5DX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1NZTkNfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfSU5WQUxJRF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUF9BVVgzX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX05PX0RFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1JFQ1ZfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUF9BVVgzX0FVWF9TV19TVEFUVVNfX0FVWF9TV19SRVBMWV9CWVRFX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX1NUQVRVU19fQVVYX0FSQl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfVElNRU9VVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfSFBEX0RJU0NPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUEFSVElBTF9CWVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfTk9OX0FVWF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfTUlOX0NPVU5UX1ZJT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfSU5WQUxJRF9TVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfU1lOQ19JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfU1lOQ19JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfSU5WQUxJRF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9OT19ERVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfU1dfUkVQTFlfQllURV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfU1RBVFVTX19BVVhfQVJCX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRFBfQVVYM19BVVhfTFNfU1RBVFVTCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgzX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfQVVYM19BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfVElNRU9VVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUF9BVVgzX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYM19BVVhfTFNfU1RBVFVTX19BVVhfTFNfSFBEX0RJU0NPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1BBUlRJQUxfQllURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVgzX0FVWF9MU19TVEFUVVNfX0FVWF9MU19OT05fQVVYX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFBfQVVYM19BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfTUlOX0NPVU5UX1ZJT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX0lOVkFMSURfU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUF9BVVgzX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9TWU5DX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1NZTkNfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBfQVVYM19BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfSU5WQUxJRF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUF9BVVgzX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9SRUNWX05PX0RFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFBfQVVYM19BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUF9BVVgzX0FVWF9MU19TVEFUVVNfX0FVWF9MU19SRVBMWV9CWVRFX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0NQX0lSUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFBfQVVYM19BVVhfTFNfU1RBVFVTX19BVVhfTFNfVVBEQVRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEUF9BVVgzX0FVWF9MU19TVEFUVVNfX0FVWF9MU19VUERBVEVEX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1RJTUVPVVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0hQRF9ESVNDT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1BBUlRJQUxfQllURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX05PTl9BVVhfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX01JTl9DT1VOVF9WSU9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX0lOVkFMSURfU1RPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1NZTkNfSU5WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1NZTkNfSU5WQUxJRF9IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX0lOVkFMSURfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfTk9fREVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfSU5WQUxJRF9IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfSU5WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JFUExZX0JZVEVfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX0NQX0lSUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1VQREFURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1VQREFURURfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQX0FVWDNfQVVYX1NXX0RBVEEKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfREFUQV9fQVVYX1NXX0RBVEFfUldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX0RBVEFfX0FVWF9TV19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgzX0FVWF9TV19EQVRBX19BVVhfU1dfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDNfQVVYX1NXX0RBVEFfX0FVWF9TV19BVVRPSU5DUkVNRU5UX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfREFUQV9fQVVYX1NXX0RBVEFfUldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfREFUQV9fQVVYX1NXX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfREFUQV9fQVVYX1NXX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfU1dfREFUQV9fQVVYX1NXX0FVVE9JTkNSRU1FTlRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFBfQVVYM19BVVhfTFNfREFUQQorI2RlZmluZSBEUF9BVVgzX0FVWF9MU19EQVRBX19BVVhfTFNfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYM19BVVhfTFNfREFUQV9fQVVYX0xTX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgzX0FVWF9MU19EQVRBX19BVVhfTFNfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9MU19EQVRBX19BVVhfTFNfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorLy9EUF9BVVgzX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MCisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SRUZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9fQVVYX1RYX1JFRl9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkVGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkVGX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorLy9EUF9BVVgzX0FVWF9EUEhZX1RYX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX1BSRUNIQVJHRV9MRU5fTVVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9PRV9BU1NFUlRfVElNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX1NZTUJPTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX01PREVfREVUX0NIRUNLX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX0xFTl9NVUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfT0VfQVNTRVJUX1RJTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX1NZTUJPTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfTU9ERV9ERVRfQ0hFQ0tfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKy8vRFBfQVVYM19BVVhfRFBIWV9SWF9DT05UUk9MMAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfU1RBUlRfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1JFQ0VJVkVfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9IQUxGX1NZTV9ERVRFQ1RfTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfVFJBTlNJVElPTl9GSUxURVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfUEhBU0VfREVURUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0FMTE9XX0JFTE9XX1RIUkVTSE9MRF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1NUT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9QSEFTRV9ERVRFQ1RfTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0RFVEVDVElPTl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfU1RBUlRfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfUkVDRUlWRV9XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfSEFMRl9TWU1fREVURUNUX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfVFJBTlNJVElPTl9GSUxURVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1BIQVNFX0RFVEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1NUT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfUEhBU0VfREVURUNUX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfREVURUNUSU9OX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9EUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wxCisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9QUkVDSEFSR0VfU0tJUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX0NPTlRST0wxX19BVVhfUlhfVElNRU9VVF9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1RJTUVPVVRfTEVOX01VTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9QUkVDSEFSR0VfU0tJUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9USU1FT1VUX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9USU1FT1VUX0xFTl9NVUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisvL0RQX0FVWDNfQVVYX0RQSFlfVFhfU1RBVFVTCisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9UWF9TVEFUVVNfX0FVWF9UWF9IQUxGX1NZTV9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX0hBTEZfU1lNX1BFUklPRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkYwMDAwTAorLy9EUF9BVVgzX0FVWF9EUEhZX1JYX1NUQVRVUworI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9TWU5DX1ZBTElEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDNfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfSEFMRl9TWU1fUEVSSU9EX0ZSQUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYM19BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9IQUxGX1NZTV9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX1NZTkNfVkFMSURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX0hBTEZfU1lNX1BFUklPRF9GUkFDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX0hBTEZfU1lNX1BFUklPRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRTAwMDAwTAorLy9EUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU1QQ0FMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lNUENBTF9JTlRFUlZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19NQUlOVF9QRVJJT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19CTE9DS19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lOVEVSVkFMX1JFU0VUX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfT0ZGU0VUX0NBTENfTUFYX0FUVEVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9NQVhfQVRURU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lNUENBTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lNUENBTF9JTlRFUlZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1BFUklPRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfTUFJTlRfUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0JMT0NLX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0lOVEVSVkFMX1JFU0VUX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX09GRlNFVF9DQUxDX01BWF9BVFRFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX01BWF9BVFRFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBfQVVYM19BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1BPVEVOVElBTF9FUlJPUl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19ERUZJTklURV9FUlJPUl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX05VTV9SRVRSWV9GT1JfTE9DS19NQUlOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1BPVEVOVElBTF9FUlJPUl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX0RFRklOSVRFX0VSUk9SX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1NZTkNfTlVNX1JFVFJZX0ZPUl9MT0NLX01BSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorLy9EUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVUworI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX0NPTVBMRVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0xPU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1RJTUVPVVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19QSEFTRV9BREpVU1RfVElNRV9WSU9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0NSSVRJQ0FMX0VSUl9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1JJVElDQUxfRVJSX09DQ1VSUkVEX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfUE9URU5USUFMX0VSUl9SRUFDSEVEX19TSElGVCAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9QT1RFTlRJQUxfRVJSX1JFQUNIRURfQUNLX19TSElGVCAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX0RFRklOSVRFX0VSUl9SRUFDSEVEX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfREVGSU5JVEVfRVJSX1JFQUNIRURfQUNLX19TSElGVCAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0NUUkxfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfQ09NUExFVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19MT1NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFFMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfUEhBU0VfQURKVVNUX1RJTUVfVklPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1JJVElDQUxfRVJSX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1JJVElDQUxfRVJSX09DQ1VSUkVEX0FDS19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX1BPVEVOVElBTF9FUlJfUkVBQ0hFRF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX1BPVEVOVElBTF9FUlJfUkVBQ0hFRF9BQ0tfTUFTSyAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX0RFRklOSVRFX0VSUl9SRUFDSEVEX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX0RFRklOSVRFX0VSUl9SRUFDSEVEX0FDS19NQVNLICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1RSTF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RQX0FVWDNfQVVYX0dUQ19TWU5DX1NUQVRVUworI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1RJTUVPVVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX0hQRF9ESVNDT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9QQVJUSUFMX0JZVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfTk9OX0FVWF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX01JTl9DT1VOVF9WSU9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9JTlZBTElEX1NUT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfU1lOQ19JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9TWU5DX0lOVkFMSURfSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX0lOVkFMSURfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9OT19ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX0lOVkFMSURfSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1JFQ1ZfSU5WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUkVQTFlfQllURV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVgzX0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19OQUNLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERQX0FVWDNfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19NQVNURVJfUkVRX0JZX1JYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfVElNRU9VVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfSFBEX0RJU0NPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUEFSVElBTF9CWVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfTk9OX0FVWF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfTUlOX0NPVU5UX1ZJT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfSU5WQUxJRF9TVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfU1lOQ19JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfU1lOQ19JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfSU5WQUxJRF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9OT19ERVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUkVQTFlfQllURV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfTkFDS0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX01BU1RFUl9SRVFfQllfUlhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRFBfQVVYM19BVVhfUEhZX1dBS0VfQ05UTAorI2RlZmluZSBEUF9BVVgzX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfR09fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYM19BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQX0FVWDNfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUF9BVVgzX0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFBfQVVYM19BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX0dPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYM19BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYM19BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFBfQVVYM19BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZHBfYXV4NF9kaXNwZGVjCisvL0RQX0FVWDRfQVVYX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDRfQVVYX0NPTlRST0xfX0FVWF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVg0X0FVWF9DT05UUk9MX19BVVhfUkVTRVRfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0xTX1JFQURfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDRfQVVYX0NPTlRST0xfX0FVWF9MU19VUERBVEVfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUF9BVVg0X0FVWF9DT05UUk9MX19BVVhfSUdOT1JFX0hQRF9ESVNDT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDRfQVVYX0NPTlRST0xfX0FVWF9NT0RFX0RFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0hQRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVg0X0FVWF9DT05UUk9MX19BVVhfSU1QQ0FMX1JFUV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDRfQVVYX0NPTlRST0xfX0FVWF9URVNUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0RFR0xJVENIX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUF9BVVg0X0FVWF9DT05UUk9MX19TUEFSRV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERQX0FVWDRfQVVYX0NPTlRST0xfX1NQQVJFXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX1JFU0VUX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0xTX1JFQURfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0xTX1VQREFURV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0lHTk9SRV9IUERfRElTQ09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX01PREVfREVUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0hQRF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0lNUENBTF9SRVFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX1RFU1RfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fQVVYX0RFR0xJVENIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fU1BBUkVfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQ09OVFJPTF9fU1BBUkVfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFBfQVVYNF9BVVhfU1dfQ09OVFJPTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19DT05UUk9MX19BVVhfU1dfR09fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfQ09OVFJPTF9fQVVYX0xTX1JFQURfVFJJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19TVEFSVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19DT05UUk9MX19BVVhfU1dfV1JfQllURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19HT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX0NPTlRST0xfX0FVWF9MU19SRUFEX1RSSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19TVEFSVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX0NPTlRST0xfX0FVWF9TV19XUl9CWVRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisvL0RQX0FVWDRfQVVYX0FSQl9DT05UUk9MCisjZGVmaW5lIERQX0FVWDRfQVVYX0FSQl9DT05UUk9MX19BVVhfQVJCX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX1JFR19SV19DTlRMX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQVJCX0NPTlRST0xfX0FVWF9OT19RVUVVRURfU1dfR09fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDRfQVVYX0FSQl9DT05UUk9MX19BVVhfTk9fUVVFVUVEX0xTX0dPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX1VTRV9BVVhfUkVHX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDRfQVVYX0FSQl9DT05UUk9MX19BVVhfU1dfUEVORElOR19VU0VfQVVYX1JFR19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQVJCX0NPTlRST0xfX0FVWF9TV19ET05FX1VTSU5HX0FVWF9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfVVNFX0FVWF9SRUdfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDRfQVVYX0FSQl9DT05UUk9MX19BVVhfRE1DVV9QRU5ESU5HX1VTRV9BVVhfUkVHX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfQVJCX0NPTlRST0xfX0FVWF9ETUNVX0RPTkVfVVNJTkdfQVVYX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX0FSQl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX1JFR19SV19DTlRMX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX05PX1FVRVVFRF9TV19HT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX05PX1FVRVVFRF9MU19HT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX1VTRV9BVVhfUkVHX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX1BFTkRJTkdfVVNFX0FVWF9SRUdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX1NXX0RPTkVfVVNJTkdfQVVYX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfVVNFX0FVWF9SRUdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfUEVORElOR19VU0VfQVVYX1JFR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9BUkJfQ09OVFJPTF9fQVVYX0RNQ1VfRE9ORV9VU0lOR19BVVhfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorLy9EUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYNF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9TV19ET05FX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQX0FVWDRfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfU1dfRE9ORV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYNF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9MU19ET05FX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQX0FVWDRfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfTFNfRE9ORV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0RPTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQX0FVWDRfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19ET05FX0lOVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYNF9BVVhfSU5URVJSVVBUX0NPTlRST0xfX0FVWF9HVENfU1lOQ19FUlJPUl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQX0FVWDRfQVVYX0lOVEVSUlVQVF9DT05UUk9MX19BVVhfR1RDX1NZTkNfRVJST1JfSU5UX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX1NXX0RPTkVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0xTX0RPTkVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfRE9ORV9JTlRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9JTlRFUlJVUFRfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VSUk9SX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorLy9EUF9BVVg0X0FVWF9TV19TVEFUVVMKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9USU1FT1VUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19IUERfRElTQ09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUEFSVElBTF9CWVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX1NUQVRVU19fQVVYX1NXX05PTl9BVVhfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9NSU5fQ09VTlRfVklPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfSU5WQUxJRF9TVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1NZTkNfSU5WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfU1lOQ19JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9JTlZBTElEX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JYX1JFQ1ZfTk9fREVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfU1RBVFVTX19BVVhfU1dfUlhfUkVDVl9JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX1NUQVRVU19fQVVYX1NXX1JFUExZX0JZVEVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfU1RBVFVTX19BVVhfQVJCX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9USU1FT1VUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19IUERfRElTQ09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9QQVJUSUFMX0JZVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19OT05fQVVYX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9NSU5fQ09VTlRfVklPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9JTlZBTElEX1NUT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9TWU5DX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9TWU5DX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9JTlZBTElEX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX05PX0RFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SWF9SRUNWX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9TV19SRVBMWV9CWVRFX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19TVEFUVVNfX0FVWF9BUkJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EUF9BVVg0X0FVWF9MU19TVEFUVVMKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUF9BVVg0X0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9USU1FT1VUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVg0X0FVWF9MU19TVEFUVVNfX0FVWF9MU19IUERfRElTQ09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUEFSVElBTF9CWVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX1NUQVRVU19fQVVYX0xTX05PTl9BVVhfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUF9BVVg0X0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9NSU5fQ09VTlRfVklPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfSU5WQUxJRF9TVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1NZTkNfSU5WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfU1lOQ19JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUF9BVVg0X0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9JTlZBTElEX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JYX1JFQ1ZfTk9fREVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9JTlZBTElEX0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUF9BVVg0X0FVWF9MU19TVEFUVVNfX0FVWF9MU19SWF9SRUNWX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1JFUExZX0JZVEVfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfQ1BfSVJRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUF9BVVg0X0FVWF9MU19TVEFUVVNfX0FVWF9MU19VUERBVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX1NUQVRVU19fQVVYX0xTX1VQREFURURfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfVElNRU9VVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfSFBEX0RJU0NPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUEFSVElBTF9CWVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfTk9OX0FVWF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfTUlOX0NPVU5UX1ZJT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfSU5WQUxJRF9TVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfU1lOQ19JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfU1lOQ19JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfSU5WQUxJRF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9OT19ERVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9JTlZBTElEX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUlhfUkVDVl9JTlZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfUkVQTFlfQllURV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfQ1BfSVJRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfVVBEQVRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfTFNfU1RBVFVTX19BVVhfTFNfVVBEQVRFRF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFBfQVVYNF9BVVhfU1dfREFUQQorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19EQVRBX19BVVhfU1dfREFUQV9SV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfREFUQV9fQVVYX1NXX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDRfQVVYX1NXX0RBVEFfX0FVWF9TV19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYNF9BVVhfU1dfREFUQV9fQVVYX1NXX0FVVE9JTkNSRU1FTlRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19EQVRBX19BVVhfU1dfREFUQV9SV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19EQVRBX19BVVhfU1dfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19EQVRBX19BVVhfU1dfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9TV19EQVRBX19BVVhfU1dfQVVUT0lOQ1JFTUVOVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUF9BVVg0X0FVWF9MU19EQVRBCisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX0RBVEFfX0FVWF9MU19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVg0X0FVWF9MU19EQVRBX19BVVhfTFNfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX0RBVEFfX0FVWF9MU19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0xTX0RBVEFfX0FVWF9MU19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisvL0RQX0FVWDRfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9UWF9SRUZfQ09OVFJPTF9fQVVYX1RYX1JFRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1RYX1JFRl9DT05UUk9MX19BVVhfVFhfUkVGX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SRUZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfVFhfUkVGX0NPTlRST0xfX0FVWF9UWF9SRUZfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisvL0RQX0FVWDRfQVVYX0RQSFlfVFhfQ09OVFJPTAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfVFhfUFJFQ0hBUkdFX0xFTl9NVUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfVFhfQ09OVFJPTF9fQVVYX1RYX09FX0FTU0VSVF9USU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfU1lNQk9MU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9UWF9DT05UUk9MX19BVVhfTU9ERV9ERVRfQ0hFQ0tfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfTEVOX01VTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9PRV9BU1NFUlRfVElNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9UWF9QUkVDSEFSR0VfU1lNQk9MU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1RYX0NPTlRST0xfX0FVWF9NT0RFX0RFVF9DSEVDS19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorLy9EUF9BVVg0X0FVWF9EUEhZX1JYX0NPTlRST0wwCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9TVEFSVF9XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfUkVDRUlWRV9XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0hBTEZfU1lNX0RFVEVDVF9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9UUkFOU0lUSU9OX0ZJTFRFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX0FMTE9XX0JFTE9XX1RIUkVTSE9MRF9QSEFTRV9ERVRFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfQUxMT1dfQkVMT1dfVEhSRVNIT0xEX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9SWF9DT05UUk9MMF9fQVVYX1JYX1BIQVNFX0RFVEVDVF9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1JYX0NPTlRST0wwX19BVVhfUlhfREVURUNUSU9OX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9TVEFSVF9XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9SRUNFSVZFX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9IQUxGX1NZTV9ERVRFQ1RfTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9UUkFOU0lUSU9OX0ZJTFRFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfUEhBU0VfREVURUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9BTExPV19CRUxPV19USFJFU0hPTERfU1RPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9QSEFTRV9ERVRFQ1RfTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDBfX0FVWF9SWF9ERVRFQ1RJT05fVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0RQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDEKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1BSRUNIQVJHRV9TS0lQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfQ09OVFJPTDFfX0FVWF9SWF9USU1FT1VUX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1JYX0NPTlRST0wxX19BVVhfUlhfVElNRU9VVF9MRU5fTVVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1BSRUNIQVJHRV9TS0lQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1RJTUVPVVRfTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9SWF9DT05UUk9MMV9fQVVYX1JYX1RJTUVPVVRfTEVOX01VTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKy8vRFBfQVVYNF9BVVhfRFBIWV9UWF9TVEFUVVMKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9UWF9TVEFUVVNfX0FVWF9UWF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1RYX1NUQVRVU19fQVVYX1RYX0hBTEZfU1lNX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfVFhfU1RBVFVTX19BVVhfVFhfSEFMRl9TWU1fUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRjAwMDBMCisvL0RQX0FVWDRfQVVYX0RQSFlfUlhfU1RBVFVTCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX1NZTkNfVkFMSURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfRFBIWV9SWF9TVEFUVVNfX0FVWF9SWF9IQUxGX1NZTV9QRVJJT0RfRlJBQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVg0X0FVWF9EUEhZX1JYX1NUQVRVU19fQVVYX1JYX0hBTEZfU1lNX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfU1lOQ19WQUxJRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfSEFMRl9TWU1fUEVSSU9EX0ZSQUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0RQSFlfUlhfU1RBVFVTX19BVVhfUlhfSEFMRl9TWU1fUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZFMDAwMDBMCisvL0RQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0wKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19JTVBDQUxfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU1QQ0FMX0lOVEVSVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX01BSU5UX1BFUklPRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0JMT0NLX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU5URVJWQUxfUkVTRVRfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xfX0FVWF9HVENfU1lOQ19PRkZTRVRfQ0FMQ19NQVhfQVRURU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX01BWF9BVFRFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU1QQ0FMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU1QQ0FMX0lOVEVSVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19NQUlOVF9QRVJJT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfQkxPQ0tfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfSU5URVJWQUxfUkVTRVRfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfT0ZGU0VUX0NBTENfTUFYX0FUVEVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfTUFYX0FUVEVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EUF9BVVg0X0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfUE9URU5USUFMX0VSUk9SX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX0RFRklOSVRFX0VSUk9SX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfRVJST1JfQ09OVFJPTF9fQVVYX0dUQ19TWU5DX0xPQ0tfQUNRX1RJTUVPVVRfTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19FUlJPUl9DT05UUk9MX19BVVhfR1RDX1NZTkNfTlVNX1JFVFJZX0ZPUl9MT0NLX01BSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfUE9URU5USUFMX0VSUk9SX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfREVGSU5JVEVfRVJST1JfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0VSUk9SX0NPTlRST0xfX0FVWF9HVENfU1lOQ19OVU1fUkVUUllfRk9SX0xPQ0tfTUFJTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisvL0RQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfQ09NUExFVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX0xPQ0tfTE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTE9DS19BQ1FfVElNRU9VVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX1BIQVNFX0FESlVTVF9USU1FX1ZJT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1JJVElDQUxfRVJSX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DUklUSUNBTF9FUlJfT0NDVVJSRURfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9QT1RFTlRJQUxfRVJSX1JFQUNIRURfX1NISUZUICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfTUFYX1BPVEVOVElBTF9FUlJfUkVBQ0hFRF9BQ0tfX1NISUZUICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfREVGSU5JVEVfRVJSX1JFQUNIRURfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19DT05UUk9MTEVSX1NUQVRVU19fQVVYX0dUQ19TWU5DX01BWF9ERUZJTklURV9FUlJfUkVBQ0hFRF9BQ0tfX1NISUZUICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX0NPTlRST0xMRVJfU1RBVFVTX19BVVhfR1RDX1NZTkNfQ1RSTF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9DT01QTEVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0xPU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19MT0NLX0FDUV9USU1FT1VUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUUwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19QSEFTRV9BREpVU1RfVElNRV9WSU9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DUklUSUNBTF9FUlJfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DUklUSUNBTF9FUlJfT0NDVVJSRURfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfUE9URU5USUFMX0VSUl9SRUFDSEVEX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfUE9URU5USUFMX0VSUl9SRUFDSEVEX0FDS19NQVNLICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfREVGSU5JVEVfRVJSX1JFQUNIRURfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19NQVhfREVGSU5JVEVfRVJSX1JFQUNIRURfQUNLX01BU0sgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfQ09OVFJPTExFUl9TVEFUVVNfX0FVWF9HVENfU1lOQ19DVFJMX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFBfQVVYNF9BVVhfR1RDX1NZTkNfU1RBVFVTCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfVElNRU9VVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfSFBEX0RJU0NPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1BBUlRJQUxfQllURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19OT05fQVVYX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfTUlOX0NPVU5UX1ZJT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX0lOVkFMSURfU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9TWU5DX0lOVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1NZTkNfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfSU5WQUxJRF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX05PX0RFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX1JYX1JFQ1ZfSU5WQUxJRF9IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX1NZTkNfUlhfUkVDVl9JTlZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SRVBMWV9CWVRFX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQX0FVWDRfQVVYX0dUQ19TWU5DX1NUQVRVU19fQVVYX0dUQ19TWU5DX05BQ0tFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFBfQVVYNF9BVVhfR1RDX1NZTkNfU1RBVFVTX19BVVhfR1RDX01BU1RFUl9SRVFfQllfUlhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9USU1FT1VUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19IUERfRElTQ09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9QQVJUSUFMX0JZVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19OT05fQVVYX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9NSU5fQ09VTlRfVklPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9JTlZBTElEX1NUT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9TWU5DX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9TWU5DX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9JTlZBTElEX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX05PX0RFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX0lOVkFMSURfSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SWF9SRUNWX0lOVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19SRVBMWV9CWVRFX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfU1lOQ19OQUNLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEUF9BVVg0X0FVWF9HVENfU1lOQ19TVEFUVVNfX0FVWF9HVENfTUFTVEVSX1JFUV9CWV9SWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EUF9BVVg0X0FVWF9QSFlfV0FLRV9DTlRMCisjZGVmaW5lIERQX0FVWDRfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9HT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUF9BVVg0X0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBfQVVYNF9BVVhfUEhZX1dBS0VfQ05UTF9fRFBfQVVYX1BIWV9XQUtFX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQX0FVWDRfQVVYX1BIWV9XQUtFX0NOVExfX0RQX0FVWF9QSFlfV0FLRV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUF9BVVg0X0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfR09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUF9BVVg0X0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUF9BVVg0X0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUF9BVVg0X0FVWF9QSFlfV0FLRV9DTlRMX19EUF9BVVhfUEhZX1dBS0VfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kaWcwX2Rpc3BkZWMKKy8vRElHMF9ESUdfRkVfQ05UTAorI2RlZmluZSBESUcwX0RJR19GRV9DTlRMX19ESUdfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9ESUdfRkVfQ05UTF9fRElHX1NURVJFT1NZTkNfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19TVEVSRU9TWU5DX0dBVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0RJR19GRV9DTlRMX19ESUdfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHMF9ESUdfRkVfQ05UTF9fRElHX0RJR0lUQUxfQllQQVNTX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19JTlBVVF9QSVhFTF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9ESUdfRkVfQ05UTF9fRE9MQllfVklTSU9OX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESUcwX0RJR19GRV9DTlRMX19ET0xCWV9WSVNJT05fTUVUQURBVEFfUEFDS0VUX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19TWU1DTEtfRkVfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9ESUdfRkVfQ05UTF9fVE1EU19QSVhFTF9FTkNPRElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcwX0RJR19GRV9DTlRMX19UTURTX0NPTE9SX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19TVEVSRU9TWU5DX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19TVEVSRU9TWU5DX0dBVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19ESUdJVEFMX0JZUEFTU19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19JTlBVVF9QSVhFTF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RPTEJZX1ZJU0lPTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RPTEJZX1ZJU0lPTl9NRVRBREFUQV9QQUNLRVRfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX0RJR19TWU1DTEtfRkVfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX1RNRFNfUElYRUxfRU5DT0RJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJRzBfRElHX0ZFX0NOVExfX1RNRFNfQ09MT1JfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL0RJRzBfRElHX09VVFBVVF9DUkNfQ05UTAorI2RlZmluZSBESUcwX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19MSU5LX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfRElHX09VVFBVVF9DUkNfQ05UTF9fRElHX09VVFBVVF9DUkNfREFUQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0xJTktfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcwX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0RBVEFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9ESUcwX0RJR19PVVRQVVRfQ1JDX1JFU1VMVAorI2RlZmluZSBESUcwX0RJR19PVVRQVVRfQ1JDX1JFU1VMVF9fRElHX09VVFBVVF9DUkNfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9ESUdfT1VUUFVUX0NSQ19SRVNVTFRfX0RJR19PVVRQVVRfQ1JDX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGRkZGRkwKKy8vRElHMF9ESUdfQ0xPQ0tfUEFUVEVSTgorI2RlZmluZSBESUcwX0RJR19DTE9DS19QQVRURVJOX19ESUdfQ0xPQ0tfUEFUVEVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9ESUdfQ0xPQ0tfUEFUVEVSTl9fRElHX0NMT0NLX1BBVFRFUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKy8vRElHMF9ESUdfVEVTVF9QQVRURVJOCisjZGVmaW5lIERJRzBfRElHX1RFU1RfUEFUVEVSTl9fRElHX1RFU1RfUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0RJR19URVNUX1BBVFRFUk5fX0RJR19IQUxGX0NMT0NLX1BBVFRFUk5fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMF9ESUdfVEVTVF9QQVRURVJOX19ESUdfUkFORE9NX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfRElHX1RFU1RfUEFUVEVSTl9fRElHX1JBTkRPTV9QQVRURVJOX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUcwX0RJR19URVNUX1BBVFRFUk5fX0RJR19URVNUX1BBVFRFUk5fRVhURVJOQUxfUkVTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHMF9ESUdfVEVTVF9QQVRURVJOX19ESUdfU1RBVElDX1RFU1RfUEFUVEVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0RJR19URVNUX1BBVFRFUk5fX0RJR19URVNUX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0RJR19URVNUX1BBVFRFUk5fX0RJR19IQUxGX0NMT0NLX1BBVFRFUk5fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcwX0RJR19URVNUX1BBVFRFUk5fX0RJR19SQU5ET01fUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcwX0RJR19URVNUX1BBVFRFUk5fX0RJR19SQU5ET01fUEFUVEVSTl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUcwX0RJR19URVNUX1BBVFRFUk5fX0RJR19URVNUX1BBVFRFUk5fRVhURVJOQUxfUkVTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUcwX0RJR19URVNUX1BBVFRFUk5fX0RJR19TVEFUSUNfVEVTVF9QQVRURVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9ESUcwX0RJR19SQU5ET01fUEFUVEVSTl9TRUVECisjZGVmaW5lIERJRzBfRElHX1JBTkRPTV9QQVRURVJOX1NFRURfX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19ESUdfUkFOX1BBVF9EVVJJTkdfREVfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzBfRElHX1JBTkRPTV9QQVRURVJOX1NFRURfX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIERJRzBfRElHX1JBTkRPTV9QQVRURVJOX1NFRURfX0RJR19SQU5fUEFUX0RVUklOR19ERV9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RJRzBfRElHX0ZJRk9fU1RBVFVTCisjZGVmaW5lIERJRzBfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19MRVZFTF9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fVVNFX09WRVJXUklURV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX09WRVJXUklURV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzBfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19FUlJPUl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fQ0FMX0FWRVJBR0VfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX01BWElNVU1fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fTUlOSU1VTV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERJRzBfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19SRUFEX0NMT0NLX1NSQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0NBTElCUkFURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESUcwX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fRk9SQ0VfUkVDQUxfQVZFUkFHRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzBfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19GT1JDRV9SRUNPTVBfTUlOTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0xFVkVMX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX1VTRV9PVkVSV1JJVEVfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX09WRVJXUklURV9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGQ0wKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0VSUk9SX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0NBTF9BVkVSQUdFX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX01BWElNVU1fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX01JTklNVU1fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0MwMDAwMEwKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX1JFQURfQ0xPQ0tfU1JDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0NBTElCUkFURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0ZPUkNFX1JFQ0FMX0FWRVJBR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRElHMF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0ZPUkNFX1JFQ09NUF9NSU5NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHMF9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzBfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMF9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMF9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMF9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMF9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0CisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNF9fSERNSV9HRU5FUklDNl9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfX0hETUlfR0VORVJJQzdfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNF9fSERNSV9HRU5FUklDNl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNF9fSERNSV9HRU5FUklDN19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzBfSERNSV9DT05UUk9MCisjZGVmaW5lIERJRzBfSERNSV9DT05UUk9MX19IRE1JX0tFRVBPVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9EQVRBX1NDUkFNQkxFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMF9IRE1JX0NPTlRST0xfX0hETUlfQ0xPQ0tfQ0hBTk5FTF9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzBfSERNSV9DT05UUk9MX19IRE1JX05PX0VYVFJBX05VTExfUEFDS0VUX0ZJTExFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9QQUNLRVRfR0VOX1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMF9IRE1JX0NPTlRST0xfX0hETUlfRVJST1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfSERNSV9DT05UUk9MX19IRE1JX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9VTlNDUkFNQkxFRF9DT05UUk9MX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfSERNSV9DT05UUk9MX19IRE1JX0RFRVBfQ09MT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9IRE1JX0NPTlRST0xfX0hETUlfREVFUF9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9LRUVQT1VUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9EQVRBX1NDUkFNQkxFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9DTE9DS19DSEFOTkVMX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9OT19FWFRSQV9OVUxMX1BBQ0tFVF9GSUxMRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9QQUNLRVRfR0VOX1ZFUlNJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9FUlJPUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9FUlJPUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9VTlNDUkFNQkxFRF9DT05UUk9MX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9ERUVQX0NPTE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUcwX0hETUlfQ09OVFJPTF9fSERNSV9ERUVQX0NPTE9SX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9ESUcwX0hETUlfU1RBVFVTCisjZGVmaW5lIERJRzBfSERNSV9TVEFUVVNfX0hETUlfQUNUSVZFX0FWTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0hETUlfU1RBVFVTX19IRE1JX0FVRElPX1BBQ0tFVF9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfSERNSV9TVEFUVVNfX0hETUlfVkJJX1BBQ0tFVF9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHMF9IRE1JX1NUQVRVU19fSERNSV9FUlJPUl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESUcwX0hETUlfU1RBVFVTX19IRE1JX0FDVElWRV9BVk1VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0hETUlfU1RBVFVTX19IRE1JX0FVRElPX1BBQ0tFVF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUcwX0hETUlfU1RBVFVTX19IRE1JX1ZCSV9QQUNLRVRfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESUcwX0hETUlfU1RBVFVTX19IRE1JX0VSUk9SX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorLy9ESUcwX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHMF9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FVRElPX0RFTEFZX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19TRU5EX01BWF9QQUNLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fUEFDS0VUU19QRVJfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19ERUxBWV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERJRzBfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19TRU5EX01BWF9QQUNLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzBfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19QQUNLRVRTX1BFUl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisvL0RJRzBfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcwX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0FVVE9fU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcwX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9OX01VTFRJUExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0FVRElPX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfQVVUT19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfTl9NVUxUSVBMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfQVVESU9fUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHMF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTAorI2RlZmluZSBESUcwX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX05VTExfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9HQ19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfR0NfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUcwX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0lTUkNfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzBfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9OVUxMX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9HQ19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9HQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHMF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHMF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMAorI2RlZmluZSBESUcwX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX0FVRElPX0lORk9fU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9BVURJT19JTkZPX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzBfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfTVBFR19JTkZPX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX01QRUdfSU5GT19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9BVURJT19JTkZPX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9BVURJT19JTkZPX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9NUEVHX0lORk9fU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9NUEVHX0lORk9fQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKy8vRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMQorI2RlZmluZSBESUcwX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxX19IRE1JX0FVRElPX0lORk9fTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9fSERNSV9NUEVHX0lORk9fTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxX19IRE1JX0FVRElPX0lORk9fTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBESUcwX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxX19IRE1JX01QRUdfSU5GT19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDAKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzBfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzFfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzJfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzNfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzRfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzVfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzZfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzdfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRElHMF9IRE1JX0dDCisjZGVmaW5lIERJRzBfSERNSV9HQ19fSERNSV9HQ19BVk1VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0hETUlfR0NfX0hETUlfR0NfQVZNVVRFX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMF9IRE1JX0dDX19IRE1JX0RFRkFVTFRfUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfSERNSV9HQ19fSERNSV9QQUNLSU5HX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0hETUlfR0NfX0hETUlfUEFDS0lOR19QSEFTRV9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMF9IRE1JX0dDX19IRE1JX0dDX0FWTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMF9IRE1JX0dDX19IRE1JX0dDX0FWTVVURV9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHMF9IRE1JX0dDX19IRE1JX0RFRkFVTFRfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dDX19IRE1JX1BBQ0tJTkdfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRElHMF9IRE1JX0dDX19IRE1JX1BBQ0tJTkdfUEhBU0VfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vRElHMF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMgorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0xBWU9VVF9PVlJEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19MQVlPVVRfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfQVVESU9fQ0hBTk5FTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0RQX0FVRElPX1NUUkVBTV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfSEJSX0VOQUJMRV9PVlJEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF82MDk1OF9PU0ZfT1ZSRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0xBWU9VVF9PVlJEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0xBWU9VVF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0NIQU5ORUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0RQX0FVRElPX1NUUkVBTV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0hCUl9FTkFCTEVfT1ZSRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UXzYwOTU4X09TRl9PVlJEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9ESUcwX0FGTVRfSVNSQzFfMAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19DT05USU5VRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzBfQUZNVF9JU1JDMV8wX19BRk1UX0lTUkNfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX0NPTlRJTlVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9ESUcwX0FGTVRfSVNSQzFfMQorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfSVNSQzFfMgorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfSVNSQzFfMworI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfSVNSQzFfNAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfSVNSQzJfMAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfSVNSQzJfMQorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfSVNSQzJfMgorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfSVNSQzJfMworI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMyOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMyOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMyOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMzMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMzMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDIKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyX19IRE1JX0dFTkVSSUMyX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMl9fSERNSV9HRU5FUklDM19MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyX19IRE1JX0dFTkVSSUMyX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyX19IRE1JX0dFTkVSSUMzX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MM19fSERNSV9HRU5FUklDNF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDNfX0hETUlfR0VORVJJQzVfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MM19fSERNSV9HRU5FUklDNF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MM19fSERNSV9HRU5FUklDNV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzBfSERNSV9EQl9DT05UUk9MCisjZGVmaW5lIERJRzBfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMF9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfVEFLRU5fQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzBfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMF9IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJRzBfSERNSV9EQl9DT05UUk9MX19WVVBEQVRFX0RCX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfVEFLRU5fQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9UQUtFTl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUcwX0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9UQUtFTl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9ESUcwX0RNRV9DT05UUk9MCisjZGVmaW5lIERJRzBfRE1FX0NPTlRST0xfX01FVEFEQVRBX0hVQlBfUkVRVUVTVE9SX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0RNRV9DT05UUk9MX19NRVRBREFUQV9FTkdJTkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMF9ETUVfQ09OVFJPTF9fTUVUQURBVEFfU1RSRUFNX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcwX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElHMF9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfVEFLRU5fQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzBfRE1FX0NPTlRST0xfX01FVEFEQVRBX0hVQlBfUkVRVUVTVE9SX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERJRzBfRE1FX0NPTlRST0xfX01FVEFEQVRBX0VOR0lORV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzBfRE1FX0NPTlRST0xfX01FVEFEQVRBX1NUUkVBTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzBfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzBfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJRzBfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1RBS0VOX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzBfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL0RJRzBfQUZNVF9NUEVHX0lORk8wCisjZGVmaW5lIERJRzBfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19DSEVDS1NVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX01CMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzBfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19DSEVDS1NVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzBfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzBfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzBfQUZNVF9NUEVHX0lORk8xCisjZGVmaW5lIERJRzBfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19NQjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fTUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9BRk1UX01QRUdfSU5GTzFfX0FGTVRfTVBFR19JTkZPX0ZSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzBfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19NQjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzBfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19NRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERJRzBfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19GUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RJRzBfQUZNVF9HRU5FUklDX0hEUgorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfR0VORVJJQ18wCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzBfQUZNVF9HRU5FUklDXzEKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMF9BRk1UX0dFTkVSSUNfMgorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEU5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEUxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfR0VORVJJQ18zCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzBfQUZNVF9HRU5FUklDXzQKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMF9BRk1UX0dFTkVSSUNfNQorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfR0VORVJJQ182CisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzBfQUZNVF9HRU5FUklDXzcKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUyOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUyOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUyOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUzMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUzMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMV9fSERNSV9HRU5FUklDMF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfX0hETUlfR0VORVJJQzFfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMV9fSERNSV9HRU5FUklDMF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMV9fSERNSV9HRU5FUklDMV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzBfSERNSV9BQ1JfMzJfMAorI2RlZmluZSBESUcwX0hETUlfQUNSXzMyXzBfX0hETUlfQUNSX0NUU18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl8zMl8wX19IRE1JX0FDUl9DVFNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vRElHMF9IRE1JX0FDUl8zMl8xCisjZGVmaW5lIERJRzBfSERNSV9BQ1JfMzJfMV9fSERNSV9BQ1JfTl8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0hETUlfQUNSXzMyXzFfX0hETUlfQUNSX05fMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9ESUcwX0hETUlfQUNSXzQ0XzAKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl80NF8wX19IRE1JX0FDUl9DVFNfNDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzBfSERNSV9BQ1JfNDRfMF9fSERNSV9BQ1JfQ1RTXzQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL0RJRzBfSERNSV9BQ1JfNDRfMQorI2RlZmluZSBESUcwX0hETUlfQUNSXzQ0XzFfX0hETUlfQUNSX05fNDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl80NF8xX19IRE1JX0FDUl9OXzQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vRElHMF9IRE1JX0FDUl80OF8wCisjZGVmaW5lIERJRzBfSERNSV9BQ1JfNDhfMF9fSERNSV9BQ1JfQ1RTXzQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcwX0hETUlfQUNSXzQ4XzBfX0hETUlfQUNSX0NUU180OF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9ESUcwX0hETUlfQUNSXzQ4XzEKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl80OF8xX19IRE1JX0FDUl9OXzQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfSERNSV9BQ1JfNDhfMV9fSERNSV9BQ1JfTl80OF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL0RJRzBfSERNSV9BQ1JfU1RBVFVTXzAKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9TVEFUVVNfMF9fSERNSV9BQ1JfQ1RTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzBfSERNSV9BQ1JfU1RBVFVTXzBfX0hETUlfQUNSX0NUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL0RJRzBfSERNSV9BQ1JfU1RBVFVTXzEKKyNkZWZpbmUgRElHMF9IRE1JX0FDUl9TVEFUVVNfMV9fSERNSV9BQ1JfTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfSERNSV9BQ1JfU1RBVFVTXzFfX0hETUlfQUNSX05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL0RJRzBfQUZNVF9BVURJT19JTkZPMAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DSEVDS1NVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DSEVDS1NVTV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0hFQ0tTVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzgwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0hFQ0tTVU1fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ1hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKy8vRElHMF9BRk1UX0FVRElPX0lORk8xCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0NBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19MU1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fRE1fSU5IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0xGRVBCTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fQ0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fTFNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzgwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fRE1fSU5IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fTEZFUEJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKy8vRElHMF9BRk1UXzYwOTU4XzAKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DQVRFR09SWV9DT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfU09VUkNFX05VTUJFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DQVRFR09SWV9DT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19TT1VSQ0VfTlVNQkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9ESUcwX0FGTVRfNjA5NThfMQorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19XT1JEX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X1ZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfVkFMSURfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX1dPUkRfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X1ZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X1ZBTElEX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0RJRzBfQUZNVF9BVURJT19DUkNfQ09OVFJPTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NIX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX1NPVVJDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NIX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUcwX0FGTVRfUkFNUF9DT05UUk9MMAorI2RlZmluZSBESUcwX0FGTVRfUkFNUF9DT05UUk9MMF9fQUZNVF9SQU1QX01BWF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX1JBTVBfQ09OVFJPTDBfX0FGTVRfUkFNUF9EQVRBX1NJR05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUcwX0FGTVRfUkFNUF9DT05UUk9MMF9fQUZNVF9SQU1QX01BWF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBESUcwX0FGTVRfUkFNUF9DT05UUk9MMF9fQUZNVF9SQU1QX0RBVEFfU0lHTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUcwX0FGTVRfUkFNUF9DT05UUk9MMQorI2RlZmluZSBESUcwX0FGTVRfUkFNUF9DT05UUk9MMV9fQUZNVF9SQU1QX01JTl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX1JBTVBfQ09OVFJPTDFfX0FGTVRfQVVESU9fVEVTVF9DSF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfUkFNUF9DT05UUk9MMV9fQUZNVF9SQU1QX01JTl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBESUcwX0FGTVRfUkFNUF9DT05UUk9MMV9fQUZNVF9BVURJT19URVNUX0NIX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcwX0FGTVRfUkFNUF9DT05UUk9MMgorI2RlZmluZSBESUcwX0FGTVRfUkFNUF9DT05UUk9MMl9fQUZNVF9SQU1QX0lOQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX1JBTVBfQ09OVFJPTDJfX0FGTVRfUkFNUF9JTkNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRElHMF9BRk1UX1JBTVBfQ09OVFJPTDMKKyNkZWZpbmUgRElHMF9BRk1UX1JBTVBfQ09OVFJPTDNfX0FGTVRfUkFNUF9ERUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfQUZNVF9SQU1QX0NPTlRST0wzX19BRk1UX1JBTVBfREVDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RJRzBfQUZNVF82MDk1OF8yCisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcwX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl82X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRElHMF9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKy8vRElHMF9BRk1UX0FVRElPX0NSQ19SRVNVTFQKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX0NSQ19SRVNVTFRfX0FGTVRfQVVESU9fQ1JDX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19DUkNfUkVTVUxUX19BRk1UX0FVRElPX0NSQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fQ1JDX1JFU1VMVF9fQUZNVF9BVURJT19DUkNfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fQ1JDX1JFU1VMVF9fQUZNVF9BVURJT19DUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ESUcwX0FGTVRfU1RBVFVTCisjZGVmaW5lIERJRzBfQUZNVF9TVEFUVVNfX0FGTVRfQVVESU9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcwX0FGTVRfU1RBVFVTX19BRk1UX0FaX0hCUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9BRk1UX1NUQVRVU19fQUZNVF9BVURJT19GSUZPX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcwX0FGTVRfU1RBVFVTX19BRk1UX0FaX0FVRElPX0VOQUJMRV9DSEdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzBfQUZNVF9TVEFUVVNfX0FGTVRfQVVESU9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzBfQUZNVF9TVEFUVVNfX0FGTVRfQVpfSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzBfQUZNVF9TVEFUVVNfX0FGTVRfQVVESU9fRklGT19PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9TVEFUVVNfX0FGTVRfQVpfQVVESU9fRU5BQkxFX0NIR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fU0FNUExFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX1JFU0VUX0ZJRk9fV0hFTl9BVURJT19ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19URVNUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fVEVTVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX0ZJRk9fT1ZFUkZMT1dfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fQ0hBTk5FTF9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF82MDk1OF9DU19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHMF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FaX0FVRElPX0VOQUJMRV9DSEdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQkxBTktfVEVTVF9EQVRBX09OX0VOQ19FTkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19TQU1QTEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9SRVNFVF9GSUZPX1dIRU5fQVVESU9fRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19URVNUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19URVNUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19GSUZPX09WRVJGTE9XX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19DSEFOTkVMX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF82MDk1OF9DU19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BWl9BVURJT19FTkFCTEVfQ0hHX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9CTEFOS19URVNUX0RBVEFfT05fRU5DX0VOQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0xPQ0tfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19DT05GTElDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0NPTkZMSUNUX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19MT0NLX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19DT05GTElDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19DT05GTElDVF9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RJRzBfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDAKKyNkZWZpbmUgRElHMF9BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9BVURJT19JTkZPX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzBfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfQVVESU9fSU5GT19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUcwX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX19BRk1UX01QRUdfSU5GT19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHMF9BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9BVURJT19JTkZPX1NPVVJDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHMF9BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9BVURJT19JTkZPX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElHMF9BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9NUEVHX0lORk9fVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vRElHMF9BRk1UX0FVRElPX1NSQ19DT05UUk9MCisjZGVmaW5lIERJRzBfQUZNVF9BVURJT19TUkNfQ09OVFJPTF9fQUZNVF9BVURJT19TUkNfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0FGTVRfQVVESU9fU1JDX0NPTlRST0xfX0FGTVRfQVVESU9fU1JDX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorLy9ESUcwX0RJR19CRV9DTlRMCisjZGVmaW5lIERJRzBfRElHX0JFX0NOVExfX0RJR19EVUFMX0xJTktfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0RJR19CRV9DTlRMX19ESUdfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMF9ESUdfQkVfQ05UTF9fRElHX1JCX1NXSVRDSF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzBfRElHX0JFX0NOVExfX0RJR19GRV9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0RJR19CRV9DTlRMX19ESUdfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfRElHX0JFX0NOVExfX0RJR19IUERfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMF9ESUdfQkVfQ05UTF9fRElHX0RVQUxfTElOS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMF9ESUdfQkVfQ05UTF9fRElHX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMF9ESUdfQkVfQ05UTF9fRElHX1JCX1NXSVRDSF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHMF9ESUdfQkVfQ05UTF9fRElHX0ZFX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgRElHMF9ESUdfQkVfQ05UTF9fRElHX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRElHMF9ESUdfQkVfQ05UTF9fRElHX0hQRF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vRElHMF9ESUdfQkVfRU5fQ05UTAorI2RlZmluZSBESUcwX0RJR19CRV9FTl9DTlRMX19ESUdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9ESUdfQkVfRU5fQ05UTF9fRElHX1NZTUNMS19CRV9PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfRElHX0JFX0VOX0NOVExfX0RJR19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzBfRElHX0JFX0VOX0NOVExfX0RJR19TWU1DTEtfQkVfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RJRzBfVE1EU19DTlRMCisjZGVmaW5lIERJRzBfVE1EU19DTlRMX19UTURTX1NZTkNfUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX1RNRFNfQ05UTF9fVE1EU19TWU5DX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9ESUcwX1RNRFNfQ09OVFJPTF9DSEFSCisjZGVmaW5lIERJRzBfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSMF9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjFfT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMF9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIyX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzBfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSM19PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUcwX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjBfT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjFfT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcwX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjJfT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUcwX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjNfT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorLy9ESUcwX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0sKKyNkZWZpbmUgRElHMF9UTURTX0NPTlRST0wwX0ZFRURCQUNLX19UTURTX0NPTlRST0wwX0ZFRURCQUNLX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfVE1EU19DT05UUk9MMF9GRUVEQkFDS19fVE1EU19DT05UUk9MMF9GRUVEQkFDS19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBESUcwX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9ESUcwX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMCisjZGVmaW5lIERJRzBfVE1EU19TVEVSRU9TWU5DX0NUTF9TRUxfX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMX19UTURTX1NURVJFT1NZTkNfQ1RMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9ESUcwX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xCisjZGVmaW5lIERJRzBfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzFfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzFfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERJRzBfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzFfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RJRzBfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzMKKyNkZWZpbmUgRElHMF9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfM19fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfM19fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRElHMF9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfM19fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vRElHMF9UTURTX0NUTF9CSVRTCisjZGVmaW5lIERJRzBfVE1EU19DVExfQklUU19fVE1EU19DVEwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9UTURTX0NUTF9CSVRTX19UTURTX0NUTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzBfVE1EU19DVExfQklUU19fVE1EU19DVEwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzBfVE1EU19DVExfQklUU19fVE1EU19DVEwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVExfQklUU19fVE1EU19DVEwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVExfQklUU19fVE1EU19DVEwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RJRzBfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0wKKyNkZWZpbmUgRElHMF9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfU1lOQ19EQ0JBTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcwX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfVEVTVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX1RFU1RfSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzBfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzBfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfU1lOQ19EQ0JBTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERJRzBfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9URVNUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzBfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9URVNUX0lOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERJRzBfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RJRzBfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSCisjZGVmaW5lIERJRzBfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSX19UTURTX1NZTkNfRENCQUxfQ0hBUjAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9fVE1EU19TWU5DX0RDQkFMX0NIQVIxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSX19UTURTX1NZTkNfRENCQUxfQ0hBUjAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERJRzBfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSX19UTURTX1NZTkNfRENCQUxfQ0hBUjExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RJRzBfVE1EU19DVEwwXzFfR0VOX0NOVEwKKyNkZWZpbmUgRElHMF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHMF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfTU9EVUxBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzBfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9VU0VfRkVFREJBQ0tfUEFUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfRkJfU1lOQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHMF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzBfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJRzBfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX01PRFVMQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX1VTRV9GRUVEQkFDS19QQVRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfRkJfU1lOQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJRzBfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU18yQklUX0NPVU5URVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9NT0RVTEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfVVNFX0ZFRURCQUNLX1BBVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfRkJfU1lOQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9NT0RVTEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfVVNFX0ZFRURCQUNLX1BBVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfRkJfU1lOQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTXzJCSVRfQ09VTlRFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUcwX1RNRFNfQ1RMMl8zX0dFTl9DTlRMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMF9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX01PRFVMQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfVVNFX0ZFRURCQUNLX1BBVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHMF9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0ZCX1NZTkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcwX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHMF9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESUcwX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9NT0RVTEFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19VU0VfRkVFREJBQ0tfUEFUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHMF9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0ZCX1NZTkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESUcwX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX01PRFVMQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9VU0VfRkVFREJBQ0tfUEFUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9GQl9TWU5DX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9QQVRURVJOX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX01PRFVMQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19VU0VfRkVFREJBQ0tfUEFUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19GQl9TWU5DX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERJRzBfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19QQVRURVJOX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RJRzBfRElHX1ZFUlNJT04KKyNkZWZpbmUgRElHMF9ESUdfVkVSU0lPTl9fRElHX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfRElHX1ZFUlNJT05fX0RJR19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RJRzBfRElHX0xBTkVfRU5BQkxFCisjZGVmaW5lIERJRzBfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTBFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcwX0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUxRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMF9ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzBfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTNFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUcwX0RJR19MQU5FX0VOQUJMRV9fRElHX0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMF9ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMUVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMF9ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHMF9ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FM0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElHMF9ESUdfTEFORV9FTkFCTEVfX0RJR19DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRElHMF9BRk1UX0NOVEwKKyNkZWZpbmUgRElHMF9BRk1UX0NOVExfX0FGTVRfQVVESU9fQ0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfQUZNVF9DTlRMX19BRk1UX0FVRElPX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0FGTVRfQ05UTF9fQUZNVF9BVURJT19DTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0FGTVRfQ05UTF9fQUZNVF9BVURJT19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9ESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMQorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDUKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMwX0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMF9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzFfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMxX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMl9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzJfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMzX0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDM19JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzRfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM0X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNV9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzVfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM2X0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNl9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBESUcwX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzdfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRElHMF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM3X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMF9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMF9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMV9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMV9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMl9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMl9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDM19JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDM19JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNF9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNF9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNV9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNV9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNl9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNl9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDN19JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJRzBfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDN19JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL0RJRzBfRk9SQ0VfRElHX0RJU0FCTEUKKyNkZWZpbmUgRElHMF9GT1JDRV9ESUdfRElTQUJMRV9fRk9SQ0VfRElHX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzBfRk9SQ0VfRElHX0RJU0FCTEVfX0ZPUkNFX0RJR19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2RwMF9kaXNwZGVjCisvL0RQMF9EUF9MSU5LX0NOVEwKKyNkZWZpbmUgRFAwX0RQX0xJTktfQ05UTF9fRFBfTElOS19UUkFJTklOR19DT01QTEVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9MSU5LX0NOVExfX0RQX0xJTktfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfTElOS19DTlRMX19EUF9FTUJFRERFRF9QQU5FTF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQMF9EUF9MSU5LX0NOVExfX0RQX0xJTktfVFJBSU5JTkdfQ09NUExFVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMF9EUF9MSU5LX0NOVExfX0RQX0xJTktfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMF9EUF9MSU5LX0NOVExfX0RQX0VNQkVEREVEX1BBTkVMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL0RQMF9EUF9QSVhFTF9GT1JNQVQKKyNkZWZpbmUgRFAwX0RQX1BJWEVMX0ZPUk1BVF9fRFBfUElYRUxfRU5DT0RJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9QSVhFTF9GT1JNQVRfX0RQX0NPTVBPTkVOVF9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAwX0RQX1BJWEVMX0ZPUk1BVF9fRFBfUElYRUxfQ09NQklORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDBfRFBfUElYRUxfRk9STUFUX19EUF9QSVhFTF9FTkNPRElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDBfRFBfUElYRUxfRk9STUFUX19EUF9DT01QT05FTlRfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorI2RlZmluZSBEUDBfRFBfUElYRUxfRk9STUFUX19EUF9QSVhFTF9DT01CSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9EUDBfRFBfTVNBX0NPTE9SSU1FVFJZCisjZGVmaW5lIERQMF9EUF9NU0FfQ09MT1JJTUVUUllfX0RQX01TQV9NSVNDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAwX0RQX01TQV9DT0xPUklNRVRSWV9fRFBfTVNBX01JU0MwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFAwX0RQX0NPTkZJRworI2RlZmluZSBEUDBfRFBfQ09ORklHX19EUF9VRElfTEFORVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0NPTkZJR19fRFBfVURJX0xBTkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vRFAwX0RQX1ZJRF9TVFJFQU1fQ05UTAorI2RlZmluZSBEUDBfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNfREVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMF9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9DSEFOR0VfS0VFUE9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDBfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDBfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0RJU19ERUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEUDBfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDBfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0NIQU5HRV9LRUVQT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9EUDBfRFBfU1RFRVJfRklGTworI2RlZmluZSBEUDBfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfRklGT19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDBfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFAwX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQMF9EUF9TVEVFUl9GSUZPX19EUF9UVV9PVkVSRkxPV19GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfU1RFRVJfRklGT19fRFBfVFVfT1ZFUkZMT1dfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAwX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX0ZJRk9fUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAwX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAwX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFAwX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFAwX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFAwX0RQX1NURUVSX0ZJRk9fX0RQX1RVX09WRVJGTE9XX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAwX0RQX1NURUVSX0ZJRk9fX0RQX1RVX09WRVJGTE9XX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vRFAwX0RQX01TQV9NSVNDCisjZGVmaW5lIERQMF9EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAwX0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMF9EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERQMF9EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERQMF9EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERQMF9EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0M0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RQMF9EUF9WSURfVElNSU5HCisjZGVmaW5lIERQMF9EUF9WSURfVElNSU5HX19EUF9WSURfTV9OX0RPVUJMRV9CVUZGRVJfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDBfRFBfVklEX1RJTUlOR19fRFBfVklEX01fTl9HRU5fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAwX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9OX01VTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQMF9EUF9WSURfVElNSU5HX19EUF9WSURfTV9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDBfRFBfVklEX1RJTUlOR19fRFBfVklEX05fRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMF9EUF9WSURfVElNSU5HX19EUF9WSURfTV9OX0RPVUJMRV9CVUZGRVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMF9EUF9WSURfVElNSU5HX19EUF9WSURfTV9OX0dFTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMF9EUF9WSURfVElNSU5HX19EUF9WSURfTl9NVUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIERQMF9EUF9WSURfVElNSU5HX19EUF9WSURfTV9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERQMF9EUF9WSURfVElNSU5HX19EUF9WSURfTl9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RQMF9EUF9WSURfTgorI2RlZmluZSBEUDBfRFBfVklEX05fX0RQX1ZJRF9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1ZJRF9OX19EUF9WSURfTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAwX0RQX1ZJRF9NCisjZGVmaW5lIERQMF9EUF9WSURfTV9fRFBfVklEX01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfVklEX01fX0RQX1ZJRF9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EUDBfRFBfTElOS19GUkFNSU5HX0NOVEwKKyNkZWZpbmUgRFAwX0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9JRExFX0JTX0lOVEVSVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9fRFBfVkJJRF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAwX0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9WSURfRU5IQU5DRURfRlJBTUVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDBfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX0lETEVfQlNfSU5URVJWQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBEUDBfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX1ZCSURfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUDBfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX1ZJRF9FTkhBTkNFRF9GUkFNRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9EUDBfRFBfSEJSMl9FWUVfUEFUVEVSTgorI2RlZmluZSBEUDBfRFBfSEJSMl9FWUVfUEFUVEVSTl9fRFBfSEJSMl9FWUVfUEFUVEVSTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0hCUjJfRVlFX1BBVFRFUk5fX0RQX0hCUjJfRVlFX1BBVFRFUk5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRFAwX0RQX1ZJRF9NU0FfVkJJRAorI2RlZmluZSBEUDBfRFBfVklEX01TQV9WQklEX19EUF9WSURfTVNBX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1ZJRF9NU0FfVkJJRF9fRFBfVklEX1ZCSURfRklFTERfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDBfRFBfVklEX01TQV9WQklEX19EUF9WSURfTVNBX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBEUDBfRFBfVklEX01TQV9WQklEX19EUF9WSURfVkJJRF9GSUVMRF9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUDBfRFBfVklEX0lOVEVSUlVQVF9DTlRMCisjZGVmaW5lIERQMF9EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAwX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNBQkxFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQMF9EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMF9EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQMF9EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL0RQMF9EUF9EUEhZX0NOVEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERQMF9EUF9EUEhZX0NOVExfX0RQSFlfRkVDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19SRUFEWV9TSEFET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfQUNUSVZFX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQMF9EUF9EUEhZX0NOVExfX0RQSFlfQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ05UTF9fRFBIWV9TS0VXX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19SRUFEWV9TSEFET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19BQ1RJVkVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DTlRMX19EUEhZX1NLRVdfQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUDBfRFBfRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTAorI2RlZmluZSBEUDBfRFBfRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTF9fRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vRFAwX0RQX0RQSFlfU1lNMAorI2RlZmluZSBEUDBfRFBfRFBIWV9TWU0wX19EUEhZX1NZTTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQMF9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkYwMDAwMEwKKy8vRFAwX0RQX0RQSFlfU1lNMQorI2RlZmluZSBEUDBfRFBfRFBIWV9TWU0xX19EUEhZX1NZTTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU01X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQMF9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU00X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU01X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU02X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkYwMDAwMEwKKy8vRFAwX0RQX0RQSFlfU1lNMgorI2RlZmluZSBEUDBfRFBfRFBIWV9TWU0yX19EUEhZX1NZTTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU1lNMl9fRFBIWV9TWU04X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQMF9EUF9EUEhZX1NZTTJfX0RQSFlfU1lNN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQMF9EUF9EUEhZX1NZTTJfX0RQSFlfU1lNOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisvL0RQMF9EUF9EUEhZXzhCMTBCX0NOVEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMF9EUF9EUEhZXzhCMTBCX0NOVExfX0RQSFlfOEIxMEJfRVhUX0RJU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9DVVJfRElTUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDBfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDBfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX0VYVF9ESVNQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDBfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX0NVUl9ESVNQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUDBfRFBfRFBIWV9QUkJTX0NOVEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDBfRFBfRFBIWV9QUkJTX0NOVExfX0RQSFlfUFJCU19TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAwX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkYwMEwKKy8vRFAwX0RQX0RQSFlfU0NSQU1fQ05UTAorI2RlZmluZSBEUDBfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfQURWQU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0JTX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9LQ09ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMF9EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMF9EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0FEVkFOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMF9EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0JTX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGMDBMCisjZGVmaW5lIERQMF9EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0tDT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RQMF9EUF9EUEhZX0NSQ19FTgorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19DT05UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9EUEhZX0NSQ19FTl9fRFBIWV9DUkNfUkVTVUxUX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX0NPTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX1JFU1VMVF9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EUDBfRFBfRFBIWV9DUkNfQ05UTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfQ05UTF9fRFBIWV9DUkNfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vRFAwX0RQX0RQSFlfQ1JDX1JFU1VMVAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMF9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EUDBfRFBfRFBIWV9DUkNfTVNUX0NOVEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX01TVF9DTlRMX19EUEhZX0NSQ19NU1RfRklSU1RfU0xPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9EUEhZX0NSQ19NU1RfQ05UTF9fRFBIWV9DUkNfTVNUX0xBU1RfU0xPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfTVNUX0NOVExfX0RQSFlfQ1JDX01TVF9GSVJTVF9TTE9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfTVNUX0NOVExfX0RQSFlfQ1JDX01TVF9MQVNUX1NMT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorLy9EUDBfRFBfRFBIWV9DUkNfTVNUX1NUQVRVUworI2RlZmluZSBEUDBfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19fRFBIWV9DUkNfTVNUX1BIQVNFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMF9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfRVJST1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9FUlJPUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklORworI2RlZmluZSBEUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX1JYX0ZBU1RfVFJBSU5JTkdfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9TV19GQVNUX1RSQUlOSU5HX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQMF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfRkFTVF9UUkFJTklOR19WQkxBTktfRURHRV9ERVRFQ1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVFAxX1RJTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1RQMl9USU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX1JYX0ZBU1RfVFJBSU5JTkdfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX1NXX0ZBU1RfVFJBSU5JTkdfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVkJMQU5LX0VER0VfREVURUNUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVFAxX1RJTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRjAwTAorI2RlZmluZSBEUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVFAyX1RJTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9EUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVUworI2RlZmluZSBEUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vRFAwX0RQX1NFQ19DTlRMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX1NUUkVBTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVExfX0RQX1NFQ19BU1BfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMX19EUF9TRUNfQVRQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0FJUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDBfRFBfU0VDX0NOVExfX0RQX1NFQ19BQ01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEUDBfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AyX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQNF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDZfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQN19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEUDBfRFBfU0VDX0NOVExfX0RQX1NFQ19NUEdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX1NUUkVBTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0FTUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0FUUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0FJUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0FDTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDZfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTF9fRFBfU0VDX01QR19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RQMF9EUF9TRUNfQ05UTDEKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0lTUkNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AxX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMl9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDNfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A0X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNV9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDZfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A3X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19JU1JDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfREVBRExJTkVfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfQU5ZX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AxX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AyX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AzX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A0X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A1X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A2X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A3X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMF9EUF9TRUNfRlJBTUlORzEKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HMV9fRFBfU0VDX0ZSQU1FX1NUQVJUX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9TRUNfRlJBTUlORzFfX0RQX1NFQ19WQkxBTktfVFJBTlNNSVRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HMV9fRFBfU0VDX0ZSQU1FX1NUQVJUX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HMV9fRFBfU0VDX1ZCTEFOS19UUkFOU01JVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAwX0RQX1NFQ19GUkFNSU5HMgorI2RlZmluZSBEUDBfRFBfU0VDX0ZSQU1JTkcyX19EUF9TRUNfU1RBUlRfUE9TSVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HMl9fRFBfU0VDX0hCTEFOS19UUkFOU01JVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfU0VDX0ZSQU1JTkcyX19EUF9TRUNfU1RBUlRfUE9TSVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDBfRFBfU0VDX0ZSQU1JTkcyX19EUF9TRUNfSEJMQU5LX1RSQU5TTUlUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDBfRFBfU0VDX0ZSQU1JTkczCisjZGVmaW5lIERQMF9EUF9TRUNfRlJBTUlORzNfX0RQX1NFQ19JRExFX0ZSQU1FX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfU0VDX0ZSQU1JTkczX19EUF9TRUNfSURMRV9UUkFOU01JVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMF9EUF9TRUNfRlJBTUlORzNfX0RQX1NFQ19JRExFX0ZSQU1FX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERQMF9EUF9TRUNfRlJBTUlORzNfX0RQX1NFQ19JRExFX1RSQU5TTUlUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMF9EUF9TRUNfRlJBTUlORzQKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HNF9fRFBfU1NUX1NEUF9TUExJVFRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19DT0xMSVNJT05fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0NPTExJU0lPTl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDBfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQVVESU9fTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQMF9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19BVURJT19NVVRFX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HNF9fRFBfU1NUX1NEUF9TUExJVFRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0NPTExJU0lPTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0NPTExJU0lPTl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0FVRElPX01VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRFAwX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0FVRElPX01VVEVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vRFAwX0RQX1NFQ19BVURfTgorI2RlZmluZSBEUDBfRFBfU0VDX0FVRF9OX19EUF9TRUNfQVVEX05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1NFQ19BVURfTl9fRFBfU0VDX0FVRF9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAwX0RQX1NFQ19BVURfTl9SRUFEQkFDSworI2RlZmluZSBEUDBfRFBfU0VDX0FVRF9OX1JFQURCQUNLX19EUF9TRUNfQVVEX05fUkVBREJBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1NFQ19BVURfTl9SRUFEQkFDS19fRFBfU0VDX0FVRF9OX1JFQURCQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAwX0RQX1NFQ19BVURfTQorI2RlZmluZSBEUDBfRFBfU0VDX0FVRF9NX19EUF9TRUNfQVVEX01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1NFQ19BVURfTV9fRFBfU0VDX0FVRF9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAwX0RQX1NFQ19BVURfTV9SRUFEQkFDSworI2RlZmluZSBEUDBfRFBfU0VDX0FVRF9NX1JFQURCQUNLX19EUF9TRUNfQVVEX01fUkVBREJBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1NFQ19BVURfTV9SRUFEQkFDS19fRFBfU0VDX0FVRF9NX1JFQURCQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAwX0RQX1NFQ19USU1FU1RBTVAKKyNkZWZpbmUgRFAwX0RQX1NFQ19USU1FU1RBTVBfX0RQX1NFQ19USU1FU1RBTVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9TRUNfVElNRVNUQU1QX19EUF9TRUNfVElNRVNUQU1QX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RQMF9EUF9TRUNfUEFDS0VUX0NOVEwKKyNkZWZpbmUgRFAwX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9DT0RJTkdfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQMF9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19BU1BfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDBfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfVkVSU0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAwX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9DSEFOTkVMX0NPVU5UX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX0NPRElOR19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBEUDBfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDBfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfVkVSU0lPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDBfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX0NIQU5ORUxfQ09VTlRfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9EUDBfRFBfTVNFX1JBVEVfQ05UTAorI2RlZmluZSBEUDBfRFBfTVNFX1JBVEVfQ05UTF9fRFBfTVNFX1JBVEVfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX01TRV9SQVRFX0NOVExfX0RQX01TRV9SQVRFX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEUDBfRFBfTVNFX1JBVEVfQ05UTF9fRFBfTVNFX1JBVEVfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRkZGTAorI2RlZmluZSBEUDBfRFBfTVNFX1JBVEVfQ05UTF9fRFBfTVNFX1JBVEVfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EUDBfRFBfTVNFX1JBVEVfVVBEQVRFCisjZGVmaW5lIERQMF9EUF9NU0VfUkFURV9VUERBVEVfX0RQX01TRV9SQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfTVNFX1JBVEVfVVBEQVRFX19EUF9NU0VfUkFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EUDBfRFBfTVNFX1NBVDAKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NSQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU1JDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NSQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NSQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFAwX0RQX01TRV9TQVQxCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TUkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NSQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TUkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TUkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQMF9EUF9NU0VfU0FUMgorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU1JDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TUkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU1JDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU1JDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDBfRFBfTVNFX1NBVF9VUERBVEUKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVRfVVBEQVRFX19EUF9NU0VfU0FUX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUX1VQREFURV9fRFBfTVNFXzE2X01UUF9LRUVQT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVF9VUERBVEVfX0RQX01TRV9TQVRfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVF9VUERBVEVfX0RQX01TRV8xNl9NVFBfS0VFUE9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EUDBfRFBfTVNFX0xJTktfVElNSU5HCisjZGVmaW5lIERQMF9EUF9NU0VfTElOS19USU1JTkdfX0RQX01TRV9MSU5LX0ZSQU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfTVNFX0xJTktfVElNSU5HX19EUF9NU0VfTElOS19MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMF9EUF9NU0VfTElOS19USU1JTkdfX0RQX01TRV9MSU5LX0ZSQU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQMF9EUF9NU0VfTElOS19USU1JTkdfX0RQX01TRV9MSU5LX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisvL0RQMF9EUF9NU0VfTUlTQ19DTlRMCisjZGVmaW5lIERQMF9EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfQkxBTktfQ09ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX1RJTUVTVEFNUF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAwX0RQX01TRV9NSVNDX0NOVExfX0RQX01TRV9aRVJPX0VOQ09ERVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMF9EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfQkxBTktfQ09ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMF9EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfVElNRVNUQU1QX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMF9EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfWkVST19FTkNPREVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RQMF9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTAorI2RlZmluZSBEUDBfRFBfRFBIWV9CU19TUl9TV0FQX0NOVExfX0RQSFlfTE9BRF9CU19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0JTX1NSX1NXQVBfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQMF9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9MT0FEX0JTX0NPVU5UX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0xPQURfQlNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0JTX1NSX1NXQVBfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFAwX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0xPQURfQlNfQ09VTlRfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vRFAwX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0wKKyNkZWZpbmUgRFAwX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0xfX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX19EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL0RQMF9EUF9NU0VfU0FUMF9TVEFUVVMKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFAwX0RQX01TRV9TQVQxX1NUQVRVUworI2RlZmluZSBEUDBfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU1JDM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDBfRFBfTVNFX1NBVDJfU1RBVFVTCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU1JDNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAwX0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TUkM1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU1JDNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU1JDNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQMF9EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQMF9EUF9NU0FfVElNSU5HX1BBUkFNMQorI2RlZmluZSBEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTFfX0RQX01TQV9WVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX01TQV9USU1JTkdfUEFSQU0xX19EUF9NU0FfSFRPVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTFfX0RQX01TQV9WVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTFfX0RQX01TQV9IVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDBfRFBfTVNBX1RJTUlOR19QQVJBTTIKKyNkZWZpbmUgRFAwX0RQX01TQV9USU1JTkdfUEFSQU0yX19EUF9NU0FfVlNUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9NU0FfVElNSU5HX1BBUkFNMl9fRFBfTVNBX0hTVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX01TQV9USU1JTkdfUEFSQU0yX19EUF9NU0FfVlNUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFAwX0RQX01TQV9USU1JTkdfUEFSQU0yX19EUF9NU0FfSFNUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAwX0RQX01TQV9USU1JTkdfUEFSQU0zCisjZGVmaW5lIERQMF9EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX1ZTWU5DV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9WU1lOQ1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFAwX0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfSFNZTkNXSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9IU1lOQ1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQMF9EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX1ZTWU5DV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIERQMF9EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX1ZTWU5DUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQMF9EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX0hTWU5DV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisjZGVmaW5lIERQMF9EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX0hTWU5DUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQMF9EUF9NU0FfVElNSU5HX1BBUkFNNAorI2RlZmluZSBEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTRfX0RQX01TQV9WSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX01TQV9USU1JTkdfUEFSQU00X19EUF9NU0FfSFdJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTRfX0RQX01TQV9WSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTRfX0RQX01TQV9IV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDBfRFBfTVNPX0NOVEwKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fTlVNX09GX1NTVExJTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19TVFJFQU1fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQVNQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FUUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BSVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FDTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfR1NQMF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19HU1AxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fTlVNX09GX1NTVExJTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fU0VDX1NUUkVBTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FTUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FUUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FJUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FDTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0dTUDBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0dTUDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFAwX0RQX01TT19DTlRMMQorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1AzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQNF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A2X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMF9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfTVBHX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAwX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19JU1JDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDZfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX01QR19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEUDBfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0lTUkNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EUDBfRFBfRFNDX0NOVEwKKyNkZWZpbmUgRFAwX0RQX0RTQ19DTlRMX19EUF9EU0NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9EU0NfQ05UTF9fRFBfRFNDX1NMSUNFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX0RTQ19DTlRMX19EUF9EU0NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFAwX0RQX0RTQ19DTlRMX19EUF9EU0NfU0xJQ0VfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vRFAwX0RQX1NFQ19DTlRMMgorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfUFBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19QUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9EUDBfRFBfU0VDX0NOVEwzCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDNfX0RQX1NFQ19HU1AxX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEwzX19EUF9TRUNfR1NQMl9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDNfX0RQX1NFQ19HU1AxX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDNfX0RQX1NFQ19HU1AyX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMF9EUF9TRUNfQ05UTDQKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMNF9fRFBfU0VDX0dTUDNfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDRfX0RQX1NFQ19HU1A0X0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMNF9fRFBfU0VDX0dTUDNfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMNF9fRFBfU0VDX0dTUDRfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAwX0RQX1NFQ19DTlRMNQorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw1X19EUF9TRUNfR1NQNV9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMNV9fRFBfU0VDX0dTUDZfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw1X19EUF9TRUNfR1NQNV9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw1X19EUF9TRUNfR1NQNl9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDBfRFBfU0VDX0NOVEw2CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDZfX0RQX1NFQ19HU1A3X0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw2X19EUF9TRUNfR1NQN19MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9EUDBfRFBfU0VDX0NOVEw3CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AwX1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMF9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDFfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AxX1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMl9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDJfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AzX1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQM19TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDRfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNF9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A1X1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDVfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNl9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A2X1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRFAwX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDdfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDBfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQN19TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AwX1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AwX1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AxX1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AxX1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AyX1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AyX1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AzX1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AzX1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A0X1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A0X1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A1X1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A1X1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A2X1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A2X1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A3X1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERQMF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A3X1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RQMF9EUF9EQl9DTlRMCisjZGVmaW5lIERQMF9EUF9EQl9DTlRMX19EUF9EQl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfREJfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAwX0RQX0RCX0NOVExfX0RQX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQMF9EUF9EQl9DTlRMX19EUF9EQl9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfREJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAwX0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQMF9EUF9EQl9DTlRMX19EUF9WVVBEQVRFX0RCX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfVEFLRU5fQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfREJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfREJfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfREJfVEFLRU5fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfREJfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfREJfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDBfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9UQUtFTl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9EUDBfRFBfTVNBX1ZCSURfTUlTQworI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfTVNBX01JU0MxX1NURVJFT1NZTkNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX01TQV9WQklEX01JU0NfX0RQX01TQV9NSVNDMV9TVEVSRU9TWU5DX09WRVJSSURFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMF9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMV9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDJfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFAwX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQxX09WRVJSSURFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMF9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMl9PVkVSUklERV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDZfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFAwX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQ2X0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfTVNBX01JU0MxX1NURVJFT1NZTkNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfTVNBX01JU0MxX1NURVJFT1NZTkNfT1ZFUlJJREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDFfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDJfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDFfT1ZFUlJJREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDJfT1ZFUlJJREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDZfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDBfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDZfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDBfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTgorI2RlZmluZSBEUDBfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAwX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NRVRBREFUQV9QQUNLRVRfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQMF9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTVNPX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDBfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMF9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMF9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQMF9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTVNPX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERQMF9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMF9EUF9EU0NfQllURVNfUEVSX1BJWEVMCisjZGVmaW5lIERQMF9EUF9EU0NfQllURVNfUEVSX1BJWEVMX19EUF9EU0NfQllURVNfUEVSX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfRFNDX0JZVEVTX1BFUl9QSVhFTF9fRFBfRFNDX0JZVEVTX1BFUl9QSVhFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9EUDBfRFBfQUxQTV9DTlRMCisjZGVmaW5lIERQMF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDBfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAwX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NUQU5EQllfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQMF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TVEFOREJZX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUDBfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfU1RBTkRCWV9JTU1FRElBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAwX0RQX0FMUE1fQ05UTF9fRFBfTElOS19UUkFJTklOR19TV0lUQ0hfQkVUV0VFTl9WSURFT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQMF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TVEFOREJZX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAwX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAwX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFAwX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NUQU5EQllfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFAwX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NUQU5EQllfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFAwX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NUQU5EQllfSU1NRURJQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAwX0RQX0FMUE1fQ05UTF9fRFBfTElOS19UUkFJTklOR19TV0lUQ0hfQkVUV0VFTl9WSURFT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFAwX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NUQU5EQllfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZGlnMV9kaXNwZGVjCisvL0RJRzFfRElHX0ZFX0NOVEwKKyNkZWZpbmUgRElHMV9ESUdfRkVfQ05UTF9fRElHX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfRElHX0ZFX0NOVExfX0RJR19TVEVSRU9TWU5DX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfU1RFUkVPU1lOQ19HQVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9ESUdfRkVfQ05UTF9fRElHX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzFfRElHX0ZFX0NOVExfX0RJR19ESUdJVEFMX0JZUEFTU19TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfSU5QVVRfUElYRUxfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfRElHX0ZFX0NOVExfX0RPTEJZX1ZJU0lPTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElHMV9ESUdfRkVfQ05UTF9fRE9MQllfVklTSU9OX01FVEFEQVRBX1BBQ0tFVF9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfU1lNQ0xLX0ZFX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfRElHX0ZFX0NOVExfX1RNRFNfUElYRUxfRU5DT0RJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMV9ESUdfRkVfQ05UTF9fVE1EU19DT0xPUl9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfU1RFUkVPU1lOQ19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfU1RFUkVPU1lOQ19HQVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfRElHSVRBTF9CWVBBU1NfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfSU5QVVRfUElYRUxfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ET0xCWV9WSVNJT05fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ET0xCWV9WSVNJT05fTUVUQURBVEFfUEFDS0VUX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19ESUdfU1lNQ0xLX0ZFX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19UTURTX1BJWEVMX0VOQ09ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESUcxX0RJR19GRV9DTlRMX19UTURTX0NPTE9SX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ESUcxX0RJR19PVVRQVVRfQ1JDX0NOVEwKKyNkZWZpbmUgRElHMV9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfRElHX09VVFBVVF9DUkNfQ05UTF9fRElHX09VVFBVVF9DUkNfTElOS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0RBVEFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19MSU5LX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMV9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19EQVRBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vRElHMV9ESUdfT1VUUFVUX0NSQ19SRVNVTFQKKyNkZWZpbmUgRElHMV9ESUdfT1VUUFVUX0NSQ19SRVNVTFRfX0RJR19PVVRQVVRfQ1JDX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfRElHX09VVFBVVF9DUkNfUkVTVUxUX19ESUdfT1VUUFVUX0NSQ19SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRkZGRkZMCisvL0RJRzFfRElHX0NMT0NLX1BBVFRFUk4KKyNkZWZpbmUgRElHMV9ESUdfQ0xPQ0tfUEFUVEVSTl9fRElHX0NMT0NLX1BBVFRFUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfRElHX0NMT0NLX1BBVFRFUk5fX0RJR19DTE9DS19QQVRURVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL0RJRzFfRElHX1RFU1RfUEFUVEVSTgorI2RlZmluZSBESUcxX0RJR19URVNUX1BBVFRFUk5fX0RJR19URVNUX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9ESUdfVEVTVF9QQVRURVJOX19ESUdfSEFMRl9DTE9DS19QQVRURVJOX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzFfRElHX1RFU1RfUEFUVEVSTl9fRElHX1JBTkRPTV9QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0RJR19URVNUX1BBVFRFUk5fX0RJR19SQU5ET01fUEFUVEVSTl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHMV9ESUdfVEVTVF9QQVRURVJOX19ESUdfVEVTVF9QQVRURVJOX0VYVEVSTkFMX1JFU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzFfRElHX1RFU1RfUEFUVEVSTl9fRElHX1NUQVRJQ19URVNUX1BBVFRFUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9ESUdfVEVTVF9QQVRURVJOX19ESUdfVEVTVF9QQVRURVJOX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9ESUdfVEVTVF9QQVRURVJOX19ESUdfSEFMRl9DTE9DS19QQVRURVJOX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMV9ESUdfVEVTVF9QQVRURVJOX19ESUdfUkFORE9NX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMV9ESUdfVEVTVF9QQVRURVJOX19ESUdfUkFORE9NX1BBVFRFUk5fUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHMV9ESUdfVEVTVF9QQVRURVJOX19ESUdfVEVTVF9QQVRURVJOX0VYVEVSTkFMX1JFU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHMV9ESUdfVEVTVF9QQVRURVJOX19ESUdfU1RBVElDX1RFU1RfUEFUVEVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vRElHMV9ESUdfUkFORE9NX1BBVFRFUk5fU0VFRAorI2RlZmluZSBESUcxX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9fRElHX1JBTl9QQVRfRFVSSU5HX0RFX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcxX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBESUcxX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19ESUdfUkFOX1BBVF9EVVJJTkdfREVfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9ESUcxX0RJR19GSUZPX1NUQVRVUworI2RlZmluZSBESUcxX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fTEVWRUxfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX1VTRV9PVkVSV1JJVEVfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19PVkVSV1JJVEVfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcxX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fRVJST1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0NBTF9BVkVSQUdFX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19NQVhJTVVNX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX01JTklNVU1fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESUcxX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fUkVBRF9DTE9DS19TUkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19DQUxJQlJBVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElHMV9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0ZPUkNFX1JFQ0FMX0FWRVJBR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUcxX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fRk9SQ0VfUkVDT01QX01JTk1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19MRVZFTF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19VU0VfT1ZFUldSSVRFX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19PVkVSV1JJVEVfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkNMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19FUlJPUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19DQUxfQVZFUkFHRV9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19NQVhJTVVNX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19NSU5JTVVNX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNDMDAwMDBMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19SRUFEX0NMT0NLX1NSQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19DQUxJQlJBVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19GT1JDRV9SRUNBTF9BVkVSQUdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERJRzFfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19GT1JDRV9SRUNPTVBfTUlOTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJRzFfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTAorI2RlZmluZSBESUcxX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzFfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzFfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzFfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzFfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfX0hETUlfR0VORVJJQzZfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0X19IRE1JX0dFTkVSSUM3X0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfX0hETUlfR0VORVJJQzZfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfX0hETUlfR0VORVJJQzdfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUcxX0hETUlfQ09OVFJPTAorI2RlZmluZSBESUcxX0hETUlfQ09OVFJPTF9fSERNSV9LRUVQT1VUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfREFUQV9TQ1JBTUJMRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzFfSERNSV9DT05UUk9MX19IRE1JX0NMT0NLX0NIQU5ORUxfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcxX0hETUlfQ09OVFJPTF9fSERNSV9OT19FWFRSQV9OVUxMX1BBQ0tFVF9GSUxMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfUEFDS0VUX0dFTl9WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzFfSERNSV9DT05UUk9MX19IRE1JX0VSUk9SX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0hETUlfQ09OVFJPTF9fSERNSV9FUlJPUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfVU5TQ1JBTUJMRURfQ09OVFJPTF9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0hETUlfQ09OVFJPTF9fSERNSV9ERUVQX0NPTE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfSERNSV9DT05UUk9MX19IRE1JX0RFRVBfQ09MT1JfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfS0VFUE9VVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfREFUQV9TQ1JBTUJMRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfQ0xPQ0tfQ0hBTk5FTF9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfTk9fRVhUUkFfTlVMTF9QQUNLRVRfRklMTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfUEFDS0VUX0dFTl9WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfRVJST1JfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfRVJST1JfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfVU5TQ1JBTUJMRURfQ09OVFJPTF9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfREVFUF9DT0xPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHMV9IRE1JX0NPTlRST0xfX0hETUlfREVFUF9DT0xPUl9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vRElHMV9IRE1JX1NUQVRVUworI2RlZmluZSBESUcxX0hETUlfU1RBVFVTX19IRE1JX0FDVElWRV9BVk1VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9IRE1JX1NUQVRVU19fSERNSV9BVURJT19QQUNLRVRfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0hETUlfU1RBVFVTX19IRE1JX1ZCSV9QQUNLRVRfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzFfSERNSV9TVEFUVVNfX0hETUlfRVJST1JfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElHMV9IRE1JX1NUQVRVU19fSERNSV9BQ1RJVkVfQVZNVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9IRE1JX1NUQVRVU19fSERNSV9BVURJT19QQUNLRVRfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHMV9IRE1JX1NUQVRVU19fSERNSV9WQklfUEFDS0VUX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRElHMV9IRE1JX1NUQVRVU19fSERNSV9FUlJPUl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKy8vRElHMV9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzFfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19ERUxBWV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fU0VORF9NQVhfUEFDS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FVRElPX1BBQ0tFVFNfUEVSX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fREVMQVlfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBESUcxX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fU0VORF9NQVhfUEFDS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcxX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fUEFDS0VUU19QRVJfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorLy9ESUcxX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMV9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzFfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9BVVRPX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMV9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfTl9NVUxUSVBMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9BVURJT19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NPVVJDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0FVVE9fU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX05fTVVMVElQTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0FVRElPX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHMV9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9OVUxMX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfR0NfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0dDX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHMV9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUcxX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0lTUkNfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfTlVMTF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfR0NfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfR0NfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJRzFfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRjAwMDBMCisvL0RJRzFfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDAKKyNkZWZpbmUgRElHMV9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9BVURJT19JTkZPX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzFfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfQVVESU9fSU5GT19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUcxX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX01QRUdfSU5GT19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9NUEVHX0lORk9fQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzFfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfQVVESU9fSU5GT19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzFfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfQVVESU9fSU5GT19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzFfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfTVBFR19JTkZPX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzFfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfTVBFR19JTkZPX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisvL0RJRzFfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDEKKyNkZWZpbmUgRElHMV9IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9fSERNSV9BVURJT19JTkZPX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDFfX0hETUlfTVBFR19JTkZPX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9fSERNSV9BVURJT19JTkZPX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRElHMV9IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9fSERNSV9NUEVHX0lORk9fTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzBfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzFfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzJfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzRfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzVfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzZfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzdfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RJRzFfSERNSV9HQworI2RlZmluZSBESUcxX0hETUlfR0NfX0hETUlfR0NfQVZNVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9IRE1JX0dDX19IRE1JX0dDX0FWTVVURV9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzFfSERNSV9HQ19fSERNSV9ERUZBVUxUX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0hETUlfR0NfX0hETUlfUEFDS0lOR19QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9IRE1JX0dDX19IRE1JX1BBQ0tJTkdfUEhBU0VfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzFfSERNSV9HQ19fSERNSV9HQ19BVk1VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzFfSERNSV9HQ19fSERNSV9HQ19BVk1VVEVfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzFfSERNSV9HQ19fSERNSV9ERUZBVUxUX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzFfSERNSV9HQ19fSERNSV9QQUNLSU5HX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERJRzFfSERNSV9HQ19fSERNSV9QQUNLSU5HX1BIQVNFX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RJRzFfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDIKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19MQVlPVVRfT1ZSRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfQVVESU9fTEFZT1VUX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0NIQU5ORUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9EUF9BVURJT19TVFJFQU1fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0hCUl9FTkFCTEVfT1ZSRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfNjA5NThfT1NGX09WUkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19MQVlPVVRfT1ZSRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19MQVlPVVRfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19DSEFOTkVMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9EUF9BVURJT19TVFJFQU1fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9IQlJfRU5BQkxFX09WUkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF82MDk1OF9PU0ZfT1ZSRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRElHMV9BRk1UX0lTUkMxXzAKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMV8wX19BRk1UX0lTUkNfQ09OVElOVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUcxX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19DT05USU5VRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vRElHMV9BRk1UX0lTUkMxXzEKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0lTUkMxXzIKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0lTUkMxXzMKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0lTUkMxXzQKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0lTUkMyXzAKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0lTUkMyXzEKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0lTUkMyXzIKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0lTUkMyXzMKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMjhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzI5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMzMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMl9fSERNSV9HRU5FUklDMl9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDJfX0hETUlfR0VORVJJQzNfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMl9fSERNSV9HRU5FUklDMl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMl9fSERNSV9HRU5FUklDM19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMworI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDNfX0hETUlfR0VORVJJQzRfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzX19IRE1JX0dFTkVSSUM1X0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDNfX0hETUlfR0VORVJJQzRfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDNfX0hETUlfR0VORVJJQzVfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUcxX0hETUlfREJfQ09OVFJPTAorI2RlZmluZSBESUcxX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzFfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUcxX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzFfSERNSV9EQl9DT05UUk9MX19WVVBEQVRFX0RCX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESUcxX0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfSERNSV9EQl9DT05UUk9MX19WVVBEQVRFX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfVEFLRU5fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHMV9IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfVEFLRU5fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vRElHMV9ETUVfQ09OVFJPTAorI2RlZmluZSBESUcxX0RNRV9DT05UUk9MX19NRVRBREFUQV9IVUJQX1JFUVVFU1RPUl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9ETUVfQ09OVFJPTF9fTUVUQURBVEFfRU5HSU5FX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzFfRE1FX0NPTlRST0xfX01FVEFEQVRBX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMV9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJRzFfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUcxX0RNRV9DT05UUk9MX19NRVRBREFUQV9IVUJQX1JFUVVFU1RPUl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBESUcxX0RNRV9DT05UUk9MX19NRVRBREFUQV9FTkdJTkVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcxX0RNRV9DT05UUk9MX19NRVRBREFUQV9TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcxX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUcxX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESUcxX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9UQUtFTl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUcxX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9ESUcxX0FGTVRfTVBFR19JTkZPMAorI2RlZmluZSBESUcxX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fQ0hFQ0tTVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX01CMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX01CMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcxX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fQ0hFQ0tTVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcxX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcxX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcxX0FGTVRfTVBFR19JTkZPMQorI2RlZmluZSBESUcxX0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fTUIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9BRk1UX01QRUdfSU5GTzFfX0FGTVRfTVBFR19JTkZPX01GX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19GUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcxX0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fTUIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcxX0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fTUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBESUcxX0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fRlJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9ESUcxX0FGTVRfR0VORVJJQ19IRFIKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0dFTkVSSUNfMAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcxX0FGTVRfR0VORVJJQ18xCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzFfQUZNVF9HRU5FUklDXzIKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEU4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEU4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEU5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEUxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEUxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0dFTkVSSUNfMworI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcxX0FGTVRfR0VORVJJQ180CisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzFfQUZNVF9HRU5FUklDXzUKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX0dFTkVSSUNfNgorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcxX0FGTVRfR0VORVJJQ183CisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMjhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTI5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUzMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzFfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMQorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfX0hETUlfR0VORVJJQzBfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxX19IRE1JX0dFTkVSSUMxX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfX0hETUlfR0VORVJJQzBfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfX0hETUlfR0VORVJJQzFfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUcxX0hETUlfQUNSXzMyXzAKKyNkZWZpbmUgRElHMV9IRE1JX0FDUl8zMl8wX19IRE1JX0FDUl9DVFNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfMzJfMF9fSERNSV9BQ1JfQ1RTXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL0RJRzFfSERNSV9BQ1JfMzJfMQorI2RlZmluZSBESUcxX0hETUlfQUNSXzMyXzFfX0hETUlfQUNSX05fMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9IRE1JX0FDUl8zMl8xX19IRE1JX0FDUl9OXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vRElHMV9IRE1JX0FDUl80NF8wCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfNDRfMF9fSERNSV9BQ1JfQ1RTXzQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcxX0hETUlfQUNSXzQ0XzBfX0hETUlfQUNSX0NUU180NF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9ESUcxX0hETUlfQUNSXzQ0XzEKKyNkZWZpbmUgRElHMV9IRE1JX0FDUl80NF8xX19IRE1JX0FDUl9OXzQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfNDRfMV9fSERNSV9BQ1JfTl80NF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL0RJRzFfSERNSV9BQ1JfNDhfMAorI2RlZmluZSBESUcxX0hETUlfQUNSXzQ4XzBfX0hETUlfQUNSX0NUU180OF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMV9IRE1JX0FDUl80OF8wX19IRE1JX0FDUl9DVFNfNDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vRElHMV9IRE1JX0FDUl80OF8xCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfNDhfMV9fSERNSV9BQ1JfTl80OF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0hETUlfQUNSXzQ4XzFfX0hETUlfQUNSX05fNDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9ESUcxX0hETUlfQUNSX1NUQVRVU18wCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfU1RBVFVTXzBfX0hETUlfQUNSX0NUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcxX0hETUlfQUNSX1NUQVRVU18wX19IRE1JX0FDUl9DVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9ESUcxX0hETUlfQUNSX1NUQVRVU18xCisjZGVmaW5lIERJRzFfSERNSV9BQ1JfU1RBVFVTXzFfX0hETUlfQUNSX05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0hETUlfQUNSX1NUQVRVU18xX19IRE1JX0FDUl9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9ESUcxX0FGTVRfQVVESU9fSU5GTzAKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0hFQ0tTVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0hFQ0tTVU1fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NIRUNLU1VNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc4MDBMCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NIRUNLU1VNX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL0RJRzFfQUZNVF9BVURJT19JTkZPMQorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19DQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fTFNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0RNX0lOSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19MRkVQQkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0NBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0xTVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc4MDBMCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0RNX0lOSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0xGRVBCTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisvL0RJRzFfQUZNVF82MDk1OF8wCisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0FURUdPUllfQ09ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0FURUdPUllfQ09ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfU09VUkNFX05VTUJFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vRElHMV9BRk1UXzYwOTU4XzEKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfQ1NfV09SRF9MRU5HVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X1ZBTElEX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19XT1JEX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9WQUxJRF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9ESUcxX0FGTVRfQVVESU9fQ1JDX0NPTlRST0wKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DSF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19TT1VSQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DSF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRElHMV9BRk1UX1JBTVBfQ09OVFJPTDAKKyNkZWZpbmUgRElHMV9BRk1UX1JBTVBfQ09OVFJPTDBfX0FGTVRfUkFNUF9NQVhfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9SQU1QX0NPTlRST0wwX19BRk1UX1JBTVBfREFUQV9TSUdOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHMV9BRk1UX1JBTVBfQ09OVFJPTDBfX0FGTVRfUkFNUF9NQVhfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKyNkZWZpbmUgRElHMV9BRk1UX1JBTVBfQ09OVFJPTDBfX0FGTVRfUkFNUF9EQVRBX1NJR05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHMV9BRk1UX1JBTVBfQ09OVFJPTDEKKyNkZWZpbmUgRElHMV9BRk1UX1JBTVBfQ09OVFJPTDFfX0FGTVRfUkFNUF9NSU5fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9SQU1QX0NPTlRST0wxX19BRk1UX0FVRElPX1RFU1RfQ0hfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX1JBTVBfQ09OVFJPTDFfX0FGTVRfUkFNUF9NSU5fQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKyNkZWZpbmUgRElHMV9BRk1UX1JBTVBfQ09OVFJPTDFfX0FGTVRfQVVESU9fVEVTVF9DSF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMV9BRk1UX1JBTVBfQ09OVFJPTDIKKyNkZWZpbmUgRElHMV9BRk1UX1JBTVBfQ09OVFJPTDJfX0FGTVRfUkFNUF9JTkNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9SQU1QX0NPTlRST0wyX19BRk1UX1JBTVBfSU5DX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RJRzFfQUZNVF9SQU1QX0NPTlRST0wzCisjZGVmaW5lIERJRzFfQUZNVF9SQU1QX0NPTlRST0wzX19BRk1UX1JBTVBfREVDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0FGTVRfUkFNUF9DT05UUk9MM19fQUZNVF9SQU1QX0RFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9ESUcxX0FGTVRfNjA5NThfMgorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl81X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMV9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl83X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERJRzFfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0RJRzFfQUZNVF9BVURJT19DUkNfUkVTVUxUCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19DUkNfUkVTVUxUX19BRk1UX0FVRElPX0NSQ19ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fQ1JDX1JFU1VMVF9fQUZNVF9BVURJT19DUkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0NSQ19SRVNVTFRfX0FGTVRfQVVESU9fQ1JDX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX0NSQ19SRVNVTFRfX0FGTVRfQVVESU9fQ1JDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkYwMEwKKy8vRElHMV9BRk1UX1NUQVRVUworI2RlZmluZSBESUcxX0FGTVRfU1RBVFVTX19BRk1UX0FVRElPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMV9BRk1UX1NUQVRVU19fQUZNVF9BWl9IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfQUZNVF9TVEFUVVNfX0FGTVRfQVVESU9fRklGT19PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMV9BRk1UX1NUQVRVU19fQUZNVF9BWl9BVURJT19FTkFCTEVfQ0hHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUcxX0FGTVRfU1RBVFVTX19BRk1UX0FVRElPX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcxX0FGTVRfU1RBVFVTX19BRk1UX0FaX0hCUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcxX0FGTVRfU1RBVFVTX19BRk1UX0FVRElPX0ZJRk9fT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfU1RBVFVTX19BRk1UX0FaX0FVRElPX0VOQUJMRV9DSEdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9ESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX1NBTVBMRV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9SRVNFVF9GSUZPX1dIRU5fQVVESU9fRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fVEVTVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX1RFU1RfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19GSUZPX09WRVJGTE9XX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX0NIQU5ORUxfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfNjA5NThfQ1NfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzFfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BWl9BVURJT19FTkFCTEVfQ0hHX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0JMQU5LX1RFU1RfREFUQV9PTl9FTkNfRU5CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fU0FNUExFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfUkVTRVRfRklGT19XSEVOX0FVRElPX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fVEVTVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fVEVTVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fRklGT19PVkVSRkxPV19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fQ0hBTk5FTF9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfNjA5NThfQ1NfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVpfQVVESU9fRU5BQkxFX0NIR19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQkxBTktfVEVTVF9EQVRBX09OX0VOQ19FTkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19MT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfQ09ORkxJQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19DT05GTElDVF9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfTE9DS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfQ09ORkxJQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfQ09ORkxJQ1RfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9ESUcxX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwCisjZGVmaW5lIERJRzFfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfQVVESU9fSU5GT19TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUcxX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX19BRk1UX0FVRElPX0lORk9fVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHMV9BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9NUEVHX0lORk9fVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzFfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfQVVESU9fSU5GT19TT1VSQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJRzFfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfQVVESU9fSU5GT19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJRzFfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfTVBFR19JTkZPX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL0RJRzFfQUZNVF9BVURJT19TUkNfQ09OVFJPTAorI2RlZmluZSBESUcxX0FGTVRfQVVESU9fU1JDX0NPTlRST0xfX0FGTVRfQVVESU9fU1JDX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9BRk1UX0FVRElPX1NSQ19DT05UUk9MX19BRk1UX0FVRElPX1NSQ19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKy8vRElHMV9ESUdfQkVfQ05UTAorI2RlZmluZSBESUcxX0RJR19CRV9DTlRMX19ESUdfRFVBTF9MSU5LX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9ESUdfQkVfQ05UTF9fRElHX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzFfRElHX0JFX0NOVExfX0RJR19SQl9TV0lUQ0hfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcxX0RJR19CRV9DTlRMX19ESUdfRkVfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9ESUdfQkVfQ05UTF9fRElHX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX0RJR19CRV9DTlRMX19ESUdfSFBEX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzFfRElHX0JFX0NOVExfX0RJR19EVUFMX0xJTktfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzFfRElHX0JFX0NOVExfX0RJR19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzFfRElHX0JFX0NOVExfX0RJR19SQl9TV0lUQ0hfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzFfRElHX0JFX0NOVExfX0RJR19GRV9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIERJRzFfRElHX0JFX0NOVExfX0RJR19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERJRzFfRElHX0JFX0NOVExfX0RJR19IUERfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0RJRzFfRElHX0JFX0VOX0NOVEwKKyNkZWZpbmUgRElHMV9ESUdfQkVfRU5fQ05UTF9fRElHX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfRElHX0JFX0VOX0NOVExfX0RJR19TWU1DTEtfQkVfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX0RJR19CRV9FTl9DTlRMX19ESUdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcxX0RJR19CRV9FTl9DTlRMX19ESUdfU1lNQ0xLX0JFX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9ESUcxX1RNRFNfQ05UTAorI2RlZmluZSBESUcxX1RNRFNfQ05UTF9fVE1EU19TWU5DX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9UTURTX0NOVExfX1RNRFNfU1lOQ19QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRElHMV9UTURTX0NPTlRST0xfQ0hBUgorI2RlZmluZSBESUcxX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjBfT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIxX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzFfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSMl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcxX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjNfT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHMV9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIwX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIxX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMV9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIyX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHMV9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIzX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKy8vRElHMV9UTURTX0NPTlRST0wwX0ZFRURCQUNLCisjZGVmaW5lIERJRzFfVE1EU19DT05UUk9MMF9GRUVEQkFDS19fVE1EU19DT05UUk9MMF9GRUVEQkFDS19TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9UTURTX0NPTlRST0wwX0ZFRURCQUNLX19UTURTX0NPTlRST0wwX0ZFRURCQUNLX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRElHMV9UTURTX0NPTlRST0wwX0ZFRURCQUNLX19UTURTX0NPTlRST0wwX0ZFRURCQUNLX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vRElHMV9UTURTX1NURVJFT1NZTkNfQ1RMX1NFTAorI2RlZmluZSBESUcxX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMX19UTURTX1NURVJFT1NZTkNfQ1RMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9UTURTX1NURVJFT1NZTkNfQ1RMX1NFTF9fVE1EU19TVEVSRU9TWU5DX0NUTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vRElHMV9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMQorI2RlZmluZSBESUcxX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMV9fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBESUcxX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9ESUcxX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zCisjZGVmaW5lIERJRzFfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERJRzFfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RJRzFfVE1EU19DVExfQklUUworI2RlZmluZSBESUcxX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9UTURTX0NUTF9CSVRTX19UTURTX0NUTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfVE1EU19DVExfQklUU19fVE1EU19DVEwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9UTURTX0NUTF9CSVRTX19UTURTX0NUTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcxX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9ESUcxX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MCisjZGVmaW5lIERJRzFfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX1NZTkNfRENCQUxfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMV9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX1RFU1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9URVNUX0lOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcxX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcxX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX1NZTkNfRENCQUxfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBESUcxX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfVEVTVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcxX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfVEVTVF9JTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESUcxX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9ESUcxX1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUgorI2RlZmluZSBESUcxX1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9fVE1EU19TWU5DX0RDQkFMX0NIQVIwMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9UTURTX1NZTkNfRENCQUxBTkNFX0NIQVJfX1RNRFNfU1lOQ19EQ0JBTF9DSEFSMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9fVE1EU19TWU5DX0RDQkFMX0NIQVIwMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBESUcxX1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9fVE1EU19TWU5DX0RDQkFMX0NIQVIxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9ESUcxX1RNRFNfQ1RMMF8xX0dFTl9DTlRMCisjZGVmaW5lIERJRzFfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJRzFfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX01PRFVMQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfVVNFX0ZFRURCQUNLX1BBVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0ZCX1NZTkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzFfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcxX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzFfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESUcxX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9NT0RVTEFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9VU0VfRkVFREJBQ0tfUEFUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0ZCX1NZTkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESUcxX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzFfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfMkJJVF9DT1VOVEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfTU9EVUxBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX1VTRV9GRUVEQkFDS19QQVRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0ZCX1NZTkNfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfTU9EVUxBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX1VTRV9GRUVEQkFDS19QQVRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0ZCX1NZTkNfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElHMV9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU18yQklUX0NPVU5URVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHMV9UTURTX0NUTDJfM19HRU5fQ05UTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzFfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9NT0RVTEFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX1VTRV9GRUVEQkFDS19QQVRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzFfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9GQl9TWU5DX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMV9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzFfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElHMV9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfTU9EVUxBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfVVNFX0ZFRURCQUNLX1BBVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzFfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19GQl9TWU5DX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElHMV9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9NT0RVTEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfVVNFX0ZFRURCQUNLX1BBVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfRkJfU1lOQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9NT0RVTEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfVVNFX0ZFRURCQUNLX1BBVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfRkJfU1lOQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESUcxX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9ESUcxX0RJR19WRVJTSU9OCisjZGVmaW5lIERJRzFfRElHX1ZFUlNJT05fX0RJR19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0RJR19WRVJTSU9OX19ESUdfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9ESUcxX0RJR19MQU5FX0VOQUJMRQorI2RlZmluZSBESUcxX0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUwRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMV9ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMUVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzFfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTJFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcxX0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUzRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHMV9ESUdfTEFORV9FTkFCTEVfX0RJR19DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTBFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzFfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTFFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzFfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTJFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzFfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERJRzFfRElHX0xBTkVfRU5BQkxFX19ESUdfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RJRzFfQUZNVF9DTlRMCisjZGVmaW5lIERJRzFfQUZNVF9DTlRMX19BRk1UX0FVRElPX0NMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0FGTVRfQ05UTF9fQUZNVF9BVURJT19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9BRk1UX0NOVExfX0FGTVRfQVVESU9fQ0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9BRk1UX0NOVExfX0FGTVRfQVVESU9fQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDEKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESUcxX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzFfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRElHMV9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1CisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMF9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzBfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMxX0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMV9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzJfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMyX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDM19JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzNfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM0X0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNF9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzVfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM1X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNl9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzZfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElHMV9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM3X0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJRzFfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDN19JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzBfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzBfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzFfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzFfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzJfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzJfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzNfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzNfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzRfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzRfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzVfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzVfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzZfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzZfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzdfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESUcxX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzdfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9ESUcxX0ZPUkNFX0RJR19ESVNBQkxFCisjZGVmaW5lIERJRzFfRk9SQ0VfRElHX0RJU0FCTEVfX0ZPUkNFX0RJR19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcxX0ZPUkNFX0RJR19ESVNBQkxFX19GT1JDRV9ESUdfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kcDFfZGlzcGRlYworLy9EUDFfRFBfTElOS19DTlRMCisjZGVmaW5lIERQMV9EUF9MSU5LX0NOVExfX0RQX0xJTktfVFJBSU5JTkdfQ09NUExFVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfTElOS19DTlRMX19EUF9MSU5LX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX0xJTktfQ05UTF9fRFBfRU1CRURERURfUEFORUxfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUDFfRFBfTElOS19DTlRMX19EUF9MSU5LX1RSQUlOSU5HX0NPTVBMRVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDFfRFBfTElOS19DTlRMX19EUF9MSU5LX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDFfRFBfTElOS19DTlRMX19EUF9FTUJFRERFRF9QQU5FTF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9EUDFfRFBfUElYRUxfRk9STUFUCisjZGVmaW5lIERQMV9EUF9QSVhFTF9GT1JNQVRfX0RQX1BJWEVMX0VOQ09ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfUElYRUxfRk9STUFUX19EUF9DT01QT05FTlRfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMV9EUF9QSVhFTF9GT1JNQVRfX0RQX1BJWEVMX0NPTUJJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFAxX0RQX1BJWEVMX0ZPUk1BVF9fRFBfUElYRUxfRU5DT0RJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAxX0RQX1BJWEVMX0ZPUk1BVF9fRFBfQ09NUE9ORU5UX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1BJWEVMX0ZPUk1BVF9fRFBfUElYRUxfQ09NQklORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vRFAxX0RQX01TQV9DT0xPUklNRVRSWQorI2RlZmluZSBEUDFfRFBfTVNBX0NPTE9SSU1FVFJZX19EUF9NU0FfTUlTQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMV9EUF9NU0FfQ09MT1JJTUVUUllfX0RQX01TQV9NSVNDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RQMV9EUF9DT05GSUcKKyNkZWZpbmUgRFAxX0RQX0NPTkZJR19fRFBfVURJX0xBTkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9DT05GSUdfX0RQX1VESV9MQU5FU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0RQMV9EUF9WSURfU1RSRUFNX0NOVEwKKyNkZWZpbmUgRFAxX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTX0RFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDFfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fQ0hBTkdFX0tFRVBPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAxX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAxX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNfREVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFAxX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9DSEFOR0VfS0VFUE9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vRFAxX0RQX1NURUVSX0ZJRk8KKyNkZWZpbmUgRFAxX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX0ZJRk9fUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFAxX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQMV9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUDFfRFBfU1RFRVJfRklGT19fRFBfVFVfT1ZFUkZMT1dfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX1NURUVSX0ZJRk9fX0RQX1RVX09WRVJGTE9XX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMV9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9GSUZPX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMV9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMV9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQMV9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERQMV9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERQMV9EUF9TVEVFUl9GSUZPX19EUF9UVV9PVkVSRkxPV19GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMV9EUF9TVEVFUl9GSUZPX19EUF9UVV9PVkVSRkxPV19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RQMV9EUF9NU0FfTUlTQworI2RlZmluZSBEUDFfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMV9EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDFfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUDFfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEUDFfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEUDFfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EUDFfRFBfVklEX1RJTUlORworI2RlZmluZSBEUDFfRFBfVklEX1RJTUlOR19fRFBfVklEX01fTl9ET1VCTEVfQlVGRkVSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAxX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9NX05fR0VOX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMV9EUF9WSURfVElNSU5HX19EUF9WSURfTl9NVUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDFfRFBfVklEX1RJTUlOR19fRFBfVklEX01fRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAxX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9OX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDFfRFBfVklEX1RJTUlOR19fRFBfVklEX01fTl9ET1VCTEVfQlVGRkVSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDFfRFBfVklEX1RJTUlOR19fRFBfVklEX01fTl9HRU5fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDFfRFBfVklEX1RJTUlOR19fRFBfVklEX05fTVVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBEUDFfRFBfVklEX1RJTUlOR19fRFBfVklEX01fRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEUDFfRFBfVklEX1RJTUlOR19fRFBfVklEX05fRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EUDFfRFBfVklEX04KKyNkZWZpbmUgRFAxX0RQX1ZJRF9OX19EUF9WSURfTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9WSURfTl9fRFBfVklEX05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQMV9EUF9WSURfTQorI2RlZmluZSBEUDFfRFBfVklEX01fX0RQX1ZJRF9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX1ZJRF9NX19EUF9WSURfTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAxX0RQX0xJTktfRlJBTUlOR19DTlRMCisjZGVmaW5lIERQMV9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9fRFBfSURMRV9CU19JTlRFUlZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX1ZCSURfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMV9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9fRFBfVklEX0VOSEFOQ0VEX0ZSQU1FX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFAxX0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9JRExFX0JTX0lOVEVSVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgRFAxX0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9WQklEX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9WSURfRU5IQU5DRURfRlJBTUVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRFAxX0RQX0hCUjJfRVlFX1BBVFRFUk4KKyNkZWZpbmUgRFAxX0RQX0hCUjJfRVlFX1BBVFRFUk5fX0RQX0hCUjJfRVlFX1BBVFRFUk5fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9IQlIyX0VZRV9QQVRURVJOX19EUF9IQlIyX0VZRV9QQVRURVJOX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RQMV9EUF9WSURfTVNBX1ZCSUQKKyNkZWZpbmUgRFAxX0RQX1ZJRF9NU0FfVkJJRF9fRFBfVklEX01TQV9MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9WSURfTVNBX1ZCSURfX0RQX1ZJRF9WQklEX0ZJRUxEX1BPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAxX0RQX1ZJRF9NU0FfVkJJRF9fRFBfVklEX01TQV9MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgRFAxX0RQX1ZJRF9NU0FfVkJJRF9fRFBfVklEX1ZCSURfRklFTERfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFAxX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTAorI2RlZmluZSBEUDFfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNBQkxFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQMV9EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUDFfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDFfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDFfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9EUDFfRFBfRFBIWV9DTlRMCisjZGVmaW5lIERQMV9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQMV9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUDFfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfUkVBRFlfU0hBRE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQMV9EUF9EUEhZX0NOVExfX0RQSFlfRkVDX0FDVElWRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUDFfRFBfRFBIWV9DTlRMX19EUEhZX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9EUEhZX0NOVExfX0RQSFlfU0tFV19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfUkVBRFlfU0hBRE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfQUNUSVZFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ05UTF9fRFBIWV9TS0VXX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFAxX0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX1RSQUlOSU5HX1BBVFRFUk5fU0VMX19EUEhZX1RSQUlOSU5HX1BBVFRFUk5fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0RQMV9EUF9EUEhZX1NZTTAKKyNkZWZpbmUgRFAxX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDFfRFBfRFBIWV9TWU0wX19EUEhZX1NZTTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMV9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQMV9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIERQMV9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGMDAwMDBMCisvL0RQMV9EUF9EUEhZX1NZTTEKKyNkZWZpbmUgRFAxX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU00X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDFfRFBfRFBIWV9TWU0xX19EUEhZX1NZTTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMV9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQMV9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIERQMV9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGMDAwMDBMCisvL0RQMV9EUF9EUEhZX1NZTTIKKyNkZWZpbmUgRFAxX0RQX0RQSFlfU1lNMl9fRFBIWV9TWU03X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX1NZTTJfX0RQSFlfU1lNOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDFfRFBfRFBIWV9TWU0yX19EUEhZX1NZTTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEUDFfRFBfRFBIWV9TWU0yX19EUEhZX1NZTThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorLy9EUDFfRFBfRFBIWV84QjEwQl9DTlRMCisjZGVmaW5lIERQMV9EUF9EUEhZXzhCMTBCX0NOVExfX0RQSFlfOEIxMEJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDFfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX0VYVF9ESVNQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9EUEhZXzhCMTBCX0NOVExfX0RQSFlfOEIxMEJfQ1VSX0RJU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAxX0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9FWFRfRElTUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9DVVJfRElTUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFAxX0RQX0RQSFlfUFJCU19DTlRMCisjZGVmaW5lIERQMV9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfRFBIWV9QUkJTX0NOVExfX0RQSFlfUFJCU19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAxX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMV9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMV9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERQMV9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX1NFRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGMDBMCisvL0RQMV9EUF9EUEhZX1NDUkFNX0NOVEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0FEVkFOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9CU19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfS0NPREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDFfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDFfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9BRFZBTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDFfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9CU19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRjAwTAorI2RlZmluZSBEUDFfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9LQ09ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUDFfRFBfRFBIWV9DUkNfRU4KKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19FTl9fRFBIWV9DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX1JFU1VMVF9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19DT05UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19SRVNVTFRfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRFAxX0RQX0RQSFlfQ1JDX0NOVEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfRFBIWV9DUkNfQ05UTF9fRFBIWV9DUkNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0RQMV9EUF9EUEhZX0NSQ19SRVNVTFQKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDFfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFAxX0RQX0RQSFlfQ1JDX01TVF9DTlRMCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19NU1RfQ05UTF9fRFBIWV9DUkNfTVNUX0ZJUlNUX1NMT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfRFBIWV9DUkNfTVNUX0NOVExfX0RQSFlfQ1JDX01TVF9MQVNUX1NMT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX01TVF9DTlRMX19EUEhZX0NSQ19NU1RfRklSU1RfU0xPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX01TVF9DTlRMX19EUEhZX0NSQ19NU1RfTEFTVF9TTE9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKy8vRFAxX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVMKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDFfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19fRFBIWV9DUkNfTVNUX1BIQVNFX0VSUk9SX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMV9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfRVJST1JfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0RQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkcKKyNkZWZpbmUgRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9SWF9GQVNUX1RSQUlOSU5HX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfU1dfRkFTVF9UUkFJTklOR19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDFfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVkJMQU5LX0VER0VfREVURUNUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1RQMV9USU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfRkFTVF9UUkFJTklOR19UUDJfVElNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9SWF9GQVNUX1RSQUlOSU5HX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9TV19GQVNUX1RSQUlOSU5HX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1ZCTEFOS19FREdFX0RFVEVDVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1RQMV9USU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkYwMEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1RQMl9USU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVMKKyNkZWZpbmUgRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMV9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RQMV9EUF9TRUNfQ05UTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19TVFJFQU1fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMX19EUF9TRUNfQVNQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTF9fRFBfU0VDX0FUUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19BSVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMX19EUF9TRUNfQUNNX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AwX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQMl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQNV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A2X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMX19EUF9TRUNfTVBHX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19TVFJFQU1fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19BU1BfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19BVFBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19BSVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19BQ01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AwX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AxX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AyX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AzX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A0X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A1X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A2X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A3X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVExfX0RQX1NFQ19NUEdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9EUDFfRFBfU0VDX0NOVEwxCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDFfX0RQX1NFQ19JU1JDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMV9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDJfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AzX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDVfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A2X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQN19MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfSVNSQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMV9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMl9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQM19MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNV9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNl9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQN19MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDFfRFBfU0VDX0ZSQU1JTkcxCisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzFfX0RQX1NFQ19GUkFNRV9TVEFSVF9MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfU0VDX0ZSQU1JTkcxX19EUF9TRUNfVkJMQU5LX1RSQU5TTUlUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzFfX0RQX1NFQ19GUkFNRV9TVEFSVF9MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzFfX0RQX1NFQ19WQkxBTktfVFJBTlNNSVRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMV9EUF9TRUNfRlJBTUlORzIKKyNkZWZpbmUgRFAxX0RQX1NFQ19GUkFNSU5HMl9fRFBfU0VDX1NUQVJUX1BPU0lUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzJfX0RQX1NFQ19IQkxBTktfVFJBTlNNSVRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX1NFQ19GUkFNSU5HMl9fRFBfU0VDX1NUQVJUX1BPU0lUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFAxX0RQX1NFQ19GUkFNSU5HMl9fRFBfU0VDX0hCTEFOS19UUkFOU01JVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAxX0RQX1NFQ19GUkFNSU5HMworI2RlZmluZSBEUDFfRFBfU0VDX0ZSQU1JTkczX19EUF9TRUNfSURMRV9GUkFNRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX1NFQ19GUkFNSU5HM19fRFBfU0VDX0lETEVfVFJBTlNNSVRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDFfRFBfU0VDX0ZSQU1JTkczX19EUF9TRUNfSURMRV9GUkFNRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEUDFfRFBfU0VDX0ZSQU1JTkczX19EUF9TRUNfSURMRV9UUkFOU01JVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDFfRFBfU0VDX0ZSQU1JTkc0CisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzRfX0RQX1NTVF9TRFBfU1BMSVRUSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQ09MTElTSU9OX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19DT0xMSVNJT05fQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAxX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0FVRElPX01VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDFfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQVVESU9fTVVURV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzRfX0RQX1NTVF9TRFBfU1BMSVRUSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19DT0xMSVNJT05fU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19DT0xMSVNJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19BVURJT19NVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERQMV9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19BVURJT19NVVRFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RQMV9EUF9TRUNfQVVEX04KKyNkZWZpbmUgRFAxX0RQX1NFQ19BVURfTl9fRFBfU0VDX0FVRF9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9TRUNfQVVEX05fX0RQX1NFQ19BVURfTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQMV9EUF9TRUNfQVVEX05fUkVBREJBQ0sKKyNkZWZpbmUgRFAxX0RQX1NFQ19BVURfTl9SRUFEQkFDS19fRFBfU0VDX0FVRF9OX1JFQURCQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9TRUNfQVVEX05fUkVBREJBQ0tfX0RQX1NFQ19BVURfTl9SRUFEQkFDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQMV9EUF9TRUNfQVVEX00KKyNkZWZpbmUgRFAxX0RQX1NFQ19BVURfTV9fRFBfU0VDX0FVRF9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9TRUNfQVVEX01fX0RQX1NFQ19BVURfTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQMV9EUF9TRUNfQVVEX01fUkVBREJBQ0sKKyNkZWZpbmUgRFAxX0RQX1NFQ19BVURfTV9SRUFEQkFDS19fRFBfU0VDX0FVRF9NX1JFQURCQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9TRUNfQVVEX01fUkVBREJBQ0tfX0RQX1NFQ19BVURfTV9SRUFEQkFDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQMV9EUF9TRUNfVElNRVNUQU1QCisjZGVmaW5lIERQMV9EUF9TRUNfVElNRVNUQU1QX19EUF9TRUNfVElNRVNUQU1QX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfU0VDX1RJTUVTVEFNUF9fRFBfU0VDX1RJTUVTVEFNUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EUDFfRFBfU0VDX1BBQ0tFVF9DTlRMCisjZGVmaW5lIERQMV9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19BU1BfQ09ESU5HX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDFfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAxX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMV9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19BU1BfQ0hBTk5FTF9DT1VOVF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9DT0RJTkdfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgRFAxX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX1ZFUlNJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9DSEFOTkVMX0NPVU5UX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vRFAxX0RQX01TRV9SQVRFX0NOVEwKKyNkZWZpbmUgRFAxX0RQX01TRV9SQVRFX0NOVExfX0RQX01TRV9SQVRFX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9NU0VfUkFURV9DTlRMX19EUF9NU0VfUkFURV9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFAxX0RQX01TRV9SQVRFX0NOVExfX0RQX01TRV9SQVRFX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgRFAxX0RQX01TRV9SQVRFX0NOVExfX0RQX01TRV9SQVRFX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFAxX0RQX01TRV9SQVRFX1VQREFURQorI2RlZmluZSBEUDFfRFBfTVNFX1JBVEVfVVBEQVRFX19EUF9NU0VfUkFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX01TRV9SQVRFX1VQREFURV9fRFBfTVNFX1JBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRFAxX0RQX01TRV9TQVQwCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TUkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NSQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TUkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TUkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQMV9EUF9NU0VfU0FUMQorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU1JDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TUkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU1JDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU1JDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDFfRFBfTVNFX1NBVDIKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NSQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU1JDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NSQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NSQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFAxX0RQX01TRV9TQVRfVVBEQVRFCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUX1VQREFURV9fRFBfTVNFX1NBVF9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVF9VUERBVEVfX0RQX01TRV8xNl9NVFBfS0VFUE9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVRfVVBEQVRFX19EUF9NU0VfU0FUX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVRfVVBEQVRFX19EUF9NU0VfMTZfTVRQX0tFRVBPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRFAxX0RQX01TRV9MSU5LX1RJTUlORworI2RlZmluZSBEUDFfRFBfTVNFX0xJTktfVElNSU5HX19EUF9NU0VfTElOS19GUkFNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX01TRV9MSU5LX1RJTUlOR19fRFBfTVNFX0xJTktfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDFfRFBfTVNFX0xJTktfVElNSU5HX19EUF9NU0VfTElOS19GUkFNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEUDFfRFBfTVNFX0xJTktfVElNSU5HX19EUF9NU0VfTElOS19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9EUDFfRFBfTVNFX01JU0NfQ05UTAorI2RlZmluZSBEUDFfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX0JMQU5LX0NPREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX01TRV9NSVNDX0NOVExfX0RQX01TRV9USU1FU1RBTVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMV9EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfWkVST19FTkNPREVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDFfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX0JMQU5LX0NPREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDFfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX1RJTUVTVEFNUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDFfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX1pFUk9fRU5DT0RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EUDFfRFBfRFBIWV9CU19TUl9TV0FQX0NOVEwKKyNkZWZpbmUgRFAxX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0xPQURfQlNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9CU19TUl9TV0FQX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUDFfRFBfRFBIWV9CU19TUl9TV0FQX0NOVExfX0RQSFlfTE9BRF9CU19DT1VOVF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9MT0FEX0JTX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQMV9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9CU19TUl9TV0FQX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQMV9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9MT0FEX0JTX0NPVU5UX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0RQMV9EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MCisjZGVmaW5lIERQMV9EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX19EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTF9fRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorLy9EUDFfRFBfTVNFX1NBVDBfU1RBVFVTCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU1JDMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU1JDMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU1JDMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQMV9EUF9NU0VfU0FUMV9TVEFUVVMKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFAxX0RQX01TRV9TQVQyX1NUQVRVUworI2RlZmluZSBEUDFfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMV9EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU1JDNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDFfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDFfRFBfTVNBX1RJTUlOR19QQVJBTTEKKyNkZWZpbmUgRFAxX0RQX01TQV9USU1JTkdfUEFSQU0xX19EUF9NU0FfVlRPVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9NU0FfVElNSU5HX1BBUkFNMV9fRFBfTVNBX0hUT1RBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX01TQV9USU1JTkdfUEFSQU0xX19EUF9NU0FfVlRPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFAxX0RQX01TQV9USU1JTkdfUEFSQU0xX19EUF9NU0FfSFRPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAxX0RQX01TQV9USU1JTkdfUEFSQU0yCisjZGVmaW5lIERQMV9EUF9NU0FfVElNSU5HX1BBUkFNMl9fRFBfTVNBX1ZTVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfTVNBX1RJTUlOR19QQVJBTTJfX0RQX01TQV9IU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9NU0FfVElNSU5HX1BBUkFNMl9fRFBfTVNBX1ZTVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQMV9EUF9NU0FfVElNSU5HX1BBUkFNMl9fRFBfTVNBX0hTVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMV9EUF9NU0FfVElNSU5HX1BBUkFNMworI2RlZmluZSBEUDFfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9WU1lOQ1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfVlNZTkNQT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQMV9EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX0hTWU5DV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfSFNZTkNQT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUDFfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9WU1lOQ1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBEUDFfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9WU1lOQ1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDFfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9IU1lOQ1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorI2RlZmluZSBEUDFfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9IU1lOQ1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUDFfRFBfTVNBX1RJTUlOR19QQVJBTTQKKyNkZWZpbmUgRFAxX0RQX01TQV9USU1JTkdfUEFSQU00X19EUF9NU0FfVkhFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9NU0FfVElNSU5HX1BBUkFNNF9fRFBfTVNBX0hXSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX01TQV9USU1JTkdfUEFSQU00X19EUF9NU0FfVkhFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFAxX0RQX01TQV9USU1JTkdfUEFSQU00X19EUF9NU0FfSFdJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAxX0RQX01TT19DTlRMCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX05VTV9PRl9TU1RMSU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfU1RSRUFNX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FTUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BVFBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDFfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQUlQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BQ01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0dTUDBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDFfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfR1NQMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX05VTV9PRl9TU1RMSU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19TVFJFQU1fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BU1BfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BVFBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BSVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BQ01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19HU1AwX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19HU1AxX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RQMV9EUF9NU09fQ05UTDEKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1AyX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQM19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMV9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQNl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A3X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDFfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX01QR19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMV9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfSVNSQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1AyX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1AzX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A0X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A1X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A2X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A3X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19NUEdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19JU1JDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFAxX0RQX0RTQ19DTlRMCisjZGVmaW5lIERQMV9EUF9EU0NfQ05UTF9fRFBfRFNDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfRFNDX0NOVExfX0RQX0RTQ19TTElDRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9EU0NfQ05UTF9fRFBfRFNDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERQMV9EUF9EU0NfQ05UTF9fRFBfRFNDX1NMSUNFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL0RQMV9EUF9TRUNfQ05UTDIKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1BQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfUFBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRFAxX0RQX1NFQ19DTlRMMworI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwzX19EUF9TRUNfR1NQMV9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMM19fRFBfU0VDX0dTUDJfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwzX19EUF9TRUNfR1NQMV9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEwzX19EUF9TRUNfR1NQMl9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDFfRFBfU0VDX0NOVEw0CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDRfX0RQX1NFQ19HU1AzX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw0X19EUF9TRUNfR1NQNF9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDRfX0RQX1NFQ19HU1AzX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDRfX0RQX1NFQ19HU1A0X0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMV9EUF9TRUNfQ05UTDUKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMNV9fRFBfU0VDX0dTUDVfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDVfX0RQX1NFQ19HU1A2X0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMNV9fRFBfU0VDX0dTUDVfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMNV9fRFBfU0VDX0dTUDZfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAxX0RQX1NFQ19DTlRMNgorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw2X19EUF9TRUNfR1NQN19MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMNl9fRFBfU0VDX0dTUDdfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRFAxX0RQX1NFQ19DTlRMNworI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMF9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDBfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AxX1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMV9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDJfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AyX1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQM19TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDNfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A0X1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDRfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNV9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A1X1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDZfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNl9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERQMV9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A3X1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFAxX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDdfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMF9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMF9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMV9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMV9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMl9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMl9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQM19TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQM19TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNF9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNF9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNV9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNV9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNl9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNl9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQN19TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEUDFfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQN19TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EUDFfRFBfREJfQ05UTAorI2RlZmluZSBEUDFfRFBfREJfQ05UTF9fRFBfREJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX0RCX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMV9EUF9EQl9DTlRMX19EUF9EQl9UQUtFTl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDFfRFBfREJfQ05UTF9fRFBfREJfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX0RCX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMV9EUF9EQl9DTlRMX19EUF9WVVBEQVRFX0RCX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUDFfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9EQl9DTlRMX19EUF9WVVBEQVRFX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX0RCX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX0RCX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX0RCX1RBS0VOX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX0RCX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX0RCX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFAxX0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfVEFLRU5fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vRFAxX0RQX01TQV9WQklEX01JU0MKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX01TQV9NSVNDMV9TVEVSRU9TWU5DX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9NU0FfVkJJRF9NSVNDX19EUF9NU0FfTUlTQzFfU1RFUkVPU1lOQ19PVkVSUklERV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDFfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDFfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQyX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQMV9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMV9PVkVSUklERV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDFfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDJfT1ZFUlJJREVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQ2X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQMV9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklENl9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX01TQV9NSVNDMV9TVEVSRU9TWU5DX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX01TQV9NSVNDMV9TVEVSRU9TWU5DX09WRVJSSURFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQxX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQyX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQxX09WRVJSSURFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQyX09WRVJSSURFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQ2X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFAxX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQ2X0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAxX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT04KKyNkZWZpbmUgRFAxX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NRVRBREFUQV9QQUNLRVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMV9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDFfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01TT19NRVRBREFUQV9QQUNLRVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAxX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NRVRBREFUQV9QQUNLRVRfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDFfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDFfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDFfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01TT19NRVRBREFUQV9QQUNLRVRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEUDFfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDFfRFBfRFNDX0JZVEVTX1BFUl9QSVhFTAorI2RlZmluZSBEUDFfRFBfRFNDX0JZVEVTX1BFUl9QSVhFTF9fRFBfRFNDX0JZVEVTX1BFUl9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX0RTQ19CWVRFU19QRVJfUElYRUxfX0RQX0RTQ19CWVRFU19QRVJfUElYRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vRFAxX0RQX0FMUE1fQ05UTAorI2RlZmluZSBEUDFfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAxX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQMV9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TVEFOREJZX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUDFfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU1RBTkRCWV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFAxX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NUQU5EQllfSU1NRURJQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMV9EUF9BTFBNX0NOVExfX0RQX0xJTktfVFJBSU5JTkdfU1dJVENIX0JFVFdFRU5fVklERU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDFfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfU1RBTkRCWV9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMV9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMV9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQMV9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TVEFOREJZX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQMV9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TVEFOREJZX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERQMV9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TVEFOREJZX0lNTUVESUFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMV9EUF9BTFBNX0NOVExfX0RQX0xJTktfVFJBSU5JTkdfU1dJVENIX0JFVFdFRU5fVklERU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQMV9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TVEFOREJZX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2RpZzJfZGlzcGRlYworLy9ESUcyX0RJR19GRV9DTlRMCisjZGVmaW5lIERJRzJfRElHX0ZFX0NOVExfX0RJR19TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0RJR19GRV9DTlRMX19ESUdfU1RFUkVPU1lOQ19TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX1NURVJFT1NZTkNfR0FURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfRElHX0ZFX0NOVExfX0RJR19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUcyX0RJR19GRV9DTlRMX19ESUdfRElHSVRBTF9CWVBBU1NfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX0lOUFVUX1BJWEVMX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0RJR19GRV9DTlRMX19ET0xCWV9WSVNJT05fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJRzJfRElHX0ZFX0NOVExfX0RPTEJZX1ZJU0lPTl9NRVRBREFUQV9QQUNLRVRfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX1NZTUNMS19GRV9PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX0RJR19GRV9DTlRMX19UTURTX1BJWEVMX0VOQ09ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzJfRElHX0ZFX0NOVExfX1RNRFNfQ09MT1JfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX1NURVJFT1NZTkNfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX1NURVJFT1NZTkNfR0FURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX0RJR0lUQUxfQllQQVNTX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX0lOUFVUX1BJWEVMX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRE9MQllfVklTSU9OX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRE9MQllfVklTSU9OX01FVEFEQVRBX1BBQ0tFVF9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fRElHX1NZTUNMS19GRV9PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fVE1EU19QSVhFTF9FTkNPRElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElHMl9ESUdfRkVfQ05UTF9fVE1EU19DT0xPUl9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vRElHMl9ESUdfT1VUUFVUX0NSQ19DTlRMCisjZGVmaW5lIERJRzJfRElHX09VVFBVVF9DUkNfQ05UTF9fRElHX09VVFBVVF9DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0xJTktfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19EQVRBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfRElHX09VVFBVVF9DUkNfQ05UTF9fRElHX09VVFBVVF9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfRElHX09VVFBVVF9DUkNfQ05UTF9fRElHX09VVFBVVF9DUkNfTElOS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzJfRElHX09VVFBVVF9DUkNfQ05UTF9fRElHX09VVFBVVF9DUkNfREFUQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisvL0RJRzJfRElHX09VVFBVVF9DUkNfUkVTVUxUCisjZGVmaW5lIERJRzJfRElHX09VVFBVVF9DUkNfUkVTVUxUX19ESUdfT1VUUFVUX0NSQ19SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0RJR19PVVRQVVRfQ1JDX1JFU1VMVF9fRElHX09VVFBVVF9DUkNfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkZGRkZGTAorLy9ESUcyX0RJR19DTE9DS19QQVRURVJOCisjZGVmaW5lIERJRzJfRElHX0NMT0NLX1BBVFRFUk5fX0RJR19DTE9DS19QQVRURVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0RJR19DTE9DS19QQVRURVJOX19ESUdfQ0xPQ0tfUEFUVEVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9ESUcyX0RJR19URVNUX1BBVFRFUk4KKyNkZWZpbmUgRElHMl9ESUdfVEVTVF9QQVRURVJOX19ESUdfVEVTVF9QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfRElHX1RFU1RfUEFUVEVSTl9fRElHX0hBTEZfQ0xPQ0tfUEFUVEVSTl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcyX0RJR19URVNUX1BBVFRFUk5fX0RJR19SQU5ET01fUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9ESUdfVEVTVF9QQVRURVJOX19ESUdfUkFORE9NX1BBVFRFUk5fUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzJfRElHX1RFU1RfUEFUVEVSTl9fRElHX1RFU1RfUEFUVEVSTl9FWFRFUk5BTF9SRVNFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUcyX0RJR19URVNUX1BBVFRFUk5fX0RJR19TVEFUSUNfVEVTVF9QQVRURVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfRElHX1RFU1RfUEFUVEVSTl9fRElHX1RFU1RfUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfRElHX1RFU1RfUEFUVEVSTl9fRElHX0hBTEZfQ0xPQ0tfUEFUVEVSTl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzJfRElHX1RFU1RfUEFUVEVSTl9fRElHX1JBTkRPTV9QQVRURVJOX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzJfRElHX1RFU1RfUEFUVEVSTl9fRElHX1JBTkRPTV9QQVRURVJOX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzJfRElHX1RFU1RfUEFUVEVSTl9fRElHX1RFU1RfUEFUVEVSTl9FWFRFUk5BTF9SRVNFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJRzJfRElHX1RFU1RfUEFUVEVSTl9fRElHX1NUQVRJQ19URVNUX1BBVFRFUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RJRzJfRElHX1JBTkRPTV9QQVRURVJOX1NFRUQKKyNkZWZpbmUgRElHMl9ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9fRElHX1JBTkRPTV9QQVRURVJOX1NFRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfRElHX1JBTkRPTV9QQVRURVJOX1NFRURfX0RJR19SQU5fUEFUX0RVUklOR19ERV9PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMl9ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9fRElHX1JBTkRPTV9QQVRURVJOX1NFRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKyNkZWZpbmUgRElHMl9ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9fRElHX1JBTl9QQVRfRFVSSU5HX0RFX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRElHMl9ESUdfRklGT19TVEFUVVMKKyNkZWZpbmUgRElHMl9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0xFVkVMX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19VU0VfT1ZFUldSSVRFX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fT1ZFUldSSVRFX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMl9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0VSUk9SX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19DQUxfQVZFUkFHRV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fTUFYSU1VTV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19NSU5JTVVNX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElHMl9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX1JFQURfQ0xPQ0tfU1JDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fQ0FMSUJSQVRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERJRzJfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19GT1JDRV9SRUNBTF9BVkVSQUdFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElHMl9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0ZPUkNFX1JFQ09NUF9NSU5NQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fTEVWRUxfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fVVNFX09WRVJXUklURV9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fT1ZFUldSSVRFX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZDTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fRVJST1JfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fQ0FMX0FWRVJBR0VfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fTUFYSU1VTV9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fTUlOSU1VTV9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fUkVBRF9DTE9DS19TUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fQ0FMSUJSQVRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fRk9SQ0VfUkVDQUxfQVZFUkFHRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBESUcyX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fRk9SQ0VfUkVDT01QX01JTk1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUcyX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHMl9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcyX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcyX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcyX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcyX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDQKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0X19IRE1JX0dFTkVSSUM2X0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNF9fSERNSV9HRU5FUklDN19MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0X19IRE1JX0dFTkVSSUM2X0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0X19IRE1JX0dFTkVSSUM3X0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRElHMl9IRE1JX0NPTlRST0wKKyNkZWZpbmUgRElHMl9IRE1JX0NPTlRST0xfX0hETUlfS0VFUE9VVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX0RBVEFfU0NSQU1CTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcyX0hETUlfQ09OVFJPTF9fSERNSV9DTE9DS19DSEFOTkVMX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMl9IRE1JX0NPTlRST0xfX0hETUlfTk9fRVhUUkFfTlVMTF9QQUNLRVRfRklMTEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX1BBQ0tFVF9HRU5fVkVSU0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcyX0hETUlfQ09OVFJPTF9fSERNSV9FUlJPUl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9IRE1JX0NPTlRST0xfX0hETUlfRVJST1JfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX1VOU0NSQU1CTEVEX0NPTlRST0xfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9IRE1JX0NPTlRST0xfX0hETUlfREVFUF9DT0xPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX0hETUlfQ09OVFJPTF9fSERNSV9ERUVQX0NPTE9SX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX0tFRVBPVVRfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX0RBVEFfU0NSQU1CTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX0NMT0NLX0NIQU5ORUxfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX05PX0VYVFJBX05VTExfUEFDS0VUX0ZJTExFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX1BBQ0tFVF9HRU5fVkVSU0lPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX0VSUk9SX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX0VSUk9SX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX1VOU0NSQU1CTEVEX0NPTlRST0xfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRjAwMDBMCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX0RFRVBfQ09MT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzJfSERNSV9DT05UUk9MX19IRE1JX0RFRVBfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL0RJRzJfSERNSV9TVEFUVVMKKyNkZWZpbmUgRElHMl9IRE1JX1NUQVRVU19fSERNSV9BQ1RJVkVfQVZNVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfSERNSV9TVEFUVVNfX0hETUlfQVVESU9fUEFDS0VUX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9IRE1JX1NUQVRVU19fSERNSV9WQklfUEFDS0VUX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUcyX0hETUlfU1RBVFVTX19IRE1JX0VSUk9SX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJRzJfSERNSV9TVEFUVVNfX0hETUlfQUNUSVZFX0FWTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfSERNSV9TVEFUVVNfX0hETUlfQVVESU9fUEFDS0VUX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzJfSERNSV9TVEFUVVNfX0hETUlfVkJJX1BBQ0tFVF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJRzJfSERNSV9TVEFUVVNfX0hETUlfRVJST1JfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisvL0RJRzJfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTAorI2RlZmluZSBESUcyX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fREVMQVlfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FVRElPX1NFTkRfTUFYX1BBQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19QQUNLRVRTX1BFUl9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FVRElPX0RFTEFZX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRElHMl9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FVRElPX1NFTkRfTUFYX1BBQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMl9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FVRElPX1BBQ0tFVFNfUEVSX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKy8vRElHMl9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTAorI2RlZmluZSBESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzJfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfQVVUT19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzJfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX05fTVVMVElQTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfQVVESU9fUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9TT1VSQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9BVVRPX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9OX01VTFRJUExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBESUcyX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9BVURJT19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUcyX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzJfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfTlVMTF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0dDX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9HQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzJfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0lTUkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHMl9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX05VTExfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcyX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0dDX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcyX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0dDX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUcyX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0lTUkNfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcyX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0lTUkNfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESUcyX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0lTUkNfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9ESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwCisjZGVmaW5lIERJRzJfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfQVVESU9fSU5GT19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX0FVRElPX0lORk9fQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHMl9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9NUEVHX0lORk9fU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfTVBFR19JTkZPX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX0FVRElPX0lORk9fU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX0FVRElPX0lORk9fQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX01QRUdfSU5GT19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX01QRUdfSU5GT19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorLy9ESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxCisjZGVmaW5lIERJRzJfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDFfX0hETUlfQVVESU9fSU5GT19MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxX19IRE1JX01QRUdfSU5GT19MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDFfX0hETUlfQVVESU9fSU5GT19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERJRzJfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDFfX0hETUlfTVBFR19JTkZPX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRjAwMDBMCisvL0RJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzBfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzFfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzJfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzNfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzRfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzZfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzdfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzBfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzBfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzBfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzFfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzFfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzFfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzJfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzJfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzJfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzNfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzNfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzNfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzRfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzRfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzRfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzVfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzVfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzZfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzZfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzZfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzdfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzdfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzdfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9ESUcyX0hETUlfR0MKKyNkZWZpbmUgRElHMl9IRE1JX0dDX19IRE1JX0dDX0FWTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfSERNSV9HQ19fSERNSV9HQ19BVk1VVEVfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcyX0hETUlfR0NfX0hETUlfREVGQVVMVF9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9IRE1JX0dDX19IRE1JX1BBQ0tJTkdfUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfSERNSV9HQ19fSERNSV9QQUNLSU5HX1BIQVNFX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcyX0hETUlfR0NfX0hETUlfR0NfQVZNVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcyX0hETUlfR0NfX0hETUlfR0NfQVZNVVRFX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUcyX0hETUlfR0NfX0hETUlfREVGQVVMVF9QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUcyX0hETUlfR0NfX0hETUlfUEFDS0lOR19QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBESUcyX0hETUlfR0NfX0hETUlfUEFDS0lOR19QSEFTRV9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9ESUcyX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfQVVESU9fTEFZT1VUX09WUkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0xBWU9VVF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19DSEFOTkVMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfRFBfQVVESU9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9IQlJfRU5BQkxFX09WUkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UXzYwOTU4X09TRl9PVlJEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfQVVESU9fTEFZT1VUX09WUkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfQVVESU9fTEFZT1VUX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfQVVESU9fQ0hBTk5FTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfRFBfQVVESU9fU1RSRUFNX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfSEJSX0VOQUJMRV9PVlJEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfNjA5NThfT1NGX09WUkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RJRzJfQUZNVF9JU1JDMV8wCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8wX19BRk1UX0lTUkNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX0NPTlRJTlVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHMl9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8wX19BRk1UX0lTUkNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8wX19BRk1UX0lTUkNfQ09OVElOVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8wX19BRk1UX0lTUkNfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0RJRzJfQUZNVF9JU1JDMV8xCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9JU1JDMV8yCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9JU1JDMV8zCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkM5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9JU1JDMV80CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9JU1JDMl8wCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9JU1JDMl8xCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9JU1JDMl8yCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9JU1JDMl8zCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzI4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMyOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMzMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzI4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzI5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMgorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDJfX0hETUlfR0VORVJJQzJfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyX19IRE1JX0dFTkVSSUMzX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDJfX0hETUlfR0VORVJJQzJfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDJfX0hETUlfR0VORVJJQzNfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDMKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzX19IRE1JX0dFTkVSSUM0X0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MM19fSERNSV9HRU5FUklDNV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzX19IRE1JX0dFTkVSSUM0X0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzX19IRE1JX0dFTkVSSUM1X0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRElHMl9IRE1JX0RCX0NPTlRST0wKKyNkZWZpbmUgRElHMl9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcyX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9UQUtFTl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHMl9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcyX0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElHMl9IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9UQUtFTl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX1RBS0VOX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19WVVBEQVRFX0RCX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19WVVBEQVRFX0RCX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzJfSERNSV9EQl9DT05UUk9MX19WVVBEQVRFX0RCX1RBS0VOX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL0RJRzJfRE1FX0NPTlRST0wKKyNkZWZpbmUgRElHMl9ETUVfQ09OVFJPTF9fTUVUQURBVEFfSFVCUF9SRVFVRVNUT1JfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfRE1FX0NPTlRST0xfX01FVEFEQVRBX0VOR0lORV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcyX0RNRV9DT05UUk9MX19NRVRBREFUQV9TVFJFQU1fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzJfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBESUcyX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9UQUtFTl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHMl9ETUVfQ09OVFJPTF9fTUVUQURBVEFfSFVCUF9SRVFVRVNUT1JfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRElHMl9ETUVfQ09OVFJPTF9fTUVUQURBVEFfRU5HSU5FX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMl9ETUVfQ09OVFJPTF9fTUVUQURBVEFfU1RSRUFNX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMl9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHMl9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElHMl9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfVEFLRU5fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHMl9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vRElHMl9BRk1UX01QRUdfSU5GTzAKKyNkZWZpbmUgRElHMl9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX0NIRUNLU1VNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMl9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX0NIRUNLU1VNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMl9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX01CMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMl9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX01CMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX01CMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMl9BRk1UX01QRUdfSU5GTzEKKyNkZWZpbmUgRElHMl9BRk1UX01QRUdfSU5GTzFfX0FGTVRfTVBFR19JTkZPX01CM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19NRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fRlJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMl9BRk1UX01QRUdfSU5GTzFfX0FGTVRfTVBFR19JTkZPX01CM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMl9BRk1UX01QRUdfSU5GTzFfX0FGTVRfTVBFR19JTkZPX01GX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRElHMl9BRk1UX01QRUdfSU5GTzFfX0FGTVRfTVBFR19JTkZPX0ZSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vRElHMl9BRk1UX0dFTkVSSUNfSERSCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9HRU5FUklDXzAKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMl9BRk1UX0dFTkVSSUNfMQorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcyX0FGTVRfR0VORVJJQ18yCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEUxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9HRU5FUklDXzMKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMl9BRk1UX0dFTkVSSUNfNAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcyX0FGTVRfR0VORVJJQ181CisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9HRU5FUklDXzYKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHMl9BRk1UX0dFTkVSSUNfNworI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTI4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUyOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUzMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTI4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTI5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcyX0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDEKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxX19IRE1JX0dFTkVSSUMwX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMV9fSERNSV9HRU5FUklDMV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxX19IRE1JX0dFTkVSSUMwX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxX19IRE1JX0dFTkVSSUMxX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRElHMl9IRE1JX0FDUl8zMl8wCisjZGVmaW5lIERJRzJfSERNSV9BQ1JfMzJfMF9fSERNSV9BQ1JfQ1RTXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcyX0hETUlfQUNSXzMyXzBfX0hETUlfQUNSX0NUU18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9ESUcyX0hETUlfQUNSXzMyXzEKKyNkZWZpbmUgRElHMl9IRE1JX0FDUl8zMl8xX19IRE1JX0FDUl9OXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfSERNSV9BQ1JfMzJfMV9fSERNSV9BQ1JfTl8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL0RJRzJfSERNSV9BQ1JfNDRfMAorI2RlZmluZSBESUcyX0hETUlfQUNSXzQ0XzBfX0hETUlfQUNSX0NUU180NF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMl9IRE1JX0FDUl80NF8wX19IRE1JX0FDUl9DVFNfNDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vRElHMl9IRE1JX0FDUl80NF8xCisjZGVmaW5lIERJRzJfSERNSV9BQ1JfNDRfMV9fSERNSV9BQ1JfTl80NF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0hETUlfQUNSXzQ0XzFfX0hETUlfQUNSX05fNDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9ESUcyX0hETUlfQUNSXzQ4XzAKKyNkZWZpbmUgRElHMl9IRE1JX0FDUl80OF8wX19IRE1JX0FDUl9DVFNfNDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzJfSERNSV9BQ1JfNDhfMF9fSERNSV9BQ1JfQ1RTXzQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL0RJRzJfSERNSV9BQ1JfNDhfMQorI2RlZmluZSBESUcyX0hETUlfQUNSXzQ4XzFfX0hETUlfQUNSX05fNDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9IRE1JX0FDUl80OF8xX19IRE1JX0FDUl9OXzQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vRElHMl9IRE1JX0FDUl9TVEFUVVNfMAorI2RlZmluZSBESUcyX0hETUlfQUNSX1NUQVRVU18wX19IRE1JX0FDUl9DVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMl9IRE1JX0FDUl9TVEFUVVNfMF9fSERNSV9BQ1JfQ1RTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vRElHMl9IRE1JX0FDUl9TVEFUVVNfMQorI2RlZmluZSBESUcyX0hETUlfQUNSX1NUQVRVU18xX19IRE1JX0FDUl9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9IRE1JX0FDUl9TVEFUVVNfMV9fSERNSV9BQ1JfTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vRElHMl9BRk1UX0FVRElPX0lORk8wCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NIRUNLU1VNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NIRUNLU1VNX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ1hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DSEVDS1NVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3ODAwTAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DSEVDS1NVTV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorLy9ESUcyX0FGTVRfQVVESU9fSU5GTzEKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fQ0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0xTVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19ETV9JTkhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fTEZFUEJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19DQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19MU1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3ODAwTAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19ETV9JTkhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19MRkVQQkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9ESUcyX0FGTVRfNjA5NThfMAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0NBVEVHT1JZX0NPREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19TT1VSQ0VfTlVNQkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0NBVEVHT1JZX0NPREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL0RJRzJfQUZNVF82MDk1OF8xCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX1dPUkRfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfVkFMSURfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9WQUxJRF9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfQ1NfV09SRF9MRU5HVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfVkFMSURfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfVkFMSURfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKy8vRElHMl9BRk1UX0FVRElPX0NSQ19DT05UUk9MCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfQ0hfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcyX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfQ0hfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzJfQUZNVF9SQU1QX0NPTlRST0wwCisjZGVmaW5lIERJRzJfQUZNVF9SQU1QX0NPTlRST0wwX19BRk1UX1JBTVBfTUFYX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfUkFNUF9DT05UUk9MMF9fQUZNVF9SQU1QX0RBVEFfU0lHTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJRzJfQUZNVF9SQU1QX0NPTlRST0wwX19BRk1UX1JBTVBfTUFYX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIERJRzJfQUZNVF9SQU1QX0NPTlRST0wwX19BRk1UX1JBTVBfREFUQV9TSUdOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJRzJfQUZNVF9SQU1QX0NPTlRST0wxCisjZGVmaW5lIERJRzJfQUZNVF9SQU1QX0NPTlRST0wxX19BRk1UX1JBTVBfTUlOX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfUkFNUF9DT05UUk9MMV9fQUZNVF9BVURJT19URVNUX0NIX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9SQU1QX0NPTlRST0wxX19BRk1UX1JBTVBfTUlOX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIERJRzJfQUZNVF9SQU1QX0NPTlRST0wxX19BRk1UX0FVRElPX1RFU1RfQ0hfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzJfQUZNVF9SQU1QX0NPTlRST0wyCisjZGVmaW5lIERJRzJfQUZNVF9SQU1QX0NPTlRST0wyX19BRk1UX1JBTVBfSU5DX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfUkFNUF9DT05UUk9MMl9fQUZNVF9SQU1QX0lOQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9ESUcyX0FGTVRfUkFNUF9DT05UUk9MMworI2RlZmluZSBESUcyX0FGTVRfUkFNUF9DT05UUk9MM19fQUZNVF9SQU1QX0RFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9BRk1UX1JBTVBfQ09OVFJPTDNfX0FGTVRfUkFNUF9ERUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRElHMl9BRk1UXzYwOTU4XzIKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl80X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzJfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl80X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl81X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl82X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESUcyX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl83X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9ESUcyX0FGTVRfQVVESU9fQ1JDX1JFU1VMVAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fQ1JDX1JFU1VMVF9fQUZNVF9BVURJT19DUkNfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX0NSQ19SRVNVTFRfX0FGTVRfQVVESU9fQ1JDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19DUkNfUkVTVUxUX19BRk1UX0FVRElPX0NSQ19ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19DUkNfUkVTVUxUX19BRk1UX0FVRElPX0NSQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGMDBMCisvL0RJRzJfQUZNVF9TVEFUVVMKKyNkZWZpbmUgRElHMl9BRk1UX1NUQVRVU19fQUZNVF9BVURJT19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzJfQUZNVF9TVEFUVVNfX0FGTVRfQVpfSEJSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0FGTVRfU1RBVFVTX19BRk1UX0FVRElPX0ZJRk9fT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzJfQUZNVF9TVEFUVVNfX0FGTVRfQVpfQVVESU9fRU5BQkxFX0NIR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElHMl9BRk1UX1NUQVRVU19fQUZNVF9BVURJT19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMl9BRk1UX1NUQVRVU19fQUZNVF9BWl9IQlJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMl9BRk1UX1NUQVRVU19fQUZNVF9BVURJT19GSUZPX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX1NUQVRVU19fQUZNVF9BWl9BVURJT19FTkFCTEVfQ0hHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19TQU1QTEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfUkVTRVRfRklGT19XSEVOX0FVRElPX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX1RFU1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19URVNUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fRklGT19PVkVSRkxPV19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19DSEFOTkVMX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UXzYwOTU4X0NTX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESUcyX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVpfQVVESU9fRU5BQkxFX0NIR19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9CTEFOS19URVNUX0RBVEFfT05fRU5DX0VOQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX1NBTVBMRV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX1JFU0VUX0ZJRk9fV0hFTl9BVURJT19ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX1RFU1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX1RFU1RfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX0ZJRk9fT1ZFUkZMT1dfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX0NIQU5ORUxfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UXzYwOTU4X0NTX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FaX0FVRElPX0VOQUJMRV9DSEdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0JMQU5LX1RFU1RfREFUQV9PTl9FTkNfRU5CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTAorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfTE9DS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0NPTkZMSUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfQ09ORkxJQ1RfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0xPQ0tfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0NPTkZMSUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0NPTkZMSUNUX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRElHMl9BRk1UX0lORk9GUkFNRV9DT05UUk9MMAorI2RlZmluZSBESUcyX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX19BRk1UX0FVRElPX0lORk9fU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHMl9BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9BVURJT19JTkZPX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJRzJfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfTVBFR19JTkZPX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUcyX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX19BRk1UX0FVRElPX0lORk9fU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUcyX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX19BRk1UX0FVRElPX0lORk9fVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUcyX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX19BRk1UX01QRUdfSU5GT19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9ESUcyX0FGTVRfQVVESU9fU1JDX0NPTlRST0wKKyNkZWZpbmUgRElHMl9BRk1UX0FVRElPX1NSQ19DT05UUk9MX19BRk1UX0FVRElPX1NSQ19TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfQUZNVF9BVURJT19TUkNfQ09OVFJPTF9fQUZNVF9BVURJT19TUkNfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL0RJRzJfRElHX0JFX0NOVEwKKyNkZWZpbmUgRElHMl9ESUdfQkVfQ05UTF9fRElHX0RVQUxfTElOS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfRElHX0JFX0NOVExfX0RJR19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcyX0RJR19CRV9DTlRMX19ESUdfUkJfU1dJVENIX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMl9ESUdfQkVfQ05UTF9fRElHX0ZFX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfRElHX0JFX0NOVExfX0RJR19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9ESUdfQkVfQ05UTF9fRElHX0hQRF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcyX0RJR19CRV9DTlRMX19ESUdfRFVBTF9MSU5LX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcyX0RJR19CRV9DTlRMX19ESUdfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcyX0RJR19CRV9DTlRMX19ESUdfUkJfU1dJVENIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUcyX0RJR19CRV9DTlRMX19ESUdfRkVfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBESUcyX0RJR19CRV9DTlRMX19ESUdfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBESUcyX0RJR19CRV9DTlRMX19ESUdfSFBEX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9ESUcyX0RJR19CRV9FTl9DTlRMCisjZGVmaW5lIERJRzJfRElHX0JFX0VOX0NOVExfX0RJR19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0RJR19CRV9FTl9DTlRMX19ESUdfU1lNQ0xLX0JFX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9ESUdfQkVfRU5fQ05UTF9fRElHX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMl9ESUdfQkVfRU5fQ05UTF9fRElHX1NZTUNMS19CRV9PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRElHMl9UTURTX0NOVEwKKyNkZWZpbmUgRElHMl9UTURTX0NOVExfX1RNRFNfU1lOQ19QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfVE1EU19DTlRMX19UTURTX1NZTkNfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RJRzJfVE1EU19DT05UUk9MX0NIQVIKKyNkZWZpbmUgRElHMl9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIwX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSMV9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcyX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjJfT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMl9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIzX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJRzJfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSMF9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSMV9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzJfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSMl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzJfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSM19PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisvL0RJRzJfVE1EU19DT05UUk9MMF9GRUVEQkFDSworI2RlZmluZSBESUcyX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9UTURTX0NPTlRST0wwX0ZFRURCQUNLX19UTURTX0NPTlRST0wwX0ZFRURCQUNLX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfVE1EU19DT05UUk9MMF9GRUVEQkFDS19fVE1EU19DT05UUk9MMF9GRUVEQkFDS19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERJRzJfVE1EU19DT05UUk9MMF9GRUVEQkFDS19fVE1EU19DT05UUk9MMF9GRUVEQkFDS19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisvL0RJRzJfVE1EU19TVEVSRU9TWU5DX0NUTF9TRUwKKyNkZWZpbmUgRElHMl9UTURTX1NURVJFT1NZTkNfQ1RMX1NFTF9fVE1EU19TVEVSRU9TWU5DX0NUTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfVE1EU19TVEVSRU9TWU5DX0NUTF9TRUxfX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0RJRzJfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzEKKyNkZWZpbmUgRElHMl9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMV9fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzFfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMV9fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRElHMl9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMV9fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vRElHMl9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfMworI2RlZmluZSBESUcyX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfM19fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBESUcyX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9ESUcyX1RNRFNfQ1RMX0JJVFMKKyNkZWZpbmUgRElHMl9UTURTX0NUTF9CSVRTX19UTURTX0NUTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfVE1EU19DVExfQklUU19fVE1EU19DVEwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfVE1EU19DVExfQklUU19fVE1EU19DVEwzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMl9UTURTX0NUTF9CSVRTX19UTURTX0NUTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMl9UTURTX0NUTF9CSVRTX19UTURTX0NUTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTF9CSVRTX19UTURTX0NUTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTF9CSVRTX19UTURTX0NUTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRElHMl9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTAorI2RlZmluZSBESUcyX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19TWU5DX0RDQkFMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzJfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9URVNUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfVEVTVF9JTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMl9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMl9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19TWU5DX0RDQkFMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRElHMl9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX1RFU1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMl9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX1RFU1RfSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRElHMl9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRElHMl9UTURTX1NZTkNfRENCQUxBTkNFX0NIQVIKKyNkZWZpbmUgRElHMl9UTURTX1NZTkNfRENCQUxBTkNFX0NIQVJfX1RNRFNfU1lOQ19EQ0JBTF9DSEFSMDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSX19UTURTX1NZTkNfRENCQUxfQ0hBUjExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9UTURTX1NZTkNfRENCQUxBTkNFX0NIQVJfX1RNRFNfU1lOQ19EQ0JBTF9DSEFSMDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRElHMl9UTURTX1NZTkNfRENCQUxBTkNFX0NIQVJfX1RNRFNfU1lOQ19EQ0JBTF9DSEFSMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vRElHMl9UTURTX0NUTDBfMV9HRU5fQ05UTAorI2RlZmluZSBESUcyX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUcyX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9NT0RVTEFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHMl9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX1VTRV9GRUVEQkFDS19QQVRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9GQl9TWU5DX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUcyX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMl9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUcyX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElHMl9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfTU9EVUxBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfVVNFX0ZFRURCQUNLX1BBVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9GQl9TWU5DX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElHMl9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUcyX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTXzJCSVRfQ09VTlRFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX01PRFVMQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9VU0VfRkVFREJBQ0tfUEFUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9GQl9TWU5DX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9QQVRURVJOX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX01PRFVMQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9VU0VfRkVFREJBQ0tfUEFUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9GQl9TWU5DX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9QQVRURVJOX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJRzJfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfMkJJVF9DT1VOVEVSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJRzJfVE1EU19DVEwyXzNfR0VOX0NOVEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUcyX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfTU9EVUxBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9VU0VfRkVFREJBQ0tfUEFUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUcyX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfRkJfU1lOQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzJfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUcyX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJRzJfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX01PRFVMQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX1VTRV9GRUVEQkFDS19QQVRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESUcyX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfRkJfU1lOQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJRzJfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfTU9EVUxBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX1VTRV9GRUVEQkFDS19QQVRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0ZCX1NZTkNfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfTU9EVUxBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX1VTRV9GRUVEQkFDS19QQVRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0ZCX1NZTkNfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElHMl9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRElHMl9ESUdfVkVSU0lPTgorI2RlZmluZSBESUcyX0RJR19WRVJTSU9OX19ESUdfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9ESUdfVkVSU0lPTl9fRElHX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRElHMl9ESUdfTEFORV9FTkFCTEUKKyNkZWZpbmUgRElHMl9ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzJfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTFFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUcyX0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUyRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHMl9ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FM0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJRzJfRElHX0xBTkVfRU5BQkxFX19ESUdfQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUwRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUcyX0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUxRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUcyX0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUyRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUcyX0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUzRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESUcyX0RJR19MQU5FX0VOQUJMRV9fRElHX0NMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9ESUcyX0FGTVRfQ05UTAorI2RlZmluZSBESUcyX0FGTVRfQ05UTF9fQUZNVF9BVURJT19DTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9BRk1UX0NOVExfX0FGTVRfQVVESU9fQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfQUZNVF9DTlRMX19BRk1UX0FVRElPX0NMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfQUZNVF9DTlRMX19BRk1UX0FVRElPX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElHMl9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUcyX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0ZSQU1FX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0ZSQU1FX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0lNTUVESUFURV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0lNTUVESUFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0ZSQU1FX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0ZSQU1FX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0lNTUVESUFURV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0lNTUVESUFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0ZSQU1FX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0ZSQU1FX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0lNTUVESUFURV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0lNTUVESUFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0ZSQU1FX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0ZSQU1FX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0lNTUVESUFURV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0lNTUVESUFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0ZSQU1FX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0ZSQU1FX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0lNTUVESUFURV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0lNTUVESUFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0ZSQU1FX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0ZSQU1FX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0lNTUVESUFURV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0lNTUVESUFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0ZSQU1FX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0ZSQU1FX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0lNTUVESUFURV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0lNTUVESUFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0ZSQU1FX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0ZSQU1FX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0lNTUVESUFURV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERJRzJfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0lNTUVESUFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNQorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzBfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMwX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMV9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzFfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMyX0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMl9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzNfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMzX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNF9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzRfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM1X0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNV9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzZfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM2X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJRzJfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDN19JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESUcyX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzdfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMwX0lNTUVESUFURV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMwX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMxX0lNTUVESUFURV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMxX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMyX0lNTUVESUFURV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMyX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMzX0lNTUVESUFURV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMzX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM0X0lNTUVESUFURV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM0X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM1X0lNTUVESUFURV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM1X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM2X0lNTUVESUFURV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM2X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM3X0lNTUVESUFURV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRElHMl9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM3X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vRElHMl9GT1JDRV9ESUdfRElTQUJMRQorI2RlZmluZSBESUcyX0ZPUkNFX0RJR19ESVNBQkxFX19GT1JDRV9ESUdfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHMl9GT1JDRV9ESUdfRElTQUJMRV9fRk9SQ0VfRElHX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZHAyX2Rpc3BkZWMKKy8vRFAyX0RQX0xJTktfQ05UTAorI2RlZmluZSBEUDJfRFBfTElOS19DTlRMX19EUF9MSU5LX1RSQUlOSU5HX0NPTVBMRVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX0xJTktfQ05UTF9fRFBfTElOS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9MSU5LX0NOVExfX0RQX0VNQkVEREVEX1BBTkVMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFAyX0RQX0xJTktfQ05UTF9fRFBfTElOS19UUkFJTklOR19DT01QTEVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAyX0RQX0xJTktfQ05UTF9fRFBfTElOS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAyX0RQX0xJTktfQ05UTF9fRFBfRU1CRURERURfUEFORUxfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vRFAyX0RQX1BJWEVMX0ZPUk1BVAorI2RlZmluZSBEUDJfRFBfUElYRUxfRk9STUFUX19EUF9QSVhFTF9FTkNPRElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX1BJWEVMX0ZPUk1BVF9fRFBfQ09NUE9ORU5UX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDJfRFBfUElYRUxfRk9STUFUX19EUF9QSVhFTF9DT01CSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQMl9EUF9QSVhFTF9GT1JNQVRfX0RQX1BJWEVMX0VOQ09ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQMl9EUF9QSVhFTF9GT1JNQVRfX0RQX0NPTVBPTkVOVF9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisjZGVmaW5lIERQMl9EUF9QSVhFTF9GT1JNQVRfX0RQX1BJWEVMX0NPTUJJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL0RQMl9EUF9NU0FfQ09MT1JJTUVUUlkKKyNkZWZpbmUgRFAyX0RQX01TQV9DT0xPUklNRVRSWV9fRFBfTVNBX01JU0MwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDJfRFBfTVNBX0NPTE9SSU1FVFJZX19EUF9NU0FfTUlTQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EUDJfRFBfQ09ORklHCisjZGVmaW5lIERQMl9EUF9DT05GSUdfX0RQX1VESV9MQU5FU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfQ09ORklHX19EUF9VRElfTEFORVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9EUDJfRFBfVklEX1NUUkVBTV9DTlRMCisjZGVmaW5lIERQMl9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0RJU19ERUZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAyX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0NIQU5HRV9LRUVQT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMl9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMl9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTX0RFRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERQMl9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQMl9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fQ0hBTkdFX0tFRVBPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL0RQMl9EUF9TVEVFUl9GSUZPCisjZGVmaW5lIERQMl9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9GSUZPX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQMl9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUDJfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFAyX0RQX1NURUVSX0ZJRk9fX0RQX1RVX09WRVJGTE9XX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9TVEVFUl9GSUZPX19EUF9UVV9PVkVSRkxPV19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDJfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfRklGT19SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDJfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDJfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDJfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUDJfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUDJfRFBfU1RFRVJfRklGT19fRFBfVFVfT1ZFUkZMT1dfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDJfRFBfU1RFRVJfRklGT19fRFBfVFVfT1ZFUkZMT1dfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9EUDJfRFBfTVNBX01JU0MKKyNkZWZpbmUgRFAyX0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDJfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0M0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAyX0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFAyX0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFAyX0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRFAyX0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFAyX0RQX1ZJRF9USU1JTkcKKyNkZWZpbmUgRFAyX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9NX05fRE9VQkxFX0JVRkZFUl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMl9EUF9WSURfVElNSU5HX19EUF9WSURfTV9OX0dFTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDJfRFBfVklEX1RJTUlOR19fRFBfVklEX05fTVVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFAyX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9NX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMl9EUF9WSURfVElNSU5HX19EUF9WSURfTl9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAyX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9NX05fRE9VQkxFX0JVRkZFUl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAyX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9NX05fR0VOX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAyX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9OX01VTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgRFAyX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9NX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRFAyX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9OX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFAyX0RQX1ZJRF9OCisjZGVmaW5lIERQMl9EUF9WSURfTl9fRFBfVklEX05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfVklEX05fX0RQX1ZJRF9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EUDJfRFBfVklEX00KKyNkZWZpbmUgRFAyX0RQX1ZJRF9NX19EUF9WSURfTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9WSURfTV9fRFBfVklEX01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQMl9EUF9MSU5LX0ZSQU1JTkdfQ05UTAorI2RlZmluZSBEUDJfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX0lETEVfQlNfSU5URVJWQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9WQklEX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDJfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX1ZJRF9FTkhBTkNFRF9GUkFNRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQMl9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9fRFBfSURMRV9CU19JTlRFUlZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIERQMl9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9fRFBfVkJJRF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQMl9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9fRFBfVklEX0VOSEFOQ0VEX0ZSQU1FX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RQMl9EUF9IQlIyX0VZRV9QQVRURVJOCisjZGVmaW5lIERQMl9EUF9IQlIyX0VZRV9QQVRURVJOX19EUF9IQlIyX0VZRV9QQVRURVJOX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfSEJSMl9FWUVfUEFUVEVSTl9fRFBfSEJSMl9FWUVfUEFUVEVSTl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EUDJfRFBfVklEX01TQV9WQklECisjZGVmaW5lIERQMl9EUF9WSURfTVNBX1ZCSURfX0RQX1ZJRF9NU0FfTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfVklEX01TQV9WQklEX19EUF9WSURfVkJJRF9GSUVMRF9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMl9EUF9WSURfTVNBX1ZCSURfX0RQX1ZJRF9NU0FfTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIERQMl9EUF9WSURfTVNBX1ZCSURfX0RQX1ZJRF9WQklEX0ZJRUxEX1BPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RQMl9EUF9WSURfSU5URVJSVVBUX0NOVEwKKyNkZWZpbmUgRFAyX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDJfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFAyX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNBQkxFX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAyX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNBQkxFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFAyX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNBQkxFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vRFAyX0RQX0RQSFlfQ05UTAorI2RlZmluZSBEUDJfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUDJfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFAyX0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfRkVDX1JFQURZX1NIQURPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDJfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19BQ1RJVkVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFAyX0RQX0RQSFlfQ05UTF9fRFBIWV9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfRFBIWV9DTlRMX19EUEhZX1NLRVdfQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfRkVDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfRkVDX1JFQURZX1NIQURPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfRkVDX0FDVElWRV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NOVExfX0RQSFlfU0tFV19CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RQMl9EUF9EUEhZX1RSQUlOSU5HX1BBVFRFUk5fU0VMCisjZGVmaW5lIERQMl9EUF9EUEhZX1RSQUlOSU5HX1BBVFRFUk5fU0VMX19EUEhZX1RSQUlOSU5HX1BBVFRFUk5fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTF9fRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9EUDJfRFBfRFBIWV9TWU0wCisjZGVmaW5lIERQMl9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9TWU0wX19EUEhZX1NZTTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFAyX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDJfRFBfRFBIWV9TWU0wX19EUEhZX1NZTTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEUDJfRFBfRFBIWV9TWU0wX19EUEhZX1NZTTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorI2RlZmluZSBEUDJfRFBfRFBIWV9TWU0wX19EUEhZX1NZTTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRjAwMDAwTAorLy9EUDJfRFBfRFBIWV9TWU0xCisjZGVmaW5lIERQMl9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9TWU0xX19EUEhZX1NZTTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFAyX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU02X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDJfRFBfRFBIWV9TWU0xX19EUEhZX1NZTTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEUDJfRFBfRFBIWV9TWU0xX19EUEhZX1NZTTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorI2RlZmluZSBEUDJfRFBfRFBIWV9TWU0xX19EUEhZX1NZTTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRjAwMDAwTAorLy9EUDJfRFBfRFBIWV9TWU0yCisjZGVmaW5lIERQMl9EUF9EUEhZX1NZTTJfX0RQSFlfU1lNN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9TWU0yX19EUEhZX1NZTThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFAyX0RQX0RQSFlfU1lNMl9fRFBIWV9TWU03X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFAyX0RQX0RQSFlfU1lNMl9fRFBIWV9TWU04X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKy8vRFAyX0RQX0RQSFlfOEIxMEJfQ05UTAorI2RlZmluZSBEUDJfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAyX0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9FWFRfRElTUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX0NVUl9ESVNQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMl9EUF9EUEhZXzhCMTBCX0NOVExfX0RQSFlfOEIxMEJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMl9EUF9EUEhZXzhCMTBCX0NOVExfX0RQSFlfOEIxMEJfRVhUX0RJU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQMl9EUF9EUEhZXzhCMTBCX0NOVExfX0RQSFlfOEIxMEJfQ1VSX0RJU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RQMl9EUF9EUEhZX1BSQlNfQ05UTAorI2RlZmluZSBEUDJfRFBfRFBIWV9QUkJTX0NOVExfX0RQSFlfUFJCU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMl9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX1NFRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDJfRFBfRFBIWV9QUkJTX0NOVExfX0RQSFlfUFJCU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDJfRFBfRFBIWV9QUkJTX0NOVExfX0RQSFlfUFJCU19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUDJfRFBfRFBIWV9QUkJTX0NOVExfX0RQSFlfUFJCU19TRUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRjAwTAorLy9EUDJfRFBfRFBIWV9TQ1JBTV9DTlRMCisjZGVmaW5lIERQMl9EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9BRFZBTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfQlNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0tDT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAyX0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAyX0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfQURWQU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAyX0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfQlNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkYwMEwKKyNkZWZpbmUgRFAyX0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfS0NPREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFAyX0RQX0RQSFlfQ1JDX0VOCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19FTl9fRFBIWV9DUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX0NPTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19SRVNVTFRfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19FTl9fRFBIWV9DUkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19FTl9fRFBIWV9DUkNfQ09OVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19FTl9fRFBIWV9DUkNfUkVTVUxUX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RQMl9EUF9EUEhZX0NSQ19DTlRMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19GSUVMRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfQ05UTF9fRFBIWV9DUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfQ05UTF9fRFBIWV9DUkNfRklFTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfQ05UTF9fRFBIWV9DUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfQ05UTF9fRFBIWV9DUkNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9EUDJfRFBfRFBIWV9DUkNfUkVTVUxUCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAyX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RQMl9EUF9EUEhZX0NSQ19NU1RfQ05UTAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfTVNUX0NOVExfX0RQSFlfQ1JDX01TVF9GSVJTVF9TTE9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX0RQSFlfQ1JDX01TVF9DTlRMX19EUEhZX0NSQ19NU1RfTEFTVF9TTE9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19NU1RfQ05UTF9fRFBIWV9DUkNfTVNUX0ZJUlNUX1NMT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19NU1RfQ05UTF9fRFBIWV9DUkNfTVNUX0xBU1RfU0xPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisvL0RQMl9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTCisjZGVmaW5lIERQMl9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19fRFBIWV9DUkNfTVNUX1BIQVNFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAyX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9FUlJPUl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19fRFBIWV9DUkNfTVNUX1BIQVNFX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19fRFBIWV9DUkNfTVNUX1BIQVNFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDJfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19fRFBIWV9DUkNfTVNUX1BIQVNFX0VSUk9SX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9EUDJfRFBfRFBIWV9GQVNUX1RSQUlOSU5HCisjZGVmaW5lIERQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfUlhfRkFTVF9UUkFJTklOR19DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX1NXX0ZBU1RfVFJBSU5JTkdfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAyX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1ZCTEFOS19FREdFX0RFVEVDVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfRkFTVF9UUkFJTklOR19UUDFfVElNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDJfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVFAyX1RJTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfUlhfRkFTVF9UUkFJTklOR19DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfU1dfRkFTVF9UUkFJTklOR19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfRkFTVF9UUkFJTklOR19WQkxBTktfRURHRV9ERVRFQ1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfRkFTVF9UUkFJTklOR19UUDFfVElNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGMDBMCisjZGVmaW5lIERQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfRkFTVF9UUkFJTklOR19UUDJfVElNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL0RQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTCisjZGVmaW5lIERQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDJfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDJfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDJfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDJfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9EUDJfRFBfU0VDX0NOVEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfU1RSRUFNX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTF9fRFBfU0VDX0FTUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVExfX0RQX1NFQ19BVFBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfQUlQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTF9fRFBfU0VDX0FDTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQMF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQM19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUDJfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A0X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQNl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEUDJfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A3X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTF9fRFBfU0VDX01QR19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfU1RSRUFNX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfQVNQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfQVRQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfQUlQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfQUNNX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQMF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQMl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQM19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQNF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQNV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQNl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQN19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMX19EUF9TRUNfTVBHX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRFAyX0RQX1NFQ19DTlRMMQorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwxX19EUF9TRUNfSVNSQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDFfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AyX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQM19MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDRfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A1X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNl9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDdfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0lTUkNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDFfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDJfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDNfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDRfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDVfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDZfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDdfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAyX0RQX1NFQ19GUkFNSU5HMQorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkcxX19EUF9TRUNfRlJBTUVfU1RBUlRfTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX1NFQ19GUkFNSU5HMV9fRFBfU0VDX1ZCTEFOS19UUkFOU01JVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkcxX19EUF9TRUNfRlJBTUVfU1RBUlRfTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkcxX19EUF9TRUNfVkJMQU5LX1RSQU5TTUlUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDJfRFBfU0VDX0ZSQU1JTkcyCisjZGVmaW5lIERQMl9EUF9TRUNfRlJBTUlORzJfX0RQX1NFQ19TVEFSVF9QT1NJVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkcyX19EUF9TRUNfSEJMQU5LX1RSQU5TTUlUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9TRUNfRlJBTUlORzJfX0RQX1NFQ19TVEFSVF9QT1NJVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQMl9EUF9TRUNfRlJBTUlORzJfX0RQX1NFQ19IQkxBTktfVFJBTlNNSVRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMl9EUF9TRUNfRlJBTUlORzMKKyNkZWZpbmUgRFAyX0RQX1NFQ19GUkFNSU5HM19fRFBfU0VDX0lETEVfRlJBTUVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9TRUNfRlJBTUlORzNfX0RQX1NFQ19JRExFX1RSQU5TTUlUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAyX0RQX1NFQ19GUkFNSU5HM19fRFBfU0VDX0lETEVfRlJBTUVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgRFAyX0RQX1NFQ19GUkFNSU5HM19fRFBfU0VDX0lETEVfVFJBTlNNSVRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAyX0RQX1NFQ19GUkFNSU5HNAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkc0X19EUF9TU1RfU0RQX1NQTElUVElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0NPTExJU0lPTl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQ09MTElTSU9OX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMl9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19BVURJT19NVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFAyX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0FVRElPX01VVEVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkc0X19EUF9TU1RfU0RQX1NQTElUVElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQ09MTElTSU9OX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQ09MTElTSU9OX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQVVESU9fTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEUDJfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQVVESU9fTVVURV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EUDJfRFBfU0VDX0FVRF9OCisjZGVmaW5lIERQMl9EUF9TRUNfQVVEX05fX0RQX1NFQ19BVURfTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfU0VDX0FVRF9OX19EUF9TRUNfQVVEX05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EUDJfRFBfU0VDX0FVRF9OX1JFQURCQUNLCisjZGVmaW5lIERQMl9EUF9TRUNfQVVEX05fUkVBREJBQ0tfX0RQX1NFQ19BVURfTl9SRUFEQkFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfU0VDX0FVRF9OX1JFQURCQUNLX19EUF9TRUNfQVVEX05fUkVBREJBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EUDJfRFBfU0VDX0FVRF9NCisjZGVmaW5lIERQMl9EUF9TRUNfQVVEX01fX0RQX1NFQ19BVURfTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfU0VDX0FVRF9NX19EUF9TRUNfQVVEX01fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EUDJfRFBfU0VDX0FVRF9NX1JFQURCQUNLCisjZGVmaW5lIERQMl9EUF9TRUNfQVVEX01fUkVBREJBQ0tfX0RQX1NFQ19BVURfTV9SRUFEQkFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfU0VDX0FVRF9NX1JFQURCQUNLX19EUF9TRUNfQVVEX01fUkVBREJBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EUDJfRFBfU0VDX1RJTUVTVEFNUAorI2RlZmluZSBEUDJfRFBfU0VDX1RJTUVTVEFNUF9fRFBfU0VDX1RJTUVTVEFNUF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX1NFQ19USU1FU1RBTVBfX0RQX1NFQ19USU1FU1RBTVBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRFAyX0RQX1NFQ19QQUNLRVRfQ05UTAorI2RlZmluZSBEUDJfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX0NPRElOR19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAyX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMl9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDJfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX0NIQU5ORUxfQ09VTlRfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19BU1BfQ09ESU5HX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIERQMl9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19BU1BfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMl9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19BU1BfQ0hBTk5FTF9DT1VOVF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0RQMl9EUF9NU0VfUkFURV9DTlRMCisjZGVmaW5lIERQMl9EUF9NU0VfUkFURV9DTlRMX19EUF9NU0VfUkFURV9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfTVNFX1JBVEVfQ05UTF9fRFBfTVNFX1JBVEVfWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERQMl9EUF9NU0VfUkFURV9DTlRMX19EUF9NU0VfUkFURV9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGRkZMCisjZGVmaW5lIERQMl9EUF9NU0VfUkFURV9DTlRMX19EUF9NU0VfUkFURV9YX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RQMl9EUF9NU0VfUkFURV9VUERBVEUKKyNkZWZpbmUgRFAyX0RQX01TRV9SQVRFX1VQREFURV9fRFBfTVNFX1JBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9NU0VfUkFURV9VUERBVEVfX0RQX01TRV9SQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RQMl9EUF9NU0VfU0FUMAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU1JDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TUkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU1JDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU1JDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDJfRFBfTVNFX1NBVDEKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NSQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU1JDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NSQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NSQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFAyX0RQX01TRV9TQVQyCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TUkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NSQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TUkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TUkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQMl9EUF9NU0VfU0FUX1VQREFURQorI2RlZmluZSBEUDJfRFBfTVNFX1NBVF9VUERBVEVfX0RQX01TRV9TQVRfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVRfVVBEQVRFX19EUF9NU0VfMTZfTVRQX0tFRVBPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9NU0VfU0FUX1VQREFURV9fRFBfTVNFX1NBVF9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUX1VQREFURV9fRFBfTVNFXzE2X01UUF9LRUVQT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RQMl9EUF9NU0VfTElOS19USU1JTkcKKyNkZWZpbmUgRFAyX0RQX01TRV9MSU5LX1RJTUlOR19fRFBfTVNFX0xJTktfRlJBTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9NU0VfTElOS19USU1JTkdfX0RQX01TRV9MSU5LX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAyX0RQX01TRV9MSU5LX1RJTUlOR19fRFBfTVNFX0xJTktfRlJBTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFAyX0RQX01TRV9MSU5LX1RJTUlOR19fRFBfTVNFX0xJTktfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKy8vRFAyX0RQX01TRV9NSVNDX0NOVEwKKyNkZWZpbmUgRFAyX0RQX01TRV9NSVNDX0NOVExfX0RQX01TRV9CTEFOS19DT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfVElNRVNUQU1QX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDJfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX1pFUk9fRU5DT0RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAyX0RQX01TRV9NSVNDX0NOVExfX0RQX01TRV9CTEFOS19DT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAyX0RQX01TRV9NSVNDX0NOVExfX0RQX01TRV9USU1FU1RBTVBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAyX0RQX01TRV9NSVNDX0NOVExfX0RQX01TRV9aRVJPX0VOQ09ERVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRFAyX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMCisjZGVmaW5lIERQMl9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9MT0FEX0JTX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfRFBIWV9CU19TUl9TV0FQX0NOVExfX0RQSFlfQlNfU1JfU1dBUF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFAyX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0xPQURfQlNfQ09VTlRfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfRFBIWV9CU19TUl9TV0FQX0NOVExfX0RQSFlfTE9BRF9CU19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEUDJfRFBfRFBIWV9CU19TUl9TV0FQX0NOVExfX0RQSFlfQlNfU1JfU1dBUF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDJfRFBfRFBIWV9CU19TUl9TV0FQX0NOVExfX0RQSFlfTE9BRF9CU19DT1VOVF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9EUDJfRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTAorI2RlZmluZSBEUDJfRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTF9fRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0xfX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKy8vRFAyX0RQX01TRV9TQVQwX1NUQVRVUworI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU1JDMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDJfRFBfTVNFX1NBVDFfU1RBVFVTCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU1JDMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU1JDMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU1JDM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQMl9EUF9NU0VfU0FUMl9TVEFUVVMKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TUkM0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDJfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TUkM0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TUkM1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFAyX0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFAyX0RQX01TQV9USU1JTkdfUEFSQU0xCisjZGVmaW5lIERQMl9EUF9NU0FfVElNSU5HX1BBUkFNMV9fRFBfTVNBX1ZUT1RBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfTVNBX1RJTUlOR19QQVJBTTFfX0RQX01TQV9IVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9NU0FfVElNSU5HX1BBUkFNMV9fRFBfTVNBX1ZUT1RBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQMl9EUF9NU0FfVElNSU5HX1BBUkFNMV9fRFBfTVNBX0hUT1RBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMl9EUF9NU0FfVElNSU5HX1BBUkFNMgorI2RlZmluZSBEUDJfRFBfTVNBX1RJTUlOR19QQVJBTTJfX0RQX01TQV9WU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX01TQV9USU1JTkdfUEFSQU0yX19EUF9NU0FfSFNUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfTVNBX1RJTUlOR19QQVJBTTJfX0RQX01TQV9WU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDJfRFBfTVNBX1RJTUlOR19QQVJBTTJfX0RQX01TQV9IU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDJfRFBfTVNBX1RJTUlOR19QQVJBTTMKKyNkZWZpbmUgRFAyX0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfVlNZTkNXSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX1ZTWU5DUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUDJfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9IU1lOQ1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX0hTWU5DUE9MQVJJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFAyX0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfVlNZTkNXSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0ZGRkwKKyNkZWZpbmUgRFAyX0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfVlNZTkNQT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFAyX0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfSFNZTkNXSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGMDAwMEwKKyNkZWZpbmUgRFAyX0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfSFNZTkNQT0xBUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFAyX0RQX01TQV9USU1JTkdfUEFSQU00CisjZGVmaW5lIERQMl9EUF9NU0FfVElNSU5HX1BBUkFNNF9fRFBfTVNBX1ZIRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfTVNBX1RJTUlOR19QQVJBTTRfX0RQX01TQV9IV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9NU0FfVElNSU5HX1BBUkFNNF9fRFBfTVNBX1ZIRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQMl9EUF9NU0FfVElNSU5HX1BBUkFNNF9fRFBfTVNBX0hXSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMl9EUF9NU09fQ05UTAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19OVU1fT0ZfU1NUTElOS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX01TT19DTlRMX19EUF9NU09fU0VDX1NUUkVBTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMl9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BU1BfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQVRQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAyX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FJUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQUNNX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQMl9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19HU1AwX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAyX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0dTUDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19OVU1fT0ZfU1NUTElOS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfU1RSRUFNX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQVNQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQVRQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQUlQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQUNNX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfR1NQMF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfR1NQMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EUDJfRFBfTVNPX0NOVEwxCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQMl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A0X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQNV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDJfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDZfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQN19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAyX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19NUEdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDJfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0lTUkNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQMl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQM19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQNF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQNV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQNl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQN19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfTVBHX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERQMl9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfSVNSQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RQMl9EUF9EU0NfQ05UTAorI2RlZmluZSBEUDJfRFBfRFNDX0NOVExfX0RQX0RTQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX0RTQ19DTlRMX19EUF9EU0NfU0xJQ0VfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfRFNDX0NOVExfX0RQX0RTQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEUDJfRFBfRFNDX0NOVExfX0RQX0RTQ19TTElDRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9EUDJfRFBfU0VDX0NOVEwyCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19QUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfREVBRExJTkVfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfQU5ZX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfREVBRExJTkVfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfQU5ZX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfREVBRExJTkVfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfQU5ZX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfREVBRExJTkVfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfQU5ZX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfREVBRExJTkVfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfQU5ZX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfREVBRExJTkVfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfQU5ZX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfREVBRExJTkVfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfQU5ZX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1BQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RQMl9EUF9TRUNfQ05UTDMKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMM19fRFBfU0VDX0dTUDFfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDNfX0RQX1NFQ19HU1AyX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMM19fRFBfU0VDX0dTUDFfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMM19fRFBfU0VDX0dTUDJfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAyX0RQX1NFQ19DTlRMNAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEw0X19EUF9TRUNfR1NQM19MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMNF9fRFBfU0VDX0dTUDRfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEw0X19EUF9TRUNfR1NQM19MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEw0X19EUF9TRUNfR1NQNF9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDJfRFBfU0VDX0NOVEw1CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDVfX0RQX1NFQ19HU1A1X0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEw1X19EUF9TRUNfR1NQNl9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDVfX0RQX1NFQ19HU1A1X0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDVfX0RQX1NFQ19HU1A2X0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMl9EUF9TRUNfQ05UTDYKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMNl9fRFBfU0VDX0dTUDdfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDZfX0RQX1NFQ19HU1A3X0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0RQMl9EUF9TRUNfQ05UTDcKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDBfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AwX1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMV9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDFfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AyX1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMl9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDNfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AzX1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNF9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A0X1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDVfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNV9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A2X1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDZfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUDJfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQN19TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQMl9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A3X1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDBfU0VORF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDBfU0VORF9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDFfU0VORF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDFfU0VORF9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDJfU0VORF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDJfU0VORF9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDNfU0VORF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDNfU0VORF9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDRfU0VORF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDRfU0VORF9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDVfU0VORF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDVfU0VORF9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDZfU0VORF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDZfU0VORF9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDdfU0VORF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDdfU0VORF9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vRFAyX0RQX0RCX0NOVEwKKyNkZWZpbmUgRFAyX0RQX0RCX0NOVExfX0RQX0RCX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9EQl9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDJfRFBfREJfQ05UTF9fRFBfREJfVEFLRU5fQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFAyX0RQX0RCX0NOVExfX0RQX0RCX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9EQl9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDJfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFAyX0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9UQUtFTl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9EQl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9EQl9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9EQl9UQUtFTl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9EQl9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9EQl9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9WVVBEQVRFX0RCX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9WVVBEQVRFX0RCX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQMl9EUF9EQl9DTlRMX19EUF9WVVBEQVRFX0RCX1RBS0VOX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL0RQMl9EUF9NU0FfVkJJRF9NSVNDCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9NU0FfTUlTQzFfU1RFUkVPU1lOQ19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfTVNBX1ZCSURfTUlTQ19fRFBfTVNBX01JU0MxX1NURVJFT1NZTkNfT1ZFUlJJREVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAyX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQxX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUDJfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDFfT1ZFUlJJREVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAyX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQyX09WRVJSSURFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklENl9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUDJfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDZfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9NU0FfTUlTQzFfU1RFUkVPU1lOQ19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9NU0FfTUlTQzFfU1RFUkVPU1lOQ19PVkVSUklERV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMV9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMl9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMV9PVkVSUklERV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMl9PVkVSUklERV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklENl9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQMl9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklENl9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQMl9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OCisjZGVmaW5lIERQMl9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDJfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAyX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NU09fTUVUQURBVEFfUEFDS0VUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQMl9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAyX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NRVRBREFUQV9QQUNLRVRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAyX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NRVRBREFUQV9QQUNLRVRfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFAyX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NU09fTUVUQURBVEFfUEFDS0VUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRFAyX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NRVRBREFUQV9QQUNLRVRfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAyX0RQX0RTQ19CWVRFU19QRVJfUElYRUwKKyNkZWZpbmUgRFAyX0RQX0RTQ19CWVRFU19QRVJfUElYRUxfX0RQX0RTQ19CWVRFU19QRVJfUElYRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9EU0NfQllURVNfUEVSX1BJWEVMX19EUF9EU0NfQllURVNfUEVSX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL0RQMl9EUF9BTFBNX0NOVEwKKyNkZWZpbmUgRFAyX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQMl9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDJfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU1RBTkRCWV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFAyX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NUQU5EQllfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERQMl9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TVEFOREJZX0lNTUVESUFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDJfRFBfQUxQTV9DTlRMX19EUF9MSU5LX1RSQUlOSU5HX1NXSVRDSF9CRVRXRUVOX1ZJREVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFAyX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NUQU5EQllfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDJfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDJfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDJfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU1RBTkRCWV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUDJfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU1RBTkRCWV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEUDJfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfU1RBTkRCWV9JTU1FRElBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDJfRFBfQUxQTV9DTlRMX19EUF9MSU5LX1RSQUlOSU5HX1NXSVRDSF9CRVRXRUVOX1ZJREVPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDJfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfU1RBTkRCWV9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kaWczX2Rpc3BkZWMKKy8vRElHM19ESUdfRkVfQ05UTAorI2RlZmluZSBESUczX0RJR19GRV9DTlRMX19ESUdfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19ESUdfRkVfQ05UTF9fRElHX1NURVJFT1NZTkNfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19TVEVSRU9TWU5DX0dBVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0RJR19GRV9DTlRMX19ESUdfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHM19ESUdfRkVfQ05UTF9fRElHX0RJR0lUQUxfQllQQVNTX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19JTlBVVF9QSVhFTF9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19ESUdfRkVfQ05UTF9fRE9MQllfVklTSU9OX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESUczX0RJR19GRV9DTlRMX19ET0xCWV9WSVNJT05fTUVUQURBVEFfUEFDS0VUX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19TWU1DTEtfRkVfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19ESUdfRkVfQ05UTF9fVE1EU19QSVhFTF9FTkNPRElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUczX0RJR19GRV9DTlRMX19UTURTX0NPTE9SX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19TVEVSRU9TWU5DX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19TVEVSRU9TWU5DX0dBVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19ESUdJVEFMX0JZUEFTU19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19JTlBVVF9QSVhFTF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RPTEJZX1ZJU0lPTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RPTEJZX1ZJU0lPTl9NRVRBREFUQV9QQUNLRVRfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX0RJR19TWU1DTEtfRkVfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX1RNRFNfUElYRUxfRU5DT0RJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJRzNfRElHX0ZFX0NOVExfX1RNRFNfQ09MT1JfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL0RJRzNfRElHX09VVFBVVF9DUkNfQ05UTAorI2RlZmluZSBESUczX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19MSU5LX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfRElHX09VVFBVVF9DUkNfQ05UTF9fRElHX09VVFBVVF9DUkNfREFUQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0xJTktfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUczX0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0RBVEFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9ESUczX0RJR19PVVRQVVRfQ1JDX1JFU1VMVAorI2RlZmluZSBESUczX0RJR19PVVRQVVRfQ1JDX1JFU1VMVF9fRElHX09VVFBVVF9DUkNfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19ESUdfT1VUUFVUX0NSQ19SRVNVTFRfX0RJR19PVVRQVVRfQ1JDX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGRkZGRkwKKy8vRElHM19ESUdfQ0xPQ0tfUEFUVEVSTgorI2RlZmluZSBESUczX0RJR19DTE9DS19QQVRURVJOX19ESUdfQ0xPQ0tfUEFUVEVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19ESUdfQ0xPQ0tfUEFUVEVSTl9fRElHX0NMT0NLX1BBVFRFUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKy8vRElHM19ESUdfVEVTVF9QQVRURVJOCisjZGVmaW5lIERJRzNfRElHX1RFU1RfUEFUVEVSTl9fRElHX1RFU1RfUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0RJR19URVNUX1BBVFRFUk5fX0RJR19IQUxGX0NMT0NLX1BBVFRFUk5fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHM19ESUdfVEVTVF9QQVRURVJOX19ESUdfUkFORE9NX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfRElHX1RFU1RfUEFUVEVSTl9fRElHX1JBTkRPTV9QQVRURVJOX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUczX0RJR19URVNUX1BBVFRFUk5fX0RJR19URVNUX1BBVFRFUk5fRVhURVJOQUxfUkVTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHM19ESUdfVEVTVF9QQVRURVJOX19ESUdfU1RBVElDX1RFU1RfUEFUVEVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0RJR19URVNUX1BBVFRFUk5fX0RJR19URVNUX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0RJR19URVNUX1BBVFRFUk5fX0RJR19IQUxGX0NMT0NLX1BBVFRFUk5fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUczX0RJR19URVNUX1BBVFRFUk5fX0RJR19SQU5ET01fUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUczX0RJR19URVNUX1BBVFRFUk5fX0RJR19SQU5ET01fUEFUVEVSTl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUczX0RJR19URVNUX1BBVFRFUk5fX0RJR19URVNUX1BBVFRFUk5fRVhURVJOQUxfUkVTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUczX0RJR19URVNUX1BBVFRFUk5fX0RJR19TVEFUSUNfVEVTVF9QQVRURVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9ESUczX0RJR19SQU5ET01fUEFUVEVSTl9TRUVECisjZGVmaW5lIERJRzNfRElHX1JBTkRPTV9QQVRURVJOX1NFRURfX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19ESUdfUkFOX1BBVF9EVVJJTkdfREVfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzNfRElHX1JBTkRPTV9QQVRURVJOX1NFRURfX0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisjZGVmaW5lIERJRzNfRElHX1JBTkRPTV9QQVRURVJOX1NFRURfX0RJR19SQU5fUEFUX0RVUklOR19ERV9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RJRzNfRElHX0ZJRk9fU1RBVFVTCisjZGVmaW5lIERJRzNfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19MRVZFTF9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fVVNFX09WRVJXUklURV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX09WRVJXUklURV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzNfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19FUlJPUl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fQ0FMX0FWRVJBR0VfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX01BWElNVU1fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fTUlOSU1VTV9MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERJRzNfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19SRUFEX0NMT0NLX1NSQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0NBTElCUkFURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESUczX0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fRk9SQ0VfUkVDQUxfQVZFUkFHRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzNfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19GT1JDRV9SRUNPTVBfTUlOTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0xFVkVMX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX1VTRV9PVkVSV1JJVEVfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX09WRVJXUklURV9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGQ0wKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0VSUk9SX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0NBTF9BVkVSQUdFX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX01BWElNVU1fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX01JTklNVU1fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0MwMDAwMEwKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX1JFQURfQ0xPQ0tfU1JDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0NBTElCUkFURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0ZPUkNFX1JFQ0FMX0FWRVJBR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRElHM19ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0ZPUkNFX1JFQ09NUF9NSU5NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHM19IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzNfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHM19IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHM19IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHM19IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHM19IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0CisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNF9fSERNSV9HRU5FUklDNl9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfX0hETUlfR0VORVJJQzdfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNF9fSERNSV9HRU5FUklDNl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNF9fSERNSV9HRU5FUklDN19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzNfSERNSV9DT05UUk9MCisjZGVmaW5lIERJRzNfSERNSV9DT05UUk9MX19IRE1JX0tFRVBPVVRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9EQVRBX1NDUkFNQkxFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHM19IRE1JX0NPTlRST0xfX0hETUlfQ0xPQ0tfQ0hBTk5FTF9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzNfSERNSV9DT05UUk9MX19IRE1JX05PX0VYVFJBX05VTExfUEFDS0VUX0ZJTExFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9QQUNLRVRfR0VOX1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHM19IRE1JX0NPTlRST0xfX0hETUlfRVJST1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfSERNSV9DT05UUk9MX19IRE1JX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9VTlNDUkFNQkxFRF9DT05UUk9MX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfSERNSV9DT05UUk9MX19IRE1JX0RFRVBfQ09MT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19IRE1JX0NPTlRST0xfX0hETUlfREVFUF9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9LRUVQT1VUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9EQVRBX1NDUkFNQkxFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9DTE9DS19DSEFOTkVMX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9OT19FWFRSQV9OVUxMX1BBQ0tFVF9GSUxMRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9QQUNLRVRfR0VOX1ZFUlNJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9FUlJPUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9FUlJPUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9VTlNDUkFNQkxFRF9DT05UUk9MX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9ERUVQX0NPTE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUczX0hETUlfQ09OVFJPTF9fSERNSV9ERUVQX0NPTE9SX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9ESUczX0hETUlfU1RBVFVTCisjZGVmaW5lIERJRzNfSERNSV9TVEFUVVNfX0hETUlfQUNUSVZFX0FWTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0hETUlfU1RBVFVTX19IRE1JX0FVRElPX1BBQ0tFVF9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfSERNSV9TVEFUVVNfX0hETUlfVkJJX1BBQ0tFVF9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHM19IRE1JX1NUQVRVU19fSERNSV9FUlJPUl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESUczX0hETUlfU1RBVFVTX19IRE1JX0FDVElWRV9BVk1VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0hETUlfU1RBVFVTX19IRE1JX0FVRElPX1BBQ0tFVF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUczX0hETUlfU1RBVFVTX19IRE1JX1ZCSV9QQUNLRVRfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESUczX0hETUlfU1RBVFVTX19IRE1JX0VSUk9SX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorLy9ESUczX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHM19IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FVRElPX0RFTEFZX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19TRU5EX01BWF9QQUNLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fUEFDS0VUU19QRVJfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19ERUxBWV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERJRzNfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19TRU5EX01BWF9QQUNLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzNfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19QQUNLRVRTX1BFUl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisvL0RJRzNfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUczX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0FVVE9fU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUczX0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9OX01VTFRJUExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0FVRElPX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfQVVUT19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfTl9NVUxUSVBMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfQVVESU9fUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHM19IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTAorI2RlZmluZSBESUczX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX05VTExfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9HQ19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfR0NfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUczX0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0lTUkNfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzNfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9OVUxMX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHM19IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9HQ19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHM19IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9HQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHM19IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHM19IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHM19IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMAorI2RlZmluZSBESUczX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX0FVRElPX0lORk9fU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9BVURJT19JTkZPX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzNfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfTVBFR19JTkZPX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX01QRUdfSU5GT19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9BVURJT19JTkZPX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9BVURJT19JTkZPX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9NUEVHX0lORk9fU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9NUEVHX0lORk9fQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKy8vRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMQorI2RlZmluZSBESUczX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxX19IRE1JX0FVRElPX0lORk9fTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9fSERNSV9NUEVHX0lORk9fTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxX19IRE1JX0FVRElPX0lORk9fTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBESUczX0hETUlfSU5GT0ZSQU1FX0NPTlRST0wxX19IRE1JX01QRUdfSU5GT19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9ESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDAKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzBfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzFfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzJfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzNfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzRfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzVfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzZfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzdfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRElHM19IRE1JX0dDCisjZGVmaW5lIERJRzNfSERNSV9HQ19fSERNSV9HQ19BVk1VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0hETUlfR0NfX0hETUlfR0NfQVZNVVRFX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHM19IRE1JX0dDX19IRE1JX0RFRkFVTFRfUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfSERNSV9HQ19fSERNSV9QQUNLSU5HX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0hETUlfR0NfX0hETUlfUEFDS0lOR19QSEFTRV9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHM19IRE1JX0dDX19IRE1JX0dDX0FWTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHM19IRE1JX0dDX19IRE1JX0dDX0FWTVVURV9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHM19IRE1JX0dDX19IRE1JX0RFRkFVTFRfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHM19IRE1JX0dDX19IRE1JX1BBQ0tJTkdfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRElHM19IRE1JX0dDX19IRE1JX1BBQ0tJTkdfUEhBU0VfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vRElHM19BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMgorI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0xBWU9VVF9PVlJEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19MQVlPVVRfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfQVVESU9fQ0hBTk5FTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0RQX0FVRElPX1NUUkVBTV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfSEJSX0VOQUJMRV9PVlJEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF82MDk1OF9PU0ZfT1ZSRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0xBWU9VVF9PVlJEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0xBWU9VVF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0NIQU5ORUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0RQX0FVRElPX1NUUkVBTV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0hCUl9FTkFCTEVfT1ZSRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UXzYwOTU4X09TRl9PVlJEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9ESUczX0FGTVRfSVNSQzFfMAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19DT05USU5VRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzNfQUZNVF9JU1JDMV8wX19BRk1UX0lTUkNfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX0NPTlRJTlVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9ESUczX0FGTVRfSVNSQzFfMQorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfSVNSQzFfMgorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfSVNSQzFfMworI2RlZmluZSBESUczX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfSVNSQzFfNAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfSVNSQzJfMAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfSVNSQzJfMQorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfSVNSQzJfMgorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfSVNSQzJfMworI2RlZmluZSBESUczX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMyOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMyOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMyOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMzMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMzMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDIKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyX19IRE1JX0dFTkVSSUMyX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMl9fSERNSV9HRU5FUklDM19MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyX19IRE1JX0dFTkVSSUMyX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyX19IRE1JX0dFTkVSSUMzX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MM19fSERNSV9HRU5FUklDNF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDNfX0hETUlfR0VORVJJQzVfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MM19fSERNSV9HRU5FUklDNF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MM19fSERNSV9HRU5FUklDNV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzNfSERNSV9EQl9DT05UUk9MCisjZGVmaW5lIERJRzNfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHM19IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfVEFLRU5fQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzNfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHM19IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJRzNfSERNSV9EQl9DT05UUk9MX19WVVBEQVRFX0RCX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfVEFLRU5fQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9UQUtFTl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUczX0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9UQUtFTl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9ESUczX0RNRV9DT05UUk9MCisjZGVmaW5lIERJRzNfRE1FX0NPTlRST0xfX01FVEFEQVRBX0hVQlBfUkVRVUVTVE9SX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0RNRV9DT05UUk9MX19NRVRBREFUQV9FTkdJTkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHM19ETUVfQ09OVFJPTF9fTUVUQURBVEFfU1RSRUFNX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUczX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElHM19ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfVEFLRU5fQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzNfRE1FX0NPTlRST0xfX01FVEFEQVRBX0hVQlBfUkVRVUVTVE9SX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERJRzNfRE1FX0NPTlRST0xfX01FVEFEQVRBX0VOR0lORV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzNfRE1FX0NPTlRST0xfX01FVEFEQVRBX1NUUkVBTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzNfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzNfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJRzNfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1RBS0VOX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzNfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL0RJRzNfQUZNVF9NUEVHX0lORk8wCisjZGVmaW5lIERJRzNfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19DSEVDS1NVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX01CMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzNfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19DSEVDS1NVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzNfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzNfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzNfQUZNVF9NUEVHX0lORk8xCisjZGVmaW5lIERJRzNfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19NQjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fTUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19BRk1UX01QRUdfSU5GTzFfX0FGTVRfTVBFR19JTkZPX0ZSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzNfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19NQjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzNfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19NRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERJRzNfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19GUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RJRzNfQUZNVF9HRU5FUklDX0hEUgorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfR0VORVJJQ18wCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzNfQUZNVF9HRU5FUklDXzEKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHM19BRk1UX0dFTkVSSUNfMgorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEU5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEUxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfR0VORVJJQ18zCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzNfQUZNVF9HRU5FUklDXzQKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHM19BRk1UX0dFTkVSSUNfNQorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfR0VORVJJQ182CisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzNfQUZNVF9HRU5FUklDXzcKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUyOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUyOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUyOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUzMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHM19BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUzMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMV9fSERNSV9HRU5FUklDMF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfX0hETUlfR0VORVJJQzFfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMV9fSERNSV9HRU5FUklDMF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMV9fSERNSV9HRU5FUklDMV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzNfSERNSV9BQ1JfMzJfMAorI2RlZmluZSBESUczX0hETUlfQUNSXzMyXzBfX0hETUlfQUNSX0NUU18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHM19IRE1JX0FDUl8zMl8wX19IRE1JX0FDUl9DVFNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vRElHM19IRE1JX0FDUl8zMl8xCisjZGVmaW5lIERJRzNfSERNSV9BQ1JfMzJfMV9fSERNSV9BQ1JfTl8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0hETUlfQUNSXzMyXzFfX0hETUlfQUNSX05fMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9ESUczX0hETUlfQUNSXzQ0XzAKKyNkZWZpbmUgRElHM19IRE1JX0FDUl80NF8wX19IRE1JX0FDUl9DVFNfNDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzNfSERNSV9BQ1JfNDRfMF9fSERNSV9BQ1JfQ1RTXzQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL0RJRzNfSERNSV9BQ1JfNDRfMQorI2RlZmluZSBESUczX0hETUlfQUNSXzQ0XzFfX0hETUlfQUNSX05fNDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19IRE1JX0FDUl80NF8xX19IRE1JX0FDUl9OXzQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vRElHM19IRE1JX0FDUl80OF8wCisjZGVmaW5lIERJRzNfSERNSV9BQ1JfNDhfMF9fSERNSV9BQ1JfQ1RTXzQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUczX0hETUlfQUNSXzQ4XzBfX0hETUlfQUNSX0NUU180OF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9ESUczX0hETUlfQUNSXzQ4XzEKKyNkZWZpbmUgRElHM19IRE1JX0FDUl80OF8xX19IRE1JX0FDUl9OXzQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfSERNSV9BQ1JfNDhfMV9fSERNSV9BQ1JfTl80OF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL0RJRzNfSERNSV9BQ1JfU1RBVFVTXzAKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9TVEFUVVNfMF9fSERNSV9BQ1JfQ1RTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzNfSERNSV9BQ1JfU1RBVFVTXzBfX0hETUlfQUNSX0NUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL0RJRzNfSERNSV9BQ1JfU1RBVFVTXzEKKyNkZWZpbmUgRElHM19IRE1JX0FDUl9TVEFUVVNfMV9fSERNSV9BQ1JfTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfSERNSV9BQ1JfU1RBVFVTXzFfX0hETUlfQUNSX05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL0RJRzNfQUZNVF9BVURJT19JTkZPMAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DSEVDS1NVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUczX0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DSEVDS1NVTV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0hFQ0tTVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzgwMEwKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0hFQ0tTVU1fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ1hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKy8vRElHM19BRk1UX0FVRElPX0lORk8xCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0NBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19MU1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fRE1fSU5IX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0xGRVBCTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fQ0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fTFNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzgwMEwKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fRE1fSU5IX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fTEZFUEJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKy8vRElHM19BRk1UXzYwOTU4XzAKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DQVRFR09SWV9DT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfU09VUkNFX05VTUJFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19CX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DQVRFR09SWV9DT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19TT1VSQ0VfTlVNQkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9ESUczX0FGTVRfNjA5NThfMQorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19XT1JEX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X1ZBTElEX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfVkFMSURfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX1dPUkRfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X1ZBTElEX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X1ZBTElEX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0RJRzNfQUZNVF9BVURJT19DUkNfQ09OVFJPTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NIX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX1NPVVJDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NIX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUczX0FGTVRfUkFNUF9DT05UUk9MMAorI2RlZmluZSBESUczX0FGTVRfUkFNUF9DT05UUk9MMF9fQUZNVF9SQU1QX01BWF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX1JBTVBfQ09OVFJPTDBfX0FGTVRfUkFNUF9EQVRBX1NJR05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUczX0FGTVRfUkFNUF9DT05UUk9MMF9fQUZNVF9SQU1QX01BWF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBESUczX0FGTVRfUkFNUF9DT05UUk9MMF9fQUZNVF9SQU1QX0RBVEFfU0lHTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUczX0FGTVRfUkFNUF9DT05UUk9MMQorI2RlZmluZSBESUczX0FGTVRfUkFNUF9DT05UUk9MMV9fQUZNVF9SQU1QX01JTl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX1JBTVBfQ09OVFJPTDFfX0FGTVRfQVVESU9fVEVTVF9DSF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfUkFNUF9DT05UUk9MMV9fQUZNVF9SQU1QX01JTl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBESUczX0FGTVRfUkFNUF9DT05UUk9MMV9fQUZNVF9BVURJT19URVNUX0NIX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUczX0FGTVRfUkFNUF9DT05UUk9MMgorI2RlZmluZSBESUczX0FGTVRfUkFNUF9DT05UUk9MMl9fQUZNVF9SQU1QX0lOQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX1JBTVBfQ09OVFJPTDJfX0FGTVRfUkFNUF9JTkNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRElHM19BRk1UX1JBTVBfQ09OVFJPTDMKKyNkZWZpbmUgRElHM19BRk1UX1JBTVBfQ09OVFJPTDNfX0FGTVRfUkFNUF9ERUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfQUZNVF9SQU1QX0NPTlRST0wzX19BRk1UX1JBTVBfREVDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RJRzNfQUZNVF82MDk1OF8yCisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUczX0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl82X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRElHM19BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKy8vRElHM19BRk1UX0FVRElPX0NSQ19SRVNVTFQKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX0NSQ19SRVNVTFRfX0FGTVRfQVVESU9fQ1JDX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19DUkNfUkVTVUxUX19BRk1UX0FVRElPX0NSQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fQ1JDX1JFU1VMVF9fQUZNVF9BVURJT19DUkNfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fQ1JDX1JFU1VMVF9fQUZNVF9BVURJT19DUkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ESUczX0FGTVRfU1RBVFVTCisjZGVmaW5lIERJRzNfQUZNVF9TVEFUVVNfX0FGTVRfQVVESU9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUczX0FGTVRfU1RBVFVTX19BRk1UX0FaX0hCUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19BRk1UX1NUQVRVU19fQUZNVF9BVURJT19GSUZPX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUczX0FGTVRfU1RBVFVTX19BRk1UX0FaX0FVRElPX0VOQUJMRV9DSEdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzNfQUZNVF9TVEFUVVNfX0FGTVRfQVVESU9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzNfQUZNVF9TVEFUVVNfX0FGTVRfQVpfSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzNfQUZNVF9TVEFUVVNfX0FGTVRfQVVESU9fRklGT19PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9TVEFUVVNfX0FGTVRfQVpfQVVESU9fRU5BQkxFX0NIR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fU0FNUExFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX1JFU0VUX0ZJRk9fV0hFTl9BVURJT19ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19URVNUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fVEVTVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX0ZJRk9fT1ZFUkZMT1dfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fQ0hBTk5FTF9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF82MDk1OF9DU19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHM19BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FaX0FVRElPX0VOQUJMRV9DSEdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUczX0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQkxBTktfVEVTVF9EQVRBX09OX0VOQ19FTkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19TQU1QTEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9SRVNFVF9GSUZPX1dIRU5fQVVESU9fRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19URVNUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19URVNUX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19GSUZPX09WRVJGTE9XX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19DSEFOTkVMX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF82MDk1OF9DU19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BWl9BVURJT19FTkFCTEVfQ0hHX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9CTEFOS19URVNUX0RBVEFfT05fRU5DX0VOQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0xPQ0tfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19DT05GTElDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0NPTkZMSUNUX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19MT0NLX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19DT05GTElDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19DT05GTElDVF9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RJRzNfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDAKKyNkZWZpbmUgRElHM19BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9BVURJT19JTkZPX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzNfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfQVVESU9fSU5GT19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUczX0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX19BRk1UX01QRUdfSU5GT19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHM19BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9BVURJT19JTkZPX1NPVVJDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHM19BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9BVURJT19JTkZPX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElHM19BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9NUEVHX0lORk9fVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vRElHM19BRk1UX0FVRElPX1NSQ19DT05UUk9MCisjZGVmaW5lIERJRzNfQUZNVF9BVURJT19TUkNfQ09OVFJPTF9fQUZNVF9BVURJT19TUkNfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0FGTVRfQVVESU9fU1JDX0NPTlRST0xfX0FGTVRfQVVESU9fU1JDX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorLy9ESUczX0RJR19CRV9DTlRMCisjZGVmaW5lIERJRzNfRElHX0JFX0NOVExfX0RJR19EVUFMX0xJTktfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0RJR19CRV9DTlRMX19ESUdfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHM19ESUdfQkVfQ05UTF9fRElHX1JCX1NXSVRDSF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzNfRElHX0JFX0NOVExfX0RJR19GRV9TT1VSQ0VfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0RJR19CRV9DTlRMX19ESUdfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfRElHX0JFX0NOVExfX0RJR19IUERfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHM19ESUdfQkVfQ05UTF9fRElHX0RVQUxfTElOS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHM19ESUdfQkVfQ05UTF9fRElHX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHM19ESUdfQkVfQ05UTF9fRElHX1JCX1NXSVRDSF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHM19ESUdfQkVfQ05UTF9fRElHX0ZFX1NPVVJDRV9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgRElHM19ESUdfQkVfQ05UTF9fRElHX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRElHM19ESUdfQkVfQ05UTF9fRElHX0hQRF9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vRElHM19ESUdfQkVfRU5fQ05UTAorI2RlZmluZSBESUczX0RJR19CRV9FTl9DTlRMX19ESUdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19ESUdfQkVfRU5fQ05UTF9fRElHX1NZTUNMS19CRV9PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfRElHX0JFX0VOX0NOVExfX0RJR19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzNfRElHX0JFX0VOX0NOVExfX0RJR19TWU1DTEtfQkVfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RJRzNfVE1EU19DTlRMCisjZGVmaW5lIERJRzNfVE1EU19DTlRMX19UTURTX1NZTkNfUEhBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX1RNRFNfQ05UTF9fVE1EU19TWU5DX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9ESUczX1RNRFNfQ09OVFJPTF9DSEFSCisjZGVmaW5lIERJRzNfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSMF9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjFfT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHM19UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIyX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzNfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSM19PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUczX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjBfT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjFfT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUczX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjJfT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUczX1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjNfT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorLy9ESUczX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0sKKyNkZWZpbmUgRElHM19UTURTX0NPTlRST0wwX0ZFRURCQUNLX19UTURTX0NPTlRST0wwX0ZFRURCQUNLX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfVE1EU19DT05UUk9MMF9GRUVEQkFDS19fVE1EU19DT05UUk9MMF9GRUVEQkFDS19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBESUczX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorLy9ESUczX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMCisjZGVmaW5lIERJRzNfVE1EU19TVEVSRU9TWU5DX0NUTF9TRUxfX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMX19UTURTX1NURVJFT1NZTkNfQ1RMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9ESUczX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xCisjZGVmaW5lIERJRzNfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzFfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzFfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERJRzNfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8wXzFfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RJRzNfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzMKKyNkZWZpbmUgRElHM19UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfM19fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfM19fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRElHM19UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzJfM19fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vRElHM19UTURTX0NUTF9CSVRTCisjZGVmaW5lIERJRzNfVE1EU19DVExfQklUU19fVE1EU19DVEwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19UTURTX0NUTF9CSVRTX19UTURTX0NUTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzNfVE1EU19DVExfQklUU19fVE1EU19DVEwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzNfVE1EU19DVExfQklUU19fVE1EU19DVEwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVExfQklUU19fVE1EU19DVEwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVExfQklUU19fVE1EU19DVEwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RJRzNfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0wKKyNkZWZpbmUgRElHM19UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfU1lOQ19EQ0JBTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUczX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfVEVTVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX1RFU1RfSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzNfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzNfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfU1lOQ19EQ0JBTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERJRzNfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9URVNUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzNfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9URVNUX0lOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERJRzNfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RJRzNfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSCisjZGVmaW5lIERJRzNfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSX19UTURTX1NZTkNfRENCQUxfQ0hBUjAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9fVE1EU19TWU5DX0RDQkFMX0NIQVIxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSX19UTURTX1NZTkNfRENCQUxfQ0hBUjAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERJRzNfVE1EU19TWU5DX0RDQkFMQU5DRV9DSEFSX19UTURTX1NZTkNfRENCQUxfQ0hBUjExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RJRzNfVE1EU19DVEwwXzFfR0VOX0NOVEwKKyNkZWZpbmUgRElHM19UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHM19UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfTU9EVUxBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzNfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9VU0VfRkVFREJBQ0tfUEFUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfRkJfU1lOQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHM19UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzNfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHM19UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJRzNfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX01PRFVMQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX1VTRV9GRUVEQkFDS19QQVRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfRkJfU1lOQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJRzNfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHM19UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU18yQklUX0NPVU5URVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9NT0RVTEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfVVNFX0ZFRURCQUNLX1BBVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfRkJfU1lOQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9NT0RVTEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfVVNFX0ZFRURCQUNLX1BBVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfRkJfU1lOQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESUczX1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTXzJCSVRfQ09VTlRFUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUczX1RNRFNfQ1RMMl8zX0dFTl9DTlRMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHM19UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX01PRFVMQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfVVNFX0ZFRURCQUNLX1BBVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHM19UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0ZCX1NZTkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUczX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHM19UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESUczX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9NT0RVTEFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19VU0VfRkVFREJBQ0tfUEFUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHM19UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0ZCX1NZTkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESUczX1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX01PRFVMQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9VU0VfRkVFREJBQ0tfUEFUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9GQl9TWU5DX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9QQVRURVJOX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX01PRFVMQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19VU0VfRkVFREJBQ0tfUEFUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19GQl9TWU5DX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERJRzNfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19QQVRURVJOX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RJRzNfRElHX1ZFUlNJT04KKyNkZWZpbmUgRElHM19ESUdfVkVSU0lPTl9fRElHX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfRElHX1ZFUlNJT05fX0RJR19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RJRzNfRElHX0xBTkVfRU5BQkxFCisjZGVmaW5lIERJRzNfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTBFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUczX0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUxRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHM19ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzNfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTNFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUczX0RJR19MQU5FX0VOQUJMRV9fRElHX0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHM19ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMUVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHM19ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHM19ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FM0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElHM19ESUdfTEFORV9FTkFCTEVfX0RJR19DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRElHM19BRk1UX0NOVEwKKyNkZWZpbmUgRElHM19BRk1UX0NOVExfX0FGTVRfQVVESU9fQ0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfQUZNVF9DTlRMX19BRk1UX0FVRElPX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0FGTVRfQ05UTF9fQUZNVF9BVURJT19DTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0FGTVRfQ05UTF9fQUZNVF9BVURJT19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9ESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMQorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERJRzNfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElHM19BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19GUkFNRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19GUkFNRV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19JTU1FRElBVEVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBESUczX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDUKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMwX0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMF9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzFfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMxX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMl9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzJfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMzX0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDM19JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzRfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM0X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNV9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzVfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM2X0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNl9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBESUczX0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzdfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRElHM19IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM3X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMF9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMF9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMV9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMV9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMl9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMl9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDM19JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDM19JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNF9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNF9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNV9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNV9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNl9JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNl9JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDN19JTU1FRElBVEVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJRzNfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDN19JTU1FRElBVEVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL0RJRzNfRk9SQ0VfRElHX0RJU0FCTEUKKyNkZWZpbmUgRElHM19GT1JDRV9ESUdfRElTQUJMRV9fRk9SQ0VfRElHX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzNfRk9SQ0VfRElHX0RJU0FCTEVfX0ZPUkNFX0RJR19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGlvX2RwM19kaXNwZGVjCisvL0RQM19EUF9MSU5LX0NOVEwKKyNkZWZpbmUgRFAzX0RQX0xJTktfQ05UTF9fRFBfTElOS19UUkFJTklOR19DT01QTEVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9MSU5LX0NOVExfX0RQX0xJTktfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfTElOS19DTlRMX19EUF9FTUJFRERFRF9QQU5FTF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQM19EUF9MSU5LX0NOVExfX0RQX0xJTktfVFJBSU5JTkdfQ09NUExFVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQM19EUF9MSU5LX0NOVExfX0RQX0xJTktfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQM19EUF9MSU5LX0NOVExfX0RQX0VNQkVEREVEX1BBTkVMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL0RQM19EUF9QSVhFTF9GT1JNQVQKKyNkZWZpbmUgRFAzX0RQX1BJWEVMX0ZPUk1BVF9fRFBfUElYRUxfRU5DT0RJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9QSVhFTF9GT1JNQVRfX0RQX0NPTVBPTkVOVF9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAzX0RQX1BJWEVMX0ZPUk1BVF9fRFBfUElYRUxfQ09NQklORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDNfRFBfUElYRUxfRk9STUFUX19EUF9QSVhFTF9FTkNPRElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDNfRFBfUElYRUxfRk9STUFUX19EUF9DT01QT05FTlRfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorI2RlZmluZSBEUDNfRFBfUElYRUxfRk9STUFUX19EUF9QSVhFTF9DT01CSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9EUDNfRFBfTVNBX0NPTE9SSU1FVFJZCisjZGVmaW5lIERQM19EUF9NU0FfQ09MT1JJTUVUUllfX0RQX01TQV9NSVNDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAzX0RQX01TQV9DT0xPUklNRVRSWV9fRFBfTVNBX01JU0MwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFAzX0RQX0NPTkZJRworI2RlZmluZSBEUDNfRFBfQ09ORklHX19EUF9VRElfTEFORVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0NPTkZJR19fRFBfVURJX0xBTkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vRFAzX0RQX1ZJRF9TVFJFQU1fQ05UTAorI2RlZmluZSBEUDNfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNfREVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQM19EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9DSEFOR0VfS0VFUE9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDNfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDNfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0RJU19ERUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEUDNfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDNfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX0NIQU5HRV9LRUVQT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9EUDNfRFBfU1RFRVJfRklGTworI2RlZmluZSBEUDNfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfRklGT19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDNfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFAzX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQM19EUF9TVEVFUl9GSUZPX19EUF9UVV9PVkVSRkxPV19GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfU1RFRVJfRklGT19fRFBfVFVfT1ZFUkZMT1dfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAzX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX0ZJRk9fUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAzX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAzX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFAzX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFAzX0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFAzX0RQX1NURUVSX0ZJRk9fX0RQX1RVX09WRVJGTE9XX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAzX0RQX1NURUVSX0ZJRk9fX0RQX1RVX09WRVJGTE9XX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vRFAzX0RQX01TQV9NSVNDCisjZGVmaW5lIERQM19EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAzX0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQM19EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERQM19EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERQM19EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERQM19EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0M0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RQM19EUF9WSURfVElNSU5HCisjZGVmaW5lIERQM19EUF9WSURfVElNSU5HX19EUF9WSURfTV9OX0RPVUJMRV9CVUZGRVJfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDNfRFBfVklEX1RJTUlOR19fRFBfVklEX01fTl9HRU5fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAzX0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9OX01VTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQM19EUF9WSURfVElNSU5HX19EUF9WSURfTV9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDNfRFBfVklEX1RJTUlOR19fRFBfVklEX05fRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQM19EUF9WSURfVElNSU5HX19EUF9WSURfTV9OX0RPVUJMRV9CVUZGRVJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQM19EUF9WSURfVElNSU5HX19EUF9WSURfTV9OX0dFTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQM19EUF9WSURfVElNSU5HX19EUF9WSURfTl9NVUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIERQM19EUF9WSURfVElNSU5HX19EUF9WSURfTV9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERQM19EUF9WSURfVElNSU5HX19EUF9WSURfTl9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RQM19EUF9WSURfTgorI2RlZmluZSBEUDNfRFBfVklEX05fX0RQX1ZJRF9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1ZJRF9OX19EUF9WSURfTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAzX0RQX1ZJRF9NCisjZGVmaW5lIERQM19EUF9WSURfTV9fRFBfVklEX01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfVklEX01fX0RQX1ZJRF9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EUDNfRFBfTElOS19GUkFNSU5HX0NOVEwKKyNkZWZpbmUgRFAzX0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9JRExFX0JTX0lOVEVSVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9MSU5LX0ZSQU1JTkdfQ05UTF9fRFBfVkJJRF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAzX0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9WSURfRU5IQU5DRURfRlJBTUVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDNfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX0lETEVfQlNfSU5URVJWQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBEUDNfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX1ZCSURfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUDNfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX1ZJRF9FTkhBTkNFRF9GUkFNRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9EUDNfRFBfSEJSMl9FWUVfUEFUVEVSTgorI2RlZmluZSBEUDNfRFBfSEJSMl9FWUVfUEFUVEVSTl9fRFBfSEJSMl9FWUVfUEFUVEVSTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0hCUjJfRVlFX1BBVFRFUk5fX0RQX0hCUjJfRVlFX1BBVFRFUk5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRFAzX0RQX1ZJRF9NU0FfVkJJRAorI2RlZmluZSBEUDNfRFBfVklEX01TQV9WQklEX19EUF9WSURfTVNBX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1ZJRF9NU0FfVkJJRF9fRFBfVklEX1ZCSURfRklFTERfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDNfRFBfVklEX01TQV9WQklEX19EUF9WSURfTVNBX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBEUDNfRFBfVklEX01TQV9WQklEX19EUF9WSURfVkJJRF9GSUVMRF9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUDNfRFBfVklEX0lOVEVSUlVQVF9DTlRMCisjZGVmaW5lIERQM19EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAzX0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNBQkxFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQM19EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQM19EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQM19EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL0RQM19EUF9EUEhZX0NOVEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERQM19EUF9EUEhZX0NOVExfX0RQSFlfRkVDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19SRUFEWV9TSEFET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfQUNUSVZFX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQM19EUF9EUEhZX0NOVExfX0RQSFlfQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ05UTF9fRFBIWV9TS0VXX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19SRUFEWV9TSEFET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19BQ1RJVkVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DTlRMX19EUEhZX1NLRVdfQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUDNfRFBfRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTAorI2RlZmluZSBEUDNfRFBfRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTF9fRFBIWV9UUkFJTklOR19QQVRURVJOX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vRFAzX0RQX0RQSFlfU1lNMAorI2RlZmluZSBEUDNfRFBfRFBIWV9TWU0wX19EUEhZX1NZTTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQM19EUF9EUEhZX1NZTTBfX0RQSFlfU1lNM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkYwMDAwMEwKKy8vRFAzX0RQX0RQSFlfU1lNMQorI2RlZmluZSBEUDNfRFBfRFBIWV9TWU0xX19EUEhZX1NZTTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU01X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQM19EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU00X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU01X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkMwMEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU1lNMV9fRFBIWV9TWU02X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkYwMDAwMEwKKy8vRFAzX0RQX0RQSFlfU1lNMgorI2RlZmluZSBEUDNfRFBfRFBIWV9TWU0yX19EUEhZX1NZTTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU1lNMl9fRFBIWV9TWU04X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQM19EUF9EUEhZX1NZTTJfX0RQSFlfU1lNN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQM19EUF9EUEhZX1NZTTJfX0RQSFlfU1lNOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisvL0RQM19EUF9EUEhZXzhCMTBCX0NOVEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQM19EUF9EUEhZXzhCMTBCX0NOVExfX0RQSFlfOEIxMEJfRVhUX0RJU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9DVVJfRElTUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDNfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDNfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX0VYVF9ESVNQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDNfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX0NVUl9ESVNQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUDNfRFBfRFBIWV9QUkJTX0NOVEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDNfRFBfRFBIWV9QUkJTX0NOVExfX0RQSFlfUFJCU19TRUVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAzX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkYwMEwKKy8vRFAzX0RQX0RQSFlfU0NSQU1fQ05UTAorI2RlZmluZSBEUDNfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfQURWQU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0JTX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9LQ09ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQM19EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQM19EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0FEVkFOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQM19EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0JTX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGMDBMCisjZGVmaW5lIERQM19EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0tDT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RQM19EUF9EUEhZX0NSQ19FTgorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19DT05UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9EUEhZX0NSQ19FTl9fRFBIWV9DUkNfUkVTVUxUX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX0NPTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX1JFU1VMVF9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EUDNfRFBfRFBIWV9DUkNfQ05UTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfQ05UTF9fRFBIWV9DUkNfRklFTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vRFAzX0RQX0RQSFlfQ1JDX1JFU1VMVAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQM19EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EUDNfRFBfRFBIWV9DUkNfTVNUX0NOVEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX01TVF9DTlRMX19EUEhZX0NSQ19NU1RfRklSU1RfU0xPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9EUEhZX0NSQ19NU1RfQ05UTF9fRFBIWV9DUkNfTVNUX0xBU1RfU0xPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfTVNUX0NOVExfX0RQSFlfQ1JDX01TVF9GSVJTVF9TTE9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfTVNUX0NOVExfX0RQSFlfQ1JDX01TVF9MQVNUX1NMT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorLy9EUDNfRFBfRFBIWV9DUkNfTVNUX1NUQVRVUworI2RlZmluZSBEUDNfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19fRFBIWV9DUkNfTVNUX1BIQVNFX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQM19EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfRVJST1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9FUlJPUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklORworI2RlZmluZSBEUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX1JYX0ZBU1RfVFJBSU5JTkdfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9TV19GQVNUX1RSQUlOSU5HX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQM19EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfRkFTVF9UUkFJTklOR19WQkxBTktfRURHRV9ERVRFQ1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVFAxX1RJTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1RQMl9USU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX1JYX0ZBU1RfVFJBSU5JTkdfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX1NXX0ZBU1RfVFJBSU5JTkdfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVkJMQU5LX0VER0VfREVURUNUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVFAxX1RJTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRjAwTAorI2RlZmluZSBEUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVFAyX1RJTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9EUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVUworI2RlZmluZSBEUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vRFAzX0RQX1NFQ19DTlRMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX1NUUkVBTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVExfX0RQX1NFQ19BU1BfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMX19EUF9TRUNfQVRQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0FJUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDNfRFBfU0VDX0NOVExfX0RQX1NFQ19BQ01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEUDNfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AyX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQNF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDZfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQN19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEUDNfRFBfU0VDX0NOVExfX0RQX1NFQ19NUEdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX1NUUkVBTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0FTUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0FUUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0FJUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0FDTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDZfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTF9fRFBfU0VDX01QR19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RQM19EUF9TRUNfQ05UTDEKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0lTUkNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AxX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMl9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDNfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A0X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNV9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDZfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A3X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19JU1JDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfREVBRExJTkVfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfQU5ZX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AxX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AyX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AzX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A0X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A1X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A2X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A3X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQM19EUF9TRUNfRlJBTUlORzEKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HMV9fRFBfU0VDX0ZSQU1FX1NUQVJUX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9TRUNfRlJBTUlORzFfX0RQX1NFQ19WQkxBTktfVFJBTlNNSVRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HMV9fRFBfU0VDX0ZSQU1FX1NUQVJUX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HMV9fRFBfU0VDX1ZCTEFOS19UUkFOU01JVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAzX0RQX1NFQ19GUkFNSU5HMgorI2RlZmluZSBEUDNfRFBfU0VDX0ZSQU1JTkcyX19EUF9TRUNfU1RBUlRfUE9TSVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HMl9fRFBfU0VDX0hCTEFOS19UUkFOU01JVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfU0VDX0ZSQU1JTkcyX19EUF9TRUNfU1RBUlRfUE9TSVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDNfRFBfU0VDX0ZSQU1JTkcyX19EUF9TRUNfSEJMQU5LX1RSQU5TTUlUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDNfRFBfU0VDX0ZSQU1JTkczCisjZGVmaW5lIERQM19EUF9TRUNfRlJBTUlORzNfX0RQX1NFQ19JRExFX0ZSQU1FX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfU0VDX0ZSQU1JTkczX19EUF9TRUNfSURMRV9UUkFOU01JVF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQM19EUF9TRUNfRlJBTUlORzNfX0RQX1NFQ19JRExFX0ZSQU1FX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIERQM19EUF9TRUNfRlJBTUlORzNfX0RQX1NFQ19JRExFX1RSQU5TTUlUX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQM19EUF9TRUNfRlJBTUlORzQKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HNF9fRFBfU1NUX1NEUF9TUExJVFRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19DT0xMSVNJT05fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0NPTExJU0lPTl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDNfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQVVESU9fTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQM19EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19BVURJT19NVVRFX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HNF9fRFBfU1NUX1NEUF9TUExJVFRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0NPTExJU0lPTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0NPTExJU0lPTl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0FVRElPX01VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRFAzX0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0FVRElPX01VVEVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vRFAzX0RQX1NFQ19BVURfTgorI2RlZmluZSBEUDNfRFBfU0VDX0FVRF9OX19EUF9TRUNfQVVEX05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1NFQ19BVURfTl9fRFBfU0VDX0FVRF9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAzX0RQX1NFQ19BVURfTl9SRUFEQkFDSworI2RlZmluZSBEUDNfRFBfU0VDX0FVRF9OX1JFQURCQUNLX19EUF9TRUNfQVVEX05fUkVBREJBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1NFQ19BVURfTl9SRUFEQkFDS19fRFBfU0VDX0FVRF9OX1JFQURCQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAzX0RQX1NFQ19BVURfTQorI2RlZmluZSBEUDNfRFBfU0VDX0FVRF9NX19EUF9TRUNfQVVEX01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1NFQ19BVURfTV9fRFBfU0VDX0FVRF9NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAzX0RQX1NFQ19BVURfTV9SRUFEQkFDSworI2RlZmluZSBEUDNfRFBfU0VDX0FVRF9NX1JFQURCQUNLX19EUF9TRUNfQVVEX01fUkVBREJBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1NFQ19BVURfTV9SRUFEQkFDS19fRFBfU0VDX0FVRF9NX1JFQURCQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFAzX0RQX1NFQ19USU1FU1RBTVAKKyNkZWZpbmUgRFAzX0RQX1NFQ19USU1FU1RBTVBfX0RQX1NFQ19USU1FU1RBTVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9TRUNfVElNRVNUQU1QX19EUF9TRUNfVElNRVNUQU1QX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RQM19EUF9TRUNfUEFDS0VUX0NOVEwKKyNkZWZpbmUgRFAzX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9DT0RJTkdfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQM19EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19BU1BfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDNfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfVkVSU0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAzX0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9DSEFOTkVMX0NPVU5UX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX0NPRElOR19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBEUDNfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDNfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfVkVSU0lPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDNfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX0NIQU5ORUxfQ09VTlRfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9EUDNfRFBfTVNFX1JBVEVfQ05UTAorI2RlZmluZSBEUDNfRFBfTVNFX1JBVEVfQ05UTF9fRFBfTVNFX1JBVEVfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX01TRV9SQVRFX0NOVExfX0RQX01TRV9SQVRFX1hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEUDNfRFBfTVNFX1JBVEVfQ05UTF9fRFBfTVNFX1JBVEVfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRkZGTAorI2RlZmluZSBEUDNfRFBfTVNFX1JBVEVfQ05UTF9fRFBfTVNFX1JBVEVfWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EUDNfRFBfTVNFX1JBVEVfVVBEQVRFCisjZGVmaW5lIERQM19EUF9NU0VfUkFURV9VUERBVEVfX0RQX01TRV9SQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfTVNFX1JBVEVfVVBEQVRFX19EUF9NU0VfUkFURV9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EUDNfRFBfTVNFX1NBVDAKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NSQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU1JDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NSQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NSQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFAzX0RQX01TRV9TQVQxCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TUkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NSQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQM19EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TUkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TUkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQM19EUF9NU0VfU0FUMgorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU1JDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQM19EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TUkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU1JDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU1JDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDNfRFBfTVNFX1NBVF9VUERBVEUKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVRfVVBEQVRFX19EUF9NU0VfU0FUX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9NU0VfU0FUX1VQREFURV9fRFBfTVNFXzE2X01UUF9LRUVQT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVF9VUERBVEVfX0RQX01TRV9TQVRfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVF9VUERBVEVfX0RQX01TRV8xNl9NVFBfS0VFUE9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EUDNfRFBfTVNFX0xJTktfVElNSU5HCisjZGVmaW5lIERQM19EUF9NU0VfTElOS19USU1JTkdfX0RQX01TRV9MSU5LX0ZSQU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfTVNFX0xJTktfVElNSU5HX19EUF9NU0VfTElOS19MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQM19EUF9NU0VfTElOS19USU1JTkdfX0RQX01TRV9MSU5LX0ZSQU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQM19EUF9NU0VfTElOS19USU1JTkdfX0RQX01TRV9MSU5LX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisvL0RQM19EUF9NU0VfTUlTQ19DTlRMCisjZGVmaW5lIERQM19EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfQkxBTktfQ09ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX1RJTUVTVEFNUF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAzX0RQX01TRV9NSVNDX0NOVExfX0RQX01TRV9aRVJPX0VOQ09ERVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQM19EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfQkxBTktfQ09ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQM19EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfVElNRVNUQU1QX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQM19EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfWkVST19FTkNPREVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RQM19EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTAorI2RlZmluZSBEUDNfRFBfRFBIWV9CU19TUl9TV0FQX0NOVExfX0RQSFlfTE9BRF9CU19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0JTX1NSX1NXQVBfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQM19EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9MT0FEX0JTX0NPVU5UX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0xPQURfQlNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0JTX1NSX1NXQVBfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFAzX0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0xPQURfQlNfQ09VTlRfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vRFAzX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0wKKyNkZWZpbmUgRFAzX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0xfX0RQX0RQSFlfSEJSMl9QQVRURVJOX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX19EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL0RQM19EUF9NU0VfU0FUMF9TVEFUVVMKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFAzX0RQX01TRV9TQVQxX1NUQVRVUworI2RlZmluZSBEUDNfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQM19EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU1JDM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDNfRFBfTVNFX1NBVDJfU1RBVFVTCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU1JDNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAzX0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TUkM1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQM19EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU1JDNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU1JDNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQM19EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQM19EUF9NU0FfVElNSU5HX1BBUkFNMQorI2RlZmluZSBEUDNfRFBfTVNBX1RJTUlOR19QQVJBTTFfX0RQX01TQV9WVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX01TQV9USU1JTkdfUEFSQU0xX19EUF9NU0FfSFRPVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfTVNBX1RJTUlOR19QQVJBTTFfX0RQX01TQV9WVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDNfRFBfTVNBX1RJTUlOR19QQVJBTTFfX0RQX01TQV9IVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDNfRFBfTVNBX1RJTUlOR19QQVJBTTIKKyNkZWZpbmUgRFAzX0RQX01TQV9USU1JTkdfUEFSQU0yX19EUF9NU0FfVlNUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9NU0FfVElNSU5HX1BBUkFNMl9fRFBfTVNBX0hTVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX01TQV9USU1JTkdfUEFSQU0yX19EUF9NU0FfVlNUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFAzX0RQX01TQV9USU1JTkdfUEFSQU0yX19EUF9NU0FfSFNUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAzX0RQX01TQV9USU1JTkdfUEFSQU0zCisjZGVmaW5lIERQM19EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX1ZTWU5DV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9WU1lOQ1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFAzX0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfSFNZTkNXSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9IU1lOQ1BPTEFSSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQM19EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX1ZTWU5DV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGRkZMCisjZGVmaW5lIERQM19EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX1ZTWU5DUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQM19EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX0hTWU5DV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDBMCisjZGVmaW5lIERQM19EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX0hTWU5DUE9MQVJJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQM19EUF9NU0FfVElNSU5HX1BBUkFNNAorI2RlZmluZSBEUDNfRFBfTVNBX1RJTUlOR19QQVJBTTRfX0RQX01TQV9WSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX01TQV9USU1JTkdfUEFSQU00X19EUF9NU0FfSFdJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfTVNBX1RJTUlOR19QQVJBTTRfX0RQX01TQV9WSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDNfRFBfTVNBX1RJTUlOR19QQVJBTTRfX0RQX01TQV9IV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDNfRFBfTVNPX0NOVEwKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fTlVNX09GX1NTVExJTktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19TVFJFQU1fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQVNQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FUUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQM19EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BSVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FDTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfR1NQMF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQM19EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19HU1AxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fTlVNX09GX1NTVExJTktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fU0VDX1NUUkVBTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FTUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FUUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FJUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FDTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0dTUDBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMX19EUF9NU09fU0VDX0dTUDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFAzX0RQX01TT19DTlRMMQorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1AzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQNF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A2X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQM19EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfTVBHX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAzX0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19JU1JDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDZfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX01QR19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEUDNfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0lTUkNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EUDNfRFBfRFNDX0NOVEwKKyNkZWZpbmUgRFAzX0RQX0RTQ19DTlRMX19EUF9EU0NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9EU0NfQ05UTF9fRFBfRFNDX1NMSUNFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX0RTQ19DTlRMX19EUF9EU0NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFAzX0RQX0RTQ19DTlRMX19EUF9EU0NfU0xJQ0VfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vRFAzX0RQX1NFQ19DTlRMMgorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfUFBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19QUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9EUDNfRFBfU0VDX0NOVEwzCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDNfX0RQX1NFQ19HU1AxX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEwzX19EUF9TRUNfR1NQMl9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDNfX0RQX1NFQ19HU1AxX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDNfX0RQX1NFQ19HU1AyX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQM19EUF9TRUNfQ05UTDQKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMNF9fRFBfU0VDX0dTUDNfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDRfX0RQX1NFQ19HU1A0X0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMNF9fRFBfU0VDX0dTUDNfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMNF9fRFBfU0VDX0dTUDRfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFAzX0RQX1NFQ19DTlRMNQorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw1X19EUF9TRUNfR1NQNV9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMNV9fRFBfU0VDX0dTUDZfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw1X19EUF9TRUNfR1NQNV9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw1X19EUF9TRUNfR1NQNl9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDNfRFBfU0VDX0NOVEw2CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDZfX0RQX1NFQ19HU1A3X0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw2X19EUF9TRUNfR1NQN19MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9EUDNfRFBfU0VDX0NOVEw3CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AwX1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMF9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDFfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AxX1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMl9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDJfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AzX1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQM19TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDRfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNF9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A1X1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDVfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNl9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A2X1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRFAzX0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDdfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDNfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQN19TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AwX1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AwX1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AxX1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AxX1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AyX1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AyX1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AzX1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AzX1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A0X1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A0X1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A1X1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A1X1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A2X1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A2X1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A3X1NFTkRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERQM19EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A3X1NFTkRfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RQM19EUF9EQl9DTlRMCisjZGVmaW5lIERQM19EUF9EQl9DTlRMX19EUF9EQl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfREJfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAzX0RQX0RCX0NOVExfX0RQX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQM19EUF9EQl9DTlRMX19EUF9EQl9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfREJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFAzX0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQM19EUF9EQl9DTlRMX19EUF9WVVBEQVRFX0RCX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfVEFLRU5fQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfREJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfREJfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfREJfVEFLRU5fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfREJfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfREJfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDNfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9UQUtFTl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9EUDNfRFBfTVNBX1ZCSURfTUlTQworI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfTVNBX01JU0MxX1NURVJFT1NZTkNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX01TQV9WQklEX01JU0NfX0RQX01TQV9NSVNDMV9TVEVSRU9TWU5DX09WRVJSSURFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQM19EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMV9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDJfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFAzX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQxX09WRVJSSURFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQM19EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMl9PVkVSUklERV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDZfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFAzX0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQ2X0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfTVNBX01JU0MxX1NURVJFT1NZTkNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfTVNBX01JU0MxX1NURVJFT1NZTkNfT1ZFUlJJREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDFfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDJfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDFfT1ZFUlJJREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDJfT1ZFUlJJREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDZfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDNfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDZfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDNfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTgorI2RlZmluZSBEUDNfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFAzX0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NRVRBREFUQV9QQUNLRVRfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQM19EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTVNPX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDNfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQM19EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQM19EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQM19EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTVNPX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERQM19EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQM19EUF9EU0NfQllURVNfUEVSX1BJWEVMCisjZGVmaW5lIERQM19EUF9EU0NfQllURVNfUEVSX1BJWEVMX19EUF9EU0NfQllURVNfUEVSX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfRFNDX0JZVEVTX1BFUl9QSVhFTF9fRFBfRFNDX0JZVEVTX1BFUl9QSVhFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9EUDNfRFBfQUxQTV9DTlRMCisjZGVmaW5lIERQM19EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDNfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFAzX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NUQU5EQllfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQM19EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TVEFOREJZX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUDNfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfU1RBTkRCWV9JTU1FRElBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFAzX0RQX0FMUE1fQ05UTF9fRFBfTElOS19UUkFJTklOR19TV0lUQ0hfQkVUV0VFTl9WSURFT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQM19EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TVEFOREJZX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFAzX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFAzX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFAzX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NUQU5EQllfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFAzX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NUQU5EQllfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFAzX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NUQU5EQllfSU1NRURJQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFAzX0RQX0FMUE1fQ05UTF9fRFBfTElOS19UUkFJTklOR19TV0lUQ0hfQkVUV0VFTl9WSURFT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFAzX0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NUQU5EQllfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kaW9fZGlnNF9kaXNwZGVjCisvL0RJRzRfRElHX0ZFX0NOVEwKKyNkZWZpbmUgRElHNF9ESUdfRkVfQ05UTF9fRElHX1NPVVJDRV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfRElHX0ZFX0NOVExfX0RJR19TVEVSRU9TWU5DX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfU1RFUkVPU1lOQ19HQVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9ESUdfRkVfQ05UTF9fRElHX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzRfRElHX0ZFX0NOVExfX0RJR19ESUdJVEFMX0JZUEFTU19TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfSU5QVVRfUElYRUxfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfRElHX0ZFX0NOVExfX0RPTEJZX1ZJU0lPTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElHNF9ESUdfRkVfQ05UTF9fRE9MQllfVklTSU9OX01FVEFEQVRBX1BBQ0tFVF9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfU1lNQ0xLX0ZFX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfRElHX0ZFX0NOVExfX1RNRFNfUElYRUxfRU5DT0RJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHNF9ESUdfRkVfQ05UTF9fVE1EU19DT0xPUl9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfU09VUkNFX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfU1RFUkVPU1lOQ19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfU1RFUkVPU1lOQ19HQVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfRElHSVRBTF9CWVBBU1NfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfSU5QVVRfUElYRUxfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ET0xCWV9WSVNJT05fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ET0xCWV9WSVNJT05fTUVUQURBVEFfUEFDS0VUX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19ESUdfU1lNQ0xLX0ZFX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19UTURTX1BJWEVMX0VOQ09ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBESUc0X0RJR19GRV9DTlRMX19UTURTX0NPTE9SX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9ESUc0X0RJR19PVVRQVVRfQ1JDX0NOVEwKKyNkZWZpbmUgRElHNF9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfRElHX09VVFBVVF9DUkNfQ05UTF9fRElHX09VVFBVVF9DUkNfTElOS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0RJR19PVVRQVVRfQ1JDX0NOVExfX0RJR19PVVRQVVRfQ1JDX0RBVEFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19MSU5LX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHNF9ESUdfT1VUUFVUX0NSQ19DTlRMX19ESUdfT1VUUFVUX0NSQ19EQVRBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vRElHNF9ESUdfT1VUUFVUX0NSQ19SRVNVTFQKKyNkZWZpbmUgRElHNF9ESUdfT1VUUFVUX0NSQ19SRVNVTFRfX0RJR19PVVRQVVRfQ1JDX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfRElHX09VVFBVVF9DUkNfUkVTVUxUX19ESUdfT1VUUFVUX0NSQ19SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRkZGRkZMCisvL0RJRzRfRElHX0NMT0NLX1BBVFRFUk4KKyNkZWZpbmUgRElHNF9ESUdfQ0xPQ0tfUEFUVEVSTl9fRElHX0NMT0NLX1BBVFRFUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfRElHX0NMT0NLX1BBVFRFUk5fX0RJR19DTE9DS19QQVRURVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL0RJRzRfRElHX1RFU1RfUEFUVEVSTgorI2RlZmluZSBESUc0X0RJR19URVNUX1BBVFRFUk5fX0RJR19URVNUX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9ESUdfVEVTVF9QQVRURVJOX19ESUdfSEFMRl9DTE9DS19QQVRURVJOX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzRfRElHX1RFU1RfUEFUVEVSTl9fRElHX1JBTkRPTV9QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0RJR19URVNUX1BBVFRFUk5fX0RJR19SQU5ET01fUEFUVEVSTl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHNF9ESUdfVEVTVF9QQVRURVJOX19ESUdfVEVTVF9QQVRURVJOX0VYVEVSTkFMX1JFU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzRfRElHX1RFU1RfUEFUVEVSTl9fRElHX1NUQVRJQ19URVNUX1BBVFRFUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9ESUdfVEVTVF9QQVRURVJOX19ESUdfVEVTVF9QQVRURVJOX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9ESUdfVEVTVF9QQVRURVJOX19ESUdfSEFMRl9DTE9DS19QQVRURVJOX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHNF9ESUdfVEVTVF9QQVRURVJOX19ESUdfUkFORE9NX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHNF9ESUdfVEVTVF9QQVRURVJOX19ESUdfUkFORE9NX1BBVFRFUk5fUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHNF9ESUdfVEVTVF9QQVRURVJOX19ESUdfVEVTVF9QQVRURVJOX0VYVEVSTkFMX1JFU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHNF9ESUdfVEVTVF9QQVRURVJOX19ESUdfU1RBVElDX1RFU1RfUEFUVEVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vRElHNF9ESUdfUkFORE9NX1BBVFRFUk5fU0VFRAorI2RlZmluZSBESUc0X0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9fRElHX1JBTl9QQVRfRFVSSU5HX0RFX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUc0X0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19ESUdfUkFORE9NX1BBVFRFUk5fU0VFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorI2RlZmluZSBESUc0X0RJR19SQU5ET01fUEFUVEVSTl9TRUVEX19ESUdfUkFOX1BBVF9EVVJJTkdfREVfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9ESUc0X0RJR19GSUZPX1NUQVRVUworI2RlZmluZSBESUc0X0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fTEVWRUxfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX1VTRV9PVkVSV1JJVEVfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19PVkVSV1JJVEVfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUc0X0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fRVJST1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0NBTF9BVkVSQUdFX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19NQVhJTVVNX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX01JTklNVU1fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBESUc0X0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fUkVBRF9DTE9DS19TUkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19DQUxJQlJBVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRElHNF9ESUdfRklGT19TVEFUVVNfX0RJR19GSUZPX0ZPUkNFX1JFQ0FMX0FWRVJBR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUc0X0RJR19GSUZPX1NUQVRVU19fRElHX0ZJRk9fRk9SQ0VfUkVDT01QX01JTk1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19MRVZFTF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19VU0VfT1ZFUldSSVRFX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19PVkVSV1JJVEVfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkNMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19FUlJPUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19DQUxfQVZFUkFHRV9MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19NQVhJTVVNX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19NSU5JTVVNX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNDMDAwMDBMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19SRUFEX0NMT0NLX1NSQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19DQUxJQlJBVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19GT1JDRV9SRUNBTF9BVkVSQUdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERJRzRfRElHX0ZJRk9fU1RBVFVTX19ESUdfRklGT19GT1JDRV9SRUNPTVBfTUlOTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJRzRfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTAorI2RlZmluZSBESUc0X0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9IRE1JX01FVEFEQVRBX1BBQ0tFVF9DT05UUk9MX19IRE1JX01FVEFEQVRBX1BBQ0tFVF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzRfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0hETUlfTUVUQURBVEFfUEFDS0VUX0NPTlRST0xfX0hETUlfTUVUQURBVEFfUEFDS0VUX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzRfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTElORV9SRUZFUkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzRfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTUlTU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzRfSERNSV9NRVRBREFUQV9QQUNLRVRfQ09OVFJPTF9fSERNSV9NRVRBREFUQV9QQUNLRVRfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfX0hETUlfR0VORVJJQzZfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w0X19IRE1JX0dFTkVSSUM3X0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfX0hETUlfR0VORVJJQzZfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDRfX0hETUlfR0VORVJJQzdfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUc0X0hETUlfQ09OVFJPTAorI2RlZmluZSBESUc0X0hETUlfQ09OVFJPTF9fSERNSV9LRUVQT1VUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfREFUQV9TQ1JBTUJMRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzRfSERNSV9DT05UUk9MX19IRE1JX0NMT0NLX0NIQU5ORUxfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUc0X0hETUlfQ09OVFJPTF9fSERNSV9OT19FWFRSQV9OVUxMX1BBQ0tFVF9GSUxMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfUEFDS0VUX0dFTl9WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzRfSERNSV9DT05UUk9MX19IRE1JX0VSUk9SX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0hETUlfQ09OVFJPTF9fSERNSV9FUlJPUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfVU5TQ1JBTUJMRURfQ09OVFJPTF9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0hETUlfQ09OVFJPTF9fSERNSV9ERUVQX0NPTE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfSERNSV9DT05UUk9MX19IRE1JX0RFRVBfQ09MT1JfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfS0VFUE9VVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfREFUQV9TQ1JBTUJMRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfQ0xPQ0tfQ0hBTk5FTF9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfTk9fRVhUUkFfTlVMTF9QQUNLRVRfRklMTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfUEFDS0VUX0dFTl9WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfRVJST1JfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfRVJST1JfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfVU5TQ1JBTUJMRURfQ09OVFJPTF9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfREVFUF9DT0xPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHNF9IRE1JX0NPTlRST0xfX0hETUlfREVFUF9DT0xPUl9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vRElHNF9IRE1JX1NUQVRVUworI2RlZmluZSBESUc0X0hETUlfU1RBVFVTX19IRE1JX0FDVElWRV9BVk1VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9IRE1JX1NUQVRVU19fSERNSV9BVURJT19QQUNLRVRfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0hETUlfU1RBVFVTX19IRE1JX1ZCSV9QQUNLRVRfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzRfSERNSV9TVEFUVVNfX0hETUlfRVJST1JfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElHNF9IRE1JX1NUQVRVU19fSERNSV9BQ1RJVkVfQVZNVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9IRE1JX1NUQVRVU19fSERNSV9BVURJT19QQUNLRVRfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHNF9IRE1JX1NUQVRVU19fSERNSV9WQklfUEFDS0VUX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRElHNF9IRE1JX1NUQVRVU19fSERNSV9FUlJPUl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKy8vRElHNF9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzRfSERNSV9BVURJT19QQUNLRVRfQ09OVFJPTF9fSERNSV9BVURJT19ERUxBWV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fU0VORF9NQVhfUEFDS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9IRE1JX0FVRElPX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FVRElPX1BBQ0tFVFNfUEVSX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fREVMQVlfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBESUc0X0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fU0VORF9NQVhfUEFDS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUc0X0hETUlfQVVESU9fUEFDS0VUX0NPTlRST0xfX0hETUlfQVVESU9fUEFDS0VUU19QRVJfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorLy9ESUc0X0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHNF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9BVVRPX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHNF9IRE1JX0FDUl9QQUNLRVRfQ09OVFJPTF9fSERNSV9BQ1JfTl9NVUxUSVBMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0hETUlfQUNSX1BBQ0tFVF9DT05UUk9MX19IRE1JX0FDUl9BVURJT19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX1NPVVJDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0FVVE9fU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX05fTVVMVElQTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfUEFDS0VUX0NPTlRST0xfX0hETUlfQUNSX0FVRElPX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RJRzRfSERNSV9WQklfUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHNF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9OVUxMX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfR0NfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0dDX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHNF9IRE1JX1ZCSV9QQUNLRVRfQ09OVFJPTF9fSERNSV9JU1JDX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUc0X0hETUlfVkJJX1BBQ0tFVF9DT05UUk9MX19IRE1JX0lTUkNfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfTlVMTF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzRfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfR0NfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzRfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfR0NfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzRfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzRfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJRzRfSERNSV9WQklfUEFDS0VUX0NPTlRST0xfX0hETUlfSVNSQ19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRjAwMDBMCisvL0RJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDAKKyNkZWZpbmUgRElHNF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9BVURJT19JTkZPX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfQVVESU9fSU5GT19DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUc0X0hETUlfSU5GT0ZSQU1FX0NPTlRST0wwX19IRE1JX01QRUdfSU5GT19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMF9fSERNSV9NUEVHX0lORk9fQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfQVVESU9fSU5GT19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfQVVESU9fSU5GT19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfTVBFR19JTkZPX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDBfX0hETUlfTVBFR19JTkZPX0NPTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisvL0RJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDEKKyNkZWZpbmUgRElHNF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9fSERNSV9BVURJT19JTkZPX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfSERNSV9JTkZPRlJBTUVfQ09OVFJPTDFfX0hETUlfTVBFR19JTkZPX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9fSERNSV9BVURJT19JTkZPX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRElHNF9IRE1JX0lORk9GUkFNRV9DT05UUk9MMV9fSERNSV9NUEVHX0lORk9fTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzBfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMwX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzFfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMxX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzJfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMyX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUMzX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM0X0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzRfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM1X0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzVfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM2X0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzZfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wwX19IRE1JX0dFTkVSSUM3X0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDBfX0hETUlfR0VORVJJQzdfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMV9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDMl9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDM19MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNV9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDNl9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMF9fSERNSV9HRU5FUklDN19MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RJRzRfSERNSV9HQworI2RlZmluZSBESUc0X0hETUlfR0NfX0hETUlfR0NfQVZNVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9IRE1JX0dDX19IRE1JX0dDX0FWTVVURV9DT05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzRfSERNSV9HQ19fSERNSV9ERUZBVUxUX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0hETUlfR0NfX0hETUlfUEFDS0lOR19QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9IRE1JX0dDX19IRE1JX1BBQ0tJTkdfUEhBU0VfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzRfSERNSV9HQ19fSERNSV9HQ19BVk1VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzRfSERNSV9HQ19fSERNSV9HQ19BVk1VVEVfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzRfSERNSV9HQ19fSERNSV9ERUZBVUxUX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERJRzRfSERNSV9HQ19fSERNSV9QQUNLSU5HX1BIQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERJRzRfSERNSV9HQ19fSERNSV9QQUNLSU5HX1BIQVNFX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RJRzRfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDIKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19MQVlPVVRfT1ZSRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfQVVESU9fTEFZT1VUX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0FVRElPX0NIQU5ORUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9EUF9BVURJT19TVFJFQU1fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyX19BRk1UX0hCUl9FTkFCTEVfT1ZSRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDJfX0FGTVRfNjA5NThfT1NGX09WUkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19MQVlPVVRfT1ZSRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19MQVlPVVRfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9BVURJT19DSEFOTkVMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9EUF9BVURJT19TVFJFQU1fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF9IQlJfRU5BQkxFX09WUkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMl9fQUZNVF82MDk1OF9PU0ZfT1ZSRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRElHNF9BRk1UX0lTUkMxXzAKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMV8wX19BRk1UX0lTUkNfQ09OVElOVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUc0X0FGTVRfSVNSQzFfMF9fQUZNVF9JU1JDX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19DT05USU5VRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzBfX0FGTVRfSVNSQ19WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vRElHNF9BRk1UX0lTUkMxXzEKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfSVNSQzFfMV9fQUZNVF9VUENfRUFOX0lTUkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMV8xX19BRk1UX1VQQ19FQU5fSVNSQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzFfX0FGTVRfVVBDX0VBTl9JU1JDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0lTUkMxXzIKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfSVNSQzFfMl9fQUZNVF9VUENfRUFOX0lTUkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMV8yX19BRk1UX1VQQ19FQU5fSVNSQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzJfX0FGTVRfVVBDX0VBTl9JU1JDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0lTUkMxXzMKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfSVNSQzFfM19fQUZNVF9VUENfRUFOX0lTUkMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMV8zX19BRk1UX1VQQ19FQU5fSVNSQzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzNfX0FGTVRfVVBDX0VBTl9JU1JDMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0lTUkMxXzQKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfSVNSQzFfNF9fQUZNVF9VUENfRUFOX0lTUkMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMV80X19BRk1UX1VQQ19FQU5fSVNSQzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMxXzRfX0FGTVRfVVBDX0VBTl9JU1JDMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0lTUkMyXzAKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfSVNSQzJfMF9fQUZNVF9VUENfRUFOX0lTUkMxOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMl8wX19BRk1UX1VQQ19FQU5fSVNSQzE5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzBfX0FGTVRfVVBDX0VBTl9JU1JDMTlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0lTUkMyXzEKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfSVNSQzJfMV9fQUZNVF9VUENfRUFOX0lTUkMyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMl8xX19BRk1UX1VQQ19FQU5fSVNSQzIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzFfX0FGTVRfVVBDX0VBTl9JU1JDMjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0lTUkMyXzIKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfSVNSQzJfMl9fQUZNVF9VUENfRUFOX0lTUkMyNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMl8yX19BRk1UX1VQQ19FQU5fSVNSQzI3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzJfX0FGTVRfVVBDX0VBTl9JU1JDMjdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0lTUkMyXzMKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMjhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzI5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfSVNSQzJfM19fQUZNVF9VUENfRUFOX0lTUkMzMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9JU1JDMl8zX19BRk1UX1VQQ19FQU5fSVNSQzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0lTUkMyXzNfX0FGTVRfVVBDX0VBTl9JU1JDMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMl9fSERNSV9HRU5FUklDMl9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDJfX0hETUlfR0VORVJJQzNfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMl9fSERNSV9HRU5FUklDMl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMl9fSERNSV9HRU5FUklDM19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMworI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDNfX0hETUlfR0VORVJJQzRfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzX19IRE1JX0dFTkVSSUM1X0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDNfX0hETUlfR0VORVJJQzRfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDNfX0hETUlfR0VORVJJQzVfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUc0X0hETUlfREJfQ09OVFJPTAorI2RlZmluZSBESUc0X0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzRfSERNSV9EQl9DT05UUk9MX19IRE1JX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBESUc0X0hETUlfREJfQ09OVFJPTF9fSERNSV9EQl9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzRfSERNSV9EQl9DT05UUk9MX19WVVBEQVRFX0RCX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESUc0X0hETUlfREJfQ09OVFJPTF9fVlVQREFURV9EQl9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfSERNSV9EQl9DT05UUk9MX19WVVBEQVRFX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfVEFLRU5fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX0hETUlfREJfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHNF9IRE1JX0RCX0NPTlRST0xfX1ZVUERBVEVfREJfVEFLRU5fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vRElHNF9ETUVfQ09OVFJPTAorI2RlZmluZSBESUc0X0RNRV9DT05UUk9MX19NRVRBREFUQV9IVUJQX1JFUVVFU1RPUl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9ETUVfQ09OVFJPTF9fTUVUQURBVEFfRU5HSU5FX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzRfRE1FX0NPTlRST0xfX01FVEFEQVRBX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHNF9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfVEFLRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERJRzRfRE1FX0NPTlRST0xfX01FVEFEQVRBX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9ETUVfQ09OVFJPTF9fTUVUQURBVEFfREJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUc0X0RNRV9DT05UUk9MX19NRVRBREFUQV9IVUJQX1JFUVVFU1RPUl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBESUc0X0RNRV9DT05UUk9MX19NRVRBREFUQV9FTkdJTkVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUc0X0RNRV9DT05UUk9MX19NRVRBREFUQV9TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUc0X0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUc0X0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9UQUtFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESUc0X0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9UQUtFTl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUc0X0RNRV9DT05UUk9MX19NRVRBREFUQV9EQl9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9ESUc0X0FGTVRfTVBFR19JTkZPMAorI2RlZmluZSBESUc0X0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fQ0hFQ0tTVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX01CMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfQUZNVF9NUEVHX0lORk8wX19BRk1UX01QRUdfSU5GT19NQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9BRk1UX01QRUdfSU5GTzBfX0FGTVRfTVBFR19JTkZPX01CMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUc0X0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fQ0hFQ0tTVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUc0X0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUc0X0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfTVBFR19JTkZPMF9fQUZNVF9NUEVHX0lORk9fTUIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUc0X0FGTVRfTVBFR19JTkZPMQorI2RlZmluZSBESUc0X0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fTUIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9BRk1UX01QRUdfSU5GTzFfX0FGTVRfTVBFR19JTkZPX01GX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfQUZNVF9NUEVHX0lORk8xX19BRk1UX01QRUdfSU5GT19GUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUc0X0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fTUIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUc0X0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fTUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBESUc0X0FGTVRfTVBFR19JTkZPMV9fQUZNVF9NUEVHX0lORk9fRlJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorLy9ESUc0X0FGTVRfR0VORVJJQ19IRFIKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ19IRFJfX0FGTVRfR0VORVJJQ19IQjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDX0hEUl9fQUZNVF9HRU5FUklDX0hCM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfSERSX19BRk1UX0dFTkVSSUNfSEIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0dFTkVSSUNfMAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzBfX0FGTVRfR0VORVJJQ19CWVRFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfMF9fQUZNVF9HRU5FUklDX0JZVEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18wX19BRk1UX0dFTkVSSUNfQllURTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUc0X0FGTVRfR0VORVJJQ18xCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfMV9fQUZNVF9HRU5FUklDX0JZVEU2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18xX19BRk1UX0dFTkVSSUNfQllURTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzFfX0FGTVRfR0VORVJJQ19CWVRFN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzRfQUZNVF9HRU5FUklDXzIKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEU4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18yX19BRk1UX0dFTkVSSUNfQllURTEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzJfX0FGTVRfR0VORVJJQ19CWVRFMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEU4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEU5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEUxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfMl9fQUZNVF9HRU5FUklDX0JZVEUxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0dFTkVSSUNfMworI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzNfX0FGTVRfR0VORVJJQ19CWVRFMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfM19fQUZNVF9HRU5FUklDX0JZVEUxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ18zX19BRk1UX0dFTkVSSUNfQllURTE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUc0X0FGTVRfR0VORVJJQ180CisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfNF9fQUZNVF9HRU5FUklDX0JZVEUxOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ180X19BRk1UX0dFTkVSSUNfQllURTE5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzRfX0FGTVRfR0VORVJJQ19CWVRFMTlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzRfQUZNVF9HRU5FUklDXzUKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ181X19BRk1UX0dFTkVSSUNfQllURTIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzVfX0FGTVRfR0VORVJJQ19CWVRFMjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfNV9fQUZNVF9HRU5FUklDX0JZVEUyM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX0dFTkVSSUNfNgorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzZfX0FGTVRfR0VORVJJQ19CWVRFMjZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfNl9fQUZNVF9HRU5FUklDX0JZVEUyN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ182X19BRk1UX0dFTkVSSUNfQllURTI3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9ESUc0X0FGTVRfR0VORVJJQ183CisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMjhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTI5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9BRk1UX0dFTkVSSUNfN19fQUZNVF9HRU5FUklDX0JZVEUzMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0FGTVRfR0VORVJJQ183X19BRk1UX0dFTkVSSUNfQllURTMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzRfQUZNVF9HRU5FUklDXzdfX0FGTVRfR0VORVJJQ19CWVRFMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMQorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfX0hETUlfR0VORVJJQzBfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wxX19IRE1JX0dFTkVSSUMxX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfX0hETUlfR0VORVJJQzBfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDFfX0hETUlfR0VORVJJQzFfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9ESUc0X0hETUlfQUNSXzMyXzAKKyNkZWZpbmUgRElHNF9IRE1JX0FDUl8zMl8wX19IRE1JX0FDUl9DVFNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfMzJfMF9fSERNSV9BQ1JfQ1RTXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL0RJRzRfSERNSV9BQ1JfMzJfMQorI2RlZmluZSBESUc0X0hETUlfQUNSXzMyXzFfX0hETUlfQUNSX05fMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9IRE1JX0FDUl8zMl8xX19IRE1JX0FDUl9OXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vRElHNF9IRE1JX0FDUl80NF8wCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfNDRfMF9fSERNSV9BQ1JfQ1RTXzQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUc0X0hETUlfQUNSXzQ0XzBfX0hETUlfQUNSX0NUU180NF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9ESUc0X0hETUlfQUNSXzQ0XzEKKyNkZWZpbmUgRElHNF9IRE1JX0FDUl80NF8xX19IRE1JX0FDUl9OXzQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfNDRfMV9fSERNSV9BQ1JfTl80NF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL0RJRzRfSERNSV9BQ1JfNDhfMAorI2RlZmluZSBESUc0X0hETUlfQUNSXzQ4XzBfX0hETUlfQUNSX0NUU180OF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHNF9IRE1JX0FDUl80OF8wX19IRE1JX0FDUl9DVFNfNDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vRElHNF9IRE1JX0FDUl80OF8xCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfNDhfMV9fSERNSV9BQ1JfTl80OF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0hETUlfQUNSXzQ4XzFfX0hETUlfQUNSX05fNDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9ESUc0X0hETUlfQUNSX1NUQVRVU18wCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfU1RBVFVTXzBfX0hETUlfQUNSX0NUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUc0X0hETUlfQUNSX1NUQVRVU18wX19IRE1JX0FDUl9DVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9ESUc0X0hETUlfQUNSX1NUQVRVU18xCisjZGVmaW5lIERJRzRfSERNSV9BQ1JfU1RBVFVTXzFfX0hETUlfQUNSX05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0hETUlfQUNSX1NUQVRVU18xX19IRE1JX0FDUl9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9ESUc0X0FGTVRfQVVESU9fSU5GTzAKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0hFQ0tTVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0lORk8wX19BRk1UX0FVRElPX0lORk9fQ0hFQ0tTVU1fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fSU5GTzBfX0FGTVRfQVVESU9fSU5GT19DWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NIRUNLU1VNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc4MDBMCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NIRUNLU1VNX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMF9fQUZNVF9BVURJT19JTkZPX0NYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL0RJRzRfQUZNVF9BVURJT19JTkZPMQorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19DQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0lORk8xX19BRk1UX0FVRElPX0lORk9fTFNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0RNX0lOSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fSU5GTzFfX0FGTVRfQVVESU9fSU5GT19MRkVQQkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0NBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0xTVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc4MDBMCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0RNX0lOSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19JTkZPMV9fQUZNVF9BVURJT19JTkZPX0xGRVBCTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisvL0RJRzRfQUZNVF82MDk1OF8wCisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0FURUdPUllfQ09ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMF9fQUZNVF82MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8wX19BRk1UXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0FURUdPUllfQ09ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfU09VUkNFX05VTUJFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzBfX0FGTVRfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vRElHNF9BRk1UXzYwOTU4XzEKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfQ1NfV09SRF9MRU5HVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9WQUxJRF9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8xX19BRk1UXzYwOTU4X1ZBTElEX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzFfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19XT1JEX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9WQUxJRF9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9WQUxJRF9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMV9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9ESUc0X0FGTVRfQVVESU9fQ1JDX0NPTlRST0wKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fQ1JDX0NPTlRST0xfX0FGTVRfQVVESU9fQ1JDX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DSF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19DUkNfQ09OVFJPTF9fQUZNVF9BVURJT19DUkNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19TT1VSQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DSF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0NSQ19DT05UUk9MX19BRk1UX0FVRElPX0NSQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRElHNF9BRk1UX1JBTVBfQ09OVFJPTDAKKyNkZWZpbmUgRElHNF9BRk1UX1JBTVBfQ09OVFJPTDBfX0FGTVRfUkFNUF9NQVhfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9SQU1QX0NPTlRST0wwX19BRk1UX1JBTVBfREFUQV9TSUdOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHNF9BRk1UX1JBTVBfQ09OVFJPTDBfX0FGTVRfUkFNUF9NQVhfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKyNkZWZpbmUgRElHNF9BRk1UX1JBTVBfQ09OVFJPTDBfX0FGTVRfUkFNUF9EQVRBX1NJR05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHNF9BRk1UX1JBTVBfQ09OVFJPTDEKKyNkZWZpbmUgRElHNF9BRk1UX1JBTVBfQ09OVFJPTDFfX0FGTVRfUkFNUF9NSU5fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9SQU1QX0NPTlRST0wxX19BRk1UX0FVRElPX1RFU1RfQ0hfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX1JBTVBfQ09OVFJPTDFfX0FGTVRfUkFNUF9NSU5fQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKyNkZWZpbmUgRElHNF9BRk1UX1JBTVBfQ09OVFJPTDFfX0FGTVRfQVVESU9fVEVTVF9DSF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRElHNF9BRk1UX1JBTVBfQ09OVFJPTDIKKyNkZWZpbmUgRElHNF9BRk1UX1JBTVBfQ09OVFJPTDJfX0FGTVRfUkFNUF9JTkNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9SQU1QX0NPTlRST0wyX19BRk1UX1JBTVBfSU5DX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RJRzRfQUZNVF9SQU1QX0NPTlRST0wzCisjZGVmaW5lIERJRzRfQUZNVF9SQU1QX0NPTlRST0wzX19BRk1UX1JBTVBfREVDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0FGTVRfUkFNUF9DT05UUk9MM19fQUZNVF9SQU1QX0RFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9ESUc0X0FGTVRfNjA5NThfMgorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl81X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHNF9BRk1UXzYwOTU4XzJfX0FGTVRfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0FGTVRfNjA5NThfMl9fQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl83X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERJRzRfQUZNVF82MDk1OF8yX19BRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0RJRzRfQUZNVF9BVURJT19DUkNfUkVTVUxUCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19DUkNfUkVTVUxUX19BRk1UX0FVRElPX0NSQ19ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fQ1JDX1JFU1VMVF9fQUZNVF9BVURJT19DUkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0NSQ19SRVNVTFRfX0FGTVRfQVVESU9fQ1JDX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX0NSQ19SRVNVTFRfX0FGTVRfQVVESU9fQ1JDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkYwMEwKKy8vRElHNF9BRk1UX1NUQVRVUworI2RlZmluZSBESUc0X0FGTVRfU1RBVFVTX19BRk1UX0FVRElPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHNF9BRk1UX1NUQVRVU19fQUZNVF9BWl9IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfQUZNVF9TVEFUVVNfX0FGTVRfQVVESU9fRklGT19PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRElHNF9BRk1UX1NUQVRVU19fQUZNVF9BWl9BVURJT19FTkFCTEVfQ0hHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBESUc0X0FGTVRfU1RBVFVTX19BRk1UX0FVRElPX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUc0X0FGTVRfU1RBVFVTX19BRk1UX0FaX0hCUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUc0X0FGTVRfU1RBVFVTX19BRk1UX0FVRElPX0ZJRk9fT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfU1RBVFVTX19BRk1UX0FaX0FVRElPX0VOQUJMRV9DSEdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9ESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX1NBTVBMRV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9SRVNFVF9GSUZPX1dIRU5fQVVESU9fRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fVEVTVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX1RFU1RfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BVURJT19GSUZPX09WRVJGTE9XX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0FVRElPX0NIQU5ORUxfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfNjA5NThfQ1NfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzRfQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTF9fQUZNVF9BWl9BVURJT19FTkFCTEVfQ0hHX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MX19BRk1UX0JMQU5LX1RFU1RfREFUQV9PTl9FTkNfRU5CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fU0FNUExFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfUkVTRVRfRklGT19XSEVOX0FVRElPX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fVEVTVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fVEVTVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fRklGT19PVkVSRkxPV19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVVESU9fQ0hBTk5FTF9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfNjA5NThfQ1NfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQVpfQVVESU9fRU5BQkxFX0NIR19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fUEFDS0VUX0NPTlRST0xfX0FGTVRfQkxBTktfVEVTVF9EQVRBX09OX0VOQ19FTkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MCisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19MT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfQ09ORkxJQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0xfX0FGTVRfR0VORVJJQ19DT05GTElDVF9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTF9fQUZNVF9HRU5FUklDX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfTE9DS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfQ09ORkxJQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfQ09ORkxJQ1RfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MX19BRk1UX0dFTkVSSUNfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9ESUc0X0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwCisjZGVmaW5lIERJRzRfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfQVVESU9fSU5GT19TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUc0X0FGTVRfSU5GT0ZSQU1FX0NPTlRST0wwX19BRk1UX0FVRElPX0lORk9fVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHNF9BRk1UX0lORk9GUkFNRV9DT05UUk9MMF9fQUZNVF9NUEVHX0lORk9fVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzRfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfQVVESU9fSU5GT19TT1VSQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERJRzRfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfQVVESU9fSU5GT19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERJRzRfQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDBfX0FGTVRfTVBFR19JTkZPX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL0RJRzRfQUZNVF9BVURJT19TUkNfQ09OVFJPTAorI2RlZmluZSBESUc0X0FGTVRfQVVESU9fU1JDX0NPTlRST0xfX0FGTVRfQVVESU9fU1JDX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9BRk1UX0FVRElPX1NSQ19DT05UUk9MX19BRk1UX0FVRElPX1NSQ19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKy8vRElHNF9ESUdfQkVfQ05UTAorI2RlZmluZSBESUc0X0RJR19CRV9DTlRMX19ESUdfRFVBTF9MSU5LX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9ESUdfQkVfQ05UTF9fRElHX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzRfRElHX0JFX0NOVExfX0RJR19SQl9TV0lUQ0hfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUc0X0RJR19CRV9DTlRMX19ESUdfRkVfU09VUkNFX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9ESUdfQkVfQ05UTF9fRElHX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X0RJR19CRV9DTlRMX19ESUdfSFBEX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzRfRElHX0JFX0NOVExfX0RJR19EVUFMX0xJTktfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzRfRElHX0JFX0NOVExfX0RJR19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzRfRElHX0JFX0NOVExfX0RJR19SQl9TV0lUQ0hfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzRfRElHX0JFX0NOVExfX0RJR19GRV9TT1VSQ0VfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIERJRzRfRElHX0JFX0NOVExfX0RJR19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERJRzRfRElHX0JFX0NOVExfX0RJR19IUERfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDBMCisvL0RJRzRfRElHX0JFX0VOX0NOVEwKKyNkZWZpbmUgRElHNF9ESUdfQkVfRU5fQ05UTF9fRElHX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfRElHX0JFX0VOX0NOVExfX0RJR19TWU1DTEtfQkVfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X0RJR19CRV9FTl9DTlRMX19ESUdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUc0X0RJR19CRV9FTl9DTlRMX19ESUdfU1lNQ0xLX0JFX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9ESUc0X1RNRFNfQ05UTAorI2RlZmluZSBESUc0X1RNRFNfQ05UTF9fVE1EU19TWU5DX1BIQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9UTURTX0NOVExfX1RNRFNfU1lOQ19QSEFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRElHNF9UTURTX0NPTlRST0xfQ0hBUgorI2RlZmluZSBESUc0X1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjBfT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIxX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzRfVE1EU19DT05UUk9MX0NIQVJfX1RNRFNfQ09OVFJPTF9DSEFSMl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUc0X1RNRFNfQ09OVFJPTF9DSEFSX19UTURTX0NPTlRST0xfQ0hBUjNfT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHNF9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIwX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIxX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHNF9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIyX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHNF9UTURTX0NPTlRST0xfQ0hBUl9fVE1EU19DT05UUk9MX0NIQVIzX09VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKy8vRElHNF9UTURTX0NPTlRST0wwX0ZFRURCQUNLCisjZGVmaW5lIERJRzRfVE1EU19DT05UUk9MMF9GRUVEQkFDS19fVE1EU19DT05UUk9MMF9GRUVEQkFDS19TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfX1RNRFNfQ09OVFJPTDBfRkVFREJBQ0tfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9UTURTX0NPTlRST0wwX0ZFRURCQUNLX19UTURTX0NPTlRST0wwX0ZFRURCQUNLX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRElHNF9UTURTX0NPTlRST0wwX0ZFRURCQUNLX19UTURTX0NPTlRST0wwX0ZFRURCQUNLX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vRElHNF9UTURTX1NURVJFT1NZTkNfQ1RMX1NFTAorI2RlZmluZSBESUc0X1RNRFNfU1RFUkVPU1lOQ19DVExfU0VMX19UTURTX1NURVJFT1NZTkNfQ1RMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9UTURTX1NURVJFT1NZTkNfQ1RMX1NFTF9fVE1EU19TVEVSRU9TWU5DX0NUTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vRElHNF9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMQorI2RlZmluZSBESUc0X1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9UTURTX1NZTkNfQ0hBUl9QQVRURVJOXzBfMV9fVE1EU19TWU5DX0NIQVJfUEFUVEVSTjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBESUc0X1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMF8xX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9ESUc0X1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zCisjZGVmaW5lIERJRzRfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X1RNRFNfU1lOQ19DSEFSX1BBVFRFUk5fMl8zX19UTURTX1NZTkNfQ0hBUl9QQVRURVJOM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERJRzRfVE1EU19TWU5DX0NIQVJfUEFUVEVSTl8yXzNfX1RNRFNfU1lOQ19DSEFSX1BBVFRFUk4zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL0RJRzRfVE1EU19DVExfQklUUworI2RlZmluZSBESUc0X1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9UTURTX0NUTF9CSVRTX19UTURTX0NUTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfVE1EU19DVExfQklUU19fVE1EU19DVEwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9UTURTX0NUTF9CSVRTX19UTURTX0NUTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUc0X1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMX0JJVFNfX1RNRFNfQ1RMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9ESUc0X1RNRFNfRENCQUxBTkNFUl9DT05UUk9MCisjZGVmaW5lIERJRzRfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX1NZTkNfRENCQUxfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHNF9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX1RFU1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfVE1EU19EQ0JBTEFOQ0VSX0NPTlRST0xfX1RNRFNfRENCQUxBTkNFUl9URVNUX0lOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9UTURTX0RDQkFMQU5DRVJfQ09OVFJPTF9fVE1EU19EQ0JBTEFOQ0VSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUc0X1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUc0X1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX1NZTkNfRENCQUxfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBESUc0X1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfVEVTVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUc0X1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfVEVTVF9JTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESUc0X1RNRFNfRENCQUxBTkNFUl9DT05UUk9MX19UTURTX0RDQkFMQU5DRVJfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9ESUc0X1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUgorI2RlZmluZSBESUc0X1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9fVE1EU19TWU5DX0RDQkFMX0NIQVIwMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9UTURTX1NZTkNfRENCQUxBTkNFX0NIQVJfX1RNRFNfU1lOQ19EQ0JBTF9DSEFSMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9fVE1EU19TWU5DX0RDQkFMX0NIQVIwMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBESUc0X1RNRFNfU1lOQ19EQ0JBTEFOQ0VfQ0hBUl9fVE1EU19TWU5DX0RDQkFMX0NIQVIxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9ESUc0X1RNRFNfQ1RMMF8xX0dFTl9DTlRMCisjZGVmaW5lIERJRzRfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfREFUQV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERJRzRfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9EQVRBX01PRFVMQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDBfVVNFX0ZFRURCQUNLX1BBVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0ZCX1NZTkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzRfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMF9QQVRURVJOX09VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUc0X1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERJRzRfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9EQVRBX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESUc0X1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfREFUQV9NT0RVTEFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfQ1RMMV9VU0VfRkVFREJBQ0tfUEFUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0ZCX1NZTkNfQ09OVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBESUc0X1RNRFNfQ1RMMF8xX0dFTl9DTlRMX19UTURTX0NUTDFfUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERJRzRfVE1EU19DVEwwXzFfR0VOX0NOVExfX1RNRFNfMkJJVF9DT1VOVEVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0RBVEFfTU9EVUxBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX1VTRV9GRUVEQkFDS19QQVRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX0ZCX1NZTkNfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwwX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0RBVEFfTU9EVUxBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX1VTRV9GRUVEQkFDS19QQVRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX0ZCX1NZTkNfQ09OVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU19DVEwxX1BBVFRFUk5fT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElHNF9UTURTX0NUTDBfMV9HRU5fQ05UTF9fVE1EU18yQklUX0NPVU5URVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHNF9UTURTX0NUTDJfM19HRU5fQ05UTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX0RBVEFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERJRzRfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9EQVRBX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9NT0RVTEFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwyX1VTRV9GRUVEQkFDS19QQVRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERJRzRfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMMl9GQl9TWU5DX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfUEFUVEVSTl9PVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRElHNF9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERJRzRfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19EQVRBX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRElHNF9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX0RBVEFfTU9EVUxBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfVVNFX0ZFRURCQUNLX1BBVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERJRzRfVE1EU19DVEwyXzNfR0VOX0NOVExfX1RNRFNfQ1RMM19GQl9TWU5DX0NPTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRElHNF9UTURTX0NUTDJfM19HRU5fQ05UTF9fVE1EU19DVEwzX1BBVFRFUk5fT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfREFUQV9NT0RVTEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfVVNFX0ZFRURCQUNLX1BBVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfRkJfU1lOQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDJfUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfREFUQV9NT0RVTEFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfVVNFX0ZFRURCQUNLX1BBVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfRkJfU1lOQ19DT05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBESUc0X1RNRFNfQ1RMMl8zX0dFTl9DTlRMX19UTURTX0NUTDNfUEFUVEVSTl9PVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9ESUc0X0RJR19WRVJTSU9OCisjZGVmaW5lIERJRzRfRElHX1ZFUlNJT05fX0RJR19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0RJR19WRVJTSU9OX19ESUdfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9ESUc0X0RJR19MQU5FX0VOQUJMRQorI2RlZmluZSBESUc0X0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUwRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRElHNF9ESUdfTEFORV9FTkFCTEVfX0RJR19MQU5FMUVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERJRzRfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTJFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBESUc0X0RJR19MQU5FX0VOQUJMRV9fRElHX0xBTkUzRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRElHNF9ESUdfTEFORV9FTkFCTEVfX0RJR19DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTBFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERJRzRfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTFFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERJRzRfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTJFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERJRzRfRElHX0xBTkVfRU5BQkxFX19ESUdfTEFORTNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERJRzRfRElHX0xBTkVfRU5BQkxFX19ESUdfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RJRzRfQUZNVF9DTlRMCisjZGVmaW5lIERJRzRfQUZNVF9DTlRMX19BRk1UX0FVRElPX0NMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0FGTVRfQ05UTF9fQUZNVF9BVURJT19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9BRk1UX0NOVExfX0FGTVRfQVVESU9fQ0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9BRk1UX0NOVExfX0FGTVRfQVVESU9fQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDEKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMwX0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMF9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMV9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMxX0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMyX0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDMl9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUMzX0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDM19JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNF9JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM0X0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfRlJBTUVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNV9GUkFNRV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM1X0lNTUVESUFURV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9GUkFNRV9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM2X0ZSQU1FX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfSU1NRURJQVRFX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDNl9JTU1FRElBVEVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0ZSQU1FX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfRlJBTUVfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBESUc0X0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMV9fQUZNVF9HRU5FUklDN19JTU1FRElBVEVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERJRzRfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxX19BRk1UX0dFTkVSSUM3X0lNTUVESUFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzBfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzFfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzJfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzNfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzRfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzVfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzZfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfRlJBTUVfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfRlJBTUVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfSU1NRURJQVRFX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRElHNF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDFfX0FGTVRfR0VORVJJQzdfSU1NRURJQVRFX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1CisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMF9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzBfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMxX0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDMV9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzJfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUMyX0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDM19JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzNfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM0X0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNF9JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzVfSU1NRURJQVRFX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM1X0lNTUVESUFURV9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDNl9JTU1FRElBVEVfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzZfSU1NRURJQVRFX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRElHNF9IRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0w1X19IRE1JX0dFTkVSSUM3X0lNTUVESUFURV9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERJRzRfSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MNV9fSERNSV9HRU5FUklDN19JTU1FRElBVEVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzBfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzBfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzFfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzFfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzJfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzJfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzNfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzNfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzRfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzRfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzVfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzVfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzZfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzZfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzdfSU1NRURJQVRFX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBESUc0X0hETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDVfX0hETUlfR0VORVJJQzdfSU1NRURJQVRFX1NFTkRfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9ESUc0X0ZPUkNFX0RJR19ESVNBQkxFCisjZGVmaW5lIERJRzRfRk9SQ0VfRElHX0RJU0FCTEVfX0ZPUkNFX0RJR19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBESUc0X0ZPUkNFX0RJR19ESVNBQkxFX19GT1JDRV9ESUdfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2Rpb19kcDRfZGlzcGRlYworLy9EUDRfRFBfTElOS19DTlRMCisjZGVmaW5lIERQNF9EUF9MSU5LX0NOVExfX0RQX0xJTktfVFJBSU5JTkdfQ09NUExFVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfTElOS19DTlRMX19EUF9MSU5LX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX0xJTktfQ05UTF9fRFBfRU1CRURERURfUEFORUxfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUDRfRFBfTElOS19DTlRMX19EUF9MSU5LX1RSQUlOSU5HX0NPTVBMRVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDRfRFBfTElOS19DTlRMX19EUF9MSU5LX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDRfRFBfTElOS19DTlRMX19EUF9FTUJFRERFRF9QQU5FTF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9EUDRfRFBfUElYRUxfRk9STUFUCisjZGVmaW5lIERQNF9EUF9QSVhFTF9GT1JNQVRfX0RQX1BJWEVMX0VOQ09ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfUElYRUxfRk9STUFUX19EUF9DT01QT05FTlRfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQNF9EUF9QSVhFTF9GT1JNQVRfX0RQX1BJWEVMX0NPTUJJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFA0X0RQX1BJWEVMX0ZPUk1BVF9fRFBfUElYRUxfRU5DT0RJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFA0X0RQX1BJWEVMX0ZPUk1BVF9fRFBfQ09NUE9ORU5UX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1BJWEVMX0ZPUk1BVF9fRFBfUElYRUxfQ09NQklORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vRFA0X0RQX01TQV9DT0xPUklNRVRSWQorI2RlZmluZSBEUDRfRFBfTVNBX0NPTE9SSU1FVFJZX19EUF9NU0FfTUlTQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQNF9EUF9NU0FfQ09MT1JJTUVUUllfX0RQX01TQV9NSVNDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RQNF9EUF9DT05GSUcKKyNkZWZpbmUgRFA0X0RQX0NPTkZJR19fRFBfVURJX0xBTkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9DT05GSUdfX0RQX1VESV9MQU5FU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0RQNF9EUF9WSURfU1RSRUFNX0NOVEwKKyNkZWZpbmUgRFA0X0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTX0RFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDRfRFBfVklEX1NUUkVBTV9DTlRMX19EUF9WSURfU1RSRUFNX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9WSURfU1RSRUFNX0NOVExfX0RQX1ZJRF9TVFJFQU1fQ0hBTkdFX0tFRVBPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFA0X0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFA0X0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNfREVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRFA0X0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1ZJRF9TVFJFQU1fQ05UTF9fRFBfVklEX1NUUkVBTV9DSEFOR0VfS0VFUE9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vRFA0X0RQX1NURUVSX0ZJRk8KKyNkZWZpbmUgRFA0X0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX0ZJRk9fUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfU1RFRVJfRklGT19fRFBfU1RFRVJfT1ZFUkZMT1dfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFA0X0RQX1NURUVSX0ZJRk9fX0RQX1NURUVSX09WRVJGTE9XX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQNF9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUDRfRFBfU1RFRVJfRklGT19fRFBfVFVfT1ZFUkZMT1dfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX1NURUVSX0ZJRk9fX0RQX1RVX09WRVJGTE9XX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQNF9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9GSUZPX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQNF9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQNF9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQNF9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERQNF9EUF9TVEVFUl9GSUZPX19EUF9TVEVFUl9PVkVSRkxPV19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERQNF9EUF9TVEVFUl9GSUZPX19EUF9UVV9PVkVSRkxPV19GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQNF9EUF9TVEVFUl9GSUZPX19EUF9UVV9PVkVSRkxPV19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RQNF9EUF9NU0FfTUlTQworI2RlZmluZSBEUDRfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQNF9EUF9NU0FfTUlTQ19fRFBfTVNBX01JU0MzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX01TQV9NSVNDX19EUF9NU0FfTUlTQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDRfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUDRfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEUDRfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEUDRfRFBfTVNBX01JU0NfX0RQX01TQV9NSVNDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EUDRfRFBfVklEX1RJTUlORworI2RlZmluZSBEUDRfRFBfVklEX1RJTUlOR19fRFBfVklEX01fTl9ET1VCTEVfQlVGRkVSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFA0X0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9NX05fR0VOX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQNF9EUF9WSURfVElNSU5HX19EUF9WSURfTl9NVUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDRfRFBfVklEX1RJTUlOR19fRFBfVklEX01fRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFA0X0RQX1ZJRF9USU1JTkdfX0RQX1ZJRF9OX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDRfRFBfVklEX1RJTUlOR19fRFBfVklEX01fTl9ET1VCTEVfQlVGRkVSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDRfRFBfVklEX1RJTUlOR19fRFBfVklEX01fTl9HRU5fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDRfRFBfVklEX1RJTUlOR19fRFBfVklEX05fTVVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBEUDRfRFBfVklEX1RJTUlOR19fRFBfVklEX01fRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEUDRfRFBfVklEX1RJTUlOR19fRFBfVklEX05fRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EUDRfRFBfVklEX04KKyNkZWZpbmUgRFA0X0RQX1ZJRF9OX19EUF9WSURfTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9WSURfTl9fRFBfVklEX05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQNF9EUF9WSURfTQorI2RlZmluZSBEUDRfRFBfVklEX01fX0RQX1ZJRF9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX1ZJRF9NX19EUF9WSURfTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vRFA0X0RQX0xJTktfRlJBTUlOR19DTlRMCisjZGVmaW5lIERQNF9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9fRFBfSURMRV9CU19JTlRFUlZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfTElOS19GUkFNSU5HX0NOVExfX0RQX1ZCSURfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQNF9EUF9MSU5LX0ZSQU1JTkdfQ05UTF9fRFBfVklEX0VOSEFOQ0VEX0ZSQU1FX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFA0X0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9JRExFX0JTX0lOVEVSVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgRFA0X0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9WQklEX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX0xJTktfRlJBTUlOR19DTlRMX19EUF9WSURfRU5IQU5DRURfRlJBTUVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRFA0X0RQX0hCUjJfRVlFX1BBVFRFUk4KKyNkZWZpbmUgRFA0X0RQX0hCUjJfRVlFX1BBVFRFUk5fX0RQX0hCUjJfRVlFX1BBVFRFUk5fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9IQlIyX0VZRV9QQVRURVJOX19EUF9IQlIyX0VZRV9QQVRURVJOX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RQNF9EUF9WSURfTVNBX1ZCSUQKKyNkZWZpbmUgRFA0X0RQX1ZJRF9NU0FfVkJJRF9fRFBfVklEX01TQV9MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9WSURfTVNBX1ZCSURfX0RQX1ZJRF9WQklEX0ZJRUxEX1BPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFA0X0RQX1ZJRF9NU0FfVkJJRF9fRFBfVklEX01TQV9MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgRFA0X0RQX1ZJRF9NU0FfVkJJRF9fRFBfVklEX1ZCSURfRklFTERfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFA0X0RQX1ZJRF9JTlRFUlJVUFRfQ05UTAorI2RlZmluZSBEUDRfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX1ZJRF9JTlRFUlJVUFRfQ05UTF9fRFBfVklEX1NUUkVBTV9ESVNBQkxFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQNF9EUF9WSURfSU5URVJSVVBUX0NOVExfX0RQX1ZJRF9TVFJFQU1fRElTQUJMRV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUDRfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDRfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDRfRFBfVklEX0lOVEVSUlVQVF9DTlRMX19EUF9WSURfU1RSRUFNX0RJU0FCTEVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9EUDRfRFBfRFBIWV9DTlRMCisjZGVmaW5lIERQNF9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfRFBIWV9DTlRMX19EUEhZX0FURVNUX1NFTF9MQU5FMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQNF9EUF9EUEhZX0NOVExfX0RQSFlfQVRFU1RfU0VMX0xBTkUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUDRfRFBfRFBIWV9DTlRMX19EUEhZX0ZFQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfUkVBRFlfU0hBRE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERQNF9EUF9EUEhZX0NOVExfX0RQSFlfRkVDX0FDVElWRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEUDRfRFBfRFBIWV9DTlRMX19EUEhZX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9EUEhZX0NOVExfX0RQSFlfU0tFV19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9BVEVTVF9TRUxfTEFORTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfUkVBRFlfU0hBRE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9GRUNfQUNUSVZFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ05UTF9fRFBIWV9TS0VXX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFA0X0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfX0RQSFlfVFJBSU5JTkdfUEFUVEVSTl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX1RSQUlOSU5HX1BBVFRFUk5fU0VMX19EUEhZX1RSQUlOSU5HX1BBVFRFUk5fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0RQNF9EUF9EUEhZX1NZTTAKKyNkZWZpbmUgRFA0X0RQX0RQSFlfU1lNMF9fRFBIWV9TWU0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDRfRFBfRFBIWV9TWU0wX19EUEhZX1NZTTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQNF9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQNF9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIERQNF9EUF9EUEhZX1NZTTBfX0RQSFlfU1lNM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGMDAwMDBMCisvL0RQNF9EUF9EUEhZX1NZTTEKKyNkZWZpbmUgRFA0X0RQX0RQSFlfU1lNMV9fRFBIWV9TWU00X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDRfRFBfRFBIWV9TWU0xX19EUEhZX1NZTTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQNF9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQNF9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIERQNF9EUF9EUEhZX1NZTTFfX0RQSFlfU1lNNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGMDAwMDBMCisvL0RQNF9EUF9EUEhZX1NZTTIKKyNkZWZpbmUgRFA0X0RQX0RQSFlfU1lNMl9fRFBIWV9TWU03X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX1NZTTJfX0RQSFlfU1lNOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDRfRFBfRFBIWV9TWU0yX19EUEhZX1NZTTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEUDRfRFBfRFBIWV9TWU0yX19EUEhZX1NZTThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorLy9EUDRfRFBfRFBIWV84QjEwQl9DTlRMCisjZGVmaW5lIERQNF9EUF9EUEhZXzhCMTBCX0NOVExfX0RQSFlfOEIxMEJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDRfRFBfRFBIWV84QjEwQl9DTlRMX19EUEhZXzhCMTBCX0VYVF9ESVNQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9EUEhZXzhCMTBCX0NOVExfX0RQSFlfOEIxMEJfQ1VSX0RJU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFA0X0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9FWFRfRElTUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfOEIxMEJfQ05UTF9fRFBIWV84QjEwQl9DVVJfRElTUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFA0X0RQX0RQSFlfUFJCU19DTlRMCisjZGVmaW5lIERQNF9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfRFBIWV9QUkJTX0NOVExfX0RQSFlfUFJCU19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFA0X0RQX0RQSFlfUFJCU19DTlRMX19EUEhZX1BSQlNfU0VFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQNF9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQNF9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERQNF9EUF9EUEhZX1BSQlNfQ05UTF9fRFBIWV9QUkJTX1NFRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGMDBMCisvL0RQNF9EUF9EUEhZX1NDUkFNX0NOVEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX1NDUkFNX0NOVExfX0RQSFlfU0NSQU1CTEVSX0FEVkFOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9CU19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX0RQSFlfU0NSQU1fQ05UTF9fRFBIWV9TQ1JBTUJMRVJfS0NPREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDRfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDRfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9BRFZBTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDRfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9CU19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRjAwTAorI2RlZmluZSBEUDRfRFBfRFBIWV9TQ1JBTV9DTlRMX19EUEhZX1NDUkFNQkxFUl9LQ09ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EUDRfRFBfRFBIWV9DUkNfRU4KKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19FTl9fRFBIWV9DUkNfQ09OVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfRFBIWV9DUkNfRU5fX0RQSFlfQ1JDX1JFU1VMVF9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19DT05UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX0VOX19EUEhZX0NSQ19SRVNVTFRfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRFA0X0RQX0RQSFlfQ1JDX0NOVEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX0NOVExfX0RQSFlfQ1JDX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfRFBIWV9DUkNfQ05UTF9fRFBIWV9DUkNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19GSUVMRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19DTlRMX19EUEhZX0NSQ19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0RQNF9EUF9EUEhZX0NSQ19SRVNVTFQKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDRfRFBfRFBIWV9DUkNfUkVTVUxUX19EUEhZX0NSQ19SRVNVTFQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19SRVNVTFRfX0RQSFlfQ1JDX1JFU1VMVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX1JFU1VMVF9fRFBIWV9DUkNfUkVTVUxUM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFA0X0RQX0RQSFlfQ1JDX01TVF9DTlRMCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19NU1RfQ05UTF9fRFBIWV9DUkNfTVNUX0ZJUlNUX1NMT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfRFBIWV9DUkNfTVNUX0NOVExfX0RQSFlfQ1JDX01TVF9MQVNUX1NMT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX01TVF9DTlRMX19EUEhZX0NSQ19NU1RfRklSU1RfU0xPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX01TVF9DTlRMX19EUEhZX0NSQ19NU1RfTEFTVF9TTE9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKy8vRFA0X0RQX0RQSFlfQ1JDX01TVF9TVEFUVVMKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQ1JDX01TVF9TVEFUVVNfX0RQSFlfQ1JDX01TVF9QSEFTRV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDRfRFBfRFBIWV9DUkNfTVNUX1NUQVRVU19fRFBIWV9DUkNfTVNUX1BIQVNFX0VSUk9SX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQNF9EUF9EUEhZX0NSQ19NU1RfU1RBVFVTX19EUEhZX0NSQ19NU1RfUEhBU0VfRVJST1JfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0RQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkcKKyNkZWZpbmUgRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9SWF9GQVNUX1RSQUlOSU5HX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfU1dfRkFTVF9UUkFJTklOR19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDRfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX19EUEhZX0ZBU1RfVFJBSU5JTkdfVkJMQU5LX0VER0VfREVURUNUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1RQMV9USU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfX0RQSFlfRkFTVF9UUkFJTklOR19UUDJfVElNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9SWF9GQVNUX1RSQUlOSU5HX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9TV19GQVNUX1RSQUlOSU5HX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1ZCTEFOS19FREdFX0RFVEVDVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1RQMV9USU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkYwMEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19fRFBIWV9GQVNUX1RSQUlOSU5HX1RQMl9USU1FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVMKKyNkZWZpbmUgRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfRFBIWV9GQVNUX1RSQUlOSU5HX1NUQVRVU19fRFBIWV9GQVNUX1RSQUlOSU5HX0NPTVBMRVRFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX0RQSFlfRkFTVF9UUkFJTklOR19TVEFUVVNfX0RQSFlfRkFTVF9UUkFJTklOR19DT01QTEVURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQNF9EUF9EUEhZX0ZBU1RfVFJBSU5JTkdfU1RBVFVTX19EUEhZX0ZBU1RfVFJBSU5JTkdfQ09NUExFVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisvL0RQNF9EUF9TRUNfQ05UTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19TVFJFQU1fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMX19EUF9TRUNfQVNQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTF9fRFBfU0VDX0FUUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19BSVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMX19EUF9TRUNfQUNNX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AwX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQMl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMX19EUF9TRUNfR1NQNV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A2X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTF9fRFBfU0VDX0dTUDdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMX19EUF9TRUNfTVBHX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19TVFJFQU1fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19BU1BfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19BVFBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19BSVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19BQ01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AwX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AxX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AyX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1AzX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A0X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A1X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A2X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19HU1A3X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVExfX0RQX1NFQ19NUEdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9EUDRfRFBfU0VDX0NOVEwxCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19JU1JDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AwX1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMV9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDJfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1AzX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNF9MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDVfTElORV9SRUZFUkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDFfX0RQX1NFQ19HU1A2X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQN19MSU5FX1JFRkVSRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMV9fRFBfU0VDX0dTUDBfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfSVNSQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX0RFQURMSU5FX01JU1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9TRU5EX0FOWV9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMV9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMl9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQM19MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNV9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQNl9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQN19MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwxX19EUF9TRUNfR1NQMF9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDRfRFBfU0VDX0ZSQU1JTkcxCisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzFfX0RQX1NFQ19GUkFNRV9TVEFSVF9MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfU0VDX0ZSQU1JTkcxX19EUF9TRUNfVkJMQU5LX1RSQU5TTUlUX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzFfX0RQX1NFQ19GUkFNRV9TVEFSVF9MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzFfX0RQX1NFQ19WQkxBTktfVFJBTlNNSVRfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQNF9EUF9TRUNfRlJBTUlORzIKKyNkZWZpbmUgRFA0X0RQX1NFQ19GUkFNSU5HMl9fRFBfU0VDX1NUQVJUX1BPU0lUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzJfX0RQX1NFQ19IQkxBTktfVFJBTlNNSVRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX1NFQ19GUkFNSU5HMl9fRFBfU0VDX1NUQVJUX1BPU0lUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFA0X0RQX1NFQ19GUkFNSU5HMl9fRFBfU0VDX0hCTEFOS19UUkFOU01JVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFA0X0RQX1NFQ19GUkFNSU5HMworI2RlZmluZSBEUDRfRFBfU0VDX0ZSQU1JTkczX19EUF9TRUNfSURMRV9GUkFNRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX1NFQ19GUkFNSU5HM19fRFBfU0VDX0lETEVfVFJBTlNNSVRfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDRfRFBfU0VDX0ZSQU1JTkczX19EUF9TRUNfSURMRV9GUkFNRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBEUDRfRFBfU0VDX0ZSQU1JTkczX19EUF9TRUNfSURMRV9UUkFOU01JVF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDRfRFBfU0VDX0ZSQU1JTkc0CisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzRfX0RQX1NTVF9TRFBfU1BMSVRUSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQ09MTElTSU9OX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19DT0xMSVNJT05fQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFA0X0RQX1NFQ19GUkFNSU5HNF9fRFBfU0VDX0FVRElPX01VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEUDRfRFBfU0VDX0ZSQU1JTkc0X19EUF9TRUNfQVVESU9fTVVURV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzRfX0RQX1NTVF9TRFBfU1BMSVRUSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19DT0xMSVNJT05fU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19DT0xMSVNJT05fQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19BVURJT19NVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERQNF9EUF9TRUNfRlJBTUlORzRfX0RQX1NFQ19BVURJT19NVVRFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RQNF9EUF9TRUNfQVVEX04KKyNkZWZpbmUgRFA0X0RQX1NFQ19BVURfTl9fRFBfU0VDX0FVRF9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9TRUNfQVVEX05fX0RQX1NFQ19BVURfTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQNF9EUF9TRUNfQVVEX05fUkVBREJBQ0sKKyNkZWZpbmUgRFA0X0RQX1NFQ19BVURfTl9SRUFEQkFDS19fRFBfU0VDX0FVRF9OX1JFQURCQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9TRUNfQVVEX05fUkVBREJBQ0tfX0RQX1NFQ19BVURfTl9SRUFEQkFDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQNF9EUF9TRUNfQVVEX00KKyNkZWZpbmUgRFA0X0RQX1NFQ19BVURfTV9fRFBfU0VDX0FVRF9NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9TRUNfQVVEX01fX0RQX1NFQ19BVURfTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQNF9EUF9TRUNfQVVEX01fUkVBREJBQ0sKKyNkZWZpbmUgRFA0X0RQX1NFQ19BVURfTV9SRUFEQkFDS19fRFBfU0VDX0FVRF9NX1JFQURCQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9TRUNfQVVEX01fUkVBREJBQ0tfX0RQX1NFQ19BVURfTV9SRUFEQkFDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RQNF9EUF9TRUNfVElNRVNUQU1QCisjZGVmaW5lIERQNF9EUF9TRUNfVElNRVNUQU1QX19EUF9TRUNfVElNRVNUQU1QX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfU0VDX1RJTUVTVEFNUF9fRFBfU0VDX1RJTUVTVEFNUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EUDRfRFBfU0VDX1BBQ0tFVF9DTlRMCisjZGVmaW5lIERQNF9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19BU1BfQ09ESU5HX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDRfRFBfU0VDX1BBQ0tFVF9DTlRMX19EUF9TRUNfQVNQX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFA0X0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQNF9EUF9TRUNfUEFDS0VUX0NOVExfX0RQX1NFQ19BU1BfQ0hBTk5FTF9DT1VOVF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9DT0RJTkdfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgRFA0X0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX1ZFUlNJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19QQUNLRVRfQ05UTF9fRFBfU0VDX0FTUF9DSEFOTkVMX0NPVU5UX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vRFA0X0RQX01TRV9SQVRFX0NOVEwKKyNkZWZpbmUgRFA0X0RQX01TRV9SQVRFX0NOVExfX0RQX01TRV9SQVRFX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9NU0VfUkFURV9DTlRMX19EUF9NU0VfUkFURV9YX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFA0X0RQX01TRV9SQVRFX0NOVExfX0RQX01TRV9SQVRFX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgRFA0X0RQX01TRV9SQVRFX0NOVExfX0RQX01TRV9SQVRFX1hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFA0X0RQX01TRV9SQVRFX1VQREFURQorI2RlZmluZSBEUDRfRFBfTVNFX1JBVEVfVVBEQVRFX19EUF9NU0VfUkFURV9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX01TRV9SQVRFX1VQREFURV9fRFBfTVNFX1JBVEVfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRFA0X0RQX01TRV9TQVQwCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TUkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQwX19EUF9NU0VfU0FUX1NSQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDBfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TUkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TUkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQNF9EUF9NU0VfU0FUMQorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU1JDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMV9fRFBfTVNFX1NBVF9TUkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQxX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU1JDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU1JDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDFfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDRfRFBfTVNFX1NBVDIKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NSQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDJfX0RQX01TRV9TQVRfU1JDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMl9fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NSQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NSQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQyX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFA0X0RQX01TRV9TQVRfVVBEQVRFCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUX1VQREFURV9fRFBfTVNFX1NBVF9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVF9VUERBVEVfX0RQX01TRV8xNl9NVFBfS0VFUE9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVRfVVBEQVRFX19EUF9NU0VfU0FUX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVRfVVBEQVRFX19EUF9NU0VfMTZfTVRQX0tFRVBPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRFA0X0RQX01TRV9MSU5LX1RJTUlORworI2RlZmluZSBEUDRfRFBfTVNFX0xJTktfVElNSU5HX19EUF9NU0VfTElOS19GUkFNRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX01TRV9MSU5LX1RJTUlOR19fRFBfTVNFX0xJTktfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDRfRFBfTVNFX0xJTktfVElNSU5HX19EUF9NU0VfTElOS19GUkFNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEUDRfRFBfTVNFX0xJTktfVElNSU5HX19EUF9NU0VfTElOS19MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9EUDRfRFBfTVNFX01JU0NfQ05UTAorI2RlZmluZSBEUDRfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX0JMQU5LX0NPREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX01TRV9NSVNDX0NOVExfX0RQX01TRV9USU1FU1RBTVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQNF9EUF9NU0VfTUlTQ19DTlRMX19EUF9NU0VfWkVST19FTkNPREVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDRfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX0JMQU5LX0NPREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDRfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX1RJTUVTVEFNUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDRfRFBfTVNFX01JU0NfQ05UTF9fRFBfTVNFX1pFUk9fRU5DT0RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EUDRfRFBfRFBIWV9CU19TUl9TV0FQX0NOVEwKKyNkZWZpbmUgRFA0X0RQX0RQSFlfQlNfU1JfU1dBUF9DTlRMX19EUEhZX0xPQURfQlNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9CU19TUl9TV0FQX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUDRfRFBfRFBIWV9CU19TUl9TV0FQX0NOVExfX0RQSFlfTE9BRF9CU19DT1VOVF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9MT0FEX0JTX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERQNF9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9CU19TUl9TV0FQX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQNF9EUF9EUEhZX0JTX1NSX1NXQVBfQ05UTF9fRFBIWV9MT0FEX0JTX0NPVU5UX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL0RQNF9EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MCisjZGVmaW5lIERQNF9EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX19EUF9EUEhZX0hCUjJfUEFUVEVSTl9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTF9fRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorLy9EUDRfRFBfTVNFX1NBVDBfU1RBVFVTCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU1JDMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQwX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDBfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU1JDMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU1JDMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMF9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL0RQNF9EUF9NU0VfU0FUMV9TVEFUVVMKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDFfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMV9TVEFUVVNfX0RQX01TRV9TQVRfU0xPVF9DT1VOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TUkMzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQxX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vRFA0X0RQX01TRV9TQVQyX1NUQVRVUworI2RlZmluZSBEUDRfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQNF9EUF9NU0VfU0FUMl9TVEFUVVNfX0RQX01TRV9TQVRfU1JDNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX01TRV9TQVQyX1NUQVRVU19fRFBfTVNFX1NBVF9TTE9UX0NPVU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NSQzVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBEUDRfRFBfTVNFX1NBVDJfU1RBVFVTX19EUF9NU0VfU0FUX1NMT1RfQ09VTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9EUDRfRFBfTVNBX1RJTUlOR19QQVJBTTEKKyNkZWZpbmUgRFA0X0RQX01TQV9USU1JTkdfUEFSQU0xX19EUF9NU0FfVlRPVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9NU0FfVElNSU5HX1BBUkFNMV9fRFBfTVNBX0hUT1RBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX01TQV9USU1JTkdfUEFSQU0xX19EUF9NU0FfVlRPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFA0X0RQX01TQV9USU1JTkdfUEFSQU0xX19EUF9NU0FfSFRPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFA0X0RQX01TQV9USU1JTkdfUEFSQU0yCisjZGVmaW5lIERQNF9EUF9NU0FfVElNSU5HX1BBUkFNMl9fRFBfTVNBX1ZTVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfTVNBX1RJTUlOR19QQVJBTTJfX0RQX01TQV9IU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9NU0FfVElNSU5HX1BBUkFNMl9fRFBfTVNBX1ZTVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQNF9EUF9NU0FfVElNSU5HX1BBUkFNMl9fRFBfTVNBX0hTVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQNF9EUF9NU0FfVElNSU5HX1BBUkFNMworI2RlZmluZSBEUDRfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9WU1lOQ1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfVlNZTkNQT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQNF9EUF9NU0FfVElNSU5HX1BBUkFNM19fRFBfTVNBX0hTWU5DV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX01TQV9USU1JTkdfUEFSQU0zX19EUF9NU0FfSFNZTkNQT0xBUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUDRfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9WU1lOQ1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorI2RlZmluZSBEUDRfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9WU1lOQ1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUDRfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9IU1lOQ1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkYwMDAwTAorI2RlZmluZSBEUDRfRFBfTVNBX1RJTUlOR19QQVJBTTNfX0RQX01TQV9IU1lOQ1BPTEFSSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUDRfRFBfTVNBX1RJTUlOR19QQVJBTTQKKyNkZWZpbmUgRFA0X0RQX01TQV9USU1JTkdfUEFSQU00X19EUF9NU0FfVkhFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9NU0FfVElNSU5HX1BBUkFNNF9fRFBfTVNBX0hXSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX01TQV9USU1JTkdfUEFSQU00X19EUF9NU0FfVkhFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFA0X0RQX01TQV9USU1JTkdfUEFSQU00X19EUF9NU0FfSFdJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFA0X0RQX01TT19DTlRMCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX05VTV9PRl9TU1RMSU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfU1RSRUFNX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMX19EUF9NU09fU0VDX0FTUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BVFBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDRfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfQUlQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BQ01fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMX19EUF9NU09fU0VDX0dTUDBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDRfRFBfTVNPX0NOVExfX0RQX01TT19TRUNfR1NQMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX05VTV9PRl9TU1RMSU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19TVFJFQU1fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BU1BfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BVFBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BSVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19BQ01fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19HU1AwX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTF9fRFBfTVNPX1NFQ19HU1AxX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RQNF9EUF9NU09fQ05UTDEKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1AyX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQM19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX0dTUDRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQNF9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfR1NQNl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A3X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDRfRFBfTVNPX0NOVEwxX19EUF9NU09fU0VDX01QR19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQNF9EUF9NU09fQ05UTDFfX0RQX01TT19TRUNfSVNSQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1AyX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1AzX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A0X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A1X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A2X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19HU1A3X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19NUEdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX01TT19DTlRMMV9fRFBfTVNPX1NFQ19JU1JDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFA0X0RQX0RTQ19DTlRMCisjZGVmaW5lIERQNF9EUF9EU0NfQ05UTF9fRFBfRFNDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfRFNDX0NOVExfX0RQX0RTQ19TTElDRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9EU0NfQ05UTF9fRFBfRFNDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERQNF9EUF9EU0NfQ05UTF9fRFBfRFNDX1NMSUNFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL0RQNF9EUF9TRUNfQ05UTDIKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AxX1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMV9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQMl9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AyX1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1AzX1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQM19TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A0X1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNF9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNV9TRU5EX0RFQURMSU5FX01JU1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A1X1NFTkRfQU5ZX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQNl9TRU5EX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A2X1NFTkRfREVBRExJTkVfTUlTU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9BTllfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1NFTkRfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9ERUFETElORV9NSVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwyX19EUF9TRUNfR1NQN19TRU5EX0FOWV9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDJfX0RQX1NFQ19HU1A3X1BQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDFfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDJfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDNfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDRfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDVfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDZfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9ERUFETElORV9NSVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfU0VORF9BTllfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMMl9fRFBfU0VDX0dTUDdfUFBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRFA0X0RQX1NFQ19DTlRMMworI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwzX19EUF9TRUNfR1NQMV9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMM19fRFBfU0VDX0dTUDJfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwzX19EUF9TRUNfR1NQMV9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEwzX19EUF9TRUNfR1NQMl9MSU5FX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDRfRFBfU0VDX0NOVEw0CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDRfX0RQX1NFQ19HU1AzX0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw0X19EUF9TRUNfR1NQNF9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDRfX0RQX1NFQ19HU1AzX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDRfX0RQX1NFQ19HU1A0X0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RQNF9EUF9TRUNfQ05UTDUKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMNV9fRFBfU0VDX0dTUDVfTElORV9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDVfX0RQX1NFQ19HU1A2X0xJTkVfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMNV9fRFBfU0VDX0dTUDVfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMNV9fRFBfU0VDX0dTUDZfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFA0X0RQX1NFQ19DTlRMNgorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw2X19EUF9TRUNfR1NQN19MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMNl9fRFBfU0VDX0dTUDdfTElORV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRFA0X0RQX1NFQ19DTlRMNworI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMF9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDBfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AxX1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMV9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDJfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1AyX1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQM19TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDNfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A0X1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDRfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNV9TRU5EX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A1X1NFTkRfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDZfU0VORF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNl9TRU5EX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERQNF9EUF9TRUNfQ05UTDdfX0RQX1NFQ19HU1A3X1NFTkRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFA0X0RQX1NFQ19DTlRMN19fRFBfU0VDX0dTUDdfU0VORF9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMF9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMF9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMV9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMV9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMl9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQMl9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQM19TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQM19TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNF9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNF9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNV9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNV9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNl9TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQNl9TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQN19TRU5EX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEUDRfRFBfU0VDX0NOVEw3X19EUF9TRUNfR1NQN19TRU5EX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EUDRfRFBfREJfQ05UTAorI2RlZmluZSBEUDRfRFBfREJfQ05UTF9fRFBfREJfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX0RCX1RBS0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQNF9EUF9EQl9DTlRMX19EUF9EQl9UQUtFTl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDRfRFBfREJfQ05UTF9fRFBfREJfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX0RCX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQNF9EUF9EQl9DTlRMX19EUF9WVVBEQVRFX0RCX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUDRfRFBfREJfQ05UTF9fRFBfVlVQREFURV9EQl9UQUtFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9EQl9DTlRMX19EUF9WVVBEQVRFX0RCX1RBS0VOX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX0RCX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX0RCX1RBS0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX0RCX1RBS0VOX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX0RCX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX0RCX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfVEFLRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFA0X0RQX0RCX0NOVExfX0RQX1ZVUERBVEVfREJfVEFLRU5fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vRFA0X0RQX01TQV9WQklEX01JU0MKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX01TQV9NSVNDMV9TVEVSRU9TWU5DX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9NU0FfVkJJRF9NSVNDX19EUF9NU0FfTUlTQzFfU1RFUkVPU1lOQ19PVkVSUklERV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUDRfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDFfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQyX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQNF9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklEMV9PVkVSUklERV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUDRfRFBfTVNBX1ZCSURfTUlTQ19fRFBfVkJJRDJfT1ZFUlJJREVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQ2X0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQNF9EUF9NU0FfVkJJRF9NSVNDX19EUF9WQklENl9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX01TQV9NSVNDMV9TVEVSRU9TWU5DX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX01TQV9NSVNDMV9TVEVSRU9TWU5DX09WRVJSSURFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQxX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQyX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQxX09WRVJSSURFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQyX09WRVJSSURFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQ2X0xJTkVfUkVGRVJFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFA0X0RQX01TQV9WQklEX01JU0NfX0RQX1ZCSUQ2X0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFA0X0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT04KKyNkZWZpbmUgRFA0X0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NRVRBREFUQV9QQUNLRVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQNF9EUF9TRUNfTUVUQURBVEFfVFJBTlNNSVNTSU9OX19EUF9TRUNfTUVUQURBVEFfUEFDS0VUX0xJTkVfUkVGRVJFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUDRfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01TT19NRVRBREFUQV9QQUNLRVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFA0X0RQX1NFQ19NRVRBREFUQV9UUkFOU01JU1NJT05fX0RQX1NFQ19NRVRBREFUQV9QQUNLRVRfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUDRfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUDRfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9MSU5FX1JFRkVSRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUDRfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01TT19NRVRBREFUQV9QQUNLRVRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEUDRfRFBfU0VDX01FVEFEQVRBX1RSQU5TTUlTU0lPTl9fRFBfU0VDX01FVEFEQVRBX1BBQ0tFVF9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EUDRfRFBfRFNDX0JZVEVTX1BFUl9QSVhFTAorI2RlZmluZSBEUDRfRFBfRFNDX0JZVEVTX1BFUl9QSVhFTF9fRFBfRFNDX0JZVEVTX1BFUl9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX0RTQ19CWVRFU19QRVJfUElYRUxfX0RQX0RTQ19CWVRFU19QRVJfUElYRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vRFA0X0RQX0FMUE1fQ05UTAorI2RlZmluZSBEUDRfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfU0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFA0X0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQNF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TVEFOREJZX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUDRfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU1RBTkRCWV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFA0X0RQX0FMUE1fQ05UTF9fRFBfTUxfUEhZX1NMRUVQX1NUQU5EQllfSU1NRURJQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQNF9EUF9BTFBNX0NOVExfX0RQX0xJTktfVFJBSU5JTkdfU1dJVENIX0JFVFdFRU5fVklERU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEUDRfRFBfQUxQTV9DTlRMX19EUF9NTF9QSFlfU0xFRVBfU1RBTkRCWV9MSU5FX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQNF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQNF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQNF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TVEFOREJZX1NFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQNF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TVEFOREJZX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERQNF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TVEFOREJZX0lNTUVESUFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQNF9EUF9BTFBNX0NOVExfX0RQX0xJTktfVFJBSU5JTkdfU1dJVENIX0JFVFdFRU5fVklERU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERQNF9EUF9BTFBNX0NOVExfX0RQX01MX1BIWV9TTEVFUF9TVEFOREJZX0xJTkVfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZGNpb19kY2lvX2Rpc3BkZWMKKy8vRENfR0VORVJJQ0EKKyNkZWZpbmUgRENfR0VORVJJQ0FfX0dFTkVSSUNBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dFTkVSSUNBX19HRU5FUklDQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19HRU5FUklDQV9fR0VORVJJQ0FfVU5JUEhZX1JFRkRJVl9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR0VORVJJQ0FfX0dFTkVSSUNBX1VOSVBIWV9GQkRJVl9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HRU5FUklDQV9fR0VORVJJQ0FfVU5JUEhZX0ZCRElWX1NTQ19DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dFTkVSSUNBX19HRU5FUklDQV9VTklQSFlfRkJESVZfQ0xLX0RJVjJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR0VORVJJQ0FfX0dFTkVSSUNBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR0VORVJJQ0FfX0dFTkVSSUNBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEY4MEwKKyNkZWZpbmUgRENfR0VORVJJQ0FfX0dFTkVSSUNBX1VOSVBIWV9SRUZESVZfQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRENfR0VORVJJQ0FfX0dFTkVSSUNBX1VOSVBIWV9GQkRJVl9DTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRENfR0VORVJJQ0FfX0dFTkVSSUNBX1VOSVBIWV9GQkRJVl9TU0NfQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRENfR0VORVJJQ0FfX0dFTkVSSUNBX1VOSVBIWV9GQkRJVl9DTEtfRElWMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vRENfR0VORVJJQ0IKKyNkZWZpbmUgRENfR0VORVJJQ0JfX0dFTkVSSUNCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dFTkVSSUNCX19HRU5FUklDQl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HRU5FUklDQl9fR0VORVJJQ0JfVU5JUEhZX1JFRkRJVl9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR0VORVJJQ0JfX0dFTkVSSUNCX1VOSVBIWV9GQkRJVl9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HRU5FUklDQl9fR0VORVJJQ0JfVU5JUEhZX0ZCRElWX1NTQ19DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dFTkVSSUNCX19HRU5FUklDQl9VTklQSFlfRkJESVZfQ0xLX0RJVjJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR0VORVJJQ0JfX0dFTkVSSUNCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR0VORVJJQ0JfX0dFTkVSSUNCX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRENfR0VORVJJQ0JfX0dFTkVSSUNCX1VOSVBIWV9SRUZESVZfQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRENfR0VORVJJQ0JfX0dFTkVSSUNCX1VOSVBIWV9GQkRJVl9DTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRENfR0VORVJJQ0JfX0dFTkVSSUNCX1VOSVBIWV9GQkRJVl9TU0NfQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRENfR0VORVJJQ0JfX0dFTkVSSUNCX1VOSVBIWV9GQkRJVl9DTEtfRElWMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vRENfUkVGX0NMS19DTlRMCisjZGVmaW5lIERDX1JFRl9DTEtfQ05UTF9fSFNZTkNBX09VVFBVVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19SRUZfQ0xLX0NOVExfX0dFTkxLX0NMS19PVVRQVVRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUkVGX0NMS19DTlRMX19IU1lOQ0FfT1VUUFVUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUkVGX0NMS19DTlRMX19HRU5MS19DTEtfT1VUUFVUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKy8vVU5JUEhZQV9MSU5LX0NOVEwKKyNkZWZpbmUgVU5JUEhZQV9MSU5LX0NOVExfX1VOSVBIWV9QRlJFUUNIR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVOSVBIWUFfTElOS19DTlRMX19VTklQSFlfUElYVkxEX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZQV9MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVOSVBIWUFfTElOS19DTlRMX19VTklQSFlfQ0hBTk5FTDFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVU5JUEhZQV9MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMM19JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVOSVBIWUFfTElOS19DTlRMX19VTklQSFlfTEFORV9TVEFHR0VSX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVU5JUEhZQV9MSU5LX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9IUERfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX1BGUkVRQ0hHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX1BJWFZMRF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX0xBTkVfU1RBR0dFUl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBVTklQSFlBX0xJTktfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX0hQRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9VTklQSFlBX0NIQU5ORUxfWEJBUl9DTlRMCisjZGVmaW5lIFVOSVBIWUFfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9YQkFSX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVTklQSFlBX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDFfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZQV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVTklQSFlBX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDNfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVOSVBIWUFfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVU5JUEhZQV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgVU5JUEhZQV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgVU5JUEhZQV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVU5JUEhZQV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgVU5JUEhZQV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vVU5JUEhZQl9MSU5LX0NOVEwKKyNkZWZpbmUgVU5JUEhZQl9MSU5LX0NOVExfX1VOSVBIWV9QRlJFUUNIR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVOSVBIWUJfTElOS19DTlRMX19VTklQSFlfUElYVkxEX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZQl9MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVOSVBIWUJfTElOS19DTlRMX19VTklQSFlfQ0hBTk5FTDFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVU5JUEhZQl9MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMM19JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVOSVBIWUJfTElOS19DTlRMX19VTklQSFlfTEFORV9TVEFHR0VSX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVU5JUEhZQl9MSU5LX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9IUERfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX1BGUkVRQ0hHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX1BJWFZMRF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX0xBTkVfU1RBR0dFUl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBVTklQSFlCX0xJTktfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX0hQRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9VTklQSFlCX0NIQU5ORUxfWEJBUl9DTlRMCisjZGVmaW5lIFVOSVBIWUJfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9YQkFSX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVTklQSFlCX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDFfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZQl9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVTklQSFlCX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDNfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVOSVBIWUJfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVU5JUEhZQl9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgVU5JUEhZQl9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgVU5JUEhZQl9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVU5JUEhZQl9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgVU5JUEhZQl9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vVU5JUEhZQ19MSU5LX0NOVEwKKyNkZWZpbmUgVU5JUEhZQ19MSU5LX0NOVExfX1VOSVBIWV9QRlJFUUNIR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVOSVBIWUNfTElOS19DTlRMX19VTklQSFlfUElYVkxEX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZQ19MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVOSVBIWUNfTElOS19DTlRMX19VTklQSFlfQ0hBTk5FTDFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVU5JUEhZQ19MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMM19JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVOSVBIWUNfTElOS19DTlRMX19VTklQSFlfTEFORV9TVEFHR0VSX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVU5JUEhZQ19MSU5LX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9IUERfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX1BGUkVRQ0hHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX1BJWFZMRF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX0xBTkVfU1RBR0dFUl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBVTklQSFlDX0xJTktfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX0hQRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9VTklQSFlDX0NIQU5ORUxfWEJBUl9DTlRMCisjZGVmaW5lIFVOSVBIWUNfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9YQkFSX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVTklQSFlDX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDFfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZQ19DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVTklQSFlDX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDNfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVOSVBIWUNfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVU5JUEhZQ19DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgVU5JUEhZQ19DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgVU5JUEhZQ19DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVU5JUEhZQ19DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgVU5JUEhZQ19DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vVU5JUEhZRF9MSU5LX0NOVEwKKyNkZWZpbmUgVU5JUEhZRF9MSU5LX0NOVExfX1VOSVBIWV9QRlJFUUNIR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVOSVBIWURfTElOS19DTlRMX19VTklQSFlfUElYVkxEX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZRF9MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVOSVBIWURfTElOS19DTlRMX19VTklQSFlfQ0hBTk5FTDFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVU5JUEhZRF9MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMM19JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVOSVBIWURfTElOS19DTlRMX19VTklQSFlfTEFORV9TVEFHR0VSX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVU5JUEhZRF9MSU5LX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9IUERfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX1BGUkVRQ0hHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX1BJWFZMRF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX0xBTkVfU1RBR0dFUl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBVTklQSFlEX0xJTktfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX0hQRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9VTklQSFlEX0NIQU5ORUxfWEJBUl9DTlRMCisjZGVmaW5lIFVOSVBIWURfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9YQkFSX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVTklQSFlEX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDFfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZRF9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVTklQSFlEX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDNfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVOSVBIWURfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVU5JUEhZRF9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgVU5JUEhZRF9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgVU5JUEhZRF9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVU5JUEhZRF9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgVU5JUEhZRF9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vVU5JUEhZRV9MSU5LX0NOVEwKKyNkZWZpbmUgVU5JUEhZRV9MSU5LX0NOVExfX1VOSVBIWV9QRlJFUUNIR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVOSVBIWUVfTElOS19DTlRMX19VTklQSFlfUElYVkxEX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZRV9MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVOSVBIWUVfTElOS19DTlRMX19VTklQSFlfQ0hBTk5FTDFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVU5JUEhZRV9MSU5LX0NOVExfX1VOSVBIWV9DSEFOTkVMM19JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVOSVBIWUVfTElOS19DTlRMX19VTklQSFlfTEFORV9TVEFHR0VSX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVU5JUEhZRV9MSU5LX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9IUERfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX1BGUkVRQ0hHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX1BJWFZMRF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX01JTklNVU1fUElYVkxEX0xPV19EVVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX0xBTkVfU1RBR0dFUl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBVTklQSFlFX0xJTktfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX0hQRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9VTklQSFlFX0NIQU5ORUxfWEJBUl9DTlRMCisjZGVmaW5lIFVOSVBIWUVfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9DSEFOTkVMMF9YQkFSX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVTklQSFlFX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDFfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVU5JUEhZRV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVTklQSFlFX0NIQU5ORUxfWEJBUl9DTlRMX19VTklQSFlfQ0hBTk5FTDNfWEJBUl9TT1VSQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVOSVBIWUVfQ0hBTk5FTF9YQkFSX0NOVExfX1VOSVBIWV9MSU5LX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVU5JUEhZRV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwwX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgVU5JUEhZRV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwxX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgVU5JUEhZRV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwyX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVU5JUEhZRV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0NIQU5ORUwzX1hCQVJfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgVU5JUEhZRV9DSEFOTkVMX1hCQVJfQ05UTF9fVU5JUEhZX0xJTktfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRENJT19XUkNNRF9ERUxBWQorI2RlZmluZSBEQ0lPX1dSQ01EX0RFTEFZX19EQUNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENJT19XUkNNRF9ERUxBWV9fRFBIWV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDSU9fV1JDTURfREVMQVlfX0RDUlhQSFlfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ0lPX1dSQ01EX0RFTEFZX19aQ0FMX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDSU9fV1JDTURfREVMQVlfX1VOSVBIWV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENJT19XUkNNRF9ERUxBWV9fREFDX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRENJT19XUkNNRF9ERUxBWV9fRFBIWV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRENJT19XUkNNRF9ERUxBWV9fRENSWFBIWV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRENJT19XUkNNRF9ERUxBWV9fWkNBTF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRENJT19XUkNNRF9ERUxBWV9fVU5JUEhZX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRENfUElOU1RSQVBTCisjZGVmaW5lIERDX1BJTlNUUkFQU19fRENfUElOU1RSQVBTX1NNU19FTl9IQVJEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19QSU5TVFJBUFNfX0RDX1BJTlNUUkFQU19BVURJT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUElOU1RSQVBTX19EQ19QSU5TVFJBUFNfQ0NCWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QSU5TVFJBUFNfX0RDX1BJTlNUUkFQU19DT05ORUNUSVZJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX1BJTlNUUkFQU19fRENfUElOU1RSQVBTX1NNU19FTl9IQVJEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX1BJTlNUUkFQU19fRENfUElOU1RSQVBTX0FVRElPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIERDX1BJTlNUUkFQU19fRENfUElOU1RSQVBTX0NDQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BJTlNUUkFQU19fRENfUElOU1RSQVBTX0NPTk5FQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDBMCisvL0xWVE1BX1BXUlNFUV9DTlRMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9QV1JTRVFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBMVlRNQV9QV1JTRVFfQ05UTF9fTFZUTUFfUFdSU0VRX0RJU0FCTEVfU1lOQ0VOX0NPTlRST0xfT0ZfVFhfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0NOVExfX0xWVE1BX1BXUlNFUV9UQVJHRVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9TWU5DRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBMVlRNQV9QV1JTRVFfQ05UTF9fTFZUTUFfU1lOQ0VOX09WUkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0NOVExfX0xWVE1BX1NZTkNFTl9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9ESUdPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0NOVExfX0xWVE1BX0RJR09OX09WUkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBMVlRNQV9QV1JTRVFfQ05UTF9fTFZUTUFfRElHT05fUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9CTE9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0NOVExfX0xWVE1BX0JMT05fT1ZSRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBMVlRNQV9QV1JTRVFfQ05UTF9fTFZUTUFfQkxPTl9QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9QV1JTRVFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9QV1JTRVFfRElTQUJMRV9TWU5DRU5fQ09OVFJPTF9PRl9UWF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9QV1JTRVFfVEFSR0VUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9TWU5DRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9TWU5DRU5fT1ZSRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9TWU5DRU5fUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9ESUdPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9ESUdPTl9PVlJEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9ESUdPTl9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9CTE9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9CTE9OX09WUkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9DTlRMX19MVlRNQV9CTE9OX1BPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisvL0xWVE1BX1BXUlNFUV9TVEFURQorI2RlZmluZSBMVlRNQV9QV1JTRVFfU1RBVEVfX0xWVE1BX1BXUlNFUV9UQVJHRVRfU1RBVEVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX1NUQVRFX19MVlRNQV9QV1JTRVFfRElHT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIExWVE1BX1BXUlNFUV9TVEFURV9fTFZUTUFfUFdSU0VRX1NZTkNFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBMVlRNQV9QV1JTRVFfU1RBVEVfX0xWVE1BX1BXUlNFUV9CTE9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX1NUQVRFX19MVlRNQV9QV1JTRVFfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIExWVE1BX1BXUlNFUV9TVEFURV9fTFZUTUFfUFdSU0VRX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBMVlRNQV9QV1JTRVFfU1RBVEVfX0xWVE1BX1BXUlNFUV9UQVJHRVRfU1RBVEVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBMVlRNQV9QV1JTRVFfU1RBVEVfX0xWVE1BX1BXUlNFUV9ESUdPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBMVlRNQV9QV1JTRVFfU1RBVEVfX0xWVE1BX1BXUlNFUV9TWU5DRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBMVlRNQV9QV1JTRVFfU1RBVEVfX0xWVE1BX1BXUlNFUV9CTE9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBMVlRNQV9QV1JTRVFfU1RBVEVfX0xWVE1BX1BXUlNFUV9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBMVlRNQV9QV1JTRVFfU1RBVEVfX0xWVE1BX1BXUlNFUV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorLy9MVlRNQV9QV1JTRVFfUkVGX0RJVgorI2RlZmluZSBMVlRNQV9QV1JTRVFfUkVGX0RJVl9fTFZUTUFfUFdSU0VRX1JFRl9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX1JFRl9ESVZfX0JMX1BXTV9SRUZfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBMVlRNQV9QV1JTRVFfUkVGX0RJVl9fTFZUTUFfUFdSU0VRX1JFRl9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBMVlRNQV9QV1JTRVFfUkVGX0RJVl9fQkxfUFdNX1JFRl9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9MVlRNQV9QV1JTRVFfREVMQVkxCisjZGVmaW5lIExWVE1BX1BXUlNFUV9ERUxBWTFfX0xWVE1BX1BXUlVQX0RFTEFZMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBMVlRNQV9QV1JTRVFfREVMQVkxX19MVlRNQV9QV1JVUF9ERUxBWTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0RFTEFZMV9fTFZUTUFfUFdSRE5fREVMQVkxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBMVlRNQV9QV1JTRVFfREVMQVkxX19MVlRNQV9QV1JETl9ERUxBWTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIExWVE1BX1BXUlNFUV9ERUxBWTFfX0xWVE1BX1BXUlVQX0RFTEFZMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9ERUxBWTFfX0xWVE1BX1BXUlVQX0RFTEFZMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9ERUxBWTFfX0xWVE1BX1BXUkROX0RFTEFZMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIExWVE1BX1BXUlNFUV9ERUxBWTFfX0xWVE1BX1BXUkROX0RFTEFZMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0xWVE1BX1BXUlNFUV9ERUxBWTIKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0RFTEFZMl9fTFZUTUFfUFdSRE5fTUlOX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIExWVE1BX1BXUlNFUV9ERUxBWTJfX0xWVE1BX1BXUlVQX0RFTEFZM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBMVlRNQV9QV1JTRVFfREVMQVkyX19MVlRNQV9QV1JETl9ERUxBWTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIExWVE1BX1BXUlNFUV9ERUxBWTJfX0xWVE1BX1ZBUllfQkxfT1ZFUlJJREVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0RFTEFZMl9fTFZUTUFfUFdSRE5fTUlOX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0RFTEFZMl9fTFZUTUFfUFdSVVBfREVMQVkzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0RFTEFZMl9fTFZUTUFfUFdSRE5fREVMQVkzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTFZUTUFfUFdSU0VRX0RFTEFZMl9fTFZUTUFfVkFSWV9CTF9PVkVSUklERV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQkxfUFdNX0NOVEwKKyNkZWZpbmUgQkxfUFdNX0NOVExfX0JMX0FDVElWRV9JTlRfRlJBQ19DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEJMX1BXTV9DTlRMX19CTF9QV01fRlJBQ1RJT05BTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgQkxfUFdNX0NOVExfX0JMX1BXTV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBCTF9QV01fQ05UTF9fQkxfQUNUSVZFX0lOVF9GUkFDX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBCTF9QV01fQ05UTF9fQkxfUFdNX0ZSQUNUSU9OQUxfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBCTF9QV01fQ05UTF9fQkxfUFdNX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9CTF9QV01fQ05UTDIKKyNkZWZpbmUgQkxfUFdNX0NOVEwyX19CTF9QV01fUE9TVF9GUkFNRV9TVEFSVF9ERUxBWV9CRUZPUkVfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEJMX1BXTV9DTlRMMl9fQkxfUFdNX09WRVJSSURFX0JMX09VVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgQkxfUFdNX0NOVEwyX19CTF9QV01fT1ZFUlJJREVfTFZUTUFfUFdSU0VRX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBCTF9QV01fQ05UTDJfX0JMX1BXTV9QT1NUX0ZSQU1FX1NUQVJUX0RFTEFZX0JFRk9SRV9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBCTF9QV01fQ05UTDJfX0JMX1BXTV9PVkVSUklERV9CTF9PVVRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBCTF9QV01fQ05UTDJfX0JMX1BXTV9PVkVSUklERV9MVlRNQV9QV1JTRVFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9CTF9QV01fUEVSSU9EX0NOVEwKKyNkZWZpbmUgQkxfUFdNX1BFUklPRF9DTlRMX19CTF9QV01fUEVSSU9EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEJMX1BXTV9QRVJJT0RfQ05UTF9fQkxfUFdNX1BFUklPRF9CSVRDTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQkxfUFdNX1BFUklPRF9DTlRMX19CTF9QV01fUEVSSU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQkxfUFdNX1BFUklPRF9DTlRMX19CTF9QV01fUEVSSU9EX0JJVENOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vQkxfUFdNX0dSUDFfUkVHX0xPQ0sKKyNkZWZpbmUgQkxfUFdNX0dSUDFfUkVHX0xPQ0tfX0JMX1BXTV9HUlAxX1JFR19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEJMX1BXTV9HUlAxX1JFR19MT0NLX19CTF9QV01fR1JQMV9SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBCTF9QV01fR1JQMV9SRUdfTE9DS19fQkxfUFdNX0dSUDFfVVBEQVRFX0FUX0ZSQU1FX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEJMX1BXTV9HUlAxX1JFR19MT0NLX19CTF9QV01fR1JQMV9GUkFNRV9TVEFSVF9ESVNQX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQkxfUFdNX0dSUDFfUkVHX0xPQ0tfX0JMX1BXTV9HUlAxX1JFQURCQUNLX0RCX1JFR19WQUxVRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBCTF9QV01fR1JQMV9SRUdfTE9DS19fQkxfUFdNX0dSUDFfSUdOT1JFX01BU1RFUl9MT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIEJMX1BXTV9HUlAxX1JFR19MT0NLX19CTF9QV01fR1JQMV9SRUdfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEJMX1BXTV9HUlAxX1JFR19MT0NLX19CTF9QV01fR1JQMV9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEJMX1BXTV9HUlAxX1JFR19MT0NLX19CTF9QV01fR1JQMV9VUERBVEVfQVRfRlJBTUVfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEJMX1BXTV9HUlAxX1JFR19MT0NLX19CTF9QV01fR1JQMV9GUkFNRV9TVEFSVF9ESVNQX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDBMCisjZGVmaW5lIEJMX1BXTV9HUlAxX1JFR19MT0NLX19CTF9QV01fR1JQMV9SRUFEQkFDS19EQl9SRUdfVkFMVUVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEJMX1BXTV9HUlAxX1JFR19MT0NLX19CTF9QV01fR1JQMV9JR05PUkVfTUFTVEVSX0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDSU9fR1NMX0dFTkxLX1BBRF9DTlRMCisjZGVmaW5lIERDSU9fR1NMX0dFTkxLX1BBRF9DTlRMX19EQ0lPX0dFTkxLX0NMS19HU0xfRkxJUF9SRUFEWV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0lPX0dTTF9HRU5MS19QQURfQ05UTF9fRENJT19HRU5MS19DTEtfR1NMX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENJT19HU0xfR0VOTEtfUEFEX0NOVExfX0RDSU9fR0VOTEtfVlNZTkNfR1NMX0ZMSVBfUkVBRFlfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ0lPX0dTTF9HRU5MS19QQURfQ05UTF9fRENJT19HRU5MS19WU1lOQ19HU0xfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDSU9fR1NMX0dFTkxLX1BBRF9DTlRMX19EQ0lPX0dFTkxLX0NMS19HU0xfRkxJUF9SRUFEWV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDSU9fR1NMX0dFTkxLX1BBRF9DTlRMX19EQ0lPX0dFTkxLX0NMS19HU0xfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDSU9fR1NMX0dFTkxLX1BBRF9DTlRMX19EQ0lPX0dFTkxLX1ZTWU5DX0dTTF9GTElQX1JFQURZX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDSU9fR1NMX0dFTkxLX1BBRF9DTlRMX19EQ0lPX0dFTkxLX1ZTWU5DX0dTTF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisvL0RDSU9fR1NMX1NXQVBMT0NLX1BBRF9DTlRMCisjZGVmaW5lIERDSU9fR1NMX1NXQVBMT0NLX1BBRF9DTlRMX19EQ0lPX1NXQVBMT0NLX0FfR1NMX0ZMSVBfUkVBRFlfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ0lPX0dTTF9TV0FQTE9DS19QQURfQ05UTF9fRENJT19TV0FQTE9DS19BX0dTTF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENJT19HU0xfU1dBUExPQ0tfUEFEX0NOVExfX0RDSU9fU1dBUExPQ0tfQl9HU0xfRkxJUF9SRUFEWV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ0lPX0dTTF9TV0FQTE9DS19QQURfQ05UTF9fRENJT19TV0FQTE9DS19CX0dTTF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDSU9fR1NMX1NXQVBMT0NLX1BBRF9DTlRMX19EQ0lPX1NXQVBMT0NLX0FfR1NMX0ZMSVBfUkVBRFlfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDSU9fR1NMX1NXQVBMT0NLX1BBRF9DTlRMX19EQ0lPX1NXQVBMT0NLX0FfR1NMX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDSU9fR1NMX1NXQVBMT0NLX1BBRF9DTlRMX19EQ0lPX1NXQVBMT0NLX0JfR1NMX0ZMSVBfUkVBRFlfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDSU9fR1NMX1NXQVBMT0NLX1BBRF9DTlRMX19EQ0lPX1NXQVBMT0NLX0JfR1NMX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisvL0RDSU9fQ0xPQ0tfQ05UTAorI2RlZmluZSBEQ0lPX0NMT0NLX0NOVExfX0RDSU9fVEVTVF9DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENJT19DTE9DS19DTlRMX19ESVNQQ0xLX1JfRENJT19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDSU9fQ0xPQ0tfQ05UTF9fRENJT19URVNUX0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERDSU9fQ0xPQ0tfQ05UTF9fRElTUENMS19SX0RDSU9fR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisvL0RDSU9fU09GVF9SRVNFVAorI2RlZmluZSBEQ0lPX1NPRlRfUkVTRVRfX1VOSVBIWUFfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0FfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDSU9fU09GVF9SRVNFVF9fVU5JUEhZQl9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0lPX1NPRlRfUkVTRVRfX0RTWU5DQl9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19VTklQSFlDX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDSU9fU09GVF9SRVNFVF9fRFNZTkNDX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ0lPX1NPRlRfUkVTRVRfX1VOSVBIWURfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0RfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDSU9fU09GVF9SRVNFVF9fVU5JUEhZRV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ0lPX1NPRlRfUkVTRVRfX0RTWU5DRV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19VTklQSFlGX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDSU9fU09GVF9SRVNFVF9fRFNZTkNGX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ0lPX1NPRlRfUkVTRVRfX1VOSVBIWUdfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0dfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDSU9fU09GVF9SRVNFVF9fREFDQV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EQ1JYUEhZX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ0lPX1NPRlRfUkVTRVRfX0RQSFlfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDSU9fU09GVF9SRVNFVF9fWkNBTF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19VTklQSFlBX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0FfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19VTklQSFlCX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0JfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19VTklQSFlDX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0NfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19VTklQSFlEX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0RfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19VTklQSFlFX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0VfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19VTklQSFlGX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0ZfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19VTklQSFlHX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EU1lOQ0dfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EQUNBX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EQ1JYUEhZX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19EUEhZX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENJT19TT0ZUX1JFU0VUX19aQ0FMX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kY2lvX2RjaW9fY2hpcF9kaXNwZGVjCisvL0RDX0dQSU9fR0VORVJJQ19NQVNLCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNBX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfTUFTS19fRENfR1BJT19HRU5FUklDQV9QRF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX01BU0tfX0RDX0dQSU9fR0VORVJJQ0FfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNCX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfTUFTS19fRENfR1BJT19HRU5FUklDQl9QRF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX01BU0tfX0RDX0dQSU9fR0VORVJJQ0JfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNDX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfTUFTS19fRENfR1BJT19HRU5FUklDQ19QRF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX01BU0tfX0RDX0dQSU9fR0VORVJJQ0NfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNEX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfTUFTS19fRENfR1BJT19HRU5FUklDRF9QRF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX01BU0tfX0RDX0dQSU9fR0VORVJJQ0RfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX01BU0tfX0RDX0dQSU9fR0VORVJJQ0VfUERfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfTUFTS19fRENfR1BJT19HRU5FUklDRV9SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNGX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX01BU0tfX0RDX0dQSU9fR0VORVJJQ0ZfUERfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfTUFTS19fRENfR1BJT19HRU5FUklDRl9SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNHX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX01BU0tfX0RDX0dQSU9fR0VORVJJQ0dfUERfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfTUFTS19fRENfR1BJT19HRU5FUklDR19SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNBX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNBX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNBX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNCX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNCX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNCX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNDX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNDX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNDX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNEX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNEX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNFX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNFX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNGX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNGX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNGX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNHX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNHX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19NQVNLX19EQ19HUElPX0dFTkVSSUNHX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisvL0RDX0dQSU9fR0VORVJJQ19BCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNBX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfQV9fRENfR1BJT19HRU5FUklDQl9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX0FfX0RDX0dQSU9fR0VORVJJQ0NfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfQV9fRENfR1BJT19HRU5FUklDRF9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNFX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX0FfX0RDX0dQSU9fR0VORVJJQ0ZfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfQV9fRENfR1BJT19HRU5FUklDR19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNBX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNCX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNDX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNEX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNFX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNGX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19BX19EQ19HUElPX0dFTkVSSUNHX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL0RDX0dQSU9fR0VORVJJQ19FTgorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfRU5fX0RDX0dQSU9fR0VORVJJQ0FfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX0VOX19EQ19HUElPX0dFTkVSSUNCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19FTl9fRENfR1BJT19HRU5FUklDQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX0VOX19EQ19HUElPX0dFTkVSSUNEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfRU5fX0RDX0dQSU9fR0VORVJJQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19FTl9fRENfR1BJT19HRU5FUklDRl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX0VOX19EQ19HUElPX0dFTkVSSUNHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfRU5fX0RDX0dQSU9fR0VORVJJQ0FfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfRU5fX0RDX0dQSU9fR0VORVJJQ0JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfRU5fX0RDX0dQSU9fR0VORVJJQ0NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfRU5fX0RDX0dQSU9fR0VORVJJQ0RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfRU5fX0RDX0dQSU9fR0VORVJJQ0VfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfRU5fX0RDX0dQSU9fR0VORVJJQ0ZfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfRU5fX0RDX0dQSU9fR0VORVJJQ0dfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9EQ19HUElPX0dFTkVSSUNfWQorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfWV9fRENfR1BJT19HRU5FUklDQV9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX1lfX0RDX0dQSU9fR0VORVJJQ0JfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19ZX19EQ19HUElPX0dFTkVSSUNDX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX1lfX0RDX0dQSU9fR0VORVJJQ0RfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfWV9fRENfR1BJT19HRU5FUklDRV9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDX0dQSU9fR0VORVJJQ19ZX19EQ19HUElPX0dFTkVSSUNGX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfR1BJT19HRU5FUklDX1lfX0RDX0dQSU9fR0VORVJJQ0dfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfWV9fRENfR1BJT19HRU5FUklDQV9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfWV9fRENfR1BJT19HRU5FUklDQl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfWV9fRENfR1BJT19HRU5FUklDQ19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfWV9fRENfR1BJT19HRU5FUklDRF9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfWV9fRENfR1BJT19HRU5FUklDRV9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfWV9fRENfR1BJT19HRU5FUklDRl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkVSSUNfWV9fRENfR1BJT19HRU5FUklDR19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9EQ19HUElPX0REQzFfTUFTSworI2RlZmluZSBEQ19HUElPX0REQzFfTUFTS19fRENfR1BJT19EREMxQ0xLX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMUNMS19QRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0dQSU9fRERDMV9NQVNLX19EQ19HUElPX0REQzFDTEtfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19HUElPX0REQzFfTUFTS19fRENfR1BJT19EREMxREFUQV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMURBVEFfUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0dQSU9fRERDMV9NQVNLX19EQ19HUElPX0REQzFEQVRBX1JFQ1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19HUElPX0REQzFfTUFTS19fQVVYX1BBRDFfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0dQSU9fRERDMV9NQVNLX19BVVgxX1BPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0FMTE9XX0hXX0REQzFfUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19HUElPX0REQzFfTUFTS19fRENfR1BJT19EREMxQ0xLX1NUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQSU9fRERDMV9NQVNLX19EQ19HUElPX0REQzFEQVRBX1NUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMUNMS19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMUNMS19QRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMUNMS19SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMURBVEFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMURBVEFfUERfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMURBVEFfUkVDVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0FVWF9QQUQxX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0FVWDFfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0FMTE9XX0hXX0REQzFfUERfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMUNMS19TVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREMxX01BU0tfX0RDX0dQSU9fRERDMURBVEFfU1RSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRENfR1BJT19EREMxX0EKKyNkZWZpbmUgRENfR1BJT19EREMxX0FfX0RDX0dQSU9fRERDMUNMS19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fRERDMV9BX19EQ19HUElPX0REQzFEQVRBX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0REQzFfQV9fRENfR1BJT19EREMxQ0xLX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0REQzFfQV9fRENfR1BJT19EREMxREFUQV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EQ19HUElPX0REQzFfRU4KKyNkZWZpbmUgRENfR1BJT19EREMxX0VOX19EQ19HUElPX0REQzFDTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fRERDMV9FTl9fRENfR1BJT19EREMxREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0REQzFfRU5fX0RDX0dQSU9fRERDMUNMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0REQzFfRU5fX0RDX0dQSU9fRERDMURBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EQ19HUElPX0REQzFfWQorI2RlZmluZSBEQ19HUElPX0REQzFfWV9fRENfR1BJT19EREMxQ0xLX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19EREMxX1lfX0RDX0dQSU9fRERDMURBVEFfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fRERDMV9ZX19EQ19HUElPX0REQzFDTEtfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fRERDMV9ZX19EQ19HUElPX0REQzFEQVRBX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RDX0dQSU9fRERDMl9NQVNLCisjZGVmaW5lIERDX0dQSU9fRERDMl9NQVNLX19EQ19HUElPX0REQzJDTEtfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyQ0xLX1BEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfR1BJT19EREMyX01BU0tfX0RDX0dQSU9fRERDMkNMS19SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX0dQSU9fRERDMl9NQVNLX19EQ19HUElPX0REQzJEQVRBX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyREFUQV9QRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19EREMyX01BU0tfX0RDX0dQSU9fRERDMkRBVEFfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX0dQSU9fRERDMl9NQVNLX19BVVhfUEFEMl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19EREMyX01BU0tfX0FVWDJfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fQUxMT1dfSFdfRERDMl9QRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX0dQSU9fRERDMl9NQVNLX19EQ19HUElPX0REQzJDTEtfU1RSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR1BJT19EREMyX01BU0tfX0RDX0dQSU9fRERDMkRBVEFfU1RSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyQ0xLX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyQ0xLX1BEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyQ0xLX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyREFUQV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyREFUQV9QRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyREFUQV9SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fQVVYX1BBRDJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fQVVYMl9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fQUxMT1dfSFdfRERDMl9QRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyQ0xLX1NUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzJfTUFTS19fRENfR1BJT19EREMyREFUQV9TVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQ19HUElPX0REQzJfQQorI2RlZmluZSBEQ19HUElPX0REQzJfQV9fRENfR1BJT19EREMyQ0xLX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19EREMyX0FfX0RDX0dQSU9fRERDMkRBVEFfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fRERDMl9BX19EQ19HUElPX0REQzJDTEtfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fRERDMl9BX19EQ19HUElPX0REQzJEQVRBX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RDX0dQSU9fRERDMl9FTgorI2RlZmluZSBEQ19HUElPX0REQzJfRU5fX0RDX0dQSU9fRERDMkNMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19EREMyX0VOX19EQ19HUElPX0REQzJEQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fRERDMl9FTl9fRENfR1BJT19EREMyQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fRERDMl9FTl9fRENfR1BJT19EREMyREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RDX0dQSU9fRERDMl9ZCisjZGVmaW5lIERDX0dQSU9fRERDMl9ZX19EQ19HUElPX0REQzJDTEtfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0REQzJfWV9fRENfR1BJT19EREMyREFUQV9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19EREMyX1lfX0RDX0dQSU9fRERDMkNMS19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19EREMyX1lfX0RDX0dQSU9fRERDMkRBVEFfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRENfR1BJT19EREMzX01BU0sKKyNkZWZpbmUgRENfR1BJT19EREMzX01BU0tfX0RDX0dQSU9fRERDM0NMS19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNDTEtfUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19HUElPX0REQzNfTUFTS19fRENfR1BJT19EREMzQ0xLX1JFQ1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfR1BJT19EREMzX01BU0tfX0RDX0dQSU9fRERDM0RBVEFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNEQVRBX1BEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19HUElPX0REQzNfTUFTS19fRENfR1BJT19EREMzREFUQV9SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfR1BJT19EREMzX01BU0tfX0FVWF9QQUQzX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX0REQzNfTUFTS19fQVVYM19QT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19BTExPV19IV19EREMzX1BEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfR1BJT19EREMzX01BU0tfX0RDX0dQSU9fRERDM0NMS19TVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19HUElPX0REQzNfTUFTS19fRENfR1BJT19EREMzREFUQV9TVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNDTEtfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNDTEtfUERfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNDTEtfUkVDVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNEQVRBX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNEQVRBX1BEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNEQVRBX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19BVVhfUEFEM19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19BVVgzX1BPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19BTExPV19IV19EREMzX1BEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNDTEtfU1RSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fRERDM19NQVNLX19EQ19HUElPX0REQzNEQVRBX1NUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RDX0dQSU9fRERDM19BCisjZGVmaW5lIERDX0dQSU9fRERDM19BX19EQ19HUElPX0REQzNDTEtfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0REQzNfQV9fRENfR1BJT19EREMzREFUQV9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19EREMzX0FfX0RDX0dQSU9fRERDM0NMS19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19EREMzX0FfX0RDX0dQSU9fRERDM0RBVEFfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRENfR1BJT19EREMzX0VOCisjZGVmaW5lIERDX0dQSU9fRERDM19FTl9fRENfR1BJT19EREMzQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0REQzNfRU5fX0RDX0dQSU9fRERDM0RBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19EREMzX0VOX19EQ19HUElPX0REQzNDTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19EREMzX0VOX19EQ19HUElPX0REQzNEQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRENfR1BJT19EREMzX1kKKyNkZWZpbmUgRENfR1BJT19EREMzX1lfX0RDX0dQSU9fRERDM0NMS19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fRERDM19ZX19EQ19HUElPX0REQzNEQVRBX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0REQzNfWV9fRENfR1BJT19EREMzQ0xLX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0REQzNfWV9fRENfR1BJT19EREMzREFUQV9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EQ19HUElPX0REQzRfTUFTSworI2RlZmluZSBEQ19HUElPX0REQzRfTUFTS19fRENfR1BJT19EREM0Q0xLX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNENMS19QRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0dQSU9fRERDNF9NQVNLX19EQ19HUElPX0REQzRDTEtfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19HUElPX0REQzRfTUFTS19fRENfR1BJT19EREM0REFUQV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNERBVEFfUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0dQSU9fRERDNF9NQVNLX19EQ19HUElPX0REQzREQVRBX1JFQ1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19HUElPX0REQzRfTUFTS19fQVVYX1BBRDRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0dQSU9fRERDNF9NQVNLX19BVVg0X1BPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0FMTE9XX0hXX0REQzRfUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19HUElPX0REQzRfTUFTS19fRENfR1BJT19EREM0Q0xLX1NUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQSU9fRERDNF9NQVNLX19EQ19HUElPX0REQzREQVRBX1NUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNENMS19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNENMS19QRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNENMS19SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNERBVEFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNERBVEFfUERfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNERBVEFfUkVDVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0FVWF9QQUQ0X01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0FVWDRfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0FMTE9XX0hXX0REQzRfUERfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNENMS19TVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19EREM0X01BU0tfX0RDX0dQSU9fRERDNERBVEFfU1RSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRENfR1BJT19EREM0X0EKKyNkZWZpbmUgRENfR1BJT19EREM0X0FfX0RDX0dQSU9fRERDNENMS19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fRERDNF9BX19EQ19HUElPX0REQzREQVRBX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0REQzRfQV9fRENfR1BJT19EREM0Q0xLX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0REQzRfQV9fRENfR1BJT19EREM0REFUQV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EQ19HUElPX0REQzRfRU4KKyNkZWZpbmUgRENfR1BJT19EREM0X0VOX19EQ19HUElPX0REQzRDTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fRERDNF9FTl9fRENfR1BJT19EREM0REFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0REQzRfRU5fX0RDX0dQSU9fRERDNENMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0REQzRfRU5fX0RDX0dQSU9fRERDNERBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EQ19HUElPX0REQzRfWQorI2RlZmluZSBEQ19HUElPX0REQzRfWV9fRENfR1BJT19EREM0Q0xLX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19EREM0X1lfX0RDX0dQSU9fRERDNERBVEFfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fRERDNF9ZX19EQ19HUElPX0REQzRDTEtfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fRERDNF9ZX19EQ19HUElPX0REQzREQVRBX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RDX0dQSU9fRERDNV9NQVNLCisjZGVmaW5lIERDX0dQSU9fRERDNV9NQVNLX19EQ19HUElPX0REQzVDTEtfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1Q0xLX1BEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfR1BJT19EREM1X01BU0tfX0RDX0dQSU9fRERDNUNMS19SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX0dQSU9fRERDNV9NQVNLX19EQ19HUElPX0REQzVEQVRBX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1REFUQV9QRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19EREM1X01BU0tfX0RDX0dQSU9fRERDNURBVEFfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX0dQSU9fRERDNV9NQVNLX19BVVhfUEFENV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19EREM1X01BU0tfX0FVWDVfUE9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fQUxMT1dfSFdfRERDNV9QRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX0dQSU9fRERDNV9NQVNLX19EQ19HUElPX0REQzVDTEtfU1RSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR1BJT19EREM1X01BU0tfX0RDX0dQSU9fRERDNURBVEFfU1RSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1Q0xLX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1Q0xLX1BEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1Q0xLX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1REFUQV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1REFUQV9QRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1REFUQV9SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fQVVYX1BBRDVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fQVVYNV9QT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fQUxMT1dfSFdfRERDNV9QRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1Q0xLX1NUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQzVfTUFTS19fRENfR1BJT19EREM1REFUQV9TVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQ19HUElPX0REQzVfQQorI2RlZmluZSBEQ19HUElPX0REQzVfQV9fRENfR1BJT19EREM1Q0xLX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19EREM1X0FfX0RDX0dQSU9fRERDNURBVEFfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fRERDNV9BX19EQ19HUElPX0REQzVDTEtfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fRERDNV9BX19EQ19HUElPX0REQzVEQVRBX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RDX0dQSU9fRERDNV9FTgorI2RlZmluZSBEQ19HUElPX0REQzVfRU5fX0RDX0dQSU9fRERDNUNMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19EREM1X0VOX19EQ19HUElPX0REQzVEQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fRERDNV9FTl9fRENfR1BJT19EREM1Q0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fRERDNV9FTl9fRENfR1BJT19EREM1REFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RDX0dQSU9fRERDNV9ZCisjZGVmaW5lIERDX0dQSU9fRERDNV9ZX19EQ19HUElPX0REQzVDTEtfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0REQzVfWV9fRENfR1BJT19EREM1REFUQV9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19EREM1X1lfX0RDX0dQSU9fRERDNUNMS19ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19EREM1X1lfX0RDX0dQSU9fRERDNURBVEFfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRENfR1BJT19ERENWR0FfTUFTSworI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19EQ19HUElPX0REQ1ZHQUNMS19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19ERENWR0FfTUFTS19fRENfR1BJT19ERENWR0FDTEtfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX0dQSU9fRERDVkdBX01BU0tfX0RDX0dQSU9fRERDVkdBREFUQV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19EQ19HUElPX0REQ1ZHQURBVEFfUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19ERENWR0FfTUFTS19fRENfR1BJT19ERENWR0FEQVRBX1JFQ1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX0dQSU9fRERDVkdBX01BU0tfX0FVWF9QQURWR0FfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19ERENWR0FfTUFTS19fQVVYVkdBX1BPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19BTExPV19IV19ERENWR0FfUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX0dQSU9fRERDVkdBX01BU0tfX0RDX0dQSU9fRERDVkdBQ0xLX1NUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR1BJT19ERENWR0FfTUFTS19fRENfR1BJT19ERENWR0FEQVRBX1NUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19EQ19HUElPX0REQ1ZHQUNMS19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19EQ19HUElPX0REQ1ZHQUNMS19SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19EQ19HUElPX0REQ1ZHQURBVEFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19EQ19HUElPX0REQ1ZHQURBVEFfUERfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19EQ19HUElPX0REQ1ZHQURBVEFfUkVDVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19BVVhfUEFEVkdBX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19BVVhWR0FfUE9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19BTExPV19IV19ERENWR0FfUERfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19EQ19HUElPX0REQ1ZHQUNMS19TVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9NQVNLX19EQ19HUElPX0REQ1ZHQURBVEFfU1RSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQ19HUElPX0REQ1ZHQV9BCisjZGVmaW5lIERDX0dQSU9fRERDVkdBX0FfX0RDX0dQSU9fRERDVkdBQ0xLX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9BX19EQ19HUElPX0REQ1ZHQURBVEFfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19ERENWR0FfQV9fRENfR1BJT19ERENWR0FDTEtfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19ERENWR0FfQV9fRENfR1BJT19ERENWR0FEQVRBX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRENfR1BJT19ERENWR0FfRU4KKyNkZWZpbmUgRENfR1BJT19ERENWR0FfRU5fX0RDX0dQSU9fRERDVkdBQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fRERDVkdBX0VOX19EQ19HUElPX0REQ1ZHQURBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9FTl9fRENfR1BJT19ERENWR0FDTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9FTl9fRENfR1BJT19ERENWR0FEQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EQ19HUElPX0REQ1ZHQV9ZCisjZGVmaW5lIERDX0dQSU9fRERDVkdBX1lfX0RDX0dQSU9fRERDVkdBQ0xLX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0REQ1ZHQV9ZX19EQ19HUElPX0REQ1ZHQURBVEFfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19ERENWR0FfWV9fRENfR1BJT19ERENWR0FDTEtfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19ERENWR0FfWV9fRENfR1BJT19ERENWR0FEQVRBX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRENfR1BJT19HRU5MS19NQVNLCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19DTEtfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0dFTkxLX01BU0tfX0RDX0dQSU9fR0VOTEtfQ0xLX1BEX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfR1BJT19HRU5MS19NQVNLX19EQ19HUElPX0dFTkxLX0NMS19QVV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19DTEtfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19HUElPX0dFTkxLX01BU0tfX0RDX0dQSU9fR0VOTEtfVlNZTkNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19HRU5MS19NQVNLX19EQ19HUElPX0dFTkxLX1ZTWU5DX1BEX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19WU1lOQ19QVV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19HUElPX0dFTkxLX01BU0tfX0RDX0dQSU9fR0VOTEtfVlNZTkNfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19HRU5MS19NQVNLX19EQ19HUElPX1NXQVBMT0NLX0FfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX0dFTkxLX01BU0tfX0RDX0dQSU9fU1dBUExPQ0tfQV9QRF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19BX1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRENfR1BJT19HRU5MS19NQVNLX19EQ19HUElPX1NXQVBMT0NLX0FfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX0dFTkxLX01BU0tfX0RDX0dQSU9fU1dBUExPQ0tfQl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19CX1BEX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfR1BJT19HRU5MS19NQVNLX19EQ19HUElPX1NXQVBMT0NLX0JfUFVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQ19HUElPX0dFTkxLX01BU0tfX0RDX0dQSU9fU1dBUExPQ0tfQl9SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19DTEtfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19DTEtfUERfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19DTEtfUFVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19DTEtfUkVDVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19WU1lOQ19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19WU1lOQ19QRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19WU1lOQ19QVV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19HRU5MS19WU1lOQ19SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19BX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19BX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19BX1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19BX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19CX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19CX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19CX1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfTUFTS19fRENfR1BJT19TV0FQTE9DS19CX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL0RDX0dQSU9fR0VOTEtfQQorI2RlZmluZSBEQ19HUElPX0dFTkxLX0FfX0RDX0dQSU9fR0VOTEtfQ0xLX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19HRU5MS19BX19EQ19HUElPX0dFTkxLX1ZTWU5DX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fR0VOTEtfQV9fRENfR1BJT19TV0FQTE9DS19BX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19HRU5MS19BX19EQ19HUElPX1NXQVBMT0NLX0JfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19HUElPX0dFTkxLX0FfX0RDX0dQSU9fR0VOTEtfQ0xLX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0dFTkxLX0FfX0RDX0dQSU9fR0VOTEtfVlNZTkNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19HUElPX0dFTkxLX0FfX0RDX0dQSU9fU1dBUExPQ0tfQV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkxLX0FfX0RDX0dQSU9fU1dBUExPQ0tfQl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EQ19HUElPX0dFTkxLX0VOCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfRU5fX0RDX0dQSU9fR0VOTEtfQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0dFTkxLX0VOX19EQ19HUElPX0dFTkxLX1ZTWU5DX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19HRU5MS19FTl9fRENfR1BJT19TV0FQTE9DS19BX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX0dFTkxLX0VOX19EQ19HUElPX1NXQVBMT0NLX0JfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQSU9fR0VOTEtfRU5fX0RDX0dQSU9fR0VOTEtfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfRU5fX0RDX0dQSU9fR0VOTEtfVlNZTkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfRU5fX0RDX0dQSU9fU1dBUExPQ0tfQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fR0VOTEtfRU5fX0RDX0dQSU9fU1dBUExPQ0tfQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RDX0dQSU9fR0VOTEtfWQorI2RlZmluZSBEQ19HUElPX0dFTkxLX1lfX0RDX0dQSU9fR0VOTEtfQ0xLX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19HRU5MS19ZX19EQ19HUElPX0dFTkxLX1ZTWU5DX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fR0VOTEtfWV9fRENfR1BJT19TV0FQTE9DS19BX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19HRU5MS19ZX19EQ19HUElPX1NXQVBMT0NLX0JfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19HUElPX0dFTkxLX1lfX0RDX0dQSU9fR0VOTEtfQ0xLX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0dFTkxLX1lfX0RDX0dQSU9fR0VOTEtfVlNZTkNfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19HUElPX0dFTkxLX1lfX0RDX0dQSU9fU1dBUExPQ0tfQV9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19HUElPX0dFTkxLX1lfX0RDX0dQSU9fU1dBUExPQ0tfQl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EQ19HUElPX0hQRF9NQVNLCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0hQRF9NQVNLX19EQ19HUElPX1JYX0hQRF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfR1BJT19IUERfTUFTS19fRENfR1BJT19SWF9IUERfUERfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fUlhfSFBEX1JYX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19HUElPX0hQRF9NQVNLX19EQ19HUElPX0hQRDFfUERfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfR1BJT19IUERfTUFTS19fRENfR1BJT19IUEQxX1JFQ1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0hQRF9NQVNLX19EQ19HUElPX0hQRDJfUERfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfR1BJT19IUERfTUFTS19fRENfR1BJT19IUEQyX1JFQ1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19IUERfTUFTS19fRENfR1BJT19IUEQzX1BEX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQ19HUElPX0hQRF9NQVNLX19EQ19HUElPX0hQRDNfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfR1BJT19IUERfTUFTS19fRENfR1BJT19IUEQ0X1BEX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQ19HUElPX0hQRF9NQVNLX19EQ19HUElPX0hQRDRfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR1BJT19IUERfTUFTS19fRENfR1BJT19IUEQ1X1BEX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19HUElPX0hQRF9NQVNLX19EQ19HUElPX0hQRDVfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfR1BJT19IUERfTUFTS19fRENfR1BJT19IUEQ2X1BEX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19HUElPX0hQRF9NQVNLX19EQ19HUElPX0hQRDZfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fUlhfSFBEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fUlhfSFBEX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fUlhfSFBEX1JYX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEMV9QRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEMV9SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEMl9QRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEMl9SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEM19QRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBEM19SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENF9QRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENF9SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENV9QRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENV9SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENl9QRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX01BU0tfX0RDX0dQSU9fSFBENl9SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL0RDX0dQSU9fSFBEX0EKKyNkZWZpbmUgRENfR1BJT19IUERfQV9fRENfR1BJT19IUEQxX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBEMl9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0hQRF9BX19EQ19HUElPX0hQRDNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBENF9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR1BJT19IUERfQV9fRENfR1BJT19IUEQ1X0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19HUElPX0hQRF9BX19EQ19HUElPX0hQRDZfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBEMV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBEMl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBEM19BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBENF9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBENV9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fSFBEX0FfX0RDX0dQSU9fSFBENl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL0RDX0dQSU9fSFBEX0VOCisjZGVmaW5lIERDX0dQSU9fSFBEX0VOX19EQ19HUElPX0hQRDFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0hQRF9FTl9fSFBEMV9TQ0hNRU5fUElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDFfU0xFV05DT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0dQSU9fSFBEX0VOX19SWF9IUERfU0NITUVOX1BJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19HUElPX0hQRF9FTl9fUlhfSFBEX1NMRVdOQ09SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDEyX1NQQVJFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX0dQSU9fSFBEX0VOX19IUEQxX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19HUElPX0hQRF9FTl9fUlhfSFBEX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBEMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fSFBEX0VOX19IUEQyX1NDSE1FTl9QSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19HUElPX0hQRF9FTl9fSFBEMTJfU1BBUkUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBEM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX0hQRF9FTl9fSFBEM19TQ0hNRU5fUElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX0dQSU9fSFBEX0VOX19IUEQzNF9TUEFSRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBENF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX0hQRF9FTl9fSFBENF9TQ0hNRU5fUElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDX0dQSU9fSFBEX0VOX19IUEQzNF9TUEFSRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBENV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19HUElPX0hQRF9FTl9fSFBENV9TQ0hNRU5fUElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX0dQSU9fSFBEX0VOX19IUEQ1Nl9TUEFSRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBENl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19HUElPX0hQRF9FTl9fSFBENl9TQ0hNRU5fUElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX0dQSU9fSFBEX0VOX19IUEQ1Nl9TUEFSRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBEMV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDFfU0NITUVOX1BJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDFfU0xFV05DT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX1JYX0hQRF9TQ0hNRU5fUElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX1JYX0hQRF9TTEVXTkNPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDEyX1NQQVJFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDFfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX1JYX0hQRF9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBEMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDJfU0NITUVOX1BJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDEyX1NQQVJFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBEM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDNfU0NITUVOX1BJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDM0X1NQQVJFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBENF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDRfU0NITUVOX1BJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDM0X1NQQVJFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBENV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDVfU0NITUVOX1BJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDU2X1NQQVJFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0RDX0dQSU9fSFBENl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDZfU0NITUVOX1BJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfRU5fX0hQRDU2X1NQQVJFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfR1BJT19IUERfWQorI2RlZmluZSBEQ19HUElPX0hQRF9ZX19EQ19HUElPX0hQRDFfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19IUERfWV9fRENfR1BJT19IUEQyX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fSFBEX1lfX0RDX0dQSU9fSFBEM19ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19IUERfWV9fRENfR1BJT19IUEQ0X1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19HUElPX0hQRF9ZX19EQ19HUElPX0hQRDVfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX0dQSU9fSFBEX1lfX0RDX0dQSU9fSFBENl9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfR1BJT19IUERfWV9fRENfR1BJT19IUEQxX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19IUERfWV9fRENfR1BJT19IUEQyX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfWV9fRENfR1BJT19IUEQzX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfWV9fRENfR1BJT19IUEQ0X1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfWV9fRENfR1BJT19IUEQ1X1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19IUERfWV9fRENfR1BJT19IUEQ2X1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vRENfR1BJT19QV1JTRVFfTUFTSworI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0JMT05fTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfTUFTS19fRENfR1BJT19CTE9OX1BEX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX01BU0tfX0RDX0dQSU9fQkxPTl9SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0RJR09OX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfTUFTS19fRENfR1BJT19ESUdPTl9QRF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX01BU0tfX0RDX0dQSU9fRElHT05fUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0VOQV9CTF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX01BU0tfX0RDX0dQSU9fRU5BX0JMX1BEX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfTUFTS19fRENfR1BJT19FTkFfQkxfUkVDVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX1ZTWU5DX0lOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX01BU0tfX0RDX0dQSU9fVlNZTkNfSU5fUERfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfTUFTS19fRENfR1BJT19WU1lOQ19JTl9SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0hTWU5DX0lOX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX01BU0tfX0RDX0dQSU9fSFNZTkNfSU5fUERfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfTUFTS19fRENfR1BJT19IU1lOQ19JTl9SRUNWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0JMT05fTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0JMT05fUERfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0JMT05fUkVDVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0RJR09OX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0RJR09OX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0RJR09OX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0VOQV9CTF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0VOQV9CTF9QRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0VOQV9CTF9SRUNWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX1ZTWU5DX0lOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX1ZTWU5DX0lOX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX1ZTWU5DX0lOX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0hTWU5DX0lOX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0hTWU5DX0lOX1BEX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9NQVNLX19EQ19HUElPX0hTWU5DX0lOX1JFQ1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EQ19HUElPX1BXUlNFUV9BCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX0FfX0RDX0dQSU9fQkxPTl9BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9BX19EQ19HUElPX0RJR09OX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfQV9fRENfR1BJT19FTkFfQkxfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9BX19EQ19HUElPX1ZTWU5DX0lOX0FfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX0FfX0RDX0dQSU9fSFNZTkNfSU5fQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfQV9fRENfR1BJT19CTE9OX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfQV9fRENfR1BJT19ESUdPTl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfQV9fRENfR1BJT19FTkFfQkxfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfQV9fRENfR1BJT19WU1lOQ19JTl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfQV9fRENfR1BJT19IU1lOQ19JTl9BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfR1BJT19QV1JTRVFfRU4KKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfRU5fX0RDX0dQSU9fQkxPTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX0VOX19EQ19HUElPX1ZBUllfQkxfR0VORVJJQ0FfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9FTl9fRENfR1BJT19ESUdPTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfRU5fX0RDX0dQSU9fRU5BX0JMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9FTl9fRENfR1BJT19WU1lOQ19JTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX0VOX19EQ19HUElPX0hTWU5DX0lOX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfRU5fX0RDX0dQSU9fQkxPTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfRU5fX0RDX0dQSU9fVkFSWV9CTF9HRU5FUklDQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfRU5fX0RDX0dQSU9fRElHT05fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfRU5fX0RDX0dQSU9fRU5BX0JMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfRU5fX0RDX0dQSU9fVlNZTkNfSU5fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfRU5fX0RDX0dQSU9fSFNZTkNfSU5fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfR1BJT19QV1JTRVFfWQorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9ZX19EQ19HUElPX0JMT05fWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfWV9fRENfR1BJT19ESUdPTl9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX1lfX0RDX0dQSU9fRU5BX0JMX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19QV1JTRVFfWV9fRENfR1BJT19WU1lOQ19JTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19HUElPX1BXUlNFUV9ZX19EQ19HUElPX0hTWU5DX0lOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX1lfX0RDX0dQSU9fQkxPTl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX1lfX0RDX0dQSU9fRElHT05fWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX1lfX0RDX0dQSU9fRU5BX0JMX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX1lfX0RDX0dQSU9fVlNZTkNfSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fUFdSU0VRX1lfX0RDX0dQSU9fSFNZTkNfSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX0dQSU9fUEFEX1NUUkVOR1RIXzEKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fR0VOTEtfU1RSRU5HVEhfU05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fUEFEX1NUUkVOR1RIXzFfX0dFTkxLX1NUUkVOR1RIX1NQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19HUElPX1BBRF9TVFJFTkdUSF8xX19SWF9IUERfU1RSRU5HVEhfU05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fUlhfSFBEX1NUUkVOR1RIX1NQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0dQSU9fUEFEX1NUUkVOR1RIXzFfX1RYX0hQRF9TVFJFTkdUSF9TTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fVFhfSFBEX1NUUkVOR1RIX1NQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX1BBRF9TVFJFTkdUSF8xX19TWU5DX1NUUkVOR1RIX1NOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQSU9fUEFEX1NUUkVOR1RIXzFfX1NZTkNfU1RSRU5HVEhfU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fR0VOTEtfU1RSRU5HVEhfU05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fR0VOTEtfU1RSRU5HVEhfU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fUlhfSFBEX1NUUkVOR1RIX1NOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fUlhfSFBEX1NUUkVOR1RIX1NQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fVFhfSFBEX1NUUkVOR1RIX1NOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fVFhfSFBEX1NUUkVOR1RIX1NQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fU1lOQ19TVFJFTkdUSF9TTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMV9fU1lOQ19TVFJFTkdUSF9TUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRENfR1BJT19QQURfU1RSRU5HVEhfMgorI2RlZmluZSBEQ19HUElPX1BBRF9TVFJFTkdUSF8yX19TVFJFTkdUSF9TTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMl9fU1RSRU5HVEhfU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0dQSU9fUEFEX1NUUkVOR1RIXzJfX0VYVF9SRVNFVF9EUlZTVFJFTkdUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX1BBRF9TVFJFTkdUSF8yX19SRUZfMjdfRFJWU1RSRU5HVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMl9fUFdSU0VRX1NUUkVOR1RIX1NOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX1BBRF9TVFJFTkdUSF8yX19QV1JTRVFfU1RSRU5HVEhfU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQSU9fUEFEX1NUUkVOR1RIXzJfX1JFRl8yN19TUkNfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMl9fU1RSRU5HVEhfU05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMl9fU1RSRU5HVEhfU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMl9fRVhUX1JFU0VUX0RSVlNUUkVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMl9fUkVGXzI3X0RSVlNUUkVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMl9fUFdSU0VRX1NUUkVOR1RIX1NOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMl9fUFdSU0VRX1NUUkVOR1RIX1NQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QQURfU1RSRU5HVEhfMl9fUkVGXzI3X1NSQ19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vUEhZX0FVWF9DTlRMCisjZGVmaW5lIFBIWV9BVVhfQ05UTF9fQVVYU0xBVkVfUEFEX1NMRVdOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWFNMQVZFX1BBRF9XQUtFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUEhZX0FVWF9DTlRMX19BVVhTTEFWRV9QQURfUlhTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBIWV9BVVhfQ05UTF9fQVVYU0xBVkVfUEFEX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBQSFlfQVVYX0NOVExfX0REQ1NMQVZFX0RBVEFfUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUEhZX0FVWF9DTlRMX19ERENTTEFWRV9EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFBIWV9BVVhfQ05UTF9fRERDU0xBVkVfQ0xLX1BEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBQSFlfQVVYX0NOVExfX0REQ1NMQVZFX0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUEhZX0FVWF9DTlRMX19BVVhTTEFWRV9DTEtfUERfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBIWV9BVVhfQ05UTF9fQVVYX1BBRF9XQUtFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWDFfUEFEX1JYU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUEhZX0FVWF9DTlRMX19BVVgyX1BBRF9SWFNFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBIWV9BVVhfQ05UTF9fQVVYM19QQURfUlhTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWDRfUEFEX1JYU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBIWV9BVVhfQ05UTF9fQVVYNV9QQURfUlhTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUEhZX0FVWF9DTlRMX19BVVg2X1BBRF9SWFNFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWF9DQUxfUkVTQklBU0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFBIWV9BVVhfQ05UTF9fQVVYX0NBTF9TUEFSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUEhZX0FVWF9DTlRMX19BVVhfQ0FMX0JJQVNFTlRTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWFNMQVZFX1BBRF9TTEVXTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWFNMQVZFX1BBRF9XQUtFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWFNMQVZFX1BBRF9SWFNFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWFNMQVZFX1BBRF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0REQ1NMQVZFX0RBVEFfUERfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0REQ1NMQVZFX0RBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0REQ1NMQVZFX0NMS19QRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0REQ1NMQVZFX0NMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWFNMQVZFX0NMS19QRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWF9QQURfV0FLRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWDFfUEFEX1JYU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWDJfUEFEX1JYU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWDNfUEFEX1JYU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWDRfUEFEX1JYU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWDVfUEFEX1JYU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWDZfUEFEX1JYU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWF9DQUxfUkVTQklBU0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWF9DQUxfU1BBUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBQSFlfQVVYX0NOVExfX0FVWF9DQUxfQklBU0VOVFNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9EQ19HUElPX1RYMTJfRU4KKyNkZWZpbmUgRENfR1BJT19UWDEyX0VOX19EQ19HUElPX0JMT05fVFgxMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19ESUdPTl9UWDEyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19HUElPX1RYMTJfRU5fX0RDX0dQSU9fRU5BX0JMX1RYMTJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfR1BJT19UWDEyX0VOX19EQ19HUElPX0dFTkVSSUNBX1RYMTJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19HRU5FUklDQl9UWDEyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19HUElPX1RYMTJfRU5fX0RDX0dQSU9fR0VORVJJQ0NfVFgxMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfR1BJT19UWDEyX0VOX19EQ19HUElPX0dFTkVSSUNEX1RYMTJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19HRU5FUklDRV9UWDEyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19HUElPX1RYMTJfRU5fX0RDX0dQSU9fR0VORVJJQ0ZfVFgxMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19UWDEyX0VOX19EQ19HUElPX0dFTkVSSUNHX1RYMTJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19CTE9OX1RYMTJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19ESUdPTl9UWDEyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19FTkFfQkxfVFgxMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19HRU5FUklDQV9UWDEyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19HRU5FUklDQl9UWDEyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19HRU5FUklDQ19UWDEyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19HRU5FUklDRF9UWDEyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19HRU5FUklDRV9UWDEyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19HRU5FUklDRl9UWDEyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fVFgxMl9FTl9fRENfR1BJT19HRU5FUklDR19UWDEyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisvL0RDX0dQSU9fQVVYX0NUUkxfMAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzBfX0RDX0dQSU9fQVVYMV9GQUxMU0xFV1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8wX19EQ19HUElPX0FVWDJfRkFMTFNMRVdTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgzX0ZBTExTTEVXU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzBfX0RDX0dQSU9fQVVYNF9GQUxMU0xFV1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8wX19EQ19HUElPX0FVWDVfRkFMTFNMRVdTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg2X0ZBTExTTEVXU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzBfX0RDX0dQSU9fRERDVkdBX0ZBTExTTEVXU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8wX19EQ19HUElPX0FVWDFfU1BJS0VSQ0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzBfX0RDX0dQSU9fQVVYMl9TUElLRVJDRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgzX1NQSUtFUkNFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8wX19EQ19HUElPX0FVWDRfU1BJS0VSQ0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzBfX0RDX0dQSU9fQVVYNV9TUElLRVJDRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg2X1NQSUtFUkNFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8wX19EQ19HUElPX0REQ1ZHQV9TUElLRVJDRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzBfX0RDX0dQSU9fQVVYMV9TUElLRVJDU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgyX1NQSUtFUkNTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8wX19EQ19HUElPX0FVWDNfU1BJS0VSQ1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzBfX0RDX0dQSU9fQVVYNF9TUElLRVJDU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg1X1NQSUtFUkNTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8wX19EQ19HUElPX0FVWDZfU1BJS0VSQ1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzBfX0RDX0dQSU9fRERDVkdBX1NQSUtFUkNTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgxX0ZBTExTTEVXU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgyX0ZBTExTTEVXU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgzX0ZBTExTTEVXU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg0X0ZBTExTTEVXU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg1X0ZBTExTTEVXU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg2X0ZBTExTTEVXU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19ERENWR0FfRkFMTFNMRVdTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgxX1NQSUtFUkNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgyX1NQSUtFUkNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgzX1NQSUtFUkNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg0X1NQSUtFUkNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg1X1NQSUtFUkNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg2X1NQSUtFUkNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19ERENWR0FfU1BJS0VSQ0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgxX1NQSUtFUkNTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgyX1NQSUtFUkNTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVgzX1NQSUtFUkNTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg0X1NQSUtFUkNTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg1X1NQSUtFUkNTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19BVVg2X1NQSUtFUkNTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMF9fRENfR1BJT19ERENWR0FfU1BJS0VSQ1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RDX0dQSU9fQVVYX0NUUkxfMQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYX0NTRUxfMFA5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8xX19EQ19HUElPX0FVWF9DU0VMXzFQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMV9fRENfR1BJT19BVVhfUlNFTF8wUDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYX1JTRUxfMVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8xX19EQ19HUElPX0kyQ19DU0VMXzBQOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMV9fRENfR1BJT19JMkNfQ1NFTF8xUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fSTJDX1JTRUxfMFA5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8xX19EQ19HUElPX0kyQ19SU0VMXzFQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMV9fRENfR1BJT19BVVhfQklBU0NSVEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fSTJDX0JJQVNDUlRFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8xX19EQ19HUElPX0FVWF9SRVNCSUFTRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMV9fRENfR1BJT19JMkNfUkVTQklBU0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYMV9DT01QU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8xX19EQ19HUElPX0REQ1ZHQV9TUEFSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMV9fRENfR1BJT19ERENWR0FfU0xFV05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8xX19EQ19HUElPX0REQ1ZHQV9SWFNFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYMl9DT01QU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMV9fRENfR1BJT19BVVgzX0NPTVBTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8xX19EQ19HUElPX0FVWDRfQ09NUFNFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYNV9DT01QU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMV9fRENfR1BJT19BVVg2X0NPTVBTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8xX19EQ19HUElPX0REQ1ZHQV9DT01QU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYX0NTRUxfMFA5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYX0NTRUxfMVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYX1JTRUxfMFA5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYX1JTRUxfMVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fSTJDX0NTRUxfMFA5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fSTJDX0NTRUxfMVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fSTJDX1JTRUxfMFA5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fSTJDX1JTRUxfMVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYX0JJQVNDUlRFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fSTJDX0JJQVNDUlRFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYX1JFU0JJQVNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fSTJDX1JFU0JJQVNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYMV9DT01QU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fRERDVkdBX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fRERDVkdBX1NMRVdOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fRERDVkdBX1JYU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYMl9DT01QU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYM19DT01QU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYNF9DT01QU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYNV9DT01QU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fQVVYNl9DT01QU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzFfX0RDX0dQSU9fRERDVkdBX0NPTVBTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EQ19HUElPX0FVWF9DVFJMXzIKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDEyX0ZBTExTTEVXU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMl9fRENfR1BJT19IUEQzNF9GQUxMU0xFV1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzJfX0RDX0dQSU9fSFBENTZfRkFMTFNMRVdTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDEyX1NQSUtFUkNFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMl9fRENfR1BJT19IUEQzNF9TUElLRVJDRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzJfX0RDX0dQSU9fSFBENTZfU1BJS0VSQ0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDEyX1NQSUtFUkNTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMl9fRENfR1BJT19IUEQzNF9TUElLRVJDU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzJfX0RDX0dQSU9fSFBENTZfU1BJS0VSQ1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRF9DU0VMXzBQOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzJfX0RDX0dQSU9fSFBEX0NTRUxfMVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMl9fRENfR1BJT19IUERfUlNFTF8wUDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRF9SU0VMXzFQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzJfX0RDX0dQSU9fSFBEX0JJQVNDUlRFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMl9fRENfR1BJT19IUEQxMl9TTEVXTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDM0X1NMRVdOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzJfX0RDX0dQSU9fSFBENTZfU0xFV05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMl9fRENfR1BJT19IUERfUkVTQklBU0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDEyX0NPTVBTRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzJfX0RDX0dQSU9fSFBEMzRfQ09NUFNFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfMl9fRENfR1BJT19IUEQ1Nl9DT01QU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDEyX0ZBTExTTEVXU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDM0X0ZBTExTTEVXU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDU2X0ZBTExTTEVXU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDEyX1NQSUtFUkNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDM0X1NQSUtFUkNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDU2X1NQSUtFUkNFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDEyX1NQSUtFUkNTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDM0X1NQSUtFUkNTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDU2X1NQSUtFUkNTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRF9DU0VMXzBQOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRF9DU0VMXzFQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRF9SU0VMXzBQOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRF9SU0VMXzFQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRF9CSUFTQ1JURU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDEyX1NMRVdOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDM0X1NMRVdOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDU2X1NMRVdOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRF9SRVNCSUFTRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDEyX0NPTVBTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDM0X0NPTVBTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8yX19EQ19HUElPX0hQRDU2X0NPTVBTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfR1BJT19SWEVOCisjZGVmaW5lIERDX0dQSU9fUlhFTl9fRENfR1BJT19HRU5FUklDQV9SWEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX1JYRU5fX0RDX0dQSU9fR0VORVJJQ0JfUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkVSSUNDX1JYRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0dQSU9fUlhFTl9fRENfR1BJT19HRU5FUklDRF9SWEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19HUElPX1JYRU5fX0RDX0dQSU9fR0VORVJJQ0VfUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkVSSUNGX1JYRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX0dQSU9fUlhFTl9fRENfR1BJT19HRU5FUklDR19SWEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19HUElPX1JYRU5fX0RDX0dQSU9fSFNZTkNBX1JYRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX1ZTWU5DQV9SWEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX0dQSU9fUlhFTl9fRENfR1BJT19HRU5MS19DTEtfUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19HUElPX1JYRU5fX0RDX0dQSU9fR0VOTEtfVlNZTkNfUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX1NXQVBMT0NLX0FfUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX0dQSU9fUlhFTl9fRENfR1BJT19TV0FQTE9DS19CX1JYRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19HUElPX1JYRU5fX0RDX0dQSU9fSFBEMV9SWEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0hQRDJfUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX0dQSU9fUlhFTl9fRENfR1BJT19IUEQzX1JYRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0hQRDRfUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQ19HUElPX1JYRU5fX0RDX0dQSU9fSFBENV9SWEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX0dQSU9fUlhFTl9fRENfR1BJT19IUEQ2X1JYRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0JMT05fUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX1JYRU5fX0RDX0dQSU9fRElHT05fUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDX0dQSU9fUlhFTl9fRENfR1BJT19FTkFfQkxfUlhFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkVSSUNBX1JYRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkVSSUNCX1JYRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkVSSUNDX1JYRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkVSSUNEX1JYRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkVSSUNFX1JYRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkVSSUNGX1JYRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkVSSUNHX1JYRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0hTWU5DQV9SWEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX1ZTWU5DQV9SWEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkxLX0NMS19SWEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0dFTkxLX1ZTWU5DX1JYRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX1NXQVBMT0NLX0FfUlhFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX1NXQVBMT0NLX0JfUlhFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0hQRDFfUlhFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0hQRDJfUlhFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0hQRDNfUlhFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0hQRDRfUlhFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0hQRDVfUlhFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0hQRDZfUlhFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0JMT05fUlhFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0RJR09OX1JYRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19SWEVOX19EQ19HUElPX0VOQV9CTF9SWEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vRENfR1BJT19QVUxMVVBFTgorI2RlZmluZSBEQ19HUElPX1BVTExVUEVOX19EQ19HUElPX0dFTkVSSUNBX1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19HRU5FUklDQl9QVV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX0dQSU9fUFVMTFVQRU5fX0RDX0dQSU9fR0VORVJJQ0NfUFVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19HUElPX1BVTExVUEVOX19EQ19HUElPX0dFTkVSSUNEX1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19HRU5FUklDRV9QVV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0dQSU9fUFVMTFVQRU5fX0RDX0dQSU9fR0VORVJJQ0ZfUFVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19HUElPX1BVTExVUEVOX19EQ19HUElPX0dFTkVSSUNHX1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IU1lOQ0FfUFVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fUFVMTFVQRU5fX0RDX0dQSU9fVlNZTkNBX1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19HUElPX1BVTExVUEVOX19EQ19HUElPX0hQRDFfUFVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IUEQyX1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX0dQSU9fUFVMTFVQRU5fX0RDX0dQSU9fSFBEM19QVV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IUEQ0X1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQ19HUElPX1BVTExVUEVOX19EQ19HUElPX0hQRDVfUFVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX0dQSU9fUFVMTFVQRU5fX0RDX0dQSU9fSFBENl9QVV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19CTE9OX1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19HUElPX1BVTExVUEVOX19EQ19HUElPX0RJR09OX1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERDX0dQSU9fUFVMTFVQRU5fX0RDX0dQSU9fRU5BX0JMX1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19HRU5FUklDQV9QVV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19HRU5FUklDQl9QVV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19HRU5FUklDQ19QVV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19HRU5FUklDRF9QVV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19HRU5FUklDRV9QVV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19HRU5FUklDRl9QVV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19HRU5FUklDR19QVV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IU1lOQ0FfUFVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19WU1lOQ0FfUFVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IUEQxX1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IUEQyX1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IUEQzX1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IUEQ0X1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IUEQ1X1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19IUEQ2X1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19CTE9OX1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19ESUdPTl9QVV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRENfR1BJT19QVUxMVVBFTl9fRENfR1BJT19FTkFfQkxfUFVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vRENfR1BJT19BVVhfQ1RSTF8zCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYMV9ORU5fUlRFUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzNfX0FVWDJfTkVOX1JURVJNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8zX19BVVgzX05FTl9SVEVSTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNF9ORU5fUlRFUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzNfX0FVWDVfTkVOX1JURVJNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8zX19BVVg2X05FTl9SVEVSTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYMV9EUF9ETl9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzNfX0FVWDJfRFBfRE5fU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8zX19BVVgzX0RQX0ROX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNF9EUF9ETl9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzNfX0FVWDVfRFBfRE5fU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8zX19BVVg2X0RQX0ROX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYMV9IWVNfVFVORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8zX19BVVgyX0hZU19UVU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzNfX0FVWDNfSFlTX1RVTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNF9IWVNfVFVORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF8zX19BVVg1X0hZU19UVU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzNfX0FVWDZfSFlTX1RVTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYMV9ORU5fUlRFUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYMl9ORU5fUlRFUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYM19ORU5fUlRFUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNF9ORU5fUlRFUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNV9ORU5fUlRFUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNl9ORU5fUlRFUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYMV9EUF9ETl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYMl9EUF9ETl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYM19EUF9ETl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNF9EUF9ETl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNV9EUF9ETl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNl9EUF9ETl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYMV9IWVNfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYMl9IWVNfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYM19IWVNfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNF9IWVNfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNV9IWVNfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfM19fQVVYNl9IWVNfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisvL0RDX0dQSU9fQVVYX0NUUkxfNAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzRfX0FVWDFfQVVYX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF80X19BVVgyX0FVWF9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNF9fQVVYM19BVVhfQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzRfX0FVWDRfQVVYX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF80X19BVVg1X0FVWF9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzRfX0FVWDZfQVVYX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNF9fQVVYMV9BVVhfQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNF9fQVVYMl9BVVhfQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNF9fQVVYM19BVVhfQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNF9fQVVYNF9BVVhfQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNF9fQVVYNV9BVVhfQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNF9fQVVYNl9BVVhfQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0RDX0dQSU9fQVVYX0NUUkxfNQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzVfX0FVWDFfVk9EX1RVTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF81X19BVVgyX1ZPRF9UVU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fQVVYM19WT0RfVFVORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzVfX0FVWDRfVk9EX1RVTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF81X19BVVg1X1ZPRF9UVU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fQVVYNl9WT0RfVFVORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzVfX0REQ19QQUQxX0kyQ01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF81X19ERENfUEFEMl9JMkNNT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDX1BBRDNfSTJDTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzVfX0REQ19QQUQ0X0kyQ01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF81X19ERENfUEFENV9JMkNNT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzVfX0REQ19QQUQ2X0kyQ01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDMV9JMkNfVlBIXzFWMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF81X19EREMyX0kyQ19WUEhfMVYyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzVfX0REQzNfSTJDX1ZQSF8xVjJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDNF9JMkNfVlBIXzFWMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF81X19EREM1X0kyQ19WUEhfMVYyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzVfX0REQzZfSTJDX1ZQSF8xVjJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDMV9QQURfSTJDX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF81X19EREMyX1BBRF9JMkNfQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzVfX0REQzNfUEFEX0kyQ19DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDNF9QQURfSTJDX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgRENfR1BJT19BVVhfQ1RSTF81X19EREM1X1BBRF9JMkNfQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19HUElPX0FVWF9DVFJMXzVfX0REQzZfUEFEX0kyQ19DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fQVVYMV9WT0RfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fQVVYMl9WT0RfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fQVVYM19WT0RfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fQVVYNF9WT0RfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fQVVYNV9WT0RfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fQVVYNl9WT0RfVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDX1BBRDFfSTJDTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDX1BBRDJfSTJDTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDX1BBRDNfSTJDTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDX1BBRDRfSTJDTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDX1BBRDVfSTJDTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDX1BBRDZfSTJDTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDMV9JMkNfVlBIXzFWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDMl9JMkNfVlBIXzFWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDM19JMkNfVlBIXzFWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDNF9JMkNfVlBIXzFWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDNV9JMkNfVlBIXzFWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDNl9JMkNfVlBIXzFWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDMV9QQURfSTJDX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDMl9QQURfSTJDX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDM19QQURfSTJDX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDNF9QQURfSTJDX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDNV9QQURfSTJDX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX0dQSU9fQVVYX0NUUkxfNV9fRERDNl9QQURfSTJDX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0FVWEkyQ19QQURfQUxMX1BXUl9PSworI2RlZmluZSBBVVhJMkNfUEFEX0FMTF9QV1JfT0tfX0FVWEkyQ19QSFkxX0FMTF9QV1JfT0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVVYSTJDX1BBRF9BTExfUFdSX09LX19BVVhJMkNfUEhZMl9BTExfUFdSX09LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFVWEkyQ19QQURfQUxMX1BXUl9PS19fQVVYSTJDX1BIWTNfQUxMX1BXUl9PS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBVVhJMkNfUEFEX0FMTF9QV1JfT0tfX0FVWEkyQ19QSFk0X0FMTF9QV1JfT0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVVYSTJDX1BBRF9BTExfUFdSX09LX19BVVhJMkNfUEhZNV9BTExfUFdSX09LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFVWEkyQ19QQURfQUxMX1BXUl9PS19fQVVYSTJDX1BIWTZfQUxMX1BXUl9PS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBVVhJMkNfUEFEX0FMTF9QV1JfT0tfX0FVWEkyQ19QSFkxX0FMTF9QV1JfT0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBVVhJMkNfUEFEX0FMTF9QV1JfT0tfX0FVWEkyQ19QSFkyX0FMTF9QV1JfT0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBVVhJMkNfUEFEX0FMTF9QV1JfT0tfX0FVWEkyQ19QSFkzX0FMTF9QV1JfT0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBVVhJMkNfUEFEX0FMTF9QV1JfT0tfX0FVWEkyQ19QSFk0X0FMTF9QV1JfT0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBVVhJMkNfUEFEX0FMTF9QV1JfT0tfX0FVWEkyQ19QSFk1X0FMTF9QV1JfT0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBVVhJMkNfUEFEX0FMTF9QV1JfT0tfX0FVWEkyQ19QSFk2X0FMTF9QV1JfT0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2MwX2Rpc3BkZWNfZHNjX3RvcF9kaXNwZGVjCisvL0RTQ19UT1AwX0RTQ19UT1BfQ09OVFJPTAorI2RlZmluZSBEU0NfVE9QMF9EU0NfVE9QX0NPTlRST0xfX0RTQ19DTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDX1RPUDBfRFNDX1RPUF9DT05UUk9MX19EU0NfRElTUENMS19SX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ19UT1AwX0RTQ19UT1BfQ09OVFJPTF9fRFNDX0RTQ0NMS19SX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NfVE9QMF9EU0NfVE9QX0NPTlRST0xfX0RTQ19DTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NfVE9QMF9EU0NfVE9QX0NPTlRST0xfX0RTQ19ESVNQQ0xLX1JfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NfVE9QMF9EU0NfVE9QX0NPTlRST0xfX0RTQ19EU0NDTEtfUl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EU0NfVE9QMF9EU0NfREVCVUdfQ09OVFJPTAorI2RlZmluZSBEU0NfVE9QMF9EU0NfREVCVUdfQ09OVFJPTF9fRFNDX0RCR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDX1RPUDBfRFNDX0RFQlVHX0NPTlRST0xfX0RTQ19URVNUX0NMT0NLX01VWF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ19UT1AwX0RTQ19ERUJVR19DT05UUk9MX19EU0NfREJHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ19UT1AwX0RTQ19ERUJVR19DT05UUk9MX19EU0NfVEVTVF9DTE9DS19NVVhfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjMF9kaXNwZGVjX2RzY2NpZl9kaXNwZGVjCisvL0RTQ0NJRjBfRFNDQ0lGX0NPTkZJRzAKKyNkZWZpbmUgRFNDQ0lGMF9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19SRUNPVkVSWV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0NJRjBfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDSUYwX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX09DQ1VSUkVEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQ0lGMF9EU0NDSUZfQ09ORklHMF9fSU5QVVRfUElYRUxfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0NJRjBfRFNDQ0lGX0NPTkZJRzBfX0JJVFNfUEVSX0NPTVBPTkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQ0lGMF9EU0NDSUZfQ09ORklHMF9fRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDSUYwX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX1JFQ09WRVJZX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NDSUYwX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NDSUYwX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX09DQ1VSUkVEX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NDSUYwX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9QSVhFTF9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEU0NDSUYwX0RTQ0NJRl9DT05GSUcwX19CSVRTX1BFUl9DT01QT05FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEU0NDSUYwX0RTQ0NJRl9DT05GSUcwX19ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EU0NDSUYwX0RTQ0NJRl9DT05GSUcxCisjZGVmaW5lIERTQ0NJRjBfRFNDQ0lGX0NPTkZJRzFfX1BJQ19XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDSUYwX0RTQ0NJRl9DT05GSUcxX19QSUNfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0NJRjBfRFNDQ0lGX0NPTkZJRzFfX1BJQ19XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0NJRjBfRFNDQ0lGX0NPTkZJRzFfX1BJQ19IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjMF9kaXNwZGVjX2RzY2NfZGlzcGRlYworLy9EU0NDMF9EU0NDX0NPTkZJRzAKKyNkZWZpbmUgRFNDQzBfRFNDQ19DT05GSUcwX19JQ0hfUkVTRVRfQVRfRU5EX09GX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfQ09ORklHMF9fTlVNQkVSX09GX1NMSUNFU19QRVJfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDMF9EU0NDX0NPTkZJRzBfX0FMVEVSTkFURV9JQ0hfRU5DT0RJTkdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzBfRFNDQ19DT05GSUcwX19OVU1CRVJfT0ZfU0xJQ0VTX0lOX1ZFUlRJQ0FMX0RJUkVDVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMF9EU0NDX0NPTkZJRzBfX0lDSF9SRVNFVF9BVF9FTkRfT0ZfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEU0NDMF9EU0NDX0NPTkZJRzBfX05VTUJFUl9PRl9TTElDRVNfUEVSX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEU0NDMF9EU0NDX0NPTkZJRzBfX0FMVEVSTkFURV9JQ0hfRU5DT0RJTkdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NDMF9EU0NDX0NPTkZJRzBfX05VTUJFUl9PRl9TTElDRVNfSU5fVkVSVElDQUxfRElSRUNUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMF9EU0NDX0NPTkZJRzEKKyNkZWZpbmUgRFNDQzBfRFNDQ19DT05GSUcxX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUxfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfQ09ORklHMV9fRFNDQ19ESVNBQkxFX0lDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzBfRFNDQ19DT05GSUcxX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUxfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19DT05GSUcxX19EU0NDX0RJU0FCTEVfSUNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFNDQzBfRFNDQ19TVEFUVVMKKyNkZWZpbmUgRFNDQzBfRFNDQ19TVEFUVVNfX0RTQ0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfU1RBVFVTX19EU0NDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEU0NDMF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfVU5ERVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX1VOREVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9VTkRFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEU0NDMF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfVU5ERVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDBfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwxX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgIDB4OQorI2RlZmluZSBEU0NDMF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMl9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDNfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgMHhiCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEU0NDMF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEU0NDMF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEU0NDMF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMF9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAweDE4CisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwxX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgRFNDQzBfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDJfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgMHgxYQorI2RlZmluZSBEU0NDMF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMM19PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAweDFiCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9VTkRFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9VTkRFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9VTkRFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19VTkRFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwwX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwxX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwyX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwzX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwwX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwxX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwyX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwzX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgIDB4MDgwMDAwMDBMCisvL0RTQ0MwX0RTQ0NfUFBTX0NPTkZJRzAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMF9fRFNDX1ZFUlNJT05fTUlOT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzBfX0RTQ19WRVJTSU9OX01BSk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcwX19QUFNfSURFTlRJRklFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMF9fTElORUJVRl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcwX19CSVRTX1BFUl9DT01QT05FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzBfX0RTQ19WRVJTSU9OX01JTk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzBfX0RTQ19WRVJTSU9OX01BSk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzBfX1BQU19JREVOVElGSUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzBfX0xJTkVCVUZfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzBfX0JJVFNfUEVSX0NPTVBPTkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fQklUU19QRVJfUElYRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzFfX1ZCUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxX19TSU1QTEVfNDIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fQ09OVkVSVF9SR0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzFfX0JMT0NLX1BSRURfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxX19OQVRJVkVfNDIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fTkFUSVZFXzQyMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzFfX0NIVU5LX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fQklUU19QRVJfUElYRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fVkJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fU0lNUExFXzQyMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fQ09OVkVSVF9SR0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fQkxPQ0tfUFJFRF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fTkFUSVZFXzQyMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fTkFUSVZFXzQyMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMV9fQ0hVTktfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzBfRFNDQ19QUFNfQ09ORklHMgorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyX19QSUNfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMl9fUElDX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyX19QSUNfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyX19QSUNfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUczCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzNfX1NMSUNFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUczX19TTElDRV9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzNfX1NMSUNFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzNfX1NMSUNFX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MwX0RTQ0NfUFBTX0NPTkZJRzQKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHNF9fSU5JVElBTF9YTUlUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzRfX0lOSVRJQUxfREVDX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHNF9fSU5JVElBTF9YTUlUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHNF9fSU5JVElBTF9ERUNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzBfRFNDQ19QUFNfQ09ORklHNQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUc1X19JTklUSUFMX1NDQUxFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHNV9fU0NBTEVfSU5DUkVNRU5UX0lOVEVSVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUc1X19JTklUSUFMX1NDQUxFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUc1X19TQ0FMRV9JTkNSRU1FTlRfSU5URVJWQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUc2CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzZfX1NDQUxFX0RFQ1JFTUVOVF9JTlRFUlZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUc2X19GSVJTVF9MSU5FX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzZfX1NFQ09ORF9MSU5FX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHNl9fU0NBTEVfREVDUkVNRU5UX0lOVEVSVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHNl9fRklSU1RfTElORV9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHNl9fU0VDT05EX0xJTkVfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKy8vRFNDQzBfRFNDQ19QUFNfQ09ORklHNworI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUc3X19ORkxfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHN19fU0xJQ0VfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUc3X19ORkxfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUc3X19TTElDRV9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUc4CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzhfX05TTF9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUc4X19TRUNPTkRfTElORV9PRkZTRVRfQURKX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzhfX05TTF9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzhfX1NFQ09ORF9MSU5FX09GRlNFVF9BREpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MwX0RTQ0NfUFBTX0NPTkZJRzkKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHOV9fSU5JVElBTF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzlfX0ZJTkFMX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHOV9fSU5JVElBTF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHOV9fRklOQUxfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzBfRFNDQ19QUFNfQ09ORklHMTAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTBfX0ZMQVRORVNTX01JTl9RUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEwX19GTEFUTkVTU19NQVhfUVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxMF9fUkNfTU9ERUxfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEwX19GTEFUTkVTU19NSU5fUVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEwX19GTEFUTkVTU19NQVhfUVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEwX19SQ19NT0RFTF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MwX0RTQ0NfUFBTX0NPTkZJRzExCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19FREdFX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxMV9fUkNfUVVBTlRfSU5DUl9MSU1JVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1FVQU5UX0lOQ1JfTElNSVQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxMV9fUkNfVEdUX09GRlNFVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19UR1RfT0ZGU0VUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTFfX1JDX0VER0VfRkFDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1FVQU5UX0lOQ1JfTElNSVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1FVQU5UX0lOQ1JfTElNSVQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1RHVF9PRkZTRVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1RHVF9PRkZTRVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFNDQzBfRFNDQ19QUFNfQ09ORklHMTIKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFNDQzBfRFNDQ19QUFNfQ09ORklHMTMKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNIN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFNDQzBfRFNDQ19QUFNfQ09ORklHMTQKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0g4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0g4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0g5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0gxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0gxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFNDQzBfRFNDQ19QUFNfQ09ORklHMTUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTVfX1JDX0JVRl9USFJFU0gxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE1X19SQ19CVUZfVEhSRVNIMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfTUlOX1FQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9NQVhfUVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX0JQR19PRkZTRVQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNV9fUkNfQlVGX1RIUkVTSDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNV9fUkNfQlVGX1RIUkVTSDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfTUlOX1FQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfTUFYX1FQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfQlBHX09GRlNFVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUcxNgorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUlOX1FQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01BWF9RUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9CUEdfT0ZGU0VUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUlOX1FQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NQVhfUVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX0JQR19PRkZTRVQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUlOX1FQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUFYX1FQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfQlBHX09GRlNFVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUlOX1FQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUFYX1FQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfQlBHX09GRlNFVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUcxNworI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUlOX1FQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01BWF9RUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9CUEdfT0ZGU0VUM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUlOX1FQNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NQVhfUVA0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX0JQR19PRkZTRVQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUlOX1FQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUFYX1FQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfQlBHX09GRlNFVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUlOX1FQNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUFYX1FQNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfQlBHX09GRlNFVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUcxOAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUlOX1FQNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01BWF9RUDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9CUEdfT0ZGU0VUNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUlOX1FQNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NQVhfUVA2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX0JQR19PRkZTRVQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUlOX1FQNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUFYX1FQNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfQlBHX09GRlNFVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUlOX1FQNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUFYX1FQNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfQlBHX09GRlNFVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUcxOQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUlOX1FQN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01BWF9RUDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9CUEdfT0ZGU0VUN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUlOX1FQOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NQVhfUVA4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX0JQR19PRkZTRVQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUlOX1FQN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUFYX1FQN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfQlBHX09GRlNFVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUlOX1FQOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUFYX1FQOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfQlBHX09GRlNFVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUcyMAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUlOX1FQOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01BWF9RUDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9CUEdfT0ZGU0VUOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUlOX1FQMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NQVhfUVAxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX0JQR19PRkZTRVQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUlOX1FQOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUFYX1FQOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfQlBHX09GRlNFVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUlOX1FQMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUFYX1FQMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfQlBHX09GRlNFVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUcyMQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUlOX1FQMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01BWF9RUDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9CUEdfT0ZGU0VUMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUlOX1FQMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NQVhfUVAxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX0JQR19PRkZTRVQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUlOX1FQMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUFYX1FQMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfQlBHX09GRlNFVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUlOX1FQMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUFYX1FQMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfQlBHX09GRlNFVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDMF9EU0NDX1BQU19DT05GSUcyMgorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUlOX1FQMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01BWF9RUDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9CUEdfT0ZGU0VUMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUlOX1FQMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NQVhfUVAxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzBfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX0JQR19PRkZTRVQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUlOX1FQMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUFYX1FQMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfQlBHX09GRlNFVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUlOX1FQMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUFYX1FQMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDMF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfQlBHX09GRlNFVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDMF9EU0NDX01FTV9QT1dFUl9DT05UUk9MCisjZGVmaW5lIERTQ0MwX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfREVGQVVMVF9NRU1fTE9XX1BPV0VSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MwX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEU0NDMF9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MwX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19ERUZBVUxUX01FTV9MT1dfUE9XRVJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFNDQzBfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vRFNDQzBfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUgorI2RlZmluZSBEU0NDMF9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzBfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUgorI2RlZmluZSBEU0NDMF9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzBfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVIKKyNkZWZpbmUgRFNDQzBfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0MwX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSCisjZGVmaW5lIERTQ0MwX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDMF9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUgorI2RlZmluZSBEU0NDMF9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzBfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVIKKyNkZWZpbmUgRFNDQzBfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0MwX0RTQ0NfTUFYX0FCU19FUlJPUjAKKyNkZWZpbmUgRFNDQzBfRFNDQ19NQVhfQUJTX0VSUk9SMF9fRFNDQ19SX1lfTUFYX0FCU19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfTUFYX0FCU19FUlJPUjBfX0RTQ0NfR19DQl9NQVhfQUJTX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzBfRFNDQ19NQVhfQUJTX0VSUk9SMF9fRFNDQ19SX1lfTUFYX0FCU19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzBfRFNDQ19NQVhfQUJTX0VSUk9SMF9fRFNDQ19HX0NCX01BWF9BQlNfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzBfRFNDQ19NQVhfQUJTX0VSUk9SMQorI2RlZmluZSBEU0NDMF9EU0NDX01BWF9BQlNfRVJST1IxX19EU0NDX0JfQ1JfTUFYX0FCU19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19NQVhfQUJTX0VSUk9SMV9fRFNDQ19CX0NSX01BWF9BQlNfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRFNDQzBfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EU0NDMF9EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzBfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RTQ0MwX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDMF9EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vRFNDQzBfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EU0NDMF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDMF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgIDB4MDAwM0ZGRkZMCisvL0RTQ0MwX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MwX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgMHgwMDAzRkZGRkwKKy8vRFNDQzBfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzBfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgMHgwCisjZGVmaW5lIERTQ0MwX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAweDAwMDNGRkZGTAorLy9EU0NDMF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDMF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAweDAKKyNkZWZpbmUgRFNDQzBfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgIDB4MDAwM0ZGRkZMCisvL0RTQ0MwX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFCisjZGVmaW5lIERTQ0MwX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMF9ST1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzFfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzBfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMyX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzNfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MwX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMF9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MwX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMV9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMl9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MwX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTM19ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjMF9kaXNwZGVjX2RzY19kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT04xOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OMTlfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9OMTlfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMTlfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjE5X1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04xOV9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjMV9kaXNwZGVjX2RzY190b3BfZGlzcGRlYworLy9EU0NfVE9QMV9EU0NfVE9QX0NPTlRST0wKKyNkZWZpbmUgRFNDX1RPUDFfRFNDX1RPUF9DT05UUk9MX19EU0NfQ0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ19UT1AxX0RTQ19UT1BfQ09OVFJPTF9fRFNDX0RJU1BDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NfVE9QMV9EU0NfVE9QX0NPTlRST0xfX0RTQ19EU0NDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDX1RPUDFfRFNDX1RPUF9DT05UUk9MX19EU0NfQ0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDX1RPUDFfRFNDX1RPUF9DT05UUk9MX19EU0NfRElTUENMS19SX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDX1RPUDFfRFNDX1RPUF9DT05UUk9MX19EU0NfRFNDQ0xLX1JfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRFNDX1RPUDFfRFNDX0RFQlVHX0NPTlRST0wKKyNkZWZpbmUgRFNDX1RPUDFfRFNDX0RFQlVHX0NPTlRST0xfX0RTQ19EQkdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ19UT1AxX0RTQ19ERUJVR19DT05UUk9MX19EU0NfVEVTVF9DTE9DS19NVVhfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NfVE9QMV9EU0NfREVCVUdfQ09OVFJPTF9fRFNDX0RCR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NfVE9QMV9EU0NfREVCVUdfQ09OVFJPTF9fRFNDX1RFU1RfQ0xPQ0tfTVVYX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzFfZGlzcGRlY19kc2NjaWZfZGlzcGRlYworLy9EU0NDSUYxX0RTQ0NJRl9DT05GSUcwCisjZGVmaW5lIERTQ0NJRjFfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfUkVDT1ZFUllfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDSUYxX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQ0lGMV9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19PQ0NVUlJFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0NJRjFfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX1BJWEVMX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NDSUYxX0RTQ0NJRl9DT05GSUcwX19CSVRTX1BFUl9DT01QT05FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0NJRjFfRFNDQ0lGX0NPTkZJRzBfX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQ0lGMV9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19SRUNPVkVSWV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDQ0lGMV9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDQ0lGMV9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19PQ0NVUlJFRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFNDQ0lGMV9EU0NDSUZfQ09ORklHMF9fSU5QVVRfUElYRUxfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRFNDQ0lGMV9EU0NDSUZfQ09ORklHMF9fQklUU19QRVJfQ09NUE9ORU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRFNDQ0lGMV9EU0NDSUZfQ09ORklHMF9fRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFNDQ0lGMV9EU0NDSUZfQ09ORklHMQorI2RlZmluZSBEU0NDSUYxX0RTQ0NJRl9DT05GSUcxX19QSUNfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQ0lGMV9EU0NDSUZfQ09ORklHMV9fUElDX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDSUYxX0RTQ0NJRl9DT05GSUcxX19QSUNfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDSUYxX0RTQ0NJRl9DT05GSUcxX19QSUNfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzFfZGlzcGRlY19kc2NjX2Rpc3BkZWMKKy8vRFNDQzFfRFNDQ19DT05GSUcwCisjZGVmaW5lIERTQ0MxX0RTQ0NfQ09ORklHMF9fSUNIX1JFU0VUX0FUX0VORF9PRl9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX0NPTkZJRzBfX05VTUJFUl9PRl9TTElDRVNfUEVSX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQzFfRFNDQ19DT05GSUcwX19BTFRFUk5BVEVfSUNIX0VOQ09ESU5HX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MxX0RTQ0NfQ09ORklHMF9fTlVNQkVSX09GX1NMSUNFU19JTl9WRVJUSUNBTF9ESVJFQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzFfRFNDQ19DT05GSUcwX19JQ0hfUkVTRVRfQVRfRU5EX09GX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19DT05GSUcwX19OVU1CRVJfT0ZfU0xJQ0VTX1BFUl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19DT05GSUcwX19BTFRFUk5BVEVfSUNIX0VOQ09ESU5HX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19DT05GSUcwX19OVU1CRVJfT0ZfU0xJQ0VTX0lOX1ZFUlRJQ0FMX0RJUkVDVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzFfRFNDQ19DT05GSUcxCisjZGVmaW5lIERTQ0MxX0RTQ0NfQ09ORklHMV9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX0NPTkZJRzFfX0RTQ0NfRElTQUJMRV9JQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MxX0RTQ0NfQ09ORklHMV9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfQ09ORklHMV9fRFNDQ19ESVNBQkxFX0lDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RTQ0MxX0RTQ0NfU1RBVFVTCisjZGVmaW5lIERTQ0MxX0RTQ0NfU1RBVFVTX19EU0NDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1NUQVRVU19fRFNDQ19ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVUworI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFNDQzFfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX1VOREVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9VTkRFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfVU5ERVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDQzFfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX1VOREVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwwX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMV9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAweDkKKyNkZWZpbmUgRFNDQzFfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDJfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwzX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgIDB4YgorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFNDQzFfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFNDQzFfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFNDQzFfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDBfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgMHgxOAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMV9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAweDE5CisjZGVmaW5lIERTQ0MxX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwyX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgIDB4MWEKKyNkZWZpbmUgRFNDQzFfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDNfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgMHgxYgorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfVU5ERVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfVU5ERVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfVU5ERVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfVU5ERVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMF9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMV9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMl9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMM19PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMF9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMV9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMl9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMM19PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAweDA4MDAwMDAwTAorLy9EU0NDMV9EU0NDX1BQU19DT05GSUcwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzBfX0RTQ19WRVJTSU9OX01JTk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcwX19EU0NfVkVSU0lPTl9NQUpPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMF9fUFBTX0lERU5USUZJRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzBfX0xJTkVCVUZfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMF9fQklUU19QRVJfQ09NUE9ORU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcwX19EU0NfVkVSU0lPTl9NSU5PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcwX19EU0NfVkVSU0lPTl9NQUpPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcwX19QUFNfSURFTlRJRklFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcwX19MSU5FQlVGX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcwX19CSVRTX1BFUl9DT01QT05FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EU0NDMV9EU0NDX1BQU19DT05GSUcxCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX0JJVFNfUEVSX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxX19WQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMV9fU0lNUExFXzQyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX0NPTlZFUlRfUkdCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxX19CTE9DS19QUkVEX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMV9fTkFUSVZFXzQyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX05BVElWRV80MjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxX19DSFVOS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX0JJVFNfUEVSX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX1ZCUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX1NJTVBMRV80MjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX0NPTlZFUlRfUkdCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX0JMT0NLX1BSRURfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX05BVElWRV80MjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX05BVElWRV80MjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzFfX0NIVU5LX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMl9fUElDX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzJfX1BJQ19IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMl9fUElDX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMl9fUElDX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHMworI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUczX19TTElDRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHM19fU0xJQ0VfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUczX19TTElDRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUczX19TTElDRV9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMV9EU0NDX1BQU19DT05GSUc0CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzRfX0lOSVRJQUxfWE1JVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUc0X19JTklUSUFMX0RFQ19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzRfX0lOSVRJQUxfWE1JVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzRfX0lOSVRJQUxfREVDX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MxX0RTQ0NfUFBTX0NPTkZJRzUKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHNV9fSU5JVElBTF9TQ0FMRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzVfX1NDQUxFX0lOQ1JFTUVOVF9JTlRFUlZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHNV9fSU5JVElBTF9TQ0FMRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHNV9fU0NBTEVfSU5DUkVNRU5UX0lOVEVSVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHNgorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUc2X19TQ0FMRV9ERUNSRU1FTlRfSU5URVJWQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHNl9fRklSU1RfTElORV9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUc2X19TRUNPTkRfTElORV9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzZfX1NDQUxFX0RFQ1JFTUVOVF9JTlRFUlZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzZfX0ZJUlNUX0xJTkVfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzZfX1NFQ09ORF9MSU5FX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL0RTQ0MxX0RTQ0NfUFBTX0NPTkZJRzcKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHN19fTkZMX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzdfX1NMSUNFX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHN19fTkZMX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHN19fU0xJQ0VfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHOAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUc4X19OU0xfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHOF9fU0VDT05EX0xJTkVfT0ZGU0VUX0FESl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUc4X19OU0xfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUc4X19TRUNPTkRfTElORV9PRkZTRVRfQURKX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMV9EU0NDX1BQU19DT05GSUc5CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzlfX0lOSVRJQUxfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUc5X19GSU5BTF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzlfX0lOSVRJQUxfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzlfX0ZJTkFMX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEwX19GTEFUTkVTU19NSU5fUVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxMF9fRkxBVE5FU1NfTUFYX1FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTBfX1JDX01PREVMX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxMF9fRkxBVE5FU1NfTUlOX1FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxMF9fRkxBVE5FU1NfTUFYX1FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxMF9fUkNfTU9ERUxfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMV9EU0NDX1BQU19DT05GSUcxMQorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxMV9fUkNfRURHRV9GQUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1FVQU5UX0lOQ1JfTElNSVQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19RVUFOVF9JTkNSX0xJTUlUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1RHVF9PRkZTRVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxMV9fUkNfVEdUX09GRlNFVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19FREdFX0ZBQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19RVUFOVF9JTkNSX0xJTUlUMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19RVUFOVF9JTkNSX0xJTUlUMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19UR1RfT0ZGU0VUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19UR1RfT0ZGU0VUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEyCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEzCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNIN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE0CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0gxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE1CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE1X19SQ19CVUZfVEhSRVNIMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxNV9fUkNfQlVGX1RIUkVTSDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX01JTl9RUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfTUFYX1FQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9CUEdfT0ZGU0VUMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTVfX1JDX0JVRl9USFJFU0gxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTVfX1JDX0JVRl9USFJFU0gxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX01JTl9RUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX01BWF9RUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX0JQR19PRkZTRVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHMTYKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01JTl9RUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NQVhfUVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfQlBHX09GRlNFVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01JTl9RUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUFYX1FQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9CUEdfT0ZGU0VUMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01JTl9RUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01BWF9RUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX0JQR19PRkZTRVQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01JTl9RUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01BWF9RUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX0JQR19PRkZTRVQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHMTcKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01JTl9RUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NQVhfUVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfQlBHX09GRlNFVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01JTl9RUDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUFYX1FQNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9CUEdfT0ZGU0VUNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01JTl9RUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01BWF9RUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX0JQR19PRkZTRVQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01JTl9RUDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01BWF9RUDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX0JQR19PRkZTRVQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHMTgKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01JTl9RUDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NQVhfUVA1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfQlBHX09GRlNFVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01JTl9RUDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUFYX1FQNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9CUEdfT0ZGU0VUNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01JTl9RUDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01BWF9RUDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX0JQR19PRkZTRVQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01JTl9RUDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01BWF9RUDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX0JQR19PRkZTRVQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHMTkKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01JTl9RUDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NQVhfUVA3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfQlBHX09GRlNFVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01JTl9RUDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUFYX1FQOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9CUEdfT0ZGU0VUOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01JTl9RUDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01BWF9RUDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX0JQR19PRkZTRVQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01JTl9RUDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01BWF9RUDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX0JQR19PRkZTRVQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHMjAKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01JTl9RUDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NQVhfUVA5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfQlBHX09GRlNFVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01JTl9RUDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUFYX1FQMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9CUEdfT0ZGU0VUMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01JTl9RUDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01BWF9RUDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX0JQR19PRkZTRVQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01JTl9RUDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01BWF9RUDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX0JQR19PRkZTRVQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHMjEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01JTl9RUDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NQVhfUVAxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfQlBHX09GRlNFVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01JTl9RUDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUFYX1FQMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9CUEdfT0ZGU0VUMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01JTl9RUDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01BWF9RUDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX0JQR19PRkZTRVQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01JTl9RUDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01BWF9RUDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX0JQR19PRkZTRVQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzFfRFNDQ19QUFNfQ09ORklHMjIKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01JTl9RUDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NQVhfUVAxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfQlBHX09GRlNFVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01JTl9RUDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMV9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUFYX1FQMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MxX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9CUEdfT0ZGU0VUMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01JTl9RUDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01BWF9RUDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX0JQR19PRkZTRVQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01JTl9RUDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01BWF9RUDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzFfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX0JQR19PRkZTRVQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzFfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTAorI2RlZmluZSBEU0NDMV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX0RFRkFVTFRfTUVNX0xPV19QT1dFUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFNDQzFfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDMV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfREVGQVVMVF9NRU1fTE9XX1BPV0VSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL0RTQ0MxX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVIKKyNkZWZpbmUgRFNDQzFfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0MxX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVIKKyNkZWZpbmUgRFNDQzFfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0MxX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSCisjZGVmaW5lIERTQ0MxX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDMV9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUgorI2RlZmluZSBEU0NDMV9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzFfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVIKKyNkZWZpbmUgRFNDQzFfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0MxX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSCisjZGVmaW5lIERTQ0MxX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDMV9EU0NDX01BWF9BQlNfRVJST1IwCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUFYX0FCU19FUlJPUjBfX0RTQ0NfUl9ZX01BWF9BQlNfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX01BWF9BQlNfRVJST1IwX19EU0NDX0dfQ0JfTUFYX0FCU19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUFYX0FCU19FUlJPUjBfX0RTQ0NfUl9ZX01BWF9BQlNfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUFYX0FCU19FUlJPUjBfX0RTQ0NfR19DQl9NQVhfQUJTX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MxX0RTQ0NfTUFYX0FCU19FUlJPUjEKKyNkZWZpbmUgRFNDQzFfRFNDQ19NQVhfQUJTX0VSUk9SMV9fRFNDQ19CX0NSX01BWF9BQlNfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfTUFYX0FCU19FUlJPUjFfX0RTQ0NfQl9DUl9NQVhfQUJTX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0RTQ0MxX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDMV9EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vRFNDQzFfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EU0NDMV9EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzFfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RTQ0MxX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDMV9EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vRFNDQzFfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzFfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAweDAwMDNGRkZGTAorLy9EU0NDMV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDMV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgIDB4MDAwM0ZGRkZMCisvL0RTQ0MxX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MxX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgIDB4MAorI2RlZmluZSBEU0NDMV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgMHgwMDAzRkZGRkwKKy8vRFNDQzFfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzFfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgMHgwCisjZGVmaW5lIERTQ0MxX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAweDAwMDNGRkZGTAorLy9EU0NDMV9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURQorI2RlZmluZSBEU0NDMV9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzBfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzFfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMxX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MxX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMl9ST1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzFfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMzX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDMV9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzBfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDMV9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzFfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEU0NDMV9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzJfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMV9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzNfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzFfZGlzcGRlY19kc2NfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy9EQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX1NUQVRFCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RDX1BFUkZNT04yMF9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX1BFUkZNT04yMF9QRVJGTU9OX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGQzAwTAorLy9EQ19QRVJGTU9OMjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0xPVworI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfUEVSRk1PTjIwX1BFUkZNT05fSEkKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fSElfX1BFUkZNT05fSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fSElfX1BFUkZNT05fSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjIwX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjIwX1BFUkZNT05fTE9XCisjZGVmaW5lIERDX1BFUkZNT04yMF9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjBfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzJfZGlzcGRlY19kc2NfdG9wX2Rpc3BkZWMKKy8vRFNDX1RPUDJfRFNDX1RPUF9DT05UUk9MCisjZGVmaW5lIERTQ19UT1AyX0RTQ19UT1BfQ09OVFJPTF9fRFNDX0NMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NfVE9QMl9EU0NfVE9QX0NPTlRST0xfX0RTQ19ESVNQQ0xLX1JfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDX1RPUDJfRFNDX1RPUF9DT05UUk9MX19EU0NfRFNDQ0xLX1JfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ19UT1AyX0RTQ19UT1BfQ09OVFJPTF9fRFNDX0NMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ19UT1AyX0RTQ19UT1BfQ09OVFJPTF9fRFNDX0RJU1BDTEtfUl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERTQ19UT1AyX0RTQ19UT1BfQ09OVFJPTF9fRFNDX0RTQ0NMS19SX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RTQ19UT1AyX0RTQ19ERUJVR19DT05UUk9MCisjZGVmaW5lIERTQ19UT1AyX0RTQ19ERUJVR19DT05UUk9MX19EU0NfREJHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NfVE9QMl9EU0NfREVCVUdfQ09OVFJPTF9fRFNDX1RFU1RfQ0xPQ0tfTVVYX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDX1RPUDJfRFNDX0RFQlVHX0NPTlRST0xfX0RTQ19EQkdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDX1RPUDJfRFNDX0RFQlVHX0NPTlRST0xfX0RTQ19URVNUX0NMT0NLX01VWF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2MyX2Rpc3BkZWNfZHNjY2lmX2Rpc3BkZWMKKy8vRFNDQ0lGMl9EU0NDSUZfQ09ORklHMAorI2RlZmluZSBEU0NDSUYyX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX1JFQ09WRVJZX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQ0lGMl9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0NJRjJfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfT0NDVVJSRURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDSUYyX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9QSVhFTF9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDQ0lGMl9EU0NDSUZfQ09ORklHMF9fQklUU19QRVJfQ09NUE9ORU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDSUYyX0RTQ0NJRl9DT05GSUcwX19ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0NJRjJfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfUkVDT1ZFUllfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ0NJRjJfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERTQ0NJRjJfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfT0NDVVJSRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0NJRjJfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX1BJWEVMX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERTQ0NJRjJfRFNDQ0lGX0NPTkZJRzBfX0JJVFNfUEVSX0NPTVBPTkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERTQ0NJRjJfRFNDQ0lGX0NPTkZJRzBfX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RTQ0NJRjJfRFNDQ0lGX0NPTkZJRzEKKyNkZWZpbmUgRFNDQ0lGMl9EU0NDSUZfQ09ORklHMV9fUElDX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0NJRjJfRFNDQ0lGX0NPTkZJRzFfX1BJQ19IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQ0lGMl9EU0NDSUZfQ09ORklHMV9fUElDX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQ0lGMl9EU0NDSUZfQ09ORklHMV9fUElDX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2MyX2Rpc3BkZWNfZHNjY19kaXNwZGVjCisvL0RTQ0MyX0RTQ0NfQ09ORklHMAorI2RlZmluZSBEU0NDMl9EU0NDX0NPTkZJRzBfX0lDSF9SRVNFVF9BVF9FTkRfT0ZfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19DT05GSUcwX19OVU1CRVJfT0ZfU0xJQ0VTX1BFUl9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0MyX0RTQ0NfQ09ORklHMF9fQUxURVJOQVRFX0lDSF9FTkNPRElOR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMl9EU0NDX0NPTkZJRzBfX05VTUJFUl9PRl9TTElDRVNfSU5fVkVSVElDQUxfRElSRUNUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MyX0RTQ0NfQ09ORklHMF9fSUNIX1JFU0VUX0FUX0VORF9PRl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfQ09ORklHMF9fTlVNQkVSX09GX1NMSUNFU19QRVJfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfQ09ORklHMF9fQUxURVJOQVRFX0lDSF9FTkNPRElOR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfQ09ORklHMF9fTlVNQkVSX09GX1NMSUNFU19JTl9WRVJUSUNBTF9ESVJFQ1RJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MyX0RTQ0NfQ09ORklHMQorI2RlZmluZSBEU0NDMl9EU0NDX0NPTkZJRzFfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19DT05GSUcxX19EU0NDX0RJU0FCTEVfSUNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDMl9EU0NDX0NPTkZJRzFfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBEU0NDMl9EU0NDX0NPTkZJRzFfX0RTQ0NfRElTQUJMRV9JQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EU0NDMl9EU0NDX1NUQVRVUworI2RlZmluZSBEU0NDMl9EU0NDX1NUQVRVU19fRFNDQ19ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19TVEFUVVNfX0RTQ0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVMKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERTQ0MyX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9VTkRFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfVU5ERVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX1VOREVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERTQ0MyX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19VTkRFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMF9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDFfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgMHg5CisjZGVmaW5lIERTQ0MyX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwyX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMM19PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAweGIKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERTQ0MyX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERTQ0MyX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERTQ0MyX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwwX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgIDB4MTgKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDFfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgMHgxOQorI2RlZmluZSBEU0NDMl9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMl9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAweDFhCisjZGVmaW5lIERTQ0MyX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwzX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgIDB4MWIKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX1VOREVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX1VOREVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX1VOREVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX1VOREVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDBfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDFfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDJfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDNfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDBfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDFfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDJfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDNfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgMHgwODAwMDAwMEwKKy8vRFNDQzJfRFNDQ19QUFNfQ09ORklHMAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcwX19EU0NfVkVSU0lPTl9NSU5PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMF9fRFNDX1ZFUlNJT05fTUFKT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzBfX1BQU19JREVOVElGSUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcwX19MSU5FQlVGX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzBfX0JJVFNfUEVSX0NPTVBPTkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMF9fRFNDX1ZFUlNJT05fTUlOT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMF9fRFNDX1ZFUlNJT05fTUFKT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMF9fUFBTX0lERU5USUZJRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMF9fTElORUJVRl9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMF9fQklUU19QRVJfQ09NUE9ORU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFNDQzJfRFNDQ19QUFNfQ09ORklHMQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19CSVRTX1BFUl9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMV9fVkJSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzFfX1NJTVBMRV80MjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19DT05WRVJUX1JHQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMV9fQkxPQ0tfUFJFRF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzFfX05BVElWRV80MjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19OQVRJVkVfNDIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMV9fQ0hVTktfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19CSVRTX1BFUl9QSVhFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19WQlJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19TSU1QTEVfNDIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19DT05WRVJUX1JHQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19CTE9DS19QUkVEX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19OQVRJVkVfNDIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19OQVRJVkVfNDIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxX19DSFVOS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMl9EU0NDX1BQU19DT05GSUcyCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzJfX1BJQ19XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcyX19QSUNfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzJfX1BJQ19XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzJfX1BJQ19IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzMKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHM19fU0xJQ0VfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzNfX1NMSUNFX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHM19fU0xJQ0VfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHM19fU0xJQ0VfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzJfRFNDQ19QUFNfQ09ORklHNAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc0X19JTklUSUFMX1hNSVRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHNF9fSU5JVElBTF9ERUNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc0X19JTklUSUFMX1hNSVRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc0X19JTklUSUFMX0RFQ19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMl9EU0NDX1BQU19DT05GSUc1CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzVfX0lOSVRJQUxfU0NBTEVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc1X19TQ0FMRV9JTkNSRU1FTlRfSU5URVJWQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzVfX0lOSVRJQUxfU0NBTEVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzVfX1NDQUxFX0lOQ1JFTUVOVF9JTlRFUlZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzYKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHNl9fU0NBTEVfREVDUkVNRU5UX0lOVEVSVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzZfX0ZJUlNUX0xJTkVfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHNl9fU0VDT05EX0xJTkVfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc2X19TQ0FMRV9ERUNSRU1FTlRfSU5URVJWQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc2X19GSVJTVF9MSU5FX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc2X19TRUNPTkRfTElORV9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorLy9EU0NDMl9EU0NDX1BQU19DT05GSUc3CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzdfX05GTF9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc3X19TTElDRV9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzdfX05GTF9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzdfX1NMSUNFX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzgKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHOF9fTlNMX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzhfX1NFQ09ORF9MSU5FX09GRlNFVF9BREpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHOF9fTlNMX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHOF9fU0VDT05EX0xJTkVfT0ZGU0VUX0FESl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzJfRFNDQ19QUFNfQ09ORklHOQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc5X19JTklUSUFMX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHOV9fRklOQUxfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc5X19JTklUSUFMX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUc5X19GSU5BTF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMl9EU0NDX1BQU19DT05GSUcxMAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMF9fRkxBVE5FU1NfTUlOX1FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTBfX0ZMQVRORVNTX01BWF9RUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzEwX19SQ19NT0RFTF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTBfX0ZMQVRORVNTX01JTl9RUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTBfX0ZMQVRORVNTX01BWF9RUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTBfX1JDX01PREVMX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzJfRFNDQ19QUFNfQ09ORklHMTEKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTFfX1JDX0VER0VfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19RVUFOVF9JTkNSX0xJTUlUMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMV9fUkNfUVVBTlRfSU5DUl9MSU1JVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19UR1RfT0ZGU0VUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1RHVF9PRkZTRVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMV9fUkNfRURHRV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMV9fUkNfUVVBTlRfSU5DUl9MSU1JVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMV9fUkNfUVVBTlRfSU5DUl9MSU1JVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMV9fUkNfVEdUX09GRlNFVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMV9fUkNfVEdUX09GRlNFVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EU0NDMl9EU0NDX1BQU19DT05GSUcxMgorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EU0NDMl9EU0NDX1BQU19DT05GSUcxMworI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EU0NDMl9EU0NDX1BQU19DT05GSUcxNAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0g5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0gxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EU0NDMl9EU0NDX1BQU19DT05GSUcxNQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxNV9fUkNfQlVGX1RIUkVTSDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTVfX1JDX0JVRl9USFJFU0gxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9NSU5fUVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX01BWF9RUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfQlBHX09GRlNFVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE1X19SQ19CVUZfVEhSRVNIMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE1X19SQ19CVUZfVEhSRVNIMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9NSU5fUVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9NQVhfUVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9CUEdfT0ZGU0VUMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NSU5fUVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUFYX1FQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX0JQR19PRkZTRVQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NSU5fUVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01BWF9RUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfQlBHX09GRlNFVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NSU5fUVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NQVhfUVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9CUEdfT0ZGU0VUMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NSU5fUVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NQVhfUVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9CUEdfT0ZGU0VUMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE3CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NSU5fUVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUFYX1FQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX0JQR19PRkZTRVQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NSU5fUVA0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01BWF9RUDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfQlBHX09GRlNFVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NSU5fUVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NQVhfUVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9CUEdfT0ZGU0VUM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NSU5fUVA0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NQVhfUVA0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9CUEdfT0ZGU0VUNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE4CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NSU5fUVA1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUFYX1FQNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX0JQR19PRkZTRVQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NSU5fUVA2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01BWF9RUDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfQlBHX09GRlNFVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NSU5fUVA1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NQVhfUVA1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9CUEdfT0ZGU0VUNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NSU5fUVA2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NQVhfUVA2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9CUEdfT0ZGU0VUNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5CisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NSU5fUVA3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUFYX1FQN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX0JQR19PRkZTRVQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NSU5fUVA4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01BWF9RUDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfQlBHX09GRlNFVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NSU5fUVA3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NQVhfUVA3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9CUEdfT0ZGU0VUN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NSU5fUVA4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NQVhfUVA4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9CUEdfT0ZGU0VUOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NSU5fUVA5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUFYX1FQOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX0JQR19PRkZTRVQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NSU5fUVAxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01BWF9RUDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfQlBHX09GRlNFVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NSU5fUVA5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NQVhfUVA5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9CUEdfT0ZGU0VUOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NSU5fUVAxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NQVhfUVAxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9CUEdfT0ZGU0VUMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIxCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NSU5fUVAxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUFYX1FQMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX0JQR19PRkZTRVQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NSU5fUVAxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01BWF9RUDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfQlBHX09GRlNFVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NSU5fUVAxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NQVhfUVAxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9CUEdfT0ZGU0VUMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NSU5fUVAxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NQVhfUVAxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9CUEdfT0ZGU0VUMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NSU5fUVAxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUFYX1FQMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX0JQR19PRkZTRVQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NSU5fUVAxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzJfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01BWF9RUDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDMl9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfQlBHX09GRlNFVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NSU5fUVAxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NQVhfUVAxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9CUEdfT0ZGU0VUMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NSU5fUVAxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NQVhfUVAxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9CUEdfT0ZGU0VUMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0MyX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0wKKyNkZWZpbmUgRFNDQzJfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19ERUZBVUxUX01FTV9MT1dfUE9XRVJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzJfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERTQ0MyX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzJfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX0RFRkFVTFRfTUVNX0xPV19QT1dFUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEU0NDMl9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9EU0NDMl9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSCisjZGVmaW5lIERTQ0MyX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDMl9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSCisjZGVmaW5lIERTQ0MyX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDMl9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUgorI2RlZmluZSBEU0NDMl9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzJfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVIKKyNkZWZpbmUgRFNDQzJfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0MyX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSCisjZGVmaW5lIERTQ0MyX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDMl9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUgorI2RlZmluZSBEU0NDMl9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzJfRFNDQ19NQVhfQUJTX0VSUk9SMAorI2RlZmluZSBEU0NDMl9EU0NDX01BWF9BQlNfRVJST1IwX19EU0NDX1JfWV9NQVhfQUJTX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19NQVhfQUJTX0VSUk9SMF9fRFNDQ19HX0NCX01BWF9BQlNfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDMl9EU0NDX01BWF9BQlNfRVJST1IwX19EU0NDX1JfWV9NQVhfQUJTX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDMl9EU0NDX01BWF9BQlNfRVJST1IwX19EU0NDX0dfQ0JfTUFYX0FCU19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDMl9EU0NDX01BWF9BQlNfRVJST1IxCisjZGVmaW5lIERTQ0MyX0RTQ0NfTUFYX0FCU19FUlJPUjFfX0RTQ0NfQl9DUl9NQVhfQUJTX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX01BWF9BQlNfRVJST1IxX19EU0NDX0JfQ1JfTUFYX0FCU19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9EU0NDMl9EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzJfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RTQ0MyX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDMl9EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vRFNDQzJfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EU0NDMl9EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzJfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RTQ0MyX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgMHgwMDAzRkZGRkwKKy8vRFNDQzJfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzJfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAweDAwMDNGRkZGTAorLy9EU0NDMl9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDMl9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAweDAKKyNkZWZpbmUgRFNDQzJfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgIDB4MDAwM0ZGRkZMCisvL0RTQ0MyX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MyX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgIDB4MAorI2RlZmluZSBEU0NDMl9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgMHgwMDAzRkZGRkwKKy8vRFNDQzJfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEUKKyNkZWZpbmUgRFNDQzJfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMwX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MyX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMV9ST1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDMl9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzJfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MyX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTM19ST1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzJfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMwX1JPVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzJfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMxX1JPVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMyX1JPVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzJfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMzX1JPVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2MyX2Rpc3BkZWNfZHNjX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9TVEFURQorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGQ0wKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkMwMEwKKy8vRENfUEVSRk1PTjIxX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX1BFUkZNT04yMV9QRVJGTU9OX0hJCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDX1BFUkZNT04yMV9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04yMV9QRVJGTU9OX0xPVworI2RlZmluZSBEQ19QRVJGTU9OMjFfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIxX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2MzX2Rpc3BkZWNfZHNjX3RvcF9kaXNwZGVjCisvL0RTQ19UT1AzX0RTQ19UT1BfQ09OVFJPTAorI2RlZmluZSBEU0NfVE9QM19EU0NfVE9QX0NPTlRST0xfX0RTQ19DTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDX1RPUDNfRFNDX1RPUF9DT05UUk9MX19EU0NfRElTUENMS19SX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ19UT1AzX0RTQ19UT1BfQ09OVFJPTF9fRFNDX0RTQ0NMS19SX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NfVE9QM19EU0NfVE9QX0NPTlRST0xfX0RTQ19DTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NfVE9QM19EU0NfVE9QX0NPTlRST0xfX0RTQ19ESVNQQ0xLX1JfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NfVE9QM19EU0NfVE9QX0NPTlRST0xfX0RTQ19EU0NDTEtfUl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9EU0NfVE9QM19EU0NfREVCVUdfQ09OVFJPTAorI2RlZmluZSBEU0NfVE9QM19EU0NfREVCVUdfQ09OVFJPTF9fRFNDX0RCR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDX1RPUDNfRFNDX0RFQlVHX0NPTlRST0xfX0RTQ19URVNUX0NMT0NLX01VWF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ19UT1AzX0RTQ19ERUJVR19DT05UUk9MX19EU0NfREJHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ19UT1AzX0RTQ19ERUJVR19DT05UUk9MX19EU0NfVEVTVF9DTE9DS19NVVhfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjM19kaXNwZGVjX2RzY2NpZl9kaXNwZGVjCisvL0RTQ0NJRjNfRFNDQ0lGX0NPTkZJRzAKKyNkZWZpbmUgRFNDQ0lGM19EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19SRUNPVkVSWV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0NJRjNfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDSUYzX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX09DQ1VSUkVEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQ0lGM19EU0NDSUZfQ09ORklHMF9fSU5QVVRfUElYRUxfRk9STUFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0NJRjNfRFNDQ0lGX0NPTkZJRzBfX0JJVFNfUEVSX0NPTVBPTkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQ0lGM19EU0NDSUZfQ09ORklHMF9fRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDSUYzX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX1JFQ09WRVJZX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NDSUYzX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NDSUYzX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX09DQ1VSUkVEX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NDSUYzX0RTQ0NJRl9DT05GSUcwX19JTlBVVF9QSVhFTF9GT1JNQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEU0NDSUYzX0RTQ0NJRl9DT05GSUcwX19CSVRTX1BFUl9DT01QT05FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEU0NDSUYzX0RTQ0NJRl9DT05GSUcwX19ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EU0NDSUYzX0RTQ0NJRl9DT05GSUcxCisjZGVmaW5lIERTQ0NJRjNfRFNDQ0lGX0NPTkZJRzFfX1BJQ19XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDSUYzX0RTQ0NJRl9DT05GSUcxX19QSUNfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0NJRjNfRFNDQ0lGX0NPTkZJRzFfX1BJQ19XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0NJRjNfRFNDQ0lGX0NPTkZJRzFfX1BJQ19IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjM19kaXNwZGVjX2RzY2NfZGlzcGRlYworLy9EU0NDM19EU0NDX0NPTkZJRzAKKyNkZWZpbmUgRFNDQzNfRFNDQ19DT05GSUcwX19JQ0hfUkVTRVRfQVRfRU5EX09GX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfQ09ORklHMF9fTlVNQkVSX09GX1NMSUNFU19QRVJfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDM19EU0NDX0NPTkZJRzBfX0FMVEVSTkFURV9JQ0hfRU5DT0RJTkdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzNfRFNDQ19DT05GSUcwX19OVU1CRVJfT0ZfU0xJQ0VTX0lOX1ZFUlRJQ0FMX0RJUkVDVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDM19EU0NDX0NPTkZJRzBfX0lDSF9SRVNFVF9BVF9FTkRfT0ZfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEU0NDM19EU0NDX0NPTkZJRzBfX05VTUJFUl9PRl9TTElDRVNfUEVSX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEU0NDM19EU0NDX0NPTkZJRzBfX0FMVEVSTkFURV9JQ0hfRU5DT0RJTkdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NDM19EU0NDX0NPTkZJRzBfX05VTUJFUl9PRl9TTElDRVNfSU5fVkVSVElDQUxfRElSRUNUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDM19EU0NDX0NPTkZJRzEKKyNkZWZpbmUgRFNDQzNfRFNDQ19DT05GSUcxX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUxfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfQ09ORklHMV9fRFNDQ19ESVNBQkxFX0lDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzNfRFNDQ19DT05GSUcxX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUxfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19DT05GSUcxX19EU0NDX0RJU0FCTEVfSUNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFNDQzNfRFNDQ19TVEFUVVMKKyNkZWZpbmUgRFNDQzNfRFNDQ19TVEFUVVNfX0RTQ0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfU1RBVFVTX19EU0NDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEU0NDM19EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfVU5ERVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX1VOREVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9VTkRFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEU0NDM19EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfVU5ERVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDBfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwxX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgIDB4OQorI2RlZmluZSBEU0NDM19EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMl9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDNfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgMHhiCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEU0NDM19EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEU0NDM19EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEU0NDM19EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMF9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAweDE4CisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwxX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgRFNDQzNfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDJfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgMHgxYQorI2RlZmluZSBEU0NDM19EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMM19PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAweDFiCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9VTkRFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9VTkRFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9VTkRFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19VTkRFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwwX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwxX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwyX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwzX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwwX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwxX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwyX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwzX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgIDB4MDgwMDAwMDBMCisvL0RTQ0MzX0RTQ0NfUFBTX0NPTkZJRzAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMF9fRFNDX1ZFUlNJT05fTUlOT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzBfX0RTQ19WRVJTSU9OX01BSk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcwX19QUFNfSURFTlRJRklFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMF9fTElORUJVRl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcwX19CSVRTX1BFUl9DT01QT05FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzBfX0RTQ19WRVJTSU9OX01JTk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzBfX0RTQ19WRVJTSU9OX01BSk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzBfX1BQU19JREVOVElGSUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzBfX0xJTkVCVUZfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzBfX0JJVFNfUEVSX0NPTVBPTkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fQklUU19QRVJfUElYRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzFfX1ZCUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxX19TSU1QTEVfNDIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fQ09OVkVSVF9SR0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzFfX0JMT0NLX1BSRURfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxX19OQVRJVkVfNDIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fTkFUSVZFXzQyMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzFfX0NIVU5LX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fQklUU19QRVJfUElYRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fVkJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fU0lNUExFXzQyMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fQ09OVkVSVF9SR0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fQkxPQ0tfUFJFRF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fTkFUSVZFXzQyMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fTkFUSVZFXzQyMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMV9fQ0hVTktfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzNfRFNDQ19QUFNfQ09ORklHMgorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyX19QSUNfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMl9fUElDX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyX19QSUNfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyX19QSUNfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUczCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzNfX1NMSUNFX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUczX19TTElDRV9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzNfX1NMSUNFX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzNfX1NMSUNFX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MzX0RTQ0NfUFBTX0NPTkZJRzQKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHNF9fSU5JVElBTF9YTUlUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzRfX0lOSVRJQUxfREVDX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHNF9fSU5JVElBTF9YTUlUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHNF9fSU5JVElBTF9ERUNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzNfRFNDQ19QUFNfQ09ORklHNQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUc1X19JTklUSUFMX1NDQUxFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHNV9fU0NBTEVfSU5DUkVNRU5UX0lOVEVSVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUc1X19JTklUSUFMX1NDQUxFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUc1X19TQ0FMRV9JTkNSRU1FTlRfSU5URVJWQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUc2CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzZfX1NDQUxFX0RFQ1JFTUVOVF9JTlRFUlZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUc2X19GSVJTVF9MSU5FX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzZfX1NFQ09ORF9MSU5FX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHNl9fU0NBTEVfREVDUkVNRU5UX0lOVEVSVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHNl9fRklSU1RfTElORV9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHNl9fU0VDT05EX0xJTkVfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKy8vRFNDQzNfRFNDQ19QUFNfQ09ORklHNworI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUc3X19ORkxfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHN19fU0xJQ0VfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUc3X19ORkxfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUc3X19TTElDRV9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUc4CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzhfX05TTF9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUc4X19TRUNPTkRfTElORV9PRkZTRVRfQURKX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzhfX05TTF9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzhfX1NFQ09ORF9MSU5FX09GRlNFVF9BREpfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MzX0RTQ0NfUFBTX0NPTkZJRzkKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHOV9fSU5JVElBTF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzlfX0ZJTkFMX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHOV9fSU5JVElBTF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHOV9fRklOQUxfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzNfRFNDQ19QUFNfQ09ORklHMTAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTBfX0ZMQVRORVNTX01JTl9RUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEwX19GTEFUTkVTU19NQVhfUVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxMF9fUkNfTU9ERUxfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEwX19GTEFUTkVTU19NSU5fUVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEwX19GTEFUTkVTU19NQVhfUVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEwX19SQ19NT0RFTF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0MzX0RTQ0NfUFBTX0NPTkZJRzExCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19FREdFX0ZBQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxMV9fUkNfUVVBTlRfSU5DUl9MSU1JVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1FVQU5UX0lOQ1JfTElNSVQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxMV9fUkNfVEdUX09GRlNFVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzExX19SQ19UR1RfT0ZGU0VUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTFfX1JDX0VER0VfRkFDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1FVQU5UX0lOQ1JfTElNSVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1FVQU5UX0lOQ1JfTElNSVQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1RHVF9PRkZTRVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1RHVF9PRkZTRVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFNDQzNfRFNDQ19QUFNfQ09ORklHMTIKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFNDQzNfRFNDQ19QUFNfQ09ORklHMTMKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNIN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFNDQzNfRFNDQ19QUFNfQ09ORklHMTQKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0g4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0g4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0g5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0gxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0gxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vRFNDQzNfRFNDQ19QUFNfQ09ORklHMTUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTVfX1JDX0JVRl9USFJFU0gxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE1X19SQ19CVUZfVEhSRVNIMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfTUlOX1FQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9NQVhfUVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX0JQR19PRkZTRVQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNV9fUkNfQlVGX1RIUkVTSDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNV9fUkNfQlVGX1RIUkVTSDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfTUlOX1FQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfTUFYX1FQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfQlBHX09GRlNFVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUcxNgorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUlOX1FQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01BWF9RUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9CUEdfT0ZGU0VUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUlOX1FQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NQVhfUVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX0JQR19PRkZTRVQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUlOX1FQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUFYX1FQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfQlBHX09GRlNFVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUlOX1FQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUFYX1FQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfQlBHX09GRlNFVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUcxNworI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUlOX1FQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01BWF9RUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9CUEdfT0ZGU0VUM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUlOX1FQNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NQVhfUVA0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX0JQR19PRkZTRVQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUlOX1FQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUFYX1FQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfQlBHX09GRlNFVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUlOX1FQNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUFYX1FQNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfQlBHX09GRlNFVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUcxOAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUlOX1FQNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01BWF9RUDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9CUEdfT0ZGU0VUNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUlOX1FQNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NQVhfUVA2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX0JQR19PRkZTRVQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUlOX1FQNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUFYX1FQNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfQlBHX09GRlNFVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUlOX1FQNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUFYX1FQNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfQlBHX09GRlNFVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUcxOQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUlOX1FQN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01BWF9RUDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9CUEdfT0ZGU0VUN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUlOX1FQOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NQVhfUVA4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX0JQR19PRkZTRVQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUlOX1FQN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUFYX1FQN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfQlBHX09GRlNFVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUlOX1FQOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUFYX1FQOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfQlBHX09GRlNFVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUcyMAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUlOX1FQOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01BWF9RUDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9CUEdfT0ZGU0VUOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUlOX1FQMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NQVhfUVAxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX0JQR19PRkZTRVQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUlOX1FQOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUFYX1FQOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfQlBHX09GRlNFVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUlOX1FQMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUFYX1FQMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfQlBHX09GRlNFVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUcyMQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUlOX1FQMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01BWF9RUDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9CUEdfT0ZGU0VUMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUlOX1FQMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NQVhfUVAxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX0JQR19PRkZTRVQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUlOX1FQMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUFYX1FQMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfQlBHX09GRlNFVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUlOX1FQMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUFYX1FQMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfQlBHX09GRlNFVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDM19EU0NDX1BQU19DT05GSUcyMgorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUlOX1FQMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01BWF9RUDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9CUEdfT0ZGU0VUMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUlOX1FQMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NQVhfUVAxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzNfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX0JQR19PRkZTRVQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUlOX1FQMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUFYX1FQMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfQlBHX09GRlNFVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUlOX1FQMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUFYX1FQMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEU0NDM19EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfQlBHX09GRlNFVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EU0NDM19EU0NDX01FTV9QT1dFUl9DT05UUk9MCisjZGVmaW5lIERTQ0MzX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfREVGQVVMVF9NRU1fTE9XX1BPV0VSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0MzX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEU0NDM19EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MzX0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19ERUZBVUxUX01FTV9MT1dfUE9XRVJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFNDQzNfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vRFNDQzNfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUgorI2RlZmluZSBEU0NDM19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzNfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUgorI2RlZmluZSBEU0NDM19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzNfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVIKKyNkZWZpbmUgRFNDQzNfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0MzX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSCisjZGVmaW5lIERTQ0MzX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDM19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUgorI2RlZmluZSBEU0NDM19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzNfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVIKKyNkZWZpbmUgRFNDQzNfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0MzX0RTQ0NfTUFYX0FCU19FUlJPUjAKKyNkZWZpbmUgRFNDQzNfRFNDQ19NQVhfQUJTX0VSUk9SMF9fRFNDQ19SX1lfTUFYX0FCU19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfTUFYX0FCU19FUlJPUjBfX0RTQ0NfR19DQl9NQVhfQUJTX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzNfRFNDQ19NQVhfQUJTX0VSUk9SMF9fRFNDQ19SX1lfTUFYX0FCU19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzNfRFNDQ19NQVhfQUJTX0VSUk9SMF9fRFNDQ19HX0NCX01BWF9BQlNfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzNfRFNDQ19NQVhfQUJTX0VSUk9SMQorI2RlZmluZSBEU0NDM19EU0NDX01BWF9BQlNfRVJST1IxX19EU0NDX0JfQ1JfTUFYX0FCU19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19NQVhfQUJTX0VSUk9SMV9fRFNDQ19CX0NSX01BWF9BQlNfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRFNDQzNfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EU0NDM19EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzNfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RTQ0MzX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDM19EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vRFNDQzNfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EU0NDM19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDM19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgIDB4MDAwM0ZGRkZMCisvL0RTQ0MzX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0MzX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgMHgwMDAzRkZGRkwKKy8vRFNDQzNfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzNfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgMHgwCisjZGVmaW5lIERTQ0MzX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAweDAwMDNGRkZGTAorLy9EU0NDM19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDM19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAweDAKKyNkZWZpbmUgRFNDQzNfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgIDB4MDAwM0ZGRkZMCisvL0RTQ0MzX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFCisjZGVmaW5lIERTQ0MzX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMF9ST1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDM19EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzFfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzNfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMyX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDM19EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzNfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0MzX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMF9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0MzX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMV9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMl9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0MzX0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTM19ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjM19kaXNwZGVjX2RzY19kY3BlcmZtb25fZGNfcGVyZm1vbl9kaXNwZGVjCisvL0RDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9FVkVOVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9IV19DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRPRkZfU1RBUlRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9PRkZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NPVU5URURfVkFMVUVfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVE9GRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfU1RBVEUKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQwX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQzX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ1X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9SUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkYwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NMS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZDMDBMCisvL0RDX1BFUkZNT04yMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQworI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfTE9XCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQ19QRVJGTU9OMjJfUEVSRk1PTl9ISQorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9ISV9fUEVSRk1PTl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQ19QRVJGTU9OMjJfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMjJfUEVSRk1PTl9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjIyX1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yMl9QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkY2VfZGNfZHNjNF9kaXNwZGVjX2RzY190b3BfZGlzcGRlYworLy9EU0NfVE9QNF9EU0NfVE9QX0NPTlRST0wKKyNkZWZpbmUgRFNDX1RPUDRfRFNDX1RPUF9DT05UUk9MX19EU0NfQ0xPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ19UT1A0X0RTQ19UT1BfQ09OVFJPTF9fRFNDX0RJU1BDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NfVE9QNF9EU0NfVE9QX0NPTlRST0xfX0RTQ19EU0NDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDX1RPUDRfRFNDX1RPUF9DT05UUk9MX19EU0NfQ0xPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDX1RPUDRfRFNDX1RPUF9DT05UUk9MX19EU0NfRElTUENMS19SX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDX1RPUDRfRFNDX1RPUF9DT05UUk9MX19EU0NfRFNDQ0xLX1JfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vRFNDX1RPUDRfRFNDX0RFQlVHX0NPTlRST0wKKyNkZWZpbmUgRFNDX1RPUDRfRFNDX0RFQlVHX0NPTlRST0xfX0RTQ19EQkdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ19UT1A0X0RTQ19ERUJVR19DT05UUk9MX19EU0NfVEVTVF9DTE9DS19NVVhfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NfVE9QNF9EU0NfREVCVUdfQ09OVFJPTF9fRFNDX0RCR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NfVE9QNF9EU0NfREVCVUdfQ09OVFJPTF9fRFNDX1RFU1RfQ0xPQ0tfTVVYX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzRfZGlzcGRlY19kc2NjaWZfZGlzcGRlYworLy9EU0NDSUY0X0RTQ0NJRl9DT05GSUcwCisjZGVmaW5lIERTQ0NJRjRfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfUkVDT1ZFUllfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDSUY0X0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQ0lGNF9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19PQ0NVUlJFRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0NJRjRfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX1BJWEVMX0ZPUk1BVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NDSUY0X0RTQ0NJRl9DT05GSUcwX19CSVRTX1BFUl9DT01QT05FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0NJRjRfRFNDQ0lGX0NPTkZJRzBfX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQ0lGNF9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19SRUNPVkVSWV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDQ0lGNF9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDQ0lGNF9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19PQ0NVUlJFRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFNDQ0lGNF9EU0NDSUZfQ09ORklHMF9fSU5QVVRfUElYRUxfRk9STUFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRFNDQ0lGNF9EU0NDSUZfQ09ORklHMF9fQklUU19QRVJfQ09NUE9ORU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgRFNDQ0lGNF9EU0NDSUZfQ09ORklHMF9fRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vRFNDQ0lGNF9EU0NDSUZfQ09ORklHMQorI2RlZmluZSBEU0NDSUY0X0RTQ0NJRl9DT05GSUcxX19QSUNfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQ0lGNF9EU0NDSUZfQ09ORklHMV9fUElDX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDSUY0X0RTQ0NJRl9DT05GSUcxX19QSUNfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDSUY0X0RTQ0NJRl9DT05GSUcxX19QSUNfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzRfZGlzcGRlY19kc2NjX2Rpc3BkZWMKKy8vRFNDQzRfRFNDQ19DT05GSUcwCisjZGVmaW5lIERTQ0M0X0RTQ0NfQ09ORklHMF9fSUNIX1JFU0VUX0FUX0VORF9PRl9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX0NPTkZJRzBfX05VTUJFUl9PRl9TTElDRVNfUEVSX0xJTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQzRfRFNDQ19DT05GSUcwX19BTFRFUk5BVEVfSUNIX0VOQ09ESU5HX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0M0X0RTQ0NfQ09ORklHMF9fTlVNQkVSX09GX1NMSUNFU19JTl9WRVJUSUNBTF9ESVJFQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzRfRFNDQ19DT05GSUcwX19JQ0hfUkVTRVRfQVRfRU5EX09GX0xJTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19DT05GSUcwX19OVU1CRVJfT0ZfU0xJQ0VTX1BFUl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19DT05GSUcwX19BTFRFUk5BVEVfSUNIX0VOQ09ESU5HX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19DT05GSUcwX19OVU1CRVJfT0ZfU0xJQ0VTX0lOX1ZFUlRJQ0FMX0RJUkVDVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzRfRFNDQ19DT05GSUcxCisjZGVmaW5lIERTQ0M0X0RTQ0NfQ09ORklHMV9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX0NPTkZJRzFfX0RTQ0NfRElTQUJMRV9JQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0M0X0RTQ0NfQ09ORklHMV9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfQ09ORklHMV9fRFNDQ19ESVNBQkxFX0lDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RTQ0M0X0RTQ0NfU1RBVFVTCisjZGVmaW5lIERTQ0M0X0RTQ0NfU1RBVFVTX19EU0NDX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1NUQVRVU19fRFNDQ19ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVUworI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERTQ0M0X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFNDQzRfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX1VOREVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0M0X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9VTkRFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfVU5ERVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRFNDQzRfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX1VOREVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERTQ0M0X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwwX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMV9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAweDkKKyNkZWZpbmUgRFNDQzRfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDJfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0M0X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwzX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgIDB4YgorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M0X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFNDQzRfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERTQ0M0X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFNDQzRfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERTQ0M0X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRFNDQzRfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDBfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgMHgxOAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMV9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAweDE5CisjZGVmaW5lIERTQ0M0X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwyX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgIDB4MWEKKyNkZWZpbmUgRFNDQzRfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDNfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgMHgxYgorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfVU5ERVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfVU5ERVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfVU5ERVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfVU5ERVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMF9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMV9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMl9PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMM19PVkVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMF9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMV9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMl9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMM19PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAweDA4MDAwMDAwTAorLy9EU0NDNF9EU0NDX1BQU19DT05GSUcwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzBfX0RTQ19WRVJTSU9OX01JTk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcwX19EU0NfVkVSU0lPTl9NQUpPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMF9fUFBTX0lERU5USUZJRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzBfX0xJTkVCVUZfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMF9fQklUU19QRVJfQ09NUE9ORU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcwX19EU0NfVkVSU0lPTl9NSU5PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcwX19EU0NfVkVSU0lPTl9NQUpPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcwX19QUFNfSURFTlRJRklFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcwX19MSU5FQlVGX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcwX19CSVRTX1BFUl9DT01QT05FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EU0NDNF9EU0NDX1BQU19DT05GSUcxCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX0JJVFNfUEVSX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxX19WQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMV9fU0lNUExFXzQyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX0NPTlZFUlRfUkdCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxX19CTE9DS19QUkVEX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMV9fTkFUSVZFXzQyMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX05BVElWRV80MjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxX19DSFVOS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX0JJVFNfUEVSX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX1ZCUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX1NJTVBMRV80MjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX0NPTlZFUlRfUkdCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX0JMT0NLX1BSRURfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX05BVElWRV80MjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX05BVElWRV80MjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzFfX0NIVU5LX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0M0X0RTQ0NfUFBTX0NPTkZJRzIKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMl9fUElDX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzJfX1BJQ19IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMl9fUElDX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMl9fUElDX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHMworI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUczX19TTElDRV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHM19fU0xJQ0VfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUczX19TTElDRV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUczX19TTElDRV9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDNF9EU0NDX1BQU19DT05GSUc0CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzRfX0lOSVRJQUxfWE1JVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUc0X19JTklUSUFMX0RFQ19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzRfX0lOSVRJQUxfWE1JVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzRfX0lOSVRJQUxfREVDX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0M0X0RTQ0NfUFBTX0NPTkZJRzUKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHNV9fSU5JVElBTF9TQ0FMRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzVfX1NDQUxFX0lOQ1JFTUVOVF9JTlRFUlZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHNV9fSU5JVElBTF9TQ0FMRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHNV9fU0NBTEVfSU5DUkVNRU5UX0lOVEVSVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHNgorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUc2X19TQ0FMRV9ERUNSRU1FTlRfSU5URVJWQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHNl9fRklSU1RfTElORV9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUc2X19TRUNPTkRfTElORV9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzZfX1NDQUxFX0RFQ1JFTUVOVF9JTlRFUlZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzZfX0ZJUlNUX0xJTkVfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzZfX1NFQ09ORF9MSU5FX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL0RTQ0M0X0RTQ0NfUFBTX0NPTkZJRzcKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHN19fTkZMX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzdfX1NMSUNFX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHN19fTkZMX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHN19fU0xJQ0VfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHOAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUc4X19OU0xfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHOF9fU0VDT05EX0xJTkVfT0ZGU0VUX0FESl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUc4X19OU0xfQlBHX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUc4X19TRUNPTkRfTElORV9PRkZTRVRfQURKX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDNF9EU0NDX1BQU19DT05GSUc5CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzlfX0lOSVRJQUxfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUc5X19GSU5BTF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzlfX0lOSVRJQUxfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzlfX0ZJTkFMX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEwX19GTEFUTkVTU19NSU5fUVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxMF9fRkxBVE5FU1NfTUFYX1FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTBfX1JDX01PREVMX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxMF9fRkxBVE5FU1NfTUlOX1FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxMF9fRkxBVE5FU1NfTUFYX1FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxMF9fUkNfTU9ERUxfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDNF9EU0NDX1BQU19DT05GSUcxMQorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxMV9fUkNfRURHRV9GQUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1FVQU5UX0lOQ1JfTElNSVQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzExX19SQ19RVUFOVF9JTkNSX0xJTUlUMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1RHVF9PRkZTRVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxMV9fUkNfVEdUX09GRlNFVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzExX19SQ19FREdFX0ZBQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzExX19SQ19RVUFOVF9JTkNSX0xJTUlUMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzExX19SQ19RVUFOVF9JTkNSX0xJTUlUMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzExX19SQ19UR1RfT0ZGU0VUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzExX19SQ19UR1RfT0ZGU0VUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEyCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEzCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNIN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE0CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0gxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE1CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE1X19SQ19CVUZfVEhSRVNIMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxNV9fUkNfQlVGX1RIUkVTSDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX01JTl9RUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfTUFYX1FQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9CUEdfT0ZGU0VUMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTVfX1JDX0JVRl9USFJFU0gxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTVfX1JDX0JVRl9USFJFU0gxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX01JTl9RUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX01BWF9RUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX0JQR19PRkZTRVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHMTYKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01JTl9RUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NQVhfUVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfQlBHX09GRlNFVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01JTl9RUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUFYX1FQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9CUEdfT0ZGU0VUMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01JTl9RUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01BWF9RUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX0JQR19PRkZTRVQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01JTl9RUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01BWF9RUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX0JQR19PRkZTRVQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHMTcKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01JTl9RUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NQVhfUVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfQlBHX09GRlNFVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01JTl9RUDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUFYX1FQNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9CUEdfT0ZGU0VUNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01JTl9RUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01BWF9RUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX0JQR19PRkZTRVQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01JTl9RUDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01BWF9RUDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX0JQR19PRkZTRVQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHMTgKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01JTl9RUDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NQVhfUVA1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfQlBHX09GRlNFVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01JTl9RUDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUFYX1FQNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9CUEdfT0ZGU0VUNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01JTl9RUDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01BWF9RUDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX0JQR19PRkZTRVQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01JTl9RUDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01BWF9RUDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX0JQR19PRkZTRVQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHMTkKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01JTl9RUDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NQVhfUVA3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfQlBHX09GRlNFVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01JTl9RUDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUFYX1FQOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9CUEdfT0ZGU0VUOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01JTl9RUDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01BWF9RUDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX0JQR19PRkZTRVQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01JTl9RUDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01BWF9RUDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX0JQR19PRkZTRVQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHMjAKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01JTl9RUDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NQVhfUVA5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfQlBHX09GRlNFVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01JTl9RUDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUFYX1FQMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9CUEdfT0ZGU0VUMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01JTl9RUDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01BWF9RUDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX0JQR19PRkZTRVQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01JTl9RUDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01BWF9RUDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX0JQR19PRkZTRVQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHMjEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01JTl9RUDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NQVhfUVAxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfQlBHX09GRlNFVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01JTl9RUDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUFYX1FQMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9CUEdfT0ZGU0VUMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01JTl9RUDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01BWF9RUDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX0JQR19PRkZTRVQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01JTl9RUDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01BWF9RUDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX0JQR19PRkZTRVQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzRfRFNDQ19QUFNfQ09ORklHMjIKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01JTl9RUDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NQVhfUVAxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfQlBHX09GRlNFVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01JTl9RUDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNF9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUFYX1FQMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERTQ0M0X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9CUEdfT0ZGU0VUMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01JTl9RUDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01BWF9RUDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX0JQR19PRkZTRVQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01JTl9RUDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01BWF9RUDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgRFNDQzRfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX0JQR19PRkZTRVQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vRFNDQzRfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTAorI2RlZmluZSBEU0NDNF9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX0RFRkFVTFRfTUVNX0xPV19QT1dFUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0M0X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDNF9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFNDQzRfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDNF9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfREVGQVVMVF9NRU1fTE9XX1BPV0VSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL0RTQ0M0X0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVIKKyNkZWZpbmUgRFNDQzRfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9MT1dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0M0X0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVIKKyNkZWZpbmUgRFNDQzRfRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19SX1lfU1FVQVJFRF9FUlJPUl9VUFBFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0M0X0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSCisjZGVmaW5lIERTQ0M0X0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDNF9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUgorI2RlZmluZSBEU0NDNF9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzRfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVIKKyNkZWZpbmUgRFNDQzRfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0M0X0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSCisjZGVmaW5lIERTQ0M0X0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDNF9EU0NDX01BWF9BQlNfRVJST1IwCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUFYX0FCU19FUlJPUjBfX0RTQ0NfUl9ZX01BWF9BQlNfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX01BWF9BQlNfRVJST1IwX19EU0NDX0dfQ0JfTUFYX0FCU19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUFYX0FCU19FUlJPUjBfX0RTQ0NfUl9ZX01BWF9BQlNfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUFYX0FCU19FUlJPUjBfX0RTQ0NfR19DQl9NQVhfQUJTX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0M0X0RTQ0NfTUFYX0FCU19FUlJPUjEKKyNkZWZpbmUgRFNDQzRfRFNDQ19NQVhfQUJTX0VSUk9SMV9fRFNDQ19CX0NSX01BWF9BQlNfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfTUFYX0FCU19FUlJPUjFfX0RTQ0NfQl9DUl9NQVhfQUJTX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0RTQ0M0X0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDNF9EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vRFNDQzRfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EU0NDNF9EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzRfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RTQ0M0X0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDNF9EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vRFNDQzRfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzRfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAweDAwMDNGRkZGTAorLy9EU0NDNF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDNF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgIDB4MDAwM0ZGRkZMCisvL0RTQ0M0X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0M0X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgIDB4MAorI2RlZmluZSBEU0NDNF9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgMHgwMDAzRkZGRkwKKy8vRFNDQzRfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzRfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgMHgwCisjZGVmaW5lIERTQ0M0X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAweDAwMDNGRkZGTAorLy9EU0NDNF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURQorI2RlZmluZSBEU0NDNF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzBfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzRfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMxX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0M0X0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMl9ST1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzRfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMzX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDNF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzBfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEU0NDNF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzFfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEU0NDNF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzJfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDNF9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzNfUk9UQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzRfZGlzcGRlY19kc2NfZGNwZXJmbW9uX2RjX3BlcmZtb25fZGlzcGRlYworLy9EQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SRVNUQVJUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfRVZFTlRfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ1ZBTFVFX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSFdfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUlVORU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UT0ZGX1NUQVJUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfT0ZGX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQ05UTF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9EQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTDIKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DT1VOVEVEX1ZBTFVFX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRPRkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0YwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9DTlRMMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX1NUQVRFCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQxX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ0X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ3X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UM19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL0RDX1BFUkZNT04yM19QRVJGTU9OX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVExfX1BFUkZNT05fUlBUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0FORF9PUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RDX1BFUkZNT04yM19QRVJGTU9OX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX0NOVE9GRl9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RPUF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTEtfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUQVJUX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGQzAwTAorLy9EQ19QRVJGTU9OMjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0MKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDBfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDZfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQxX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ0X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ3X0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGTU9OX0NWQUxVRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0xPVworI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9DVkFMVUVfTE9XX19QRVJGTU9OX0NWQUxVRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENfUEVSRk1PTjIzX1BFUkZNT05fSEkKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fSElfX1BFUkZNT05fSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fSElfX1BFUkZNT05fSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjIzX1BFUkZNT05fSElfX1BFUkZNT05fUkVBRF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjIzX1BFUkZNT05fTE9XCisjZGVmaW5lIERDX1BFUkZNT04yM19QRVJGTU9OX0xPV19fUEVSRk1PTl9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjNfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RzYzVfZGlzcGRlY19kc2NfdG9wX2Rpc3BkZWMKKy8vRFNDX1RPUDVfRFNDX1RPUF9DT05UUk9MCisjZGVmaW5lIERTQ19UT1A1X0RTQ19UT1BfQ09OVFJPTF9fRFNDX0NMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NfVE9QNV9EU0NfVE9QX0NPTlRST0xfX0RTQ19ESVNQQ0xLX1JfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDX1RPUDVfRFNDX1RPUF9DT05UUk9MX19EU0NfRFNDQ0xLX1JfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ19UT1A1X0RTQ19UT1BfQ09OVFJPTF9fRFNDX0NMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ19UT1A1X0RTQ19UT1BfQ09OVFJPTF9fRFNDX0RJU1BDTEtfUl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERTQ19UT1A1X0RTQ19UT1BfQ09OVFJPTF9fRFNDX0RTQ0NMS19SX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0RTQ19UT1A1X0RTQ19ERUJVR19DT05UUk9MCisjZGVmaW5lIERTQ19UT1A1X0RTQ19ERUJVR19DT05UUk9MX19EU0NfREJHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NfVE9QNV9EU0NfREVCVUdfQ09OVFJPTF9fRFNDX1RFU1RfQ0xPQ0tfTVVYX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFNDX1RPUDVfRFNDX0RFQlVHX0NPTlRST0xfX0RTQ19EQkdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDX1RPUDVfRFNDX0RFQlVHX0NPTlRST0xfX0RTQ19URVNUX0NMT0NLX01VWF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2M1X2Rpc3BkZWNfZHNjY2lmX2Rpc3BkZWMKKy8vRFNDQ0lGNV9EU0NDSUZfQ09ORklHMAorI2RlZmluZSBEU0NDSUY1X0RTQ0NJRl9DT05GSUcwX19JTlBVVF9JTlRFUkZBQ0VfVU5ERVJGTE9XX1JFQ09WRVJZX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQ0lGNV9EU0NDSUZfQ09ORklHMF9fSU5QVVRfSU5URVJGQUNFX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0NJRjVfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfT0NDVVJSRURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDSUY1X0RTQ0NJRl9DT05GSUcwX19JTlBVVF9QSVhFTF9GT1JNQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDQ0lGNV9EU0NDSUZfQ09ORklHMF9fQklUU19QRVJfQ09NUE9ORU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDSUY1X0RTQ0NJRl9DT05GSUcwX19ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0NJRjVfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfUkVDT1ZFUllfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERTQ0NJRjVfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERTQ0NJRjVfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX0lOVEVSRkFDRV9VTkRFUkZMT1dfT0NDVVJSRURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0NJRjVfRFNDQ0lGX0NPTkZJRzBfX0lOUFVUX1BJWEVMX0ZPUk1BVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERTQ0NJRjVfRFNDQ0lGX0NPTkZJRzBfX0JJVFNfUEVSX0NPTVBPTkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERTQ0NJRjVfRFNDQ0lGX0NPTkZJRzBfX0RPVUJMRV9CVUZGRVJfUkVHX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0RTQ0NJRjVfRFNDQ0lGX0NPTkZJRzEKKyNkZWZpbmUgRFNDQ0lGNV9EU0NDSUZfQ09ORklHMV9fUElDX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0NJRjVfRFNDQ0lGX0NPTkZJRzFfX1BJQ19IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQ0lGNV9EU0NDSUZfQ09ORklHMV9fUElDX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQ0lGNV9EU0NDSUZfQ09ORklHMV9fUElDX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2M1X2Rpc3BkZWNfZHNjY19kaXNwZGVjCisvL0RTQ0M1X0RTQ0NfQ09ORklHMAorI2RlZmluZSBEU0NDNV9EU0NDX0NPTkZJRzBfX0lDSF9SRVNFVF9BVF9FTkRfT0ZfTElORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19DT05GSUcwX19OVU1CRVJfT0ZfU0xJQ0VTX1BFUl9MSU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0M1X0RTQ0NfQ09ORklHMF9fQUxURVJOQVRFX0lDSF9FTkNPRElOR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDNV9EU0NDX0NPTkZJRzBfX05VTUJFUl9PRl9TTElDRVNfSU5fVkVSVElDQUxfRElSRUNUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M1X0RTQ0NfQ09ORklHMF9fSUNIX1JFU0VUX0FUX0VORF9PRl9MSU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfQ09ORklHMF9fTlVNQkVSX09GX1NMSUNFU19QRVJfTElORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfQ09ORklHMF9fQUxURVJOQVRFX0lDSF9FTkNPRElOR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfQ09ORklHMF9fTlVNQkVSX09GX1NMSUNFU19JTl9WRVJUSUNBTF9ESVJFQ1RJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0M1X0RTQ0NfQ09ORklHMQorI2RlZmluZSBEU0NDNV9EU0NDX0NPTkZJRzFfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19DT05GSUcxX19EU0NDX0RJU0FCTEVfSUNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDNV9EU0NDX0NPTkZJRzFfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorI2RlZmluZSBEU0NDNV9EU0NDX0NPTkZJRzFfX0RTQ0NfRElTQUJMRV9JQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9EU0NDNV9EU0NDX1NUQVRVUworI2RlZmluZSBEU0NDNV9EU0NDX1NUQVRVU19fRFNDQ19ET1VCTEVfQlVGRkVSX1JFR19VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19TVEFUVVNfX0RTQ0NfRE9VQkxFX0JVRkZFUl9SRUdfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVMKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEU0NDNV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjJfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMF9VTkRFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDNV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfVU5ERVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX1VOREVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSM19VTkRFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEU0NDNV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMF9PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDFfT1ZFUkZMT1dfT0NDVVJSRURfX1NISUZUICAgICAgICAgMHg5CisjZGVmaW5lIERTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwyX09WRVJGTE9XX09DQ1VSUkVEX19TSElGVCAgICAgICAgIDB4YQorI2RlZmluZSBEU0NDNV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMM19PVkVSRkxPV19PQ0NVUlJFRF9fU0hJRlQgICAgICAgICAweGIKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjFfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMl9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEU0NDNV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjBfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQlVGRkVSMV9VTkRFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEU0NDNV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0JVRkZFUjNfVU5ERVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwwX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgIDB4MTgKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDFfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX19TSElGVCAgMHgxOQorI2RlZmluZSBEU0NDNV9EU0NDX0lOVEVSUlVQVF9DT05UUk9MX1NUQVRVU19fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSX01PREVMMl9PVkVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fX1NISUZUICAweDFhCisjZGVmaW5lIERTQ0M1X0RTQ0NfSU5URVJSVVBUX0NPTlRST0xfU1RBVFVTX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVJfTU9ERUwzX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9fU0hJRlQgIDB4MWIKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX09WRVJGTE9XX09DQ1VSUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX1VOREVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX1VOREVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX1VOREVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX1VOREVSRkxPV19PQ0NVUlJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDBfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDFfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDJfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDNfT1ZFUkZMT1dfT0NDVVJSRURfTUFTSyAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX09WRVJGTE9XX09DQ1VSUkVEX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIwX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIxX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIyX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9CVUZGRVIzX1VOREVSRkxPV19PQ0NVUlJFRF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDBfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDFfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDJfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19JTlRFUlJVUFRfQ09OVFJPTF9TVEFUVVNfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUl9NT0RFTDNfT1ZFUkZMT1dfT0NDVVJSRURfSU5UX0VOX01BU0sgICAgMHgwODAwMDAwMEwKKy8vRFNDQzVfRFNDQ19QUFNfQ09ORklHMAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcwX19EU0NfVkVSU0lPTl9NSU5PUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMF9fRFNDX1ZFUlNJT05fTUFKT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzBfX1BQU19JREVOVElGSUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcwX19MSU5FQlVGX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzBfX0JJVFNfUEVSX0NPTVBPTkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMF9fRFNDX1ZFUlNJT05fTUlOT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMF9fRFNDX1ZFUlNJT05fTUFKT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMF9fUFBTX0lERU5USUZJRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMF9fTElORUJVRl9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMF9fQklUU19QRVJfQ09NUE9ORU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vRFNDQzVfRFNDQ19QUFNfQ09ORklHMQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19CSVRTX1BFUl9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMV9fVkJSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzFfX1NJTVBMRV80MjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19DT05WRVJUX1JHQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMV9fQkxPQ0tfUFJFRF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzFfX05BVElWRV80MjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19OQVRJVkVfNDIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMV9fQ0hVTktfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19CSVRTX1BFUl9QSVhFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19WQlJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19TSU1QTEVfNDIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19DT05WRVJUX1JHQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19CTE9DS19QUkVEX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19OQVRJVkVfNDIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19OQVRJVkVfNDIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxX19DSFVOS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDNV9EU0NDX1BQU19DT05GSUcyCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzJfX1BJQ19XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcyX19QSUNfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzJfX1BJQ19XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzJfX1BJQ19IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzMKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHM19fU0xJQ0VfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzNfX1NMSUNFX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHM19fU0xJQ0VfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHM19fU0xJQ0VfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzVfRFNDQ19QUFNfQ09ORklHNAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc0X19JTklUSUFMX1hNSVRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHNF9fSU5JVElBTF9ERUNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc0X19JTklUSUFMX1hNSVRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc0X19JTklUSUFMX0RFQ19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDNV9EU0NDX1BQU19DT05GSUc1CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzVfX0lOSVRJQUxfU0NBTEVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc1X19TQ0FMRV9JTkNSRU1FTlRfSU5URVJWQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzVfX0lOSVRJQUxfU0NBTEVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzVfX1NDQUxFX0lOQ1JFTUVOVF9JTlRFUlZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzYKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHNl9fU0NBTEVfREVDUkVNRU5UX0lOVEVSVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzZfX0ZJUlNUX0xJTkVfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHNl9fU0VDT05EX0xJTkVfQlBHX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc2X19TQ0FMRV9ERUNSRU1FTlRfSU5URVJWQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc2X19GSVJTVF9MSU5FX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc2X19TRUNPTkRfTElORV9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorLy9EU0NDNV9EU0NDX1BQU19DT05GSUc3CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzdfX05GTF9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc3X19TTElDRV9CUEdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzdfX05GTF9CUEdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzdfX1NMSUNFX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzgKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHOF9fTlNMX0JQR19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzhfX1NFQ09ORF9MSU5FX09GRlNFVF9BREpfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHOF9fTlNMX0JQR19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHOF9fU0VDT05EX0xJTkVfT0ZGU0VUX0FESl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzVfRFNDQ19QUFNfQ09ORklHOQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc5X19JTklUSUFMX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHOV9fRklOQUxfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc5X19JTklUSUFMX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUc5X19GSU5BTF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDNV9EU0NDX1BQU19DT05GSUcxMAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMF9fRkxBVE5FU1NfTUlOX1FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTBfX0ZMQVRORVNTX01BWF9RUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzEwX19SQ19NT0RFTF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTBfX0ZMQVRORVNTX01JTl9RUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTBfX0ZMQVRORVNTX01BWF9RUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTBfX1JDX01PREVMX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vRFNDQzVfRFNDQ19QUFNfQ09ORklHMTEKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTFfX1JDX0VER0VfRkFDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzExX19SQ19RVUFOVF9JTkNSX0xJTUlUMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMV9fUkNfUVVBTlRfSU5DUl9MSU1JVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzExX19SQ19UR1RfT0ZGU0VUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTFfX1JDX1RHVF9PRkZTRVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMV9fUkNfRURHRV9GQUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMV9fUkNfUVVBTlRfSU5DUl9MSU1JVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMV9fUkNfUVVBTlRfSU5DUl9MSU1JVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMV9fUkNfVEdUX09GRlNFVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMV9fUkNfVEdUX09GRlNFVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EU0NDNV9EU0NDX1BQU19DT05GSUcxMgorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzEyX19SQ19CVUZfVEhSRVNIMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTJfX1JDX0JVRl9USFJFU0gzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxMl9fUkNfQlVGX1RIUkVTSDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EU0NDNV9EU0NDX1BQU19DT05GSUcxMworI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzEzX19SQ19CVUZfVEhSRVNINl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTNfX1JDX0JVRl9USFJFU0g3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxM19fUkNfQlVGX1RIUkVTSDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EU0NDNV9EU0NDX1BQU19DT05GSUcxNAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0g5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE0X19SQ19CVUZfVEhSRVNIMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTRfX1JDX0JVRl9USFJFU0gxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxNF9fUkNfQlVGX1RIUkVTSDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EU0NDNV9EU0NDX1BQU19DT05GSUcxNQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxNV9fUkNfQlVGX1RIUkVTSDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTVfX1JDX0JVRl9USFJFU0gxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9NSU5fUVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTVfX1JBTkdFX01BWF9RUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxNV9fUkFOR0VfQlBHX09GRlNFVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE1X19SQ19CVUZfVEhSRVNIMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE1X19SQ19CVUZfVEhSRVNIMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9NSU5fUVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9NQVhfUVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE1X19SQU5HRV9CUEdfT0ZGU0VUMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE2CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NSU5fUVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfTUFYX1FQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX0JQR19PRkZTRVQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NSU5fUVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTZfX1JBTkdFX01BWF9RUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxNl9fUkFOR0VfQlBHX09GRlNFVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NSU5fUVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NQVhfUVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9CUEdfT0ZGU0VUMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NSU5fUVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9NQVhfUVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE2X19SQU5HRV9CUEdfT0ZGU0VUMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NSU5fUVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfTUFYX1FQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX0JQR19PRkZTRVQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NSU5fUVA0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTdfX1JBTkdFX01BWF9RUDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxN19fUkFOR0VfQlBHX09GRlNFVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NSU5fUVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NQVhfUVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9CUEdfT0ZGU0VUM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NSU5fUVA0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9NQVhfUVA0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE3X19SQU5HRV9CUEdfT0ZGU0VUNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE4CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NSU5fUVA1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfTUFYX1FQNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX0JQR19PRkZTRVQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NSU5fUVA2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMThfX1JBTkdFX01BWF9RUDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxOF9fUkFOR0VfQlBHX09GRlNFVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NSU5fUVA1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NQVhfUVA1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9CUEdfT0ZGU0VUNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NSU5fUVA2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9NQVhfUVA2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE4X19SQU5HRV9CUEdfT0ZGU0VUNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE5CisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NSU5fUVA3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfTUFYX1FQN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX0JQR19PRkZTRVQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NSU5fUVA4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMTlfX1JBTkdFX01BWF9RUDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcxOV9fUkFOR0VfQlBHX09GRlNFVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NSU5fUVA3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NQVhfUVA3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9CUEdfT0ZGU0VUN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NSU5fUVA4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9NQVhfUVA4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzE5X19SQU5HRV9CUEdfT0ZGU0VUOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NSU5fUVA5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfTUFYX1FQOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX0JQR19PRkZTRVQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NSU5fUVAxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMjBfX1JBTkdFX01BWF9RUDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcyMF9fUkFOR0VfQlBHX09GRlNFVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NSU5fUVA5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NQVhfUVA5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9CUEdfT0ZGU0VUOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NSU5fUVAxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9NQVhfUVAxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIwX19SQU5HRV9CUEdfT0ZGU0VUMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIxCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NSU5fUVAxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfTUFYX1FQMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX0JQR19PRkZTRVQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NSU5fUVAxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMjFfX1JBTkdFX01BWF9RUDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcyMV9fUkFOR0VfQlBHX09GRlNFVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NSU5fUVAxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NQVhfUVAxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9CUEdfT0ZGU0VUMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NSU5fUVAxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9NQVhfUVAxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIxX19SQU5HRV9CUEdfT0ZGU0VUMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIyCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NSU5fUVAxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfTUFYX1FQMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX0JQR19PRkZTRVQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NSU5fUVAxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFNDQzVfRFNDQ19QUFNfQ09ORklHMjJfX1JBTkdFX01BWF9RUDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEU0NDNV9EU0NDX1BQU19DT05GSUcyMl9fUkFOR0VfQlBHX09GRlNFVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NSU5fUVAxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NQVhfUVAxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9CUEdfT0ZGU0VUMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NSU5fUVAxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9NQVhfUVAxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUFBTX0NPTkZJRzIyX19SQU5HRV9CUEdfT0ZGU0VUMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RTQ0M1X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0wKKyNkZWZpbmUgRFNDQzVfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19ERUZBVUxUX01FTV9MT1dfUE9XRVJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEU0NDNV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFNDQzVfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19NRU1fUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERTQ0M1X0RTQ0NfTUVNX1BPV0VSX0NPTlRST0xfX0RTQ0NfTkFUSVZFXzQyMl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzVfRFNDQ19NRU1fUE9XRVJfQ09OVFJPTF9fRFNDQ19OQVRJVkVfNDIyX01FTV9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEU0NDNV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX0RFRkFVTFRfTUVNX0xPV19QT1dFUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEU0NDNV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEU0NDNV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEU0NDNV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEU0NDNV9EU0NDX01FTV9QT1dFUl9DT05UUk9MX19EU0NDX05BVElWRV80MjJfTUVNX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9EU0NDNV9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSCisjZGVmaW5lIERTQ0M1X0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfTE9XRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX0xPV0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDNV9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSCisjZGVmaW5lIERTQ0M1X0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfUl9ZX1NRVUFSRURfRVJST1JfVVBQRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX1JfWV9TUVVBUkVEX0VSUk9SX1VQUEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDNV9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUgorI2RlZmluZSBEU0NDNV9EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfTE9XRVJfX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX0xPV0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzVfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVIKKyNkZWZpbmUgRFNDQzVfRFNDQ19HX0NCX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfR19DQl9TUVVBUkVEX0VSUk9SX1VQUEVSX19EU0NDX0dfQ0JfU1FVQVJFRF9FUlJPUl9VUFBFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RTQ0M1X0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSCisjZGVmaW5lIERTQ0M1X0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX0xPV0VSX19EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9MT1dFUl9fRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfTE9XRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EU0NDNV9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUgorI2RlZmluZSBEU0NDNV9EU0NDX0JfQ1JfU1FVQVJFRF9FUlJPUl9VUFBFUl9fRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19CX0NSX1NRVUFSRURfRVJST1JfVVBQRVJfX0RTQ0NfQl9DUl9TUVVBUkVEX0VSUk9SX1VQUEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFNDQzVfRFNDQ19NQVhfQUJTX0VSUk9SMAorI2RlZmluZSBEU0NDNV9EU0NDX01BWF9BQlNfRVJST1IwX19EU0NDX1JfWV9NQVhfQUJTX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19NQVhfQUJTX0VSUk9SMF9fRFNDQ19HX0NCX01BWF9BQlNfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEU0NDNV9EU0NDX01BWF9BQlNfRVJST1IwX19EU0NDX1JfWV9NQVhfQUJTX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEU0NDNV9EU0NDX01BWF9BQlNfRVJST1IwX19EU0NDX0dfQ0JfTUFYX0FCU19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EU0NDNV9EU0NDX01BWF9BQlNfRVJST1IxCisjZGVmaW5lIERTQ0M1X0RTQ0NfTUFYX0FCU19FUlJPUjFfX0RTQ0NfQl9DUl9NQVhfQUJTX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX01BWF9BQlNfRVJST1IxX19EU0NDX0JfQ1JfTUFYX0FCU19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9EU0NDNV9EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzVfRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUkFURV9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RTQ0M1X0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDNV9EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19SQVRFX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vRFNDQzVfRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1JBVEVfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EU0NDNV9EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzVfRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUkFURV9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RTQ0M1X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjBfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIwX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMF9NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgMHgwMDAzRkZGRkwKKy8vRFNDQzVfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUwKKyNkZWZpbmUgRFNDQzVfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMV9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19TSElGVCAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjFfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIxX01BWF9GVUxMTkVTU19MRVZFTF9NQVNLICAweDAwMDNGRkZGTAorLy9EU0NDNV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTAorI2RlZmluZSBEU0NDNV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIyX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX1NISUZUICAweDAKKyNkZWZpbmUgRFNDQzVfRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSMl9NQVhfRlVMTE5FU1NfTEVWRUxfX0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjJfTUFYX0ZVTExORVNTX0xFVkVMX01BU0sgIDB4MDAwM0ZGRkZMCisvL0RTQ0M1X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMCisjZGVmaW5lIERTQ0M1X0RTQ0NfUkFURV9DT05UUk9MX0JVRkZFUjNfTUFYX0ZVTExORVNTX0xFVkVMX19EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fU0hJRlQgIDB4MAorI2RlZmluZSBEU0NDNV9EU0NDX1JBVEVfQ09OVFJPTF9CVUZGRVIzX01BWF9GVUxMTkVTU19MRVZFTF9fRFNDQ19SQVRFX0NPTlRST0xfQlVGRkVSM19NQVhfRlVMTE5FU1NfTEVWRUxfTUFTSyAgMHgwMDAzRkZGRkwKKy8vRFNDQzVfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEUKKyNkZWZpbmUgRFNDQzVfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMwX1JPVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERTQ0M1X0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTMV9ST1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEU0NDNV9EU0NDX1RFU1RfREVCVUdfQlVTX1JPVEFURV9fRFNDQ19URVNUX0RFQlVHX0JVUzJfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERTQ0M1X0RTQ0NfVEVTVF9ERUJVR19CVVNfUk9UQVRFX19EU0NDX1RFU1RfREVCVUdfQlVTM19ST1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFNDQzVfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMwX1JPVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgRFNDQzVfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMxX1JPVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMyX1JPVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgRFNDQzVfRFNDQ19URVNUX0RFQlVHX0JVU19ST1RBVEVfX0RTQ0NfVEVTVF9ERUJVR19CVVMzX1JPVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kc2M1X2Rpc3BkZWNfZHNjX2RjcGVyZm1vbl9kY19wZXJmbW9uX2Rpc3BkZWMKKy8vRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DVkFMVUVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfSU5DX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9SVU5FTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfUkVTVEFSVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfQ05UTF9fUEVSRkNPVU5URVJfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMX19QRVJGQ09VTlRFUl9DTlRMX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0VWRU5UX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NWQUxVRV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0hXX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JVTkVOX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVE9GRl9TVEFSVF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX1JFU1RBUlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX09GRl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVExfX1BFUkZDT1VOVEVSX0NOVExfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVEwyCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0hXX1NUT1AxX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX0NOVEwyX19QRVJGQ09VTlRFUl9IV19TVE9QMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfQ05UTDJfX1BFUkZDT1VOVEVSX0NOVEwyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ09VTlRFRF9WQUxVRV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfSFdfU1RPUDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UT0ZGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9DTlRMMl9fUEVSRkNPVU5URVJfQ05UTDJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9TVEFURQorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UMV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQyX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUwzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UNF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfU1RBVEVfU0VMNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9DTlQ2X1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGQ09VTlRFUl9TVEFURV9fUEVSRkNPVU5URVJfQ05UN19TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZDT1VOVEVSX1NUQVRFX19QRVJGQ09VTlRFUl9TVEFURV9TRUw3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDBfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDFfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDNfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDVfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDZfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX0NOVDdfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRkNPVU5URVJfU1RBVEVfX1BFUkZDT1VOVEVSX1NUQVRFX1NFTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9EQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NOVExfX1BFUkZNT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfQU5EX09SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NOVExfX1BFUkZNT05fQ05UT0ZGX0lOVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ05UTF9fUEVSRk1PTl9DTlRPRkZfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX1JQVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRjAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9BTkRfT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMX19QRVJGTU9OX0NOVE9GRl9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMMgorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9DTlRPRkZfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NOVEwyX19QRVJGTU9OX1JVTl9FTkFCTEVfU1RBUlRfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DTlRMMl9fUEVSRk1PTl9SVU5fRU5BQkxFX1NUT1BfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ05UT0ZGX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fQ0xLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVEFSVF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGQ0wKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ05UTDJfX1BFUkZNT05fUlVOX0VOQUJMRV9TVE9QX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkMwMEwKKy8vRENfUEVSRk1PTjI0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDFfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQyX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ1X1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDdfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQwX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQzX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZDT1VOVEVSX0lOVDVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ1ZBTFVFX0lOVF9NSVNDX19QRVJGQ09VTlRFUl9JTlQ2X0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9DVkFMVUVfSU5UX01JU0NfX1BFUkZNT05fQ1ZBTFVFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UMl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UM19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UNl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRkNPVU5URVJfSU5UN19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9JTlRfTUlTQ19fUEVSRk1PTl9DVkFMVUVfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9MT1cKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fQ1ZBTFVFX0xPV19fUEVSRk1PTl9DVkFMVUVfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0NWQUxVRV9MT1dfX1BFUkZNT05fQ1ZBTFVFX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RDX1BFUkZNT04yNF9QRVJGTU9OX0hJCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9ISV9fUEVSRk1PTl9SRUFEX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0hJX19QRVJGTU9OX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERDX1BFUkZNT04yNF9QRVJGTU9OX0hJX19QRVJGTU9OX1JFQURfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL0RDX1BFUkZNT04yNF9QRVJGTU9OX0xPVworI2RlZmluZSBEQ19QRVJGTU9OMjRfUEVSRk1PTl9MT1dfX1BFUkZNT05fTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfUEVSRk1PTjI0X1BFUkZNT05fTE9XX19QRVJGTU9OX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRjZV9kY19kbXVfZG1jdWJfZGlzcGRlYworLy9ETUNVQl9SRUdJT04wX09GRlNFVAorI2RlZmluZSBETUNVQl9SRUdJT04wX09GRlNFVF9fRE1DVUJfUkVHSU9OMF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVUJfUkVHSU9OMF9PRkZTRVRfX0RNQ1VCX1JFR0lPTjBfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkYwMEwKKy8vRE1DVUJfUkVHSU9OMF9PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT04wX09GRlNFVF9ISUdIX19ETUNVQl9SRUdJT04wX09GRlNFVF9ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OMF9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OMF9PRkZTRVRfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9OMV9PRkZTRVQKKyNkZWZpbmUgRE1DVUJfUkVHSU9OMV9PRkZTRVRfX0RNQ1VCX1JFR0lPTjFfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VCX1JFR0lPTjFfT0ZGU0VUX19ETUNVQl9SRUdJT04xX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGMDBMCisvL0RNQ1VCX1JFR0lPTjFfT0ZGU0VUX0hJR0gKKyNkZWZpbmUgRE1DVUJfUkVHSU9OMV9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OMV9PRkZTRVRfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjFfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjFfT0ZGU0VUX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0RNQ1VCX1JFR0lPTjJfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjJfT0ZGU0VUX19ETUNVQl9SRUdJT04yX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT04yX09GRlNFVF9fRE1DVUJfUkVHSU9OMl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT04yX09GRlNFVF9ISUdICisjZGVmaW5lIERNQ1VCX1JFR0lPTjJfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjJfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9SRUdJT04yX09GRlNFVF9ISUdIX19ETUNVQl9SRUdJT04yX09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9ETUNVQl9SRUdJT040X09GRlNFVAorI2RlZmluZSBETUNVQl9SRUdJT040X09GRlNFVF9fRE1DVUJfUkVHSU9ONF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVUJfUkVHSU9ONF9PRkZTRVRfX0RNQ1VCX1JFR0lPTjRfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkYwMEwKKy8vRE1DVUJfUkVHSU9ONF9PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT040X09GRlNFVF9ISUdIX19ETUNVQl9SRUdJT040X09GRlNFVF9ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9ONF9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9ONF9PRkZTRVRfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9ONV9PRkZTRVQKKyNkZWZpbmUgRE1DVUJfUkVHSU9ONV9PRkZTRVRfX0RNQ1VCX1JFR0lPTjVfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VCX1JFR0lPTjVfT0ZGU0VUX19ETUNVQl9SRUdJT041X09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGMDBMCisvL0RNQ1VCX1JFR0lPTjVfT0ZGU0VUX0hJR0gKKyNkZWZpbmUgRE1DVUJfUkVHSU9ONV9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9ONV9PRkZTRVRfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjVfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjVfT0ZGU0VUX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0RNQ1VCX1JFR0lPTjZfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjZfT0ZGU0VUX19ETUNVQl9SRUdJT042X09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT042X09GRlNFVF9fRE1DVUJfUkVHSU9ONl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT042X09GRlNFVF9ISUdICisjZGVmaW5lIERNQ1VCX1JFR0lPTjZfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjZfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9SRUdJT042X09GRlNFVF9ISUdIX19ETUNVQl9SRUdJT042X09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9ETUNVQl9SRUdJT043X09GRlNFVAorI2RlZmluZSBETUNVQl9SRUdJT043X09GRlNFVF9fRE1DVUJfUkVHSU9ON19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVUJfUkVHSU9ON19PRkZTRVRfX0RNQ1VCX1JFR0lPTjdfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkYwMEwKKy8vRE1DVUJfUkVHSU9ON19PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT043X09GRlNFVF9ISUdIX19ETUNVQl9SRUdJT043X09GRlNFVF9ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9ON19PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9ON19PRkZTRVRfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9OMF9UT1BfQUREUkVTUworI2RlZmluZSBETUNVQl9SRUdJT04wX1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04wX1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OMF9UT1BfQUREUkVTU19fRE1DVUJfUkVHSU9OMF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBETUNVQl9SRUdJT04wX1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04wX1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkZGRkZGTAorI2RlZmluZSBETUNVQl9SRUdJT04wX1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04wX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ETUNVQl9SRUdJT04xX1RPUF9BRERSRVNTCisjZGVmaW5lIERNQ1VCX1JFR0lPTjFfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjFfVE9QX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9SRUdJT04xX1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04xX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERNQ1VCX1JFR0lPTjFfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjFfVE9QX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkZGRkZMCisjZGVmaW5lIERNQ1VCX1JFR0lPTjFfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RNQ1VCX1JFR0lPTjJfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OMl9UT1BfQUREUkVTU19fRE1DVUJfUkVHSU9OMl9UT1BfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjJfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9OMl9UT1BfQUREUkVTU19fRE1DVUJfUkVHSU9OMl9UT1BfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9OMl9UT1BfQUREUkVTU19fRE1DVUJfUkVHSU9OMl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9ONF9UT1BfQUREUkVTUworI2RlZmluZSBETUNVQl9SRUdJT040X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT040X1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9ONF9UT1BfQUREUkVTU19fRE1DVUJfUkVHSU9ONF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBETUNVQl9SRUdJT040X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT040X1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkZGRkZGTAorI2RlZmluZSBETUNVQl9SRUdJT040X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT040X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ETUNVQl9SRUdJT041X1RPUF9BRERSRVNTCisjZGVmaW5lIERNQ1VCX1JFR0lPTjVfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjVfVE9QX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9SRUdJT041X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT041X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERNQ1VCX1JFR0lPTjVfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjVfVE9QX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkZGRkZMCisjZGVmaW5lIERNQ1VCX1JFR0lPTjVfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RNQ1VCX1JFR0lPTjZfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9ONl9UT1BfQUREUkVTU19fRE1DVUJfUkVHSU9ONl9UT1BfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjZfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjZfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9ONl9UT1BfQUREUkVTU19fRE1DVUJfUkVHSU9ONl9UT1BfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9ONl9UT1BfQUREUkVTU19fRE1DVUJfUkVHSU9ONl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9ON19UT1BfQUREUkVTUworI2RlZmluZSBETUNVQl9SRUdJT043X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT043X1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9ON19UT1BfQUREUkVTU19fRE1DVUJfUkVHSU9ON19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBETUNVQl9SRUdJT043X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT043X1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkZGRkZGTAorI2RlZmluZSBETUNVQl9SRUdJT043X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT043X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9ETUNVQl9SRUdJT04zX0NXMF9CQVNFX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzBfQkFTRV9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXMF9CQVNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1cwX0JBU0VfQUREUkVTU19fRE1DVUJfUkVHSU9OM19DVzBfQkFTRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkZGRkZMCisvL0RNQ1VCX1JFR0lPTjNfQ1cxX0JBU0VfQUREUkVTUworI2RlZmluZSBETUNVQl9SRUdJT04zX0NXMV9CQVNFX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cxX0JBU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzFfQkFTRV9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXMV9CQVNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzJfQkFTRV9BRERSRVNTCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1cyX0JBU0VfQUREUkVTU19fRE1DVUJfUkVHSU9OM19DVzJfQkFTRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXMl9CQVNFX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cyX0JBU0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkZGRkZGTAorLy9ETUNVQl9SRUdJT04zX0NXM19CQVNFX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzNfQkFTRV9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXM19CQVNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1czX0JBU0VfQUREUkVTU19fRE1DVUJfUkVHSU9OM19DVzNfQkFTRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkZGRkZMCisvL0RNQ1VCX1JFR0lPTjNfQ1c0X0JBU0VfQUREUkVTUworI2RlZmluZSBETUNVQl9SRUdJT04zX0NXNF9CQVNFX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c0X0JBU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzRfQkFTRV9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXNF9CQVNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzVfQkFTRV9BRERSRVNTCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c1X0JBU0VfQUREUkVTU19fRE1DVUJfUkVHSU9OM19DVzVfQkFTRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXNV9CQVNFX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c1X0JBU0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkZGRkZGTAorLy9ETUNVQl9SRUdJT04zX0NXNl9CQVNFX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzZfQkFTRV9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXNl9CQVNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c2X0JBU0VfQUREUkVTU19fRE1DVUJfUkVHSU9OM19DVzZfQkFTRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkZGRkZMCisvL0RNQ1VCX1JFR0lPTjNfQ1c3X0JBU0VfQUREUkVTUworI2RlZmluZSBETUNVQl9SRUdJT04zX0NXN19CQVNFX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c3X0JBU0VfQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzdfQkFTRV9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXN19CQVNFX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzBfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzBfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cwX1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1cwX1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXMF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzBfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cwX1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzBfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cwX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9OM19DVzFfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzFfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cxX1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1cxX1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzFfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cxX1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzFfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cxX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9OM19DVzJfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzJfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cyX1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1cyX1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXMl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzJfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cyX1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzJfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1cyX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9OM19DVzNfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzNfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1czX1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1czX1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXM19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzNfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1czX1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzNfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1czX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9OM19DVzRfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzRfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c0X1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c0X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXNF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzRfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c0X1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzRfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c0X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9OM19DVzVfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzVfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c1X1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c1X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXNV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzVfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c1X1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzVfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c1X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9OM19DVzZfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzZfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c2X1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c2X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXNl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzZfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c2X1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzZfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c2X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9OM19DVzdfVE9QX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzdfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c3X1RPUF9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c3X1RPUF9BRERSRVNTX19ETUNVQl9SRUdJT04zX0NXN19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzdfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c3X1RPUF9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzdfVE9QX0FERFJFU1NfX0RNQ1VCX1JFR0lPTjNfQ1c3X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRE1DVUJfUkVHSU9OM19DVzBfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1cwX09GRlNFVF9fRE1DVUJfUkVHSU9OM19DVzBfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXMF9PRkZTRVRfX0RNQ1VCX1JFR0lPTjNfQ1cwX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT04zX0NXMF9PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXMF9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OM19DVzBfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzBfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjNfQ1cwX09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzFfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1cxX09GRlNFVF9fRE1DVUJfUkVHSU9OM19DVzFfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXMV9PRkZTRVRfX0RNQ1VCX1JFR0lPTjNfQ1cxX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT04zX0NXMV9PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXMV9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OM19DVzFfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzFfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjNfQ1cxX09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzJfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1cyX09GRlNFVF9fRE1DVUJfUkVHSU9OM19DVzJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXMl9PRkZTRVRfX0RNQ1VCX1JFR0lPTjNfQ1cyX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT04zX0NXMl9PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXMl9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OM19DVzJfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzJfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjNfQ1cyX09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzNfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1czX09GRlNFVF9fRE1DVUJfUkVHSU9OM19DVzNfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXM19PRkZTRVRfX0RNQ1VCX1JFR0lPTjNfQ1czX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT04zX0NXM19PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXM19PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OM19DVzNfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzNfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjNfQ1czX09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzRfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c0X09GRlNFVF9fRE1DVUJfUkVHSU9OM19DVzRfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXNF9PRkZTRVRfX0RNQ1VCX1JFR0lPTjNfQ1c0X09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT04zX0NXNF9PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXNF9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OM19DVzRfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzRfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjNfQ1c0X09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzVfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c1X09GRlNFVF9fRE1DVUJfUkVHSU9OM19DVzVfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXNV9PRkZTRVRfX0RNQ1VCX1JFR0lPTjNfQ1c1X09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT04zX0NXNV9PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXNV9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OM19DVzVfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzVfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjNfQ1c1X09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzZfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c2X09GRlNFVF9fRE1DVUJfUkVHSU9OM19DVzZfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXNl9PRkZTRVRfX0RNQ1VCX1JFR0lPTjNfQ1c2X09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT04zX0NXNl9PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXNl9PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OM19DVzZfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzZfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjNfQ1c2X09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfUkVHSU9OM19DVzdfT0ZGU0VUCisjZGVmaW5lIERNQ1VCX1JFR0lPTjNfQ1c3X09GRlNFVF9fRE1DVUJfUkVHSU9OM19DVzdfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXN19PRkZTRVRfX0RNQ1VCX1JFR0lPTjNfQ1c3X09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRjAwTAorLy9ETUNVQl9SRUdJT04zX0NXN19PRkZTRVRfSElHSAorI2RlZmluZSBETUNVQl9SRUdJT04zX0NXN19PRkZTRVRfSElHSF9fRE1DVUJfUkVHSU9OM19DVzdfT0ZGU0VUX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfUkVHSU9OM19DVzdfT0ZGU0VUX0hJR0hfX0RNQ1VCX1JFR0lPTjNfQ1c3X09GRlNFVF9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRE1DVUJfSU5URVJSVVBUX0VOQUJMRQorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfRU5BQkxFX19ETUNVQl9USU1FUjBfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0VOQUJMRV9fRE1DVUJfVElNRVIxX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0lOQk9YMF9SRUFEWV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfRU5BQkxFX19ETUNVQl9JTkJPWDBfRE9ORV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0VOQUJMRV9fRE1DVUJfSU5CT1gxX1JFQURZX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0lOQk9YMV9ET05FX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfRU5BQkxFX19ETUNVQl9PVVRCT1gwX1JFQURZX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0VOQUJMRV9fRE1DVUJfT1VUQk9YMF9ET05FX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX09VVEJPWDFfUkVBRFlfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfRU5BQkxFX19ETUNVQl9PVVRCT1gxX0RPTkVfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0VOQUJMRV9fRE1DVUJfR1BJTlQwX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0dQSU5UMV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfRU5BQkxFX19ETUNVQl9HUElOVDJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0VOQUJMRV9fRE1DVUJfVU5ERUZJTkVEX0FERFJFU1NfRkFVTFRfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX1RJTUVSMF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX1RJTUVSMV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0lOQk9YMF9SRUFEWV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0lOQk9YMF9ET05FX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0lOQk9YMV9SRUFEWV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0lOQk9YMV9ET05FX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX09VVEJPWDBfUkVBRFlfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX09VVEJPWDBfRE9ORV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX09VVEJPWDFfUkVBRFlfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX09VVEJPWDFfRE9ORV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0dQSU5UMF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0dQSU5UMV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX0dQSU5UMl9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9FTkFCTEVfX0RNQ1VCX1VOREVGSU5FRF9BRERSRVNTX0ZBVUxUX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL0RNQ1VCX0lOVEVSUlVQVF9BQ0sKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0FDS19fRE1DVUJfVElNRVIwX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9BQ0tfX0RNQ1VCX1RJTUVSMV9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9JTkJPWDBfUkVBRFlfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0FDS19fRE1DVUJfSU5CT1gwX0RPTkVfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9BQ0tfX0RNQ1VCX0lOQk9YMV9SRUFEWV9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9JTkJPWDFfRE9ORV9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0FDS19fRE1DVUJfT1VUQk9YMF9SRUFEWV9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9BQ0tfX0RNQ1VCX09VVEJPWDBfRE9ORV9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9PVVRCT1gxX1JFQURZX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0FDS19fRE1DVUJfT1VUQk9YMV9ET05FX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9BQ0tfX0RNQ1VCX0dQSU5UMF9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9HUElOVDFfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX0FDS19fRE1DVUJfR1BJTlQyX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9BQ0tfX0RNQ1VCX1VOREVGSU5FRF9BRERSRVNTX0ZBVUxUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9USU1FUjBfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9USU1FUjFfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9JTkJPWDBfUkVBRFlfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9JTkJPWDBfRE9ORV9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9JTkJPWDFfUkVBRFlfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9JTkJPWDFfRE9ORV9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9PVVRCT1gwX1JFQURZX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9PVVRCT1gwX0RPTkVfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9PVVRCT1gxX1JFQURZX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9PVVRCT1gxX0RPTkVfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9HUElOVDBfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9HUElOVDFfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9HUElOVDJfSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfQUNLX19ETUNVQl9VTkRFRklORURfQUREUkVTU19GQVVMVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9ETUNVQl9JTlRFUlJVUFRfU1RBVFVTCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9TVEFUVVNfX0RNQ1VCX1RJTUVSMF9JTlRfU1RBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9USU1FUjFfSU5UX1NUQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1NUQVRVU19fRE1DVUJfSU5CT1gwX1JFQURZX0lOVF9TVEFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9TVEFUVVNfX0RNQ1VCX0lOQk9YMF9ET05FX0lOVF9TVEFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9JTkJPWDFfUkVBRFlfSU5UX1NUQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1NUQVRVU19fRE1DVUJfSU5CT1gxX0RPTkVfSU5UX1NUQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9TVEFUVVNfX0RNQ1VCX09VVEJPWDBfUkVBRFlfSU5UX1NUQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9PVVRCT1gwX0RPTkVfSU5UX1NUQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1NUQVRVU19fRE1DVUJfT1VUQk9YMV9SRUFEWV9JTlRfU1RBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9TVEFUVVNfX0RNQ1VCX09VVEJPWDFfRE9ORV9JTlRfU1RBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9HUElOVDBfSU5UX1NUQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1NUQVRVU19fRE1DVUJfR1BJTlQxX0lOVF9TVEFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9TVEFUVVNfX0RNQ1VCX0dQSU5UMl9JTlRfU1RBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9VTkRFRklORURfQUREUkVTU19GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1NUQVRVU19fRE1DVUJfSU5TVF9GRVRDSF9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9TVEFUVVNfX0RNQ1VCX0RBVEFfV1JJVEVfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9USU1FUjBfSU5UX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9USU1FUjFfSU5UX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9JTkJPWDBfUkVBRFlfSU5UX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9JTkJPWDBfRE9ORV9JTlRfU1RBVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9JTkJPWDFfUkVBRFlfSU5UX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9JTkJPWDFfRE9ORV9JTlRfU1RBVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9PVVRCT1gwX1JFQURZX0lOVF9TVEFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9PVVRCT1gwX0RPTkVfSU5UX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9PVVRCT1gxX1JFQURZX0lOVF9TVEFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9PVVRCT1gxX0RPTkVfSU5UX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9HUElOVDBfSU5UX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9HUElOVDFfSU5UX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9HUElOVDJfSU5UX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9VTkRFRklORURfQUREUkVTU19GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9JTlNUX0ZFVENIX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9EQVRBX1dSSVRFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9ETUNVQl9JTlRFUlJVUFRfVFlQRQorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfVFlQRV9fRE1DVUJfVElNRVIwX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1RZUEVfX0RNQ1VCX1RJTUVSMV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9JTkJPWDBfUkVBRFlfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfVFlQRV9fRE1DVUJfSU5CT1gwX0RPTkVfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1RZUEVfX0RNQ1VCX0lOQk9YMV9SRUFEWV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9JTkJPWDFfRE9ORV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfVFlQRV9fRE1DVUJfT1VUQk9YMF9SRUFEWV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1RZUEVfX0RNQ1VCX09VVEJPWDBfRE9ORV9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9PVVRCT1gxX1JFQURZX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfVFlQRV9fRE1DVUJfT1VUQk9YMV9ET05FX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1RZUEVfX0RNQ1VCX0dQSU5UMF9JTlRfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9HUElOVDFfSU5UX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBETUNVQl9JTlRFUlJVUFRfVFlQRV9fRE1DVUJfR1BJTlQyX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRE1DVUJfSU5URVJSVVBUX1RZUEVfX0RNQ1VCX1VOREVGSU5FRF9BRERSRVNTX0ZBVUxUX0lOVF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9USU1FUjBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9USU1FUjFfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9JTkJPWDBfUkVBRFlfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9JTkJPWDBfRE9ORV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9JTkJPWDFfUkVBRFlfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9JTkJPWDFfRE9ORV9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9PVVRCT1gwX1JFQURZX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9PVVRCT1gwX0RPTkVfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9PVVRCT1gxX1JFQURZX0lOVF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9PVVRCT1gxX0RPTkVfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9HUElOVDBfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9HUElOVDFfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9HUElOVDJfSU5UX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERNQ1VCX0lOVEVSUlVQVF9UWVBFX19ETUNVQl9VTkRFRklORURfQUREUkVTU19GQVVMVF9JTlRfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL0RNQ1VCX0VYVF9JTlRFUlJVUFRfU1RBVFVTCisjZGVmaW5lIERNQ1VCX0VYVF9JTlRFUlJVUFRfU1RBVFVTX19ETUNVQl9FWFRfSU5URVJSVVBUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9FWFRfSU5URVJSVVBUX1NUQVRVU19fRE1DVUJfRVhUX0lOVEVSUlVQVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRE1DVUJfRVhUX0lOVEVSUlVQVF9TVEFUVVNfX0RNQ1VCX0VYVF9JTlRFUlJVUFRfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRE1DVUJfRVhUX0lOVEVSUlVQVF9TVEFUVVNfX0RNQ1VCX0VYVF9JTlRFUlJVUFRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vRE1DVUJfRVhUX0lOVEVSUlVQVF9DVFhJRAorI2RlZmluZSBETUNVQl9FWFRfSU5URVJSVVBUX0NUWElEX19ETUNVQl9FWFRfSU5URVJSVVBUX0NUWElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfRVhUX0lOVEVSUlVQVF9DVFhJRF9fRE1DVUJfRVhUX0lOVEVSUlVQVF9DVFhJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGRkwKKy8vRE1DVUJfRVhUX0lOVEVSUlVQVF9BQ0sKKyNkZWZpbmUgRE1DVUJfRVhUX0lOVEVSUlVQVF9BQ0tfX0RNQ1VCX0VYVF9JTlRFUlJVUFRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX0VYVF9JTlRFUlJVUFRfQUNLX19ETUNVQl9FWFRfSU5URVJSVVBUX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0RNQ1VCX0lOU1RfRkVUQ0hfRkFVTFRfQUREUgorI2RlZmluZSBETUNVQl9JTlNUX0ZFVENIX0ZBVUxUX0FERFJfX0RNQ1VCX0lOU1RfRkVUQ0hfRkFVTFRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfSU5TVF9GRVRDSF9GQVVMVF9BRERSX19ETUNVQl9JTlNUX0ZFVENIX0ZBVUxUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfREFUQV9XUklURV9GQVVMVF9BRERSCisjZGVmaW5lIERNQ1VCX0RBVEFfV1JJVEVfRkFVTFRfQUREUl9fRE1DVUJfREFUQV9XUklURV9GQVVMVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9EQVRBX1dSSVRFX0ZBVUxUX0FERFJfX0RNQ1VCX0RBVEFfV1JJVEVfRkFVTFRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9TRUNfQ05UTAorI2RlZmluZSBETUNVQl9TRUNfQ05UTF9fRE1DVUJfTUVNX1NFQ19MVkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfU0VDX0NOVExfX0RNQ1VCX01FTV9VTklUX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9TRUNfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVUJfU0VDX0NOVExfX0RNQ1VCX0RBVEFfRkFVTFRfSU5UX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBETUNVQl9TRUNfQ05UTF9fRE1DVUJfQVVUT19SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9TRUNfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgRE1DVUJfU0VDX0NOVExfX0RNQ1VCX0lOU1RfRkVUQ0hfRkFVTFRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBETUNVQl9TRUNfQ05UTF9fRE1DVUJfREFUQV9XUklURV9GQVVMVF9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9NRU1fU0VDX0xWTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9NRU1fVU5JVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGMDBMCisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9TRUNfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9EQVRBX0ZBVUxUX0lOVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9BVVRPX1JFU0VUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9TRUNfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9JTlNUX0ZFVENIX0ZBVUxUX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERNQ1VCX1NFQ19DTlRMX19ETUNVQl9EQVRBX1dSSVRFX0ZBVUxUX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisvL0RNQ1VCX01FTV9DTlRMCisjZGVmaW5lIERNQ1VCX01FTV9DTlRMX19ETUNVQl9NRU1fV1JJVEVfUU9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9NRU1fQ05UTF9fRE1DVUJfTUVNX1JFQURfUU9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRE1DVUJfTUVNX0NOVExfX0RNQ1VCX01FTV9XUklURV9TUEFDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VCX01FTV9DTlRMX19ETUNVQl9NRU1fUkVBRF9TUEFDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBETUNVQl9NRU1fQ05UTF9fRE1DVUJfTUVNX1dSSVRFX1FPU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBETUNVQl9NRU1fQ05UTF9fRE1DVUJfTUVNX1JFQURfUU9TX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBETUNVQl9NRU1fQ05UTF9fRE1DVUJfTUVNX1dSSVRFX1NQQUNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBETUNVQl9NRU1fQ05UTF9fRE1DVUJfTUVNX1JFQURfU1BBQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorLy9ETUNVQl9JTkJPWDBfQkFTRV9BRERSRVNTCisjZGVmaW5lIERNQ1VCX0lOQk9YMF9CQVNFX0FERFJFU1NfX0RNQ1VCX0lOQk9YMF9CQVNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9JTkJPWDBfQkFTRV9BRERSRVNTX19ETUNVQl9JTkJPWDBfQkFTRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9JTkJPWDBfU0laRQorI2RlZmluZSBETUNVQl9JTkJPWDBfU0laRV9fRE1DVUJfSU5CT1gwX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfSU5CT1gwX1NJWkVfX0RNQ1VCX0lOQk9YMF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfSU5CT1gwX1dQVFIKKyNkZWZpbmUgRE1DVUJfSU5CT1gwX1dQVFJfX0RNQ1VCX0lOQk9YMF9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX0lOQk9YMF9XUFRSX19ETUNVQl9JTkJPWDBfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX0lOQk9YMF9SUFRSCisjZGVmaW5lIERNQ1VCX0lOQk9YMF9SUFRSX19ETUNVQl9JTkJPWDBfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9JTkJPWDBfUlBUUl9fRE1DVUJfSU5CT1gwX1JQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9JTkJPWDFfQkFTRV9BRERSRVNTCisjZGVmaW5lIERNQ1VCX0lOQk9YMV9CQVNFX0FERFJFU1NfX0RNQ1VCX0lOQk9YMV9CQVNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9JTkJPWDFfQkFTRV9BRERSRVNTX19ETUNVQl9JTkJPWDFfQkFTRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9JTkJPWDFfU0laRQorI2RlZmluZSBETUNVQl9JTkJPWDFfU0laRV9fRE1DVUJfSU5CT1gxX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfSU5CT1gxX1NJWkVfX0RNQ1VCX0lOQk9YMV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfSU5CT1gxX1dQVFIKKyNkZWZpbmUgRE1DVUJfSU5CT1gxX1dQVFJfX0RNQ1VCX0lOQk9YMV9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX0lOQk9YMV9XUFRSX19ETUNVQl9JTkJPWDFfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX0lOQk9YMV9SUFRSCisjZGVmaW5lIERNQ1VCX0lOQk9YMV9SUFRSX19ETUNVQl9JTkJPWDFfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9JTkJPWDFfUlBUUl9fRE1DVUJfSU5CT1gxX1JQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9PVVRCT1gwX0JBU0VfQUREUkVTUworI2RlZmluZSBETUNVQl9PVVRCT1gwX0JBU0VfQUREUkVTU19fRE1DVUJfT1VUQk9YMF9CQVNFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfT1VUQk9YMF9CQVNFX0FERFJFU1NfX0RNQ1VCX09VVEJPWDBfQkFTRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfT1VUQk9YMF9TSVpFCisjZGVmaW5lIERNQ1VCX09VVEJPWDBfU0laRV9fRE1DVUJfT1VUQk9YMF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9PVVRCT1gwX1NJWkVfX0RNQ1VCX09VVEJPWDBfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9PVVRCT1gwX1dQVFIKKyNkZWZpbmUgRE1DVUJfT1VUQk9YMF9XUFRSX19ETUNVQl9PVVRCT1gwX1dQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX09VVEJPWDBfV1BUUl9fRE1DVUJfT1VUQk9YMF9XUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX09VVEJPWDBfUlBUUgorI2RlZmluZSBETUNVQl9PVVRCT1gwX1JQVFJfX0RNQ1VCX09VVEJPWDBfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfT1VUQk9YMF9SUFRSX19ETUNVQl9PVVRCT1gwX1JQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfT1VUQk9YMV9CQVNFX0FERFJFU1MKKyNkZWZpbmUgRE1DVUJfT1VUQk9YMV9CQVNFX0FERFJFU1NfX0RNQ1VCX09VVEJPWDFfQkFTRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX09VVEJPWDFfQkFTRV9BRERSRVNTX19ETUNVQl9PVVRCT1gxX0JBU0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX09VVEJPWDFfU0laRQorI2RlZmluZSBETUNVQl9PVVRCT1gxX1NJWkVfX0RNQ1VCX09VVEJPWDFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfT1VUQk9YMV9TSVpFX19ETUNVQl9PVVRCT1gxX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfT1VUQk9YMV9XUFRSCisjZGVmaW5lIERNQ1VCX09VVEJPWDFfV1BUUl9fRE1DVUJfT1VUQk9YMV9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9PVVRCT1gxX1dQVFJfX0RNQ1VCX09VVEJPWDFfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9PVVRCT1gxX1JQVFIKKyNkZWZpbmUgRE1DVUJfT1VUQk9YMV9SUFRSX19ETUNVQl9PVVRCT1gxX1JQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX09VVEJPWDFfUlBUUl9fRE1DVUJfT1VUQk9YMV9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX1RJTUVSX1RSSUdHRVIwCisjZGVmaW5lIERNQ1VCX1RJTUVSX1RSSUdHRVIwX19ETUNVQl9USU1FUl9UUklHR0VSMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9USU1FUl9UUklHR0VSMF9fRE1DVUJfVElNRVJfVFJJR0dFUjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9USU1FUl9UUklHR0VSMQorI2RlZmluZSBETUNVQl9USU1FUl9UUklHR0VSMV9fRE1DVUJfVElNRVJfVFJJR0dFUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfVElNRVJfVFJJR0dFUjFfX0RNQ1VCX1RJTUVSX1RSSUdHRVIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfVElNRVJfV0lORE9XCisjZGVmaW5lIERNQ1VCX1RJTUVSX1dJTkRPV19fRE1DVUJfVElNRVJfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9USU1FUl9XSU5ET1dfX0RNQ1VCX1RJTUVSX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorLy9ETUNVQl9TQ1JBVENIMAorI2RlZmluZSBETUNVQl9TQ1JBVENIMF9fRE1DVUJfU0NSQVRDSDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDBfX0RNQ1VCX1NDUkFUQ0gwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfU0NSQVRDSDEKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDFfX0RNQ1VCX1NDUkFUQ0gxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1NDUkFUQ0gxX19ETUNVQl9TQ1JBVENIMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX1NDUkFUQ0gyCisjZGVmaW5lIERNQ1VCX1NDUkFUQ0gyX19ETUNVQl9TQ1JBVENIMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9TQ1JBVENIMl9fRE1DVUJfU0NSQVRDSDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9TQ1JBVENIMworI2RlZmluZSBETUNVQl9TQ1JBVENIM19fRE1DVUJfU0NSQVRDSDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDNfX0RNQ1VCX1NDUkFUQ0gzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfU0NSQVRDSDQKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDRfX0RNQ1VCX1NDUkFUQ0g0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1NDUkFUQ0g0X19ETUNVQl9TQ1JBVENINF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX1NDUkFUQ0g1CisjZGVmaW5lIERNQ1VCX1NDUkFUQ0g1X19ETUNVQl9TQ1JBVENINV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9TQ1JBVENINV9fRE1DVUJfU0NSQVRDSDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9TQ1JBVENINgorI2RlZmluZSBETUNVQl9TQ1JBVENINl9fRE1DVUJfU0NSQVRDSDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDZfX0RNQ1VCX1NDUkFUQ0g2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfU0NSQVRDSDcKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDdfX0RNQ1VCX1NDUkFUQ0g3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1NDUkFUQ0g3X19ETUNVQl9TQ1JBVENIN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX1NDUkFUQ0g4CisjZGVmaW5lIERNQ1VCX1NDUkFUQ0g4X19ETUNVQl9TQ1JBVENIOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9TQ1JBVENIOF9fRE1DVUJfU0NSQVRDSDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9TQ1JBVENIOQorI2RlZmluZSBETUNVQl9TQ1JBVENIOV9fRE1DVUJfU0NSQVRDSDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDlfX0RNQ1VCX1NDUkFUQ0g5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfU0NSQVRDSDEwCisjZGVmaW5lIERNQ1VCX1NDUkFUQ0gxMF9fRE1DVUJfU0NSQVRDSDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9TQ1JBVENIMTBfX0RNQ1VCX1NDUkFUQ0gxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9TQ1JBVENIMTEKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDExX19ETUNVQl9TQ1JBVENIMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1NDUkFUQ0gxMV9fRE1DVUJfU0NSQVRDSDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX1NDUkFUQ0gxMgorI2RlZmluZSBETUNVQl9TQ1JBVENIMTJfX0RNQ1VCX1NDUkFUQ0gxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDEyX19ETUNVQl9TQ1JBVENIMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfU0NSQVRDSDEzCisjZGVmaW5lIERNQ1VCX1NDUkFUQ0gxM19fRE1DVUJfU0NSQVRDSDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9TQ1JBVENIMTNfX0RNQ1VCX1NDUkFUQ0gxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9TQ1JBVENIMTQKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDE0X19ETUNVQl9TQ1JBVENIMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX1NDUkFUQ0gxNF9fRE1DVUJfU0NSQVRDSDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX1NDUkFUQ0gxNQorI2RlZmluZSBETUNVQl9TQ1JBVENIMTVfX0RNQ1VCX1NDUkFUQ0gxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfU0NSQVRDSDE1X19ETUNVQl9TQ1JBVENIMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRE1DVUJfQ05UTAorI2RlZmluZSBETUNVQl9DTlRMX19ETUNVQl9MU19XQUtFX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRE1DVUJfQ05UTF9fRE1DVUJfRE1DVUJDTEtfUl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERNQ1VCX0NOVExfX0RNQ1VCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRE1DVUJfQ05UTF9fRE1DVUJfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBETUNVQl9DTlRMX19ETUNVQl9NRU1fTElHSFRfU0xFRVBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERNQ1VCX0NOVExfX0RNQ1VCX1RSQUNFUE9SVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgRE1DVUJfQ05UTF9fRE1DVUJfUFdBSVRfTU9ERV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBETUNVQl9DTlRMX19ETUNVQl9MU19XQUtFX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBETUNVQl9DTlRMX19ETUNVQl9ETUNVQkNMS19SX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBETUNVQl9DTlRMX19ETUNVQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBETUNVQl9DTlRMX19ETUNVQl9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBETUNVQl9DTlRMX19ETUNVQl9NRU1fTElHSFRfU0xFRVBfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBETUNVQl9DTlRMX19ETUNVQl9UUkFDRVBPUlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBETUNVQl9DTlRMX19ETUNVQl9QV0FJVF9NT0RFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9ETUNVQl9HUElOVF9EQVRBSU4wCisjZGVmaW5lIERNQ1VCX0dQSU5UX0RBVEFJTjBfX0RNQ1VCX0dQSU5UX0RBVEFJTjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9HUElOVF9EQVRBSU4wX19ETUNVQl9HUElOVF9EQVRBSU4wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9HUElOVF9EQVRBSU4xCisjZGVmaW5lIERNQ1VCX0dQSU5UX0RBVEFJTjFfX0RNQ1VCX0dQSU5UX0RBVEFJTjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9HUElOVF9EQVRBSU4xX19ETUNVQl9HUElOVF9EQVRBSU4xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9HUElOVF9EQVRBT1VUCisjZGVmaW5lIERNQ1VCX0dQSU5UX0RBVEFPVVRfX0RNQ1VCX0dQSU5UX0RBVEFPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9HUElOVF9EQVRBT1VUX19ETUNVQl9HUElOVF9EQVRBT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9VTkRFRklORURfQUREUkVTU19GQVVMVF9BRERSCisjZGVmaW5lIERNQ1VCX1VOREVGSU5FRF9BRERSRVNTX0ZBVUxUX0FERFJfX0RNQ1VCX1VOREVGSU5FRF9BRERSRVNTX0ZBVUxUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9VTkRFRklORURfQUREUkVTU19GQVVMVF9BRERSX19ETUNVQl9VTkRFRklORURfQUREUkVTU19GQVVMVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9MU19XQUtFX0lOVF9FTkFCTEUKKyNkZWZpbmUgRE1DVUJfTFNfV0FLRV9JTlRfRU5BQkxFX19ETUNVQl9MU19XQUtFX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERNQ1VCX0xTX1dBS0VfSU5UX0VOQUJMRV9fRE1DVUJfTFNfV0FLRV9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RNQ1VCX01FTV9QV1JfQ05UTAorI2RlZmluZSBETUNVQl9NRU1fUFdSX0NOVExfX0RNQ1VCX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRE1DVUJfTUVNX1BXUl9DTlRMX19ETUNVQl9NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERNQ1VCX01FTV9QV1JfQ05UTF9fRE1DVUJfTUVNX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBETUNVQl9NRU1fUFdSX0NOVExfX0RNQ1VCX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBETUNVQl9NRU1fUFdSX0NOVExfX0RNQ1VCX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBETUNVQl9NRU1fUFdSX0NOVExfX0RNQ1VCX01FTV9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9ETUNVQl9USU1FUl9DVVJSRU5UCisjZGVmaW5lIERNQ1VCX1RJTUVSX0NVUlJFTlRfX0RNQ1VCX1RJTUVSX0NVUlJFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9USU1FUl9DVVJSRU5UX19ETUNVQl9USU1FUl9DVVJSRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9ETUNVQl9QUk9DX0lECisjZGVmaW5lIERNQ1VCX1BST0NfSURfX0RNQ1VCX1BST0NfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBETUNVQl9QUk9DX0lEX19ETUNVQl9QUk9DX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX21taHViYnViX21jaWZfd2IyX2Rpc3BkZWMKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9fTUNJRl9XQl9CVUZfRFVBTFNJWkVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9TV19JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9fTUNJRl9XQl9CVUZNR1JfU1dfU0xJQ0VfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX09WRVJSVU5fSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9TV19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfU1dfQ09OVFJPTF9fTUNJRl9XQl9QX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TV19DT05UUk9MX19NQ0lGX1dCX0JVRl9BRERSX0ZFTkNFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGX0RVQUxTSVpFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX1NMSUNFX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX09WRVJSVU5fSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NXX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfUF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NXX0NPTlRST0xfX01DSUZfV0JfQlVGX0FERFJfRkVOQ0VfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1IKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfQ1VSX0xJTkVfUl9fTUNJRl9XQl9CVUZNR1JfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1JfX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX19NQ0lGX1dCX0JVRk1HUl9TV19JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NUQVRVU19fTUNJRl9XQl9CVUZNR1JfU1dfT1ZFUlJVTl9JTlRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9CVUZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX19NQ0lGX1dCX0JVRl9EVUFMU0laRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1NUQVRVU19fTUNJRl9XQl9CVUZNR1JfQlVGVEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfU1RBVFVTX19NQ0lGX1dCX0JVRk1HUl9ORVhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1NXX0lOVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX1NXX09WRVJSVU5fSU5UX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGX0RVQUxTSVpFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkZGMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9TVEFUVVNfX01DSUZfV0JfQlVGTUdSX05FWFRfQlVGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl9QSVRDSAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl9QSVRDSF9fTUNJRl9XQl9CVUZfTFVNQV9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfUElUQ0hfX01DSUZfV0JfQlVGX0NIUk9NQV9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl9QSVRDSF9fTUNJRl9XQl9CVUZfTFVNQV9QSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl9QSVRDSF9fTUNJRl9XQl9CVUZfQ0hST01BX1BJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9TVEFUVVNfX01DSUZfV0JfQlVGXzFfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVU19fTUNJRl9XQl9CVUZfMV9GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTX19NQ0lGX1dCX0JVRl8xX0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX19NQ0lGX1dCX0JVRl8xX05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMV9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX19NQ0lGX1dCX0JVRl8xX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMV9DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9TVEFUVVMyX19NQ0lGX1dCX0JVRl8xX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1NUQVRVUzJfX01DSUZfV0JfQlVGXzFfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9TVEFUVVNfX01DSUZfV0JfQlVGXzJfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVU19fTUNJRl9XQl9CVUZfMl9GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTX19NQ0lGX1dCX0JVRl8yX0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9TVEFUVVMyX19NQ0lGX1dCX0JVRl8yX05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMl9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9TVEFUVVMyX19NQ0lGX1dCX0JVRl8yX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfU1RBVFVTMl9fTUNJRl9XQl9CVUZfMl9DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9TVEFUVVMyX19NQ0lGX1dCX0JVRl8yX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1NUQVRVUzJfX01DSUZfV0JfQlVGXzJfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19TVEFUVVNfX01DSUZfV0JfQlVGXzNfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVU19fTUNJRl9XQl9CVUZfM19GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTX19NQ0lGX1dCX0JVRl8zX0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19TVEFUVVMyX19NQ0lGX1dCX0JVRl8zX05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTMl9fTUNJRl9XQl9CVUZfM19DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19TVEFUVVMyX19NQ0lGX1dCX0JVRl8zX1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfU1RBVFVTMl9fTUNJRl9XQl9CVUZfM19DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19TVEFUVVMyX19NQ0lGX1dCX0JVRl8zX0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1NUQVRVUzJfX01DSUZfV0JfQlVGXzNfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfU1dfTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1ZDRV9MT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9CVUZUQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfTlhUX0JVRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0ZJRUxEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9DVVJfTElORV9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0xPTkdfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9TVEFUVVNfX01DSUZfV0JfQlVGXzRfU0hPUlRfTElORV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVU19fTUNJRl9XQl9CVUZfNF9GUkFNRV9MRU5HVEhfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1NXX0xPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1ZDRV9MT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRTBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0JVRlRBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X05YVF9CVUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0ZJRUxEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0NVUl9MSU5FX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0xPTkdfTElORV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X1NIT1JUX0xJTkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTX19NQ0lGX1dCX0JVRl80X0ZSQU1FX0xFTkdUSF9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTMgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ1VSX0xJTkVfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX19NQ0lGX1dCX0JVRl80X05FV19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTMl9fTUNJRl9XQl9CVUZfNF9DT0xPUl9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfVE1aX0JMQUNLX1BJWEVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX19NQ0lGX1dCX0JVRl80X1RNWl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfWV9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfU1RBVFVTMl9fTUNJRl9XQl9CVUZfNF9DX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9TVEFUVVMyX19NQ0lGX1dCX0JVRl80X0VZRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ1VSX0xJTkVfUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfTkVXX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ09MT1JfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfVE1aX0JMQUNLX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfVE1aX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfWV9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfQ19PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1NUQVRVUzJfX01DSUZfV0JfQlVGXzRfRVlFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0FSQklUUkFUSU9OX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX19NQ0lGX1dCX0NMSUVOVF9BUkJJVFJBVElPTl9TTElDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQVJCSVRSQVRJT05fQ09OVFJPTF9fTUNJRl9XQl9USU1FX1BFUl9QSVhFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX19NQ0lGX1dCX0NMSUVOVF9BUkJJVFJBVElPTl9TTElDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9BUkJJVFJBVElPTl9DT05UUk9MX19NQ0lGX1dCX1RJTUVfUEVSX1BJWEVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkMwMDAwMEwKKy8vTUNJRl9XQjJfTUNJRl9XQl9TQ0xLX0NIQU5HRQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX1NDTEtfQ0hBTkdFX19XTV9DSEFOR0VfQUNLX0ZPUkNFX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9TQ0xLX0NIQU5HRV9fTUNJRl9XQl9DTElfV0FURVJNQVJLX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfU0NMS19DSEFOR0VfX1dNX0NIQU5HRV9BQ0tfRk9SQ0VfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfU0NMS19DSEFOR0VfX01DSUZfV0JfQ0xJX1dBVEVSTUFSS19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisvL01DSUZfV0IyX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX1RFU1RfREVCVUdfSU5ERVhfX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYX19NQ0lGX1dCX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWF9fTUNJRl9XQl9URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfVEVTVF9ERUJVR19JTkRFWF9fTUNJRl9XQl9URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL01DSUZfV0IyX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfVEVTVF9ERUJVR19EQVRBX19NQ0lGX1dCX1RFU1RfREVCVUdfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX1RFU1RfREVCVUdfREFUQV9fTUNJRl9XQl9URVNUX0RFQlVHX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfWV9fTUNJRl9XQl9CVUZfMV9BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9BRERSX1lfX01DSUZfV0JfQlVGXzFfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfMV9BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzFfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfQworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfQ19fTUNJRl9XQl9CVUZfMV9BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9BRERSX0NfX01DSUZfV0JfQlVGXzFfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfMV9BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzFfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX0FERFJfWV9fTUNJRl9XQl9CVUZfMl9BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX1lfX01DSUZfV0JfQlVGXzJfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfMl9BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzJfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX0FERFJfQworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX0FERFJfQ19fTUNJRl9XQl9CVUZfMl9BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX0NfX01DSUZfV0JfQlVGXzJfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfMl9BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzJfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfWV9fTUNJRl9XQl9CVUZfM19BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX1lfX01DSUZfV0JfQlVGXzNfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfM19BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzNfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfQworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfQ19fTUNJRl9XQl9CVUZfM19BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX0NfX01DSUZfV0JfQlVGXzNfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfM19BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzNfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfWQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfWV9fTUNJRl9XQl9CVUZfNF9BRERSX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9BRERSX1lfX01DSUZfV0JfQlVGXzRfQUREUl9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9ZX09GRlNFVF9fTUNJRl9XQl9CVUZfNF9BRERSX1lfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfWV9PRkZTRVRfX01DSUZfV0JfQlVGXzRfQUREUl9ZX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfQworI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfQ19fTUNJRl9XQl9CVUZfNF9BRERSX0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9BRERSX0NfX01DSUZfV0JfQlVGXzRfQUREUl9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9BRERSX0NfT0ZGU0VUCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9DX09GRlNFVF9fTUNJRl9XQl9CVUZfNF9BRERSX0NfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X0FERFJfQ19PRkZTRVRfX01DSUZfV0JfQlVGXzRfQUREUl9DX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTF9fTUNJRl9XQl9CVUZNR1JfVkNFX0xPQ0tfSUdOT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1ZDRV9DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9WQ0VfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRk1HUl9WQ0VfQ09OVFJPTF9fTUNJRl9XQl9CVUZNR1JfVkNFX1NMSUNFX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGTUdSX1ZDRV9DT05UUk9MX19NQ0lGX1dCX0JVRk1HUl9TTElDRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9MT0NLX0lHTk9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9TTElDRV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1ZDRV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZNR1JfVkNFX0NPTlRST0xfX01DSUZfV0JfQlVGTUdSX1NMSUNFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vTUNJRl9XQjJfTUNJRl9XQl9OQl9QU1RBVEVfTEFURU5DWV9XQVRFUk1BUksKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9OQl9QU1RBVEVfTEFURU5DWV9XQVRFUk1BUktfX05CX1BTVEFURV9DSEFOR0VfUkVGUkVTSF9XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfTkJfUFNUQVRFX0xBVEVOQ1lfV0FURVJNQVJLX19OQl9QU1RBVEVfQ0hBTkdFX1JFRlJFU0hfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkZMCisvL01DSUZfV0IyX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9OQl9QU1RBVEVfQ09OVFJPTF9fTkJfUFNUQVRFX0NIQU5HRV9VUkdFTlRfRFVSSU5HX1JFUVVFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfRk9SQ0VfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX05CX1BTVEFURV9DT05UUk9MX19OQl9QU1RBVEVfQUxMT1dfRk9SX1VSR0VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9OQl9QU1RBVEVfQ09OVFJPTF9fTkJfUFNUQVRFX0NIQU5HRV9XQVRFUk1BUktfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfVVJHRU5UX0RVUklOR19SRVFVRVNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfRk9SQ0VfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9BTExPV19GT1JfVVJHRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfTkJfUFNUQVRFX0NPTlRST0xfX05CX1BTVEFURV9DSEFOR0VfV0FURVJNQVJLX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisvL01DSUZfV0IyX01DSUZfV0JfV0FURVJNQVJLCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfV0FURVJNQVJLX19NQ0lGX1dCX0NMSV9XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX1dBVEVSTUFSS19fTUNJRl9XQl9DTElfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0NMT0NLX0dBVEVSX0NPTlRST0wKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9DTE9DS19HQVRFUl9DT05UUk9MX19NQ0lGX1dCX0NMSV9DTE9DS19HQVRFUl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQ0xPQ0tfR0FURVJfQ09OVFJPTF9fTUNJRl9XQl9DTElfQ0xPQ0tfR0FURVJfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL01DSUZfV0IyX01DSUZfV0JfV0FSTV9VUF9DTlRMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfV0FSTV9VUF9DTlRMX19NQ0lGX1dCX1BJVENIX1NJWkVfV0FSTVVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX1dBUk1fVVBfQ05UTF9fTUNJRl9XQl9QSVRDSF9TSVpFX1dBUk1VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX1NFTEZfUkVGUkVTSF9DT05UUk9MCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfU0VMRl9SRUZSRVNIX0NPTlRST0xfX0RJU19SRUZSRVNIX1VOREVSX05CUFJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX1NFTEZfUkVGUkVTSF9DT05UUk9MX19QRVJGUkFNRV9TRUxGX1JFRlJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTF9fRElTX1JFRlJFU0hfVU5ERVJfTkJQUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9TRUxGX1JFRlJFU0hfQ09OVFJPTF9fUEVSRlJBTUVfU0VMRl9SRUZSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vTUNJRl9XQjJfTVVMVElfTEVWRUxfUU9TX0NUUkwKKyNkZWZpbmUgTUNJRl9XQjJfTVVMVElfTEVWRUxfUU9TX0NUUkxfX01BWF9TQ0FMRURfVElNRV9UT19VUkdFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01VTFRJX0xFVkVMX1FPU19DVFJMX19NQVhfU0NBTEVEX1RJTUVfVE9fVVJHRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGX0xVTUFfU0laRQorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl9MVU1BX1NJWkVfX01DSUZfV0JfQlVGX0xVTUFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfTFVNQV9TSVpFX19NQ0lGX1dCX0JVRl9MVU1BX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfQ0hST01BX1NJWkUKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfQ0hST01BX1NJWkVfX01DSUZfV0JfQlVGX0NIUk9NQV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGX0NIUk9NQV9TSVpFX19NQ0lGX1dCX0JVRl9DSFJPTUFfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfMV9BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzFfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfMV9BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzFfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfMl9BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzJfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfMl9BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzJfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfM19BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzNfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfM19BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzNfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9BRERSX1lfSElHSF9fTUNJRl9XQl9CVUZfNF9BRERSX1lfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0hfX01DSUZfV0JfQlVGXzRfQUREUl9ZX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0gKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9BRERSX0NfSElHSF9fTUNJRl9XQl9CVUZfNF9BRERSX0NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0hfX01DSUZfV0JfQlVGXzRfQUREUl9DX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMV9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8xX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzFfUkVTT0xVVElPTl9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorLy9NQ0lGX1dCMl9NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT04KKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzJfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfMl9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl8yX1JFU09MVVRJT05fSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGMDAwMEwKKy8vTUNJRl9XQjJfTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl8zX1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisjZGVmaW5lIE1DSUZfV0IyX01DSUZfV0JfQlVGXzNfUkVTT0xVVElPTl9fTUNJRl9XQl9CVUZfM19SRVNPTFVUSU9OX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRjAwMDBMCisvL01DSUZfV0IyX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTgorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNJRl9XQjJfTUNJRl9XQl9CVUZfNF9SRVNPTFVUSU9OX19NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorI2RlZmluZSBNQ0lGX1dCMl9NQ0lGX1dCX0JVRl80X1JFU09MVVRJT05fX01DSUZfV0JfQlVGXzRfUkVTT0xVVElPTl9IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZGNlX2RjX2RjaHZtX2h2bV9kaXNwZGVjCisvL0RDSFZNX0NUUkwwCisjZGVmaW5lIERDSFZNX0NUUkwwX19IT1NUVk1fSU5JVF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hWTV9DVFJMMF9fSE9TVFZNX0lOSVRfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9EQ0hWTV9DVFJMMQorI2RlZmluZSBEQ0hWTV9DVFJMMV9fRFVNTVkxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENIVk1fQ1RSTDFfX0RVTU1ZMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRENIVk1fQ0xLX0NUUkwKKyNkZWZpbmUgRENIVk1fQ0xLX0NUUkxfX0hWTV9ESVNQQ0xLX1JfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFZNX0NMS19DVFJMX19IVk1fRElTUENMS19HX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQ0hWTV9DTEtfQ1RSTF9fSFZNX0RDRkNMS19SX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENIVk1fQ0xLX0NUUkxfX0hWTV9EQ0ZDTEtfR19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERDSFZNX0NMS19DVFJMX19UUl9SRVFfUkVRQ0xLUkVRX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQ0hWTV9DTEtfQ1RSTF9fVFdfUlNQX0NPTVBDTEtSRVFfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRENIVk1fQ0xLX0NUUkxfX0hWTV9ESVNQQ0xLX1JfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENIVk1fQ0xLX0NUUkxfX0hWTV9ESVNQQ0xLX0dfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRENIVk1fQ0xLX0NUUkxfX0hWTV9EQ0ZDTEtfUl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRENIVk1fQ0xLX0NUUkxfX0hWTV9EQ0ZDTEtfR19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgRENIVk1fQ0xLX0NUUkxfX1RSX1JFUV9SRVFDTEtSRVFfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgRENIVk1fQ0xLX0NUUkxfX1RXX1JTUF9DT01QQ0xLUkVRX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKy8vRENIVk1fTUVNX0NUUkwKKyNkZWZpbmUgRENIVk1fTUVNX0NUUkxfX0hWTV9HUFVWTVJFVF9QV1JfUkVRX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDSFZNX01FTV9DVFJMX19IVk1fR1BVVk1SRVRfRk9SQ0VfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQ0hWTV9NRU1fQ1RSTF9fSFZNX0dQVVZNUkVUX1BPV0VSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRENIVk1fTUVNX0NUUkxfX0hWTV9HUFVWTVJFVF9QV1JfUkVRX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENIVk1fTUVNX0NUUkxfX0hWTV9HUFVWTVJFVF9GT1JDRV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgRENIVk1fTUVNX0NUUkxfX0hWTV9HUFVWTVJFVF9QT1dFUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKy8vRENIVk1fUklPTU1VX0NUUkwwCisjZGVmaW5lIERDSFZNX1JJT01NVV9DVFJMMF9fSE9TVFZNX1BSRUZFVENIX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hWTV9SSU9NTVVfQ1RSTDBfX0hPU1RWTV9QT1dFUlNUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENIVk1fUklPTU1VX0NUUkwwX19IT1NUVk1fUFJFRkVUQ0hfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENIVk1fUklPTU1VX0NUUkwwX19IT1NUVk1fUE9XRVJTVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vRENIVk1fUklPTU1VX1NUQVQwCisjZGVmaW5lIERDSFZNX1JJT01NVV9TVEFUMF9fUklPTU1VX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ0hWTV9SSU9NTVVfU1RBVDBfX0hPU1RWTV9QUkVGRVRDSF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRENIVk1fUklPTU1VX1NUQVQwX19SSU9NTVVfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRENIVk1fUklPTU1VX1NUQVQwX19IT1NUVk1fUFJFRkVUQ0hfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKworCisvLyBhZGRyZXNzQmxvY2s6IHZnYV92Z2FzZXFpbmQKKy8vU0VRMDAKKyNkZWZpbmUgU0VRMDBfX1NFUV9SU1QwQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNFUTAwX19TRVFfUlNUMUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRVEwMF9fU0VRX1JTVDBCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxTAorI2RlZmluZSBTRVEwMF9fU0VRX1JTVDFCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyTAorLy9TRVEwMQorI2RlZmluZSBTRVEwMV9fU0VRX0RPVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0VRMDFfX1NFUV9TSElGVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNFUTAxX19TRVFfUENMS0JZMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRVEwMV9fU0VRX1NISUZUNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0VRMDFfX1NFUV9NQVhCV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNFUTAxX19TRVFfRE9UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFMCisjZGVmaW5lIFNFUTAxX19TRVFfU0hJRlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRMCisjZGVmaW5lIFNFUTAxX19TRVFfUENMS0JZMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhMCisjZGVmaW5lIFNFUTAxX19TRVFfU0hJRlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTBMCisjZGVmaW5lIFNFUTAxX19TRVFfTUFYQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBMCisvL1NFUTAyCisjZGVmaW5lIFNFUTAyX19TRVFfTUFQMF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRVEwMl9fU0VRX01BUDFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0VRMDJfX1NFUV9NQVAyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNFUTAyX19TRVFfTUFQM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRVEwMl9fU0VRX01BUDBfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxTAorI2RlZmluZSBTRVEwMl9fU0VRX01BUDFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyTAorI2RlZmluZSBTRVEwMl9fU0VRX01BUDJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0TAorI2RlZmluZSBTRVEwMl9fU0VRX01BUDNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4TAorLy9TRVEwMworI2RlZmluZSBTRVEwM19fU0VRX0ZPTlRfQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0VRMDNfX1NFUV9GT05UX0IyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNFUTAzX19TRVFfRk9OVF9BMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRVEwM19fU0VRX0ZPTlRfQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0VRMDNfX1NFUV9GT05UX0IwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNFUTAzX19TRVFfRk9OVF9BMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRVEwM19fU0VRX0ZPTlRfQjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxTAorI2RlZmluZSBTRVEwM19fU0VRX0ZPTlRfQjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyTAorI2RlZmluZSBTRVEwM19fU0VRX0ZPTlRfQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0TAorI2RlZmluZSBTRVEwM19fU0VRX0ZPTlRfQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4TAorI2RlZmluZSBTRVEwM19fU0VRX0ZPTlRfQjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwTAorI2RlZmluZSBTRVEwM19fU0VRX0ZPTlRfQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwTAorLy9TRVEwNAorI2RlZmluZSBTRVEwNF9fU0VRXzI1NktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0VRMDRfX1NFUV9PRERFVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNFUTA0X19TRVFfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRVEwNF9fU0VRXzI1NktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyTAorI2RlZmluZSBTRVEwNF9fU0VRX09EREVWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0TAorI2RlZmluZSBTRVEwNF9fU0VRX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4TAorCisKKy8vIGFkZHJlc3NCbG9jazogdmdhX3ZnYWNydGluZAorLy9DUlQwMAorI2RlZmluZSBDUlQwMF9fSF9UT1RBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1JUMDBfX0hfVE9UQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkwKKy8vQ1JUMDEKKyNkZWZpbmUgQ1JUMDFfX0hfRElTUF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDAxX19IX0RJU1BfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZMCisvL0NSVDAyCisjZGVmaW5lIENSVDAyX19IX0JMQU5LX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDUlQwMl9fSF9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGTAorLy9DUlQwMworI2RlZmluZSBDUlQwM19fSF9CTEFOS19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1JUMDNfX0hfREVfU0tFV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIENSVDAzX19DUjEwQ1IxMV9SX0RJU19CX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBDUlQwM19fSF9CTEFOS19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGTAorI2RlZmluZSBDUlQwM19fSF9ERV9TS0VXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYwTAorI2RlZmluZSBDUlQwM19fQ1IxMENSMTFfUl9ESVNfQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwTAorLy9DUlQwNAorI2RlZmluZSBDUlQwNF9fSF9TWU5DX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1JUMDRfX0hfU1lOQ19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkwKKy8vQ1JUMDUKKyNkZWZpbmUgQ1JUMDVfX0hfU1lOQ19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDA1X19IX1NZTkNfU0tFV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBDUlQwNV9fSF9CTEFOS19FTkRfQjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQ1JUMDVfX0hfU1lOQ19FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkwKKyNkZWZpbmUgQ1JUMDVfX0hfU1lOQ19TS0VXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2MEwKKyNkZWZpbmUgQ1JUMDVfX0hfQkxBTktfRU5EX0I1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MEwKKy8vQ1JUMDYKKyNkZWZpbmUgQ1JUMDZfX1ZfVE9UQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDA2X19WX1RPVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZMCisvL0NSVDA3CisjZGVmaW5lIENSVDA3X19WX1RPVEFMX0I4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDUlQwN19fVl9ESVNQX0VORF9COF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQ1JUMDdfX1ZfU1lOQ19TVEFSVF9COF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIENSVDA3X19WX0JMQU5LX1NUQVJUX0I4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBDUlQwN19fTElORV9DTVBfQjhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ1JUMDdfX1ZfVE9UQUxfQjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIENSVDA3X19WX0RJU1BfRU5EX0I5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBDUlQwN19fVl9TWU5DX1NUQVJUX0I5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQ1JUMDdfX1ZfVE9UQUxfQjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUwKKyNkZWZpbmUgQ1JUMDdfX1ZfRElTUF9FTkRfQjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMkwKKyNkZWZpbmUgQ1JUMDdfX1ZfU1lOQ19TVEFSVF9COF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNEwKKyNkZWZpbmUgQ1JUMDdfX1ZfQkxBTktfU1RBUlRfQjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOEwKKyNkZWZpbmUgQ1JUMDdfX0xJTkVfQ01QX0I4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMEwKKyNkZWZpbmUgQ1JUMDdfX1ZfVE9UQUxfQjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMEwKKyNkZWZpbmUgQ1JUMDdfX1ZfRElTUF9FTkRfQjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MEwKKyNkZWZpbmUgQ1JUMDdfX1ZfU1lOQ19TVEFSVF9COV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MEwKKy8vQ1JUMDgKKyNkZWZpbmUgQ1JUMDhfX1JPV19TQ0FOX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDA4X19CWVRFX1BBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBDUlQwOF9fUk9XX1NDQU5fU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGTAorI2RlZmluZSBDUlQwOF9fQllURV9QQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYwTAorLy9DUlQwOQorI2RlZmluZSBDUlQwOV9fTUFYX1JPV19TQ0FOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1JUMDlfX1ZfQkxBTktfU1RBUlRfQjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIENSVDA5X19MSU5FX0NNUF9COV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBDUlQwOV9fRE9VQkxFX0NIQVJfSEVJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQ1JUMDlfX01BWF9ST1dfU0NBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkwKKyNkZWZpbmUgQ1JUMDlfX1ZfQkxBTktfU1RBUlRfQjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMEwKKyNkZWZpbmUgQ1JUMDlfX0xJTkVfQ01QX0I5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MEwKKyNkZWZpbmUgQ1JUMDlfX0RPVUJMRV9DSEFSX0hFSUdIVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MEwKKy8vQ1JUMEEKKyNkZWZpbmUgQ1JUMEFfX0NVUlNPUl9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDBBX19DVVJTT1JfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBDUlQwQV9fQ1VSU09SX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGTAorI2RlZmluZSBDUlQwQV9fQ1VSU09SX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwTAorLy9DUlQwQgorI2RlZmluZSBDUlQwQl9fQ1VSU09SX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1JUMEJfX0NVUlNPUl9TS0VXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIENSVDBCX19DVVJTT1JfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZMCisjZGVmaW5lIENSVDBCX19DVVJTT1JfU0tFV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjBMCisvL0NSVDBDCisjZGVmaW5lIENSVDBDX19ESVNQX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDUlQwQ19fRElTUF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGTAorLy9DUlQwRAorI2RlZmluZSBDUlQwRF9fRElTUF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1JUMERfX0RJU1BfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkwKKy8vQ1JUMEUKKyNkZWZpbmUgQ1JUMEVfX0NVUlNPUl9MT0NfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDBFX19DVVJTT1JfTE9DX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZMCisvL0NSVDBGCisjZGVmaW5lIENSVDBGX19DVVJTT1JfTE9DX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDUlQwRl9fQ1VSU09SX0xPQ19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGTAorLy9DUlQxMAorI2RlZmluZSBDUlQxMF9fVl9TWU5DX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1JUMTBfX1ZfU1lOQ19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkwKKy8vQ1JUMTEKKyNkZWZpbmUgQ1JUMTFfX1ZfU1lOQ19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDExX19WX0lOVFJfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDUlQxMV9fVl9JTlRSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQ1JUMTFfX1NFTDVfUkVGUkVTSF9DWUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIENSVDExX19DMFQ3X1dSX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBDUlQxMV9fVl9TWU5DX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGTAorI2RlZmluZSBDUlQxMV9fVl9JTlRSX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwTAorI2RlZmluZSBDUlQxMV9fVl9JTlRSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwTAorI2RlZmluZSBDUlQxMV9fU0VMNV9SRUZSRVNIX0NZQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwTAorI2RlZmluZSBDUlQxMV9fQzBUN19XUl9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwTAorLy9DUlQxMgorI2RlZmluZSBDUlQxMl9fVl9ESVNQX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1JUMTJfX1ZfRElTUF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkwKKy8vQ1JUMTMKKyNkZWZpbmUgQ1JUMTNfX0RJU1BfUElUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDEzX19ESVNQX1BJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZMCisvL0NSVDE0CisjZGVmaW5lIENSVDE0X19VTkRSTE5fTE9DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDUlQxNF9fQUREUl9DTlRfQlk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQ1JUMTRfX0RPVUJMRV9XT1JEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIENSVDE0X19VTkRSTE5fTE9DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZMCisjZGVmaW5lIENSVDE0X19BRERSX0NOVF9CWTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBMCisjZGVmaW5lIENSVDE0X19ET1VCTEVfV09SRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDBMCisvL0NSVDE1CisjZGVmaW5lIENSVDE1X19WX0JMQU5LX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDUlQxNV9fVl9CTEFOS19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGTAorLy9DUlQxNgorI2RlZmluZSBDUlQxNl9fVl9CTEFOS19FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1JUMTZfX1ZfQkxBTktfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkwKKy8vQ1JUMTcKKyNkZWZpbmUgQ1JUMTdfX1JBMF9BU19BMTNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDE3X19SQTFfQVNfQTE0Ql9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBDUlQxN19fVkNPVU5UX0JZMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ1JUMTdfX0FERFJfQ05UX0JZMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIENSVDE3X19XUkFQX0ExNVRPQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBDUlQxN19fQllURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQ1JUMTdfX0NSVENfU1lOQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIENSVDE3X19SQTBfQVNfQTEzQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFMCisjZGVmaW5lIENSVDE3X19SQTFfQVNfQTE0Ql9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJMCisjZGVmaW5lIENSVDE3X19WQ09VTlRfQlkyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRMCisjZGVmaW5lIENSVDE3X19BRERSX0NOVF9CWTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhMCisjZGVmaW5lIENSVDE3X19XUkFQX0ExNVRPQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjBMCisjZGVmaW5lIENSVDE3X19CWVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDBMCisjZGVmaW5lIENSVDE3X19DUlRDX1NZTkNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODBMCisvL0NSVDE4CisjZGVmaW5lIENSVDE4X19MSU5FX0NNUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDUlQxOF9fTElORV9DTVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGTAorLy9DUlQxRQorI2RlZmluZSBDUlQxRV9fR1JQSF9ERUNfUkQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQ1JUMUVfX0dSUEhfREVDX1JEMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMkwKKy8vQ1JUMUYKKyNkZWZpbmUgQ1JUMUZfX0dSUEhfREVDX1JEMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENSVDFGX19HUlBIX0RFQ19SRDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZMCisvL0NSVDIyCisjZGVmaW5lIENSVDIyX19HUlBIX0xBVENIX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDUlQyMl9fR1JQSF9MQVRDSF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogdmdhX3ZnYWdycGhpbmQKKy8vR1JBMDAKKyNkZWZpbmUgR1JBMDBfX0dSUEhfU0VUX1JFU0VUMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEdSQTAwX19HUlBIX1NFVF9SRVNFVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBHUkEwMF9fR1JQSF9TRVRfUkVTRVQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgR1JBMDBfX0dSUEhfU0VUX1JFU0VUM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEdSQTAwX19HUlBIX1NFVF9SRVNFVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFMCisjZGVmaW5lIEdSQTAwX19HUlBIX1NFVF9SRVNFVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJMCisjZGVmaW5lIEdSQTAwX19HUlBIX1NFVF9SRVNFVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRMCisjZGVmaW5lIEdSQTAwX19HUlBIX1NFVF9SRVNFVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhMCisvL0dSQTAxCisjZGVmaW5lIEdSQTAxX19HUlBIX1NFVF9SRVNFVF9FTkEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBHUkEwMV9fR1JQSF9TRVRfUkVTRVRfRU5BMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgR1JBMDFfX0dSUEhfU0VUX1JFU0VUX0VOQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEdSQTAxX19HUlBIX1NFVF9SRVNFVF9FTkEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBHUkEwMV9fR1JQSF9TRVRfUkVTRVRfRU5BMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxTAorI2RlZmluZSBHUkEwMV9fR1JQSF9TRVRfUkVTRVRfRU5BMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyTAorI2RlZmluZSBHUkEwMV9fR1JQSF9TRVRfUkVTRVRfRU5BMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0TAorI2RlZmluZSBHUkEwMV9fR1JQSF9TRVRfUkVTRVRfRU5BM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4TAorLy9HUkEwMgorI2RlZmluZSBHUkEwMl9fR1JQSF9DQ09NUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgR1JBMDJfX0dSUEhfQ0NPTVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkwKKy8vR1JBMDMKKyNkZWZpbmUgR1JBMDNfX0dSUEhfUk9UQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEdSQTAzX19HUlBIX0ZOX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBHUkEwM19fR1JQSF9ST1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3TAorI2RlZmluZSBHUkEwM19fR1JQSF9GTl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4TAorLy9HUkEwNAorI2RlZmluZSBHUkEwNF9fR1JQSF9STUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgR1JBMDRfX0dSUEhfUk1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0wKKy8vR1JBMDUKKyNkZWZpbmUgR1JBMDVfX0dSUEhfV1JJVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEdSQTA1X19HUlBIX1JFQUQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBHUkEwNV9fQ0dBX09EREVWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgR1JBMDVfX0dSUEhfT0VTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEdSQTA1X19HUlBIX1BBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBHUkEwNV9fR1JQSF9XUklURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzTAorI2RlZmluZSBHUkEwNV9fR1JQSF9SRUFEMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4TAorI2RlZmluZSBHUkEwNV9fQ0dBX09EREVWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwTAorI2RlZmluZSBHUkEwNV9fR1JQSF9PRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwTAorI2RlZmluZSBHUkEwNV9fR1JQSF9QQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwTAorLy9HUkEwNgorI2RlZmluZSBHUkEwNl9fR1JQSF9HUkFQSElDU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgR1JBMDZfX0dSUEhfT0RERVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEdSQTA2X19HUlBIX0FEUlNFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBHUkEwNl9fR1JQSF9HUkFQSElDU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxTAorI2RlZmluZSBHUkEwNl9fR1JQSF9PRERFVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyTAorI2RlZmluZSBHUkEwNl9fR1JQSF9BRFJTRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDTAorLy9HUkEwNworI2RlZmluZSBHUkEwN19fR1JQSF9YQ0FSRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgR1JBMDdfX0dSUEhfWENBUkUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEdSQTA3X19HUlBIX1hDQVJFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBHUkEwN19fR1JQSF9YQ0FSRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgR1JBMDdfX0dSUEhfWENBUkUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUwKKyNkZWZpbmUgR1JBMDdfX0dSUEhfWENBUkUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMkwKKyNkZWZpbmUgR1JBMDdfX0dSUEhfWENBUkUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNEwKKyNkZWZpbmUgR1JBMDdfX0dSUEhfWENBUkUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOEwKKy8vR1JBMDgKKyNkZWZpbmUgR1JBMDhfX0dSUEhfQk1TS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEdSQTA4X19HUlBIX0JNU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiB2Z2FfdmdhYXR0cmluZAorLy9BVFRSMDAKKyNkZWZpbmUgQVRUUjAwX19BVFRSX1BBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUVFIwMF9fQVRUUl9QQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZMCisvL0FUVFIwMQorI2RlZmluZSBBVFRSMDFfX0FUVFJfUEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRUUjAxX19BVFRSX1BBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkwKKy8vQVRUUjAyCisjZGVmaW5lIEFUVFIwMl9fQVRUUl9QQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVFRSMDJfX0FUVFJfUEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGTAorLy9BVFRSMDMKKyNkZWZpbmUgQVRUUjAzX19BVFRSX1BBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUVFIwM19fQVRUUl9QQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZMCisvL0FUVFIwNAorI2RlZmluZSBBVFRSMDRfX0FUVFJfUEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRUUjA0X19BVFRSX1BBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkwKKy8vQVRUUjA1CisjZGVmaW5lIEFUVFIwNV9fQVRUUl9QQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVFRSMDVfX0FUVFJfUEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGTAorLy9BVFRSMDYKKyNkZWZpbmUgQVRUUjA2X19BVFRSX1BBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUVFIwNl9fQVRUUl9QQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZMCisvL0FUVFIwNworI2RlZmluZSBBVFRSMDdfX0FUVFJfUEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRUUjA3X19BVFRSX1BBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkwKKy8vQVRUUjA4CisjZGVmaW5lIEFUVFIwOF9fQVRUUl9QQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVFRSMDhfX0FUVFJfUEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGTAorLy9BVFRSMDkKKyNkZWZpbmUgQVRUUjA5X19BVFRSX1BBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUVFIwOV9fQVRUUl9QQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZMCisvL0FUVFIwQQorI2RlZmluZSBBVFRSMEFfX0FUVFJfUEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRUUjBBX19BVFRSX1BBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkwKKy8vQVRUUjBCCisjZGVmaW5lIEFUVFIwQl9fQVRUUl9QQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVFRSMEJfX0FUVFJfUEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGTAorLy9BVFRSMEMKKyNkZWZpbmUgQVRUUjBDX19BVFRSX1BBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUVFIwQ19fQVRUUl9QQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZMCisvL0FUVFIwRAorI2RlZmluZSBBVFRSMERfX0FUVFJfUEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRUUjBEX19BVFRSX1BBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkwKKy8vQVRUUjBFCisjZGVmaW5lIEFUVFIwRV9fQVRUUl9QQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVFRSMEVfX0FUVFJfUEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGTAorLy9BVFRSMEYKKyNkZWZpbmUgQVRUUjBGX19BVFRSX1BBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUVFIwRl9fQVRUUl9QQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZMCisvL0FUVFIxMAorI2RlZmluZSBBVFRSMTBfX0FUVFJfR1JQSF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRUUjEwX19BVFRSX01PTk9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFUVFIxMF9fQVRUUl9MR1JQSF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBVFRSMTBfX0FUVFJfQkxJTktfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVRUUjEwX19BVFRSX1BBTlRPUE9OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFUVFIxMF9fQVRUUl9QQ0xLQlkyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBVFRSMTBfX0FUVFJfQ1NFTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVRUUjEwX19BVFRSX0dSUEhfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUwKKyNkZWZpbmUgQVRUUjEwX19BVFRSX01PTk9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMkwKKyNkZWZpbmUgQVRUUjEwX19BVFRSX0xHUlBIX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNEwKKyNkZWZpbmUgQVRUUjEwX19BVFRSX0JMSU5LX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOEwKKyNkZWZpbmUgQVRUUjEwX19BVFRSX1BBTlRPUE9OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMEwKKyNkZWZpbmUgQVRUUjEwX19BVFRSX1BDTEtCWTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MEwKKyNkZWZpbmUgQVRUUjEwX19BVFRSX0NTRUxfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MEwKKy8vQVRUUjExCisjZGVmaW5lIEFUVFIxMV9fQVRUUl9PVlNDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVFRSMTFfX0FUVFJfT1ZTQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGTAorLy9BVFRSMTIKKyNkZWZpbmUgQVRUUjEyX19BVFRSX01BUF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUVFIxMl9fQVRUUl9WU01VWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBVFRSMTJfX0FUVFJfTUFQX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGTAorI2RlZmluZSBBVFRSMTJfX0FUVFJfVlNNVVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwTAorLy9BVFRSMTMKKyNkZWZpbmUgQVRUUjEzX19BVFRSX1BQQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUVFIxM19fQVRUUl9QUEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZMCisvL0FUVFIxNAorI2RlZmluZSBBVFRSMTRfX0FUVFJfQ1NFTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRUUjE0X19BVFRSX0NTRUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFUVFIxNF9fQVRUUl9DU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNMCisjZGVmaW5lIEFUVFIxNF9fQVRUUl9DU0VMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MENMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemVuZHBvaW50X2YyY29kZWNpbmQKKy8vQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX05VTUJFUl9PRl9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU1RSRUFNX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9NVUxUSVBMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19TVFJFQU1fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0RJR0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVkNGR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTk9OX0FVRElPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BST19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0tFRVBBTElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVkNGR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ09QWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTk9OX0FVRElPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl8yCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl8yX19DQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfMl9fQ0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorLy9BWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DQVBBQklMSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl8zCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl8zX19LRUVQQUxJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfM19fS0VFUEFMSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9BWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEVfX1JBTVBfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFX19SQU1QX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElORworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX09GRlNFVF9DSEFOR0VEX19TSElGVCAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfR1JPVVBfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfT0ZGU0VUX0NIQU5HRURfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0dST1VQX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorLy9BWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgICAgICAgICAweDEKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgICAgICAgMHgyCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfX1NISUZUICAgIDB4MworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX19TSElGVCAgMHg3CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfTUFTSyAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19fU0hJRlQgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX01BU0sgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09OTkVDVElPTl9MSVNUX0VOVFJZCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05ORUNUSU9OX0xJU1RfRU5UUllfX0NPTk5FQ1RJT05fTElTVF9FTlRSWV9fU0hJRlQgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09OTkVDVElPTl9MSVNUX0VOVFJZX19DT05ORUNUSU9OX0xJU1RfRU5UUllfTUFTSyAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19PVVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fT1VUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fVEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0UKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fUFJFU0VOQ0VfREVURUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19TRVFVRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9BU1NPQ0lBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT0xPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09OTkVDVElPTl9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0RFVklDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19TRVFVRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT0xPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT05ORUNUSU9OX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0RFVklDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzIKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF8yX19NSVNDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfMl9fQ09MT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzJfX01JU0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzJfX0NPTE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF8zX19DT05ORUNUSU9OX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfM19fREVGQVVMVF9ERVZJQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzNfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzNfX0RFRkFVTFRfREVWSUNFX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF80X19MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfNF9fUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzRfX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfU1BFQUtFUl9BTExPQ0FUSU9OCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9TUEVBS0VSX0FMTE9DQVRJT05fX1NQRUFLRVJfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfU1BFQUtFUl9BTExPQ0FUSU9OX19IRE1JX0NPTk5FQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1NQRUFLRVJfQUxMT0NBVElPTl9fRFBfQ09OTkVDVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9TUEVBS0VSX0FMTE9DQVRJT05fX0VYVFJBX0NPTk5FQ1RJT05fSU5GT19fU0hJRlQgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfU1BFQUtFUl9BTExPQ0FUSU9OX19TUEVBS0VSX0FMTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfU1BFQUtFUl9BTExPQ0FUSU9OX19IRE1JX0NPTk5FQ1RJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfU1BFQUtFUl9BTExPQ0FUSU9OX19EUF9DT05ORUNUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfU1BFQUtFUl9BTExPQ0FUSU9OX19FWFRSQV9DT05ORUNUSU9OX0lORk9fTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9BTExPQ0FUSU9OCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9BTExPQ0FUSU9OX19DSEFOTkVMX0FMTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfRE9XTl9NSVhfSU5GTworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfRE9XTl9NSVhfSU5GT19fTEZFX1BMQVlCQUNLX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0RPV05fTUlYX0lORk9fX0xFVkVMX1NISUZUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9ET1dOX01JWF9JTkZPX19ET1dOX01JWF9JTkhJQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfRE9XTl9NSVhfSU5GT19fTEZFX1BMQVlCQUNLX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfRE9XTl9NSVhfSU5GT19fTEVWRUxfU0hJRlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfRE9XTl9NSVhfSU5GT19fRE9XTl9NSVhfSU5ISUJJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUl9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1JfX0ZPUk1BVF9DT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1JfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1JfX0ZPUk1BVF9DT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1JfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1JfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1JfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1JfREFUQQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUl9EQVRBX19ERVNDUklQVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1JfREFUQV9fREVTQ1JJUFRPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDAxX0VOQUJMRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMDFfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDAxX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwwMV9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0NIQU5ORUxfSURfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMDFfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMDFfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9NVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMDFfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMjNfRU5BQkxFCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwyM19FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMjNfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19NVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDIzX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwyM19FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwyM19FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX01VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwyM19FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0NIQU5ORUxfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw0NV9FTkFCTEUKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw0NV9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X01VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNDVfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDY3X0VOQUJMRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNjdfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDY3X0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw2N19FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0NIQU5ORUxfSURfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNjdfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNjdfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19NVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNjdfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19DSEFOTkVMX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTElQU1lOQworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTElQU1lOQ19fVklERU9fTElQU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0xJUFNZTkNfX0FVRElPX0xJUFNZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9MSVBTWU5DX19WSURFT19MSVBTWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9MSVBTWU5DX19BVURJT19MSVBTWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9IQlIKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0hCUl9fSEJSX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9IQlJfX0hCUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfSEJSX19IQlJfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfSEJSX19IQlJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fU0lOS19JTkZPX0lOREVYCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19TSU5LX0lORk9fSU5ERVhfX1NJTktfSU5GT19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fU0lOS19JTkZPX0lOREVYX19TSU5LX0lORk9fSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fU0lOS19JTkZPX0RBVEEKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX1NJTktfSU5GT19EQVRBX19TSU5LX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19TSU5LX0lORk9fREFUQV9fU0lOS19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwxX0VOQUJMRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMV9FTkFCTEVfX01VTFRJQ0hBTk5FTDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDFfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwxX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMV9FTkFCTEVfX01VTFRJQ0hBTk5FTDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMV9FTkFCTEVfX01VTFRJQ0hBTk5FTDFfTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMV9FTkFCTEVfX01VTFRJQ0hBTk5FTDFfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMM19FTkFCTEUKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwzX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMM19FTkFCTEVfX01VTFRJQ0hBTk5FTDNfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19NVUxUSUNIQU5ORUwzX01VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDVfRU5BQkxFCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw1X0VOQUJMRV9fTVVMVElDSEFOTkVMNV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNV9FTkFCTEVfX01VTFRJQ0hBTk5FTDVfTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDVfRU5BQkxFX19NVUxUSUNIQU5ORUw1X0NIQU5ORUxfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw1X0VOQUJMRV9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw1X0VOQUJMRV9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw1X0VOQUJMRV9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw3X0VOQUJMRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMN19FTkFCTEVfX01VTFRJQ0hBTk5FTDdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDdfRU5BQkxFX19NVUxUSUNIQU5ORUw3X01VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw3X0VOQUJMRV9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMN19FTkFCTEVfX01VTFRJQ0hBTk5FTDdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMN19FTkFCTEVfX01VTFRJQ0hBTk5FTDdfTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMN19FTkFCTEVfX01VTFRJQ0hBTk5FTDdfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREUKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFX19NVUxUSUNIQU5ORUxfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERV9fTVVMVElDSEFOTkVMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19TT1VSQ0VfTlVNQkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKy8vQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzEKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfT1ZSUkRfRU5fX1NISUZUICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9PVlJSRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfT1ZSUkRfRU5fTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfT1ZSUkRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9fU0hJRlQgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzMKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX19TSElGVCAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9NQVNLICAgICAweDAwMDAwMDEwTAorLy9BWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9DT0VGRl9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19NUEVHX1NVUlJPVU5EX0lORk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfQ09FRkZfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19NUEVHX1NVUlJPVU5EX0lORk9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA2MEwKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzUKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNgorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83CisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl80X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl81X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzgKKyNkZWZpbmUgQVpBTElBX0YyX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl82X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk8KKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPX19BU1NPQ0lBVElPTl9JTkZPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GT19fQVNTT0NJQVRJT05fSU5GT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVU19fT1VUUFVUX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVNfX09VVFBVVF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19DWUNMSUNfQlVGRkVSX1dSQVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9fTFBJQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1QKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UX19MUElCX1RJTUVSX1NOQVBTSE9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEVfX0NPRElOR19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFX19DT0RJTkdfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VECisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX0FDS19VUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFQVNPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRVNQT05TRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9BQ0tfVVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFQVNPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFU1BPTlNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT04KKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1NISUZUICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX19XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX01BU0sgICAgIDB4MDAwMDAwMDNMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0NBUEFCSUxJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19fU0hJRlQgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgICAgICAgICAweDMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX19TSElGVCAgICAgICAweDcKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfX1NISUZUICAgICAgIDB4MTAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX01BU0sgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX01BU0sgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX01BU0sgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTVBFREFOQ0VfU0VOU0VfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0pBQ0tfREVURUNUSU9OX0NBUEFCSUxJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NPTk5FQ1RJT05fTElTVF9MRU5HVEgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9QQVJBTUVURVJfQ09OTkVDVElPTl9MSVNUX0xFTkdUSF9fQ09OTkVDVElPTl9MSVNUX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fUEFSQU1FVEVSX0NPTk5FQ1RJT05fTElTVF9MRU5HVEhfX0NPTk5FQ1RJT05fTElTVF9MRU5HVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemVuZHBvaW50X2Rlc2NyaXB0b3JpbmQKKy8vQVVESU9fREVTQ1JJUFRPUjAKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjBfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjBfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjBfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjEKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjFfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjFfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjFfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjIKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjJfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjJfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjJfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjMKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjNfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SM19fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjNfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjNfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjQKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjRfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I0X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SNF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I0X19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjRfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjRfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjRfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjRfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjUKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjVfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I1X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SNV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I1X19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjVfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjVfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjVfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjVfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjYKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjZfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I2X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SNl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I2X19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjZfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjZfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjZfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjZfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjcKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjdfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I3X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SN19fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I3X19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjdfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjdfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjdfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjdfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjhfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I4X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SOF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I4X19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjhfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjhfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjhfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjhfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjkKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjlfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I5X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SOV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1I5X19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjlfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjlfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjlfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjlfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxMF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjEwX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxMF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxMF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJFT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FVRElPX0RFU0NSSVBUT1IxMQorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTFfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjExX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxMV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjExX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTFfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTFfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BVURJT19ERVNDUklQVE9SMTIKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjEyX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTJfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJFT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjEyX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjEyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjEyX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjEyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVVESU9fREVTQ1JJUFRPUjEzCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxM19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVVESU9fREVTQ1JJUFRPUjEzX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBVURJT19ERVNDUklQVE9SMTNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxM19fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxM19fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFVRElPX0RFU0NSSVBUT1IxM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJFT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemVuZHBvaW50X3NpbmtpbmZvaW5kCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NQU5VRkFDVFVSRVJfSUQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX01BTlVGQUNUVVJFUl9JRF9fTUFOVUZBQ1RVUkVSX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9NQU5VRkFDVFVSRVJfSURfX01BTlVGQUNUVVJFUl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9QUk9EVUNUX0lECisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9QUk9EVUNUX0lEX19QUk9EVUNUX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUFJPRFVDVF9JRF9fUFJPRFVDVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfU0lOS19ERVNDUklQVElPTl9MRU4KKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1NJTktfREVTQ1JJUFRJT05fTEVOX19TSU5LX0RFU0NSSVBUSU9OX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0RFU0NSSVBUSU9OX0xFTl9fU0lOS19ERVNDUklQVElPTl9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9QT1JUSUQwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19QSU5fQ09OVFJPTF9QT1JUSUQwX19QT1JUSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUE9SVElEMF9fUE9SVElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUE9SVElEMQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUElOX0NPTlRST0xfUE9SVElEMV9fUE9SVElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1BJTl9DT05UUk9MX1BPUlRJRDFfX1BPUlRJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0lOS19ERVNDUklQVElPTjAKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjBfX0RFU0NSSVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT04wX19ERVNDUklQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NJTktfREVTQ1JJUFRJT04xCisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT04xX19ERVNDUklQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9OMV9fREVTQ1JJUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TSU5LX0RFU0NSSVBUSU9OMgorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9OMl9fREVTQ1JJUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjJfX0RFU0NSSVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0lOS19ERVNDUklQVElPTjMKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjNfX0RFU0NSSVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT04zX19ERVNDUklQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NJTktfREVTQ1JJUFRJT040CisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT040X19ERVNDUklQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9ONF9fREVTQ1JJUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TSU5LX0RFU0NSSVBUSU9ONQorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9ONV9fREVTQ1JJUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjVfX0RFU0NSSVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0lOS19ERVNDUklQVElPTjYKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjZfX0RFU0NSSVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT042X19ERVNDUklQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NJTktfREVTQ1JJUFRJT043CisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT043X19ERVNDUklQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9ON19fREVTQ1JJUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TSU5LX0RFU0NSSVBUSU9OOAorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9OOF9fREVTQ1JJUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjhfX0RFU0NSSVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0lOS19ERVNDUklQVElPTjkKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjlfX0RFU0NSSVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT045X19ERVNDUklQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NJTktfREVTQ1JJUFRJT04xMAorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9OMTBfX0RFU0NSSVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjEwX19ERVNDUklQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0lOS19ERVNDUklQVElPTjExCisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT04xMV9fREVTQ1JJUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9OMTFfX0RFU0NSSVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TSU5LX0RFU0NSSVBUSU9OMTIKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjEyX19ERVNDUklQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT04xMl9fREVTQ1JJUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NJTktfREVTQ1JJUFRJT04xMworI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9OMTNfX0RFU0NSSVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjEzX19ERVNDUklQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0lOS19ERVNDUklQVElPTjE0CisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT04xNF9fREVTQ1JJUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9OMTRfX0RFU0NSSVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TSU5LX0RFU0NSSVBUSU9OMTUKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjE1X19ERVNDUklQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT04xNV9fREVTQ1JJUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NJTktfREVTQ1JJUFRJT04xNgorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9OMTZfX0RFU0NSSVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0lOS19ERVNDUklQVElPTjE2X19ERVNDUklQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0lOS19ERVNDUklQVElPTjE3CisjZGVmaW5lIFNJTktfREVTQ1JJUFRJT04xN19fREVTQ1JJUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTSU5LX0RFU0NSSVBUSU9OMTdfX0RFU0NSSVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGNvbnRyb2xsZXJfYXppbnB1dGNyYzByZXN1bHRpbmQKKy8vQVpBTElBX0lOUFVUX0NSQzBfQ0hBTk5FTDAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ0hBTk5FTDBfX0lOUFVUX0NSQ19DSEFOTkVMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUwwX19JTlBVVF9DUkNfQ0hBTk5FTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUwxCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUwxX19JTlBVVF9DUkNfQ0hBTk5FTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DSEFOTkVMMV9fSU5QVVRfQ1JDX0NIQU5ORUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfSU5QVVRfQ1JDMF9DSEFOTkVMMgorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DSEFOTkVMMl9fSU5QVVRfQ1JDX0NIQU5ORUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ0hBTk5FTDJfX0lOUFVUX0NSQ19DSEFOTkVMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0lOUFVUX0NSQzBfQ0hBTk5FTDMKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ0hBTk5FTDNfX0lOUFVUX0NSQ19DSEFOTkVMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUwzX19JTlBVVF9DUkNfQ0hBTk5FTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUw0CisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUw0X19JTlBVVF9DUkNfQ0hBTk5FTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DSEFOTkVMNF9fSU5QVVRfQ1JDX0NIQU5ORUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfSU5QVVRfQ1JDMF9DSEFOTkVMNQorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DSEFOTkVMNV9fSU5QVVRfQ1JDX0NIQU5ORUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ0hBTk5FTDVfX0lOUFVUX0NSQ19DSEFOTkVMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0lOUFVUX0NSQzBfQ0hBTk5FTDYKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzBfQ0hBTk5FTDZfX0lOUFVUX0NSQ19DSEFOTkVMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUw2X19JTlBVVF9DUkNfQ0hBTk5FTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUw3CisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMwX0NIQU5ORUw3X19JTlBVVF9DUkNfQ0hBTk5FTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMF9DSEFOTkVMN19fSU5QVVRfQ1JDX0NIQU5ORUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGNvbnRyb2xsZXJfYXppbnB1dGNyYzFyZXN1bHRpbmQKKy8vQVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDBfX0lOUFVUX0NSQ19DSEFOTkVMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NIQU5ORUwwX19JTlBVVF9DUkNfQ0hBTk5FTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9JTlBVVF9DUkMxX0NIQU5ORUwxCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NIQU5ORUwxX19JTlBVVF9DUkNfQ0hBTk5FTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9DSEFOTkVMMV9fSU5QVVRfQ1JDX0NIQU5ORUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfSU5QVVRfQ1JDMV9DSEFOTkVMMgorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9DSEFOTkVMMl9fSU5QVVRfQ1JDX0NIQU5ORUwyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDJfX0lOUFVUX0NSQ19DSEFOTkVMMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDMKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDNfX0lOUFVUX0NSQ19DSEFOTkVMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NIQU5ORUwzX19JTlBVVF9DUkNfQ0hBTk5FTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9JTlBVVF9DUkMxX0NIQU5ORUw0CisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NIQU5ORUw0X19JTlBVVF9DUkNfQ0hBTk5FTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9DSEFOTkVMNF9fSU5QVVRfQ1JDX0NIQU5ORUw0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfSU5QVVRfQ1JDMV9DSEFOTkVMNQorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9DSEFOTkVMNV9fSU5QVVRfQ1JDX0NIQU5ORUw1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDVfX0lOUFVUX0NSQ19DSEFOTkVMNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDYKKyNkZWZpbmUgQVpBTElBX0lOUFVUX0NSQzFfQ0hBTk5FTDZfX0lOUFVUX0NSQ19DSEFOTkVMNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NIQU5ORUw2X19JTlBVVF9DUkNfQ0hBTk5FTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9JTlBVVF9DUkMxX0NIQU5ORUw3CisjZGVmaW5lIEFaQUxJQV9JTlBVVF9DUkMxX0NIQU5ORUw3X19JTlBVVF9DUkNfQ0hBTk5FTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfSU5QVVRfQ1JDMV9DSEFOTkVMN19fSU5QVVRfQ1JDX0NIQU5ORUw3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGNvbnRyb2xsZXJfYXpjcmMwcmVzdWx0aW5kCisvL0FaQUxJQV9DUkMwX0NIQU5ORUwwCisjZGVmaW5lIEFaQUxJQV9DUkMwX0NIQU5ORUwwX19DUkNfQ0hBTk5FTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DSEFOTkVMMF9fQ1JDX0NIQU5ORUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfQ1JDMF9DSEFOTkVMMQorI2RlZmluZSBBWkFMSUFfQ1JDMF9DSEFOTkVMMV9fQ1JDX0NIQU5ORUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ0hBTk5FTDFfX0NSQ19DSEFOTkVMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0NSQzBfQ0hBTk5FTDIKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ0hBTk5FTDJfX0NSQ19DSEFOTkVMMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9DUkMwX0NIQU5ORUwyX19DUkNfQ0hBTk5FTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9DUkMwX0NIQU5ORUwzCisjZGVmaW5lIEFaQUxJQV9DUkMwX0NIQU5ORUwzX19DUkNfQ0hBTk5FTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DSEFOTkVMM19fQ1JDX0NIQU5ORUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfQ1JDMF9DSEFOTkVMNAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DSEFOTkVMNF9fQ1JDX0NIQU5ORUw0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ0hBTk5FTDRfX0NSQ19DSEFOTkVMNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0NSQzBfQ0hBTk5FTDUKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ0hBTk5FTDVfX0NSQ19DSEFOTkVMNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9DUkMwX0NIQU5ORUw1X19DUkNfQ0hBTk5FTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9DUkMwX0NIQU5ORUw2CisjZGVmaW5lIEFaQUxJQV9DUkMwX0NIQU5ORUw2X19DUkNfQ0hBTk5FTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ1JDMF9DSEFOTkVMNl9fQ1JDX0NIQU5ORUw2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfQ1JDMF9DSEFOTkVMNworI2RlZmluZSBBWkFMSUFfQ1JDMF9DSEFOTkVMN19fQ1JDX0NIQU5ORUw3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzBfQ0hBTk5FTDdfX0NSQ19DSEFOTkVMN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBjb250cm9sbGVyX2F6Y3JjMXJlc3VsdGluZAorLy9BWkFMSUFfQ1JDMV9DSEFOTkVMMAorI2RlZmluZSBBWkFMSUFfQ1JDMV9DSEFOTkVMMF9fQ1JDX0NIQU5ORUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ0hBTk5FTDBfX0NSQ19DSEFOTkVMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0NSQzFfQ0hBTk5FTDEKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ0hBTk5FTDFfX0NSQ19DSEFOTkVMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9DUkMxX0NIQU5ORUwxX19DUkNfQ0hBTk5FTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9DUkMxX0NIQU5ORUwyCisjZGVmaW5lIEFaQUxJQV9DUkMxX0NIQU5ORUwyX19DUkNfQ0hBTk5FTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ1JDMV9DSEFOTkVMMl9fQ1JDX0NIQU5ORUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfQ1JDMV9DSEFOTkVMMworI2RlZmluZSBBWkFMSUFfQ1JDMV9DSEFOTkVMM19fQ1JDX0NIQU5ORUwzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ0hBTk5FTDNfX0NSQ19DSEFOTkVMM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0NSQzFfQ0hBTk5FTDQKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ0hBTk5FTDRfX0NSQ19DSEFOTkVMNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9DUkMxX0NIQU5ORUw0X19DUkNfQ0hBTk5FTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9DUkMxX0NIQU5ORUw1CisjZGVmaW5lIEFaQUxJQV9DUkMxX0NIQU5ORUw1X19DUkNfQ0hBTk5FTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfQ1JDMV9DSEFOTkVMNV9fQ1JDX0NIQU5ORUw1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfQ1JDMV9DSEFOTkVMNgorI2RlZmluZSBBWkFMSUFfQ1JDMV9DSEFOTkVMNl9fQ1JDX0NIQU5ORUw2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ0hBTk5FTDZfX0NSQ19DSEFOTkVMNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0NSQzFfQ0hBTk5FTDcKKyNkZWZpbmUgQVpBTElBX0NSQzFfQ0hBTk5FTDdfX0NSQ19DSEFOTkVMN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9DUkMxX0NIQU5ORUw3X19DUkNfQ0hBTk5FTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemlucHV0ZW5kcG9pbnRfZjJjb2RlY2luZAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fTlVNQkVSX09GX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX0JJVFNfUEVSX1NBTVBMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX19TSElGVCAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfX1NISUZUICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fTlVNQkVSX09GX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fQklUU19QRVJfU0FNUExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU1RSRUFNX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZDRkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ09QWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX05PTl9BVURJT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0RJR0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZDRkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX05PTl9BVURJT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BST19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0tFRVBBTElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgIDB4MQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDIKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9fU0hJRlQgIDB4MworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgICAgICAgIDB4NgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX19TSElGVCAgMHg3CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX01BU0sgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRk9STUFUX09WRVJSSURFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9NQVNLICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfTUFTSyAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX01BU0sgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19fU0hJRlQgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgICAgICAgICAweDEwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX01BU0sgICAgICAgICAgIDB4MDAxRjAwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19JTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fSU5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fVEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0UKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fUFJFU0VOQ0VfREVURUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19TRVFVRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9BU1NPQ0lBVElPTl9fU0hJRlQgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT0xPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09OTkVDVElPTl9UWVBFX19TSElGVCAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0RFVklDRV9fU0hJRlQgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgICAgICAgICAgMHgxZQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19TRVFVRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX01BU0sgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT0xPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT05ORUNUSU9OX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0RFVklDRV9NQVNLICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzIKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF8yX19NSVNDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfMl9fQ09MT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzJfX01JU0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzJfX0NPTE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF8zX19DT05ORUNUSU9OX1RZUEVfX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfM19fREVGQVVMVF9ERVZJQ0VfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzNfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzNfX0RFRkFVTFRfREVWSUNFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF80X19MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfNF9fUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgICAgICAgIDB4NgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzRfX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUXzRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgICAgICAgICAgICAweDAwMDAwMEMwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9BTExPQ0FUSU9OCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9BTExPQ0FUSU9OX19DSEFOTkVMX0FMTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMF9FTkFCTEUKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDBfRU5BQkxFX19NVUxUSUNIQU5ORUwwX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwwX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9NVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMF9FTkFCTEVfX01VTFRJQ0hBTk5FTDBfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDBfRU5BQkxFX19NVUxUSUNIQU5ORUwwX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDBfRU5BQkxFX19NVUxUSUNIQU5ORUwwX01VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDBfRU5BQkxFX19NVUxUSUNIQU5ORUwwX0NIQU5ORUxfSURfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDJfRU5BQkxFCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwyX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMl9FTkFCTEVfX01VTFRJQ0hBTk5FTDJfTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDJfRU5BQkxFX19NVUxUSUNIQU5ORUwyX0NIQU5ORUxfSURfX1NISUZUICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwyX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwyX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwyX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9DSEFOTkVMX0lEX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw0X0VOQUJMRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNF9FTkFCTEVfX01VTFRJQ0hBTk5FTDRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDRfRU5BQkxFX19NVUxUSUNIQU5ORUw0X01VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw0X0VOQUJMRV9fTVVMVElDSEFOTkVMNF9DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNF9FTkFCTEVfX01VTFRJQ0hBTk5FTDRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNF9FTkFCTEVfX01VTFRJQ0hBTk5FTDRfTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNF9FTkFCTEVfX01VTFRJQ0hBTk5FTDRfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNl9FTkFCTEUKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19NVUxUSUNIQU5ORUw2X0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw2X0VOQUJMRV9fTVVMVElDSEFOTkVMNl9NVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNl9FTkFCTEVfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19NVUxUSUNIQU5ORUw2X0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19NVUxUSUNIQU5ORUw2X01VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19NVUxUSUNIQU5ORUw2X0NIQU5ORUxfSURfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hCUgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSEJSX19IQlJfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hCUl9fSEJSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IQlJfX0hCUl9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IQlJfX0hCUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwxX0VOQUJMRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMV9FTkFCTEVfX01VTFRJQ0hBTk5FTDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDFfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwxX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMV9FTkFCTEVfX01VTFRJQ0hBTk5FTDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMV9FTkFCTEVfX01VTFRJQ0hBTk5FTDFfTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMMV9FTkFCTEVfX01VTFRJQ0hBTk5FTDFfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMM19FTkFCTEUKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUwzX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMM19FTkFCTEVfX01VTFRJQ0hBTk5FTDNfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19NVUxUSUNIQU5ORUwzX01VVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDVfRU5BQkxFCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw1X0VOQUJMRV9fTVVMVElDSEFOTkVMNV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMNV9FTkFCTEVfX01VTFRJQ0hBTk5FTDVfTVVURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDVfRU5BQkxFX19NVUxUSUNIQU5ORUw1X0NIQU5ORUxfSURfX1NISUZUICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw1X0VOQUJMRV9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw1X0VOQUJMRV9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw1X0VOQUJMRV9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw3X0VOQUJMRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMN19FTkFCTEVfX01VTFRJQ0hBTk5FTDdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTDdfRU5BQkxFX19NVUxUSUNIQU5ORUw3X01VVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUw3X0VOQUJMRV9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMN19FTkFCTEVfX01VTFRJQ0hBTk5FTDdfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMN19FTkFCTEVfX01VTFRJQ0hBTk5FTDdfTVVURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMN19FTkFCTEVfX01VTFRJQ0hBTk5FTDdfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0xQSUJfU05BUFNIT1RfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19DWUNMSUNfQlVGRkVSX1dSQVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUIKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UX19MUElCX1RJTUVSX1NOQVBTSE9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0wKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9BQ1RJVklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTF9fQ0hBTk5FTF9MQVlPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9DTF9DU19JTkZPRlJBTUVfQ0hBTkdFX1VSX0VOQUJMRV9fU0hJRlQgIDB4NQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0NIQU5ORUxfTEFZT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0NMX0NTX0lORk9GUkFNRV9DSEFOR0VfVVJfRU5BQkxFX01BU0sgICAweDAwMDAwMDIwTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19DSEFOTkVMX0FMTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX0JZVEVfNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19JTkZPRlJBTUVfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9CWVRFXzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX1NUQVRVU19MCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX1NUQVRVU19MX19DSEFOTkVMX1NUQVRVU19MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9TVEFUVVNfTF9fQ0hBTk5FTF9TVEFUVVNfTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9TVEFUVVNfSAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfQ0hBTk5FTF9TVEFUVVNfSF9fQ0hBTk5FTF9TVEFUVVNfSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfU1RBVFVTX0hfX0NIQU5ORUxfU1RBVFVTX0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19fU0hJRlQgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgICAgICAgIDB4MgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgICAweDMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX19TSElGVCAgMHg3CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfTUFTSyAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0FaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hFQURQSE9ORV9EUklWRV9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19PVVRQVVRfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0JBTEFOQ0VEX0lfT19QSU5TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRE1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0VBUERfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTVBFREFOQ0VfU0VOU0VfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19KQUNLX0RFVEVDVElPTl9DQVBBQklMSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19PVVRQVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTlBVVF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRE1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19WUkVGX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19EUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6cm9vdF9mMmNvZGVjaW5kCisvL0FaQUxJQV9GMl9DT0RFQ19ST09UX1BBUkFNRVRFUl9WRU5ET1JfQU5EX0RFVklDRV9JRAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUk9PVF9QQVJBTUVURVJfVkVORE9SX0FORF9ERVZJQ0VfSURfX0FaQUxJQV9DT0RFQ19ST09UX1BBUkFNRVRFUl9WRU5ET1JfQU5EX0RFVklDRV9JRF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUk9PVF9QQVJBTUVURVJfVkVORE9SX0FORF9ERVZJQ0VfSURfX0FaQUxJQV9DT0RFQ19ST09UX1BBUkFNRVRFUl9WRU5ET1JfQU5EX0RFVklDRV9JRF9NQVNLICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjJfQ09ERUNfUk9PVF9QQVJBTUVURVJfUkVWSVNJT05fSUQKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX1JPT1RfUEFSQU1FVEVSX1JFVklTSU9OX0lEX19BWkFMSUFfQ09ERUNfUk9PVF9QQVJBTUVURVJfUkVWSVNJT05fSURfX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19ST09UX1BBUkFNRVRFUl9SRVZJU0lPTl9JRF9fQVpBTElBX0NPREVDX1JPT1RfUEFSQU1FVEVSX1JFVklTSU9OX0lEX01BU0sgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMl9DT0RFQ19ST09UX1BBUkFNRVRFUl9TVUJPUkRJTkFURV9OT0RFX0NPVU5UCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19ST09UX1BBUkFNRVRFUl9TVUJPUkRJTkFURV9OT0RFX0NPVU5UX19BWkFMSUFfQ09ERUNfUk9PVF9QQVJBTUVURVJfU1VCT1JESU5BVEVfTk9ERV9DT1VOVF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfUk9PVF9QQVJBTUVURVJfU1VCT1JESU5BVEVfTk9ERV9DT1VOVF9fQVpBTElBX0NPREVDX1JPT1RfUEFSQU1FVEVSX1NVQk9SRElOQVRFX05PREVfQ09VTlRfTUFTSyAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUE9XRVJfU1RBVEUKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUE9XRVJfU1RBVEVfX1BPV0VSX1NUQVRFX1NFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19QT1dFUl9TVEFURV9BQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9QT1dFUl9TVEFURV9fQ0xLU1RPUE9LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUE9XRVJfU1RBVEVfX1BPV0VSX1NUQVRFX1NFVFRJTkdTX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19QT1dFUl9TVEFURV9TRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19QT1dFUl9TVEFURV9BQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19DTEtTVE9QT0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1BPV0VSX1NUQVRFX19QT1dFUl9TVEFURV9TRVRUSU5HU19SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL0FaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfX1NVQlNZU1RFTV9JRF9CWVRFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEX19TVUJTWVNURU1fSURfQllURTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRF9fU1VCU1lTVEVNX0lEX0JZVEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEX19TVUJTWVNURU1fSURfQllURTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfX1NVQlNZU1RFTV9JRF9CWVRFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfX1NVQlNZU1RFTV9JRF9CWVRFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfX1NVQlNZU1RFTV9JRF9CWVRFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfX1NVQlNZU1RFTV9JRF9CWVRFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfMgorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfMl9fU1VCU1lTVEVNX0lEX0JZVEUxX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEXzJfX1NVQlNZU1RFTV9JRF9CWVRFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEXzMKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTUE9OU0VfU1VCU1lTVEVNX0lEXzNfX1NVQlNZU1RFTV9JRF9CWVRFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRF8zX19TVUJTWVNURU1fSURfQllURTJfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRF80CisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX1JFU1BPTlNFX1NVQlNZU1RFTV9JRF80X19TVUJTWVNURU1fSURfQllURTNfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNQT05TRV9TVUJTWVNURU1fSURfNF9fU1VCU1lTVEVNX0lEX0JZVEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9DT05WRVJURVJfU1lOQ0hST05JWkFUSU9OCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9DT05UUk9MX0NPTlZFUlRFUl9TWU5DSFJPTklaQVRJT05fX0NPTlZFUlRFUl9TWU5DSFJPTklaQVRJT05fX1NISUZUICAgICAgICAgIDB4MAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9DT05WRVJURVJfU1lOQ0hST05JWkFUSU9OX19DT05WRVJURVJfU1lOQ0hST05JWkFUSU9OX01BU0sgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNFVAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fQ09OVFJPTF9SRVNFVF9fQ09ERUNfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX0NPTlRST0xfUkVTRVRfX0NPREVDX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVUJPUkRJTkFURV9OT0RFX0NPVU5UCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1VCT1JESU5BVEVfTk9ERV9DT1VOVF9fQVpBTElBX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVUJPUkRJTkFURV9OT0RFX0NPVU5UX19TSElGVCAgMHgwCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1VCT1JESU5BVEVfTk9ERV9DT1VOVF9fQVpBTElBX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVUJPUkRJTkFURV9OT0RFX0NPVU5UX01BU0sgIDB4RkZGRkZGRkZMCisvL0FaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfR1JPVVBfVFlQRQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX0dST1VQX1RZUEVfX0FaQUxJQV9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfR1JPVVBfVFlQRV9fU0hJRlQgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9HUk9VUF9UWVBFX19BWkFMSUFfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX0dST1VQX1RZUEVfTUFTSyAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX01BU0sgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorLy9BWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFNfX0FaQUxJQV9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fQVpBTElBX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19NQVNLICAweEZGRkZGRkZGTAorLy9BWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1BPV0VSX1NUQVRFUworI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1BPV0VSX1NUQVRFU19fQVpBTElBX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9QT1dFUl9TVEFURVNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpBTElBX0YyX0NPREVDX0ZVTkNUSU9OX1BBUkFNRVRFUl9QT1dFUl9TVEFURVNfX0NMS1NUT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBBWkFMSUFfRjJfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1BPV0VSX1NUQVRFU19fRVBTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfUE9XRVJfU1RBVEVTX19BWkFMSUFfQ09ERUNfRlVOQ1RJT05fUEFSQU1FVEVSX1BPV0VSX1NUQVRFU19NQVNLICAgIDB4M0ZGRkZGRkZMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfUE9XRVJfU1RBVEVTX19DTEtTVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIEFaQUxJQV9GMl9DT0RFQ19GVU5DVElPTl9QQVJBTUVURVJfUE9XRVJfU1RBVEVTX19FUFNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwc3RyZWFtMF9zdHJlYW1pbmQKKy8vQVpGMFNUUkVBTTBfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU0wX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMF9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTBfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwU1RSRUFNMF9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkYwU1RSRUFNMF9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwU1RSRUFNMF9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwU1RSRUFNMF9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTBfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0wX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBTVFJFQU0wX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNMF9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTBfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTBfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNMF9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTBfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTBfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNMF9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTBfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBzdHJlYW0xX3N0cmVhbWluZAorLy9BWkYwU1RSRUFNMV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTFfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNMV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBTVFJFQU0xX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEFaRjBTVFJFQU0xX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIEFaRjBTVFJFQU0xX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBTVFJFQU0xX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNMV9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTFfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMFNUUkVBTTFfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU0xX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMV9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNMV9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU0xX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMV9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNMV9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU0xX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMV9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTJfc3RyZWFtaW5kCisvL0FaRjBTVFJFQU0yX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNMl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTJfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU0yX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMFNUUkVBTTJfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgQVpGMFNUUkVBTTJfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgQVpGMFNUUkVBTTJfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMFNUUkVBTTJfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU0yX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMl9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwU1RSRUFNMl9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTJfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0yX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU0yX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTJfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0yX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU0yX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTJfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0yX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwc3RyZWFtM19zdHJlYW1pbmQKKy8vQVpGMFNUUkVBTTNfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU0zX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNM19BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTNfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwU1RSRUFNM19BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkYwU1RSRUFNM19BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwU1RSRUFNM19BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwU1RSRUFNM19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTNfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0zX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBTVFJFQU0zX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNM19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTNfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTNfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNM19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTNfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTNfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNM19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTNfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBzdHJlYW00X3N0cmVhbWluZAorLy9BWkYwU1RSRUFNNF9BWkFMSUFfRklGT19TSVpFX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTRfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU00X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNNF9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBTVFJFQU00X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEFaRjBTVFJFQU00X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIEFaRjBTVFJFQU00X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBTVFJFQU00X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNNF9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTRfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMFNUUkVBTTRfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU00X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNNF9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNNF9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU00X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNNF9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNNF9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU00X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNNF9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTVfc3RyZWFtaW5kCisvL0FaRjBTVFJFQU01X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNNV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTVfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU01X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMFNUUkVBTTVfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgQVpGMFNUUkVBTTVfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgQVpGMFNUUkVBTTVfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMFNUUkVBTTVfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU01X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNNV9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwU1RSRUFNNV9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTVfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU01X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU01X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTVfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU01X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU01X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTVfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU01X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwc3RyZWFtNl9zdHJlYW1pbmQKKy8vQVpGMFNUUkVBTTZfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU02X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNNl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTZfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwU1RSRUFNNl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkYwU1RSRUFNNl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwU1RSRUFNNl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwU1RSRUFNNl9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTZfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU02X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBTVFJFQU02X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNNl9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTZfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTZfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNNl9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTZfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTZfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNNl9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTZfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBzdHJlYW03X3N0cmVhbWluZAorLy9BWkYwU1RSRUFNN19BWkFMSUFfRklGT19TSVpFX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTdfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU03X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNN19BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBTVFJFQU03X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEFaRjBTVFJFQU03X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIEFaRjBTVFJFQU03X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBTVFJFQU03X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNN19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTdfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMFNUUkVBTTdfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU03X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNN19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNN19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU03X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNN19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNN19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU03X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNN19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbThfc3RyZWFtaW5kCisvL0FaRjBTVFJFQU04X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNOF9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTThfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU04X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMFNUUkVBTThfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgQVpGMFNUUkVBTThfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgQVpGMFNUUkVBTThfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMFNUUkVBTThfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU04X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNOF9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwU1RSRUFNOF9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTThfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU04X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU04X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTThfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU04X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU04X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTThfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU04X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwc3RyZWFtOV9zdHJlYW1pbmQKKy8vQVpGMFNUUkVBTTlfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU05X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNOV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTlfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwU1RSRUFNOV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkYwU1RSRUFNOV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwU1RSRUFNOV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwU1RSRUFNOV9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTlfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU05X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBTVFJFQU05X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNOV9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTlfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTlfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNOV9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTlfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTlfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNOV9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTlfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBzdHJlYW0xMF9zdHJlYW1pbmQKKy8vQVpGMFNUUkVBTTEwX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNMTBfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTEwX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU0xMF9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMFNUUkVBTTEwX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgQVpGMFNUUkVBTTEwX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgQVpGMFNUUkVBTTEwX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMFNUUkVBTTEwX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNMTBfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTEwX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMFNUUkVBTTEwX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNMTBfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTEwX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTEwX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTEwX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xMF9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU0xMF9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU0xMF9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTBfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTExX3N0cmVhbWluZAorLy9BWkYwU1RSRUFNMTFfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU0xMV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTFfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTExX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwU1RSRUFNMTFfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkYwU1RSRUFNMTFfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwU1RSRUFNMTFfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwU1RSRUFNMTFfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU0xMV9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTFfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwU1RSRUFNMTFfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU0xMV9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTFfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNMTFfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNMTFfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTExX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTExX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTExX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xMV9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwc3RyZWFtMTJfc3RyZWFtaW5kCisvL0FaRjBTVFJFQU0xMl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTEyX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xMl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNMTJfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBTVFJFQU0xMl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEFaRjBTVFJFQU0xMl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIEFaRjBTVFJFQU0xMl9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBTVFJFQU0xMl9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTEyX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xMl9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBTVFJFQU0xMl9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTEyX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xMl9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU0xMl9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU0xMl9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTJfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNMTJfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNMTJfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTEyX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBzdHJlYW0xM19zdHJlYW1pbmQKKy8vQVpGMFNUUkVBTTEzX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNMTNfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTEzX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBTVFJFQU0xM19BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMFNUUkVBTTEzX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgQVpGMFNUUkVBTTEzX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgQVpGMFNUUkVBTTEzX0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMFNUUkVBTTEzX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTAorI2RlZmluZSBBWkYwU1RSRUFNMTNfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTEzX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMFNUUkVBTTEzX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNMTNfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTEzX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTEzX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTEzX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xM19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU0xM19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU0xM19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTNfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMHN0cmVhbTE0X3N0cmVhbWluZAorLy9BWkYwU1RSRUFNMTRfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU0xNF9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTRfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMFNUUkVBTTE0X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUFYX0xBVEVOQ1lfU1VQUE9SVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwU1RSRUFNMTRfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NSU5fRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkYwU1RSRUFNMTRfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfRklGT19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwU1RSRUFNMTRfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwU1RSRUFNMTRfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MCisjZGVmaW5lIEFaRjBTVFJFQU0xNF9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTRfQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9DT05UUk9MX19BWkFMSUFfTEFURU5DWV9DT1VOVEVSX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwU1RSRUFNMTRfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU0xNF9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTRfQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNMTRfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNMTRfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTE0X0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX0xBVEVOQ1lfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMFNUUkVBTTE0X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTE0X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xNF9BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9SRVFVRVNUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwc3RyZWFtMTVfc3RyZWFtaW5kCisvL0FaRjBTVFJFQU0xNV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTE1X0FaQUxJQV9GSUZPX1NJWkVfQ09OVFJPTF9fTUlOX0ZJRk9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xNV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwU1RSRUFNMTVfQVpBTElBX0ZJRk9fU0laRV9DT05UUk9MX19NQVhfTEFURU5DWV9TVVBQT1JUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBTVFJFQU0xNV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01JTl9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEFaRjBTVFJFQU0xNV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9GSUZPX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIEFaRjBTVFJFQU0xNV9BWkFMSUFfRklGT19TSVpFX0NPTlRST0xfX01BWF9MQVRFTkNZX1NVUFBPUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBTVFJFQU0xNV9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0wKKyNkZWZpbmUgQVpGMFNUUkVBTTE1X0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfQ09OVFJPTF9fQVpBTElBX0xBVEVOQ1lfQ09VTlRFUl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xNV9BWkFMSUFfTEFURU5DWV9DT1VOVEVSX0NPTlRST0xfX0FaQUxJQV9MQVRFTkNZX0NPVU5URVJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBTVFJFQU0xNV9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlQKKyNkZWZpbmUgQVpGMFNUUkVBTTE1X0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9fQVpBTElBX1dPUlNUQ0FTRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBTVFJFQU0xNV9BWkFMSUFfV09SU1RDQVNFX0xBVEVOQ1lfQ09VTlRfX0FaQUxJQV9XT1JTVENBU0VfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBTVFJFQU0xNV9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UCisjZGVmaW5lIEFaRjBTVFJFQU0xNV9BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19BWkFMSUFfQ1VNVUxBVElWRV9MQVRFTkNZX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwU1RSRUFNMTVfQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfTEFURU5DWV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwU1RSRUFNMTVfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVAorI2RlZmluZSBBWkYwU1RSRUFNMTVfQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fQVpBTElBX0NVTVVMQVRJVkVfUkVRVUVTVF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMFNUUkVBTTE1X0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfX0FaQUxJQV9DVU1VTEFUSVZFX1JFUVVFU1RfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBlbmRwb2ludDBfZW5kcG9pbnRpbmQKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfX1NISUZUICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9fU0hJRlQgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX19TSElGVCAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgICAgIDB4YQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgICAgICAweGIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfTUFTSyAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9NQVNLICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX01BU0sgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX01BU0sgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX05VTUJFUl9PRl9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgICAgICAgIDB4YgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX19TSElGVCAgICAgICAgICAgICAweGUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU1RSRUFNX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX05VTUJFUl9PRl9DSEFOTkVMU19NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX0JJVFNfUEVSX1NBTVBMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX0RJVklTT1JfTUFTSyAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX01BU0sgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX1JBVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lECisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0RJR0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVkNGR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTk9OX0FVRElPX19TSElGVCAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BST19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0tFRVBBTElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVkNGR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ09QWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTk9OX0FVRElPX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFNfX1NUUkVBTV9GT1JNQVRTX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX01BU0sgIDB4MDAwMDBGRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgIDB4MDAxRjAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DQVBBQklMSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFX19SQU1QX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURV9fUkFNUF9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0VOQUJMRV9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9PRkZTRVRfQ0hBTkdFRF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19DTEVBUl9HVENfQ09VTlRFUl9NSU5fTUFYX0RFTFRBX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19HUk9VUF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfRU5BQkxFX01BU0sgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX09GRlNFVF9DSEFOR0VEX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX0NMRUFSX0dUQ19DT1VOVEVSX01JTl9NQVhfREVMVEFfTUFTSyAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19HUk9VUF9NQVNLICAweDAwMDAwMDcwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX19HVENfQ09VTlRFUl9ERUxUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9fR1RDX0NPVU5URVJfREVMVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU4KKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9fR1RDX0NPVU5URVJfREVMVEFfTUlOX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU5fX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9NQVNLICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9fR1RDX0NPVU5URVJfREVMVEFfTUFYX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVhfX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9NQVNLICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX19TSElGVCAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX19TSElGVCAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfX1NISUZUICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX19TSElGVCAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9NQVNLICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX01BU0sgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX01BU0sgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1RSSUdHRVJfUkVRVUlSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19KQUNLX0RFVEVDVElPTl9DQVBBQklMSVRZX19TSElGVCAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX09VVFBVVF9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTlBVVF9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hETUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19WUkVGX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19EUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1RSSUdHRVJfUkVRVUlSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0pBQ0tfREVURUNUSU9OX0NBUEFCSUxJVFlfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hFQURQSE9ORV9EUklWRV9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX09VVFBVVF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0JBTEFOQ0VEX0lfT19QSU5TX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hETUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0VBUERfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fVEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0UKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19PVVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fT1VUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19TUEVBS0VSX0FMTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0hETUlfQ09OTkVDVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRFBfQ09OTkVDVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19FWFRSQV9DT05ORUNUSU9OX0lORk9fX1NISUZUICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xGRV9QTEFZQkFDS19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fTEVWRUxfU0hJRlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19ET1dOX01JWF9JTkhJQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX1NQRUFLRVJfQUxMT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0hETUlfQ09OTkVDVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RQX0NPTk5FQ1RJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0VYVFJBX0NPTk5FQ1RJT05fSU5GT19NQVNLICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xGRV9QTEFZQkFDS19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xFVkVMX1NISUZUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RPV05fTUlYX0lOSElCSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fX1NISUZUICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJFT19NQVNLICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweGMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19NVVRFX19TSElGVCAgICAgICAgICAgICAweDE5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MWMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHhGMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19WSURFT19MSVBTWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fQVVESU9fTElQU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX1ZJREVPX0xJUFNZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX0FVRElPX0xJUFNZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fTUFOVUZBQ1RVUkVSX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX1BST0RVQ1RfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fTUFOVUZBQ1RVUkVSX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fUFJPRFVDVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xX19TSU5LX0RFU0NSSVBUSU9OX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMV9fU0lOS19ERVNDUklQVElPTl9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yX19QT1JUX0lEMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMl9fUE9SVF9JRDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zX19QT1JUX0lEMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPM19fUE9SVF9JRDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT042X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ON19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT044X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT044X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT045X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19DTE9DS19HQVRJTkdfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQVVESU9fRU5BQkxFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0UKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfUEFZTE9BRF9NQVNLICAweDAzRkZGRkZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fU0VRVUVOQ0VfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfX1NISUZUICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX19TSElGVCAgICAweDFlCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fU0VRVUVOQ0VfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9BU1NPQ0lBVElPTl9NQVNLICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTUlTQ19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09OTkVDVElPTl9UWVBFX01BU0sgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fUE9SVF9DT05ORUNUSVZJVFlfTUFTSyAgICAgIDB4QzAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHhjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDFjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4RjAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFX19NVUxUSUNIQU5ORUxfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERV9fTVVMVElDSEFOTkVMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfU09VUkNFX05VTUJFUl9fU0hJRlQgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX09WUlJEX0VOX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfT1ZSUkRfRU5fX1NISUZUICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX09WUlJEX0VOX01BU0sgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX09WUlJEX0VOX01BU0sgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9fU0hJRlQgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX01BU0sgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX01BU0sgIDB4MDAwMDAwNDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9NQVNLICAweDAwMDAwMDEwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfQ09FRkZfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX01QRUdfU1VSUk9VTkRfSU5GT19fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX1ZBTElEX19TSElGVCAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9DT0VGRl9NQVNLICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX01QRUdfU1VSUk9VTkRfSU5GT19NQVNLICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA2MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNQorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zX19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfMl9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl80X19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNV9fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzRfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl82X01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl83X01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPX19BU1NPQ0lBVElPTl9JTkZPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GT19fQVNTT0NJQVRJT05fSU5GT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTX19PVVRQVVRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVU19fT1VUUFVUX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0xQSUJfU05BUFNIT1RfTE9DS19fU0hJRlQgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19DWUNMSUNfQlVGRkVSX1dSQVBfQ09VTlRfX1NISUZUICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9fTFBJQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1QKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFX19DT0RJTkdfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRV9fQ09ESU5HX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX0FDS19VUl9FTkFCTEVfX1NISUZUICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFQVNPTl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRVNQT05TRV9fU0hJRlQgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9BQ0tfVVJfRU5BQkxFX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFQVNPTl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFU1BPTlNFX01BU0sgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT04KKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9fV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX19XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX01BU0sgIDB4MDAwMDAwMDNMCisvL0FaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0NBUEFCSUxJVFlfX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9DQVBBQklMSVRZX01BU0sgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0FVRElPX0VOQUJMRV9TVEFUVVNfX0FVRElPX0VOQUJMRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTX19BVURJT19FTkFCTEVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0ZMQUdfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQwX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMF9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0ZMQUdfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX01BU0tfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDBfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX1RZUEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwZW5kcG9pbnQxX2VuZHBvaW50aW5kCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRk9STUFUX09WRVJSSURFX19TSElGVCAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9fU0hJRlQgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfX1NISUZUICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAgICAweGEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX19TSElGVCAgICAgICAgICAgMHhiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX01BU0sgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX01BU0sgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRk9STUFUX09WRVJSSURFX01BU0sgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9NQVNLICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfTUFTSyAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfTUFTSyAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfTUFTSyAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfTUFTSyAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX01BU0sgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fQklUU19QRVJfU0FNUExFX19TSElGVCAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX0RJVklTT1JfX1NISUZUICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9NVUxUSVBMRV9fU0hJRlQgICAgICAgICAweGIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9NVUxUSVBMRV9NQVNLICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19TVFJFQU1fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZDRkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ09QWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX05PTl9BVURJT19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0RJR0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZDRkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX05PTl9BVURJT19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BST19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0tFRVBBTElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX01BU0sgICAweDAwMUYwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTF9fU1RSSVBFX0NBUEFCSUxJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ0FQQUJJTElUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURV9fUkFNUF9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEVfX1JBTVBfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfT0ZGU0VUX0NIQU5HRURfX1NISUZUICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fQ0xFQVJfR1RDX0NPVU5URVJfTUlOX01BWF9ERUxUQV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfR1JPVVBfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9PRkZTRVRfQ0hBTkdFRF9NQVNLICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19DTEVBUl9HVENfQ09VTlRFUl9NSU5fTUFYX0RFTFRBX01BU0sgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfR1JPVVBfTUFTSyAgMHgwMDAwMDA3MEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9fR1RDX0NPVU5URVJfREVMVEFfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfX0dUQ19DT1VOVEVSX0RFTFRBX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU5fX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOX19HVENfQ09VTlRFUl9ERUxUQV9NSU5fTUFTSyAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVhfX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYX19HVENfQ09VTlRFUl9ERUxUQV9NQVhfTUFTSyAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9fU0hJRlQgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9fU0hJRlQgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9fU0hJRlQgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX19TSElGVCAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgIDB4YQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX01BU0sgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9NQVNLICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfTUFTSyAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hFQURQSE9ORV9EUklWRV9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19PVVRQVVRfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0JBTEFOQ0VEX0lfT19QSU5TX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRE1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0VBUERfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTVBFREFOQ0VfU0VOU0VfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19KQUNLX0RFVEVDVElPTl9DQVBBQklMSVRZX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19PVVRQVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTlBVVF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRE1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19WUkVGX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19EUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fT1VUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0xfX09VVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fU1BFQUtFUl9BTExPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19IRE1JX0NPTk5FQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RQX0NPTk5FQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRVhUUkFfQ09OTkVDVElPTl9JTkZPX19TSElGVCAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRkVfUExBWUJBQ0tfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xFVkVMX1NISUZUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRE9XTl9NSVhfSU5ISUJJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19TUEVBS0VSX0FMTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19DSEFOTkVMX0FMTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19IRE1JX0NPTk5FQ1RJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19EUF9DT05ORUNUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19FWFRSQV9DT05ORUNUSU9OX0lORk9fTUFTSyAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRkVfUExBWUJBQ0tfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRVZFTF9TSElGVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19ET1dOX01JWF9JTkhJQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNgorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMgorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19NVVRFX19TSElGVCAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHhjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDFjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4RjAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fVklERU9fTElQU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX0FVRElPX0xJUFNZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19WSURFT19MSVBTWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19BVURJT19MSVBTWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX01BTlVGQUNUVVJFUl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wX19QUk9EVUNUX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX01BTlVGQUNUVVJFUl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX1BST0RVQ1RfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMV9fU0lOS19ERVNDUklQVElPTl9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzFfX1NJTktfREVTQ1JJUFRJT05fTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMl9fUE9SVF9JRDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzJfX1BPUlRfSUQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPM19fUE9SVF9JRDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzNfX1BPUlRfSUQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT041X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT043X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9QQVlMT0FEX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fU0hJRlQgIDB4MWMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX01BU0sgIDB4MTAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTUlTQ19fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX19TSElGVCAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT05ORUNUSU9OX1RZUEVfX1NISUZUICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgICAgMHgxZQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX01BU0sgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgICAgICAweEMwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMgorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4YworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxYworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweEYwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERV9fTVVMVElDSEFOTkVMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREVfX01VTFRJQ0hBTk5FTF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfX1NISUZUICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19TT1VSQ0VfTlVNQkVSX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9PVlJSRF9FTl9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfX1NISUZUICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX09WUlJEX0VOX19TSElGVCAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9PVlJSRF9FTl9NQVNLICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9PVlJSRF9FTl9NQVNLICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9NQVNLICAweDAwMDAwMDQwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX01BU0sgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fTUFTSyAgMHgwMDAwMDAxMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX0NPRUZGX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19NUEVHX1NVUlJPVU5EX0lORk9fX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX19TSElGVCAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfQ09FRkZfTUFTSyAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19NUEVHX1NVUlJPVU5EX0lORk9fTUFTSyAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfVkFMSURfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0xfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfUl9NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzNfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl80X01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl81X01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzZfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl83X19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfN19NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GTworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GT19fQVNTT0NJQVRJT05fSU5GT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk9fX0FTU09DSUFUSU9OX0lORk9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVU19fT1VUUFVUX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVNfX09VVFBVVF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0xQSUJfU05BUFNIT1RfTE9DS19NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9NQVNLICAgICAgICAweDAwMDBGRjAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UX19MUElCX1RJTUVSX1NOQVBTSE9UX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRV9fQ09ESU5HX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEVfX0NPRElOR19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRUQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9BQ0tfVVJfRU5BQkxFX19TSElGVCAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRUFTT05fX1NISUZUICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VfUkVTUE9OU0VfX1NISUZUICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfQUNLX1VSX0VOQUJMRV9NQVNLICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRUFTT05fTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRVNQT05TRV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9fV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9NQVNLICAweDAwMDAwMDAzTAorLy9BWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9DQVBBQklMSVRZX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfQ0FQQUJJTElUWV9NQVNLICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTX19BVURJT19FTkFCTEVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVU19fQVVESU9fRU5BQkxFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9GTEFHX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMV9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDFfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX1RZUEVfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9GTEFHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQxX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9UWVBFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGVuZHBvaW50Ml9lbmRwb2ludGluZAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9fU0hJRlQgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9fU0hJRlQgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX19TSElGVCAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX19TSElGVCAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfX1NISUZUICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX19TSElGVCAgICAgMHhhCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgICAgICAgICAgIDB4YgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX01BU0sgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfTUFTSyAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX01BU0sgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX01BU0sgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX01BU0sgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX01BU0sgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fTlVNQkVSX09GX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX0JJVFNfUEVSX1NBTVBMRV9fU0hJRlQgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX19TSElGVCAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfX1NISUZUICAgICAgICAgMHhiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX1JBVEVfX1NISUZUICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fTlVNQkVSX09GX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fQklUU19QRVJfU0FNUExFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9NQVNLICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgICAgICAgICAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU1RSRUFNX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19TVFJFQU1fSURfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFNfX1NUUkVBTV9GT1JNQVRTX01BU0sgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fUkFURV9DQVBBQklMSVRJRVNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fUkFURV9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19NQVNLICAgMHgwMDFGMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTF9fU1RSSVBFX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DQVBBQklMSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTF9fU1RSSVBFX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTF9fU1RSSVBFX0NBUEFCSUxJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEVfX1JBTVBfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFX19SQU1QX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElORworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfRU5BQkxFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX09GRlNFVF9DSEFOR0VEX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX0NMRUFSX0dUQ19DT1VOVEVSX01JTl9NQVhfREVMVEFfX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0dST1VQX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19FTkFCTEVfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfT0ZGU0VUX0NIQU5HRURfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fQ0xFQVJfR1RDX0NPVU5URVJfTUlOX01BWF9ERUxUQV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0dST1VQX01BU0sgIDB4MDAwMDAwNzBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfX0dUQ19DT1VOVEVSX0RFTFRBX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX19HVENfQ09VTlRFUl9ERUxUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOX19HVENfQ09VTlRFUl9ERUxUQV9NSU5fX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9fR1RDX0NPVU5URVJfREVMVEFfTUlOX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYX19HVENfQ09VTlRFUl9ERUxUQV9NQVhfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9fR1RDX0NPVU5URVJfREVMVEFfTUFYX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfX1NISUZUICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfX1NISUZUICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAgICAgICAgICAweGEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX01BU0sgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX01BU0sgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfTUFTSyAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX01BU0sgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX01BU0sgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTVBFREFOQ0VfU0VOU0VfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0pBQ0tfREVURUNUSU9OX0NBUEFCSUxJVFlfX1NISUZUICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fVEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0xfX09VVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19PVVRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX1NQRUFLRVJfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19DSEFOTkVMX0FMTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fSERNSV9DT05ORUNUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19EUF9DT05ORUNUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0VYVFJBX0NPTk5FQ1RJT05fSU5GT19fU0hJRlQgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fTEZFX1BMQVlCQUNLX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRVZFTF9TSElGVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RPV05fTUlYX0lOSElCSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fU1BFQUtFUl9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fSERNSV9DT05ORUNUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRFBfQ09OTkVDVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRVhUUkFfQ09OTkVDVElPTl9JTkZPX01BU0sgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fTEZFX1BMQVlCQUNLX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fTEVWRUxfU0hJRlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRE9XTl9NSVhfSU5ISUJJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJFT19fU0hJRlQgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX01BU0sgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjYKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjkKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4YworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxYworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweEYwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX1ZJREVPX0xJUFNZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19BVURJT19MSVBTWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fVklERU9fTElQU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fQVVESU9fTElQU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wX19NQU5VRkFDVFVSRVJfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fUFJPRFVDVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wX19NQU5VRkFDVFVSRVJfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wX19QUk9EVUNUX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzFfX1NJTktfREVTQ1JJUFRJT05fTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xX19TSU5LX0RFU0NSSVBUSU9OX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzJfX1BPUlRfSUQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yX19QT1JUX0lEMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzNfX1BPUlRfSUQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zX19QT1JUX0lEMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT040X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ON19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT040X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT041X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT042X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT043X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT045X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19DTE9DS19PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQVVESU9fRU5BQkxFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19DTE9DS19HQVRJTkdfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19DTE9DS19PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfUEFZTE9BRF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9QQVlMT0FEX01BU0sgIDB4MDNGRkZGRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9NQVNLICAweDEwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19TRVFVRU5DRV9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9BU1NPQ0lBVElPTl9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfX1NISUZUICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT0xPUl9fU0hJRlQgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09OTkVDVElPTl9UWVBFX19TSElGVCAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0RFVklDRV9fU0hJRlQgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgIDB4MWUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19TRVFVRU5DRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX01BU0sgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT0xPUl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT05ORUNUSU9OX1RZUEVfTUFTSyAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0RFVklDRV9NQVNLICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9NQVNLICAgICAgMHhDMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweGMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19NVVRFX19TSElGVCAgICAgICAgICAgICAweDE5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MWMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHhGMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREVfX01VTFRJQ0hBTk5FTF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFX19NVUxUSUNIQU5ORUxfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19TT1VSQ0VfTlVNQkVSX19TSElGVCAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfU09VUkNFX05VTUJFUl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDNDTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfT1ZSUkRfRU5fX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9PVlJSRF9FTl9fU0hJRlQgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfT1ZSUkRfRU5fTUFTSyAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfT1ZSUkRfRU5fTUFTSyAgICAgICAweDAwMDAwMDgwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfX1NISUZUICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX19TSElGVCAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fTUFTSyAgMHgwMDAwMDA0MEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9NQVNLICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX01BU0sgIDB4MDAwMDAwMTBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9DT0VGRl9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfTVBFR19TVVJST1VORF9JTkZPX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfVkFMSURfX1NISUZUICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX0NPRUZGX01BU0sgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfTVBFR19TVVJST1VORF9JTkZPX01BU0sgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX1ZBTElEX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfUl9fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0xfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfMl9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzNfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yX01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zX01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzcKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzRfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl81X19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNV9NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl82X19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfN19fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzZfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk8KKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk9fX0FTU09DSUFUSU9OX0lORk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPX19BU1NPQ0lBVElPTl9JTkZPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVNfX09VVFBVVF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTX19PVVRQVVRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX19TSElGVCAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19DWUNMSUNfQlVGRkVSX1dSQVBfQ09VTlRfTUFTSyAgICAgICAgMHgwMDAwRkYwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX19MUElCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9fTFBJQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UX19MUElCX1RJTUVSX1NOQVBTSE9UX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9NQVNLICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEUKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEVfX0NPRElOR19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFX19DT0RJTkdfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VECisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfQUNLX1VSX0VOQUJMRV9fU0hJRlQgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VfUkVBU09OX19TSElGVCAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFU1BPTlNFX19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX0FDS19VUl9FTkFCTEVfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VfUkVBU09OX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VfUkVTUE9OU0VfTUFTSyAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTgorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX19XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fTUFTSyAgMHgwMDAwMDAwM0wKKy8vQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRQorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0NBUEFCSUxJVFlfTUFTSyAgICAgICAgIDB4MDAwMDAwMTBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0VOQUJMRV9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVU19fQVVESU9fRU5BQkxFX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0VOQUJMRV9TVEFUVVNfX0FVRElPX0VOQUJMRV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfRkxBR19fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDJfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX01BU0tfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQyX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9UWVBFX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfRkxBR19NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfTUFTS19NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UMl9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfVFlQRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBlbmRwb2ludDNfZW5kcG9pbnRpbmQKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfX1NISUZUICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9fU0hJRlQgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX19TSElGVCAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgICAgIDB4YQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgICAgICAweGIKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfTUFTSyAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9NQVNLICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX01BU0sgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX01BU0sgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX05VTUJFUl9PRl9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgICAgICAgIDB4YgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX19TSElGVCAgICAgICAgICAgICAweGUKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU1RSRUFNX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX05VTUJFUl9PRl9DSEFOTkVMU19NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX0JJVFNfUEVSX1NBTVBMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX0RJVklTT1JfTUFTSyAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX01BU0sgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX1JBVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lECisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0RJR0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVkNGR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTk9OX0FVRElPX19TSElGVCAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BST19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0tFRVBBTElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVkNGR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ09QWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTk9OX0FVRElPX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFNfX1NUUkVBTV9GT1JNQVRTX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX01BU0sgIDB4MDAwMDBGRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgIDB4MDAxRjAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DQVBBQklMSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEUKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFX19SQU1QX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURV9fUkFNUF9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkcKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0VOQUJMRV9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9PRkZTRVRfQ0hBTkdFRF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19DTEVBUl9HVENfQ09VTlRFUl9NSU5fTUFYX0RFTFRBX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19HUk9VUF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfRU5BQkxFX01BU0sgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX09GRlNFVF9DSEFOR0VEX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX0NMRUFSX0dUQ19DT1VOVEVSX01JTl9NQVhfREVMVEFfTUFTSyAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19HUk9VUF9NQVNLICAweDAwMDAwMDcwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEEKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX19HVENfQ09VTlRFUl9ERUxUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9fR1RDX0NPVU5URVJfREVMVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU4KKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9fR1RDX0NPVU5URVJfREVMVEFfTUlOX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU5fX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9NQVNLICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9fR1RDX0NPVU5URVJfREVMVEFfTUFYX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVhfX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9NQVNLICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX19TSElGVCAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX19TSElGVCAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfX1NISUZUICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX19TSElGVCAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9NQVNLICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX01BU0sgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX01BU0sgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1RSSUdHRVJfUkVRVUlSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19KQUNLX0RFVEVDVElPTl9DQVBBQklMSVRZX19TSElGVCAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX09VVFBVVF9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTlBVVF9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hETUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19WUkVGX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19EUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1RSSUdHRVJfUkVRVUlSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0pBQ0tfREVURUNUSU9OX0NBUEFCSUxJVFlfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hFQURQSE9ORV9EUklWRV9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX09VVFBVVF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0JBTEFOQ0VEX0lfT19QSU5TX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hETUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0VBUERfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fVEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0UKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19PVVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fT1VUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19TUEVBS0VSX0FMTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0hETUlfQ09OTkVDVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRFBfQ09OTkVDVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19FWFRSQV9DT05ORUNUSU9OX0lORk9fX1NISUZUICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xGRV9QTEFZQkFDS19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fTEVWRUxfU0hJRlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19ET1dOX01JWF9JTkhJQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX1NQRUFLRVJfQUxMT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0hETUlfQ09OTkVDVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RQX0NPTk5FQ1RJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0VYVFJBX0NPTk5FQ1RJT05fSU5GT19NQVNLICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xGRV9QTEFZQkFDS19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xFVkVMX1NISUZUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RPV05fTUlYX0lOSElCSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fX1NISUZUICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJFT19NQVNLICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjIKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjUKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTMKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweGMKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19NVVRFX19TSElGVCAgICAgICAgICAgICAweDE5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MWMKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHhGMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19WSURFT19MSVBTWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fQVVESU9fTElQU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX1ZJREVPX0xJUFNZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX0FVRElPX0xJUFNZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fTUFOVUZBQ1RVUkVSX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX1BST0RVQ1RfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fTUFOVUZBQ1RVUkVSX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fUFJPRFVDVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xX19TSU5LX0RFU0NSSVBUSU9OX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMV9fU0lOS19ERVNDUklQVElPTl9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yX19QT1JUX0lEMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMl9fUE9SVF9JRDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zX19QT1JUX0lEMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPM19fUE9SVF9JRDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT042X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ON19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzYKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT044X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT044X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT045X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19DTE9DS19HQVRJTkdfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQVVESU9fRU5BQkxFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0UKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfUEFZTE9BRF9NQVNLICAweDAzRkZGRkZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fU0VRVUVOQ0VfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfX1NISUZUICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX19TSElGVCAgICAweDFlCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fU0VRVUVOQ0VfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9BU1NPQ0lBVElPTl9NQVNLICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTUlTQ19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09OTkVDVElPTl9UWVBFX01BU0sgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fUE9SVF9DT05ORUNUSVZJVFlfTUFTSyAgICAgIDB4QzAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHhjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDFjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4RjAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFX19NVUxUSUNIQU5ORUxfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERV9fTVVMVElDSEFOTkVMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfU09VUkNFX05VTUJFUl9fU0hJRlQgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX09WUlJEX0VOX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfT1ZSUkRfRU5fX1NISUZUICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX09WUlJEX0VOX01BU0sgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX09WUlJEX0VOX01BU0sgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9fU0hJRlQgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX01BU0sgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX01BU0sgIDB4MDAwMDAwNDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzMKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9NQVNLICAweDAwMDAwMDEwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfQ09FRkZfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX01QRUdfU1VSUk9VTkRfSU5GT19fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX1ZBTElEX19TSElGVCAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9DT0VGRl9NQVNLICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX01QRUdfU1VSUk9VTkRfSU5GT19NQVNLICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA2MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNQorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzYKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zX19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfMl9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl80X19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNV9fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzRfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl82X01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl83X01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPX19BU1NPQ0lBVElPTl9JTkZPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GT19fQVNTT0NJQVRJT05fSU5GT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTX19PVVRQVVRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVU19fT1VUUFVUX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0xQSUJfU05BUFNIT1RfTE9DS19fU0hJRlQgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19DWUNMSUNfQlVGRkVSX1dSQVBfQ09VTlRfX1NISUZUICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUIKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9fTFBJQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1QKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFX19DT0RJTkdfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRV9fQ09ESU5HX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX0FDS19VUl9FTkFCTEVfX1NISUZUICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFQVNPTl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRVNQT05TRV9fU0hJRlQgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9BQ0tfVVJfRU5BQkxFX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFQVNPTl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFU1BPTlNFX01BU0sgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT04KKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9fV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX19XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX01BU0sgIDB4MDAwMDAwMDNMCisvL0FaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkUKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0NBUEFCSUxJVFlfX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9DQVBBQklMSVRZX01BU0sgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0FVRElPX0VOQUJMRV9TVEFUVVNfX0FVRElPX0VOQUJMRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTX19BVURJT19FTkFCTEVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0ZMQUdfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQzX0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UM19BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0ZMQUdfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX01BU0tfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDNfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX1RZUEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwZW5kcG9pbnQ0X2VuZHBvaW50aW5kCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRk9STUFUX09WRVJSSURFX19TSElGVCAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9fU0hJRlQgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfX1NISUZUICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAgICAweGEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX19TSElGVCAgICAgICAgICAgMHhiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX01BU0sgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX01BU0sgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRk9STUFUX09WRVJSSURFX01BU0sgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9NQVNLICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfTUFTSyAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfTUFTSyAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfTUFTSyAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfTUFTSyAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX01BU0sgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fQklUU19QRVJfU0FNUExFX19TSElGVCAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX0RJVklTT1JfX1NISUZUICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9NVUxUSVBMRV9fU0hJRlQgICAgICAgICAweGIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9NVUxUSVBMRV9NQVNLICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19TVFJFQU1fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZDRkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ09QWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX05PTl9BVURJT19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0RJR0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZDRkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX05PTl9BVURJT19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BST19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0tFRVBBTElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX01BU0sgICAweDAwMUYwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTF9fU1RSSVBFX0NBUEFCSUxJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ0FQQUJJTElUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURV9fUkFNUF9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEVfX1JBTVBfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfT0ZGU0VUX0NIQU5HRURfX1NISUZUICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fQ0xFQVJfR1RDX0NPVU5URVJfTUlOX01BWF9ERUxUQV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfR1JPVVBfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9PRkZTRVRfQ0hBTkdFRF9NQVNLICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19DTEVBUl9HVENfQ09VTlRFUl9NSU5fTUFYX0RFTFRBX01BU0sgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfR1JPVVBfTUFTSyAgMHgwMDAwMDA3MEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9fR1RDX0NPVU5URVJfREVMVEFfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfX0dUQ19DT1VOVEVSX0RFTFRBX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU5fX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOX19HVENfQ09VTlRFUl9ERUxUQV9NSU5fTUFTSyAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVhfX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYX19HVENfQ09VTlRFUl9ERUxUQV9NQVhfTUFTSyAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9fU0hJRlQgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9fU0hJRlQgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9fU0hJRlQgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX19TSElGVCAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgIDB4YQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX01BU0sgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9NQVNLICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfTUFTSyAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hFQURQSE9ORV9EUklWRV9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19PVVRQVVRfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0JBTEFOQ0VEX0lfT19QSU5TX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRE1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0VBUERfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTVBFREFOQ0VfU0VOU0VfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19KQUNLX0RFVEVDVElPTl9DQVBBQklMSVRZX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19PVVRQVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTlBVVF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRE1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19WUkVGX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19EUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fT1VUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0xfX09VVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fU1BFQUtFUl9BTExPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19IRE1JX0NPTk5FQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RQX0NPTk5FQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRVhUUkFfQ09OTkVDVElPTl9JTkZPX19TSElGVCAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRkVfUExBWUJBQ0tfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xFVkVMX1NISUZUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRE9XTl9NSVhfSU5ISUJJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19TUEVBS0VSX0FMTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19DSEFOTkVMX0FMTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19IRE1JX0NPTk5FQ1RJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19EUF9DT05ORUNUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19FWFRSQV9DT05ORUNUSU9OX0lORk9fTUFTSyAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRkVfUExBWUJBQ0tfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRVZFTF9TSElGVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19ET1dOX01JWF9JTkhJQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNgorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMgorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19NVVRFX19TSElGVCAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHhjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDFjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4RjAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fVklERU9fTElQU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX0FVRElPX0xJUFNZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19WSURFT19MSVBTWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19BVURJT19MSVBTWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX01BTlVGQUNUVVJFUl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wX19QUk9EVUNUX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX01BTlVGQUNUVVJFUl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX1BST0RVQ1RfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMV9fU0lOS19ERVNDUklQVElPTl9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzFfX1NJTktfREVTQ1JJUFRJT05fTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMl9fUE9SVF9JRDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzJfX1BPUlRfSUQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPM19fUE9SVF9JRDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzNfX1BPUlRfSUQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT041X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT043X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9QQVlMT0FEX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fU0hJRlQgIDB4MWMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX01BU0sgIDB4MTAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTUlTQ19fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX19TSElGVCAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT05ORUNUSU9OX1RZUEVfX1NISUZUICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgICAgMHgxZQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX01BU0sgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgICAgICAweEMwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMgorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4YworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxYworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweEYwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERV9fTVVMVElDSEFOTkVMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREVfX01VTFRJQ0hBTk5FTF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfX1NISUZUICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19TT1VSQ0VfTlVNQkVSX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9PVlJSRF9FTl9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfX1NISUZUICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX09WUlJEX0VOX19TSElGVCAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9PVlJSRF9FTl9NQVNLICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9PVlJSRF9FTl9NQVNLICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9NQVNLICAweDAwMDAwMDQwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX01BU0sgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fTUFTSyAgMHgwMDAwMDAxMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX0NPRUZGX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19NUEVHX1NVUlJPVU5EX0lORk9fX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX19TSElGVCAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfQ09FRkZfTUFTSyAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19NUEVHX1NVUlJPVU5EX0lORk9fTUFTSyAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfVkFMSURfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0xfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfUl9NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzNfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl80X01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl81X01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzZfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl83X19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfN19NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GTworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GT19fQVNTT0NJQVRJT05fSU5GT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk9fX0FTU09DSUFUSU9OX0lORk9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVU19fT1VUUFVUX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVNfX09VVFBVVF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0xQSUJfU05BUFNIT1RfTE9DS19NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9NQVNLICAgICAgICAweDAwMDBGRjAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UX19MUElCX1RJTUVSX1NOQVBTSE9UX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRV9fQ09ESU5HX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEVfX0NPRElOR19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRUQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9BQ0tfVVJfRU5BQkxFX19TSElGVCAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRUFTT05fX1NISUZUICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VfUkVTUE9OU0VfX1NISUZUICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfQUNLX1VSX0VOQUJMRV9NQVNLICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRUFTT05fTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRVNQT05TRV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9fV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9NQVNLICAweDAwMDAwMDAzTAorLy9BWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9DQVBBQklMSVRZX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfQ0FQQUJJTElUWV9NQVNLICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTX19BVURJT19FTkFCTEVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVU19fQVVESU9fRU5BQkxFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9GTEFHX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNF9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDRfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX1RZUEVfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9GTEFHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ0X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9UWVBFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGVuZHBvaW50NV9lbmRwb2ludGluZAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9fU0hJRlQgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9fU0hJRlQgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX19TSElGVCAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX19TSElGVCAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfX1NISUZUICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX19TSElGVCAgICAgMHhhCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgICAgICAgICAgIDB4YgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX01BU0sgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfTUFTSyAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX01BU0sgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX01BU0sgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX01BU0sgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX01BU0sgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fTlVNQkVSX09GX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX0JJVFNfUEVSX1NBTVBMRV9fU0hJRlQgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX19TSElGVCAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfX1NISUZUICAgICAgICAgMHhiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX1JBVEVfX1NISUZUICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fTlVNQkVSX09GX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fQklUU19QRVJfU0FNUExFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9NQVNLICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgICAgICAgICAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU1RSRUFNX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSUQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19TVFJFQU1fSURfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFNfX1NUUkVBTV9GT1JNQVRTX01BU0sgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fUkFURV9DQVBBQklMSVRJRVNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fUkFURV9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19NQVNLICAgMHgwMDFGMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTF9fU1RSSVBFX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DQVBBQklMSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTF9fU1RSSVBFX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTF9fU1RSSVBFX0NBUEFCSUxJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEVfX1JBTVBfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFX19SQU1QX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElORworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfRU5BQkxFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX09GRlNFVF9DSEFOR0VEX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX0NMRUFSX0dUQ19DT1VOVEVSX01JTl9NQVhfREVMVEFfX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0dST1VQX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19FTkFCTEVfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfT0ZGU0VUX0NIQU5HRURfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fQ0xFQVJfR1RDX0NPVU5URVJfTUlOX01BWF9ERUxUQV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0dST1VQX01BU0sgIDB4MDAwMDAwNzBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfX0dUQ19DT1VOVEVSX0RFTFRBX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX19HVENfQ09VTlRFUl9ERUxUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOX19HVENfQ09VTlRFUl9ERUxUQV9NSU5fX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9fR1RDX0NPVU5URVJfREVMVEFfTUlOX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYX19HVENfQ09VTlRFUl9ERUxUQV9NQVhfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9fR1RDX0NPVU5URVJfREVMVEFfTUFYX01BU0sgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfX1NISUZUICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfX1NISUZUICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAgICAgICAgICAweGEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX01BU0sgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX01BU0sgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfTUFTSyAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX01BU0sgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX01BU0sgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTVBFREFOQ0VfU0VOU0VfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0pBQ0tfREVURUNUSU9OX0NBUEFCSUxJVFlfX1NISUZUICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fVEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0xfX09VVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19PVVRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX1NQRUFLRVJfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19DSEFOTkVMX0FMTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fSERNSV9DT05ORUNUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19EUF9DT05ORUNUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0VYVFJBX0NPTk5FQ1RJT05fSU5GT19fU0hJRlQgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fTEZFX1BMQVlCQUNLX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRVZFTF9TSElGVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RPV05fTUlYX0lOSElCSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fU1BFQUtFUl9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fSERNSV9DT05ORUNUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRFBfQ09OTkVDVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRVhUUkFfQ09OTkVDVElPTl9JTkZPX01BU0sgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fTEZFX1BMQVlCQUNLX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fTEVWRUxfU0hJRlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRE9XTl9NSVhfSU5ISUJJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJFT19fU0hJRlQgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX01BU0sgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjkKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4YworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxYworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweEYwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX1ZJREVPX0xJUFNZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19BVURJT19MSVBTWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fVklERU9fTElQU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fQVVESU9fTElQU1lOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wX19NQU5VRkFDVFVSRVJfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fUFJPRFVDVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wX19NQU5VRkFDVFVSRVJfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wX19QUk9EVUNUX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzFfX1NJTktfREVTQ1JJUFRJT05fTEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xX19TSU5LX0RFU0NSSVBUSU9OX0xFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzJfX1BPUlRfSUQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yX19QT1JUX0lEMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzNfX1BPUlRfSUQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zX19QT1JUX0lEMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT040X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ON19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT040X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT041X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT042X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT043X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT045X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19DTE9DS19PTl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQVVESU9fRU5BQkxFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19DTE9DS19HQVRJTkdfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19DTE9DS19PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfUEFZTE9BRF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9QQVlMT0FEX01BU0sgIDB4MDNGRkZGRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9NQVNLICAweDEwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19TRVFVRU5DRV9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9BU1NPQ0lBVElPTl9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfX1NISUZUICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT0xPUl9fU0hJRlQgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09OTkVDVElPTl9UWVBFX19TSElGVCAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0RFVklDRV9fU0hJRlQgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fUE9SVF9DT05ORUNUSVZJVFlfX1NISUZUICAgIDB4MWUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19TRVFVRU5DRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX01BU0sgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT0xPUl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT05ORUNUSU9OX1RZUEVfTUFTSyAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0RFVklDRV9NQVNLICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9NQVNLICAgICAgMHhDMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweGMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19NVVRFX19TSElGVCAgICAgICAgICAgICAweDE5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MWMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHhGMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREVfX01VTFRJQ0hBTk5FTF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFX19NVUxUSUNIQU5ORUxfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19TT1VSQ0VfTlVNQkVSX19TSElGVCAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfU09VUkNFX05VTUJFUl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDNDTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfT1ZSUkRfRU5fX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9PVlJSRF9FTl9fU0hJRlQgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfT1ZSUkRfRU5fTUFTSyAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfT1ZSUkRfRU5fTUFTSyAgICAgICAweDAwMDAwMDgwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfX1NISUZUICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX19TSElGVCAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fTUFTSyAgMHgwMDAwMDA0MEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9NQVNLICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX01BU0sgIDB4MDAwMDAwMTBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9DT0VGRl9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfTVBFR19TVVJST1VORF9JTkZPX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfVkFMSURfX1NISUZUICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX0NPRUZGX01BU0sgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfTVBFR19TVVJST1VORF9JTkZPX01BU0sgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX1ZBTElEX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfUl9fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0xfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfMl9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzNfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yX01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zX01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzRfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl81X19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNV9NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl82X19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfN19fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzZfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk8KKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk9fX0FTU09DSUFUSU9OX0lORk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPX19BU1NPQ0lBVElPTl9JTkZPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVNfX09VVFBVVF9BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTX19PVVRQVVRfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX19TSElGVCAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19DWUNMSUNfQlVGRkVSX1dSQVBfQ09VTlRfTUFTSyAgICAgICAgMHgwMDAwRkYwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX19MUElCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9fTFBJQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UX19MUElCX1RJTUVSX1NOQVBTSE9UX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9NQVNLICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEVfX0NPRElOR19UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFX19DT0RJTkdfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VECisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfQUNLX1VSX0VOQUJMRV9fU0hJRlQgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VfUkVBU09OX19TSElGVCAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFU1BPTlNFX19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX0FDS19VUl9FTkFCTEVfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VfUkVBU09OX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VfUkVTUE9OU0VfTUFTSyAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTgorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX19XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fTUFTSyAgMHgwMDAwMDAwM0wKKy8vQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRQorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0NBUEFCSUxJVFlfTUFTSyAgICAgICAgIDB4MDAwMDAwMTBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0VOQUJMRV9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVU19fQVVESU9fRU5BQkxFX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0VOQUJMRV9TVEFUVVNfX0FVRElPX0VOQUJMRV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfRkxBR19fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDVfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX01BU0tfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ1X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9UWVBFX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfRkxBR19NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfTUFTS19NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNV9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfVFlQRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGF6ZjBlbmRwb2ludDZfZW5kcG9pbnRpbmQKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfX1NISUZUICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9fU0hJRlQgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX19TSElGVCAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgICAgIDB4YQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgICAgICAweGIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfTUFTSyAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9NQVNLICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX01BU0sgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX01BU0sgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX05VTUJFUl9PRl9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgICAgICAgIDB4YgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX19TSElGVCAgICAgICAgICAgICAweGUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU1RSRUFNX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX05VTUJFUl9PRl9DSEFOTkVMU19NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX0JJVFNfUEVSX1NBTVBMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX0RJVklTT1JfTUFTSyAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX01BU0sgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX1JBVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lECisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0RJR0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVkNGR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTk9OX0FVRElPX19TSElGVCAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BST19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0tFRVBBTElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVkNGR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ09QWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTk9OX0FVRElPX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFNfX1NUUkVBTV9GT1JNQVRTX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX01BU0sgIDB4MDAwMDBGRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgIDB4MDAxRjAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0xfX1NUUklQRV9DQVBBQklMSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFX19SQU1QX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURV9fUkFNUF9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0VOQUJMRV9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9PRkZTRVRfQ0hBTkdFRF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19DTEVBUl9HVENfQ09VTlRFUl9NSU5fTUFYX0RFTFRBX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19HUk9VUF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfRU5BQkxFX01BU0sgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX09GRlNFVF9DSEFOR0VEX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX0NMRUFSX0dUQ19DT1VOVEVSX01JTl9NQVhfREVMVEFfTUFTSyAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19HUk9VUF9NQVNLICAweDAwMDAwMDcwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX19HVENfQ09VTlRFUl9ERUxUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9fR1RDX0NPVU5URVJfREVMVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU4KKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9fR1RDX0NPVU5URVJfREVMVEFfTUlOX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU5fX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9NQVNLICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9fR1RDX0NPVU5URVJfREVMVEFfTUFYX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVhfX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9NQVNLICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BST0NFU1NJTkdfV0lER0VUX19TSElGVCAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX19TSElGVCAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX19TSElGVCAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfX1NISUZUICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QT1dFUl9DT05UUk9MX19TSElGVCAgICAgICAgICAgMHhhCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9NQVNLICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19VTlNPTElDSVRFRF9SRVNQT05TRV9DQVBBQklMSVRZX01BU0sgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQ09OTkVDVElPTl9MSVNUX01BU0sgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1RSSUdHRVJfUkVRVUlSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19KQUNLX0RFVEVDVElPTl9DQVBBQklMSVRZX19TSElGVCAgICAgICAgICAgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX09VVFBVVF9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTlBVVF9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hETUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19WUkVGX0NPTlRST0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19EUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1RSSUdHRVJfUkVRVUlSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0pBQ0tfREVURUNUSU9OX0NBUEFCSUxJVFlfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hFQURQSE9ORV9EUklWRV9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX09VVFBVVF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0JBTEFOQ0VEX0lfT19QSU5TX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hETUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0VBUERfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0UKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fVEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0UKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19PVVRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fT1VUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19TUEVBS0VSX0FMTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0hETUlfQ09OTkVDVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRFBfQ09OTkVDVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19FWFRSQV9DT05ORUNUSU9OX0lORk9fX1NISUZUICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xGRV9QTEFZQkFDS19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fTEVWRUxfU0hJRlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19ET1dOX01JWF9JTkhJQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX1NQRUFLRVJfQUxMT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0hETUlfQ09OTkVDVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RQX0NPTk5FQ1RJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0VYVFJBX0NPTk5FQ1RJT05fSU5GT19NQVNLICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xGRV9QTEFZQkFDS19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xFVkVMX1NISUZUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RPV05fTUlYX0lOSElCSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fX1NISUZUICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJFT19NQVNLICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX01VVEVfX1NISUZUICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweGMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19NVVRFX19TSElGVCAgICAgICAgICAgICAweDE5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4MWMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfTVVURV9NQVNLICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfQ0hBTk5FTF9JRF9NQVNLICAgICAgICAgMHhGMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19WSURFT19MSVBTWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fQVVESU9fTElQU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX1ZJREVPX0xJUFNZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX0FVRElPX0xJUFNZTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fTUFOVUZBQ1RVUkVSX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX1BST0RVQ1RfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fTUFOVUZBQ1RVUkVSX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMF9fUFJPRFVDVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8xX19TSU5LX0RFU0NSSVBUSU9OX0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMV9fU0lOS19ERVNDUklQVElPTl9MRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8yX19QT1JUX0lEMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMl9fUE9SVF9JRDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8zX19QT1JUX0lEMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPM19fUE9SVF9JRDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT042X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ON19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT044X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT044X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT045X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19DTE9DS19HQVRJTkdfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQVVESU9fRU5BQkxFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0UKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfUEFZTE9BRF9NQVNLICAweDAzRkZGRkZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fU0VRVUVOQ0VfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfX1NISUZUICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX19TSElGVCAgICAweDFlCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fU0VRVUVOQ0VfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9BU1NPQ0lBVElPTl9NQVNLICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTUlTQ19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09OTkVDVElPTl9UWVBFX01BU0sgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fUE9SVF9DT05ORUNUSVZJVFlfTUFTSyAgICAgIDB4QzAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHhjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDFjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4RjAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9NT0RFX19NVUxUSUNIQU5ORUxfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERV9fTVVMVElDSEFOTkVMX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfU09VUkNFX05VTUJFUl9fU0hJRlQgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX09WUlJEX0VOX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfT1ZSUkRfRU5fX1NISUZUICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX09WUlJEX0VOX01BU0sgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX09WUlJEX0VOX01BU0sgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9fU0hJRlQgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX01BU0sgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8yX19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX01BU0sgIDB4MDAwMDAwNDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX09WUlJEX0VOX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9NQVNLICAweDAwMDAwMDEwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfQ09FRkZfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX01QRUdfU1VSUk9VTkRfSU5GT19fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX1ZBTElEX19TSElGVCAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9DT0VGRl9NQVNLICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX01QRUdfU1VSUk9VTkRfSU5GT19NQVNLICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA2MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNQorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MX01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzYKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zX19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfMl9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl80X19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNV9fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzRfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzdfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl82X01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl83X01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9BU1NPQ0lBVElPTl9JTkZPX19BU1NPQ0lBVElPTl9JTkZPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GT19fQVNTT0NJQVRJT05fSU5GT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTX19PVVRQVVRfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVU19fT1VUUFVUX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0xQSUJfU05BUFNIT1RfTE9DS19fU0hJRlQgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19DWUNMSUNfQlVGRkVSX1dSQVBfQ09VTlRfX1NISUZUICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUIKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9fTFBJQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1QKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NPRElOR19UWVBFX19DT0RJTkdfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRV9fQ09ESU5HX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX0FDS19VUl9FTkFCTEVfX1NISUZUICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFQVNPTl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRVNQT05TRV9fU0hJRlQgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9BQ0tfVVJfRU5BQkxFX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFQVNPTl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFX1JFU1BPTlNFX01BU0sgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT04KKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9fV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX19XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OX01BU0sgIDB4MDAwMDAwMDNMCisvL0FaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkUKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfRU5BQkxFX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0NBUEFCSUxJVFlfX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9DQVBBQklMSVRZX01BU0sgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0FVRElPX0VOQUJMRV9TVEFUVVNfX0FVRElPX0VOQUJMRV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTX19BVURJT19FTkFCTEVfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9BWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0ZMQUdfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ2X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9NQVNLX19TSElGVCAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UNl9BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0ZMQUdfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX01BU0tfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDZfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX1RZUEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBhemYwZW5kcG9pbnQ3X2VuZHBvaW50aW5kCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFUworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfX1NISUZUICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRk9STUFUX09WRVJSSURFX19TSElGVCAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9fU0hJRlQgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19DT05ORUNUSU9OX0xJU1RfX1NISUZUICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAgICAgIDB4OQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAgICAweGEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19MUl9TV0FQX19TSElGVCAgICAgICAgICAgMHhiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX19TSElGVCAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX01BU0sgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX01BU0sgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRk9STUFUX09WRVJSSURFX01BU0sgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9NQVNLICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfTUFTSyAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfTUFTSyAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfTUFTSyAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfTUFTSyAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX01BU0sgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fQklUU19QRVJfU0FNUExFX19TSElGVCAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX0RJVklTT1JfX1NISUZUICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9NVUxUSVBMRV9fU0hJRlQgICAgICAgICAweGIKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9NVUxUSVBMRV9NQVNLICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19TVFJFQU1fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZDRkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fQ09QWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX05PTl9BVURJT19fU0hJRlQgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0RJR0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZDRkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX05PTl9BVURJT19NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1BST19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0tFRVBBTElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUUworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19CSVRfQ0FQQUJJTElUSUVTX01BU0sgICAweDAwMUYwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfU1RSSVBFX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9TVFJJUEVfQ09OVFJPTF9fU1RSSVBFX0NBUEFCSUxJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ09OVFJPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX1NUUklQRV9DT05UUk9MX19TVFJJUEVfQ0FQQUJJTElUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfUkFNUF9SQVRFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX1JBTVBfUkFURV9fUkFNUF9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9SQU1QX1JBVEVfX1JBTVBfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9DT05UUk9MX0dUQ19FTUJFRERJTkdfX1BSRVNFTlRBVElPTl9USU1FX0VNQkVERElOR19FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfT0ZGU0VUX0NIQU5HRURfX1NISUZUICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fQ0xFQVJfR1RDX0NPVU5URVJfTUlOX01BWF9ERUxUQV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfR1JPVVBfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0NPTlRST0xfR1RDX0VNQkVERElOR19fUFJFU0VOVEFUSU9OX1RJTUVfRU1CRURESU5HX0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9PRkZTRVRfQ0hBTkdFRF9NQVNLICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19DTEVBUl9HVENfQ09VTlRFUl9NSU5fTUFYX0RFTFRBX01BU0sgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfQ09OVFJPTF9HVENfRU1CRURESU5HX19QUkVTRU5UQVRJT05fVElNRV9FTUJFRERJTkdfR1JPVVBfTUFTSyAgMHgwMDAwMDA3MEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfQ09OVkVSVEVSX0dUQ19DT1VOVEVSX0RFTFRBCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9fR1RDX0NPVU5URVJfREVMVEFfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfX0dUQ19DT1VOVEVSX0RFTFRBX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NSU5fX0dUQ19DT1VOVEVSX0RFTFRBX01JTl9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUlOX19HVENfQ09VTlRFUl9ERUxUQV9NSU5fTUFTSyAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0NPTlZFUlRFUl9HVENfQ09VTlRFUl9ERUxUQV9NQVhfX0dUQ19DT1VOVEVSX0RFTFRBX01BWF9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19DT05WRVJURVJfR1RDX0NPVU5URVJfREVMVEFfTUFYX19HVENfQ09VTlRFUl9ERUxUQV9NQVhfTUFTSyAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9fU0hJRlQgIDB4MworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19QUk9DRVNTSU5HX1dJREdFVF9fU0hJRlQgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9fU0hJRlQgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19ESUdJVEFMX19TSElGVCAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgIDB4YQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX01BU0sgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVU5TT0xJQ0lURURfUkVTUE9OU0VfQ0FQQUJJTElUWV9NQVNLICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0RJR0lUQUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfREVMQVlfTUFTSyAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0hFQURQSE9ORV9EUklWRV9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19PVVRQVVRfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0JBTEFOQ0VEX0lfT19QSU5TX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRE1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0VBUERfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTVBFREFOQ0VfU0VOU0VfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19KQUNLX0RFVEVDVElPTl9DQVBBQklMSVRZX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19PVVRQVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19JTlBVVF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRE1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19WUkVGX0NPTlRST0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19EUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX1BJTl9TRU5TRV9fSU1QRURBTkNFX1NFTlNFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fT1VUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lER0VUX0NPTlRST0xfX09VVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fU1BFQUtFUl9BTExPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19IRE1JX0NPTk5FQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0RQX0NPTk5FQ1RJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRVhUUkFfQ09OTkVDVElPTl9JTkZPX19TSElGVCAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRkVfUExBWUJBQ0tfTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVJfX0xFVkVMX1NISUZUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUl9fRE9XTl9NSVhfSU5ISUJJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19TUEVBS0VSX0FMTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19DSEFOTkVMX0FMTE9DQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19IRE1JX0NPTk5FQ1RJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19EUF9DT05ORUNUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19FWFRSQV9DT05ORUNUSU9OX0lORk9fTUFTSyAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRkVfUExBWUJBQ0tfTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19MRVZFTF9TSElGVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSX19ET1dOX01JWF9JTkhJQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IwX19TVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPX19TSElGVCAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU9fTUFTSyAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjFfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMV9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjJfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMl9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SM19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjNfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjQKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjRfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNF9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I0X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjVfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNgorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNl9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjZfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjcKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjdfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SN19fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3X19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I4X19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjhfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOF9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOV9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I5X19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjlfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMF9fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTBfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExX19NQVhfQ0hBTk5FTFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX19TSElGVCAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTFfX0RFU0NSSVBUT1JfQllURV8yX19TSElGVCAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fTUFYX0NIQU5ORUxTX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX01BU0sgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMV9fREVTQ1JJUFRPUl9CWVRFXzJfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMgorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTJfX01BWF9DSEFOTkVMU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfX1NISUZUICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMl9fREVTQ1JJUFRPUl9CWVRFXzJfX1NISUZUICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19NQVhfQ0hBTk5FTFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19TVVBQT1JURURfRlJFUVVFTkNJRVNfTUFTSyAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEyX19ERVNDUklQVE9SX0JZVEVfMl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxM19fTUFYX0NIQU5ORUxTX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19fU0hJRlQgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEzX19ERVNDUklQVE9SX0JZVEVfMl9fU0hJRlQgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX01BWF9DSEFOTkVMU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX1NVUFBPUlRFRF9GUkVRVUVOQ0lFU19NQVNLICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTNfX0RFU0NSSVBUT1JfQllURV8yX01BU0sgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwMV9NVVRFX19TSElGVCAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMDFfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyM19NVVRFX19TSElGVCAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMjNfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHhjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNDVfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw0NV9DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMNjdfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUw2N19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDFjCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDAxX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDIzX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDQ1X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0VOQUJMRV9NQVNLICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X01VVEVfTUFTSyAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEVfX01VTFRJQ0hBTk5FTDY3X0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4RjAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkMKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQ19fVklERU9fTElQU1lOQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0xJUFNZTkNfX0FVRElPX0xJUFNZTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19WSURFT19MSVBTWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DX19BVURJT19MSVBTWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfQ0FQQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX01BTlVGQUNUVVJFUl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk8wX19QUk9EVUNUX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX01BTlVGQUNUVVJFUl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzBfX1BST0RVQ1RfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMV9fU0lOS19ERVNDUklQVElPTl9MRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzFfX1NJTktfREVTQ1JJUFRJT05fTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzIKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPMl9fUE9SVF9JRDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzJfX1BPUlRfSUQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzMKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPM19fUE9SVF9JRDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzNfX1BPUlRfSUQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzQKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk80X19ERVNDUklQVElPTjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzRfX0RFU0NSSVBUSU9OM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNF9fREVTQ1JJUFRJT04zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT041X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzVfX0RFU0NSSVBUSU9ONl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNV9fREVTQ1JJUFRJT043X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk81X19ERVNDUklQVElPTjdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPNl9fREVTQ1JJUFRJT04xMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk82X19ERVNDUklQVElPTjExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzZfX0RFU0NSSVBUSU9OMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzcKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk83X19ERVNDUklQVElPTjE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzdfX0RFU0NSSVBUSU9OMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPN19fREVTQ1JJUFRJT04xNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9TSU5LX0lORk84X19ERVNDUklQVElPTjE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfU0lOS19JTkZPOF9fREVTQ1JJUFRJT04xN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1NJTktfSU5GTzhfX0RFU0NSSVBUSU9OMTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9QQVlMT0FEX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX19VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fU0hJRlQgIDB4MWMKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFX01BU0sgIDB4MTAwMDAwMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTUlTQ19fU0hJRlQgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX19TSElGVCAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19DT05ORUNUSU9OX1RZUEVfX1NISUZUICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgICAgICAweDE0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgICAgMHgxZQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX01BU0sgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgICAgICAweEMwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMgorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDFfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwxX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDNfTVVURV9fU0hJRlQgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAgICAgIDB4YworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfX1NISUZUICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDVfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAgICAgICAgICAweDE4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfX1NISUZUICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfQ0hBTk5FTF9JRF9fU0hJRlQgICAgICAgMHgxYworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfTUFTSyAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19NVVRFX01BU0sgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX01BU0sgICAgICAgICAweEYwMDAwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfTU9ERV9fTVVMVElDSEFOTkVMX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX01PREVfX01VTFRJQ0hBTk5FTF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8wX19JRUNfNjA5NThfQ1NfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMF9fSUVDXzYwOTU4X0NTX1NPVVJDRV9OVU1CRVJfX1NISUZUICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzBfX0lFQ182MDk1OF9DU19TT1VSQ0VfTlVNQkVSX01BU0sgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzEKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX0NMT0NLX0FDQ1VSQUNZX19TSElGVCAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9PVlJSRF9FTl9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8xX19JRUNfNjA5NThfQ1NfV09SRF9MRU5HVEhfX1NISUZUICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMV9fSUVDXzYwOTU4X0NTX1dPUkRfTEVOR1RIX09WUlJEX0VOX19TSElGVCAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9NQVNLICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19DTE9DS19BQ0NVUkFDWV9PVlJSRF9FTl9NQVNLICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzFfX0lFQ182MDk1OF9DU19XT1JEX0xFTkdUSF9PVlJSRF9FTl9NQVNLICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzIKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzJfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfMl9fSUVDXzYwOTU4X0NTX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9NQVNLICAweDAwMDAwMDQwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfM19fSUVDXzYwOTU4X0NTX09SSUdJTkFMX1NBTVBMSU5HX0ZSRVFVRU5DWV9PVlJSRF9FTl9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV8zX19JRUNfNjA5NThfQ1NfT1JJR0lOQUxfU0FNUExJTkdfRlJFUVVFTkNZX01BU0sgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzNfX0lFQ182MDk1OF9DU19PUklHSU5BTF9TQU1QTElOR19GUkVRVUVOQ1lfT1ZSUkRfRU5fTUFTSyAgMHgwMDAwMDAxMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfU0FNUExJTkdfRlJFUVVFTkNZX0NPRUZGX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19NUEVHX1NVUlJPVU5EX0lORk9fX1NISUZUICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV80X19JRUNfNjA5NThfQ1NfQ0dNU19BX19TSElGVCAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNF9fSUVDXzYwOTU4X0NTX0NHTVNfQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19TQU1QTElOR19GUkVRVUVOQ1lfQ09FRkZfTUFTSyAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19NUEVHX1NVUlJPVU5EX0lORk9fTUFTSyAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNjBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzRfX0lFQ182MDk1OF9DU19DR01TX0FfVkFMSURfTUFTSyAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzUKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNV9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0xfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzVfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SX19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV81X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfUl9NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzZfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yX19TSElGVCAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV82X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfM19fU0hJRlQgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzJfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNl9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzNfTUFTSyAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfNworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV83X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNF9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfN19fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzVfX1NISUZUICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl80X01BU0sgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzdfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl81X01BU0sgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfUElOX0NPTlRST0xfQ09ERUNfQ1NfT1ZFUlJJREVfOF9fSUVDXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzZfX1NISUZUICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX1BJTl9DT05UUk9MX0NPREVDX0NTX09WRVJSSURFXzhfX0lFQ182MDk1OF9DU19DSEFOTkVMX05VTUJFUl83X19TSElGVCAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfNl9NQVNLICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9QSU5fQ09OVFJPTF9DT0RFQ19DU19PVkVSUklERV84X19JRUNfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfN19NQVNLICAgICAgICAgICAweDAwMDAwMEYwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GTworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQVNTT0NJQVRJT05fSU5GT19fQVNTT0NJQVRJT05fSU5GT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0FTU09DSUFUSU9OX0lORk9fX0FTU09DSUFUSU9OX0lORk9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRElHSVRBTF9PVVRQVVRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0RJR0lUQUxfT1VUUFVUX1NUQVRVU19fT1VUUFVUX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9ESUdJVEFMX09VVFBVVF9TVEFUVVNfX09VVFBVVF9BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0wKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0xQSUJfU05BUFNIT1RfTE9DS19NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9NQVNLICAgICAgICAweDAwMDBGRjAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfX1NISUZUICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UX19MUElCX1RJTUVSX1NOQVBTSE9UX01BU0sgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DT0RJTkdfVFlQRV9fQ09ESU5HX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfQ09ESU5HX1RZUEVfX0NPRElOR19UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRUQKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0ZPUk1BVF9DSEFOR0VEX19GT1JNQVRfQ0hBTkdFRF9BQ0tfVVJfRU5BQkxFX19TSElGVCAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRUFTT05fX1NISUZUICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfRk9STUFUX0NIQU5HRURfX0ZPUk1BVF9DSEFOR0VfUkVTUE9OU0VfX1NISUZUICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRURfQUNLX1VSX0VOQUJMRV9NQVNLICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRUFTT05fTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9GT1JNQVRfQ0hBTkdFRF9fRk9STUFUX0NIQU5HRV9SRVNQT05TRV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9XSVJFTEVTU19ESVNQTEFZX0lERU5USUZJQ0FUSU9OCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1dJUkVMRVNTX0RJU1BMQVlfSURFTlRJRklDQVRJT05fX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9fV0lSRUxFU1NfRElTUExBWV9JREVOVElGSUNBVElPTl9NQVNLICAweDAwMDAwMDAzTAorLy9BWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX1JFTU9URV9LRUVQQUxJVkVfX1JFTU9URV9LRUVQX0FMSVZFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19QSU5fQ09OVFJPTF9SRU1PVEVfS0VFUEFMSVZFX19SRU1PVEVfS0VFUF9BTElWRV9DQVBBQklMSVRZX19TSElGVCAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfRU5BQkxFX01BU0sgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVNT1RFX0tFRVBBTElWRV9fUkVNT1RFX0tFRVBfQUxJVkVfQ0FQQUJJTElUWV9NQVNLICAgICAgICAgMHgwMDAwMDAxMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9BVURJT19FTkFCTEVfU1RBVFVTX19BVURJT19FTkFCTEVfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRU5BQkxFX1NUQVRVU19fQVVESU9fRU5BQkxFX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9BVURJT19FTkFCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0VOQUJMRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRU5BQkxFRF9JTlRfU1RBVFVTX19BVURJT19FTkFCTEVEX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0FVRElPX0VOQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRU5BQkxFRF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0FaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVMKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0FVRElPX0RJU0FCTEVEX0lOVF9TVEFUVVNfX0FVRElPX0RJU0FCTEVEX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9BVURJT19ESVNBQkxFRF9JTlRfU1RBVFVTX19BVURJT19ESVNBQkxFRF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRElTQUJMRURfSU5UX1NUQVRVU19fQVVESU9fRElTQUJMRURfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVUworI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9GTEFHX19TSElGVCAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMEVORFBPSU5UN19BWkFMSUFfRjBfQVVESU9fRk9STUFUX0NIQU5HRURfSU5UX1NUQVRVU19fQVVESU9fRk9STUFUX0NIQU5HRURfTUFTS19fU0hJRlQgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBFTkRQT0lOVDdfQVpBTElBX0YwX0FVRElPX0ZPUk1BVF9DSEFOR0VEX0lOVF9TVEFUVVNfX0FVRElPX0ZPUk1BVF9DSEFOR0VEX1RZUEVfX1NISUZUICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9GTEFHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9NQVNLX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwRU5EUE9JTlQ3X0FaQUxJQV9GMF9BVURJT19GT1JNQVRfQ0hBTkdFRF9JTlRfU1RBVFVTX19BVURJT19GT1JNQVRfQ0hBTkdFRF9UWVBFX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQwX2lucHV0ZW5kcG9pbnRpbmQKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgIDB4OQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgIDB4YQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgIDB4YgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgIDB4ZQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAweGYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgMHgxNworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDFGMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAweGEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAweDMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgIDB4MWYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9NQVNLICAgMHg4MDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19JTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fSU5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwX01VVEVfX1NISUZUICAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgMHg5CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX19TSElGVCAgIDB4MTEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyX0NIQU5ORUxfSURfX1NISUZUICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfTUFTSyAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9NVVRFX01BU0sgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfTUFTSyAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX01BU0sgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9DSEFOTkVMX0lEX01BU0sgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgIDB4RjAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9NVVRFX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDRfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw2X01VVEVfX1NISUZUICAweDExCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4MTQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X01VVEVfTUFTSyAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0NIQU5ORUxfSURfTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX01BU0sgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfTVVURV9NQVNLICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9NQVNLICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgMHhGMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAweGMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgIDB4MWUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgIDB4QzAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgIDB4MDAwMEZGMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAweEZGRkZGRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19DSEFOTkVMX0xBWU9VVF9fU0hJRlQgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTF9fSU5QVVRfQUNUSVZJVFlfVVJfRU5BQkxFX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0NMX0NTX0lORk9GUkFNRV9DSEFOR0VfVVJfRU5BQkxFX19TSElGVCAgMHg1CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0NIQU5ORUxfTEFZT1VUX01BU0sgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9DTF9DU19JTkZPRlJBTUVfQ0hBTkdFX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDIwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19JTkZPRlJBTUVfQllURV81X19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQwX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX0JZVEVfNV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDBfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQxX2lucHV0ZW5kcG9pbnRpbmQKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgIDB4OQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgIDB4YQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgIDB4YgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgIDB4ZQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAweGYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgMHgxNworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDFGMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAweGEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAweDMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgIDB4MWYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9NQVNLICAgMHg4MDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19JTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fSU5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwX01VVEVfX1NISUZUICAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgMHg5CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX19TSElGVCAgIDB4MTEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyX0NIQU5ORUxfSURfX1NISUZUICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfTUFTSyAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9NVVRFX01BU0sgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfTUFTSyAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX01BU0sgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9DSEFOTkVMX0lEX01BU0sgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgIDB4RjAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9NVVRFX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDRfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw2X01VVEVfX1NISUZUICAweDExCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4MTQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X01VVEVfTUFTSyAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0NIQU5ORUxfSURfTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX01BU0sgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfTVVURV9NQVNLICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9NQVNLICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgMHhGMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAweGMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgIDB4MWUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgIDB4QzAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgIDB4MDAwMEZGMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAweEZGRkZGRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19DSEFOTkVMX0xBWU9VVF9fU0hJRlQgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTF9fSU5QVVRfQUNUSVZJVFlfVVJfRU5BQkxFX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0NMX0NTX0lORk9GUkFNRV9DSEFOR0VfVVJfRU5BQkxFX19TSElGVCAgMHg1CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0NIQU5ORUxfTEFZT1VUX01BU0sgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9DTF9DU19JTkZPRlJBTUVfQ0hBTkdFX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDIwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19JTkZPRlJBTUVfQllURV81X19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQxX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX0JZVEVfNV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDFfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQyX2lucHV0ZW5kcG9pbnRpbmQKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgIDB4OQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgIDB4YQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgIDB4YgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgIDB4ZQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAweGYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgMHgxNworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDFGMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAweGEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAweDMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgIDB4MWYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9NQVNLICAgMHg4MDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19JTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fSU5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwX01VVEVfX1NISUZUICAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgMHg5CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX19TSElGVCAgIDB4MTEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyX0NIQU5ORUxfSURfX1NISUZUICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfTUFTSyAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9NVVRFX01BU0sgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfTUFTSyAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX01BU0sgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9DSEFOTkVMX0lEX01BU0sgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgIDB4RjAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9NVVRFX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDRfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw2X01VVEVfX1NISUZUICAweDExCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4MTQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X01VVEVfTUFTSyAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0NIQU5ORUxfSURfTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX01BU0sgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfTVVURV9NQVNLICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9NQVNLICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgMHhGMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAweGMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgIDB4MWUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgIDB4QzAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgIDB4MDAwMEZGMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAweEZGRkZGRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19DSEFOTkVMX0xBWU9VVF9fU0hJRlQgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTF9fSU5QVVRfQUNUSVZJVFlfVVJfRU5BQkxFX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0NMX0NTX0lORk9GUkFNRV9DSEFOR0VfVVJfRU5BQkxFX19TSElGVCAgMHg1CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0NIQU5ORUxfTEFZT1VUX01BU0sgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9DTF9DU19JTkZPRlJBTUVfQ0hBTkdFX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDIwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UMl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19JTkZPRlJBTUVfQllURV81X19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQyX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX0JZVEVfNV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDJfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQzX2lucHV0ZW5kcG9pbnRpbmQKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgIDB4OQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgIDB4YQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgIDB4YgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgIDB4ZQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAweGYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgMHgxNworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDFGMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAweGEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAweDMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgIDB4MWYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9NQVNLICAgMHg4MDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19JTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fSU5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwX01VVEVfX1NISUZUICAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgMHg5CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX19TSElGVCAgIDB4MTEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyX0NIQU5ORUxfSURfX1NISUZUICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfTUFTSyAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9NVVRFX01BU0sgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfTUFTSyAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX01BU0sgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9DSEFOTkVMX0lEX01BU0sgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgIDB4RjAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9NVVRFX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDRfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw2X01VVEVfX1NISUZUICAweDExCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4MTQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X01VVEVfTUFTSyAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0NIQU5ORUxfSURfTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX01BU0sgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfTVVURV9NQVNLICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9NQVNLICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgMHhGMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAweGMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgIDB4MWUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgIDB4QzAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgIDB4MDAwMEZGMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAweEZGRkZGRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19DSEFOTkVMX0xBWU9VVF9fU0hJRlQgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTF9fSU5QVVRfQUNUSVZJVFlfVVJfRU5BQkxFX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0NMX0NTX0lORk9GUkFNRV9DSEFOR0VfVVJfRU5BQkxFX19TSElGVCAgMHg1CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0NIQU5ORUxfTEFZT1VUX01BU0sgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9DTF9DU19JTkZPRlJBTUVfQ0hBTkdFX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDIwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UM19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19JTkZPRlJBTUVfQllURV81X19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQzX0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX0JZVEVfNV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDNfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQ0X2lucHV0ZW5kcG9pbnRpbmQKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgIDB4OQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgIDB4YQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgIDB4YgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgIDB4ZQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAweGYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgMHgxNworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDFGMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAweGEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAweDMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgIDB4MWYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9NQVNLICAgMHg4MDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19JTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fSU5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwX01VVEVfX1NISUZUICAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgMHg5CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX19TSElGVCAgIDB4MTEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyX0NIQU5ORUxfSURfX1NISUZUICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfTUFTSyAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9NVVRFX01BU0sgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfTUFTSyAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX01BU0sgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9DSEFOTkVMX0lEX01BU0sgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgIDB4RjAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9NVVRFX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDRfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw2X01VVEVfX1NISUZUICAweDExCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4MTQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X01VVEVfTUFTSyAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0NIQU5ORUxfSURfTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX01BU0sgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfTVVURV9NQVNLICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9NQVNLICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgMHhGMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAweGMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgIDB4MWUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgIDB4QzAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgIDB4MDAwMEZGMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAweEZGRkZGRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19DSEFOTkVMX0xBWU9VVF9fU0hJRlQgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTF9fSU5QVVRfQUNUSVZJVFlfVVJfRU5BQkxFX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0NMX0NTX0lORk9GUkFNRV9DSEFOR0VfVVJfRU5BQkxFX19TSElGVCAgMHg1CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0NIQU5ORUxfTEFZT1VUX01BU0sgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9DTF9DU19JTkZPRlJBTUVfQ0hBTkdFX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDIwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNF9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19JTkZPRlJBTUVfQllURV81X19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ0X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX0JZVEVfNV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDRfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQ1X2lucHV0ZW5kcG9pbnRpbmQKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgIDB4OQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgIDB4YQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgIDB4YgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgIDB4ZQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAweGYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgMHgxNworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDFGMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAweGEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAweDMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgIDB4MWYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9NQVNLICAgMHg4MDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19JTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fSU5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwX01VVEVfX1NISUZUICAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgMHg5CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX19TSElGVCAgIDB4MTEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyX0NIQU5ORUxfSURfX1NISUZUICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfTUFTSyAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9NVVRFX01BU0sgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfTUFTSyAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX01BU0sgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9DSEFOTkVMX0lEX01BU0sgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgIDB4RjAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9NVVRFX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDRfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw2X01VVEVfX1NISUZUICAweDExCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4MTQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X01VVEVfTUFTSyAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0NIQU5ORUxfSURfTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX01BU0sgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfTVVURV9NQVNLICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9NQVNLICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgMHhGMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAweGMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgIDB4MWUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgIDB4QzAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgIDB4MDAwMEZGMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAweEZGRkZGRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19DSEFOTkVMX0xBWU9VVF9fU0hJRlQgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTF9fSU5QVVRfQUNUSVZJVFlfVVJfRU5BQkxFX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0NMX0NTX0lORk9GUkFNRV9DSEFOR0VfVVJfRU5BQkxFX19TSElGVCAgMHg1CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0NIQU5ORUxfTEFZT1VUX01BU0sgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9DTF9DU19JTkZPRlJBTUVfQ0hBTkdFX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDIwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNV9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19JTkZPRlJBTUVfQllURV81X19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ1X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX0JZVEVfNV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDVfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQ2X2lucHV0ZW5kcG9pbnRpbmQKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgIDB4OQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgIDB4YQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgIDB4YgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgIDB4ZQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAweGYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgMHgxNworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDFGMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAweGEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAweDMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgIDB4MWYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9NQVNLICAgMHg4MDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19JTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fSU5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwX01VVEVfX1NISUZUICAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgMHg5CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX19TSElGVCAgIDB4MTEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyX0NIQU5ORUxfSURfX1NISUZUICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfTUFTSyAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9NVVRFX01BU0sgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfTUFTSyAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX01BU0sgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9DSEFOTkVMX0lEX01BU0sgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgIDB4RjAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9NVVRFX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDRfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw2X01VVEVfX1NISUZUICAweDExCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4MTQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X01VVEVfTUFTSyAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0NIQU5ORUxfSURfTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX01BU0sgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfTVVURV9NQVNLICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9NQVNLICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgMHhGMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAweGMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgIDB4MWUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgIDB4QzAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgIDB4MDAwMEZGMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAweEZGRkZGRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19DSEFOTkVMX0xBWU9VVF9fU0hJRlQgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTF9fSU5QVVRfQUNUSVZJVFlfVVJfRU5BQkxFX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0NMX0NTX0lORk9GUkFNRV9DSEFOR0VfVVJfRU5BQkxFX19TSElGVCAgMHg1CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0NIQU5ORUxfTEFZT1VUX01BU0sgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9DTF9DU19JTkZPRlJBTUVfQ0hBTkdFX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDIwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UNl9BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19JTkZPRlJBTUVfQllURV81X19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ2X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX0JZVEVfNV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDZfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogYXpmMGlucHV0ZW5kcG9pbnQ3X2lucHV0ZW5kcG9pbnRpbmQKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19GT1JNQVRfT1ZFUlJJREVfX1NISUZUICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1NUUklQRV9fU0hJRlQgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgIDB4OQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9fU0hJRlQgIDB4YQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9fU0hJRlQgIDB4YgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1RZUEVfX1NISUZUICAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fQ0hBTk5FTF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0lOUFVUX0FNUExJRklFUl9QUkVTRU5UX01BU0sgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19PVVRQVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FNUExJRklFUl9QQVJBTUVURVJfT1ZFUlJJREVfTUFTSyAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0ZPUk1BVF9PVkVSUklERV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfX1NISUZUICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfRElWSVNPUl9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NBTVBMRV9CQVNFX01VTFRJUExFX19TSElGVCAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfUkFURV9fU0hJRlQgIDB4ZQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NPTlZFUlRFUl9GT1JNQVRfX1NUUkVBTV9UWVBFX19TSElGVCAgICAgICAweGYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19OVU1CRVJfT0ZfQ0hBTk5FTFNfTUFTSyAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19CSVRTX1BFUl9TQU1QTEVfTUFTSyAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9ESVZJU09SX01BU0sgIDB4MDAwMDA3MDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ09OVkVSVEVSX0ZPUk1BVF9fU0FNUExFX0JBU0VfTVVMVElQTEVfTUFTSyAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TQU1QTEVfQkFTRV9SQVRFX01BU0sgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DT05WRVJURVJfRk9STUFUX19TVFJFQU1fVFlQRV9NQVNLICAgICAgICAgMHgwMDAwODAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0NIQU5ORUxfU1RSRUFNX0lEX19DSEFOTkVMX0lEX19TSElGVCAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9DSEFOTkVMX1NUUkVBTV9JRF9fU1RSRUFNX0lEX19TSElGVCAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX0NIQU5ORUxfSURfTUFTSyAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfQ0hBTk5FTF9TVFJFQU1fSURfX1NUUkVBTV9JRF9NQVNLICAgICAgICAgIDB4MDAwMDAwRjBMCisvL0FaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fRElHRU5fX1NISUZUICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX1ZfX1NISUZUICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX19TSElGVCAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJFX19TSElGVCAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0NPUFlfX1NISUZUICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fX1NISUZUICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fUFJPX19TSElGVCAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX0NPTlRST0xfRElHSVRBTF9DT05WRVJURVJfX0xfX1NISUZUICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19fU0hJRlQgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfQ09OVFJPTF9ESUdJVEFMX0NPTlZFUlRFUl9fS0VFUEFMSVZFX19TSElGVCAgICAgICAgMHgxNworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19ESUdFTl9NQVNLICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19WQ0ZHX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUkVfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DT1BZX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19OT05fQVVESU9fTUFTSyAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19QUk9fTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19MX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19DQ19NQVNLICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9DT05UUk9MX0RJR0lUQUxfQ09OVkVSVEVSX19LRUVQQUxJVkVfTUFTSyAgICAgICAgICAweDAwODAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1RSRUFNX0ZPUk1BVFMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVRTX19TVFJFQU1fRk9STUFUU19fU0hJRlQgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVFJFQU1fRk9STUFUU19fU1RSRUFNX0ZPUk1BVFNfTUFTSyAgICAgIDB4RkZGRkZGRkZMCisvL0FaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFUworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX1JBVEVfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfQ09OVkVSVEVSX1BBUkFNRVRFUl9TVVBQT1JURURfU0laRV9SQVRFU19fQVVESU9fQklUX0NBUEFCSUxJVElFU19fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9DT05WRVJURVJfUEFSQU1FVEVSX1NVUFBPUlRFRF9TSVpFX1JBVEVTX19BVURJT19SQVRFX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwRkZGTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX0NPTlZFUlRFUl9QQVJBTUVURVJfU1VQUE9SVEVEX1NJWkVfUkFURVNfX0FVRElPX0JJVF9DQVBBQklMSVRJRVNfTUFTSyAgMHgwMDFGMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0FVRElPX0NIQU5ORUxfQ0FQQUJJTElUSUVTX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19JTlBVVF9BTVBMSUZJRVJfUFJFU0VOVF9fU0hJRlQgIDB4MQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fT1VUUFVUX0FNUExJRklFUl9QUkVTRU5UX19TSElGVCAgMHgyCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BTVBMSUZJRVJfUEFSQU1FVEVSX09WRVJSSURFX19TSElGVCAgMHgzCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19TVFJJUEVfX1NISUZUICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfX1NISUZUICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfX1NISUZUICAweDcKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9fU0hJRlQgICAgICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1BPV0VSX0NPTlRST0xfX1NISUZUICAweGEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0xSX1NXQVBfX1NISUZUICAgICAgMHhiCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX0RFTEFZX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9fU0hJRlQgICAgICAgICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9BVURJT19XSURHRVRfQ0FQQUJJTElUSUVTX19BVURJT19DSEFOTkVMX0NBUEFCSUxJVElFU19NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fSU5QVVRfQU1QTElGSUVSX1BSRVNFTlRfTUFTSyAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX09VVFBVVF9BTVBMSUZJRVJfUFJFU0VOVF9NQVNLICAweDAwMDAwMDA0TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQU1QTElGSUVSX1BBUkFNRVRFUl9PVkVSUklERV9NQVNLICAweDAwMDAwMDA4TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fU1RSSVBFX01BU0sgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUFJPQ0VTU0lOR19XSURHRVRfTUFTSyAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX1VOU09MSUNJVEVEX1JFU1BPTlNFX0NBUEFCSUxJVFlfTUFTSyAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0FVRElPX1dJREdFVF9DQVBBQklMSVRJRVNfX0NPTk5FQ1RJT05fTElTVF9NQVNLICAweDAwMDAwMTAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fRElHSVRBTF9NQVNLICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fUE9XRVJfQ09OVFJPTF9NQVNLICAweDAwMDAwNDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fTFJfU1dBUF9NQVNLICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19ERUxBWV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQVVESU9fV0lER0VUX0NBUEFCSUxJVElFU19fVFlQRV9NQVNLICAgICAgICAgICAweDAwRjAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lNUEVEQU5DRV9TRU5TRV9DQVBBQkxFX19TSElGVCAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19UUklHR0VSX1JFUVVJUkVEX19TSElGVCAgICAgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9fU0hJRlQgIDB4MgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19IRUFEUEhPTkVfRFJJVkVfQ0FQQUJMRV9fU0hJRlQgICAweDMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0lOUFVUX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgIDB4NQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19CQUxBTkNFRF9JX09fUElOU19fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX1ZSRUZfQ09OVFJPTF9fU0hJRlQgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9QQVJBTUVURVJfQ0FQQUJJTElUSUVTX19FQVBEX0NBUEFCTEVfX1NISUZUICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX1BBUkFNRVRFUl9DQVBBQklMSVRJRVNfX0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU1QRURBTkNFX1NFTlNFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVFJJR0dFUl9SRVFVSVJFRF9NQVNLICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSkFDS19ERVRFQ1RJT05fQ0FQQUJJTElUWV9NQVNLICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSEVBRFBIT05FX0RSSVZFX0NBUEFCTEVfTUFTSyAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fT1VUUFVUX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSU5QVVRfQ0FQQUJMRV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fQkFMQU5DRURfSV9PX1BJTlNfTUFTSyAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fSERNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fVlJFRl9DT05UUk9MX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRUFQRF9DQVBBQkxFX01BU0sgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fUEFSQU1FVEVSX0NBUEFCSUxJVElFU19fRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX19UQUdfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX1RBR19NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL0FaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSU5QVVRfUElOX1NFTlNFX19JTVBFREFOQ0VfU0VOU0VfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9fU0hJRlQgIDB4MWYKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX0lNUEVEQU5DRV9TRU5TRV9NQVNLICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9JTlBVVF9QSU5fU0VOU0VfX1BSRVNFTkNFX0RFVEVDVF9NQVNLICAgMHg4MDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1dJREdFVF9DT05UUk9MX19JTl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9XSURHRVRfQ09OVFJPTF9fSU5fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwwX01VVEVfX1NISUZUICAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfX1NISUZUICAweDgKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwxX01VVEVfX1NISUZUICAgMHg5CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfX1NISUZUICAweDEwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX19TSElGVCAgIDB4MTEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwyX0NIQU5ORUxfSURfX1NISUZUICAweDE0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX19TSElGVCAgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFX19NVUxUSUNIQU5ORUwzX0NIQU5ORUxfSURfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9FTkFCTEVfTUFTSyAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9NVVRFX01BU0sgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMF9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMDAwRjBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9FTkFCTEVfTUFTSyAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9NVVRFX01BU0sgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9FTkFCTEVfTUFTSyAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9NVVRFX01BU0sgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMMl9DSEFOTkVMX0lEX01BU0sgIDB4MDBGMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19FTkFCTEVfTUFTSyAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19NVVRFX01BU0sgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRV9fTVVMVElDSEFOTkVMM19DSEFOTkVMX0lEX01BU0sgIDB4RjAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9FTkFCTEVfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNF9NVVRFX19TSElGVCAgMHgxCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDRfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X0VOQUJMRV9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw1X01VVEVfX1NISUZUICAweDkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX19TSElGVCAgMHhjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX19TSElGVCAgMHgxMAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw2X01VVEVfX1NISUZUICAweDExCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9fU0hJRlQgIDB4MTQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19FTkFCTEVfX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDdfTVVURV9fU0hJRlQgIDB4MTkKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMN19DSEFOTkVMX0lEX19TSElGVCAgMHgxYworI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0VOQUJMRV9NQVNLICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X01VVEVfTUFTSyAgICAweDAwMDAwMDAyTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw0X0NIQU5ORUxfSURfTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9FTkFCTEVfTUFTSyAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9NVVRFX01BU0sgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9NVUxUSUNIQU5ORUxfRU5BQkxFMl9fTVVMVElDSEFOTkVMNV9DSEFOTkVMX0lEX01BU0sgIDB4MDAwMEYwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfRU5BQkxFX01BU0sgIDB4MDAwMTAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfTVVURV9NQVNLICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTVVMVElDSEFOTkVMX0VOQUJMRTJfX01VTFRJQ0hBTk5FTDZfQ0hBTk5FTF9JRF9NQVNLICAweDAwRjAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0VOQUJMRV9NQVNLICAweDAxMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X01VVEVfTUFTSyAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX01VTFRJQ0hBTk5FTF9FTkFCTEUyX19NVUxUSUNIQU5ORUw3X0NIQU5ORUxfSURfTUFTSyAgMHhGMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlIKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9IQlJfX0hCUl9DQVBBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfSEJSX19IQlJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0NBUEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0hCUl9fSEJSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0NIQU5ORUxfQUxMT0NBVElPTl9fQ0hBTk5FTF9BTExPQ0FUSU9OX19TSElGVCAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9DSEFOTkVMX0FMTE9DQVRJT05fX0NIQU5ORUxfQUxMT0NBVElPTl9NQVNLICAgICAgMHgwMDAwMDBGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSE9UX1BMVUdfQ09OVFJPTF9fQ0xPQ0tfR0FUSU5HX0RJU0FCTEVfX1NISUZUICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX19TSElGVCAgICAgICAgICAweDQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9IT1RfUExVR19DT05UUk9MX19BVURJT19FTkFCTEVEX19TSElGVCAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX0dBVElOR19ESVNBQkxFX01BU0sgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0NMT0NLX09OX1NUQVRFX01BU0sgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0hPVF9QTFVHX0NPTlRST0xfX0FVRElPX0VOQUJMRURfTUFTSyAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1VOU09MSUNJVEVEX1JFU1BPTlNFX0ZPUkNFCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1NISUZUICAweDFjCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfX1VOU09MSUNJVEVEX1JFU1BPTlNFX1BBWUxPQURfTUFTSyAgMHgwM0ZGRkZGRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9VTlNPTElDSVRFRF9SRVNQT05TRV9GT1JDRV9fVU5TT0xJQ0lURURfUkVTUE9OU0VfRk9SQ0VfTUFTSyAgMHgxMDAwMDAwMEwKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFQKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX19TSElGVCAgMHgwCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19ERUZBVUxUX0FTU09DSUFUSU9OX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19NSVNDX19TSElGVCAgICAgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fQ09MT1JfX1NISUZUICAgICAweGMKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9fU0hJRlQgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfREVWSUNFX19TSElGVCAgMHgxNAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fTE9DQVRJT05fX1NISUZUICAweDE4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUX19QT1JUX0NPTk5FQ1RJVklUWV9fU0hJRlQgIDB4MWUKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1NFUVVFTkNFX01BU0sgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0RFRkFVTFRfQVNTT0NJQVRJT05fTUFTSyAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX01JU0NfTUFTSyAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTE9SX01BU0sgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0NPTk5FQ1RJT05fVFlQRV9NQVNLICAweDAwMEYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX1JFU1BPTlNFX0NPTkZJR1VSQVRJT05fREVGQVVMVF9fREVGQVVMVF9ERVZJQ0VfTUFTSyAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX0xPQ0FUSU9OX01BU0sgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9SRVNQT05TRV9DT05GSUdVUkFUSU9OX0RFRkFVTFRfX1BPUlRfQ09OTkVDVElWSVRZX01BU0sgIDB4QzAwMDAwMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9TTkFQU0hPVF9DT05UUk9MX19MUElCX1NOQVBTSE9UX0xPQ0tfX1NISUZUICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1NOQVBTSE9UX0NPTlRST0xfX0NZQ0xJQ19CVUZGRVJfV1JBUF9DT1VOVF9fU0hJRlQgIDB4OAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fTFBJQl9TTkFQU0hPVF9MT0NLX01BU0sgICAweDAwMDAwMDAxTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfU05BUFNIT1RfQ09OVFJPTF9fQ1lDTElDX0JVRkZFUl9XUkFQX0NPVU5UX01BU0sgIDB4MDAwMEZGMDBMCisvL0FaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfX0xQSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX19MUElCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9MUElCX1RJTUVSX1NOQVBTSE9UCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfTFBJQl9USU1FUl9TTkFQU0hPVF9fTFBJQl9USU1FUl9TTkFQU0hPVF9fU0hJRlQgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0xQSUJfVElNRVJfU05BUFNIT1RfX0xQSUJfVElNRVJfU05BUFNIT1RfTUFTSyAgICAweEZGRkZGRkZGTAorLy9BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX19TSElGVCAgICAgIDB4MAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19DSEFOTkVMX0xBWU9VVF9fU0hJRlQgICAgICAweDEKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTlBVVF9TVEFUVVNfQ09OVFJPTF9fSU5QVVRfQUNUSVZJVFlfVVJfRU5BQkxFX19TSElGVCAgMHg0CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0NMX0NTX0lORk9GUkFNRV9DSEFOR0VfVVJfRU5BQkxFX19TSElGVCAgMHg1CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX01BU0sgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0NIQU5ORUxfTEFZT1VUX01BU0sgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5QVVRfU1RBVFVTX0NPTlRST0xfX0lOUFVUX0FDVElWSVRZX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDEwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lOUFVUX1NUQVRVU19DT05UUk9MX19JTlBVVF9DTF9DU19JTkZPRlJBTUVfQ0hBTkdFX1VSX0VOQUJMRV9NQVNLICAweDAwMDAwMDIwTAorLy9BWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRQorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0NIQU5ORUxfQUxMT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFaRjBJTlBVVEVORFBPSU5UN19BWkFMSUFfRjBfQ09ERUNfSU5QVVRfUElOX0NPTlRST0xfSU5GT0ZSQU1FX19JTkZPRlJBTUVfQllURV81X19TSElGVCAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVpGMElOUFVURU5EUE9JTlQ3X0FaQUxJQV9GMF9DT0RFQ19JTlBVVF9QSU5fQ09OVFJPTF9JTkZPRlJBTUVfX0lORk9GUkFNRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fQ0hBTk5FTF9BTExPQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX0JZVEVfNV9NQVNLICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBWkYwSU5QVVRFTkRQT0lOVDdfQVpBTElBX0YwX0NPREVDX0lOUFVUX1BJTl9DT05UUk9MX0lORk9GUkFNRV9fSU5GT0ZSQU1FX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2Rjbi9kcGNzXzJfMV8wX29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2Rjbi9kcGNzXzJfMV8wX29mZnNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0NWJiNjEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvZGNuL2RwY3NfMl8xXzBfb2Zmc2V0LmgKQEAgLTAsMCArMSw1NjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX2RwY3NfMl8xXzBfT0ZGU0VUX0hFQURFUgorI2RlZmluZSBfZHBjc18yXzFfMF9PRkZTRVRfSEVBREVSCisKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjczBfZHBjc3R4MF9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbURQQ1NUWDBfRFBDU1RYX1RYX0NMT0NLX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkyOAorI2RlZmluZSBtbURQQ1NUWDBfRFBDU1RYX1RYX0NMT0NLX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFgwX0RQQ1NUWF9UWF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MjkKKyNkZWZpbmUgbW1EUENTVFgwX0RQQ1NUWF9UWF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYMF9EUENTVFhfQ0JVU19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTJhCisjZGVmaW5lIG1tRFBDU1RYMF9EUENTVFhfQ0JVU19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDBfRFBDU1RYX0lOVEVSUlVQVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkyYgorI2RlZmluZSBtbURQQ1NUWDBfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFgwX0RQQ1NUWF9QTExfVVBEQVRFX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MmMKKyNkZWZpbmUgbW1EUENTVFgwX0RQQ1NUWF9QTExfVVBEQVRFX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYMF9EUENTVFhfUExMX1VQREFURV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTJkCisjZGVmaW5lIG1tRFBDU1RYMF9EUENTVFhfUExMX1VQREFURV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkyZQorI2RlZmluZSBtbURQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjczBfcmRwY3N0eDBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MzAKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9DTE9DS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTMxCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9DTE9DS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkzMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BMTF9VUERBVEVfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MzMKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BMTF9VUERBVEVfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NfVFhfQ1JfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTM0CisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NfVFhfQ1JfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTX1RYX0NSX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkzNQorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTX1RYX0NSX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU19UWF9TUkFNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MzYKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU19UWF9TUkFNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9TQ1JBVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTM3CisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9TQ1JBVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfU1BBUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkzOAorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfU1BBUkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MzkKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTNjCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfREVCVUdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjkzZAorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfREVCVUdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5NDAKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTQxCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjk0MgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5NDMKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTQ0CisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjk0NQorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5NDYKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTQ3CisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjk0OAorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5NDkKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTRhCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjk0YgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5NGMKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTRkCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjk0ZQorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5NGYKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTUwCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjk1MQorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5NTIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfUlhfTERfVkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTUzCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjk1NAorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5NTUKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTU2CisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjk1OAorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5NTkKKyNkZWZpbmUgbW1SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTVhCisjZGVmaW5lIG1tUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfREVCVUdfQ09ORklHMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjk1YgorI2RlZmluZSBtbVJEUENTVFgwX1JEUENTVFhfREVCVUdfQ09ORklHMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjc3N5c19jcjBfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1EUENTU1lTX0NSMF9EUENTU1lTX0NSX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MzQKKyNkZWZpbmUgbW1EUENTU1lTX0NSMF9EUENTU1lTX0NSX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1NZU19DUjBfRFBDU1NZU19DUl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOTM1CisjZGVmaW5lIG1tRFBDU1NZU19DUjBfRFBDU1NZU19DUl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzMF9kcGNzdHgxX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgzNjAKKyNkZWZpbmUgbW1EUENTVFgxX0RQQ1NUWF9UWF9DTE9DS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMDAKKyNkZWZpbmUgbW1EUENTVFgxX0RQQ1NUWF9UWF9DTE9DS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYMV9EUENTVFhfVFhfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTAxCisjZGVmaW5lIG1tRFBDU1RYMV9EUENTVFhfVFhfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDFfRFBDU1RYX0NCVVNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEwMgorI2RlZmluZSBtbURQQ1NUWDFfRFBDU1RYX0NCVVNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFgxX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMDMKKyNkZWZpbmUgbW1EUENTVFgxX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYMV9EUENTVFhfUExMX1VQREFURV9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTA0CisjZGVmaW5lIG1tRFBDU1RYMV9EUENTVFhfUExMX1VQREFURV9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDFfRFBDU1RYX1BMTF9VUERBVEVfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEwNQorI2RlZmluZSBtbURQQ1NUWDFfRFBDU1RYX1BMTF9VUERBVEVfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMDYKKyNkZWZpbmUgbW1EUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkcGNzc3lzX2RwY3MwX3JkcGNzdHgxX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgzNjAKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMDgKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTA5CisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEwYQorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BMTF9VUERBVEVfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMGIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BMTF9VUERBVEVfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NfVFhfQ1JfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTBjCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NfVFhfQ1JfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTX1RYX0NSX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEwZAorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTX1RYX0NSX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU19UWF9TUkFNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMGUKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU19UWF9TUkFNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9TQ1JBVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTBmCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9TQ1JBVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfU1BBUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmExMAorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfU1BBUkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMTEKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTE0CisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmExNQorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMTgKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTE5CisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmExYQorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMWIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTFjCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmExZAorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMWUKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTFmCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEyMAorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMjEKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTIyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEyMworI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMjQKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTI1CisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEyNgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMjcKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTI4CisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEyOQorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMmEKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfUlhfTERfVkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTJiCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEyYworI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMmQKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTJlCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEzMAorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMzEKKyNkZWZpbmUgbW1SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYTMyCisjZGVmaW5lIG1tUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEzMworI2RlZmluZSBtbVJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjc3N5c19jcjFfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDM2MAorI2RlZmluZSBtbURQQ1NTWVNfQ1IxX0RQQ1NTWVNfQ1JfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmEwYworI2RlZmluZSBtbURQQ1NTWVNfQ1IxX0RQQ1NTWVNfQ1JfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTU1lTX0NSMV9EUENTU1lTX0NSX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhMGQKKyNkZWZpbmUgbW1EUENTU1lTX0NSMV9EUENTU1lTX0NSX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkcGNzc3lzX2RwY3MwX2RwY3N0eDJfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDZjMAorI2RlZmluZSBtbURQQ1NUWDJfRFBDU1RYX1RYX0NMT0NLX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFkOAorI2RlZmluZSBtbURQQ1NUWDJfRFBDU1RYX1RYX0NMT0NLX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFgyX0RQQ1NUWF9UWF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZDkKKyNkZWZpbmUgbW1EUENTVFgyX0RQQ1NUWF9UWF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYMl9EUENTVFhfQ0JVU19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWRhCisjZGVmaW5lIG1tRFBDU1RYMl9EUENTVFhfQ0JVU19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDJfRFBDU1RYX0lOVEVSUlVQVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFkYgorI2RlZmluZSBtbURQQ1NUWDJfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFgyX0RQQ1NUWF9QTExfVVBEQVRFX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZGMKKyNkZWZpbmUgbW1EUENTVFgyX0RQQ1NUWF9QTExfVVBEQVRFX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYMl9EUENTVFhfUExMX1VQREFURV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWRkCisjZGVmaW5lIG1tRFBDU1RYMl9EUENTVFhfUExMX1VQREFURV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFkZQorI2RlZmluZSBtbURQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjczBfcmRwY3N0eDJfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDZjMAorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFlMAorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZTEKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWUyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUExMX1VQREFURV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFlMworI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUExMX1VQREFURV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU19UWF9DUl9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZTQKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU19UWF9DUl9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NfVFhfQ1JfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWU1CisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NfVFhfQ1JfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTX1RYX1NSQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFlNgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTX1RYX1NSQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1NDUkFUQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZTcKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1NDUkFUQ0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9TUEFSRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWU4CisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9TUEFSRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFlOQorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZWMKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWVkCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFmMAorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZjEKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWYyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFmMworI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZjQKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWY1CisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFmNgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZjcKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWY4CisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFmOQorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZmEKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWZiCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFmYworI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJhZmQKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWZlCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFmZgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiMDAKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYjAxCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmIwMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9SWF9MRF9WQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiMDMKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9SWF9MRF9WQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYjA0CisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmIwNQorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiMDYKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYjA4CisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmIwOQorI2RlZmluZSBtbVJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiMGEKKyNkZWZpbmUgbW1SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYjBiCisjZGVmaW5lIG1tUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzc3lzX2NyMl9kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NmMwCisjZGVmaW5lIG1tRFBDU1NZU19DUjJfRFBDU1NZU19DUl9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYWU0CisjZGVmaW5lIG1tRFBDU1NZU19DUjJfRFBDU1NZU19DUl9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NTWVNfQ1IyX0RQQ1NTWVNfQ1JfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmFlNQorI2RlZmluZSBtbURQQ1NTWVNfQ1IyX0RQQ1NTWVNfQ1JfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjczBfZHBjc3R4M19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YTIwCisjZGVmaW5lIG1tRFBDU1RYM19EUENTVFhfVFhfQ0xPQ0tfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmIwCisjZGVmaW5lIG1tRFBDU1RYM19EUENTVFhfVFhfQ0xPQ0tfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDNfRFBDU1RYX1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJiMQorI2RlZmluZSBtbURQQ1NUWDNfRFBDU1RYX1RYX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFgzX0RQQ1NUWF9DQlVTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiYjIKKyNkZWZpbmUgbW1EUENTVFgzX0RQQ1NUWF9DQlVTX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYM19EUENTVFhfSU5URVJSVVBUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmIzCisjZGVmaW5lIG1tRFBDU1RYM19EUENTVFhfSU5URVJSVVBUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDNfRFBDU1RYX1BMTF9VUERBVEVfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJiNAorI2RlZmluZSBtbURQQ1NUWDNfRFBDU1RYX1BMTF9VUERBVEVfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFgzX0RQQ1NUWF9QTExfVVBEQVRFX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiYjUKKyNkZWZpbmUgbW1EUENTVFgzX0RQQ1NUWF9QTExfVVBEQVRFX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmI2CisjZGVmaW5lIG1tRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzMF9yZHBjc3R4M19kaXNwZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4YTIwCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmI4CisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJiOQorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiYmEKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QTExfVVBEQVRFX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmJiCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QTExfVVBEQVRFX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTX1RYX0NSX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJiYworI2RlZmluZSBtbVJEUENTVFgzX1JEUENTX1RYX0NSX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU19UWF9DUl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiYmQKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU19UWF9DUl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NfVFhfU1JBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmJlCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NfVFhfU1JBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfU0NSQVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJiZgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfU0NSQVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1NQQVJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiYzAKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1NQQVJFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmMxCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJjNAorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiYzUKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmM4CisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJjOQorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiY2EKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmNiCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJjYworI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiY2QKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmNlCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJjZgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiZDAKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmQxCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJkMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiZDMKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmQ0CisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJkNQorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiZDYKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmQ3CisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJkOAorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiZDkKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmRhCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX1JYX0xEX1ZBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJkYgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX1JYX0xEX1ZBTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiZGMKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmRkCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJkZQorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiZTAKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmUxCisjZGVmaW5lIG1tUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmJlMgorI2RlZmluZSBtbVJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiZTMKKyNkZWZpbmUgbW1SRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkcGNzc3lzX2RwY3NzeXNfY3IzX2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHhhMjAKKyNkZWZpbmUgbW1EUENTU1lTX0NSM19EUENTU1lTX0NSX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiYmMKKyNkZWZpbmUgbW1EUENTU1lTX0NSM19EUENTU1lTX0NSX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1NZU19DUjNfRFBDU1NZU19DUl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYmJkCisjZGVmaW5lIG1tRFBDU1NZU19DUjNfRFBDU1NZU19DUl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzMF9kcGNzdHg0X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHhkODAKKyNkZWZpbmUgbW1EUENTVFg0X0RQQ1NUWF9UWF9DTE9DS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjODgKKyNkZWZpbmUgbW1EUENTVFg0X0RQQ1NUWF9UWF9DTE9DS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYNF9EUENTVFhfVFhfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYzg5CisjZGVmaW5lIG1tRFBDU1RYNF9EUENTVFhfVFhfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDRfRFBDU1RYX0NCVVNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmM4YQorI2RlZmluZSBtbURQQ1NUWDRfRFBDU1RYX0NCVVNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFg0X0RQQ1NUWF9JTlRFUlJVUFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjOGIKKyNkZWZpbmUgbW1EUENTVFg0X0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tRFBDU1RYNF9EUENTVFhfUExMX1VQREFURV9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYzhjCisjZGVmaW5lIG1tRFBDU1RYNF9EUENTVFhfUExMX1VQREFURV9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbURQQ1NUWDRfRFBDU1RYX1BMTF9VUERBVEVfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmM4ZAorI2RlZmluZSBtbURQQ1NUWDRfRFBDU1RYX1BMTF9VUERBVEVfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjOGUKKyNkZWZpbmUgbW1EUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkcGNzc3lzX2RwY3MwX3JkcGNzdHg0X2Rpc3BkZWMKKy8vIGJhc2UgYWRkcmVzczogMHhkODAKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjOTAKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYzkxCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmM5MgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BMTF9VUERBVEVfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjOTMKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BMTF9VUERBVEVfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NfVFhfQ1JfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYzk0CisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NfVFhfQ1JfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTX1RYX0NSX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmM5NQorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTX1RYX0NSX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU19UWF9TUkFNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjOTYKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU19UWF9TUkFNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9TQ1JBVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYzk3CisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9TQ1JBVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfU1BBUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmM5OAorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfU1BBUkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjOTkKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyYzljCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmM5ZAorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjYTAKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyY2ExCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmNhMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjYTMKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyY2E0CisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmNhNQorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjYTYKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyY2E3CisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmNhOAorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjYTkKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyY2FhCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmNhYgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjYWMKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyY2FkCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmNhZQorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjYWYKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyY2IwCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmNiMQorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjYjIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfUlhfTERfVkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyY2IzCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmNiNAorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjYjUKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyY2I2CisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmNiOAorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjYjkKKyNkZWZpbmUgbW1SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyY2JhCisjZGVmaW5lIG1tUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmNiYgorI2RlZmluZSBtbVJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjc3N5c19jcjRfZGlzcGRlYworLy8gYmFzZSBhZGRyZXNzOiAweGQ4MAorI2RlZmluZSBtbURQQ1NTWVNfQ1I0X0RQQ1NTWVNfQ1JfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmM5NAorI2RlZmluZSBtbURQQ1NTWVNfQ1I0X0RQQ1NTWVNfQ1JfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgbW1EUENTU1lTX0NSNF9EUENTU1lTX0NSX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjOTUKKyNkZWZpbmUgbW1EUENTU1lTX0NSNF9EUENTU1lTX0NSX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2Rjbi9kcGNzXzJfMV8wX3NoX21hc2suaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9kY24vZHBjc18yXzFfMF9zaF9tYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUwMzlmMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9kY24vZHBjc18yXzFfMF9zaF9tYXNrLmgKQEAgLTAsMCArMSwzNDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9kcGNzXzJfMV8wX1NIX01BU0tfSEVBREVSCisjZGVmaW5lIF9kcGNzXzJfMV8wX1NIX01BU0tfSEVBREVSCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkcGNzc3lzX2RwY3MwX2RwY3N0eDBfZGlzcGRlYworLy9EUENTVFgwX0RQQ1NUWF9UWF9DTE9DS19DTlRMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0RJVjJfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19ESVYyX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorLy9EUENTVFgwX0RQQ1NUWF9UWF9DTlRMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfUExMX1VQREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1BMTF9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9EQVRBX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfREFUQV9PUkRFUl9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9GSUZPX1JEX1NUQVJUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfUExMX1VQREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfUExMX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfREFUQV9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfREFUQV9PUkRFUl9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19SRF9TVEFSVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQQ1NUWDBfRFBDU1RYX0NCVVNfQ05UTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9DQlVTX0NOVExfX0RQQ1NfQ0JVU19XUl9DTURfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfQ0JVU19DTlRMX19EUENTX0NCVVNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9DQlVTX0NOVExfX0RQQ1NfQ0JVU19XUl9DTURfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9DQlVTX0NOVExfX0RQQ1NfQ0JVU19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRklGT19PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0VSUk9SX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1JFR19GSUZPX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDBfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgxX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYMl9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDNfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFhfRVJST1JfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYX0ZJRk9fRVJST1JfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfSU5URVJSVVBUX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRklGT19PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRVJST1JfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRklGT19FUlJPUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDBfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDFfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDJfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDNfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWF9FUlJPUl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWF9GSUZPX0VSUk9SX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19JTlRFUlJVUFRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9EUENTVFgwX0RQQ1NUWF9QTExfVVBEQVRFX0FERFIKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfUExMX1VQREFURV9BRERSX19EUENTX1BMTF9VUERBVEVfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX1BMTF9VUERBVEVfQUREUl9fRFBDU19QTExfVVBEQVRFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RQQ1NUWDBfRFBDU1RYX1BMTF9VUERBVEVfREFUQQorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9QTExfVVBEQVRFX0RBVEFfX0RQQ1NfUExMX1VQREFURV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfUExMX1VQREFURV9EQVRBX19EUENTX1BMTF9VUERBVEVfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFBDU1RYMF9EUENTVFhfREVCVUdfQ09ORklHCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0NGR0NMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19UWF9TWU1DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfVFhfU1lNQ0xLX0RJVjJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0NCVVNfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFBDU1RYMF9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUENTVFgwX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfQ0ZHQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfVFhfU1lNQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfVFhfU1lNQ0xLX0RJVjJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfQ0JVU19ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQQ1NUWDBfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjczBfcmRwY3N0eDBfZGlzcGRlYworLy9SRFBDU1RYMF9SRFBDU1RYX0NOVEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTlRMX19SRFBDU19DQlVTX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ05UTF9fUkRQQ1NfU1JBTV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUxX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19SRF9TVEFSVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTlRMX19SRFBDU19EUEFMVF9CTE9DS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX0NSX1JFR0lTVEVSX0JMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ05UTF9fUkRQQ1NfTk9OX0RQQUxUX1JFR0lTVEVSX0JMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX0NCVVNfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1NSQU1fU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTBfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fUkRfU1RBUlRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX0RQQUxUX0JMT0NLX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX0NSX1JFR0lTVEVSX0JMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX05PTl9EUEFMVF9SRUdJU1RFUl9CTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9SRFBDU1RYMF9SRFBDU1RYX0NMT0NLX0NOVEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19FWFRfUkVGQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgwX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYMV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgzX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX09DTEFDTEtfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfRVhUX1JFRkNMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgwX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgxX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgzX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL1JEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0wKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0ZJRk9fT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF80TEFORV9UT0dHTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgwX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMV9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDJfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgzX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19FUlJPUl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF9ESVNBQkxFX1RPR0dMRV9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYX0VSUk9SX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19SRUdfRklGT19FUlJPUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWF9GSUZPX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19GSUZPX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMF9GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMV9GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMl9GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYM19GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19FUlJPUl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYX0VSUk9SX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19GSUZPX0VSUk9SX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYX0ZJRk9fRVJST1JfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL1JEUENTVFgwX1JEUENTVFhfUExMX1VQREFURV9EQVRBCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUExMX1VQREFURV9EQVRBX19SRFBDU19QTExfVVBEQVRFX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BMTF9VUERBVEVfREFUQV9fUkRQQ1NfUExMX1VQREFURV9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9SRFBDU1RYMF9SRFBDU19UWF9DUl9BRERSCisjZGVmaW5lIFJEUENTVFgwX1JEUENTX1RYX0NSX0FERFJfX1JEUENTX1RYX0NSX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU19UWF9DUl9BRERSX19SRFBDU19UWF9DUl9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9SRFBDU1RYMF9SRFBDU19UWF9DUl9EQVRBCisjZGVmaW5lIFJEUENTVFgwX1JEUENTX1RYX0NSX0RBVEFfX1JEUENTX1RYX0NSX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU19UWF9DUl9EQVRBX19SRFBDU19UWF9DUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9SRFBDU1RYMF9SRFBDU19UWF9TUkFNX0NOVEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgwX1JEUENTX1RYX1NSQU1fQ05UTF9fUkRQQ1NfTUVNX1BXUl9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9TQ1JBVENICisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfU0NSQVRDSF9fUkRQQ1NUWF9TQ1JBVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1NDUkFUQ0hfX1JEUENTVFhfU0NSQVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9SRFBDU1RYMF9SRFBDU1RYX1NQQVJFCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfU1BBUkVfX1JEUENTVFhfU1BBUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1NQQVJFX19SRFBDU1RYX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9SRFBDU1RYMF9SRFBDU1RYX0NOVEwyCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfQ05UTDJfX1JEUENTX0NSX0NPTlZFUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0NOVEwyX19SRFBDU19DUl9DT05WRVJUX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTlRMMl9fUkRQQ1NfQ1JfQ09OVkVSVF9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9DTlRMMl9fUkRQQ1NfQ1JfQ09OVkVSVF9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUcKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19SRFBDU19ETUNVX0RQQUxUX0ZPUkNFX1NZTUNMS19ESVYyX0RJU19fU0hJRlQgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9DT05UUk9MX1NQQVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfRk9SQ0VfU1lNQ0xLX0RJVjJfRElTX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfQ09OVFJPTF9TUEFSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUcKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfU0VMX0FTWU5DXzhCSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9BU1lOQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfVEVTVF9DTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfQ1JfQ09VTlRfRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX01BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfQ1JfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfQVNZTkNfOEJJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfQVNZTkNfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfVEVTVF9DTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDAKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVENBX1BIWV9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1RDQV9BUEJfUkVTRVRfTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9URVNUX1BPV0VSRE9XTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfRFRCX09VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0hETUlNT0RFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfUkFOR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUlRVTkVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SVFVORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0NSX1BBUkFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfQ1JfTVVYX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfQ0xLREVUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFRl9DTEtERVRfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0lOSVRfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fRVhUX0xEX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfU1JBTV9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVENBX1BIWV9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVENBX0FQQl9SRVNFVF9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVEVTVF9QT1dFUkRPV05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfRFRCX09VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfSERNSU1PREVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX1JBTkdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNFMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUlRVTkVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUlRVTkVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfQ1JfUEFSQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfQ1JfTVVYX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX0NMS0RFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX0NMS0RFVF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0lOSVRfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0VYVF9MRF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1JEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUEdfTU9ERV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BDU19QV1JfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QQ1NfUFdSX1NUQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUE1BX1BXUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BNQV9QV1JfU1RBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9EUF9QR19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfQU5BX1BXUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0FOQV9QV1JfU1RBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QR19NT0RFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QQ1NfUFdSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QQ1NfUFdSX1NUQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QTUFfUFdSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QTUFfUFdSX1NUQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9EUF9QR19SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9BTkFfUFdSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9BTkFfUFdSX1NUQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUDRfUE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTBfUlgyVFhfUEFSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUxX1JYMlRYX1BBUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMl9SWDJUWF9QQVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTNfUlgyVFhfUEFSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUwX1RYMlJYX1NFUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMV9UWDJSWF9TRVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTJfVFgyUlhfU0VSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUzX1RYMlJYX1NFUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUDRfUE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMF9SWDJUWF9QQVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMV9SWDJUWF9QQVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMl9SWDJUWF9QQVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FM19SWDJUWF9QQVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMF9UWDJSWF9TRVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMV9UWDJSWF9TRVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMl9UWDJSWF9TRVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FM19UWDJSWF9TRVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9DTEtfUkRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9DTEtfUkRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0NMS19SRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0NMS19SRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQ0xLX1JEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQ0xLX1JEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQ0xLX1JEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQ0xLX1JEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfVEVSTV9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9CWVBBU1NfRVFfQ0FMQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfSFBfUFJPVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX1RFUk1fQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfQllQQVNTX0VRX0NBTENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX0hQX1BST1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9URVJNX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfQllQQVNTX0VRX0NBTENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9IUF9QUk9UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX1RFUk1fQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19CWVBBU1NfRVFfQ0FMQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX0hQX1BST1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfVEVSTV9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfQllQQVNTX0VRX0NBTENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfSFBfUFJPVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfVEVSTV9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfQllQQVNTX0VRX0NBTENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfSFBfUFJPVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfVEVSTV9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfQllQQVNTX0VRX0NBTENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfSFBfUFJPVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfVEVSTV9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfQllQQVNTX0VRX0NBTENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfSFBfUFJPVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDUKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfTFBEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfREVUUlhfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX0RFVFJYX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9MUERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9ERVRSWF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfREVUUlhfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX0xQRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX0RFVFJYX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfREVUUlhfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19MUERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19ERVRSWF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX0RFVFJYX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfTFBEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfREVUUlhfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfREVUUlhfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfTFBEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfREVUUlhfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfREVUUlhfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfTFBEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBFMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfREVUUlhfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfREVUUlhfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfTFBEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfREVUUlhfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfREVUUlhfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfUFNUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX01QTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9QU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfTVBMTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX1BTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9NUExMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfUFNUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX01QTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RQNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfUFNUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfTVBMTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfUFNUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfTVBMTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfUFNUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfTVBMTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfUFNUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfTVBMTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9EUDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDcKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDdfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9ERU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw3X19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fUVVPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDdfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9ERU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDdfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9RVU9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDhfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfUEVBS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw4X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1BFQUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1JEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw5CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw5X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1NURVBTSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMOV9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19VUF9TUFJFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw5X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1NURVBTSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEw5X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1VQX1NQUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL1JEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxMAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTBfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9SRU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEwX19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fUkVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDExCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0RQX01QTExCX01VTFRJUExJRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9IRE1JX01QTExCX0hETUlfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfTVBMTEJfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfSERNSV9NUExMQl9IRE1JX1BJWEVMX0NMS19ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9EUF9NUExMQl9NVUxUSVBMSUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9IRE1JX01QTExCX0hETUlfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX01QTExCX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9IRE1JX01QTExCX0hETUlfUElYRUxfQ0xLX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfRElWNV9DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1dPUkRfRElWMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9UWF9DTEtfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9ESVY1X0NMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9XT1JEX0RJVjJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9UWF9DTEtfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfRElWX01VTFRJUExJRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9ESVZfQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0ZPUkNFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfSU5JVF9DQUxfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9ESVZfTVVMVElQTElFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRjAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9ESVZfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9GT1JDRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9JTklUX0NBTF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE0X19SRFBDU19QSFlfRFBfTVBMTEJfQ0FMX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE0X19SRFBDU19QSFlfRFBfTVBMTEJfUE1JWF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9DQUxfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9QTUlYX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9SRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX1RYMF9FUV9NQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX1BPU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX01QTExCX1YySV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfRlJFUV9WQ09fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9JTlRfR1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX1JYX1ZSRUZfQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX01BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX1BPU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfVjJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfRlJFUV9WQ09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfSU5UX0dTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZDMDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfUlhfVlJFRl9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL1JEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UxCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX01BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9UWDFfRVFfUE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9QUk9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9NQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9QT1NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkMwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX1BST1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9SRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX1RYMl9FUV9NQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX1BPU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX1BST1BfR1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX01BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX1BPU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfUFJPUF9HU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0Y4MDAwMDBMCisvL1JEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UzCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRFBfVFgzX0VRX01BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfUE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRENPX0ZJTkVUVU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EQ09fUkFOR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX1RYX1ZCT09TVF9MVkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfU1VQX1JYX1ZDT19WUkVGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfUE9TVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EQ09fRklORVRVTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EQ09fUkFOR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9UWF9WQk9PU1RfTFZMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQzAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9TVVBfUlhfVkNPX1ZSRUZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfUlhfTERfVkFMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX1JYX0xEX1ZBTF9fUkRQQ1NfUEhZX1JYX1JFRl9MRF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9SWF9MRF9WQUxfX1JEUENTX1BIWV9SWF9WQ09fTERfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX19SRFBDU19QSFlfUlhfUkVGX0xEX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX19SRFBDU19QSFlfUlhfVkNPX0xEX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkYwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMMworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFU0VUX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQ0xLX1JEWV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RBVEFfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQUNLX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFU0VUX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQ0xLX1JEWV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RBVEFfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQUNLX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFU0VUX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfRElTQUJMRV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9DTEtfUkRZX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RBVEFfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVRX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9BQ0tfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFU0VUX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfRElTQUJMRV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19DTEtfUkRZX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RBVEFfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVRX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19BQ0tfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFU0VUX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0NMS19SRFlfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RBVEFfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFU0VUX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0NMS19SRFlfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RBVEFfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFU0VUX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0NMS19SRFlfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RBVEFfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFU0VUX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0NMS19SRFlfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RBVEFfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9SRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfUFNUQVRFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX01QTExfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9QU1RBVEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfTVBMTF9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX1BTVEFURV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9NUExMX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfUFNUQVRFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX01QTExfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RQNF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX0FDS19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfUFNUQVRFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfTVBMTF9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfUFNUQVRFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfTVBMTF9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfUFNUQVRFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfTVBMTF9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfUFNUQVRFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfTVBMTF9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9EUDRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL1JEUENTVFgwX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUcKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfQUxMT1dfRFJJVkVSX0FDQ0VTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUdfX1JEUENTX0RSSVZFUl9BQ0NFU1NfQkxPQ0tFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19EUEFMVF9DT05UUk9MX1NQQVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfQUxMT1dfRFJJVkVSX0FDQ0VTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfRFJJVkVSX0FDQ0VTU19CTE9DS0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfRFBBTFRfQ09OVFJPTF9TUEFSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE1CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX1NTVFhfVlJFR0RSVl9CWVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDBfVlJFR0RSVl9CWVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYMV9WUkVHRFJWX0JZUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgyX1ZSRUdEUlZfQllQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDNfVlJFR0RSVl9CWVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX1NVUF9QUkVfSFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfU1NUWF9WUkVHRFJWX0JZUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgwX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgxX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgyX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgzX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfU1VQX1BSRV9IUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE2CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMF9PVVRfR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDFfT1VUX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgyX09VVF9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYM19PVVRfR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfQ01OX09VVF9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDBfT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDFfT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0MwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDJfT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDNfT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0MwMDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9DTU5fT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorLy9SRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTcKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgwX0lOX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMV9JTl9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDJfSU5fR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgzX0lOX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9DTU5fSU5fR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMF9JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMV9JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3QzBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMl9JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYM19JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3QzAwMDBMCisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0NNTl9JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL1JEUENTVFgwX1JEUENTVFhfREVCVUdfQ09ORklHMgorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgwX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDBfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9WQUxJRF9SRVBMQUNFX01TQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBSRFBDU1RYMF9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1ZBTElEX1JFUExBQ0VfTVNCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzc3lzX2NyMF9kaXNwZGVjCisvL0RQQ1NTWVNfQ1IwX0RQQ1NTWVNfQ1JfQUREUgorI2RlZmluZSBEUENTU1lTX0NSMF9EUENTU1lTX0NSX0FERFJfX1JEUENTX1RYX0NSX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1NZU19DUjBfRFBDU1NZU19DUl9BRERSX19SRFBDU19UWF9DUl9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRFBDU1NZU19DUjBfRFBDU1NZU19DUl9EQVRBCisjZGVmaW5lIERQQ1NTWVNfQ1IwX0RQQ1NTWVNfQ1JfREFUQV9fUkRQQ1NfVFhfQ1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTU1lTX0NSMF9EUENTU1lTX0NSX0RBVEFfX1JEUENTX1RYX0NSX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzMF9kcGNzdHgxX2Rpc3BkZWMKKy8vRFBDU1RYMV9EUENTVFhfVFhfQ0xPQ0tfQ05UTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19ESVYyX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfRElWMl9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKy8vRFBDU1RYMV9EUENTVFhfVFhfQ05UTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1BMTF9VUERBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9QTExfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfREFUQV9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0RBVEFfT1JERVJfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9GSUZPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19SRF9TVEFSVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1BMTF9VUERBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1BMTF9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0RBVEFfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0RBVEFfT1JERVJfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fUkRfU1RBUlRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUENTVFgxX0RQQ1NUWF9DQlVTX0NOVEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfQ0JVU19DTlRMX19EUENTX0NCVVNfV1JfQ01EX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX0NCVVNfQ05UTF9fRFBDU19DQlVTX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfQ0JVU19DTlRMX19EUENTX0NCVVNfV1JfQ01EX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfQ0JVU19DTlRMX19EUENTX0NCVVNfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0ZJRk9fT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1JFR19FUlJPUl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRklGT19FUlJPUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgwX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYMV9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDJfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgzX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYX0VSUk9SX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWF9GSUZPX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX0lOVEVSUlVQVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0ZJRk9fT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0VSUk9SX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0ZJRk9fRVJST1JfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgwX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgxX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgyX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgzX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFhfRVJST1JfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFhfRklGT19FUlJPUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfSU5URVJSVVBUX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vRFBDU1RYMV9EUENTVFhfUExMX1VQREFURV9BRERSCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX1BMTF9VUERBVEVfQUREUl9fRFBDU19QTExfVVBEQVRFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9QTExfVVBEQVRFX0FERFJfX0RQQ1NfUExMX1VQREFURV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EUENTVFgxX0RQQ1NUWF9QTExfVVBEQVRFX0RBVEEKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfUExMX1VQREFURV9EQVRBX19EUENTX1BMTF9VUERBVEVfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX1BMTF9VUERBVEVfREFUQV9fRFBDU19QTExfVVBEQVRFX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RQQ1NUWDFfRFBDU1RYX0RFQlVHX0NPTkZJRworI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19DRkdDTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfVFhfU1lNQ0xLX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX1RYX1NZTUNMS19ESVYyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19DQlVTX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQQ1NUWDFfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19URVNUX0RFQlVHX1dSSVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBDU1RYMV9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX1RFU1RfREVCVUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0NGR0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX1RYX1NZTUNMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX1RYX1NZTUNMS19ESVYyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0NCVVNfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfVEVTVF9ERUJVR19XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUENTVFgxX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfVEVTVF9ERUJVR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzMF9yZHBjc3R4MV9kaXNwZGVjCisvL1JEUENTVFgxX1JEUENTVFhfQ05UTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NOVExfX1JEUENTX0NCVVNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTlRMX19SRFBDU19TUkFNX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX1JEX1NUQVJUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NOVExfX1JEUENTX0RQQUxUX0JMT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfQ1JfUkVHSVNURVJfQkxPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTlRMX19SRFBDU19OT05fRFBBTFRfUkVHSVNURVJfQkxPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NOVExfX1JEUENTX1RYX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfQ0JVU19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfU1JBTV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19SRF9TVEFSVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfRFBBTFRfQkxPQ0tfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfQ1JfUkVHSVNURVJfQkxPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfTk9OX0RQQUxUX1JFR0lTVEVSX0JMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1JEUENTVFgxX1JEUENTVFhfQ0xPQ0tfQ05UTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX0VYVF9SRUZDTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgxX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX09DTEFDTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19FWFRfUkVGQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDBfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19SRUdfRklGT19PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDBfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgxX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMl9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDNfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0VSUk9SX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF80TEFORV9UT0dHTEVfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFhfRVJST1JfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19GSUZPX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF80TEFORV9UT0dHTEVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYX0ZJRk9fRVJST1JfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0ZJRk9fT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgwX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgxX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgyX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgzX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0VSUk9SX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFhfRVJST1JfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0ZJRk9fRVJST1JfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFhfRklGT19FUlJPUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vUkRQQ1NUWDFfUkRQQ1NUWF9QTExfVVBEQVRFX0RBVEEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QTExfVVBEQVRFX0RBVEFfX1JEUENTX1BMTF9VUERBVEVfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUExMX1VQREFURV9EQVRBX19SRFBDU19QTExfVVBEQVRFX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1JEUENTVFgxX1JEUENTX1RYX0NSX0FERFIKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NfVFhfQ1JfQUREUl9fUkRQQ1NfVFhfQ1JfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTX1RYX0NSX0FERFJfX1JEUENTX1RYX0NSX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1JEUENTVFgxX1JEUENTX1RYX0NSX0RBVEEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NfVFhfQ1JfREFUQV9fUkRQQ1NfVFhfQ1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTX1RYX0NSX0RBVEFfX1JEUENTX1RYX0NSX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1JEUENTVFgxX1JEUENTX1RYX1NSQU1fQ05UTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTX1RYX1NSQU1fQ05UTF9fUkRQQ1NfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYMV9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1NDUkFUQ0gKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9TQ1JBVENIX19SRFBDU1RYX1NDUkFUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfU0NSQVRDSF9fUkRQQ1NUWF9TQ1JBVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1JEUENTVFgxX1JEUENTVFhfU1BBUkUKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9TUEFSRV9fUkRQQ1NUWF9TUEFSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfU1BBUkVfX1JEUENTVFhfU1BBUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1JEUENTVFgxX1JEUENTVFhfQ05UTDIKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9DTlRMMl9fUkRQQ1NfQ1JfQ09OVkVSVF9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfQ05UTDJfX1JEUENTX0NSX0NPTlZFUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NOVEwyX19SRFBDU19DUl9DT05WRVJUX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0NOVEwyX19SRFBDU19DUl9DT05WRVJUX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9SRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFRworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfRk9SQ0VfU1lNQ0xLX0RJVjJfRElTX19TSElGVCAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19SRFBDU19ETUNVX0RQQUxUX0NPTlRST0xfU1BBUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9GT1JDRV9TWU1DTEtfRElWMl9ESVNfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9DT05UUk9MX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJRworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfQVNZTkNfOEJJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfU0VMX0FTWU5DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9URVNUX0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9FWFBJUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfQ1JfQ09VTlRfTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9BU1lOQ184QklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9BU1lOQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9URVNUX0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX01BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9UQ0FfUEhZX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVENBX0FQQl9SRVNFVF9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1RFU1RfUE9XRVJET1dOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9EVEJfT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfSERNSU1PREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFRl9SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SVFVORV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JUVU5FX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfQ1JfUEFSQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9DUl9NVVhfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFRl9DTEtERVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX0NMS0RFVF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fSU5JVF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfU1JBTV9FWFRfTERfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9UQ0FfUEhZX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9UQ0FfQVBCX1JFU0VUX05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9URVNUX1BPV0VSRE9XTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9EVEJfT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9IRE1JTU9ERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfUkFOR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0UwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SVFVORV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SVFVORV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9DUl9QQVJBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9DUl9NVVhfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfQ0xLREVUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfQ0xLREVUX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fSU5JVF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fRVhUX0xEX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QR19NT0RFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUENTX1BXUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BDU19QV1JfU1RBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QTUFfUFdSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUE1BX1BXUl9TVEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0RQX1BHX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9BTkFfUFdSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfQU5BX1BXUl9TVEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BHX01PREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BDU19QV1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BDU19QV1JfU1RBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BNQV9QV1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BNQV9QV1JfU1RBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0RQX1BHX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0FOQV9QV1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0FOQV9QV1JfU1RBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQNF9QT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMF9SWDJUWF9QQVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTFfUlgyVFhfUEFSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUyX1JYMlRYX1BBUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FM19SWDJUWF9QQVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTBfVFgyUlhfU0VSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUxX1RYMlJYX1NFUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMl9UWDJSWF9TRVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTNfVFgyUlhfU0VSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQNF9QT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUwX1JYMlRYX1BBUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUxX1JYMlRYX1BBUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUyX1JYMlRYX1BBUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUzX1JYMlRYX1BBUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUwX1RYMlJYX1NFUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUxX1RYMlJYX1NFUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUyX1RYMlJYX1NFUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUzX1RYMlJYX1NFUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0NMS19SRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0NMS19SRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQ0xLX1JEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQ0xLX1JEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9DTEtfUkRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9DTEtfUkRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9DTEtfUkRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19DTEtfUkRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9URVJNX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX0JZUEFTU19FUV9DQUxDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9IUF9QUk9UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfVEVSTV9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9CWVBBU1NfRVFfQ0FMQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfSFBfUFJPVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX1RFUk1fQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9CWVBBU1NfRVFfQ0FMQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX0hQX1BST1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfVEVSTV9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX0JZUEFTU19FUV9DQUxDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfSFBfUFJPVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9URVJNX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9CWVBBU1NfRVFfQ0FMQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9IUF9QUk9UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9URVJNX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9CWVBBU1NfRVFfQ0FMQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9IUF9QUk9UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9URVJNX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9CWVBBU1NfRVFfQ0FMQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9IUF9QUk9UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19URVJNX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19CWVBBU1NfRVFfQ0FMQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19IUF9QUk9UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9MUERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9ERVRSWF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfREVUUlhfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX0xQRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX0RFVFJYX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9ERVRSWF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfTFBEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfREVUUlhfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9ERVRSWF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX0xQRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX0RFVFJYX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfREVUUlhfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9MUERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9ERVRSWF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9ERVRSWF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9MUERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9ERVRSWF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9ERVRSWF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9MUERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9ERVRSWF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9ERVRSWF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19MUERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19ERVRSWF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19ERVRSWF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9QU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfTVBMTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX1BTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9NUExMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfUFNUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX01QTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19QU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfTVBMTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRFA0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9QU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9NUExMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9QU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9NUExMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9QU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9NUExMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19QU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19NUExMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RQNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMNworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMN19fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX0RFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDdfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9RVU9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMN19fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX0RFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMN19fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX1FVT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMOAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMOF9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19QRUFLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDhfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfUEVBS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDkKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDlfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfU1RFUFNJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEw5X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1VQX1NQUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDlfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfU1RFUFNJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDlfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfVVBfU1BSRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMF9fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX1JFTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTBfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9SRU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfRFBfTVBMTEJfTVVMVElQTElFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0hETUlfTVBMTEJfSERNSV9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfRFBfUkVGX0NMS19NUExMQl9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9IRE1JX01QTExCX0hETUlfUElYRUxfQ0xLX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0RQX01QTExCX01VTFRJUExJRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0hETUlfTVBMTEJfSERNSV9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfTVBMTEJfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0hETUlfTVBMTEJfSERNSV9QSVhFTF9DTEtfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisvL1JEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9ESVY1X0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfV09SRF9ESVYyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1RYX0NMS19ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX0RJVjVfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1dPUkRfRElWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1RYX0NMS19ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1JEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxMworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9ESVZfTVVMVElQTElFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0RJVl9DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfRk9SQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9JTklUX0NBTF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0RJVl9NVUxUSVBMSUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0RJVl9DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0ZPUkNFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0lOSVRfQ0FMX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1JEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9DQUxfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE0X19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9QTUlYX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX0NBTF9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX1BNSVhfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL1JEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX01BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX1RYMF9FUV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfUE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfVjJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9GUkVRX1ZDT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX0lOVF9HU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfUlhfVlJFRl9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfUE9TVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9WMklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9GUkVRX1ZDT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9JTlRfR1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkMwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9SWF9WUkVGX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9UWDFfRVFfTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9QT1NUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX1BST1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX01BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX1BPU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGQzAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfUFJPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL1JEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX01BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX1RYMl9FUV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfUE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfUFJPUF9HU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfUE9TVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9QUk9QX0dTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjgwMDAwMEwKKy8vUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRFBfVFgzX0VRX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9QT1NUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EQ09fRklORVRVTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RDT19SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfVFhfVkJPT1NUX0xWTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9TVVBfUlhfVkNPX1ZSRUZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9NQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9QT1NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RDT19GSU5FVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RDT19SQU5HRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX1RYX1ZCT09TVF9MVkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX1NVUF9SWF9WQ09fVlJFRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9SWF9MRF9WQUwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX19SRFBDU19QSFlfUlhfUkVGX0xEX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX1JYX0xEX1ZBTF9fUkRQQ1NfUEhZX1JYX1ZDT19MRF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9SWF9MRF9WQUxfX1JEUENTX1BIWV9SWF9SRUZfTERfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9SWF9MRF9WQUxfX1JEUENTX1BIWV9SWF9WQ09fTERfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRjAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVTRVRfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RJU0FCTEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9DTEtfUkRZX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfREFUQV9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFUV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9BQ0tfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVTRVRfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RJU0FCTEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9DTEtfUkRZX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfREFUQV9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFUV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9BQ0tfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVTRVRfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0NMS19SRFlfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfREFUQV9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0FDS19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVTRVRfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0NMS19SRFlfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfREFUQV9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0FDS19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVTRVRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfRElTQUJMRV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQ0xLX1JEWV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfREFUQV9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVTRVRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfRElTQUJMRV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQ0xLX1JEWV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfREFUQV9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVTRVRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfRElTQUJMRV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQ0xLX1JEWV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfREFUQV9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVTRVRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfRElTQUJMRV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQ0xLX1JEWV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfREFUQV9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1JEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9QU1RBVEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfTVBMTF9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX1BTVEFURV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9NUExMX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfUFNUQVRFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX01QTExfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19QU1RBVEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfTVBMTF9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRFA0X1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfQUNLX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX1JFUV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9QU1RBVEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9NUExMX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9QU1RBVEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9NUExMX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9QU1RBVEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9NUExMX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19QU1RBVEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19NUExMX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RQNF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vUkRQQ1NUWDFfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFRworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19BTExPV19EUklWRVJfQUNDRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfRFJJVkVSX0FDQ0VTU19CTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUdfX1JEUENTX0RQQUxUX0NPTlRST0xfU1BBUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19BTExPV19EUklWRVJfQUNDRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19EUklWRVJfQUNDRVNTX0JMT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19EUEFMVF9DT05UUk9MX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTUKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfU1NUWF9WUkVHRFJWX0JZUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYMF9WUkVHRFJWX0JZUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgxX1ZSRUdEUlZfQllQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDJfVlJFR0RSVl9CWVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYM19WUkVHRFJWX0JZUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfU1VQX1BSRV9IUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9TU1RYX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDBfVlJFR0RSVl9CWVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDFfVlJFR0RSVl9CWVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDJfVlJFR0RSVl9CWVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDNfVlJFR0RSVl9CWVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9TVVBfUFJFX0hQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9SRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTYKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgwX09VVF9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMV9PVVRfR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDJfT1VUX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgzX09VVF9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9DTU5fT1VUX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMF9PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMV9PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3QzBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMl9PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYM19PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3QzAwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0NNTl9PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL1JEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxNworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDBfSU5fR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgxX0lOX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMl9JTl9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDNfSU5fR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0NNTl9JTl9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgwX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgxX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdDMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgyX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgzX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdDMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfQ01OX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKy8vUkRQQ1NUWDFfUkRQQ1NUWF9ERUJVR19DT05GSUcyCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDFfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMV9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1ZBTElEX1JFUExBQ0VfTVNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFJEUENTVFgxX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfVkFMSURfUkVQTEFDRV9NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkcGNzc3lzX2RwY3NzeXNfY3IxX2Rpc3BkZWMKKy8vRFBDU1NZU19DUjFfRFBDU1NZU19DUl9BRERSCisjZGVmaW5lIERQQ1NTWVNfQ1IxX0RQQ1NTWVNfQ1JfQUREUl9fUkRQQ1NfVFhfQ1JfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTU1lTX0NSMV9EUENTU1lTX0NSX0FERFJfX1JEUENTX1RYX0NSX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9EUENTU1lTX0NSMV9EUENTU1lTX0NSX0RBVEEKKyNkZWZpbmUgRFBDU1NZU19DUjFfRFBDU1NZU19DUl9EQVRBX19SRFBDU19UWF9DUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NTWVNfQ1IxX0RQQ1NTWVNfQ1JfREFUQV9fUkRQQ1NfVFhfQ1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkcGNzc3lzX2RwY3MwX2RwY3N0eDJfZGlzcGRlYworLy9EUENTVFgyX0RQQ1NUWF9UWF9DTE9DS19DTlRMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0RJVjJfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19ESVYyX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorLy9EUENTVFgyX0RQQ1NUWF9UWF9DTlRMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfUExMX1VQREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1BMTF9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9EQVRBX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfREFUQV9PUkRFUl9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9GSUZPX1JEX1NUQVJUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfUExMX1VQREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfUExMX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfREFUQV9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfREFUQV9PUkRFUl9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19SRF9TVEFSVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQQ1NUWDJfRFBDU1RYX0NCVVNfQ05UTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9DQlVTX0NOVExfX0RQQ1NfQ0JVU19XUl9DTURfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfQ0JVU19DTlRMX19EUENTX0NCVVNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9DQlVTX0NOVExfX0RQQ1NfQ0JVU19XUl9DTURfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9DQlVTX0NOVExfX0RQQ1NfQ0JVU19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRklGT19PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0VSUk9SX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1JFR19GSUZPX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDBfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgxX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYMl9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDNfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFhfRVJST1JfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYX0ZJRk9fRVJST1JfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfSU5URVJSVVBUX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRklGT19PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRVJST1JfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRklGT19FUlJPUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDBfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDFfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDJfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDNfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWF9FUlJPUl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWF9GSUZPX0VSUk9SX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19JTlRFUlJVUFRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9EUENTVFgyX0RQQ1NUWF9QTExfVVBEQVRFX0FERFIKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfUExMX1VQREFURV9BRERSX19EUENTX1BMTF9VUERBVEVfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX1BMTF9VUERBVEVfQUREUl9fRFBDU19QTExfVVBEQVRFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RQQ1NUWDJfRFBDU1RYX1BMTF9VUERBVEVfREFUQQorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9QTExfVVBEQVRFX0RBVEFfX0RQQ1NfUExMX1VQREFURV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfUExMX1VQREFURV9EQVRBX19EUENTX1BMTF9VUERBVEVfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vRFBDU1RYMl9EUENTVFhfREVCVUdfQ09ORklHCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0NGR0NMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19UWF9TWU1DTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfVFhfU1lNQ0xLX0RJVjJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0NCVVNfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFBDU1RYMl9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX1RFU1RfREVCVUdfV1JJVEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUENTVFgyX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfVEVTVF9ERUJVR19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfQ0ZHQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfVFhfU1lNQ0xLX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfVFhfU1lNQ0xLX0RJVjJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfQ0JVU19ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19URVNUX0RFQlVHX1dSSVRFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQQ1NUWDJfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19URVNUX0RFQlVHX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkcGNzc3lzX2RwY3MwX3JkcGNzdHgyX2Rpc3BkZWMKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ05UTF9fUkRQQ1NfQ0JVU19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NOVExfX1JEUENTX1NSQU1fU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUwX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUzX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fUkRfU1RBUlRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ05UTF9fUkRQQ1NfRFBBTFRfQkxPQ0tfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19DUl9SRUdJU1RFUl9CTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NOVExfX1JEUENTX05PTl9EUEFMVF9SRUdJU1RFUl9CTE9DS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19DQlVTX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19TUkFNX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUwX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUxX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUzX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX1JEX1NUQVJUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19EUEFMVF9CTE9DS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19DUl9SRUdJU1RFUl9CTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19OT05fRFBBTFRfUkVHSVNURVJfQkxPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9DTE9DS19DTlRMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfRVhUX1JFRkNMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYMF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX09DTEFDTEtfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX0VYVF9SRUZDTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYMF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYMV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX09DTEFDTEtfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX09DTEFDTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX09DTEFDTEtfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9SRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19GSUZPX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF9ESVNBQkxFX1RPR0dMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMF9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDFfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgyX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYM19GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19SRUdfRVJST1JfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWF9FUlJPUl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0ZJRk9fRVJST1JfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF9ESVNBQkxFX1RPR0dMRV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFhfRklGT19FUlJPUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19SRUdfRklGT19PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF9ESVNBQkxFX1RPR0dMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF80TEFORV9UT0dHTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDBfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDFfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDJfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDNfRklGT19FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19SRUdfRVJST1JfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF9ESVNBQkxFX1RPR0dMRV9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF80TEFORV9UT0dHTEVfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWF9FUlJPUl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19SRUdfRklGT19FUlJPUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF9ESVNBQkxFX1RPR0dMRV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF80TEFORV9UT0dHTEVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWF9GSUZPX0VSUk9SX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9SRFBDU1RYMl9SRFBDU1RYX1BMTF9VUERBVEVfREFUQQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BMTF9VUERBVEVfREFUQV9fUkRQQ1NfUExMX1VQREFURV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QTExfVVBEQVRFX0RBVEFfX1JEUENTX1BMTF9VUERBVEVfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vUkRQQ1NUWDJfUkRQQ1NfVFhfQ1JfQUREUgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU19UWF9DUl9BRERSX19SRFBDU19UWF9DUl9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NfVFhfQ1JfQUREUl9fUkRQQ1NfVFhfQ1JfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vUkRQQ1NUWDJfUkRQQ1NfVFhfQ1JfREFUQQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU19UWF9DUl9EQVRBX19SRFBDU19UWF9DUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NfVFhfQ1JfREFUQV9fUkRQQ1NfVFhfQ1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vUkRQQ1NUWDJfUkRQQ1NfVFhfU1JBTV9DTlRMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTX1RYX1NSQU1fQ05UTF9fUkRQQ1NfTUVNX1BXUl9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfUFdSX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgyX1JEUENTX1RYX1NSQU1fQ05UTF9fUkRQQ1NfTUVNX1BXUl9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTX1RYX1NSQU1fQ05UTF9fUkRQQ1NfTUVNX1BXUl9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTX1RYX1NSQU1fQ05UTF9fUkRQQ1NfTUVNX1BXUl9QV1JfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL1JEUENTVFgyX1JEUENTVFhfU0NSQVRDSAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1NDUkFUQ0hfX1JEUENTVFhfU0NSQVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9TQ1JBVENIX19SRFBDU1RYX1NDUkFUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9TUEFSRQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1NQQVJFX19SRFBDU1RYX1NQQVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9TUEFSRV9fUkRQQ1NUWF9TUEFSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMMgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0NOVEwyX19SRFBDU19DUl9DT05WRVJUX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9DTlRMMl9fUkRQQ1NfQ1JfQ09OVkVSVF9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ05UTDJfX1JEUENTX0NSX0NPTlZFUlRfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfQ05UTDJfX1JEUENTX0NSX0NPTlZFUlRfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL1JEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19SRFBDU19ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9GT1JDRV9TWU1DTEtfRElWMl9ESVNfX1NISUZUICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfQ09OVFJPTF9TUEFSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19SRFBDU19ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19SRFBDU19ETUNVX0RQQUxUX0ZPUkNFX1NZTUNMS19ESVYyX0RJU19NQVNLICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19SRFBDU19ETUNVX0RQQUxUX0NPTlRST0xfU1BBUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1JEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9BU1lOQ184QklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfQVNZTkNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfU0VMX1RFU1RfQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9NQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfU0VMX0FTWU5DXzhCSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfU0VMX0FTWU5DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfU0VMX1RFU1RfQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfQ1JfQ09VTlRfRVhQSVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfQ1JfQ09VTlRfTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfQ1JfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwwCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1RDQV9QSFlfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9UQ0FfQVBCX1JFU0VUX05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVEVTVF9QT1dFUkRPV05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0RUQl9PVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9IRE1JTU9ERV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX1JBTkdFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JUVU5FX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUlRVTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9DUl9QQVJBX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0NSX01VWF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX0NMS0RFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfQ0xLREVUX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfU1JBTV9JTklUX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0VYVF9MRF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1RDQV9QSFlfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1RDQV9BUEJfUkVTRVRfTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1RFU1RfUE9XRVJET1dOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0RUQl9PVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0hETUlNT0RFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFRl9SQU5HRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRTAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JUVU5FX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JUVU5FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0NSX1BBUkFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0NSX01VWF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFRl9DTEtERVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFRl9DTEtERVRfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfU1JBTV9JTklUX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfU1JBTV9FWFRfTERfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfU1JBTV9CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BHX01PREVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QQ1NfUFdSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUENTX1BXUl9TVEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BNQV9QV1JfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QTUFfUFdSX1NUQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfRFBfUEdfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0FOQV9QV1JfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9BTkFfUFdSX1NUQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUEdfTU9ERV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUENTX1BXUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUENTX1BXUl9TVEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUE1BX1BXUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUE1BX1BXUl9TVEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfRFBfUEdfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfQU5BX1BXUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfQU5BX1BXUl9TVEFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFA0X1BPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUwX1JYMlRYX1BBUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMV9SWDJUWF9QQVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTJfUlgyVFhfUEFSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUzX1JYMlRYX1BBUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMF9UWDJSWF9TRVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTFfVFgyUlhfU0VSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUyX1RYMlJYX1NFUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FM19UWDJSWF9TRVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFA0X1BPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTBfUlgyVFhfUEFSX0xCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTFfUlgyVFhfUEFSX0xCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTJfUlgyVFhfUEFSX0xCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTNfUlgyVFhfUEFSX0xCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTBfVFgyUlhfU0VSX0xCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTFfVFgyUlhfU0VSX0xCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTJfVFgyUlhfU0VSX0xCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTNfVFgyUlhfU0VSX0xCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQ0xLX1JEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQ0xLX1JEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9DTEtfUkRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19DTEtfUkRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RBVEFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0NMS19SRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0NMS19SRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0NMS19SRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0NMS19SRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RBVEFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX1RFUk1fQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfQllQQVNTX0VRX0NBTENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX0hQX1BST1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9URVJNX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX0JZUEFTU19FUV9DQUxDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9IUF9QUk9UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfVEVSTV9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX0JZUEFTU19FUV9DQUxDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfSFBfUFJPVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19URVJNX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfQllQQVNTX0VRX0NBTENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19IUF9QUk9UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX1RFUk1fQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX0JZUEFTU19FUV9DQUxDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX0hQX1BST1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX1RFUk1fQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX0JZUEFTU19FUV9DQUxDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX0hQX1BST1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX1RFUk1fQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX0JZUEFTU19FUV9DQUxDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX0hQX1BST1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX1RFUk1fQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX0JZUEFTU19FUV9DQUxDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX0hQX1BST1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX0xQRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX0RFVFJYX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9ERVRSWF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfTFBEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfREVUUlhfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX0RFVFJYX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9MUERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9ERVRSWF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX0RFVFJYX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfTFBEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfREVUUlhfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19ERVRSWF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX0xQRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX0RFVFJYX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX0RFVFJYX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX0xQRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX0RFVFJYX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX0RFVFJYX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX0xQRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX0RFVFJYX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX0RFVFJYX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX0xQRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX0RFVFJYX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX0RFVFJYX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX1BTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9NUExMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfUFNUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX01QTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9QU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfTVBMTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX1BTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19NUExMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9EUDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX1BTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX01QTExfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX1BTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX01QTExfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX1BTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX01QTExfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX1BTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX01QTExfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRFA0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw3CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw3X19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fREVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMN19fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX1FVT1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw3X19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fREVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw3X19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fUVVPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEw4X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1BFQUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMOF9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19QRUFLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMOQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMOV9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19TVEVQU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDlfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfVVBfU1BSRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMOV9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19TVEVQU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMOV9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19VUF9TUFJFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9SRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEwX19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fUkVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxMF9fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX1JFTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxMQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9EUF9NUExMQl9NVUxUSVBMSUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfSERNSV9NUExMQl9IRE1JX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX01QTExCX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0hETUlfTVBMTEJfSERNSV9QSVhFTF9DTEtfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfRFBfTVBMTEJfTVVMVElQTElFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfSERNSV9NUExMQl9IRE1JX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfRFBfUkVGX0NMS19NUExMQl9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfSERNSV9NUExMQl9IRE1JX1BJWEVMX0NMS19ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX0RJVjVfQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9XT1JEX0RJVjJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfVFhfQ0xLX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfRElWNV9DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfV09SRF9ESVYyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfVFhfQ0xLX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEzCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0RJVl9NVUxUSVBMSUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfRElWX0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9GT1JDRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0lOSVRfQ0FMX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfRElWX01VTFRJUExJRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkYwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfRElWX0NMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfRk9SQ0VfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfSU5JVF9DQUxfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX0NBTF9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX1BNSVhfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE0X19SRFBDU19QSFlfRFBfTVBMTEJfQ0FMX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE0X19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE0X19SRFBDU19QSFlfRFBfTVBMTEJfUE1JWF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX1RYMF9FUV9QT1NUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9WMklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX01QTExCX0ZSRVFfVkNPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfSU5UX0dTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9SWF9WUkVGX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX1RYMF9FUV9NQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX1RYMF9FUV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX1RYMF9FUV9QT1NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX01QTExCX1YySV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX01QTExCX0ZSRVFfVkNPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX0lOVF9HU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGQzAwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX1JYX1ZSRUZfQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9SRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9NQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9UWDFfRVFfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX1BPU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfUFJPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9UWDFfRVFfTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9UWDFfRVFfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9UWDFfRVFfUE9TVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZDMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9QUk9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX1RYMl9FUV9QT1NUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9QUk9QX0dTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX1RYMl9FUV9NQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX1RYMl9FUV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX1RYMl9FUV9QT1NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX1BST1BfR1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGODAwMDAwTAorLy9SRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFMworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9NQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRFBfVFgzX0VRX1BPU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RDT19GSU5FVFVORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRENPX1JBTkdFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9UWF9WQk9PU1RfTFZMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX1NVUF9SWF9WQ09fVlJFRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRFBfVFgzX0VRX01BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRFBfVFgzX0VRX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRFBfVFgzX0VRX1BPU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRENPX0ZJTkVUVU5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRENPX1JBTkdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfVFhfVkJPT1NUX0xWTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfU1VQX1JYX1ZDT19WUkVGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX1JYX0xEX1ZBTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9SWF9MRF9WQUxfX1JEUENTX1BIWV9SWF9SRUZfTERfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX19SRFBDU19QSFlfUlhfVkNPX0xEX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX1JYX0xEX1ZBTF9fUkRQQ1NfUEhZX1JYX1JFRl9MRF9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX1JYX0xEX1ZBTF9fUkRQQ1NfUEhZX1JYX1ZDT19MRF9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGMDBMCisvL1JEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVNFVF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfRElTQUJMRV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0NMS19SRFlfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9EQVRBX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVRX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0FDS19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVNFVF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfRElTQUJMRV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0NMS19SRFlfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9EQVRBX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVRX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0FDS19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVNFVF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RJU0FCTEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQ0xLX1JEWV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9EQVRBX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFUV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQUNLX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVNFVF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RJU0FCTEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQ0xLX1JEWV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19EQVRBX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFUV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQUNLX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVNFVF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9ESVNBQkxFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9DTEtfUkRZX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9EQVRBX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVFfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9BQ0tfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVNFVF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9ESVNBQkxFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9DTEtfUkRZX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9EQVRBX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVFfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9BQ0tfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVNFVF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9ESVNBQkxFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9DTEtfUkRZX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9EQVRBX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVFfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9BQ0tfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVNFVF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19ESVNBQkxFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19DTEtfUkRZX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19EQVRBX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVFfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19BQ0tfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX1BTVEFURV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9NUExMX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfUFNUQVRFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX01QTExfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9QU1RBVEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfTVBMTF9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX1BTVEFURV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19NUExMX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9EUDRfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9BQ0tfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfUkVRX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX1BTVEFURV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX01QTExfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX1BTVEFURV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX01QTExfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX1BTVEFURV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX01QTExfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX1BTVEFURV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX01QTExfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRFA0X1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9BQ0tfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19SRVFfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9SRFBDU1RYMl9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUdfX1JEUENTX0FMTE9XX0RSSVZFUl9BQ0NFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19EUklWRVJfQUNDRVNTX0JMT0NLRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfRFBBTFRfQ09OVFJPTF9TUEFSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUdfX1JEUENTX0FMTE9XX0RSSVZFUl9BQ0NFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUdfX1JEUENTX0RSSVZFUl9BQ0NFU1NfQkxPQ0tFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUdfX1JEUENTX0RQQUxUX0NPTlRST0xfU1BBUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNQorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9TU1RYX1ZSRUdEUlZfQllQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgwX1ZSRUdEUlZfQllQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDFfVlJFR0RSVl9CWVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYMl9WUkVHRFJWX0JZUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgzX1ZSRUdEUlZfQllQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9TVVBfUFJFX0hQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX1NTVFhfVlJFR0RSVl9CWVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYMF9WUkVHRFJWX0JZUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYMV9WUkVHRFJWX0JZUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYMl9WUkVHRFJWX0JZUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYM19WUkVHRFJWX0JZUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX1NVUF9QUkVfSFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL1JEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNgorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDBfT1VUX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgxX09VVF9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMl9PVVRfR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDNfT1VUX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0NNTl9PVVRfR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgwX09VVF9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgxX09VVF9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdDMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgyX09VVF9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgzX09VVF9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdDMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfQ01OX09VVF9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKy8vUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE3CisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMF9JTl9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDFfSU5fR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgyX0lOX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYM19JTl9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfQ01OX0lOX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDBfSU5fR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDFfSU5fR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0MwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDJfSU5fR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDNfSU5fR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0MwMDAwTAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9DTU5fSU5fR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorLy9SRFBDU1RYMl9SRFBDU1RYX0RFQlVHX0NPTkZJRzIKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYMl9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgyX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfVkFMSURfUkVQTEFDRV9NU0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgUkRQQ1NUWDJfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9WQUxJRF9SRVBMQUNFX01TQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjc3N5c19jcjJfZGlzcGRlYworLy9EUENTU1lTX0NSMl9EUENTU1lTX0NSX0FERFIKKyNkZWZpbmUgRFBDU1NZU19DUjJfRFBDU1NZU19DUl9BRERSX19SRFBDU19UWF9DUl9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NTWVNfQ1IyX0RQQ1NTWVNfQ1JfQUREUl9fUkRQQ1NfVFhfQ1JfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0RQQ1NTWVNfQ1IyX0RQQ1NTWVNfQ1JfREFUQQorI2RlZmluZSBEUENTU1lTX0NSMl9EUENTU1lTX0NSX0RBVEFfX1JEUENTX1RYX0NSX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1NZU19DUjJfRFBDU1NZU19DUl9EQVRBX19SRFBDU19UWF9DUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjczBfZHBjc3R4M19kaXNwZGVjCisvL0RQQ1NUWDNfRFBDU1RYX1RYX0NMT0NLX0NOVEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfRElWMl9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0RJVjJfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisvL0RQQ1NUWDNfRFBDU1RYX1RYX0NOVEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9QTExfVVBEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfUExMX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0RBVEFfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9EQVRBX09SREVSX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9GSUZPX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fUkRfU1RBUlRfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9QTExfVVBEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9QTExfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9EQVRBX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9EQVRBX09SREVSX0lOVkVSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9GSUZPX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9GSUZPX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9GSUZPX1JEX1NUQVJUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFBDU1RYM19EUENTVFhfQ0JVU19DTlRMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0NCVVNfQ05UTF9fRFBDU19DQlVTX1dSX0NNRF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9DQlVTX0NOVExfX0RQQ1NfQ0JVU19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0NCVVNfQ05UTF9fRFBDU19DQlVTX1dSX0NNRF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0NCVVNfQ05UTF9fRFBDU19DQlVTX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1JFR19GSUZPX09WRVJGTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRVJST1JfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0ZJRk9fRVJST1JfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYMF9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDFfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgyX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYM19GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWF9FUlJPUl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFhfRklGT19FUlJPUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19JTlRFUlJVUFRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1JFR19GSUZPX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1JFR19FUlJPUl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1JFR19GSUZPX0VSUk9SX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYMF9GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYMV9GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYMl9GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYM19GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYX0VSUk9SX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYX0ZJRk9fRVJST1JfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX0lOVEVSUlVQVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL0RQQ1NUWDNfRFBDU1RYX1BMTF9VUERBVEVfQUREUgorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9QTExfVVBEQVRFX0FERFJfX0RQQ1NfUExMX1VQREFURV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfUExMX1VQREFURV9BRERSX19EUENTX1BMTF9VUERBVEVfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vRFBDU1RYM19EUENTVFhfUExMX1VQREFURV9EQVRBCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX1BMTF9VUERBVEVfREFUQV9fRFBDU19QTExfVVBEQVRFX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9QTExfVVBEQVRFX0RBVEFfX0RQQ1NfUExMX1VQREFURV9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EUENTVFgzX0RQQ1NUWF9ERUJVR19DT05GSUcKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfQ0ZHQ0xLX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX1RYX1NZTUNMS19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19UWF9TWU1DTEtfRElWMl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfQ0JVU19ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUENTVFgzX0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfVEVTVF9ERUJVR19XUklURV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQQ1NUWDNfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19URVNUX0RFQlVHX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19DRkdDTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19UWF9TWU1DTEtfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19UWF9TWU1DTEtfRElWMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19DQlVTX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX19EUENTX1RFU1RfREVCVUdfV1JJVEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBDU1RYM19EUENTVFhfREVCVUdfQ09ORklHX19EUENTX1RFU1RfREVCVUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IGRwY3NzeXNfZHBjczBfcmRwY3N0eDNfZGlzcGRlYworLy9SRFBDU1RYM19SRFBDU1RYX0NOVEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMX19SRFBDU19DQlVTX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ05UTF9fUkRQQ1NfU1JBTV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUxX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19SRF9TVEFSVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMX19SRFBDU19EUEFMVF9CTE9DS19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX0NSX1JFR0lTVEVSX0JMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ05UTF9fUkRQQ1NfTk9OX0RQQUxUX1JFR0lTVEVSX0JMT0NLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX0NCVVNfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1NSQU1fU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTBfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fUkRfU1RBUlRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX0RQQUxUX0JMT0NLX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX0NSX1JFR0lTVEVSX0JMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX05PTl9EUEFMVF9SRUdJU1RFUl9CTE9DS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVExfX1JEUENTX1RYX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9SRFBDU1RYM19SRFBDU1RYX0NMT0NLX0NOVEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19FWFRfUkVGQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgwX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYMV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgzX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX09DTEFDTEtfQ0xPQ0tfT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfRVhUX1JFRkNMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgwX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgxX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgyX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgzX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL1JEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0wKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0ZJRk9fT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF80TEFORV9UT0dHTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgwX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMV9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDJfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgzX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19FUlJPUl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF9ESVNBQkxFX1RPR0dMRV9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYX0VSUk9SX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19SRUdfRklGT19FUlJPUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWF9GSUZPX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19GSUZPX09WRVJGTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMF9GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMV9GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMl9GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYM19GSUZPX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19FUlJPUl9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYX0VSUk9SX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19GSUZPX0VSUk9SX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYX0ZJRk9fRVJST1JfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL1JEUENTVFgzX1JEUENTVFhfUExMX1VQREFURV9EQVRBCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUExMX1VQREFURV9EQVRBX19SRFBDU19QTExfVVBEQVRFX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BMTF9VUERBVEVfREFUQV9fUkRQQ1NfUExMX1VQREFURV9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9SRFBDU1RYM19SRFBDU19UWF9DUl9BRERSCisjZGVmaW5lIFJEUENTVFgzX1JEUENTX1RYX0NSX0FERFJfX1JEUENTX1RYX0NSX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU19UWF9DUl9BRERSX19SRFBDU19UWF9DUl9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9SRFBDU1RYM19SRFBDU19UWF9DUl9EQVRBCisjZGVmaW5lIFJEUENTVFgzX1JEUENTX1RYX0NSX0RBVEFfX1JEUENTX1RYX0NSX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU19UWF9DUl9EQVRBX19SRFBDU19UWF9DUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9SRFBDU1RYM19SRFBDU19UWF9TUkFNX0NOVEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYM19SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgzX1JEUENTX1RYX1NSQU1fQ05UTF9fUkRQQ1NfTUVNX1BXUl9QV1JfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX0ZPUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX1BXUl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9TQ1JBVENICisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfU0NSQVRDSF9fUkRQQ1NUWF9TQ1JBVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1NDUkFUQ0hfX1JEUENTVFhfU0NSQVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9SRFBDU1RYM19SRFBDU1RYX1NQQVJFCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfU1BBUkVfX1JEUENTVFhfU1BBUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1NQQVJFX19SRFBDU1RYX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9SRFBDU1RYM19SRFBDU1RYX0NOVEwyCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfQ05UTDJfX1JEUENTX0NSX0NPTlZFUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0NOVEwyX19SRFBDU19DUl9DT05WRVJUX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMMl9fUkRQQ1NfQ1JfQ09OVkVSVF9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9DTlRMMl9fUkRQQ1NfQ1JfQ09OVkVSVF9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUcKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19SRFBDU19ETUNVX0RQQUxUX0ZPUkNFX1NZTUNMS19ESVYyX0RJU19fU0hJRlQgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9DT05UUk9MX1NQQVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfRk9SQ0VfU1lNQ0xLX0RJVjJfRElTX01BU0sgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfQ09OVFJPTF9TUEFSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUcKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfU0VMX0FTWU5DXzhCSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9BU1lOQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfVEVTVF9DTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfQ1JfQ09VTlRfRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX01BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfQ1JfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfQVNZTkNfOEJJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfQVNZTkNfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfVEVTVF9DTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDAKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVENBX1BIWV9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1RDQV9BUEJfUkVTRVRfTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9URVNUX1BPV0VSRE9XTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfRFRCX09VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0hETUlNT0RFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfUkFOR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUlRVTkVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SVFVORV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX0NSX1BBUkFfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfQ1JfTVVYX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfQ0xLREVUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFRl9DTEtERVRfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0lOSVRfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fRVhUX0xEX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfU1JBTV9CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVENBX1BIWV9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVENBX0FQQl9SRVNFVF9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVEVTVF9QT1dFUkRPV05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfRFRCX09VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfSERNSU1PREVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX1JBTkdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNFMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUlRVTkVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUlRVTkVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfQ1JfUEFSQV9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfQ1JfTVVYX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX0NMS0RFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX0NMS0RFVF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0lOSVRfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0VYVF9MRF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1JEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUEdfTU9ERV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BDU19QV1JfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QQ1NfUFdSX1NUQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUE1BX1BXUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BNQV9QV1JfU1RBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9EUF9QR19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfQU5BX1BXUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0FOQV9QV1JfU1RBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QR19NT0RFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QQ1NfUFdSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QQ1NfUFdSX1NUQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QTUFfUFdSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QTUFfUFdSX1NUQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9EUF9QR19SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9BTkFfUFdSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9BTkFfUFdSX1NUQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUDRfUE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTBfUlgyVFhfUEFSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUxX1JYMlRYX1BBUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMl9SWDJUWF9QQVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTNfUlgyVFhfUEFSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUwX1RYMlJYX1NFUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMV9UWDJSWF9TRVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTJfVFgyUlhfU0VSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUzX1RYMlJYX1NFUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUDRfUE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMF9SWDJUWF9QQVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMV9SWDJUWF9QQVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMl9SWDJUWF9QQVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FM19SWDJUWF9QQVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMF9UWDJSWF9TRVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMV9UWDJSWF9TRVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMl9UWDJSWF9TRVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FM19UWDJSWF9TRVJfTEJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9DTEtfUkRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9DTEtfUkRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0NMS19SRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0NMS19SRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfREFUQV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQ0xLX1JEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQ0xLX1JEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQ0xLX1JEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQ0xLX1JEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfREFUQV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfVEVSTV9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9CWVBBU1NfRVFfQ0FMQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfSFBfUFJPVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX1RFUk1fQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfQllQQVNTX0VRX0NBTENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX0hQX1BST1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9URVJNX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfQllQQVNTX0VRX0NBTENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9IUF9QUk9UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX1RFUk1fQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19CWVBBU1NfRVFfQ0FMQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX0hQX1BST1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfVEVSTV9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfQllQQVNTX0VRX0NBTENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfSFBfUFJPVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfVEVSTV9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfQllQQVNTX0VRX0NBTENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfSFBfUFJPVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfVEVSTV9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfQllQQVNTX0VRX0NBTENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfSFBfUFJPVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfVEVSTV9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfQllQQVNTX0VRX0NBTENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfSFBfUFJPVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDUKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfTFBEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfREVUUlhfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX0RFVFJYX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9MUERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9ERVRSWF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfREVUUlhfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX0xQRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX0RFVFJYX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfREVUUlhfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19MUERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19ERVRSWF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX0RFVFJYX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfTFBEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfREVUUlhfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfREVUUlhfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfTFBEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfREVUUlhfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfREVUUlhfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfTFBEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBFMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfREVUUlhfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfREVUUlhfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfTFBEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfREVUUlhfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfREVUUlhfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfUFNUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX01QTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9QU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfTVBMTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX1BTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9NUExMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfUFNUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX01QTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RQNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfUFNUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfTVBMTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfUFNUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfTVBMTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfUFNUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfTVBMTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfUFNUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfTVBMTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9EUDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDcKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDdfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9ERU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw3X19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fUVVPVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDdfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9ERU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDdfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9RVU9UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDhfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfUEVBS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw4X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1BFQUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1JEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw5CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw5X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1NURVBTSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMOV9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19VUF9TUFJFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw5X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1NURVBTSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEw5X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1VQX1NQUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL1JEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxMAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTBfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9SRU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDEwX19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fUkVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDExCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0RQX01QTExCX01VTFRJUExJRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9IRE1JX01QTExCX0hETUlfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfTVBMTEJfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfSERNSV9NUExMQl9IRE1JX1BJWEVMX0NMS19ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9EUF9NUExMQl9NVUxUSVBMSUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9IRE1JX01QTExCX0hETUlfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX01QTExCX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9IRE1JX01QTExCX0hETUlfUElYRUxfQ0xLX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfRElWNV9DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1dPUkRfRElWMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9UWF9DTEtfRElWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9ESVY1X0NMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9XT1JEX0RJVjJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9UWF9DTEtfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfRElWX01VTFRJUExJRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9ESVZfQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0ZPUkNFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfSU5JVF9DQUxfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9ESVZfTVVMVElQTElFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRjAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9ESVZfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9GT1JDRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9JTklUX0NBTF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE0X19SRFBDU19QSFlfRFBfTVBMTEJfQ0FMX0ZPUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE0X19SRFBDU19QSFlfRFBfTVBMTEJfUE1JWF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9DQUxfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9QTUlYX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9SRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX1RYMF9FUV9NQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX1BPU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX01QTExCX1YySV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfRlJFUV9WQ09fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9JTlRfR1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX1JYX1ZSRUZfQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX01BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX1BPU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfVjJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfRlJFUV9WQ09fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfSU5UX0dTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZDMDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfUlhfVlJFRl9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL1JEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UxCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX01BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9UWDFfRVFfUE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9QUk9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9NQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9QT1NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkMwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX1BST1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9SRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX1RYMl9FUV9NQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfUFJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX1BPU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX1BST1BfR1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX01BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX1BPU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfUFJPUF9HU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0Y4MDAwMDBMCisvL1JEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UzCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRFBfVFgzX0VRX01BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfUE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRENPX0ZJTkVUVU5FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EQ09fUkFOR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX1RYX1ZCT09TVF9MVkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfU1VQX1JYX1ZDT19WUkVGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfUE9TVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EQ09fRklORVRVTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EQ09fUkFOR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9UWF9WQk9PU1RfTFZMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQzAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9TVVBfUlhfVkNPX1ZSRUZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfUlhfTERfVkFMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX1JYX0xEX1ZBTF9fUkRQQ1NfUEhZX1JYX1JFRl9MRF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9SWF9MRF9WQUxfX1JEUENTX1BIWV9SWF9WQ09fTERfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX19SRFBDU19QSFlfUlhfUkVGX0xEX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX19SRFBDU19QSFlfUlhfVkNPX0xEX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkYwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMMworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFU0VUX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQ0xLX1JEWV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RBVEFfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQUNLX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFU0VUX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQ0xLX1JEWV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RBVEFfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQUNLX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFU0VUX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfRElTQUJMRV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9DTEtfUkRZX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RBVEFfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVRX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9BQ0tfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFU0VUX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfRElTQUJMRV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19DTEtfUkRZX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RBVEFfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVRX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19BQ0tfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFU0VUX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0NMS19SRFlfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RBVEFfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFU0VUX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0NMS19SRFlfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RBVEFfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFU0VUX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0NMS19SRFlfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RBVEFfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFU0VUX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0NMS19SRFlfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RBVEFfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9SRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfUFNUQVRFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgwX01QTExfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9QU1RBVEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfTVBMTF9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX1BTVEFURV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9NUExMX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfUFNUQVRFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgzX01QTExfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RQNF9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRElTQUJMRV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX0FDS19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfUFNUQVRFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfTVBMTF9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfUFNUQVRFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDFfTVBMTF9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfUFNUQVRFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfTVBMTF9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfUFNUQVRFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfTVBMTF9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9EUDRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX0FDS19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX1JFUV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL1JEUENTVFgzX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUcKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfQUxMT1dfRFJJVkVSX0FDQ0VTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUdfX1JEUENTX0RSSVZFUl9BQ0NFU1NfQkxPQ0tFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19EUEFMVF9DT05UUk9MX1NQQVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfQUxMT1dfRFJJVkVSX0FDQ0VTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfRFJJVkVSX0FDQ0VTU19CTE9DS0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfRFBBTFRfQ09OVFJPTF9TUEFSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE1CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX1NTVFhfVlJFR0RSVl9CWVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDBfVlJFR0RSVl9CWVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYMV9WUkVHRFJWX0JZUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgyX1ZSRUdEUlZfQllQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDNfVlJFR0RSVl9CWVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX1NVUF9QUkVfSFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfU1NUWF9WUkVHRFJWX0JZUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgwX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgxX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgyX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgzX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfU1VQX1BSRV9IUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE2CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMF9PVVRfR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDFfT1VUX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgyX09VVF9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYM19PVVRfR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfQ01OX09VVF9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDBfT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDFfT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0MwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDJfT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDNfT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0MwMDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9DTU5fT1VUX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorLy9SRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTcKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgwX0lOX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMV9JTl9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDJfSU5fR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgzX0lOX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9DTU5fSU5fR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMF9JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMV9JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3QzBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMl9JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYM19JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3QzAwMDBMCisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0NNTl9JTl9HRU5FUklDX0JVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL1JEUENTVFgzX1JEUENTVFhfREVCVUdfQ09ORklHMgorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFgzX1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDNfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9WQUxJRF9SRVBMQUNFX01TQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBSRFBDU1RYM19SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1ZBTElEX1JFUExBQ0VfTVNCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzc3lzX2NyM19kaXNwZGVjCisvL0RQQ1NTWVNfQ1IzX0RQQ1NTWVNfQ1JfQUREUgorI2RlZmluZSBEUENTU1lTX0NSM19EUENTU1lTX0NSX0FERFJfX1JEUENTX1RYX0NSX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1NZU19DUjNfRFBDU1NZU19DUl9BRERSX19SRFBDU19UWF9DUl9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vRFBDU1NZU19DUjNfRFBDU1NZU19DUl9EQVRBCisjZGVmaW5lIERQQ1NTWVNfQ1IzX0RQQ1NTWVNfQ1JfREFUQV9fUkRQQ1NfVFhfQ1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTU1lTX0NSM19EUENTU1lTX0NSX0RBVEFfX1JEUENTX1RYX0NSX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzMF9kcGNzdHg0X2Rpc3BkZWMKKy8vRFBDU1RYNF9EUENTVFhfVFhfQ0xPQ0tfQ05UTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX1RYX0NMT0NLX0NOVExfX0RQQ1NfU1lNQ0xLX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTE9DS19DTlRMX19EUENTX1NZTUNMS19ESVYyX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfR0FURV9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfQ0xPQ0tfT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfVFhfQ0xPQ0tfQ05UTF9fRFBDU19TWU1DTEtfRElWMl9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKy8vRFBDU1RYNF9EUENTVFhfVFhfQ05UTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1BMTF9VUERBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9QTExfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfREFUQV9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0RBVEFfT1JERVJfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9GSUZPX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX1RYX0NOVExfX0RQQ1NfVFhfRklGT19SRF9TVEFSVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfVFhfQ05UTF9fRFBDU19UWF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1BMTF9VUERBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1BMTF9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0RBVEFfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0RBVEFfT1JERVJfSU5WRVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX0ZJRk9fUkRfU1RBUlRfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9UWF9DTlRMX19EUENTX1RYX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EUENTVFg0X0RQQ1NUWF9DQlVTX0NOVEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfQ0JVU19DTlRMX19EUENTX0NCVVNfV1JfQ01EX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX0NCVVNfQ05UTF9fRFBDU19DQlVTX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfQ0JVU19DTlRMX19EUENTX0NCVVNfV1JfQ01EX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfQ0JVU19DTlRMX19EUENTX0NCVVNfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0ZJRk9fT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1JFR19FUlJPUl9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19SRUdfRklGT19FUlJPUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgwX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYMV9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWDJfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgzX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX1RYX0VSUk9SX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9JTlRFUlJVUFRfQ05UTF9fRFBDU19UWF9GSUZPX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX0lOVEVSUlVQVF9DTlRMX19EUENTX0lOVEVSUlVQVF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0ZJRk9fT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0VSUk9SX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfUkVHX0ZJRk9fRVJST1JfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgwX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgxX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgyX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFgzX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFhfRVJST1JfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfVFhfRklGT19FUlJPUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfSU5URVJSVVBUX0NOVExfX0RQQ1NfSU5URVJSVVBUX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vRFBDU1RYNF9EUENTVFhfUExMX1VQREFURV9BRERSCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX1BMTF9VUERBVEVfQUREUl9fRFBDU19QTExfVVBEQVRFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9QTExfVVBEQVRFX0FERFJfX0RQQ1NfUExMX1VQREFURV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EUENTVFg0X0RQQ1NUWF9QTExfVVBEQVRFX0RBVEEKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfUExMX1VQREFURV9EQVRBX19EUENTX1BMTF9VUERBVEVfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX1BMTF9VUERBVEVfREFUQV9fRFBDU19QTExfVVBEQVRFX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RQQ1NUWDRfRFBDU1RYX0RFQlVHX0NPTkZJRworI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19DRkdDTEtfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19EQkdfVFhfU1lNQ0xLX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX1RYX1NZTUNMS19ESVYyX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX0RCR19DQlVTX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIERQQ1NUWDRfRFBDU1RYX0RFQlVHX0NPTkZJR19fRFBDU19URVNUX0RFQlVHX1dSSVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFBDU1RYNF9EUENTVFhfREVCVUdfQ09ORklHX19EUENTX1RFU1RfREVCVUdfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0NGR0NMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX1RYX1NZTUNMS19TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX1RYX1NZTUNMS19ESVYyX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfREJHX0NCVVNfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfVEVTVF9ERUJVR19XUklURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEUENTVFg0X0RQQ1NUWF9ERUJVR19DT05GSUdfX0RQQ1NfVEVTVF9ERUJVR19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogZHBjc3N5c19kcGNzMF9yZHBjc3R4NF9kaXNwZGVjCisvL1JEUENTVFg0X1JEUENTVFhfQ05UTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NOVExfX1JEUENTX0NCVVNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTlRMX19SRFBDU19TUkFNX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fTEFORTFfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX0xBTkUyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX0ZJRk9fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTlRMX19SRFBDU19UWF9GSUZPX1JEX1NUQVJUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NOVExfX1JEUENTX0RQQUxUX0JMT0NLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfQ1JfUkVHSVNURVJfQkxPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTlRMX19SRFBDU19OT05fRFBBTFRfUkVHSVNURVJfQkxPQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NOVExfX1JEUENTX1RYX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfQ0JVU19TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfU1JBTV9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19MQU5FM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfRklGT19SRF9TVEFSVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfRFBBTFRfQkxPQ0tfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfQ1JfUkVHSVNURVJfQkxPQ0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfTk9OX0RQQUxUX1JFR0lTVEVSX0JMT0NLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTF9fUkRQQ1NfVFhfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1JEUENTVFg0X1JEUENTVFhfQ0xPQ0tfQ05UTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX0VYVF9SRUZDTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDBfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfVFgxX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX1RYMl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1lNQ0xLX0RJVjJfR0FURV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NZTUNMS19ESVYyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19HQVRFX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX1NSQU1DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0NMT0NLX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfU1JBTUNMS19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0dBVEVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NMT0NLX0NOVExfX1JEUENTX09DTEFDTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ0xPQ0tfQ05UTF9fUkRQQ1NfT0NMQUNMS19DTE9DS19PTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19FWFRfUkVGQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDBfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDFfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9UWDNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9HQVRFX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TWU1DTEtfRElWMl9DTE9DS19PTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19TUkFNQ0xLX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0dBVEVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTE9DS19DTlRMX19SRFBDU19PQ0xBQ0xLX0NMT0NLX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19SRUdfRklGT19PVkVSRkxPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUXzRMQU5FX1RPR0dMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDBfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgxX0ZJRk9fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYMl9GSUZPX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19UWDNfRklGT19FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0VSUk9SX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX0RQQUxUX0RJU0FCTEVfVE9HR0xFX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF80TEFORV9UT0dHTEVfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFhfRVJST1JfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1JFR19GSUZPX0VSUk9SX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0lOVEVSUlVQVF9DT05UUk9MX19SRFBDU19EUEFMVF80TEFORV9UT0dHTEVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfSU5URVJSVVBUX0NPTlRST0xfX1JEUENTX1RYX0ZJRk9fRVJST1JfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0ZJRk9fT1ZFUkZMT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgwX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgxX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgyX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFgzX0ZJRk9fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0VSUk9SX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFhfRVJST1JfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfUkVHX0ZJRk9fRVJST1JfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfRElTQUJMRV9UT0dHTEVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfRFBBTFRfNExBTkVfVE9HR0xFX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9JTlRFUlJVUFRfQ09OVFJPTF9fUkRQQ1NfVFhfRklGT19FUlJPUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vUkRQQ1NUWDRfUkRQQ1NUWF9QTExfVVBEQVRFX0RBVEEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QTExfVVBEQVRFX0RBVEFfX1JEUENTX1BMTF9VUERBVEVfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUExMX1VQREFURV9EQVRBX19SRFBDU19QTExfVVBEQVRFX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1JEUENTVFg0X1JEUENTX1RYX0NSX0FERFIKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NfVFhfQ1JfQUREUl9fUkRQQ1NfVFhfQ1JfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTX1RYX0NSX0FERFJfX1JEUENTX1RYX0NSX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1JEUENTVFg0X1JEUENTX1RYX0NSX0RBVEEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NfVFhfQ1JfREFUQV9fUkRQQ1NfVFhfQ1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTX1RYX0NSX0RBVEFfX1JEUENTX1RYX0NSX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1JEUENTVFg0X1JEUENTX1RYX1NSQU1fQ05UTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTX1RYX1NSQU1fQ05UTF9fUkRQQ1NfTUVNX1BXUl9GT1JDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NfVFhfU1JBTV9DTlRMX19SRFBDU19NRU1fUFdSX1BXUl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYNF9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfRk9SQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU19UWF9TUkFNX0NOVExfX1JEUENTX01FTV9QV1JfUFdSX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1NDUkFUQ0gKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9TQ1JBVENIX19SRFBDU1RYX1NDUkFUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfU0NSQVRDSF9fUkRQQ1NUWF9TQ1JBVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1JEUENTVFg0X1JEUENTVFhfU1BBUkUKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9TUEFSRV9fUkRQQ1NUWF9TUEFSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfU1BBUkVfX1JEUENTVFhfU1BBUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1JEUENTVFg0X1JEUENTVFhfQ05UTDIKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9DTlRMMl9fUkRQQ1NfQ1JfQ09OVkVSVF9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfQ05UTDJfX1JEUENTX0NSX0NPTlZFUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NOVEwyX19SRFBDU19DUl9DT05WRVJUX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0NOVEwyX19SRFBDU19DUl9DT05WRVJUX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9SRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFRworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX0RJU19CTE9DS19SRUdfX1JEUENTX0RNQ1VfRFBBTFRfRk9SQ0VfU1lNQ0xLX0RJVjJfRElTX19TSElGVCAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX19SRFBDU19ETUNVX0RQQUxUX0NPTlRST0xfU1BBUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9ESVNfQkxPQ0tfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9GT1JDRV9TWU1DTEtfRElWMl9ESVNfTUFTSyAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfRElTX0JMT0NLX1JFR19fUkRQQ1NfRE1DVV9EUEFMVF9DT05UUk9MX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJRworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19TRUxfQVNZTkNfOEJJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfU0VMX0FTWU5DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9URVNUX0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9FWFBJUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHX19SRFBDU19EQkdfQ1JfQ09VTlRfTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ERUJVR19DT05GSUdfX1JEUENTX0RCR19DUl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9BU1lOQ184QklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9BU1lOQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX1NFTF9URVNUX0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX01BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJR19fUkRQQ1NfREJHX0NSX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9UQ0FfUEhZX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfVENBX0FQQl9SRVNFVF9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1RFU1RfUE9XRVJET1dOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9EVEJfT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfSERNSU1PREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFRl9SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SVFVORV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JUVU5FX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfQ1JfUEFSQV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9DUl9NVVhfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfUEhZX1JFRl9DTEtERVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19QSFlfUkVGX0NMS0RFVF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fSU5JVF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMF9fUkRQQ1NfU1JBTV9FWFRfTERfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwwX19SRFBDU19TUkFNX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9UQ0FfUEhZX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9UQ0FfQVBCX1JFU0VUX05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9URVNUX1BPV0VSRE9XTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9EVEJfT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9IRE1JTU9ERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfUkFOR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0UwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SVFVORV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SVFVORV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9DUl9QQVJBX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9DUl9NVVhfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfQ0xLREVUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1BIWV9SRUZfQ0xLREVUX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fSU5JVF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fRVhUX0xEX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDBfX1JEUENTX1NSQU1fQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QR19NT0RFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUENTX1BXUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BDU19QV1JfU1RBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9QTUFfUFdSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfUE1BX1BXUl9TVEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0RQX1BHX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDFfX1JEUENTX1BIWV9BTkFfUFdSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxX19SRFBDU19QSFlfQU5BX1BXUl9TVEFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BHX01PREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BDU19QV1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BDU19QV1JfU1RBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BNQV9QV1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX1BNQV9QV1JfU1RBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0RQX1BHX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0FOQV9QV1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMV9fUkRQQ1NfUEhZX0FOQV9QV1JfU1RBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQNF9QT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMF9SWDJUWF9QQVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTFfUlgyVFhfUEFSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUyX1JYMlRYX1BBUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FM19SWDJUWF9QQVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTBfVFgyUlhfU0VSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUxX1RYMlJYX1NFUl9MQl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDJfX1JEUENTX1BIWV9EUF9MQU5FMl9UWDJSWF9TRVJfTEJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwyX19SRFBDU19QSFlfRFBfTEFORTNfVFgyUlhfU0VSX0xCX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQNF9QT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUwX1JYMlRYX1BBUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUxX1JYMlRYX1BBUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUyX1JYMlRYX1BBUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUzX1JYMlRYX1BBUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUwX1RYMlJYX1NFUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUxX1RYMlJYX1NFUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUyX1RYMlJYX1NFUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMl9fUkRQQ1NfUEhZX0RQX0xBTkUzX1RYMlJYX1NFUl9MQl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0NMS19SRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0NMS19SRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQ0xLX1JEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQ0xLX1JEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19EQVRBX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9DTEtfUkRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9DTEtfUkRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9DTEtfUkRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19DTEtfUkRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19EQVRBX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9URVJNX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDBfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgwX0JZUEFTU19FUV9DQUxDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9IUF9QUk9UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfVEVSTV9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgxX0lOVkVSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9CWVBBU1NfRVFfQ0FMQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDFfSFBfUFJPVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX1RFUk1fQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDJfSU5WRVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9CWVBBU1NfRVFfQ0FMQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgyX0hQX1BST1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfVEVSTV9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19JTlZFUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw0X19SRFBDU19QSFlfRFBfVFgzX0JZUEFTU19FUV9DQUxDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDRfX1JEUENTX1BIWV9EUF9UWDNfSFBfUFJPVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9URVJNX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9CWVBBU1NfRVFfQ0FMQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMF9IUF9QUk9UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9URVJNX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9CWVBBU1NfRVFfQ0FMQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMV9IUF9QUk9UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9URVJNX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9CWVBBU1NfRVFfQ0FMQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYMl9IUF9QUk9UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19URVJNX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19JTlZFUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19CWVBBU1NfRVFfQ0FMQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNF9fUkRQQ1NfUEhZX0RQX1RYM19IUF9QUk9UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9MUERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgwX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9ERVRSWF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDBfREVUUlhfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX0xQRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDFfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgxX0RFVFJYX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9ERVRSWF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfTFBEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgyX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDJfREVUUlhfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9ERVRSWF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX0xQRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19XSURUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw1X19SRFBDU19QSFlfRFBfVFgzX0RFVFJYX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDVfX1JEUENTX1BIWV9EUF9UWDNfREVUUlhfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9MUERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9ERVRSWF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMF9ERVRSWF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9MUERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9ERVRSWF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMV9ERVRSWF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9MUERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9ERVRSWF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYMl9ERVRSWF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19MUERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19ERVRSWF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNV9fUkRQQ1NfUEhZX0RQX1RYM19ERVRSWF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9QU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfTVBMTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX1BTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9NUExMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfUFNUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX01QTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19QU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfTVBMTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRFA0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9QU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9NUExMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9QU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9NUExMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9QU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9NUExMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19QU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19NUExMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RQNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMNworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMN19fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX0RFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDdfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9RVU9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMN19fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX0RFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMN19fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX1FVT1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMOAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMOF9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19QRUFLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDhfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfUEVBS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDkKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDlfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfU1RFUFNJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEw5X19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX1VQX1NQUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDlfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfU1RFUFNJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDlfX1JEUENTX1BIWV9EUF9NUExMQl9TU0NfVVBfU1BSRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMF9fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX1JFTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTBfX1JEUENTX1BIWV9EUF9NUExMQl9GUkFDTl9SRU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfRFBfTVBMTEJfTVVMVElQTElFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0hETUlfTVBMTEJfSERNSV9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDExX19SRFBDU19QSFlfRFBfUkVGX0NMS19NUExMQl9ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTFfX1JEUENTX1BIWV9IRE1JX01QTExCX0hETUlfUElYRUxfQ0xLX0RJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0RQX01QTExCX01VTFRJUExJRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0hETUlfTVBMTEJfSERNSV9ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfTVBMTEJfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMV9fUkRQQ1NfUEhZX0hETUlfTVBMTEJfSERNSV9QSVhFTF9DTEtfRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisvL1JEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9ESVY1X0NMS19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfV09SRF9ESVYyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1RYX0NMS19ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTJfX1JEUENTX1BIWV9EUF9NUExMQl9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEyX19SRFBDU19QSFlfRFBfTVBMTEJfU1NDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX0RJVjVfQ0xLX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1dPUkRfRElWMl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1RYX0NMS19ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMl9fUkRQQ1NfUEhZX0RQX01QTExCX1NTQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1JEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxMworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9ESVZfTVVMVElQTElFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0RJVl9DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDEzX19SRFBDU19QSFlfRFBfTVBMTEJfRk9SQ0VfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTNfX1JEUENTX1BIWV9EUF9NUExMQl9JTklUX0NBTF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0RJVl9NVUxUSVBMSUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0RJVl9DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0ZPUkNFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxM19fUkRQQ1NfUEhZX0RQX01QTExCX0lOSVRfQ0FMX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1JEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9DQUxfRk9SQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE0X19SRFBDU19QSFlfRFBfTVBMTEJfRlJBQ05fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTRfX1JEUENTX1BIWV9EUF9NUExMQl9QTUlYX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX0NBTF9GT1JDRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX0ZSQUNOX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNF9fUkRQQ1NfUEhZX0RQX01QTExCX1BNSVhfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL1JEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfVFgwX0VRX01BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX1RYMF9FUV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfUE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfRFBfTVBMTEJfVjJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9GUkVRX1ZDT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFMF9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX0lOVF9HU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UwX19SRFBDU19QSFlfUlhfVlJFRl9DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9UWDBfRVFfUE9TVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9WMklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9GUkVRX1ZDT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9JTlRfR1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkMwMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTBfX1JEUENTX1BIWV9SWF9WUkVGX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9UWDFfRVFfTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX1RYMV9FUV9QT1NUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTFfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFMV9fUkRQQ1NfUEhZX0RQX01QTExCX0NQX1BST1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX01BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX1BSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfVFgxX0VRX1BPU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGQzAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UxX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfUFJPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL1JEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfVFgyX0VRX01BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFMl9fUkRQQ1NfUEhZX0RQX1RYMl9FUV9QUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfUE9TVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UyX19SRFBDU19QSFlfRFBfTVBMTEJfQ1BfUFJPUF9HU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfUFJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9UWDJfRVFfUE9TVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTJfX1JEUENTX1BIWV9EUF9NUExMQl9DUF9QUk9QX0dTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjgwMDAwMEwKKy8vUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EUF9UWDNfRVFfTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfRFBfVFgzX0VRX1BSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9QT1NUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9EQ09fRklORVRVTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RDT19SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0ZVU0UzX19SRFBDU19QSFlfVFhfVkJPT1NUX0xWTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfRlVTRTNfX1JEUENTX1BIWV9TVVBfUlhfVkNPX1ZSRUZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9NQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9QUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RQX1RYM19FUV9QT1NUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RDT19GSU5FVFVORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX0RDT19SQU5HRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX1RYX1ZCT09TVF9MVkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDMDAwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9GVVNFM19fUkRQQ1NfUEhZX1NVUF9SWF9WQ09fVlJFRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9SWF9MRF9WQUwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfUlhfTERfVkFMX19SRFBDU19QSFlfUlhfUkVGX0xEX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX1JYX0xEX1ZBTF9fUkRQQ1NfUEhZX1JYX1ZDT19MRF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9SWF9MRF9WQUxfX1JEUENTX1BIWV9SWF9SRUZfTERfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9SWF9MRF9WQUxfX1JEUENTX1BIWV9SWF9WQ09fTERfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRjAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVTRVRfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX0RJU0FCTEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9DTEtfUkRZX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfREFUQV9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgwX1JFUV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMF9BQ0tfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVTRVRfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX0RJU0FCTEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9DTEtfUkRZX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfREFUQV9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgxX1JFUV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMV9BQ0tfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVTRVRfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0NMS19SRFlfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfREFUQV9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYMl9SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgyX0FDS19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVTRVRfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0NMS19SRFlfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfREFUQV9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMM19fUkRQQ1NfUEhZX0RQX1RYM19SRVFfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEwzX19SRFBDU19QSFlfRFBfVFgzX0FDS19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVTRVRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfRElTQUJMRV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQ0xLX1JEWV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfREFUQV9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDBfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVTRVRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfRElTQUJMRV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQ0xLX1JEWV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfREFUQV9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDFfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVTRVRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfRElTQUJMRV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQ0xLX1JEWV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfREFUQV9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDJfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVTRVRfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfRElTQUJMRV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQ0xLX1JEWV9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfREFUQV9FTl9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDNfX1JEUENTX1BIWV9EUF9UWDNfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1JEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9QU1RBVEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDBfTVBMTF9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgxX1BTVEFURV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9NUExMX0VOX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDJfUFNUQVRFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfVFgyX01QTExfRU5fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19QU1RBVEVfUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9UWDNfTVBMTF9FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBBTFRfRFA0X1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUEFMVF9ESVNBQkxFX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfQUNLX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RNQ1VfRFBBTFRfUEhZX0NOVEw2X19SRFBDU19QSFlfRFBfUkVGX0NMS19FTl9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRE1DVV9EUEFMVF9QSFlfQ05UTDZfX1JEUENTX1BIWV9EUF9SRUZfQ0xLX1JFUV9SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9QU1RBVEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMF9NUExMX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9QU1RBVEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMV9NUExMX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9QU1RBVEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYMl9NUExMX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19QU1RBVEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1RYM19NUExMX0VOX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RQNF9SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQQUxUX0RJU0FCTEVfQUNLX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfRU5fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ETUNVX0RQQUxUX1BIWV9DTlRMNl9fUkRQQ1NfUEhZX0RQX1JFRl9DTEtfUkVRX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vUkRQQ1NUWDRfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFRworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19BTExPV19EUklWRVJfQUNDRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9EUEFMVF9DT05UUk9MX1JFR19fUkRQQ1NfRFJJVkVSX0FDQ0VTU19CTE9DS0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfRFBBTFRfQ09OVFJPTF9SRUdfX1JEUENTX0RQQUxUX0NPTlRST0xfU1BBUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19BTExPV19EUklWRVJfQUNDRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19EUklWRVJfQUNDRVNTX0JMT0NLRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RQQUxUX0NPTlRST0xfUkVHX19SRFBDU19EUEFMVF9DT05UUk9MX1NQQVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTUKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfU1NUWF9WUkVHRFJWX0JZUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYMF9WUkVHRFJWX0JZUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfRFBfVFgxX1ZSRUdEUlZfQllQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDJfVlJFR0RSVl9CWVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNV9fUkRQQ1NfUEhZX0RQX1RYM19WUkVHRFJWX0JZUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE1X19SRFBDU19QSFlfU1VQX1BSRV9IUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9TU1RYX1ZSRUdEUlZfQllQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDBfVlJFR0RSVl9CWVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDFfVlJFR0RSVl9CWVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDJfVlJFR0RSVl9CWVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9EUF9UWDNfVlJFR0RSVl9CWVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTVfX1JEUENTX1BIWV9TVVBfUFJFX0hQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9SRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTYKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgwX09VVF9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMV9PVVRfR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9EUF9UWDJfT1VUX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE2X19SRFBDU19QSFlfRFBfVFgzX09VVF9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTZfX1JEUENTX1BIWV9DTU5fT1VUX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMF9PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMV9PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3QzBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYMl9PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0RQX1RYM19PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3QzAwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNl9fUkRQQ1NfUEhZX0NNTl9PVVRfR0VORVJJQ19CVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisvL1JEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxNworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDBfSU5fR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgxX0lOX0dFTkVSSUNfQlVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0RQX1RYMl9JTl9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX1BIWV9DTlRMMTdfX1JEUENTX1BIWV9EUF9UWDNfSU5fR0VORVJJQ19CVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfUEhZX0NOVEwxN19fUkRQQ1NfUEhZX0NNTl9JTl9HRU5FUklDX0JVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgwX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgxX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdDMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgyX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfRFBfVFgzX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdDMDAwMEwKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9QSFlfQ05UTDE3X19SRFBDU19QSFlfQ01OX0lOX0dFTkVSSUNfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKy8vUkRQQ1NUWDRfUkRQQ1NUWF9ERUJVR19DT05GSUcyCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1NSQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUkRQQ1NUWDRfUkRQQ1NUWF9ERUJVR19DT05GSUcyX19SRFBDU19EQkdfT0NMQV9TUkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBSRFBDU1RYNF9SRFBDU1RYX0RFQlVHX0NPTkZJRzJfX1JEUENTX0RCR19PQ0xBX1ZBTElEX1JFUExBQ0VfTVNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfU1JDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFJEUENTVFg0X1JEUENTVFhfREVCVUdfQ09ORklHMl9fUkRQQ1NfREJHX09DTEFfVkFMSURfUkVQTEFDRV9NU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBkcGNzc3lzX2RwY3NzeXNfY3I0X2Rpc3BkZWMKKy8vRFBDU1NZU19DUjRfRFBDU1NZU19DUl9BRERSCisjZGVmaW5lIERQQ1NTWVNfQ1I0X0RQQ1NTWVNfQ1JfQUREUl9fUkRQQ1NfVFhfQ1JfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEUENTU1lTX0NSNF9EUENTU1lTX0NSX0FERFJfX1JEUENTX1RYX0NSX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9EUENTU1lTX0NSNF9EUENTU1lTX0NSX0RBVEEKKyNkZWZpbmUgRFBDU1NZU19DUjRfRFBDU1NZU19DUl9EQVRBX19SRFBDU19UWF9DUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERQQ1NTWVNfQ1I0X0RQQ1NTWVNfQ1JfREFUQV9fUkRQQ1NfVFhfQ1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2RmL2RmXzNfNl9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9kZi9kZl8zXzZfb2Zmc2V0LmgKaW5kZXggNmVmY2FhOS4uYzJiZDI1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2RmL2RmXzNfNl9vZmZzZXQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvZGYvZGZfM182X29mZnNldC5oCkBAIC00OCw0ICs0OCw4IEBACiAjZGVmaW5lIHNtblBlcmZNb25DdHJMbzMJCQkJCTB4MDFkNDc4VUwKICNkZWZpbmUgc21uUGVyZk1vbkN0ckhpMwkJCQkJMHgwMWQ0N2NVTAogCisjZGVmaW5lIHNtbkRGX1BJRV9BT05fRmFicmljSW5kaXJlY3RDb25maWdBY2Nlc3NBZGRyZXNzMwkweDFkMDVjVUwKKyNkZWZpbmUgc21uREZfUElFX0FPTl9GYWJyaWNJbmRpcmVjdENvbmZpZ0FjY2Vzc0RhdGFMbzMJCTB4MWQwOThVTAorI2RlZmluZSBzbW5ERl9QSUVfQU9OX0ZhYnJpY0luZGlyZWN0Q29uZmlnQWNjZXNzRGF0YUhpMwkJMHgxZDA5Y1VMCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2djL2djXzEwXzFfMF9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9nYy9nY18xMF8xXzBfb2Zmc2V0LmgKaW5kZXggMWRiYzdjZWYuLjA3NTg2N2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9nYy9nY18xMF8xXzBfb2Zmc2V0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2djL2djXzEwXzFfMF9vZmZzZXQuaApAQCAtMTAxMDcsNiArMTAxMDcsOCBAQAogI2RlZmluZSBtbUNHVFRfSUFfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICNkZWZpbmUgbW1DR1RUX1dEX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUwODYKICNkZWZpbmUgbW1DR1RUX1dEX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQ0dUVF9HU19OR0dfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1MDg3CisjZGVmaW5lIG1tQ0dUVF9HU19OR0dfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogI2RlZmluZSBtbUNHVFRfUEFfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTA4OAogI2RlZmluZSBtbUNHVFRfUEFfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICNkZWZpbmUgbW1DR1RUX1NDX0NMS19DVFJMMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUwODkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9nYy9nY18xMF8xXzBfc2hfbWFzay5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2djL2djXzEwXzFfMF9zaF9tYXNrLmgKaW5kZXggNmMyYTQyMS4uZTdkYjZmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2djL2djXzEwXzFfMF9zaF9tYXNrLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2djL2djXzEwXzFfMF9zaF9tYXNrLmgKQEAgLTM3ODcyLDYgKzM3ODcyLDQ1IEBACiAjZGVmaW5lIENHVFRfV0RfQ0xLX0NUUkxfX0NPUkVfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCiAjZGVmaW5lIENHVFRfV0RfQ0xLX0NUUkxfX1JCSVVfSU5QVVRfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCiAjZGVmaW5lIENHVFRfV0RfQ0xLX0NUUkxfX1JFR19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0NHVFRfR1NfTkdHX0NMS19DVFJMCisjZGVmaW5lIENHVFRfR1NfTkdHX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDR1RUX0dTX05HR19DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1BFUkZfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIENHVFRfR1NfTkdHX0NMS19DVFJMX19EQkdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREU2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBDR1RUX0dTX05HR19DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIENHVFRfR1NfTkdHX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBDR1RUX0dTX05HR19DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIENHVFRfR1NfTkdHX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBDR1RUX0dTX05HR19DTEtfQ1RSTF9fU09GVF9PVkVSUklERTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIENHVFRfR1NfTkdHX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBDR1RUX0dTX05HR19DTEtfQ1RSTF9fUFJJTUdFTl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIENHVFRfR1NfTkdHX0NMS19DVFJMX19HUzFfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX0dTMF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBDR1RUX0dTX05HR19DTEtfQ1RSTF9fUkJJVV9JTlBVVF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIENHVFRfR1NfTkdHX0NMS19DVFJMX19SRUdfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1BFUkZfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX0RCR19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREU1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREU0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1BSSU1HRU5fT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX0dTMV9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX0dTMF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1JCSVVfSU5QVVRfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgQ0dUVF9HU19OR0dfQ0xLX0NUUkxfX1JFR19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKIC8vQ0dUVF9QQV9DTEtfQ1RSTAogI2RlZmluZSBDR1RUX1BBX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKICNkZWZpbmUgQ0dUVF9QQV9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvZ2MvZ2NfOV8wX29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2djL2djXzlfMF9vZmZzZXQuaAppbmRleCBmMWQwNDhlLi5jYTE2ZDkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvZ2MvZ2NfOV8wX29mZnNldC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9nYy9nY185XzBfb2Zmc2V0LmgKQEAgLTE3MDAsNiArMTcwMCw4IEBACiAjZGVmaW5lIG1tVENQX0JVRkZFUl9BRERSX0hBU0hfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogI2RlZmluZSBtbVRDUF9FRENfQ05UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIxNwogI2RlZmluZSBtbVRDUF9FRENfQ05UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1UQ1BfRURDX0NOVF9ORVcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMTgKKyNkZWZpbmUgbW1UQ1BfRURDX0NOVF9ORVdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAjZGVmaW5lIG1tVENfQ0ZHX0wxX0xPQURfUE9MSUNZMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjFhCiAjZGVmaW5lIG1tVENfQ0ZHX0wxX0xPQURfUE9MSUNZMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogI2RlZmluZSBtbVRDX0NGR19MMV9MT0FEX1BPTElDWTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIxYgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2djL2djXzlfMF9zaF9tYXNrLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvZ2MvZ2NfOV8wX3NoX21hc2suaAppbmRleCAyZTEyMTRiLi4wNjRjNGJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvZ2MvZ2NfOV8wX3NoX21hc2suaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvZ2MvZ2NfOV8wX3NoX21hc2suaApAQCAtMjEsNiArMjEsMTA1IEBACiAjaWZuZGVmIF9nY185XzBfU0hfTUFTS19IRUFERVIKICNkZWZpbmUgX2djXzlfMF9TSF9NQVNLX0hFQURFUgogCisvL0dDRUFfRURDX0NOVAorI2RlZmluZSBHQ0VBX0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEdDRUFfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBHQ0VBX0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEdDRUFfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBHQ0VBX0VEQ19DTlRfX1JSRVRfVEFHTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEdDRUFfRURDX0NOVF9fV1JFVF9UQUdNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBHQ0VBX0VEQ19DTlRfX0RSQU1SRF9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEdDRUFfRURDX0NOVF9fRFJBTVdSX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBHQ0VBX0VEQ19DTlRfX0lPV1JfQ01ETUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIEdDRUFfRURDX0NOVF9fSU9XUl9EQVRBTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNUkRfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNV1JfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19SUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19XUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNUkRfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19EUkFNV1JfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19JT1dSX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UX19JT1dSX0RBVEFNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKworI2RlZmluZSBHQ0VBX0VEQ19DTlQyX19HTUlSRF9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEdDRUFfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBHQ0VBX0VEQ19DTlQyX19HTUlXUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEdDRUFfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBHQ0VBX0VEQ19DTlQyX19HTUlSRF9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JV1JfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEdDRUFfRURDX0NOVDJfX01BTV9EME1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fTUFNX0QxTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBHQ0VBX0VEQ19DTlQyX19NQU1fRDJNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEdDRUFfRURDX0NOVDJfX01BTV9EM01FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JUkRfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JV1JfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JUkRfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fR01JV1JfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fTUFNX0QwTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fTUFNX0QxTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fTUFNX0QyTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgR0NFQV9FRENfQ05UMl9fTUFNX0QzTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKworLy8gYWRkcmVzc0Jsb2NrOiBnY19jcHBkZWMyCisvL0NQRl9FRENfVEFHX0NOVAorI2RlZmluZSBDUEZfRURDX1RBR19DTlRfX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1BGX0VEQ19UQUdfQ05UX19TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIENQRl9FRENfVEFHX0NOVF9fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIENQRl9FRENfVEFHX0NOVF9fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisvL0NQRl9FRENfUk9RX0NOVAorI2RlZmluZSBDUEZfRURDX1JPUV9DTlRfX0NPVU5UX01FMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1BGX0VEQ19ST1FfQ05UX19DT1VOVF9NRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIENQRl9FRENfUk9RX0NOVF9fQ09VTlRfTUUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIENQRl9FRENfUk9RX0NOVF9fQ09VTlRfTUUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisvL0NQR19FRENfVEFHX0NOVAorI2RlZmluZSBDUEdfRURDX1RBR19DTlRfX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1BHX0VEQ19UQUdfQ05UX19TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIENQR19FRENfVEFHX0NOVF9fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIENQR19FRENfVEFHX0NOVF9fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisvL0NQR19FRENfRE1BX0NOVAorI2RlZmluZSBDUEdfRURDX0RNQV9DTlRfX1JPUV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ1BHX0VEQ19ETUFfQ05UX19UQUdfREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIENQR19FRENfRE1BX0NOVF9fVEFHX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDUEdfRURDX0RNQV9DTlRfX1JPUV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDUEdfRURDX0RNQV9DTlRfX1RBR19ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBDUEdfRURDX0RNQV9DTlRfX1RBR19TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorLy9DUENfRURDX1NDUkFUQ0hfQ05UCisjZGVmaW5lIENQQ19FRENfU0NSQVRDSF9DTlRfX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDUENfRURDX1NDUkFUQ0hfQ05UX19TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ1BDX0VEQ19TQ1JBVENIX0NOVF9fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQ1BDX0VEQ19TQ1JBVENIX0NOVF9fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKy8vQ1BDX0VEQ19VQ09ERV9DTlQKKyNkZWZpbmUgQ1BDX0VEQ19VQ09ERV9DTlRfX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENQQ19FRENfVUNPREVfQ05UX19TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDUENfRURDX1VDT0RFX0NOVF9fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBDUENfRURDX1VDT0RFX0NOVF9fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9EQ19FRENfU1RBVEVfQ05UCisjZGVmaW5lIERDX0VEQ19TVEFURV9DTlRfX0NPVU5UX01FMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQ19FRENfU1RBVEVfQ05UX19DT1VOVF9NRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9EQ19FRENfQ1NJTlZPQ19DTlQKKyNkZWZpbmUgRENfRURDX0NTSU5WT0NfQ05UX19DT1VOVF9NRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERDX0VEQ19DU0lOVk9DX0NOVF9fQ09VTlRfTUUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL0RDX0VEQ19SRVNUT1JFX0NOVAorI2RlZmluZSBEQ19FRENfUkVTVE9SRV9DTlRfX0NPVU5UX01FMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgRENfRURDX1JFU1RPUkVfQ05UX19DT1VOVF9NRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKIAogLy8gYWRkcmVzc0Jsb2NrOiBnY19ncmJtZGVjCiAvL0dSQk1fQ05UTApAQCAtOTAzMywxMSArOTEzMiwxNSBAQAogI2RlZmluZSBUQ0NfRURDX0NOVDJfX1NSQ19GSUZPX05FWFRfUkFNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKICNkZWZpbmUgVENDX0VEQ19DTlQyX19MQVRFTkNZX0ZJRk9fTkVYVF9SQU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CiAjZGVmaW5lIFRDQ19FRENfQ05UMl9fQ0FDSEVfVEFHX1BST0JFX0ZJRk9fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBUQ0NfRURDX0NOVDJfX1dSUkVUX1RBR19XUklURV9SRVRVUk5fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVENDX0VEQ19DTlQyX19BVE9NSUNfUkVUVVJOX0JVRkZFUl9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCiAjZGVmaW5lIFRDQ19FRENfQ05UMl9fV1JJVEVfUkVUVVJOX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCiAjZGVmaW5lIFRDQ19FRENfQ05UMl9fV1JJVEVfQ0FDSEVfUkVBRF9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCiAjZGVmaW5lIFRDQ19FRENfQ05UMl9fU1JDX0ZJRk9fTkVYVF9SQU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCiAjZGVmaW5lIFRDQ19FRENfQ05UMl9fTEFURU5DWV9GSUZPX05FWFRfUkFNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCiAjZGVmaW5lIFRDQ19FRENfQ05UMl9fQ0FDSEVfVEFHX1BST0JFX0ZJRk9fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFRDQ19FRENfQ05UMl9fV1JSRVRfVEFHX1dSSVRFX1JFVFVSTl9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIFRDQ19FRENfQ05UMl9fQVRPTUlDX1JFVFVSTl9CVUZGRVJfU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCiAvL1RDQ19SRURVTkRBTkNZCiAjZGVmaW5lIFRDQ19SRURVTkRBTkNZX19NQ19TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAogI2RlZmluZSBUQ0NfUkVEVU5EQU5DWV9fTUNfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKQEAgLTI5ODE4LDYgKzI5OTIxLDYwIEBACiAjZGVmaW5lIERJRFRfREJSX1NUQUxMX0VWRU5UX0NPVU5URVJfX0RJRFRfU1RBTExfRVZFTlRfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAogI2RlZmluZSBESURUX0RCUl9TVEFMTF9FVkVOVF9DT1VOVEVSX19ESURUX1NUQUxMX0VWRU5UX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAogCisvL1RBX0VEQ19DTlQKKyNkZWZpbmUgVEFfRURDX0NOVF9fVEFfRlNfREZJRk9fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFRBX0VEQ19DTlRfX1RBX0ZTX0RGSUZPX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBUQV9FRENfQ05UX19UQV9GU19BRklGT19TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVEFfRURDX0NOVF9fVEFfRkxfTEZJRk9fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFRBX0VEQ19DTlRfX1RBX0ZYX0xGSUZPX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBUQV9FRENfQ05UX19UQV9GU19DRklGT19TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVEFfRURDX0NOVF9fVEFfRlNfREZJRk9fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgVEFfRURDX0NOVF9fVEFfRlNfREZJRk9fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgVEFfRURDX0NOVF9fVEFfRlNfQUZJRk9fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgVEFfRURDX0NOVF9fVEFfRkxfTEZJRk9fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgVEFfRURDX0NOVF9fVEFfRlhfTEZJRk9fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgVEFfRURDX0NOVF9fVEFfRlNfQ0ZJRk9fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKIAorLy9UQ0lfRURDX0NOVAorI2RlZmluZSBUQ0lfRURDX0NOVF9fV1JJVEVfUkFNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVENJX0VEQ19DTlRfX1dSSVRFX1JBTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKworLy9UQ1BfRURDX0NOVF9ORVcKKyNkZWZpbmUgVENQX0VEQ19DTlRfTkVXX19DQUNIRV9SQU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fQ0FDSEVfUkFNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBUQ1BfRURDX0NOVF9ORVdfX0xGSUZPX1JBTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVENQX0VEQ19DTlRfTkVXX19MRklGT19SQU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fQ01EX0ZJRk9fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBUQ1BfRURDX0NOVF9ORVdfX1ZNX0ZJRk9fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVENQX0VEQ19DTlRfTkVXX19WTV9GSUZPX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fREJfUkFNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBUQ1BfRURDX0NOVF9ORVdfX1VUQ0wxX0xGSUZPMF9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fVVRDTDFfTEZJRk8wX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVENQX0VEQ19DTlRfTkVXX19VVENMMV9MRklGTzFfU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBUQ1BfRURDX0NOVF9ORVdfX1VUQ0wxX0xGSUZPMV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fQ0FDSEVfUkFNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fQ0FDSEVfUkFNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fTEZJRk9fUkFNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fTEZJRk9fUkFNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fQ01EX0ZJRk9fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fVk1fRklGT19TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fVk1fRklGT19ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fREJfUkFNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fVVRDTDFfTEZJRk8wX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fVVRDTDFfTEZJRk8wX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fVVRDTDFfTEZJRk8xX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFRDUF9FRENfQ05UX05FV19fVVRDTDFfTEZJRk8xX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisKKy8vVERfRURDX0NOVAorI2RlZmluZSBURF9FRENfQ05UX19TU19GSUZPX0xPX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVERfRURDX0NOVF9fU1NfRklGT19MT19ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFREX0VEQ19DTlRfX1NTX0ZJRk9fSElfU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBURF9FRENfQ05UX19TU19GSUZPX0hJX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVERfRURDX0NOVF9fQ1NfRklGT19TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFREX0VEQ19DTlRfX1NTX0ZJRk9fTE9fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFREX0VEQ19DTlRfX1NTX0ZJRk9fTE9fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIFREX0VEQ19DTlRfX1NTX0ZJRk9fSElfU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFREX0VEQ19DTlRfX1NTX0ZJRk9fSElfREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIFREX0VEQ19DTlRfX0NTX0ZJRk9fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL21taHViL21taHViXzlfNF8wX29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL21taHViL21taHViXzlfNF8wX29mZnNldC5oCmluZGV4IDhmNTE1ODcuLmYyYWUzYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9tbWh1Yi9tbWh1Yl85XzRfMF9vZmZzZXQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbW1odWIvbW1odWJfOV80XzBfb2Zmc2V0LmgKQEAgLTIxLDYgKzIxLDI3IEBACiAjaWZuZGVmIF9tbWh1Yl85XzRfMF9PRkZTRVRfSEVBREVSCiAjZGVmaW5lIF9tbWh1Yl85XzRfMF9PRkZTRVRfSEVBREVSCiAKKy8qIE1NRUEgKi8KKyNkZWZpbmUgbW1NTUVBMF9TRFBfQVJCX0ZJTkFMX1ZHMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWUKKyNkZWZpbmUgbW1NTUVBMF9TRFBfQVJCX0ZJTkFMX1ZHMjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTU1FQTBfRURDX0NOVF9WRzIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjA2CisjZGVmaW5lIG1tTU1FQTBfRURDX0NOVF9WRzIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1NRUEwX0VEQ19DTlQyX1ZHMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwNworI2RlZmluZSBtbU1NRUEwX0VEQ19DTlQyX1ZHMjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NTUVBMF9FRENfTU9ERV9WRzIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTAKKyNkZWZpbmUgbW1NTUVBMF9FRENfTU9ERV9WRzIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTU1FQTBfRVJSX1NUQVRVU19WRzIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjExCisjZGVmaW5lIG1tTU1FQTBfRVJSX1NUQVRVU19WRzIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1NRUExX1NEUF9BUkJfRklOQUxfVkcyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZQorI2RlZmluZSBtbU1NRUExX1NEUF9BUkJfRklOQUxfVkcyMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NTUVBMV9FRENfQ05UX1ZHMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDYKKyNkZWZpbmUgbW1NTUVBMV9FRENfQ05UX1ZHMjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTU1FQTFfRURDX0NOVDJfVkcyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ3CisjZGVmaW5lIG1tTU1FQTFfRURDX0NOVDJfVkcyMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1NRUExX0VEQ19NT0RFX1ZHMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MAorI2RlZmluZSBtbU1NRUExX0VEQ19NT0RFX1ZHMjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NTUVBMV9FUlJfU1RBVFVTX1ZHMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTEKKyNkZWZpbmUgbW1NTUVBMV9FUlJfU1RBVFVTX1ZHMjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAKIC8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1zaGFyZWRwZmRlYwogLy8gYmFzZSBhZGRyZXNzOiAweDZhMDQwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbW1odWIvbW1odWJfOV80XzBfc2hfbWFzay5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL21taHViL21taHViXzlfNF8wX3NoX21hc2suaAppbmRleCAwYTZiMDcyLi5jMjQyNTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbW1odWIvbW1odWJfOV80XzBfc2hfbWFzay5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9tbWh1Yi9tbWh1Yl85XzRfMF9zaF9tYXNrLmgKQEAgLTIxLDYgKzIxLDIyOCBAQAogI2lmbmRlZiBfbW1odWJfOV80XzBfU0hfTUFTS19IRUFERVIKICNkZWZpbmUgX21taHViXzlfNF8wX1NIX01BU0tfSEVBREVSCiAKKy8vTU1FQTBfU0RQX0FSQl9GSU5BTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19EUkFNX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0lPX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19CVVJTVF9MSU1JVF9NVUxUSVBMSUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0VSUkVWRU5UX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fSEFMVFJFUV9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19EUkFNX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19JT19CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19CVVJTVF9MSU1JVF9NVUxUSVBMSUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19FUlJFVkVOVF9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19IQUxUUkVRX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorLy9NTUVBMF9FRENfQ05UCisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX1JSRVRfVEFHTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fV1JFVF9UQUdNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX0RSQU1SRF9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVdSX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX0lPV1JfQ01ETUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fSU9XUl9EQVRBTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNUkRfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNV1JfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19SUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19XUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNUkRfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNV1JfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19JT1dSX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19JT1dSX0RBVEFNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9NTUVBMF9FRENfQ05UMgorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JUkRfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0VEQ19DTlQyX19HTUlXUl9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JUkRfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVdSX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0VEQ19DTlQyX19NQU1fRDBNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX01BTV9EMU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fTUFNX0QyTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0VEQ19DTlQyX19NQU1fRDNNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVJEX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVdSX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX01BTV9EME1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX01BTV9EMU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX01BTV9EMk1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX01BTV9EM01FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKy8vTU1FQTBfRURDX01PREUKKyNkZWZpbmUgTU1FQTBfRURDX01PREVfX0NPVU5UX0ZFRF9PVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9FRENfTU9ERV9fR0FURV9GVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEwX0VEQ19NT0RFX19ERURfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfRURDX01PREVfX1BST1BfRkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMF9FRENfTU9ERV9fQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEwX0VEQ19NT0RFX19DT1VOVF9GRURfT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUEwX0VEQ19NT0RFX19HQVRFX0ZVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUEwX0VEQ19NT0RFX19ERURfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEwX0VEQ19NT0RFX19QUk9QX0ZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0VEQ19NT0RFX19CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEwX0VSUl9TVEFUVVMKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fU0RQX1JEUlNQX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX1NEUF9XUlJTUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVNUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFQQVJJVFlfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX0NMRUFSX0VSUk9SX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMF9FUlJfU1RBVFVTX19CVVNZX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fRlVFX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX1NEUF9XUlJTUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBUEFSSVRZX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX0NMRUFSX0VSUk9SX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX0JVU1lfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX0ZVRV9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL01NRUExX1NEUF9BUkJfRklOQUwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fRFJBTV9CVVJTVF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0ZJTkFMX19JT19CVVJTVF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fQlVSU1RfTElNSVRfTVVMVElQTElFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0ZJTkFMX19FUlJFVkVOVF9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX0hBTFRSRVFfT05fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fRFJBTV9CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fSU9fQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fQlVSU1RfTElNSVRfTVVMVElQTElFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fRVJSRVZFTlRfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fSEFMVFJFUV9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKy8vTU1FQTFfRURDX0NOVAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNUkRfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMV9FRENfQ05UX19SUkVUX1RBR01FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fUlJFVF9UQUdNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX1dSRVRfVEFHTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fV1JFVF9UQUdNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNUkRfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX0RSQU1XUl9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fSU9SRF9DTURNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19JT1dSX0NNRE1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX0lPV1JfREFUQU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fUlJFVF9UQUdNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fUlJFVF9UQUdNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fV1JFVF9UQUdNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fV1JFVF9UQUdNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVJEX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVdSX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fSU9SRF9DTURNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fSU9XUl9DTURNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fSU9XUl9EQVRBTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vTU1FQTFfRURDX0NOVDIKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlSRF9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9FRENfQ05UMl9fR01JV1JfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDJfX0dNSVJEX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9FRENfQ05UMl9fTUFNX0QwTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19NQU1fRDFNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDJfX01BTV9EMk1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9FRENfQ05UMl9fTUFNX0QzTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlSRF9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlSRF9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlSRF9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19NQU1fRDBNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19NQU1fRDFNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19NQU1fRDJNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19NQU1fRDNNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisvL01NRUExX0VEQ19NT0RFCisjZGVmaW5lIE1NRUExX0VEQ19NT0RFX19DT1VOVF9GRURfT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfRURDX01PREVfX0dBVEVfRlVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fREVEX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0VEQ19NT0RFX19QUk9QX0ZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTFfRURDX01PREVfX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fQ09VTlRfRkVEX09VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fR0FURV9GVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fREVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fUFJPUF9GRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMV9FUlJfU1RBVFVTCisjZGVmaW5lIE1NRUExX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfV1JSU1BfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFTVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBUEFSSVRZX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19DTEVBUl9FUlJPUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTFfRVJSX1NUQVRVU19fQlVTWV9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0VSUl9TVEFUVVNfX0ZVRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfUkRSU1BfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfV1JSU1BfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVNUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVBBUklUWV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19DTEVBUl9FUlJPUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19CVVNZX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19GVUVfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAogCiAvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3Ztc2hhcmVkcGZkZWMKIC8vTUNfVk1fWEdNSV9MRkJfQ05UTApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL21taHViL21taHViXzlfNF8xX2RlZmF1bHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9tbWh1Yi9tbWh1Yl85XzRfMV9kZWZhdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM2MzFjOAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9tbWh1Yi9tbWh1Yl85XzRfMV9kZWZhdWx0LmgKQEAgLTAsMCArMSwzOTMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9tbWh1Yl85XzRfMV9ERUZBVUxUX0hFQURFUgorI2RlZmluZSBfbW1odWJfOV80XzFfREVGQVVMVF9IRUFERVIKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzAKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9SRF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCMF9SRF9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCMF9SRF9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCMF9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMF9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9SRF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCMF9SRF9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMF9XUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCMF9XUl9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCMF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMF9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMF9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMF9XUl9EQVRBX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMF9XUl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCMF9XUl9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCMF9XUl9EQVRBX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjA2MDYwNzAKKyNkZWZpbmUgbW1EQUdCMF9XUl9NSVNDX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3OGRjODgKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9EQUdCX0RMWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Y2Y3YzFmZmEKKyNkZWZpbmUgbW1EQUdCMF9DTlRMX01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYzAwMDAKKyNkZWZpbmUgbW1EQUdCMF9GSUZPX0VNUFRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9GSUZPX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9XUl9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRF9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzEKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9SRF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCMV9SRF9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCMV9SRF9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCMV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9SRF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCMV9SRF9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMV9XUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCMV9XUl9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMV9BVENWTV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMV9XUl9EQVRBX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMV9XUl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCMV9XUl9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCMV9XUl9EQVRBX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjA2MDYwNzAKKyNkZWZpbmUgbW1EQUdCMV9XUl9NSVNDX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3OGRjODgKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9EQUdCX0RMWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Y2Y3YzFmZmEKKyNkZWZpbmUgbW1EQUdCMV9DTlRMX01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYzAwMDAKKyNkZWZpbmUgbW1EQUdCMV9GSUZPX0VNUFRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9GSUZPX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9XUl9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRF9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzIKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9SRF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCMl9SRF9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCMl9SRF9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMl9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9SRF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCMl9SRF9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCMl9XUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCMl9XUl9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCMl9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMl9XUl9EQVRBX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCMl9XUl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCMl9XUl9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCMl9XUl9EQVRBX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjA2MDYwNzAKKyNkZWZpbmUgbW1EQUdCMl9XUl9NSVNDX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3OGRjODgKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9EQUdCX0RMWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Y2Y3YzFmZmEKKyNkZWZpbmUgbW1EQUdCMl9DTlRMX01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYzAwMDAKKyNkZWZpbmUgbW1EQUdCMl9GSUZPX0VNUFRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9GSUZPX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9XUl9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRF9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzMKKyNkZWZpbmUgbW1EQUdCM19SRENMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRENMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19SRF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCM19SRF9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCM19SRF9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCM19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCM19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCM19SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCM19BVENWTV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCM19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCM19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19SRF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCM19SRF9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCM19XUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCM19XUl9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCM19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCM19XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCM19MMVRMQl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCM19XUl9EQVRBX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1EQUdCM19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCM19XUl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCM19XUl9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCM19XUl9EQVRBX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjA2MDYwNzAKKyNkZWZpbmUgbW1EQUdCM19XUl9NSVNDX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3OGRjODgKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9EQlVTX0dPX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19EQUdCX0RMWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Y2Y3YzFmZmEKKyNkZWZpbmUgbW1EQUdCM19DTlRMX01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYzAwMDAKKyNkZWZpbmUgbW1EQUdCM19GSUZPX0VNUFRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19GSUZPX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19XUl9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRF9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzQKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9SRF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCNF9SRF9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCNF9SRF9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCNF9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNF9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9SRF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCNF9SRF9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNF9XUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCNF9XUl9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNF9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNF9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNF9XUl9EQVRBX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNF9XUl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCNF9XUl9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCNF9XUl9EQVRBX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjA2MDYwNzAKKyNkZWZpbmUgbW1EQUdCNF9XUl9NSVNDX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3OGRjODgKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9EQUdCX0RMWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Y2Y3YzFmZmEKKyNkZWZpbmUgbW1EQUdCNF9DTlRMX01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYzAwMDAKKyNkZWZpbmUgbW1EQUdCNF9GSUZPX0VNUFRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9GSUZPX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9XUl9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRF9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2VhX21tZWFkZWMwCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZTI1CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZTI1CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9QQUdFX0JVUlNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAyMDAwCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZmZmCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZmZmCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTBfR01JX1BBR0VfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAyMDAwCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1HTUlfSE9MRV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ19CQU5LX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM2NmCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ19NSVNDX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfUk1fU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfUk1fU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfQ09NQklORV9GTFVTSF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3Nzc3CisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfQ09NQklORV9GTFVTSF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3Nzc3CisjZGVmaW5lIG1tTU1FQTBfSU9fR1JPVVBfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMDMxZjAzCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDkyCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDkyCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTBfU0RQX0FSQl9EUkFNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAxZTQwCisjZGVmaW5lIG1tTU1FQTBfU0RQX0FSQl9HTUlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAxZTQwCisjZGVmaW5lIG1tTU1FQTBfU0RQX0FSQl9GSU5BTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3ZmZmCisjZGVmaW5lIG1tTU1FQTBfU0RQX0RSQU1fUFJJT1JJVFlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfU0RQX0dNSV9QUklPUklUWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfU0RQX0lPX1BSSU9SSVRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfU0RQX0NSRURJVFNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMWJmCisjZGVmaW5lIG1tTU1FQTBfU0RQX1RBR19SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfU0RQX1RBR19SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfU0RQX1ZDRF9SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfU0RQX1ZDRF9SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfU0RQX1JFUV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFmCisjZGVmaW5lIG1tTU1FQTBfTUlTQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjMDBhMDcwCisjZGVmaW5lIG1tTU1FQTBfTEFURU5DWV9TQU1QTElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfUEVSRkNPVU5URVJfTE9fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfUEVSRkNPVU5URVJfSElfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfUEVSRkNPVU5URVIwX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfUEVSRkNPVU5URVIxX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRURDX0NOVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRURDX0NOVDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVExBX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVExCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVEwyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVEwyQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVEwyQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQ0dUVF9DTEtfQ1RSTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIG1tTU1FQTBfRURDX01PREVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRVJSX1NUQVRVU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwCisjZGVmaW5lIG1tTU1FQTBfTUlTQzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ19TRUxFQ1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTBfRURDX0NOVDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9lYV9tbWVhZGVjMQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGUyNQorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGUyNQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUExX0RSQU1fUEFHRV9CVVJTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMjAwMAorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGZmZgorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGZmZgorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUExX0dNSV9QQUdFX0JVUlNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMjAwMAorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX09GRlNFVF9BRERSMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX09GRlNFVF9BRERSM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX09GRlNFVF9BRERSNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNRFJBTV9IT0xFX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNR01JX0hPTEVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNfQkFOS19DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNjZgorI2RlZmluZSBtbU1NRUExX0FERFJERUNfTUlTQ19DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZjAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfTUFTS19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfTUFTS19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfU0VMMl9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfU0VMMl9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMwX1JNX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX1JNX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfTUFTS19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfTUFTS19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfU0VMMl9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfU0VMMl9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMxX1JNX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX1JNX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfTUFTS19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfTUFTS19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfU0VMMl9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfU0VMMl9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUExX0FERFJERUMyX1JNX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX1JNX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMAorI2RlZmluZSBtbU1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUExX0lPX1JEX0NPTUJJTkVfRkxVU0hfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzc3NworI2RlZmluZSBtbU1NRUExX0lPX1dSX0NPTUJJTkVfRkxVU0hfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzc3NworI2RlZmluZSBtbU1NRUExX0lPX0dST1VQX0JVUlNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjAzMWYwMworI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ5MgorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ5MgorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUExX1NEUF9BUkJfRFJBTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMWU0MAorI2RlZmluZSBtbU1NRUExX1NEUF9BUkJfR01JX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMWU0MAorI2RlZmluZSBtbU1NRUExX1NEUF9BUkJfRklOQUxfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN2ZmZgorI2RlZmluZSBtbU1NRUExX1NEUF9EUkFNX1BSSU9SSVRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1NEUF9HTUlfUFJJT1JJVFlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1NEUF9JT19QUklPUklUWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1NEUF9DUkVESVRTX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDFiZgorI2RlZmluZSBtbU1NRUExX1NEUF9UQUdfUkVTRVJWRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1NEUF9UQUdfUkVTRVJWRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1NEUF9WQ0NfUkVTRVJWRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1NEUF9WQ0NfUkVTRVJWRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1NEUF9WQ0RfUkVTRVJWRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1NEUF9WQ0RfUkVTRVJWRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1NEUF9SRVFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxZgorI2RlZmluZSBtbU1NRUExX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYzAwYTA3MAorI2RlZmluZSBtbU1NRUExX0xBVEVOQ1lfU0FNUExJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1BFUkZDT1VOVEVSX0xPX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1BFUkZDT1VOVEVSX0hJX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1BFUkZDT1VOVEVSMF9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1BFUkZDT1VOVEVSMV9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0VEQ19DTlRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0VEQ19DTlQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMMkFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMMkJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0NHVFRfQ0xLX0NUUkxfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMAorI2RlZmluZSBtbU1NRUExX0VEQ19NT0RFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0VSUl9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMAorI2RlZmluZSBtbU1NRUExX01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0FERFJERUNfU0VMRUNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUExX0VEQ19DTlQzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZWFfbW1lYWRlYzIKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTU1NTU1NTUKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTU1NTU1NTUKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTU1NTU1NTUKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTU1NTU1NTUKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBlMjUKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBlMjUKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTZkYjQ0NDQKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTZkYjQ0NDQKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1BBR0VfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDIwMDAKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMGZkYjYKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMGZkYjYKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBmZmYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBmZmYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTZkYjQ0NDQKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTZkYjQ0NDQKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUEFHRV9CVVJTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDIwMDAKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMGZkYjYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMGZkYjYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STURSQU1fSE9MRV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STUdNSV9IT0xFX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDX0JBTktfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzY2YKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDX01JU0NfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmYwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9QQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9QQzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX01BU0tfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX01BU0tfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX0NGR19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX0NGR19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX1NFTDJfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX1NFTDJfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9STV9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9STV9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX01BU0tfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX01BU0tfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX0NGR19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX0NGR19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX1NFTDJfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9STV9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9STV9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX01BU0tfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX01BU0tfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX1NFTDJfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9STV9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9STV9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTRlNGU0ZTQKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTRlNGU0ZTQKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTRlNGU0ZTQKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTRlNGU0ZTQKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9DT01CSU5FX0ZMVVNIX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc3NzcKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9DT01CSU5FX0ZMVVNIX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc3NzcKKyNkZWZpbmUgbW1NTUVBMl9JT19HUk9VUF9CVVJTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYwMzFmMDMKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0OTIKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0OTIKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBMl9TRFBfQVJCX0RSQU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDFlNDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfQVJCX0dNSV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDFlNDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfQVJCX0ZJTkFMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdmZmYKKyNkZWZpbmUgbW1NTUVBMl9TRFBfRFJBTV9QUklPUklUWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfR01JX1BSSU9SSVRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfSU9fUFJJT1JJVFlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfQ1JFRElUU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAxYmYKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVEFHX1JFU0VSVkUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVEFHX1JFU0VSVkUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVkNDX1JFU0VSVkUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVkNDX1JFU0VSVkUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVkNEX1JFU0VSVkUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVkNEX1JFU0VSVkUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9TRFBfUkVRX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMWYKKyNkZWZpbmUgbW1NTUVBMl9NSVNDX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGMwMGEwNzAKKyNkZWZpbmUgbW1NTUVBMl9MQVRFTkNZX1NBTVBMSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9FRENfQ05UX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9FRENfQ05UMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTEFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTEJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTDJBX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTDJCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1NTUVBMl9FRENfTU9ERV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9FUlJfU1RBVFVTX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDAKKyNkZWZpbmUgbW1NTUVBMl9NSVNDMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDX1NFTEVDVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBMl9FRENfQ05UM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2VhX21tZWFkZWMzCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZTI1CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZTI1CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9QQUdFX0JVUlNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAyMDAwCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZmZmCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZmZmCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTNfR01JX1BBR0VfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAyMDAwCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1HTUlfSE9MRV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ19CQU5LX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM2NmCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ19NSVNDX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfUk1fU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfUk1fU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfQ09NQklORV9GTFVTSF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3Nzc3CisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfQ09NQklORV9GTFVTSF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3Nzc3CisjZGVmaW5lIG1tTU1FQTNfSU9fR1JPVVBfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMDMxZjAzCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDkyCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDkyCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTNfU0RQX0FSQl9EUkFNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAxZTQwCisjZGVmaW5lIG1tTU1FQTNfU0RQX0FSQl9HTUlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAxZTQwCisjZGVmaW5lIG1tTU1FQTNfU0RQX0FSQl9GSU5BTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3ZmZmCisjZGVmaW5lIG1tTU1FQTNfU0RQX0RSQU1fUFJJT1JJVFlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfU0RQX0dNSV9QUklPUklUWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfU0RQX0lPX1BSSU9SSVRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfU0RQX0NSRURJVFNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMWJmCisjZGVmaW5lIG1tTU1FQTNfU0RQX1RBR19SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfU0RQX1RBR19SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfU0RQX1ZDRF9SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfU0RQX1ZDRF9SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfU0RQX1JFUV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFmCisjZGVmaW5lIG1tTU1FQTNfTUlTQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjMDBhMDcwCisjZGVmaW5lIG1tTU1FQTNfTEFURU5DWV9TQU1QTElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfUEVSRkNPVU5URVJfTE9fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfUEVSRkNPVU5URVJfSElfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfUEVSRkNPVU5URVIwX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfUEVSRkNPVU5URVIxX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRURDX0NOVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRURDX0NOVDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVExBX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVExCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVEwyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVEwyQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVEwyQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQ0dUVF9DTEtfQ1RSTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIG1tTU1FQTNfRURDX01PREVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRVJSX1NUQVRVU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwCisjZGVmaW5lIG1tTU1FQTNfTUlTQzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ19TRUxFQ1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTNfRURDX0NOVDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9lYV9tbWVhZGVjNAorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGUyNQorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGUyNQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUE0X0RSQU1fUEFHRV9CVVJTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMjAwMAorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGZmZgorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGZmZgorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUE0X0dNSV9QQUdFX0JVUlNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMjAwMAorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNRFJBTV9IT0xFX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNR01JX0hPTEVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNfQkFOS19DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNjZgorI2RlZmluZSBtbU1NRUE0X0FERFJERUNfTUlTQ19DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZjAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfTUFTS19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfTUFTS19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfU0VMMl9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfU0VMMl9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfTUFTS19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfTUFTS19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfU0VMMl9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfU0VMMl9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX1JNX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX1JNX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfTUFTS19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfTUFTS19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfU0VMMl9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfU0VMMl9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMAorI2RlZmluZSBtbU1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUE0X0lPX1JEX0NPTUJJTkVfRkxVU0hfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzc3NworI2RlZmluZSBtbU1NRUE0X0lPX1dSX0NPTUJJTkVfRkxVU0hfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzc3NworI2RlZmluZSBtbU1NRUE0X0lPX0dST1VQX0JVUlNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjAzMWYwMworI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ5MgorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ5MgorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE0X1NEUF9BUkJfRFJBTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMWU0MAorI2RlZmluZSBtbU1NRUE0X1NEUF9BUkJfR01JX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMWU0MAorI2RlZmluZSBtbU1NRUE0X1NEUF9BUkJfRklOQUxfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN2ZmZgorI2RlZmluZSBtbU1NRUE0X1NEUF9EUkFNX1BSSU9SSVRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1NEUF9HTUlfUFJJT1JJVFlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1NEUF9JT19QUklPUklUWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1NEUF9DUkVESVRTX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDFiZgorI2RlZmluZSBtbU1NRUE0X1NEUF9UQUdfUkVTRVJWRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1NEUF9UQUdfUkVTRVJWRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1NEUF9WQ0NfUkVTRVJWRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1NEUF9WQ0NfUkVTRVJWRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1NEUF9WQ0RfUkVTRVJWRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1NEUF9WQ0RfUkVTRVJWRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1NEUF9SRVFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxZgorI2RlZmluZSBtbU1NRUE0X01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYzAwYTA3MAorI2RlZmluZSBtbU1NRUE0X0xBVEVOQ1lfU0FNUExJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1BFUkZDT1VOVEVSX0xPX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1BFUkZDT1VOVEVSX0hJX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1BFUkZDT1VOVEVSMF9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1BFUkZDT1VOVEVSMV9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0VEQ19DTlRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0VEQ19DTlQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMMkFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMMkJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0NHVFRfQ0xLX0NUUkxfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMAorI2RlZmluZSBtbU1NRUE0X0VEQ19NT0RFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0VSUl9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMAorI2RlZmluZSBtbU1NRUE0X01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNfU0VMRUNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE0X0VEQ19DTlQzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfcGN0bGRlYzAKKyNkZWZpbmUgbW1QQ1RMMF9DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTEwNDAKKyNkZWZpbmUgbW1QQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX0lCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfQ0ZHX0RBR0JfQlVTWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfQ0ZHX0RBR0JfQlVTWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfQ0ZHX0RBR0JfQlVTWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfQ0ZHX0RBR0JfQlVTWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfQ0ZHX0RBR0JfQlVTWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9NSVNDX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTEwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfTUlTQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfTUlTQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfTUlTQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfTUlTQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfTUlTQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9SRU5HX0VYRUNVVEVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfUkVOR19FWEVDVVRFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfUkVOR19FWEVDVVRFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfUkVOR19FWEVDVVRFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfUkVOR19FWEVDVVRFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfUkVOR19FWEVDVVRFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9SRU5HX1JBTV9JTkRFWF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9SRU5HX1JBTV9EQVRBX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfUkVOR19SQU1fSU5ERVhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfUkVOR19SQU1fREFUQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfUkVOR19SQU1fSU5ERVhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfUkVOR19SQU1fREFUQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfUkVOR19SQU1fSU5ERVhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfUkVOR19SQU1fREFUQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfUkVOR19SQU1fSU5ERVhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfUkVOR19SQU1fREFUQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfUkVOR19SQU1fSU5ERVhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfUkVOR19SQU1fREFUQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2wxdGxiX3ZtbDFkZWMKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCMF9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCMV9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCMl9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCM19TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCNF9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCNV9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCNl9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCN19TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2wxdGxiX3ZtbDFwbGRlYworI2RlZmluZSBtbVZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfbDF0bGJfdm1sMXByZGVjCisjZGVmaW5lIG1tVk1MMVBSMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMVBSMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl9hdGNsMmRlYworI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxYzBjOQorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NOVEwyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDEwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NOVEwzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFmOAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX1NUQVRVU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX1NUQVRVUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX1NUQVRVUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX01JU0NfQ0dfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX01FTV9QT1dFUl9MU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwOAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NHVFRfQ0xLX0NUUkxfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9JTkRFWF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzJNX0RTTV9JTkRFWF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzJNX0RTTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NOVEw0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1sMnBmZGVjCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwNjAyCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DTlRMMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DTlRMM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMTAwMDA3CisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9EVU1NWV9QQUdFX0ZBVUxUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDkwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9EVU1NWV9QQUdFX0ZBVUxUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9EVU1NWV9QQUdFX0ZBVUxUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmZmZmZmZjCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGEwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX01NX0NOVEwzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX01NX0NOVEw0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9ISUdIX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9ISUdIX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUX0lERU5USVRZX1BIWVNJQ0FMX09GRlNFVF9MTzMyX0RFRkFVTFQgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUX0lERU5USVRZX1BIWVNJQ0FMX09GRlNFVF9ISTMyX0RFRkFVTFQgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DTlRMNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMGMxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bWwydmNkZWMKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmZlODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9TRU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YzAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BQ0tfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3Ztc2hhcmVkcGZkZWMKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9NTUlPQkFTRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9NTUlPTElNSVRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9QQ0lfQ1RSTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9QQ0lfQVJCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9UT1BfT0ZfRFJBTV9TTE9UMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9MT1dFUl9UT1BfT0ZfRFJBTTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9VUFBFUl9UT1BfT0ZfRFJBTTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9GQl9PRkZTRVRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX0xTQl9ERUZBVUxUICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX01TQl9ERUZBVUxUICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9TVEVFUklOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19TSEFSRURfVklSVF9SRVNFVF9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19NRU1fUE9XRVJfTFNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDgKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX1NUQVJUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX0VORF9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9BUFRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19FTkRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZmZmZmYKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19MT0NLX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9YR01JX0xGQl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9YR01JX0xGQl9TSVpFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9DQUNIRUFCTEVfRFJBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3Ztc2hhcmVkdmNkZWMKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9GQl9MT0NBVElPTl9CQVNFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9GQl9MT0NBVElPTl9UT1BfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9BR1BfVE9QX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9BR1BfQk9UX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9BR1BfQkFTRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDI1MDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3Ztc2hhcmVkaHZkZWMKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9JT01NVV9NTUlPX0NOVFJMXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18wX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18zX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8wX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8zX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9JT01NVV9DT05UUk9MX1JFR0lTVEVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9JT01NVV9QRVJGT1JNQU5DRV9PUFRJTUlaQVRJT05fQ09OVFJPTF9SRUdJU1RFUl9ERUZBVUxUIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19TSEFSRURfQUNUSVZFX0ZDTl9JRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX2F0Y2wycGZjbnRyZGVjCisjZGVmaW5lIG1tQVRDTDJQRkNOVFIwX0FUQ19MMl9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tQVRDTDJQRkNOVFIwX0FUQ19MMl9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl9hdGNsMnBmY250bGRlYworI2RlZmluZSBtbUFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1sMnBsZGVjCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bWwycHJkZWMKKyNkZWZpbmUgbW1WTUwyUFIwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0xPX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUFIwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0hJX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzUKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9SRF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCNV9SRF9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCNV9SRF9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9SRF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCNV9SRF9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNV9XUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCNV9XUl9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCNV9XUl9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCNV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNV9BVENWTV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNV9XUl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCNV9XUl9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjA2MDYwNzAKKyNkZWZpbmUgbW1EQUdCNV9XUl9NSVNDX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3OGRjODgKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9EQUdCX0RMWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Y2Y3YzFmZmEKKyNkZWZpbmUgbW1EQUdCNV9DTlRMX01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYzAwMDAKKyNkZWZpbmUgbW1EQUdCNV9GSUZPX0VNUFRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9GSUZPX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9XUl9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRF9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzYKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9SRF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCNl9SRF9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCNl9SRF9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCNl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNl9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9SRF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCNl9SRF9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCNl9XUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCNl9XUl9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCNl9XUl9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCNl9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCNl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCNl9XUl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCNl9XUl9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjA2MDYwNzAKKyNkZWZpbmUgbW1EQUdCNl9XUl9NSVNDX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3OGRjODgKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9EQUdCX0RMWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Y2Y3YzFmZmEKKyNkZWZpbmUgbW1EQUdCNl9DTlRMX01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYzAwMDAKKyNkZWZpbmUgbW1EQUdCNl9GSUZPX0VNUFRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9GSUZPX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9XUl9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRF9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzcKKyNkZWZpbmUgbW1EQUdCN19SRENMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRENMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19SRF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCN19SRF9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCN19SRF9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCN19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCN19SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCN19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19SRF9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCN19SRF9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmU1ZmUwZjkKKyNkZWZpbmUgbW1EQUdCN19XUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MjdkZjgKKyNkZWZpbmUgbW1EQUdCN19XUl9HTUlfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwNDUKKyNkZWZpbmUgbW1EQUdCN19XUl9BRERSX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzkKKyNkZWZpbmUgbW1EQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCN19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCN19XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCN19MMVRMQl9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCN19BVENWTV9XUl9DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1EQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODg4ODg4ODgKKyNkZWZpbmUgbW1EQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0RBR0JfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExMTExMTEKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzZfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzdfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYyZmYwODIKKyNkZWZpbmUgbW1EQUdCN19XUl9DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjlhMGU0MDgKKyNkZWZpbmUgbW1EQUdCN19XUl9UTEJfQ1JFRElUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmY3YmRlZjcKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjA2MDYwNzAKKyNkZWZpbmUgbW1EQUdCN19XUl9NSVNDX0NSRURJVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3OGRjODgKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9BU0tfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9HT19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9HQkxTRU5EX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9UTEJfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9PQVJCX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9PU0RfUEVORElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9EQlVTX0dPX1BFTkRJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19EQUdCX0RMWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19DTlRMX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Y2Y3YzFmZmEKKyNkZWZpbmUgbW1EQUdCN19DTlRMX01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYzAwMDAKKyNkZWZpbmUgbW1EQUdCN19GSUZPX0VNUFRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19GSUZPX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19XUl9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRF9DUkVESVRTX0ZVTExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2VhX21tZWFkZWM1CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZTI1CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZTI1CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9QQUdFX0JVUlNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAyMDAwCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZmZmCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZmZmCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2ZGI0NDQ0CisjZGVmaW5lIG1tTU1FQTVfR01JX1BBR0VfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAyMDAwCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBmZGI2CisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1HTUlfSE9MRV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ19CQU5LX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM2NmCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ19NSVNDX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUwNDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDg3NjU0MzIxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGE5ODc2NTQzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGU0ZTRlNGU0CisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfQ09NQklORV9GTFVTSF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3Nzc3CisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfQ09NQklORV9GTFVTSF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3Nzc3CisjZGVmaW5lIG1tTU1FQTVfSU9fR1JPVVBfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmMDMxZjAzCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGI2MjQ5CisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwZGI2CisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwOTI0CisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDkyCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDkyCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNmM2YzZjNmCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdmN2Y3ZjdmCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tTU1FQTVfU0RQX0FSQl9EUkFNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAxZTQwCisjZGVmaW5lIG1tTU1FQTVfU0RQX0FSQl9HTUlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAxZTQwCisjZGVmaW5lIG1tTU1FQTVfU0RQX0FSQl9GSU5BTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3ZmZmCisjZGVmaW5lIG1tTU1FQTVfU0RQX0RSQU1fUFJJT1JJVFlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfU0RQX0dNSV9QUklPUklUWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfU0RQX0lPX1BSSU9SSVRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfU0RQX0NSRURJVFNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMWJmCisjZGVmaW5lIG1tTU1FQTVfU0RQX1RBR19SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfU0RQX1RBR19SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfU0RQX1ZDRF9SRVNFUlZFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfU0RQX1ZDRF9SRVNFUlZFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfU0RQX1JFUV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFmCisjZGVmaW5lIG1tTU1FQTVfTUlTQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBjMDBhMDcwCisjZGVmaW5lIG1tTU1FQTVfTEFURU5DWV9TQU1QTElOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfUEVSRkNPVU5URVJfTE9fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfUEVSRkNPVU5URVJfSElfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfUEVSRkNPVU5URVIwX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfUEVSRkNPVU5URVIxX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRURDX0NOVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRURDX0NOVDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVExBX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVExCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVEwyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVEwyQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVEwyQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQ0dUVF9DTEtfQ1RSTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIG1tTU1FQTVfRURDX01PREVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRVJSX1NUQVRVU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwCisjZGVmaW5lIG1tTU1FQTVfTUlTQzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ19TRUxFQ1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tTU1FQTVfRURDX0NOVDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9lYV9tbWVhZGVjNgorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTU1NTU1NQorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGUyNQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGUyNQorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUE2X0RSQU1fUEFHRV9CVVJTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMjAwMAorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGZmZgorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9HUlAyVkNfTUFQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGZmZgorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9MQVpZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9DQU1fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNmRiNDQ0NAorI2RlZmluZSBtbU1NRUE2X0dNSV9QQUdFX0JVUlNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMjAwMAorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwZmRiNgorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNRFJBTV9IT0xFX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNR01JX0hPTEVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNfQkFOS19DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNjZgorI2RlZmluZSBtbU1NRUE2X0FERFJERUNfTUlTQ19DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZjAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfTUFTS19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfTUFTS19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfU0VMMl9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfU0VMMl9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfTUFTS19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfTUFTS19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfU0VMMl9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfU0VMMl9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX1JNX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX1JNX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfTUFTS19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfTUFTS19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1MDQwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfU0VMX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfU0VMX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfU0VMMl9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfU0VMMl9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NzY1NDMyMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhOTg3NjU0MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMAorI2RlZmluZSBtbU1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlNGU0ZTRlNAorI2RlZmluZSBtbU1NRUE2X0lPX1JEX0NPTUJJTkVfRkxVU0hfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzc3NworI2RlZmluZSBtbU1NRUE2X0lPX1dSX0NPTUJJTkVfRkxVU0hfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzc3NworI2RlZmluZSBtbU1NRUE2X0lPX0dST1VQX0JVUlNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZjAzMWYwMworI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiNjI0OQorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMGRiNgorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDkyNAorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ5MgorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ5MgorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjNmM2YzZgorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZjdmN2Y3ZgorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZmZgorI2RlZmluZSBtbU1NRUE2X1NEUF9BUkJfRFJBTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMWU0MAorI2RlZmluZSBtbU1NRUE2X1NEUF9BUkJfR01JX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMWU0MAorI2RlZmluZSBtbU1NRUE2X1NEUF9BUkJfRklOQUxfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN2ZmZgorI2RlZmluZSBtbU1NRUE2X1NEUF9EUkFNX1BSSU9SSVRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1NEUF9HTUlfUFJJT1JJVFlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1NEUF9JT19QUklPUklUWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1NEUF9DUkVESVRTX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDFiZgorI2RlZmluZSBtbU1NRUE2X1NEUF9UQUdfUkVTRVJWRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1NEUF9UQUdfUkVTRVJWRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1NEUF9WQ0NfUkVTRVJWRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1NEUF9WQ0NfUkVTRVJWRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1NEUF9WQ0RfUkVTRVJWRTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1NEUF9WQ0RfUkVTRVJWRTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1NEUF9SRVFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxZgorI2RlZmluZSBtbU1NRUE2X01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYzAwYTA3MAorI2RlZmluZSBtbU1NRUE2X0xBVEVOQ1lfU0FNUExJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1BFUkZDT1VOVEVSX0xPX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1BFUkZDT1VOVEVSX0hJX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1BFUkZDT1VOVEVSMF9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1BFUkZDT1VOVEVSMV9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0VEQ19DTlRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0VEQ19DTlQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMMkFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMMkJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0NHVFRfQ0xLX0NUUkxfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMAorI2RlZmluZSBtbU1NRUE2X0VEQ19NT0RFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0VSUl9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMAorI2RlZmluZSBtbU1NRUE2X01JU0MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNfU0VMRUNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbU1NRUE2X0VEQ19DTlQzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZWFfbW1lYWRlYzcKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTU1NTU1NTUKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTU1NTU1NTUKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTU1NTU1NTUKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTU1NTU1NTUKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBlMjUKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX0dSUDJWQ19NQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBlMjUKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX0xBWllfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTZkYjQ0NDQKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX0NBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTZkYjQ0NDQKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1BBR0VfQlVSU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDIwMDAKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9BR0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9RVUVVSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9GSVhFRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMGZkYjYKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9VUkdFTkNZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMGZkYjYKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBmZmYKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfR1JQMlZDX01BUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBmZmYKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfTEFaWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTZkYjQ0NDQKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfQ0FNX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTZkYjQ0NDQKKyNkZWZpbmUgbW1NTUVBN19HTUlfUEFHRV9CVVJTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDIwMDAKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX0FHRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX1FVRVVJTkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX0ZJWEVEX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMGZkYjYKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMGZkYjYKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFIyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STURSQU1fSE9MRV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STUdNSV9IT0xFX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDX0JBTktfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzY2YKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDX01JU0NfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmYwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfUENfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9QQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9QQzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX01BU0tfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX01BU0tfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX0NGR19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX0NGR19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX1NFTDJfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX1NFTDJfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9STV9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9STV9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX01BU0tfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX01BU0tfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX0NGR19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX0NGR19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX1NFTDJfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9STV9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX01BU0tfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX01BU0tfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTA0MDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX1NFTDJfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODc2NTQzMjEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YTk4NzY1NDMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9STV9TRUxfQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9STV9TRUxfQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MyM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STURSQU1fR0xPQkFMX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDAKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTRlNGU0ZTQKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTRlNGU0ZTQKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9DTEkyR1JQX01BUDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTRlNGU0ZTQKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9DTEkyR1JQX01BUDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTRlNGU0ZTQKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc3NzcKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9DT01CSU5FX0ZMVVNIX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc3NzcKKyNkZWZpbmUgbW1NTUVBN19JT19HUk9VUF9CVVJTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYwMzFmMDMKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfQUdFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYjYyNDkKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfUVVFVUlOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBkYjYKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfRklYRURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA5MjQKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0OTIKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfVVJHRU5DWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0OTIKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfUVVBTlRfUFJJMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YzZjNmM2YKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfUVVBTlRfUFJJMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2Y3ZjdmN2YKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfUVVBTlRfUFJJM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1NTUVBN19TRFBfQVJCX0RSQU1fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDFlNDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfQVJCX0dNSV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDFlNDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfQVJCX0ZJTkFMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdmZmYKKyNkZWZpbmUgbW1NTUVBN19TRFBfRFJBTV9QUklPUklUWV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfR01JX1BSSU9SSVRZX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfSU9fUFJJT1JJVFlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfQ1JFRElUU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAxYmYKKyNkZWZpbmUgbW1NTUVBN19TRFBfVEFHX1JFU0VSVkUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfVEFHX1JFU0VSVkUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfVkNDX1JFU0VSVkUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfVkNDX1JFU0VSVkUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfVkNEX1JFU0VSVkUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfVkNEX1JFU0VSVkUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19TRFBfUkVRX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMWYKKyNkZWZpbmUgbW1NTUVBN19NSVNDX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGMwMGEwNzAKKyNkZWZpbmUgbW1NTUVBN19MQVRFTkNZX1NBTVBMSU5HX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19FRENfQ05UX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19FRENfQ05UMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTEFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTEJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTDJBX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTDJCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19DR1RUX0NMS19DVFJMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgbW1NTUVBN19FRENfTU9ERV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19FUlJfU1RBVFVTX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDAKKyNkZWZpbmUgbW1NTUVBN19NSVNDMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDX1NFTEVDVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1NTUVBN19FRENfQ05UM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3BjdGxkZWMxCisjZGVmaW5lIG1tUENUTDFfQ1RSTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDExMDQwCisjZGVmaW5lIG1tUENUTDFfTU1IVUJfREVFUFNMRUVQX0lCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX0NGR19EQUdCX0JVU1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19JQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX0NGR19EQUdCX0JVU1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19JQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX0NGR19EQUdCX0JVU1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX0NGR19EQUdCX0JVU1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19JQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X0NGR19EQUdCX0JVU1lfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19JQl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfTUlTQ19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDExMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X01JU0NfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfUkVOR19FWEVDVVRFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1JFTkdfRVhFQ1VURV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1JFTkdfRVhFQ1VURV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1JFTkdfRVhFQ1VURV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1JFTkdfRVhFQ1VURV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1JFTkdfRVhFQ1VURV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfUkVOR19SQU1fSU5ERVhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfUkVOR19SQU1fREFUQV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1JFTkdfUkFNX0lOREVYX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1JFTkdfUkFNX0RBVEFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1JFTkdfUkFNX0lOREVYX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1JFTkdfUkFNX0RBVEFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1JFTkdfUkFNX0lOREVYX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1JFTkdfUkFNX0RBVEFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1JFTkdfUkFNX0lOREVYX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1JFTkdfUkFNX0RBVEFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1JFTkdfUkFNX0lOREVYX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1JFTkdfUkFNX0RBVEFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9sMXRsYl92bWwxZGVjOjEKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCMF9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCMV9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCMl9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCM19TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCNF9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCNV9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCNl9TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCN19TVEFUVVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVE1aX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2wxdGxiX3ZtbDFwbGRlYzoxCisjZGVmaW5lIG1tVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjJfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjNfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9sMXRsYl92bWwxcHJkZWM6MQorI2RlZmluZSBtbVZNTDFQUjFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfTE9fREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDFQUjFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfSElfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfYXRjbDJkZWM6MQorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxYzBjOQorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NOVEwyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDEwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NOVEwzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFmOAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX1NUQVRVU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX1NUQVRVUzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX1NUQVRVUzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX01JU0NfQ0dfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX01FTV9QT1dFUl9MU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwOAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NHVFRfQ0xLX0NUUkxfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzRLX0RTTV9JTkRFWF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzJNX0RTTV9JTkRFWF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzJNX0RTTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NOVEw0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1sMnBmZGVjOjEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODA2MDIKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NOVEwyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NOVEwzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAxMDAwMDcKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1NUQVRVU19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwOTAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2ZmZmZmZmMKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYTAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0xPV19BRERSX0xPMzJfREVGQVVMVCAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0xPV19BRERSX0hJMzJfREVGQVVMVCAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0hJR0hfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0hJR0hfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFRfSURFTlRJVFlfUEhZU0lDQUxfT0ZGU0VUX0xPMzJfREVGQVVMVCAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFRfSURFTlRJVFlfUEhZU0lDQUxfT0ZGU0VUX0hJMzJfREVGQVVMVCAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NOVEw0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwYzEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NHVFRfQ0xLX0NUUkxfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3ZtbDJ2Y2RlYzoxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmZTgwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUU19ESVNBQkxFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfU0VNX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1NFTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX1NFTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX1NFTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1NFTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X1NFTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X1NFTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1NFTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X1NFTV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfUkVRX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX1JFUV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X1JFUV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2MwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUNLX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FDS19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX0FDS19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FDS19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FDS19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X0FDS19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FDS19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FDS19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X0FDS19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FERFJfUkFOR0VfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FERFJfUkFOR0VfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FERFJfUkFOR0VfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FERFJfUkFOR0VfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FERFJfUkFOR0VfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FERFJfUkFOR0VfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9ERUZBVUxUICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bXNoYXJlZHBmZGVjOjEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9NTUlPQkFTRV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9NTUlPTElNSVRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9QQ0lfQ1RSTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9QQ0lfQVJCX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9UT1BfT0ZfRFJBTV9TTE9UMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9MT1dFUl9UT1BfT0ZfRFJBTTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9VUFBFUl9UT1BfT0ZfRFJBTTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9GQl9PRkZTRVRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX0xTQl9ERUZBVUxUICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX01TQl9ERUZBVUxUICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9TVEVFUklOR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19TSEFSRURfVklSVF9SRVNFVF9SRVFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19NRU1fUE9XRVJfTFNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDgKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX1NUQVJUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX0VORF9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9BUFRfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19FTkRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZmZmZmYKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19MT0NLX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9YR01JX0xGQl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9YR01JX0xGQl9TSVpFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3Ztc2hhcmVkdmNkZWM6MQorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX0ZCX0xPQ0FUSU9OX0JBU0VfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX0ZCX0xPQ0FUSU9OX1RPUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX0FHUF9UT1BfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX0FHUF9CT1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX0FHUF9CQVNFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjUwMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1zaGFyZWRodmRlYzoxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fSU9NTVVfTU1JT19DTlRSTF8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0hJXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0hJXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0hJXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0hJXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18wX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18zX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8wX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8zX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fTE9fMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fTE9fMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fTE9fMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fTE9fM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fSElfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fSElfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fSElfMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fSElfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fSU9NTVVfQ09OVFJPTF9SRUdJU1RFUl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fSU9NTVVfUEVSRk9STUFOQ0VfT1BUSU1JWkFUSU9OX0NPTlRST0xfUkVHSVNURVJfREVGQVVMVCAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8wX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8zX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl80X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl81X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl82X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl83X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl84X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl85X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVVRDTDJfQ0dUVF9DTEtfQ1RSTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfU0hBUkVEX0FDVElWRV9GQ05fSURfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl9hdGNsMnBmY250cmRlYzoxCisjZGVmaW5lIG1tQVRDTDJQRkNOVFIxX0FUQ19MMl9QRVJGQ09VTlRFUl9MT19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tQVRDTDJQRkNOVFIxX0FUQ19MMl9QRVJGQ09VTlRFUl9ISV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl9hdGNsMnBmY250bGRlYzoxCisjZGVmaW5lIG1tQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUjBfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUjFfQ0ZHX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIG1tQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bWwycGxkZWM6MQorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGR19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1sMnByZGVjOjEKKyNkZWZpbmUgbW1WTUwyUFIxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0xPX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgbW1WTUwyUFIxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0hJX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbW1odWIvbW1odWJfOV80XzFfb2Zmc2V0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbW1odWIvbW1odWJfOV80XzFfb2Zmc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg2MzJjYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9tbWh1Yi9tbWh1Yl85XzRfMV9vZmZzZXQuaApAQCAtMCwwICsxLDc3NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX21taHViXzlfNF8xX09GRlNFVF9IRUFERVIKKyNkZWZpbmUgX21taHViXzlfNF8xX09GRlNFVF9IRUFERVIKKworCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZGFnYl9kYWdiZGVjMAorLy8gYmFzZSBhZGRyZXNzOiAweDY4MDAwCisjZGVmaW5lIG1tREFHQjBfUkRDTEkwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIG1tREFHQjBfUkRDTEkwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEQ0xJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBtbURBR0IwX1JEQ0xJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRDTEkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCisjZGVmaW5lIG1tREFHQjBfUkRDTEkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEQ0xJNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBtbURBR0IwX1JEQ0xJNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRDTEk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIG1tREFHQjBfUkRDTEk2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEQ0xJNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNworI2RlZmluZSBtbURBR0IwX1JEQ0xJN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKyNkZWZpbmUgbW1EQUdCMF9SRENMSThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRDTEk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CisjZGVmaW5lIG1tREFHQjBfUkRDTEk5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEQ0xJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYQorI2RlZmluZSBtbURBR0IwX1JEQ0xJMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGIKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRDTEkxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBjCisjZGVmaW5lIG1tREFHQjBfUkRDTEkxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEQ0xJMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZAorI2RlZmluZSBtbURBR0IwX1JEQ0xJMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGUKKyNkZWZpbmUgbW1EQUdCMF9SRENMSTE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRDTEkxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBmCisjZGVmaW5lIG1tREFHQjBfUkRDTEkxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBtbURBR0IwX1JEX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRF9HTUlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTEKKyNkZWZpbmUgbW1EQUdCMF9SRF9HTUlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRfQUREUl9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEyCisjZGVmaW5lIG1tREFHQjBfUkRfQUREUl9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMworI2RlZmluZSBtbURBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTQKKyNkZWZpbmUgbW1EQUdCMF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE1CisjZGVmaW5lIG1tREFHQjBfUkRfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxNgorI2RlZmluZSBtbURBR0IwX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9BVENWTV9SRF9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTcKKyNkZWZpbmUgbW1EQUdCMF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4CisjZGVmaW5lIG1tREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxOQorI2RlZmluZSBtbURBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWEKKyNkZWZpbmUgbW1EQUdCMF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFiCisjZGVmaW5lIG1tREFHQjBfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEX1ZDMF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYworI2RlZmluZSBtbURBR0IwX1JEX1ZDMF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWQKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRfVkMyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFlCisjZGVmaW5lIG1tREFHQjBfUkRfVkMyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEX1ZDM19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZgorI2RlZmluZSBtbURBR0IwX1JEX1ZDM19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRfVkM1X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIxCisjZGVmaW5lIG1tREFHQjBfUkRfVkM1X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEX1ZDNl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMgorI2RlZmluZSBtbURBR0IwX1JEX1ZDNl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgbW1EQUdCMF9SRF9WQzdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRfQ05UTF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI0CisjZGVmaW5lIG1tREFHQjBfUkRfQ05UTF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEX1RMQl9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNQorI2RlZmluZSBtbURBR0IwX1JEX1RMQl9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjYKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI3CisjZGVmaW5lIG1tREFHQjBfUkRDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOAorI2RlZmluZSBtbURBR0IwX1JEQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjkKKyNkZWZpbmUgbW1EQUdCMF9SRENMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkRDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJhCisjZGVmaW5lIG1tREFHQjBfUkRDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYgorI2RlZmluZSBtbURBR0IwX1JEQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmMKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JDTEkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJkCisjZGVmaW5lIG1tREFHQjBfV1JDTEkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSQ0xJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZQorI2RlZmluZSBtbURBR0IwX1dSQ0xJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmYKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JDTEk0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwCisjZGVmaW5lIG1tREFHQjBfV1JDTEk0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSQ0xJNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMQorI2RlZmluZSBtbURBR0IwX1dSQ0xJNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzIKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JDTEk3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMzCisjZGVmaW5lIG1tREFHQjBfV1JDTEk3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSQ0xJOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNAorI2RlZmluZSBtbURBR0IwX1dSQ0xJOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzUKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JDTEkxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM2CisjZGVmaW5lIG1tREFHQjBfV1JDTEkxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSQ0xJMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNworI2RlZmluZSBtbURBR0IwX1dSQ0xJMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JDTEkxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM5CisjZGVmaW5lIG1tREFHQjBfV1JDTEkxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSQ0xJMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYQorI2RlZmluZSBtbURBR0IwX1dSQ0xJMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2IKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSTE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNjCisjZGVmaW5lIG1tREFHQjBfV1JfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSX0dNSV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZAorI2RlZmluZSBtbURBR0IwX1dSX0dNSV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2UKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNmCisjZGVmaW5lIG1tREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MAorI2RlZmluZSBtbURBR0IwX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyCisjZGVmaW5lIG1tREFHQjBfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MworI2RlZmluZSBtbURBR0IwX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDQKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ1CisjZGVmaW5lIG1tREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NgorI2RlZmluZSBtbURBR0IwX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDcKKyNkZWZpbmUgbW1EQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfREFUQV9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ4CisjZGVmaW5lIG1tREFHQjBfV1JfREFUQV9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OQorI2RlZmluZSBtbURBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGEKKyNkZWZpbmUgbW1EQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRiCisjZGVmaW5lIG1tREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YworI2RlZmluZSBtbURBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGQKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfVkMxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRlCisjZGVmaW5lIG1tREFHQjBfV1JfVkMxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSX1ZDMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZgorI2RlZmluZSBtbURBR0IwX1dSX1ZDMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTAKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfVkM0X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUxCisjZGVmaW5lIG1tREFHQjBfV1JfVkM0X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSX1ZDNV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MgorI2RlZmluZSBtbURBR0IwX1dSX1ZDNV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTMKKyNkZWZpbmUgbW1EQUdCMF9XUl9WQzZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfVkM3X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU0CisjZGVmaW5lIG1tREFHQjBfV1JfVkM3X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSX0NOVExfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NQorI2RlZmluZSBtbURBR0IwX1dSX0NOVExfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUl9UTEJfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTYKKyNkZWZpbmUgbW1EQUdCMF9XUl9UTEJfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfREFUQV9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU3CisjZGVmaW5lIG1tREFHQjBfV1JfREFUQV9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSX01JU0NfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OAorI2RlZmluZSBtbURBR0IwX1dSX01JU0NfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWQKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVlCisjZGVmaW5lIG1tREFHQjBfV1JDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZgorI2RlZmluZSBtbURBR0IwX1dSQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxCisjZGVmaW5lIG1tREFHQjBfV1JDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1dSQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MgorI2RlZmluZSBtbURBR0IwX1dSQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9EQlVTX0FTS19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjMKKyNkZWZpbmUgbW1EQUdCMF9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JDTElfREJVU19HT19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY0CisjZGVmaW5lIG1tREFHQjBfV1JDTElfREJVU19HT19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX0RBR0JfRExZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NQorI2RlZmluZSBtbURBR0IwX0RBR0JfRExZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9DTlRMX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjYKKyNkZWZpbmUgbW1EQUdCMF9DTlRMX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfQ05UTF9NSVNDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY3CisjZGVmaW5lIG1tREFHQjBfQ05UTF9NSVNDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX0ZJRk9fRU1QVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2OAorI2RlZmluZSBtbURBR0IwX0ZJRk9fRU1QVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9GSUZPX0ZVTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjkKKyNkZWZpbmUgbW1EQUdCMF9GSUZPX0ZVTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfV1JfQ1JFRElUU19GVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZhCisjZGVmaW5lIG1tREFHQjBfV1JfQ1JFRElUU19GVUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JEX0NSRURJVFNfRlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YgorI2RlZmluZSBtbURBR0IwX1JEX0NSRURJVFNfRlVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmMKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUEVSRkNPVU5URVJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZkCisjZGVmaW5lIG1tREFHQjBfUEVSRkNPVU5URVJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2ZQorI2RlZmluZSBtbURBR0IwX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmYKKyNkZWZpbmUgbW1EQUdCMF9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUEVSRkNPVU5URVIyX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwCisjZGVmaW5lIG1tREFHQjBfUEVSRkNPVU5URVIyX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MQorI2RlZmluZSBtbURBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzIKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDczCisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JFU0VSVkUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3NAorI2RlZmluZSBtbURBR0IwX1JFU0VSVkUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzUKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDc2CisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JFU0VSVkU1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3NworI2RlZmluZSBtbURBR0IwX1JFU0VSVkU1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzgKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDc5CisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JFU0VSVkU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3YQorI2RlZmluZSBtbURBR0IwX1JFU0VSVkU4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2IKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdjCisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IwX1JFU0VSVkUxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZAorI2RlZmluZSBtbURBR0IwX1JFU0VSVkUxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2UKKyNkZWZpbmUgbW1EQUdCMF9SRVNFUlZFMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdmCisjZGVmaW5lIG1tREFHQjBfUkVTRVJWRTEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZGFnYl9kYWdiZGVjMQorLy8gYmFzZSBhZGRyZXNzOiAweDY4MjAwCisjZGVmaW5lIG1tREFHQjFfUkRDTEkwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwCisjZGVmaW5lIG1tREFHQjFfUkRDTEkwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEQ0xJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MQorI2RlZmluZSBtbURBR0IxX1JEQ0xJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODIKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRDTEkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgzCisjZGVmaW5lIG1tREFHQjFfUkRDTEkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEQ0xJNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NAorI2RlZmluZSBtbURBR0IxX1JEQ0xJNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODUKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRDTEk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg2CisjZGVmaW5lIG1tREFHQjFfUkRDTEk2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEQ0xJNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NworI2RlZmluZSBtbURBR0IxX1JEQ0xJN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODgKKyNkZWZpbmUgbW1EQUdCMV9SRENMSThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRDTEk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg5CisjZGVmaW5lIG1tREFHQjFfUkRDTEk5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEQ0xJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YQorI2RlZmluZSBtbURBR0IxX1JEQ0xJMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGIKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRDTEkxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhjCisjZGVmaW5lIG1tREFHQjFfUkRDTEkxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEQ0xJMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZAorI2RlZmluZSBtbURBR0IxX1JEQ0xJMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGUKKyNkZWZpbmUgbW1EQUdCMV9SRENMSTE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRDTEkxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhmCisjZGVmaW5lIG1tREFHQjFfUkRDTEkxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MAorI2RlZmluZSBtbURBR0IxX1JEX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRF9HTUlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTEKKyNkZWZpbmUgbW1EQUdCMV9SRF9HTUlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRfQUREUl9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkyCisjZGVmaW5lIG1tREFHQjFfUkRfQUREUl9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MworI2RlZmluZSBtbURBR0IxX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTQKKyNkZWZpbmUgbW1EQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDk1CisjZGVmaW5lIG1tREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5NgorI2RlZmluZSBtbURBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTcKKyNkZWZpbmUgbW1EQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDk4CisjZGVmaW5lIG1tREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5OQorI2RlZmluZSBtbURBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOWEKKyNkZWZpbmUgbW1EQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDliCisjZGVmaW5lIG1tREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEX1ZDMF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5YworI2RlZmluZSBtbURBR0IxX1JEX1ZDMF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOWQKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRfVkMyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDllCisjZGVmaW5lIG1tREFHQjFfUkRfVkMyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEX1ZDM19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5ZgorI2RlZmluZSBtbURBR0IxX1JEX1ZDM19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTAKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRfVkM1X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGExCisjZGVmaW5lIG1tREFHQjFfUkRfVkM1X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEX1ZDNl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhMgorI2RlZmluZSBtbURBR0IxX1JEX1ZDNl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTMKKyNkZWZpbmUgbW1EQUdCMV9SRF9WQzdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRfQ05UTF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE0CisjZGVmaW5lIG1tREFHQjFfUkRfQ05UTF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEX1RMQl9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhNQorI2RlZmluZSBtbURBR0IxX1JEX1RMQl9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTYKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE3CisjZGVmaW5lIG1tREFHQjFfUkRDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhOAorI2RlZmluZSBtbURBR0IxX1JEQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTkKKyNkZWZpbmUgbW1EQUdCMV9SRENMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkRDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFhCisjZGVmaW5lIG1tREFHQjFfUkRDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYgorI2RlZmluZSBtbURBR0IxX1JEQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWMKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JDTEkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFkCisjZGVmaW5lIG1tREFHQjFfV1JDTEkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSQ0xJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZQorI2RlZmluZSBtbURBR0IxX1dSQ0xJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWYKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JDTEk0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIwCisjZGVmaW5lIG1tREFHQjFfV1JDTEk0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSQ0xJNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMQorI2RlZmluZSBtbURBR0IxX1dSQ0xJNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjIKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JDTEk3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIzCisjZGVmaW5lIG1tREFHQjFfV1JDTEk3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSQ0xJOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNAorI2RlZmluZSBtbURBR0IxX1dSQ0xJOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjUKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JDTEkxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI2CisjZGVmaW5lIG1tREFHQjFfV1JDTEkxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSQ0xJMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNworI2RlZmluZSBtbURBR0IxX1dSQ0xJMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjgKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JDTEkxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI5CisjZGVmaW5lIG1tREFHQjFfV1JDTEkxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSQ0xJMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiYQorI2RlZmluZSBtbURBR0IxX1dSQ0xJMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYmIKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSTE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGJjCisjZGVmaW5lIG1tREFHQjFfV1JfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSX0dNSV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiZAorI2RlZmluZSBtbURBR0IxX1dSX0dNSV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYmUKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGJmCisjZGVmaW5lIG1tREFHQjFfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMAorI2RlZmluZSBtbURBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzEKKyNkZWZpbmUgbW1EQUdCMV9XUl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMyCisjZGVmaW5lIG1tREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMworI2RlZmluZSBtbURBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzQKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM1CisjZGVmaW5lIG1tREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNgorI2RlZmluZSBtbURBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzcKKyNkZWZpbmUgbW1EQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfREFUQV9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM4CisjZGVmaW5lIG1tREFHQjFfV1JfREFUQV9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjOQorI2RlZmluZSBtbURBR0IxX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwY2EKKyNkZWZpbmUgbW1EQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGNiCisjZGVmaW5lIG1tREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjYworI2RlZmluZSBtbURBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwY2QKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfVkMxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGNlCisjZGVmaW5lIG1tREFHQjFfV1JfVkMxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSX1ZDMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjZgorI2RlZmluZSBtbURBR0IxX1dSX1ZDMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZDAKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfVkM0X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQxCisjZGVmaW5lIG1tREFHQjFfV1JfVkM0X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSX1ZDNV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkMgorI2RlZmluZSBtbURBR0IxX1dSX1ZDNV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZDMKKyNkZWZpbmUgbW1EQUdCMV9XUl9WQzZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfVkM3X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ0CisjZGVmaW5lIG1tREFHQjFfV1JfVkM3X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSX0NOVExfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkNQorI2RlZmluZSBtbURBR0IxX1dSX0NOVExfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUl9UTEJfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZDYKKyNkZWZpbmUgbW1EQUdCMV9XUl9UTEJfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfREFUQV9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ3CisjZGVmaW5lIG1tREFHQjFfV1JfREFUQV9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSX01JU0NfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkOAorI2RlZmluZSBtbURBR0IxX1dSX01JU0NfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGQKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRlCisjZGVmaW5lIG1tREFHQjFfV1JDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZgorI2RlZmluZSBtbURBR0IxX1dSQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTAKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUxCisjZGVmaW5lIG1tREFHQjFfV1JDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1dSQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMgorI2RlZmluZSBtbURBR0IxX1dSQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9EQlVTX0FTS19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTMKKyNkZWZpbmUgbW1EQUdCMV9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JDTElfREJVU19HT19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU0CisjZGVmaW5lIG1tREFHQjFfV1JDTElfREJVU19HT19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX0RBR0JfRExZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNQorI2RlZmluZSBtbURBR0IxX0RBR0JfRExZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9DTlRMX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTYKKyNkZWZpbmUgbW1EQUdCMV9DTlRMX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfQ05UTF9NSVNDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU3CisjZGVmaW5lIG1tREFHQjFfQ05UTF9NSVNDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX0ZJRk9fRU1QVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlOAorI2RlZmluZSBtbURBR0IxX0ZJRk9fRU1QVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9GSUZPX0ZVTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTkKKyNkZWZpbmUgbW1EQUdCMV9GSUZPX0ZVTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfV1JfQ1JFRElUU19GVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVhCisjZGVmaW5lIG1tREFHQjFfV1JfQ1JFRElUU19GVUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JEX0NSRURJVFNfRlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlYgorI2RlZmluZSBtbURBR0IxX1JEX0NSRURJVFNfRlVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWMKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUEVSRkNPVU5URVJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVkCisjZGVmaW5lIG1tREFHQjFfUEVSRkNPVU5URVJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlZQorI2RlZmluZSBtbURBR0IxX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWYKKyNkZWZpbmUgbW1EQUdCMV9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUEVSRkNPVU5URVIyX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGYwCisjZGVmaW5lIG1tREFHQjFfUEVSRkNPVU5URVIyX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmMQorI2RlZmluZSBtbURBR0IxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjIKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGYzCisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JFU0VSVkUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmNAorI2RlZmluZSBtbURBR0IxX1JFU0VSVkUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjUKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGY2CisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JFU0VSVkU1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmNworI2RlZmluZSBtbURBR0IxX1JFU0VSVkU1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjgKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGY5CisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JFU0VSVkU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmYQorI2RlZmluZSBtbURBR0IxX1JFU0VSVkU4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZmIKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGZjCisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IxX1JFU0VSVkUxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZAorI2RlZmluZSBtbURBR0IxX1JFU0VSVkUxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZmUKKyNkZWZpbmUgbW1EQUdCMV9SRVNFUlZFMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGZmCisjZGVmaW5lIG1tREFHQjFfUkVTRVJWRTEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZGFnYl9kYWdiZGVjMgorLy8gYmFzZSBhZGRyZXNzOiAweDY4NDAwCisjZGVmaW5lIG1tREFHQjJfUkRDTEkwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwCisjZGVmaW5lIG1tREFHQjJfUkRDTEkwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEQ0xJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMQorI2RlZmluZSBtbURBR0IyX1JEQ0xJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDIKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRDTEkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAzCisjZGVmaW5lIG1tREFHQjJfUkRDTEkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEQ0xJNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNAorI2RlZmluZSBtbURBR0IyX1JEQ0xJNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDUKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRDTEk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA2CisjZGVmaW5lIG1tREFHQjJfUkRDTEk2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEQ0xJNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNworI2RlZmluZSBtbURBR0IyX1JEQ0xJN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDgKKyNkZWZpbmUgbW1EQUdCMl9SRENMSThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRDTEk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA5CisjZGVmaW5lIG1tREFHQjJfUkRDTEk5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEQ0xJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYQorI2RlZmluZSBtbURBR0IyX1JEQ0xJMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGIKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRDTEkxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBjCisjZGVmaW5lIG1tREFHQjJfUkRDTEkxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEQ0xJMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwZAorI2RlZmluZSBtbURBR0IyX1JEQ0xJMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGUKKyNkZWZpbmUgbW1EQUdCMl9SRENMSTE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRDTEkxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBmCisjZGVmaW5lIG1tREFHQjJfUkRDTEkxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExMAorI2RlZmluZSBtbURBR0IyX1JEX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRF9HTUlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTEKKyNkZWZpbmUgbW1EQUdCMl9SRF9HTUlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRfQUREUl9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTEyCisjZGVmaW5lIG1tREFHQjJfUkRfQUREUl9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExMworI2RlZmluZSBtbURBR0IyX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTQKKyNkZWZpbmUgbW1EQUdCMl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE1CisjZGVmaW5lIG1tREFHQjJfUkRfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExNgorI2RlZmluZSBtbURBR0IyX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9BVENWTV9SRF9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTcKKyNkZWZpbmUgbW1EQUdCMl9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRfQUREUl9EQUdCX01BWF9CVVJTVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE4CisjZGVmaW5lIG1tREFHQjJfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExOQorI2RlZmluZSBtbURBR0IyX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWEKKyNkZWZpbmUgbW1EQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFiCisjZGVmaW5lIG1tREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEX1ZDMF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYworI2RlZmluZSBtbURBR0IyX1JEX1ZDMF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWQKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRfVkMyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFlCisjZGVmaW5lIG1tREFHQjJfUkRfVkMyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEX1ZDM19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZgorI2RlZmluZSBtbURBR0IyX1JEX1ZDM19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjAKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRfVkM1X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTIxCisjZGVmaW5lIG1tREFHQjJfUkRfVkM1X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEX1ZDNl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyMgorI2RlZmluZSBtbURBR0IyX1JEX1ZDNl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjMKKyNkZWZpbmUgbW1EQUdCMl9SRF9WQzdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRfQ05UTF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTI0CisjZGVmaW5lIG1tREFHQjJfUkRfQ05UTF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEX1RMQl9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyNQorI2RlZmluZSBtbURBR0IyX1JEX1RMQl9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjYKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTI3CisjZGVmaW5lIG1tREFHQjJfUkRDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyOAorI2RlZmluZSBtbURBR0IyX1JEQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjkKKyNkZWZpbmUgbW1EQUdCMl9SRENMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkRDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTJhCisjZGVmaW5lIG1tREFHQjJfUkRDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyYgorI2RlZmluZSBtbURBR0IyX1JEQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMmMKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JDTEkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTJkCisjZGVmaW5lIG1tREFHQjJfV1JDTEkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSQ0xJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyZQorI2RlZmluZSBtbURBR0IyX1dSQ0xJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMmYKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JDTEk0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMwCisjZGVmaW5lIG1tREFHQjJfV1JDTEk0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSQ0xJNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMQorI2RlZmluZSBtbURBR0IyX1dSQ0xJNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzIKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JDTEk3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMzCisjZGVmaW5lIG1tREFHQjJfV1JDTEk3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSQ0xJOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNAorI2RlZmluZSBtbURBR0IyX1dSQ0xJOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzUKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JDTEkxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM2CisjZGVmaW5lIG1tREFHQjJfV1JDTEkxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSQ0xJMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNworI2RlZmluZSBtbURBR0IyX1dSQ0xJMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzgKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JDTEkxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM5CisjZGVmaW5lIG1tREFHQjJfV1JDTEkxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSQ0xJMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYQorI2RlZmluZSBtbURBR0IyX1dSQ0xJMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2IKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSTE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNjCisjZGVmaW5lIG1tREFHQjJfV1JfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSX0dNSV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZAorI2RlZmluZSBtbURBR0IyX1dSX0dNSV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2UKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNmCisjZGVmaW5lIG1tREFHQjJfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MAorI2RlZmluZSBtbURBR0IyX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQyCisjZGVmaW5lIG1tREFHQjJfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MworI2RlZmluZSBtbURBR0IyX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDQKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ1CisjZGVmaW5lIG1tREFHQjJfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0NgorI2RlZmluZSBtbURBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDcKKyNkZWZpbmUgbW1EQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfREFUQV9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ4CisjZGVmaW5lIG1tREFHQjJfV1JfREFUQV9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0OQorI2RlZmluZSBtbURBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNGEKKyNkZWZpbmUgbW1EQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfREFUQV9EQUdCX01BWF9CVVJTVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTRiCisjZGVmaW5lIG1tREFHQjJfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0YworI2RlZmluZSBtbURBR0IyX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNGQKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfVkMxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTRlCisjZGVmaW5lIG1tREFHQjJfV1JfVkMxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSX1ZDMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0ZgorI2RlZmluZSBtbURBR0IyX1dSX1ZDMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTAKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfVkM0X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTUxCisjZGVmaW5lIG1tREFHQjJfV1JfVkM0X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSX1ZDNV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1MgorI2RlZmluZSBtbURBR0IyX1dSX1ZDNV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTMKKyNkZWZpbmUgbW1EQUdCMl9XUl9WQzZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfVkM3X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU0CisjZGVmaW5lIG1tREFHQjJfV1JfVkM3X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSX0NOVExfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1NQorI2RlZmluZSBtbURBR0IyX1dSX0NOVExfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUl9UTEJfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTYKKyNkZWZpbmUgbW1EQUdCMl9XUl9UTEJfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfREFUQV9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU3CisjZGVmaW5lIG1tREFHQjJfV1JfREFUQV9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSX01JU0NfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1OAorI2RlZmluZSBtbURBR0IyX1dSX01JU0NfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWQKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVlCisjZGVmaW5lIG1tREFHQjJfV1JDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1ZgorI2RlZmluZSBtbURBR0IyX1dSQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjAKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYxCisjZGVmaW5lIG1tREFHQjJfV1JDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1dSQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MgorI2RlZmluZSBtbURBR0IyX1dSQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9EQlVTX0FTS19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjMKKyNkZWZpbmUgbW1EQUdCMl9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JDTElfREJVU19HT19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY0CisjZGVmaW5lIG1tREFHQjJfV1JDTElfREJVU19HT19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX0RBR0JfRExZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2NQorI2RlZmluZSBtbURBR0IyX0RBR0JfRExZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9DTlRMX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjYKKyNkZWZpbmUgbW1EQUdCMl9DTlRMX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfQ05UTF9NSVNDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY3CisjZGVmaW5lIG1tREFHQjJfQ05UTF9NSVNDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX0ZJRk9fRU1QVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2OAorI2RlZmluZSBtbURBR0IyX0ZJRk9fRU1QVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9GSUZPX0ZVTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjkKKyNkZWZpbmUgbW1EQUdCMl9GSUZPX0ZVTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfV1JfQ1JFRElUU19GVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTZhCisjZGVmaW5lIG1tREFHQjJfV1JfQ1JFRElUU19GVUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JEX0NSRURJVFNfRlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2YgorI2RlZmluZSBtbURBR0IyX1JEX0NSRURJVFNfRlVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNmMKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUEVSRkNPVU5URVJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTZkCisjZGVmaW5lIG1tREFHQjJfUEVSRkNPVU5URVJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2ZQorI2RlZmluZSBtbURBR0IyX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNmYKKyNkZWZpbmUgbW1EQUdCMl9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUEVSRkNPVU5URVIyX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcwCisjZGVmaW5lIG1tREFHQjJfUEVSRkNPVU5URVIyX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MQorI2RlZmluZSBtbURBR0IyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzIKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTczCisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JFU0VSVkUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NAorI2RlZmluZSBtbURBR0IyX1JFU0VSVkUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzUKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc2CisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JFU0VSVkU1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NworI2RlZmluZSBtbURBR0IyX1JFU0VSVkU1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzgKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc5CisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JFU0VSVkU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YQorI2RlZmluZSBtbURBR0IyX1JFU0VSVkU4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2IKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTdjCisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IyX1JFU0VSVkUxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3ZAorI2RlZmluZSBtbURBR0IyX1JFU0VSVkUxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2UKKyNkZWZpbmUgbW1EQUdCMl9SRVNFUlZFMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTdmCisjZGVmaW5lIG1tREFHQjJfUkVTRVJWRTEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZGFnYl9kYWdiZGVjMworLy8gYmFzZSBhZGRyZXNzOiAweDY4NjAwCisjZGVmaW5lIG1tREFHQjNfUkRDTEkwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTgwCisjZGVmaW5lIG1tREFHQjNfUkRDTEkwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEQ0xJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4MQorI2RlZmluZSBtbURBR0IzX1JEQ0xJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRENMSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODIKKyNkZWZpbmUgbW1EQUdCM19SRENMSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRDTEkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTgzCisjZGVmaW5lIG1tREFHQjNfUkRDTEkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEQ0xJNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4NAorI2RlZmluZSBtbURBR0IzX1JEQ0xJNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRENMSTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODUKKyNkZWZpbmUgbW1EQUdCM19SRENMSTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRDTEk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg2CisjZGVmaW5lIG1tREFHQjNfUkRDTEk2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEQ0xJNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4NworI2RlZmluZSBtbURBR0IzX1JEQ0xJN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRENMSTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODgKKyNkZWZpbmUgbW1EQUdCM19SRENMSThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRDTEk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg5CisjZGVmaW5lIG1tREFHQjNfUkRDTEk5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEQ0xJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YQorI2RlZmluZSBtbURBR0IzX1JEQ0xJMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRENMSTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGIKKyNkZWZpbmUgbW1EQUdCM19SRENMSTExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRDTEkxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThjCisjZGVmaW5lIG1tREFHQjNfUkRDTEkxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEQ0xJMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZAorI2RlZmluZSBtbURBR0IzX1JEQ0xJMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRENMSTE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGUKKyNkZWZpbmUgbW1EQUdCM19SRENMSTE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRDTEkxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThmCisjZGVmaW5lIG1tREFHQjNfUkRDTEkxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MAorI2RlZmluZSBtbURBR0IzX1JEX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRF9HTUlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTEKKyNkZWZpbmUgbW1EQUdCM19SRF9HTUlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRfQUREUl9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkyCisjZGVmaW5lIG1tREFHQjNfUkRfQUREUl9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MworI2RlZmluZSBtbURBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTQKKyNkZWZpbmUgbW1EQUdCM19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk1CisjZGVmaW5lIG1tREFHQjNfUkRfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NgorI2RlZmluZSBtbURBR0IzX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19BVENWTV9SRF9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTcKKyNkZWZpbmUgbW1EQUdCM19BVENWTV9SRF9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk4CisjZGVmaW5lIG1tREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5OQorI2RlZmluZSBtbURBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOWEKKyNkZWZpbmUgbW1EQUdCM19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTliCisjZGVmaW5lIG1tREFHQjNfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEX1ZDMF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5YworI2RlZmluZSBtbURBR0IzX1JEX1ZDMF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOWQKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRfVkMyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTllCisjZGVmaW5lIG1tREFHQjNfUkRfVkMyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEX1ZDM19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5ZgorI2RlZmluZSBtbURBR0IzX1JEX1ZDM19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYTAKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRfVkM1X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWExCisjZGVmaW5lIG1tREFHQjNfUkRfVkM1X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEX1ZDNl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFhMgorI2RlZmluZSBtbURBR0IzX1JEX1ZDNl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYTMKKyNkZWZpbmUgbW1EQUdCM19SRF9WQzdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRfQ05UTF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWE0CisjZGVmaW5lIG1tREFHQjNfUkRfQ05UTF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEX1RMQl9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFhNQorI2RlZmluZSBtbURBR0IzX1JEX1RMQl9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYTYKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWE3CisjZGVmaW5lIG1tREFHQjNfUkRDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFhOAorI2RlZmluZSBtbURBR0IzX1JEQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYTkKKyNkZWZpbmUgbW1EQUdCM19SRENMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkRDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWFhCisjZGVmaW5lIG1tREFHQjNfUkRDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFhYgorI2RlZmluZSBtbURBR0IzX1JEQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYWMKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JDTEkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWFkCisjZGVmaW5lIG1tREFHQjNfV1JDTEkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSQ0xJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFhZQorI2RlZmluZSBtbURBR0IzX1dSQ0xJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYWYKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JDTEk0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIwCisjZGVmaW5lIG1tREFHQjNfV1JDTEk0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSQ0xJNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMQorI2RlZmluZSBtbURBR0IzX1dSQ0xJNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjIKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JDTEk3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIzCisjZGVmaW5lIG1tREFHQjNfV1JDTEk3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSQ0xJOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNAorI2RlZmluZSBtbURBR0IzX1dSQ0xJOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjUKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JDTEkxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI2CisjZGVmaW5lIG1tREFHQjNfV1JDTEkxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSQ0xJMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNworI2RlZmluZSBtbURBR0IzX1dSQ0xJMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjgKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JDTEkxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI5CisjZGVmaW5lIG1tREFHQjNfV1JDTEkxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSQ0xJMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiYQorI2RlZmluZSBtbURBR0IzX1dSQ0xJMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmIKKyNkZWZpbmUgbW1EQUdCM19XUkNMSTE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJjCisjZGVmaW5lIG1tREFHQjNfV1JfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSX0dNSV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiZAorI2RlZmluZSBtbURBR0IzX1dSX0dNSV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmUKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJmCisjZGVmaW5lIG1tREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjMAorI2RlZmluZSBtbURBR0IzX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzEKKyNkZWZpbmUgbW1EQUdCM19XUl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWMyCisjZGVmaW5lIG1tREFHQjNfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjMworI2RlZmluZSBtbURBR0IzX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzQKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWM1CisjZGVmaW5lIG1tREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjNgorI2RlZmluZSBtbURBR0IzX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzcKKyNkZWZpbmUgbW1EQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfREFUQV9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWM4CisjZGVmaW5lIG1tREFHQjNfV1JfREFUQV9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjOQorI2RlZmluZSBtbURBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2EKKyNkZWZpbmUgbW1EQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNiCisjZGVmaW5lIG1tREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjYworI2RlZmluZSBtbURBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2QKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfVkMxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNlCisjZGVmaW5lIG1tREFHQjNfV1JfVkMxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSX1ZDMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjZgorI2RlZmluZSBtbURBR0IzX1dSX1ZDMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZDAKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfVkM0X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWQxCisjZGVmaW5lIG1tREFHQjNfV1JfVkM0X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSX1ZDNV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkMgorI2RlZmluZSBtbURBR0IzX1dSX1ZDNV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZDMKKyNkZWZpbmUgbW1EQUdCM19XUl9WQzZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfVkM3X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWQ0CisjZGVmaW5lIG1tREFHQjNfV1JfVkM3X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSX0NOVExfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkNQorI2RlZmluZSBtbURBR0IzX1dSX0NOVExfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUl9UTEJfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZDYKKyNkZWZpbmUgbW1EQUdCM19XUl9UTEJfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfREFUQV9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWQ3CisjZGVmaW5lIG1tREFHQjNfV1JfREFUQV9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSX01JU0NfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkOAorI2RlZmluZSBtbURBR0IzX1dSX01JU0NfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZGQKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWRlCisjZGVmaW5lIG1tREFHQjNfV1JDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkZgorI2RlZmluZSBtbURBR0IzX1dSQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTAKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUxCisjZGVmaW5lIG1tREFHQjNfV1JDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1dSQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMgorI2RlZmluZSBtbURBR0IzX1dSQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9EQlVTX0FTS19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTMKKyNkZWZpbmUgbW1EQUdCM19XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JDTElfREJVU19HT19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU0CisjZGVmaW5lIG1tREFHQjNfV1JDTElfREJVU19HT19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX0RBR0JfRExZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNQorI2RlZmluZSBtbURBR0IzX0RBR0JfRExZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19DTlRMX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTYKKyNkZWZpbmUgbW1EQUdCM19DTlRMX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfQ05UTF9NSVNDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU3CisjZGVmaW5lIG1tREFHQjNfQ05UTF9NSVNDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX0ZJRk9fRU1QVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlOAorI2RlZmluZSBtbURBR0IzX0ZJRk9fRU1QVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19GSUZPX0ZVTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTkKKyNkZWZpbmUgbW1EQUdCM19GSUZPX0ZVTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfV1JfQ1JFRElUU19GVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVhCisjZGVmaW5lIG1tREFHQjNfV1JfQ1JFRElUU19GVUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JEX0NSRURJVFNfRlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYgorI2RlZmluZSBtbURBR0IzX1JEX0NSRURJVFNfRlVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWMKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUEVSRkNPVU5URVJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVkCisjZGVmaW5lIG1tREFHQjNfUEVSRkNPVU5URVJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlZQorI2RlZmluZSBtbURBR0IzX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWYKKyNkZWZpbmUgbW1EQUdCM19QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUEVSRkNPVU5URVIyX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYwCisjZGVmaW5lIG1tREFHQjNfUEVSRkNPVU5URVIyX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMQorI2RlZmluZSBtbURBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjIKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYzCisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JFU0VSVkUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmNAorI2RlZmluZSBtbURBR0IzX1JFU0VSVkUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjUKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWY2CisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JFU0VSVkU1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmNworI2RlZmluZSBtbURBR0IzX1JFU0VSVkU1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjgKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWY5CisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JFU0VSVkU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmYQorI2RlZmluZSBtbURBR0IzX1JFU0VSVkU4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZmIKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWZjCisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0IzX1JFU0VSVkUxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmZAorI2RlZmluZSBtbURBR0IzX1JFU0VSVkUxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZmUKKyNkZWZpbmUgbW1EQUdCM19SRVNFUlZFMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWZmCisjZGVmaW5lIG1tREFHQjNfUkVTRVJWRTEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZGFnYl9kYWdiZGVjNAorLy8gYmFzZSBhZGRyZXNzOiAweDY4ODAwCisjZGVmaW5lIG1tREFHQjRfUkRDTEkwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwCisjZGVmaW5lIG1tREFHQjRfUkRDTEkwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEQ0xJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMQorI2RlZmluZSBtbURBR0I0X1JEQ0xJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDIKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRDTEkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAzCisjZGVmaW5lIG1tREFHQjRfUkRDTEkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEQ0xJNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwNAorI2RlZmluZSBtbURBR0I0X1JEQ0xJNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDUKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRDTEk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjA2CisjZGVmaW5lIG1tREFHQjRfUkRDTEk2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEQ0xJNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwNworI2RlZmluZSBtbURBR0I0X1JEQ0xJN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDgKKyNkZWZpbmUgbW1EQUdCNF9SRENMSThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRDTEk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjA5CisjZGVmaW5lIG1tREFHQjRfUkRDTEk5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEQ0xJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYQorI2RlZmluZSBtbURBR0I0X1JEQ0xJMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGIKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRDTEkxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBjCisjZGVmaW5lIG1tREFHQjRfUkRDTEkxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEQ0xJMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwZAorI2RlZmluZSBtbURBR0I0X1JEQ0xJMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGUKKyNkZWZpbmUgbW1EQUdCNF9SRENMSTE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRDTEkxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBmCisjZGVmaW5lIG1tREFHQjRfUkRDTEkxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMAorI2RlZmluZSBtbURBR0I0X1JEX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRF9HTUlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTEKKyNkZWZpbmUgbW1EQUdCNF9SRF9HTUlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRfQUREUl9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjEyCisjZGVmaW5lIG1tREFHQjRfUkRfQUREUl9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMworI2RlZmluZSBtbURBR0I0X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTQKKyNkZWZpbmUgbW1EQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE1CisjZGVmaW5lIG1tREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxNgorI2RlZmluZSBtbURBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTcKKyNkZWZpbmUgbW1EQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE4CisjZGVmaW5lIG1tREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxOQorI2RlZmluZSBtbURBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMWEKKyNkZWZpbmUgbW1EQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjFiCisjZGVmaW5lIG1tREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEX1ZDMF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxYworI2RlZmluZSBtbURBR0I0X1JEX1ZDMF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMWQKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRfVkMyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjFlCisjZGVmaW5lIG1tREFHQjRfUkRfVkMyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEX1ZDM19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxZgorI2RlZmluZSBtbURBR0I0X1JEX1ZDM19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjAKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRfVkM1X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIxCisjZGVmaW5lIG1tREFHQjRfUkRfVkM1X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEX1ZDNl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMgorI2RlZmluZSBtbURBR0I0X1JEX1ZDNl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjMKKyNkZWZpbmUgbW1EQUdCNF9SRF9WQzdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRfQ05UTF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI0CisjZGVmaW5lIG1tREFHQjRfUkRfQ05UTF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEX1RMQl9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNQorI2RlZmluZSBtbURBR0I0X1JEX1RMQl9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjYKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI3CisjZGVmaW5lIG1tREFHQjRfUkRDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyOAorI2RlZmluZSBtbURBR0I0X1JEQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjkKKyNkZWZpbmUgbW1EQUdCNF9SRENMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkRDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjJhCisjZGVmaW5lIG1tREFHQjRfUkRDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyYgorI2RlZmluZSBtbURBR0I0X1JEQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMmMKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JDTEkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjJkCisjZGVmaW5lIG1tREFHQjRfV1JDTEkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSQ0xJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyZQorI2RlZmluZSBtbURBR0I0X1dSQ0xJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMmYKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JDTEk0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjMwCisjZGVmaW5lIG1tREFHQjRfV1JDTEk0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSQ0xJNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzMQorI2RlZmluZSBtbURBR0I0X1dSQ0xJNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMzIKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JDTEk3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjMzCisjZGVmaW5lIG1tREFHQjRfV1JDTEk3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSQ0xJOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzNAorI2RlZmluZSBtbURBR0I0X1dSQ0xJOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMzUKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JDTEkxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM2CisjZGVmaW5lIG1tREFHQjRfV1JDTEkxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSQ0xJMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzNworI2RlZmluZSBtbURBR0I0X1dSQ0xJMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMzgKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JDTEkxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM5CisjZGVmaW5lIG1tREFHQjRfV1JDTEkxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSQ0xJMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYQorI2RlZmluZSBtbURBR0I0X1dSQ0xJMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2IKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSTE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNjCisjZGVmaW5lIG1tREFHQjRfV1JfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSX0dNSV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZAorI2RlZmluZSBtbURBR0I0X1dSX0dNSV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2UKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNmCisjZGVmaW5lIG1tREFHQjRfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MAorI2RlZmluZSBtbURBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQyCisjZGVmaW5lIG1tREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MworI2RlZmluZSBtbURBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDQKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ1CisjZGVmaW5lIG1tREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NgorI2RlZmluZSBtbURBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDcKKyNkZWZpbmUgbW1EQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfREFUQV9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ4CisjZGVmaW5lIG1tREFHQjRfV1JfREFUQV9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0OQorI2RlZmluZSBtbURBR0I0X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNGEKKyNkZWZpbmUgbW1EQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjRiCisjZGVmaW5lIG1tREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0YworI2RlZmluZSBtbURBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNGQKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfVkMxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjRlCisjZGVmaW5lIG1tREFHQjRfV1JfVkMxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSX1ZDMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0ZgorI2RlZmluZSBtbURBR0I0X1dSX1ZDMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNTAKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfVkM0X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjUxCisjZGVmaW5lIG1tREFHQjRfV1JfVkM0X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSX1ZDNV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI1MgorI2RlZmluZSBtbURBR0I0X1dSX1ZDNV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNTMKKyNkZWZpbmUgbW1EQUdCNF9XUl9WQzZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfVkM3X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjU0CisjZGVmaW5lIG1tREFHQjRfV1JfVkM3X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSX0NOVExfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI1NQorI2RlZmluZSBtbURBR0I0X1dSX0NOVExfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUl9UTEJfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNTYKKyNkZWZpbmUgbW1EQUdCNF9XUl9UTEJfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfREFUQV9DUkVESVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjU3CisjZGVmaW5lIG1tREFHQjRfV1JfREFUQV9DUkVESVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSX01JU0NfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI1OAorI2RlZmluZSBtbURBR0I0X1dSX01JU0NfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNWQKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JDTElfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjVlCisjZGVmaW5lIG1tREFHQjRfV1JDTElfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSQ0xJX0dCTFNFTkRfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI1ZgorI2RlZmluZSBtbURBR0I0X1dSQ0xJX0dCTFNFTkRfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9UTEJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjAKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9UTEJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JDTElfT0FSQl9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYxCisjZGVmaW5lIG1tREFHQjRfV1JDTElfT0FSQl9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1dSQ0xJX09TRF9QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MgorI2RlZmluZSBtbURBR0I0X1dSQ0xJX09TRF9QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9EQlVTX0FTS19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjMKKyNkZWZpbmUgbW1EQUdCNF9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JDTElfREJVU19HT19QRU5ESU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY0CisjZGVmaW5lIG1tREFHQjRfV1JDTElfREJVU19HT19QRU5ESU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X0RBR0JfRExZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NQorI2RlZmluZSBtbURBR0I0X0RBR0JfRExZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9DTlRMX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjYKKyNkZWZpbmUgbW1EQUdCNF9DTlRMX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfQ05UTF9NSVNDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY3CisjZGVmaW5lIG1tREFHQjRfQ05UTF9NSVNDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X0ZJRk9fRU1QVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2OAorI2RlZmluZSBtbURBR0I0X0ZJRk9fRU1QVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9GSUZPX0ZVTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjkKKyNkZWZpbmUgbW1EQUdCNF9GSUZPX0ZVTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfV1JfQ1JFRElUU19GVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZhCisjZGVmaW5lIG1tREFHQjRfV1JfQ1JFRElUU19GVUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JEX0NSRURJVFNfRlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YgorI2RlZmluZSBtbURBR0I0X1JEX0NSRURJVFNfRlVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmMKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUEVSRkNPVU5URVJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZkCisjZGVmaW5lIG1tREFHQjRfUEVSRkNPVU5URVJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2ZQorI2RlZmluZSBtbURBR0I0X1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmYKKyNkZWZpbmUgbW1EQUdCNF9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUEVSRkNPVU5URVIyX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjcwCisjZGVmaW5lIG1tREFHQjRfUEVSRkNPVU5URVIyX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1BFUkZDT1VOVEVSX1JTTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3MQorI2RlZmluZSBtbURBR0I0X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzIKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjczCisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JFU0VSVkUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3NAorI2RlZmluZSBtbURBR0I0X1JFU0VSVkUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzUKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc2CisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JFU0VSVkU1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3NworI2RlZmluZSBtbURBR0I0X1JFU0VSVkU1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzgKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc5CisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JFU0VSVkU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YQorI2RlZmluZSBtbURBR0I0X1JFU0VSVkU4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2IKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdjCisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I0X1JFU0VSVkUxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZAorI2RlZmluZSBtbURBR0I0X1JFU0VSVkUxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2UKKyNkZWZpbmUgbW1EQUdCNF9SRVNFUlZFMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdmCisjZGVmaW5lIG1tREFHQjRfUkVTRVJWRTEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZWFfbW1lYWRlYzAKKy8vIGJhc2UgYWRkcmVzczogMHg2OGEwMAorI2RlZmluZSBtbU1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MAorI2RlZmluZSBtbU1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjgyCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MworI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1JEX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODQKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1JEX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjg1CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RSQU1fUkRfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4NgorI2RlZmluZSBtbU1NRUEwX0RSQU1fUkRfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1dSX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODcKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1dSX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjg4CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4OQorI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1BBR0VfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOGEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1BBR0VfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjhiCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4YworI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1JEX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOGQKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1JEX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjhlCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RSQU1fUkRfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4ZgorI2RlZmluZSBtbU1NRUEwX0RSQU1fUkRfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1dSX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTAKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1dSX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkxCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MgorI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTMKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk0CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NQorI2RlZmluZSBtbU1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTYKKyNkZWZpbmUgbW1NTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk3CisjZGVmaW5lIG1tTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5OAorI2RlZmluZSBtbU1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTkKKyNkZWZpbmUgbW1NTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlhCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YgorI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWMKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlkCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZQorI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfUkRfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWYKKyNkZWZpbmUgbW1NTUVBMF9HTUlfUkRfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEwCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0dNSV9SRF9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMQorI2RlZmluZSBtbU1NRUEwX0dNSV9SRF9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTIKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfR01JX1BBR0VfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEzCisjZGVmaW5lIG1tTU1FQTBfR01JX1BBR0VfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0dNSV9SRF9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhNAorI2RlZmluZSBtbU1NRUEwX0dNSV9SRF9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTUKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmE2CisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhNworI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfUkRfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTgKKyNkZWZpbmUgbW1NTUVBMF9HTUlfUkRfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmE5CisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhYQorI2RlZmluZSBtbU1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYWIKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmFjCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhZAorI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYWUKKyNkZWZpbmUgbW1NTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmFmCisjZGVmaW5lIG1tTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiMAorI2RlZmluZSBtbU1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjEKKyNkZWZpbmUgbW1NTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmIyCisjZGVmaW5lIG1tTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiMworI2RlZmluZSBtbU1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9CQVNFX0FERFIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjQKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmI1CisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiNgorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9MSU1JVF9BRERSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjcKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9MSU1JVF9BRERSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmI4CisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiOQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9MSU1JVF9BRERSMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmEKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9MSU1JVF9BRERSMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJiCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYworI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9PRkZTRVRfQUREUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmQKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9PRkZTRVRfQUREUjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJlCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiZgorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9CQVNFX0FERFI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzAKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMxCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX09GRlNFVF9BRERSNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMgorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNX09GRlNFVF9BRERSNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STURSQU1fSE9MRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzMKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STURSQU1fSE9MRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1HTUlfSE9MRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM0CisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1HTUlfSE9MRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzYKKyNkZWZpbmUgbW1NTUVBMF9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ19CQU5LX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM3CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ19CQU5LX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNfTUlTQ19DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjOAorI2RlZmluZSBtbU1NRUEwX0FERFJERUNfTUlTQ19DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzkKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmNhCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjYgorI2RlZmluZSBtbU1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyY2MKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmNkCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjZQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyY2YKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDIKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNAorI2RlZmluZSBtbU1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDUKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ2CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNworI2RlZmluZSBtbU1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDgKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ5CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX1BDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkYQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9QQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZGIKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9QQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmRjCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkZAorI2RlZmluZSBtbU1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZGUKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmRmCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlMAorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9CQVNFX0FERFJfQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9CQVNFX0FERFJfQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmUyCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlMworI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTQKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU1CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlNgorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9BRERSX01BU0tfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTcKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9BRERSX01BU0tfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlOQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmViCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0FERFJfQ0ZHX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYworI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9BRERSX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWQKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9BRERSX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0FERFJfU0VMMl9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZgorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0FERFJfU0VMMl9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9BRERSX1NFTDJfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjAKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9BRERSX1NFTDJfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMgorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjMKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY0CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9STV9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjYKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMF9STV9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY3CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmOAorI2RlZmluZSBtbU1NRUEwX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjkKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmZhCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9DUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmYgorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9DUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZmMKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmZkCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmZQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZmYKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0FERFJfTUFTS19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0FERFJfTUFTS19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9BRERSX01BU0tfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDIKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9BRERSX01BU0tfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAzCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwNAorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDUKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9DRkdfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzA2CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0FERFJfU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwNworI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0FERFJfU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDgKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9TRUwyX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzA5CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0FERFJfU0VMMl9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwYQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0FERFJfU0VMMl9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMGIKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzBjCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwZAorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMGUKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzBmCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMAorI2RlZmluZSBtbU1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEyCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMworI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9CQVNFX0FERFJfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTQKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9CQVNFX0FERFJfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE1CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNgorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTcKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE4CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxOQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFiCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0FERFJfTUFTS19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYworI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0FERFJfTUFTS19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWQKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFlCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxZgorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9BRERSX0NGR19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjAKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9BRERSX0NGR19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzIxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyMgorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9BRERSX1NFTDJfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjMKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9TRUwyX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI0CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyNQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjYKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI3CisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyOAorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9STV9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjkKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9STV9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJhCisjZGVmaW5lIG1tTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyYgorI2RlZmluZSBtbU1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9STV9TRUxfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmMKKyNkZWZpbmUgbW1NTUVBMF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJkCisjZGVmaW5lIG1tTU1FQTBfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZQorI2RlZmluZSBtbU1NRUEwX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9JT19SRF9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTUKKyNkZWZpbmUgbW1NTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzU2CisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1NworI2RlZmluZSBtbU1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9JT19XUl9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTgKKyNkZWZpbmUgbW1NTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfQ09NQklORV9GTFVTSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzU5CisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfQ09NQklORV9GTFVTSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0lPX1dSX0NPTUJJTkVfRkxVU0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1YQorI2RlZmluZSBtbU1NRUEwX0lPX1dSX0NPTUJJTkVfRkxVU0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9JT19HUk9VUF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNWIKKyNkZWZpbmUgbW1NTUVBMF9JT19HUk9VUF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzVjCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0lPX1dSX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1ZAorI2RlZmluZSBtbU1NRUEwX0lPX1dSX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9JT19SRF9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNWUKKyNkZWZpbmUgbW1NTUVBMF9JT19SRF9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzVmCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0lPX1JEX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2MAorI2RlZmluZSBtbU1NRUEwX0lPX1JEX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9JT19XUl9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjEKKyNkZWZpbmUgbW1NTUVBMF9JT19XUl9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzYyCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2MworI2RlZmluZSBtbU1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjQKKyNkZWZpbmUgbW1NTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzY1CisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0lPX1JEX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2NgorI2RlZmluZSBtbU1NRUEwX0lPX1JEX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjcKKyNkZWZpbmUgbW1NTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzY4CisjZGVmaW5lIG1tTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0lPX1dSX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2OQorI2RlZmluZSBtbU1NRUEwX0lPX1dSX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmEKKyNkZWZpbmUgbW1NTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZiCisjZGVmaW5lIG1tTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX1NEUF9BUkJfRFJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2YworI2RlZmluZSBtbU1NRUEwX1NEUF9BUkJfRFJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9TRFBfQVJCX0dNSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmQKKyNkZWZpbmUgbW1NTUVBMF9TRFBfQVJCX0dNSV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfU0RQX0FSQl9GSU5BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZlCisjZGVmaW5lIG1tTU1FQTBfU0RQX0FSQl9GSU5BTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2ZgorI2RlZmluZSBtbU1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9TRFBfR01JX1BSSU9SSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzAKKyNkZWZpbmUgbW1NTUVBMF9TRFBfR01JX1BSSU9SSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfU0RQX0lPX1BSSU9SSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcxCisjZGVmaW5lIG1tTU1FQTBfU0RQX0lPX1BSSU9SSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX1NEUF9DUkVESVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MgorI2RlZmluZSBtbU1NRUEwX1NEUF9DUkVESVRTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9TRFBfVEFHX1JFU0VSVkUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzMKKyNkZWZpbmUgbW1NTUVBMF9TRFBfVEFHX1JFU0VSVkUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfU0RQX1RBR19SRVNFUlZFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzc0CisjZGVmaW5lIG1tTU1FQTBfU0RQX1RBR19SRVNFUlZFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX1NEUF9WQ0NfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3NQorI2RlZmluZSBtbU1NRUEwX1NEUF9WQ0NfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9TRFBfVkNDX1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzYKKyNkZWZpbmUgbW1NTUVBMF9TRFBfVkNDX1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfU0RQX1ZDRF9SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzc3CisjZGVmaW5lIG1tTU1FQTBfU0RQX1ZDRF9SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX1NEUF9WQ0RfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3OAorI2RlZmluZSBtbU1NRUEwX1NEUF9WQ0RfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9TRFBfUkVRX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzkKKyNkZWZpbmUgbW1NTUVBMF9TRFBfUkVRX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzdhCisjZGVmaW5lIG1tTU1FQTBfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0xBVEVOQ1lfU0FNUExJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3YgorI2RlZmluZSBtbU1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9QRVJGQ09VTlRFUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzN2MKKyNkZWZpbmUgbW1NTUVBMF9QRVJGQ09VTlRFUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfUEVSRkNPVU5URVJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzdkCisjZGVmaW5lIG1tTU1FQTBfUEVSRkNPVU5URVJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3ZQorI2RlZmluZSBtbU1NRUEwX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzN2YKKyNkZWZpbmUgbW1NTUVBMF9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwCisjZGVmaW5lIG1tTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0VEQ19DTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NgorI2RlZmluZSBtbU1NRUEwX0VEQ19DTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9FRENfQ05UMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODcKKyNkZWZpbmUgbW1NTUVBMF9FRENfQ05UMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg4CisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RTTV9DTlRMQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4OQorI2RlZmluZSBtbU1NRUEwX0RTTV9DTlRMQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EU01fQ05UTEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOGEKKyNkZWZpbmUgbW1NTUVBMF9EU01fQ05UTEJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzhiCisjZGVmaW5lIG1tTU1FQTBfRFNNX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0RTTV9DTlRMMkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4YworI2RlZmluZSBtbU1NRUEwX0RTTV9DTlRMMkFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9EU01fQ05UTDJCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOGQKKyNkZWZpbmUgbW1NTUVBMF9EU01fQ05UTDJCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzhmCisjZGVmaW5lIG1tTU1FQTBfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0VEQ19NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5MAorI2RlZmluZSBtbU1NRUEwX0VEQ19NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9FUlJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOTEKKyNkZWZpbmUgbW1NTUVBMF9FUlJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTBfTUlTQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzkyCisjZGVmaW5lIG1tTU1FQTBfTUlTQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEwX0FERFJERUNfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5MworI2RlZmluZSBtbU1NRUEwX0FERFJERUNfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMF9FRENfQ05UMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOTQKKyNkZWZpbmUgbW1NTUVBMF9FRENfQ05UM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9lYV9tbWVhZGVjMQorLy8gYmFzZSBhZGRyZXNzOiAweDY4ZjAwCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MwCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzIKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MzCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNAorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1dSX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzUKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1dSX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9SRF9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M2CisjZGVmaW5lIG1tTU1FQTFfRFJBTV9SRF9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNworI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1JEX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzgKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1JEX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M5CisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RSQU1fUEFHRV9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjYQorI2RlZmluZSBtbU1NRUExX0RSQU1fUEFHRV9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1JEX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2IKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1JEX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NjCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjZAorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1dSX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2UKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1dSX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9SRF9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NmCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9SRF9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkMAorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1JEX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDEKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1JEX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2QyCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkMworI2RlZmluZSBtbU1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDQKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q1CisjZGVmaW5lIG1tTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkNgorI2RlZmluZSBtbU1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDcKKyNkZWZpbmUgbW1NTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q4CisjZGVmaW5lIG1tTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkOQorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RiCisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYworI2RlZmluZSBtbU1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGQKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RlCisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZgorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfV1JfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTAKKyNkZWZpbmUgbW1NTUVBMV9HTUlfV1JfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfR01JX1JEX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2UxCisjZGVmaW5lIG1tTU1FQTFfR01JX1JEX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlMgorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUEFHRV9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTMKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUEFHRV9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfR01JX1JEX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2U0CisjZGVmaW5lIG1tTU1FQTFfR01JX1JEX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlNQorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTYKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2U3CisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlOAorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfV1JfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTkKKyNkZWZpbmUgbW1NTUVBMV9HTUlfV1JfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2VhCisjZGVmaW5lIG1tTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlYgorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZWMKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2VkCisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlZQorI2RlZmluZSBtbU1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZWYKKyNkZWZpbmUgbW1NTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2YwCisjZGVmaW5lIG1tTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNmMQorI2RlZmluZSBtbU1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZjIKKyNkZWZpbmUgbW1NTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2YzCisjZGVmaW5lIG1tTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNmNAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9MSU1JVF9BRERSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZjUKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9MSU1JVF9BRERSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Y2CisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNmNworI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9PRkZTRVRfQUREUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZjgKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9PRkZTRVRfQUREUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Y5CisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNmYQorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9CQVNFX0FERFIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZmIKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ZjCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX09GRlNFVF9BRERSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNmZAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX09GRlNFVF9BRERSM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9CQVNFX0FERFI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZmUKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ZmCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMAorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9MSU1JVF9BRERSNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STV9MSU1JVF9BRERSNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fT0ZGU0VUX0FERFI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAyCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1fT0ZGU0VUX0FERFI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNRFJBTV9IT0xFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMworI2RlZmluZSBtbU1NRUExX0FERFJOT1JNRFJBTV9IT0xFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STUdNSV9IT0xFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDQKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STUdNSV9IT0xFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA1CisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwNgorI2RlZmluZSBtbU1NRUExX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDX0JBTktfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDcKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDX0JBTktfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ19NSVNDX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDA4CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ19NSVNDX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwOQorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MGEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDBiCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwYworI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MGQKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDBlCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwZgorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MTAKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDExCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQxMgorI2RlZmluZSBtbU1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MTMKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDE0CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQxNQorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MTYKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDE3CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQxOAorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MTkKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDFhCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQxYgorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MWMKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDFkCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQxZQorI2RlZmluZSBtbU1NRUExX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MWYKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDIwCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQyMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MjIKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDIzCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQyNAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MjUKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDI2CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfTUFTS19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQyNworI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfTUFTS19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9BRERSX01BU0tfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MjgKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9BRERSX01BU0tfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDI5CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQyYQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MmIKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQUREUl9DRkdfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDJjCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQyZAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MmUKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQUREUl9TRUwyX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDJmCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfU0VMMl9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzMAorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0FERFJfU0VMMl9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MzEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDMyCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzMworI2RlZmluZSBtbU1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MzQKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDM1CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX1JNX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzNgorI2RlZmluZSBtbU1NRUExX0FERFJERUMwX1JNX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MzcKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDM4CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzOQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9CQVNFX0FERFJfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0M2EKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9CQVNFX0FERFJfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDNiCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzYworI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0M2QKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDNlCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzZgorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NDAKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQUREUl9NQVNLX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDQxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfTUFTS19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ0MgorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfTUFTS19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NDMKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDQ0CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ0NQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9BRERSX0NGR19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NDYKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9BRERSX0NGR19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQUREUl9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDQ3CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ0OAorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9BRERSX1NFTDJfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NDkKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQUREUl9TRUwyX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDRhCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ0YgorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NGMKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDRkCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ0ZQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9STV9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NGYKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9STV9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDUwCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ1MQorI2RlZmluZSBtbU1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9STV9TRUxfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NTIKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDUzCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ1NAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9CQVNFX0FERFJfQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NTUKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9CQVNFX0FERFJfQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDU2CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ1NworI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NTgKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDU5CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ1YQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9BRERSX01BU0tfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NWIKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9BRERSX01BU0tfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQUREUl9NQVNLX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDVjCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ1ZAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NWUKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDVmCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfQ0ZHX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ2MAorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9BRERSX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NjEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9BRERSX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDYyCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfU0VMMl9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ2MworI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0FERFJfU0VMMl9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9BRERSX1NFTDJfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NjQKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9BRERSX1NFTDJfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDY1CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ2NgorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NjcKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDY4CisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX1JNX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ2OQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX1JNX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9STV9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NmEKKyNkZWZpbmUgbW1NTUVBMV9BRERSREVDMl9STV9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDZiCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ2YworI2RlZmluZSBtbU1NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STURSQU1fR0xPQkFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NmQKKyNkZWZpbmUgbW1NTUVBMV9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1HTUlfR0xPQkFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDZlCisjZGVmaW5lIG1tTU1FQTFfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ5NQorI2RlZmluZSBtbU1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OTYKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDk3CisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ5OAorI2RlZmluZSBtbU1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9DT01CSU5FX0ZMVVNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OTkKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9DT01CSU5FX0ZMVVNIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfQ09NQklORV9GTFVTSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDlhCisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfQ09NQklORV9GTFVTSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0lPX0dST1VQX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ5YgorI2RlZmluZSBtbU1NRUExX0lPX0dST1VQX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OWMKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDlkCisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ5ZQorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9JT19XUl9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OWYKKyNkZWZpbmUgbW1NTUVBMV9JT19XUl9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfSU9fUkRfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGEwCisjZGVmaW5lIG1tTU1FQTFfSU9fUkRfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRhMQorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YTIKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGEzCisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRhNAorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YTUKKyNkZWZpbmUgbW1NTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfSU9fUkRfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGE2CisjZGVmaW5lIG1tTU1FQTFfSU9fUkRfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRhNworI2RlZmluZSBtbU1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YTgKKyNkZWZpbmUgbW1NTUVBMV9JT19SRF9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGE5CisjZGVmaW5lIG1tTU1FQTFfSU9fV1JfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRhYQorI2RlZmluZSBtbU1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9JT19XUl9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YWIKKyNkZWZpbmUgbW1NTUVBMV9JT19XUl9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfU0RQX0FSQl9EUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGFjCisjZGVmaW5lIG1tTU1FQTFfU0RQX0FSQl9EUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX1NEUF9BUkJfR01JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRhZAorI2RlZmluZSBtbU1NRUExX1NEUF9BUkJfR01JX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9TRFBfQVJCX0ZJTkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YWUKKyNkZWZpbmUgbW1NTUVBMV9TRFBfQVJCX0ZJTkFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGFmCisjZGVmaW5lIG1tTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX1NEUF9HTUlfUFJJT1JJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRiMAorI2RlZmluZSBtbU1NRUExX1NEUF9HTUlfUFJJT1JJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9TRFBfSU9fUFJJT1JJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YjEKKyNkZWZpbmUgbW1NTUVBMV9TRFBfSU9fUFJJT1JJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfU0RQX0NSRURJVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGIyCisjZGVmaW5lIG1tTU1FQTFfU0RQX0NSRURJVFNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX1NEUF9UQUdfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRiMworI2RlZmluZSBtbU1NRUExX1NEUF9UQUdfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9TRFBfVEFHX1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YjQKKyNkZWZpbmUgbW1NTUVBMV9TRFBfVEFHX1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfU0RQX1ZDQ19SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGI1CisjZGVmaW5lIG1tTU1FQTFfU0RQX1ZDQ19SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX1NEUF9WQ0NfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRiNgorI2RlZmluZSBtbU1NRUExX1NEUF9WQ0NfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9TRFBfVkNEX1JFU0VSVkUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YjcKKyNkZWZpbmUgbW1NTUVBMV9TRFBfVkNEX1JFU0VSVkUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGI4CisjZGVmaW5lIG1tTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX1NEUF9SRVFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRiOQorI2RlZmluZSBtbU1NRUExX1NEUF9SRVFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YmEKKyNkZWZpbmUgbW1NTUVBMV9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfTEFURU5DWV9TQU1QTElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGJiCisjZGVmaW5lIG1tTU1FQTFfTEFURU5DWV9TQU1QTElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX1BFUkZDT1VOVEVSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRiYworI2RlZmluZSBtbU1NRUExX1BFUkZDT1VOVEVSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9QRVJGQ09VTlRFUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YmQKKyNkZWZpbmUgbW1NTUVBMV9QRVJGQ09VTlRFUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfUEVSRkNPVU5URVIwX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGJlCisjZGVmaW5lIG1tTU1FQTFfUEVSRkNPVU5URVIwX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX1BFUkZDT1VOVEVSMV9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRiZgorI2RlZmluZSBtbU1NRUExX1BFUkZDT1VOVEVSMV9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YzAKKyNkZWZpbmUgbW1NTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRURDX0NOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGM2CisjZGVmaW5lIG1tTU1FQTFfRURDX0NOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0VEQ19DTlQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRjNworI2RlZmluZSBtbU1NRUExX0VEQ19DTlQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EU01fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YzgKKyNkZWZpbmUgbW1NTUVBMV9EU01fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFNNX0NOVExBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGM5CisjZGVmaW5lIG1tTU1FQTFfRFNNX0NOVExBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRjYQorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9EU01fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0Y2IKKyNkZWZpbmUgbW1NTUVBMV9EU01fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRFNNX0NOVEwyQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGNjCisjZGVmaW5lIG1tTU1FQTFfRFNNX0NOVEwyQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMMkIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRjZAorI2RlZmluZSBtbU1NRUExX0RTTV9DTlRMMkJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0Y2YKKyNkZWZpbmUgbW1NTUVBMV9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfRURDX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGQwCisjZGVmaW5lIG1tTU1FQTFfRURDX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0VSUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRkMQorI2RlZmluZSBtbU1NRUExX0VSUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMV9NSVNDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ZDIKKyNkZWZpbmUgbW1NTUVBMV9NSVNDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ19TRUxFQ1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGQzCisjZGVmaW5lIG1tTU1FQTFfQUREUkRFQ19TRUxFQ1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUExX0VEQ19DTlQzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRkNAorI2RlZmluZSBtbU1NRUExX0VEQ19DTlQzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2VhX21tZWFkZWMyCisvLyBiYXNlIGFkZHJlc3M6IDB4Njk0MDAKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MDAKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTAxCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwMgorI2RlZmluZSBtbU1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MDMKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9SRF9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTA0CisjZGVmaW5lIG1tTU1FQTJfRFJBTV9SRF9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RSQU1fV1JfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwNQorI2RlZmluZSBtbU1NRUEyX0RSQU1fV1JfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MDYKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9XUl9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTA3CisjZGVmaW5lIG1tTU1FQTJfRFJBTV9XUl9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RSQU1fUkRfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwOAorI2RlZmluZSBtbU1NRUEyX0RSQU1fUkRfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MDkKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9QQUdFX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTBhCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9QQUdFX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RSQU1fUkRfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwYgorI2RlZmluZSBtbU1NRUEyX0RSQU1fUkRfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MGMKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9SRF9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTBkCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9SRF9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RSQU1fV1JfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwZQorI2RlZmluZSBtbU1NRUEyX0RSQU1fV1JfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MGYKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9XUl9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTEwCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9XUl9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RSQU1fUkRfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxMQorI2RlZmluZSBtbU1NRUEyX0RSQU1fUkRfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MTIKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTEzCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxNAorI2RlZmluZSBtbU1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MTUKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTE2CisjZGVmaW5lIG1tTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxNworI2RlZmluZSBtbU1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MTgKKyNkZWZpbmUgbW1NTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTE5CisjZGVmaW5lIG1tTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxYQorI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MWIKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTFjCisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUxZAorI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MWUKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfR01JX1JEX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTFmCisjZGVmaW5lIG1tTU1FQTJfR01JX1JEX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0dNSV9XUl9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyMAorI2RlZmluZSBtbU1NRUEyX0dNSV9XUl9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MjEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTIyCisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0dNSV9QQUdFX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyMworI2RlZmluZSBtbU1NRUEyX0dNSV9QQUdFX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MjQKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTI1CisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyNgorI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MjcKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfR01JX1JEX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTI4CisjZGVmaW5lIG1tTU1FQTJfR01JX1JEX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0dNSV9XUl9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyOQorI2RlZmluZSBtbU1NRUEyX0dNSV9XUl9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MmEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTJiCisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyYworI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MmQKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTJlCisjZGVmaW5lIG1tTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUyZgorI2RlZmluZSBtbU1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MzAKKyNkZWZpbmUgbW1NTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTMxCisjZGVmaW5lIG1tTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUzMgorI2RlZmluZSBtbU1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MzMKKyNkZWZpbmUgbW1NTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTM0CisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUzNQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MzYKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTM3CisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX09GRlNFVF9BRERSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUzOAorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX09GRlNFVF9BRERSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1MzkKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTNhCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUzYgorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1M2MKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fT0ZGU0VUX0FERFIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTNkCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fT0ZGU0VUX0FERFIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUzZQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1M2YKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTQwCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU0MQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NDIKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1EUkFNX0hPTEVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTQzCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNR01JX0hPTEVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU0NAorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNR01JX0hPTEVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NDUKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTQ2CisjZGVmaW5lIG1tTU1FQTJfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNfQkFOS19DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU0NworI2RlZmluZSBtbU1NRUEyX0FERFJERUNfQkFOS19DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDX01JU0NfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NDgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDX01JU0NfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTQ5CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU0YQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NGIKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTRjCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU0ZAorI2RlZmluZSBtbU1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NGUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTRmCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1MAorI2RlZmluZSBtbU1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NTEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTUyCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1MworI2RlZmluZSBtbU1NRUEyX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NTQKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTU1CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1NgorI2RlZmluZSBtbU1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NTcKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTU4CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1OQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9QQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NWEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9QQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTViCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1YworI2RlZmluZSBtbU1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NWQKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTVlCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU1ZgorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NjAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTYxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2MgorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NjMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTY0CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2NQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NjYKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQUREUl9NQVNLX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTY3CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0FERFJfTUFTS19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2OAorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0FERFJfTUFTS19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NjkKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTZhCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2YgorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX0NGR19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NmMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX0NGR19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQUREUl9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTZkCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU2ZQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX1NFTDJfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NmYKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9BRERSX1NFTDJfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQUREUl9TRUwyX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTcwCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3MQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NzIKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTczCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3NAorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9STV9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NzUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9STV9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTc2CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3NworI2RlZmluZSBtbU1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1NzgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTc5CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3YQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1N2IKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTdjCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU3ZAorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1N2UKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTdmCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4MAorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX01BU0tfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ODEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX01BU0tfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQUREUl9NQVNLX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTgyCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4MworI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ODQKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTg1CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0FERFJfQ0ZHX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4NgorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ODcKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTg4CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0FERFJfU0VMMl9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4OQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0FERFJfU0VMMl9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX1NFTDJfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OGEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9BRERSX1NFTDJfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNThiCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4YworI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OGQKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNThlCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4ZgorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9STV9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OTAKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMV9STV9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTkxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5MgorI2RlZmluZSBtbU1NRUEyX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OTMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTk0CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9DUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5NQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9DUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OTYKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTk3CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5OAorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OTkKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTlhCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0FERFJfTUFTS19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5YgorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0FERFJfTUFTS19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX01BU0tfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OWMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX01BU0tfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTlkCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU5ZQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1OWYKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQUREUl9DRkdfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWEwCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0FERFJfU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0FERFJfU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YTIKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQUREUl9TRUwyX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWEzCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0FERFJfU0VMMl9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhNAorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0FERFJfU0VMMl9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YTUKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWE2CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhNworI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YTgKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWE5CisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhYQorI2RlZmluZSBtbU1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YWIKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWFjCisjZGVmaW5lIG1tTU1FQTJfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVhZAorI2RlZmluZSBtbU1NRUEyX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STUdNSV9HTE9CQUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1YWUKKyNkZWZpbmUgbW1NTUVBMl9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWQ1CisjZGVmaW5lIG1tTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVkNgorI2RlZmluZSBtbU1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZDcKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWQ4CisjZGVmaW5lIG1tTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0lPX1JEX0NPTUJJTkVfRkxVU0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVkOQorI2RlZmluZSBtbU1NRUEyX0lPX1JEX0NPTUJJTkVfRkxVU0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9DT01CSU5FX0ZMVVNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZGEKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9DT01CSU5FX0ZMVVNIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfSU9fR1JPVVBfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWRiCisjZGVmaW5lIG1tTU1FQTJfSU9fR1JPVVBfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0lPX1JEX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVkYworI2RlZmluZSBtbU1NRUEyX0lPX1JEX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZGQKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfSU9fUkRfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWRlCisjZGVmaW5lIG1tTU1FQTJfSU9fUkRfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0lPX1dSX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVkZgorI2RlZmluZSBtbU1NRUEyX0lPX1dSX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZTAKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfSU9fV1JfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWUxCisjZGVmaW5lIG1tTU1FQTJfSU9fV1JfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVlMgorI2RlZmluZSBtbU1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZTMKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWU0CisjZGVmaW5lIG1tTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVlNQorI2RlZmluZSBtbU1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZTYKKyNkZWZpbmUgbW1NTUVBMl9JT19SRF9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWU3CisjZGVmaW5lIG1tTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0lPX1JEX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVlOAorI2RlZmluZSBtbU1NRUEyX0lPX1JEX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZTkKKyNkZWZpbmUgbW1NTUVBMl9JT19XUl9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWVhCisjZGVmaW5lIG1tTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0lPX1dSX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVlYgorI2RlZmluZSBtbU1NRUEyX0lPX1dSX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9TRFBfQVJCX0RSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZWMKKyNkZWZpbmUgbW1NTUVBMl9TRFBfQVJCX0RSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfU0RQX0FSQl9HTUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWVkCisjZGVmaW5lIG1tTU1FQTJfU0RQX0FSQl9HTUlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX1NEUF9BUkJfRklOQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVlZQorI2RlZmluZSBtbU1NRUEyX1NEUF9BUkJfRklOQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9TRFBfRFJBTV9QUklPUklUWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZWYKKyNkZWZpbmUgbW1NTUVBMl9TRFBfRFJBTV9QUklPUklUWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfU0RQX0dNSV9QUklPUklUWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWYwCisjZGVmaW5lIG1tTU1FQTJfU0RQX0dNSV9QUklPUklUWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX1NEUF9JT19QUklPUklUWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVmMQorI2RlZmluZSBtbU1NRUEyX1NEUF9JT19QUklPUklUWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9TRFBfQ1JFRElUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZjIKKyNkZWZpbmUgbW1NTUVBMl9TRFBfQ1JFRElUU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfU0RQX1RBR19SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWYzCisjZGVmaW5lIG1tTU1FQTJfU0RQX1RBR19SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX1NEUF9UQUdfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVmNAorI2RlZmluZSBtbU1NRUEyX1NEUF9UQUdfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVkNDX1JFU0VSVkUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZjUKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVkNDX1JFU0VSVkUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfU0RQX1ZDQ19SRVNFUlZFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWY2CisjZGVmaW5lIG1tTU1FQTJfU0RQX1ZDQ19SRVNFUlZFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX1NEUF9WQ0RfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVmNworI2RlZmluZSBtbU1NRUEyX1NEUF9WQ0RfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVkNEX1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZjgKKyNkZWZpbmUgbW1NTUVBMl9TRFBfVkNEX1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfU0RQX1JFUV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWY5CisjZGVmaW5lIG1tTU1FQTJfU0RQX1JFUV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVmYQorI2RlZmluZSBtbU1NRUEyX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9MQVRFTkNZX1NBTVBMSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZmIKKyNkZWZpbmUgbW1NTUVBMl9MQVRFTkNZX1NBTVBMSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfUEVSRkNPVU5URVJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWZjCisjZGVmaW5lIG1tTU1FQTJfUEVSRkNPVU5URVJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX1BFUkZDT1VOVEVSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDVmZAorI2RlZmluZSBtbU1NRUEyX1BFUkZDT1VOVEVSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9QRVJGQ09VTlRFUjBfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ZmUKKyNkZWZpbmUgbW1NTUVBMl9QRVJGQ09VTlRFUjBfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfUEVSRkNPVU5URVIxX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNWZmCisjZGVmaW5lIG1tTU1FQTJfUEVSRkNPVU5URVIxX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYwMAorI2RlZmluZSBtbU1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9FRENfQ05UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MDYKKyNkZWZpbmUgbW1NTUVBMl9FRENfQ05UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRURDX0NOVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjA3CisjZGVmaW5lIG1tTU1FQTJfRURDX0NOVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RTTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYwOAorI2RlZmluZSBtbU1NRUEyX0RTTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MDkKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFNNX0NOVExCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjBhCisjZGVmaW5lIG1tTU1FQTJfRFNNX0NOVExCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0RTTV9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYwYgorI2RlZmluZSBtbU1NRUEyX0RTTV9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTDJBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MGMKKyNkZWZpbmUgbW1NTUVBMl9EU01fQ05UTDJBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRFNNX0NOVEwyQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjBkCisjZGVmaW5lIG1tTU1FQTJfRFNNX0NOVEwyQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYwZgorI2RlZmluZSBtbU1NRUEyX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9FRENfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MTAKKyNkZWZpbmUgbW1NTUVBMl9FRENfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRVJSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjExCisjZGVmaW5lIG1tTU1FQTJfRVJSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEyX01JU0MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYxMgorI2RlZmluZSBtbU1NRUEyX01JU0MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDX1NFTEVDVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MTMKKyNkZWZpbmUgbW1NTUVBMl9BRERSREVDX1NFTEVDVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTJfRURDX0NOVDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjE0CisjZGVmaW5lIG1tTU1FQTJfRURDX0NOVDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZWFfbW1lYWRlYzMKKy8vIGJhc2UgYWRkcmVzczogMHg2OTkwMAorI2RlZmluZSBtbU1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0MAorI2RlZmluZSBtbU1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NDEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjQyCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0MworI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1JEX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NDQKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1JEX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjQ1CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RSQU1fUkRfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0NgorI2RlZmluZSBtbU1NRUEzX0RSQU1fUkRfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1dSX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NDcKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1dSX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjQ4CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0OQorI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1BBR0VfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NGEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1BBR0VfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjRiCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0YworI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1JEX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NGQKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1JEX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjRlCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RSQU1fUkRfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY0ZgorI2RlZmluZSBtbU1NRUEzX0RSQU1fUkRfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1dSX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NTAKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1dSX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjUxCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1MgorI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NTMKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjU0CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1NQorI2RlZmluZSBtbU1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NTYKKyNkZWZpbmUgbW1NTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjU3CisjZGVmaW5lIG1tTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1OAorI2RlZmluZSBtbU1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NTkKKyNkZWZpbmUgbW1NTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjVhCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1YgorI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NWMKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjVkCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY1ZQorI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19HTUlfUkRfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NWYKKyNkZWZpbmUgbW1NTUVBM19HTUlfUkRfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjYwCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0dNSV9SRF9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY2MQorI2RlZmluZSBtbU1NRUEzX0dNSV9SRF9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NjIKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfR01JX1BBR0VfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjYzCisjZGVmaW5lIG1tTU1FQTNfR01JX1BBR0VfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0dNSV9SRF9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY2NAorI2RlZmluZSBtbU1NRUEzX0dNSV9SRF9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NjUKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjY2CisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY2NworI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19HTUlfUkRfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NjgKKyNkZWZpbmUgbW1NTUVBM19HTUlfUkRfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjY5CisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY2YQorI2RlZmluZSBtbU1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NmIKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjZjCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY2ZAorI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NmUKKyNkZWZpbmUgbW1NTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjZmCisjZGVmaW5lIG1tTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3MAorI2RlZmluZSBtbU1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NzEKKyNkZWZpbmUgbW1NTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjcyCisjZGVmaW5lIG1tTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3MworI2RlZmluZSBtbU1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9CQVNFX0FERFIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NzQKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9CQVNFX0FERFIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjc1CisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3NgorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9MSU1JVF9BRERSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2NzcKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9MSU1JVF9BRERSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjc4CisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3OQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9MSU1JVF9BRERSMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2N2EKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9MSU1JVF9BRERSMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjdiCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3YworI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9PRkZTRVRfQUREUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2N2QKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9PRkZTRVRfQUREUjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjdlCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY3ZgorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9CQVNFX0FERFI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ODAKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STV9CQVNFX0FERFI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjgxCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX09GRlNFVF9BRERSNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4MgorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNX09GRlNFVF9BRERSNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STURSQU1fSE9MRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ODMKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STURSQU1fSE9MRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1HTUlfSE9MRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjg0CisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1HTUlfSE9MRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4NQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ODYKKyNkZWZpbmUgbW1NTUVBM19BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ19CQU5LX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjg3CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ19CQU5LX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNfTUlTQ19DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4OAorI2RlZmluZSBtbU1NRUEzX0FERFJERUNfTUlTQ19DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ODkKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjhhCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4YgorI2RlZmluZSBtbU1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2OGMKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjhkCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4ZQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfUEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2OGYKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfUENfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjkwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY5MQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2OTIKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjkzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY5NAorI2RlZmluZSBtbU1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2OTUKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjk2CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY5NworI2RlZmluZSBtbU1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2OTgKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjk5CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX1BDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY5YQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9QQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2OWIKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9QQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjljCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY5ZAorI2RlZmluZSBtbU1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2OWUKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjlmCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZhMAorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9CQVNFX0FERFJfQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YTEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9CQVNFX0FERFJfQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmEyCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZhMworI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YTQKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmE1CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZhNgorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9BRERSX01BU0tfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YTcKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9BRERSX01BU0tfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmE4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZhOQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YWEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmFiCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0FERFJfQ0ZHX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZhYworI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9BRERSX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YWQKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9BRERSX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmFlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0FERFJfU0VMMl9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZhZgorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0FERFJfU0VMMl9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9BRERSX1NFTDJfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YjAKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9BRERSX1NFTDJfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmIxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZiMgorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YjMKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmI0CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZiNQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9STV9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YjYKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMF9STV9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmI3CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZiOAorI2RlZmluZSBtbU1NRUEzX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YjkKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmJhCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9DUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZiYgorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9DUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YmMKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmJkCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZiZQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YmYKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmMwCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0FERFJfTUFTS19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0FERFJfTUFTS19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9BRERSX01BU0tfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YzIKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9BRERSX01BU0tfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmMzCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjNAorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YzUKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9DRkdfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmM2CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0FERFJfU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjNworI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0FERFJfU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2YzgKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9TRUwyX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmM5CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0FERFJfU0VMMl9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjYQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0FERFJfU0VMMl9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2Y2IKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmNjCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZjZAorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2Y2UKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmNmCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZkMAorI2RlZmluZSBtbU1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmQyCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZkMworI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9CQVNFX0FERFJfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZDQKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9CQVNFX0FERFJfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmQ1CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZkNgorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZDcKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmQ4CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZkOQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZGEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmRiCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0FERFJfTUFTS19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZkYworI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0FERFJfTUFTS19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZGQKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmRlCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZkZgorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9BRERSX0NGR19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZTAKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9BRERSX0NGR19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmUxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlMgorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9BRERSX1NFTDJfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZTMKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9TRUwyX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmU0CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlNQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZTYKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmU3CisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlOAorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9STV9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZTkKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9STV9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmVhCisjZGVmaW5lIG1tTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlYgorI2RlZmluZSBtbU1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9STV9TRUxfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZWMKKyNkZWZpbmUgbW1NTUVBM19BRERSREVDMl9STV9TRUxfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmVkCisjZGVmaW5lIG1tTU1FQTNfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZlZQorI2RlZmluZSBtbU1NRUEzX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19JT19SRF9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MTUKKyNkZWZpbmUgbW1NTUVBM19JT19SRF9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzE2CisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcxNworI2RlZmluZSBtbU1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19JT19XUl9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MTgKKyNkZWZpbmUgbW1NTUVBM19JT19XUl9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfQ09NQklORV9GTFVTSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzE5CisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfQ09NQklORV9GTFVTSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0lPX1dSX0NPTUJJTkVfRkxVU0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcxYQorI2RlZmluZSBtbU1NRUEzX0lPX1dSX0NPTUJJTkVfRkxVU0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19JT19HUk9VUF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MWIKKyNkZWZpbmUgbW1NTUVBM19JT19HUk9VUF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzFjCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0lPX1dSX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcxZAorI2RlZmluZSBtbU1NRUEzX0lPX1dSX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19JT19SRF9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MWUKKyNkZWZpbmUgbW1NTUVBM19JT19SRF9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzFmCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0lPX1JEX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyMAorI2RlZmluZSBtbU1NRUEzX0lPX1JEX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19JT19XUl9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MjEKKyNkZWZpbmUgbW1NTUVBM19JT19XUl9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzIyCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyMworI2RlZmluZSBtbU1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MjQKKyNkZWZpbmUgbW1NTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzI1CisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0lPX1JEX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyNgorI2RlZmluZSBtbU1NRUEzX0lPX1JEX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MjcKKyNkZWZpbmUgbW1NTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzI4CisjZGVmaW5lIG1tTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0lPX1dSX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyOQorI2RlZmluZSBtbU1NRUEzX0lPX1dSX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MmEKKyNkZWZpbmUgbW1NTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzJiCisjZGVmaW5lIG1tTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX1NEUF9BUkJfRFJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyYworI2RlZmluZSBtbU1NRUEzX1NEUF9BUkJfRFJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19TRFBfQVJCX0dNSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MmQKKyNkZWZpbmUgbW1NTUVBM19TRFBfQVJCX0dNSV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfU0RQX0FSQl9GSU5BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzJlCisjZGVmaW5lIG1tTU1FQTNfU0RQX0FSQl9GSU5BTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyZgorI2RlZmluZSBtbU1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19TRFBfR01JX1BSSU9SSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MzAKKyNkZWZpbmUgbW1NTUVBM19TRFBfR01JX1BSSU9SSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfU0RQX0lPX1BSSU9SSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzMxCisjZGVmaW5lIG1tTU1FQTNfU0RQX0lPX1BSSU9SSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX1NEUF9DUkVESVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczMgorI2RlZmluZSBtbU1NRUEzX1NEUF9DUkVESVRTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19TRFBfVEFHX1JFU0VSVkUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MzMKKyNkZWZpbmUgbW1NTUVBM19TRFBfVEFHX1JFU0VSVkUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfU0RQX1RBR19SRVNFUlZFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzM0CisjZGVmaW5lIG1tTU1FQTNfU0RQX1RBR19SRVNFUlZFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX1NEUF9WQ0NfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczNQorI2RlZmluZSBtbU1NRUEzX1NEUF9WQ0NfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19TRFBfVkNDX1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MzYKKyNkZWZpbmUgbW1NTUVBM19TRFBfVkNDX1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfU0RQX1ZDRF9SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzM3CisjZGVmaW5lIG1tTU1FQTNfU0RQX1ZDRF9SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX1NEUF9WQ0RfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczOAorI2RlZmluZSBtbU1NRUEzX1NEUF9WQ0RfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19TRFBfUkVRX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MzkKKyNkZWZpbmUgbW1NTUVBM19TRFBfUkVRX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzNhCisjZGVmaW5lIG1tTU1FQTNfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0xBVEVOQ1lfU0FNUExJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczYgorI2RlZmluZSBtbU1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19QRVJGQ09VTlRFUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3M2MKKyNkZWZpbmUgbW1NTUVBM19QRVJGQ09VTlRFUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfUEVSRkNPVU5URVJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzNkCisjZGVmaW5lIG1tTU1FQTNfUEVSRkNPVU5URVJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDczZQorI2RlZmluZSBtbU1NRUEzX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3M2YKKyNkZWZpbmUgbW1NTUVBM19QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzQwCisjZGVmaW5lIG1tTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0VEQ19DTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc0NgorI2RlZmluZSBtbU1NRUEzX0VEQ19DTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19FRENfQ05UMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NDcKKyNkZWZpbmUgbW1NTUVBM19FRENfQ05UMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzQ4CisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RTTV9DTlRMQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc0OQorI2RlZmluZSBtbU1NRUEzX0RTTV9DTlRMQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EU01fQ05UTEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NGEKKyNkZWZpbmUgbW1NTUVBM19EU01fQ05UTEJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzRiCisjZGVmaW5lIG1tTU1FQTNfRFNNX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0RTTV9DTlRMMkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc0YworI2RlZmluZSBtbU1NRUEzX0RTTV9DTlRMMkFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19EU01fQ05UTDJCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NGQKKyNkZWZpbmUgbW1NTUVBM19EU01fQ05UTDJCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzRmCisjZGVmaW5lIG1tTU1FQTNfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0VEQ19NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc1MAorI2RlZmluZSBtbU1NRUEzX0VEQ19NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19FUlJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NTEKKyNkZWZpbmUgbW1NTUVBM19FUlJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTNfTUlTQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzUyCisjZGVmaW5lIG1tTU1FQTNfTUlTQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUEzX0FERFJERUNfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc1MworI2RlZmluZSBtbU1NRUEzX0FERFJERUNfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBM19FRENfQ05UMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3NTQKKyNkZWZpbmUgbW1NTUVBM19FRENfQ05UM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9lYV9tbWVhZGVjNAorLy8gYmFzZSBhZGRyZXNzOiAweDY5ZTAwCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzgwCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4MQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ODIKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzgzCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4NAorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1dSX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ODUKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1dSX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9SRF9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzg2CisjZGVmaW5lIG1tTU1FQTRfRFJBTV9SRF9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4NworI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1JEX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ODgKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1JEX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzg5CisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUEFHRV9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4YQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUEFHRV9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1JEX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OGIKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1JEX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzhjCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4ZAorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1dSX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OGUKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1dSX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9SRF9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzhmCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9SRF9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc5MAorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1JEX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OTEKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1JEX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzkyCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc5MworI2RlZmluZSBtbU1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OTQKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzk1CisjZGVmaW5lIG1tTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc5NgorI2RlZmluZSBtbU1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OTcKKyNkZWZpbmUgbW1NTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzk4CisjZGVmaW5lIG1tTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc5OQorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OWEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzliCisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc5YworI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OWQKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzllCisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc5ZgorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfV1JfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YTAKKyNkZWZpbmUgbW1NTUVBNF9HTUlfV1JfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfR01JX1JEX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2ExCisjZGVmaW5lIG1tTU1FQTRfR01JX1JEX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhMgorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUEFHRV9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YTMKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUEFHRV9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfR01JX1JEX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2E0CisjZGVmaW5lIG1tTU1FQTRfR01JX1JEX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhNQorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YTYKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2E3CisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhOAorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfV1JfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YTkKKyNkZWZpbmUgbW1NTUVBNF9HTUlfV1JfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2FhCisjZGVmaW5lIG1tTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhYgorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YWMKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2FkCisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdhZQorI2RlZmluZSBtbU1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YWYKKyNkZWZpbmUgbW1NTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2IwCisjZGVmaW5lIG1tTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdiMQorI2RlZmluZSBtbU1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YjIKKyNkZWZpbmUgbW1NTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2IzCisjZGVmaW5lIG1tTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdiNAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9MSU1JVF9BRERSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YjUKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9MSU1JVF9BRERSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2I2CisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdiNworI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9PRkZTRVRfQUREUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YjgKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9PRkZTRVRfQUREUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2I5CisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdiYQorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9CQVNFX0FERFIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YmIKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2JjCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdiZAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9CQVNFX0FERFI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YmUKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2JmCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjMAorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9MSU1JVF9BRERSNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YzEKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STV9MSU1JVF9BRERSNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fT0ZGU0VUX0FERFI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2MyCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1fT0ZGU0VUX0FERFI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNRFJBTV9IT0xFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjMworI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNRFJBTV9IT0xFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STUdNSV9IT0xFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YzQKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STUdNSV9IT0xFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2M1CisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjNgorI2RlZmluZSBtbU1NRUE0X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDX0JBTktfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3YzcKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDX0JBTktfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ19NSVNDX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2M4CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ19NSVNDX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjOQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3Y2EKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2NiCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjYworI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3Y2QKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2NlCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdjZgorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZDAKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2QxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkMgorI2RlZmluZSBtbU1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZDMKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2Q0CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkNQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZDYKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2Q3CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZDkKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2RhCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkYgorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZGMKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2RkCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdkZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZGYKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2UwCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdlMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZTIKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2UzCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdlNAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZTUKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2U2CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfTUFTS19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdlNworI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfTUFTS19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9BRERSX01BU0tfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZTgKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9BRERSX01BU0tfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2U5CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdlYQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZWIKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQUREUl9DRkdfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2VjCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdlZAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZWUKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQUREUl9TRUwyX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2VmCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfU0VMMl9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdmMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0FERFJfU0VMMl9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZjEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2YyCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdmMworI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZjQKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2Y1CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdmNgorI2RlZmluZSBtbU1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZjcKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2Y4CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdmOQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9CQVNFX0FERFJfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZmEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9CQVNFX0FERFJfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2ZiCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdmYworI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ZmQKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN2ZlCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdmZgorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQUREUl9NQVNLX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfTUFTS19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMgorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfTUFTS19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDMKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODA0CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwNQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9BRERSX0NGR19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDYKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9BRERSX0NGR19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQUREUl9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODA3CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwOAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9BRERSX1NFTDJfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDkKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQUREUl9TRUwyX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODBhCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwYgorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MGMKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODBkCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwZQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9STV9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MGYKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9STV9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODEwCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgxMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9STV9TRUxfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTIKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODEzCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgxNAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9CQVNFX0FERFJfQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTUKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9CQVNFX0FERFJfQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODE2CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgxNworI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTgKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODE5CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgxYQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9BRERSX01BU0tfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MWIKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9BRERSX01BU0tfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQUREUl9NQVNLX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODFjCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgxZAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MWUKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODFmCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfQ0ZHX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgyMAorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9BRERSX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MjEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9BRERSX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODIyCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfU0VMMl9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgyMworI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0FERFJfU0VMMl9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9BRERSX1NFTDJfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MjQKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9BRERSX1NFTDJfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODI1CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgyNgorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MjcKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODI4CisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgyOQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9STV9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MmEKKyNkZWZpbmUgbW1NTUVBNF9BRERSREVDMl9STV9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODJiCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgyYworI2RlZmluZSBtbU1NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STURSQU1fR0xPQkFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MmQKKyNkZWZpbmUgbW1NTUVBNF9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1HTUlfR0xPQkFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODJlCisjZGVmaW5lIG1tTU1FQTRfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg1NQorI2RlZmluZSBtbU1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NTYKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODU3CisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg1OAorI2RlZmluZSBtbU1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9DT01CSU5FX0ZMVVNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NTkKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9DT01CSU5FX0ZMVVNIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfQ09NQklORV9GTFVTSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODVhCisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfQ09NQklORV9GTFVTSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0lPX0dST1VQX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg1YgorI2RlZmluZSBtbU1NRUE0X0lPX0dST1VQX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NWMKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODVkCisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg1ZQorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9JT19XUl9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NWYKKyNkZWZpbmUgbW1NTUVBNF9JT19XUl9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfSU9fUkRfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODYwCisjZGVmaW5lIG1tTU1FQTRfSU9fUkRfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg2MQorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NjIKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODYzCisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg2NAorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NjUKKyNkZWZpbmUgbW1NTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfSU9fUkRfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODY2CisjZGVmaW5lIG1tTU1FQTRfSU9fUkRfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg2NworI2RlZmluZSBtbU1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NjgKKyNkZWZpbmUgbW1NTUVBNF9JT19SRF9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODY5CisjZGVmaW5lIG1tTU1FQTRfSU9fV1JfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg2YQorI2RlZmluZSBtbU1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9JT19XUl9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NmIKKyNkZWZpbmUgbW1NTUVBNF9JT19XUl9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfU0RQX0FSQl9EUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODZjCisjZGVmaW5lIG1tTU1FQTRfU0RQX0FSQl9EUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X1NEUF9BUkJfR01JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg2ZAorI2RlZmluZSBtbU1NRUE0X1NEUF9BUkJfR01JX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9TRFBfQVJCX0ZJTkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NmUKKyNkZWZpbmUgbW1NTUVBNF9TRFBfQVJCX0ZJTkFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODZmCisjZGVmaW5lIG1tTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X1NEUF9HTUlfUFJJT1JJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg3MAorI2RlZmluZSBtbU1NRUE0X1NEUF9HTUlfUFJJT1JJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9TRFBfSU9fUFJJT1JJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NzEKKyNkZWZpbmUgbW1NTUVBNF9TRFBfSU9fUFJJT1JJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfU0RQX0NSRURJVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODcyCisjZGVmaW5lIG1tTU1FQTRfU0RQX0NSRURJVFNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X1NEUF9UQUdfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg3MworI2RlZmluZSBtbU1NRUE0X1NEUF9UQUdfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9TRFBfVEFHX1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NzQKKyNkZWZpbmUgbW1NTUVBNF9TRFBfVEFHX1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfU0RQX1ZDQ19SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODc1CisjZGVmaW5lIG1tTU1FQTRfU0RQX1ZDQ19SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X1NEUF9WQ0NfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg3NgorI2RlZmluZSBtbU1NRUE0X1NEUF9WQ0NfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9TRFBfVkNEX1JFU0VSVkUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4NzcKKyNkZWZpbmUgbW1NTUVBNF9TRFBfVkNEX1JFU0VSVkUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODc4CisjZGVmaW5lIG1tTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X1NEUF9SRVFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg3OQorI2RlZmluZSBtbU1NRUE0X1NEUF9SRVFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4N2EKKyNkZWZpbmUgbW1NTUVBNF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfTEFURU5DWV9TQU1QTElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODdiCisjZGVmaW5lIG1tTU1FQTRfTEFURU5DWV9TQU1QTElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X1BFUkZDT1VOVEVSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg3YworI2RlZmluZSBtbU1NRUE0X1BFUkZDT1VOVEVSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9QRVJGQ09VTlRFUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4N2QKKyNkZWZpbmUgbW1NTUVBNF9QRVJGQ09VTlRFUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfUEVSRkNPVU5URVIwX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODdlCisjZGVmaW5lIG1tTU1FQTRfUEVSRkNPVU5URVIwX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X1BFUkZDT1VOVEVSMV9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg3ZgorI2RlZmluZSBtbU1NRUE0X1BFUkZDT1VOVEVSMV9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ODAKKyNkZWZpbmUgbW1NTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRURDX0NOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODg2CisjZGVmaW5lIG1tTU1FQTRfRURDX0NOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0VEQ19DTlQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg4NworI2RlZmluZSBtbU1NRUE0X0VEQ19DTlQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EU01fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ODgKKyNkZWZpbmUgbW1NTUVBNF9EU01fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFNNX0NOVExBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODg5CisjZGVmaW5lIG1tTU1FQTRfRFNNX0NOVExBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg4YQorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9EU01fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4OGIKKyNkZWZpbmUgbW1NTUVBNF9EU01fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRFNNX0NOVEwyQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODhjCisjZGVmaW5lIG1tTU1FQTRfRFNNX0NOVEwyQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMMkIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg4ZAorI2RlZmluZSBtbU1NRUE0X0RTTV9DTlRMMkJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4OGYKKyNkZWZpbmUgbW1NTUVBNF9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfRURDX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODkwCisjZGVmaW5lIG1tTU1FQTRfRURDX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0VSUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg5MQorI2RlZmluZSBtbU1NRUE0X0VSUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNF9NSVNDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4OTIKKyNkZWZpbmUgbW1NTUVBNF9NSVNDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ19TRUxFQ1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODkzCisjZGVmaW5lIG1tTU1FQTRfQUREUkRFQ19TRUxFQ1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE0X0VEQ19DTlQzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg5NAorI2RlZmluZSBtbU1NRUE0X0VEQ19DTlQzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3BjdGxkZWMwCisvLyBiYXNlIGFkZHJlc3M6IDB4NmEzMDAKKyNkZWZpbmUgbW1QQ1RMMF9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YzAKKyNkZWZpbmUgbW1QQ1RMMF9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfTU1IVUJfREVFUFNMRUVQX0lCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGMxCisjZGVmaW5lIG1tUENUTDBfTU1IVUJfREVFUFNMRUVQX0lCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjMgorI2RlZmluZSBtbVBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YzMKKyNkZWZpbmUgbW1QQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGM0CisjZGVmaW5lIG1tUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjNQorI2RlZmluZSBtbVBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YzYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGM3CisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjOAorI2RlZmluZSBtbVBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4YzkKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UxX0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGNhCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjYgorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4Y2MKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UyX0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGNkCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhjZQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4Y2YKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGQwCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhkMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZDIKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0U0X0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGQzCisjZGVmaW5lIG1tUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhkNAorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZDUKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGQ2CisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhkNworI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZDgKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGQ5CisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhkYQorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9SRU5HX0VYRUNVVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZGIKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9SRU5HX0VYRUNVVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX1JFTkdfRVhFQ1VURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGRjCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX1JFTkdfRVhFQ1VURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9SRU5HX0VYRUNVVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhkZAorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9SRU5HX0VYRUNVVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfUkVOR19FWEVDVVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZGUKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfUkVOR19FWEVDVVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX1JFTkdfRVhFQ1VURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGRmCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX1JFTkdfRVhFQ1VURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9SRU5HX0VYRUNVVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlMAorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9SRU5HX0VYRUNVVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9SRU5HX1JBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZTEKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9SRU5HX1JBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfVVRDTDJfUkVOR19SQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGUyCisjZGVmaW5lIG1tUENUTDBfVVRDTDJfUkVOR19SQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMF9SRU5HX1JBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlMworI2RlZmluZSBtbVBDVEwwX1NMSUNFMF9SRU5HX1JBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfUkVOR19SQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZTQKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfUkVOR19SQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UxX1JFTkdfUkFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGU1CisjZGVmaW5lIG1tUENUTDBfU0xJQ0UxX1JFTkdfUkFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9SRU5HX1JBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlNgorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9SRU5HX1JBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfUkVOR19SQU1fSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZTcKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfUkVOR19SQU1fSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UyX1JFTkdfUkFNX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGU4CisjZGVmaW5lIG1tUENUTDBfU0xJQ0UyX1JFTkdfUkFNX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFM19SRU5HX1JBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlOQorI2RlZmluZSBtbVBDVEwwX1NMSUNFM19SRU5HX1JBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfUkVOR19SQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZWEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfUkVOR19SQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0U0X1JFTkdfUkFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGViCisjZGVmaW5lIG1tUENUTDBfU0xJQ0U0X1JFTkdfUkFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9SRU5HX1JBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlYworI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9SRU5HX1JBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZWQKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGVlCisjZGVmaW5lIG1tUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhlZgorI2RlZmluZSBtbVBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZjAKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGYxCisjZGVmaW5lIG1tUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmMgorI2RlZmluZSBtbVBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZjMKKyNkZWZpbmUgbW1QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGY0CisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmNQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZjYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGY3CisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmOAorI2RlZmluZSBtbVBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZjkKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGZhCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmYgorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZmMKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOGZkCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDhmZQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4ZmYKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTAwCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MDIKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTAzCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwNAorI2RlZmluZSBtbVBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MDUKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTA2CisjZGVmaW5lIG1tUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwNworI2RlZmluZSBtbVBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MDgKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTA5CisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwYQorI2RlZmluZSBtbVBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MGIKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTBjCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwZAorI2RlZmluZSBtbVBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MGUKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTBmCisjZGVmaW5lIG1tUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxMAorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MTEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTEyCisjZGVmaW5lIG1tUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxMworI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MTQKKyNkZWZpbmUgbW1QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTE1CisjZGVmaW5lIG1tUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxNgorI2RlZmluZSBtbVBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2wxdGxiX3ZtbDFkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2YTUwMAorI2RlZmluZSBtbVZNTDFfMF9NQ19WTV9NWF9MMV9UTEIwX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk0OAorI2RlZmluZSBtbVZNTDFfMF9NQ19WTV9NWF9MMV9UTEIwX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCMV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5NDkKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCMV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMV8wX01DX1ZNX01YX0wxX1RMQjJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTRhCisjZGVmaW5lIG1tVk1MMV8wX01DX1ZNX01YX0wxX1RMQjJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDFfMF9NQ19WTV9NWF9MMV9UTEIzX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk0YgorI2RlZmluZSBtbVZNTDFfMF9NQ19WTV9NWF9MMV9UTEIzX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCNF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5NGMKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCNF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMV8wX01DX1ZNX01YX0wxX1RMQjVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTRkCisjZGVmaW5lIG1tVk1MMV8wX01DX1ZNX01YX0wxX1RMQjVfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDFfMF9NQ19WTV9NWF9MMV9UTEI2X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk0ZQorI2RlZmluZSBtbVZNTDFfMF9NQ19WTV9NWF9MMV9UTEI2X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCN19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5NGYKKyNkZWZpbmUgbW1WTUwxXzBfTUNfVk1fTVhfTDFfVExCN19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9sMXRsYl92bWwxcGxkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2YTU4MAorI2RlZmluZSBtbVZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk2MAorI2RlZmluZSBtbVZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMV9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5NjEKKyNkZWZpbmUgbW1WTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMV9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjJfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTYyCisjZGVmaW5lIG1tVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjJfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk2MworI2RlZmluZSBtbVZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5NjQKKyNkZWZpbmUgbW1WTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9sMXRsYl92bWwxcHJkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2YTVjMAorI2RlZmluZSBtbVZNTDFQUjBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk3MAorI2RlZmluZSBtbVZNTDFQUjBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxUFIwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5NzEKKyNkZWZpbmUgbW1WTUwxUFIwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl9hdGNsMmRlYworLy8gYmFzZSBhZGRyZXNzOiAweDZhNjAwCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTgwCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk4MQorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9DQUNIRV9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ODQKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9DQUNIRV9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfQ0FDSEVfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTg1CisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfQ0FDSEVfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk4NgorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9DTlRMMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ODcKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9DTlRMM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTg4CisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX1NUQVRVUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk4OQorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX1NUQVRVUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9TVEFUVVMzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5OGEKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9TVEFUVVMzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfTUlTQ19DRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOThiCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfTUlTQ19DR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX01FTV9QT1dFUl9MUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk4YworI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX01FTV9QT1dFUl9MU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5OGQKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfQ0FDSEVfNEtfRFNNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOThlCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfQ0FDSEVfNEtfRFNNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzJNX0RTTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk4ZgorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzJNX0RTTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5OTAKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTkxCisjZGVmaW5lIG1tQVRDTDJfMF9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NOVEw0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk5MgorI2RlZmluZSBtbUFUQ0wyXzBfQVRDX0wyX0NOVEw0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9NTV9HUk9VUF9SVF9DTEFTU0VTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5OTMKKyNkZWZpbmUgbW1BVENMMl8wX0FUQ19MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bWwycGZkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2YTcwMAorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDljMAorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5YzEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DTlRMMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOWMyCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DTlRMM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDljMworI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5YzQKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9EVU1NWV9QQUdFX0ZBVUxUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOWM1CisjZGVmaW5lIG1tVk1MMlBGMF9WTV9EVU1NWV9QQUdFX0ZBVUxUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjBfVk1fRFVNTVlfUEFHRV9GQVVMVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDljNgorI2RlZmluZSBtbVZNTDJQRjBfVk1fRFVNTVlfUEFHRV9GQVVMVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5YzcKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOWM4CisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9NTV9DTlRMMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDljOQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9NTV9DTlRMM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5Y2EKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOWNiCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDljYworI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5Y2QKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOWNlCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDljZgorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0xPV19BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ZDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0xPV19BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOWQyCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDlkMworI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0hJR0hfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ZDQKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0hJR0hfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUX0lERU5USVRZX1BIWVNJQ0FMX09GRlNFVF9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOWQ1CisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DT05URVhUX0lERU5USVRZX1BIWVNJQ0FMX09GRlNFVF9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQ09OVEVYVF9JREVOVElUWV9QSFlTSUNBTF9PRkZTRVRfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDlkNgorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQ09OVEVYVF9JREVOVElUWV9QSFlTSUNBTF9PRkZTRVRfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0NOVEw0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ZDcKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0NOVEw0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOWQ4CisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDlkOQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ZGEKKyNkZWZpbmUgbW1WTUwyUEYwX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOWRiCisjZGVmaW5lIG1tVk1MMlBGMF9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDlkZQorI2RlZmluZSBtbVZNTDJQRjBfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3ZtbDJ2Y2RlYworLy8gYmFzZSBhZGRyZXNzOiAweDZhODAwCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTAwCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEwMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMDIKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUM19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTAzCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEwNAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMDUKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTA2CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEwNworI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMDgKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTA5CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEwYQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMGIKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTBjCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEwZAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMGUKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTBmCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVFNfRElTQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGExMAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVFNfRElTQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMTEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTEyCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGExMworI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMTQKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTE1CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGExNgorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMTcKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTE4CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGExOQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMWEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTFiCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGExYworI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMWQKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTFlCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGExZgorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMjAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTIxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEyMgorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMjMKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTI0CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEyNQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMjYKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTI3CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEyOAorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMjkKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTJhCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEyYgorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMmMKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTJkCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEyZQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMmYKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTMwCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEzMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMzIKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTMzCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEzNAorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMzUKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTM2CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEzNworI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMzgKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTM5CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEzYQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhM2IKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTNjCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGEzZAorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhM2UKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTNmCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE0MAorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTQyCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE0MworI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNDQKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTQ1CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE0NgorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNDcKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTQ4CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE0OQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNGEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTRiCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE0YworI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNGQKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTRlCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE0ZgorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNTAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTUxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE1MgorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNTMKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTU0CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE1NQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNTYKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTU3CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE1OAorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNTkKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTVhCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE1YgorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNWMKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTVkCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE1ZQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNWYKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTYwCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE2MQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNjIKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTYzCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE2NAorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNjUKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTY2CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE2NworI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNjgKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTY5CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE2YQorI2RlZmluZSBtbVZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNmIKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTZjCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE2ZAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNmUKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTZmCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE3MAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNzEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTcyCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE3MworI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNzQKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTc1CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE3NgorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhNzcKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTc4CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE3OQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhN2EKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTdiCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE3YworI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhN2QKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTdlCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE3ZgorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhODAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTgxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE4MgorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhODMKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTg0CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE4NQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhODYKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTg3CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE4OAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhODkKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYThhCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE4YgorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhOGMKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYThkCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE4ZQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhOGYKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTkwCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE5MQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhOTIKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTkzCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE5NAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhOTUKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTk2CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE5NworI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhOTgKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTk5CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE5YQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhOWIKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTljCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGE5ZAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhOWUKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYTlmCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFhMAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYTEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWEyCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFhMworI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYTQKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWE1CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFhNgorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYTcKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWE4CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFhOQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYWEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWFiCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFhYworI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYWQKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWFlCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFhZgorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYjAKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWIxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFiMgorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYjMKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWI0CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFiNQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYjYKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWI3CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFiOAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYjkKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWJhCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFiYgorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYmMKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWJkCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFiZQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYmYKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWMwCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFjMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYzIKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWMzCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFjNAorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYzUKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWM2CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFjNworI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhYzgKKyNkZWZpbmUgbW1WTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWM5CisjZGVmaW5lIG1tVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFjYQorI2RlZmluZSBtbVZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3Ztc2hhcmVkcGZkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2YWI5MAorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX05CX01NSU9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFlNAorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX05CX01NSU9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9NTUlPTElNSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhZTUKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9NTUlPTElNSVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fTkJfUENJX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWU2CisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fTkJfUENJX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX05CX1BDSV9BUkIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFlNworI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX05CX1BDSV9BUkJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9UT1BfT0ZfRFJBTV9TTE9UMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhZTgKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9OQl9UT1BfT0ZfRFJBTV9TTE9UMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fTkJfTE9XRVJfVE9QX09GX0RSQU0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWU5CisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fTkJfTE9XRVJfVE9QX09GX0RSQU0yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX05CX1VQUEVSX1RPUF9PRl9EUkFNMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFlYQorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX05CX1VQUEVSX1RPUF9PRl9EUkFNMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9GQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhZWIKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9GQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9MU0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWVjCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9MU0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTVNCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFlZAorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTVNCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9TVEVFUklORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhZWUKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9TVEVFUklOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfU0hBUkVEX1ZJUlRfUkVTRVRfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWVmCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfU0hBUkVEX1ZJUlRfUkVTRVRfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX01FTV9QT1dFUl9MUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFmMAorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX01FTV9QT1dFUl9MU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX1NUQVJUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhZjEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX1NUQVJUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fQ0FDSEVBQkxFX0RSQU1fQUREUkVTU19FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWYyCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fQ0FDSEVBQkxFX0RSQU1fQUREUkVTU19FTkRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX0FQVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFmMworI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX0FQVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhZjQKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fTE9DQUxfSEJNX0FERFJFU1NfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWY1CisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fTE9DQUxfSEJNX0FERFJFU1NfRU5EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX0xPQ0tfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFmNgorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX0xPQ0tfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9YR01JX0xGQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhZjcKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMF9NQ19WTV9YR01JX0xGQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fWEdNSV9MRkJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYWY4CisjZGVmaW5lIG1tVk1TSEFSRURQRjBfTUNfVk1fWEdNSV9MRkJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGFmOQorI2RlZmluZSBtbVZNU0hBUkVEUEYwX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3Ztc2hhcmVkdmNkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2YWMwMAorI2RlZmluZSBtbVZNU0hBUkVEVkMwX01DX1ZNX0ZCX0xPQ0FUSU9OX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIwMAorI2RlZmluZSBtbVZNU0hBUkVEVkMwX01DX1ZNX0ZCX0xPQ0FUSU9OX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9GQl9MT0NBVElPTl9UT1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMDEKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9GQl9MT0NBVElPTl9UT1BfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURWQzBfTUNfVk1fQUdQX1RPUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjAyCisjZGVmaW5lIG1tVk1TSEFSRURWQzBfTUNfVk1fQUdQX1RPUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEVkMwX01DX1ZNX0FHUF9CT1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIwMworI2RlZmluZSBtbVZNU0hBUkVEVkMwX01DX1ZNX0FHUF9CT1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9BR1BfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMDQKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9BR1BfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURWQzBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjA1CisjZGVmaW5lIG1tVk1TSEFSRURWQzBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEVkMwX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIwNgorI2RlZmluZSBtbVZNU0hBUkVEVkMwX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ISUdIX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMDcKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bXNoYXJlZGh2ZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NmFjODAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMjAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjIxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIyMgorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMjMKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjI0CisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIyNQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMjYKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjI3CisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIyOAorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMjkKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjJhCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIyYgorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMmMKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjJkCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIyZQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMmYKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fSU9NTVVfTU1JT19DTlRSTF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjMwCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fSU9NTVVfTU1JT19DTlRSTF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9MT18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIzMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9MT18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMzIKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0xPXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjMzCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0xPXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9MT18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIzNAorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9MT18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMzUKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0hJXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjM2CisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0hJXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9ISV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIzNworI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9ISV8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiMzgKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjM5CisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIzYQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiM2IKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjNjCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfSElfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGIzZAorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfSElfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiM2UKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19ISV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjNmCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19ISV8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfSElfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI0MAorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfSElfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjQyCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfTEVOX0xPXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI0MworI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfTEVOX0xPXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNDQKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjQ1CisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfTEVOX0hJXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI0NgorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX01BUkNfTEVOX0hJXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNDcKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjQ4CisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX0lPTU1VX0NPTlRST0xfUkVHSVNURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI0OQorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX0lPTU1VX0NPTlRST0xfUkVHSVNURVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9JT01NVV9QRVJGT1JNQU5DRV9PUFRJTUlaQVRJT05fQ09OVFJPTF9SRUdJU1RFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNGEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9JT01NVV9QRVJGT1JNQU5DRV9PUFRJTUlaQVRJT05fQ09OVFJPTF9SRUdJU1RFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjRiCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI0YworI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNGQKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjRlCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI0ZgorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNTAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjUxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI1MgorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNTMKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjU0CisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl84X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI1NQorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNTYKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjU3CisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI1OAorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNTkKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjVhCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI1YgorI2RlZmluZSBtbVZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNWMKKyNkZWZpbmUgbW1WTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfU0hBUkVEX0FDVElWRV9GQ05fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjVkCisjZGVmaW5lIG1tVk1TSEFSRURIVjBfTUNfU0hBUkVEX0FDVElWRV9GQ05fSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI1ZQorI2RlZmluZSBtbVZNU0hBUkVESFYwX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX2F0Y2wycGZjbnRyZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NmFkYzAKKyNkZWZpbmUgbW1BVENMMlBGQ05UUjBfQVRDX0wyX1BFUkZDT1VOVEVSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNzAKKyNkZWZpbmUgbW1BVENMMlBGQ05UUjBfQVRDX0wyX1BFUkZDT1VOVEVSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJQRkNOVFIwX0FUQ19MMl9QRVJGQ09VTlRFUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjcxCisjZGVmaW5lIG1tQVRDTDJQRkNOVFIwX0FUQ19MMl9QRVJGQ09VTlRFUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfYXRjbDJwZmNudGxkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg2YWRkMAorI2RlZmluZSBtbUFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI3NAorI2RlZmluZSBtbUFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSMV9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiNzUKKyNkZWZpbmUgbW1BVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSMV9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJQRkNOVEwwX0FUQ19MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjc2CisjZGVmaW5lIG1tQVRDTDJQRkNOVEwwX0FUQ19MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1sMnBsZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NmFlMDAKKyNkZWZpbmUgbW1WTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiODAKKyNkZWZpbmUgbW1WTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjgxCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI4MgorI2RlZmluZSBtbVZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSM19DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiODMKKyNkZWZpbmUgbW1WTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSM19DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjg0CisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI4NQorI2RlZmluZSBtbVZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSNl9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiODYKKyNkZWZpbmUgbW1WTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSNl9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjg3CisjZGVmaW5lIG1tVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI4OAorI2RlZmluZSBtbVZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3ZtbDJwcmRlYworLy8gYmFzZSBhZGRyZXNzOiAweDZhZTQwCisjZGVmaW5lIG1tVk1MMlBSMF9NQ19WTV9MMl9QRVJGQ09VTlRFUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwYjkwCisjZGVmaW5lIG1tVk1MMlBSMF9NQ19WTV9MMl9QRVJGQ09VTlRFUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQUjBfTUNfVk1fTDJfUEVSRkNPVU5URVJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGI5MQorI2RlZmluZSBtbVZNTDJQUjBfTUNfVk1fTDJfUEVSRkNPVU5URVJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzUKKy8vIGJhc2UgYWRkcmVzczogMHg3NDAwMAorI2RlZmluZSBtbURBR0I1X1JEQ0xJMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMAorI2RlZmluZSBtbURBR0I1X1JEQ0xJMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDEKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRDTEkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAyCisjZGVmaW5lIG1tREFHQjVfUkRDTEkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEQ0xJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMworI2RlZmluZSBtbURBR0I1X1JEQ0xJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDQKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRDTEk1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDA1CisjZGVmaW5lIG1tREFHQjVfUkRDTEk1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEQ0xJNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwNgorI2RlZmluZSBtbURBR0I1X1JEQ0xJNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDcKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRDTEk4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDA4CisjZGVmaW5lIG1tREFHQjVfUkRDTEk4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEQ0xJOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwOQorI2RlZmluZSBtbURBR0I1X1JEQ0xJOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMGEKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRDTEkxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDBiCisjZGVmaW5lIG1tREFHQjVfUkRDTEkxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEQ0xJMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwYworI2RlZmluZSBtbURBR0I1X1JEQ0xJMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMGQKKyNkZWZpbmUgbW1EQUdCNV9SRENMSTEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRDTEkxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDBlCisjZGVmaW5lIG1tREFHQjVfUkRDTEkxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEQ0xJMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwZgorI2RlZmluZSBtbURBR0I1X1JEQ0xJMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMTAKKyNkZWZpbmUgbW1EQUdCNV9SRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRfR01JX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDExCisjZGVmaW5lIG1tREFHQjVfUkRfR01JX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEX0FERFJfREFHQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxMgorI2RlZmluZSBtbURBR0I1X1JEX0FERFJfREFHQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMTMKKyNkZWZpbmUgbW1EQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDE0CisjZGVmaW5lIG1tREFHQjVfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxNQorI2RlZmluZSBtbURBR0I1X1JEX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMTYKKyNkZWZpbmUgbW1EQUdCNV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDE3CisjZGVmaW5lIG1tREFHQjVfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxOAorI2RlZmluZSBtbURBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMTkKKyNkZWZpbmUgbW1EQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRfQUREUl9EQUdCX01BWF9CVVJTVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDFhCisjZGVmaW5lIG1tREFHQjVfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxYgorI2RlZmluZSBtbURBR0I1X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMWMKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRfVkMxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDFkCisjZGVmaW5lIG1tREFHQjVfUkRfVkMxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEX1ZDMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAxZQorI2RlZmluZSBtbURBR0I1X1JEX1ZDMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMWYKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRfVkM0X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDIwCisjZGVmaW5lIG1tREFHQjVfUkRfVkM0X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEX1ZDNV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyMQorI2RlZmluZSBtbURBR0I1X1JEX1ZDNV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMjIKKyNkZWZpbmUgbW1EQUdCNV9SRF9WQzZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRfVkM3X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDIzCisjZGVmaW5lIG1tREFHQjVfUkRfVkM3X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEX0NOVExfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyNAorI2RlZmluZSBtbURBR0I1X1JEX0NOVExfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRF9UTEJfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMjUKKyNkZWZpbmUgbW1EQUdCNV9SRF9UTEJfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRDTElfQVNLX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDI2CisjZGVmaW5lIG1tREFHQjVfUkRDTElfQVNLX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEQ0xJX0dPX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyNworI2RlZmluZSBtbURBR0I1X1JEQ0xJX0dPX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9HQkxTRU5EX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMjgKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9HQkxTRU5EX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkRDTElfVExCX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDI5CisjZGVmaW5lIG1tREFHQjVfUkRDTElfVExCX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JEQ0xJX09BUkJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyYQorI2RlZmluZSBtbURBR0I1X1JEQ0xJX09BUkJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9PU0RfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMmIKKyNkZWZpbmUgbW1EQUdCNV9SRENMSV9PU0RfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JDTEkwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDJjCisjZGVmaW5lIG1tREFHQjVfV1JDTEkwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSQ0xJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAyZAorI2RlZmluZSBtbURBR0I1X1dSQ0xJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMmUKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JDTEkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDJmCisjZGVmaW5lIG1tREFHQjVfV1JDTEkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSQ0xJNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAzMAorI2RlZmluZSBtbURBR0I1X1dSQ0xJNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMzEKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JDTEk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDMyCisjZGVmaW5lIG1tREFHQjVfV1JDTEk2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSQ0xJNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAzMworI2RlZmluZSBtbURBR0I1X1dSQ0xJN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMzQKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JDTEk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDM1CisjZGVmaW5lIG1tREFHQjVfV1JDTEk5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSQ0xJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAzNgorI2RlZmluZSBtbURBR0I1X1dSQ0xJMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMzcKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JDTEkxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDM4CisjZGVmaW5lIG1tREFHQjVfV1JDTEkxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSQ0xJMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAzOQorI2RlZmluZSBtbURBR0I1X1dSQ0xJMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwM2EKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSTE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JDTEkxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDNiCisjZGVmaW5lIG1tREFHQjVfV1JDTEkxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAzYworI2RlZmluZSBtbURBR0I1X1dSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9HTUlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwM2QKKyNkZWZpbmUgbW1EQUdCNV9XUl9HTUlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JfQUREUl9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDNlCisjZGVmaW5lIG1tREFHQjVfV1JfQUREUl9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAzZgorI2RlZmluZSBtbURBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNDAKKyNkZWZpbmUgbW1EQUdCNV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDQxCisjZGVmaW5lIG1tREFHQjVfV1JfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA0MgorI2RlZmluZSBtbURBR0I1X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9BVENWTV9XUl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNDMKKyNkZWZpbmUgbW1EQUdCNV9BVENWTV9XUl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDQ0CisjZGVmaW5lIG1tREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA0NQorI2RlZmluZSBtbURBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNDYKKyNkZWZpbmUgbW1EQUdCNV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDQ3CisjZGVmaW5lIG1tREFHQjVfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX0RBVEFfREFHQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA0OAorI2RlZmluZSBtbURBR0I1X1dSX0RBVEFfREFHQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNDkKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDRhCisjZGVmaW5lIG1tREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA0YgorI2RlZmluZSBtbURBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNGMKKyNkZWZpbmUgbW1EQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JfVkMwX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDRkCisjZGVmaW5lIG1tREFHQjVfV1JfVkMwX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX1ZDMV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA0ZQorI2RlZmluZSBtbURBR0I1X1dSX1ZDMV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNGYKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JfVkMzX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDUwCisjZGVmaW5lIG1tREFHQjVfV1JfVkMzX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX1ZDNF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA1MQorI2RlZmluZSBtbURBR0I1X1dSX1ZDNF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNTIKKyNkZWZpbmUgbW1EQUdCNV9XUl9WQzVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JfVkM2X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDUzCisjZGVmaW5lIG1tREFHQjVfV1JfVkM2X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX1ZDN19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA1NAorI2RlZmluZSBtbURBR0I1X1dSX1ZDN19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9DTlRMX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNTUKKyNkZWZpbmUgbW1EQUdCNV9XUl9DTlRMX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JfVExCX0NSRURJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDU2CisjZGVmaW5lIG1tREFHQjVfV1JfVExCX0NSRURJVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX0RBVEFfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA1NworI2RlZmluZSBtbURBR0I1X1dSX0RBVEFfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUl9NSVNDX0NSRURJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNTgKKyNkZWZpbmUgbW1EQUdCNV9XUl9NSVNDX0NSRURJVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JDTElfQVNLX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDVkCisjZGVmaW5lIG1tREFHQjVfV1JDTElfQVNLX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSQ0xJX0dPX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA1ZQorI2RlZmluZSBtbURBR0I1X1dSQ0xJX0dPX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9HQkxTRU5EX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNWYKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JDTElfVExCX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDYwCisjZGVmaW5lIG1tREFHQjVfV1JDTElfVExCX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSQ0xJX09BUkJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2MQorI2RlZmluZSBtbURBR0I1X1dSQ0xJX09BUkJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9PU0RfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNjIKKyNkZWZpbmUgbW1EQUdCNV9XUkNMSV9PU0RfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfV1JDTElfREJVU19BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDYzCisjZGVmaW5lIG1tREFHQjVfV1JDTElfREJVU19BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSQ0xJX0RCVVNfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2NAorI2RlZmluZSBtbURBR0I1X1dSQ0xJX0RCVVNfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9EQUdCX0RMWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNjUKKyNkZWZpbmUgbW1EQUdCNV9EQUdCX0RMWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfQ05UTF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDY2CisjZGVmaW5lIG1tREFHQjVfQ05UTF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X0NOVExfTUlTQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2NworI2RlZmluZSBtbURBR0I1X0NOVExfTUlTQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9GSUZPX0VNUFRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNjgKKyNkZWZpbmUgbW1EQUdCNV9GSUZPX0VNUFRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfRklGT19GVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDY5CisjZGVmaW5lIG1tREFHQjVfRklGT19GVUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1dSX0NSRURJVFNfRlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2YQorI2RlZmluZSBtbURBR0I1X1dSX0NSRURJVFNfRlVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRF9DUkVESVRTX0ZVTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNmIKKyNkZWZpbmUgbW1EQUdCNV9SRF9DUkVESVRTX0ZVTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUEVSRkNPVU5URVJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDZjCisjZGVmaW5lIG1tREFHQjVfUEVSRkNPVU5URVJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1BFUkZDT1VOVEVSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA2ZAorI2RlZmluZSBtbURBR0I1X1BFUkZDT1VOVEVSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUjBfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNmUKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUjBfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUEVSRkNPVU5URVIxX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDZmCisjZGVmaW5lIG1tREFHQjVfUEVSRkNPVU5URVIxX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1BFUkZDT1VOVEVSMl9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3MAorI2RlZmluZSBtbURBR0I1X1BFUkZDT1VOVEVSMl9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNzEKKyNkZWZpbmUgbW1EQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDcyCisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3MworI2RlZmluZSBtbURBR0I1X1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNzQKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDc1CisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JFU0VSVkU0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3NgorI2RlZmluZSBtbURBR0I1X1JFU0VSVkU0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwNzcKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDc4CisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JFU0VSVkU3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3OQorI2RlZmluZSBtbURBR0I1X1JFU0VSVkU3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwN2EKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDdiCisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JFU0VSVkUxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3YworI2RlZmluZSBtbURBR0I1X1JFU0VSVkUxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwN2QKKyNkZWZpbmUgbW1EQUdCNV9SRVNFUlZFMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDdlCisjZGVmaW5lIG1tREFHQjVfUkVTRVJWRTEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I1X1JFU0VSVkUxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA3ZgorI2RlZmluZSBtbURBR0I1X1JFU0VSVkUxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzYKKy8vIGJhc2UgYWRkcmVzczogMHg3NDIwMAorI2RlZmluZSBtbURBR0I2X1JEQ0xJMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4MAorI2RlZmluZSBtbURBR0I2X1JEQ0xJMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwODEKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRDTEkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDgyCisjZGVmaW5lIG1tREFHQjZfUkRDTEkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEQ0xJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4MworI2RlZmluZSBtbURBR0I2X1JEQ0xJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwODQKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRDTEk1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDg1CisjZGVmaW5lIG1tREFHQjZfUkRDTEk1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEQ0xJNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4NgorI2RlZmluZSBtbURBR0I2X1JEQ0xJNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwODcKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRDTEk4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDg4CisjZGVmaW5lIG1tREFHQjZfUkRDTEk4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEQ0xJOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4OQorI2RlZmluZSBtbURBR0I2X1JEQ0xJOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOGEKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRDTEkxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDhiCisjZGVmaW5lIG1tREFHQjZfUkRDTEkxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEQ0xJMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4YworI2RlZmluZSBtbURBR0I2X1JEQ0xJMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOGQKKyNkZWZpbmUgbW1EQUdCNl9SRENMSTEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRDTEkxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDhlCisjZGVmaW5lIG1tREFHQjZfUkRDTEkxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEQ0xJMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA4ZgorI2RlZmluZSBtbURBR0I2X1JEQ0xJMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOTAKKyNkZWZpbmUgbW1EQUdCNl9SRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRfR01JX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDkxCisjZGVmaW5lIG1tREFHQjZfUkRfR01JX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEX0FERFJfREFHQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA5MgorI2RlZmluZSBtbURBR0I2X1JEX0FERFJfREFHQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOTMKKyNkZWZpbmUgbW1EQUdCNl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDk0CisjZGVmaW5lIG1tREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA5NQorI2RlZmluZSBtbURBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOTYKKyNkZWZpbmUgbW1EQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDk3CisjZGVmaW5lIG1tREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA5OAorI2RlZmluZSBtbURBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOTkKKyNkZWZpbmUgbW1EQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDlhCisjZGVmaW5lIG1tREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA5YgorI2RlZmluZSBtbURBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOWMKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRfVkMxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDlkCisjZGVmaW5lIG1tREFHQjZfUkRfVkMxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEX1ZDMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzA5ZQorI2RlZmluZSBtbURBR0I2X1JEX1ZDMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwOWYKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRfVkM0X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGEwCisjZGVmaW5lIG1tREFHQjZfUkRfVkM0X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEX1ZDNV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBhMQorI2RlZmluZSBtbURBR0I2X1JEX1ZDNV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYTIKKyNkZWZpbmUgbW1EQUdCNl9SRF9WQzZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRfVkM3X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGEzCisjZGVmaW5lIG1tREFHQjZfUkRfVkM3X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEX0NOVExfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBhNAorI2RlZmluZSBtbURBR0I2X1JEX0NOVExfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRF9UTEJfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYTUKKyNkZWZpbmUgbW1EQUdCNl9SRF9UTEJfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRDTElfQVNLX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGE2CisjZGVmaW5lIG1tREFHQjZfUkRDTElfQVNLX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEQ0xJX0dPX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBhNworI2RlZmluZSBtbURBR0I2X1JEQ0xJX0dPX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9HQkxTRU5EX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYTgKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9HQkxTRU5EX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkRDTElfVExCX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGE5CisjZGVmaW5lIG1tREFHQjZfUkRDTElfVExCX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JEQ0xJX09BUkJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBhYQorI2RlZmluZSBtbURBR0I2X1JEQ0xJX09BUkJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9PU0RfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYWIKKyNkZWZpbmUgbW1EQUdCNl9SRENMSV9PU0RfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JDTEkwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGFjCisjZGVmaW5lIG1tREFHQjZfV1JDTEkwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSQ0xJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBhZAorI2RlZmluZSBtbURBR0I2X1dSQ0xJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYWUKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JDTEkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGFmCisjZGVmaW5lIG1tREFHQjZfV1JDTEkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSQ0xJNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBiMAorI2RlZmluZSBtbURBR0I2X1dSQ0xJNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYjEKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JDTEk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGIyCisjZGVmaW5lIG1tREFHQjZfV1JDTEk2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSQ0xJNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBiMworI2RlZmluZSBtbURBR0I2X1dSQ0xJN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYjQKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JDTEk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGI1CisjZGVmaW5lIG1tREFHQjZfV1JDTEk5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSQ0xJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBiNgorI2RlZmluZSBtbURBR0I2X1dSQ0xJMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYjcKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JDTEkxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGI4CisjZGVmaW5lIG1tREFHQjZfV1JDTEkxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSQ0xJMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBiOQorI2RlZmluZSBtbURBR0I2X1dSQ0xJMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYmEKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSTE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JDTEkxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGJiCisjZGVmaW5lIG1tREFHQjZfV1JDTEkxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBiYworI2RlZmluZSBtbURBR0I2X1dSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9HTUlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYmQKKyNkZWZpbmUgbW1EQUdCNl9XUl9HTUlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JfQUREUl9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGJlCisjZGVmaW5lIG1tREFHQjZfV1JfQUREUl9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBiZgorI2RlZmluZSBtbURBR0I2X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYzAKKyNkZWZpbmUgbW1EQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGMxCisjZGVmaW5lIG1tREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBjMgorI2RlZmluZSBtbURBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYzMKKyNkZWZpbmUgbW1EQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGM0CisjZGVmaW5lIG1tREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBjNQorI2RlZmluZSBtbURBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYzYKKyNkZWZpbmUgbW1EQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGM3CisjZGVmaW5lIG1tREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX0RBVEFfREFHQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBjOAorI2RlZmluZSBtbURBR0I2X1dSX0RBVEFfREFHQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwYzkKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGNhCisjZGVmaW5lIG1tREFHQjZfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBjYgorI2RlZmluZSBtbURBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwY2MKKyNkZWZpbmUgbW1EQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JfVkMwX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGNkCisjZGVmaW5lIG1tREFHQjZfV1JfVkMwX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX1ZDMV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBjZQorI2RlZmluZSBtbURBR0I2X1dSX1ZDMV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwY2YKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JfVkMzX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGQwCisjZGVmaW5lIG1tREFHQjZfV1JfVkMzX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX1ZDNF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkMQorI2RlZmluZSBtbURBR0I2X1dSX1ZDNF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZDIKKyNkZWZpbmUgbW1EQUdCNl9XUl9WQzVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JfVkM2X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGQzCisjZGVmaW5lIG1tREFHQjZfV1JfVkM2X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX1ZDN19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkNAorI2RlZmluZSBtbURBR0I2X1dSX1ZDN19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9DTlRMX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZDUKKyNkZWZpbmUgbW1EQUdCNl9XUl9DTlRMX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JfVExCX0NSRURJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGQ2CisjZGVmaW5lIG1tREFHQjZfV1JfVExCX0NSRURJVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX0RBVEFfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkNworI2RlZmluZSBtbURBR0I2X1dSX0RBVEFfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUl9NSVNDX0NSRURJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZDgKKyNkZWZpbmUgbW1EQUdCNl9XUl9NSVNDX0NSRURJVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JDTElfQVNLX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGRkCisjZGVmaW5lIG1tREFHQjZfV1JDTElfQVNLX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSQ0xJX0dPX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBkZQorI2RlZmluZSBtbURBR0I2X1dSQ0xJX0dPX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9HQkxTRU5EX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZGYKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JDTElfVExCX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGUwCisjZGVmaW5lIG1tREFHQjZfV1JDTElfVExCX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSQ0xJX09BUkJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBlMQorI2RlZmluZSBtbURBR0I2X1dSQ0xJX09BUkJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9PU0RfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZTIKKyNkZWZpbmUgbW1EQUdCNl9XUkNMSV9PU0RfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfV1JDTElfREJVU19BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGUzCisjZGVmaW5lIG1tREFHQjZfV1JDTElfREJVU19BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSQ0xJX0RCVVNfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBlNAorI2RlZmluZSBtbURBR0I2X1dSQ0xJX0RCVVNfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9EQUdCX0RMWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZTUKKyNkZWZpbmUgbW1EQUdCNl9EQUdCX0RMWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfQ05UTF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGU2CisjZGVmaW5lIG1tREFHQjZfQ05UTF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X0NOVExfTUlTQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBlNworI2RlZmluZSBtbURBR0I2X0NOVExfTUlTQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9GSUZPX0VNUFRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZTgKKyNkZWZpbmUgbW1EQUdCNl9GSUZPX0VNUFRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfRklGT19GVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGU5CisjZGVmaW5lIG1tREFHQjZfRklGT19GVUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1dSX0NSRURJVFNfRlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBlYQorI2RlZmluZSBtbURBR0I2X1dSX0NSRURJVFNfRlVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRF9DUkVESVRTX0ZVTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZWIKKyNkZWZpbmUgbW1EQUdCNl9SRF9DUkVESVRTX0ZVTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUEVSRkNPVU5URVJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGVjCisjZGVmaW5lIG1tREFHQjZfUEVSRkNPVU5URVJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1BFUkZDT1VOVEVSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBlZAorI2RlZmluZSBtbURBR0I2X1BFUkZDT1VOVEVSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUjBfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZWUKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUjBfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUEVSRkNPVU5URVIxX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGVmCisjZGVmaW5lIG1tREFHQjZfUEVSRkNPVU5URVIxX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1BFUkZDT1VOVEVSMl9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBmMAorI2RlZmluZSBtbURBR0I2X1BFUkZDT1VOVEVSMl9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUl9SU0xUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZjEKKyNkZWZpbmUgbW1EQUdCNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGYyCisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBmMworI2RlZmluZSBtbURBR0I2X1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZjQKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGY1CisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JFU0VSVkU0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBmNgorI2RlZmluZSBtbURBR0I2X1JFU0VSVkU0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZjcKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGY4CisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JFU0VSVkU3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBmOQorI2RlZmluZSBtbURBR0I2X1JFU0VSVkU3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZmEKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGZiCisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JFU0VSVkUxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBmYworI2RlZmluZSBtbURBR0I2X1JFU0VSVkUxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwZmQKKyNkZWZpbmUgbW1EQUdCNl9SRVNFUlZFMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMGZlCisjZGVmaW5lIG1tREFHQjZfUkVTRVJWRTEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I2X1JFU0VSVkUxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzBmZgorI2RlZmluZSBtbURBR0I2X1JFU0VSVkUxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzcKKy8vIGJhc2UgYWRkcmVzczogMHg3NDQwMAorI2RlZmluZSBtbURBR0I3X1JEQ0xJMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEwMAorI2RlZmluZSBtbURBR0I3X1JEQ0xJMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRENMSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMDEKKyNkZWZpbmUgbW1EQUdCN19SRENMSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRDTEkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTAyCisjZGVmaW5lIG1tREFHQjdfUkRDTEkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEQ0xJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEwMworI2RlZmluZSBtbURBR0I3X1JEQ0xJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRENMSTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMDQKKyNkZWZpbmUgbW1EQUdCN19SRENMSTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRDTEk1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTA1CisjZGVmaW5lIG1tREFHQjdfUkRDTEk1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEQ0xJNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEwNgorI2RlZmluZSBtbURBR0I3X1JEQ0xJNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRENMSTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMDcKKyNkZWZpbmUgbW1EQUdCN19SRENMSTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRDTEk4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTA4CisjZGVmaW5lIG1tREFHQjdfUkRDTEk4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEQ0xJOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEwOQorI2RlZmluZSBtbURBR0I3X1JEQ0xJOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRENMSTEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMGEKKyNkZWZpbmUgbW1EQUdCN19SRENMSTEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRDTEkxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTBiCisjZGVmaW5lIG1tREFHQjdfUkRDTEkxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEQ0xJMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEwYworI2RlZmluZSBtbURBR0I3X1JEQ0xJMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRENMSTEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMGQKKyNkZWZpbmUgbW1EQUdCN19SRENMSTEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRDTEkxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTBlCisjZGVmaW5lIG1tREFHQjdfUkRDTEkxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEQ0xJMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEwZgorI2RlZmluZSBtbURBR0I3X1JEQ0xJMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMTAKKyNkZWZpbmUgbW1EQUdCN19SRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRfR01JX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTExCisjZGVmaW5lIG1tREFHQjdfUkRfR01JX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEX0FERFJfREFHQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzExMgorI2RlZmluZSBtbURBR0I3X1JEX0FERFJfREFHQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMTMKKyNkZWZpbmUgbW1EQUdCN19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTE0CisjZGVmaW5lIG1tREFHQjdfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzExNQorI2RlZmluZSBtbURBR0I3X1JEX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19MMVRMQl9SRF9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMTYKKyNkZWZpbmUgbW1EQUdCN19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTE3CisjZGVmaW5lIG1tREFHQjdfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzExOAorI2RlZmluZSBtbURBR0I3X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMTkKKyNkZWZpbmUgbW1EQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTFhCisjZGVmaW5lIG1tREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzExYgorI2RlZmluZSBtbURBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMWMKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRfVkMxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTFkCisjZGVmaW5lIG1tREFHQjdfUkRfVkMxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEX1ZDMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzExZQorI2RlZmluZSBtbURBR0I3X1JEX1ZDMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMWYKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRfVkM0X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTIwCisjZGVmaW5lIG1tREFHQjdfUkRfVkM0X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEX1ZDNV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyMQorI2RlZmluZSBtbURBR0I3X1JEX1ZDNV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMjIKKyNkZWZpbmUgbW1EQUdCN19SRF9WQzZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRfVkM3X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTIzCisjZGVmaW5lIG1tREFHQjdfUkRfVkM3X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEX0NOVExfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyNAorI2RlZmluZSBtbURBR0I3X1JEX0NOVExfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRF9UTEJfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMjUKKyNkZWZpbmUgbW1EQUdCN19SRF9UTEJfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRDTElfQVNLX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTI2CisjZGVmaW5lIG1tREFHQjdfUkRDTElfQVNLX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEQ0xJX0dPX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyNworI2RlZmluZSBtbURBR0I3X1JEQ0xJX0dPX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9HQkxTRU5EX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMjgKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9HQkxTRU5EX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkRDTElfVExCX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTI5CisjZGVmaW5lIG1tREFHQjdfUkRDTElfVExCX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JEQ0xJX09BUkJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyYQorI2RlZmluZSBtbURBR0I3X1JEQ0xJX09BUkJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9PU0RfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMmIKKyNkZWZpbmUgbW1EQUdCN19SRENMSV9PU0RfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JDTEkwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTJjCisjZGVmaW5lIG1tREFHQjdfV1JDTEkwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSQ0xJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEyZAorI2RlZmluZSBtbURBR0I3X1dSQ0xJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMmUKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JDTEkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTJmCisjZGVmaW5lIG1tREFHQjdfV1JDTEkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSQ0xJNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzMAorI2RlZmluZSBtbURBR0I3X1dSQ0xJNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMzEKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JDTEk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTMyCisjZGVmaW5lIG1tREFHQjdfV1JDTEk2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSQ0xJNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzMworI2RlZmluZSBtbURBR0I3X1dSQ0xJN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMzQKKyNkZWZpbmUgbW1EQUdCN19XUkNMSThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JDTEk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTM1CisjZGVmaW5lIG1tREFHQjdfV1JDTEk5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSQ0xJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzNgorI2RlZmluZSBtbURBR0I3X1dSQ0xJMTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxMzcKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JDTEkxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTM4CisjZGVmaW5lIG1tREFHQjdfV1JDTEkxMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSQ0xJMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzOQorI2RlZmluZSBtbURBR0I3X1dSQ0xJMTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxM2EKKyNkZWZpbmUgbW1EQUdCN19XUkNMSTE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JDTEkxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTNiCisjZGVmaW5lIG1tREFHQjdfV1JDTEkxNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzYworI2RlZmluZSBtbURBR0I3X1dSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUl9HTUlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxM2QKKyNkZWZpbmUgbW1EQUdCN19XUl9HTUlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JfQUREUl9EQUdCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTNlCisjZGVmaW5lIG1tREFHQjdfV1JfQUREUl9EQUdCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEzZgorI2RlZmluZSBtbURBR0I3X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNDAKKyNkZWZpbmUgbW1EQUdCN19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTQxCisjZGVmaW5lIG1tREFHQjdfV1JfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE0MgorI2RlZmluZSBtbURBR0I3X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19BVENWTV9XUl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNDMKKyNkZWZpbmUgbW1EQUdCN19BVENWTV9XUl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JfQUREUl9EQUdCX01BWF9CVVJTVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTQ0CisjZGVmaW5lIG1tREFHQjdfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE0NQorI2RlZmluZSBtbURBR0I3X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNDYKKyNkZWZpbmUgbW1EQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTQ3CisjZGVmaW5lIG1tREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX0RBVEFfREFHQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE0OAorI2RlZmluZSBtbURBR0I3X1dSX0RBVEFfREFHQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNDkKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTRhCisjZGVmaW5lIG1tREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE0YgorI2RlZmluZSBtbURBR0I3X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNGMKKyNkZWZpbmUgbW1EQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JfVkMwX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTRkCisjZGVmaW5lIG1tREFHQjdfV1JfVkMwX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX1ZDMV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE0ZQorI2RlZmluZSBtbURBR0I3X1dSX1ZDMV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNGYKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JfVkMzX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTUwCisjZGVmaW5lIG1tREFHQjdfV1JfVkMzX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX1ZDNF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE1MQorI2RlZmluZSBtbURBR0I3X1dSX1ZDNF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNTIKKyNkZWZpbmUgbW1EQUdCN19XUl9WQzVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JfVkM2X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTUzCisjZGVmaW5lIG1tREFHQjdfV1JfVkM2X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX1ZDN19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE1NAorI2RlZmluZSBtbURBR0I3X1dSX1ZDN19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUl9DTlRMX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNTUKKyNkZWZpbmUgbW1EQUdCN19XUl9DTlRMX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JfVExCX0NSRURJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTU2CisjZGVmaW5lIG1tREFHQjdfV1JfVExCX0NSRURJVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX0RBVEFfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE1NworI2RlZmluZSBtbURBR0I3X1dSX0RBVEFfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUl9NSVNDX0NSRURJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNTgKKyNkZWZpbmUgbW1EQUdCN19XUl9NSVNDX0NSRURJVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JDTElfQVNLX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTVkCisjZGVmaW5lIG1tREFHQjdfV1JDTElfQVNLX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSQ0xJX0dPX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE1ZQorI2RlZmluZSBtbURBR0I3X1dSQ0xJX0dPX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9HQkxTRU5EX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNWYKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9HQkxTRU5EX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JDTElfVExCX1BFTkRJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTYwCisjZGVmaW5lIG1tREFHQjdfV1JDTElfVExCX1BFTkRJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSQ0xJX09BUkJfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE2MQorI2RlZmluZSBtbURBR0I3X1dSQ0xJX09BUkJfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9PU0RfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNjIKKyNkZWZpbmUgbW1EQUdCN19XUkNMSV9PU0RfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfV1JDTElfREJVU19BU0tfUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTYzCisjZGVmaW5lIG1tREFHQjdfV1JDTElfREJVU19BU0tfUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSQ0xJX0RCVVNfR09fUEVORElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE2NAorI2RlZmluZSBtbURBR0I3X1dSQ0xJX0RCVVNfR09fUEVORElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19EQUdCX0RMWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNjUKKyNkZWZpbmUgbW1EQUdCN19EQUdCX0RMWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfQ05UTF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTY2CisjZGVmaW5lIG1tREFHQjdfQ05UTF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X0NOVExfTUlTQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE2NworI2RlZmluZSBtbURBR0I3X0NOVExfTUlTQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19GSUZPX0VNUFRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNjgKKyNkZWZpbmUgbW1EQUdCN19GSUZPX0VNUFRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfRklGT19GVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTY5CisjZGVmaW5lIG1tREFHQjdfRklGT19GVUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1dSX0NSRURJVFNfRlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE2YQorI2RlZmluZSBtbURBR0I3X1dSX0NSRURJVFNfRlVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRF9DUkVESVRTX0ZVTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNmIKKyNkZWZpbmUgbW1EQUdCN19SRF9DUkVESVRTX0ZVTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUEVSRkNPVU5URVJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTZjCisjZGVmaW5lIG1tREFHQjdfUEVSRkNPVU5URVJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1BFUkZDT1VOVEVSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE2ZAorI2RlZmluZSBtbURBR0I3X1BFUkZDT1VOVEVSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUjBfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNmUKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUjBfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUEVSRkNPVU5URVIxX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTZmCisjZGVmaW5lIG1tREFHQjdfUEVSRkNPVU5URVIxX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1BFUkZDT1VOVEVSMl9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE3MAorI2RlZmluZSBtbURBR0I3X1BFUkZDT1VOVEVSMl9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUl9SU0xUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNzEKKyNkZWZpbmUgbW1EQUdCN19QRVJGQ09VTlRFUl9SU0xUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTcyCisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE3MworI2RlZmluZSBtbURBR0I3X1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNzQKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTc1CisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JFU0VSVkU0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE3NgorI2RlZmluZSBtbURBR0I3X1JFU0VSVkU0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxNzcKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTc4CisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JFU0VSVkU3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE3OQorI2RlZmluZSBtbURBR0I3X1JFU0VSVkU3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxN2EKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTdiCisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JFU0VSVkUxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE3YworI2RlZmluZSBtbURBR0I3X1JFU0VSVkUxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMxN2QKKyNkZWZpbmUgbW1EQUdCN19SRVNFUlZFMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMTdlCisjZGVmaW5lIG1tREFHQjdfUkVTRVJWRTEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbURBR0I3X1JFU0VSVkUxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzE3ZgorI2RlZmluZSBtbURBR0I3X1JFU0VSVkUxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2VhX21tZWFkZWM1CisvLyBiYXNlIGFkZHJlc3M6IDB4NzRhMDAKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyODAKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjgxCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4MgorI2RlZmluZSBtbU1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyODMKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjg0CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RSQU1fV1JfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4NQorI2RlZmluZSBtbU1NRUE1X0RSQU1fV1JfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1JEX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyODYKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1JEX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjg3CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RSQU1fUkRfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4OAorI2RlZmluZSBtbU1NRUE1X0RSQU1fUkRfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyODkKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9QQUdFX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjhhCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9QQUdFX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RSQU1fUkRfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4YgorI2RlZmluZSBtbU1NRUE1X0RSQU1fUkRfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOGMKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjhkCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RSQU1fV1JfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI4ZQorI2RlZmluZSBtbU1NRUE1X0RSQU1fV1JfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1JEX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOGYKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1JEX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjkwCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RSQU1fUkRfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5MQorI2RlZmluZSBtbU1NRUE1X0RSQU1fUkRfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOTIKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjkzCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5NAorI2RlZmluZSBtbU1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOTUKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjk2CisjZGVmaW5lIG1tTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5NworI2RlZmluZSBtbU1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOTgKKyNkZWZpbmUgbW1NTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjk5CisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5YQorI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOWIKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjljCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzI5ZAorI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyOWUKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMjlmCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0dNSV9XUl9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJhMAorI2RlZmluZSBtbU1NRUE1X0dNSV9XUl9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfUkRfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYTEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfUkRfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmEyCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0dNSV9QQUdFX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJhMworI2RlZmluZSBtbU1NRUE1X0dNSV9QQUdFX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfUkRfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYTQKKyNkZWZpbmUgbW1NTUVBNV9HTUlfUkRfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmE1CisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJhNgorI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYTcKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmE4CisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0dNSV9XUl9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJhOQorI2RlZmluZSBtbU1NRUE1X0dNSV9XUl9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYWEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmFiCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJhYworI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYWQKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmFlCisjZGVmaW5lIG1tTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJhZgorI2RlZmluZSBtbU1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYjAKKyNkZWZpbmUgbW1NTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmIxCisjZGVmaW5lIG1tTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJiMgorI2RlZmluZSBtbU1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYjMKKyNkZWZpbmUgbW1NTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmI0CisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJiNQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9CQVNFX0FERFIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYjYKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9CQVNFX0FERFIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmI3CisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX09GRlNFVF9BRERSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJiOAorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX09GRlNFVF9BRERSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9CQVNFX0FERFIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYjkKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9CQVNFX0FERFIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmJhCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJiYgorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9MSU1JVF9BRERSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYmMKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9MSU1JVF9BRERSM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmJkCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJiZQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9MSU1JVF9BRERSNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYmYKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9MSU1JVF9BRERSNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmMwCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJjMQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9PRkZTRVRfQUREUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYzIKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STV9PRkZTRVRfQUREUjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1EUkFNX0hPTEVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmMzCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNR01JX0hPTEVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJjNAorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNR01JX0hPTEVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYzUKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmM2CisjZGVmaW5lIG1tTU1FQTVfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNfQkFOS19DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJjNworI2RlZmluZSBtbU1NRUE1X0FERFJERUNfQkFOS19DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDX01JU0NfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyYzgKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDX01JU0NfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmM5CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJjYQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyY2IKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmNjCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJjZAorI2RlZmluZSBtbU1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyY2UKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmNmCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJkMAorI2RlZmluZSBtbU1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmQyCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJkMworI2RlZmluZSBtbU1NRUE1X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZDQKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmQ1CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJkNgorI2RlZmluZSBtbU1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZDcKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmQ4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJkOQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9QQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZGEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9QQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmRiCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJkYworI2RlZmluZSBtbU1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZGQKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmRlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJkZgorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9CQVNFX0FERFJfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZTAKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9CQVNFX0FERFJfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmUxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJlMgorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZTMKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmU0CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJlNQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZTYKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmU3CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0FERFJfTUFTS19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJlOAorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0FERFJfTUFTS19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZTkKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmVhCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0FERFJfQ0ZHX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJlYgorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9BRERSX0NGR19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZWMKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9BRERSX0NGR19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmVkCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0FERFJfU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJlZQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0FERFJfU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9BRERSX1NFTDJfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZWYKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9BRERSX1NFTDJfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9TRUwyX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmYwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJmMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZjIKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmYzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJmNAorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9STV9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZjUKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9STV9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmY2CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJmNworI2RlZmluZSBtbU1NRUE1X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZjgKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmY5CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJmYQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9CQVNFX0FERFJfQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZmIKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9CQVNFX0FERFJfQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmZjCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzJmZAorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyZmUKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMmZmCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMwMAorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9BRERSX01BU0tfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9BRERSX01BU0tfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9NQVNLX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzAyCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMwMworI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMDQKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9DRkdfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzA1CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0FERFJfQ0ZHX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMwNgorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMDcKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzA4CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0FERFJfU0VMMl9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMwOQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0FERFJfU0VMMl9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9BRERSX1NFTDJfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMGEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9BRERSX1NFTDJfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzBiCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMwYworI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMGQKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzBlCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMwZgorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9STV9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMTAKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMV9STV9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzExCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMxMgorI2RlZmluZSBtbU1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMTMKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzE0CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9DUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMxNQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9DUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMTYKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzE3CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMxOAorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMTkKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzFhCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0FERFJfTUFTS19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMxYgorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0FERFJfTUFTS19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9BRERSX01BU0tfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMWMKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9BRERSX01BU0tfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzFkCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMxZQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9BRERSX0NGR19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMWYKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9BRERSX0NGR19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzIwCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMyMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9BRERSX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMjIKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9BRERSX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9TRUwyX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzIzCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0FERFJfU0VMMl9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMyNAorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0FERFJfU0VMMl9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMjUKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzI2CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMyNworI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMjgKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzI5CisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX1JNX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMyYQorI2RlZmluZSBtbU1NRUE1X0FERFJERUMyX1JNX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9STV9TRUxfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMmIKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzJjCisjZGVmaW5lIG1tTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMyZAorI2RlZmluZSBtbU1NRUE1X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STUdNSV9HTE9CQUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzMmUKKyNkZWZpbmUgbW1NTUVBNV9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzU1CisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM1NgorI2RlZmluZSBtbU1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNTcKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzU4CisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0lPX1JEX0NPTUJJTkVfRkxVU0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM1OQorI2RlZmluZSBtbU1NRUE1X0lPX1JEX0NPTUJJTkVfRkxVU0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9DT01CSU5FX0ZMVVNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNWEKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9DT01CSU5FX0ZMVVNIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfSU9fR1JPVVBfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzViCisjZGVmaW5lIG1tTU1FQTVfSU9fR1JPVVBfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0lPX1JEX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM1YworI2RlZmluZSBtbU1NRUE1X0lPX1JEX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNWQKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzVlCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0lPX1dSX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM1ZgorI2RlZmluZSBtbU1NRUE1X0lPX1dSX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9JT19SRF9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNjAKKyNkZWZpbmUgbW1NTUVBNV9JT19SRF9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzYxCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM2MgorI2RlZmluZSBtbU1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNjMKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzY0CisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM2NQorI2RlZmluZSBtbU1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNjYKKyNkZWZpbmUgbW1NTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzY3CisjZGVmaW5lIG1tTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0lPX1JEX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM2OAorI2RlZmluZSBtbU1NRUE1X0lPX1JEX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNjkKKyNkZWZpbmUgbW1NTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzZhCisjZGVmaW5lIG1tTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0lPX1dSX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM2YgorI2RlZmluZSBtbU1NRUE1X0lPX1dSX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9TRFBfQVJCX0RSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNmMKKyNkZWZpbmUgbW1NTUVBNV9TRFBfQVJCX0RSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfU0RQX0FSQl9HTUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzZkCisjZGVmaW5lIG1tTU1FQTVfU0RQX0FSQl9HTUlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X1NEUF9BUkJfRklOQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM2ZQorI2RlZmluZSBtbU1NRUE1X1NEUF9BUkJfRklOQUxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9TRFBfRFJBTV9QUklPUklUWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNmYKKyNkZWZpbmUgbW1NTUVBNV9TRFBfRFJBTV9QUklPUklUWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfU0RQX0dNSV9QUklPUklUWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzcwCisjZGVmaW5lIG1tTU1FQTVfU0RQX0dNSV9QUklPUklUWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X1NEUF9JT19QUklPUklUWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM3MQorI2RlZmluZSBtbU1NRUE1X1NEUF9JT19QUklPUklUWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9TRFBfQ1JFRElUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNzIKKyNkZWZpbmUgbW1NTUVBNV9TRFBfQ1JFRElUU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfU0RQX1RBR19SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzczCisjZGVmaW5lIG1tTU1FQTVfU0RQX1RBR19SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X1NEUF9UQUdfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM3NAorI2RlZmluZSBtbU1NRUE1X1NEUF9UQUdfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9TRFBfVkNDX1JFU0VSVkUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNzUKKyNkZWZpbmUgbW1NTUVBNV9TRFBfVkNDX1JFU0VSVkUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzc2CisjZGVmaW5lIG1tTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X1NEUF9WQ0RfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM3NworI2RlZmluZSBtbU1NRUE1X1NEUF9WQ0RfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9TRFBfVkNEX1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzNzgKKyNkZWZpbmUgbW1NTUVBNV9TRFBfVkNEX1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfU0RQX1JFUV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzc5CisjZGVmaW5lIG1tTU1FQTVfU0RQX1JFUV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM3YQorI2RlZmluZSBtbU1NRUE1X01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9MQVRFTkNZX1NBTVBMSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzN2IKKyNkZWZpbmUgbW1NTUVBNV9MQVRFTkNZX1NBTVBMSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfUEVSRkNPVU5URVJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzdjCisjZGVmaW5lIG1tTU1FQTVfUEVSRkNPVU5URVJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X1BFUkZDT1VOVEVSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM3ZAorI2RlZmluZSBtbU1NRUE1X1BFUkZDT1VOVEVSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9QRVJGQ09VTlRFUjBfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzN2UKKyNkZWZpbmUgbW1NTUVBNV9QRVJGQ09VTlRFUjBfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfUEVSRkNPVU5URVIxX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzdmCisjZGVmaW5lIG1tTU1FQTVfUEVSRkNPVU5URVIxX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X1BFUkZDT1VOVEVSX1JTTFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM4MAorI2RlZmluZSBtbU1NRUE1X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9FRENfQ05UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzODYKKyNkZWZpbmUgbW1NTUVBNV9FRENfQ05UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRURDX0NOVDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzg3CisjZGVmaW5lIG1tTU1FQTVfRURDX0NOVDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RTTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM4OAorI2RlZmluZSBtbU1NRUE1X0RTTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EU01fQ05UTEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzODkKKyNkZWZpbmUgbW1NTUVBNV9EU01fQ05UTEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVExCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzhhCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVExCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0RTTV9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM4YgorI2RlZmluZSBtbU1NRUE1X0RTTV9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9EU01fQ05UTDJBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzOGMKKyNkZWZpbmUgbW1NTUVBNV9EU01fQ05UTDJBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVEwyQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzhkCisjZGVmaW5lIG1tTU1FQTVfRFNNX0NOVEwyQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM4ZgorI2RlZmluZSBtbU1NRUE1X0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9FRENfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzOTAKKyNkZWZpbmUgbW1NTUVBNV9FRENfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRVJSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzkxCisjZGVmaW5lIG1tTU1FQTVfRVJSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE1X01JU0MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzM5MgorI2RlZmluZSBtbU1NRUE1X01JU0MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDX1NFTEVDVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzOTMKKyNkZWZpbmUgbW1NTUVBNV9BRERSREVDX1NFTEVDVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTVfRURDX0NOVDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMzk0CisjZGVmaW5lIG1tTU1FQTVfRURDX0NOVDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZWFfbW1lYWRlYzYKKy8vIGJhc2UgYWRkcmVzczogMHg3NGYwMAorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNjMAorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzYzEKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2MyCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNjMworI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1JEX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzYzQKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1JEX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9XUl9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2M1CisjZGVmaW5lIG1tTU1FQTZfRFJBTV9XUl9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNjNgorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1dSX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzYzcKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1dSX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9SRF9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2M4CisjZGVmaW5lIG1tTU1FQTZfRFJBTV9SRF9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNjOQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1BBR0VfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzY2EKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1BBR0VfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9SRF9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2NiCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9SRF9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNjYworI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1JEX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzY2QKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1JEX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9XUl9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2NlCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9XUl9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNjZgorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1dSX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZDAKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1dSX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9SRF9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2QxCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9SRF9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNkMgorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZDMKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2Q0CisjZGVmaW5lIG1tTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNkNQorI2RlZmluZSBtbU1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZDYKKyNkZWZpbmUgbW1NTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2Q3CisjZGVmaW5lIG1tTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNkOAorI2RlZmluZSBtbU1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZDkKKyNkZWZpbmUgbW1NTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2RhCisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNkYgorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZGMKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2RkCisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9HUlAyVkNfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNkZQorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9HUlAyVkNfTUFQX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfUkRfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZGYKKyNkZWZpbmUgbW1NTUVBNl9HTUlfUkRfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfR01JX1dSX0xBWlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2UwCisjZGVmaW5lIG1tTU1FQTZfR01JX1dSX0xBWllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNlMQorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfQ0FNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZTIKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfQ0FNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfR01JX1BBR0VfQlVSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2UzCisjZGVmaW5lIG1tTU1FQTZfR01JX1BBR0VfQlVSU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNlNAorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZTUKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2U2CisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNlNworI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfUkRfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZTgKKyNkZWZpbmUgbW1NTUVBNl9HTUlfUkRfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfR01JX1dSX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2U5CisjZGVmaW5lIG1tTU1FQTZfR01JX1dSX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNlYQorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZWIKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2VjCisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNlZAorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZWUKKyNkZWZpbmUgbW1NTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2VmCisjZGVmaW5lIG1tTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNmMAorI2RlZmluZSBtbU1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZjEKKyNkZWZpbmUgbW1NTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2YyCisjZGVmaW5lIG1tTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNmMworI2RlZmluZSBtbU1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9CQVNFX0FERFIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZjQKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9CQVNFX0FERFIwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2Y1CisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNmNgorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZjcKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fT0ZGU0VUX0FERFIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2Y4CisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fT0ZGU0VUX0FERFIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNmOQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZmEKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2ZiCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNmYworI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9PRkZTRVRfQUREUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzZmQKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9PRkZTRVRfQUREUjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzM2ZlCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNmZgorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9CQVNFX0FERFI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MDAKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STV9CQVNFX0FERFI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDAxCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQwMgorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STURSQU1fSE9MRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MDMKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STURSQU1fSE9MRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1HTUlfSE9MRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDA0CisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1HTUlfSE9MRV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQwNQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MDYKKyNkZWZpbmUgbW1NTUVBNl9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ19CQU5LX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDA3CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ19CQU5LX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNfTUlTQ19DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQwOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNfTUlTQ19DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MDkKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDBhCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQwYgorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MGMKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDBkCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQwZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MGYKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDEwCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQxMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MTIKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDEzCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQxNAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MTUKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDE2CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQxNworI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MTgKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDE5CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQxYQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9QQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MWIKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9QQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDFjCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQxZAorI2RlZmluZSBtbU1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MWUKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDFmCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQyMAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9CQVNFX0FERFJfQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MjEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9CQVNFX0FERFJfQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDIyCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQyMworI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MjQKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDI1CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQyNgorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9BRERSX01BU0tfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MjcKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9BRERSX01BU0tfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQUREUl9NQVNLX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDI4CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQyOQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MmEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQUREUl9DRkdfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDJiCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQyYworI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MmQKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQUREUl9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDJlCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfU0VMMl9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQyZgorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0FERFJfU0VMMl9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9BRERSX1NFTDJfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MzAKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9BRERSX1NFTDJfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDMxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQzMgorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MzMKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDM0CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQzNQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9STV9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MzYKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMF9STV9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDM3CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQzOAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0MzkKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDNhCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQzYgorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0M2MKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDNkCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQzZQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0M2YKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDQwCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfTUFTS19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ0MQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfTUFTS19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9BRERSX01BU0tfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NDIKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9BRERSX01BU0tfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDQzCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ0NAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9BRERSX0NGR19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NDUKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9BRERSX0NGR19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQUREUl9DRkdfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDQ2CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ0NworI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9BRERSX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NDgKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9BRERSX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQUREUl9TRUwyX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDQ5CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfU0VMMl9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ0YQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0FERFJfU0VMMl9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NGIKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDRjCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ0ZAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NGUKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDRmCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX1JNX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ1MAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMxX1JNX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9STV9TRUxfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NTEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDUyCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ1MworI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9CQVNFX0FERFJfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NTQKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9CQVNFX0FERFJfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDU1CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ1NgorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NTcKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDU4CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ1OQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NWEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQUREUl9NQVNLX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDViCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfTUFTS19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ1YworI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfTUFTS19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NWQKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDVlCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfQ0ZHX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ1ZgorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9BRERSX0NGR19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NjAKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9BRERSX0NGR19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDYxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2MgorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0FERFJfU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9BRERSX1NFTDJfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NjMKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQUREUl9TRUwyX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDY0CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2NQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NjYKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDY3CisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2OAorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9STV9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NjkKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9STV9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfUk1fU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDZhCisjZGVmaW5lIG1tTU1FQTZfQUREUkRFQzJfUk1fU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2YgorI2RlZmluZSBtbU1NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0NmMKKyNkZWZpbmUgbW1NTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDZkCisjZGVmaW5lIG1tTU1FQTZfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ2ZQorI2RlZmluZSBtbU1NRUE2X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9JT19SRF9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0OTUKKyNkZWZpbmUgbW1NTUVBNl9JT19SRF9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDk2CisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ5NworI2RlZmluZSBtbU1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9JT19XUl9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0OTgKKyNkZWZpbmUgbW1NTUVBNl9JT19XUl9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfQ09NQklORV9GTFVTSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDk5CisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfQ09NQklORV9GTFVTSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0lPX1dSX0NPTUJJTkVfRkxVU0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ5YQorI2RlZmluZSBtbU1NRUE2X0lPX1dSX0NPTUJJTkVfRkxVU0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9JT19HUk9VUF9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0OWIKKyNkZWZpbmUgbW1NTUVBNl9JT19HUk9VUF9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDljCisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQ5ZAorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9JT19SRF9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0OWUKKyNkZWZpbmUgbW1NTUVBNl9JT19SRF9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfSU9fV1JfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNDlmCisjZGVmaW5lIG1tTU1FQTZfSU9fV1JfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRhMAorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9JT19XUl9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YTEKKyNkZWZpbmUgbW1NTUVBNl9JT19XUl9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGEyCisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRhMworI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YTQKKyNkZWZpbmUgbW1NTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGE1CisjZGVmaW5lIG1tTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRhNgorI2RlZmluZSBtbU1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9JT19SRF9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YTcKKyNkZWZpbmUgbW1NTUVBNl9JT19SRF9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGE4CisjZGVmaW5lIG1tTU1FQTZfSU9fUkRfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRhOQorI2RlZmluZSBtbU1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9JT19XUl9QUklfUVVBTlRfUFJJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YWEKKyNkZWZpbmUgbW1NTUVBNl9JT19XUl9QUklfUVVBTlRfUFJJMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfSU9fV1JfUFJJX1FVQU5UX1BSSTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGFiCisjZGVmaW5lIG1tTU1FQTZfSU9fV1JfUFJJX1FVQU5UX1BSSTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X1NEUF9BUkJfRFJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRhYworI2RlZmluZSBtbU1NRUE2X1NEUF9BUkJfRFJBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9TRFBfQVJCX0dNSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YWQKKyNkZWZpbmUgbW1NTUVBNl9TRFBfQVJCX0dNSV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfU0RQX0FSQl9GSU5BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGFlCisjZGVmaW5lIG1tTU1FQTZfU0RQX0FSQl9GSU5BTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X1NEUF9EUkFNX1BSSU9SSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRhZgorI2RlZmluZSBtbU1NRUE2X1NEUF9EUkFNX1BSSU9SSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9TRFBfR01JX1BSSU9SSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YjAKKyNkZWZpbmUgbW1NTUVBNl9TRFBfR01JX1BSSU9SSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfU0RQX0lPX1BSSU9SSVRZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGIxCisjZGVmaW5lIG1tTU1FQTZfU0RQX0lPX1BSSU9SSVRZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X1NEUF9DUkVESVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRiMgorI2RlZmluZSBtbU1NRUE2X1NEUF9DUkVESVRTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9TRFBfVEFHX1JFU0VSVkUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YjMKKyNkZWZpbmUgbW1NTUVBNl9TRFBfVEFHX1JFU0VSVkUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfU0RQX1RBR19SRVNFUlZFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGI0CisjZGVmaW5lIG1tTU1FQTZfU0RQX1RBR19SRVNFUlZFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X1NEUF9WQ0NfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRiNQorI2RlZmluZSBtbU1NRUE2X1NEUF9WQ0NfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9TRFBfVkNDX1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YjYKKyNkZWZpbmUgbW1NTUVBNl9TRFBfVkNDX1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGI3CisjZGVmaW5lIG1tTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X1NEUF9WQ0RfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRiOAorI2RlZmluZSBtbU1NRUE2X1NEUF9WQ0RfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9TRFBfUkVRX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YjkKKyNkZWZpbmUgbW1NTUVBNl9TRFBfUkVRX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGJhCisjZGVmaW5lIG1tTU1FQTZfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0xBVEVOQ1lfU0FNUExJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRiYgorI2RlZmluZSBtbU1NRUE2X0xBVEVOQ1lfU0FNUExJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9QRVJGQ09VTlRFUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YmMKKyNkZWZpbmUgbW1NTUVBNl9QRVJGQ09VTlRFUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfUEVSRkNPVU5URVJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGJkCisjZGVmaW5lIG1tTU1FQTZfUEVSRkNPVU5URVJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRiZQorI2RlZmluZSBtbU1NRUE2X1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YmYKKyNkZWZpbmUgbW1NTUVBNl9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfUEVSRkNPVU5URVJfUlNMVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGMwCisjZGVmaW5lIG1tTU1FQTZfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0VEQ19DTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRjNgorI2RlZmluZSBtbU1NRUE2X0VEQ19DTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9FRENfQ05UMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0YzcKKyNkZWZpbmUgbW1NTUVBNl9FRENfQ05UMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFNNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGM4CisjZGVmaW5lIG1tTU1FQTZfRFNNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRjOQorI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EU01fQ05UTEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0Y2EKKyNkZWZpbmUgbW1NTUVBNl9EU01fQ05UTEJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfRFNNX0NOVEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGNiCisjZGVmaW5lIG1tTU1FQTZfRFNNX0NOVEwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMMkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRjYworI2RlZmluZSBtbU1NRUE2X0RTTV9DTlRMMkFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9EU01fQ05UTDJCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0Y2QKKyNkZWZpbmUgbW1NTUVBNl9EU01fQ05UTDJCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfQ0dUVF9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGNmCisjZGVmaW5lIG1tTU1FQTZfQ0dUVF9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0VEQ19NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRkMAorI2RlZmluZSBtbU1NRUE2X0VEQ19NT0RFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9FUlJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0ZDEKKyNkZWZpbmUgbW1NTUVBNl9FUlJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTZfTUlTQzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNGQyCisjZGVmaW5lIG1tTU1FQTZfTUlTQzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE2X0FERFJERUNfU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzRkMworI2RlZmluZSBtbU1NRUE2X0FERFJERUNfU0VMRUNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBNl9FRENfQ05UMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0ZDQKKyNkZWZpbmUgbW1NTUVBNl9FRENfQ05UM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9lYV9tbWVhZGVjNworLy8gYmFzZSBhZGRyZXNzOiAweDc1NDAwCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTAwCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUwMQorI2RlZmluZSBtbU1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MDIKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTAzCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RSQU1fUkRfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUwNAorI2RlZmluZSBtbU1NRUE3X0RSQU1fUkRfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MDUKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9SRF9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTA2CisjZGVmaW5lIG1tTU1FQTdfRFJBTV9SRF9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RSQU1fV1JfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUwNworI2RlZmluZSBtbU1NRUE3X0RSQU1fV1JfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MDgKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTA5CisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RSQU1fUEFHRV9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUwYQorI2RlZmluZSBtbU1NRUE3X0RSQU1fUEFHRV9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MGIKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTBjCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RSQU1fUkRfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUwZAorI2RlZmluZSBtbU1NRUE3X0RSQU1fUkRfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MGUKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9SRF9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTBmCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9SRF9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RSQU1fV1JfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUxMAorI2RlZmluZSBtbU1NRUE3X0RSQU1fV1JfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MTEKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTEyCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUxMworI2RlZmluZSBtbU1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MTQKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTE1CisjZGVmaW5lIG1tTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUxNgorI2RlZmluZSBtbU1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MTcKKyNkZWZpbmUgbW1NTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTE4CisjZGVmaW5lIG1tTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUxOQorI2RlZmluZSBtbU1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MWEKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTFiCisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUxYworI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfR1JQMlZDX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MWQKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfR1JQMlZDX01BUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX0dSUDJWQ19NQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTFlCisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX0dSUDJWQ19NQVBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0dNSV9SRF9MQVpZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUxZgorI2RlZmluZSBtbU1NRUE3X0dNSV9SRF9MQVpZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfTEFaWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MjAKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfTEFaWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfR01JX1JEX0NBTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTIxCisjZGVmaW5lIG1tTU1FQTdfR01JX1JEX0NBTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9DQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUyMgorI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9DQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19HTUlfUEFHRV9CVVJTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MjMKKyNkZWZpbmUgbW1NTUVBN19HTUlfUEFHRV9CVVJTVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfR01JX1JEX1BSSV9BR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTI0CisjZGVmaW5lIG1tTU1FQTdfR01JX1JEX1BSSV9BR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUyNQorI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1FVRVVJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MjYKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1FVRVVJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTI3CisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0dNSV9SRF9QUklfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUyOAorI2RlZmluZSBtbU1NRUE3X0dNSV9SRF9QUklfRklYRURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MjkKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTJhCisjZGVmaW5lIG1tTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUyYgorI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MmMKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTJkCisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUyZQorI2RlZmluZSBtbU1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MmYKKyNkZWZpbmUgbW1NTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTMwCisjZGVmaW5lIG1tTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUzMQorI2RlZmluZSBtbU1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MzIKKyNkZWZpbmUgbW1NTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTMzCisjZGVmaW5lIG1tTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUzNAorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MzUKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTM2CisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUzNworI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1MzgKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTM5CisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUzYQorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1M2IKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTNjCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX09GRlNFVF9BRERSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUzZAorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX09GRlNFVF9BRERSM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1M2UKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9CQVNFX0FERFI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTNmCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU0MAorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NDEKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STV9MSU1JVF9BRERSNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fT0ZGU0VUX0FERFI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTQyCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1fT0ZGU0VUX0FERFI1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNRFJBTV9IT0xFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU0MworI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNRFJBTV9IT0xFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STUdNSV9IT0xFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NDQKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STUdNSV9IT0xFX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTQ1CisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU0NgorI2RlZmluZSBtbU1NRUE3X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDX0JBTktfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NDcKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDX0JBTktfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ19NSVNDX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTQ4CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ19NSVNDX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU0OQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NGEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTRiCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU0YworI2RlZmluZSBtbU1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NGQKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTRlCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU0ZgorI2RlZmluZSBtbU1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NTAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTUxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU1MgorI2RlZmluZSBtbU1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NTMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTU0CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU1NQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NTYKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTU3CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU1OAorI2RlZmluZSBtbU1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NTkKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTVhCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU1YgorI2RlZmluZSBtbU1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NWMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTVkCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU1ZQorI2RlZmluZSBtbU1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NWYKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTYwCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9DUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU2MQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9DUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NjIKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTYzCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU2NAorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NjUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTY2CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0FERFJfTUFTS19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU2NworI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0FERFJfTUFTS19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX01BU0tfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NjgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX01BU0tfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTY5CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU2YQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX0NGR19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NmIKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX0NGR19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQUREUl9DRkdfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTZjCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU2ZAorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NmUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9BRERSX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQUREUl9TRUwyX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTZmCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0FERFJfU0VMMl9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU3MAorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0FERFJfU0VMMl9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NzEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTcyCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU3MworI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NzQKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTc1CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX1JNX1NFTF9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU3NgorI2RlZmluZSBtbU1NRUE3X0FERFJERUMwX1JNX1NFTF9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1NzcKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTc4CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU3OQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1N2EKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTdiCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU3YworI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1N2QKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTdlCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU3ZgorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ODAKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQUREUl9NQVNLX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTgxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0FERFJfTUFTS19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU4MgorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0FERFJfTUFTS19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ODMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTg0CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0FERFJfQ0ZHX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU4NQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX0NGR19DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ODYKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX0NGR19DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTg3CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0FERFJfU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU4OAorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0FERFJfU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX1NFTDJfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ODkKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQUREUl9TRUwyX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNThhCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU4YgorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1OGMKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNThkCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU4ZQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1OGYKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfUk1fU0VMX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTkwCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzFfUk1fU0VMX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU5MQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1OTIKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTkzCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9DUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU5NAorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9DUzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1OTUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTk2CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU5NworI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1OTgKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTk5CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU5YQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX01BU0tfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1OWIKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX01BU0tfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQUREUl9NQVNLX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTljCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzU5ZAorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1OWUKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQUREUl9DRkdfQ1MwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNTlmCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0FERFJfQ0ZHX0NTMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVhMAorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1YTEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQUREUl9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWEyCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0FERFJfU0VMMl9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVhMworI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0FERFJfU0VMMl9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX1NFTDJfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1YTQKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9BRERSX1NFTDJfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWE1CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVhNgorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1YTcKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWE4CisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVhOQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzAxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9STV9TRUxfQ1MyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1YWEKKyNkZWZpbmUgbW1NTUVBN19BRERSREVDMl9STV9TRUxfQ1MyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWFiCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVhYworI2RlZmluZSBtbU1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STURSQU1fR0xPQkFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1YWQKKyNkZWZpbmUgbW1NTUVBN19BRERSTk9STURSQU1fR0xPQkFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1HTUlfR0xPQkFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWFlCisjZGVmaW5lIG1tTU1FQTdfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVkNQorI2RlZmluZSBtbU1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9DTEkyR1JQX01BUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZDYKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9DTEkyR1JQX01BUDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWQ3CisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVkOAorI2RlZmluZSBtbU1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZDkKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfQ09NQklORV9GTFVTSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWRhCisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfQ09NQklORV9GTFVTSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0lPX0dST1VQX0JVUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVkYgorI2RlZmluZSBtbU1NRUE3X0lPX0dST1VQX0JVUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZGMKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfUFJJX0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWRkCisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfUFJJX0FHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0lPX1JEX1BSSV9RVUVVSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVkZQorI2RlZmluZSBtbU1NRUE3X0lPX1JEX1BSSV9RVUVVSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfUVVFVUlORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZGYKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfUVVFVUlOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfSU9fUkRfUFJJX0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWUwCisjZGVmaW5lIG1tTU1FQTdfSU9fUkRfUFJJX0ZJWEVEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0lPX1dSX1BSSV9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVlMQorI2RlZmluZSBtbU1NRUE3X0lPX1dSX1BSSV9GSVhFRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfVVJHRU5DWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZTIKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfVVJHRU5DWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWUzCisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVlNAorI2RlZmluZSBtbU1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZTUKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWU2CisjZGVmaW5lIG1tTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0lPX1JEX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVlNworI2RlZmluZSBtbU1NRUE3X0lPX1JEX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZTgKKyNkZWZpbmUgbW1NTUVBN19JT19SRF9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWU5CisjZGVmaW5lIG1tTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0lPX1dSX1BSSV9RVUFOVF9QUkkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVlYQorI2RlZmluZSBtbU1NRUE3X0lPX1dSX1BSSV9RVUFOVF9QUkkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfUVVBTlRfUFJJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZWIKKyNkZWZpbmUgbW1NTUVBN19JT19XUl9QUklfUVVBTlRfUFJJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfU0RQX0FSQl9EUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWVjCisjZGVmaW5lIG1tTU1FQTdfU0RQX0FSQl9EUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X1NEUF9BUkJfR01JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVlZAorI2RlZmluZSBtbU1NRUE3X1NEUF9BUkJfR01JX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19TRFBfQVJCX0ZJTkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZWUKKyNkZWZpbmUgbW1NTUVBN19TRFBfQVJCX0ZJTkFMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfU0RQX0RSQU1fUFJJT1JJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWVmCisjZGVmaW5lIG1tTU1FQTdfU0RQX0RSQU1fUFJJT1JJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X1NEUF9HTUlfUFJJT1JJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVmMAorI2RlZmluZSBtbU1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19TRFBfSU9fUFJJT1JJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZjEKKyNkZWZpbmUgbW1NTUVBN19TRFBfSU9fUFJJT1JJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfU0RQX0NSRURJVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWYyCisjZGVmaW5lIG1tTU1FQTdfU0RQX0NSRURJVFNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X1NEUF9UQUdfUkVTRVJWRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVmMworI2RlZmluZSBtbU1NRUE3X1NEUF9UQUdfUkVTRVJWRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19TRFBfVEFHX1JFU0VSVkUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZjQKKyNkZWZpbmUgbW1NTUVBN19TRFBfVEFHX1JFU0VSVkUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfU0RQX1ZDQ19SRVNFUlZFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWY1CisjZGVmaW5lIG1tTU1FQTdfU0RQX1ZDQ19SRVNFUlZFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X1NEUF9WQ0NfUkVTRVJWRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVmNgorI2RlZmluZSBtbU1NRUE3X1NEUF9WQ0NfUkVTRVJWRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19TRFBfVkNEX1JFU0VSVkUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZjcKKyNkZWZpbmUgbW1NTUVBN19TRFBfVkNEX1JFU0VSVkUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfU0RQX1ZDRF9SRVNFUlZFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWY4CisjZGVmaW5lIG1tTU1FQTdfU0RQX1ZDRF9SRVNFUlZFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X1NEUF9SRVFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVmOQorI2RlZmluZSBtbU1NRUE3X1NEUF9SRVFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZmEKKyNkZWZpbmUgbW1NTUVBN19NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfTEFURU5DWV9TQU1QTElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWZiCisjZGVmaW5lIG1tTU1FQTdfTEFURU5DWV9TQU1QTElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X1BFUkZDT1VOVEVSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVmYworI2RlZmluZSBtbU1NRUE3X1BFUkZDT1VOVEVSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19QRVJGQ09VTlRFUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1ZmQKKyNkZWZpbmUgbW1NTUVBN19QRVJGQ09VTlRFUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfUEVSRkNPVU5URVIwX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNWZlCisjZGVmaW5lIG1tTU1FQTdfUEVSRkNPVU5URVIwX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X1BFUkZDT1VOVEVSMV9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzVmZgorI2RlZmluZSBtbU1NRUE3X1BFUkZDT1VOVEVSMV9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19QRVJGQ09VTlRFUl9SU0xUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM2MDAKKyNkZWZpbmUgbW1NTUVBN19QRVJGQ09VTlRFUl9SU0xUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRURDX0NOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNjA2CisjZGVmaW5lIG1tTU1FQTdfRURDX0NOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0VEQ19DTlQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzYwNworI2RlZmluZSBtbU1NRUE3X0VEQ19DTlQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM2MDgKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFNNX0NOVExBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNjA5CisjZGVmaW5lIG1tTU1FQTdfRFNNX0NOVExBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RTTV9DTlRMQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzYwYQorI2RlZmluZSBtbU1NRUE3X0RTTV9DTlRMQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM2MGIKKyNkZWZpbmUgbW1NTUVBN19EU01fQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRFNNX0NOVEwyQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNjBjCisjZGVmaW5lIG1tTU1FQTdfRFNNX0NOVEwyQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0RTTV9DTlRMMkIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzYwZAorI2RlZmluZSBtbU1NRUE3X0RTTV9DTlRMMkJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM2MGYKKyNkZWZpbmUgbW1NTUVBN19DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfRURDX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNjEwCisjZGVmaW5lIG1tTU1FQTdfRURDX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0VSUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzYxMQorI2RlZmluZSBtbU1NRUE3X0VSUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NTUVBN19NSVNDMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM2MTIKKyNkZWZpbmUgbW1NTUVBN19NSVNDMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ19TRUxFQ1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNjEzCisjZGVmaW5lIG1tTU1FQTdfQUREUkRFQ19TRUxFQ1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1NRUE3X0VEQ19DTlQzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzYxNAorI2RlZmluZSBtbU1NRUE3X0VEQ19DTlQzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3BjdGxkZWMxCisvLyBiYXNlIGFkZHJlc3M6IDB4NzYzMDAKKyNkZWZpbmUgbW1QQ1RMMV9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4YzAKKyNkZWZpbmUgbW1QQ1RMMV9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfTU1IVUJfREVFUFNMRUVQX0lCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGMxCisjZGVmaW5lIG1tUENUTDFfTU1IVUJfREVFUFNMRUVQX0lCX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhjMgorI2RlZmluZSBtbVBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4YzMKKyNkZWZpbmUgbW1QQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGM0CisjZGVmaW5lIG1tUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhjNQorI2RlZmluZSBtbVBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTBfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4YzYKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTBfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGM3CisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhjOAorI2RlZmluZSBtbVBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTFfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4YzkKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTFfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGNhCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhjYgorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4Y2MKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGNkCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhjZQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTNfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4Y2YKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTNfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGQwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhkMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTRfQ0ZHX0RBR0JfQlVTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZDIKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTRfQ0ZHX0RBR0JfQlVTWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X0NGR19EU19BTExPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGQzCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhkNAorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZDUKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGQ2CisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhkNworI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZDgKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfTUlTQ19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGQ5CisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX01JU0NfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9NSVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhkYQorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9NSVNDX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9SRU5HX0VYRUNVVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZGIKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9SRU5HX0VYRUNVVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1JFTkdfRVhFQ1VURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGRjCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1JFTkdfRVhFQ1VURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9SRU5HX0VYRUNVVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhkZAorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9SRU5HX0VYRUNVVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfUkVOR19FWEVDVVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZGUKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfUkVOR19FWEVDVVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1JFTkdfRVhFQ1VURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGRmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1JFTkdfRVhFQ1VURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9SRU5HX0VYRUNVVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhlMAorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9SRU5HX0VYRUNVVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9SRU5HX1JBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZTEKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9SRU5HX1JBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfUkVOR19SQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGUyCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfUkVOR19SQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMF9SRU5HX1JBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhlMworI2RlZmluZSBtbVBDVEwxX1NMSUNFMF9SRU5HX1JBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTBfUkVOR19SQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZTQKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTBfUkVOR19SQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1JFTkdfUkFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGU1CisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1JFTkdfUkFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9SRU5HX1JBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhlNgorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9SRU5HX1JBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfUkVOR19SQU1fSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZTcKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfUkVOR19SQU1fSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1JFTkdfUkFNX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGU4CisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1JFTkdfUkFNX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFM19SRU5HX1JBTV9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhlOQorI2RlZmluZSBtbVBDVEwxX1NMSUNFM19SRU5HX1JBTV9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTNfUkVOR19SQU1fREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZWEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTNfUkVOR19SQU1fREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1JFTkdfUkFNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGViCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1JFTkdfUkFNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9SRU5HX1JBTV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhlYworI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9SRU5HX1JBTV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZWQKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGVlCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhlZgorI2RlZmluZSBtbVBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZjAKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGYxCisjZGVmaW5lIG1tUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhmMgorI2RlZmluZSBtbVBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZjMKKyNkZWZpbmUgbW1QQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGY0CisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhmNQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZjYKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGY3CisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhmOAorI2RlZmluZSBtbVBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZjkKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGZhCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhmYgorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZmMKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOGZkCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzhmZQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4ZmYKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTAwCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkwMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5MDIKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTAzCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkwNAorI2RlZmluZSBtbVBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5MDUKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTA2CisjZGVmaW5lIG1tUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkwNworI2RlZmluZSBtbVBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5MDgKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTA5CisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkwYQorI2RlZmluZSBtbVBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5MGIKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTBjCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkwZAorI2RlZmluZSBtbVBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5MGUKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTBmCisjZGVmaW5lIG1tUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkxMAorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5MTEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTEyCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkxMworI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5MTQKKyNkZWZpbmUgbW1QQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTE1CisjZGVmaW5lIG1tUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkxNgorI2RlZmluZSBtbVBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2wxdGxiX3ZtbDFkZWM6MQorLy8gYmFzZSBhZGRyZXNzOiAweDc2NTAwCisjZGVmaW5lIG1tVk1MMV8xX01DX1ZNX01YX0wxX1RMQjBfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTQ4CisjZGVmaW5lIG1tVk1MMV8xX01DX1ZNX01YX0wxX1RMQjBfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDFfMV9NQ19WTV9NWF9MMV9UTEIxX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk0OQorI2RlZmluZSBtbVZNTDFfMV9NQ19WTV9NWF9MMV9UTEIxX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5NGEKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCMl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMV8xX01DX1ZNX01YX0wxX1RMQjNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTRiCisjZGVmaW5lIG1tVk1MMV8xX01DX1ZNX01YX0wxX1RMQjNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDFfMV9NQ19WTV9NWF9MMV9UTEI0X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk0YworI2RlZmluZSBtbVZNTDFfMV9NQ19WTV9NWF9MMV9UTEI0X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCNV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5NGQKKyNkZWZpbmUgbW1WTUwxXzFfTUNfVk1fTVhfTDFfVExCNV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMV8xX01DX1ZNX01YX0wxX1RMQjZfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTRlCisjZGVmaW5lIG1tVk1MMV8xX01DX1ZNX01YX0wxX1RMQjZfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDFfMV9NQ19WTV9NWF9MMV9UTEI3X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk0ZgorI2RlZmluZSBtbVZNTDFfMV9NQ19WTV9NWF9MMV9UTEI3X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2wxdGxiX3ZtbDFwbGRlYzoxCisvLyBiYXNlIGFkZHJlc3M6IDB4NzY1ODAKKyNkZWZpbmUgbW1WTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5NjAKKyNkZWZpbmUgbW1WTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTYxCisjZGVmaW5lIG1tVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk2MgorI2RlZmluZSBtbVZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSM19DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5NjMKKyNkZWZpbmUgbW1WTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSM19DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9SU0xUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTY0CisjZGVmaW5lIG1tVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfbDF0bGJfdm1sMXByZGVjOjEKKy8vIGJhc2UgYWRkcmVzczogMHg3NjVjMAorI2RlZmluZSBtbVZNTDFQUjFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk3MAorI2RlZmluZSBtbVZNTDFQUjFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwxUFIxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5NzEKKyNkZWZpbmUgbW1WTUwxUFIxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl9hdGNsMmRlYzoxCisvLyBiYXNlIGFkZHJlc3M6IDB4NzY2MDAKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5ODAKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTgxCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk4NAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9DQUNIRV9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5ODUKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9DQUNIRV9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfQ0FDSEVfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTg2CisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfQ0FDSEVfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NOVEwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk4NworI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NOVEwzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5ODgKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfU1RBVFVTMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTg5CisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfU1RBVFVTMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX1NUQVRVUzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk4YQorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX1NUQVRVUzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9NSVNDX0NHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5OGIKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9NSVNDX0NHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfTUVNX1BPV0VSX0xTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOThjCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfTUVNX1BPV0VSX0xTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk4ZAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5OGUKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOThmCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk5MAorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5OTEKKyNkZWZpbmUgbW1BVENMMl8xX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfQ05UTDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOTkyCisjZGVmaW5lIG1tQVRDTDJfMV9BVENfTDJfQ05UTDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX01NX0dST1VQX1JUX0NMQVNTRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzk5MworI2RlZmluZSBtbUFUQ0wyXzFfQVRDX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3ZtbDJwZmRlYzoxCisvLyBiYXNlIGFkZHJlc3M6IDB4NzY3MDAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5YzAKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOWMxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfQ05UTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzljMgorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfQ05UTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5YzMKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9EVU1NWV9QQUdFX0ZBVUxUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOWM0CisjZGVmaW5lIG1tVk1MMlBGMV9WTV9EVU1NWV9QQUdFX0ZBVUxUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjFfVk1fRFVNTVlfUEFHRV9GQVVMVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzljNQorI2RlZmluZSBtbVZNTDJQRjFfVk1fRFVNTVlfUEFHRV9GQVVMVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5YzYKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOWM3CisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzljOAorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5YzkKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX01NX0NOVEw0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOWNhCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX01NX0NOVEw0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzljYgorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5Y2MKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOWNkCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzljZQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5Y2YKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOWQxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfTE9XX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzlkMgorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfTE9XX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0hJR0hfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5ZDMKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0hJR0hfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9ISUdIX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOWQ0CisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9ISUdIX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfQ09OVEVYVF9JREVOVElUWV9QSFlTSUNBTF9PRkZTRVRfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzlkNQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfQ09OVEVYVF9JREVOVElUWV9QSFlTSUNBTF9PRkZTRVRfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFRfSURFTlRJVFlfUEhZU0lDQUxfT0ZGU0VUX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5ZDYKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NPTlRFWFRfSURFTlRJVFlfUEhZU0lDQUxfT0ZGU0VUX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9DTlRMNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOWQ3CisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9DTlRMNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzlkOAorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5ZDkKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOWRhCisjZGVmaW5lIG1tVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfQ0FDSEVfUEFSSVRZX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzlkYgorI2RlZmluZSBtbVZNTDJQRjFfVk1fTDJfQ0FDSEVfUEFSSVRZX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NHVFRfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM5ZGUKKyNkZWZpbmUgbW1WTUwyUEYxX1ZNX0wyX0NHVFRfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bWwydmNkZWM6MQorLy8gYmFzZSBhZGRyZXNzOiAweDc2ODAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTAwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EwMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMDIKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTAzCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EwNAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMDUKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTA2CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EwNworI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMDgKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTA5CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEwX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EwYQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEwX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMGIKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTBjCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEzX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EwZAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEzX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMGUKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTBmCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2ExMAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMTEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTEyCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2ExMworI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMTQKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTE1CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2ExNgorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMTcKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTE4CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2ExOQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMWEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTFiCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2ExYworI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMWQKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTFlCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2ExZgorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfU0VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMjAKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfU0VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1NFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTIxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1NFTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19TRU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EyMgorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19TRU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMjMKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTI0CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EyNQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMjYKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTI3CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EyOAorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMjkKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTJhCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EyYgorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMmMKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTJkCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EyZQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMmYKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTMwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EzMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMzIKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTMzCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EzNAorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMzUKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTM2CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EzNworI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhMzgKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTM5CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EzYQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhM2IKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTNjCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2EzZAorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhM2UKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTNmCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E0MAorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTQyCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E0MworI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNDQKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTQ1CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E0NgorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNDcKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTQ4CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E0OQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNGEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTRiCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E0YworI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNGQKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTRlCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E0ZgorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNTAKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTUxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E1MgorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNTMKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTU0CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E1NQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNTYKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTU3CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E1OAorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNTkKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTVhCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E1YgorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNWMKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTVkCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E1ZQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNWYKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTYwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E2MQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNjIKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTYzCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E2NAorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNjUKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTY2CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E2NworI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNjgKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTY5CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BRERSX1JBTkdFX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E2YQorI2RlZmluZSBtbVZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BRERSX1JBTkdFX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNmIKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTZjCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E2ZAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNmUKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTZmCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E3MAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNzEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTcyCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E3MworI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNzQKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTc1CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E3NgorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhNzcKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTc4CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E3OQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhN2EKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTdiCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E3YworI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhN2QKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTdlCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E3ZgorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhODAKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTgxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E4MgorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhODMKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTg0CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E4NQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhODYKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTg3CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E4OAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhODkKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYThhCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E4YgorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhOGMKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYThkCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E4ZQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhOGYKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTkwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E5MQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhOTIKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTkzCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E5NAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhOTUKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTk2CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E5NworI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhOTgKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTk5CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E5YQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhOWIKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTljCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2E5ZAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhOWUKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYTlmCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FhMAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYTEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWEyCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FhMworI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYTQKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWE1CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FhNgorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYTcKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWE4CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FhOQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYWEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWFiCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FhYworI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYWQKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWFlCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FhZgorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYjAKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWIxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FiMgorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYjMKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWI0CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FiNQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYjYKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWI3CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FiOAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYjkKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWJhCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FiYgorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYmMKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWJkCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FiZQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYmYKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWMwCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FjMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYzIKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWMzCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FjNAorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYzUKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWM2CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FjNworI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhYzgKKyNkZWZpbmUgbW1WTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWM5CisjZGVmaW5lIG1tVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FjYQorI2RlZmluZSBtbVZNTDJWQzFfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3Ztc2hhcmVkcGZkZWM6MQorLy8gYmFzZSBhZGRyZXNzOiAweDc2YjkwCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fTkJfTU1JT0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWU0CisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fTkJfTU1JT0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX05CX01NSU9MSU1JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FlNQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX05CX01NSU9MSU1JVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9QQ0lfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhZTYKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9QQ0lfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fTkJfUENJX0FSQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWU3CisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fTkJfUENJX0FSQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX05CX1RPUF9PRl9EUkFNX1NMT1QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FlOAorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX05CX1RPUF9PRl9EUkFNX1NMT1QxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9MT1dFUl9UT1BfT0ZfRFJBTTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhZTkKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9OQl9MT1dFUl9UT1BfT0ZfRFJBTTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fTkJfVVBQRVJfVE9QX09GX0RSQU0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWVhCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fTkJfVVBQRVJfVE9QX09GX0RSQU0yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX0ZCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FlYgorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX0ZCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX0xTQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhZWMKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX0xTQl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9NU0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWVkCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9NU0JfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX1NURUVSSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FlZQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX1NURUVSSU5HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19TSEFSRURfVklSVF9SRVNFVF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhZWYKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19TSEFSRURfVklSVF9SRVNFVF9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfTUVNX1BPV0VSX0xTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWYwCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfTUVNX1BPV0VSX0xTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0FERFJFU1NfU1RBUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FmMQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0FERFJFU1NfU1RBUlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhZjIKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX0VORF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fQVBUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWYzCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fQVBUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX1NUQVJUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FmNAorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX1NUQVJUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhZjUKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19FTkRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fTE9DQUxfSEJNX0FERFJFU1NfTE9DS19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWY2CisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fTE9DQUxfSEJNX0FERFJFU1NfTE9DS19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX1hHTUlfTEZCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2FmNworI2RlZmluZSBtbVZNU0hBUkVEUEYxX01DX1ZNX1hHTUlfTEZCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9YR01JX0xGQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNhZjgKKyNkZWZpbmUgbW1WTVNIQVJFRFBGMV9NQ19WTV9YR01JX0xGQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fQ0FDSEVBQkxFX0RSQU1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYWY5CisjZGVmaW5lIG1tVk1TSEFSRURQRjFfTUNfVk1fQ0FDSEVBQkxFX0RSQU1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1zaGFyZWR2Y2RlYzoxCisvLyBiYXNlIGFkZHJlc3M6IDB4NzZjMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMV9NQ19WTV9GQl9MT0NBVElPTl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMDAKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMV9NQ19WTV9GQl9MT0NBVElPTl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURWQzFfTUNfVk1fRkJfTE9DQVRJT05fVE9QICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjAxCisjZGVmaW5lIG1tVk1TSEFSRURWQzFfTUNfVk1fRkJfTE9DQVRJT05fVE9QX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX0FHUF9UT1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IwMgorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX0FHUF9UT1BfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMV9NQ19WTV9BR1BfQk9UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMDMKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMV9NQ19WTV9BR1BfQk9UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURWQzFfTUNfVk1fQUdQX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjA0CisjZGVmaW5lIG1tVk1TSEFSRURWQzFfTUNfVk1fQUdQX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IwNQorI2RlZmluZSBtbVZNU0hBUkVEVkMxX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMDYKKyNkZWZpbmUgbW1WTVNIQVJFRFZDMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURWQzFfTUNfVk1fTVhfTDFfVExCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjA3CisjZGVmaW5lIG1tVk1TSEFSRURWQzFfTUNfVk1fTVhfTDFfVExCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1zaGFyZWRodmRlYzoxCisvLyBiYXNlIGFkZHJlc3M6IDB4NzZjODAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMjAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjIxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IyMgorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMjMKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjI0CisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IyNQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMjYKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjI3CisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IyOAorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMjkKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjJhCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IyYgorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMmMKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjJkCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IyZQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMmYKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fSU9NTVVfTU1JT19DTlRSTF8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjMwCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fSU9NTVVfTU1JT19DTlRSTF8xX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9MT18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IzMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9MT18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfTE9fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMzIKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfTE9fMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjMzCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9MT18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IzNAorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9MT18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfSElfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMzUKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfSElfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0hJXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjM2CisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0hJXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9ISV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IzNworI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9ISV8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfSElfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiMzgKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfSElfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjM5CisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IzYQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiM2IKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjNjCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfSElfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2IzZAorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfSElfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0hJXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiM2UKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0hJXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjNmCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfSElfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I0MAorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfSElfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18wX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fTE9fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjQyCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fTE9fMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0xPXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I0MworI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0xPXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNDQKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fSElfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjQ1CisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fSElfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0hJXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I0NgorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0hJXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNDcKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fSElfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjQ4CisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19MRU5fSElfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX0lPTU1VX0NPTlRST0xfUkVHSVNURVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I0OQorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX0lPTU1VX0NPTlRST0xfUkVHSVNURVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9JT01NVV9QRVJGT1JNQU5DRV9PUFRJTUlaQVRJT05fQ09OVFJPTF9SRUdJU1RFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNGEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9JT01NVV9QRVJGT1JNQU5DRV9PUFRJTUlaQVRJT05fQ09OVFJPTF9SRUdJU1RFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjRiCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I0YworI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNGQKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjRlCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I0ZgorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNTAKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjUxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl81X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I1MgorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNTMKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl84ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjU0CisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl84X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I1NQorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNTYKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjU3CisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I1OAorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNTkKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjVhCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I1YgorI2RlZmluZSBtbVZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9VVENMMl9DR1RUX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNWMKKyNkZWZpbmUgbW1WTVNIQVJFREhWMV9VVENMMl9DR1RUX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfU0hBUkVEX0FDVElWRV9GQ05fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjVkCisjZGVmaW5lIG1tVk1TSEFSRURIVjFfTUNfU0hBUkVEX0FDVElWRV9GQ05fSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I1ZQorI2RlZmluZSBtbVZNU0hBUkVESFYxX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX2F0Y2wycGZjbnRyZGVjOjEKKy8vIGJhc2UgYWRkcmVzczogMHg3NmRjMAorI2RlZmluZSBtbUFUQ0wyUEZDTlRSMV9BVENfTDJfUEVSRkNPVU5URVJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I3MAorI2RlZmluZSBtbUFUQ0wyUEZDTlRSMV9BVENfTDJfUEVSRkNPVU5URVJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1BVENMMlBGQ05UUjFfQVRDX0wyX1BFUkZDT1VOVEVSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNzEKKyNkZWZpbmUgbW1BVENMMlBGQ05UUjFfQVRDX0wyX1BFUkZDT1VOVEVSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl9hdGNsMnBmY250bGRlYzoxCisvLyBiYXNlIGFkZHJlc3M6IDB4NzZkZDAKKyNkZWZpbmUgbW1BVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiNzQKKyNkZWZpbmUgbW1BVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjc1CisjZGVmaW5lIG1tQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbUFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I3NgorI2RlZmluZSBtbUFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3ZtbDJwbGRlYzoxCisvLyBiYXNlIGFkZHJlc3M6IDB4NzZlMDAKKyNkZWZpbmUgbW1WTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSMF9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiODAKKyNkZWZpbmUgbW1WTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSMF9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjgxCisjZGVmaW5lIG1tVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I4MgorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSM19DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiODMKKyNkZWZpbmUgbW1WTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSM19DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjg0CisjZGVmaW5lIG1tVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I4NQorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1WTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSNl9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiODYKKyNkZWZpbmUgbW1WTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSNl9DRkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjg3CisjZGVmaW5lIG1tVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2I4OAorI2RlZmluZSBtbVZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3ZtbDJwcmRlYzoxCisvLyBiYXNlIGFkZHJlc3M6IDB4NzZlNDAKKyNkZWZpbmUgbW1WTUwyUFIxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiOTAKKyNkZWZpbmUgbW1WTUwyUFIxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVk1MMlBSMV9NQ19WTV9MMl9QRVJGQ09VTlRFUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYjkxCisjZGVmaW5lIG1tVk1MMlBSMV9NQ19WTV9MMl9QRVJGQ09VTlRFUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9tbWh1Yi9tbWh1Yl85XzRfMV9zaF9tYXNrLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbW1odWIvbW1odWJfOV80XzFfc2hfbWFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZGZiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbW1odWIvbW1odWJfOV80XzFfc2hfbWFzay5oCkBAIC0wLDAgKzEsNDQ4ODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX21taHViXzlfNF8xX1NIX01BU0tfSEVBREVSCisjZGVmaW5lIF9tbWh1Yl85XzRfMV9TSF9NQVNLX0hFQURFUgorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZGFnYl9kYWdiZGVjMAorLy9EQUdCMF9SRENMSTAKKyNkZWZpbmUgREFHQjBfUkRDTEkwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEkwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEkwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEkwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTEKKyNkZWZpbmUgREFHQjBfUkRDTEkxX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEkxX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEkxX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEkxX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTIKKyNkZWZpbmUgREFHQjBfUkRDTEkyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEkyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEkyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEkyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTMKKyNkZWZpbmUgREFHQjBfUkRDTEkzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEkzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEkzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEkzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTQKKyNkZWZpbmUgREFHQjBfUkRDTEk0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEk0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEk0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEk0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTUKKyNkZWZpbmUgREFHQjBfUkRDTEk1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEk1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEk1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEk1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTYKKyNkZWZpbmUgREFHQjBfUkRDTEk2X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTZfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEk2X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJNl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTZfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEk2X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTZfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEk2X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTZfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTZfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTZfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTZfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTZfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTZfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTZfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTZfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTZfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTcKKyNkZWZpbmUgREFHQjBfUkRDTEk3X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTdfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEk3X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJN19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTdfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEk3X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTdfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEk3X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTdfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTdfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTdfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTdfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTdfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTdfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTdfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTdfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTdfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTgKKyNkZWZpbmUgREFHQjBfUkRDTEk4X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSThfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEk4X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJOF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSThfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEk4X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSThfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEk4X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSThfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSThfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSThfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSThfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSThfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSThfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSThfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSThfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSThfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTkKKyNkZWZpbmUgREFHQjBfUkRDTEk5X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTlfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEk5X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJOV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTlfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEk5X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTlfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEk5X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTlfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTlfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTlfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTlfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTlfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTlfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTlfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTlfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTlfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTEwCisjZGVmaW5lIERBR0IwX1JEQ0xJMTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRENMSTEwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX1JEQ0xJMTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9SRENMSTEwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IwX1JEQ0xJMTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMF9SRENMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IwX1JEQ0xJMTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjBfUkRDTEkxMQorI2RlZmluZSBEQUdCMF9SRENMSTExX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9SRENMSTExX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfUkRDTEkxMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9SRENMSTExX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfUkRDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRENMSTExX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1JEQ0xJMTIKKyNkZWZpbmUgREFHQjBfUkRDTEkxMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTEyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEkxMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJMTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTEyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEkxMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTEyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEkxMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTEyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTEyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTEyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTEyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTEyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTEyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTEyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTEyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTEyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRENMSTEzCisjZGVmaW5lIERBR0IwX1JEQ0xJMTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRENMSTEzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX1JEQ0xJMTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9SRENMSTEzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IwX1JEQ0xJMTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMF9SRENMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IwX1JEQ0xJMTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRDTEkxM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjBfUkRDTEkxNAorI2RlZmluZSBEQUdCMF9SRENMSTE0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9SRENMSTE0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfUkRDTEkxNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9SRENMSTE0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfUkRDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRENMSTE0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEQ0xJMTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1JEQ0xJMTUKKyNkZWZpbmUgREFHQjBfUkRDTEkxNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9SRENMSTE1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRDTEkxNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEQ0xJMTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRENMSTE1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRDTEkxNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9SRENMSTE1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1JEQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRDTEkxNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRENMSTE1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9SRENMSTE1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9SRENMSTE1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRENMSTE1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRENMSTE1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTE1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTE1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTE1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRENMSTE1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRF9DTlRMCisjZGVmaW5lIERBR0IwX1JEX0NOVExfX1NDTEtfRlJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRF9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0IwX1JEX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9fSU9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQUdCMF9SRF9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IwX1JEX0NOVExfX1NIQVJFX1ZDX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9fU0NMS19GUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGMEwKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9fSU9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBFMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9fU0hBUkVfVkNfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwMDAwMEwKKy8vREFHQjBfUkRfR01JX0NOVEwKKyNkZWZpbmUgREFHQjBfUkRfR01JX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEX0dNSV9DTlRMX19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMF9SRF9HTUlfQ05UTF9fTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjBfUkRfR01JX0NOVExfX0xBWllfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IwX1JEX0dNSV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0IwX1JEX0dNSV9DTlRMX19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0IwX1JEX0dNSV9DTlRMX19NQVhfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFFMDBMCisjZGVmaW5lIERBR0IwX1JEX0dNSV9DTlRMX19MQVpZX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUUwMDBMCisvL0RBR0IwX1JEX0FERFJfREFHQgorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfX1dIT0FNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX19XSE9BTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKy8vREFHQjBfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMF9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IwX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVIKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IwX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjBfUkRfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCMF9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCMF9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjBfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCMF9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0IwX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjBfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjBfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IwX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjBfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCMF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCMF9BVENWTV9SRF9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0IwX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0IwX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCMF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0IwX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjBfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDAKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjBfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMQorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IwX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMF9SRF9WQzBfQ05UTAorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfVkMwX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1JEX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUkRfVkMwX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzBfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9SRF9WQzFfQ05UTAorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfVkMxX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1JEX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUkRfVkMxX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzFfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9SRF9WQzJfQ05UTAorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfVkMyX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1JEX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUkRfVkMyX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzJfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9SRF9WQzNfQ05UTAorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfVkMzX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1JEX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUkRfVkMzX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzNfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9SRF9WQzRfQ05UTAorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfVkM0X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1JEX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUkRfVkM0X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzRfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9SRF9WQzVfQ05UTAorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfVkM1X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1JEX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUkRfVkM1X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzVfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9SRF9WQzZfQ05UTAorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfVkM2X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1JEX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUkRfVkM2X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzZfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9SRF9WQzdfQ05UTAorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRfVkM3X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1JEX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfUkRfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1JEX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUkRfVkM3X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9WQzdfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9SRF9DTlRMX01JU0MKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMF9SRF9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQUdCMF9SRF9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IwX1JEX0NOVExfTUlTQ19fVVRDTDJfQ0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjBfUkRfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9SRF9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCMF9SRF9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkMwTAorI2RlZmluZSBEQUdCMF9SRF9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdFMDAwTAorI2RlZmluZSBEQUdCMF9SRF9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9DTlRMX01JU0NfX1VUQ0wyX0NJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEQUdCMF9SRF9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9SRF9UTEJfQ1JFRElUCisjZGVmaW5lIERBR0IwX1JEX1RMQl9DUkVESVRfX1RMQjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRF9UTEJfQ1JFRElUX19UTEIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjBfUkRfVExCX0NSRURJVF9fVExCMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0IwX1JEX1RMQl9DUkVESVRfX1RMQjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQUdCMF9SRF9UTEJfQ1JFRElUX19UTEI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IwX1JEX1RMQl9DUkVESVRfX1RMQjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfUkRfVExCX0NSRURJVF9fVExCMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjBfUkRfVExCX0NSRURJVF9fVExCMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgREFHQjBfUkRfVExCX0NSRURJVF9fVExCMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgREFHQjBfUkRfVExCX0NSRURJVF9fVExCM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGODAwMEwKKyNkZWZpbmUgREFHQjBfUkRfVExCX0NSRURJVF9fVExCNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKyNkZWZpbmUgREFHQjBfUkRfVExCX0NSRURJVF9fVExCNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRTAwMDAwMEwKKy8vREFHQjBfUkRDTElfQVNLX1BFTkRJTkcKKyNkZWZpbmUgREFHQjBfUkRDTElfQVNLX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJX0FTS19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IwX1JEQ0xJX0dPX1BFTkRJTkcKKyNkZWZpbmUgREFHQjBfUkRDTElfR09fUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJX0dPX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IwX1JEQ0xJX0dCTFNFTkRfUEVORElORworI2RlZmluZSBEQUdCMF9SRENMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfUkRDTElfVExCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjBfUkRDTElfVExCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJX1RMQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IwX1JEQ0xJX09BUkJfUEVORElORworI2RlZmluZSBEQUdCMF9SRENMSV9PQVJCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkRDTElfT0FSQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfUkRDTElfT1NEX1BFTkRJTkcKKyNkZWZpbmUgREFHQjBfUkRDTElfT1NEX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEQ0xJX09TRF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IwX1dSQ0xJMAorI2RlZmluZSBEQUdCMF9XUkNMSTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEkwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEkwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJMQorI2RlZmluZSBEQUdCMF9XUkNMSTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEkxX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEkxX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJMgorI2RlZmluZSBEQUdCMF9XUkNMSTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEkyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEkyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJMworI2RlZmluZSBEQUdCMF9XUkNMSTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEkzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEkzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJNAorI2RlZmluZSBEQUdCMF9XUkNMSTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEk0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEk0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJNQorI2RlZmluZSBEQUdCMF9XUkNMSTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEk1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEk1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJNgorI2RlZmluZSBEQUdCMF9XUkNMSTZfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEk2X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTZfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEk2X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTZfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTZfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJNl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJNworI2RlZmluZSBEQUdCMF9XUkNMSTdfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEk3X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTdfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEk3X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTdfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJN19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTdfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJN19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJOAorI2RlZmluZSBEQUdCMF9XUkNMSThfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEk4X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSThfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEk4X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSThfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSThfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJOQorI2RlZmluZSBEQUdCMF9XUkNMSTlfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEk5X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTlfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEk5X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTlfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTlfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJOV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJMTAKKyNkZWZpbmUgREFHQjBfV1JDTEkxMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9XUkNMSTEwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfV1JDTEkxMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1dSQ0xJMTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9XUkNMSTEwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfV1JDTEkxMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1dSQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfV1JDTEkxMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9XUkNMSTExCisjZGVmaW5lIERBR0IwX1dSQ0xJMTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUkNMSTExX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX1dSQ0xJMTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9XUkNMSTExX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IwX1dSQ0xJMTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMF9XUkNMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IwX1dSQ0xJMTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjBfV1JDTEkxMgorI2RlZmluZSBEQUdCMF9XUkNMSTEyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTEyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEkxMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTEyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTEyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSQ0xJMTMKKyNkZWZpbmUgREFHQjBfV1JDTEkxM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMF9XUkNMSTEzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfV1JDTEkxM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1dSQ0xJMTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9XUkNMSTEzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfV1JDTEkxM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX1dSQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfV1JDTEkxM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUkNMSTEzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9XUkNMSTE0CisjZGVmaW5lIERBR0IwX1dSQ0xJMTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUkNMSTE0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX1dSQ0xJMTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9XUkNMSTE0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IwX1dSQ0xJMTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMF9XUkNMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IwX1dSQ0xJMTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JDTEkxNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjBfV1JDTEkxNQorI2RlZmluZSBEQUdCMF9XUkNMSTE1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUkNMSTE1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JDTEkxNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMF9XUkNMSTE1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfV1JDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUkNMSTE1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSQ0xJMTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IwX1dSX0NOVEwKKyNkZWZpbmUgREFHQjBfV1JfQ05UTF9fU0NMS19GUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX19WQ19NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjBfV1JfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX19JT19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERBR0IwX1dSX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjBfV1JfQ05UTF9fU0hBUkVfVkNfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQUdCMF9XUl9DTlRMX19TQ0xLX0ZSRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0YwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX19WQ19NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX19JT19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX19TSEFSRV9WQ19OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAwMDAwTAorLy9EQUdCMF9XUl9HTUlfQ05UTAorI2RlZmluZSBEQUdCMF9XUl9HTUlfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfR01JX0NOVExfX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IwX1dSX0dNSV9DTlRMX19NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCMF9XUl9HTUlfQ05UTF9fTEFaWV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfV1JfR01JX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjBfV1JfR01JX0NOVExfX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjBfV1JfR01JX0NOVExfX01BWF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUUwMEwKKyNkZWZpbmUgREFHQjBfV1JfR01JX0NOVExfX0xBWllfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRTAwMEwKKy8vREFHQjBfV1JfQUREUl9EQUdCCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9fREFHQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9fV0hPQU1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfX1dIT0FNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorLy9EQUdCMF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1QKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IwX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjBfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUgorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IwX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMF9XUl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0IwX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMF9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0IwX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCMF9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0IwX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjBfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCMF9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjBfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCMF9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjBfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCMF9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0IwX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0IwX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjBfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IwX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjBfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IwX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjBfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCMF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjAKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDEKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjBfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IwX1dSX0RBVEFfREFHQgorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfX0RBR0JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfX1dIT0FNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX19EQUdCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX19XSE9BTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKy8vREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDAKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjBfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMQorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IwX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMF9XUl9WQzBfQ05UTAorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfVkMwX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1dSX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfVkMwX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzBfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9XUl9WQzFfQ05UTAorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfVkMxX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1dSX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfVkMxX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzFfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9XUl9WQzJfQ05UTAorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfVkMyX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1dSX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfVkMyX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzJfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9XUl9WQzNfQ05UTAorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfVkMzX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1dSX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfVkMzX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzNfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9XUl9WQzRfQ05UTAorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfVkM0X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1dSX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfVkM0X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzRfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9XUl9WQzVfQ05UTAorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfVkM1X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1dSX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfVkM1X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzVfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9XUl9WQzZfQ05UTAorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfVkM2X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1dSX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfVkM2X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzZfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9XUl9WQzdfQ05UTAorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JfVkM3X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IwX1dSX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfV1JfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IwX1dSX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfVkM3X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9WQzdfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCMF9XUl9DTlRMX01JU0MKKyNkZWZpbmUgREFHQjBfV1JfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMF9XUl9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjBfV1JfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQUdCMF9XUl9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IwX1dSX0NOVExfTUlTQ19fVVRDTDJfQ0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjBfV1JfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMF9XUl9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkMwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdFMDAwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX01JU0NfX1VUQ0wyX0NJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEQUdCMF9XUl9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMF9XUl9UTEJfQ1JFRElUCisjZGVmaW5lIERBR0IwX1dSX1RMQl9DUkVESVRfX1RMQjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUl9UTEJfQ1JFRElUX19UTEIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjBfV1JfVExCX0NSRURJVF9fVExCMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0IwX1dSX1RMQl9DUkVESVRfX1RMQjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQUdCMF9XUl9UTEJfQ1JFRElUX19UTEI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IwX1dSX1RMQl9DUkVESVRfX1RMQjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjBfV1JfVExCX0NSRURJVF9fVExCMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjBfV1JfVExCX0NSRURJVF9fVExCMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgREFHQjBfV1JfVExCX0NSRURJVF9fVExCMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgREFHQjBfV1JfVExCX0NSRURJVF9fVExCM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGODAwMEwKKyNkZWZpbmUgREFHQjBfV1JfVExCX0NSRURJVF9fVExCNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfVExCX0NSRURJVF9fVExCNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRTAwMDAwMEwKKy8vREFHQjBfV1JfREFUQV9DUkVESVQKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9DUkVESVRfX0RMT0NLX1ZDX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfQ1JFRElUX19MQVJHRV9CVVJTVF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9XUl9EQVRBX0NSRURJVF9fTUlERExFX0JVUlNUX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IwX1dSX0RBVEFfQ1JFRElUX19TTUFMTF9CVVJTVF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9DUkVESVRfX0RMT0NLX1ZDX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9DUkVESVRfX0xBUkdFX0JVUlNUX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9DUkVESVRfX01JRERMRV9CVVJTVF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgREFHQjBfV1JfREFUQV9DUkVESVRfX1NNQUxMX0JVUlNUX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vREFHQjBfV1JfTUlTQ19DUkVESVQKKyNkZWZpbmUgREFHQjBfV1JfTUlTQ19DUkVESVRfX0FUT01JQ19DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1dSX01JU0NfQ1JFRElUX19ETE9DS19WQ19OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMF9XUl9NSVNDX0NSRURJVF9fT1NEX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjBfV1JfTUlTQ19DUkVESVRfX09TRF9ETE9DS19DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMF9XUl9NSVNDX0NSRURJVF9fQVRPTUlDX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCMF9XUl9NSVNDX0NSRURJVF9fRExPQ0tfVkNfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCMF9XUl9NSVNDX0NSRURJVF9fT1NEX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRTAwTAorI2RlZmluZSBEQUdCMF9XUl9NSVNDX0NSRURJVF9fT1NEX0RMT0NLX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0YwMDAwTAorLy9EQUdCMF9XUkNMSV9BU0tfUEVORElORworI2RlZmluZSBEQUdCMF9XUkNMSV9BU0tfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTElfQVNLX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfV1JDTElfR09fUEVORElORworI2RlZmluZSBEQUdCMF9XUkNMSV9HT19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTElfR09fUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfV1JDTElfR0JMU0VORF9QRU5ESU5HCisjZGVmaW5lIERBR0IwX1dSQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMF9XUkNMSV9UTEJfUEVORElORworI2RlZmluZSBEQUdCMF9XUkNMSV9UTEJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTElfVExCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfV1JDTElfT0FSQl9QRU5ESU5HCisjZGVmaW5lIERBR0IwX1dSQ0xJX09BUkJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUkNMSV9PQVJCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMF9XUkNMSV9PU0RfUEVORElORworI2RlZmluZSBEQUdCMF9XUkNMSV9PU0RfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTElfT1NEX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfV1JDTElfREJVU19BU0tfUEVORElORworI2RlZmluZSBEQUdCMF9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfV1JDTElfREJVU19BU0tfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfV1JDTElfREJVU19HT19QRU5ESU5HCisjZGVmaW5lIERBR0IwX1dSQ0xJX0RCVVNfR09fUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMF9EQUdCX0RMWQorI2RlZmluZSBEQUdCMF9EQUdCX0RMWV9fRExZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfREFHQl9ETFlfX0NMSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX0RBR0JfRExZX19QT1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjBfREFHQl9ETFlfX0RMWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjBfREFHQl9ETFlfX0NMSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjBfREFHQl9ETFlfX1BPU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vREFHQjBfQ05UTF9NSVNDCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQ19fRUFfVkMwX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9DTlRMX01JU0NfX0VBX1ZDMV9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzJfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IwX0NOVExfTUlTQ19fRUFfVkMzX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCMF9DTlRMX01JU0NfX0VBX1ZDNF9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzVfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQ19fRUFfVkM2X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzdfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMF9DTlRMX01JU0NfX0JXX0lOSVRfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IwX0NOVExfTUlTQ19fQldfUldfR0FQX0NZQ0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzBfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzFfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzJfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzNfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzRfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzVfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzZfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19FQV9WQzdfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19CV19JTklUX0NZQ0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDX19CV19SV19HQVBfQ1lDTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vREFHQjBfQ05UTF9NSVNDMgorI2RlZmluZSBEQUdCMF9DTlRMX01JU0MyX19VUkdfQk9PU1RfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDMl9fVVJHX0hBTFRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVFfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQUdCMF9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVUX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFUV9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVRfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMF9DTlRMX01JU0MyX19ESVNBQkxFX1RMQldSX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJSRF9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfRUFXUlJFUV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9DTlRMX01JU0MyX19ESVNBQkxFX0VBUkRSRVFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjBfQ05UTF9NSVNDMl9fU1dBUF9DVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fUEVSRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCMF9DTlRMX01JU0MyX19SRFJFVF9GSUZPX0RMT0NLX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX1VSR19CT09TVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX1VSR19IQUxUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVFfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVRfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVFfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVRfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCV1JfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCUkRfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfRUFXUlJFUV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX0RJU0FCTEVfRUFSRFJFUV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX1NXQVBfQ1RMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fUEVSRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IwX0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fRExPQ0tfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RTAwMDBMCisvL0RBR0IwX0ZJRk9fRU1QVFkKKyNkZWZpbmUgREFHQjBfRklGT19FTVBUWV9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX0ZJRk9fRU1QVFlfX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RBR0IwX0ZJRk9fRlVMTAorI2RlZmluZSBEQUdCMF9GSUZPX0ZVTExfX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfRklGT19GVUxMX19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vREFHQjBfV1JfQ1JFRElUU19GVUxMCisjZGVmaW5lIERBR0IwX1dSX0NSRURJVFNfRlVMTF9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9XUl9DUkVESVRTX0ZVTExfX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkZGRkZGTAorLy9EQUdCMF9SRF9DUkVESVRTX0ZVTEwKKyNkZWZpbmUgREFHQjBfUkRfQ1JFRElUU19GVUxMX19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JEX0NSRURJVFNfRlVMTF9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RBR0IwX1BFUkZDT1VOVEVSX0xPCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMF9QRVJGQ09VTlRFUl9ISQorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQUdCMF9QRVJGQ09VTlRFUjBfQ0ZHCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vREFHQjBfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RBR0IwX1BFUkZDT1VOVEVSMl9DRkcKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSMl9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVIyX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjJfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUjJfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EQUdCMF9QRVJGQ09VTlRFUl9SU0xUX0NOVEwKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisvL0RBR0IwX1JFU0VSVkUwCisjZGVmaW5lIERBR0IwX1JFU0VSVkUwX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRVNFUlZFMF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMF9SRVNFUlZFMQorI2RlZmluZSBEQUdCMF9SRVNFUlZFMV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkVTRVJWRTFfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfUkVTRVJWRTIKKyNkZWZpbmUgREFHQjBfUkVTRVJWRTJfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JFU0VSVkUyX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IwX1JFU0VSVkUzCisjZGVmaW5lIERBR0IwX1JFU0VSVkUzX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRVNFUlZFM19fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMF9SRVNFUlZFNAorI2RlZmluZSBEQUdCMF9SRVNFUlZFNF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkVTRVJWRTRfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfUkVTRVJWRTUKKyNkZWZpbmUgREFHQjBfUkVTRVJWRTVfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JFU0VSVkU1X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IwX1JFU0VSVkU2CisjZGVmaW5lIERBR0IwX1JFU0VSVkU2X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRVNFUlZFNl9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMF9SRVNFUlZFNworI2RlZmluZSBEQUdCMF9SRVNFUlZFN19fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkVTRVJWRTdfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfUkVTRVJWRTgKKyNkZWZpbmUgREFHQjBfUkVTRVJWRThfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JFU0VSVkU4X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IwX1JFU0VSVkU5CisjZGVmaW5lIERBR0IwX1JFU0VSVkU5X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRVNFUlZFOV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMF9SRVNFUlZFMTAKKyNkZWZpbmUgREFHQjBfUkVTRVJWRTEwX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JFU0VSVkUxMF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IwX1JFU0VSVkUxMQorI2RlZmluZSBEQUdCMF9SRVNFUlZFMTFfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjBfUkVTRVJWRTExX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjBfUkVTRVJWRTEyCisjZGVmaW5lIERBR0IwX1JFU0VSVkUxMl9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMF9SRVNFUlZFMTJfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMF9SRVNFUlZFMTMKKyNkZWZpbmUgREFHQjBfUkVTRVJWRTEzX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IwX1JFU0VSVkUxM19fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9kYWdiX2RhZ2JkZWMxCisvL0RBR0IxX1JEQ0xJMAorI2RlZmluZSBEQUdCMV9SRENMSTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEkwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEkwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJMQorI2RlZmluZSBEQUdCMV9SRENMSTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEkxX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEkxX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJMgorI2RlZmluZSBEQUdCMV9SRENMSTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEkyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEkyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJMworI2RlZmluZSBEQUdCMV9SRENMSTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEkzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEkzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJNAorI2RlZmluZSBEQUdCMV9SRENMSTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEk0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEk0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJNQorI2RlZmluZSBEQUdCMV9SRENMSTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEk1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEk1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJNgorI2RlZmluZSBEQUdCMV9SRENMSTZfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEk2X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTZfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEk2X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTZfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTZfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJNl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJNworI2RlZmluZSBEQUdCMV9SRENMSTdfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEk3X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTdfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEk3X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTdfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJN19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTdfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJN19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJOAorI2RlZmluZSBEQUdCMV9SRENMSThfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEk4X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSThfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEk4X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSThfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSThfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJOQorI2RlZmluZSBEQUdCMV9SRENMSTlfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEk5X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTlfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEk5X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTlfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTlfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJOV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJMTAKKyNkZWZpbmUgREFHQjFfUkRDTEkxMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JEQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMV9SRENMSTEwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfUkRDTEkxMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1JEQ0xJMTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRENMSTEwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjFfUkRDTEkxMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMV9SRENMSTEwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IxX1JEQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjFfUkRDTEkxMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMV9SRENMSTEwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMV9SRENMSTEwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMV9SRENMSTEwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9SRENMSTEwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMV9SRENMSTExCisjZGVmaW5lIERBR0IxX1JEQ0xJMTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRENMSTExX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1JEQ0xJMTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9SRENMSTExX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1JEQ0xJMTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9SRENMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEQ0xJMTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfUkRDTEkxMgorI2RlZmluZSBEQUdCMV9SRENMSTEyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTEyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEkxMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTEyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTEyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEQ0xJMTMKKyNkZWZpbmUgREFHQjFfUkRDTEkxM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JEQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMV9SRENMSTEzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfUkRDTEkxM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1JEQ0xJMTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRENMSTEzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjFfUkRDTEkxM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMV9SRENMSTEzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IxX1JEQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjFfUkRDTEkxM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMV9SRENMSTEzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMV9SRENMSTEzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMV9SRENMSTEzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9SRENMSTEzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMV9SRENMSTEzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMV9SRENMSTE0CisjZGVmaW5lIERBR0IxX1JEQ0xJMTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRENMSTE0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1JEQ0xJMTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9SRENMSTE0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1JEQ0xJMTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9SRENMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEQ0xJMTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRDTEkxNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfUkRDTEkxNQorI2RlZmluZSBEQUdCMV9SRENMSTE1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRENMSTE1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRDTEkxNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRENMSTE1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfUkRDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRENMSTE1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEQ0xJMTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEX0NOVEwKKyNkZWZpbmUgREFHQjFfUkRfQ05UTF9fU0NMS19GUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JEX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRF9DTlRMX19WQ19NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjFfUkRfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMV9SRF9DTlRMX19JT19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERBR0IxX1JEX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjFfUkRfQ05UTF9fU0hBUkVfVkNfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQUdCMV9SRF9DTlRMX19TQ0xLX0ZSRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMV9SRF9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0YwTAorI2RlZmluZSBEQUdCMV9SRF9DTlRMX19WQ19NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEQUdCMV9SRF9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9DTlRMX19JT19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9DTlRMX19TSEFSRV9WQ19OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAwMDAwTAorLy9EQUdCMV9SRF9HTUlfQ05UTAorI2RlZmluZSBEQUdCMV9SRF9HTUlfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRfR01JX0NOVExfX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IxX1JEX0dNSV9DTlRMX19NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCMV9SRF9HTUlfQ05UTF9fTEFaWV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjFfUkRfR01JX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjFfUkRfR01JX0NOVExfX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjFfUkRfR01JX0NOVExfX01BWF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUUwMEwKKyNkZWZpbmUgREFHQjFfUkRfR01JX0NOVExfX0xBWllfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRTAwMEwKKy8vREFHQjFfUkRfQUREUl9EQUdCCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9fREFHQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9fV0hPQU1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfX1dIT0FNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorLy9EQUdCMV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1QKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IxX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjFfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUgorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjFfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMV9SRF9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0IxX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0IxX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCMV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0IxX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjFfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCMV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCMV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjFfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCMV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0IxX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0IxX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjFfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IxX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjFfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjFfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCMV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjAKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDEKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjFfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IxX1JEX1ZDMF9DTlRMCisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9WQzBfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfUkRfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRF9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9SRF9WQzBfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1JEX1ZDMV9DTlRMCisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9WQzFfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfUkRfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRF9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9SRF9WQzFfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1JEX1ZDMl9DTlRMCisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9WQzJfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfUkRfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRF9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9SRF9WQzJfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDMl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1JEX1ZDM19DTlRMCisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9WQzNfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfUkRfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRF9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9SRF9WQzNfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDM19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1JEX1ZDNF9DTlRMCisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9WQzRfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfUkRfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRF9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9SRF9WQzRfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1JEX1ZDNV9DTlRMCisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9WQzVfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfUkRfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRF9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9SRF9WQzVfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1JEX1ZDNl9DTlRMCisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9WQzZfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfUkRfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRF9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9SRF9WQzZfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDNl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1JEX1ZDN19DTlRMCisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRF9WQzdfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfUkRfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9SRF9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfUkRfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9SRF9WQzdfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX1ZDN19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1JEX0NOVExfTUlTQworI2RlZmluZSBEQUdCMV9SRF9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IxX1JEX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9SRF9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERBR0IxX1JEX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjFfUkRfQ05UTF9NSVNDX19VVENMMl9DSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMV9SRF9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1JEX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0IxX1JEX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGQzBMCisjZGVmaW5lIERBR0IxX1JEX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0UwMDBMCisjZGVmaW5lIERBR0IxX1JEX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERBR0IxX1JEX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX0NOVExfTUlTQ19fVVRDTDJfQ0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERBR0IxX1JEX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1JEX1RMQl9DUkVESVQKKyNkZWZpbmUgREFHQjFfUkRfVExCX0NSRURJVF9fVExCMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JEX1RMQl9DUkVESVRfX1RMQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMV9SRF9UTEJfQ1JFRElUX19UTEIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjFfUkRfVExCX0NSRURJVF9fVExCM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERBR0IxX1JEX1RMQl9DUkVESVRfX1RMQjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjFfUkRfVExCX0NSRURJVF9fVExCNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9SRF9UTEJfQ1JFRElUX19UTEIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMV9SRF9UTEJfQ1JFRElUX19UTEIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEQUdCMV9SRF9UTEJfQ1JFRElUX19UTEIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBEQUdCMV9SRF9UTEJfQ1JFRElUX19UTEIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorI2RlZmluZSBEQUdCMV9SRF9UTEJfQ1JFRElUX19UTEI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorI2RlZmluZSBEQUdCMV9SRF9UTEJfQ1JFRElUX19UTEI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNFMDAwMDAwTAorLy9EQUdCMV9SRENMSV9BU0tfUEVORElORworI2RlZmluZSBEQUdCMV9SRENMSV9BU0tfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTElfQVNLX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjFfUkRDTElfR09fUEVORElORworI2RlZmluZSBEQUdCMV9SRENMSV9HT19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTElfR09fUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjFfUkRDTElfR0JMU0VORF9QRU5ESU5HCisjZGVmaW5lIERBR0IxX1JEQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRENMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9SRENMSV9UTEJfUEVORElORworI2RlZmluZSBEQUdCMV9SRENMSV9UTEJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTElfVExCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjFfUkRDTElfT0FSQl9QRU5ESU5HCisjZGVmaW5lIERBR0IxX1JEQ0xJX09BUkJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRENMSV9PQVJCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9SRENMSV9PU0RfUEVORElORworI2RlZmluZSBEQUdCMV9SRENMSV9PU0RfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRDTElfT1NEX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjFfV1JDTEkwCisjZGVmaW5lIERBR0IxX1dSQ0xJMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEkxCisjZGVmaW5lIERBR0IxX1dSQ0xJMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEkyCisjZGVmaW5lIERBR0IxX1dSQ0xJMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEkzCisjZGVmaW5lIERBR0IxX1dSQ0xJM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEk0CisjZGVmaW5lIERBR0IxX1dSQ0xJNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEk1CisjZGVmaW5lIERBR0IxX1dSQ0xJNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEk2CisjZGVmaW5lIERBR0IxX1dSQ0xJNl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTZfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJNl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTZfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJNl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJNl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk2X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEk3CisjZGVmaW5lIERBR0IxX1dSQ0xJN19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTdfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJN19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTdfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJN19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJN19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk3X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEk4CisjZGVmaW5lIERBR0IxX1dSQ0xJOF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSThfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJOF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSThfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJOF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJOF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk4X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEk5CisjZGVmaW5lIERBR0IxX1dSQ0xJOV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTlfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJOV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTlfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJOV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJOV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEk5X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEkxMAorI2RlZmluZSBEQUdCMV9XUkNMSTEwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9XUkNMSTEwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfV1JDTEkxMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9XUkNMSTEwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfV1JDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9XUkNMSTEwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1dSQ0xJMTEKKyNkZWZpbmUgREFHQjFfV1JDTEkxMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMV9XUkNMSTExX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfV1JDTEkxMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1dSQ0xJMTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUkNMSTExX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjFfV1JDTEkxMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMV9XUkNMSTExX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IxX1dSQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjFfV1JDTEkxMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMV9XUkNMSTExX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMV9XUkNMSTExX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMV9XUkNMSTExX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9XUkNMSTExX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTExX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTExX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTExX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTExX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTExX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMV9XUkNMSTEyCisjZGVmaW5lIERBR0IxX1dSQ0xJMTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTEyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJMTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTEyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJMTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJMTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JDTEkxMworI2RlZmluZSBEQUdCMV9XUkNMSTEzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9XUkNMSTEzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfV1JDTEkxM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9XUkNMSTEzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfV1JDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9XUkNMSTEzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSQ0xJMTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1dSQ0xJMTQKKyNkZWZpbmUgREFHQjFfV1JDTEkxNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMV9XUkNMSTE0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfV1JDTEkxNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1dSQ0xJMTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUkNMSTE0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjFfV1JDTEkxNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IxX1dSQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjFfV1JDTEkxNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUkNMSTE0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMV9XUkNMSTE1CisjZGVmaW5lIERBR0IxX1dSQ0xJMTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSTE1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSQ0xJMTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUkNMSTE1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IxX1dSQ0xJMTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9XUkNMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSQ0xJMTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JDTEkxNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjFfV1JfQ05UTAorI2RlZmluZSBEQUdCMV9XUl9DTlRMX19TQ0xLX0ZSRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCMV9XUl9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IxX1dSX0NOVExfX0lPX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgREFHQjFfV1JfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMV9XUl9DTlRMX19TSEFSRV9WQ19OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERBR0IxX1dSX0NOVExfX1NDTEtfRlJFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRjBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfX0lPX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfX1NIQVJFX1ZDX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MDAwMDBMCisvL0RBR0IxX1dSX0dNSV9DTlRMCisjZGVmaW5lIERBR0IxX1dSX0dNSV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9HTUlfQ05UTF9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjFfV1JfR01JX0NOVExfX01BWF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0IxX1dSX0dNSV9DTlRMX19MQVpZX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9XUl9HTUlfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCMV9XUl9HTUlfQ05UTF9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCMV9XUl9HTUlfQ05UTF9fTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRTAwTAorI2RlZmluZSBEQUdCMV9XUl9HTUlfQ05UTF9fTEFaWV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFFMDAwTAorLy9EQUdCMV9XUl9BRERSX0RBR0IKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX19XSE9BTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9fREFHQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9fV0hPQU1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisvL0RBR0IxX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjFfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjFfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IxX1dSX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjFfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IxX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjFfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IxX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjFfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCMV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0IxX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0IxX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCMV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0IxX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjFfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjFfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCMV9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjFfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCMV9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjFfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCMV9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0IxX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IxX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMQorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjEKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IxX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjFfV1JfREFUQV9EQUdCCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9fREFHQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9fV0hPQU1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfX0RBR0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfX1dIT0FNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorLy9EQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjAKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDEKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IxX1dSX1ZDMF9DTlRMCisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9WQzBfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfV1JfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9WQzBfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1dSX1ZDMV9DTlRMCisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9WQzFfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfV1JfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9WQzFfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1dSX1ZDMl9DTlRMCisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9WQzJfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfV1JfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9WQzJfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDMl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1dSX1ZDM19DTlRMCisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9WQzNfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfV1JfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9WQzNfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDM19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1dSX1ZDNF9DTlRMCisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9WQzRfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfV1JfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9WQzRfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1dSX1ZDNV9DTlRMCisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9WQzVfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfV1JfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9WQzVfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1dSX1ZDNl9DTlRMCisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9WQzZfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfV1JfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9WQzZfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDNl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1dSX1ZDN19DTlRMCisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUl9WQzdfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjFfV1JfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9XUl9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjFfV1JfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9WQzdfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX1ZDN19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0IxX1dSX0NOVExfTUlTQworI2RlZmluZSBEQUdCMV9XUl9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IxX1dSX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMV9XUl9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERBR0IxX1dSX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjFfV1JfQ05UTF9NSVNDX19VVENMMl9DSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMV9XUl9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IxX1dSX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGQzBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0UwMDBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfTUlTQ19fVVRDTDJfQ0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERBR0IxX1dSX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IxX1dSX1RMQl9DUkVESVQKKyNkZWZpbmUgREFHQjFfV1JfVExCX0NSRURJVF9fVExCMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSX1RMQl9DUkVESVRfX1RMQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMV9XUl9UTEJfQ1JFRElUX19UTEIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjFfV1JfVExCX0NSRURJVF9fVExCM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERBR0IxX1dSX1RMQl9DUkVESVRfX1RMQjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjFfV1JfVExCX0NSRURJVF9fVExCNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMV9XUl9UTEJfQ1JFRElUX19UTEIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCMV9XUl9UTEJfQ1JFRElUX19UTEIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEQUdCMV9XUl9UTEJfQ1JFRElUX19UTEIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBEQUdCMV9XUl9UTEJfQ1JFRElUX19UTEIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorI2RlZmluZSBEQUdCMV9XUl9UTEJfQ1JFRElUX19UTEI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9UTEJfQ1JFRElUX19UTEI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNFMDAwMDAwTAorLy9EQUdCMV9XUl9EQVRBX0NSRURJVAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0NSRURJVF9fRExPQ0tfVkNfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9DUkVESVRfX0xBUkdFX0JVUlNUX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1dSX0RBVEFfQ1JFRElUX19NSURETEVfQlVSU1RfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjFfV1JfREFUQV9DUkVESVRfX1NNQUxMX0JVUlNUX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0NSRURJVF9fRExPQ0tfVkNfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0NSRURJVF9fTEFSR0VfQlVSU1RfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0NSRURJVF9fTUlERExFX0JVUlNUX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEQUdCMV9XUl9EQVRBX0NSRURJVF9fU01BTExfQlVSU1RfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EQUdCMV9XUl9NSVNDX0NSRURJVAorI2RlZmluZSBEQUdCMV9XUl9NSVNDX0NSRURJVF9fQVRPTUlDX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfV1JfTUlTQ19DUkVESVRfX0RMT0NLX1ZDX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IxX1dSX01JU0NfQ1JFRElUX19PU0RfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCMV9XUl9NSVNDX0NSRURJVF9fT1NEX0RMT0NLX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IxX1dSX01JU0NfQ1JFRElUX19BVE9NSUNfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0IxX1dSX01JU0NfQ1JFRElUX19ETE9DS19WQ19OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0IxX1dSX01JU0NfQ1JFRElUX19PU0RfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZFMDBMCisjZGVmaW5lIERBR0IxX1dSX01JU0NfQ1JFRElUX19PU0RfRExPQ0tfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisvL0RBR0IxX1dSQ0xJX0FTS19QRU5ESU5HCisjZGVmaW5lIERBR0IxX1dSQ0xJX0FTS19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSV9BU0tfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9XUkNMSV9HT19QRU5ESU5HCisjZGVmaW5lIERBR0IxX1dSQ0xJX0dPX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSV9HT19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9XUkNMSV9HQkxTRU5EX1BFTkRJTkcKKyNkZWZpbmUgREFHQjFfV1JDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IxX1dSQ0xJX1RMQl9QRU5ESU5HCisjZGVmaW5lIERBR0IxX1dSQ0xJX1RMQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSV9UTEJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9XUkNMSV9PQVJCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjFfV1JDTElfT0FSQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSQ0xJX09BUkJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IxX1dSQ0xJX09TRF9QRU5ESU5HCisjZGVmaW5lIERBR0IxX1dSQ0xJX09TRF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSV9PU0RfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9XUkNMSV9EQlVTX0FTS19QRU5ESU5HCisjZGVmaW5lIERBR0IxX1dSQ0xJX0RCVVNfQVNLX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9XUkNMSV9EQlVTX0dPX1BFTkRJTkcKKyNkZWZpbmUgREFHQjFfV1JDTElfREJVU19HT19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSQ0xJX0RCVVNfR09fUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IxX0RBR0JfRExZCisjZGVmaW5lIERBR0IxX0RBR0JfRExZX19ETFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9EQUdCX0RMWV9fQ0xJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfREFHQl9ETFlfX1BPU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMV9EQUdCX0RMWV9fRExZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCMV9EQUdCX0RMWV9fQ0xJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCMV9EQUdCX0RMWV9fUE9TX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9EQUdCMV9DTlRMX01JU0MKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDX19FQV9WQzBfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX0NOVExfTUlTQ19fRUFfVkMxX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDMl9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDX19FQV9WQzNfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0IxX0NOVExfTUlTQ19fRUFfVkM0X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDNV9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDX19FQV9WQzZfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDN19SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IxX0NOVExfTUlTQ19fQldfSU5JVF9DWUNMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDX19CV19SV19HQVBfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDMF9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDMV9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDMl9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDM19SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDNF9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDNV9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDNl9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0VBX1ZDN19SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0JXX0lOSVRfQ1lDTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0NfX0JXX1JXX0dBUF9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9EQUdCMV9DTlRMX01JU0MyCisjZGVmaW5lIERBR0IxX0NOVExfTUlTQzJfX1VSR19CT09TVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9DTlRMX01JU0MyX19VUkdfSEFMVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFUV9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERBR0IxX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVRfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMV9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVRX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFVF9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IxX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCV1JfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMV9DTlRMX01JU0MyX19ESVNBQkxFX1RMQlJEX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVdSUkVRX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX0NOVExfTUlTQzJfX0RJU0FCTEVfRUFSRFJFUV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCMV9DTlRMX01JU0MyX19TV0FQX0NUTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19QRVJGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0IxX0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fRExPQ0tfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fVVJHX0JPT1NUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fVVJHX0hBTFRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFUV9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFVF9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFUV9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFVF9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJXUl9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJSRF9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVdSUkVRX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVJEUkVRX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fU1dBUF9DVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19QRVJGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjFfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19ETE9DS19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdFMDAwMEwKKy8vREFHQjFfRklGT19FTVBUWQorI2RlZmluZSBEQUdCMV9GSUZPX0VNUFRZX19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfRklGT19FTVBUWV9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vREFHQjFfRklGT19GVUxMCisjZGVmaW5lIERBR0IxX0ZJRk9fRlVMTF9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9GSUZPX0ZVTExfX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9EQUdCMV9XUl9DUkVESVRTX0ZVTEwKKyNkZWZpbmUgREFHQjFfV1JfQ1JFRElUU19GVUxMX19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1dSX0NSRURJVFNfRlVMTF9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkZGRkZMCisvL0RBR0IxX1JEX0NSRURJVFNfRlVMTAorI2RlZmluZSBEQUdCMV9SRF9DUkVESVRTX0ZVTExfX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkRfQ1JFRElUU19GVUxMX19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vREFHQjFfUEVSRkNPVU5URVJfTE8KKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IxX1BFUkZDT1VOVEVSX0hJCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RBR0IxX1BFUkZDT1VOVEVSMF9DRkcKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EQUdCMV9QRVJGQ09VTlRFUjFfQ0ZHCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vREFHQjFfUEVSRkNPVU5URVIyX0NGRworI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVIyX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUjJfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMl9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSMl9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RBR0IxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKy8vREFHQjFfUkVTRVJWRTAKKyNkZWZpbmUgREFHQjFfUkVTRVJWRTBfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JFU0VSVkUwX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IxX1JFU0VSVkUxCisjZGVmaW5lIERBR0IxX1JFU0VSVkUxX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRVNFUlZFMV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9SRVNFUlZFMgorI2RlZmluZSBEQUdCMV9SRVNFUlZFMl9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkVTRVJWRTJfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjFfUkVTRVJWRTMKKyNkZWZpbmUgREFHQjFfUkVTRVJWRTNfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JFU0VSVkUzX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IxX1JFU0VSVkU0CisjZGVmaW5lIERBR0IxX1JFU0VSVkU0X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRVNFUlZFNF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9SRVNFUlZFNQorI2RlZmluZSBEQUdCMV9SRVNFUlZFNV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkVTRVJWRTVfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjFfUkVTRVJWRTYKKyNkZWZpbmUgREFHQjFfUkVTRVJWRTZfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JFU0VSVkU2X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IxX1JFU0VSVkU3CisjZGVmaW5lIERBR0IxX1JFU0VSVkU3X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRVNFUlZFN19fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9SRVNFUlZFOAorI2RlZmluZSBEQUdCMV9SRVNFUlZFOF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkVTRVJWRThfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjFfUkVTRVJWRTkKKyNkZWZpbmUgREFHQjFfUkVTRVJWRTlfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JFU0VSVkU5X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IxX1JFU0VSVkUxMAorI2RlZmluZSBEQUdCMV9SRVNFUlZFMTBfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkVTRVJWRTEwX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjFfUkVTRVJWRTExCisjZGVmaW5lIERBR0IxX1JFU0VSVkUxMV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMV9SRVNFUlZFMTFfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMV9SRVNFUlZFMTIKKyNkZWZpbmUgREFHQjFfUkVTRVJWRTEyX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IxX1JFU0VSVkUxMl9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IxX1JFU0VSVkUxMworI2RlZmluZSBEQUdCMV9SRVNFUlZFMTNfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjFfUkVTRVJWRTEzX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzIKKy8vREFHQjJfUkRDTEkwCisjZGVmaW5lIERBR0IyX1JEQ0xJMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEkxCisjZGVmaW5lIERBR0IyX1JEQ0xJMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEkyCisjZGVmaW5lIERBR0IyX1JEQ0xJMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEkzCisjZGVmaW5lIERBR0IyX1JEQ0xJM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEk0CisjZGVmaW5lIERBR0IyX1JEQ0xJNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEk1CisjZGVmaW5lIERBR0IyX1JEQ0xJNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEk2CisjZGVmaW5lIERBR0IyX1JEQ0xJNl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTZfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJNl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTZfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJNl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJNl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk2X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEk3CisjZGVmaW5lIERBR0IyX1JEQ0xJN19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTdfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJN19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTdfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJN19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJN19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk3X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEk4CisjZGVmaW5lIERBR0IyX1JEQ0xJOF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSThfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJOF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSThfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJOF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJOF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk4X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEk5CisjZGVmaW5lIERBR0IyX1JEQ0xJOV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTlfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJOV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTlfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJOV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJOV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEk5X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEkxMAorI2RlZmluZSBEQUdCMl9SRENMSTEwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkRDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9SRENMSTEwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfUkRDTEkxMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMl9SRENMSTEwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjJfUkRDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMl9SRENMSTEwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IyX1JEQ0xJMTEKKyNkZWZpbmUgREFHQjJfUkRDTEkxMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9SRENMSTExX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfUkRDTEkxMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1JEQ0xJMTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9SRENMSTExX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfUkRDTEkxMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRENMSTExX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1JEQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRDTEkxMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9SRENMSTExX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9SRENMSTExX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9SRENMSTExX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9SRENMSTExX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9SRENMSTExX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTExX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTExX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTExX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTExX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9SRENMSTEyCisjZGVmaW5lIERBR0IyX1JEQ0xJMTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTEyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJMTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTEyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJMTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJMTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRDTEkxMworI2RlZmluZSBEQUdCMl9SRENMSTEzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkRDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9SRENMSTEzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfUkRDTEkxM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMl9SRENMSTEzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjJfUkRDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMl9SRENMSTEzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEQ0xJMTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IyX1JEQ0xJMTQKKyNkZWZpbmUgREFHQjJfUkRDTEkxNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9SRENMSTE0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfUkRDTEkxNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1JEQ0xJMTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9SRENMSTE0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfUkRDTEkxNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRENMSTE0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1JEQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRDTEkxNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9SRENMSTE0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9SRENMSTE0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9SRENMSTE0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9SRENMSTE0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9SRENMSTE0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTE0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTE0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTE0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRENMSTE0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9SRENMSTE1CisjZGVmaW5lIERBR0IyX1JEQ0xJMTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSTE1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEQ0xJMTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRENMSTE1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEQ0xJMTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9SRENMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEQ0xJMTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRDTEkxNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRfQ05UTAorI2RlZmluZSBEQUdCMl9SRF9DTlRMX19TQ0xLX0ZSRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCMl9SRF9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IyX1JEX0NOVExfX0lPX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMl9SRF9DTlRMX19TSEFSRV9WQ19OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERBR0IyX1JEX0NOVExfX1NDTEtfRlJFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IyX1JEX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRjBMCisjZGVmaW5lIERBR0IyX1JEX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERBR0IyX1JEX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERBR0IyX1JEX0NOVExfX0lPX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDBMCisjZGVmaW5lIERBR0IyX1JEX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERBR0IyX1JEX0NOVExfX1NIQVJFX1ZDX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MDAwMDBMCisvL0RBR0IyX1JEX0dNSV9DTlRMCisjZGVmaW5lIERBR0IyX1JEX0dNSV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRF9HTUlfQ05UTF9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjJfUkRfR01JX0NOVExfX01BWF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0IyX1JEX0dNSV9DTlRMX19MQVpZX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMl9SRF9HTUlfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCMl9SRF9HTUlfQ05UTF9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCMl9SRF9HTUlfQ05UTF9fTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRTAwTAorI2RlZmluZSBEQUdCMl9SRF9HTUlfQ05UTF9fTEFaWV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFFMDAwTAorLy9EQUdCMl9SRF9BRERSX0RBR0IKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX19XSE9BTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9fREFHQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9fV0hPQU1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisvL0RBR0IyX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjJfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IyX1JEX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjJfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IyX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCMl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0IyX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0IyX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCMl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0IyX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjJfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjJfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCMl9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjJfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCMl9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjJfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCMl9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IyX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMQorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjEKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjJfUkRfVkMwX0NOVEwKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX1ZDMF9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9SRF9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRF9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1JEX1ZDMF9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMwX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfUkRfVkMxX0NOVEwKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX1ZDMV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9SRF9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRF9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1JEX1ZDMV9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMxX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfUkRfVkMyX0NOVEwKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX1ZDMl9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9SRF9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRF9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1JEX1ZDMl9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMyX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfUkRfVkMzX0NOVEwKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX1ZDM19DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9SRF9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRF9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1JEX1ZDM19DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkMzX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfUkRfVkM0X0NOVEwKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX1ZDNF9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9SRF9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRF9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1JEX1ZDNF9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM0X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfUkRfVkM1X0NOVEwKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX1ZDNV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9SRF9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRF9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1JEX1ZDNV9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM1X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfUkRfVkM2X0NOVEwKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX1ZDNl9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9SRF9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRF9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1JEX1ZDNl9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM2X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfUkRfVkM3X0NOVEwKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEX1ZDN19DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9SRF9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1JEX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9SRF9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1JEX1ZDN19DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfVkM3X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfUkRfQ05UTF9NSVNDCisjZGVmaW5lIERBR0IyX1JEX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRF9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9NSVNDX19JT19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1JEX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9NSVNDX19FQV9DQ19MRUdBQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMl9SRF9DTlRMX01JU0NfX1VUQ0wyX0NJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IyX1JEX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZDMEwKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9NSVNDX19JT19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RTAwMEwKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9NSVNDX19FQV9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9NSVNDX19VVENMMl9DSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgREFHQjJfUkRfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfUkRfVExCX0NSRURJVAorI2RlZmluZSBEQUdCMl9SRF9UTEJfQ1JFRElUX19UTEIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkRfVExCX0NSRURJVF9fVExCMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IyX1JEX1RMQl9DUkVESVRfX1RMQjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCMl9SRF9UTEJfQ1JFRElUX19UTEIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgREFHQjJfUkRfVExCX0NSRURJVF9fVExCNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMl9SRF9UTEJfQ1JFRElUX19UTEI1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1JEX1RMQl9DUkVESVRfX1RMQjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IyX1JEX1RMQl9DUkVESVRfX1RMQjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERBR0IyX1JEX1RMQl9DUkVESVRfX1RMQjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIERBR0IyX1JEX1RMQl9DUkVESVRfX1RMQjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjgwMDBMCisjZGVmaW5lIERBR0IyX1JEX1RMQl9DUkVESVRfX1RMQjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGMDAwMDBMCisjZGVmaW5lIERBR0IyX1JEX1RMQl9DUkVESVRfX1RMQjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0UwMDAwMDBMCisvL0RBR0IyX1JEQ0xJX0FTS19QRU5ESU5HCisjZGVmaW5lIERBR0IyX1JEQ0xJX0FTS19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSV9BU0tfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMl9SRENMSV9HT19QRU5ESU5HCisjZGVmaW5lIERBR0IyX1JEQ0xJX0dPX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSV9HT19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMl9SRENMSV9HQkxTRU5EX1BFTkRJTkcKKyNkZWZpbmUgREFHQjJfUkRDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1JEQ0xJX1RMQl9QRU5ESU5HCisjZGVmaW5lIERBR0IyX1JEQ0xJX1RMQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSV9UTEJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMl9SRENMSV9PQVJCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjJfUkRDTElfT0FSQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JEQ0xJX09BUkJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1JEQ0xJX09TRF9QRU5ESU5HCisjZGVmaW5lIERBR0IyX1JEQ0xJX09TRF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRENMSV9PU0RfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMl9XUkNMSTAKKyNkZWZpbmUgREFHQjJfV1JDTEkwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEkwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEkwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEkwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTEKKyNkZWZpbmUgREFHQjJfV1JDTEkxX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEkxX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEkxX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEkxX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTIKKyNkZWZpbmUgREFHQjJfV1JDTEkyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEkyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEkyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEkyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTMKKyNkZWZpbmUgREFHQjJfV1JDTEkzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEkzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEkzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEkzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTQKKyNkZWZpbmUgREFHQjJfV1JDTEk0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEk0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEk0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEk0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTUKKyNkZWZpbmUgREFHQjJfV1JDTEk1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEk1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEk1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEk1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTYKKyNkZWZpbmUgREFHQjJfV1JDTEk2X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTZfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEk2X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJNl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTZfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEk2X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTZfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEk2X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTZfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTZfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTZfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTZfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTZfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTZfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTZfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTZfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTZfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTcKKyNkZWZpbmUgREFHQjJfV1JDTEk3X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTdfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEk3X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJN19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTdfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEk3X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTdfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEk3X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTdfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTdfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTdfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTdfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTdfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTdfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTdfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTdfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTdfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTgKKyNkZWZpbmUgREFHQjJfV1JDTEk4X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSThfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEk4X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJOF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSThfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEk4X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSThfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEk4X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSThfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSThfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSThfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSThfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSThfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSThfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSThfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSThfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSThfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTkKKyNkZWZpbmUgREFHQjJfV1JDTEk5X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTlfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEk5X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJOV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTlfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEk5X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTlfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEk5X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTlfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTlfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTlfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTlfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTlfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTlfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTlfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTlfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTlfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTEwCisjZGVmaW5lIERBR0IyX1dSQ0xJMTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUkNMSTEwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1dSQ0xJMTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9XUkNMSTEwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1dSQ0xJMTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9XUkNMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1dSQ0xJMTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfV1JDTEkxMQorI2RlZmluZSBEQUdCMl9XUkNMSTExX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9XUkNMSTExX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfV1JDTEkxMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMl9XUkNMSTExX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjJfV1JDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMl9XUkNMSTExX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IyX1dSQ0xJMTIKKyNkZWZpbmUgREFHQjJfV1JDTEkxMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTEyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEkxMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJMTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTEyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEkxMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEkxMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTEyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUkNMSTEzCisjZGVmaW5lIERBR0IyX1dSQ0xJMTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUkNMSTEzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1dSQ0xJMTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9XUkNMSTEzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1dSQ0xJMTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9XUkNMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1dSQ0xJMTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JDTEkxM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfV1JDTEkxNAorI2RlZmluZSBEQUdCMl9XUkNMSTE0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9XUkNMSTE0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfV1JDTEkxNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCMl9XUkNMSTE0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjJfV1JDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCMl9XUkNMSTE0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSQ0xJMTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IyX1dSQ0xJMTUKKyNkZWZpbmUgREFHQjJfV1JDTEkxNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUkNMSTE1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JDTEkxNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSQ0xJMTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUkNMSTE1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjJfV1JDTEkxNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX1dSQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JDTEkxNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUkNMSTE1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCMl9XUl9DTlRMCisjZGVmaW5lIERBR0IyX1dSX0NOVExfX1NDTEtfRlJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUl9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0IyX1dSX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9fSU9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQUdCMl9XUl9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IyX1dSX0NOVExfX1NIQVJFX1ZDX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9fU0NMS19GUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9fSU9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBFMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9fU0hBUkVfVkNfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwMDAwMEwKKy8vREFHQjJfV1JfR01JX0NOVEwKKyNkZWZpbmUgREFHQjJfV1JfR01JX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX0dNSV9DTlRMX19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMl9XUl9HTUlfQ05UTF9fTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjJfV1JfR01JX0NOVExfX0xBWllfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1dSX0dNSV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0IyX1dSX0dNSV9DTlRMX19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0IyX1dSX0dNSV9DTlRMX19NQVhfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFFMDBMCisjZGVmaW5lIERBR0IyX1dSX0dNSV9DTlRMX19MQVpZX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUUwMDBMCisvL0RBR0IyX1dSX0FERFJfREFHQgorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfX1dIT0FNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX19XSE9BTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKy8vREFHQjJfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMl9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IyX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVIKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjJfV1JfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCMl9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCMl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCMl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0IyX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjJfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IyX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjJfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IyX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjJfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCMl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCMl9BVENWTV9XUl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCMl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCMl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0IyX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjJfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDAKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjJfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMQorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IyX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjJfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMl9XUl9EQVRBX0RBR0IKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX19EQUdCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX19XSE9BTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9fREFHQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9fV0hPQU1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisvL0RBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IyX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMQorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjEKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjJfV1JfVkMwX0NOVEwKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX1ZDMF9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9XUl9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUl9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX1ZDMF9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMwX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfV1JfVkMxX0NOVEwKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX1ZDMV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9XUl9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUl9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX1ZDMV9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMxX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfV1JfVkMyX0NOVEwKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX1ZDMl9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9XUl9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUl9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX1ZDMl9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMyX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfV1JfVkMzX0NOVEwKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX1ZDM19DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9XUl9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUl9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX1ZDM19DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkMzX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfV1JfVkM0X0NOVEwKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX1ZDNF9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9XUl9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUl9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX1ZDNF9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM0X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfV1JfVkM1X0NOVEwKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX1ZDNV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9XUl9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUl9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX1ZDNV9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM1X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfV1JfVkM2X0NOVEwKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX1ZDNl9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9XUl9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUl9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX1ZDNl9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM2X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfV1JfVkM3X0NOVEwKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSX1ZDN19DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCMl9XUl9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX1dSX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCMl9XUl9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX1ZDN19DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfVkM3X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjJfV1JfQ05UTF9NSVNDCisjZGVmaW5lIERBR0IyX1dSX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUl9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9NSVNDX19JT19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IyX1dSX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9NSVNDX19FQV9DQ19MRUdBQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMl9XUl9DTlRMX01JU0NfX1VUQ0wyX0NJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IyX1dSX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZDMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9NSVNDX19JT19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RTAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9NSVNDX19FQV9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9NSVNDX19VVENMMl9DSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgREFHQjJfV1JfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjJfV1JfVExCX0NSRURJVAorI2RlZmluZSBEQUdCMl9XUl9UTEJfQ1JFRElUX19UTEIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JfVExCX0NSRURJVF9fVExCMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IyX1dSX1RMQl9DUkVESVRfX1RMQjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCMl9XUl9UTEJfQ1JFRElUX19UTEIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgREFHQjJfV1JfVExCX0NSRURJVF9fVExCNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCMl9XUl9UTEJfQ1JFRElUX19UTEI1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IyX1dSX1RMQl9DUkVESVRfX1RMQjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0IyX1dSX1RMQl9DUkVESVRfX1RMQjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERBR0IyX1dSX1RMQl9DUkVESVRfX1RMQjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIERBR0IyX1dSX1RMQl9DUkVESVRfX1RMQjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjgwMDBMCisjZGVmaW5lIERBR0IyX1dSX1RMQl9DUkVESVRfX1RMQjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGMDAwMDBMCisjZGVmaW5lIERBR0IyX1dSX1RMQl9DUkVESVRfX1RMQjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0UwMDAwMDBMCisvL0RBR0IyX1dSX0RBVEFfQ1JFRElUCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfQ1JFRElUX19ETE9DS19WQ19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0NSRURJVF9fTEFSR0VfQlVSU1RfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfV1JfREFUQV9DUkVESVRfX01JRERMRV9CVVJTVF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMl9XUl9EQVRBX0NSRURJVF9fU01BTExfQlVSU1RfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1dSX0RBVEFfQ1JFRElUX19ETE9DS19WQ19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfQ1JFRElUX19MQVJHRV9CVVJTVF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfQ1JFRElUX19NSURETEVfQlVSU1RfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERBR0IyX1dSX0RBVEFfQ1JFRElUX19TTUFMTF9CVVJTVF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RBR0IyX1dSX01JU0NfQ1JFRElUCisjZGVmaW5lIERBR0IyX1dSX01JU0NfQ1JFRElUX19BVE9NSUNfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9XUl9NSVNDX0NSRURJVF9fRExPQ0tfVkNfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjJfV1JfTUlTQ19DUkVESVRfX09TRF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0IyX1dSX01JU0NfQ1JFRElUX19PU0RfRExPQ0tfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjJfV1JfTUlTQ19DUkVESVRfX0FUT01JQ19DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjJfV1JfTUlTQ19DUkVESVRfX0RMT0NLX1ZDX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjJfV1JfTUlTQ19DUkVESVRfX09TRF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkUwMEwKKyNkZWZpbmUgREFHQjJfV1JfTUlTQ19DUkVESVRfX09TRF9ETE9DS19DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGMDAwMEwKKy8vREFHQjJfV1JDTElfQVNLX1BFTkRJTkcKKyNkZWZpbmUgREFHQjJfV1JDTElfQVNLX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJX0FTS19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1dSQ0xJX0dPX1BFTkRJTkcKKyNkZWZpbmUgREFHQjJfV1JDTElfR09fUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJX0dPX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1dSQ0xJX0dCTFNFTkRfUEVORElORworI2RlZmluZSBEQUdCMl9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjJfV1JDTElfVExCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjJfV1JDTElfVExCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJX1RMQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1dSQ0xJX09BUkJfUEVORElORworI2RlZmluZSBEQUdCMl9XUkNMSV9PQVJCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JDTElfT0FSQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjJfV1JDTElfT1NEX1BFTkRJTkcKKyNkZWZpbmUgREFHQjJfV1JDTElfT1NEX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJX09TRF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1dSQ0xJX0RCVVNfQVNLX1BFTkRJTkcKKyNkZWZpbmUgREFHQjJfV1JDTElfREJVU19BU0tfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1dSQ0xJX0RCVVNfQVNLX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1dSQ0xJX0RCVVNfR09fUEVORElORworI2RlZmluZSBEQUdCMl9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JDTElfREJVU19HT19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjJfREFHQl9ETFkKKyNkZWZpbmUgREFHQjJfREFHQl9ETFlfX0RMWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX0RBR0JfRExZX19DTElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9EQUdCX0RMWV9fUE9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IyX0RBR0JfRExZX19ETFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0IyX0RBR0JfRExZX19DTElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0IyX0RBR0JfRExZX19QT1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL0RBR0IyX0NOVExfTUlTQworI2RlZmluZSBEQUdCMl9DTlRMX01JU0NfX0VBX1ZDMF9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfQ05UTF9NSVNDX19FQV9WQzFfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkMyX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCMl9DTlRMX01JU0NfX0VBX1ZDM19SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjJfQ05UTF9NSVNDX19FQV9WQzRfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkM1X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQUdCMl9DTlRMX01JU0NfX0VBX1ZDNl9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkM3X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjJfQ05UTF9NSVNDX19CV19JTklUX0NZQ0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0NfX0JXX1JXX0dBUF9DWUNMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkMwX1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkMxX1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkMyX1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkMzX1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkM0X1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkM1X1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkM2X1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fRUFfVkM3X1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fQldfSU5JVF9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQ19fQldfUldfR0FQX0NZQ0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL0RBR0IyX0NOVExfTUlTQzIKKyNkZWZpbmUgREFHQjJfQ05UTF9NSVNDMl9fVVJHX0JPT1NUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQzJfX1VSR19IQUxUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVRX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgREFHQjJfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFVF9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IyX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVFfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVUX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjJfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJXUl9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IyX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCUkRfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX0VBV1JSRVFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVJEUkVRX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0IyX0NOVExfTUlTQzJfX1NXQVBfQ1RMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19SRFJFVF9GSUZPX1BFUkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjJfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19ETE9DS19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19VUkdfQk9PU1RfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19VUkdfSEFMVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVRX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVUX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVRX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVUX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX1RMQldSX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX1RMQlJEX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX0VBV1JSRVFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19ESVNBQkxFX0VBUkRSRVFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19TV0FQX0NUTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19SRFJFVF9GSUZPX1BFUkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCMl9DTlRMX01JU0MyX19SRFJFVF9GSUZPX0RMT0NLX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0UwMDAwTAorLy9EQUdCMl9GSUZPX0VNUFRZCisjZGVmaW5lIERBR0IyX0ZJRk9fRU1QVFlfX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9GSUZPX0VNUFRZX19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EQUdCMl9GSUZPX0ZVTEwKKyNkZWZpbmUgREFHQjJfRklGT19GVUxMX19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX0ZJRk9fRlVMTF9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0RBR0IyX1dSX0NSRURJVFNfRlVMTAorI2RlZmluZSBEQUdCMl9XUl9DUkVESVRTX0ZVTExfX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfV1JfQ1JFRElUU19GVUxMX19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKy8vREFHQjJfUkRfQ1JFRElUU19GVUxMCisjZGVmaW5lIERBR0IyX1JEX0NSRURJVFNfRlVMTF9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRF9DUkVESVRTX0ZVTExfX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EQUdCMl9QRVJGQ09VTlRFUl9MTworI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjJfUEVSRkNPVU5URVJfSEkKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vREFHQjJfUEVSRkNPVU5URVIwX0NGRworI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RBR0IyX1BFUkZDT1VOVEVSMV9DRkcKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EQUdCMl9QRVJGQ09VTlRFUjJfQ0ZHCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUjJfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSMl9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIyX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVIyX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vREFHQjJfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorLy9EQUdCMl9SRVNFUlZFMAorI2RlZmluZSBEQUdCMl9SRVNFUlZFMF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkVTRVJWRTBfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjJfUkVTRVJWRTEKKyNkZWZpbmUgREFHQjJfUkVTRVJWRTFfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JFU0VSVkUxX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1JFU0VSVkUyCisjZGVmaW5lIERBR0IyX1JFU0VSVkUyX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRVNFUlZFMl9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMl9SRVNFUlZFMworI2RlZmluZSBEQUdCMl9SRVNFUlZFM19fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkVTRVJWRTNfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjJfUkVTRVJWRTQKKyNkZWZpbmUgREFHQjJfUkVTRVJWRTRfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JFU0VSVkU0X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1JFU0VSVkU1CisjZGVmaW5lIERBR0IyX1JFU0VSVkU1X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRVNFUlZFNV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMl9SRVNFUlZFNgorI2RlZmluZSBEQUdCMl9SRVNFUlZFNl9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkVTRVJWRTZfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjJfUkVTRVJWRTcKKyNkZWZpbmUgREFHQjJfUkVTRVJWRTdfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JFU0VSVkU3X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1JFU0VSVkU4CisjZGVmaW5lIERBR0IyX1JFU0VSVkU4X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRVNFUlZFOF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMl9SRVNFUlZFOQorI2RlZmluZSBEQUdCMl9SRVNFUlZFOV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkVTRVJWRTlfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjJfUkVTRVJWRTEwCisjZGVmaW5lIERBR0IyX1JFU0VSVkUxMF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRVNFUlZFMTBfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCMl9SRVNFUlZFMTEKKyNkZWZpbmUgREFHQjJfUkVTRVJWRTExX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IyX1JFU0VSVkUxMV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IyX1JFU0VSVkUxMgorI2RlZmluZSBEQUdCMl9SRVNFUlZFMTJfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjJfUkVTRVJWRTEyX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjJfUkVTRVJWRTEzCisjZGVmaW5lIERBR0IyX1JFU0VSVkUxM19fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCMl9SRVNFUlZFMTNfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZGFnYl9kYWdiZGVjMworLy9EQUdCM19SRENMSTAKKyNkZWZpbmUgREFHQjNfUkRDTEkwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEkwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEkwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEkwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTEKKyNkZWZpbmUgREFHQjNfUkRDTEkxX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEkxX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEkxX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEkxX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTIKKyNkZWZpbmUgREFHQjNfUkRDTEkyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEkyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEkyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEkyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTMKKyNkZWZpbmUgREFHQjNfUkRDTEkzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEkzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEkzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEkzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTQKKyNkZWZpbmUgREFHQjNfUkRDTEk0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEk0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEk0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEk0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTUKKyNkZWZpbmUgREFHQjNfUkRDTEk1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEk1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEk1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEk1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTYKKyNkZWZpbmUgREFHQjNfUkRDTEk2X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTZfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEk2X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJNl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTZfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEk2X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTZfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEk2X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTZfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTZfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTZfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTZfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTZfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTZfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTZfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTZfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTZfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTcKKyNkZWZpbmUgREFHQjNfUkRDTEk3X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTdfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEk3X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJN19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTdfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEk3X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTdfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEk3X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTdfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTdfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTdfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTdfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTdfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTdfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTdfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTdfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTdfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTgKKyNkZWZpbmUgREFHQjNfUkRDTEk4X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSThfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEk4X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJOF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSThfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEk4X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSThfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEk4X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSThfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSThfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSThfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSThfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSThfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSThfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSThfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSThfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSThfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTkKKyNkZWZpbmUgREFHQjNfUkRDTEk5X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTlfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEk5X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJOV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTlfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEk5X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTlfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEk5X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTlfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTlfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTlfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTlfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTlfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTlfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTlfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTlfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTlfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTEwCisjZGVmaW5lIERBR0IzX1JEQ0xJMTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRENMSTEwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX1JEQ0xJMTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19SRENMSTEwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IzX1JEQ0xJMTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCM19SRENMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IzX1JEQ0xJMTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjNfUkRDTEkxMQorI2RlZmluZSBEQUdCM19SRENMSTExX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19SRENMSTExX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfUkRDTEkxMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19SRENMSTExX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfUkRDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRENMSTExX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1JEQ0xJMTIKKyNkZWZpbmUgREFHQjNfUkRDTEkxMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTEyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEkxMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJMTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTEyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEkxMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTEyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEkxMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTEyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTEyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTEyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTEyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTEyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTEyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTEyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTEyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTEyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRENMSTEzCisjZGVmaW5lIERBR0IzX1JEQ0xJMTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRENMSTEzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX1JEQ0xJMTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19SRENMSTEzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IzX1JEQ0xJMTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCM19SRENMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IzX1JEQ0xJMTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRDTEkxM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjNfUkRDTEkxNAorI2RlZmluZSBEQUdCM19SRENMSTE0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19SRENMSTE0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfUkRDTEkxNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19SRENMSTE0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfUkRDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRENMSTE0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEQ0xJMTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1JEQ0xJMTUKKyNkZWZpbmUgREFHQjNfUkRDTEkxNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19SRENMSTE1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRDTEkxNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEQ0xJMTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRENMSTE1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRDTEkxNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19SRENMSTE1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1JEQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRDTEkxNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRENMSTE1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19SRENMSTE1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19SRENMSTE1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRENMSTE1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRENMSTE1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTE1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTE1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTE1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRENMSTE1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRF9DTlRMCisjZGVmaW5lIERBR0IzX1JEX0NOVExfX1NDTEtfRlJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRF9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0IzX1JEX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9fSU9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQUdCM19SRF9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IzX1JEX0NOVExfX1NIQVJFX1ZDX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9fU0NMS19GUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGMEwKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9fSU9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBFMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9fU0hBUkVfVkNfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwMDAwMEwKKy8vREFHQjNfUkRfR01JX0NOVEwKKyNkZWZpbmUgREFHQjNfUkRfR01JX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEX0dNSV9DTlRMX19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCM19SRF9HTUlfQ05UTF9fTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjNfUkRfR01JX0NOVExfX0xBWllfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IzX1JEX0dNSV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0IzX1JEX0dNSV9DTlRMX19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0IzX1JEX0dNSV9DTlRMX19NQVhfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFFMDBMCisjZGVmaW5lIERBR0IzX1JEX0dNSV9DTlRMX19MQVpZX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUUwMDBMCisvL0RBR0IzX1JEX0FERFJfREFHQgorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfX1dIT0FNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX19XSE9BTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKy8vREFHQjNfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCM19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IzX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVIKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IzX1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjNfUkRfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCM19SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCM19SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjNfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCM19SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0IzX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjNfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjNfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IzX0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjNfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCM19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCM19BVENWTV9SRF9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0IzX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCM19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0IzX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCM19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0IzX0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjNfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDAKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjNfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMQorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IzX1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCM19SRF9WQzBfQ05UTAorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfVkMwX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1JEX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUkRfVkMwX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzBfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19SRF9WQzFfQ05UTAorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfVkMxX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1JEX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUkRfVkMxX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzFfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19SRF9WQzJfQ05UTAorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfVkMyX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1JEX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUkRfVkMyX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzJfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19SRF9WQzNfQ05UTAorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfVkMzX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1JEX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUkRfVkMzX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzNfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19SRF9WQzRfQ05UTAorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfVkM0X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1JEX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUkRfVkM0X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzRfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19SRF9WQzVfQ05UTAorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfVkM1X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1JEX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUkRfVkM1X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzVfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19SRF9WQzZfQ05UTAorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfVkM2X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1JEX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUkRfVkM2X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzZfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19SRF9WQzdfQ05UTAorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRfVkM3X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1JEX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfUkRfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1JEX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUkRfVkM3X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9WQzdfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19SRF9DTlRMX01JU0MKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCM19SRF9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQUdCM19SRF9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IzX1JEX0NOVExfTUlTQ19fVVRDTDJfQ0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjNfUkRfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19SRF9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCM19SRF9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkMwTAorI2RlZmluZSBEQUdCM19SRF9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdFMDAwTAorI2RlZmluZSBEQUdCM19SRF9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQUdCM19SRF9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9DTlRMX01JU0NfX1VUQ0wyX0NJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEQUdCM19SRF9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19SRF9UTEJfQ1JFRElUCisjZGVmaW5lIERBR0IzX1JEX1RMQl9DUkVESVRfX1RMQjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRF9UTEJfQ1JFRElUX19UTEIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjNfUkRfVExCX0NSRURJVF9fVExCMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0IzX1JEX1RMQl9DUkVESVRfX1RMQjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQUdCM19SRF9UTEJfQ1JFRElUX19UTEI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IzX1JEX1RMQl9DUkVESVRfX1RMQjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfUkRfVExCX0NSRURJVF9fVExCMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjNfUkRfVExCX0NSRURJVF9fVExCMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgREFHQjNfUkRfVExCX0NSRURJVF9fVExCMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgREFHQjNfUkRfVExCX0NSRURJVF9fVExCM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGODAwMEwKKyNkZWZpbmUgREFHQjNfUkRfVExCX0NSRURJVF9fVExCNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKyNkZWZpbmUgREFHQjNfUkRfVExCX0NSRURJVF9fVExCNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRTAwMDAwMEwKKy8vREFHQjNfUkRDTElfQVNLX1BFTkRJTkcKKyNkZWZpbmUgREFHQjNfUkRDTElfQVNLX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJX0FTS19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IzX1JEQ0xJX0dPX1BFTkRJTkcKKyNkZWZpbmUgREFHQjNfUkRDTElfR09fUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJX0dPX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IzX1JEQ0xJX0dCTFNFTkRfUEVORElORworI2RlZmluZSBEQUdCM19SRENMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfUkRDTElfVExCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjNfUkRDTElfVExCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJX1RMQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IzX1JEQ0xJX09BUkJfUEVORElORworI2RlZmluZSBEQUdCM19SRENMSV9PQVJCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkRDTElfT0FSQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfUkRDTElfT1NEX1BFTkRJTkcKKyNkZWZpbmUgREFHQjNfUkRDTElfT1NEX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEQ0xJX09TRF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IzX1dSQ0xJMAorI2RlZmluZSBEQUdCM19XUkNMSTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEkwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEkwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJMQorI2RlZmluZSBEQUdCM19XUkNMSTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEkxX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEkxX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJMgorI2RlZmluZSBEQUdCM19XUkNMSTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEkyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEkyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJMworI2RlZmluZSBEQUdCM19XUkNMSTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEkzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEkzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJNAorI2RlZmluZSBEQUdCM19XUkNMSTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEk0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEk0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJNQorI2RlZmluZSBEQUdCM19XUkNMSTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEk1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEk1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJNgorI2RlZmluZSBEQUdCM19XUkNMSTZfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEk2X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTZfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEk2X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTZfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTZfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJNl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJNworI2RlZmluZSBEQUdCM19XUkNMSTdfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEk3X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTdfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEk3X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTdfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJN19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTdfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJN19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJOAorI2RlZmluZSBEQUdCM19XUkNMSThfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEk4X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSThfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEk4X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSThfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSThfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJOQorI2RlZmluZSBEQUdCM19XUkNMSTlfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEk5X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTlfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEk5X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTlfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTlfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJOV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJMTAKKyNkZWZpbmUgREFHQjNfV1JDTEkxMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19XUkNMSTEwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfV1JDTEkxMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1dSQ0xJMTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19XUkNMSTEwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfV1JDTEkxMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19XUkNMSTEwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1dSQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfV1JDTEkxMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19XUkNMSTEwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19XUkNMSTEwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19XUkNMSTEwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19XUkNMSTEwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19XUkNMSTExCisjZGVmaW5lIERBR0IzX1dSQ0xJMTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUkNMSTExX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX1dSQ0xJMTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19XUkNMSTExX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IzX1dSQ0xJMTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCM19XUkNMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IzX1dSQ0xJMTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjNfV1JDTEkxMgorI2RlZmluZSBEQUdCM19XUkNMSTEyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTEyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEkxMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTEyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTEyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSQ0xJMTMKKyNkZWZpbmUgREFHQjNfV1JDTEkxM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCM19XUkNMSTEzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfV1JDTEkxM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1dSQ0xJMTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19XUkNMSTEzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfV1JDTEkxM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19XUkNMSTEzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX1dSQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfV1JDTEkxM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19XUkNMSTEzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19XUkNMSTEzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCM19XUkNMSTEzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19XUkNMSTEzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUkNMSTEzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19XUkNMSTE0CisjZGVmaW5lIERBR0IzX1dSQ0xJMTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUkNMSTE0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX1dSQ0xJMTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19XUkNMSTE0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0IzX1dSQ0xJMTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCM19XUkNMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0IzX1dSQ0xJMTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JDTEkxNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjNfV1JDTEkxNQorI2RlZmluZSBEQUdCM19XUkNMSTE1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUkNMSTE1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JDTEkxNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCM19XUkNMSTE1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfV1JDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUkNMSTE1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSQ0xJMTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0IzX1dSX0NOVEwKKyNkZWZpbmUgREFHQjNfV1JfQ05UTF9fU0NMS19GUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUl9DTlRMX19WQ19NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjNfV1JfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCM19XUl9DTlRMX19JT19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERBR0IzX1dSX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjNfV1JfQ05UTF9fU0hBUkVfVkNfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQUdCM19XUl9DTlRMX19TQ0xLX0ZSRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0YwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX19WQ19NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX19JT19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX19TSEFSRV9WQ19OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAwMDAwTAorLy9EQUdCM19XUl9HTUlfQ05UTAorI2RlZmluZSBEQUdCM19XUl9HTUlfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfR01JX0NOVExfX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IzX1dSX0dNSV9DTlRMX19NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCM19XUl9HTUlfQ05UTF9fTEFaWV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfV1JfR01JX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjNfV1JfR01JX0NOVExfX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjNfV1JfR01JX0NOVExfX01BWF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUUwMEwKKyNkZWZpbmUgREFHQjNfV1JfR01JX0NOVExfX0xBWllfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRTAwMEwKKy8vREFHQjNfV1JfQUREUl9EQUdCCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9fREFHQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9fV0hPQU1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfX1dIT0FNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorLy9EQUdCM19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1QKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IzX1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjNfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUgorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IzX1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCM19XUl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0IzX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCM19XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0IzX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCM19XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0IzX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjNfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCM19MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjNfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCM19MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjNfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCM19MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0IzX0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0IzX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjNfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0IzX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjNfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IzX0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjNfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCM19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjAKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDEKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjNfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCM19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IzX1dSX0RBVEFfREFHQgorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfX0RBR0JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfX1dIT0FNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX19EQUdCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX19XSE9BTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKy8vREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDAKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjNfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMQorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IzX1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCM19XUl9WQzBfQ05UTAorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfVkMwX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1dSX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfVkMwX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzBfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19XUl9WQzFfQ05UTAorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfVkMxX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1dSX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfVkMxX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzFfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19XUl9WQzJfQ05UTAorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfVkMyX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1dSX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfVkMyX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzJfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19XUl9WQzNfQ05UTAorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfVkMzX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1dSX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfVkMzX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzNfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19XUl9WQzRfQ05UTAorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfVkM0X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1dSX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfVkM0X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzRfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19XUl9WQzVfQ05UTAorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfVkM1X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1dSX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfVkM1X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzVfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19XUl9WQzZfQ05UTAorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfVkM2X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1dSX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfVkM2X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzZfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19XUl9WQzdfQ05UTAorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JfVkM3X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0IzX1dSX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfV1JfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0IzX1dSX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfVkM3X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9WQzdfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCM19XUl9DTlRMX01JU0MKKyNkZWZpbmUgREFHQjNfV1JfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCM19XUl9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjNfV1JfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQUdCM19XUl9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IzX1dSX0NOVExfTUlTQ19fVVRDTDJfQ0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjNfV1JfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCM19XUl9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkMwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdFMDAwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX01JU0NfX1VUQ0wyX0NJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEQUdCM19XUl9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCM19XUl9UTEJfQ1JFRElUCisjZGVmaW5lIERBR0IzX1dSX1RMQl9DUkVESVRfX1RMQjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUl9UTEJfQ1JFRElUX19UTEIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjNfV1JfVExCX0NSRURJVF9fVExCMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0IzX1dSX1RMQl9DUkVESVRfX1RMQjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQUdCM19XUl9UTEJfQ1JFRElUX19UTEI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0IzX1dSX1RMQl9DUkVESVRfX1RMQjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjNfV1JfVExCX0NSRURJVF9fVExCMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjNfV1JfVExCX0NSRURJVF9fVExCMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgREFHQjNfV1JfVExCX0NSRURJVF9fVExCMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgREFHQjNfV1JfVExCX0NSRURJVF9fVExCM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGODAwMEwKKyNkZWZpbmUgREFHQjNfV1JfVExCX0NSRURJVF9fVExCNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfVExCX0NSRURJVF9fVExCNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRTAwMDAwMEwKKy8vREFHQjNfV1JfREFUQV9DUkVESVQKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9DUkVESVRfX0RMT0NLX1ZDX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfQ1JFRElUX19MQVJHRV9CVVJTVF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19XUl9EQVRBX0NSRURJVF9fTUlERExFX0JVUlNUX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IzX1dSX0RBVEFfQ1JFRElUX19TTUFMTF9CVVJTVF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9DUkVESVRfX0RMT0NLX1ZDX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9DUkVESVRfX0xBUkdFX0JVUlNUX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9DUkVESVRfX01JRERMRV9CVVJTVF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgREFHQjNfV1JfREFUQV9DUkVESVRfX1NNQUxMX0JVUlNUX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vREFHQjNfV1JfTUlTQ19DUkVESVQKKyNkZWZpbmUgREFHQjNfV1JfTUlTQ19DUkVESVRfX0FUT01JQ19DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1dSX01JU0NfQ1JFRElUX19ETE9DS19WQ19OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCM19XUl9NSVNDX0NSRURJVF9fT1NEX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjNfV1JfTUlTQ19DUkVESVRfX09TRF9ETE9DS19DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCM19XUl9NSVNDX0NSRURJVF9fQVRPTUlDX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCM19XUl9NSVNDX0NSRURJVF9fRExPQ0tfVkNfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCM19XUl9NSVNDX0NSRURJVF9fT1NEX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRTAwTAorI2RlZmluZSBEQUdCM19XUl9NSVNDX0NSRURJVF9fT1NEX0RMT0NLX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0YwMDAwTAorLy9EQUdCM19XUkNMSV9BU0tfUEVORElORworI2RlZmluZSBEQUdCM19XUkNMSV9BU0tfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTElfQVNLX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfV1JDTElfR09fUEVORElORworI2RlZmluZSBEQUdCM19XUkNMSV9HT19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTElfR09fUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfV1JDTElfR0JMU0VORF9QRU5ESU5HCisjZGVmaW5lIERBR0IzX1dSQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUkNMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCM19XUkNMSV9UTEJfUEVORElORworI2RlZmluZSBEQUdCM19XUkNMSV9UTEJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTElfVExCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfV1JDTElfT0FSQl9QRU5ESU5HCisjZGVmaW5lIERBR0IzX1dSQ0xJX09BUkJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUkNMSV9PQVJCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCM19XUkNMSV9PU0RfUEVORElORworI2RlZmluZSBEQUdCM19XUkNMSV9PU0RfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTElfT1NEX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfV1JDTElfREJVU19BU0tfUEVORElORworI2RlZmluZSBEQUdCM19XUkNMSV9EQlVTX0FTS19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfV1JDTElfREJVU19BU0tfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfV1JDTElfREJVU19HT19QRU5ESU5HCisjZGVmaW5lIERBR0IzX1dSQ0xJX0RCVVNfR09fUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUkNMSV9EQlVTX0dPX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCM19EQUdCX0RMWQorI2RlZmluZSBEQUdCM19EQUdCX0RMWV9fRExZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfREFHQl9ETFlfX0NMSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX0RBR0JfRExZX19QT1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjNfREFHQl9ETFlfX0RMWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjNfREFHQl9ETFlfX0NMSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjNfREFHQl9ETFlfX1BPU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vREFHQjNfQ05UTF9NSVNDCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQ19fRUFfVkMwX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19DTlRMX01JU0NfX0VBX1ZDMV9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzJfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0IzX0NOVExfTUlTQ19fRUFfVkMzX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCM19DTlRMX01JU0NfX0VBX1ZDNF9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzVfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQ19fRUFfVkM2X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzdfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCM19DTlRMX01JU0NfX0JXX0lOSVRfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IzX0NOVExfTUlTQ19fQldfUldfR0FQX0NZQ0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzBfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzFfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzJfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzNfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzRfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzVfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzZfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19FQV9WQzdfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19CV19JTklUX0NZQ0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDX19CV19SV19HQVBfQ1lDTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vREFHQjNfQ05UTF9NSVNDMgorI2RlZmluZSBEQUdCM19DTlRMX01JU0MyX19VUkdfQk9PU1RfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDMl9fVVJHX0hBTFRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVFfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQUdCM19DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVUX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFUV9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVRfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCM19DTlRMX01JU0MyX19ESVNBQkxFX1RMQldSX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJSRF9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfRUFXUlJFUV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19DTlRMX01JU0MyX19ESVNBQkxFX0VBUkRSRVFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjNfQ05UTF9NSVNDMl9fU1dBUF9DVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fUEVSRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCM19DTlRMX01JU0MyX19SRFJFVF9GSUZPX0RMT0NLX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX1VSR19CT09TVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX1VSR19IQUxUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVFfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVRfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVFfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVRfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCV1JfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfVExCUkRfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfRUFXUlJFUV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX0RJU0FCTEVfRUFSRFJFUV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX1NXQVBfQ1RMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fUEVSRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0IzX0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fRExPQ0tfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RTAwMDBMCisvL0RBR0IzX0ZJRk9fRU1QVFkKKyNkZWZpbmUgREFHQjNfRklGT19FTVBUWV9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX0ZJRk9fRU1QVFlfX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RBR0IzX0ZJRk9fRlVMTAorI2RlZmluZSBEQUdCM19GSUZPX0ZVTExfX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfRklGT19GVUxMX19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vREFHQjNfV1JfQ1JFRElUU19GVUxMCisjZGVmaW5lIERBR0IzX1dSX0NSRURJVFNfRlVMTF9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19XUl9DUkVESVRTX0ZVTExfX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkZGRkZGTAorLy9EQUdCM19SRF9DUkVESVRTX0ZVTEwKKyNkZWZpbmUgREFHQjNfUkRfQ1JFRElUU19GVUxMX19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JEX0NSRURJVFNfRlVMTF9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RBR0IzX1BFUkZDT1VOVEVSX0xPCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCM19QRVJGQ09VTlRFUl9ISQorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQUdCM19QRVJGQ09VTlRFUjBfQ0ZHCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vREFHQjNfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RBR0IzX1BFUkZDT1VOVEVSMl9DRkcKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSMl9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVIyX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjJfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUjJfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EQUdCM19QRVJGQ09VTlRFUl9SU0xUX0NOVEwKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCM19QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0IzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisvL0RBR0IzX1JFU0VSVkUwCisjZGVmaW5lIERBR0IzX1JFU0VSVkUwX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRVNFUlZFMF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCM19SRVNFUlZFMQorI2RlZmluZSBEQUdCM19SRVNFUlZFMV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkVTRVJWRTFfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfUkVTRVJWRTIKKyNkZWZpbmUgREFHQjNfUkVTRVJWRTJfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JFU0VSVkUyX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IzX1JFU0VSVkUzCisjZGVmaW5lIERBR0IzX1JFU0VSVkUzX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRVNFUlZFM19fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCM19SRVNFUlZFNAorI2RlZmluZSBEQUdCM19SRVNFUlZFNF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkVTRVJWRTRfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfUkVTRVJWRTUKKyNkZWZpbmUgREFHQjNfUkVTRVJWRTVfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JFU0VSVkU1X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IzX1JFU0VSVkU2CisjZGVmaW5lIERBR0IzX1JFU0VSVkU2X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRVNFUlZFNl9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCM19SRVNFUlZFNworI2RlZmluZSBEQUdCM19SRVNFUlZFN19fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkVTRVJWRTdfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfUkVTRVJWRTgKKyNkZWZpbmUgREFHQjNfUkVTRVJWRThfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JFU0VSVkU4X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IzX1JFU0VSVkU5CisjZGVmaW5lIERBR0IzX1JFU0VSVkU5X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRVNFUlZFOV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCM19SRVNFUlZFMTAKKyNkZWZpbmUgREFHQjNfUkVTRVJWRTEwX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JFU0VSVkUxMF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0IzX1JFU0VSVkUxMQorI2RlZmluZSBEQUdCM19SRVNFUlZFMTFfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjNfUkVTRVJWRTExX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjNfUkVTRVJWRTEyCisjZGVmaW5lIERBR0IzX1JFU0VSVkUxMl9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCM19SRVNFUlZFMTJfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCM19SRVNFUlZFMTMKKyNkZWZpbmUgREFHQjNfUkVTRVJWRTEzX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0IzX1JFU0VSVkUxM19fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9kYWdiX2RhZ2JkZWM0CisvL0RBR0I0X1JEQ0xJMAorI2RlZmluZSBEQUdCNF9SRENMSTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEkwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEkwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJMQorI2RlZmluZSBEQUdCNF9SRENMSTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEkxX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEkxX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJMgorI2RlZmluZSBEQUdCNF9SRENMSTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEkyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEkyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJMworI2RlZmluZSBEQUdCNF9SRENMSTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEkzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEkzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJNAorI2RlZmluZSBEQUdCNF9SRENMSTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEk0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEk0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJNQorI2RlZmluZSBEQUdCNF9SRENMSTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEk1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEk1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJNgorI2RlZmluZSBEQUdCNF9SRENMSTZfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEk2X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTZfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEk2X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTZfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTZfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJNl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJNworI2RlZmluZSBEQUdCNF9SRENMSTdfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEk3X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTdfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEk3X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTdfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJN19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTdfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJN19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJOAorI2RlZmluZSBEQUdCNF9SRENMSThfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEk4X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSThfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEk4X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSThfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSThfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJOQorI2RlZmluZSBEQUdCNF9SRENMSTlfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEk5X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTlfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEk5X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTlfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTlfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJOV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJMTAKKyNkZWZpbmUgREFHQjRfUkRDTEkxMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JEQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNF9SRENMSTEwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfUkRDTEkxMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1JEQ0xJMTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRENMSTEwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjRfUkRDTEkxMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNF9SRENMSTEwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I0X1JEQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjRfUkRDTEkxMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNF9SRENMSTEwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNF9SRENMSTEwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNF9SRENMSTEwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9SRENMSTEwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNF9SRENMSTExCisjZGVmaW5lIERBR0I0X1JEQ0xJMTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRENMSTExX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1JEQ0xJMTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9SRENMSTExX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1JEQ0xJMTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9SRENMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEQ0xJMTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfUkRDTEkxMgorI2RlZmluZSBEQUdCNF9SRENMSTEyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTEyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEkxMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTEyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTEyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEQ0xJMTMKKyNkZWZpbmUgREFHQjRfUkRDTEkxM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JEQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNF9SRENMSTEzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfUkRDTEkxM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1JEQ0xJMTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRENMSTEzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjRfUkRDTEkxM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNF9SRENMSTEzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I0X1JEQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjRfUkRDTEkxM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNF9SRENMSTEzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNF9SRENMSTEzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNF9SRENMSTEzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9SRENMSTEzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNF9SRENMSTEzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNF9SRENMSTE0CisjZGVmaW5lIERBR0I0X1JEQ0xJMTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRENMSTE0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1JEQ0xJMTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9SRENMSTE0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1JEQ0xJMTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9SRENMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEQ0xJMTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRDTEkxNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfUkRDTEkxNQorI2RlZmluZSBEQUdCNF9SRENMSTE1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRENMSTE1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRDTEkxNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRENMSTE1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfUkRDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRENMSTE1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEQ0xJMTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEX0NOVEwKKyNkZWZpbmUgREFHQjRfUkRfQ05UTF9fU0NMS19GUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JEX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRF9DTlRMX19WQ19NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjRfUkRfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNF9SRF9DTlRMX19JT19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERBR0I0X1JEX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjRfUkRfQ05UTF9fU0hBUkVfVkNfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQUdCNF9SRF9DTlRMX19TQ0xLX0ZSRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNF9SRF9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0YwTAorI2RlZmluZSBEQUdCNF9SRF9DTlRMX19WQ19NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEQUdCNF9SRF9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9DTlRMX19JT19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9DTlRMX19TSEFSRV9WQ19OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAwMDAwTAorLy9EQUdCNF9SRF9HTUlfQ05UTAorI2RlZmluZSBEQUdCNF9SRF9HTUlfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRfR01JX0NOVExfX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I0X1JEX0dNSV9DTlRMX19NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCNF9SRF9HTUlfQ05UTF9fTEFaWV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjRfUkRfR01JX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjRfUkRfR01JX0NOVExfX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjRfUkRfR01JX0NOVExfX01BWF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUUwMEwKKyNkZWZpbmUgREFHQjRfUkRfR01JX0NOVExfX0xBWllfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRTAwMEwKKy8vREFHQjRfUkRfQUREUl9EQUdCCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9fREFHQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9fV0hPQU1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfX1dIT0FNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorLy9EQUdCNF9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1QKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I0X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjRfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUgorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjRfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNF9SRF9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0I0X1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0I0X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCNF9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0I0X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjRfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCNF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCNF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjRfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCNF9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0I0X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0I0X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjRfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I0X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjRfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjRfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCNF9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjAKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDEKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjRfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I0X1JEX1ZDMF9DTlRMCisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9WQzBfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfUkRfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRF9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9SRF9WQzBfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1JEX1ZDMV9DTlRMCisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9WQzFfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfUkRfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRF9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9SRF9WQzFfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1JEX1ZDMl9DTlRMCisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9WQzJfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfUkRfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRF9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9SRF9WQzJfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDMl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1JEX1ZDM19DTlRMCisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9WQzNfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfUkRfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRF9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9SRF9WQzNfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDM19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1JEX1ZDNF9DTlRMCisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9WQzRfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfUkRfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRF9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9SRF9WQzRfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1JEX1ZDNV9DTlRMCisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9WQzVfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfUkRfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRF9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9SRF9WQzVfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1JEX1ZDNl9DTlRMCisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9WQzZfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfUkRfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRF9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9SRF9WQzZfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDNl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1JEX1ZDN19DTlRMCisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRF9WQzdfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfUkRfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9SRF9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfUkRfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9SRF9WQzdfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX1ZDN19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1JEX0NOVExfTUlTQworI2RlZmluZSBEQUdCNF9SRF9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I0X1JEX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9SRF9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERBR0I0X1JEX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjRfUkRfQ05UTF9NSVNDX19VVENMMl9DSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNF9SRF9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1JEX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0I0X1JEX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGQzBMCisjZGVmaW5lIERBR0I0X1JEX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0UwMDBMCisjZGVmaW5lIERBR0I0X1JEX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERBR0I0X1JEX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX0NOVExfTUlTQ19fVVRDTDJfQ0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERBR0I0X1JEX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1JEX1RMQl9DUkVESVQKKyNkZWZpbmUgREFHQjRfUkRfVExCX0NSRURJVF9fVExCMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JEX1RMQl9DUkVESVRfX1RMQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNF9SRF9UTEJfQ1JFRElUX19UTEIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjRfUkRfVExCX0NSRURJVF9fVExCM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERBR0I0X1JEX1RMQl9DUkVESVRfX1RMQjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjRfUkRfVExCX0NSRURJVF9fVExCNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9SRF9UTEJfQ1JFRElUX19UTEIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNF9SRF9UTEJfQ1JFRElUX19UTEIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEQUdCNF9SRF9UTEJfQ1JFRElUX19UTEIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBEQUdCNF9SRF9UTEJfQ1JFRElUX19UTEIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorI2RlZmluZSBEQUdCNF9SRF9UTEJfQ1JFRElUX19UTEI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorI2RlZmluZSBEQUdCNF9SRF9UTEJfQ1JFRElUX19UTEI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNFMDAwMDAwTAorLy9EQUdCNF9SRENMSV9BU0tfUEVORElORworI2RlZmluZSBEQUdCNF9SRENMSV9BU0tfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTElfQVNLX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjRfUkRDTElfR09fUEVORElORworI2RlZmluZSBEQUdCNF9SRENMSV9HT19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTElfR09fUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjRfUkRDTElfR0JMU0VORF9QRU5ESU5HCisjZGVmaW5lIERBR0I0X1JEQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRENMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9SRENMSV9UTEJfUEVORElORworI2RlZmluZSBEQUdCNF9SRENMSV9UTEJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTElfVExCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjRfUkRDTElfT0FSQl9QRU5ESU5HCisjZGVmaW5lIERBR0I0X1JEQ0xJX09BUkJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRENMSV9PQVJCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9SRENMSV9PU0RfUEVORElORworI2RlZmluZSBEQUdCNF9SRENMSV9PU0RfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRDTElfT1NEX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjRfV1JDTEkwCisjZGVmaW5lIERBR0I0X1dSQ0xJMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEkxCisjZGVmaW5lIERBR0I0X1dSQ0xJMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEkyCisjZGVmaW5lIERBR0I0X1dSQ0xJMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEkzCisjZGVmaW5lIERBR0I0X1dSQ0xJM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEk0CisjZGVmaW5lIERBR0I0X1dSQ0xJNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEk1CisjZGVmaW5lIERBR0I0X1dSQ0xJNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEk2CisjZGVmaW5lIERBR0I0X1dSQ0xJNl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTZfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJNl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTZfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJNl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJNl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk2X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEk3CisjZGVmaW5lIERBR0I0X1dSQ0xJN19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTdfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJN19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTdfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJN19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJN19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk3X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEk4CisjZGVmaW5lIERBR0I0X1dSQ0xJOF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSThfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJOF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSThfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJOF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJOF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk4X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEk5CisjZGVmaW5lIERBR0I0X1dSQ0xJOV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTlfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJOV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTlfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJOV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJOV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEk5X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEkxMAorI2RlZmluZSBEQUdCNF9XUkNMSTEwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9XUkNMSTEwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfV1JDTEkxMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9XUkNMSTEwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfV1JDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9XUkNMSTEwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1dSQ0xJMTEKKyNkZWZpbmUgREFHQjRfV1JDTEkxMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNF9XUkNMSTExX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfV1JDTEkxMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1dSQ0xJMTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUkNMSTExX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjRfV1JDTEkxMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNF9XUkNMSTExX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I0X1dSQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjRfV1JDTEkxMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNF9XUkNMSTExX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNF9XUkNMSTExX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNF9XUkNMSTExX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9XUkNMSTExX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTExX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTExX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTExX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTExX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTExX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNF9XUkNMSTEyCisjZGVmaW5lIERBR0I0X1dSQ0xJMTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTEyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJMTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTEyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJMTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJMTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JDTEkxMworI2RlZmluZSBEQUdCNF9XUkNMSTEzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9XUkNMSTEzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfV1JDTEkxM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9XUkNMSTEzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfV1JDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9XUkNMSTEzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSQ0xJMTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1dSQ0xJMTQKKyNkZWZpbmUgREFHQjRfV1JDTEkxNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNF9XUkNMSTE0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfV1JDTEkxNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1dSQ0xJMTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUkNMSTE0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjRfV1JDTEkxNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I0X1dSQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjRfV1JDTEkxNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUkNMSTE0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNF9XUkNMSTE1CisjZGVmaW5lIERBR0I0X1dSQ0xJMTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSTE1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSQ0xJMTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUkNMSTE1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I0X1dSQ0xJMTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9XUkNMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSQ0xJMTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JDTEkxNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjRfV1JfQ05UTAorI2RlZmluZSBEQUdCNF9XUl9DTlRMX19TQ0xLX0ZSRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCNF9XUl9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I0X1dSX0NOVExfX0lPX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgREFHQjRfV1JfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNF9XUl9DTlRMX19TSEFSRV9WQ19OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERBR0I0X1dSX0NOVExfX1NDTEtfRlJFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRjBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfX0lPX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfX1NIQVJFX1ZDX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MDAwMDBMCisvL0RBR0I0X1dSX0dNSV9DTlRMCisjZGVmaW5lIERBR0I0X1dSX0dNSV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9HTUlfQ05UTF9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjRfV1JfR01JX0NOVExfX01BWF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0I0X1dSX0dNSV9DTlRMX19MQVpZX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9XUl9HTUlfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCNF9XUl9HTUlfQ05UTF9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCNF9XUl9HTUlfQ05UTF9fTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRTAwTAorI2RlZmluZSBEQUdCNF9XUl9HTUlfQ05UTF9fTEFaWV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFFMDAwTAorLy9EQUdCNF9XUl9BRERSX0RBR0IKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX19XSE9BTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9fREFHQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9fV0hPQU1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisvL0RBR0I0X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjRfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjRfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I0X1dSX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjRfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I0X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjRfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I0X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjRfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCNF9MMVRMQl9XUl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0I0X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNF9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0I0X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCNF9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0I0X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjRfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjRfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCNF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjRfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCNF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjRfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCNF9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0I0X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I0X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMQorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjEKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNF9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I0X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjRfV1JfREFUQV9EQUdCCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9fREFHQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9fV0hPQU1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfX0RBR0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfX1dIT0FNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorLy9EQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjAKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDEKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I0X1dSX1ZDMF9DTlRMCisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9WQzBfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfV1JfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9WQzBfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1dSX1ZDMV9DTlRMCisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9WQzFfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfV1JfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9WQzFfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1dSX1ZDMl9DTlRMCisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9WQzJfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfV1JfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9WQzJfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDMl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1dSX1ZDM19DTlRMCisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9WQzNfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfV1JfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9WQzNfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDM19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1dSX1ZDNF9DTlRMCisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9WQzRfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfV1JfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9WQzRfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1dSX1ZDNV9DTlRMCisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9WQzVfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfV1JfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9WQzVfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1dSX1ZDNl9DTlRMCisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9WQzZfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfV1JfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9WQzZfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDNl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1dSX1ZDN19DTlRMCisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUl9WQzdfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjRfV1JfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9XUl9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjRfV1JfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9WQzdfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX1ZDN19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I0X1dSX0NOVExfTUlTQworI2RlZmluZSBEQUdCNF9XUl9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I0X1dSX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNF9XUl9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERBR0I0X1dSX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjRfV1JfQ05UTF9NSVNDX19VVENMMl9DSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNF9XUl9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I0X1dSX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGQzBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0UwMDBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfTUlTQ19fVVRDTDJfQ0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERBR0I0X1dSX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I0X1dSX1RMQl9DUkVESVQKKyNkZWZpbmUgREFHQjRfV1JfVExCX0NSRURJVF9fVExCMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSX1RMQl9DUkVESVRfX1RMQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNF9XUl9UTEJfQ1JFRElUX19UTEIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjRfV1JfVExCX0NSRURJVF9fVExCM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERBR0I0X1dSX1RMQl9DUkVESVRfX1RMQjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjRfV1JfVExCX0NSRURJVF9fVExCNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNF9XUl9UTEJfQ1JFRElUX19UTEIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNF9XUl9UTEJfQ1JFRElUX19UTEIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEQUdCNF9XUl9UTEJfQ1JFRElUX19UTEIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBEQUdCNF9XUl9UTEJfQ1JFRElUX19UTEIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorI2RlZmluZSBEQUdCNF9XUl9UTEJfQ1JFRElUX19UTEI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9UTEJfQ1JFRElUX19UTEI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNFMDAwMDAwTAorLy9EQUdCNF9XUl9EQVRBX0NSRURJVAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0NSRURJVF9fRExPQ0tfVkNfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9DUkVESVRfX0xBUkdFX0JVUlNUX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1dSX0RBVEFfQ1JFRElUX19NSURETEVfQlVSU1RfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjRfV1JfREFUQV9DUkVESVRfX1NNQUxMX0JVUlNUX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0NSRURJVF9fRExPQ0tfVkNfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0NSRURJVF9fTEFSR0VfQlVSU1RfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0NSRURJVF9fTUlERExFX0JVUlNUX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEQUdCNF9XUl9EQVRBX0NSRURJVF9fU01BTExfQlVSU1RfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EQUdCNF9XUl9NSVNDX0NSRURJVAorI2RlZmluZSBEQUdCNF9XUl9NSVNDX0NSRURJVF9fQVRPTUlDX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfV1JfTUlTQ19DUkVESVRfX0RMT0NLX1ZDX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I0X1dSX01JU0NfQ1JFRElUX19PU0RfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCNF9XUl9NSVNDX0NSRURJVF9fT1NEX0RMT0NLX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I0X1dSX01JU0NfQ1JFRElUX19BVE9NSUNfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0I0X1dSX01JU0NfQ1JFRElUX19ETE9DS19WQ19OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0I0X1dSX01JU0NfQ1JFRElUX19PU0RfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZFMDBMCisjZGVmaW5lIERBR0I0X1dSX01JU0NfQ1JFRElUX19PU0RfRExPQ0tfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisvL0RBR0I0X1dSQ0xJX0FTS19QRU5ESU5HCisjZGVmaW5lIERBR0I0X1dSQ0xJX0FTS19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSV9BU0tfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9XUkNMSV9HT19QRU5ESU5HCisjZGVmaW5lIERBR0I0X1dSQ0xJX0dPX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSV9HT19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9XUkNMSV9HQkxTRU5EX1BFTkRJTkcKKyNkZWZpbmUgREFHQjRfV1JDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I0X1dSQ0xJX1RMQl9QRU5ESU5HCisjZGVmaW5lIERBR0I0X1dSQ0xJX1RMQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSV9UTEJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9XUkNMSV9PQVJCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjRfV1JDTElfT0FSQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSQ0xJX09BUkJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I0X1dSQ0xJX09TRF9QRU5ESU5HCisjZGVmaW5lIERBR0I0X1dSQ0xJX09TRF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSV9PU0RfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9XUkNMSV9EQlVTX0FTS19QRU5ESU5HCisjZGVmaW5lIERBR0I0X1dSQ0xJX0RCVVNfQVNLX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9XUkNMSV9EQlVTX0dPX1BFTkRJTkcKKyNkZWZpbmUgREFHQjRfV1JDTElfREJVU19HT19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSQ0xJX0RCVVNfR09fUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I0X0RBR0JfRExZCisjZGVmaW5lIERBR0I0X0RBR0JfRExZX19ETFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9EQUdCX0RMWV9fQ0xJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfREFHQl9ETFlfX1BPU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNF9EQUdCX0RMWV9fRExZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCNF9EQUdCX0RMWV9fQ0xJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCNF9EQUdCX0RMWV9fUE9TX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9EQUdCNF9DTlRMX01JU0MKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDX19FQV9WQzBfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X0NOVExfTUlTQ19fRUFfVkMxX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDMl9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDX19FQV9WQzNfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0I0X0NOVExfTUlTQ19fRUFfVkM0X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDNV9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDX19FQV9WQzZfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDN19SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I0X0NOVExfTUlTQ19fQldfSU5JVF9DWUNMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDX19CV19SV19HQVBfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDMF9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDMV9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDMl9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDM19SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDNF9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDNV9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDNl9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0VBX1ZDN19SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0JXX0lOSVRfQ1lDTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0NfX0JXX1JXX0dBUF9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9EQUdCNF9DTlRMX01JU0MyCisjZGVmaW5lIERBR0I0X0NOVExfTUlTQzJfX1VSR19CT09TVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9DTlRMX01JU0MyX19VUkdfSEFMVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFUV9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERBR0I0X0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVRfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNF9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVRX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFVF9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I0X0NOVExfTUlTQzJfX0RJU0FCTEVfVExCV1JfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNF9DTlRMX01JU0MyX19ESVNBQkxFX1RMQlJEX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVdSUkVRX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X0NOVExfTUlTQzJfX0RJU0FCTEVfRUFSRFJFUV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCNF9DTlRMX01JU0MyX19TV0FQX0NUTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19QRVJGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I0X0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fRExPQ0tfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fVVJHX0JPT1NUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fVVJHX0hBTFRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFUV9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFVF9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFUV9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFVF9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJXUl9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJSRF9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVdSUkVRX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVJEUkVRX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fU1dBUF9DVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19QRVJGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjRfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19ETE9DS19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdFMDAwMEwKKy8vREFHQjRfRklGT19FTVBUWQorI2RlZmluZSBEQUdCNF9GSUZPX0VNUFRZX19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfRklGT19FTVBUWV9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vREFHQjRfRklGT19GVUxMCisjZGVmaW5lIERBR0I0X0ZJRk9fRlVMTF9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9GSUZPX0ZVTExfX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9EQUdCNF9XUl9DUkVESVRTX0ZVTEwKKyNkZWZpbmUgREFHQjRfV1JfQ1JFRElUU19GVUxMX19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1dSX0NSRURJVFNfRlVMTF9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkZGRkZMCisvL0RBR0I0X1JEX0NSRURJVFNfRlVMTAorI2RlZmluZSBEQUdCNF9SRF9DUkVESVRTX0ZVTExfX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkRfQ1JFRElUU19GVUxMX19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vREFHQjRfUEVSRkNPVU5URVJfTE8KKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I0X1BFUkZDT1VOVEVSX0hJCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RBR0I0X1BFUkZDT1VOVEVSMF9DRkcKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EQUdCNF9QRVJGQ09VTlRFUjFfQ0ZHCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vREFHQjRfUEVSRkNPVU5URVIyX0NGRworI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVIyX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUjJfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMl9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSMl9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RBR0I0X1BFUkZDT1VOVEVSX1JTTFRfQ05UTAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I0X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKy8vREFHQjRfUkVTRVJWRTAKKyNkZWZpbmUgREFHQjRfUkVTRVJWRTBfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JFU0VSVkUwX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I0X1JFU0VSVkUxCisjZGVmaW5lIERBR0I0X1JFU0VSVkUxX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRVNFUlZFMV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9SRVNFUlZFMgorI2RlZmluZSBEQUdCNF9SRVNFUlZFMl9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkVTRVJWRTJfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjRfUkVTRVJWRTMKKyNkZWZpbmUgREFHQjRfUkVTRVJWRTNfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JFU0VSVkUzX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I0X1JFU0VSVkU0CisjZGVmaW5lIERBR0I0X1JFU0VSVkU0X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRVNFUlZFNF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9SRVNFUlZFNQorI2RlZmluZSBEQUdCNF9SRVNFUlZFNV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkVTRVJWRTVfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjRfUkVTRVJWRTYKKyNkZWZpbmUgREFHQjRfUkVTRVJWRTZfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JFU0VSVkU2X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I0X1JFU0VSVkU3CisjZGVmaW5lIERBR0I0X1JFU0VSVkU3X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRVNFUlZFN19fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9SRVNFUlZFOAorI2RlZmluZSBEQUdCNF9SRVNFUlZFOF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkVTRVJWRThfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjRfUkVTRVJWRTkKKyNkZWZpbmUgREFHQjRfUkVTRVJWRTlfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JFU0VSVkU5X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I0X1JFU0VSVkUxMAorI2RlZmluZSBEQUdCNF9SRVNFUlZFMTBfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkVTRVJWRTEwX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjRfUkVTRVJWRTExCisjZGVmaW5lIERBR0I0X1JFU0VSVkUxMV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNF9SRVNFUlZFMTFfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNF9SRVNFUlZFMTIKKyNkZWZpbmUgREFHQjRfUkVTRVJWRTEyX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I0X1JFU0VSVkUxMl9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I0X1JFU0VSVkUxMworI2RlZmluZSBEQUdCNF9SRVNFUlZFMTNfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjRfUkVTRVJWRTEzX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2VhX21tZWFkZWMwCisvL01NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEwX0RSQU1fUkRfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTBfRFJBTV9XUl9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMF9EUkFNX1JEX0xBWlkKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9EUkFNX1JEX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTBfRFJBTV9XUl9MQVpZCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfTEFaWV9fR1JPVVAwX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0xBWllfX0dST1VQMV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9MQVpZX19HUk9VUDJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfTEFaWV9fR1JPVVAzX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfTEFaWV9fR1JPVVAwX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfTEFaWV9fR1JPVVAxX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfTEFaWV9fR1JPVVAyX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfTEFaWV9fR1JPVVAzX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUEwX0RSQU1fUkRfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9NTUVBMF9EUkFNX1dSX0NBTV9DTlRMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vTU1FQTBfRFJBTV9QQUdFX0JVUlNUCisjZGVmaW5lIE1NRUEwX0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEwX0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEwX0RSQU1fUkRfUFJJX0FHRQorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTBfRFJBTV9XUl9QUklfQUdFCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBMF9EUkFNX1JEX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMF9EUkFNX1dSX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMF9EUkFNX1JEX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTBfRFJBTV9XUl9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEwX0RSQU1fUkRfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBMF9EUkFNX1dSX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTBfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMF9HTUlfUkRfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBMF9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTBfR01JX1dSX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEwX0dNSV9SRF9MQVpZCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9HTUlfUkRfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUEwX0dNSV9XUl9MQVpZCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9HTUlfV1JfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUEwX0dNSV9SRF9DQU1fQ05UTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMF9HTUlfUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTBfR01JX1dSX0NBTV9DTlRMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBMF9HTUlfUEFHRV9CVVJTVAorI2RlZmluZSBNTUVBMF9HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9HTUlfUkRfUFJJX0FHRQorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTBfR01JX1dSX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUEwX0dNSV9SRF9QUklfUVVFVUlORworI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTBfR01JX1dSX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMF9HTUlfUkRfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMF9HTUlfV1JfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9BRERSTk9STV9CQVNFX0FERFIwCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjBfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMF9BRERSTk9STV9MSU1JVF9BRERSMAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9MSU1JVF9BRERSMF9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjBfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFIwX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFIwX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEwX0FERFJOT1JNX0JBU0VfQUREUjEKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMV9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEwX0FERFJOT1JNX0xJTUlUX0FERFIxCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFIxX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9MSU1JVF9BRERSMV9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjFfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjFfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFIxCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9PRkZTRVRfQUREUjFfX0hJX0FERFJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL01NRUEwX0FERFJOT1JNX0JBU0VfQUREUjIKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMl9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEwX0FERFJOT1JNX0xJTUlUX0FERFIyCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFIyX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9MSU1JVF9BRERSMl9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjJfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjJfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSMworI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIzX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFIzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjMKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjNfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFIzX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSTk9STV9MSU1JVF9BRERSM19fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9MSU1JVF9BRERSM19fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMF9BRERSTk9STV9PRkZTRVRfQUREUjMKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX09GRlNFVF9BRERSM19fSElfQUREUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI0X19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI0X19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjQKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjRfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFI0X19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSTk9STV9MSU1JVF9BRERSNF9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9MSU1JVF9BRERSNF9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMF9BRERSTk9STV9CQVNFX0FERFI1CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjVfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0JBU0VfQUREUjVfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9CQVNFX0FERFI1X19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMF9BRERSTk9STV9MSU1JVF9BRERSNQorI2RlZmluZSBNTUVBMF9BRERSTk9STV9MSU1JVF9BRERSNV9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fTElNSVRfQUREUjVfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFI1X19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNX0xJTUlUX0FERFI1X19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEwX0FERFJOT1JNX09GRlNFVF9BRERSNQorI2RlZmluZSBNTUVBMF9BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1fT0ZGU0VUX0FERFI1X19ISV9BRERSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9NTUVBMF9BRERSTk9STURSQU1fSE9MRV9DTlRMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkY4MEwKKy8vTU1FQTBfQUREUk5PUk1HTUlfSE9MRV9DTlRMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkY4MEwKKy8vTU1FQTBfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGRworI2RlZmluZSBNTUVBMF9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisvL01NRUEwX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGRworI2RlZmluZSBNTUVBMF9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisvL01NRUEwX0FERFJERUNfQkFOS19DRkcKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX1NFTF9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEwX0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMF9BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBMF9BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NTUVBMF9BRERSREVDX01JU0NfQ0ZHCisjZGVmaW5lIE1NRUEwX0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ19NSVNDX0NGR19fQ1NfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0UwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDMDAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMgorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0CisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNQorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMgorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRQorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBMF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorLy9NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMgorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMworI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9QQworI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9QQzIKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL01NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEUKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMwX0JBU0VfQUREUl9DUzEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMF9CQVNFX0FERFJfQ1MyCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTMworI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMgorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMF9BRERSX01BU0tfQ1MwMQorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX0NTMjMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyMworI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMQorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyMworI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMQorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyMworI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTBfQUREUkRFQzBfQUREUl9TRUwyX0NTMDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfU0VMMl9DUzAxX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUEwX0FERFJERUMwX0FERFJfU0VMMl9DUzIzCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0FERFJfU0VMMl9DUzIzX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9BRERSX1NFTDJfQ1MyM19fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBMF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEwX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMQorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTBfQUREUkRFQzBfUk1fU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMF9BRERSREVDMF9STV9TRUxfQ1MyMworI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEwX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMxX0JBU0VfQUREUl9DUzIKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MzCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMworI2RlZmluZSBNTUVBMF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMxX0FERFJfTUFTS19DUzAxCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMV9BRERSX01BU0tfQ1MyMworI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMF9BRERSREVDMV9BRERSX1NFTDJfQ1MwMQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTBfQUREUkRFQzFfQUREUl9TRUwyX0NTMjMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0FERFJfU0VMMl9DUzIzX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUEwX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyMworI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMF9BRERSREVDMV9STV9TRUxfQ1MwMQorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEwX0FERFJERUMxX1JNX1NFTF9DUzIzCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MyMworI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMl9CQVNFX0FERFJfQ1MxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMgorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMQorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzIKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX0NTMDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMyX0FERFJfTUFTS19DUzIzCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMF9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMQorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEwX0FERFJERUMyX0FERFJfU0VMMl9DUzAxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0FERFJfU0VMMl9DUzAxX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBMF9BRERSREVDMl9BRERSX1NFTDJfQ1MyMworI2RlZmluZSBNTUVBMF9BRERSREVDMl9BRERSX1NFTDJfQ1MyM19fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyMworI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEwX0FERFJERUMyX1JNX1NFTF9DUzAxCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9DUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9DUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMF9BRERSREVDMl9STV9TRUxfU0VDQ1MwMQorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTBfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTBfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMF9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL01NRUEwX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMF9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEwX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUEwX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL01NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMF9JT19SRF9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMF9JT19SRF9DT01CSU5FX0ZMVVNICisjZGVmaW5lIE1NRUEwX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9JT19SRF9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL01NRUEwX0lPX1dSX0NPTUJJTkVfRkxVU0gKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vTU1FQTBfSU9fR1JPVVBfQlVSU1QKKyNkZWZpbmUgTU1FQTBfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0lPX0dST1VQX0JVUlNUX19SRF9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTBfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTBfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTBfSU9fUkRfUFJJX0FHRQorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTBfSU9fV1JfUFJJX0FHRQorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTBfSU9fUkRfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEwX0lPX1dSX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMF9JT19SRF9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9JT19SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEwX0lPX1dSX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBMF9JT19XUl9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMF9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMF9TRFBfQVJCX0RSQU0KKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJSRF9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRFJBTV9fRU9CX09OX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9EUkFNX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX0VPQl9PTl9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0RSQU1fX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorLy9NTUVBMF9TRFBfQVJCX0dNSQorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfR01JX19FQVJMWV9TVzJXUl9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX0VPQl9PTl9FWFBJUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0dNSV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfR01JX19BTExPV19DSEFJTl9CUkVBS0lOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX0VPQl9PTl9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9HTUlfX0FMTE9XX0NIQUlOX0JSRUFLSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vTU1FQTBfU0RQX0FSQl9GSU5BTAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19EUkFNX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0lPX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19CVVJTVF9MSU1JVF9NVUxUSVBMSUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0VSUkVWRU5UX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTBfU0RQX0FSQl9GSU5BTF9fSEFMVFJFUV9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMF9TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfU1RSRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0RSQU1fQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0lPX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0JVUlNUX0xJTUlUX01VTFRJUExJRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0VSUkVWRU5UX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0hBTFRSRVFfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9TVFJFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisvL01NRUEwX1NEUF9EUkFNX1BSSU9SSVRZCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEwX1NEUF9HTUlfUFJJT1JJVFkKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTBfU0RQX0lPX1BSSU9SSVRZCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEwX1NEUF9DUkVESVRTCisjZGVmaW5lIE1NRUEwX1NEUF9DUkVESVRTX19UQUdfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9TRFBfQ1JFRElUU19fV1JfUkVTUF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfU0RQX0NSRURJVFNfX1JEX1JFU1BfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9TRFBfQ1JFRElUU19fVEFHX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMF9TRFBfQ1JFRElUU19fV1JfUkVTUF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNTUVBMF9TRFBfQ1JFRElUU19fUkRfUkVTUF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0YwMDAwTAorLy9NTUVBMF9TRFBfVEFHX1JFU0VSVkUwCisjZGVmaW5lIE1NRUEwX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9TRFBfVEFHX1JFU0VSVkUwX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfU0RQX1RBR19SRVNFUlZFMF9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9TRFBfVEFHX1JFU0VSVkUwX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEwX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9UQUdfUkVTRVJWRTBfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEwX1NEUF9UQUdfUkVTRVJWRTEKKyNkZWZpbmUgTU1FQTBfU0RQX1RBR19SRVNFUlZFMV9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX1NEUF9UQUdfUkVTRVJWRTFfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9TRFBfVEFHX1JFU0VSVkUxX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX1NEUF9UQUdfUkVTRVJWRTFfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfU0RQX1RBR19SRVNFUlZFMV9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTBfU0RQX1RBR19SRVNFUlZFMV9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX1RBR19SRVNFUlZFMV9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX1RBR19SRVNFUlZFMV9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMAorI2RlZmluZSBNTUVBMF9TRFBfVkNDX1JFU0VSVkUwX19WQzBfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMF9fVkMxX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9TRFBfVkNDX1JFU0VSVkUwX19WQzNfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMF9fVkMwX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMF9fVkMxX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMF9fVkMyX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMF9fVkMzX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMF9fVkM0X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMQorI2RlZmluZSBNTUVBMF9TRFBfVkNDX1JFU0VSVkUxX19WQzVfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDQ19SRVNFUlZFMV9fVkM2X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDN19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9TRFBfVkNDX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDN19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0NfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEwX1NEUF9WQ0RfUkVTRVJWRTAKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDRF9SRVNFUlZFMF9fVkMwX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9TRFBfVkNEX1JFU0VSVkUwX19WQzJfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDRF9SRVNFUlZFMF9fVkMzX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9TRFBfVkNEX1JFU0VSVkUwX19WQzRfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEwX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDM19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL01NRUEwX1NEUF9WQ0RfUkVTRVJWRTEKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDRF9SRVNFUlZFMV9fVkM1X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9TRFBfVkNEX1JFU0VSVkUxX19WQzdfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfU0RQX1ZDRF9SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMF9TRFBfVkNEX1JFU0VSVkUxX19WQzVfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBMF9TRFBfVkNEX1JFU0VSVkUxX19WQzZfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBMF9TRFBfVkNEX1JFU0VSVkUxX19WQzdfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBMF9TRFBfVkNEX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMF9TRFBfUkVRX0NOVEwKKyNkZWZpbmUgTU1FQTBfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX0FUT01JQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX1NEUF9SRVFfQ05UTF9fUkVRX0NIQUlOX09WRVJSSURFX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9TRFBfUkVRX0NOVExfX0lOTkVSX0RPTUFJTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTBfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTBfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9BVE9NSUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTBfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTBfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTBfU0RQX1JFUV9DTlRMX19JTk5FUl9ET01BSU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vTU1FQTBfTUlTQworI2RlZmluZSBNTUVBMF9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9SRF9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fV1JfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfUkRfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1dSX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1JEX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9JT19XUl9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEwX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEwX01JU0NfX0VBUkxZX1NEUF9PUklHREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9NSVNDX19MSU5LTUdSX0RZTkFNSUNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTBfTUlTQ19fTElOS01HUl9IQUxUX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMF9NSVNDX19MSU5LTUdSX1JFQ09OTkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEwX01JU0NfX0xJTktNR1JfSURMRV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMF9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEwX01JU0NfX0ZBVk9VUl9MQVNUX0NTX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMF9NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEwX01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTBfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fUkRfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fV1JfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9SRF9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9XUl9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1JEX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1dSX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRUFSTFlfU0RQX09SSUdEQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fTElOS01HUl9EWU5BTUlDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fTElOS01HUl9IQUxUX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2MDAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fTElOS01HUl9SRUNPTk5FQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4MDAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fTElOS01HUl9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTBfTEFURU5DWV9TQU1QTElORworI2RlZmluZSBNTUVBMF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0lPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfTk9SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX05PUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0lPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0lPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19OT1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19OT1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkMwMDBMCisjZGVmaW5lIE1NRUEwX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZDMDAwMDBMCisvL01NRUEwX1BFUkZDT1VOVEVSX0xPCisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTUVBMF9QRVJGQ09VTlRFUl9ISQorI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NTUVBMF9QRVJGQ09VTlRFUjBfQ0ZHCisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTBfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUEwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTAorI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUEwX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKy8vTU1FQTBfRURDX0NOVAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNUkRfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMF9FRENfQ05UX19SUkVUX1RBR01FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fUlJFVF9UQUdNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX1dSRVRfVEFHTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fV1JFVF9UQUdNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9FRENfQ05UX19EUkFNUkRfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX0RSQU1XUl9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fSU9SRF9DTURNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMF9FRENfQ05UX19JT1dSX0NNRE1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEwX0VEQ19DTlRfX0lPV1JfREFUQU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fUlJFVF9UQUdNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fUlJFVF9UQUdNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fV1JFVF9UQUdNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fV1JFVF9UQUdNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVJEX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fRFJBTVdSX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fSU9SRF9DTURNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fSU9XUl9DTURNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX0NOVF9fSU9XUl9EQVRBTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vTU1FQTBfRURDX0NOVDIKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0VEQ19DTlQyX19HTUlSRF9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JV1JfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDJfX0dNSVJEX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0VEQ19DTlQyX19HTUlXUl9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JUkRfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JV1JfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JUkRfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UMl9fR01JV1JfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorLy9NTUVBMF9EU01fQ05UTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExfX0RSQU1SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fUlJFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExfX1JSRVRfVEFHTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMX19XUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fV1JFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExfX0dNSVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fR01JV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fUlJFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fUlJFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fV1JFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fV1JFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fR01JUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fR01JUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fR01JV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fR01JV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fR01JV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTF9fR01JV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9NTUVBMF9EU01fQ05UTEEKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExBX19JT1dSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9NTUVBMF9EU01fQ05UTDIKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyX19EUkFNV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX1dSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyX19XUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyX19JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX1JSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX1JSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX1dSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX1dSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJfX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9NTUVBMF9EU01fQ05UTDJBCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMkFfX0RSQU1XUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMkFfX0lPV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMF9EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEwX0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTBfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vTU1FQTBfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0NHVFRfQ0xLX0NUUkxfX1NQQVJFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEwX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTBfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TUEFSRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUEwX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTBfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEwX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTBfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TUEFSRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TUEFSRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ODAwMDAwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBMF9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMF9FRENfTU9ERQorI2RlZmluZSBNTUVBMF9FRENfTU9ERV9fQ09VTlRfRkVEX09VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEwX0VEQ19NT0RFX19HQVRFX0ZVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTBfRURDX01PREVfX0RFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMF9FRENfTU9ERV9fUFJPUF9GRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEwX0VEQ19NT0RFX19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTBfRURDX01PREVfX0NPVU5UX0ZFRF9PVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX01PREVfX0dBVEVfRlVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX01PREVfX0RFRF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX01PREVfX1BST1BfRkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTBfRURDX01PREVfX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTBfRVJSX1NUQVRVUworI2RlZmluZSBNTUVBMF9FUlJfU1RBVFVTX19TRFBfUkRSU1BfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fU0RQX1dSUlNQX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMF9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVBBUklUWV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fQ0xFQVJfRVJST1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUEwX0VSUl9TVEFUVVNfX0JVU1lfT05fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9FUlJfU1RBVFVTX19GVUVfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fU0RQX1JEUlNQX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fU0RQX1dSUlNQX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFTVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFQQVJJVFlfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fQ0xFQVJfRVJST1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fQlVTWV9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTBfRVJSX1NUQVRVU19fRlVFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vTU1FQTBfTUlTQzIKKyNkZWZpbmUgTU1FQTBfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9EUkFNX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX01JU0MyX19DU0dST1VQX1NXQVBfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMF9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEwX01JU0MyX19JT19SRFdSX1BSSU9SSVRZX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9NSVNDMl9fUlJFVF9TV0FQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTBfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTBfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTBfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3Q0wKKyNkZWZpbmUgTU1FQTBfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEY4MEwKKyNkZWZpbmUgTU1FQTBfTUlTQzJfX0lPX1JEV1JfUFJJT1JJVFlfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTBfTUlTQzJfX1JSRVRfU1dBUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vTU1FQTBfQUREUkRFQ19TRUxFQ1QKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEwX0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMF9BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTBfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEwX0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEwX0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIE1NRUEwX0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIE1NRUEwX0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjgwMDBMCisvL01NRUEwX0VEQ19DTlQzCisjZGVmaW5lIE1NRUEwX0VEQ19DTlQzX19EUkFNUkRfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMF9FRENfQ05UM19fRFJBTVdSX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDNfX0lPUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEwX0VEQ19DTlQzX19JT1dSX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMF9FRENfQ05UM19fSU9XUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTBfRURDX0NOVDNfX0dNSVJEX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEwX0VEQ19DTlQzX19HTUlXUl9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMF9FRENfQ05UM19fRFJBTVJEX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMF9FRENfQ05UM19fRFJBTVdSX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMF9FRENfQ05UM19fSU9SRF9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UM19fSU9XUl9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UM19fSU9XUl9EQVRBTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UM19fR01JUkRfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMF9FRENfQ05UM19fR01JV1JfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZWFfbW1lYWRlYzEKKy8vTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTFfRFJBTV9SRF9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMV9EUkFNX1dSX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUExX0RSQU1fUkRfTEFaWQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorLy9NTUVBMV9EUkFNX1dSX0xBWlkKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9EUkFNX1dSX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTFfRFJBTV9SRF9DQU1fQ05UTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL01NRUExX0RSQU1fV1JfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9NTUVBMV9EUkFNX1BBR0VfQlVSU1QKKyNkZWZpbmUgTU1FQTFfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTFfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTFfRFJBTV9SRF9QUklfQUdFCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBMV9EUkFNX1dSX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUExX0RSQU1fUkRfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUExX0RSQU1fV1JfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUExX0RSQU1fUkRfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMV9EUkFNX1dSX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTFfRFJBTV9SRF9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUExX0RSQU1fV1JfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUExX0dNSV9SRF9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUExX0dNSV9SRF9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUExX0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMV9HTUlfV1JfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBMV9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTFfR01JX1JEX0xBWlkKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0dNSV9SRF9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9HTUlfUkRfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTFfR01JX1dSX0xBWlkKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0dNSV9XUl9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9HTUlfV1JfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTFfR01JX1JEX0NBTV9DTlRMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUExX0dNSV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfR01JX1JEX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBMV9HTUlfV1JfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTFfR01JX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9HTUlfV1JfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUExX0dNSV9QQUdFX0JVUlNUCisjZGVmaW5lIE1NRUExX0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0dNSV9SRF9QUklfQUdFCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBMV9HTUlfV1JfUFJJX0FHRQorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTFfR01JX1JEX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMV9HTUlfV1JfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUExX0dNSV9SRF9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUExX0dNSV9XUl9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUExX0dNSV9SRF9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUExX0dNSV9XUl9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0FERFJOT1JNX0JBU0VfQUREUjAKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMF9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUExX0FERFJOT1JNX0xJTUlUX0FERFIwCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIwX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9MSU1JVF9BRERSMF9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjBfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjBfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMQorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIxX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjEKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjFfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIxX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSTk9STV9MSU1JVF9BRERSMV9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9MSU1JVF9BRERSMV9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMV9BRERSTk9STV9PRkZTRVRfQUREUjEKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMgorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIyX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjIKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjJfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIyX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSTk9STV9MSU1JVF9BRERSMl9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9MSU1JVF9BRERSMl9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMV9BRERSTk9STV9CQVNFX0FERFIzCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjNfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFIzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMV9BRERSTk9STV9MSU1JVF9BRERSMworI2RlZmluZSBNTUVBMV9BRERSTk9STV9MSU1JVF9BRERSM19fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjNfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIzX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0xJTUlUX0FERFIzX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUExX0FERFJOT1JNX09GRlNFVF9BRERSMworI2RlZmluZSBNTUVBMV9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9NTUVBMV9BRERSTk9STV9CQVNFX0FERFI0CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjRfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjRfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI0X19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMV9BRERSTk9STV9MSU1JVF9BRERSNAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9MSU1JVF9BRERSNF9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjRfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0xJTUlUX0FERFI0X19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0xJTUlUX0FERFI0X19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUExX0FERFJOT1JNX0JBU0VfQUREUjUKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSNV9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fQkFTRV9BRERSNV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0JBU0VfQUREUjVfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUExX0FERFJOT1JNX0xJTUlUX0FERFI1CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX0xJTUlUX0FERFI1X19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9MSU1JVF9BRERSNV9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjVfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1fTElNSVRfQUREUjVfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTFfQUREUk5PUk1fT0ZGU0VUX0FERFI1CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL01NRUExX0FERFJOT1JNRFJBTV9IT0xFX0NOVEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBMV9BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjgwTAorLy9NTUVBMV9BRERSTk9STUdNSV9IT0xFX0NOVEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBMV9BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjgwTAorLy9NTUVBMV9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHCisjZGVmaW5lIE1NRUExX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKy8vTU1FQTFfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHCisjZGVmaW5lIE1NRUExX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKy8vTU1FQTFfQUREUkRFQ19CQU5LX0NGRworI2RlZmluZSBNTUVBMV9BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUExX0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUExX0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL01NRUExX0FERFJERUNfTUlTQ19DRkcKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19NSVNDX0NGR19fUENIX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMV9BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMV9BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRTAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL01NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMworI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1CisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQworI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9NTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMQorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUExX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisvL01NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0CisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1CisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX1BDMgorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRQorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBMV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorLy9NTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX0NTMQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzIKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MzCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMworI2RlZmluZSBNTUVBMV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMwX0FERFJfTUFTS19DUzAxCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMF9BRERSX01BU0tfQ1MyMworI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMV9BRERSREVDMF9BRERSX1NFTDJfQ1MwMQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTFfQUREUkRFQzBfQUREUl9TRUwyX0NTMjMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0FERFJfU0VMMl9DUzIzX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUExX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyMworI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMV9BRERSREVDMF9STV9TRUxfQ1MwMQorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUExX0FERFJERUMwX1JNX1NFTF9DUzIzCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTFfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MyMworI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMV9CQVNFX0FERFJfQ1MxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX0NTMgorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMQorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzIKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzFfQUREUl9NQVNLX0NTMDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMxX0FERFJfTUFTS19DUzIzCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMQorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUExX0FERFJERUMxX0FERFJfU0VMMl9DUzAxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0FERFJfU0VMMl9DUzAxX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBMV9BRERSREVDMV9BRERSX1NFTDJfQ1MyMworI2RlZmluZSBNTUVBMV9BRERSREVDMV9BRERSX1NFTDJfQ1MyM19fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyMworI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUExX0FERFJERUMxX1JNX1NFTF9DUzAxCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9DUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMQorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTMAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMl9CQVNFX0FERFJfQ1MyCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTMworI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMgorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMl9BRERSX01BU0tfQ1MwMQorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzJfQUREUl9NQVNLX0NTMjMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUExX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMV9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyMworI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMQorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyMworI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMQorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyMworI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTFfQUREUkRFQzJfQUREUl9TRUwyX0NTMDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfU0VMMl9DUzAxX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUExX0FERFJERUMyX0FERFJfU0VMMl9DUzIzCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0FERFJfU0VMMl9DUzIzX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9BRERSX1NFTDJfQ1MyM19fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBMV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUExX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMQorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTFfQUREUkRFQzJfUk1fU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9DUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMV9BRERSREVDMl9STV9TRUxfQ1MyMworI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9DUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9DUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9DUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9DUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMV9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMV9BRERSTk9STURSQU1fR0xPQkFMX0NOVEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUExX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vTU1FQTFfQUREUk5PUk1HTUlfR0xPQkFMX0NOVEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUExX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTFfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUExX0lPX1JEX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUExX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMV9JT19XUl9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUExX0lPX1JEX0NPTUJJTkVfRkxVU0gKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fUkRfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vTU1FQTFfSU9fV1JfQ09NQklORV9GTFVTSAorI2RlZmluZSBNTUVBMV9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfSU9fV1JfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9JT19XUl9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9NTUVBMV9JT19HUk9VUF9CVVJTVAorI2RlZmluZSBNTUVBMV9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMV9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMV9JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMV9JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMV9JT19SRF9QUklfQUdFCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBMV9JT19XUl9QUklfQUdFCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBMV9JT19SRF9QUklfUVVFVUlORworI2RlZmluZSBNTUVBMV9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTFfSU9fV1JfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUExX0lPX1JEX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTFfSU9fV1JfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMV9JT19SRF9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUExX0lPX1dSX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUExX0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUExX1NEUF9BUkJfRFJBTQorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJXUl9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9EUkFNX19FT0JfT05fRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0RSQU1fX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fRU9CX09OX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRFJBTV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisvL01NRUExX1NEUF9BUkJfR01JCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfR01JX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fRU9CX09OX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX1NEUF9BUkJfR01JX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9HTUlfX0FMTE9XX0NIQUlOX0JSRUFLSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fRU9CX09OX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0dNSV9fQUxMT1dfQ0hBSU5fQlJFQUtJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9NTUVBMV9TRFBfQVJCX0ZJTkFMCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX0RSQU1fQlVSU1RfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fSU9fQlVSU1RfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX0JVUlNUX0xJTUlUX01VTFRJUExJRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMV9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fRVJSRVZFTlRfT05fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMV9TRFBfQVJCX0ZJTkFMX19IQUxUUkVRX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUExX1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9TVFJFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fRFJBTV9CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fSU9fQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fQlVSU1RfTElNSVRfTVVMVElQTElFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fRVJSRVZFTlRfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fSEFMVFJFUV9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX1NUUkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKy8vTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFkKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTFfU0RQX0dNSV9QUklPUklUWQorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMV9TRFBfSU9fUFJJT1JJVFkKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTFfU0RQX0NSRURJVFMKKyNkZWZpbmUgTU1FQTFfU0RQX0NSRURJVFNfX1RBR19MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX1NEUF9DUkVESVRTX19XUl9SRVNQX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9TRFBfQ1JFRElUU19fUkRfUkVTUF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX1NEUF9DUkVESVRTX19UQUdfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUExX1NEUF9DUkVESVRTX19XUl9SRVNQX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIE1NRUExX1NEUF9DUkVESVRTX19SRF9SRVNQX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisvL01NRUExX1NEUF9UQUdfUkVTRVJWRTAKKyNkZWZpbmUgTU1FQTFfU0RQX1RBR19SRVNFUlZFMF9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9TRFBfVEFHX1JFU0VSVkUwX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX1NEUF9UQUdfUkVTRVJWRTBfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfU0RQX1RBR19SRVNFUlZFMF9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTFfU0RQX1RBR19SRVNFUlZFMF9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX1RBR19SRVNFUlZFMF9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX1RBR19SRVNFUlZFMF9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTFfU0RQX1RBR19SRVNFUlZFMQorI2RlZmluZSBNTUVBMV9TRFBfVEFHX1JFU0VSVkUxX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfU0RQX1RBR19SRVNFUlZFMV9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX1NEUF9UQUdfUkVTRVJWRTFfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfU0RQX1RBR19SRVNFUlZFMV9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9TRFBfVEFHX1JFU0VSVkUxX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMV9TRFBfVEFHX1JFU0VSVkUxX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMV9TRFBfVEFHX1JFU0VSVkUxX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfVEFHX1JFU0VSVkUxX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMV9TRFBfVkNDX1JFU0VSVkUwCisjZGVmaW5lIE1NRUExX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9TRFBfVkNDX1JFU0VSVkUwX19WQzFfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDQ19SRVNFUlZFMF9fVkMyX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDM19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDQ19SRVNFUlZFMF9fVkM0X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9TRFBfVkNDX1JFU0VSVkUwX19WQzBfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBMV9TRFBfVkNDX1JFU0VSVkUwX19WQzFfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBMV9TRFBfVkNDX1JFU0VSVkUwX19WQzJfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfVkNDX1JFU0VSVkUwX19WQzNfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBNTUVBMV9TRFBfVkNDX1JFU0VSVkUwX19WQzRfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9NTUVBMV9TRFBfVkNDX1JFU0VSVkUxCisjZGVmaW5lIE1NRUExX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9TRFBfVkNDX1JFU0VSVkUxX19WQzZfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDQ19SRVNFUlZFMV9fVkM3X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX1NEUF9WQ0NfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDQ19SRVNFUlZFMV9fVkM1X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDQ19SRVNFUlZFMV9fVkM2X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDQ19SRVNFUlZFMV9fVkM3X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDQ19SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMAorI2RlZmluZSBNTUVBMV9TRFBfVkNEX1JFU0VSVkUwX19WQzBfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMF9fVkMxX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9TRFBfVkNEX1JFU0VSVkUwX19WQzNfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMF9fVkMwX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMF9fVkMxX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMF9fVkMyX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMF9fVkMzX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMF9fVkM0X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMQorI2RlZmluZSBNTUVBMV9TRFBfVkNEX1JFU0VSVkUxX19WQzVfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfU0RQX1ZDRF9SRVNFUlZFMV9fVkM2X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX1NEUF9WQ0RfUkVTRVJWRTFfX1ZDN19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9TRFBfVkNEX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUExX1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUExX1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUExX1NEUF9WQ0RfUkVTRVJWRTFfX1ZDN19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUExX1NEUF9WQ0RfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUExX1NEUF9SRVFfQ05UTAorI2RlZmluZSBNTUVBMV9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfQVRPTUlDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX1NEUF9SRVFfQ05UTF9fSU5ORVJfRE9NQUlOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMV9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMV9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX0FUT01JQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMV9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBMV9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBMV9TRFBfUkVRX0NOVExfX0lOTkVSX0RPTUFJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorLy9NTUVBMV9NSVNDCisjZGVmaW5lIE1NRUExX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9EUkFNX1JEX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9XUl9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9SRF9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfV1JfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fUkRfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1dSX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUExX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTFfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUExX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTFfTUlTQ19fRUFSTFlfU0RQX09SSUdEQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX01JU0NfX0xJTktNR1JfRFlOQU1JQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMV9NSVNDX19MSU5LTUdSX0hBTFRfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUExX01JU0NfX0xJTktNR1JfUkVDT05ORUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTFfTUlTQ19fTElOS01HUl9JRExFX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUExX01JU0NfX0ZBVk9VUl9NSURDSEFJTl9DU19JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTFfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUExX01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTFfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMV9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9SRF9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9XUl9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMV9NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1JEX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMV9NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1dSX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBMV9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fUkRfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBMV9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fV1JfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19FQVJMWV9TRFBfT1JJR0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19MSU5LTUdSX0RZTkFNSUNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19MSU5LTUdSX0hBTFRfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYwMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19MSU5LTUdSX1JFQ09OTkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTgwMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19MSU5LTUdSX0lETEVfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMV9MQVRFTkNZX1NBTVBMSU5HCisjZGVmaW5lIE1NRUExX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9JT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUExX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUExX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19OT1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9BVE9NSUNfTk9SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX05PUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX05PUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGQzAwMEwKKyNkZWZpbmUgTU1FQTFfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkMwMDAwMEwKKy8vTU1FQTFfUEVSRkNPVU5URVJfTE8KKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NRUExX1BFUkZDT1VOVEVSX0hJCisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01NRUExX1BFUkZDT1VOVEVSMF9DRkcKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBMV9QRVJGQ09VTlRFUjFfQ0ZHCisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTFfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorLy9NTUVBMV9FRENfQ05UCisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX1JSRVRfVEFHTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fV1JFVF9UQUdNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX0RSQU1SRF9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fRFJBTVdSX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMV9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUExX0VEQ19DTlRfX0lPV1JfQ01ETUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTFfRURDX0NOVF9fSU9XUl9EQVRBTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNUkRfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNV1JfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19SUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19XUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNUkRfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19EUkFNV1JfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19JT1dSX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfQ05UX19JT1dSX0RBVEFNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9NTUVBMV9FRENfQ05UMgorI2RlZmluZSBNTUVBMV9FRENfQ05UMl9fR01JUkRfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMV9FRENfQ05UMl9fR01JV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMV9FRENfQ05UMl9fR01JUkRfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDJfX0dNSVdSX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlSRF9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlSRF9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlSRF9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQyX19HTUlXUl9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisvL01NRUExX0RTTV9DTlRMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExfX0RSQU1XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMV9EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19SUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMV9EU01fQ05UTF9fUlJFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExfX1dSRVRfVEFHTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19XUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMV9EU01fQ05UTF9fR01JUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMV9EU01fQ05UTF9fR01JV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9EU01fQ05UTF9fR01JV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19SUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19SUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19XUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19XUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL01NRUExX0RTTV9DTlRMQQorI2RlZmluZSBNTUVBMV9EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExBX19JT1JEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExBX19HTUlSRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL01NRUExX0RTTV9DTlRMMgorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMV9EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJfX1JSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMV9EU01fQ05UTDJfX1dSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyX19HTUlSRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyX19HTUlXUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBMV9EU01fQ05UTDJfX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMl9fSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL01NRUExX0RTTV9DTlRMMkEKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMkFfX0lPUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMkFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUExX0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTFfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMV9EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9NTUVBMV9DR1RUX0NMS19DVFJMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfQ0dUVF9DTEtfQ1RSTF9fU1BBUkUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTFfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMV9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NQQVJFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTFfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMV9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTFfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMV9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NQQVJFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NQQVJFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4MDAwMDBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUExX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUExX0VEQ19NT0RFCisjZGVmaW5lIE1NRUExX0VEQ19NT0RFX19DT1VOVF9GRURfT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTFfRURDX01PREVfX0dBVEVfRlVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fREVEX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUExX0VEQ19NT0RFX19QUk9QX0ZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTFfRURDX01PREVfX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fQ09VTlRfRkVEX09VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fR0FURV9GVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fREVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fUFJPUF9GRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBMV9FRENfTU9ERV9fQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMV9FUlJfU1RBVFVTCisjZGVmaW5lIE1NRUExX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfV1JSU1BfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFTVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUExX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBUEFSSVRZX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19DTEVBUl9FUlJPUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTFfRVJSX1NUQVRVU19fQlVTWV9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0VSUl9TVEFUVVNfX0ZVRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfUkRSU1BfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfV1JSU1BfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVNUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVBBUklUWV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19DTEVBUl9FUlJPUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19CVVNZX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMV9FUlJfU1RBVFVTX19GVUVfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9NTUVBMV9NSVNDMgorI2RlZmluZSBNTUVBMV9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUExX01JU0MyX19DU0dSUF9CVVJTVF9MSU1JVF9EQVRBX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTFfTUlTQzJfX0lPX1JEV1JfUFJJT1JJVFlfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX01JU0MyX19SUkVUX1NXQVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMV9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMV9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMV9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdDTAorI2RlZmluZSBNTUVBMV9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjgwTAorI2RlZmluZSBNTUVBMV9NSVNDMl9fSU9fUkRXUl9QUklPUklUWV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMV9NSVNDMl9fUlJFVF9TV0FQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9NTUVBMV9BRERSREVDX1NFTEVDVAorI2RlZmluZSBNTUVBMV9BRERSREVDX1NFTEVDVF9fRFJBTV9BRERSREVDX0NIQU5ORUxfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUExX0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMV9BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgTU1FQTFfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGODAwMEwKKy8vTU1FQTFfRURDX0NOVDMKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDNfX0RSQU1SRF9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUExX0VEQ19DTlQzX19EUkFNV1JfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMV9FRENfQ05UM19fSU9SRF9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDNfX0lPV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUExX0VEQ19DTlQzX19JT1dSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMV9FRENfQ05UM19fR01JUkRfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTFfRURDX0NOVDNfX0dNSVdSX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUExX0VEQ19DTlQzX19EUkFNUkRfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQzX19EUkFNV1JfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQzX19JT1JEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQzX19JT1dSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQzX19JT1dSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQzX19HTUlSRF9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUExX0VEQ19DTlQzX19HTUlXUl9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9lYV9tbWVhZGVjMgorLy9NTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMl9EUkFNX1JEX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEyX0RSQU1fV1JfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTJfRFJBTV9SRF9MQVpZCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfTEFaWV9fR1JPVVAwX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0xBWllfX0dST1VQMV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9MQVpZX19HUk9VUDJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfTEFaWV9fR1JPVVAzX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfTEFaWV9fR1JPVVAwX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfTEFaWV9fR1JPVVAxX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfTEFaWV9fR1JPVVAyX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfTEFaWV9fR1JPVVAzX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUEyX0RSQU1fV1JfTEFaWQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorLy9NTUVBMl9EUkFNX1JEX0NBTV9DTlRMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMl9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vTU1FQTJfRFJBTV9XUl9DQU1fQ05UTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL01NRUEyX0RSQU1fUEFHRV9CVVJTVAorI2RlZmluZSBNTUVBMl9EUkFNX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9EUkFNX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMl9EUkFNX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMl9EUkFNX1JEX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUEyX0RSQU1fV1JfUFJJX0FHRQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTJfRFJBTV9SRF9QUklfUVVFVUlORworI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTJfRFJBTV9XUl9QUklfUVVFVUlORworI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTJfRFJBTV9SRF9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEyX0RSQU1fV1JfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMl9EUkFNX1JEX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTJfRFJBTV9XUl9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEyX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTJfR01JX1JEX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEyX0dNSV9XUl9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMl9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMl9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMl9HTUlfUkRfTEFaWQorI2RlZmluZSBNTUVBMl9HTUlfUkRfTEFaWV9fR1JPVVAwX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0xBWllfX0dST1VQMV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9MQVpZX19HUk9VUDJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9HTUlfUkRfTEFaWV9fR1JPVVAzX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMl9HTUlfUkRfTEFaWV9fR1JPVVAwX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMl9HTUlfUkRfTEFaWV9fR1JPVVAxX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMl9HTUlfUkRfTEFaWV9fR1JPVVAyX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfTEFaWV9fR1JPVVAzX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorLy9NTUVBMl9HTUlfV1JfTEFaWQorI2RlZmluZSBNTUVBMl9HTUlfV1JfTEFaWV9fR1JPVVAwX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0xBWllfX0dST1VQMV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9MQVpZX19HUk9VUDJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9HTUlfV1JfTEFaWV9fR1JPVVAzX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMl9HTUlfV1JfTEFaWV9fR1JPVVAwX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMl9HTUlfV1JfTEFaWV9fR1JPVVAxX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMl9HTUlfV1JfTEFaWV9fR1JPVVAyX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfTEFaWV9fR1JPVVAzX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorLy9NTUVBMl9HTUlfUkRfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTJfR01JX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9HTUlfUkRfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUEyX0dNSV9XUl9DQU1fQ05UTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMl9HTUlfV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTJfR01JX1BBR0VfQlVSU1QKKyNkZWZpbmUgTU1FQTJfR01JX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfR01JX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfR01JX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfR01JX1JEX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUEyX0dNSV9XUl9QUklfQUdFCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBMl9HTUlfUkRfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEyX0dNSV9XUl9QUklfUVVFVUlORworI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTJfR01JX1JEX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTJfR01JX1dSX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkcKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIwX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjAKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjBfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFIwX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMF9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMF9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMl9BRERSTk9STV9CQVNFX0FERFIxCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjFfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMQorI2RlZmluZSBNTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMV9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjFfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFIxX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFIxX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEyX0FERFJOT1JNX09GRlNFVF9BRERSMQorI2RlZmluZSBNTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjFfX0hJX0FERFJfT0ZGU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjFfX0hJX0FERFJfT0ZGU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjFfX0hJX0FERFJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9NTUVBMl9BRERSTk9STV9CQVNFX0FERFIyCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjJfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMgorI2RlZmluZSBNTUVBMl9BRERSTk9STV9MSU1JVF9BRERSMl9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjJfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFIyX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFIyX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEyX0FERFJOT1JNX0JBU0VfQUREUjMKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSM19fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEyX0FERFJOT1JNX0xJTUlUX0FERFIzCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFIzX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9MSU1JVF9BRERSM19fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjNfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjNfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTJfQUREUk5PUk1fT0ZGU0VUX0FERFIzCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX09GRlNFVF9BRERSM19fSElfQUREUl9PRkZTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX09GRlNFVF9BRERSM19fSElfQUREUl9PRkZTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX09GRlNFVF9BRERSM19fSElfQUREUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL01NRUEyX0FERFJOT1JNX0JBU0VfQUREUjQKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNF9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjRfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEyX0FERFJOT1JNX0xJTUlUX0FERFI0CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFI0X19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9MSU1JVF9BRERSNF9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjRfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjRfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNQorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFI1X19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9BRERSTk9STV9CQVNFX0FERFI1X19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fQkFTRV9BRERSNV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjUKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fTElNSVRfQUREUjVfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX0xJTUlUX0FERFI1X19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSTk9STV9MSU1JVF9BRERSNV9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBMl9BRERSTk9STV9MSU1JVF9BRERSNV9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBMl9BRERSTk9STV9PRkZTRVRfQUREUjUKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fT0ZGU0VUX0FERFI1X19ISV9BRERSX09GRlNFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fT0ZGU0VUX0FERFI1X19ISV9BRERSX09GRlNFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1fT0ZGU0VUX0FERFI1X19ISV9BRERSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vTU1FQTJfQUREUk5PUk1EUkFNX0hPTEVfQ05UTAorI2RlZmluZSBNTUVBMl9BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGODBMCisvL01NRUEyX0FERFJOT1JNR01JX0hPTEVfQ05UTAorI2RlZmluZSBNTUVBMl9BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGODBMCisvL01NRUEyX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkcKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBMl9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorLy9NTUVBMl9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkcKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBMl9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorLy9NTUVBMl9BRERSREVDX0JBTktfQ0ZHCisjZGVmaW5lIE1NRUEyX0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX1NFTF9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMl9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX1NFTF9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX1NFTF9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vTU1FQTJfQUREUkRFQ19NSVNDX0NGRworI2RlZmluZSBNTUVBMl9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMl9BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fUENIX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEyX0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fQ1NfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEyX0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fUENIX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fUENIX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNFMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fQ1NfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fQ1NfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMQorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL01NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUEyX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisvL01NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX0NTMgorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMQorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzBfQUREUl9NQVNLX0NTMDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMwX0FERFJfTUFTS19DUzIzCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMQorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEyX0FERFJERUMwX0FERFJfU0VMMl9DUzAxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0FERFJfU0VMMl9DUzAxX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBMl9BRERSREVDMF9BRERSX1NFTDJfQ1MyMworI2RlZmluZSBNTUVBMl9BRERSREVDMF9BRERSX1NFTDJfQ1MyM19fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyMworI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEyX0FERFJERUMwX1JNX1NFTF9DUzAxCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9DUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMQorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTMAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMxX0JBU0VfQUREUl9DUzEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MyCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTMworI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMgorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMV9BRERSX01BU0tfQ1MwMQorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzFfQUREUl9NQVNLX0NTMjMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyMworI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMQorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyMworI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMQorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyMworI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTJfQUREUkRFQzFfQUREUl9TRUwyX0NTMDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfU0VMMl9DUzAxX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUEyX0FERFJERUMxX0FERFJfU0VMMl9DUzIzCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0FERFJfU0VMMl9DUzIzX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9BRERSX1NFTDJfQ1MyM19fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBMl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEyX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMQorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTJfQUREUkRFQzFfUk1fU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMl9BRERSREVDMV9STV9TRUxfQ1MyMworI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEyX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX0NTMQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMyX0JBU0VfQUREUl9DUzIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MzCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMworI2RlZmluZSBNTUVBMl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMyX0FERFJfTUFTS19DUzAxCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMl9BRERSX01BU0tfQ1MyMworI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTJfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEyX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMl9BRERSREVDMl9BRERSX1NFTDJfQ1MwMQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTJfQUREUkRFQzJfQUREUl9TRUwyX0NTMjMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0FERFJfU0VMMl9DUzIzX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUEyX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyMworI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMl9BRERSREVDMl9STV9TRUxfQ1MwMQorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEyX0FERFJERUMyX1JNX1NFTF9DUzIzCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTJfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MyMworI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEyX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEyX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTAorI2RlZmluZSBNTUVBMl9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMl9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9NTUVBMl9BRERSTk9STUdNSV9HTE9CQUxfQ05UTAorI2RlZmluZSBNTUVBMl9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTJfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMl9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMl9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9NTUVBMl9JT19SRF9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBMl9JT19XUl9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTJfSU9fUkRfQ09NQklORV9GTFVTSAorI2RlZmluZSBNTUVBMl9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfSU9fUkRfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9JT19SRF9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9NTUVBMl9JT19XUl9DT01CSU5FX0ZMVVNICisjZGVmaW5lIE1NRUEyX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9JT19XUl9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL01NRUEyX0lPX0dST1VQX0JVUlNUCisjZGVmaW5lIE1NRUEyX0lPX0dST1VQX0JVUlNUX19SRF9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0lPX0dST1VQX0JVUlNUX19SRF9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEyX0lPX0dST1VQX0JVUlNUX19SRF9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEyX0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEyX0lPX1JEX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9JT19SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUEyX0lPX1dSX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9JT19XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUEyX0lPX1JEX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMl9JT19XUl9QUklfUVVFVUlORworI2RlZmluZSBNTUVBMl9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTJfSU9fUkRfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBMl9JT19XUl9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9JT19XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEyX0lPX1JEX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkcKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTJfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTJfU0RQX0FSQl9EUkFNCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJSRF9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJXUl9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMl9TRFBfQVJCX0RSQU1fX0VPQl9PTl9FWFBJUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfRFJBTV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJSRF9PTl9QUklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJXUl9PTl9QUklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJSRF9PTl9SRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJXUl9PTl9SRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19FT0JfT05fRVhQSVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9EUkFNX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKy8vTU1FQTJfU0RQX0FSQl9HTUkKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19SRFdSX0JVUlNUX0xJTUlUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19FQVJMWV9TVzJXUl9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19FT0JfT05fRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9HTUlfX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0dNSV9fQUxMT1dfQ0hBSU5fQlJFQUtJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19SRFdSX0JVUlNUX0xJTUlUX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9QUklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19FQVJMWV9TVzJXUl9PTl9QUklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9SRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19FQVJMWV9TVzJXUl9PTl9SRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19FT0JfT05fRVhQSVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfR01JX19BTExPV19DSEFJTl9CUkVBS0lOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL01NRUEyX1NEUF9BUkJfRklOQUwKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9GSU5BTF9fRFJBTV9CVVJTVF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19JT19CVVJTVF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9GSU5BTF9fQlVSU1RfTElNSVRfTVVMVElQTElFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19FUlJFVkVOVF9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUEyX1NEUF9BUkJfRklOQUxfX0hBTFRSRVFfT05fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTJfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX1NUUkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19EUkFNX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19JT19CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19CVVJTVF9MSU1JVF9NVUxUSVBMSUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19FUlJFVkVOVF9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19IQUxUUkVRX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfU1RSRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorLy9NTUVBMl9TRFBfRFJBTV9QUklPUklUWQorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMl9TRFBfR01JX1BSSU9SSVRZCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEyX1NEUF9JT19QUklPUklUWQorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBMl9TRFBfQ1JFRElUUworI2RlZmluZSBNTUVBMl9TRFBfQ1JFRElUU19fVEFHX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfU0RQX0NSRURJVFNfX1dSX1JFU1BfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX1NEUF9DUkVESVRTX19SRF9SRVNQX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfU0RQX0NSRURJVFNfX1RBR19MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTJfU0RQX0NSRURJVFNfX1dSX1JFU1BfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgTU1FQTJfU0RQX0NSRURJVFNfX1JEX1JFU1BfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGMDAwMEwKKy8vTU1FQTJfU0RQX1RBR19SRVNFUlZFMAorI2RlZmluZSBNTUVBMl9TRFBfVEFHX1JFU0VSVkUwX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfU0RQX1RBR19SRVNFUlZFMF9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfU0RQX1RBR19SRVNFUlZFMF9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9TRFBfVEFHX1JFU0VSVkUwX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMl9TRFBfVEFHX1JFU0VSVkUwX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMl9TRFBfVEFHX1JFU0VSVkUwX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfVEFHX1JFU0VSVkUwX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBMl9TRFBfVEFHX1JFU0VSVkUxCisjZGVmaW5lIE1NRUEyX1NEUF9UQUdfUkVTRVJWRTFfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9TRFBfVEFHX1JFU0VSVkUxX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfU0RQX1RBR19SRVNFUlZFMV9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9TRFBfVEFHX1JFU0VSVkUxX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX1NEUF9UQUdfUkVTRVJWRTFfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEyX1NEUF9UQUdfUkVTRVJWRTFfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9UQUdfUkVTRVJWRTFfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9UQUdfUkVTRVJWRTFfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEyX1NEUF9WQ0NfUkVTRVJWRTAKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDQ19SRVNFUlZFMF9fVkMwX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9TRFBfVkNDX1JFU0VSVkUwX19WQzJfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDQ19SRVNFUlZFMF9fVkMzX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9TRFBfVkNDX1JFU0VSVkUwX19WQzRfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDM19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL01NRUEyX1NEUF9WQ0NfUkVTRVJWRTEKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDQ19SRVNFUlZFMV9fVkM1X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9TRFBfVkNDX1JFU0VSVkUxX19WQzdfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDQ19SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBMl9TRFBfVkNDX1JFU0VSVkUxX19WQzVfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBMl9TRFBfVkNDX1JFU0VSVkUxX19WQzZfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBMl9TRFBfVkNDX1JFU0VSVkUxX19WQzdfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfVkNDX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBMl9TRFBfVkNEX1JFU0VSVkUwCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9TRFBfVkNEX1JFU0VSVkUwX19WQzFfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDRF9SRVNFUlZFMF9fVkMyX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDM19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDRF9SRVNFUlZFMF9fVkM0X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBMl9TRFBfVkNEX1JFU0VSVkUwX19WQzBfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBMl9TRFBfVkNEX1JFU0VSVkUwX19WQzFfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBMl9TRFBfVkNEX1JFU0VSVkUwX19WQzJfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfVkNEX1JFU0VSVkUwX19WQzNfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBNTUVBMl9TRFBfVkNEX1JFU0VSVkUwX19WQzRfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9NTUVBMl9TRFBfVkNEX1JFU0VSVkUxCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9TRFBfVkNEX1JFU0VSVkUxX19WQzZfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDRF9SRVNFUlZFMV9fVkM3X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX1NEUF9WQ0RfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDRF9SRVNFUlZFMV9fVkM1X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDRF9SRVNFUlZFMV9fVkM2X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDRF9SRVNFUlZFMV9fVkM3X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTJfU0RQX1ZDRF9SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTJfU0RQX1JFUV9DTlRMCisjZGVmaW5lIE1NRUEyX1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9BVE9NSUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX1NEUF9SRVFfQ05UTF9fUkVRX0NIQUlOX09WRVJSSURFX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfU0RQX1JFUV9DTlRMX19JTk5FUl9ET01BSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEyX1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEyX1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfQVRPTUlDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUEyX1NEUF9SRVFfQ05UTF9fUkVRX0NIQUlOX09WRVJSSURFX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUEyX1NEUF9SRVFfQ05UTF9fUkVRX0NIQUlOX09WRVJSSURFX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUEyX1NEUF9SRVFfQ05UTF9fSU5ORVJfRE9NQUlOX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisvL01NRUEyX01JU0MKKyNkZWZpbmUgTU1FQTJfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fUkRfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9EUkFNX1dSX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1JEX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9XUl9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9JT19SRF9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fV1JfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTJfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBMl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTJfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMl9NSVNDX19FQVJMWV9TRFBfT1JJR0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfTUlTQ19fTElOS01HUl9EWU5BTUlDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEyX01JU0NfX0xJTktNR1JfSEFMVF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTJfTUlTQ19fTElOS01HUl9SRUNPTk5FQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBMl9NSVNDX19MSU5LTUdSX0lETEVfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX01JU0NfX0ZBVk9VUl9NSURDSEFJTl9DU19JTl9EUkFNX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTJfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0dNSV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBMl9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9EUkFNX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX01JU0NfX0ZBVk9VUl9MQVNUX0NTX0lOX0dNSV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTJfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9EUkFNX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBMl9NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0dNSV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEyX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9EUkFNX1JEX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9EUkFNX1dSX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEyX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfUkRfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUEyX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfV1JfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUEyX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9JT19SRF9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUEyX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9JT19XUl9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0VBUkxZX1NEUF9PUklHREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0xJTktNR1JfRFlOQU1JQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0xJTktNR1JfSEFMVF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNjAwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0xJTktNR1JfUkVDT05ORUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0xJTktNR1JfSURMRV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0ZBVk9VUl9NSURDSEFJTl9DU19JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0ZBVk9VUl9NSURDSEFJTl9DU19JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0ZBVk9VUl9MQVNUX0NTX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX0ZBVk9VUl9MQVNUX0NTX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEyX0xBVEVOQ1lfU0FNUExJTkcKKyNkZWZpbmUgTU1FQTJfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0lPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9JT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTJfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9BVE9NSUNfUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTJfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX05PUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19OT1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9JT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9JT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9BVE9NSUNfUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfTk9SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9BVE9NSUNfTk9SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZDMDAwTAorI2RlZmluZSBNTUVBMl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGQzAwMDAwTAorLy9NTUVBMl9QRVJGQ09VTlRFUl9MTworI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1FQTJfUEVSRkNPVU5URVJfSEkKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTU1FQTJfUEVSRkNPVU5URVIwX0NGRworI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUEyX1BFUkZDT1VOVEVSMV9DRkcKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBMl9QRVJGQ09VTlRFUl9SU0xUX0NOVEwKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUEyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisvL01NRUEyX0VEQ19DTlQKKyNkZWZpbmUgTU1FQTJfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMl9FRENfQ05UX19EUkFNV1JfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTJfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTJfRURDX0NOVF9fUlJFVF9UQUdNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX1JSRVRfVEFHTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9FRENfQ05UX19XUkVUX1RBR01FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX1dSRVRfVEFHTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfRURDX0NOVF9fRFJBTVJEX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9FRENfQ05UX19EUkFNV1JfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0lPUkRfQ01ETUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTJfRURDX0NOVF9fSU9XUl9DTURNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBMl9FRENfQ05UX19JT1dSX0RBVEFNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX1JSRVRfVEFHTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX1JSRVRfVEFHTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX1dSRVRfVEFHTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX1dSRVRfVEFHTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1SRF9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0RSQU1XUl9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0lPUkRfQ01ETUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0lPV1JfQ01ETUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19DTlRfX0lPV1JfREFUQU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL01NRUEyX0VEQ19DTlQyCisjZGVmaW5lIE1NRUEyX0VEQ19DTlQyX19HTUlSRF9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9FRENfQ05UMl9fR01JUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEyX0VEQ19DTlQyX19HTUlXUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEyX0VEQ19DTlQyX19HTUlSRF9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9FRENfQ05UMl9fR01JV1JfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVJEX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDJfX0dNSVdSX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKy8vTU1FQTJfRFNNX0NOVEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0RSQU1SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBMl9EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0RSQU1XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBMl9EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX1JSRVRfVEFHTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMX19SUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMl9EU01fQ05UTF9fV1JFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX1dSRVRfVEFHTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMl9EU01fQ05UTF9fR01JUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0dNSVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9EU01fQ05UTF9fR01JV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0RSQU1SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0RSQU1SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0RSQU1XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0RSQU1XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX1JSRVRfVEFHTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX1JSRVRfVEFHTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX1dSRVRfVEFHTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX1dSRVRfVEFHTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0dNSVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0dNSVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vTU1FQTJfRFNNX0NOVExBCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19EUkFNV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMl9EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19JT1JEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19JT1dSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMl9EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19EUkFNV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19JT1JEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19JT1JEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19JT1dSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19JT1dSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19HTUlSRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vTU1FQTJfRFNNX0NOVEwyCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBMl9EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19EUkFNV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBMl9EU01fQ05UTDJfX1JSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19XUkVUX1RBR01FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBMl9EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19HTUlSRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBMl9EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19HTUlXUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBMl9EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMl9fSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19EUkFNV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19EUkFNV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19XUkVUX1RBR01FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19XUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19HTUlSRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19HTUlSRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19HTUlXUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19HTUlXUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyX19JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vTU1FQTJfRFNNX0NOVEwyQQorI2RlZmluZSBNTUVBMl9EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBMl9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0lPUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBMl9EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0lPV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBMl9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0dNSVJEX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTJfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBMl9EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0RSQU1XUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0lPUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0lPUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0lPV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0lPV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0dNSVJEX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEyX0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL01NRUEyX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9DR1RUX0NMS19DVFJMX19TUEFSRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBMl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU1BBUkUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBMl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMl9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU1BBUkUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU1BBUkUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzgwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTJfRURDX01PREUKKyNkZWZpbmUgTU1FQTJfRURDX01PREVfX0NPVU5UX0ZFRF9PVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBMl9FRENfTU9ERV9fR0FURV9GVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEyX0VEQ19NT0RFX19ERURfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTJfRURDX01PREVfX1BST1BfRkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBMl9FRENfTU9ERV9fQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEyX0VEQ19NT0RFX19DT1VOVF9GRURfT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19NT0RFX19HQVRFX0ZVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19NT0RFX19ERURfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19NT0RFX19QUk9QX0ZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUEyX0VEQ19NT0RFX19CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEyX0VSUl9TVEFUVVMKKyNkZWZpbmUgTU1FQTJfRVJSX1NUQVRVU19fU0RQX1JEUlNQX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEyX0VSUl9TVEFUVVNfX1NEUF9XUlJTUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVNUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTJfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFQQVJJVFlfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEyX0VSUl9TVEFUVVNfX0NMRUFSX0VSUk9SX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBMl9FUlJfU1RBVFVTX19CVVNZX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRVJSX1NUQVRVU19fRlVFX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEyX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEyX0VSUl9TVEFUVVNfX1NEUF9XUlJTUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEyX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEyX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBUEFSSVRZX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUEyX0VSUl9TVEFUVVNfX0NMRUFSX0VSUk9SX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUEyX0VSUl9TVEFUVVNfX0JVU1lfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEyX0VSUl9TVEFUVVNfX0ZVRV9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL01NRUEyX01JU0MyCisjZGVmaW5lIE1NRUEyX01JU0MyX19DU0dST1VQX1NXQVBfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0dNSV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTJfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX01JU0MyX19DU0dSUF9CVVJTVF9MSU1JVF9EQVRBX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBMl9NSVNDMl9fSU9fUkRXUl9QUklPUklUWV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfTUlTQzJfX1JSRVRfU1dBUF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEyX01JU0MyX19DU0dST1VQX1NXQVBfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEyX01JU0MyX19DU0dST1VQX1NXQVBfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEyX01JU0MyX19DU0dSUF9CVVJTVF9MSU1JVF9EQVRBX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0NMCisjZGVmaW5lIE1NRUEyX01JU0MyX19DU0dSUF9CVVJTVF9MSU1JVF9EQVRBX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGODBMCisjZGVmaW5lIE1NRUEyX01JU0MyX19JT19SRFdSX1BSSU9SSVRZX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEyX01JU0MyX19SUkVUX1NXQVBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL01NRUEyX0FERFJERUNfU0VMRUNUCisjZGVmaW5lIE1NRUEyX0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBMl9BRERSREVDX1NFTEVDVF9fRFJBTV9BRERSREVDX0NIQU5ORUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTJfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEyX0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBMl9BRERSREVDX1NFTEVDVF9fRFJBTV9BRERSREVDX0NIQU5ORUxfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBMl9BRERSREVDX1NFTEVDVF9fRFJBTV9BRERSREVDX0NIQU5ORUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBNTUVBMl9BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBNTUVBMl9BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorLy9NTUVBMl9FRENfQ05UMworI2RlZmluZSBNTUVBMl9FRENfQ05UM19fRFJBTVJEX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDNfX0RSQU1XUl9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEyX0VEQ19DTlQzX19JT1JEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBMl9FRENfQ05UM19fSU9XUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDNfX0lPV1JfREFUQU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEyX0VEQ19DTlQzX19HTUlSRF9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBMl9FRENfQ05UM19fR01JV1JfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDNfX0RSQU1SRF9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDNfX0RSQU1XUl9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDNfX0lPUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDNfX0lPV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDNfX0lPV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDNfX0dNSVJEX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTJfRURDX0NOVDNfX0dNSVdSX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2VhX21tZWFkZWMzCisvL01NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEzX0RSQU1fUkRfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTNfRFJBTV9XUl9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBM19EUkFNX1JEX0xBWlkKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19EUkFNX1JEX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTNfRFJBTV9XUl9MQVpZCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfTEFaWV9fR1JPVVAwX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0xBWllfX0dST1VQMV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9MQVpZX19HUk9VUDJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfTEFaWV9fR1JPVVAzX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfTEFaWV9fR1JPVVAwX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfTEFaWV9fR1JPVVAxX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfTEFaWV9fR1JPVVAyX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfTEFaWV9fR1JPVVAzX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUEzX0RSQU1fUkRfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9NTUVBM19EUkFNX1dSX0NBTV9DTlRMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vTU1FQTNfRFJBTV9QQUdFX0JVUlNUCisjZGVmaW5lIE1NRUEzX0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEzX0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEzX0RSQU1fUkRfUFJJX0FHRQorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTNfRFJBTV9XUl9QUklfQUdFCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBM19EUkFNX1JEX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBM19EUkFNX1dSX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBM19EUkFNX1JEX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTNfRFJBTV9XUl9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEzX0RSQU1fUkRfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBM19EUkFNX1dSX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTNfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBM19HTUlfUkRfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBM19HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTNfR01JX1dSX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEzX0dNSV9SRF9MQVpZCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19HTUlfUkRfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUEzX0dNSV9XUl9MQVpZCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19HTUlfV1JfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUEzX0dNSV9SRF9DQU1fQ05UTAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBM19HTUlfUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTNfR01JX1dSX0NBTV9DTlRMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBM19HTUlfUEFHRV9CVVJTVAorI2RlZmluZSBNTUVBM19HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19HTUlfUkRfUFJJX0FHRQorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTNfR01JX1dSX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUEzX0dNSV9SRF9QUklfUVVFVUlORworI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTNfR01JX1dSX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBM19HTUlfUkRfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBM19HTUlfV1JfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19BRERSTk9STV9CQVNFX0FERFIwCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjBfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIwX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIwX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIwX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBM19BRERSTk9STV9MSU1JVF9BRERSMAorI2RlZmluZSBNTUVBM19BRERSTk9STV9MSU1JVF9BRERSMF9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjBfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFIwX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFIwX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEzX0FERFJOT1JNX0JBU0VfQUREUjEKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMV9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEzX0FERFJOT1JNX0xJTUlUX0FERFIxCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFIxX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSTk9STV9MSU1JVF9BRERSMV9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjFfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjFfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFIxCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSTk9STV9PRkZTRVRfQUREUjFfX0hJX0FERFJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL01NRUEzX0FERFJOT1JNX0JBU0VfQUREUjIKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMl9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEzX0FERFJOT1JNX0xJTUlUX0FERFIyCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFIyX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSTk9STV9MSU1JVF9BRERSMl9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjJfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjJfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSMworI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIzX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFIzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjMKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjNfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFIzX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSTk9STV9MSU1JVF9BRERSM19fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9MSU1JVF9BRERSM19fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBM19BRERSTk9STV9PRkZTRVRfQUREUjMKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX09GRlNFVF9BRERSM19fSElfQUREUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI0X19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI0X19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjQKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjRfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFI0X19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSTk9STV9MSU1JVF9BRERSNF9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9MSU1JVF9BRERSNF9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBM19BRERSTk9STV9CQVNFX0FERFI1CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjVfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI1X19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0JBU0VfQUREUjVfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI1X19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI1X19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9CQVNFX0FERFI1X19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBM19BRERSTk9STV9MSU1JVF9BRERSNQorI2RlZmluZSBNTUVBM19BRERSTk9STV9MSU1JVF9BRERSNV9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fTElNSVRfQUREUjVfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFI1X19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNX0xJTUlUX0FERFI1X19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUEzX0FERFJOT1JNX09GRlNFVF9BRERSNQorI2RlZmluZSBNTUVBM19BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1fT0ZGU0VUX0FERFI1X19ISV9BRERSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9NTUVBM19BRERSTk9STURSQU1fSE9MRV9DTlRMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkY4MEwKKy8vTU1FQTNfQUREUk5PUk1HTUlfSE9MRV9DTlRMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkY4MEwKKy8vTU1FQTNfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGRworI2RlZmluZSBNTUVBM19BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisvL01NRUEzX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGRworI2RlZmluZSBNTUVBM19BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisvL01NRUEzX0FERFJERUNfQkFOS19DRkcKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX1NFTF9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEzX0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBM19BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBM19BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBM19BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NTUVBM19BRERSREVDX01JU0NfQ0ZHCisjZGVmaW5lIE1NRUEzX0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEzX0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ19NSVNDX0NGR19fQ1NfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0UwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDMDAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMgorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0CisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNQorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfUEMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMgorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRQorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBM19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorLy9NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMgorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMworI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9QQworI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9QQzIKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL01NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEUKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMAorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMwX0JBU0VfQUREUl9DUzEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMF9CQVNFX0FERFJfQ1MyCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTMworI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMgorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMF9BRERSX01BU0tfQ1MwMQorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX0NTMjMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyMworI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMQorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyMworI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMQorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyMworI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTNfQUREUkRFQzBfQUREUl9TRUwyX0NTMDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfU0VMMl9DUzAxX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUEzX0FERFJERUMwX0FERFJfU0VMMl9DUzIzCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0FERFJfU0VMMl9DUzIzX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMF9BRERSX1NFTDJfQ1MyM19fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBM19BRERSREVDMF9DT0xfU0VMX0xPX0NTMDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEzX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMQorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMjMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTNfQUREUkRFQzBfUk1fU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBM19BRERSREVDMF9STV9TRUxfQ1MyMworI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEzX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMQorI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMxX0JBU0VfQUREUl9DUzIKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MzCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMAorI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMworI2RlZmluZSBNTUVBM19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMxX0FERFJfTUFTS19DUzAxCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMV9BRERSX01BU0tfQ1MyMworI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBM19BRERSREVDMV9BRERSX1NFTDJfQ1MwMQorI2RlZmluZSBNTUVBM19BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTNfQUREUkRFQzFfQUREUl9TRUwyX0NTMjMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0FERFJfU0VMMl9DUzIzX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUEzX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMQorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMjMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyMworI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBM19BRERSREVDMV9STV9TRUxfQ1MwMQorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEzX0FERFJERUMxX1JNX1NFTF9DUzIzCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MyMworI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMl9CQVNFX0FERFJfQ1MxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMgorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMQorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzIKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX0NTMDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMyX0FERFJfTUFTS19DUzIzCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBM19BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMQorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEzX0FERFJERUMyX0FERFJfU0VMMl9DUzAxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0FERFJfU0VMMl9DUzAxX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBM19BRERSREVDMl9BRERSX1NFTDJfQ1MyMworI2RlZmluZSBNTUVBM19BRERSREVDMl9BRERSX1NFTDJfQ1MyM19fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyMworI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBM19BRERSREVDMl9DT0xfU0VMX0hJX0NTMDEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEzX0FERFJERUMyX1JNX1NFTF9DUzAxCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9DUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9DUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBM19BRERSREVDMl9STV9TRUxfU0VDQ1MwMQorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTNfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTNfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBM19BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL01NRUEzX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBM19BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEzX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUEzX0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL01NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBM19JT19SRF9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBM19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBM19JT19SRF9DT01CSU5FX0ZMVVNICisjZGVmaW5lIE1NRUEzX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19JT19SRF9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1JEX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL01NRUEzX0lPX1dSX0NPTUJJTkVfRkxVU0gKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0lPX1dSX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vTU1FQTNfSU9fR1JPVVBfQlVSU1QKKyNkZWZpbmUgTU1FQTNfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0lPX0dST1VQX0JVUlNUX19SRF9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTNfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTNfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTNfSU9fUkRfUFJJX0FHRQorI2RlZmluZSBNTUVBM19JT19SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19JT19SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19JT19SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTNfSU9fV1JfUFJJX0FHRQorI2RlZmluZSBNTUVBM19JT19XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19JT19XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19JT19XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTNfSU9fUkRfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEzX0lPX1dSX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBM19JT19SRF9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19JT19SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUEzX0lPX1dSX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19JT19XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBM19JT19XUl9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19JT19SRF9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19JT19XUl9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBM19JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBM19TRFBfQVJCX0RSQU0KKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJSRF9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRFJBTV9fRU9CX09OX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9EUkFNX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX0VPQl9PTl9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0RSQU1fX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorLy9NTUVBM19TRFBfQVJCX0dNSQorI2RlZmluZSBNTUVBM19TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBM19TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfR01JX19FQVJMWV9TVzJXUl9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX0VPQl9PTl9FWFBJUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0dNSV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfR01JX19BTExPV19DSEFJTl9CUkVBS0lOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX0VPQl9PTl9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9HTUlfX0FMTE9XX0NIQUlOX0JSRUFLSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vTU1FQTNfU0RQX0FSQl9GSU5BTAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0ZJTkFMX19EUkFNX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX0lPX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBM19TRFBfQVJCX0ZJTkFMX19CVVJTVF9MSU1JVF9NVUxUSVBMSUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBM19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBM19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX0VSUkVWRU5UX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTNfU0RQX0FSQl9GSU5BTF9fSEFMVFJFUV9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBM19TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfU1RSRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX0RSQU1fQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX0lPX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX0JVUlNUX0xJTUlUX01VTFRJUExJRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX0VSUkVWRU5UX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX0hBTFRSRVFfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9TVFJFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisvL01NRUEzX1NEUF9EUkFNX1BSSU9SSVRZCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEzX1NEUF9HTUlfUFJJT1JJVFkKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTNfU0RQX0lPX1BSSU9SSVRZCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUEzX1NEUF9DUkVESVRTCisjZGVmaW5lIE1NRUEzX1NEUF9DUkVESVRTX19UQUdfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19TRFBfQ1JFRElUU19fV1JfUkVTUF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfU0RQX0NSRURJVFNfX1JEX1JFU1BfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19TRFBfQ1JFRElUU19fVEFHX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBM19TRFBfQ1JFRElUU19fV1JfUkVTUF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNTUVBM19TRFBfQ1JFRElUU19fUkRfUkVTUF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0YwMDAwTAorLy9NTUVBM19TRFBfVEFHX1JFU0VSVkUwCisjZGVmaW5lIE1NRUEzX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19TRFBfVEFHX1JFU0VSVkUwX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfU0RQX1RBR19SRVNFUlZFMF9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19TRFBfVEFHX1JFU0VSVkUwX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEzX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9UQUdfUkVTRVJWRTBfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9UQUdfUkVTRVJWRTBfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUEzX1NEUF9UQUdfUkVTRVJWRTEKKyNkZWZpbmUgTU1FQTNfU0RQX1RBR19SRVNFUlZFMV9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX1NEUF9UQUdfUkVTRVJWRTFfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19TRFBfVEFHX1JFU0VSVkUxX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX1NEUF9UQUdfUkVTRVJWRTFfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfU0RQX1RBR19SRVNFUlZFMV9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTNfU0RQX1RBR19SRVNFUlZFMV9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX1RBR19SRVNFUlZFMV9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX1RBR19SRVNFUlZFMV9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMAorI2RlZmluZSBNTUVBM19TRFBfVkNDX1JFU0VSVkUwX19WQzBfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMF9fVkMxX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19TRFBfVkNDX1JFU0VSVkUwX19WQzNfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0NfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMF9fVkMwX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMF9fVkMxX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMF9fVkMyX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMF9fVkMzX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMF9fVkM0X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMQorI2RlZmluZSBNTUVBM19TRFBfVkNDX1JFU0VSVkUxX19WQzVfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDQ19SRVNFUlZFMV9fVkM2X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDN19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19TRFBfVkNDX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0NfUkVTRVJWRTFfX1ZDN19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0NfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUEzX1NEUF9WQ0RfUkVTRVJWRTAKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDRF9SRVNFUlZFMF9fVkMwX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19TRFBfVkNEX1JFU0VSVkUwX19WQzJfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDRF9SRVNFUlZFMF9fVkMzX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19TRFBfVkNEX1JFU0VSVkUwX19WQzRfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUEzX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDM19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0RfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL01NRUEzX1NEUF9WQ0RfUkVTRVJWRTEKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDRF9SRVNFUlZFMV9fVkM1X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19TRFBfVkNEX1JFU0VSVkUxX19WQzdfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfU0RQX1ZDRF9SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBM19TRFBfVkNEX1JFU0VSVkUxX19WQzVfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBM19TRFBfVkNEX1JFU0VSVkUxX19WQzZfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBM19TRFBfVkNEX1JFU0VSVkUxX19WQzdfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBM19TRFBfVkNEX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBM19TRFBfUkVRX0NOVEwKKyNkZWZpbmUgTU1FQTNfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX0FUT01JQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX1NEUF9SRVFfQ05UTF9fUkVRX0NIQUlOX09WRVJSSURFX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19TRFBfUkVRX0NOVExfX0lOTkVSX0RPTUFJTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTNfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTNfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9BVE9NSUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTNfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTNfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTNfU0RQX1JFUV9DTlRMX19JTk5FUl9ET01BSU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vTU1FQTNfTUlTQworI2RlZmluZSBNTUVBM19NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9SRF9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fV1JfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfUkRfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1dSX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1JEX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX01JU0NfX1JFTEFUSVZFX1BSSV9JTl9JT19XUl9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBM19NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEzX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBM19NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEzX01JU0NfX0VBUkxZX1NEUF9PUklHREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19NSVNDX19MSU5LTUdSX0RZTkFNSUNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTNfTUlTQ19fTElOS01HUl9IQUxUX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBM19NSVNDX19MSU5LTUdSX1JFQ09OTkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUEzX01JU0NfX0xJTktNR1JfSURMRV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBM19NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUEzX01JU0NfX0ZBVk9VUl9MQVNUX0NTX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBM19NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUEzX01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTNfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fUkRfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fV1JfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9SRF9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9XUl9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1JEX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1dSX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRUFSTFlfU0RQX09SSUdEQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fTElOS01HUl9EWU5BTUlDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fTElOS01HUl9IQUxUX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2MDAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fTElOS01HUl9SRUNPTk5FQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4MDAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fTElOS01HUl9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTNfTEFURU5DWV9TQU1QTElORworI2RlZmluZSBNTUVBM19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0lPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBM19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBM19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfTk9SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX05PUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0lPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0lPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19OT1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19OT1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkMwMDBMCisjZGVmaW5lIE1NRUEzX0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZDMDAwMDBMCisvL01NRUEzX1BFUkZDT1VOVEVSX0xPCisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTUVBM19QRVJGQ09VTlRFUl9ISQorI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NTUVBM19QRVJGQ09VTlRFUjBfQ0ZHCisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTNfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUEzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTAorI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUEzX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKy8vTU1FQTNfRURDX0NOVAorI2RlZmluZSBNTUVBM19FRENfQ05UX19EUkFNUkRfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEzX0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBM19FRENfQ05UX19EUkFNV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBM19FRENfQ05UX19SUkVUX1RBR01FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fUlJFVF9UQUdNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0VEQ19DTlRfX1dSRVRfVEFHTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fV1JFVF9UQUdNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19FRENfQ05UX19EUkFNUkRfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0VEQ19DTlRfX0RSQU1XUl9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fSU9SRF9DTURNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBM19FRENfQ05UX19JT1dSX0NNRE1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUEzX0VEQ19DTlRfX0lPV1JfREFUQU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fUlJFVF9UQUdNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fUlJFVF9UQUdNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fV1JFVF9UQUdNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fV1JFVF9UQUdNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVJEX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fRFJBTVdSX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fSU9SRF9DTURNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fSU9XUl9DTURNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX0NOVF9fSU9XUl9EQVRBTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vTU1FQTNfRURDX0NOVDIKKyNkZWZpbmUgTU1FQTNfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0VEQ19DTlQyX19HTUlSRF9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JV1JfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTNfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JV1JfREFUQU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTNfRURDX0NOVDJfX0dNSVJEX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0VEQ19DTlQyX19HTUlXUl9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JUkRfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JV1JfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JV1JfREFUQU1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JUkRfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBM19FRENfQ05UMl9fR01JV1JfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorLy9NTUVBM19EU01fQ05UTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExfX0RSQU1SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBM19EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fUlJFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExfX1JSRVRfVEFHTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMX19XUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19EU01fQ05UTF9fV1JFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExfX0dNSVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fR01JV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBM19EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fUlJFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fUlJFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fV1JFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fV1JFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fR01JUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fR01JUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fR01JV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fR01JV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fR01JV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTF9fR01JV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9NTUVBM19EU01fQ05UTEEKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExBX19JT1dSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9NTUVBM19EU01fQ05UTDIKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyX19EUkFNV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX1dSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyX19XUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyX19JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX1JSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX1JSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX1dSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX1dSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJfX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9NTUVBM19EU01fQ05UTDJBCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMkFfX0RSQU1XUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBM19EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBM19EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMkFfX0lPV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBM19EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBM19EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUEzX0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTNfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vTU1FQTNfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0NHVFRfQ0xLX0NUUkxfX1NQQVJFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUEzX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTNfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TUEFSRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUEzX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTNfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEzX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTNfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TUEFSRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TUEFSRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ODAwMDAwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBM19DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBM19FRENfTU9ERQorI2RlZmluZSBNTUVBM19FRENfTU9ERV9fQ09VTlRfRkVEX09VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUEzX0VEQ19NT0RFX19HQVRFX0ZVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTNfRURDX01PREVfX0RFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBM19FRENfTU9ERV9fUFJPUF9GRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUEzX0VEQ19NT0RFX19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTNfRURDX01PREVfX0NPVU5UX0ZFRF9PVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX01PREVfX0dBVEVfRlVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX01PREVfX0RFRF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX01PREVfX1BST1BfRkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTNfRURDX01PREVfX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTNfRVJSX1NUQVRVUworI2RlZmluZSBNTUVBM19FUlJfU1RBVFVTX19TRFBfUkRSU1BfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTNfRVJSX1NUQVRVU19fU0RQX1dSUlNQX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBM19FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVBBUklUWV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTNfRVJSX1NUQVRVU19fQ0xFQVJfRVJST1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUEzX0VSUl9TVEFUVVNfX0JVU1lfT05fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19FUlJfU1RBVFVTX19GVUVfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTNfRVJSX1NUQVRVU19fU0RQX1JEUlNQX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTNfRVJSX1NUQVRVU19fU0RQX1dSUlNQX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTNfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFTVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTNfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFQQVJJVFlfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTNfRVJSX1NUQVRVU19fQ0xFQVJfRVJST1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTNfRVJSX1NUQVRVU19fQlVTWV9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTNfRVJSX1NUQVRVU19fRlVFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vTU1FQTNfTUlTQzIKKyNkZWZpbmUgTU1FQTNfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9EUkFNX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX01JU0MyX19DU0dST1VQX1NXQVBfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBM19NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUEzX01JU0MyX19JT19SRFdSX1BSSU9SSVRZX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19NSVNDMl9fUlJFVF9TV0FQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTNfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTNfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTNfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3Q0wKKyNkZWZpbmUgTU1FQTNfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEY4MEwKKyNkZWZpbmUgTU1FQTNfTUlTQzJfX0lPX1JEV1JfUFJJT1JJVFlfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTNfTUlTQzJfX1JSRVRfU1dBUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vTU1FQTNfQUREUkRFQ19TRUxFQ1QKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUEzX0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBM19BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTNfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUEzX0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUEzX0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIE1NRUEzX0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIE1NRUEzX0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjgwMDBMCisvL01NRUEzX0VEQ19DTlQzCisjZGVmaW5lIE1NRUEzX0VEQ19DTlQzX19EUkFNUkRfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBM19FRENfQ05UM19fRFJBTVdSX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTNfRURDX0NOVDNfX0lPUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUEzX0VEQ19DTlQzX19JT1dSX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBM19FRENfQ05UM19fSU9XUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTNfRURDX0NOVDNfX0dNSVJEX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUEzX0VEQ19DTlQzX19HTUlXUl9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBM19FRENfQ05UM19fRFJBTVJEX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBM19FRENfQ05UM19fRFJBTVdSX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBM19FRENfQ05UM19fSU9SRF9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBM19FRENfQ05UM19fSU9XUl9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBM19FRENfQ05UM19fSU9XUl9EQVRBTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBM19FRENfQ05UM19fR01JUkRfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBM19FRENfQ05UM19fR01JV1JfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZWFfbW1lYWRlYzQKKy8vTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTRfRFJBTV9SRF9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNF9EUkFNX1dSX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE0X0RSQU1fUkRfTEFaWQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorLy9NTUVBNF9EUkFNX1dSX0xBWlkKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9EUkFNX1dSX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTRfRFJBTV9SRF9DQU1fQ05UTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL01NRUE0X0RSQU1fV1JfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9NTUVBNF9EUkFNX1BBR0VfQlVSU1QKKyNkZWZpbmUgTU1FQTRfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTRfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTRfRFJBTV9SRF9QUklfQUdFCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBNF9EUkFNX1dSX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUE0X0RSQU1fUkRfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE0X0RSQU1fV1JfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE0X0RSQU1fUkRfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNF9EUkFNX1dSX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTRfRFJBTV9SRF9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE0X0RSQU1fV1JfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNF9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE0X0dNSV9SRF9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNF9HTUlfV1JfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBNF9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTRfR01JX1JEX0xBWlkKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9HTUlfUkRfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTRfR01JX1dSX0xBWlkKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9HTUlfV1JfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTRfR01JX1JEX0NBTV9DTlRMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfR01JX1JEX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBNF9HTUlfV1JfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTRfR01JX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9HTUlfV1JfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUE0X0dNSV9QQUdFX0JVUlNUCisjZGVmaW5lIE1NRUE0X0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0dNSV9SRF9QUklfQUdFCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBNF9HTUlfV1JfUFJJX0FHRQorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTRfR01JX1JEX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNF9HTUlfV1JfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE0X0dNSV9SRF9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE0X0dNSV9XUl9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE0X0dNSV9SRF9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE0X0dNSV9XUl9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0FERFJOT1JNX0JBU0VfQUREUjAKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMF9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIwCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIwX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9MSU1JVF9BRERSMF9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjBfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjBfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMQorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIxX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjEKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjFfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIxX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSTk9STV9MSU1JVF9BRERSMV9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9MSU1JVF9BRERSMV9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNF9BRERSTk9STV9PRkZTRVRfQUREUjEKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMgorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIyX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjIKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjJfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIyX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSTk9STV9MSU1JVF9BRERSMl9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9MSU1JVF9BRERSMl9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNF9BRERSTk9STV9CQVNFX0FERFIzCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjNfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFIzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNF9BRERSTk9STV9MSU1JVF9BRERSMworI2RlZmluZSBNTUVBNF9BRERSTk9STV9MSU1JVF9BRERSM19fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjNfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIzX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFIzX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSMworI2RlZmluZSBNTUVBNF9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9NTUVBNF9BRERSTk9STV9CQVNFX0FERFI0CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjRfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjRfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI0X19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNF9BRERSTk9STV9MSU1JVF9BRERSNAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9MSU1JVF9BRERSNF9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjRfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFI0X19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFI0X19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE0X0FERFJOT1JNX0JBU0VfQUREUjUKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSNV9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fQkFTRV9BRERSNV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0JBU0VfQUREUjVfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE0X0FERFJOT1JNX0xJTUlUX0FERFI1CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX0xJTUlUX0FERFI1X19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9MSU1JVF9BRERSNV9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjVfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1fTElNSVRfQUREUjVfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTRfQUREUk5PUk1fT0ZGU0VUX0FERFI1CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL01NRUE0X0FERFJOT1JNRFJBTV9IT0xFX0NOVEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBNF9BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjgwTAorLy9NTUVBNF9BRERSTk9STUdNSV9IT0xFX0NOVEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBNF9BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjgwTAorLy9NTUVBNF9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKy8vTU1FQTRfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHCisjZGVmaW5lIE1NRUE0X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKy8vTU1FQTRfQUREUkRFQ19CQU5LX0NGRworI2RlZmluZSBNTUVBNF9BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE0X0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL01NRUE0X0FERFJERUNfTUlTQ19DRkcKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19NSVNDX0NGR19fUENIX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNF9BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNF9BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRTAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL01NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMworI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1CisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQworI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9NTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMQorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE0X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisvL01NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0CisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1CisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMgorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRQorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNF9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorLy9NTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX0NTMQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzIKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MzCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMworI2RlZmluZSBNTUVBNF9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMwX0FERFJfTUFTS19DUzAxCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMF9BRERSX01BU0tfQ1MyMworI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNF9BRERSREVDMF9BRERSX1NFTDJfQ1MwMQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTRfQUREUkRFQzBfQUREUl9TRUwyX0NTMjMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0FERFJfU0VMMl9DUzIzX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUE0X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyMworI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNF9BRERSREVDMF9STV9TRUxfQ1MwMQorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE0X0FERFJERUMwX1JNX1NFTF9DUzIzCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTRfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MyMworI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMV9CQVNFX0FERFJfQ1MxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX0NTMgorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMQorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzIKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzFfQUREUl9NQVNLX0NTMDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMxX0FERFJfTUFTS19DUzIzCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMQorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE0X0FERFJERUMxX0FERFJfU0VMMl9DUzAxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0FERFJfU0VMMl9DUzAxX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBNF9BRERSREVDMV9BRERSX1NFTDJfQ1MyMworI2RlZmluZSBNTUVBNF9BRERSREVDMV9BRERSX1NFTDJfQ1MyM19fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyMworI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE0X0FERFJERUMxX1JNX1NFTF9DUzAxCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9DUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9DUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMQorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTMAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMl9CQVNFX0FERFJfQ1MyCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTMworI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMgorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMl9BRERSX01BU0tfQ1MwMQorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzJfQUREUl9NQVNLX0NTMjMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE0X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNF9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyMworI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMQorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyMworI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMQorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyMworI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTRfQUREUkRFQzJfQUREUl9TRUwyX0NTMDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfU0VMMl9DUzAxX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUE0X0FERFJERUMyX0FERFJfU0VMMl9DUzIzCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0FERFJfU0VMMl9DUzIzX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9BRERSX1NFTDJfQ1MyM19fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBNF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE0X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMQorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTRfQUREUkRFQzJfUk1fU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNF9BRERSREVDMl9STV9TRUxfQ1MyMworI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNF9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNF9BRERSTk9STURSQU1fR0xPQkFMX0NOVEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vTU1FQTRfQUREUk5PUk1HTUlfR0xPQkFMX0NOVEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE0X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTRfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBNF9JT19XUl9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE0X0lPX1JEX0NPTUJJTkVfRkxVU0gKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fUkRfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vTU1FQTRfSU9fV1JfQ09NQklORV9GTFVTSAorI2RlZmluZSBNTUVBNF9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfSU9fV1JfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9JT19XUl9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9NTUVBNF9JT19HUk9VUF9CVVJTVAorI2RlZmluZSBNTUVBNF9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNF9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNF9JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNF9JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNF9JT19SRF9QUklfQUdFCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBNF9JT19XUl9QUklfQUdFCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBNF9JT19SRF9QUklfUVVFVUlORworI2RlZmluZSBNTUVBNF9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTRfSU9fV1JfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE0X0lPX1JEX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTRfSU9fV1JfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNF9JT19SRF9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE0X0lPX1dSX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE0X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE0X1NEUF9BUkJfRFJBTQorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJXUl9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9EUkFNX19FT0JfT05fRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0RSQU1fX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fRU9CX09OX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRFJBTV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisvL01NRUE0X1NEUF9BUkJfR01JCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfR01JX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fRU9CX09OX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfR01JX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9HTUlfX0FMTE9XX0NIQUlOX0JSRUFLSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fRU9CX09OX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0dNSV9fQUxMT1dfQ0hBSU5fQlJFQUtJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9NTUVBNF9TRFBfQVJCX0ZJTkFMCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRklOQUxfX0RSQU1fQlVSU1RfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fSU9fQlVSU1RfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRklOQUxfX0JVUlNUX0xJTUlUX01VTFRJUExJRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fRVJSRVZFTlRfT05fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNF9TRFBfQVJCX0ZJTkFMX19IQUxUUkVRX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE0X1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9TVFJFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fRFJBTV9CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fSU9fQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fQlVSU1RfTElNSVRfTVVMVElQTElFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fRVJSRVZFTlRfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fSEFMVFJFUV9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX1NUUkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKy8vTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFkKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTRfU0RQX0dNSV9QUklPUklUWQorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNF9TRFBfSU9fUFJJT1JJVFkKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTRfU0RQX0NSRURJVFMKKyNkZWZpbmUgTU1FQTRfU0RQX0NSRURJVFNfX1RBR19MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X1NEUF9DUkVESVRTX19XUl9SRVNQX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9TRFBfQ1JFRElUU19fUkRfUkVTUF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X1NEUF9DUkVESVRTX19UQUdfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE0X1NEUF9DUkVESVRTX19XUl9SRVNQX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIE1NRUE0X1NEUF9DUkVESVRTX19SRF9SRVNQX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisvL01NRUE0X1NEUF9UQUdfUkVTRVJWRTAKKyNkZWZpbmUgTU1FQTRfU0RQX1RBR19SRVNFUlZFMF9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X1NEUF9UQUdfUkVTRVJWRTBfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9TRFBfVEFHX1JFU0VSVkUwX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X1NEUF9UQUdfUkVTRVJWRTBfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfU0RQX1RBR19SRVNFUlZFMF9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTRfU0RQX1RBR19SRVNFUlZFMF9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX1RBR19SRVNFUlZFMF9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX1RBR19SRVNFUlZFMF9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTRfU0RQX1RBR19SRVNFUlZFMQorI2RlZmluZSBNTUVBNF9TRFBfVEFHX1JFU0VSVkUxX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfU0RQX1RBR19SRVNFUlZFMV9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X1NEUF9UQUdfUkVTRVJWRTFfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfU0RQX1RBR19SRVNFUlZFMV9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9TRFBfVEFHX1JFU0VSVkUxX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNF9TRFBfVEFHX1JFU0VSVkUxX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNF9TRFBfVEFHX1JFU0VSVkUxX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfVEFHX1JFU0VSVkUxX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNF9TRFBfVkNDX1JFU0VSVkUwCisjZGVmaW5lIE1NRUE0X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9TRFBfVkNDX1JFU0VSVkUwX19WQzFfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDQ19SRVNFUlZFMF9fVkMyX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDM19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDQ19SRVNFUlZFMF9fVkM0X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9TRFBfVkNDX1JFU0VSVkUwX19WQzBfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBNF9TRFBfVkNDX1JFU0VSVkUwX19WQzFfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBNF9TRFBfVkNDX1JFU0VSVkUwX19WQzJfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfVkNDX1JFU0VSVkUwX19WQzNfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBNTUVBNF9TRFBfVkNDX1JFU0VSVkUwX19WQzRfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9NTUVBNF9TRFBfVkNDX1JFU0VSVkUxCisjZGVmaW5lIE1NRUE0X1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9TRFBfVkNDX1JFU0VSVkUxX19WQzZfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDQ19SRVNFUlZFMV9fVkM3X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X1NEUF9WQ0NfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDQ19SRVNFUlZFMV9fVkM1X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDQ19SRVNFUlZFMV9fVkM2X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDQ19SRVNFUlZFMV9fVkM3X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDQ19SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMAorI2RlZmluZSBNTUVBNF9TRFBfVkNEX1JFU0VSVkUwX19WQzBfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMF9fVkMxX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9TRFBfVkNEX1JFU0VSVkUwX19WQzNfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMF9fVkMwX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMF9fVkMxX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMF9fVkMyX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMF9fVkMzX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMF9fVkM0X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMQorI2RlZmluZSBNTUVBNF9TRFBfVkNEX1JFU0VSVkUxX19WQzVfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfU0RQX1ZDRF9SRVNFUlZFMV9fVkM2X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDN19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9TRFBfVkNEX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE0X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUE0X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUE0X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDN19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUE0X1NEUF9WQ0RfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE0X1NEUF9SRVFfQ05UTAorI2RlZmluZSBNTUVBNF9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfQVRPTUlDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X1NEUF9SRVFfQ05UTF9fSU5ORVJfRE9NQUlOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNF9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNF9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX0FUT01JQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNF9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNF9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNF9TRFBfUkVRX0NOVExfX0lOTkVSX0RPTUFJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorLy9NTUVBNF9NSVNDCisjZGVmaW5lIE1NRUE0X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9EUkFNX1JEX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9XUl9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9SRF9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfV1JfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fUkRfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1dSX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE0X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTRfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE0X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTRfTUlTQ19fRUFSTFlfU0RQX09SSUdEQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X01JU0NfX0xJTktNR1JfRFlOQU1JQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNF9NSVNDX19MSU5LTUdSX0hBTFRfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE0X01JU0NfX0xJTktNR1JfUkVDT05ORUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTRfTUlTQ19fTElOS01HUl9JRExFX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE0X01JU0NfX0ZBVk9VUl9NSURDSEFJTl9DU19JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTRfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE0X01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTRfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNF9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9SRF9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9XUl9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNF9NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1JEX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNF9NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1dSX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNF9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fUkRfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNF9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fV1JfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19FQVJMWV9TRFBfT1JJR0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19MSU5LTUdSX0RZTkFNSUNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19MSU5LTUdSX0hBTFRfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYwMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19MSU5LTUdSX1JFQ09OTkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTgwMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19MSU5LTUdSX0lETEVfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNF9MQVRFTkNZX1NBTVBMSU5HCisjZGVmaW5lIE1NRUE0X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9JT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE0X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE0X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19OT1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9BVE9NSUNfTk9SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX05PUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX05PUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGQzAwMEwKKyNkZWZpbmUgTU1FQTRfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkMwMDAwMEwKKy8vTU1FQTRfUEVSRkNPVU5URVJfTE8KKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NRUE0X1BFUkZDT1VOVEVSX0hJCisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01NRUE0X1BFUkZDT1VOVEVSMF9DRkcKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBNF9QRVJGQ09VTlRFUjFfQ0ZHCisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTRfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTRfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBNF9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorLy9NTUVBNF9FRENfQ05UCisjZGVmaW5lIE1NRUE0X0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTRfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE0X0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE0X0VEQ19DTlRfX1JSRVRfVEFHTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfRURDX0NOVF9fV1JFVF9UQUdNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0VEQ19DTlRfX0RSQU1SRF9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfRURDX0NOVF9fRFJBTVdSX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNF9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE0X0VEQ19DTlRfX0lPV1JfQ01ETUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTRfRURDX0NOVF9fSU9XUl9EQVRBTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNUkRfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNV1JfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19SUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19XUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNUkRfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19EUkFNV1JfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19JT1dSX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfQ05UX19JT1dSX0RBVEFNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9NTUVBNF9FRENfQ05UMgorI2RlZmluZSBNTUVBNF9FRENfQ05UMl9fR01JUkRfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlXUl9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNF9FRENfQ05UMl9fR01JV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNF9FRENfQ05UMl9fR01JUkRfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfRURDX0NOVDJfX0dNSVdSX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlSRF9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlSRF9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlXUl9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlXUl9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlSRF9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQyX19HTUlXUl9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisvL01NRUE0X0RTTV9DTlRMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExfX0RSQU1XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNF9EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19SUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNF9EU01fQ05UTF9fUlJFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExfX1dSRVRfVEFHTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19XUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNF9EU01fQ05UTF9fR01JUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNF9EU01fQ05UTF9fR01JV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9EU01fQ05UTF9fR01JV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19SUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19SUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19XUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19XUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL01NRUE0X0RTTV9DTlRMQQorI2RlZmluZSBNTUVBNF9EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExBX19JT1JEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExBX19HTUlSRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL01NRUE0X0RTTV9DTlRMMgorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNF9EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJfX1JSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNF9EU01fQ05UTDJfX1dSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyX19HTUlSRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyX19HTUlXUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBNF9EU01fQ05UTDJfX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMl9fSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL01NRUE0X0RTTV9DTlRMMkEKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMkFfX0lPUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMkFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE0X0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTRfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNF9EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9NTUVBNF9DR1RUX0NMS19DVFJMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfQ0dUVF9DTEtfQ1RSTF9fU1BBUkUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NQQVJFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNF9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNF9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NQQVJFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NQQVJFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4MDAwMDBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE0X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE0X0VEQ19NT0RFCisjZGVmaW5lIE1NRUE0X0VEQ19NT0RFX19DT1VOVF9GRURfT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTRfRURDX01PREVfX0dBVEVfRlVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNF9FRENfTU9ERV9fREVEX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE0X0VEQ19NT0RFX19QUk9QX0ZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTRfRURDX01PREVfX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNF9FRENfTU9ERV9fQ09VTlRfRkVEX09VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfTU9ERV9fR0FURV9GVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfTU9ERV9fREVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfTU9ERV9fUFJPUF9GRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNF9FRENfTU9ERV9fQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNF9FUlJfU1RBVFVTCisjZGVmaW5lIE1NRUE0X0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNF9FUlJfU1RBVFVTX19TRFBfV1JSU1BfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFTVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE0X0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBUEFSSVRZX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNF9FUlJfU1RBVFVTX19DTEVBUl9FUlJPUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTRfRVJSX1NUQVRVU19fQlVTWV9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0VSUl9TVEFUVVNfX0ZVRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNF9FUlJfU1RBVFVTX19TRFBfUkRSU1BfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNF9FUlJfU1RBVFVTX19TRFBfV1JSU1BfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNF9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVNUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNF9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVBBUklUWV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBNF9FUlJfU1RBVFVTX19DTEVBUl9FUlJPUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNF9FUlJfU1RBVFVTX19CVVNZX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNF9FUlJfU1RBVFVTX19GVUVfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9NTUVBNF9NSVNDMgorI2RlZmluZSBNTUVBNF9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE0X01JU0MyX19DU0dSUF9CVVJTVF9MSU1JVF9EQVRBX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTRfTUlTQzJfX0lPX1JEV1JfUFJJT1JJVFlfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X01JU0MyX19SUkVUX1NXQVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNF9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNF9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNF9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdDTAorI2RlZmluZSBNTUVBNF9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjgwTAorI2RlZmluZSBNTUVBNF9NSVNDMl9fSU9fUkRXUl9QUklPUklUWV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNF9NSVNDMl9fUlJFVF9TV0FQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9NTUVBNF9BRERSREVDX1NFTEVDVAorI2RlZmluZSBNTUVBNF9BRERSREVDX1NFTEVDVF9fRFJBTV9BRERSREVDX0NIQU5ORUxfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE0X0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNF9BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgTU1FQTRfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGODAwMEwKKy8vTU1FQTRfRURDX0NOVDMKKyNkZWZpbmUgTU1FQTRfRURDX0NOVDNfX0RSQU1SRF9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQzX19EUkFNV1JfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNF9FRENfQ05UM19fSU9SRF9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTRfRURDX0NOVDNfX0lPV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE0X0VEQ19DTlQzX19JT1dSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNF9FRENfQ05UM19fR01JUkRfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTRfRURDX0NOVDNfX0dNSVdSX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQzX19EUkFNUkRfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQzX19EUkFNV1JfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQzX19JT1JEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQzX19JT1dSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQzX19JT1dSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQzX19HTUlSRF9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE0X0VEQ19DTlQzX19HTUlXUl9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9wY3RsZGVjMAorLy9QQ1RMMF9DVFJMCisjZGVmaW5lIFBDVEwwX0NUUkxfX1BHX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9DVFJMX19BTExPV19ERUVQX1NMRUVQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfQ1RSTF9fU1RDVFJMX1JTTVVfSURMRV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwwX0NUUkxfX1NUQ1RSTF9EQUdCX0lETEVfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMF9DVFJMX19TVENUUkxfSUdOT1JFX1BST1RFQ1RJT05fRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX0NUUkxfX09WUl9FQTBfU0RQX1BBUlRBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUENUTDBfQ1RSTF9fT1ZSX0VBMV9TRFBfUEFSVEFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUEyX1NEUF9QQVJUQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFBDVEwwX0NUUkxfX09WUl9FQTNfU0RQX1BBUlRBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgUENUTDBfQ1RSTF9fT1ZSX0VBNF9TRFBfUEFSVEFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUEwX1NEUF9GVUxMQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFBDVEwwX0NUUkxfX09WUl9FQTFfU0RQX0ZVTExBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgUENUTDBfQ1RSTF9fT1ZSX0VBMl9TRFBfRlVMTEFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUEzX1NEUF9GVUxMQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFBDVEwwX0NUUkxfX09WUl9FQTRfU0RQX0ZVTExBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgUENUTDBfQ1RSTF9fUEdGU01fQ01EX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBQQ1RMMF9DVFJMX19QR19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9DVFJMX19BTExPV19ERUVQX1NMRUVQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBQQ1RMMF9DVFJMX19TVENUUkxfUlNNVV9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0YwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19TVENUUkxfREFHQl9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGODAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19TVENUUkxfSUdOT1JFX1BST1RFQ1RJT05fRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUEwX1NEUF9QQVJUQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUExX1NEUF9QQVJUQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUEyX1NEUF9QQVJUQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUEzX1NEUF9QQVJUQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUE0X1NEUF9QQVJUQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUEwX1NEUF9GVUxMQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUExX1NEUF9GVUxMQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUEyX1NEUF9GVUxMQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUEzX1NEUF9GVUxMQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19PVlJfRUE0X1NEUF9GVUxMQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBQQ1RMMF9DVFJMX19QR0ZTTV9DTURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4MDAwMDAwTAorLy9QQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUIKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX0lCX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX0lCX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX0lCX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX0lCX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX0lCX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX0lCX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX0lCX19TRVRDTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfSUJfX1NFVENMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9QQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREUKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EU19BVEhVQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTX0FUSFVCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9QQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUIKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMF9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwwX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDBfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUAorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX19EU19BVEhVQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0FMTElQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFNfQVRIVUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9fQUxMSVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQgorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDBfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9QR19JR05PUkVfREVFUFNMRUVQX0lCX19BTExJUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFBDVEwwX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0FMTElQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL1BDVEwwX1NMSUNFMF9DRkdfREFHQl9CVVNZCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfREFHQl9CVVNZX19EQl9MTkNGR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RBR0JfQlVTWV9fREJfTE5DRkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1BDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUIKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMF9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vUENUTDBfU0xJQ0UxX0NGR19EQUdCX0JVU1kKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EQUdCX0JVU1lfX0RCX0xOQ0ZHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfREFHQl9CVVNZX19EQl9MTkNGR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1BDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1cKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFM5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19JQgorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9QQ1RMMF9TTElDRTJfQ0ZHX0RBR0JfQlVTWQorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RBR0JfQlVTWV9fREJfTE5DRkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EQUdCX0JVU1lfX0RCX0xOQ0ZHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENUTDBfU0xJQ0UyX0NGR19EU19BTExPVworI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9QQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMF9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1BDVEwwX1NMSUNFM19DRkdfREFHQl9CVVNZCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfREFHQl9CVVNZX19EQl9MTkNGR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RBR0JfQlVTWV9fREJfTE5DRkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1BDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfSUIKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMF9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwwX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vUENUTDBfU0xJQ0U0X0NGR19EQUdCX0JVU1kKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EQUdCX0JVU1lfX0RCX0xOQ0ZHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfREFHQl9CVVNZX19EQl9MTkNGR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1BDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1cKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFM5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19JQgorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9QQ1RMMF9VVENMMl9NSVNDCisjZGVmaW5lIFBDVEwwX1VUQ0wyX01JU0NfX0NSSVRJQ0FMX1JFR1NfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMF9VVENMMl9NSVNDX19USUxFX0lETEVfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDBfVVRDTDJfTUlTQ19fUkVOR19NRU1fTFNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwwX1VUQ0wyX01JU0NfX1NUQ1RSTF9GT1JDRV9QR0ZTTV9DTURfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfVVRDTDJfTUlTQ19fUkVOR19FWEVDVVRFX09OX1JFR19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBQQ1RMMF9VVENMMl9NSVNDX19SRF9USU1FUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFBDVEwwX1VUQ0wyX01JU0NfX0NSSVRJQ0FMX1JFR1NfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwwX1VUQ0wyX01JU0NfX1RJTEVfSURMRV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFBDVEwwX1VUQ0wyX01JU0NfX1JFTkdfTUVNX0xTX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwwX1VUQ0wyX01JU0NfX1NUQ1RSTF9GT1JDRV9QR0ZTTV9DTURfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFBDVEwwX1VUQ0wyX01JU0NfX1JFTkdfRVhFQ1VURV9PTl9SRUdfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFBDVEwwX1VUQ0wyX01JU0NfX1JEX1RJTUVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL1BDVEwwX1NMSUNFMF9NSVNDCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9NSVNDX19DUklUSUNBTF9SRUdTX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMF9TTElDRTBfTUlTQ19fVElMRV9JRExFX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX01JU0NfX1JFTkdfTUVNX0xTX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9NSVNDX19TVENUUkxfRk9SQ0VfUEdGU01fQ01EX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMF9TTElDRTBfTUlTQ19fREVFUFNMRUVQX0RJU0NTRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9NSVNDX19SRU5HX0VYRUNVVEVfT05fUkVHX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX01JU0NfX1JEX1RJTUVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBQQ1RMMF9TTElDRTBfTUlTQ19fQ1JJVElDQUxfUkVHU19MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfTUlTQ19fVElMRV9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfTUlTQ19fUkVOR19NRU1fTFNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfTUlTQ19fU1RDVFJMX0ZPUkNFX1BHRlNNX0NNRF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfTUlTQ19fREVFUFNMRUVQX0RJU0NTRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfTUlTQ19fUkVOR19FWEVDVVRFX09OX1JFR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfTUlTQ19fUkRfVElNRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9QQ1RMMF9TTElDRTFfTUlTQworI2RlZmluZSBQQ1RMMF9TTElDRTFfTUlTQ19fQ1JJVElDQUxfUkVHU19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX01JU0NfX1RJTEVfSURMRV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9NSVNDX19SRU5HX01FTV9MU19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMF9TTElDRTFfTUlTQ19fU1RDVFJMX0ZPUkNFX1BHRlNNX0NNRF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX01JU0NfX0RFRVBTTEVFUF9ESVNDU0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTFfTUlTQ19fUkVOR19FWEVDVVRFX09OX1JFR19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9NSVNDX19SRF9USU1FUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX01JU0NfX0NSSVRJQ0FMX1JFR1NfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX01JU0NfX1RJTEVfSURMRV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX01JU0NfX1JFTkdfTUVNX0xTX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX01JU0NfX1NUQ1RSTF9GT1JDRV9QR0ZTTV9DTURfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX01JU0NfX0RFRVBTTEVFUF9ESVNDU0RQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX01JU0NfX1JFTkdfRVhFQ1VURV9PTl9SRUdfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX01JU0NfX1JEX1RJTUVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vUENUTDBfU0xJQ0UyX01JU0MKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX01JU0NfX0NSSVRJQ0FMX1JFR1NfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9NSVNDX19USUxFX0lETEVfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMF9TTElDRTJfTUlTQ19fUkVOR19NRU1fTFNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX01JU0NfX1NUQ1RSTF9GT1JDRV9QR0ZTTV9DTURfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9NSVNDX19ERUVQU0xFRVBfRElTQ1NEUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX01JU0NfX1JFTkdfRVhFQ1VURV9PTl9SRUdfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBQQ1RMMF9TTElDRTJfTUlTQ19fUkRfVElNRVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9NSVNDX19DUklUSUNBTF9SRUdTX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9NSVNDX19USUxFX0lETEVfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9NSVNDX19SRU5HX01FTV9MU19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9NSVNDX19TVENUUkxfRk9SQ0VfUEdGU01fQ01EX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9NSVNDX19ERUVQU0xFRVBfRElTQ1NEUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9NSVNDX19SRU5HX0VYRUNVVEVfT05fUkVHX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9NSVNDX19SRF9USU1FUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL1BDVEwwX1NMSUNFM19NSVNDCisjZGVmaW5lIFBDVEwwX1NMSUNFM19NSVNDX19DUklUSUNBTF9SRUdTX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMF9TTElDRTNfTUlTQ19fVElMRV9JRExFX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX01JU0NfX1JFTkdfTUVNX0xTX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwwX1NMSUNFM19NSVNDX19TVENUUkxfRk9SQ0VfUEdGU01fQ01EX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMF9TTElDRTNfTUlTQ19fREVFUFNMRUVQX0RJU0NTRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFM19NSVNDX19SRU5HX0VYRUNVVEVfT05fUkVHX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX01JU0NfX1JEX1RJTUVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBQQ1RMMF9TTElDRTNfTUlTQ19fQ1JJVElDQUxfUkVHU19MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfTUlTQ19fVElMRV9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfTUlTQ19fUkVOR19NRU1fTFNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfTUlTQ19fU1RDVFJMX0ZPUkNFX1BHRlNNX0NNRF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfTUlTQ19fREVFUFNMRUVQX0RJU0NTRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfTUlTQ19fUkVOR19FWEVDVVRFX09OX1JFR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfTUlTQ19fUkRfVElNRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9QQ1RMMF9TTElDRTRfTUlTQworI2RlZmluZSBQQ1RMMF9TTElDRTRfTUlTQ19fQ1JJVElDQUxfUkVHU19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X01JU0NfX1RJTEVfSURMRV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9NSVNDX19SRU5HX01FTV9MU19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMF9TTElDRTRfTUlTQ19fU1RDVFJMX0ZPUkNFX1BHRlNNX0NNRF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X01JU0NfX0RFRVBTTEVFUF9ESVNDU0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTRfTUlTQ19fUkVOR19FWEVDVVRFX09OX1JFR19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9NSVNDX19SRF9USU1FUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X01JU0NfX0NSSVRJQ0FMX1JFR1NfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X01JU0NfX1RJTEVfSURMRV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X01JU0NfX1JFTkdfTUVNX0xTX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X01JU0NfX1NUQ1RSTF9GT1JDRV9QR0ZTTV9DTURfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X01JU0NfX0RFRVBTTEVFUF9ESVNDU0RQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X01JU0NfX1JFTkdfRVhFQ1VURV9PTl9SRUdfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X01JU0NfX1JEX1RJTUVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vUENUTDBfVVRDTDJfUkVOR19FWEVDVVRFCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9VVENMMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfVVRDTDJfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX0VORF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMF9VVENMMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9VVENMMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9VVENMMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfU1RBUlRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZDTAorI2RlZmluZSBQQ1RMMF9VVENMMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZFMDAwTAorLy9QQ1RMMF9TTElDRTBfUkVOR19FWEVDVVRFCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTBfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19TVEFSVF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMF9TTElDRTBfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZDTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfRU5EX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGMDAwTAorLy9QQ1RMMF9TTElDRTFfUkVOR19FWEVDVVRFCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTFfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19TVEFSVF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMF9TTElDRTFfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZDTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfRU5EX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGMDAwTAorLy9QQ1RMMF9TTElDRTJfUkVOR19FWEVDVVRFCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTJfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19TVEFSVF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMF9TTElDRTJfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZDTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfRU5EX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGMDAwTAorLy9QQ1RMMF9TTElDRTNfUkVOR19FWEVDVVRFCisjZGVmaW5lIFBDVEwwX1NMSUNFM19SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTNfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19TVEFSVF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwwX1NMSUNFM19SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMF9TTElDRTNfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZDTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfRU5EX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGMDAwTAorLy9QQ1RMMF9TTElDRTRfUkVOR19FWEVDVVRFCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTRfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19TVEFSVF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMF9TTElDRTRfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZDTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfRU5EX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGMDAwTAorLy9QQ1RMMF9VVENMMl9SRU5HX1JBTV9JTkRFWAorI2RlZmluZSBQQ1RMMF9VVENMMl9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfVVRDTDJfUkVOR19SQU1fSU5ERVhfX1JFTkdfUkFNX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdGRkwKKy8vUENUTDBfVVRDTDJfUkVOR19SQU1fREFUQQorI2RlZmluZSBQQ1RMMF9VVENMMl9SRU5HX1JBTV9EQVRBX19SRU5HX1JBTV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfVVRDTDJfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENUTDBfU0xJQ0UwX1JFTkdfUkFNX0lOREVYCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTBfUkVOR19SQU1fSU5ERVhfX1JFTkdfUkFNX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9QQ1RMMF9TTElDRTBfUkVOR19SQU1fREFUQQorI2RlZmluZSBQQ1RMMF9TTElDRTBfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1JFTkdfUkFNX0RBVEFfX1JFTkdfUkFNX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENUTDBfU0xJQ0UxX1JFTkdfUkFNX0lOREVYCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTFfUkVOR19SQU1fSU5ERVhfX1JFTkdfUkFNX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9QQ1RMMF9TTElDRTFfUkVOR19SQU1fREFUQQorI2RlZmluZSBQQ1RMMF9TTElDRTFfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1JFTkdfUkFNX0RBVEFfX1JFTkdfUkFNX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENUTDBfU0xJQ0UyX1JFTkdfUkFNX0lOREVYCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTJfUkVOR19SQU1fSU5ERVhfX1JFTkdfUkFNX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9QQ1RMMF9TTElDRTJfUkVOR19SQU1fREFUQQorI2RlZmluZSBQQ1RMMF9TTElDRTJfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1JFTkdfUkFNX0RBVEFfX1JFTkdfUkFNX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENUTDBfU0xJQ0UzX1JFTkdfUkFNX0lOREVYCisjZGVmaW5lIFBDVEwwX1NMSUNFM19SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTNfUkVOR19SQU1fSU5ERVhfX1JFTkdfUkFNX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9QQ1RMMF9TTElDRTNfUkVOR19SQU1fREFUQQorI2RlZmluZSBQQ1RMMF9TTElDRTNfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1JFTkdfUkFNX0RBVEFfX1JFTkdfUkFNX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENUTDBfU0xJQ0U0X1JFTkdfUkFNX0lOREVYCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTRfUkVOR19SQU1fSU5ERVhfX1JFTkdfUkFNX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9QQ1RMMF9TTElDRTRfUkVOR19SQU1fREFUQQorI2RlZmluZSBQQ1RMMF9TTElDRTRfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1JFTkdfUkFNX0RBVEFfX1JFTkdfUkFNX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMQorI2RlZmluZSBQQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTIKKyNkZWZpbmUgUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNAorI2RlZmluZSBQQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDAKKyNkZWZpbmUgUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMQorI2RlZmluZSBQQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNAorI2RlZmluZSBQQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMAorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTIKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMworI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0CisjZGVmaW5lIFBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMQorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTEKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMgorI2RlZmluZSBQQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTQKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMAorI2RlZmluZSBQQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMQorI2RlZmluZSBQQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyCisjZGVmaW5lIFBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNAorI2RlZmluZSBQQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwCisjZGVmaW5lIFBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMAorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTIKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMworI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0CisjZGVmaW5lIFBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDAKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwwX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMQorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDBfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMF9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfbDF0bGJfdm1sMWRlYworLy9WTUwxXzBfTUNfVk1fTVhfTDFfVExCMF9TVEFUVVMKKyNkZWZpbmUgVk1MMV8wX01DX1ZNX01YX0wxX1RMQjBfU1RBVFVTX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFfMF9NQ19WTV9NWF9MMV9UTEIwX1NUQVRVU19fRk9VTkRfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCMF9TVEFUVVNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCMF9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9WTUwxXzBfTUNfVk1fTVhfTDFfVExCMV9TVEFUVVMKKyNkZWZpbmUgVk1MMV8wX01DX1ZNX01YX0wxX1RMQjFfU1RBVFVTX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFfMF9NQ19WTV9NWF9MMV9UTEIxX1NUQVRVU19fRk9VTkRfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCMV9TVEFUVVNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCMV9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9WTUwxXzBfTUNfVk1fTVhfTDFfVExCMl9TVEFUVVMKKyNkZWZpbmUgVk1MMV8wX01DX1ZNX01YX0wxX1RMQjJfU1RBVFVTX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFfMF9NQ19WTV9NWF9MMV9UTEIyX1NUQVRVU19fRk9VTkRfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCMl9TVEFUVVNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCMl9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9WTUwxXzBfTUNfVk1fTVhfTDFfVExCM19TVEFUVVMKKyNkZWZpbmUgVk1MMV8wX01DX1ZNX01YX0wxX1RMQjNfU1RBVFVTX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFfMF9NQ19WTV9NWF9MMV9UTEIzX1NUQVRVU19fRk9VTkRfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCM19TVEFUVVNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCM19TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9WTUwxXzBfTUNfVk1fTVhfTDFfVExCNF9TVEFUVVMKKyNkZWZpbmUgVk1MMV8wX01DX1ZNX01YX0wxX1RMQjRfU1RBVFVTX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFfMF9NQ19WTV9NWF9MMV9UTEI0X1NUQVRVU19fRk9VTkRfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCNF9TVEFUVVNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCNF9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9WTUwxXzBfTUNfVk1fTVhfTDFfVExCNV9TVEFUVVMKKyNkZWZpbmUgVk1MMV8wX01DX1ZNX01YX0wxX1RMQjVfU1RBVFVTX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFfMF9NQ19WTV9NWF9MMV9UTEI1X1NUQVRVU19fRk9VTkRfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCNV9TVEFUVVNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCNV9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9WTUwxXzBfTUNfVk1fTVhfTDFfVExCNl9TVEFUVVMKKyNkZWZpbmUgVk1MMV8wX01DX1ZNX01YX0wxX1RMQjZfU1RBVFVTX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFfMF9NQ19WTV9NWF9MMV9UTEI2X1NUQVRVU19fRk9VTkRfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCNl9TVEFUVVNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCNl9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9WTUwxXzBfTUNfVk1fTVhfTDFfVExCN19TVEFUVVMKKyNkZWZpbmUgVk1MMV8wX01DX1ZNX01YX0wxX1RMQjdfU1RBVFVTX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFfMF9NQ19WTV9NWF9MMV9UTEI3X1NUQVRVU19fRk9VTkRfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCN19TVEFUVVNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwxXzBfTUNfVk1fTVhfTDFfVExCN19TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfbDF0bGJfdm1sMXBsZGVjCisvL1ZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGRworI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGRworI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjJfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMl9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGRworI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSM19DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjNfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjNfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSM19DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNTDFQTDBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVk1MMVBMMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBWTUwxUEwwX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfbDF0bGJfdm1sMXByZGVjCisvL1ZNTDFQUjBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfTE8KKyNkZWZpbmUgVk1MMVBSMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFQUjBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDFQUjBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfSEkKKyNkZWZpbmUgVk1MMVBSMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDFQUjBfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMVBSMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMVBSMF9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX2F0Y2wyZGVjCisvL0FUQ0wyXzBfQVRDX0wyX0NOVEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX1RSQU5TTEFUSU9OX1JFQURfUkVRVUVTVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9UUkFOU0xBVElPTl9XUklURV9SRVFVRVNUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMX19OVU1CRVJfT0ZfVFJBTlNMQVRJT05fUkVBRFNfREVQRU5EU19PTl9BRERSX01PRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX1RSQU5TTEFUSU9OX1dSSVRFU19ERVBFTkRTX09OX0FERFJfTU9EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9IT1NUX1RSQU5TTEFUSU9OX1JFQURfUkVRVUVTVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMX19OVU1CRVJfT0ZfSE9TVF9UUkFOU0xBVElPTl9XUklURV9SRVFVRVNUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX0hPU1RfVFJBTlNMQVRJT05fUkVBRFNfREVQRU5EU19PTl9BRERSX01PRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9IT1NUX1RSQU5TTEFUSU9OX1dSSVRFU19ERVBFTkRTX09OX0FERFJfTU9EX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMX19DQUNIRV9JTlZBTElEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVExfX0VOQUJMRV9ERUZBVUxUX1BBR0VfT1VUX1RPX1NZU1RFTV9NRU1PUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX1RSQU5TTEFUSU9OX1JFQURfUkVRVUVTVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX1RSQU5TTEFUSU9OX1dSSVRFX1JFUVVFU1RTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX1RSQU5TTEFUSU9OX1JFQURTX0RFUEVORFNfT05fQUREUl9NT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX1RSQU5TTEFUSU9OX1dSSVRFU19ERVBFTkRTX09OX0FERFJfTU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX0hPU1RfVFJBTlNMQVRJT05fUkVBRF9SRVFVRVNUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX0hPU1RfVFJBTlNMQVRJT05fV1JJVEVfUkVRVUVTVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTgwMEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX0hPU1RfVFJBTlNMQVRJT05fUkVBRFNfREVQRU5EU19PTl9BRERSX01PRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fTlVNQkVSX09GX0hPU1RfVFJBTlNMQVRJT05fV1JJVEVTX0RFUEVORFNfT05fQUREUl9NT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fQ0FDSEVfSU5WQUxJREFURV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTF9fRU5BQkxFX0RFRkFVTFRfUEFHRV9PVVRfVE9fU1lTVEVNX01FTU9SWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vQVRDTDJfMF9BVENfTDJfQ05UTDIKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTDJfX0JBTktfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19MMl9DQUNIRV9VUERBVEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMMl9fRU5BQkxFX0wyX0NBQ0hFX0xSVV9VUERBVEVfQllfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTDJfX0wyX0NBQ0hFX1NXQVBfVEFHX0lOREVYX0xTQlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19MMl9DQUNIRV9WTUlEX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMMl9fTDJfQ0FDSEVfVVBEQVRFX1dJTERDQVJEX1JFRkVSRU5DRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTDJfX0wyX0JJR0tfRlJBR01FTlRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMMl9fTDJfNEtfQklHS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19CQU5LX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19MMl9DQUNIRV9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19FTkFCTEVfTDJfQ0FDSEVfTFJVX1VQREFURV9CWV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19MMl9DQUNIRV9TV0FQX1RBR19JTkRFWF9MU0JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19MMl9DQUNIRV9WTUlEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19MMl9DQUNIRV9VUERBVEVfV0lMRENBUkRfUkVGRVJFTkNFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjgwMDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19MMl9CSUdLX0ZSQUdNRU5UX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdFMDAwMDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwyX19MMl80S19CSUdLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisvL0FUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEEwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEEwX19EQVRBX1JFR0lTVEVSX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV9EQVRBMF9fQ0FDSEVfRU5UUllfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfREFUQTBfX0NBQ0hFRF9BVFRSSUJVVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEEwX19WSVJUVUFMX1BBR0VfQUREUkVTU19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfREFUQTBfX0RBVEFfUkVHSVNURVJfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfREFUQTBfX0NBQ0hFX0VOVFJZX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfREFUQTBfX0NBQ0hFRF9BVFRSSUJVVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGQ0wKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfREFUQTBfX1ZJUlRVQUxfUEFHRV9BRERSRVNTX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzgwMDAwMEwKKy8vQVRDTDJfMF9BVENfTDJfQ0FDSEVfREFUQTEKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfREFUQTFfX1ZJUlRVQUxfUEFHRV9BRERSRVNTX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEExX19WSVJUVUFMX1BBR0VfQUREUkVTU19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEEyCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFX0RBVEEyX19QSFlTSUNBTF9QQUdFX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV9EQVRBMl9fUEhZU0lDQUxfUEFHRV9BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BVENMMl8wX0FUQ19MMl9DTlRMMworI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMM19fREVMQVlfU0VORF9JTlZBTElEQVRJT05fUkVRVUVTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTDNfX0FUU19SRVFVRVNUX0NSRURJVF9NSU5VUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEwzX19DT01QQ0xLUkVRX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMM19fREVMQVlfU0VORF9JTlZBTElEQVRJT05fUkVRVUVTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMM19fQVRTX1JFUVVFU1RfQ1JFRElUX01JTlVTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUY4TAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMM19fQ09NUENMS1JFUV9PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9BVENMMl8wX0FUQ19MMl9TVEFUVVMKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfU1RBVFVTX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX1NUQVRVU19fUEFSSVRZX0VSUk9SX0lORk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9TVEFUVVNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9TVEFUVVNfX1BBUklUWV9FUlJPUl9JTkZPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZFTAorLy9BVENMMl8wX0FUQ19MMl9TVEFUVVMyCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX1NUQVRVUzJfX0lGSUZPX05PTl9GQVRBTF9QQVJJVFlfRVJST1JfSU5GT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9TVEFUVVMyX19JRklGT19GQVRBTF9QQVJJVFlfRVJST1JfSU5GT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfU1RBVFVTMl9fSUZJRk9fTk9OX0ZBVEFMX1BBUklUWV9FUlJPUl9JTkZPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfU1RBVFVTMl9fSUZJRk9fRkFUQUxfUEFSSVRZX0VSUk9SX0lORk9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vQVRDTDJfMF9BVENfTDJfU1RBVFVTMworI2RlZmluZSBBVENMMl8wX0FUQ19MMl9TVEFUVVMzX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfU1RBVFVTM19fUEFSSVRZX0VSUk9SX0lORk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX1NUQVRVUzNfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX1NUQVRVUzNfX1BBUklUWV9FUlJPUl9JTkZPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkVMCisvL0FUQ0wyXzBfQVRDX0wyX01JU0NfQ0cKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfTUlTQ19DR19fT0ZGRExZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX01JU0NfQ0dfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfTUlTQ19DR19fTUVNX0xTX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBBVENMMl8wX0FUQ19MMl9NSVNDX0NHX19PRkZETFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9NSVNDX0NHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9NSVNDX0NHX19NRU1fTFNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9BVENMMl8wX0FUQ19MMl9NRU1fUE9XRVJfTFMKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfTUVNX1BPV0VSX0xTX19MU19TRVRVUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX01FTV9QT1dFUl9MU19fTFNfSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9NRU1fUE9XRVJfTFNfX0xTX1NFVFVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9NRU1fUE9XRVJfTFNfX0xTX0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorLy9BVENMMl8wX0FUQ19MMl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0dUVF9DTEtfQ1RSTF9fTUdMU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DR1RUX0NMS19DVFJMX19NR0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9BVENMMl8wX0FUQ19MMl9DQUNIRV80S19EU01fSU5ERVgKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfNEtfRFNNX0lOREVYX19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9JTkRFWF9fSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FUQ0wyXzBfQVRDX0wyX0NBQ0hFXzJNX0RTTV9JTkRFWAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fSU5ERVhfX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfMk1fRFNNX0lOREVYX19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQVRDTDJfMF9BVENfTDJfQ0FDSEVfNEtfRFNNX0NOVEwKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfNEtfRFNNX0NOVExfX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfNEtfRFNNX0NOVExfX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fV1JJVEVfQ09VTlRFUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfNEtfRFNNX0NOVExfX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fVEVTVF9GVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19XUklURV9DT1VOVEVSU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDYwMDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19URVNUX0ZVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL0FUQ0wyXzBfQVRDX0wyX0NBQ0hFXzJNX0RTTV9DTlRMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzJNX0RTTV9DTlRMX19JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzJNX0RTTV9DTlRMX19FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX1dSSVRFX0NPVU5URVJTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NBQ0hFXzJNX0RTTV9DTlRMX19TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX1RFU1RfRlVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fV1JJVEVfQ09VTlRFUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA2MDAwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fVEVTVF9GVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9BVENMMl8wX0FUQ19MMl9DTlRMNAorI2RlZmluZSBBVENMMl8wX0FUQ19MMl9DTlRMNF9fTU1fTk9OUlRfSUZJRk9fQUNUSVZFX1RSQU5TQUNUSU9OX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfQ05UTDRfX01NX1NPRlRSVF9JRklGT19BQ1RJVkVfVFJBTlNBQ1RJT05fTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEw0X19NTV9OT05SVF9JRklGT19BQ1RJVkVfVFJBTlNBQ1RJT05fTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX0NOVEw0X19NTV9TT0ZUUlRfSUZJRk9fQUNUSVZFX1RSQU5TQUNUSU9OX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisvL0FUQ0wyXzBfQVRDX0wyX01NX0dST1VQX1JUX0NMQVNTRVMKKyNkZWZpbmUgQVRDTDJfMF9BVENfTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzBfQVRDX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQX1JUX0NMQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bWwycGZkZWMKKy8vVk1MMlBGMF9WTV9MMl9DTlRMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX0NBQ0hFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVExfX0VOQUJMRV9MMl9GUkFHTUVOVF9QUk9DRVNTSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMX19MMl9DQUNIRV9QVEVfRU5ESUFOX1NXQVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fTDJfQ0FDSEVfUERFX0VORElBTl9TV0FQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVExfX0wyX1BERTBfQ0FDSEVfVEFHX0dFTkVSQVRJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMX19FTkFCTEVfTDJfUFRFX0NBQ0hFX0xSVV9VUERBVEVfQllfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX1BERTBfQ0FDSEVfTFJVX1VQREFURV9CWV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVExfX0VOQUJMRV9ERUZBVUxUX1BBR0VfT1VUX1RPX1NZU1RFTV9NRU1PUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMX19MMl9QREUwX0NBQ0hFX1NQTElUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fRUZGRUNUSVZFX0wyX1FVRVVFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVExfX1BERV9GQVVMVF9DTEFTU0lGSUNBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fQ09OVEVYVDFfSURFTlRJVFlfQUNDRVNTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMX19JREVOVElUWV9NT0RFX0ZSQUdNRU5UX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVExfX0wyX1BURV9DQUNIRV9BRERSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX0NBQ0hFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX0ZSQUdNRU5UX1BST0NFU1NJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fTDJfQ0FDSEVfUFRFX0VORElBTl9TV0FQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fTDJfQ0FDSEVfUERFX0VORElBTl9TV0FQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fTDJfUERFMF9DQUNIRV9UQUdfR0VORVJBVElPTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX1BURV9DQUNIRV9MUlVfVVBEQVRFX0JZX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX1BERTBfQ0FDSEVfTFJVX1VQREFURV9CWV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fRU5BQkxFX0RFRkFVTFRfUEFHRV9PVVRfVE9fU1lTVEVNX01FTU9SWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fTDJfUERFMF9DQUNIRV9TUExJVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fRUZGRUNUSVZFX0wyX1FVRVVFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fUERFX0ZBVUxUX0NMQVNTSUZJQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fQ09OVEVYVDFfSURFTlRJVFlfQUNDRVNTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fSURFTlRJVFlfTU9ERV9GUkFHTUVOVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTF9fTDJfUFRFX0NBQ0hFX0FERFJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisvL1ZNTDJQRjBfVk1fTDJfQ05UTDIKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMMl9fSU5WQUxJREFURV9BTExfTDFfVExCU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTDJfX0lOVkFMSURBVEVfTDJfQ0FDSEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwyX19ESVNBQkxFX0lOVkFMSURBVEVfUEVSX0RPTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTDJfX0RJU0FCTEVfQklHS19DQUNIRV9PUFRJTUlaQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMMl9fTDJfUFRFX0NBQ0hFX1ZNSURfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwyX19JTlZBTElEQVRFX0NBQ0hFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTDJfX1BERV9DQUNIRV9FRkZFQ1RJVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMMl9fSU5WQUxJREFURV9BTExfTDFfVExCU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMMl9fSU5WQUxJREFURV9MMl9DQUNIRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMMl9fRElTQUJMRV9JTlZBTElEQVRFX1BFUl9ET01BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMMl9fRElTQUJMRV9CSUdLX0NBQ0hFX09QVElNSVpBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMMl9fTDJfUFRFX0NBQ0hFX1ZNSURfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMMl9fSU5WQUxJREFURV9DQUNIRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMMl9fUERFX0NBQ0hFX0VGRkVDVElWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vVk1MMlBGMF9WTV9MMl9DTlRMMworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19CQU5LX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMM19fTDJfQ0FDSEVfVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTDNfX0wyX0NBQ0hFX1VQREFURV9XSUxEQ0FSRF9SRUZFUkVOQ0VfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0ZSQUdNRU5UX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMM19fTDJfQ0FDSEVfQklHS19BU1NPQ0lBVElWSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV80S19FRkZFQ1RJVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTDNfX0wyX0NBQ0hFX0JJR0tfRUZGRUNUSVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMM19fTDJfQ0FDSEVfNEtfRk9SQ0VfTUlTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0ZPUkNFX01JU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTDNfX1BERV9DQUNIRV9GT1JDRV9NSVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMM19fTDJfQ0FDSEVfNEtfQVNTT0NJQVRJVklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19CQU5LX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9VUERBVEVfV0lMRENBUkRfUkVGRVJFTkNFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0ZSQUdNRU5UX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0FTU09DSUFUSVZJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV80S19FRkZFQ1RJVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0VGRkVDVElWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV80S19GT1JDRV9NSVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0ZPUkNFX01JU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19QREVfQ0FDSEVfRk9SQ0VfTUlTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV80S19BU1NPQ0lBVElWSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WTUwyUEYwX1ZNX0wyX1NUQVRVUworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1NUQVRVU19fTDJfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9TVEFUVVNfX0NPTlRFWFRfRE9NQUlOX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfU1RBVFVTX19GT1VORF80S19QVEVfQ0FDSEVfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9TVEFUVVNfX0ZPVU5EX0JJR0tfUFRFX0NBQ0hFX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1NUQVRVU19fRk9VTkRfUERFMF9DQUNIRV9QQVJJVFlfRVJST1JTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfU1RBVFVTX19GT1VORF9QREUxX0NBQ0hFX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9TVEFUVVNfX0ZPVU5EX1BERTJfQ0FDSEVfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1NUQVRVU19fTDJfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1NUQVRVU19fQ09OVEVYVF9ET01BSU5fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZFTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1NUQVRVU19fRk9VTkRfNEtfUFRFX0NBQ0hFX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1NUQVRVU19fRk9VTkRfQklHS19QVEVfQ0FDSEVfUEFSSVRZX0VSUk9SU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1NUQVRVU19fRk9VTkRfUERFMF9DQUNIRV9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1NUQVRVU19fRk9VTkRfUERFMV9DQUNIRV9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1NUQVRVU19fRk9VTkRfUERFMl9DQUNIRV9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorLy9WTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTAorI2RlZmluZSBWTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9fRFVNTVlfUEFHRV9GQVVMVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9EVU1NWV9QQUdFX0ZBVUxUX0NOVExfX0RVTU1ZX1BBR0VfQUREUkVTU19MT0dJQ0FMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjBfVk1fRFVNTVlfUEFHRV9GQVVMVF9DTlRMX19EVU1NWV9QQUdFX0NPTVBBUkVfTVNCU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBWTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9fRFVNTVlfUEFHRV9GQVVMVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9fRFVNTVlfUEFHRV9BRERSRVNTX0xPR0lDQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBWTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9fRFVNTVlfUEFHRV9DT01QQVJFX01TQlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZDTAorLy9WTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJQRjBfVk1fRFVNTVlfUEFHRV9GQVVMVF9BRERSX0xPMzJfX0RVTU1ZX1BBR0VfQUREUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9MTzMyX19EVU1NWV9QQUdFX0FERFJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJQRjBfVk1fRFVNTVlfUEFHRV9GQVVMVF9BRERSX0hJMzJfX0RVTU1ZX1BBR0VfQUREUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9ISTMyX19EVU1NWV9QQUdFX0FERFJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX0FMTE9XX1NVQlNFUVVFTlRfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9VUERBVEVTX19TSElGVCAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX1BERTFfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19QREUyX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fVFJBTlNMQVRFX0ZVUlRIRVJfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX05BQ0tfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX0NMSUVOVF9JRF9OT19SRVRSWV9GQVVMVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19PVEhFUl9DTElFTlRfSURfTk9fUkVUUllfRkFVTFRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX0NSQVNIX09OX05PX1JFVFJZX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fQ1JBU0hfT05fUkVUUllfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19BTExPV19TVUJTRVFVRU5UX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfVVBEQVRFU19NQVNLICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19QREUxX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19QREUyX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19UUkFOU0xBVEVfRlVSVEhFUl9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19OQUNLX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19DTElFTlRfSURfTk9fUkVUUllfRkFVTFRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkUwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19PVEhFUl9DTElFTlRfSURfTk9fUkVUUllfRkFVTFRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19DUkFTSF9PTl9OT19SRVRSWV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19DUkFTSF9PTl9SRVRSWV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0NMSUVOVF9JRF9QUlRfRkFVTFRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyX19PVEhFUl9DTElFTlRfSURfUFJUX0ZBVUxUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0FDVElWRV9QQUdFX01JR1JBVElPTl9QVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMl9fQUNUSVZFX1BBR0VfTUlHUkFUSU9OX1BURV9SRUFEX1JFVFJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyX19FTkFCTEVfUkVUUllfRkFVTFRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0NMSUVOVF9JRF9QUlRfRkFVTFRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX09USEVSX0NMSUVOVF9JRF9QUlRfRkFVTFRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0FDVElWRV9QQUdFX01JR1JBVElPTl9QVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0FDVElWRV9QQUdFX01JR1JBVElPTl9QVEVfUkVBRF9SRVRSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0VOQUJMRV9SRVRSWV9GQVVMVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDMKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX01NX0NOVEwzX19WTUwxX1JFQURfQ0xJRU5UX0lEX05PX1JFVFJZX0ZBVUxUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9NTV9DTlRMM19fVk1MMV9SRUFEX0NMSUVOVF9JRF9OT19SRVRSWV9GQVVMVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9NTV9DTlRMNAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDRfX1ZNTDFfV1JJVEVfQ0xJRU5UX0lEX05PX1JFVFJZX0ZBVUxUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX01NX0NOVEw0X19WTUwxX1dSSVRFX0NMSUVOVF9JRF9OT19SRVRSWV9GQVVMVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVUworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19NT1JFX0ZBVUxUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19fV0FMS0VSX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfX1BFUk1JU1NJT05fRkFVTFRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19NQVBQSU5HX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19fQ0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfX1JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19fQVRPTUlDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfX1ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19fVkZJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19NT1JFX0ZBVUxUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19XQUxLRVJfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19QRVJNSVNTSU9OX0ZBVUxUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19NQVBQSU5HX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19DSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRTAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19SV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19BVE9NSUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19WRklEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFFMDAwMDAwTAorLy9WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9BRERSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfQUREUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9BRERSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfQUREUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9MTzMyX19QSFlTSUNBTF9QQUdFX0FERFJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfTE8zMl9fUEhZU0lDQUxfUEFHRV9BRERSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJQRjBfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0hJMzJfX1BIWVNJQ0FMX1BBR0VfQUREUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9ISTMyX19QSFlTSUNBTF9QQUdFX0FERFJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfTE9XX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0xPV19BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyUEYwX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0xPV19BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfTE9XX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJQRjBfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9ISUdIX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJQRjBfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9ISUdIX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJQRjBfVk1fTDJfQ09OVEVYVF9JREVOVElUWV9QSFlTSUNBTF9PRkZTRVRfTE8zMgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NPTlRFWFRfSURFTlRJVFlfUEhZU0lDQUxfT0ZGU0VUX0xPMzJfX1BIWVNJQ0FMX1BBR0VfT0ZGU0VUX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DT05URVhUX0lERU5USVRZX1BIWVNJQ0FMX09GRlNFVF9MTzMyX19QSFlTSUNBTF9QQUdFX09GRlNFVF9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlBGMF9WTV9MMl9DT05URVhUX0lERU5USVRZX1BIWVNJQ0FMX09GRlNFVF9ISTMyCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ09OVEVYVF9JREVOVElUWV9QSFlTSUNBTF9PRkZTRVRfSEkzMl9fUEhZU0lDQUxfUEFHRV9PRkZTRVRfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NPTlRFWFRfSURFTlRJVFlfUEhZU0lDQUxfT0ZGU0VUX0hJMzJfX1BIWVNJQ0FMX1BBR0VfT0ZGU0VUX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyUEYwX1ZNX0wyX0NOVEw0CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTDRfX0wyX0NBQ0hFXzRLX1BBUlRJVElPTl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEw0X19WTUNfVEFQX1BERV9SRVFVRVNUX1BIWVNJQ0FMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMNF9fVk1DX1RBUF9QVEVfUkVRVUVTVF9QSFlTSUNBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTDRfX01NX05PTlJUX0lGSUZPX0FDVElWRV9UUkFOU0FDVElPTl9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NOVEw0X19NTV9TT0ZUUlRfSUZJRk9fQUNUSVZFX1RSQU5TQUNUSU9OX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ05UTDRfX0JQTV9DR0NHTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMNF9fTDJfQ0FDSEVfNEtfUEFSVElUSU9OX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMNF9fVk1DX1RBUF9QREVfUkVRVUVTVF9QSFlTSUNBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMNF9fVk1DX1RBUF9QVEVfUkVRVUVTVF9QSFlTSUNBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMNF9fTU1fTk9OUlRfSUZJRk9fQUNUSVZFX1RSQU5TQUNUSU9OX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkYwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMNF9fTU1fU09GVFJUX0lGSUZPX0FDVElWRV9UUkFOU0FDVElPTl9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZDMDAwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DTlRMNF9fQlBNX0NHQ0dMU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzFfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8yX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfM19SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzRfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF81X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfNl9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzdfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF84X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfOV9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzEwX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8xMV9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTJfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzEzX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8xNF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTVfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzE2X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTdfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8xOF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzE5X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjBfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8yMV9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzIyX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjNfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8yNF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzI1X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjZfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8yN19SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzI4X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjlfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8zMF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzMxX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMF9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMV9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMl9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfM19SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfNF9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfNV9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfNl9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfN19SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfOF9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfOV9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTBfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTFfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTJfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTNfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTRfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTVfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTZfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTdfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMThfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTlfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjBfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjFfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjJfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjNfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjRfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjVfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjZfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjdfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjhfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjlfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMzBfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMzFfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNTDJQRjBfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lECisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEX19SRVNFUlZFRF9SRUFEX0NMSUVOVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRF9fUkVTRVJWRURfV1JJVEVfQ0xJRU5UX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRF9fUkVTRVJWRURfQ0FDSEVfSU5WQUxJREFUSU9OX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEX19SRVNFUlZFRF9DQUNIRV9QUklWQVRFX0lOVkFMSURBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX1JFU0VSVkVEX1JFQURfQ0xJRU5UX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX1JFU0VSVkVEX1dSSVRFX0NMSUVOVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkMwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX1JFU0VSVkVEX0NBQ0hFX0lOVkFMSURBVElPTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX1JFU0VSVkVEX0NBQ0hFX1BSSVZBVEVfSU5WQUxJREFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEMl9fUkVTRVJWRURfUkVBRF9DTElFTlRfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRDJfX1JFU0VSVkVEX1dSSVRFX0NMSUVOVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRDJfX1JFU0VSVkVEX0NBQ0hFX0lOVkFMSURBVElPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEMl9fUkVTRVJWRURfQ0FDSEVfUFJJVkFURV9JTlZBTElEQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19SRVNFUlZFRF9SRUFEX0NMSUVOVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19SRVNFUlZFRF9XUklURV9DTElFTlRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkMwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19SRVNFUlZFRF9DQUNIRV9JTlZBTElEQVRJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19SRVNFUlZFRF9DQUNIRV9QUklWQVRFX0lOVkFMSURBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vVk1MMlBGMF9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19FTkFCTEVfUEFSSVRZX0NIRUNLU19JTl80S19QVEVfQ0FDSEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTF9fRU5BQkxFX1BBUklUWV9DSEVDS1NfSU5fQklHS19QVEVfQ0FDSEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ0FDSEVfUEFSSVRZX0NOVExfX0VOQUJMRV9QQVJJVFlfQ0hFQ0tTX0lOX1BERV9DQUNIRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9QQVJJVFlfTUlTTUFUQ0hfSU5fNEtfUFRFX0NBQ0hFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTF9fRk9SQ0VfUEFSSVRZX01JU01BVENIX0lOX0JJR0tfUFRFX0NBQ0hFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ0FDSEVfUEFSSVRZX0NOVExfX0ZPUkNFX1BBUklUWV9NSVNNQVRDSF9JTl9QREVfQ0FDSEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9DQUNIRV9CQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTF9fRk9SQ0VfQ0FDSEVfTlVNQkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ0FDSEVfUEFSSVRZX0NOVExfX0ZPUkNFX0NBQ0hFX0FTU09DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19FTkFCTEVfUEFSSVRZX0NIRUNLU19JTl80S19QVEVfQ0FDSEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19FTkFCTEVfUEFSSVRZX0NIRUNLU19JTl9CSUdLX1BURV9DQUNIRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19FTkFCTEVfUEFSSVRZX0NIRUNLU19JTl9QREVfQ0FDSEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9QQVJJVFlfTUlTTUFUQ0hfSU5fNEtfUFRFX0NBQ0hFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9QQVJJVFlfTUlTTUFUQ0hfSU5fQklHS19QVEVfQ0FDSEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9QQVJJVFlfTUlTTUFUQ0hfSU5fUERFX0NBQ0hFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9DQUNIRV9CQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9DQUNIRV9OVU1CRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9DQUNIRV9BU1NPQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorLy9WTUwyUEYwX1ZNX0wyX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NHVFRfQ0xLX0NUUkxfX01HTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlBGMF9WTV9MMl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyUEYwX1ZNX0wyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fTUdMU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFZNTDJQRjBfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bWwydmNkZWMKKy8vVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQwX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQwX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQwX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQwX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQwX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQwX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQyX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQyX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQyX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQyX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQyX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQyX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUM19DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQzX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQzX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQzX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQzX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQzX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQzX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ0X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ0X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ0X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ0X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ0X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ0X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ1X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ1X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ1X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ1X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ1X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ1X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ2X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ2X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ2X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ2X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ2X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ2X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUN19DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ3X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ3X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ3X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ3X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ3X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ3X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ4X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ4X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ4X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ4X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ4X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ4X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ5X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ5X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ5X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ5X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ5X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ5X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTBfQ05UTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDExX0NOVEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxMl9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX0NOVExfX0VOQUJMRV9DT05URVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMl9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUEFHRV9UQUJMRV9CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMl9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMl9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMl9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fRU5BQkxFX0NPTlRFWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTNfQ05UTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDE0X0NOVEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxNV9DTlRMCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X0NOVExfX0VOQUJMRV9DT05URVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNV9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUEFHRV9UQUJMRV9CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNV9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fRU5BQkxFX0NPTlRFWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMF9WTV9DT05URVhUU19ESVNBQkxFCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF80X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF83X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF80X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF81X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF82X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF83X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF84X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF85X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX1NFTQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9TRU1fX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfU0VNX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfU0VNCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzNfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkczX1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X1NFTQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9TRU1fX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfU0VNX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfU0VNCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzZfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc2X1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X1NFTQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19TRU1fX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfU0VNX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfU0VNCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzlfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc5X1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19TRU0KKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX1JFUQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfUkVRCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkczX1JFUQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzNfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzNfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzNfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfUkVRCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc2X1JFUQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzZfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzZfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzZfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19SRVEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfUkVRCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc5X1JFUQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzlfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzlfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzlfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfUkVRCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9SRVEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX1JFUQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfUkVRCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9SRVEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X1JFUQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfUkVRCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19SRVEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfQUNLCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX0FDSworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9BQ0sKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzNfQUNLCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkczX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkczX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkczX0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X0FDSworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9BQ0sKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzZfQUNLCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc2X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc2X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc2X0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X0FDSworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9BQ0sKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzlfQUNLCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc5X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc5X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc5X0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9BQ0sKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX0FDSworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUNLCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19BQ0sKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X0FDSworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUNLCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9BQ0sKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X0FDSworI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcwX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzFfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcyX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMl9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkczX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkczX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzRfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc1X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNV9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc2X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc2X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzdfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc4X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOF9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc5X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkc5X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEwX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMV9BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxMl9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzEzX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNF9BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNV9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE2X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fSU5WQUxJREFURV9FTkcxN19BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUM19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMF9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzBfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMwX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMF9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX3Ztc2hhcmVkcGZkZWMKKy8vVk1TSEFSRURQRjBfTUNfVk1fTkJfTU1JT0JBU0UKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fTkJfTU1JT0JBU0VfX01NSU9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX05CX01NSU9CQVNFX19NTUlPQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX05CX01NSU9MSU1JVAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9OQl9NTUlPTElNSVRfX01NSU9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fTkJfTU1JT0xJTUlUX19NTUlPTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1TSEFSRURQRjBfTUNfVk1fTkJfUENJX0NUUkwKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fTkJfUENJX0NUUkxfX01NSU9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9OQl9QQ0lfQ1RSTF9fTU1JT0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTVNIQVJFRFBGMF9NQ19WTV9OQl9QQ0lfQVJCCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX05CX1BDSV9BUkJfX1ZHQV9IT0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9OQl9QQ0lfQVJCX19WR0FfSE9MRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorLy9WTVNIQVJFRFBGMF9NQ19WTV9OQl9UT1BfT0ZfRFJBTV9TTE9UMQorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9OQl9UT1BfT0ZfRFJBTV9TTE9UMV9fVE9QX09GX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX05CX1RPUF9PRl9EUkFNX1NMT1QxX19UT1BfT0ZfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkY4MDAwMDBMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX05CX0xPV0VSX1RPUF9PRl9EUkFNMgorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9OQl9MT1dFUl9UT1BfT0ZfRFJBTTJfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fTkJfTE9XRVJfVE9QX09GX0RSQU0yX19MT1dFUl9UT00yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9OQl9MT1dFUl9UT1BfT0ZfRFJBTTJfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9OQl9MT1dFUl9UT1BfT0ZfRFJBTTJfX0xPV0VSX1RPTTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGODAwMDAwTAorLy9WTVNIQVJFRFBGMF9NQ19WTV9OQl9VUFBFUl9UT1BfT0ZfRFJBTTIKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fTkJfVVBQRVJfVE9QX09GX0RSQU0yX19VUFBFUl9UT00yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX05CX1VQUEVSX1RPUF9PRl9EUkFNMl9fVVBQRVJfVE9NMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX0ZCX09GRlNFVAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9GQl9PRkZTRVRfX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fRkJfT0ZGU0VUX19GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vVk1TSEFSRURQRjBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9MU0IKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9MU0JfX1BIWVNJQ0FMX1BBR0VfTlVNQkVSX0xTQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTFNCX19QSFlTSUNBTF9QQUdFX05VTUJFUl9MU0JfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTVNCCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTVNCX19QSFlTSUNBTF9QQUdFX05VTUJFUl9NU0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX01TQl9fUEhZU0lDQUxfUEFHRV9OVU1CRVJfTVNCX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTVNIQVJFRFBGMF9NQ19WTV9TVEVFUklORworI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9TVEVFUklOR19fREVGQVVMVF9TVEVFUklOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fU1RFRVJJTkdfX0RFRkFVTFRfU1RFRVJJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vVk1TSEFSRURQRjBfTUNfU0hBUkVEX1ZJUlRfUkVTRVRfUkVRCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1NIQVJFRF9WSVJUX1JFU0VUX1JFUV9fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19TSEFSRURfVklSVF9SRVNFVF9SRVFfX1BGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1NIQVJFRF9WSVJUX1JFU0VUX1JFUV9fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1NIQVJFRF9WSVJUX1JFU0VUX1JFUV9fUEZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVEUEYwX01DX01FTV9QT1dFUl9MUworI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19NRU1fUE9XRVJfTFNfX0xTX1NFVFVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfTUVNX1BPV0VSX0xTX19MU19IT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX01FTV9QT1dFUl9MU19fTFNfU0VUVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX01FTV9QT1dFUl9MU19fTFNfSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0FERFJFU1NfU1RBUlQKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fQ0FDSEVBQkxFX0RSQU1fQUREUkVTU19TVEFSVF9fQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0FERFJFU1NfU1RBUlRfX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0FERFJFU1NfRU5ECisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0FERFJFU1NfRU5EX19BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX0VORF9fQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFRFBGMF9NQ19WTV9BUFRfQ05UTAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9BUFRfQ05UTF9fRk9SQ0VfTVRZUEVfVUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fQVBUX0NOVExfX0RJUkVDVF9TWVNURU1fRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX0FQVF9DTlRMX19GT1JDRV9NVFlQRV9VQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX0FQVF9DTlRMX19ESVJFQ1RfU1lTVEVNX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX1NUQVJUCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX1NUQVJUX19BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVF9fQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFRFBGMF9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19FTkQKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fTE9DQUxfSEJNX0FERFJFU1NfRU5EX19BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX0VORF9fQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX0xPQ0tfQ05UTAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19MT0NLX0NOVExfX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fTE9DQUxfSEJNX0FERFJFU1NfTE9DS19DTlRMX19MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1TSEFSRURQRjBfTUNfVk1fWEdNSV9MRkJfQ05UTAorI2RlZmluZSBWTVNIQVJFRFBGMF9NQ19WTV9YR01JX0xGQl9DTlRMX19QRl9MRkJfUkVHSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fWEdNSV9MRkJfQ05UTF9fUEZfTUFYX1JFR0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX1hHTUlfTEZCX0NOVExfX1BGX0xGQl9SRUdJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX1hHTUlfTEZCX0NOVExfX1BGX01BWF9SRUdJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX1hHTUlfTEZCX1NJWkUKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fWEdNSV9MRkJfU0laRV9fUEZfTEZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX1hHTUlfTEZCX1NJWkVfX1BGX0xGQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkZMCisvL1ZNU0hBUkVEUEYwX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0NOVEwKKyNkZWZpbmUgVk1TSEFSRURQRjBfTUNfVk1fQ0FDSEVBQkxFX0RSQU1fQ05UTF9fRU5BQkxFX0NBQ0hFQUJMRV9EUkFNX0FERFJFU1NfQVBFUlRVUkVfX1NISUZUICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYwX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0NOVExfX0VOQUJMRV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX0FQRVJUVVJFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bXNoYXJlZHZjZGVjCisvL1ZNU0hBUkVEVkMwX01DX1ZNX0ZCX0xPQ0FUSU9OX0JBU0UKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fRkJfTE9DQVRJT05fQkFTRV9fRkJfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX0ZCX0xPQ0FUSU9OX0JBU0VfX0ZCX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1ZNU0hBUkVEVkMwX01DX1ZNX0ZCX0xPQ0FUSU9OX1RPUAorI2RlZmluZSBWTVNIQVJFRFZDMF9NQ19WTV9GQl9MT0NBVElPTl9UT1BfX0ZCX1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fRkJfTE9DQVRJT05fVE9QX19GQl9UT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vVk1TSEFSRURWQzBfTUNfVk1fQUdQX1RPUAorI2RlZmluZSBWTVNIQVJFRFZDMF9NQ19WTV9BR1BfVE9QX19BR1BfVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fQUdQX1RPUF9fQUdQX1RPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vVk1TSEFSRURWQzBfTUNfVk1fQUdQX0JPVAorI2RlZmluZSBWTVNIQVJFRFZDMF9NQ19WTV9BR1BfQk9UX19BR1BfQk9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fQUdQX0JPVF9fQUdQX0JPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vVk1TSEFSRURWQzBfTUNfVk1fQUdQX0JBU0UKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fQUdQX0JBU0VfX0FHUF9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX0FHUF9CQVNFX19BR1BfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1ZNU0hBUkVEVkMwX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUgorI2RlZmluZSBWTVNIQVJFRFZDMF9NQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfX0xPR0lDQUxfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX19MT0dJQ0FMX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGRkZGRkwKKy8vVk1TSEFSRURWQzBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUgorI2RlZmluZSBWTVNIQVJFRFZDMF9NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX19MT0dJQ0FMX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9fTE9HSUNBTF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGRkZGRkwKKy8vVk1TSEFSRURWQzBfTUNfVk1fTVhfTDFfVExCX0NOVEwKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fTVhfTDFfVExCX0NOVExfX0VOQUJMRV9MMV9UTEJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQUNDRVNTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTF9fU1lTVEVNX0FQRVJUVVJFX1VOTUFQUEVEX0FDQ0VTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fTVhfTDFfVExCX0NOVExfX0VOQUJMRV9BRFZBTkNFRF9EUklWRVJfTU9ERUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMX19FQ09fQklUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTVNIQVJFRFZDMF9NQ19WTV9NWF9MMV9UTEJfQ05UTF9fTVRZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1TSEFSRURWQzBfTUNfVk1fTVhfTDFfVExCX0NOVExfX0FUQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfTDFfVExCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQUNDRVNTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQVBFUlRVUkVfVU5NQVBQRURfQUNDRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfQURWQU5DRURfRFJJVkVSX01PREVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMX19FQ09fQklUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3ODBMCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMX19NVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIFZNU0hBUkVEVkMwX01DX1ZNX01YX0wxX1RMQl9DTlRMX19BVENfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bXNoYXJlZGh2ZGVjCisvL1ZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjBfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYwX19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjBfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjBfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxX19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMV9fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxX19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxX19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYyCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMl9fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjJfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMl9fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMl9fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMworI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjNfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYzX19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjNfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjNfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjQKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY0X19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNF9fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY0X19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY0X19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY1CisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNV9fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjVfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNV9fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNV9fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNgorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjZfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY2X19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjZfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjZfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjcKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY3X19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGN19fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY3X19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY3X19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY4CisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOF9fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjhfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOF9fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOF9fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOQorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjlfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY5X19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjlfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjlfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTBfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEwX19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTBfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTBfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTEKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMV9fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTFfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMV9fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMV9fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMgorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyX19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMl9fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyX19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyX19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEzCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTNfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEzX19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTNfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTNfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTQKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxNF9fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTRfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxNF9fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxNF9fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxNQorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1X19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxNV9fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1X19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1X19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMF9WTV9JT01NVV9NTUlPX0NOVFJMXzEKKyNkZWZpbmUgVk1TSEFSRURIVjBfVk1fSU9NTVVfTU1JT19DTlRSTF8xX19NQVJDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX0lPTU1VX01NSU9fQ05UUkxfMV9fTUFSQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1ZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9MT18wCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9MT18wX19NQVJDX0JBU0VfTE9fMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fMF9fTUFSQ19CQVNFX0xPXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fMQorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fMV9fTUFSQ19CQVNFX0xPXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0xPXzFfX01BUkNfQkFTRV9MT18xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0xPXzIKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0xPXzJfX01BUkNfQkFTRV9MT18yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9MT18yX19NQVJDX0JBU0VfTE9fMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL1ZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9MT18zCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9MT18zX19NQVJDX0JBU0VfTE9fM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfTE9fM19fTUFSQ19CQVNFX0xPXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMF9fTUFSQ19CQVNFX0hJXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0hJXzBfX01BUkNfQkFTRV9ISV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0hJXzEKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0hJXzFfX01BUkNfQkFTRV9ISV8xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9ISV8xX19NQVJDX0JBU0VfSElfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1ZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9ISV8yCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfQkFTRV9ISV8yX19NQVJDX0JBU0VfSElfMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMl9fTUFSQ19CQVNFX0hJXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfMworI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0JBU0VfSElfM19fTUFSQ19CQVNFX0hJXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19CQVNFX0hJXzNfX01BUkNfQkFTRV9ISV8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18wCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fMF9fTUFSQ19FTkFCTEVfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzBfX01BUkNfUkVBRE9OTFlfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18wX19NQVJDX1JFTE9DX0xPXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fMF9fTUFSQ19FTkFCTEVfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fMF9fTUFSQ19SRUFET05MWV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fMF9fTUFSQ19SRUxPQ19MT18wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL1ZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fMQorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzFfX01BUkNfRU5BQkxFXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18xX19NQVJDX1JFQURPTkxZXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fMV9fTUFSQ19SRUxPQ19MT18xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzFfX01BUkNfRU5BQkxFXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzFfX01BUkNfUkVBRE9OTFlfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzFfX01BUkNfUkVMT0NfTE9fMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzIKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18yX19NQVJDX0VOQUJMRV8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fMl9fTUFSQ19SRUFET05MWV8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzJfX01BUkNfUkVMT0NfTE9fMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18yX19NQVJDX0VOQUJMRV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18yX19NQVJDX1JFQURPTkxZXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18yX19NQVJDX1JFTE9DX0xPXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18zCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fM19fTUFSQ19FTkFCTEVfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0xPXzNfX01BUkNfUkVBRE9OTFlfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19MT18zX19NQVJDX1JFTE9DX0xPXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fM19fTUFSQ19FTkFCTEVfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fM19fTUFSQ19SRUFET05MWV8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfTE9fM19fTUFSQ19SRUxPQ19MT18zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL1ZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfSElfMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzBfX01BUkNfUkVMT0NfSElfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19ISV8wX19NQVJDX1JFTE9DX0hJXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19ISV8xCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfSElfMV9fTUFSQ19SRUxPQ19ISV8xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzFfX01BUkNfUkVMT0NfSElfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzIKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19ISV8yX19NQVJDX1JFTE9DX0hJXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfSElfMl9fTUFSQ19SRUxPQ19ISV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1ZNU0hBUkVESFYwX01DX1ZNX01BUkNfUkVMT0NfSElfMworI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX1JFTE9DX0hJXzNfX01BUkNfUkVMT0NfSElfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19SRUxPQ19ISV8zX19NQVJDX1JFTE9DX0hJXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18wX19NQVJDX0xFTl9MT18wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fMF9fTUFSQ19MRU5fTE9fMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fMQorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18xX19NQVJDX0xFTl9MT18xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fMV9fTUFSQ19MRU5fTE9fMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fMgorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18yX19NQVJDX0xFTl9MT18yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fMl9fTUFSQ19MRU5fTE9fMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fMworI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9MT18zX19NQVJDX0xFTl9MT18zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fTE9fM19fTUFSQ19MRU5fTE9fM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8wX19NQVJDX0xFTl9ISV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMF9fTUFSQ19MRU5fSElfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMQorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8xX19NQVJDX0xFTl9ISV8xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMV9fTUFSQ19MRU5fSElfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMgorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8yX19NQVJDX0xFTl9ISV8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMl9fTUFSQ19MRU5fSElfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfMworI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9NQVJDX0xFTl9ISV8zX19NQVJDX0xFTl9ISV8zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fTUFSQ19MRU5fSElfM19fTUFSQ19MRU5fSElfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjBfVk1fSU9NTVVfQ09OVFJPTF9SRUdJU1RFUgorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9JT01NVV9DT05UUk9MX1JFR0lTVEVSX19JT01NVUVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfVk1fSU9NTVVfQ09OVFJPTF9SRUdJU1RFUl9fSU9NTVVFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1TSEFSRURIVjBfVk1fSU9NTVVfUEVSRk9STUFOQ0VfT1BUSU1JWkFUSU9OX0NPTlRST0xfUkVHSVNURVIKKyNkZWZpbmUgVk1TSEFSRURIVjBfVk1fSU9NTVVfUEVSRk9STUFOQ0VfT1BUSU1JWkFUSU9OX0NPTlRST0xfUkVHSVNURVJfX1BFUkZPUFRFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX0lPTU1VX1BFUkZPUk1BTkNFX09QVElNSVpBVElPTl9DT05UUk9MX1JFR0lTVEVSX19QRVJGT1BURU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9fU1RVX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX19BVENfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfX1NUVV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfX0FUQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMAorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzBfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMF9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMQorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzFfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMV9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMgorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzJfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMl9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMworI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzNfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfM19fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfNAorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzRfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfNF9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfNQorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzVfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfNV9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfNgorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzZfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfNl9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfNworI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzdfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfN19fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfOAorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzhfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfOF9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfOQorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzlfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfOV9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTAKKyNkZWZpbmUgVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xMF9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEwX19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzExCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTFfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xMV9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xMgorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEyX19BVENfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTJfX0FUQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTMKKyNkZWZpbmUgVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xM19fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEzX19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzE0CisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTRfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xNF9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjBfVk1fUENJRV9BVFNfQ05UTF9WRl8xNQorI2RlZmluZSBWTVNIQVJFREhWMF9WTV9QQ0lFX0FUU19DTlRMX1ZGXzE1X19BVENfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYwX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTVfX0FUQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYwX1VUQ0wyX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgVk1TSEFSRURIVjBfVVRDTDJfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX1VUQ0wyX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX0VYVFJBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjBfVVRDTDJfQ0dUVF9DTEtfQ1RSTF9fTUdMU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNU0hBUkVESFYwX1VUQ0wyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjBfVVRDTDJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBWTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBWTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX0VYVFJBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBWTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMX19NR0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBWTVNIQVJFREhWMF9VVENMMl9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9WTVNIQVJFREhWMF9NQ19TSEFSRURfQUNUSVZFX0ZDTl9JRAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19TSEFSRURfQUNUSVZFX0ZDTl9JRF9fVkZJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfU0hBUkVEX0FDVElWRV9GQ05fSURfX1ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19TSEFSRURfQUNUSVZFX0ZDTl9JRF9fVkZJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19TSEFSRURfQUNUSVZFX0ZDTl9JRF9fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WTVNIQVJFREhWMF9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEUKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTVNIQVJFREhWMF9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNU0hBUkVESFYwX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1BGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1TSEFSRURIVjBfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfUEZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX2F0Y2wycGZjbnRyZGVjCisvL0FUQ0wyUEZDTlRSMF9BVENfTDJfUEVSRkNPVU5URVJfTE8KKyNkZWZpbmUgQVRDTDJQRkNOVFIwX0FUQ19MMl9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyUEZDTlRSMF9BVENfTDJfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0FUQ0wyUEZDTlRSMF9BVENfTDJfUEVSRkNPVU5URVJfSEkKKyNkZWZpbmUgQVRDTDJQRkNOVFIwX0FUQ19MMl9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyUEZDTlRSMF9BVENfTDJfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQVRDTDJQRkNOVFIwX0FUQ19MMl9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgQVRDTDJQRkNOVFIwX0FUQ19MMl9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3V0Y2wyX2F0Y2wycGZjbnRsZGVjCisvL0FUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGRworI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJQRkNOVEwwX0FUQ19MMl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVRDTDJQRkNOVEwwX0FUQ19MMl9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0FUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJQRkNOVEwwX0FUQ19MMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVRDTDJQRkNOVEwwX0FUQ19MMl9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0FUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVRDTDJQRkNOVEwwX0FUQ19MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFUQ0wyUEZDTlRMMF9BVENfTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgQVRDTDJQRkNOVEwwX0FUQ19MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBVENMMlBGQ05UTDBfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1sMnBsZGVjCisvL1ZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGRworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGRworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSMl9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGRworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSM19DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSM19DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGRworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSNF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSNF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGRworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSNV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSNV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGRworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSNl9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSNl9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGRworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSN19DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSN19DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNTDJQTDBfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVk1MMlBMMF9NQ19WTV9MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBWTUwyUEwwX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1sMnByZGVjCisvL1ZNTDJQUjBfTUNfVk1fTDJfUEVSRkNPVU5URVJfTE8KKyNkZWZpbmUgVk1MMlBSMF9NQ19WTV9MMl9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQUjBfTUNfVk1fTDJfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJQUjBfTUNfVk1fTDJfUEVSRkNPVU5URVJfSEkKKyNkZWZpbmUgVk1MMlBSMF9NQ19WTV9MMl9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQUjBfTUNfVk1fTDJfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlBSMF9NQ19WTV9MMl9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlBSMF9NQ19WTV9MMl9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2RhZ2JfZGFnYmRlYzUKKy8vREFHQjVfUkRDTEkwCisjZGVmaW5lIERBR0I1X1JEQ0xJMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEkxCisjZGVmaW5lIERBR0I1X1JEQ0xJMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEkyCisjZGVmaW5lIERBR0I1X1JEQ0xJMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEkzCisjZGVmaW5lIERBR0I1X1JEQ0xJM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEk0CisjZGVmaW5lIERBR0I1X1JEQ0xJNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEk1CisjZGVmaW5lIERBR0I1X1JEQ0xJNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEk2CisjZGVmaW5lIERBR0I1X1JEQ0xJNl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTZfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJNl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTZfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJNl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJNl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk2X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEk3CisjZGVmaW5lIERBR0I1X1JEQ0xJN19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTdfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJN19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTdfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJN19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJN19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk3X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEk4CisjZGVmaW5lIERBR0I1X1JEQ0xJOF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSThfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJOF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSThfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJOF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJOF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk4X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEk5CisjZGVmaW5lIERBR0I1X1JEQ0xJOV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTlfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJOV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTlfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJOV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJOV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEk5X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEkxMAorI2RlZmluZSBEQUdCNV9SRENMSTEwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkRDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9SRENMSTEwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfUkRDTEkxMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNV9SRENMSTEwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjVfUkRDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNV9SRENMSTEwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I1X1JEQ0xJMTEKKyNkZWZpbmUgREFHQjVfUkRDTEkxMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9SRENMSTExX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfUkRDTEkxMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1JEQ0xJMTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9SRENMSTExX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfUkRDTEkxMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRENMSTExX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1JEQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRDTEkxMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9SRENMSTExX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9SRENMSTExX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9SRENMSTExX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9SRENMSTExX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9SRENMSTExX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTExX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTExX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTExX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTExX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9SRENMSTEyCisjZGVmaW5lIERBR0I1X1JEQ0xJMTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTEyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJMTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTEyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJMTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJMTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRDTEkxMworI2RlZmluZSBEQUdCNV9SRENMSTEzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkRDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9SRENMSTEzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfUkRDTEkxM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNV9SRENMSTEzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjVfUkRDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNV9SRENMSTEzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEQ0xJMTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I1X1JEQ0xJMTQKKyNkZWZpbmUgREFHQjVfUkRDTEkxNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9SRENMSTE0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfUkRDTEkxNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1JEQ0xJMTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9SRENMSTE0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfUkRDTEkxNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRENMSTE0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1JEQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRDTEkxNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9SRENMSTE0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9SRENMSTE0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9SRENMSTE0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9SRENMSTE0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9SRENMSTE0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTE0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTE0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTE0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRENMSTE0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9SRENMSTE1CisjZGVmaW5lIERBR0I1X1JEQ0xJMTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSTE1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEQ0xJMTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRENMSTE1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEQ0xJMTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9SRENMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEQ0xJMTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRDTEkxNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRfQ05UTAorI2RlZmluZSBEQUdCNV9SRF9DTlRMX19TQ0xLX0ZSRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCNV9SRF9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I1X1JEX0NOVExfX0lPX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNV9SRF9DTlRMX19TSEFSRV9WQ19OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERBR0I1X1JEX0NOVExfX1NDTEtfRlJFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I1X1JEX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRjBMCisjZGVmaW5lIERBR0I1X1JEX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERBR0I1X1JEX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERBR0I1X1JEX0NOVExfX0lPX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDBMCisjZGVmaW5lIERBR0I1X1JEX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERBR0I1X1JEX0NOVExfX1NIQVJFX1ZDX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MDAwMDBMCisvL0RBR0I1X1JEX0dNSV9DTlRMCisjZGVmaW5lIERBR0I1X1JEX0dNSV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRF9HTUlfQ05UTF9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjVfUkRfR01JX0NOVExfX01BWF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0I1X1JEX0dNSV9DTlRMX19MQVpZX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNV9SRF9HTUlfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCNV9SRF9HTUlfQ05UTF9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCNV9SRF9HTUlfQ05UTF9fTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRTAwTAorI2RlZmluZSBEQUdCNV9SRF9HTUlfQ05UTF9fTEFaWV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFFMDAwTAorLy9EQUdCNV9SRF9BRERSX0RBR0IKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX19XSE9BTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9fREFHQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9fV0hPQU1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisvL0RBR0I1X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjVfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNV9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I1X1JEX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjVfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjVfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I1X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjVfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCNV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0I1X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0I1X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCNV9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0I1X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjVfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjVfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCNV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjVfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCNV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjVfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCNV9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I1X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMQorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjEKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNV9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjVfUkRfVkMwX0NOVEwKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX1ZDMF9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9SRF9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRF9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1JEX1ZDMF9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMwX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfUkRfVkMxX0NOVEwKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX1ZDMV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9SRF9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRF9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1JEX1ZDMV9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMxX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfUkRfVkMyX0NOVEwKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX1ZDMl9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9SRF9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRF9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1JEX1ZDMl9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMyX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfUkRfVkMzX0NOVEwKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX1ZDM19DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9SRF9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRF9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1JEX1ZDM19DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkMzX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfUkRfVkM0X0NOVEwKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX1ZDNF9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9SRF9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRF9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1JEX1ZDNF9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM0X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfUkRfVkM1X0NOVEwKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX1ZDNV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9SRF9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRF9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1JEX1ZDNV9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM1X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfUkRfVkM2X0NOVEwKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX1ZDNl9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9SRF9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRF9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1JEX1ZDNl9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM2X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfUkRfVkM3X0NOVEwKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEX1ZDN19DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9SRF9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1JEX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9SRF9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1JEX1ZDN19DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfVkM3X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfUkRfQ05UTF9NSVNDCisjZGVmaW5lIERBR0I1X1JEX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRF9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9NSVNDX19JT19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1JEX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9NSVNDX19FQV9DQ19MRUdBQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNV9SRF9DTlRMX01JU0NfX1VUQ0wyX0NJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I1X1JEX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZDMEwKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9NSVNDX19JT19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RTAwMEwKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9NSVNDX19FQV9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9NSVNDX19VVENMMl9DSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgREFHQjVfUkRfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfUkRfVExCX0NSRURJVAorI2RlZmluZSBEQUdCNV9SRF9UTEJfQ1JFRElUX19UTEIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkRfVExCX0NSRURJVF9fVExCMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I1X1JEX1RMQl9DUkVESVRfX1RMQjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCNV9SRF9UTEJfQ1JFRElUX19UTEIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgREFHQjVfUkRfVExCX0NSRURJVF9fVExCNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNV9SRF9UTEJfQ1JFRElUX19UTEI1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1JEX1RMQl9DUkVESVRfX1RMQjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I1X1JEX1RMQl9DUkVESVRfX1RMQjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERBR0I1X1JEX1RMQl9DUkVESVRfX1RMQjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIERBR0I1X1JEX1RMQl9DUkVESVRfX1RMQjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjgwMDBMCisjZGVmaW5lIERBR0I1X1JEX1RMQl9DUkVESVRfX1RMQjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGMDAwMDBMCisjZGVmaW5lIERBR0I1X1JEX1RMQl9DUkVESVRfX1RMQjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0UwMDAwMDBMCisvL0RBR0I1X1JEQ0xJX0FTS19QRU5ESU5HCisjZGVmaW5lIERBR0I1X1JEQ0xJX0FTS19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSV9BU0tfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNV9SRENMSV9HT19QRU5ESU5HCisjZGVmaW5lIERBR0I1X1JEQ0xJX0dPX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSV9HT19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNV9SRENMSV9HQkxTRU5EX1BFTkRJTkcKKyNkZWZpbmUgREFHQjVfUkRDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1JEQ0xJX1RMQl9QRU5ESU5HCisjZGVmaW5lIERBR0I1X1JEQ0xJX1RMQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSV9UTEJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNV9SRENMSV9PQVJCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjVfUkRDTElfT0FSQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JEQ0xJX09BUkJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1JEQ0xJX09TRF9QRU5ESU5HCisjZGVmaW5lIERBR0I1X1JEQ0xJX09TRF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRENMSV9PU0RfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNV9XUkNMSTAKKyNkZWZpbmUgREFHQjVfV1JDTEkwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEkwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEkwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEkwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTEKKyNkZWZpbmUgREFHQjVfV1JDTEkxX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEkxX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEkxX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEkxX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTIKKyNkZWZpbmUgREFHQjVfV1JDTEkyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEkyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEkyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEkyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTMKKyNkZWZpbmUgREFHQjVfV1JDTEkzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEkzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEkzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEkzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTQKKyNkZWZpbmUgREFHQjVfV1JDTEk0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEk0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEk0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEk0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTUKKyNkZWZpbmUgREFHQjVfV1JDTEk1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEk1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEk1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEk1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTYKKyNkZWZpbmUgREFHQjVfV1JDTEk2X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTZfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEk2X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJNl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTZfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEk2X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTZfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEk2X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTZfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTZfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTZfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTZfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTZfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTZfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTZfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTZfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTZfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTcKKyNkZWZpbmUgREFHQjVfV1JDTEk3X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTdfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEk3X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJN19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTdfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEk3X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTdfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEk3X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTdfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTdfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTdfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTdfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTdfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTdfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTdfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTdfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTdfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTgKKyNkZWZpbmUgREFHQjVfV1JDTEk4X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSThfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEk4X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJOF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSThfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEk4X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSThfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEk4X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSThfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSThfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSThfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSThfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSThfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSThfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSThfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSThfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSThfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTkKKyNkZWZpbmUgREFHQjVfV1JDTEk5X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTlfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEk5X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJOV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTlfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEk5X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTlfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEk5X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTlfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTlfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTlfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTlfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTlfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTlfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTlfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTlfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTlfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTEwCisjZGVmaW5lIERBR0I1X1dSQ0xJMTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUkNMSTEwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1dSQ0xJMTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9XUkNMSTEwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1dSQ0xJMTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9XUkNMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1dSQ0xJMTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfV1JDTEkxMQorI2RlZmluZSBEQUdCNV9XUkNMSTExX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9XUkNMSTExX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfV1JDTEkxMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNV9XUkNMSTExX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjVfV1JDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNV9XUkNMSTExX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I1X1dSQ0xJMTIKKyNkZWZpbmUgREFHQjVfV1JDTEkxMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTEyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEkxMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJMTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTEyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEkxMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEkxMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTEyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUkNMSTEzCisjZGVmaW5lIERBR0I1X1dSQ0xJMTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUkNMSTEzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1dSQ0xJMTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9XUkNMSTEzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1dSQ0xJMTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9XUkNMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1dSQ0xJMTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JDTEkxM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfV1JDTEkxNAorI2RlZmluZSBEQUdCNV9XUkNMSTE0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9XUkNMSTE0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfV1JDTEkxNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNV9XUkNMSTE0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjVfV1JDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNV9XUkNMSTE0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSQ0xJMTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I1X1dSQ0xJMTUKKyNkZWZpbmUgREFHQjVfV1JDTEkxNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUkNMSTE1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JDTEkxNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSQ0xJMTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUkNMSTE1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjVfV1JDTEkxNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X1dSQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JDTEkxNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUkNMSTE1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNV9XUl9DTlRMCisjZGVmaW5lIERBR0I1X1dSX0NOVExfX1NDTEtfRlJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUl9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0I1X1dSX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9fSU9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQUdCNV9XUl9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I1X1dSX0NOVExfX1NIQVJFX1ZDX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9fU0NMS19GUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9fSU9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBFMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9fU0hBUkVfVkNfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwMDAwMEwKKy8vREFHQjVfV1JfR01JX0NOVEwKKyNkZWZpbmUgREFHQjVfV1JfR01JX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX0dNSV9DTlRMX19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNV9XUl9HTUlfQ05UTF9fTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjVfV1JfR01JX0NOVExfX0xBWllfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1dSX0dNSV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0I1X1dSX0dNSV9DTlRMX19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0I1X1dSX0dNSV9DTlRMX19NQVhfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFFMDBMCisjZGVmaW5lIERBR0I1X1dSX0dNSV9DTlRMX19MQVpZX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUUwMDBMCisvL0RBR0I1X1dSX0FERFJfREFHQgorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfX1dIT0FNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX19XSE9BTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKy8vREFHQjVfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNV9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I1X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVIKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNV9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjVfV1JfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCNV9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjVfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCNV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjVfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCNV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0I1X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjVfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I1X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjVfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I1X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjVfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCNV9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCNV9BVENWTV9XUl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNV9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCNV9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0I1X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjVfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDAKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjVfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMQorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I1X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjVfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNV9XUl9EQVRBX0RBR0IKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX19EQUdCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX19XSE9BTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9fREFHQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9fV0hPQU1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisvL0RBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I1X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMQorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjEKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjVfV1JfVkMwX0NOVEwKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX1ZDMF9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9XUl9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUl9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX1ZDMF9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMwX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfV1JfVkMxX0NOVEwKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX1ZDMV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9XUl9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUl9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX1ZDMV9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMxX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfV1JfVkMyX0NOVEwKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX1ZDMl9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9XUl9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUl9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX1ZDMl9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMyX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfV1JfVkMzX0NOVEwKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX1ZDM19DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9XUl9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUl9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX1ZDM19DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkMzX0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfV1JfVkM0X0NOVEwKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX1ZDNF9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9XUl9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUl9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX1ZDNF9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM0X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfV1JfVkM1X0NOVEwKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX1ZDNV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9XUl9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUl9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX1ZDNV9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM1X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfV1JfVkM2X0NOVEwKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX1ZDNl9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9XUl9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUl9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX1ZDNl9DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM2X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfV1JfVkM3X0NOVEwKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX1NUT1JfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSX1ZDN19DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNV9XUl9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X1dSX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNV9XUl9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX1ZDN19DTlRMX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX1NUT1JfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdFMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfVkM3X0NOVExfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vREFHQjVfV1JfQ05UTF9NSVNDCisjZGVmaW5lIERBR0I1X1dSX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUl9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9NSVNDX19JT19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I1X1dSX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9NSVNDX19FQV9DQ19MRUdBQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNV9XUl9DTlRMX01JU0NfX1VUQ0wyX0NJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I1X1dSX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZDMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9NSVNDX19JT19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RTAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9NSVNDX19FQV9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9NSVNDX19VVENMMl9DSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgREFHQjVfV1JfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjVfV1JfVExCX0NSRURJVAorI2RlZmluZSBEQUdCNV9XUl9UTEJfQ1JFRElUX19UTEIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JfVExCX0NSRURJVF9fVExCMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I1X1dSX1RMQl9DUkVESVRfX1RMQjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCNV9XUl9UTEJfQ1JFRElUX19UTEIzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgREFHQjVfV1JfVExCX0NSRURJVF9fVExCNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNV9XUl9UTEJfQ1JFRElUX19UTEI1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I1X1dSX1RMQl9DUkVESVRfX1RMQjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I1X1dSX1RMQl9DUkVESVRfX1RMQjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIERBR0I1X1dSX1RMQl9DUkVESVRfX1RMQjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIERBR0I1X1dSX1RMQl9DUkVESVRfX1RMQjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjgwMDBMCisjZGVmaW5lIERBR0I1X1dSX1RMQl9DUkVESVRfX1RMQjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGMDAwMDBMCisjZGVmaW5lIERBR0I1X1dSX1RMQl9DUkVESVRfX1RMQjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0UwMDAwMDBMCisvL0RBR0I1X1dSX0RBVEFfQ1JFRElUCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfQ1JFRElUX19ETE9DS19WQ19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0NSRURJVF9fTEFSR0VfQlVSU1RfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfV1JfREFUQV9DUkVESVRfX01JRERMRV9CVVJTVF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNV9XUl9EQVRBX0NSRURJVF9fU01BTExfQlVSU1RfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1dSX0RBVEFfQ1JFRElUX19ETE9DS19WQ19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfQ1JFRElUX19MQVJHRV9CVVJTVF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfQ1JFRElUX19NSURETEVfQlVSU1RfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERBR0I1X1dSX0RBVEFfQ1JFRElUX19TTUFMTF9CVVJTVF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL0RBR0I1X1dSX01JU0NfQ1JFRElUCisjZGVmaW5lIERBR0I1X1dSX01JU0NfQ1JFRElUX19BVE9NSUNfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9XUl9NSVNDX0NSRURJVF9fRExPQ0tfVkNfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjVfV1JfTUlTQ19DUkVESVRfX09TRF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0I1X1dSX01JU0NfQ1JFRElUX19PU0RfRExPQ0tfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjVfV1JfTUlTQ19DUkVESVRfX0FUT01JQ19DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjVfV1JfTUlTQ19DUkVESVRfX0RMT0NLX1ZDX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjVfV1JfTUlTQ19DUkVESVRfX09TRF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkUwMEwKKyNkZWZpbmUgREFHQjVfV1JfTUlTQ19DUkVESVRfX09TRF9ETE9DS19DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGMDAwMEwKKy8vREFHQjVfV1JDTElfQVNLX1BFTkRJTkcKKyNkZWZpbmUgREFHQjVfV1JDTElfQVNLX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJX0FTS19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1dSQ0xJX0dPX1BFTkRJTkcKKyNkZWZpbmUgREFHQjVfV1JDTElfR09fUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJX0dPX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1dSQ0xJX0dCTFNFTkRfUEVORElORworI2RlZmluZSBEQUdCNV9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjVfV1JDTElfVExCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjVfV1JDTElfVExCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJX1RMQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1dSQ0xJX09BUkJfUEVORElORworI2RlZmluZSBEQUdCNV9XUkNMSV9PQVJCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JDTElfT0FSQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjVfV1JDTElfT1NEX1BFTkRJTkcKKyNkZWZpbmUgREFHQjVfV1JDTElfT1NEX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJX09TRF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1dSQ0xJX0RCVVNfQVNLX1BFTkRJTkcKKyNkZWZpbmUgREFHQjVfV1JDTElfREJVU19BU0tfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1dSQ0xJX0RCVVNfQVNLX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1dSQ0xJX0RCVVNfR09fUEVORElORworI2RlZmluZSBEQUdCNV9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JDTElfREJVU19HT19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjVfREFHQl9ETFkKKyNkZWZpbmUgREFHQjVfREFHQl9ETFlfX0RMWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X0RBR0JfRExZX19DTElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9EQUdCX0RMWV9fUE9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I1X0RBR0JfRExZX19ETFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0I1X0RBR0JfRExZX19DTElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0I1X0RBR0JfRExZX19QT1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL0RBR0I1X0NOVExfTUlTQworI2RlZmluZSBEQUdCNV9DTlRMX01JU0NfX0VBX1ZDMF9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfQ05UTF9NSVNDX19FQV9WQzFfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkMyX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNV9DTlRMX01JU0NfX0VBX1ZDM19SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjVfQ05UTF9NSVNDX19FQV9WQzRfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkM1X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQUdCNV9DTlRMX01JU0NfX0VBX1ZDNl9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkM3X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjVfQ05UTF9NSVNDX19CV19JTklUX0NZQ0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0NfX0JXX1JXX0dBUF9DWUNMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkMwX1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkMxX1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkMyX1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkMzX1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkM0X1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkM1X1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkM2X1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fRUFfVkM3X1JFTUFQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fQldfSU5JVF9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQ19fQldfUldfR0FQX0NZQ0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL0RBR0I1X0NOVExfTUlTQzIKKyNkZWZpbmUgREFHQjVfQ05UTF9NSVNDMl9fVVJHX0JPT1NUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQzJfX1VSR19IQUxUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVRX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgREFHQjVfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFVF9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I1X0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVFfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVUX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjVfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJXUl9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I1X0NOVExfTUlTQzJfX0RJU0FCTEVfVExCUkRfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX0VBV1JSRVFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVJEUkVRX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0I1X0NOVExfTUlTQzJfX1NXQVBfQ1RMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19SRFJFVF9GSUZPX1BFUkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgREFHQjVfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19ETE9DS19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19VUkdfQk9PU1RfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19VUkdfSEFMVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVRX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVUX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVRX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVUX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX1RMQldSX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX1RMQlJEX0NHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX0VBV1JSRVFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19ESVNBQkxFX0VBUkRSRVFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19TV0FQX0NUTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19SRFJFVF9GSUZPX1BFUkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNV9DTlRMX01JU0MyX19SRFJFVF9GSUZPX0RMT0NLX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0UwMDAwTAorLy9EQUdCNV9GSUZPX0VNUFRZCisjZGVmaW5lIERBR0I1X0ZJRk9fRU1QVFlfX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9GSUZPX0VNUFRZX19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9EQUdCNV9GSUZPX0ZVTEwKKyNkZWZpbmUgREFHQjVfRklGT19GVUxMX19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X0ZJRk9fRlVMTF9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkZMCisvL0RBR0I1X1dSX0NSRURJVFNfRlVMTAorI2RlZmluZSBEQUdCNV9XUl9DUkVESVRTX0ZVTExfX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfV1JfQ1JFRElUU19GVUxMX19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGRkZGRkwKKy8vREFHQjVfUkRfQ1JFRElUU19GVUxMCisjZGVmaW5lIERBR0I1X1JEX0NSRURJVFNfRlVMTF9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRF9DUkVESVRTX0ZVTExfX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGTAorLy9EQUdCNV9QRVJGQ09VTlRFUl9MTworI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjVfUEVSRkNPVU5URVJfSEkKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vREFHQjVfUEVSRkNPVU5URVIwX0NGRworI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RBR0I1X1BFUkZDT1VOVEVSMV9DRkcKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EQUdCNV9QRVJGQ09VTlRFUjJfQ0ZHCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUjJfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSMl9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIyX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVIyX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vREFHQjVfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I1X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorLy9EQUdCNV9SRVNFUlZFMAorI2RlZmluZSBEQUdCNV9SRVNFUlZFMF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkVTRVJWRTBfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjVfUkVTRVJWRTEKKyNkZWZpbmUgREFHQjVfUkVTRVJWRTFfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JFU0VSVkUxX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1JFU0VSVkUyCisjZGVmaW5lIERBR0I1X1JFU0VSVkUyX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRVNFUlZFMl9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNV9SRVNFUlZFMworI2RlZmluZSBEQUdCNV9SRVNFUlZFM19fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkVTRVJWRTNfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjVfUkVTRVJWRTQKKyNkZWZpbmUgREFHQjVfUkVTRVJWRTRfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JFU0VSVkU0X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1JFU0VSVkU1CisjZGVmaW5lIERBR0I1X1JFU0VSVkU1X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRVNFUlZFNV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNV9SRVNFUlZFNgorI2RlZmluZSBEQUdCNV9SRVNFUlZFNl9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkVTRVJWRTZfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjVfUkVTRVJWRTcKKyNkZWZpbmUgREFHQjVfUkVTRVJWRTdfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JFU0VSVkU3X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1JFU0VSVkU4CisjZGVmaW5lIERBR0I1X1JFU0VSVkU4X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRVNFUlZFOF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNV9SRVNFUlZFOQorI2RlZmluZSBEQUdCNV9SRVNFUlZFOV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkVTRVJWRTlfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjVfUkVTRVJWRTEwCisjZGVmaW5lIERBR0I1X1JFU0VSVkUxMF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRVNFUlZFMTBfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNV9SRVNFUlZFMTEKKyNkZWZpbmUgREFHQjVfUkVTRVJWRTExX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I1X1JFU0VSVkUxMV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I1X1JFU0VSVkUxMgorI2RlZmluZSBEQUdCNV9SRVNFUlZFMTJfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjVfUkVTRVJWRTEyX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjVfUkVTRVJWRTEzCisjZGVmaW5lIERBR0I1X1JFU0VSVkUxM19fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNV9SRVNFUlZFMTNfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZGFnYl9kYWdiZGVjNgorLy9EQUdCNl9SRENMSTAKKyNkZWZpbmUgREFHQjZfUkRDTEkwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEkwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEkwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEkwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTEKKyNkZWZpbmUgREFHQjZfUkRDTEkxX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEkxX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEkxX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEkxX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTIKKyNkZWZpbmUgREFHQjZfUkRDTEkyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEkyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEkyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEkyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTMKKyNkZWZpbmUgREFHQjZfUkRDTEkzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEkzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEkzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEkzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTQKKyNkZWZpbmUgREFHQjZfUkRDTEk0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEk0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEk0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEk0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTUKKyNkZWZpbmUgREFHQjZfUkRDTEk1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEk1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEk1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEk1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTYKKyNkZWZpbmUgREFHQjZfUkRDTEk2X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTZfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEk2X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJNl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTZfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEk2X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTZfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEk2X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTZfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTZfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTZfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTZfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTZfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTZfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTZfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTZfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTZfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTcKKyNkZWZpbmUgREFHQjZfUkRDTEk3X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTdfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEk3X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJN19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTdfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEk3X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTdfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEk3X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTdfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTdfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTdfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTdfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTdfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTdfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTdfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTdfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTdfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTgKKyNkZWZpbmUgREFHQjZfUkRDTEk4X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSThfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEk4X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJOF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSThfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEk4X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSThfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEk4X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSThfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSThfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSThfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSThfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSThfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSThfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSThfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSThfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSThfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTkKKyNkZWZpbmUgREFHQjZfUkRDTEk5X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTlfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEk5X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJOV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTlfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEk5X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTlfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEk5X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTlfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTlfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTlfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTlfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTlfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTlfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTlfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTlfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTlfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTEwCisjZGVmaW5lIERBR0I2X1JEQ0xJMTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRENMSTEwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X1JEQ0xJMTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9SRENMSTEwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I2X1JEQ0xJMTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNl9SRENMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I2X1JEQ0xJMTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjZfUkRDTEkxMQorI2RlZmluZSBEQUdCNl9SRENMSTExX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9SRENMSTExX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfUkRDTEkxMV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9SRENMSTExX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfUkRDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRENMSTExX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTFfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1JEQ0xJMTIKKyNkZWZpbmUgREFHQjZfUkRDTEkxMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTEyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEkxMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJMTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTEyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEkxMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTEyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEkxMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTEyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTEyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTEyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTEyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTEyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTEyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTEyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTEyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTEyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRENMSTEzCisjZGVmaW5lIERBR0I2X1JEQ0xJMTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRENMSTEzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X1JEQ0xJMTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9SRENMSTEzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I2X1JEQ0xJMTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNl9SRENMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I2X1JEQ0xJMTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRDTEkxM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjZfUkRDTEkxNAorI2RlZmluZSBEQUdCNl9SRENMSTE0X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9SRENMSTE0X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfUkRDTEkxNF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9SRENMSTE0X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfUkRDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRENMSTE0X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEQ0xJMTRfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1JEQ0xJMTUKKyNkZWZpbmUgREFHQjZfUkRDTEkxNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9SRENMSTE1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRDTEkxNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEQ0xJMTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRENMSTE1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRDTEkxNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9SRENMSTE1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1JEQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRDTEkxNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRENMSTE1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9SRENMSTE1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9SRENMSTE1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRENMSTE1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRENMSTE1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTE1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTE1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTE1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRENMSTE1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRF9DTlRMCisjZGVmaW5lIERBR0I2X1JEX0NOVExfX1NDTEtfRlJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRF9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0I2X1JEX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9fSU9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBEQUdCNl9SRF9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I2X1JEX0NOVExfX1NIQVJFX1ZDX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9fU0NMS19GUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGMEwKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9fVkNfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkMwMEwKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9fSU9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBFMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9fU0hBUkVfVkNfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwMDAwMEwKKy8vREFHQjZfUkRfR01JX0NOVEwKKyNkZWZpbmUgREFHQjZfUkRfR01JX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEX0dNSV9DTlRMX19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNl9SRF9HTUlfQ05UTF9fTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjZfUkRfR01JX0NOVExfX0xBWllfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I2X1JEX0dNSV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0I2X1JEX0dNSV9DTlRMX19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0I2X1JEX0dNSV9DTlRMX19NQVhfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFFMDBMCisjZGVmaW5lIERBR0I2X1JEX0dNSV9DTlRMX19MQVpZX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUUwMDBMCisvL0RBR0I2X1JEX0FERFJfREFHQgorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfX1dIT0FNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX19XSE9BTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKy8vREFHQjZfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNl9SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I2X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVIKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I2X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjZfUkRfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCNl9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCNl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjZfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCNl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0I2X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjZfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjZfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I2X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjZfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCNl9MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCNl9BVENWTV9SRF9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0I2X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNl9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0I2X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCNl9BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0I2X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjZfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDAKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjZfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMQorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I2X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNl9SRF9WQzBfQ05UTAorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfVkMwX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1JEX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUkRfVkMwX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzBfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9SRF9WQzFfQ05UTAorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfVkMxX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1JEX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUkRfVkMxX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzFfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9SRF9WQzJfQ05UTAorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfVkMyX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1JEX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUkRfVkMyX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzJfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9SRF9WQzNfQ05UTAorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfVkMzX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1JEX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUkRfVkMzX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzNfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9SRF9WQzRfQ05UTAorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfVkM0X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1JEX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUkRfVkM0X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzRfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9SRF9WQzVfQ05UTAorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfVkM1X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1JEX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUkRfVkM1X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzVfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9SRF9WQzZfQ05UTAorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfVkM2X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1JEX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUkRfVkM2X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzZfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9SRF9WQzdfQ05UTAorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRfVkM3X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1JEX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfUkRfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1JEX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUkRfVkM3X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9WQzdfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9SRF9DTlRMX01JU0MKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNl9SRF9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQUdCNl9SRF9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I2X1JEX0NOVExfTUlTQ19fVVRDTDJfQ0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjZfUkRfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9SRF9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCNl9SRF9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkMwTAorI2RlZmluZSBEQUdCNl9SRF9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdFMDAwTAorI2RlZmluZSBEQUdCNl9SRF9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9DTlRMX01JU0NfX1VUQ0wyX0NJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEQUdCNl9SRF9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9SRF9UTEJfQ1JFRElUCisjZGVmaW5lIERBR0I2X1JEX1RMQl9DUkVESVRfX1RMQjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRF9UTEJfQ1JFRElUX19UTEIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjZfUkRfVExCX0NSRURJVF9fVExCMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0I2X1JEX1RMQl9DUkVESVRfX1RMQjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQUdCNl9SRF9UTEJfQ1JFRElUX19UTEI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I2X1JEX1RMQl9DUkVESVRfX1RMQjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfUkRfVExCX0NSRURJVF9fVExCMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjZfUkRfVExCX0NSRURJVF9fVExCMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgREFHQjZfUkRfVExCX0NSRURJVF9fVExCMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgREFHQjZfUkRfVExCX0NSRURJVF9fVExCM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGODAwMEwKKyNkZWZpbmUgREFHQjZfUkRfVExCX0NSRURJVF9fVExCNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKyNkZWZpbmUgREFHQjZfUkRfVExCX0NSRURJVF9fVExCNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRTAwMDAwMEwKKy8vREFHQjZfUkRDTElfQVNLX1BFTkRJTkcKKyNkZWZpbmUgREFHQjZfUkRDTElfQVNLX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJX0FTS19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I2X1JEQ0xJX0dPX1BFTkRJTkcKKyNkZWZpbmUgREFHQjZfUkRDTElfR09fUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJX0dPX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I2X1JEQ0xJX0dCTFNFTkRfUEVORElORworI2RlZmluZSBEQUdCNl9SRENMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfUkRDTElfVExCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjZfUkRDTElfVExCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJX1RMQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I2X1JEQ0xJX09BUkJfUEVORElORworI2RlZmluZSBEQUdCNl9SRENMSV9PQVJCX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkRDTElfT0FSQl9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfUkRDTElfT1NEX1BFTkRJTkcKKyNkZWZpbmUgREFHQjZfUkRDTElfT1NEX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEQ0xJX09TRF9QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I2X1dSQ0xJMAorI2RlZmluZSBEQUdCNl9XUkNMSTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEkwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEkwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJMQorI2RlZmluZSBEQUdCNl9XUkNMSTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEkxX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEkxX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJMgorI2RlZmluZSBEQUdCNl9XUkNMSTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEkyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEkyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJMworI2RlZmluZSBEQUdCNl9XUkNMSTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEkzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEkzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJNAorI2RlZmluZSBEQUdCNl9XUkNMSTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEk0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEk0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJNQorI2RlZmluZSBEQUdCNl9XUkNMSTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEk1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEk1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJNgorI2RlZmluZSBEQUdCNl9XUkNMSTZfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEk2X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTZfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEk2X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTZfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTZfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJNl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJNworI2RlZmluZSBEQUdCNl9XUkNMSTdfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEk3X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTdfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEk3X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTdfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJN19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTdfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJN19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJOAorI2RlZmluZSBEQUdCNl9XUkNMSThfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEk4X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSThfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEk4X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSThfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSThfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJOQorI2RlZmluZSBEQUdCNl9XUkNMSTlfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEk5X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTlfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEk5X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTlfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTlfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJOV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJMTAKKyNkZWZpbmUgREFHQjZfV1JDTEkxMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9XUkNMSTEwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfV1JDTEkxMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1dSQ0xJMTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9XUkNMSTEwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfV1JDTEkxMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1dSQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfV1JDTEkxMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9XUkNMSTExCisjZGVmaW5lIERBR0I2X1dSQ0xJMTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUkNMSTExX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X1dSQ0xJMTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9XUkNMSTExX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I2X1dSQ0xJMTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNl9XUkNMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I2X1dSQ0xJMTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjZfV1JDTEkxMgorI2RlZmluZSBEQUdCNl9XUkNMSTEyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTEyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEkxMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTEyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTEyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSQ0xJMTMKKyNkZWZpbmUgREFHQjZfV1JDTEkxM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCNl9XUkNMSTEzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfV1JDTEkxM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1dSQ0xJMTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9XUkNMSTEzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfV1JDTEkxM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X1dSQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfV1JDTEkxM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUkNMSTEzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9XUkNMSTE0CisjZGVmaW5lIERBR0I2X1dSQ0xJMTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUkNMSTE0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X1dSQ0xJMTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9XUkNMSTE0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I2X1dSQ0xJMTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNl9XUkNMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I2X1dSQ0xJMTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JDTEkxNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjZfV1JDTEkxNQorI2RlZmluZSBEQUdCNl9XUkNMSTE1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUkNMSTE1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JDTEkxNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCNl9XUkNMSTE1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfV1JDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUkNMSTE1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSQ0xJMTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I2X1dSX0NOVEwKKyNkZWZpbmUgREFHQjZfV1JfQ05UTF9fU0NMS19GUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX19WQ19NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjZfV1JfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX19JT19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERBR0I2X1dSX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjZfV1JfQ05UTF9fU0hBUkVfVkNfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQUdCNl9XUl9DTlRMX19TQ0xLX0ZSRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0YwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX19WQ19NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX19JT19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX19TSEFSRV9WQ19OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAwMDAwTAorLy9EQUdCNl9XUl9HTUlfQ05UTAorI2RlZmluZSBEQUdCNl9XUl9HTUlfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfR01JX0NOVExfX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I2X1dSX0dNSV9DTlRMX19NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCNl9XUl9HTUlfQ05UTF9fTEFaWV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfV1JfR01JX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjZfV1JfR01JX0NOVExfX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjZfV1JfR01JX0NOVExfX01BWF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUUwMEwKKyNkZWZpbmUgREFHQjZfV1JfR01JX0NOVExfX0xBWllfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRTAwMEwKKy8vREFHQjZfV1JfQUREUl9EQUdCCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9fREFHQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9fV0hPQU1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfX1dIT0FNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorLy9EQUdCNl9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1QKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I2X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjZfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUgorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I2X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNl9XUl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0I2X1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCNl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0I2X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCNl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0I2X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjZfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCNl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjZfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCNl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjZfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCNl9MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0I2X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0I2X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjZfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I2X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjZfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I2X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjZfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCNl9BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjAKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDEKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjZfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNl9XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I2X1dSX0RBVEFfREFHQgorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfX0RBR0JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfX1dIT0FNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX19EQUdCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX19FTkFCTEVfSlVNUF9BSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX19XSE9BTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKy8vREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDAKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjZfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMQorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I2X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCNl9XUl9WQzBfQ05UTAorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfVkMwX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1dSX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfVkMwX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfVkMwX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzBfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9XUl9WQzFfQ05UTAorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfVkMxX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1dSX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfVkMxX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfVkMxX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzFfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9XUl9WQzJfQ05UTAorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfVkMyX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1dSX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfVkMyX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfVkMyX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzJfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9XUl9WQzNfQ05UTAorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfVkMzX0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1dSX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfVkMzX0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfVkMzX0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzNfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9XUl9WQzRfQ05UTAorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfVkM0X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1dSX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfVkM0X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfVkM0X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzRfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9XUl9WQzVfQ05UTAorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfVkM1X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1dSX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfVkM1X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfVkM1X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzVfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9XUl9WQzZfQ05UTAorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfVkM2X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1dSX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfVkM2X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfVkM2X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzZfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9XUl9WQzdfQ05UTAorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fU1RPUl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JfVkM3X0NOVExfX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I2X1dSX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfV1JfVkM3X0NOVExfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I2X1dSX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfVkM3X0NOVExfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fU1RPUl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0UwTAorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9WQzdfQ05UTF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9EQUdCNl9XUl9DTlRMX01JU0MKKyNkZWZpbmUgREFHQjZfV1JfQ05UTF9NSVNDX19TVE9SX1BPT0xfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNl9XUl9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjZfV1JfQ05UTF9NSVNDX19TVE9SX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBEQUdCNl9XUl9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I2X1dSX0NOVExfTUlTQ19fVVRDTDJfQ0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjZfV1JfQ05UTF9NSVNDX19SRFJFVF9GSUZPX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCNl9XUl9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX01JU0NfX0VBX1BPT0xfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkMwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX01JU0NfX0lPX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdFMDAwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX01JU0NfX0VBX0NDX0xFR0FDWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX01JU0NfX1VUQ0wyX0NJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBEQUdCNl9XUl9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCNl9XUl9UTEJfQ1JFRElUCisjZGVmaW5lIERBR0I2X1dSX1RMQl9DUkVESVRfX1RMQjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUl9UTEJfQ1JFRElUX19UTEIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjZfV1JfVExCX0NSRURJVF9fVExCMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0I2X1dSX1RMQl9DUkVESVRfX1RMQjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBEQUdCNl9XUl9UTEJfQ1JFRElUX19UTEI0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I2X1dSX1RMQl9DUkVESVRfX1RMQjVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjZfV1JfVExCX0NSRURJVF9fVExCMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgREFHQjZfV1JfVExCX0NSRURJVF9fVExCMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgREFHQjZfV1JfVExCX0NSRURJVF9fVExCMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgREFHQjZfV1JfVExCX0NSRURJVF9fVExCM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGODAwMEwKKyNkZWZpbmUgREFHQjZfV1JfVExCX0NSRURJVF9fVExCNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUYwMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfVExCX0NSRURJVF9fVExCNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRTAwMDAwMEwKKy8vREFHQjZfV1JfREFUQV9DUkVESVQKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9DUkVESVRfX0RMT0NLX1ZDX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfQ1JFRElUX19MQVJHRV9CVVJTVF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9XUl9EQVRBX0NSRURJVF9fTUlERExFX0JVUlNUX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I2X1dSX0RBVEFfQ1JFRElUX19TTUFMTF9CVVJTVF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9DUkVESVRfX0RMT0NLX1ZDX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9DUkVESVRfX0xBUkdFX0JVUlNUX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9DUkVESVRfX01JRERMRV9CVVJTVF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgREFHQjZfV1JfREFUQV9DUkVESVRfX1NNQUxMX0JVUlNUX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vREFHQjZfV1JfTUlTQ19DUkVESVQKKyNkZWZpbmUgREFHQjZfV1JfTUlTQ19DUkVESVRfX0FUT01JQ19DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1dSX01JU0NfQ1JFRElUX19ETE9DS19WQ19OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCNl9XUl9NSVNDX0NSRURJVF9fT1NEX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjZfV1JfTUlTQ19DUkVESVRfX09TRF9ETE9DS19DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNl9XUl9NSVNDX0NSRURJVF9fQVRPTUlDX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCNl9XUl9NSVNDX0NSRURJVF9fRExPQ0tfVkNfTlVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCNl9XUl9NSVNDX0NSRURJVF9fT1NEX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRTAwTAorI2RlZmluZSBEQUdCNl9XUl9NSVNDX0NSRURJVF9fT1NEX0RMT0NLX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0YwMDAwTAorLy9EQUdCNl9XUkNMSV9BU0tfUEVORElORworI2RlZmluZSBEQUdCNl9XUkNMSV9BU0tfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTElfQVNLX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfV1JDTElfR09fUEVORElORworI2RlZmluZSBEQUdCNl9XUkNMSV9HT19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTElfR09fUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfV1JDTElfR0JMU0VORF9QRU5ESU5HCisjZGVmaW5lIERBR0I2X1dSQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUkNMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNl9XUkNMSV9UTEJfUEVORElORworI2RlZmluZSBEQUdCNl9XUkNMSV9UTEJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTElfVExCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfV1JDTElfT0FSQl9QRU5ESU5HCisjZGVmaW5lIERBR0I2X1dSQ0xJX09BUkJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUkNMSV9PQVJCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNl9XUkNMSV9PU0RfUEVORElORworI2RlZmluZSBEQUdCNl9XUkNMSV9PU0RfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTElfT1NEX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfV1JDTElfREJVU19BU0tfUEVORElORworI2RlZmluZSBEQUdCNl9XUkNMSV9EQlVTX0FTS19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfV1JDTElfREJVU19BU0tfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfV1JDTElfREJVU19HT19QRU5ESU5HCisjZGVmaW5lIERBR0I2X1dSQ0xJX0RCVVNfR09fUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUkNMSV9EQlVTX0dPX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNl9EQUdCX0RMWQorI2RlZmluZSBEQUdCNl9EQUdCX0RMWV9fRExZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfREFHQl9ETFlfX0NMSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X0RBR0JfRExZX19QT1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjZfREFHQl9ETFlfX0RMWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjZfREFHQl9ETFlfX0NMSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjZfREFHQl9ETFlfX1BPU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vREFHQjZfQ05UTF9NSVNDCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQ19fRUFfVkMwX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9DTlRMX01JU0NfX0VBX1ZDMV9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzJfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I2X0NOVExfTUlTQ19fRUFfVkMzX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCNl9DTlRMX01JU0NfX0VBX1ZDNF9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzVfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQ19fRUFfVkM2X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzdfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCNl9DTlRMX01JU0NfX0JXX0lOSVRfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I2X0NOVExfTUlTQ19fQldfUldfR0FQX0NZQ0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzBfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzFfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzJfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzNfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzRfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzVfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzZfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19FQV9WQzdfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19CV19JTklUX0NZQ0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDX19CV19SV19HQVBfQ1lDTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vREFHQjZfQ05UTF9NSVNDMgorI2RlZmluZSBEQUdCNl9DTlRMX01JU0MyX19VUkdfQk9PU1RfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDMl9fVVJHX0hBTFRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVFfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBEQUdCNl9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVUX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFUV9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVRfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCNl9DTlRMX01JU0MyX19ESVNBQkxFX1RMQldSX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJSRF9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfRUFXUlJFUV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9DTlRMX01JU0MyX19ESVNBQkxFX0VBUkRSRVFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgREFHQjZfQ05UTF9NSVNDMl9fU1dBUF9DVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fUEVSRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBEQUdCNl9DTlRMX01JU0MyX19SRFJFVF9GSUZPX0RMT0NLX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX1VSR19CT09TVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX1VSR19IQUxUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVFfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVRfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVFfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfUkRSRVRfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfVExCV1JfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfVExCUkRfQ0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfRUFXUlJFUV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX0RJU0FCTEVfRUFSRFJFUV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX1NXQVBfQ1RMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fUEVSRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I2X0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fRExPQ0tfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RTAwMDBMCisvL0RBR0I2X0ZJRk9fRU1QVFkKKyNkZWZpbmUgREFHQjZfRklGT19FTVBUWV9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X0ZJRk9fRU1QVFlfX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0RBR0I2X0ZJRk9fRlVMTAorI2RlZmluZSBEQUdCNl9GSUZPX0ZVTExfX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfRklGT19GVUxMX19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGRkwKKy8vREFHQjZfV1JfQ1JFRElUU19GVUxMCisjZGVmaW5lIERBR0I2X1dSX0NSRURJVFNfRlVMTF9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9XUl9DUkVESVRTX0ZVTExfX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGRkZGRkZGTAorLy9EQUdCNl9SRF9DUkVESVRTX0ZVTEwKKyNkZWZpbmUgREFHQjZfUkRfQ1JFRElUU19GVUxMX19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JEX0NSRURJVFNfRlVMTF9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkZMCisvL0RBR0I2X1BFUkZDT1VOVEVSX0xPCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNl9QRVJGQ09VTlRFUl9ISQorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9EQUdCNl9QRVJGQ09VTlRFUjBfQ0ZHCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vREFHQjZfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RBR0I2X1BFUkZDT1VOVEVSMl9DRkcKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSMl9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVIyX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjJfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUjJfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EQUdCNl9QRVJGQ09VTlRFUl9SU0xUX0NOVEwKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjZfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisvL0RBR0I2X1JFU0VSVkUwCisjZGVmaW5lIERBR0I2X1JFU0VSVkUwX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRVNFUlZFMF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNl9SRVNFUlZFMQorI2RlZmluZSBEQUdCNl9SRVNFUlZFMV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkVTRVJWRTFfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfUkVTRVJWRTIKKyNkZWZpbmUgREFHQjZfUkVTRVJWRTJfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JFU0VSVkUyX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I2X1JFU0VSVkUzCisjZGVmaW5lIERBR0I2X1JFU0VSVkUzX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRVNFUlZFM19fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNl9SRVNFUlZFNAorI2RlZmluZSBEQUdCNl9SRVNFUlZFNF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkVTRVJWRTRfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfUkVTRVJWRTUKKyNkZWZpbmUgREFHQjZfUkVTRVJWRTVfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JFU0VSVkU1X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I2X1JFU0VSVkU2CisjZGVmaW5lIERBR0I2X1JFU0VSVkU2X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRVNFUlZFNl9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNl9SRVNFUlZFNworI2RlZmluZSBEQUdCNl9SRVNFUlZFN19fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkVTRVJWRTdfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfUkVTRVJWRTgKKyNkZWZpbmUgREFHQjZfUkVTRVJWRThfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JFU0VSVkU4X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I2X1JFU0VSVkU5CisjZGVmaW5lIERBR0I2X1JFU0VSVkU5X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRVNFUlZFOV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNl9SRVNFUlZFMTAKKyNkZWZpbmUgREFHQjZfUkVTRVJWRTEwX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JFU0VSVkUxMF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I2X1JFU0VSVkUxMQorI2RlZmluZSBEQUdCNl9SRVNFUlZFMTFfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjZfUkVTRVJWRTExX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjZfUkVTRVJWRTEyCisjZGVmaW5lIERBR0I2X1JFU0VSVkUxMl9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCNl9SRVNFUlZFMTJfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCNl9SRVNFUlZFMTMKKyNkZWZpbmUgREFHQjZfUkVTRVJWRTEzX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I2X1JFU0VSVkUxM19fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9kYWdiX2RhZ2JkZWM3CisvL0RBR0I3X1JEQ0xJMAorI2RlZmluZSBEQUdCN19SRENMSTBfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEkwX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTBfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEkwX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTBfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTBfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJMQorI2RlZmluZSBEQUdCN19SRENMSTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEkxX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEkxX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJMgorI2RlZmluZSBEQUdCN19SRENMSTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEkyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEkyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJMworI2RlZmluZSBEQUdCN19SRENMSTNfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEkzX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTNfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEkzX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTNfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJM19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTNfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJM19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJNAorI2RlZmluZSBEQUdCN19SRENMSTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEk0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEk0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJNQorI2RlZmluZSBEQUdCN19SRENMSTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEk1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEk1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJNgorI2RlZmluZSBEQUdCN19SRENMSTZfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEk2X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTZfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEk2X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTZfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTZfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJNl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJNworI2RlZmluZSBEQUdCN19SRENMSTdfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEk3X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTdfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEk3X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTdfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJN19fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTdfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJN19fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJOAorI2RlZmluZSBEQUdCN19SRENMSThfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEk4X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSThfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEk4X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSThfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSThfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJOQorI2RlZmluZSBEQUdCN19SRENMSTlfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEk5X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTlfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEk5X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTlfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTlfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJOV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJMTAKKyNkZWZpbmUgREFHQjdfUkRDTEkxMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JEQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCN19SRENMSTEwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfUkRDTEkxMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1JEQ0xJMTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRENMSTEwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjdfUkRDTEkxMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCN19SRENMSTEwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I3X1JEQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjdfUkRDTEkxMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCN19SRENMSTEwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCN19SRENMSTEwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCN19SRENMSTEwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19SRENMSTEwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19SRENMSTEwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCN19SRENMSTExCisjZGVmaW5lIERBR0I3X1JEQ0xJMTFfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRENMSTExX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1JEQ0xJMTFfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19SRENMSTExX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1JEQ0xJMTFfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19SRENMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEQ0xJMTFfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxMV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfUkRDTEkxMgorI2RlZmluZSBEQUdCN19SRENMSTEyX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTEyX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEkxMl9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTEyX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTEyX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTJfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEQ0xJMTMKKyNkZWZpbmUgREFHQjdfUkRDTEkxM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JEQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCN19SRENMSTEzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfUkRDTEkxM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1JEQ0xJMTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRENMSTEzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjdfUkRDTEkxM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCN19SRENMSTEzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I3X1JEQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjdfUkRDTEkxM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCN19SRENMSTEzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCN19SRENMSTEzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCN19SRENMSTEzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19SRENMSTEzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19SRENMSTEzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCN19SRENMSTEzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCN19SRENMSTE0CisjZGVmaW5lIERBR0I3X1JEQ0xJMTRfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRENMSTE0X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1JEQ0xJMTRfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19SRENMSTE0X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1JEQ0xJMTRfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19SRENMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEQ0xJMTRfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRDTEkxNF9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfUkRDTEkxNQorI2RlZmluZSBEQUdCN19SRENMSTE1X19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRENMSTE1X19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRDTEkxNV9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRENMSTE1X19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfUkRDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRENMSTE1X19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEQ0xJMTVfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEX0NOVEwKKyNkZWZpbmUgREFHQjdfUkRfQ05UTF9fU0NMS19GUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JEX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRF9DTlRMX19WQ19NQVhfQldfV0lORE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjdfUkRfQ05UTF9fSU9fTEVWRUxfT1ZFUlJJREVfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCN19SRF9DTlRMX19JT19MRVZFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIERBR0I3X1JEX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjdfUkRfQ05UTF9fU0hBUkVfVkNfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBEQUdCN19SRF9DTlRMX19TQ0xLX0ZSRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCN19SRF9DTlRMX19DTElfTUFYX0JXX1dJTkRPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0YwTAorI2RlZmluZSBEQUdCN19SRF9DTlRMX19WQ19NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGQzAwTAorI2RlZmluZSBEQUdCN19SRF9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBEQUdCN19SRF9DTlRMX19JT19MRVZFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUwMDAwTAorI2RlZmluZSBEQUdCN19SRF9DTlRMX19JT19MRVZFTF9DT01QTFlfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAwMDAwTAorI2RlZmluZSBEQUdCN19SRF9DTlRMX19TSEFSRV9WQ19OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAwMDAwTAorLy9EQUdCN19SRF9HTUlfQ05UTAorI2RlZmluZSBEQUdCN19SRF9HTUlfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRfR01JX0NOVExfX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I3X1JEX0dNSV9DTlRMX19NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCN19SRF9HTUlfQ05UTF9fTEFaWV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjdfUkRfR01JX0NOVExfX0VBX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgREFHQjdfUkRfR01JX0NOVExfX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgREFHQjdfUkRfR01JX0NOVExfX01BWF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUUwMEwKKyNkZWZpbmUgREFHQjdfUkRfR01JX0NOVExfX0xBWllfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRTAwMEwKKy8vREFHQjdfUkRfQUREUl9EQUdCCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9fREFHQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9fV0hPQU1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfX0RBR0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfX1dIT0FNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorLy9EQUdCN19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1QKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I3X1JEX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjdfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUgorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjdfUkRfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCN19SRF9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCN19SRF9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0I3X1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0I3X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCN19SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0I3X1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjdfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCN19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCN19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjdfTDFUTEJfUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCN19MMVRMQl9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0I3X0wxVExCX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0I3X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjdfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I3X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjdfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1JEX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjdfQVRDVk1fUkRfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCN19BVENWTV9SRF9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjAKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDEKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjdfUkRfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19SRF9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I3X1JEX1ZDMF9DTlRMCisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9WQzBfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfUkRfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRF9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19SRF9WQzBfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1JEX1ZDMV9DTlRMCisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9WQzFfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfUkRfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRF9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19SRF9WQzFfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1JEX1ZDMl9DTlRMCisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9WQzJfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfUkRfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRF9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19SRF9WQzJfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDMl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1JEX1ZDM19DTlRMCisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9WQzNfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfUkRfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRF9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19SRF9WQzNfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDM19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1JEX1ZDNF9DTlRMCisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9WQzRfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfUkRfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRF9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19SRF9WQzRfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1JEX1ZDNV9DTlRMCisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9WQzVfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfUkRfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRF9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19SRF9WQzVfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1JEX1ZDNl9DTlRMCisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9WQzZfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfUkRfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRF9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19SRF9WQzZfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDNl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1JEX1ZDN19DTlRMCisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRF9WQzdfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfUkRfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19SRF9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfUkRfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19SRF9WQzdfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX1ZDN19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1JEX0NOVExfTUlTQworI2RlZmluZSBEQUdCN19SRF9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I3X1JEX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19SRF9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERBR0I3X1JEX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjdfUkRfQ05UTF9NSVNDX19VVENMMl9DSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCN19SRF9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1JEX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0I3X1JEX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGQzBMCisjZGVmaW5lIERBR0I3X1JEX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0UwMDBMCisjZGVmaW5lIERBR0I3X1JEX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERBR0I3X1JEX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX0NOVExfTUlTQ19fVVRDTDJfQ0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERBR0I3X1JEX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1JEX1RMQl9DUkVESVQKKyNkZWZpbmUgREFHQjdfUkRfVExCX0NSRURJVF9fVExCMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JEX1RMQl9DUkVESVRfX1RMQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCN19SRF9UTEJfQ1JFRElUX19UTEIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjdfUkRfVExCX0NSRURJVF9fVExCM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERBR0I3X1JEX1RMQl9DUkVESVRfX1RMQjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjdfUkRfVExCX0NSRURJVF9fVExCNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19SRF9UTEJfQ1JFRElUX19UTEIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCN19SRF9UTEJfQ1JFRElUX19UTEIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEQUdCN19SRF9UTEJfQ1JFRElUX19UTEIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBEQUdCN19SRF9UTEJfQ1JFRElUX19UTEIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorI2RlZmluZSBEQUdCN19SRF9UTEJfQ1JFRElUX19UTEI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorI2RlZmluZSBEQUdCN19SRF9UTEJfQ1JFRElUX19UTEI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNFMDAwMDAwTAorLy9EQUdCN19SRENMSV9BU0tfUEVORElORworI2RlZmluZSBEQUdCN19SRENMSV9BU0tfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTElfQVNLX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjdfUkRDTElfR09fUEVORElORworI2RlZmluZSBEQUdCN19SRENMSV9HT19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTElfR09fUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjdfUkRDTElfR0JMU0VORF9QRU5ESU5HCisjZGVmaW5lIERBR0I3X1JEQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRENMSV9HQkxTRU5EX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19SRENMSV9UTEJfUEVORElORworI2RlZmluZSBEQUdCN19SRENMSV9UTEJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTElfVExCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjdfUkRDTElfT0FSQl9QRU5ESU5HCisjZGVmaW5lIERBR0I3X1JEQ0xJX09BUkJfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRENMSV9PQVJCX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19SRENMSV9PU0RfUEVORElORworI2RlZmluZSBEQUdCN19SRENMSV9PU0RfUEVORElOR19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRDTElfT1NEX1BFTkRJTkdfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjdfV1JDTEkwCisjZGVmaW5lIERBR0I3X1dSQ0xJMF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTBfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJMF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTBfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJMF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTBfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJMF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkwX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEkxCisjZGVmaW5lIERBR0I3X1dSQ0xJMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEkyCisjZGVmaW5lIERBR0I3X1dSQ0xJMl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTJfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJMl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTJfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJMl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTJfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJMl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkyX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEkzCisjZGVmaW5lIERBR0I3X1dSQ0xJM19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTNfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJM19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTNfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJM19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTNfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJM19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkzX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEk0CisjZGVmaW5lIERBR0I3X1dSQ0xJNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEk1CisjZGVmaW5lIERBR0I3X1dSQ0xJNV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTVfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJNV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTVfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJNV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTVfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJNV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk1X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEk2CisjZGVmaW5lIERBR0I3X1dSQ0xJNl9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTZfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJNl9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTZfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJNl9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTZfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJNl9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk2X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEk3CisjZGVmaW5lIERBR0I3X1dSQ0xJN19fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTdfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJN19fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTdfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJN19fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTdfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJN19fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk3X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEk4CisjZGVmaW5lIERBR0I3X1dSQ0xJOF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSThfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJOF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSThfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJOF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSThfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJOF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk4X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEk5CisjZGVmaW5lIERBR0I3X1dSQ0xJOV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTlfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJOV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTlfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJOV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTlfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJOV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEk5X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEkxMAorI2RlZmluZSBEQUdCN19XUkNMSTEwX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JDTEkxMF9fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19XUkNMSTEwX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfV1JDTEkxMF9fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19XUkNMSTEwX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfV1JDTEkxMF9fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19XUkNMSTEwX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTBfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1dSQ0xJMTEKKyNkZWZpbmUgREFHQjdfV1JDTEkxMV9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSQ0xJMTFfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCN19XUkNMSTExX19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfV1JDTEkxMV9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1dSQ0xJMTFfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUkNMSTExX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjdfV1JDTEkxMV9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCN19XUkNMSTExX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I3X1dSQ0xJMTFfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjdfV1JDTEkxMV9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCN19XUkNMSTExX19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCN19XUkNMSTExX19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCN19XUkNMSTExX19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19XUkNMSTExX19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19XUkNMSTExX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTExX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTExX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTExX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTExX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTExX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCN19XUkNMSTEyCisjZGVmaW5lIERBR0I3X1dSQ0xJMTJfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTEyX19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJMTJfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTEyX19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJMTJfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTEyX19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJMTJfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxMl9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JDTEkxMworI2RlZmluZSBEQUdCN19XUkNMSTEzX19WSVJUX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JDTEkxM19fQ0hFQ0tfVExCX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX1VSR19ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19XUkNMSTEzX19VUkdfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfV1JDTEkxM19fTUFYX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX01BWF9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19XUkNMSTEzX19NSU5fQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX01JTl9CV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfV1JDTEkxM19fT1NEX0xJTUlURVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19XUkNMSTEzX19NQVhfT1NEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX1ZJUlRfQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX0NIRUNLX1RMQl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX1VSR19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX1VSR19MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX01BWF9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX01BWF9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkUwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX01JTl9CV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX01JTl9CV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX09TRF9MSU1JVEVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSQ0xJMTNfX01BWF9PU0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1dSQ0xJMTQKKyNkZWZpbmUgREFHQjdfV1JDTEkxNF9fVklSVF9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSQ0xJMTRfX0NIRUNLX1RMQl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCN19XUkNMSTE0X19VUkdfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfV1JDTEkxNF9fVVJHX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1dSQ0xJMTRfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUkNMSTE0X19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgREFHQjdfV1JDTEkxNF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCN19XUkNMSTE0X19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I3X1dSQ0xJMTRfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgREFHQjdfV1JDTEkxNF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBEQUdCN19XUkNMSTE0X19WSVJUX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCN19XUkNMSTE0X19DSEVDS19UTEJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBEQUdCN19XUkNMSTE0X19VUkdfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19XUkNMSTE0X19VUkdfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19XUkNMSTE0X19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTE0X19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZFMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTE0X19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTE0X19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTE0X19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBEQUdCN19XUkNMSTE0X19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9EQUdCN19XUkNMSTE1CisjZGVmaW5lIERBR0I3X1dSQ0xJMTVfX1ZJUlRfQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSTE1X19DSEVDS19UTEJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fVVJHX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSQ0xJMTVfX1VSR19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUkNMSTE1X19NQVhfQldfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fTUFYX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIERBR0I3X1dSQ0xJMTVfX01JTl9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fTUlOX0JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19XUkNMSTE1X19PU0RfTElNSVRFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSQ0xJMTVfX01BWF9PU0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fVklSVF9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fQ0hFQ0tfVExCX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fVVJHX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fVVJHX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fTUFYX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fTUFYX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRTAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fTUlOX0JXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fTUlOX0JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fT1NEX0xJTUlURVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JDTEkxNV9fTUFYX09TRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vREFHQjdfV1JfQ05UTAorI2RlZmluZSBEQUdCN19XUl9DTlRMX19TQ0xLX0ZSRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JfQ05UTF9fQ0xJX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBEQUdCN19XUl9DTlRMX19JT19MRVZFTF9PVkVSUklERV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I3X1dSX0NOVExfX0lPX0xFVkVMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgREFHQjdfV1JfQ05UTF9fSU9fTEVWRUxfQ09NUExZX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCN19XUl9DTlRMX19TSEFSRV9WQ19OVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIERBR0I3X1dSX0NOVExfX1NDTEtfRlJFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfX0NMSV9NQVhfQldfV0lORE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRjBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfX1ZDX01BWF9CV19XSU5ET1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZDMDBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfX0lPX0xFVkVMX09WRVJSSURFX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfX0lPX0xFVkVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfX0lPX0xFVkVMX0NPTVBMWV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfX1NIQVJFX1ZDX05VTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MDAwMDBMCisvL0RBR0I3X1dSX0dNSV9DTlRMCisjZGVmaW5lIERBR0I3X1dSX0dNSV9DTlRMX19FQV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9HTUlfQ05UTF9fTEVWRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjdfV1JfR01JX0NOVExfX01BWF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0I3X1dSX0dNSV9DTlRMX19MQVpZX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19XUl9HTUlfQ05UTF9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBEQUdCN19XUl9HTUlfQ05UTF9fTEVWRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCN19XUl9HTUlfQ05UTF9fTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRTAwTAorI2RlZmluZSBEQUdCN19XUl9HTUlfQ05UTF9fTEFaWV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFFMDAwTAorLy9EQUdCN19XUl9BRERSX0RBR0IKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX19EQUdCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX19XSE9BTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9fREFHQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9fRU5BQkxFX0pVTVBfQUhFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9fRElTQUJMRV9TRUxGX0lOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9fV0hPQU1JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisvL0RBR0I3X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX01BWF9CVVJTVF9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjdfV1JfT1VUUFVUX0RBR0JfTUFYX0JVUlNUX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9NQVhfQlVSU1RfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCN19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjdfV1JfT1VUUFVUX0RBR0JfTEFaWV9USU1FUl9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9PVVRQVVRfREFHQl9MQVpZX1RJTUVSX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX09VVFBVVF9EQUdCX0xBWllfVElNRVJfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I3X1dSX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgREFHQjdfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIERBR0I3X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgREFHQjdfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I3X1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgREFHQjdfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9EQUdCN19MMVRMQl9XUl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIERBR0I3X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBEQUdCN19MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIERBR0I3X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCN19MMVRMQl9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIERBR0I3X0wxVExCX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgREFHQjdfTDFUTEJfV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vREFHQjdfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBEQUdCN19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgREFHQjdfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBEQUdCN19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjdfQVRDVk1fV1JfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCN19BVENWTV9XUl9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIERBR0I3X0FUQ1ZNX1dSX0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL0RBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I3X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMQorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjEKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCN19XUl9BRERSX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I3X1dSX0FERFJfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQ5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JfQUREUl9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjdfV1JfREFUQV9EQUdCCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9fREFHQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX19ESVNBQkxFX1NFTEZfSU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9fV0hPQU1JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfX0RBR0JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfX0VOQUJMRV9KVU1QX0FIRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfX0RJU0FCTEVfU0VMRl9JTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfX1dIT0FNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorLy9EQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QwX19DTElFTlQ2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDBfX0NMSUVOVDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMF9fQ0xJRU5UN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9EQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjAKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjBfX0NMSUVOVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMF9fQ0xJRU5UN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIwX19DTElFTlQ3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDEKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQ5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTUFYX0JVUlNUMV9fQ0xJRU5UMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9NQVhfQlVSU1QxX19DTElFTlQxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX01BWF9CVVJTVDFfX0NMSUVOVDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9EQUdCX0xBWllfVElNRVIxX19DTElFTlQxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0RBR0JfTEFaWV9USU1FUjFfX0NMSUVOVDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0RBVEFfREFHQl9MQVpZX1RJTUVSMV9fQ0xJRU5UMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL0RBR0I3X1dSX1ZDMF9DTlRMCisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9WQzBfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfV1JfVkMwX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9WQzBfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JfVkMwX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9WQzBfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1dSX1ZDMV9DTlRMCisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9WQzFfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfV1JfVkMxX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9WQzFfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JfVkMxX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9WQzFfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1dSX1ZDMl9DTlRMCisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9WQzJfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfV1JfVkMyX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9WQzJfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JfVkMyX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9WQzJfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDMl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1dSX1ZDM19DTlRMCisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9WQzNfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfV1JfVkMzX0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9WQzNfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JfVkMzX0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9WQzNfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDM19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1dSX1ZDNF9DTlRMCisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9WQzRfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfV1JfVkM0X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9WQzRfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JfVkM0X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9WQzRfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNF9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1dSX1ZDNV9DTlRMCisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9WQzVfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfV1JfVkM1X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9WQzVfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JfVkM1X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9WQzVfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNV9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1dSX1ZDNl9DTlRMCisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9WQzZfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfV1JfVkM2X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9WQzZfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JfVkM2X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9WQzZfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDNl9DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1dSX1ZDN19DTlRMCisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19TVE9SX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUl9WQzdfQ05UTF9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgREFHQjdfV1JfVkM3X0NOVExfX01BWF9CV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19NQVhfQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19XUl9WQzdfQ05UTF9fTUlOX0JXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19NSU5fQldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgREFHQjdfV1JfVkM3X0NOVExfX09TRF9MSU1JVEVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9WQzdfQ05UTF9fTUFYX09TRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19TVE9SX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19FQV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RTBMCisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19NQVhfQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19NQVhfQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19NSU5fQldfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19NSU5fQldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19PU0RfTElNSVRFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX1ZDN19DTlRMX19NQVhfT1NEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL0RBR0I3X1dSX0NOVExfTUlTQworI2RlZmluZSBEQUdCN19XUl9DTlRMX01JU0NfX1NUT1JfUE9PTF9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JfQ05UTF9NSVNDX19FQV9QT09MX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I3X1dSX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBEQUdCN19XUl9DTlRMX01JU0NfX1NUT1JfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIERBR0I3X1dSX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjdfV1JfQ05UTF9NSVNDX19VVENMMl9DSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBEQUdCN19XUl9DTlRMX01JU0NfX1JEUkVUX0ZJRk9fQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIERBR0I3X1dSX0NOVExfTUlTQ19fU1RPUl9QT09MX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfTUlTQ19fRUFfUE9PTF9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGQzBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfTUlTQ19fSU9fRUFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0UwMDBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfTUlTQ19fU1RPUl9DQ19MRUdBQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfTUlTQ19fRUFfQ0NfTEVHQUNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfTUlTQ19fVVRDTDJfQ0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIERBR0I3X1dSX0NOVExfTUlTQ19fUkRSRVRfRklGT19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL0RBR0I3X1dSX1RMQl9DUkVESVQKKyNkZWZpbmUgREFHQjdfV1JfVExCX0NSRURJVF9fVExCMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSX1RMQl9DUkVESVRfX1RMQjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBEQUdCN19XUl9UTEJfQ1JFRElUX19UTEIyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjdfV1JfVExCX0NSRURJVF9fVExCM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIERBR0I3X1dSX1RMQl9DUkVESVRfX1RMQjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgREFHQjdfV1JfVExCX0NSRURJVF9fVExCNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBEQUdCN19XUl9UTEJfQ1JFRElUX19UTEIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBEQUdCN19XUl9UTEJfQ1JFRElUX19UTEIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBEQUdCN19XUl9UTEJfQ1JFRElUX19UTEIyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBEQUdCN19XUl9UTEJfQ1JFRElUX19UTEIzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorI2RlZmluZSBEQUdCN19XUl9UTEJfQ1JFRElUX19UTEI0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRjAwMDAwTAorI2RlZmluZSBEQUdCN19XUl9UTEJfQ1JFRElUX19UTEI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNFMDAwMDAwTAorLy9EQUdCN19XUl9EQVRBX0NSRURJVAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0NSRURJVF9fRExPQ0tfVkNfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9DUkVESVRfX0xBUkdFX0JVUlNUX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1dSX0RBVEFfQ1JFRElUX19NSURETEVfQlVSU1RfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjdfV1JfREFUQV9DUkVESVRfX1NNQUxMX0JVUlNUX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0NSRURJVF9fRExPQ0tfVkNfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0NSRURJVF9fTEFSR0VfQlVSU1RfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0NSRURJVF9fTUlERExFX0JVUlNUX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBEQUdCN19XUl9EQVRBX0NSRURJVF9fU01BTExfQlVSU1RfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9EQUdCN19XUl9NSVNDX0NSRURJVAorI2RlZmluZSBEQUdCN19XUl9NSVNDX0NSRURJVF9fQVRPTUlDX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfV1JfTUlTQ19DUkVESVRfX0RMT0NLX1ZDX05VTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIERBR0I3X1dSX01JU0NfQ1JFRElUX19PU0RfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCN19XUl9NSVNDX0NSRURJVF9fT1NEX0RMT0NLX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I3X1dSX01JU0NfQ1JFRElUX19BVE9NSUNfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIERBR0I3X1dSX01JU0NfQ1JFRElUX19ETE9DS19WQ19OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIERBR0I3X1dSX01JU0NfQ1JFRElUX19PU0RfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZFMDBMCisjZGVmaW5lIERBR0I3X1dSX01JU0NfQ1JFRElUX19PU0RfRExPQ0tfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisvL0RBR0I3X1dSQ0xJX0FTS19QRU5ESU5HCisjZGVmaW5lIERBR0I3X1dSQ0xJX0FTS19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSV9BU0tfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19XUkNMSV9HT19QRU5ESU5HCisjZGVmaW5lIERBR0I3X1dSQ0xJX0dPX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSV9HT19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19XUkNMSV9HQkxTRU5EX1BFTkRJTkcKKyNkZWZpbmUgREFHQjdfV1JDTElfR0JMU0VORF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSQ0xJX0dCTFNFTkRfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I3X1dSQ0xJX1RMQl9QRU5ESU5HCisjZGVmaW5lIERBR0I3X1dSQ0xJX1RMQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSV9UTEJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19XUkNMSV9PQVJCX1BFTkRJTkcKKyNkZWZpbmUgREFHQjdfV1JDTElfT0FSQl9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSQ0xJX09BUkJfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I3X1dSQ0xJX09TRF9QRU5ESU5HCisjZGVmaW5lIERBR0I3X1dSQ0xJX09TRF9QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSV9PU0RfUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19XUkNMSV9EQlVTX0FTS19QRU5ESU5HCisjZGVmaW5lIERBR0I3X1dSQ0xJX0RCVVNfQVNLX1BFTkRJTkdfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19XUkNMSV9EQlVTX0FTS19QRU5ESU5HX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19XUkNMSV9EQlVTX0dPX1BFTkRJTkcKKyNkZWZpbmUgREFHQjdfV1JDTElfREJVU19HT19QRU5ESU5HX19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSQ0xJX0RCVVNfR09fUEVORElOR19fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I3X0RBR0JfRExZCisjZGVmaW5lIERBR0I3X0RBR0JfRExZX19ETFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19EQUdCX0RMWV9fQ0xJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfREFHQl9ETFlfX1BPU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBEQUdCN19EQUdCX0RMWV9fRExZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCN19EQUdCX0RMWV9fQ0xJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCN19EQUdCX0RMWV9fUE9TX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9EQUdCN19DTlRMX01JU0MKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDX19FQV9WQzBfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X0NOVExfTUlTQ19fRUFfVkMxX1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDMl9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDX19FQV9WQzNfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIERBR0I3X0NOVExfTUlTQ19fRUFfVkM0X1JFTUFQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDNV9SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDX19FQV9WQzZfUkVNQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDN19SRU1BUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIERBR0I3X0NOVExfTUlTQ19fQldfSU5JVF9DWUNMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDX19CV19SV19HQVBfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDMF9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDMV9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDMl9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDM19SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDNF9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDNV9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDNl9SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0VBX1ZDN19SRU1BUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0JXX0lOSVRfQ1lDTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorI2RlZmluZSBEQUdCN19DTlRMX01JU0NfX0JXX1JXX0dBUF9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9EQUdCN19DTlRMX01JU0MyCisjZGVmaW5lIERBR0I3X0NOVExfTUlTQzJfX1VSR19CT09TVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19DTlRMX01JU0MyX19VUkdfSEFMVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFUV9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIERBR0I3X0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVRfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBEQUdCN19DTlRMX01JU0MyX19ESVNBQkxFX1JEUkVRX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFVF9DR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIERBR0I3X0NOVExfTUlTQzJfX0RJU0FCTEVfVExCV1JfQ0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBEQUdCN19DTlRMX01JU0MyX19ESVNBQkxFX1RMQlJEX0NHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVdSUkVRX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X0NOVExfTUlTQzJfX0RJU0FCTEVfRUFSRFJFUV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBEQUdCN19DTlRMX01JU0MyX19TV0FQX0NUTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19QRVJGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIERBR0I3X0NOVExfTUlTQzJfX1JEUkVUX0ZJRk9fRExPQ0tfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fVVJHX0JPT1NUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fVVJHX0hBTFRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFUV9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9XUlJFVF9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFUV9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFVF9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJXUl9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9UTEJSRF9DR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVdSUkVRX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fRElTQUJMRV9FQVJEUkVRX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fU1dBUF9DVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19QRVJGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgREFHQjdfQ05UTF9NSVNDMl9fUkRSRVRfRklGT19ETE9DS19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdFMDAwMEwKKy8vREFHQjdfRklGT19FTVBUWQorI2RlZmluZSBEQUdCN19GSUZPX0VNUFRZX19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfRklGT19FTVBUWV9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vREFHQjdfRklGT19GVUxMCisjZGVmaW5lIERBR0I3X0ZJRk9fRlVMTF9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19GSUZPX0ZVTExfX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkZGTAorLy9EQUdCN19XUl9DUkVESVRTX0ZVTEwKKyNkZWZpbmUgREFHQjdfV1JfQ1JFRElUU19GVUxMX19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1dSX0NSRURJVFNfRlVMTF9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkZGRkZMCisvL0RBR0I3X1JEX0NSRURJVFNfRlVMTAorI2RlZmluZSBEQUdCN19SRF9DUkVESVRTX0ZVTExfX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkRfQ1JFRElUU19GVUxMX19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRkwKKy8vREFHQjdfUEVSRkNPVU5URVJfTE8KKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I3X1BFUkZDT1VOVEVSX0hJCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL0RBR0I3X1BFUkZDT1VOVEVSMF9DRkcKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9EQUdCN19QRVJGQ09VTlRFUjFfQ0ZHCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vREFHQjdfUEVSRkNPVU5URVIyX0NGRworI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVIyX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUjJfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMl9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSMl9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0RBR0I3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBEQUdCN19QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIERBR0I3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgREFHQjdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKy8vREFHQjdfUkVTRVJWRTAKKyNkZWZpbmUgREFHQjdfUkVTRVJWRTBfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JFU0VSVkUwX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I3X1JFU0VSVkUxCisjZGVmaW5lIERBR0I3X1JFU0VSVkUxX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRVNFUlZFMV9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19SRVNFUlZFMgorI2RlZmluZSBEQUdCN19SRVNFUlZFMl9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkVTRVJWRTJfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjdfUkVTRVJWRTMKKyNkZWZpbmUgREFHQjdfUkVTRVJWRTNfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JFU0VSVkUzX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I3X1JFU0VSVkU0CisjZGVmaW5lIERBR0I3X1JFU0VSVkU0X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRVNFUlZFNF9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19SRVNFUlZFNQorI2RlZmluZSBEQUdCN19SRVNFUlZFNV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkVTRVJWRTVfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjdfUkVTRVJWRTYKKyNkZWZpbmUgREFHQjdfUkVTRVJWRTZfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JFU0VSVkU2X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I3X1JFU0VSVkU3CisjZGVmaW5lIERBR0I3X1JFU0VSVkU3X19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRVNFUlZFN19fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19SRVNFUlZFOAorI2RlZmluZSBEQUdCN19SRVNFUlZFOF9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkVTRVJWRThfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjdfUkVTRVJWRTkKKyNkZWZpbmUgREFHQjdfUkVTRVJWRTlfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JFU0VSVkU5X19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I3X1JFU0VSVkUxMAorI2RlZmluZSBEQUdCN19SRVNFUlZFMTBfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkVTRVJWRTEwX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vREFHQjdfUkVTRVJWRTExCisjZGVmaW5lIERBR0I3X1JFU0VSVkUxMV9fUkVTRVJWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBEQUdCN19SRVNFUlZFMTFfX1JFU0VSVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9EQUdCN19SRVNFUlZFMTIKKyNkZWZpbmUgREFHQjdfUkVTRVJWRTEyX19SRVNFUlZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIERBR0I3X1JFU0VSVkUxMl9fUkVTRVJWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0RBR0I3X1JFU0VSVkUxMworI2RlZmluZSBEQUdCN19SRVNFUlZFMTNfX1JFU0VSVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgREFHQjdfUkVTRVJWRTEzX19SRVNFUlZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2VhX21tZWFkZWM1CisvL01NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE1X0RSQU1fUkRfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTVfRFJBTV9XUl9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNV9EUkFNX1JEX0xBWlkKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9EUkFNX1JEX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTVfRFJBTV9XUl9MQVpZCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfTEFaWV9fR1JPVVAwX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0xBWllfX0dST1VQMV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9MQVpZX19HUk9VUDJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfTEFaWV9fR1JPVVAzX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfTEFaWV9fR1JPVVAwX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfTEFaWV9fR1JPVVAxX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfTEFaWV9fR1JPVVAyX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfTEFaWV9fR1JPVVAzX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUE1X0RSQU1fUkRfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9NTUVBNV9EUkFNX1dSX0NBTV9DTlRMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vTU1FQTVfRFJBTV9QQUdFX0JVUlNUCisjZGVmaW5lIE1NRUE1X0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE1X0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE1X0RSQU1fUkRfUFJJX0FHRQorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTVfRFJBTV9XUl9QUklfQUdFCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBNV9EUkFNX1JEX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNV9EUkFNX1dSX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNV9EUkFNX1JEX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTVfRFJBTV9XUl9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE1X0RSQU1fUkRfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBNV9EUkFNX1dSX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTVfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBNV9HTUlfUkRfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBNV9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTVfR01JX1dSX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE1X0dNSV9SRF9MQVpZCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9HTUlfUkRfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUE1X0dNSV9XUl9MQVpZCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9HTUlfV1JfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUE1X0dNSV9SRF9DQU1fQ05UTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNV9HTUlfUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTVfR01JX1dSX0NBTV9DTlRMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBNV9HTUlfUEFHRV9CVVJTVAorI2RlZmluZSBNTUVBNV9HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9HTUlfUkRfUFJJX0FHRQorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTVfR01JX1dSX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUE1X0dNSV9SRF9QUklfUVVFVUlORworI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTVfR01JX1dSX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNV9HTUlfUkRfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNV9HTUlfV1JfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9BRERSTk9STV9CQVNFX0FERFIwCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjBfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIwX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIwX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIwX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNV9BRERSTk9STV9MSU1JVF9BRERSMAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9MSU1JVF9BRERSMF9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjBfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFIwX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFIwX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE1X0FERFJOT1JNX0JBU0VfQUREUjEKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMV9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjFfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjFfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjFfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE1X0FERFJOT1JNX0xJTUlUX0FERFIxCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFIxX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9MSU1JVF9BRERSMV9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjFfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjFfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFIxCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9PRkZTRVRfQUREUjFfX0hJX0FERFJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL01NRUE1X0FERFJOT1JNX0JBU0VfQUREUjIKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMl9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjJfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjJfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjJfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE1X0FERFJOT1JNX0xJTUlUX0FERFIyCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFIyX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9MSU1JVF9BRERSMl9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjJfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjJfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSMworI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIzX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFIzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjMKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjNfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFIzX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSTk9STV9MSU1JVF9BRERSM19fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9MSU1JVF9BRERSM19fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNV9BRERSTk9STV9PRkZTRVRfQUREUjMKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX09GRlNFVF9BRERSM19fSElfQUREUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI0X19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI0X19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjQKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjRfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFI0X19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSTk9STV9MSU1JVF9BRERSNF9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9MSU1JVF9BRERSNF9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNV9BRERSTk9STV9CQVNFX0FERFI1CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjVfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI1X19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0JBU0VfQUREUjVfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI1X19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI1X19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9CQVNFX0FERFI1X19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNV9BRERSTk9STV9MSU1JVF9BRERSNQorI2RlZmluZSBNTUVBNV9BRERSTk9STV9MSU1JVF9BRERSNV9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fTElNSVRfQUREUjVfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFI1X19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNX0xJTUlUX0FERFI1X19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE1X0FERFJOT1JNX09GRlNFVF9BRERSNQorI2RlZmluZSBNTUVBNV9BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1fT0ZGU0VUX0FERFI1X19ISV9BRERSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9NTUVBNV9BRERSTk9STURSQU1fSE9MRV9DTlRMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkY4MEwKKy8vTU1FQTVfQUREUk5PUk1HTUlfSE9MRV9DTlRMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkY4MEwKKy8vTU1FQTVfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGRworI2RlZmluZSBNTUVBNV9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisvL01NRUE1X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGRworI2RlZmluZSBNTUVBNV9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisvL01NRUE1X0FERFJERUNfQkFOS19DRkcKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX1NFTF9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE1X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNV9BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBNV9BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9NTUVBNV9BRERSREVDX01JU0NfQ0ZHCisjZGVmaW5lIE1NRUE1X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE1X0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ19NSVNDX0NGR19fQ1NfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0UwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDMDAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9NTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMgorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0CisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNQorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMgorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRQorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNV9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorLy9NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMgorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMworI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9QQworI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9QQzIKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL01NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEUKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMF9CQVNFX0FERFJfQ1MyCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTMworI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMgorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMF9BRERSX01BU0tfQ1MwMQorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX0NTMjMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyMworI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMQorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyMworI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMQorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyMworI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTVfQUREUkRFQzBfQUREUl9TRUwyX0NTMDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfU0VMMl9DUzAxX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUE1X0FERFJERUMwX0FERFJfU0VMMl9DUzIzCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0FERFJfU0VMMl9DUzIzX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9BRERSX1NFTDJfQ1MyM19fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBNV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE1X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMQorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNV9BRERSREVDMF9STV9TRUxfQ1MyMworI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9DUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9DUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9DUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9DUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE1X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNV9BRERSREVDMV9CQVNFX0FERFJfQ1MwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMxX0JBU0VfQUREUl9DUzIKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMV9CQVNFX0FERFJfQ1MzCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMworI2RlZmluZSBNTUVBNV9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMxX0FERFJfTUFTS19DUzAxCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMV9BRERSX01BU0tfQ1MyMworI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNV9BRERSREVDMV9BRERSX1NFTDJfQ1MwMQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTVfQUREUkRFQzFfQUREUl9TRUwyX0NTMjMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0FERFJfU0VMMl9DUzIzX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUE1X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyMworI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNV9BRERSREVDMV9STV9TRUxfQ1MwMQorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE1X0FERFJERUMxX1JNX1NFTF9DUzIzCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MyMworI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE1X0FERFJERUMyX0JBU0VfQUREUl9DUzAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMgorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMyX0JBU0VfQUREUl9DUzMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMQorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzIKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX0NTMDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMyX0FERFJfTUFTS19DUzIzCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNV9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMQorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE1X0FERFJERUMyX0FERFJfU0VMMl9DUzAxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0FERFJfU0VMMl9DUzAxX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBNV9BRERSREVDMl9BRERSX1NFTDJfQ1MyMworI2RlZmluZSBNTUVBNV9BRERSREVDMl9BRERSX1NFTDJfQ1MyM19fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyMworI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE1X0FERFJERUMyX1JNX1NFTF9DUzAxCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9DUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNV9BRERSREVDMl9STV9TRUxfU0VDQ1MwMQorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTVfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTVfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNV9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL01NRUE1X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNV9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE1X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE1X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL01NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBNV9JT19SRF9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNV9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBNV9JT19SRF9DT01CSU5FX0ZMVVNICisjZGVmaW5lIE1NRUE1X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9JT19SRF9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL01NRUE1X0lPX1dSX0NPTUJJTkVfRkxVU0gKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vTU1FQTVfSU9fR1JPVVBfQlVSU1QKKyNkZWZpbmUgTU1FQTVfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0lPX0dST1VQX0JVUlNUX19SRF9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTVfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTVfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTVfSU9fUkRfUFJJX0FHRQorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTVfSU9fV1JfUFJJX0FHRQorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTVfSU9fUkRfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE1X0lPX1dSX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNV9JT19SRF9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9JT19SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE1X0lPX1dSX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBNV9JT19XUl9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNV9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNV9TRFBfQVJCX0RSQU0KKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJSRF9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRFJBTV9fRU9CX09OX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9EUkFNX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX0VPQl9PTl9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0RSQU1fX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorLy9NTUVBNV9TRFBfQVJCX0dNSQorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfR01JX19FQVJMWV9TVzJXUl9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX0VPQl9PTl9FWFBJUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0dNSV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfR01JX19BTExPV19DSEFJTl9CUkVBS0lOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1BSSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1JFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX0VPQl9PTl9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9HTUlfX0FMTE9XX0NIQUlOX0JSRUFLSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vTU1FQTVfU0RQX0FSQl9GSU5BTAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0ZJTkFMX19EUkFNX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX0lPX0JVUlNUX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0ZJTkFMX19CVVJTVF9MSU1JVF9NVUxUSVBMSUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBNV9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX0VSUkVWRU5UX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTVfU0RQX0FSQl9GSU5BTF9fSEFMVFJFUV9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNV9TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfU1RSRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX0RSQU1fQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX0lPX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX0JVUlNUX0xJTUlUX01VTFRJUExJRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX0VSUkVWRU5UX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX0hBTFRSRVFfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9TVFJFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisvL01NRUE1X1NEUF9EUkFNX1BSSU9SSVRZCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE1X1NEUF9HTUlfUFJJT1JJVFkKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTVfU0RQX0lPX1BSSU9SSVRZCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE1X1NEUF9DUkVESVRTCisjZGVmaW5lIE1NRUE1X1NEUF9DUkVESVRTX19UQUdfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9TRFBfQ1JFRElUU19fV1JfUkVTUF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfU0RQX0NSRURJVFNfX1JEX1JFU1BfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9TRFBfQ1JFRElUU19fVEFHX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNV9TRFBfQ1JFRElUU19fV1JfUkVTUF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNTUVBNV9TRFBfQ1JFRElUU19fUkRfUkVTUF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0YwMDAwTAorLy9NTUVBNV9TRFBfVEFHX1JFU0VSVkUwCisjZGVmaW5lIE1NRUE1X1NEUF9UQUdfUkVTRVJWRTBfX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9TRFBfVEFHX1JFU0VSVkUwX19WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfU0RQX1RBR19SRVNFUlZFMF9fVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9TRFBfVEFHX1JFU0VSVkUwX19WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X1NEUF9UQUdfUkVTRVJWRTBfX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE1X1NEUF9UQUdfUkVTRVJWRTBfX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9UQUdfUkVTRVJWRTBfX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9UQUdfUkVTRVJWRTBfX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE1X1NEUF9UQUdfUkVTRVJWRTEKKyNkZWZpbmUgTU1FQTVfU0RQX1RBR19SRVNFUlZFMV9fVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X1NEUF9UQUdfUkVTRVJWRTFfX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9TRFBfVEFHX1JFU0VSVkUxX19WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X1NEUF9UQUdfUkVTRVJWRTFfX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfU0RQX1RBR19SRVNFUlZFMV9fVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTVfU0RQX1RBR19SRVNFUlZFMV9fVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX1RBR19SRVNFUlZFMV9fVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX1RBR19SRVNFUlZFMV9fVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMAorI2RlZmluZSBNTUVBNV9TRFBfVkNDX1JFU0VSVkUwX19WQzBfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMF9fVkMxX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9TRFBfVkNDX1JFU0VSVkUwX19WQzNfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMF9fVkMwX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMF9fVkMxX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMF9fVkMyX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMF9fVkMzX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMF9fVkM0X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMQorI2RlZmluZSBNTUVBNV9TRFBfVkNDX1JFU0VSVkUxX19WQzVfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDQ19SRVNFUlZFMV9fVkM2X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X1NEUF9WQ0NfUkVTRVJWRTFfX1ZDN19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9TRFBfVkNDX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0NfUkVTRVJWRTFfX1ZDN19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0NfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE1X1NEUF9WQ0RfUkVTRVJWRTAKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDRF9SRVNFUlZFMF9fVkMwX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9TRFBfVkNEX1JFU0VSVkUwX19WQzJfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDRF9SRVNFUlZFMF9fVkMzX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9TRFBfVkNEX1JFU0VSVkUwX19WQzRfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE1X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDM19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL01NRUE1X1NEUF9WQ0RfUkVTRVJWRTEKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDRF9SRVNFUlZFMV9fVkM1X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9TRFBfVkNEX1JFU0VSVkUxX19WQzdfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfU0RQX1ZDRF9SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNV9TRFBfVkNEX1JFU0VSVkUxX19WQzVfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBNV9TRFBfVkNEX1JFU0VSVkUxX19WQzZfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBNV9TRFBfVkNEX1JFU0VSVkUxX19WQzdfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBNV9TRFBfVkNEX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNV9TRFBfUkVRX0NOVEwKKyNkZWZpbmUgTU1FQTVfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX0FUT01JQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X1NEUF9SRVFfQ05UTF9fUkVRX0NIQUlOX09WRVJSSURFX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9TRFBfUkVRX0NOVExfX0lOTkVSX0RPTUFJTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTVfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTVfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9BVE9NSUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTVfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTVfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTVfU0RQX1JFUV9DTlRMX19JTk5FUl9ET01BSU5fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vTU1FQTVfTUlTQworI2RlZmluZSBNTUVBNV9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9SRF9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fV1JfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfUkRfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1dSX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1JEX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9JT19XUl9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE1X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNV9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE1X01JU0NfX0VBUkxZX1NEUF9PUklHREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9NSVNDX19MSU5LTUdSX0RZTkFNSUNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTVfTUlTQ19fTElOS01HUl9IQUxUX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNV9NSVNDX19MSU5LTUdSX1JFQ09OTkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE1X01JU0NfX0xJTktNR1JfSURMRV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNV9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE1X01JU0NfX0ZBVk9VUl9MQVNUX0NTX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBNV9NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE1X01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTVfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fUkRfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fV1JfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9SRF9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9XUl9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1JEX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1dSX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRUFSTFlfU0RQX09SSUdEQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fTElOS01HUl9EWU5BTUlDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fTElOS01HUl9IQUxUX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2MDAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fTElOS01HUl9SRUNPTk5FQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4MDAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fTElOS01HUl9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0UwMDAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTVfTEFURU5DWV9TQU1QTElORworI2RlZmluZSBNTUVBNV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0lPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfTk9SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX05PUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0lPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0lPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19OT1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19OT1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkMwMDBMCisjZGVmaW5lIE1NRUE1X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZDMDAwMDBMCisvL01NRUE1X1BFUkZDT1VOVEVSX0xPCisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTUVBNV9QRVJGQ09VTlRFUl9ISQorI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUl9ISV9fQ09VTlRFUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NTUVBNV9QRVJGQ09VTlRFUjBfQ0ZHCisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTVfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUE1X1BFUkZDT1VOVEVSX1JTTFRfQ05UTAorI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE1X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKy8vTU1FQTVfRURDX0NOVAorI2RlZmluZSBNTUVBNV9FRENfQ05UX19EUkFNUkRfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE1X0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNV9FRENfQ05UX19EUkFNV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNV9FRENfQ05UX19SUkVUX1RBR01FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fUlJFVF9UQUdNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0VEQ19DTlRfX1dSRVRfVEFHTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fV1JFVF9UQUdNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9FRENfQ05UX19EUkFNUkRfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0VEQ19DTlRfX0RSQU1XUl9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fSU9SRF9DTURNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNV9FRENfQ05UX19JT1dSX0NNRE1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE1X0VEQ19DTlRfX0lPV1JfREFUQU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fUlJFVF9UQUdNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fUlJFVF9UQUdNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fV1JFVF9UQUdNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fV1JFVF9UQUdNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVJEX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fRFJBTVdSX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fSU9SRF9DTURNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fSU9XUl9DTURNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX0NOVF9fSU9XUl9EQVRBTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKy8vTU1FQTVfRURDX0NOVDIKKyNkZWZpbmUgTU1FQTVfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0VEQ19DTlQyX19HTUlSRF9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JV1JfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTVfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTVfRURDX0NOVDJfX0dNSVJEX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0VEQ19DTlQyX19HTUlXUl9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JUkRfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JV1JfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JUkRfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNV9FRENfQ05UMl9fR01JV1JfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorLy9NTUVBNV9EU01fQ05UTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExfX0RSQU1SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fUlJFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExfX1JSRVRfVEFHTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMX19XUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fV1JFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExfX0dNSVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fR01JV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fUlJFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fUlJFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fV1JFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fV1JFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fR01JUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fR01JUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fR01JV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fR01JV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fR01JV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTF9fR01JV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9NTUVBNV9EU01fQ05UTEEKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExBX19JT1dSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9NTUVBNV9EU01fQ05UTDIKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyX19EUkFNV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX1dSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyX19XUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyX19JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX1JSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX1JSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX1dSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX1dSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJfX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9NTUVBNV9EU01fQ05UTDJBCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMkFfX0RSQU1XUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMkFfX0lPV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNV9EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE1X0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTVfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vTU1FQTVfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0NHVFRfQ0xLX0NUUkxfX1NQQVJFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE1X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTVfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TUEFSRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE1X0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTVfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE1X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTVfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRUdJU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TUEFSRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TUEFSRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ODAwMDAwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFVFVSTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBNV9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFR0lTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNV9FRENfTU9ERQorI2RlZmluZSBNTUVBNV9FRENfTU9ERV9fQ09VTlRfRkVEX09VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE1X0VEQ19NT0RFX19HQVRFX0ZVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTVfRURDX01PREVfX0RFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNV9FRENfTU9ERV9fUFJPUF9GRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE1X0VEQ19NT0RFX19CWVBBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTVfRURDX01PREVfX0NPVU5UX0ZFRF9PVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX01PREVfX0dBVEVfRlVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX01PREVfX0RFRF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX01PREVfX1BST1BfRkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTVfRURDX01PREVfX0JZUEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTVfRVJSX1NUQVRVUworI2RlZmluZSBNTUVBNV9FUlJfU1RBVFVTX19TRFBfUkRSU1BfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTVfRVJSX1NUQVRVU19fU0RQX1dSUlNQX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNV9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVBBUklUWV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTVfRVJSX1NUQVRVU19fQ0xFQVJfRVJST1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE1X0VSUl9TVEFUVVNfX0JVU1lfT05fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9FUlJfU1RBVFVTX19GVUVfRkxBR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTVfRVJSX1NUQVRVU19fU0RQX1JEUlNQX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTVfRVJSX1NUQVRVU19fU0RQX1dSUlNQX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTVfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFTVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTVfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFQQVJJVFlfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTVfRVJSX1NUQVRVU19fQ0xFQVJfRVJST1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTVfRVJSX1NUQVRVU19fQlVTWV9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTVfRVJSX1NUQVRVU19fRlVFX0ZMQUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vTU1FQTVfTUlTQzIKKyNkZWZpbmUgTU1FQTVfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9EUkFNX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X01JU0MyX19DU0dST1VQX1NXQVBfSU5fR01JX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNV9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE1X01JU0MyX19JT19SRFdSX1BSSU9SSVRZX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9NSVNDMl9fUlJFVF9TV0FQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTVfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTVfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTVfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3Q0wKKyNkZWZpbmUgTU1FQTVfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEY4MEwKKyNkZWZpbmUgTU1FQTVfTUlTQzJfX0lPX1JEV1JfUFJJT1JJVFlfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTVfTUlTQzJfX1JSRVRfU1dBUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vTU1FQTVfQUREUkRFQ19TRUxFQ1QKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE1X0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNV9BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTVfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE1X0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE1X0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRTBMCisjZGVmaW5lIE1NRUE1X0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdDMDBMCisjZGVmaW5lIE1NRUE1X0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjgwMDBMCisvL01NRUE1X0VEQ19DTlQzCisjZGVmaW5lIE1NRUE1X0VEQ19DTlQzX19EUkFNUkRfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNV9FRENfQ05UM19fRFJBTVdSX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTVfRURDX0NOVDNfX0lPUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE1X0VEQ19DTlQzX19JT1dSX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNV9FRENfQ05UM19fSU9XUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTVfRURDX0NOVDNfX0dNSVJEX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE1X0VEQ19DTlQzX19HTUlXUl9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNV9FRENfQ05UM19fRFJBTVJEX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNV9FRENfQ05UM19fRFJBTVdSX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNV9FRENfQ05UM19fSU9SRF9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNV9FRENfQ05UM19fSU9XUl9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNV9FRENfQ05UM19fSU9XUl9EQVRBTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNV9FRENfQ05UM19fR01JUkRfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNV9FRENfQ05UM19fR01JV1JfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfZWFfbW1lYWRlYzYKKy8vTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTZfRFJBTV9SRF9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNl9EUkFNX1dSX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE2X0RSQU1fUkRfTEFaWQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorLy9NTUVBNl9EUkFNX1dSX0xBWlkKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9MQVpZX19HUk9VUDBfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfTEFaWV9fR1JPVVAxX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9EUkFNX1dSX0xBWllfX0dST1VQMl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9MQVpZX19HUk9VUDNfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9MQVpZX19HUk9VUDBfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9MQVpZX19HUk9VUDFfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9MQVpZX19HUk9VUDJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9MQVpZX19HUk9VUDNfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTZfRFJBTV9SRF9DQU1fQ05UTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL01NRUE2X0RSQU1fV1JfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9NTUVBNl9EUkFNX1BBR0VfQlVSU1QKKyNkZWZpbmUgTU1FQTZfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTZfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTZfRFJBTV9SRF9QUklfQUdFCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBNl9EUkFNX1dSX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUE2X0RSQU1fUkRfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE2X0RSQU1fV1JfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE2X0RSQU1fUkRfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNl9EUkFNX1dSX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTZfRFJBTV9SRF9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE2X0RSQU1fV1JfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJMworI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNl9EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE2X0dNSV9SRF9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNl9HTUlfV1JfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBNl9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTZfR01JX1JEX0xBWlkKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9HTUlfUkRfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTZfR01JX1dSX0xBWlkKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9HTUlfV1JfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0YwMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMEwKKy8vTU1FQTZfR01JX1JEX0NBTV9DTlRMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfR01JX1JEX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBNl9HTUlfV1JfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTZfR01JX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9HTUlfV1JfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUE2X0dNSV9QQUdFX0JVUlNUCisjZGVmaW5lIE1NRUE2X0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfUEFHRV9CVVJTVF9fUkRfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0dNSV9SRF9QUklfQUdFCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBNl9HTUlfV1JfUFJJX0FHRQorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTZfR01JX1JEX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNl9HTUlfV1JfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE2X0dNSV9SRF9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE2X0dNSV9XUl9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE2X0dNSV9SRF9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE2X0dNSV9XUl9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJMQorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0FERFJOT1JNX0JBU0VfQUREUjAKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMF9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIwCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIwX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMF9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjBfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjBfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMQorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIxX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMV9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMV9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMV9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjEKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjFfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIxX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMV9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMV9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNl9BRERSTk9STV9PRkZTRVRfQUREUjEKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSMV9fSElfQUREUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMgorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIyX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMl9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMl9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMl9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjIKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjJfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIyX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMl9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMl9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNl9BRERSTk9STV9CQVNFX0FERFIzCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjNfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIzX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIzX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIzX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFIzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNl9BRERSTk9STV9MSU1JVF9BRERSMworI2RlZmluZSBNTUVBNl9BRERSTk9STV9MSU1JVF9BRERSM19fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjNfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIzX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFIzX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSMworI2RlZmluZSBNTUVBNl9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fT0ZGU0VUX0FERFIzX19ISV9BRERSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9NTUVBNl9BRERSTk9STV9CQVNFX0FERFI0CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjRfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI0X19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjRfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI0X19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI0X19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI0X19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBNl9BRERSTk9STV9MSU1JVF9BRERSNAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9MSU1JVF9BRERSNF9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjRfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFI0X19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFI0X19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE2X0FERFJOT1JNX0JBU0VfQUREUjUKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSNV9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fQkFTRV9BRERSNV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0JBU0VfQUREUjVfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE2X0FERFJOT1JNX0xJTUlUX0FERFI1CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX0xJTUlUX0FERFI1X19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9MSU1JVF9BRERSNV9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjVfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1fTElNSVRfQUREUjVfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTZfQUREUk5PUk1fT0ZGU0VUX0FERFI1CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSTk9STV9PRkZTRVRfQUREUjVfX0hJX0FERFJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL01NRUE2X0FERFJOT1JNRFJBTV9IT0xFX0NOVEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBNl9BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjgwTAorLy9NTUVBNl9BRERSTk9STUdNSV9IT0xFX0NOVEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBNl9BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjgwTAorLy9NTUVBNl9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKy8vTU1FQTZfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHCisjZGVmaW5lIE1NRUE2X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKy8vTU1FQTZfQUREUkRFQ19CQU5LX0NGRworI2RlZmluZSBNTUVBNl9BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfU0VMX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE2X0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL01NRUE2X0FERFJERUNfTUlTQ19DRkcKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19NSVNDX0NGR19fUENIX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNl9BRERSREVDX01JU0NfQ0ZHX19DU19NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNl9BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX1BDSF9NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRTAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL01NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMworI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1CisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQworI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9NTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMQorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE2X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisvL01NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0CisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1CisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMgorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyX19CQU5LX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRQorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjNfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNF9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNl9BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorLy9NTUVBNl9BRERSREVDMF9CQVNFX0FERFJfQ1MwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTMQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzIKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMF9CQVNFX0FERFJfQ1MzCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMworI2RlZmluZSBNTUVBNl9BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMwX0FERFJfTUFTS19DUzAxCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMF9BRERSX01BU0tfQ1MyMworI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNl9BRERSREVDMF9BRERSX1NFTDJfQ1MwMQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9TRUwyX0NTMDFfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTZfQUREUkRFQzBfQUREUl9TRUwyX0NTMjMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0FERFJfU0VMMl9DUzIzX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyMworI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNl9BRERSREVDMF9STV9TRUxfQ1MwMQorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE2X0FERFJERUMwX1JNX1NFTF9DUzIzCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTZfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MyMworI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX0NTMgorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMQorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzIKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzFfQUREUl9NQVNLX0NTMDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMxX0FERFJfTUFTS19DUzIzCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMQorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE2X0FERFJERUMxX0FERFJfU0VMMl9DUzAxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0FERFJfU0VMMl9DUzAxX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBNl9BRERSREVDMV9BRERSX1NFTDJfQ1MyMworI2RlZmluZSBNTUVBNl9BRERSREVDMV9BRERSX1NFTDJfQ1MyM19fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQUREUl9TRUwyX0NTMjNfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyMworI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE2X0FERFJERUMxX1JNX1NFTF9DUzAxCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9DUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9DUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNl9BRERSREVDMV9STV9TRUxfU0VDQ1MwMQorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX0NTMAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMl9CQVNFX0FERFJfQ1MyCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX0NTMworI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMgorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMl9BRERSX01BU0tfQ1MwMQorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzJfQUREUl9NQVNLX0NTMjMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE2X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBNl9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyMworI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMQorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyMworI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMQorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyMworI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTZfQUREUkRFQzJfQUREUl9TRUwyX0NTMDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfU0VMMl9DUzAxX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUE2X0FERFJERUMyX0FERFJfU0VMMl9DUzIzCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0FERFJfU0VMMl9DUzIzX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9BRERSX1NFTDJfQ1MyM19fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBNl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMQorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTZfQUREUkRFQzJfUk1fU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNl9BRERSREVDMl9STV9TRUxfQ1MyMworI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNl9BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBNl9BRERSTk9STURSQU1fR0xPQkFMX0NOVEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfNjRLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vTU1FQTZfQUREUk5PUk1HTUlfR0xPQkFMX0NOVEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE2X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTZfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBNl9JT19XUl9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE2X0lPX1JEX0NPTUJJTkVfRkxVU0gKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAwX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAzX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fUkRfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vTU1FQTZfSU9fV1JfQ09NQklORV9GTFVTSAorI2RlZmluZSBNTUVBNl9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfSU9fV1JfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9JT19XUl9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9NTUVBNl9JT19HUk9VUF9CVVJTVAorI2RlZmluZSBNTUVBNl9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfSU9fR1JPVVBfQlVSU1RfX1JEX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNl9JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNl9JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNl9JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNl9JT19SRF9QUklfQUdFCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBNl9JT19XUl9QUklfQUdFCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBNl9JT19SRF9QUklfUVVFVUlORworI2RlZmluZSBNTUVBNl9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTZfSU9fV1JfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9JT19XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE2X0lPX1JEX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTZfSU9fV1JfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBNl9JT19SRF9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE2X0lPX1dSX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lORworI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkyCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE2X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE2X1NEUF9BUkJfRFJBTQorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJXUl9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMlJEX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9EUkFNX19FT0JfT05fRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0RSQU1fX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyV1JfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fRU9CX09OX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRFJBTV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisvL01NRUE2X1NEUF9BUkJfR01JCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfR01JX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMldSX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fRU9CX09OX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfR01JX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9HTUlfX0FMTE9XX0NIQUlOX0JSRUFLSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fUkRXUl9CVVJTVF9MSU1JVF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUFJJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fRU9CX09OX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0dNSV9fQUxMT1dfQ0hBSU5fQlJFQUtJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9NTUVBNl9TRFBfQVJCX0ZJTkFMCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRklOQUxfX0RSQU1fQlVSU1RfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fSU9fQlVSU1RfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRklOQUxfX0JVUlNUX0xJTUlUX01VTFRJUExJRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBNl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fRVJSRVZFTlRfT05fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBNl9TRFBfQVJCX0ZJTkFMX19IQUxUUkVRX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE2X1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9TVFJFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fRFJBTV9CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fSU9fQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fQlVSU1RfTElNSVRfTVVMVElQTElFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fRVJSRVZFTlRfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fSEFMVFJFUV9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX1NUUkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKy8vTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFkKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTZfU0RQX0dNSV9QUklPUklUWQorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBNl9TRFBfSU9fUFJJT1JJVFkKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDFfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTZfU0RQX0NSRURJVFMKKyNkZWZpbmUgTU1FQTZfU0RQX0NSRURJVFNfX1RBR19MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X1NEUF9DUkVESVRTX19XUl9SRVNQX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9TRFBfQ1JFRElUU19fUkRfUkVTUF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X1NEUF9DUkVESVRTX19UQUdfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE2X1NEUF9DUkVESVRTX19XUl9SRVNQX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIE1NRUE2X1NEUF9DUkVESVRTX19SRF9SRVNQX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RjAwMDBMCisvL01NRUE2X1NEUF9UQUdfUkVTRVJWRTAKKyNkZWZpbmUgTU1FQTZfU0RQX1RBR19SRVNFUlZFMF9fVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X1NEUF9UQUdfUkVTRVJWRTBfX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9TRFBfVEFHX1JFU0VSVkUwX19WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X1NEUF9UQUdfUkVTRVJWRTBfX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfU0RQX1RBR19SRVNFUlZFMF9fVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTZfU0RQX1RBR19SRVNFUlZFMF9fVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX1RBR19SRVNFUlZFMF9fVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX1RBR19SRVNFUlZFMF9fVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTZfU0RQX1RBR19SRVNFUlZFMQorI2RlZmluZSBNTUVBNl9TRFBfVEFHX1JFU0VSVkUxX19WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfU0RQX1RBR19SRVNFUlZFMV9fVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X1NEUF9UQUdfUkVTRVJWRTFfX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfU0RQX1RBR19SRVNFUlZFMV9fVkM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9TRFBfVEFHX1JFU0VSVkUxX19WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNl9TRFBfVEFHX1JFU0VSVkUxX19WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNl9TRFBfVEFHX1JFU0VSVkUxX19WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfVEFHX1JFU0VSVkUxX19WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBNl9TRFBfVkNDX1JFU0VSVkUwCisjZGVmaW5lIE1NRUE2X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9TRFBfVkNDX1JFU0VSVkUwX19WQzFfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDQ19SRVNFUlZFMF9fVkMyX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDM19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDQ19SRVNFUlZFMF9fVkM0X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9TRFBfVkNDX1JFU0VSVkUwX19WQzBfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBNl9TRFBfVkNDX1JFU0VSVkUwX19WQzFfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBNl9TRFBfVkNDX1JFU0VSVkUwX19WQzJfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfVkNDX1JFU0VSVkUwX19WQzNfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBNTUVBNl9TRFBfVkNDX1JFU0VSVkUwX19WQzRfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9NTUVBNl9TRFBfVkNDX1JFU0VSVkUxCisjZGVmaW5lIE1NRUE2X1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9TRFBfVkNDX1JFU0VSVkUxX19WQzZfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDQ19SRVNFUlZFMV9fVkM3X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X1NEUF9WQ0NfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDQ19SRVNFUlZFMV9fVkM1X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDQ19SRVNFUlZFMV9fVkM2X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDQ19SRVNFUlZFMV9fVkM3X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDQ19SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMAorI2RlZmluZSBNTUVBNl9TRFBfVkNEX1JFU0VSVkUwX19WQzBfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMF9fVkMxX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9TRFBfVkNEX1JFU0VSVkUwX19WQzNfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMF9fVkMwX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMF9fVkMxX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMF9fVkMyX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMF9fVkMzX0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMF9fVkM0X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMQorI2RlZmluZSBNTUVBNl9TRFBfVkNEX1JFU0VSVkUxX19WQzVfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfU0RQX1ZDRF9SRVNFUlZFMV9fVkM2X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDN19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9TRFBfVkNEX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE2X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUE2X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUE2X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDN19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUE2X1NEUF9WQ0RfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE2X1NEUF9SRVFfQ05UTAorI2RlZmluZSBNTUVBNl9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfQVRPTUlDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfU0RQX1JFUV9DTlRMX19SRVFfQ0hBSU5fT1ZFUlJJREVfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X1NEUF9SRVFfQ05UTF9fSU5ORVJfRE9NQUlOX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNl9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNl9TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX0FUT01JQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNl9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNl9TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNl9TRFBfUkVRX0NOVExfX0lOTkVSX0RPTUFJTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorLy9NTUVBNl9NSVNDCisjZGVmaW5lIE1NRUE2X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9EUkFNX1JEX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9XUl9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9SRF9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfV1JfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fUkRfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0lPX1dSX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE2X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTZfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE2X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTZfTUlTQ19fRUFSTFlfU0RQX09SSUdEQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X01JU0NfX0xJTktNR1JfRFlOQU1JQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNl9NSVNDX19MSU5LTUdSX0hBTFRfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE2X01JU0NfX0xJTktNR1JfUkVDT05ORUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTZfTUlTQ19fTElOS01HUl9JRExFX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE2X01JU0NfX0ZBVk9VUl9NSURDSEFJTl9DU19JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTU1FQTZfTUlTQ19fRkFWT1VSX0xBU1RfQ1NfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE2X01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTZfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNl9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9SRF9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9NSVNDX19SRUxBVElWRV9QUklfSU5fRFJBTV9XUl9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNl9NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1JEX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNl9NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1dSX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBNl9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fUkRfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBNl9NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fV1JfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19FQVJMWV9TRFBfT1JJR0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19MSU5LTUdSX0RZTkFNSUNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19MSU5LTUdSX0hBTFRfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYwMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19MSU5LTUdSX1JFQ09OTkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTgwMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19MSU5LTUdSX0lETEVfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTAwMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19GQVZPVVJfTUlEQ0hBSU5fQ1NfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNl9MQVRFTkNZX1NBTVBMSU5HCisjZGVmaW5lIE1NRUE2X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9JT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfSU9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE2X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE2X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19OT1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9BVE9NSUNfTk9SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfSU9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX1JFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX05PUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfQVRPTUlDX05PUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGQzAwMEwKKyNkZWZpbmUgTU1FQTZfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkMwMDAwMEwKKy8vTU1FQTZfUEVSRkNPVU5URVJfTE8KKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NRUE2X1BFUkZDT1VOVEVSX0hJCisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL01NRUE2X1BFUkZDT1VOVEVSMF9DRkcKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBNl9QRVJGQ09VTlRFUjFfQ0ZHCisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTZfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTZfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUQVJUX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0VOQUJMRV9BTllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBNl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorLy9NTUVBNl9FRENfQ05UCisjZGVmaW5lIE1NRUE2X0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTZfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE2X0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfRURDX0NOVF9fRFJBTVdSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE2X0VEQ19DTlRfX1JSRVRfVEFHTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfRURDX0NOVF9fV1JFVF9UQUdNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0VEQ19DTlRfX0RSQU1SRF9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfRURDX0NOVF9fRFJBTVdSX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBNl9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE2X0VEQ19DTlRfX0lPV1JfQ01ETUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTZfRURDX0NOVF9fSU9XUl9EQVRBTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNUkRfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNV1JfQ01ETUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19SUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19SUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19XUkVUX1RBR01FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19XUkVUX1RBR01FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNUkRfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19EUkFNV1JfUEFHRU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19JT1JEX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19JT1dSX0NNRE1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfQ05UX19JT1dSX0RBVEFNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorLy9NTUVBNl9FRENfQ05UMgorI2RlZmluZSBNTUVBNl9FRENfQ05UMl9fR01JUkRfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlXUl9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBNl9FRENfQ05UMl9fR01JV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNl9FRENfQ05UMl9fR01JUkRfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfRURDX0NOVDJfX0dNSVdSX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlSRF9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlSRF9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlXUl9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlXUl9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlXUl9EQVRBTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlSRF9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQyX19HTUlXUl9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisvL01NRUE2X0RTTV9DTlRMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9EU01fQ05UTF9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExfX0RSQU1XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBNl9EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19SUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBNl9EU01fQ05UTF9fUlJFVF9UQUdNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExfX1dSRVRfVEFHTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19XUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBNl9EU01fQ05UTF9fR01JUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNl9EU01fQ05UTF9fR01JV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9EU01fQ05UTF9fR01JV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19SUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19SUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19XUkVUX1RBR01FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19XUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL01NRUE2X0RTTV9DTlRMQQorI2RlZmluZSBNTUVBNl9EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9EU01fQ05UTEFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExBX19JT1JEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9EU01fQ05UTEFfX0lPV1JfREFUQU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExBX19HTUlSRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fSU9SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL01NRUE2X0RTTV9DTlRMMgorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBNl9EU01fQ05UTDJfX0RSQU1XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJfX1JSRVRfVEFHTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBNl9EU01fQ05UTDJfX1dSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyX19HTUlSRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyX19HTUlXUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBNl9EU01fQ05UTDJfX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fRFJBTVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fR01JUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MDAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fR01JV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMl9fSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMwMDAwMDBMCisvL01NRUE2X0RTTV9DTlRMMkEKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyQV9fRFJBTVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMkFfX0lPUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyQV9fSU9XUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMkFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE2X0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTZfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE4TAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19JT1JEX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19HTUlSRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBNl9EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9NTUVBNl9DR1RUX0NMS19DVFJMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9DR1RUX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfQ0dUVF9DTEtfQ1RSTF9fU1BBUkUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTZfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBNl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NQQVJFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTZfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBNl9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTZfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRVRVUk5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBNl9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFR0lTVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NQQVJFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NQQVJFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4MDAwMDBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX0xTX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVUVVJOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE2X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVHSVNURVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE2X0VEQ19NT0RFCisjZGVmaW5lIE1NRUE2X0VEQ19NT0RFX19DT1VOVF9GRURfT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTZfRURDX01PREVfX0dBVEVfRlVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBNl9FRENfTU9ERV9fREVEX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE2X0VEQ19NT0RFX19QUk9QX0ZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTZfRURDX01PREVfX0JZUEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBNl9FRENfTU9ERV9fQ09VTlRfRkVEX09VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfTU9ERV9fR0FURV9GVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfTU9ERV9fREVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfTU9ERV9fUFJPUF9GRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBNTUVBNl9FRENfTU9ERV9fQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBNl9FUlJfU1RBVFVTCisjZGVmaW5lIE1NRUE2X0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBNl9FUlJfU1RBVFVTX19TRFBfV1JSU1BfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFTVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE2X0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBUEFSSVRZX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNl9FUlJfU1RBVFVTX19DTEVBUl9FUlJPUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTZfRVJSX1NUQVRVU19fQlVTWV9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0VSUl9TVEFUVVNfX0ZVRV9GTEFHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNl9FUlJfU1RBVFVTX19TRFBfUkRSU1BfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBNl9FUlJfU1RBVFVTX19TRFBfV1JSU1BfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBNl9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVNUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBNl9FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVBBUklUWV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBNl9FUlJfU1RBVFVTX19DTEVBUl9FUlJPUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBNl9FUlJfU1RBVFVTX19CVVNZX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNl9FUlJfU1RBVFVTX19GVUVfRkxBR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9NTUVBNl9NSVNDMgorI2RlZmluZSBNTUVBNl9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0RSQU1fQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfTUlTQzJfX0NTR1JPVVBfU1dBUF9JTl9HTUlfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE2X01JU0MyX19DU0dSUF9CVVJTVF9MSU1JVF9EQVRBX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTZfTUlTQzJfX0lPX1JEV1JfUFJJT1JJVFlfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X01JU0MyX19SUkVUX1NXQVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBNl9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBNl9NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBNl9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdDTAorI2RlZmluZSBNTUVBNl9NSVNDMl9fQ1NHUlBfQlVSU1RfTElNSVRfREFUQV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjgwTAorI2RlZmluZSBNTUVBNl9NSVNDMl9fSU9fUkRXUl9QUklPUklUWV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBNl9NSVNDMl9fUlJFVF9TV0FQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorLy9NTUVBNl9BRERSREVDX1NFTEVDVAorI2RlZmluZSBNTUVBNl9BRERSREVDX1NFTEVDVF9fRFJBTV9BRERSREVDX0NIQU5ORUxfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE2X0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBNl9BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19TRUxFQ1RfX0RSQU1fQUREUkRFQ19DSEFOTkVMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0MwMEwKKyNkZWZpbmUgTU1FQTZfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGODAwMEwKKy8vTU1FQTZfRURDX0NOVDMKKyNkZWZpbmUgTU1FQTZfRURDX0NOVDNfX0RSQU1SRF9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQzX19EUkFNV1JfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBNl9FRENfQ05UM19fSU9SRF9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTZfRURDX0NOVDNfX0lPV1JfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE2X0VEQ19DTlQzX19JT1dSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBNl9FRENfQ05UM19fR01JUkRfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTZfRURDX0NOVDNfX0dNSVdSX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQzX19EUkFNUkRfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQzX19EUkFNV1JfUEFHRU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQzX19JT1JEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQzX19JT1dSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQzX19JT1dSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQzX19HTUlSRF9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE2X0VEQ19DTlQzX19HTUlXUl9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9lYV9tbWVhZGVjNworLy9NTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBN19EUkFNX1JEX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19EUkFNX1JEX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE3X0RSQU1fV1JfR1JQMlZDX01BUAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19EUkFNX1dSX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTdfRFJBTV9SRF9MQVpZCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfTEFaWV9fR1JPVVAwX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0xBWllfX0dST1VQMV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9MQVpZX19HUk9VUDJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfTEFaWV9fR1JPVVAzX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfTEFaWV9fR1JPVVAwX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfTEFaWV9fR1JPVVAxX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfTEFaWV9fR1JPVVAyX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfTEFaWV9fR1JPVVAzX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGMDAwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDBMCisvL01NRUE3X0RSQU1fV1JfTEFaWQorI2RlZmluZSBNTUVBN19EUkFNX1dSX0xBWllfX0dST1VQMF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9MQVpZX19HUk9VUDFfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfTEFaWV9fR1JPVVAyX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19EUkFNX1dSX0xBWllfX0dST1VQM19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fVEhSRVNIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9MQVpZX19SRVFfQUNDVU1fSURMRU1BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBN19EUkFNX1dSX0xBWllfX0dST1VQMF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0xBWllfX0dST1VQMV9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0xBWllfX0dST1VQMl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0xBWllfX0dST1VQM19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorLy9NTUVBN19EUkFNX1JEX0NBTV9DTlRMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBN19EUkFNX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vTU1FQTdfRFJBTV9XUl9DQU1fQ05UTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBN19EUkFNX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL01NRUE3X0RSQU1fUEFHRV9CVVJTVAorI2RlZmluZSBNTUVBN19EUkFNX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RSQU1fUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfRFJBTV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19EUkFNX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBN19EUkFNX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBN19EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBN19EUkFNX1JEX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUE3X0RSQU1fV1JfUFJJX0FHRQorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEUwMDAwMEwKKy8vTU1FQTdfRFJBTV9SRF9QUklfUVVFVUlORworI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTdfRFJBTV9XUl9QUklfUVVFVUlORworI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTdfRFJBTV9SRF9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDFfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE3X0RSQU1fV1JfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBN19EUkFNX1JEX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTdfRFJBTV9XUl9QUklfVVJHRU5DWQorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL01NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfRFJBTV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19EUkFNX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkzCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfRFJBTV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19EUkFNX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE3X0RSQU1fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lENl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMQorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAwCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTdfR01JX1JEX0dSUDJWQ19NQVAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19HTUlfUkRfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0dSUDJWQ19NQVBfX0dST1VQM19WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDBfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDFfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDJfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9HUlAyVkNfTUFQX19HUk9VUDNfVkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE3X0dNSV9XUl9HUlAyVkNfTUFQCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDBfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0dSUDJWQ19NQVBfX0dST1VQMl9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9HUlAyVkNfTUFQX19HUk9VUDNfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAwX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBN19HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAxX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBN19HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAyX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfR1JQMlZDX01BUF9fR1JPVVAzX1ZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBN19HTUlfUkRfTEFaWQorI2RlZmluZSBNTUVBN19HTUlfUkRfTEFaWV9fR1JPVVAwX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0xBWllfX0dST1VQMV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9MQVpZX19HUk9VUDJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19HTUlfUkRfTEFaWV9fR1JPVVAzX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBN19HTUlfUkRfTEFaWV9fR1JPVVAwX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBN19HTUlfUkRfTEFaWV9fR1JPVVAxX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBN19HTUlfUkRfTEFaWV9fR1JPVVAyX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfTEFaWV9fR1JPVVAzX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorLy9NTUVBN19HTUlfV1JfTEFaWQorI2RlZmluZSBNTUVBN19HTUlfV1JfTEFaWV9fR1JPVVAwX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0xBWllfX0dST1VQMV9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9MQVpZX19HUk9VUDJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19HTUlfV1JfTEFaWV9fR1JPVVAzX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9USFJFU0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9MQVpZX19SRVFfQUNDVU1fVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0xBWllfX1JFUV9BQ0NVTV9JRExFTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBN19HTUlfV1JfTEFaWV9fR1JPVVAwX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBN19HTUlfV1JfTEFaWV9fR1JPVVAxX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBN19HTUlfV1JfTEFaWV9fR1JPVVAyX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfTEFaWV9fR1JPVVAzX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RIUkVTSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RjAwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfTEFaWV9fUkVRX0FDQ1VNX0lETEVNQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwTAorLy9NTUVBN19HTUlfUkRfQ0FNX0NOVEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19HTUlfUkRfQ0FNX0NOVExfX0RFUFRIX0dST1VQMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBN19HTUlfUkRfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTdfR01JX1JEX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19HTUlfUkRfQ0FNX0NOVExfX1BBR0VCQVNFRF9DSEFJTklOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fREVQVEhfR1JPVVAzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzODAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fUkVGSUxMX0NIQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUE3X0dNSV9XUl9DQU1fQ05UTAorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DQU1fQ05UTF9fREVQVEhfR1JPVVAyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0FNX0NOVExfX0RFUFRIX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0FNX0NOVExfX1JFT1JERVJfTElNSVRfR1JPVVAxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DQU1fQ05UTF9fUkVPUkRFUl9MSU1JVF9HUk9VUDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBN19HTUlfV1JfQ0FNX0NOVExfX1JFRklMTF9DSEFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9DQU1fQ05UTF9fUEFHRUJBU0VEX0NIQUlOSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19ERVBUSF9HUk9VUDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19SRU9SREVSX0xJTUlUX0dST1VQM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19SRUZJTExfQ0hBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX0NBTV9DTlRMX19QQUdFQkFTRURfQ0hBSU5JTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vTU1FQTdfR01JX1BBR0VfQlVSU1QKKyNkZWZpbmUgTU1FQTdfR01JX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9QQUdFX0JVUlNUX19SRF9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19HTUlfUEFHRV9CVVJTVF9fV1JfTElNSVRfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0dNSV9QQUdFX0JVUlNUX19XUl9MSU1JVF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfR01JX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfR01JX1BBR0VfQlVSU1RfX1JEX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1BBR0VfQlVSU1RfX1dSX0xJTUlUX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfR01JX1JEX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDFfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDBfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUE3X0dNSV9XUl9QUklfQUdFCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfQUdFX19HUk9VUDBfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfQUdFX19HUk9VUDNfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfQUdFX19HUk9VUDJfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAxX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAwX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAxX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDM4MDAwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0FHRV9fR1JPVVAzX0FHRV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorLy9NTUVBN19HTUlfUkRfUFJJX1FVRVVJTkcKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE3X0dNSV9XUl9QUklfUVVFVUlORworI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDFfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTdfR01JX1JEX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTdfR01JX1dSX1BSSV9GSVhFRAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkcKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkcKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19HTUlfUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0dNSV9SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkxCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDJfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAwX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAxX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAzX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJMgorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAxX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19HTUlfV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0dNSV9XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAzX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDBfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDJfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfR01JX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIwX19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMF9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIwX19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjBfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMF9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMF9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMF9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjAKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjBfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIwX19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSTk9STV9MSU1JVF9BRERSMF9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9MSU1JVF9BRERSMF9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBN19BRERSTk9STV9CQVNFX0FERFIxCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjFfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIxX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjFfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMV9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIxX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIxX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIxX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBN19BRERSTk9STV9MSU1JVF9BRERSMQorI2RlZmluZSBNTUVBN19BRERSTk9STV9MSU1JVF9BRERSMV9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjFfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIxX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIxX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE3X0FERFJOT1JNX09GRlNFVF9BRERSMQorI2RlZmluZSBNTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjFfX0hJX0FERFJfT0ZGU0VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fT0ZGU0VUX0FERFIxX19ISV9BRERSX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjFfX0hJX0FERFJfT0ZGU0VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjFfX0hJX0FERFJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwTAorLy9NTUVBN19BRERSTk9STV9CQVNFX0FERFIyCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjJfX0FERFJfUk5HX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIyX19MR0NZX01NSU9fSE9MRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfTlVNX0NIQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjJfX0lOVExWX05VTV9ESUVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fU09DS0VUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSMl9fSU5UTFZfQUREUl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIyX19BRERSX1JOR19WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIyX19MR0NZX01NSU9fSE9MRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fQ0hBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNDTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fRElFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9OVU1fU09DS0VUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIyX19JTlRMVl9BRERSX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBN19BRERSTk9STV9MSU1JVF9BRERSMgorI2RlZmluZSBNTUVBN19BRERSTk9STV9MSU1JVF9BRERSMl9fRFNUX0ZBQlJJQ19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjJfX0xJTUlUX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIyX19EU1RfRkFCUklDX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIyX19MSU1JVF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE3X0FERFJOT1JNX0JBU0VfQUREUjMKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSM19fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjNfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSM19fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFIzX19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjNfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjNfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjNfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIzCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFIzX19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSTk9STV9MSU1JVF9BRERSM19fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjNfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjNfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTdfQUREUk5PUk1fT0ZGU0VUX0FERFIzCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX09GRlNFVF9BRERSM19fSElfQUREUl9PRkZTRVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjNfX0hJX0FERFJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX09GRlNFVF9BRERSM19fSElfQUREUl9PRkZTRVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX09GRlNFVF9BRERSM19fSElfQUREUl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL01NRUE3X0FERFJOT1JNX0JBU0VfQUREUjQKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNF9fQUREUl9STkdfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjRfX0xHQ1lfTU1JT19IT0xFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9OVU1fQ0hBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNF9fSU5UTFZfTlVNX0RJRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9TT0NLRVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFI0X19JTlRMVl9BRERSX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjRfX0FERFJfUk5HX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjRfX0xHQ1lfTU1JT19IT0xFX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9DSEFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9ESUVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX05VTV9TT0NLRVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjRfX0lOVExWX0FERFJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjRfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL01NRUE3X0FERFJOT1JNX0xJTUlUX0FERFI0CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFI0X19EU1RfRkFCUklDX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSTk9STV9MSU1JVF9BRERSNF9fTElNSVRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjRfX0RTVF9GQUJSSUNfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjRfX0xJTUlUX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNQorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFI1X19BRERSX1JOR19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNV9fTEdDWV9NTUlPX0hPTEVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX05VTV9DSEFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFI1X19JTlRMVl9OVU1fRElFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX1NPQ0tFVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0JBU0VfQUREUjVfX0lOVExWX0FERFJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19BRERSTk9STV9CQVNFX0FERFI1X19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNV9fQUREUl9STkdfVkFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNV9fTEdDWV9NTUlPX0hPTEVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0NIQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX0RJRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfTlVNX1NPQ0tFVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNV9fSU5UTFZfQUREUl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fQkFTRV9BRERSNV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjUKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fTElNSVRfQUREUjVfX0RTVF9GQUJSSUNfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX0xJTUlUX0FERFI1X19MSU1JVF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSTk9STV9MSU1JVF9BRERSNV9fRFNUX0ZBQlJJQ19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBN19BRERSTk9STV9MSU1JVF9BRERSNV9fTElNSVRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9NTUVBN19BRERSTk9STV9PRkZTRVRfQUREUjUKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fT0ZGU0VUX0FERFI1X19ISV9BRERSX09GRlNFVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNX09GRlNFVF9BRERSNV9fSElfQUREUl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fT0ZGU0VUX0FERFI1X19ISV9BRERSX09GRlNFVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1fT0ZGU0VUX0FERFI1X19ISV9BRERSX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkYwMDAwMEwKKy8vTU1FQTdfQUREUk5PUk1EUkFNX0hPTEVfQ05UTAorI2RlZmluZSBNTUVBN19BRERSTk9STURSQU1fSE9MRV9DTlRMX19EUkFNX0hPTEVfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1EUkFNX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNRFJBTV9IT0xFX0NOVExfX0RSQU1fSE9MRV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGODBMCisvL01NRUE3X0FERFJOT1JNR01JX0hPTEVfQ05UTAorI2RlZmluZSBNTUVBN19BRERSTk9STUdNSV9IT0xFX0NOVExfX0RSQU1fSE9MRV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1HTUlfSE9MRV9DTlRMX19EUkFNX0hPTEVfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNR01JX0hPTEVfQ05UTF9fRFJBTV9IT0xFX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGODBMCisvL01NRUE3X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkcKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1EUkFNX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNRFJBTV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBN19BRERSTk9STURSQU1fTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorLy9NTUVBN19BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkcKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1HTUlfTlAyX0NIQU5ORUxfQ0ZHX19MT0cyX0FERFI2NEtfU1BBQ0UyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJOT1JNR01JX05QMl9DSEFOTkVMX0NGR19fTE9HMl9BRERSNjRLX1NQQUNFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBN19BRERSTk9STUdNSV9OUDJfQ0hBTk5FTF9DRkdfX0xPRzJfQUREUjY0S19TUEFDRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorLy9NTUVBN19BRERSREVDX0JBTktfQ0ZHCisjZGVmaW5lIE1NRUE3X0FERFJERUNfQkFOS19DRkdfX0JBTktfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDX0JBTktfQ0ZHX19CQU5LX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX1NFTF9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9TRUxfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBN19BRERSREVDX0JBTktfQ0ZHX19CQU5LR1JPVVBfSU5URVJMRUFWRV9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0FERFJERUNfQkFOS19DRkdfX0JBTktHUk9VUF9JTlRFUkxFQVZFX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19CQU5LX0NGR19fQkFOS19NQVNLX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX1NFTF9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX1NFTF9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzODAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19CQU5LX0NGR19fQkFOS0dST1VQX0lOVEVSTEVBVkVfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vTU1FQTdfQUREUkRFQ19NSVNDX0NGRworI2RlZmluZSBNTUVBN19BRERSREVDX01JU0NfQ0ZHX19WQ01fRU4wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUNfTUlTQ19DRkdfX1ZDTV9FTjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBN19BRERSREVDX01JU0NfQ0ZHX19QQ0hfTUFTS19EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fUENIX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0FERFJERUNfTUlTQ19DRkdfX0NIX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDX01JU0NfQ0ZHX19DSF9NQVNLX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE3X0FERFJERUNfTUlTQ19DRkdfX0NTX01BU0tfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fQ1NfTUFTS19HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19BRERSREVDX01JU0NfQ0ZHX19STV9NQVNLX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE3X0FERFJERUNfTUlTQ19DRkdfX1JNX01BU0tfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fVkNNX0VOMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fUENIX01BU0tfRFJBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fUENIX01BU0tfR01JX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fQ0hfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNFMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fQ1NfTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fQ1NfTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19NSVNDX0NGR19fUk1fTUFTS19HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkswX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMQorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LMl9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTksyX19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTkszX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZFTAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZDMDAwTAorLy9NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9CQU5LNV9fQ09MX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0JBTks1X19ST1dfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfUENfX0NPTF9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDX19ST1dfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fQ09MX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkVMCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkMwMDBMCisvL01NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL01NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMF9fWE9SX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzBfX05BX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MwX19OQV9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9BRERSX0hBU0hfQ1MxX19OQV9YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fWE9SX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fQUREUl9IQVNIX0NTMV9fTkFfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0FERFJERUNEUkFNX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDRFJBTV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0RSQU1fSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkswX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMF9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzBfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksxX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMV9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzFfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTksyX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LMl9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzJfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTkszX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LM19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzNfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks0X19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNF9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzRfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0JBTks1X19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9CQU5LNV9fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQkFOSzVfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX1BDX19DT0xfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9QQ19fUk9XX1hPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX0NPTF9YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfUENfX1JPV19YT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGQzAwMEwKKy8vTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfUEMyCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX1BDMl9fQkFOS19YT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9QQzJfX0JBTktfWE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MwX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMF9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzBfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9BRERSX0hBU0hfQ1MxX19YT1JfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfQUREUl9IQVNIX0NTMV9fTkFfWE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX1hPUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0FERFJfSEFTSF9DUzFfX05BX1hPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CM19WQUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19BRERSREVDR01JX0hBUlZFU1RfRU5BQkxFX19GT1JDRV9CNV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ0dNSV9IQVJWRVNUX0VOQUJMRV9fRk9SQ0VfQjVfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0IzX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I0X1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE3X0FERFJERUNHTUlfSEFSVkVTVF9FTkFCTEVfX0ZPUkNFX0I1X1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisvL01NRUE3X0FERFJERUMwX0JBU0VfQUREUl9DUzAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9DUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX0NTMgorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMwX0JBU0VfQUREUl9DUzMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMQorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMF9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzBfQUREUl9NQVNLX0NTMDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMwX0FERFJfTUFTS19DUzIzCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMQorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9STV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9DT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX1NFTF9DUzAxX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX1NFTF9DUzAxX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMDFfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTksxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX1NFTF9DUzIzX19CQU5LMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fQkFOSzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTks0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9TRUxfQ1MyM19fUk9XX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX1NFTF9DUzIzX19ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkswX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTksxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTksyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTkszX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX0JBTks0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMX0NTMjNfX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE3X0FERFJERUMwX0FERFJfU0VMMl9DUzAxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0FERFJfU0VMMl9DUzAxX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBN19BRERSREVDMF9BRERSX1NFTDJfQ1MyMworI2RlZmluZSBNTUVBN19BRERSREVDMF9BRERSX1NFTDJfQ1MyM19fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQUREUl9TRUwyX0NTMjNfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9MT19DUzAxX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyMworI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9MT19DUzIzX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19BRERSREVDMF9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE3X0FERFJERUMwX1JNX1NFTF9DUzAxCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9DUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMjMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9DUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MwMQorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMF9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMwX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzBfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX0NTMAorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MyCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX0NTMworI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9DUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMF9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MwX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzFfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMV9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMgorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MyX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzJfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQkFTRV9BRERSX1NFQ0NTM19fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9CQVNFX0FERFJfU0VDQ1MzX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMV9BRERSX01BU0tfQ1MwMQorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9NQVNLX0NTMDFfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzFfQUREUl9NQVNLX0NTMjMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfTUFTS19DUzIzX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX01BU0tfU0VDQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyMworI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9NQVNLX1NFQ0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMQorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfQ0ZHX0NTMDFfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyMworI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfQ0ZHX0NTMjNfX0hJX0NPTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktfR1JPVVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0NPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMQorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX1NFTF9DUzAxX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX1NFTF9DUzAxX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfU0VMX0NTMDFfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyMworI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX0JBTksyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX1NFTF9DUzIzX19CQU5LM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX1NFTF9DUzIzX19ST1dfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfU0VMX0NTMjNfX1JPV19ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fQkFOSzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUxfQ1MyM19fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTdfQUREUkRFQzFfQUREUl9TRUwyX0NTMDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQUREUl9TRUwyX0NTMDFfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfU0VMMl9DUzAxX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUE3X0FERFJERUMxX0FERFJfU0VMMl9DUzIzCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0FERFJfU0VMMl9DUzIzX19CQU5LNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMV9BRERSX1NFTDJfQ1MyM19fQkFOSzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9NTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MwMV9fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzAxX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0wyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9MT19DUzIzX19DT0w2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0xPX0NTMjNfX0NPTDdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE3X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMQorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzAxX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0w4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19BRERSREVDMV9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX0NPTF9TRUxfSElfQ1MyM19fQ09MMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0w4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0w5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTdfQUREUkRFQzFfUk1fU0VMX0NTMDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9DUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBN19BRERSREVDMV9STV9TRUxfQ1MyMworI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9DUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9DUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9DUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9DUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE3X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMxX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzFfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMV9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9DUzBfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MwX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTMF9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTMQorI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MxX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTMV9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9DUzFfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMyX0JBU0VfQUREUl9DUzIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTMl9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9DUzJfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MyX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MyX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MzCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9DUzNfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfQ1MzX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX0NTM19fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMAorI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MwX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMF9fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzBfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMV9fQ1NfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzFfX0JBU0VfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19DU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MxX19CQVNFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzJfX0NTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MyX19CQVNFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQ1NfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMl9fQkFTRV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTMworI2RlZmluZSBNTUVBN19BRERSREVDMl9CQVNFX0FERFJfU0VDQ1MzX19DU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQkFTRV9BRERSX1NFQ0NTM19fQkFTRV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0NTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0JBU0VfQUREUl9TRUNDUzNfX0JBU0VfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMyX0FERFJfTUFTS19DUzAxCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfTUFTS19DUzAxX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX01BU0tfQ1MwMV9fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMl9BRERSX01BU0tfQ1MyMworI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX01BU0tfQ1MyM19fQUREUl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9NQVNLX0NTMjNfX0FERFJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vTU1FQTdfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9NQVNLX1NFQ0NTMDFfX0FERFJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzAxX19BRERSX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL01NRUE3X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfTUFTS19TRUNDUzIzX19BRERSX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX01BU0tfU0VDQ1MyM19fQUREUl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfQ0ZHX0NTMDFfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9DRkdfQ1MwMV9fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzAxX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LX0dST1VQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fTlVNX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9ST1dfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQ09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfQ0ZHX0NTMjNfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9DRkdfQ1MyM19fSElfQ09MX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS19HUk9VUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fUk9XX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQ09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX0NGR19DUzIzX19ISV9DT0xfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfU0VMX0NTMDFfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9TRUxfQ1MwMV9fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzAxX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkswX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fQkFOSzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX0JBTkszX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfU0VMX0NTMjNfX1JPV19MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9TRUxfQ1MyM19fUk9XX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX19CQU5LNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTF9DUzIzX19ST1dfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBN19BRERSREVDMl9BRERSX1NFTDJfQ1MwMQorI2RlZmluZSBNTUVBN19BRERSREVDMl9BRERSX1NFTDJfQ1MwMV9fQkFOSzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9TRUwyX0NTMDFfX0JBTks1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vTU1FQTdfQUREUkRFQzJfQUREUl9TRUwyX0NTMjMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQUREUl9TRUwyX0NTMjNfX0JBTks1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0FERFJfU0VMMl9DUzIzX19CQU5LNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL01NRUE3X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMQorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MwMV9fQ09MNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzAxX19DT0w3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMDFfX0NPTDdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0xPX0NTMjNfX0NPTDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfTE9fQ1MyM19fQ09MN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0wzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9MT19DUzIzX19DT0w3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzAxX19DT0wxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMDFfX0NPTDE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MwMV9fQ09MMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyMworI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0w5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX0NPTF9TRUxfSElfQ1MyM19fQ09MMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfQ09MX1NFTF9ISV9DUzIzX19DT0wxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9DT0xfU0VMX0hJX0NTMjNfX0NPTDE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBN19BRERSREVDMl9STV9TRUxfQ1MwMQorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfQ1MwMV9fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX0NTMDFfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzAxX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfQ1MwMV9fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX0NTMDFfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzAxX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzAxX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzAxX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzAxX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzAxX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE3X0FERFJERUMyX1JNX1NFTF9DUzIzCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzIzX19STTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfQ1MyM19fUk0xX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzIzX19DSEFOX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfQ1MyM19fSU5WRVJUX1JPV19NU0JTX0VWRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9DUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX0NTMjNfX1JNMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0NIQU5fQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX0NTMjNfX0lOVkVSVF9ST1dfTVNCU19PRERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKy8vTU1FQTdfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDEKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX1JNMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19STTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0NIQU5fQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzAxX19JTlZFUlRfUk9XX01TQlNfRVZFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMDFfX0lOVkVSVF9ST1dfTVNCU19PRERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fUk0yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fQ0hBTl9CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX0VWRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MwMV9fSU5WRVJUX1JPV19NU0JTX09ERF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorLy9NTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MyMworI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fUk0wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX1JNMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fQ0hBTl9CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQUREUkRFQzJfUk1fU0VMX1NFQ0NTMjNfX0lOVkVSVF9ST1dfTVNCU19FVkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19BRERSREVDMl9STV9TRUxfU0VDQ1MyM19fSU5WRVJUX1JPV19NU0JTX09ERF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19STTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19DSEFOX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfRVZFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE3X0FERFJERUMyX1JNX1NFTF9TRUNDUzIzX19JTlZFUlRfUk9XX01TQlNfT0REX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisvL01NRUE3X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTAorI2RlZmluZSBNTUVBN19BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNRFJBTV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1EUkFNX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBN19BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF82NEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8yTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSTk9STURSQU1fR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9NTUVBN19BRERSTk9STUdNSV9HTE9CQUxfQ05UTAorI2RlZmluZSBNTUVBN19BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0FERFJOT1JNR01JX0dMT0JBTF9DTlRMX19HTEJfSEFTSF9JTlRMVl9DVExfMk1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTdfQUREUk5PUk1HTUlfR0xPQkFMX0NOVExfX0dMQl9IQVNIX0lOVExWX0NUTF8xR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBN19BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzY0S19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzJNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBN19BRERSTk9STUdNSV9HTE9CQUxfQ05UTF9fR0xCX0hBU0hfSU5UTFZfQ1RMXzFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9NTUVBN19JT19SRF9DTEkyR1JQX01BUDAKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lENF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMF9fQ0lEMTVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ2X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ4X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAxCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDE3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDIzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI1X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDI4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19JT19SRF9DTEkyR1JQX01BUDFfX0NJRDMxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMThfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMTlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMjlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL01NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lENV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEOF9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQ5X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMF9fQ0lEMTRfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAwX19DSUQxNV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDBfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDFfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDJfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDNfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDRfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDVfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDZfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDdfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDhfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDlfR1JPVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEwX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDExX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEyX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDEzX0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE0X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDBfX0NJRDE1X0dST1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9NTUVBN19JT19XUl9DTEkyR1JQX01BUDEKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMTdfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDE4X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjBfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDIxX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjNfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI0X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjVfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDI3X0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMjhfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBN19JT19XUl9DTEkyR1JQX01BUDFfX0NJRDMwX0dST1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NMSTJHUlBfTUFQMV9fQ0lEMzFfR1JPVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQxOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyMl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyM19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyNl9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyN19HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQyOV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMF9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ0xJMkdSUF9NQVAxX19DSUQzMV9HUk9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vTU1FQTdfSU9fUkRfQ09NQklORV9GTFVTSAorI2RlZmluZSBNTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ09NQklORV9GTFVTSF9fR1JPVVAxX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0lPX1JEX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfSU9fUkRfQ09NQklORV9GTFVTSF9fRk9SV0FSRF9DT01CX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDBfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDJfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIX19HUk9VUDNfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19JT19SRF9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9NTUVBN19JT19XUl9DT01CSU5FX0ZMVVNICisjZGVmaW5lIE1NRUE3X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19JT19XUl9DT01CSU5FX0ZMVVNIX19HUk9VUDFfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfSU9fV1JfQ09NQklORV9GTFVTSF9fR1JPVVAyX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19JT19XUl9DT01CSU5FX0ZMVVNIX19GT1JXQVJEX0NPTUJfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMV9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQMl9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0dST1VQM19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1dSX0NPTUJJTkVfRkxVU0hfX0ZPUldBUkRfQ09NQl9PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL01NRUE3X0lPX0dST1VQX0JVUlNUCisjZGVmaW5lIE1NRUE3X0lPX0dST1VQX0JVUlNUX19SRF9MSU1JVF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19JT19HUk9VUF9CVVJTVF9fUkRfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfSU9fR1JPVVBfQlVSU1RfX1dSX0xJTUlUX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19JT19HUk9VUF9CVVJTVF9fV1JfTElNSVRfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0lPX0dST1VQX0JVUlNUX19SRF9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE3X0lPX0dST1VQX0JVUlNUX19SRF9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE3X0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX0dST1VQX0JVUlNUX19XUl9MSU1JVF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE3X0lPX1JEX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19JT19SRF9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19JT19SRF9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19JT19SRF9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUE3X0lPX1dSX1BSSV9BR0UKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX0FHRV9fR1JPVVAwX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19JT19XUl9QUklfQUdFX19HUk9VUDJfQUdJTkdfUkFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX0FHRV9fR1JPVVAzX0FHSU5HX1JBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19JT19XUl9QUklfQUdFX19HUk9VUDFfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX0FHRV9fR1JPVVAyX0FHRV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19JT19XUl9QUklfQUdFX19HUk9VUDNfQUdFX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQMF9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQMV9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0lOR19SQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQMF9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQMV9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQMl9BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQzAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9BR0VfX0dST1VQM19BR0VfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDBMCisvL01NRUE3X0lPX1JEX1BSSV9RVUVVSU5HCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDBfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9RVUVVSU5HX19HUk9VUDNfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19JT19SRF9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfUVVFVUlOR19fR1JPVVAxX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfUVVFVUlOR19fR1JPVVAyX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBN19JT19XUl9QUklfUVVFVUlORworI2RlZmluZSBNTUVBN19JT19XUl9QUklfUVVFVUlOR19fR1JPVVAwX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9RVUVVSU5HX19HUk9VUDJfUVVFVUlOR19DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19JT19XUl9QUklfUVVFVUlOR19fR1JPVVAzX1FVRVVJTkdfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMF9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMV9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQMl9RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVRVVJTkdfX0dST1VQM19RVUVVSU5HX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vTU1FQTdfSU9fUkRfUFJJX0ZJWEVECisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX0ZJWEVEX19HUk9VUDJfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19JT19SRF9QUklfRklYRURfX0dST1VQMF9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfRklYRURfX0dST1VQMV9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfRklYRURfX0dST1VQM19GSVhFRF9DT0VGRklDSUVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorLy9NTUVBN19JT19XUl9QUklfRklYRUQKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDBfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19JT19XUl9QUklfRklYRURfX0dST1VQMl9GSVhFRF9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX0ZJWEVEX19HUk9VUDNfRklYRURfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAwX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAxX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAyX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9GSVhFRF9fR1JPVVAzX0ZJWEVEX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBFMDBMCisvL01NRUE3X0lPX1JEX1BSSV9VUkdFTkNZCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX19HUk9VUDJfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMV9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1kKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMF9VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDFfVVJHRU5DWV9DT0VGRklDSUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQM19VUkdFTkNZX0NPRUZGSUNJRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDBfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfX0dST1VQMl9VUkdFTkNZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX19HUk9VUDNfVVJHRU5DWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfQ09FRkZJQ0lFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAwX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAxX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAyX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9fR1JPVVAzX1VSR0VOQ1lfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9NTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ0X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBN19JT19SRF9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDExX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIzX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI0X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI2X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI3X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI5X01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMwX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkcKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDFfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQ4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEwX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDEzX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE2X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQxOF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDE5X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyMV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDIyX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyNF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI1X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQyN19NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDI4X01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfVVJHRU5DWV9NQVNLSU5HX19DSUQzMF9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9VUkdFTkNZX01BU0tJTkdfX0NJRDMxX01BU0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEM19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lENl9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEN19NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEOV9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMThfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMTlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjJfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjNfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjRfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjVfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjZfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjdfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjhfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMjlfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzBfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1VSR0VOQ1lfTUFTS0lOR19fQ0lEMzFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19JT19SRF9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1JEX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fUkRfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTEKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfUVVBTlRfUFJJMV9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9RVUFOVF9QUkkxX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTFfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTIKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfUVVBTlRfUFJJMl9fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9RVUFOVF9QUkkyX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTJfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTMKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19JT19XUl9QUklfUVVBTlRfUFJJM19fR1JPVVAyX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0lPX1dSX1BSSV9RVUFOVF9QUkkzX19HUk9VUDNfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQMl9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgTU1FQTdfSU9fV1JfUFJJX1FVQU5UX1BSSTNfX0dST1VQM19USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vTU1FQTdfU0RQX0FSQl9EUkFNCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfRFJBTV9fUkRXUl9CVVJTVF9MSU1JVF9DWUNMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0RSQU1fX1JEV1JfQlVSU1RfTElNSVRfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJSRF9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0RSQU1fX0VBUkxZX1NXMldSX09OX1BSSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfRFJBTV9fRUFSTFlfU1cyUkRfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJXUl9PTl9SRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBN19TRFBfQVJCX0RSQU1fX0VPQl9PTl9FWFBJUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfRFJBTV9fREVDT1VQTEVfUkRXUl9CTktTVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19SRFdSX0JVUlNUX0xJTUlUX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJSRF9PTl9QUklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJXUl9PTl9QUklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJSRF9PTl9SRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19FQVJMWV9TVzJXUl9PTl9SRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19FT0JfT05fRVhQSVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9EUkFNX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKy8vTU1FQTdfU0RQX0FSQl9HTUkKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9HTUlfX1JEV1JfQlVSU1RfTElNSVRfQ1lDTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19SRFdSX0JVUlNUX0xJTUlUX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0dNSV9fRUFSTFlfU1cyUkRfT05fUFJJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19FQVJMWV9TVzJXUl9PTl9QUklfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9HTUlfX0VBUkxZX1NXMlJEX09OX1JFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19TRFBfQVJCX0dNSV9fRUFSTFlfU1cyV1JfT05fUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19FT0JfT05fRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9HTUlfX0RFQ09VUExFX1JEV1JfQk5LU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBN19TRFBfQVJCX0dNSV9fQUxMT1dfQ0hBSU5fQlJFQUtJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19SRFdSX0JVUlNUX0xJTUlUX0NZQ0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19SRFdSX0JVUlNUX0xJTUlUX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9QUklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19FQVJMWV9TVzJXUl9PTl9QUklfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19FQVJMWV9TVzJSRF9PTl9SRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19FQVJMWV9TVzJXUl9PTl9SRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19FT0JfT05fRVhQSVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19ERUNPVVBMRV9SRFdSX0JOS1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfR01JX19BTExPV19DSEFJTl9CUkVBS0lOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL01NRUE3X1NEUF9BUkJfRklOQUwKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9GSU5BTF9fRFJBTV9CVVJTVF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfRklOQUxfX0dNSV9CVVJTVF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19JT19CVVJTVF9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9GSU5BTF9fQlVSU1RfTElNSVRfTVVMVElQTElFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfRklOQUxfX1JET05MWV9WQzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9GSU5BTF9fUkRPTkxZX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19FUlJFVkVOVF9PTl9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIE1NRUE3X1NEUF9BUkJfRklOQUxfX0hBTFRSRVFfT05fRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTdfU0RQX0FSQl9GSU5BTF9fR01JX0JVUlNUX1NUUkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19EUkFNX0JVUlNUX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19JT19CVVJTVF9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19CVVJTVF9MSU1JVF9NVUxUSVBMSUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19SRE9OTFlfVkM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19FUlJFVkVOVF9PTl9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19IQUxUUkVRX09OX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfQVJCX0ZJTkFMX19HTUlfQlVSU1RfU1RSRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorLy9NTUVBN19TRFBfRFJBTV9QUklPUklUWQorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfU0RQX0RSQU1fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X1NEUF9EUkFNX1BSSU9SSVRZX19SRF9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X1NEUF9EUkFNX1BSSU9SSVRZX19XUl9HUk9VUDJfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfU0RQX0RSQU1fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fUkRfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAwX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAxX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfRFJBTV9QUklPUklUWV9fV1JfR1JPVVAzX1BSSU9SSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBN19TRFBfR01JX1BSSU9SSVRZCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19TRFBfR01JX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfU0RQX0dNSV9QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfU0RQX0dNSV9QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19TRFBfR01JX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEYwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9HTUlfUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL01NRUE3X1NEUF9JT19QUklPUklUWQorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfU0RQX0lPX1BSSU9SSVRZX19SRF9HUk9VUDFfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X1NEUF9JT19QUklPUklUWV9fUkRfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDBfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X1NEUF9JT19QUklPUklUWV9fV1JfR1JPVVAyX1BSSU9SSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfU0RQX0lPX1BSSU9SSVRZX19XUl9HUk9VUDNfUFJJT1JJVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1JEX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMF9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMV9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQMl9QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfSU9fUFJJT1JJVFlfX1dSX0dST1VQM19QUklPUklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9NTUVBN19TRFBfQ1JFRElUUworI2RlZmluZSBNTUVBN19TRFBfQ1JFRElUU19fVEFHX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfU0RQX0NSRURJVFNfX1dSX1JFU1BfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X1NEUF9DUkVESVRTX19SRF9SRVNQX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfU0RQX0NSRURJVFNfX1RBR19MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1FQTdfU0RQX0NSRURJVFNfX1dSX1JFU1BfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgTU1FQTdfU0RQX0NSRURJVFNfX1JEX1JFU1BfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGMDAwMEwKKy8vTU1FQTdfU0RQX1RBR19SRVNFUlZFMAorI2RlZmluZSBNTUVBN19TRFBfVEFHX1JFU0VSVkUwX19WQzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfU0RQX1RBR19SRVNFUlZFMF9fVkMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X1NEUF9UQUdfUkVTRVJWRTBfX1ZDMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfU0RQX1RBR19SRVNFUlZFMF9fVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19TRFBfVEFHX1JFU0VSVkUwX19WQzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBN19TRFBfVEFHX1JFU0VSVkUwX19WQzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBN19TRFBfVEFHX1JFU0VSVkUwX19WQzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfVEFHX1JFU0VSVkUwX19WQzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9NTUVBN19TRFBfVEFHX1JFU0VSVkUxCisjZGVmaW5lIE1NRUE3X1NEUF9UQUdfUkVTRVJWRTFfX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19TRFBfVEFHX1JFU0VSVkUxX19WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfU0RQX1RBR19SRVNFUlZFMV9fVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19TRFBfVEFHX1JFU0VSVkUxX19WQzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X1NEUF9UQUdfUkVTRVJWRTFfX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE3X1NEUF9UQUdfUkVTRVJWRTFfX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9UQUdfUkVTRVJWRTFfX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9UQUdfUkVTRVJWRTFfX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NRUE3X1NEUF9WQ0NfUkVTRVJWRTAKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDQ19SRVNFUlZFMF9fVkMwX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19TRFBfVkNDX1JFU0VSVkUwX19WQzJfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDQ19SRVNFUlZFMF9fVkMzX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19TRFBfVkNDX1JFU0VSVkUwX19WQzRfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMV9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDMl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDM19DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0NfUkVTRVJWRTBfX1ZDNF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL01NRUE3X1NEUF9WQ0NfUkVTRVJWRTEKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDQ19SRVNFUlZFMV9fVkM1X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0NfUkVTRVJWRTFfX1ZDNl9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19TRFBfVkNDX1JFU0VSVkUxX19WQzdfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDQ19SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTUVBN19TRFBfVkNDX1JFU0VSVkUxX19WQzVfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBN19TRFBfVkNDX1JFU0VSVkUxX19WQzZfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBN19TRFBfVkNDX1JFU0VSVkUxX19WQzdfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBN19TRFBfVkNDX1JFU0VSVkUxX19ESVNUUklCVVRFX1BPT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTUVBN19TRFBfVkNEX1JFU0VSVkUwCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDMF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19TRFBfVkNEX1JFU0VSVkUwX19WQzFfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDRF9SRVNFUlZFMF9fVkMyX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0RfUkVTRVJWRTBfX1ZDM19DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDRF9SRVNFUlZFMF9fVkM0X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBNTUVBN19TRFBfVkNEX1JFU0VSVkUwX19WQzBfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBNTUVBN19TRFBfVkNEX1JFU0VSVkUwX19WQzFfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorI2RlZmluZSBNTUVBN19TRFBfVkNEX1JFU0VSVkUwX19WQzJfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGMDAwTAorI2RlZmluZSBNTUVBN19TRFBfVkNEX1JFU0VSVkUwX19WQzNfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkMwMDAwTAorI2RlZmluZSBNTUVBN19TRFBfVkNEX1JFU0VSVkUwX19WQzRfQ1JFRElUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorLy9NTUVBN19TRFBfVkNEX1JFU0VSVkUxCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0RfUkVTRVJWRTFfX1ZDNV9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19TRFBfVkNEX1JFU0VSVkUxX19WQzZfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDRF9SRVNFUlZFMV9fVkM3X0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X1NEUF9WQ0RfUkVTRVJWRTFfX0RJU1RSSUJVVEVfUE9PTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDRF9SRVNFUlZFMV9fVkM1X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDRF9SRVNFUlZFMV9fVkM2X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDRF9SRVNFUlZFMV9fVkM3X0NSRURJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgTU1FQTdfU0RQX1ZDRF9SRVNFUlZFMV9fRElTVFJJQlVURV9QT09MX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTdfU0RQX1JFUV9DTlRMCisjZGVmaW5lIE1NRUE3X1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19TRFBfUkVRX0NOVExfX1JFUV9QQVNTX1BXX09WRVJSSURFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfU0RQX1JFUV9DTlRMX19SRVFfUEFTU19QV19PVkVSUklERV9BVE9NSUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X1NEUF9SRVFfQ05UTF9fUkVRX0NIQUlOX09WRVJSSURFX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19TRFBfUkVRX0NOVExfX1JFUV9DSEFJTl9PVkVSUklERV9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfU0RQX1JFUV9DTlRMX19JTk5FUl9ET01BSU5fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE3X1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE3X1NEUF9SRVFfQ05UTF9fUkVRX1BBU1NfUFdfT1ZFUlJJREVfQVRPTUlDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE3X1NEUF9SRVFfQ05UTF9fUkVRX0NIQUlOX09WRVJSSURFX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE3X1NEUF9SRVFfQ05UTF9fUkVRX0NIQUlOX09WRVJSSURFX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE3X1NEUF9SRVFfQ05UTF9fSU5ORVJfRE9NQUlOX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisvL01NRUE3X01JU0MKKyNkZWZpbmUgTU1FQTdfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0RSQU1fUkRfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9EUkFNX1dSX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19NSVNDX19SRUxBVElWRV9QUklfSU5fR01JX1JEX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfTUlTQ19fUkVMQVRJVkVfUFJJX0lOX0dNSV9XUl9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9JT19SRF9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19NSVNDX19SRUxBVElWRV9QUklfSU5fSU9fV1JfQVJCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTdfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBN19NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19NSVNDX19FQVJMWVdSUkVUX0VOQUJMRV9WQzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTdfTUlTQ19fRUFSTFlXUlJFVF9FTkFCTEVfVkM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBN19NSVNDX19FQVJMWV9TRFBfT1JJR0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfTUlTQ19fTElOS01HUl9EWU5BTUlDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE3X01JU0NfX0xJTktNR1JfSEFMVF9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTdfTUlTQ19fTElOS01HUl9SRUNPTk5FQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNTUVBN19NSVNDX19MSU5LTUdSX0lETEVfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X01JU0NfX0ZBVk9VUl9NSURDSEFJTl9DU19JTl9EUkFNX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTdfTUlTQ19fRkFWT1VSX01JRENIQUlOX0NTX0lOX0dNSV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNTUVBN19NSVNDX19GQVZPVVJfTEFTVF9DU19JTl9EUkFNX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X01JU0NfX0ZBVk9VUl9MQVNUX0NTX0lOX0dNSV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgTU1FQTdfTUlTQ19fU1dJVENIX0NTX09OX1cyUl9JTl9EUkFNX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBNTUVBN19NSVNDX19TV0lUQ0hfQ1NfT05fVzJSX0lOX0dNSV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE3X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9EUkFNX1JEX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9EUkFNX1dSX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE3X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfUkRfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE3X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9HTUlfV1JfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1NRUE3X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9JT19SRF9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1NRUE3X01JU0NfX1JFTEFUSVZFX1BSSV9JTl9JT19XUl9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZV1JSRVRfRU5BQkxFX1ZDN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0VBUkxZX1NEUF9PUklHREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0xJTktNR1JfRFlOQU1JQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0xJTktNR1JfSEFMVF9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNjAwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0xJTktNR1JfUkVDT05ORUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0xJTktNR1JfSURMRV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0ZBVk9VUl9NSURDSEFJTl9DU19JTl9EUkFNX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0ZBVk9VUl9NSURDSEFJTl9DU19JTl9HTUlfQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0ZBVk9VUl9MQVNUX0NTX0lOX0RSQU1fQVJCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX0ZBVk9VUl9MQVNUX0NTX0lOX0dNSV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X01JU0NfX1NXSVRDSF9DU19PTl9XMlJfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE3X0xBVEVOQ1lfU0FNUExJTkcKKyNkZWZpbmUgTU1FQTdfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0RSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9HTUlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfR01JX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0lPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9JT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTdfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIwX0FUT01JQ19SRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9BVE9NSUNfUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTdfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjBfQVRPTUlDX05PUkVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0xBVEVOQ1lfU0FNUExJTkdfX1NBTVBMRVIxX0FUT01JQ19OT1JFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9WQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfTEFURU5DWV9TQU1QTElOR19fU0FNUExFUjFfVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9EUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9HTUlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9JT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9JT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9BVE9NSUNfUkVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9BVE9NSUNfTk9SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9BVE9NSUNfTk9SRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMF9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZDMDAwTAorI2RlZmluZSBNTUVBN19MQVRFTkNZX1NBTVBMSU5HX19TQU1QTEVSMV9WQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGQzAwMDAwTAorLy9NTUVBN19QRVJGQ09VTlRFUl9MTworI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1FQTdfUEVSRkNPVU5URVJfSEkKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vTU1FQTdfUEVSRkNPVU5URVIwX0NGRworI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL01NRUE3X1BFUkZDT1VOVEVSMV9DRkcKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorLy9NTUVBN19QRVJGQ09VTlRFUl9SU0xUX0NOVEwKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNTUVBN19QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1NRUE3X1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisvL01NRUE3X0VEQ19DTlQKKyNkZWZpbmUgTU1FQTdfRURDX0NOVF9fRFJBTVJEX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBN19FRENfQ05UX19EUkFNV1JfQ01ETUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1FQTdfRURDX0NOVF9fRFJBTVdSX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX1NFQ19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19FRENfQ05UX19EUkFNV1JfREFUQU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1FQTdfRURDX0NOVF9fUlJFVF9UQUdNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX1JSRVRfVEFHTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19FRENfQ05UX19XUkVUX1RBR01FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX1dSRVRfVEFHTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfRURDX0NOVF9fRFJBTVJEX1BBR0VNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19FRENfQ05UX19EUkFNV1JfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0lPUkRfQ01ETUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTU1FQTdfRURDX0NOVF9fSU9XUl9DTURNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBNTUVBN19FRENfQ05UX19JT1dSX0RBVEFNRU1fU0VEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1SRF9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1XUl9DTURNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1XUl9EQVRBTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX1JSRVRfVEFHTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX1JSRVRfVEFHTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX1dSRVRfVEFHTUVNX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX1dSRVRfVEFHTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1SRF9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0RSQU1XUl9QQUdFTUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0lPUkRfQ01ETUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0lPV1JfQ01ETUVNX1NFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19DTlRfX0lPV1JfREFUQU1FTV9TRURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisvL01NRUE3X0VEQ19DTlQyCisjZGVmaW5lIE1NRUE3X0VEQ19DTlQyX19HTUlSRF9DTURNRU1fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19FRENfQ05UMl9fR01JUkRfQ01ETUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NRUE3X0VEQ19DTlQyX19HTUlXUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19FRENfQ05UMl9fR01JV1JfREFUQU1FTV9TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE3X0VEQ19DTlQyX19HTUlSRF9QQUdFTUVNX1NFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19FRENfQ05UMl9fR01JV1JfUEFHRU1FTV9TRURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVJEX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9TRUNfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVdSX0NNRE1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVdSX0RBVEFNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVJEX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDJfX0dNSVdSX1BBR0VNRU1fU0VEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMEwKKy8vTU1FQTdfRFNNX0NOVEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0RSQU1SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTUVBN19EU01fQ05UTF9fRFJBTVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0RSQU1XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMX19EUkFNV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTUVBN19EU01fQ05UTF9fRFJBTVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX1JSRVRfVEFHTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMX19SUkVUX1RBR01FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBN19EU01fQ05UTF9fV1JFVF9UQUdNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX1dSRVRfVEFHTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMX19HTUlSRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBN19EU01fQ05UTF9fR01JUkRfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMX19HTUlXUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0dNSVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19EU01fQ05UTF9fR01JV1JfREFUQU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMX19HTUlXUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0RSQU1SRF9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0RSQU1SRF9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0RSQU1XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0RSQU1XUl9DTURNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX1JSRVRfVEFHTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX1JSRVRfVEFHTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX1dSRVRfVEFHTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX1dSRVRfVEFHTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0dNSVJEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0dNSVdSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0dNSVdSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExfX0dNSVdSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vTU1FQTdfRFNNX0NOVExBCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMQV9fRFJBTVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19EU01fQ05UTEFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19EUkFNV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMQV9fRFJBTVdSX1BBR0VNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBN19EU01fQ05UTEFfX0lPUkRfQ01ETUVNX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19JT1JEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMQV9fSU9XUl9DTURNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19EU01fQ05UTEFfX0lPV1JfQ01ETUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19JT1dSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMQV9fSU9XUl9EQVRBTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19EU01fQ05UTEFfX0dNSVJEX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBN19EU01fQ05UTEFfX0dNSVdSX1BBR0VNRU1fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19EUkFNV1JfUEFHRU1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19EUkFNV1JfUEFHRU1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19JT1JEX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19JT1JEX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9EU01fSVJSSVRBVE9SX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19JT1dSX0NNRE1FTV9FTkFCTEVfU0lOR0xFX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19JT1dSX0RBVEFNRU1fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19JT1dSX0RBVEFNRU1fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19HTUlSRF9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19HTUlSRF9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVExBX19HTUlXUl9QQUdFTUVNX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vTU1FQTdfRFNNX0NOVEwyCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMl9fRFJBTVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19EU01fQ05UTDJfX0RSQU1SRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMl9fRFJBTVdSX0NNRE1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTUVBN19EU01fQ05UTDJfX0RSQU1XUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19EUkFNV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMl9fUlJFVF9UQUdNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNTUVBN19EU01fQ05UTDJfX1JSRVRfVEFHTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19XUkVUX1RBR01FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMl9fV1JFVF9UQUdNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNTUVBN19EU01fQ05UTDJfX0dNSVJEX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19HTUlSRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBNTUVBN19EU01fQ05UTDJfX0dNSVdSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMl9fR01JV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19HTUlXUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBNTUVBN19EU01fQ05UTDJfX0dNSVdSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMl9fSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19EUkFNUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19EUkFNV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19EUkFNV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19EUkFNV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19EUkFNV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19SUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19XUkVUX1RBR01FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19XUkVUX1RBR01FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19HTUlSRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19HTUlSRF9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19HTUlXUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19HTUlXUl9EQVRBTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19HTUlXUl9EQVRBTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyX19JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQzAwMDAwMEwKKy8vTU1FQTdfRFNNX0NOVEwyQQorI2RlZmluZSBNTUVBN19EU01fQ05UTDJBX19EUkFNUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyQV9fRFJBTVJEX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNTUVBN19EU01fQ05UTDJBX19EUkFNV1JfUEFHRU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyQV9fSU9SRF9DTURNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0lPUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTUVBN19EU01fQ05UTDJBX19JT1dSX0NNRE1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyQV9fSU9XUl9DTURNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0lPV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNTUVBN19EU01fQ05UTDJBX19JT1dSX0RBVEFNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyQV9fR01JUkRfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0dNSVJEX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgTU1FQTdfRFNNX0NOVEwyQV9fR01JV1JfUEFHRU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBNTUVBN19EU01fQ05UTDJBX19HTUlXUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0RSQU1SRF9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0RSQU1XUl9QQUdFTUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0RSQU1XUl9QQUdFTUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0lPUkRfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0lPUkRfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0lPV1JfQ01ETUVNX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0lPV1JfREFUQU1FTV9FTkFCTEVfRVJST1JfSU5KRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0lPV1JfREFUQU1FTV9TRUxFQ1RfSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0dNSVJEX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTgwMDBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0dNSVJEX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIE1NRUE3X0RTTV9DTlRMMkFfX0dNSVdSX1BBR0VNRU1fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisvL01NRUE3X0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19DR1RUX0NMS19DVFJMX19TUEFSRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBNTUVBN19DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIE1NRUE3X0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfUkVUVVJOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU1BBUkUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBNTUVBN19DR1RUX0NMS19DVFJMX19MU19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIE1NRUE3X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBN19DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX1JFVFVSTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIE1NRUE3X0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfUkVHSVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU1BBUkUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU1BBUkUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzgwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRVRVUk5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgTU1FQTdfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9SRUdJU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1FQTdfRURDX01PREUKKyNkZWZpbmUgTU1FQTdfRURDX01PREVfX0NPVU5UX0ZFRF9PVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTUVBN19FRENfTU9ERV9fR0FURV9GVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1NRUE3X0VEQ19NT0RFX19ERURfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1FQTdfRURDX01PREVfX1BST1BfRkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBNTUVBN19FRENfTU9ERV9fQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1NRUE3X0VEQ19NT0RFX19DT1VOVF9GRURfT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19NT0RFX19HQVRFX0ZVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19NT0RFX19ERURfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19NT0RFX19QUk9QX0ZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIE1NRUE3X0VEQ19NT0RFX19CWVBBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01NRUE3X0VSUl9TVEFUVVMKKyNkZWZpbmUgTU1FQTdfRVJSX1NUQVRVU19fU0RQX1JEUlNQX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NRUE3X0VSUl9TVEFUVVNfX1NEUF9XUlJTUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19FUlJfU1RBVFVTX19TRFBfUkRSU1BfREFUQVNUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1FQTdfRVJSX1NUQVRVU19fU0RQX1JEUlNQX0RBVEFQQVJJVFlfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE3X0VSUl9TVEFUVVNfX0NMRUFSX0VSUk9SX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNTUVBN19FUlJfU1RBVFVTX19CVVNZX09OX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRVJSX1NUQVRVU19fRlVFX0ZMQUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE3X0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NRUE3X0VSUl9TVEFUVVNfX1NEUF9XUlJTUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NRUE3X0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIE1NRUE3X0VSUl9TVEFUVVNfX1NEUF9SRFJTUF9EQVRBUEFSSVRZX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1NRUE3X0VSUl9TVEFUVVNfX0NMRUFSX0VSUk9SX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1NRUE3X0VSUl9TVEFUVVNfX0JVU1lfT05fRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE3X0VSUl9TVEFUVVNfX0ZVRV9GTEFHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL01NRUE3X01JU0MyCisjZGVmaW5lIE1NRUE3X01JU0MyX19DU0dST1VQX1NXQVBfSU5fRFJBTV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19NSVNDMl9fQ1NHUk9VUF9TV0FQX0lOX0dNSV9BUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTU1FQTdfTUlTQzJfX0NTR1JQX0JVUlNUX0xJTUlUX0RBVEFfRFJBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X01JU0MyX19DU0dSUF9CVVJTVF9MSU1JVF9EQVRBX0dNSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTUVBN19NSVNDMl9fSU9fUkRXUl9QUklPUklUWV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfTUlTQzJfX1JSRVRfU1dBUF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1NRUE3X01JU0MyX19DU0dST1VQX1NXQVBfSU5fRFJBTV9BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1NRUE3X01JU0MyX19DU0dST1VQX1NXQVBfSU5fR01JX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1NRUE3X01JU0MyX19DU0dSUF9CVVJTVF9MSU1JVF9EQVRBX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0NMCisjZGVmaW5lIE1NRUE3X01JU0MyX19DU0dSUF9CVVJTVF9MSU1JVF9EQVRBX0dNSV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGODBMCisjZGVmaW5lIE1NRUE3X01JU0MyX19JT19SRFdSX1BSSU9SSVRZX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1NRUE3X01JU0MyX19SUkVUX1NXQVBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL01NRUE3X0FERFJERUNfU0VMRUNUCisjZGVmaW5lIE1NRUE3X0FERFJERUNfU0VMRUNUX19EUkFNX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTUVBN19BRERSREVDX1NFTEVDVF9fRFJBTV9BRERSREVDX0NIQU5ORUxfRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTU1FQTdfQUREUkRFQ19TRUxFQ1RfX0dNSV9BRERSREVDX0NIQU5ORUxfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NRUE3X0FERFJERUNfU0VMRUNUX19HTUlfQUREUkRFQ19DSEFOTkVMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBNTUVBN19BRERSREVDX1NFTEVDVF9fRFJBTV9BRERSREVDX0NIQU5ORUxfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTUVBN19BRERSREVDX1NFTEVDVF9fRFJBTV9BRERSREVDX0NIQU5ORUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorI2RlZmluZSBNTUVBN19BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3QzAwTAorI2RlZmluZSBNTUVBN19BRERSREVDX1NFTEVDVF9fR01JX0FERFJERUNfQ0hBTk5FTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorLy9NTUVBN19FRENfQ05UMworI2RlZmluZSBNTUVBN19FRENfQ05UM19fRFJBTVJEX1BBR0VNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDNfX0RSQU1XUl9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NRUE3X0VEQ19DTlQzX19JT1JEX0NNRE1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTUVBN19FRENfQ05UM19fSU9XUl9DTURNRU1fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDNfX0lPV1JfREFUQU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NRUE3X0VEQ19DTlQzX19HTUlSRF9QQUdFTUVNX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBNTUVBN19FRENfQ05UM19fR01JV1JfUEFHRU1FTV9ERURfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDNfX0RSQU1SRF9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDNfX0RSQU1XUl9QQUdFTUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDNfX0lPUkRfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDNfX0lPV1JfQ01ETUVNX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDNfX0lPV1JfREFUQU1FTV9ERURfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDNfX0dNSVJEX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMEwKKyNkZWZpbmUgTU1FQTdfRURDX0NOVDNfX0dNSVdSX1BBR0VNRU1fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX3BjdGxkZWMxCisvL1BDVEwxX0NUUkwKKyNkZWZpbmUgUENUTDFfQ1RSTF9fUEdfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX0NUUkxfX0FMTE9XX0RFRVBfU0xFRVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9DVFJMX19TVENUUkxfUlNNVV9JRExFX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUENUTDFfQ1RSTF9fU1RDVFJMX0RBR0JfSURMRV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwxX0NUUkxfX1NUQ1RSTF9JR05PUkVfUFJPVEVDVElPTl9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfQ1RSTF9fT1ZSX0VBMF9TRFBfUEFSVEFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBQQ1RMMV9DVFJMX19PVlJfRUExX1NEUF9QQVJUQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTJfU0RQX1BBUlRBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgUENUTDFfQ1RSTF9fT1ZSX0VBM19TRFBfUEFSVEFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBQQ1RMMV9DVFJMX19PVlJfRUE0X1NEUF9QQVJUQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTBfU0RQX0ZVTExBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgUENUTDFfQ1RSTF9fT1ZSX0VBMV9TRFBfRlVMTEFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBQQ1RMMV9DVFJMX19PVlJfRUEyX1NEUF9GVUxMQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTNfU0RQX0ZVTExBQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgUENUTDFfQ1RSTF9fT1ZSX0VBNF9TRFBfRlVMTEFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBQQ1RMMV9DVFJMX19QR0ZTTV9DTURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFBDVEwxX0NUUkxfX1BHX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX0NUUkxfX0FMTE9XX0RFRVBfU0xFRVBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisjZGVmaW5lIFBDVEwxX0NUUkxfX1NUQ1RSTF9SU01VX0lETEVfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RjBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX1NUQ1RSTF9EQUdCX0lETEVfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEY4MDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX1NUQ1RSTF9JR05PUkVfUFJPVEVDVElPTl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTBfU0RQX1BBUlRBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTFfU0RQX1BBUlRBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTJfU0RQX1BBUlRBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTNfU0RQX1BBUlRBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTRfU0RQX1BBUlRBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTBfU0RQX0ZVTExBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTFfU0RQX0ZVTExBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTJfU0RQX0ZVTExBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTNfU0RQX0ZVTExBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX09WUl9FQTRfU0RQX0ZVTExBQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFBDVEwxX0NUUkxfX1BHRlNNX0NNRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgwMDAwMDBMCisvL1BDVEwxX01NSFVCX0RFRVBTTEVFUF9JQgorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX0lCX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX0lCX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX0lCX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX0lCX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX0lCX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfSUJfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX0lCX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfSUJfX1NFVENMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9JQl9fU0VUQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1BDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERQorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfX0RTX0FUSFVCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9fRFNfQVRIVUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL1BDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQgorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwxX01NSFVCX0RFRVBTTEVFUF9PVkVSUklERV9JQl9fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDFfTU1IVUJfREVFUFNMRUVQX09WRVJSSURFX0lCX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMV9NTUhVQl9ERUVQU0xFRVBfT1ZFUlJJREVfSUJfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9QQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfX0RTX0FUSFVCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9fQUxMSVBTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EUzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19EU19BVEhVQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX19BTExJUFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9QQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX0lCCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMV9QR19JR05PUkVfREVFUFNMRUVQX0lCX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1BHX0lHTk9SRV9ERUVQU0xFRVBfSUJfX0FMTElQU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUENUTDFfUEdfSUdOT1JFX0RFRVBTTEVFUF9JQl9fQUxMSVBTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vUENUTDFfU0xJQ0UwX0NGR19EQUdCX0JVU1kKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EQUdCX0JVU1lfX0RCX0xOQ0ZHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfREFHQl9CVVNZX19EQl9MTkNGR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1BDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1cKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFM5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX19EUzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfX0RTMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19JQgorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9DRkdfRFNfQUxMT1dfSUJfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX0NGR19EU19BTExPV19JQl9fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfQ0ZHX0RTX0FMTE9XX0lCX19EUzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9QQ1RMMV9TTElDRTFfQ0ZHX0RBR0JfQlVTWQorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RBR0JfQlVTWV9fREJfTE5DRkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EQUdCX0JVU1lfX0RCX0xOQ0ZHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENUTDFfU0xJQ0UxX0NGR19EU19BTExPVworI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX19EUzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9QQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX0NGR19EU19BTExPV19JQl9fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMV9TTElDRTFfQ0ZHX0RTX0FMTE9XX0lCX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9DRkdfRFNfQUxMT1dfSUJfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1BDVEwxX1NMSUNFMl9DRkdfREFHQl9CVVNZCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfREFHQl9CVVNZX19EQl9MTkNGR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RBR0JfQlVTWV9fREJfTE5DRkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1BDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUIKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMV9TTElDRTJfQ0ZHX0RTX0FMTE9XX0lCX19EUzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9DRkdfRFNfQUxMT1dfSUJfX0RTMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX0NGR19EU19BTExPV19JQl9fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vUENUTDFfU0xJQ0UzX0NGR19EQUdCX0JVU1kKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EQUdCX0JVU1lfX0RCX0xOQ0ZHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfREFHQl9CVVNZX19EQl9MTkNGR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1BDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1cKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFM2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFM5X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX19EUzE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfX0RTMTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFM0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFM1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFM2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFM3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFM4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFM5X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19fRFMxNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19JQgorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwxX1NMSUNFM19DRkdfRFNfQUxMT1dfSUJfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX0NGR19EU19BTExPV19JQl9fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfQ0ZHX0RTX0FMTE9XX0lCX19EUzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9QQ1RMMV9TTElDRTRfQ0ZHX0RBR0JfQlVTWQorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RBR0JfQlVTWV9fREJfTE5DRkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EQUdCX0JVU1lfX0RCX0xOQ0ZHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENUTDFfU0xJQ0U0X0NGR19EU19BTExPVworI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19fRFM0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19fRFM3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfX0RTMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19fRFMxNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX19EUzE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9QQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFM1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFM4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFMxMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X0NGR19EU19BTExPV19JQl9fRFMxNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMV9TTElDRTRfQ0ZHX0RTX0FMTE9XX0lCX19EUzE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTOV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9DRkdfRFNfQUxMT1dfSUJfX0RTMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1BDVEwxX1VUQ0wyX01JU0MKKyNkZWZpbmUgUENUTDFfVVRDTDJfTUlTQ19fQ1JJVElDQUxfUkVHU19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwxX1VUQ0wyX01JU0NfX1RJTEVfSURMRV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBQQ1RMMV9VVENMMl9NSVNDX19SRU5HX01FTV9MU19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDFfVVRDTDJfTUlTQ19fU1RDVFJMX0ZPUkNFX1BHRlNNX0NNRF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9VVENMMl9NSVNDX19SRU5HX0VYRUNVVEVfT05fUkVHX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFBDVEwxX1VUQ0wyX01JU0NfX1JEX1RJTUVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUENUTDFfVVRDTDJfTUlTQ19fQ1JJVElDQUxfUkVHU19MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgUENUTDFfVVRDTDJfTUlTQ19fVElMRV9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgUENUTDFfVVRDTDJfTUlTQ19fUkVOR19NRU1fTFNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDFfVVRDTDJfTUlTQ19fU1RDVFJMX0ZPUkNFX1BHRlNNX0NNRF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUENUTDFfVVRDTDJfTUlTQ19fUkVOR19FWEVDVVRFX09OX1JFR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUENUTDFfVVRDTDJfTUlTQ19fUkRfVElNRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vUENUTDFfU0xJQ0UwX01JU0MKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX01JU0NfX0NSSVRJQ0FMX1JFR1NfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9NSVNDX19USUxFX0lETEVfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMV9TTElDRTBfTUlTQ19fUkVOR19NRU1fTFNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX01JU0NfX1NUQ1RSTF9GT1JDRV9QR0ZTTV9DTURfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9NSVNDX19ERUVQU0xFRVBfRElTQ1NEUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX01JU0NfX1JFTkdfRVhFQ1VURV9PTl9SRUdfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBQQ1RMMV9TTElDRTBfTUlTQ19fUkRfVElNRVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9NSVNDX19DUklUSUNBTF9SRUdTX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9NSVNDX19USUxFX0lETEVfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9NSVNDX19SRU5HX01FTV9MU19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9NSVNDX19TVENUUkxfRk9SQ0VfUEdGU01fQ01EX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9NSVNDX19ERUVQU0xFRVBfRElTQ1NEUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9NSVNDX19SRU5HX0VYRUNVVEVfT05fUkVHX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9NSVNDX19SRF9USU1FUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL1BDVEwxX1NMSUNFMV9NSVNDCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9NSVNDX19DUklUSUNBTF9SRUdTX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMV9TTElDRTFfTUlTQ19fVElMRV9JRExFX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX01JU0NfX1JFTkdfTUVNX0xTX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9NSVNDX19TVENUUkxfRk9SQ0VfUEdGU01fQ01EX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMV9TTElDRTFfTUlTQ19fREVFUFNMRUVQX0RJU0NTRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9NSVNDX19SRU5HX0VYRUNVVEVfT05fUkVHX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX01JU0NfX1JEX1RJTUVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBQQ1RMMV9TTElDRTFfTUlTQ19fQ1JJVElDQUxfUkVHU19MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfTUlTQ19fVElMRV9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfTUlTQ19fUkVOR19NRU1fTFNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfTUlTQ19fU1RDVFJMX0ZPUkNFX1BHRlNNX0NNRF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfTUlTQ19fREVFUFNMRUVQX0RJU0NTRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfTUlTQ19fUkVOR19FWEVDVVRFX09OX1JFR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfTUlTQ19fUkRfVElNRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9QQ1RMMV9TTElDRTJfTUlTQworI2RlZmluZSBQQ1RMMV9TTElDRTJfTUlTQ19fQ1JJVElDQUxfUkVHU19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX01JU0NfX1RJTEVfSURMRV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9NSVNDX19SRU5HX01FTV9MU19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBQQ1RMMV9TTElDRTJfTUlTQ19fU1RDVFJMX0ZPUkNFX1BHRlNNX0NNRF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX01JU0NfX0RFRVBTTEVFUF9ESVNDU0RQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTJfTUlTQ19fUkVOR19FWEVDVVRFX09OX1JFR19VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9NSVNDX19SRF9USU1FUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX01JU0NfX0NSSVRJQ0FMX1JFR1NfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX01JU0NfX1RJTEVfSURMRV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX01JU0NfX1JFTkdfTUVNX0xTX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX01JU0NfX1NUQ1RSTF9GT1JDRV9QR0ZTTV9DTURfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX01JU0NfX0RFRVBTTEVFUF9ESVNDU0RQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX01JU0NfX1JFTkdfRVhFQ1VURV9PTl9SRUdfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX01JU0NfX1JEX1RJTUVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vUENUTDFfU0xJQ0UzX01JU0MKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX01JU0NfX0NSSVRJQ0FMX1JFR1NfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFBDVEwxX1NMSUNFM19NSVNDX19USUxFX0lETEVfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBQQ1RMMV9TTElDRTNfTUlTQ19fUkVOR19NRU1fTFNfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX01JU0NfX1NUQ1RSTF9GT1JDRV9QR0ZTTV9DTURfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFBDVEwxX1NMSUNFM19NSVNDX19ERUVQU0xFRVBfRElTQ1NEUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX01JU0NfX1JFTkdfRVhFQ1VURV9PTl9SRUdfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBQQ1RMMV9TTElDRTNfTUlTQ19fUkRfVElNRVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFBDVEwxX1NMSUNFM19NSVNDX19DUklUSUNBTF9SRUdTX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19NSVNDX19USUxFX0lETEVfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19NSVNDX19SRU5HX01FTV9MU19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19NSVNDX19TVENUUkxfRk9SQ0VfUEdGU01fQ01EX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19NSVNDX19ERUVQU0xFRVBfRElTQ1NEUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19NSVNDX19SRU5HX0VYRUNVVEVfT05fUkVHX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19NSVNDX19SRF9USU1FUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL1BDVEwxX1NMSUNFNF9NSVNDCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9NSVNDX19DUklUSUNBTF9SRUdTX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBQQ1RMMV9TTElDRTRfTUlTQ19fVElMRV9JRExFX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X01JU0NfX1JFTkdfTUVNX0xTX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9NSVNDX19TVENUUkxfRk9SQ0VfUEdGU01fQ01EX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBQQ1RMMV9TTElDRTRfTUlTQ19fREVFUFNMRUVQX0RJU0NTRFBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9NSVNDX19SRU5HX0VYRUNVVEVfT05fUkVHX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X01JU0NfX1JEX1RJTUVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBQQ1RMMV9TTElDRTRfTUlTQ19fQ1JJVElDQUxfUkVHU19MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfTUlTQ19fVElMRV9JRExFX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfTUlTQ19fUkVOR19NRU1fTFNfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfTUlTQ19fU1RDVFJMX0ZPUkNFX1BHRlNNX0NNRF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfTUlTQ19fREVFUFNMRUVQX0RJU0NTRFBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfTUlTQ19fUkVOR19FWEVDVVRFX09OX1JFR19VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfTUlTQ19fUkRfVElNRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9QQ1RMMV9VVENMMl9SRU5HX0VYRUNVVEUKKyNkZWZpbmUgUENUTDFfVVRDTDJfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9VVENMMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfU1RBUlRfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDFfVVRDTDJfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfRU5EX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19TVEFSVF9QVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkNMCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX0VORF9QVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkUwMDBMCisvL1BDVEwxX1NMSUNFMF9SRU5HX0VYRUNVVEUKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9TTElDRTBfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX0VORF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfU1RBUlRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkNMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkYwMDBMCisvL1BDVEwxX1NMSUNFMV9SRU5HX0VYRUNVVEUKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9TTElDRTFfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX0VORF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfU1RBUlRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkNMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkYwMDBMCisvL1BDVEwxX1NMSUNFMl9SRU5HX0VYRUNVVEUKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9TTElDRTJfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX0VORF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfU1RBUlRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkNMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkYwMDBMCisvL1BDVEwxX1NMSUNFM19SRU5HX0VYRUNVVEUKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFM19SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9TTElDRTNfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX0VORF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwxX1NMSUNFM19SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfU1RBUlRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkNMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkYwMDBMCisvL1BDVEwxX1NMSUNFNF9SRU5HX0VYRUNVVEUKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX05PV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQQ1RMMV9TTElDRTRfUkVOR19FWEVDVVRFX19SRU5HX0VYRUNVVEVfTk9XX1NUQVJUX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1JFTkdfRVhFQ1VURV9fUkVOR19FWEVDVVRFX0VORF9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9OT1dfU1RBUlRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkNMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9SRU5HX0VYRUNVVEVfX1JFTkdfRVhFQ1VURV9FTkRfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkYwMDBMCisvL1BDVEwxX1VUQ0wyX1JFTkdfUkFNX0lOREVYCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1JFTkdfUkFNX0lOREVYX19SRU5HX1JBTV9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9VVENMMl9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0ZGTAorLy9QQ1RMMV9VVENMMl9SRU5HX1JBTV9EQVRBCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1JFTkdfUkFNX0RBVEFfX1JFTkdfUkFNX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9VVENMMl9SRU5HX1JBTV9EQVRBX19SRU5HX1JBTV9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ1RMMV9TTElDRTBfUkVOR19SQU1fSU5ERVgKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1JFTkdfUkFNX0lOREVYX19SRU5HX1JBTV9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL1BDVEwxX1NMSUNFMF9SRU5HX1JBTV9EQVRBCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9SRU5HX1JBTV9EQVRBX19SRU5HX1JBTV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTBfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ1RMMV9TTElDRTFfUkVOR19SQU1fSU5ERVgKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1JFTkdfUkFNX0lOREVYX19SRU5HX1JBTV9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL1BDVEwxX1NMSUNFMV9SRU5HX1JBTV9EQVRBCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9SRU5HX1JBTV9EQVRBX19SRU5HX1JBTV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTFfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ1RMMV9TTElDRTJfUkVOR19SQU1fSU5ERVgKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1JFTkdfUkFNX0lOREVYX19SRU5HX1JBTV9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL1BDVEwxX1NMSUNFMl9SRU5HX1JBTV9EQVRBCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9SRU5HX1JBTV9EQVRBX19SRU5HX1JBTV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTJfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ1RMMV9TTElDRTNfUkVOR19SQU1fSU5ERVgKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1JFTkdfUkFNX0lOREVYX19SRU5HX1JBTV9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFM19SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL1BDVEwxX1NMSUNFM19SRU5HX1JBTV9EQVRBCisjZGVmaW5lIFBDVEwxX1NMSUNFM19SRU5HX1JBTV9EQVRBX19SRU5HX1JBTV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTNfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ1RMMV9TTElDRTRfUkVOR19SQU1fSU5ERVgKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1JFTkdfUkFNX0lOREVYX19SRU5HX1JBTV9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9SRU5HX1JBTV9JTkRFWF9fUkVOR19SQU1fSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisvL1BDVEwxX1NMSUNFNF9SRU5HX1JBTV9EQVRBCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9SRU5HX1JBTV9EQVRBX19SRU5HX1JBTV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTRfUkVOR19SQU1fREFUQV9fUkVOR19SQU1fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMgorI2RlZmluZSBQQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0CisjZGVmaW5lIFBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMAorI2RlZmluZSBQQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9VVENMMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1VUQ0wyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfVVRDTDJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMAorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTIKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMworI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0CisjZGVmaW5lIFBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMQorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UwX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTBfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTEKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMgorI2RlZmluZSBQQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTQKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMAorI2RlZmluZSBQQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UxX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTFfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFMV9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMQorI2RlZmluZSBQQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTMKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNAorI2RlZmluZSBQQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTJfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDEKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFMl9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UyX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMAorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxCisjZGVmaW5lIFBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UxX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTIKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTJfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMworI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFM19fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0CisjZGVmaW5lIFBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0U0X19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFM19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMQorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0UzX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTNfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UwX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTBfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTEKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMV9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMgorI2RlZmluZSBQQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFMl9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UyX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfUkFOR0UzX19TVENUUkxfUkVHSVNURVJfU0FWRV9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTNfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1BDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTQKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9SQU5HRTRfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX1JBTkdFNF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMAorI2RlZmluZSBQQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENUTDFfU0xJQ0U0X1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0xfU0VUMF9fU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBQQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQwX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9QQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ1RMMV9TTElDRTRfU1RDVFJMX1JFR0lTVEVSX1NBVkVfRVhDTF9TRVQxX19TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFBDVEwxX1NMSUNFNF9TVENUUkxfUkVHSVNURVJfU0FWRV9FWENMX1NFVDFfX1NUQ1RSTF9SRUdJU1RFUl9TQVZFX0VYQ0wxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl9sMXRsYl92bWwxZGVjOjEKKy8vVk1MMV8xX01DX1ZNX01YX0wxX1RMQjBfU1RBVFVTCisjZGVmaW5lIFZNTDFfMV9NQ19WTV9NWF9MMV9UTEIwX1NUQVRVU19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxXzFfTUNfVk1fTVhfTDFfVExCMF9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjBfU1RBVFVTX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjBfU1RBVFVTX19GT1VORF9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vVk1MMV8xX01DX1ZNX01YX0wxX1RMQjFfU1RBVFVTCisjZGVmaW5lIFZNTDFfMV9NQ19WTV9NWF9MMV9UTEIxX1NUQVRVU19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxXzFfTUNfVk1fTVhfTDFfVExCMV9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjFfU1RBVFVTX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjFfU1RBVFVTX19GT1VORF9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vVk1MMV8xX01DX1ZNX01YX0wxX1RMQjJfU1RBVFVTCisjZGVmaW5lIFZNTDFfMV9NQ19WTV9NWF9MMV9UTEIyX1NUQVRVU19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxXzFfTUNfVk1fTVhfTDFfVExCMl9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjJfU1RBVFVTX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjJfU1RBVFVTX19GT1VORF9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vVk1MMV8xX01DX1ZNX01YX0wxX1RMQjNfU1RBVFVTCisjZGVmaW5lIFZNTDFfMV9NQ19WTV9NWF9MMV9UTEIzX1NUQVRVU19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxXzFfTUNfVk1fTVhfTDFfVExCM19TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjNfU1RBVFVTX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjNfU1RBVFVTX19GT1VORF9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vVk1MMV8xX01DX1ZNX01YX0wxX1RMQjRfU1RBVFVTCisjZGVmaW5lIFZNTDFfMV9NQ19WTV9NWF9MMV9UTEI0X1NUQVRVU19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxXzFfTUNfVk1fTVhfTDFfVExCNF9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjRfU1RBVFVTX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjRfU1RBVFVTX19GT1VORF9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vVk1MMV8xX01DX1ZNX01YX0wxX1RMQjVfU1RBVFVTCisjZGVmaW5lIFZNTDFfMV9NQ19WTV9NWF9MMV9UTEI1X1NUQVRVU19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxXzFfTUNfVk1fTVhfTDFfVExCNV9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjVfU1RBVFVTX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjVfU1RBVFVTX19GT1VORF9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vVk1MMV8xX01DX1ZNX01YX0wxX1RMQjZfU1RBVFVTCisjZGVmaW5lIFZNTDFfMV9NQ19WTV9NWF9MMV9UTEI2X1NUQVRVU19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxXzFfTUNfVk1fTVhfTDFfVExCNl9TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjZfU1RBVFVTX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjZfU1RBVFVTX19GT1VORF9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vVk1MMV8xX01DX1ZNX01YX0wxX1RMQjdfU1RBVFVTCisjZGVmaW5lIFZNTDFfMV9NQ19WTV9NWF9MMV9UTEI3X1NUQVRVU19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxXzFfTUNfVk1fTVhfTDFfVExCN19TVEFUVVNfX0ZPVU5EX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjdfU1RBVFVTX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMV8xX01DX1ZNX01YX0wxX1RMQjdfU1RBVFVTX19GT1VORF9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1taHViX2wxdGxiX3ZtbDFwbGRlYzoxCisvL1ZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGRworI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGRworI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjJfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSMl9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIyX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGRworI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSM19DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjNfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUjNfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSM19DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVIzX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL1ZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNTDFQTDFfTUNfVk1fTVhfTDFfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVk1MMVBMMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBWTUwxUEwxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfbDF0bGJfdm1sMXByZGVjOjEKKy8vVk1MMVBSMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9MTworI2RlZmluZSBWTUwxUFIxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBSMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9MT19fQ09VTlRFUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMVBSMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9ISQorI2RlZmluZSBWTUwxUFIxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMVBSMV9NQ19WTV9NWF9MMV9QRVJGQ09VTlRFUl9ISV9fQ09NUEFSRV9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwxUFIxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX0hJX19DT1VOVEVSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwxUFIxX01DX1ZNX01YX0wxX1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfYXRjbDJkZWM6MQorLy9BVENMMl8xX0FUQ19MMl9DTlRMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9UUkFOU0xBVElPTl9SRUFEX1JFUVVFU1RTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMX19OVU1CRVJfT0ZfVFJBTlNMQVRJT05fV1JJVEVfUkVRVUVTVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTF9fTlVNQkVSX09GX1RSQU5TTEFUSU9OX1JFQURTX0RFUEVORFNfT05fQUREUl9NT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9UUkFOU0xBVElPTl9XUklURVNfREVQRU5EU19PTl9BRERSX01PRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMX19OVU1CRVJfT0ZfSE9TVF9UUkFOU0xBVElPTl9SRUFEX1JFUVVFU1RTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTF9fTlVNQkVSX09GX0hPU1RfVFJBTlNMQVRJT05fV1JJVEVfUkVRVUVTVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9IT1NUX1RSQU5TTEFUSU9OX1JFQURTX0RFUEVORFNfT05fQUREUl9NT0RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMX19OVU1CRVJfT0ZfSE9TVF9UUkFOU0xBVElPTl9XUklURVNfREVQRU5EU19PTl9BRERSX01PRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTF9fQ0FDSEVfSU5WQUxJREFURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMX19FTkFCTEVfREVGQVVMVF9QQUdFX09VVF9UT19TWVNURU1fTUVNT1JZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9UUkFOU0xBVElPTl9SRUFEX1JFUVVFU1RTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9UUkFOU0xBVElPTl9XUklURV9SRVFVRVNUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9UUkFOU0xBVElPTl9SRUFEU19ERVBFTkRTX09OX0FERFJfTU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9UUkFOU0xBVElPTl9XUklURVNfREVQRU5EU19PTl9BRERSX01PRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9IT1NUX1RSQU5TTEFUSU9OX1JFQURfUkVRVUVTVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9IT1NUX1RSQU5TTEFUSU9OX1dSSVRFX1JFUVVFU1RTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9IT1NUX1RSQU5TTEFUSU9OX1JFQURTX0RFUEVORFNfT05fQUREUl9NT0RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX05VTUJFUl9PRl9IT1NUX1RSQU5TTEFUSU9OX1dSSVRFU19ERVBFTkRTX09OX0FERFJfTU9EX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX0NBQ0hFX0lOVkFMSURBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNzAwMDBMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVExfX0VOQUJMRV9ERUZBVUxUX1BBR0VfT1VUX1RPX1NZU1RFTV9NRU1PUllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL0FUQ0wyXzFfQVRDX0wyX0NOVEwyCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVEwyX19CQU5LX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fTDJfQ0FDSEVfVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTDJfX0VOQUJMRV9MMl9DQUNIRV9MUlVfVVBEQVRFX0JZX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVEwyX19MMl9DQUNIRV9TV0FQX1RBR19JTkRFWF9MU0JTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fTDJfQ0FDSEVfVk1JRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTDJfX0wyX0NBQ0hFX1VQREFURV9XSUxEQ0FSRF9SRUZFUkVOQ0VfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVEwyX19MMl9CSUdLX0ZSQUdNRU5UX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTDJfX0wyXzRLX0JJR0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fQkFOS19TRUxFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fTDJfQ0FDSEVfVVBEQVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fRU5BQkxFX0wyX0NBQ0hFX0xSVV9VUERBVEVfQllfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fTDJfQ0FDSEVfU1dBUF9UQUdfSU5ERVhfTFNCU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fTDJfQ0FDSEVfVk1JRF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fTDJfQ0FDSEVfVVBEQVRFX1dJTERDQVJEX1JFRkVSRU5DRV9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUY4MDAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fTDJfQklHS19GUkFHTUVOVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RTAwMDAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMMl9fTDJfNEtfQklHS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorLy9BVENMMl8xX0FUQ19MMl9DQUNIRV9EQVRBMAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV9EQVRBMF9fREFUQV9SRUdJU1RFUl9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfREFUQTBfX0NBQ0hFX0VOVFJZX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEEwX19DQUNIRURfQVRUUklCVVRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV9EQVRBMF9fVklSVFVBTF9QQUdFX0FERFJFU1NfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEEwX19EQVRBX1JFR0lTVEVSX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEEwX19DQUNIRV9FTlRSWV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEEwX19DQUNIRURfQVRUUklCVVRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRkNMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEEwX19WSVJUVUFMX1BBR0VfQUREUkVTU19ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4MDAwMDBMCisvL0FUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEExCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFX0RBVEExX19WSVJUVUFMX1BBR0VfQUREUkVTU19MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV9EQVRBMV9fVklSVFVBTF9QQUdFX0FERFJFU1NfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BVENMMl8xX0FUQ19MMl9DQUNIRV9EQVRBMgorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV9EQVRBMl9fUEhZU0lDQUxfUEFHRV9BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfREFUQTJfX1BIWVNJQ0FMX1BBR0VfQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQVRDTDJfMV9BVENfTDJfQ05UTDMKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTDNfX0RFTEFZX1NFTkRfSU5WQUxJREFUSU9OX1JFUVVFU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVEwzX19BVFNfUkVRVUVTVF9DUkVESVRfTUlOVVMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMM19fQ09NUENMS1JFUV9PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTDNfX0RFTEFZX1NFTkRfSU5WQUxJREFUSU9OX1JFUVVFU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTDNfX0FUU19SRVFVRVNUX0NSRURJVF9NSU5VUzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGOEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTDNfX0NPTVBDTEtSRVFfT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEUwMEwKKy8vQVRDTDJfMV9BVENfTDJfU1RBVFVTCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX1NUQVRVU19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9TVEFUVVNfX1BBUklUWV9FUlJPUl9JTkZPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfU1RBVFVTX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfU1RBVFVTX19QQVJJVFlfRVJST1JfSU5GT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRUwKKy8vQVRDTDJfMV9BVENfTDJfU1RBVFVTMgorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9TVEFUVVMyX19JRklGT19OT05fRkFUQUxfUEFSSVRZX0VSUk9SX0lORk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfU1RBVFVTMl9fSUZJRk9fRkFUQUxfUEFSSVRZX0VSUk9SX0lORk9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX1NUQVRVUzJfX0lGSUZPX05PTl9GQVRBTF9QQVJJVFlfRVJST1JfSU5GT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX1NUQVRVUzJfX0lGSUZPX0ZBVEFMX1BBUklUWV9FUlJPUl9JTkZPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL0FUQ0wyXzFfQVRDX0wyX1NUQVRVUzMKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfU1RBVFVTM19fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX1NUQVRVUzNfX1BBUklUWV9FUlJPUl9JTkZPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9TVEFUVVMzX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9TVEFUVVMzX19QQVJJVFlfRVJST1JfSU5GT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZFTAorLy9BVENMMl8xX0FUQ19MMl9NSVNDX0NHCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX01JU0NfQ0dfX09GRkRMWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9NSVNDX0NHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX01JU0NfQ0dfX01FTV9MU19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfTUlTQ19DR19fT0ZGRExZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfTUlTQ19DR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfTUlTQ19DR19fTUVNX0xTX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vQVRDTDJfMV9BVENfTDJfTUVNX1BPV0VSX0xTCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX01FTV9QT1dFUl9MU19fTFNfU0VUVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9NRU1fUE9XRVJfTFNfX0xTX0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfTUVNX1BPV0VSX0xTX19MU19TRVRVUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfTUVNX1BPV0VSX0xTX19MU19IT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKy8vQVRDTDJfMV9BVENfTDJfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NHVFRfQ0xLX0NUUkxfX01HTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0dUVF9DTEtfQ1RSTF9fTUdMU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vQVRDTDJfMV9BVENfTDJfQ0FDSEVfNEtfRFNNX0lOREVYCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzRLX0RTTV9JTkRFWF9fSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fSU5ERVhfX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9BVENMMl8xX0FUQ19MMl9DQUNIRV8yTV9EU01fSU5ERVgKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0lOREVYX19JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzJNX0RTTV9JTkRFWF9fSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0FUQ0wyXzFfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fRFNNX0lSUklUQVRPUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfNEtfRFNNX0NOVExfX0VOQUJMRV9TSU5HTEVfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19FTkFCTEVfRVJST1JfSU5KRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fU0VMRUNUX0lOSkVDVF9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfNEtfRFNNX0NOVExfX1dSSVRFX0NPVU5URVJTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzRLX0RTTV9DTlRMX19TRUNfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fREVEX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfNEtfRFNNX0NOVExfX1RFU1RfRlVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fSU5KRUNUX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fRFNNX0lSUklUQVRPUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fRU5BQkxFX1NJTkdMRV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fRU5BQkxFX0VSUk9SX0lOSkVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fU0VMRUNUX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fV1JJVEVfQ09VTlRFUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fU0VDX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA2MDAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fREVEX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV80S19EU01fQ05UTF9fVEVTVF9GVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9BVENMMl8xX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fSU5KRUNUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX0RTTV9JUlJJVEFUT1JfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzJNX0RTTV9DTlRMX19FTkFCTEVfU0lOR0xFX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fRU5BQkxFX0VSUk9SX0lOSkVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX1NFTEVDVF9JTkpFQ1RfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzJNX0RTTV9DTlRMX19XUklURV9DT1VOVEVSU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DQUNIRV8yTV9EU01fQ05UTF9fU0VDX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX0RFRF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NBQ0hFXzJNX0RTTV9DTlRMX19URVNUX0ZVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX0lOSkVDVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX0RTTV9JUlJJVEFUT1JfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX0VOQUJMRV9TSU5HTEVfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX0VOQUJMRV9FUlJPUl9JTkpFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX1NFTEVDVF9JTkpFQ1RfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX1dSSVRFX0NPVU5URVJTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX1NFQ19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNjAwMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX0RFRF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxODAwMEwKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ0FDSEVfMk1fRFNNX0NOVExfX1RFU1RfRlVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vQVRDTDJfMV9BVENfTDJfQ05UTDQKKyNkZWZpbmUgQVRDTDJfMV9BVENfTDJfQ05UTDRfX01NX05PTlJUX0lGSUZPX0FDVElWRV9UUkFOU0FDVElPTl9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX0NOVEw0X19NTV9TT0ZUUlRfSUZJRk9fQUNUSVZFX1RSQU5TQUNUSU9OX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMNF9fTU1fTk9OUlRfSUZJRk9fQUNUSVZFX1RSQU5TQUNUSU9OX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9DTlRMNF9fTU1fU09GVFJUX0lGSUZPX0FDVElWRV9UUkFOU0FDVElPTl9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGQzAwTAorLy9BVENMMl8xX0FUQ19MMl9NTV9HUk9VUF9SVF9DTEFTU0VTCisjZGVmaW5lIEFUQ0wyXzFfQVRDX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMl8xX0FUQ19MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1sMnBmZGVjOjEKKy8vVk1MMlBGMV9WTV9MMl9DTlRMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX0NBQ0hFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVExfX0VOQUJMRV9MMl9GUkFHTUVOVF9QUk9DRVNTSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMX19MMl9DQUNIRV9QVEVfRU5ESUFOX1NXQVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fTDJfQ0FDSEVfUERFX0VORElBTl9TV0FQX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVExfX0wyX1BERTBfQ0FDSEVfVEFHX0dFTkVSQVRJT05fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMX19FTkFCTEVfTDJfUFRFX0NBQ0hFX0xSVV9VUERBVEVfQllfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX1BERTBfQ0FDSEVfTFJVX1VQREFURV9CWV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVExfX0VOQUJMRV9ERUZBVUxUX1BBR0VfT1VUX1RPX1NZU1RFTV9NRU1PUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMX19MMl9QREUwX0NBQ0hFX1NQTElUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fRUZGRUNUSVZFX0wyX1FVRVVFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVExfX1BERV9GQVVMVF9DTEFTU0lGSUNBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fQ09OVEVYVDFfSURFTlRJVFlfQUNDRVNTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMX19JREVOVElUWV9NT0RFX0ZSQUdNRU5UX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVExfX0wyX1BURV9DQUNIRV9BRERSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX0NBQ0hFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX0ZSQUdNRU5UX1BST0NFU1NJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fTDJfQ0FDSEVfUFRFX0VORElBTl9TV0FQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fTDJfQ0FDSEVfUERFX0VORElBTl9TV0FQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fTDJfUERFMF9DQUNIRV9UQUdfR0VORVJBVElPTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX1BURV9DQUNIRV9MUlVfVVBEQVRFX0JZX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fRU5BQkxFX0wyX1BERTBfQ0FDSEVfTFJVX1VQREFURV9CWV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fRU5BQkxFX0RFRkFVTFRfUEFHRV9PVVRfVE9fU1lTVEVNX01FTU9SWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fTDJfUERFMF9DQUNIRV9TUExJVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fRUZGRUNUSVZFX0wyX1FVRVVFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzgwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fUERFX0ZBVUxUX0NMQVNTSUZJQ0FUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fQ09OVEVYVDFfSURFTlRJVFlfQUNDRVNTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fSURFTlRJVFlfTU9ERV9GUkFHTUVOVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTF9fTDJfUFRFX0NBQ0hFX0FERFJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisvL1ZNTDJQRjFfVk1fTDJfQ05UTDIKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMMl9fSU5WQUxJREFURV9BTExfTDFfVExCU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTDJfX0lOVkFMSURBVEVfTDJfQ0FDSEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwyX19ESVNBQkxFX0lOVkFMSURBVEVfUEVSX0RPTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTDJfX0RJU0FCTEVfQklHS19DQUNIRV9PUFRJTUlaQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMMl9fTDJfUFRFX0NBQ0hFX1ZNSURfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwyX19JTlZBTElEQVRFX0NBQ0hFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTDJfX1BERV9DQUNIRV9FRkZFQ1RJVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMMl9fSU5WQUxJREFURV9BTExfTDFfVExCU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMMl9fSU5WQUxJREFURV9MMl9DQUNIRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMMl9fRElTQUJMRV9JTlZBTElEQVRFX1BFUl9ET01BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMMl9fRElTQUJMRV9CSUdLX0NBQ0hFX09QVElNSVpBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMMl9fTDJfUFRFX0NBQ0hFX1ZNSURfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMMl9fSU5WQUxJREFURV9DQUNIRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMMl9fUERFX0NBQ0hFX0VGRkVDVElWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMEwKKy8vVk1MMlBGMV9WTV9MMl9DTlRMMworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19CQU5LX1NFTEVDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMM19fTDJfQ0FDSEVfVVBEQVRFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTDNfX0wyX0NBQ0hFX1VQREFURV9XSUxEQ0FSRF9SRUZFUkVOQ0VfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0ZSQUdNRU5UX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMM19fTDJfQ0FDSEVfQklHS19BU1NPQ0lBVElWSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV80S19FRkZFQ1RJVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTDNfX0wyX0NBQ0hFX0JJR0tfRUZGRUNUSVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMM19fTDJfQ0FDSEVfNEtfRk9SQ0VfTUlTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0ZPUkNFX01JU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTDNfX1BERV9DQUNIRV9GT1JDRV9NSVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMM19fTDJfQ0FDSEVfNEtfQVNTT0NJQVRJVklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19CQU5LX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9VUERBVEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9VUERBVEVfV0lMRENBUkRfUkVGRVJFTkNFX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0ZSQUdNRU5UX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEY4MDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0FTU09DSUFUSVZJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV80S19FRkZFQ1RJVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0VGRkVDVElWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV80S19GT1JDRV9NSVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV9CSUdLX0ZPUkNFX01JU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19QREVfQ0FDSEVfRk9SQ0VfTUlTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEwzX19MMl9DQUNIRV80S19BU1NPQ0lBVElWSVRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WTUwyUEYxX1ZNX0wyX1NUQVRVUworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1NUQVRVU19fTDJfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9TVEFUVVNfX0NPTlRFWFRfRE9NQUlOX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfU1RBVFVTX19GT1VORF80S19QVEVfQ0FDSEVfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9TVEFUVVNfX0ZPVU5EX0JJR0tfUFRFX0NBQ0hFX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1NUQVRVU19fRk9VTkRfUERFMF9DQUNIRV9QQVJJVFlfRVJST1JTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfU1RBVFVTX19GT1VORF9QREUxX0NBQ0hFX1BBUklUWV9FUlJPUlNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9TVEFUVVNfX0ZPVU5EX1BERTJfQ0FDSEVfUEFSSVRZX0VSUk9SU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1NUQVRVU19fTDJfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1NUQVRVU19fQ09OVEVYVF9ET01BSU5fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZFTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1NUQVRVU19fRk9VTkRfNEtfUFRFX0NBQ0hFX1BBUklUWV9FUlJPUlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1NUQVRVU19fRk9VTkRfQklHS19QVEVfQ0FDSEVfUEFSSVRZX0VSUk9SU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1NUQVRVU19fRk9VTkRfUERFMF9DQUNIRV9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1NUQVRVU19fRk9VTkRfUERFMV9DQUNIRV9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1NUQVRVU19fRk9VTkRfUERFMl9DQUNIRV9QQVJJVFlfRVJST1JTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorLy9WTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTAorI2RlZmluZSBWTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9fRFVNTVlfUEFHRV9GQVVMVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9EVU1NWV9QQUdFX0ZBVUxUX0NOVExfX0RVTU1ZX1BBR0VfQUREUkVTU19MT0dJQ0FMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjFfVk1fRFVNTVlfUEFHRV9GQVVMVF9DTlRMX19EVU1NWV9QQUdFX0NPTVBBUkVfTVNCU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBWTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9fRFVNTVlfUEFHRV9GQVVMVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9fRFVNTVlfUEFHRV9BRERSRVNTX0xPR0lDQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBWTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQ05UTF9fRFVNTVlfUEFHRV9DT01QQVJFX01TQlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZDTAorLy9WTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJQRjFfVk1fRFVNTVlfUEFHRV9GQVVMVF9BRERSX0xPMzJfX0RVTU1ZX1BBR0VfQUREUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9MTzMyX19EVU1NWV9QQUdFX0FERFJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJQRjFfVk1fRFVNTVlfUEFHRV9GQVVMVF9BRERSX0hJMzJfX0RVTU1ZX1BBR0VfQUREUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0RVTU1ZX1BBR0VfRkFVTFRfQUREUl9ISTMyX19EVU1NWV9QQUdFX0FERFJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX0FMTE9XX1NVQlNFUVVFTlRfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9VUERBVEVTX19TSElGVCAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX1BERTFfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19QREUyX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fVFJBTlNMQVRFX0ZVUlRIRVJfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAweDYKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX05BQ0tfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX0NMSUVOVF9JRF9OT19SRVRSWV9GQVVMVF9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19PVEhFUl9DTElFTlRfSURfTk9fUkVUUllfRkFVTFRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVExfX0NSQVNIX09OX05PX1JFVFJZX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTF9fQ1JBU0hfT05fUkVUUllfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19BTExPV19TVUJTRVFVRU5UX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfVVBEQVRFU19NQVNLICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19QREUxX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19QREUyX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19UUkFOU0xBVEVfRlVSVEhFUl9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19OQUNLX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19DTElFTlRfSURfTk9fUkVUUllfRkFVTFRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUZGRkUwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19PVEhFUl9DTElFTlRfSURfTk9fUkVUUllfRkFVTFRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19DUkFTSF9PTl9OT19SRVRSWV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMX19DUkFTSF9PTl9SRVRSWV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0NMSUVOVF9JRF9QUlRfRkFVTFRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyX19PVEhFUl9DTElFTlRfSURfUFJUX0ZBVUxUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0FDVElWRV9QQUdFX01JR1JBVElPTl9QVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMl9fQUNUSVZFX1BBR0VfTUlHUkFUSU9OX1BURV9SRUFEX1JFVFJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyX19FTkFCTEVfUkVUUllfRkFVTFRfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0NMSUVOVF9JRF9QUlRfRkFVTFRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX09USEVSX0NMSUVOVF9JRF9QUlRfRkFVTFRfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0FDVElWRV9QQUdFX01JR1JBVElPTl9QVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0FDVElWRV9QQUdFX01JR1JBVElPTl9QVEVfUkVBRF9SRVRSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQ05UTDJfX0VOQUJMRV9SRVRSWV9GQVVMVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDMKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX01NX0NOVEwzX19WTUwxX1JFQURfQ0xJRU5UX0lEX05PX1JFVFJZX0ZBVUxUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9NTV9DTlRMM19fVk1MMV9SRUFEX0NMSUVOVF9JRF9OT19SRVRSWV9GQVVMVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9NTV9DTlRMNAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfTU1fQ05UTDRfX1ZNTDFfV1JJVEVfQ0xJRU5UX0lEX05PX1JFVFJZX0ZBVUxUX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX01NX0NOVEw0X19WTUwxX1dSSVRFX0NMSUVOVF9JRF9OT19SRVRSWV9GQVVMVF9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVUworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19NT1JFX0ZBVUxUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19fV0FMS0VSX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfX1BFUk1JU1NJT05fRkFVTFRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19NQVBQSU5HX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19fQ0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfX1JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19fQVRPTUlDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfX1ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19fVkZJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19NT1JFX0ZBVUxUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19XQUxLRVJfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19QRVJNSVNTSU9OX0ZBVUxUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19NQVBQSU5HX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19DSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDNGRTAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19SV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19BVE9NSUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX19WRklEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFFMDAwMDAwTAorLy9WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9BRERSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfQUREUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9BRERSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfQUREUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9MTzMyX19QSFlTSUNBTF9QQUdFX0FERFJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfTE8zMl9fUEhZU0lDQUxfUEFHRV9BRERSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJQRjFfVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0hJMzJfX1BIWVNJQ0FMX1BBR0VfQUREUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0RFRkFVTFRfQUREUl9ISTMyX19QSFlTSUNBTF9QQUdFX0FERFJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlBGMV9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfTE9XX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0xPV19BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyUEYxX1ZNX0wyX0NPTlRFWFQxX0lERU5USVRZX0FQRVJUVVJFX0xPV19BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9MT1dfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfTE9XX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJQRjFfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9ISUdIX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJQRjFfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DT05URVhUMV9JREVOVElUWV9BUEVSVFVSRV9ISUdIX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ09OVEVYVDFfSURFTlRJVFlfQVBFUlRVUkVfSElHSF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJQRjFfVk1fTDJfQ09OVEVYVF9JREVOVElUWV9QSFlTSUNBTF9PRkZTRVRfTE8zMgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NPTlRFWFRfSURFTlRJVFlfUEhZU0lDQUxfT0ZGU0VUX0xPMzJfX1BIWVNJQ0FMX1BBR0VfT0ZGU0VUX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DT05URVhUX0lERU5USVRZX1BIWVNJQ0FMX09GRlNFVF9MTzMyX19QSFlTSUNBTF9QQUdFX09GRlNFVF9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlBGMV9WTV9MMl9DT05URVhUX0lERU5USVRZX1BIWVNJQ0FMX09GRlNFVF9ISTMyCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ09OVEVYVF9JREVOVElUWV9QSFlTSUNBTF9PRkZTRVRfSEkzMl9fUEhZU0lDQUxfUEFHRV9PRkZTRVRfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NPTlRFWFRfSURFTlRJVFlfUEhZU0lDQUxfT0ZGU0VUX0hJMzJfX1BIWVNJQ0FMX1BBR0VfT0ZGU0VUX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyUEYxX1ZNX0wyX0NOVEw0CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTDRfX0wyX0NBQ0hFXzRLX1BBUlRJVElPTl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEw0X19WTUNfVEFQX1BERV9SRVFVRVNUX1BIWVNJQ0FMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMNF9fVk1DX1RBUF9QVEVfUkVRVUVTVF9QSFlTSUNBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTDRfX01NX05PTlJUX0lGSUZPX0FDVElWRV9UUkFOU0FDVElPTl9MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NOVEw0X19NTV9TT0ZUUlRfSUZJRk9fQUNUSVZFX1RSQU5TQUNUSU9OX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ05UTDRfX0JQTV9DR0NHTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMNF9fTDJfQ0FDSEVfNEtfUEFSVElUSU9OX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMNF9fVk1DX1RBUF9QREVfUkVRVUVTVF9QSFlTSUNBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMNF9fVk1DX1RBUF9QVEVfUkVRVUVTVF9QSFlTSUNBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMNF9fTU1fTk9OUlRfSUZJRk9fQUNUSVZFX1RSQU5TQUNUSU9OX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkYwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMNF9fTU1fU09GVFJUX0lGSUZPX0FDVElWRV9UUkFOU0FDVElPTl9MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZDMDAwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DTlRMNF9fQlBNX0NHQ0dMU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzFfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8yX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfM19SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzRfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF81X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfNl9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzdfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF84X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfOV9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzEwX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8xMV9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTJfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzEzX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8xNF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTVfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzE2X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTdfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8xOF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzE5X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjBfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8yMV9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzIyX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjNfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8yNF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzI1X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjZfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8yN19SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzI4X1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjlfUlRfQ0xBU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9NTV9HUk9VUF9SVF9DTEFTU0VTX19HUk9VUF8zMF9SVF9DTEFTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX01NX0dST1VQX1JUX0NMQVNTRVNfX0dST1VQXzMxX1JUX0NMQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMF9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMV9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMl9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfM19SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfNF9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfNV9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfNl9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfN19SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfOF9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfOV9SVF9DTEFTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTBfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTFfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTJfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTNfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTRfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTVfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTZfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTdfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMThfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMTlfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjBfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjFfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjJfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjNfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjRfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjVfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjZfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjdfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjhfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMjlfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMzBfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfTU1fR1JPVVBfUlRfQ0xBU1NFU19fR1JPVVBfMzFfUlRfQ0xBU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNTDJQRjFfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lECisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEX19SRVNFUlZFRF9SRUFEX0NMSUVOVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRF9fUkVTRVJWRURfV1JJVEVfQ0xJRU5UX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRF9fUkVTRVJWRURfQ0FDSEVfSU5WQUxJREFUSU9OX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEX19SRVNFUlZFRF9DQUNIRV9QUklWQVRFX0lOVkFMSURBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX1JFU0VSVkVEX1JFQURfQ0xJRU5UX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX1JFU0VSVkVEX1dSSVRFX0NMSUVOVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkMwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX1JFU0VSVkVEX0NBQ0hFX0lOVkFMSURBVElPTl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSURfX1JFU0VSVkVEX0NBQ0hFX1BSSVZBVEVfSU5WQUxJREFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEMl9fUkVTRVJWRURfUkVBRF9DTElFTlRfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRDJfX1JFU0VSVkVEX1dSSVRFX0NMSUVOVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0JBTktfU0VMRUNUX1JFU0VSVkVEX0NJRDJfX1JFU0VSVkVEX0NBQ0hFX0lOVkFMSURBVElPTl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQkFOS19TRUxFQ1RfUkVTRVJWRURfQ0lEMl9fUkVTRVJWRURfQ0FDSEVfUFJJVkFURV9JTlZBTElEQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19SRVNFUlZFRF9SRUFEX0NMSUVOVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19SRVNFUlZFRF9XUklURV9DTElFTlRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkMwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19SRVNFUlZFRF9DQUNIRV9JTlZBTElEQVRJT05fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9CQU5LX1NFTEVDVF9SRVNFUlZFRF9DSUQyX19SRVNFUlZFRF9DQUNIRV9QUklWQVRFX0lOVkFMSURBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vVk1MMlBGMV9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19FTkFCTEVfUEFSSVRZX0NIRUNLU19JTl80S19QVEVfQ0FDSEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTF9fRU5BQkxFX1BBUklUWV9DSEVDS1NfSU5fQklHS19QVEVfQ0FDSEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ0FDSEVfUEFSSVRZX0NOVExfX0VOQUJMRV9QQVJJVFlfQ0hFQ0tTX0lOX1BERV9DQUNIRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9QQVJJVFlfTUlTTUFUQ0hfSU5fNEtfUFRFX0NBQ0hFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTF9fRk9SQ0VfUEFSSVRZX01JU01BVENIX0lOX0JJR0tfUFRFX0NBQ0hFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ0FDSEVfUEFSSVRZX0NOVExfX0ZPUkNFX1BBUklUWV9NSVNNQVRDSF9JTl9QREVfQ0FDSEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9DQUNIRV9CQU5LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DQUNIRV9QQVJJVFlfQ05UTF9fRk9SQ0VfQ0FDSEVfTlVNQkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ0FDSEVfUEFSSVRZX0NOVExfX0ZPUkNFX0NBQ0hFX0FTU09DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19FTkFCTEVfUEFSSVRZX0NIRUNLU19JTl80S19QVEVfQ0FDSEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19FTkFCTEVfUEFSSVRZX0NIRUNLU19JTl9CSUdLX1BURV9DQUNIRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19FTkFCTEVfUEFSSVRZX0NIRUNLU19JTl9QREVfQ0FDSEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9QQVJJVFlfTUlTTUFUQ0hfSU5fNEtfUFRFX0NBQ0hFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9QQVJJVFlfTUlTTUFUQ0hfSU5fQklHS19QVEVfQ0FDSEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9QQVJJVFlfTUlTTUFUQ0hfSU5fUERFX0NBQ0hFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9DQUNIRV9CQU5LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9DQUNIRV9OVU1CRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRTAwTAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NBQ0hFX1BBUklUWV9DTlRMX19GT1JDRV9DQUNIRV9BU1NPQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorLy9WTUwyUEYxX1ZNX0wyX0NHVFRfQ0xLX0NUUkwKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NHVFRfQ0xLX0NUUkxfX01HTFNfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlBGMV9WTV9MMl9DR1RUX0NMS19DVFJMX19TT0ZUX1NUQUxMX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyUEYxX1ZNX0wyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fTUdMU19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFZNTDJQRjFfVk1fTDJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bWwydmNkZWM6MQorLy9WTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDBfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDBfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDBfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDBfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDBfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDBfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDFfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDFfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDFfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDFfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDFfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDFfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDJfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDJfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDJfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDJfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDJfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDJfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDNfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDNfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDNfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDNfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDNfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDNfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDRfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDRfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDRfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDRfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDRfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDRfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDVfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDVfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDVfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDVfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDVfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDVfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDZfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDZfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDZfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDZfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDZfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDZfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDdfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDdfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDdfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDdfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDdfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDdfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDhfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDhfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDhfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDhfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDhfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDhfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDlfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDlfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDlfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDlfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDlfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDlfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxMF9DTlRMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX0NOVExfX0VOQUJMRV9DT05URVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUEFHRV9UQUJMRV9CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fRU5BQkxFX0NPTlRFWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTFfQ05UTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDEyX0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEyX0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEyX0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEyX0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEyX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEyX0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEyX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxM19DTlRMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX0NOVExfX0VOQUJMRV9DT05URVhUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19DTlRMX19QQUdFX1RBQkxFX0RFUFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUEFHRV9UQUJMRV9CTE9DS19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fRU5BQkxFX0NPTlRFWFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUEFHRV9UQUJMRV9CTE9DS19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3OEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTRfQ05UTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9DTlRMX19FTkFCTEVfQ09OVEVYVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfQ05UTF9fUEFHRV9UQUJMRV9ERVBUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfQ05UTF9fUkVUUllfT1RIRVJfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfQ05UTF9fRFVNTVlfUEFHRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfQ05UTF9fUkVBRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX0VOQUJMRV9DT05URVhUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1BBR0VfVEFCTEVfQkxPQ0tfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1JFVFJZX1BFUk1JU1NJT05fT1JfSU5WQUxJRF9QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1JBTkdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1ZBTElEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX1dSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDE1X0NOVEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTF9fRU5BQkxFX0NPTlRFWFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE1X0NOVExfX1BBR0VfVEFCTEVfREVQVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTF9fUkVUUllfUEVSTUlTU0lPTl9PUl9JTlZBTElEX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE1X0NOVExfX1JFVFJZX09USEVSX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTF9fUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE1X0NOVExfX0RVTU1ZX1BBR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTF9fUERFMF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE1X0NOVExfX1BERTBfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTF9fVkFMSURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE1X0NOVExfX1JFQURfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTF9fV1JJVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE1X0NOVExfX0VYRUNVVEVfUFJPVEVDVElPTl9GQVVMVF9FTkFCTEVfSU5URVJSVVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfQ05UTF9fRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19QQUdFX1RBQkxFX0RFUFRIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDc4TAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19SRVRSWV9QRVJNSVNTSU9OX09SX0lOVkFMSURfUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19SRVRSWV9PVEhFUl9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19SQU5HRV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19EVU1NWV9QQUdFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19QREUwX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19WQUxJRF9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19SRUFEX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9JTlRFUlJVUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19XUklURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0lOVEVSUlVQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9DTlRMX19FWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFRTX0RJU0FCTEUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF81X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF84X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfMTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFRTX0RJU0FCTEVfX0RJU0FCTEVfQ09OVEVYVF8xNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUU19ESVNBQkxFX19ESVNBQkxFX0NPTlRFWFRfMTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVFNfRElTQUJMRV9fRElTQUJMRV9DT05URVhUXzE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9TRU1fX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfU0VNX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfU0VNCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9TRU0KKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19TRU1fX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfU0VNX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfU0VNCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9TRU0KKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9TRU1fX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfU0VNX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfU0VNCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X1NFTV9fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19TRU1fX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9TRU0KKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9TRU1fX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfU0VNX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTBfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTNfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTZfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X1NFTQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfU0VNX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X1NFTV9fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfUkVRCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX1JFUQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9SRVEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfUkVRCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X1JFUQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9SRVEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfUkVRCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X1JFUQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9SRVEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfUkVRCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9SRVEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTBfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTBfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX1JFUQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19SRVEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTNfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTNfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X1JFUQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19GTFVTSF9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX1BFUl9WTUlEX0lOVkFMSURBVEVfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0ZMVVNIX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0lOVkFMSURBVEVfTDJfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0lOVkFMSURBVEVfTDJfUERFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9SRVEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0ZMVVNIX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTZfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0lOVkFMSURBVEVfTDJfUERFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTZfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9SRVFfX0NMRUFSX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fUEVSX1ZNSURfSU5WQUxJREFURV9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fRkxVU0hfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fSU5WQUxJREFURV9MMl9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fSU5WQUxJREFURV9MMl9QREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fSU5WQUxJREFURV9MMl9QREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fSU5WQUxJREFURV9MMV9QVEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X1JFUQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fRkxVU0hfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19SRVFfX0lOVkFMSURBVEVfTDJfUERFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fSU5WQUxJREFURV9MMl9QREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19SRVFfX0lOVkFMSURBVEVfTDFfUFRFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X1JFUV9fQ0xFQVJfUFJPVEVDVElPTl9GQVVMVF9TVEFUVVNfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19QRVJfVk1JRF9JTlZBTElEQVRFX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19GTFVTSF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19JTlZBTElEQVRFX0wyX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19JTlZBTElEQVRFX0wyX1BERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19JTlZBTElEQVRFX0wyX1BERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19JTlZBTElEQVRFX0wyX1BERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19JTlZBTElEQVRFX0wxX1BURVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfUkVRX19DTEVBUl9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVU19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9BQ0sKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUNLCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX0FDSworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19BQ0sKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUNLCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X0FDSworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9BQ0sKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUNLCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X0FDSworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9BQ0sKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FDSworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUNLCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9BQ0sKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FDSworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUNLCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9BQ0sKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9BQ0tfX1NFTUFQSE9SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FDS19fUEVSX1ZNSURfSU5WQUxJREFURV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FDS19fU0VNQVBIT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FDSworI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FDS19fU0VNQVBIT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUNLX19QRVJfVk1JRF9JTlZBTElEQVRFX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUNLX19TRU1BUEhPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUNLCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUNLX19TRU1BUEhPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BQ0tfX1BFUl9WTUlEX0lOVkFMSURBVEVfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BQ0tfX1NFTUFQSE9SRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcwX0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMF9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzBfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzFfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMV9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMl9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzJfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcyX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkczX0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HM19BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzNfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzRfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc0X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNF9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNV9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzVfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc1X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc2X0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HNl9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzZfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzdfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc3X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HN19BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOF9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzhfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc4X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkc5X0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HOV9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzlfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTBfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEwX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMF9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzExX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMV9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTFfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxMl9BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTJfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEyX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTNfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzEzX0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxM19BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE0X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNF9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTRfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNV9BRERSX1JBTkdFX0xPMzJfX1NfQklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRUwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTVfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE1X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FERFJfUkFOR0VfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTZfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FERFJfUkFOR0VfTE8zMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfTE8zMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0xPMzJfX1NfQklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkVMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE2X0FERFJfUkFOR0VfSEkzMl9fTE9HSV9QQUdFX0FERFJfUkFOR0VfSEk1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxNl9BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL1ZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BRERSX1JBTkdFX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9JTlZBTElEQVRFX0VORzE3X0FERFJfUkFOR0VfTE8zMl9fU19CSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BRERSX1JBTkdFX0xPMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0xPMzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUREUl9SQU5HRV9MTzMyX19TX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUREUl9SQU5HRV9MTzMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9MTzMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9WTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUREUl9SQU5HRV9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fSU5WQUxJREFURV9FTkcxN19BRERSX1JBTkdFX0hJMzJfX0xPR0lfUEFHRV9BRERSX1JBTkdFX0hJNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0lOVkFMSURBVEVfRU5HMTdfQUREUl9SQU5HRV9ISTMyX19MT0dJX1BBR0VfQUREUl9SQU5HRV9ISTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfQkFTRV9BRERSX0hJMzJfX1BBR0VfRElSRUNUT1JZX0VOVFJZX0hJMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9MTzMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfTE8zMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0JBU0VfQUREUl9ISTMyX19QQUdFX0RJUkVDVE9SWV9FTlRSWV9ISTMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9CQVNFX0FERFJfSEkzMl9fUEFHRV9ESVJFQ1RPUllfRU5UUllfSEkzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQzX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUNl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDZfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ2X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ3X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUN19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDdfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUOV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDlfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQ5X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDEwX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTBfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxMV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTFfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDExX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTJfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEyX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxMl9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0xPMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDEzX1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxM19QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTNfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9MTzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyVkMxX1ZNX0NPTlRFWFQxNF9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzIKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTRfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0hJNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE0X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1ZNTDJWQzFfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfTE8zMgorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0VORF9BRERSX0xPMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfTE8zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9MTzMyX19MT0dJQ0FMX1BBR0VfTlVNQkVSX0xPMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVk1MMlZDMV9WTV9DT05URVhUMTVfUEFHRV9UQUJMRV9FTkRfQUREUl9ISTMyCisjZGVmaW5lIFZNTDJWQzFfVk1fQ09OVEVYVDE1X1BBR0VfVEFCTEVfRU5EX0FERFJfSEkzMl9fTE9HSUNBTF9QQUdFX05VTUJFUl9ISTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyVkMxX1ZNX0NPTlRFWFQxNV9QQUdFX1RBQkxFX0VORF9BRERSX0hJMzJfX0xPR0lDQUxfUEFHRV9OVU1CRVJfSEk0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1zaGFyZWRwZmRlYzoxCisvL1ZNU0hBUkVEUEYxX01DX1ZNX05CX01NSU9CQVNFCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX05CX01NSU9CQVNFX19NTUlPQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9OQl9NTUlPQkFTRV9fTU1JT0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9OQl9NTUlPTElNSVQKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fTkJfTU1JT0xJTUlUX19NTUlPTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX05CX01NSU9MSU1JVF9fTU1JT0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1ZNU0hBUkVEUEYxX01DX1ZNX05CX1BDSV9DVFJMCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX05CX1BDSV9DVFJMX19NTUlPRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fTkJfUENJX0NUUkxfX01NSU9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKy8vVk1TSEFSRURQRjFfTUNfVk1fTkJfUENJX0FSQgorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9OQl9QQ0lfQVJCX19WR0FfSE9MRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fTkJfUENJX0FSQl9fVkdBX0hPTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKy8vVk1TSEFSRURQRjFfTUNfVk1fTkJfVE9QX09GX0RSQU1fU0xPVDEKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fTkJfVE9QX09GX0RSQU1fU0xPVDFfX1RPUF9PRl9EUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9OQl9UT1BfT0ZfRFJBTV9TTE9UMV9fVE9QX09GX0RSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGODAwMDAwTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9OQl9MT1dFUl9UT1BfT0ZfRFJBTTIKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fTkJfTE9XRVJfVE9QX09GX0RSQU0yX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX05CX0xPV0VSX1RPUF9PRl9EUkFNMl9fTE9XRVJfVE9NMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fTkJfTE9XRVJfVE9QX09GX0RSQU0yX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fTkJfTE9XRVJfVE9QX09GX0RSQU0yX19MT1dFUl9UT00yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjgwMDAwMEwKKy8vVk1TSEFSRURQRjFfTUNfVk1fTkJfVVBQRVJfVE9QX09GX0RSQU0yCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX05CX1VQUEVSX1RPUF9PRl9EUkFNMl9fVVBQRVJfVE9NMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9OQl9VUFBFUl9UT1BfT0ZfRFJBTTJfX1VQUEVSX1RPTTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9GQl9PRkZTRVQKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fRkJfT0ZGU0VUX19GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX0ZCX09GRlNFVF9fRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1ZNU0hBUkVEUEYxX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTFNCCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTFNCX19QSFlTSUNBTF9QQUdFX05VTUJFUl9MU0JfX1NISUZUICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX0xTQl9fUEhZU0lDQUxfUEFHRV9OVU1CRVJfTFNCX01BU0sgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX01TQgorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSX01TQl9fUEhZU0lDQUxfUEFHRV9OVU1CRVJfTVNCX19TSElGVCAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9NU0JfX1BIWVNJQ0FMX1BBR0VfTlVNQkVSX01TQl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVk1TSEFSRURQRjFfTUNfVk1fU1RFRVJJTkcKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fU1RFRVJJTkdfX0RFRkFVTFRfU1RFRVJJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX1NURUVSSU5HX19ERUZBVUxUX1NURUVSSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL1ZNU0hBUkVEUEYxX01DX1NIQVJFRF9WSVJUX1JFU0VUX1JFUQorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19TSEFSRURfVklSVF9SRVNFVF9SRVFfX1ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfU0hBUkVEX1ZJUlRfUkVTRVRfUkVRX19QRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19TSEFSRURfVklSVF9SRVNFVF9SRVFfX1ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19TSEFSRURfVklSVF9SRVNFVF9SRVFfX1BGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WTVNIQVJFRFBGMV9NQ19NRU1fUE9XRVJfTFMKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfTUVNX1BPV0VSX0xTX19MU19TRVRVUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX01FTV9QT1dFUl9MU19fTFNfSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19NRU1fUE9XRVJfTFNfX0xTX1NFVFVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19NRU1fUE9XRVJfTFNfX0xTX0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkMwTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX1NUQVJUCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0FERFJFU1NfU1RBUlRfX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX1NUQVJUX19BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX0VORAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX0VORF9fQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fQ0FDSEVBQkxFX0RSQU1fQUREUkVTU19FTkRfX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURQRjFfTUNfVk1fQVBUX0NOVEwKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fQVBUX0NOVExfX0ZPUkNFX01UWVBFX1VDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX0FQVF9DTlRMX19ESVJFQ1RfU1lTVEVNX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9BUFRfQ05UTF9fRk9SQ0VfTVRZUEVfVUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9BUFRfQ05UTF9fRElSRUNUX1NZU1RFTV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19TVEFSVF9fQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fTE9DQUxfSEJNX0FERFJFU1NfU1RBUlRfX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURQRjFfTUNfVk1fTE9DQUxfSEJNX0FERFJFU1NfRU5ECisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX0VORF9fQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19FTkRfX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9MT0NBTF9IQk1fQUREUkVTU19MT0NLX0NOVEwKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fTE9DQUxfSEJNX0FERFJFU1NfTE9DS19DTlRMX19MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX0xPQ0FMX0hCTV9BRERSRVNTX0xPQ0tfQ05UTF9fTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1ZNU0hBUkVEUEYxX01DX1ZNX1hHTUlfTEZCX0NOVEwKKyNkZWZpbmUgVk1TSEFSRURQRjFfTUNfVk1fWEdNSV9MRkJfQ05UTF9fUEZfTEZCX1JFR0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX1hHTUlfTEZCX0NOVExfX1BGX01BWF9SRUdJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9YR01JX0xGQl9DTlRMX19QRl9MRkJfUkVHSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9YR01JX0xGQl9DTlRMX19QRl9NQVhfUkVHSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9YR01JX0xGQl9TSVpFCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX1hHTUlfTEZCX1NJWkVfX1BGX0xGQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9YR01JX0xGQl9TSVpFX19QRl9MRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGTAorLy9WTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9DTlRMCisjZGVmaW5lIFZNU0hBUkVEUEYxX01DX1ZNX0NBQ0hFQUJMRV9EUkFNX0NOVExfX0VOQUJMRV9DQUNIRUFCTEVfRFJBTV9BRERSRVNTX0FQRVJUVVJFX19TSElGVCAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFRFBGMV9NQ19WTV9DQUNIRUFCTEVfRFJBTV9DTlRMX19FTkFCTEVfQ0FDSEVBQkxFX0RSQU1fQUREUkVTU19BUEVSVFVSRV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1zaGFyZWR2Y2RlYzoxCisvL1ZNU0hBUkVEVkMxX01DX1ZNX0ZCX0xPQ0FUSU9OX0JBU0UKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fRkJfTE9DQVRJT05fQkFTRV9fRkJfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX0ZCX0xPQ0FUSU9OX0JBU0VfX0ZCX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1ZNU0hBUkVEVkMxX01DX1ZNX0ZCX0xPQ0FUSU9OX1RPUAorI2RlZmluZSBWTVNIQVJFRFZDMV9NQ19WTV9GQl9MT0NBVElPTl9UT1BfX0ZCX1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fRkJfTE9DQVRJT05fVE9QX19GQl9UT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vVk1TSEFSRURWQzFfTUNfVk1fQUdQX1RPUAorI2RlZmluZSBWTVNIQVJFRFZDMV9NQ19WTV9BR1BfVE9QX19BR1BfVE9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fQUdQX1RPUF9fQUdQX1RPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vVk1TSEFSRURWQzFfTUNfVk1fQUdQX0JPVAorI2RlZmluZSBWTVNIQVJFRFZDMV9NQ19WTV9BR1BfQk9UX19BR1BfQk9UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fQUdQX0JPVF9fQUdQX0JPVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vVk1TSEFSRURWQzFfTUNfVk1fQUdQX0JBU0UKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fQUdQX0JBU0VfX0FHUF9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX0FHUF9CQVNFX19BR1BfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1ZNU0hBUkVEVkMxX01DX1ZNX1NZU1RFTV9BUEVSVFVSRV9MT1dfQUREUgorI2RlZmluZSBWTVNIQVJFRFZDMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFJfX0xPR0lDQUxfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0xPV19BRERSX19MT0dJQ0FMX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGRkZGRkwKKy8vVk1TSEFSRURWQzFfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUgorI2RlZmluZSBWTVNIQVJFRFZDMV9NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSX19MT0dJQ0FMX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0hJR0hfQUREUl9fTE9HSUNBTF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGRkZGRkwKKy8vVk1TSEFSRURWQzFfTUNfVk1fTVhfTDFfVExCX0NOVEwKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fTVhfTDFfVExCX0NOVExfX0VOQUJMRV9MMV9UTEJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQUNDRVNTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBWTVNIQVJFRFZDMV9NQ19WTV9NWF9MMV9UTEJfQ05UTF9fU1lTVEVNX0FQRVJUVVJFX1VOTUFQUEVEX0FDQ0VTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fTVhfTDFfVExCX0NOVExfX0VOQUJMRV9BRFZBTkNFRF9EUklWRVJfTU9ERUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX19FQ09fQklUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBWTVNIQVJFRFZDMV9NQ19WTV9NWF9MMV9UTEJfQ05UTF9fTVRZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVk1TSEFSRURWQzFfTUNfVk1fTVhfTDFfVExCX0NOVExfX0FUQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfTDFfVExCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQUNDRVNTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMThMCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX19TWVNURU1fQVBFUlRVUkVfVU5NQVBQRURfQUNDRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX19FTkFCTEVfQURWQU5DRURfRFJJVkVSX01PREVMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX19FQ09fQklUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3ODBMCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX19NVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIFZNU0hBUkVEVkMxX01DX1ZNX01YX0wxX1RMQl9DTlRMX19BVENfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bXNoYXJlZGh2ZGVjOjEKKy8vVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMF9fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjBfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMF9fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMF9fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMQorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjFfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxX19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjFfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjFfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjIKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYyX19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMl9fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYyX19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYyX19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYzCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGM19fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjNfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGM19fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGM19fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjRfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY0X19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjRfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjRfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjUKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY1X19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNV9fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY1X19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY1X19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY2CisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNl9fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjZfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNl9fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNl9fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGNworI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjdfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY3X19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjdfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjdfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjgKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY4X19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOF9fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY4X19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY4X19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkY5CisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOV9fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjlfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOV9fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGOV9fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMF9fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTBfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMF9fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMF9fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMQorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjExX19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxMV9fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjExX19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjExX19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTJfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjEyX19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTJfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTJfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTMKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxM19fVkZfRkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTNfX1ZGX0ZCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxM19fVkZfRkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxM19fVkZfRkJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxNAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE0X19WRl9GQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fRkJfU0laRV9PRkZTRVRfVkYxNF9fVkZfRkJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE0X19WRl9GQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE0X19WRl9GQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1CisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTVfX1ZGX0ZCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9GQl9TSVpFX09GRlNFVF9WRjE1X19WRl9GQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTVfX1ZGX0ZCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX0ZCX1NJWkVfT0ZGU0VUX1ZGMTVfX1ZGX0ZCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1ZNU0hBUkVESFYxX1ZNX0lPTU1VX01NSU9fQ05UUkxfMQorI2RlZmluZSBWTVNIQVJFREhWMV9WTV9JT01NVV9NTUlPX0NOVFJMXzFfX01BUkNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fSU9NTVVfTU1JT19DTlRSTF8xX19NQVJDX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzBfX01BUkNfQkFTRV9MT18wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9MT18wX19NQVJDX0JBU0VfTE9fMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL1ZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9MT18xCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9MT18xX19NQVJDX0JBU0VfTE9fMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfTE9fMV9fTUFSQ19CQVNFX0xPXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfTE9fMgorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfTE9fMl9fTUFSQ19CQVNFX0xPXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzJfX01BUkNfQkFTRV9MT18yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzMKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0xPXzNfX01BUkNfQkFTRV9MT18zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9MT18zX19NQVJDX0JBU0VfTE9fM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL1ZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9ISV8wCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9ISV8wX19NQVJDX0JBU0VfSElfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfSElfMF9fTUFSQ19CQVNFX0hJXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfSElfMQorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfSElfMV9fTUFSQ19CQVNFX0hJXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0hJXzFfX01BUkNfQkFTRV9ISV8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0hJXzIKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19CQVNFX0hJXzJfX01BUkNfQkFTRV9ISV8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9ISV8yX19NQVJDX0JBU0VfSElfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1ZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9ISV8zCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfQkFTRV9ISV8zX19NQVJDX0JBU0VfSElfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0JBU0VfSElfM19fTUFSQ19CQVNFX0hJXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18wX19NQVJDX0VOQUJMRV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fMF9fTUFSQ19SRUFET05MWV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzBfX01BUkNfUkVMT0NfTE9fMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18wX19NQVJDX0VOQUJMRV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18wX19NQVJDX1JFQURPTkxZXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18wX19NQVJDX1JFTE9DX0xPXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18xCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fMV9fTUFSQ19FTkFCTEVfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzFfX01BUkNfUkVBRE9OTFlfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18xX19NQVJDX1JFTE9DX0xPXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fMV9fTUFSQ19FTkFCTEVfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fMV9fTUFSQ19SRUFET05MWV8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fMV9fTUFSQ19SRUxPQ19MT18xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL1ZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fMgorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzJfX01BUkNfRU5BQkxFXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18yX19NQVJDX1JFQURPTkxZXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fMl9fTUFSQ19SRUxPQ19MT18yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzJfX01BUkNfRU5BQkxFXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzJfX01BUkNfUkVBRE9OTFlfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzJfX01BUkNfUkVMT0NfTE9fMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzMKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18zX19NQVJDX0VOQUJMRV8zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfTE9fM19fTUFSQ19SRUFET05MWV8zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0xPXzNfX01BUkNfUkVMT0NfTE9fM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18zX19NQVJDX0VOQUJMRV8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18zX19NQVJDX1JFQURPTkxZXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19MT18zX19NQVJDX1JFTE9DX0xPXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8wCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfSElfMF9fTUFSQ19SRUxPQ19ISV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0hJXzBfX01BUkNfUkVMT0NfSElfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0hJXzEKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8xX19NQVJDX1JFTE9DX0hJXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfSElfMV9fTUFSQ19SRUxPQ19ISV8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1ZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfSElfMgorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0hJXzJfX01BUkNfUkVMT0NfSElfMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8yX19NQVJDX1JFTE9DX0hJXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vVk1TSEFSRURIVjFfTUNfVk1fTUFSQ19SRUxPQ19ISV8zCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfUkVMT0NfSElfM19fTUFSQ19SRUxPQ19ISV8zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX1JFTE9DX0hJXzNfX01BUkNfUkVMT0NfSElfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18wCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0xPXzBfX01BUkNfTEVOX0xPXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18wX19NQVJDX0xFTl9MT18wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18xCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0xPXzFfX01BUkNfTEVOX0xPXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18xX19NQVJDX0xFTl9MT18xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18yCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0xPXzJfX01BUkNfTEVOX0xPXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18yX19NQVJDX0xFTl9MT18yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18zCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0xPXzNfX01BUkNfTEVOX0xPXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9MT18zX19NQVJDX0xFTl9MT18zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8wCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0hJXzBfX01BUkNfTEVOX0hJXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8wX19NQVJDX0xFTl9ISV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8xCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0hJXzFfX01BUkNfTEVOX0hJXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8xX19NQVJDX0xFTl9ISV8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8yCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0hJXzJfX01BUkNfTEVOX0hJXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8yX19NQVJDX0xFTl9ISV8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8zCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX01BUkNfTEVOX0hJXzNfX01BUkNfTEVOX0hJXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9NQVJDX0xFTl9ISV8zX19NQVJDX0xFTl9ISV8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9WTVNIQVJFREhWMV9WTV9JT01NVV9DT05UUk9MX1JFR0lTVEVSCisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX0lPTU1VX0NPTlRST0xfUkVHSVNURVJfX0lPTU1VRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9WTV9JT01NVV9DT05UUk9MX1JFR0lTVEVSX19JT01NVUVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9WTVNIQVJFREhWMV9WTV9JT01NVV9QRVJGT1JNQU5DRV9PUFRJTUlaQVRJT05fQ09OVFJPTF9SRUdJU1RFUgorI2RlZmluZSBWTVNIQVJFREhWMV9WTV9JT01NVV9QRVJGT1JNQU5DRV9PUFRJTUlaQVRJT05fQ09OVFJPTF9SRUdJU1RFUl9fUEVSRk9QVEVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fSU9NTVVfUEVSRk9STUFOQ0VfT1BUSU1JWkFUSU9OX0NPTlRST0xfUkVHSVNURVJfX1BFUkZPUFRFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTAorI2RlZmluZSBWTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX19TVFVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9fU1RVX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8wCisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMF9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8wX19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xCisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMV9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xX19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8yCisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMl9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8yX19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8zCisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfM19fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8zX19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl80CisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfNF9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl80X19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl81CisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfNV9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl81X19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl82CisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfNl9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl82X19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl83CisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfN19fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl83X19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl84CisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfOF9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl84X19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl85CisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfOV9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl85X19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xMAorI2RlZmluZSBWTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEwX19BVENfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTBfX0FUQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTEKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xMV9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzExX19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEyCisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTJfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xMl9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xMworI2RlZmluZSBWTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzEzX19BVENfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTNfX0FUQ19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTQKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xNF9fQVRDX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzE0X19BVENfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9WTVNIQVJFREhWMV9WTV9QQ0lFX0FUU19DTlRMX1ZGXzE1CisjZGVmaW5lIFZNU0hBUkVESFYxX1ZNX1BDSUVfQVRTX0NOVExfVkZfMTVfX0FUQ19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVk1fUENJRV9BVFNfQ05UTF9WRl8xNV9fQVRDX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVk1TSEFSRURIVjFfVVRDTDJfQ0dUVF9DTEtfQ1RSTAorI2RlZmluZSBWTVNIQVJFREhWMV9VVENMMl9DR1RUX0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfVVRDTDJfQ0dUVF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFZNU0hBUkVESFYxX1VUQ0wyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfRVhUUkFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBWTVNIQVJFREhWMV9VVENMMl9DR1RUX0NMS19DVFJMX19NR0xTX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1TSEFSRURIVjFfVVRDTDJfQ0dUVF9DTEtfQ1RSTF9fU09GVF9TVEFMTF9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBWTVNIQVJFREhWMV9VVENMMl9DR1RUX0NMS19DVFJMX19TT0ZUX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFZNU0hBUkVESFYxX1VUQ0wyX0NHVFRfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFZNU0hBUkVESFYxX1VUQ0wyX0NHVFRfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIFZNU0hBUkVESFYxX1VUQ0wyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfRVhUUkFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFZNU0hBUkVESFYxX1VUQ0wyX0NHVFRfQ0xLX0NUUkxfX01HTFNfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFZNU0hBUkVESFYxX1VUQ0wyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfU1RBTExfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFZNU0hBUkVESFYxX1VUQ0wyX0NHVFRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL1ZNU0hBUkVESFYxX01DX1NIQVJFRF9BQ1RJVkVfRkNOX0lECisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1NIQVJFRF9BQ1RJVkVfRkNOX0lEX19WRklEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19TSEFSRURfQUNUSVZFX0ZDTl9JRF9fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1NIQVJFRF9BQ1RJVkVfRkNOX0lEX19WRklEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1NIQVJFRF9BQ1RJVkVfRkNOX0lEX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1ZNU0hBUkVESFYxX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRQorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkY3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGMTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfVkYxM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFZNU0hBUkVESFYxX01DX1ZNX1hHTUlfR1BVSU9WX0VOQUJMRV9fRU5BQkxFX1ZGMTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVk1TSEFSRURIVjFfTUNfVk1fWEdNSV9HUFVJT1ZfRU5BQkxFX19FTkFCTEVfUEZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9WRjE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBWTVNIQVJFREhWMV9NQ19WTV9YR01JX0dQVUlPVl9FTkFCTEVfX0VOQUJMRV9QRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfYXRjbDJwZmNudHJkZWM6MQorLy9BVENMMlBGQ05UUjFfQVRDX0wyX1BFUkZDT1VOVEVSX0xPCisjZGVmaW5lIEFUQ0wyUEZDTlRSMV9BVENfTDJfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMlBGQ05UUjFfQVRDX0wyX1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9BVENMMlBGQ05UUjFfQVRDX0wyX1BFUkZDT1VOVEVSX0hJCisjZGVmaW5lIEFUQ0wyUEZDTlRSMV9BVENfTDJfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMlBGQ05UUjFfQVRDX0wyX1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFUQ0wyUEZDTlRSMV9BVENfTDJfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIEFUQ0wyUEZDTlRSMV9BVENfTDJfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl9hdGNsMnBmY250bGRlYzoxCisvL0FUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIwX0NGRworI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSMF9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0FUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIxX0NGRworI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSMV9DRkdfX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisvL0FUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMCisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfVFJJR0dFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIEFUQ0wyUEZDTlRMMV9BVENfTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgQVRDTDJQRkNOVEwxX0FUQ19MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1NUT1BfQUxMX09OX1NBVFVSQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fUEVSRl9DT1VOVEVSX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RBUlRfVFJJR0dFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fRU5BQkxFX0FOWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fQ0xFQVJfQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBBVENMMlBGQ05UTDFfQVRDX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbW1odWJfdXRjbDJfdm1sMnBsZGVjOjEKKy8vVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSMF9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSMF9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIwX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjBfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSMV9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSMV9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIxX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjFfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSMl9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSMl9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIyX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjJfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSM19DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSM19DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVIzX0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjNfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSNF9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSNF9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI0X0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjRfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSNV9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSNV9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI1X0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjVfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSNl9DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSNl9DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI2X0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjZfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGR19fUEVSRl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSN19DRkdfX1BFUkZfU0VMX0VORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX19QRVJGX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSN19DRkdfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVI3X0NGR19fQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX19QRVJGX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX19QRVJGX1NFTF9FTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX19QRVJGX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUjdfQ0ZHX19DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKy8vVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVEwKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX1BFUkZfQ09VTlRFUl9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9UUklHR0VSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVk1MMlBMMV9NQ19WTV9MMl9QRVJGQ09VTlRFUl9SU0xUX0NOVExfX0NMRUFSX0FMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBWTUwyUEwxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX1JTTFRfQ05UTF9fU1RPUF9BTExfT05fU0FUVVJBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19QRVJGX0NPVU5URVJfU0VMRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVEFSVF9UUklHR0VSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX1RSSUdHRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19FTkFCTEVfQU5ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19DTEVBUl9BTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFZNTDJQTDFfTUNfVk1fTDJfUEVSRkNPVU5URVJfUlNMVF9DTlRMX19TVE9QX0FMTF9PTl9TQVRVUkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtbWh1Yl91dGNsMl92bWwycHJkZWM6MQorLy9WTUwyUFIxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0xPCisjZGVmaW5lIFZNTDJQUjFfTUNfVk1fTDJfUEVSRkNPVU5URVJfTE9fX0NPVU5URVJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUFIxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0xPX19DT1VOVEVSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9WTUwyUFIxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0hJCisjZGVmaW5lIFZNTDJQUjFfTUNfVk1fTDJfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBWTUwyUFIxX01DX1ZNX0wyX1BFUkZDT1VOVEVSX0hJX19DT01QQVJFX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFZNTDJQUjFfTUNfVk1fTDJfUEVSRkNPVU5URVJfSElfX0NPVU5URVJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFZNTDJQUjFfTUNfVk1fTDJfUEVSRkNPVU5URVJfSElfX0NPTVBBUkVfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL21wL21wXzEyXzBfMF9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9tcC9tcF8xMl8wXzBfb2Zmc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZlNTFmYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9tcC9tcF8xMl8wXzBfb2Zmc2V0LmgKQEAgLTAsMCArMSwzMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX21wXzEyXzBfMF9PRkZTRVRfSEVBREVSCisjZGVmaW5lIF9tcF8xMl8wXzBfT0ZGU0VUX0hFQURFUgorCisKKworLy8gYWRkcmVzc0Jsb2NrOiBtcF9TbXVNcDBfU21uRGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzMyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR18zMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjEKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR18zM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfMzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYyCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfMzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzM1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MworI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzM1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR18zNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR18zNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfMzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY1CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfMzdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzM4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NgorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzM4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR18zOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjcKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR18zOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY4CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2OQorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR180MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmEKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR180Ml9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZiCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YworI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzQ0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR180NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmQKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR180NV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZlCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNDZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzQ3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2ZgorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzQ3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR180OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR180OF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcxCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNDlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MgorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR181MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzMKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR181MV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDc0CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzUzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3NQorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzUzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR181NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzYKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR181NF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDc3CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3OAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzU2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR181NyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzkKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR181N19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdhCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzU5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3YgorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzU5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR182MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2MKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR182MF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdkCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzYyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZQorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzYyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR182MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2YKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR182M19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzY1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MQorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzY1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR182NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODIKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR182Nl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgzCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNjdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzY4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzY4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR182OSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODUKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR182OV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg2CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NworI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR183MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODgKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR183Ml9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg5CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzc0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YQorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzc0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR183NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGIKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR183NV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhjCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzc3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzc3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR183OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGUKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR183OF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhmCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfNzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzgwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzgwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR184MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTEKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR184MV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfODIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkyCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfODJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzgzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MworI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzgzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR184NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTQKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR184NF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfODUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDk1CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfODVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzg2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5NgorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzg2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR184NyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTcKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR184N19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDk4CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfODhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzg5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5OQorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzg5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR185MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOWEKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR185MF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfOTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDliCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfOTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzkyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5YworI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzkyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR185MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOWQKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR185M19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfOTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDllCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfOTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzk1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5ZgorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzk1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR185NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR185Nl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfOTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGExCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfOTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzk4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhMgorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzk4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR185OSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTMKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR185OV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfMTAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE0CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfMTAwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzEwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhNQorI2RlZmluZSBtbU1QMF9TTU5fQzJQTVNHXzEwMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR18xMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTYKKyNkZWZpbmUgbW1NUDBfU01OX0MyUE1TR18xMDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfMTAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE3CisjZGVmaW5lIG1tTVAwX1NNTl9DMlBNU0dfMTAzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMF9TTU5fSUhfQ1JFRElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMQorI2RlZmluZSBtbU1QMF9TTU5fSUhfQ1JFRElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDBfU01OX0lIX1NXX0lOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzIKKyNkZWZpbmUgbW1NUDBfU01OX0lIX1NXX0lOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAwX1NNTl9JSF9TV19JTlRfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMzCisjZGVmaW5lIG1tTVAwX1NNTl9JSF9TV19JTlRfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorCisKKy8vIGFkZHJlc3NCbG9jazogbXBfU211TXAxX1NtbkRlYworLy8gYmFzZSBhZGRyZXNzOiAweDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR18zMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR18zMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfMzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYxCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfMzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MgorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzM0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR18zNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjMKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR18zNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfMzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY0CisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfMzZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzM3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NQorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzM3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR18zOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjYKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR18zOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfMzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY3CisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfMzlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2OAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR180MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjkKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR180MV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZhCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzQzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YgorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzQzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR180NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmMKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR180NF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZkCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNDVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzQ2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2ZQorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzQ2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR180NyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmYKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR180N19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjcwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNDhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzQ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3MQorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzQ5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR181MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzIKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR181MF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjczCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3NAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR181MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzUKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR181M19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc2CisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzU1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3NworI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzU1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR181NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzgKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR181Nl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc5CisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YQorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzU4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR181OSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2IKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR181OV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdjCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzYxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzYxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR182MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2UKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR182Ml9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdmCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNjNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzY0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR182NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODEKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR182NV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNjYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjgyCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNjZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzY3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MworI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzY3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR182OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODQKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR182OF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjg1CisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNjlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4NgorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR183MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODcKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR183MV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjg4CisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4OQorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR183NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOGEKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR183NF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjhiCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNzVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzc2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4YworI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzc2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR183NyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOGQKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR183N19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjhlCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfNzhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzc5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4ZgorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzc5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR184MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR184MF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfODEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkxCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfODFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzgyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MgorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzgyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR184MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTMKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR184M19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfODQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk0CisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfODRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzg1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NQorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzg1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR184NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTYKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR184Nl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfODcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk3CisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfODdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5OAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzg4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR184OSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTkKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR184OV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfOTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlhCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfOTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YgorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzkxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR185MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWMKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR185Ml9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfOTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlkCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfOTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzk0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZQorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzk0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR185NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWYKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR185NV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfOTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfOTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzk3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMQorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzk3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR185OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTIKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR185OF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfOTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEzCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfOTlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzEwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhNAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzEwMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR18xMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTUKKyNkZWZpbmUgbW1NUDFfU01OX0MyUE1TR18xMDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfMTAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmE2CisjZGVmaW5lIG1tTVAxX1NNTl9DMlBNU0dfMTAyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzEwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhNworI2RlZmluZSBtbU1QMV9TTU5fQzJQTVNHXzEwM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0lIX0NSRURJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzEKKyNkZWZpbmUgbW1NUDFfU01OX0lIX0NSRURJVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTVAxX1NNTl9JSF9TV19JTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMyCisjZGVmaW5lIG1tTVAxX1NNTl9JSF9TV19JTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbU1QMV9TTU5fSUhfU1dfSU5UX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMworI2RlZmluZSBtbU1QMV9TTU5fSUhfU1dfSU5UX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1NUDFfU01OX0ZQU19DTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzQKKyNkZWZpbmUgbW1NUDFfU01OX0ZQU19DTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbXAvbXBfMTJfMF8wX3NoX21hc2suaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9tcC9tcF8xMl8wXzBfc2hfbWFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ODE1MWUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbXAvbXBfMTJfMF8wX3NoX21hc2suaApAQCAtMCwwICsxLDg2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfbXBfMTJfMF8wX1NIX01BU0tfSEVBREVSCisjZGVmaW5lIF9tcF8xMl8wXzBfU0hfTUFTS19IRUFERVIKKworCisvLyBhZGRyZXNzQmxvY2s6IG1wX1NtdU1wMF9TbW5EZWMKKy8vTVAwX1NNTl9DMlBNU0dfMzIKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfMzJfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzMyX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzMzCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzMzX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR18zM19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR18zNAorI2RlZmluZSBNUDBfU01OX0MyUE1TR18zNF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfMzRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfMzUKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfMzVfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzM1X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzM2CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzM2X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR18zNl9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR18zNworI2RlZmluZSBNUDBfU01OX0MyUE1TR18zN19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfMzdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfMzgKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfMzhfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzM4X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzM5CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzM5X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR18zOV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR180MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR180MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNDBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNDEKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNDFfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzQxX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzQyCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzQyX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR180Ml9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR180MworI2RlZmluZSBNUDBfU01OX0MyUE1TR180M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNDNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNDQKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNDRfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzQ0X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzQ1CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzQ1X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR180NV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR180NgorI2RlZmluZSBNUDBfU01OX0MyUE1TR180Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNDZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNDcKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNDdfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzQ3X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzQ4CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzQ4X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR180OF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR180OQorI2RlZmluZSBNUDBfU01OX0MyUE1TR180OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNDlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNTAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNTBfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzUwX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzUxCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzUxX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR181MV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR181MgorI2RlZmluZSBNUDBfU01OX0MyUE1TR181Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNTJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNTMKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNTNfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzUzX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzU0CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzU0X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR181NF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR181NQorI2RlZmluZSBNUDBfU01OX0MyUE1TR181NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNTVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNTYKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNTZfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzU2X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzU3CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzU3X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR181N19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR181OAorI2RlZmluZSBNUDBfU01OX0MyUE1TR181OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNThfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNTkKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNTlfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzU5X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzYwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzYwX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR182MF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR182MQorI2RlZmluZSBNUDBfU01OX0MyUE1TR182MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNjFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNjIKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNjJfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzYyX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzYzCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzYzX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR182M19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR182NAorI2RlZmluZSBNUDBfU01OX0MyUE1TR182NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNjRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNjUKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNjVfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzY1X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzY2CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzY2X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR182Nl9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR182NworI2RlZmluZSBNUDBfU01OX0MyUE1TR182N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNjdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNjgKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNjhfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzY4X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzY5CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzY5X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR182OV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR183MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR183MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNzBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNzEKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNzFfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzcxX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzcyCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzcyX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR183Ml9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR183MworI2RlZmluZSBNUDBfU01OX0MyUE1TR183M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNzNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNzQKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNzRfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzc0X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzc1CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzc1X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR183NV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR183NgorI2RlZmluZSBNUDBfU01OX0MyUE1TR183Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNzZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfNzcKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNzdfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzc3X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzc4CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzc4X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR183OF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR183OQorI2RlZmluZSBNUDBfU01OX0MyUE1TR183OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfNzlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfODAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfODBfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzgwX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzgxCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzgxX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR184MV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR184MgorI2RlZmluZSBNUDBfU01OX0MyUE1TR184Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfODJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfODMKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfODNfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzgzX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzg0CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzg0X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR184NF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR184NQorI2RlZmluZSBNUDBfU01OX0MyUE1TR184NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfODVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfODYKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfODZfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzg2X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzg3CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzg3X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR184N19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR184OAorI2RlZmluZSBNUDBfU01OX0MyUE1TR184OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfODhfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfODkKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfODlfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzg5X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzkwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzkwX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR185MF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR185MQorI2RlZmluZSBNUDBfU01OX0MyUE1TR185MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfOTFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfOTIKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfOTJfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzkyX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzkzCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzkzX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR185M19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR185NAorI2RlZmluZSBNUDBfU01OX0MyUE1TR185NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfOTRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfOTUKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfOTVfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzk1X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzk2CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzk2X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR185Nl9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR185NworI2RlZmluZSBNUDBfU01OX0MyUE1TR185N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfOTdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfOTgKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfOThfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzk4X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzk5CisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzk5X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR185OV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR18xMDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfMTAwX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzEwMF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fQzJQTVNHXzEwMQorI2RlZmluZSBNUDBfU01OX0MyUE1TR18xMDFfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfMTAxX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAwX1NNTl9DMlBNU0dfMTAyCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzEwMl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0MyUE1TR18xMDJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDBfU01OX0MyUE1TR18xMDMKKyNkZWZpbmUgTVAwX1NNTl9DMlBNU0dfMTAzX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9TTU5fQzJQTVNHXzEwM19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMF9TTU5fSUhfQ1JFRElUCisjZGVmaW5lIE1QMF9TTU5fSUhfQ1JFRElUX19DUkVESVRfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0lIX0NSRURJVF9fQ0xJRU5UX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QMF9TTU5fSUhfQ1JFRElUX19DUkVESVRfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QMF9TTU5fSUhfQ1JFRElUX19DTElFTlRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL01QMF9TTU5fSUhfU1dfSU5UCisjZGVmaW5lIE1QMF9TTU5fSUhfU1dfSU5UX19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfU01OX0lIX1NXX0lOVF9fVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVAwX1NNTl9JSF9TV19JTlRfX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTVAwX1NNTl9JSF9TV19JTlRfX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IG1wX1NtdU1wMV9TbW5EZWMKKy8vTVAxX1NNTl9DMlBNU0dfMzIKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfMzJfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzMyX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzMzCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzMzX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR18zM19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR18zNAorI2RlZmluZSBNUDFfU01OX0MyUE1TR18zNF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfMzRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfMzUKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfMzVfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzM1X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzM2CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzM2X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR18zNl9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR18zNworI2RlZmluZSBNUDFfU01OX0MyUE1TR18zN19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfMzdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfMzgKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfMzhfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzM4X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzM5CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzM5X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR18zOV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR180MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR180MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNDBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNDEKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNDFfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzQxX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzQyCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzQyX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR180Ml9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR180MworI2RlZmluZSBNUDFfU01OX0MyUE1TR180M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNDNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNDQKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNDRfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzQ0X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzQ1CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzQ1X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR180NV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR180NgorI2RlZmluZSBNUDFfU01OX0MyUE1TR180Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNDZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNDcKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNDdfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzQ3X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzQ4CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzQ4X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR180OF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR180OQorI2RlZmluZSBNUDFfU01OX0MyUE1TR180OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNDlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNTAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNTBfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzUwX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzUxCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzUxX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR181MV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR181MgorI2RlZmluZSBNUDFfU01OX0MyUE1TR181Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNTJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNTMKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNTNfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzUzX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzU0CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzU0X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR181NF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR181NQorI2RlZmluZSBNUDFfU01OX0MyUE1TR181NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNTVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNTYKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNTZfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzU2X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzU3CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzU3X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR181N19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR181OAorI2RlZmluZSBNUDFfU01OX0MyUE1TR181OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNThfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNTkKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNTlfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzU5X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzYwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzYwX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR182MF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR182MQorI2RlZmluZSBNUDFfU01OX0MyUE1TR182MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNjFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNjIKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNjJfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzYyX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzYzCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzYzX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR182M19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR182NAorI2RlZmluZSBNUDFfU01OX0MyUE1TR182NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNjRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNjUKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNjVfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzY1X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzY2CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzY2X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR182Nl9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR182NworI2RlZmluZSBNUDFfU01OX0MyUE1TR182N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNjdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNjgKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNjhfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzY4X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzY5CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzY5X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR182OV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR183MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR183MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNzBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNzEKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNzFfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzcxX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzcyCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzcyX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR183Ml9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR183MworI2RlZmluZSBNUDFfU01OX0MyUE1TR183M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNzNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNzQKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNzRfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzc0X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzc1CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzc1X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR183NV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR183NgorI2RlZmluZSBNUDFfU01OX0MyUE1TR183Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNzZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfNzcKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNzdfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzc3X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzc4CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzc4X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR183OF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR183OQorI2RlZmluZSBNUDFfU01OX0MyUE1TR183OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfNzlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfODAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfODBfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzgwX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzgxCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzgxX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR184MV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR184MgorI2RlZmluZSBNUDFfU01OX0MyUE1TR184Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfODJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfODMKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfODNfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzgzX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzg0CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzg0X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR184NF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR184NQorI2RlZmluZSBNUDFfU01OX0MyUE1TR184NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfODVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfODYKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfODZfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzg2X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzg3CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzg3X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR184N19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR184OAorI2RlZmluZSBNUDFfU01OX0MyUE1TR184OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfODhfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfODkKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfODlfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzg5X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzkwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzkwX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR185MF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR185MQorI2RlZmluZSBNUDFfU01OX0MyUE1TR185MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfOTFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfOTIKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfOTJfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzkyX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzkzCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzkzX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR185M19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR185NAorI2RlZmluZSBNUDFfU01OX0MyUE1TR185NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfOTRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfOTUKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfOTVfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzk1X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzk2CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzk2X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR185Nl9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR185NworI2RlZmluZSBNUDFfU01OX0MyUE1TR185N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfOTdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfOTgKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfOThfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzk4X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzk5CisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzk5X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR185OV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR18xMDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfMTAwX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzEwMF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fQzJQTVNHXzEwMQorI2RlZmluZSBNUDFfU01OX0MyUE1TR18xMDFfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfMTAxX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1NNTl9DMlBNU0dfMTAyCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzEwMl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0MyUE1TR18xMDJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfU01OX0MyUE1TR18xMDMKKyNkZWZpbmUgTVAxX1NNTl9DMlBNU0dfMTAzX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9TTU5fQzJQTVNHXzEwM19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9TTU5fSUhfQ1JFRElUCisjZGVmaW5lIE1QMV9TTU5fSUhfQ1JFRElUX19DUkVESVRfVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0lIX0NSRURJVF9fQ0xJRU5UX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QMV9TTU5fSUhfQ1JFRElUX19DUkVESVRfVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QMV9TTU5fSUhfQ1JFRElUX19DTElFTlRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL01QMV9TTU5fSUhfU1dfSU5UCisjZGVmaW5lIE1QMV9TTU5fSUhfU1dfSU5UX19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0lIX1NXX0lOVF9fVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTVAxX1NNTl9JSF9TV19JTlRfX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTVAxX1NNTl9JSF9TV19JTlRfX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vTVAxX1NNTl9GUFNfQ05UCisjZGVmaW5lIE1QMV9TTU5fRlBTX0NOVF9fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfU01OX0ZQU19DTlRfX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogbXBfU211TXAwUHViX0NydURlYworLy9NUDBfSUhfQ1JFRElUCisjZGVmaW5lIE1QMF9JSF9DUkVESVRfX0NSRURJVF9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDBfSUhfQ1JFRElUX19DTElFTlRfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QMF9JSF9DUkVESVRfX0NSRURJVF9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QMF9JSF9DUkVESVRfX0NMSUVOVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL01QMF9JSF9TV19JTlQKKyNkZWZpbmUgTVAwX0lIX1NXX0lOVF9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9JSF9TV19JTlRfX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUDBfSUhfU1dfSU5UX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNUDBfSUhfU1dfSU5UX19WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9NUDBfSUhfU1dfSU5UX0NUUkwKKyNkZWZpbmUgTVAwX0lIX1NXX0lOVF9DVFJMX19JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMF9JSF9TV19JTlRfQ1RSTF9fSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUDBfSUhfU1dfSU5UX0NUUkxfX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUDBfSUhfU1dfSU5UX0NUUkxfX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogbXBfU211TXAxUHViX0NydURlYworLy9NUDFfRklSTVdBUkVfRkxBR1MKKyNkZWZpbmUgTVAxX0ZJUk1XQVJFX0ZMQUdTX19JTlRFUlJVUFRTX0VOQUJMRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9GSVJNV0FSRV9GTEFHU19fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNUDFfRklSTVdBUkVfRkxBR1NfX0lOVEVSUlVQVFNfRU5BQkxFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUDFfRklSTVdBUkVfRkxBR1NfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFTAorLy9NUDFfQzJQTVNHXzAKKyNkZWZpbmUgTVAxX0MyUE1TR18wX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMQorI2RlZmluZSBNUDFfQzJQTVNHXzFfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX0MyUE1TR18xX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX0MyUE1TR18yCisjZGVmaW5lIE1QMV9DMlBNU0dfMl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfQzJQTVNHXzJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfQzJQTVNHXzMKKyNkZWZpbmUgTVAxX0MyUE1TR18zX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfM19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNAorI2RlZmluZSBNUDFfQzJQTVNHXzRfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX0MyUE1TR180X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX0MyUE1TR181CisjZGVmaW5lIE1QMV9DMlBNU0dfNV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfQzJQTVNHXzVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfQzJQTVNHXzYKKyNkZWZpbmUgTVAxX0MyUE1TR182X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNl9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNworI2RlZmluZSBNUDFfQzJQTVNHXzdfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX0MyUE1TR183X19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX0MyUE1TR184CisjZGVmaW5lIE1QMV9DMlBNU0dfOF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfQzJQTVNHXzhfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfQzJQTVNHXzkKKyNkZWZpbmUgTVAxX0MyUE1TR185X19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOV9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTAKKyNkZWZpbmUgTVAxX0MyUE1TR18xMF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTEKKyNkZWZpbmUgTVAxX0MyUE1TR18xMV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTIKKyNkZWZpbmUgTVAxX0MyUE1TR18xMl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTMKKyNkZWZpbmUgTVAxX0MyUE1TR18xM19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTQKKyNkZWZpbmUgTVAxX0MyUE1TR18xNF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTUKKyNkZWZpbmUgTVAxX0MyUE1TR18xNV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTYKKyNkZWZpbmUgTVAxX0MyUE1TR18xNl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTcKKyNkZWZpbmUgTVAxX0MyUE1TR18xN19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTgKKyNkZWZpbmUgTVAxX0MyUE1TR18xOF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMThfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTkKKyNkZWZpbmUgTVAxX0MyUE1TR18xOV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjAKKyNkZWZpbmUgTVAxX0MyUE1TR18yMF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjEKKyNkZWZpbmUgTVAxX0MyUE1TR18yMV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjIKKyNkZWZpbmUgTVAxX0MyUE1TR18yMl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjMKKyNkZWZpbmUgTVAxX0MyUE1TR18yM19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjQKKyNkZWZpbmUgTVAxX0MyUE1TR18yNF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjUKKyNkZWZpbmUgTVAxX0MyUE1TR18yNV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjYKKyNkZWZpbmUgTVAxX0MyUE1TR18yNl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjcKKyNkZWZpbmUgTVAxX0MyUE1TR18yN19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjgKKyNkZWZpbmUgTVAxX0MyUE1TR18yOF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjhfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMjkKKyNkZWZpbmUgTVAxX0MyUE1TR18yOV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMjlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMzAKKyNkZWZpbmUgTVAxX0MyUE1TR18zMF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMzEKKyNkZWZpbmUgTVAxX0MyUE1TR18zMV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9QMkNNU0dfMAorI2RlZmluZSBNUDFfUDJDTVNHXzBfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1AyQ01TR18wX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1AyQ01TR18xCisjZGVmaW5lIE1QMV9QMkNNU0dfMV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfUDJDTVNHXzFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfUDJDTVNHXzIKKyNkZWZpbmUgTVAxX1AyQ01TR18yX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9QMkNNU0dfMl9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9QMkNNU0dfMworI2RlZmluZSBNUDFfUDJDTVNHXzNfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1AyQ01TR18zX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX1AyQ01TR19JTlRFTgorI2RlZmluZSBNUDFfUDJDTVNHX0lOVEVOX19JTlRFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX1AyQ01TR19JTlRFTl9fSU5URU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vTVAxX1AyQ01TR19JTlRTVFMKKyNkZWZpbmUgTVAxX1AyQ01TR19JTlRTVFNfX0lOVFNUUzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9QMkNNU0dfSU5UU1RTX19JTlRTVFMxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNUDFfUDJDTVNHX0lOVFNUU19fSU5UU1RTMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTVAxX1AyQ01TR19JTlRTVFNfX0lOVFNUUzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1QMV9QMkNNU0dfSU5UU1RTX19JTlRTVFMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1QMV9QMkNNU0dfSU5UU1RTX19JTlRTVFMxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1QMV9QMkNNU0dfSU5UU1RTX19JTlRTVFMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1QMV9QMkNNU0dfSU5UU1RTX19JTlRTVFMzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisvL01QMV9DMlBNU0dfMzIKKyNkZWZpbmUgTVAxX0MyUE1TR18zMl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMzMKKyNkZWZpbmUgTVAxX0MyUE1TR18zM19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMzQKKyNkZWZpbmUgTVAxX0MyUE1TR18zNF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMzUKKyNkZWZpbmUgTVAxX0MyUE1TR18zNV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMzYKKyNkZWZpbmUgTVAxX0MyUE1TR18zNl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMzcKKyNkZWZpbmUgTVAxX0MyUE1TR18zN19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMzgKKyNkZWZpbmUgTVAxX0MyUE1TR18zOF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzhfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMzkKKyNkZWZpbmUgTVAxX0MyUE1TR18zOV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMzlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDAKKyNkZWZpbmUgTVAxX0MyUE1TR180MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDEKKyNkZWZpbmUgTVAxX0MyUE1TR180MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDIKKyNkZWZpbmUgTVAxX0MyUE1TR180Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDMKKyNkZWZpbmUgTVAxX0MyUE1TR180M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDQKKyNkZWZpbmUgTVAxX0MyUE1TR180NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDUKKyNkZWZpbmUgTVAxX0MyUE1TR180NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDYKKyNkZWZpbmUgTVAxX0MyUE1TR180Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDcKKyNkZWZpbmUgTVAxX0MyUE1TR180N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDgKKyNkZWZpbmUgTVAxX0MyUE1TR180OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDhfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNDkKKyNkZWZpbmUgTVAxX0MyUE1TR180OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNDlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTAKKyNkZWZpbmUgTVAxX0MyUE1TR181MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNTBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTEKKyNkZWZpbmUgTVAxX0MyUE1TR181MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNTFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTIKKyNkZWZpbmUgTVAxX0MyUE1TR181Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNTJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTMKKyNkZWZpbmUgTVAxX0MyUE1TR181M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNTNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTQKKyNkZWZpbmUgTVAxX0MyUE1TR181NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNTRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTUKKyNkZWZpbmUgTVAxX0MyUE1TR181NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNTVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTYKKyNkZWZpbmUgTVAxX0MyUE1TR181Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNTZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTcKKyNkZWZpbmUgTVAxX0MyUE1TR181N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNTdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTgKKyNkZWZpbmUgTVAxX0MyUE1TR181OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNThfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNTkKKyNkZWZpbmUgTVAxX0MyUE1TR181OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNTlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjAKKyNkZWZpbmUgTVAxX0MyUE1TR182MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjEKKyNkZWZpbmUgTVAxX0MyUE1TR182MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjIKKyNkZWZpbmUgTVAxX0MyUE1TR182Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjMKKyNkZWZpbmUgTVAxX0MyUE1TR182M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjQKKyNkZWZpbmUgTVAxX0MyUE1TR182NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjUKKyNkZWZpbmUgTVAxX0MyUE1TR182NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjYKKyNkZWZpbmUgTVAxX0MyUE1TR182Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjcKKyNkZWZpbmUgTVAxX0MyUE1TR182N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjgKKyNkZWZpbmUgTVAxX0MyUE1TR182OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjhfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNjkKKyNkZWZpbmUgTVAxX0MyUE1TR182OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNjlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzAKKyNkZWZpbmUgTVAxX0MyUE1TR183MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzEKKyNkZWZpbmUgTVAxX0MyUE1TR183MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzIKKyNkZWZpbmUgTVAxX0MyUE1TR183Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzMKKyNkZWZpbmUgTVAxX0MyUE1TR183M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzQKKyNkZWZpbmUgTVAxX0MyUE1TR183NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzUKKyNkZWZpbmUgTVAxX0MyUE1TR183NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzYKKyNkZWZpbmUgTVAxX0MyUE1TR183Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzcKKyNkZWZpbmUgTVAxX0MyUE1TR183N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzgKKyNkZWZpbmUgTVAxX0MyUE1TR183OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzhfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfNzkKKyNkZWZpbmUgTVAxX0MyUE1TR183OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfNzlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODAKKyNkZWZpbmUgTVAxX0MyUE1TR184MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODEKKyNkZWZpbmUgTVAxX0MyUE1TR184MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODIKKyNkZWZpbmUgTVAxX0MyUE1TR184Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODMKKyNkZWZpbmUgTVAxX0MyUE1TR184M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODQKKyNkZWZpbmUgTVAxX0MyUE1TR184NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODUKKyNkZWZpbmUgTVAxX0MyUE1TR184NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODYKKyNkZWZpbmUgTVAxX0MyUE1TR184Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODcKKyNkZWZpbmUgTVAxX0MyUE1TR184N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODgKKyNkZWZpbmUgTVAxX0MyUE1TR184OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODhfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfODkKKyNkZWZpbmUgTVAxX0MyUE1TR184OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfODlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTAKKyNkZWZpbmUgTVAxX0MyUE1TR185MF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOTBfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTEKKyNkZWZpbmUgTVAxX0MyUE1TR185MV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOTFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTIKKyNkZWZpbmUgTVAxX0MyUE1TR185Ml9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOTJfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTMKKyNkZWZpbmUgTVAxX0MyUE1TR185M19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOTNfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTQKKyNkZWZpbmUgTVAxX0MyUE1TR185NF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOTRfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTUKKyNkZWZpbmUgTVAxX0MyUE1TR185NV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOTVfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTYKKyNkZWZpbmUgTVAxX0MyUE1TR185Nl9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOTZfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTcKKyNkZWZpbmUgTVAxX0MyUE1TR185N19fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOTdfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTgKKyNkZWZpbmUgTVAxX0MyUE1TR185OF9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOThfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfOTkKKyNkZWZpbmUgTVAxX0MyUE1TR185OV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfOTlfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTAwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTAwX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfQzJQTVNHXzEwMF9fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfQzJQTVNHXzEwMQorI2RlZmluZSBNUDFfQzJQTVNHXzEwMV9fQ09OVEVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX0MyUE1TR18xMDFfX0NPTlRFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTVAxX0MyUE1TR18xMDIKKyNkZWZpbmUgTVAxX0MyUE1TR18xMDJfX0NPTlRFTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9DMlBNU0dfMTAyX19DT05URU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01QMV9DMlBNU0dfMTAzCisjZGVmaW5lIE1QMV9DMlBNU0dfMTAzX19DT05URU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfQzJQTVNHXzEwM19fQ09OVEVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NUDFfSUhfQ1JFRElUCisjZGVmaW5lIE1QMV9JSF9DUkVESVRfX0NSRURJVF9WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNUDFfSUhfQ1JFRElUX19DTElFTlRfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1QMV9JSF9DUkVESVRfX0NSRURJVF9WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIE1QMV9JSF9DUkVESVRfX0NMSUVOVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisvL01QMV9JSF9TV19JTlQKKyNkZWZpbmUgTVAxX0lIX1NXX0lOVF9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9JSF9TV19JTlRfX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUDFfSUhfU1dfSU5UX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNUDFfSUhfU1dfSU5UX19WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9NUDFfSUhfU1dfSU5UX0NUUkwKKyNkZWZpbmUgTVAxX0lIX1NXX0lOVF9DVFJMX19JTlRfTUFTS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1QMV9JSF9TV19JTlRfQ1RSTF9fSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNUDFfSUhfU1dfSU5UX0NUUkxfX0lOVF9NQVNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNUDFfSUhfU1dfSU5UX0NUUkxfX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9NUDFfRlBTX0NOVAorI2RlZmluZSBNUDFfRlBTX0NOVF9fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVAxX0ZQU19DTlRfX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fN18wX3NoX21hc2suaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fN18wX3NoX21hc2suaAppbmRleCA4ODYwMjQ3Li5lZThjMTVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzdfMF9zaF9tYXNrLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb183XzBfc2hfbWFzay5oCkBAIC03NDcwOSw2ICs3NDcwOSwzNiBAQAogLy9QQ0lFX1BFUkZfQ09VTlQxX1RYQ0xLMgogI2RlZmluZSBQQ0lFX1BFUkZfQ09VTlQxX1RYQ0xLMl9fQ09VTlRFUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKICNkZWZpbmUgUENJRV9QRVJGX0NPVU5UMV9UWENMSzJfX0NPVU5URVIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENJRV9QRVJGX0NOVExfVFhDTEszCisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLM19fRVZFTlQwX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ0lFX1BFUkZfQ05UTF9UWENMSzNfX0VWRU5UMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENJRV9QRVJGX0NOVExfVFhDTEszX19DT1VOVEVSMF9VUFBFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ0lFX1BFUkZfQ05UTF9UWENMSzNfX0NPVU5URVIxX1VQUEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLM19fRVZFTlQwX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLM19fRVZFTlQxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLM19fQ09VTlRFUjBfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLM19fQ09VTlRFUjFfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL1BDSUVfUEVSRl9DT1VOVDBfVFhDTEszCisjZGVmaW5lIFBDSUVfUEVSRl9DT1VOVDBfVFhDTEszX19DT1VOVEVSMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ0lFX1BFUkZfQ09VTlQwX1RYQ0xLM19fQ09VTlRFUjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ0lFX1BFUkZfQ09VTlQxX1RYQ0xLMworI2RlZmluZSBQQ0lFX1BFUkZfQ09VTlQxX1RYQ0xLM19fQ09VTlRFUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENJRV9QRVJGX0NPVU5UMV9UWENMSzNfX0NPVU5URVIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vUENJRV9QRVJGX0NOVExfVFhDTEs0CisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLNF9fRVZFTlQwX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ0lFX1BFUkZfQ05UTF9UWENMSzRfX0VWRU5UMV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgUENJRV9QRVJGX0NOVExfVFhDTEs0X19DT1VOVEVSMF9VUFBFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBQQ0lFX1BFUkZfQ05UTF9UWENMSzRfX0NPVU5URVIxX1VQUEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLNF9fRVZFTlQwX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLNF9fRVZFTlQxX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLNF9fQ09VTlRFUjBfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFBDSUVfUEVSRl9DTlRMX1RYQ0xLNF9fQ09VTlRFUjFfVVBQRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL1BDSUVfUEVSRl9DT1VOVDBfVFhDTEs0CisjZGVmaW5lIFBDSUVfUEVSRl9DT1VOVDBfVFhDTEs0X19DT1VOVEVSMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBQQ0lFX1BFUkZfQ09VTlQwX1RYQ0xLNF9fQ09VTlRFUjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9QQ0lFX1BFUkZfQ09VTlQxX1RYQ0xLNAorI2RlZmluZSBQQ0lFX1BFUkZfQ09VTlQxX1RYQ0xLNF9fQ09VTlRFUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgUENJRV9QRVJGX0NPVU5UMV9UWENMSzRfX0NPVU5URVIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKIC8vUENJRV9QUkJTX0NMUgogI2RlZmluZSBQQ0lFX1BSQlNfQ0xSX19QUkJTX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKICNkZWZpbmUgUENJRV9QUkJTX0NMUl9fUFJCU19QT0xBUklUWV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb183XzBfc21uLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzdfMF9zbW4uaAppbmRleCBjYWY1ZmZkLi42NzAyNTc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzdfMF9zbW4uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzdfMF9zbW4uaApAQCAtNTAsNiArNTAsMTIgQEAKICNkZWZpbmUgc21uUENJRV9QRVJGX0NOVExfVFhDTEsyCQkJMHgxMTE4MDI1NAogI2RlZmluZSBzbW5QQ0lFX1BFUkZfQ09VTlQwX1RYQ0xLMgkJCTB4MTExODAyNTgKICNkZWZpbmUgc21uUENJRV9QRVJGX0NPVU5UMV9UWENMSzIJCQkweDExMTgwMjVjCisjZGVmaW5lIHNtblBDSUVfUEVSRl9DTlRMX1RYQ0xLMyAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExODAyMWMKKyNkZWZpbmUgc21uUENJRV9QRVJGX0NPVU5UMF9UWENMSzMgICAgICAgICAgICAgICAgICAgICAgMHgxMTE4MDIyMAorI2RlZmluZSBzbW5QQ0lFX1BFUkZfQ09VTlQxX1RYQ0xLMyAgICAgICAgICAgICAgICAgICAgICAweDExMTgwMjI0CisjZGVmaW5lIHNtblBDSUVfUEVSRl9DTlRMX1RYQ0xLNCAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExODAyMjgKKyNkZWZpbmUgc21uUENJRV9QRVJGX0NPVU5UMF9UWENMSzQgICAgICAgICAgICAgICAgICAgICAgMHgxMTE4MDIyYworI2RlZmluZSBzbW5QQ0lFX1BFUkZfQ09VTlQxX1RYQ0xLNCAgICAgICAgICAgICAgICAgICAgICAweDExMTgwMjMwCiAKICNkZWZpbmUgc21uUENJRV9SWF9OVU1fTkFLCQkJCTB4MTExODAwMzgKICNkZWZpbmUgc21uUENJRV9SWF9OVU1fTkFLX0dFTkVSQVRFRAkJCTB4MTExODAwM2MKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9vc3Mvb3Nzc3lzXzRfMF9zaF9tYXNrLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvb3NzL29zc3N5c180XzBfc2hfbWFzay5oCmluZGV4IDFlZTNhMjMuLmRjOTg5NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9vc3Mvb3Nzc3lzXzRfMF9zaF9tYXNrLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL29zcy9vc3NzeXNfNF8wX3NoX21hc2suaApAQCAtMTEwOSw3ICsxMTA5LDExIEBACiAjZGVmaW5lIElIX0NJRF9SRU1BUF9EQVRBX19DTElFTlRfSURfUkVNQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCiAvL0lIX0NISUNLRU4KICNkZWZpbmUgSUhfQ0hJQ0tFTl9fQUNUSVZFX0ZDTl9JRF9QUk9UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIElIX0NISUNLRU5fX01DX1NQQUNFX0ZCUEFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBJSF9DSElDS0VOX19NQ19TUEFDRV9HUEFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKICNkZWZpbmUgSUhfQ0hJQ0tFTl9fQUNUSVZFX0ZDTl9JRF9QUk9UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSUhfQ0hJQ0tFTl9fTUNfU1BBQ0VfRkJQQV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgSUhfQ0hJQ0tFTl9fTUNfU1BBQ0VfR1BBX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKIC8vSUhfTU1IVUJfQ05UTAogI2RlZmluZSBJSF9NTUhVQl9DTlRMX19VTklUSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKICNkZWZpbmUgSUhfTU1IVUJfQ05UTF9fSVZfVExWTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvcnNtdS9yc211XzBfMF8yX29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3JzbXUvcnNtdV8wXzBfMl9vZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjQ2NmFlNwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9yc211L3JzbXVfMF8wXzJfb2Zmc2V0LmgKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfcnNtdV8wXzBfMl9PRkZTRVRfSEVBREVSCisjZGVmaW5lIF9yc211XzBfMF8yX09GRlNFVF9IRUFERVIKKworI2RlZmluZQltbVJTTVVfVU1DX0lOREVYX1JFR0lTVEVSX05CSUZfVkcyMF9HUFUJCQkJCQkJCTB4MGQ5MQorI2RlZmluZQltbVJTTVVfVU1DX0lOREVYX1JFR0lTVEVSX05CSUZfVkcyMF9HUFVfQkFTRV9JRFgJCQkJCQkwCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3JzbXUvcnNtdV8wXzBfMl9zaF9tYXNrLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvcnNtdS9yc211XzBfMF8yX3NoX21hc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTBhY2I1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3JzbXUvcnNtdV8wXzBfMl9zaF9tYXNrLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfcnNtdV8wXzBfMl9TSF9NQVNLX0hFQURFUgorI2RlZmluZSBfcnNtdV8wXzBfMl9TSF9NQVNLX0hFQURFUgorCisvL1JTTVVfVU1DX0lOREVYX1JFR0lTVEVSX05CSUZfVkcyMF9HUFUKKyNkZWZpbmUJUlNNVV9VTUNfSU5ERVhfUkVHSVNURVJfTkJJRl9WRzIwX0dQVV9fUlNNVV9VTUNfSU5ERVhfV1JFTl9fU0hJRlQJCQkJMHgwCisjZGVmaW5lCVJTTVVfVU1DX0lOREVYX1JFR0lTVEVSX05CSUZfVkcyMF9HUFVfX1JTTVVfVU1DX0lOREVYX0lOU1RBTkNFX19TSElGVAkJCQkweDEwCisjZGVmaW5lCVJTTVVfVU1DX0lOREVYX1JFR0lTVEVSX05CSUZfVkcyMF9HUFVfX1JTTVVfVU1DX0lOREVYX01PREVfRU5fX1NISUZUCQkJCTB4MWYKKyNkZWZpbmUJUlNNVV9VTUNfSU5ERVhfUkVHSVNURVJfTkJJRl9WRzIwX0dQVV9fUlNNVV9VTUNfSU5ERVhfV1JFTl9NQVNLCQkJCQkweDAwMDBGRkZGTAorI2RlZmluZQlSU01VX1VNQ19JTkRFWF9SRUdJU1RFUl9OQklGX1ZHMjBfR1BVX19SU01VX1VNQ19JTkRFWF9JTlNUQU5DRV9NQVNLCQkJCTB4MDAwRjAwMDBMCisjZGVmaW5lCVJTTVVfVU1DX0lOREVYX1JFR0lTVEVSX05CSUZfVkcyMF9HUFVfX1JTTVVfVU1DX0lOREVYX01PREVfRU5fTUFTSwkJCQkweDgwMDAwMDAwTAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMC9zZG1hMF80XzJfMl9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMC9zZG1hMF80XzJfMl9vZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjVkZjkwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWEwL3NkbWEwXzRfMl8yX29mZnNldC5oCkBAIC0wLDAgKzEsMTA1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfc2RtYTBfNF8yXzJfT0ZGU0VUX0hFQURFUgorI2RlZmluZSBfc2RtYTBfNF8yXzJfT0ZGU0VUX0hFQURFUgorCisKKworLy8gYWRkcmVzc0Jsb2NrOiBzZG1hMF9zZG1hMGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDQ5ODAKKyNkZWZpbmUgbW1TRE1BMF9VQ09ERV9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgbW1TRE1BMF9VQ09ERV9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVUNPREVfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIG1tU0RNQTBfVUNPREVfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1ZNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBtbVNETUEwX1ZNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9WTV9DVFhfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgbW1TRE1BMF9WTV9DVFhfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVk1fQ1RYX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIG1tU0RNQTBfVk1fQ1RYX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0FDVElWRV9GQ05fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNworI2RlZmluZSBtbVNETUEwX0FDVElWRV9GQ05fSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9WTV9DVFhfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKyNkZWZpbmUgbW1TRE1BMF9WTV9DVFhfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVklSVF9SRVNFVF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CisjZGVmaW5lIG1tU0RNQTBfVklSVF9SRVNFVF9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1ZGX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYQorI2RlZmluZSBtbVNETUEwX1ZGX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9DT05URVhUX1JFR19UWVBFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGIKKyNkZWZpbmUgbW1TRE1BMF9DT05URVhUX1JFR19UWVBFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBjCisjZGVmaW5lIG1tU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0NPTlRFWFRfUkVHX1RZUEUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZAorI2RlZmluZSBtbVNETUEwX0NPTlRFWFRfUkVHX1RZUEUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9DT05URVhUX1JFR19UWVBFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGUKKyNkZWZpbmUgbW1TRE1BMF9DT05URVhUX1JFR19UWVBFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUFVCX1JFR19UWVBFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBmCisjZGVmaW5lIG1tU0RNQTBfUFVCX1JFR19UWVBFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BVQl9SRUdfVFlQRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBtbVNETUEwX1BVQl9SRUdfVFlQRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QVUJfUkVHX1RZUEUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTEKKyNkZWZpbmUgbW1TRE1BMF9QVUJfUkVHX1RZUEUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUFVCX1JFR19UWVBFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEyCisjZGVmaW5lIG1tU0RNQTBfUFVCX1JFR19UWVBFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX01NSFVCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMworI2RlZmluZSBtbVNETUEwX01NSFVCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9DT05URVhUX0dST1VQX0JPVU5EQVJZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTkKKyNkZWZpbmUgbW1TRE1BMF9DT05URVhUX0dST1VQX0JPVU5EQVJZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUE9XRVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFhCisjZGVmaW5lIG1tU0RNQTBfUE9XRVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYgorI2RlZmluZSBtbVNETUEwX0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWMKKyNkZWZpbmUgbW1TRE1BMF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfQ0hJQ0tFTl9CSVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFkCisjZGVmaW5lIG1tU0RNQTBfQ0hJQ0tFTl9CSVRTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dCX0FERFJfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZQorI2RlZmluZSBtbVNETUEwX0dCX0FERFJfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HQl9BRERSX0NPTkZJR19SRUFEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWYKKyNkZWZpbmUgbW1TRE1BMF9HQl9BRERSX0NPTkZJR19SRUFEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkJfUlBUUl9GRVRDSF9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIG1tU0RNQTBfUkJfUlBUUl9GRVRDSF9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMQorI2RlZmluZSBtbVNETUEwX1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9SQl9SUFRSX0ZFVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgbW1TRE1BMF9SQl9SUFRSX0ZFVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfSUJfT0ZGU0VUX0ZFVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIzCisjZGVmaW5lIG1tU0RNQTBfSUJfT0ZGU0VUX0ZFVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BST0dSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBtbVNETUEwX1BST0dSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9TVEFUVVNfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjUKKyNkZWZpbmUgbW1TRE1BMF9TVEFUVVNfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfU1RBVFVTMV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI2CisjZGVmaW5lIG1tU0RNQTBfU1RBVFVTMV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JEX0JVUlNUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNworI2RlZmluZSBtbVNETUEwX1JEX0JVUlNUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9IQk1fUEFHRV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjgKKyNkZWZpbmUgbW1TRE1BMF9IQk1fUEFHRV9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVUNPREVfQ0hFQ0tTVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI5CisjZGVmaW5lIG1tU0RNQTBfVUNPREVfQ0hFQ0tTVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0YzMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYQorI2RlZmluZSBtbVNETUEwX0YzMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9GUkVFWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmIKKyNkZWZpbmUgbW1TRE1BMF9GUkVFWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEhBU0UwX1FVQU5UVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJjCisjZGVmaW5lIG1tU0RNQTBfUEhBU0UwX1FVQU5UVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BIQVNFMV9RVUFOVFVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZAorI2RlZmluZSBtbVNETUEwX1BIQVNFMV9RVUFOVFVNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BX1BPV0VSX0dBVElORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmUKKyNkZWZpbmUgbW1TRE1BX1BPV0VSX0dBVElOR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQV9QR0ZTTV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJmCisjZGVmaW5lIG1tU0RNQV9QR0ZTTV9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUFfUEdGU01fV1JJVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMAorI2RlZmluZSBtbVNETUFfUEdGU01fV1JJVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BX1BHRlNNX1JFQUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzEKKyNkZWZpbmUgbW1TRE1BX1BHRlNNX1JFQURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfRURDX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMyCisjZGVmaW5lIG1tU0RNQTBfRURDX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0JBX1RIUkVTSE9MRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMworI2RlZmluZSBtbVNETUEwX0JBX1RIUkVTSE9MRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgbW1TRE1BMF9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM1CisjZGVmaW5lIG1tU0RNQTBfVkVSU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0VEQ19DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBtbVNETUEwX0VEQ19DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9FRENfQ09VTlRFUl9DTEVBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgbW1TRE1BMF9FRENfQ09VTlRFUl9DTEVBUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfU1RBVFVTMl9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIG1tU0RNQTBfU1RBVFVTMl9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0FUT01JQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOQorI2RlZmluZSBtbVNETUEwX0FUT01JQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9BVE9NSUNfUFJFT1BfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2EKKyNkZWZpbmUgbW1TRE1BMF9BVE9NSUNfUFJFT1BfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfQVRPTUlDX1BSRU9QX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNiCisjZGVmaW5lIG1tU0RNQTBfQVRPTUlDX1BSRU9QX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1VUQ0wxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYworI2RlZmluZSBtbVNETUEwX1VUQ0wxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9VVENMMV9XQVRFUk1LICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2QKKyNkZWZpbmUgbW1TRE1BMF9VVENMMV9XQVRFUk1LX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVVRDTDFfUkRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNlCisjZGVmaW5lIG1tU0RNQTBfVVRDTDFfUkRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1VUQ0wxX1dSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZgorI2RlZmluZSBtbVNETUEwX1VUQ0wxX1dSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9VVENMMV9JTlYwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAKKyNkZWZpbmUgbW1TRE1BMF9VVENMMV9JTlYwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVVRDTDFfSU5WMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQxCisjZGVmaW5lIG1tU0RNQTBfVVRDTDFfSU5WMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1VUQ0wxX0lOVjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MgorI2RlZmluZSBtbVNETUEwX1VUQ0wxX0lOVjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9VVENMMV9SRF9YTkFDSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDMKKyNkZWZpbmUgbW1TRE1BMF9VVENMMV9SRF9YTkFDSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVVRDTDFfUkRfWE5BQ0sxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ0CisjZGVmaW5lIG1tU0RNQTBfVVRDTDFfUkRfWE5BQ0sxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1VUQ0wxX1dSX1hOQUNLMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NQorI2RlZmluZSBtbVNETUEwX1VUQ0wxX1dSX1hOQUNLMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9VVENMMV9XUl9YTkFDSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDYKKyNkZWZpbmUgbW1TRE1BMF9VVENMMV9XUl9YTkFDSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVVRDTDFfVElNRU9VVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ3CisjZGVmaW5lIG1tU0RNQTBfVVRDTDFfVElNRU9VVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1VUQ0wxX1BBR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OAorI2RlZmluZSBtbVNETUEwX1VUQ0wxX1BBR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QT1dFUl9DTlRMX0lETEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDkKKyNkZWZpbmUgbW1TRE1BMF9QT1dFUl9DTlRMX0lETEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkVMQVhfT1JERVJJTkdfTFVUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRhCisjZGVmaW5lIG1tU0RNQTBfUkVMQVhfT1JERVJJTkdfTFVUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0NISUNLRU5fQklUU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YgorI2RlZmluZSBtbVNETUEwX0NISUNLRU5fQklUU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9TVEFUVVMzX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGMKKyNkZWZpbmUgbW1TRE1BMF9TVEFUVVMzX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEhZU0lDQUxfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRkCisjZGVmaW5lIG1tU0RNQTBfUEhZU0lDQUxfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BIWVNJQ0FMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZQorI2RlZmluZSBtbVNETUEwX1BIWVNJQ0FMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QSEFTRTJfUVVBTlRVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGYKKyNkZWZpbmUgbW1TRE1BMF9QSEFTRTJfUVVBTlRVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfRVJST1JfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUwCisjZGVmaW5lIG1tU0RNQTBfRVJST1JfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BVQl9EVU1NWV9SRUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MQorI2RlZmluZSBtbVNETUEwX1BVQl9EVU1NWV9SRUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QVUJfRFVNTVlfUkVHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTIKKyNkZWZpbmUgbW1TRE1BMF9QVUJfRFVNTVlfUkVHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUFVCX0RVTU1ZX1JFRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUzCisjZGVmaW5lIG1tU0RNQTBfUFVCX0RVTU1ZX1JFRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BVQl9EVU1NWV9SRUczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBtbVNETUEwX1BVQl9EVU1NWV9SRUczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9GMzJfQ09VTlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgbW1TRE1BMF9GMzJfQ09VTlRFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfVU5CUkVBS0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIG1tU0RNQTBfVU5CUkVBS0FCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NworI2RlZmluZSBtbVNETUEwX1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QRVJGQ09VTlRFUjBfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTgKKyNkZWZpbmUgbW1TRE1BMF9QRVJGQ09VTlRFUjBfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEVSRkNPVU5URVIxX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU5CisjZGVmaW5lIG1tU0RNQTBfUEVSRkNPVU5URVIxX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YQorI2RlZmluZSBtbVNETUEwX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9DUkRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWIKKyNkZWZpbmUgbW1TRE1BMF9DUkRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR1BVX0lPVl9WSU9MQVRJT05fTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVkCisjZGVmaW5lIG1tU0RNQTBfR1BVX0lPVl9WSU9MQVRJT05fTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1VMVl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZQorI2RlZmluZSBtbVNETUEwX1VMVl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9FQV9EQklUX0FERFJfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAKKyNkZWZpbmUgbW1TRE1BMF9FQV9EQklUX0FERFJfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfRUFfREJJVF9BRERSX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxCisjZGVmaW5lIG1tU0RNQTBfRUFfREJJVF9BRERSX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MgorI2RlZmluZSBtbVNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgxCisjZGVmaW5lIG1tU0RNQTBfR0ZYX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MgorI2RlZmluZSBtbVNETUEwX0dGWF9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODMKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg0CisjZGVmaW5lIG1tU0RNQTBfR0ZYX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NQorI2RlZmluZSBtbVNETUEwX0dGWF9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODYKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg3CisjZGVmaW5lIG1tU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OAorI2RlZmluZSBtbVNETUEwX0dGWF9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODkKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhhCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YgorI2RlZmluZSBtbVNETUEwX0dGWF9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGMKKyNkZWZpbmUgbW1TRE1BMF9HRlhfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhkCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZQorI2RlZmluZSBtbVNETUEwX0dGWF9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGYKKyNkZWZpbmUgbW1TRE1BMF9HRlhfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MQorI2RlZmluZSBtbVNETUEwX0dGWF9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTIKKyNkZWZpbmUgbW1TRE1BMF9HRlhfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0NPTlRFWFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkzCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0NPTlRFWFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhOAorI2RlZmluZSBtbVNETUEwX0dGWF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTkKKyNkZWZpbmUgbW1TRE1BMF9HRlhfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFhCisjZGVmaW5lIG1tU0RNQTBfR0ZYX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYgorI2RlZmluZSBtbVNETUEwX0dGWF9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWMKKyNkZWZpbmUgbW1TRE1BMF9HRlhfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFkCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZgorI2RlZmluZSBtbVNETUEwX0dGWF9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIxCisjZGVmaW5lIG1tU0RNQTBfR0ZYX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMgorI2RlZmluZSBtbVNETUEwX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjMKKyNkZWZpbmUgbW1TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI0CisjZGVmaW5lIG1tU0RNQTBfR0ZYX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNQorI2RlZmluZSBtbVNETUEwX0dGWF9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMxCisjZGVmaW5lIG1tU0RNQTBfR0ZYX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMgorI2RlZmluZSBtbVNETUEwX0dGWF9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzMKKyNkZWZpbmUgbW1TRE1BMF9HRlhfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM0CisjZGVmaW5lIG1tU0RNQTBfR0ZYX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNQorI2RlZmluZSBtbVNETUEwX0dGWF9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzYKKyNkZWZpbmUgbW1TRE1BMF9HRlhfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfR0ZYX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM3CisjZGVmaW5lIG1tU0RNQTBfR0ZYX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX0dGWF9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjOAorI2RlZmluZSBtbVNETUEwX0dGWF9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9HRlhfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzkKKyNkZWZpbmUgbW1TRE1BMF9HRlhfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ4CisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkOQorI2RlZmluZSBtbVNETUEwX1BBR0VfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGEKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYworI2RlZmluZSBtbVNETUEwX1BBR0VfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGQKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRlCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZgorI2RlZmluZSBtbVNETUEwX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUxCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMgorI2RlZmluZSBtbVNETUEwX1BBR0VfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTMKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU0CisjZGVmaW5lIG1tU0RNQTBfUEFHRV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNQorI2RlZmluZSBtbVNETUEwX1BBR0VfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTYKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU3CisjZGVmaW5lIG1tU0RNQTBfUEFHRV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlOAorI2RlZmluZSBtbVNETUEwX1BBR0VfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTkKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVhCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMAorI2RlZmluZSBtbVNETUEwX1BBR0VfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDEKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAyCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMworI2RlZmluZSBtbVNETUEwX1BBR0VfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDQKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA1CisjZGVmaW5lIG1tU0RNQTBfUEFHRV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNworI2RlZmluZSBtbVNETUEwX1BBR0VfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDgKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA5CisjZGVmaW5lIG1tU0RNQTBfUEFHRV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYQorI2RlZmluZSBtbVNETUEwX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGIKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBjCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwZAorI2RlZmluZSBtbVNETUEwX1BBR0VfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTgKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE5CisjZGVmaW5lIG1tU0RNQTBfUEFHRV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYQorI2RlZmluZSBtbVNETUEwX1BBR0VfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWIKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFjCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZAorI2RlZmluZSBtbVNETUEwX1BBR0VfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWUKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFmCisjZGVmaW5lIG1tU0RNQTBfUEFHRV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1BBR0VfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyMAorI2RlZmluZSBtbVNETUEwX1BBR0VfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjEKKyNkZWZpbmUgbW1TRE1BMF9QQUdFX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMQorI2RlZmluZSBtbVNETUEwX1JMQzBfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzIKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMzCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNAorI2RlZmluZSBtbVNETUEwX1JMQzBfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzUKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM2CisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNworI2RlZmluZSBtbVNETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzgKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM5CisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYQorI2RlZmluZSBtbVNETUEwX1JMQzBfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2IKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNjCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZAorI2RlZmluZSBtbVNETUEwX1JMQzBfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2UKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNmCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MAorI2RlZmluZSBtbVNETUEwX1JMQzBfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDEKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQyCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1OAorI2RlZmluZSBtbVNETUEwX1JMQzBfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTkKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVhCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1YgorI2RlZmluZSBtbVNETUEwX1JMQzBfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWMKKyNkZWZpbmUgbW1TRE1BMF9STEMwX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVkCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1ZgorI2RlZmluZSBtbVNETUEwX1JMQzBfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYxCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MgorI2RlZmluZSBtbVNETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjMKKyNkZWZpbmUgbW1TRE1BMF9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY0CisjZGVmaW5lIG1tU0RNQTBfUkxDMF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2NQorI2RlZmluZSBtbVNETUEwX1JMQzBfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcxCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MgorI2RlZmluZSBtbVNETUEwX1JMQzBfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzMKKyNkZWZpbmUgbW1TRE1BMF9STEMwX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc0CisjZGVmaW5lIG1tU0RNQTBfUkxDMF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NQorI2RlZmluZSBtbVNETUEwX1JMQzBfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzYKKyNkZWZpbmUgbW1TRE1BMF9STEMwX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc3CisjZGVmaW5lIG1tU0RNQTBfUkxDMF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzBfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3OAorI2RlZmluZSBtbVNETUEwX1JMQzBfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMwX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzkKKyNkZWZpbmUgbW1TRE1BMF9STEMwX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg4CisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4OQorI2RlZmluZSBtbVNETUEwX1JMQzFfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGEKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThiCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YworI2RlZmluZSBtbVNETUEwX1JMQzFfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGQKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThlCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZgorI2RlZmluZSBtbVNETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkxCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MgorI2RlZmluZSBtbVNETUEwX1JMQzFfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTMKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk0CisjZGVmaW5lIG1tU0RNQTBfUkxDMV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NQorI2RlZmluZSBtbVNETUEwX1JMQzFfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTYKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk3CisjZGVmaW5lIG1tU0RNQTBfUkxDMV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5OAorI2RlZmluZSBtbVNETUEwX1JMQzFfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTkKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTlhCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMAorI2RlZmluZSBtbVNETUEwX1JMQzFfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjEKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIyCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMworI2RlZmluZSBtbVNETUEwX1JMQzFfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjQKKyNkZWZpbmUgbW1TRE1BMF9STEMxX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI1CisjZGVmaW5lIG1tU0RNQTBfUkxDMV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNworI2RlZmluZSBtbVNETUEwX1JMQzFfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjgKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI5CisjZGVmaW5lIG1tU0RNQTBfUkxDMV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiYQorI2RlZmluZSBtbVNETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmIKKyNkZWZpbmUgbW1TRE1BMF9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJjCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiZAorI2RlZmluZSBtbVNETUEwX1JMQzFfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzgKKyNkZWZpbmUgbW1TRE1BMF9STEMxX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWM5CisjZGVmaW5lIG1tU0RNQTBfUkxDMV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjYQorI2RlZmluZSBtbVNETUEwX1JMQzFfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2IKKyNkZWZpbmUgbW1TRE1BMF9STEMxX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNjCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjZAorI2RlZmluZSBtbVNETUEwX1JMQzFfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2UKKyNkZWZpbmUgbW1TRE1BMF9STEMxX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNmCisjZGVmaW5lIG1tU0RNQTBfUkxDMV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzFfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkMAorI2RlZmluZSBtbVNETUEwX1JMQzFfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMxX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZDEKKyNkZWZpbmUgbW1TRE1BMF9STEMxX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMQorI2RlZmluZSBtbVNETUEwX1JMQzJfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTIKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUzCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNAorI2RlZmluZSBtbVNETUEwX1JMQzJfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTUKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU2CisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNworI2RlZmluZSBtbVNETUEwX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTgKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU5CisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYQorI2RlZmluZSBtbVNETUEwX1JMQzJfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWIKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVjCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlZAorI2RlZmluZSBtbVNETUEwX1JMQzJfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWUKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVmCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMAorI2RlZmluZSBtbVNETUEwX1JMQzJfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjEKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYyCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwOAorI2RlZmluZSBtbVNETUEwX1JMQzJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDkKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBhCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYgorI2RlZmluZSBtbVNETUEwX1JMQzJfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGMKKyNkZWZpbmUgbW1TRE1BMF9STEMyX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBkCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwZgorI2RlZmluZSBtbVNETUEwX1JMQzJfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjExCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMgorI2RlZmluZSBtbVNETUEwX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTMKKyNkZWZpbmUgbW1TRE1BMF9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE0CisjZGVmaW5lIG1tU0RNQTBfUkxDMl9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxNQorI2RlZmluZSBtbVNETUEwX1JMQzJfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIxCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMgorI2RlZmluZSBtbVNETUEwX1JMQzJfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjMKKyNkZWZpbmUgbW1TRE1BMF9STEMyX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI0CisjZGVmaW5lIG1tU0RNQTBfUkxDMl9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNQorI2RlZmluZSBtbVNETUEwX1JMQzJfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjYKKyNkZWZpbmUgbW1TRE1BMF9STEMyX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDMl9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI3CisjZGVmaW5lIG1tU0RNQTBfUkxDMl9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzJfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyOAorI2RlZmluZSBtbVNETUEwX1JMQzJfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMyX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjkKKyNkZWZpbmUgbW1TRE1BMF9STEMyX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM4CisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzOQorI2RlZmluZSBtbVNETUEwX1JMQzNfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2EKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNiCisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYworI2RlZmluZSBtbVNETUEwX1JMQzNfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2QKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNlCisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZgorI2RlZmluZSBtbVNETUEwX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQxCisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MgorI2RlZmluZSBtbVNETUEwX1JMQzNfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDMKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ0CisjZGVmaW5lIG1tU0RNQTBfUkxDM19JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NQorI2RlZmluZSBtbVNETUEwX1JMQzNfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDYKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ3CisjZGVmaW5lIG1tU0RNQTBfUkxDM19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0OAorI2RlZmluZSBtbVNETUEwX1JMQzNfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDkKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjRhCisjZGVmaW5lIG1tU0RNQTBfUkxDM19ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MAorI2RlZmluZSBtbVNETUEwX1JMQzNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjEKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYyCisjZGVmaW5lIG1tU0RNQTBfUkxDM19XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MworI2RlZmluZSBtbVNETUEwX1JMQzNfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjQKKyNkZWZpbmUgbW1TRE1BMF9STEMzX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY1CisjZGVmaW5lIG1tU0RNQTBfUkxDM19DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NworI2RlZmluZSBtbVNETUEwX1JMQzNfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjgKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY5CisjZGVmaW5lIG1tU0RNQTBfUkxDM19EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YQorI2RlZmluZSBtbVNETUEwX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmIKKyNkZWZpbmUgbW1TRE1BMF9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZjCisjZGVmaW5lIG1tU0RNQTBfUkxDM19SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2ZAorI2RlZmluZSBtbVNETUEwX1JMQzNfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzgKKyNkZWZpbmUgbW1TRE1BMF9STEMzX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc5CisjZGVmaW5lIG1tU0RNQTBfUkxDM19NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YQorI2RlZmluZSBtbVNETUEwX1JMQzNfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2IKKyNkZWZpbmUgbW1TRE1BMF9STEMzX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdjCisjZGVmaW5lIG1tU0RNQTBfUkxDM19NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZAorI2RlZmluZSBtbVNETUEwX1JMQzNfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2UKKyNkZWZpbmUgbW1TRE1BMF9STEMzX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDM19NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdmCisjZGVmaW5lIG1tU0RNQTBfUkxDM19NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzNfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MAorI2RlZmluZSBtbVNETUEwX1JMQzNfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEMzX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODEKKyNkZWZpbmUgbW1TRE1BMF9STEMzX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MQorI2RlZmluZSBtbVNETUEwX1JMQzRfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTIKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkzCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NAorI2RlZmluZSBtbVNETUEwX1JMQzRfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTUKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk2CisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NworI2RlZmluZSBtbVNETUEwX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTgKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk5CisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YQorI2RlZmluZSBtbVNETUEwX1JMQzRfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWIKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjljCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZAorI2RlZmluZSBtbVNETUEwX1JMQzRfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWUKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlmCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMAorI2RlZmluZSBtbVNETUEwX1JMQzRfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTEKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEyCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiOAorI2RlZmluZSBtbVNETUEwX1JMQzRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjkKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJhCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYgorI2RlZmluZSBtbVNETUEwX1JMQzRfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmMKKyNkZWZpbmUgbW1TRE1BMF9STEM0X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJkCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiZgorI2RlZmluZSBtbVNETUEwX1JMQzRfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMxCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMgorI2RlZmluZSBtbVNETUEwX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzMKKyNkZWZpbmUgbW1TRE1BMF9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM0CisjZGVmaW5lIG1tU0RNQTBfUkxDNF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNQorI2RlZmluZSBtbVNETUEwX1JMQzRfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQxCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMgorI2RlZmluZSBtbVNETUEwX1JMQzRfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDMKKyNkZWZpbmUgbW1TRE1BMF9STEM0X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ0CisjZGVmaW5lIG1tU0RNQTBfUkxDNF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNQorI2RlZmluZSBtbVNETUEwX1JMQzRfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDYKKyNkZWZpbmUgbW1TRE1BMF9STEM0X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ3CisjZGVmaW5lIG1tU0RNQTBfUkxDNF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzRfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkOAorI2RlZmluZSBtbVNETUEwX1JMQzRfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM0X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDkKKyNkZWZpbmUgbW1TRE1BMF9STEM0X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU4CisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlOQorI2RlZmluZSBtbVNETUEwX1JMQzVfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWEKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmViCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYworI2RlZmluZSBtbVNETUEwX1JMQzVfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWQKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVlCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZgorI2RlZmluZSBtbVNETUEwX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYxCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMgorI2RlZmluZSBtbVNETUEwX1JMQzVfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjMKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY0CisjZGVmaW5lIG1tU0RNQTBfUkxDNV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNQorI2RlZmluZSBtbVNETUEwX1JMQzVfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjYKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY3CisjZGVmaW5lIG1tU0RNQTBfUkxDNV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmOAorI2RlZmluZSBtbVNETUEwX1JMQzVfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjkKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmZhCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMAorI2RlZmluZSBtbVNETUEwX1JMQzVfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTEKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEyCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMworI2RlZmluZSBtbVNETUEwX1JMQzVfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTQKKyNkZWZpbmUgbW1TRE1BMF9STEM1X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE1CisjZGVmaW5lIG1tU0RNQTBfUkxDNV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNworI2RlZmluZSBtbVNETUEwX1JMQzVfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTgKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE5CisjZGVmaW5lIG1tU0RNQTBfUkxDNV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYQorI2RlZmluZSBtbVNETUEwX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWIKKyNkZWZpbmUgbW1TRE1BMF9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFjCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxZAorI2RlZmluZSBtbVNETUEwX1JMQzVfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjgKKyNkZWZpbmUgbW1TRE1BMF9STEM1X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI5CisjZGVmaW5lIG1tU0RNQTBfUkxDNV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyYQorI2RlZmluZSBtbVNETUEwX1JMQzVfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmIKKyNkZWZpbmUgbW1TRE1BMF9STEM1X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJjCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZAorI2RlZmluZSBtbVNETUEwX1JMQzVfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmUKKyNkZWZpbmUgbW1TRE1BMF9STEM1X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJmCisjZGVmaW5lIG1tU0RNQTBfUkxDNV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzVfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMzMAorI2RlZmluZSBtbVNETUEwX1JMQzVfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM1X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMzEKKyNkZWZpbmUgbW1TRE1BMF9STEM1X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MQorI2RlZmluZSBtbVNETUEwX1JMQzZfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDIKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQzCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NAorI2RlZmluZSBtbVNETUEwX1JMQzZfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDUKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ2CisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NworI2RlZmluZSBtbVNETUEwX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDgKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ5CisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0YQorI2RlZmluZSBtbVNETUEwX1JMQzZfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGIKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRjCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0ZAorI2RlZmluZSBtbVNETUEwX1JMQzZfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGUKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRmCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MAorI2RlZmluZSBtbVNETUEwX1JMQzZfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTEKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzUyCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2OAorI2RlZmluZSBtbVNETUEwX1JMQzZfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjkKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZhCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2YgorI2RlZmluZSBtbVNETUEwX1JMQzZfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmMKKyNkZWZpbmUgbW1TRE1BMF9STEM2X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZkCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2ZgorI2RlZmluZSBtbVNETUEwX1JMQzZfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcxCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MgorI2RlZmluZSBtbVNETUEwX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzMKKyNkZWZpbmUgbW1TRE1BMF9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzc0CisjZGVmaW5lIG1tU0RNQTBfUkxDNl9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3NQorI2RlZmluZSBtbVNETUEwX1JMQzZfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgxCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MgorI2RlZmluZSBtbVNETUEwX1JMQzZfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODMKKyNkZWZpbmUgbW1TRE1BMF9STEM2X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg0CisjZGVmaW5lIG1tU0RNQTBfUkxDNl9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NQorI2RlZmluZSBtbVNETUEwX1JMQzZfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODYKKyNkZWZpbmUgbW1TRE1BMF9STEM2X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDNl9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg3CisjZGVmaW5lIG1tU0RNQTBfUkxDNl9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzZfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4OAorI2RlZmluZSBtbVNETUEwX1JMQzZfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM2X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODkKKyNkZWZpbmUgbW1TRE1BMF9STEM2X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzk4CisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5OQorI2RlZmluZSBtbVNETUEwX1JMQzdfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWEKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzliCisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5YworI2RlZmluZSBtbVNETUEwX1JMQzdfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWQKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzllCisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5ZgorI2RlZmluZSBtbVNETUEwX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ExCisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMgorI2RlZmluZSBtbVNETUEwX1JMQzdfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTMKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E0CisjZGVmaW5lIG1tU0RNQTBfUkxDN19JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNQorI2RlZmluZSBtbVNETUEwX1JMQzdfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTYKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E3CisjZGVmaW5lIG1tU0RNQTBfUkxDN19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhOAorI2RlZmluZSBtbVNETUEwX1JMQzdfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTkKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2FhCisjZGVmaW5lIG1tU0RNQTBfUkxDN19ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMAorI2RlZmluZSBtbVNETUEwX1JMQzdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzEKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MyCisjZGVmaW5lIG1tU0RNQTBfUkxDN19XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMworI2RlZmluZSBtbVNETUEwX1JMQzdfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzQKKyNkZWZpbmUgbW1TRE1BMF9STEM3X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M1CisjZGVmaW5lIG1tU0RNQTBfUkxDN19DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNworI2RlZmluZSBtbVNETUEwX1JMQzdfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzgKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M5CisjZGVmaW5lIG1tU0RNQTBfUkxDN19EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjYQorI2RlZmluZSBtbVNETUEwX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2IKKyNkZWZpbmUgbW1TRE1BMF9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NjCisjZGVmaW5lIG1tU0RNQTBfUkxDN19SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjZAorI2RlZmluZSBtbVNETUEwX1JMQzdfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDgKKyNkZWZpbmUgbW1TRE1BMF9STEM3X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q5CisjZGVmaW5lIG1tU0RNQTBfUkxDN19NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYQorI2RlZmluZSBtbVNETUEwX1JMQzdfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGIKKyNkZWZpbmUgbW1TRE1BMF9STEM3X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RjCisjZGVmaW5lIG1tU0RNQTBfUkxDN19NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZAorI2RlZmluZSBtbVNETUEwX1JMQzdfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGUKKyNkZWZpbmUgbW1TRE1BMF9STEM3X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTBfUkxDN19NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RmCisjZGVmaW5lIG1tU0RNQTBfUkxDN19NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUEwX1JMQzdfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlMAorI2RlZmluZSBtbVNETUEwX1JMQzdfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMF9STEM3X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTEKKyNkZWZpbmUgbW1TRE1BMF9STEM3X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWEwL3NkbWEwXzRfMl8yX3NoX21hc2suaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMC9zZG1hMF80XzJfMl9zaF9tYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZlYjY3YgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMC9zZG1hMF80XzJfMl9zaF9tYXNrLmgKQEAgLTAsMCArMSwzMDAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9zZG1hMF80XzJfMl9TSF9NQVNLX0hFQURFUgorI2RlZmluZSBfc2RtYTBfNF8yXzJfU0hfTUFTS19IRUFERVIKKworCisvLyBhZGRyZXNzQmxvY2s6IHNkbWEwX3NkbWEwZGVjCisvL1NETUEwX1VDT0RFX0FERFIKKyNkZWZpbmUgU0RNQTBfVUNPREVfQUREUl9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1VDT0RFX0FERFJfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL1NETUEwX1VDT0RFX0RBVEEKKyNkZWZpbmUgU0RNQTBfVUNPREVfREFUQV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1VDT0RFX0RBVEFfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1ZNX0NOVEwKKyNkZWZpbmUgU0RNQTBfVk1fQ05UTF9fQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1ZNX0NOVExfX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1NETUEwX1ZNX0NUWF9MTworI2RlZmluZSBTRE1BMF9WTV9DVFhfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfVk1fQ1RYX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfVk1fQ1RYX0hJCisjZGVmaW5lIFNETUEwX1ZNX0NUWF9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9WTV9DVFhfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9BQ1RJVkVfRkNOX0lECisjZGVmaW5lIFNETUEwX0FDVElWRV9GQ05fSURfX1ZGSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9BQ1RJVkVfRkNOX0lEX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfQUNUSVZFX0ZDTl9JRF9fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMF9BQ1RJVkVfRkNOX0lEX19WRklEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BMF9BQ1RJVkVfRkNOX0lEX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkYwTAorI2RlZmluZSBTRE1BMF9BQ1RJVkVfRkNOX0lEX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMF9WTV9DVFhfQ05UTAorI2RlZmluZSBTRE1BMF9WTV9DVFhfQ05UTF9fUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfVk1fQ1RYX0NOVExfX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1ZNX0NUWF9DTlRMX19QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1ZNX0NUWF9DTlRMX19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL1NETUEwX1ZJUlRfUkVTRVRfUkVRCisjZGVmaW5lIFNETUEwX1ZJUlRfUkVTRVRfUkVRX19WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9WSVJUX1JFU0VUX1JFUV9fUEZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEwX1ZJUlRfUkVTRVRfUkVRX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUEwX1ZJUlRfUkVTRVRfUkVRX19QRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEwX1ZGX0VOQUJMRQorI2RlZmluZSBTRE1BMF9WRl9FTkFCTEVfX1ZGX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfVkZfRU5BQkxFX19WRl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTAKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMF9HRlhfUkJfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTBfR0ZYX1JCX0JBU0VfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMF9HRlhfUkJfUlBUUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTBfR0ZYX1JCX1dQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9XUFRSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTBfR0ZYX1JCX1JQVFJfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9SUFRSX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMF9HRlhfSUJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTBfR0ZYX0lCX1JQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9JQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMF9HRlhfSUJfQkFTRV9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTBfR0ZYX0lCX0JBU0VfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9JQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMF9HRlhfU0tJUF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9DT05URVhUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTBfR0ZYX0RPT1JCRUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMF9HRlhfQ09OVEVYVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9CQVNFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9SUFRSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9XUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9XUFRSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9SUFRSX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9SQl9SUFRSX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9JQl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9JQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9JQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9JQl9CQVNFX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9JQl9CQVNFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9JQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9TS0lQX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9DT05URVhUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9ET09SQkVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEwX0dGWF9DT05URVhUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTEKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEwX0dGWF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfRE9PUkJFTExfTE9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMV9fU0RNQTBfR0ZYX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEwX0dGWF9ET09SQkVMTF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfQ1NBX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMV9fU0RNQTBfR0ZYX0NTQV9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTFfX1ZPSURfUkVHMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfSUJfU1VCX1JFTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMV9fU0RNQTBfR0ZYX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfRFVNTVlfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEwX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMV9fU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfUkJfQVFMX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEwX0dGWF9NSU5PUl9QVFJfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMV9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfRE9PUkJFTExfTE9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfRE9PUkJFTExfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfQ1NBX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfQ1NBX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19WT0lEX1JFRzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfSUJfU1VCX1JFTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfRFVNTVlfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfUkJfQVFMX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMF9HRlhfTUlOT1JfUFRSX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUxX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZDMDAwMDBMCisvL1NETUEwX0NPTlRFWFRfUkVHX1RZUEUyCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMF9HRlhfTUlEQ01EX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTBfR0ZYX01JRENNRF9EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMF9HRlhfTUlEQ01EX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTBfR0ZYX01JRENNRF9EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMF9HRlhfTUlEQ01EX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTBfR0ZYX01JRENNRF9EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMF9HRlhfTUlEQ01EX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9DT05URVhUX1JFR19UWVBFMl9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEwX0dGWF9NSURDTURfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkMwMEwKKy8vU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTMKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTNfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfUkVHX1RZUEUzX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BVQl9SRUdfVFlQRTAKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfVUNPREVfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTBfX1NETUEwX1VDT0RFX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUwX19SRVNFUlZFRDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfVk1fQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTBfX1NETUEwX1ZNX0NUWF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUwX19TRE1BMF9WTV9DVFhfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQUNUSVZFX0ZDTl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTBfX1NETUEwX1ZNX0NUWF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUwX19TRE1BMF9WSVJUX1JFU0VUX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTBfX1NETUEwX0NPTlRFWFRfUkVHX1RZUEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUwX19TRE1BMF9DT05URVhUX1JFR19UWVBFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTBfX1NETUEwX0NPTlRFWFRfUkVHX1RZUEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUwX19TRE1BMF9QVUJfUkVHX1RZUEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfUFVCX1JFR19UWVBFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUwX19TRE1BMF9QVUJfUkVHX1RZUEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTBfX1NETUEwX1BVQl9SRUdfVFlQRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfTU1IVUJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUwX19SRVNFUlZFRF9GT1JfUFNQU01VX0FDQ0VTU19PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTBfX1NETUEwX0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfUE9XRVJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUwX19TRE1BMF9DTEtfQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTBfX1NETUEwX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ0hJQ0tFTl9CSVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUwX19TRE1BMF9HQl9BRERSX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTBfX1NETUEwX0dCX0FERFJfQ09ORklHX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfVUNPREVfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfVUNPREVfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfVk1fQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfVk1fQ1RYX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfVk1fQ1RYX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQUNUSVZFX0ZDTl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfVk1fQ1RYX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfVklSVF9SRVNFVF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ09OVEVYVF9SRUdfVFlQRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfUFVCX1JFR19UWVBFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfUFVCX1JFR19UWVBFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfUFVCX1JFR19UWVBFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfUFVCX1JFR19UWVBFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfTU1IVUJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fUkVTRVJWRURfRk9SX1BTUFNNVV9BQ0NFU1NfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUUwMDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfUE9XRVJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ0xLX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfQ0hJQ0tFTl9CSVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfR0JfQUREUl9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMF9fU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTBfUFVCX1JFR19UWVBFMQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9SQl9SUFRSX0ZFVENIX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUEwX1JCX1JQVFJfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9JQl9PRkZTRVRfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfUFJPR1JBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUEwX1NUQVRVU19SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9TVEFUVVMxX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfUkRfQlVSU1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUEwX0hCTV9QQUdFX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9VQ09ERV9DSEVDS1NVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfRjMyX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUEwX0ZSRUVaRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9QSEFTRTBfUVVBTlRVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfUEhBU0UxX1FVQU5UVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUFfUE9XRVJfR0FUSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUEwX0VEQ19DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfQkFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUEwX1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfRURDX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9FRENfQ09VTlRFUl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUEwX1NUQVRVUzJfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfQVRPTUlDX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9BVE9NSUNfUFJFT1BfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUEwX0FUT01JQ19QUkVPUF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfVVRDTDFfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9VVENMMV9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTFfX1NETUEwX1VUQ0wxX1JEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMV9fU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9SQl9SUFRSX0ZFVENIX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9SQl9SUFRSX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9JQl9PRkZTRVRfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9QUk9HUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9TVEFUVVNfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9TVEFUVVMxX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9SRF9CVVJTVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9IQk1fUEFHRV9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9VQ09ERV9DSEVDS1NVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9GMzJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9GUkVFWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9QSEFTRTBfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9QSEFTRTFfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BX1BPV0VSX0dBVElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9FRENfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9CQV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9FRENfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9FRENfQ09VTlRFUl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9TVEFUVVMyX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9BVE9NSUNfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9BVE9NSUNfUFJFT1BfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9BVE9NSUNfUFJFT1BfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9VVENMMV9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9VVENMMV9XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9VVENMMV9SRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUxX19TRE1BMF9VVENMMV9XUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMF9QVUJfUkVHX1RZUEUyCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX0lOVjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19TRE1BMF9VVENMMV9JTlYxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfVVRDTDFfSU5WMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX1JEX1hOQUNLMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19TRE1BMF9VVENMMV9SRF9YTkFDSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfVVRDTDFfV1JfWE5BQ0swX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX1dSX1hOQUNLMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19TRE1BMF9VVENMMV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfVVRDTDFfUEFHRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BPV0VSX0NOVExfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19TRE1BMF9SRUxBWF9PUkRFUklOR19MVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfQ0hJQ0tFTl9CSVRTXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1NUQVRVUzNfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19TRE1BMF9QSFlTSUNBTF9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfUEhZU0lDQUxfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BIQVNFMl9RVUFOVFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19TRE1BMF9FUlJPUl9MT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BVQl9EVU1NWV9SRUcwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfUFVCX0RVTU1ZX1JFRzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19TRE1BMF9QVUJfRFVNTVlfUkVHMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BVQl9EVU1NWV9SRUczX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfRjMyX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19TRE1BMF9VTkJSRUFLQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BFUkZNT05fQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfUEVSRkNPVU5URVIwX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19TRE1BMF9QRVJGQ09VTlRFUjFfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfQ1JEX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRDI4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFMl9fU0RNQTBfVUxWX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX0lOVjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX0lOVjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX0lOVjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX1JEX1hOQUNLMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX1JEX1hOQUNLMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX1dSX1hOQUNLMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX1dSX1hOQUNLMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VUQ0wxX1BBR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BPV0VSX0NOVExfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1JFTEFYX09SREVSSU5HX0xVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX0NISUNLRU5fQklUU18yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1NUQVRVUzNfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BIWVNJQ0FMX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BIWVNJQ0FMX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BIQVNFMl9RVUFOVFVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX0VSUk9SX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BVQl9EVU1NWV9SRUcwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BVQl9EVU1NWV9SRUcxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BVQl9EVU1NWV9SRUcyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BVQl9EVU1NWV9SRUczX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX0YzMl9DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VOQlJFQUtBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BFUkZNT05fQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BFUkZDT1VOVEVSMF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BFUkZDT1VOVEVSMV9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX0NSRF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEMjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1NETUEwX1VMVl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEwX1BVQl9SRUdfVFlQRTMKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFM19fU0RNQTBfRUFfREJJVF9BRERSX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTNfX1NETUEwX0VBX0RCSVRfQUREUl9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9QVUJfUkVHX1RZUEUzX19TRE1BMF9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUFVCX1JFR19UWVBFM19fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTNfX1NETUEwX0VBX0RCSVRfQUREUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTNfX1NETUEwX0VBX0RCSVRfQUREUl9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTNfX1NETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEwX1BVQl9SRUdfVFlQRTNfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRjhMCisvL1NETUEwX01NSFVCX0NOVEwKKyNkZWZpbmUgU0RNQTBfTU1IVUJfQ05UTF9fVU5JVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX01NSFVCX0NOVExfX1VOSVRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL1NETUEwX0NPTlRFWFRfR1JPVVBfQk9VTkRBUlkKKyNkZWZpbmUgU0RNQTBfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BPV0VSX0NOVEwKKyNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9fUEdfQ05UTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BPV0VSX0NOVExfX0VYVF9QR19QT1dFUl9PTl9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19FWFRfUEdfUE9XRVJfT0ZGX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9fT05fT0ZGX0NPTkRJVElPTl9IT0xEX1RJTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEwX1BPV0VSX0NOVExfX01FTV9QT1dFUl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfTFNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEwX1BPV0VSX0NOVExfX01FTV9QT1dFUl9TRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9fT05fT0ZGX1NUQVRVU19EVVJBVElPTl9USU1FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19QR19DTlRMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19FWFRfUEdfUE9XRVJfT05fUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19FWFRfUEdfUE9XRVJfT0ZGX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19PTl9PRkZfQ09ORElUSU9OX0hPTERfVElNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEY4TAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfTFNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfRFNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfU0RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGMDAwTAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX19PTl9PRkZfU1RBVFVTX0RVUkFUSU9OX1RJTUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDMDAwMDAwTAorLy9TRE1BMF9DTEtfQ1RSTAorI2RlZmluZSBTRE1BMF9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX0NMS19DVFJMX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BMF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEwX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRjAwMEwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTBfQ05UTAorI2RlZmluZSBTRE1BMF9DTlRMX19UUkFQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfQ05UTF9fVVRDX0wxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX0NOVExfX1NFTV9XQUlUX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9DTlRMX19EQVRBX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfQ05UTF9fRkVOQ0VfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX0NOVExfX01JRENNRF9QUkVFTVBUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9DTlRMX19NSURDTURfV09STERTV0lUQ0hfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEwX0NOVExfX0FVVE9fQ1RYU1dfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTBfQ05UTF9fQ1RYRU1QVFlfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMF9DTlRMX19GUk9aRU5fSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEwX0NOVExfX0lCX1BSRUVNUFRfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTBfQ05UTF9fVFJBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fVVRDX0wxX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fU0VNX1dBSVRfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fREFUQV9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fRkVOQ0VfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fTUlEQ01EX1BSRUVNUFRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fTUlEQ01EX1dPUkxEU1dJVENIX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fQVVUT19DVFhTV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fQ1RYRU1QVFlfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fRlJPWkVOX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfQ05UTF9fSUJfUFJFRU1QVF9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTBfQ0hJQ0tFTl9CSVRTCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fQ09QWV9FRkZJQ0lFTkNZX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9DSElDS0VOX0JJVFNfX1NUQUxMX09OX1RSQU5TX0ZVTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTBfQ0hJQ0tFTl9CSVRTX19TVEFMTF9PTl9OT19GUkVFX0RBVEFfQlVGRkVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX1dBSVRfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTBfQ0hJQ0tFTl9CSVRTX19DT1BZX09WRVJMQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMF9DSElDS0VOX0JJVFNfX1JBV19DSEVDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fU1JCTV9QT0xMX1JFVFJZSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTBfQ0hJQ0tFTl9CSVRTX19DR19TVEFUVVNfT1VUUFVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9DSElDS0VOX0JJVFNfX1RJTUVfQkFTRURfUU9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fQ0VfQUZJRk9fV0FURVJNQVJLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTBfQ0hJQ0tFTl9CSVRTX19DRV9ERklGT19XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMF9DSElDS0VOX0JJVFNfX0NFX0xGSUZPX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fQ09QWV9FRkZJQ0lFTkNZX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fU1RBTExfT05fVFJBTlNfRlVMTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fU1RBTExfT05fTk9fRlJFRV9EQVRBX0JVRkZFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfV0FJVF9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFDMDBMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fQ09QWV9PVkVSTEFQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fUkFXX0NIRUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fU1JCTV9QT0xMX1JFVFJZSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fQ0dfU1RBVFVTX09VVFBVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fVElNRV9CQVNFRF9RT1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fQ0VfQUZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fQ0VfREZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU19fQ0VfTEZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL1NETUEwX0dCX0FERFJfQ09ORklHCisjZGVmaW5lIFNETUEwX0dCX0FERFJfQ09ORklHX19OVU1fUElQRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HQl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfR0JfQUREUl9DT05GSUdfX0JBTktfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX0dCX0FERFJfQ09ORklHX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMF9HQl9BRERSX0NPTkZJR19fTlVNX1NIQURFUl9FTkdJTkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEwX0dCX0FERFJfQ09ORklHX19OVU1fUElQRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUEwX0dCX0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIFNETUEwX0dCX0FERFJfQ09ORklHX19CQU5LX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFNETUEwX0dCX0FERFJfQ09ORklHX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFNETUEwX0dCX0FERFJfQ09ORklHX19OVU1fU0hBREVSX0VOR0lORVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisvL1NETUEwX0dCX0FERFJfQ09ORklHX1JFQUQKKyNkZWZpbmUgU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1BJUEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dCX0FERFJfQ09ORklHX1JFQURfX1BJUEVfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMF9HQl9BRERSX0NPTkZJR19SRUFEX19CQU5LX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEwX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9TSEFERVJfRU5HSU5FU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1BJUEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRF9fUElQRV9JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRF9fQkFOS19JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1NIQURFUl9FTkdJTkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4MDAwMEwKKy8vU0RNQTBfUkJfUlBUUl9GRVRDSF9ISQorI2RlZmluZSBTRE1BMF9SQl9SUFRSX0ZFVENIX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkJfUlBUUl9GRVRDSF9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMCisjZGVmaW5lIFNETUEwX1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9fVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9SQl9SUFRSX0ZFVENICisjZGVmaW5lIFNETUEwX1JCX1JQVFJfRkVUQ0hfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9SQl9SUFRSX0ZFVENIX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMF9JQl9PRkZTRVRfRkVUQ0gKKyNkZWZpbmUgU0RNQTBfSUJfT0ZGU0VUX0ZFVENIX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0lCX09GRlNFVF9GRVRDSF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEwX1BST0dSQU0KKyNkZWZpbmUgU0RNQTBfUFJPR1JBTV9fU1RSRUFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BST0dSQU1fX1NUUkVBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1NUQVRVU19SRUcKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX1JFR19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9TVEFUVVNfUkVHX19SQl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUkJfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX1JCX0NNRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMF9TVEFUVVNfUkVHX19SQl9DTURfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSUJfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX0lCX0NNRF9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9TVEFUVVNfUkVHX19CTE9DS19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX0VYX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9TVEFUVVNfUkVHX19FWF9JRExFX1BPTExfVElNRVJfRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUEFDS0VUX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX01DX1dSX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMF9TVEFUVVNfUkVHX19TUkJNX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fQ09OVEVYVF9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUkJfTUNfUlJFUV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMF9TVEFUVVNfUkVHX19JQl9NQ19SUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX01DX1JEX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BMF9TVEFUVVNfUkVHX19NQ19SRF9SRVRfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX01DX1JEX05PX1BPTExfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUFJFVl9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BMF9TVEFUVVNfUkVHX19TRU1fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX1NFTV9SRVFfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fU0VNX1JFU1BfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMF9TVEFUVVNfUkVHX19JTlRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEwX1NUQVRVU19SRUdfX0lOVF9SRVFfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUkVHX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUkJfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUkJfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUkJfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUkJfQ01EX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSUJfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSUJfQ01EX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fQkxPQ0tfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fRVhfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fRVhfSURMRV9QT0xMX1RJTUVSX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUEFDS0VUX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fTUNfV1JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fU1JCTV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fQ09OVEVYVF9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUkJfTUNfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSUJfTUNfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fTUNfUkRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fTUNfUkRfUkVUX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fTUNfUkRfTk9fUE9MTF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fUFJFVl9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fU0VNX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fU0VNX1JFUV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fU0VNX1JFU1BfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSU5UX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfU1RBVFVTX1JFR19fSU5UX1JFUV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTBfU1RBVFVTMV9SRUcKKyNkZWZpbmUgU0RNQTBfU1RBVFVTMV9SRUdfX0NFX1dSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9XUl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9TVEFUVVMxX1JFR19fQ0VfU1BMSVRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfU1RBVFVTMV9SRUdfX0NFX1JSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9PVVRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMF9TVEFUVVMxX1JFR19fQ0VfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTBfU1RBVFVTMV9SRUdfX0NFX0RTVF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9TVEFUVVMxX1JFR19fQ0VfQUZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTBfU1RBVFVTMV9SRUdfX0NFX0lORk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9JTkZPMV9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMF9TVEFUVVMxX1JFR19fRVhfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTBfU1RBVFVTMV9SRUdfX0NFX1JEX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMF9TVEFUVVMxX1JFR19fQ0VfV1JfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9XUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9XUl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9TUExJVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9SUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9PVVRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9EU1RfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9BRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9JTkZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9JTkZPMV9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19FWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9SRF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEwX1NUQVRVUzFfUkVHX19DRV9XUl9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL1NETUEwX1JEX0JVUlNUX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkRfQlVSU1RfQ05UTF9fUkRfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JEX0JVUlNUX0NOVExfX0NNRF9CVUZGRVJfUkRfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9SRF9CVVJTVF9DTlRMX19SRF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBTRE1BMF9SRF9CVVJTVF9DTlRMX19DTURfQlVGRkVSX1JEX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9TRE1BMF9IQk1fUEFHRV9DT05GSUcKKyNkZWZpbmUgU0RNQTBfSEJNX1BBR0VfQ09ORklHX19QQUdFX1NJWkVfRVhQT05FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0hCTV9QQUdFX0NPTkZJR19fUEFHRV9TSVpFX0VYUE9ORU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL1NETUEwX1VDT0RFX0NIRUNLU1VNCisjZGVmaW5lIFNETUEwX1VDT0RFX0NIRUNLU1VNX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9VQ09ERV9DSEVDS1NVTV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9GMzJfQ05UTAorI2RlZmluZSBTRE1BMF9GMzJfQ05UTF9fSEFMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfRjMyX0NOVExfX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX0YzMl9DTlRMX19IQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX0YzMl9DTlRMX19TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL1NETUEwX0ZSRUVaRQorI2RlZmluZSBTRE1BMF9GUkVFWkVfX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfRlJFRVpFX19GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX0ZSRUVaRV9fRlJPWkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9GUkVFWkVfX0YzMl9GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTBfRlJFRVpFX19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfRlJFRVpFX19GUkVFWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfRlJFRVpFX19GUk9aRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTBfRlJFRVpFX19GMzJfRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vU0RNQTBfUEhBU0UwX1FVQU5UVU0KKyNkZWZpbmUgU0RNQTBfUEhBU0UwX1FVQU5UVU1fX1VOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BIQVNFMF9RVUFOVFVNX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9QSEFTRTBfUVVBTlRVTV9fUFJFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEwX1BIQVNFMF9RVUFOVFVNX19VTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUEwX1BIQVNFMF9RVUFOVFVNX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGMDBMCisjZGVmaW5lIFNETUEwX1BIQVNFMF9RVUFOVFVNX19QUkVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUEwX1BIQVNFMV9RVUFOVFVNCisjZGVmaW5lIFNETUEwX1BIQVNFMV9RVUFOVFVNX19VTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QSEFTRTFfUVVBTlRVTV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUEhBU0UxX1FVQU5UVU1fX1BSRUZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9QSEFTRTFfUVVBTlRVTV9fVU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BMF9QSEFTRTFfUVVBTlRVTV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRjAwTAorI2RlZmluZSBTRE1BMF9QSEFTRTFfUVVBTlRVTV9fUFJFRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BX1BPV0VSX0dBVElORworI2RlZmluZSBTRE1BX1BPV0VSX0dBVElOR19fU0RNQTBfUE9XRVJfT0ZGX0NPTkRJVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQV9QT1dFUl9HQVRJTkdfX1NETUEwX1BPV0VSX09OX0NPTkRJVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUFfUE9XRVJfR0FUSU5HX19TRE1BMF9QT1dFUl9PRkZfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BX1BPV0VSX0dBVElOR19fU0RNQTBfUE9XRVJfT05fUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQV9QT1dFUl9HQVRJTkdfX1BHX0NOVExfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUFfUE9XRVJfR0FUSU5HX19TRE1BMF9QT1dFUl9PRkZfQ09ORElUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUFfUE9XRVJfR0FUSU5HX19TRE1BMF9QT1dFUl9PTl9DT05ESVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUFfUE9XRVJfR0FUSU5HX19TRE1BMF9QT1dFUl9PRkZfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUFfUE9XRVJfR0FUSU5HX19TRE1BMF9QT1dFUl9PTl9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUFfUE9XRVJfR0FUSU5HX19QR19DTlRMX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisvL1NETUFfUEdGU01fQ09ORklHCisjZGVmaW5lIFNETUFfUEdGU01fQ09ORklHX19GU01fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BX1BHRlNNX0NPTkZJR19fUE9XRVJfRE9XTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1BPV0VSX1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUFfUEdGU01fQ09ORklHX19QMV9TRUxFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BX1BHRlNNX0NPTkZJR19fUDJfU0VMRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUFfUEdGU01fQ09ORklHX19SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BX1BHRlNNX0NPTkZJR19fU1JCTV9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUFfUEdGU01fQ09ORklHX19SRUdfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX0ZTTV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1BPV0VSX0RPV05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1BPV0VSX1VQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1AxX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1AyX1NFTEVDVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1NSQk1fT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQV9QR0ZTTV9DT05GSUdfX1JFR19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vU0RNQV9QR0ZTTV9XUklURQorI2RlZmluZSBTRE1BX1BHRlNNX1dSSVRFX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQV9QR0ZTTV9XUklURV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQV9QR0ZTTV9SRUFECisjZGVmaW5lIFNETUFfUEdGU01fUkVBRF9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BX1BHRlNNX1JFQURfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9FRENfQ09ORklHCisjZGVmaW5lIFNETUEwX0VEQ19DT05GSUdfX0RJU19FRENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9FRENfQ09ORklHX19FQ0NfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfRURDX0NPTkZJR19fRElTX0VEQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfRURDX0NPTkZJR19fRUNDX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vU0RNQTBfQkFfVEhSRVNIT0xECisjZGVmaW5lIFNETUEwX0JBX1RIUkVTSE9MRF9fUkVBRF9USFJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9CQV9USFJFU0hPTERfX1dSSVRFX1RIUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEwX0JBX1RIUkVTSE9MRF9fUkVBRF9USFJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIFNETUEwX0JBX1RIUkVTSE9MRF9fV1JJVEVfVEhSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEwX0lECisjZGVmaW5lIFNETUEwX0lEX19ERVZJQ0VfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9JRF9fREVWSUNFX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TRE1BMF9WRVJTSU9OCisjZGVmaW5lIFNETUEwX1ZFUlNJT05fX01JTlZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9WRVJTSU9OX19NQUpWRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfVkVSU0lPTl9fUkVWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMF9WRVJTSU9OX19NSU5WRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBTRE1BMF9WRVJTSU9OX19NQUpWRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBTRE1BMF9WRVJTSU9OX19SRVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9TRE1BMF9FRENfQ09VTlRFUgorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9VQ09ERV9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfRURDX0NPVU5URVJfX1NETUFfUkJfQ01EX0JVRl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0VEQ19DT1VOVEVSX19TRE1BX0lCX0NNRF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SRF9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRCU1RfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEwX0VEQ19DT1VOVEVSX19TRE1BX0RBVEFfTFVUX0ZJRk9fU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjBfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTBfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjNfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTBfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY0X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEwX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTBfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY3X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEwX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGOF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjlfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEwX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTBfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTBfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEyX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEwX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTNfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTBfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE1X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEwX0VEQ19DT1VOVEVSX19TRE1BX1NQTElUX0RBVF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTBfRURDX0NPVU5URVJfX1NETUFfTUNfV1JfQUREUl9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9VQ09ERV9CVUZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9SQl9DTURfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9JQl9DTURfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SRF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SREJTVF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9EQVRBX0xVVF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjBfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjFfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjJfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjNfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjRfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjVfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjdfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjhfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjlfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEwX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjExX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEyX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEzX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE0X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE1X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9TUExJVF9EQVRfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9fU0RNQV9NQ19XUl9BRERSX0ZJRk9fU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9TRE1BMF9FRENfQ09VTlRFUl9DTEVBUgorI2RlZmluZSBTRE1BMF9FRENfQ09VTlRFUl9DTEVBUl9fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfRURDX0NPVU5URVJfQ0xFQVJfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTBfU1RBVFVTMl9SRUcKKyNkZWZpbmUgU0RNQTBfU1RBVFVTMl9SRUdfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1NUQVRVUzJfUkVHX19GMzJfSU5TVFJfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMF9TVEFUVVMyX1JFR19fQ01EX09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEwX1NUQVRVUzJfUkVHX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUEwX1NUQVRVUzJfUkVHX19GMzJfSU5TVFJfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjhMCisjZGVmaW5lIFNETUEwX1NUQVRVUzJfUkVHX19DTURfT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEwX0FUT01JQ19DTlRMCisjZGVmaW5lIFNETUEwX0FUT01JQ19DTlRMX19MT09QX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9BVE9NSUNfQ05UTF9fQVRPTUlDX1JUTl9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEwX0FUT01JQ19DTlRMX19MT09QX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisjZGVmaW5lIFNETUEwX0FUT01JQ19DTlRMX19BVE9NSUNfUlROX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEwX0FUT01JQ19QUkVPUF9MTworI2RlZmluZSBTRE1BMF9BVE9NSUNfUFJFT1BfTE9fX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfQVRPTUlDX1BSRU9QX0xPX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfQVRPTUlDX1BSRU9QX0hJCisjZGVmaW5lIFNETUEwX0FUT01JQ19QUkVPUF9ISV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9BVE9NSUNfUFJFT1BfSElfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9VVENMMV9DTlRMCisjZGVmaW5lIFNETUEwX1VUQ0wxX0NOVExfX1JFRE9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9VVENMMV9DTlRMX19SRURPX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTBfVVRDTDFfQ05UTF9fUkVET19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEwX1VUQ0wxX0NOVExfX0lOVkFDS19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMF9VVENMMV9DTlRMX19SRVFMMl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1VUQ0wxX0NOVExfX1ZBRERSX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTBfVVRDTDFfQ05UTF9fUkVET19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfQ05UTF9fUkVET19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdGRUwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfQ05UTF9fUkVET19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfQ05UTF9fSU5WQUNLX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGQzAwMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfQ05UTF9fUkVRTDJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfQ05UTF9fVkFERFJfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vU0RNQTBfVVRDTDFfV0FURVJNSworI2RlZmluZSBTRE1BMF9VVENMMV9XQVRFUk1LX19SRVFNQ19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV0FURVJNS19fUkVRUEdfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1VUQ0wxX1dBVEVSTUtfX0lOVlJFUV9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV0FURVJNS19fWE5BQ0tfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BMF9VVENMMV9XQVRFUk1LX19SRVFNQ19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBTRE1BMF9VVENMMV9XQVRFUk1LX19SRVFQR19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRTAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9XQVRFUk1LX19JTlZSRVFfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkUwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9XQVRFUk1LX19YTkFDS19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9TRE1BMF9VVENMMV9SRF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1NUQVRVU19fUEFHRV9OVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19SRVFMMl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX0NFX0wxX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1NUQVRVU19fTkVYVF9SRF9WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19NRVJHRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX0FERFJfUkRfUlRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1NUQVRVU19fV1BUUl9QT0xMSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfU1RBVFVTX19JTlZSRVFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1BBR0VfTlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1JFUUwyX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX0NFX0wxX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX05FWFRfUkRfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX01FUkdFX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDMDAwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX0FERFJfUkRfUlRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX1dQVFJfUE9MTElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9TVEFUVVNfX0lOVlJFUV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMF9VVENMMV9XUl9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9TVEFUVVNfX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9OVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19SRVFMMl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9TVEFUVVNfX0YzMl9XUl9SVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fTkVYVF9XUl9WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19NRVJHRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfU1RBVFVTX19XUlJFUV9EQVRBX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9OVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUkVRTDJfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fRjMyX1dSX1JUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fTkVYVF9XUl9WRUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fTUVSR0VfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEwX1VUQ0wxX0lOVjAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fSU5WX01JRERMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1VUQ0wxX0lOVjBfX1JEX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9VVENMMV9JTlYwX19XUl9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fUkRfSU5fSU5WQURSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEwX1VUQ0wxX0lOVjBfX1dSX0lOX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMF9VVENMMV9JTlYwX19QQUdFX05VTExfU1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fWE5BQ0tfSVNfSU5WQURSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEwX1VUQ0wxX0lOVjBfX0lOVlJFUV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9VVENMMV9JTlYwX19OQUNLX1RJTUVPVVRfU1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fTkZMVVNIX0lOVl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1VUQ0wxX0lOVjBfX0ZMVVNIX0lOVl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9VVENMMV9JTlYwX19JTlZfRkxVU0hUWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fSU5WX1ZNSURfVkVDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEwX1VUQ0wxX0lOVjBfX0lOVl9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fSU5WX01JRERMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fUkRfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fV1JfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fUkRfSU5fSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fV1JfSU5fSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fUEFHRV9OVUxMX1NXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fWE5BQ0tfSVNfSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fSU5WUkVRX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fTkFDS19USU1FT1VUX1NXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fTkZMVVNIX0lOVl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fRkxVU0hfSU5WX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fSU5WX0ZMVVNIVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fSU5WX1ZNSURfVkVDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRjAwMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMF9fSU5WX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vU0RNQTBfVVRDTDFfSU5WMQorI2RlZmluZSBTRE1BMF9VVENMMV9JTlYxX19JTlZfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMV9fSU5WX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfVVRDTDFfSU5WMgorI2RlZmluZSBTRE1BMF9VVENMMV9JTlYyX19JTlZfTkZMVVNIX1ZNSURfVkVDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfSU5WMl9fSU5WX05GTFVTSF9WTUlEX1ZFQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfVVRDTDFfUkRfWE5BQ0swCisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9YTkFDSzBfX1hOQUNLX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9VVENMMV9SRF9YTkFDSzEKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUkRfWE5BQ0sxX19JU19YTkFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRjAwTAorI2RlZmluZSBTRE1BMF9VVENMMV9SRF9YTkFDSzFfX0lTX1hOQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorLy9TRE1BMF9VVENMMV9XUl9YTkFDSzAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfWE5BQ0swX19YTkFDS19BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1VUQ0wxX1dSX1hOQUNLMQorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9VVENMMV9XUl9YTkFDSzFfX0lTX1hOQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGMDBMCisjZGVmaW5lIFNETUEwX1VUQ0wxX1dSX1hOQUNLMV9fSVNfWE5BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisvL1NETUEwX1VUQ0wxX1RJTUVPVVQKKyNkZWZpbmUgU0RNQTBfVVRDTDFfVElNRU9VVF9fUkRfWE5BQ0tfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1VUQ0wxX1RJTUVPVVRfX1dSX1hOQUNLX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfVElNRU9VVF9fUkRfWE5BQ0tfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfVElNRU9VVF9fV1JfWE5BQ0tfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfVVRDTDFfUEFHRQorI2RlZmluZSBTRE1BMF9VVENMMV9QQUdFX19WTV9IT0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUEFHRV9fUkVRX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1VUQ0wxX1BBR0VfX1VTRV9NVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMF9VVENMMV9QQUdFX19VU0VfUFRfU05PT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUEFHRV9fVk1fSE9MRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUEFHRV9fUkVRX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRUwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUEFHRV9fVVNFX01UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgU0RNQTBfVVRDTDFfUEFHRV9fVVNFX1BUX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKy8vU0RNQTBfUE9XRVJfQ05UTF9JRExFCisjZGVmaW5lIFNETUEwX1BPV0VSX0NOVExfSURMRV9fREVMQVkwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEwX1BPV0VSX0NOVExfSURMRV9fREVMQVkyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9JRExFX19ERUxBWTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9JRExFX19ERUxBWTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9JRExFX19ERUxBWTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vU0RNQTBfUkVMQVhfT1JERVJJTkdfTFVUCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9SRUxBWF9PUkRFUklOR19MVVRfX0NPUFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTBfUkVMQVhfT1JERVJJTkdfTFVUX19XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMF9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkVMQVhfT1JERVJJTkdfTFVUX19GRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ3Nl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMF9SRUxBWF9PUkRFUklOR19MVVRfX1BPTExfTUVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUkVMQVhfT1JERVJJTkdfTFVUX19DT05EX0VYRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fQVRPTUlDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9SRUxBWF9PUkRFUklOR19MVVRfX0NPTlNUX0ZJTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTBfUkVMQVhfT1JERVJJTkdfTFVUX19QVEVQREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fVElNRVNUQU1QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMF9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTBfUkVMQVhfT1JERVJJTkdfTFVUX19XT1JMRF9TV0lUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BMF9SRUxBWF9PUkRFUklOR19MVVRfX1JQVFJfV1JCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fV1BUUl9QT0xMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTBfUkVMQVhfT1JERVJJTkdfTFVUX19JQl9GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9SRUxBWF9PUkRFUklOR19MVVRfX1JCX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fQ09QWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fRkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ3Nl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUE9MTF9NRU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fQ09ORF9FWEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fQVRPTUlDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fQ09OU1RfRklMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUFRFUERFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fVElNRVNUQU1QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRkMwMDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fV09STERfU1dJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUlBUUl9XUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fV1BUUl9QT0xMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fSUJfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEwX1JFTEFYX09SREVSSU5HX0xVVF9fUkJfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEwX0NISUNLRU5fQklUU18yCisjZGVmaW5lIFNETUEwX0NISUNLRU5fQklUU18yX19GMzJfQ01EX1BST0NfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9DSElDS0VOX0JJVFNfMl9fRjMyX0NNRF9QUk9DX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9TRE1BMF9TVEFUVVMzX1JFRworI2RlZmluZSBTRE1BMF9TVEFUVVMzX1JFR19fQ01EX09QX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfU1RBVFVTM19SRUdfX1BSRVZfVk1fQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMF9TVEFUVVMzX1JFR19fRVhDRVBUSU9OX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUEwX1NUQVRVUzNfUkVHX19RVUVVRV9JRF9NQVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTBfU1RBVFVTM19SRUdfX0lOVF9RVUVVRV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMF9TVEFUVVMzX1JFR19fQ01EX09QX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BMF9TVEFUVVMzX1JFR19fUFJFVl9WTV9DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBTRE1BMF9TVEFUVVMzX1JFR19fRVhDRVBUSU9OX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMF9TVEFUVVMzX1JFR19fUVVFVUVfSURfTUFUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMF9TVEFUVVMzX1JFR19fSU5UX1FVRVVFX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorLy9TRE1BMF9QSFlTSUNBTF9BRERSX0xPCisjZGVmaW5lIFNETUEwX1BIWVNJQ0FMX0FERFJfTE9fX0RfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QSFlTSUNBTF9BRERSX0xPX19ESVJUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTBfUEhZU0lDQUxfQUREUl9MT19fUEhZX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1BIWVNJQ0FMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMF9QSFlTSUNBTF9BRERSX0xPX19EX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9QSFlTSUNBTF9BRERSX0xPX19ESVJUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMF9QSFlTSUNBTF9BRERSX0xPX19QSFlfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9QSFlTSUNBTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9TRE1BMF9QSFlTSUNBTF9BRERSX0hJCisjZGVmaW5lIFNETUEwX1BIWVNJQ0FMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QSFlTSUNBTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9TRE1BMF9QSEFTRTJfUVVBTlRVTQorI2RlZmluZSBTRE1BMF9QSEFTRTJfUVVBTlRVTV9fVU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEhBU0UyX1FVQU5UVU1fX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1BIQVNFMl9RVUFOVFVNX19QUkVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTBfUEhBU0UyX1FVQU5UVU1fX1VOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTBfUEhBU0UyX1FVQU5UVU1fX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkYwMEwKKyNkZWZpbmUgU0RNQTBfUEhBU0UyX1FVQU5UVU1fX1BSRUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTBfRVJST1JfTE9HCisjZGVmaW5lIFNETUEwX0VSUk9SX0xPR19fT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9FUlJPUl9MT0dfX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEwX0VSUk9SX0xPR19fT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUEwX0VSUk9SX0xPR19fU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEwX1BVQl9EVU1NWV9SRUcwCisjZGVmaW5lIFNETUEwX1BVQl9EVU1NWV9SRUcwX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QVUJfRFVNTVlfUkVHMF9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9QVUJfRFVNTVlfUkVHMQorI2RlZmluZSBTRE1BMF9QVUJfRFVNTVlfUkVHMV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUFVCX0RVTU1ZX1JFRzFfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUFVCX0RVTU1ZX1JFRzIKKyNkZWZpbmUgU0RNQTBfUFVCX0RVTU1ZX1JFRzJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BVQl9EVU1NWV9SRUcyX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BVQl9EVU1NWV9SRUczCisjZGVmaW5lIFNETUEwX1BVQl9EVU1NWV9SRUczX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QVUJfRFVNTVlfUkVHM19fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9GMzJfQ09VTlRFUgorI2RlZmluZSBTRE1BMF9GMzJfQ09VTlRFUl9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfRjMyX0NPVU5URVJfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfVU5CUkVBS0FCTEUKKyNkZWZpbmUgU0RNQTBfVU5CUkVBS0FCTEVfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1VOQlJFQUtBQkxFX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1BFUkZNT05fQ05UTAorI2RlZmluZSBTRE1BMF9QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1BFUkZNT05fQ05UTF9fUEVSRl9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTBfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEwX1BFUkZNT05fQ05UTF9fUEVSRl9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMF9QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMF9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBTRE1BMF9QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMF9QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMF9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorLy9TRE1BMF9QRVJGQ09VTlRFUjBfUkVTVUxUCisjZGVmaW5lIFNETUEwX1BFUkZDT1VOVEVSMF9SRVNVTFRfX1BFUkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QRVJGQ09VTlRFUjBfUkVTVUxUX19QRVJGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9QRVJGQ09VTlRFUjFfUkVTVUxUCisjZGVmaW5lIFNETUEwX1BFUkZDT1VOVEVSMV9SRVNVTFRfX1BFUkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QRVJGQ09VTlRFUjFfUkVTVUxUX19QRVJGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0UKKyNkZWZpbmUgU0RNQTBfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19SQU5HRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMF9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NFTEVDVF9SV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEwX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIFNETUEwX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkMwMDBMCisjZGVmaW5lIFNETUEwX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fU0VMRUNUX1JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL1NETUEwX0NSRF9DTlRMCisjZGVmaW5lIFNETUEwX0NSRF9DTlRMX19NQ19XUlJFUV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9DUkRfQ05UTF9fTUNfUkRSRVFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTBfQ1JEX0NOVExfX01DX1dSUkVRX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKyNkZWZpbmUgU0RNQTBfQ1JEX0NOVExfX01DX1JEUkVRX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RTAwMEwKKy8vU0RNQTBfR1BVX0lPVl9WSU9MQVRJT05fTE9HCisjZGVmaW5lIFNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVklPTEFUSU9OX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX01VTFRJUExFX1ZJT0xBVElPTl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTBfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fV1JJVEVfT1BFUkFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTBfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMF9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVklPTEFUSU9OX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fTVVMVElQTEVfVklPTEFUSU9OX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkNMCisjZGVmaW5lIFNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fV1JJVEVfT1BFUkFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUEwX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNDMDAwMDBMCisvL1NETUEwX1VMVl9DTlRMCisjZGVmaW5lIFNETUEwX1VMVl9DTlRMX19IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9VTFZfQ05UTF9fRU5URVJfVUxWX0lOVF9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUEwX1VMVl9DTlRMX19FWElUX1VMVl9JTlRfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BMF9VTFZfQ05UTF9fRVhJVF9VTFZfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEwX1VMVl9DTlRMX19VTFZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTBfVUxWX0NOVExfX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgU0RNQTBfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfVUxWX0NOVExfX1VMVl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTBfRUFfREJJVF9BRERSX0RBVEEKKyNkZWZpbmUgU0RNQTBfRUFfREJJVF9BRERSX0RBVEFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0VBX0RCSVRfQUREUl9EQVRBX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX0VBX0RCSVRfQUREUl9JTkRFWAorI2RlZmluZSBTRE1BMF9FQV9EQklUX0FERFJfSU5ERVhfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfRUFfREJJVF9BRERSX0lOREVYX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKy8vU0RNQTBfR1BVX0lPVl9WSU9MQVRJT05fTE9HMgorI2RlZmluZSBTRE1BMF9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX19JTklUSUFUT1JfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fSU5JVElBVE9SX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0RNQTBfR0ZYX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEwX0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEwX0dGWF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMF9HRlhfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9HRlhfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfR0ZYX1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUEwX0dGWF9SQl9SUFRSCisjZGVmaW5lIFNETUEwX0dGWF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9HRlhfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfR0ZYX1JCX1dQVFIKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX0dGWF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEwX0dGWF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfR0ZYX1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BMF9HRlhfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfR0ZYX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMF9HRlhfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0dGWF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX0dGWF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX0dGWF9JQl9DTlRMCisjZGVmaW5lIFNETUEwX0dGWF9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX0dGWF9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfR0ZYX0lCX1JQVFIKKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0dGWF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEwX0dGWF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0dGWF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEwX0dGWF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX0dGWF9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9HRlhfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9HRlhfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BMF9HRlhfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfR0ZYX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX0dGWF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfR0ZYX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX0dGWF9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BMF9HRlhfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfR0ZYX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMF9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfR0ZYX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTBfR0ZYX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUEwX0dGWF9ET09SQkVMTAorI2RlZmluZSBTRE1BMF9HRlhfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEwX0dGWF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTBfR0ZYX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTBfR0ZYX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTBfR0ZYX0NPTlRFWFRfQ05UTAorI2RlZmluZSBTRE1BMF9HRlhfQ09OVEVYVF9DTlRMX19SRVNVTUVfQ1RYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEwX0dGWF9DT05URVhUX0NOVExfX1JFU1VNRV9DVFhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1NETUEwX0dGWF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9HRlhfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMF9HRlhfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMF9HRlhfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX0dGWF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfR0ZYX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfR0ZYX0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfR0ZYX1dBVEVSTUFSSworI2RlZmluZSBTRE1BMF9HRlhfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfR0ZYX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMF9HRlhfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BMF9HRlhfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BMF9HRlhfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEwX0dGWF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9HRlhfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMF9HRlhfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfR0ZYX0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX0dGWF9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX0dGWF9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BMF9HRlhfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfR0ZYX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfR0ZYX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTBfR0ZYX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX0dGWF9QUkVFTVBUCisjZGVmaW5lIFNETUEwX0dGWF9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9HRlhfRFVNTVlfUkVHCisjZGVmaW5lIFNETUEwX0dGWF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX0dGWF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfR0ZYX1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUEwX0dGWF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTBfR0ZYX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX0dGWF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX0dGWF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUEwX0dGWF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUEwX0dGWF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEwX0dGWF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9HRlhfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9HRlhfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfR0ZYX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9HRlhfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfR0ZYX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX0dGWF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1BBR0VfUkJfQ05UTAorI2RlZmluZSBTRE1BMF9QQUdFX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9QQUdFX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEwX1BBR0VfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9QQUdFX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUEFHRV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QQUdFX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9QQUdFX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BBR0VfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9QQUdFX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUEFHRV9SQl9XUFRSCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QQUdFX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9QQUdFX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfUEFHRV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BBR0VfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QQUdFX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUEFHRV9JQl9DTlRMCisjZGVmaW5lIFNETUEwX1BBR0VfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QQUdFX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUEFHRV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1BBR0VfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUEFHRV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUEFHRV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUEFHRV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUEFHRV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfUEFHRV9JQl9SUFRSCisjZGVmaW5lIFNETUEwX1BBR0VfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9QQUdFX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMF9QQUdFX0lCX09GRlNFVAorI2RlZmluZSBTRE1BMF9QQUdFX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUEFHRV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTBfUEFHRV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX1BBR0VfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9QQUdFX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9QQUdFX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfUEFHRV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BBR0VfSUJfU0laRQorI2RlZmluZSBTRE1BMF9QQUdFX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUEFHRV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfUEFHRV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX1BBR0VfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfUEFHRV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUEFHRV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1BBR0VfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1BBR0VfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMF9QQUdFX0RPT1JCRUxMCisjZGVmaW5lIFNETUEwX1BBR0VfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUEFHRV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9QQUdFX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9QQUdFX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMF9QQUdFX1NUQVRVUworI2RlZmluZSBTRE1BMF9QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEwX1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1BBR0VfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX1BBR0VfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QQUdFX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUEFHRV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUEFHRV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUEFHRV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTBfUEFHRV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUEFHRV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTBfUEFHRV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTBfUEFHRV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfUEFHRV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1BBR0VfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEwX1BBR0VfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfUEFHRV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1BBR0VfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX1BBR0VfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUEFHRV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BBR0VfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BMF9QQUdFX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUEFHRV9QUkVFTVBUCisjZGVmaW5lIFNETUEwX1BBR0VfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QQUdFX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9QQUdFX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMF9QQUdFX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BMF9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUEFHRV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMF9QQUdFX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1BBR0VfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9QQUdFX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9QQUdFX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMF9QQUdFX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMF9QQUdFX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTBfUEFHRV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1BBR0VfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QQUdFX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9QQUdFX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMF9QQUdFX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUEFHRV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTBfUEFHRV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BBR0VfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QQUdFX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9QQUdFX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMF9QQUdFX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUEFHRV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTBfUEFHRV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BBR0VfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9QQUdFX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9QQUdFX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMF9QQUdFX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUEFHRV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUEFHRV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTBfUEFHRV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1BBR0VfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfUEFHRV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9QQUdFX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUEFHRV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1BBR0VfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzBfUkJfQ05UTAorI2RlZmluZSBTRE1BMF9STEMwX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9STEMwX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEwX1JMQzBfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9STEMwX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMwX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9STEMwX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzBfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9STEMwX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMF9SQl9XUFRSCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMwX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMwX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfUkxDMF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzBfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMwX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDMF9JQl9DTlRMCisjZGVmaW5lIFNETUEwX1JMQzBfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMwX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDMF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzBfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUkxDMF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUkxDMF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfUkxDMF9JQl9SUFRSCisjZGVmaW5lIFNETUEwX1JMQzBfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEMwX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMF9STEMwX0lCX09GRlNFVAorI2RlZmluZSBTRE1BMF9STEMwX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTBfUkxDMF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX1JMQzBfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9STEMwX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9STEMwX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMF9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzBfSUJfU0laRQorI2RlZmluZSBTRE1BMF9STEMwX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDMF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDMF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX1JMQzBfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfUkxDMF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUkxDMF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzBfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1JMQzBfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMF9STEMwX0RPT1JCRUxMCisjZGVmaW5lIFNETUEwX1JMQzBfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUkxDMF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9STEMwX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9STEMwX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMF9STEMwX1NUQVRVUworI2RlZmluZSBTRE1BMF9STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEwX1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzBfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX1JMQzBfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMwX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDMF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTBfUkxDMF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTBfUkxDMF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTBfUkxDMF9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfUkxDMF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzBfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEwX1JMQzBfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfUkxDMF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzBfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX1JMQzBfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMF9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzBfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BMF9STEMwX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDMF9QUkVFTVBUCisjZGVmaW5lIFNETUEwX1JMQzBfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMwX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9STEMwX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMF9STEMwX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BMF9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDMF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMF9STEMwX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzBfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9STEMwX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEMwX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMF9STEMwX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMF9STEMwX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTBfUkxDMF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1JMQzBfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMwX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMwX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMF9STEMwX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMF9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTBfUkxDMF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzBfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMwX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMwX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMF9STEMwX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMF9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTBfUkxDMF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzBfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMwX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMwX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMF9STEMwX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMF9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMF9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTBfUkxDMF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzBfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDMF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEMwX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDMF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1JMQzBfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzFfUkJfQ05UTAorI2RlZmluZSBTRE1BMF9STEMxX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9STEMxX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEwX1JMQzFfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9STEMxX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMxX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9STEMxX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzFfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9STEMxX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMV9SQl9XUFRSCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMxX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMxX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfUkxDMV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzFfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMxX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDMV9JQl9DTlRMCisjZGVmaW5lIFNETUEwX1JMQzFfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMxX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDMV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzFfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUkxDMV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUkxDMV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfUkxDMV9JQl9SUFRSCisjZGVmaW5lIFNETUEwX1JMQzFfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEMxX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMF9STEMxX0lCX09GRlNFVAorI2RlZmluZSBTRE1BMF9STEMxX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTBfUkxDMV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX1JMQzFfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9STEMxX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9STEMxX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzFfSUJfU0laRQorI2RlZmluZSBTRE1BMF9STEMxX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDMV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDMV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX1JMQzFfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfUkxDMV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUkxDMV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzFfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1JMQzFfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMF9STEMxX0RPT1JCRUxMCisjZGVmaW5lIFNETUEwX1JMQzFfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUkxDMV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9STEMxX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9STEMxX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMF9STEMxX1NUQVRVUworI2RlZmluZSBTRE1BMF9STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEwX1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzFfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX1JMQzFfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMxX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDMV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTBfUkxDMV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTBfUkxDMV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTBfUkxDMV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfUkxDMV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzFfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEwX1JMQzFfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfUkxDMV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzFfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX1JMQzFfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzFfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BMF9STEMxX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDMV9QUkVFTVBUCisjZGVmaW5lIFNETUEwX1JMQzFfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMxX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9STEMxX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMF9STEMxX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BMF9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDMV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMF9STEMxX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzFfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9STEMxX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEMxX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMF9STEMxX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMF9STEMxX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTBfUkxDMV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1JMQzFfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMxX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMxX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMF9STEMxX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTBfUkxDMV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzFfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMxX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMxX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMF9STEMxX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTBfUkxDMV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzFfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMxX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMxX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMF9STEMxX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTBfUkxDMV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzFfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDMV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEMxX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDMV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1JMQzFfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzJfUkJfQ05UTAorI2RlZmluZSBTRE1BMF9STEMyX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9STEMyX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEwX1JMQzJfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9STEMyX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMl9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMyX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9STEMyX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzJfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9STEMyX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMl9SQl9XUFRSCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMyX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMyX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzJfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfUkxDMl9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzJfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMyX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDMl9JQl9DTlRMCisjZGVmaW5lIFNETUEwX1JMQzJfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMyX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDMl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzJfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMl9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUkxDMl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUkxDMl9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfUkxDMl9JQl9SUFRSCisjZGVmaW5lIFNETUEwX1JMQzJfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEMyX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMF9STEMyX0lCX09GRlNFVAorI2RlZmluZSBTRE1BMF9STEMyX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMl9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTBfUkxDMl9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX1JMQzJfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9STEMyX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9STEMyX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMl9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzJfSUJfU0laRQorI2RlZmluZSBTRE1BMF9STEMyX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDMl9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDMl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX1JMQzJfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfUkxDMl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUkxDMl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzJfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1JMQzJfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMF9STEMyX0RPT1JCRUxMCisjZGVmaW5lIFNETUEwX1JMQzJfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUkxDMl9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9STEMyX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9STEMyX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMF9STEMyX1NUQVRVUworI2RlZmluZSBTRE1BMF9STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEwX1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzJfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX1JMQzJfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMyX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDMl9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDMl9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTBfUkxDMl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDMl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTBfUkxDMl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTBfUkxDMl9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfUkxDMl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzJfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEwX1JMQzJfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfUkxDMl9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzJfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX1JMQzJfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDMl9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzJfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BMF9STEMyX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDMl9QUkVFTVBUCisjZGVmaW5lIFNETUEwX1JMQzJfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMyX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9STEMyX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMF9STEMyX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BMF9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDMl9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMF9STEMyX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzJfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9STEMyX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEMyX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMF9STEMyX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMF9STEMyX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTBfUkxDMl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1JMQzJfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMyX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMyX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMF9STEMyX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMl9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTBfUkxDMl9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzJfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMyX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMyX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMF9STEMyX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMl9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTBfUkxDMl9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzJfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMyX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMyX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMF9STEMyX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDMl9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDMl9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTBfUkxDMl9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzJfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDMl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEMyX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDMl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1JMQzJfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzNfUkJfQ05UTAorI2RlZmluZSBTRE1BMF9STEMzX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9STEMzX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEwX1JMQzNfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9STEMzX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDM19SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMzX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9STEMzX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzNfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9STEMzX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDM19SQl9XUFRSCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMzX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMzX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfUkxDM19SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzNfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMzX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDM19JQl9DTlRMCisjZGVmaW5lIFNETUEwX1JMQzNfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMzX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDM19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzNfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDM19JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDM19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUkxDM19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUkxDM19JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfUkxDM19JQl9SUFRSCisjZGVmaW5lIFNETUEwX1JMQzNfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEMzX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMF9STEMzX0lCX09GRlNFVAorI2RlZmluZSBTRE1BMF9STEMzX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDM19JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTBfUkxDM19JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX1JMQzNfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9STEMzX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9STEMzX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfUkxDM19JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzNfSUJfU0laRQorI2RlZmluZSBTRE1BMF9STEMzX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDM19TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDM19TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX1JMQzNfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfUkxDM19DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUkxDM19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzNfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1JMQzNfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMF9STEMzX0RPT1JCRUxMCisjZGVmaW5lIFNETUEwX1JMQzNfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUkxDM19ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9STEMzX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9STEMzX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMF9STEMzX1NUQVRVUworI2RlZmluZSBTRE1BMF9STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEwX1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzNfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX1JMQzNfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMzX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDM19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDM19ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDM19XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTBfUkxDM19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDM19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTBfUkxDM19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTBfUkxDM19ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfUkxDM19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzNfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEwX1JMQzNfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfUkxDM19DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzNfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX1JMQzNfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDM19DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzNfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BMF9STEMzX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDM19QUkVFTVBUCisjZGVmaW5lIFNETUEwX1JMQzNfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMzX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9STEMzX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMF9STEMzX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BMF9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDM19SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMF9STEMzX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzNfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9STEMzX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEMzX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMF9STEMzX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMF9STEMzX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTBfUkxDM19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1JMQzNfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMzX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMzX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMF9STEMzX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDM19NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTBfUkxDM19NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzNfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMzX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMzX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMF9STEMzX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDM19NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTBfUkxDM19NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzNfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEMzX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEMzX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMF9STEMzX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDM19NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDM19NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTBfUkxDM19NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzNfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDM19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEMzX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDM19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1JMQzNfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzRfUkJfQ05UTAorI2RlZmluZSBTRE1BMF9STEM0X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9STEM0X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEwX1JMQzRfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9STEM0X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM0X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9STEM0X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzRfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9STEM0X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNF9SQl9XUFRSCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM0X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM0X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzRfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfUkxDNF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzRfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM0X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDNF9JQl9DTlRMCisjZGVmaW5lIFNETUEwX1JMQzRfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM0X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDNF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzRfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUkxDNF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUkxDNF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfUkxDNF9JQl9SUFRSCisjZGVmaW5lIFNETUEwX1JMQzRfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEM0X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMF9STEM0X0lCX09GRlNFVAorI2RlZmluZSBTRE1BMF9STEM0X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTBfUkxDNF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX1JMQzRfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9STEM0X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9STEM0X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNF9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzRfSUJfU0laRQorI2RlZmluZSBTRE1BMF9STEM0X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDNF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDNF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX1JMQzRfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfUkxDNF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUkxDNF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzRfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1JMQzRfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMF9STEM0X0RPT1JCRUxMCisjZGVmaW5lIFNETUEwX1JMQzRfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUkxDNF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9STEM0X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9STEM0X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMF9STEM0X1NUQVRVUworI2RlZmluZSBTRE1BMF9STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEwX1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzRfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX1JMQzRfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM0X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDNF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTBfUkxDNF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTBfUkxDNF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTBfUkxDNF9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfUkxDNF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzRfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEwX1JMQzRfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfUkxDNF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzRfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX1JMQzRfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNF9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzRfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BMF9STEM0X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDNF9QUkVFTVBUCisjZGVmaW5lIFNETUEwX1JMQzRfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM0X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9STEM0X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMF9STEM0X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BMF9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDNF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMF9STEM0X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzRfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9STEM0X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEM0X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMF9STEM0X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMF9STEM0X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTBfUkxDNF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1JMQzRfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM0X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM0X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMF9STEM0X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNF9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTBfUkxDNF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzRfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM0X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM0X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMF9STEM0X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNF9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTBfUkxDNF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzRfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM0X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM0X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMF9STEM0X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNF9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNF9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTBfUkxDNF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzRfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDNF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEM0X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDNF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1JMQzRfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzVfUkJfQ05UTAorI2RlZmluZSBTRE1BMF9STEM1X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9STEM1X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEwX1JMQzVfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9STEM1X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM1X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9STEM1X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzVfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9STEM1X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNV9SQl9XUFRSCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM1X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM1X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzVfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfUkxDNV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzVfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM1X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDNV9JQl9DTlRMCisjZGVmaW5lIFNETUEwX1JMQzVfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM1X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDNV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzVfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUkxDNV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUkxDNV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfUkxDNV9JQl9SUFRSCisjZGVmaW5lIFNETUEwX1JMQzVfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEM1X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMF9STEM1X0lCX09GRlNFVAorI2RlZmluZSBTRE1BMF9STEM1X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTBfUkxDNV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX1JMQzVfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9STEM1X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9STEM1X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzVfSUJfU0laRQorI2RlZmluZSBTRE1BMF9STEM1X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDNV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDNV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX1JMQzVfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfUkxDNV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUkxDNV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzVfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1JMQzVfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMF9STEM1X0RPT1JCRUxMCisjZGVmaW5lIFNETUEwX1JMQzVfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUkxDNV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9STEM1X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9STEM1X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMF9STEM1X1NUQVRVUworI2RlZmluZSBTRE1BMF9STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEwX1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzVfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX1JMQzVfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM1X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDNV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTBfUkxDNV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTBfUkxDNV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTBfUkxDNV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfUkxDNV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzVfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEwX1JMQzVfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfUkxDNV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzVfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX1JMQzVfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzVfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BMF9STEM1X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDNV9QUkVFTVBUCisjZGVmaW5lIFNETUEwX1JMQzVfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM1X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9STEM1X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMF9STEM1X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BMF9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDNV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMF9STEM1X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzVfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9STEM1X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEM1X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMF9STEM1X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMF9STEM1X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTBfUkxDNV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1JMQzVfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM1X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM1X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMF9STEM1X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTBfUkxDNV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzVfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM1X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM1X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMF9STEM1X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTBfUkxDNV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzVfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM1X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM1X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMF9STEM1X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTBfUkxDNV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzVfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDNV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEM1X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDNV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1JMQzVfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzZfUkJfQ05UTAorI2RlZmluZSBTRE1BMF9STEM2X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9STEM2X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEwX1JMQzZfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9STEM2X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNl9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM2X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9STEM2X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzZfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9STEM2X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNl9SQl9XUFRSCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM2X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM2X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzZfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfUkxDNl9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzZfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM2X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDNl9JQl9DTlRMCisjZGVmaW5lIFNETUEwX1JMQzZfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM2X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDNl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzZfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNl9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUkxDNl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUkxDNl9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfUkxDNl9JQl9SUFRSCisjZGVmaW5lIFNETUEwX1JMQzZfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEM2X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMF9STEM2X0lCX09GRlNFVAorI2RlZmluZSBTRE1BMF9STEM2X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNl9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTBfUkxDNl9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX1JMQzZfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9STEM2X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9STEM2X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNl9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzZfSUJfU0laRQorI2RlZmluZSBTRE1BMF9STEM2X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDNl9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDNl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX1JMQzZfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfUkxDNl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUkxDNl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzZfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1JMQzZfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMF9STEM2X0RPT1JCRUxMCisjZGVmaW5lIFNETUEwX1JMQzZfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUkxDNl9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9STEM2X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9STEM2X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMF9STEM2X1NUQVRVUworI2RlZmluZSBTRE1BMF9STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEwX1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzZfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX1JMQzZfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM2X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDNl9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDNl9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTBfUkxDNl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDNl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTBfUkxDNl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTBfUkxDNl9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfUkxDNl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzZfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEwX1JMQzZfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfUkxDNl9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzZfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX1JMQzZfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDNl9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzZfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BMF9STEM2X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDNl9QUkVFTVBUCisjZGVmaW5lIFNETUEwX1JMQzZfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM2X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9STEM2X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMF9STEM2X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BMF9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDNl9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMF9STEM2X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzZfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9STEM2X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEM2X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMF9STEM2X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMF9STEM2X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTBfUkxDNl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1JMQzZfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM2X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM2X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMF9STEM2X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNl9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTBfUkxDNl9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzZfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM2X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM2X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMF9STEM2X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNl9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTBfUkxDNl9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzZfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM2X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM2X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMF9STEM2X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDNl9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDNl9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTBfUkxDNl9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzZfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDNl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEM2X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDNl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1JMQzZfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzdfUkJfQ05UTAorI2RlZmluZSBTRE1BMF9STEM3X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMF9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMF9STEM3X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEwX1JMQzdfUkJfQkFTRQorI2RlZmluZSBTRE1BMF9STEM3X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDN19SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM3X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMF9STEM3X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzdfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BMF9STEM3X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDN19SQl9XUFRSCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM3X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM3X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzdfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTBfUkxDN19SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzdfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM3X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDN19JQl9DTlRMCisjZGVmaW5lIFNETUEwX1JMQzdfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM3X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDN19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzdfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDN19JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDN19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTBfUkxDN19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTBfUkxDN19JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTBfUkxDN19JQl9SUFRSCisjZGVmaW5lIFNETUEwX1JMQzdfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEM3X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMF9STEM3X0lCX09GRlNFVAorI2RlZmluZSBTRE1BMF9STEM3X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDN19JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTBfUkxDN19JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEwX1JMQzdfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMF9STEM3X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BMF9STEM3X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTBfUkxDN19JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzdfSUJfU0laRQorI2RlZmluZSBTRE1BMF9STEM3X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDN19TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDN19TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEwX1JMQzdfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTBfUkxDN19DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTBfUkxDN19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEwX1JMQzdfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTBfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEwX1JMQzdfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMF9STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMF9STEM3X0RPT1JCRUxMCisjZGVmaW5lIFNETUEwX1JMQzdfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTBfUkxDN19ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMF9STEM3X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMF9STEM3X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMF9STEM3X1NUQVRVUworI2RlZmluZSBTRE1BMF9STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEwX1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEwX1JMQzdfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEwX1JMQzdfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM3X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDN19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTBfUkxDN19ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDN19XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTBfUkxDN19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTBfUkxDN19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTBfUkxDN19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTBfUkxDN19ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTBfUkxDN19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzdfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEwX1JMQzdfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTBfUkxDN19DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEwX1JMQzdfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEwX1JMQzdfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTBfUkxDN19DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzdfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BMF9STEM3X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTBfUkxDN19QUkVFTVBUCisjZGVmaW5lIFNETUEwX1JMQzdfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM3X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMF9STEM3X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMF9STEM3X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BMF9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BMF9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTBfUkxDN19SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMF9STEM3X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEwX1JMQzdfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMF9STEM3X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMF9STEM3X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMF9STEM3X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMF9STEM3X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTBfUkxDN19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEwX1JMQzdfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM3X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM3X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMF9STEM3X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDN19NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTBfUkxDN19NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzdfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM3X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM3X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMF9STEM3X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDN19NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTBfUkxDN19NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzdfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMF9STEM3X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMF9STEM3X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMF9STEM3X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTBfUkxDN19NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTBfUkxDN19NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTBfUkxDN19NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEwX1JMQzdfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTBfUkxDN19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMF9STEM3X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTBfUkxDN19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEwX1JMQzdfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWExL3NkbWExXzRfMl8yX29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWExL3NkbWExXzRfMl8yX29mZnNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4MTIzM2EKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTEvc2RtYTFfNF8yXzJfb2Zmc2V0LmgKQEAgLTAsMCArMSwxMDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9zZG1hMV80XzJfMl9PRkZTRVRfSEVBREVSCisjZGVmaW5lIF9zZG1hMV80XzJfMl9PRkZTRVRfSEVBREVSCisKKworCisvLyBhZGRyZXNzQmxvY2s6IHNkbWExX3NkbWExZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4NjE4MAorI2RlZmluZSBtbVNETUExX1VDT0RFX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBtbVNETUExX1VDT0RFX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9VQ09ERV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgbW1TRE1BMV9VQ09ERV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfVk1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIG1tU0RNQTFfVk1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1ZNX0NUWF9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBtbVNETUExX1ZNX0NUWF9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9WTV9DVFhfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgbW1TRE1BMV9WTV9DVFhfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfQUNUSVZFX0ZDTl9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIG1tU0RNQTFfQUNUSVZFX0ZDTl9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1ZNX0NUWF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOAorI2RlZmluZSBtbVNETUExX1ZNX0NUWF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9WSVJUX1JFU0VUX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDkKKyNkZWZpbmUgbW1TRE1BMV9WSVJUX1JFU0VUX1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfVkZfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBhCisjZGVmaW5lIG1tU0RNQTFfVkZfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0NPTlRFWFRfUkVHX1RZUEUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYgorI2RlZmluZSBtbVNETUExX0NPTlRFWFRfUkVHX1RZUEUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9DT05URVhUX1JFR19UWVBFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGMKKyNkZWZpbmUgbW1TRE1BMV9DT05URVhUX1JFR19UWVBFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBkCisjZGVmaW5lIG1tU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0NPTlRFWFRfUkVHX1RZUEUzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZQorI2RlZmluZSBtbVNETUExX0NPTlRFWFRfUkVHX1RZUEUzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QVUJfUkVHX1RZUEUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGYKKyNkZWZpbmUgbW1TRE1BMV9QVUJfUkVHX1RZUEUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUFVCX1JFR19UWVBFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwCisjZGVmaW5lIG1tU0RNQTFfUFVCX1JFR19UWVBFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BVQl9SRUdfVFlQRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMQorI2RlZmluZSBtbVNETUExX1BVQl9SRUdfVFlQRTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QVUJfUkVHX1RZUEUzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTIKKyNkZWZpbmUgbW1TRE1BMV9QVUJfUkVHX1RZUEUzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfTU1IVUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEzCisjZGVmaW5lIG1tU0RNQTFfTU1IVUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0NPTlRFWFRfR1JPVVBfQk9VTkRBUlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxOQorI2RlZmluZSBtbVNETUExX0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QT1dFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWEKKyNkZWZpbmUgbW1TRE1BMV9QT1dFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFiCisjZGVmaW5lIG1tU0RNQTFfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYworI2RlZmluZSBtbVNETUExX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9DSElDS0VOX0JJVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWQKKyNkZWZpbmUgbW1TRE1BMV9DSElDS0VOX0JJVFNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0JfQUREUl9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFlCisjZGVmaW5lIG1tU0RNQTFfR0JfQUREUl9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dCX0FERFJfQ09ORklHX1JFQUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZgorI2RlZmluZSBtbVNETUExX0dCX0FERFJfQ09ORklHX1JFQURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9SQl9SUFRSX0ZFVENIX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgbW1TRE1BMV9SQl9SUFRSX0ZFVENIX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIxCisjZGVmaW5lIG1tU0RNQTFfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JCX1JQVFJfRkVUQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMgorI2RlZmluZSBtbVNETUExX1JCX1JQVFJfRkVUQ0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9JQl9PRkZTRVRfRkVUQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgbW1TRE1BMV9JQl9PRkZTRVRfRkVUQ0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUFJPR1JBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI0CisjZGVmaW5lIG1tU0RNQTFfUFJPR1JBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1NUQVRVU19SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNQorI2RlZmluZSBtbVNETUExX1NUQVRVU19SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9TVEFUVVMxX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjYKKyNkZWZpbmUgbW1TRE1BMV9TVEFUVVMxX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkRfQlVSU1RfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI3CisjZGVmaW5lIG1tU0RNQTFfUkRfQlVSU1RfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0hCTV9QQUdFX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOAorI2RlZmluZSBtbVNETUExX0hCTV9QQUdFX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9VQ09ERV9DSEVDS1NVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjkKKyNkZWZpbmUgbW1TRE1BMV9VQ09ERV9DSEVDS1NVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfRjMyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJhCisjZGVmaW5lIG1tU0RNQTFfRjMyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0ZSRUVaRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYgorI2RlZmluZSBtbVNETUExX0ZSRUVaRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QSEFTRTBfUVVBTlRVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmMKKyNkZWZpbmUgbW1TRE1BMV9QSEFTRTBfUVVBTlRVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEhBU0UxX1FVQU5UVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJkCisjZGVmaW5lIG1tU0RNQTFfUEhBU0UxX1FVQU5UVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0VEQ19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMgorI2RlZmluZSBtbVNETUExX0VEQ19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9CQV9USFJFU0hPTEQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzMKKyNkZWZpbmUgbW1TRE1BMV9CQV9USFJFU0hPTERfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM0CisjZGVmaW5lIG1tU0RNQTFfSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNQorI2RlZmluZSBtbVNETUExX1ZFUlNJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9FRENfQ09VTlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzYKKyNkZWZpbmUgbW1TRE1BMV9FRENfQ09VTlRFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfRURDX0NPVU5URVJfQ0xFQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM3CisjZGVmaW5lIG1tU0RNQTFfRURDX0NPVU5URVJfQ0xFQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1NUQVRVUzJfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOAorI2RlZmluZSBtbVNETUExX1NUQVRVUzJfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9BVE9NSUNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzkKKyNkZWZpbmUgbW1TRE1BMV9BVE9NSUNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfQVRPTUlDX1BSRU9QX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNhCisjZGVmaW5lIG1tU0RNQTFfQVRPTUlDX1BSRU9QX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0FUT01JQ19QUkVPUF9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYgorI2RlZmluZSBtbVNETUExX0FUT01JQ19QUkVPUF9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2MKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfVVRDTDFfV0FURVJNSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNkCisjZGVmaW5lIG1tU0RNQTFfVVRDTDFfV0FURVJNS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1VUQ0wxX1JEX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZQorI2RlZmluZSBtbVNETUExX1VUQ0wxX1JEX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9XUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2YKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9XUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfVVRDTDFfSU5WMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwCisjZGVmaW5lIG1tU0RNQTFfVVRDTDFfSU5WMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1VUQ0wxX0lOVjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MQorI2RlZmluZSBtbVNETUExX1VUQ0wxX0lOVjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9JTlYyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDIKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9JTlYyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfVVRDTDFfUkRfWE5BQ0swICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQzCisjZGVmaW5lIG1tU0RNQTFfVVRDTDFfUkRfWE5BQ0swX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1VUQ0wxX1JEX1hOQUNLMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NAorI2RlZmluZSBtbVNETUExX1VUQ0wxX1JEX1hOQUNLMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9XUl9YTkFDSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDUKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9XUl9YTkFDSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfVVRDTDFfV1JfWE5BQ0sxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ2CisjZGVmaW5lIG1tU0RNQTFfVVRDTDFfV1JfWE5BQ0sxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1VUQ0wxX1RJTUVPVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NworI2RlZmluZSBtbVNETUExX1VUQ0wxX1RJTUVPVVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9QQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDgKKyNkZWZpbmUgbW1TRE1BMV9VVENMMV9QQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUE9XRVJfQ05UTF9JRExFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ5CisjZGVmaW5lIG1tU0RNQTFfUE9XRVJfQ05UTF9JRExFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JFTEFYX09SREVSSU5HX0xVVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YQorI2RlZmluZSBtbVNETUExX1JFTEFYX09SREVSSU5HX0xVVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9DSElDS0VOX0JJVFNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGIKKyNkZWZpbmUgbW1TRE1BMV9DSElDS0VOX0JJVFNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfU1RBVFVTM19SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRjCisjZGVmaW5lIG1tU0RNQTFfU1RBVFVTM19SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BIWVNJQ0FMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZAorI2RlZmluZSBtbVNETUExX1BIWVNJQ0FMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QSFlTSUNBTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGUKKyNkZWZpbmUgbW1TRE1BMV9QSFlTSUNBTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEhBU0UyX1FVQU5UVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRmCisjZGVmaW5lIG1tU0RNQTFfUEhBU0UyX1FVQU5UVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0VSUk9SX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MAorI2RlZmluZSBtbVNETUExX0VSUk9SX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QVUJfRFVNTVlfUkVHMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTEKKyNkZWZpbmUgbW1TRE1BMV9QVUJfRFVNTVlfUkVHMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUFVCX0RVTU1ZX1JFRzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUyCisjZGVmaW5lIG1tU0RNQTFfUFVCX0RVTU1ZX1JFRzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BVQl9EVU1NWV9SRUcyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MworI2RlZmluZSBtbVNETUExX1BVQl9EVU1NWV9SRUcyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QVUJfRFVNTVlfUkVHMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgbW1TRE1BMV9QVUJfRFVNTVlfUkVHM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfRjMyX0NPVU5URVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU1CisjZGVmaW5lIG1tU0RNQTFfRjMyX0NPVU5URVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1VOQlJFQUtBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NgorI2RlZmluZSBtbVNETUExX1VOQlJFQUtBQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTcKKyNkZWZpbmUgbW1TRE1BMV9QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEVSRkNPVU5URVIwX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU4CisjZGVmaW5lIG1tU0RNQTFfUEVSRkNPVU5URVIwX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BFUkZDT1VOVEVSMV9SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OQorI2RlZmluZSBtbVNETUExX1BFUkZDT1VOVEVSMV9SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWEKKyNkZWZpbmUgbW1TRE1BMV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfQ1JEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDViCisjZGVmaW5lIG1tU0RNQTFfQ1JEX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dQVV9JT1ZfVklPTEFUSU9OX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZAorI2RlZmluZSBtbVNETUExX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9VTFZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWUKKyNkZWZpbmUgbW1TRE1BMV9VTFZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfRUFfREJJVF9BRERSX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwCisjZGVmaW5lIG1tU0RNQTFfRUFfREJJVF9BRERSX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0VBX0RCSVRfQUREUl9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MQorI2RlZmluZSBtbVNETUExX0VBX0RCSVRfQUREUl9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjIKKyNkZWZpbmUgbW1TRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MQorI2RlZmluZSBtbVNETUExX0dGWF9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODIKKyNkZWZpbmUgbW1TRE1BMV9HRlhfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgzCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NAorI2RlZmluZSBtbVNETUExX0dGWF9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODUKKyNkZWZpbmUgbW1TRE1BMV9HRlhfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg2CisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NworI2RlZmluZSBtbVNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODgKKyNkZWZpbmUgbW1TRE1BMV9HRlhfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg5CisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YQorI2RlZmluZSBtbVNETUExX0dGWF9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGIKKyNkZWZpbmUgbW1TRE1BMV9HRlhfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhjCisjZGVmaW5lIG1tU0RNQTFfR0ZYX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZAorI2RlZmluZSBtbVNETUExX0dGWF9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGUKKyNkZWZpbmUgbW1TRE1BMV9HRlhfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhmCisjZGVmaW5lIG1tU0RNQTFfR0ZYX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MAorI2RlZmluZSBtbVNETUExX0dGWF9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTEKKyNkZWZpbmUgbW1TRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkyCisjZGVmaW5lIG1tU0RNQTFfR0ZYX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9DT05URVhUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MworI2RlZmluZSBtbVNETUExX0dGWF9DT05URVhUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTgKKyNkZWZpbmUgbW1TRE1BMV9HRlhfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE5CisjZGVmaW5lIG1tU0RNQTFfR0ZYX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYQorI2RlZmluZSBtbVNETUExX0dGWF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWIKKyNkZWZpbmUgbW1TRE1BMV9HRlhfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFjCisjZGVmaW5lIG1tU0RNQTFfR0ZYX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZAorI2RlZmluZSBtbVNETUExX0dGWF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWYKKyNkZWZpbmUgbW1TRE1BMV9HRlhfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMQorI2RlZmluZSBtbVNETUExX0dGWF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjIKKyNkZWZpbmUgbW1TRE1BMV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIzCisjZGVmaW5lIG1tU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNAorI2RlZmluZSBtbVNETUExX0dGWF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjUKKyNkZWZpbmUgbW1TRE1BMV9HRlhfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMQorI2RlZmluZSBtbVNETUExX0dGWF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzIKKyNkZWZpbmUgbW1TRE1BMV9HRlhfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMzCisjZGVmaW5lIG1tU0RNQTFfR0ZYX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNAorI2RlZmluZSBtbVNETUExX0dGWF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzUKKyNkZWZpbmUgbW1TRE1BMV9HRlhfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM2CisjZGVmaW5lIG1tU0RNQTFfR0ZYX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX0dGWF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNworI2RlZmluZSBtbVNETUExX0dGWF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9HRlhfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzgKKyNkZWZpbmUgbW1TRE1BMV9HRlhfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfR0ZYX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM5CisjZGVmaW5lIG1tU0RNQTFfR0ZYX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkOAorI2RlZmluZSBtbVNETUExX1BBR0VfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZDkKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRhCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYgorI2RlZmluZSBtbVNETUExX1BBR0VfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGMKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRkCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZQorI2RlZmluZSBtbVNETUExX1BBR0VfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGYKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMQorI2RlZmluZSBtbVNETUExX1BBR0VfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTIKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUzCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNAorI2RlZmluZSBtbVNETUExX1BBR0VfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTUKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU2CisjZGVmaW5lIG1tU0RNQTFfUEFHRV9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNworI2RlZmluZSBtbVNETUExX1BBR0VfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTgKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU5CisjZGVmaW5lIG1tU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlYQorI2RlZmluZSBtbVNETUExX1BBR0VfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAxCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMgorI2RlZmluZSBtbVNETUExX1BBR0VfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDMKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA0CisjZGVmaW5lIG1tU0RNQTFfUEFHRV9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNQorI2RlZmluZSBtbVNETUExX1BBR0VfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDcKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA4CisjZGVmaW5lIG1tU0RNQTFfUEFHRV9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwOQorI2RlZmluZSBtbVNETUExX1BBR0VfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGEKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBiCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYworI2RlZmluZSBtbVNETUExX1BBR0VfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGQKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE4CisjZGVmaW5lIG1tU0RNQTFfUEFHRV9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExOQorI2RlZmluZSBtbVNETUExX1BBR0VfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWEKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFiCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYworI2RlZmluZSBtbVNETUExX1BBR0VfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWQKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFlCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1BBR0VfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZgorI2RlZmluZSBtbVNETUExX1BBR0VfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjAKKyNkZWZpbmUgbW1TRE1BMV9QQUdFX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTIxCisjZGVmaW5lIG1tU0RNQTFfUEFHRV9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMAorI2RlZmluZSBtbVNETUExX1JMQzBfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzEKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMyCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMworI2RlZmluZSBtbVNETUExX1JMQzBfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzQKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM1CisjZGVmaW5lIG1tU0RNQTFfUkxDMF9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNgorI2RlZmluZSBtbVNETUExX1JMQzBfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzcKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM4CisjZGVmaW5lIG1tU0RNQTFfUkxDMF9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzOQorI2RlZmluZSBtbVNETUExX1JMQzBfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2EKKyNkZWZpbmUgbW1TRE1BMV9STEMwX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNiCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYworI2RlZmluZSBtbVNETUExX1JMQzBfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2QKKyNkZWZpbmUgbW1TRE1BMV9STEMwX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNlCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZgorI2RlZmluZSBtbVNETUExX1JMQzBfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQxCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MgorI2RlZmluZSBtbVNETUExX1JMQzBfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTgKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU5CisjZGVmaW5lIG1tU0RNQTFfUkxDMF9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1YQorI2RlZmluZSBtbVNETUExX1JMQzBfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWIKKyNkZWZpbmUgbW1TRE1BMV9STEMwX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVjCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1ZAorI2RlZmluZSBtbVNETUExX1JMQzBfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWYKKyNkZWZpbmUgbW1TRE1BMV9STEMwX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MQorI2RlZmluZSBtbVNETUExX1JMQzBfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjIKKyNkZWZpbmUgbW1TRE1BMV9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYzCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2NAorI2RlZmluZSBtbVNETUExX1JMQzBfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjUKKyNkZWZpbmUgbW1TRE1BMV9STEMwX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MQorI2RlZmluZSBtbVNETUExX1JMQzBfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzIKKyNkZWZpbmUgbW1TRE1BMV9STEMwX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTczCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NAorI2RlZmluZSBtbVNETUExX1JMQzBfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzUKKyNkZWZpbmUgbW1TRE1BMV9STEMwX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc2CisjZGVmaW5lIG1tU0RNQTFfUkxDMF9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzBfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NworI2RlZmluZSBtbVNETUExX1JMQzBfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMwX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzgKKyNkZWZpbmUgbW1TRE1BMV9STEMwX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMF9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc5CisjZGVmaW5lIG1tU0RNQTFfUkxDMF9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4OAorI2RlZmluZSBtbVNETUExX1JMQzFfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODkKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThhCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YgorI2RlZmluZSBtbVNETUExX1JMQzFfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGMKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThkCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZQorI2RlZmluZSBtbVNETUExX1JMQzFfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGYKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MQorI2RlZmluZSBtbVNETUExX1JMQzFfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTIKKyNkZWZpbmUgbW1TRE1BMV9STEMxX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkzCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NAorI2RlZmluZSBtbVNETUExX1JMQzFfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTUKKyNkZWZpbmUgbW1TRE1BMV9STEMxX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk2CisjZGVmaW5lIG1tU0RNQTFfUkxDMV9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NworI2RlZmluZSBtbVNETUExX1JMQzFfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTgKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk5CisjZGVmaW5lIG1tU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5YQorI2RlZmluZSBtbVNETUExX1JMQzFfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIxCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMgorI2RlZmluZSBtbVNETUExX1JMQzFfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjMKKyNkZWZpbmUgbW1TRE1BMV9STEMxX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI0CisjZGVmaW5lIG1tU0RNQTFfUkxDMV9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNQorI2RlZmluZSBtbVNETUExX1JMQzFfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjcKKyNkZWZpbmUgbW1TRE1BMV9STEMxX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI4CisjZGVmaW5lIG1tU0RNQTFfUkxDMV9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiOQorI2RlZmluZSBtbVNETUExX1JMQzFfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmEKKyNkZWZpbmUgbW1TRE1BMV9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJiCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiYworI2RlZmluZSBtbVNETUExX1JMQzFfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmQKKyNkZWZpbmUgbW1TRE1BMV9STEMxX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWM4CisjZGVmaW5lIG1tU0RNQTFfUkxDMV9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjOQorI2RlZmluZSBtbVNETUExX1JMQzFfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2EKKyNkZWZpbmUgbW1TRE1BMV9STEMxX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNiCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjYworI2RlZmluZSBtbVNETUExX1JMQzFfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2QKKyNkZWZpbmUgbW1TRE1BMV9STEMxX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNlCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzFfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjZgorI2RlZmluZSBtbVNETUExX1JMQzFfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZDAKKyNkZWZpbmUgbW1TRE1BMV9STEMxX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWQxCisjZGVmaW5lIG1tU0RNQTFfUkxDMV9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMAorI2RlZmluZSBtbVNETUExX1JMQzJfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTEKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUyCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMworI2RlZmluZSBtbVNETUExX1JMQzJfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTQKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU1CisjZGVmaW5lIG1tU0RNQTFfUkxDMl9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNgorI2RlZmluZSBtbVNETUExX1JMQzJfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTcKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU4CisjZGVmaW5lIG1tU0RNQTFfUkxDMl9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlOQorI2RlZmluZSBtbVNETUExX1JMQzJfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWEKKyNkZWZpbmUgbW1TRE1BMV9STEMyX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWViCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYworI2RlZmluZSBtbVNETUExX1JMQzJfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWQKKyNkZWZpbmUgbW1TRE1BMV9STEMyX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVlCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlZgorI2RlZmluZSBtbVNETUExX1JMQzJfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYxCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMgorI2RlZmluZSBtbVNETUExX1JMQzJfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDgKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjA5CisjZGVmaW5lIG1tU0RNQTFfUkxDMl9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYQorI2RlZmluZSBtbVNETUExX1JMQzJfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGIKKyNkZWZpbmUgbW1TRE1BMV9STEMyX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBjCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwZAorI2RlZmluZSBtbVNETUExX1JMQzJfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGYKKyNkZWZpbmUgbW1TRE1BMV9STEMyX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjEwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMQorI2RlZmluZSBtbVNETUExX1JMQzJfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTIKKyNkZWZpbmUgbW1TRE1BMV9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjEzCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxNAorI2RlZmluZSBtbVNETUExX1JMQzJfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTUKKyNkZWZpbmUgbW1TRE1BMV9STEMyX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMQorI2RlZmluZSBtbVNETUExX1JMQzJfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjIKKyNkZWZpbmUgbW1TRE1BMV9STEMyX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIzCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNAorI2RlZmluZSBtbVNETUExX1JMQzJfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjUKKyNkZWZpbmUgbW1TRE1BMV9STEMyX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI2CisjZGVmaW5lIG1tU0RNQTFfUkxDMl9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzJfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNworI2RlZmluZSBtbVNETUExX1JMQzJfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMyX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjgKKyNkZWZpbmUgbW1TRE1BMV9STEMyX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDMl9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI5CisjZGVmaW5lIG1tU0RNQTFfUkxDMl9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzOAorI2RlZmluZSBtbVNETUExX1JMQzNfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMzkKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNhCisjZGVmaW5lIG1tU0RNQTFfUkxDM19SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYgorI2RlZmluZSBtbVNETUExX1JMQzNfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2MKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNkCisjZGVmaW5lIG1tU0RNQTFfUkxDM19SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZQorI2RlZmluZSBtbVNETUExX1JMQzNfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2YKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MQorI2RlZmluZSBtbVNETUExX1JMQzNfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDIKKyNkZWZpbmUgbW1TRE1BMV9STEMzX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQzCisjZGVmaW5lIG1tU0RNQTFfUkxDM19JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NAorI2RlZmluZSBtbVNETUExX1JMQzNfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDUKKyNkZWZpbmUgbW1TRE1BMV9STEMzX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ2CisjZGVmaW5lIG1tU0RNQTFfUkxDM19JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NworI2RlZmluZSBtbVNETUExX1JMQzNfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDgKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ5CisjZGVmaW5lIG1tU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0YQorI2RlZmluZSBtbVNETUExX1JMQzNfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYxCisjZGVmaW5lIG1tU0RNQTFfUkxDM19ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MgorI2RlZmluZSBtbVNETUExX1JMQzNfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjMKKyNkZWZpbmUgbW1TRE1BMV9STEMzX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY0CisjZGVmaW5lIG1tU0RNQTFfUkxDM19DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NQorI2RlZmluZSBtbVNETUExX1JMQzNfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjcKKyNkZWZpbmUgbW1TRE1BMV9STEMzX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY4CisjZGVmaW5lIG1tU0RNQTFfUkxDM19QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2OQorI2RlZmluZSBtbVNETUExX1JMQzNfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmEKKyNkZWZpbmUgbW1TRE1BMV9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZiCisjZGVmaW5lIG1tU0RNQTFfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YworI2RlZmluZSBtbVNETUExX1JMQzNfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmQKKyNkZWZpbmUgbW1TRE1BMV9STEMzX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc4CisjZGVmaW5lIG1tU0RNQTFfUkxDM19NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3OQorI2RlZmluZSBtbVNETUExX1JMQzNfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2EKKyNkZWZpbmUgbW1TRE1BMV9STEMzX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdiCisjZGVmaW5lIG1tU0RNQTFfUkxDM19NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YworI2RlZmluZSBtbVNETUExX1JMQzNfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2QKKyNkZWZpbmUgbW1TRE1BMV9STEMzX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdlCisjZGVmaW5lIG1tU0RNQTFfUkxDM19NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzNfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZgorI2RlZmluZSBtbVNETUExX1JMQzNfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODAKKyNkZWZpbmUgbW1TRE1BMV9STEMzX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDM19NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjgxCisjZGVmaW5lIG1tU0RNQTFfUkxDM19NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MAorI2RlZmluZSBtbVNETUExX1JMQzRfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTEKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkyCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MworI2RlZmluZSBtbVNETUExX1JMQzRfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTQKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk1CisjZGVmaW5lIG1tU0RNQTFfUkxDNF9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NgorI2RlZmluZSBtbVNETUExX1JMQzRfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTcKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk4CisjZGVmaW5lIG1tU0RNQTFfUkxDNF9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5OQorI2RlZmluZSBtbVNETUExX1JMQzRfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWEKKyNkZWZpbmUgbW1TRE1BMV9STEM0X0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjliCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YworI2RlZmluZSBtbVNETUExX1JMQzRfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWQKKyNkZWZpbmUgbW1TRE1BMV9STEM0X0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjllCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZgorI2RlZmluZSBtbVNETUExX1JMQzRfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmExCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMgorI2RlZmluZSBtbVNETUExX1JMQzRfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjgKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmI5CisjZGVmaW5lIG1tU0RNQTFfUkxDNF9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYQorI2RlZmluZSBtbVNETUExX1JMQzRfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmIKKyNkZWZpbmUgbW1TRE1BMV9STEM0X0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJjCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiZAorI2RlZmluZSBtbVNETUExX1JMQzRfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmYKKyNkZWZpbmUgbW1TRE1BMV9STEM0X0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMQorI2RlZmluZSBtbVNETUExX1JMQzRfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzIKKyNkZWZpbmUgbW1TRE1BMV9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMzCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNAorI2RlZmluZSBtbVNETUExX1JMQzRfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzUKKyNkZWZpbmUgbW1TRE1BMV9STEM0X01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMQorI2RlZmluZSBtbVNETUExX1JMQzRfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDIKKyNkZWZpbmUgbW1TRE1BMV9STEM0X01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQzCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNAorI2RlZmluZSBtbVNETUExX1JMQzRfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDUKKyNkZWZpbmUgbW1TRE1BMV9STEM0X01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ2CisjZGVmaW5lIG1tU0RNQTFfUkxDNF9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzRfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNworI2RlZmluZSBtbVNETUExX1JMQzRfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM0X01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDgKKyNkZWZpbmUgbW1TRE1BMV9STEM0X01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNF9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ5CisjZGVmaW5lIG1tU0RNQTFfUkxDNF9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlOAorI2RlZmluZSBtbVNETUExX1JMQzVfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTkKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVhCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYgorI2RlZmluZSBtbVNETUExX1JMQzVfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWMKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVkCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZQorI2RlZmluZSBtbVNETUExX1JMQzVfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWYKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMQorI2RlZmluZSBtbVNETUExX1JMQzVfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjIKKyNkZWZpbmUgbW1TRE1BMV9STEM1X0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYzCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNAorI2RlZmluZSBtbVNETUExX1JMQzVfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjUKKyNkZWZpbmUgbW1TRE1BMV9STEM1X0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY2CisjZGVmaW5lIG1tU0RNQTFfUkxDNV9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNworI2RlZmluZSBtbVNETUExX1JMQzVfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjgKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY5CisjZGVmaW5lIG1tU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmYQorI2RlZmluZSBtbVNETUExX1JMQzVfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzExCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMgorI2RlZmluZSBtbVNETUExX1JMQzVfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTMKKyNkZWZpbmUgbW1TRE1BMV9STEM1X0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE0CisjZGVmaW5lIG1tU0RNQTFfUkxDNV9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNQorI2RlZmluZSBtbVNETUExX1JMQzVfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTcKKyNkZWZpbmUgbW1TRE1BMV9STEM1X0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE4CisjZGVmaW5lIG1tU0RNQTFfUkxDNV9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxOQorI2RlZmluZSBtbVNETUExX1JMQzVfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWEKKyNkZWZpbmUgbW1TRE1BMV9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFiCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYworI2RlZmluZSBtbVNETUExX1JMQzVfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWQKKyNkZWZpbmUgbW1TRE1BMV9STEM1X01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI4CisjZGVmaW5lIG1tU0RNQTFfUkxDNV9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyOQorI2RlZmluZSBtbVNETUExX1JMQzVfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmEKKyNkZWZpbmUgbW1TRE1BMV9STEM1X01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJiCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyYworI2RlZmluZSBtbVNETUExX1JMQzVfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmQKKyNkZWZpbmUgbW1TRE1BMV9STEM1X01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJlCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzVfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZgorI2RlZmluZSBtbVNETUExX1JMQzVfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMzAKKyNkZWZpbmUgbW1TRE1BMV9STEM1X01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzMxCisjZGVmaW5lIG1tU0RNQTFfUkxDNV9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MAorI2RlZmluZSBtbVNETUExX1JMQzZfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDEKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQyCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MworI2RlZmluZSBtbVNETUExX1JMQzZfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDQKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ1CisjZGVmaW5lIG1tU0RNQTFfUkxDNl9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NgorI2RlZmluZSBtbVNETUExX1JMQzZfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDcKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ4CisjZGVmaW5lIG1tU0RNQTFfUkxDNl9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0OQorI2RlZmluZSBtbVNETUExX1JMQzZfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGEKKyNkZWZpbmUgbW1TRE1BMV9STEM2X0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRiCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0YworI2RlZmluZSBtbVNETUExX1JMQzZfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGQKKyNkZWZpbmUgbW1TRE1BMV9STEM2X0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRlCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0ZgorI2RlZmluZSBtbVNETUExX1JMQzZfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzUxCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MgorI2RlZmluZSBtbVNETUExX1JMQzZfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjgKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzY5CisjZGVmaW5lIG1tU0RNQTFfUkxDNl9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2YQorI2RlZmluZSBtbVNETUExX1JMQzZfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmIKKyNkZWZpbmUgbW1TRE1BMV9STEM2X0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZjCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2ZAorI2RlZmluZSBtbVNETUExX1JMQzZfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmYKKyNkZWZpbmUgbW1TRE1BMV9STEM2X0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MQorI2RlZmluZSBtbVNETUExX1JMQzZfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzIKKyNkZWZpbmUgbW1TRE1BMV9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzczCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3NAorI2RlZmluZSBtbVNETUExX1JMQzZfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzUKKyNkZWZpbmUgbW1TRE1BMV9STEM2X01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MQorI2RlZmluZSBtbVNETUExX1JMQzZfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODIKKyNkZWZpbmUgbW1TRE1BMV9STEM2X01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgzCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NAorI2RlZmluZSBtbVNETUExX1JMQzZfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODUKKyNkZWZpbmUgbW1TRE1BMV9STEM2X01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg2CisjZGVmaW5lIG1tU0RNQTFfUkxDNl9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzZfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NworI2RlZmluZSBtbVNETUExX1JMQzZfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM2X01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODgKKyNkZWZpbmUgbW1TRE1BMV9STEM2X01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDNl9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg5CisjZGVmaW5lIG1tU0RNQTFfUkxDNl9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5OAorI2RlZmluZSBtbVNETUExX1JMQzdfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOTkKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzlhCisjZGVmaW5lIG1tU0RNQTFfUkxDN19SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5YgorI2RlZmluZSBtbVNETUExX1JMQzdfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWMKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzlkCisjZGVmaW5lIG1tU0RNQTFfUkxDN19SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5ZQorI2RlZmluZSBtbVNETUExX1JMQzdfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWYKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2EwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMQorI2RlZmluZSBtbVNETUExX1JMQzdfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTIKKyNkZWZpbmUgbW1TRE1BMV9STEM3X0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2EzCisjZGVmaW5lIG1tU0RNQTFfUkxDN19JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNAorI2RlZmluZSBtbVNETUExX1JMQzdfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTUKKyNkZWZpbmUgbW1TRE1BMV9STEM3X0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E2CisjZGVmaW5lIG1tU0RNQTFfUkxDN19JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNworI2RlZmluZSBtbVNETUExX1JMQzdfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTgKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E5CisjZGVmaW5lIG1tU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhYQorI2RlZmluZSBtbVNETUExX1JMQzdfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MxCisjZGVmaW5lIG1tU0RNQTFfUkxDN19ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMgorI2RlZmluZSBtbVNETUExX1JMQzdfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzMKKyNkZWZpbmUgbW1TRE1BMV9STEM3X0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M0CisjZGVmaW5lIG1tU0RNQTFfUkxDN19DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNQorI2RlZmluZSBtbVNETUExX1JMQzdfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzcKKyNkZWZpbmUgbW1TRE1BMV9STEM3X0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M4CisjZGVmaW5lIG1tU0RNQTFfUkxDN19QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjOQorI2RlZmluZSBtbVNETUExX1JMQzdfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2EKKyNkZWZpbmUgbW1TRE1BMV9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NiCisjZGVmaW5lIG1tU0RNQTFfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjYworI2RlZmluZSBtbVNETUExX1JMQzdfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2QKKyNkZWZpbmUgbW1TRE1BMV9STEM3X01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q4CisjZGVmaW5lIG1tU0RNQTFfUkxDN19NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkOQorI2RlZmluZSBtbVNETUExX1JMQzdfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGEKKyNkZWZpbmUgbW1TRE1BMV9STEM3X01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RiCisjZGVmaW5lIG1tU0RNQTFfUkxDN19NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYworI2RlZmluZSBtbVNETUExX1JMQzdfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGQKKyNkZWZpbmUgbW1TRE1BMV9STEM3X01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RlCisjZGVmaW5lIG1tU0RNQTFfUkxDN19NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVNETUExX1JMQzdfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZgorI2RlZmluZSBtbVNETUExX1JMQzdfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTAKKyNkZWZpbmUgbW1TRE1BMV9STEM3X01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tU0RNQTFfUkxDN19NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2UxCisjZGVmaW5lIG1tU0RNQTFfUkxDN19NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMS9zZG1hMV80XzJfMl9zaF9tYXNrLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTEvc2RtYTFfNF8yXzJfc2hfbWFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjMjQ2OGUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTEvc2RtYTFfNF8yXzJfc2hfbWFzay5oCkBAIC0wLDAgKzEsMjk1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfc2RtYTFfNF8yXzJfU0hfTUFTS19IRUFERVIKKyNkZWZpbmUgX3NkbWExXzRfMl8yX1NIX01BU0tfSEVBREVSCisKKworLy8gYWRkcmVzc0Jsb2NrOiBzZG1hMV9zZG1hMWRlYworLy9TRE1BMV9VQ09ERV9BRERSCisjZGVmaW5lIFNETUExX1VDT0RFX0FERFJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9VQ09ERV9BRERSX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorLy9TRE1BMV9VQ09ERV9EQVRBCisjZGVmaW5lIFNETUExX1VDT0RFX0RBVEFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9VQ09ERV9EQVRBX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9WTV9DTlRMCisjZGVmaW5lIFNETUExX1ZNX0NOVExfX0NNRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9WTV9DTlRMX19DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9TRE1BMV9WTV9DVFhfTE8KKyNkZWZpbmUgU0RNQTFfVk1fQ1RYX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1ZNX0NUWF9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1ZNX0NUWF9ISQorI2RlZmluZSBTRE1BMV9WTV9DVFhfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfVk1fQ1RYX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfQUNUSVZFX0ZDTl9JRAorI2RlZmluZSBTRE1BMV9BQ1RJVkVfRkNOX0lEX19WRklEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfQUNUSVZFX0ZDTl9JRF9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX0FDVElWRV9GQ05fSURfX1ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTFfQUNUSVZFX0ZDTl9JRF9fVkZJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTFfQUNUSVZFX0ZDTl9JRF9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGMEwKKyNkZWZpbmUgU0RNQTFfQUNUSVZFX0ZDTl9JRF9fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTFfVk1fQ1RYX0NOVEwKKyNkZWZpbmUgU0RNQTFfVk1fQ1RYX0NOVExfX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1ZNX0NUWF9DTlRMX19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9WTV9DVFhfQ05UTF9fUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9WTV9DVFhfQ05UTF9fVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9TRE1BMV9WSVJUX1JFU0VUX1JFUQorI2RlZmluZSBTRE1BMV9WSVJUX1JFU0VUX1JFUV9fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfVklSVF9SRVNFVF9SRVFfX1BGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMV9WSVJUX1JFU0VUX1JFUV9fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BMV9WSVJUX1JFU0VUX1JFUV9fUEZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMV9WRl9FTkFCTEUKKyNkZWZpbmUgU0RNQTFfVkZfRU5BQkxFX19WRl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1ZGX0VOQUJMRV9fVkZfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUExX0NPTlRFWFRfUkVHX1RZUEUwCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTFfR0ZYX1JCX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUExX0dGWF9SQl9CQVNFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTFfR0ZYX1JCX1JQVFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUExX0dGWF9SQl9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfV1BUUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUExX0dGWF9SQl9SUFRSX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfUlBUUl9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTFfR0ZYX0lCX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUExX0dGWF9JQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfSUJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTFfR0ZYX0lCX0JBU0VfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUExX0dGWF9JQl9CQVNFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfSUJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTFfR0ZYX1NLSVBfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUExX0dGWF9ET09SQkVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTFfR0ZYX0NPTlRFWFRfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfQkFTRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfUlBUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfUlBUUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfV1BUUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfV1BUUl9QT0xMX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfUlBUUl9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfUkJfUlBUUl9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfSUJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfSUJfUlBUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfSUJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfSUJfQkFTRV9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfSUJfQkFTRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfSUJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfU0tJUF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfRE9PUkJFTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMV9HRlhfQ09OVEVYVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL1NETUExX0NPTlRFWFRfUkVHX1RZUEUxCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMV9HRlhfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0RPT1JCRUxMX0xPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUExX0dGWF9XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMV9HRlhfRE9PUkJFTExfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0NTQV9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUExX0dGWF9DU0FfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUxX19WT0lEX1JFRzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0lCX1NVQl9SRU1BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUExX0dGWF9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0RVTU1ZX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUExX0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX1JCX0FRTF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMV9HRlhfTUlOT1JfUFRSX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTFfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0RPT1JCRUxMX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0RPT1JCRUxMX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0NTQV9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0NTQV9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fVk9JRF9SRUcyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0lCX1NVQl9SRU1BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX0RVTU1ZX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX1JCX0FRTF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTFfR0ZYX01JTk9SX1BUUl9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMV9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGQzAwMDAwTAorLy9TRE1BMV9DT05URVhUX1JFR19UWVBFMgorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMl9fU0RNQTFfR0ZYX01JRENNRF9EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUExX0dGWF9NSURDTURfREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMl9fU0RNQTFfR0ZYX01JRENNRF9EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUExX0dGWF9NSURDTURfREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMl9fU0RNQTFfR0ZYX01JRENNRF9EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUExX0dGWF9NSURDTURfREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFMl9fU0RNQTFfR0ZYX01JRENNRF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTJfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMV9HRlhfTUlEQ01EX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUyX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZDMDBMCisvL1NETUExX0NPTlRFWFRfUkVHX1RZUEUzCisjZGVmaW5lIFNETUExX0NPTlRFWFRfUkVHX1RZUEUzX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9DT05URVhUX1JFR19UWVBFM19fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QVUJfUkVHX1RZUEUwCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1VDT0RFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUwX19TRE1BMV9VQ09ERV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1ZNX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUwX19TRE1BMV9WTV9DVFhfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMF9fU0RNQTFfVk1fQ1RYX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0FDVElWRV9GQ05fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUwX19TRE1BMV9WTV9DVFhfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMF9fU0RNQTFfVklSVF9SRVNFVF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUwX19TRE1BMV9DT05URVhUX1JFR19UWVBFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMF9fU0RNQTFfQ09OVEVYVF9SRUdfVFlQRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NPTlRFWFRfUkVHX1RZUEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUwX19TRE1BMV9DT05URVhUX1JFR19UWVBFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMF9fU0RNQTFfUFVCX1JFR19UWVBFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1BVQl9SRUdfVFlQRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMF9fU0RNQTFfUFVCX1JFR19UWVBFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUwX19TRE1BMV9QVUJfUkVHX1RZUEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX01NSFVCX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMF9fUkVTRVJWRURfRk9SX1BTUFNNVV9BQ0NFU1NfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUwX19TRE1BMV9DT05URVhUX0dST1VQX0JPVU5EQVJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1BPV0VSX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMF9fU0RNQTFfQ0xLX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUwX19TRE1BMV9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NISUNLRU5fQklUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMF9fU0RNQTFfR0JfQUREUl9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUwX19TRE1BMV9HQl9BRERSX0NPTkZJR19SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1VDT0RFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1VDT0RFX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1ZNX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1ZNX0NUWF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1ZNX0NUWF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0FDVElWRV9GQ05fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1ZNX0NUWF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1ZJUlRfUkVTRVRfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NPTlRFWFRfUkVHX1RZUEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NPTlRFWFRfUkVHX1RZUEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NPTlRFWFRfUkVHX1RZUEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NPTlRFWFRfUkVHX1RZUEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1BVQl9SRUdfVFlQRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1BVQl9SRUdfVFlQRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1BVQl9SRUdfVFlQRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1BVQl9SRUdfVFlQRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX01NSFVCX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEX0ZPUl9QU1BTTVVfQUNDRVNTX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFFMDAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX1BPV0VSX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NMS19DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0NISUNLRU5fQklUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0dCX0FERFJfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTBfX1NETUExX0dCX0FERFJfQ09ORklHX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUExX1BVQl9SRUdfVFlQRTEKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfUkJfUlBUUl9GRVRDSF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BMV9SQl9SUFRSX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfSUJfT0ZGU0VUX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX1BST0dSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BMV9TVEFUVVNfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfU1RBVFVTMV9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX1JEX0JVUlNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BMV9IQk1fUEFHRV9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfVUNPREVfQ0hFQ0tTVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX0YzMl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BMV9GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfUEhBU0UwX1FVQU5UVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX1BIQVNFMV9RVUFOVFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BX1BPV0VSX0dBVElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUFfUEdGU01fV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BMV9FRENfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX0JBX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BMV9WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX0VEQ19DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfRURDX0NPVU5URVJfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BMV9TVEFUVVMyX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX0FUT01JQ19DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfQVRPTUlDX1BSRU9QX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BMV9BVE9NSUNfUFJFT1BfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX1VUQ0wxX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfVVRDTDFfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUxX19TRE1BMV9VVENMMV9SRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTFfX1NETUExX1VUQ0wxX1dSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfUkJfUlBUUl9GRVRDSF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfUkJfUlBUUl9GRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfSUJfT0ZGU0VUX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfUFJPR1JBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfU1RBVFVTX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfU1RBVFVTMV9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfUkRfQlVSU1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfSEJNX1BBR0VfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfVUNPREVfQ0hFQ0tTVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfRjMyX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfUEhBU0UwX1FVQU5UVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfUEhBU0UxX1FVQU5UVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQV9QT1dFUl9HQVRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfRURDX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfQkFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfVkVSU0lPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfRURDX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfRURDX0NPVU5URVJfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfU1RBVFVTMl9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfQVRPTUlDX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfQVRPTUlDX1BSRU9QX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfQVRPTUlDX1BSRU9QX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfVVRDTDFfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfVVRDTDFfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfVVRDTDFfUkRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMV9fU0RNQTFfVVRDTDFfV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTFfUFVCX1JFR19UWVBFMgorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9JTlYwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fU0RNQTFfVVRDTDFfSU5WMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX1VUQ0wxX0lOVjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9SRF9YTkFDSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fU0RNQTFfVVRDTDFfUkRfWE5BQ0sxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX1VUQ0wxX1dSX1hOQUNLMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9XUl9YTkFDSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fU0RNQTFfVVRDTDFfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX1VUQ0wxX1BBR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QT1dFUl9DTlRMX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fU0RNQTFfUkVMQVhfT1JERVJJTkdfTFVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX0NISUNLRU5fQklUU18yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9TVEFUVVMzX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fU0RNQTFfUEhZU0lDQUxfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX1BIWVNJQ0FMX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QSEFTRTJfUVVBTlRVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fU0RNQTFfRVJST1JfTE9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QVUJfRFVNTVlfUkVHMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX1BVQl9EVU1NWV9SRUcxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fU0RNQTFfUFVCX0RVTU1ZX1JFRzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QVUJfRFVNTVlfUkVHM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX0YzMl9DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fU0RNQTFfVU5CUkVBS0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QRVJGTU9OX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX1BFUkZDT1VOVEVSMF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fU0RNQTFfUEVSRkNPVU5URVIxX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX0NSRF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fUkVTRVJWRUQyOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTJfX1NETUExX1VMVl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFMl9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9JTlYwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9JTlYxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9JTlYyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9SRF9YTkFDSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9SRF9YTkFDSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9XUl9YTkFDSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9XUl9YTkFDSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VVENMMV9QQUdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QT1dFUl9DTlRMX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9DSElDS0VOX0JJVFNfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9TVEFUVVMzX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QSFlTSUNBTF9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QSFlTSUNBTF9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QSEFTRTJfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9FUlJPUl9MT0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QVUJfRFVNTVlfUkVHMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QVUJfRFVNTVlfUkVHMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QVUJfRFVNTVlfUkVHMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QVUJfRFVNTVlfUkVHM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9GMzJfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VTkJSRUFLQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QRVJGTU9OX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QRVJGQ09VTlRFUjBfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QRVJGQ09VTlRFUjFfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9DUkRfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRDI4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19TRE1BMV9VTFZfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMV9QVUJfUkVHX1RZUEUzCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTNfX1NETUExX0VBX0RCSVRfQUREUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUzX19TRE1BMV9FQV9EQklUX0FERFJfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUFVCX1JFR19UWVBFM19fU0RNQTFfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1BVQl9SRUdfVFlQRTNfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUzX19TRE1BMV9FQV9EQklUX0FERFJfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUzX19TRE1BMV9FQV9EQklUX0FERFJfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUzX19TRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMV9QVUJfUkVHX1RZUEUzX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkY4TAorLy9TRE1BMV9NTUhVQl9DTlRMCisjZGVmaW5lIFNETUExX01NSFVCX0NOVExfX1VOSVRfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9NTUhVQl9DTlRMX19VTklUX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9TRE1BMV9DT05URVhUX0dST1VQX0JPVU5EQVJZCisjZGVmaW5lIFNETUExX0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9DT05URVhUX0dST1VQX0JPVU5EQVJZX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QT1dFUl9DTlRMCisjZGVmaW5lIFNETUExX1BPV0VSX0NOVExfX01FTV9QT1dFUl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9QT1dFUl9DTlRMX19NRU1fUE9XRVJfTFNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUExX1BPV0VSX0NOVExfX01FTV9QT1dFUl9TRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMV9QT1dFUl9DTlRMX19NRU1fUE9XRVJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTFfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0xTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTFfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX1NEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTFfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRjAwMEwKKy8vU0RNQTFfQ0xLX0NUUkwKKyNkZWZpbmUgU0RNQTFfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9DTEtfQ1RSTF9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTFfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTFfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTFfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUExX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUExX0NOVEwKKyNkZWZpbmUgU0RNQTFfQ05UTF9fVFJBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0NOVExfX1VUQ19MMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9DTlRMX19TRU1fV0FJVF9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfQ05UTF9fREFUQV9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX0NOVExfX0ZFTkNFX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9DTlRMX19NSURDTURfUFJFRU1QVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfQ05UTF9fTUlEQ01EX1dPUkxEU1dJVENIX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMV9DTlRMX19BVVRPX0NUWFNXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUExX0NOVExfX0NUWEVNUFRZX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTFfQ05UTF9fRlJPWkVOX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BMV9DTlRMX19JQl9QUkVFTVBUX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUExX0NOVExfX1RSQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX0NOVExfX1VUQ19MMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX0NOVExfX1NFTV9XQUlUX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX0NOVExfX0RBVEFfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUExX0NOVExfX0ZFTkNFX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX0NOVExfX01JRENNRF9QUkVFTVBUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUExX0NOVExfX01JRENNRF9XT1JMRFNXSVRDSF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUExX0NOVExfX0FVVE9fQ1RYU1dfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUExX0NOVExfX0NUWEVNUFRZX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUExX0NOVExfX0ZST1pFTl9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUExX0NOVExfX0lCX1BSRUVNUFRfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUExX0NISUNLRU5fQklUUworI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX0NPUFlfRUZGSUNJRU5DWV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfQ0hJQ0tFTl9CSVRTX19TVEFMTF9PTl9UUkFOU19GVUxMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUExX0NISUNLRU5fQklUU19fU1RBTExfT05fTk9fRlJFRV9EQVRBX0JVRkZFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfQ0hJQ0tFTl9CSVRTX19XUklURV9CVVJTVF9XQUlUX0NZQ0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUExX0NISUNLRU5fQklUU19fQ09QWV9PVkVSTEFQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTFfQ0hJQ0tFTl9CSVRTX19SQVdfQ0hFQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX1NSQk1fUE9MTF9SRVRSWUlOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUExX0NISUNLRU5fQklUU19fQ0dfU1RBVFVTX09VVFBVVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfQ0hJQ0tFTl9CSVRTX19USU1FX0JBU0VEX1FPU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX0NFX0FGSUZPX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUExX0NISUNLRU5fQklUU19fQ0VfREZJRk9fV0FURVJNQVJLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTFfQ0hJQ0tFTl9CSVRTX19DRV9MRklGT19XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX0NPUFlfRUZGSUNJRU5DWV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX1NUQUxMX09OX1RSQU5TX0ZVTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX1NUQUxMX09OX05PX0ZSRUVfREFUQV9CVUZGRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX1dBSVRfQ1lDTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxQzAwTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX0NPUFlfT1ZFUkxBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX1JBV19DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX1NSQk1fUE9MTF9SRVRSWUlOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX0NHX1NUQVRVU19PVVRQVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX1RJTUVfQkFTRURfUU9TX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX0NFX0FGSUZPX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX0NFX0RGSUZPX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfX0NFX0xGSUZPX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9TRE1BMV9HQl9BRERSX0NPTkZJRworI2RlZmluZSBTRE1BMV9HQl9BRERSX0NPTkZJR19fTlVNX1BJUEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0JfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX0dCX0FERFJfQ09ORklHX19CQU5LX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9HQl9BRERSX0NPTkZJR19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTFfR0JfQUREUl9DT05GSUdfX05VTV9TSEFERVJfRU5HSU5FU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMV9HQl9BRERSX0NPTkZJR19fTlVNX1BJUEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBTRE1BMV9HQl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBTRE1BMV9HQl9BRERSX0NPTkZJR19fQkFOS19JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBTRE1BMV9HQl9BRERSX0NPTkZJR19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBTRE1BMV9HQl9BRERSX0NPTkZJR19fTlVNX1NIQURFUl9FTkdJTkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTgwMDAwTAorLy9TRE1BMV9HQl9BRERSX0NPTkZJR19SRUFECisjZGVmaW5lIFNETUExX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9QSVBFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HQl9BRERSX0NPTkZJR19SRUFEX19QSVBFX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTFfR0JfQUREUl9DT05GSUdfUkVBRF9fQkFOS19JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMV9HQl9BRERSX0NPTkZJR19SRUFEX19OVU1fU0hBREVSX0VOR0lORVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUExX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9QSVBFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUExX0dCX0FERFJfQ09ORklHX1JFQURfX1BJUEVfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIFNETUExX0dCX0FERFJfQ09ORklHX1JFQURfX0JBTktfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFNETUExX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFNETUExX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9TSEFERVJfRU5HSU5FU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisvL1NETUExX1JCX1JQVFJfRkVUQ0hfSEkKKyNkZWZpbmUgU0RNQTFfUkJfUlBUUl9GRVRDSF9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JCX1JQVFJfRkVUQ0hfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTAorI2RlZmluZSBTRE1BMV9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkJfUlBUUl9GRVRDSAorI2RlZmluZSBTRE1BMV9SQl9SUFRSX0ZFVENIX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkJfUlBUUl9GRVRDSF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTFfSUJfT0ZGU0VUX0ZFVENICisjZGVmaW5lIFNETUExX0lCX09GRlNFVF9GRVRDSF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9JQl9PRkZTRVRfRkVUQ0hfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMV9QUk9HUkFNCisjZGVmaW5lIFNETUExX1BST0dSQU1fX1NUUkVBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QUk9HUkFNX19TVFJFQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9TVEFUVVNfUkVHCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19SRUdfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfU1RBVFVTX1JFR19fUkJfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1JCX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19SQl9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTFfU1RBVFVTX1JFR19fUkJfQ01EX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lCX0NNRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19JQl9DTURfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfU1RBVFVTX1JFR19fQkxPQ0tfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19FWF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfU1RBVFVTX1JFR19fRVhfSURMRV9QT0xMX1RJTUVSX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1BBQ0tFVF9SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19NQ19XUl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTFfU1RBVFVTX1JFR19fU1JCTV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0NPTlRFWFRfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19ERUxUQV9SUFRSX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1JCX01DX1JSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTFfU1RBVFVTX1JFR19fSUJfTUNfUlJFUV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19NQ19SRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTFfU1RBVFVTX1JFR19fTUNfUkRfUkVUX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19NQ19SRF9OT19QT0xMX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1BSRVZfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTFfU1RBVFVTX1JFR19fU0VNX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19TRU1fUkVRX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1NFTV9SRVNQX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTFfU1RBVFVTX1JFR19fSU5UX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMV9TVEFUVVNfUkVHX19JTlRfUkVRX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1JFR19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1JCX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1JCX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1JCX0NNRF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1JCX0NNRF9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lCX0NNRF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lCX0NNRF9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0JMT0NLX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0VYX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0VYX0lETEVfUE9MTF9USU1FUl9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1BBQ0tFVF9SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX01DX1dSX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1NSQk1fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0NPTlRFWFRfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1JCX01DX1JSRVFfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lCX01DX1JSRVFfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX01DX1JEX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX01DX1JEX1JFVF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX01DX1JEX05PX1BPTExfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1BSRVZfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1NFTV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1NFTV9SRVFfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX1NFTV9SRVNQX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lOVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUExX1NUQVRVU19SRUdfX0lOVF9SRVFfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUExX1NUQVRVUzFfUkVHCisjZGVmaW5lIFNETUExX1NUQVRVUzFfUkVHX19DRV9XUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfV1JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfU1RBVFVTMV9SRUdfX0NFX1NQTElUX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1NUQVRVUzFfUkVHX19DRV9SUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfT1VUX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTFfU1RBVFVTMV9SRUdfX0NFX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUExX1NUQVRVUzFfUkVHX19DRV9EU1RfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfU1RBVFVTMV9SRUdfX0NFX0FGSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUExX1NUQVRVUzFfUkVHX19DRV9JTkZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfSU5GTzFfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTFfU1RBVFVTMV9SRUdfX0VYX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUExX1NUQVRVUzFfUkVHX19DRV9SRF9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTFfU1RBVFVTMV9SRUdfX0NFX1dSX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfV1JFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfV1JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfU1BMSVRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfT1VUX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfRFNUX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfQUZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfSU5GT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfSU5GTzFfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fRVhfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfUkRfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMV9TVEFUVVMxX1JFR19fQ0VfV1JfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9TRE1BMV9SRF9CVVJTVF9DTlRMCisjZGVmaW5lIFNETUExX1JEX0JVUlNUX0NOVExfX1JEX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9SRF9CVVJTVF9DTlRMX19DTURfQlVGRkVSX1JEX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkRfQlVSU1RfQ05UTF9fUkRfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgU0RNQTFfUkRfQlVSU1RfQ05UTF9fQ01EX0JVRkZFUl9SRF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKy8vU0RNQTFfSEJNX1BBR0VfQ09ORklHCisjZGVmaW5lIFNETUExX0hCTV9QQUdFX0NPTkZJR19fUEFHRV9TSVpFX0VYUE9ORU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9IQk1fUEFHRV9DT05GSUdfX1BBR0VfU0laRV9FWFBPTkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9VQ09ERV9DSEVDS1NVTQorI2RlZmluZSBTRE1BMV9VQ09ERV9DSEVDS1NVTV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfVUNPREVfQ0hFQ0tTVU1fX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfRjMyX0NOVEwKKyNkZWZpbmUgU0RNQTFfRjMyX0NOVExfX0hBTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0YzMl9DTlRMX19TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9GMzJfQ05UTF9fSEFMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9GMzJfQ05UTF9fU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9TRE1BMV9GUkVFWkUKKyNkZWZpbmUgU0RNQTFfRlJFRVpFX19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0ZSRUVaRV9fRlJFRVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9GUkVFWkVfX0ZST1pFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfRlJFRVpFX19GMzJfRlJFRVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUExX0ZSRUVaRV9fUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX0ZSRUVaRV9fRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX0ZSRUVaRV9fRlJPWkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUExX0ZSRUVaRV9fRjMyX0ZSRUVaRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL1NETUExX1BIQVNFMF9RVUFOVFVNCisjZGVmaW5lIFNETUExX1BIQVNFMF9RVUFOVFVNX19VTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QSEFTRTBfUVVBTlRVTV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUEhBU0UwX1FVQU5UVU1fX1BSRUZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMV9QSEFTRTBfUVVBTlRVTV9fVU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BMV9QSEFTRTBfUVVBTlRVTV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRjAwTAorI2RlZmluZSBTRE1BMV9QSEFTRTBfUVVBTlRVTV9fUFJFRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMV9QSEFTRTFfUVVBTlRVTQorI2RlZmluZSBTRE1BMV9QSEFTRTFfUVVBTlRVTV9fVU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEhBU0UxX1FVQU5UVU1fX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1BIQVNFMV9RVUFOVFVNX19QUkVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUEhBU0UxX1FVQU5UVU1fX1VOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTFfUEhBU0UxX1FVQU5UVU1fX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkYwMEwKKyNkZWZpbmUgU0RNQTFfUEhBU0UxX1FVQU5UVU1fX1BSRUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfRURDX0NPTkZJRworI2RlZmluZSBTRE1BMV9FRENfQ09ORklHX19ESVNfRURDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfRURDX0NPTkZJR19fRUNDX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX0VEQ19DT05GSUdfX0RJU19FRENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX0VEQ19DT05GSUdfX0VDQ19JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL1NETUExX0JBX1RIUkVTSE9MRAorI2RlZmluZSBTRE1BMV9CQV9USFJFU0hPTERfX1JFQURfVEhSRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfQkFfVEhSRVNIT0xEX19XUklURV9USFJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMV9CQV9USFJFU0hPTERfX1JFQURfVEhSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBTRE1BMV9CQV9USFJFU0hPTERfX1dSSVRFX1RIUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BMV9JRAorI2RlZmluZSBTRE1BMV9JRF9fREVWSUNFX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfSURfX0RFVklDRV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0RNQTFfVkVSU0lPTgorI2RlZmluZSBTRE1BMV9WRVJTSU9OX19NSU5WRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfVkVSU0lPTl9fTUFKVkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1ZFUlNJT05fX1JFVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTFfVkVSU0lPTl9fTUlOVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgU0RNQTFfVkVSU0lPTl9fTUFKVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgU0RNQTFfVkVSU0lPTl9fUkVWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vU0RNQTFfRURDX0NPVU5URVIKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfVUNPREVfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0VEQ19DT1VOVEVSX19TRE1BX1JCX0NNRF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9FRENfQ09VTlRFUl9fU0RNQV9JQl9DTURfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX0VEQ19DT1VOVEVSX19TRE1BX1VUQ0wxX1JEQlNUX0ZJRk9fU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMV9FRENfQ09VTlRFUl9fU0RNQV9EQVRBX0xVVF9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYwX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUExX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjJfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYzX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUExX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjVfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY2X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUExX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGN19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjhfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY5X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEwX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUExX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTFfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEzX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUExX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTRfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMV9FRENfQ09VTlRFUl9fU0RNQV9TUExJVF9EQVRfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUExX0VEQ19DT1VOVEVSX19TRE1BX01DX1dSX0FERFJfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfVUNPREVfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfUkJfQ01EX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfSUJfQ01EX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRCU1RfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfREFUQV9MVVRfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYwX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYyX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYzX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY0X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY1X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY2X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY3X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY4X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY5X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMF9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMV9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxM19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNF9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNV9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfU1BMSVRfREFUX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfX1NETUFfTUNfV1JfQUREUl9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vU0RNQTFfRURDX0NPVU5URVJfQ0xFQVIKKyNkZWZpbmUgU0RNQTFfRURDX0NPVU5URVJfQ0xFQVJfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0VEQ19DT1VOVEVSX0NMRUFSX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUExX1NUQVRVUzJfUkVHCisjZGVmaW5lIFNETUExX1NUQVRVUzJfUkVHX19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9TVEFUVVMyX1JFR19fRjMyX0lOU1RSX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTFfU1RBVFVTMl9SRUdfX0NNRF9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMV9TVEFUVVMyX1JFR19fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBTRE1BMV9TVEFUVVMyX1JFR19fRjMyX0lOU1RSX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkY4TAorI2RlZmluZSBTRE1BMV9TVEFUVVMyX1JFR19fQ01EX09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BMV9BVE9NSUNfQ05UTAorI2RlZmluZSBTRE1BMV9BVE9NSUNfQ05UTF9fTE9PUF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfQVRPTUlDX0NOVExfX0FUT01JQ19SVE5fSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMV9BVE9NSUNfQ05UTF9fTE9PUF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorI2RlZmluZSBTRE1BMV9BVE9NSUNfQ05UTF9fQVRPTUlDX1JUTl9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMV9BVE9NSUNfUFJFT1BfTE8KKyNkZWZpbmUgU0RNQTFfQVRPTUlDX1BSRU9QX0xPX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0FUT01JQ19QUkVPUF9MT19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX0FUT01JQ19QUkVPUF9ISQorI2RlZmluZSBTRE1BMV9BVE9NSUNfUFJFT1BfSElfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfQVRPTUlDX1BSRU9QX0hJX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfVVRDTDFfQ05UTAorI2RlZmluZSBTRE1BMV9VVENMMV9DTlRMX19SRURPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfVVRDTDFfQ05UTF9fUkVET19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUExX1VUQ0wxX0NOVExfX1JFRE9fV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMV9VVENMMV9DTlRMX19JTlZBQ0tfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTFfVVRDTDFfQ05UTF9fUkVRTDJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9VVENMMV9DTlRMX19WQUREUl9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUExX1VUQ0wxX0NOVExfX1JFRE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1VUQ0wxX0NOVExfX1JFRE9fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RkVMCisjZGVmaW5lIFNETUExX1VUQ0wxX0NOVExfX1JFRE9fV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0NOVExfX0lOVkFDS19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkMwMDBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0NOVExfX1JFUUwyX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0NOVExfX1ZBRERSX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL1NETUExX1VUQ0wxX1dBVEVSTUsKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV0FURVJNS19fUkVRTUNfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1VUQ0wxX1dBVEVSTUtfX1JFUVBHX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9VVENMMV9XQVRFUk1LX19JTlZSRVFfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUExX1VUQ0wxX1dBVEVSTUtfX1hOQUNLX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV0FURVJNS19fUkVRTUNfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV0FURVJNS19fUkVRUEdfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkUwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV0FURVJNS19fSU5WUkVRX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZFMDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV0FURVJNS19fWE5BQ0tfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vU0RNQTFfVVRDTDFfUkRfU1RBVFVTCisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMV9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMV9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMV9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMV9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMV9VVENMMV9SRF9TVEFUVVNfX1BBR0VfTlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fUkVRTDJfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19DRV9MMV9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMV9VVENMMV9SRF9TVEFUVVNfX05FWFRfUkRfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fTUVSR0VfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19BRERSX1JEX1JUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BMV9VVENMMV9SRF9TVEFUVVNfX1dQVFJfUE9MTElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1NUQVRVU19fSU5WUkVRX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19QQUdFX05VTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19SRVFMMl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19DRV9MMV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19ORVhUX1JEX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0MwMDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19NRVJHRV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQzAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19BRERSX1JEX1JUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19XUFRSX1BPTExJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfU1RBVFVTX19JTlZSRVFfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTFfVVRDTDFfV1JfU1RBVFVTCisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfU1RBVFVTX19QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1BBR0VfTlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fUkVRTDJfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfU1RBVFVTX19GMzJfV1JfUlRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX05FWFRfV1JfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fTUVSR0VfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfU1RBVFVTX19SUFRSX0RBVEFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfU1RBVFVTX19XUlJFUV9EQVRBX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1BBR0VfTlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JFUUwyX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX0YzMl9XUl9SVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX05FWFRfV1JfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX01FUkdFX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMV9VVENMMV9JTlYwCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX0lOVl9NSURETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9VVENMMV9JTlYwX19SRF9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfSU5WMF9fV1JfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX1JEX0lOX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMV9VVENMMV9JTlYwX19XUl9JTl9JTlZBRFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTFfVVRDTDFfSU5WMF9fUEFHRV9OVUxMX1NXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX1hOQUNLX0lTX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMV9VVENMMV9JTlYwX19JTlZSRVFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfVVRDTDFfSU5WMF9fTkFDS19USU1FT1VUX1NXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX05GTFVTSF9JTlZfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9VVENMMV9JTlYwX19GTFVTSF9JTlZfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfSU5WMF9fSU5WX0ZMVVNIVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX0lOVl9WTUlEX1ZFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMV9VVENMMV9JTlYwX19JTlZfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX0lOVl9NSURETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX1JEX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX1dSX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX1JEX0lOX0lOVkFEUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX1dSX0lOX0lOVkFEUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX1BBR0VfTlVMTF9TV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX1hOQUNLX0lTX0lOVkFEUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX0lOVlJFUV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX05BQ0tfVElNRU9VVF9TV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX05GTFVTSF9JTlZfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX0ZMVVNIX0lOVl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX0lOVl9GTFVTSFRZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX0lOVl9WTUlEX1ZFQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkYwMDBMCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjBfX0lOVl9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL1NETUExX1VUQ0wxX0lOVjEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfSU5WMV9fSU5WX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjFfX0lOVl9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1VUQ0wxX0lOVjIKKyNkZWZpbmUgU0RNQTFfVVRDTDFfSU5WMl9fSU5WX05GTFVTSF9WTUlEX1ZFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1VUQ0wxX0lOVjJfX0lOVl9ORkxVU0hfVk1JRF9WRUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1VUQ0wxX1JEX1hOQUNLMAorI2RlZmluZSBTRE1BMV9VVENMMV9SRF9YTkFDSzBfX1hOQUNLX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfWE5BQ0swX19YTkFDS19BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfVVRDTDFfUkRfWE5BQ0sxCisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1VUQ0wxX1JEX1hOQUNLMV9fSVNfWE5BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WRUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkYwMEwKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUkRfWE5BQ0sxX19JU19YTkFDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKy8vU0RNQTFfVVRDTDFfV1JfWE5BQ0swCisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9YTkFDSzBfX1hOQUNLX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9VVENMMV9XUl9YTkFDSzEKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfVVRDTDFfV1JfWE5BQ0sxX19JU19YTkFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRjAwTAorI2RlZmluZSBTRE1BMV9VVENMMV9XUl9YTkFDSzFfX0lTX1hOQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorLy9TRE1BMV9VVENMMV9USU1FT1VUCisjZGVmaW5lIFNETUExX1VUQ0wxX1RJTUVPVVRfX1JEX1hOQUNLX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9VVENMMV9USU1FT1VUX19XUl9YTkFDS19MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1VUQ0wxX1RJTUVPVVRfX1JEX1hOQUNLX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUExX1VUQ0wxX1RJTUVPVVRfX1dSX1hOQUNLX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1VUQ0wxX1BBR0UKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUEFHRV9fVk1fSE9MRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1VUQ0wxX1BBR0VfX1JFUV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9VVENMMV9QQUdFX19VU0VfTVRZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTFfVVRDTDFfUEFHRV9fVVNFX1BUX1NOT09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUExX1VUQ0wxX1BBR0VfX1ZNX0hPTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1VUQ0wxX1BBR0VfX1JFUV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUVMCisjZGVmaW5lIFNETUExX1VUQ0wxX1BBR0VfX1VTRV9NVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIFNETUExX1VUQ0wxX1BBR0VfX1VTRV9QVF9TTk9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisvL1NETUExX1BPV0VSX0NOVExfSURMRQorI2RlZmluZSBTRE1BMV9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUE9XRVJfQ05UTF9JRExFX19ERUxBWTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMV9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUExX1BPV0VSX0NOVExfSURMRV9fREVMQVkwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUExX1BPV0VSX0NOVExfSURMRV9fREVMQVkxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFNETUExX1BPV0VSX0NOVExfSURMRV9fREVMQVkyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL1NETUExX1JFTEFYX09SREVSSU5HX0xVVAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkVMQVhfT1JERVJJTkdfTFVUX19DT1BZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUExX1JFTEFYX09SREVSSU5HX0xVVF9fV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTFfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JFTEFYX09SREVSSU5HX0xVVF9fRkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTFfUkVMQVhfT1JERVJJTkdfTFVUX19QT0xMX01FTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1JFTEFYX09SREVSSU5HX0xVVF9fQ09ORF9FWEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX0FUT01JQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUkVMQVhfT1JERVJJTkdfTFVUX19DT05TVF9GSUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUExX1JFTEFYX09SREVSSU5HX0xVVF9fUFRFUERFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1RJTUVTVEFNUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTFfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUExX1JFTEFYX09SREVSSU5HX0xVVF9fV09STERfU1dJVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTFfUkVMQVhfT1JERVJJTkdfTFVUX19SUFRSX1dSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1dQVFJfUE9MTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUExX1JFTEFYX09SREVSSU5HX0xVVF9fSUJfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUkVMQVhfT1JERVJJTkdfTFVUX19SQl9GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX0NPUFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX0ZFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1BPTExfTUVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX0NPTkRfRVhFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX0FUT01JQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX0NPTlNUX0ZJTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1BURVBERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1RJTUVTVEFNUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkZDMDAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1dPUkxEX1NXSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JQVFJfV1JCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1dQVFJfUE9MTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX0lCX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BMV9SRUxBWF9PUkRFUklOR19MVVRfX1JCX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMV9DSElDS0VOX0JJVFNfMgorI2RlZmluZSBTRE1BMV9DSElDS0VOX0JJVFNfMl9fRjMyX0NNRF9QUk9DX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfQ0hJQ0tFTl9CSVRTXzJfX0YzMl9DTURfUFJPQ19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vU0RNQTFfU1RBVFVTM19SRUcKKyNkZWZpbmUgU0RNQTFfU1RBVFVTM19SRUdfX0NNRF9PUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1NUQVRVUzNfUkVHX19QUkVWX1ZNX0NNRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTFfU1RBVFVTM19SRUdfX0VYQ0VQVElPTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BMV9TVEFUVVMzX1JFR19fUVVFVUVfSURfTUFUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUExX1NUQVRVUzNfUkVHX19JTlRfUVVFVUVfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTFfU1RBVFVTM19SRUdfX0NNRF9PUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTFfU1RBVFVTM19SRUdfX1BSRVZfVk1fQ01EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgU0RNQTFfU1RBVFVTM19SRUdfX0VYQ0VQVElPTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTFfU1RBVFVTM19SRUdfX1FVRVVFX0lEX01BVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTFfU1RBVFVTM19SRUdfX0lOVF9RVUVVRV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0MwMDAwMEwKKy8vU0RNQTFfUEhZU0lDQUxfQUREUl9MTworI2RlZmluZSBTRE1BMV9QSFlTSUNBTF9BRERSX0xPX19EX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEhZU0lDQUxfQUREUl9MT19fRElSVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUExX1BIWVNJQ0FMX0FERFJfTE9fX1BIWV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9QSFlTSUNBTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTFfUEhZU0lDQUxfQUREUl9MT19fRF9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUEhZU0lDQUxfQUREUl9MT19fRElSVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTFfUEhZU0lDQUxfQUREUl9MT19fUEhZX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUEhZU0lDQUxfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vU0RNQTFfUEhZU0lDQUxfQUREUl9ISQorI2RlZmluZSBTRE1BMV9QSFlTSUNBTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEhZU0lDQUxfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vU0RNQTFfUEhBU0UyX1FVQU5UVU0KKyNkZWZpbmUgU0RNQTFfUEhBU0UyX1FVQU5UVU1fX1VOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BIQVNFMl9RVUFOVFVNX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9QSEFTRTJfUVVBTlRVTV9fUFJFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUExX1BIQVNFMl9RVUFOVFVNX19VTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUExX1BIQVNFMl9RVUFOVFVNX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGMDBMCisjZGVmaW5lIFNETUExX1BIQVNFMl9RVUFOVFVNX19QUkVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUExX0VSUk9SX0xPRworI2RlZmluZSBTRE1BMV9FUlJPUl9MT0dfX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfRVJST1JfTE9HX19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMV9FUlJPUl9MT0dfX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BMV9FUlJPUl9MT0dfX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BMV9QVUJfRFVNTVlfUkVHMAorI2RlZmluZSBTRE1BMV9QVUJfRFVNTVlfUkVHMF9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUFVCX0RVTU1ZX1JFRzBfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUFVCX0RVTU1ZX1JFRzEKKyNkZWZpbmUgU0RNQTFfUFVCX0RVTU1ZX1JFRzFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BVQl9EVU1NWV9SRUcxX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1BVQl9EVU1NWV9SRUcyCisjZGVmaW5lIFNETUExX1BVQl9EVU1NWV9SRUcyX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QVUJfRFVNTVlfUkVHMl9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QVUJfRFVNTVlfUkVHMworI2RlZmluZSBTRE1BMV9QVUJfRFVNTVlfUkVHM19fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUFVCX0RVTU1ZX1JFRzNfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfRjMyX0NPVU5URVIKKyNkZWZpbmUgU0RNQTFfRjMyX0NPVU5URVJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0YzMl9DT1VOVEVSX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1VOQlJFQUtBQkxFCisjZGVmaW5lIFNETUExX1VOQlJFQUtBQkxFX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9VTkJSRUFLQUJMRV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgU0RNQTFfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BFUkZNT05fQ05UTF9fUEVSRl9DTEVBUjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUExX1BFUkZNT05fQ05UTF9fUEVSRl9DTEVBUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMV9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTFfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTFfUEVSRk1PTl9DTlRMX19QRVJGX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGQ0wKKyNkZWZpbmUgU0RNQTFfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTFfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTFfUEVSRk1PTl9DTlRMX19QRVJGX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKy8vU0RNQTFfUEVSRkNPVU5URVIwX1JFU1VMVAorI2RlZmluZSBTRE1BMV9QRVJGQ09VTlRFUjBfUkVTVUxUX19QRVJGX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEVSRkNPVU5URVIwX1JFU1VMVF9fUEVSRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUEVSRkNPVU5URVIxX1JFU1VMVAorI2RlZmluZSBTRE1BMV9QRVJGQ09VTlRFUjFfUkVTVUxUX19QRVJGX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEVSRkNPVU5URVIxX1JFU1VMVF9fUEVSRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFCisjZGVmaW5lIFNETUExX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTFfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19TRUxFQ1RfUldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBTRE1BMV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZDMDAwTAorI2RlZmluZSBTRE1BMV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NFTEVDVF9SV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9TRE1BMV9DUkRfQ05UTAorI2RlZmluZSBTRE1BMV9DUkRfQ05UTF9fTUNfV1JSRVFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfQ1JEX0NOVExfX01DX1JEUkVRX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUExX0NSRF9DTlRMX19NQ19XUlJFUV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisjZGVmaW5lIFNETUExX0NSRF9DTlRMX19NQ19SRFJFUV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0UwMDBMCisvL1NETUExX0dQVV9JT1ZfVklPTEFUSU9OX0xPRworI2RlZmluZSBTRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZJT0xBVElPTl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19NVUxUSVBMRV9WSU9MQVRJT05fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUExX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1dSSVRFX09QRVJBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUExX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTFfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WRklEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZJT0xBVElPTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX01VTFRJUExFX1ZJT0xBVElPTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZDTAorI2RlZmluZSBTRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1dSSVRFX09QRVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorLy9TRE1BMV9VTFZfQ05UTAorI2RlZmluZSBTRE1BMV9VTFZfQ05UTF9fSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BMV9VTFZfQ05UTF9fRVhJVF9VTFZfSU5UX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTFfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMV9VTFZfQ05UTF9fVUxWX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUExX1VMVl9DTlRMX19IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIFNETUExX1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUExX1VMVl9DTlRMX19FWElUX1VMVl9JTlRfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUExX1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUExX1VMVl9DTlRMX19FWElUX1VMVl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUExX1VMVl9DTlRMX19VTFZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUExX0VBX0RCSVRfQUREUl9EQVRBCisjZGVmaW5lIFNETUExX0VBX0RCSVRfQUREUl9EQVRBX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9FQV9EQklUX0FERFJfREFUQV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9FQV9EQklUX0FERFJfSU5ERVgKKyNkZWZpbmUgU0RNQTFfRUFfREJJVF9BRERSX0lOREVYX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0VBX0RCSVRfQUREUl9JTkRFWF9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL1NETUExX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzIKKyNkZWZpbmUgU0RNQTFfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fSU5JVElBVE9SX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfX0lOSVRJQVRPUl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NETUExX0dGWF9SQl9DTlRMCisjZGVmaW5lIFNETUExX0dGWF9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUExX0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMV9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMV9HRlhfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUExX0dGWF9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTFfR0ZYX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0dGWF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX0dGWF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX0dGWF9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMV9HRlhfUkJfUlBUUgorI2RlZmluZSBTRE1BMV9HRlhfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0dGWF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX0dGWF9SQl9XUFRSCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9HRlhfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BMV9HRlhfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX0dGWF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0dGWF9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX0dGWF9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0dGWF9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9HRlhfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9HRlhfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9HRlhfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9HRlhfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX0dGWF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9HRlhfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX0dGWF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX0dGWF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX0dGWF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX0dGWF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX0dGWF9JQl9SUFRSCisjZGVmaW5lIFNETUExX0dGWF9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9HRlhfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMV9HRlhfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUExX0dGWF9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9HRlhfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMV9HRlhfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9HRlhfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfR0ZYX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfR0ZYX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTFfR0ZYX0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0dGWF9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX0dGWF9JQl9TSVpFCisjZGVmaW5lIFNETUExX0dGWF9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9HRlhfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX0dGWF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTFfR0ZYX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0dGWF9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTFfR0ZYX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfR0ZYX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUExX0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMV9HRlhfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTFfR0ZYX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMV9HRlhfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUExX0dGWF9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUExX0dGWF9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUExX0dGWF9DT05URVhUX0NOVEwKKyNkZWZpbmUgU0RNQTFfR0ZYX0NPTlRFWFRfQ05UTF9fUkVTVU1FX0NUWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMV9HRlhfQ09OVEVYVF9DTlRMX19SRVNVTUVfQ1RYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9TRE1BMV9HRlhfU1RBVFVTCisjZGVmaW5lIFNETUExX0dGWF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTFfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTFfR0ZYX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9HRlhfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX0dGWF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX0dGWF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX0dGWF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTFfR0ZYX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0dGWF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTFfR0ZYX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTFfR0ZYX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTFfR0ZYX0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BMV9HRlhfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfR0ZYX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTFfR0ZYX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX0dGWF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9HRlhfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9HRlhfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfR0ZYX0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX0dGWF9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX0dGWF9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUExX0dGWF9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9HRlhfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9HRlhfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfR0ZYX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMV9HRlhfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX0dGWF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMV9HRlhfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUExX0dGWF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9HRlhfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9HRlhfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMV9HRlhfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMV9HRlhfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BMV9HRlhfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfR0ZYX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfR0ZYX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX0dGWF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfR0ZYX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX0dGWF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9HRlhfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9QQUdFX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1BBR0VfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMV9QQUdFX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1BBR0VfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTFfUEFHRV9SQl9SUFRSCisjZGVmaW5lIFNETUExX1BBR0VfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QQUdFX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1BBR0VfUkJfV1BUUgorI2RlZmluZSBTRE1BMV9QQUdFX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUEFHRV9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1BBR0VfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUExX1BBR0VfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QQUdFX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMV9QQUdFX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1BBR0VfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1BBR0VfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1BBR0VfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9QQUdFX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEFHRV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1BBR0VfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9QQUdFX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1BBR0VfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1BBR0VfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1BBR0VfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1BBR0VfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX1BBR0VfSUJfUlBUUgorI2RlZmluZSBTRE1BMV9QQUdFX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUEFHRV9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTFfUEFHRV9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTFfUEFHRV9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1BBR0VfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUExX1BBR0VfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9QQUdFX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUEFHRV9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfUEFHRV9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX1BBR0VfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QQUdFX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTFfUEFHRV9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1BBR0VfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX1BBR0VfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9QQUdFX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUExX1BBR0VfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1BBR0VfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1BBR0VfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTFfUEFHRV9ET09SQkVMTAorI2RlZmluZSBTRE1BMV9QQUdFX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1BBR0VfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUEFHRV9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUEFHRV9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfUEFHRV9TVEFUVVMKKyNkZWZpbmUgU0RNQTFfUEFHRV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMV9QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9QQUdFX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9QQUdFX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEFHRV9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1BBR0VfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1BBR0VfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1BBR0VfV0FURVJNQVJLCisjZGVmaW5lIFNETUExX1BBR0VfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1BBR0VfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUExX1BBR0VfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUExX1BBR0VfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUExX1BBR0VfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9QQUdFX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMV9QQUdFX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX1BBR0VfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9QQUdFX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9QQUdFX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUExX1BBR0VfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QQUdFX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTFfUEFHRV9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1BBR0VfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9QQUdFX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEFHRV9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfUEFHRV9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTFfUEFHRV9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1BBR0VfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9QQUdFX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTFfUEFHRV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTFfUEFHRV9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUExX1BBR0VfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9QQUdFX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEFHRV9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUEFHRV9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTFfUEFHRV9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1BBR0VfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUExX1BBR0VfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QQUdFX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEFHRV9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUEFHRV9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTFfUEFHRV9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1BBR0VfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUExX1BBR0VfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QQUdFX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUEFHRV9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUEFHRV9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTFfUEFHRV9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1BBR0VfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1BBR0VfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUExX1BBR0VfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9QQUdFX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX1BBR0VfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUEFHRV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1BBR0VfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9QQUdFX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEMwX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzBfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9STEMwX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMV9STEMwX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzBfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMV9STEMwX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTFfUkxDMF9SQl9SUFRSCisjZGVmaW5lIFNETUExX1JMQzBfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMwX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzBfUkJfV1BUUgorI2RlZmluZSBTRE1BMV9STEMwX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1JMQzBfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzBfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMwX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMV9STEMwX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzBfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzBfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzBfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9STEMwX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzBfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMwX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzBfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzBfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1JMQzBfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1JMQzBfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX1JMQzBfSUJfUlBUUgorI2RlZmluZSBTRE1BMV9STEMwX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDMF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTFfUkxDMF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTFfUkxDMF9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzBfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUExX1JMQzBfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9STEMwX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUkxDMF9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfUkxDMF9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX1JMQzBfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMwX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTFfUkxDMF9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzBfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzBfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9STEMwX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUExX1JMQzBfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1JMQzBfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1JMQzBfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTFfUkxDMF9ET09SQkVMTAorI2RlZmluZSBTRE1BMV9STEMwX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1JMQzBfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUkxDMF9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUkxDMF9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfUkxDMF9TVEFUVVMKKyNkZWZpbmUgU0RNQTFfUkxDMF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMV9STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEMwX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9STEMwX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMF9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzBfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzBfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzBfV0FURVJNQVJLCisjZGVmaW5lIFNETUExX1JMQzBfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzBfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUExX1JMQzBfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUExX1JMQzBfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUExX1JMQzBfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEMwX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMV9STEMwX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX1JMQzBfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEMwX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9STEMwX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzBfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMwX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTFfUkxDMF9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzBfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9STEMwX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMF9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfUkxDMF9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTFfUkxDMF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzBfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEMwX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTFfUkxDMF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTFfUkxDMF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUExX1JMQzBfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9STEMwX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMF9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMF9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTFfUkxDMF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzBfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUExX1JMQzBfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMwX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMF9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMF9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTFfUkxDMF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzBfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUExX1JMQzBfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMwX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMF9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMF9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTFfUkxDMF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzBfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzBfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUExX1JMQzBfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMwX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzBfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDMF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzBfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9STEMwX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEMxX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzFfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9STEMxX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMV9STEMxX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzFfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMV9STEMxX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTFfUkxDMV9SQl9SUFRSCisjZGVmaW5lIFNETUExX1JMQzFfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMxX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzFfUkJfV1BUUgorI2RlZmluZSBTRE1BMV9STEMxX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMV9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1JMQzFfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzFfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMxX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMV9STEMxX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzFfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzFfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzFfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9STEMxX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzFfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMxX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzFfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzFfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1JMQzFfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1JMQzFfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX1JMQzFfSUJfUlBUUgorI2RlZmluZSBTRE1BMV9STEMxX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDMV9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTFfUkxDMV9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTFfUkxDMV9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzFfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUExX1JMQzFfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9STEMxX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUkxDMV9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfUkxDMV9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX1JMQzFfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMxX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTFfUkxDMV9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzFfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzFfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9STEMxX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUExX1JMQzFfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1JMQzFfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1JMQzFfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTFfUkxDMV9ET09SQkVMTAorI2RlZmluZSBTRE1BMV9STEMxX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1JMQzFfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUkxDMV9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUkxDMV9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfUkxDMV9TVEFUVVMKKyNkZWZpbmUgU0RNQTFfUkxDMV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMV9STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEMxX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9STEMxX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMV9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzFfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzFfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzFfV0FURVJNQVJLCisjZGVmaW5lIFNETUExX1JMQzFfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzFfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUExX1JMQzFfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUExX1JMQzFfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUExX1JMQzFfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEMxX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMV9STEMxX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX1JMQzFfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEMxX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9STEMxX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzFfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMxX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTFfUkxDMV9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzFfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9STEMxX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMV9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfUkxDMV9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTFfUkxDMV9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzFfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEMxX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTFfUkxDMV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTFfUkxDMV9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUExX1JMQzFfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9STEMxX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMV9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMV9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTFfUkxDMV9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzFfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUExX1JMQzFfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMxX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMV9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMV9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTFfUkxDMV9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzFfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUExX1JMQzFfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMxX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMV9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMV9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTFfUkxDMV9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzFfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzFfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUExX1JMQzFfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMxX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzFfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDMV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzFfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9STEMxX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEMyX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzJfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9STEMyX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMV9STEMyX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzJfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMV9STEMyX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTFfUkxDMl9SQl9SUFRSCisjZGVmaW5lIFNETUExX1JMQzJfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMyX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzJfUkJfV1BUUgorI2RlZmluZSBTRE1BMV9STEMyX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMl9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1JMQzJfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzJfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMyX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMV9STEMyX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzJfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzJfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzJfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9STEMyX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzJfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMyX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzJfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzJfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1JMQzJfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1JMQzJfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX1JMQzJfSUJfUlBUUgorI2RlZmluZSBTRE1BMV9STEMyX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDMl9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTFfUkxDMl9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTFfUkxDMl9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzJfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUExX1JMQzJfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9STEMyX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUkxDMl9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfUkxDMl9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX1JMQzJfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMyX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTFfUkxDMl9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzJfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzJfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9STEMyX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUExX1JMQzJfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1JMQzJfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1JMQzJfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTFfUkxDMl9ET09SQkVMTAorI2RlZmluZSBTRE1BMV9STEMyX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1JMQzJfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUkxDMl9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUkxDMl9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfUkxDMl9TVEFUVVMKKyNkZWZpbmUgU0RNQTFfUkxDMl9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMV9STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEMyX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9STEMyX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMl9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzJfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzJfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzJfV0FURVJNQVJLCisjZGVmaW5lIFNETUExX1JMQzJfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzJfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUExX1JMQzJfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUExX1JMQzJfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUExX1JMQzJfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEMyX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMV9STEMyX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX1JMQzJfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEMyX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9STEMyX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzJfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMyX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTFfUkxDMl9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzJfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9STEMyX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMl9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfUkxDMl9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTFfUkxDMl9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzJfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEMyX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTFfUkxDMl9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTFfUkxDMl9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUExX1JMQzJfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9STEMyX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMl9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMl9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTFfUkxDMl9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzJfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUExX1JMQzJfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMyX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMl9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMl9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTFfUkxDMl9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzJfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUExX1JMQzJfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMyX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDMl9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDMl9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTFfUkxDMl9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzJfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzJfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUExX1JMQzJfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMyX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzJfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDMl9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzJfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9STEMyX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEMzX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzNfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9STEMzX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMV9STEMzX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzNfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMV9STEMzX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTFfUkxDM19SQl9SUFRSCisjZGVmaW5lIFNETUExX1JMQzNfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMzX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzNfUkJfV1BUUgorI2RlZmluZSBTRE1BMV9STEMzX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDM19SQl9XUFRSX0hJCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1JMQzNfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzNfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMzX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMV9STEMzX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzNfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzNfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzNfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9STEMzX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDM19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzNfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMzX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzNfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzNfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1JMQzNfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1JMQzNfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX1JMQzNfSUJfUlBUUgorI2RlZmluZSBTRE1BMV9STEMzX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDM19JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTFfUkxDM19JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTFfUkxDM19JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzNfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUExX1JMQzNfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9STEMzX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUkxDM19JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfUkxDM19JQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX1JMQzNfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMzX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTFfUkxDM19JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzNfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzNfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9STEMzX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUExX1JMQzNfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1JMQzNfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1JMQzNfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTFfUkxDM19ET09SQkVMTAorI2RlZmluZSBTRE1BMV9STEMzX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1JMQzNfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUkxDM19ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUkxDM19ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfUkxDM19TVEFUVVMKKyNkZWZpbmUgU0RNQTFfUkxDM19TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMV9STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEMzX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9STEMzX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDM19ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzNfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzNfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzNfV0FURVJNQVJLCisjZGVmaW5lIFNETUExX1JMQzNfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzNfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUExX1JMQzNfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUExX1JMQzNfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUExX1JMQzNfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEMzX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMV9STEMzX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX1JMQzNfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEMzX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9STEMzX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzNfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMzX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTFfUkxDM19JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzNfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9STEMzX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDM19QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfUkxDM19EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTFfUkxDM19EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzNfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEMzX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTFfUkxDM19SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTFfUkxDM19NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUExX1JMQzNfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9STEMzX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDM19NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDM19NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTFfUkxDM19NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzNfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUExX1JMQzNfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMzX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDM19NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDM19NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTFfUkxDM19NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzNfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUExX1JMQzNfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMzX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDM19NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDM19NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTFfUkxDM19NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzNfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzNfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUExX1JMQzNfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEMzX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzNfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDM19NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzNfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9STEMzX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEM0X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzRfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9STEM0X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMV9STEM0X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzRfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMV9STEM0X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTFfUkxDNF9SQl9SUFRSCisjZGVmaW5lIFNETUExX1JMQzRfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM0X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzRfUkJfV1BUUgorI2RlZmluZSBTRE1BMV9STEM0X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1JMQzRfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzRfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM0X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMV9STEM0X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzRfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzRfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzRfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9STEM0X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzRfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM0X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzRfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzRfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1JMQzRfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1JMQzRfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX1JMQzRfSUJfUlBUUgorI2RlZmluZSBTRE1BMV9STEM0X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDNF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTFfUkxDNF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTFfUkxDNF9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzRfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUExX1JMQzRfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9STEM0X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUkxDNF9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfUkxDNF9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX1JMQzRfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM0X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTFfUkxDNF9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzRfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzRfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9STEM0X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUExX1JMQzRfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1JMQzRfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1JMQzRfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTFfUkxDNF9ET09SQkVMTAorI2RlZmluZSBTRE1BMV9STEM0X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1JMQzRfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUkxDNF9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUkxDNF9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfUkxDNF9TVEFUVVMKKyNkZWZpbmUgU0RNQTFfUkxDNF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMV9STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEM0X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9STEM0X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNF9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzRfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzRfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzRfV0FURVJNQVJLCisjZGVmaW5lIFNETUExX1JMQzRfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzRfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUExX1JMQzRfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUExX1JMQzRfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUExX1JMQzRfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEM0X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMV9STEM0X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX1JMQzRfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEM0X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9STEM0X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzRfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM0X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTFfUkxDNF9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzRfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9STEM0X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNF9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfUkxDNF9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTFfUkxDNF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzRfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEM0X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTFfUkxDNF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTFfUkxDNF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUExX1JMQzRfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9STEM0X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNF9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNF9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTFfUkxDNF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzRfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUExX1JMQzRfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM0X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNF9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNF9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTFfUkxDNF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzRfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUExX1JMQzRfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM0X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNF9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNF9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTFfUkxDNF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzRfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzRfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUExX1JMQzRfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM0X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzRfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDNF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzRfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9STEM0X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEM1X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzVfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9STEM1X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMV9STEM1X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzVfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMV9STEM1X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTFfUkxDNV9SQl9SUFRSCisjZGVmaW5lIFNETUExX1JMQzVfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM1X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzVfUkJfV1BUUgorI2RlZmluZSBTRE1BMV9STEM1X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNV9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1JMQzVfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzVfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM1X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMV9STEM1X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzVfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzVfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzVfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9STEM1X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzVfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM1X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzVfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzVfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1JMQzVfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1JMQzVfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX1JMQzVfSUJfUlBUUgorI2RlZmluZSBTRE1BMV9STEM1X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDNV9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTFfUkxDNV9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTFfUkxDNV9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzVfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUExX1JMQzVfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9STEM1X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUkxDNV9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfUkxDNV9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX1JMQzVfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM1X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTFfUkxDNV9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzVfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzVfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9STEM1X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUExX1JMQzVfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1JMQzVfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1JMQzVfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTFfUkxDNV9ET09SQkVMTAorI2RlZmluZSBTRE1BMV9STEM1X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1JMQzVfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUkxDNV9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUkxDNV9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfUkxDNV9TVEFUVVMKKyNkZWZpbmUgU0RNQTFfUkxDNV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMV9STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEM1X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9STEM1X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNV9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzVfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzVfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzVfV0FURVJNQVJLCisjZGVmaW5lIFNETUExX1JMQzVfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzVfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUExX1JMQzVfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUExX1JMQzVfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUExX1JMQzVfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEM1X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMV9STEM1X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX1JMQzVfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEM1X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9STEM1X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzVfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM1X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTFfUkxDNV9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzVfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9STEM1X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNV9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfUkxDNV9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTFfUkxDNV9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzVfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEM1X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTFfUkxDNV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTFfUkxDNV9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUExX1JMQzVfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9STEM1X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNV9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNV9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTFfUkxDNV9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzVfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUExX1JMQzVfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM1X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNV9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNV9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTFfUkxDNV9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzVfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUExX1JMQzVfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM1X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNV9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNV9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTFfUkxDNV9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzVfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzVfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUExX1JMQzVfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM1X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzVfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDNV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzVfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9STEM1X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEM2X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzZfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9STEM2X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMV9STEM2X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzZfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMV9STEM2X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTFfUkxDNl9SQl9SUFRSCisjZGVmaW5lIFNETUExX1JMQzZfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM2X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzZfUkJfV1BUUgorI2RlZmluZSBTRE1BMV9STEM2X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNl9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1JMQzZfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzZfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM2X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMV9STEM2X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzZfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzZfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzZfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9STEM2X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzZfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM2X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzZfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzZfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1JMQzZfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1JMQzZfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX1JMQzZfSUJfUlBUUgorI2RlZmluZSBTRE1BMV9STEM2X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDNl9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTFfUkxDNl9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTFfUkxDNl9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzZfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUExX1JMQzZfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9STEM2X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUkxDNl9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfUkxDNl9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX1JMQzZfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM2X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTFfUkxDNl9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzZfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzZfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9STEM2X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUExX1JMQzZfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1JMQzZfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1JMQzZfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTFfUkxDNl9ET09SQkVMTAorI2RlZmluZSBTRE1BMV9STEM2X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1JMQzZfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUkxDNl9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUkxDNl9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfUkxDNl9TVEFUVVMKKyNkZWZpbmUgU0RNQTFfUkxDNl9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMV9STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEM2X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9STEM2X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNl9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzZfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzZfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzZfV0FURVJNQVJLCisjZGVmaW5lIFNETUExX1JMQzZfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzZfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUExX1JMQzZfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUExX1JMQzZfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUExX1JMQzZfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEM2X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMV9STEM2X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX1JMQzZfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEM2X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9STEM2X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzZfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM2X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTFfUkxDNl9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzZfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9STEM2X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNl9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfUkxDNl9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTFfUkxDNl9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzZfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEM2X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTFfUkxDNl9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTFfUkxDNl9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUExX1JMQzZfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9STEM2X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNl9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNl9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTFfUkxDNl9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzZfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUExX1JMQzZfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM2X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNl9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNl9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTFfUkxDNl9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzZfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUExX1JMQzZfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM2X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDNl9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDNl9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTFfUkxDNl9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzZfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzZfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUExX1JMQzZfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM2X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzZfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDNl9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzZfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9STEM2X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEM3X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUExX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzdfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMV9STEM3X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMV9STEM3X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzdfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMV9STEM3X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTFfUkxDN19SQl9SUFRSCisjZGVmaW5lIFNETUExX1JMQzdfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM3X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzdfUkJfV1BUUgorI2RlZmluZSBTRE1BMV9STEM3X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDN19SQl9XUFRSX0hJCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUExX1JMQzdfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzdfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM3X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMV9STEM3X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzdfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzdfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzdfSUJfQ05UTAorI2RlZmluZSBTRE1BMV9STEM3X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDN19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzdfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM3X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzdfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzdfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUExX1JMQzdfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUExX1JMQzdfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUExX1JMQzdfSUJfUlBUUgorI2RlZmluZSBTRE1BMV9STEM3X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDN19JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTFfUkxDN19JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTFfUkxDN19JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzdfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUExX1JMQzdfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMV9STEM3X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTFfUkxDN19JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTFfUkxDN19JQl9CQVNFX0hJCisjZGVmaW5lIFNETUExX1JMQzdfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM3X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTFfUkxDN19JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzdfU0tJUF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzdfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMV9STEM3X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUExX1JMQzdfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUExX1JMQzdfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMV9STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUExX1JMQzdfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMV9STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTFfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTFfUkxDN19ET09SQkVMTAorI2RlZmluZSBTRE1BMV9STEM3X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUExX1JMQzdfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTFfUkxDN19ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTFfUkxDN19ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTFfUkxDN19TVEFUVVMKKyNkZWZpbmUgU0RNQTFfUkxDN19TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMV9STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMV9STEM3X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMV9STEM3X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDN19ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzdfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUExX1JMQzdfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzdfV0FURVJNQVJLCisjZGVmaW5lIFNETUExX1JMQzdfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUExX1JMQzdfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUExX1JMQzdfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUExX1JMQzdfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUExX1JMQzdfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEM3X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMV9STEM3X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUExX1JMQzdfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMV9STEM3X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMV9STEM3X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUExX1JMQzdfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM3X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTFfUkxDN19JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUExX1JMQzdfUFJFRU1QVAorI2RlZmluZSBTRE1BMV9STEM3X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDN19QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTFfUkxDN19EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTFfUkxDN19EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUExX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUExX1JMQzdfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMV9STEM3X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTFfUkxDN19SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTFfUkxDN19NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUExX1JMQzdfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMV9STEM3X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDN19NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDN19NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTFfUkxDN19NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzdfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUExX1JMQzdfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM3X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDN19NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDN19NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTFfUkxDN19NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzdfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUExX1JMQzdfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM3X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTFfUkxDN19NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTFfUkxDN19NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTFfUkxDN19NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUExX1JMQzdfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUExX1JMQzdfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUExX1JMQzdfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMV9STEM3X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUExX1JMQzdfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTFfUkxDN19NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUExX1JMQzdfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMV9STEM3X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMi9zZG1hMl80XzJfMl9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMi9zZG1hMl80XzJfMl9vZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWEwODEzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWEyL3NkbWEyXzRfMl8yX29mZnNldC5oCkBAIC0wLDAgKzEsMTA0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfc2RtYTJfNF8yXzJfT0ZGU0VUX0hFQURFUgorI2RlZmluZSBfc2RtYTJfNF8yXzJfT0ZGU0VUX0hFQURFUgorCisKKworLy8gYWRkcmVzc0Jsb2NrOiBzZG1hMl9zZG1hMmRlYworLy8gYmFzZSBhZGRyZXNzOiAweDc4MDAwCisjZGVmaW5lIG1tU0RNQTJfVUNPREVfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIG1tU0RNQTJfVUNPREVfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1VDT0RFX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBtbVNETUEyX1VDT0RFX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9WTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgbW1TRE1BMl9WTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfVk1fQ1RYX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIG1tU0RNQTJfVk1fQ1RYX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1ZNX0NUWF9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBtbVNETUEyX1ZNX0NUWF9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9BQ1RJVkVfRkNOX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgbW1TRE1BMl9BQ1RJVkVfRkNOX0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfVk1fQ1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIG1tU0RNQTJfVk1fQ1RYX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1ZJUlRfUkVTRVRfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOQorI2RlZmluZSBtbVNETUEyX1ZJUlRfUkVTRVRfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9WRl9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGEKKyNkZWZpbmUgbW1TRE1BMl9WRl9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBiCisjZGVmaW5lIG1tU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0NPTlRFWFRfUkVHX1RZUEUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYworI2RlZmluZSBtbVNETUEyX0NPTlRFWFRfUkVHX1RZUEUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9DT05URVhUX1JFR19UWVBFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGQKKyNkZWZpbmUgbW1TRE1BMl9DT05URVhUX1JFR19UWVBFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBlCisjZGVmaW5lIG1tU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BVQl9SRUdfVFlQRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZgorI2RlZmluZSBtbVNETUEyX1BVQl9SRUdfVFlQRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QVUJfUkVHX1RZUEUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAKKyNkZWZpbmUgbW1TRE1BMl9QVUJfUkVHX1RZUEUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUFVCX1JFR19UWVBFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDExCisjZGVmaW5lIG1tU0RNQTJfUFVCX1JFR19UWVBFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BVQl9SRUdfVFlQRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMgorI2RlZmluZSBtbVNETUEyX1BVQl9SRUdfVFlQRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9NTUhVQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTMKKyNkZWZpbmUgbW1TRE1BMl9NTUhVQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfQ09OVEVYVF9HUk9VUF9CT1VOREFSWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE5CisjZGVmaW5lIG1tU0RNQTJfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BPV0VSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYQorI2RlZmluZSBtbVNETUEyX1BPV0VSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWIKKyNkZWZpbmUgbW1TRE1BMl9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFjCisjZGVmaW5lIG1tU0RNQTJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0NISUNLRU5fQklUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZAorI2RlZmluZSBtbVNETUEyX0NISUNLRU5fQklUU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HQl9BRERSX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWUKKyNkZWZpbmUgbW1TRE1BMl9HQl9BRERSX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0JfQUREUl9DT05GSUdfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFmCisjZGVmaW5lIG1tU0RNQTJfR0JfQUREUl9DT05GSUdfUkVBRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JCX1JQVFJfRkVUQ0hfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMAorI2RlZmluZSBtbVNETUEyX1JCX1JQVFJfRkVUQ0hfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjEKKyNkZWZpbmUgbW1TRE1BMl9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkJfUlBUUl9GRVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyCisjZGVmaW5lIG1tU0RNQTJfUkJfUlBUUl9GRVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0lCX09GRlNFVF9GRVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMworI2RlZmluZSBtbVNETUEyX0lCX09GRlNFVF9GRVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QUk9HUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgbW1TRE1BMl9QUk9HUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfU1RBVFVTX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI1CisjZGVmaW5lIG1tU0RNQTJfU1RBVFVTX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1NUQVRVUzFfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNgorI2RlZmluZSBtbVNETUEyX1NUQVRVUzFfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9SRF9CVVJTVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjcKKyNkZWZpbmUgbW1TRE1BMl9SRF9CVVJTVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfSEJNX1BBR0VfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI4CisjZGVmaW5lIG1tU0RNQTJfSEJNX1BBR0VfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1VDT0RFX0NIRUNLU1VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOQorI2RlZmluZSBtbVNETUEyX1VDT0RFX0NIRUNLU1VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9GMzJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmEKKyNkZWZpbmUgbW1TRE1BMl9GMzJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfRlJFRVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJiCisjZGVmaW5lIG1tU0RNQTJfRlJFRVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BIQVNFMF9RVUFOVFVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYworI2RlZmluZSBtbVNETUEyX1BIQVNFMF9RVUFOVFVNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QSEFTRTFfUVVBTlRVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmQKKyNkZWZpbmUgbW1TRE1BMl9QSEFTRTFfUVVBTlRVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfRURDX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMyCisjZGVmaW5lIG1tU0RNQTJfRURDX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0JBX1RIUkVTSE9MRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMworI2RlZmluZSBtbVNETUEyX0JBX1RIUkVTSE9MRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgbW1TRE1BMl9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM1CisjZGVmaW5lIG1tU0RNQTJfVkVSU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0VEQ19DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBtbVNETUEyX0VEQ19DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9FRENfQ09VTlRFUl9DTEVBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgbW1TRE1BMl9FRENfQ09VTlRFUl9DTEVBUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfU1RBVFVTMl9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIG1tU0RNQTJfU1RBVFVTMl9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0FUT01JQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOQorI2RlZmluZSBtbVNETUEyX0FUT01JQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9BVE9NSUNfUFJFT1BfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2EKKyNkZWZpbmUgbW1TRE1BMl9BVE9NSUNfUFJFT1BfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfQVRPTUlDX1BSRU9QX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNiCisjZGVmaW5lIG1tU0RNQTJfQVRPTUlDX1BSRU9QX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1VUQ0wxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYworI2RlZmluZSBtbVNETUEyX1VUQ0wxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9VVENMMV9XQVRFUk1LICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2QKKyNkZWZpbmUgbW1TRE1BMl9VVENMMV9XQVRFUk1LX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfVVRDTDFfUkRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNlCisjZGVmaW5lIG1tU0RNQTJfVVRDTDFfUkRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1VUQ0wxX1dSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZgorI2RlZmluZSBtbVNETUEyX1VUQ0wxX1dSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9VVENMMV9JTlYwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAKKyNkZWZpbmUgbW1TRE1BMl9VVENMMV9JTlYwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfVVRDTDFfSU5WMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQxCisjZGVmaW5lIG1tU0RNQTJfVVRDTDFfSU5WMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1VUQ0wxX0lOVjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MgorI2RlZmluZSBtbVNETUEyX1VUQ0wxX0lOVjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9VVENMMV9SRF9YTkFDSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDMKKyNkZWZpbmUgbW1TRE1BMl9VVENMMV9SRF9YTkFDSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfVVRDTDFfUkRfWE5BQ0sxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ0CisjZGVmaW5lIG1tU0RNQTJfVVRDTDFfUkRfWE5BQ0sxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1VUQ0wxX1dSX1hOQUNLMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NQorI2RlZmluZSBtbVNETUEyX1VUQ0wxX1dSX1hOQUNLMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9VVENMMV9XUl9YTkFDSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDYKKyNkZWZpbmUgbW1TRE1BMl9VVENMMV9XUl9YTkFDSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfVVRDTDFfVElNRU9VVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ3CisjZGVmaW5lIG1tU0RNQTJfVVRDTDFfVElNRU9VVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1VUQ0wxX1BBR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OAorI2RlZmluZSBtbVNETUEyX1VUQ0wxX1BBR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QT1dFUl9DTlRMX0lETEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDkKKyNkZWZpbmUgbW1TRE1BMl9QT1dFUl9DTlRMX0lETEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRhCisjZGVmaW5lIG1tU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0NISUNLRU5fQklUU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YgorI2RlZmluZSBtbVNETUEyX0NISUNLRU5fQklUU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9TVEFUVVMzX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGMKKyNkZWZpbmUgbW1TRE1BMl9TVEFUVVMzX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEhZU0lDQUxfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRkCisjZGVmaW5lIG1tU0RNQTJfUEhZU0lDQUxfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BIWVNJQ0FMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZQorI2RlZmluZSBtbVNETUEyX1BIWVNJQ0FMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QSEFTRTJfUVVBTlRVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGYKKyNkZWZpbmUgbW1TRE1BMl9QSEFTRTJfUVVBTlRVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfRVJST1JfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUwCisjZGVmaW5lIG1tU0RNQTJfRVJST1JfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BVQl9EVU1NWV9SRUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MQorI2RlZmluZSBtbVNETUEyX1BVQl9EVU1NWV9SRUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QVUJfRFVNTVlfUkVHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTIKKyNkZWZpbmUgbW1TRE1BMl9QVUJfRFVNTVlfUkVHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUFVCX0RVTU1ZX1JFRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUzCisjZGVmaW5lIG1tU0RNQTJfUFVCX0RVTU1ZX1JFRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BVQl9EVU1NWV9SRUczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBtbVNETUEyX1BVQl9EVU1NWV9SRUczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9GMzJfQ09VTlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgbW1TRE1BMl9GMzJfQ09VTlRFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfVU5CUkVBS0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIG1tU0RNQTJfVU5CUkVBS0FCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NworI2RlZmluZSBtbVNETUEyX1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QRVJGQ09VTlRFUjBfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTgKKyNkZWZpbmUgbW1TRE1BMl9QRVJGQ09VTlRFUjBfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEVSRkNPVU5URVIxX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU5CisjZGVmaW5lIG1tU0RNQTJfUEVSRkNPVU5URVIxX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YQorI2RlZmluZSBtbVNETUEyX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9DUkRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWIKKyNkZWZpbmUgbW1TRE1BMl9DUkRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR1BVX0lPVl9WSU9MQVRJT05fTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVkCisjZGVmaW5lIG1tU0RNQTJfR1BVX0lPVl9WSU9MQVRJT05fTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1VMVl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZQorI2RlZmluZSBtbVNETUEyX1VMVl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9FQV9EQklUX0FERFJfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAKKyNkZWZpbmUgbW1TRE1BMl9FQV9EQklUX0FERFJfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfRUFfREJJVF9BRERSX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxCisjZGVmaW5lIG1tU0RNQTJfRUFfREJJVF9BRERSX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MgorI2RlZmluZSBtbVNETUEyX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MgorI2RlZmluZSBtbVNETUEyX0dGWF9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODMKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg0CisjZGVmaW5lIG1tU0RNQTJfR0ZYX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NQorI2RlZmluZSBtbVNETUEyX0dGWF9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODYKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg3CisjZGVmaW5lIG1tU0RNQTJfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OAorI2RlZmluZSBtbVNETUEyX0dGWF9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODkKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhhCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YgorI2RlZmluZSBtbVNETUEyX0dGWF9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGMKKyNkZWZpbmUgbW1TRE1BMl9HRlhfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhkCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZQorI2RlZmluZSBtbVNETUEyX0dGWF9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGYKKyNkZWZpbmUgbW1TRE1BMl9HRlhfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkwCisjZGVmaW5lIG1tU0RNQTJfR0ZYX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MQorI2RlZmluZSBtbVNETUEyX0dGWF9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTIKKyNkZWZpbmUgbW1TRE1BMl9HRlhfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0NPTlRFWFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkzCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0NPTlRFWFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhOAorI2RlZmluZSBtbVNETUEyX0dGWF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTkKKyNkZWZpbmUgbW1TRE1BMl9HRlhfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFhCisjZGVmaW5lIG1tU0RNQTJfR0ZYX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYgorI2RlZmluZSBtbVNETUEyX0dGWF9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWMKKyNkZWZpbmUgbW1TRE1BMl9HRlhfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFkCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZgorI2RlZmluZSBtbVNETUEyX0dGWF9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjAKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMgorI2RlZmluZSBtbVNETUEyX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjMKKyNkZWZpbmUgbW1TRE1BMl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI0CisjZGVmaW5lIG1tU0RNQTJfR0ZYX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNQorI2RlZmluZSBtbVNETUEyX0dGWF9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzAKKyNkZWZpbmUgbW1TRE1BMl9HRlhfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMgorI2RlZmluZSBtbVNETUEyX0dGWF9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzMKKyNkZWZpbmUgbW1TRE1BMl9HRlhfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM0CisjZGVmaW5lIG1tU0RNQTJfR0ZYX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNQorI2RlZmluZSBtbVNETUEyX0dGWF9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzYKKyNkZWZpbmUgbW1TRE1BMl9HRlhfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfR0ZYX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM3CisjZGVmaW5lIG1tU0RNQTJfR0ZYX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX0dGWF9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjOAorI2RlZmluZSBtbVNETUEyX0dGWF9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9HRlhfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzkKKyNkZWZpbmUgbW1TRE1BMl9HRlhfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ4CisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkOQorI2RlZmluZSBtbVNETUEyX1BBR0VfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYworI2RlZmluZSBtbVNETUEyX1BBR0VfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGQKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRlCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZgorI2RlZmluZSBtbVNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTAKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMgorI2RlZmluZSBtbVNETUEyX1BBR0VfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTMKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU0CisjZGVmaW5lIG1tU0RNQTJfUEFHRV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNQorI2RlZmluZSBtbVNETUEyX1BBR0VfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTYKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU3CisjZGVmaW5lIG1tU0RNQTJfUEFHRV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlOAorI2RlZmluZSBtbVNETUEyX1BBR0VfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTkKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVhCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMAorI2RlZmluZSBtbVNETUEyX1BBR0VfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAyCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMworI2RlZmluZSBtbVNETUEyX1BBR0VfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDQKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA1CisjZGVmaW5lIG1tU0RNQTJfUEFHRV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNworI2RlZmluZSBtbVNETUEyX1BBR0VfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDgKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA5CisjZGVmaW5lIG1tU0RNQTJfUEFHRV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYQorI2RlZmluZSBtbVNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGIKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBjCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwZAorI2RlZmluZSBtbVNETUEyX1BBR0VfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTgKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE5CisjZGVmaW5lIG1tU0RNQTJfUEFHRV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYQorI2RlZmluZSBtbVNETUEyX1BBR0VfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWIKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFjCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZAorI2RlZmluZSBtbVNETUEyX1BBR0VfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWUKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFmCisjZGVmaW5lIG1tU0RNQTJfUEFHRV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1BBR0VfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyMAorI2RlZmluZSBtbVNETUEyX1BBR0VfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjEKKyNkZWZpbmUgbW1TRE1BMl9QQUdFX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMwCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMQorI2RlZmluZSBtbVNETUEyX1JMQzBfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzIKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMzCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNAorI2RlZmluZSBtbVNETUEyX1JMQzBfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzUKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM2CisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNworI2RlZmluZSBtbVNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzgKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM5CisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYQorI2RlZmluZSBtbVNETUEyX1JMQzBfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2IKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNjCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZAorI2RlZmluZSBtbVNETUEyX1JMQzBfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2UKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNmCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MAorI2RlZmluZSBtbVNETUEyX1JMQzBfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQyCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1OAorI2RlZmluZSBtbVNETUEyX1JMQzBfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTkKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVhCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1YgorI2RlZmluZSBtbVNETUEyX1JMQzBfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWMKKyNkZWZpbmUgbW1TRE1BMl9STEMwX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVkCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1ZgorI2RlZmluZSBtbVNETUEyX1JMQzBfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjAKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MgorI2RlZmluZSBtbVNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjMKKyNkZWZpbmUgbW1TRE1BMl9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY0CisjZGVmaW5lIG1tU0RNQTJfUkxDMF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2NQorI2RlZmluZSBtbVNETUEyX1JMQzBfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzAKKyNkZWZpbmUgbW1TRE1BMl9STEMwX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MgorI2RlZmluZSBtbVNETUEyX1JMQzBfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzMKKyNkZWZpbmUgbW1TRE1BMl9STEMwX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc0CisjZGVmaW5lIG1tU0RNQTJfUkxDMF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NQorI2RlZmluZSBtbVNETUEyX1JMQzBfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzYKKyNkZWZpbmUgbW1TRE1BMl9STEMwX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc3CisjZGVmaW5lIG1tU0RNQTJfUkxDMF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzBfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3OAorI2RlZmluZSBtbVNETUEyX1JMQzBfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMwX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzkKKyNkZWZpbmUgbW1TRE1BMl9STEMwX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg4CisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4OQorI2RlZmluZSBtbVNETUEyX1JMQzFfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThiCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YworI2RlZmluZSBtbVNETUEyX1JMQzFfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGQKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThlCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZgorI2RlZmluZSBtbVNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTAKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MgorI2RlZmluZSBtbVNETUEyX1JMQzFfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTMKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk0CisjZGVmaW5lIG1tU0RNQTJfUkxDMV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NQorI2RlZmluZSBtbVNETUEyX1JMQzFfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTYKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk3CisjZGVmaW5lIG1tU0RNQTJfUkxDMV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5OAorI2RlZmluZSBtbVNETUEyX1JMQzFfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTkKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTlhCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMAorI2RlZmluZSBtbVNETUEyX1JMQzFfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIyCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMworI2RlZmluZSBtbVNETUEyX1JMQzFfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjQKKyNkZWZpbmUgbW1TRE1BMl9STEMxX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI1CisjZGVmaW5lIG1tU0RNQTJfUkxDMV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNworI2RlZmluZSBtbVNETUEyX1JMQzFfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjgKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI5CisjZGVmaW5lIG1tU0RNQTJfUkxDMV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiYQorI2RlZmluZSBtbVNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmIKKyNkZWZpbmUgbW1TRE1BMl9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJjCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiZAorI2RlZmluZSBtbVNETUEyX1JMQzFfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzgKKyNkZWZpbmUgbW1TRE1BMl9STEMxX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWM5CisjZGVmaW5lIG1tU0RNQTJfUkxDMV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjYQorI2RlZmluZSBtbVNETUEyX1JMQzFfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2IKKyNkZWZpbmUgbW1TRE1BMl9STEMxX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNjCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjZAorI2RlZmluZSBtbVNETUEyX1JMQzFfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2UKKyNkZWZpbmUgbW1TRE1BMl9STEMxX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNmCisjZGVmaW5lIG1tU0RNQTJfUkxDMV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzFfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkMAorI2RlZmluZSBtbVNETUEyX1JMQzFfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZDEKKyNkZWZpbmUgbW1TRE1BMl9STEMxX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUwCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMQorI2RlZmluZSBtbVNETUEyX1JMQzJfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTIKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUzCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNAorI2RlZmluZSBtbVNETUEyX1JMQzJfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTUKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU2CisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNworI2RlZmluZSBtbVNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTgKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU5CisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYQorI2RlZmluZSBtbVNETUEyX1JMQzJfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWIKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVjCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlZAorI2RlZmluZSBtbVNETUEyX1JMQzJfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWUKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVmCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMAorI2RlZmluZSBtbVNETUEyX1JMQzJfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYyCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwOAorI2RlZmluZSBtbVNETUEyX1JMQzJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDkKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBhCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYgorI2RlZmluZSBtbVNETUEyX1JMQzJfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGMKKyNkZWZpbmUgbW1TRE1BMl9STEMyX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBkCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwZgorI2RlZmluZSBtbVNETUEyX1JMQzJfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTAKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjExCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMgorI2RlZmluZSBtbVNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTMKKyNkZWZpbmUgbW1TRE1BMl9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE0CisjZGVmaW5lIG1tU0RNQTJfUkxDMl9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxNQorI2RlZmluZSBtbVNETUEyX1JMQzJfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjAKKyNkZWZpbmUgbW1TRE1BMl9STEMyX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMgorI2RlZmluZSBtbVNETUEyX1JMQzJfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjMKKyNkZWZpbmUgbW1TRE1BMl9STEMyX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI0CisjZGVmaW5lIG1tU0RNQTJfUkxDMl9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNQorI2RlZmluZSBtbVNETUEyX1JMQzJfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjYKKyNkZWZpbmUgbW1TRE1BMl9STEMyX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDMl9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI3CisjZGVmaW5lIG1tU0RNQTJfUkxDMl9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzJfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyOAorI2RlZmluZSBtbVNETUEyX1JMQzJfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMyX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjkKKyNkZWZpbmUgbW1TRE1BMl9STEMyX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM4CisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzOQorI2RlZmluZSBtbVNETUEyX1JMQzNfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2EKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNiCisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYworI2RlZmluZSBtbVNETUEyX1JMQzNfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2QKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNlCisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZgorI2RlZmluZSBtbVNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MgorI2RlZmluZSBtbVNETUEyX1JMQzNfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDMKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ0CisjZGVmaW5lIG1tU0RNQTJfUkxDM19JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NQorI2RlZmluZSBtbVNETUEyX1JMQzNfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDYKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ3CisjZGVmaW5lIG1tU0RNQTJfUkxDM19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0OAorI2RlZmluZSBtbVNETUEyX1JMQzNfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDkKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjRhCisjZGVmaW5lIG1tU0RNQTJfUkxDM19ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MAorI2RlZmluZSBtbVNETUEyX1JMQzNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYyCisjZGVmaW5lIG1tU0RNQTJfUkxDM19XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MworI2RlZmluZSBtbVNETUEyX1JMQzNfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjQKKyNkZWZpbmUgbW1TRE1BMl9STEMzX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY1CisjZGVmaW5lIG1tU0RNQTJfUkxDM19DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NworI2RlZmluZSBtbVNETUEyX1JMQzNfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjgKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY5CisjZGVmaW5lIG1tU0RNQTJfUkxDM19EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YQorI2RlZmluZSBtbVNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmIKKyNkZWZpbmUgbW1TRE1BMl9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZjCisjZGVmaW5lIG1tU0RNQTJfUkxDM19SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2ZAorI2RlZmluZSBtbVNETUEyX1JMQzNfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzgKKyNkZWZpbmUgbW1TRE1BMl9STEMzX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc5CisjZGVmaW5lIG1tU0RNQTJfUkxDM19NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YQorI2RlZmluZSBtbVNETUEyX1JMQzNfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2IKKyNkZWZpbmUgbW1TRE1BMl9STEMzX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdjCisjZGVmaW5lIG1tU0RNQTJfUkxDM19NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZAorI2RlZmluZSBtbVNETUEyX1JMQzNfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2UKKyNkZWZpbmUgbW1TRE1BMl9STEMzX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDM19NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdmCisjZGVmaW5lIG1tU0RNQTJfUkxDM19NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzNfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MAorI2RlZmluZSBtbVNETUEyX1JMQzNfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODEKKyNkZWZpbmUgbW1TRE1BMl9STEMzX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkwCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MQorI2RlZmluZSBtbVNETUEyX1JMQzRfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTIKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkzCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NAorI2RlZmluZSBtbVNETUEyX1JMQzRfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTUKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk2CisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NworI2RlZmluZSBtbVNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTgKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk5CisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YQorI2RlZmluZSBtbVNETUEyX1JMQzRfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWIKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjljCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZAorI2RlZmluZSBtbVNETUEyX1JMQzRfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWUKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlmCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMAorI2RlZmluZSBtbVNETUEyX1JMQzRfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEyCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiOAorI2RlZmluZSBtbVNETUEyX1JMQzRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjkKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJhCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYgorI2RlZmluZSBtbVNETUEyX1JMQzRfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmMKKyNkZWZpbmUgbW1TRE1BMl9STEM0X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJkCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiZgorI2RlZmluZSBtbVNETUEyX1JMQzRfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzAKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMgorI2RlZmluZSBtbVNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzMKKyNkZWZpbmUgbW1TRE1BMl9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM0CisjZGVmaW5lIG1tU0RNQTJfUkxDNF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNQorI2RlZmluZSBtbVNETUEyX1JMQzRfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDAKKyNkZWZpbmUgbW1TRE1BMl9STEM0X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMgorI2RlZmluZSBtbVNETUEyX1JMQzRfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDMKKyNkZWZpbmUgbW1TRE1BMl9STEM0X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ0CisjZGVmaW5lIG1tU0RNQTJfUkxDNF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNQorI2RlZmluZSBtbVNETUEyX1JMQzRfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDYKKyNkZWZpbmUgbW1TRE1BMl9STEM0X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ3CisjZGVmaW5lIG1tU0RNQTJfUkxDNF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzRfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkOAorI2RlZmluZSBtbVNETUEyX1JMQzRfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM0X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDkKKyNkZWZpbmUgbW1TRE1BMl9STEM0X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU4CisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlOQorI2RlZmluZSBtbVNETUEyX1JMQzVfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmViCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYworI2RlZmluZSBtbVNETUEyX1JMQzVfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWQKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVlCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZgorI2RlZmluZSBtbVNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjAKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMgorI2RlZmluZSBtbVNETUEyX1JMQzVfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjMKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY0CisjZGVmaW5lIG1tU0RNQTJfUkxDNV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNQorI2RlZmluZSBtbVNETUEyX1JMQzVfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjYKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY3CisjZGVmaW5lIG1tU0RNQTJfUkxDNV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmOAorI2RlZmluZSBtbVNETUEyX1JMQzVfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjkKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmZhCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMAorI2RlZmluZSBtbVNETUEyX1JMQzVfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEyCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMworI2RlZmluZSBtbVNETUEyX1JMQzVfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTQKKyNkZWZpbmUgbW1TRE1BMl9STEM1X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE1CisjZGVmaW5lIG1tU0RNQTJfUkxDNV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNworI2RlZmluZSBtbVNETUEyX1JMQzVfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTgKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE5CisjZGVmaW5lIG1tU0RNQTJfUkxDNV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYQorI2RlZmluZSBtbVNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWIKKyNkZWZpbmUgbW1TRE1BMl9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFjCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxZAorI2RlZmluZSBtbVNETUEyX1JMQzVfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjgKKyNkZWZpbmUgbW1TRE1BMl9STEM1X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI5CisjZGVmaW5lIG1tU0RNQTJfUkxDNV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyYQorI2RlZmluZSBtbVNETUEyX1JMQzVfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmIKKyNkZWZpbmUgbW1TRE1BMl9STEM1X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJjCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZAorI2RlZmluZSBtbVNETUEyX1JMQzVfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmUKKyNkZWZpbmUgbW1TRE1BMl9STEM1X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJmCisjZGVmaW5lIG1tU0RNQTJfUkxDNV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzVfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMzMAorI2RlZmluZSBtbVNETUEyX1JMQzVfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMzEKKyNkZWZpbmUgbW1TRE1BMl9STEM1X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQwCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MQorI2RlZmluZSBtbVNETUEyX1JMQzZfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDIKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQzCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NAorI2RlZmluZSBtbVNETUEyX1JMQzZfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDUKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ2CisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NworI2RlZmluZSBtbVNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDgKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ5CisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0YQorI2RlZmluZSBtbVNETUEyX1JMQzZfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGIKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRjCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0ZAorI2RlZmluZSBtbVNETUEyX1JMQzZfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGUKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRmCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MAorI2RlZmluZSBtbVNETUEyX1JMQzZfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzUyCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2OAorI2RlZmluZSBtbVNETUEyX1JMQzZfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjkKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZhCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2YgorI2RlZmluZSBtbVNETUEyX1JMQzZfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmMKKyNkZWZpbmUgbW1TRE1BMl9STEM2X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZkCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2ZgorI2RlZmluZSBtbVNETUEyX1JMQzZfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzAKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MgorI2RlZmluZSBtbVNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzMKKyNkZWZpbmUgbW1TRE1BMl9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzc0CisjZGVmaW5lIG1tU0RNQTJfUkxDNl9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3NQorI2RlZmluZSBtbVNETUEyX1JMQzZfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAKKyNkZWZpbmUgbW1TRE1BMl9STEM2X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MgorI2RlZmluZSBtbVNETUEyX1JMQzZfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODMKKyNkZWZpbmUgbW1TRE1BMl9STEM2X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg0CisjZGVmaW5lIG1tU0RNQTJfUkxDNl9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NQorI2RlZmluZSBtbVNETUEyX1JMQzZfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODYKKyNkZWZpbmUgbW1TRE1BMl9STEM2X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDNl9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg3CisjZGVmaW5lIG1tU0RNQTJfUkxDNl9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzZfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4OAorI2RlZmluZSBtbVNETUEyX1JMQzZfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM2X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODkKKyNkZWZpbmUgbW1TRE1BMl9STEM2X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzk4CisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5OQorI2RlZmluZSBtbVNETUEyX1JMQzdfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzliCisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5YworI2RlZmluZSBtbVNETUEyX1JMQzdfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWQKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzllCisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5ZgorI2RlZmluZSBtbVNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTAKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ExCisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMgorI2RlZmluZSBtbVNETUEyX1JMQzdfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTMKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E0CisjZGVmaW5lIG1tU0RNQTJfUkxDN19JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNQorI2RlZmluZSBtbVNETUEyX1JMQzdfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTYKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E3CisjZGVmaW5lIG1tU0RNQTJfUkxDN19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhOAorI2RlZmluZSBtbVNETUEyX1JMQzdfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTkKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2FhCisjZGVmaW5lIG1tU0RNQTJfUkxDN19ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMAorI2RlZmluZSBtbVNETUEyX1JMQzdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MyCisjZGVmaW5lIG1tU0RNQTJfUkxDN19XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMworI2RlZmluZSBtbVNETUEyX1JMQzdfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzQKKyNkZWZpbmUgbW1TRE1BMl9STEM3X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M1CisjZGVmaW5lIG1tU0RNQTJfUkxDN19DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNworI2RlZmluZSBtbVNETUEyX1JMQzdfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzgKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M5CisjZGVmaW5lIG1tU0RNQTJfUkxDN19EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjYQorI2RlZmluZSBtbVNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2IKKyNkZWZpbmUgbW1TRE1BMl9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NjCisjZGVmaW5lIG1tU0RNQTJfUkxDN19SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjZAorI2RlZmluZSBtbVNETUEyX1JMQzdfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDgKKyNkZWZpbmUgbW1TRE1BMl9STEM3X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q5CisjZGVmaW5lIG1tU0RNQTJfUkxDN19NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYQorI2RlZmluZSBtbVNETUEyX1JMQzdfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGIKKyNkZWZpbmUgbW1TRE1BMl9STEM3X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RjCisjZGVmaW5lIG1tU0RNQTJfUkxDN19NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZAorI2RlZmluZSBtbVNETUEyX1JMQzdfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGUKKyNkZWZpbmUgbW1TRE1BMl9STEM3X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTJfUkxDN19NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RmCisjZGVmaW5lIG1tU0RNQTJfUkxDN19NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEyX1JMQzdfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlMAorI2RlZmluZSBtbVNETUEyX1JMQzdfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTEKKyNkZWZpbmUgbW1TRE1BMl9STEM3X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWEyL3NkbWEyXzRfMl8yX3NoX21hc2suaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMi9zZG1hMl80XzJfMl9zaF9tYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUxMGQ1ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTIvc2RtYTJfNF8yXzJfc2hfbWFzay5oCkBAIC0wLDAgKzEsMjk1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfc2RtYTJfNF8yXzJfU0hfTUFTS19IRUFERVIKKyNkZWZpbmUgX3NkbWEyXzRfMl8yX1NIX01BU0tfSEVBREVSCisKKworLy8gYWRkcmVzc0Jsb2NrOiBzZG1hMl9zZG1hMmRlYworLy9TRE1BMl9VQ09ERV9BRERSCisjZGVmaW5lIFNETUEyX1VDT0RFX0FERFJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9VQ09ERV9BRERSX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorLy9TRE1BMl9VQ09ERV9EQVRBCisjZGVmaW5lIFNETUEyX1VDT0RFX0RBVEFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9VQ09ERV9EQVRBX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9WTV9DTlRMCisjZGVmaW5lIFNETUEyX1ZNX0NOVExfX0NNRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9WTV9DTlRMX19DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9TRE1BMl9WTV9DVFhfTE8KKyNkZWZpbmUgU0RNQTJfVk1fQ1RYX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1ZNX0NUWF9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1ZNX0NUWF9ISQorI2RlZmluZSBTRE1BMl9WTV9DVFhfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfVk1fQ1RYX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfQUNUSVZFX0ZDTl9JRAorI2RlZmluZSBTRE1BMl9BQ1RJVkVfRkNOX0lEX19WRklEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfQUNUSVZFX0ZDTl9JRF9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX0FDVElWRV9GQ05fSURfX1ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTJfQUNUSVZFX0ZDTl9JRF9fVkZJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTJfQUNUSVZFX0ZDTl9JRF9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGMEwKKyNkZWZpbmUgU0RNQTJfQUNUSVZFX0ZDTl9JRF9fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTJfVk1fQ1RYX0NOVEwKKyNkZWZpbmUgU0RNQTJfVk1fQ1RYX0NOVExfX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1ZNX0NUWF9DTlRMX19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9WTV9DVFhfQ05UTF9fUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9WTV9DVFhfQ05UTF9fVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9TRE1BMl9WSVJUX1JFU0VUX1JFUQorI2RlZmluZSBTRE1BMl9WSVJUX1JFU0VUX1JFUV9fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfVklSVF9SRVNFVF9SRVFfX1BGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMl9WSVJUX1JFU0VUX1JFUV9fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BMl9WSVJUX1JFU0VUX1JFUV9fUEZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMl9WRl9FTkFCTEUKKyNkZWZpbmUgU0RNQTJfVkZfRU5BQkxFX19WRl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1ZGX0VOQUJMRV9fVkZfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEyX0NPTlRFWFRfUkVHX1RZUEUwCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTJfR0ZYX1JCX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEyX0dGWF9SQl9CQVNFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTJfR0ZYX1JCX1JQVFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEyX0dGWF9SQl9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfV1BUUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTJfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEyX0dGWF9SQl9SUFRSX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfUlBUUl9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTJfR0ZYX0lCX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEyX0dGWF9JQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfSUJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTJfR0ZYX0lCX0JBU0VfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEyX0dGWF9JQl9CQVNFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfSUJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTJfR0ZYX1NLSVBfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEyX0dGWF9ET09SQkVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTJfR0ZYX0NPTlRFWFRfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfQkFTRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfUlBUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfUlBUUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfV1BUUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfV1BUUl9QT0xMX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfUlBUUl9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfUkJfUlBUUl9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfSUJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfSUJfUlBUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfSUJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfSUJfQkFTRV9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfSUJfQkFTRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfSUJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfU0tJUF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfRE9PUkJFTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BMl9HRlhfQ09OVEVYVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL1NETUEyX0NPTlRFWFRfUkVHX1RZUEUxCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMl9HRlhfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0RPT1JCRUxMX0xPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEyX0dGWF9XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMl9HRlhfRE9PUkJFTExfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0NTQV9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEyX0dGWF9DU0FfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUxX19WT0lEX1JFRzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0lCX1NVQl9SRU1BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEyX0dGWF9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0RVTU1ZX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEyX0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX1JCX0FRTF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BMl9HRlhfTUlOT1JfUFRSX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTFfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0RPT1JCRUxMX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0RPT1JCRUxMX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0NTQV9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0NTQV9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fVk9JRF9SRUcyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0lCX1NVQl9SRU1BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX0RVTU1ZX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX1JCX0FRTF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTJfR0ZYX01JTk9SX1BUUl9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMV9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGQzAwMDAwTAorLy9TRE1BMl9DT05URVhUX1JFR19UWVBFMgorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMl9fU0RNQTJfR0ZYX01JRENNRF9EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEyX0dGWF9NSURDTURfREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMl9fU0RNQTJfR0ZYX01JRENNRF9EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEyX0dGWF9NSURDTURfREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMl9fU0RNQTJfR0ZYX01JRENNRF9EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEyX0dGWF9NSURDTURfREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFMl9fU0RNQTJfR0ZYX01JRENNRF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTJfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BMl9HRlhfTUlEQ01EX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZDMDBMCisvL1NETUEyX0NPTlRFWFRfUkVHX1RZUEUzCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfUkVHX1RZUEUzX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9DT05URVhUX1JFR19UWVBFM19fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QVUJfUkVHX1RZUEUwCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1VDT0RFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUwX19TRE1BMl9VQ09ERV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1ZNX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUwX19TRE1BMl9WTV9DVFhfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMF9fU0RNQTJfVk1fQ1RYX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0FDVElWRV9GQ05fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUwX19TRE1BMl9WTV9DVFhfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMF9fU0RNQTJfVklSVF9SRVNFVF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUwX19TRE1BMl9DT05URVhUX1JFR19UWVBFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMF9fU0RNQTJfQ09OVEVYVF9SRUdfVFlQRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NPTlRFWFRfUkVHX1RZUEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUwX19TRE1BMl9DT05URVhUX1JFR19UWVBFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMF9fU0RNQTJfUFVCX1JFR19UWVBFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1BVQl9SRUdfVFlQRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMF9fU0RNQTJfUFVCX1JFR19UWVBFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUwX19TRE1BMl9QVUJfUkVHX1RZUEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX01NSFVCX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMF9fUkVTRVJWRURfRk9SX1BTUFNNVV9BQ0NFU1NfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUwX19TRE1BMl9DT05URVhUX0dST1VQX0JPVU5EQVJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1BPV0VSX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMF9fU0RNQTJfQ0xLX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUwX19TRE1BMl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NISUNLRU5fQklUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMF9fU0RNQTJfR0JfQUREUl9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUwX19TRE1BMl9HQl9BRERSX0NPTkZJR19SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1VDT0RFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1VDT0RFX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1ZNX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1ZNX0NUWF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1ZNX0NUWF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0FDVElWRV9GQ05fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1ZNX0NUWF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1ZJUlRfUkVTRVRfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NPTlRFWFRfUkVHX1RZUEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NPTlRFWFRfUkVHX1RZUEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NPTlRFWFRfUkVHX1RZUEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NPTlRFWFRfUkVHX1RZUEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1BVQl9SRUdfVFlQRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1BVQl9SRUdfVFlQRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1BVQl9SRUdfVFlQRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1BVQl9SRUdfVFlQRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX01NSFVCX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEX0ZPUl9QU1BTTVVfQUNDRVNTX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFFMDAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX1BPV0VSX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NMS19DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0NISUNLRU5fQklUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0dCX0FERFJfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTBfX1NETUEyX0dCX0FERFJfQ09ORklHX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEyX1BVQl9SRUdfVFlQRTEKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfUkJfUlBUUl9GRVRDSF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BMl9SQl9SUFRSX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfSUJfT0ZGU0VUX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX1BST0dSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BMl9TVEFUVVNfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfU1RBVFVTMV9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX1JEX0JVUlNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BMl9IQk1fUEFHRV9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfVUNPREVfQ0hFQ0tTVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX0YzMl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BMl9GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfUEhBU0UwX1FVQU5UVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX1BIQVNFMV9RVUFOVFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BX1BPV0VSX0dBVElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUFfUEdGU01fV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BMl9FRENfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX0JBX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BMl9WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX0VEQ19DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfRURDX0NPVU5URVJfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BMl9TVEFUVVMyX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX0FUT01JQ19DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfQVRPTUlDX1BSRU9QX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BMl9BVE9NSUNfUFJFT1BfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX1VUQ0wxX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfVVRDTDFfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUxX19TRE1BMl9VVENMMV9SRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTFfX1NETUEyX1VUQ0wxX1dSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfUkJfUlBUUl9GRVRDSF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfUkJfUlBUUl9GRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfSUJfT0ZGU0VUX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfUFJPR1JBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfU1RBVFVTX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfU1RBVFVTMV9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfUkRfQlVSU1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfSEJNX1BBR0VfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfVUNPREVfQ0hFQ0tTVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfRjMyX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfUEhBU0UwX1FVQU5UVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfUEhBU0UxX1FVQU5UVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQV9QT1dFUl9HQVRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfRURDX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfQkFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfVkVSU0lPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfRURDX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfRURDX0NPVU5URVJfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfU1RBVFVTMl9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfQVRPTUlDX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfQVRPTUlDX1BSRU9QX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfQVRPTUlDX1BSRU9QX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfVVRDTDFfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfVVRDTDFfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfVVRDTDFfUkRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMV9fU0RNQTJfVVRDTDFfV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTJfUFVCX1JFR19UWVBFMgorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9JTlYwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fU0RNQTJfVVRDTDFfSU5WMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX1VUQ0wxX0lOVjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9SRF9YTkFDSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fU0RNQTJfVVRDTDFfUkRfWE5BQ0sxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX1VUQ0wxX1dSX1hOQUNLMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9XUl9YTkFDSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fU0RNQTJfVVRDTDFfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX1VUQ0wxX1BBR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QT1dFUl9DTlRMX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX0NISUNLRU5fQklUU18yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9TVEFUVVMzX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fU0RNQTJfUEhZU0lDQUxfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX1BIWVNJQ0FMX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QSEFTRTJfUVVBTlRVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fU0RNQTJfRVJST1JfTE9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QVUJfRFVNTVlfUkVHMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX1BVQl9EVU1NWV9SRUcxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fU0RNQTJfUFVCX0RVTU1ZX1JFRzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QVUJfRFVNTVlfUkVHM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX0YzMl9DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fU0RNQTJfVU5CUkVBS0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QRVJGTU9OX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX1BFUkZDT1VOVEVSMF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fU0RNQTJfUEVSRkNPVU5URVIxX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX0NSRF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fUkVTRVJWRUQyOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTJfX1NETUEyX1VMVl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFMl9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9JTlYwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9JTlYxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9JTlYyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9SRF9YTkFDSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9SRF9YTkFDSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9XUl9YTkFDSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9XUl9YTkFDSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VVENMMV9QQUdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QT1dFUl9DTlRMX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9DSElDS0VOX0JJVFNfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9TVEFUVVMzX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QSFlTSUNBTF9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QSFlTSUNBTF9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QSEFTRTJfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9FUlJPUl9MT0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QVUJfRFVNTVlfUkVHMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QVUJfRFVNTVlfUkVHMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QVUJfRFVNTVlfUkVHMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QVUJfRFVNTVlfUkVHM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9GMzJfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VTkJSRUFLQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QRVJGTU9OX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QRVJGQ09VTlRFUjBfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QRVJGQ09VTlRFUjFfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9DUkRfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRDI4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19TRE1BMl9VTFZfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMl9QVUJfUkVHX1RZUEUzCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTNfX1NETUEyX0VBX0RCSVRfQUREUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUzX19TRE1BMl9FQV9EQklUX0FERFJfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUFVCX1JFR19UWVBFM19fU0RNQTJfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1BVQl9SRUdfVFlQRTNfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUzX19TRE1BMl9FQV9EQklUX0FERFJfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUzX19TRE1BMl9FQV9EQklUX0FERFJfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUzX19TRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMl9QVUJfUkVHX1RZUEUzX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkY4TAorLy9TRE1BMl9NTUhVQl9DTlRMCisjZGVmaW5lIFNETUEyX01NSFVCX0NOVExfX1VOSVRfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9NTUhVQl9DTlRMX19VTklUX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9TRE1BMl9DT05URVhUX0dST1VQX0JPVU5EQVJZCisjZGVmaW5lIFNETUEyX0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9DT05URVhUX0dST1VQX0JPVU5EQVJZX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QT1dFUl9DTlRMCisjZGVmaW5lIFNETUEyX1BPV0VSX0NOVExfX01FTV9QT1dFUl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9QT1dFUl9DTlRMX19NRU1fUE9XRVJfTFNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEyX1BPV0VSX0NOVExfX01FTV9QT1dFUl9TRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMl9QT1dFUl9DTlRMX19NRU1fUE9XRVJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTJfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0xTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTJfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX1NEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTJfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRjAwMEwKKy8vU0RNQTJfQ0xLX0NUUkwKKyNkZWZpbmUgU0RNQTJfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9DTEtfQ1RSTF9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTJfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTJfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BMl9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTJfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMl9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEyX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEyX0NOVEwKKyNkZWZpbmUgU0RNQTJfQ05UTF9fVFJBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0NOVExfX1VUQ19MMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9DTlRMX19TRU1fV0FJVF9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfQ05UTF9fREFUQV9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX0NOVExfX0ZFTkNFX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9DTlRMX19NSURDTURfUFJFRU1QVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfQ05UTF9fTUlEQ01EX1dPUkxEU1dJVENIX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMl9DTlRMX19BVVRPX0NUWFNXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEyX0NOVExfX0NUWEVNUFRZX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTJfQ05UTF9fRlJPWkVOX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BMl9DTlRMX19JQl9QUkVFTVBUX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEyX0NOVExfX1RSQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX0NOVExfX1VUQ19MMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX0NOVExfX1NFTV9XQUlUX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX0NOVExfX0RBVEFfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEyX0NOVExfX0ZFTkNFX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX0NOVExfX01JRENNRF9QUkVFTVBUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEyX0NOVExfX01JRENNRF9XT1JMRFNXSVRDSF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEyX0NOVExfX0FVVE9fQ1RYU1dfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEyX0NOVExfX0NUWEVNUFRZX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEyX0NOVExfX0ZST1pFTl9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEyX0NOVExfX0lCX1BSRUVNUFRfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUEyX0NISUNLRU5fQklUUworI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX0NPUFlfRUZGSUNJRU5DWV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfQ0hJQ0tFTl9CSVRTX19TVEFMTF9PTl9UUkFOU19GVUxMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEyX0NISUNLRU5fQklUU19fU1RBTExfT05fTk9fRlJFRV9EQVRBX0JVRkZFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfQ0hJQ0tFTl9CSVRTX19XUklURV9CVVJTVF9XQUlUX0NZQ0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEyX0NISUNLRU5fQklUU19fQ09QWV9PVkVSTEFQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTJfQ0hJQ0tFTl9CSVRTX19SQVdfQ0hFQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX1NSQk1fUE9MTF9SRVRSWUlOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUEyX0NISUNLRU5fQklUU19fQ0dfU1RBVFVTX09VVFBVVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfQ0hJQ0tFTl9CSVRTX19USU1FX0JBU0VEX1FPU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX0NFX0FGSUZPX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUEyX0NISUNLRU5fQklUU19fQ0VfREZJRk9fV0FURVJNQVJLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTJfQ0hJQ0tFTl9CSVRTX19DRV9MRklGT19XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX0NPUFlfRUZGSUNJRU5DWV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX1NUQUxMX09OX1RSQU5TX0ZVTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX1NUQUxMX09OX05PX0ZSRUVfREFUQV9CVUZGRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX1dBSVRfQ1lDTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxQzAwTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX0NPUFlfT1ZFUkxBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX1JBV19DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX1NSQk1fUE9MTF9SRVRSWUlOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX0NHX1NUQVRVU19PVVRQVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX1RJTUVfQkFTRURfUU9TX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX0NFX0FGSUZPX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX0NFX0RGSUZPX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfX0NFX0xGSUZPX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9TRE1BMl9HQl9BRERSX0NPTkZJRworI2RlZmluZSBTRE1BMl9HQl9BRERSX0NPTkZJR19fTlVNX1BJUEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0JfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX0dCX0FERFJfQ09ORklHX19CQU5LX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9HQl9BRERSX0NPTkZJR19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTJfR0JfQUREUl9DT05GSUdfX05VTV9TSEFERVJfRU5HSU5FU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMl9HQl9BRERSX0NPTkZJR19fTlVNX1BJUEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBTRE1BMl9HQl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBTRE1BMl9HQl9BRERSX0NPTkZJR19fQkFOS19JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBTRE1BMl9HQl9BRERSX0NPTkZJR19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBTRE1BMl9HQl9BRERSX0NPTkZJR19fTlVNX1NIQURFUl9FTkdJTkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTgwMDAwTAorLy9TRE1BMl9HQl9BRERSX0NPTkZJR19SRUFECisjZGVmaW5lIFNETUEyX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9QSVBFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HQl9BRERSX0NPTkZJR19SRUFEX19QSVBFX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTJfR0JfQUREUl9DT05GSUdfUkVBRF9fQkFOS19JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMl9HQl9BRERSX0NPTkZJR19SRUFEX19OVU1fU0hBREVSX0VOR0lORVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEyX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9QSVBFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUEyX0dCX0FERFJfQ09ORklHX1JFQURfX1BJUEVfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIFNETUEyX0dCX0FERFJfQ09ORklHX1JFQURfX0JBTktfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFNETUEyX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFNETUEyX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9TSEFERVJfRU5HSU5FU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisvL1NETUEyX1JCX1JQVFJfRkVUQ0hfSEkKKyNkZWZpbmUgU0RNQTJfUkJfUlBUUl9GRVRDSF9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JCX1JQVFJfRkVUQ0hfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTAorI2RlZmluZSBTRE1BMl9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkJfUlBUUl9GRVRDSAorI2RlZmluZSBTRE1BMl9SQl9SUFRSX0ZFVENIX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkJfUlBUUl9GRVRDSF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTJfSUJfT0ZGU0VUX0ZFVENICisjZGVmaW5lIFNETUEyX0lCX09GRlNFVF9GRVRDSF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9JQl9PRkZTRVRfRkVUQ0hfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMl9QUk9HUkFNCisjZGVmaW5lIFNETUEyX1BST0dSQU1fX1NUUkVBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QUk9HUkFNX19TVFJFQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9TVEFUVVNfUkVHCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19SRUdfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfU1RBVFVTX1JFR19fUkJfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1JCX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19SQl9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTJfU1RBVFVTX1JFR19fUkJfQ01EX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lCX0NNRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19JQl9DTURfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfU1RBVFVTX1JFR19fQkxPQ0tfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19FWF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfU1RBVFVTX1JFR19fRVhfSURMRV9QT0xMX1RJTUVSX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1BBQ0tFVF9SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19NQ19XUl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTJfU1RBVFVTX1JFR19fU1JCTV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0NPTlRFWFRfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19ERUxUQV9SUFRSX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1JCX01DX1JSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTJfU1RBVFVTX1JFR19fSUJfTUNfUlJFUV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19NQ19SRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTJfU1RBVFVTX1JFR19fTUNfUkRfUkVUX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19NQ19SRF9OT19QT0xMX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1BSRVZfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTJfU1RBVFVTX1JFR19fU0VNX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19TRU1fUkVRX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1NFTV9SRVNQX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTJfU1RBVFVTX1JFR19fSU5UX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMl9TVEFUVVNfUkVHX19JTlRfUkVRX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1JFR19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1JCX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1JCX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1JCX0NNRF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1JCX0NNRF9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lCX0NNRF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lCX0NNRF9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0JMT0NLX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0VYX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0VYX0lETEVfUE9MTF9USU1FUl9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1BBQ0tFVF9SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX01DX1dSX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1NSQk1fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0NPTlRFWFRfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1JCX01DX1JSRVFfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lCX01DX1JSRVFfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX01DX1JEX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX01DX1JEX1JFVF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX01DX1JEX05PX1BPTExfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1BSRVZfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1NFTV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1NFTV9SRVFfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX1NFTV9SRVNQX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lOVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEyX1NUQVRVU19SRUdfX0lOVF9SRVFfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEyX1NUQVRVUzFfUkVHCisjZGVmaW5lIFNETUEyX1NUQVRVUzFfUkVHX19DRV9XUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfV1JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfU1RBVFVTMV9SRUdfX0NFX1NQTElUX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1NUQVRVUzFfUkVHX19DRV9SUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfT1VUX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTJfU1RBVFVTMV9SRUdfX0NFX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEyX1NUQVRVUzFfUkVHX19DRV9EU1RfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfU1RBVFVTMV9SRUdfX0NFX0FGSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEyX1NUQVRVUzFfUkVHX19DRV9JTkZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfSU5GTzFfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTJfU1RBVFVTMV9SRUdfX0VYX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEyX1NUQVRVUzFfUkVHX19DRV9SRF9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTJfU1RBVFVTMV9SRUdfX0NFX1dSX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfV1JFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfV1JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfU1BMSVRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfT1VUX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfRFNUX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfQUZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfSU5GT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfSU5GTzFfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fRVhfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfUkRfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMl9TVEFUVVMxX1JFR19fQ0VfV1JfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9TRE1BMl9SRF9CVVJTVF9DTlRMCisjZGVmaW5lIFNETUEyX1JEX0JVUlNUX0NOVExfX1JEX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9SRF9CVVJTVF9DTlRMX19DTURfQlVGRkVSX1JEX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkRfQlVSU1RfQ05UTF9fUkRfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgU0RNQTJfUkRfQlVSU1RfQ05UTF9fQ01EX0JVRkZFUl9SRF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKy8vU0RNQTJfSEJNX1BBR0VfQ09ORklHCisjZGVmaW5lIFNETUEyX0hCTV9QQUdFX0NPTkZJR19fUEFHRV9TSVpFX0VYUE9ORU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9IQk1fUEFHRV9DT05GSUdfX1BBR0VfU0laRV9FWFBPTkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9VQ09ERV9DSEVDS1NVTQorI2RlZmluZSBTRE1BMl9VQ09ERV9DSEVDS1NVTV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfVUNPREVfQ0hFQ0tTVU1fX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfRjMyX0NOVEwKKyNkZWZpbmUgU0RNQTJfRjMyX0NOVExfX0hBTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0YzMl9DTlRMX19TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9GMzJfQ05UTF9fSEFMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9GMzJfQ05UTF9fU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9TRE1BMl9GUkVFWkUKKyNkZWZpbmUgU0RNQTJfRlJFRVpFX19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0ZSRUVaRV9fRlJFRVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9GUkVFWkVfX0ZST1pFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfRlJFRVpFX19GMzJfRlJFRVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEyX0ZSRUVaRV9fUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX0ZSRUVaRV9fRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX0ZSRUVaRV9fRlJPWkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEyX0ZSRUVaRV9fRjMyX0ZSRUVaRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL1NETUEyX1BIQVNFMF9RVUFOVFVNCisjZGVmaW5lIFNETUEyX1BIQVNFMF9RVUFOVFVNX19VTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QSEFTRTBfUVVBTlRVTV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUEhBU0UwX1FVQU5UVU1fX1BSRUZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMl9QSEFTRTBfUVVBTlRVTV9fVU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BMl9QSEFTRTBfUVVBTlRVTV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRjAwTAorI2RlZmluZSBTRE1BMl9QSEFTRTBfUVVBTlRVTV9fUFJFRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BMl9QSEFTRTFfUVVBTlRVTQorI2RlZmluZSBTRE1BMl9QSEFTRTFfUVVBTlRVTV9fVU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEhBU0UxX1FVQU5UVU1fX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1BIQVNFMV9RVUFOVFVNX19QUkVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUEhBU0UxX1FVQU5UVU1fX1VOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTJfUEhBU0UxX1FVQU5UVU1fX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkYwMEwKKyNkZWZpbmUgU0RNQTJfUEhBU0UxX1FVQU5UVU1fX1BSRUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfRURDX0NPTkZJRworI2RlZmluZSBTRE1BMl9FRENfQ09ORklHX19ESVNfRURDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfRURDX0NPTkZJR19fRUNDX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX0VEQ19DT05GSUdfX0RJU19FRENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX0VEQ19DT05GSUdfX0VDQ19JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL1NETUEyX0JBX1RIUkVTSE9MRAorI2RlZmluZSBTRE1BMl9CQV9USFJFU0hPTERfX1JFQURfVEhSRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfQkFfVEhSRVNIT0xEX19XUklURV9USFJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMl9CQV9USFJFU0hPTERfX1JFQURfVEhSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBTRE1BMl9CQV9USFJFU0hPTERfX1dSSVRFX1RIUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BMl9JRAorI2RlZmluZSBTRE1BMl9JRF9fREVWSUNFX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfSURfX0RFVklDRV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0RNQTJfVkVSU0lPTgorI2RlZmluZSBTRE1BMl9WRVJTSU9OX19NSU5WRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfVkVSU0lPTl9fTUFKVkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1ZFUlNJT05fX1JFVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTJfVkVSU0lPTl9fTUlOVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgU0RNQTJfVkVSU0lPTl9fTUFKVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgU0RNQTJfVkVSU0lPTl9fUkVWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vU0RNQTJfRURDX0NPVU5URVIKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfVUNPREVfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0VEQ19DT1VOVEVSX19TRE1BX1JCX0NNRF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9FRENfQ09VTlRFUl9fU0RNQV9JQl9DTURfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX0VEQ19DT1VOVEVSX19TRE1BX1VUQ0wxX1JEQlNUX0ZJRk9fU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMl9FRENfQ09VTlRFUl9fU0RNQV9EQVRBX0xVVF9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYwX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUEyX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjJfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYzX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEyX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjVfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY2X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEyX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGN19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BMl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjhfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY5X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEwX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEyX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTFfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BMl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEzX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUEyX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTRfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMl9FRENfQ09VTlRFUl9fU0RNQV9TUExJVF9EQVRfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUEyX0VEQ19DT1VOVEVSX19TRE1BX01DX1dSX0FERFJfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfVUNPREVfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfUkJfQ01EX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfSUJfQ01EX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRCU1RfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfREFUQV9MVVRfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYwX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYyX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYzX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY0X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY1X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY2X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY3X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY4X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY5X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMF9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMV9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxM19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNF9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNV9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfU1BMSVRfREFUX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfX1NETUFfTUNfV1JfQUREUl9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vU0RNQTJfRURDX0NPVU5URVJfQ0xFQVIKKyNkZWZpbmUgU0RNQTJfRURDX0NPVU5URVJfQ0xFQVJfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0VEQ19DT1VOVEVSX0NMRUFSX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEyX1NUQVRVUzJfUkVHCisjZGVmaW5lIFNETUEyX1NUQVRVUzJfUkVHX19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9TVEFUVVMyX1JFR19fRjMyX0lOU1RSX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTJfU1RBVFVTMl9SRUdfX0NNRF9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMl9TVEFUVVMyX1JFR19fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBTRE1BMl9TVEFUVVMyX1JFR19fRjMyX0lOU1RSX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkY4TAorI2RlZmluZSBTRE1BMl9TVEFUVVMyX1JFR19fQ01EX09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BMl9BVE9NSUNfQ05UTAorI2RlZmluZSBTRE1BMl9BVE9NSUNfQ05UTF9fTE9PUF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfQVRPTUlDX0NOVExfX0FUT01JQ19SVE5fSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMl9BVE9NSUNfQ05UTF9fTE9PUF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorI2RlZmluZSBTRE1BMl9BVE9NSUNfQ05UTF9fQVRPTUlDX1JUTl9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMl9BVE9NSUNfUFJFT1BfTE8KKyNkZWZpbmUgU0RNQTJfQVRPTUlDX1BSRU9QX0xPX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0FUT01JQ19QUkVPUF9MT19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX0FUT01JQ19QUkVPUF9ISQorI2RlZmluZSBTRE1BMl9BVE9NSUNfUFJFT1BfSElfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfQVRPTUlDX1BSRU9QX0hJX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfVVRDTDFfQ05UTAorI2RlZmluZSBTRE1BMl9VVENMMV9DTlRMX19SRURPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfVVRDTDFfQ05UTF9fUkVET19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEyX1VUQ0wxX0NOVExfX1JFRE9fV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMl9VVENMMV9DTlRMX19JTlZBQ0tfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTJfVVRDTDFfQ05UTF9fUkVRTDJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9VVENMMV9DTlRMX19WQUREUl9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEyX1VUQ0wxX0NOVExfX1JFRE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0NOVExfX1JFRE9fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RkVMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0NOVExfX1JFRE9fV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0NOVExfX0lOVkFDS19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkMwMDBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0NOVExfX1JFUUwyX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0NOVExfX1ZBRERSX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL1NETUEyX1VUQ0wxX1dBVEVSTUsKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV0FURVJNS19fUkVRTUNfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dBVEVSTUtfX1JFUVBHX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9VVENMMV9XQVRFUk1LX19JTlZSRVFfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dBVEVSTUtfX1hOQUNLX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV0FURVJNS19fUkVRTUNfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV0FURVJNS19fUkVRUEdfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkUwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV0FURVJNS19fSU5WUkVRX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZFMDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV0FURVJNS19fWE5BQ0tfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vU0RNQTJfVVRDTDFfUkRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMl9VVENMMV9SRF9TVEFUVVNfX1BBR0VfTlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fUkVRTDJfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19DRV9MMV9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMl9VVENMMV9SRF9TVEFUVVNfX05FWFRfUkRfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fTUVSR0VfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19BRERSX1JEX1JUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BMl9VVENMMV9SRF9TVEFUVVNfX1dQVFJfUE9MTElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1NUQVRVU19fSU5WUkVRX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19QQUdFX05VTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19SRVFMMl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19DRV9MMV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19ORVhUX1JEX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0MwMDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19NRVJHRV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQzAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19BRERSX1JEX1JUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19XUFRSX1BPTExJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfU1RBVFVTX19JTlZSRVFfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTJfVVRDTDFfV1JfU1RBVFVTCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfU1RBVFVTX19QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1BBR0VfTlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fUkVRTDJfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfU1RBVFVTX19GMzJfV1JfUlRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX05FWFRfV1JfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fTUVSR0VfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfU1RBVFVTX19SUFRSX0RBVEFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfU1RBVFVTX19XUlJFUV9EQVRBX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1BBR0VfTlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JFUUwyX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX0YzMl9XUl9SVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX05FWFRfV1JfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX01FUkdFX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMl9VVENMMV9JTlYwCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX0lOVl9NSURETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9VVENMMV9JTlYwX19SRF9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfSU5WMF9fV1JfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX1JEX0lOX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BMl9VVENMMV9JTlYwX19XUl9JTl9JTlZBRFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTJfVVRDTDFfSU5WMF9fUEFHRV9OVUxMX1NXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX1hOQUNLX0lTX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BMl9VVENMMV9JTlYwX19JTlZSRVFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfVVRDTDFfSU5WMF9fTkFDS19USU1FT1VUX1NXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX05GTFVTSF9JTlZfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9VVENMMV9JTlYwX19GTFVTSF9JTlZfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfSU5WMF9fSU5WX0ZMVVNIVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX0lOVl9WTUlEX1ZFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMl9VVENMMV9JTlYwX19JTlZfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX0lOVl9NSURETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX1JEX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX1dSX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX1JEX0lOX0lOVkFEUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX1dSX0lOX0lOVkFEUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX1BBR0VfTlVMTF9TV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX1hOQUNLX0lTX0lOVkFEUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX0lOVlJFUV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX05BQ0tfVElNRU9VVF9TV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX05GTFVTSF9JTlZfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX0ZMVVNIX0lOVl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX0lOVl9GTFVTSFRZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX0lOVl9WTUlEX1ZFQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkYwMDBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjBfX0lOVl9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL1NETUEyX1VUQ0wxX0lOVjEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfSU5WMV9fSU5WX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjFfX0lOVl9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1VUQ0wxX0lOVjIKKyNkZWZpbmUgU0RNQTJfVVRDTDFfSU5WMl9fSU5WX05GTFVTSF9WTUlEX1ZFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1VUQ0wxX0lOVjJfX0lOVl9ORkxVU0hfVk1JRF9WRUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1VUQ0wxX1JEX1hOQUNLMAorI2RlZmluZSBTRE1BMl9VVENMMV9SRF9YTkFDSzBfX1hOQUNLX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfWE5BQ0swX19YTkFDS19BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfVVRDTDFfUkRfWE5BQ0sxCisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1VUQ0wxX1JEX1hOQUNLMV9fSVNfWE5BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WRUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkYwMEwKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUkRfWE5BQ0sxX19JU19YTkFDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKy8vU0RNQTJfVVRDTDFfV1JfWE5BQ0swCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9YTkFDSzBfX1hOQUNLX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9VVENMMV9XUl9YTkFDSzEKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfVVRDTDFfV1JfWE5BQ0sxX19JU19YTkFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRjAwTAorI2RlZmluZSBTRE1BMl9VVENMMV9XUl9YTkFDSzFfX0lTX1hOQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorLy9TRE1BMl9VVENMMV9USU1FT1VUCisjZGVmaW5lIFNETUEyX1VUQ0wxX1RJTUVPVVRfX1JEX1hOQUNLX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9VVENMMV9USU1FT1VUX19XUl9YTkFDS19MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1VUQ0wxX1RJTUVPVVRfX1JEX1hOQUNLX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUEyX1VUQ0wxX1RJTUVPVVRfX1dSX1hOQUNLX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1VUQ0wxX1BBR0UKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUEFHRV9fVk1fSE9MRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1VUQ0wxX1BBR0VfX1JFUV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9VVENMMV9QQUdFX19VU0VfTVRZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTJfVVRDTDFfUEFHRV9fVVNFX1BUX1NOT09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEyX1VUQ0wxX1BBR0VfX1ZNX0hPTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1VUQ0wxX1BBR0VfX1JFUV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUVMCisjZGVmaW5lIFNETUEyX1VUQ0wxX1BBR0VfX1VTRV9NVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIFNETUEyX1VUQ0wxX1BBR0VfX1VTRV9QVF9TTk9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisvL1NETUEyX1BPV0VSX0NOVExfSURMRQorI2RlZmluZSBTRE1BMl9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUE9XRVJfQ05UTF9JRExFX19ERUxBWTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMl9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEyX1BPV0VSX0NOVExfSURMRV9fREVMQVkwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUEyX1BPV0VSX0NOVExfSURMRV9fREVMQVkxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFNETUEyX1BPV0VSX0NOVExfSURMRV9fREVMQVkyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL1NETUEyX1JFTEFYX09SREVSSU5HX0xVVAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUX19DT1BZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEyX1JFTEFYX09SREVSSU5HX0xVVF9fV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JFTEFYX09SREVSSU5HX0xVVF9fRkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUX19QT0xMX01FTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1JFTEFYX09SREVSSU5HX0xVVF9fQ09ORF9FWEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX0FUT01JQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUX19DT05TVF9GSUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEyX1JFTEFYX09SREVSSU5HX0xVVF9fUFRFUERFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1RJTUVTVEFNUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEyX1JFTEFYX09SREVSSU5HX0xVVF9fV09STERfU1dJVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUX19SUFRSX1dSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1dQVFJfUE9MTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEyX1JFTEFYX09SREVSSU5HX0xVVF9fSUJfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUkVMQVhfT1JERVJJTkdfTFVUX19SQl9GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX0NPUFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX0ZFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1BPTExfTUVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX0NPTkRfRVhFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX0FUT01JQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX0NPTlNUX0ZJTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1BURVBERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1RJTUVTVEFNUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkZDMDAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1dPUkxEX1NXSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JQVFJfV1JCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1dQVFJfUE9MTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX0lCX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BMl9SRUxBWF9PUkRFUklOR19MVVRfX1JCX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BMl9DSElDS0VOX0JJVFNfMgorI2RlZmluZSBTRE1BMl9DSElDS0VOX0JJVFNfMl9fRjMyX0NNRF9QUk9DX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfQ0hJQ0tFTl9CSVRTXzJfX0YzMl9DTURfUFJPQ19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vU0RNQTJfU1RBVFVTM19SRUcKKyNkZWZpbmUgU0RNQTJfU1RBVFVTM19SRUdfX0NNRF9PUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1NUQVRVUzNfUkVHX19QUkVWX1ZNX0NNRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTJfU1RBVFVTM19SRUdfX0VYQ0VQVElPTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BMl9TVEFUVVMzX1JFR19fUVVFVUVfSURfTUFUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEyX1NUQVRVUzNfUkVHX19JTlRfUVVFVUVfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTJfU1RBVFVTM19SRUdfX0NNRF9PUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTJfU1RBVFVTM19SRUdfX1BSRVZfVk1fQ01EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgU0RNQTJfU1RBVFVTM19SRUdfX0VYQ0VQVElPTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTJfU1RBVFVTM19SRUdfX1FVRVVFX0lEX01BVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTJfU1RBVFVTM19SRUdfX0lOVF9RVUVVRV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0MwMDAwMEwKKy8vU0RNQTJfUEhZU0lDQUxfQUREUl9MTworI2RlZmluZSBTRE1BMl9QSFlTSUNBTF9BRERSX0xPX19EX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEhZU0lDQUxfQUREUl9MT19fRElSVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEyX1BIWVNJQ0FMX0FERFJfTE9fX1BIWV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9QSFlTSUNBTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTJfUEhZU0lDQUxfQUREUl9MT19fRF9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUEhZU0lDQUxfQUREUl9MT19fRElSVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTJfUEhZU0lDQUxfQUREUl9MT19fUEhZX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUEhZU0lDQUxfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vU0RNQTJfUEhZU0lDQUxfQUREUl9ISQorI2RlZmluZSBTRE1BMl9QSFlTSUNBTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEhZU0lDQUxfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vU0RNQTJfUEhBU0UyX1FVQU5UVU0KKyNkZWZpbmUgU0RNQTJfUEhBU0UyX1FVQU5UVU1fX1VOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BIQVNFMl9RVUFOVFVNX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9QSEFTRTJfUVVBTlRVTV9fUFJFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEyX1BIQVNFMl9RVUFOVFVNX19VTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUEyX1BIQVNFMl9RVUFOVFVNX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGMDBMCisjZGVmaW5lIFNETUEyX1BIQVNFMl9RVUFOVFVNX19QUkVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUEyX0VSUk9SX0xPRworI2RlZmluZSBTRE1BMl9FUlJPUl9MT0dfX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfRVJST1JfTE9HX19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMl9FUlJPUl9MT0dfX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BMl9FUlJPUl9MT0dfX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BMl9QVUJfRFVNTVlfUkVHMAorI2RlZmluZSBTRE1BMl9QVUJfRFVNTVlfUkVHMF9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUFVCX0RVTU1ZX1JFRzBfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUFVCX0RVTU1ZX1JFRzEKKyNkZWZpbmUgU0RNQTJfUFVCX0RVTU1ZX1JFRzFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BVQl9EVU1NWV9SRUcxX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1BVQl9EVU1NWV9SRUcyCisjZGVmaW5lIFNETUEyX1BVQl9EVU1NWV9SRUcyX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QVUJfRFVNTVlfUkVHMl9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QVUJfRFVNTVlfUkVHMworI2RlZmluZSBTRE1BMl9QVUJfRFVNTVlfUkVHM19fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUFVCX0RVTU1ZX1JFRzNfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfRjMyX0NPVU5URVIKKyNkZWZpbmUgU0RNQTJfRjMyX0NPVU5URVJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0YzMl9DT1VOVEVSX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1VOQlJFQUtBQkxFCisjZGVmaW5lIFNETUEyX1VOQlJFQUtBQkxFX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9VTkJSRUFLQUJMRV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgU0RNQTJfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BFUkZNT05fQ05UTF9fUEVSRl9DTEVBUjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEyX1BFUkZNT05fQ05UTF9fUEVSRl9DTEVBUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BMl9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTJfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTJfUEVSRk1PTl9DTlRMX19QRVJGX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGQ0wKKyNkZWZpbmUgU0RNQTJfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTJfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTJfUEVSRk1PTl9DTlRMX19QRVJGX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKy8vU0RNQTJfUEVSRkNPVU5URVIwX1JFU1VMVAorI2RlZmluZSBTRE1BMl9QRVJGQ09VTlRFUjBfUkVTVUxUX19QRVJGX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEVSRkNPVU5URVIwX1JFU1VMVF9fUEVSRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUEVSRkNPVU5URVIxX1JFU1VMVAorI2RlZmluZSBTRE1BMl9QRVJGQ09VTlRFUjFfUkVTVUxUX19QRVJGX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEVSRkNPVU5URVIxX1JFU1VMVF9fUEVSRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFCisjZGVmaW5lIFNETUEyX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTJfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19TRUxFQ1RfUldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMl9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBTRE1BMl9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZDMDAwTAorI2RlZmluZSBTRE1BMl9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NFTEVDVF9SV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9TRE1BMl9DUkRfQ05UTAorI2RlZmluZSBTRE1BMl9DUkRfQ05UTF9fTUNfV1JSRVFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfQ1JEX0NOVExfX01DX1JEUkVRX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEyX0NSRF9DTlRMX19NQ19XUlJFUV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisjZGVmaW5lIFNETUEyX0NSRF9DTlRMX19NQ19SRFJFUV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0UwMDBMCisvL1NETUEyX0dQVV9JT1ZfVklPTEFUSU9OX0xPRworI2RlZmluZSBTRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZJT0xBVElPTl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19NVUxUSVBMRV9WSU9MQVRJT05fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEyX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1dSSVRFX09QRVJBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUEyX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTJfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WRklEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZJT0xBVElPTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX01VTFRJUExFX1ZJT0xBVElPTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZDTAorI2RlZmluZSBTRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1dSSVRFX09QRVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BMl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorLy9TRE1BMl9VTFZfQ05UTAorI2RlZmluZSBTRE1BMl9VTFZfQ05UTF9fSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BMl9VTFZfQ05UTF9fRVhJVF9VTFZfSU5UX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTJfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BMl9VTFZfQ05UTF9fVUxWX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEyX1VMVl9DTlRMX19IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIFNETUEyX1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUEyX1VMVl9DTlRMX19FWElUX1VMVl9JTlRfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEyX1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEyX1VMVl9DTlRMX19FWElUX1VMVl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEyX1VMVl9DTlRMX19VTFZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEyX0VBX0RCSVRfQUREUl9EQVRBCisjZGVmaW5lIFNETUEyX0VBX0RCSVRfQUREUl9EQVRBX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9FQV9EQklUX0FERFJfREFUQV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9FQV9EQklUX0FERFJfSU5ERVgKKyNkZWZpbmUgU0RNQTJfRUFfREJJVF9BRERSX0lOREVYX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0VBX0RCSVRfQUREUl9JTkRFWF9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL1NETUEyX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzIKKyNkZWZpbmUgU0RNQTJfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fSU5JVElBVE9SX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfX0lOSVRJQVRPUl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NETUEyX0dGWF9SQl9DTlRMCisjZGVmaW5lIFNETUEyX0dGWF9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEyX0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BMl9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMl9HRlhfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUEyX0dGWF9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTJfR0ZYX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0dGWF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX0dGWF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX0dGWF9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BMl9HRlhfUkJfUlBUUgorI2RlZmluZSBTRE1BMl9HRlhfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0dGWF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX0dGWF9SQl9XUFRSCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9HRlhfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BMl9HRlhfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX0dGWF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0dGWF9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX0dGWF9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0dGWF9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9HRlhfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9HRlhfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9HRlhfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9HRlhfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX0dGWF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9HRlhfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX0dGWF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX0dGWF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX0dGWF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX0dGWF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX0dGWF9JQl9SUFRSCisjZGVmaW5lIFNETUEyX0dGWF9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9HRlhfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMl9HRlhfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUEyX0dGWF9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9HRlhfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BMl9HRlhfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9HRlhfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfR0ZYX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfR0ZYX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTJfR0ZYX0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0dGWF9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX0dGWF9JQl9TSVpFCisjZGVmaW5lIFNETUEyX0dGWF9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9HRlhfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX0dGWF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTJfR0ZYX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0dGWF9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTJfR0ZYX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfR0ZYX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEyX0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BMl9HRlhfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTJfR0ZYX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BMl9HRlhfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEyX0dGWF9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEyX0dGWF9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUEyX0dGWF9DT05URVhUX0NOVEwKKyNkZWZpbmUgU0RNQTJfR0ZYX0NPTlRFWFRfQ05UTF9fUkVTVU1FX0NUWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BMl9HRlhfQ09OVEVYVF9DTlRMX19SRVNVTUVfQ1RYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9TRE1BMl9HRlhfU1RBVFVTCisjZGVmaW5lIFNETUEyX0dGWF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTJfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTJfR0ZYX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9HRlhfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX0dGWF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX0dGWF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX0dGWF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTJfR0ZYX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0dGWF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTJfR0ZYX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTJfR0ZYX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTJfR0ZYX0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BMl9HRlhfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfR0ZYX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTJfR0ZYX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX0dGWF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9HRlhfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9HRlhfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfR0ZYX0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX0dGWF9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX0dGWF9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUEyX0dGWF9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9HRlhfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9HRlhfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfR0ZYX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BMl9HRlhfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX0dGWF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BMl9HRlhfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEyX0dGWF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9HRlhfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9HRlhfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BMl9HRlhfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BMl9HRlhfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BMl9HRlhfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfR0ZYX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfR0ZYX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX0dGWF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfR0ZYX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX0dGWF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9HRlhfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9QQUdFX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMl9QQUdFX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1BBR0VfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTJfUEFHRV9SQl9SUFRSCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QQUdFX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1BBR0VfUkJfV1BUUgorI2RlZmluZSBTRE1BMl9QQUdFX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUEFHRV9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1BBR0VfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QQUdFX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMl9QQUdFX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1BBR0VfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9QQUdFX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEFHRV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1BBR0VfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9QQUdFX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1BBR0VfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1BBR0VfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1BBR0VfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1BBR0VfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX1BBR0VfSUJfUlBUUgorI2RlZmluZSBTRE1BMl9QQUdFX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUEFHRV9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTJfUEFHRV9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTJfUEFHRV9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1BBR0VfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEyX1BBR0VfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9QQUdFX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUEFHRV9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfUEFHRV9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX1BBR0VfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QQUdFX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTJfUEFHRV9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1BBR0VfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX1BBR0VfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9QQUdFX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1BBR0VfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1BBR0VfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1BBR0VfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTJfUEFHRV9ET09SQkVMTAorI2RlZmluZSBTRE1BMl9QQUdFX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1BBR0VfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUEFHRV9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUEFHRV9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfUEFHRV9TVEFUVVMKKyNkZWZpbmUgU0RNQTJfUEFHRV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMl9QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9QQUdFX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9QQUdFX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEFHRV9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1BBR0VfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1BBR0VfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1BBR0VfV0FURVJNQVJLCisjZGVmaW5lIFNETUEyX1BBR0VfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1BBR0VfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUEyX1BBR0VfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEyX1BBR0VfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEyX1BBR0VfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9QQUdFX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMl9QQUdFX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX1BBR0VfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9QQUdFX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9QQUdFX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUEyX1BBR0VfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QQUdFX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTJfUEFHRV9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1BBR0VfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9QQUdFX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEFHRV9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfUEFHRV9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTJfUEFHRV9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1BBR0VfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9QQUdFX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTJfUEFHRV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTJfUEFHRV9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEyX1BBR0VfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9QQUdFX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEFHRV9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUEFHRV9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTJfUEFHRV9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1BBR0VfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEyX1BBR0VfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QQUdFX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEFHRV9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUEFHRV9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTJfUEFHRV9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1BBR0VfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEyX1BBR0VfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QQUdFX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUEFHRV9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUEFHRV9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTJfUEFHRV9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1BBR0VfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1BBR0VfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEyX1BBR0VfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9QQUdFX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX1BBR0VfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUEFHRV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1BBR0VfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9QQUdFX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEMwX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9STEMwX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMl9STEMwX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzBfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMl9STEMwX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTJfUkxDMF9SQl9SUFRSCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMwX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzBfUkJfV1BUUgorI2RlZmluZSBTRE1BMl9STEMwX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMwX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1JMQzBfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMwX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMl9STEMwX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzBfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9STEMwX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzBfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMwX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzBfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzBfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1JMQzBfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1JMQzBfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX1JMQzBfSUJfUlBUUgorI2RlZmluZSBTRE1BMl9STEMwX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDMF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTJfUkxDMF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTJfUkxDMF9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzBfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEyX1JMQzBfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9STEMwX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUkxDMF9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfUkxDMF9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX1JMQzBfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMwX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTJfUkxDMF9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzBfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzBfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9STEMwX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1JMQzBfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1JMQzBfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1JMQzBfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTJfUkxDMF9ET09SQkVMTAorI2RlZmluZSBTRE1BMl9STEMwX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1JMQzBfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUkxDMF9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUkxDMF9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfUkxDMF9TVEFUVVMKKyNkZWZpbmUgU0RNQTJfUkxDMF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMl9STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEMwX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9STEMwX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMF9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzBfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzBfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzBfV0FURVJNQVJLCisjZGVmaW5lIFNETUEyX1JMQzBfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzBfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUEyX1JMQzBfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEyX1JMQzBfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEyX1JMQzBfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEMwX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMl9STEMwX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX1JMQzBfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEMwX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9STEMwX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzBfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMwX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTJfUkxDMF9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzBfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9STEMwX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMF9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfUkxDMF9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTJfUkxDMF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzBfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEMwX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTJfUkxDMF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTJfUkxDMF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEyX1JMQzBfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9STEMwX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMF9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMF9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTJfUkxDMF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzBfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEyX1JMQzBfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMwX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMF9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMF9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTJfUkxDMF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzBfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEyX1JMQzBfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMwX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMF9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMF9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTJfUkxDMF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzBfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzBfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEyX1JMQzBfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMwX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzBfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDMF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzBfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9STEMwX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEMxX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9STEMxX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMl9STEMxX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzFfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMl9STEMxX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTJfUkxDMV9SQl9SUFRSCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMxX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzFfUkJfV1BUUgorI2RlZmluZSBTRE1BMl9STEMxX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMV9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMxX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1JMQzFfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMxX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMl9STEMxX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzFfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9STEMxX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzFfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMxX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzFfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzFfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1JMQzFfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1JMQzFfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX1JMQzFfSUJfUlBUUgorI2RlZmluZSBTRE1BMl9STEMxX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDMV9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTJfUkxDMV9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTJfUkxDMV9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzFfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEyX1JMQzFfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9STEMxX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUkxDMV9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfUkxDMV9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX1JMQzFfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMxX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTJfUkxDMV9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzFfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzFfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9STEMxX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1JMQzFfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1JMQzFfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1JMQzFfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTJfUkxDMV9ET09SQkVMTAorI2RlZmluZSBTRE1BMl9STEMxX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1JMQzFfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUkxDMV9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUkxDMV9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfUkxDMV9TVEFUVVMKKyNkZWZpbmUgU0RNQTJfUkxDMV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMl9STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEMxX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9STEMxX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMV9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzFfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzFfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzFfV0FURVJNQVJLCisjZGVmaW5lIFNETUEyX1JMQzFfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzFfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUEyX1JMQzFfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEyX1JMQzFfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEyX1JMQzFfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEMxX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMl9STEMxX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX1JMQzFfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEMxX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9STEMxX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzFfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMxX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTJfUkxDMV9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzFfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9STEMxX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMV9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfUkxDMV9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTJfUkxDMV9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzFfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEMxX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTJfUkxDMV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTJfUkxDMV9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEyX1JMQzFfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9STEMxX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMV9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMV9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTJfUkxDMV9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzFfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEyX1JMQzFfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMxX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMV9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMV9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTJfUkxDMV9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzFfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEyX1JMQzFfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMxX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMV9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMV9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTJfUkxDMV9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzFfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzFfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEyX1JMQzFfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMxX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzFfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDMV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzFfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9STEMxX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEMyX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9STEMyX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMl9STEMyX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzJfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMl9STEMyX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTJfUkxDMl9SQl9SUFRSCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMyX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzJfUkJfV1BUUgorI2RlZmluZSBTRE1BMl9STEMyX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMl9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMyX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1JMQzJfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMyX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMl9STEMyX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzJfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9STEMyX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzJfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMyX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzJfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzJfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1JMQzJfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1JMQzJfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX1JMQzJfSUJfUlBUUgorI2RlZmluZSBTRE1BMl9STEMyX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDMl9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTJfUkxDMl9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTJfUkxDMl9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzJfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEyX1JMQzJfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9STEMyX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUkxDMl9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfUkxDMl9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX1JMQzJfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMyX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTJfUkxDMl9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzJfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzJfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9STEMyX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1JMQzJfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1JMQzJfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1JMQzJfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTJfUkxDMl9ET09SQkVMTAorI2RlZmluZSBTRE1BMl9STEMyX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1JMQzJfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUkxDMl9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUkxDMl9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfUkxDMl9TVEFUVVMKKyNkZWZpbmUgU0RNQTJfUkxDMl9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMl9STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEMyX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9STEMyX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMl9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzJfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzJfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzJfV0FURVJNQVJLCisjZGVmaW5lIFNETUEyX1JMQzJfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzJfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUEyX1JMQzJfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEyX1JMQzJfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEyX1JMQzJfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEMyX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMl9STEMyX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX1JMQzJfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEMyX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9STEMyX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzJfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMyX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTJfUkxDMl9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzJfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9STEMyX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMl9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfUkxDMl9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTJfUkxDMl9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzJfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEMyX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTJfUkxDMl9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTJfUkxDMl9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEyX1JMQzJfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9STEMyX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMl9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMl9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTJfUkxDMl9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzJfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEyX1JMQzJfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMyX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMl9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMl9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTJfUkxDMl9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzJfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEyX1JMQzJfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMyX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDMl9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDMl9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTJfUkxDMl9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzJfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzJfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEyX1JMQzJfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMyX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzJfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDMl9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzJfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9STEMyX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEMzX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9STEMzX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMl9STEMzX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzNfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMl9STEMzX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTJfUkxDM19SQl9SUFRSCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMzX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzNfUkJfV1BUUgorI2RlZmluZSBTRE1BMl9STEMzX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDM19SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMzX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1JMQzNfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMzX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMl9STEMzX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzNfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9STEMzX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDM19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzNfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMzX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzNfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzNfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1JMQzNfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1JMQzNfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX1JMQzNfSUJfUlBUUgorI2RlZmluZSBTRE1BMl9STEMzX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDM19JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTJfUkxDM19JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTJfUkxDM19JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzNfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEyX1JMQzNfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9STEMzX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUkxDM19JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfUkxDM19JQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX1JMQzNfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMzX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTJfUkxDM19JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzNfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzNfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9STEMzX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1JMQzNfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1JMQzNfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1JMQzNfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTJfUkxDM19ET09SQkVMTAorI2RlZmluZSBTRE1BMl9STEMzX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1JMQzNfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUkxDM19ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUkxDM19ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfUkxDM19TVEFUVVMKKyNkZWZpbmUgU0RNQTJfUkxDM19TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMl9STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEMzX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9STEMzX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDM19ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzNfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzNfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzNfV0FURVJNQVJLCisjZGVmaW5lIFNETUEyX1JMQzNfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzNfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUEyX1JMQzNfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEyX1JMQzNfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEyX1JMQzNfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEMzX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMl9STEMzX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX1JMQzNfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEMzX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9STEMzX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzNfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMzX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTJfUkxDM19JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzNfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9STEMzX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDM19QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfUkxDM19EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTJfUkxDM19EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzNfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEMzX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTJfUkxDM19SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTJfUkxDM19NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEyX1JMQzNfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9STEMzX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDM19NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDM19NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTJfUkxDM19NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzNfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEyX1JMQzNfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMzX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDM19NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDM19NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTJfUkxDM19NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzNfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEyX1JMQzNfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMzX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDM19NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDM19NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTJfUkxDM19NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzNfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzNfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEyX1JMQzNfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEMzX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzNfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDM19NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzNfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9STEMzX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEM0X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9STEM0X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMl9STEM0X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzRfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMl9STEM0X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTJfUkxDNF9SQl9SUFRSCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM0X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzRfUkJfV1BUUgorI2RlZmluZSBTRE1BMl9STEM0X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM0X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1JMQzRfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM0X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMl9STEM0X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzRfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9STEM0X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzRfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM0X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzRfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzRfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1JMQzRfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1JMQzRfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX1JMQzRfSUJfUlBUUgorI2RlZmluZSBTRE1BMl9STEM0X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDNF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTJfUkxDNF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTJfUkxDNF9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzRfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEyX1JMQzRfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9STEM0X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUkxDNF9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfUkxDNF9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX1JMQzRfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM0X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTJfUkxDNF9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzRfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzRfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9STEM0X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1JMQzRfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1JMQzRfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1JMQzRfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTJfUkxDNF9ET09SQkVMTAorI2RlZmluZSBTRE1BMl9STEM0X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1JMQzRfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUkxDNF9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUkxDNF9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfUkxDNF9TVEFUVVMKKyNkZWZpbmUgU0RNQTJfUkxDNF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMl9STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEM0X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9STEM0X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNF9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzRfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzRfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzRfV0FURVJNQVJLCisjZGVmaW5lIFNETUEyX1JMQzRfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzRfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUEyX1JMQzRfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEyX1JMQzRfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEyX1JMQzRfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEM0X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMl9STEM0X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX1JMQzRfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEM0X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9STEM0X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzRfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM0X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTJfUkxDNF9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzRfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9STEM0X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNF9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfUkxDNF9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTJfUkxDNF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzRfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEM0X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTJfUkxDNF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTJfUkxDNF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEyX1JMQzRfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9STEM0X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNF9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNF9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTJfUkxDNF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzRfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEyX1JMQzRfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM0X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNF9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNF9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTJfUkxDNF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzRfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEyX1JMQzRfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM0X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNF9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNF9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTJfUkxDNF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzRfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzRfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEyX1JMQzRfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM0X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzRfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDNF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzRfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9STEM0X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEM1X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9STEM1X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMl9STEM1X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzVfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMl9STEM1X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTJfUkxDNV9SQl9SUFRSCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM1X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzVfUkJfV1BUUgorI2RlZmluZSBTRE1BMl9STEM1X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNV9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM1X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1JMQzVfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM1X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMl9STEM1X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzVfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9STEM1X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzVfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM1X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzVfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzVfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1JMQzVfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1JMQzVfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX1JMQzVfSUJfUlBUUgorI2RlZmluZSBTRE1BMl9STEM1X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDNV9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTJfUkxDNV9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTJfUkxDNV9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzVfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEyX1JMQzVfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9STEM1X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUkxDNV9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfUkxDNV9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX1JMQzVfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM1X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTJfUkxDNV9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzVfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzVfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9STEM1X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1JMQzVfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1JMQzVfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1JMQzVfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTJfUkxDNV9ET09SQkVMTAorI2RlZmluZSBTRE1BMl9STEM1X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1JMQzVfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUkxDNV9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUkxDNV9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfUkxDNV9TVEFUVVMKKyNkZWZpbmUgU0RNQTJfUkxDNV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMl9STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEM1X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9STEM1X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNV9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzVfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzVfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzVfV0FURVJNQVJLCisjZGVmaW5lIFNETUEyX1JMQzVfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzVfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUEyX1JMQzVfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEyX1JMQzVfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEyX1JMQzVfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEM1X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMl9STEM1X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX1JMQzVfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEM1X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9STEM1X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzVfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM1X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTJfUkxDNV9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzVfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9STEM1X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNV9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfUkxDNV9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTJfUkxDNV9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzVfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEM1X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTJfUkxDNV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTJfUkxDNV9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEyX1JMQzVfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9STEM1X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNV9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNV9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTJfUkxDNV9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzVfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEyX1JMQzVfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM1X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNV9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNV9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTJfUkxDNV9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzVfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEyX1JMQzVfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM1X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNV9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNV9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTJfUkxDNV9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzVfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzVfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEyX1JMQzVfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM1X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzVfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDNV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzVfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9STEM1X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEM2X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9STEM2X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMl9STEM2X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzZfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMl9STEM2X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTJfUkxDNl9SQl9SUFRSCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM2X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzZfUkJfV1BUUgorI2RlZmluZSBTRE1BMl9STEM2X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNl9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM2X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1JMQzZfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM2X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMl9STEM2X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzZfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9STEM2X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzZfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM2X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzZfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzZfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1JMQzZfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1JMQzZfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX1JMQzZfSUJfUlBUUgorI2RlZmluZSBTRE1BMl9STEM2X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDNl9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTJfUkxDNl9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTJfUkxDNl9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzZfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEyX1JMQzZfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9STEM2X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUkxDNl9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfUkxDNl9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX1JMQzZfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM2X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTJfUkxDNl9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzZfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzZfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9STEM2X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1JMQzZfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1JMQzZfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1JMQzZfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTJfUkxDNl9ET09SQkVMTAorI2RlZmluZSBTRE1BMl9STEM2X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1JMQzZfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUkxDNl9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUkxDNl9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfUkxDNl9TVEFUVVMKKyNkZWZpbmUgU0RNQTJfUkxDNl9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMl9STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEM2X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9STEM2X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNl9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzZfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzZfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzZfV0FURVJNQVJLCisjZGVmaW5lIFNETUEyX1JMQzZfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzZfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUEyX1JMQzZfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEyX1JMQzZfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEyX1JMQzZfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEM2X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMl9STEM2X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX1JMQzZfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEM2X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9STEM2X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzZfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM2X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTJfUkxDNl9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzZfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9STEM2X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNl9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfUkxDNl9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTJfUkxDNl9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzZfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEM2X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTJfUkxDNl9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTJfUkxDNl9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEyX1JMQzZfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9STEM2X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNl9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNl9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTJfUkxDNl9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzZfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEyX1JMQzZfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM2X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNl9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNl9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTJfUkxDNl9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzZfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEyX1JMQzZfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM2X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDNl9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDNl9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTJfUkxDNl9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzZfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzZfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEyX1JMQzZfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM2X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzZfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDNl9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzZfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9STEM2X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEM3X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BMl9STEM3X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BMl9STEM3X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzdfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BMl9STEM3X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTJfUkxDN19SQl9SUFRSCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM3X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzdfUkJfV1BUUgorI2RlZmluZSBTRE1BMl9STEM3X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDN19SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM3X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEyX1JMQzdfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM3X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BMl9STEM3X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzdfSUJfQ05UTAorI2RlZmluZSBTRE1BMl9STEM3X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDN19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzdfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM3X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzdfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzdfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEyX1JMQzdfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEyX1JMQzdfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUEyX1JMQzdfSUJfUlBUUgorI2RlZmluZSBTRE1BMl9STEM3X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDN19JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTJfUkxDN19JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTJfUkxDN19JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzdfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEyX1JMQzdfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BMl9STEM3X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTJfUkxDN19JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTJfUkxDN19JQl9CQVNFX0hJCisjZGVmaW5lIFNETUEyX1JMQzdfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM3X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTJfUkxDN19JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzdfU0tJUF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzdfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BMl9STEM3X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUEyX1JMQzdfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEyX1JMQzdfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BMl9STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEyX1JMQzdfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BMl9STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTJfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTJfUkxDN19ET09SQkVMTAorI2RlZmluZSBTRE1BMl9STEM3X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEyX1JMQzdfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTJfUkxDN19ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTJfUkxDN19ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTJfUkxDN19TVEFUVVMKKyNkZWZpbmUgU0RNQTJfUkxDN19TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BMl9STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BMl9STEM3X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BMl9STEM3X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDN19ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzdfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEyX1JMQzdfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzdfV0FURVJNQVJLCisjZGVmaW5lIFNETUEyX1JMQzdfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEyX1JMQzdfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUEyX1JMQzdfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEyX1JMQzdfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEyX1JMQzdfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEM3X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BMl9STEM3X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUEyX1JMQzdfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BMl9STEM3X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BMl9STEM3X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUEyX1JMQzdfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM3X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTJfUkxDN19JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEyX1JMQzdfUFJFRU1QVAorI2RlZmluZSBTRE1BMl9STEM3X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDN19QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTJfUkxDN19EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTJfUkxDN19EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEyX1JMQzdfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BMl9STEM3X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTJfUkxDN19SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTJfUkxDN19NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEyX1JMQzdfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BMl9STEM3X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDN19NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDN19NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTJfUkxDN19NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzdfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEyX1JMQzdfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM3X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDN19NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDN19NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTJfUkxDN19NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzdfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEyX1JMQzdfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM3X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTJfUkxDN19NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTJfUkxDN19NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTJfUkxDN19NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEyX1JMQzdfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEyX1JMQzdfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEyX1JMQzdfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BMl9STEM3X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUEyX1JMQzdfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTJfUkxDN19NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEyX1JMQzdfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BMl9STEM3X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMy9zZG1hM180XzJfMl9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMy9zZG1hM180XzJfMl9vZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWU4MzAyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWEzL3NkbWEzXzRfMl8yX29mZnNldC5oCkBAIC0wLDAgKzEsMTA0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfc2RtYTNfNF8yXzJfT0ZGU0VUX0hFQURFUgorI2RlZmluZSBfc2RtYTNfNF8yXzJfT0ZGU0VUX0hFQURFUgorCisKKworLy8gYWRkcmVzc0Jsb2NrOiBzZG1hM19zZG1hM2RlYworLy8gYmFzZSBhZGRyZXNzOiAweDc5MDAwCisjZGVmaW5lIG1tU0RNQTNfVUNPREVfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIG1tU0RNQTNfVUNPREVfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1VDT0RFX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBtbVNETUEzX1VDT0RFX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19WTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgbW1TRE1BM19WTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfVk1fQ1RYX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIG1tU0RNQTNfVk1fQ1RYX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1ZNX0NUWF9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBtbVNETUEzX1ZNX0NUWF9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19BQ1RJVkVfRkNOX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgbW1TRE1BM19BQ1RJVkVfRkNOX0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfVk1fQ1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIG1tU0RNQTNfVk1fQ1RYX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1ZJUlRfUkVTRVRfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOQorI2RlZmluZSBtbVNETUEzX1ZJUlRfUkVTRVRfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19WRl9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGEKKyNkZWZpbmUgbW1TRE1BM19WRl9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBiCisjZGVmaW5lIG1tU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0NPTlRFWFRfUkVHX1RZUEUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYworI2RlZmluZSBtbVNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19DT05URVhUX1JFR19UWVBFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGQKKyNkZWZpbmUgbW1TRE1BM19DT05URVhUX1JFR19UWVBFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBlCisjZGVmaW5lIG1tU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BVQl9SRUdfVFlQRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZgorI2RlZmluZSBtbVNETUEzX1BVQl9SRUdfVFlQRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QVUJfUkVHX1RZUEUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAKKyNkZWZpbmUgbW1TRE1BM19QVUJfUkVHX1RZUEUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUFVCX1JFR19UWVBFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDExCisjZGVmaW5lIG1tU0RNQTNfUFVCX1JFR19UWVBFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BVQl9SRUdfVFlQRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMgorI2RlZmluZSBtbVNETUEzX1BVQl9SRUdfVFlQRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19NTUhVQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTMKKyNkZWZpbmUgbW1TRE1BM19NTUhVQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfQ09OVEVYVF9HUk9VUF9CT1VOREFSWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE5CisjZGVmaW5lIG1tU0RNQTNfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BPV0VSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYQorI2RlZmluZSBtbVNETUEzX1BPV0VSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWIKKyNkZWZpbmUgbW1TRE1BM19DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFjCisjZGVmaW5lIG1tU0RNQTNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0NISUNLRU5fQklUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZAorI2RlZmluZSBtbVNETUEzX0NISUNLRU5fQklUU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HQl9BRERSX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWUKKyNkZWZpbmUgbW1TRE1BM19HQl9BRERSX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFmCisjZGVmaW5lIG1tU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JCX1JQVFJfRkVUQ0hfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMAorI2RlZmluZSBtbVNETUEzX1JCX1JQVFJfRkVUQ0hfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjEKKyNkZWZpbmUgbW1TRE1BM19TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkJfUlBUUl9GRVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyCisjZGVmaW5lIG1tU0RNQTNfUkJfUlBUUl9GRVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0lCX09GRlNFVF9GRVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMworI2RlZmluZSBtbVNETUEzX0lCX09GRlNFVF9GRVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QUk9HUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgbW1TRE1BM19QUk9HUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfU1RBVFVTX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI1CisjZGVmaW5lIG1tU0RNQTNfU1RBVFVTX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1NUQVRVUzFfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNgorI2RlZmluZSBtbVNETUEzX1NUQVRVUzFfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19SRF9CVVJTVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjcKKyNkZWZpbmUgbW1TRE1BM19SRF9CVVJTVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfSEJNX1BBR0VfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI4CisjZGVmaW5lIG1tU0RNQTNfSEJNX1BBR0VfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1VDT0RFX0NIRUNLU1VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOQorI2RlZmluZSBtbVNETUEzX1VDT0RFX0NIRUNLU1VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19GMzJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmEKKyNkZWZpbmUgbW1TRE1BM19GMzJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfRlJFRVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJiCisjZGVmaW5lIG1tU0RNQTNfRlJFRVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BIQVNFMF9RVUFOVFVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYworI2RlZmluZSBtbVNETUEzX1BIQVNFMF9RVUFOVFVNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QSEFTRTFfUVVBTlRVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmQKKyNkZWZpbmUgbW1TRE1BM19QSEFTRTFfUVVBTlRVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfRURDX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMyCisjZGVmaW5lIG1tU0RNQTNfRURDX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0JBX1RIUkVTSE9MRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMworI2RlZmluZSBtbVNETUEzX0JBX1RIUkVTSE9MRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgbW1TRE1BM19JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM1CisjZGVmaW5lIG1tU0RNQTNfVkVSU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0VEQ19DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBtbVNETUEzX0VEQ19DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19FRENfQ09VTlRFUl9DTEVBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgbW1TRE1BM19FRENfQ09VTlRFUl9DTEVBUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfU1RBVFVTMl9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIG1tU0RNQTNfU1RBVFVTMl9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0FUT01JQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOQorI2RlZmluZSBtbVNETUEzX0FUT01JQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19BVE9NSUNfUFJFT1BfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2EKKyNkZWZpbmUgbW1TRE1BM19BVE9NSUNfUFJFT1BfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfQVRPTUlDX1BSRU9QX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNiCisjZGVmaW5lIG1tU0RNQTNfQVRPTUlDX1BSRU9QX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1VUQ0wxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYworI2RlZmluZSBtbVNETUEzX1VUQ0wxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19VVENMMV9XQVRFUk1LICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2QKKyNkZWZpbmUgbW1TRE1BM19VVENMMV9XQVRFUk1LX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfVVRDTDFfUkRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNlCisjZGVmaW5lIG1tU0RNQTNfVVRDTDFfUkRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1VUQ0wxX1dSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZgorI2RlZmluZSBtbVNETUEzX1VUQ0wxX1dSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19VVENMMV9JTlYwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAKKyNkZWZpbmUgbW1TRE1BM19VVENMMV9JTlYwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfVVRDTDFfSU5WMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQxCisjZGVmaW5lIG1tU0RNQTNfVVRDTDFfSU5WMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1VUQ0wxX0lOVjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MgorI2RlZmluZSBtbVNETUEzX1VUQ0wxX0lOVjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19VVENMMV9SRF9YTkFDSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDMKKyNkZWZpbmUgbW1TRE1BM19VVENMMV9SRF9YTkFDSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfVVRDTDFfUkRfWE5BQ0sxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ0CisjZGVmaW5lIG1tU0RNQTNfVVRDTDFfUkRfWE5BQ0sxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1VUQ0wxX1dSX1hOQUNLMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NQorI2RlZmluZSBtbVNETUEzX1VUQ0wxX1dSX1hOQUNLMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19VVENMMV9XUl9YTkFDSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDYKKyNkZWZpbmUgbW1TRE1BM19VVENMMV9XUl9YTkFDSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfVVRDTDFfVElNRU9VVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ3CisjZGVmaW5lIG1tU0RNQTNfVVRDTDFfVElNRU9VVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1VUQ0wxX1BBR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OAorI2RlZmluZSBtbVNETUEzX1VUQ0wxX1BBR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QT1dFUl9DTlRMX0lETEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDkKKyNkZWZpbmUgbW1TRE1BM19QT1dFUl9DTlRMX0lETEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkVMQVhfT1JERVJJTkdfTFVUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRhCisjZGVmaW5lIG1tU0RNQTNfUkVMQVhfT1JERVJJTkdfTFVUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0NISUNLRU5fQklUU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YgorI2RlZmluZSBtbVNETUEzX0NISUNLRU5fQklUU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19TVEFUVVMzX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGMKKyNkZWZpbmUgbW1TRE1BM19TVEFUVVMzX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEhZU0lDQUxfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRkCisjZGVmaW5lIG1tU0RNQTNfUEhZU0lDQUxfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BIWVNJQ0FMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZQorI2RlZmluZSBtbVNETUEzX1BIWVNJQ0FMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QSEFTRTJfUVVBTlRVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGYKKyNkZWZpbmUgbW1TRE1BM19QSEFTRTJfUVVBTlRVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfRVJST1JfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUwCisjZGVmaW5lIG1tU0RNQTNfRVJST1JfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BVQl9EVU1NWV9SRUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MQorI2RlZmluZSBtbVNETUEzX1BVQl9EVU1NWV9SRUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QVUJfRFVNTVlfUkVHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTIKKyNkZWZpbmUgbW1TRE1BM19QVUJfRFVNTVlfUkVHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUFVCX0RVTU1ZX1JFRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUzCisjZGVmaW5lIG1tU0RNQTNfUFVCX0RVTU1ZX1JFRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BVQl9EVU1NWV9SRUczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBtbVNETUEzX1BVQl9EVU1NWV9SRUczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19GMzJfQ09VTlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgbW1TRE1BM19GMzJfQ09VTlRFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfVU5CUkVBS0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIG1tU0RNQTNfVU5CUkVBS0FCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NworI2RlZmluZSBtbVNETUEzX1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QRVJGQ09VTlRFUjBfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTgKKyNkZWZpbmUgbW1TRE1BM19QRVJGQ09VTlRFUjBfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEVSRkNPVU5URVIxX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU5CisjZGVmaW5lIG1tU0RNQTNfUEVSRkNPVU5URVIxX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YQorI2RlZmluZSBtbVNETUEzX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19DUkRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWIKKyNkZWZpbmUgbW1TRE1BM19DUkRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR1BVX0lPVl9WSU9MQVRJT05fTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVkCisjZGVmaW5lIG1tU0RNQTNfR1BVX0lPVl9WSU9MQVRJT05fTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1VMVl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZQorI2RlZmluZSBtbVNETUEzX1VMVl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19FQV9EQklUX0FERFJfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAKKyNkZWZpbmUgbW1TRE1BM19FQV9EQklUX0FERFJfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfRUFfREJJVF9BRERSX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxCisjZGVmaW5lIG1tU0RNQTNfRUFfREJJVF9BRERSX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MgorI2RlZmluZSBtbVNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MgorI2RlZmluZSBtbVNETUEzX0dGWF9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODMKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg0CisjZGVmaW5lIG1tU0RNQTNfR0ZYX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NQorI2RlZmluZSBtbVNETUEzX0dGWF9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODYKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg3CisjZGVmaW5lIG1tU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OAorI2RlZmluZSBtbVNETUEzX0dGWF9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODkKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhhCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YgorI2RlZmluZSBtbVNETUEzX0dGWF9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGMKKyNkZWZpbmUgbW1TRE1BM19HRlhfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhkCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZQorI2RlZmluZSBtbVNETUEzX0dGWF9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGYKKyNkZWZpbmUgbW1TRE1BM19HRlhfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkwCisjZGVmaW5lIG1tU0RNQTNfR0ZYX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MQorI2RlZmluZSBtbVNETUEzX0dGWF9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTIKKyNkZWZpbmUgbW1TRE1BM19HRlhfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0NPTlRFWFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkzCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0NPTlRFWFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhOAorI2RlZmluZSBtbVNETUEzX0dGWF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTkKKyNkZWZpbmUgbW1TRE1BM19HRlhfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFhCisjZGVmaW5lIG1tU0RNQTNfR0ZYX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYgorI2RlZmluZSBtbVNETUEzX0dGWF9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWMKKyNkZWZpbmUgbW1TRE1BM19HRlhfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFkCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZgorI2RlZmluZSBtbVNETUEzX0dGWF9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjAKKyNkZWZpbmUgbW1TRE1BM19HRlhfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMgorI2RlZmluZSBtbVNETUEzX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjMKKyNkZWZpbmUgbW1TRE1BM19HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI0CisjZGVmaW5lIG1tU0RNQTNfR0ZYX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNQorI2RlZmluZSBtbVNETUEzX0dGWF9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzAKKyNkZWZpbmUgbW1TRE1BM19HRlhfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMgorI2RlZmluZSBtbVNETUEzX0dGWF9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzMKKyNkZWZpbmUgbW1TRE1BM19HRlhfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM0CisjZGVmaW5lIG1tU0RNQTNfR0ZYX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNQorI2RlZmluZSBtbVNETUEzX0dGWF9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzYKKyNkZWZpbmUgbW1TRE1BM19HRlhfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfR0ZYX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM3CisjZGVmaW5lIG1tU0RNQTNfR0ZYX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX0dGWF9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjOAorI2RlZmluZSBtbVNETUEzX0dGWF9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19HRlhfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzkKKyNkZWZpbmUgbW1TRE1BM19HRlhfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ4CisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkOQorI2RlZmluZSBtbVNETUEzX1BBR0VfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYworI2RlZmluZSBtbVNETUEzX1BBR0VfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGQKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRlCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZgorI2RlZmluZSBtbVNETUEzX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTAKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMgorI2RlZmluZSBtbVNETUEzX1BBR0VfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTMKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU0CisjZGVmaW5lIG1tU0RNQTNfUEFHRV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNQorI2RlZmluZSBtbVNETUEzX1BBR0VfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTYKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU3CisjZGVmaW5lIG1tU0RNQTNfUEFHRV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlOAorI2RlZmluZSBtbVNETUEzX1BBR0VfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTkKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVhCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMAorI2RlZmluZSBtbVNETUEzX1BBR0VfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAyCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMworI2RlZmluZSBtbVNETUEzX1BBR0VfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDQKKyNkZWZpbmUgbW1TRE1BM19QQUdFX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA1CisjZGVmaW5lIG1tU0RNQTNfUEFHRV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNworI2RlZmluZSBtbVNETUEzX1BBR0VfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDgKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA5CisjZGVmaW5lIG1tU0RNQTNfUEFHRV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYQorI2RlZmluZSBtbVNETUEzX1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGIKKyNkZWZpbmUgbW1TRE1BM19QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBjCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwZAorI2RlZmluZSBtbVNETUEzX1BBR0VfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTgKKyNkZWZpbmUgbW1TRE1BM19QQUdFX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE5CisjZGVmaW5lIG1tU0RNQTNfUEFHRV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYQorI2RlZmluZSBtbVNETUEzX1BBR0VfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWIKKyNkZWZpbmUgbW1TRE1BM19QQUdFX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFjCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZAorI2RlZmluZSBtbVNETUEzX1BBR0VfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWUKKyNkZWZpbmUgbW1TRE1BM19QQUdFX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFmCisjZGVmaW5lIG1tU0RNQTNfUEFHRV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1BBR0VfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyMAorI2RlZmluZSBtbVNETUEzX1BBR0VfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjEKKyNkZWZpbmUgbW1TRE1BM19QQUdFX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMwCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMQorI2RlZmluZSBtbVNETUEzX1JMQzBfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzIKKyNkZWZpbmUgbW1TRE1BM19STEMwX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMzCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNAorI2RlZmluZSBtbVNETUEzX1JMQzBfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzUKKyNkZWZpbmUgbW1TRE1BM19STEMwX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM2CisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNworI2RlZmluZSBtbVNETUEzX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzgKKyNkZWZpbmUgbW1TRE1BM19STEMwX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM5CisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYQorI2RlZmluZSBtbVNETUEzX1JMQzBfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2IKKyNkZWZpbmUgbW1TRE1BM19STEMwX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNjCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZAorI2RlZmluZSBtbVNETUEzX1JMQzBfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2UKKyNkZWZpbmUgbW1TRE1BM19STEMwX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNmCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MAorI2RlZmluZSBtbVNETUEzX1JMQzBfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQyCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1OAorI2RlZmluZSBtbVNETUEzX1JMQzBfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTkKKyNkZWZpbmUgbW1TRE1BM19STEMwX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVhCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1YgorI2RlZmluZSBtbVNETUEzX1JMQzBfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWMKKyNkZWZpbmUgbW1TRE1BM19STEMwX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVkCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1ZgorI2RlZmluZSBtbVNETUEzX1JMQzBfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjAKKyNkZWZpbmUgbW1TRE1BM19STEMwX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MgorI2RlZmluZSBtbVNETUEzX1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjMKKyNkZWZpbmUgbW1TRE1BM19STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY0CisjZGVmaW5lIG1tU0RNQTNfUkxDMF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2NQorI2RlZmluZSBtbVNETUEzX1JMQzBfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzAKKyNkZWZpbmUgbW1TRE1BM19STEMwX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MgorI2RlZmluZSBtbVNETUEzX1JMQzBfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzMKKyNkZWZpbmUgbW1TRE1BM19STEMwX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc0CisjZGVmaW5lIG1tU0RNQTNfUkxDMF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NQorI2RlZmluZSBtbVNETUEzX1JMQzBfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzYKKyNkZWZpbmUgbW1TRE1BM19STEMwX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc3CisjZGVmaW5lIG1tU0RNQTNfUkxDMF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzBfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3OAorI2RlZmluZSBtbVNETUEzX1JMQzBfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMwX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzkKKyNkZWZpbmUgbW1TRE1BM19STEMwX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg4CisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4OQorI2RlZmluZSBtbVNETUEzX1JMQzFfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGEKKyNkZWZpbmUgbW1TRE1BM19STEMxX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThiCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YworI2RlZmluZSBtbVNETUEzX1JMQzFfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGQKKyNkZWZpbmUgbW1TRE1BM19STEMxX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThlCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZgorI2RlZmluZSBtbVNETUEzX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTAKKyNkZWZpbmUgbW1TRE1BM19STEMxX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MgorI2RlZmluZSBtbVNETUEzX1JMQzFfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTMKKyNkZWZpbmUgbW1TRE1BM19STEMxX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk0CisjZGVmaW5lIG1tU0RNQTNfUkxDMV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NQorI2RlZmluZSBtbVNETUEzX1JMQzFfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTYKKyNkZWZpbmUgbW1TRE1BM19STEMxX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk3CisjZGVmaW5lIG1tU0RNQTNfUkxDMV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5OAorI2RlZmluZSBtbVNETUEzX1JMQzFfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTkKKyNkZWZpbmUgbW1TRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTlhCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMAorI2RlZmluZSBtbVNETUEzX1JMQzFfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjEKKyNkZWZpbmUgbW1TRE1BM19STEMxX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIyCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMworI2RlZmluZSBtbVNETUEzX1JMQzFfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjQKKyNkZWZpbmUgbW1TRE1BM19STEMxX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI1CisjZGVmaW5lIG1tU0RNQTNfUkxDMV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNworI2RlZmluZSBtbVNETUEzX1JMQzFfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjgKKyNkZWZpbmUgbW1TRE1BM19STEMxX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI5CisjZGVmaW5lIG1tU0RNQTNfUkxDMV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiYQorI2RlZmluZSBtbVNETUEzX1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmIKKyNkZWZpbmUgbW1TRE1BM19STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJjCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiZAorI2RlZmluZSBtbVNETUEzX1JMQzFfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzgKKyNkZWZpbmUgbW1TRE1BM19STEMxX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWM5CisjZGVmaW5lIG1tU0RNQTNfUkxDMV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjYQorI2RlZmluZSBtbVNETUEzX1JMQzFfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2IKKyNkZWZpbmUgbW1TRE1BM19STEMxX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNjCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjZAorI2RlZmluZSBtbVNETUEzX1JMQzFfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2UKKyNkZWZpbmUgbW1TRE1BM19STEMxX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNmCisjZGVmaW5lIG1tU0RNQTNfUkxDMV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzFfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkMAorI2RlZmluZSBtbVNETUEzX1JMQzFfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZDEKKyNkZWZpbmUgbW1TRE1BM19STEMxX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUwCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMQorI2RlZmluZSBtbVNETUEzX1JMQzJfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTIKKyNkZWZpbmUgbW1TRE1BM19STEMyX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUzCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNAorI2RlZmluZSBtbVNETUEzX1JMQzJfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTUKKyNkZWZpbmUgbW1TRE1BM19STEMyX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU2CisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNworI2RlZmluZSBtbVNETUEzX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTgKKyNkZWZpbmUgbW1TRE1BM19STEMyX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU5CisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYQorI2RlZmluZSBtbVNETUEzX1JMQzJfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWIKKyNkZWZpbmUgbW1TRE1BM19STEMyX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVjCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlZAorI2RlZmluZSBtbVNETUEzX1JMQzJfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWUKKyNkZWZpbmUgbW1TRE1BM19STEMyX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVmCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMAorI2RlZmluZSBtbVNETUEzX1JMQzJfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjEKKyNkZWZpbmUgbW1TRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYyCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwOAorI2RlZmluZSBtbVNETUEzX1JMQzJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDkKKyNkZWZpbmUgbW1TRE1BM19STEMyX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBhCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYgorI2RlZmluZSBtbVNETUEzX1JMQzJfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGMKKyNkZWZpbmUgbW1TRE1BM19STEMyX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBkCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwZgorI2RlZmluZSBtbVNETUEzX1JMQzJfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTAKKyNkZWZpbmUgbW1TRE1BM19STEMyX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjExCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMgorI2RlZmluZSBtbVNETUEzX1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTMKKyNkZWZpbmUgbW1TRE1BM19STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE0CisjZGVmaW5lIG1tU0RNQTNfUkxDMl9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxNQorI2RlZmluZSBtbVNETUEzX1JMQzJfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjAKKyNkZWZpbmUgbW1TRE1BM19STEMyX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMgorI2RlZmluZSBtbVNETUEzX1JMQzJfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjMKKyNkZWZpbmUgbW1TRE1BM19STEMyX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI0CisjZGVmaW5lIG1tU0RNQTNfUkxDMl9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNQorI2RlZmluZSBtbVNETUEzX1JMQzJfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjYKKyNkZWZpbmUgbW1TRE1BM19STEMyX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDMl9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI3CisjZGVmaW5lIG1tU0RNQTNfUkxDMl9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzJfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyOAorI2RlZmluZSBtbVNETUEzX1JMQzJfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMyX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjkKKyNkZWZpbmUgbW1TRE1BM19STEMyX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM4CisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzOQorI2RlZmluZSBtbVNETUEzX1JMQzNfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2EKKyNkZWZpbmUgbW1TRE1BM19STEMzX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNiCisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYworI2RlZmluZSBtbVNETUEzX1JMQzNfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2QKKyNkZWZpbmUgbW1TRE1BM19STEMzX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNlCisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZgorI2RlZmluZSBtbVNETUEzX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAKKyNkZWZpbmUgbW1TRE1BM19STEMzX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MgorI2RlZmluZSBtbVNETUEzX1JMQzNfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDMKKyNkZWZpbmUgbW1TRE1BM19STEMzX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ0CisjZGVmaW5lIG1tU0RNQTNfUkxDM19JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NQorI2RlZmluZSBtbVNETUEzX1JMQzNfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDYKKyNkZWZpbmUgbW1TRE1BM19STEMzX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ3CisjZGVmaW5lIG1tU0RNQTNfUkxDM19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0OAorI2RlZmluZSBtbVNETUEzX1JMQzNfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDkKKyNkZWZpbmUgbW1TRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjRhCisjZGVmaW5lIG1tU0RNQTNfUkxDM19ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MAorI2RlZmluZSBtbVNETUEzX1JMQzNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjEKKyNkZWZpbmUgbW1TRE1BM19STEMzX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYyCisjZGVmaW5lIG1tU0RNQTNfUkxDM19XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MworI2RlZmluZSBtbVNETUEzX1JMQzNfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjQKKyNkZWZpbmUgbW1TRE1BM19STEMzX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY1CisjZGVmaW5lIG1tU0RNQTNfUkxDM19DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NworI2RlZmluZSBtbVNETUEzX1JMQzNfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjgKKyNkZWZpbmUgbW1TRE1BM19STEMzX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY5CisjZGVmaW5lIG1tU0RNQTNfUkxDM19EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YQorI2RlZmluZSBtbVNETUEzX1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmIKKyNkZWZpbmUgbW1TRE1BM19STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZjCisjZGVmaW5lIG1tU0RNQTNfUkxDM19SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2ZAorI2RlZmluZSBtbVNETUEzX1JMQzNfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzgKKyNkZWZpbmUgbW1TRE1BM19STEMzX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc5CisjZGVmaW5lIG1tU0RNQTNfUkxDM19NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YQorI2RlZmluZSBtbVNETUEzX1JMQzNfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2IKKyNkZWZpbmUgbW1TRE1BM19STEMzX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdjCisjZGVmaW5lIG1tU0RNQTNfUkxDM19NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZAorI2RlZmluZSBtbVNETUEzX1JMQzNfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2UKKyNkZWZpbmUgbW1TRE1BM19STEMzX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDM19NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdmCisjZGVmaW5lIG1tU0RNQTNfUkxDM19NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzNfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MAorI2RlZmluZSBtbVNETUEzX1JMQzNfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEMzX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODEKKyNkZWZpbmUgbW1TRE1BM19STEMzX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkwCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MQorI2RlZmluZSBtbVNETUEzX1JMQzRfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTIKKyNkZWZpbmUgbW1TRE1BM19STEM0X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkzCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NAorI2RlZmluZSBtbVNETUEzX1JMQzRfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTUKKyNkZWZpbmUgbW1TRE1BM19STEM0X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk2CisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NworI2RlZmluZSBtbVNETUEzX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTgKKyNkZWZpbmUgbW1TRE1BM19STEM0X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk5CisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YQorI2RlZmluZSBtbVNETUEzX1JMQzRfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWIKKyNkZWZpbmUgbW1TRE1BM19STEM0X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjljCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZAorI2RlZmluZSBtbVNETUEzX1JMQzRfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWUKKyNkZWZpbmUgbW1TRE1BM19STEM0X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlmCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMAorI2RlZmluZSBtbVNETUEzX1JMQzRfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTEKKyNkZWZpbmUgbW1TRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEyCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiOAorI2RlZmluZSBtbVNETUEzX1JMQzRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjkKKyNkZWZpbmUgbW1TRE1BM19STEM0X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJhCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYgorI2RlZmluZSBtbVNETUEzX1JMQzRfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmMKKyNkZWZpbmUgbW1TRE1BM19STEM0X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJkCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiZgorI2RlZmluZSBtbVNETUEzX1JMQzRfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzAKKyNkZWZpbmUgbW1TRE1BM19STEM0X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMgorI2RlZmluZSBtbVNETUEzX1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzMKKyNkZWZpbmUgbW1TRE1BM19STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM0CisjZGVmaW5lIG1tU0RNQTNfUkxDNF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNQorI2RlZmluZSBtbVNETUEzX1JMQzRfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDAKKyNkZWZpbmUgbW1TRE1BM19STEM0X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMgorI2RlZmluZSBtbVNETUEzX1JMQzRfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDMKKyNkZWZpbmUgbW1TRE1BM19STEM0X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ0CisjZGVmaW5lIG1tU0RNQTNfUkxDNF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNQorI2RlZmluZSBtbVNETUEzX1JMQzRfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDYKKyNkZWZpbmUgbW1TRE1BM19STEM0X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ3CisjZGVmaW5lIG1tU0RNQTNfUkxDNF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzRfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkOAorI2RlZmluZSBtbVNETUEzX1JMQzRfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM0X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDkKKyNkZWZpbmUgbW1TRE1BM19STEM0X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU4CisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlOQorI2RlZmluZSBtbVNETUEzX1JMQzVfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWEKKyNkZWZpbmUgbW1TRE1BM19STEM1X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmViCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYworI2RlZmluZSBtbVNETUEzX1JMQzVfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWQKKyNkZWZpbmUgbW1TRE1BM19STEM1X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVlCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZgorI2RlZmluZSBtbVNETUEzX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjAKKyNkZWZpbmUgbW1TRE1BM19STEM1X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMgorI2RlZmluZSBtbVNETUEzX1JMQzVfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjMKKyNkZWZpbmUgbW1TRE1BM19STEM1X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY0CisjZGVmaW5lIG1tU0RNQTNfUkxDNV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNQorI2RlZmluZSBtbVNETUEzX1JMQzVfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjYKKyNkZWZpbmUgbW1TRE1BM19STEM1X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY3CisjZGVmaW5lIG1tU0RNQTNfUkxDNV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmOAorI2RlZmluZSBtbVNETUEzX1JMQzVfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjkKKyNkZWZpbmUgbW1TRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmZhCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMAorI2RlZmluZSBtbVNETUEzX1JMQzVfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTEKKyNkZWZpbmUgbW1TRE1BM19STEM1X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEyCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMworI2RlZmluZSBtbVNETUEzX1JMQzVfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTQKKyNkZWZpbmUgbW1TRE1BM19STEM1X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE1CisjZGVmaW5lIG1tU0RNQTNfUkxDNV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNworI2RlZmluZSBtbVNETUEzX1JMQzVfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTgKKyNkZWZpbmUgbW1TRE1BM19STEM1X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE5CisjZGVmaW5lIG1tU0RNQTNfUkxDNV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYQorI2RlZmluZSBtbVNETUEzX1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWIKKyNkZWZpbmUgbW1TRE1BM19STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFjCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxZAorI2RlZmluZSBtbVNETUEzX1JMQzVfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjgKKyNkZWZpbmUgbW1TRE1BM19STEM1X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI5CisjZGVmaW5lIG1tU0RNQTNfUkxDNV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyYQorI2RlZmluZSBtbVNETUEzX1JMQzVfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmIKKyNkZWZpbmUgbW1TRE1BM19STEM1X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJjCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZAorI2RlZmluZSBtbVNETUEzX1JMQzVfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmUKKyNkZWZpbmUgbW1TRE1BM19STEM1X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJmCisjZGVmaW5lIG1tU0RNQTNfUkxDNV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzVfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMzMAorI2RlZmluZSBtbVNETUEzX1JMQzVfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM1X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMzEKKyNkZWZpbmUgbW1TRE1BM19STEM1X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQwCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MQorI2RlZmluZSBtbVNETUEzX1JMQzZfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDIKKyNkZWZpbmUgbW1TRE1BM19STEM2X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQzCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NAorI2RlZmluZSBtbVNETUEzX1JMQzZfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDUKKyNkZWZpbmUgbW1TRE1BM19STEM2X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ2CisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NworI2RlZmluZSBtbVNETUEzX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDgKKyNkZWZpbmUgbW1TRE1BM19STEM2X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ5CisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0YQorI2RlZmluZSBtbVNETUEzX1JMQzZfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGIKKyNkZWZpbmUgbW1TRE1BM19STEM2X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRjCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0ZAorI2RlZmluZSBtbVNETUEzX1JMQzZfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGUKKyNkZWZpbmUgbW1TRE1BM19STEM2X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRmCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MAorI2RlZmluZSBtbVNETUEzX1JMQzZfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTEKKyNkZWZpbmUgbW1TRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzUyCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2OAorI2RlZmluZSBtbVNETUEzX1JMQzZfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjkKKyNkZWZpbmUgbW1TRE1BM19STEM2X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZhCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2YgorI2RlZmluZSBtbVNETUEzX1JMQzZfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmMKKyNkZWZpbmUgbW1TRE1BM19STEM2X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZkCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2ZgorI2RlZmluZSBtbVNETUEzX1JMQzZfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzAKKyNkZWZpbmUgbW1TRE1BM19STEM2X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MgorI2RlZmluZSBtbVNETUEzX1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzMKKyNkZWZpbmUgbW1TRE1BM19STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzc0CisjZGVmaW5lIG1tU0RNQTNfUkxDNl9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3NQorI2RlZmluZSBtbVNETUEzX1JMQzZfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAKKyNkZWZpbmUgbW1TRE1BM19STEM2X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MgorI2RlZmluZSBtbVNETUEzX1JMQzZfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODMKKyNkZWZpbmUgbW1TRE1BM19STEM2X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg0CisjZGVmaW5lIG1tU0RNQTNfUkxDNl9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NQorI2RlZmluZSBtbVNETUEzX1JMQzZfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODYKKyNkZWZpbmUgbW1TRE1BM19STEM2X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDNl9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg3CisjZGVmaW5lIG1tU0RNQTNfUkxDNl9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzZfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4OAorI2RlZmluZSBtbVNETUEzX1JMQzZfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM2X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODkKKyNkZWZpbmUgbW1TRE1BM19STEM2X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzk4CisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5OQorI2RlZmluZSBtbVNETUEzX1JMQzdfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWEKKyNkZWZpbmUgbW1TRE1BM19STEM3X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzliCisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5YworI2RlZmluZSBtbVNETUEzX1JMQzdfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWQKKyNkZWZpbmUgbW1TRE1BM19STEM3X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzllCisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5ZgorI2RlZmluZSBtbVNETUEzX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTAKKyNkZWZpbmUgbW1TRE1BM19STEM3X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ExCisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMgorI2RlZmluZSBtbVNETUEzX1JMQzdfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTMKKyNkZWZpbmUgbW1TRE1BM19STEM3X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E0CisjZGVmaW5lIG1tU0RNQTNfUkxDN19JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNQorI2RlZmluZSBtbVNETUEzX1JMQzdfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTYKKyNkZWZpbmUgbW1TRE1BM19STEM3X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E3CisjZGVmaW5lIG1tU0RNQTNfUkxDN19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhOAorI2RlZmluZSBtbVNETUEzX1JMQzdfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTkKKyNkZWZpbmUgbW1TRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2FhCisjZGVmaW5lIG1tU0RNQTNfUkxDN19ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMAorI2RlZmluZSBtbVNETUEzX1JMQzdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzEKKyNkZWZpbmUgbW1TRE1BM19STEM3X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MyCisjZGVmaW5lIG1tU0RNQTNfUkxDN19XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMworI2RlZmluZSBtbVNETUEzX1JMQzdfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzQKKyNkZWZpbmUgbW1TRE1BM19STEM3X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M1CisjZGVmaW5lIG1tU0RNQTNfUkxDN19DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNworI2RlZmluZSBtbVNETUEzX1JMQzdfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzgKKyNkZWZpbmUgbW1TRE1BM19STEM3X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M5CisjZGVmaW5lIG1tU0RNQTNfUkxDN19EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjYQorI2RlZmluZSBtbVNETUEzX1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2IKKyNkZWZpbmUgbW1TRE1BM19STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NjCisjZGVmaW5lIG1tU0RNQTNfUkxDN19SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjZAorI2RlZmluZSBtbVNETUEzX1JMQzdfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDgKKyNkZWZpbmUgbW1TRE1BM19STEM3X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q5CisjZGVmaW5lIG1tU0RNQTNfUkxDN19NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYQorI2RlZmluZSBtbVNETUEzX1JMQzdfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGIKKyNkZWZpbmUgbW1TRE1BM19STEM3X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RjCisjZGVmaW5lIG1tU0RNQTNfUkxDN19NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZAorI2RlZmluZSBtbVNETUEzX1JMQzdfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGUKKyNkZWZpbmUgbW1TRE1BM19STEM3X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTNfUkxDN19NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RmCisjZGVmaW5lIG1tU0RNQTNfUkxDN19NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUEzX1JMQzdfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlMAorI2RlZmluZSBtbVNETUEzX1JMQzdfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BM19STEM3X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTEKKyNkZWZpbmUgbW1TRE1BM19STEM3X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWEzL3NkbWEzXzRfMl8yX3NoX21hc2suaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMy9zZG1hM180XzJfMl9zaF9tYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmYyZDVhZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hMy9zZG1hM180XzJfMl9zaF9tYXNrLmgKQEAgLTAsMCArMSwyOTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9zZG1hM180XzJfMl9TSF9NQVNLX0hFQURFUgorI2RlZmluZSBfc2RtYTNfNF8yXzJfU0hfTUFTS19IRUFERVIKKworCisvLyBhZGRyZXNzQmxvY2s6IHNkbWEzX3NkbWEzZGVjCisvL1NETUEzX1VDT0RFX0FERFIKKyNkZWZpbmUgU0RNQTNfVUNPREVfQUREUl9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1VDT0RFX0FERFJfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL1NETUEzX1VDT0RFX0RBVEEKKyNkZWZpbmUgU0RNQTNfVUNPREVfREFUQV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1VDT0RFX0RBVEFfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1ZNX0NOVEwKKyNkZWZpbmUgU0RNQTNfVk1fQ05UTF9fQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1ZNX0NOVExfX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1NETUEzX1ZNX0NUWF9MTworI2RlZmluZSBTRE1BM19WTV9DVFhfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfVk1fQ1RYX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfVk1fQ1RYX0hJCisjZGVmaW5lIFNETUEzX1ZNX0NUWF9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19WTV9DVFhfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19BQ1RJVkVfRkNOX0lECisjZGVmaW5lIFNETUEzX0FDVElWRV9GQ05fSURfX1ZGSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19BQ1RJVkVfRkNOX0lEX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfQUNUSVZFX0ZDTl9JRF9fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BM19BQ1RJVkVfRkNOX0lEX19WRklEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BM19BQ1RJVkVfRkNOX0lEX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkYwTAorI2RlZmluZSBTRE1BM19BQ1RJVkVfRkNOX0lEX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BM19WTV9DVFhfQ05UTAorI2RlZmluZSBTRE1BM19WTV9DVFhfQ05UTF9fUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfVk1fQ1RYX0NOVExfX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1ZNX0NUWF9DTlRMX19QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1ZNX0NUWF9DTlRMX19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL1NETUEzX1ZJUlRfUkVTRVRfUkVRCisjZGVmaW5lIFNETUEzX1ZJUlRfUkVTRVRfUkVRX19WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19WSVJUX1JFU0VUX1JFUV9fUEZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEzX1ZJUlRfUkVTRVRfUkVRX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUEzX1ZJUlRfUkVTRVRfUkVRX19QRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEzX1ZGX0VOQUJMRQorI2RlZmluZSBTRE1BM19WRl9FTkFCTEVfX1ZGX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfVkZfRU5BQkxFX19WRl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTAKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BM19HRlhfUkJfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMF9fU0RNQTNfR0ZYX1JCX0JBU0VfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BM19HRlhfUkJfUlBUUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMF9fU0RNQTNfR0ZYX1JCX1dQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9XUFRSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BM19HRlhfUkJfV1BUUl9QT0xMX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMF9fU0RNQTNfR0ZYX1JCX1JQVFJfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9SUFRSX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BM19HRlhfSUJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMF9fU0RNQTNfR0ZYX0lCX1JQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9JQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BM19HRlhfSUJfQkFTRV9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMF9fU0RNQTNfR0ZYX0lCX0JBU0VfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9JQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BM19HRlhfU0tJUF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9DT05URVhUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMF9fU0RNQTNfR0ZYX0RPT1JCRUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BM19HRlhfQ09OVEVYVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9CQVNFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9SUFRSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9XUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9XUFRSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9SUFRSX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9SQl9SUFRSX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9JQl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9JQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9JQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9JQl9CQVNFX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9JQl9CQVNFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9JQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9TS0lQX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9DT05URVhUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9ET09SQkVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUEzX0dGWF9DT05URVhUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTEKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEzX0dGWF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfRE9PUkJFTExfTE9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMV9fU0RNQTNfR0ZYX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEzX0dGWF9ET09SQkVMTF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfQ1NBX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMV9fU0RNQTNfR0ZYX0NTQV9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTFfX1ZPSURfUkVHMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfSUJfU1VCX1JFTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMV9fU0RNQTNfR0ZYX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfRFVNTVlfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEzX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMV9fU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfUkJfQVFMX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUEzX0dGWF9NSU5PUl9QVFJfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMV9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfRE9PUkJFTExfTE9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfRE9PUkJFTExfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfQ1NBX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfQ1NBX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19WT0lEX1JFRzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfSUJfU1VCX1JFTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfRFVNTVlfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfUkJfQVFMX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BM19HRlhfTUlOT1JfUFRSX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUxX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZDMDAwMDBMCisvL1NETUEzX0NPTlRFWFRfUkVHX1RZUEUyCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BM19HRlhfTUlEQ01EX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMl9fU0RNQTNfR0ZYX01JRENNRF9EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BM19HRlhfTUlEQ01EX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMl9fU0RNQTNfR0ZYX01JRENNRF9EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BM19HRlhfTUlEQ01EX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMl9fU0RNQTNfR0ZYX01JRENNRF9EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BM19HRlhfTUlEQ01EX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19DT05URVhUX1JFR19UWVBFMl9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUEzX0dGWF9NSURDTURfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkMwMEwKKy8vU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTMKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTNfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfUkVHX1RZUEUzX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BVQl9SRUdfVFlQRTAKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfVUNPREVfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTBfX1NETUEzX1VDT0RFX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUwX19SRVNFUlZFRDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfVk1fQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTBfX1NETUEzX1ZNX0NUWF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUwX19TRE1BM19WTV9DVFhfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQUNUSVZFX0ZDTl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTBfX1NETUEzX1ZNX0NUWF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUwX19TRE1BM19WSVJUX1JFU0VUX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTBfX1NETUEzX0NPTlRFWFRfUkVHX1RZUEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUwX19TRE1BM19DT05URVhUX1JFR19UWVBFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTBfX1NETUEzX0NPTlRFWFRfUkVHX1RZUEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUwX19TRE1BM19QVUJfUkVHX1RZUEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfUFVCX1JFR19UWVBFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUwX19TRE1BM19QVUJfUkVHX1RZUEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTBfX1NETUEzX1BVQl9SRUdfVFlQRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfTU1IVUJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUwX19SRVNFUlZFRF9GT1JfUFNQU01VX0FDQ0VTU19PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTBfX1NETUEzX0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfUE9XRVJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUwX19TRE1BM19DTEtfQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTBfX1NETUEzX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ0hJQ0tFTl9CSVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUwX19TRE1BM19HQl9BRERSX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTBfX1NETUEzX0dCX0FERFJfQ09ORklHX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfVUNPREVfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfVUNPREVfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfVk1fQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfVk1fQ1RYX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfVk1fQ1RYX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQUNUSVZFX0ZDTl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfVk1fQ1RYX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfVklSVF9SRVNFVF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ09OVEVYVF9SRUdfVFlQRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfUFVCX1JFR19UWVBFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfUFVCX1JFR19UWVBFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfUFVCX1JFR19UWVBFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfUFVCX1JFR19UWVBFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfTU1IVUJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fUkVTRVJWRURfRk9SX1BTUFNNVV9BQ0NFU1NfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUUwMDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfUE9XRVJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ0xLX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfQ0hJQ0tFTl9CSVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfR0JfQUREUl9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMF9fU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTNfUFVCX1JFR19UWVBFMQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19SQl9SUFRSX0ZFVENIX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUEzX1JCX1JQVFJfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19JQl9PRkZTRVRfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfUFJPR1JBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUEzX1NUQVRVU19SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19TVEFUVVMxX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfUkRfQlVSU1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUEzX0hCTV9QQUdFX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19VQ09ERV9DSEVDS1NVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfRjMyX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUEzX0ZSRUVaRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19QSEFTRTBfUVVBTlRVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfUEhBU0UxX1FVQU5UVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUFfUE9XRVJfR0FUSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUEzX0VEQ19DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfQkFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUEzX1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfRURDX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19FRENfQ09VTlRFUl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUEzX1NUQVRVUzJfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfQVRPTUlDX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19BVE9NSUNfUFJFT1BfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUEzX0FUT01JQ19QUkVPUF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfVVRDTDFfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19VVENMMV9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTFfX1NETUEzX1VUQ0wxX1JEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMV9fU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19SQl9SUFRSX0ZFVENIX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19SQl9SUFRSX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19JQl9PRkZTRVRfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19QUk9HUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19TVEFUVVNfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19TVEFUVVMxX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19SRF9CVVJTVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19IQk1fUEFHRV9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19VQ09ERV9DSEVDS1NVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19GMzJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19GUkVFWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19QSEFTRTBfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19QSEFTRTFfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BX1BPV0VSX0dBVElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19FRENfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19CQV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19FRENfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19FRENfQ09VTlRFUl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19TVEFUVVMyX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19BVE9NSUNfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19BVE9NSUNfUFJFT1BfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19BVE9NSUNfUFJFT1BfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19VVENMMV9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19VVENMMV9XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19VVENMMV9SRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUxX19TRE1BM19VVENMMV9XUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BM19QVUJfUkVHX1RZUEUyCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX0lOVjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19TRE1BM19VVENMMV9JTlYxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfVVRDTDFfSU5WMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX1JEX1hOQUNLMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19TRE1BM19VVENMMV9SRF9YTkFDSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfVVRDTDFfV1JfWE5BQ0swX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX1dSX1hOQUNLMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19TRE1BM19VVENMMV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfVVRDTDFfUEFHRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BPV0VSX0NOVExfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19TRE1BM19SRUxBWF9PUkRFUklOR19MVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfQ0hJQ0tFTl9CSVRTXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1NUQVRVUzNfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19TRE1BM19QSFlTSUNBTF9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfUEhZU0lDQUxfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BIQVNFMl9RVUFOVFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19TRE1BM19FUlJPUl9MT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BVQl9EVU1NWV9SRUcwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfUFVCX0RVTU1ZX1JFRzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19TRE1BM19QVUJfRFVNTVlfUkVHMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BVQl9EVU1NWV9SRUczX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfRjMyX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19TRE1BM19VTkJSRUFLQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BFUkZNT05fQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfUEVSRkNPVU5URVIwX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19TRE1BM19QRVJGQ09VTlRFUjFfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfQ1JEX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19SRVNFUlZFRDI4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFMl9fU0RNQTNfVUxWX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUyX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX0lOVjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX0lOVjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX0lOVjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX1JEX1hOQUNLMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX1JEX1hOQUNLMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX1dSX1hOQUNLMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX1dSX1hOQUNLMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VUQ0wxX1BBR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BPV0VSX0NOVExfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1JFTEFYX09SREVSSU5HX0xVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX0NISUNLRU5fQklUU18yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1NUQVRVUzNfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BIWVNJQ0FMX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BIWVNJQ0FMX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BIQVNFMl9RVUFOVFVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX0VSUk9SX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BVQl9EVU1NWV9SRUcwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BVQl9EVU1NWV9SRUcxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BVQl9EVU1NWV9SRUcyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BVQl9EVU1NWV9SRUczX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX0YzMl9DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VOQlJFQUtBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BFUkZNT05fQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BFUkZDT1VOVEVSMF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BFUkZDT1VOVEVSMV9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX0NSRF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEMjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1NETUEzX1VMVl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEzX1BVQl9SRUdfVFlQRTMKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFM19fU0RNQTNfRUFfREJJVF9BRERSX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTNfX1NETUEzX0VBX0RCSVRfQUREUl9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19QVUJfUkVHX1RZUEUzX19TRE1BM19HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUFVCX1JFR19UWVBFM19fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTNfX1NETUEzX0VBX0RCSVRfQUREUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTNfX1NETUEzX0VBX0RCSVRfQUREUl9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTNfX1NETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEzX1BVQl9SRUdfVFlQRTNfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRjhMCisvL1NETUEzX01NSFVCX0NOVEwKKyNkZWZpbmUgU0RNQTNfTU1IVUJfQ05UTF9fVU5JVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX01NSFVCX0NOVExfX1VOSVRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL1NETUEzX0NPTlRFWFRfR1JPVVBfQk9VTkRBUlkKKyNkZWZpbmUgU0RNQTNfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BPV0VSX0NOVEwKKyNkZWZpbmUgU0RNQTNfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1BPV0VSX0NOVExfX01FTV9QT1dFUl9MU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19QT1dFUl9DTlRMX19NRU1fUE9XRVJfRFNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTNfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX1NEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEzX1BPV0VSX0NOVExfX01FTV9QT1dFUl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BM19QT1dFUl9DTlRMX19NRU1fUE9XRVJfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19QT1dFUl9DTlRMX19NRU1fUE9XRVJfTFNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19QT1dFUl9DTlRMX19NRU1fUE9XRVJfRFNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BM19QT1dFUl9DTlRMX19NRU1fUE9XRVJfU0RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BM19QT1dFUl9DTlRMX19NRU1fUE9XRVJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGMDAwTAorLy9TRE1BM19DTEtfQ1RSTAorI2RlZmluZSBTRE1BM19DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX0NMS19DVFJMX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BM19DTEtfQ1RSTF9fU09GVF9PVkVSUklERTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BM19DTEtfQ1RSTF9fU09GVF9PVkVSUklERTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUEzX0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BM19DTEtfQ1RSTF9fU09GVF9PVkVSUklERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEzX0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRjAwMEwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTNfQ05UTAorI2RlZmluZSBTRE1BM19DTlRMX19UUkFQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfQ05UTF9fVVRDX0wxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX0NOVExfX1NFTV9XQUlUX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19DTlRMX19EQVRBX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfQ05UTF9fRkVOQ0VfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX0NOVExfX01JRENNRF9QUkVFTVBUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19DTlRMX19NSURDTURfV09STERTV0lUQ0hfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEzX0NOVExfX0FVVE9fQ1RYU1dfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTNfQ05UTF9fQ1RYRU1QVFlfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BM19DTlRMX19GUk9aRU5fSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEzX0NOVExfX0lCX1BSRUVNUFRfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTNfQ05UTF9fVFJBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fVVRDX0wxX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fU0VNX1dBSVRfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fREFUQV9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fRkVOQ0VfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fTUlEQ01EX1BSRUVNUFRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fTUlEQ01EX1dPUkxEU1dJVENIX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fQVVUT19DVFhTV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fQ1RYRU1QVFlfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fRlJPWkVOX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfQ05UTF9fSUJfUFJFRU1QVF9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTNfQ0hJQ0tFTl9CSVRTCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fQ09QWV9FRkZJQ0lFTkNZX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19DSElDS0VOX0JJVFNfX1NUQUxMX09OX1RSQU5TX0ZVTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTNfQ0hJQ0tFTl9CSVRTX19TVEFMTF9PTl9OT19GUkVFX0RBVEFfQlVGRkVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX1dBSVRfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTNfQ0hJQ0tFTl9CSVRTX19DT1BZX09WRVJMQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BM19DSElDS0VOX0JJVFNfX1JBV19DSEVDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fU1JCTV9QT0xMX1JFVFJZSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTNfQ0hJQ0tFTl9CSVRTX19DR19TVEFUVVNfT1VUUFVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19DSElDS0VOX0JJVFNfX1RJTUVfQkFTRURfUU9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fQ0VfQUZJRk9fV0FURVJNQVJLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTNfQ0hJQ0tFTl9CSVRTX19DRV9ERklGT19XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BM19DSElDS0VOX0JJVFNfX0NFX0xGSUZPX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fQ09QWV9FRkZJQ0lFTkNZX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fU1RBTExfT05fVFJBTlNfRlVMTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fU1RBTExfT05fTk9fRlJFRV9EQVRBX0JVRkZFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfV0FJVF9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFDMDBMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fQ09QWV9PVkVSTEFQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fUkFXX0NIRUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fU1JCTV9QT0xMX1JFVFJZSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fQ0dfU1RBVFVTX09VVFBVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fVElNRV9CQVNFRF9RT1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fQ0VfQUZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fQ0VfREZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU19fQ0VfTEZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL1NETUEzX0dCX0FERFJfQ09ORklHCisjZGVmaW5lIFNETUEzX0dCX0FERFJfQ09ORklHX19OVU1fUElQRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HQl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfR0JfQUREUl9DT05GSUdfX0JBTktfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX0dCX0FERFJfQ09ORklHX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BM19HQl9BRERSX0NPTkZJR19fTlVNX1NIQURFUl9FTkdJTkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEzX0dCX0FERFJfQ09ORklHX19OVU1fUElQRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUEzX0dCX0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIFNETUEzX0dCX0FERFJfQ09ORklHX19CQU5LX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFNETUEzX0dCX0FERFJfQ09ORklHX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFNETUEzX0dCX0FERFJfQ09ORklHX19OVU1fU0hBREVSX0VOR0lORVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisvL1NETUEzX0dCX0FERFJfQ09ORklHX1JFQUQKKyNkZWZpbmUgU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1BJUEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dCX0FERFJfQ09ORklHX1JFQURfX1BJUEVfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BM19HQl9BRERSX0NPTkZJR19SRUFEX19CQU5LX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEzX0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9TSEFERVJfRU5HSU5FU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1BJUEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRF9fUElQRV9JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRF9fQkFOS19JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgU0RNQTNfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1NIQURFUl9FTkdJTkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4MDAwMEwKKy8vU0RNQTNfUkJfUlBUUl9GRVRDSF9ISQorI2RlZmluZSBTRE1BM19SQl9SUFRSX0ZFVENIX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkJfUlBUUl9GRVRDSF9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMCisjZGVmaW5lIFNETUEzX1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9fVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19SQl9SUFRSX0ZFVENICisjZGVmaW5lIFNETUEzX1JCX1JQVFJfRkVUQ0hfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19SQl9SUFRSX0ZFVENIX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BM19JQl9PRkZTRVRfRkVUQ0gKKyNkZWZpbmUgU0RNQTNfSUJfT0ZGU0VUX0ZFVENIX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0lCX09GRlNFVF9GRVRDSF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEzX1BST0dSQU0KKyNkZWZpbmUgU0RNQTNfUFJPR1JBTV9fU1RSRUFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BST0dSQU1fX1NUUkVBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1NUQVRVU19SRUcKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX1JFR19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19TVEFUVVNfUkVHX19SQl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUkJfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX1JCX0NNRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BM19TVEFUVVNfUkVHX19SQl9DTURfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSUJfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX0lCX0NNRF9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19TVEFUVVNfUkVHX19CTE9DS19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX0VYX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19TVEFUVVNfUkVHX19FWF9JRExFX1BPTExfVElNRVJfRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUEFDS0VUX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX01DX1dSX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BM19TVEFUVVNfUkVHX19TUkJNX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fQ09OVEVYVF9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUkJfTUNfUlJFUV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BM19TVEFUVVNfUkVHX19JQl9NQ19SUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX01DX1JEX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BM19TVEFUVVNfUkVHX19NQ19SRF9SRVRfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX01DX1JEX05PX1BPTExfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUFJFVl9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BM19TVEFUVVNfUkVHX19TRU1fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX1NFTV9SRVFfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fU0VNX1JFU1BfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BM19TVEFUVVNfUkVHX19JTlRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEzX1NUQVRVU19SRUdfX0lOVF9SRVFfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUkVHX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUkJfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUkJfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUkJfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUkJfQ01EX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSUJfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSUJfQ01EX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fQkxPQ0tfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fRVhfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fRVhfSURMRV9QT0xMX1RJTUVSX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUEFDS0VUX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fTUNfV1JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fU1JCTV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fQ09OVEVYVF9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUkJfTUNfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSUJfTUNfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fTUNfUkRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fTUNfUkRfUkVUX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fTUNfUkRfTk9fUE9MTF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fUFJFVl9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fU0VNX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fU0VNX1JFUV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fU0VNX1JFU1BfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSU5UX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfU1RBVFVTX1JFR19fSU5UX1JFUV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTNfU1RBVFVTMV9SRUcKKyNkZWZpbmUgU0RNQTNfU1RBVFVTMV9SRUdfX0NFX1dSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9XUl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19TVEFUVVMxX1JFR19fQ0VfU1BMSVRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfU1RBVFVTMV9SRUdfX0NFX1JSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9PVVRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BM19TVEFUVVMxX1JFR19fQ0VfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTNfU1RBVFVTMV9SRUdfX0NFX0RTVF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19TVEFUVVMxX1JFR19fQ0VfQUZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTNfU1RBVFVTMV9SRUdfX0NFX0lORk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9JTkZPMV9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BM19TVEFUVVMxX1JFR19fRVhfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTNfU1RBVFVTMV9SRUdfX0NFX1JEX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BM19TVEFUVVMxX1JFR19fQ0VfV1JfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9XUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9XUl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9TUExJVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9SUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9PVVRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9EU1RfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9BRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9JTkZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9JTkZPMV9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19FWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9SRF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEzX1NUQVRVUzFfUkVHX19DRV9XUl9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL1NETUEzX1JEX0JVUlNUX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkRfQlVSU1RfQ05UTF9fUkRfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JEX0JVUlNUX0NOVExfX0NNRF9CVUZGRVJfUkRfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19SRF9CVVJTVF9DTlRMX19SRF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBTRE1BM19SRF9CVVJTVF9DTlRMX19DTURfQlVGRkVSX1JEX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9TRE1BM19IQk1fUEFHRV9DT05GSUcKKyNkZWZpbmUgU0RNQTNfSEJNX1BBR0VfQ09ORklHX19QQUdFX1NJWkVfRVhQT05FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0hCTV9QQUdFX0NPTkZJR19fUEFHRV9TSVpFX0VYUE9ORU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1VDT0RFX0NIRUNLU1VNCisjZGVmaW5lIFNETUEzX1VDT0RFX0NIRUNLU1VNX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19VQ09ERV9DSEVDS1NVTV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19GMzJfQ05UTAorI2RlZmluZSBTRE1BM19GMzJfQ05UTF9fSEFMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfRjMyX0NOVExfX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX0YzMl9DTlRMX19IQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX0YzMl9DTlRMX19TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL1NETUEzX0ZSRUVaRQorI2RlZmluZSBTRE1BM19GUkVFWkVfX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfRlJFRVpFX19GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX0ZSRUVaRV9fRlJPWkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19GUkVFWkVfX0YzMl9GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTNfRlJFRVpFX19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfRlJFRVpFX19GUkVFWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfRlJFRVpFX19GUk9aRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTNfRlJFRVpFX19GMzJfRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vU0RNQTNfUEhBU0UwX1FVQU5UVU0KKyNkZWZpbmUgU0RNQTNfUEhBU0UwX1FVQU5UVU1fX1VOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BIQVNFMF9RVUFOVFVNX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19QSEFTRTBfUVVBTlRVTV9fUFJFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEzX1BIQVNFMF9RVUFOVFVNX19VTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUEzX1BIQVNFMF9RVUFOVFVNX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGMDBMCisjZGVmaW5lIFNETUEzX1BIQVNFMF9RVUFOVFVNX19QUkVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUEzX1BIQVNFMV9RVUFOVFVNCisjZGVmaW5lIFNETUEzX1BIQVNFMV9RVUFOVFVNX19VTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QSEFTRTFfUVVBTlRVTV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUEhBU0UxX1FVQU5UVU1fX1BSRUZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19QSEFTRTFfUVVBTlRVTV9fVU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BM19QSEFTRTFfUVVBTlRVTV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRjAwTAorI2RlZmluZSBTRE1BM19QSEFTRTFfUVVBTlRVTV9fUFJFRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19FRENfQ09ORklHCisjZGVmaW5lIFNETUEzX0VEQ19DT05GSUdfX0RJU19FRENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19FRENfQ09ORklHX19FQ0NfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfRURDX0NPTkZJR19fRElTX0VEQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfRURDX0NPTkZJR19fRUNDX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vU0RNQTNfQkFfVEhSRVNIT0xECisjZGVmaW5lIFNETUEzX0JBX1RIUkVTSE9MRF9fUkVBRF9USFJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19CQV9USFJFU0hPTERfX1dSSVRFX1RIUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEzX0JBX1RIUkVTSE9MRF9fUkVBRF9USFJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIFNETUEzX0JBX1RIUkVTSE9MRF9fV1JJVEVfVEhSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUEzX0lECisjZGVmaW5lIFNETUEzX0lEX19ERVZJQ0VfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19JRF9fREVWSUNFX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TRE1BM19WRVJTSU9OCisjZGVmaW5lIFNETUEzX1ZFUlNJT05fX01JTlZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19WRVJTSU9OX19NQUpWRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfVkVSU0lPTl9fUkVWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BM19WRVJTSU9OX19NSU5WRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBTRE1BM19WRVJTSU9OX19NQUpWRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBTRE1BM19WRVJTSU9OX19SRVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9TRE1BM19FRENfQ09VTlRFUgorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9VQ09ERV9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfRURDX0NPVU5URVJfX1NETUFfUkJfQ01EX0JVRl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0VEQ19DT1VOVEVSX19TRE1BX0lCX0NNRF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SRF9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRCU1RfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEzX0VEQ19DT1VOVEVSX19TRE1BX0RBVEFfTFVUX0ZJRk9fU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjBfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTNfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjNfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTNfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY0X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEzX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTNfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY3X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUEzX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGOF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjlfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEzX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTBfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTNfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEyX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUEzX0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTNfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTNfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE1X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEzX0VEQ19DT1VOVEVSX19TRE1BX1NQTElUX0RBVF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTNfRURDX0NPVU5URVJfX1NETUFfTUNfV1JfQUREUl9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9VQ09ERV9CVUZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9SQl9DTURfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9JQl9DTURfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SRF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SREJTVF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9EQVRBX0xVVF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjBfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjFfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjJfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjNfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjRfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjVfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjdfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjhfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjlfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEwX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjExX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEyX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEzX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE0X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE1X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9TUExJVF9EQVRfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9fU0RNQV9NQ19XUl9BRERSX0ZJRk9fU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9TRE1BM19FRENfQ09VTlRFUl9DTEVBUgorI2RlZmluZSBTRE1BM19FRENfQ09VTlRFUl9DTEVBUl9fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfRURDX0NPVU5URVJfQ0xFQVJfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTNfU1RBVFVTMl9SRUcKKyNkZWZpbmUgU0RNQTNfU1RBVFVTMl9SRUdfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1NUQVRVUzJfUkVHX19GMzJfSU5TVFJfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BM19TVEFUVVMyX1JFR19fQ01EX09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEzX1NUQVRVUzJfUkVHX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUEzX1NUQVRVUzJfUkVHX19GMzJfSU5TVFJfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjhMCisjZGVmaW5lIFNETUEzX1NUQVRVUzJfUkVHX19DTURfT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEzX0FUT01JQ19DTlRMCisjZGVmaW5lIFNETUEzX0FUT01JQ19DTlRMX19MT09QX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19BVE9NSUNfQ05UTF9fQVRPTUlDX1JUTl9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEzX0FUT01JQ19DTlRMX19MT09QX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisjZGVmaW5lIFNETUEzX0FUT01JQ19DTlRMX19BVE9NSUNfUlROX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEzX0FUT01JQ19QUkVPUF9MTworI2RlZmluZSBTRE1BM19BVE9NSUNfUFJFT1BfTE9fX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfQVRPTUlDX1BSRU9QX0xPX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfQVRPTUlDX1BSRU9QX0hJCisjZGVmaW5lIFNETUEzX0FUT01JQ19QUkVPUF9ISV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19BVE9NSUNfUFJFT1BfSElfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19VVENMMV9DTlRMCisjZGVmaW5lIFNETUEzX1VUQ0wxX0NOVExfX1JFRE9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19VVENMMV9DTlRMX19SRURPX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTNfVVRDTDFfQ05UTF9fUkVET19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEzX1VUQ0wxX0NOVExfX0lOVkFDS19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BM19VVENMMV9DTlRMX19SRVFMMl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1VUQ0wxX0NOVExfX1ZBRERSX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTNfVVRDTDFfQ05UTF9fUkVET19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfQ05UTF9fUkVET19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdGRUwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfQ05UTF9fUkVET19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfQ05UTF9fSU5WQUNLX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGQzAwMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfQ05UTF9fUkVRTDJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfQ05UTF9fVkFERFJfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vU0RNQTNfVVRDTDFfV0FURVJNSworI2RlZmluZSBTRE1BM19VVENMMV9XQVRFUk1LX19SRVFNQ19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV0FURVJNS19fUkVRUEdfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1VUQ0wxX1dBVEVSTUtfX0lOVlJFUV9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV0FURVJNS19fWE5BQ0tfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BM19VVENMMV9XQVRFUk1LX19SRVFNQ19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBTRE1BM19VVENMMV9XQVRFUk1LX19SRVFQR19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRTAwTAorI2RlZmluZSBTRE1BM19VVENMMV9XQVRFUk1LX19JTlZSRVFfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkUwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9XQVRFUk1LX19YTkFDS19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9TRE1BM19VVENMMV9SRF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1NUQVRVU19fUEFHRV9OVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19SRVFMMl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX0NFX0wxX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1NUQVRVU19fTkVYVF9SRF9WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19NRVJHRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX0FERFJfUkRfUlRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1NUQVRVU19fV1BUUl9QT0xMSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfU1RBVFVTX19JTlZSRVFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1BBR0VfTlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1JFUUwyX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX0NFX0wxX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX05FWFRfUkRfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX01FUkdFX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDMDAwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX0FERFJfUkRfUlRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX1dQVFJfUE9MTElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9TVEFUVVNfX0lOVlJFUV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BM19VVENMMV9XUl9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BM19VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BM19VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BM19VVENMMV9XUl9TVEFUVVNfX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9OVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19SRVFMMl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BM19VVENMMV9XUl9TVEFUVVNfX0YzMl9XUl9SVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fTkVYVF9XUl9WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19NRVJHRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BM19VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfU1RBVFVTX19XUlJFUV9EQVRBX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9OVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUkVRTDJfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fRjMyX1dSX1JUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fTkVYVF9XUl9WRUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fTUVSR0VfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEzX1VUQ0wxX0lOVjAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fSU5WX01JRERMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1VUQ0wxX0lOVjBfX1JEX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19VVENMMV9JTlYwX19XUl9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fUkRfSU5fSU5WQURSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUEzX1VUQ0wxX0lOVjBfX1dSX0lOX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BM19VVENMMV9JTlYwX19QQUdFX05VTExfU1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fWE5BQ0tfSVNfSU5WQURSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUEzX1VUQ0wxX0lOVjBfX0lOVlJFUV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19VVENMMV9JTlYwX19OQUNLX1RJTUVPVVRfU1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fTkZMVVNIX0lOVl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1VUQ0wxX0lOVjBfX0ZMVVNIX0lOVl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19VVENMMV9JTlYwX19JTlZfRkxVU0hUWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fSU5WX1ZNSURfVkVDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEzX1VUQ0wxX0lOVjBfX0lOVl9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fSU5WX01JRERMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fUkRfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fV1JfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fUkRfSU5fSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fV1JfSU5fSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fUEFHRV9OVUxMX1NXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fWE5BQ0tfSVNfSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fSU5WUkVRX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fTkFDS19USU1FT1VUX1NXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fTkZMVVNIX0lOVl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fRkxVU0hfSU5WX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fSU5WX0ZMVVNIVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fSU5WX1ZNSURfVkVDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRjAwMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMF9fSU5WX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vU0RNQTNfVVRDTDFfSU5WMQorI2RlZmluZSBTRE1BM19VVENMMV9JTlYxX19JTlZfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMV9fSU5WX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfVVRDTDFfSU5WMgorI2RlZmluZSBTRE1BM19VVENMMV9JTlYyX19JTlZfTkZMVVNIX1ZNSURfVkVDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfSU5WMl9fSU5WX05GTFVTSF9WTUlEX1ZFQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfVVRDTDFfUkRfWE5BQ0swCisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9YTkFDSzBfX1hOQUNLX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19VVENMMV9SRF9YTkFDSzEKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUkRfWE5BQ0sxX19JU19YTkFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BM19VVENMMV9SRF9YTkFDSzFfX1hOQUNLX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRjAwTAorI2RlZmluZSBTRE1BM19VVENMMV9SRF9YTkFDSzFfX0lTX1hOQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorLy9TRE1BM19VVENMMV9XUl9YTkFDSzAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfWE5BQ0swX19YTkFDS19BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1VUQ0wxX1dSX1hOQUNLMQorI2RlZmluZSBTRE1BM19VVENMMV9XUl9YTkFDSzFfX1hOQUNLX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19VVENMMV9XUl9YTkFDSzFfX0lTX1hOQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGMDBMCisjZGVmaW5lIFNETUEzX1VUQ0wxX1dSX1hOQUNLMV9fSVNfWE5BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisvL1NETUEzX1VUQ0wxX1RJTUVPVVQKKyNkZWZpbmUgU0RNQTNfVVRDTDFfVElNRU9VVF9fUkRfWE5BQ0tfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1VUQ0wxX1RJTUVPVVRfX1dSX1hOQUNLX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfVElNRU9VVF9fUkRfWE5BQ0tfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfVElNRU9VVF9fV1JfWE5BQ0tfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfVVRDTDFfUEFHRQorI2RlZmluZSBTRE1BM19VVENMMV9QQUdFX19WTV9IT0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUEFHRV9fUkVRX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1VUQ0wxX1BBR0VfX1VTRV9NVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BM19VVENMMV9QQUdFX19VU0VfUFRfU05PT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUEFHRV9fVk1fSE9MRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUEFHRV9fUkVRX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRUwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUEFHRV9fVVNFX01UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgU0RNQTNfVVRDTDFfUEFHRV9fVVNFX1BUX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKy8vU0RNQTNfUE9XRVJfQ05UTF9JRExFCisjZGVmaW5lIFNETUEzX1BPV0VSX0NOVExfSURMRV9fREVMQVkwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QT1dFUl9DTlRMX0lETEVfX0RFTEFZMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEzX1BPV0VSX0NOVExfSURMRV9fREVMQVkyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTNfUE9XRVJfQ05UTF9JRExFX19ERUxBWTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTNfUE9XRVJfQ05UTF9JRExFX19ERUxBWTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgU0RNQTNfUE9XRVJfQ05UTF9JRExFX19ERUxBWTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vU0RNQTNfUkVMQVhfT1JERVJJTkdfTFVUCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19SRUxBWF9PUkRFUklOR19MVVRfX0NPUFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTNfUkVMQVhfT1JERVJJTkdfTFVUX19XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BM19SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkVMQVhfT1JERVJJTkdfTFVUX19GRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ3Nl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BM19SRUxBWF9PUkRFUklOR19MVVRfX1BPTExfTUVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUkVMQVhfT1JERVJJTkdfTFVUX19DT05EX0VYRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fQVRPTUlDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19SRUxBWF9PUkRFUklOR19MVVRfX0NPTlNUX0ZJTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTNfUkVMQVhfT1JERVJJTkdfTFVUX19QVEVQREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fVElNRVNUQU1QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BM19SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTNfUkVMQVhfT1JERVJJTkdfTFVUX19XT1JMRF9TV0lUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BM19SRUxBWF9PUkRFUklOR19MVVRfX1JQVFJfV1JCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fV1BUUl9QT0xMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTNfUkVMQVhfT1JERVJJTkdfTFVUX19JQl9GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19SRUxBWF9PUkRFUklOR19MVVRfX1JCX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fQ09QWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fRkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ3Nl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUE9MTF9NRU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fQ09ORF9FWEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fQVRPTUlDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fQ09OU1RfRklMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUFRFUERFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fVElNRVNUQU1QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRkMwMDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fV09STERfU1dJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUlBUUl9XUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fV1BUUl9QT0xMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fSUJfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUEzX1JFTEFYX09SREVSSU5HX0xVVF9fUkJfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUEzX0NISUNLRU5fQklUU18yCisjZGVmaW5lIFNETUEzX0NISUNLRU5fQklUU18yX19GMzJfQ01EX1BST0NfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19DSElDS0VOX0JJVFNfMl9fRjMyX0NNRF9QUk9DX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9TRE1BM19TVEFUVVMzX1JFRworI2RlZmluZSBTRE1BM19TVEFUVVMzX1JFR19fQ01EX09QX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfU1RBVFVTM19SRUdfX1BSRVZfVk1fQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BM19TVEFUVVMzX1JFR19fRVhDRVBUSU9OX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUEzX1NUQVRVUzNfUkVHX19RVUVVRV9JRF9NQVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTNfU1RBVFVTM19SRUdfX0lOVF9RVUVVRV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BM19TVEFUVVMzX1JFR19fQ01EX09QX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BM19TVEFUVVMzX1JFR19fUFJFVl9WTV9DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBTRE1BM19TVEFUVVMzX1JFR19fRVhDRVBUSU9OX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BM19TVEFUVVMzX1JFR19fUVVFVUVfSURfTUFUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BM19TVEFUVVMzX1JFR19fSU5UX1FVRVVFX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorLy9TRE1BM19QSFlTSUNBTF9BRERSX0xPCisjZGVmaW5lIFNETUEzX1BIWVNJQ0FMX0FERFJfTE9fX0RfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QSFlTSUNBTF9BRERSX0xPX19ESVJUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTNfUEhZU0lDQUxfQUREUl9MT19fUEhZX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1BIWVNJQ0FMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BM19QSFlTSUNBTF9BRERSX0xPX19EX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19QSFlTSUNBTF9BRERSX0xPX19ESVJUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BM19QSFlTSUNBTF9BRERSX0xPX19QSFlfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19QSFlTSUNBTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9TRE1BM19QSFlTSUNBTF9BRERSX0hJCisjZGVmaW5lIFNETUEzX1BIWVNJQ0FMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QSFlTSUNBTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9TRE1BM19QSEFTRTJfUVVBTlRVTQorI2RlZmluZSBTRE1BM19QSEFTRTJfUVVBTlRVTV9fVU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEhBU0UyX1FVQU5UVU1fX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1BIQVNFMl9RVUFOVFVNX19QUkVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTNfUEhBU0UyX1FVQU5UVU1fX1VOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTNfUEhBU0UyX1FVQU5UVU1fX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkYwMEwKKyNkZWZpbmUgU0RNQTNfUEhBU0UyX1FVQU5UVU1fX1BSRUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTNfRVJST1JfTE9HCisjZGVmaW5lIFNETUEzX0VSUk9SX0xPR19fT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19FUlJPUl9MT0dfX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEzX0VSUk9SX0xPR19fT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUEzX0VSUk9SX0xPR19fU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUEzX1BVQl9EVU1NWV9SRUcwCisjZGVmaW5lIFNETUEzX1BVQl9EVU1NWV9SRUcwX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QVUJfRFVNTVlfUkVHMF9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19QVUJfRFVNTVlfUkVHMQorI2RlZmluZSBTRE1BM19QVUJfRFVNTVlfUkVHMV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUFVCX0RVTU1ZX1JFRzFfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUFVCX0RVTU1ZX1JFRzIKKyNkZWZpbmUgU0RNQTNfUFVCX0RVTU1ZX1JFRzJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BVQl9EVU1NWV9SRUcyX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BVQl9EVU1NWV9SRUczCisjZGVmaW5lIFNETUEzX1BVQl9EVU1NWV9SRUczX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QVUJfRFVNTVlfUkVHM19fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19GMzJfQ09VTlRFUgorI2RlZmluZSBTRE1BM19GMzJfQ09VTlRFUl9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfRjMyX0NPVU5URVJfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfVU5CUkVBS0FCTEUKKyNkZWZpbmUgU0RNQTNfVU5CUkVBS0FCTEVfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1VOQlJFQUtBQkxFX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1BFUkZNT05fQ05UTAorI2RlZmluZSBTRE1BM19QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1BFUkZNT05fQ05UTF9fUEVSRl9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTNfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUEzX1BFUkZNT05fQ05UTF9fUEVSRl9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BM19QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BM19QRVJGTU9OX0NOVExfX1BFUkZfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBTRE1BM19QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BM19QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BM19QRVJGTU9OX0NOVExfX1BFUkZfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorLy9TRE1BM19QRVJGQ09VTlRFUjBfUkVTVUxUCisjZGVmaW5lIFNETUEzX1BFUkZDT1VOVEVSMF9SRVNVTFRfX1BFUkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QRVJGQ09VTlRFUjBfUkVTVUxUX19QRVJGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19QRVJGQ09VTlRFUjFfUkVTVUxUCisjZGVmaW5lIFNETUEzX1BFUkZDT1VOVEVSMV9SRVNVTFRfX1BFUkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QRVJGQ09VTlRFUjFfUkVTVUxUX19QRVJGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0UKKyNkZWZpbmUgU0RNQTNfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19SQU5HRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BM19QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NFTEVDVF9SV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEzX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIFNETUEzX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkMwMDBMCisjZGVmaW5lIFNETUEzX1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fU0VMRUNUX1JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL1NETUEzX0NSRF9DTlRMCisjZGVmaW5lIFNETUEzX0NSRF9DTlRMX19NQ19XUlJFUV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19DUkRfQ05UTF9fTUNfUkRSRVFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTNfQ1JEX0NOVExfX01DX1dSUkVRX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKyNkZWZpbmUgU0RNQTNfQ1JEX0NOVExfX01DX1JEUkVRX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RTAwMEwKKy8vU0RNQTNfR1BVX0lPVl9WSU9MQVRJT05fTE9HCisjZGVmaW5lIFNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVklPTEFUSU9OX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX01VTFRJUExFX1ZJT0xBVElPTl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTNfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fV1JJVEVfT1BFUkFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTNfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BM19HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVklPTEFUSU9OX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fTVVMVElQTEVfVklPTEFUSU9OX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkNMCisjZGVmaW5lIFNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fV1JJVEVfT1BFUkFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUEzX0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNDMDAwMDBMCisvL1NETUEzX1VMVl9DTlRMCisjZGVmaW5lIFNETUEzX1VMVl9DTlRMX19IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19VTFZfQ05UTF9fRU5URVJfVUxWX0lOVF9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUEzX1VMVl9DTlRMX19FWElUX1VMVl9JTlRfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BM19VTFZfQ05UTF9fRVhJVF9VTFZfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUEzX1VMVl9DTlRMX19VTFZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTNfVUxWX0NOVExfX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgU0RNQTNfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfVUxWX0NOVExfX1VMVl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTNfRUFfREJJVF9BRERSX0RBVEEKKyNkZWZpbmUgU0RNQTNfRUFfREJJVF9BRERSX0RBVEFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0VBX0RCSVRfQUREUl9EQVRBX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX0VBX0RCSVRfQUREUl9JTkRFWAorI2RlZmluZSBTRE1BM19FQV9EQklUX0FERFJfSU5ERVhfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfRUFfREJJVF9BRERSX0lOREVYX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKy8vU0RNQTNfR1BVX0lPVl9WSU9MQVRJT05fTE9HMgorI2RlZmluZSBTRE1BM19HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX19JTklUSUFUT1JfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fSU5JVElBVE9SX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0RNQTNfR0ZYX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUEzX0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEzX0dGWF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BM19HRlhfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BM19HRlhfUkJfQkFTRQorI2RlZmluZSBTRE1BM19HRlhfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfR0ZYX1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUEzX0dGWF9SQl9SUFRSCisjZGVmaW5lIFNETUEzX0dGWF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19HRlhfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfR0ZYX1JCX1dQVFIKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX0dGWF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUEzX0dGWF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfR0ZYX1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BM19HRlhfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfR0ZYX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BM19HRlhfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0dGWF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX0dGWF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX0dGWF9JQl9DTlRMCisjZGVmaW5lIFNETUEzX0dGWF9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX0dGWF9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfR0ZYX0lCX1JQVFIKKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0dGWF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEzX0dGWF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0dGWF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUEzX0dGWF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX0dGWF9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19HRlhfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19HRlhfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BM19HRlhfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfR0ZYX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX0dGWF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfR0ZYX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX0dGWF9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BM19HRlhfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfR0ZYX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BM19HRlhfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfR0ZYX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTNfR0ZYX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUEzX0dGWF9ET09SQkVMTAorI2RlZmluZSBTRE1BM19HRlhfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUEzX0dGWF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTNfR0ZYX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTNfR0ZYX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTNfR0ZYX0NPTlRFWFRfQ05UTAorI2RlZmluZSBTRE1BM19HRlhfQ09OVEVYVF9DTlRMX19SRVNVTUVfQ1RYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUEzX0dGWF9DT05URVhUX0NOVExfX1JFU1VNRV9DVFhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1NETUEzX0dGWF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19HRlhfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BM19HRlhfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BM19HRlhfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX0dGWF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfR0ZYX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfR0ZYX0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfR0ZYX1dBVEVSTUFSSworI2RlZmluZSBTRE1BM19HRlhfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfR0ZYX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BM19HRlhfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BM19HRlhfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BM19HRlhfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUEzX0dGWF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19HRlhfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BM19HRlhfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfR0ZYX0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX0dGWF9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX0dGWF9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BM19HRlhfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfR0ZYX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfR0ZYX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTNfR0ZYX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX0dGWF9QUkVFTVBUCisjZGVmaW5lIFNETUEzX0dGWF9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19HRlhfRFVNTVlfUkVHCisjZGVmaW5lIFNETUEzX0dGWF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX0dGWF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfR0ZYX1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUEzX0dGWF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTNfR0ZYX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX0dGWF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX0dGWF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUEzX0dGWF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUEzX0dGWF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUEzX0dGWF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19HRlhfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19HRlhfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfR0ZYX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19HRlhfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfR0ZYX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX0dGWF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1BBR0VfUkJfQ05UTAorI2RlZmluZSBTRE1BM19QQUdFX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19QQUdFX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEzX1BBR0VfUkJfQkFTRQorI2RlZmluZSBTRE1BM19QQUdFX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUEFHRV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QQUdFX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BM19QQUdFX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BBR0VfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19QQUdFX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUEFHRV9SQl9XUFRSCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QQUdFX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19QQUdFX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfUEFHRV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BBR0VfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QQUdFX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUEFHRV9JQl9DTlRMCisjZGVmaW5lIFNETUEzX1BBR0VfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QQUdFX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUEFHRV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1BBR0VfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUEFHRV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUEFHRV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUEFHRV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUEFHRV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfUEFHRV9JQl9SUFRSCisjZGVmaW5lIFNETUEzX1BBR0VfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19QQUdFX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BM19QQUdFX0lCX09GRlNFVAorI2RlZmluZSBTRE1BM19QQUdFX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUEFHRV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTNfUEFHRV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX1BBR0VfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19QQUdFX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19QQUdFX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfUEFHRV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BBR0VfSUJfU0laRQorI2RlZmluZSBTRE1BM19QQUdFX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUEFHRV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfUEFHRV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX1BBR0VfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfUEFHRV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUEFHRV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1BBR0VfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1BBR0VfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BM19QQUdFX0RPT1JCRUxMCisjZGVmaW5lIFNETUEzX1BBR0VfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUEFHRV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19QQUdFX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19QQUdFX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19QQUdFX1NUQVRVUworI2RlZmluZSBTRE1BM19QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEzX1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1BBR0VfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX1BBR0VfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QQUdFX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUEFHRV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUEFHRV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUEFHRV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTNfUEFHRV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUEFHRV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTNfUEFHRV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTNfUEFHRV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfUEFHRV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1BBR0VfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEzX1BBR0VfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfUEFHRV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1BBR0VfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX1BBR0VfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUEFHRV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BBR0VfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BM19QQUdFX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUEFHRV9QUkVFTVBUCisjZGVmaW5lIFNETUEzX1BBR0VfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QQUdFX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19QQUdFX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BM19QQUdFX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BM19QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUEFHRV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BM19QQUdFX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1BBR0VfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19QQUdFX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19QQUdFX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BM19QQUdFX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BM19QQUdFX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTNfUEFHRV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1BBR0VfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QQUdFX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19QQUdFX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BM19QQUdFX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUEFHRV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTNfUEFHRV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BBR0VfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QQUdFX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19QQUdFX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BM19QQUdFX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUEFHRV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTNfUEFHRV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BBR0VfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19QQUdFX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19QQUdFX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BM19QQUdFX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUEFHRV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUEFHRV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTNfUEFHRV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1BBR0VfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfUEFHRV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19QQUdFX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUEFHRV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1BBR0VfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzBfUkJfQ05UTAorI2RlZmluZSBTRE1BM19STEMwX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19STEMwX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEzX1JMQzBfUkJfQkFTRQorI2RlZmluZSBTRE1BM19STEMwX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMwX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BM19STEMwX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzBfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19STEMwX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMF9SQl9XUFRSCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMwX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMwX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfUkxDMF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzBfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMwX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDMF9JQl9DTlRMCisjZGVmaW5lIFNETUEzX1JMQzBfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMwX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDMF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzBfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUkxDMF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUkxDMF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfUkxDMF9JQl9SUFRSCisjZGVmaW5lIFNETUEzX1JMQzBfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEMwX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BM19STEMwX0lCX09GRlNFVAorI2RlZmluZSBTRE1BM19STEMwX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTNfUkxDMF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX1JMQzBfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19STEMwX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19STEMwX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMF9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzBfSUJfU0laRQorI2RlZmluZSBTRE1BM19STEMwX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDMF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDMF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX1JMQzBfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfUkxDMF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUkxDMF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzBfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1JMQzBfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BM19STEMwX0RPT1JCRUxMCisjZGVmaW5lIFNETUEzX1JMQzBfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUkxDMF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19STEMwX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19STEMwX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19STEMwX1NUQVRVUworI2RlZmluZSBTRE1BM19STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEzX1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzBfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX1JMQzBfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMwX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDMF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTNfUkxDMF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTNfUkxDMF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTNfUkxDMF9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfUkxDMF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzBfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEzX1JMQzBfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfUkxDMF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzBfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX1JMQzBfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMF9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzBfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BM19STEMwX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDMF9QUkVFTVBUCisjZGVmaW5lIFNETUEzX1JMQzBfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMwX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19STEMwX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BM19STEMwX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BM19STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDMF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BM19STEMwX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzBfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19STEMwX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEMwX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BM19STEMwX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BM19STEMwX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTNfUkxDMF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1JMQzBfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMwX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMwX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BM19STEMwX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMF9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTNfUkxDMF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzBfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMwX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMwX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BM19STEMwX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMF9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTNfUkxDMF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzBfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMwX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMwX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BM19STEMwX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMF9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMF9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTNfUkxDMF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzBfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDMF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEMwX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDMF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1JMQzBfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzFfUkJfQ05UTAorI2RlZmluZSBTRE1BM19STEMxX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19STEMxX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEzX1JMQzFfUkJfQkFTRQorI2RlZmluZSBTRE1BM19STEMxX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMxX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BM19STEMxX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzFfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19STEMxX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMV9SQl9XUFRSCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMxX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMxX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfUkxDMV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzFfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMxX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDMV9JQl9DTlRMCisjZGVmaW5lIFNETUEzX1JMQzFfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMxX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDMV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzFfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUkxDMV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUkxDMV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfUkxDMV9JQl9SUFRSCisjZGVmaW5lIFNETUEzX1JMQzFfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEMxX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BM19STEMxX0lCX09GRlNFVAorI2RlZmluZSBTRE1BM19STEMxX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTNfUkxDMV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX1JMQzFfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19STEMxX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19STEMxX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzFfSUJfU0laRQorI2RlZmluZSBTRE1BM19STEMxX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDMV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDMV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX1JMQzFfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfUkxDMV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUkxDMV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzFfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1JMQzFfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BM19STEMxX0RPT1JCRUxMCisjZGVmaW5lIFNETUEzX1JMQzFfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUkxDMV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19STEMxX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19STEMxX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19STEMxX1NUQVRVUworI2RlZmluZSBTRE1BM19STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEzX1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzFfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX1JMQzFfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMxX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDMV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTNfUkxDMV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTNfUkxDMV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTNfUkxDMV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfUkxDMV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzFfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEzX1JMQzFfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfUkxDMV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzFfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX1JMQzFfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzFfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BM19STEMxX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDMV9QUkVFTVBUCisjZGVmaW5lIFNETUEzX1JMQzFfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMxX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19STEMxX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BM19STEMxX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BM19STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDMV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BM19STEMxX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzFfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19STEMxX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEMxX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BM19STEMxX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BM19STEMxX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTNfUkxDMV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1JMQzFfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMxX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMxX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BM19STEMxX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTNfUkxDMV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzFfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMxX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMxX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BM19STEMxX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTNfUkxDMV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzFfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMxX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMxX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BM19STEMxX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTNfUkxDMV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzFfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDMV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEMxX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDMV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1JMQzFfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzJfUkJfQ05UTAorI2RlZmluZSBTRE1BM19STEMyX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19STEMyX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEzX1JMQzJfUkJfQkFTRQorI2RlZmluZSBTRE1BM19STEMyX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMl9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMyX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BM19STEMyX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzJfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19STEMyX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMl9SQl9XUFRSCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMyX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMyX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzJfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfUkxDMl9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzJfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMyX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDMl9JQl9DTlRMCisjZGVmaW5lIFNETUEzX1JMQzJfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMyX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDMl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzJfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMl9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUkxDMl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUkxDMl9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfUkxDMl9JQl9SUFRSCisjZGVmaW5lIFNETUEzX1JMQzJfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEMyX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BM19STEMyX0lCX09GRlNFVAorI2RlZmluZSBTRE1BM19STEMyX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMl9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTNfUkxDMl9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX1JMQzJfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19STEMyX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19STEMyX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMl9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzJfSUJfU0laRQorI2RlZmluZSBTRE1BM19STEMyX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDMl9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDMl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX1JMQzJfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfUkxDMl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUkxDMl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzJfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1JMQzJfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BM19STEMyX0RPT1JCRUxMCisjZGVmaW5lIFNETUEzX1JMQzJfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUkxDMl9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19STEMyX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19STEMyX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19STEMyX1NUQVRVUworI2RlZmluZSBTRE1BM19STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEzX1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzJfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX1JMQzJfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMyX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDMl9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDMl9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTNfUkxDMl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDMl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTNfUkxDMl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTNfUkxDMl9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfUkxDMl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzJfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEzX1JMQzJfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfUkxDMl9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzJfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX1JMQzJfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDMl9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzJfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BM19STEMyX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDMl9QUkVFTVBUCisjZGVmaW5lIFNETUEzX1JMQzJfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMyX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19STEMyX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BM19STEMyX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BM19STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDMl9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BM19STEMyX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzJfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19STEMyX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEMyX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BM19STEMyX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BM19STEMyX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTNfUkxDMl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1JMQzJfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMyX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMyX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BM19STEMyX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMl9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTNfUkxDMl9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzJfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMyX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMyX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BM19STEMyX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMl9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTNfUkxDMl9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzJfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMyX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMyX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BM19STEMyX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDMl9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDMl9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTNfUkxDMl9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzJfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDMl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEMyX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDMl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1JMQzJfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzNfUkJfQ05UTAorI2RlZmluZSBTRE1BM19STEMzX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19STEMzX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEzX1JMQzNfUkJfQkFTRQorI2RlZmluZSBTRE1BM19STEMzX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDM19SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMzX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BM19STEMzX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzNfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19STEMzX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDM19SQl9XUFRSCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMzX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMzX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfUkxDM19SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzNfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMzX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDM19JQl9DTlRMCisjZGVmaW5lIFNETUEzX1JMQzNfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMzX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDM19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzNfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDM19JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDM19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUkxDM19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUkxDM19JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfUkxDM19JQl9SUFRSCisjZGVmaW5lIFNETUEzX1JMQzNfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEMzX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BM19STEMzX0lCX09GRlNFVAorI2RlZmluZSBTRE1BM19STEMzX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDM19JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTNfUkxDM19JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX1JMQzNfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19STEMzX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19STEMzX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfUkxDM19JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzNfSUJfU0laRQorI2RlZmluZSBTRE1BM19STEMzX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDM19TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDM19TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX1JMQzNfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfUkxDM19DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUkxDM19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzNfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1JMQzNfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BM19STEMzX0RPT1JCRUxMCisjZGVmaW5lIFNETUEzX1JMQzNfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUkxDM19ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19STEMzX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19STEMzX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19STEMzX1NUQVRVUworI2RlZmluZSBTRE1BM19STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEzX1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzNfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX1JMQzNfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMzX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDM19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDM19ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDM19XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTNfUkxDM19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDM19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTNfUkxDM19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTNfUkxDM19ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfUkxDM19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzNfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEzX1JMQzNfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfUkxDM19DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzNfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX1JMQzNfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDM19DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzNfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BM19STEMzX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDM19QUkVFTVBUCisjZGVmaW5lIFNETUEzX1JMQzNfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMzX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19STEMzX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BM19STEMzX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BM19STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDM19SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BM19STEMzX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzNfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19STEMzX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEMzX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BM19STEMzX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BM19STEMzX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTNfUkxDM19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1JMQzNfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMzX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMzX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BM19STEMzX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDM19NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTNfUkxDM19NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzNfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMzX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMzX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BM19STEMzX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDM19NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTNfUkxDM19NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzNfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEMzX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEMzX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BM19STEMzX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDM19NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDM19NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTNfUkxDM19NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzNfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDM19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEMzX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDM19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1JMQzNfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzRfUkJfQ05UTAorI2RlZmluZSBTRE1BM19STEM0X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19STEM0X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEzX1JMQzRfUkJfQkFTRQorI2RlZmluZSBTRE1BM19STEM0X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM0X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BM19STEM0X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzRfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19STEM0X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNF9SQl9XUFRSCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM0X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM0X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzRfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfUkxDNF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzRfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM0X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDNF9JQl9DTlRMCisjZGVmaW5lIFNETUEzX1JMQzRfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM0X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDNF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzRfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUkxDNF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUkxDNF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfUkxDNF9JQl9SUFRSCisjZGVmaW5lIFNETUEzX1JMQzRfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEM0X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BM19STEM0X0lCX09GRlNFVAorI2RlZmluZSBTRE1BM19STEM0X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTNfUkxDNF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX1JMQzRfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19STEM0X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19STEM0X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNF9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzRfSUJfU0laRQorI2RlZmluZSBTRE1BM19STEM0X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDNF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDNF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX1JMQzRfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfUkxDNF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUkxDNF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzRfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1JMQzRfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BM19STEM0X0RPT1JCRUxMCisjZGVmaW5lIFNETUEzX1JMQzRfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUkxDNF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19STEM0X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19STEM0X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19STEM0X1NUQVRVUworI2RlZmluZSBTRE1BM19STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEzX1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzRfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX1JMQzRfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM0X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDNF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTNfUkxDNF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTNfUkxDNF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTNfUkxDNF9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfUkxDNF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzRfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEzX1JMQzRfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfUkxDNF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzRfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX1JMQzRfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNF9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzRfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BM19STEM0X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDNF9QUkVFTVBUCisjZGVmaW5lIFNETUEzX1JMQzRfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM0X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19STEM0X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BM19STEM0X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BM19STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDNF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BM19STEM0X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzRfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19STEM0X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEM0X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BM19STEM0X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BM19STEM0X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTNfUkxDNF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1JMQzRfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM0X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM0X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BM19STEM0X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNF9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTNfUkxDNF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzRfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM0X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM0X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BM19STEM0X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNF9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTNfUkxDNF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzRfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM0X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM0X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BM19STEM0X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNF9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNF9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTNfUkxDNF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzRfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDNF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEM0X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDNF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1JMQzRfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzVfUkJfQ05UTAorI2RlZmluZSBTRE1BM19STEM1X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19STEM1X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEzX1JMQzVfUkJfQkFTRQorI2RlZmluZSBTRE1BM19STEM1X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM1X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BM19STEM1X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzVfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19STEM1X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNV9SQl9XUFRSCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM1X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM1X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzVfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfUkxDNV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzVfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM1X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDNV9JQl9DTlRMCisjZGVmaW5lIFNETUEzX1JMQzVfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM1X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDNV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzVfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUkxDNV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUkxDNV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfUkxDNV9JQl9SUFRSCisjZGVmaW5lIFNETUEzX1JMQzVfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEM1X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BM19STEM1X0lCX09GRlNFVAorI2RlZmluZSBTRE1BM19STEM1X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTNfUkxDNV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX1JMQzVfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19STEM1X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19STEM1X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzVfSUJfU0laRQorI2RlZmluZSBTRE1BM19STEM1X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDNV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDNV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX1JMQzVfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfUkxDNV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUkxDNV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzVfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1JMQzVfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BM19STEM1X0RPT1JCRUxMCisjZGVmaW5lIFNETUEzX1JMQzVfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUkxDNV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19STEM1X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19STEM1X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19STEM1X1NUQVRVUworI2RlZmluZSBTRE1BM19STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEzX1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzVfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX1JMQzVfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM1X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDNV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTNfUkxDNV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTNfUkxDNV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTNfUkxDNV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfUkxDNV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzVfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEzX1JMQzVfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfUkxDNV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzVfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX1JMQzVfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzVfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BM19STEM1X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDNV9QUkVFTVBUCisjZGVmaW5lIFNETUEzX1JMQzVfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM1X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19STEM1X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BM19STEM1X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BM19STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDNV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BM19STEM1X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzVfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19STEM1X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEM1X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BM19STEM1X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BM19STEM1X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTNfUkxDNV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1JMQzVfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM1X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM1X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BM19STEM1X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTNfUkxDNV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzVfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM1X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM1X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BM19STEM1X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTNfUkxDNV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzVfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM1X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM1X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BM19STEM1X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTNfUkxDNV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzVfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDNV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEM1X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDNV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1JMQzVfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzZfUkJfQ05UTAorI2RlZmluZSBTRE1BM19STEM2X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19STEM2X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEzX1JMQzZfUkJfQkFTRQorI2RlZmluZSBTRE1BM19STEM2X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNl9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM2X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BM19STEM2X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzZfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19STEM2X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNl9SQl9XUFRSCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM2X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM2X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzZfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfUkxDNl9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzZfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM2X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDNl9JQl9DTlRMCisjZGVmaW5lIFNETUEzX1JMQzZfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM2X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDNl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzZfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNl9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUkxDNl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUkxDNl9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfUkxDNl9JQl9SUFRSCisjZGVmaW5lIFNETUEzX1JMQzZfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEM2X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BM19STEM2X0lCX09GRlNFVAorI2RlZmluZSBTRE1BM19STEM2X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNl9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTNfUkxDNl9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX1JMQzZfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19STEM2X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19STEM2X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNl9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzZfSUJfU0laRQorI2RlZmluZSBTRE1BM19STEM2X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDNl9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDNl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX1JMQzZfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfUkxDNl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUkxDNl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzZfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1JMQzZfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BM19STEM2X0RPT1JCRUxMCisjZGVmaW5lIFNETUEzX1JMQzZfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUkxDNl9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19STEM2X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19STEM2X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19STEM2X1NUQVRVUworI2RlZmluZSBTRE1BM19STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEzX1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzZfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX1JMQzZfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM2X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDNl9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDNl9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTNfUkxDNl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDNl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTNfUkxDNl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTNfUkxDNl9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfUkxDNl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzZfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEzX1JMQzZfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfUkxDNl9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzZfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX1JMQzZfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDNl9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzZfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BM19STEM2X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDNl9QUkVFTVBUCisjZGVmaW5lIFNETUEzX1JMQzZfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM2X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19STEM2X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BM19STEM2X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BM19STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDNl9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BM19STEM2X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzZfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19STEM2X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEM2X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BM19STEM2X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BM19STEM2X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTNfUkxDNl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1JMQzZfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM2X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM2X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BM19STEM2X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNl9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTNfUkxDNl9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzZfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM2X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM2X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BM19STEM2X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNl9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTNfUkxDNl9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzZfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM2X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM2X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BM19STEM2X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDNl9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDNl9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTNfUkxDNl9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzZfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDNl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEM2X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDNl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1JMQzZfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzdfUkJfQ05UTAorI2RlZmluZSBTRE1BM19STEM3X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BM19STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BM19STEM3X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUEzX1JMQzdfUkJfQkFTRQorI2RlZmluZSBTRE1BM19STEM3X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDN19SQl9CQVNFX0hJCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM3X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BM19STEM3X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzdfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BM19STEM3X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDN19SQl9XUFRSCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM3X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM3X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzdfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTNfUkxDN19SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzdfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM3X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDN19JQl9DTlRMCisjZGVmaW5lIFNETUEzX1JMQzdfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM3X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDN19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzdfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDN19JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDN19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTNfUkxDN19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTNfUkxDN19JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTNfUkxDN19JQl9SUFRSCisjZGVmaW5lIFNETUEzX1JMQzdfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEM3X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BM19STEM3X0lCX09GRlNFVAorI2RlZmluZSBTRE1BM19STEM3X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDN19JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTNfUkxDN19JQl9CQVNFX0xPCisjZGVmaW5lIFNETUEzX1JMQzdfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BM19STEM3X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BM19STEM3X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTNfUkxDN19JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzdfSUJfU0laRQorI2RlZmluZSBTRE1BM19STEM3X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDN19TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDN19TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUEzX1JMQzdfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTNfUkxDN19DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTNfUkxDN19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUEzX1JMQzdfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTNfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUEzX1JMQzdfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BM19STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BM19STEM3X0RPT1JCRUxMCisjZGVmaW5lIFNETUEzX1JMQzdfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTNfUkxDN19ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BM19STEM3X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BM19STEM3X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BM19STEM3X1NUQVRVUworI2RlZmluZSBTRE1BM19STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUEzX1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUEzX1JMQzdfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUEzX1JMQzdfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM3X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDN19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTNfUkxDN19ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDN19XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTNfUkxDN19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTNfUkxDN19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTNfUkxDN19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTNfUkxDN19ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTNfUkxDN19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzdfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUEzX1JMQzdfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTNfUkxDN19DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUEzX1JMQzdfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUEzX1JMQzdfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTNfUkxDN19DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzdfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BM19STEM3X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTNfUkxDN19QUkVFTVBUCisjZGVmaW5lIFNETUEzX1JMQzdfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM3X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BM19STEM3X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BM19STEM3X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BM19STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BM19STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTNfUkxDN19SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BM19STEM3X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUEzX1JMQzdfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BM19STEM3X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BM19STEM3X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BM19STEM3X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BM19STEM3X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTNfUkxDN19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUEzX1JMQzdfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM3X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM3X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BM19STEM3X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDN19NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTNfUkxDN19NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzdfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM3X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM3X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BM19STEM3X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDN19NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTNfUkxDN19NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzdfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BM19STEM3X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BM19STEM3X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BM19STEM3X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTNfUkxDN19NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTNfUkxDN19NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTNfUkxDN19NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUEzX1JMQzdfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTNfUkxDN19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BM19STEM3X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTNfUkxDN19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUEzX1JMQzdfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWE0L3NkbWE0XzRfMl8yX29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWE0L3NkbWE0XzRfMl8yX29mZnNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NWZmYTUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTQvc2RtYTRfNF8yXzJfb2Zmc2V0LmgKQEAgLTAsMCArMSwxMDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9zZG1hNF80XzJfMl9PRkZTRVRfSEVBREVSCisjZGVmaW5lIF9zZG1hNF80XzJfMl9PRkZTRVRfSEVBREVSCisKKworCisvLyBhZGRyZXNzQmxvY2s6IHNkbWE0X3NkbWE0ZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4N2EwMDAKKyNkZWZpbmUgbW1TRE1BNF9VQ09ERV9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgbW1TRE1BNF9VQ09ERV9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVUNPREVfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIG1tU0RNQTRfVUNPREVfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1ZNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBtbVNETUE0X1ZNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9WTV9DVFhfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgbW1TRE1BNF9WTV9DVFhfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVk1fQ1RYX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIG1tU0RNQTRfVk1fQ1RYX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0FDVElWRV9GQ05fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNworI2RlZmluZSBtbVNETUE0X0FDVElWRV9GQ05fSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9WTV9DVFhfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKyNkZWZpbmUgbW1TRE1BNF9WTV9DVFhfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVklSVF9SRVNFVF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CisjZGVmaW5lIG1tU0RNQTRfVklSVF9SRVNFVF9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1ZGX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYQorI2RlZmluZSBtbVNETUE0X1ZGX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9DT05URVhUX1JFR19UWVBFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGIKKyNkZWZpbmUgbW1TRE1BNF9DT05URVhUX1JFR19UWVBFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBjCisjZGVmaW5lIG1tU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0NPTlRFWFRfUkVHX1RZUEUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZAorI2RlZmluZSBtbVNETUE0X0NPTlRFWFRfUkVHX1RZUEUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9DT05URVhUX1JFR19UWVBFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGUKKyNkZWZpbmUgbW1TRE1BNF9DT05URVhUX1JFR19UWVBFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUFVCX1JFR19UWVBFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBmCisjZGVmaW5lIG1tU0RNQTRfUFVCX1JFR19UWVBFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BVQl9SRUdfVFlQRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBtbVNETUE0X1BVQl9SRUdfVFlQRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QVUJfUkVHX1RZUEUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTEKKyNkZWZpbmUgbW1TRE1BNF9QVUJfUkVHX1RZUEUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUFVCX1JFR19UWVBFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEyCisjZGVmaW5lIG1tU0RNQTRfUFVCX1JFR19UWVBFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X01NSFVCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMworI2RlZmluZSBtbVNETUE0X01NSFVCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9DT05URVhUX0dST1VQX0JPVU5EQVJZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTkKKyNkZWZpbmUgbW1TRE1BNF9DT05URVhUX0dST1VQX0JPVU5EQVJZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUE9XRVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFhCisjZGVmaW5lIG1tU0RNQTRfUE9XRVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYgorI2RlZmluZSBtbVNETUE0X0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWMKKyNkZWZpbmUgbW1TRE1BNF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfQ0hJQ0tFTl9CSVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFkCisjZGVmaW5lIG1tU0RNQTRfQ0hJQ0tFTl9CSVRTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dCX0FERFJfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZQorI2RlZmluZSBtbVNETUE0X0dCX0FERFJfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWYKKyNkZWZpbmUgbW1TRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkJfUlBUUl9GRVRDSF9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIG1tU0RNQTRfUkJfUlBUUl9GRVRDSF9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMQorI2RlZmluZSBtbVNETUE0X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9SQl9SUFRSX0ZFVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgbW1TRE1BNF9SQl9SUFRSX0ZFVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfSUJfT0ZGU0VUX0ZFVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIzCisjZGVmaW5lIG1tU0RNQTRfSUJfT0ZGU0VUX0ZFVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BST0dSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBtbVNETUE0X1BST0dSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9TVEFUVVNfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjUKKyNkZWZpbmUgbW1TRE1BNF9TVEFUVVNfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfU1RBVFVTMV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI2CisjZGVmaW5lIG1tU0RNQTRfU1RBVFVTMV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JEX0JVUlNUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNworI2RlZmluZSBtbVNETUE0X1JEX0JVUlNUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9IQk1fUEFHRV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjgKKyNkZWZpbmUgbW1TRE1BNF9IQk1fUEFHRV9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVUNPREVfQ0hFQ0tTVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI5CisjZGVmaW5lIG1tU0RNQTRfVUNPREVfQ0hFQ0tTVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0YzMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYQorI2RlZmluZSBtbVNETUE0X0YzMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9GUkVFWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmIKKyNkZWZpbmUgbW1TRE1BNF9GUkVFWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEhBU0UwX1FVQU5UVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJjCisjZGVmaW5lIG1tU0RNQTRfUEhBU0UwX1FVQU5UVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BIQVNFMV9RVUFOVFVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZAorI2RlZmluZSBtbVNETUE0X1BIQVNFMV9RVUFOVFVNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9FRENfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzIKKyNkZWZpbmUgbW1TRE1BNF9FRENfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfQkFfVEhSRVNIT0xEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMzCisjZGVmaW5lIG1tU0RNQTRfQkFfVEhSRVNIT0xEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNAorI2RlZmluZSBtbVNETUE0X0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9WRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzUKKyNkZWZpbmUgbW1TRE1BNF9WRVJTSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfRURDX0NPVU5URVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM2CisjZGVmaW5lIG1tU0RNQTRfRURDX0NPVU5URVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0VEQ19DT1VOVEVSX0NMRUFSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNworI2RlZmluZSBtbVNETUE0X0VEQ19DT1VOVEVSX0NMRUFSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9TVEFUVVMyX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgKKyNkZWZpbmUgbW1TRE1BNF9TVEFUVVMyX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfQVRPTUlDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM5CisjZGVmaW5lIG1tU0RNQTRfQVRPTUlDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0FUT01JQ19QUkVPUF9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYQorI2RlZmluZSBtbVNETUE0X0FUT01JQ19QUkVPUF9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9BVE9NSUNfUFJFT1BfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2IKKyNkZWZpbmUgbW1TRE1BNF9BVE9NSUNfUFJFT1BfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNjCisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1VUQ0wxX1dBVEVSTUsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZAorI2RlZmluZSBtbVNETUE0X1VUQ0wxX1dBVEVSTUtfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9VVENMMV9SRF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2UKKyNkZWZpbmUgbW1TRE1BNF9VVENMMV9SRF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNmCisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1VUQ0wxX0lOVjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MAorI2RlZmluZSBtbVNETUE0X1VUQ0wxX0lOVjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9VVENMMV9JTlYxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDEKKyNkZWZpbmUgbW1TRE1BNF9VVENMMV9JTlYxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfSU5WMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyCisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfSU5WMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1VUQ0wxX1JEX1hOQUNLMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MworI2RlZmluZSBtbVNETUE0X1VUQ0wxX1JEX1hOQUNLMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9VVENMMV9SRF9YTkFDSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDQKKyNkZWZpbmUgbW1TRE1BNF9VVENMMV9SRF9YTkFDSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfV1JfWE5BQ0swICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ1CisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfV1JfWE5BQ0swX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1VUQ0wxX1dSX1hOQUNLMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NgorI2RlZmluZSBtbVNETUE0X1VUQ0wxX1dSX1hOQUNLMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9VVENMMV9USU1FT1VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDcKKyNkZWZpbmUgbW1TRE1BNF9VVENMMV9USU1FT1VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfUEFHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ4CisjZGVmaW5lIG1tU0RNQTRfVVRDTDFfUEFHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BPV0VSX0NOVExfSURMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OQorI2RlZmluZSBtbVNETUE0X1BPV0VSX0NOVExfSURMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9SRUxBWF9PUkRFUklOR19MVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGEKKyNkZWZpbmUgbW1TRE1BNF9SRUxBWF9PUkRFUklOR19MVVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfQ0hJQ0tFTl9CSVRTXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRiCisjZGVmaW5lIG1tU0RNQTRfQ0hJQ0tFTl9CSVRTXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1NUQVRVUzNfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YworI2RlZmluZSBtbVNETUE0X1NUQVRVUzNfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QSFlTSUNBTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGQKKyNkZWZpbmUgbW1TRE1BNF9QSFlTSUNBTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEhZU0lDQUxfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRlCisjZGVmaW5lIG1tU0RNQTRfUEhZU0lDQUxfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BIQVNFMl9RVUFOVFVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZgorI2RlZmluZSBtbVNETUE0X1BIQVNFMl9RVUFOVFVNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9FUlJPUl9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTAKKyNkZWZpbmUgbW1TRE1BNF9FUlJPUl9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUFVCX0RVTU1ZX1JFRzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUxCisjZGVmaW5lIG1tU0RNQTRfUFVCX0RVTU1ZX1JFRzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BVQl9EVU1NWV9SRUcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MgorI2RlZmluZSBtbVNETUE0X1BVQl9EVU1NWV9SRUcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QVUJfRFVNTVlfUkVHMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTMKKyNkZWZpbmUgbW1TRE1BNF9QVUJfRFVNTVlfUkVHMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUFVCX0RVTU1ZX1JFRzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU0CisjZGVmaW5lIG1tU0RNQTRfUFVCX0RVTU1ZX1JFRzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0YzMl9DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NQorI2RlZmluZSBtbVNETUE0X0YzMl9DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9VTkJSRUFLQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTYKKyNkZWZpbmUgbW1TRE1BNF9VTkJSRUFLQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU3CisjZGVmaW5lIG1tU0RNQTRfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BFUkZDT1VOVEVSMF9SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OAorI2RlZmluZSBtbVNETUE0X1BFUkZDT1VOVEVSMF9SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QRVJGQ09VTlRFUjFfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTkKKyNkZWZpbmUgbW1TRE1BNF9QRVJGQ09VTlRFUjFfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVhCisjZGVmaW5lIG1tU0RNQTRfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0NSRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YgorI2RlZmluZSBtbVNETUE0X0NSRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HUFVfSU9WX1ZJT0xBVElPTl9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWQKKyNkZWZpbmUgbW1TRE1BNF9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfVUxWX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVlCisjZGVmaW5lIG1tU0RNQTRfVUxWX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0VBX0RCSVRfQUREUl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MAorI2RlZmluZSBtbVNETUE0X0VBX0RCSVRfQUREUl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9FQV9EQklUX0FERFJfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjEKKyNkZWZpbmUgbW1TRE1BNF9FQV9EQklUX0FERFJfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYyCisjZGVmaW5lIG1tU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MAorI2RlZmluZSBtbVNETUE0X0dGWF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgyCisjZGVmaW5lIG1tU0RNQTRfR0ZYX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MworI2RlZmluZSBtbVNETUE0X0dGWF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODQKKyNkZWZpbmUgbW1TRE1BNF9HRlhfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg1CisjZGVmaW5lIG1tU0RNQTRfR0ZYX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NgorI2RlZmluZSBtbVNETUE0X0dGWF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODcKKyNkZWZpbmUgbW1TRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg4CisjZGVmaW5lIG1tU0RNQTRfR0ZYX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OQorI2RlZmluZSBtbVNETUE0X0dGWF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhiCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YworI2RlZmluZSBtbVNETUE0X0dGWF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGQKKyNkZWZpbmUgbW1TRE1BNF9HRlhfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhlCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZgorI2RlZmluZSBtbVNETUE0X0dGWF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTAKKyNkZWZpbmUgbW1TRE1BNF9HRlhfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MgorI2RlZmluZSBtbVNETUE0X0dGWF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfQ09OVEVYVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTMKKyNkZWZpbmUgbW1TRE1BNF9HRlhfQ09OVEVYVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE4CisjZGVmaW5lIG1tU0RNQTRfR0ZYX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhOQorI2RlZmluZSBtbVNETUE0X0dGWF9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFiCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYworI2RlZmluZSBtbVNETUE0X0dGWF9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWQKKyNkZWZpbmUgbW1TRE1BNF9HRlhfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFmCisjZGVmaW5lIG1tU0RNQTRfR0ZYX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMAorI2RlZmluZSBtbVNETUE0X0dGWF9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIyCisjZGVmaW5lIG1tU0RNQTRfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMworI2RlZmluZSBtbVNETUE0X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjQKKyNkZWZpbmUgbW1TRE1BNF9HRlhfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI1CisjZGVmaW5lIG1tU0RNQTRfR0ZYX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMAorI2RlZmluZSBtbVNETUE0X0dGWF9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMyCisjZGVmaW5lIG1tU0RNQTRfR0ZYX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMworI2RlZmluZSBtbVNETUE0X0dGWF9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzQKKyNkZWZpbmUgbW1TRE1BNF9HRlhfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM1CisjZGVmaW5lIG1tU0RNQTRfR0ZYX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNgorI2RlZmluZSBtbVNETUE0X0dGWF9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9HRlhfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzcKKyNkZWZpbmUgbW1TRE1BNF9HRlhfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfR0ZYX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM4CisjZGVmaW5lIG1tU0RNQTRfR0ZYX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X0dGWF9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjOQorI2RlZmluZSBtbVNETUE0X0dGWF9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZDgKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ5CisjZGVmaW5lIG1tU0RNQTRfUEFHRV9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYQorI2RlZmluZSBtbVNETUE0X1BBR0VfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGIKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRjCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZAorI2RlZmluZSBtbVNETUE0X1BBR0VfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGUKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRmCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMAorI2RlZmluZSBtbVNETUE0X1BBR0VfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUyCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMworI2RlZmluZSBtbVNETUE0X1BBR0VfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTQKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU1CisjZGVmaW5lIG1tU0RNQTRfUEFHRV9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNgorI2RlZmluZSBtbVNETUE0X1BBR0VfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTcKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU4CisjZGVmaW5lIG1tU0RNQTRfUEFHRV9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlOQorI2RlZmluZSBtbVNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMQorI2RlZmluZSBtbVNETUE0X1BBR0VfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDIKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAzCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNAorI2RlZmluZSBtbVNETUE0X1BBR0VfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDUKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA3CisjZGVmaW5lIG1tU0RNQTRfUEFHRV9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwOAorI2RlZmluZSBtbVNETUE0X1BBR0VfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDkKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBhCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYgorI2RlZmluZSBtbVNETUE0X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGMKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBkCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExOAorI2RlZmluZSBtbVNETUE0X1BBR0VfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTkKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFhCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYgorI2RlZmluZSBtbVNETUE0X1BBR0VfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWMKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFkCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZQorI2RlZmluZSBtbVNETUE0X1BBR0VfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWYKKyNkZWZpbmUgbW1TRE1BNF9QQUdFX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTIwCisjZGVmaW5lIG1tU0RNQTRfUEFHRV9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1BBR0VfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyMQorI2RlZmluZSBtbVNETUE0X1BBR0VfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzAKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMgorI2RlZmluZSBtbVNETUE0X1JMQzBfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzMKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM0CisjZGVmaW5lIG1tU0RNQTRfUkxDMF9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNQorI2RlZmluZSBtbVNETUE0X1JMQzBfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzYKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM3CisjZGVmaW5lIG1tU0RNQTRfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzOAorI2RlZmluZSBtbVNETUE0X1JMQzBfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzkKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNhCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYgorI2RlZmluZSBtbVNETUE0X1JMQzBfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2MKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNkCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZQorI2RlZmluZSBtbVNETUE0X1JMQzBfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2YKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQwCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MQorI2RlZmluZSBtbVNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDIKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU4CisjZGVmaW5lIG1tU0RNQTRfUkxDMF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1OQorI2RlZmluZSBtbVNETUE0X1JMQzBfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTViCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1YworI2RlZmluZSBtbVNETUE0X1JMQzBfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWQKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVmCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MAorI2RlZmluZSBtbVNETUE0X1JMQzBfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYyCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MworI2RlZmluZSBtbVNETUE0X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjQKKyNkZWZpbmUgbW1TRE1BNF9STEMwX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY1CisjZGVmaW5lIG1tU0RNQTRfUkxDMF9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MAorI2RlZmluZSBtbVNETUE0X1JMQzBfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcyCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MworI2RlZmluZSBtbVNETUE0X1JMQzBfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzQKKyNkZWZpbmUgbW1TRE1BNF9STEMwX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc1CisjZGVmaW5lIG1tU0RNQTRfUkxDMF9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NgorI2RlZmluZSBtbVNETUE0X1JMQzBfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMwX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzcKKyNkZWZpbmUgbW1TRE1BNF9STEMwX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMF9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc4CisjZGVmaW5lIG1tU0RNQTRfUkxDMF9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzBfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3OQorI2RlZmluZSBtbVNETUE0X1JMQzBfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODgKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg5CisjZGVmaW5lIG1tU0RNQTRfUkxDMV9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YQorI2RlZmluZSBtbVNETUE0X1JMQzFfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGIKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThjCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZAorI2RlZmluZSBtbVNETUE0X1JMQzFfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGUKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThmCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MAorI2RlZmluZSBtbVNETUE0X1JMQzFfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkyCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MworI2RlZmluZSBtbVNETUE0X1JMQzFfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTQKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk1CisjZGVmaW5lIG1tU0RNQTRfUkxDMV9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NgorI2RlZmluZSBtbVNETUE0X1JMQzFfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTcKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk4CisjZGVmaW5lIG1tU0RNQTRfUkxDMV9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5OQorI2RlZmluZSBtbVNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOWEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIwCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMQorI2RlZmluZSBtbVNETUE0X1JMQzFfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjIKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIzCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNAorI2RlZmluZSBtbVNETUE0X1JMQzFfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjUKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI3CisjZGVmaW5lIG1tU0RNQTRfUkxDMV9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiOAorI2RlZmluZSBtbVNETUE0X1JMQzFfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjkKKyNkZWZpbmUgbW1TRE1BNF9STEMxX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJhCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiYgorI2RlZmluZSBtbVNETUE0X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmMKKyNkZWZpbmUgbW1TRE1BNF9STEMxX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJkCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjOAorI2RlZmluZSBtbVNETUE0X1JMQzFfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzkKKyNkZWZpbmUgbW1TRE1BNF9STEMxX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNhCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjYgorI2RlZmluZSBtbVNETUE0X1JMQzFfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2MKKyNkZWZpbmUgbW1TRE1BNF9STEMxX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNkCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjZQorI2RlZmluZSBtbVNETUE0X1JMQzFfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMxX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2YKKyNkZWZpbmUgbW1TRE1BNF9STEMxX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWQwCisjZGVmaW5lIG1tU0RNQTRfUkxDMV9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzFfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkMQorI2RlZmluZSBtbVNETUE0X1JMQzFfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTAKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMgorI2RlZmluZSBtbVNETUE0X1JMQzJfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTMKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU0CisjZGVmaW5lIG1tU0RNQTRfUkxDMl9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNQorI2RlZmluZSBtbVNETUE0X1JMQzJfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTYKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU3CisjZGVmaW5lIG1tU0RNQTRfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlOAorI2RlZmluZSBtbVNETUE0X1JMQzJfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTkKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVhCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYgorI2RlZmluZSBtbVNETUE0X1JMQzJfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWMKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVkCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlZQorI2RlZmluZSBtbVNETUE0X1JMQzJfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWYKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYwCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMQorI2RlZmluZSBtbVNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjIKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjA4CisjZGVmaW5lIG1tU0RNQTRfUkxDMl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwOQorI2RlZmluZSBtbVNETUE0X1JMQzJfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBiCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYworI2RlZmluZSBtbVNETUE0X1JMQzJfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGQKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBmCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMAorI2RlZmluZSBtbVNETUE0X1JMQzJfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjEyCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMworI2RlZmluZSBtbVNETUE0X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTQKKyNkZWZpbmUgbW1TRE1BNF9STEMyX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE1CisjZGVmaW5lIG1tU0RNQTRfUkxDMl9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMAorI2RlZmluZSBtbVNETUE0X1JMQzJfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIyCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMworI2RlZmluZSBtbVNETUE0X1JMQzJfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjQKKyNkZWZpbmUgbW1TRE1BNF9STEMyX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI1CisjZGVmaW5lIG1tU0RNQTRfUkxDMl9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNgorI2RlZmluZSBtbVNETUE0X1JMQzJfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMyX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjcKKyNkZWZpbmUgbW1TRE1BNF9STEMyX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDMl9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI4CisjZGVmaW5lIG1tU0RNQTRfUkxDMl9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzJfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyOQorI2RlZmluZSBtbVNETUE0X1JMQzJfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMzgKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM5CisjZGVmaW5lIG1tU0RNQTRfUkxDM19SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYQorI2RlZmluZSBtbVNETUE0X1JMQzNfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2IKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNjCisjZGVmaW5lIG1tU0RNQTRfUkxDM19SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZAorI2RlZmluZSBtbVNETUE0X1JMQzNfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2UKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNmCisjZGVmaW5lIG1tU0RNQTRfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MAorI2RlZmluZSBtbVNETUE0X1JMQzNfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQyCisjZGVmaW5lIG1tU0RNQTRfUkxDM19JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MworI2RlZmluZSBtbVNETUE0X1JMQzNfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDQKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ1CisjZGVmaW5lIG1tU0RNQTRfUkxDM19JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NgorI2RlZmluZSBtbVNETUE0X1JMQzNfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDcKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ4CisjZGVmaW5lIG1tU0RNQTRfUkxDM19TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0OQorI2RlZmluZSBtbVNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNGEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYwCisjZGVmaW5lIG1tU0RNQTRfUkxDM19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MQorI2RlZmluZSBtbVNETUE0X1JMQzNfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjIKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYzCisjZGVmaW5lIG1tU0RNQTRfUkxDM19ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NAorI2RlZmluZSBtbVNETUE0X1JMQzNfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjUKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY3CisjZGVmaW5lIG1tU0RNQTRfUkxDM19JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2OAorI2RlZmluZSBtbVNETUE0X1JMQzNfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjkKKyNkZWZpbmUgbW1TRE1BNF9STEMzX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZhCisjZGVmaW5lIG1tU0RNQTRfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YgorI2RlZmluZSBtbVNETUE0X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmMKKyNkZWZpbmUgbW1TRE1BNF9STEMzX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZkCisjZGVmaW5lIG1tU0RNQTRfUkxDM19NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3OAorI2RlZmluZSBtbVNETUE0X1JMQzNfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzkKKyNkZWZpbmUgbW1TRE1BNF9STEMzX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdhCisjZGVmaW5lIG1tU0RNQTRfUkxDM19NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YgorI2RlZmluZSBtbVNETUE0X1JMQzNfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2MKKyNkZWZpbmUgbW1TRE1BNF9STEMzX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdkCisjZGVmaW5lIG1tU0RNQTRfUkxDM19NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZQorI2RlZmluZSBtbVNETUE0X1JMQzNfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEMzX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2YKKyNkZWZpbmUgbW1TRE1BNF9STEMzX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDM19NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjgwCisjZGVmaW5lIG1tU0RNQTRfUkxDM19NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzNfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MQorI2RlZmluZSBtbVNETUE0X1JMQzNfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTAKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MgorI2RlZmluZSBtbVNETUE0X1JMQzRfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTMKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk0CisjZGVmaW5lIG1tU0RNQTRfUkxDNF9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NQorI2RlZmluZSBtbVNETUE0X1JMQzRfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTYKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk3CisjZGVmaW5lIG1tU0RNQTRfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5OAorI2RlZmluZSBtbVNETUE0X1JMQzRfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTkKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlhCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YgorI2RlZmluZSBtbVNETUE0X1JMQzRfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWMKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlkCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZQorI2RlZmluZSBtbVNETUE0X1JMQzRfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWYKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEwCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMQorI2RlZmluZSBtbVNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTIKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmI4CisjZGVmaW5lIG1tU0RNQTRfUkxDNF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiOQorI2RlZmluZSBtbVNETUE0X1JMQzRfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJiCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYworI2RlZmluZSBtbVNETUE0X1JMQzRfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmQKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJmCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMAorI2RlZmluZSBtbVNETUE0X1JMQzRfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMyCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMworI2RlZmluZSBtbVNETUE0X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzQKKyNkZWZpbmUgbW1TRE1BNF9STEM0X1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM1CisjZGVmaW5lIG1tU0RNQTRfUkxDNF9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMAorI2RlZmluZSBtbVNETUE0X1JMQzRfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQyCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMworI2RlZmluZSBtbVNETUE0X1JMQzRfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDQKKyNkZWZpbmUgbW1TRE1BNF9STEM0X01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ1CisjZGVmaW5lIG1tU0RNQTRfUkxDNF9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNgorI2RlZmluZSBtbVNETUE0X1JMQzRfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM0X01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDcKKyNkZWZpbmUgbW1TRE1BNF9STEM0X01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNF9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ4CisjZGVmaW5lIG1tU0RNQTRfUkxDNF9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzRfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkOQorI2RlZmluZSBtbVNETUE0X1JMQzRfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTgKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU5CisjZGVmaW5lIG1tU0RNQTRfUkxDNV9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYQorI2RlZmluZSBtbVNETUE0X1JMQzVfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWIKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVjCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZAorI2RlZmluZSBtbVNETUE0X1JMQzVfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWUKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVmCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMAorI2RlZmluZSBtbVNETUE0X1JMQzVfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYyCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMworI2RlZmluZSBtbVNETUE0X1JMQzVfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjQKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY1CisjZGVmaW5lIG1tU0RNQTRfUkxDNV9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNgorI2RlZmluZSBtbVNETUE0X1JMQzVfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjcKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY4CisjZGVmaW5lIG1tU0RNQTRfUkxDNV9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmOQorI2RlZmluZSBtbVNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZmEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEwCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMQorI2RlZmluZSBtbVNETUE0X1JMQzVfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTIKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEzCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNAorI2RlZmluZSBtbVNETUE0X1JMQzVfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTUKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE3CisjZGVmaW5lIG1tU0RNQTRfUkxDNV9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxOAorI2RlZmluZSBtbVNETUE0X1JMQzVfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTkKKyNkZWZpbmUgbW1TRE1BNF9STEM1X0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFhCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYgorI2RlZmluZSBtbVNETUE0X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWMKKyNkZWZpbmUgbW1TRE1BNF9STEM1X1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFkCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyOAorI2RlZmluZSBtbVNETUE0X1JMQzVfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjkKKyNkZWZpbmUgbW1TRE1BNF9STEM1X01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJhCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyYgorI2RlZmluZSBtbVNETUE0X1JMQzVfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmMKKyNkZWZpbmUgbW1TRE1BNF9STEM1X01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJkCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZQorI2RlZmluZSBtbVNETUE0X1JMQzVfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM1X01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmYKKyNkZWZpbmUgbW1TRE1BNF9STEM1X01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzMwCisjZGVmaW5lIG1tU0RNQTRfUkxDNV9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzVfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMzMQorI2RlZmluZSBtbVNETUE0X1JMQzVfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDAKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MgorI2RlZmluZSBtbVNETUE0X1JMQzZfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDMKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ0CisjZGVmaW5lIG1tU0RNQTRfUkxDNl9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NQorI2RlZmluZSBtbVNETUE0X1JMQzZfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDYKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ3CisjZGVmaW5lIG1tU0RNQTRfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0OAorI2RlZmluZSBtbVNETUE0X1JMQzZfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDkKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRhCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0YgorI2RlZmluZSBtbVNETUE0X1JMQzZfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGMKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRkCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0ZQorI2RlZmluZSBtbVNETUE0X1JMQzZfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGYKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzUwCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MQorI2RlZmluZSBtbVNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTIKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzY4CisjZGVmaW5lIG1tU0RNQTRfUkxDNl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2OQorI2RlZmluZSBtbVNETUE0X1JMQzZfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZiCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2YworI2RlZmluZSBtbVNETUE0X1JMQzZfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmQKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZmCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MAorI2RlZmluZSBtbVNETUE0X1JMQzZfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcyCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MworI2RlZmluZSBtbVNETUE0X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzQKKyNkZWZpbmUgbW1TRE1BNF9STEM2X1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzc1CisjZGVmaW5lIG1tU0RNQTRfUkxDNl9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MAorI2RlZmluZSBtbVNETUE0X1JMQzZfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgyCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MworI2RlZmluZSBtbVNETUE0X1JMQzZfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODQKKyNkZWZpbmUgbW1TRE1BNF9STEM2X01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg1CisjZGVmaW5lIG1tU0RNQTRfUkxDNl9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NgorI2RlZmluZSBtbVNETUE0X1JMQzZfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM2X01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODcKKyNkZWZpbmUgbW1TRE1BNF9STEM2X01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDNl9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg4CisjZGVmaW5lIG1tU0RNQTRfUkxDNl9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzZfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4OQorI2RlZmluZSBtbVNETUE0X1JMQzZfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOTgKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzk5CisjZGVmaW5lIG1tU0RNQTRfUkxDN19SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5YQorI2RlZmluZSBtbVNETUE0X1JMQzdfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWIKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzljCisjZGVmaW5lIG1tU0RNQTRfUkxDN19SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5ZAorI2RlZmluZSBtbVNETUE0X1JMQzdfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWUKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzlmCisjZGVmaW5lIG1tU0RNQTRfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMAorI2RlZmluZSBtbVNETUE0X1JMQzdfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2EyCisjZGVmaW5lIG1tU0RNQTRfUkxDN19JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMworI2RlZmluZSBtbVNETUE0X1JMQzdfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTQKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E1CisjZGVmaW5lIG1tU0RNQTRfUkxDN19JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNgorI2RlZmluZSBtbVNETUE0X1JMQzdfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTcKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E4CisjZGVmaW5lIG1tU0RNQTRfUkxDN19TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhOQorI2RlZmluZSBtbVNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYWEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MwCisjZGVmaW5lIG1tU0RNQTRfUkxDN19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMQorI2RlZmluZSBtbVNETUE0X1JMQzdfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzIKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MzCisjZGVmaW5lIG1tU0RNQTRfUkxDN19ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNAorI2RlZmluZSBtbVNETUE0X1JMQzdfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzUKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M3CisjZGVmaW5lIG1tU0RNQTRfUkxDN19JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjOAorI2RlZmluZSBtbVNETUE0X1JMQzdfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzkKKyNkZWZpbmUgbW1TRE1BNF9STEM3X0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NhCisjZGVmaW5lIG1tU0RNQTRfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjYgorI2RlZmluZSBtbVNETUE0X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2MKKyNkZWZpbmUgbW1TRE1BNF9STEM3X1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NkCisjZGVmaW5lIG1tU0RNQTRfUkxDN19NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkOAorI2RlZmluZSBtbVNETUE0X1JMQzdfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDkKKyNkZWZpbmUgbW1TRE1BNF9STEM3X01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RhCisjZGVmaW5lIG1tU0RNQTRfUkxDN19NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYgorI2RlZmluZSBtbVNETUE0X1JMQzdfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGMKKyNkZWZpbmUgbW1TRE1BNF9STEM3X01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RkCisjZGVmaW5lIG1tU0RNQTRfUkxDN19NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZQorI2RlZmluZSBtbVNETUE0X1JMQzdfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNF9STEM3X01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGYKKyNkZWZpbmUgbW1TRE1BNF9STEM3X01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTRfUkxDN19NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2UwCisjZGVmaW5lIG1tU0RNQTRfUkxDN19NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE0X1JMQzdfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlMQorI2RlZmluZSBtbVNETUE0X1JMQzdfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTQvc2RtYTRfNF8yXzJfc2hfbWFzay5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWE0L3NkbWE0XzRfMl8yX3NoX21hc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2M1MTA5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWE0L3NkbWE0XzRfMl8yX3NoX21hc2suaApAQCAtMCwwICsxLDI5NTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX3NkbWE0XzRfMl8yX1NIX01BU0tfSEVBREVSCisjZGVmaW5lIF9zZG1hNF80XzJfMl9TSF9NQVNLX0hFQURFUgorCisKKy8vIGFkZHJlc3NCbG9jazogc2RtYTRfc2RtYTRkZWMKKy8vU0RNQTRfVUNPREVfQUREUgorI2RlZmluZSBTRE1BNF9VQ09ERV9BRERSX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVUNPREVfQUREUl9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKy8vU0RNQTRfVUNPREVfREFUQQorI2RlZmluZSBTRE1BNF9VQ09ERV9EQVRBX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVUNPREVfREFUQV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfVk1fQ05UTAorI2RlZmluZSBTRE1BNF9WTV9DTlRMX19DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVk1fQ05UTF9fQ01EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vU0RNQTRfVk1fQ1RYX0xPCisjZGVmaW5lIFNETUE0X1ZNX0NUWF9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9WTV9DVFhfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9WTV9DVFhfSEkKKyNkZWZpbmUgU0RNQTRfVk1fQ1RYX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1ZNX0NUWF9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0FDVElWRV9GQ05fSUQKKyNkZWZpbmUgU0RNQTRfQUNUSVZFX0ZDTl9JRF9fVkZJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0FDVElWRV9GQ05fSURfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9BQ1RJVkVfRkNOX0lEX19WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE0X0FDVElWRV9GQ05fSURfX1ZGSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUE0X0FDVElWRV9GQ05fSURfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRjBMCisjZGVmaW5lIFNETUE0X0FDVElWRV9GQ05fSURfX1ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE0X1ZNX0NUWF9DTlRMCisjZGVmaW5lIFNETUE0X1ZNX0NUWF9DTlRMX19QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9WTV9DVFhfQ05UTF9fVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfVk1fQ1RYX0NOVExfX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfVk1fQ1RYX0NOVExfX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKy8vU0RNQTRfVklSVF9SRVNFVF9SRVEKKyNkZWZpbmUgU0RNQTRfVklSVF9SRVNFVF9SRVFfX1ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1ZJUlRfUkVTRVRfUkVRX19QRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTRfVklSVF9SRVNFVF9SRVFfX1ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTRfVklSVF9SRVNFVF9SRVFfX1BGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTRfVkZfRU5BQkxFCisjZGVmaW5lIFNETUE0X1ZGX0VOQUJMRV9fVkZfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9WRl9FTkFCTEVfX1ZGX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNF9DT05URVhUX1JFR19UWVBFMAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE0X0dGWF9SQl9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNF9HRlhfUkJfQkFTRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1JQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE0X0dGWF9SQl9SUFRSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNF9HRlhfUkJfV1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1dQVFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE0X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNF9HRlhfUkJfUlBUUl9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1JQVFJfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE0X0dGWF9JQl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNF9HRlhfSUJfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0lCX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE0X0dGWF9JQl9CQVNFX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNF9HRlhfSUJfQkFTRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0lCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE0X0dGWF9TS0lQX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNF9HRlhfRE9PUkJFTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE0X0dGWF9DT05URVhUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX0JBU0VfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1JQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1JQVFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1dQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1dQVFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1JQVFJfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1JCX1JQVFJfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0lCX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0lCX1JQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0lCX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0lCX0JBU0VfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0lCX0JBU0VfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0lCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX1NLSVBfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0RPT1JCRUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMF9fU0RNQTRfR0ZYX0NPTlRFWFRfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorLy9TRE1BNF9DT05URVhUX1JFR19UWVBFMQorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMV9fU0RNQTRfR0ZYX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9ET09SQkVMTF9MT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNF9HRlhfV0FURVJNQVJLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMV9fU0RNQTRfR0ZYX0RPT1JCRUxMX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9DU0FfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNF9HRlhfQ1NBX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMV9fVk9JRF9SRUcyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9JQl9TVUJfUkVNQUlOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNF9HRlhfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9EVU1NWV9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMV9fU0RNQTRfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9SQl9BUUxfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMV9fU0RNQTRfR0ZYX01JTk9SX1BUUl9VUERBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUxX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9ET09SQkVMTF9MT0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9XQVRFUk1BUktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9ET09SQkVMTF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9DU0FfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9DU0FfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1ZPSURfUkVHMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9JQl9TVUJfUkVNQUlOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9EVU1NWV9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9SQl9BUUxfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE0X0dGWF9NSU5PUl9QVFJfVVBEQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTFfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkMwMDAwMEwKKy8vU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTIKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE0X0dGWF9NSURDTURfREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNF9HRlhfTUlEQ01EX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE0X0dGWF9NSURDTURfREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNF9HRlhfTUlEQ01EX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE0X0dGWF9NSURDTURfREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNF9HRlhfTUlEQ01EX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE0X0dGWF9NSURDTURfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X0NPTlRFWFRfUkVHX1RZUEUyX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0RNQTRfR0ZYX01JRENNRF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFMl9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGQzAwTAorLy9TRE1BNF9DT05URVhUX1JFR19UWVBFMworI2RlZmluZSBTRE1BNF9DT05URVhUX1JFR19UWVBFM19fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTNfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUFVCX1JFR19UWVBFMAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9VQ09ERV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMF9fU0RNQTRfVUNPREVfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9WTV9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMF9fU0RNQTRfVk1fQ1RYX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTBfX1NETUE0X1ZNX0NUWF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9BQ1RJVkVfRkNOX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMF9fU0RNQTRfVk1fQ1RYX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTBfX1NETUE0X1ZJUlRfUkVTRVRfUkVRX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19SRVNFUlZFRDEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMF9fU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTBfX1NETUE0X0NPTlRFWFRfUkVHX1RZUEUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DT05URVhUX1JFR19UWVBFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMF9fU0RNQTRfQ09OVEVYVF9SRUdfVFlQRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTBfX1NETUE0X1BVQl9SRUdfVFlQRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9QVUJfUkVHX1RZUEUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTBfX1NETUE0X1BVQl9SRUdfVFlQRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMF9fU0RNQTRfUFVCX1JFR19UWVBFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9NTUhVQl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEX0ZPUl9QU1BTTVVfQUNDRVNTX09OTFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMF9fU0RNQTRfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9QT1dFUl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTBfX1NETUE0X0NMS19DVFJMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMF9fU0RNQTRfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DSElDS0VOX0JJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTBfX1NETUE0X0dCX0FERFJfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMF9fU0RNQTRfR0JfQUREUl9DT05GSUdfUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9VQ09ERV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9VQ09ERV9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19SRVNFUlZFRDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9WTV9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9WTV9DVFhfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9WTV9DVFhfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9BQ1RJVkVfRkNOX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9WTV9DVFhfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9WSVJUX1JFU0VUX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19SRVNFUlZFRDEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DT05URVhUX1JFR19UWVBFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DT05URVhUX1JFR19UWVBFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DT05URVhUX1JFR19UWVBFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DT05URVhUX1JFR19UWVBFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9QVUJfUkVHX1RZUEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9QVUJfUkVHX1RZUEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9QVUJfUkVHX1RZUEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9QVUJfUkVHX1RZUEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9NTUhVQl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19SRVNFUlZFRF9GT1JfUFNQU01VX0FDQ0VTU19PTkxZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRTAwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DT05URVhUX0dST1VQX0JPVU5EQVJZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9QT1dFUl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DTEtfQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9DSElDS0VOX0JJVFNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9HQl9BRERSX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUwX19TRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNF9QVUJfUkVHX1RZUEUxCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1JCX1JQVFJfRkVUQ0hfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQTRfUkJfUlBUUl9GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0lCX09GRlNFVF9GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9QUk9HUkFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQTRfU1RBVFVTX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1NUQVRVUzFfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9SRF9CVVJTVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQTRfSEJNX1BBR0VfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1VDT0RFX0NIRUNLU1VNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9GMzJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQTRfRlJFRVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1BIQVNFMF9RVUFOVFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9QSEFTRTFfUVVBTlRVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQV9QT1dFUl9HQVRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUFfUEdGU01fQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUFfUEdGU01fUkVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQTRfRURDX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9CQV9USFJFU0hPTERfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQTRfVkVSU0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9FRENfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0VEQ19DT1VOVEVSX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQTRfU1RBVFVTMl9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9BVE9NSUNfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0FUT01JQ19QUkVPUF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQTRfQVRPTUlDX1BSRU9QX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9VVENMMV9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1VUQ0wxX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMV9fU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUxX19TRE1BNF9VVENMMV9XUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1JCX1JQVFJfRkVUQ0hfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1JCX1JQVFJfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0lCX09GRlNFVF9GRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1BST0dSQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1NUQVRVU19SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1NUQVRVUzFfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1JEX0JVUlNUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0hCTV9QQUdFX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1VDT0RFX0NIRUNLU1VNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0YzMl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0ZSRUVaRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1BIQVNFMF9RVUFOVFVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1BIQVNFMV9RVUFOVFVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUFfUE9XRVJfR0FUSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUFfUEdGU01fQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUFfUEdGU01fV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUFfUEdGU01fUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0VEQ19DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0JBX1RIUkVTSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1ZFUlNJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0VEQ19DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0VEQ19DT1VOVEVSX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1NUQVRVUzJfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0FUT01JQ19DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0FUT01JQ19QUkVPUF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X0FUT01JQ19QUkVPUF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1VUQ0wxX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1VUQ0wxX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1VUQ0wxX1JEX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTFfX1NETUE0X1VUQ0wxX1dSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE0X1BVQl9SRUdfVFlQRTIKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfSU5WMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1NETUE0X1VUQ0wxX0lOVjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9VVENMMV9JTlYyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfUkRfWE5BQ0swX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1NETUE0X1VUQ0wxX1JEX1hOQUNLMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9VVENMMV9XUl9YTkFDSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfV1JfWE5BQ0sxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1NETUE0X1VUQ0wxX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9VVENMMV9QQUdFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUE9XRVJfQ05UTF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1NETUE0X1JFTEFYX09SREVSSU5HX0xVVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9DSElDS0VOX0JJVFNfMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfU1RBVFVTM19SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1NETUE0X1BIWVNJQ0FMX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9QSFlTSUNBTF9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEhBU0UyX1FVQU5UVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1NETUE0X0VSUk9SX0xPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUFVCX0RVTU1ZX1JFRzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9QVUJfRFVNTVlfUkVHMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1NETUE0X1BVQl9EVU1NWV9SRUcyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUFVCX0RVTU1ZX1JFRzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9GMzJfQ09VTlRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1NETUE0X1VOQlJFQUtBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEVSRk1PTl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9QRVJGQ09VTlRFUjBfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1NETUE0X1BFUkZDT1VOVEVSMV9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9DUkRfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEMjhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUyX19TRE1BNF9VTFZfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfSU5WMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfSU5WMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfSU5WMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfUkRfWE5BQ0swX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfUkRfWE5BQ0sxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfV1JfWE5BQ0swX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfV1JfWE5BQ0sxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVVRDTDFfUEFHRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUE9XRVJfQ05UTF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfQ0hJQ0tFTl9CSVRTXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfU1RBVFVTM19SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEhZU0lDQUxfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEhZU0lDQUxfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEhBU0UyX1FVQU5UVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfRVJST1JfTE9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUFVCX0RVTU1ZX1JFRzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUFVCX0RVTU1ZX1JFRzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUFVCX0RVTU1ZX1JFRzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUFVCX0RVTU1ZX1JFRzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfRjMyX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVU5CUkVBS0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEVSRk1PTl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEVSRkNPVU5URVIwX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEVSRkNPVU5URVIxX1JFU1VMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfQ1JEX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fUkVTRVJWRUQyOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fU0RNQTRfVUxWX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFMl9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTRfUFVCX1JFR19UWVBFMworI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUzX19TRE1BNF9FQV9EQklUX0FERFJfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFM19fU0RNQTRfRUFfREJJVF9BRERSX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1BVQl9SRUdfVFlQRTNfX1NETUE0X0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9QVUJfUkVHX1RZUEUzX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFM19fU0RNQTRfRUFfREJJVF9BRERSX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFM19fU0RNQTRfRUFfREJJVF9BRERSX0lOREVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFM19fU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTRfUFVCX1JFR19UWVBFM19fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGOEwKKy8vU0RNQTRfTU1IVUJfQ05UTAorI2RlZmluZSBTRE1BNF9NTUhVQl9DTlRMX19VTklUX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfTU1IVUJfQ05UTF9fVU5JVF9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vU0RNQTRfQ09OVEVYVF9HUk9VUF9CT1VOREFSWQorI2RlZmluZSBTRE1BNF9DT05URVhUX0dST1VQX0JPVU5EQVJZX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUE9XRVJfQ05UTAorI2RlZmluZSBTRE1BNF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0xTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1BPV0VSX0NOVExfX01FTV9QT1dFUl9EU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNF9QT1dFUl9DTlRMX19NRU1fUE9XRVJfU0RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTRfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE0X1BPV0VSX0NOVExfX01FTV9QT1dFUl9PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1BPV0VSX0NOVExfX01FTV9QT1dFUl9MU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1BPV0VSX0NOVExfX01FTV9QT1dFUl9EU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE0X1BPV0VSX0NOVExfX01FTV9QT1dFUl9TRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE0X1BPV0VSX0NOVExfX01FTV9QT1dFUl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkYwMDBMCisvL1NETUE0X0NMS19DVFJMCisjZGVmaW5lIFNETUE0X0NMS19DVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfQ0xLX0NUUkxfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE0X0NMS19DVFJMX19TT0ZUX09WRVJSSURFN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE0X0NMS19DVFJMX19TT0ZUX09WRVJSSURFNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE0X0NMS19DVFJMX19TT0ZUX09WRVJSSURFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTRfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fT05fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fT0ZGX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGMDAwTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNF9DTlRMCisjZGVmaW5lIFNETUE0X0NOVExfX1RSQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9DTlRMX19VVENfTDFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfQ05UTF9fU0VNX1dBSVRfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X0NOVExfX0RBVEFfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9DTlRMX19GRU5DRV9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfQ05UTF9fTUlEQ01EX1BSRUVNUFRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X0NOVExfX01JRENNRF9XT1JMRFNXSVRDSF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTRfQ05UTF9fQVVUT19DVFhTV19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNF9DTlRMX19DVFhFTVBUWV9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE0X0NOVExfX0ZST1pFTl9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTRfQ05UTF9fSUJfUFJFRU1QVF9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNF9DTlRMX19UUkFQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9DTlRMX19VVENfTDFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9DTlRMX19TRU1fV0FJVF9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9DTlRMX19EQVRBX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNF9DTlRMX19GRU5DRV9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9DTlRMX19NSURDTURfUFJFRU1QVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNF9DTlRMX19NSURDTURfV09STERTV0lUQ0hfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNF9DTlRMX19BVVRPX0NUWFNXX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNF9DTlRMX19DVFhFTVBUWV9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9DTlRMX19GUk9aRU5fSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9DTlRMX19JQl9QUkVFTVBUX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNF9DSElDS0VOX0JJVFMKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19DT1BZX0VGRklDSUVOQ1lfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0NISUNLRU5fQklUU19fU1RBTExfT05fVFJBTlNfRlVMTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNF9DSElDS0VOX0JJVFNfX1NUQUxMX09OX05PX0ZSRUVfREFUQV9CVUZGRVJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19XUklURV9CVVJTVF9MRU5HVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfV0FJVF9DWUNMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNF9DSElDS0VOX0JJVFNfX0NPUFlfT1ZFUkxBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE0X0NISUNLRU5fQklUU19fUkFXX0NIRUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19TUkJNX1BPTExfUkVUUllJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNF9DSElDS0VOX0JJVFNfX0NHX1NUQVRVU19PVVRQVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X0NISUNLRU5fQklUU19fVElNRV9CQVNFRF9RT1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19DRV9BRklGT19XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BNF9DSElDS0VOX0JJVFNfX0NFX0RGSUZPX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE0X0NISUNLRU5fQklUU19fQ0VfTEZJRk9fV0FURVJNQVJLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19DT1BZX0VGRklDSUVOQ1lfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19TVEFMTF9PTl9UUkFOU19GVUxMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19TVEFMTF9PTl9OT19GUkVFX0RBVEFfQlVGRkVSX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19XUklURV9CVVJTVF9MRU5HVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19XUklURV9CVVJTVF9XQUlUX0NZQ0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUMwMEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19DT1BZX09WRVJMQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19SQVdfQ0hFQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19TUkJNX1BPTExfUkVUUllJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19DR19TVEFUVVNfT1VUUFVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19USU1FX0JBU0VEX1FPU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19DRV9BRklGT19XQVRFUk1BUktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19DRV9ERklGT19XQVRFUk1BUktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTX19DRV9MRklGT19XQVRFUk1BUktfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMDAwMDAwMEwKKy8vU0RNQTRfR0JfQUREUl9DT05GSUcKKyNkZWZpbmUgU0RNQTRfR0JfQUREUl9DT05GSUdfX05VTV9QSVBFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dCX0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9HQl9BRERSX0NPTkZJR19fQkFOS19JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfR0JfQUREUl9DT05GSUdfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE0X0dCX0FERFJfQ09ORklHX19OVU1fU0hBREVSX0VOR0lORVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTRfR0JfQUREUl9DT05GSUdfX05VTV9QSVBFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgU0RNQTRfR0JfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgU0RNQTRfR0JfQUREUl9DT05GSUdfX0JBTktfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgU0RNQTRfR0JfQUREUl9DT05GSUdfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgU0RNQTRfR0JfQUREUl9DT05GSUdfX05VTV9TSEFERVJfRU5HSU5FU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4MDAwMEwKKy8vU0RNQTRfR0JfQUREUl9DT05GSUdfUkVBRAorI2RlZmluZSBTRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEX19OVU1fUElQRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0JfQUREUl9DT05GSUdfUkVBRF9fUElQRV9JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE0X0dCX0FERFJfQ09ORklHX1JFQURfX0JBTktfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTRfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1NIQURFUl9FTkdJTkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEX19OVU1fUElQRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBTRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEX19QSVBFX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBTRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEX19CQU5LX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBTRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBTRE1BNF9HQl9BRERSX0NPTkZJR19SRUFEX19OVU1fU0hBREVSX0VOR0lORVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTgwMDAwTAorLy9TRE1BNF9SQl9SUFRSX0ZFVENIX0hJCisjZGVmaW5lIFNETUE0X1JCX1JQVFJfRkVUQ0hfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9SQl9SUFRSX0ZFVENIX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVEwKKyNkZWZpbmUgU0RNQTRfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9fVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JCX1JQVFJfRkVUQ0gKKyNkZWZpbmUgU0RNQTRfUkJfUlBUUl9GRVRDSF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JCX1JQVFJfRkVUQ0hfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE0X0lCX09GRlNFVF9GRVRDSAorI2RlZmluZSBTRE1BNF9JQl9PRkZTRVRfRkVUQ0hfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfSUJfT0ZGU0VUX0ZFVENIX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTRfUFJPR1JBTQorI2RlZmluZSBTRE1BNF9QUk9HUkFNX19TVFJFQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUFJPR1JBTV9fU1RSRUFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfU1RBVFVTX1JFRworI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fUkVHX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1NUQVRVU19SRUdfX1JCX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19SQl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fUkJfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE0X1NUQVRVU19SRUdfX1JCX0NNRF9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JQl9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fSUJfQ01EX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1NUQVRVU19SRUdfX0JMT0NLX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fRVhfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1NUQVRVU19SRUdfX0VYX0lETEVfUE9MTF9USU1FUl9FWFBJUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19QQUNLRVRfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fTUNfV1JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE0X1NUQVRVU19SRUdfX1NSQk1fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19DT05URVhUX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19SQl9NQ19SUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE0X1NUQVRVU19SRUdfX0lCX01DX1JSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fTUNfUkRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19ERUxUQV9SUFRSX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE0X1NUQVRVU19SRUdfX01DX1JEX1JFVF9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fTUNfUkRfTk9fUE9MTF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19QUkVWX0NNRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE0X1NUQVRVU19SRUdfX1NFTV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fU0VNX1JFUV9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19TRU1fUkVTUF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE0X1NUQVRVU19SRUdfX0lOVF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTRfU1RBVFVTX1JFR19fSU5UX1JFUV9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19SRUdfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19SQl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19SQl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19SQl9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19SQl9DTURfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JQl9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JQl9DTURfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19CTE9DS19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19FWF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19FWF9JRExFX1BPTExfVElNRVJfRVhQSVJFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19QQUNLRVRfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19NQ19XUl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19TUkJNX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19DT05URVhUX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19ERUxUQV9SUFRSX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19SQl9NQ19SUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JQl9NQ19SUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19NQ19SRF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19ERUxUQV9SUFRSX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19NQ19SRF9SRVRfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19NQ19SRF9OT19QT0xMX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19QUkVWX0NNRF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19TRU1fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19TRU1fUkVRX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19TRU1fUkVTUF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JTlRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9TVEFUVVNfUkVHX19JTlRfUkVRX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNF9TVEFUVVMxX1JFRworI2RlZmluZSBTRE1BNF9TVEFUVVMxX1JFR19fQ0VfV1JFUV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX1dSX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1NUQVRVUzFfUkVHX19DRV9TUExJVF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9TVEFUVVMxX1JFR19fQ0VfUlJFUV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX09VVF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE0X1NUQVRVUzFfUkVHX19DRV9JTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNF9TVEFUVVMxX1JFR19fQ0VfRFNUX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX0NNRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1NUQVRVUzFfUkVHX19DRV9BRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNF9TVEFUVVMxX1JFR19fQ0VfSU5GT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX0lORk8xX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE0X1NUQVRVUzFfUkVHX19FWF9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNF9TVEFUVVMxX1JFR19fQ0VfUkRfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE0X1NUQVRVUzFfUkVHX19DRV9XUl9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX1dSRVFfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX1dSX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX1NQTElUX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX1JSRVFfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX09VVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX0lOX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX0RTVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX0NNRF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX0FGSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX0lORk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX0lORk8xX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0VYX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX1JEX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMV9SRUdfX0NFX1dSX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKy8vU0RNQTRfUkRfQlVSU1RfQ05UTAorI2RlZmluZSBTRE1BNF9SRF9CVVJTVF9DTlRMX19SRF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkRfQlVSU1RfQ05UTF9fQ01EX0JVRkZFUl9SRF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JEX0JVUlNUX0NOVExfX1JEX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFNETUE0X1JEX0JVUlNUX0NOVExfX0NNRF9CVUZGRVJfUkRfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisvL1NETUE0X0hCTV9QQUdFX0NPTkZJRworI2RlZmluZSBTRE1BNF9IQk1fUEFHRV9DT05GSUdfX1BBR0VfU0laRV9FWFBPTkVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfSEJNX1BBR0VfQ09ORklHX19QQUdFX1NJWkVfRVhQT05FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfVUNPREVfQ0hFQ0tTVU0KKyNkZWZpbmUgU0RNQTRfVUNPREVfQ0hFQ0tTVU1fX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1VDT0RFX0NIRUNLU1VNX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0YzMl9DTlRMCisjZGVmaW5lIFNETUE0X0YzMl9DTlRMX19IQUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9GMzJfQ05UTF9fU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfRjMyX0NOVExfX0hBTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfRjMyX0NOVExfX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vU0RNQTRfRlJFRVpFCisjZGVmaW5lIFNETUE0X0ZSRUVaRV9fUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9GUkVFWkVfX0ZSRUVaRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfRlJFRVpFX19GUk9aRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X0ZSRUVaRV9fRjMyX0ZSRUVaRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNF9GUkVFWkVfX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9GUkVFWkVfX0ZSRUVaRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9GUkVFWkVfX0ZST1pFTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNF9GUkVFWkVfX0YzMl9GUkVFWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9TRE1BNF9QSEFTRTBfUVVBTlRVTQorI2RlZmluZSBTRE1BNF9QSEFTRTBfUVVBTlRVTV9fVU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEhBU0UwX1FVQU5UVU1fX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1BIQVNFMF9RVUFOVFVNX19QUkVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTRfUEhBU0UwX1FVQU5UVU1fX1VOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTRfUEhBU0UwX1FVQU5UVU1fX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkYwMEwKKyNkZWZpbmUgU0RNQTRfUEhBU0UwX1FVQU5UVU1fX1BSRUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTRfUEhBU0UxX1FVQU5UVU0KKyNkZWZpbmUgU0RNQTRfUEhBU0UxX1FVQU5UVU1fX1VOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BIQVNFMV9RVUFOVFVNX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9QSEFTRTFfUVVBTlRVTV9fUFJFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1BIQVNFMV9RVUFOVFVNX19VTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUE0X1BIQVNFMV9RVUFOVFVNX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGMDBMCisjZGVmaW5lIFNETUE0X1BIQVNFMV9RVUFOVFVNX19QUkVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X0VEQ19DT05GSUcKKyNkZWZpbmUgU0RNQTRfRURDX0NPTkZJR19fRElTX0VEQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X0VEQ19DT05GSUdfX0VDQ19JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9FRENfQ09ORklHX19ESVNfRURDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9FRENfQ09ORklHX19FQ0NfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9TRE1BNF9CQV9USFJFU0hPTEQKKyNkZWZpbmUgU0RNQTRfQkFfVEhSRVNIT0xEX19SRUFEX1RIUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0JBX1RIUkVTSE9MRF9fV1JJVEVfVEhSRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTRfQkFfVEhSRVNIT0xEX19SRUFEX1RIUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgU0RNQTRfQkFfVEhSRVNIT0xEX19XUklURV9USFJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTRfSUQKKyNkZWZpbmUgU0RNQTRfSURfX0RFVklDRV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0lEX19ERVZJQ0VfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NETUE0X1ZFUlNJT04KKyNkZWZpbmUgU0RNQTRfVkVSU0lPTl9fTUlOVkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1ZFUlNJT05fX01BSlZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9WRVJTSU9OX19SRVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE0X1ZFUlNJT05fX01JTlZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0ZMCisjZGVmaW5lIFNETUE0X1ZFUlNJT05fX01BSlZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdGMDBMCisjZGVmaW5lIFNETUE0X1ZFUlNJT05fX1JFVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRjAwMDBMCisvL1NETUE0X0VEQ19DT1VOVEVSCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX1VDT0RFX0JVRl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9FRENfQ09VTlRFUl9fU0RNQV9SQl9DTURfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfRURDX0NPVU5URVJfX1NETUFfSUJfQ01EX0JVRl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX1VUQ0wxX1JEX0ZJRk9fU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SREJTVF9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTRfRURDX0NPVU5URVJfX1NETUFfREFUQV9MVVRfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjFfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYyX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGM19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjRfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTRfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY1X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjdfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTRfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY4X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGOV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTRfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjExX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTJfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTRfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxM19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNF9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE0X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTVfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTRfRURDX0NPVU5URVJfX1NETUFfU1BMSVRfREFUX0JVRl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNF9FRENfQ09VTlRFUl9fU0RNQV9NQ19XUl9BRERSX0ZJRk9fU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX1VDT0RFX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX1JCX0NNRF9CVUZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX0lCX0NNRF9CVUZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX1VUQ0wxX1JEX0ZJRk9fU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX1VUQ0wxX1JEQlNUX0ZJRk9fU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX0RBVEFfTFVUX0ZJRk9fU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMF9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMV9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGM19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNF9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNV9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGN19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGOF9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGOV9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTBfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTFfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTJfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTNfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTRfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTVfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX1NQTElUX0RBVF9CVUZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX19TRE1BX01DX1dSX0FERFJfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisvL1NETUE0X0VEQ19DT1VOVEVSX0NMRUFSCisjZGVmaW5lIFNETUE0X0VEQ19DT1VOVEVSX0NMRUFSX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9FRENfQ09VTlRFUl9DTEVBUl9fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNF9TVEFUVVMyX1JFRworI2RlZmluZSBTRE1BNF9TVEFUVVMyX1JFR19fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMl9SRUdfX0YzMl9JTlNUUl9QVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE0X1NUQVRVUzJfUkVHX19DTURfT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMl9SRUdfX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMl9SRUdfX0YzMl9JTlNUUl9QVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGOEwKKyNkZWZpbmUgU0RNQTRfU1RBVFVTMl9SRUdfX0NNRF9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTRfQVRPTUlDX0NOVEwKKyNkZWZpbmUgU0RNQTRfQVRPTUlDX0NOVExfX0xPT1BfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0FUT01JQ19DTlRMX19BVE9NSUNfUlROX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTRfQVRPTUlDX0NOVExfX0xPT1BfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRkwKKyNkZWZpbmUgU0RNQTRfQVRPTUlDX0NOVExfX0FUT01JQ19SVE5fSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTRfQVRPTUlDX1BSRU9QX0xPCisjZGVmaW5lIFNETUE0X0FUT01JQ19QUkVPUF9MT19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9BVE9NSUNfUFJFT1BfTE9fX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9BVE9NSUNfUFJFT1BfSEkKKyNkZWZpbmUgU0RNQTRfQVRPTUlDX1BSRU9QX0hJX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0FUT01JQ19QUkVPUF9ISV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1VUQ0wxX0NOVEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfQ05UTF9fUkVET19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1VUQ0wxX0NOVExfX1JFRE9fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNF9VVENMMV9DTlRMX19SRURPX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTRfVVRDTDFfQ05UTF9fSU5WQUNLX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE0X1VUQ0wxX0NOVExfX1JFUUwyX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfVVRDTDFfQ05UTF9fVkFERFJfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNF9VVENMMV9DTlRMX19SRURPX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9VVENMMV9DTlRMX19SRURPX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0ZFTAorI2RlZmluZSBTRE1BNF9VVENMMV9DTlRMX19SRURPX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzODAwTAorI2RlZmluZSBTRE1BNF9VVENMMV9DTlRMX19JTlZBQ0tfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZDMDAwTAorI2RlZmluZSBTRE1BNF9VVENMMV9DTlRMX19SRVFMMl9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwTAorI2RlZmluZSBTRE1BNF9VVENMMV9DTlRMX19WQUREUl9XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwTAorLy9TRE1BNF9VVENMMV9XQVRFUk1LCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dBVEVSTUtfX1JFUU1DX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9VVENMMV9XQVRFUk1LX19SRVFQR19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV0FURVJNS19fSU5WUkVRX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNF9VVENMMV9XQVRFUk1LX19YTkFDS19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE0X1VUQ0wxX1dBVEVSTUtfX1JFUU1DX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxRkZMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dBVEVSTUtfX1JFUVBHX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZFMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dBVEVSTUtfX0lOVlJFUV9XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRTAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dBVEVSTUtfX1hOQUNLX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkUwMDAwMDBMCisvL1NETUE0X1VUQ0wxX1JEX1NUQVRVUworI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlRQR19SRVRfQlVGX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlRQR19SRVRfQlVGX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19QQUdFX05VTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX1JFUUwyX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fQ0VfTDFfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19ORVhUX1JEX1ZFQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX01FUkdFX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fQUREUl9SRF9SVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfU1RBVFVTX19XUFRSX1BPTExJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9TVEFUVVNfX0lOVlJFUV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlRQR19SRVRfQlVGX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlRQR19SRVRfQlVGX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUEFHRV9OVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fUkVRTDJfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fQ0VfTDFfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fTkVYVF9SRF9WRUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNDMDAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fTUVSR0VfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMwMDAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fQUREUl9SRF9SVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fV1BUUl9QT0xMSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1NUQVRVU19fSU5WUkVRX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE0X1VUQ0wxX1dSX1NUQVRVUworI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9GQVVMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19QQUdFX05VTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX1JFUUwyX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1NUQVRVU19fRjMyX1dSX1JUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19ORVhUX1dSX1ZFQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX01FUkdFX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUFRSX0RBVEFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19QQUdFX05VTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SRVFMMl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19GMzJfV1JfUlRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19ORVhUX1dSX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19NRVJHRV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUFRSX0RBVEFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19SUFRSX0RBVEFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19XUlJFUV9EQVRBX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfU1RBVFVTX19XUlJFUV9EQVRBX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTRfVVRDTDFfSU5WMAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19JTlZfTUlERExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVVRDTDFfSU5WMF9fUkRfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1VUQ0wxX0lOVjBfX1dSX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19SRF9JTl9JTlZBRFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTRfVVRDTDFfSU5WMF9fV1JfSU5fSU5WQURSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE0X1VUQ0wxX0lOVjBfX1BBR0VfTlVMTF9TV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19YTkFDS19JU19JTlZBRFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTRfVVRDTDFfSU5WMF9fSU5WUkVRX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1VUQ0wxX0lOVjBfX05BQ0tfVElNRU9VVF9TV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19ORkxVU0hfSU5WX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfVVRDTDFfSU5WMF9fRkxVU0hfSU5WX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1VUQ0wxX0lOVjBfX0lOVl9GTFVTSFRZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19JTlZfVk1JRF9WRUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTRfVVRDTDFfSU5WMF9fSU5WX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19JTlZfTUlERExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19SRF9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19XUl9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19SRF9JTl9JTlZBRFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19XUl9JTl9JTlZBRFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19QQUdFX05VTExfU1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19YTkFDS19JU19JTlZBRFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19JTlZSRVFfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19OQUNLX1RJTUVPVVRfU1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19ORkxVU0hfSU5WX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19GTFVTSF9JTlZfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19JTlZfRkxVU0hUWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19JTlZfVk1JRF9WRUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGMDAwTAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYwX19JTlZfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9TRE1BNF9VVENMMV9JTlYxCisjZGVmaW5lIFNETUE0X1VUQ0wxX0lOVjFfX0lOVl9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYxX19JTlZfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9VVENMMV9JTlYyCisjZGVmaW5lIFNETUE0X1VUQ0wxX0lOVjJfX0lOVl9ORkxVU0hfVk1JRF9WRUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9VVENMMV9JTlYyX19JTlZfTkZMVVNIX1ZNSURfVkVDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9VVENMMV9SRF9YTkFDSzAKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfWE5BQ0swX19YTkFDS19BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1VUQ0wxX1JEX1hOQUNLMQorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9VVENMMV9SRF9YTkFDSzFfX0lTX1hOQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGMDBMCisjZGVmaW5lIFNETUE0X1VUQ0wxX1JEX1hOQUNLMV9fSVNfWE5BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisvL1NETUE0X1VUQ0wxX1dSX1hOQUNLMAorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9YTkFDSzBfX1hOQUNLX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfWE5BQ0swX19YTkFDS19BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfVVRDTDFfV1JfWE5BQ0sxCisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1VUQ0wxX1dSX1hOQUNLMV9fSVNfWE5BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19WRUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkYwMEwKKyNkZWZpbmUgU0RNQTRfVVRDTDFfV1JfWE5BQ0sxX19JU19YTkFDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKy8vU0RNQTRfVVRDTDFfVElNRU9VVAorI2RlZmluZSBTRE1BNF9VVENMMV9USU1FT1VUX19SRF9YTkFDS19MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVVRDTDFfVElNRU9VVF9fV1JfWE5BQ0tfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9VVENMMV9USU1FT1VUX19SRF9YTkFDS19MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BNF9VVENMMV9USU1FT1VUX19XUl9YTkFDS19MSU1JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9VVENMMV9QQUdFCisjZGVmaW5lIFNETUE0X1VUQ0wxX1BBR0VfX1ZNX0hPTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9VVENMMV9QQUdFX19SRVFfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfVVRDTDFfUEFHRV9fVVNFX01UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE0X1VUQ0wxX1BBR0VfX1VTRV9QVF9TTk9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNF9VVENMMV9QQUdFX19WTV9IT0xFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9VVENMMV9QQUdFX19SRVFfVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFFTAorI2RlZmluZSBTRE1BNF9VVENMMV9QQUdFX19VU0VfTVRZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorI2RlZmluZSBTRE1BNF9VVENMMV9QQUdFX19VU0VfUFRfU05PT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorLy9TRE1BNF9QT1dFUl9DTlRMX0lETEUKKyNkZWZpbmUgU0RNQTRfUE9XRVJfQ05UTF9JRExFX19ERUxBWTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BPV0VSX0NOVExfSURMRV9fREVMQVkxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTRfUE9XRVJfQ05UTF9JRExFX19ERUxBWTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNF9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BNF9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBTRE1BNF9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwTAorLy9TRE1BNF9SRUxBWF9PUkRFUklOR19MVVQKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JFTEFYX09SREVSSU5HX0xVVF9fQ09QWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNF9SRUxBWF9PUkRFUklOR19MVVRfX1dSSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE0X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9SRUxBWF9PUkRFUklOR19MVVRfX0ZFTkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDc2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE0X1JFTEFYX09SREVSSU5HX0xVVF9fUE9MTF9NRU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9SRUxBWF9PUkRFUklOR19MVVRfX0NPTkRfRVhFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19BVE9NSUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1JFTEFYX09SREVSSU5HX0xVVF9fQ09OU1RfRklMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNF9SRUxBWF9PUkRFUklOR19MVVRfX1BURVBERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19USU1FU1RBTVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE0X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNF9SRUxBWF9PUkRFUklOR19MVVRfX1dPUkxEX1NXSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE0X1JFTEFYX09SREVSSU5HX0xVVF9fUlBUUl9XUkJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19XUFRSX1BPTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNF9SRUxBWF9PUkRFUklOR19MVVRfX0lCX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1JFTEFYX09SREVSSU5HX0xVVF9fUkJfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19DT1BZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19GRU5DRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDc2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19QT0xMX01FTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19DT05EX0VYRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19BVE9NSUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19DT05TVF9GSUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19QVEVQREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19USU1FU1RBTVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwN0ZGQzAwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19XT1JMRF9TV0lUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SUFRSX1dSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19XUFRSX1BPTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19JQl9GRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkVMQVhfT1JERVJJTkdfTFVUX19SQl9GRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTRfQ0hJQ0tFTl9CSVRTXzIKKyNkZWZpbmUgU0RNQTRfQ0hJQ0tFTl9CSVRTXzJfX0YzMl9DTURfUFJPQ19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0NISUNLRU5fQklUU18yX19GMzJfQ01EX1BST0NfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1NETUE0X1NUQVRVUzNfUkVHCisjZGVmaW5lIFNETUE0X1NUQVRVUzNfUkVHX19DTURfT1BfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9TVEFUVVMzX1JFR19fUFJFVl9WTV9DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE0X1NUQVRVUzNfUkVHX19FWENFUFRJT05fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTRfU1RBVFVTM19SRUdfX1FVRVVFX0lEX01BVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNF9TVEFUVVMzX1JFR19fSU5UX1FVRVVFX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE0X1NUQVRVUzNfUkVHX19DTURfT1BfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUE0X1NUQVRVUzNfUkVHX19QUkVWX1ZNX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIFNETUE0X1NUQVRVUzNfUkVHX19FWENFUFRJT05fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE0X1NUQVRVUzNfUkVHX19RVUVVRV9JRF9NQVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE0X1NUQVRVUzNfUkVHX19JTlRfUVVFVUVfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNDMDAwMDBMCisvL1NETUE0X1BIWVNJQ0FMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUEhZU0lDQUxfQUREUl9MT19fRF9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BIWVNJQ0FMX0FERFJfTE9fX0RJUlRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNF9QSFlTSUNBTF9BRERSX0xPX19QSFlfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUEhZU0lDQUxfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE0X1BIWVNJQ0FMX0FERFJfTE9fX0RfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1BIWVNJQ0FMX0FERFJfTE9fX0RJUlRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE0X1BIWVNJQ0FMX0FERFJfTE9fX1BIWV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1BIWVNJQ0FMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDBMCisvL1NETUE0X1BIWVNJQ0FMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTRfUEhZU0lDQUxfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BIWVNJQ0FMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1NETUE0X1BIQVNFMl9RVUFOVFVNCisjZGVmaW5lIFNETUE0X1BIQVNFMl9RVUFOVFVNX19VTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QSEFTRTJfUVVBTlRVTV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUEhBU0UyX1FVQU5UVU1fX1BSRUZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNF9QSEFTRTJfUVVBTlRVTV9fVU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BNF9QSEFTRTJfUVVBTlRVTV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRjAwTAorI2RlZmluZSBTRE1BNF9QSEFTRTJfUVVBTlRVTV9fUFJFRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNF9FUlJPUl9MT0cKKyNkZWZpbmUgU0RNQTRfRVJST1JfTE9HX19PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0VSUk9SX0xPR19fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTRfRVJST1JfTE9HX19PVkVSUklERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTRfRVJST1JfTE9HX19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTRfUFVCX0RVTU1ZX1JFRzAKKyNkZWZpbmUgU0RNQTRfUFVCX0RVTU1ZX1JFRzBfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BVQl9EVU1NWV9SRUcwX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1BVQl9EVU1NWV9SRUcxCisjZGVmaW5lIFNETUE0X1BVQl9EVU1NWV9SRUcxX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QVUJfRFVNTVlfUkVHMV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9QVUJfRFVNTVlfUkVHMgorI2RlZmluZSBTRE1BNF9QVUJfRFVNTVlfUkVHMl9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUFVCX0RVTU1ZX1JFRzJfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUFVCX0RVTU1ZX1JFRzMKKyNkZWZpbmUgU0RNQTRfUFVCX0RVTU1ZX1JFRzNfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BVQl9EVU1NWV9SRUczX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0YzMl9DT1VOVEVSCisjZGVmaW5lIFNETUE0X0YzMl9DT1VOVEVSX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9GMzJfQ09VTlRFUl9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9VTkJSRUFLQUJMRQorI2RlZmluZSBTRE1BNF9VTkJSRUFLQUJMRV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfVU5CUkVBS0FCTEVfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUEVSRk1PTl9DTlRMCisjZGVmaW5lIFNETUE0X1BFUkZNT05fQ05UTF9fUEVSRl9FTkFCTEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUEVSRk1PTl9DTlRMX19QRVJGX1NFTDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1BFUkZNT05fQ05UTF9fUEVSRl9FTkFCTEUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNF9QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTRfUEVSRk1PTl9DTlRMX19QRVJGX1NFTDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE0X1BFUkZNT05fQ05UTF9fUEVSRl9FTkFCTEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1BFUkZNT05fQ05UTF9fUEVSRl9DTEVBUjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE0X1BFUkZNT05fQ05UTF9fUEVSRl9TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkNMCisjZGVmaW5lIFNETUE0X1BFUkZNT05fQ05UTF9fUEVSRl9FTkFCTEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE0X1BFUkZNT05fQ05UTF9fUEVSRl9DTEVBUjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE0X1BFUkZNT05fQ05UTF9fUEVSRl9TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkYwMDBMCisvL1NETUE0X1BFUkZDT1VOVEVSMF9SRVNVTFQKKyNkZWZpbmUgU0RNQTRfUEVSRkNPVU5URVIwX1JFU1VMVF9fUEVSRl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BFUkZDT1VOVEVSMF9SRVNVTFRfX1BFUkZfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1BFUkZDT1VOVEVSMV9SRVNVTFQKKyNkZWZpbmUgU0RNQTRfUEVSRkNPVU5URVIxX1JFU1VMVF9fUEVSRl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BFUkZDT1VOVEVSMV9SRVNVTFRfX1BFUkZfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRQorI2RlZmluZSBTRE1BNF9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0xPV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19SQU5HRV9ISUdIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE0X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fU0VMRUNUX1JXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTRfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19SQU5HRV9MT1dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0ZGRkwKKyNkZWZpbmUgU0RNQTRfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19SQU5HRV9ISUdIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGQzAwMEwKKyNkZWZpbmUgU0RNQTRfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19TRUxFQ1RfUldfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKy8vU0RNQTRfQ1JEX0NOVEwKKyNkZWZpbmUgU0RNQTRfQ1JEX0NOVExfX01DX1dSUkVRX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X0NSRF9DTlRMX19NQ19SRFJFUV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNF9DUkRfQ05UTF9fTUNfV1JSRVFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjgwTAorI2RlZmluZSBTRE1BNF9DUkRfQ05UTF9fTUNfUkRSRVFfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdFMDAwTAorLy9TRE1BNF9HUFVfSU9WX1ZJT0xBVElPTl9MT0cKKyNkZWZpbmUgU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WSU9MQVRJT05fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fTVVMVElQTEVfVklPTEFUSU9OX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNF9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX0FERFJFU1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19XUklURV9PUEVSQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNF9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE0X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WSU9MQVRJT05fU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19NVUxUSVBMRV9WSU9MQVRJT05fU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19BRERSRVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGQ0wKKyNkZWZpbmUgU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19XUklURV9PUEVSQVRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTRfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WRklEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0MwMDAwMEwKKy8vU0RNQTRfVUxWX0NOVEwKKyNkZWZpbmUgU0RNQTRfVUxWX0NOVExfX0hZU1RFUkVTSVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTRfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9VTFZfQ05UTF9fRU5URVJfVUxWX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE0X1VMVl9DTlRMX19FWElUX1VMVl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTRfVUxWX0NOVExfX1VMVl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNF9VTFZfQ05UTF9fSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBTRE1BNF9VTFZfQ05UTF9fRU5URVJfVUxWX0lOVF9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BNF9VTFZfQ05UTF9fRVhJVF9VTFZfSU5UX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9VTFZfQ05UTF9fRU5URVJfVUxWX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9VTFZfQ05UTF9fRVhJVF9VTFZfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9VTFZfQ05UTF9fVUxWX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNF9FQV9EQklUX0FERFJfREFUQQorI2RlZmluZSBTRE1BNF9FQV9EQklUX0FERFJfREFUQV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfRUFfREJJVF9BRERSX0RBVEFfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfRUFfREJJVF9BRERSX0lOREVYCisjZGVmaW5lIFNETUE0X0VBX0RCSVRfQUREUl9JTkRFWF9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9FQV9EQklUX0FERFJfSU5ERVhfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorLy9TRE1BNF9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyCisjZGVmaW5lIFNETUE0X0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfX0lOSVRJQVRPUl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX19JTklUSUFUT1JfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TRE1BNF9HRlhfUkJfQ05UTAorI2RlZmluZSBTRE1BNF9HRlhfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNF9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNF9HRlhfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE0X0dGWF9SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE0X0dGWF9SQl9CQVNFCisjZGVmaW5lIFNETUE0X0dGWF9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9HRlhfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9HRlhfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9HRlhfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTRfR0ZYX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X0dGWF9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9HRlhfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9HRlhfUkJfV1BUUgorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfR0ZYX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9HRlhfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE0X0dGWF9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9HRlhfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9HRlhfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE0X0dGWF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9HRlhfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfR0ZYX0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfR0ZYX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9HRlhfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfR0ZYX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9HRlhfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9HRlhfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9HRlhfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9HRlhfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9HRlhfSUJfUlBUUgorI2RlZmluZSBTRE1BNF9HRlhfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfR0ZYX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTRfR0ZYX0lCX09GRlNFVAorI2RlZmluZSBTRE1BNF9HRlhfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfR0ZYX0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTRfR0ZYX0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfR0ZYX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X0dGWF9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X0dGWF9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE0X0dGWF9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9HRlhfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9HRlhfSUJfU0laRQorI2RlZmluZSBTRE1BNF9HRlhfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfR0ZYX1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9HRlhfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE0X0dGWF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9HRlhfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE0X0dGWF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNF9HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTRfR0ZYX0RPT1JCRUxMCisjZGVmaW5lIFNETUE0X0dGWF9ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTRfR0ZYX0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNF9HRlhfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNF9HRlhfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNF9HRlhfQ09OVEVYVF9DTlRMCisjZGVmaW5lIFNETUE0X0dGWF9DT05URVhUX0NOVExfX1JFU1VNRV9DVFhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTRfR0ZYX0NPTlRFWFRfQ05UTF9fUkVTVU1FX0NUWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKy8vU0RNQTRfR0ZYX1NUQVRVUworI2RlZmluZSBTRE1BNF9HRlhfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X0dGWF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE0X0dGWF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE0X0dGWF9ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfR0ZYX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9HRlhfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9HRlhfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9HRlhfV0FURVJNQVJLCisjZGVmaW5lIFNETUE0X0dGWF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9HRlhfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE0X0dGWF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE0X0dGWF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE0X0dGWF9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTRfR0ZYX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X0dGWF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE0X0dGWF9DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9HRlhfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfR0ZYX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfR0ZYX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE0X0dGWF9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9HRlhfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9HRlhfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNF9HRlhfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfR0ZYX1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfR0ZYX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X0dGWF9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTRfR0ZYX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9HRlhfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNF9HRlhfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTRfR0ZYX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTRfR0ZYX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTRfR0ZYX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X0dGWF9NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X0dGWF9NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9HRlhfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X0dGWF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9HRlhfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfR0ZYX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUEFHRV9SQl9DTlRMCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X1BBR0VfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTRfUEFHRV9SQl9CQVNFCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9QQUdFX1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE0X1BBR0VfUkJfUlBUUgorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUEFHRV9SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9QQUdFX1JCX1dQVFIKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1BBR0VfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUEFHRV9SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9QQUdFX1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUEFHRV9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9QQUdFX0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfUEFHRV9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BBR0VfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9QQUdFX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUEFHRV9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9QQUdFX0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9QQUdFX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9QQUdFX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9QQUdFX0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9QQUdFX0lCX1JQVFIKKyNkZWZpbmUgU0RNQTRfUEFHRV9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1BBR0VfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE0X1BBR0VfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE0X1BBR0VfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9QQUdFX0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNF9QQUdFX0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfUEFHRV9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1BBR0VfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X1BBR0VfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9QQUdFX0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUEFHRV9JQl9TSVpFCisjZGVmaW5lIFNETUE0X1BBR0VfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9QQUdFX1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9QQUdFX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfUEFHRV9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNF9QQUdFX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9QQUdFX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1BBR0VfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE0X1BBR0VfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTRfUEFHRV9ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9QQUdFX0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1BBR0VfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1BBR0VfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X1BBR0VfU1RBVFVTCisjZGVmaW5lIFNETUE0X1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUEFHRV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTRfUEFHRV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUEFHRV9ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfUEFHRV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BBR0VfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9QQUdFX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9QQUdFX0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9QQUdFX1dBVEVSTUFSSworI2RlZmluZSBTRE1BNF9QQUdFX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9QQUdFX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNF9QQUdFX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNF9QQUdFX0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNF9QQUdFX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUEFHRV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTRfUEFHRV9DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9QQUdFX0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUEFHRV9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfUEFHRV9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNF9QQUdFX0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUEFHRV9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE0X1BBR0VfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9QQUdFX1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfUEFHRV9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BBR0VfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X1BBR0VfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE0X1BBR0VfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9QQUdFX1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUEFHRV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1BBR0VfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE0X1BBR0VfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE0X1BBR0VfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNF9QQUdFX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUEFHRV9NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BBR0VfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1BBR0VfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE0X1BBR0VfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9QQUdFX01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNF9QQUdFX01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUEFHRV9NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BBR0VfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1BBR0VfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE0X1BBR0VfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9QQUdFX01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNF9QQUdFX01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUEFHRV9NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1BBR0VfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1BBR0VfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE0X1BBR0VfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9QQUdFX01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9QQUdFX01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNF9QQUdFX01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUEFHRV9NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9QQUdFX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1BBR0VfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9QQUdFX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfUEFHRV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDMF9SQl9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMwX1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X1JMQzBfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTRfUkxDMF9SQl9CQVNFCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMwX1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE0X1JMQzBfUkJfUlBUUgorI2RlZmluZSBTRE1BNF9STEMwX1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMF9SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMwX1JCX1dQVFIKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzBfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMF9SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9STEMwX1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEMwX1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMF9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMwX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMwX1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMwX0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfUkxDMF9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzBfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEMwX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDMF9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMwX0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMwX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9STEMwX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9STEMwX0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9STEMwX0lCX1JQVFIKKyNkZWZpbmUgU0RNQTRfUkxDMF9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzBfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE0X1JMQzBfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE0X1JMQzBfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMwX0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNF9STEMwX0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfUkxDMF9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1JMQzBfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X1JMQzBfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9STEMwX0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMF9JQl9TSVpFCisjZGVmaW5lIFNETUE0X1JMQzBfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEMwX1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9STEMwX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfUkxDMF9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNF9STEMwX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9STEMwX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1JMQzBfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE0X1JMQzBfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTRfUkxDMF9ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9STEMwX0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1JMQzBfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1JMQzBfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X1JMQzBfU1RBVFVTCisjZGVmaW5lIFNETUE0X1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDMF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTRfUkxDMF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDMF9ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfUkxDMF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzBfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMwX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMwX0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMwX1dBVEVSTUFSSworI2RlZmluZSBTRE1BNF9STEMwX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMwX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNF9STEMwX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNF9STEMwX0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNF9STEMwX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDMF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTRfUkxDMF9DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9STEMwX0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDMF9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfUkxDMF9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEMwX0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMF9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE0X1JMQzBfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEMwX1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfUkxDMF9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzBfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X1JMQzBfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE0X1JMQzBfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMwX1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDMF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1JMQzBfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE0X1JMQzBfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE0X1JMQzBfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNF9STEMwX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUkxDMF9NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzBfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzBfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE0X1JMQzBfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMwX01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNF9STEMwX01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMF9NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzBfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzBfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE0X1JMQzBfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMwX01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNF9STEMwX01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMF9NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzBfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzBfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE0X1JMQzBfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMwX01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMwX01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNF9STEMwX01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMF9NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9STEMwX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzBfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEMwX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfUkxDMF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDMV9SQl9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMxX1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X1JMQzFfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTRfUkxDMV9SQl9CQVNFCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMxX1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE0X1JMQzFfUkJfUlBUUgorI2RlZmluZSBTRE1BNF9STEMxX1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMV9SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMxX1JCX1dQVFIKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzFfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMV9SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9STEMxX1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEMxX1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMV9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMxX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMxX1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMxX0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfUkxDMV9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzFfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEMxX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDMV9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMxX0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMxX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9STEMxX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9STEMxX0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9STEMxX0lCX1JQVFIKKyNkZWZpbmUgU0RNQTRfUkxDMV9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzFfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE0X1JMQzFfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE0X1JMQzFfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMxX0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNF9STEMxX0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfUkxDMV9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1JMQzFfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X1JMQzFfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9STEMxX0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMV9JQl9TSVpFCisjZGVmaW5lIFNETUE0X1JMQzFfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEMxX1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9STEMxX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfUkxDMV9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNF9STEMxX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9STEMxX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1JMQzFfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE0X1JMQzFfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTRfUkxDMV9ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9STEMxX0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1JMQzFfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1JMQzFfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X1JMQzFfU1RBVFVTCisjZGVmaW5lIFNETUE0X1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDMV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTRfUkxDMV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDMV9ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfUkxDMV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzFfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMxX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMxX0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMxX1dBVEVSTUFSSworI2RlZmluZSBTRE1BNF9STEMxX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMxX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNF9STEMxX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNF9STEMxX0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNF9STEMxX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDMV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTRfUkxDMV9DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9STEMxX0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDMV9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfUkxDMV9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEMxX0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMV9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE0X1JMQzFfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEMxX1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfUkxDMV9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzFfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X1JMQzFfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE0X1JMQzFfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMxX1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDMV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1JMQzFfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE0X1JMQzFfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE0X1JMQzFfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNF9STEMxX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUkxDMV9NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzFfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzFfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE0X1JMQzFfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMxX01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNF9STEMxX01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMV9NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzFfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzFfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE0X1JMQzFfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMxX01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNF9STEMxX01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMV9NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzFfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzFfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE0X1JMQzFfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMxX01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMxX01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNF9STEMxX01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMV9NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9STEMxX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzFfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEMxX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfUkxDMV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDMl9SQl9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMyX1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X1JMQzJfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTRfUkxDMl9SQl9CQVNFCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMyX1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE0X1JMQzJfUkJfUlBUUgorI2RlZmluZSBTRE1BNF9STEMyX1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMl9SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMyX1JCX1dQVFIKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzJfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMl9SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9STEMyX1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEMyX1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMl9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMyX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMyX1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMyX0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfUkxDMl9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzJfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEMyX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDMl9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMyX0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMyX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9STEMyX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9STEMyX0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9STEMyX0lCX1JQVFIKKyNkZWZpbmUgU0RNQTRfUkxDMl9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzJfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE0X1JMQzJfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE0X1JMQzJfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMyX0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNF9STEMyX0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfUkxDMl9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1JMQzJfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X1JMQzJfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9STEMyX0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMl9JQl9TSVpFCisjZGVmaW5lIFNETUE0X1JMQzJfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEMyX1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9STEMyX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfUkxDMl9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNF9STEMyX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9STEMyX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1JMQzJfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE0X1JMQzJfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTRfUkxDMl9ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9STEMyX0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1JMQzJfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1JMQzJfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X1JMQzJfU1RBVFVTCisjZGVmaW5lIFNETUE0X1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDMl9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTRfUkxDMl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDMl9ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfUkxDMl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzJfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMyX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMyX0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMyX1dBVEVSTUFSSworI2RlZmluZSBTRE1BNF9STEMyX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMyX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNF9STEMyX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNF9STEMyX0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNF9STEMyX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDMl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTRfUkxDMl9DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9STEMyX0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDMl9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfUkxDMl9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEMyX0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMl9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE0X1JMQzJfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEMyX1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfUkxDMl9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzJfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X1JMQzJfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE0X1JMQzJfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMyX1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDMl9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1JMQzJfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE0X1JMQzJfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE0X1JMQzJfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNF9STEMyX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUkxDMl9NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzJfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzJfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE0X1JMQzJfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMyX01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNF9STEMyX01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMl9NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzJfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzJfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE0X1JMQzJfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMyX01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNF9STEMyX01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMl9NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzJfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzJfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE0X1JMQzJfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMyX01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMyX01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNF9STEMyX01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDMl9NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9STEMyX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzJfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEMyX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfUkxDMl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDM19SQl9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMzX1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X1JMQzNfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTRfUkxDM19SQl9CQVNFCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMzX1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE0X1JMQzNfUkJfUlBUUgorI2RlZmluZSBTRE1BNF9STEMzX1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDM19SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMzX1JCX1dQVFIKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzNfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDM19SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9STEMzX1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEMzX1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDM19SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMzX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMzX1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMzX0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfUkxDM19JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzNfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEMzX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDM19JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMzX0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMzX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9STEMzX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9STEMzX0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9STEMzX0lCX1JQVFIKKyNkZWZpbmUgU0RNQTRfUkxDM19JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzNfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE0X1JMQzNfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE0X1JMQzNfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMzX0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNF9STEMzX0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfUkxDM19JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1JMQzNfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X1JMQzNfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9STEMzX0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDM19JQl9TSVpFCisjZGVmaW5lIFNETUE0X1JMQzNfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEMzX1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9STEMzX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfUkxDM19DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNF9STEMzX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9STEMzX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1JMQzNfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE0X1JMQzNfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTRfUkxDM19ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9STEMzX0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1JMQzNfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1JMQzNfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X1JMQzNfU1RBVFVTCisjZGVmaW5lIFNETUE0X1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDM19TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTRfUkxDM19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDM19ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfUkxDM19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzNfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMzX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEMzX0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMzX1dBVEVSTUFSSworI2RlZmluZSBTRE1BNF9STEMzX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEMzX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNF9STEMzX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNF9STEMzX0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNF9STEMzX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDM19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTRfUkxDM19DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9STEMzX0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDM19DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfUkxDM19DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEMzX0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDM19JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE0X1JMQzNfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEMzX1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfUkxDM19QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzNfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X1JMQzNfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE0X1JMQzNfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEMzX1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDM19SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1JMQzNfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE0X1JMQzNfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE0X1JMQzNfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNF9STEMzX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUkxDM19NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzNfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzNfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE0X1JMQzNfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMzX01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNF9STEMzX01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDM19NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzNfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzNfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE0X1JMQzNfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMzX01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNF9STEMzX01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDM19NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzNfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzNfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE0X1JMQzNfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEMzX01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEMzX01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNF9STEMzX01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDM19NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9STEMzX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzNfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEMzX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfUkxDM19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDNF9SQl9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM0X1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X1JMQzRfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTRfUkxDNF9SQl9CQVNFCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM0X1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE0X1JMQzRfUkJfUlBUUgorI2RlZmluZSBTRE1BNF9STEM0X1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNF9SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM0X1JCX1dQVFIKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzRfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNF9SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9STEM0X1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEM0X1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNF9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM0X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM0X1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM0X0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfUkxDNF9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzRfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEM0X0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDNF9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM0X0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM0X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9STEM0X0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9STEM0X0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9STEM0X0lCX1JQVFIKKyNkZWZpbmUgU0RNQTRfUkxDNF9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzRfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE0X1JMQzRfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE0X1JMQzRfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM0X0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNF9STEM0X0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfUkxDNF9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1JMQzRfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X1JMQzRfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9STEM0X0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNF9JQl9TSVpFCisjZGVmaW5lIFNETUE0X1JMQzRfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEM0X1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9STEM0X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfUkxDNF9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNF9STEM0X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9STEM0X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1JMQzRfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE0X1JMQzRfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTRfUkxDNF9ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9STEM0X0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1JMQzRfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1JMQzRfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X1JMQzRfU1RBVFVTCisjZGVmaW5lIFNETUE0X1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDNF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTRfUkxDNF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDNF9ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfUkxDNF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzRfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM0X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM0X0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM0X1dBVEVSTUFSSworI2RlZmluZSBTRE1BNF9STEM0X1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM0X1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNF9STEM0X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNF9STEM0X0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNF9STEM0X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDNF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTRfUkxDNF9DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9STEM0X0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDNF9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfUkxDNF9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEM0X0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNF9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE0X1JMQzRfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEM0X1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfUkxDNF9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzRfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X1JMQzRfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE0X1JMQzRfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM0X1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDNF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1JMQzRfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE0X1JMQzRfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE0X1JMQzRfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNF9STEM0X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUkxDNF9NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzRfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzRfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE0X1JMQzRfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM0X01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNF9STEM0X01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNF9NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzRfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzRfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE0X1JMQzRfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM0X01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNF9STEM0X01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNF9NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzRfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzRfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE0X1JMQzRfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM0X01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM0X01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNF9STEM0X01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNF9NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9STEM0X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzRfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEM0X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfUkxDNF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDNV9SQl9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM1X1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X1JMQzVfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTRfUkxDNV9SQl9CQVNFCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM1X1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE0X1JMQzVfUkJfUlBUUgorI2RlZmluZSBTRE1BNF9STEM1X1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNV9SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM1X1JCX1dQVFIKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzVfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNV9SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9STEM1X1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEM1X1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNV9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM1X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM1X1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM1X0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfUkxDNV9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzVfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEM1X0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDNV9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM1X0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM1X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9STEM1X0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9STEM1X0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9STEM1X0lCX1JQVFIKKyNkZWZpbmUgU0RNQTRfUkxDNV9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzVfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE0X1JMQzVfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE0X1JMQzVfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM1X0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNF9STEM1X0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfUkxDNV9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1JMQzVfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X1JMQzVfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9STEM1X0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNV9JQl9TSVpFCisjZGVmaW5lIFNETUE0X1JMQzVfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEM1X1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9STEM1X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfUkxDNV9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNF9STEM1X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9STEM1X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1JMQzVfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE0X1JMQzVfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTRfUkxDNV9ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9STEM1X0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1JMQzVfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1JMQzVfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X1JMQzVfU1RBVFVTCisjZGVmaW5lIFNETUE0X1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDNV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTRfUkxDNV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDNV9ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfUkxDNV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzVfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM1X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM1X0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM1X1dBVEVSTUFSSworI2RlZmluZSBTRE1BNF9STEM1X1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM1X1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNF9STEM1X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNF9STEM1X0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNF9STEM1X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDNV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTRfUkxDNV9DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9STEM1X0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDNV9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfUkxDNV9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEM1X0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNV9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE0X1JMQzVfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEM1X1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfUkxDNV9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzVfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X1JMQzVfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE0X1JMQzVfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM1X1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDNV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1JMQzVfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE0X1JMQzVfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE0X1JMQzVfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNF9STEM1X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUkxDNV9NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzVfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzVfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE0X1JMQzVfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM1X01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNF9STEM1X01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNV9NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzVfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzVfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE0X1JMQzVfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM1X01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNF9STEM1X01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNV9NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzVfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzVfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE0X1JMQzVfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM1X01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM1X01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNF9STEM1X01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNV9NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9STEM1X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzVfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEM1X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfUkxDNV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDNl9SQl9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM2X1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X1JMQzZfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTRfUkxDNl9SQl9CQVNFCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM2X1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE0X1JMQzZfUkJfUlBUUgorI2RlZmluZSBTRE1BNF9STEM2X1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNl9SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM2X1JCX1dQVFIKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzZfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNl9SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9STEM2X1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEM2X1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNl9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM2X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM2X1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM2X0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfUkxDNl9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzZfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEM2X0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDNl9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM2X0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM2X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9STEM2X0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9STEM2X0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9STEM2X0lCX1JQVFIKKyNkZWZpbmUgU0RNQTRfUkxDNl9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzZfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE0X1JMQzZfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE0X1JMQzZfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM2X0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNF9STEM2X0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfUkxDNl9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1JMQzZfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X1JMQzZfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9STEM2X0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNl9JQl9TSVpFCisjZGVmaW5lIFNETUE0X1JMQzZfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEM2X1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9STEM2X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfUkxDNl9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNF9STEM2X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9STEM2X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1JMQzZfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE0X1JMQzZfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTRfUkxDNl9ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9STEM2X0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1JMQzZfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1JMQzZfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X1JMQzZfU1RBVFVTCisjZGVmaW5lIFNETUE0X1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDNl9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTRfUkxDNl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDNl9ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfUkxDNl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzZfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM2X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM2X0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM2X1dBVEVSTUFSSworI2RlZmluZSBTRE1BNF9STEM2X1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM2X1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNF9STEM2X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNF9STEM2X0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNF9STEM2X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDNl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTRfUkxDNl9DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9STEM2X0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDNl9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfUkxDNl9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEM2X0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNl9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE0X1JMQzZfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEM2X1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfUkxDNl9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzZfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X1JMQzZfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE0X1JMQzZfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM2X1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDNl9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1JMQzZfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE0X1JMQzZfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE0X1JMQzZfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNF9STEM2X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUkxDNl9NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzZfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzZfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE0X1JMQzZfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM2X01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNF9STEM2X01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNl9NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzZfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzZfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE0X1JMQzZfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM2X01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNF9STEM2X01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNl9NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzZfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzZfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE0X1JMQzZfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM2X01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM2X01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNF9STEM2X01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDNl9NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9STEM2X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzZfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEM2X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfUkxDNl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDN19SQl9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfQ05UTF9fUkJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X1JCX0NOVExfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE0X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNF9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM3X1JCX0NOVExfX1JCX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE0X1JMQzdfUkJfQ05UTF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SQl9QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9DTlRMX19SQl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTRfUkxDN19SQl9CQVNFCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM3X1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE0X1JMQzdfUkJfUlBUUgorI2RlZmluZSBTRE1BNF9STEM3X1JCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDN19SQl9SUFRSX0hJCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM3X1JCX1dQVFIKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzdfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9XUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDN19SQl9XUFRSX1BPTExfQ05UTAorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkYwTAorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNF9STEM3X1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEM3X1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDN19SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfUlBUUl9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM3X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM3X1JCX1JQVFJfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM3X0lCX0NOVEwKKyNkZWZpbmUgU0RNQTRfUkxDN19JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzdfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEM3X0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDN19JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM3X0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM3X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNF9STEM3X0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNF9STEM3X0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9TRE1BNF9STEM3X0lCX1JQVFIKKyNkZWZpbmUgU0RNQTRfUkxDN19JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzdfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE0X1JMQzdfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE0X1JMQzdfSUJfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM3X0lCX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNF9STEM3X0lCX0JBU0VfTE8KKyNkZWZpbmUgU0RNQTRfUkxDN19JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE0X1JMQzdfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRTBMCisvL1NETUE0X1JMQzdfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNF9STEM3X0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDN19JQl9TSVpFCisjZGVmaW5lIFNETUE0X1JMQzdfSUJfU0laRV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X0lCX1NJWkVfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEM3X1NLSVBfQ05UTAorI2RlZmluZSBTRE1BNF9STEM3X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTRfUkxDN19DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNF9STEM3X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNF9STEM3X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTRfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNF9STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTRfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE0X1JMQzdfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE0X1JMQzdfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTRfUkxDN19ET09SQkVMTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNF9STEM3X0RPT1JCRUxMX19DQVBUVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE0X1JMQzdfRE9PUkJFTExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE0X1JMQzdfRE9PUkJFTExfX0NBUFRVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE0X1JMQzdfU1RBVFVTCisjZGVmaW5lIFNETUE0X1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDN19TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTRfUkxDN19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTRfUkxDN19ET09SQkVMTF9MT0cKKyNkZWZpbmUgU0RNQTRfUkxDN19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzdfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM3X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNF9STEM3X0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM3X1dBVEVSTUFSSworI2RlZmluZSBTRE1BNF9STEM3X1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNF9STEM3X1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNF9STEM3X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNF9STEM3X0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNF9STEM3X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDN19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTRfUkxDN19DU0FfQUREUl9MTworI2RlZmluZSBTRE1BNF9STEM3X0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTRfUkxDN19DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTRfUkxDN19DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNF9STEM3X0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDN19JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE0X1JMQzdfSUJfU1VCX1JFTUFJTl9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X0lCX1NVQl9SRU1BSU5fX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNF9STEM3X1BSRUVNUFQKKyNkZWZpbmUgU0RNQTRfUkxDN19QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzdfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE0X1JMQzdfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE0X1JMQzdfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNF9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNF9STEM3X1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTRfUkxDN19SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE0X1JMQzdfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE0X1JMQzdfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE0X1JMQzdfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNF9STEM3X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTRfUkxDN19NSURDTURfREFUQTAKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzdfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzdfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE0X1JMQzdfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM3X01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNF9STEM3X01JRENNRF9EQVRBMl9fREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfREFUQTJfX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDN19NSURDTURfREFUQTMKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzdfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzdfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE0X1JMQzdfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM3X01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNF9STEM3X01JRENNRF9EQVRBNV9fREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfREFUQTVfX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDN19NSURDTURfREFUQTYKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE0X1JMQzdfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE0X1JMQzdfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE0X1JMQzdfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNF9STEM3X01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNF9STEM3X01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNF9STEM3X01JRENNRF9EQVRBOF9fREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfREFUQThfX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTRfUkxDN19NSURDTURfQ05UTAorI2RlZmluZSBTRE1BNF9STEM3X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE0X1JMQzdfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNF9STEM3X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTRfUkxDN19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTUvc2RtYTVfNF8yXzJfb2Zmc2V0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTUvc2RtYTVfNF8yXzJfb2Zmc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNiNTFiOQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hNS9zZG1hNV80XzJfMl9vZmZzZXQuaApAQCAtMCwwICsxLDEwNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX3NkbWE1XzRfMl8yX09GRlNFVF9IRUFERVIKKyNkZWZpbmUgX3NkbWE1XzRfMl8yX09GRlNFVF9IRUFERVIKKworCisKKy8vIGFkZHJlc3NCbG9jazogc2RtYTVfc2RtYTVkZWMKKy8vIGJhc2UgYWRkcmVzczogMHg3YjAwMAorI2RlZmluZSBtbVNETUE1X1VDT0RFX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBtbVNETUE1X1VDT0RFX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9VQ09ERV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgbW1TRE1BNV9VQ09ERV9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfVk1fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIG1tU0RNQTVfVk1fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1ZNX0NUWF9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBtbVNETUE1X1ZNX0NUWF9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9WTV9DVFhfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgbW1TRE1BNV9WTV9DVFhfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfQUNUSVZFX0ZDTl9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIG1tU0RNQTVfQUNUSVZFX0ZDTl9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1ZNX0NUWF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOAorI2RlZmluZSBtbVNETUE1X1ZNX0NUWF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9WSVJUX1JFU0VUX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDkKKyNkZWZpbmUgbW1TRE1BNV9WSVJUX1JFU0VUX1JFUV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfVkZfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBhCisjZGVmaW5lIG1tU0RNQTVfVkZfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0NPTlRFWFRfUkVHX1RZUEUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYgorI2RlZmluZSBtbVNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9DT05URVhUX1JFR19UWVBFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGMKKyNkZWZpbmUgbW1TRE1BNV9DT05URVhUX1JFR19UWVBFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBkCisjZGVmaW5lIG1tU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0NPTlRFWFRfUkVHX1RZUEUzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZQorI2RlZmluZSBtbVNETUE1X0NPTlRFWFRfUkVHX1RZUEUzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QVUJfUkVHX1RZUEUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGYKKyNkZWZpbmUgbW1TRE1BNV9QVUJfUkVHX1RZUEUwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUFVCX1JFR19UWVBFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwCisjZGVmaW5lIG1tU0RNQTVfUFVCX1JFR19UWVBFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BVQl9SRUdfVFlQRTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMQorI2RlZmluZSBtbVNETUE1X1BVQl9SRUdfVFlQRTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QVUJfUkVHX1RZUEUzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTIKKyNkZWZpbmUgbW1TRE1BNV9QVUJfUkVHX1RZUEUzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfTU1IVUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEzCisjZGVmaW5lIG1tU0RNQTVfTU1IVUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0NPTlRFWFRfR1JPVVBfQk9VTkRBUlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxOQorI2RlZmluZSBtbVNETUE1X0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QT1dFUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWEKKyNkZWZpbmUgbW1TRE1BNV9QT1dFUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfQ0xLX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFiCisjZGVmaW5lIG1tU0RNQTVfQ0xLX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYworI2RlZmluZSBtbVNETUE1X0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9DSElDS0VOX0JJVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWQKKyNkZWZpbmUgbW1TRE1BNV9DSElDS0VOX0JJVFNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0JfQUREUl9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFlCisjZGVmaW5lIG1tU0RNQTVfR0JfQUREUl9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dCX0FERFJfQ09ORklHX1JFQUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZgorI2RlZmluZSBtbVNETUE1X0dCX0FERFJfQ09ORklHX1JFQURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9SQl9SUFRSX0ZFVENIX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgbW1TRE1BNV9SQl9SUFRSX0ZFVENIX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIxCisjZGVmaW5lIG1tU0RNQTVfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JCX1JQVFJfRkVUQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMgorI2RlZmluZSBtbVNETUE1X1JCX1JQVFJfRkVUQ0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9JQl9PRkZTRVRfRkVUQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgbW1TRE1BNV9JQl9PRkZTRVRfRkVUQ0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUFJPR1JBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI0CisjZGVmaW5lIG1tU0RNQTVfUFJPR1JBTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1NUQVRVU19SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNQorI2RlZmluZSBtbVNETUE1X1NUQVRVU19SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9TVEFUVVMxX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjYKKyNkZWZpbmUgbW1TRE1BNV9TVEFUVVMxX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkRfQlVSU1RfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI3CisjZGVmaW5lIG1tU0RNQTVfUkRfQlVSU1RfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0hCTV9QQUdFX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOAorI2RlZmluZSBtbVNETUE1X0hCTV9QQUdFX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9VQ09ERV9DSEVDS1NVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjkKKyNkZWZpbmUgbW1TRE1BNV9VQ09ERV9DSEVDS1NVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfRjMyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJhCisjZGVmaW5lIG1tU0RNQTVfRjMyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0ZSRUVaRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYgorI2RlZmluZSBtbVNETUE1X0ZSRUVaRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QSEFTRTBfUVVBTlRVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmMKKyNkZWZpbmUgbW1TRE1BNV9QSEFTRTBfUVVBTlRVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEhBU0UxX1FVQU5UVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJkCisjZGVmaW5lIG1tU0RNQTVfUEhBU0UxX1FVQU5UVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0VEQ19DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMgorI2RlZmluZSBtbVNETUE1X0VEQ19DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9CQV9USFJFU0hPTEQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzMKKyNkZWZpbmUgbW1TRE1BNV9CQV9USFJFU0hPTERfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM0CisjZGVmaW5lIG1tU0RNQTVfSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1ZFUlNJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNQorI2RlZmluZSBtbVNETUE1X1ZFUlNJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9FRENfQ09VTlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzYKKyNkZWZpbmUgbW1TRE1BNV9FRENfQ09VTlRFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfRURDX0NPVU5URVJfQ0xFQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM3CisjZGVmaW5lIG1tU0RNQTVfRURDX0NPVU5URVJfQ0xFQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1NUQVRVUzJfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOAorI2RlZmluZSBtbVNETUE1X1NUQVRVUzJfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9BVE9NSUNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzkKKyNkZWZpbmUgbW1TRE1BNV9BVE9NSUNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfQVRPTUlDX1BSRU9QX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNhCisjZGVmaW5lIG1tU0RNQTVfQVRPTUlDX1BSRU9QX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0FUT01JQ19QUkVPUF9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYgorI2RlZmluZSBtbVNETUE1X0FUT01JQ19QUkVPUF9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2MKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfVVRDTDFfV0FURVJNSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNkCisjZGVmaW5lIG1tU0RNQTVfVVRDTDFfV0FURVJNS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1VUQ0wxX1JEX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZQorI2RlZmluZSBtbVNETUE1X1VUQ0wxX1JEX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9XUl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2YKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9XUl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfVVRDTDFfSU5WMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwCisjZGVmaW5lIG1tU0RNQTVfVVRDTDFfSU5WMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1VUQ0wxX0lOVjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MQorI2RlZmluZSBtbVNETUE1X1VUQ0wxX0lOVjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9JTlYyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDIKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9JTlYyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfVVRDTDFfUkRfWE5BQ0swICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQzCisjZGVmaW5lIG1tU0RNQTVfVVRDTDFfUkRfWE5BQ0swX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1VUQ0wxX1JEX1hOQUNLMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NAorI2RlZmluZSBtbVNETUE1X1VUQ0wxX1JEX1hOQUNLMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9XUl9YTkFDSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDUKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9XUl9YTkFDSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfVVRDTDFfV1JfWE5BQ0sxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ2CisjZGVmaW5lIG1tU0RNQTVfVVRDTDFfV1JfWE5BQ0sxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1VUQ0wxX1RJTUVPVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NworI2RlZmluZSBtbVNETUE1X1VUQ0wxX1RJTUVPVVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9QQUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDgKKyNkZWZpbmUgbW1TRE1BNV9VVENMMV9QQUdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUE9XRVJfQ05UTF9JRExFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ5CisjZGVmaW5lIG1tU0RNQTVfUE9XRVJfQ05UTF9JRExFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JFTEFYX09SREVSSU5HX0xVVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YQorI2RlZmluZSBtbVNETUE1X1JFTEFYX09SREVSSU5HX0xVVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9DSElDS0VOX0JJVFNfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGIKKyNkZWZpbmUgbW1TRE1BNV9DSElDS0VOX0JJVFNfMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfU1RBVFVTM19SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRjCisjZGVmaW5lIG1tU0RNQTVfU1RBVFVTM19SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BIWVNJQ0FMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZAorI2RlZmluZSBtbVNETUE1X1BIWVNJQ0FMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QSFlTSUNBTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGUKKyNkZWZpbmUgbW1TRE1BNV9QSFlTSUNBTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEhBU0UyX1FVQU5UVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRmCisjZGVmaW5lIG1tU0RNQTVfUEhBU0UyX1FVQU5UVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0VSUk9SX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MAorI2RlZmluZSBtbVNETUE1X0VSUk9SX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QVUJfRFVNTVlfUkVHMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTEKKyNkZWZpbmUgbW1TRE1BNV9QVUJfRFVNTVlfUkVHMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUFVCX0RVTU1ZX1JFRzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUyCisjZGVmaW5lIG1tU0RNQTVfUFVCX0RVTU1ZX1JFRzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BVQl9EVU1NWV9SRUcyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MworI2RlZmluZSBtbVNETUE1X1BVQl9EVU1NWV9SRUcyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QVUJfRFVNTVlfUkVHMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgbW1TRE1BNV9QVUJfRFVNTVlfUkVHM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfRjMyX0NPVU5URVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU1CisjZGVmaW5lIG1tU0RNQTVfRjMyX0NPVU5URVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1VOQlJFQUtBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NgorI2RlZmluZSBtbVNETUE1X1VOQlJFQUtBQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QRVJGTU9OX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTcKKyNkZWZpbmUgbW1TRE1BNV9QRVJGTU9OX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEVSRkNPVU5URVIwX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU4CisjZGVmaW5lIG1tU0RNQTVfUEVSRkNPVU5URVIwX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BFUkZDT1VOVEVSMV9SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OQorI2RlZmluZSBtbVNETUE1X1BFUkZDT1VOVEVSMV9SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWEKKyNkZWZpbmUgbW1TRE1BNV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfQ1JEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDViCisjZGVmaW5lIG1tU0RNQTVfQ1JEX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dQVV9JT1ZfVklPTEFUSU9OX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZAorI2RlZmluZSBtbVNETUE1X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9VTFZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWUKKyNkZWZpbmUgbW1TRE1BNV9VTFZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfRUFfREJJVF9BRERSX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwCisjZGVmaW5lIG1tU0RNQTVfRUFfREJJVF9BRERSX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0VBX0RCSVRfQUREUl9JTkRFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MQorI2RlZmluZSBtbVNETUE1X0VBX0RCSVRfQUREUl9JTkRFWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjIKKyNkZWZpbmUgbW1TRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MQorI2RlZmluZSBtbVNETUE1X0dGWF9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODIKKyNkZWZpbmUgbW1TRE1BNV9HRlhfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgzCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NAorI2RlZmluZSBtbVNETUE1X0dGWF9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODUKKyNkZWZpbmUgbW1TRE1BNV9HRlhfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg2CisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NworI2RlZmluZSBtbVNETUE1X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODgKKyNkZWZpbmUgbW1TRE1BNV9HRlhfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg5CisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YQorI2RlZmluZSBtbVNETUE1X0dGWF9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGIKKyNkZWZpbmUgbW1TRE1BNV9HRlhfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhjCisjZGVmaW5lIG1tU0RNQTVfR0ZYX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZAorI2RlZmluZSBtbVNETUE1X0dGWF9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGUKKyNkZWZpbmUgbW1TRE1BNV9HRlhfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhmCisjZGVmaW5lIG1tU0RNQTVfR0ZYX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MAorI2RlZmluZSBtbVNETUE1X0dGWF9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkyCisjZGVmaW5lIG1tU0RNQTVfR0ZYX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9DT05URVhUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MworI2RlZmluZSBtbVNETUE1X0dGWF9DT05URVhUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTgKKyNkZWZpbmUgbW1TRE1BNV9HRlhfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE5CisjZGVmaW5lIG1tU0RNQTVfR0ZYX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYQorI2RlZmluZSBtbVNETUE1X0dGWF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWIKKyNkZWZpbmUgbW1TRE1BNV9HRlhfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFjCisjZGVmaW5lIG1tU0RNQTVfR0ZYX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZAorI2RlZmluZSBtbVNETUE1X0dGWF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWYKKyNkZWZpbmUgbW1TRE1BNV9HRlhfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIwCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMQorI2RlZmluZSBtbVNETUE1X0dGWF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjIKKyNkZWZpbmUgbW1TRE1BNV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIzCisjZGVmaW5lIG1tU0RNQTVfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNAorI2RlZmluZSBtbVNETUE1X0dGWF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjUKKyNkZWZpbmUgbW1TRE1BNV9HRlhfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMwCisjZGVmaW5lIG1tU0RNQTVfR0ZYX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMQorI2RlZmluZSBtbVNETUE1X0dGWF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzIKKyNkZWZpbmUgbW1TRE1BNV9HRlhfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMzCisjZGVmaW5lIG1tU0RNQTVfR0ZYX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNAorI2RlZmluZSBtbVNETUE1X0dGWF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzUKKyNkZWZpbmUgbW1TRE1BNV9HRlhfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM2CisjZGVmaW5lIG1tU0RNQTVfR0ZYX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X0dGWF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNworI2RlZmluZSBtbVNETUE1X0dGWF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9HRlhfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzgKKyNkZWZpbmUgbW1TRE1BNV9HRlhfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfR0ZYX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM5CisjZGVmaW5lIG1tU0RNQTVfR0ZYX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkOAorI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZDkKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRhCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYgorI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGMKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRkCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZQorI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGYKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUwCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMQorI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTIKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUzCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNAorI2RlZmluZSBtbVNETUE1X1BBR0VfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTUKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU2CisjZGVmaW5lIG1tU0RNQTVfUEFHRV9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNworI2RlZmluZSBtbVNETUE1X1BBR0VfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTgKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU5CisjZGVmaW5lIG1tU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlYQorI2RlZmluZSBtbVNETUE1X1BBR0VfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMgorI2RlZmluZSBtbVNETUE1X1BBR0VfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDMKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA0CisjZGVmaW5lIG1tU0RNQTVfUEFHRV9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNQorI2RlZmluZSBtbVNETUE1X1BBR0VfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDcKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA4CisjZGVmaW5lIG1tU0RNQTVfUEFHRV9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwOQorI2RlZmluZSBtbVNETUE1X1BBR0VfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBiCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYworI2RlZmluZSBtbVNETUE1X1BBR0VfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGQKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE4CisjZGVmaW5lIG1tU0RNQTVfUEFHRV9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExOQorI2RlZmluZSBtbVNETUE1X1BBR0VfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFiCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYworI2RlZmluZSBtbVNETUE1X1BBR0VfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWQKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFlCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1BBR0VfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZgorI2RlZmluZSBtbVNETUE1X1BBR0VfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjAKKyNkZWZpbmUgbW1TRE1BNV9QQUdFX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTIxCisjZGVmaW5lIG1tU0RNQTVfUEFHRV9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMAorI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMyCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMworI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzQKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM1CisjZGVmaW5lIG1tU0RNQTVfUkxDMF9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNgorI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzcKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM4CisjZGVmaW5lIG1tU0RNQTVfUkxDMF9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzOQorI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2EKKyNkZWZpbmUgbW1TRE1BNV9STEMwX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNiCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYworI2RlZmluZSBtbVNETUE1X1JMQzBfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2QKKyNkZWZpbmUgbW1TRE1BNV9STEMwX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNlCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZgorI2RlZmluZSBtbVNETUE1X1JMQzBfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDAKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MgorI2RlZmluZSBtbVNETUE1X1JMQzBfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTgKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU5CisjZGVmaW5lIG1tU0RNQTVfUkxDMF9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1YQorI2RlZmluZSBtbVNETUE1X1JMQzBfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWIKKyNkZWZpbmUgbW1TRE1BNV9STEMwX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVjCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1ZAorI2RlZmluZSBtbVNETUE1X1JMQzBfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWYKKyNkZWZpbmUgbW1TRE1BNV9STEMwX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYwCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MQorI2RlZmluZSBtbVNETUE1X1JMQzBfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjIKKyNkZWZpbmUgbW1TRE1BNV9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYzCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2NAorI2RlZmluZSBtbVNETUE1X1JMQzBfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjUKKyNkZWZpbmUgbW1TRE1BNV9STEMwX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcwCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MQorI2RlZmluZSBtbVNETUE1X1JMQzBfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzIKKyNkZWZpbmUgbW1TRE1BNV9STEMwX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTczCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NAorI2RlZmluZSBtbVNETUE1X1JMQzBfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzUKKyNkZWZpbmUgbW1TRE1BNV9STEMwX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc2CisjZGVmaW5lIG1tU0RNQTVfUkxDMF9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzBfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NworI2RlZmluZSBtbVNETUE1X1JMQzBfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMwX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzgKKyNkZWZpbmUgbW1TRE1BNV9STEMwX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMF9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc5CisjZGVmaW5lIG1tU0RNQTVfUkxDMF9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4OAorI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODkKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThhCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YgorI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGMKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThkCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZQorI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGYKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkwCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MQorI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTIKKyNkZWZpbmUgbW1TRE1BNV9STEMxX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkzCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NAorI2RlZmluZSBtbVNETUE1X1JMQzFfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTUKKyNkZWZpbmUgbW1TRE1BNV9STEMxX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk2CisjZGVmaW5lIG1tU0RNQTVfUkxDMV9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NworI2RlZmluZSBtbVNETUE1X1JMQzFfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTgKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk5CisjZGVmaW5lIG1tU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5YQorI2RlZmluZSBtbVNETUE1X1JMQzFfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjAKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMgorI2RlZmluZSBtbVNETUE1X1JMQzFfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjMKKyNkZWZpbmUgbW1TRE1BNV9STEMxX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI0CisjZGVmaW5lIG1tU0RNQTVfUkxDMV9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNQorI2RlZmluZSBtbVNETUE1X1JMQzFfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjcKKyNkZWZpbmUgbW1TRE1BNV9STEMxX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI4CisjZGVmaW5lIG1tU0RNQTVfUkxDMV9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiOQorI2RlZmluZSBtbVNETUE1X1JMQzFfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJiCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiYworI2RlZmluZSBtbVNETUE1X1JMQzFfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmQKKyNkZWZpbmUgbW1TRE1BNV9STEMxX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWM4CisjZGVmaW5lIG1tU0RNQTVfUkxDMV9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjOQorI2RlZmluZSBtbVNETUE1X1JMQzFfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2EKKyNkZWZpbmUgbW1TRE1BNV9STEMxX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNiCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjYworI2RlZmluZSBtbVNETUE1X1JMQzFfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2QKKyNkZWZpbmUgbW1TRE1BNV9STEMxX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNlCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzFfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjZgorI2RlZmluZSBtbVNETUE1X1JMQzFfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMxX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZDAKKyNkZWZpbmUgbW1TRE1BNV9STEMxX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWQxCisjZGVmaW5lIG1tU0RNQTVfUkxDMV9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMAorI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUyCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMworI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTQKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU1CisjZGVmaW5lIG1tU0RNQTVfUkxDMl9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNgorI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTcKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU4CisjZGVmaW5lIG1tU0RNQTVfUkxDMl9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlOQorI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWViCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYworI2RlZmluZSBtbVNETUE1X1JMQzJfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWQKKyNkZWZpbmUgbW1TRE1BNV9STEMyX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVlCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlZgorI2RlZmluZSBtbVNETUE1X1JMQzJfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjAKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMgorI2RlZmluZSBtbVNETUE1X1JMQzJfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDgKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjA5CisjZGVmaW5lIG1tU0RNQTVfUkxDMl9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYQorI2RlZmluZSBtbVNETUE1X1JMQzJfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGIKKyNkZWZpbmUgbW1TRE1BNV9STEMyX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBjCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwZAorI2RlZmluZSBtbVNETUE1X1JMQzJfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGYKKyNkZWZpbmUgbW1TRE1BNV9STEMyX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjEwCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMQorI2RlZmluZSBtbVNETUE1X1JMQzJfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTIKKyNkZWZpbmUgbW1TRE1BNV9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjEzCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxNAorI2RlZmluZSBtbVNETUE1X1JMQzJfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTUKKyNkZWZpbmUgbW1TRE1BNV9STEMyX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIwCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMQorI2RlZmluZSBtbVNETUE1X1JMQzJfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjIKKyNkZWZpbmUgbW1TRE1BNV9STEMyX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIzCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNAorI2RlZmluZSBtbVNETUE1X1JMQzJfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjUKKyNkZWZpbmUgbW1TRE1BNV9STEMyX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI2CisjZGVmaW5lIG1tU0RNQTVfUkxDMl9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzJfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNworI2RlZmluZSBtbVNETUE1X1JMQzJfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMyX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjgKKyNkZWZpbmUgbW1TRE1BNV9STEMyX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDMl9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI5CisjZGVmaW5lIG1tU0RNQTVfUkxDMl9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzOAorI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMzkKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNhCisjZGVmaW5lIG1tU0RNQTVfUkxDM19SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYgorI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2MKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNkCisjZGVmaW5lIG1tU0RNQTVfUkxDM19SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZQorI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2YKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwCisjZGVmaW5lIG1tU0RNQTVfUkxDM19SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MQorI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDIKKyNkZWZpbmUgbW1TRE1BNV9STEMzX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQzCisjZGVmaW5lIG1tU0RNQTVfUkxDM19JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NAorI2RlZmluZSBtbVNETUE1X1JMQzNfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDUKKyNkZWZpbmUgbW1TRE1BNV9STEMzX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ2CisjZGVmaW5lIG1tU0RNQTVfUkxDM19JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NworI2RlZmluZSBtbVNETUE1X1JMQzNfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDgKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ5CisjZGVmaW5lIG1tU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0YQorI2RlZmluZSBtbVNETUE1X1JMQzNfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjAKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MgorI2RlZmluZSBtbVNETUE1X1JMQzNfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjMKKyNkZWZpbmUgbW1TRE1BNV9STEMzX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY0CisjZGVmaW5lIG1tU0RNQTVfUkxDM19DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NQorI2RlZmluZSBtbVNETUE1X1JMQzNfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjcKKyNkZWZpbmUgbW1TRE1BNV9STEMzX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY4CisjZGVmaW5lIG1tU0RNQTVfUkxDM19QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2OQorI2RlZmluZSBtbVNETUE1X1JMQzNfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZiCisjZGVmaW5lIG1tU0RNQTVfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YworI2RlZmluZSBtbVNETUE1X1JMQzNfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmQKKyNkZWZpbmUgbW1TRE1BNV9STEMzX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc4CisjZGVmaW5lIG1tU0RNQTVfUkxDM19NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3OQorI2RlZmluZSBtbVNETUE1X1JMQzNfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2EKKyNkZWZpbmUgbW1TRE1BNV9STEMzX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdiCisjZGVmaW5lIG1tU0RNQTVfUkxDM19NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YworI2RlZmluZSBtbVNETUE1X1JMQzNfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2QKKyNkZWZpbmUgbW1TRE1BNV9STEMzX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdlCisjZGVmaW5lIG1tU0RNQTVfUkxDM19NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzNfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZgorI2RlZmluZSBtbVNETUE1X1JMQzNfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEMzX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODAKKyNkZWZpbmUgbW1TRE1BNV9STEMzX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjgxCisjZGVmaW5lIG1tU0RNQTVfUkxDM19NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MAorI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkyCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MworI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTQKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk1CisjZGVmaW5lIG1tU0RNQTVfUkxDNF9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NgorI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTcKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk4CisjZGVmaW5lIG1tU0RNQTVfUkxDNF9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5OQorI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjliCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YworI2RlZmluZSBtbVNETUE1X1JMQzRfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWQKKyNkZWZpbmUgbW1TRE1BNV9STEM0X0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjllCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZgorI2RlZmluZSBtbVNETUE1X1JMQzRfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTAKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmExCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMgorI2RlZmluZSBtbVNETUE1X1JMQzRfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjgKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmI5CisjZGVmaW5lIG1tU0RNQTVfUkxDNF9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYQorI2RlZmluZSBtbVNETUE1X1JMQzRfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmIKKyNkZWZpbmUgbW1TRE1BNV9STEM0X0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJjCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiZAorI2RlZmluZSBtbVNETUE1X1JMQzRfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmYKKyNkZWZpbmUgbW1TRE1BNV9STEM0X0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMwCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMQorI2RlZmluZSBtbVNETUE1X1JMQzRfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzIKKyNkZWZpbmUgbW1TRE1BNV9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMzCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNAorI2RlZmluZSBtbVNETUE1X1JMQzRfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzUKKyNkZWZpbmUgbW1TRE1BNV9STEM0X01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQwCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMQorI2RlZmluZSBtbVNETUE1X1JMQzRfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDIKKyNkZWZpbmUgbW1TRE1BNV9STEM0X01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQzCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNAorI2RlZmluZSBtbVNETUE1X1JMQzRfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDUKKyNkZWZpbmUgbW1TRE1BNV9STEM0X01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ2CisjZGVmaW5lIG1tU0RNQTVfUkxDNF9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzRfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNworI2RlZmluZSBtbVNETUE1X1JMQzRfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM0X01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDgKKyNkZWZpbmUgbW1TRE1BNV9STEM0X01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNF9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ5CisjZGVmaW5lIG1tU0RNQTVfUkxDNF9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlOAorI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTkKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVhCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYgorI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWMKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVkCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZQorI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWYKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYwCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMQorI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjIKKyNkZWZpbmUgbW1TRE1BNV9STEM1X0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYzCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNAorI2RlZmluZSBtbVNETUE1X1JMQzVfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjUKKyNkZWZpbmUgbW1TRE1BNV9STEM1X0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY2CisjZGVmaW5lIG1tU0RNQTVfUkxDNV9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNworI2RlZmluZSBtbVNETUE1X1JMQzVfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjgKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY5CisjZGVmaW5lIG1tU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmYQorI2RlZmluZSBtbVNETUE1X1JMQzVfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTAKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzExCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMgorI2RlZmluZSBtbVNETUE1X1JMQzVfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTMKKyNkZWZpbmUgbW1TRE1BNV9STEM1X0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE0CisjZGVmaW5lIG1tU0RNQTVfUkxDNV9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNQorI2RlZmluZSBtbVNETUE1X1JMQzVfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTcKKyNkZWZpbmUgbW1TRE1BNV9STEM1X0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE4CisjZGVmaW5lIG1tU0RNQTVfUkxDNV9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxOQorI2RlZmluZSBtbVNETUE1X1JMQzVfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFiCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYworI2RlZmluZSBtbVNETUE1X1JMQzVfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWQKKyNkZWZpbmUgbW1TRE1BNV9STEM1X01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI4CisjZGVmaW5lIG1tU0RNQTVfUkxDNV9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyOQorI2RlZmluZSBtbVNETUE1X1JMQzVfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJiCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyYworI2RlZmluZSBtbVNETUE1X1JMQzVfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmQKKyNkZWZpbmUgbW1TRE1BNV9STEM1X01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJlCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzVfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZgorI2RlZmluZSBtbVNETUE1X1JMQzVfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM1X01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMzAKKyNkZWZpbmUgbW1TRE1BNV9STEM1X01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzMxCisjZGVmaW5lIG1tU0RNQTVfUkxDNV9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MAorI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQyCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MworI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDQKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ1CisjZGVmaW5lIG1tU0RNQTVfUkxDNl9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NgorI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDcKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ4CisjZGVmaW5lIG1tU0RNQTVfUkxDNl9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0OQorI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRiCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0YworI2RlZmluZSBtbVNETUE1X1JMQzZfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGQKKyNkZWZpbmUgbW1TRE1BNV9STEM2X0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRlCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0ZgorI2RlZmluZSBtbVNETUE1X1JMQzZfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTAKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzUxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MgorI2RlZmluZSBtbVNETUE1X1JMQzZfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjgKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzY5CisjZGVmaW5lIG1tU0RNQTVfUkxDNl9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2YQorI2RlZmluZSBtbVNETUE1X1JMQzZfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmIKKyNkZWZpbmUgbW1TRE1BNV9STEM2X0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZjCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2ZAorI2RlZmluZSBtbVNETUE1X1JMQzZfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmYKKyNkZWZpbmUgbW1TRE1BNV9STEM2X0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcwCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MQorI2RlZmluZSBtbVNETUE1X1JMQzZfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzIKKyNkZWZpbmUgbW1TRE1BNV9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzczCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3NAorI2RlZmluZSBtbVNETUE1X1JMQzZfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzUKKyNkZWZpbmUgbW1TRE1BNV9STEM2X01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgwCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MQorI2RlZmluZSBtbVNETUE1X1JMQzZfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODIKKyNkZWZpbmUgbW1TRE1BNV9STEM2X01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgzCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NAorI2RlZmluZSBtbVNETUE1X1JMQzZfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODUKKyNkZWZpbmUgbW1TRE1BNV9STEM2X01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg2CisjZGVmaW5lIG1tU0RNQTVfUkxDNl9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzZfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NworI2RlZmluZSBtbVNETUE1X1JMQzZfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM2X01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODgKKyNkZWZpbmUgbW1TRE1BNV9STEM2X01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDNl9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg5CisjZGVmaW5lIG1tU0RNQTVfUkxDNl9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5OAorI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOTkKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzlhCisjZGVmaW5lIG1tU0RNQTVfUkxDN19SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5YgorI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWMKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzlkCisjZGVmaW5lIG1tU0RNQTVfUkxDN19SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5ZQorI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWYKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2EwCisjZGVmaW5lIG1tU0RNQTVfUkxDN19SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMQorI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTIKKyNkZWZpbmUgbW1TRE1BNV9STEM3X0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2EzCisjZGVmaW5lIG1tU0RNQTVfUkxDN19JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNAorI2RlZmluZSBtbVNETUE1X1JMQzdfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTUKKyNkZWZpbmUgbW1TRE1BNV9STEM3X0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E2CisjZGVmaW5lIG1tU0RNQTVfUkxDN19JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNworI2RlZmluZSBtbVNETUE1X1JMQzdfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTgKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E5CisjZGVmaW5lIG1tU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhYQorI2RlZmluZSBtbVNETUE1X1JMQzdfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzAKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMgorI2RlZmluZSBtbVNETUE1X1JMQzdfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzMKKyNkZWZpbmUgbW1TRE1BNV9STEM3X0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M0CisjZGVmaW5lIG1tU0RNQTVfUkxDN19DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNQorI2RlZmluZSBtbVNETUE1X1JMQzdfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzcKKyNkZWZpbmUgbW1TRE1BNV9STEM3X0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M4CisjZGVmaW5lIG1tU0RNQTVfUkxDN19QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjOQorI2RlZmluZSBtbVNETUE1X1JMQzdfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2EKKyNkZWZpbmUgbW1TRE1BNV9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NiCisjZGVmaW5lIG1tU0RNQTVfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjYworI2RlZmluZSBtbVNETUE1X1JMQzdfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2QKKyNkZWZpbmUgbW1TRE1BNV9STEM3X01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q4CisjZGVmaW5lIG1tU0RNQTVfUkxDN19NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkOQorI2RlZmluZSBtbVNETUE1X1JMQzdfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RiCisjZGVmaW5lIG1tU0RNQTVfUkxDN19NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYworI2RlZmluZSBtbVNETUE1X1JMQzdfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGQKKyNkZWZpbmUgbW1TRE1BNV9STEM3X01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RlCisjZGVmaW5lIG1tU0RNQTVfUkxDN19NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE1X1JMQzdfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZgorI2RlZmluZSBtbVNETUE1X1JMQzdfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNV9STEM3X01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTAKKyNkZWZpbmUgbW1TRE1BNV9STEM3X01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2UxCisjZGVmaW5lIG1tU0RNQTVfUkxDN19NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hNS9zZG1hNV80XzJfMl9zaF9tYXNrLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTUvc2RtYTVfNF8yXzJfc2hfbWFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5OTg1NmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTUvc2RtYTVfNF8yXzJfc2hfbWFzay5oCkBAIC0wLDAgKzEsMjk1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfc2RtYTVfNF8yXzJfU0hfTUFTS19IRUFERVIKKyNkZWZpbmUgX3NkbWE1XzRfMl8yX1NIX01BU0tfSEVBREVSCisKKworLy8gYWRkcmVzc0Jsb2NrOiBzZG1hNV9zZG1hNWRlYworLy9TRE1BNV9VQ09ERV9BRERSCisjZGVmaW5lIFNETUE1X1VDT0RFX0FERFJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9VQ09ERV9BRERSX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorLy9TRE1BNV9VQ09ERV9EQVRBCisjZGVmaW5lIFNETUE1X1VDT0RFX0RBVEFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9VQ09ERV9EQVRBX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9WTV9DTlRMCisjZGVmaW5lIFNETUE1X1ZNX0NOVExfX0NNRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9WTV9DTlRMX19DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9TRE1BNV9WTV9DVFhfTE8KKyNkZWZpbmUgU0RNQTVfVk1fQ1RYX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1ZNX0NUWF9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1ZNX0NUWF9ISQorI2RlZmluZSBTRE1BNV9WTV9DVFhfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfVk1fQ1RYX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfQUNUSVZFX0ZDTl9JRAorI2RlZmluZSBTRE1BNV9BQ1RJVkVfRkNOX0lEX19WRklEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfQUNUSVZFX0ZDTl9JRF9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X0FDVElWRV9GQ05fSURfX1ZGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTVfQUNUSVZFX0ZDTl9JRF9fVkZJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTVfQUNUSVZFX0ZDTl9JRF9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGMEwKKyNkZWZpbmUgU0RNQTVfQUNUSVZFX0ZDTl9JRF9fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTVfVk1fQ1RYX0NOVEwKKyNkZWZpbmUgU0RNQTVfVk1fQ1RYX0NOVExfX1BSSVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1ZNX0NUWF9DTlRMX19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9WTV9DVFhfQ05UTF9fUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9WTV9DVFhfQ05UTF9fVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorLy9TRE1BNV9WSVJUX1JFU0VUX1JFUQorI2RlZmluZSBTRE1BNV9WSVJUX1JFU0VUX1JFUV9fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfVklSVF9SRVNFVF9SRVFfX1BGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNV9WSVJUX1JFU0VUX1JFUV9fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BNV9WSVJUX1JFU0VUX1JFUV9fUEZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNV9WRl9FTkFCTEUKKyNkZWZpbmUgU0RNQTVfVkZfRU5BQkxFX19WRl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1ZGX0VOQUJMRV9fVkZfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE1X0NPTlRFWFRfUkVHX1RZUEUwCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTVfR0ZYX1JCX0JBU0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE1X0dGWF9SQl9CQVNFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTVfR0ZYX1JCX1JQVFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE1X0dGWF9SQl9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfV1BUUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTVfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE1X0dGWF9SQl9SUFRSX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfUlBUUl9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTVfR0ZYX0lCX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE1X0dGWF9JQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfSUJfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTVfR0ZYX0lCX0JBU0VfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE1X0dGWF9JQl9CQVNFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfSUJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTVfR0ZYX1NLSVBfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE1X0dGWF9ET09SQkVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMF9fU0RNQTVfR0ZYX0NPTlRFWFRfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfQkFTRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfUlBUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfUlBUUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfV1BUUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfV1BUUl9QT0xMX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfUlBUUl9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfUkJfUlBUUl9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfSUJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfSUJfUlBUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfSUJfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfSUJfQkFTRV9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfSUJfQkFTRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfSUJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfU0tJUF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfRE9PUkJFTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNV9HRlhfQ09OVEVYVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisvL1NETUE1X0NPTlRFWFRfUkVHX1RZUEUxCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNV9HRlhfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0RPT1JCRUxMX0xPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE1X0dGWF9XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNV9HRlhfRE9PUkJFTExfT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0NTQV9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE1X0dGWF9DU0FfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUxX19WT0lEX1JFRzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0lCX1NVQl9SRU1BSU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE1X0dGWF9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0RVTU1ZX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE1X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX1JCX0FRTF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNV9HRlhfTUlOT1JfUFRSX1VQREFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTFfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0RPT1JCRUxMX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0RPT1JCRUxMX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0NTQV9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0NTQV9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fVk9JRF9SRUcyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0lCX1NVQl9SRU1BSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX0RVTU1ZX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX1JCX0FRTF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fU0RNQTVfR0ZYX01JTk9SX1BUUl9VUERBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMV9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGQzAwMDAwTAorLy9TRE1BNV9DT05URVhUX1JFR19UWVBFMgorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMl9fU0RNQTVfR0ZYX01JRENNRF9EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE1X0dGWF9NSURDTURfREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMl9fU0RNQTVfR0ZYX01JRENNRF9EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE1X0dGWF9NSURDTURfREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMl9fU0RNQTVfR0ZYX01JRENNRF9EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE1X0dGWF9NSURDTURfREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFMl9fU0RNQTVfR0ZYX01JRENNRF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTJfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEEyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEE1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0RBVEE4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNV9HRlhfTUlEQ01EX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZDMDBMCisvL1NETUE1X0NPTlRFWFRfUkVHX1RZUEUzCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfUkVHX1RZUEUzX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9DT05URVhUX1JFR19UWVBFM19fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QVUJfUkVHX1RZUEUwCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1VDT0RFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUwX19TRE1BNV9VQ09ERV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1ZNX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUwX19TRE1BNV9WTV9DVFhfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMF9fU0RNQTVfVk1fQ1RYX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0FDVElWRV9GQ05fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUwX19TRE1BNV9WTV9DVFhfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMF9fU0RNQTVfVklSVF9SRVNFVF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEMTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUwX19TRE1BNV9DT05URVhUX1JFR19UWVBFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMF9fU0RNQTVfQ09OVEVYVF9SRUdfVFlQRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NPTlRFWFRfUkVHX1RZUEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUwX19TRE1BNV9DT05URVhUX1JFR19UWVBFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMF9fU0RNQTVfUFVCX1JFR19UWVBFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1BVQl9SRUdfVFlQRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMF9fU0RNQTVfUFVCX1JFR19UWVBFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUwX19TRE1BNV9QVUJfUkVHX1RZUEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X01NSFVCX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMF9fUkVTRVJWRURfRk9SX1BTUFNNVV9BQ0NFU1NfT05MWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUwX19TRE1BNV9DT05URVhUX0dST1VQX0JPVU5EQVJZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1BPV0VSX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMF9fU0RNQTVfQ0xLX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUwX19TRE1BNV9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NISUNLRU5fQklUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMF9fU0RNQTVfR0JfQUREUl9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUwX19TRE1BNV9HQl9BRERSX0NPTkZJR19SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1VDT0RFX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1VDT0RFX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1ZNX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1ZNX0NUWF9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1ZNX0NUWF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0FDVElWRV9GQ05fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1ZNX0NUWF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1ZJUlRfUkVTRVRfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NPTlRFWFRfUkVHX1RZUEUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NPTlRFWFRfUkVHX1RZUEUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NPTlRFWFRfUkVHX1RZUEUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NPTlRFWFRfUkVHX1RZUEUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1BVQl9SRUdfVFlQRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1BVQl9SRUdfVFlQRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1BVQl9SRUdfVFlQRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1BVQl9SRUdfVFlQRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X01NSFVCX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1JFU0VSVkVEX0ZPUl9QU1BTTVVfQUNDRVNTX09OTFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFFMDAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X1BPV0VSX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NMS19DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0NISUNLRU5fQklUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0dCX0FERFJfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTBfX1NETUE1X0dCX0FERFJfQ09ORklHX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE1X1BVQl9SRUdfVFlQRTEKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfUkJfUlBUUl9GRVRDSF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BNV9SQl9SUFRSX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfSUJfT0ZGU0VUX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X1BST0dSQU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BNV9TVEFUVVNfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfU1RBVFVTMV9SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X1JEX0JVUlNUX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BNV9IQk1fUEFHRV9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfVUNPREVfQ0hFQ0tTVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X0YzMl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BNV9GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfUEhBU0UwX1FVQU5UVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X1BIQVNFMV9RVUFOVFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BX1BPV0VSX0dBVElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUFfUEdGU01fV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9SRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BNV9FRENfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X0JBX1RIUkVTSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BNV9WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X0VEQ19DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfRURDX0NPVU5URVJfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BNV9TVEFUVVMyX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X0FUT01JQ19DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfQVRPTUlDX1BSRU9QX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BNV9BVE9NSUNfUFJFT1BfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X1VUQ0wxX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfVVRDTDFfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUxX19TRE1BNV9VVENMMV9SRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTFfX1NETUE1X1VUQ0wxX1dSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfUkJfUlBUUl9GRVRDSF9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfUkJfUlBUUl9GRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfSUJfT0ZGU0VUX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfUFJPR1JBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfU1RBVFVTX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfU1RBVFVTMV9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfUkRfQlVSU1RfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfSEJNX1BBR0VfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfVUNPREVfQ0hFQ0tTVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfRjMyX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfUEhBU0UwX1FVQU5UVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfUEhBU0UxX1FVQU5UVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQV9QT1dFUl9HQVRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9SRUFEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfRURDX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfQkFfVEhSRVNIT0xEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfVkVSU0lPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfRURDX0NPVU5URVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfRURDX0NPVU5URVJfQ0xFQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfU1RBVFVTMl9SRUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfQVRPTUlDX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfQVRPTUlDX1BSRU9QX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfQVRPTUlDX1BSRU9QX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfVVRDTDFfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfVVRDTDFfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfVVRDTDFfUkRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMV9fU0RNQTVfVVRDTDFfV1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTVfUFVCX1JFR19UWVBFMgorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9JTlYwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fU0RNQTVfVVRDTDFfSU5WMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X1VUQ0wxX0lOVjJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9SRF9YTkFDSzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fU0RNQTVfVVRDTDFfUkRfWE5BQ0sxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X1VUQ0wxX1dSX1hOQUNLMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9XUl9YTkFDSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fU0RNQTVfVVRDTDFfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X1VUQ0wxX1BBR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QT1dFUl9DTlRMX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fU0RNQTVfUkVMQVhfT1JERVJJTkdfTFVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X0NISUNLRU5fQklUU18yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9TVEFUVVMzX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fU0RNQTVfUEhZU0lDQUxfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X1BIWVNJQ0FMX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QSEFTRTJfUVVBTlRVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fU0RNQTVfRVJST1JfTE9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QVUJfRFVNTVlfUkVHMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X1BVQl9EVU1NWV9SRUcxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fU0RNQTVfUFVCX0RVTU1ZX1JFRzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QVUJfRFVNTVlfUkVHM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X0YzMl9DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fU0RNQTVfVU5CUkVBS0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QRVJGTU9OX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X1BFUkZDT1VOVEVSMF9SRVNVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fU0RNQTVfUEVSRkNPVU5URVIxX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X0NSRF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fUkVTRVJWRUQyOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTJfX1NETUE1X1VMVl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFMl9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9JTlYwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9JTlYxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9JTlYyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9SRF9YTkFDSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9SRF9YTkFDSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9XUl9YTkFDSzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9XUl9YTkFDSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VVENMMV9QQUdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QT1dFUl9DTlRMX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9DSElDS0VOX0JJVFNfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9TVEFUVVMzX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QSFlTSUNBTF9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QSFlTSUNBTF9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QSEFTRTJfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9FUlJPUl9MT0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QVUJfRFVNTVlfUkVHMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QVUJfRFVNTVlfUkVHMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QVUJfRFVNTVlfUkVHMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QVUJfRFVNTVlfUkVHM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9GMzJfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VTkJSRUFLQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QRVJGTU9OX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QRVJGQ09VTlRFUjBfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QRVJGQ09VTlRFUjFfUkVTVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9DUkRfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRDI4X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19TRE1BNV9VTFZfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNV9QVUJfUkVHX1RZUEUzCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTNfX1NETUE1X0VBX0RCSVRfQUREUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUzX19TRE1BNV9FQV9EQklUX0FERFJfSU5ERVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUFVCX1JFR19UWVBFM19fU0RNQTVfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1BVQl9SRUdfVFlQRTNfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUzX19TRE1BNV9FQV9EQklUX0FERFJfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUzX19TRE1BNV9FQV9EQklUX0FERFJfSU5ERVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUzX19TRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNV9QVUJfUkVHX1RZUEUzX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkY4TAorLy9TRE1BNV9NTUhVQl9DTlRMCisjZGVmaW5lIFNETUE1X01NSFVCX0NOVExfX1VOSVRfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9NTUhVQl9DTlRMX19VTklUX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9TRE1BNV9DT05URVhUX0dST1VQX0JPVU5EQVJZCisjZGVmaW5lIFNETUE1X0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9DT05URVhUX0dST1VQX0JPVU5EQVJZX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QT1dFUl9DTlRMCisjZGVmaW5lIFNETUE1X1BPV0VSX0NOVExfX01FTV9QT1dFUl9PVkVSUklERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9QT1dFUl9DTlRMX19NRU1fUE9XRVJfTFNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE1X1BPV0VSX0NOVExfX01FTV9QT1dFUl9TRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNV9QT1dFUl9DTlRMX19NRU1fUE9XRVJfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTVfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0xTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTVfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX1NEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTVfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRjAwMEwKKy8vU0RNQTVfQ0xLX0NUUkwKKyNkZWZpbmUgU0RNQTVfQ0xLX0NUUkxfX09OX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9DTEtfQ1RSTF9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTVfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTVfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BNV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTVfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNV9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19PTl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19PRkZfSFlTVEVSRVNJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjBMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkYwMDBMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE1X0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE1X0NOVEwKKyNkZWZpbmUgU0RNQTVfQ05UTF9fVFJBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0NOVExfX1VUQ19MMV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9DTlRMX19TRU1fV0FJVF9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfQ05UTF9fREFUQV9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X0NOVExfX0ZFTkNFX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9DTlRMX19NSURDTURfUFJFRU1QVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfQ05UTF9fTUlEQ01EX1dPUkxEU1dJVENIX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNV9DTlRMX19BVVRPX0NUWFNXX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE1X0NOVExfX0NUWEVNUFRZX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTVfQ05UTF9fRlJPWkVOX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNV9DTlRMX19JQl9QUkVFTVBUX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE1X0NOVExfX1RSQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X0NOVExfX1VUQ19MMV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X0NOVExfX1NFTV9XQUlUX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X0NOVExfX0RBVEFfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE1X0NOVExfX0ZFTkNFX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X0NOVExfX01JRENNRF9QUkVFTVBUX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE1X0NOVExfX01JRENNRF9XT1JMRFNXSVRDSF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE1X0NOVExfX0FVVE9fQ1RYU1dfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE1X0NOVExfX0NUWEVNUFRZX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE1X0NOVExfX0ZST1pFTl9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE1X0NOVExfX0lCX1BSRUVNUFRfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE1X0NISUNLRU5fQklUUworI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX0NPUFlfRUZGSUNJRU5DWV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfQ0hJQ0tFTl9CSVRTX19TVEFMTF9PTl9UUkFOU19GVUxMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE1X0NISUNLRU5fQklUU19fU1RBTExfT05fTk9fRlJFRV9EQVRBX0JVRkZFUl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX0xFTkdUSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfQ0hJQ0tFTl9CSVRTX19XUklURV9CVVJTVF9XQUlUX0NZQ0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE1X0NISUNLRU5fQklUU19fQ09QWV9PVkVSTEFQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTVfQ0hJQ0tFTl9CSVRTX19SQVdfQ0hFQ0tfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX1NSQk1fUE9MTF9SRVRSWUlOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE1X0NISUNLRU5fQklUU19fQ0dfU1RBVFVTX09VVFBVVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfQ0hJQ0tFTl9CSVRTX19USU1FX0JBU0VEX1FPU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX0NFX0FGSUZPX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE1X0NISUNLRU5fQklUU19fQ0VfREZJRk9fV0FURVJNQVJLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTVfQ0hJQ0tFTl9CSVRTX19DRV9MRklGT19XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX0NPUFlfRUZGSUNJRU5DWV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX1NUQUxMX09OX1RSQU5TX0ZVTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX1NUQUxMX09OX05PX0ZSRUVfREFUQV9CVUZGRVJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX0xFTkdUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX1dBSVRfQ1lDTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxQzAwTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX0NPUFlfT1ZFUkxBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX1JBV19DSEVDS19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX1NSQk1fUE9MTF9SRVRSWUlOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX0NHX1NUQVRVU19PVVRQVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX1RJTUVfQkFTRURfUU9TX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX0NFX0FGSUZPX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX0NFX0RGSUZPX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfX0NFX0xGSUZPX1dBVEVSTUFSS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9TRE1BNV9HQl9BRERSX0NPTkZJRworI2RlZmluZSBTRE1BNV9HQl9BRERSX0NPTkZJR19fTlVNX1BJUEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0JfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X0dCX0FERFJfQ09ORklHX19CQU5LX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9HQl9BRERSX0NPTkZJR19fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTVfR0JfQUREUl9DT05GSUdfX05VTV9TSEFERVJfRU5HSU5FU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNV9HQl9BRERSX0NPTkZJR19fTlVNX1BJUEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBTRE1BNV9HQl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBTRE1BNV9HQl9BRERSX0NPTkZJR19fQkFOS19JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNzAwTAorI2RlZmluZSBTRE1BNV9HQl9BRERSX0NPTkZJR19fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBTRE1BNV9HQl9BRERSX0NPTkZJR19fTlVNX1NIQURFUl9FTkdJTkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTgwMDAwTAorLy9TRE1BNV9HQl9BRERSX0NPTkZJR19SRUFECisjZGVmaW5lIFNETUE1X0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9QSVBFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HQl9BRERSX0NPTkZJR19SRUFEX19QSVBFX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTVfR0JfQUREUl9DT05GSUdfUkVBRF9fQkFOS19JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNV9HQl9BRERSX0NPTkZJR19SRUFEX19OVU1fU0hBREVSX0VOR0lORVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE1X0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9QSVBFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUE1X0dCX0FERFJfQ09ORklHX1JFQURfX1BJUEVfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIFNETUE1X0dCX0FERFJfQ09ORklHX1JFQURfX0JBTktfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFNETUE1X0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFNETUE1X0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9TSEFERVJfRU5HSU5FU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisvL1NETUE1X1JCX1JQVFJfRkVUQ0hfSEkKKyNkZWZpbmUgU0RNQTVfUkJfUlBUUl9GRVRDSF9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JCX1JQVFJfRkVUQ0hfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTAorI2RlZmluZSBTRE1BNV9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX19USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkJfUlBUUl9GRVRDSAorI2RlZmluZSBTRE1BNV9SQl9SUFRSX0ZFVENIX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkJfUlBUUl9GRVRDSF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTVfSUJfT0ZGU0VUX0ZFVENICisjZGVmaW5lIFNETUE1X0lCX09GRlNFVF9GRVRDSF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9JQl9PRkZTRVRfRkVUQ0hfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNV9QUk9HUkFNCisjZGVmaW5lIFNETUE1X1BST0dSQU1fX1NUUkVBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QUk9HUkFNX19TVFJFQU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9TVEFUVVNfUkVHCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19SRUdfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfU1RBVFVTX1JFR19fUkJfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1JCX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19SQl9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTVfU1RBVFVTX1JFR19fUkJfQ01EX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lCX0NNRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19JQl9DTURfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfU1RBVFVTX1JFR19fQkxPQ0tfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19FWF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfU1RBVFVTX1JFR19fRVhfSURMRV9QT0xMX1RJTUVSX0VYUElSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1BBQ0tFVF9SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19NQ19XUl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTVfU1RBVFVTX1JFR19fU1JCTV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0NPTlRFWFRfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19ERUxUQV9SUFRSX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1JCX01DX1JSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTVfU1RBVFVTX1JFR19fSUJfTUNfUlJFUV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19NQ19SRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTVfU1RBVFVTX1JFR19fTUNfUkRfUkVUX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19NQ19SRF9OT19QT0xMX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1BSRVZfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTVfU1RBVFVTX1JFR19fU0VNX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19TRU1fUkVRX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1NFTV9SRVNQX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTVfU1RBVFVTX1JFR19fSU5UX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNV9TVEFUVVNfUkVHX19JTlRfUkVRX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1JFR19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1JCX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1JCX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1JCX0NNRF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1JCX0NNRF9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lCX0NNRF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lCX0NNRF9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0JMT0NLX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0VYX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0VYX0lETEVfUE9MTF9USU1FUl9FWFBJUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1BBQ0tFVF9SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX01DX1dSX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1NSQk1fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0NPTlRFWFRfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1JCX01DX1JSRVFfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lCX01DX1JSRVFfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX01DX1JEX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX01DX1JEX1JFVF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX01DX1JEX05PX1BPTExfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1BSRVZfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1NFTV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1NFTV9SRVFfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX1NFTV9SRVNQX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lOVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE1X1NUQVRVU19SRUdfX0lOVF9SRVFfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE1X1NUQVRVUzFfUkVHCisjZGVmaW5lIFNETUE1X1NUQVRVUzFfUkVHX19DRV9XUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfV1JfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfU1RBVFVTMV9SRUdfX0NFX1NQTElUX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1NUQVRVUzFfUkVHX19DRV9SUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfT1VUX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTVfU1RBVFVTMV9SRUdfX0NFX0lOX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE1X1NUQVRVUzFfUkVHX19DRV9EU1RfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfU1RBVFVTMV9SRUdfX0NFX0FGSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE1X1NUQVRVUzFfUkVHX19DRV9JTkZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfSU5GTzFfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTVfU1RBVFVTMV9SRUdfX0VYX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE1X1NUQVRVUzFfUkVHX19DRV9SRF9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTVfU1RBVFVTMV9SRUdfX0NFX1dSX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfV1JFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfV1JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfU1BMSVRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfT1VUX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfSU5fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfRFNUX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfQUZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfSU5GT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfSU5GTzFfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fRVhfU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfUkRfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNV9TVEFUVVMxX1JFR19fQ0VfV1JfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9TRE1BNV9SRF9CVVJTVF9DTlRMCisjZGVmaW5lIFNETUE1X1JEX0JVUlNUX0NOVExfX1JEX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9SRF9CVVJTVF9DTlRMX19DTURfQlVGRkVSX1JEX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkRfQlVSU1RfQ05UTF9fUkRfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgU0RNQTVfUkRfQlVSU1RfQ05UTF9fQ01EX0JVRkZFUl9SRF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKy8vU0RNQTVfSEJNX1BBR0VfQ09ORklHCisjZGVmaW5lIFNETUE1X0hCTV9QQUdFX0NPTkZJR19fUEFHRV9TSVpFX0VYUE9ORU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9IQk1fUEFHRV9DT05GSUdfX1BBR0VfU0laRV9FWFBPTkVOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9VQ09ERV9DSEVDS1NVTQorI2RlZmluZSBTRE1BNV9VQ09ERV9DSEVDS1NVTV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfVUNPREVfQ0hFQ0tTVU1fX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfRjMyX0NOVEwKKyNkZWZpbmUgU0RNQTVfRjMyX0NOVExfX0hBTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0YzMl9DTlRMX19TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9GMzJfQ05UTF9fSEFMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9GMzJfQ05UTF9fU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorLy9TRE1BNV9GUkVFWkUKKyNkZWZpbmUgU0RNQTVfRlJFRVpFX19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0ZSRUVaRV9fRlJFRVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9GUkVFWkVfX0ZST1pFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfRlJFRVpFX19GMzJfRlJFRVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE1X0ZSRUVaRV9fUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X0ZSRUVaRV9fRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X0ZSRUVaRV9fRlJPWkVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE1X0ZSRUVaRV9fRjMyX0ZSRUVaRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL1NETUE1X1BIQVNFMF9RVUFOVFVNCisjZGVmaW5lIFNETUE1X1BIQVNFMF9RVUFOVFVNX19VTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QSEFTRTBfUVVBTlRVTV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUEhBU0UwX1FVQU5UVU1fX1BSRUZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNV9QSEFTRTBfUVVBTlRVTV9fVU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BNV9QSEFTRTBfUVVBTlRVTV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRjAwTAorI2RlZmluZSBTRE1BNV9QSEFTRTBfUVVBTlRVTV9fUFJFRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNV9QSEFTRTFfUVVBTlRVTQorI2RlZmluZSBTRE1BNV9QSEFTRTFfUVVBTlRVTV9fVU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEhBU0UxX1FVQU5UVU1fX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1BIQVNFMV9RVUFOVFVNX19QUkVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUEhBU0UxX1FVQU5UVU1fX1VOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTVfUEhBU0UxX1FVQU5UVU1fX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkYwMEwKKyNkZWZpbmUgU0RNQTVfUEhBU0UxX1FVQU5UVU1fX1BSRUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfRURDX0NPTkZJRworI2RlZmluZSBTRE1BNV9FRENfQ09ORklHX19ESVNfRURDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfRURDX0NPTkZJR19fRUNDX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X0VEQ19DT05GSUdfX0RJU19FRENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X0VEQ19DT05GSUdfX0VDQ19JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL1NETUE1X0JBX1RIUkVTSE9MRAorI2RlZmluZSBTRE1BNV9CQV9USFJFU0hPTERfX1JFQURfVEhSRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfQkFfVEhSRVNIT0xEX19XUklURV9USFJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNV9CQV9USFJFU0hPTERfX1JFQURfVEhSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorI2RlZmluZSBTRE1BNV9CQV9USFJFU0hPTERfX1dSSVRFX1RIUkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNV9JRAorI2RlZmluZSBTRE1BNV9JRF9fREVWSUNFX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfSURfX0RFVklDRV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0RNQTVfVkVSU0lPTgorI2RlZmluZSBTRE1BNV9WRVJTSU9OX19NSU5WRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfVkVSU0lPTl9fTUFKVkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1ZFUlNJT05fX1JFVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTVfVkVSU0lPTl9fTUlOVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgU0RNQTVfVkVSU0lPTl9fTUFKVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKyNkZWZpbmUgU0RNQTVfVkVSU0lPTl9fUkVWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGMDAwMEwKKy8vU0RNQTVfRURDX0NPVU5URVIKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfVUNPREVfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0VEQ19DT1VOVEVSX19TRE1BX1JCX0NNRF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9FRENfQ09VTlRFUl9fU0RNQV9JQl9DTURfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X0VEQ19DT1VOVEVSX19TRE1BX1VUQ0wxX1JEQlNUX0ZJRk9fU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNV9FRENfQ09VTlRFUl9fU0RNQV9EQVRBX0xVVF9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYwX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE1X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjJfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYzX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE1X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjVfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY2X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE1X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGN19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjhfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY5X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEwX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE1X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTFfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNV9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEzX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE1X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTRfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BNV9FRENfQ09VTlRFUl9fU0RNQV9TUExJVF9EQVRfQlVGX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE1X0VEQ19DT1VOVEVSX19TRE1BX01DX1dSX0FERFJfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfVUNPREVfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfUkJfQ01EX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfSUJfQ01EX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRCU1RfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfREFUQV9MVVRfRklGT19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYwX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYyX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYzX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY0X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY1X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY2X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY3X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY4X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY5X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMF9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMV9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxM19TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNF9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNV9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfU1BMSVRfREFUX0JVRl9TRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfX1NETUFfTUNfV1JfQUREUl9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKy8vU0RNQTVfRURDX0NPVU5URVJfQ0xFQVIKKyNkZWZpbmUgU0RNQTVfRURDX0NPVU5URVJfQ0xFQVJfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0VEQ19DT1VOVEVSX0NMRUFSX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE1X1NUQVRVUzJfUkVHCisjZGVmaW5lIFNETUE1X1NUQVRVUzJfUkVHX19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9TVEFUVVMyX1JFR19fRjMyX0lOU1RSX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTVfU1RBVFVTMl9SRUdfX0NNRF9PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNV9TVEFUVVMyX1JFR19fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBTRE1BNV9TVEFUVVMyX1JFR19fRjMyX0lOU1RSX1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkY4TAorI2RlZmluZSBTRE1BNV9TVEFUVVMyX1JFR19fQ01EX09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNV9BVE9NSUNfQ05UTAorI2RlZmluZSBTRE1BNV9BVE9NSUNfQ05UTF9fTE9PUF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfQVRPTUlDX0NOVExfX0FUT01JQ19SVE5fSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNV9BVE9NSUNfQ05UTF9fTE9PUF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGTAorI2RlZmluZSBTRE1BNV9BVE9NSUNfQ05UTF9fQVRPTUlDX1JUTl9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNV9BVE9NSUNfUFJFT1BfTE8KKyNkZWZpbmUgU0RNQTVfQVRPTUlDX1BSRU9QX0xPX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0FUT01JQ19QUkVPUF9MT19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X0FUT01JQ19QUkVPUF9ISQorI2RlZmluZSBTRE1BNV9BVE9NSUNfUFJFT1BfSElfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfQVRPTUlDX1BSRU9QX0hJX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfVVRDTDFfQ05UTAorI2RlZmluZSBTRE1BNV9VVENMMV9DTlRMX19SRURPX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfVVRDTDFfQ05UTF9fUkVET19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE1X1VUQ0wxX0NOVExfX1JFRE9fV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNV9VVENMMV9DTlRMX19JTlZBQ0tfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTVfVVRDTDFfQ05UTF9fUkVRTDJfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9VVENMMV9DTlRMX19WQUREUl9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE1X1VUQ0wxX0NOVExfX1JFRE9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0NOVExfX1JFRE9fREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3RkVMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0NOVExfX1JFRE9fV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDM4MDBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0NOVExfX0lOVkFDS19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkMwMDBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0NOVExfX1JFUUwyX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0NOVExfX1ZBRERSX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAwMDBMCisvL1NETUE1X1VUQ0wxX1dBVEVSTUsKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV0FURVJNS19fUkVRTUNfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dBVEVSTUtfX1JFUVBHX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9VVENMMV9XQVRFUk1LX19JTlZSRVFfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dBVEVSTUtfX1hOQUNLX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV0FURVJNS19fUkVRTUNfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGRkwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV0FURVJNS19fUkVRUEdfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkUwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV0FURVJNS19fSU5WUkVRX1dBVEVSTUtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZFMDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV0FURVJNS19fWE5BQ0tfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMEwKKy8vU0RNQTVfVVRDTDFfUkRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNV9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNV9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNV9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNV9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNV9VVENMMV9SRF9TVEFUVVNfX1BBR0VfTlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fUkVRTDJfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19DRV9MMV9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNV9VVENMMV9SRF9TVEFUVVNfX05FWFRfUkRfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fTUVSR0VfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19BRERSX1JEX1JUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNV9VVENMMV9SRF9TVEFUVVNfX1dQVFJfUE9MTElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1NUQVRVU19fSU5WUkVRX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFUV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0hFQURfVklSVF9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1hOQUNLX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19QQUdFX0ZBVUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19QQUdFX05VTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19SRVFMMl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19DRV9MMV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19ORVhUX1JEX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0MwMDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19NRVJHRV9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQzAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19BRERSX1JEX1JUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19XUFRSX1BPTExJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfU1RBVFVTX19JTlZSRVFfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTVfVVRDTDFfV1JfU1RBVFVTCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1JFVF9CVUZfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFRE9fRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1JFVF9CVUZfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFRE9fRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfU1RBVFVTX19QQUdFX0ZBVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1BBR0VfTlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fUkVRTDJfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfU1RBVFVTX19GMzJfV1JfUlRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX05FWFRfV1JfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fTUVSR0VfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfU1RBVFVTX19SUFRSX0RBVEFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfU1RBVFVTX19XUlJFUV9EQVRBX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1BBR0VfTlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JFUUwyX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX0YzMl9XUl9SVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX05FWFRfV1JfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxQzAwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX01FUkdFX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFMDAwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNV9VVENMMV9JTlYwCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX0lOVl9NSURETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9VVENMMV9JTlYwX19SRF9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfSU5WMF9fV1JfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX1JEX0lOX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNV9VVENMMV9JTlYwX19XUl9JTl9JTlZBRFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTVfVVRDTDFfSU5WMF9fUEFHRV9OVUxMX1NXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX1hOQUNLX0lTX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNV9VVENMMV9JTlYwX19JTlZSRVFfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfVVRDTDFfSU5WMF9fTkFDS19USU1FT1VUX1NXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX05GTFVTSF9JTlZfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9VVENMMV9JTlYwX19GTFVTSF9JTlZfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfSU5WMF9fSU5WX0ZMVVNIVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX0lOVl9WTUlEX1ZFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNV9VVENMMV9JTlYwX19JTlZfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX0lOVl9NSURETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX1JEX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX1dSX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX1JEX0lOX0lOVkFEUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX1dSX0lOX0lOVkFEUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX1BBR0VfTlVMTF9TV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX1hOQUNLX0lTX0lOVkFEUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX0lOVlJFUV9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX05BQ0tfVElNRU9VVF9TV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX05GTFVTSF9JTlZfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX0ZMVVNIX0lOVl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX0lOVl9GTFVTSFRZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX0lOVl9WTUlEX1ZFQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkYwMDBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjBfX0lOVl9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDAwMDBMCisvL1NETUE1X1VUQ0wxX0lOVjEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfSU5WMV9fSU5WX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjFfX0lOVl9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1VUQ0wxX0lOVjIKKyNkZWZpbmUgU0RNQTVfVVRDTDFfSU5WMl9fSU5WX05GTFVTSF9WTUlEX1ZFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1VUQ0wxX0lOVjJfX0lOVl9ORkxVU0hfVk1JRF9WRUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1VUQ0wxX1JEX1hOQUNLMAorI2RlZmluZSBTRE1BNV9VVENMMV9SRF9YTkFDSzBfX1hOQUNLX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfWE5BQ0swX19YTkFDS19BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfVVRDTDFfUkRfWE5BQ0sxCisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1VUQ0wxX1JEX1hOQUNLMV9fSVNfWE5BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19WRUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGRkYwMEwKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUkRfWE5BQ0sxX19JU19YTkFDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzAwMDAwMEwKKy8vU0RNQTVfVVRDTDFfV1JfWE5BQ0swCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9YTkFDSzBfX1hOQUNLX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9VVENMMV9XUl9YTkFDSzEKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfVVRDTDFfV1JfWE5BQ0sxX19JU19YTkFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRjAwTAorI2RlZmluZSBTRE1BNV9VVENMMV9XUl9YTkFDSzFfX0lTX1hOQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorLy9TRE1BNV9VVENMMV9USU1FT1VUCisjZGVmaW5lIFNETUE1X1VUQ0wxX1RJTUVPVVRfX1JEX1hOQUNLX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9VVENMMV9USU1FT1VUX19XUl9YTkFDS19MSU1JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1VUQ0wxX1RJTUVPVVRfX1JEX1hOQUNLX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUE1X1VUQ0wxX1RJTUVPVVRfX1dSX1hOQUNLX0xJTUlUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1VUQ0wxX1BBR0UKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUEFHRV9fVk1fSE9MRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1VUQ0wxX1BBR0VfX1JFUV9UWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9VVENMMV9QQUdFX19VU0VfTVRZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTVfVVRDTDFfUEFHRV9fVVNFX1BUX1NOT09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE1X1VUQ0wxX1BBR0VfX1ZNX0hPTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1VUQ0wxX1BBR0VfX1JFUV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUVMCisjZGVmaW5lIFNETUE1X1VUQ0wxX1BBR0VfX1VTRV9NVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzBMCisjZGVmaW5lIFNETUE1X1VUQ0wxX1BBR0VfX1VTRV9QVF9TTk9PUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisvL1NETUE1X1BPV0VSX0NOVExfSURMRQorI2RlZmluZSBTRE1BNV9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUE9XRVJfQ05UTF9JRExFX19ERUxBWTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNV9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE1X1BPV0VSX0NOVExfSURMRV9fREVMQVkwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUE1X1BPV0VSX0NOVExfSURMRV9fREVMQVkxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFNETUE1X1BPV0VSX0NOVExfSURMRV9fREVMQVkyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL1NETUE1X1JFTEFYX09SREVSSU5HX0xVVAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkVMQVhfT1JERVJJTkdfTFVUX19DT1BZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE1X1JFTEFYX09SREVSSU5HX0xVVF9fV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTVfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRDRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JFTEFYX09SREVSSU5HX0xVVF9fRkVOQ0VfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTVfUkVMQVhfT1JERVJJTkdfTFVUX19QT0xMX01FTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1JFTEFYX09SREVSSU5HX0xVVF9fQ09ORF9FWEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX0FUT01JQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUkVMQVhfT1JERVJJTkdfTFVUX19DT05TVF9GSUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE1X1JFTEFYX09SREVSSU5HX0xVVF9fUFRFUERFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1RJTUVTVEFNUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTVfUkVMQVhfT1JERVJJTkdfTFVUX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE1X1JFTEFYX09SREVSSU5HX0xVVF9fV09STERfU1dJVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTVfUkVMQVhfT1JERVJJTkdfTFVUX19SUFRSX1dSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1dQVFJfUE9MTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE1X1JFTEFYX09SREVSSU5HX0xVVF9fSUJfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUkVMQVhfT1JERVJJTkdfTFVUX19SQl9GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX0NPUFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX0ZFTkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1BPTExfTUVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX0NPTkRfRVhFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX0FUT01JQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX0NPTlNUX0ZJTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1BURVBERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1RJTUVTVEFNUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkZDMDAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1dPUkxEX1NXSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JQVFJfV1JCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1dQVFJfUE9MTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX0lCX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BNV9SRUxBWF9PUkRFUklOR19MVVRfX1JCX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNV9DSElDS0VOX0JJVFNfMgorI2RlZmluZSBTRE1BNV9DSElDS0VOX0JJVFNfMl9fRjMyX0NNRF9QUk9DX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfQ0hJQ0tFTl9CSVRTXzJfX0YzMl9DTURfUFJPQ19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vU0RNQTVfU1RBVFVTM19SRUcKKyNkZWZpbmUgU0RNQTVfU1RBVFVTM19SRUdfX0NNRF9PUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1NUQVRVUzNfUkVHX19QUkVWX1ZNX0NNRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTVfU1RBVFVTM19SRUdfX0VYQ0VQVElPTl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNV9TVEFUVVMzX1JFR19fUVVFVUVfSURfTUFUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE1X1NUQVRVUzNfUkVHX19JTlRfUVVFVUVfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTVfU1RBVFVTM19SRUdfX0NNRF9PUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTVfU1RBVFVTM19SRUdfX1BSRVZfVk1fQ01EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgU0RNQTVfU1RBVFVTM19SRUdfX0VYQ0VQVElPTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTVfU1RBVFVTM19SRUdfX1FVRVVFX0lEX01BVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTVfU1RBVFVTM19SRUdfX0lOVF9RVUVVRV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0MwMDAwMEwKKy8vU0RNQTVfUEhZU0lDQUxfQUREUl9MTworI2RlZmluZSBTRE1BNV9QSFlTSUNBTF9BRERSX0xPX19EX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEhZU0lDQUxfQUREUl9MT19fRElSVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE1X1BIWVNJQ0FMX0FERFJfTE9fX1BIWV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9QSFlTSUNBTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTVfUEhZU0lDQUxfQUREUl9MT19fRF9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUEhZU0lDQUxfQUREUl9MT19fRElSVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTVfUEhZU0lDQUxfQUREUl9MT19fUEhZX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUEhZU0lDQUxfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjAwMEwKKy8vU0RNQTVfUEhZU0lDQUxfQUREUl9ISQorI2RlZmluZSBTRE1BNV9QSFlTSUNBTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEhZU0lDQUxfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vU0RNQTVfUEhBU0UyX1FVQU5UVU0KKyNkZWZpbmUgU0RNQTVfUEhBU0UyX1FVQU5UVU1fX1VOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BIQVNFMl9RVUFOVFVNX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9QSEFTRTJfUVVBTlRVTV9fUFJFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE1X1BIQVNFMl9RVUFOVFVNX19VTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUE1X1BIQVNFMl9RVUFOVFVNX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGMDBMCisjZGVmaW5lIFNETUE1X1BIQVNFMl9RVUFOVFVNX19QUkVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE1X0VSUk9SX0xPRworI2RlZmluZSBTRE1BNV9FUlJPUl9MT0dfX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfRVJST1JfTE9HX19TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNV9FUlJPUl9MT0dfX09WRVJSSURFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BNV9FUlJPUl9MT0dfX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9TRE1BNV9QVUJfRFVNTVlfUkVHMAorI2RlZmluZSBTRE1BNV9QVUJfRFVNTVlfUkVHMF9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUFVCX0RVTU1ZX1JFRzBfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUFVCX0RVTU1ZX1JFRzEKKyNkZWZpbmUgU0RNQTVfUFVCX0RVTU1ZX1JFRzFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BVQl9EVU1NWV9SRUcxX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1BVQl9EVU1NWV9SRUcyCisjZGVmaW5lIFNETUE1X1BVQl9EVU1NWV9SRUcyX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QVUJfRFVNTVlfUkVHMl9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QVUJfRFVNTVlfUkVHMworI2RlZmluZSBTRE1BNV9QVUJfRFVNTVlfUkVHM19fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUFVCX0RVTU1ZX1JFRzNfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfRjMyX0NPVU5URVIKKyNkZWZpbmUgU0RNQTVfRjMyX0NPVU5URVJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0YzMl9DT1VOVEVSX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1VOQlJFQUtBQkxFCisjZGVmaW5lIFNETUE1X1VOQlJFQUtBQkxFX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9VTkJSRUFLQUJMRV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9QRVJGTU9OX0NOVEwKKyNkZWZpbmUgU0RNQTVfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BFUkZNT05fQ05UTF9fUEVSRl9DTEVBUjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE1X1BFUkZNT05fQ05UTF9fUEVSRl9DTEVBUjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNV9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTVfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTVfUEVSRk1PTl9DTlRMX19QRVJGX1NFTDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGQ0wKKyNkZWZpbmUgU0RNQTVfUEVSRk1PTl9DTlRMX19QRVJGX0VOQUJMRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTVfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTVfUEVSRk1PTl9DTlRMX19QRVJGX1NFTDFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRjAwMEwKKy8vU0RNQTVfUEVSRkNPVU5URVIwX1JFU1VMVAorI2RlZmluZSBTRE1BNV9QRVJGQ09VTlRFUjBfUkVTVUxUX19QRVJGX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEVSRkNPVU5URVIwX1JFU1VMVF9fUEVSRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUEVSRkNPVU5URVIxX1JFU1VMVAorI2RlZmluZSBTRE1BNV9QRVJGQ09VTlRFUjFfUkVTVUxUX19QRVJGX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEVSRkNPVU5URVIxX1JFU1VMVF9fUEVSRl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFCisjZGVmaW5lIFNETUE1X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTVfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19TRUxFQ1RfUldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZGTAorI2RlZmluZSBTRE1BNV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1JBTkdFX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZDMDAwTAorI2RlZmluZSBTRE1BNV9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NFTEVDVF9SV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9TRE1BNV9DUkRfQ05UTAorI2RlZmluZSBTRE1BNV9DUkRfQ05UTF9fTUNfV1JSRVFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfQ1JEX0NOVExfX01DX1JEUkVRX0NSRURJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE1X0NSRF9DTlRMX19NQ19XUlJFUV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGODBMCisjZGVmaW5lIFNETUE1X0NSRF9DTlRMX19NQ19SRFJFUV9DUkVESVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0UwMDBMCisvL1NETUE1X0dQVV9JT1ZfVklPTEFUSU9OX0xPRworI2RlZmluZSBTRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZJT0xBVElPTl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19NVUxUSVBMRV9WSU9MQVRJT05fU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE1X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fQUREUkVTU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1dSSVRFX09QRVJBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE1X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTVfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WRklEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZJT0xBVElPTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX01VTFRJUExFX1ZJT0xBVElPTl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX0FERFJFU1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZDTAorI2RlZmluZSBTRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1dSSVRFX09QRVJBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BNV9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorLy9TRE1BNV9VTFZfQ05UTAorI2RlZmluZSBTRE1BNV9VTFZfQ05UTF9fSFlTVEVSRVNJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BNV9VTFZfQ05UTF9fRVhJVF9VTFZfSU5UX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTVfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNV9VTFZfQ05UTF9fVUxWX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE1X1VMVl9DTlRMX19IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisjZGVmaW5lIFNETUE1X1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX0NMUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUE1X1VMVl9DTlRMX19FWElUX1VMVl9JTlRfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE1X1VMVl9DTlRMX19FTlRFUl9VTFZfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE1X1VMVl9DTlRMX19FWElUX1VMVl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE1X1VMVl9DTlRMX19VTFZfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE1X0VBX0RCSVRfQUREUl9EQVRBCisjZGVmaW5lIFNETUE1X0VBX0RCSVRfQUREUl9EQVRBX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9FQV9EQklUX0FERFJfREFUQV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9FQV9EQklUX0FERFJfSU5ERVgKKyNkZWZpbmUgU0RNQTVfRUFfREJJVF9BRERSX0lOREVYX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0VBX0RCSVRfQUREUl9JTkRFWF9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisvL1NETUE1X0dQVV9JT1ZfVklPTEFUSU9OX0xPRzIKKyNkZWZpbmUgU0RNQTVfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fSU5JVElBVE9SX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfX0lOSVRJQVRPUl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1NETUE1X0dGWF9SQl9DTlRMCisjZGVmaW5lIFNETUE1X0dGWF9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE1X0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNV9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNV9HRlhfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE1X0dGWF9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRUwKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGMDAwMEwKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vU0RNQTVfR0ZYX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0dGWF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X0dGWF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X0dGWF9SQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfUkJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNV9HRlhfUkJfUlBUUgorI2RlZmluZSBTRE1BNV9HRlhfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0dGWF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X0dGWF9SQl9XUFRSCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfUkJfV1BUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9HRlhfUkJfV1BUUl9ISQorI2RlZmluZSBTRE1BNV9HRlhfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X0dGWF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX1JQVFJfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0dGWF9SQl9SUFRSX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X0dGWF9SQl9SUFRSX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0dGWF9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9HRlhfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9HRlhfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9HRlhfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9HRlhfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X0dGWF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9HRlhfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X0dGWF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X0dGWF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X0dGWF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X0dGWF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X0dGWF9JQl9SUFRSCisjZGVmaW5lIFNETUE1X0dGWF9JQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9HRlhfSUJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNV9HRlhfSUJfT0ZGU0VUCisjZGVmaW5lIFNETUE1X0dGWF9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9HRlhfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNV9HRlhfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9HRlhfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfR0ZYX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfR0ZYX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTVfR0ZYX0lCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0dGWF9JQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X0dGWF9JQl9TSVpFCisjZGVmaW5lIFNETUE1X0dGWF9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9HRlhfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X0dGWF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTVfR0ZYX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0dGWF9DT05URVhUX1NUQVRVU19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTVfR0ZYX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfR0ZYX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE1X0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYUElSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNV9HRlhfRE9PUkJFTEwKKyNkZWZpbmUgU0RNQTVfR0ZYX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNV9HRlhfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE1X0dGWF9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE1X0dGWF9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE1X0dGWF9DT05URVhUX0NOVEwKKyNkZWZpbmUgU0RNQTVfR0ZYX0NPTlRFWFRfQ05UTF9fUkVTVU1FX0NUWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNV9HRlhfQ09OVEVYVF9DTlRMX19SRVNVTUVfQ1RYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorLy9TRE1BNV9HRlhfU1RBVFVTCisjZGVmaW5lIFNETUE1X0dGWF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgU0RNQTVfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKy8vU0RNQTVfR0ZYX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9HRlhfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X0dGWF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X0dGWF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X0dGWF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTVfR0ZYX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0dGWF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTVfR0ZYX1dBVEVSTUFSS19fUkRfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTVfR0ZYX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTVfR0ZYX0RPT1JCRUxMX09GRlNFVAorI2RlZmluZSBTRE1BNV9HRlhfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfR0ZYX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGQ0wKKy8vU0RNQTVfR0ZYX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X0dGWF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9HRlhfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9HRlhfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfR0ZYX0NTQV9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X0dGWF9DU0FfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X0dGWF9JQl9TVUJfUkVNQUlOCisjZGVmaW5lIFNETUE1X0dGWF9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9HRlhfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9HRlhfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfR0ZYX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNV9HRlhfRFVNTVlfUkVHX19EVU1NWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX0RVTU1ZX1JFR19fRFVNTVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X0dGWF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNV9HRlhfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE1X0dGWF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9HRlhfUkJfQVFMX0NOVExfX0FRTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9HRlhfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNV9HRlhfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNV9HRlhfTUlOT1JfUFRSX1VQREFURQorI2RlZmluZSBTRE1BNV9HRlhfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfR0ZYX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX01JRENNRF9EQVRBMgorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0RBVEE0X19EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9EQVRBNF9fREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX01JRENNRF9EQVRBNQorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0RBVEE3X19EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9EQVRBN19fREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX01JRENNRF9EQVRBOAorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfR0ZYX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X0dGWF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfR0ZYX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X0dGWF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9HRlhfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9QQUdFX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNV9QQUdFX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1BBR0VfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTVfUEFHRV9SQl9SUFRSCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QQUdFX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1BBR0VfUkJfV1BUUgorI2RlZmluZSBTRE1BNV9QQUdFX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUEFHRV9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1BBR0VfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QQUdFX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNV9QQUdFX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1BBR0VfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9QQUdFX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEFHRV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1BBR0VfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9QQUdFX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1BBR0VfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1BBR0VfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1BBR0VfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1BBR0VfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X1BBR0VfSUJfUlBUUgorI2RlZmluZSBTRE1BNV9QQUdFX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUEFHRV9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTVfUEFHRV9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTVfUEFHRV9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1BBR0VfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE1X1BBR0VfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9QQUdFX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUEFHRV9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfUEFHRV9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X1BBR0VfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QQUdFX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTVfUEFHRV9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1BBR0VfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X1BBR0VfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9QQUdFX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1BBR0VfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1BBR0VfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTVfUEFHRV9ET09SQkVMTAorI2RlZmluZSBTRE1BNV9QQUdFX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1BBR0VfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUEFHRV9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUEFHRV9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfUEFHRV9TVEFUVVMKKyNkZWZpbmUgU0RNQTVfUEFHRV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNV9QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9QQUdFX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9QQUdFX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEFHRV9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1BBR0VfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1BBR0VfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1BBR0VfV0FURVJNQVJLCisjZGVmaW5lIFNETUE1X1BBR0VfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1BBR0VfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE1X1BBR0VfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE1X1BBR0VfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE1X1BBR0VfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9QQUdFX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNV9QQUdFX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X1BBR0VfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9QQUdFX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9QQUdFX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE1X1BBR0VfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QQUdFX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTVfUEFHRV9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1BBR0VfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9QQUdFX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEFHRV9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfUEFHRV9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTVfUEFHRV9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1BBR0VfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9QQUdFX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTVfUEFHRV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTVfUEFHRV9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE1X1BBR0VfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9QQUdFX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEFHRV9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUEFHRV9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTVfUEFHRV9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1BBR0VfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE1X1BBR0VfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QQUdFX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEFHRV9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUEFHRV9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTVfUEFHRV9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1BBR0VfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE1X1BBR0VfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QQUdFX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUEFHRV9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUEFHRV9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTVfUEFHRV9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1BBR0VfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1BBR0VfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE1X1BBR0VfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9QQUdFX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X1BBR0VfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUEFHRV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1BBR0VfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9QQUdFX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEMwX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9STEMwX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNV9STEMwX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzBfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNV9STEMwX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTVfUkxDMF9SQl9SUFRSCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMwX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzBfUkJfV1BUUgorI2RlZmluZSBTRE1BNV9STEMwX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1JMQzBfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMwX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNV9STEMwX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzBfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9STEMwX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzBfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMwX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzBfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzBfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1JMQzBfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1JMQzBfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X1JMQzBfSUJfUlBUUgorI2RlZmluZSBTRE1BNV9STEMwX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDMF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTVfUkxDMF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTVfUkxDMF9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzBfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE1X1JMQzBfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9STEMwX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUkxDMF9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfUkxDMF9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X1JMQzBfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMwX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTVfUkxDMF9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzBfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzBfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9STEMwX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1JMQzBfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1JMQzBfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTVfUkxDMF9ET09SQkVMTAorI2RlZmluZSBTRE1BNV9STEMwX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1JMQzBfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUkxDMF9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUkxDMF9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfUkxDMF9TVEFUVVMKKyNkZWZpbmUgU0RNQTVfUkxDMF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNV9STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEMwX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9STEMwX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMF9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzBfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzBfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzBfV0FURVJNQVJLCisjZGVmaW5lIFNETUE1X1JMQzBfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzBfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE1X1JMQzBfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE1X1JMQzBfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE1X1JMQzBfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEMwX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNV9STEMwX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X1JMQzBfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEMwX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9STEMwX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzBfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMwX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTVfUkxDMF9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzBfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9STEMwX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMF9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfUkxDMF9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTVfUkxDMF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzBfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEMwX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTVfUkxDMF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTVfUkxDMF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE1X1JMQzBfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9STEMwX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMF9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMF9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTVfUkxDMF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzBfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE1X1JMQzBfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMwX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMF9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMF9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTVfUkxDMF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzBfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE1X1JMQzBfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMwX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMF9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMF9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTVfUkxDMF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzBfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzBfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE1X1JMQzBfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMwX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzBfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDMF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzBfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9STEMwX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEMxX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9STEMxX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNV9STEMxX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzFfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNV9STEMxX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTVfUkxDMV9SQl9SUFRSCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMxX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzFfUkJfV1BUUgorI2RlZmluZSBTRE1BNV9STEMxX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMV9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1JMQzFfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMxX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNV9STEMxX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzFfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9STEMxX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzFfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMxX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzFfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzFfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1JMQzFfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1JMQzFfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X1JMQzFfSUJfUlBUUgorI2RlZmluZSBTRE1BNV9STEMxX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDMV9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTVfUkxDMV9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTVfUkxDMV9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzFfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE1X1JMQzFfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9STEMxX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUkxDMV9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfUkxDMV9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X1JMQzFfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMxX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTVfUkxDMV9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzFfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzFfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9STEMxX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1JMQzFfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1JMQzFfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTVfUkxDMV9ET09SQkVMTAorI2RlZmluZSBTRE1BNV9STEMxX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1JMQzFfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUkxDMV9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUkxDMV9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfUkxDMV9TVEFUVVMKKyNkZWZpbmUgU0RNQTVfUkxDMV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNV9STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEMxX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9STEMxX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMV9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzFfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzFfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzFfV0FURVJNQVJLCisjZGVmaW5lIFNETUE1X1JMQzFfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzFfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE1X1JMQzFfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE1X1JMQzFfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE1X1JMQzFfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEMxX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNV9STEMxX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X1JMQzFfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEMxX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9STEMxX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzFfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMxX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTVfUkxDMV9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzFfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9STEMxX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMV9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfUkxDMV9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTVfUkxDMV9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzFfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEMxX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTVfUkxDMV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTVfUkxDMV9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE1X1JMQzFfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9STEMxX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMV9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMV9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTVfUkxDMV9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzFfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE1X1JMQzFfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMxX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMV9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMV9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTVfUkxDMV9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzFfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE1X1JMQzFfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMxX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMV9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMV9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTVfUkxDMV9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzFfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzFfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE1X1JMQzFfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMxX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzFfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDMV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzFfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9STEMxX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEMyX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9STEMyX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNV9STEMyX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzJfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNV9STEMyX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTVfUkxDMl9SQl9SUFRSCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMyX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzJfUkJfV1BUUgorI2RlZmluZSBTRE1BNV9STEMyX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMl9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1JMQzJfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMyX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNV9STEMyX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzJfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9STEMyX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzJfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMyX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzJfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzJfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1JMQzJfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1JMQzJfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X1JMQzJfSUJfUlBUUgorI2RlZmluZSBTRE1BNV9STEMyX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDMl9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTVfUkxDMl9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTVfUkxDMl9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzJfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE1X1JMQzJfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9STEMyX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUkxDMl9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfUkxDMl9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X1JMQzJfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMyX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTVfUkxDMl9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzJfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzJfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9STEMyX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1JMQzJfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1JMQzJfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTVfUkxDMl9ET09SQkVMTAorI2RlZmluZSBTRE1BNV9STEMyX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1JMQzJfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUkxDMl9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUkxDMl9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfUkxDMl9TVEFUVVMKKyNkZWZpbmUgU0RNQTVfUkxDMl9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNV9STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEMyX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9STEMyX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMl9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzJfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzJfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzJfV0FURVJNQVJLCisjZGVmaW5lIFNETUE1X1JMQzJfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzJfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE1X1JMQzJfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE1X1JMQzJfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE1X1JMQzJfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEMyX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNV9STEMyX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X1JMQzJfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEMyX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9STEMyX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzJfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMyX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTVfUkxDMl9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzJfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9STEMyX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMl9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfUkxDMl9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTVfUkxDMl9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzJfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEMyX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTVfUkxDMl9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTVfUkxDMl9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE1X1JMQzJfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9STEMyX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMl9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMl9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTVfUkxDMl9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzJfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE1X1JMQzJfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMyX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMl9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMl9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTVfUkxDMl9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzJfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE1X1JMQzJfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMyX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDMl9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDMl9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTVfUkxDMl9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzJfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzJfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE1X1JMQzJfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMyX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzJfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDMl9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzJfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9STEMyX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEMzX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9STEMzX1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNV9STEMzX1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzNfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNV9STEMzX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTVfUkxDM19SQl9SUFRSCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMzX1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzNfUkJfV1BUUgorI2RlZmluZSBTRE1BNV9STEMzX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDM19SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1JMQzNfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMzX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNV9STEMzX1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzNfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9STEMzX0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDM19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzNfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMzX0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzNfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzNfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1JMQzNfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1JMQzNfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X1JMQzNfSUJfUlBUUgorI2RlZmluZSBTRE1BNV9STEMzX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDM19JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTVfUkxDM19JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTVfUkxDM19JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzNfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE1X1JMQzNfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9STEMzX0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUkxDM19JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfUkxDM19JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X1JMQzNfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMzX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTVfUkxDM19JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzNfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzNfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9STEMzX0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1JMQzNfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1JMQzNfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTVfUkxDM19ET09SQkVMTAorI2RlZmluZSBTRE1BNV9STEMzX0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1JMQzNfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUkxDM19ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUkxDM19ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfUkxDM19TVEFUVVMKKyNkZWZpbmUgU0RNQTVfUkxDM19TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNV9STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEMzX0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9STEMzX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDM19ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzNfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzNfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzNfV0FURVJNQVJLCisjZGVmaW5lIFNETUE1X1JMQzNfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzNfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE1X1JMQzNfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE1X1JMQzNfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE1X1JMQzNfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEMzX0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNV9STEMzX0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X1JMQzNfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEMzX0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9STEMzX0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzNfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMzX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTVfUkxDM19JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzNfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9STEMzX1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDM19QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfUkxDM19EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTVfUkxDM19EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzNfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEMzX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTVfUkxDM19SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTVfUkxDM19NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE1X1JMQzNfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9STEMzX01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDM19NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDM19NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTVfUkxDM19NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzNfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE1X1JMQzNfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMzX01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDM19NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDM19NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTVfUkxDM19NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzNfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE1X1JMQzNfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMzX01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDM19NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDM19NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTVfUkxDM19NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzNfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzNfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE1X1JMQzNfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEMzX01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzNfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDM19NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzNfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9STEMzX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEM0X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9STEM0X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNV9STEM0X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzRfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNV9STEM0X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTVfUkxDNF9SQl9SUFRSCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM0X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzRfUkJfV1BUUgorI2RlZmluZSBTRE1BNV9STEM0X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1JMQzRfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM0X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNV9STEM0X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzRfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9STEM0X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzRfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM0X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzRfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzRfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1JMQzRfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1JMQzRfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X1JMQzRfSUJfUlBUUgorI2RlZmluZSBTRE1BNV9STEM0X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDNF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTVfUkxDNF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTVfUkxDNF9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzRfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE1X1JMQzRfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9STEM0X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUkxDNF9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfUkxDNF9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X1JMQzRfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM0X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTVfUkxDNF9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzRfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzRfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9STEM0X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1JMQzRfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1JMQzRfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTVfUkxDNF9ET09SQkVMTAorI2RlZmluZSBTRE1BNV9STEM0X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1JMQzRfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUkxDNF9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUkxDNF9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfUkxDNF9TVEFUVVMKKyNkZWZpbmUgU0RNQTVfUkxDNF9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNV9STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEM0X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9STEM0X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNF9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzRfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzRfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzRfV0FURVJNQVJLCisjZGVmaW5lIFNETUE1X1JMQzRfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzRfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE1X1JMQzRfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE1X1JMQzRfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE1X1JMQzRfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEM0X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNV9STEM0X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X1JMQzRfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEM0X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9STEM0X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzRfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM0X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTVfUkxDNF9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzRfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9STEM0X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNF9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfUkxDNF9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTVfUkxDNF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzRfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEM0X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTVfUkxDNF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTVfUkxDNF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE1X1JMQzRfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9STEM0X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNF9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNF9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTVfUkxDNF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzRfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE1X1JMQzRfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM0X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNF9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNF9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTVfUkxDNF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzRfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE1X1JMQzRfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM0X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNF9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNF9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTVfUkxDNF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzRfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzRfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE1X1JMQzRfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM0X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzRfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDNF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzRfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9STEM0X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEM1X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9STEM1X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNV9STEM1X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzVfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNV9STEM1X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTVfUkxDNV9SQl9SUFRSCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM1X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzVfUkJfV1BUUgorI2RlZmluZSBTRE1BNV9STEM1X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNV9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1JMQzVfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM1X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNV9STEM1X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzVfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9STEM1X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzVfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM1X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzVfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzVfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1JMQzVfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1JMQzVfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X1JMQzVfSUJfUlBUUgorI2RlZmluZSBTRE1BNV9STEM1X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDNV9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTVfUkxDNV9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTVfUkxDNV9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzVfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE1X1JMQzVfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9STEM1X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUkxDNV9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfUkxDNV9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X1JMQzVfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM1X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTVfUkxDNV9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzVfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzVfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9STEM1X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1JMQzVfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1JMQzVfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTVfUkxDNV9ET09SQkVMTAorI2RlZmluZSBTRE1BNV9STEM1X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1JMQzVfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUkxDNV9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUkxDNV9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfUkxDNV9TVEFUVVMKKyNkZWZpbmUgU0RNQTVfUkxDNV9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNV9STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEM1X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9STEM1X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNV9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzVfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzVfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzVfV0FURVJNQVJLCisjZGVmaW5lIFNETUE1X1JMQzVfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzVfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE1X1JMQzVfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE1X1JMQzVfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE1X1JMQzVfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEM1X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNV9STEM1X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X1JMQzVfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEM1X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9STEM1X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzVfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM1X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTVfUkxDNV9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzVfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9STEM1X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNV9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfUkxDNV9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTVfUkxDNV9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzVfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEM1X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTVfUkxDNV9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTVfUkxDNV9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE1X1JMQzVfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9STEM1X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNV9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNV9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTVfUkxDNV9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzVfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE1X1JMQzVfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM1X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNV9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNV9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTVfUkxDNV9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzVfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE1X1JMQzVfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM1X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNV9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNV9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTVfUkxDNV9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzVfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzVfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE1X1JMQzVfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM1X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzVfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDNV9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzVfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9STEM1X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEM2X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9STEM2X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNV9STEM2X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzZfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNV9STEM2X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTVfUkxDNl9SQl9SUFRSCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM2X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzZfUkJfV1BUUgorI2RlZmluZSBTRE1BNV9STEM2X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNl9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1JMQzZfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM2X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNV9STEM2X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzZfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9STEM2X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzZfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM2X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzZfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzZfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1JMQzZfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1JMQzZfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X1JMQzZfSUJfUlBUUgorI2RlZmluZSBTRE1BNV9STEM2X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDNl9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTVfUkxDNl9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTVfUkxDNl9JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzZfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE1X1JMQzZfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9STEM2X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUkxDNl9JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfUkxDNl9JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X1JMQzZfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM2X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTVfUkxDNl9JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzZfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzZfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9STEM2X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1JMQzZfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1JMQzZfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTVfUkxDNl9ET09SQkVMTAorI2RlZmluZSBTRE1BNV9STEM2X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1JMQzZfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUkxDNl9ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUkxDNl9ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfUkxDNl9TVEFUVVMKKyNkZWZpbmUgU0RNQTVfUkxDNl9TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNV9STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEM2X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9STEM2X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNl9ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzZfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzZfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzZfV0FURVJNQVJLCisjZGVmaW5lIFNETUE1X1JMQzZfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzZfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE1X1JMQzZfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE1X1JMQzZfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE1X1JMQzZfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEM2X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNV9STEM2X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X1JMQzZfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEM2X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9STEM2X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzZfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM2X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTVfUkxDNl9JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzZfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9STEM2X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNl9QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfUkxDNl9EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTVfUkxDNl9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzZfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEM2X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTVfUkxDNl9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTVfUkxDNl9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE1X1JMQzZfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9STEM2X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNl9NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNl9NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTVfUkxDNl9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzZfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE1X1JMQzZfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM2X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNl9NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNl9NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTVfUkxDNl9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzZfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE1X1JMQzZfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM2X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDNl9NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDNl9NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTVfUkxDNl9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzZfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzZfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE1X1JMQzZfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM2X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzZfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDNl9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzZfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9STEM2X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEM3X1JCX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9DTlRMX19SQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfQ05UTF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfQ05UTF9fUkJfUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9DTlRMX19SQl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JCX1BSSVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNV9STEM3X1JCX0NOVExfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNV9STEM3X1JCX0JBU0UKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9CQVNFX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfQkFTRV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzdfUkJfQkFTRV9ISQorI2RlZmluZSBTRE1BNV9STEM3X1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vU0RNQTVfUkxDN19SQl9SUFRSCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X1JCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM3X1JCX1JQVFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9SUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfUlBUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzdfUkJfV1BUUgorI2RlZmluZSBTRE1BNV9STEM3X1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDN19SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X1JCX1dQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0ZSRVFVRU5DWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjBMCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE1X1JMQzdfUkJfUlBUUl9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM3X1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNV9STEM3X1JCX1JQVFJfQUREUl9MT19fUlBUUl9XQl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9SUFRSX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfUlBUUl9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzdfSUJfQ05UTAorI2RlZmluZSBTRE1BNV9STEM3X0lCX0NOVExfX0lCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDN19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzdfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM3X0lCX0NOVExfX0NNRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzdfSUJfQ05UTF9fSUJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzdfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE1X1JMQzdfSUJfQ05UTF9fU1dJVENIX0lOU0lERV9JQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE1X1JMQzdfSUJfQ05UTF9fQ01EX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisvL1NETUE1X1JMQzdfSUJfUlBUUgorI2RlZmluZSBTRE1BNV9STEM3X0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDN19JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTVfUkxDN19JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTVfUkxDN19JQl9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzdfSUJfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE1X1JMQzdfSUJfQkFTRV9MTworI2RlZmluZSBTRE1BNV9STEM3X0lCX0JBU0VfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTVfUkxDN19JQl9CQVNFX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZFMEwKKy8vU0RNQTVfUkxDN19JQl9CQVNFX0hJCisjZGVmaW5lIFNETUE1X1JMQzdfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM3X0lCX1NJWkUKKyNkZWZpbmUgU0RNQTVfUkxDN19JQl9TSVpFX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfSUJfU0laRV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzdfU0tJUF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzdfU0tJUF9DTlRMX19TS0lQX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGTAorLy9TRE1BNV9STEM3X0NPTlRFWFRfU1RBVFVTCisjZGVmaW5lIFNETUE1X1JMQzdfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE1X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNV9STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE1X1JMQzdfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNV9STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTVfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKy8vU0RNQTVfUkxDN19ET09SQkVMTAorI2RlZmluZSBTRE1BNV9STEM3X0RPT1JCRUxMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE1X1JMQzdfRE9PUkJFTExfX0NBUFRVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTVfUkxDN19ET09SQkVMTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTVfUkxDN19ET09SQkVMTF9fQ0FQVFVSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTVfUkxDN19TVEFUVVMKKyNkZWZpbmUgU0RNQTVfUkxDN19TVEFUVVNfX1dQVFJfVVBEQVRFX0ZBSUxfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNV9STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfUEVORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNV9STEM3X0RPT1JCRUxMX0xPRworI2RlZmluZSBTRE1BNV9STEM3X0RPT1JCRUxMX0xPR19fQkVfRVJST1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDN19ET09SQkVMTF9MT0dfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzdfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE1X1JMQzdfRE9PUkJFTExfTE9HX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzdfV0FURVJNQVJLCisjZGVmaW5lIFNETUE1X1JMQzdfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE1X1JMQzdfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFNETUE1X1JMQzdfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE1X1JMQzdfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE1X1JMQzdfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEM3X0RPT1JCRUxMX09GRlNFVF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNV9STEM3X0NTQV9BRERSX0xPCisjZGVmaW5lIFNETUE1X1JMQzdfQ1NBX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNV9STEM3X0NTQV9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNV9STEM3X0NTQV9BRERSX0hJCisjZGVmaW5lIFNETUE1X1JMQzdfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM3X0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTVfUkxDN19JQl9TVUJfUkVNQUlOX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfSUJfU1VCX1JFTUFJTl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE1X1JMQzdfUFJFRU1QVAorI2RlZmluZSBTRE1BNV9STEM3X1BSRUVNUFRfX0lCX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDN19QUkVFTVBUX19JQl9QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTVfUkxDN19EVU1NWV9SRUcKKyNkZWZpbmUgU0RNQTVfUkxDN19EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE8KKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE1X1JMQzdfUkJfQVFMX0NOVEwKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNV9STEM3X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRUwKKyNkZWZpbmUgU0RNQTVfUkxDN19SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vU0RNQTVfUkxDN19NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE1X1JMQzdfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X01JTk9SX1BUUl9VUERBVEVfX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNV9STEM3X01JRENNRF9EQVRBMAorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9EQVRBMF9fREFUQTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDN19NSURDTURfREFUQTBfX0RBVEEwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDN19NSURDTURfREFUQTEKKyNkZWZpbmUgU0RNQTVfUkxDN19NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzdfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE1X1JMQzdfTUlEQ01EX0RBVEEyX19EQVRBMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9EQVRBMl9fREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM3X01JRENNRF9EQVRBMworI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9EQVRBM19fREFUQTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDN19NSURDTURfREFUQTNfX0RBVEEzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDN19NSURDTURfREFUQTQKKyNkZWZpbmUgU0RNQTVfUkxDN19NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzdfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE1X1JMQzdfTUlEQ01EX0RBVEE1X19EQVRBNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9EQVRBNV9fREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM3X01JRENNRF9EQVRBNgorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9EQVRBNl9fREFUQTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTVfUkxDN19NSURDTURfREFUQTZfX0RBVEE2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTVfUkxDN19NSURDTURfREFUQTcKKyNkZWZpbmUgU0RNQTVfUkxDN19NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE1X1JMQzdfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE1X1JMQzdfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE1X1JMQzdfTUlEQ01EX0RBVEE4X19EQVRBOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9EQVRBOF9fREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNV9STEM3X01JRENNRF9DTlRMCisjZGVmaW5lIFNETUE1X1JMQzdfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9DTlRMX19DT1BZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTVfUkxDN19NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE1X1JMQzdfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9DTlRMX19EQVRBX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9DTlRMX19DT1BZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNV9STEM3X01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hNi9zZG1hNl80XzJfMl9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hNi9zZG1hNl80XzJfMl9vZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTEyZGIyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWE2L3NkbWE2XzRfMl8yX29mZnNldC5oCkBAIC0wLDAgKzEsMTA0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfc2RtYTZfNF8yXzJfT0ZGU0VUX0hFQURFUgorI2RlZmluZSBfc2RtYTZfNF8yXzJfT0ZGU0VUX0hFQURFUgorCisKKworLy8gYWRkcmVzc0Jsb2NrOiBzZG1hNl9zZG1hNmRlYworLy8gYmFzZSBhZGRyZXNzOiAweDdjMDAwCisjZGVmaW5lIG1tU0RNQTZfVUNPREVfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCisjZGVmaW5lIG1tU0RNQTZfVUNPREVfQUREUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1VDT0RFX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQorI2RlZmluZSBtbVNETUE2X1VDT0RFX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9WTV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgbW1TRE1BNl9WTV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfVk1fQ1RYX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1CisjZGVmaW5lIG1tU0RNQTZfVk1fQ1RYX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1ZNX0NUWF9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgorI2RlZmluZSBtbVNETUE2X1ZNX0NUWF9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9BQ1RJVkVfRkNOX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgbW1TRE1BNl9BQ1RJVkVfRkNOX0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfVk1fQ1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIG1tU0RNQTZfVk1fQ1RYX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1ZJUlRfUkVTRVRfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOQorI2RlZmluZSBtbVNETUE2X1ZJUlRfUkVTRVRfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9WRl9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGEKKyNkZWZpbmUgbW1TRE1BNl9WRl9FTkFCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBiCisjZGVmaW5lIG1tU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0NPTlRFWFRfUkVHX1RZUEUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYworI2RlZmluZSBtbVNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9DT05URVhUX1JFR19UWVBFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGQKKyNkZWZpbmUgbW1TRE1BNl9DT05URVhUX1JFR19UWVBFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBlCisjZGVmaW5lIG1tU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BVQl9SRUdfVFlQRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZgorI2RlZmluZSBtbVNETUE2X1BVQl9SRUdfVFlQRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QVUJfUkVHX1RZUEUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAKKyNkZWZpbmUgbW1TRE1BNl9QVUJfUkVHX1RZUEUxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUFVCX1JFR19UWVBFMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDExCisjZGVmaW5lIG1tU0RNQTZfUFVCX1JFR19UWVBFMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BVQl9SRUdfVFlQRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMgorI2RlZmluZSBtbVNETUE2X1BVQl9SRUdfVFlQRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9NTUhVQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTMKKyNkZWZpbmUgbW1TRE1BNl9NTUhVQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfQ09OVEVYVF9HUk9VUF9CT1VOREFSWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE5CisjZGVmaW5lIG1tU0RNQTZfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BPV0VSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYQorI2RlZmluZSBtbVNETUE2X1BPV0VSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9DTEtfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWIKKyNkZWZpbmUgbW1TRE1BNl9DTEtfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFjCisjZGVmaW5lIG1tU0RNQTZfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0NISUNLRU5fQklUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZAorI2RlZmluZSBtbVNETUE2X0NISUNLRU5fQklUU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HQl9BRERSX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWUKKyNkZWZpbmUgbW1TRE1BNl9HQl9BRERSX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFmCisjZGVmaW5lIG1tU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JCX1JQVFJfRkVUQ0hfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMAorI2RlZmluZSBtbVNETUE2X1JCX1JQVFJfRkVUQ0hfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjEKKyNkZWZpbmUgbW1TRE1BNl9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkJfUlBUUl9GRVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyCisjZGVmaW5lIG1tU0RNQTZfUkJfUlBUUl9GRVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0lCX09GRlNFVF9GRVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMworI2RlZmluZSBtbVNETUE2X0lCX09GRlNFVF9GRVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QUk9HUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgbW1TRE1BNl9QUk9HUkFNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfU1RBVFVTX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI1CisjZGVmaW5lIG1tU0RNQTZfU1RBVFVTX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1NUQVRVUzFfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNgorI2RlZmluZSBtbVNETUE2X1NUQVRVUzFfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9SRF9CVVJTVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjcKKyNkZWZpbmUgbW1TRE1BNl9SRF9CVVJTVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfSEJNX1BBR0VfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI4CisjZGVmaW5lIG1tU0RNQTZfSEJNX1BBR0VfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1VDT0RFX0NIRUNLU1VNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOQorI2RlZmluZSBtbVNETUE2X1VDT0RFX0NIRUNLU1VNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9GMzJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmEKKyNkZWZpbmUgbW1TRE1BNl9GMzJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfRlJFRVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJiCisjZGVmaW5lIG1tU0RNQTZfRlJFRVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BIQVNFMF9RVUFOVFVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYworI2RlZmluZSBtbVNETUE2X1BIQVNFMF9RVUFOVFVNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QSEFTRTFfUVVBTlRVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmQKKyNkZWZpbmUgbW1TRE1BNl9QSEFTRTFfUVVBTlRVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfRURDX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMyCisjZGVmaW5lIG1tU0RNQTZfRURDX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0JBX1RIUkVTSE9MRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMworI2RlZmluZSBtbVNETUE2X0JBX1RIUkVTSE9MRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgbW1TRE1BNl9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM1CisjZGVmaW5lIG1tU0RNQTZfVkVSU0lPTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0VEQ19DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBtbVNETUE2X0VEQ19DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9FRENfQ09VTlRFUl9DTEVBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzcKKyNkZWZpbmUgbW1TRE1BNl9FRENfQ09VTlRFUl9DTEVBUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfU1RBVFVTMl9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIG1tU0RNQTZfU1RBVFVTMl9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0FUT01JQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOQorI2RlZmluZSBtbVNETUE2X0FUT01JQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9BVE9NSUNfUFJFT1BfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2EKKyNkZWZpbmUgbW1TRE1BNl9BVE9NSUNfUFJFT1BfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfQVRPTUlDX1BSRU9QX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNiCisjZGVmaW5lIG1tU0RNQTZfQVRPTUlDX1BSRU9QX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1VUQ0wxX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYworI2RlZmluZSBtbVNETUE2X1VUQ0wxX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9VVENMMV9XQVRFUk1LICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2QKKyNkZWZpbmUgbW1TRE1BNl9VVENMMV9XQVRFUk1LX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfVVRDTDFfUkRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNlCisjZGVmaW5lIG1tU0RNQTZfVVRDTDFfUkRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1VUQ0wxX1dSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZgorI2RlZmluZSBtbVNETUE2X1VUQ0wxX1dSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9VVENMMV9JTlYwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAKKyNkZWZpbmUgbW1TRE1BNl9VVENMMV9JTlYwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfVVRDTDFfSU5WMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQxCisjZGVmaW5lIG1tU0RNQTZfVVRDTDFfSU5WMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1VUQ0wxX0lOVjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MgorI2RlZmluZSBtbVNETUE2X1VUQ0wxX0lOVjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9VVENMMV9SRF9YTkFDSzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDMKKyNkZWZpbmUgbW1TRE1BNl9VVENMMV9SRF9YTkFDSzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfVVRDTDFfUkRfWE5BQ0sxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ0CisjZGVmaW5lIG1tU0RNQTZfVVRDTDFfUkRfWE5BQ0sxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1VUQ0wxX1dSX1hOQUNLMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NQorI2RlZmluZSBtbVNETUE2X1VUQ0wxX1dSX1hOQUNLMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9VVENMMV9XUl9YTkFDSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDYKKyNkZWZpbmUgbW1TRE1BNl9VVENMMV9XUl9YTkFDSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfVVRDTDFfVElNRU9VVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ3CisjZGVmaW5lIG1tU0RNQTZfVVRDTDFfVElNRU9VVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1VUQ0wxX1BBR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OAorI2RlZmluZSBtbVNETUE2X1VUQ0wxX1BBR0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QT1dFUl9DTlRMX0lETEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDkKKyNkZWZpbmUgbW1TRE1BNl9QT1dFUl9DTlRMX0lETEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkVMQVhfT1JERVJJTkdfTFVUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRhCisjZGVmaW5lIG1tU0RNQTZfUkVMQVhfT1JERVJJTkdfTFVUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0NISUNLRU5fQklUU18yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YgorI2RlZmluZSBtbVNETUE2X0NISUNLRU5fQklUU18yX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9TVEFUVVMzX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGMKKyNkZWZpbmUgbW1TRE1BNl9TVEFUVVMzX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEhZU0lDQUxfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRkCisjZGVmaW5lIG1tU0RNQTZfUEhZU0lDQUxfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BIWVNJQ0FMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZQorI2RlZmluZSBtbVNETUE2X1BIWVNJQ0FMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QSEFTRTJfUVVBTlRVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGYKKyNkZWZpbmUgbW1TRE1BNl9QSEFTRTJfUVVBTlRVTV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfRVJST1JfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUwCisjZGVmaW5lIG1tU0RNQTZfRVJST1JfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BVQl9EVU1NWV9SRUcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MQorI2RlZmluZSBtbVNETUE2X1BVQl9EVU1NWV9SRUcwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QVUJfRFVNTVlfUkVHMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTIKKyNkZWZpbmUgbW1TRE1BNl9QVUJfRFVNTVlfUkVHMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUFVCX0RVTU1ZX1JFRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUzCisjZGVmaW5lIG1tU0RNQTZfUFVCX0RVTU1ZX1JFRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BVQl9EVU1NWV9SRUczICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAorI2RlZmluZSBtbVNETUE2X1BVQl9EVU1NWV9SRUczX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9GMzJfQ09VTlRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTUKKyNkZWZpbmUgbW1TRE1BNl9GMzJfQ09VTlRFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfVU5CUkVBS0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU2CisjZGVmaW5lIG1tU0RNQTZfVU5CUkVBS0FCTEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BFUkZNT05fQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NworI2RlZmluZSBtbVNETUE2X1BFUkZNT05fQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QRVJGQ09VTlRFUjBfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTgKKyNkZWZpbmUgbW1TRE1BNl9QRVJGQ09VTlRFUjBfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEVSRkNPVU5URVIxX1JFU1VMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU5CisjZGVmaW5lIG1tU0RNQTZfUEVSRkNPVU5URVIxX1JFU1VMVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YQorI2RlZmluZSBtbVNETUE2X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9DUkRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWIKKyNkZWZpbmUgbW1TRE1BNl9DUkRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR1BVX0lPVl9WSU9MQVRJT05fTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVkCisjZGVmaW5lIG1tU0RNQTZfR1BVX0lPVl9WSU9MQVRJT05fTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1VMVl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZQorI2RlZmluZSBtbVNETUE2X1VMVl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9FQV9EQklUX0FERFJfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAKKyNkZWZpbmUgbW1TRE1BNl9FQV9EQklUX0FERFJfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfRUFfREJJVF9BRERSX0lOREVYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxCisjZGVmaW5lIG1tU0RNQTZfRUFfREJJVF9BRERSX0lOREVYX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPRzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MgorI2RlZmluZSBtbVNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9SQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MgorI2RlZmluZSBtbVNETUE2X0dGWF9SQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODMKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX1JCX1JQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg0CisjZGVmaW5lIG1tU0RNQTZfR0ZYX1JCX1JQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NQorI2RlZmluZSBtbVNETUE2X0dGWF9SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfV1BUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODYKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfV1BUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg3CisjZGVmaW5lIG1tU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9SQl9SUFRSX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OAorI2RlZmluZSBtbVNETUE2X0dGWF9SQl9SUFRSX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfUlBUUl9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODkKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfUlBUUl9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0lCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhhCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0lCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9JQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YgorI2RlZmluZSBtbVNETUE2X0dGWF9JQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfSUJfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGMKKyNkZWZpbmUgbW1TRE1BNl9HRlhfSUJfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0lCX0JBU0VfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhkCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0lCX0JBU0VfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9JQl9CQVNFX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZQorI2RlZmluZSBtbVNETUE2X0dGWF9JQl9CQVNFX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfSUJfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGYKKyNkZWZpbmUgbW1TRE1BNl9HRlhfSUJfU0laRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX1NLSVBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkwCisjZGVmaW5lIG1tU0RNQTZfR0ZYX1NLSVBfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9DT05URVhUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MQorI2RlZmluZSBtbVNETUE2X0dGWF9DT05URVhUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfRE9PUkJFTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTIKKyNkZWZpbmUgbW1TRE1BNl9HRlhfRE9PUkJFTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0NPTlRFWFRfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkzCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0NPTlRFWFRfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhOAorI2RlZmluZSBtbVNETUE2X0dGWF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTkKKyNkZWZpbmUgbW1TRE1BNl9HRlhfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFhCisjZGVmaW5lIG1tU0RNQTZfR0ZYX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYgorI2RlZmluZSBtbVNETUE2X0dGWF9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWMKKyNkZWZpbmUgbW1TRE1BNl9HRlhfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFkCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZgorI2RlZmluZSBtbVNETUE2X0dGWF9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjAKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMgorI2RlZmluZSBtbVNETUE2X0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjMKKyNkZWZpbmUgbW1TRE1BNl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI0CisjZGVmaW5lIG1tU0RNQTZfR0ZYX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNQorI2RlZmluZSBtbVNETUE2X0dGWF9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzAKKyNkZWZpbmUgbW1TRE1BNl9HRlhfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMgorI2RlZmluZSBtbVNETUE2X0dGWF9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzMKKyNkZWZpbmUgbW1TRE1BNl9HRlhfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM0CisjZGVmaW5lIG1tU0RNQTZfR0ZYX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNQorI2RlZmluZSBtbVNETUE2X0dGWF9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzYKKyNkZWZpbmUgbW1TRE1BNl9HRlhfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfR0ZYX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM3CisjZGVmaW5lIG1tU0RNQTZfR0ZYX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X0dGWF9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjOAorI2RlZmluZSBtbVNETUE2X0dGWF9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9HRlhfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzkKKyNkZWZpbmUgbW1TRE1BNl9HRlhfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ4CisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkOQorI2RlZmluZSBtbVNETUE2X1BBR0VfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRiCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYworI2RlZmluZSBtbVNETUE2X1BBR0VfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGQKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRlCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZgorI2RlZmluZSBtbVNETUE2X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTAKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMgorI2RlZmluZSBtbVNETUE2X1BBR0VfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTMKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU0CisjZGVmaW5lIG1tU0RNQTZfUEFHRV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNQorI2RlZmluZSBtbVNETUE2X1BBR0VfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTYKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU3CisjZGVmaW5lIG1tU0RNQTZfUEFHRV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlOAorI2RlZmluZSBtbVNETUE2X1BBR0VfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTkKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVhCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMAorI2RlZmluZSBtbVNETUE2X1BBR0VfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAyCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMworI2RlZmluZSBtbVNETUE2X1BBR0VfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDQKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA1CisjZGVmaW5lIG1tU0RNQTZfUEFHRV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNworI2RlZmluZSBtbVNETUE2X1BBR0VfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDgKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA5CisjZGVmaW5lIG1tU0RNQTZfUEFHRV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYQorI2RlZmluZSBtbVNETUE2X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGIKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBjCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwZAorI2RlZmluZSBtbVNETUE2X1BBR0VfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTgKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE5CisjZGVmaW5lIG1tU0RNQTZfUEFHRV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYQorI2RlZmluZSBtbVNETUE2X1BBR0VfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWIKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFjCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZAorI2RlZmluZSBtbVNETUE2X1BBR0VfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWUKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFmCisjZGVmaW5lIG1tU0RNQTZfUEFHRV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1BBR0VfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyMAorI2RlZmluZSBtbVNETUE2X1BBR0VfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjEKKyNkZWZpbmUgbW1TRE1BNl9QQUdFX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMwCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMQorI2RlZmluZSBtbVNETUE2X1JMQzBfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzIKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMzCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNAorI2RlZmluZSBtbVNETUE2X1JMQzBfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzUKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM2CisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNworI2RlZmluZSBtbVNETUE2X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzgKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM5CisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYQorI2RlZmluZSBtbVNETUE2X1JMQzBfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2IKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNjCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZAorI2RlZmluZSBtbVNETUE2X1JMQzBfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2UKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNmCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MAorI2RlZmluZSBtbVNETUE2X1JMQzBfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQyCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1OAorI2RlZmluZSBtbVNETUE2X1JMQzBfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTkKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVhCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1YgorI2RlZmluZSBtbVNETUE2X1JMQzBfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWMKKyNkZWZpbmUgbW1TRE1BNl9STEMwX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVkCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1ZgorI2RlZmluZSBtbVNETUE2X1JMQzBfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjAKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MgorI2RlZmluZSBtbVNETUE2X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjMKKyNkZWZpbmUgbW1TRE1BNl9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY0CisjZGVmaW5lIG1tU0RNQTZfUkxDMF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2NQorI2RlZmluZSBtbVNETUE2X1JMQzBfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzAKKyNkZWZpbmUgbW1TRE1BNl9STEMwX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MgorI2RlZmluZSBtbVNETUE2X1JMQzBfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzMKKyNkZWZpbmUgbW1TRE1BNl9STEMwX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc0CisjZGVmaW5lIG1tU0RNQTZfUkxDMF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NQorI2RlZmluZSBtbVNETUE2X1JMQzBfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzYKKyNkZWZpbmUgbW1TRE1BNl9STEMwX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc3CisjZGVmaW5lIG1tU0RNQTZfUkxDMF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzBfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3OAorI2RlZmluZSBtbVNETUE2X1JMQzBfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMwX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzkKKyNkZWZpbmUgbW1TRE1BNl9STEMwX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg4CisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4OQorI2RlZmluZSBtbVNETUE2X1JMQzFfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThiCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YworI2RlZmluZSBtbVNETUE2X1JMQzFfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGQKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThlCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZgorI2RlZmluZSBtbVNETUE2X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTAKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MgorI2RlZmluZSBtbVNETUE2X1JMQzFfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTMKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk0CisjZGVmaW5lIG1tU0RNQTZfUkxDMV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NQorI2RlZmluZSBtbVNETUE2X1JMQzFfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTYKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk3CisjZGVmaW5lIG1tU0RNQTZfUkxDMV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5OAorI2RlZmluZSBtbVNETUE2X1JMQzFfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTkKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTlhCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMAorI2RlZmluZSBtbVNETUE2X1JMQzFfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIyCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMworI2RlZmluZSBtbVNETUE2X1JMQzFfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjQKKyNkZWZpbmUgbW1TRE1BNl9STEMxX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI1CisjZGVmaW5lIG1tU0RNQTZfUkxDMV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNworI2RlZmluZSBtbVNETUE2X1JMQzFfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjgKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI5CisjZGVmaW5lIG1tU0RNQTZfUkxDMV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiYQorI2RlZmluZSBtbVNETUE2X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmIKKyNkZWZpbmUgbW1TRE1BNl9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJjCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiZAorI2RlZmluZSBtbVNETUE2X1JMQzFfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzgKKyNkZWZpbmUgbW1TRE1BNl9STEMxX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWM5CisjZGVmaW5lIG1tU0RNQTZfUkxDMV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjYQorI2RlZmluZSBtbVNETUE2X1JMQzFfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2IKKyNkZWZpbmUgbW1TRE1BNl9STEMxX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNjCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjZAorI2RlZmluZSBtbVNETUE2X1JMQzFfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2UKKyNkZWZpbmUgbW1TRE1BNl9STEMxX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNmCisjZGVmaW5lIG1tU0RNQTZfUkxDMV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzFfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkMAorI2RlZmluZSBtbVNETUE2X1JMQzFfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZDEKKyNkZWZpbmUgbW1TRE1BNl9STEMxX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUwCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMQorI2RlZmluZSBtbVNETUE2X1JMQzJfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTIKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUzCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNAorI2RlZmluZSBtbVNETUE2X1JMQzJfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTUKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU2CisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNworI2RlZmluZSBtbVNETUE2X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTgKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU5CisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYQorI2RlZmluZSBtbVNETUE2X1JMQzJfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWIKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVjCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlZAorI2RlZmluZSBtbVNETUE2X1JMQzJfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWUKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVmCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMAorI2RlZmluZSBtbVNETUE2X1JMQzJfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYyCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwOAorI2RlZmluZSBtbVNETUE2X1JMQzJfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDkKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBhCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYgorI2RlZmluZSBtbVNETUE2X1JMQzJfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGMKKyNkZWZpbmUgbW1TRE1BNl9STEMyX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBkCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwZgorI2RlZmluZSBtbVNETUE2X1JMQzJfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTAKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjExCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMgorI2RlZmluZSBtbVNETUE2X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTMKKyNkZWZpbmUgbW1TRE1BNl9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE0CisjZGVmaW5lIG1tU0RNQTZfUkxDMl9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxNQorI2RlZmluZSBtbVNETUE2X1JMQzJfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjAKKyNkZWZpbmUgbW1TRE1BNl9STEMyX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMgorI2RlZmluZSBtbVNETUE2X1JMQzJfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjMKKyNkZWZpbmUgbW1TRE1BNl9STEMyX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI0CisjZGVmaW5lIG1tU0RNQTZfUkxDMl9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNQorI2RlZmluZSBtbVNETUE2X1JMQzJfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjYKKyNkZWZpbmUgbW1TRE1BNl9STEMyX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDMl9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI3CisjZGVmaW5lIG1tU0RNQTZfUkxDMl9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzJfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyOAorI2RlZmluZSBtbVNETUE2X1JMQzJfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMyX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjkKKyNkZWZpbmUgbW1TRE1BNl9STEMyX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM4CisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzOQorI2RlZmluZSBtbVNETUE2X1JMQzNfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2EKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNiCisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYworI2RlZmluZSBtbVNETUE2X1JMQzNfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2QKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNlCisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZgorI2RlZmluZSBtbVNETUE2X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MgorI2RlZmluZSBtbVNETUE2X1JMQzNfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDMKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ0CisjZGVmaW5lIG1tU0RNQTZfUkxDM19JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NQorI2RlZmluZSBtbVNETUE2X1JMQzNfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDYKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ3CisjZGVmaW5lIG1tU0RNQTZfUkxDM19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0OAorI2RlZmluZSBtbVNETUE2X1JMQzNfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDkKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjRhCisjZGVmaW5lIG1tU0RNQTZfUkxDM19ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MAorI2RlZmluZSBtbVNETUE2X1JMQzNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYyCisjZGVmaW5lIG1tU0RNQTZfUkxDM19XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MworI2RlZmluZSBtbVNETUE2X1JMQzNfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjQKKyNkZWZpbmUgbW1TRE1BNl9STEMzX0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY1CisjZGVmaW5lIG1tU0RNQTZfUkxDM19DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NworI2RlZmluZSBtbVNETUE2X1JMQzNfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjgKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY5CisjZGVmaW5lIG1tU0RNQTZfUkxDM19EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YQorI2RlZmluZSBtbVNETUE2X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmIKKyNkZWZpbmUgbW1TRE1BNl9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZjCisjZGVmaW5lIG1tU0RNQTZfUkxDM19SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2ZAorI2RlZmluZSBtbVNETUE2X1JMQzNfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzgKKyNkZWZpbmUgbW1TRE1BNl9STEMzX01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjc5CisjZGVmaW5lIG1tU0RNQTZfUkxDM19NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YQorI2RlZmluZSBtbVNETUE2X1JMQzNfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2IKKyNkZWZpbmUgbW1TRE1BNl9STEMzX01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdjCisjZGVmaW5lIG1tU0RNQTZfUkxDM19NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZAorI2RlZmluZSBtbVNETUE2X1JMQzNfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2UKKyNkZWZpbmUgbW1TRE1BNl9STEMzX01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDM19NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdmCisjZGVmaW5lIG1tU0RNQTZfUkxDM19NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzNfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MAorI2RlZmluZSBtbVNETUE2X1JMQzNfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyODEKKyNkZWZpbmUgbW1TRE1BNl9STEMzX01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkwCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MQorI2RlZmluZSBtbVNETUE2X1JMQzRfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTIKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkzCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NAorI2RlZmluZSBtbVNETUE2X1JMQzRfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTUKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk2CisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NworI2RlZmluZSBtbVNETUE2X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTgKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk5CisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YQorI2RlZmluZSBtbVNETUE2X1JMQzRfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWIKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjljCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZAorI2RlZmluZSBtbVNETUE2X1JMQzRfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWUKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlmCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMAorI2RlZmluZSBtbVNETUE2X1JMQzRfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEyCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiOAorI2RlZmluZSBtbVNETUE2X1JMQzRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYjkKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJhCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYgorI2RlZmluZSBtbVNETUE2X1JMQzRfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmMKKyNkZWZpbmUgbW1TRE1BNl9STEM0X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJkCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiZgorI2RlZmluZSBtbVNETUE2X1JMQzRfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzAKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMgorI2RlZmluZSBtbVNETUE2X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzMKKyNkZWZpbmUgbW1TRE1BNl9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM0CisjZGVmaW5lIG1tU0RNQTZfUkxDNF9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNQorI2RlZmluZSBtbVNETUE2X1JMQzRfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDAKKyNkZWZpbmUgbW1TRE1BNl9STEM0X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMgorI2RlZmluZSBtbVNETUE2X1JMQzRfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDMKKyNkZWZpbmUgbW1TRE1BNl9STEM0X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ0CisjZGVmaW5lIG1tU0RNQTZfUkxDNF9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNQorI2RlZmluZSBtbVNETUE2X1JMQzRfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDYKKyNkZWZpbmUgbW1TRE1BNl9STEM0X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNF9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ3CisjZGVmaW5lIG1tU0RNQTZfUkxDNF9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzRfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkOAorI2RlZmluZSBtbVNETUE2X1JMQzRfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM0X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDkKKyNkZWZpbmUgbW1TRE1BNl9STEM0X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU4CisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlOQorI2RlZmluZSBtbVNETUE2X1JMQzVfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmViCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYworI2RlZmluZSBtbVNETUE2X1JMQzVfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWQKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVlCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZgorI2RlZmluZSBtbVNETUE2X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjAKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMgorI2RlZmluZSBtbVNETUE2X1JMQzVfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjMKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY0CisjZGVmaW5lIG1tU0RNQTZfUkxDNV9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNQorI2RlZmluZSBtbVNETUE2X1JMQzVfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjYKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY3CisjZGVmaW5lIG1tU0RNQTZfUkxDNV9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmOAorI2RlZmluZSBtbVNETUE2X1JMQzVfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjkKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmZhCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMAorI2RlZmluZSBtbVNETUE2X1JMQzVfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEyCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMworI2RlZmluZSBtbVNETUE2X1JMQzVfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTQKKyNkZWZpbmUgbW1TRE1BNl9STEM1X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE1CisjZGVmaW5lIG1tU0RNQTZfUkxDNV9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNworI2RlZmluZSBtbVNETUE2X1JMQzVfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTgKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE5CisjZGVmaW5lIG1tU0RNQTZfUkxDNV9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYQorI2RlZmluZSBtbVNETUE2X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWIKKyNkZWZpbmUgbW1TRE1BNl9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFjCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxZAorI2RlZmluZSBtbVNETUE2X1JMQzVfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjgKKyNkZWZpbmUgbW1TRE1BNl9STEM1X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI5CisjZGVmaW5lIG1tU0RNQTZfUkxDNV9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyYQorI2RlZmluZSBtbVNETUE2X1JMQzVfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmIKKyNkZWZpbmUgbW1TRE1BNl9STEM1X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJjCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZAorI2RlZmluZSBtbVNETUE2X1JMQzVfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmUKKyNkZWZpbmUgbW1TRE1BNl9STEM1X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJmCisjZGVmaW5lIG1tU0RNQTZfUkxDNV9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzVfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMzMAorI2RlZmluZSBtbVNETUE2X1JMQzVfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMzEKKyNkZWZpbmUgbW1TRE1BNl9STEM1X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQwCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MQorI2RlZmluZSBtbVNETUE2X1JMQzZfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDIKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQzCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NAorI2RlZmluZSBtbVNETUE2X1JMQzZfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDUKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ2CisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NworI2RlZmluZSBtbVNETUE2X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDgKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ5CisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0YQorI2RlZmluZSBtbVNETUE2X1JMQzZfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGIKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRjCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0ZAorI2RlZmluZSBtbVNETUE2X1JMQzZfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGUKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRmCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MAorI2RlZmluZSBtbVNETUE2X1JMQzZfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzUyCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2OAorI2RlZmluZSBtbVNETUE2X1JMQzZfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjkKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZhCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2YgorI2RlZmluZSBtbVNETUE2X1JMQzZfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmMKKyNkZWZpbmUgbW1TRE1BNl9STEM2X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZkCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2ZgorI2RlZmluZSBtbVNETUE2X1JMQzZfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzAKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MgorI2RlZmluZSBtbVNETUE2X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzMKKyNkZWZpbmUgbW1TRE1BNl9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzc0CisjZGVmaW5lIG1tU0RNQTZfUkxDNl9SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3NQorI2RlZmluZSBtbVNETUE2X1JMQzZfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODAKKyNkZWZpbmUgbW1TRE1BNl9STEM2X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MgorI2RlZmluZSBtbVNETUE2X1JMQzZfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODMKKyNkZWZpbmUgbW1TRE1BNl9STEM2X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg0CisjZGVmaW5lIG1tU0RNQTZfUkxDNl9NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NQorI2RlZmluZSBtbVNETUE2X1JMQzZfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODYKKyNkZWZpbmUgbW1TRE1BNl9STEM2X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDNl9NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg3CisjZGVmaW5lIG1tU0RNQTZfUkxDNl9NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzZfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4OAorI2RlZmluZSBtbVNETUE2X1JMQzZfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM2X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODkKKyNkZWZpbmUgbW1TRE1BNl9STEM2X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzk4CisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5OQorI2RlZmluZSBtbVNETUE2X1JMQzdfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzliCisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5YworI2RlZmluZSBtbVNETUE2X1JMQzdfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWQKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzllCisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5ZgorI2RlZmluZSBtbVNETUE2X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTAKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ExCisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMgorI2RlZmluZSBtbVNETUE2X1JMQzdfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTMKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E0CisjZGVmaW5lIG1tU0RNQTZfUkxDN19JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNQorI2RlZmluZSBtbVNETUE2X1JMQzdfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTYKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E3CisjZGVmaW5lIG1tU0RNQTZfUkxDN19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhOAorI2RlZmluZSBtbVNETUE2X1JMQzdfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTkKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2FhCisjZGVmaW5lIG1tU0RNQTZfUkxDN19ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMAorI2RlZmluZSBtbVNETUE2X1JMQzdfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0RPT1JCRUxMX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0RPT1JCRUxMX0xPR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19XQVRFUk1BUksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MyCisjZGVmaW5lIG1tU0RNQTZfUkxDN19XQVRFUk1BUktfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfRE9PUkJFTExfT0ZGU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMworI2RlZmluZSBtbVNETUE2X1JMQzdfRE9PUkJFTExfT0ZGU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0NTQV9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzQKKyNkZWZpbmUgbW1TRE1BNl9STEM3X0NTQV9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19DU0FfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M1CisjZGVmaW5lIG1tU0RNQTZfUkxDN19DU0FfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfSUJfU1VCX1JFTUFJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNworI2RlZmluZSBtbVNETUE2X1JMQzdfSUJfU1VCX1JFTUFJTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1BSRUVNUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzgKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1BSRUVNUFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19EVU1NWV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M5CisjZGVmaW5lIG1tU0RNQTZfUkxDN19EVU1NWV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjYQorI2RlZmluZSBtbVNETUE2X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2IKKyNkZWZpbmUgbW1TRE1BNl9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9BUUxfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NjCisjZGVmaW5lIG1tU0RNQTZfUkxDN19SQl9BUUxfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfTUlOT1JfUFRSX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjZAorI2RlZmluZSBtbVNETUE2X1JMQzdfTUlOT1JfUFRSX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X01JRENNRF9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDgKKyNkZWZpbmUgbW1TRE1BNl9STEM3X01JRENNRF9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19NSURDTURfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2Q5CisjZGVmaW5lIG1tU0RNQTZfUkxDN19NSURDTURfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfTUlEQ01EX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYQorI2RlZmluZSBtbVNETUE2X1JMQzdfTUlEQ01EX0RBVEEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X01JRENNRF9EQVRBMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGIKKyNkZWZpbmUgbW1TRE1BNl9STEM3X01JRENNRF9EQVRBM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19NSURDTURfREFUQTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RjCisjZGVmaW5lIG1tU0RNQTZfUkxDN19NSURDTURfREFUQTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfTUlEQ01EX0RBVEE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZAorI2RlZmluZSBtbVNETUE2X1JMQzdfTUlEQ01EX0RBVEE1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X01JRENNRF9EQVRBNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGUKKyNkZWZpbmUgbW1TRE1BNl9STEM3X01JRENNRF9EQVRBNl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTZfUkxDN19NSURDTURfREFUQTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RmCisjZGVmaW5lIG1tU0RNQTZfUkxDN19NSURDTURfREFUQTdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE2X1JMQzdfTUlEQ01EX0RBVEE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlMAorI2RlZmluZSBtbVNETUE2X1JMQzdfTUlEQ01EX0RBVEE4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X01JRENNRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTEKKyNkZWZpbmUgbW1TRE1BNl9STEM3X01JRENNRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWE2L3NkbWE2XzRfMl8yX3NoX21hc2suaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hNi9zZG1hNl80XzJfMl9zaF9tYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU1NjlmNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hNi9zZG1hNl80XzJfMl9zaF9tYXNrLmgKQEAgLTAsMCArMSwyOTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9zZG1hNl80XzJfMl9TSF9NQVNLX0hFQURFUgorI2RlZmluZSBfc2RtYTZfNF8yXzJfU0hfTUFTS19IRUFERVIKKworCisvLyBhZGRyZXNzQmxvY2s6IHNkbWE2X3NkbWE2ZGVjCisvL1NETUE2X1VDT0RFX0FERFIKKyNkZWZpbmUgU0RNQTZfVUNPREVfQUREUl9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1VDT0RFX0FERFJfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL1NETUE2X1VDT0RFX0RBVEEKKyNkZWZpbmUgU0RNQTZfVUNPREVfREFUQV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1VDT0RFX0RBVEFfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1ZNX0NOVEwKKyNkZWZpbmUgU0RNQTZfVk1fQ05UTF9fQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1ZNX0NOVExfX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1NETUE2X1ZNX0NUWF9MTworI2RlZmluZSBTRE1BNl9WTV9DVFhfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfVk1fQ1RYX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfVk1fQ1RYX0hJCisjZGVmaW5lIFNETUE2X1ZNX0NUWF9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9WTV9DVFhfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9BQ1RJVkVfRkNOX0lECisjZGVmaW5lIFNETUE2X0FDVElWRV9GQ05fSURfX1ZGSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9BQ1RJVkVfRkNOX0lEX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfQUNUSVZFX0ZDTl9JRF9fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNl9BQ1RJVkVfRkNOX0lEX19WRklEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BNl9BQ1RJVkVfRkNOX0lEX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkYwTAorI2RlZmluZSBTRE1BNl9BQ1RJVkVfRkNOX0lEX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNl9WTV9DVFhfQ05UTAorI2RlZmluZSBTRE1BNl9WTV9DVFhfQ05UTF9fUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfVk1fQ1RYX0NOVExfX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1ZNX0NUWF9DTlRMX19QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1ZNX0NUWF9DTlRMX19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL1NETUE2X1ZJUlRfUkVTRVRfUkVRCisjZGVmaW5lIFNETUE2X1ZJUlRfUkVTRVRfUkVRX19WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9WSVJUX1JFU0VUX1JFUV9fUEZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE2X1ZJUlRfUkVTRVRfUkVRX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUE2X1ZJUlRfUkVTRVRfUkVRX19QRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE2X1ZGX0VOQUJMRQorI2RlZmluZSBTRE1BNl9WRl9FTkFCTEVfX1ZGX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfVkZfRU5BQkxFX19WRl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTAKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNl9HRlhfUkJfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTZfR0ZYX1JCX0JBU0VfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNl9HRlhfUkJfUlBUUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTZfR0ZYX1JCX1dQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9XUFRSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNl9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTZfR0ZYX1JCX1JQVFJfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9SUFRSX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNl9HRlhfSUJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTZfR0ZYX0lCX1JQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9JQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNl9HRlhfSUJfQkFTRV9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTZfR0ZYX0lCX0JBU0VfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9JQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNl9HRlhfU0tJUF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9DT05URVhUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMF9fU0RNQTZfR0ZYX0RPT1JCRUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BNl9HRlhfQ09OVEVYVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9CQVNFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9SUFRSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9XUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9XUFRSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9SUFRSX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9SQl9SUFRSX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9JQl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9JQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9JQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9JQl9CQVNFX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9JQl9CQVNFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9JQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9TS0lQX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9DT05URVhUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9ET09SQkVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE2X0dGWF9DT05URVhUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTEKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE2X0dGWF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfRE9PUkJFTExfTE9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTZfR0ZYX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE2X0dGWF9ET09SQkVMTF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfQ1NBX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTZfR0ZYX0NTQV9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTFfX1ZPSURfUkVHMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfSUJfU1VCX1JFTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTZfR0ZYX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfRFVNTVlfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE2X0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMV9fU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfUkJfQVFMX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE2X0dGWF9NSU5PUl9QVFJfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMV9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfRE9PUkJFTExfTE9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfRE9PUkJFTExfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfQ1NBX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfQ1NBX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19WT0lEX1JFRzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfSUJfU1VCX1JFTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfRFVNTVlfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfUkJfQVFMX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BNl9HRlhfTUlOT1JfUFRSX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUxX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZDMDAwMDBMCisvL1NETUE2X0NPTlRFWFRfUkVHX1RZUEUyCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNl9HRlhfTUlEQ01EX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMl9fU0RNQTZfR0ZYX01JRENNRF9EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNl9HRlhfTUlEQ01EX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMl9fU0RNQTZfR0ZYX01JRENNRF9EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNl9HRlhfTUlEQ01EX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMl9fU0RNQTZfR0ZYX01JRENNRF9EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BNl9HRlhfTUlEQ01EX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9DT05URVhUX1JFR19UWVBFMl9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE2X0dGWF9NSURDTURfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkMwMEwKKy8vU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTMKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTNfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfUkVHX1RZUEUzX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BVQl9SRUdfVFlQRTAKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfVUNPREVfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTBfX1NETUE2X1VDT0RFX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUwX19SRVNFUlZFRDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfVk1fQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTBfX1NETUE2X1ZNX0NUWF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUwX19TRE1BNl9WTV9DVFhfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQUNUSVZFX0ZDTl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTBfX1NETUE2X1ZNX0NUWF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUwX19TRE1BNl9WSVJUX1JFU0VUX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTBfX1NETUE2X0NPTlRFWFRfUkVHX1RZUEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUwX19TRE1BNl9DT05URVhUX1JFR19UWVBFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTBfX1NETUE2X0NPTlRFWFRfUkVHX1RZUEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUwX19TRE1BNl9QVUJfUkVHX1RZUEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfUFVCX1JFR19UWVBFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUwX19TRE1BNl9QVUJfUkVHX1RZUEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTBfX1NETUE2X1BVQl9SRUdfVFlQRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfTU1IVUJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUwX19SRVNFUlZFRF9GT1JfUFNQU01VX0FDQ0VTU19PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTBfX1NETUE2X0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfUE9XRVJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUwX19TRE1BNl9DTEtfQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTBfX1NETUE2X0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ0hJQ0tFTl9CSVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUwX19TRE1BNl9HQl9BRERSX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTBfX1NETUE2X0dCX0FERFJfQ09ORklHX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfVUNPREVfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfVUNPREVfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfVk1fQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfVk1fQ1RYX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfVk1fQ1RYX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQUNUSVZFX0ZDTl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfVk1fQ1RYX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfVklSVF9SRVNFVF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ09OVEVYVF9SRUdfVFlQRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfUFVCX1JFR19UWVBFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfUFVCX1JFR19UWVBFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfUFVCX1JFR19UWVBFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfUFVCX1JFR19UWVBFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfTU1IVUJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fUkVTRVJWRURfRk9SX1BTUFNNVV9BQ0NFU1NfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUUwMDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfUE9XRVJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ0xLX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfQ0hJQ0tFTl9CSVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfR0JfQUREUl9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMF9fU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTZfUFVCX1JFR19UWVBFMQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9SQl9SUFRSX0ZFVENIX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUE2X1JCX1JQVFJfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9JQl9PRkZTRVRfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfUFJPR1JBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUE2X1NUQVRVU19SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9TVEFUVVMxX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfUkRfQlVSU1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUE2X0hCTV9QQUdFX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9VQ09ERV9DSEVDS1NVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfRjMyX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUE2X0ZSRUVaRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9QSEFTRTBfUVVBTlRVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfUEhBU0UxX1FVQU5UVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUFfUE9XRVJfR0FUSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUE2X0VEQ19DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfQkFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUE2X1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfRURDX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9FRENfQ09VTlRFUl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUE2X1NUQVRVUzJfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfQVRPTUlDX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9BVE9NSUNfUFJFT1BfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUE2X0FUT01JQ19QUkVPUF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfVVRDTDFfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9VVENMMV9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTFfX1NETUE2X1VUQ0wxX1JEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMV9fU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9SQl9SUFRSX0ZFVENIX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9SQl9SUFRSX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9JQl9PRkZTRVRfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9QUk9HUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9TVEFUVVNfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9TVEFUVVMxX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9SRF9CVVJTVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9IQk1fUEFHRV9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9VQ09ERV9DSEVDS1NVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9GMzJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9GUkVFWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9QSEFTRTBfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9QSEFTRTFfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BX1BPV0VSX0dBVElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9FRENfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9CQV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9FRENfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9FRENfQ09VTlRFUl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9TVEFUVVMyX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9BVE9NSUNfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9BVE9NSUNfUFJFT1BfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9BVE9NSUNfUFJFT1BfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9VVENMMV9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9VVENMMV9XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9VVENMMV9SRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUxX19TRE1BNl9VVENMMV9XUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNl9QVUJfUkVHX1RZUEUyCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX0lOVjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19TRE1BNl9VVENMMV9JTlYxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfVVRDTDFfSU5WMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX1JEX1hOQUNLMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19TRE1BNl9VVENMMV9SRF9YTkFDSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfVVRDTDFfV1JfWE5BQ0swX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX1dSX1hOQUNLMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19TRE1BNl9VVENMMV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfVVRDTDFfUEFHRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BPV0VSX0NOVExfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19TRE1BNl9SRUxBWF9PUkRFUklOR19MVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfQ0hJQ0tFTl9CSVRTXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1NUQVRVUzNfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19TRE1BNl9QSFlTSUNBTF9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfUEhZU0lDQUxfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BIQVNFMl9RVUFOVFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19TRE1BNl9FUlJPUl9MT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BVQl9EVU1NWV9SRUcwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfUFVCX0RVTU1ZX1JFRzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19TRE1BNl9QVUJfRFVNTVlfUkVHMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BVQl9EVU1NWV9SRUczX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfRjMyX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19TRE1BNl9VTkJSRUFLQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BFUkZNT05fQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfUEVSRkNPVU5URVIwX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19TRE1BNl9QRVJGQ09VTlRFUjFfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfQ1JEX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRDI4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFMl9fU0RNQTZfVUxWX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUyX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX0lOVjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX0lOVjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX0lOVjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX1JEX1hOQUNLMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX1JEX1hOQUNLMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX1dSX1hOQUNLMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX1dSX1hOQUNLMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VUQ0wxX1BBR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BPV0VSX0NOVExfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1JFTEFYX09SREVSSU5HX0xVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X0NISUNLRU5fQklUU18yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1NUQVRVUzNfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BIWVNJQ0FMX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BIWVNJQ0FMX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BIQVNFMl9RVUFOVFVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X0VSUk9SX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BVQl9EVU1NWV9SRUcwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BVQl9EVU1NWV9SRUcxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BVQl9EVU1NWV9SRUcyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BVQl9EVU1NWV9SRUczX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X0YzMl9DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VOQlJFQUtBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BFUkZNT05fQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BFUkZDT1VOVEVSMF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BFUkZDT1VOVEVSMV9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X0NSRF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEMjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1NETUE2X1VMVl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE2X1BVQl9SRUdfVFlQRTMKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFM19fU0RNQTZfRUFfREJJVF9BRERSX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTNfX1NETUE2X0VBX0RCSVRfQUREUl9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9QVUJfUkVHX1RZUEUzX19TRE1BNl9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUFVCX1JFR19UWVBFM19fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTNfX1NETUE2X0VBX0RCSVRfQUREUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTNfX1NETUE2X0VBX0RCSVRfQUREUl9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTNfX1NETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE2X1BVQl9SRUdfVFlQRTNfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRjhMCisvL1NETUE2X01NSFVCX0NOVEwKKyNkZWZpbmUgU0RNQTZfTU1IVUJfQ05UTF9fVU5JVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X01NSFVCX0NOVExfX1VOSVRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL1NETUE2X0NPTlRFWFRfR1JPVVBfQk9VTkRBUlkKKyNkZWZpbmUgU0RNQTZfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BPV0VSX0NOVEwKKyNkZWZpbmUgU0RNQTZfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1BPV0VSX0NOVExfX01FTV9QT1dFUl9MU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9QT1dFUl9DTlRMX19NRU1fUE9XRVJfRFNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTZfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX1NEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE2X1BPV0VSX0NOVExfX01FTV9QT1dFUl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNl9QT1dFUl9DTlRMX19NRU1fUE9XRVJfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9QT1dFUl9DTlRMX19NRU1fUE9XRVJfTFNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9QT1dFUl9DTlRMX19NRU1fUE9XRVJfRFNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNl9QT1dFUl9DTlRMX19NRU1fUE9XRVJfU0RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNl9QT1dFUl9DTlRMX19NRU1fUE9XRVJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGMDAwTAorLy9TRE1BNl9DTEtfQ1RSTAorI2RlZmluZSBTRE1BNl9DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X0NMS19DVFJMX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNl9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BNl9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE2X0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNl9DTEtfQ1RSTF9fU09GVF9PVkVSUklERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE2X0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRjAwMEwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTZfQ05UTAorI2RlZmluZSBTRE1BNl9DTlRMX19UUkFQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfQ05UTF9fVVRDX0wxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X0NOVExfX1NFTV9XQUlUX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9DTlRMX19EQVRBX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfQ05UTF9fRkVOQ0VfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X0NOVExfX01JRENNRF9QUkVFTVBUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9DTlRMX19NSURDTURfV09STERTV0lUQ0hfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE2X0NOVExfX0FVVE9fQ1RYU1dfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTZfQ05UTF9fQ1RYRU1QVFlfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNl9DTlRMX19GUk9aRU5fSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE2X0NOVExfX0lCX1BSRUVNUFRfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTZfQ05UTF9fVFJBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fVVRDX0wxX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fU0VNX1dBSVRfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fREFUQV9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fRkVOQ0VfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fTUlEQ01EX1BSRUVNUFRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fTUlEQ01EX1dPUkxEU1dJVENIX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fQVVUT19DVFhTV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fQ1RYRU1QVFlfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fRlJPWkVOX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfQ05UTF9fSUJfUFJFRU1QVF9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTZfQ0hJQ0tFTl9CSVRTCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fQ09QWV9FRkZJQ0lFTkNZX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9DSElDS0VOX0JJVFNfX1NUQUxMX09OX1RSQU5TX0ZVTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTZfQ0hJQ0tFTl9CSVRTX19TVEFMTF9PTl9OT19GUkVFX0RBVEFfQlVGRkVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX1dBSVRfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTZfQ0hJQ0tFTl9CSVRTX19DT1BZX09WRVJMQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNl9DSElDS0VOX0JJVFNfX1JBV19DSEVDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fU1JCTV9QT0xMX1JFVFJZSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTZfQ0hJQ0tFTl9CSVRTX19DR19TVEFUVVNfT1VUUFVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9DSElDS0VOX0JJVFNfX1RJTUVfQkFTRURfUU9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fQ0VfQUZJRk9fV0FURVJNQVJLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTZfQ0hJQ0tFTl9CSVRTX19DRV9ERklGT19XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNl9DSElDS0VOX0JJVFNfX0NFX0xGSUZPX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fQ09QWV9FRkZJQ0lFTkNZX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fU1RBTExfT05fVFJBTlNfRlVMTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fU1RBTExfT05fTk9fRlJFRV9EQVRBX0JVRkZFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfV0FJVF9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFDMDBMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fQ09QWV9PVkVSTEFQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fUkFXX0NIRUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fU1JCTV9QT0xMX1JFVFJZSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fQ0dfU1RBVFVTX09VVFBVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fVElNRV9CQVNFRF9RT1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fQ0VfQUZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fQ0VfREZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU19fQ0VfTEZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL1NETUE2X0dCX0FERFJfQ09ORklHCisjZGVmaW5lIFNETUE2X0dCX0FERFJfQ09ORklHX19OVU1fUElQRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HQl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfR0JfQUREUl9DT05GSUdfX0JBTktfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X0dCX0FERFJfQ09ORklHX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNl9HQl9BRERSX0NPTkZJR19fTlVNX1NIQURFUl9FTkdJTkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE2X0dCX0FERFJfQ09ORklHX19OVU1fUElQRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUE2X0dCX0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIFNETUE2X0dCX0FERFJfQ09ORklHX19CQU5LX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFNETUE2X0dCX0FERFJfQ09ORklHX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFNETUE2X0dCX0FERFJfQ09ORklHX19OVU1fU0hBREVSX0VOR0lORVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisvL1NETUE2X0dCX0FERFJfQ09ORklHX1JFQUQKKyNkZWZpbmUgU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1BJUEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dCX0FERFJfQ09ORklHX1JFQURfX1BJUEVfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNl9HQl9BRERSX0NPTkZJR19SRUFEX19CQU5LX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE2X0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9TSEFERVJfRU5HSU5FU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1BJUEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRF9fUElQRV9JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRF9fQkFOS19JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgU0RNQTZfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1NIQURFUl9FTkdJTkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4MDAwMEwKKy8vU0RNQTZfUkJfUlBUUl9GRVRDSF9ISQorI2RlZmluZSBTRE1BNl9SQl9SUFRSX0ZFVENIX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkJfUlBUUl9GRVRDSF9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMCisjZGVmaW5lIFNETUE2X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9fVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9SQl9SUFRSX0ZFVENICisjZGVmaW5lIFNETUE2X1JCX1JQVFJfRkVUQ0hfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9SQl9SUFRSX0ZFVENIX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BNl9JQl9PRkZTRVRfRkVUQ0gKKyNkZWZpbmUgU0RNQTZfSUJfT0ZGU0VUX0ZFVENIX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0lCX09GRlNFVF9GRVRDSF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE2X1BST0dSQU0KKyNkZWZpbmUgU0RNQTZfUFJPR1JBTV9fU1RSRUFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BST0dSQU1fX1NUUkVBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1NUQVRVU19SRUcKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX1JFR19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9TVEFUVVNfUkVHX19SQl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUkJfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX1JCX0NNRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNl9TVEFUVVNfUkVHX19SQl9DTURfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSUJfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX0lCX0NNRF9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9TVEFUVVNfUkVHX19CTE9DS19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX0VYX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9TVEFUVVNfUkVHX19FWF9JRExFX1BPTExfVElNRVJfRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUEFDS0VUX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX01DX1dSX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNl9TVEFUVVNfUkVHX19TUkJNX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fQ09OVEVYVF9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUkJfTUNfUlJFUV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNl9TVEFUVVNfUkVHX19JQl9NQ19SUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX01DX1JEX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNl9TVEFUVVNfUkVHX19NQ19SRF9SRVRfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX01DX1JEX05PX1BPTExfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUFJFVl9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BNl9TVEFUVVNfUkVHX19TRU1fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX1NFTV9SRVFfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fU0VNX1JFU1BfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BNl9TVEFUVVNfUkVHX19JTlRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE2X1NUQVRVU19SRUdfX0lOVF9SRVFfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUkVHX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUkJfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUkJfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUkJfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUkJfQ01EX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSUJfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSUJfQ01EX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fQkxPQ0tfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fRVhfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fRVhfSURMRV9QT0xMX1RJTUVSX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUEFDS0VUX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fTUNfV1JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fU1JCTV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fQ09OVEVYVF9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUkJfTUNfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSUJfTUNfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fTUNfUkRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fTUNfUkRfUkVUX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fTUNfUkRfTk9fUE9MTF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fUFJFVl9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fU0VNX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fU0VNX1JFUV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fU0VNX1JFU1BfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSU5UX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfU1RBVFVTX1JFR19fSU5UX1JFUV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTZfU1RBVFVTMV9SRUcKKyNkZWZpbmUgU0RNQTZfU1RBVFVTMV9SRUdfX0NFX1dSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9XUl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9TVEFUVVMxX1JFR19fQ0VfU1BMSVRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfU1RBVFVTMV9SRUdfX0NFX1JSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9PVVRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNl9TVEFUVVMxX1JFR19fQ0VfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTZfU1RBVFVTMV9SRUdfX0NFX0RTVF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9TVEFUVVMxX1JFR19fQ0VfQUZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTZfU1RBVFVTMV9SRUdfX0NFX0lORk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9JTkZPMV9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNl9TVEFUVVMxX1JFR19fRVhfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTZfU1RBVFVTMV9SRUdfX0NFX1JEX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNl9TVEFUVVMxX1JFR19fQ0VfV1JfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9XUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9XUl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9TUExJVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9SUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9PVVRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9EU1RfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9BRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9JTkZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9JTkZPMV9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19FWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9SRF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE2X1NUQVRVUzFfUkVHX19DRV9XUl9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL1NETUE2X1JEX0JVUlNUX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkRfQlVSU1RfQ05UTF9fUkRfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JEX0JVUlNUX0NOVExfX0NNRF9CVUZGRVJfUkRfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9SRF9CVVJTVF9DTlRMX19SRF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBTRE1BNl9SRF9CVVJTVF9DTlRMX19DTURfQlVGRkVSX1JEX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9TRE1BNl9IQk1fUEFHRV9DT05GSUcKKyNkZWZpbmUgU0RNQTZfSEJNX1BBR0VfQ09ORklHX19QQUdFX1NJWkVfRVhQT05FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0hCTV9QQUdFX0NPTkZJR19fUEFHRV9TSVpFX0VYUE9ORU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1VDT0RFX0NIRUNLU1VNCisjZGVmaW5lIFNETUE2X1VDT0RFX0NIRUNLU1VNX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9VQ09ERV9DSEVDS1NVTV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9GMzJfQ05UTAorI2RlZmluZSBTRE1BNl9GMzJfQ05UTF9fSEFMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfRjMyX0NOVExfX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X0YzMl9DTlRMX19IQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X0YzMl9DTlRMX19TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL1NETUE2X0ZSRUVaRQorI2RlZmluZSBTRE1BNl9GUkVFWkVfX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfRlJFRVpFX19GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X0ZSRUVaRV9fRlJPWkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9GUkVFWkVfX0YzMl9GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTZfRlJFRVpFX19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfRlJFRVpFX19GUkVFWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfRlJFRVpFX19GUk9aRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTZfRlJFRVpFX19GMzJfRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vU0RNQTZfUEhBU0UwX1FVQU5UVU0KKyNkZWZpbmUgU0RNQTZfUEhBU0UwX1FVQU5UVU1fX1VOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BIQVNFMF9RVUFOVFVNX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9QSEFTRTBfUVVBTlRVTV9fUFJFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE2X1BIQVNFMF9RVUFOVFVNX19VTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUE2X1BIQVNFMF9RVUFOVFVNX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGMDBMCisjZGVmaW5lIFNETUE2X1BIQVNFMF9RVUFOVFVNX19QUkVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE2X1BIQVNFMV9RVUFOVFVNCisjZGVmaW5lIFNETUE2X1BIQVNFMV9RVUFOVFVNX19VTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QSEFTRTFfUVVBTlRVTV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUEhBU0UxX1FVQU5UVU1fX1BSRUZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9QSEFTRTFfUVVBTlRVTV9fVU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BNl9QSEFTRTFfUVVBTlRVTV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRjAwTAorI2RlZmluZSBTRE1BNl9QSEFTRTFfUVVBTlRVTV9fUFJFRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9FRENfQ09ORklHCisjZGVmaW5lIFNETUE2X0VEQ19DT05GSUdfX0RJU19FRENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9FRENfQ09ORklHX19FQ0NfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfRURDX0NPTkZJR19fRElTX0VEQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfRURDX0NPTkZJR19fRUNDX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vU0RNQTZfQkFfVEhSRVNIT0xECisjZGVmaW5lIFNETUE2X0JBX1RIUkVTSE9MRF9fUkVBRF9USFJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9CQV9USFJFU0hPTERfX1dSSVRFX1RIUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE2X0JBX1RIUkVTSE9MRF9fUkVBRF9USFJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIFNETUE2X0JBX1RIUkVTSE9MRF9fV1JJVEVfVEhSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE2X0lECisjZGVmaW5lIFNETUE2X0lEX19ERVZJQ0VfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9JRF9fREVWSUNFX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TRE1BNl9WRVJTSU9OCisjZGVmaW5lIFNETUE2X1ZFUlNJT05fX01JTlZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9WRVJTSU9OX19NQUpWRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfVkVSU0lPTl9fUkVWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNl9WRVJTSU9OX19NSU5WRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBTRE1BNl9WRVJTSU9OX19NQUpWRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBTRE1BNl9WRVJTSU9OX19SRVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9TRE1BNl9FRENfQ09VTlRFUgorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9VQ09ERV9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfRURDX0NPVU5URVJfX1NETUFfUkJfQ01EX0JVRl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0VEQ19DT1VOVEVSX19TRE1BX0lCX0NNRF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SRF9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRCU1RfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE2X0VEQ19DT1VOVEVSX19TRE1BX0RBVEFfTFVUX0ZJRk9fU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjBfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTZfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjNfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTZfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY0X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE2X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTZfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY3X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE2X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGOF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjlfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE2X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTBfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTZfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEyX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE2X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTNfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTZfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE1X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE2X0VEQ19DT1VOVEVSX19TRE1BX1NQTElUX0RBVF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTZfRURDX0NPVU5URVJfX1NETUFfTUNfV1JfQUREUl9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9VQ09ERV9CVUZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9SQl9DTURfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9JQl9DTURfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SRF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SREJTVF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9EQVRBX0xVVF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjBfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjFfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjJfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjNfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjRfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjVfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjdfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjhfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjlfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEwX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjExX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEyX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEzX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE0X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE1X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9TUExJVF9EQVRfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9fU0RNQV9NQ19XUl9BRERSX0ZJRk9fU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9TRE1BNl9FRENfQ09VTlRFUl9DTEVBUgorI2RlZmluZSBTRE1BNl9FRENfQ09VTlRFUl9DTEVBUl9fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfRURDX0NPVU5URVJfQ0xFQVJfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTZfU1RBVFVTMl9SRUcKKyNkZWZpbmUgU0RNQTZfU1RBVFVTMl9SRUdfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1NUQVRVUzJfUkVHX19GMzJfSU5TVFJfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNl9TVEFUVVMyX1JFR19fQ01EX09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE2X1NUQVRVUzJfUkVHX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUE2X1NUQVRVUzJfUkVHX19GMzJfSU5TVFJfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjhMCisjZGVmaW5lIFNETUE2X1NUQVRVUzJfUkVHX19DTURfT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE2X0FUT01JQ19DTlRMCisjZGVmaW5lIFNETUE2X0FUT01JQ19DTlRMX19MT09QX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9BVE9NSUNfQ05UTF9fQVRPTUlDX1JUTl9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE2X0FUT01JQ19DTlRMX19MT09QX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisjZGVmaW5lIFNETUE2X0FUT01JQ19DTlRMX19BVE9NSUNfUlROX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE2X0FUT01JQ19QUkVPUF9MTworI2RlZmluZSBTRE1BNl9BVE9NSUNfUFJFT1BfTE9fX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfQVRPTUlDX1BSRU9QX0xPX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfQVRPTUlDX1BSRU9QX0hJCisjZGVmaW5lIFNETUE2X0FUT01JQ19QUkVPUF9ISV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9BVE9NSUNfUFJFT1BfSElfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9VVENMMV9DTlRMCisjZGVmaW5lIFNETUE2X1VUQ0wxX0NOVExfX1JFRE9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9VVENMMV9DTlRMX19SRURPX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTZfVVRDTDFfQ05UTF9fUkVET19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE2X1VUQ0wxX0NOVExfX0lOVkFDS19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNl9VVENMMV9DTlRMX19SRVFMMl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1VUQ0wxX0NOVExfX1ZBRERSX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTZfVVRDTDFfQ05UTF9fUkVET19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfQ05UTF9fUkVET19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdGRUwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfQ05UTF9fUkVET19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfQ05UTF9fSU5WQUNLX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGQzAwMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfQ05UTF9fUkVRTDJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfQ05UTF9fVkFERFJfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vU0RNQTZfVVRDTDFfV0FURVJNSworI2RlZmluZSBTRE1BNl9VVENMMV9XQVRFUk1LX19SRVFNQ19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV0FURVJNS19fUkVRUEdfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1VUQ0wxX1dBVEVSTUtfX0lOVlJFUV9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV0FURVJNS19fWE5BQ0tfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BNl9VVENMMV9XQVRFUk1LX19SRVFNQ19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBTRE1BNl9VVENMMV9XQVRFUk1LX19SRVFQR19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRTAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9XQVRFUk1LX19JTlZSRVFfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkUwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9XQVRFUk1LX19YTkFDS19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9TRE1BNl9VVENMMV9SRF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1NUQVRVU19fUEFHRV9OVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19SRVFMMl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX0NFX0wxX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1NUQVRVU19fTkVYVF9SRF9WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19NRVJHRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX0FERFJfUkRfUlRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1NUQVRVU19fV1BUUl9QT0xMSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfU1RBVFVTX19JTlZSRVFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1BBR0VfTlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1JFUUwyX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX0NFX0wxX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX05FWFRfUkRfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX01FUkdFX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDMDAwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX0FERFJfUkRfUlRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX1dQVFJfUE9MTElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9TVEFUVVNfX0lOVlJFUV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BNl9VVENMMV9XUl9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9TVEFUVVNfX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9OVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19SRVFMMl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9TVEFUVVNfX0YzMl9XUl9SVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fTkVYVF9XUl9WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19NRVJHRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfU1RBVFVTX19XUlJFUV9EQVRBX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9OVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUkVRTDJfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fRjMyX1dSX1JUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fTkVYVF9XUl9WRUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fTUVSR0VfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE2X1VUQ0wxX0lOVjAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fSU5WX01JRERMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1VUQ0wxX0lOVjBfX1JEX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9VVENMMV9JTlYwX19XUl9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fUkRfSU5fSU5WQURSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE2X1VUQ0wxX0lOVjBfX1dSX0lOX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNl9VVENMMV9JTlYwX19QQUdFX05VTExfU1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fWE5BQ0tfSVNfSU5WQURSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE2X1VUQ0wxX0lOVjBfX0lOVlJFUV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9VVENMMV9JTlYwX19OQUNLX1RJTUVPVVRfU1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fTkZMVVNIX0lOVl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1VUQ0wxX0lOVjBfX0ZMVVNIX0lOVl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9VVENMMV9JTlYwX19JTlZfRkxVU0hUWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fSU5WX1ZNSURfVkVDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE2X1VUQ0wxX0lOVjBfX0lOVl9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fSU5WX01JRERMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fUkRfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fV1JfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fUkRfSU5fSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fV1JfSU5fSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fUEFHRV9OVUxMX1NXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fWE5BQ0tfSVNfSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fSU5WUkVRX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fTkFDS19USU1FT1VUX1NXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fTkZMVVNIX0lOVl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fRkxVU0hfSU5WX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fSU5WX0ZMVVNIVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fSU5WX1ZNSURfVkVDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRjAwMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMF9fSU5WX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vU0RNQTZfVVRDTDFfSU5WMQorI2RlZmluZSBTRE1BNl9VVENMMV9JTlYxX19JTlZfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMV9fSU5WX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfVVRDTDFfSU5WMgorI2RlZmluZSBTRE1BNl9VVENMMV9JTlYyX19JTlZfTkZMVVNIX1ZNSURfVkVDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfSU5WMl9fSU5WX05GTFVTSF9WTUlEX1ZFQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfVVRDTDFfUkRfWE5BQ0swCisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9YTkFDSzBfX1hOQUNLX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9VVENMMV9SRF9YTkFDSzEKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUkRfWE5BQ0sxX19JU19YTkFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRjAwTAorI2RlZmluZSBTRE1BNl9VVENMMV9SRF9YTkFDSzFfX0lTX1hOQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorLy9TRE1BNl9VVENMMV9XUl9YTkFDSzAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfWE5BQ0swX19YTkFDS19BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1VUQ0wxX1dSX1hOQUNLMQorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9YTkFDSzFfX1hOQUNLX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9VVENMMV9XUl9YTkFDSzFfX0lTX1hOQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGMDBMCisjZGVmaW5lIFNETUE2X1VUQ0wxX1dSX1hOQUNLMV9fSVNfWE5BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisvL1NETUE2X1VUQ0wxX1RJTUVPVVQKKyNkZWZpbmUgU0RNQTZfVVRDTDFfVElNRU9VVF9fUkRfWE5BQ0tfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1VUQ0wxX1RJTUVPVVRfX1dSX1hOQUNLX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfVElNRU9VVF9fUkRfWE5BQ0tfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfVElNRU9VVF9fV1JfWE5BQ0tfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfVVRDTDFfUEFHRQorI2RlZmluZSBTRE1BNl9VVENMMV9QQUdFX19WTV9IT0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUEFHRV9fUkVRX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1VUQ0wxX1BBR0VfX1VTRV9NVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNl9VVENMMV9QQUdFX19VU0VfUFRfU05PT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUEFHRV9fVk1fSE9MRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUEFHRV9fUkVRX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRUwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUEFHRV9fVVNFX01UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgU0RNQTZfVVRDTDFfUEFHRV9fVVNFX1BUX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKy8vU0RNQTZfUE9XRVJfQ05UTF9JRExFCisjZGVmaW5lIFNETUE2X1BPV0VSX0NOVExfSURMRV9fREVMQVkwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QT1dFUl9DTlRMX0lETEVfX0RFTEFZMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE2X1BPV0VSX0NOVExfSURMRV9fREVMQVkyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTZfUE9XRVJfQ05UTF9JRExFX19ERUxBWTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTZfUE9XRVJfQ05UTF9JRExFX19ERUxBWTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgU0RNQTZfUE9XRVJfQ05UTF9JRExFX19ERUxBWTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vU0RNQTZfUkVMQVhfT1JERVJJTkdfTFVUCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9SRUxBWF9PUkRFUklOR19MVVRfX0NPUFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTZfUkVMQVhfT1JERVJJTkdfTFVUX19XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkVMQVhfT1JERVJJTkdfTFVUX19GRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ3Nl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BNl9SRUxBWF9PUkRFUklOR19MVVRfX1BPTExfTUVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUkVMQVhfT1JERVJJTkdfTFVUX19DT05EX0VYRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fQVRPTUlDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9SRUxBWF9PUkRFUklOR19MVVRfX0NPTlNUX0ZJTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTZfUkVMQVhfT1JERVJJTkdfTFVUX19QVEVQREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fVElNRVNUQU1QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNl9SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTZfUkVMQVhfT1JERVJJTkdfTFVUX19XT1JMRF9TV0lUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BNl9SRUxBWF9PUkRFUklOR19MVVRfX1JQVFJfV1JCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fV1BUUl9QT0xMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTZfUkVMQVhfT1JERVJJTkdfTFVUX19JQl9GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9SRUxBWF9PUkRFUklOR19MVVRfX1JCX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fQ09QWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fRkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ3Nl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUE9MTF9NRU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fQ09ORF9FWEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fQVRPTUlDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fQ09OU1RfRklMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUFRFUERFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fVElNRVNUQU1QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRkMwMDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fV09STERfU1dJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUlBUUl9XUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fV1BUUl9QT0xMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fSUJfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE2X1JFTEFYX09SREVSSU5HX0xVVF9fUkJfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE2X0NISUNLRU5fQklUU18yCisjZGVmaW5lIFNETUE2X0NISUNLRU5fQklUU18yX19GMzJfQ01EX1BST0NfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9DSElDS0VOX0JJVFNfMl9fRjMyX0NNRF9QUk9DX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9TRE1BNl9TVEFUVVMzX1JFRworI2RlZmluZSBTRE1BNl9TVEFUVVMzX1JFR19fQ01EX09QX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfU1RBVFVTM19SRUdfX1BSRVZfVk1fQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNl9TVEFUVVMzX1JFR19fRVhDRVBUSU9OX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE2X1NUQVRVUzNfUkVHX19RVUVVRV9JRF9NQVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTZfU1RBVFVTM19SRUdfX0lOVF9RVUVVRV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BNl9TVEFUVVMzX1JFR19fQ01EX09QX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BNl9TVEFUVVMzX1JFR19fUFJFVl9WTV9DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBTRE1BNl9TVEFUVVMzX1JFR19fRVhDRVBUSU9OX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BNl9TVEFUVVMzX1JFR19fUVVFVUVfSURfTUFUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BNl9TVEFUVVMzX1JFR19fSU5UX1FVRVVFX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorLy9TRE1BNl9QSFlTSUNBTF9BRERSX0xPCisjZGVmaW5lIFNETUE2X1BIWVNJQ0FMX0FERFJfTE9fX0RfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QSFlTSUNBTF9BRERSX0xPX19ESVJUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTZfUEhZU0lDQUxfQUREUl9MT19fUEhZX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1BIWVNJQ0FMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNl9QSFlTSUNBTF9BRERSX0xPX19EX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9QSFlTSUNBTF9BRERSX0xPX19ESVJUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNl9QSFlTSUNBTF9BRERSX0xPX19QSFlfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9QSFlTSUNBTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9TRE1BNl9QSFlTSUNBTF9BRERSX0hJCisjZGVmaW5lIFNETUE2X1BIWVNJQ0FMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QSFlTSUNBTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9TRE1BNl9QSEFTRTJfUVVBTlRVTQorI2RlZmluZSBTRE1BNl9QSEFTRTJfUVVBTlRVTV9fVU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEhBU0UyX1FVQU5UVU1fX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1BIQVNFMl9RVUFOVFVNX19QUkVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTZfUEhBU0UyX1FVQU5UVU1fX1VOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTZfUEhBU0UyX1FVQU5UVU1fX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkYwMEwKKyNkZWZpbmUgU0RNQTZfUEhBU0UyX1FVQU5UVU1fX1BSRUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTZfRVJST1JfTE9HCisjZGVmaW5lIFNETUE2X0VSUk9SX0xPR19fT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9FUlJPUl9MT0dfX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE2X0VSUk9SX0xPR19fT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUE2X0VSUk9SX0xPR19fU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE2X1BVQl9EVU1NWV9SRUcwCisjZGVmaW5lIFNETUE2X1BVQl9EVU1NWV9SRUcwX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QVUJfRFVNTVlfUkVHMF9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9QVUJfRFVNTVlfUkVHMQorI2RlZmluZSBTRE1BNl9QVUJfRFVNTVlfUkVHMV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUFVCX0RVTU1ZX1JFRzFfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUFVCX0RVTU1ZX1JFRzIKKyNkZWZpbmUgU0RNQTZfUFVCX0RVTU1ZX1JFRzJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BVQl9EVU1NWV9SRUcyX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BVQl9EVU1NWV9SRUczCisjZGVmaW5lIFNETUE2X1BVQl9EVU1NWV9SRUczX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QVUJfRFVNTVlfUkVHM19fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9GMzJfQ09VTlRFUgorI2RlZmluZSBTRE1BNl9GMzJfQ09VTlRFUl9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfRjMyX0NPVU5URVJfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfVU5CUkVBS0FCTEUKKyNkZWZpbmUgU0RNQTZfVU5CUkVBS0FCTEVfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1VOQlJFQUtBQkxFX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1BFUkZNT05fQ05UTAorI2RlZmluZSBTRE1BNl9QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1BFUkZNT05fQ05UTF9fUEVSRl9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTZfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE2X1BFUkZNT05fQ05UTF9fUEVSRl9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BNl9QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BNl9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBTRE1BNl9QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BNl9QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BNl9QRVJGTU9OX0NOVExfX1BFUkZfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorLy9TRE1BNl9QRVJGQ09VTlRFUjBfUkVTVUxUCisjZGVmaW5lIFNETUE2X1BFUkZDT1VOVEVSMF9SRVNVTFRfX1BFUkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QRVJGQ09VTlRFUjBfUkVTVUxUX19QRVJGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9QRVJGQ09VTlRFUjFfUkVTVUxUCisjZGVmaW5lIFNETUE2X1BFUkZDT1VOVEVSMV9SRVNVTFRfX1BFUkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QRVJGQ09VTlRFUjFfUkVTVUxUX19QRVJGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0UKKyNkZWZpbmUgU0RNQTZfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19SQU5HRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BNl9QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NFTEVDVF9SV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE2X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIFNETUE2X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkMwMDBMCisjZGVmaW5lIFNETUE2X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fU0VMRUNUX1JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL1NETUE2X0NSRF9DTlRMCisjZGVmaW5lIFNETUE2X0NSRF9DTlRMX19NQ19XUlJFUV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9DUkRfQ05UTF9fTUNfUkRSRVFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTZfQ1JEX0NOVExfX01DX1dSUkVRX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKyNkZWZpbmUgU0RNQTZfQ1JEX0NOVExfX01DX1JEUkVRX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RTAwMEwKKy8vU0RNQTZfR1BVX0lPVl9WSU9MQVRJT05fTE9HCisjZGVmaW5lIFNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVklPTEFUSU9OX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX01VTFRJUExFX1ZJT0xBVElPTl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTZfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fV1JJVEVfT1BFUkFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTZfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BNl9HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVklPTEFUSU9OX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fTVVMVElQTEVfVklPTEFUSU9OX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkNMCisjZGVmaW5lIFNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fV1JJVEVfT1BFUkFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE2X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNDMDAwMDBMCisvL1NETUE2X1VMVl9DTlRMCisjZGVmaW5lIFNETUE2X1VMVl9DTlRMX19IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9VTFZfQ05UTF9fRU5URVJfVUxWX0lOVF9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE2X1VMVl9DTlRMX19FWElUX1VMVl9JTlRfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BNl9VTFZfQ05UTF9fRVhJVF9VTFZfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE2X1VMVl9DTlRMX19VTFZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTZfVUxWX0NOVExfX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgU0RNQTZfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfVUxWX0NOVExfX1VMVl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTZfRUFfREJJVF9BRERSX0RBVEEKKyNkZWZpbmUgU0RNQTZfRUFfREJJVF9BRERSX0RBVEFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0VBX0RCSVRfQUREUl9EQVRBX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X0VBX0RCSVRfQUREUl9JTkRFWAorI2RlZmluZSBTRE1BNl9FQV9EQklUX0FERFJfSU5ERVhfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfRUFfREJJVF9BRERSX0lOREVYX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKy8vU0RNQTZfR1BVX0lPVl9WSU9MQVRJT05fTE9HMgorI2RlZmluZSBTRE1BNl9HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX19JTklUSUFUT1JfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fSU5JVElBVE9SX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0RNQTZfR0ZYX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE2X0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE2X0dGWF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BNl9HRlhfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9HRlhfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfR0ZYX1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE2X0dGWF9SQl9SUFRSCisjZGVmaW5lIFNETUE2X0dGWF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9HRlhfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfR0ZYX1JCX1dQVFIKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X0dGWF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE2X0dGWF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfR0ZYX1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BNl9HRlhfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfR0ZYX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BNl9HRlhfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0dGWF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X0dGWF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X0dGWF9JQl9DTlRMCisjZGVmaW5lIFNETUE2X0dGWF9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X0dGWF9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfR0ZYX0lCX1JQVFIKKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0dGWF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE2X0dGWF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0dGWF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE2X0dGWF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X0dGWF9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9HRlhfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9HRlhfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BNl9HRlhfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfR0ZYX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X0dGWF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfR0ZYX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X0dGWF9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BNl9HRlhfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfR0ZYX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BNl9HRlhfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfR0ZYX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTZfR0ZYX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE2X0dGWF9ET09SQkVMTAorI2RlZmluZSBTRE1BNl9HRlhfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE2X0dGWF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTZfR0ZYX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTZfR0ZYX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTZfR0ZYX0NPTlRFWFRfQ05UTAorI2RlZmluZSBTRE1BNl9HRlhfQ09OVEVYVF9DTlRMX19SRVNVTUVfQ1RYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE2X0dGWF9DT05URVhUX0NOVExfX1JFU1VNRV9DVFhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1NETUE2X0dGWF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9HRlhfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BNl9HRlhfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BNl9HRlhfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X0dGWF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfR0ZYX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfR0ZYX0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfR0ZYX1dBVEVSTUFSSworI2RlZmluZSBTRE1BNl9HRlhfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfR0ZYX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BNl9HRlhfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BNl9HRlhfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BNl9HRlhfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE2X0dGWF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9HRlhfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BNl9HRlhfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfR0ZYX0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X0dGWF9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X0dGWF9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BNl9HRlhfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfR0ZYX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfR0ZYX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTZfR0ZYX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X0dGWF9QUkVFTVBUCisjZGVmaW5lIFNETUE2X0dGWF9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9HRlhfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE2X0dGWF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfR0ZYX1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE2X0dGWF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTZfR0ZYX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X0dGWF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X0dGWF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE2X0dGWF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE2X0dGWF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE2X0dGWF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9HRlhfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9HRlhfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfR0ZYX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9HRlhfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfR0ZYX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X0dGWF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1BBR0VfUkJfQ05UTAorI2RlZmluZSBTRE1BNl9QQUdFX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9QQUdFX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE2X1BBR0VfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9QQUdFX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUEFHRV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QQUdFX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNl9QQUdFX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BBR0VfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9QQUdFX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUEFHRV9SQl9XUFRSCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QQUdFX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9QQUdFX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfUEFHRV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BBR0VfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QQUdFX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUEFHRV9JQl9DTlRMCisjZGVmaW5lIFNETUE2X1BBR0VfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QQUdFX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUEFHRV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1BBR0VfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUEFHRV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUEFHRV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUEFHRV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUEFHRV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfUEFHRV9JQl9SUFRSCisjZGVmaW5lIFNETUE2X1BBR0VfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9QQUdFX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNl9QQUdFX0lCX09GRlNFVAorI2RlZmluZSBTRE1BNl9QQUdFX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUEFHRV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTZfUEFHRV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X1BBR0VfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9QQUdFX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9QQUdFX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfUEFHRV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BBR0VfSUJfU0laRQorI2RlZmluZSBTRE1BNl9QQUdFX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUEFHRV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfUEFHRV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X1BBR0VfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfUEFHRV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUEFHRV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1BBR0VfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNl9QQUdFX0RPT1JCRUxMCisjZGVmaW5lIFNETUE2X1BBR0VfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUEFHRV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9QQUdFX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9QQUdFX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9QQUdFX1NUQVRVUworI2RlZmluZSBTRE1BNl9QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE2X1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1BBR0VfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X1BBR0VfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QQUdFX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUEFHRV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUEFHRV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUEFHRV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTZfUEFHRV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUEFHRV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTZfUEFHRV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTZfUEFHRV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfUEFHRV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1BBR0VfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE2X1BBR0VfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfUEFHRV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1BBR0VfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X1BBR0VfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUEFHRV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BBR0VfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNl9QQUdFX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUEFHRV9QUkVFTVBUCisjZGVmaW5lIFNETUE2X1BBR0VfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QQUdFX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9QQUdFX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNl9QQUdFX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNl9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUEFHRV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNl9QQUdFX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1BBR0VfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9QQUdFX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9QQUdFX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNl9QQUdFX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNl9QQUdFX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTZfUEFHRV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1BBR0VfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QQUdFX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9QQUdFX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNl9QQUdFX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUEFHRV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTZfUEFHRV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BBR0VfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QQUdFX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9QQUdFX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNl9QQUdFX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUEFHRV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTZfUEFHRV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BBR0VfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9QQUdFX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9QQUdFX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNl9QQUdFX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUEFHRV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUEFHRV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTZfUEFHRV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1BBR0VfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfUEFHRV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9QQUdFX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUEFHRV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1BBR0VfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzBfUkJfQ05UTAorI2RlZmluZSBTRE1BNl9STEMwX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9STEMwX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE2X1JMQzBfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9STEMwX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMwX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNl9STEMwX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzBfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9STEMwX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMF9SQl9XUFRSCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMwX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMwX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfUkxDMF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzBfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMwX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDMF9JQl9DTlRMCisjZGVmaW5lIFNETUE2X1JMQzBfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMwX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDMF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzBfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUkxDMF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUkxDMF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfUkxDMF9JQl9SUFRSCisjZGVmaW5lIFNETUE2X1JMQzBfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEMwX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNl9STEMwX0lCX09GRlNFVAorI2RlZmluZSBTRE1BNl9STEMwX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTZfUkxDMF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X1JMQzBfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9STEMwX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9STEMwX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMF9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzBfSUJfU0laRQorI2RlZmluZSBTRE1BNl9STEMwX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDMF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDMF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X1JMQzBfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfUkxDMF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUkxDMF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1JMQzBfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNl9STEMwX0RPT1JCRUxMCisjZGVmaW5lIFNETUE2X1JMQzBfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUkxDMF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9STEMwX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9STEMwX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9STEMwX1NUQVRVUworI2RlZmluZSBTRE1BNl9STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE2X1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzBfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X1JMQzBfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMwX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDMF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTZfUkxDMF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTZfUkxDMF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTZfUkxDMF9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfUkxDMF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzBfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE2X1JMQzBfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfUkxDMF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzBfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X1JMQzBfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMF9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzBfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNl9STEMwX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDMF9QUkVFTVBUCisjZGVmaW5lIFNETUE2X1JMQzBfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMwX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9STEMwX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNl9STEMwX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNl9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDMF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNl9STEMwX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzBfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9STEMwX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEMwX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNl9STEMwX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNl9STEMwX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTZfUkxDMF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1JMQzBfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMwX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMwX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNl9STEMwX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMF9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTZfUkxDMF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzBfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMwX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMwX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNl9STEMwX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMF9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTZfUkxDMF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzBfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMwX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMwX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNl9STEMwX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMF9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMF9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTZfUkxDMF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzBfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDMF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEMwX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDMF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1JMQzBfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzFfUkJfQ05UTAorI2RlZmluZSBTRE1BNl9STEMxX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9STEMxX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE2X1JMQzFfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9STEMxX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMxX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNl9STEMxX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzFfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9STEMxX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMV9SQl9XUFRSCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMxX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMxX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfUkxDMV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzFfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMxX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDMV9JQl9DTlRMCisjZGVmaW5lIFNETUE2X1JMQzFfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMxX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDMV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzFfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUkxDMV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUkxDMV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfUkxDMV9JQl9SUFRSCisjZGVmaW5lIFNETUE2X1JMQzFfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEMxX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNl9STEMxX0lCX09GRlNFVAorI2RlZmluZSBTRE1BNl9STEMxX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTZfUkxDMV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X1JMQzFfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9STEMxX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9STEMxX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzFfSUJfU0laRQorI2RlZmluZSBTRE1BNl9STEMxX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDMV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDMV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X1JMQzFfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfUkxDMV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUkxDMV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1JMQzFfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNl9STEMxX0RPT1JCRUxMCisjZGVmaW5lIFNETUE2X1JMQzFfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUkxDMV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9STEMxX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9STEMxX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9STEMxX1NUQVRVUworI2RlZmluZSBTRE1BNl9STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE2X1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzFfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X1JMQzFfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMxX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDMV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTZfUkxDMV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTZfUkxDMV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTZfUkxDMV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfUkxDMV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzFfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE2X1JMQzFfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfUkxDMV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzFfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X1JMQzFfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzFfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNl9STEMxX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDMV9QUkVFTVBUCisjZGVmaW5lIFNETUE2X1JMQzFfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMxX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9STEMxX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNl9STEMxX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNl9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDMV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNl9STEMxX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzFfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9STEMxX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEMxX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNl9STEMxX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNl9STEMxX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTZfUkxDMV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1JMQzFfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMxX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMxX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNl9STEMxX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTZfUkxDMV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzFfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMxX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMxX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNl9STEMxX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTZfUkxDMV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzFfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMxX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMxX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNl9STEMxX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTZfUkxDMV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzFfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDMV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEMxX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDMV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1JMQzFfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzJfUkJfQ05UTAorI2RlZmluZSBTRE1BNl9STEMyX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9STEMyX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE2X1JMQzJfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9STEMyX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMl9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMyX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNl9STEMyX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzJfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9STEMyX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMl9SQl9XUFRSCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMyX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMyX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzJfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfUkxDMl9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzJfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMyX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDMl9JQl9DTlRMCisjZGVmaW5lIFNETUE2X1JMQzJfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMyX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDMl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzJfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMl9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUkxDMl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUkxDMl9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfUkxDMl9JQl9SUFRSCisjZGVmaW5lIFNETUE2X1JMQzJfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEMyX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNl9STEMyX0lCX09GRlNFVAorI2RlZmluZSBTRE1BNl9STEMyX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMl9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTZfUkxDMl9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X1JMQzJfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9STEMyX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9STEMyX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMl9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzJfSUJfU0laRQorI2RlZmluZSBTRE1BNl9STEMyX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDMl9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDMl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X1JMQzJfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfUkxDMl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUkxDMl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1JMQzJfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNl9STEMyX0RPT1JCRUxMCisjZGVmaW5lIFNETUE2X1JMQzJfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUkxDMl9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9STEMyX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9STEMyX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9STEMyX1NUQVRVUworI2RlZmluZSBTRE1BNl9STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE2X1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzJfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X1JMQzJfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMyX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDMl9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDMl9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTZfUkxDMl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDMl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTZfUkxDMl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTZfUkxDMl9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfUkxDMl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzJfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE2X1JMQzJfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfUkxDMl9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzJfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X1JMQzJfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDMl9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzJfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNl9STEMyX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDMl9QUkVFTVBUCisjZGVmaW5lIFNETUE2X1JMQzJfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMyX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9STEMyX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNl9STEMyX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNl9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDMl9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNl9STEMyX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzJfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9STEMyX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEMyX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNl9STEMyX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNl9STEMyX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTZfUkxDMl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1JMQzJfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMyX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMyX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNl9STEMyX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMl9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTZfUkxDMl9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzJfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMyX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMyX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNl9STEMyX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMl9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTZfUkxDMl9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzJfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMyX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMyX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNl9STEMyX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDMl9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDMl9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTZfUkxDMl9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzJfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDMl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEMyX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDMl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1JMQzJfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzNfUkJfQ05UTAorI2RlZmluZSBTRE1BNl9STEMzX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9STEMzX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE2X1JMQzNfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9STEMzX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDM19SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMzX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNl9STEMzX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzNfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9STEMzX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDM19SQl9XUFRSCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMzX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMzX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfUkxDM19SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzNfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMzX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDM19JQl9DTlRMCisjZGVmaW5lIFNETUE2X1JMQzNfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMzX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDM19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzNfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDM19JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDM19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUkxDM19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUkxDM19JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfUkxDM19JQl9SUFRSCisjZGVmaW5lIFNETUE2X1JMQzNfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEMzX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNl9STEMzX0lCX09GRlNFVAorI2RlZmluZSBTRE1BNl9STEMzX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDM19JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTZfUkxDM19JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X1JMQzNfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9STEMzX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9STEMzX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfUkxDM19JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzNfSUJfU0laRQorI2RlZmluZSBTRE1BNl9STEMzX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDM19TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDM19TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X1JMQzNfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfUkxDM19DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUkxDM19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1JMQzNfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNl9STEMzX0RPT1JCRUxMCisjZGVmaW5lIFNETUE2X1JMQzNfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUkxDM19ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9STEMzX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9STEMzX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9STEMzX1NUQVRVUworI2RlZmluZSBTRE1BNl9STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE2X1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzNfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X1JMQzNfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMzX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDM19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDM19ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDM19XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTZfUkxDM19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDM19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTZfUkxDM19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTZfUkxDM19ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfUkxDM19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzNfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE2X1JMQzNfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfUkxDM19DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzNfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X1JMQzNfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDM19DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzNfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNl9STEMzX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDM19QUkVFTVBUCisjZGVmaW5lIFNETUE2X1JMQzNfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMzX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9STEMzX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNl9STEMzX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNl9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDM19SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNl9STEMzX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzNfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9STEMzX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEMzX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNl9STEMzX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNl9STEMzX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTZfUkxDM19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1JMQzNfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMzX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMzX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNl9STEMzX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDM19NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTZfUkxDM19NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzNfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMzX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMzX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNl9STEMzX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDM19NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTZfUkxDM19NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzNfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEMzX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEMzX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNl9STEMzX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDM19NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDM19NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTZfUkxDM19NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzNfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDM19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEMzX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDM19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1JMQzNfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzRfUkJfQ05UTAorI2RlZmluZSBTRE1BNl9STEM0X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9STEM0X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE2X1JMQzRfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9STEM0X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM0X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNl9STEM0X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzRfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9STEM0X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNF9SQl9XUFRSCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM0X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM0X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzRfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfUkxDNF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzRfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM0X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDNF9JQl9DTlRMCisjZGVmaW5lIFNETUE2X1JMQzRfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM0X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDNF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzRfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUkxDNF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUkxDNF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfUkxDNF9JQl9SUFRSCisjZGVmaW5lIFNETUE2X1JMQzRfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEM0X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNl9STEM0X0lCX09GRlNFVAorI2RlZmluZSBTRE1BNl9STEM0X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTZfUkxDNF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X1JMQzRfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9STEM0X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9STEM0X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNF9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzRfSUJfU0laRQorI2RlZmluZSBTRE1BNl9STEM0X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDNF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDNF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X1JMQzRfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfUkxDNF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUkxDNF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1JMQzRfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNl9STEM0X0RPT1JCRUxMCisjZGVmaW5lIFNETUE2X1JMQzRfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUkxDNF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9STEM0X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9STEM0X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9STEM0X1NUQVRVUworI2RlZmluZSBTRE1BNl9STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE2X1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzRfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X1JMQzRfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM0X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDNF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTZfUkxDNF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTZfUkxDNF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTZfUkxDNF9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfUkxDNF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzRfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE2X1JMQzRfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfUkxDNF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzRfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X1JMQzRfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNF9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzRfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNl9STEM0X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDNF9QUkVFTVBUCisjZGVmaW5lIFNETUE2X1JMQzRfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM0X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9STEM0X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNl9STEM0X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNl9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDNF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNl9STEM0X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzRfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9STEM0X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEM0X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNl9STEM0X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNl9STEM0X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTZfUkxDNF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1JMQzRfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM0X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM0X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNl9STEM0X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNF9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTZfUkxDNF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzRfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM0X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM0X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNl9STEM0X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNF9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTZfUkxDNF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzRfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM0X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM0X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNl9STEM0X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNF9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNF9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTZfUkxDNF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzRfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDNF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEM0X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDNF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1JMQzRfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzVfUkJfQ05UTAorI2RlZmluZSBTRE1BNl9STEM1X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9STEM1X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE2X1JMQzVfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9STEM1X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM1X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNl9STEM1X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzVfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9STEM1X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNV9SQl9XUFRSCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM1X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM1X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzVfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfUkxDNV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzVfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM1X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDNV9JQl9DTlRMCisjZGVmaW5lIFNETUE2X1JMQzVfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM1X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDNV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzVfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUkxDNV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUkxDNV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfUkxDNV9JQl9SUFRSCisjZGVmaW5lIFNETUE2X1JMQzVfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEM1X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNl9STEM1X0lCX09GRlNFVAorI2RlZmluZSBTRE1BNl9STEM1X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTZfUkxDNV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X1JMQzVfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9STEM1X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9STEM1X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzVfSUJfU0laRQorI2RlZmluZSBTRE1BNl9STEM1X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDNV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDNV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X1JMQzVfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfUkxDNV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUkxDNV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1JMQzVfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNl9STEM1X0RPT1JCRUxMCisjZGVmaW5lIFNETUE2X1JMQzVfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUkxDNV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9STEM1X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9STEM1X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9STEM1X1NUQVRVUworI2RlZmluZSBTRE1BNl9STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE2X1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzVfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X1JMQzVfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM1X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDNV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTZfUkxDNV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTZfUkxDNV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTZfUkxDNV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfUkxDNV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzVfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE2X1JMQzVfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfUkxDNV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzVfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X1JMQzVfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzVfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNl9STEM1X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDNV9QUkVFTVBUCisjZGVmaW5lIFNETUE2X1JMQzVfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM1X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9STEM1X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNl9STEM1X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNl9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDNV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNl9STEM1X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzVfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9STEM1X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEM1X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNl9STEM1X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNl9STEM1X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTZfUkxDNV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1JMQzVfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM1X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM1X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNl9STEM1X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTZfUkxDNV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzVfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM1X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM1X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNl9STEM1X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTZfUkxDNV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzVfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM1X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM1X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNl9STEM1X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTZfUkxDNV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzVfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDNV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEM1X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDNV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1JMQzVfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzZfUkJfQ05UTAorI2RlZmluZSBTRE1BNl9STEM2X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9STEM2X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE2X1JMQzZfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9STEM2X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNl9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM2X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNl9STEM2X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzZfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9STEM2X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNl9SQl9XUFRSCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM2X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM2X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzZfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfUkxDNl9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzZfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM2X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDNl9JQl9DTlRMCisjZGVmaW5lIFNETUE2X1JMQzZfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM2X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDNl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzZfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNl9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUkxDNl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUkxDNl9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfUkxDNl9JQl9SUFRSCisjZGVmaW5lIFNETUE2X1JMQzZfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEM2X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNl9STEM2X0lCX09GRlNFVAorI2RlZmluZSBTRE1BNl9STEM2X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNl9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTZfUkxDNl9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X1JMQzZfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9STEM2X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9STEM2X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNl9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzZfSUJfU0laRQorI2RlZmluZSBTRE1BNl9STEM2X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDNl9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDNl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X1JMQzZfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfUkxDNl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUkxDNl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1JMQzZfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNl9STEM2X0RPT1JCRUxMCisjZGVmaW5lIFNETUE2X1JMQzZfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUkxDNl9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9STEM2X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9STEM2X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9STEM2X1NUQVRVUworI2RlZmluZSBTRE1BNl9STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE2X1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzZfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X1JMQzZfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM2X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDNl9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDNl9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTZfUkxDNl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDNl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTZfUkxDNl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTZfUkxDNl9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfUkxDNl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzZfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE2X1JMQzZfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfUkxDNl9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzZfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X1JMQzZfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDNl9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzZfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNl9STEM2X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDNl9QUkVFTVBUCisjZGVmaW5lIFNETUE2X1JMQzZfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM2X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9STEM2X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNl9STEM2X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNl9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDNl9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNl9STEM2X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzZfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9STEM2X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEM2X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNl9STEM2X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNl9STEM2X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTZfUkxDNl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1JMQzZfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM2X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM2X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNl9STEM2X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNl9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTZfUkxDNl9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzZfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM2X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM2X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNl9STEM2X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNl9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTZfUkxDNl9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzZfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM2X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM2X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNl9STEM2X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDNl9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDNl9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTZfUkxDNl9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzZfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDNl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEM2X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDNl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1JMQzZfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzdfUkJfQ05UTAorI2RlZmluZSBTRE1BNl9STEM3X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BNl9STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BNl9STEM3X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE2X1JMQzdfUkJfQkFTRQorI2RlZmluZSBTRE1BNl9STEM3X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDN19SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM3X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BNl9STEM3X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzdfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BNl9STEM3X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDN19SQl9XUFRSCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM3X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM3X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzdfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTZfUkxDN19SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzdfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM3X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDN19JQl9DTlRMCisjZGVmaW5lIFNETUE2X1JMQzdfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM3X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDN19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzdfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDN19JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDN19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTZfUkxDN19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTZfUkxDN19JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTZfUkxDN19JQl9SUFRSCisjZGVmaW5lIFNETUE2X1JMQzdfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEM3X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BNl9STEM3X0lCX09GRlNFVAorI2RlZmluZSBTRE1BNl9STEM3X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDN19JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTZfUkxDN19JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE2X1JMQzdfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BNl9STEM3X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BNl9STEM3X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTZfUkxDN19JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzdfSUJfU0laRQorI2RlZmluZSBTRE1BNl9STEM3X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDN19TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDN19TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE2X1JMQzdfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTZfUkxDN19DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTZfUkxDN19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE2X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTZfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE2X1JMQzdfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BNl9STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BNl9STEM3X0RPT1JCRUxMCisjZGVmaW5lIFNETUE2X1JMQzdfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTZfUkxDN19ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BNl9STEM3X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BNl9STEM3X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BNl9STEM3X1NUQVRVUworI2RlZmluZSBTRE1BNl9STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE2X1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE2X1JMQzdfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE2X1JMQzdfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM3X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDN19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTZfUkxDN19ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDN19XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTZfUkxDN19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTZfUkxDN19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTZfUkxDN19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTZfUkxDN19ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTZfUkxDN19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzdfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE2X1JMQzdfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTZfUkxDN19DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE2X1JMQzdfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE2X1JMQzdfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTZfUkxDN19DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzdfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BNl9STEM3X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTZfUkxDN19QUkVFTVBUCisjZGVmaW5lIFNETUE2X1JMQzdfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM3X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BNl9STEM3X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BNl9STEM3X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BNl9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BNl9STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTZfUkxDN19SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BNl9STEM3X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE2X1JMQzdfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BNl9STEM3X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BNl9STEM3X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BNl9STEM3X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BNl9STEM3X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTZfUkxDN19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE2X1JMQzdfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM3X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM3X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BNl9STEM3X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDN19NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTZfUkxDN19NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzdfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM3X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM3X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BNl9STEM3X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDN19NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTZfUkxDN19NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzdfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BNl9STEM3X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BNl9STEM3X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BNl9STEM3X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTZfUkxDN19NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTZfUkxDN19NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTZfUkxDN19NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE2X1JMQzdfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTZfUkxDN19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BNl9STEM3X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTZfUkxDN19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE2X1JMQzdfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWE3L3NkbWE3XzRfMl8yX29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWE3L3NkbWE3XzRfMl8yX29mZnNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwZjM4NzIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTcvc2RtYTdfNF8yXzJfb2Zmc2V0LmgKQEAgLTAsMCArMSwxMDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9zZG1hN180XzJfMl9PRkZTRVRfSEVBREVSCisjZGVmaW5lIF9zZG1hN180XzJfMl9PRkZTRVRfSEVBREVSCisKKworCisvLyBhZGRyZXNzQmxvY2s6IHNkbWE3X3NkbWE3ZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4N2QwMDAKKyNkZWZpbmUgbW1TRE1BN19VQ09ERV9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgbW1TRE1BN19VQ09ERV9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVUNPREVfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIG1tU0RNQTdfVUNPREVfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1ZNX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAorI2RlZmluZSBtbVNETUE3X1ZNX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19WTV9DVFhfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKKyNkZWZpbmUgbW1TRE1BN19WTV9DVFhfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVk1fQ1RYX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CisjZGVmaW5lIG1tU0RNQTdfVk1fQ1RYX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0FDVElWRV9GQ05fSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNworI2RlZmluZSBtbVNETUE3X0FDVElWRV9GQ05fSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19WTV9DVFhfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKKyNkZWZpbmUgbW1TRE1BN19WTV9DVFhfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVklSVF9SRVNFVF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CisjZGVmaW5lIG1tU0RNQTdfVklSVF9SRVNFVF9SRVFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1ZGX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYQorI2RlZmluZSBtbVNETUE3X1ZGX0VOQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19DT05URVhUX1JFR19UWVBFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGIKKyNkZWZpbmUgbW1TRE1BN19DT05URVhUX1JFR19UWVBFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBjCisjZGVmaW5lIG1tU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0NPTlRFWFRfUkVHX1RZUEUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZAorI2RlZmluZSBtbVNETUE3X0NPTlRFWFRfUkVHX1RZUEUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19DT05URVhUX1JFR19UWVBFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGUKKyNkZWZpbmUgbW1TRE1BN19DT05URVhUX1JFR19UWVBFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUFVCX1JFR19UWVBFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBmCisjZGVmaW5lIG1tU0RNQTdfUFVCX1JFR19UWVBFMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BVQl9SRUdfVFlQRTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBtbVNETUE3X1BVQl9SRUdfVFlQRTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QVUJfUkVHX1RZUEUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTEKKyNkZWZpbmUgbW1TRE1BN19QVUJfUkVHX1RZUEUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUFVCX1JFR19UWVBFMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEyCisjZGVmaW5lIG1tU0RNQTdfUFVCX1JFR19UWVBFM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X01NSFVCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMworI2RlZmluZSBtbVNETUE3X01NSFVCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19DT05URVhUX0dST1VQX0JPVU5EQVJZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTkKKyNkZWZpbmUgbW1TRE1BN19DT05URVhUX0dST1VQX0JPVU5EQVJZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUE9XRVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFhCisjZGVmaW5lIG1tU0RNQTdfUE9XRVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0NMS19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYgorI2RlZmluZSBtbVNETUE3X0NMS19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWMKKyNkZWZpbmUgbW1TRE1BN19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfQ0hJQ0tFTl9CSVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFkCisjZGVmaW5lIG1tU0RNQTdfQ0hJQ0tFTl9CSVRTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dCX0FERFJfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZQorI2RlZmluZSBtbVNETUE3X0dCX0FERFJfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HQl9BRERSX0NPTkZJR19SRUFEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWYKKyNkZWZpbmUgbW1TRE1BN19HQl9BRERSX0NPTkZJR19SRUFEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkJfUlBUUl9GRVRDSF9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIG1tU0RNQTdfUkJfUlBUUl9GRVRDSF9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMQorI2RlZmluZSBtbVNETUE3X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19SQl9SUFRSX0ZFVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjIKKyNkZWZpbmUgbW1TRE1BN19SQl9SUFRSX0ZFVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfSUJfT0ZGU0VUX0ZFVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIzCisjZGVmaW5lIG1tU0RNQTdfSUJfT0ZGU0VUX0ZFVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BST0dSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBtbVNETUE3X1BST0dSQU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19TVEFUVVNfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjUKKyNkZWZpbmUgbW1TRE1BN19TVEFUVVNfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfU1RBVFVTMV9SRUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI2CisjZGVmaW5lIG1tU0RNQTdfU1RBVFVTMV9SRUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JEX0JVUlNUX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNworI2RlZmluZSBtbVNETUE3X1JEX0JVUlNUX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19IQk1fUEFHRV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjgKKyNkZWZpbmUgbW1TRE1BN19IQk1fUEFHRV9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVUNPREVfQ0hFQ0tTVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI5CisjZGVmaW5lIG1tU0RNQTdfVUNPREVfQ0hFQ0tTVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0YzMl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyYQorI2RlZmluZSBtbVNETUE3X0YzMl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19GUkVFWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMmIKKyNkZWZpbmUgbW1TRE1BN19GUkVFWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEhBU0UwX1FVQU5UVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJjCisjZGVmaW5lIG1tU0RNQTdfUEhBU0UwX1FVQU5UVU1fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BIQVNFMV9RVUFOVFVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyZAorI2RlZmluZSBtbVNETUE3X1BIQVNFMV9RVUFOVFVNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19FRENfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzIKKyNkZWZpbmUgbW1TRE1BN19FRENfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfQkFfVEhSRVNIT0xEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMzCisjZGVmaW5lIG1tU0RNQTdfQkFfVEhSRVNIT0xEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNAorI2RlZmluZSBtbVNETUE3X0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19WRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzUKKyNkZWZpbmUgbW1TRE1BN19WRVJTSU9OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfRURDX0NPVU5URVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM2CisjZGVmaW5lIG1tU0RNQTdfRURDX0NPVU5URVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0VEQ19DT1VOVEVSX0NMRUFSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNworI2RlZmluZSBtbVNETUE3X0VEQ19DT1VOVEVSX0NMRUFSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19TVEFUVVMyX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgKKyNkZWZpbmUgbW1TRE1BN19TVEFUVVMyX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfQVRPTUlDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM5CisjZGVmaW5lIG1tU0RNQTdfQVRPTUlDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0FUT01JQ19QUkVPUF9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzYQorI2RlZmluZSBtbVNETUE3X0FUT01JQ19QUkVPUF9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19BVE9NSUNfUFJFT1BfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2IKKyNkZWZpbmUgbW1TRE1BN19BVE9NSUNfUFJFT1BfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNjCisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1VUQ0wxX1dBVEVSTUsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZAorI2RlZmluZSBtbVNETUE3X1VUQ0wxX1dBVEVSTUtfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19VVENMMV9SRF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2UKKyNkZWZpbmUgbW1TRE1BN19VVENMMV9SRF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfV1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNmCisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfV1JfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1VUQ0wxX0lOVjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MAorI2RlZmluZSBtbVNETUE3X1VUQ0wxX0lOVjBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19VVENMMV9JTlYxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDEKKyNkZWZpbmUgbW1TRE1BN19VVENMMV9JTlYxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfSU5WMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQyCisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfSU5WMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1VUQ0wxX1JEX1hOQUNLMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MworI2RlZmluZSBtbVNETUE3X1VUQ0wxX1JEX1hOQUNLMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19VVENMMV9SRF9YTkFDSzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDQKKyNkZWZpbmUgbW1TRE1BN19VVENMMV9SRF9YTkFDSzFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfV1JfWE5BQ0swICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ1CisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfV1JfWE5BQ0swX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1VUQ0wxX1dSX1hOQUNLMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NgorI2RlZmluZSBtbVNETUE3X1VUQ0wxX1dSX1hOQUNLMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19VVENMMV9USU1FT1VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDcKKyNkZWZpbmUgbW1TRE1BN19VVENMMV9USU1FT1VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfUEFHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ4CisjZGVmaW5lIG1tU0RNQTdfVVRDTDFfUEFHRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BPV0VSX0NOVExfSURMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OQorI2RlZmluZSBtbVNETUE3X1BPV0VSX0NOVExfSURMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19SRUxBWF9PUkRFUklOR19MVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGEKKyNkZWZpbmUgbW1TRE1BN19SRUxBWF9PUkRFUklOR19MVVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfQ0hJQ0tFTl9CSVRTXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRiCisjZGVmaW5lIG1tU0RNQTdfQ0hJQ0tFTl9CSVRTXzJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1NUQVRVUzNfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YworI2RlZmluZSBtbVNETUE3X1NUQVRVUzNfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QSFlTSUNBTF9BRERSX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGQKKyNkZWZpbmUgbW1TRE1BN19QSFlTSUNBTF9BRERSX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEhZU0lDQUxfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRlCisjZGVmaW5lIG1tU0RNQTdfUEhZU0lDQUxfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BIQVNFMl9RVUFOVFVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZgorI2RlZmluZSBtbVNETUE3X1BIQVNFMl9RVUFOVFVNX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19FUlJPUl9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTAKKyNkZWZpbmUgbW1TRE1BN19FUlJPUl9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUFVCX0RVTU1ZX1JFRzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUxCisjZGVmaW5lIG1tU0RNQTdfUFVCX0RVTU1ZX1JFRzBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BVQl9EVU1NWV9SRUcxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MgorI2RlZmluZSBtbVNETUE3X1BVQl9EVU1NWV9SRUcxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QVUJfRFVNTVlfUkVHMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTMKKyNkZWZpbmUgbW1TRE1BN19QVUJfRFVNTVlfUkVHMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUFVCX0RVTU1ZX1JFRzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU0CisjZGVmaW5lIG1tU0RNQTdfUFVCX0RVTU1ZX1JFRzNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0YzMl9DT1VOVEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NQorI2RlZmluZSBtbVNETUE3X0YzMl9DT1VOVEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19VTkJSRUFLQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTYKKyNkZWZpbmUgbW1TRE1BN19VTkJSRUFLQUJMRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEVSRk1PTl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU3CisjZGVmaW5lIG1tU0RNQTdfUEVSRk1PTl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BFUkZDT1VOVEVSMF9SRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OAorI2RlZmluZSBtbVNETUE3X1BFUkZDT1VOVEVSMF9SRVNVTFRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QRVJGQ09VTlRFUjFfUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTkKKyNkZWZpbmUgbW1TRE1BN19QRVJGQ09VTlRFUjFfUkVTVUxUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVhCisjZGVmaW5lIG1tU0RNQTdfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0NSRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YgorI2RlZmluZSBtbVNETUE3X0NSRF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HUFVfSU9WX1ZJT0xBVElPTl9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWQKKyNkZWZpbmUgbW1TRE1BN19HUFVfSU9WX1ZJT0xBVElPTl9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfVUxWX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVlCisjZGVmaW5lIG1tU0RNQTdfVUxWX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0VBX0RCSVRfQUREUl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MAorI2RlZmluZSBtbVNETUE3X0VBX0RCSVRfQUREUl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19FQV9EQklUX0FERFJfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjEKKyNkZWZpbmUgbW1TRE1BN19FQV9EQklUX0FERFJfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR1BVX0lPVl9WSU9MQVRJT05fTE9HMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYyCisjZGVmaW5lIG1tU0RNQTdfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9SQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MAorI2RlZmluZSBtbVNETUE3X0dGWF9SQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfUkJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODEKKyNkZWZpbmUgbW1TRE1BN19HRlhfUkJfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgyCisjZGVmaW5lIG1tU0RNQTdfR0ZYX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MworI2RlZmluZSBtbVNETUE3X0dGWF9SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfUkJfUlBUUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODQKKyNkZWZpbmUgbW1TRE1BN19HRlhfUkJfUlBUUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg1CisjZGVmaW5lIG1tU0RNQTdfR0ZYX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9SQl9XUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NgorI2RlZmluZSBtbVNETUE3X0dGWF9SQl9XUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfUkJfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODcKKyNkZWZpbmUgbW1TRE1BN19HRlhfUkJfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX1JCX1JQVFJfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg4CisjZGVmaW5lIG1tU0RNQTdfR0ZYX1JCX1JQVFJfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9SQl9SUFRSX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OQorI2RlZmluZSBtbVNETUE3X0dGWF9SQl9SUFRSX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfSUJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGEKKyNkZWZpbmUgbW1TRE1BN19HRlhfSUJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0lCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhiCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0lCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9JQl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YworI2RlZmluZSBtbVNETUE3X0dGWF9JQl9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfSUJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGQKKyNkZWZpbmUgbW1TRE1BN19HRlhfSUJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0lCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhlCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0lCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZgorI2RlZmluZSBtbVNETUE3X0dGWF9JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfU0tJUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTAKKyNkZWZpbmUgbW1TRE1BN19HRlhfU0tJUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0NPTlRFWFRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0NPTlRFWFRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9ET09SQkVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MgorI2RlZmluZSBtbVNETUE3X0dGWF9ET09SQkVMTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfQ09OVEVYVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTMKKyNkZWZpbmUgbW1TRE1BN19HRlhfQ09OVEVYVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE4CisjZGVmaW5lIG1tU0RNQTdfR0ZYX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9ET09SQkVMTF9MT0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhOQorI2RlZmluZSBtbVNETUE3X0dGWF9ET09SQkVMTF9MT0dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfV0FURVJNQVJLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWEKKyNkZWZpbmUgbW1TRE1BN19HRlhfV0FURVJNQVJLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFiCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0RPT1JCRUxMX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9DU0FfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYworI2RlZmluZSBtbVNETUE3X0dGWF9DU0FfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfQ1NBX0FERFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWQKKyNkZWZpbmUgbW1TRE1BN19HRlhfQ1NBX0FERFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0lCX1NVQl9SRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFmCisjZGVmaW5lIG1tU0RNQTdfR0ZYX0lCX1NVQl9SRU1BSU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9QUkVFTVBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMAorI2RlZmluZSBtbVNETUE3X0dGWF9QUkVFTVBUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfRFVNTVlfUkVHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjEKKyNkZWZpbmUgbW1TRE1BN19HRlhfRFVNTVlfUkVHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIyCisjZGVmaW5lIG1tU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMworI2RlZmluZSBtbVNETUE3X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfUkJfQVFMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjQKKyNkZWZpbmUgbW1TRE1BN19HRlhfUkJfQVFMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX01JTk9SX1BUUl9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI1CisjZGVmaW5lIG1tU0RNQTdfR0ZYX01JTk9SX1BUUl9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9NSURDTURfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMAorI2RlZmluZSBtbVNETUE3X0dGWF9NSURDTURfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfTUlEQ01EX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzEKKyNkZWZpbmUgbW1TRE1BN19HRlhfTUlEQ01EX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX01JRENNRF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMyCisjZGVmaW5lIG1tU0RNQTdfR0ZYX01JRENNRF9EQVRBMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9NSURDTURfREFUQTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMworI2RlZmluZSBtbVNETUE3X0dGWF9NSURDTURfREFUQTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfTUlEQ01EX0RBVEE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzQKKyNkZWZpbmUgbW1TRE1BN19HRlhfTUlEQ01EX0RBVEE0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX01JRENNRF9EQVRBNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM1CisjZGVmaW5lIG1tU0RNQTdfR0ZYX01JRENNRF9EQVRBNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9NSURDTURfREFUQTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNgorI2RlZmluZSBtbVNETUE3X0dGWF9NSURDTURfREFUQTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19HRlhfTUlEQ01EX0RBVEE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzcKKyNkZWZpbmUgbW1TRE1BN19HRlhfTUlEQ01EX0RBVEE3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfR0ZYX01JRENNRF9EQVRBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM4CisjZGVmaW5lIG1tU0RNQTdfR0ZYX01JRENNRF9EQVRBOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X0dGWF9NSURDTURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjOQorI2RlZmluZSBtbVNETUE3X0dGWF9NSURDTURfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZDgKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ5CisjZGVmaW5lIG1tU0RNQTdfUEFHRV9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkYQorI2RlZmluZSBtbVNETUE3X1BBR0VfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGIKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRjCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZAorI2RlZmluZSBtbVNETUE3X1BBR0VfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGUKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRmCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMAorI2RlZmluZSBtbVNETUE3X1BBR0VfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUyCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMworI2RlZmluZSBtbVNETUE3X1BBR0VfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTQKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU1CisjZGVmaW5lIG1tU0RNQTdfUEFHRV9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNgorI2RlZmluZSBtbVNETUE3X1BBR0VfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTcKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU4CisjZGVmaW5lIG1tU0RNQTdfUEFHRV9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlOQorI2RlZmluZSBtbVNETUE3X1BBR0VfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMQorI2RlZmluZSBtbVNETUE3X1BBR0VfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDIKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAzCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNAorI2RlZmluZSBtbVNETUE3X1BBR0VfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDUKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA3CisjZGVmaW5lIG1tU0RNQTdfUEFHRV9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwOAorI2RlZmluZSBtbVNETUE3X1BBR0VfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDkKKyNkZWZpbmUgbW1TRE1BN19QQUdFX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBhCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYgorI2RlZmluZSBtbVNETUE3X1BBR0VfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGMKKyNkZWZpbmUgbW1TRE1BN19QQUdFX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBkCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExOAorI2RlZmluZSBtbVNETUE3X1BBR0VfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTkKKyNkZWZpbmUgbW1TRE1BN19QQUdFX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFhCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExYgorI2RlZmluZSBtbVNETUE3X1BBR0VfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWMKKyNkZWZpbmUgbW1TRE1BN19QQUdFX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFkCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExZQorI2RlZmluZSBtbVNETUE3X1BBR0VfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19QQUdFX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMWYKKyNkZWZpbmUgbW1TRE1BN19QQUdFX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTIwCisjZGVmaW5lIG1tU0RNQTdfUEFHRV9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1BBR0VfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyMQorI2RlZmluZSBtbVNETUE3X1BBR0VfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzAKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMgorI2RlZmluZSBtbVNETUE3X1JMQzBfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzMKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM0CisjZGVmaW5lIG1tU0RNQTdfUkxDMF9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNQorI2RlZmluZSBtbVNETUE3X1JMQzBfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzYKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTM3CisjZGVmaW5lIG1tU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzOAorI2RlZmluZSBtbVNETUE3X1JMQzBfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzkKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNhCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzYgorI2RlZmluZSBtbVNETUE3X1JMQzBfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2MKKyNkZWZpbmUgbW1TRE1BN19STEMwX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTNkCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzZQorI2RlZmluZSBtbVNETUE3X1JMQzBfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxM2YKKyNkZWZpbmUgbW1TRE1BN19STEMwX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQwCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MQorI2RlZmluZSBtbVNETUE3X1JMQzBfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDIKKyNkZWZpbmUgbW1TRE1BN19STEMwX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU4CisjZGVmaW5lIG1tU0RNQTdfUkxDMF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1OQorI2RlZmluZSBtbVNETUE3X1JMQzBfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWEKKyNkZWZpbmUgbW1TRE1BN19STEMwX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTViCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1YworI2RlZmluZSBtbVNETUE3X1JMQzBfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWQKKyNkZWZpbmUgbW1TRE1BN19STEMwX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVmCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MAorI2RlZmluZSBtbVNETUE3X1JMQzBfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjEKKyNkZWZpbmUgbW1TRE1BN19STEMwX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYyCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MworI2RlZmluZSBtbVNETUE3X1JMQzBfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjQKKyNkZWZpbmUgbW1TRE1BN19STEMwX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY1CisjZGVmaW5lIG1tU0RNQTdfUkxDMF9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MAorI2RlZmluZSBtbVNETUE3X1JMQzBfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzEKKyNkZWZpbmUgbW1TRE1BN19STEMwX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcyCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3MworI2RlZmluZSBtbVNETUE3X1JMQzBfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzQKKyNkZWZpbmUgbW1TRE1BN19STEMwX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc1CisjZGVmaW5lIG1tU0RNQTdfUkxDMF9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3NgorI2RlZmluZSBtbVNETUE3X1JMQzBfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMwX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzcKKyNkZWZpbmUgbW1TRE1BN19STEMwX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMF9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTc4CisjZGVmaW5lIG1tU0RNQTdfUkxDMF9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzBfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3OQorI2RlZmluZSBtbVNETUE3X1JMQzBfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODgKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg5CisjZGVmaW5lIG1tU0RNQTdfUkxDMV9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YQorI2RlZmluZSBtbVNETUE3X1JMQzFfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGIKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThjCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZAorI2RlZmluZSBtbVNETUE3X1JMQzFfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGUKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThmCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MAorI2RlZmluZSBtbVNETUE3X1JMQzFfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTEKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkyCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MworI2RlZmluZSBtbVNETUE3X1JMQzFfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTQKKyNkZWZpbmUgbW1TRE1BN19STEMxX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk1CisjZGVmaW5lIG1tU0RNQTdfUkxDMV9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5NgorI2RlZmluZSBtbVNETUE3X1JMQzFfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTcKKyNkZWZpbmUgbW1TRE1BN19STEMxX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTk4CisjZGVmaW5lIG1tU0RNQTdfUkxDMV9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5OQorI2RlZmluZSBtbVNETUE3X1JMQzFfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOWEKKyNkZWZpbmUgbW1TRE1BN19STEMxX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIwCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiMQorI2RlZmluZSBtbVNETUE3X1JMQzFfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjIKKyNkZWZpbmUgbW1TRE1BN19STEMxX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWIzCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiNAorI2RlZmluZSBtbVNETUE3X1JMQzFfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjUKKyNkZWZpbmUgbW1TRE1BN19STEMxX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWI3CisjZGVmaW5lIG1tU0RNQTdfUkxDMV9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiOAorI2RlZmluZSBtbVNETUE3X1JMQzFfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYjkKKyNkZWZpbmUgbW1TRE1BN19STEMxX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJhCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFiYgorI2RlZmluZSBtbVNETUE3X1JMQzFfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYmMKKyNkZWZpbmUgbW1TRE1BN19STEMxX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWJkCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjOAorI2RlZmluZSBtbVNETUE3X1JMQzFfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzkKKyNkZWZpbmUgbW1TRE1BN19STEMxX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNhCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjYgorI2RlZmluZSBtbVNETUE3X1JMQzFfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2MKKyNkZWZpbmUgbW1TRE1BN19STEMxX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNkCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjZQorI2RlZmluZSBtbVNETUE3X1JMQzFfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMxX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxY2YKKyNkZWZpbmUgbW1TRE1BN19STEMxX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWQwCisjZGVmaW5lIG1tU0RNQTdfUkxDMV9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzFfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFkMQorI2RlZmluZSBtbVNETUE3X1JMQzFfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTAKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMgorI2RlZmluZSBtbVNETUE3X1JMQzJfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTMKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU0CisjZGVmaW5lIG1tU0RNQTdfUkxDMl9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNQorI2RlZmluZSBtbVNETUE3X1JMQzJfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTYKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU3CisjZGVmaW5lIG1tU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlOAorI2RlZmluZSBtbVNETUE3X1JMQzJfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTkKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVhCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYgorI2RlZmluZSBtbVNETUE3X1JMQzJfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWMKKyNkZWZpbmUgbW1TRE1BN19STEMyX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWVkCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlZQorI2RlZmluZSBtbVNETUE3X1JMQzJfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWYKKyNkZWZpbmUgbW1TRE1BN19STEMyX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWYwCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFmMQorI2RlZmluZSBtbVNETUE3X1JMQzJfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZjIKKyNkZWZpbmUgbW1TRE1BN19STEMyX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjA4CisjZGVmaW5lIG1tU0RNQTdfUkxDMl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwOQorI2RlZmluZSBtbVNETUE3X1JMQzJfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGEKKyNkZWZpbmUgbW1TRE1BN19STEMyX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBiCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwYworI2RlZmluZSBtbVNETUE3X1JMQzJfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMGQKKyNkZWZpbmUgbW1TRE1BN19STEMyX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjBmCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMAorI2RlZmluZSBtbVNETUE3X1JMQzJfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTEKKyNkZWZpbmUgbW1TRE1BN19STEMyX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjEyCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxMworI2RlZmluZSBtbVNETUE3X1JMQzJfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMTQKKyNkZWZpbmUgbW1TRE1BN19STEMyX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjE1CisjZGVmaW5lIG1tU0RNQTdfUkxDMl9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMAorI2RlZmluZSBtbVNETUE3X1JMQzJfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjEKKyNkZWZpbmUgbW1TRE1BN19STEMyX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIyCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMworI2RlZmluZSBtbVNETUE3X1JMQzJfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjQKKyNkZWZpbmUgbW1TRE1BN19STEMyX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI1CisjZGVmaW5lIG1tU0RNQTdfUkxDMl9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyNgorI2RlZmluZSBtbVNETUE3X1JMQzJfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMyX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMjcKKyNkZWZpbmUgbW1TRE1BN19STEMyX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDMl9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI4CisjZGVmaW5lIG1tU0RNQTdfUkxDMl9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzJfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyOQorI2RlZmluZSBtbVNETUE3X1JMQzJfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMzgKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM5CisjZGVmaW5lIG1tU0RNQTdfUkxDM19SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzYQorI2RlZmluZSBtbVNETUE3X1JMQzNfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2IKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNjCisjZGVmaW5lIG1tU0RNQTdfUkxDM19SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzZAorI2RlZmluZSBtbVNETUE3X1JMQzNfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyM2UKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjNmCisjZGVmaW5lIG1tU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MAorI2RlZmluZSBtbVNETUE3X1JMQzNfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQyCisjZGVmaW5lIG1tU0RNQTdfUkxDM19JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MworI2RlZmluZSBtbVNETUE3X1JMQzNfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDQKKyNkZWZpbmUgbW1TRE1BN19STEMzX0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ1CisjZGVmaW5lIG1tU0RNQTdfUkxDM19JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0NgorI2RlZmluZSBtbVNETUE3X1JMQzNfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDcKKyNkZWZpbmUgbW1TRE1BN19STEMzX0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ4CisjZGVmaW5lIG1tU0RNQTdfUkxDM19TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0OQorI2RlZmluZSBtbVNETUE3X1JMQzNfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNGEKKyNkZWZpbmUgbW1TRE1BN19STEMzX0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYwCisjZGVmaW5lIG1tU0RNQTdfUkxDM19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2MQorI2RlZmluZSBtbVNETUE3X1JMQzNfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjIKKyNkZWZpbmUgbW1TRE1BN19STEMzX1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjYzCisjZGVmaW5lIG1tU0RNQTdfUkxDM19ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2NAorI2RlZmluZSBtbVNETUE3X1JMQzNfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjUKKyNkZWZpbmUgbW1TRE1BN19STEMzX0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjY3CisjZGVmaW5lIG1tU0RNQTdfUkxDM19JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2OAorI2RlZmluZSBtbVNETUE3X1JMQzNfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNjkKKyNkZWZpbmUgbW1TRE1BN19STEMzX0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZhCisjZGVmaW5lIG1tU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI2YgorI2RlZmluZSBtbVNETUE3X1JMQzNfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNmMKKyNkZWZpbmUgbW1TRE1BN19STEMzX1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjZkCisjZGVmaW5lIG1tU0RNQTdfUkxDM19NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3OAorI2RlZmluZSBtbVNETUE3X1JMQzNfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNzkKKyNkZWZpbmUgbW1TRE1BN19STEMzX01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdhCisjZGVmaW5lIG1tU0RNQTdfUkxDM19NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3YgorI2RlZmluZSBtbVNETUE3X1JMQzNfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2MKKyNkZWZpbmUgbW1TRE1BN19STEMzX01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjdkCisjZGVmaW5lIG1tU0RNQTdfUkxDM19NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3ZQorI2RlZmluZSBtbVNETUE3X1JMQzNfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEMzX01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyN2YKKyNkZWZpbmUgbW1TRE1BN19STEMzX01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDM19NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjgwCisjZGVmaW5lIG1tU0RNQTdfUkxDM19NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzNfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI4MQorI2RlZmluZSBtbVNETUE3X1JMQzNfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTAKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjkxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5MgorI2RlZmluZSBtbVNETUE3X1JMQzRfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTMKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk0CisjZGVmaW5lIG1tU0RNQTdfUkxDNF9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5NQorI2RlZmluZSBtbVNETUE3X1JMQzRfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTYKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjk3CisjZGVmaW5lIG1tU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5OAorI2RlZmluZSBtbVNETUE3X1JMQzRfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOTkKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlhCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5YgorI2RlZmluZSBtbVNETUE3X1JMQzRfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWMKKyNkZWZpbmUgbW1TRE1BN19STEM0X0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjlkCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI5ZQorI2RlZmluZSBtbVNETUE3X1JMQzRfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyOWYKKyNkZWZpbmUgbW1TRE1BN19STEM0X0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmEwCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJhMQorI2RlZmluZSBtbVNETUE3X1JMQzRfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYTIKKyNkZWZpbmUgbW1TRE1BN19STEM0X0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmI4CisjZGVmaW5lIG1tU0RNQTdfUkxDNF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiOQorI2RlZmluZSBtbVNETUE3X1JMQzRfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmEKKyNkZWZpbmUgbW1TRE1BN19STEM0X1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJiCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJiYworI2RlZmluZSBtbVNETUE3X1JMQzRfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYmQKKyNkZWZpbmUgbW1TRE1BN19STEM0X0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmJmCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMAorI2RlZmluZSBtbVNETUE3X1JMQzRfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzEKKyNkZWZpbmUgbW1TRE1BN19STEM0X0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmMyCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjMworI2RlZmluZSBtbVNETUE3X1JMQzRfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzQKKyNkZWZpbmUgbW1TRE1BN19STEM0X1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM1CisjZGVmaW5lIG1tU0RNQTdfUkxDNF9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMAorI2RlZmluZSBtbVNETUE3X1JMQzRfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQyCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMworI2RlZmluZSBtbVNETUE3X1JMQzRfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDQKKyNkZWZpbmUgbW1TRE1BN19STEM0X01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ1CisjZGVmaW5lIG1tU0RNQTdfUkxDNF9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNgorI2RlZmluZSBtbVNETUE3X1JMQzRfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM0X01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDcKKyNkZWZpbmUgbW1TRE1BN19STEM0X01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNF9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ4CisjZGVmaW5lIG1tU0RNQTdfUkxDNF9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzRfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkOQorI2RlZmluZSBtbVNETUE3X1JMQzRfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTgKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU5CisjZGVmaW5lIG1tU0RNQTdfUkxDNV9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYQorI2RlZmluZSBtbVNETUE3X1JMQzVfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWIKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVjCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZAorI2RlZmluZSBtbVNETUE3X1JMQzVfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWUKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVmCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMAorI2RlZmluZSBtbVNETUE3X1JMQzVfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjEKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYyCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMworI2RlZmluZSBtbVNETUE3X1JMQzVfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjQKKyNkZWZpbmUgbW1TRE1BN19STEM1X0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY1CisjZGVmaW5lIG1tU0RNQTdfUkxDNV9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNgorI2RlZmluZSBtbVNETUE3X1JMQzVfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjcKKyNkZWZpbmUgbW1TRE1BN19STEM1X0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmY4CisjZGVmaW5lIG1tU0RNQTdfUkxDNV9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmOQorI2RlZmluZSBtbVNETUE3X1JMQzVfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZmEKKyNkZWZpbmUgbW1TRE1BN19STEM1X0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEwCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxMQorI2RlZmluZSBtbVNETUE3X1JMQzVfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTIKKyNkZWZpbmUgbW1TRE1BN19STEM1X1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzEzCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxNAorI2RlZmluZSBtbVNETUE3X1JMQzVfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTUKKyNkZWZpbmUgbW1TRE1BN19STEM1X0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzE3CisjZGVmaW5lIG1tU0RNQTdfUkxDNV9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxOAorI2RlZmluZSBtbVNETUE3X1JMQzVfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMTkKKyNkZWZpbmUgbW1TRE1BN19STEM1X0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFhCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMxYgorI2RlZmluZSBtbVNETUE3X1JMQzVfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMWMKKyNkZWZpbmUgbW1TRE1BN19STEM1X1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzFkCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyOAorI2RlZmluZSBtbVNETUE3X1JMQzVfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjkKKyNkZWZpbmUgbW1TRE1BN19STEM1X01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJhCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyYgorI2RlZmluZSBtbVNETUE3X1JMQzVfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmMKKyNkZWZpbmUgbW1TRE1BN19STEM1X01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzJkCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyZQorI2RlZmluZSBtbVNETUE3X1JMQzVfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM1X01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMmYKKyNkZWZpbmUgbW1TRE1BN19STEM1X01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzMwCisjZGVmaW5lIG1tU0RNQTdfUkxDNV9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzVfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMzMQorI2RlZmluZSBtbVNETUE3X1JMQzVfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDAKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0MgorI2RlZmluZSBtbVNETUE3X1JMQzZfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDMKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ0CisjZGVmaW5lIG1tU0RNQTdfUkxDNl9SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0NQorI2RlZmluZSBtbVNETUE3X1JMQzZfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDYKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzQ3CisjZGVmaW5lIG1tU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0OAorI2RlZmluZSBtbVNETUE3X1JMQzZfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNDkKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRhCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0YgorI2RlZmluZSBtbVNETUE3X1JMQzZfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGMKKyNkZWZpbmUgbW1TRE1BN19STEM2X0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzRkCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM0ZQorI2RlZmluZSBtbVNETUE3X1JMQzZfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNGYKKyNkZWZpbmUgbW1TRE1BN19STEM2X0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzUwCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM1MQorI2RlZmluZSBtbVNETUE3X1JMQzZfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNTIKKyNkZWZpbmUgbW1TRE1BN19STEM2X0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzY4CisjZGVmaW5lIG1tU0RNQTdfUkxDNl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2OQorI2RlZmluZSBtbVNETUE3X1JMQzZfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmEKKyNkZWZpbmUgbW1TRE1BN19STEM2X1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZiCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2YworI2RlZmluZSBtbVNETUE3X1JMQzZfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNmQKKyNkZWZpbmUgbW1TRE1BN19STEM2X0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzZmCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MAorI2RlZmluZSBtbVNETUE3X1JMQzZfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzEKKyNkZWZpbmUgbW1TRE1BN19STEM2X0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzcyCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM3MworI2RlZmluZSBtbVNETUE3X1JMQzZfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNzQKKyNkZWZpbmUgbW1TRE1BN19STEM2X1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzc1CisjZGVmaW5lIG1tU0RNQTdfUkxDNl9NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MAorI2RlZmluZSBtbVNETUE3X1JMQzZfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODEKKyNkZWZpbmUgbW1TRE1BN19STEM2X01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzgyCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4MworI2RlZmluZSBtbVNETUE3X1JMQzZfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODQKKyNkZWZpbmUgbW1TRE1BN19STEM2X01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg1CisjZGVmaW5lIG1tU0RNQTdfUkxDNl9NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4NgorI2RlZmluZSBtbVNETUE3X1JMQzZfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM2X01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzODcKKyNkZWZpbmUgbW1TRE1BN19STEM2X01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDNl9NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzg4CisjZGVmaW5lIG1tU0RNQTdfUkxDNl9NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzZfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM4OQorI2RlZmluZSBtbVNETUE3X1JMQzZfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOTgKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19SQl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzk5CisjZGVmaW5lIG1tU0RNQTdfUkxDN19SQl9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfUkJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5YQorI2RlZmluZSBtbVNETUE3X1JMQzdfUkJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX1JQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWIKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX1JQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19SQl9SUFRSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzljCisjZGVmaW5lIG1tU0RNQTdfUkxDN19SQl9SUFRSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM5ZAorI2RlZmluZSBtbVNETUE3X1JMQzdfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX1dQVFJfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOWUKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX1dQVFJfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzlmCisjZGVmaW5lIG1tU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfUkJfUlBUUl9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMAorI2RlZmluZSBtbVNETUE3X1JMQzdfUkJfUlBUUl9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX1JQVFJfQUREUl9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTEKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX1JQVFJfQUREUl9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19JQl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2EyCisjZGVmaW5lIG1tU0RNQTdfUkxDN19JQl9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfSUJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMworI2RlZmluZSBtbVNETUE3X1JMQzdfSUJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X0lCX09GRlNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTQKKyNkZWZpbmUgbW1TRE1BN19STEM3X0lCX09GRlNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19JQl9CQVNFX0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E1CisjZGVmaW5lIG1tU0RNQTdfUkxDN19JQl9CQVNFX0xPX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfSUJfQkFTRV9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhNgorI2RlZmluZSBtbVNETUE3X1JMQzdfSUJfQkFTRV9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X0lCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTcKKyNkZWZpbmUgbW1TRE1BN19STEM3X0lCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19TS0lQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2E4CisjZGVmaW5lIG1tU0RNQTdfUkxDN19TS0lQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfQ09OVEVYVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhOQorI2RlZmluZSBtbVNETUE3X1JMQzdfQ09OVEVYVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X0RPT1JCRUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYWEKKyNkZWZpbmUgbW1TRE1BN19STEM3X0RPT1JCRUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MwCisjZGVmaW5lIG1tU0RNQTdfUkxDN19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfRE9PUkJFTExfTE9HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjMQorI2RlZmluZSBtbVNETUE3X1JMQzdfRE9PUkJFTExfTE9HX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X1dBVEVSTUFSSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzIKKyNkZWZpbmUgbW1TRE1BN19STEM3X1dBVEVSTUFSS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MzCisjZGVmaW5lIG1tU0RNQTdfUkxDN19ET09SQkVMTF9PRkZTRVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfQ1NBX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjNAorI2RlZmluZSBtbVNETUE3X1JMQzdfQ1NBX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X0NTQV9BRERSX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzUKKyNkZWZpbmUgbW1TRE1BN19STEM3X0NTQV9BRERSX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19JQl9TVUJfUkVNQUlOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2M3CisjZGVmaW5lIG1tU0RNQTdfUkxDN19JQl9TVUJfUkVNQUlOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfUFJFRU1QVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjOAorI2RlZmluZSBtbVNETUE3X1JMQzdfUFJFRU1QVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X0RVTU1ZX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYzkKKyNkZWZpbmUgbW1TRE1BN19STEM3X0RVTU1ZX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NhCisjZGVmaW5lIG1tU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNjYgorI2RlZmluZSBtbVNETUE3X1JMQzdfUkJfV1BUUl9QT0xMX0FERFJfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX0FRTF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzY2MKKyNkZWZpbmUgbW1TRE1BN19STEM3X1JCX0FRTF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19NSU5PUl9QVFJfVVBEQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2NkCisjZGVmaW5lIG1tU0RNQTdfUkxDN19NSU5PUl9QVFJfVVBEQVRFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfTUlEQ01EX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkOAorI2RlZmluZSBtbVNETUE3X1JMQzdfTUlEQ01EX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X01JRENNRF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZDkKKyNkZWZpbmUgbW1TRE1BN19STEM3X01JRENNRF9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19NSURDTURfREFUQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RhCisjZGVmaW5lIG1tU0RNQTdfUkxDN19NSURDTURfREFUQTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfTUlEQ01EX0RBVEEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkYgorI2RlZmluZSBtbVNETUE3X1JMQzdfTUlEQ01EX0RBVEEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X01JRENNRF9EQVRBNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGMKKyNkZWZpbmUgbW1TRE1BN19STEM3X01JRENNRF9EQVRBNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19NSURDTURfREFUQTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2RkCisjZGVmaW5lIG1tU0RNQTdfUkxDN19NSURDTURfREFUQTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfTUlEQ01EX0RBVEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNkZQorI2RlZmluZSBtbVNETUE3X1JMQzdfTUlEQ01EX0RBVEE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1TRE1BN19STEM3X01JRENNRF9EQVRBNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZGYKKyNkZWZpbmUgbW1TRE1BN19STEM3X01JRENNRF9EQVRBN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tU0RNQTdfUkxDN19NSURDTURfREFUQTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2UwCisjZGVmaW5lIG1tU0RNQTdfUkxDN19NSURDTURfREFUQThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVNETUE3X1JMQzdfTUlEQ01EX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNlMQorI2RlZmluZSBtbVNETUE3X1JMQzdfTUlEQ01EX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc2RtYTcvc2RtYTdfNF8yXzJfc2hfbWFzay5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NkbWE3L3NkbWE3XzRfMl8yX3NoX21hc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjU2ZDhjNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zZG1hNy9zZG1hN180XzJfMl9zaF9tYXNrLmgKQEAgLTAsMCArMSwyOTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9zZG1hN180XzJfMl9TSF9NQVNLX0hFQURFUgorI2RlZmluZSBfc2RtYTdfNF8yXzJfU0hfTUFTS19IRUFERVIKKworCisvLyBhZGRyZXNzQmxvY2s6IHNkbWE3X3NkbWE3ZGVjCisvL1NETUE3X1VDT0RFX0FERFIKKyNkZWZpbmUgU0RNQTdfVUNPREVfQUREUl9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1VDT0RFX0FERFJfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL1NETUE3X1VDT0RFX0RBVEEKKyNkZWZpbmUgU0RNQTdfVUNPREVfREFUQV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1VDT0RFX0RBVEFfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1ZNX0NOVEwKKyNkZWZpbmUgU0RNQTdfVk1fQ05UTF9fQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1ZNX0NOVExfX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1NETUE3X1ZNX0NUWF9MTworI2RlZmluZSBTRE1BN19WTV9DVFhfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfVk1fQ1RYX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfVk1fQ1RYX0hJCisjZGVmaW5lIFNETUE3X1ZNX0NUWF9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19WTV9DVFhfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19BQ1RJVkVfRkNOX0lECisjZGVmaW5lIFNETUE3X0FDVElWRV9GQ05fSURfX1ZGSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19BQ1RJVkVfRkNOX0lEX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfQUNUSVZFX0ZDTl9JRF9fVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BN19BQ1RJVkVfRkNOX0lEX19WRklEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BN19BQ1RJVkVfRkNOX0lEX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkYwTAorI2RlZmluZSBTRE1BN19BQ1RJVkVfRkNOX0lEX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BN19WTV9DVFhfQ05UTAorI2RlZmluZSBTRE1BN19WTV9DVFhfQ05UTF9fUFJJVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfVk1fQ1RYX0NOVExfX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1ZNX0NUWF9DTlRMX19QUklWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1ZNX0NUWF9DTlRMX19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL1NETUE3X1ZJUlRfUkVTRVRfUkVRCisjZGVmaW5lIFNETUE3X1ZJUlRfUkVTRVRfUkVRX19WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19WSVJUX1JFU0VUX1JFUV9fUEZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE3X1ZJUlRfUkVTRVRfUkVRX19WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUE3X1ZJUlRfUkVTRVRfUkVRX19QRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE3X1ZGX0VOQUJMRQorI2RlZmluZSBTRE1BN19WRl9FTkFCTEVfX1ZGX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfVkZfRU5BQkxFX19WRl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTAKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BN19HRlhfUkJfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMF9fU0RNQTdfR0ZYX1JCX0JBU0VfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BN19HRlhfUkJfUlBUUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMF9fU0RNQTdfR0ZYX1JCX1dQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9XUFRSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BN19HRlhfUkJfV1BUUl9QT0xMX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMF9fU0RNQTdfR0ZYX1JCX1JQVFJfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9SUFRSX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BN19HRlhfSUJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMF9fU0RNQTdfR0ZYX0lCX1JQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9JQl9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BN19HRlhfSUJfQkFTRV9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMF9fU0RNQTdfR0ZYX0lCX0JBU0VfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9JQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BN19HRlhfU0tJUF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9DT05URVhUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMF9fU0RNQTdfR0ZYX0RPT1JCRUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUwX19TRE1BN19HRlhfQ09OVEVYVF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9CQVNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9CQVNFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9SUFRSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9XUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9XUFRSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9SUFRSX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9SQl9SUFRSX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9JQl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9JQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9JQl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9JQl9CQVNFX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9JQl9CQVNFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9JQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9TS0lQX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9DT05URVhUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9ET09SQkVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfX1NETUE3X0dGWF9DT05URVhUX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKy8vU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTEKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE3X0dGWF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfRE9PUkJFTExfTE9HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMV9fU0RNQTdfR0ZYX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE3X0dGWF9ET09SQkVMTF9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfQ1NBX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMV9fU0RNQTdfR0ZYX0NTQV9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTFfX1ZPSURfUkVHMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfSUJfU1VCX1JFTUFJTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMV9fU0RNQTdfR0ZYX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfRFVNTVlfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE3X0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMV9fU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfUkJfQVFMX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTFfX1NETUE3X0dGWF9NSU5PUl9QVFJfVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMV9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfRE9PUkJFTExfTE9HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfRE9PUkJFTExfT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfQ1NBX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfQ1NBX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19WT0lEX1JFRzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfSUJfU1VCX1JFTUFJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfRFVNTVlfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfUkJfV1BUUl9QT0xMX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfUkJfQVFMX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19TRE1BN19HRlhfTUlOT1JfUFRSX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUxX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZDMDAwMDBMCisvL1NETUE3X0NPTlRFWFRfUkVHX1RZUEUyCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BN19HRlhfTUlEQ01EX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMl9fU0RNQTdfR0ZYX01JRENNRF9EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BN19HRlhfTUlEQ01EX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMl9fU0RNQTdfR0ZYX01JRENNRF9EQVRBNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BN19HRlhfTUlEQ01EX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMl9fU0RNQTdfR0ZYX01JRENNRF9EQVRBN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQThfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUyX19TRE1BN19HRlhfTUlEQ01EX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19DT05URVhUX1JFR19UWVBFMl9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQTdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfREFUQThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NETUE3X0dGWF9NSURDTURfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkMwMEwKKy8vU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTMKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTNfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfUkVHX1RZUEUzX19SRVNFUlZFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BVQl9SRUdfVFlQRTAKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfVUNPREVfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTBfX1NETUE3X1VDT0RFX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUwX19SRVNFUlZFRDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfVk1fQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTBfX1NETUE3X1ZNX0NUWF9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUwX19TRE1BN19WTV9DVFhfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQUNUSVZFX0ZDTl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTBfX1NETUE3X1ZNX0NUWF9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUwX19TRE1BN19WSVJUX1JFU0VUX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQxMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTBfX1NETUE3X0NPTlRFWFRfUkVHX1RZUEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUwX19TRE1BN19DT05URVhUX1JFR19UWVBFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTBfX1NETUE3X0NPTlRFWFRfUkVHX1RZUEUzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUwX19TRE1BN19QVUJfUkVHX1RZUEUwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfUFVCX1JFR19UWVBFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUwX19TRE1BN19QVUJfUkVHX1RZUEUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTBfX1NETUE3X1BVQl9SRUdfVFlQRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfTU1IVUJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUwX19SRVNFUlZFRF9GT1JfUFNQU01VX0FDQ0VTU19PTkxZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTBfX1NETUE3X0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfUE9XRVJfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUwX19TRE1BN19DTEtfQ1RSTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTBfX1NETUE3X0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ0hJQ0tFTl9CSVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUwX19TRE1BN19HQl9BRERSX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTBfX1NETUE3X0dCX0FERFJfQ09ORklHX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfVUNPREVfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfVUNPREVfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfVk1fQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfVk1fQ1RYX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfVk1fQ1RYX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQUNUSVZFX0ZDTl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfVk1fQ1RYX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfVklSVF9SRVNFVF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fUkVTRVJWRUQxMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ09OVEVYVF9SRUdfVFlQRTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfUFVCX1JFR19UWVBFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfUFVCX1JFR19UWVBFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfUFVCX1JFR19UWVBFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfUFVCX1JFR19UWVBFM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfTU1IVUJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fUkVTRVJWRURfRk9SX1BTUFNNVV9BQ0NFU1NfT05MWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUUwMDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfUE9XRVJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ0xLX0NUUkxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfQ0hJQ0tFTl9CSVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfR0JfQUREUl9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMF9fU0RNQTdfR0JfQUREUl9DT05GSUdfUkVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTdfUFVCX1JFR19UWVBFMQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19SQl9SUFRSX0ZFVENIX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUE3X1JCX1JQVFJfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19JQl9PRkZTRVRfRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfUFJPR1JBTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUE3X1NUQVRVU19SRUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19TVEFUVVMxX1JFR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfUkRfQlVSU1RfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUE3X0hCTV9QQUdFX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19VQ09ERV9DSEVDS1NVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfRjMyX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUE3X0ZSRUVaRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19QSEFTRTBfUVVBTlRVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfUEhBU0UxX1FVQU5UVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUFfUE9XRVJfR0FUSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQV9QR0ZTTV9XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1JFQURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUE3X0VEQ19DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfQkFfVEhSRVNIT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUE3X1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfRURDX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19FRENfQ09VTlRFUl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUE3X1NUQVRVUzJfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfQVRPTUlDX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19BVE9NSUNfUFJFT1BfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUE3X0FUT01JQ19QUkVPUF9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfVVRDTDFfQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19VVENMMV9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTFfX1NETUE3X1VUQ0wxX1JEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMV9fU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19SQl9SUFRSX0ZFVENIX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19SQl9SUFRSX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19JQl9PRkZTRVRfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19QUk9HUkFNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19TVEFUVVNfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19TVEFUVVMxX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19SRF9CVVJTVF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19IQk1fUEFHRV9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19VQ09ERV9DSEVDS1NVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19GMzJfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19GUkVFWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19QSEFTRTBfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19QSEFTRTFfUVVBTlRVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BX1BPV0VSX0dBVElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1dSSVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BX1BHRlNNX1JFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19FRENfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19CQV9USFJFU0hPTERfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19FRENfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19FRENfQ09VTlRFUl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19TVEFUVVMyX1JFR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19BVE9NSUNfQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19BVE9NSUNfUFJFT1BfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19BVE9NSUNfUFJFT1BfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19VVENMMV9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19VVENMMV9XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19VVENMMV9SRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUxX19TRE1BN19VVENMMV9XUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BN19QVUJfUkVHX1RZUEUyCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX0lOVjBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19TRE1BN19VVENMMV9JTlYxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfVVRDTDFfSU5WMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX1JEX1hOQUNLMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19TRE1BN19VVENMMV9SRF9YTkFDSzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfVVRDTDFfV1JfWE5BQ0swX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX1dSX1hOQUNLMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19TRE1BN19VVENMMV9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfVVRDTDFfUEFHRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BPV0VSX0NOVExfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19TRE1BN19SRUxBWF9PUkRFUklOR19MVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfQ0hJQ0tFTl9CSVRTXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1NUQVRVUzNfUkVHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19TRE1BN19QSFlTSUNBTF9BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfUEhZU0lDQUxfQUREUl9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BIQVNFMl9RVUFOVFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19TRE1BN19FUlJPUl9MT0dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BVQl9EVU1NWV9SRUcwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfUFVCX0RVTU1ZX1JFRzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19TRE1BN19QVUJfRFVNTVlfUkVHMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BVQl9EVU1NWV9SRUczX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfRjMyX0NPVU5URVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19TRE1BN19VTkJSRUFLQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BFUkZNT05fQ05UTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfUEVSRkNPVU5URVIwX1JFU1VMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19TRE1BN19QRVJGQ09VTlRFUjFfUkVTVUxUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfQ1JEX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19SRVNFUlZFRDI4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFMl9fU0RNQTdfVUxWX0NOVExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUyX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX0lOVjBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX0lOVjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX0lOVjJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX1JEX1hOQUNLMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX1JEX1hOQUNLMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX1dSX1hOQUNLMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX1dSX1hOQUNLMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VUQ0wxX1BBR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BPV0VSX0NOVExfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1JFTEFYX09SREVSSU5HX0xVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X0NISUNLRU5fQklUU18yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1NUQVRVUzNfUkVHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BIWVNJQ0FMX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BIWVNJQ0FMX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BIQVNFMl9RVUFOVFVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X0VSUk9SX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BVQl9EVU1NWV9SRUcwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BVQl9EVU1NWV9SRUcxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BVQl9EVU1NWV9SRUcyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BVQl9EVU1NWV9SRUczX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X0YzMl9DT1VOVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VOQlJFQUtBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BFUkZNT05fQ05UTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BFUkZDT1VOVEVSMF9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BFUkZDT1VOVEVSMV9SRVNVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X0NSRF9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEMjhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1NETUE3X1VMVl9DTlRMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTJfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE3X1BVQl9SRUdfVFlQRTMKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFM19fU0RNQTdfRUFfREJJVF9BRERSX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTNfX1NETUE3X0VBX0RCSVRfQUREUl9JTkRFWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19QVUJfUkVHX1RZUEUzX19TRE1BN19HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUFVCX1JFR19UWVBFM19fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTNfX1NETUE3X0VBX0RCSVRfQUREUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTNfX1NETUE3X0VBX0RCSVRfQUREUl9JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTNfX1NETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPRzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE3X1BVQl9SRUdfVFlQRTNfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRjhMCisvL1NETUE3X01NSFVCX0NOVEwKKyNkZWZpbmUgU0RNQTdfTU1IVUJfQ05UTF9fVU5JVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X01NSFVCX0NOVExfX1VOSVRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL1NETUE3X0NPTlRFWFRfR1JPVVBfQk9VTkRBUlkKKyNkZWZpbmUgU0RNQTdfQ09OVEVYVF9HUk9VUF9CT1VOREFSWV9fUkVTRVJWRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0NPTlRFWFRfR1JPVVBfQk9VTkRBUllfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BPV0VSX0NOVEwKKyNkZWZpbmUgU0RNQTdfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX09WRVJSSURFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1BPV0VSX0NOVExfX01FTV9QT1dFUl9MU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19QT1dFUl9DTlRMX19NRU1fUE9XRVJfRFNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTdfUE9XRVJfQ05UTF9fTUVNX1BPV0VSX1NEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE3X1BPV0VSX0NOVExfX01FTV9QT1dFUl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BN19QT1dFUl9DTlRMX19NRU1fUE9XRVJfT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19QT1dFUl9DTlRMX19NRU1fUE9XRVJfTFNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19QT1dFUl9DTlRMX19NRU1fUE9XRVJfRFNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BN19QT1dFUl9DTlRMX19NRU1fUE9XRVJfU0RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BN19QT1dFUl9DTlRMX19NRU1fUE9XRVJfREVMQVlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGMDAwTAorLy9TRE1BN19DTEtfQ1RSTAorI2RlZmluZSBTRE1BN19DTEtfQ1RSTF9fT05fREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X0NMS19DVFJMX19SRVNFUlZFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BN19DTEtfQ1RSTF9fU09GVF9PVkVSUklERTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X0NMS19DVFJMX19TT0ZUX09WRVJSSURFNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BN19DTEtfQ1RSTF9fU09GVF9PVkVSUklERTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE3X0NMS19DVFJMX19TT0ZUX09WRVJSSURFM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BN19DTEtfQ1RSTF9fU09GVF9PVkVSUklERTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE3X0NMS19DVFJMX19TT0ZUX09WRVJSSURFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX09GRl9IWVNURVJFU0lTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGMEwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1JFU0VSVkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRjAwMEwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU1X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREU0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ0xLX0NUUkxfX1NPRlRfT1ZFUlJJREUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTdfQ05UTAorI2RlZmluZSBTRE1BN19DTlRMX19UUkFQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfQ05UTF9fVVRDX0wxX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X0NOVExfX1NFTV9XQUlUX0lOVF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19DTlRMX19EQVRBX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfQ05UTF9fRkVOQ0VfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X0NOVExfX01JRENNRF9QUkVFTVBUX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19DTlRMX19NSURDTURfV09STERTV0lUQ0hfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE3X0NOVExfX0FVVE9fQ1RYU1dfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgU0RNQTdfQ05UTF9fQ1RYRU1QVFlfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BN19DTlRMX19GUk9aRU5fSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE3X0NOVExfX0lCX1BSRUVNUFRfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTdfQ05UTF9fVFJBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fVVRDX0wxX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fU0VNX1dBSVRfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fREFUQV9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fRkVOQ0VfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fTUlEQ01EX1BSRUVNUFRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fTUlEQ01EX1dPUkxEU1dJVENIX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fQVVUT19DVFhTV19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fQ1RYRU1QVFlfSU5UX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fRlJPWkVOX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfQ05UTF9fSUJfUFJFRU1QVF9JTlRfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTdfQ0hJQ0tFTl9CSVRTCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fQ09QWV9FRkZJQ0lFTkNZX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19DSElDS0VOX0JJVFNfX1NUQUxMX09OX1RSQU5TX0ZVTExfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTdfQ0hJQ0tFTl9CSVRTX19TVEFMTF9PTl9OT19GUkVFX0RBVEFfQlVGRkVSX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfTEVOR1RIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19DSElDS0VOX0JJVFNfX1dSSVRFX0JVUlNUX1dBSVRfQ1lDTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTdfQ0hJQ0tFTl9CSVRTX19DT1BZX09WRVJMQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BN19DSElDS0VOX0JJVFNfX1JBV19DSEVDS19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fU1JCTV9QT0xMX1JFVFJZSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTdfQ0hJQ0tFTl9CSVRTX19DR19TVEFUVVNfT1VUUFVUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19DSElDS0VOX0JJVFNfX1RJTUVfQkFTRURfUU9TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fQ0VfQUZJRk9fV0FURVJNQVJLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgU0RNQTdfQ0hJQ0tFTl9CSVRTX19DRV9ERklGT19XQVRFUk1BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BN19DSElDS0VOX0JJVFNfX0NFX0xGSUZPX1dBVEVSTUFSS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fQ09QWV9FRkZJQ0lFTkNZX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fU1RBTExfT05fVFJBTlNfRlVMTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fU1RBTExfT05fTk9fRlJFRV9EQVRBX0JVRkZFUl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fV1JJVEVfQlVSU1RfV0FJVF9DWUNMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFDMDBMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fQ09QWV9PVkVSTEFQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fUkFXX0NIRUNLX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fU1JCTV9QT0xMX1JFVFJZSU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fQ0dfU1RBVFVTX09VVFBVVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fVElNRV9CQVNFRF9RT1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fQ0VfQUZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fQ0VfREZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDBMCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU19fQ0VfTEZJRk9fV0FURVJNQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL1NETUE3X0dCX0FERFJfQ09ORklHCisjZGVmaW5lIFNETUE3X0dCX0FERFJfQ09ORklHX19OVU1fUElQRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HQl9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfR0JfQUREUl9DT05GSUdfX0JBTktfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X0dCX0FERFJfQ09ORklHX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BN19HQl9BRERSX0NPTkZJR19fTlVNX1NIQURFUl9FTkdJTkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE3X0dCX0FERFJfQ09ORklHX19OVU1fUElQRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUE3X0dCX0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIFNETUE3X0dCX0FERFJfQ09ORklHX19CQU5LX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIFNETUE3X0dCX0FERFJfQ09ORklHX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIFNETUE3X0dCX0FERFJfQ09ORklHX19OVU1fU0hBREVSX0VOR0lORVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisvL1NETUE3X0dCX0FERFJfQ09ORklHX1JFQUQKKyNkZWZpbmUgU0RNQTdfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1BJUEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dCX0FERFJfQ09ORklHX1JFQURfX1BJUEVfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BN19HQl9BRERSX0NPTkZJR19SRUFEX19CQU5LX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX0JBTktTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE3X0dCX0FERFJfQ09ORklHX1JFQURfX05VTV9TSEFERVJfRU5HSU5FU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTdfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1BJUEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgU0RNQTdfR0JfQUREUl9DT05GSUdfUkVBRF9fUElQRV9JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgU0RNQTdfR0JfQUREUl9DT05GSUdfUkVBRF9fQkFOS19JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDcwMEwKKyNkZWZpbmUgU0RNQTdfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgU0RNQTdfR0JfQUREUl9DT05GSUdfUkVBRF9fTlVNX1NIQURFUl9FTkdJTkVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4MDAwMEwKKy8vU0RNQTdfUkJfUlBUUl9GRVRDSF9ISQorI2RlZmluZSBTRE1BN19SQl9SUFRSX0ZFVENIX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkJfUlBUUl9GRVRDSF9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfU0VNX1dBSVRfRkFJTF9USU1FUl9DTlRMCisjZGVmaW5lIFNETUE3X1NFTV9XQUlUX0ZBSUxfVElNRVJfQ05UTF9fVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19TRU1fV0FJVF9GQUlMX1RJTUVSX0NOVExfX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19SQl9SUFRSX0ZFVENICisjZGVmaW5lIFNETUE3X1JCX1JQVFJfRkVUQ0hfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19SQl9SUFRSX0ZFVENIX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZDTAorLy9TRE1BN19JQl9PRkZTRVRfRkVUQ0gKKyNkZWZpbmUgU0RNQTdfSUJfT0ZGU0VUX0ZFVENIX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0lCX09GRlNFVF9GRVRDSF9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE3X1BST0dSQU0KKyNkZWZpbmUgU0RNQTdfUFJPR1JBTV9fU1RSRUFNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BST0dSQU1fX1NUUkVBTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1NUQVRVU19SRUcKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX1JFR19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19TVEFUVVNfUkVHX19SQl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUkJfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX1JCX0NNRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BN19TVEFUVVNfUkVHX19SQl9DTURfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSUJfQ01EX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX0lCX0NNRF9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19TVEFUVVNfUkVHX19CTE9DS19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX0VYX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19TVEFUVVNfUkVHX19FWF9JRExFX1BPTExfVElNRVJfRVhQSVJFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUEFDS0VUX1JFQURZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX01DX1dSX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BN19TVEFUVVNfUkVHX19TUkJNX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fQ09OVEVYVF9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX0RFTFRBX1JQVFJfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUkJfTUNfUlJFUV9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BN19TVEFUVVNfUkVHX19JQl9NQ19SUkVRX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX01DX1JEX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BN19TVEFUVVNfUkVHX19NQ19SRF9SRVRfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX01DX1JEX05PX1BPTExfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUFJFVl9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BN19TVEFUVVNfUkVHX19TRU1fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX1NFTV9SRVFfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fU0VNX1JFU1BfU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBTRE1BN19TVEFUVVNfUkVHX19JTlRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE3X1NUQVRVU19SRUdfX0lOVF9SRVFfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUkVHX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUkJfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUkJfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUkJfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUkJfQ01EX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSUJfQ01EX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSUJfQ01EX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fQkxPQ0tfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fRVhfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fRVhfSURMRV9QT0xMX1RJTUVSX0VYUElSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUEFDS0VUX1JFQURZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fTUNfV1JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fU1JCTV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fQ09OVEVYVF9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUkJfTUNfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSUJfTUNfUlJFUV9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fTUNfUkRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fREVMVEFfUlBUUl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fTUNfUkRfUkVUX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fTUNfUkRfTk9fUE9MTF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fUFJFVl9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fU0VNX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fU0VNX1JFUV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fU0VNX1JFU1BfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSU5UX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfU1RBVFVTX1JFR19fSU5UX1JFUV9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTdfU1RBVFVTMV9SRUcKKyNkZWZpbmUgU0RNQTdfU1RBVFVTMV9SRUdfX0NFX1dSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9XUl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19TVEFUVVMxX1JFR19fQ0VfU1BMSVRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfU1RBVFVTMV9SRUdfX0NFX1JSRVFfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9PVVRfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BN19TVEFUVVMxX1JFR19fQ0VfSU5fSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTdfU1RBVFVTMV9SRUdfX0NFX0RTVF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9DTURfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19TVEFUVVMxX1JFR19fQ0VfQUZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTdfU1RBVFVTMV9SRUdfX0NFX0lORk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9JTkZPMV9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BN19TVEFUVVMxX1JFR19fRVhfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgU0RNQTdfU1RBVFVTMV9SRUdfX0NFX1JEX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BN19TVEFUVVMxX1JFR19fQ0VfV1JfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9XUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9XUl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9TUExJVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9SUkVRX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9PVVRfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9JTl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9EU1RfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9DTURfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9BRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9JTkZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9JTkZPMV9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19FWF9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9SRF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE3X1NUQVRVUzFfUkVHX19DRV9XUl9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisvL1NETUE3X1JEX0JVUlNUX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkRfQlVSU1RfQ05UTF9fUkRfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JEX0JVUlNUX0NOVExfX0NNRF9CVUZGRVJfUkRfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19SRF9CVVJTVF9DTlRMX19SRF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBTRE1BN19SRF9CVVJTVF9DTlRMX19DTURfQlVGRkVSX1JEX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9TRE1BN19IQk1fUEFHRV9DT05GSUcKKyNkZWZpbmUgU0RNQTdfSEJNX1BBR0VfQ09ORklHX19QQUdFX1NJWkVfRVhQT05FTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0hCTV9QQUdFX0NPTkZJR19fUEFHRV9TSVpFX0VYUE9ORU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1VDT0RFX0NIRUNLU1VNCisjZGVmaW5lIFNETUE3X1VDT0RFX0NIRUNLU1VNX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19VQ09ERV9DSEVDS1NVTV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19GMzJfQ05UTAorI2RlZmluZSBTRE1BN19GMzJfQ05UTF9fSEFMVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfRjMyX0NOVExfX1NURVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X0YzMl9DTlRMX19IQUxUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X0YzMl9DTlRMX19TVEVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL1NETUE3X0ZSRUVaRQorI2RlZmluZSBTRE1BN19GUkVFWkVfX1BSRUVNUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfRlJFRVpFX19GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X0ZSRUVaRV9fRlJPWkVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19GUkVFWkVfX0YzMl9GUkVFWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgU0RNQTdfRlJFRVpFX19QUkVFTVBUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfRlJFRVpFX19GUkVFWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfRlJFRVpFX19GUk9aRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTdfRlJFRVpFX19GMzJfRlJFRVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vU0RNQTdfUEhBU0UwX1FVQU5UVU0KKyNkZWZpbmUgU0RNQTdfUEhBU0UwX1FVQU5UVU1fX1VOSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BIQVNFMF9RVUFOVFVNX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19QSEFTRTBfUVVBTlRVTV9fUFJFRkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE3X1BIQVNFMF9RVUFOVFVNX19VTklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUE3X1BIQVNFMF9RVUFOVFVNX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGMDBMCisjZGVmaW5lIFNETUE3X1BIQVNFMF9RVUFOVFVNX19QUkVGRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisvL1NETUE3X1BIQVNFMV9RVUFOVFVNCisjZGVmaW5lIFNETUE3X1BIQVNFMV9RVUFOVFVNX19VTklUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QSEFTRTFfUVVBTlRVTV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUEhBU0UxX1FVQU5UVU1fX1BSRUZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19QSEFTRTFfUVVBTlRVTV9fVU5JVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BN19QSEFTRTFfUVVBTlRVTV9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRjAwTAorI2RlZmluZSBTRE1BN19QSEFTRTFfUVVBTlRVTV9fUFJFRkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19FRENfQ09ORklHCisjZGVmaW5lIFNETUE3X0VEQ19DT05GSUdfX0RJU19FRENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19FRENfQ09ORklHX19FQ0NfSU5UX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfRURDX0NPTkZJR19fRElTX0VEQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfRURDX0NPTkZJR19fRUNDX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vU0RNQTdfQkFfVEhSRVNIT0xECisjZGVmaW5lIFNETUE3X0JBX1RIUkVTSE9MRF9fUkVBRF9USFJFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19CQV9USFJFU0hPTERfX1dSSVRFX1RIUkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE3X0JBX1RIUkVTSE9MRF9fUkVBRF9USFJFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkZMCisjZGVmaW5lIFNETUE3X0JBX1RIUkVTSE9MRF9fV1JJVEVfVEhSRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRjAwMDBMCisvL1NETUE3X0lECisjZGVmaW5lIFNETUE3X0lEX19ERVZJQ0VfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19JRF9fREVWSUNFX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorLy9TRE1BN19WRVJTSU9OCisjZGVmaW5lIFNETUE3X1ZFUlNJT05fX01JTlZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19WRVJTSU9OX19NQUpWRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfVkVSU0lPTl9fUkVWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BN19WRVJTSU9OX19NSU5WRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdGTAorI2RlZmluZSBTRE1BN19WRVJTSU9OX19NQUpWRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RjAwTAorI2RlZmluZSBTRE1BN19WRVJTSU9OX19SRVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorLy9TRE1BN19FRENfQ09VTlRFUgorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9VQ09ERV9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfRURDX0NPVU5URVJfX1NETUFfUkJfQ01EX0JVRl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0VEQ19DT1VOVEVSX19TRE1BX0lCX0NNRF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SRF9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfRURDX0NPVU5URVJfX1NETUFfVVRDTDFfUkRCU1RfRklGT19TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE3X0VEQ19DT1VOVEVSX19TRE1BX0RBVEFfTFVUX0ZJRk9fU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjBfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgU0RNQTdfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMl9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjNfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTdfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY0X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE3X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGNV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTdfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUY3X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFNETUE3X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGOF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjlfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE3X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTBfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTdfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxMV9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEyX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFNETUE3X0VEQ19DT1VOVEVSX19TRE1BX01CQU5LX0RBVEFfQlVGMTNfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTdfRURDX0NPVU5URVJfX1NETUFfTUJBTktfREFUQV9CVUYxNF9TRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE1X1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE3X0VEQ19DT1VOVEVSX19TRE1BX1NQTElUX0RBVF9CVUZfU0VEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTdfRURDX0NPVU5URVJfX1NETUFfTUNfV1JfQUREUl9GSUZPX1NFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9VQ09ERV9CVUZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9SQl9DTURfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9JQl9DTURfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SRF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9VVENMMV9SREJTVF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9EQVRBX0xVVF9GSUZPX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjBfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjFfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjJfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjNfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjRfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjVfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjZfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjdfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjhfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjlfU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEwX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjExX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEyX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjEzX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE0X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQkFOS19EQVRBX0JVRjE1X1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9TUExJVF9EQVRfQlVGX1NFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9fU0RNQV9NQ19XUl9BRERSX0ZJRk9fU0VEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorLy9TRE1BN19FRENfQ09VTlRFUl9DTEVBUgorI2RlZmluZSBTRE1BN19FRENfQ09VTlRFUl9DTEVBUl9fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfRURDX0NPVU5URVJfQ0xFQVJfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vU0RNQTdfU1RBVFVTMl9SRUcKKyNkZWZpbmUgU0RNQTdfU1RBVFVTMl9SRUdfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1NUQVRVUzJfUkVHX19GMzJfSU5TVFJfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BN19TVEFUVVMyX1JFR19fQ01EX09QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE3X1NUQVRVUzJfUkVHX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIFNETUE3X1NUQVRVUzJfUkVHX19GMzJfSU5TVFJfUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRjhMCisjZGVmaW5lIFNETUE3X1NUQVRVUzJfUkVHX19DTURfT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE3X0FUT01JQ19DTlRMCisjZGVmaW5lIFNETUE3X0FUT01JQ19DTlRMX19MT09QX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19BVE9NSUNfQ05UTF9fQVRPTUlDX1JUTl9JTlRfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE3X0FUT01JQ19DTlRMX19MT09QX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkZMCisjZGVmaW5lIFNETUE3X0FUT01JQ19DTlRMX19BVE9NSUNfUlROX0lOVF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE3X0FUT01JQ19QUkVPUF9MTworI2RlZmluZSBTRE1BN19BVE9NSUNfUFJFT1BfTE9fX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfQVRPTUlDX1BSRU9QX0xPX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfQVRPTUlDX1BSRU9QX0hJCisjZGVmaW5lIFNETUE3X0FUT01JQ19QUkVPUF9ISV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19BVE9NSUNfUFJFT1BfSElfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19VVENMMV9DTlRMCisjZGVmaW5lIFNETUE3X1VUQ0wxX0NOVExfX1JFRE9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19VVENMMV9DTlRMX19SRURPX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTdfVVRDTDFfQ05UTF9fUkVET19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE3X1VUQ0wxX0NOVExfX0lOVkFDS19ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BN19VVENMMV9DTlRMX19SRVFMMl9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1VUQ0wxX0NOVExfX1ZBRERSX1dBVEVSTUtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTdfVVRDTDFfQ05UTF9fUkVET19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfQ05UTF9fUkVET19ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDdGRUwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfQ05UTF9fUkVET19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzgwMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfQ05UTF9fSU5WQUNLX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGQzAwMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfQ05UTF9fUkVRTDJfQ1JFRElUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfQ05UTF9fVkFERFJfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMDAwMDAwMEwKKy8vU0RNQTdfVVRDTDFfV0FURVJNSworI2RlZmluZSBTRE1BN19VVENMMV9XQVRFUk1LX19SRVFNQ19XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV0FURVJNS19fUkVRUEdfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1VUQ0wxX1dBVEVSTUtfX0lOVlJFUV9XQVRFUk1LX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV0FURVJNS19fWE5BQ0tfV0FURVJNS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BN19VVENMMV9XQVRFUk1LX19SRVFNQ19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorI2RlZmluZSBTRE1BN19VVENMMV9XQVRFUk1LX19SRVFQR19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRTAwTAorI2RlZmluZSBTRE1BN19VVENMMV9XQVRFUk1LX19JTlZSRVFfV0FURVJNS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkUwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9XQVRFUk1LX19YTkFDS19XQVRFUk1LX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZFMDAwMDAwTAorLy9TRE1BN19VVENMMV9SRF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1NUQVRVU19fUEFHRV9OVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19SRVFMMl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX0NFX0wxX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1NUQVRVU19fTkVYVF9SRF9WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19NRVJHRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX0FERFJfUkRfUlRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1NUQVRVU19fV1BUUl9QT0xMSU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfU1RBVFVTX19JTlZSRVFfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVUX0FERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRTUNfUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JUUEdfVkFERFJfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSEVBRF9WSVJUX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfUkVRUEFHRV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfWE5BQ0tfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1BBR0VfRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1BBR0VfTlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1JFUUwyX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX0NFX0wxX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX05FWFRfUkRfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX01FUkdFX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDMDAwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX0FERFJfUkRfUlRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX1dQVFJfUE9MTElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9TVEFUVVNfX0lOVlJFUV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9TRE1BN19VVENMMV9XUl9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BN19VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19VVENMMV9XUl9TVEFUVVNfX1JRUEdfSU5WUkVRX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19SUU1DX1JFVF9BRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19VVENMMV9XUl9TVEFUVVNfX1JUUEdfUkVUX0JVRl9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19SVFBHX1ZBRERSX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BN19VVENMMV9XUl9TVEFUVVNfX1JRUEdfUkVET19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19SUVBHX1JFUVBBR0VfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19SUVBHX0lOVlJFUV9GSUZPX0ZVTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBTRE1BN19VVENMMV9XUl9TVEFUVVNfX1BBR0VfRkFVTFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9OVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19SRVFMMl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBTRE1BN19VVENMMV9XUl9TVEFUVVNfX0YzMl9XUl9SVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fTkVYVF9XUl9WRUNUT1JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19NRVJHRV9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBTRE1BN19VVENMMV9XUl9TVEFUVVNfX1JQVFJfREFUQV9GSUZPX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfU1RBVFVTX19XUlJFUV9EQVRBX0ZJRk9fRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19VVENMMV9XUl9TVEFUVVNfX1dSUkVRX0RBVEFfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVRfQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFNQ19SRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19SRVRfQlVGX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlRQR19WQUREUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19IRUFEX1ZJUlRfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRURPX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19SRVFQQUdFX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19YTkFDS19GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlFQR19JTlZSRVFfRklGT19GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9GQVVMVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUEFHRV9OVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUkVRTDJfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fRjMyX1dSX1JUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fTkVYVF9XUl9WRUNUT1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFDMDAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fTUVSR0VfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUwMDAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fUlBUUl9EQVRBX0ZJRk9fRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0VNUFRZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1NUQVRVU19fV1JSRVFfREFUQV9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE3X1VUQ0wxX0lOVjAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fSU5WX01JRERMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1VUQ0wxX0lOVjBfX1JEX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19VVENMMV9JTlYwX19XUl9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fUkRfSU5fSU5WQURSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFNETUE3X1VUQ0wxX0lOVjBfX1dSX0lOX0lOVkFEUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BN19VVENMMV9JTlYwX19QQUdFX05VTExfU1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fWE5BQ0tfSVNfSU5WQURSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFNETUE3X1VUQ0wxX0lOVjBfX0lOVlJFUV9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19VVENMMV9JTlYwX19OQUNLX1RJTUVPVVRfU1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fTkZMVVNIX0lOVl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1VUQ0wxX0lOVjBfX0ZMVVNIX0lOVl9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19VVENMMV9JTlYwX19JTlZfRkxVU0hUWVBFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fSU5WX1ZNSURfVkVDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE3X1VUQ0wxX0lOVjBfX0lOVl9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fSU5WX01JRERMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fUkRfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fV1JfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fUkRfSU5fSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fV1JfSU5fSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fUEFHRV9OVUxMX1NXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fWE5BQ0tfSVNfSU5WQURSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fSU5WUkVRX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fTkFDS19USU1FT1VUX1NXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fTkZMVVNIX0lOVl9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fRkxVU0hfSU5WX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fSU5WX0ZMVVNIVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fSU5WX1ZNSURfVkVDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRjAwMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMF9fSU5WX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vU0RNQTdfVVRDTDFfSU5WMQorI2RlZmluZSBTRE1BN19VVENMMV9JTlYxX19JTlZfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMV9fSU5WX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfVVRDTDFfSU5WMgorI2RlZmluZSBTRE1BN19VVENMMV9JTlYyX19JTlZfTkZMVVNIX1ZNSURfVkVDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfSU5WMl9fSU5WX05GTFVTSF9WTUlEX1ZFQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfVVRDTDFfUkRfWE5BQ0swCisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9YTkFDSzBfX1hOQUNLX0FERFJfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19VVENMMV9SRF9YTkFDSzEKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfWE5BQ0sxX19YTkFDS19BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1VUQ0wxX1JEX1hOQUNLMV9fWE5BQ0tfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUkRfWE5BQ0sxX19JU19YTkFDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBTRE1BN19VVENMMV9SRF9YTkFDSzFfX1hOQUNLX0FERFJfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9YTkFDSzFfX1hOQUNLX1ZFQ1RPUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkZGRjAwTAorI2RlZmluZSBTRE1BN19VVENMMV9SRF9YTkFDSzFfX0lTX1hOQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorLy9TRE1BN19VVENMMV9XUl9YTkFDSzAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfWE5BQ0swX19YTkFDS19BRERSX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1hOQUNLMF9fWE5BQ0tfQUREUl9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1VUQ0wxX1dSX1hOQUNLMQorI2RlZmluZSBTRE1BN19VVENMMV9XUl9YTkFDSzFfX1hOQUNLX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfV1JfWE5BQ0sxX19YTkFDS19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19VVENMMV9XUl9YTkFDSzFfX0lTX1hOQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1hOQUNLMV9fWE5BQ0tfVkVDVE9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGRkZGMDBMCisjZGVmaW5lIFNETUE3X1VUQ0wxX1dSX1hOQUNLMV9fSVNfWE5BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMDAwMDBMCisvL1NETUE3X1VUQ0wxX1RJTUVPVVQKKyNkZWZpbmUgU0RNQTdfVVRDTDFfVElNRU9VVF9fUkRfWE5BQ0tfTElNSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1VUQ0wxX1RJTUVPVVRfX1dSX1hOQUNLX0xJTUlUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfVElNRU9VVF9fUkRfWE5BQ0tfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfVElNRU9VVF9fV1JfWE5BQ0tfTElNSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfVVRDTDFfUEFHRQorI2RlZmluZSBTRE1BN19VVENMMV9QQUdFX19WTV9IT0xFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUEFHRV9fUkVRX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1VUQ0wxX1BBR0VfX1VTRV9NVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BN19VVENMMV9QQUdFX19VU0VfUFRfU05PT1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUEFHRV9fVk1fSE9MRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUEFHRV9fUkVRX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRUwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUEFHRV9fVVNFX01UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMEwKKyNkZWZpbmUgU0RNQTdfVVRDTDFfUEFHRV9fVVNFX1BUX1NOT09QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKy8vU0RNQTdfUE9XRVJfQ05UTF9JRExFCisjZGVmaW5lIFNETUE3X1BPV0VSX0NOVExfSURMRV9fREVMQVkwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QT1dFUl9DTlRMX0lETEVfX0RFTEFZMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE3X1BPV0VSX0NOVExfSURMRV9fREVMQVkyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgU0RNQTdfUE9XRVJfQ05UTF9JRExFX19ERUxBWTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgU0RNQTdfUE9XRVJfQ05UTF9JRExFX19ERUxBWTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgU0RNQTdfUE9XRVJfQ05UTF9JRExFX19ERUxBWTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vU0RNQTdfUkVMQVhfT1JERVJJTkdfTFVUCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19SRUxBWF9PUkRFUklOR19MVVRfX0NPUFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTdfUkVMQVhfT1JERVJJTkdfTFVUX19XUklURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BN19SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVENF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkVMQVhfT1JERVJJTkdfTFVUX19GRU5DRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ3Nl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBTRE1BN19SRUxBWF9PUkRFUklOR19MVVRfX1BPTExfTUVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUkVMQVhfT1JERVJJTkdfTFVUX19DT05EX0VYRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fQVRPTUlDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19SRUxBWF9PUkRFUklOR19MVVRfX0NPTlNUX0ZJTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgU0RNQTdfUkVMQVhfT1JERVJJTkdfTFVUX19QVEVQREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fVElNRVNUQU1QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BN19SRUxBWF9PUkRFUklOR19MVVRfX1JFU0VSVkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgU0RNQTdfUkVMQVhfT1JERVJJTkdfTFVUX19XT1JMRF9TV0lUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBTRE1BN19SRUxBWF9PUkRFUklOR19MVVRfX1JQVFJfV1JCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fV1BUUl9QT0xMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgU0RNQTdfUkVMQVhfT1JERVJJTkdfTFVUX19JQl9GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19SRUxBWF9PUkRFUklOR19MVVRfX1JCX0ZFVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fQ09QWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fRkVOQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRUQ3Nl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUE9MTF9NRU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fQ09ORF9FWEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fQVRPTUlDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fQ09OU1RfRklMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUFRFUERFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fVElNRVNUQU1QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUkVTRVJWRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRkMwMDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fV09STERfU1dJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUlBUUl9XUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fV1BUUl9QT0xMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fSUJfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFNETUE3X1JFTEFYX09SREVSSU5HX0xVVF9fUkJfRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1NETUE3X0NISUNLRU5fQklUU18yCisjZGVmaW5lIFNETUE3X0NISUNLRU5fQklUU18yX19GMzJfQ01EX1BST0NfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19DSElDS0VOX0JJVFNfMl9fRjMyX0NNRF9QUk9DX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9TRE1BN19TVEFUVVMzX1JFRworI2RlZmluZSBTRE1BN19TVEFUVVMzX1JFR19fQ01EX09QX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfU1RBVFVTM19SRUdfX1BSRVZfVk1fQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BN19TVEFUVVMzX1JFR19fRVhDRVBUSU9OX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFNETUE3X1NUQVRVUzNfUkVHX19RVUVVRV9JRF9NQVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgU0RNQTdfU1RBVFVTM19SRUdfX0lOVF9RVUVVRV9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBTRE1BN19TVEFUVVMzX1JFR19fQ01EX09QX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBTRE1BN19TVEFUVVMzX1JFR19fUFJFVl9WTV9DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBTRE1BN19TVEFUVVMzX1JFR19fRVhDRVBUSU9OX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBTRE1BN19TVEFUVVMzX1JFR19fUVVFVUVfSURfTUFUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBTRE1BN19TVEFUVVMzX1JFR19fSU5UX1FVRVVFX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzQzAwMDAwTAorLy9TRE1BN19QSFlTSUNBTF9BRERSX0xPCisjZGVmaW5lIFNETUE3X1BIWVNJQ0FMX0FERFJfTE9fX0RfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QSFlTSUNBTF9BRERSX0xPX19ESVJUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTdfUEhZU0lDQUxfQUREUl9MT19fUEhZX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1BIWVNJQ0FMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BN19QSFlTSUNBTF9BRERSX0xPX19EX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19QSFlTSUNBTF9BRERSX0xPX19ESVJUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BN19QSFlTSUNBTF9BRERSX0xPX19QSFlfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19QSFlTSUNBTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwTAorLy9TRE1BN19QSFlTSUNBTF9BRERSX0hJCisjZGVmaW5lIFNETUE3X1BIWVNJQ0FMX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QSFlTSUNBTF9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9TRE1BN19QSEFTRTJfUVVBTlRVTQorI2RlZmluZSBTRE1BN19QSEFTRTJfUVVBTlRVTV9fVU5JVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEhBU0UyX1FVQU5UVU1fX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1BIQVNFMl9RVUFOVFVNX19QUkVGRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTdfUEhBU0UyX1FVQU5UVU1fX1VOSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgU0RNQTdfUEhBU0UyX1FVQU5UVU1fX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkYwMEwKKyNkZWZpbmUgU0RNQTdfUEhBU0UyX1FVQU5UVU1fX1BSRUZFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTdfRVJST1JfTE9HCisjZGVmaW5lIFNETUE3X0VSUk9SX0xPR19fT1ZFUlJJREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19FUlJPUl9MT0dfX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE3X0VSUk9SX0xPR19fT1ZFUlJJREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFNETUE3X0VSUk9SX0xPR19fU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1NETUE3X1BVQl9EVU1NWV9SRUcwCisjZGVmaW5lIFNETUE3X1BVQl9EVU1NWV9SRUcwX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QVUJfRFVNTVlfUkVHMF9fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19QVUJfRFVNTVlfUkVHMQorI2RlZmluZSBTRE1BN19QVUJfRFVNTVlfUkVHMV9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUFVCX0RVTU1ZX1JFRzFfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUFVCX0RVTU1ZX1JFRzIKKyNkZWZpbmUgU0RNQTdfUFVCX0RVTU1ZX1JFRzJfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BVQl9EVU1NWV9SRUcyX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BVQl9EVU1NWV9SRUczCisjZGVmaW5lIFNETUE3X1BVQl9EVU1NWV9SRUczX19WQUxVRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QVUJfRFVNTVlfUkVHM19fVkFMVUVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19GMzJfQ09VTlRFUgorI2RlZmluZSBTRE1BN19GMzJfQ09VTlRFUl9fVkFMVUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfRjMyX0NPVU5URVJfX1ZBTFVFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfVU5CUkVBS0FCTEUKKyNkZWZpbmUgU0RNQTdfVU5CUkVBS0FCTEVfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1VOQlJFQUtBQkxFX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1BFUkZNT05fQ05UTAorI2RlZmluZSBTRE1BN19QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1BFUkZNT05fQ05UTF9fUEVSRl9TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgU0RNQTdfUEVSRk1PTl9DTlRMX19QRVJGX0NMRUFSMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFNETUE3X1BFUkZNT05fQ05UTF9fUEVSRl9TRUwxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBTRE1BN19QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBTRE1BN19QRVJGTU9OX0NOVExfX1BFUkZfU0VMMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZDTAorI2RlZmluZSBTRE1BN19QRVJGTU9OX0NOVExfX1BFUkZfRU5BQkxFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBTRE1BN19QRVJGTU9OX0NOVExfX1BFUkZfQ0xFQVIxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBTRE1BN19QRVJGTU9OX0NOVExfX1BFUkZfU0VMMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEZGMDAwTAorLy9TRE1BN19QRVJGQ09VTlRFUjBfUkVTVUxUCisjZGVmaW5lIFNETUE3X1BFUkZDT1VOVEVSMF9SRVNVTFRfX1BFUkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QRVJGQ09VTlRFUjBfUkVTVUxUX19QRVJGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19QRVJGQ09VTlRFUjFfUkVTVUxUCisjZGVmaW5lIFNETUE3X1BFUkZDT1VOVEVSMV9SRVNVTFRfX1BFUkZfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QRVJGQ09VTlRFUjFfUkVTVUxUX19QRVJGX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0UKKyNkZWZpbmUgU0RNQTdfUEVSRkNPVU5URVJfVEFHX0RFTEFZX1JBTkdFX19SQU5HRV9MT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfSElHSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBTRE1BN19QRVJGQ09VTlRFUl9UQUdfREVMQVlfUkFOR0VfX1NFTEVDVF9SV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE3X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfTE9XX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNGRkZMCisjZGVmaW5lIFNETUE3X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fUkFOR0VfSElHSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkMwMDBMCisjZGVmaW5lIFNETUE3X1BFUkZDT1VOVEVSX1RBR19ERUxBWV9SQU5HRV9fU0VMRUNUX1JXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL1NETUE3X0NSRF9DTlRMCisjZGVmaW5lIFNETUE3X0NSRF9DTlRMX19NQ19XUlJFUV9DUkVESVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19DUkRfQ05UTF9fTUNfUkRSRVFfQ1JFRElUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgU0RNQTdfQ1JEX0NOVExfX01DX1dSUkVRX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUY4MEwKKyNkZWZpbmUgU0RNQTdfQ1JEX0NOVExfX01DX1JEUkVRX0NSRURJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RTAwMEwKKy8vU0RNQTdfR1BVX0lPVl9WSU9MQVRJT05fTE9HCisjZGVmaW5lIFNETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVklPTEFUSU9OX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX01VTFRJUExFX1ZJT0xBVElPTl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTdfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19BRERSRVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fV1JJVEVfT1BFUkFUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgU0RNQTdfR1BVX0lPVl9WSU9MQVRJT05fTE9HX19WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBTRE1BN19HUFVfSU9WX1ZJT0xBVElPTl9MT0dfX1ZGSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFNETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVklPTEFUSU9OX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fTVVMVElQTEVfVklPTEFUSU9OX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fQUREUkVTU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkNMCisjZGVmaW5lIFNETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fV1JJVEVfT1BFUkFUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFNETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFNETUE3X0dQVV9JT1ZfVklPTEFUSU9OX0xPR19fVkZJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNDMDAwMDBMCisvL1NETUE3X1VMVl9DTlRMCisjZGVmaW5lIFNETUE3X1VMVl9DTlRMX19IWVNURVJFU0lTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19VTFZfQ05UTF9fRU5URVJfVUxWX0lOVF9DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFNETUE3X1VMVl9DTlRMX19FWElUX1VMVl9JTlRfQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBTRE1BN19VTFZfQ05UTF9fRVhJVF9VTFZfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFNETUE3X1VMVl9DTlRMX19VTFZfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgU0RNQTdfVUxWX0NOVExfX0hZU1RFUkVTSVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgU0RNQTdfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfVUxWX0NOVExfX0VOVEVSX1VMVl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfVUxWX0NOVExfX0VYSVRfVUxWX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfVUxWX0NOVExfX1VMVl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vU0RNQTdfRUFfREJJVF9BRERSX0RBVEEKKyNkZWZpbmUgU0RNQTdfRUFfREJJVF9BRERSX0RBVEFfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0VBX0RCSVRfQUREUl9EQVRBX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X0VBX0RCSVRfQUREUl9JTkRFWAorI2RlZmluZSBTRE1BN19FQV9EQklUX0FERFJfSU5ERVhfX1ZBTFVFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfRUFfREJJVF9BRERSX0lOREVYX19WQUxVRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKy8vU0RNQTdfR1BVX0lPVl9WSU9MQVRJT05fTE9HMgorI2RlZmluZSBTRE1BN19HUFVfSU9WX1ZJT0xBVElPTl9MT0cyX19JTklUSUFUT1JfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfR1BVX0lPVl9WSU9MQVRJT05fTE9HMl9fSU5JVElBVE9SX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vU0RNQTdfR0ZYX1JCX0NOVEwKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFNETUE3X0dGWF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE3X0dGWF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNFTAorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUYwMDAwTAorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBTRE1BN19HRlhfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorLy9TRE1BN19HRlhfUkJfQkFTRQorI2RlZmluZSBTRE1BN19HRlhfUkJfQkFTRV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX0JBU0VfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfR0ZYX1JCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX0JBU0VfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9SQl9CQVNFX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL1NETUE3X0dGWF9SQl9SUFRSCisjZGVmaW5lIFNETUE3X0dGWF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19HRlhfUkJfUlBUUl9ISV9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1JQVFJfSElfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfR0ZYX1JCX1dQVFIKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9SQl9XUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X0dGWF9SQl9XUFRSX0hJCisjZGVmaW5lIFNETUE3X0dGWF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19HRlhfUkJfV1BUUl9QT0xMX0NOVExfX0YzMl9QT0xMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X0dGWF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19GUkVRVUVOQ1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfR0ZYX1JCX1JQVFJfQUREUl9ISQorI2RlZmluZSBTRE1BN19HRlhfUkJfUlBUUl9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1JQVFJfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfR0ZYX1JCX1JQVFJfQUREUl9MTworI2RlZmluZSBTRE1BN19HRlhfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0dGWF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X0dGWF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X0dGWF9JQl9DTlRMCisjZGVmaW5lIFNETUE3X0dGWF9JQl9DTlRMX19JQl9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfSUJfQ05UTF9fSUJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X0dGWF9JQl9DTlRMX19DTURfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX0NOVExfX0lCX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX0NOVExfX1NXSVRDSF9JTlNJREVfSUJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX0NOVExfX0NNRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfR0ZYX0lCX1JQVFIKKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX1JQVFJfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0dGWF9JQl9SUFRSX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE3X0dGWF9JQl9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0dGWF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzRkZGRkNMCisvL1NETUE3X0dGWF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X0dGWF9JQl9CQVNFX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19HRlhfSUJfQkFTRV9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19HRlhfSUJfQkFTRV9ISQorI2RlZmluZSBTRE1BN19HRlhfSUJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfR0ZYX0lCX1NJWkUKKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X0dGWF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfR0ZYX1NLSVBfQ05UTF9fU0tJUF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X0dGWF9DT05URVhUX1NUQVRVUworI2RlZmluZSBTRE1BN19HRlhfQ09OVEVYVF9TVEFUVVNfX1NFTEVDVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfR0ZYX0NPTlRFWFRfU1RBVFVTX19JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBTRE1BN19HRlhfQ09OVEVYVF9TVEFUVVNfX0VYQ0VQVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfR0ZYX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19HRlhfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgU0RNQTdfR0ZYX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fRVhQSVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzBMCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fQ1RYU1dfUkVBRFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX1NUQVRVU19fUFJFRU1QVF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1NETUE3X0dGWF9ET09SQkVMTAorI2RlZmluZSBTRE1BN19HRlhfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFNETUE3X0dGWF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgU0RNQTdfR0ZYX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgU0RNQTdfR0ZYX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKy8vU0RNQTdfR0ZYX0NPTlRFWFRfQ05UTAorI2RlZmluZSBTRE1BN19HRlhfQ09OVEVYVF9DTlRMX19SRVNVTUVfQ1RYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFNETUE3X0dGWF9DT05URVhUX0NOVExfX1JFU1VNRV9DVFhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisvL1NETUE3X0dGWF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfR0ZYX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19HRlhfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBTRE1BN19HRlhfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9TRE1BN19HRlhfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X0dGWF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfRE9PUkJFTExfTE9HX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfR0ZYX0RPT1JCRUxMX0xPR19fQkVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfR0ZYX0RPT1JCRUxMX0xPR19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfR0ZYX1dBVEVSTUFSSworI2RlZmluZSBTRE1BN19HRlhfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfR0ZYX1dBVEVSTUFSS19fV1JfT1VUU1RBTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBTRE1BN19HRlhfV0FURVJNQVJLX19SRF9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkZGTAorI2RlZmluZSBTRE1BN19HRlhfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRkYwMDAwTAorLy9TRE1BN19HRlhfRE9PUkJFTExfT0ZGU0VUCisjZGVmaW5lIFNETUE3X0dGWF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19HRlhfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZDTAorLy9TRE1BN19HRlhfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfR0ZYX0NTQV9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X0dGWF9DU0FfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X0dGWF9DU0FfQUREUl9ISQorI2RlZmluZSBTRE1BN19HRlhfQ1NBX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfR0ZYX0NTQV9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfR0ZYX0lCX1NVQl9SRU1BSU4KKyNkZWZpbmUgU0RNQTdfR0ZYX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X0dGWF9QUkVFTVBUCisjZGVmaW5lIFNETUE3X0dGWF9QUkVFTVBUX19JQl9QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfUFJFRU1QVF9fSUJfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19HRlhfRFVNTVlfUkVHCisjZGVmaW5lIFNETUE3X0dGWF9EVU1NWV9SRUdfX0RVTU1ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfRFVNTVlfUkVHX19EVU1NWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfUkJfV1BUUl9QT0xMX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X0dGWF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE9fX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfR0ZYX1JCX0FRTF9DTlRMCisjZGVmaW5lIFNETUE3X0dGWF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfUkJfQVFMX0NOVExfX0FRTF9QQUNLRVRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgU0RNQTdfR0ZYX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X0dGWF9SQl9BUUxfQ05UTF9fQVFMX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X0dGWF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisjZGVmaW5lIFNETUE3X0dGWF9SQl9BUUxfQ05UTF9fUEFDS0VUX1NURVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1NETUE3X0dGWF9NSU5PUl9QVFJfVVBEQVRFCisjZGVmaW5lIFNETUE3X0dGWF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19HRlhfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfTUlEQ01EX0RBVEExCisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfTUlEQ01EX0RBVEEyCisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfREFUQTNfX0RBVEEzX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0RBVEEzX19EQVRBM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfTUlEQ01EX0RBVEE0CisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfREFUQTRfX0RBVEE0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0RBVEE0X19EQVRBNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfTUlEQ01EX0RBVEE1CisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfREFUQTZfX0RBVEE2X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0RBVEE2X19EQVRBNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfTUlEQ01EX0RBVEE3CisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfREFUQTdfX0RBVEE3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0RBVEE3X19EQVRBN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfTUlEQ01EX0RBVEE4CisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19HRlhfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfR0ZYX01JRENNRF9DTlRMX19EQVRBX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19HRlhfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfR0ZYX01JRENNRF9DTlRMX19BTExPV19QUkVFTVBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfQ05UTF9fQ09QWV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfQ05UTF9fU1BMSVRfU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X0dGWF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1BBR0VfUkJfQ05UTAorI2RlZmluZSBTRE1BN19QQUdFX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19QQUdFX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19QQUdFX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE3X1BBR0VfUkJfQkFTRQorI2RlZmluZSBTRE1BN19QQUdFX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUEFHRV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QQUdFX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BN19QQUdFX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BBR0VfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19QQUdFX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUEFHRV9SQl9XUFRSCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QQUdFX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19QQUdFX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19QQUdFX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1BBR0VfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfUEFHRV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BBR0VfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QQUdFX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUEFHRV9JQl9DTlRMCisjZGVmaW5lIFNETUE3X1BBR0VfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QQUdFX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUEFHRV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1BBR0VfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUEFHRV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUEFHRV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUEFHRV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUEFHRV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfUEFHRV9JQl9SUFRSCisjZGVmaW5lIFNETUE3X1BBR0VfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19QQUdFX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BN19QQUdFX0lCX09GRlNFVAorI2RlZmluZSBTRE1BN19QQUdFX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUEFHRV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTdfUEFHRV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X1BBR0VfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19QQUdFX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19QQUdFX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfUEFHRV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BBR0VfSUJfU0laRQorI2RlZmluZSBTRE1BN19QQUdFX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUEFHRV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfUEFHRV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X1BBR0VfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfUEFHRV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUEFHRV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1BBR0VfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUEFHRV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1BBR0VfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19QQUdFX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BN19QQUdFX0RPT1JCRUxMCisjZGVmaW5lIFNETUE3X1BBR0VfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUEFHRV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19QQUdFX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19QQUdFX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19QQUdFX1NUQVRVUworI2RlZmluZSBTRE1BN19QQUdFX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE3X1BBR0VfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1BBR0VfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X1BBR0VfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QQUdFX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUEFHRV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUEFHRV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUEFHRV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTdfUEFHRV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUEFHRV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTdfUEFHRV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTdfUEFHRV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfUEFHRV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1BBR0VfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE3X1BBR0VfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfUEFHRV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1BBR0VfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X1BBR0VfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUEFHRV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BBR0VfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BN19QQUdFX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUEFHRV9QUkVFTVBUCisjZGVmaW5lIFNETUE3X1BBR0VfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QQUdFX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19QQUdFX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BN19QQUdFX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BN19QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19QQUdFX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUEFHRV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BN19QQUdFX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1BBR0VfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19QQUdFX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19QQUdFX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BN19QQUdFX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BN19QQUdFX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTdfUEFHRV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1BBR0VfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QQUdFX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19QQUdFX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BN19QQUdFX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUEFHRV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTdfUEFHRV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BBR0VfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QQUdFX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19QQUdFX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BN19QQUdFX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUEFHRV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTdfUEFHRV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BBR0VfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19QQUdFX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19QQUdFX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BN19QQUdFX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUEFHRV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUEFHRV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTdfUEFHRV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1BBR0VfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfUEFHRV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19QQUdFX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUEFHRV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1BBR0VfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzBfUkJfQ05UTAorI2RlZmluZSBTRE1BN19STEMwX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19STEMwX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19STEMwX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE3X1JMQzBfUkJfQkFTRQorI2RlZmluZSBTRE1BN19STEMwX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMwX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BN19STEMwX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzBfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19STEMwX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMF9SQl9XUFRSCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMwX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMwX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEMwX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzBfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfUkxDMF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzBfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMwX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDMF9JQl9DTlRMCisjZGVmaW5lIFNETUE3X1JMQzBfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMwX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDMF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzBfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUkxDMF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUkxDMF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfUkxDMF9JQl9SUFRSCisjZGVmaW5lIFNETUE3X1JMQzBfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEMwX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BN19STEMwX0lCX09GRlNFVAorI2RlZmluZSBTRE1BN19STEMwX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTdfUkxDMF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X1JMQzBfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19STEMwX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19STEMwX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMF9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzBfSUJfU0laRQorI2RlZmluZSBTRE1BN19STEMwX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDMF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDMF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X1JMQzBfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfUkxDMF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUkxDMF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzBfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUkxDMF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1JMQzBfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19STEMwX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BN19STEMwX0RPT1JCRUxMCisjZGVmaW5lIFNETUE3X1JMQzBfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUkxDMF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19STEMwX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19STEMwX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19STEMwX1NUQVRVUworI2RlZmluZSBTRE1BN19STEMwX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE3X1JMQzBfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzBfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X1JMQzBfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMwX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDMF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTdfUkxDMF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTdfUkxDMF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTdfUkxDMF9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfUkxDMF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzBfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE3X1JMQzBfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfUkxDMF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzBfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X1JMQzBfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMF9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzBfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BN19STEMwX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDMF9QUkVFTVBUCisjZGVmaW5lIFNETUE3X1JMQzBfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMwX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19STEMwX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BN19STEMwX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BN19STEMwX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19STEMwX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDMF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BN19STEMwX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzBfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19STEMwX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEMwX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BN19STEMwX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BN19STEMwX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTdfUkxDMF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1JMQzBfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMwX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMwX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BN19STEMwX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMF9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTdfUkxDMF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzBfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMwX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMwX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BN19STEMwX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMF9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTdfUkxDMF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzBfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMwX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMwX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BN19STEMwX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMF9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMF9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTdfUkxDMF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzBfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDMF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEMwX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDMF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1JMQzBfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzFfUkJfQ05UTAorI2RlZmluZSBTRE1BN19STEMxX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19STEMxX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19STEMxX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE3X1JMQzFfUkJfQkFTRQorI2RlZmluZSBTRE1BN19STEMxX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMxX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BN19STEMxX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzFfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19STEMxX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMV9SQl9XUFRSCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMxX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMxX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEMxX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzFfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfUkxDMV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzFfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMxX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDMV9JQl9DTlRMCisjZGVmaW5lIFNETUE3X1JMQzFfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMxX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDMV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzFfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUkxDMV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUkxDMV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfUkxDMV9JQl9SUFRSCisjZGVmaW5lIFNETUE3X1JMQzFfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEMxX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BN19STEMxX0lCX09GRlNFVAorI2RlZmluZSBTRE1BN19STEMxX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTdfUkxDMV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X1JMQzFfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19STEMxX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19STEMxX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzFfSUJfU0laRQorI2RlZmluZSBTRE1BN19STEMxX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDMV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDMV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X1JMQzFfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfUkxDMV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUkxDMV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzFfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUkxDMV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1JMQzFfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19STEMxX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BN19STEMxX0RPT1JCRUxMCisjZGVmaW5lIFNETUE3X1JMQzFfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUkxDMV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19STEMxX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19STEMxX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19STEMxX1NUQVRVUworI2RlZmluZSBTRE1BN19STEMxX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE3X1JMQzFfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzFfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X1JMQzFfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMxX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDMV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTdfUkxDMV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTdfUkxDMV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTdfUkxDMV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfUkxDMV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzFfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE3X1JMQzFfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfUkxDMV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzFfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X1JMQzFfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzFfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BN19STEMxX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDMV9QUkVFTVBUCisjZGVmaW5lIFNETUE3X1JMQzFfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMxX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19STEMxX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BN19STEMxX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BN19STEMxX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19STEMxX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDMV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BN19STEMxX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzFfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19STEMxX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEMxX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BN19STEMxX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BN19STEMxX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTdfUkxDMV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1JMQzFfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMxX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMxX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BN19STEMxX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTdfUkxDMV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzFfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMxX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMxX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BN19STEMxX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTdfUkxDMV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzFfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMxX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMxX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BN19STEMxX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTdfUkxDMV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzFfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDMV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEMxX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDMV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1JMQzFfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzJfUkJfQ05UTAorI2RlZmluZSBTRE1BN19STEMyX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19STEMyX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19STEMyX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE3X1JMQzJfUkJfQkFTRQorI2RlZmluZSBTRE1BN19STEMyX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMl9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMyX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BN19STEMyX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzJfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19STEMyX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMl9SQl9XUFRSCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMyX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMyX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzJfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEMyX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzJfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfUkxDMl9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzJfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMyX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDMl9JQl9DTlRMCisjZGVmaW5lIFNETUE3X1JMQzJfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMyX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDMl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzJfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMl9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUkxDMl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUkxDMl9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfUkxDMl9JQl9SUFRSCisjZGVmaW5lIFNETUE3X1JMQzJfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEMyX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BN19STEMyX0lCX09GRlNFVAorI2RlZmluZSBTRE1BN19STEMyX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMl9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTdfUkxDMl9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X1JMQzJfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19STEMyX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19STEMyX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMl9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzJfSUJfU0laRQorI2RlZmluZSBTRE1BN19STEMyX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDMl9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDMl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X1JMQzJfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfUkxDMl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUkxDMl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzJfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUkxDMl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1JMQzJfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19STEMyX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BN19STEMyX0RPT1JCRUxMCisjZGVmaW5lIFNETUE3X1JMQzJfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUkxDMl9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19STEMyX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19STEMyX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19STEMyX1NUQVRVUworI2RlZmluZSBTRE1BN19STEMyX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE3X1JMQzJfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzJfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X1JMQzJfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMyX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDMl9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDMl9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTdfUkxDMl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDMl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTdfUkxDMl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTdfUkxDMl9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfUkxDMl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzJfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE3X1JMQzJfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfUkxDMl9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzJfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X1JMQzJfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDMl9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzJfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BN19STEMyX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDMl9QUkVFTVBUCisjZGVmaW5lIFNETUE3X1JMQzJfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMyX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19STEMyX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BN19STEMyX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BN19STEMyX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19STEMyX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDMl9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BN19STEMyX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzJfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19STEMyX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEMyX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BN19STEMyX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BN19STEMyX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTdfUkxDMl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1JMQzJfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMyX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMyX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BN19STEMyX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMl9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTdfUkxDMl9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzJfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMyX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMyX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BN19STEMyX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMl9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTdfUkxDMl9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzJfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMyX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMyX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BN19STEMyX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDMl9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDMl9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTdfUkxDMl9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzJfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDMl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEMyX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDMl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1JMQzJfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzNfUkJfQ05UTAorI2RlZmluZSBTRE1BN19STEMzX1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19STEMzX1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19STEMzX1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE3X1JMQzNfUkJfQkFTRQorI2RlZmluZSBTRE1BN19STEMzX1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDM19SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMzX1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BN19STEMzX1JCX1JQVFIKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzNfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19STEMzX1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDM19SQl9XUFRSCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMzX1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMzX1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzNfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEMzX1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzNfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfUkxDM19SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzNfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMzX1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDM19JQl9DTlRMCisjZGVmaW5lIFNETUE3X1JMQzNfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMzX0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDM19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzNfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDM19JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDM19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUkxDM19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUkxDM19JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfUkxDM19JQl9SUFRSCisjZGVmaW5lIFNETUE3X1JMQzNfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEMzX0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BN19STEMzX0lCX09GRlNFVAorI2RlZmluZSBTRE1BN19STEMzX0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDM19JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTdfUkxDM19JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X1JMQzNfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19STEMzX0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19STEMzX0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfUkxDM19JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzNfSUJfU0laRQorI2RlZmluZSBTRE1BN19STEMzX0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDM19TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDM19TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X1JMQzNfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfUkxDM19DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUkxDM19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzNfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUkxDM19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1JMQzNfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19STEMzX0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BN19STEMzX0RPT1JCRUxMCisjZGVmaW5lIFNETUE3X1JMQzNfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUkxDM19ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19STEMzX0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19STEMzX0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19STEMzX1NUQVRVUworI2RlZmluZSBTRE1BN19STEMzX1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE3X1JMQzNfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzNfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X1JMQzNfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMzX0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDM19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDM19ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDM19XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTdfUkxDM19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDM19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTdfUkxDM19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTdfUkxDM19ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfUkxDM19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzNfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE3X1JMQzNfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfUkxDM19DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzNfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X1JMQzNfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDM19DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzNfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BN19STEMzX0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDM19QUkVFTVBUCisjZGVmaW5lIFNETUE3X1JMQzNfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMzX1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19STEMzX0RVTU1ZX1JFRworI2RlZmluZSBTRE1BN19STEMzX0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BN19STEMzX1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19STEMzX1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDM19SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BN19STEMzX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzNfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19STEMzX1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEMzX1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BN19STEMzX1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BN19STEMzX01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTdfUkxDM19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1JMQzNfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMzX01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMzX01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BN19STEMzX01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDM19NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTdfUkxDM19NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzNfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMzX01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMzX01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BN19STEMzX01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDM19NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTdfUkxDM19NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzNfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEMzX01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEMzX01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BN19STEMzX01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDM19NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDM19NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTdfUkxDM19NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzNfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDM19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEMzX01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDM19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1JMQzNfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzRfUkJfQ05UTAorI2RlZmluZSBTRE1BN19STEM0X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19STEM0X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19STEM0X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE3X1JMQzRfUkJfQkFTRQorI2RlZmluZSBTRE1BN19STEM0X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNF9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM0X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BN19STEM0X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzRfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19STEM0X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNF9SQl9XUFRSCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM0X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM0X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzRfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEM0X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzRfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfUkxDNF9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzRfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM0X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDNF9JQl9DTlRMCisjZGVmaW5lIFNETUE3X1JMQzRfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM0X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDNF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzRfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNF9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNF9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUkxDNF9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUkxDNF9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfUkxDNF9JQl9SUFRSCisjZGVmaW5lIFNETUE3X1JMQzRfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEM0X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BN19STEM0X0lCX09GRlNFVAorI2RlZmluZSBTRE1BN19STEM0X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNF9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTdfUkxDNF9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X1JMQzRfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19STEM0X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19STEM0X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNF9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzRfSUJfU0laRQorI2RlZmluZSBTRE1BN19STEM0X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDNF9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDNF9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X1JMQzRfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfUkxDNF9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUkxDNF9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzRfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUkxDNF9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1JMQzRfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19STEM0X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BN19STEM0X0RPT1JCRUxMCisjZGVmaW5lIFNETUE3X1JMQzRfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUkxDNF9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19STEM0X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19STEM0X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19STEM0X1NUQVRVUworI2RlZmluZSBTRE1BN19STEM0X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE3X1JMQzRfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzRfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X1JMQzRfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM0X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNF9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNF9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDNF9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTdfUkxDNF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNF9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTdfUkxDNF9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTdfUkxDNF9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfUkxDNF9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzRfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE3X1JMQzRfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfUkxDNF9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzRfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X1JMQzRfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNF9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzRfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BN19STEM0X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDNF9QUkVFTVBUCisjZGVmaW5lIFNETUE3X1JMQzRfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM0X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19STEM0X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BN19STEM0X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BN19STEM0X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19STEM0X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDNF9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BN19STEM0X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzRfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19STEM0X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEM0X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BN19STEM0X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BN19STEM0X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTdfUkxDNF9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1JMQzRfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM0X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM0X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BN19STEM0X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNF9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTdfUkxDNF9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzRfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM0X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM0X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BN19STEM0X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNF9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTdfUkxDNF9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzRfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM0X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM0X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BN19STEM0X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNF9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNF9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTdfUkxDNF9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzRfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDNF9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEM0X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDNF9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1JMQzRfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzVfUkJfQ05UTAorI2RlZmluZSBTRE1BN19STEM1X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19STEM1X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19STEM1X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE3X1JMQzVfUkJfQkFTRQorI2RlZmluZSBTRE1BN19STEM1X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNV9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM1X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BN19STEM1X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzVfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19STEM1X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNV9SQl9XUFRSCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM1X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM1X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzVfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEM1X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzVfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfUkxDNV9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzVfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM1X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDNV9JQl9DTlRMCisjZGVmaW5lIFNETUE3X1JMQzVfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM1X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDNV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzVfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNV9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNV9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUkxDNV9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUkxDNV9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfUkxDNV9JQl9SUFRSCisjZGVmaW5lIFNETUE3X1JMQzVfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEM1X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BN19STEM1X0lCX09GRlNFVAorI2RlZmluZSBTRE1BN19STEM1X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNV9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTdfUkxDNV9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X1JMQzVfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19STEM1X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19STEM1X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNV9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzVfSUJfU0laRQorI2RlZmluZSBTRE1BN19STEM1X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDNV9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDNV9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X1JMQzVfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfUkxDNV9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUkxDNV9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzVfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUkxDNV9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1JMQzVfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19STEM1X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BN19STEM1X0RPT1JCRUxMCisjZGVmaW5lIFNETUE3X1JMQzVfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUkxDNV9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19STEM1X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19STEM1X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19STEM1X1NUQVRVUworI2RlZmluZSBTRE1BN19STEM1X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE3X1JMQzVfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzVfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X1JMQzVfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM1X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNV9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNV9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDNV9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTdfUkxDNV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNV9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTdfUkxDNV9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTdfUkxDNV9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfUkxDNV9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzVfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE3X1JMQzVfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfUkxDNV9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzVfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X1JMQzVfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNV9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzVfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BN19STEM1X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDNV9QUkVFTVBUCisjZGVmaW5lIFNETUE3X1JMQzVfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM1X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19STEM1X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BN19STEM1X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BN19STEM1X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19STEM1X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDNV9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BN19STEM1X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzVfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19STEM1X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEM1X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BN19STEM1X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BN19STEM1X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTdfUkxDNV9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1JMQzVfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM1X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM1X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BN19STEM1X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNV9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTdfUkxDNV9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzVfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM1X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM1X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BN19STEM1X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNV9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTdfUkxDNV9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzVfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM1X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM1X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BN19STEM1X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNV9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNV9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTdfUkxDNV9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzVfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDNV9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEM1X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDNV9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1JMQzVfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzZfUkJfQ05UTAorI2RlZmluZSBTRE1BN19STEM2X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19STEM2X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19STEM2X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE3X1JMQzZfUkJfQkFTRQorI2RlZmluZSBTRE1BN19STEM2X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNl9SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM2X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BN19STEM2X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzZfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19STEM2X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNl9SQl9XUFRSCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM2X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM2X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzZfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEM2X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzZfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfUkxDNl9SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzZfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM2X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDNl9JQl9DTlRMCisjZGVmaW5lIFNETUE3X1JMQzZfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM2X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDNl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzZfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNl9JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNl9JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUkxDNl9JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUkxDNl9JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfUkxDNl9JQl9SUFRSCisjZGVmaW5lIFNETUE3X1JMQzZfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEM2X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BN19STEM2X0lCX09GRlNFVAorI2RlZmluZSBTRE1BN19STEM2X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNl9JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTdfUkxDNl9JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X1JMQzZfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19STEM2X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19STEM2X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNl9JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzZfSUJfU0laRQorI2RlZmluZSBTRE1BN19STEM2X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDNl9TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDNl9TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X1JMQzZfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfUkxDNl9DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUkxDNl9DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzZfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUkxDNl9DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1JMQzZfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19STEM2X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BN19STEM2X0RPT1JCRUxMCisjZGVmaW5lIFNETUE3X1JMQzZfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUkxDNl9ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19STEM2X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19STEM2X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19STEM2X1NUQVRVUworI2RlZmluZSBTRE1BN19STEM2X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE3X1JMQzZfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzZfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X1JMQzZfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM2X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNl9ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDNl9ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDNl9XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTdfUkxDNl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDNl9XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTdfUkxDNl9XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTdfUkxDNl9ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfUkxDNl9ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzZfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE3X1JMQzZfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfUkxDNl9DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzZfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X1JMQzZfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDNl9DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzZfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BN19STEM2X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDNl9QUkVFTVBUCisjZGVmaW5lIFNETUE3X1JMQzZfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM2X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19STEM2X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BN19STEM2X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BN19STEM2X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19STEM2X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDNl9SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BN19STEM2X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzZfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19STEM2X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEM2X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BN19STEM2X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BN19STEM2X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTdfUkxDNl9NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1JMQzZfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM2X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM2X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BN19STEM2X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNl9NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTdfUkxDNl9NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzZfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM2X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM2X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BN19STEM2X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNl9NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTdfUkxDNl9NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzZfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM2X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM2X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BN19STEM2X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDNl9NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDNl9NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTdfUkxDNl9NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzZfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDNl9NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEM2X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDNl9NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1JMQzZfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzdfUkJfQ05UTAorI2RlZmluZSBTRE1BN19STEM3X1JCX0NOVExfX1JCX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9DTlRMX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBTRE1BN19STEM3X1JCX0NOVExfX1JQVFJfV1JJVEVCQUNLX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9DTlRMX19SUFRSX1dSSVRFQkFDS19TV0FQX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9DTlRMX19SQl9QUklWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBTRE1BN19STEM3X1JCX0NOVExfX1JCX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0VMCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUkJfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUlBUUl9XUklURUJBQ0tfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRjAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUkJfUFJJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQ05UTF9fUkJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDBMCisvL1NETUE3X1JMQzdfUkJfQkFTRQorI2RlZmluZSBTRE1BN19STEM3X1JCX0JBU0VfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9CQVNFX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDN19SQl9CQVNFX0hJCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQkFTRV9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM3X1JCX0JBU0VfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9TRE1BN19STEM3X1JCX1JQVFIKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9SUFRSX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfUlBUUl9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzdfUkJfUlBUUl9ISQorI2RlZmluZSBTRE1BN19STEM3X1JCX1JQVFJfSElfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9SUFRSX0hJX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDN19SQl9XUFRSCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfV1BUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM3X1JCX1dQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM3X1JCX1dQVFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX0hJX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfV1BUUl9ISV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzdfUkJfV1BUUl9QT0xMX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEM3X1JCX1dQVFJfUE9MTF9DTlRMX19GMzJfUE9MTF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzdfUkJfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fU1dBUF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRjMyX1BPTExfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fRlJFUVVFTkNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGMEwKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQ05UTF9fSURMRV9QT0xMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMEwKKy8vU0RNQTdfUkxDN19SQl9SUFRSX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9SUFRSX0FERFJfSElfX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfUlBUUl9BRERSX0hJX19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzdfUkJfUlBUUl9BRERSX0xPCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfUlBUUl9BRERSX0xPX19SUFRSX1dCX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM3X1JCX1JQVFJfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9SUFRSX0FERFJfTE9fX1JQVFJfV0JfSURMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9SUFRSX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDN19JQl9DTlRMCisjZGVmaW5lIFNETUE3X1JMQzdfSUJfQ05UTF9fSUJfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM3X0lCX0NOVExfX0lCX1NXQVBfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDN19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzdfSUJfQ05UTF9fQ01EX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDN19JQl9DTlRMX19JQl9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDN19JQl9DTlRMX19JQl9TV0FQX0VOQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgU0RNQTdfUkxDN19JQl9DTlRMX19TV0lUQ0hfSU5TSURFX0lCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgU0RNQTdfUkxDN19JQl9DTlRMX19DTURfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vU0RNQTdfUkxDN19JQl9SUFRSCisjZGVmaW5lIFNETUE3X1JMQzdfSUJfUlBUUl9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEM3X0lCX1JQVFJfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0ZGRkZDTAorLy9TRE1BN19STEM3X0lCX09GRlNFVAorI2RlZmluZSBTRE1BN19STEM3X0lCX09GRlNFVF9fT0ZGU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDN19JQl9PRkZTRVRfX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNGRkZGQ0wKKy8vU0RNQTdfUkxDN19JQl9CQVNFX0xPCisjZGVmaW5lIFNETUE3X1JMQzdfSUJfQkFTRV9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBTRE1BN19STEM3X0lCX0JBU0VfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkUwTAorLy9TRE1BN19STEM3X0lCX0JBU0VfSEkKKyNkZWZpbmUgU0RNQTdfUkxDN19JQl9CQVNFX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfSUJfQkFTRV9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzdfSUJfU0laRQorI2RlZmluZSBTRE1BN19STEM3X0lCX1NJWkVfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19JQl9TSVpFX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDN19TS0lQX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDN19TS0lQX0NOVExfX1NLSVBfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfU0tJUF9DTlRMX19TS0lQX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkZMCisvL1NETUE3X1JMQzdfQ09OVEVYVF9TVEFUVVMKKyNkZWZpbmUgU0RNQTdfUkxDN19DT05URVhUX1NUQVRVU19fU0VMRUNURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgU0RNQTdfUkxDN19DT05URVhUX1NUQVRVU19fRVhDRVBUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNETUE3X1JMQzdfQ09OVEVYVF9TVEFUVVNfX0NUWFNXX0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgU0RNQTdfUkxDN19DT05URVhUX1NUQVRVU19fUFJFRU1QVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFNETUE3X1JMQzdfQ09OVEVYVF9TVEFUVVNfX1BSRUVNUFRfRElTQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19TRUxFQ1RFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19FWFBJUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19FWENFUFRJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19DVFhTV19SRUFEWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBURURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBTRE1BN19STEM3X0NPTlRFWFRfU1RBVFVTX19QUkVFTVBUX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorLy9TRE1BN19STEM3X0RPT1JCRUxMCisjZGVmaW5lIFNETUE3X1JMQzdfRE9PUkJFTExfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgU0RNQTdfUkxDN19ET09SQkVMTF9fQ0FQVFVSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBTRE1BN19STEM3X0RPT1JCRUxMX19FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBTRE1BN19STEM3X0RPT1JCRUxMX19DQVBUVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9TRE1BN19STEM3X1NUQVRVUworI2RlZmluZSBTRE1BN19STEM3X1NUQVRVU19fV1BUUl9VUERBVEVfRkFJTF9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19TVEFUVVNfX1dQVFJfVVBEQVRFX1BFTkRJTkdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9GQUlMX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFNETUE3X1JMQzdfU1RBVFVTX19XUFRSX1VQREFURV9QRU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL1NETUE3X1JMQzdfRE9PUkJFTExfTE9HCisjZGVmaW5lIFNETUE3X1JMQzdfRE9PUkJFTExfTE9HX19CRV9FUlJPUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM3X0RPT1JCRUxMX0xPR19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDN19ET09SQkVMTF9MT0dfX0JFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgU0RNQTdfUkxDN19ET09SQkVMTF9MT0dfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDN19XQVRFUk1BUksKKyNkZWZpbmUgU0RNQTdfUkxDN19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfV0FURVJNQVJLX19XUl9PVVRTVEFORElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0RNQTdfUkxDN19XQVRFUk1BUktfX1JEX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZGRkwKKyNkZWZpbmUgU0RNQTdfUkxDN19XQVRFUk1BUktfX1dSX09VVFNUQU5ESU5HX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0ZGMDAwMEwKKy8vU0RNQTdfUkxDN19ET09SQkVMTF9PRkZTRVQKKyNkZWZpbmUgU0RNQTdfUkxDN19ET09SQkVMTF9PRkZTRVRfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzdfRE9PUkJFTExfT0ZGU0VUX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkNMCisvL1NETUE3X1JMQzdfQ1NBX0FERFJfTE8KKyNkZWZpbmUgU0RNQTdfUkxDN19DU0FfQUREUl9MT19fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFNETUE3X1JMQzdfQ1NBX0FERFJfTE9fX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1NETUE3X1JMQzdfQ1NBX0FERFJfSEkKKyNkZWZpbmUgU0RNQTdfUkxDN19DU0FfQUREUl9ISV9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfQ1NBX0FERFJfSElfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzdfSUJfU1VCX1JFTUFJTgorI2RlZmluZSBTRE1BN19STEM3X0lCX1NVQl9SRU1BSU5fX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19JQl9TVUJfUkVNQUlOX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRkwKKy8vU0RNQTdfUkxDN19QUkVFTVBUCisjZGVmaW5lIFNETUE3X1JMQzdfUFJFRU1QVF9fSUJfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM3X1BSRUVNUFRfX0lCX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9TRE1BN19STEM3X0RVTU1ZX1JFRworI2RlZmluZSBTRE1BN19STEM3X0RVTU1ZX1JFR19fRFVNTVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19EVU1NWV9SRUdfX0RVTU1ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISQorI2RlZmluZSBTRE1BN19STEM3X1JCX1dQVFJfUE9MTF9BRERSX0hJX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQUREUl9ISV9fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MTworI2RlZmluZSBTRE1BN19STEM3X1JCX1dQVFJfUE9MTF9BRERSX0xPX19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9XUFRSX1BPTExfQUREUl9MT19fQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGQ0wKKy8vU0RNQTdfUkxDN19SQl9BUUxfQ05UTAorI2RlZmluZSBTRE1BN19STEM3X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19SQl9BUUxfQ05UTF9fQVFMX1BBQ0tFVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNETUE3X1JMQzdfUkJfQVFMX0NOVExfX1BBQ0tFVF9TVEVQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBTRE1BN19STEM3X1JCX0FRTF9DTlRMX19BUUxfRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBTRE1BN19STEM3X1JCX0FRTF9DTlRMX19BUUxfUEFDS0VUX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBTRE1BN19STEM3X1JCX0FRTF9DTlRMX19QQUNLRVRfU1RFUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9TRE1BN19STEM3X01JTk9SX1BUUl9VUERBVEUKKyNkZWZpbmUgU0RNQTdfUkxDN19NSU5PUl9QVFJfVVBEQVRFX19FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfTUlOT1JfUFRSX1VQREFURV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1NETUE3X1JMQzdfTUlEQ01EX0RBVEEwCisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM3X01JRENNRF9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM3X01JRENNRF9EQVRBMQorI2RlZmluZSBTRE1BN19STEM3X01JRENNRF9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19NSURDTURfREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDN19NSURDTURfREFUQTIKKyNkZWZpbmUgU0RNQTdfUkxDN19NSURDTURfREFUQTJfX0RBVEEyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0RBVEEyX19EQVRBMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzdfTUlEQ01EX0RBVEEzCisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0RBVEEzX19EQVRBM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM3X01JRENNRF9EQVRBM19fREFUQTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM3X01JRENNRF9EQVRBNAorI2RlZmluZSBTRE1BN19STEM3X01JRENNRF9EQVRBNF9fREFUQTRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19NSURDTURfREFUQTRfX0RBVEE0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDN19NSURDTURfREFUQTUKKyNkZWZpbmUgU0RNQTdfUkxDN19NSURDTURfREFUQTVfX0RBVEE1X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0RBVEE1X19EQVRBNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzdfTUlEQ01EX0RBVEE2CisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0RBVEE2X19EQVRBNl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBTRE1BN19STEM3X01JRENNRF9EQVRBNl9fREFUQTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9TRE1BN19STEM3X01JRENNRF9EQVRBNworI2RlZmluZSBTRE1BN19STEM3X01JRENNRF9EQVRBN19fREFUQTdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgU0RNQTdfUkxDN19NSURDTURfREFUQTdfX0RBVEE3X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vU0RNQTdfUkxDN19NSURDTURfREFUQTgKKyNkZWZpbmUgU0RNQTdfUkxDN19NSURDTURfREFUQThfX0RBVEE4X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0RBVEE4X19EQVRBOF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1NETUE3X1JMQzdfTUlEQ01EX0NOVEwKKyNkZWZpbmUgU0RNQTdfUkxDN19NSURDTURfQ05UTF9fREFUQV9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBTRE1BN19STEM3X01JRENNRF9DTlRMX19TUExJVF9TVEFURV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgU0RNQTdfUkxDN19NSURDTURfQ05UTF9fQUxMT1dfUFJFRU1QVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0NOVExfX0RBVEFfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0NOVExfX0NPUFlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0NOVExfX1NQTElUX1NUQVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFNETUE3X1JMQzdfTUlEQ01EX0NOVExfX0FMTE9XX1BSRUVNUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NtdWlvL3NtdWlvXzExXzBfMF9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zbXVpby9zbXVpb18xMV8wXzBfb2Zmc2V0LmgKaW5kZXggNWRmNzA0OC4uZDM4NzYwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NtdWlvL3NtdWlvXzExXzBfMF9vZmZzZXQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvc211aW8vc211aW9fMTFfMF8wX29mZnNldC5oCkBAIC0yOSw2ICsyOSw5OCBAQAogI2RlZmluZSBtbVNNVVNWSTBfVEVMX1BMQU5FMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICNkZWZpbmUgbW1TTVVJT19NQ01fQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKICNkZWZpbmUgbW1TTVVJT19NQ01fQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ09OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ09OX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1RBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MQorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1RBUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19TQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDIKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19TQVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfSFNfTUFERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQzCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfSFNfTUFERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0RBVEFfQ01EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0RBVEFfQ01EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19TU19TQ0xfSENOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDUKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19TU19TQ0xfSENOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfU1NfU0NMX0xDTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ2CisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfU1NfU0NMX0xDTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0ZTX1NDTF9IQ05UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NworI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0ZTX1NDTF9IQ05UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19GU19TQ0xfTENOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDgKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19GU19TQ0xfTENOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfSFNfU0NMX0hDTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ5CisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfSFNfU0NMX0hDTlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0hTX1NDTF9MQ05UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YQorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0hTX1NDTF9MQ05UX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19JTlRSX1NUQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGIKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19JTlRSX1NUQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfSU5UUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRjCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfSU5UUl9NQVNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19SWF9UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGUKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19SWF9UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfVFhfVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRmCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfVFhfVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NMUl9JTlRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NMUl9JTlRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DTFJfUlhfVU5ERVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTEKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DTFJfUlhfVU5ERVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ0xSX1JYX09WRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUyCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ0xSX1JYX09WRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NMUl9UWF9PVkVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MworI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NMUl9UWF9PVkVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DTFJfUkRfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DTFJfUkRfUkVRX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ0xSX1RYX0FCUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU1CisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ0xSX1RYX0FCUlRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NMUl9SWF9ET05FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NgorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NMUl9SWF9ET05FX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DTFJfQUNUSVZJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTcKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DTFJfQUNUSVZJVFlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ0xSX1NUT1BfREVUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU4CisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ0xSX1NUT1BfREVUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NMUl9TVEFSVF9ERVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OQorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NMUl9TVEFSVF9ERVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DTFJfR0VOX0NBTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWEKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DTFJfR0VOX0NBTExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDViCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfRU5BQkxFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1YworI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19UWEZMUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNWQKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19UWEZMUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfUlhGTFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVlCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfUlhGTFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1NEQV9IT0xEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1ZgorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1NEQV9IT0xEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19UWF9BQlJUX1NPVVJDRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19UWF9BQlJUX1NPVVJDRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfU0xWX0RBVEFfTkFDS19PTkxZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfU0xWX0RBVEFfTkFDS19PTkxZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0RNQV9DUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MgorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0RNQV9DUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19ETUFfVERMUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjMKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19ETUFfVERMUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfRE1BX1JETFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY0CisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfRE1BX1JETFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1NEQV9TRVRVUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NQorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX1NEQV9TRVRVUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19BQ0tfR0VORVJBTF9DQUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjYKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19BQ0tfR0VORVJBTF9DQUxMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfRU5BQkxFX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY3CisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfRU5BQkxFX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0ZTX1NQS0xFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2OAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0ZTX1NQS0xFTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19IU19TUEtMRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjkKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19IU19TUEtMRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ0xSX1JFU1RBUlRfREVUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZhCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ0xSX1JFU1RBUlRfREVUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NPTVBfUEFSQU1fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2YgorI2RlZmluZSBtbUNLU1ZJSTJDX0lDX0NPTVBfUEFSQU1fMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DT01QX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNmMKKyNkZWZpbmUgbW1DS1NWSUkyQ19JQ19DT01QX1ZFUlNJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ09NUF9UWVBFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZkCisjZGVmaW5lIG1tQ0tTVklJMkNfSUNfQ09NUF9UWVBFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogI2RlZmluZSBtbVNNVUlPX01QX1JFU0VUX0lOVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMQogI2RlZmluZSBtbVNNVUlPX01QX1JFU0VUX0lOVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICNkZWZpbmUgbW1TTVVJT19TT0NfSEFMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zbXVpby9zbXVpb18xMV8wXzBfc2hfbWFzay5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3NtdWlvL3NtdWlvXzExXzBfMF9zaF9tYXNrLmgKaW5kZXggMjM3OTYxNS4uZjhhZmEzNTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zbXVpby9zbXVpb18xMV8wXzBfc2hfbWFzay5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9zbXVpby9zbXVpb18xMV8wXzBfc2hfbWFzay5oCkBAIC0zNyw2ICszNywyMzcgQEAKICNkZWZpbmUgU01VSU9fTUNNX0NPTkZJR19fUEtHX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxQ0wKICNkZWZpbmUgU01VSU9fTUNNX0NPTkZJR19fU09DS0VUX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKICNkZWZpbmUgU01VSU9fTUNNX0NPTkZJR19fUEtHX1NVQlRZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKy8vQ0tTVklJMkNfSUNfQ09OCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fSUNfTUFTVEVSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDS1NWSUkyQ19JQ19DT05fX0lDX01BWF9TUEVFRF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQ0tTVklJMkNfSUNfQ09OX19JQ18xMEJJVEFERFJfU0xBVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fSUNfMTBCSVRBRERSX01BU1RFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDS1NWSUkyQ19JQ19DT05fX0lDX1JFU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgQ0tTVklJMkNfSUNfQ09OX19JQ19TTEFWRV9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fU1RPUF9ERVRfSUZBRERSRVNTRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBDS1NWSUkyQ19JQ19DT05fX1RYX0VNUFRZX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgQ0tTVklJMkNfSUNfQ09OX19SWF9GSUZPX0ZVTExfSExEX0NUUkxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fSUNfTUFTVEVSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fSUNfTUFYX1NQRUVEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDZMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fSUNfMTBCSVRBRERSX1NMQVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fSUNfMTBCSVRBRERSX01BU1RFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fSUNfUkVTVEFSVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fSUNfU0xBVkVfRElTQUJMRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fU1RPUF9ERVRfSUZBRERSRVNTRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fVFhfRU1QVFlfQ1RSTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTl9fUlhfRklGT19GVUxMX0hMRF9DVFJMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisvL0NLU1ZJSTJDX0lDX1RBUgorI2RlZmluZSBDS1NWSUkyQ19JQ19UQVJfX0lDX1RBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfVEFSX19HQ19PUl9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIENLU1ZJSTJDX0lDX1RBUl9fU1BFQ0lBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBDS1NWSUkyQ19JQ19UQVJfX0lDXzEwQklUQUREUl9NQVNURVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ0tTVklJMkNfSUNfVEFSX19JQ19UQVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRkwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfVEFSX19HQ19PUl9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfVEFSX19TUEVDSUFMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfVEFSX19JQ18xMEJJVEFERFJfTUFTVEVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vQ0tTVklJMkNfSUNfU0FSCisjZGVmaW5lIENLU1ZJSTJDX0lDX1NBUl9fSUNfU0FSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDS1NWSUkyQ19JQ19TQVJfX0lDX1NBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9DS1NWSUkyQ19JQ19IU19NQUREUgorI2RlZmluZSBDS1NWSUkyQ19JQ19IU19NQUREUl9fSUNfSFNfTUFERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSFNfTUFERFJfX0lDX0hTX01BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKy8vQ0tTVklJMkNfSUNfREFUQV9DTUQKKyNkZWZpbmUgQ0tTVklJMkNfSUNfREFUQV9DTURfX0RBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENLU1ZJSTJDX0lDX0RBVEFfQ01EX19DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDS1NWSUkyQ19JQ19EQVRBX0NNRF9fU1RPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQ0tTVklJMkNfSUNfREFUQV9DTURfX1JFU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIENLU1ZJSTJDX0lDX0RBVEFfQ01EX19EQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0RBVEFfQ01EX19DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0RBVEFfQ01EX19TVE9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0RBVEFfQ01EX19SRVNUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL0NLU1ZJSTJDX0lDX1NTX1NDTF9IQ05UCisjZGVmaW5lIENLU1ZJSTJDX0lDX1NTX1NDTF9IQ05UX19JQ19TU19TQ0xfSENOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDS1NWSUkyQ19JQ19TU19TQ0xfSENOVF9fSUNfU1NfU0NMX0hDTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DS1NWSUkyQ19JQ19TU19TQ0xfTENOVAorI2RlZmluZSBDS1NWSUkyQ19JQ19TU19TQ0xfTENOVF9fSUNfU1NfU0NMX0xDTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1NfU0NMX0xDTlRfX0lDX1NTX1NDTF9MQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ0tTVklJMkNfSUNfRlNfU0NMX0hDTlQKKyNkZWZpbmUgQ0tTVklJMkNfSUNfRlNfU0NMX0hDTlRfX0lDX0ZTX1NDTF9IQ05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENLU1ZJSTJDX0lDX0ZTX1NDTF9IQ05UX19JQ19GU19TQ0xfSENOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NLU1ZJSTJDX0lDX0ZTX1NDTF9MQ05UCisjZGVmaW5lIENLU1ZJSTJDX0lDX0ZTX1NDTF9MQ05UX19JQ19GU19TQ0xfTENOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDS1NWSUkyQ19JQ19GU19TQ0xfTENOVF9fSUNfRlNfU0NMX0xDTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorLy9DS1NWSUkyQ19JQ19IU19TQ0xfSENOVAorI2RlZmluZSBDS1NWSUkyQ19JQ19IU19TQ0xfSENOVF9fSUNfSFNfU0NMX0hDTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSFNfU0NMX0hDTlRfX0lDX0hTX1NDTF9IQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vQ0tTVklJMkNfSUNfSFNfU0NMX0xDTlQKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSFNfU0NMX0xDTlRfX0lDX0hTX1NDTF9MQ05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENLU1ZJSTJDX0lDX0hTX1NDTF9MQ05UX19JQ19IU19TQ0xfTENOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL0NLU1ZJSTJDX0lDX0lOVFJfU1RBVAorI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX1NUQVRfX1JfUlhfVU5ERVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9TVEFUX19SX1JYX09WRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9SWF9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX1NUQVRfX1JfVFhfT1ZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9TVEFUX19SX1RYX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9SRF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX1NUQVRfX1JfVFhfQUJSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9TVEFUX19SX1JYX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9BQ1RJVklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX1NUQVRfX1JfU1RPUF9ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9TVEFUX19SX1NUQVJUX0RFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9HRU5fQ0FMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX1NUQVRfX1JfUkVTVEFSVF9ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9TVEFUX19SX01TVF9PTl9IT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9SWF9VTkRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9SWF9PVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9SWF9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9UWF9PVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9UWF9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9SRF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9UWF9BQlJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9SWF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9BQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9TVE9QX0RFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9TVEFSVF9ERVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9HRU5fQ0FMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9SRVNUQVJUX0RFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfU1RBVF9fUl9NU1RfT05fSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL0NLU1ZJSTJDX0lDX0lOVFJfTUFTSworI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX01BU0tfX01fUlhfVU5ERVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9NQVNLX19NX1JYX09WRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9SWF9GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX01BU0tfX01fVFhfT1ZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9NQVNLX19NX1RYX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9SRF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX01BU0tfX01fVFhfQUJSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9NQVNLX19NX1JYX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9BQ1RJVklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX01BU0tfX01fU1RPUF9ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9NQVNLX19NX1NUQVJUX0RFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9HRU5fQ0FMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBDS1NWSUkyQ19JQ19JTlRSX01BU0tfX01fUkVTVEFSVF9ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSU5UUl9NQVNLX19NX01TVF9PTl9IT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9SWF9VTkRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9SWF9PVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9SWF9GVUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9UWF9PVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9UWF9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9SRF9SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9UWF9BQlJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9SWF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9BQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9TVE9QX0RFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9TVEFSVF9ERVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9HRU5fQ0FMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9SRVNUQVJUX0RFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0lOVFJfTUFTS19fTV9NU1RfT05fSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL0NLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVQKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9SWF9VTkRFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDS1NWSUkyQ19JQ19SQVdfSU5UUl9TVEFUX19SX1JYX09WRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVRfX1JfUlhfRlVMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9UWF9PVkVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBDS1NWSUkyQ19JQ19fUkFXX0lOVFJfU1RBVF9fUl9UWF9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBDS1NWSUkyQ19JQ19SQVdfSU5UUl9TVEFUX19SX1JEX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIENLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVRfX1JfVFhfQUJSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9SWF9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBDS1NWSUkyQ19JQ19SQVdfSU5UUl9TVEFUX19SX0FDVElWSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIENLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVRfX1JfU1RPUF9ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9TVEFSVF9ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBDS1NWSUkyQ19JQ19SQVdfSU5UUl9TVEFUX19SX0dFTl9DQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIENLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVRfX1JfUkVTVEFSVF9ERVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9NU1RfT05fSE9MRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBDS1NWSUkyQ19JQ19SQVdfSU5UUl9TVEFUX19SX1JYX1VOREVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9SWF9PVkVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIENLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVRfX1JfUlhfRlVMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDS1NWSUkyQ19JQ19SQVdfSU5UUl9TVEFUX19SX1RYX09WRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9UWF9FTVBUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVRfX1JfUkRfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBDS1NWSUkyQ19JQ19SQVdfSU5UUl9TVEFUX19SX1RYX0FCUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9SWF9ET05FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVRfX1JfQUNUSVZJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBDS1NWSUkyQ19JQ19SQVdfSU5UUl9TVEFUX19SX1NUT1BfREVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9TVEFSVF9ERVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIENLU1ZJSTJDX0lDX1JBV19JTlRSX1NUQVRfX1JfR0VOX0NBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBDS1NWSUkyQ19JQ19SQVdfSU5UUl9TVEFUX19SX1JFU1RBUlRfREVUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfUkFXX0lOVFJfU1RBVF9fUl9NU1RfT05fSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisvL0NLU1ZJSTJDX0lDX1JYX1RMCisvL0NLU1ZJSTJDX0lDX1RYX1RMCisvL0NLU1ZJSTJDX0lDX0NMUl9JTlRSCisvL0NLU1ZJSTJDX0lDX0NMUl9SWF9VTkRFUgorLy9DS1NWSUkyQ19JQ19DTFJfUlhfT1ZFUgorLy9DS1NWSUkyQ19JQ19DTFJfVFhfT1ZFUgorLy9DS1NWSUkyQ19JQ19DTFJfUkRfUkVRCisvL0NLU1ZJSTJDX0lDX0NMUl9UWF9BQlJUCisvL0NLU1ZJSTJDX0lDX0NMUl9SWF9ET05FCisvL0NLU1ZJSTJDX0lDX0NMUl9BQ1RJVklUWQorI2RlZmluZSBDS1NWSUkyQ19JQ19DTFJfQUNUSVZJVFlfX0NMUl9BQ1RJVklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfQ0xSX0FDVElWSVRZX19DTFJfQUNUSVZJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ0tTVklJMkNfSUNfQ0xSX1NUT1BfREVUCisvL0NLU1ZJSTJDX0lDX0NMUl9TVEFSVF9ERVQKKy8vQ0tTVklJMkNfSUNfQ0xSX0dFTl9DQUxMCisvL0NLU1ZJSTJDX0lDX0VOQUJMRQorI2RlZmluZSBDS1NWSUkyQ19JQ19FTkFCTEVfX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfRU5BQkxFX19BQk9SVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENLU1ZJSTJDX0lDX0VOQUJMRV9fRU5BQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIENLU1ZJSTJDX0lDX0VOQUJMRV9fQUJPUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL0NLU1ZJSTJDX0lDX1NUQVRVUworI2RlZmluZSBDS1NWSUkyQ19JQ19TVEFUVVNfX0FDVElWSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1RBVFVTX19URk5GX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENLU1ZJSTJDX0lDX1NUQVRVU19fVEZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDS1NWSUkyQ19JQ19TVEFUVVNfX1JGTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1RBVFVTX19SRkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIENLU1ZJSTJDX0lDX1NUQVRVU19fTVNUX0FDVElWSVRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBDS1NWSUkyQ19JQ19TVEFUVVNfX1NMVl9BQ1RJVklUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1RBVFVTX19BQ1RJVklUWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1RBVFVTX19URk5GX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1RBVFVTX19URkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1RBVFVTX19SRk5FX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1RBVFVTX19SRkZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1RBVFVTX19NU1RfQUNUSVZJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU1RBVFVTX19TTFZfQUNUSVZJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKy8vQ0tTVklJMkNfSUNfVFhGTFIKKy8vQ0tTVklJMkNfSUNfUlhGTFIKKy8vQ0tTVklJMkNfSUNfU0RBX0hPTEQKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU0RBX0hPTERfX0lDX1NEQV9IT0xEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENLU1ZJSTJDX0lDX1NEQV9IT0xEX19JQ19TREFfSE9MRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL0NLU1ZJSTJDX0lDX1RYX0FCUlRfU09VUkNFCisKKyNkZWZpbmUgQ0tTVklJMkNfSUNfVFhfQUJSVF9TT1VSQ0VfX0FCUlRfN0JfQUREUl9OT0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDS1NWSUkyQ19JQ19UWF9BQlJUX1NPVVJDRV9fQUJSVF8xMEFERFIxX05PQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENLU1ZJSTJDX0lDX1RYX0FCUlRfU09VUkNFX19BQlJUXzEwQUREUjJfTk9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgQ0tTVklJMkNfSUNfVFhfQUJSVF9TT1VSQ0VfX0FCUlRfVFhEQVRBX05PQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBDS1NWSUkyQ19JQ19UWF9BQlJUX1NPVVJDRV9fQUJSVF83Ql9BRERSX05PQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDS1NWSUkyQ19JQ19UWF9BQlJUX1NPVVJDRV9fQUJSVF8xMEFERFIxX05PQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBDS1NWSUkyQ19JQ19UWF9BQlJUX1NPVVJDRV9fQUJSVF8xMEFERFIyX05PQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBDS1NWSUkyQ19JQ19UWF9BQlJUX1NPVVJDRV9fQUJSVF9UWERBVEFfTk9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorLy9DS1NWSUkyQ19JQ19TTFZfREFUQV9OQUNLX09OTFkKKy8vQ0tTVklJMkNfSUNfRE1BX0NSCisvL0NLU1ZJSTJDX0lDX0RNQV9URExSCisvL0NLU1ZJSTJDX0lDX0RNQV9SRExSCisvL0NLU1ZJSTJDX0lDX1NEQV9TRVRVUAorI2RlZmluZSBDS1NWSUkyQ19JQ19TREFfU0VUVVBfX1NEQV9TRVRVUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfU0RBX1NFVFVQX19TREFfU0VUVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQ0tTVklJMkNfSUNfQUNLX0dFTkVSQUxfQ0FMTAorI2RlZmluZSBDS1NWSUkyQ19JQ19BQ0tfR0VORVJBTF9DQUxMX19BQ0tfR0VORVJBTF9DQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfQUNLX0dFTkVSQUxfQ0FMTF9fQUNLX0dFTkVSQUxfQ0FMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKy8vQ0tTVklJMkNfSUNfRU5BQkxFX1NUQVRVUworI2RlZmluZSBDS1NWSUkyQ19JQ19FTkFCTEVfU1RBVFVTX19JQ19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfRU5BQkxFX1NUQVRVU19fU0xWX1JYX0FCT1JURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIENLU1ZJSTJDX0lDX0VOQUJMRV9TVEFUVVNfX1NMVl9GSUZPX0ZJTExFRF9BTkRfRkxVU0hFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBDS1NWSUkyQ19JQ19FTkFCTEVfU1RBVFVTX19JQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBDS1NWSUkyQ19JQ19FTkFCTEVfU1RBVFVTX19TTFZfUlhfQUJPUlRFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBDS1NWSUkyQ19JQ19FTkFCTEVfU1RBVFVTX19TTFZfRklGT19GSUxMRURfQU5EX0ZMVVNIRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9DS1NWSUkyQ19JQ19GU19TUEtMRU4KKyNkZWZpbmUgQ0tTVklJMkNfSUNfRlNfU1BLTEVOX19GU19TUEtMRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENLU1ZJSTJDX0lDX0ZTX1NQS0xFTl9fRlNfU1BLTEVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL0NLU1ZJSTJDX0lDX0hTX1NQS0xFTgorI2RlZmluZSBDS1NWSUkyQ19JQ19IU19TUEtMRU5fX0hTX1NQS0xFTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfSFNfU1BLTEVOX19IU19TUEtMRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKy8vQ0tTVklJMkNfSUNfQ0xSX1JFU1RBUlRfREVUCisvL0NLU1ZJSTJDX0lDX0NPTVBfUEFSQU1fMQorI2RlZmluZSBDS1NWSUkyQ19JQ19DT01QX1BBUkFNXzFfX0NPTVBfUEFSQU1fMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgQ0tTVklJMkNfSUNfQ09NUF9QQVJBTV8xX19DT01QX1BBUkFNXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vQ0tTVklJMkNfSUNfQ09NUF9WRVJTSU9OCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTVBfVkVSU0lPTl9fQ09NUF9WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDS1NWSUkyQ19JQ19DT01QX1ZFUlNJT05fX0NPTVBfVkVSU0lPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9DS1NWSUkyQ19JQ19DT01QX1RZUEUKKyNkZWZpbmUgQ0tTVklJMkNfSUNfQ09NUF9UWVBFX19DT01QX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIENLU1ZJSTJDX0lDX0NPTVBfVFlQRV9fQ09NUF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCiAvL1NNVUlPX01QX1JFU0VUX0lOVFIKICNkZWZpbmUgU01VSU9fTVBfUkVTRVRfSU5UUl9fU01VSU9fTVBfUkVTRVRfSU5UUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCiAjZGVmaW5lIFNNVUlPX01QX1JFU0VUX0lOVFJfX1NNVUlPX01QX1JFU0VUX0lOVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvdW1jL3VtY182XzFfMV9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy91bWMvdW1jXzZfMV8xX29mZnNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0M2FhNjkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvdW1jL3VtY182XzFfMV9vZmZzZXQuaApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF91bWNfNl8xXzFfT0ZGU0VUX0hFQURFUgorI2RlZmluZSBfdW1jXzZfMV8xX09GRlNFVF9IRUFERVIKKworI2RlZmluZSBtbVVNQ0NIMF8wX0VjY0VyckNudFNlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDM2MAorI2RlZmluZSBtbVVNQ0NIMF8wX0VjY0VyckNudFNlbF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VTUNDSDBfMF9FY2NFcnJDbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzNjEKKyNkZWZpbmUgbW1VTUNDSDBfMF9FY2NFcnJDbnRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2MyCisjZGVmaW5lIG1tTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy91bWMvdW1jXzZfMV8xX3NoX21hc2suaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy91bWMvdW1jXzZfMV8xX3NoX21hc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWM4ODgyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3VtYy91bWNfNl8xXzFfc2hfbWFzay5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX3VtY182XzFfMV9TSF9NQVNLX0hFQURFUgorI2RlZmluZSBfdW1jXzZfMV8xX1NIX01BU0tfSEVBREVSCisKKy8vVU1DQ0gwXzBfRWNjRXJyQ250U2VsCisjZGVmaW5lIFVNQ0NIMF8wX0VjY0VyckNudFNlbF9fRWNjRXJyQ250Q3NTZWxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVTUNDSDBfMF9FY2NFcnJDbnRTZWxfX0VjY0VyckludF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVU1DQ0gwXzBfRWNjRXJyQ250U2VsX19FY2NFcnJDbnRFbl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVNQ0NIMF8wX0VjY0VyckNudFNlbF9fRWNjRXJyQ250Q3NTZWxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFVNQ0NIMF8wX0VjY0VyckNudFNlbF9fRWNjRXJySW50X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIFVNQ0NIMF8wX0VjY0VyckNudFNlbF9fRWNjRXJyQ250RW5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisvL1VNQ0NIMF8wX0VjY0VyckNudAorI2RlZmluZSBVTUNDSDBfMF9FY2NFcnJDbnRfX0VjY0VyckNudF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVU1DQ0gwXzBfRWNjRXJyQ250X19FY2NFcnJDbnRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fRXJyb3JDb2RlX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX0Vycm9yQ29kZUV4dF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fUkVTRVJWMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19FcnJDb3JlSWRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX1JFU0VSVjFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI2CisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fU2NydWJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjgKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19SRVNFUlYyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOQorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX1BvaXNvbl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJiCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fRGVmZXJyZWRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmMKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19VRUNDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyZAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX0NFQ0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJlCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fUkVTRVJWM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmYKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19UcmFuc3BhcmVudF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX1N5bmRWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM1CisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fUkVTRVJWNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzYKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19UQ0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNworI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX0VyckNvcmVJZFZhbF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM4CisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fUENDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19BZGRyVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYQorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX01pc2NWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNiCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fRW5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2MKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19VQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX092ZXJmbG93X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNlCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fVmFsX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2YKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19FcnJvckNvZGVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDBGRkZGTAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX0Vycm9yQ29kZUV4dF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAzRjAwMDBMCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fUkVTRVJWMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBGRkMwMDAwMEwKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19FcnJDb3JlSWRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRjAwMDAwMDAwTAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX1JFU0VSVjFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwMDAwMDAwMDBMCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fU2NydWJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAwMDAwMDAwMEwKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19SRVNFUlYyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMDAwMDAwMDAwTAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX1BvaXNvbl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwMDAwMDAwMDBMCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fRGVmZXJyZWRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAwMDAwMDAwMEwKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19VRUNDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMDAwMDAwMDAwTAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX0NFQ0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwMDAwMDAwMDBMCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fUkVTRVJWM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjgwMDAwMDAwMDAwMEwKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19UcmFuc3BhcmVudF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMDAwMDAwMDAwTAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX1N5bmRWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwMDAwMDAwMDBMCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fUkVTRVJWNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDAwMDAwMDAwMEwKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19UQ0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMDAwMDAwMDAwTAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX0VyckNvcmVJZFZhbF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwMDAwMDAwMDBMCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fUENDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDAwMDAwMDAwMEwKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19BZGRyVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMDAwMDAwMDAwTAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX01pc2NWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwMDAwMDAwMDBMCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fRW5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDAwMDAwMDAwMEwKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX1NUQVRVU1QwX19VQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMDAwMDAwMDAwTAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfU1RBVFVTVDBfX092ZXJmbG93X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwMDAwMDAwMDBMCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19TVEFUVVNUMF9fVmFsX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAwMDAwMDAwMEwKKy8vTUNBX1VNQ19VTUMwX01DVU1DX0FERFJUMAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfQUREUlQwX19FcnJvckFkZHJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX0FERFJUMF9fTFNCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzOAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfQUREUlQwX19SZXNlcnZlZF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNlCisjZGVmaW5lIE1DQV9VTUNfVU1DMF9NQ1VNQ19BRERSVDBfX0Vycm9yQWRkcl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZGRkZGRkZGRkwKKyNkZWZpbmUgTUNBX1VNQ19VTUMwX01DVU1DX0FERFJUMF9fTFNCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMDAwMDAwMDAwTAorI2RlZmluZSBNQ0FfVU1DX1VNQzBfTUNVTUNfQUREUlQwX19SZXNlcnZlZF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwMDAwMDAwMDBMCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3Zjbi92Y25fMl81X29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL3Zjbi92Y25fMl81X29mZnNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMjE0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvdmNuL3Zjbl8yXzVfb2Zmc2V0LmgKQEAgLTAsMCArMSw5NzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBfdmNuXzJfNV9PRkZTRVRfSEVBREVSCisjZGVmaW5lIF92Y25fMl81X09GRlNFVF9IRUFERVIKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX21tc2NoX2RlYworLy8gYmFzZSBhZGRyZXNzOiAweDFlMDAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX2pwZWducGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDFlMjAwCisjZGVmaW5lIG1tVVZEX0pQRUdfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwCisjZGVmaW5lIG1tVVZEX0pQRUdfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX1JCX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MQorI2RlZmluZSBtbVVWRF9KUEVHX1JCX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19SQl9XUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODIKKyNkZWZpbmUgbW1VVkRfSlBFR19SQl9XUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgzCisjZGVmaW5lIG1tVVZEX0pQRUdfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX1JCX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NAorI2RlZmluZSBtbVVWRF9KUEVHX1JCX1NJWkVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19ERUNfU0NSQVRDSDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODkKKyNkZWZpbmUgbW1VVkRfSlBFR19ERUNfU0NSQVRDSDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfSU5UX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhhCisjZGVmaW5lIG1tVVZEX0pQRUdfSU5UX0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX0lOVF9TVEFUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YgorI2RlZmluZSBtbVVWRF9KUEVHX0lOVF9TVEFUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19QSVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOWYKKyNkZWZpbmUgbW1VVkRfSlBFR19QSVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfVVZfUElUQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGEwCisjZGVmaW5lIG1tVVZEX0pQRUdfVVZfUElUQ0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfREVDX1lfR0ZYOF9USUxJTkdfU1VSRkFDRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhMQorI2RlZmluZSBtbUpQRUdfREVDX1lfR0ZYOF9USUxJTkdfU1VSRkFDRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX0RFQ19VVl9HRlg4X1RJTElOR19TVVJGQUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTIKKyNkZWZpbmUgbW1KUEVHX0RFQ19VVl9HRlg4X1RJTElOR19TVVJGQUNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tSlBFR19ERUNfR0ZYOF9BRERSX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGEzCisjZGVmaW5lIG1tSlBFR19ERUNfR0ZYOF9BRERSX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfREVDX1lfR0ZYMTBfVElMSU5HX1NVUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhNAorI2RlZmluZSBtbUpQRUdfREVDX1lfR0ZYMTBfVElMSU5HX1NVUkZBQ0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX0RFQ19VVl9HRlgxMF9USUxJTkdfU1VSRkFDRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTUKKyNkZWZpbmUgbW1KUEVHX0RFQ19VVl9HRlgxMF9USUxJTkdfU1VSRkFDRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tSlBFR19ERUNfR0ZYMTBfQUREUl9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE2CisjZGVmaW5lIG1tSlBFR19ERUNfR0ZYMTBfQUREUl9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfREVDX0FERFJfTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhNworI2RlZmluZSBtbUpQRUdfREVDX0FERFJfTU9ERV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19HUENPTV9DTUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTkKKyNkZWZpbmUgbW1VVkRfSlBFR19HUENPTV9DTURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfR1BDT01fREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFhCisjZGVmaW5lIG1tVVZEX0pQRUdfR1BDT01fREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX0dQQ09NX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYgorI2RlZmluZSBtbVVWRF9KUEVHX0dQQ09NX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19TQ1JBVENIMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWUKKyNkZWZpbmUgbW1VVkRfSlBFR19TQ1JBVENIMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfREVDX1NPRlRfUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFmCisjZGVmaW5lIG1tVVZEX0pQRUdfREVDX1NPRlRfUlNUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfanBlZ19lbmNfZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MWUzMDAKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfSU5UX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzEKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfSU5UX0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX0lOVF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMyCisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX0lOVF9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19FTkdJTkVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNQorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19FTkdJTkVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfU0NSQVRDSDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwY2UKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfU0NSQVRDSDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX3V2ZF9qcGVnX2VuY19zY2xrX2RlYworLy8gYmFzZSBhZGRyZXNzOiAweDFlMzgwCisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU1CisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19QSVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNgorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19QSVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfTFVNQV9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTcKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfTFVNQV9CQVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX0NIUk9NQVVfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU4CisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX0NIUk9NQVVfQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19DSFJPTUFWX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlOQorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19DSFJPTUFWX0JBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX0VOQ19ZX0dGWDEwX1RJTElOR19TVVJGQUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWEKKyNkZWZpbmUgbW1KUEVHX0VOQ19ZX0dGWDEwX1RJTElOR19TVVJGQUNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tSlBFR19FTkNfVVZfR0ZYMTBfVElMSU5HX1NVUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGViCisjZGVmaW5lIG1tSlBFR19FTkNfVVZfR0ZYMTBfVElMSU5HX1NVUkZBQ0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfRU5DX0dGWDEwX0FERFJfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlYworI2RlZmluZSBtbUpQRUdfRU5DX0dGWDEwX0FERFJfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX0VOQ19BRERSX01PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWQKKyNkZWZpbmUgbW1KUEVHX0VOQ19BRERSX01PREVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX0dQQ09NX0NNRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVlCisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX0dQQ09NX0NNRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19HUENPTV9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlZgorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19HUENPTV9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfR1BDT01fREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjAKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfR1BDT01fREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX0NHQ19DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGY1CisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX0NHQ19DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19TQ1JBVENIMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmNgorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19TQ1JBVENIMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfU09GVF9SU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjcKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfU09GVF9SU1RfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX3V2ZF9qcmJjX2RlYworLy8gYmFzZSBhZGRyZXNzOiAweDFlNDAwCisjZGVmaW5lIG1tVVZEX0pSQkNfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwCisjZGVmaW5lIG1tVVZEX0pSQkNfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMQorI2RlZmluZSBtbVVWRF9KUkJDX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDIKKyNkZWZpbmUgbW1VVkRfSlJCQ19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfVVJHRU5UX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAzCisjZGVmaW5lIG1tVVZEX0pSQkNfVVJHRU5UX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX1JCX1JFRl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNAorI2RlZmluZSBtbVVWRF9KUkJDX1JCX1JFRl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19SQl9DT05EX1JEX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDUKKyNkZWZpbmUgbW1VVkRfSlJCQ19SQl9DT05EX1JEX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfU09GVF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA4CisjZGVmaW5lIG1tVVZEX0pSQkNfU09GVF9SRVNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwOQorI2RlZmluZSBtbVVWRF9KUkJDX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGEKKyNkZWZpbmUgbW1VVkRfSlJCQ19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfUkJfQlVGX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBiCisjZGVmaW5lIG1tVVZEX0pSQkNfUkJfQlVGX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX0lCX0JVRl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwYworI2RlZmluZSBtbVVWRF9KUkJDX0lCX0JVRl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19JQl9TSVpFX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMGQKKyNkZWZpbmUgbW1VVkRfSlJCQ19JQl9TSVpFX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfSUJfQ09ORF9SRF9USU1FUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTBlCisjZGVmaW5lIG1tVVZEX0pSQkNfSUJfQ09ORF9SRF9USU1FUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX0lCX1JFRl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwZgorI2RlZmluZSBtbVVWRF9KUkJDX0lCX1JFRl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19QUkVFTVBUX0NNRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTAKKyNkZWZpbmUgbW1VVkRfSlBFR19QUkVFTVBUX0NNRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfUFJFRU1QVF9GRU5DRV9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTExCisjZGVmaW5lIG1tVVZEX0pQRUdfUFJFRU1QVF9GRU5DRV9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX1BSRUVNUFRfRkVOQ0VfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExMgorI2RlZmluZSBtbVVWRF9KUEVHX1BSRUVNUFRfRkVOQ0VfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19SQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTMKKyNkZWZpbmUgbW1VVkRfSlJCQ19SQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfU0NSQVRDSDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE0CisjZGVmaW5lIG1tVVZEX0pSQkNfU0NSQVRDSDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfanJiY19lbmNfZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MWU0ODAKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfUkJfV1BUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjAKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfUkJfV1BUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTIxCisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyMgorI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfVVJHRU5UX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjMKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfVVJHRU5UX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX1JCX1JFRl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTI0CisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX1JCX1JFRl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19SQl9DT05EX1JEX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyNQorI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19SQl9DT05EX1JEX1RJTUVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfU09GVF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMjgKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfU09GVF9SRVNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTI5CisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19SQl9SUFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyYQorI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19SQl9SUFRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfUkJfQlVGX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMmIKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfUkJfQlVGX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX0lCX0JVRl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTJjCisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX0lCX0JVRl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19JQl9TSVpFX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyZAorI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19JQl9TSVpFX1VQREFURV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfSUJfQ09ORF9SRF9USU1FUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMmUKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfSUJfQ09ORF9SRF9USU1FUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX0lCX1JFRl9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTJmCisjZGVmaW5lIG1tVVZEX0pSQkNfRU5DX0lCX1JFRl9EQVRBX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19QUkVFTVBUX0NNRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMAorI2RlZmluZSBtbVVWRF9KUEVHX0VOQ19QUkVFTVBUX0NNRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfUFJFRU1QVF9GRU5DRV9EQVRBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzEKKyNkZWZpbmUgbW1VVkRfSlBFR19FTkNfUFJFRU1QVF9GRU5DRV9EQVRBMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX1BSRUVNUFRfRkVOQ0VfREFUQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTMyCisjZGVmaW5lIG1tVVZEX0pQRUdfRU5DX1BSRUVNUFRfRkVOQ0VfREFUQTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19SQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzMworI2RlZmluZSBtbVVWRF9KUkJDX0VOQ19SQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfU0NSQVRDSDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzQKKyNkZWZpbmUgbW1VVkRfSlJCQ19FTkNfU0NSQVRDSDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX3V2ZF9qbWlfZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MWU1MDAKKyNkZWZpbmUgbW1VVkRfSk1JX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDUKKyNkZWZpbmUgbW1VVkRfSk1JX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ2CisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlBFR19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0NworI2RlZmluZSBtbVVWRF9MTUlfSlBFR19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSk1JX0VKUkJDX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDgKKyNkZWZpbmUgbW1VVkRfSk1JX0VKUkJDX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9FSlBFR19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ5CisjZGVmaW5lIG1tVVZEX0xNSV9FSlBFR19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19JQl9WTUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0ZgorI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19JQl9WTUlEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfUkJfVk1JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTAKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfUkJfVk1JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHX1ZNSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTUxCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHX1ZNSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KTUlfRU5DX0pSQkNfSUJfVk1JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1MgorI2RlZmluZSBtbVVWRF9KTUlfRU5DX0pSQkNfSUJfVk1JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSk1JX0VOQ19KUkJDX1JCX1ZNSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTMKKyNkZWZpbmUgbW1VVkRfSk1JX0VOQ19KUkJDX1JCX1ZNSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pNSV9FTkNfSlBFR19WTUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU0CisjZGVmaW5lIG1tVVZEX0pNSV9FTkNfSlBFR19WTUlEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KTUlfUEVSRk1PTl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1YworI2RlZmluZSBtbVVWRF9KTUlfUEVSRk1PTl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSk1JX1BFUkZNT05fQ09VTlRfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNWQKKyNkZWZpbmUgbW1VVkRfSk1JX1BFUkZNT05fQ09VTlRfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pNSV9QRVJGTU9OX0NPVU5UX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTVlCisjZGVmaW5lIG1tVVZEX0pNSV9QRVJGTU9OX0NPVU5UX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlBFR19SRUFEXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MAorI2RlZmluZSBtbVVWRF9MTUlfSlBFR19SRUFEXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0pQRUdfUkVBRF82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjEKKyNkZWZpbmUgbW1VVkRfTE1JX0pQRUdfUkVBRF82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHX1dSSVRFXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTYyCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHX1dSSVRFXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlBFR19XUklURV82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MworI2RlZmluZSBtbVVWRF9MTUlfSlBFR19XUklURV82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0pQRUdfUFJFRU1QVF9GRU5DRV82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjQKKyNkZWZpbmUgbW1VVkRfTE1JX0pQRUdfUFJFRU1QVF9GRU5DRV82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHX1BSRUVNUFRfRkVOQ0VfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY1CisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHX1BSRUVNUFRfRkVOQ0VfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19SQl82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2NgorI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19SQl82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfUkJfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNjcKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfUkJfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX0lCXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTY4CisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX0lCXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19JQl82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2OQorI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19JQl82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfUkJfTUVNX1dSXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNmEKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfUkJfTUVNX1dSXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTZiCisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19SQl9NRU1fUkRfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2YworI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19SQl9NRU1fUkRfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfUkJfTUVNX1JEXzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNmQKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfUkJfTUVNX1JEXzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX0lCX01FTV9XUl82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTZlCisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX0lCX01FTV9XUl82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19JQl9NRU1fV1JfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2ZgorI2RlZmluZSBtbVVWRF9MTUlfSlJCQ19JQl9NRU1fV1JfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfSUJfTUVNX1JEXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNzAKKyNkZWZpbmUgbW1VVkRfTE1JX0pSQkNfSUJfTUVNX1JEXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTcxCisjZGVmaW5lIG1tVVZEX0xNSV9KUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfRUpQRUdfUFJFRU1QVF9GRU5DRV82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3YQorI2RlZmluZSBtbVVWRF9MTUlfRUpQRUdfUFJFRU1QVF9GRU5DRV82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUEVHX1BSRUVNUFRfRkVOQ0VfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2IKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUEVHX1BSRUVNUFRfRkVOQ0VfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9FSlJCQ19SQl82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTdjCisjZGVmaW5lIG1tVVZEX0xNSV9FSlJCQ19SQl82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfRUpSQkNfUkJfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE3ZAorI2RlZmluZSBtbVVWRF9MTUlfRUpSQkNfUkJfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUkJDX0lCXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxN2UKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUkJDX0lCXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9FSlJCQ19JQl82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTdmCisjZGVmaW5lIG1tVVZEX0xNSV9FSlJCQ19JQl82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfRUpSQkNfUkJfTUVNX1dSXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4MAorI2RlZmluZSBtbVVWRF9MTUlfRUpSQkNfUkJfTUVNX1dSXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODEKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9FSlJCQ19SQl9NRU1fUkRfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTgyCisjZGVmaW5lIG1tVVZEX0xNSV9FSlJCQ19SQl9NRU1fUkRfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfRUpSQkNfUkJfTUVNX1JEXzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4MworI2RlZmluZSBtbVVWRF9MTUlfRUpSQkNfUkJfTUVNX1JEXzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUkJDX0lCX01FTV9XUl82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODQKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUkJDX0lCX01FTV9XUl82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9FSlJCQ19JQl9NRU1fV1JfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg1CisjZGVmaW5lIG1tVVZEX0xNSV9FSlJCQ19JQl9NRU1fV1JfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfRUpSQkNfSUJfTUVNX1JEXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4NgorI2RlZmluZSBtbVVWRF9MTUlfRUpSQkNfSUJfTUVNX1JEXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODcKKyNkZWZpbmUgbW1VVkRfTE1JX0VKUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHX1BSRUVNUFRfVk1JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTg4CisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHX1BSRUVNUFRfVk1JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfRU5DX0pQRUdfUFJFRU1QVF9WTUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4OQorI2RlZmluZSBtbVVWRF9MTUlfRU5DX0pQRUdfUFJFRU1QVF9WTUlEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0pQRUcyX1ZNSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGEKKyNkZWZpbmUgbW1VVkRfTE1JX0pQRUcyX1ZNSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHMl9SRUFEXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThiCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHMl9SRUFEXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlBFRzJfUkVBRF82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4YworI2RlZmluZSBtbVVWRF9MTUlfSlBFRzJfUkVBRF82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfTE1JX0pQRUcyX1dSSVRFXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOGQKKyNkZWZpbmUgbW1VVkRfTE1JX0pQRUcyX1dSSVRFXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHMl9XUklURV82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMThlCisjZGVmaW5lIG1tVVZEX0xNSV9KUEVHMl9XUklURV82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9MTUlfSlBFR19DVFJMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE4ZgorI2RlZmluZSBtbVVWRF9MTUlfSlBFR19DVFJMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSk1JX0RFQ19TV0FQX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOTAKKyNkZWZpbmUgbW1VVkRfSk1JX0RFQ19TV0FQX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pNSV9FTkNfU1dBUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTkxCisjZGVmaW5lIG1tVVZEX0pNSV9FTkNfU1dBUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KTUlfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5MgorI2RlZmluZSBtbVVWRF9KTUlfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1VVkRfSk1JX0hVRkZfRkVOQ0VfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxOWEKKyNkZWZpbmUgbW1VVkRfSk1JX0hVRkZfRkVOQ0VfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tVVZEX0pNSV9IVUZGX0ZFTkNFXzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTliCisjZGVmaW5lIG1tVVZEX0pNSV9IVUZGX0ZFTkNFXzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbVVWRF9KTUlfREVDX1NXQVBfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5YworI2RlZmluZSBtbVVWRF9KTUlfREVDX1NXQVBfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKworCisvLyBhZGRyZXNzQmxvY2s6IHV2ZDBfdXZkX2pwZWdfY29tbW9uX2RlYworLy8gYmFzZSBhZGRyZXNzOiAweDFlNzAwCisjZGVmaW5lIG1tSlBFR19TT0ZUX1JFU0VUX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWMwCisjZGVmaW5lIG1tSlBFR19TT0ZUX1JFU0VUX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfU1lTX0lOVF9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjMQorI2RlZmluZSBtbUpQRUdfU1lTX0lOVF9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX1NZU19JTlRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzIKKyNkZWZpbmUgbW1KUEVHX1NZU19JTlRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tSlBFR19TWVNfSU5UX0FDSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWMzCisjZGVmaW5lIG1tSlBFR19TWVNfSU5UX0FDS19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfTUFTVElOVF9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjOAorI2RlZmluZSBtbUpQRUdfTUFTVElOVF9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX0lIX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzkKKyNkZWZpbmUgbW1KUEVHX0lIX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tSlJCQk1fQVJCX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWNiCisjZGVmaW5lIG1tSlJCQk1fQVJCX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfanBlZ19jb21tb25fc2Nsa19kZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxZTc4MAorI2RlZmluZSBtbUpQRUdfQ0dDX0dBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMAorI2RlZmluZSBtbUpQRUdfQ0dDX0dBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX0NHQ19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTEKKyNkZWZpbmUgbW1KUEVHX0NHQ19DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tSlBFR19DR0NfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWUyCisjZGVmaW5lIG1tSlBFR19DR0NfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfQ09NTl9DR0NfTUVNX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlMworI2RlZmluZSBtbUpQRUdfQ09NTl9DR0NfTUVNX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX0RFQ19DR0NfTUVNX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTQKKyNkZWZpbmUgbW1KUEVHX0RFQ19DR0NfTUVNX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tSlBFRzJfREVDX0NHQ19NRU1fQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU1CisjZGVmaW5lIG1tSlBFRzJfREVDX0NHQ19NRU1fQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfRU5DX0NHQ19NRU1fQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlNgorI2RlZmluZSBtbUpQRUdfRU5DX0NHQ19NRU1fQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX1NPRlRfUkVTRVQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZTcKKyNkZWZpbmUgbW1KUEVHX1NPRlRfUkVTRVQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tSlBFR19QRVJGX0JBTktfQ09ORiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWU4CisjZGVmaW5lIG1tSlBFR19QRVJGX0JBTktfQ09ORl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfUEVSRl9CQU5LX0VWRU5UX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlOQorI2RlZmluZSBtbUpQRUdfUEVSRl9CQU5LX0VWRU5UX1NFTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX1BFUkZfQkFOS19DT1VOVDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWEKKyNkZWZpbmUgbW1KUEVHX1BFUkZfQkFOS19DT1VOVDBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIG1tSlBFR19QRVJGX0JBTktfQ09VTlQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWViCisjZGVmaW5lIG1tSlBFR19QRVJGX0JBTktfQ09VTlQxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBtbUpQRUdfUEVSRl9CQU5LX0NPVU5UMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFlYworI2RlZmluZSBtbUpQRUdfUEVSRl9CQU5LX0NPVU5UMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgbW1KUEVHX1BFUkZfQkFOS19DT1VOVDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxZWQKKyNkZWZpbmUgbW1KUEVHX1BFUkZfQkFOS19DT1VOVDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX3V2ZF9wZ19kZWMKKy8vIGJhc2UgYWRkcmVzczogMHgxZjgwMAorI2RlZmluZSBtbVVWRF9QR0ZTTV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBtbVVWRF9QR0ZTTV9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUEdGU01fU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgbW1VVkRfUEdGU01fU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1BPV0VSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIG1tVVZEX1BPV0VSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9QR19JTkRfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNQorI2RlZmluZSBtbVVWRF9QR19JTkRfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUEdfSU5EX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgbW1VVkRfUEdfSU5EX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tQ0NfVVZEX0hBUlZFU1RJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIG1tQ0NfVVZEX0hBUlZFU1RJTkdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9KUEVHX1BPV0VSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwYQorI2RlZmluZSBtbVVWRF9KUEVHX1BPV0VSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfRFBHX0xNQV9DVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTEKKyNkZWZpbmUgbW1VVkRfRFBHX0xNQV9DVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0RQR19MTUFfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEyCisjZGVmaW5lIG1tVVZEX0RQR19MTUFfREFUQV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9EUEdfTE1BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMworI2RlZmluZSBtbVVWRF9EUEdfTE1BX01BU0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfRFBHX1BBVVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTQKKyNkZWZpbmUgbW1VVkRfRFBHX1BBVVNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NDUkFUQ0gxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE1CisjZGVmaW5lIG1tVVZEX1NDUkFUQ0gxX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TQ1JBVENIMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxNgorI2RlZmluZSBtbVVWRF9TQ1JBVENIMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTcKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSDNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NDUkFUQ0g0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4CisjZGVmaW5lIG1tVVZEX1NDUkFUQ0g0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TQ1JBVENINSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxOQorI2RlZmluZSBtbVVWRF9TQ1JBVENINV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWEKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSDZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NDUkFUQ0g3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFiCisjZGVmaW5lIG1tVVZEX1NDUkFUQ0g3X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TQ1JBVENIOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxYworI2RlZmluZSBtbVVWRF9TQ1JBVENIOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMWQKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSDlfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NDUkFUQ0gxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFlCisjZGVmaW5lIG1tVVZEX1NDUkFUQ0gxMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TQ1JBVENIMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxZgorI2RlZmluZSBtbVVWRF9TQ1JBVENIMTFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSDEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSDEyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NDUkFUQ0gxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIxCisjZGVmaW5lIG1tVVZEX1NDUkFUQ0gxM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TQ1JBVENIMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMgorI2RlZmluZSBtbVVWRF9TQ1JBVENIMTRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfRlJFRV9DT1VOVEVSX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgbW1VVkRfRlJFRV9DT1VOVEVSX1JFR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0RQR19MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI1CisjZGVmaW5lIG1tVVZEX0RQR19MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9EUEdfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNgorI2RlZmluZSBtbVVWRF9EUEdfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfRFBHX1ZDUFVfQ0FDSEVfT0ZGU0VUMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjcKKyNkZWZpbmUgbW1VVkRfRFBHX1ZDUFVfQ0FDSEVfT0ZGU0VUMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0RQR19MTUlfVkNQVV9DQUNIRV9WTUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI4CisjZGVmaW5lIG1tVVZEX0RQR19MTUlfVkNQVV9DQUNIRV9WTUlEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9QRl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOQorI2RlZmluZSBtbVVWRF9QRl9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfRFBHX0NMS19FTl9WQ1BVX1JFUE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM2MKKyNkZWZpbmUgbW1VVkRfRFBHX0NMS19FTl9WQ1BVX1JFUE9SVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dGWDhfQUREUl9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ5CisjZGVmaW5lIG1tVVZEX0dGWDhfQUREUl9DT05GSUdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HRlgxMF9BRERSX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0YQorI2RlZmluZSBtbVVWRF9HRlgxMF9BRERSX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BDTlQyX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGIKKyNkZWZpbmUgbW1VVkRfR1BDTlQyX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQQ05UMl9UQVJHRVRfTE9XRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRjCisjZGVmaW5lIG1tVVZEX0dQQ05UMl9UQVJHRVRfTE9XRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUENOVDJfU1RBVFVTX0xPV0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0ZAorI2RlZmluZSBtbVVWRF9HUENOVDJfU1RBVFVTX0xPV0VSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BDTlQyX1RBUkdFVF9VUFBFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGUKKyNkZWZpbmUgbW1VVkRfR1BDTlQyX1RBUkdFVF9VUFBFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQQ05UMl9TVEFUVVNfVVBQRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRmCisjZGVmaW5lIG1tVVZEX0dQQ05UMl9TVEFUVVNfVVBQRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUENOVDNfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MAorI2RlZmluZSBtbVVWRF9HUENOVDNfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BDTlQzX1RBUkdFVF9MT1dFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTEKKyNkZWZpbmUgbW1VVkRfR1BDTlQzX1RBUkdFVF9MT1dFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQQ05UM19TVEFUVVNfTE9XRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDUyCisjZGVmaW5lIG1tVVZEX0dQQ05UM19TVEFUVVNfTE9XRVJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUENOVDNfVEFSR0VUX1VQUEVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MworI2RlZmluZSBtbVVWRF9HUENOVDNfVEFSR0VUX1VQUEVSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BDTlQzX1NUQVRVU19VUFBFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNTQKKyNkZWZpbmUgbW1VVkRfR1BDTlQzX1NUQVRVU19VUFBFUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX3V2ZGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDFmYTAwCisjZGVmaW5lIG1tVVZEX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwCisjZGVmaW5lIG1tVVZEX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9FTkNfUElQRV9CVVNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MQorI2RlZmluZSBtbVVWRF9FTkNfUElQRV9CVVNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU09GVF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODQKKyNkZWZpbmUgbW1VVkRfU09GVF9SRVNFVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NPRlRfUkVTRVQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg1CisjZGVmaW5lIG1tVVZEX1NPRlRfUkVTRVQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9NTVNDSF9TT0ZUX1JFU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4NgorI2RlZmluZSBtbVVWRF9NTVNDSF9TT0ZUX1JFU0VUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfQ0dDX0dBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODgKKyNkZWZpbmUgbW1VVkRfQ0dDX0dBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0NHQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg5CisjZGVmaW5lIG1tVVZEX0NHQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9DR0NfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4YQorI2RlZmluZSBtbVVWRF9DR0NfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfQ0dDX1VERUNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGIKKyNkZWZpbmUgbW1VVkRfQ0dDX1VERUNfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NVVkRfQ0dDX0dBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhjCisjZGVmaW5lIG1tVVZEX1NVVkRfQ0dDX0dBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TVVZEX0NHQ19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4ZAorI2RlZmluZSBtbVVWRF9TVVZEX0NHQ19TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU1VWRF9DR0NfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOGUKKyNkZWZpbmUgbW1VVkRfU1VWRF9DR0NfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQQ09NX1ZDUFVfQ01EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDhmCisjZGVmaW5lIG1tVVZEX0dQQ09NX1ZDUFVfQ01EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUENPTV9WQ1BVX0RBVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MAorI2RlZmluZSBtbVVWRF9HUENPTV9WQ1BVX0RBVEEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BDT01fVkNQVV9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTEKKyNkZWZpbmUgbW1VVkRfR1BDT01fVkNQVV9EQVRBMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQQ09NX1NZU19DTUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkyCisjZGVmaW5lIG1tVVZEX0dQQ09NX1NZU19DTURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUENPTV9TWVNfREFUQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MworI2RlZmluZSBtbVVWRF9HUENPTV9TWVNfREFUQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BDT01fU1lTX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTQKKyNkZWZpbmUgbW1VVkRfR1BDT01fU1lTX0RBVEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfSU5UX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDk1CisjZGVmaW5lIG1tVVZEX1ZDUFVfSU5UX0VOX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9WQ1BVX0lOVF9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5NworI2RlZmluZSBtbVVWRF9WQ1BVX0lOVF9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfVkNQVV9JTlRfUk9VVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTgKKyNkZWZpbmUgbW1VVkRfVkNQVV9JTlRfUk9VVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0VOQ19WQ1BVX0lOVF9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDllCisjZGVmaW5lIG1tVVZEX0VOQ19WQ1BVX0lOVF9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9FTkNfVkNQVV9JTlRfQUNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhMAorI2RlZmluZSBtbVVWRF9FTkNfVkNQVV9JTlRfQUNLX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTUFTVElOVF9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTEKKyNkZWZpbmUgbW1VVkRfTUFTVElOVF9FTl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NZU19JTlRfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGEyCisjZGVmaW5lIG1tVVZEX1NZU19JTlRfRU5fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TWVNfSU5UX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhMworI2RlZmluZSBtbVVWRF9TWVNfSU5UX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU1lTX0lOVF9BQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTQKKyNkZWZpbmUgbW1VVkRfU1lTX0lOVF9BQ0tfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0pPQl9ET05FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE1CisjZGVmaW5lIG1tVVZEX0pPQl9ET05FX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9DQlVGX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhNgorI2RlZmluZSBtbVVWRF9DQlVGX0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfQ09OVEVYVF9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYTcKKyNkZWZpbmUgbW1VVkRfQ09OVEVYVF9JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0NPTlRFWFRfSUQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGE4CisjZGVmaW5lIG1tVVZEX0NPTlRFWFRfSUQyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9OT19PUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhOQorI2RlZmluZSBtbVVWRF9OT19PUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWEKKyNkZWZpbmUgbW1VVkRfUkJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFiCisjZGVmaW5lIG1tVVZEX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYworI2RlZmluZSBtbVVWRF9SQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYWQKKyNkZWZpbmUgbW1VVkRfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGFlCisjZGVmaW5lIG1tVVZEX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQl9CQVNFX0xPMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhZgorI2RlZmluZSBtbVVWRF9SQl9CQVNFX0xPMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJfQkFTRV9ISTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjAKKyNkZWZpbmUgbW1VVkRfUkJfQkFTRV9ISTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCX1NJWkUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGIxCisjZGVmaW5lIG1tVVZEX1JCX1NJWkUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQl9SUFRSMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMgorI2RlZmluZSBtbVVWRF9SQl9SUFRSMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJfV1BUUjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjMKKyNkZWZpbmUgbW1VVkRfUkJfV1BUUjJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCX0JBU0VfTE8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI0CisjZGVmaW5lIG1tVVZEX1JCX0JBU0VfTE8zX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQl9CQVNFX0hJMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiNQorI2RlZmluZSBtbVVWRF9SQl9CQVNFX0hJM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJfU0laRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjYKKyNkZWZpbmUgbW1VVkRfUkJfU0laRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCX1JQVFIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGI3CisjZGVmaW5lIG1tVVZEX1JCX1JQVFIzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQl9XUFRSMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiOAorI2RlZmluZSBtbVVWRF9SQl9XUFRSM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJfQkFTRV9MTzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYjkKKyNkZWZpbmUgbW1VVkRfUkJfQkFTRV9MTzRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCX0JBU0VfSEk0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGJhCisjZGVmaW5lIG1tVVZEX1JCX0JBU0VfSEk0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQl9TSVpFNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiYgorI2RlZmluZSBtbVVWRF9SQl9TSVpFNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJfUlBUUjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYmMKKyNkZWZpbmUgbW1VVkRfUkJfUlBUUjRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCX1dQVFI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGJkCisjZGVmaW5lIG1tVVZEX1JCX1dQVFI0X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9PVVRfUkJfQkFTRV9MTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiZQorI2RlZmluZSBtbVVWRF9PVVRfUkJfQkFTRV9MT19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfT1VUX1JCX0JBU0VfSEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYmYKKyNkZWZpbmUgbW1VVkRfT1VUX1JCX0JBU0VfSElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX09VVF9SQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGMwCisjZGVmaW5lIG1tVVZEX09VVF9SQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9PVVRfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjMQorI2RlZmluZSBtbVVWRF9PVVRfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfT1VUX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzIKKyNkZWZpbmUgbW1VVkRfT1VUX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCX0FSQl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM2CisjZGVmaW5lIG1tVVZEX1JCX0FSQl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9DVFhfSU5ERVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjNworI2RlZmluZSBtbVVWRF9DVFhfSU5ERVhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfQ1RYX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwYzgKKyNkZWZpbmUgbW1VVkRfQ1RYX0RBVEFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0NYV19XUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGM5CisjZGVmaW5lIG1tVVZEX0NYV19XUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9DWFdfV1JfSU5UX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjYQorI2RlZmluZSBtbVVWRF9DWFdfV1JfSU5UX0lEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfQ1hXX1dSX0lOVF9DVFhfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwY2IKKyNkZWZpbmUgbW1VVkRfQ1hXX1dSX0lOVF9DVFhfSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0NYV19JTlRfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGNjCisjZGVmaW5lIG1tVVZEX0NYV19JTlRfSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9UT1BfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjZgorI2RlZmluZSBtbVVWRF9UT1BfQ1RSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfWUJBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZDAKKyNkZWZpbmUgbW1VVkRfWUJBU0VfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1VWQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQxCisjZGVmaW5lIG1tVVZEX1VWQkFTRV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9QSVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkMgorI2RlZmluZSBtbVVWRF9QSVRDSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfV0lEVEggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZDMKKyNkZWZpbmUgbW1VVkRfV0lEVEhfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0hFSUdIVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ0CisjZGVmaW5lIG1tVVZEX0hFSUdIVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9QSUNDT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkNQorI2RlZmluZSBtbVVWRF9QSUNDT1VOVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSF9OUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGIKKyNkZWZpbmUgbW1VVkRfU0NSQVRDSF9OUF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGRkCisjZGVmaW5lIG1tVVZEX1ZFUlNJT05fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBkZQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZGYKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUwCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlMQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTIKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0g1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGUzCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0g1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENINiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNAorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENINl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTUKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0g4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU2CisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0g4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlNworI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIOV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZTgKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDEwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGU5CisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gxMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlYQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMTJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWIKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDEzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVjCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gxNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBlZAorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMTVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZWUKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDE2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gxNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGVmCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gxN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmMAorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMThfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjEKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDE5X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGYyCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gyMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmMworI2RlZmluZSBtbVVWRF9HUF9TQ1JBVENIMjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZjQKKyNkZWZpbmUgbW1VVkRfR1BfU0NSQVRDSDIyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMGY1CisjZGVmaW5lIG1tVVZEX0dQX1NDUkFUQ0gyM19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF9lY3B1ZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MWZkMDAKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDAKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQxCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MgorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9TSVpFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDMKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9TSVpFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ0CisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0NQorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDYKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQzX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ3CisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0OAorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9TSVpFNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNDkKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9TSVpFNF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTRhCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUNV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkU1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0YgorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkU1X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQ2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNGMKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQ2X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTRkCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTZfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0ZQorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNFVDdfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9TSVpFNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNGYKKyNkZWZpbmUgbW1VVkRfVkNQVV9DQUNIRV9TSVpFN19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTUwCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUOF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1MQorI2RlZmluZSBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkU4X0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfVkNQVV9OT05DQUNIRV9PRkZTRVQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTIKKyNkZWZpbmUgbW1VVkRfVkNQVV9OT05DQUNIRV9PRkZTRVQwX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfTk9OQ0FDSEVfU0laRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTUzCisjZGVmaW5lIG1tVVZEX1ZDUFVfTk9OQ0FDSEVfU0laRTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9WQ1BVX05PTkNBQ0hFX09GRlNFVDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1NAorI2RlZmluZSBtbVVWRF9WQ1BVX05PTkNBQ0hFX09GRlNFVDFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfVkNQVV9OT05DQUNIRV9TSVpFMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTUKKyNkZWZpbmUgbW1VVkRfVkNQVV9OT05DQUNIRV9TSVpFMV9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU2CisjZGVmaW5lIG1tVVZEX1ZDUFVfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9WQ1BVX1BSSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1NworI2RlZmluZSBtbVVWRF9WQ1BVX1BSSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfVkNQVV9UUkNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTgKKyNkZWZpbmUgbW1VVkRfVkNQVV9UUkNFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1ZDUFVfVFJDRV9SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU5CisjZGVmaW5lIG1tVVZEX1ZDUFVfVFJDRV9SRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfbXBjZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MjAzMTAKKyNkZWZpbmUgbW1VVkRfTVBfU1dBUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzQKKyNkZWZpbmUgbW1VVkRfTVBfU1dBUF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX01QX1NXQVBfQ05UTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM1CisjZGVmaW5lIG1tVVZEX01QX1NXQVBfQ05UTDJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9NUENfTFVNQV9TUkNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjNgorI2RlZmluZSBtbVVWRF9NUENfTFVNQV9TUkNIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTVBDX0xVTUFfSElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyYzcKKyNkZWZpbmUgbW1VVkRfTVBDX0xVTUFfSElUX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX01QQ19MVU1BX0hJVFBFTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmM4CisjZGVmaW5lIG1tVVZEX01QQ19MVU1BX0hJVFBFTkRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9NUENfQ0hST01BX1NSQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjOQorI2RlZmluZSBtbVVWRF9NUENfQ0hST01BX1NSQ0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTVBDX0NIUk9NQV9ISVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyY2EKKyNkZWZpbmUgbW1VVkRfTVBDX0NIUk9NQV9ISVRfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX01QQ19DSFJPTUFfSElUUEVORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmNiCisjZGVmaW5lIG1tVVZEX01QQ19DSFJPTUFfSElUUEVORF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9NUENfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjYworI2RlZmluZSBtbVVWRF9NUENfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTVBDX1BJVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyY2QKKyNkZWZpbmUgbW1VVkRfTVBDX1BJVENIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX01QQ19TRVRfTVVYQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmNlCisjZGVmaW5lIG1tVVZEX01QQ19TRVRfTVVYQTBfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9NUENfU0VUX01VWEExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJjZgorI2RlZmluZSBtbVVWRF9NUENfU0VUX01VWEExX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTVBDX1NFVF9NVVhCMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDAKKyNkZWZpbmUgbW1VVkRfTVBDX1NFVF9NVVhCMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX01QQ19TRVRfTVVYQjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQxCisjZGVmaW5lIG1tVVZEX01QQ19TRVRfTVVYQjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9NUENfU0VUX01VWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkMgorI2RlZmluZSBtbVVWRF9NUENfU0VUX01VWF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTVBDX1NFVF9BTFUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDMKKyNkZWZpbmUgbW1VVkRfTVBDX1NFVF9BTFVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX01QQ19QRVJGMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmQ0CisjZGVmaW5lIG1tVVZEX01QQ19QRVJGMF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9NUENfUEVSRjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkNQorI2RlZmluZSBtbVVWRF9NUENfUEVSRjFfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IHV2ZDBfdXZkX3JiY2RlYworLy8gYmFzZSBhZGRyZXNzOiAweDIwMzcwCisjZGVmaW5lIG1tVVZEX1JCQ19JQl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmRjCisjZGVmaW5lIG1tVVZEX1JCQ19JQl9TSVpFX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQkNfSUJfU0laRV9VUERBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJkZAorI2RlZmluZSBtbVVWRF9SQkNfSUJfU0laRV9VUERBVEVfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJDX1JCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZGUKKyNkZWZpbmUgbW1VVkRfUkJDX1JCX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCQ19SQl9SUFRSX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmRmCisjZGVmaW5lIG1tVVZEX1JCQ19SQl9SUFRSX0FERFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQkNfUkJfUlBUUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlMAorI2RlZmluZSBtbVVWRF9SQkNfUkJfUlBUUl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJDX1JCX1dQVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTEKKyNkZWZpbmUgbW1VVkRfUkJDX1JCX1dQVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCQ19WQ1BVX0FDQ0VTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmUyCisjZGVmaW5lIG1tVVZEX1JCQ19WQ1BVX0FDQ0VTU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQkNfUkVBRF9SRVFfVVJHRU5UX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlNQorI2RlZmluZSBtbVVWRF9SQkNfUkVBRF9SRVFfVVJHRU5UX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJDX1JCX1dQVFJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTYKKyNkZWZpbmUgbW1VVkRfUkJDX1JCX1dQVFJfQ05UTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1JCQ19XUFRSX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU3CisjZGVmaW5lIG1tVVZEX1JCQ19XUFRSX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQkNfV1BUUl9QT0xMX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlOAorI2RlZmluZSBtbVVWRF9SQkNfV1BUUl9QT0xMX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfUkJDX1dQVFJfUE9MTF9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTkKKyNkZWZpbmUgbW1VVkRfUkJDX1dQVFJfUE9MTF9BRERSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NFTUFfQ01EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVhCisjZGVmaW5lIG1tVVZEX1NFTUFfQ01EX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TRU1BX0FERFJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlYgorI2RlZmluZSBtbVVWRF9TRU1BX0FERFJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU0VNQV9BRERSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWMKKyNkZWZpbmUgbW1VVkRfU0VNQV9BRERSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0VOR0lORV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmVkCisjZGVmaW5lIG1tVVZEX0VOR0lORV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TRU1BX1RJTUVPVVRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlZQorI2RlZmluZSBtbVVWRF9TRU1BX1RJTUVPVVRfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU0VNQV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZWYKKyNkZWZpbmUgbW1VVkRfU0VNQV9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYwCisjZGVmaW5lIG1tVVZEX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9TRU1BX1dBSVRfRkFVTFRfVElNRU9VVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMQorI2RlZmluZSBtbVVWRF9TRU1BX1dBSVRfRkFVTFRfVElNRU9VVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfU0VNQV9XQUlUX0lOQ09NUExFVEVfVElNRU9VVF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZjIKKyNkZWZpbmUgbW1VVkRfU0VNQV9XQUlUX0lOQ09NUExFVEVfVElNRU9VVF9DTlRMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0pPQl9TVEFSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYzCisjZGVmaW5lIG1tVVZEX0pPQl9TVEFSVF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9SQkNfQlVGX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmNAorI2RlZmluZSBtbVVWRF9SQkNfQlVGX1NUQVRVU19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisvLyBhZGRyZXNzQmxvY2s6IHV2ZDBfdXZkZ2VuZGVjCisvLyBiYXNlIGFkZHJlc3M6IDB4MjA0NzAKKyNkZWZpbmUgbW1VVkRfTENNX0NHQ19DTlRSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzM2YKKyNkZWZpbmUgbW1VVkRfTENNX0NHQ19DTlRSTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX01JRl9DVVJSX1VWX0FERFJfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2EwCisjZGVmaW5lIG1tVVZEX01JRl9DVVJSX1VWX0FERFJfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9NSUZfUkVGX1VWX0FERFJfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhMQorI2RlZmluZSBtbVVWRF9NSUZfUkVGX1VWX0FERFJfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTUlGX1JFQ09OMV9VVl9BRERSX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzYTIKKyNkZWZpbmUgbW1VVkRfTUlGX1JFQ09OMV9VVl9BRERSX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX01JRl9DVVJSX0FERFJfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2FlCisjZGVmaW5lIG1tVVZEX01JRl9DVVJSX0FERFJfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9NSUZfUkVGX0FERFJfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNhZgorI2RlZmluZSBtbVVWRF9NSUZfUkVGX0FERFJfQ09ORklHX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTUlGX1JFQ09OMV9BRERSX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzZTEKKyNkZWZpbmUgbW1VVkRfTUlGX1JFQ09OMV9BRERSX0NPTkZJR19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX2xtaV9hZHBkZWMKKy8vIGJhc2UgYWRkcmVzczogMHgyMDg3MAorI2RlZmluZSBtbVVWRF9MTUlfUkJDX1JCXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzMgorI2RlZmluZSBtbVVWRF9MTUlfUkJDX1JCXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1JCQ19SQl82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MzMKKyNkZWZpbmUgbW1VVkRfTE1JX1JCQ19SQl82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9SQkNfSUJfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDM0CisjZGVmaW5lIG1tVVZEX0xNSV9SQkNfSUJfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfUkJDX0lCXzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzNQorI2RlZmluZSBtbVVWRF9MTUlfUkJDX0lCXzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfTkMwXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MzgKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfTkMwXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX05DMF82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDM5CisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX05DMF82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9OQzFfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzYQorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9OQzFfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfTkMxXzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0M2IKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfTkMxXzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDNjCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQzZAorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUxXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NjgKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUxXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDY5CisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRThfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ2YQorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRThfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEU4XzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NmIKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEU4XzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDZjCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ2ZAorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUzXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NmUKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUzXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFM182NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDZmCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFM182NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRTRfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ3MAorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRTRfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEU0XzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NzEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEU0XzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFNV82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDcyCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFNV82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRTVfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ3MworI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRTVfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEU2XzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NzQKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEU2XzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFNl82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDc1CisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFNl82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRTdfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ3NgorI2RlZmluZSBtbVVWRF9MTUlfVkNQVV9DQUNIRTdfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEU3XzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0NzcKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEU3XzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9TUEhfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDdjCisjZGVmaW5lIG1tVVZEX0xNSV9TUEhfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkMwXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ3ZAorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkMwXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DMF82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0N2UKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DMF82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzFfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDdmCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzFfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkMxXzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ4MAorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkMxXzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DMl82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ODEKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DMl82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzJfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDgyCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzJfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkMzXzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ4MworI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkMzXzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DM182NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ODQKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DM182NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzRfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDg1CisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzRfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkM0XzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ4NgorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkM0XzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DNV82NEJJVF9CQVJfTE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0ODcKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DNV82NEJJVF9CQVJfTE9XX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzVfNjRCSVRfQkFSX0hJR0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDg4CisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzVfNjRCSVRfQkFSX0hJR0hfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkM2XzY0QklUX0JBUl9MT1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ4OQorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkM2XzY0QklUX0JBUl9MT1dfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DNl82NEJJVF9CQVJfSElHSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OGEKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DNl82NEJJVF9CQVJfSElHSF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzdfNjRCSVRfQkFSX0xPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDhiCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9OQzdfNjRCSVRfQkFSX0xPV19CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkM3XzY0QklUX0JBUl9ISUdIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ4YworI2RlZmluZSBtbVVWRF9MTUlfTU1TQ0hfTkM3XzY0QklUX0JBUl9ISUdIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DX1ZNSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OGQKKyNkZWZpbmUgbW1VVkRfTE1JX01NU0NIX05DX1ZNSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDhlCisjZGVmaW5lIG1tVVZEX0xNSV9NTVNDSF9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfQVJCX0NUUkwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQ5YQorI2RlZmluZSBtbVVWRF9MTUlfQVJCX0NUUkwyX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0OWYKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGEwCisjZGVmaW5lIG1tVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfTEFUX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRhMQorI2RlZmluZSBtbVVWRF9MTUlfTEFUX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX0xBVF9DTlRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YTIKKyNkZWZpbmUgbW1VVkRfTE1JX0xBVF9DTlRSX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9BVkdfTEFUX0NOVFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGEzCisjZGVmaW5lIG1tVVZEX0xNSV9BVkdfTEFUX0NOVFJfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfU1BIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRhNAorI2RlZmluZSBtbVVWRF9MTUlfU1BIX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YTUKKyNkZWZpbmUgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9DVFJMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGE2CisjZGVmaW5lIG1tVVZEX0xNSV9DVFJMMl9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfVVJHRU5UX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRhNworI2RlZmluZSBtbVVWRF9MTUlfVVJHRU5UX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YTgKKyNkZWZpbmUgbW1VVkRfTE1JX0NUUkxfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGE5CisjZGVmaW5lIG1tVVZEX0xNSV9TVEFUVVNfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfUEVSRk1PTl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRhYworI2RlZmluZSBtbVVWRF9MTUlfUEVSRk1PTl9DVFJMX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1BFUkZNT05fQ09VTlRfTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YWQKKyNkZWZpbmUgbW1VVkRfTE1JX1BFUkZNT05fQ09VTlRfTE9fQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9QRVJGTU9OX0NPVU5UX0hJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGFlCisjZGVmaW5lIG1tVVZEX0xNSV9QRVJGTU9OX0NPVU5UX0hJX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbVVWRF9MTUlfUkJDX1JCX1ZNSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRiMAorI2RlZmluZSBtbVVWRF9MTUlfUkJDX1JCX1ZNSURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1VVkRfTE1JX1JCQ19JQl9WTUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0YjEKKyNkZWZpbmUgbW1VVkRfTE1JX1JCQ19JQl9WTUlEX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tVVZEX0xNSV9NQ19DUkVESVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNGIyCisjZGVmaW5lIG1tVVZEX0xNSV9NQ19DUkVESVRTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRucGRlYworLy8gYmFzZSBhZGRyZXNzOiAweDIwYmQwCisjZGVmaW5lIG1tTURNX0RNQV9DTUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmY0CisjZGVmaW5lIG1tTURNX0RNQV9DTURfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1ETV9ETUFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZmNQorI2RlZmluZSBtbU1ETV9ETUFfU1RBVFVTX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgbW1NRE1fRE1BX0NUTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ZjYKKyNkZWZpbmUgbW1NRE1fRE1BX0NUTF9CQVNFX0lEWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIG1tTURNX0VOQ19QSVBFX0JVU1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNmY3CisjZGVmaW5lIG1tTURNX0VOQ19QSVBFX0JVU1lfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBtbU1ETV9XSUdfUElQRV9CVVNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDZmOQorI2RlZmluZSBtbU1ETV9XSUdfUElQRV9CVVNZX0JBU0VfSURYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy92Y24vdmNuXzJfNV9zaF9tYXNrLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvdmNuL3Zjbl8yXzVfc2hfbWFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0MWM1OWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvdmNuL3Zjbl8yXzVfc2hfbWFzay5oCkBAIC0wLDAgKzEsMzYwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIF92Y25fMl81X1NIX01BU0tfSEVBREVSCisjZGVmaW5lIF92Y25fMl81X1NIX01BU0tfSEVBREVSCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF9tbXNjaF9kZWMKKy8vTU1TQ0hfVUNPREVfQUREUgorI2RlZmluZSBNTVNDSF9VQ09ERV9BRERSX19VQ09ERV9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1TQ0hfVUNPREVfQUREUl9fVUNPREVfTE9DS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTVNDSF9VQ09ERV9BRERSX19VQ09ERV9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRkZDTAorI2RlZmluZSBNTVNDSF9VQ09ERV9BRERSX19VQ09ERV9MT0NLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTVNDSF9VQ09ERV9EQVRBCisjZGVmaW5lIE1NU0NIX1VDT0RFX0RBVEFfX1VDT0RFX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9VQ09ERV9EQVRBX19VQ09ERV9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9TUkFNX0FERFIKKyNkZWZpbmUgTU1TQ0hfU1JBTV9BRERSX19TUkFNX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1NU0NIX1NSQU1fQUREUl9fU1JBTV9MT0NLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1TQ0hfU1JBTV9BRERSX19TUkFNX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGQ0wKKyNkZWZpbmUgTU1TQ0hfU1JBTV9BRERSX19TUkFNX0xPQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1TQ0hfU1JBTV9EQVRBCisjZGVmaW5lIE1NU0NIX1NSQU1fREFUQV9fU1JBTV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9TUkFNX0RBVEFfX1NSQU1fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9WRl9TUkFNX09GRlNFVAorI2RlZmluZSBNTVNDSF9WRl9TUkFNX09GRlNFVF9fVkZfU1JBTV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1TQ0hfVkZfU1JBTV9PRkZTRVRfX1ZGX1NSQU1fTlVNX0RXX1BFUl9WRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTVNDSF9WRl9TUkFNX09GRlNFVF9fVkZfU1JBTV9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZDTAorI2RlZmluZSBNTVNDSF9WRl9TUkFNX09GRlNFVF9fVkZfU1JBTV9OVU1fRFdfUEVSX1ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9NTVNDSF9EQl9TUkFNX09GRlNFVAorI2RlZmluZSBNTVNDSF9EQl9TUkFNX09GRlNFVF9fREJfU1JBTV9PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1TQ0hfREJfU1JBTV9PRkZTRVRfX0RCX1NSQU1fTlVNX0VOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTVNDSF9EQl9TUkFNX09GRlNFVF9fREJfU1JBTV9OVU1fUklOR19QRVJfRU5HX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIE1NU0NIX0RCX1NSQU1fT0ZGU0VUX19EQl9TUkFNX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkNMCisjZGVmaW5lIE1NU0NIX0RCX1NSQU1fT0ZGU0VUX19EQl9TUkFNX05VTV9FTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIE1NU0NIX0RCX1NSQU1fT0ZGU0VUX19EQl9TUkFNX05VTV9SSU5HX1BFUl9FTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDBMCisvL01NU0NIX0NUWF9TUkFNX09GRlNFVAorI2RlZmluZSBNTVNDSF9DVFhfU1JBTV9PRkZTRVRfX0NUWF9TUkFNX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTU1TQ0hfQ1RYX1NSQU1fT0ZGU0VUX19DVFhfU1JBTV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTVNDSF9DVFhfU1JBTV9PRkZTRVRfX0NUWF9TUkFNX09GRlNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZDTAorI2RlZmluZSBNTVNDSF9DVFhfU1JBTV9PRkZTRVRfX0NUWF9TUkFNX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9NTVNDSF9DVEwKKyNkZWZpbmUgTU1TQ0hfQ1RMX19QX1JVTlNUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0NUTF9fUF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNTVNDSF9DVExfX1ZGSURfRklGT19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1TQ0hfQ1RMX19QX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBNTVNDSF9DVExfX1BfUlVOU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTVNDSF9DVExfX1BfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTVNDSF9DVExfX1ZGSURfRklGT19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTVNDSF9DVExfX1BfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9NTVNDSF9JTlRSCisjZGVmaW5lIE1NU0NIX0lOVFJfX0lOVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9JTlRSX19JTlRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRkZGTAorLy9NTVNDSF9JTlRSX0FDSworI2RlZmluZSBNTVNDSF9JTlRSX0FDS19fSU5UUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfSU5UUl9BQ0tfX0lOVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUZGRkwKKy8vTU1TQ0hfSU5UUl9TVEFUVVMKKyNkZWZpbmUgTU1TQ0hfSU5UUl9TVEFUVVNfX0lOVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0lOVFJfU1RBVFVTX19JTlRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDFGRkZMCisvL01NU0NIX1ZGX1ZNSUQKKyNkZWZpbmUgTU1TQ0hfVkZfVk1JRF9fVkZfQ1RYX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1ZGX1ZNSURfX1ZGX0dQQ09NX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTVNDSF9WRl9WTUlEX19WRl9DVFhfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBNTVNDSF9WRl9WTUlEX19WRl9HUENPTV9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0UwTAorLy9NTVNDSF9WRl9DVFhfQUREUl9MTworI2RlZmluZSBNTVNDSF9WRl9DVFhfQUREUl9MT19fVkZfQ1RYX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1TQ0hfVkZfQ1RYX0FERFJfTE9fX1ZGX0NUWF9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZDMEwKKy8vTU1TQ0hfVkZfQ1RYX0FERFJfSEkKKyNkZWZpbmUgTU1TQ0hfVkZfQ1RYX0FERFJfSElfX1ZGX0NUWF9BRERSX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1ZGX0NUWF9BRERSX0hJX19WRl9DVFhfQUREUl9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX1ZGX0NUWF9TSVpFCisjZGVmaW5lIE1NU0NIX1ZGX0NUWF9TSVpFX19WRl9DVFhfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9WRl9DVFhfU0laRV9fVkZfQ1RYX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9WRl9HUENPTV9BRERSX0xPCisjZGVmaW5lIE1NU0NIX1ZGX0dQQ09NX0FERFJfTE9fX1ZGX0dQQ09NX0FERFJfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTVNDSF9WRl9HUENPTV9BRERSX0xPX19WRl9HUENPTV9BRERSX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkMwTAorLy9NTVNDSF9WRl9HUENPTV9BRERSX0hJCisjZGVmaW5lIE1NU0NIX1ZGX0dQQ09NX0FERFJfSElfX1ZGX0dQQ09NX0FERFJfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9WRl9HUENPTV9BRERSX0hJX19WRl9HUENPTV9BRERSX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9WRl9HUENPTV9TSVpFCisjZGVmaW5lIE1NU0NIX1ZGX0dQQ09NX1NJWkVfX1ZGX0dQQ09NX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9WRl9HUENPTV9TSVpFX19WRl9HUENPTV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9WRl9NQUlMQk9YX0hPU1QKKyNkZWZpbmUgTU1TQ0hfVkZfTUFJTEJPWF9IT1NUX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1ZGX01BSUxCT1hfSE9TVF9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX1ZGX01BSUxCT1hfUkVTUAorI2RlZmluZSBNTVNDSF9WRl9NQUlMQk9YX1JFU1BfX1JFU1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfVkZfTUFJTEJPWF9SRVNQX19SRVNQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfVkZfTUFJTEJPWF8wCisjZGVmaW5lIE1NU0NIX1ZGX01BSUxCT1hfMF9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9WRl9NQUlMQk9YXzBfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9WRl9NQUlMQk9YXzBfUkVTUAorI2RlZmluZSBNTVNDSF9WRl9NQUlMQk9YXzBfUkVTUF9fUkVTUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfVkZfTUFJTEJPWF8wX1JFU1BfX1JFU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfVkZfTUFJTEJPWF8xCisjZGVmaW5lIE1NU0NIX1ZGX01BSUxCT1hfMV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9WRl9NQUlMQk9YXzFfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9WRl9NQUlMQk9YXzFfUkVTUAorI2RlZmluZSBNTVNDSF9WRl9NQUlMQk9YXzFfUkVTUF9fUkVTUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfVkZfTUFJTEJPWF8xX1JFU1BfX1JFU1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfQ05UTAorI2RlZmluZSBNTVNDSF9DTlRMX19DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfQ05UTF9fRURfRU5BQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1NU0NIX0NOVExfX01NU0NIX0lSUV9FUlJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTVNDSF9DTlRMX19NTVNDSF9OQUNLX0lOVFJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTU1TQ0hfQ05UTF9fTU1TQ0hfREJfQlVTWV9JTlRSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1NU0NIX0NOVExfX1BSQl9USU1FT1VUX1ZBTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTU1TQ0hfQ05UTF9fVElNRU9VVF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNTVNDSF9DTlRMX19DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNTVNDSF9DTlRMX19FRF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNTVNDSF9DTlRMX19NTVNDSF9JUlFfRVJSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUUwTAorI2RlZmluZSBNTVNDSF9DTlRMX19NTVNDSF9OQUNLX0lOVFJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNTVNDSF9DTlRMX19NTVNDSF9EQl9CVVNZX0lOVFJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNTVNDSF9DTlRMX19QUkJfVElNRU9VVF9WQUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRjAwMDAwTAorI2RlZmluZSBNTVNDSF9DTlRMX19USU1FT1VUX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9NTVNDSF9OT05DQUNIRV9PRkZTRVQwCisjZGVmaW5lIE1NU0NIX05PTkNBQ0hFX09GRlNFVDBfX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9OT05DQUNIRV9PRkZTRVQwX19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGRkZGRkZGTAorLy9NTVNDSF9OT05DQUNIRV9TSVpFMAorI2RlZmluZSBNTVNDSF9OT05DQUNIRV9TSVpFMF9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfTk9OQ0FDSEVfU0laRTBfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGRkZGRkwKKy8vTU1TQ0hfTk9OQ0FDSEVfT0ZGU0VUMQorI2RlZmluZSBNTVNDSF9OT05DQUNIRV9PRkZTRVQxX19PRkZTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfTk9OQ0FDSEVfT0ZGU0VUMV9fT0ZGU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGRkwKKy8vTU1TQ0hfTk9OQ0FDSEVfU0laRTEKKyNkZWZpbmUgTU1TQ0hfTk9OQ0FDSEVfU0laRTFfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX05PTkNBQ0hFX1NJWkUxX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRkZMCisvL01NU0NIX1BST0NfU1RBVEUxCisjZGVmaW5lIE1NU0NIX1BST0NfU1RBVEUxX19QQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9QUk9DX1NUQVRFMV9fUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9MQVNUX01DX0FERFIKKyNkZWZpbmUgTU1TQ0hfTEFTVF9NQ19BRERSX19NQ19BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0xBU1RfTUNfQUREUl9fUldfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1TQ0hfTEFTVF9NQ19BRERSX19NQ19BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGRkwKKyNkZWZpbmUgTU1TQ0hfTEFTVF9NQ19BRERSX19SV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1TQ0hfTEFTVF9NRU1fQUNDRVNTX0hJCisjZGVmaW5lIE1NU0NIX0xBU1RfTUVNX0FDQ0VTU19ISV9fUFJPQ19DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9MQVNUX01FTV9BQ0NFU1NfSElfX0ZJRk9fUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1TQ0hfTEFTVF9NRU1fQUNDRVNTX0hJX19GSUZPX1dQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIE1NU0NIX0xBU1RfTUVNX0FDQ0VTU19ISV9fUFJPQ19DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIE1NU0NIX0xBU1RfTUVNX0FDQ0VTU19ISV9fRklGT19SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDBMCisjZGVmaW5lIE1NU0NIX0xBU1RfTUVNX0FDQ0VTU19ISV9fRklGT19XUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisvL01NU0NIX0xBU1RfTUVNX0FDQ0VTU19MTworI2RlZmluZSBNTVNDSF9MQVNUX01FTV9BQ0NFU1NfTE9fX1BST0NfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfTEFTVF9NRU1fQUNDRVNTX0xPX19QUk9DX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfSU9WX0FDVElWRV9GQ05fSUQKKyNkZWZpbmUgTU1TQ0hfSU9WX0FDVElWRV9GQ05fSURfX0FDVElWRV9WRl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0lPVl9BQ1RJVkVfRkNOX0lEX19BQ1RJVkVfUEZfVkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgTU1TQ0hfSU9WX0FDVElWRV9GQ05fSURfX0FDVElWRV9WRl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKyNkZWZpbmUgTU1TQ0hfSU9WX0FDVElWRV9GQ05fSURfX0FDVElWRV9QRl9WRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vTU1TQ0hfU0NSQVRDSF8wCisjZGVmaW5lIE1NU0NIX1NDUkFUQ0hfMF9fU0NSQVRDSF8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9TQ1JBVENIXzBfX1NDUkFUQ0hfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9TQ1JBVENIXzEKKyNkZWZpbmUgTU1TQ0hfU0NSQVRDSF8xX19TQ1JBVENIXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1NDUkFUQ0hfMV9fU0NSQVRDSF8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLXzBfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS18wX19WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMF9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLXzBfX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLXzBfX1ZFUlNJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLXzBfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9NTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMF9fQ01EX1RZUEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzBfX0NNRF9FWEVDVVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTURfQ09OVFJPTF8wX19DTURfRVhFQ1VURV9JTlRSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMF9fVk1fQlVTWV9JTlRSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzBfX0ZVTkNUSU5PX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTURfQ09OVFJPTF8wX19ORVhUX0ZVTkNUSU5PX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzBfX0NNRF9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzBfX0NNRF9FWEVDVVRFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzBfX0NNRF9FWEVDVVRFX0lOVFJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzBfX1ZNX0JVU1lfSU5UUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzBfX0ZVTkNUSU5PX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzBfX05FWFRfRlVOQ1RJTk9fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKy8vTU1TQ0hfR1BVSU9WX0NNRF9TVEFUVVNfMAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX1NUQVRVU18wX19DTURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9TVEFUVVNfMF9fQ01EX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vTU1TQ0hfR1BVSU9WX1ZNX0JVU1lfU1RBVFVTXzAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1ZNX0JVU1lfU1RBVFVTXzBfX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9WTV9CVVNZX1NUQVRVU18wX19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOU18wCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOU18wX19BQ1RJVkVfRkNOU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTlNfMF9fQUNUSVZFX0ZDTlNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF8wCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEXzBfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF8wX19JRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfMF9fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfMF9fSURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKy8vTU1TQ0hfR1BVSU9WX0RXNl8wCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9EVzZfMF9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfRFc2XzBfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9HUFVJT1ZfRFc3XzAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0RXN18wX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9EVzdfMF9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX0dQVUlPVl9EVzhfMAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfRFc4XzBfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0RXOF8wX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS18xCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMV9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLXzFfX1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS18xX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMV9fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMV9fVkVSU0lPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMV9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL01NU0NIX0dQVUlPVl9DTURfQ09OVFJPTF8xCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTURfQ09OVFJPTF8xX19DTURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMV9fQ01EX0VYRUNVVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzFfX0NNRF9FWEVDVVRFX0lOVFJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTURfQ09OVFJPTF8xX19WTV9CVVNZX0lOVFJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMV9fRlVOQ1RJTk9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzFfX05FWFRfRlVOQ1RJTk9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMV9fQ01EX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMV9fQ01EX0VYRUNVVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMV9fQ01EX0VYRUNVVEVfSU5UUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMV9fVk1fQlVTWV9JTlRSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMV9fRlVOQ1RJTk9fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMV9fTkVYVF9GVU5DVElOT19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9NTVNDSF9HUFVJT1ZfQ01EX1NUQVRVU18xCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTURfU1RBVFVTXzFfX0NNRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX1NUQVRVU18xX19DTURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NTVNDSF9HUFVJT1ZfVk1fQlVTWV9TVEFUVVNfMQorI2RlZmluZSBNTVNDSF9HUFVJT1ZfVk1fQlVTWV9TVEFUVVNfMV9fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1ZNX0JVU1lfU1RBVFVTXzFfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05TXzEKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05TXzFfX0FDVElWRV9GQ05TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOU18xX19BQ1RJVkVfRkNOU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEXzEKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfMV9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEXzFfX0lEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF8xX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF8xX19JRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorLy9NTVNDSF9HUFVJT1ZfRFc2XzEKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0RXNl8xX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9EVzZfMV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX0dQVUlPVl9EVzdfMQorI2RlZmluZSBNTVNDSF9HUFVJT1ZfRFc3XzFfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0RXN18xX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfR1BVSU9WX0RXOF8xCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9EVzhfMV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfRFc4XzFfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9HUFVJT1ZfQ05UWFQKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NOVFhUX19DTlRYVF9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTlRYVF9fQ05UWFRfTE9DQVRJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ05UWFRfX0NOVFhUX09GRlNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NOVFhUX19DTlRYVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NOVFhUX19DTlRYVF9MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NOVFhUX19DTlRYVF9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkMwMEwKKy8vTU1TQ0hfU0NSQVRDSF8yCisjZGVmaW5lIE1NU0NIX1NDUkFUQ0hfMl9fU0NSQVRDSF8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9TQ1JBVENIXzJfX1NDUkFUQ0hfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9TQ1JBVENIXzMKKyNkZWZpbmUgTU1TQ0hfU0NSQVRDSF8zX19TQ1JBVENIXzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1NDUkFUQ0hfM19fU0NSQVRDSF8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX1NDUkFUQ0hfNAorI2RlZmluZSBNTVNDSF9TQ1JBVENIXzRfX1NDUkFUQ0hfNF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfU0NSQVRDSF80X19TQ1JBVENIXzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfU0NSQVRDSF81CisjZGVmaW5lIE1NU0NIX1NDUkFUQ0hfNV9fU0NSQVRDSF81X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9TQ1JBVENIXzVfX1NDUkFUQ0hfNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9TQ1JBVENIXzYKKyNkZWZpbmUgTU1TQ0hfU0NSQVRDSF82X19TQ1JBVENIXzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1NDUkFUQ0hfNl9fU0NSQVRDSF82X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX1NDUkFUQ0hfNworI2RlZmluZSBNTVNDSF9TQ1JBVENIXzdfX1NDUkFUQ0hfN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfU0NSQVRDSF83X19TQ1JBVENIXzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfVkZJRF9GSUZPX0hFQURfMAorI2RlZmluZSBNTVNDSF9WRklEX0ZJRk9fSEVBRF8wX19IRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfVkZJRF9GSUZPX0hFQURfMF9fSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1TQ0hfVkZJRF9GSUZPX1RBSUxfMAorI2RlZmluZSBNTVNDSF9WRklEX0ZJRk9fVEFJTF8wX19UQUlMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfVkZJRF9GSUZPX1RBSUxfMF9fVEFJTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1TQ0hfVkZJRF9GSUZPX0hFQURfMQorI2RlZmluZSBNTVNDSF9WRklEX0ZJRk9fSEVBRF8xX19IRUFEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfVkZJRF9GSUZPX0hFQURfMV9fSEVBRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1TQ0hfVkZJRF9GSUZPX1RBSUxfMQorI2RlZmluZSBNTVNDSF9WRklEX0ZJRk9fVEFJTF8xX19UQUlMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfVkZJRF9GSUZPX1RBSUxfMV9fVEFJTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKy8vTU1TQ0hfTkFDS19TVEFUVVMKKyNkZWZpbmUgTU1TQ0hfTkFDS19TVEFUVVNfX1dSX05BQ0tfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX05BQ0tfU1RBVFVTX19SRF9OQUNLX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNTVNDSF9OQUNLX1NUQVRVU19fV1JfTkFDS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBNTVNDSF9OQUNLX1NUQVRVU19fUkRfTkFDS19TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorLy9NTVNDSF9WRl9NQUlMQk9YMF9EQVRBCisjZGVmaW5lIE1NU0NIX1ZGX01BSUxCT1gwX0RBVEFfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9WRl9NQUlMQk9YMF9EQVRBX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9WRl9NQUlMQk9YMV9EQVRBCisjZGVmaW5lIE1NU0NIX1ZGX01BSUxCT1gxX0RBVEFfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9WRl9NQUlMQk9YMV9EQVRBX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9HUFVJT1ZfU0NIX0JMT0NLX0lQXzAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS19JUF8wX19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfSVBfMF9fVkVSU0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLX0lQXzBfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS19JUF8wX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS19JUF8wX19WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS19JUF8wX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vTU1TQ0hfR1BVSU9WX0NNRF9TVEFUVVNfSVBfMAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX1NUQVRVU19JUF8wX19DTURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9TVEFUVVNfSVBfMF9fQ01EX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfSVBfMAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF9JUF8wX19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfSVBfMF9fSURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEX0lQXzBfX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEX0lQXzBfX0lEX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisvL01NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfSVBfMQorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLX0lQXzFfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS19JUF8xX19WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfSVBfMV9fU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLX0lQXzFfX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLX0lQXzFfX1ZFUlNJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLX0lQXzFfX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorLy9NTVNDSF9HUFVJT1ZfQ01EX1NUQVRVU19JUF8xCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTURfU1RBVFVTX0lQXzFfX0NNRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX1NUQVRVU19JUF8xX19DTURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF9JUF8xCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEX0lQXzFfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF9JUF8xX19JRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfSVBfMV9fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfSVBfMV9fSURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKy8vTU1TQ0hfR1BVSU9WX0NOVFhUX0lQCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTlRYVF9JUF9fQ05UWFRfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ05UWFRfSVBfX0NOVFhUX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NOVFhUX0lQX19DTlRYVF9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3RkwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NOVFhUX0lQX19DTlRYVF9MT0NBVElPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKy8vTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS18yCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMl9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLXzJfX1ZFUlNJT05fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS18yX19TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMl9fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMl9fVkVSU0lPTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfMl9fU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL01NU0NIX0dQVUlPVl9DTURfQ09OVFJPTF8yCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTURfQ09OVFJPTF8yX19DTURfVFlQRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMl9fQ01EX0VYRUNVVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzJfX0NNRF9FWEVDVVRFX0lOVFJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTURfQ09OVFJPTF8yX19WTV9CVVNZX0lOVFJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMl9fRlVOQ1RJTk9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9DT05UUk9MXzJfX05FWFRfRlVOQ1RJTk9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMl9fQ01EX1RZUEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMl9fQ01EX0VYRUNVVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMl9fQ01EX0VYRUNVVEVfSU5UUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMl9fVk1fQlVTWV9JTlRSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMl9fRlVOQ1RJTk9fSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX0NPTlRST0xfMl9fTkVYVF9GVU5DVElOT19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorLy9NTVNDSF9HUFVJT1ZfQ01EX1NUQVRVU18yCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9DTURfU1RBVFVTXzJfX0NNRF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX1NUQVRVU18yX19DTURfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9NTVNDSF9HUFVJT1ZfVk1fQlVTWV9TVEFUVVNfMgorI2RlZmluZSBNTVNDSF9HUFVJT1ZfVk1fQlVTWV9TVEFUVVNfMl9fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1ZNX0JVU1lfU1RBVFVTXzJfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05TXzIKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05TXzJfX0FDVElWRV9GQ05TX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOU18yX19BQ1RJVkVfRkNOU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEXzIKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfMl9fSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEXzJfX0lEX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF8yX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF8yX19JRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorLy9NTVNDSF9HUFVJT1ZfRFc2XzIKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0RXNl8yX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9EVzZfMl9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX0dQVUlPVl9EVzdfMgorI2RlZmluZSBNTVNDSF9HUFVJT1ZfRFc3XzJfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0RXN18yX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTU1TQ0hfR1BVSU9WX0RXOF8yCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9EVzhfMl9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfRFc4XzJfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9NTVNDSF9HUFVJT1ZfU0NIX0JMT0NLX0lQXzIKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS19JUF8yX19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9TQ0hfQkxPQ0tfSVBfMl9fVkVSU0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNTVNDSF9HUFVJT1ZfU0NIX0JMT0NLX0lQXzJfX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS19JUF8yX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS19JUF8yX19WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX1NDSF9CTE9DS19JUF8yX19TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKy8vTU1TQ0hfR1BVSU9WX0NNRF9TVEFUVVNfSVBfMgorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQ01EX1NUQVRVU19JUF8yX19DTURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0NNRF9TVEFUVVNfSVBfMl9fQ01EX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfSVBfMgorI2RlZmluZSBNTVNDSF9HUFVJT1ZfQUNUSVZFX0ZDTl9JRF9JUF8yX19JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTU1TQ0hfR1BVSU9WX0FDVElWRV9GQ05fSURfSVBfMl9fSURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEX0lQXzJfX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIE1NU0NIX0dQVUlPVl9BQ1RJVkVfRkNOX0lEX0lQXzJfX0lEX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisvL01NU0NIX1ZGSURfRklGT19IRUFEXzIKKyNkZWZpbmUgTU1TQ0hfVkZJRF9GSUZPX0hFQURfMl9fSEVBRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1ZGSURfRklGT19IRUFEXzJfX0hFQURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL01NU0NIX1ZGSURfRklGT19UQUlMXzIKKyNkZWZpbmUgTU1TQ0hfVkZJRF9GSUZPX1RBSUxfMl9fVEFJTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1ZGSURfRklGT19UQUlMXzJfX1RBSUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisvL01NU0NIX1ZNX0JVU1lfU1RBVFVTXzAKKyNkZWZpbmUgTU1TQ0hfVk1fQlVTWV9TVEFUVVNfMF9fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1ZNX0JVU1lfU1RBVFVTXzBfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX1ZNX0JVU1lfU1RBVFVTXzEKKyNkZWZpbmUgTU1TQ0hfVk1fQlVTWV9TVEFUVVNfMV9fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1ZNX0JVU1lfU1RBVFVTXzFfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL01NU0NIX1ZNX0JVU1lfU1RBVFVTXzIKKyNkZWZpbmUgTU1TQ0hfVk1fQlVTWV9TVEFUVVNfMl9fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1NU0NIX1ZNX0JVU1lfU1RBVFVTXzJfX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX2pwZWducGRlYworLy9VVkRfSlBFR19DTlRMCisjZGVmaW5lIFVWRF9KUEVHX0NOVExfX1JFUVVFU1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfSlBFR19DTlRMX19FUlJfUlNUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0pQRUdfQ05UTF9fSFVGRl9TUEVFRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9KUEVHX0NOVExfX0hVRkZfU1BFRURfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSlBFR19DTlRMX19EQkdfTVVYX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0pQRUdfQ05UTF9fUkVRVUVTVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0pQRUdfQ05UTF9fRVJSX1JTVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX0pQRUdfQ05UTF9fSFVGRl9TUEVFRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVVZEX0pQRUdfQ05UTF9fSFVGRl9TUEVFRF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgVVZEX0pQRUdfQ05UTF9fREJHX01VWF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0YwMEwKKy8vVVZEX0pQRUdfUkJfQkFTRQorI2RlZmluZSBVVkRfSlBFR19SQl9CQVNFX19SQl9CWVRFX09GRl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfUkJfQkFTRV9fUkJfQkFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9KUEVHX1JCX0JBU0VfX1JCX0JZVEVfT0ZGX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFVWRF9KUEVHX1JCX0JBU0VfX1JCX0JBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGQzBMCisvL1VWRF9KUEVHX1JCX1dQVFIKKyNkZWZpbmUgVVZEX0pQRUdfUkJfV1BUUl9fUkJfV1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9KUEVHX1JCX1dQVFJfX1JCX1dQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRkZGRjBMCisvL1VWRF9KUEVHX1JCX1JQVFIKKyNkZWZpbmUgVVZEX0pQRUdfUkJfUlBUUl9fUkJfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9KUEVHX1JCX1JQVFJfX1JCX1JQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRkZGRjBMCisvL1VWRF9KUEVHX1JCX1NJWkUKKyNkZWZpbmUgVVZEX0pQRUdfUkJfU0laRV9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9KUEVHX1JCX1NJWkVfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0ZGRkZGRjBMCisvL1VWRF9KUEVHX0RFQ19TQ1JBVENIMAorI2RlZmluZSBVVkRfSlBFR19ERUNfU0NSQVRDSDBfX1NDUkFUQ0gwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfREVDX1NDUkFUQ0gwX19TQ1JBVENIMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0pQRUdfSU5UX0VOCisjZGVmaW5lIFVWRF9KUEVHX0lOVF9FTl9fT1VUQlVGX1dQVFJfSU5DX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0pPQl9BVkFJTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX0VOX19GRU5DRV9WQUxfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9KUEVHX0lOVF9FTl9fRklGT19PVkVSRkxPV19FUlJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0JMS19DTlRfT1VUX09GX1NZTkNfRVJSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX0VOX19FT0lfRVJSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9KUEVHX0lOVF9FTl9fSEZNX0VSUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX1JTVF9FUlJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX0VOX19FQ1NfTUtfRVJSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFVWRF9KUEVHX0lOVF9FTl9fVElNRU9VVF9FUlJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX01BUktFUl9FUlJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX0VOX19GTVRfRVJSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFVWRF9KUEVHX0lOVF9FTl9fUFJPRklMRV9FUlJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX09VVEJVRl9XUFRSX0lOQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0pPQl9BVkFJTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0ZFTkNFX1ZBTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0ZJRk9fT1ZFUkZMT1dfRVJSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0JMS19DTlRfT1VUX09GX1NZTkNfRVJSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0VPSV9FUlJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0hGTV9FUlJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX1JTVF9FUlJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0VDU19NS19FUlJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX1RJTUVPVVRfRVJSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX01BUktFUl9FUlJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX0ZNVF9FUlJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBVVkRfSlBFR19JTlRfRU5fX1BST0ZJTEVfRVJSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorLy9VVkRfSlBFR19JTlRfU1RBVAorI2RlZmluZSBVVkRfSlBFR19JTlRfU1RBVF9fT1VUQlVGX1dQVFJfSU5DX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0pPQl9BVkFJTF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9KUEVHX0lOVF9TVEFUX19GRU5DRV9WQUxfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfSlBFR19JTlRfU1RBVF9fRklGT19PVkVSRkxPV19FUlJfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0JMS19DTlRfT1VUX09GX1NZTkNfRVJSX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFVWRF9KUEVHX0lOVF9TVEFUX19FT0lfRVJSX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfSlBFR19JTlRfU1RBVF9fSEZNX0VSUl9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX1JTVF9FUlJfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFVWRF9KUEVHX0lOVF9TVEFUX19FQ1NfTUtfRVJSX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBVVkRfSlBFR19JTlRfU1RBVF9fVElNRU9VVF9FUlJfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX01BUktFUl9FUlJfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFVWRF9KUEVHX0lOVF9TVEFUX19GTVRfRVJSX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBVVkRfSlBFR19JTlRfU1RBVF9fUFJPRklMRV9FUlJfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX09VVEJVRl9XUFRSX0lOQ19JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0pPQl9BVkFJTF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0ZFTkNFX1ZBTF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0ZJRk9fT1ZFUkZMT1dfRVJSX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0JMS19DTlRfT1VUX09GX1NZTkNfRVJSX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0VPSV9FUlJfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0hGTV9FUlJfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX1JTVF9FUlJfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0VDU19NS19FUlJfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX1RJTUVPVVRfRVJSX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX01BUktFUl9FUlJfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX0ZNVF9FUlJfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVVZEX0pQRUdfSU5UX1NUQVRfX1BST0ZJTEVfRVJSX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKy8vVVZEX0pQRUdfUElUQ0gKKyNkZWZpbmUgVVZEX0pQRUdfUElUQ0hfX1BJVENIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX1BJVENIX19QSVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUEVHX1VWX1BJVENICisjZGVmaW5lIFVWRF9KUEVHX1VWX1BJVENIX19VVl9QSVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlBFR19VVl9QSVRDSF9fVVZfUElUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9KUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0UKKyNkZWZpbmUgSlBFR19ERUNfWV9HRlg4X1RJTElOR19TVVJGQUNFX19CQU5LX1dJRFRIX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEpQRUdfREVDX1lfR0ZYOF9USUxJTkdfU1VSRkFDRV9fQkFOS19IRUlHSFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0VfX01BQ1JPX1RJTEVfQVNQRUNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSlBFR19ERUNfWV9HRlg4X1RJTElOR19TVVJGQUNFX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIEpQRUdfREVDX1lfR0ZYOF9USUxJTkdfU1VSRkFDRV9fUElQRV9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0VfX1RJTEVfU1BMSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgSlBFR19ERUNfWV9HRlg4X1RJTElOR19TVVJGQUNFX19BUlJBWV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0VfX0JBTktfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0VfX0JBTktfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0VfX01BQ1JPX1RJTEVfQVNQRUNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0VfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0VfX1BJUEVfQ09ORklHX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0VfX1RJTEVfU1BMSVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBFMDAwTAorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDhfVElMSU5HX1NVUkZBQ0VfX0FSUkFZX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorLy9KUEVHX0RFQ19VVl9HRlg4X1RJTElOR19TVVJGQUNFCisjZGVmaW5lIEpQRUdfREVDX1VWX0dGWDhfVElMSU5HX1NVUkZBQ0VfX0JBTktfV0lEVEhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX0RFQ19VVl9HRlg4X1RJTElOR19TVVJGQUNFX19CQU5LX0hFSUdIVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYOF9USUxJTkdfU1VSRkFDRV9fTUFDUk9fVElMRV9BU1BFQ1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIEpQRUdfREVDX1VWX0dGWDhfVElMSU5HX1NVUkZBQ0VfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBKUEVHX0RFQ19VVl9HRlg4X1RJTElOR19TVVJGQUNFX19QSVBFX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYOF9USUxJTkdfU1VSRkFDRV9fVElMRV9TUExJVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIEpQRUdfREVDX1VWX0dGWDhfVElMSU5HX1NVUkZBQ0VfX0FSUkFZX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYOF9USUxJTkdfU1VSRkFDRV9fQkFOS19XSURUSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYOF9USUxJTkdfU1VSRkFDRV9fQkFOS19IRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQ0wKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYOF9USUxJTkdfU1VSRkFDRV9fTUFDUk9fVElMRV9BU1BFQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMEwKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYOF9USUxJTkdfU1VSRkFDRV9fTlVNX0JBTktTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMEwKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYOF9USUxJTkdfU1VSRkFDRV9fUElQRV9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYOF9USUxJTkdfU1VSRkFDRV9fVElMRV9TUExJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRTAwMEwKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYOF9USUxJTkdfU1VSRkFDRV9fQVJSQVlfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vSlBFR19ERUNfR0ZYOF9BRERSX0NPTkZJRworI2RlZmluZSBKUEVHX0RFQ19HRlg4X0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSlBFR19ERUNfR0ZYOF9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MEwKKy8vSlBFR19ERUNfWV9HRlgxMF9USUxJTkdfU1VSRkFDRQorI2RlZmluZSBKUEVHX0RFQ19ZX0dGWDEwX1RJTElOR19TVVJGQUNFX19TV0laWkxFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSlBFR19ERUNfWV9HRlgxMF9USUxJTkdfU1VSRkFDRV9fU1dJWlpMRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRkwKKy8vSlBFR19ERUNfVVZfR0ZYMTBfVElMSU5HX1NVUkZBQ0UKKyNkZWZpbmUgSlBFR19ERUNfVVZfR0ZYMTBfVElMSU5HX1NVUkZBQ0VfX1NXSVpaTEVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEpQRUdfREVDX1VWX0dGWDEwX1RJTElOR19TVVJGQUNFX19TV0laWkxFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL0pQRUdfREVDX0dGWDEwX0FERFJfQ09ORklHCisjZGVmaW5lIEpQRUdfREVDX0dGWDEwX0FERFJfQ09ORklHX19OVU1fUElQRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX0RFQ19HRlgxMF9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgSlBFR19ERUNfR0ZYMTBfQUREUl9DT05GSUdfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEpQRUdfREVDX0dGWDEwX0FERFJfQ09ORklHX19OVU1fU0hBREVSX0VOR0lORVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgSlBFR19ERUNfR0ZYMTBfQUREUl9DT05GSUdfX05VTV9QSVBFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwN0wKKyNkZWZpbmUgSlBFR19ERUNfR0ZYMTBfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOEwKKyNkZWZpbmUgSlBFR19ERUNfR0ZYMTBfQUREUl9DT05GSUdfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgSlBFR19ERUNfR0ZYMTBfQUREUl9DT05GSUdfX05VTV9TSEFERVJfRU5HSU5FU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4MDAwMEwKKy8vSlBFR19ERUNfQUREUl9NT0RFCisjZGVmaW5lIEpQRUdfREVDX0FERFJfTU9ERV9fQUREUl9NT0RFX1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX0RFQ19BRERSX01PREVfX0FERFJfTU9ERV9VVl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSlBFR19ERUNfQUREUl9NT0RFX19BRERSX0xJQl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIEpQRUdfREVDX0FERFJfTU9ERV9fQUREUl9NT0RFX1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIEpQRUdfREVDX0FERFJfTU9ERV9fQUREUl9NT0RFX1VWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIEpQRUdfREVDX0FERFJfTU9ERV9fQUREUl9MSUJfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisvL1VWRF9KUEVHX09VVFBVVF9YWQorLy9VVkRfSlBFR19HUENPTV9DTUQKKyNkZWZpbmUgVVZEX0pQRUdfR1BDT01fQ01EX19DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9KUEVHX0dQQ09NX0NNRF9fQ01EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEVMCisvL1VWRF9KUEVHX0dQQ09NX0RBVEEwCisjZGVmaW5lIFVWRF9KUEVHX0dQQ09NX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlBFR19HUENPTV9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfSlBFR19HUENPTV9EQVRBMQorI2RlZmluZSBVVkRfSlBFR19HUENPTV9EQVRBMV9fREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfR1BDT01fREFUQTFfX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0pQRUdfU0NSQVRDSDEKKyNkZWZpbmUgVVZEX0pQRUdfU0NSQVRDSDFfX1NDUkFUQ0gxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX1NDUkFUQ0gxX19TQ1JBVENIMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUEVHX0RFQ19TT0ZUX1JTVAorI2RlZmluZSBVVkRfSlBFR19ERUNfU09GVF9SU1RfX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfREVDX1NPRlRfUlNUX19SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfSlBFR19ERUNfU09GVF9SU1RfX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfSlBFR19ERUNfU09GVF9SU1RfX1JFU0VUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfanBlZ19lbmNfZGVjCisvL1VWRF9KUEVHX0VOQ19JTlRfRU4KKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0lOVF9FTl9fSFVGRl9KT0JfRE9ORV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfRU5fX1NDTFJfSk9CX0RPTkVfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX0VOX19IVUZGX0VSUk9SX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0lOVF9FTl9fU0NMUl9FUlJPUl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfRU5fX1FUQkxfRVJST1JfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX0VOX19QSUNfU0laRV9FUlJPUl9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0lOVF9FTl9fRkVOQ0VfVkFMX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfRU5fX0hVRkZfSk9CX0RPTkVfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfRU5fX1NDTFJfSk9CX0RPTkVfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfRU5fX0hVRkZfRVJST1JfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfRU5fX1NDTFJfRVJST1JfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfRU5fX1FUQkxfRVJST1JfSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfRU5fX1BJQ19TSVpFX0VSUk9SX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfRU5fX0ZFTkNFX1ZBTF9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL1VWRF9KUEVHX0VOQ19JTlRfU1RBVFVTCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfU1RBVFVTX19IVUZGX0pPQl9ET05FX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX1NUQVRVU19fU0NMUl9KT0JfRE9ORV9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0lOVF9TVEFUVVNfX0hVRkZfRVJST1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfU1RBVFVTX19TQ0xSX0VSUk9SX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX1NUQVRVU19fUVRCTF9FUlJPUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0lOVF9TVEFUVVNfX1BJQ19TSVpFX0VSUk9SX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFVWRF9KUEVHX0VOQ19JTlRfU1RBVFVTX19GRU5DRV9WQUxfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX1NUQVRVU19fSFVGRl9KT0JfRE9ORV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX1NUQVRVU19fU0NMUl9KT0JfRE9ORV9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX1NUQVRVU19fSFVGRl9FUlJPUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX1NUQVRVU19fU0NMUl9FUlJPUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX1NUQVRVU19fUVRCTF9FUlJPUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX1NUQVRVU19fUElDX1NJWkVfRVJST1JfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBVVkRfSlBFR19FTkNfSU5UX1NUQVRVU19fRkVOQ0VfVkFMX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9VVkRfSlBFR19FTkNfRU5HSU5FX0NOVEwKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0VOR0lORV9DTlRMX19IVUZGX1dSX0NPTUJfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19FTkdJTkVfQ05UTF9fRElTVElOQ1RfQ0hST01BX1FVQU5UX1RBQkxFU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfSlBFR19FTkNfRU5HSU5FX0NOVExfX1NDQUxBUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0VOR0lORV9DTlRMX19FTkNPREVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19FTkdJTkVfQ05UTF9fQ01QX05FRURFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSlBFR19FTkNfRU5HSU5FX0NOVExfX0VDU19SRVNUUklDVF8zMkJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0VOR0lORV9DTlRMX19IVUZGX1dSX0NPTUJfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0VOR0lORV9DTlRMX19ESVNUSU5DVF9DSFJPTUFfUVVBTlRfVEFCTEVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0VOR0lORV9DTlRMX19TQ0FMQVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0VOR0lORV9DTlRMX19FTkNPREVfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0VOR0lORV9DTlRMX19DTVBfTkVFREVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0VOR0lORV9DTlRMX19FQ1NfUkVTVFJJQ1RfMzJCX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKy8vVVZEX0pQRUdfRU5DX1NDUkFUQ0gxCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19TQ1JBVENIMV9fU0NSQVRDSDFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlBFR19FTkNfU0NSQVRDSDFfX1NDUkFUQ0gxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfanBlZ19lbmNfc2Nsa19kZWMKKy8vVVZEX0pQRUdfRU5DX1NUQVRVUworI2RlZmluZSBVVkRfSlBFR19FTkNfU1RBVFVTX19QRUxfRkVUQ0hfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1NUQVRVU19fSFVGRl9DT1JFX0lETEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19TVEFUVVNfX0ZEQ1RfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfSlBFR19FTkNfU1RBVFVTX19TQ0FMQVJfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1NUQVRVU19fUEVMX0ZFVENIX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1NUQVRVU19fSFVGRl9DT1JFX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1NUQVRVU19fRkRDVF9JRExFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1NUQVRVU19fU0NBTEFSX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKy8vVVZEX0pQRUdfRU5DX1BJVENICisjZGVmaW5lIFVWRF9KUEVHX0VOQ19QSVRDSF9fUElUQ0hfWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlBFR19FTkNfUElUQ0hfX1BJVENIX1VWX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19QSVRDSF9fUElUQ0hfWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRkZMCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19QSVRDSF9fUElUQ0hfVVZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL1VWRF9KUEVHX0VOQ19MVU1BX0JBU0UKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0xVTUFfQkFTRV9fTFVNQV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19MVU1BX0JBU0VfX0xVTUFfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUEVHX0VOQ19DSFJPTUFVX0JBU0UKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0NIUk9NQVVfQkFTRV9fQ0hST01BVV9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19DSFJPTUFVX0JBU0VfX0NIUk9NQVVfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUEVHX0VOQ19DSFJPTUFWX0JBU0UKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0NIUk9NQVZfQkFTRV9fQ0hST01BVl9CQVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19DSFJPTUFWX0JBU0VfX0NIUk9NQVZfQkFTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0pQRUdfRU5DX1lfR0ZYMTBfVElMSU5HX1NVUkZBQ0UKKyNkZWZpbmUgSlBFR19FTkNfWV9HRlgxMF9USUxJTkdfU1VSRkFDRV9fU1dJWlpMRV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEpQRUdfRU5DX1lfR0ZYMTBfVElMSU5HX1NVUkZBQ0VfX1NXSVpaTEVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMUZMCisvL0pQRUdfRU5DX1VWX0dGWDEwX1RJTElOR19TVVJGQUNFCisjZGVmaW5lIEpQRUdfRU5DX1VWX0dGWDEwX1RJTElOR19TVVJGQUNFX19TV0laWkxFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX0VOQ19VVl9HRlgxMF9USUxJTkdfU1VSRkFDRV9fU1dJWlpMRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorLy9KUEVHX0VOQ19HRlgxMF9BRERSX0NPTkZJRworI2RlZmluZSBKUEVHX0VOQ19HRlgxMF9BRERSX0NPTkZJR19fTlVNX1BJUEVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSlBFR19FTkNfR0ZYMTBfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEpQRUdfRU5DX0dGWDEwX0FERFJfQ09ORklHX19OVU1fQkFOS1NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBKUEVHX0VOQ19HRlgxMF9BRERSX0NPTkZJR19fTlVNX1NIQURFUl9FTkdJTkVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIEpQRUdfRU5DX0dGWDEwX0FERFJfQ09ORklHX19OVU1fUElQRVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDdMCisjZGVmaW5lIEpQRUdfRU5DX0dGWDEwX0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzhMCisjZGVmaW5lIEpQRUdfRU5DX0dGWDEwX0FERFJfQ09ORklHX19OVU1fQkFOS1NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDBMCisjZGVmaW5lIEpQRUdfRU5DX0dGWDEwX0FERFJfQ09ORklHX19OVU1fU0hBREVSX0VOR0lORVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxODAwMDBMCisvL0pQRUdfRU5DX0FERFJfTU9ERQorI2RlZmluZSBKUEVHX0VOQ19BRERSX01PREVfX0FERFJfTU9ERV9ZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSlBFR19FTkNfQUREUl9NT0RFX19BRERSX01PREVfVVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEpQRUdfRU5DX0FERFJfTU9ERV9fQUREUl9MSUJfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBKUEVHX0VOQ19BRERSX01PREVfX0FERFJfTU9ERV9ZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBKUEVHX0VOQ19BRERSX01PREVfX0FERFJfTU9ERV9VVl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBKUEVHX0VOQ19BRERSX01PREVfX0FERFJfTElCX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorLy9VVkRfSlBFR19FTkNfR1BDT01fQ01ECisjZGVmaW5lIFVWRF9KUEVHX0VOQ19HUENPTV9DTURfX0NNRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfSlBFR19FTkNfR1BDT01fQ01EX19DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFTAorLy9VVkRfSlBFR19FTkNfR1BDT01fREFUQTAKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0dQQ09NX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19HUENPTV9EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUEVHX0VOQ19HUENPTV9EQVRBMQorI2RlZmluZSBVVkRfSlBFR19FTkNfR1BDT01fREFUQTFfX0RBVEExX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX0dQQ09NX0RBVEExX19EQVRBMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0pQRUdfRU5DX0NHQ19DTlRMCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19DR0NfQ05UTF9fQ0dDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlBFR19FTkNfQ0dDX0NOVExfX0NHQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9VVkRfSlBFR19FTkNfU0NSQVRDSDAKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1NDUkFUQ0gwX19TQ1JBVENIMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19TQ1JBVENIMF9fU0NSQVRDSDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUEVHX0VOQ19TT0ZUX1JTVAorI2RlZmluZSBVVkRfSlBFR19FTkNfU09GVF9SU1RfX1NPRlRfUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1NPRlRfUlNUX19SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfSlBFR19FTkNfU09GVF9SU1RfX1NPRlRfUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfSlBFR19FTkNfU09GVF9SU1RfX1JFU0VUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfanJiY19kZWMKKy8vVVZEX0pSQkNfUkJfV1BUUgorI2RlZmluZSBVVkRfSlJCQ19SQl9XUFRSX19SQl9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0pSQkNfUkJfV1BUUl9fUkJfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX0pSQkNfUkJfQ05UTAorI2RlZmluZSBVVkRfSlJCQ19SQl9DTlRMX19SQl9OT19GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pSQkNfUkJfQ05UTF9fUkJfUlBUUl9XUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9KUkJDX1JCX0NOVExfX1JCX1BSRV9XUklURV9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSlJCQ19SQl9DTlRMX19SQl9OT19GRVRDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfSlJCQ19SQl9DTlRMX19SQl9SUFRSX1dSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfSlJCQ19SQl9DTlRMX19SQl9QUkVfV1JJVEVfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkYwTAorLy9VVkRfSlJCQ19JQl9TSVpFCisjZGVmaW5lIFVWRF9KUkJDX0lCX1NJWkVfX0lCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSlJCQ19JQl9TSVpFX19JQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9VVkRfSlJCQ19VUkdFTlRfQ05UTAorI2RlZmluZSBVVkRfSlJCQ19VUkdFTlRfQ05UTF9fQ01EX1JFQURfUkVRX1BSSU9SSVRZX01BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pSQkNfVVJHRU5UX0NOVExfX0NNRF9SRUFEX1JFUV9QUklPUklUWV9NQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKy8vVVZEX0pSQkNfUkJfUkVGX0RBVEEKKyNkZWZpbmUgVVZEX0pSQkNfUkJfUkVGX0RBVEFfX1JFRl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUkJDX1JCX1JFRl9EQVRBX19SRUZfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUkJDX1JCX0NPTkRfUkRfVElNRVIKKyNkZWZpbmUgVVZEX0pSQkNfUkJfQ09ORF9SRF9USU1FUl9fUkVUUllfVElNRVJfQ05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUkJDX1JCX0NPTkRfUkRfVElNRVJfX1JFVFJZX0lOVEVSVkFMX0NOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX0pSQkNfUkJfQ09ORF9SRF9USU1FUl9fQ09OVElOVU9VU19QT0xMX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfSlJCQ19SQl9DT05EX1JEX1RJTUVSX19NRU1fVElNRU9VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFVWRF9KUkJDX1JCX0NPTkRfUkRfVElNRVJfX1JFVFJZX1RJTUVSX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFVWRF9KUkJDX1JCX0NPTkRfUkRfVElNRVJfX1JFVFJZX0lOVEVSVkFMX0NOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRjAwMDBMCisjZGVmaW5lIFVWRF9KUkJDX1JCX0NPTkRfUkRfVElNRVJfX0NPTlRJTlVPVVNfUE9MTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFVWRF9KUkJDX1JCX0NPTkRfUkRfVElNRVJfX01FTV9USU1FT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisvL1VWRF9KUkJDX1NPRlRfUkVTRVQKKyNkZWZpbmUgVVZEX0pSQkNfU09GVF9SRVNFVF9fUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUkJDX1NPRlRfUkVTRVRfX1NDTEtfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVVZEX0pSQkNfU09GVF9SRVNFVF9fUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0pSQkNfU09GVF9SRVNFVF9fU0NMS19SRVNFVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vVVZEX0pSQkNfU1RBVFVTCisjZGVmaW5lIFVWRF9KUkJDX1NUQVRVU19fUkJfSk9CX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlJCQ19TVEFUVVNfX0lCX0pPQl9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19SQl9JTExFR0FMX0NNRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9KUkJDX1NUQVRVU19fUkJfQ09ORF9SRUdfUkRfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfSlJCQ19TVEFUVVNfX1JCX01FTV9XUl9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19SQl9NRU1fUkRfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFVWRF9KUkJDX1NUQVRVU19fSUJfSUxMRUdBTF9DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfSlJCQ19TVEFUVVNfX0lCX0NPTkRfUkVHX1JEX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19JQl9NRU1fV1JfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9KUkJDX1NUQVRVU19fSUJfTUVNX1JEX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfSlJCQ19TVEFUVVNfX1JCX1RSQVBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19QUkVFTVBUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFVWRF9KUkJDX1NUQVRVU19fSUJfVFJBUF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfSlJCQ19TVEFUVVNfX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9KUkJDX1NUQVRVU19fSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19SQl9KT0JfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19JQl9KT0JfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19SQl9JTExFR0FMX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19SQl9DT05EX1JFR19SRF9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19SQl9NRU1fV1JfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19SQl9NRU1fUkRfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19JQl9JTExFR0FMX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19JQl9DT05EX1JFR19SRF9USU1FT1VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19JQl9NRU1fV1JfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19JQl9NRU1fUkRfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19SQl9UUkFQX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19QUkVFTVBUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19JQl9UUkFQX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVVZEX0pSQkNfU1RBVFVTX19JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vVVZEX0pSQkNfUkJfUlBUUgorI2RlZmluZSBVVkRfSlJCQ19SQl9SUFRSX19SQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0pSQkNfUkJfUlBUUl9fUkJfUlBUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX0pSQkNfUkJfQlVGX1NUQVRVUworI2RlZmluZSBVVkRfSlJCQ19SQl9CVUZfU1RBVFVTX19SQl9CVUZfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pSQkNfUkJfQlVGX1NUQVRVU19fUkJfQlVGX1JEX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfSlJCQ19SQl9CVUZfU1RBVFVTX19SQl9CVUZfV1JfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9KUkJDX1JCX0JVRl9TVEFUVVNfX1JCX0JVRl9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFVWRF9KUkJDX1JCX0JVRl9TVEFUVVNfX1JCX0JVRl9SRF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIFVWRF9KUkJDX1JCX0JVRl9TVEFUVVNfX1JCX0JVRl9XUl9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDBMCisvL1VWRF9KUkJDX0lCX0JVRl9TVEFUVVMKKyNkZWZpbmUgVVZEX0pSQkNfSUJfQlVGX1NUQVRVU19fSUJfQlVGX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUkJDX0lCX0JVRl9TVEFUVVNfX0lCX0JVRl9SRF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX0pSQkNfSUJfQlVGX1NUQVRVU19fSUJfQlVGX1dSX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfSlJCQ19JQl9CVUZfU1RBVFVTX19JQl9CVUZfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBVVkRfSlJCQ19JQl9CVUZfU1RBVFVTX19JQl9CVUZfUkRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBVVkRfSlJCQ19JQl9CVUZfU1RBVFVTX19JQl9CVUZfV1JfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9VVkRfSlJCQ19JQl9TSVpFX1VQREFURQorI2RlZmluZSBVVkRfSlJCQ19JQl9TSVpFX1VQREFURV9fUkVNQUlOX0lCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0pSQkNfSUJfU0laRV9VUERBVEVfX1JFTUFJTl9JQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX0pSQkNfSUJfQ09ORF9SRF9USU1FUgorI2RlZmluZSBVVkRfSlJCQ19JQl9DT05EX1JEX1RJTUVSX19SRVRSWV9USU1FUl9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pSQkNfSUJfQ09ORF9SRF9USU1FUl9fUkVUUllfSU5URVJWQUxfQ05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfSlJCQ19JQl9DT05EX1JEX1RJTUVSX19DT05USU5VT1VTX1BPTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9KUkJDX0lCX0NPTkRfUkRfVElNRVJfX01FTV9USU1FT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX0pSQkNfSUJfQ09ORF9SRF9USU1FUl9fUkVUUllfVElNRVJfQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVVZEX0pSQkNfSUJfQ09ORF9SRF9USU1FUl9fUkVUUllfSU5URVJWQUxfQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgVVZEX0pSQkNfSUJfQ09ORF9SRF9USU1FUl9fQ09OVElOVU9VU19QT0xMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVVZEX0pSQkNfSUJfQ09ORF9SRF9USU1FUl9fTUVNX1RJTUVPVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vVVZEX0pSQkNfSUJfUkVGX0RBVEEKKyNkZWZpbmUgVVZEX0pSQkNfSUJfUkVGX0RBVEFfX1JFRl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUkJDX0lCX1JFRl9EQVRBX19SRUZfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUEVHX1BSRUVNUFRfQ01ECisjZGVmaW5lIFVWRF9KUEVHX1BSRUVNUFRfQ01EX19QUkVFTVBUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlBFR19QUkVFTVBUX0NNRF9fV0FJVF9KUEVHX0pPQl9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX0pQRUdfUFJFRU1QVF9DTURfX1BSRUVNUFRfRkVOQ0VfQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9KUEVHX1BSRUVNUFRfQ01EX19QUkVFTVBUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9KUEVHX1BSRUVNUFRfQ01EX19XQUlUX0pQRUdfSk9CX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9KUEVHX1BSRUVNUFRfQ01EX19QUkVFTVBUX0ZFTkNFX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL1VWRF9KUEVHX1BSRUVNUFRfRkVOQ0VfREFUQTAKKyNkZWZpbmUgVVZEX0pQRUdfUFJFRU1QVF9GRU5DRV9EQVRBMF9fUFJFRU1QVF9GRU5DRV9EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX1BSRUVNUFRfRkVOQ0VfREFUQTBfX1BSRUVNUFRfRkVOQ0VfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUEVHX1BSRUVNUFRfRkVOQ0VfREFUQTEKKyNkZWZpbmUgVVZEX0pQRUdfUFJFRU1QVF9GRU5DRV9EQVRBMV9fUFJFRU1QVF9GRU5DRV9EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX1BSRUVNUFRfRkVOQ0VfREFUQTFfX1BSRUVNUFRfRkVOQ0VfREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUkJDX1JCX1NJWkUKKyNkZWZpbmUgVVZEX0pSQkNfUkJfU0laRV9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9KUkJDX1JCX1NJWkVfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRkZGRjBMCisvL1VWRF9KUkJDX1NDUkFUQ0gwCisjZGVmaW5lIFVWRF9KUkJDX1NDUkFUQ0gwX19TQ1JBVENIMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlJCQ19TQ1JBVENIMF9fU0NSQVRDSDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfanJiY19lbmNfZGVjCisvL1VWRF9KUkJDX0VOQ19SQl9XUFRSCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19SQl9XUFRSX19SQl9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfV1BUUl9fUkJfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9VVkRfSlJCQ19FTkNfUkJfQ05UTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQ05UTF9fUkJfTk9fRkVUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1JCX0NOVExfX1JCX1JQVFJfV1JfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19SQl9DTlRMX19SQl9QUkVfV1JJVEVfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQ05UTF9fUkJfTk9fRkVUQ0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQ05UTF9fUkJfUlBUUl9XUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQ05UTF9fUkJfUFJFX1dSSVRFX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDdGRkYwTAorLy9VVkRfSlJCQ19FTkNfSUJfU0laRQorI2RlZmluZSBVVkRfSlJCQ19FTkNfSUJfU0laRV9fSUJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX0lCX1NJWkVfX0lCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX0pSQkNfRU5DX1VSR0VOVF9DTlRMCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19VUkdFTlRfQ05UTF9fQ01EX1JFQURfUkVRX1BSSU9SSVRZX01BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlJCQ19FTkNfVVJHRU5UX0NOVExfX0NNRF9SRUFEX1JFUV9QUklPUklUWV9NQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorLy9VVkRfSlJCQ19FTkNfUkJfUkVGX0RBVEEKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1JCX1JFRl9EQVRBX19SRUZfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19SQl9SRUZfREFUQV9fUkVGX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUkJDX0VOQ19SQl9DT05EX1JEX1RJTUVSCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19SQl9DT05EX1JEX1RJTUVSX19SRVRSWV9USU1FUl9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQ09ORF9SRF9USU1FUl9fUkVUUllfSU5URVJWQUxfQ05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19SQl9DT05EX1JEX1RJTUVSX19DT05USU5VT1VTX1BPTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1JCX0NPTkRfUkRfVElNRVJfX01FTV9USU1FT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQ09ORF9SRF9USU1FUl9fUkVUUllfVElNRVJfQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQ09ORF9SRF9USU1FUl9fUkVUUllfSU5URVJWQUxfQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQ09ORF9SRF9USU1FUl9fQ09OVElOVU9VU19QT0xMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQ09ORF9SRF9USU1FUl9fTUVNX1RJTUVPVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorLy9VVkRfSlJCQ19FTkNfU09GVF9SRVNFVAorI2RlZmluZSBVVkRfSlJCQ19FTkNfU09GVF9SRVNFVF9fUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NPRlRfUkVTRVRfX1NDTEtfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBVVkRfSlJCQ19FTkNfU09GVF9SRVNFVF9fUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfU09GVF9SRVNFVF9fU0NMS19SRVNFVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorLy9VVkRfSlJCQ19FTkNfU1RBVFVTCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19TVEFUVVNfX1JCX0pPQl9ET05FX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlJCQ19FTkNfU1RBVFVTX19JQl9KT0JfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUkJfSUxMRUdBTF9DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19TVEFUVVNfX1JCX0NPTkRfUkVHX1JEX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfSlJCQ19FTkNfU1RBVFVTX19SQl9NRU1fV1JfVElNRU9VVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUkJfTUVNX1JEX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFVWRF9KUkJDX0VOQ19TVEFUVVNfX0lCX0lMTEVHQUxfQ01EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfSlJCQ19FTkNfU1RBVFVTX19JQl9DT05EX1JFR19SRF9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fSUJfTUVNX1dSX1RJTUVPVVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9KUkJDX0VOQ19TVEFUVVNfX0lCX01FTV9SRF9USU1FT1VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfSlJCQ19FTkNfU1RBVFVTX19SQl9UUkFQX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUFJFRU1QVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19TVEFUVVNfX0lCX1RSQVBfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfSlJCQ19FTkNfU1RBVFVTX19JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19TVEFUVVNfX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUkJfSk9CX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fSUJfSk9CX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUkJfSUxMRUdBTF9DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUkJfQ09ORF9SRUdfUkRfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUkJfTUVNX1dSX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUkJfTUVNX1JEX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fSUJfSUxMRUdBTF9DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fSUJfQ09ORF9SRUdfUkRfVElNRU9VVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fSUJfTUVNX1dSX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fSUJfTUVNX1JEX1RJTUVPVVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUkJfVFJBUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fUFJFRU1QVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fSUJfVFJBUF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NUQVRVU19fSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKy8vVVZEX0pSQkNfRU5DX1JCX1JQVFIKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1JCX1JQVFJfX1JCX1JQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9KUkJDX0VOQ19SQl9SUFRSX19SQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRjBMCisvL1VWRF9KUkJDX0VOQ19SQl9CVUZfU1RBVFVTCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19SQl9CVUZfU1RBVFVTX19SQl9CVUZfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfQlVGX1NUQVRVU19fUkJfQlVGX1JEX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19SQl9CVUZfU1RBVFVTX19SQl9CVUZfV1JfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1JCX0JVRl9TVEFUVVNfX1JCX0JVRl9WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1JCX0JVRl9TVEFUVVNfX1JCX0JVRl9SRF9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1JCX0JVRl9TVEFUVVNfX1JCX0JVRl9XUl9BRERSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwMDAwMEwKKy8vVVZEX0pSQkNfRU5DX0lCX0JVRl9TVEFUVVMKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX0lCX0JVRl9TVEFUVVNfX0lCX0JVRl9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19JQl9CVUZfU1RBVFVTX19JQl9CVUZfUkRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX0lCX0JVRl9TVEFUVVNfX0lCX0JVRl9XUl9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfSlJCQ19FTkNfSUJfQlVGX1NUQVRVU19fSUJfQlVGX1ZBTElEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfSUJfQlVGX1NUQVRVU19fSUJfQlVGX1JEX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfSUJfQlVGX1NUQVRVU19fSUJfQlVGX1dSX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorLy9VVkRfSlJCQ19FTkNfSUJfU0laRV9VUERBVEUKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX0lCX1NJWkVfVVBEQVRFX19SRU1BSU5fSUJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9KUkJDX0VOQ19JQl9TSVpFX1VQREFURV9fUkVNQUlOX0lCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRjBMCisvL1VWRF9KUkJDX0VOQ19JQl9DT05EX1JEX1RJTUVSCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19JQl9DT05EX1JEX1RJTUVSX19SRVRSWV9USU1FUl9DTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlJCQ19FTkNfSUJfQ09ORF9SRF9USU1FUl9fUkVUUllfSU5URVJWQUxfQ05UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19JQl9DT05EX1JEX1RJTUVSX19DT05USU5VT1VTX1BPTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX0lCX0NPTkRfUkRfVElNRVJfX01FTV9USU1FT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBVVkRfSlJCQ19FTkNfSUJfQ09ORF9SRF9USU1FUl9fUkVUUllfVElNRVJfQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfSUJfQ09ORF9SRF9USU1FUl9fUkVUUllfSU5URVJWQUxfQ05UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYwMDAwTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfSUJfQ09ORF9SRF9USU1FUl9fQ09OVElOVU9VU19QT0xMX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBVVkRfSlJCQ19FTkNfSUJfQ09ORF9SRF9USU1FUl9fTUVNX1RJTUVPVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorLy9VVkRfSlJCQ19FTkNfSUJfUkVGX0RBVEEKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX0lCX1JFRl9EQVRBX19SRUZfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19JQl9SRUZfREFUQV9fUkVGX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUEVHX0VOQ19QUkVFTVBUX0NNRAorI2RlZmluZSBVVkRfSlBFR19FTkNfUFJFRU1QVF9DTURfX1BSRUVNUFRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1BSRUVNUFRfQ01EX19XQUlUX0pQRUdfSk9CX0RPTkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19QUkVFTVBUX0NNRF9fUFJFRU1QVF9GRU5DRV9DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfSlBFR19FTkNfUFJFRU1QVF9DTURfX1BSRUVNUFRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfSlBFR19FTkNfUFJFRU1QVF9DTURfX1dBSVRfSlBFR19KT0JfRE9ORV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfSlBFR19FTkNfUFJFRU1QVF9DTURfX1BSRUVNUFRfRkVOQ0VfQ01EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9VVkRfSlBFR19FTkNfUFJFRU1QVF9GRU5DRV9EQVRBMAorI2RlZmluZSBVVkRfSlBFR19FTkNfUFJFRU1QVF9GRU5DRV9EQVRBMF9fUFJFRU1QVF9GRU5DRV9EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1BSRUVNUFRfRkVOQ0VfREFUQTBfX1BSRUVNUFRfRkVOQ0VfREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0pQRUdfRU5DX1BSRUVNUFRfRkVOQ0VfREFUQTEKKyNkZWZpbmUgVVZEX0pQRUdfRU5DX1BSRUVNUFRfRkVOQ0VfREFUQTFfX1BSRUVNUFRfRkVOQ0VfREFUQTFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUEVHX0VOQ19QUkVFTVBUX0ZFTkNFX0RBVEExX19QUkVFTVBUX0ZFTkNFX0RBVEExX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KUkJDX0VOQ19SQl9TSVpFCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19SQl9TSVpFX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSlJCQ19FTkNfUkJfU0laRV9fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkYwTAorLy9VVkRfSlJCQ19FTkNfU0NSQVRDSDAKKyNkZWZpbmUgVVZEX0pSQkNfRU5DX1NDUkFUQ0gwX19TQ1JBVENIMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KUkJDX0VOQ19TQ1JBVENIMF9fU0NSQVRDSDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX3V2ZF9qbWlfZGVjCisvL1VWRF9KTUlfQ1RSTAorI2RlZmluZSBVVkRfSk1JX0NUUkxfX1NUQUxMX01DX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pNSV9DVFJMX19NQVNLX01DX1VSR0VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9KTUlfQ1RSTF9fQVNTRVJUX01DX1VSR0VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfSk1JX0NUUkxfX01DX1JEX0FSQl9XQUlUX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0pNSV9DVFJMX19NQ19XUl9BUkJfV0FJVF9USU1FUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfSk1JX0NUUkxfX0NSQ19SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9KTUlfQ1RSTF9fQ1JDX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX0pNSV9DVFJMX19TVEFMTF9NQ19BUkJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0pNSV9DVFJMX19NQVNLX01DX1VSR0VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0pNSV9DVFJMX19BU1NFUlRfTUNfVVJHRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX0pNSV9DVFJMX19NQ19SRF9BUkJfV0FJVF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVVZEX0pNSV9DVFJMX19NQ19XUl9BUkJfV0FJVF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgVVZEX0pNSV9DVFJMX19DUkNfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVVZEX0pNSV9DVFJMX19DUkNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRTAwMDAwMEwKKy8vVVZEX0xNSV9KUkJDX0NUUkwKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX0NUUkxfX0FSQl9SRF9XQUlUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19DVFJMX19BUkJfV1JfV0FJVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfTE1JX0pSQkNfQ1RSTF9fUkRfTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX0NUUkxfX1dSX01BWF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfSlJCQ19DVFJMX19SRF9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX0NUUkxfX1dSX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBVVkRfTE1JX0pSQkNfQ1RSTF9fQVJCX1JEX1dBSVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfTE1JX0pSQkNfQ1RSTF9fQVJCX1dSX1dBSVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfTE1JX0pSQkNfQ1RSTF9fUkRfTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBVVkRfTE1JX0pSQkNfQ1RSTF9fV1JfTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBVVkRfTE1JX0pSQkNfQ1RSTF9fUkRfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBVVkRfTE1JX0pSQkNfQ1RSTF9fV1JfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorLy9VVkRfTE1JX0pQRUdfQ1RSTAorI2RlZmluZSBVVkRfTE1JX0pQRUdfQ1RSTF9fQVJCX1JEX1dBSVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX0NUUkxfX0FSQl9XUl9XQUlUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMX19SRF9NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfTE1JX0pQRUdfQ1RSTF9fV1JfTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX0NUUkxfX1JEX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfTE1JX0pQRUdfQ1RSTF9fV1JfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMX19BUkJfUkRfV0FJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMX19BUkJfV1JfV0FJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMX19SRF9NQVhfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMX19XUl9NQVhfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMX19SRF9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMX19XUl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisvL1VWRF9KTUlfRUpSQkNfQ1RSTAorI2RlZmluZSBVVkRfSk1JX0VKUkJDX0NUUkxfX0FSQl9SRF9XQUlUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pNSV9FSlJCQ19DVFJMX19BUkJfV1JfV0FJVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9KTUlfRUpSQkNfQ1RSTF9fUkRfTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSk1JX0VKUkJDX0NUUkxfX1dSX01BWF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0pNSV9FSlJCQ19DVFJMX19SRF9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfSk1JX0VKUkJDX0NUUkxfX1dSX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9KTUlfRUpSQkNfQ1RSTF9fQVJCX1JEX1dBSVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9KTUlfRUpSQkNfQ1RSTF9fQVJCX1dSX1dBSVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9KTUlfRUpSQkNfQ1RSTF9fUkRfTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFVWRF9KTUlfRUpSQkNfQ1RSTF9fV1JfTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIFVWRF9KTUlfRUpSQkNfQ1RSTF9fUkRfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFVWRF9KTUlfRUpSQkNfQ1RSTF9fV1JfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisvL1VWRF9MTUlfRUpQRUdfQ1RSTAorI2RlZmluZSBVVkRfTE1JX0VKUEVHX0NUUkxfX0FSQl9SRF9XQUlUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9FSlBFR19DVFJMX19BUkJfV1JfV0FJVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9MTUlfRUpQRUdfQ1RSTF9fUkRfTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfTE1JX0VKUEVHX0NUUkxfX1dSX01BWF9CVVJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0xNSV9FSlBFR19DVFJMX19SRF9TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfTE1JX0VKUEVHX0NUUkxfX1dSX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9MTUlfRUpQRUdfQ1RSTF9fQVJCX1JEX1dBSVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9MTUlfRUpQRUdfQ1RSTF9fQVJCX1dSX1dBSVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9MTUlfRUpQRUdfQ1RSTF9fUkRfTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFVWRF9MTUlfRUpQRUdfQ1RSTF9fV1JfTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisjZGVmaW5lIFVWRF9MTUlfRUpQRUdfQ1RSTF9fUkRfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfRUpQRUdfQ1RSTF9fV1JfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisvL1VWRF9MTUlfSlJCQ19JQl9WTUlECisjZGVmaW5lIFVWRF9MTUlfSlJCQ19JQl9WTUlEX19JQl9XUl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pSQkNfSUJfVk1JRF9fSUJfUkRfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX0lCX1ZNSURfX01FTV9SRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfSlJCQ19JQl9WTUlEX19JQl9XUl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19JQl9WTUlEX19JQl9SRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19JQl9WTUlEX19NRU1fUkRfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisvL1VWRF9MTUlfSlJCQ19SQl9WTUlECisjZGVmaW5lIFVWRF9MTUlfSlJCQ19SQl9WTUlEX19SQl9XUl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pSQkNfUkJfVk1JRF9fUkJfUkRfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX1JCX1ZNSURfX01FTV9SRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfSlJCQ19SQl9WTUlEX19SQl9XUl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19SQl9WTUlEX19SQl9SRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19SQl9WTUlEX19NRU1fUkRfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisvL1VWRF9MTUlfSlBFR19WTUlECisjZGVmaW5lIFVWRF9MTUlfSlBFR19WTUlEX19KUEVHX1JEX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pQRUdfVk1JRF9fSlBFR19XUl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX1ZNSURfX0FUT01JQ19VU0VSMF9XUl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfSlBFR19WTUlEX19KUEVHX1JEX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFVWRF9MTUlfSlBFR19WTUlEX19KUEVHX1dSX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisjZGVmaW5lIFVWRF9MTUlfSlBFR19WTUlEX19BVE9NSUNfVVNFUjBfV1JfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisvL1VWRF9KTUlfRU5DX0pSQkNfSUJfVk1JRAorI2RlZmluZSBVVkRfSk1JX0VOQ19KUkJDX0lCX1ZNSURfX0lCX1dSX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlJCQ19JQl9WTUlEX19JQl9SRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9KTUlfRU5DX0pSQkNfSUJfVk1JRF9fTUVNX1JEX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfSk1JX0VOQ19KUkJDX0lCX1ZNSURfX0lCX1dSX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBVVkRfSk1JX0VOQ19KUkJDX0lCX1ZNSURfX0lCX1JEX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBVVkRfSk1JX0VOQ19KUkJDX0lCX1ZNSURfX01FTV9SRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorLy9VVkRfSk1JX0VOQ19KUkJDX1JCX1ZNSUQKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlJCQ19SQl9WTUlEX19SQl9XUl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KTUlfRU5DX0pSQkNfUkJfVk1JRF9fUkJfUkRfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfSk1JX0VOQ19KUkJDX1JCX1ZNSURfX01FTV9SRF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlJCQ19SQl9WTUlEX19SQl9XUl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlJCQ19SQl9WTUlEX19SQl9SRF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlJCQ19SQl9WTUlEX19NRU1fUkRfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKy8vVVZEX0pNSV9FTkNfSlBFR19WTUlECisjZGVmaW5lIFVWRF9KTUlfRU5DX0pQRUdfVk1JRF9fUEVMX1JEX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSk1JX0VOQ19KUEVHX1ZNSURfX0JTX1dSX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlBFR19WTUlEX19TQ0FMQVJfUkRfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFVWRF9KTUlfRU5DX0pQRUdfVk1JRF9fU0NBTEFSX1dSX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBVVkRfSk1JX0VOQ19KUEVHX1ZNSURfX0hVRkZfRkVOQ0VfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFVWRF9KTUlfRU5DX0pQRUdfVk1JRF9fQVRPTUlDX1VTRVIxX1dSX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlBFR19WTUlEX19QRUxfUkRfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlBFR19WTUlEX19CU19XUl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFFMEwKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlBFR19WTUlEX19TQ0FMQVJfUkRfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0MwMEwKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlBFR19WTUlEX19TQ0FMQVJfV1JfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3ODAwMEwKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlBFR19WTUlEX19IVUZGX0ZFTkNFX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDc4MDAwMEwKKyNkZWZpbmUgVVZEX0pNSV9FTkNfSlBFR19WTUlEX19BVE9NSUNfVVNFUjFfV1JfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzgwMDAwMEwKKy8vVVZEX0pNSV9QRVJGTU9OX0NUUkwKKyNkZWZpbmUgVVZEX0pNSV9QRVJGTU9OX0NUUkxfX1BFUkZNT05fU1RBVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KTUlfUEVSRk1PTl9DVFJMX19QRVJGTU9OX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfSk1JX1BFUkZNT05fQ1RSTF9fUEVSRk1PTl9TVEFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBVVkRfSk1JX1BFUkZNT05fQ1RSTF9fUEVSRk1PTl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorLy9VVkRfSk1JX1BFUkZNT05fQ09VTlRfTE8KKyNkZWZpbmUgVVZEX0pNSV9QRVJGTU9OX0NPVU5UX0xPX19QRVJGTU9OX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KTUlfUEVSRk1PTl9DT1VOVF9MT19fUEVSRk1PTl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KTUlfUEVSRk1PTl9DT1VOVF9ISQorI2RlZmluZSBVVkRfSk1JX1BFUkZNT05fQ09VTlRfSElfX1BFUkZNT05fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pNSV9QRVJGTU9OX0NPVU5UX0hJX19QRVJGTU9OX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vVVZEX0xNSV9KUEVHX1JFQURfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX0pQRUdfUkVBRF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX1JFQURfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9KUEVHX1JFQURfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX1JFQURfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfSlBFR19SRUFEXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfSlBFR19XUklURV82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfSlBFR19XUklURV82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pQRUdfV1JJVEVfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0pQRUdfV1JJVEVfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX1dSSVRFXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfSlBFR19XUklURV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfSlBFR19QUkVFTVBUX0ZFTkNFXzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX1BSRUVNUFRfRkVOQ0VfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfSlBFR19QUkVFTVBUX0ZFTkNFXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfSlBFR19QUkVFTVBUX0ZFTkNFXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfSlBFR19QUkVFTVBUX0ZFTkNFXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pQRUdfUFJFRU1QVF9GRU5DRV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0pSQkNfUkJfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX0pSQkNfUkJfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX1JCXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9KUkJDX1JCXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfSlJCQ19SQl82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pSQkNfUkJfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0pSQkNfSUJfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX0pSQkNfSUJfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX0lCXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9KUkJDX0lCXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfSlJCQ19JQl82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pSQkNfSUJfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0pSQkNfUkJfTUVNX1dSXzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19SQl9NRU1fV1JfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfSlJCQ19SQl9NRU1fV1JfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19SQl9NRU1fV1JfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfSlJCQ19SQl9NRU1fUkRfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX0pSQkNfUkJfTUVNX1JEXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX1JCX01FTV9SRF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9KUkJDX1JCX01FTV9SRF82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX0pSQkNfUkJfTUVNX1JEXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX1JCX01FTV9SRF82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9KUkJDX0lCX01FTV9XUl82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19JQl9NRU1fV1JfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pSQkNfSUJfTUVNX1dSXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0pSQkNfSUJfTUVNX1dSXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfSlJCQ19JQl9NRU1fV1JfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pSQkNfSUJfTUVNX1dSXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0pSQkNfSUJfTUVNX1JEXzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19JQl9NRU1fUkRfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfSlJCQ19JQl9NRU1fUkRfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9KUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfSlJCQ19JQl9NRU1fUkRfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfRUpQRUdfUFJFRU1QVF9GRU5DRV82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfRUpQRUdfUFJFRU1QVF9GRU5DRV82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0VKUEVHX1BSRUVNUFRfRkVOQ0VfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0VKUEVHX1BSRUVNUFRfRkVOQ0VfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9FSlBFR19QUkVFTVBUX0ZFTkNFXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfRUpQRUdfUFJFRU1QVF9GRU5DRV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfRUpSQkNfUkJfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX0VKUkJDX1JCXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9FSlJCQ19SQl82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9FSlJCQ19SQl82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX0VKUkJDX1JCXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9FSlJCQ19SQl82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9FSlJCQ19JQl82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfRUpSQkNfSUJfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0VKUkJDX0lCXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0VKUkJDX0lCXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfRUpSQkNfSUJfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0VKUkJDX0lCXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0VKUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfRUpSQkNfUkJfTUVNX1dSXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0VKUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0VKUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX0VKUkJDX1JCX01FTV9XUl82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9FSlJCQ19SQl9NRU1fV1JfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9FSlJCQ19SQl9NRU1fUkRfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX0VKUkJDX1JCX01FTV9SRF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9FSlJCQ19SQl9NRU1fUkRfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9FSlJCQ19SQl9NRU1fUkRfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9FSlJCQ19SQl9NRU1fUkRfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfRUpSQkNfUkJfTUVNX1JEXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfRUpSQkNfSUJfTUVNX1dSXzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9FSlJCQ19JQl9NRU1fV1JfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfRUpSQkNfSUJfTUVNX1dSXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfRUpSQkNfSUJfTUVNX1dSXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfRUpSQkNfSUJfTUVNX1dSXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0VKUkJDX0lCX01FTV9XUl82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0VKUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfRUpSQkNfSUJfTUVNX1JEXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0VKUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0VKUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX0VKUkJDX0lCX01FTV9SRF82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9FSlJCQ19JQl9NRU1fUkRfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9KUEVHX1BSRUVNUFRfVk1JRAorI2RlZmluZSBVVkRfTE1JX0pQRUdfUFJFRU1QVF9WTUlEX19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX1BSRUVNUFRfVk1JRF9fVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKy8vVVZEX0xNSV9FTkNfSlBFR19QUkVFTVBUX1ZNSUQKKyNkZWZpbmUgVVZEX0xNSV9FTkNfSlBFR19QUkVFTVBUX1ZNSURfX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfRU5DX0pQRUdfUFJFRU1QVF9WTUlEX19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1VWRF9MTUlfSlBFRzJfVk1JRAorI2RlZmluZSBVVkRfTE1JX0pQRUcyX1ZNSURfX0pQRUcyX1JEX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUEVHMl9WTUlEX19KUEVHMl9XUl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9MTUlfSlBFRzJfVk1JRF9fSlBFRzJfUkRfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFVWRF9MTUlfSlBFRzJfVk1JRF9fSlBFRzJfV1JfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL1VWRF9MTUlfSlBFRzJfUkVBRF82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfSlBFRzJfUkVBRF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pQRUcyX1JFQURfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0pQRUcyX1JFQURfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9KUEVHMl9SRUFEXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfSlBFRzJfUkVBRF82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfSlBFRzJfV1JJVEVfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX0pQRUcyX1dSSVRFXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUEVHMl9XUklURV82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9KUEVHMl9XUklURV82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX0pQRUcyX1dSSVRFXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9KUEVHMl9XUklURV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9KUEVHX0NUUkwyCisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMMl9fQVJCX1JEX1dBSVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0pQRUdfQ1RSTDJfX0FSQl9XUl9XQUlUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX0NUUkwyX19SRF9NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMMl9fV1JfTUFYX0JVUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfTE1JX0pQRUdfQ1RSTDJfX1JEX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFVWRF9MTUlfSlBFR19DVFJMMl9fV1JfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX0NUUkwyX19BUkJfUkRfV0FJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX0NUUkwyX19BUkJfV1JfV0FJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX0NUUkwyX19SRF9NQVhfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX0NUUkwyX19XUl9NQVhfQlVSU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX0NUUkwyX19SRF9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9KUEVHX0NUUkwyX19XUl9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwMDAwMEwKKy8vVVZEX0pNSV9ERUNfU1dBUF9DTlRMCisjZGVmaW5lIFVWRF9KTUlfREVDX1NXQVBfQ05UTF9fUkJfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX0lCX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0pNSV9ERUNfU1dBUF9DTlRMX19SQl9NRU1fV1JfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9KTUlfREVDX1NXQVBfQ05UTF9fSUJfTUVNX1dSX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX1JCX01FTV9SRF9NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0pNSV9ERUNfU1dBUF9DTlRMX19JQl9NRU1fUkRfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFVWRF9KTUlfREVDX1NXQVBfQ05UTF9fUFJFRU1QVF9XUl9NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX0pQRUdfUkRfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVVZEX0pNSV9ERUNfU1dBUF9DTlRMX19KUEVHX1dSX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX1JCX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX0lCX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX1JCX01FTV9XUl9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX0lCX01FTV9XUl9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX1JCX01FTV9SRF9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX0lCX01FTV9SRF9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX1BSRUVNUFRfV1JfTUNfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX0pQRUdfUkRfTUNfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVExfX0pQRUdfV1JfTUNfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9VVkRfSk1JX0VOQ19TV0FQX0NOVEwKKyNkZWZpbmUgVVZEX0pNSV9FTkNfU1dBUF9DTlRMX19SQl9NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fSUJfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfSk1JX0VOQ19TV0FQX0NOVExfX1JCX01FTV9XUl9NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0pNSV9FTkNfU1dBUF9DTlRMX19JQl9NRU1fV1JfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fUkJfTUVNX1JEX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfSk1JX0VOQ19TV0FQX0NOVExfX0lCX01FTV9SRF9NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX0pNSV9FTkNfU1dBUF9DTlRMX19QUkVFTVBUX1dSX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fUEVMX1JEX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBVVkRfSk1JX0VOQ19TV0FQX0NOVExfX0JTX1dSX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fU0NBTEFSX1JEX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVVZEX0pNSV9FTkNfU1dBUF9DTlRMX19TQ0FMQVJfV1JfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfSk1JX0VOQ19TV0FQX0NOVExfX0hVRkZfRkVOQ0VfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fUkJfTUNfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fSUJfTUNfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fUkJfTUVNX1dSX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fSUJfTUVNX1dSX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fUkJfTUVNX1JEX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fSUJfTUVNX1JEX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fUFJFRU1QVF9XUl9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fUEVMX1JEX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fQlNfV1JfTUNfU1dBUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fU0NBTEFSX1JEX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fU0NBTEFSX1dSX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFVWRF9KTUlfRU5DX1NXQVBfQ05UTF9fSFVGRl9GRU5DRV9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisvL1VWRF9KTUlfQ05UTAorI2RlZmluZSBVVkRfSk1JX0NOVExfX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0pNSV9DTlRMX19NQ19SRF9SRVFfUkVUX01BWF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9KTUlfQ05UTF9fU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9KTUlfQ05UTF9fTUNfUkRfUkVRX1JFVF9NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGMDBMCisvL1VWRF9KTUlfSFVGRl9GRU5DRV82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9KTUlfSFVGRl9GRU5DRV82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSk1JX0hVRkZfRkVOQ0VfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfSk1JX0hVRkZfRkVOQ0VfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0pNSV9IVUZGX0ZFTkNFXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KTUlfSFVGRl9GRU5DRV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9KTUlfREVDX1NXQVBfQ05UTDIKKyNkZWZpbmUgVVZEX0pNSV9ERUNfU1dBUF9DTlRMMl9fSlBFRzJfUkRfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KTUlfREVDX1NXQVBfQ05UTDJfX0pQRUcyX1dSX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVEwyX19KUEVHMl9SRF9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBVVkRfSk1JX0RFQ19TV0FQX0NOVEwyX19KUEVHMl9XUl9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfanBlZ19jb21tb25fZGVjCisvL0pQRUdfU09GVF9SRVNFVF9TVEFUVVMKKyNkZWZpbmUgSlBFR19TT0ZUX1JFU0VUX1NUQVRVU19fSlBFR19ERUNfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEpQRUdfU09GVF9SRVNFVF9TVEFUVVNfX0pQRUcyX0RFQ19SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBKUEVHX1NPRlRfUkVTRVRfU1RBVFVTX19ESlJCQ19SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSlBFR19TT0ZUX1JFU0VUX1NUQVRVU19fSlBFR19FTkNfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEpQRUdfU09GVF9SRVNFVF9TVEFUVVNfX0VKUkJDX1JFU0VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBKUEVHX1NPRlRfUkVTRVRfU1RBVFVTX19KTUNJRl9SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgSlBFR19TT0ZUX1JFU0VUX1NUQVRVU19fSlBFR19ERUNfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSlBFR19TT0ZUX1JFU0VUX1NUQVRVU19fSlBFRzJfREVDX1JFU0VUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSlBFR19TT0ZUX1JFU0VUX1NUQVRVU19fREpSQkNfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgSlBFR19TT0ZUX1JFU0VUX1NUQVRVU19fSlBFR19FTkNfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgSlBFR19TT0ZUX1JFU0VUX1NUQVRVU19fRUpSQkNfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgSlBFR19TT0ZUX1JFU0VUX1NUQVRVU19fSk1DSUZfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKy8vSlBFR19TWVNfSU5UX0VOCisjZGVmaW5lIEpQRUdfU1lTX0lOVF9FTl9fREpQRUdfQ09SRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX1NZU19JTlRfRU5fX0RKUkJDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSlBFR19TWVNfSU5UX0VOX19ESlBFR19QRl9SUFRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEpQRUdfU1lTX0lOVF9FTl9fRUpQRUdfUEZfUlBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBKUEVHX1NZU19JTlRfRU5fX0VKUEVHX0NPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSlBFR19TWVNfSU5UX0VOX19FSlJCQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEpQRUdfU1lTX0lOVF9FTl9fREpQRUdfQ09SRTJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBKUEVHX1NZU19JTlRfRU5fX0RKUEVHX0NPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBKUEVHX1NZU19JTlRfRU5fX0RKUkJDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBKUEVHX1NZU19JTlRfRU5fX0RKUEVHX1BGX1JQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBKUEVHX1NZU19JTlRfRU5fX0VKUEVHX1BGX1JQVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBKUEVHX1NZU19JTlRfRU5fX0VKUEVHX0NPUkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBKUEVHX1NZU19JTlRfRU5fX0VKUkJDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBKUEVHX1NZU19JTlRfRU5fX0RKUEVHX0NPUkUyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9KUEVHX1NZU19JTlRfU1RBVFVTCisjZGVmaW5lIEpQRUdfU1lTX0lOVF9TVEFUVVNfX0RKUEVHX0NPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX1NZU19JTlRfU1RBVFVTX19ESlJCQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSlBFR19TWVNfSU5UX1NUQVRVU19fREpQRUdfUEZfUlBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEpQRUdfU1lTX0lOVF9TVEFUVVNfX0VKUEVHX1BGX1JQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBKUEVHX1NZU19JTlRfU1RBVFVTX19FSlBFR19DT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSlBFR19TWVNfSU5UX1NUQVRVU19fRUpSQkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEpQRUdfU1lTX0lOVF9TVEFUVVNfX0RKUEVHX0NPUkUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBKUEVHX1NZU19JTlRfU1RBVFVTX19ESlBFR19DT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBKUEVHX1NZU19JTlRfU1RBVFVTX19ESlJCQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBKUEVHX1NZU19JTlRfU1RBVFVTX19ESlBFR19QRl9SUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBKUEVHX1NZU19JTlRfU1RBVFVTX19FSlBFR19QRl9SUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBKUEVHX1NZU19JTlRfU1RBVFVTX19FSlBFR19DT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBKUEVHX1NZU19JTlRfU1RBVFVTX19FSlJCQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBKUEVHX1NZU19JTlRfU1RBVFVTX19ESlBFR19DT1JFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9KUEVHX1NZU19JTlRfQUNLCisjZGVmaW5lIEpQRUdfU1lTX0lOVF9BQ0tfX0RKUEVHX0NPUkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX1NZU19JTlRfQUNLX19ESlJCQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSlBFR19TWVNfSU5UX0FDS19fREpQRUdfUEZfUlBUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEpQRUdfU1lTX0lOVF9BQ0tfX0VKUEVHX1BGX1JQVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBKUEVHX1NZU19JTlRfQUNLX19FSlBFR19DT1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSlBFR19TWVNfSU5UX0FDS19fRUpSQkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEpQRUdfU1lTX0lOVF9BQ0tfX0RKUEVHX0NPUkUyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBKUEVHX1NZU19JTlRfQUNLX19ESlBFR19DT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBKUEVHX1NZU19JTlRfQUNLX19ESlJCQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBKUEVHX1NZU19JTlRfQUNLX19ESlBFR19QRl9SUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBKUEVHX1NZU19JTlRfQUNLX19FSlBFR19QRl9SUFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBKUEVHX1NZU19JTlRfQUNLX19FSlBFR19DT1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBKUEVHX1NZU19JTlRfQUNLX19FSlJCQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBKUEVHX1NZU19JTlRfQUNLX19ESlBFR19DT1JFMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorLy9KUEVHX01BU1RJTlRfRU4KKyNkZWZpbmUgSlBFR19NQVNUSU5UX0VOX19PVkVSUlVOX1JTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEpQRUdfTUFTVElOVF9FTl9fSU5UX09WRVJSVU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBKUEVHX01BU1RJTlRfRU5fX09WRVJSVU5fUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBKUEVHX01BU1RJTlRfRU5fX0lOVF9PVkVSUlVOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9KUEVHX0lIX0NUUkwKKyNkZWZpbmUgSlBFR19JSF9DVFJMX19JSF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEpQRUdfSUhfQ1RSTF9fSUhfU1RBTExfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBKUEVHX0lIX0NUUkxfX0lIX1NUQVRVU19DTEVBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSlBFR19JSF9DVFJMX19JSF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIEpQRUdfSUhfQ1RSTF9fSUhfVVNFUl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBKUEVHX0lIX0NUUkxfX0lIX1JJTkdJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIEpQRUdfSUhfQ1RSTF9fSUhfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEpQRUdfSUhfQ1RSTF9fSUhfU1RBTExfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEpQRUdfSUhfQ1RSTF9fSUhfU1RBVFVTX0NMRUFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEpQRUdfSUhfQ1RSTF9fSUhfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzhMCisjZGVmaW5lIEpQRUdfSUhfQ1RSTF9fSUhfVVNFUl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwN0ZGODBMCisjZGVmaW5lIEpQRUdfSUhfQ1RSTF9fSUhfUklOR0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGODAwMDBMCisvL0pSQkJNX0FSQl9DVFJMCisjZGVmaW5lIEpSQkJNX0FSQl9DVFJMX19ESlJCQ19EUk9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUkJCTV9BUkJfQ1RSTF9fRUpSQkNfRFJPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSlJCQk1fQVJCX0NUUkxfX1NSQk1fRFJPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEpSQkJNX0FSQl9DVFJMX19ESlJCQ19EUk9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEpSQkJNX0FSQl9DVFJMX19FSlJCQ19EUk9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEpSQkJNX0FSQl9DVFJMX19TUkJNX0RST1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX3V2ZF9qcGVnX2NvbW1vbl9zY2xrX2RlYworLy9KUEVHX0NHQ19HQVRFCisjZGVmaW5lIEpQRUdfQ0dDX0dBVEVfX0pQRUdfREVDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX0NHQ19HQVRFX19KUEVHMl9ERUNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSlBFR19DR0NfR0FURV9fSlBFR19FTkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEpQRUdfQ0dDX0dBVEVfX0pNQ0lGX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBKUEVHX0NHQ19HQVRFX19KUkJCTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSlBFR19DR0NfR0FURV9fSlBFR19ERUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSlBFR19DR0NfR0FURV9fSlBFRzJfREVDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgSlBFR19DR0NfR0FURV9fSlBFR19FTkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgSlBFR19DR0NfR0FURV9fSk1DSUZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgSlBFR19DR0NfR0FURV9fSlJCQk1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKy8vSlBFR19DR0NfQ1RSTAorI2RlZmluZSBKUEVHX0NHQ19DVFJMX19EWU5fQ0xPQ0tfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fQ0xLX0dBVEVfRExZX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEpQRUdfQ0dDX0NUUkxfX0NMS19PRkZfREVMQVlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBKUEVHX0NHQ19DVFJMX19EWU5fT0NMS19SQU1QX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fRFlOX1JDTEtfUkFNUF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIEpQRUdfQ0dDX0NUUkxfX0dBVEVSX0RJVl9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBKUEVHX0NHQ19DVFJMX19KUEVHX0RFQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEpQRUdfQ0dDX0NUUkxfX0pQRUcyX0RFQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fSlBFR19FTkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBKUEVHX0NHQ19DVFJMX19KTUNJRl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIEpQRUdfQ0dDX0NUUkxfX0pSQkJNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fRFlOX0NMT0NLX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fQ0xLX0dBVEVfRExZX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRUwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fQ0xLX09GRl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNFMEwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fRFlOX09DTEtfUkFNUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fRFlOX1JDTEtfUkFNUF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fR0FURVJfRElWX0lEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzAwMEwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fSlBFR19ERUNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fSlBFRzJfREVDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fSlBFR19FTkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fSk1DSUZfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgSlBFR19DR0NfQ1RSTF9fSlJCQk1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vSlBFR19DR0NfU1RBVFVTCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlBFR19ERUNfVkNMS19BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX0NHQ19TVEFUVVNfX0pQRUdfREVDX1NDTEtfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSlBFR19DR0NfU1RBVFVTX19KUEVHMl9ERUNfVkNMS19BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlBFRzJfREVDX1NDTEtfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBKUEVHX0NHQ19TVEFUVVNfX0pQRUdfRU5DX1ZDTEtfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgSlBFR19DR0NfU1RBVFVTX19KUEVHX0VOQ19TQ0xLX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSk1DSUZfU0NMS19BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBKUEVHX0NHQ19TVEFUVVNfX0pSQkJNX1ZDTEtfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgSlBFR19DR0NfU1RBVFVTX19KUkJCTV9TQ0xLX0FDVElWRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlBFR19ERUNfVkNMS19BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlBFR19ERUNfU0NMS19BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlBFRzJfREVDX1ZDTEtfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlBFRzJfREVDX1NDTEtfQUNUSVZFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlBFR19FTkNfVkNMS19BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlBFR19FTkNfU0NMS19BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSk1DSUZfU0NMS19BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlJCQk1fVkNMS19BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIEpQRUdfQ0dDX1NUQVRVU19fSlJCQk1fU0NMS19BQ1RJVkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisvL0pQRUdfQ09NTl9DR0NfTUVNX0NUUkwKKyNkZWZpbmUgSlBFR19DT01OX0NHQ19NRU1fQ1RSTF9fSk1DSUZfTFNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEpQRUdfQ09NTl9DR0NfTUVNX0NUUkxfX0pNQ0lGX0RTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBKUEVHX0NPTU5fQ0dDX01FTV9DVFJMX19KTUNJRl9TRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgSlBFR19DT01OX0NHQ19NRU1fQ1RSTF9fTFNfU0VUX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBKUEVHX0NPTU5fQ0dDX01FTV9DVFJMX19MU19DTEVBUl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIEpQRUdfQ09NTl9DR0NfTUVNX0NUUkxfX0pNQ0lGX0xTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEpQRUdfQ09NTl9DR0NfTUVNX0NUUkxfX0pNQ0lGX0RTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEpQRUdfQ09NTl9DR0NfTUVNX0NUUkxfX0pNQ0lGX1NEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIEpQRUdfQ09NTl9DR0NfTUVNX0NUUkxfX0xTX1NFVF9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMCisjZGVmaW5lIEpQRUdfQ09NTl9DR0NfTUVNX0NUUkxfX0xTX0NMRUFSX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDBMCisvL0pQRUdfREVDX0NHQ19NRU1fQ1RSTAorI2RlZmluZSBKUEVHX0RFQ19DR0NfTUVNX0NUUkxfX0pQRUdfREVDX0xTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSlBFR19ERUNfQ0dDX01FTV9DVFJMX19KUEVHX0RFQ19EU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEpQRUdfREVDX0NHQ19NRU1fQ1RSTF9fSlBFR19ERUNfU0RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBKUEVHX0RFQ19DR0NfTUVNX0NUUkxfX0pQRUdfREVDX0xTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBKUEVHX0RFQ19DR0NfTUVNX0NUUkxfX0pQRUdfREVDX0RTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBKUEVHX0RFQ19DR0NfTUVNX0NUUkxfX0pQRUdfREVDX1NEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9KUEVHMl9ERUNfQ0dDX01FTV9DVFJMCisjZGVmaW5lIEpQRUcyX0RFQ19DR0NfTUVNX0NUUkxfX0pQRUcyX0RFQ19MU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHMl9ERUNfQ0dDX01FTV9DVFJMX19KUEVHMl9ERUNfRFNfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgSlBFRzJfREVDX0NHQ19NRU1fQ1RSTF9fSlBFRzJfREVDX1NEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIEpQRUcyX0RFQ19DR0NfTUVNX0NUUkxfX0pQRUcyX0RFQ19MU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIEpQRUcyX0RFQ19DR0NfTUVNX0NUUkxfX0pQRUcyX0RFQ19EU19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIEpQRUcyX0RFQ19DR0NfTUVNX0NUUkxfX0pQRUcyX0RFQ19TRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL0pQRUdfRU5DX0NHQ19NRU1fQ1RSTAorI2RlZmluZSBKUEVHX0VOQ19DR0NfTUVNX0NUUkxfX0pQRUdfRU5DX0xTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSlBFR19FTkNfQ0dDX01FTV9DVFJMX19KUEVHX0VOQ19EU19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIEpQRUdfRU5DX0NHQ19NRU1fQ1RSTF9fSlBFR19FTkNfU0RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBKUEVHX0VOQ19DR0NfTUVNX0NUUkxfX0pQRUdfRU5DX0xTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBKUEVHX0VOQ19DR0NfTUVNX0NUUkxfX0pQRUdfRU5DX0RTX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBKUEVHX0VOQ19DR0NfTUVNX0NUUkxfX0pQRUdfRU5DX1NEX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9KUEVHX1NPRlRfUkVTRVQyCisjZGVmaW5lIEpQRUdfU09GVF9SRVNFVDJfX0FUT01JQ19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX1NPRlRfUkVTRVQyX19BVE9NSUNfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorLy9KUEVHX1BFUkZfQkFOS19DT05GCisjZGVmaW5lIEpQRUdfUEVSRl9CQU5LX0NPTkZfX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX1BFUkZfQkFOS19DT05GX19QRUVLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgSlBFR19QRVJGX0JBTktfQ09ORl9fQ09OQ0FURU5BVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBKUEVHX1BFUkZfQkFOS19DT05GX19SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBKUEVHX1BFUkZfQkFOS19DT05GX19QRUVLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBKUEVHX1BFUkZfQkFOS19DT05GX19DT05DQVRFTkFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorLy9KUEVHX1BFUkZfQkFOS19FVkVOVF9TRUwKKyNkZWZpbmUgSlBFR19QRVJGX0JBTktfRVZFTlRfU0VMX19TRUwwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEpQRUdfUEVSRl9CQU5LX0VWRU5UX1NFTF9fU0VMMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBKUEVHX1BFUkZfQkFOS19FVkVOVF9TRUxfX1NFTDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEpQRUdfUEVSRl9CQU5LX0VWRU5UX1NFTF9fU0VMM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgSlBFR19QRVJGX0JBTktfRVZFTlRfU0VMX19TRUwwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgSlBFR19QRVJGX0JBTktfRVZFTlRfU0VMX19TRUwxX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgSlBFR19QRVJGX0JBTktfRVZFTlRfU0VMX19TRUwyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGMDAwMEwKKyNkZWZpbmUgSlBFR19QRVJGX0JBTktfRVZFTlRfU0VMX19TRUwzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMEwKKy8vSlBFR19QRVJGX0JBTktfQ09VTlQwCisjZGVmaW5lIEpQRUdfUEVSRl9CQU5LX0NPVU5UMF9fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX1BFUkZfQkFOS19DT1VOVDBfX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9KUEVHX1BFUkZfQkFOS19DT1VOVDEKKyNkZWZpbmUgSlBFR19QRVJGX0JBTktfQ09VTlQxX19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIEpQRUdfUEVSRl9CQU5LX0NPVU5UMV9fQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0pQRUdfUEVSRl9CQU5LX0NPVU5UMgorI2RlZmluZSBKUEVHX1BFUkZfQkFOS19DT1VOVDJfX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgSlBFR19QRVJGX0JBTktfQ09VTlQyX19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vSlBFR19QRVJGX0JBTktfQ09VTlQzCisjZGVmaW5lIEpQRUdfUEVSRl9CQU5LX0NPVU5UM19fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBKUEVHX1BFUkZfQkFOS19DT1VOVDNfX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfcGdfZGVjCisvL1VWRF9QR0ZTTV9DT05GSUcKKyNkZWZpbmUgVVZEX1BHRlNNX0NPTkZJR19fVVZETV9QV1JfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRFVfUFdSX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfUEdGU01fQ09ORklHX19VVkRGX1BXUl9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1BHRlNNX0NPTkZJR19fVVZEQ19QV1JfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWREJfUFdSX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfUEdGU01fQ09ORklHX19VVkRJTF9QV1JfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX1BHRlNNX0NPTkZJR19fVVZESVJfUFdSX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRFREX1BXUl9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBVVkRfUEdGU01fQ09ORklHX19VVkRURV9QV1JfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWREVfUFdSX0NPTkZJR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVVZEX1BHRlNNX0NPTkZJR19fVVZEV19QV1JfQ09ORklHX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfUEdGU01fQ09ORklHX19VVkRKX1BXUl9DT05GSUdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRE1fUFdSX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRFVfUFdSX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWREZfUFdSX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRENfUFdSX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWREJfUFdSX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRElMX1BXUl9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRElSX1BXUl9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRFREX1BXUl9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRFRFX1BXUl9DT05GSUdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWREVfUFdSX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWRFdfUFdSX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9DT05GSUdfX1VWREpfUFdSX0NPTkZJR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisvL1VWRF9QR0ZTTV9TVEFUVVMKKyNkZWZpbmUgVVZEX1BHRlNNX1NUQVRVU19fVVZETV9QV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRFVfUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfUEdGU01fU1RBVFVTX19VVkRGX1BXUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1BHRlNNX1NUQVRVU19fVVZEQ19QV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWREJfUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfUEdGU01fU1RBVFVTX19VVkRJTF9QV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX1BHRlNNX1NUQVRVU19fVVZESVJfUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRFREX1BXUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBVVkRfUEdGU01fU1RBVFVTX19VVkRURV9QV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWREVfUFdSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVVZEX1BHRlNNX1NUQVRVU19fVVZEV19QV1JfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfUEdGU01fU1RBVFVTX19VVkRKX1BXUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRE1fUFdSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRFVfUFdSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMENMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWREZfUFdSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRENfUFdSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzBMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWREJfUFdSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRElMX1BXUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRElSX1BXUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRFREX1BXUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRFRFX1BXUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWREVfUFdSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQzAwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWRFdfUFdSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzMDAwMDBMCisjZGVmaW5lIFVWRF9QR0ZTTV9TVEFUVVNfX1VWREpfUFdSX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBDMDAwMDBMCisvL1VWRF9QT1dFUl9TVEFUVVMKKyNkZWZpbmUgVVZEX1BPV0VSX1NUQVRVU19fVVZEX1BPV0VSX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9QT1dFUl9TVEFUVVNfX1VWRF9QR19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfUE9XRVJfU1RBVFVTX19VVkRfQ0dfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1BPV0VSX1NUQVRVU19fVVZEX1BHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9QT1dFUl9TVEFUVVNfX1JCQ19TTk9PUF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfUE9XRVJfU1RBVFVTX19TV19SQl9TTk9PUF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVVZEX1BPV0VSX1NUQVRVU19fU1RBTExfRFBHX1BPV0VSX1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBVVkRfUE9XRVJfU1RBVFVTX19VVkRfUE9XRVJfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBVVkRfUE9XRVJfU1RBVFVTX19VVkRfUEdfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfUE9XRVJfU1RBVFVTX19VVkRfQ0dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBVVkRfUE9XRVJfU1RBVFVTX19VVkRfUEdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBVVkRfUE9XRVJfU1RBVFVTX19SQkNfU05PT1BfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBVVkRfUE9XRVJfU1RBVFVTX19TV19SQl9TTk9PUF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBVVkRfUE9XRVJfU1RBVFVTX19TVEFMTF9EUEdfUE9XRVJfVVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9VVkRfUEdfSU5EX0lOREVYCisjZGVmaW5lIFVWRF9QR19JTkRfSU5ERVhfX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfUEdfSU5EX0lOREVYX19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorLy9VVkRfUEdfSU5EX0RBVEEKKyNkZWZpbmUgVVZEX1BHX0lORF9EQVRBX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9QR19JTkRfREFUQV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL0NDX1VWRF9IQVJWRVNUSU5HCisjZGVmaW5lIENDX1VWRF9IQVJWRVNUSU5HX19NTVNDSF9ESVNBQkxFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBDQ19VVkRfSEFSVkVTVElOR19fVVZEX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgQ0NfVVZEX0hBUlZFU1RJTkdfX01NU0NIX0RJU0FCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgQ0NfVVZEX0hBUlZFU1RJTkdfX1VWRF9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKy8vVVZEX0pQRUdfUE9XRVJfU1RBVFVTCisjZGVmaW5lIFVWRF9KUEVHX1BPV0VSX1NUQVRVU19fSlBFR19QT1dFUl9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfSlBFR19QT1dFUl9TVEFUVVNfX0pQRUdfUEdfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0pQRUdfUE9XRVJfU1RBVFVTX19KUkJDX0RFQ19TTk9PUF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9KUEVHX1BPV0VSX1NUQVRVU19fSlJCQ19FTkNfU05PT1BfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfSlBFR19QT1dFUl9TVEFUVVNfX1NUQUxMX0pEUEdfUE9XRVJfVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFVWRF9KUEVHX1BPV0VSX1NUQVRVU19fSlBFR19QT1dFUl9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9KUEVHX1BPV0VSX1NUQVRVU19fSlBFR19QR19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFVWRF9KUEVHX1BPV0VSX1NUQVRVU19fSlJCQ19ERUNfU05PT1BfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFVWRF9KUEVHX1BPV0VSX1NUQVRVU19fSlJCQ19FTkNfU05PT1BfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFVWRF9KUEVHX1BPV0VSX1NUQVRVU19fU1RBTExfSkRQR19QT1dFUl9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1VWRF9EUEdfTE1BX0NUTAorI2RlZmluZSBVVkRfRFBHX0xNQV9DVExfX1JFQURfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0RQR19MTUFfQ1RMX19NQVNLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9EUEdfTE1BX0NUTF9fQUREUl9BVVRPX0lOQ1JFTUVOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfRFBHX0xNQV9DVExfX1NSQU1fU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0RQR19MTUFfQ1RMX19SRUFEX1dSSVRFX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfRFBHX0xNQV9DVExfX1JFQURfV1JJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfRFBHX0xNQV9DVExfX01BU0tfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfRFBHX0xNQV9DVExfX0FERFJfQVVUT19JTkNSRU1FTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfRFBHX0xNQV9DVExfX1NSQU1fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVVkRfRFBHX0xNQV9DVExfX1JFQURfV1JJVEVfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9VVkRfRFBHX0xNQV9EQVRBCisjZGVmaW5lIFVWRF9EUEdfTE1BX0RBVEFfX0xNQV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfRFBHX0xNQV9EQVRBX19MTUFfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfRFBHX0xNQV9NQVNLCisjZGVmaW5lIFVWRF9EUEdfTE1BX01BU0tfX0xNQV9NQVNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfRFBHX0xNQV9NQVNLX19MTUFfTUFTS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfRFBHX1BBVVNFCisjZGVmaW5lIFVWRF9EUEdfUEFVU0VfX0pQRUdfUEFVU0VfRFBHX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfRFBHX1BBVVNFX19KUEVHX1BBVVNFX0RQR19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX0RQR19QQVVTRV9fTkpfUEFVU0VfRFBHX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9EUEdfUEFVU0VfX05KX1BBVVNFX0RQR19BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfRFBHX1BBVVNFX19KUEVHX1BBVVNFX0RQR19SRVFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfRFBHX1BBVVNFX19KUEVHX1BBVVNFX0RQR19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfRFBHX1BBVVNFX19OSl9QQVVTRV9EUEdfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfRFBHX1BBVVNFX19OSl9QQVVTRV9EUEdfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorLy9VVkRfU0NSQVRDSDEKKyNkZWZpbmUgVVZEX1NDUkFUQ0gxX19TQ1JBVENIMV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9TQ1JBVENIMV9fU0NSQVRDSDFfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9TQ1JBVENIMgorI2RlZmluZSBVVkRfU0NSQVRDSDJfX1NDUkFUQ0gyX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NDUkFUQ0gyX19TQ1JBVENIMl9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1NDUkFUQ0gzCisjZGVmaW5lIFVWRF9TQ1JBVENIM19fU0NSQVRDSDNfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU0NSQVRDSDNfX1NDUkFUQ0gzX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfU0NSQVRDSDQKKyNkZWZpbmUgVVZEX1NDUkFUQ0g0X19TQ1JBVENINF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9TQ1JBVENINF9fU0NSQVRDSDRfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9TQ1JBVENINQorI2RlZmluZSBVVkRfU0NSQVRDSDVfX1NDUkFUQ0g1X0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NDUkFUQ0g1X19TQ1JBVENINV9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1NDUkFUQ0g2CisjZGVmaW5lIFVWRF9TQ1JBVENINl9fU0NSQVRDSDZfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU0NSQVRDSDZfX1NDUkFUQ0g2X0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfU0NSQVRDSDcKKyNkZWZpbmUgVVZEX1NDUkFUQ0g3X19TQ1JBVENIN19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9TQ1JBVENIN19fU0NSQVRDSDdfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9TQ1JBVENIOAorI2RlZmluZSBVVkRfU0NSQVRDSDhfX1NDUkFUQ0g4X0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NDUkFUQ0g4X19TQ1JBVENIOF9EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1NDUkFUQ0g5CisjZGVmaW5lIFVWRF9TQ1JBVENIOV9fU0NSQVRDSDlfREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU0NSQVRDSDlfX1NDUkFUQ0g5X0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfU0NSQVRDSDEwCisjZGVmaW5lIFVWRF9TQ1JBVENIMTBfX1NDUkFUQ0gxMF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU0NSQVRDSDEwX19TQ1JBVENIMTBfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfU0NSQVRDSDExCisjZGVmaW5lIFVWRF9TQ1JBVENIMTFfX1NDUkFUQ0gxMV9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU0NSQVRDSDExX19TQ1JBVENIMTFfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfU0NSQVRDSDEyCisjZGVmaW5lIFVWRF9TQ1JBVENIMTJfX1NDUkFUQ0gxMl9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU0NSQVRDSDEyX19TQ1JBVENIMTJfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfU0NSQVRDSDEzCisjZGVmaW5lIFVWRF9TQ1JBVENIMTNfX1NDUkFUQ0gxM19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU0NSQVRDSDEzX19TQ1JBVENIMTNfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfU0NSQVRDSDE0CisjZGVmaW5lIFVWRF9TQ1JBVENIMTRfX1NDUkFUQ0gxNF9EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU0NSQVRDSDE0X19TQ1JBVENIMTRfREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfRlJFRV9DT1VOVEVSX1JFRworI2RlZmluZSBVVkRfRlJFRV9DT1VOVEVSX1JFR19fRlJFRV9DT1VOVEVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0ZSRUVfQ09VTlRFUl9SRUdfX0ZSRUVfQ09VTlRFUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0RQR19MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9EUEdfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfRFBHX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfRFBHX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9EUEdfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfRFBHX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfRFBHX1ZDUFVfQ0FDSEVfT0ZGU0VUMAorI2RlZmluZSBVVkRfRFBHX1ZDUFVfQ0FDSEVfT0ZGU0VUMF9fQ0FDSEVfT0ZGU0VUMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0RQR19WQ1BVX0NBQ0hFX09GRlNFVDBfX0NBQ0hFX09GRlNFVDBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGRkZGRkwKKy8vVVZEX0RQR19MTUlfVkNQVV9DQUNIRV9WTUlECisjZGVmaW5lIFVWRF9EUEdfTE1JX1ZDUFVfQ0FDSEVfVk1JRF9fVkNQVV9DQUNIRV9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfRFBHX0xNSV9WQ1BVX0NBQ0hFX1ZNSURfX1ZDUFVfQ0FDSEVfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorLy9VVkRfUEZfU1RBVFVTCisjZGVmaW5lIFVWRF9QRl9TVEFUVVNfX0pQRUdfUEZfT0NDVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19OSl9QRl9PQ0NVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX1BGX1NUQVRVU19fRU5DT0RFUjBfUEZfT0NDVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9QRl9TVEFUVVNfX0VOQ09ERVIxX1BGX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSMl9QRl9PQ0NVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1BGX1NUQVRVU19fRU5DT0RFUjNfUEZfT0NDVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFVWRF9QRl9TVEFUVVNfX0VOQ09ERVI0X1BGX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FSlBFR19QRl9PQ0NVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX1BGX1NUQVRVU19fSlBFR19QRl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9QRl9TVEFUVVNfX05KX1BGX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSMF9QRl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX1BGX1NUQVRVU19fRU5DT0RFUjFfUEZfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFVWRF9QRl9TVEFUVVNfX0VOQ09ERVIyX1BGX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSM19QRl9DTEVBUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVVZEX1BGX1NUQVRVU19fRU5DT0RFUjRfUEZfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFVWRF9QRl9TVEFUVVNfX0VKUEVHX1BGX0NMRUFSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19OSl9BVE1fUEZfT0NDVVJFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9QRl9TVEFUVVNfX0RKX0FUTV9QRl9PQ0NVUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVVZEX1BGX1NUQVRVU19fRUpfQVRNX1BGX09DQ1VSRURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19KUEVHX1BGX09DQ1VSRURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19OSl9QRl9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSMF9QRl9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSMV9QRl9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSMl9QRl9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSM19QRl9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSNF9QRl9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FSlBFR19QRl9PQ0NVUkVEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19KUEVHX1BGX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19OSl9QRl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSMF9QRl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSMV9QRl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSMl9QRl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSM19QRl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FTkNPREVSNF9QRl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FSlBFR19QRl9DTEVBUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19OSl9BVE1fUEZfT0NDVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19ESl9BVE1fUEZfT0NDVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBVVkRfUEZfU1RBVFVTX19FSl9BVE1fUEZfT0NDVVJFRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorLy9VVkRfRFBHX0NMS19FTl9WQ1BVX1JFUE9SVAorI2RlZmluZSBVVkRfRFBHX0NMS19FTl9WQ1BVX1JFUE9SVF9fQ0xLX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0RQR19DTEtfRU5fVkNQVV9SRVBPUlRfX1ZDUFVfUkVQT1JUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9EUEdfQ0xLX0VOX1ZDUFVfUkVQT1JUX19DTEtfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9EUEdfQ0xLX0VOX1ZDUFVfUkVQT1JUX19WQ1BVX1JFUE9SVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkVMCisvL1VWRF9HRlg4X0FERFJfQ09ORklHCisjZGVmaW5lIFVWRF9HRlg4X0FERFJfQ09ORklHX19QSVBFX0lOVEVSTEVBVkVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfR0ZYOF9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDcwTAorLy9VVkRfR0ZYMTBfQUREUl9DT05GSUcKKyNkZWZpbmUgVVZEX0dGWDEwX0FERFJfQ09ORklHX19OVU1fUElQRVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9HRlgxMF9BRERSX0NPTkZJR19fUElQRV9JTlRFUkxFQVZFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfR0ZYMTBfQUREUl9DT05GSUdfX05VTV9CQU5LU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX0dGWDEwX0FERFJfQ09ORklHX19OVU1fU0hBREVSX0VOR0lORVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBVVkRfR0ZYMTBfQUREUl9DT05GSUdfX05VTV9QSVBFU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBVVkRfR0ZYMTBfQUREUl9DT05GSUdfX1BJUEVfSU5URVJMRUFWRV9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBVVkRfR0ZYMTBfQUREUl9DT05GSUdfX05VTV9CQU5LU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwTAorI2RlZmluZSBVVkRfR0ZYMTBfQUREUl9DT05GSUdfX05VTV9TSEFERVJfRU5HSU5FU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTgwMDAwTAorLy9VVkRfR1BDTlQyX0NOVEwKKyNkZWZpbmUgVVZEX0dQQ05UMl9DTlRMX19DTFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9HUENOVDJfQ05UTF9fU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfR1BDTlQyX0NOVExfX0NPVU5UVVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0dQQ05UMl9DTlRMX19DTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0dQQ05UMl9DTlRMX19TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0dQQ05UMl9DTlRMX19DT1VOVFVQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vVVZEX0dQQ05UMl9UQVJHRVRfTE9XRVIKKyNkZWZpbmUgVVZEX0dQQ05UMl9UQVJHRVRfTE9XRVJfX1RBUkdFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9HUENOVDJfVEFSR0VUX0xPV0VSX19UQVJHRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9HUENOVDJfU1RBVFVTX0xPV0VSCisjZGVmaW5lIFVWRF9HUENOVDJfU1RBVFVTX0xPV0VSX19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfR1BDTlQyX1NUQVRVU19MT1dFUl9fQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfR1BDTlQyX1RBUkdFVF9VUFBFUgorI2RlZmluZSBVVkRfR1BDTlQyX1RBUkdFVF9VUFBFUl9fVEFSR0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQQ05UMl9UQVJHRVRfVVBQRVJfX1RBUkdFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRkwKKy8vVVZEX0dQQ05UMl9TVEFUVVNfVVBQRVIKKyNkZWZpbmUgVVZEX0dQQ05UMl9TVEFUVVNfVVBQRVJfX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9HUENOVDJfU1RBVFVTX1VQUEVSX19DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1VWRF9HUENOVDNfQ05UTAorI2RlZmluZSBVVkRfR1BDTlQzX0NOVExfX0NMUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQQ05UM19DTlRMX19TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9HUENOVDNfQ05UTF9fQ09VTlRVUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfR1BDTlQzX0NOVExfX0ZSRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVVZEX0dQQ05UM19DTlRMX19ESVZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFVWRF9HUENOVDNfQ05UTF9fQ0xSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9HUENOVDNfQ05UTF9fU1RBUlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9HUENOVDNfQ05UTF9fQ09VTlRVUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFVWRF9HUENOVDNfQ05UTF9fRlJFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRjhMCisjZGVmaW5lIFVWRF9HUENOVDNfQ05UTF9fRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZDMDBMCisvL1VWRF9HUENOVDNfVEFSR0VUX0xPV0VSCisjZGVmaW5lIFVWRF9HUENOVDNfVEFSR0VUX0xPV0VSX19UQVJHRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfR1BDTlQzX1RBUkdFVF9MT1dFUl9fVEFSR0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfR1BDTlQzX1NUQVRVU19MT1dFUgorI2RlZmluZSBVVkRfR1BDTlQzX1NUQVRVU19MT1dFUl9fQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQQ05UM19TVEFUVVNfTE9XRVJfX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQQ05UM19UQVJHRVRfVVBQRVIKKyNkZWZpbmUgVVZEX0dQQ05UM19UQVJHRVRfVVBQRVJfX1RBUkdFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9HUENOVDNfVEFSR0VUX1VQUEVSX19UQVJHRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1VWRF9HUENOVDNfU1RBVFVTX1VQUEVSCisjZGVmaW5lIFVWRF9HUENOVDNfU1RBVFVTX1VQUEVSX19DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfR1BDTlQzX1NUQVRVU19VUFBFUl9fQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRkZWMKKy8vVVZEX1NUQVRVUworI2RlZmluZSBVVkRfU1RBVFVTX19SQkNfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NUQVRVU19fVkNQVV9SRVBPUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9TVEFUVVNfX1JCQ19BQ0NFU1NfR1BDT01fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX1NUQVRVU19fU1lTX0dQQ09NX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBVVkRfU1RBVFVTX19SQkNfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfU1RBVFVTX19WQ1BVX1JFUE9SVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZFTAorI2RlZmluZSBVVkRfU1RBVFVTX19SQkNfQUNDRVNTX0dQQ09NX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBVVkRfU1RBVFVTX19TWVNfR1BDT01fUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9VVkRfRU5DX1BJUEVfQlVTWQorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fSU1FX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0VOQ19QSVBFX0JVU1lfX1NNUF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9FTkNfUElQRV9CVVNZX19TSVRfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fU0RCX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVVZEX0VOQ19QSVBFX0JVU1lfX0VOVF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9FTkNfUElQRV9CVVNZX19FTlRfSEVBREVSX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTENNX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX0VOQ19QSVBFX0JVU1lfX01ETV9SRF9DVVJfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFVWRF9FTkNfUElQRV9CVVNZX19NRE1fUkRfUkVGX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTURNX1JEX0dFTl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVVZEX0VOQ19QSVBFX0JVU1lfX01ETV9XUl9SRUNPTl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFVWRF9FTkNfUElQRV9CVVNZX19NRE1fV1JfR0VOX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0NVUl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9FTkNfUElQRV9CVVNZX19NSUZfUkRfUkVGMF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVVZEX0VOQ19QSVBFX0JVU1lfX01JRl9XUl9HRU4wX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0dFTjBfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFVWRF9FTkNfUElQRV9CVVNZX19NSUZfV1JfR0VOMV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVVZEX0VOQ19QSVBFX0JVU1lfX01JRl9SRF9HRU4xX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0JTUDBfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9FTkNfUElQRV9CVVNZX19NSUZfV1JfQlNQMV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVVZEX0VOQ19QSVBFX0JVU1lfX01JRl9SRF9CU0QwX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFVWRF9FTkNfUElQRV9CVVNZX19NSUZfUkRfQlNEMl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgVVZEX0VOQ19QSVBFX0JVU1lfX01JRl9SRF9CU0QzX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDRfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFVWRF9FTkNfUElQRV9CVVNZX19NSUZfV1JfQlNQMl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVVZEX0VOQ19QSVBFX0JVU1lfX01JRl9XUl9CU1AzX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fSU1FX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fU01QX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fU0lUX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fU0RCX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fRU5UX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fRU5UX0hFQURFUl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTENNX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTURNX1JEX0NVUl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTURNX1JEX1JFRl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTURNX1JEX0dFTl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTURNX1dSX1JFQ09OX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTURNX1dSX0dFTl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0NVUl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX1JFRjBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0dFTjBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0dFTjBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0dFTjFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0dFTjFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0JTUDBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0JTUDFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDJfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDNfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDRfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0JTUDJfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBVVkRfRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0JTUDNfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAorLy9VVkRfU09GVF9SRVNFVAorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fUkJDX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX0xCU0lfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19MTUlfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fVkNQVV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX1VERUNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19DWFdfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fVEFQX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX01QQ19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19FRkNfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fSUhfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX01QUkRfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19JRENUX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fTE1JX1VNQ19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX1NQSF9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NSUZfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZgorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fTENNX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19TVVZEX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX0xCU0lfVkNMS19SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fVkNQVV9WQ0xLX1JFU0VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19VREVDX1ZDTEtfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX1VERUNfRENMS19SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fTVBDX0RDTEtfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NUFJEX1ZDTEtfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX01QUkRfRENMS19SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fSURDVF9WQ0xLX1JFU0VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NSUZfRENMS19SRVNFVF9TVEFUVVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX0xDTV9EQ0xLX1JFU0VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fU1VWRF9WQ0xLX1JFU0VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19TVVZEX0RDTEtfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVRfX1JFX0RDTEtfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBVVkRfU09GVF9SRVNFVF9fU1JFX0RDTEtfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19SQkNfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19MQlNJX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19MTUlfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19WQ1BVX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19VREVDX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19DWFdfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19UQVBfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NUENfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19FRkNfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19JSF9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NUFJEX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19JRENUX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19MTUlfVU1DX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19TUEhfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NSUZfU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19MQ01fU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19TVVZEX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19MQlNJX1ZDTEtfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19WQ1BVX1ZDTEtfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19VREVDX1ZDTEtfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19VREVDX0RDTEtfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NUENfRENMS19SRVNFVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NUFJEX1ZDTEtfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NUFJEX0RDTEtfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19JRENUX1ZDTEtfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19NSUZfRENMS19SRVNFVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19MQ01fRENMS19SRVNFVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19TVVZEX1ZDTEtfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19TVVZEX0RDTEtfUkVTRVRfU1RBVFVTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19SRV9EQ0xLX1JFU0VUX1NUQVRVU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUX19TUkVfRENMS19SRVNFVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1VWRF9TT0ZUX1JFU0VUMgorI2RlZmluZSBVVkRfU09GVF9SRVNFVDJfX0FUT01JQ19TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NPRlRfUkVTRVQyX19NTVNDSF9WQ0xLX1JFU0VUX1NUQVRVU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfU09GVF9SRVNFVDJfX01NU0NIX1NDTEtfUkVTRVRfU1RBVFVTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUMl9fQVRPTUlDX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUMl9fTU1TQ0hfVkNMS19SRVNFVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFVWRF9TT0ZUX1JFU0VUMl9fTU1TQ0hfU0NMS19SRVNFVF9TVEFUVVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisvL1VWRF9NTVNDSF9TT0ZUX1JFU0VUCisjZGVmaW5lIFVWRF9NTVNDSF9TT0ZUX1JFU0VUX19NTVNDSF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTU1TQ0hfU09GVF9SRVNFVF9fVEFQX1NPRlRfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX01NU0NIX1NPRlRfUkVTRVRfX01NU0NIX0xPQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBVVkRfTU1TQ0hfU09GVF9SRVNFVF9fTU1TQ0hfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfTU1TQ0hfU09GVF9SRVNFVF9fVEFQX1NPRlRfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfTU1TQ0hfU09GVF9SRVNFVF9fTU1TQ0hfTE9DS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9VVkRfQ0dDX0dBVEUKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19TWVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9DR0NfR0FURV9fVURFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfQ0dDX0dBVEVfX01QRUcyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19SRUdTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9DR0NfR0FURV9fUkJDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfQ0dDX0dBVEVfX0xNSV9NQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19MTUlfVU1DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9DR0NfR0FURV9fSURDVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBVVkRfQ0dDX0dBVEVfX01QUkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19NUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFVWRF9DR0NfR0FURV9fTEJTSV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBVVkRfQ0dDX0dBVEVfX0xSQkJNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19VREVDX1JFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9DR0NfR0FURV9fVURFQ19DTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVVkRfQ0dDX0dBVEVfX1VERUNfSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19VREVDX0RCX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVWRF9DR0NfR0FURV9fVURFQ19NUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19XQ0JfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBVVkRfQ0dDX0dBVEVfX1ZDUFVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFVWRF9DR0NfR0FURV9fTU1TQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19TWVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19VREVDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19NUEVHMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19SRUdTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19SQkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19MTUlfTUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19MTUlfVU1DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19JRENUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19NUFJEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19NUENfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19MQlNJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19MUkJCTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19VREVDX1JFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19VREVDX0NNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19VREVDX0lUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19VREVDX0RCX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19VREVDX01QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19XQ0JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19WQ1BVX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVVZEX0NHQ19HQVRFX19NTVNDSF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKy8vVVZEX0NHQ19TVEFUVVMKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX1NZU19TQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19TWVNfRENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fU1lTX1ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX1VERUNfU0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19VREVDX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fVURFQ19WQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX01QRUcyX1NDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUEVHMl9EQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fTVBFRzJfVkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX1JFR1NfU0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19SRUdTX1ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fUkJDX1NDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX0xNSV9NQ19TQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19MTUlfVU1DX1NDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fSURDVF9TQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX0lEQ1RfVkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUFJEX1NDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX01QUkRfRENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fTVBSRF9WQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUENfU0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX01QQ19EQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fTEJTSV9TQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19MQlNJX1ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX0xSQkJNX1NDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fV0NCX1NDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19WQ1BVX1NDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX1ZDUFVfVkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fTU1TQ0hfU0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NTVNDSF9WQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVVZEX0NHQ19TVEFUVVNfX0FMTF9FTkNfQUNUSVZFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBVVkRfQ0dDX1NUQVRVU19fQUxMX0RFQ19BQ1RJVkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19TWVNfU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19TWVNfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19TWVNfVkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19VREVDX1NDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19VREVDX0RDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19VREVDX1ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUEVHMl9TQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUEVHMl9EQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUEVHMl9WQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19SRUdTX1NDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19SRUdTX1ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19SQkNfU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19MTUlfTUNfU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19MTUlfVU1DX1NDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19JRENUX1NDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19JRENUX1ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUFJEX1NDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUFJEX0RDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUFJEX1ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUENfU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NUENfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19MQlNJX1NDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19MQlNJX1ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19MUkJCTV9TQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19XQ0JfU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19WQ1BVX1NDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19WQ1BVX1ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NTVNDSF9TQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19NTVNDSF9WQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19BTExfRU5DX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfU1RBVFVTX19BTExfREVDX0FDVElWRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1VWRF9DR0NfQ1RSTAorI2RlZmluZSBVVkRfQ0dDX0NUUkxfX0RZTl9DTE9DS19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0NHQ19DVFJMX19DTEtfR0FURV9ETFlfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fQ0xLX09GRl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfQ0dDX0NUUkxfX1VERUNfUkVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVVZEX0NHQ19DVFJMX19VREVDX0NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fVURFQ19JVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVVkRfQ0dDX0NUUkxfX1VERUNfREJfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVVZEX0NHQ19DVFJMX19VREVDX01QX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fU1lTX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX0NHQ19DVFJMX19VREVDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBVVkRfQ0dDX0NUUkxfX01QRUcyX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fUkVHU19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVVZEX0NHQ19DVFJMX19SQkNfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfQ0dDX0NUUkxfX0xNSV9NQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTE1JX1VNQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVVZEX0NHQ19DVFJMX19JRENUX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBVVkRfQ0dDX0NUUkxfX01QUkRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTVBDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX0NHQ19DVFJMX19MQlNJX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBVVkRfQ0dDX0NUUkxfX0xSQkJNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fV0NCX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVVZEX0NHQ19DVFJMX19WQ1BVX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBVVkRfQ0dDX0NUUkxfX01NU0NIX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fRFlOX0NMT0NLX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fQ0xLX0dBVEVfRExZX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fQ0xLX09GRl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3QzBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fVURFQ19SRV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fVURFQ19DTV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fVURFQ19JVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fVURFQ19EQl9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fVURFQ19NUF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fU1lTX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fVURFQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTVBFRzJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fUkVHU19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fUkJDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTE1JX01DX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTE1JX1VNQ19NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fSURDVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTVBSRF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTVBDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTEJTSV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTFJCQk1fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fV0NCX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fVkNQVV9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFVWRF9DR0NfQ1RSTF9fTU1TQ0hfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1VWRF9DR0NfVURFQ19TVEFUVVMKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fUkVfU0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9DR0NfVURFQ19TVEFUVVNfX1JFX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfQ0dDX1VERUNfU1RBVFVTX19SRV9WQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fQ01fU0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9DR0NfVURFQ19TVEFUVVNfX0NNX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfQ0dDX1VERUNfU1RBVFVTX19DTV9WQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fSVRfU0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9DR0NfVURFQ19TVEFUVVNfX0lUX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBVVkRfQ0dDX1VERUNfU1RBVFVTX19JVF9WQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fREJfU0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFVWRF9DR0NfVURFQ19TVEFUVVNfX0RCX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBVVkRfQ0dDX1VERUNfU1RBVFVTX19EQl9WQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fTVBfU0NMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9DR0NfVURFQ19TVEFUVVNfX01QX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVVkRfQ0dDX1VERUNfU1RBVFVTX19NUF9WQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fUkVfU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fUkVfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fUkVfVkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fQ01fU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fQ01fRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fQ01fVkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fSVRfU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fSVRfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fSVRfVkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fREJfU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fREJfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fREJfVkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fTVBfU0NMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fTVBfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVVZEX0NHQ19VREVDX1NUQVRVU19fTVBfVkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKy8vVVZEX1NVVkRfQ0dDX0dBVEUKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NSRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19HQVRFX19TSVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfU1VWRF9DR0NfR0FURV9fU01QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NDTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19HQVRFX19TREJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfU1VWRF9DR0NfR0FURV9fU1JFX0gyNjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NSRV9IRVZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19HQVRFX19TSVRfSDI2NF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBVVkRfU1VWRF9DR0NfR0FURV9fU0lUX0hFVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NDTV9IMjY0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19HQVRFX19TQ01fSEVWQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBVVkRfU1VWRF9DR0NfR0FURV9fU0RCX0gyNjRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NEQl9IRVZDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19HQVRFX19TQ0xSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZAorI2RlZmluZSBVVkRfU1VWRF9DR0NfR0FURV9fVVZEX1NDX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX0VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19HQVRFX19JTUVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVF9IRVZDX0RFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBVVkRfU1VWRF9DR0NfR0FURV9fU0lUX0hFVkNfRU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19HQVRFX19TSVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NSRV9WUDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfU1VWRF9DR0NfR0FURV9fU0NNX1ZQOV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19HQVRFX19TSVRfVlA5X0RFQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NEQl9WUDlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBVVkRfU1VWRF9DR0NfR0FURV9fSU1FX0hFVkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19HQVRFX19FRkNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NSRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NNUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NDTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NEQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NSRV9IMjY0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NSRV9IRVZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVF9IMjY0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVF9IRVZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NDTV9IMjY0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NDTV9IRVZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NEQl9IMjY0X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NEQl9IRVZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NDTFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1VWRF9TQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX0VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX0lNRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVF9IRVZDX0RFQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVF9IRVZDX0VOQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NSRV9WUDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NDTV9WUDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NJVF9WUDlfREVDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX1NEQl9WUDlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX0lNRV9IRVZDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0dBVEVfX0VGQ19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKy8vVVZEX1NVVkRfQ0dDX1NUQVRVUworI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TUkVfVkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fU1JFX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19TVEFUVVNfX1NJVF9EQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TTVBfRENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fU0NNX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19TVEFUVVNfX1NEQl9EQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TUkVfSDI2NF9WQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fU1JFX0hFVkNfVkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19TVEFUVVNfX1NJVF9IMjY0X0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRfSEVWQ19EQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fU0NNX0gyNjRfRENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19TVEFUVVNfX1NDTV9IRVZDX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TREJfSDI2NF9EQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fU0RCX0hFVkNfRENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19TVEFUVVNfX1NDTFJfRENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19VVkRfU0NfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fRU5UX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19JTUVfRENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19TVEFUVVNfX1NJVF9IRVZDX0RFQ19EQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fU0lUX0hFVkNfRU5DX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRFX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19TVEFUVVNfX1NJVEVfSEVWQ19EQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fU0lURV9IRVZDX0VOQ19EQ0xLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TUkVfVlA5X1ZDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19TVEFUVVNfX1NDTV9WUDlfVkNMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fU0lUX1ZQOV9ERUNfRENMS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TREJfVlA5X0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19TVEFUVVNfX0lNRV9IRVZDX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX1NUQVRVU19fRUZDX0RDTEtfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TUkVfVkNMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TUkVfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TTVBfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TQ01fRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TREJfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TUkVfSDI2NF9WQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TUkVfSEVWQ19WQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRfSDI2NF9EQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRfSEVWQ19EQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TQ01fSDI2NF9EQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TQ01fSEVWQ19EQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TREJfSDI2NF9EQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TREJfSEVWQ19EQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TQ0xSX0RDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19VVkRfU0NfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19FTlRfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19JTUVfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRfSEVWQ19ERUNfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRfSEVWQ19FTkNfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRFX0RDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRFX0hFVkNfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRFX0hFVkNfRU5DX0RDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TUkVfVlA5X1ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TQ01fVlA5X1ZDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TSVRfVlA5X0RFQ19EQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19TREJfVlA5X0RDTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19JTUVfSEVWQ19EQ0xLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfU1RBVFVTX19FRkNfRENMS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9VVkRfU1VWRF9DR0NfQ1RSTAorI2RlZmluZSBVVkRfU1VWRF9DR0NfQ1RSTF9fU1JFX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0NUUkxfX1NJVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19TTVBfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfU1VWRF9DR0NfQ1RSTF9fU0NNX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0NUUkxfX1NEQl9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19TQ0xSX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBVVkRfU1VWRF9DR0NfQ1RSTF9fVVZEX1NDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0NUUkxfX0VOVF9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19JTUVfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfU1VWRF9DR0NfQ1RSTF9fU0lURV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVVZEX1NVVkRfQ0dDX0NUUkxfX0VGQ19NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19TUkVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19TSVRfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19TTVBfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19TQ01fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19TREJfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19TQ0xSX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19VVkRfU0NfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19FTlRfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19JTUVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19TSVRFX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFVWRF9TVVZEX0NHQ19DVFJMX19FRkNfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisvL1VWRF9HUENPTV9WQ1BVX0NNRAorI2RlZmluZSBVVkRfR1BDT01fVkNQVV9DTURfX0NNRF9TRU5EX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQQ09NX1ZDUFVfQ01EX19DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9HUENPTV9WQ1BVX0NNRF9fQ01EX1NPVVJDRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVVZEX0dQQ09NX1ZDUFVfQ01EX19DTURfU0VORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0dQQ09NX1ZDUFVfQ01EX19DTURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRUwKKyNkZWZpbmUgVVZEX0dQQ09NX1ZDUFVfQ01EX19DTURfU09VUkNFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVVZEX0dQQ09NX1ZDUFVfREFUQTAKKyNkZWZpbmUgVVZEX0dQQ09NX1ZDUFVfREFUQTBfX0RBVEEwX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9HUENPTV9WQ1BVX0RBVEEwX19EQVRBMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9HUENPTV9WQ1BVX0RBVEExCisjZGVmaW5lIFVWRF9HUENPTV9WQ1BVX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfR1BDT01fVkNQVV9EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfR1BDT01fU1lTX0NNRAorI2RlZmluZSBVVkRfR1BDT01fU1lTX0NNRF9fQ01EX1NFTkRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQQ09NX1NZU19DTURfX0NNRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9HUENPTV9TWVNfQ01EX19DTURfU09VUkNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVVZEX0dQQ09NX1NZU19DTURfX0NNRF9TRU5EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0dQQ09NX1NZU19DTURfX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRUwKKyNkZWZpbmUgVVZEX0dQQ09NX1NZU19DTURfX0NNRF9TT1VSQ0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVVZEX0dQQ09NX1NZU19EQVRBMAorI2RlZmluZSBVVkRfR1BDT01fU1lTX0RBVEEwX19EQVRBMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQQ09NX1NZU19EQVRBMF9fREFUQTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQQ09NX1NZU19EQVRBMQorI2RlZmluZSBVVkRfR1BDT01fU1lTX0RBVEExX19EQVRBMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQQ09NX1NZU19EQVRBMV9fREFUQTFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1ZDUFVfSU5UX0VOCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fUElGX0FERFJfRVJSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkNQVV9JTlRfRU5fX1NFTUFfV0FJVF9GQVVMVF9USU1FT1VUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0VOX19TRU1BX1NJR05BTF9JTkNPTVBMRVRFX1RJTUVPVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fTkpfUEZfUlBUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfVkNQVV9JTlRfRU5fX1NXX1JCMV9JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0VOX19TV19SQjJfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fUkJDX1JFR19QUklWX0ZBVUxUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfVkNQVV9JTlRfRU5fX1NXX1JCM19JTlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0VOX19TV19SQjRfSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU1dfUkI1X0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBVVkRfVkNQVV9JTlRfRU5fX0xCU0lfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0VOX19VREVDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fUlBUUl9XUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0VOX19KT0JfU1RBUlRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBVVkRfVkNQVV9JTlRfRU5fX05KX1BGX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU0VNQV9XQUlUX0ZBSUxfU0lHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0VOX19JRENUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfVkNQVV9JTlRfRU5fX01QUkRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fQVZNX0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0VOX19DTEtfU1dUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBVVkRfVkNQVV9JTlRfRU5fX01JRl9IV0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fTVBSRF9FUlJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0VOX19EUlZfRldfUkVRX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBVVkRfVkNQVV9JTlRfRU5fX0RSVl9GV19BQ0tfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fUElGX0FERFJfRVJSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU0VNQV9XQUlUX0ZBVUxUX1RJTUVPVVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU0VNQV9TSUdOQUxfSU5DT01QTEVURV9USU1FT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fTkpfUEZfUlBUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU1dfUkIxX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU1dfUkIyX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fUkJDX1JFR19QUklWX0ZBVUxUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU1dfUkIzX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU1dfUkI0X0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU1dfUkI1X0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fTEJTSV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fVURFQ19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fUlBUUl9XUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fSk9CX1NUQVJUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fTkpfUEZfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fU0VNQV9XQUlUX0ZBSUxfU0lHX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fSURDVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fTVBSRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fQVZNX0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fQ0xLX1NXVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fTUlGX0hXSU5UX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fTVBSRF9FUlJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fRFJWX0ZXX1JFUV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9FTl9fRFJWX0ZXX0FDS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL1VWRF9WQ1BVX0lOVF9BQ0sKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fUElGX0FERFJfRVJSX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9BQ0tfX1NFTUFfV0FJVF9GQVVMVF9USU1FT1VUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfVkNQVV9JTlRfQUNLX19TRU1BX1NJR05BTF9JTkNPTVBMRVRFX1RJTUVPVVRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fTkpfUEZfUlBUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9BQ0tfX1NXX1JCMV9JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfVkNQVV9JTlRfQUNLX19TV19SQjJfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fUkJDX1JFR19QUklWX0ZBVUxUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9BQ0tfX1NXX1JCM19JTlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NworI2RlZmluZSBVVkRfVkNQVV9JTlRfQUNLX19TV19SQjRfSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU1dfUkI1X0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9BQ0tfX0xCU0lfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBVVkRfVkNQVV9JTlRfQUNLX19VREVDX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fUlBUUl9XUl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfVkNQVV9JTlRfQUNLX19KT0JfU1RBUlRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9BQ0tfX05KX1BGX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU0VNQV9XQUlUX0ZBSUxfU0lHX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBVVkRfVkNQVV9JTlRfQUNLX19JRENUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9BQ0tfX01QUkRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fQVZNX0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBVVkRfVkNQVV9JTlRfQUNLX19DTEtfU1dUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9BQ0tfX01JRl9IV0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fTVBSRF9FUlJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZAorI2RlZmluZSBVVkRfVkNQVV9JTlRfQUNLX19EUlZfRldfUkVRX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9BQ0tfX0RSVl9GV19BQ0tfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fUElGX0FERFJfRVJSX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU0VNQV9XQUlUX0ZBVUxUX1RJTUVPVVRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU0VNQV9TSUdOQUxfSU5DT01QTEVURV9USU1FT1VUX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fTkpfUEZfUlBUX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU1dfUkIxX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU1dfUkIyX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fUkJDX1JFR19QUklWX0ZBVUxUX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU1dfUkIzX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU1dfUkI0X0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU1dfUkI1X0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fTEJTSV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fVURFQ19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fUlBUUl9XUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fSk9CX1NUQVJUX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fTkpfUEZfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fU0VNQV9XQUlUX0ZBSUxfU0lHX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fSURDVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fTVBSRF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fQVZNX0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fQ0xLX1NXVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fTUlGX0hXSU5UX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fTVBSRF9FUlJfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fRFJWX0ZXX1JFUV9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX0FDS19fRFJWX0ZXX0FDS19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVVZEX1ZDUFVfSU5UX1JPVVRFCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9ST1VURV9fRFJWX0ZXX01TR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkNQVV9JTlRfUk9VVEVfX0ZXX0RSVl9NU0dfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX1ZDUFVfSU5UX1JPVVRFX19WQ1BVX0dQQ09NX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9ST1VURV9fRFJWX0ZXX01TR19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9ST1VURV9fRldfRFJWX01TR19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9WQ1BVX0lOVF9ST1VURV9fVkNQVV9HUENPTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisvL1VWRF9FTkNfVkNQVV9JTlRfRU4KKyNkZWZpbmUgVVZEX0VOQ19WQ1BVX0lOVF9FTl9fRENFX1VWRF9TQ0FOX0lOX0JVRk1HUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9FTkNfVkNQVV9JTlRfRU5fX0RDRV9VVkRfU0NBTl9JTl9CVUZNR1IyX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfRU5DX1ZDUFVfSU5UX0VOX19EQ0VfVVZEX1NDQU5fSU5fQlVGTUdSM19FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0VOQ19WQ1BVX0lOVF9FTl9fRENFX1VWRF9TQ0FOX0lOX0JVRk1HUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0VOQ19WQ1BVX0lOVF9FTl9fRENFX1VWRF9TQ0FOX0lOX0JVRk1HUjJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0VOQ19WQ1BVX0lOVF9FTl9fRENFX1VWRF9TQ0FOX0lOX0JVRk1HUjNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vVVZEX0VOQ19WQ1BVX0lOVF9BQ0sKKyNkZWZpbmUgVVZEX0VOQ19WQ1BVX0lOVF9BQ0tfX0RDRV9VVkRfU0NBTl9JTl9CVUZNR1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9FTkNfVkNQVV9JTlRfQUNLX19EQ0VfVVZEX1NDQU5fSU5fQlVGTUdSMl9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfRU5DX1ZDUFVfSU5UX0FDS19fRENFX1VWRF9TQ0FOX0lOX0JVRk1HUjNfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0VOQ19WQ1BVX0lOVF9BQ0tfX0RDRV9VVkRfU0NBTl9JTl9CVUZNR1JfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0VOQ19WQ1BVX0lOVF9BQ0tfX0RDRV9VVkRfU0NBTl9JTl9CVUZNR1IyX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0VOQ19WQ1BVX0lOVF9BQ0tfX0RDRV9VVkRfU0NBTl9JTl9CVUZNR1IzX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKy8vVVZEX01BU1RJTlRfRU4KKyNkZWZpbmUgVVZEX01BU1RJTlRfRU5fX09WRVJSVU5fUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9NQVNUSU5UX0VOX19WQ1BVX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfTUFTVElOVF9FTl9fU1lTX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX01BU1RJTlRfRU5fX0lOVF9PVkVSUlVOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9NQVNUSU5UX0VOX19PVkVSUlVOX1JTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9NQVNUSU5UX0VOX19WQ1BVX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9NQVNUSU5UX0VOX19TWVNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFVWRF9NQVNUSU5UX0VOX19JTlRfT1ZFUlJVTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRjBMCisvL1VWRF9TWVNfSU5UX0VOCisjZGVmaW5lIFVWRF9TWVNfSU5UX0VOX19QSUZfQUREUl9FUlJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU1lTX0lOVF9FTl9fU0VNQV9XQUlUX0ZBVUxUX1RJTUVPVVRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9TWVNfSU5UX0VOX19DWFdfV1JfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfU1lTX0lOVF9FTl9fUkJDX1JFR19QUklWX0ZBVUxUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX0xCU0lfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFVWRF9TWVNfSU5UX0VOX19VREVDX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfU1lTX0lOVF9FTl9fSk9CX0RPTkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9TWVNfSU5UX0VOX19TRU1BX1dBSVRfRkFJTF9TSUdfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX0lEQ1RfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfU1lTX0lOVF9FTl9fTVBSRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFVWRF9TWVNfSU5UX0VOX19DTEtfU1dUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX01JRl9IV0lOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBVVkRfU1lTX0lOVF9FTl9fTVBSRF9FUlJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIFVWRF9TWVNfSU5UX0VOX19BVk1fSU5UX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX1BJRl9BRERSX0VSUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX1NFTUFfV0FJVF9GQVVMVF9USU1FT1VUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX0NYV19XUl9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX1JCQ19SRUdfUFJJVl9GQVVMVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX0xCU0lfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX1VERUNfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX0pPQl9ET05FX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX1NFTUFfV0FJVF9GQUlMX1NJR19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX0lEQ1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX01QUkRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX0NMS19TV1RfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX01JRl9IV0lOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX01QUkRfRVJSX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKKyNkZWZpbmUgVVZEX1NZU19JTlRfRU5fX0FWTV9JTlRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVVZEX1NZU19JTlRfU1RBVFVTCisjZGVmaW5lIFVWRF9TWVNfSU5UX1NUQVRVU19fUElGX0FERFJfRVJSX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX1NFTUFfV0FJVF9GQVVMVF9USU1FT1VUX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX1NZU19JTlRfU1RBVFVTX19TRU1BX1NJR05BTF9JTkNPTVBMRVRFX1RJTUVPVVRfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9TWVNfSU5UX1NUQVRVU19fQ1hXX1dSX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX1JCQ19SRUdfUFJJVl9GQVVMVF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX1NZU19JTlRfU1RBVFVTX19MQlNJX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFVWRF9TWVNfSU5UX1NUQVRVU19fVURFQ19JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX0pPQl9ET05FX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9TWVNfSU5UX1NUQVRVU19fR1BDT01fSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVVZEX1NZU19JTlRfU1RBVFVTX19TRU1BX1dBSVRfRkFJTF9TSUdfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX0lEQ1RfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9TWVNfSU5UX1NUQVRVU19fTVBSRF9JTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX1NZU19JTlRfU1RBVFVTX19DTEtfU1dUX0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX01JRl9IV0lOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFVWRF9TWVNfSU5UX1NUQVRVU19fTVBSRF9FUlJfSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVVZEX1NZU19JTlRfU1RBVFVTX19BVk1fSU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX1BJRl9BRERSX0VSUl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX1NFTUFfV0FJVF9GQVVMVF9USU1FT1VUX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX0NYV19XUl9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX1JCQ19SRUdfUFJJVl9GQVVMVF9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX0xCU0lfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX1VERUNfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX0pPQl9ET05FX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX0dQQ09NX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX1NFTUFfV0FJVF9GQUlMX1NJR19JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX0lEQ1RfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX01QUkRfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX0NMS19TV1RfSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX01JRl9IV0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX01QUkRfRVJSX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9TVEFUVVNfX0FWTV9JTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9VVkRfU1lTX0lOVF9BQ0sKKyNkZWZpbmUgVVZEX1NZU19JTlRfQUNLX19QSUZfQUREUl9FUlJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9TWVNfSU5UX0FDS19fU0VNQV9XQUlUX0ZBVUxUX1RJTUVPVVRfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX1NZU19JTlRfQUNLX19DWFdfV1JfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9TWVNfSU5UX0FDS19fUkJDX1JFR19QUklWX0ZBVUxUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX0xCU0lfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVVZEX1NZU19JTlRfQUNLX19VREVDX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9TWVNfSU5UX0FDS19fSk9CX0RPTkVfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX1NZU19JTlRfQUNLX19TRU1BX1dBSVRfRkFJTF9TSUdfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX0lEQ1RfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9TWVNfSU5UX0FDS19fTVBSRF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX1NZU19JTlRfQUNLX19DTEtfU1dUX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX01JRl9IV0lOVF9BQ0tfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFVWRF9TWVNfSU5UX0FDS19fTVBSRF9FUlJfQUNLX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWQKKyNkZWZpbmUgVVZEX1NZU19JTlRfQUNLX19BVk1fSU5UX0FDS19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZgorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX1BJRl9BRERSX0VSUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX1NFTUFfV0FJVF9GQVVMVF9USU1FT1VUX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX0NYV19XUl9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX1JCQ19SRUdfUFJJVl9GQVVMVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX0xCU0lfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX1VERUNfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX0pPQl9ET05FX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX1NFTUFfV0FJVF9GQUlMX1NJR19BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX0lEQ1RfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX01QUkRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX0NMS19TV1RfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX01JRl9IV0lOVF9BQ0tfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX01QUkRfRVJSX0FDS19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwTAorI2RlZmluZSBVVkRfU1lTX0lOVF9BQ0tfX0FWTV9JTlRfQUNLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwTAorLy9VVkRfSk9CX0RPTkUKKyNkZWZpbmUgVVZEX0pPQl9ET05FX19KT0JfRE9ORV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KT0JfRE9ORV9fSk9CX0RPTkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL1VWRF9DQlVGX0lECisjZGVmaW5lIFVWRF9DQlVGX0lEX19DQlVGX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfQ0JVRl9JRF9fQ0JVRl9JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfQ09OVEVYVF9JRAorI2RlZmluZSBVVkRfQ09OVEVYVF9JRF9fQ09OVEVYVF9JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0NPTlRFWFRfSURfX0NPTlRFWFRfSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0NPTlRFWFRfSUQyCisjZGVmaW5lIFVWRF9DT05URVhUX0lEMl9fQ09OVEVYVF9JRDJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfQ09OVEVYVF9JRDJfX0NPTlRFWFRfSUQyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTk9fT1AKKyNkZWZpbmUgVVZEX05PX09QX19OT19PUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9OT19PUF9fTk9fT1BfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9SQl9CQVNFX0xPCisjZGVmaW5lIFVWRF9SQl9CQVNFX0xPX19SQl9CQVNFX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfUkJfQkFTRV9MT19fUkJfQkFTRV9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkMwTAorLy9VVkRfUkJfQkFTRV9ISQorI2RlZmluZSBVVkRfUkJfQkFTRV9ISV9fUkJfQkFTRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1JCX0JBU0VfSElfX1JCX0JBU0VfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1JCX1NJWkUKKyNkZWZpbmUgVVZEX1JCX1NJWkVfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9SQl9TSVpFX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRjBMCisvL1VWRF9SQl9SUFRSCisjZGVmaW5lIFVWRF9SQl9SUFRSX19SQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfUkJfUlBUUl9fUkJfUlBUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9VVkRfUkJfV1BUUgorI2RlZmluZSBVVkRfUkJfV1BUUl9fUkJfV1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1JCX1dQVFJfX1JCX1dQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX1JCX0JBU0VfTE8yCisjZGVmaW5lIFVWRF9SQl9CQVNFX0xPMl9fUkJfQkFTRV9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfUkJfQkFTRV9MTzJfX1JCX0JBU0VfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkMwTAorLy9VVkRfUkJfQkFTRV9ISTIKKyNkZWZpbmUgVVZEX1JCX0JBU0VfSEkyX19SQl9CQVNFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9SQl9CQVNFX0hJMl9fUkJfQkFTRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9SQl9TSVpFMgorI2RlZmluZSBVVkRfUkJfU0laRTJfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1JCX1NJWkUyX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX1JCX1JQVFIyCisjZGVmaW5lIFVWRF9SQl9SUFRSMl9fUkJfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfUkJfUlBUUjJfX1JCX1JQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9VVkRfUkJfV1BUUjIKKyNkZWZpbmUgVVZEX1JCX1dQVFIyX19SQl9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9SQl9XUFRSMl9fUkJfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRjBMCisvL1VWRF9SQl9CQVNFX0xPMworI2RlZmluZSBVVkRfUkJfQkFTRV9MTzNfX1JCX0JBU0VfTE9fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX1JCX0JBU0VfTE8zX19SQl9CQVNFX0xPX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZDMEwKKy8vVVZEX1JCX0JBU0VfSEkzCisjZGVmaW5lIFVWRF9SQl9CQVNFX0hJM19fUkJfQkFTRV9ISV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfUkJfQkFTRV9ISTNfX1JCX0JBU0VfSElfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfUkJfU0laRTMKKyNkZWZpbmUgVVZEX1JCX1NJWkUzX19SQl9TSVpFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9SQl9TSVpFM19fUkJfU0laRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRjBMCisvL1VWRF9SQl9SUFRSMworI2RlZmluZSBVVkRfUkJfUlBUUjNfX1JCX1JQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1JCX1JQVFIzX19SQl9SUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX1JCX1dQVFIzCisjZGVmaW5lIFVWRF9SQl9XUFRSM19fUkJfV1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfUkJfV1BUUjNfX1JCX1dQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9VVkRfUkJfQkFTRV9MTzQKKyNkZWZpbmUgVVZEX1JCX0JBU0VfTE80X19SQl9CQVNFX0xPX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9SQl9CQVNFX0xPNF9fUkJfQkFTRV9MT19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGQzBMCisvL1VWRF9SQl9CQVNFX0hJNAorI2RlZmluZSBVVkRfUkJfQkFTRV9ISTRfX1JCX0JBU0VfSElfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1JCX0JBU0VfSEk0X19SQl9CQVNFX0hJX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1JCX1NJWkU0CisjZGVmaW5lIFVWRF9SQl9TSVpFNF9fUkJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfUkJfU0laRTRfX1JCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9VVkRfUkJfUlBUUjQKKyNkZWZpbmUgVVZEX1JCX1JQVFI0X19SQl9SUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9SQl9SUFRSNF9fUkJfUlBUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRjBMCisvL1VWRF9SQl9XUFRSNAorI2RlZmluZSBVVkRfUkJfV1BUUjRfX1JCX1dQVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1JCX1dQVFI0X19SQl9XUFRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX09VVF9SQl9CQVNFX0xPCisjZGVmaW5lIFVWRF9PVVRfUkJfQkFTRV9MT19fUkJfQkFTRV9MT19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfT1VUX1JCX0JBU0VfTE9fX1JCX0JBU0VfTE9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkMwTAorLy9VVkRfT1VUX1JCX0JBU0VfSEkKKyNkZWZpbmUgVVZEX09VVF9SQl9CQVNFX0hJX19SQl9CQVNFX0hJX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9PVVRfUkJfQkFTRV9ISV9fUkJfQkFTRV9ISV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9PVVRfUkJfU0laRQorI2RlZmluZSBVVkRfT1VUX1JCX1NJWkVfX1JCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX09VVF9SQl9TSVpFX19SQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX09VVF9SQl9SUFRSCisjZGVmaW5lIFVWRF9PVVRfUkJfUlBUUl9fUkJfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfT1VUX1JCX1JQVFJfX1JCX1JQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9VVkRfT1VUX1JCX1dQVFIKKyNkZWZpbmUgVVZEX09VVF9SQl9XUFRSX19SQl9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9PVVRfUkJfV1BUUl9fUkJfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRjBMCisvL1VWRF9SQl9BUkJfQ1RSTAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX1NSQk1fRFJPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1JCX0FSQl9DVFJMX19TUkJNX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9SQl9BUkJfQ1RSTF9fVkNQVV9EUk9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX1ZDUFVfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVVZEX1JCX0FSQl9DVFJMX19SQkNfRFJPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9SQl9BUkJfQ1RSTF9fUkJDX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX0ZXT0ZMRF9EUk9QX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX1JCX0FSQl9DVFJMX19GV09GTERfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFVWRF9SQl9BUkJfQ1RSTF9fRkFTVF9QQVRIX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX1NSQk1fRFJPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX1NSQk1fRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX1ZDUFVfRFJPUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX1ZDUFVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX1JCQ19EUk9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX1JCQ19ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX0ZXT0ZMRF9EUk9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX0ZXT0ZMRF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBVVkRfUkJfQVJCX0NUUkxfX0ZBU1RfUEFUSF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorLy9VVkRfQ1RYX0lOREVYCisjZGVmaW5lIFVWRF9DVFhfSU5ERVhfX0lOREVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfQ1RYX0lOREVYX19JTkRFWF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZGTAorLy9VVkRfQ1RYX0RBVEEKKyNkZWZpbmUgVVZEX0NUWF9EQVRBX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9DVFhfREFUQV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9DWFdfV1IKKyNkZWZpbmUgVVZEX0NYV19XUl9fREFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9DWFdfV1JfX1NUQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVVZEX0NYV19XUl9fREFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGRkwKKyNkZWZpbmUgVVZEX0NYV19XUl9fU1RBVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVVZEX0NYV19XUl9JTlRfSUQKKyNkZWZpbmUgVVZEX0NYV19XUl9JTlRfSURfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9DWFdfV1JfSU5UX0lEX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1VWRF9DWFdfV1JfSU5UX0NUWF9JRAorI2RlZmluZSBVVkRfQ1hXX1dSX0lOVF9DVFhfSURfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0NYV19XUl9JTlRfQ1RYX0lEX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGRkwKKy8vVVZEX0NYV19JTlRfSUQKKyNkZWZpbmUgVVZEX0NYV19JTlRfSURfX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9DWFdfSU5UX0lEX19JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisvL1VWRF9UT1BfQ1RSTAorI2RlZmluZSBVVkRfVE9QX0NUUkxfX1NUQU5EQVJEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1RPUF9DVFJMX19TVERfVkVSU0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9UT1BfQ1RSTF9fU1RBTkRBUkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFVWRF9UT1BfQ1RSTF9fU1REX1ZFUlNJT05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRjBMCisvL1VWRF9ZQkFTRQorI2RlZmluZSBVVkRfWUJBU0VfX0RVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1lCQVNFX19EVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1VWQkFTRQorI2RlZmluZSBVVkRfVVZCQVNFX19EVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1VWQkFTRV9fRFVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1BJVENICisjZGVmaW5lIFVWRF9QSVRDSF9fRFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfUElUQ0hfX0RVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfV0lEVEgKKyNkZWZpbmUgVVZEX1dJRFRIX19EVU1fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9XSURUSF9fRFVNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9IRUlHSFQKKyNkZWZpbmUgVVZEX0hFSUdIVF9fRFVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9IRUlHSFRfX0RVTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9QSUNDT1VOVAorI2RlZmluZSBVVkRfUElDQ09VTlRfX0RVTV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1BJQ0NPVU5UX19EVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1NDUkFUQ0hfTlAKKyNkZWZpbmUgVVZEX1NDUkFUQ0hfTlBfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9TQ1JBVENIX05QX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9WRVJTSU9OCisjZGVmaW5lIFVWRF9WRVJTSU9OX19NSU5PUl9WRVJTSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkVSU0lPTl9fTUFKT1JfVkVSU0lPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9WRVJTSU9OX19NSU5PUl9WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFVWRF9WRVJTSU9OX19NQUpPUl9WRVJTSU9OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRjAwMDBMCisvL1VWRF9HUF9TQ1JBVENIMAorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDBfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gwX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxCisjZGVmaW5lIFVWRF9HUF9TQ1JBVENIMV9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDFfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfR1BfU0NSQVRDSDIKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gyX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9HUF9TQ1JBVENIMl9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9HUF9TQ1JBVENIMworI2RlZmluZSBVVkRfR1BfU0NSQVRDSDNfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gzX19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0g0CisjZGVmaW5lIFVWRF9HUF9TQ1JBVENINF9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDRfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfR1BfU0NSQVRDSDUKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0g1X19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9HUF9TQ1JBVENINV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9HUF9TQ1JBVENINgorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDZfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0g2X19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0g3CisjZGVmaW5lIFVWRF9HUF9TQ1JBVENIN19fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDdfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfR1BfU0NSQVRDSDgKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0g4X19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9HUF9TQ1JBVENIOF9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9HUF9TQ1JBVENIOQorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDlfX0RBVEFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0g5X19EQVRBX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxMAorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDEwX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxMF9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxMQorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDExX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxMV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxMgorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDEyX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxMl9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxMworI2RlZmluZSBVVkRfR1BfU0NSQVRDSDEzX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxM19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxNAorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDE0X19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxNF9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxNQorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDE1X19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxNV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxNgorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDE2X19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxNl9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxNworI2RlZmluZSBVVkRfR1BfU0NSQVRDSDE3X19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxN19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxOAorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDE4X19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxOF9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gxOQorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDE5X19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gxOV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gyMAorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDIwX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gyMF9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gyMQorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDIxX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gyMV9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gyMgorI2RlZmluZSBVVkRfR1BfU0NSQVRDSDIyX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gyMl9fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0dQX1NDUkFUQ0gyMworI2RlZmluZSBVVkRfR1BfU0NSQVRDSDIzX19EQVRBX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0dQX1NDUkFUQ0gyM19fREFUQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisvLyBhZGRyZXNzQmxvY2s6IHV2ZDBfZWNwdWRlYworLy9VVkRfVkNQVV9DQUNIRV9PRkZTRVQwCisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX09GRlNFVDBfX0NBQ0hFX09GRlNFVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9PRkZTRVQwX19DQUNIRV9PRkZTRVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGTAorLy9VVkRfVkNQVV9DQUNIRV9TSVpFMAorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9TSVpFMF9fQ0FDSEVfU0laRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfU0laRTBfX0NBQ0hFX1NJWkUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMQorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9PRkZTRVQxX19DQUNIRV9PRkZTRVQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMV9fQ0FDSEVfT0ZGU0VUMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vVVZEX1ZDUFVfQ0FDSEVfU0laRTEKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfU0laRTFfX0NBQ0hFX1NJWkUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX1NJWkUxX19DQUNIRV9TSVpFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL1VWRF9WQ1BVX0NBQ0hFX09GRlNFVDIKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMl9fQ0FDSEVfT0ZGU0VUMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX09GRlNFVDJfX0NBQ0hFX09GRlNFVDJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL1VWRF9WQ1BVX0NBQ0hFX1NJWkUyCisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX1NJWkUyX19DQUNIRV9TSVpFMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9TSVpFMl9fQ0FDSEVfU0laRTJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGTAorLy9VVkRfVkNQVV9DQUNIRV9PRkZTRVQzCisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX09GRlNFVDNfX0NBQ0hFX09GRlNFVDNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9PRkZTRVQzX19DQUNIRV9PRkZTRVQzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGTAorLy9VVkRfVkNQVV9DQUNIRV9TSVpFMworI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9TSVpFM19fQ0FDSEVfU0laRTNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfU0laRTNfX0NBQ0hFX1NJWkUzX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUNAorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9PRkZTRVQ0X19DQUNIRV9PRkZTRVQ0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUNF9fQ0FDSEVfT0ZGU0VUNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vVVZEX1ZDUFVfQ0FDSEVfU0laRTQKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfU0laRTRfX0NBQ0hFX1NJWkU0X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX1NJWkU0X19DQUNIRV9TSVpFNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL1VWRF9WQ1BVX0NBQ0hFX09GRlNFVDUKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUNV9fQ0FDSEVfT0ZGU0VUNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX09GRlNFVDVfX0NBQ0hFX09GRlNFVDVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL1VWRF9WQ1BVX0NBQ0hFX1NJWkU1CisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX1NJWkU1X19DQUNIRV9TSVpFNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9TSVpFNV9fQ0FDSEVfU0laRTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGTAorLy9VVkRfVkNQVV9DQUNIRV9PRkZTRVQ2CisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX09GRlNFVDZfX0NBQ0hFX09GRlNFVDZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9PRkZTRVQ2X19DQUNIRV9PRkZTRVQ2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGTAorLy9VVkRfVkNQVV9DQUNIRV9TSVpFNgorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9TSVpFNl9fQ0FDSEVfU0laRTZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfU0laRTZfX0NBQ0hFX1NJWkU2X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUNworI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9PRkZTRVQ3X19DQUNIRV9PRkZTRVQ3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUN19fQ0FDSEVfT0ZGU0VUN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vVVZEX1ZDUFVfQ0FDSEVfU0laRTcKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfU0laRTdfX0NBQ0hFX1NJWkU3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX1NJWkU3X19DQUNIRV9TSVpFN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL1VWRF9WQ1BVX0NBQ0hFX09GRlNFVDgKKyNkZWZpbmUgVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUOF9fQ0FDSEVfT0ZGU0VUOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX09GRlNFVDhfX0NBQ0hFX09GRlNFVDhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL1VWRF9WQ1BVX0NBQ0hFX1NJWkU4CisjZGVmaW5lIFVWRF9WQ1BVX0NBQ0hFX1NJWkU4X19DQUNIRV9TSVpFOF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkNQVV9DQUNIRV9TSVpFOF9fQ0FDSEVfU0laRThfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGTAorLy9VVkRfVkNQVV9OT05DQUNIRV9PRkZTRVQwCisjZGVmaW5lIFVWRF9WQ1BVX05PTkNBQ0hFX09GRlNFVDBfX05PTkNBQ0hFX09GRlNFVDBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfVkNQVV9OT05DQUNIRV9PRkZTRVQwX19OT05DQUNIRV9PRkZTRVQwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRkZGRkZGTAorLy9VVkRfVkNQVV9OT05DQUNIRV9TSVpFMAorI2RlZmluZSBVVkRfVkNQVV9OT05DQUNIRV9TSVpFMF9fTk9OQ0FDSEVfU0laRTBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1ZDUFVfTk9OQ0FDSEVfU0laRTBfX05PTkNBQ0hFX1NJWkUwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRkwKKy8vVVZEX1ZDUFVfTk9OQ0FDSEVfT0ZGU0VUMQorI2RlZmluZSBVVkRfVkNQVV9OT05DQUNIRV9PRkZTRVQxX19OT05DQUNIRV9PRkZTRVQxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1ZDUFVfTk9OQ0FDSEVfT0ZGU0VUMV9fTk9OQ0FDSEVfT0ZGU0VUMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUZGRkZGRkwKKy8vVVZEX1ZDUFVfTk9OQ0FDSEVfU0laRTEKKyNkZWZpbmUgVVZEX1ZDUFVfTk9OQ0FDSEVfU0laRTFfX05PTkNBQ0hFX1NJWkUxX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX05PTkNBQ0hFX1NJWkUxX19OT05DQUNIRV9TSVpFMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL1VWRF9WQ1BVX0NOVEwKKyNkZWZpbmUgVVZEX1ZDUFVfQ05UTF9fSVJRX0VSUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1BNQl9FRF9FTkFCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBVVkRfVkNQVV9DTlRMX19QTUJfU09GVF9SRVNFVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX1ZDUFVfQ05UTF9fUkJCTV9TT0ZUX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX0FCT1JUX1JFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfVkNQVV9DTlRMX19DTEtfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgVVZEX1ZDUFVfQ05UTF9fVFJDRV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1RSQ0VfTVVYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBVVkRfVkNQVV9DTlRMX19KVEFHX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1RJTUVPVVRfRElTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVVZEX1ZDUFVfQ05UTF9fUFJCX1RJTUVPVVRfVkFMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfVkNQVV9DTlRMX19CTEtfUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFjCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX0lSUV9FUlJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1BNQl9FRF9FTkFCTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1BNQl9TT0ZUX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1JCQk1fU09GVF9SRVNFVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX0FCT1JUX1JFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX0NMS19FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1RSQ0VfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1RSQ0VfTVVYX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX0pUQUdfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1RJTUVPVVRfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX1BSQl9USU1FT1VUX1ZBTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGMDAwMDBMCisjZGVmaW5lIFVWRF9WQ1BVX0NOVExfX0JMS19SU1RfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisvL1VWRF9WQ1BVX1BSSUQKKyNkZWZpbmUgVVZEX1ZDUFVfUFJJRF9fUFJJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX1BSSURfX1BSSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1VWRF9WQ1BVX1RSQ0UKKyNkZWZpbmUgVVZEX1ZDUFVfVFJDRV9fUENfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX1RSQ0VfX1BDX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEZGRkZGRkZMCisvL1VWRF9WQ1BVX1RSQ0VfUkQKKyNkZWZpbmUgVVZEX1ZDUFVfVFJDRV9SRF9fREFUQV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9WQ1BVX1RSQ0VfUkRfX0RBVEFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisKKworLy8gYWRkcmVzc0Jsb2NrOiB1dmQwX3V2ZF9tcGNkZWMKKy8vVVZEX01QX1NXQVBfQ05UTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYwX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX01QX1NXQVBfQ05UTF9fTVBfUkVGMV9NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9NUF9TV0FQX0NOVExfX01QX1JFRjJfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYzX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX01QX1NXQVBfQ05UTF9fTVBfUkVGNF9NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9NUF9TV0FQX0NOVExfX01QX1JFRjVfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUY2X01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX01QX1NXQVBfQ05UTF9fTVBfUkVGN19NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlCisjZGVmaW5lIFVWRF9NUF9TV0FQX0NOVExfX01QX1JFRjhfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX01QX1NXQVBfQ05UTF9fTVBfUkVGOV9NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYxMF9NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFVWRF9NUF9TV0FQX0NOVExfX01QX1JFRjExX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgVVZEX01QX1NXQVBfQ05UTF9fTVBfUkVGMTJfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYxM19NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIFVWRF9NUF9TV0FQX0NOVExfX01QX1JFRjE0X01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVVZEX01QX1NXQVBfQ05UTF9fTVBfUkVGMTVfTUNfU1dBUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZQorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYwX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAzTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYxX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYyX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYzX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUY0X01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUY1X01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUY2X01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzMDAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUY3X01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUY4X01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUY5X01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYxMF9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYxMV9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAwMDAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYxMl9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYxM19NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMDAwMDAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYxNF9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwTAorI2RlZmluZSBVVkRfTVBfU1dBUF9DTlRMX19NUF9SRUYxNV9NQ19TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAwMDAwTAorLy9VVkRfTVBDX0xVTUFfU1JDSAorI2RlZmluZSBVVkRfTVBDX0xVTUFfU1JDSF9fQ05UUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX01QQ19MVU1BX1NSQ0hfX0NOVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX01QQ19MVU1BX0hJVAorI2RlZmluZSBVVkRfTVBDX0xVTUFfSElUX19DTlRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX01QQ19MVU1BX0hJVF9fQ05UUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX01QQ19MVU1BX0hJVFBFTkQKKyNkZWZpbmUgVVZEX01QQ19MVU1BX0hJVFBFTkRfX0NOVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9NUENfTFVNQV9ISVRQRU5EX19DTlRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9NUENfQ0hST01BX1NSQ0gKKyNkZWZpbmUgVVZEX01QQ19DSFJPTUFfU1JDSF9fQ05UUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9NUENfQ0hST01BX1NSQ0hfX0NOVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9NUENfQ0hST01BX0hJVAorI2RlZmluZSBVVkRfTVBDX0NIUk9NQV9ISVRfX0NOVFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX01QQ19DSFJPTUFfSElUX19DTlRSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX01QQ19DSFJPTUFfSElUUEVORAorI2RlZmluZSBVVkRfTVBDX0NIUk9NQV9ISVRQRU5EX19DTlRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX01QQ19DSFJPTUFfSElUUEVORF9fQ05UUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX01QQ19DTlRMCisjZGVmaW5lIFVWRF9NUENfQ05UTF9fUkVQTEFDRU1FTlRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfTVBDX0NOVExfX1BFUkZfUlNUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX01QQ19DTlRMX19BVkVfV0VJR0hUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfTVBDX0NOVExfX1VSR0VOVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFVWRF9NUENfQ05UTF9fU01QQVRfUkVRX1NQRUVEX1VQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgVVZEX01QQ19DTlRMX19URVNUX01PREVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfTVBDX0NOVExfX1JFUExBQ0VNRU5UX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBVVkRfTVBDX0NOVExfX1BFUkZfUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBVVkRfTVBDX0NOVExfX0FWRV9XRUlHSFRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDMwMDAwTAorI2RlZmluZSBVVkRfTVBDX0NOVExfX1VSR0VOVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBVVkRfTVBDX0NOVExfX1NNUEFUX1JFUV9TUEVFRF9VUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBVVkRfTVBDX0NOVExfX1RFU1RfTU9ERV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorLy9VVkRfTVBDX1BJVENICisjZGVmaW5lIFVWRF9NUENfUElUQ0hfX0xVTUFfUElUQ0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTVBDX1BJVENIX19MVU1BX1BJVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwN0ZGTAorLy9VVkRfTVBDX1NFVF9NVVhBMAorI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhBMF9fVkFSQV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTBfX1ZBUkFfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEEwX19WQVJBXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhBMF9fVkFSQV8zX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEEwX19WQVJBXzRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTBfX1ZBUkFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTBfX1ZBUkFfMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTBfX1ZBUkFfMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTBfX1ZBUkFfM19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZDMDAwMEwKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTBfX1ZBUkFfNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRjAwMDAwMEwKKy8vVVZEX01QQ19TRVRfTVVYQTEKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTFfX1ZBUkFfNV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEExX19WQVJBXzZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhBMV9fVkFSQV83X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTFfX1ZBUkFfNV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzRkwKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTFfX1ZBUkFfNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEZDMEwKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQTFfX1ZBUkFfN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzRjAwMEwKKy8vVVZEX01QQ19TRVRfTVVYQjAKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQjBfX1ZBUkJfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIwX19WQVJCXzFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhCMF9fVkFSQl8yX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQjBfX1ZBUkJfM19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhCMF9fVkFSQl80X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIwX19WQVJCXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIwX19WQVJCXzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIwX19WQVJCXzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIwX19WQVJCXzNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGQzAwMDBMCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIwX19WQVJCXzRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YwMDAwMDBMCisvL1VWRF9NUENfU0VUX01VWEIxCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIxX19WQVJCXzVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhCMV9fVkFSQl82X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYQjFfX1ZBUkJfN19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIxX19WQVJCXzVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0ZMCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIxX19WQVJCXzZfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGQzBMCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWEIxX19WQVJCXzdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwM0YwMDBMCisvL1VWRF9NUENfU0VUX01VWAorI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhfX1NFVF8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX01QQ19TRVRfTVVYX19TRVRfMV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9NUENfU0VUX01VWF9fU0VUXzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhfX1NFVF8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhfX1NFVF8xX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDM4TAorI2RlZmluZSBVVkRfTVBDX1NFVF9NVVhfX1NFVF8yX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUMwTAorLy9VVkRfTVBDX1NFVF9BTFUKKyNkZWZpbmUgVVZEX01QQ19TRVRfQUxVX19GVU5DVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9NUENfU0VUX0FMVV9fT1BFUkFORF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfTVBDX1NFVF9BTFVfX0ZVTkNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TAorI2RlZmluZSBVVkRfTVBDX1NFVF9BTFVfX09QRVJBTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRkYwTAorLy9VVkRfTVBDX1BFUkYwCisjZGVmaW5lIFVWRF9NUENfUEVSRjBfX01BWF9MQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTVBDX1BFUkYwX19NQVhfTEFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorLy9VVkRfTVBDX1BFUkYxCisjZGVmaW5lIFVWRF9NUENfUEVSRjFfX0FWRV9MQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTVBDX1BFUkYxX19BVkVfTEFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGTAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRfcmJjZGVjCisvL1VWRF9SQkNfSUJfU0laRQorI2RlZmluZSBVVkRfUkJDX0lCX1NJWkVfX0lCX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1JCQ19JQl9TSVpFX19JQl9TSVpFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX1JCQ19JQl9TSVpFX1VQREFURQorI2RlZmluZSBVVkRfUkJDX0lCX1NJWkVfVVBEQVRFX19SRU1BSU5fSUJfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX1JCQ19JQl9TSVpFX1VQREFURV9fUkVNQUlOX0lCX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdGRkZGMEwKKy8vVVZEX1JCQ19SQl9DTlRMCisjZGVmaW5lIFVWRF9SQkNfUkJfQ05UTF9fUkJfQlVGU1pfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfUkJDX1JCX0NOVExfX1JCX0JMS1NaX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX1JCQ19SQl9DTlRMX19SQl9OT19GRVRDSF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfUkJDX1JCX0NOVExfX1JCX1dQVFJfUE9MTF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFVWRF9SQkNfUkJfQ05UTF9fUkJfTk9fVVBEQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVVZEX1JCQ19SQl9DTlRMX19SQl9SUFRSX1dSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBVVkRfUkJDX1JCX0NOVExfX1JCX0JVRlNaX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFGTAorI2RlZmluZSBVVkRfUkJDX1JCX0NOVExfX1JCX0JMS1NaX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxRjAwTAorI2RlZmluZSBVVkRfUkJDX1JCX0NOVExfX1JCX05PX0ZFVENIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBVVkRfUkJDX1JCX0NOVExfX1JCX1dQVFJfUE9MTF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBVVkRfUkJDX1JCX0NOVExfX1JCX05PX1VQREFURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBVVkRfUkJDX1JCX0NOVExfX1JCX1JQVFJfV1JfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9VVkRfUkJDX1JCX1JQVFJfQUREUgorI2RlZmluZSBVVkRfUkJDX1JCX1JQVFJfQUREUl9fUkJfUlBUUl9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1JCQ19SQl9SUFRSX0FERFJfX1JCX1JQVFJfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX1JCQ19SQl9SUFRSCisjZGVmaW5lIFVWRF9SQkNfUkJfUlBUUl9fUkJfUlBUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfUkJDX1JCX1JQVFJfX1JCX1JQVFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9VVkRfUkJDX1JCX1dQVFIKKyNkZWZpbmUgVVZEX1JCQ19SQl9XUFRSX19SQl9XUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9SQkNfUkJfV1BUUl9fUkJfV1BUUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3RkZGRjBMCisvL1VWRF9SQkNfVkNQVV9BQ0NFU1MKKyNkZWZpbmUgVVZEX1JCQ19WQ1BVX0FDQ0VTU19fRU5BQkxFX1JCQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9SQkNfVkNQVV9BQ0NFU1NfX0VOQUJMRV9SQkNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1VWRF9SQkNfUkVBRF9SRVFfVVJHRU5UX0NOVEwKKyNkZWZpbmUgVVZEX1JCQ19SRUFEX1JFUV9VUkdFTlRfQ05UTF9fQ01EX1JFQURfUkVRX1BSSU9SSVRZX01BUktfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9SQkNfUkVBRF9SRVFfVVJHRU5UX0NOVExfX0NNRF9SRUFEX1JFUV9QUklPUklUWV9NQVJLX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDNMCisvL1VWRF9SQkNfUkJfV1BUUl9DTlRMCisjZGVmaW5lIFVWRF9SQkNfUkJfV1BUUl9DTlRMX19SQl9QUkVfV1JJVEVfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfUkJDX1JCX1dQVFJfQ05UTF9fUkJfUFJFX1dSSVRFX1RJTUVSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RkZGTAorLy9VVkRfUkJDX1dQVFJfU1RBVFVTCisjZGVmaW5lIFVWRF9SQkNfV1BUUl9TVEFUVVNfX1JCX1dQVFJfSU5fVVNFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfUkJDX1dQVFJfU1RBVFVTX19SQl9XUFRSX0lOX1VTRV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN0ZGRkYwTAorLy9VVkRfUkJDX1dQVFJfUE9MTF9DTlRMCisjZGVmaW5lIFVWRF9SQkNfV1BUUl9QT0xMX0NOVExfX1BPTExfRlJFUV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfUkJDX1dQVFJfUE9MTF9DTlRMX19JRExFX1BPTExfQ09VTlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIFVWRF9SQkNfV1BUUl9QT0xMX0NOVExfX1BPTExfRlJFUV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisjZGVmaW5lIFVWRF9SQkNfV1BUUl9QT0xMX0NOVExfX0lETEVfUE9MTF9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDBMCisvL1VWRF9SQkNfV1BUUl9QT0xMX0FERFIKKyNkZWZpbmUgVVZEX1JCQ19XUFRSX1BPTExfQUREUl9fUE9MTF9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9SQkNfV1BUUl9QT0xMX0FERFJfX1BPTExfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkNMCisvL1VWRF9TRU1BX0NNRAorI2RlZmluZSBVVkRfU0VNQV9DTURfX1JFUV9DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NFTUFfQ01EX19XUl9QSEFTRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9TRU1BX0NNRF9fTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfU0VNQV9DTURfX1ZNSURfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX1NFTUFfQ01EX19WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9TRU1BX0NNRF9fUkVRX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisjZGVmaW5lIFVWRF9TRU1BX0NNRF9fV1JfUEhBU0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMzBMCisjZGVmaW5lIFVWRF9TRU1BX0NNRF9fTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFVWRF9TRU1BX0NNRF9fVk1JRF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFVWRF9TRU1BX0NNRF9fVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMDBMCisvL1VWRF9TRU1BX0FERFJfTE9XCisjZGVmaW5lIFVWRF9TRU1BX0FERFJfTE9XX19BRERSXzI2XzNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfU0VNQV9BRERSX0xPV19fQUREUl8yNl8zX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkZGRkZGTAorLy9VVkRfU0VNQV9BRERSX0hJR0gKKyNkZWZpbmUgVVZEX1NFTUFfQUREUl9ISUdIX19BRERSXzQ3XzI3X19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9TRU1BX0FERFJfSElHSF9fQUREUl80N18yN19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkZMCisvL1VWRF9FTkdJTkVfQ05UTAorI2RlZmluZSBVVkRfRU5HSU5FX0NOVExfX0VOR0lORV9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0VOR0lORV9DTlRMX19FTkdJTkVfU1RBUlRfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9FTkdJTkVfQ05UTF9fTkpfUEZfSEFORExFX0RJU0FCTEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfRU5HSU5FX0NOVExfX0VOR0lORV9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBVVkRfRU5HSU5FX0NOVExfX0VOR0lORV9TVEFSVF9NT0RFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBVVkRfRU5HSU5FX0NOVExfX05KX1BGX0hBTkRMRV9ESVNBQkxFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorLy9VVkRfU0VNQV9USU1FT1VUX1NUQVRVUworI2RlZmluZSBVVkRfU0VNQV9USU1FT1VUX1NUQVRVU19fU0VNQVBIT1JFX1dBSVRfSU5DT01QTEVURV9USU1FT1VUX1NUQVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NFTUFfVElNRU9VVF9TVEFUVVNfX1NFTUFQSE9SRV9XQUlUX0ZBVUxUX1RJTUVPVVRfU1RBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9TRU1BX1RJTUVPVVRfU1RBVFVTX19TRU1BUEhPUkVfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9TVEFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBVVkRfU0VNQV9USU1FT1VUX1NUQVRVU19fU0VNQVBIT1JFX1RJTUVPVVRfQ0xFQVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgVVZEX1NFTUFfVElNRU9VVF9TVEFUVVNfX1NFTUFQSE9SRV9XQUlUX0lOQ09NUExFVEVfVElNRU9VVF9TVEFUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX1NFTUFfVElNRU9VVF9TVEFUVVNfX1NFTUFQSE9SRV9XQUlUX0ZBVUxUX1RJTUVPVVRfU1RBVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX1NFTUFfVElNRU9VVF9TVEFUVVNfX1NFTUFQSE9SRV9TSUdOQUxfSU5DT01QTEVURV9USU1FT1VUX1NUQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKKyNkZWZpbmUgVVZEX1NFTUFfVElNRU9VVF9TVEFUVVNfX1NFTUFQSE9SRV9USU1FT1VUX0NMRUFSX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKKy8vVVZEX1NFTUFfQ05UTAorI2RlZmluZSBVVkRfU0VNQV9DTlRMX19TRU1BUEhPUkVfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NFTUFfQ05UTF9fQURWQU5DRURfTU9ERV9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9TRU1BX0NOVExfX1NFTUFQSE9SRV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9TRU1BX0NOVExfX0FEVkFOQ0VEX01PREVfRElTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisvL1VWRF9TRU1BX1NJR05BTF9JTkNPTVBMRVRFX1RJTUVPVVRfQ05UTAorI2RlZmluZSBVVkRfU0VNQV9TSUdOQUxfSU5DT01QTEVURV9USU1FT1VUX0NOVExfX1NJR05BTF9JTkNPTVBMRVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9DTlRMX19TSUdOQUxfSU5DT01QTEVURV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFVWRF9TRU1BX1NJR05BTF9JTkNPTVBMRVRFX1RJTUVPVVRfQ05UTF9fUkVTRU5EX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVVZEX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9DTlRMX19TSUdOQUxfSU5DT01QTEVURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9DTlRMX19TSUdOQUxfSU5DT01QTEVURV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRUwKKyNkZWZpbmUgVVZEX1NFTUFfU0lHTkFMX0lOQ09NUExFVEVfVElNRU9VVF9DTlRMX19SRVNFTkRfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzAwMDAwMEwKKy8vVVZEX1NFTUFfV0FJVF9GQVVMVF9USU1FT1VUX0NOVEwKKyNkZWZpbmUgVVZEX1NFTUFfV0FJVF9GQVVMVF9USU1FT1VUX0NOVExfX1dBSVRfRkFVTFRfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9TRU1BX1dBSVRfRkFVTFRfVElNRU9VVF9DTlRMX19XQUlUX0ZBVUxUX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfU0VNQV9XQUlUX0ZBVUxUX1RJTUVPVVRfQ05UTF9fUkVTRU5EX1RJTUVSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9TRU1BX1dBSVRfRkFVTFRfVElNRU9VVF9DTlRMX19XQUlUX0ZBVUxUX0VOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9TRU1BX1dBSVRfRkFVTFRfVElNRU9VVF9DTlRMX19XQUlUX0ZBVUxUX0NPVU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkVMCisjZGVmaW5lIFVWRF9TRU1BX1dBSVRfRkFVTFRfVElNRU9VVF9DTlRMX19SRVNFTkRfVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisvL1VWRF9TRU1BX1dBSVRfSU5DT01QTEVURV9USU1FT1VUX0NOVEwKKyNkZWZpbmUgVVZEX1NFTUFfV0FJVF9JTkNPTVBMRVRFX1RJTUVPVVRfQ05UTF9fV0FJVF9JTkNPTVBMRVRFX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9TRU1BX1dBSVRfSU5DT01QTEVURV9USU1FT1VUX0NOVExfX1dBSVRfSU5DT01QTEVURV9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfU0VNQV9XQUlUX0lOQ09NUExFVEVfVElNRU9VVF9DTlRMX19SRVNFTkRfVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9TRU1BX1dBSVRfSU5DT01QTEVURV9USU1FT1VUX0NOVExfX1dBSVRfSU5DT01QTEVURV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9TRU1BX1dBSVRfSU5DT01QTEVURV9USU1FT1VUX0NOVExfX1dBSVRfSU5DT01QTEVURV9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRkZGRkVMCisjZGVmaW5lIFVWRF9TRU1BX1dBSVRfSU5DT01QTEVURV9USU1FT1VUX0NOVExfX1JFU0VORF9USU1FUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcwMDAwMDBMCisvL1VWRF9KT0JfU1RBUlQKKyNkZWZpbmUgVVZEX0pPQl9TVEFSVF9fSk9CX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9KT0JfU1RBUlRfX0pPQl9TVEFSVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisvL1VWRF9SQkNfQlVGX1NUQVRVUworI2RlZmluZSBVVkRfUkJDX0JVRl9TVEFUVVNfX1JCX0JVRl9WQUxJRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX1JCQ19CVUZfU1RBVFVTX19JQl9CVUZfVkFMSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9SQkNfQlVGX1NUQVRVU19fUkJfQlVGX1JEX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX1JCQ19CVUZfU1RBVFVTX19JQl9CVUZfUkRfQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBVVkRfUkJDX0JVRl9TVEFUVVNfX1JCX0JVRl9XUl9BRERSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9SQkNfQlVGX1NUQVRVU19fSUJfQlVGX1dSX0FERFJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX1JCQ19CVUZfU1RBVFVTX19SQl9CVUZfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVVZEX1JCQ19CVUZfU1RBVFVTX19JQl9CVUZfVkFMSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkYwMEwKKyNkZWZpbmUgVVZEX1JCQ19CVUZfU1RBVFVTX19SQl9CVUZfUkRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3MDAwMEwKKyNkZWZpbmUgVVZEX1JCQ19CVUZfU1RBVFVTX19JQl9CVUZfUkRfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4MDAwMEwKKyNkZWZpbmUgVVZEX1JCQ19CVUZfU1RBVFVTX19SQl9CVUZfV1JfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMUMwMDAwMEwKKyNkZWZpbmUgVVZEX1JCQ19CVUZfU1RBVFVTX19JQl9CVUZfV1JfQUREUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRTAwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IHV2ZDBfdXZkZ2VuZGVjCisvL1VWRF9MQ01fQ0dDX0NOVFJMCisjZGVmaW5lIFVWRF9MQ01fQ0dDX0NOVFJMX19GT1JDRV9PRkZfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVVZEX0xDTV9DR0NfQ05UUkxfX0ZPUkNFX09OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBVVkRfTENNX0NHQ19DTlRSTF9fT0ZGX0RFTEFZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFVWRF9MQ01fQ0dDX0NOVFJMX19PTl9ERUxBWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVVZEX0xDTV9DR0NfQ05UUkxfX0ZPUkNFX09GRl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKKyNkZWZpbmUgVVZEX0xDTV9DR0NfQ05UUkxfX0ZPUkNFX09OX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKKyNkZWZpbmUgVVZEX0xDTV9DR0NfQ05UUkxfX09GRl9ERUxBWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkYwMDAwMEwKKyNkZWZpbmUgVVZEX0xDTV9DR0NfQ05UUkxfX09OX0RFTEFZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKworCisvLyBhZGRyZXNzQmxvY2s6IHV2ZDBfbG1pX2FkcGRlYworLy9VVkRfTE1JX1JCQ19SQl82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfUkJDX1JCXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1JCQ19SQl82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX1JCQ19SQl82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX1JCQ19SQl82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9SQkNfUkJfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9SQkNfSUJfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX1JCQ19JQl82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9SQkNfSUJfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9SQkNfSUJfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9SQkNfSUJfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfUkJDX0lCXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfTEJTSV82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfTEJTSV82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0xCU0lfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0xCU0lfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9MQlNJXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfTEJTSV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfVkNQVV9OQzBfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX1ZDUFVfTkMwXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DMF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9WQ1BVX05DMF82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfTkMwXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DMF82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9WQ1BVX05DMV82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9OQzFfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfTkMxXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX1ZDUFVfTkMxXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfVkNQVV9OQzFfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfTkMxXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9WQ1BVX0NBQ0hFXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX1ZDUFVfQ0FDSEUxXzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTFfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfVkNQVV9DQUNIRTFfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTFfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfVkNQVV9DQUNIRThfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEU4XzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFOF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9WQ1BVX0NBQ0hFOF82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEU4XzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFOF82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEUyXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX1ZDUFVfQ0FDSEUyXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEUyXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX1ZDUFVfQ0FDSEUzXzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFM182NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTNfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfVkNQVV9DQUNIRTNfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFM182NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTNfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfVkNQVV9DQUNIRTRfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEU0XzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFNF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9WQ1BVX0NBQ0hFNF82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEU0XzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFNF82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9WQ1BVX0NBQ0hFNV82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTVfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEU1XzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX1ZDUFVfQ0FDSEU1XzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTVfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEU1XzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX1ZDUFVfQ0FDSEU2XzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFNl82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTZfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfVkNQVV9DQUNIRTZfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFNl82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRTZfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfVkNQVV9DQUNIRTdfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEU3XzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFN182NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9WQ1BVX0NBQ0hFN182NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEU3XzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFN182NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9NTVNDSF9OQzBfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX01NU0NIX05DMF82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzBfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9NTVNDSF9OQzBfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzBfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkMwXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfTU1TQ0hfTkMxXzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzFfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkMxXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfTU1TQ0hfTkMxXzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkMxXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX01NU0NIX05DMV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX01NU0NIX05DMl82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkMyXzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX01NU0NIX05DMl82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX01NU0NIX05DMl82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX01NU0NIX05DMl82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzJfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9NTVNDSF9OQzNfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX01NU0NIX05DM182NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzNfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9NTVNDSF9OQzNfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzNfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkMzXzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfTU1TQ0hfTkM0XzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzRfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkM0XzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfTU1TQ0hfTkM0XzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkM0XzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX01NU0NIX05DNF82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX01NU0NIX05DNV82NEJJVF9CQVJfTE9XCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkM1XzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX01NU0NIX05DNV82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX01NU0NIX05DNV82NEJJVF9CQVJfSElHSAorI2RlZmluZSBVVkRfTE1JX01NU0NIX05DNV82NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzVfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9NTVNDSF9OQzZfNjRCSVRfQkFSX0xPVworI2RlZmluZSBVVkRfTE1JX01NU0NIX05DNl82NEJJVF9CQVJfTE9XX19CSVRTXzMxXzBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzZfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9NTVNDSF9OQzZfNjRCSVRfQkFSX0hJR0gKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzZfNjRCSVRfQkFSX0hJR0hfX0JJVFNfNjNfMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkM2XzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfTU1TQ0hfTkM3XzY0QklUX0JBUl9MT1cKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQzdfNjRCSVRfQkFSX0xPV19fQklUU18zMV8wX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkM3XzY0QklUX0JBUl9MT1dfX0JJVFNfMzFfMF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfTU1TQ0hfTkM3XzY0QklUX0JBUl9ISUdICisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkM3XzY0QklUX0JBUl9ISUdIX19CSVRTXzYzXzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX01NU0NIX05DN182NEJJVF9CQVJfSElHSF9fQklUU182M18zMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX01NU0NIX05DX1ZNSUQKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzBfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkNfVk1JRF9fTU1TQ0hfTkMxX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfTE1JX01NU0NIX05DX1ZNSURfX01NU0NIX05DMl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzNfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkNfVk1JRF9fTU1TQ0hfTkM0X1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzVfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBVVkRfTE1JX01NU0NIX05DX1ZNSURfX01NU0NIX05DNl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4CisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfTkNfVk1JRF9fTU1TQ0hfTkM3X1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzBfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRkwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzFfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzJfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzNfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzRfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzVfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzZfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9OQ19WTUlEX19NTVNDSF9OQzdfVk1JRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGMDAwMDAwMEwKKy8vVVZEX0xNSV9NTVNDSF9DVFJMCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfQ1RSTF9fTU1TQ0hfREFUQV9DT0hFUkVOQ1lfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX01NU0NIX0NUUkxfX01NU0NIX1ZNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9SX01DX1NXQVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfQ1RSTF9fTU1TQ0hfV19NQ19TV0FQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBVVkRfTE1JX01NU0NIX0NUUkxfX01NU0NIX1JEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9XUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFVWRF9MTUlfTU1TQ0hfQ1RSTF9fTU1TQ0hfUkRfRFJPUF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBVVkRfTE1JX01NU0NIX0NUUkxfX01NU0NIX1dSX0RST1BfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9EQVRBX0NPSEVSRU5DWV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9WTV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9SX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9XX01DX1NXQVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA2MEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9SRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDE4MEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9XUl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9SRF9EUk9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX0xNSV9NTVNDSF9DVFJMX19NTVNDSF9XUl9EUk9QX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMEwKKy8vVVZEX0xNSV9BUkJfQ1RSTDIKKyNkZWZpbmUgVVZEX0xNSV9BUkJfQ1RSTDJfX0NFTkNfUkRfV0FJVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfQVJCX0NUUkwyX19BVE9NSUNfV1JfV0FJVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfTE1JX0FSQl9DVFJMMl9fQ0VOQ19SRF9NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0xNSV9BUkJfQ1RSTDJfX0FUT01JQ19XUl9NQVhfQlVSU1RfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFVWRF9MTUlfQVJCX0NUUkwyX19NSUZfUkRfUkVRX1JFVF9NQVhfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YQorI2RlZmluZSBVVkRfTE1JX0FSQl9DVFJMMl9fTUlGX1dSX1JFUV9SRVRfTUFYX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFVWRF9MTUlfQVJCX0NUUkwyX19DRU5DX1JEX1dBSVRfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9MTUlfQVJCX0NUUkwyX19BVE9NSUNfV1JfV0FJVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9MTUlfQVJCX0NUUkwyX19DRU5DX1JEX01BWF9CVVJTVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0NMCisjZGVmaW5lIFVWRF9MTUlfQVJCX0NUUkwyX19BVE9NSUNfV1JfTUFYX0JVUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzQzBMCisjZGVmaW5lIFVWRF9MTUlfQVJCX0NUUkwyX19NSUZfUkRfUkVRX1JFVF9NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRkZDMDBMCisjZGVmaW5lIFVWRF9MTUlfQVJCX0NUUkwyX19NSUZfV1JfUkVRX1JFVF9NQVhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMCisvL1VWRF9MTUlfVkNQVV9DQUNIRV9WTUlEU19NVUxUSQorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEUxX1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFX1ZNSURTX01VTFRJX19WQ1BVX0NBQ0hFMl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRV9WTUlEU19NVUxUSV9fVkNQVV9DQUNIRTNfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEU0X1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFX1ZNSURTX01VTFRJX19WQ1BVX0NBQ0hFNV9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEU2X1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRV9WTUlEU19NVUxUSV9fVkNQVV9DQUNIRTdfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFX1ZNSURTX01VTFRJX19WQ1BVX0NBQ0hFOF9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEUxX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGTAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEUyX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEYwTAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEUzX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRjAwTAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEU0X1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGMDAwTAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEU1X1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYwMDAwTAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEU2X1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAwMDAwTAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEU3X1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGMDAwMDAwTAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfQ0FDSEVfVk1JRFNfTVVMVElfX1ZDUFVfQ0FDSEU4X1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEYwMDAwMDAwTAorLy9VVkRfTE1JX1ZDUFVfTkNfVk1JRFNfTVVMVEkKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJX19WQ1BVX05DMl9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFVWRF9MTUlfVkNQVV9OQ19WTUlEU19NVUxUSV9fVkNQVV9OQzNfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfTkNfVk1JRFNfTVVMVElfX1ZDUFVfTkM0X1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJX19WQ1BVX05DNV9WTUlEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfTE1JX1ZDUFVfTkNfVk1JRFNfTVVMVElfX1ZDUFVfTkM2X1ZNSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFVWRF9MTUlfVkNQVV9OQ19WTUlEU19NVUxUSV9fVkNQVV9OQzdfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJX19WQ1BVX05DMl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMEwKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJX19WQ1BVX05DM19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYwMEwKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJX19WQ1BVX05DNF9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjAwMEwKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJX19WQ1BVX05DNV9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJX19WQ1BVX05DNl9WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX05DX1ZNSURTX01VTFRJX19WQ1BVX05DN19WTUlEX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRjAwMDAwMEwKKy8vVVZEX0xNSV9MQVRfQ1RSTAorI2RlZmluZSBVVkRfTE1JX0xBVF9DVFJMX19TQ0FMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9MQVRfQ1RSTF9fTUFYX1NUQVJUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfTEFUX0NUUkxfX01JTl9TVEFSVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfTE1JX0xBVF9DVFJMX19BVkdfU1RBUlRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX0xNSV9MQVRfQ1RSTF9fUEVSRk1PTl9TWU5DX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFVWRF9MTUlfTEFUX0NUUkxfX1NLSVBfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX0xNSV9MQVRfQ1RSTF9fU0NBTEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRkwKKyNkZWZpbmUgVVZEX0xNSV9MQVRfQ1RSTF9fTUFYX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVVZEX0xNSV9MQVRfQ1RSTF9fTUlOX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVVZEX0xNSV9MQVRfQ1RSTF9fQVZHX1NUQVJUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwKKyNkZWZpbmUgVVZEX0xNSV9MQVRfQ1RSTF9fUEVSRk1PTl9TWU5DX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKKyNkZWZpbmUgVVZEX0xNSV9MQVRfQ1RSTF9fU0tJUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMEwKKy8vVVZEX0xNSV9MQVRfQ05UUgorI2RlZmluZSBVVkRfTE1JX0xBVF9DTlRSX19NQVhfTEFUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9MQVRfQ05UUl9fTUlOX0xBVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfTEFUX0NOVFJfX01BWF9MQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFVWRF9MTUlfTEFUX0NOVFJfX01JTl9MQVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGMDBMCisvL1VWRF9MTUlfQVZHX0xBVF9DTlRSCisjZGVmaW5lIFVWRF9MTUlfQVZHX0xBVF9DTlRSX19FTlZfTE9XX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0FWR19MQVRfQ05UUl9fRU5WX0hJR0hfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0xNSV9BVkdfTEFUX0NOVFJfX0VOVl9ISVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfTE1JX0FWR19MQVRfQ05UUl9fRU5WX0xPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEZGTAorI2RlZmluZSBVVkRfTE1JX0FWR19MQVRfQ05UUl9fRU5WX0hJR0hfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRjAwTAorI2RlZmluZSBVVkRfTE1JX0FWR19MQVRfQ05UUl9fRU5WX0hJVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwTAorLy9VVkRfTE1JX1NQSAorI2RlZmluZSBVVkRfTE1JX1NQSF9fQUREUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9TUEhfX1NUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBVVkRfTE1JX1NQSF9fU1RTX1ZBTElEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFVWRF9MTUlfU1BIX19TVFNfT1ZFUkZMT1dfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWYKKyNkZWZpbmUgVVZEX0xNSV9TUEhfX0FERFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRkZGRkZGRkwKKyNkZWZpbmUgVVZEX0xNSV9TUEhfX1NUU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9TUEhfX1NUU19WQUxJRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9TUEhfX1NUU19PVkVSRkxPV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMEwKKy8vVVZEX0xNSV9WQ1BVX0NBQ0hFX1ZNSUQKKyNkZWZpbmUgVVZEX0xNSV9WQ1BVX0NBQ0hFX1ZNSURfX1ZDUFVfQ0FDSEVfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfVkNQVV9DQUNIRV9WTUlEX19WQ1BVX0NBQ0hFX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1VWRF9MTUlfQ1RSTDIKKyNkZWZpbmUgVVZEX0xNSV9DVFJMMl9fU1BIX0RJU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1NUQUxMX0FSQl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfTE1JX0NUUkwyX19BU1NFUlRfVU1DX1VSR0VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0xNSV9DVFJMMl9fTUFTS19VTUNfVVJHRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX0NSQzFfUkVTRVRfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBVVkRfTE1JX0NUUkwyX19EUkNJVEZfQlVCQkxFX0ZJWF9ESVNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX0xNSV9DVFJMMl9fU1RBTExfQVJCX1VNQ19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX01DX1JFQURfSURfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfTE1JX0NUUkwyX19NQ19XUklURV9JRF9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGIKKyNkZWZpbmUgVVZEX0xNSV9DVFJMMl9fVkNQVV9OQzBfRVhUX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1ZDUFVfTkMxX0VYVF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBVVkRfTE1JX0NUUkwyX19TUFVfRVhUUkFfQ0lEX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVVZEX0xNSV9DVFJMMl9fUkVfT0ZGTE9BRF9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfTE1JX0NUUkwyX19SRV9PRkxEX01JRl9XUl9SRVFfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX0NMRUFSX05KX1BGX0JQX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTkKKyNkZWZpbmUgVVZEX0xNSV9DVFJMMl9fTkpfTUlGX0dBVElOR19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYQorI2RlZmluZSBVVkRfTE1JX0NUUkwyX19DUkMxX1NFTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFiCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1NQSF9ESVNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1NUQUxMX0FSQl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX0FTU0VSVF9VTUNfVVJHRU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX01BU0tfVU1DX1VSR0VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX0NSQzFfUkVTRVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX0RSQ0lURl9CVUJCTEVfRklYX0RJU19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1NUQUxMX0FSQl9VTUNfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX01DX1JFQURfSURfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX01DX1dSSVRFX0lEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDE4MDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1ZDUFVfTkMwX0VYVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1ZDUFVfTkMxX0VYVF9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1NQVV9FWFRSQV9DSURfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1JFX09GRkxPQURfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX1JFX09GTERfTUlGX1dSX1JFUV9OVU1fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFGRTAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX0NMRUFSX05KX1BGX0JQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX05KX01JRl9HQVRJTkdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTDJfX0NSQzFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjgwMDAwMDBMCisvL1VWRF9MTUlfVVJHRU5UX0NUUkwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fRU5BQkxFX01DX1JEX1VSR0VOVF9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfVVJHRU5UX0NUUkxfX0FTU0VSVF9NQ19SRF9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBVVkRfTE1JX1VSR0VOVF9DVFJMX19BU1NFUlRfTUNfUkRfVVJHRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fRU5BQkxFX01DX1dSX1VSR0VOVF9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfVVJHRU5UX0NUUkxfX0FTU0VSVF9NQ19XUl9TVEFMTF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfTE1JX1VSR0VOVF9DVFJMX19BU1NFUlRfTUNfV1JfVVJHRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fRU5BQkxFX1VNQ19SRF9VUkdFTlRfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBVVkRfTE1JX1VSR0VOVF9DVFJMX19BU1NFUlRfVU1DX1JEX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFVWRF9MTUlfVVJHRU5UX0NUUkxfX0FTU0VSVF9VTUNfUkRfVVJHRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fRU5BQkxFX1VNQ19XUl9VUkdFTlRfU1RBTExfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfTE1JX1VSR0VOVF9DVFJMX19BU1NFUlRfVU1DX1dSX1NUQUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFVWRF9MTUlfVVJHRU5UX0NUUkxfX0FTU0VSVF9VTUNfV1JfVVJHRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fRU5BQkxFX01DX1JEX1VSR0VOVF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fQVNTRVJUX01DX1JEX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fQVNTRVJUX01DX1JEX1VSR0VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQ0wKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fRU5BQkxFX01DX1dSX1VSR0VOVF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fQVNTRVJUX01DX1dSX1NUQUxMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fQVNTRVJUX01DX1dSX1VSR0VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwM0MwMEwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fRU5BQkxFX1VNQ19SRF9VUkdFTlRfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fQVNTRVJUX1VNQ19SRF9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fQVNTRVJUX1VNQ19SRF9VUkdFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNDMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fRU5BQkxFX1VNQ19XUl9VUkdFTlRfU1RBTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fQVNTRVJUX1VNQ19XUl9TVEFMTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMEwKKyNkZWZpbmUgVVZEX0xNSV9VUkdFTlRfQ1RSTF9fQVNTRVJUX1VNQ19XUl9VUkdFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzQzAwMDAwMEwKKy8vVVZEX0xNSV9DVFJMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fV1JJVEVfQ0xFQU5fVElNRVJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0NUUkxfX1dSSVRFX0NMRUFOX1RJTUVSX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0xNSV9DVFJMX19SRVFfTU9ERV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5CisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fQVNTRVJUX01DX1VSR0VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBVVkRfTE1JX0NUUkxfX01BU0tfTUNfVVJHRU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgVVZEX0xNSV9DVFJMX19EQVRBX0NPSEVSRU5DWV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fQ1JDX1JFU0VUX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBVVkRfTE1JX0NUUkxfX0NSQ19TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgVVZEX0xNSV9DVFJMX19WQ1BVX0RBVEFfQ09IRVJFTkNZX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBVVkRfTE1JX0NUUkxfX0NNX0RBVEFfQ09IRVJFTkNZX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fREJfREJfREFUQV9DT0hFUkVOQ1lfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgVVZEX0xNSV9DVFJMX19EQl9JVF9EQVRBX0NPSEVSRU5DWV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfTE1JX0NUUkxfX0lUX0lUX0RBVEFfQ09IRVJFTkNZX0VOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fTUlGX01JRl9EQVRBX0NPSEVSRU5DWV9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgVVZEX0xNSV9DVFJMX19NSUZfTEVTU19PVVRTVEFORElOR19SRF9SRVFfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYgorI2RlZmluZSBVVkRfTE1JX0NUUkxfX1JGVV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fV1JJVEVfQ0xFQU5fVElNRVJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkZMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fV1JJVEVfQ0xFQU5fVElNRVJfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fUkVRX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fQVNTRVJUX01DX1VSR0VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fTUFTS19NQ19VUkdFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fREFUQV9DT0hFUkVOQ1lfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fQ1JDX1JFU0VUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fQ1JDX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjgwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fVkNQVV9EQVRBX0NPSEVSRU5DWV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fQ01fREFUQV9DT0hFUkVOQ1lfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fREJfREJfREFUQV9DT0hFUkVOQ1lfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fREJfSVRfREFUQV9DT0hFUkVOQ1lfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fSVRfSVRfREFUQV9DT0hFUkVOQ1lfRU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fTUlGX01JRl9EQVRBX0NPSEVSRU5DWV9FTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fTUlGX0xFU1NfT1VUU1RBTkRJTkdfUkRfUkVRX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfQ1RSTF9fUkZVX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAwMDAwMDBMCisvL1VWRF9MTUlfU1RBVFVTCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19SRUFEX0NMRUFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1NUQVRVU19fV1JJVEVfQ0xFQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVVZEX0xNSV9TVEFUVVNfX1dSSVRFX0NMRUFOX1JBV19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19WQ1BVX0xNSV9XUklURV9DTEVBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBVVkRfTE1JX1NUQVRVU19fVU1DX1JFQURfQ0xFQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgVVZEX0xNSV9TVEFUVVNfX1VNQ19XUklURV9DTEVBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19VTUNfV1JJVEVfQ0xFQU5fUkFXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBVVkRfTE1JX1NUQVRVU19fUEVORElOR19VVkRfTUNfV1JJVEVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgVVZEX0xNSV9TVEFUVVNfX1JFQURfQ0xFQU5fUkFXX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19VTUNfUkVBRF9DTEVBTl9SQVdfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBVVkRfTE1JX1NUQVRVU19fVU1DX1VWRF9JRExFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgVVZEX0xNSV9TVEFUVVNfX1VNQ19BVlBfSURMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19BRFBfTUNfUkVBRF9DTEVBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBVVkRfTE1JX1NUQVRVU19fQURQX1VNQ19SRUFEX0NMRUFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgVVZEX0xNSV9TVEFUVVNfX0JTUDBfV1JJVEVfQ0xFQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBVVkRfTE1JX1NUQVRVU19fQlNQMV9XUklURV9DTEVBTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19CU1AyX1dSSVRFX0NMRUFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgVVZEX0xNSV9TVEFUVVNfX0JTUDNfV1JJVEVfQ0xFQU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQorI2RlZmluZSBVVkRfTE1JX1NUQVRVU19fQ0VOQ19SRUFEX0NMRUFOX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19SRUFEX0NMRUFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19XUklURV9DTEVBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19XUklURV9DTEVBTl9SQVdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19WQ1BVX0xNSV9XUklURV9DTEVBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19VTUNfUkVBRF9DTEVBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19VTUNfV1JJVEVfQ0xFQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19VTUNfV1JJVEVfQ0xFQU5fUkFXX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19QRU5ESU5HX1VWRF9NQ19XUklURV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19SRUFEX0NMRUFOX1JBV19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19VTUNfUkVBRF9DTEVBTl9SQVdfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19VTUNfVVZEX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19VTUNfQVZQX0lETEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19BRFBfTUNfUkVBRF9DTEVBTl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19BRFBfVU1DX1JFQURfQ0xFQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19CU1AwX1dSSVRFX0NMRUFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19CU1AxX1dSSVRFX0NMRUFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19CU1AyX1dSSVRFX0NMRUFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19CU1AzX1dSSVRFX0NMRUFOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIFVWRF9MTUlfU1RBVFVTX19DRU5DX1JFQURfQ0xFQU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisvL1VWRF9MTUlfUEVSRk1PTl9DVFJMCisjZGVmaW5lIFVWRF9MTUlfUEVSRk1PTl9DVFJMX19QRVJGTU9OX1NUQVRFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1BFUkZNT05fQ1RSTF9fUEVSRk1PTl9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgKKyNkZWZpbmUgVVZEX0xNSV9QRVJGTU9OX0NUUkxfX1BFUkZNT05fU1RBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwM0wKKyNkZWZpbmUgVVZEX0xNSV9QRVJGTU9OX0NUUkxfX1BFUkZNT05fU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMUYwMEwKKy8vVVZEX0xNSV9QRVJGTU9OX0NPVU5UX0xPCisjZGVmaW5lIFVWRF9MTUlfUEVSRk1PTl9DT1VOVF9MT19fUEVSRk1PTl9DT1VOVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX1BFUkZNT05fQ09VTlRfTE9fX1BFUkZNT05fQ09VTlRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX1BFUkZNT05fQ09VTlRfSEkKKyNkZWZpbmUgVVZEX0xNSV9QRVJGTU9OX0NPVU5UX0hJX19QRVJGTU9OX0NPVU5UX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfUEVSRk1PTl9DT1VOVF9ISV9fUEVSRk1PTl9DT1VOVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMCisvL1VWRF9MTUlfUkJDX1JCX1ZNSUQKKyNkZWZpbmUgVVZEX0xNSV9SQkNfUkJfVk1JRF9fUkJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfUkJDX1JCX1ZNSURfX1JCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1VWRF9MTUlfUkJDX0lCX1ZNSUQKKyNkZWZpbmUgVVZEX0xNSV9SQkNfSUJfVk1JRF9fSUJfVk1JRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfUkJDX0lCX1ZNSURfX0lCX1ZNSURfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEZMCisvL1VWRF9MTUlfTUNfQ1JFRElUUworI2RlZmluZSBVVkRfTE1JX01DX0NSRURJVFNfX1VWRF9SRF9DUkVESVRTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9NQ19DUkVESVRTX19VVkRfV1JfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIFVWRF9MTUlfTUNfQ1JFRElUU19fVU1DX1JEX0NSRURJVFNfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVVZEX0xNSV9NQ19DUkVESVRTX19VTUNfV1JfQ1JFRElUU19fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOAorI2RlZmluZSBVVkRfTE1JX01DX0NSRURJVFNfX1VWRF9SRF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGTAorI2RlZmluZSBVVkRfTE1JX01DX0NSRURJVFNfX1VWRF9XUl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzRjAwTAorI2RlZmluZSBVVkRfTE1JX01DX0NSRURJVFNfX1VNQ19SRF9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0YwMDAwTAorI2RlZmluZSBVVkRfTE1JX01DX0NSRURJVFNfX1VNQ19XUl9DUkVESVRTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGMDAwMDAwTAorCisKKy8vIGFkZHJlc3NCbG9jazogdXZkMF91dmRucGRlYworLy9NRE1fRE1BX0NNRAorI2RlZmluZSBNRE1fRE1BX0NNRF9fTURNX0RNQV9DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTURNX0RNQV9DTURfX01ETV9ETUFfQ01EX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vTURNX0RNQV9TVEFUVVMKKyNkZWZpbmUgTURNX0RNQV9TVEFUVVNfX1NEQl9ETUFfV1JfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1ETV9ETUFfU1RBVFVTX19TQ01fRE1BX1dSX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNRE1fRE1BX1NUQVRVU19fU0NNX0RNQV9SRF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTURNX0RNQV9TVEFUVVNfX1JCX0RNQV9XUl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCisjZGVmaW5lIE1ETV9ETUFfU1RBVFVTX19SQl9ETUFfUkRfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNRE1fRE1BX1NUQVRVU19fU0RCX0RNQV9SRF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTURNX0RNQV9TVEFUVVNfX1NDTFJfRE1BX1dSX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIE1ETV9ETUFfU1RBVFVTX19TREJfRE1BX1dSX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1ETV9ETUFfU1RBVFVTX19TQ01fRE1BX1dSX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1ETV9ETUFfU1RBVFVTX19TQ01fRE1BX1JEX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1ETV9ETUFfU1RBVFVTX19SQl9ETUFfV1JfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1ETV9ETUFfU1RBVFVTX19SQl9ETUFfUkRfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1ETV9ETUFfU1RBVFVTX19TREJfRE1BX1JEX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1ETV9ETUFfU1RBVFVTX19TQ0xSX0RNQV9XUl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisvL01ETV9ETUFfQ1RMCisjZGVmaW5lIE1ETV9ETUFfQ1RMX19NRE1fQllQQVNTX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNRE1fRE1BX0NUTF9fRk9VUl9DTURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTURNX0RNQV9DVExfX0VOQ09ERV9NT0RFX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1ETV9ETUFfQ1RMX19WUDlfREVDX01PREVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNRE1fRE1BX0NUTF9fU1dfRFJTVF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmCisjZGVmaW5lIE1ETV9ETUFfQ1RMX19NRE1fQllQQVNTX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1ETV9ETUFfQ1RMX19GT1VSX0NNRF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1ETV9ETUFfQ1RMX19FTkNPREVfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1ETV9ETUFfQ1RMX19WUDlfREVDX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1ETV9ETUFfQ1RMX19TV19EUlNUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDBMCisvL01ETV9FTkNfUElQRV9CVVNZCisjZGVmaW5lIE1ETV9FTkNfUElQRV9CVVNZX19JTUVfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fU01QX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgTURNX0VOQ19QSVBFX0JVU1lfX1NJVF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1ETV9FTkNfUElQRV9CVVNZX19TREJfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fRU5UX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQKKyNkZWZpbmUgTURNX0VOQ19QSVBFX0JVU1lfX0VOVF9IRUFERVJfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1ETV9FTkNfUElQRV9CVVNZX19MQ01fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX1JEX0NVUl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgTURNX0VOQ19QSVBFX0JVU1lfX01ETV9SRF9SRUZfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1ETV9FTkNfUElQRV9CVVNZX19NRE1fUkRfR0VOX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OQorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX1dSX1JFQ09OX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGEKKyNkZWZpbmUgTURNX0VOQ19QSVBFX0JVU1lfX01ETV9XUl9HRU5fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiCisjZGVmaW5lIE1ETV9FTkNfUElQRV9CVVNZX19NRE1fRUZDX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YworI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX0VGQ19QUk9HUkFNX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQKKyNkZWZpbmUgTURNX0VOQ19QSVBFX0JVU1lfX01JRl9SRF9DVVJfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX1JFRjBfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1ETV9FTkNfUElQRV9CVVNZX19NSUZfV1JfR0VOMF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTURNX0VOQ19QSVBFX0JVU1lfX01JRl9SRF9HRU4wX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0dFTjFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1ETV9FTkNfUElQRV9CVVNZX19NSUZfUkRfR0VOMV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTURNX0VOQ19QSVBFX0JVU1lfX01JRl9XUl9CU1AwX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0JTUDFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1ETV9FTkNfUElQRV9CVVNZX19NSUZfUkRfQlNEMF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTURNX0VOQ19QSVBFX0JVU1lfX01JRl9SRF9CU0QxX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDJfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1ETV9FTkNfUElQRV9CVVNZX19NSUZfUkRfQlNEM19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTURNX0VOQ19QSVBFX0JVU1lfX01JRl9SRF9CU0Q0X0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fSU1FX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fU01QX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fU0lUX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fU0RCX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fRU5UX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fRU5UX0hFQURFUl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTENNX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX1JEX0NVUl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX1JEX1JFRl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX1JEX0dFTl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX1dSX1JFQ09OX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX1dSX0dFTl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX0VGQ19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTURNX0VGQ19QUk9HUkFNX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0NVUl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX1JFRjBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0dFTjBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0dFTjBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0dFTjFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0dFTjFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0JTUDBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1dSX0JTUDFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDBfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDFfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDJfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDNfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwTAorI2RlZmluZSBNRE1fRU5DX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDRfQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAorLy9NRE1fV0lHX1BJUEVfQlVTWQorI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fV0lHX1RCRV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX1dJR19FTlRfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19XSUdfRU5UX0hFQURFUl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgorI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fV0lHX0VOVF9IRUFERVJfRklGT19GVUxMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX0xDTV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NRE1fUkRfQ1VSX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQorI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fTURNX1JEX1JFRl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX01ETV9SRF9HRU5fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3CisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NRE1fV1JfUkVDT05fQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fTURNX1dSX0dFTl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX01JRl9SRF9DVVJfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfUkVGMF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YgorI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fTUlGX1dSX0dFTjBfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGMKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX01JRl9SRF9HRU4wX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfV1JfR0VOMV9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZQorI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fTUlGX1JEX0dFTjFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX01JRl9XUl9CU1AwX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fTUlGX1dSX0JTUDFfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfQlNEMF9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX01JRl9SRF9CU0QxX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMworI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDJfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfQlNEM19CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX01JRl9SRF9CU0Q0X0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fTUlGX1JEX0JTRDVfQlVTWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfV1JfQlNQMl9CVVNZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX01JRl9XUl9CU1AzX0JVU1lfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOQorI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fTENNX0JTUDBfTk9UX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19MQ01fQlNQMV9OT1RfRU1QVFlfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWIKKyNkZWZpbmUgTURNX1dJR19QSVBFX0JVU1lfX0xDTV9CU1AyX05PVF9FTVBUWV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxYworI2RlZmluZSBNRE1fV0lHX1BJUEVfQlVTWV9fTENNX0JTUDNfTk9UX0VNUFRZX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFkCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19XSUdfVEJFX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19XSUdfRU5UX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19XSUdfRU5UX0hFQURFUl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19XSUdfRU5UX0hFQURFUl9GSUZPX0ZVTExfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDhMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19MQ01fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NRE1fUkRfQ1VSX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NRE1fUkRfUkVGX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NRE1fUkRfR0VOX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NRE1fV1JfUkVDT05fQlVTWV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NRE1fV1JfR0VOX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfQ1VSX0JVU1lfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfUkVGMF9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfV1JfR0VOMF9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfR0VOMF9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfV1JfR0VOMV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfR0VOMV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfV1JfQlNQMF9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfV1JfQlNQMV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfQlNEMF9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfQlNEMV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfQlNEMl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfQlNEM19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfQlNENF9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfUkRfQlNENV9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfV1JfQlNQMl9CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19NSUZfV1JfQlNQM19CVVNZX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19MQ01fQlNQMF9OT1RfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19MQ01fQlNQMV9OT1RfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19MQ01fQlNQMl9OT1RfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDBMCisjZGVmaW5lIE1ETV9XSUdfUElQRV9CVVNZX19MQ01fQlNQM19OT1RfRU1QVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCisKKworLy8gYWRkcmVzc0Jsb2NrOiBsbWlfYWRwX2luZGlyZWN0CisvL1VWRF9MTUlfQ1JDMAorI2RlZmluZSBVVkRfTE1JX0NSQzBfX0NSQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9DUkMwX19DUkMzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKy8vVVZEX0xNSV9DUkMxCisjZGVmaW5lIFVWRF9MTUlfQ1JDMV9fQ1JDMzJfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBVVkRfTE1JX0NSQzFfX0NSQzMyX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGTAorLy9VVkRfTE1JX0NSQzIKKyNkZWZpbmUgVVZEX0xNSV9DUkMyX19DUkMzMl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFVWRF9MTUlfQ1JDMl9fQ1JDMzJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZMCisvL1VWRF9MTUlfQ1JDMworI2RlZmluZSBVVkRfTE1JX0NSQzNfX0NSQzMyX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgVVZEX0xNSV9DUkMzX19DUkMzMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRkwKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hdG9tZmlybXdhcmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hdG9tZmlybXdhcmUuaAppbmRleCAyNGNmZTg0Li5lODg1NDFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2F0b21maXJtd2FyZS5oCkBAIC0xNzg5LDYgKzE3ODksOTIgQEAgc3RydWN0IGF0b21fc21jX2RwbV9pbmZvX3Y0XzUKIAogfTsKIAorc3RydWN0IGF0b21fc21jX2RwbV9pbmZvX3Y0XzYKK3sKKyAgc3RydWN0ICAgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyICB0YWJsZV9oZWFkZXI7CisgIC8vIHNlY3Rpb246IGJvYXJkIHBhcmFtZXRlcnMKKyAgdWludDMyX3QgICAgIGkyY19wYWRkaW5nWzNdOyAgIC8vIG9sZCBpMmMgY29udHJvbCBhcmUgbW92ZWQgdG8gbmV3IGFyZWEKKworICB1aW50MTZfdCAgICAgbWF4dm9sdGFnZXN0ZXBnZng7IC8vIGluIG12KHEyKSBtYXggdm9sdGFnZSBzdGVwIHRoYXQgc211IHdpbGwgcmVxdWVzdC4gbXVsdGlwbGUgc3RlcHMgYXJlIHRha2VuIGlmIHZvbHRhZ2UgY2hhbmdlIGV4Y2VlZHMgdGhpcyB2YWx1ZS4KKyAgdWludDE2X3QgICAgIG1heHZvbHRhZ2VzdGVwc29jOyAvLyBpbiBtdihxMikgbWF4IHZvbHRhZ2Ugc3RlcCB0aGF0IHNtdSB3aWxsIHJlcXVlc3QuIG11bHRpcGxlIHN0ZXBzIGFyZSB0YWtlbiBpZiB2b2x0YWdlIGNoYW5nZSBleGNlZWRzIHRoaXMgdmFsdWUuCisKKyAgdWludDhfdCAgICAgIHZkZGdmeHZybWFwcGluZzsgICAgIC8vIHVzZSB2cl9tYXBwaW5nKiBiaXRmaWVsZHMKKyAgdWludDhfdCAgICAgIHZkZHNvY3ZybWFwcGluZzsgICAgIC8vIHVzZSB2cl9tYXBwaW5nKiBiaXRmaWVsZHMKKyAgdWludDhfdCAgICAgIHZkZG1lbXZybWFwcGluZzsgICAgIC8vIHVzZSB2cl9tYXBwaW5nKiBiaXRmaWVsZHMKKyAgdWludDhfdCAgICAgIGJvYXJkdnJtYXBwaW5nOyAgICAgIC8vIHVzZSB2cl9tYXBwaW5nKiBiaXRmaWVsZHMKKworICB1aW50OF90ICAgICAgZ2Z4dWx2cGhhc2VzaGVkZGluZ21hc2s7IC8vIHNldCB0aGlzIHRvIDEgdG8gc2V0IHBzaTAvMSB0byAxIGluIHVsdiBtb2RlCisgIHVpbnQ4X3QgICAgICBleHRlcm5hbHNlbnNvcnByZXNlbnQ7IC8vIGV4dGVybmFsIHJkaSBjb25uZWN0ZWQgdG8gdG1vbiAoYWthIHRlbXAgaW4pCisgIHVpbnQ4X3QgICAgICBwYWRkaW5nOF92WzJdOworCisgIC8vIHRlbGVtZXRyeSBzZXR0aW5ncworICB1aW50MTZfdCAgICAgZ2Z4bWF4Y3VycmVudDsgICAvLyBpbiBhbXBzCisgIHVpbnQ4X3QgICAgICBnZnhvZmZzZXQ7ICAgICAgIC8vIGluIGFtcHMKKyAgdWludDhfdCAgICAgIHBhZGRpbmdfdGVsZW1ldHJ5Z2Z4OworCisgIHVpbnQxNl90ICAgICBzb2NtYXhjdXJyZW50OyAgIC8vIGluIGFtcHMKKyAgdWludDhfdCAgICAgIHNvY29mZnNldDsgICAgICAgLy8gaW4gYW1wcworICB1aW50OF90ICAgICAgcGFkZGluZ190ZWxlbWV0cnlzb2M7CisKKyAgdWludDE2X3QgICAgIG1lbW1heGN1cnJlbnQ7ICAgLy8gaW4gYW1wcworICB1aW50OF90ICAgICAgbWVtb2Zmc2V0OyAgICAgICAvLyBpbiBhbXBzCisgIHVpbnQ4X3QgICAgICBwYWRkaW5nX3RlbGVtZXRyeW1lbTsKKworICB1aW50MTZfdCAgICAgYm9hcmRtYXhjdXJyZW50OyAgIC8vIGluIGFtcHMKKyAgdWludDhfdCAgICAgIGJvYXJkb2Zmc2V0OyAgICAgICAvLyBpbiBhbXBzCisgIHVpbnQ4X3QgICAgICBwYWRkaW5nX3RlbGVtZXRyeWJvYXJkaW5wdXQ7CisKKyAgLy8gZ3BpbyBzZXR0aW5ncworICB1aW50OF90ICAgICAgdnIwaG90Z3BpbzsgICAgICAvLyBncGlvIHBpbiBjb25maWd1cmVkIGZvciB2cjAgaG90IGV2ZW50CisgIHVpbnQ4X3QgICAgICB2cjBob3Rwb2xhcml0eTsgIC8vIGdwaW8gcG9sYXJpdHkgZm9yIHZyMCBob3QgZXZlbnQKKyAgdWludDhfdCAgICAgIHZyMWhvdGdwaW87ICAgICAgLy8gZ3BpbyBwaW4gY29uZmlndXJlZCBmb3IgdnIxIGhvdCBldmVudAorICB1aW50OF90ICAgICAgdnIxaG90cG9sYXJpdHk7ICAvLyBncGlvIHBvbGFyaXR5IGZvciB2cjEgaG90IGV2ZW50CisKKyAvLyBnZnhjbGsgcGxsIHNwcmVhZCBzcGVjdHJ1bQorICB1aW50OF90CSAgIHBsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7CS8vIG9uIG9yIG9mZgorICB1aW50OF90CSAgIHBsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7CS8vIHE0LjQKKyAgdWludDE2X3QJICAgcGxsZ2Z4Y2xrc3ByZWFkZnJlcTsJCS8vIGtoegorCisgLy8gdWNsayBzcHJlYWQgc3BlY3RydW0KKyAgdWludDhfdAkgICB1Y2xrc3ByZWFkZW5hYmxlZDsgICAvLyBvbiBvciBvZmYKKyAgdWludDhfdAkgICB1Y2xrc3ByZWFkcGVyY2VudDsgICAvLyBxNC40CisgIHVpbnQxNl90CSAgIHVjbGtzcHJlYWRmcmVxOwkgICAvLyBraHoKKworIC8vIGZjbGsgc3ByZWFkIHNwZWN0cnVtCisgIHVpbnQ4X3QJICAgZmNsa3NwcmVhZGVuYWJsZWQ7ICAgLy8gb24gb3Igb2ZmCisgIHVpbnQ4X3QJICAgZmNsa3NwcmVhZHBlcmNlbnQ7ICAgLy8gcTQuNAorICB1aW50MTZfdAkgICBmY2xrc3ByZWFkZnJlcTsJICAgLy8ga2h6CisKKworICAvLyBnZnhjbGsgZmxsIHNwcmVhZCBzcGVjdHJ1bQorICB1aW50OF90ICAgICAgZmxsZ2Z4Y2xrc3ByZWFkZW5hYmxlZDsgICAvLyBvbiBvciBvZmYKKyAgdWludDhfdCAgICAgIGZsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7ICAgLy8gcTQuNAorICB1aW50MTZfdCAgICAgZmxsZ2Z4Y2xrc3ByZWFkZnJlcTsgICAgICAvLyBraHoKKworICAvLyBpMmMgY29udHJvbGxlciBzdHJ1Y3R1cmUKKyAgc3RydWN0IHNtdWRwbV9pMmNfY29udHJvbGxlcl9jb25maWdfdjIgaTJjY29udHJvbGxlcnNbOF07CisKKyAgLy8gbWVtb3J5IHNlY3Rpb24KKyAgdWludDMyX3QJIG1lbW9yeWNoYW5uZWxlbmFibGVkOyAvLyBmb3IgZHJhbSB1c2Ugb25seSwgbWF4IDMyIGNoYW5uZWxzIGVuYWJsZWQgYml0IG1hc2suCisKKyAgdWludDhfdCAJIGRyYW1iaXR3aWR0aDsgLy8gZm9yIGRyYW0gdXNlIG9ubHkuICBzZWUgZHJhbSBiaXQgd2lkdGggdHlwZSBkZWZpbmVzCisgIHVpbnQ4X3QgCSBwYWRkaW5nbWVtWzNdOworCisJLy8gdG90YWwgYm9hcmQgcG93ZXIKKyAgdWludDE2X3QJIHRvdGFsYm9hcmRwb3dlcjsJICAvL29ubHkgbmVlZGVkIGZvciB0Y3AgZXN0aW1hdGVkIGNhc2UsIHdoZXJlIHRjcCA9IHRncCt0b3RhbCBib2FyZCBwb3dlcgorICB1aW50MTZfdAkgYm9hcmRwYWRkaW5nOworCisJLy8gc2VjdGlvbjogeGdtaSB0cmFpbmluZworICB1aW50OF90IAkgeGdtaWxpbmtzcGVlZFs0XTsKKyAgdWludDhfdCAJIHhnbWlsaW5rd2lkdGhbNF07CisKKyAgdWludDE2X3QJIHhnbWlmY2xrZnJlcVs0XTsKKyAgdWludDE2X3QJIHhnbWlzb2N2b2x0YWdlWzRdOworCisgIC8vIHJlc2VydmVkCisgIHVpbnQzMl90ICAgYm9hcmRyZXNlcnZlZFsxMF07Cit9OworCiAvKiAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgRGF0YSBUYWJsZSBhc2ljX3Byb2ZpbGluZ19pbmZvICBzdHJ1Y3R1cmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2RfcHBfaW50ZXJmYWNlLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dkX3BwX2ludGVyZmFjZS5oCmluZGV4IDViMWViYjcuLjI3Y2YwYWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2RfcHBfaW50ZXJmYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9wcF9pbnRlcmZhY2UuaApAQCAtMTQyLDYgKzE0Miw3IEBAIGVudW0gUFBfU01DX1BPV0VSX1BST0ZJTEUgewogCVBQX1NNQ19QT1dFUl9QUk9GSUxFX1ZSICAgICAgICAgICA9IDB4NCwKIAlQUF9TTUNfUE9XRVJfUFJPRklMRV9DT01QVVRFICAgICAgPSAweDUsCiAJUFBfU01DX1BPV0VSX1BST0ZJTEVfQ1VTVE9NICAgICAgID0gMHg2LAorCVBQX1NNQ19QT1dFUl9QUk9GSUxFX0NPVU5ULAogfTsKIAogZW51bSB7CkBAIC0xNzEsNiArMTcyLDEzIEBAIGVudW0gUFBfSFdNT05fVEVNUCB7CiAJUFBfVEVNUF9NQVgKIH07CiAKK2VudW0gcHBfbXAxX3N0YXRlIHsKKwlQUF9NUDFfU1RBVEVfTk9ORSwKKwlQUF9NUDFfU1RBVEVfU0hVVERPV04sCisJUFBfTVAxX1NUQVRFX1VOTE9BRCwKKwlQUF9NUDFfU1RBVEVfUkVTRVQsCit9OworCiAjZGVmaW5lIFBQX0dST1VQX01BU0sgICAgICAgIDB4RjAwMDAwMDAKICNkZWZpbmUgUFBfR1JPVVBfU0hJRlQgICAgICAgMjgKIApAQCAtMjY2LDYgKzI3NCw4IEBAIHN0cnVjdCBhbWRfcG1fZnVuY3MgewogCWludCAoKmdldF9wb3dlcl9wcm9maWxlX21vZGUpKHZvaWQgKmhhbmRsZSwgY2hhciAqYnVmKTsKIAlpbnQgKCpzZXRfcG93ZXJfcHJvZmlsZV9tb2RlKSh2b2lkICpoYW5kbGUsIGxvbmcgKmlucHV0LCB1aW50MzJfdCBzaXplKTsKIAlpbnQgKCpvZG5fZWRpdF9kcG1fdGFibGUpKHZvaWQgKmhhbmRsZSwgdWludDMyX3QgdHlwZSwgbG9uZyAqaW5wdXQsIHVpbnQzMl90IHNpemUpOworCWludCAoKnNldF9tcDFfc3RhdGUpKHZvaWQgKmhhbmRsZSwgZW51bSBwcF9tcDFfc3RhdGUgbXAxX3N0YXRlKTsKKwlpbnQgKCpzbXVfaTJjX2J1c19hY2Nlc3MpKHZvaWQgKmhhbmRsZSwgYm9vbCBhY3F1aXJlKTsKIC8qIGV4cG9ydCB0byBEQyAqLwogCXUzMiAoKmdldF9zY2xrKSh2b2lkICpoYW5kbGUsIGJvb2wgbG93KTsKIAl1MzIgKCpnZXRfbWNsaykodm9pZCAqaGFuZGxlLCBib29sIGxvdyk7CkBAIC0zMDEsNiArMzExLDcgQEAgc3RydWN0IGFtZF9wbV9mdW5jcyB7CiAJaW50ICgqc2V0X2FzaWNfYmFjb19zdGF0ZSkodm9pZCAqaGFuZGxlLCBpbnQgc3RhdGUpOwogCWludCAoKmdldF9wcGZlYXR1cmVfc3RhdHVzKSh2b2lkICpoYW5kbGUsIGNoYXIgKmJ1Zik7CiAJaW50ICgqc2V0X3BwZmVhdHVyZV9zdGF0dXMpKHZvaWQgKmhhbmRsZSwgdWludDY0X3QgcHBmZWF0dXJlX21hc2tzKTsKKwlpbnQgKCphc2ljX3Jlc2V0X21vZGVfMikodm9pZCAqaGFuZGxlKTsKIH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL25hdmkxMl9pcF9vZmZzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9uYXZpMTJfaXBfb2Zmc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMyY2M2MgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9uYXZpMTJfaXBfb2Zmc2V0LmgKQEAgLTAsMCArMSwxMTE5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5ICBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorICogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9uYXZpMTJfaXBfb2Zmc2V0X0hFQURFUgorI2RlZmluZSBfbmF2aTEyX2lwX29mZnNldF9IRUFERVIKKworI2RlZmluZSBNQVhfSU5TVEFOQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3CisjZGVmaW5lIE1BWF9TRUdNRU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKKworCitzdHJ1Y3QgSVBfQkFTRV9JTlNUQU5DRQoreworICAgIHVuc2lnbmVkIGludCBzZWdtZW50W01BWF9TRUdNRU5UXTsKK307CisKK3N0cnVjdCBJUF9CQVNFCit7CisgICAgc3RydWN0IElQX0JBU0VfSU5TVEFOQ0UgaW5zdGFuY2VbTUFYX0lOU1RBTkNFXTsKK307CisKKworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIEFUSFVCX0JBU0UgPXsgeyB7IHsgMHgwMDAwMEMwMCwgMHgwMjQwOEMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIENMS19CQVNFID17IHsgeyB7IDB4MDAwMTZDMDAsIDB4MDI0MDE4MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDE2RTAwLCAweDAyNDAxQzAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDAxNzAwMCwgMHgwMjQwMjAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwMTcyMDAsIDB4MDI0MDI0MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDFCMDAwLCAweDAyNDJEODAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDAxN0UwMCwgMHgwMjQwQkMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBERl9CQVNFID17IHsgeyB7IDB4MDAwMDcwMDAsIDB4MDI0MEI4MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBESU9fQkFTRSA9eyB7IHsgeyAweDAyNDA0MDAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgRE1VX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAxMiwgMHgwMDAwMDBDMCwgMHgwMDAwMzRDMCwgMHgwMDAwOTAwMCwgMHgwMjQwM0MwMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIERQQ1NfQkFTRSA9eyB7IHsgeyAweDAwMDAwMDEyLCAweDAwMDAwMEMwLCAweDAwMDAzNEMwLCAweDAwMDA5MDAwLCAweDAyNDAzQzAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgRlVTRV9CQVNFID17IHsgeyB7IDB4MDAwMTc0MDAsIDB4MDI0MDE0MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBHQ19CQVNFID17IHsgeyB7IDB4MDAwMDEyNjAsIDB4MDAwMEEwMDAsIDB4MDI0MDJDMDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBIREFfQkFTRSA9eyB7IHsgeyAweDAwNEMwMDAwLCAweDAyNDA0ODAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSERQX0JBU0UgPXsgeyB7IHsgMHgwMDAwMEYyMCwgMHgwMjQwQTQwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE1NSFVCX0JBU0UgPXsgeyB7IHsgMHgwMDAxQTAwMCwgMHgwMjQwODgwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE1QMF9CQVNFID17IHsgeyB7IDB4MDAwMTYwMDAsIDB4MDBEQzAwMDAsIDB4MDBFMDAwMDAsIDB4MDBFNDAwMDAsIDB4MDI0M0ZDMDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBNUDFfQkFTRSA9eyB7IHsgeyAweDAwMDE2MDAwLCAweDAwRTgwMDAwLCAweDAwRUMwMDAwLCAweDAwRjAwMDAwLCAweDAyNDAwNDAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgTkJJRjBfQkFTRSA9eyB7IHsgeyAweDAwMDAwMDAwLCAweDAwMDAwMDE0LCAweDAwMDAwRDIwLCAweDAwMDEwNDAwLCAweDAyNDFCMDAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgT1NTU1lTX0JBU0UgPXsgeyB7IHsgMHgwMDAwMTBBMCwgMHgwMjQwQTAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFBDSUUwX0JBU0UgPXsgeyB7IHsgMHgwMjQxMTgwMCwgMHgwNDQ0MDAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFNETUFfQkFTRSA9eyB7IHsgeyAweDAwMDAxMjYwLCAweDAwMDBBMDAwLCAweDAyNDAyQzAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDAwMTI2MCwgMHgwMDAwQTAwMCwgMHgwMjQwMkMwMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgU01VSU9fQkFTRSA9eyB7IHsgeyAweDAwMDE2ODAwLCAweDAwMDE2QTAwLCAweDAwNDQwMDAwLCAweDAyNDAxMDAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgVEhNX0JBU0UgPXsgeyB7IHsgMHgwMDAxNjYwMCwgMHgwMjQwMEMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFVNQ19CQVNFID17IHsgeyB7IDB4MDAwMTQwMDAsIDB4MDI0MjU4MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDU0MDAwLCAweDAyNDI1QzAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDA5NDAwMCwgMHgwMjQyNjAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwRDQwMDAsIDB4MDI0MjY0MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBVU0IwX0JBU0UgPXsgeyB7IHsgMHgwMjQyQTgwMCwgMHgwNUIwMDAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFVWRDBfQkFTRSA9eyB7IHsgeyAweDAwMDA3ODAwLCAweDAwMDA3RTAwLCAweDAyNDAzMDAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CisKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMjQwOEMwMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIENMS19CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE2QzAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAxODAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTZFMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDFDMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNzAwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMjAwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIENMS19CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE3MjAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAyNDAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUIwMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MkQ4MDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxN0UwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwQkMwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIENMS19CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDcwMDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MEI4MDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBERl9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBERl9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBESU9fQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwNDAwMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERJT19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBESU9fQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERJT19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBESU9fQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEyCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzNEMwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA5MDAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAzQzAwCisKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBETVVfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERNVV9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBETVVfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTIKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDM0QzAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDkwMDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDNDMDAKKworI2RlZmluZSBEUENTX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNzQwMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMTQwMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMjYwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBBMDAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAyQzAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0QzAwMDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDQ4MDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIREFfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIREFfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIRFBfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEYyMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwQTQwMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIRFBfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIRFBfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDFBMDAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAyNDA4ODAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTYwMDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDBEQzAwMDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFNDAwMDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0M0ZDMDAKKworI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDFfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNjIwMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMEU4MDAwMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMEVDMDAwMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwMDAwMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMDQwMAorCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDFfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDFfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE0CisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAweDAwMDAwRDIwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAweDAwMDEwNDAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAweDAyNDFCMDAwCisKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwQTAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgIDB4MDI0MEEwMDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMjQxMTgwMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwNDQ0MDAwMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMjYwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAweDAwMDBBMDAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAweDAyNDAyQzAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEyNjAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEEwMDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDJDMDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTY4MDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTZBMDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgIDB4MDA0NDAwMDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDEwMDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBUSE1fQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNjYwMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMEMwMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBUSE1fQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBUSE1fQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE0MDAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDI1ODAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNTQwMDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MjVDMDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5NDAwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQyNjAwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMEQ0MDAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDI2NDAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MkE4MDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDB4MDVCMDAwMDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNzgwMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwN0UwMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMzAwMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9uYXZpMTRfaXBfb2Zmc2V0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvbmF2aTE0X2lwX29mZnNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZGQ5ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvbmF2aTE0X2lwX29mZnNldC5oCkBAIC0wLDAgKzEsMTExOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyAqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2lmbmRlZiBfbmF2aTE0X2lwX29mZnNldF9IRUFERVIKKyNkZWZpbmUgX25hdmkxNF9pcF9vZmZzZXRfSEVBREVSCisKKyNkZWZpbmUgTUFYX0lOU1RBTkNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNworI2RlZmluZSBNQVhfU0VHTUVOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1CisKKworc3RydWN0IElQX0JBU0VfSU5TVEFOQ0UKK3sKKyAgICB1bnNpZ25lZCBpbnQgc2VnbWVudFtNQVhfU0VHTUVOVF07Cit9OworCitzdHJ1Y3QgSVBfQkFTRQoreworICAgIHN0cnVjdCBJUF9CQVNFX0lOU1RBTkNFIGluc3RhbmNlW01BWF9JTlNUQU5DRV07Cit9OworCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBBVEhVQl9CQVNFID17IHsgeyB7IDB4MDAwMDBDMDAsIDB4MDI0MDhDMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBDTEtfQkFTRSA9eyB7IHsgeyAweDAwMDE2QzAwLCAweDAyNDAxODAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDAxNkUwMCwgMHgwMjQwMUMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwMTcwMDAsIDB4MDI0MDIwMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDE3MjAwLCAweDAyNDAyNDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDAxQjAwMCwgMHgwMjQyRDgwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwMTdFMDAsIDB4MDI0MEJDMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgREZfQkFTRSA9eyB7IHsgeyAweDAwMDA3MDAwLCAweDAyNDBCODAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgRElPX0JBU0UgPXsgeyB7IHsgMHgwMjQwNDAwMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIERNVV9CQVNFID17IHsgeyB7IDB4MDAwMDAwMTIsIDB4MDAwMDAwQzAsIDB4MDAwMDM0QzAsIDB4MDAwMDkwMDAsIDB4MDI0MDNDMDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBEUENTX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAxMiwgMHgwMDAwMDBDMCwgMHgwMDAwMzRDMCwgMHgwMDAwOTAwMCwgMHgwMjQwM0MwMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIEZVU0VfQkFTRSA9eyB7IHsgeyAweDAwMDE3NDAwLCAweDAyNDAxNDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgR0NfQkFTRSA9eyB7IHsgeyAweDAwMDAxMjYwLCAweDAwMDBBMDAwLCAweDAyNDAyQzAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSERBX0JBU0UgPXsgeyB7IHsgMHgwMDRDMDAwMCwgMHgwMjQwNDgwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIEhEUF9CQVNFID17IHsgeyB7IDB4MDAwMDBGMjAsIDB4MDI0MEE0MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBNTUhVQl9CQVNFID17IHsgeyB7IDB4MDAwMUEwMDAsIDB4MDI0MDg4MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBNUDBfQkFTRSA9eyB7IHsgeyAweDAwMDE2MDAwLCAweDAwREMwMDAwLCAweDAwRTAwMDAwLCAweDAwRTQwMDAwLCAweDAyNDNGQzAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgTVAxX0JBU0UgPXsgeyB7IHsgMHgwMDAxNjAwMCwgMHgwMERDMDAwMCwgMHgwMEUwMDAwMCwgMHgwMEU0MDAwMCwgMHgwMjQzRkMwMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE5CSUYwX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAwMCwgMHgwMDAwMDAxNCwgMHgwMDAwMEQyMCwgMHgwMDAxMDQwMCwgMHgwMjQxQjAwMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE9TU1NZU19CQVNFID17IHsgeyB7IDB4MDAwMDEwQTAsIDB4MDI0MEEwMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBQQ0lFMF9CQVNFID17IHsgeyB7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMTQsIDB4MDAwMDBEMjAsIDB4MDAwMTA0MDAsIDB4MDI0MUIwMDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BX0JBU0UgPXsgeyB7IHsgMHgwMDAwMTI2MCwgMHgwMDAwQTAwMCwgMHgwMjQwMkMwMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwMDEyNjAsIDB4MDAwMEEwMDAsIDB4MDI0MDJDMDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFNNVUlPX0JBU0UgPXsgeyB7IHsgMHgwMDAxNjgwMCwgMHgwMDAxNkEwMCwgMHgwMDQ0MDAwMCwgMHgwMjQwMTAwMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFRITV9CQVNFID17IHsgeyB7IDB4MDAwMTY2MDAsIDB4MDI0MDBDMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBVTUNfQkFTRSA9eyB7IHsgeyAweDAwMDE0MDAwLCAweDAyNDI1ODAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMHgwMDA1NDAwMCwgMHgwMjQyNUMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDB4MDAwOTQwMDAsIDB4MDI0MjYwMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMEQ0MDAwLCAweDAyNDI2NDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgVVNCMF9CQVNFID17IHsgeyB7IDB4MDI0MkE4MDAsIDB4MDVCMDAwMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBVVkQwX0JBU0UgPXsgeyB7IHsgMHgwMDAwNzgwMCwgMHgwMDAwN0UwMCwgMHgwMjQwMzAwMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OworCisKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDMDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDhDMDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNkMwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMTgwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIENMS19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE2RTAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAxQzAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTcwMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDIwMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNzIwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMjQwMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIENMS19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFCMDAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDJEODAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTdFMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MEJDMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDBCODAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDQwMDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMgorI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzRDMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwOTAwMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwM0MwMAorCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEyCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzNEMwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA5MDAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAweDAyNDAzQzAwCisKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTc0MDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDE0MDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTI2MAorI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQTAwMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMkMwMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwNEMwMDAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDA0ODAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMjAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MEE0MDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAxQTAwMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMjQwODgwMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE2MDAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwREMwMDAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAweDAwRTQwMDAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAweDAyNDNGQzAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTYwMDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDBEQzAwMDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMDAwMDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFNDAwMDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0M0ZDMDAKKworI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxNAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEQyMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDQwMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMHgwMjQxQjAwMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAweDAwMDAxMEEwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAweDAyNDBBMDAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTQKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBEMjAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTA0MDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgIDB4MDI0MUIwMDAKKworI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTI2MAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQTAwMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMkMwMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMjYwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAweDAwMDBBMDAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAweDAyNDAyQzAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUFfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDE2ODAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAwMDE2QTAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAweDAwNDQwMDAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAweDAyNDAxMDAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTY2MDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDBDMDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNDAwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQyNTgwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDU0MDAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDI1QzAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOTQwMDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MjYwMDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBENDAwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQyNjQwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAweDAyNDJBODAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAweDA1QjAwMDAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc4MDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdFMDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDMwMDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvcmVub2lyX2lwX29mZnNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL3Jlbm9pcl9pcF9vZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTQ2NDhjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL3Jlbm9pcl9pcF9vZmZzZXQuaApAQCAtMCwwICsxLDEzNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX3Jlbm9pcl9pcF9vZmZzZXRfSEVBREVSCisjZGVmaW5lIF9yZW5vaXJfaXBfb2Zmc2V0X0hFQURFUgorCisjZGVmaW5lIE1BWF9JTlNUQU5DRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcKKyNkZWZpbmUgTUFYX1NFR01FTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNQorCisKK3N0cnVjdCBJUF9CQVNFX0lOU1RBTkNFCit7CisgICAgdW5zaWduZWQgaW50IHNlZ21lbnRbTUFYX1NFR01FTlRdOworfTsKKworc3RydWN0IElQX0JBU0UKK3sKKyAgICBzdHJ1Y3QgSVBfQkFTRV9JTlNUQU5DRSBpbnN0YW5jZVtNQVhfSU5TVEFOQ0VdOworfTsKKworCitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgQUNQX0JBU0UgPXsgeyB7IHsgMHgwMjQwMzgwMCwgMHgwMDQ4MDAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIEFUSFVCX0JBU0UgPXsgeyB7IHsgMHgwMDAwMEMyMCwgMHgwMjQwOEMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIENMS19CQVNFID17IHsgeyB7IDB4MDAwMTZDMDAsIDB4MDAwMTZFMDAsIDB4MDAwMTcwMDAsIDB4MDAwMTdFMDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBEQkdVX0lPMF9CQVNFID17IHsgeyB7IDB4MDAwMDAxRTAsIDB4MDI0MEI0MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBERl9CQVNFID17IHsgeyB7IDB4MDAwMDcwMDAsIDB4MDI0MEI4MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBESU9fQkFTRSA9eyB7IHsgeyAweDAyNDA0MDAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgRE1VX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAxMiwgMHgwMDAwMDBDMCwgMHgwMDAwMzRDMCwgMHgwMDAwOTAwMCwgMHgwMjQwM0MwMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIERQQ1NfQkFTRSA9eyB7IHsgeyAweDAwMDAwMDEyLCAweDAwMDAwMEMwLCAweDAwMDAzNEMwLCAweDAwMDA5MDAwLCAweDAyNDAzQzAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgRlVTRV9CQVNFID17IHsgeyB7IDB4MDAwMTc0MDAsIDB4MDI0MDE0MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBHQ19CQVNFID17IHsgeyB7IDB4MDAwMDIwMDAsIDB4MDAwMEEwMDAsIDB4MDI0MDJDMDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBIREFfQkFTRSA9eyB7IHsgeyAweDAyNDA0ODAwLCAweDAwNEMwMDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSERQX0JBU0UgPXsgeyB7IHsgMHgwMDAwMEYyMCwgMHgwMjQwQTQwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIElPSEMwX0JBU0UgPXsgeyB7IHsgMHgwMDAxMDAwMCwgMHgwMjQwNjAwMCwgMHgwNEVDMDAwMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIElTUF9CQVNFID17IHsgeyB7IDB4MDAwMTgwMDAsIDB4MDI0MEIwMDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBMMklNVTBfQkFTRSA9eyB7IHsgeyAweDAwMDA3REMwLCAweDAyNDA3MDAwLCAweDAwOTAwMDAwLCAweDA0RkMwMDAwLCAweDA1NUMwMDAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgTU1IVUJfQkFTRSA9eyB7IHsgeyAweDAwMDFBMDAwLCAweDAyNDA4ODAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgTVAwX0JBU0UgPXsgeyB7IHsgMHgwMDAxNjAwMCwgMHgwMjQzRkMwMCwgMHgwMERDMDAwMCwgMHgwMEUwMDAwMCwgMHgwMEU0MDAwMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE1QMV9CQVNFID17IHsgeyB7IDB4MDAwMTYwMDAsIDB4MDI0MDA0MDAsIDB4MDBFODAwMDAsIDB4MDBFQzAwMDAsIDB4MDBGMDAwMDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBOQklGMF9CQVNFID17IHsgeyB7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMTQsIDB4MDAwMDBEMjAsIDB4MDAwMTA0MDAsIDB4MDI0MUIwMDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBPU1NTWVNfQkFTRSA9eyB7IHsgeyAweDAwMDAxMEEwLCAweDAyNDBBMDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgUENJRTBfQkFTRSA9eyB7IHsgeyAweDAyNDExODAwLCAweDA0NDQwMDAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgU0RNQTBfQkFTRSA9eyB7IHsgeyAweDAwMDAxMjYwLCAweDAyNDBBODAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgU01VSU9fQkFTRSA9eyB7IHsgeyAweDAwMDE2ODAwLCAweDAwMDE2QTAwLCAweDAyNDAxMDAwLCAweDAwNDQwMDAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CitzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgVEhNX0JBU0UgPXsgeyB7IHsgMHgwMDAxNjYwMCwgMHgwMjQwMEMwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFVNQ19CQVNFID17IHsgeyB7IDB4MDAwMTQwMDAsIDB4MDI0MjU4MDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAweDAwMDU0MDAwLCAweDAyNDI1QzAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBVU0IwX0JBU0UgPXsgeyB7IHsgMHgwMjQyQTgwMCwgMHgwNUIwMDAwMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFVWRDBfQkFTRSA9eyB7IHsgeyAweDAwMDA3ODAwLCAweDAwMDA3RTAwLCAweDAyNDAzMDAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CisKKworI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMzgwMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ4MDAwMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFDUF9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQUNQX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBQ1BfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzIwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAyNDA4QzAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVRIVUJfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBVEhVQl9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFUSFVCX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTZDMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTZFMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTcwMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTdFMDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDTEtfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIENMS19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0xLX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgMHgwMDAwMDFFMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgMHgwMjQwQjQwMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERCR1VfSU8wX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREJHVV9JTzBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEQkdVX0lPMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3MDAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDBCODAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgREZfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERl9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERGX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDQwMDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBESU9fQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERJT19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRElPX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMgorI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzRDMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwOTAwMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwM0MwMAorCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERNVV9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE1VX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETVVfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEyCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMEMwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAweDAwMDAzNEMwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA5MDAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAweDAyNDAzQzAwCisKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRFBDU19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBEUENTX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERQQ1NfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTc0MDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDE0MDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBGVVNFX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEZVU0VfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRlVTRV9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQTAwMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwMkMwMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdDX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR0NfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBHQ19CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAyNDA0ODAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAwNEMwMDAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERBX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIREFfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEQV9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGMjAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MEE0MDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBIRFBfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEhEUF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSERQX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMjQwNjAwMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMHgwNEVDMDAwMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElPSEMwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSU9IQzBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJT0hDMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIElTUF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE4MDAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDBCMDAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBJU1BfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJU1BfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJU1BfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJU1BfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJU1BfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIElTUF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVNQX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBJU1BfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJU1BfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJU1BfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJU1BfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJU1BfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIElTUF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElTUF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdEQzAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgIDB4MDI0MDcwMDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgIDB4MDA5MDAwMDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgIDB4MDRGQzAwMDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgIDB4MDU1QzAwMDAKKworI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMMklNVTBfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEwySU1VMF9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTDJJTVUwX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAxQTAwMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMjQwODgwMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1NSFVCX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTU1IVUJfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNTUhVQl9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE2MDAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDNGQzAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAweDAwREMwMDAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAwMDAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAweDAwRTQwMDAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTYyMDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDA0MDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFODAwMDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFQzAwMDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMDAwMDAKKworI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNUDFfQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1QMV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVAxX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxNAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEQyMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDQwMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMHgwMjQxQjAwMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5CSUYwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTkJJRjBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOQklGMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAweDAwMDAxMEEwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAweDAyNDBBMDAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgT1NTU1lTX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBPU1NTWVNfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9TU1NZU19CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgIDB4MDI0MTE4MDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgIDB4MDQ0NDAwMDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQ0lFMF9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBDSUUwX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUENJRTBfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTI2MAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgMHgwMjQwQTgwMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNETUEwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0RNQTBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTRE1BMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAweDAwMDE2ODAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAweDAwMDE2QTAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAweDAyNDAxMDAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAweDAwNDQwMDAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTTVVJT19CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNNVUlPX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTY2MDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDBDMDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QwX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDFfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUMl9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1QzX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUSE1fQkFTRV9fSU5TVDRfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRITV9CQVNFX19JTlNUNV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVEhNX0JBU0VfX0lOU1Q2X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxNDAwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQyNTgwMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgICAweDAwMDU0MDAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgICAweDAyNDI1QzAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVNQ19CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVU1DX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVTUNfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHMCAgICAgICAgICAgICAgICAgICAgICAweDAyNDJBODAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHMSAgICAgICAgICAgICAgICAgICAgICAweDA1QjAwMDAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDBfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUMV9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1QyX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDNfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVNCMF9CQVNFX19JTlNUNF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVU0IwX0JBU0VfX0lOU1Q1X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVTQjBfQkFTRV9fSU5TVDZfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUcwICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDc4MDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUcxICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdFMDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUcyICAgICAgICAgICAgICAgICAgICAgIDB4MDI0MDMwMDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUMF9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1QxX1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDJfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUM19TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzEgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzIgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVVkQwX0JBU0VfX0lOU1Q0X1NFRzQgICAgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHMCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHMSAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHMiAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHMyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVWRDBfQkFTRV9fSU5TVDVfU0VHNCAgICAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUcwICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUcxICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUcyICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUczICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVVZEMF9CQVNFX19JTlNUNl9TRUc0ICAgICAgICAgICAgICAgICAgICAgIDAKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvc29jMTVfaWhfY2xpZW50aWQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9zb2MxNV9paF9jbGllbnRpZC5oCmluZGV4IDEyZTE5NmMxLi4xNzk0YWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvc29jMTVfaWhfY2xpZW50aWQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvc29jMTVfaWhfY2xpZW50aWQuaApAQCAtNDIsNyArNDIsNiBAQCBlbnVtIHNvYzE1X2loX2NsaWVudGlkIHsKIAlTT0MxNV9JSF9DTElFTlRJRF9TRTFTSAkJPSAweDBiLAogCVNPQzE1X0lIX0NMSUVOVElEX1NFMlNICQk9IDB4MGMsCiAJU09DMTVfSUhfQ0xJRU5USURfU0UzU0gJCT0gMHgwZCwKLQlTT0MxNV9JSF9DTElFTlRJRF9TWVNIVUIJPSAweDBlLAogCVNPQzE1X0lIX0NMSUVOVElEX1VWRDEJCT0gMHgwZSwKIAlTT0MxNV9JSF9DTElFTlRJRF9USE0JCT0gMHgwZiwKIAlTT0MxNV9JSF9DTElFTlRJRF9VVkQJCT0gMHgxMCwKQEAgLTYzLDcgKzYyLDE1IEBAIGVudW0gc29jMTVfaWhfY2xpZW50aWQgewogCiAJU09DMTVfSUhfQ0xJRU5USURfTUFYLAogCi0JU09DMTVfSUhfQ0xJRU5USURfVkNOCQk9IFNPQzE1X0lIX0NMSUVOVElEX1VWRAorCVNPQzE1X0lIX0NMSUVOVElEX1ZDTgkJPSBTT0MxNV9JSF9DTElFTlRJRF9VVkQsCisJU09DMTVfSUhfQ0xJRU5USURfVkNOMQkJPSBTT0MxNV9JSF9DTElFTlRJRF9VVkQxLAorCVNPQzE1X0lIX0NMSUVOVElEX1NETUEyCQk9IFNPQzE1X0lIX0NMSUVOVElEX0FDUCwKKwlTT0MxNV9JSF9DTElFTlRJRF9TRE1BMwkJPSBTT0MxNV9JSF9DTElFTlRJRF9EQ0UsCisJU09DMTVfSUhfQ0xJRU5USURfU0RNQTQJCT0gU09DMTVfSUhfQ0xJRU5USURfSVNQLAorCVNPQzE1X0lIX0NMSUVOVElEX1NETUE1CQk9IFNPQzE1X0lIX0NMSUVOVElEX1ZDRTAsCisJU09DMTVfSUhfQ0xJRU5USURfU0RNQTYJCT0gU09DMTVfSUhfQ0xJRU5USURfWERNQSwKKwlTT0MxNV9JSF9DTElFTlRJRF9TRE1BNwkJPSBTT0MxNV9JSF9DTElFTlRJRF9WQ0UxLAorCVNPQzE1X0lIX0NMSUVOVElEX1ZNQzEJCT0gU09DMTVfSUhfQ0xJRU5USURfUENJRTAsCiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS92OV9zdHJ1Y3RzLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvdjlfc3RydWN0cy5oCmluZGV4IDhiMzgzZGIuLmEwYzY3MjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS92OV9zdHJ1Y3RzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL3Y5X3N0cnVjdHMuaApAQCAtMTk2LDEwICsxOTYsMTAgQEAgc3RydWN0IHY5X21xZCB7CiAJdWludDMyX3QgY29tcHV0ZV93YXZlX3Jlc3RvcmVfYWRkcl9sbzsKIAl1aW50MzJfdCBjb21wdXRlX3dhdmVfcmVzdG9yZV9hZGRyX2hpOwogCXVpbnQzMl90IGNvbXB1dGVfd2F2ZV9yZXN0b3JlX2NvbnRyb2w7Ci0JdWludDMyX3QgcmVzZXJ2ZWRfMzk7Ci0JdWludDMyX3QgcmVzZXJ2ZWRfNDA7Ci0JdWludDMyX3QgcmVzZXJ2ZWRfNDE7Ci0JdWludDMyX3QgcmVzZXJ2ZWRfNDI7CisJdWludDMyX3QgY29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2U0OworCXVpbnQzMl90IGNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlNTsKKwl1aW50MzJfdCBjb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTY7CisJdWludDMyX3QgY29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2U3OwogCXVpbnQzMl90IHJlc2VydmVkXzQzOwogCXVpbnQzMl90IHJlc2VydmVkXzQ0OwogCXVpbnQzMl90IHJlc2VydmVkXzQ1OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9NYWtlZmlsZQppbmRleCA3MjdjNWNmLi4zOTAzNDVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9NYWtlZmlsZQpAQCAtMzUsNyArMzUsNyBAQAogCiBpbmNsdWRlICQoQU1EX1BPV0VSUExBWSkKIAotUE9XRVJfTUdSID0gYW1kX3Bvd2VycGxheS5vIGFtZGdwdV9zbXUubyBzbXVfdjExXzAubyB2ZWdhMjBfcHB0Lm8gbmF2aTEwX3BwdC5vCitQT1dFUl9NR1IgPSBhbWRfcG93ZXJwbGF5Lm8gYW1kZ3B1X3NtdS5vIHNtdV92MTFfMC5vIHNtdV92MTJfMC5vIHZlZ2EyMF9wcHQubyBhcmN0dXJ1c19wcHQubyBuYXZpMTBfcHB0Lm8gcmVub2lyX3BwdC5vCiAKIEFNRF9QUF9QT1dFUiA9ICQoYWRkcHJlZml4ICQoQU1EX1BQX1BBVEgpLywkKFBPV0VSX01HUikpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXkuYwppbmRleCBiZWExNTg3Li5mYThhZDdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRfcG93ZXJwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kX3Bvd2VycGxheS5jCkBAIC05MjQsNiArOTI0LDE5IEBAIHN0YXRpYyBpbnQgcHBfb2RuX2VkaXRfZHBtX3RhYmxlKHZvaWQgKmhhbmRsZSwgdWludDMyX3QgdHlwZSwgbG9uZyAqaW5wdXQsIHVpbnQzCiAJcmV0dXJuIGh3bWdyLT5od21ncl9mdW5jLT5vZG5fZWRpdF9kcG1fdGFibGUoaHdtZ3IsIHR5cGUsIGlucHV0LCBzaXplKTsKIH0KIAorc3RhdGljIGludCBwcF9kcG1fc2V0X21wMV9zdGF0ZSh2b2lkICpoYW5kbGUsIGVudW0gcHBfbXAxX3N0YXRlIG1wMV9zdGF0ZSkKK3sKKwlzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyID0gaGFuZGxlOworCisJaWYgKCFod21nciB8fCAhaHdtZ3ItPnBtX2VuKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChod21nci0+aHdtZ3JfZnVuYy0+c2V0X21wMV9zdGF0ZSkKKwkJcmV0dXJuIGh3bWdyLT5od21ncl9mdW5jLT5zZXRfbXAxX3N0YXRlKGh3bWdyLCBtcDFfc3RhdGUpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgcHBfZHBtX3N3aXRjaF9wb3dlcl9wcm9maWxlKHZvaWQgKmhhbmRsZSwKIAkJZW51bSBQUF9TTUNfUE9XRVJfUFJPRklMRSB0eXBlLCBib29sIGVuKQogewpAQCAtMTQ5NSw2ICsxNTA4LDQ2IEBAIHN0YXRpYyBpbnQgcHBfc2V0X3BwZmVhdHVyZV9zdGF0dXModm9pZCAqaGFuZGxlLCB1aW50NjRfdCBwcGZlYXR1cmVfbWFza3MpCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBwcF9hc2ljX3Jlc2V0X21vZGVfMih2b2lkICpoYW5kbGUpCit7CisJc3RydWN0IHBwX2h3bWdyICpod21nciA9IGhhbmRsZTsKKwkJaW50IHJldCA9IDA7CisKKwlpZiAoIWh3bWdyIHx8ICFod21nci0+cG1fZW4pCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKGh3bWdyLT5od21ncl9mdW5jLT5hc2ljX3Jlc2V0ID09IE5VTEwpIHsKKwkJcHJfaW5mb19yYXRlbGltaXRlZCgiJXMgd2FzIG5vdCBpbXBsZW1lbnRlZC5cbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJbXV0ZXhfbG9jaygmaHdtZ3ItPnNtdV9sb2NrKTsKKwlyZXQgPSBod21nci0+aHdtZ3JfZnVuYy0+YXNpY19yZXNldChod21nciwgU01VX0FTSUNfUkVTRVRfTU9ERV8yKTsKKwltdXRleF91bmxvY2soJmh3bWdyLT5zbXVfbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHBwX3NtdV9pMmNfYnVzX2FjY2Vzcyh2b2lkICpoYW5kbGUsIGJvb2wgYWNxdWlyZSkKK3sKKwlzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyID0gaGFuZGxlOworCWludCByZXQgPSAwOworCisJaWYgKCFod21nciB8fCAhaHdtZ3ItPnBtX2VuKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChod21nci0+aHdtZ3JfZnVuYy0+c211X2kyY19idXNfYWNjZXNzID09IE5VTEwpIHsKKwkJcHJfaW5mb19yYXRlbGltaXRlZCgiJXMgd2FzIG5vdCBpbXBsZW1lbnRlZC5cbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJbXV0ZXhfbG9jaygmaHdtZ3ItPnNtdV9sb2NrKTsKKwlyZXQgPSBod21nci0+aHdtZ3JfZnVuYy0+c211X2kyY19idXNfYWNjZXNzKGh3bWdyLCBhY3F1aXJlKTsKKwltdXRleF91bmxvY2soJmh3bWdyLT5zbXVfbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZF9wbV9mdW5jcyBwcF9kcG1fZnVuY3MgPSB7CiAJLmxvYWRfZmlybXdhcmUgPSBwcF9kcG1fbG9hZF9mdywKIAkud2FpdF9mb3JfZndfbG9hZGluZ19jb21wbGV0ZSA9IHBwX2RwbV9md19sb2FkaW5nX2NvbXBsZXRlLApAQCAtMTUyNSw2ICsxNTc4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRfcG1fZnVuY3MgcHBfZHBtX2Z1bmNzID0gewogCS5nZXRfcG93ZXJfcHJvZmlsZV9tb2RlID0gcHBfZ2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZSwKIAkuc2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZSA9IHBwX3NldF9wb3dlcl9wcm9maWxlX21vZGUsCiAJLm9kbl9lZGl0X2RwbV90YWJsZSA9IHBwX29kbl9lZGl0X2RwbV90YWJsZSwKKwkuc2V0X21wMV9zdGF0ZSA9IHBwX2RwbV9zZXRfbXAxX3N0YXRlLAogCS5zZXRfcG93ZXJfbGltaXQgPSBwcF9zZXRfcG93ZXJfbGltaXQsCiAJLmdldF9wb3dlcl9saW1pdCA9IHBwX2dldF9wb3dlcl9saW1pdCwKIC8qIGV4cG9ydCB0byBEQyAqLwpAQCAtMTU1MCw0ICsxNjA0LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRfcG1fZnVuY3MgcHBfZHBtX2Z1bmNzID0gewogCS5zZXRfYXNpY19iYWNvX3N0YXRlID0gcHBfc2V0X2FzaWNfYmFjb19zdGF0ZSwKIAkuZ2V0X3BwZmVhdHVyZV9zdGF0dXMgPSBwcF9nZXRfcHBmZWF0dXJlX3N0YXR1cywKIAkuc2V0X3BwZmVhdHVyZV9zdGF0dXMgPSBwcF9zZXRfcHBmZWF0dXJlX3N0YXR1cywKKwkuYXNpY19yZXNldF9tb2RlXzIgPSBwcF9hc2ljX3Jlc2V0X21vZGVfMiwKKwkuc211X2kyY19idXNfYWNjZXNzID0gcHBfc211X2kyY19idXNfYWNjZXNzLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZGdwdV9zbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZGdwdV9zbXUuYwppbmRleCA4YTNlYWRlLi4zMzk2MGZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jCkBAIC0yNyw5ICsyNywxMDUgQEAKICNpbmNsdWRlICJhbWRncHVfc211LmgiCiAjaW5jbHVkZSAic29jMTVfY29tbW9uLmgiCiAjaW5jbHVkZSAic211X3YxMV8wLmgiCisjaW5jbHVkZSAic211X3YxMl8wLmgiCiAjaW5jbHVkZSAiYXRvbS5oIgogI2luY2x1ZGUgImFtZF9wY2llLmgiCiAKKyN1bmRlZiBfX1NNVV9EVU1NWV9NQVAKKyNkZWZpbmUgX19TTVVfRFVNTVlfTUFQKHR5cGUpCSN0eXBlCitzdGF0aWMgY29uc3QgY2hhciogX19zbXVfbWVzc2FnZV9uYW1lc1tdID0geworCVNNVV9NRVNTQUdFX1RZUEVTCit9OworCitjb25zdCBjaGFyICpzbXVfZ2V0X21lc3NhZ2VfbmFtZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfbWVzc2FnZV90eXBlIHR5cGUpCit7CisJaWYgKHR5cGUgPCAwIHx8IHR5cGUgPj0gU01VX01TR19NQVhfQ09VTlQpCisJCXJldHVybiAidW5rbm93biBzbXUgbWVzc2FnZSI7CisJcmV0dXJuIF9fc211X21lc3NhZ2VfbmFtZXNbdHlwZV07Cit9CisKKyN1bmRlZiBfX1NNVV9EVU1NWV9NQVAKKyNkZWZpbmUgX19TTVVfRFVNTVlfTUFQKGZlYSkJI2ZlYQorc3RhdGljIGNvbnN0IGNoYXIqIF9fc211X2ZlYXR1cmVfbmFtZXNbXSA9IHsKKwlTTVVfRkVBVFVSRV9NQVNLUworfTsKKworY29uc3QgY2hhciAqc211X2dldF9mZWF0dXJlX25hbWUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gc211X2ZlYXR1cmVfbWFzayBmZWF0dXJlKQoreworCWlmIChmZWF0dXJlIDwgMCB8fCBmZWF0dXJlID49IFNNVV9GRUFUVVJFX0NPVU5UKQorCQlyZXR1cm4gInVua25vd24gc211IGZlYXR1cmUiOworCXJldHVybiBfX3NtdV9mZWF0dXJlX25hbWVzW2ZlYXR1cmVdOworfQorCitzaXplX3Qgc211X3N5c19nZXRfcHBfZmVhdHVyZV9tYXNrKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBjaGFyICpidWYpCit7CisJc2l6ZV90IHNpemUgPSAwOworCWludCByZXQgPSAwLCBpID0gMDsKKwl1aW50MzJfdCBmZWF0dXJlX21hc2tbMl0gPSB7IDAgfTsKKwlpbnQzMl90IGZlYXR1cmVfaW5kZXggPSAwOworCXVpbnQzMl90IGNvdW50ID0gMDsKKwl1aW50MzJfdCBzb3J0X2ZlYXR1cmVbU01VX0ZFQVRVUkVfQ09VTlRdOworCXVpbnQ2NF90IGh3X2ZlYXR1cmVfY291bnQgPSAwOworCisJcmV0ID0gc211X2ZlYXR1cmVfZ2V0X2VuYWJsZWRfbWFzayhzbXUsIGZlYXR1cmVfbWFzaywgMik7CisJaWYgKHJldCkKKwkJZ290byBmYWlsZWQ7CisKKwlzaXplID0gIHNwcmludGYoYnVmICsgc2l6ZSwgImZlYXR1cmVzIGhpZ2g6IDB4JTA4eCBsb3c6IDB4JTA4eFxuIiwKKwkJCWZlYXR1cmVfbWFza1sxXSwgZmVhdHVyZV9tYXNrWzBdKTsKKworCWZvciAoaSA9IDA7IGkgPCBTTVVfRkVBVFVSRV9DT1VOVDsgaSsrKSB7CisJCWZlYXR1cmVfaW5kZXggPSBzbXVfZmVhdHVyZV9nZXRfaW5kZXgoc211LCBpKTsKKwkJaWYgKGZlYXR1cmVfaW5kZXggPCAwKQorCQkJY29udGludWU7CisJCXNvcnRfZmVhdHVyZVtmZWF0dXJlX2luZGV4XSA9IGk7CisJCWh3X2ZlYXR1cmVfY291bnQrKzsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgaHdfZmVhdHVyZV9jb3VudDsgaSsrKSB7CisJCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXplLCAiJTAyZC4gJS0yMHMgKCUyZCkgOiAlc1xuIiwKKwkJCSAgICAgICBjb3VudCsrLAorCQkJICAgICAgIHNtdV9nZXRfZmVhdHVyZV9uYW1lKHNtdSwgc29ydF9mZWF0dXJlW2ldKSwKKwkJCSAgICAgICBpLAorCQkJICAgICAgICEhc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIHNvcnRfZmVhdHVyZVtpXSkgPworCQkJICAgICAgICJlbmFibGVkIiA6ICJkaXNhYmxlZCIpOworCX0KKworZmFpbGVkOgorCXJldHVybiBzaXplOworfQorCitpbnQgc211X3N5c19zZXRfcHBfZmVhdHVyZV9tYXNrKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50NjRfdCBuZXdfbWFzaykKK3sKKwlpbnQgcmV0ID0gMDsKKwl1aW50MzJfdCBmZWF0dXJlX21hc2tbMl0gPSB7IDAgfTsKKwl1aW50NjRfdCBmZWF0dXJlXzJfZW5hYmxlZCA9IDA7CisJdWludDY0X3QgZmVhdHVyZV8yX2Rpc2FibGVkID0gMDsKKwl1aW50NjRfdCBmZWF0dXJlX2VuYWJsZXMgPSAwOworCisJcmV0ID0gc211X2ZlYXR1cmVfZ2V0X2VuYWJsZWRfbWFzayhzbXUsIGZlYXR1cmVfbWFzaywgMik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWZlYXR1cmVfZW5hYmxlcyA9ICgodWludDY0X3QpZmVhdHVyZV9tYXNrWzFdIDw8IDMyIHwgKHVpbnQ2NF90KWZlYXR1cmVfbWFza1swXSk7CisKKwlmZWF0dXJlXzJfZW5hYmxlZCAgPSB+ZmVhdHVyZV9lbmFibGVzICYgbmV3X21hc2s7CisJZmVhdHVyZV8yX2Rpc2FibGVkID0gZmVhdHVyZV9lbmFibGVzICYgfm5ld19tYXNrOworCisJaWYgKGZlYXR1cmVfMl9lbmFibGVkKSB7CisJCXJldCA9IHNtdV9mZWF0dXJlX3VwZGF0ZV9lbmFibGVfc3RhdGUoc211LCBmZWF0dXJlXzJfZW5hYmxlZCwgdHJ1ZSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKwlpZiAoZmVhdHVyZV8yX2Rpc2FibGVkKSB7CisJCXJldCA9IHNtdV9mZWF0dXJlX3VwZGF0ZV9lbmFibGVfc3RhdGUoc211LCBmZWF0dXJlXzJfZGlzYWJsZWQsIGZhbHNlKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIHJldDsKK30KKwogaW50IHNtdV9nZXRfc21jX3ZlcnNpb24oc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQzMl90ICppZl92ZXJzaW9uLCB1aW50MzJfdCAqc211X3ZlcnNpb24pCiB7CiAJaW50IHJldCA9IDA7CkBAIC0xMzUsOSArMjMxLDggQEAgaW50IHNtdV9zZXRfaGFyZF9mcmVxX3JhbmdlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIHNtdV9jbGtfdHlwZSBjbGtfdHlwZSwKIGludCBzbXVfZ2V0X2RwbV9mcmVxX3JhbmdlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIHNtdV9jbGtfdHlwZSBjbGtfdHlwZSwKIAkJCSAgIHVpbnQzMl90ICptaW4sIHVpbnQzMl90ICptYXgpCiB7Ci0JaW50IHJldCA9IDAsIGNsa19pZCA9IDA7Ci0JdWludDMyX3QgcGFyYW0gPSAwOwogCXVpbnQzMl90IGNsb2NrX2xpbWl0OworCWludCByZXQgPSAwOwogCiAJaWYgKCFtaW4gJiYgIW1heCkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xNjgsMzYgKzI2MywxMSBAQCBpbnQgc211X2dldF9kcG1fZnJlcV9yYW5nZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfY2xrX3R5cGUgY2xrX3R5cGUsCiAKIAkJcmV0dXJuIDA7CiAJfQotCi0JbXV0ZXhfbG9jaygmc211LT5tdXRleCk7Ci0JY2xrX2lkID0gc211X2Nsa19nZXRfaW5kZXgoc211LCBjbGtfdHlwZSk7Ci0JaWYgKGNsa19pZCA8IDApIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290byBmYWlsZWQ7Ci0JfQotCi0JcGFyYW0gPSAoY2xrX2lkICYgMHhmZmZmKSA8PCAxNjsKLQotCWlmIChtYXgpIHsKLQkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19HZXRNYXhEcG1GcmVxLCBwYXJhbSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGZhaWxlZDsKLQkJcmV0ID0gc211X3JlYWRfc21jX2FyZyhzbXUsIG1heCk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGZhaWxlZDsKLQl9Ci0KLQlpZiAobWluKSB7Ci0JCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfR2V0TWluRHBtRnJlcSwgcGFyYW0pOwotCQlpZiAocmV0KQotCQkJZ290byBmYWlsZWQ7Ci0JCXJldCA9IHNtdV9yZWFkX3NtY19hcmcoc211LCBtaW4pOwotCQlpZiAocmV0KQotCQkJZ290byBmYWlsZWQ7Ci0JfQotCi1mYWlsZWQ6Ci0JbXV0ZXhfdW5sb2NrKCZzbXUtPm11dGV4KTsKKwkvKgorCSAqIFRvZG86IFVzZSBlYWNoIGFzaWMoQVNJQ19wcHQgZnVuY3MpIGNvbnRyb2wgdGhlIGNhbGxiYWNrcyBleHBvc2VkIHRvIHRoZQorCSAqIGNvcmUgZHJpdmVyIGFuZCB0aGVuIGhhdmUgaGVscGVycyBmb3Igc3R1ZmYgdGhhdCBpcyBjb21tb24oU01VX3YxMV94IHwgU01VX3YxMl94IGZ1bmNzKS4KKwkgKi8KKwlyZXQgPSBzbXVfZ2V0X2RwbV91bHRpbWF0ZV9mcmVxKHNtdSwgY2xrX3R5cGUsIG1pbiwgbWF4KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yNjIsNyArMzMyLDYgQEAgYm9vbCBzbXVfY2xrX2RwbV9pc19lbmFibGVkKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIHNtdV9jbGtfdHlwZSBjbGtfdHlwZSkKIAl9CiAKIAlpZighc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIGZlYXR1cmVfaWQpKSB7Ci0JCXByX3dhcm4oInNtdSAlZCBjbGsgZHBtIGZlYXR1cmUgJWQgaXMgbm90IGVuYWJsZWRcbiIsIGNsa190eXBlLCBmZWF0dXJlX2lkKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIApAQCAtMjg1LDYgKzM1NCw5IEBAIGludCBzbXVfZHBtX3NldF9wb3dlcl9nYXRlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MzJfdCBibG9ja190eXBlLAogCWNhc2UgQU1EX0lQX0JMT0NLX1RZUEVfR0ZYOgogCQlyZXQgPSBzbXVfZ2Z4X29mZl9jb250cm9sKHNtdSwgZ2F0ZSk7CiAJCWJyZWFrOworCWNhc2UgQU1EX0lQX0JMT0NLX1RZUEVfU0RNQToKKwkJcmV0ID0gc211X3Bvd2VyZ2F0ZV9zZG1hKHNtdSwgZ2F0ZSk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KQEAgLTMxOSw2ICszOTEsOSBAQCBpbnQgc211X2NvbW1vbl9yZWFkX3NlbnNvcihzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBhbWRfcHBfc2Vuc29ycyBzZW5zb3IsCiAJc3RydWN0IHNtdV9wb3dlcl9nYXRlICpwb3dlcl9nYXRlID0gJnNtdV9wb3dlci0+cG93ZXJfZ2F0ZTsKIAlpbnQgcmV0ID0gMDsKIAorCWlmKCFkYXRhIHx8ICFzaXplKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCXN3aXRjaCAoc2Vuc29yKSB7CiAJY2FzZSBBTURHUFVfUFBfU0VOU09SX1NUQUJMRV9QU1RBVEVfU0NMSzoKIAkJKigodWludDMyX3QgKilkYXRhKSA9IHNtdS0+cHN0YXRlX3NjbGs7CkBAIC0zNTksMTEgKzQzNCwxMiBAQCBpbnQgc211X3VwZGF0ZV90YWJsZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfdGFibGVfaWQgdGFibGVfaW5kZXgsIGludAogCQkgICAgIHZvaWQgKnRhYmxlX2RhdGEsIGJvb2wgZHJ2MnNtdSkKIHsKIAlzdHJ1Y3Qgc211X3RhYmxlX2NvbnRleHQgKnNtdV90YWJsZSA9ICZzbXUtPnNtdV90YWJsZTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHNtdS0+YWRldjsKIAlzdHJ1Y3Qgc211X3RhYmxlICp0YWJsZSA9IE5VTEw7CiAJaW50IHJldCA9IDA7CiAJaW50IHRhYmxlX2lkID0gc211X3RhYmxlX2dldF9pbmRleChzbXUsIHRhYmxlX2luZGV4KTsKIAotCWlmICghdGFibGVfZGF0YSB8fCB0YWJsZV9pZCA+PSBzbXVfdGFibGUtPnRhYmxlX2NvdW50KQorCWlmICghdGFibGVfZGF0YSB8fCB0YWJsZV9pZCA+PSBzbXVfdGFibGUtPnRhYmxlX2NvdW50IHx8IHRhYmxlX2lkIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAl0YWJsZSA9ICZzbXVfdGFibGUtPnRhYmxlc1t0YWJsZV9pbmRleF07CkBAIC0zODYsNiArNDYyLDkgQEAgaW50IHNtdV91cGRhdGVfdGFibGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gc211X3RhYmxlX2lkIHRhYmxlX2luZGV4LCBpbnQKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCisJLyogZmx1c2ggaGRwIGNhY2hlICovCisJYWRldi0+bmJpb19mdW5jcy0+aGRwX2ZsdXNoKGFkZXYsIE5VTEwpOworCiAJaWYgKCFkcnYyc211KQogCQltZW1jcHkodGFibGVfZGF0YSwgdGFibGUtPmNwdV9hZGRyLCB0YWJsZS0+c2l6ZSk7CiAKQEAgLTM5NiwxMiArNDc1LDIzIEBAIGJvb2wgaXNfc3VwcG9ydF9zd19zbXUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1ZFR0EyMCkKIAkJcmV0dXJuIChhbWRncHVfZHBtID09IDIpID8gdHJ1ZSA6IGZhbHNlOwotCWVsc2UgaWYgKGFkZXYtPmFzaWNfdHlwZSA+PSBDSElQX05BVkkxMCkKKwllbHNlIGlmIChhZGV2LT5hc2ljX3R5cGUgPj0gQ0hJUF9BUkNUVVJVUykKIAkJcmV0dXJuIHRydWU7CiAJZWxzZQogCQlyZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgaXNfc3VwcG9ydF9zd19zbXVfeGdtaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwlpZiAoYW1kZ3B1X2RwbSAhPSAxKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfVkVHQTIwKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKwogaW50IHNtdV9zeXNfZ2V0X3BwX3RhYmxlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB2b2lkICoqdGFibGUpCiB7CiAJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICpzbXVfdGFibGUgPSAmc211LT5zbXVfdGFibGU7CkBAIC00NzksMTQgKzU2OSw1NSBAQCBpbnQgc211X2ZlYXR1cmVfaW5pdF9kcG0oc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiAKIAlyZXR1cm4gcmV0OwogfQoraW50IHNtdV9mZWF0dXJlX3VwZGF0ZV9lbmFibGVfc3RhdGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQ2NF90IGZlYXR1cmVfbWFzaywgYm9vbCBlbmFibGVkKQoreworCXVpbnQzMl90IGZlYXR1cmVfbG93ID0gMCwgZmVhdHVyZV9oaWdoID0gMDsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghc211LT5wbV9lbmFibGVkKQorCQlyZXR1cm4gcmV0OworCisJZmVhdHVyZV9sb3cgPSAoZmVhdHVyZV9tYXNrID4+IDAgKSAmIDB4ZmZmZmZmZmY7CisJZmVhdHVyZV9oaWdoID0gKGZlYXR1cmVfbWFzayA+PiAzMikgJiAweGZmZmZmZmZmOworCisJaWYgKGVuYWJsZWQpIHsKKwkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19FbmFibGVTbXVGZWF0dXJlc0xvdywKKwkJCQkJCSAgZmVhdHVyZV9sb3cpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19FbmFibGVTbXVGZWF0dXJlc0hpZ2gsCisJCQkJCQkgIGZlYXR1cmVfaGlnaCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJfSBlbHNlIHsKKwkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19EaXNhYmxlU211RmVhdHVyZXNMb3csCisJCQkJCQkgIGZlYXR1cmVfbG93KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfRGlzYWJsZVNtdUZlYXR1cmVzSGlnaCwKKwkJCQkJCSAgZmVhdHVyZV9oaWdoKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwl9CisKKwlyZXR1cm4gcmV0OworfQogCiBpbnQgc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfZmVhdHVyZV9tYXNrIG1hc2spCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBzbXUtPmFkZXY7CiAJc3RydWN0IHNtdV9mZWF0dXJlICpmZWF0dXJlID0gJnNtdS0+c211X2ZlYXR1cmU7Ci0JdWludDMyX3QgZmVhdHVyZV9pZDsKKwlpbnQgZmVhdHVyZV9pZDsKIAlpbnQgcmV0ID0gMDsKIAorCWlmIChhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpCisJCXJldHVybiAxOworCiAJZmVhdHVyZV9pZCA9IHNtdV9mZWF0dXJlX2dldF9pbmRleChzbXUsIG1hc2spOworCWlmIChmZWF0dXJlX2lkIDwgMCkKKwkJcmV0dXJuIDA7CiAKIAlXQVJOX09OKGZlYXR1cmVfaWQgPiBmZWF0dXJlLT5mZWF0dXJlX251bSk7CiAKQEAgLTUwMSwxNSArNjMyLDIwIEBAIGludCBzbXVfZmVhdHVyZV9zZXRfZW5hYmxlZChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfZmVhdHVyZV9tYXNrIG1hc2ssCiAJCQkgICAgYm9vbCBlbmFibGUpCiB7CiAJc3RydWN0IHNtdV9mZWF0dXJlICpmZWF0dXJlID0gJnNtdS0+c211X2ZlYXR1cmU7Ci0JdWludDMyX3QgZmVhdHVyZV9pZDsKKwlpbnQgZmVhdHVyZV9pZDsKKwl1aW50NjRfdCBmZWF0dXJlX21hc2sgPSAwOwogCWludCByZXQgPSAwOwogCiAJZmVhdHVyZV9pZCA9IHNtdV9mZWF0dXJlX2dldF9pbmRleChzbXUsIG1hc2spOworCWlmIChmZWF0dXJlX2lkIDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlXQVJOX09OKGZlYXR1cmVfaWQgPiBmZWF0dXJlLT5mZWF0dXJlX251bSk7CiAKKwlmZWF0dXJlX21hc2sgPSAxVUxMIDw8IGZlYXR1cmVfaWQ7CisKIAltdXRleF9sb2NrKCZmZWF0dXJlLT5tdXRleCk7Ci0JcmV0ID0gc211X2ZlYXR1cmVfdXBkYXRlX2VuYWJsZV9zdGF0ZShzbXUsIGZlYXR1cmVfaWQsIGVuYWJsZSk7CisJcmV0ID0gc211X2ZlYXR1cmVfdXBkYXRlX2VuYWJsZV9zdGF0ZShzbXUsIGZlYXR1cmVfbWFzaywgZW5hYmxlKTsKIAlpZiAocmV0KQogCQlnb3RvIGZhaWxlZDsKIApAQCAtNTI3LDEwICs2NjMsMTIgQEAgaW50IHNtdV9mZWF0dXJlX3NldF9lbmFibGVkKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIHNtdV9mZWF0dXJlX21hc2sgbWFzaywKIGludCBzbXVfZmVhdHVyZV9pc19zdXBwb3J0ZWQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gc211X2ZlYXR1cmVfbWFzayBtYXNrKQogewogCXN0cnVjdCBzbXVfZmVhdHVyZSAqZmVhdHVyZSA9ICZzbXUtPnNtdV9mZWF0dXJlOwotCXVpbnQzMl90IGZlYXR1cmVfaWQ7CisJaW50IGZlYXR1cmVfaWQ7CiAJaW50IHJldCA9IDA7CiAKIAlmZWF0dXJlX2lkID0gc211X2ZlYXR1cmVfZ2V0X2luZGV4KHNtdSwgbWFzayk7CisJaWYgKGZlYXR1cmVfaWQgPCAwKQorCQlyZXR1cm4gMDsKIAogCVdBUk5fT04oZmVhdHVyZV9pZCA+IGZlYXR1cmUtPmZlYXR1cmVfbnVtKTsKIApAQCAtNTQ2LDEwICs2ODQsMTIgQEAgaW50IHNtdV9mZWF0dXJlX3NldF9zdXBwb3J0ZWQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJCQkgICAgICBib29sIGVuYWJsZSkKIHsKIAlzdHJ1Y3Qgc211X2ZlYXR1cmUgKmZlYXR1cmUgPSAmc211LT5zbXVfZmVhdHVyZTsKLQl1aW50MzJfdCBmZWF0dXJlX2lkOworCWludCBmZWF0dXJlX2lkOwogCWludCByZXQgPSAwOwogCiAJZmVhdHVyZV9pZCA9IHNtdV9mZWF0dXJlX2dldF9pbmRleChzbXUsIG1hc2spOworCWlmIChmZWF0dXJlX2lkIDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlXQVJOX09OKGZlYXR1cmVfaWQgPiBmZWF0dXJlLT5mZWF0dXJlX251bSk7CiAKQEAgLTU3MCwxMCArNzEwLDE4IEBAIHN0YXRpYyBpbnQgc211X3NldF9mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCWNhc2UgQ0hJUF9WRUdBMjA6CiAJY2FzZSBDSElQX05BVkkxMDoKKwljYXNlIENISVBfTkFWSTE0OgorCWNhc2UgQ0hJUF9OQVZJMTI6CisJY2FzZSBDSElQX0FSQ1RVUlVTOgogCQlpZiAoYWRldi0+cG0ucHBfZmVhdHVyZSAmIFBQX09WRVJEUklWRV9NQVNLKQogCQkJc211LT5vZF9lbmFibGVkID0gdHJ1ZTsKIAkJc211X3YxMV8wX3NldF9zbXVfZnVuY3Moc211KTsKIAkJYnJlYWs7CisJY2FzZSBDSElQX1JFTk9JUjoKKwkJaWYgKGFkZXYtPnBtLnBwX2ZlYXR1cmUgJiBQUF9PVkVSRFJJVkVfTUFTSykKKwkJCXNtdS0+b2RfZW5hYmxlZCA9IHRydWU7CisJCXNtdV92MTJfMF9zZXRfc211X2Z1bmNzKHNtdSk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTYwMCw2ICs3NDgsNyBAQCBzdGF0aWMgaW50IHNtdV9sYXRlX2luaXQodm9pZCAqaGFuZGxlKQogCiAJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCiAJCXJldHVybiAwOworCiAJbXV0ZXhfbG9jaygmc211LT5tdXRleCk7CiAJc211X2hhbmRsZV90YXNrKCZhZGV2LT5zbXUsCiAJCQlzbXUtPnNtdV9kcG0uZHBtX2xldmVsLApAQCAtODI5LDYgKzk3OCw5IEBAIHN0YXRpYyBpbnQgc211X292ZXJyaWRlX3BjaWVfcGFyYW1ldGVycyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIAl1aW50MzJfdCBwY2llX2dlbiA9IDAsIHBjaWVfd2lkdGggPSAwLCBzbXVfcGNpZV9hcmc7CiAJaW50IHJldDsKIAorCWlmIChhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpCisJCXJldHVybiAwOworCiAJaWYgKGFkZXYtPnBtLnBjaWVfZ2VuX21hc2sgJiBDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjQpCiAJCXBjaWVfZ2VuID0gMzsKIAllbHNlIGlmIChhZGV2LT5wbS5wY2llX2dlbl9tYXNrICYgQ0FJTF9QQ0lFX0xJTktfU1BFRURfU1VQUE9SVF9HRU4zKQpAQCAtODc1LDkgKzEwMjcsMTEgQEAgc3RhdGljIGludCBzbXVfc21jX3RhYmxlX2h3X2luaXQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJCXJldHVybiAwOwogCX0KIAotCXJldCA9IHNtdV9pbml0X2Rpc3BsYXlfY291bnQoc211LCAwKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OworCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9BUkNUVVJVUykgeworCQlyZXQgPSBzbXVfaW5pdF9kaXNwbGF5X2NvdW50KHNtdSwgMCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KIAogCWlmIChpbml0aWFsaXplKSB7CiAJCS8qIGdldCBib290X3ZhbHVlcyBmcm9tIHZiaW9zIHRvIHNldCByZXZpc2lvbiwgZ2Z4Y2xrLCBhbmQgZXRjLiAqLwpAQCAtOTI2LDYgKzEwODAsOCBAQCBzdGF0aWMgaW50IHNtdV9zbWNfdGFibGVfaHdfaW5pdChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAkJCXJldHVybiByZXQ7CiAJfQogCisJLyogc211X2R1bXBfcHB0YWJsZShzbXUpOyAqLworCiAJLyoKIAkgKiBDb3B5IHBwdGFibGUgYm8gaW4gdGhlIHZyYW0gdG8gc21jIHdpdGggU01VIE1TR3Mgc3VjaCBhcwogCSAqIFNldERyaXZlckRyYW1BZGRyIGFuZCBUcmFuc2ZlclRhYmxlRHJhbTJTbXUuCkBAIC05NDcsMjEgKzExMDMsMjMgQEAgc3RhdGljIGludCBzbXVfc21jX3RhYmxlX2h3X2luaXQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IHNtdV9vdmVycmlkZV9wY2llX3BhcmFtZXRlcnMoc211KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OworCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9BUkNUVVJVUykgeworCQlyZXQgPSBzbXVfb3ZlcnJpZGVfcGNpZV9wYXJhbWV0ZXJzKHNtdSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OwogCi0JcmV0ID0gc211X25vdGlmeV9kaXNwbGF5X2NoYW5nZShzbXUpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJCXJldCA9IHNtdV9ub3RpZnlfZGlzcGxheV9jaGFuZ2Uoc211KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CiAKLQkvKgotCSAqIFNldCBtaW4gZGVlcCBzbGVlcCBkY2UgZmNsayB3aXRoIGJvb3R1cCB2YWx1ZSBmcm9tIHZiaW9zIHZpYQotCSAqIFNldE1pbkRlZXBTbGVlcERjZWZjbGsgTVNHLgotCSAqLwotCXJldCA9IHNtdV9zZXRfbWluX2RjZWZfZGVlcF9zbGVlcChzbXUpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJCS8qCisJCSAqIFNldCBtaW4gZGVlcCBzbGVlcCBkY2UgZmNsayB3aXRoIGJvb3R1cCB2YWx1ZSBmcm9tIHZiaW9zIHZpYQorCQkgKiBTZXRNaW5EZWVwU2xlZXBEY2VmY2xrIE1TRy4KKwkJICovCisJCXJldCA9IHNtdV9zZXRfbWluX2RjZWZfZGVlcF9zbGVlcChzbXUpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CiAKIAkvKgogCSAqIFNldCBpbml0aWFsaXplZCB2YWx1ZXMgKGdldCBmcm9tIHZiaW9zKSB0byBkcG0gdGFibGVzIGNvbnRleHQgc3VjaCBhcwpAQCAtOTY5LDcgKzExMjcsNyBAQCBzdGF0aWMgaW50IHNtdV9zbWNfdGFibGVfaHdfaW5pdChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAkgKiB0eXBlIG9mIGNsa3MuCiAJICovCiAJaWYgKGluaXRpYWxpemUpIHsKLQkJcmV0ID0gc211X3BvcHVsYXRlX3NtY19wcHRhYmxlKHNtdSk7CisJCXJldCA9IHNtdV9wb3B1bGF0ZV9zbWNfdGFibGVzKHNtdSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCkBAIC05ODcsNyArMTE0NSw3IEBAIHN0YXRpYyBpbnQgc211X3NtY190YWJsZV9od19pbml0KHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAotCQlyZXQgPSBzbXVfZ2V0X3Bvd2VyX2xpbWl0KHNtdSwgJnNtdS0+ZGVmYXVsdF9wb3dlcl9saW1pdCwgZmFsc2UpOworCQlyZXQgPSBzbXVfZ2V0X3Bvd2VyX2xpbWl0KHNtdSwgJnNtdS0+ZGVmYXVsdF9wb3dlcl9saW1pdCwgdHJ1ZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KQEAgLTEwNzIsMTQgKzEyMzAsMjggQEAgc3RhdGljIGludCBzbXVfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAJc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAmYWRldi0+c211OwogCi0JaWYgKGFkZXYtPmZpcm13YXJlLmxvYWRfdHlwZSA9PSBBTURHUFVfRldfTE9BRF9QU1ApIHsKLQkJcmV0ID0gc211X2NoZWNrX2Z3X3N0YXR1cyhzbXUpOwotCQlpZiAocmV0KSB7Ci0JCQlwcl9lcnIoIlNNQyBmaXJtd2FyZSBzdGF0dXMgaXMgbm90IGNvcnJlY3RcbiIpOwotCQkJcmV0dXJuIHJldDsKKwlpZiAoYWRldi0+ZmlybXdhcmUubG9hZF90eXBlICE9IEFNREdQVV9GV19MT0FEX1BTUCkgeworCQlpZiAoYWRldi0+YXNpY190eXBlIDwgQ0hJUF9OQVZJMTApIHsKKwkJCXJldCA9IHNtdV9sb2FkX21pY3JvY29kZShzbXUpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQogCisJcmV0ID0gc211X2NoZWNrX2Z3X3N0YXR1cyhzbXUpOworCWlmIChyZXQpIHsKKwkJcHJfZXJyKCJTTUMgZmlybXdhcmUgc3RhdHVzIGlzIG5vdCBjb3JyZWN0XG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAoYWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVKSB7CisJCXNtdV9wb3dlcmdhdGVfc2RtYSgmYWRldi0+c211LCBmYWxzZSk7CisJCXNtdV9wb3dlcmdhdGVfdmNuKCZhZGV2LT5zbXUsIGZhbHNlKTsKKwl9CisKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0dXJuIDA7CisKIAlyZXQgPSBzbXVfZmVhdHVyZV9pbml0X2RwbShzbXUpOwogCWlmIChyZXQpCiAJCWdvdG8gZmFpbGVkOwpAQCAtMTEyNCw2ICsxMjk2LDExIEBAIHN0YXRpYyBpbnQgc211X2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogCXN0cnVjdCBzbXVfdGFibGVfY29udGV4dCAqdGFibGVfY29udGV4dCA9ICZzbXUtPnNtdV90YWJsZTsKIAlpbnQgcmV0ID0gMDsKIAorCWlmIChhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpIHsKKwkJc211X3Bvd2VyZ2F0ZV9zZG1hKCZhZGV2LT5zbXUsIHRydWUpOworCQlzbXVfcG93ZXJnYXRlX3ZjbigmYWRldi0+c211LCB0cnVlKTsKKwl9CisKIAlrZnJlZSh0YWJsZV9jb250ZXh0LT5kcml2ZXJfcHB0YWJsZSk7CiAJdGFibGVfY29udGV4dC0+ZHJpdmVyX3BwdGFibGUgPSBOVUxMOwogCkBAIC0xNDMxLDYgKzE2MDgsNyBAQCBpbnQgc211X2FkanVzdF9wb3dlcl9zdGF0ZV9keW5hbWljKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogCiAJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCiAJCXJldHVybiAtRUlOVkFMOworCiAJaWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpIHsKIAkJcmV0ID0gc211X2Rpc3BsYXlfY29uZmlnX2NoYW5nZWQoc211KTsKIAkJaWYgKHJldCkgewpAQCAtMTQzOSw4ICsxNjE3LDYgQEAgaW50IHNtdV9hZGp1c3RfcG93ZXJfc3RhdGVfZHluYW1pYyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAkJfQogCX0KIAotCWlmICghc211LT5wbV9lbmFibGVkKQotCQlyZXR1cm4gLUVJTlZBTDsKIAlyZXQgPSBzbXVfYXBwbHlfY2xvY2tzX2FkanVzdF9ydWxlcyhzbXUpOwogCWlmIChyZXQpIHsKIAkJcHJfZXJyKCJGYWlsZWQgdG8gYXBwbHkgY2xvY2tzIGFkanVzdCBydWxlcyEiKTsKQEAgLTE0NTksOSArMTYzNSwxNCBAQCBpbnQgc211X2FkanVzdF9wb3dlcl9zdGF0ZV9keW5hbWljKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogCQlyZXQgPSBzbXVfYXNpY19zZXRfcGVyZm9ybWFuY2VfbGV2ZWwoc211LCBsZXZlbCk7CiAJCWlmIChyZXQpIHsKIAkJCXJldCA9IHNtdV9kZWZhdWx0X3NldF9wZXJmb3JtYW5jZV9sZXZlbChzbXUsIGxldmVsKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlwcl9lcnIoIkZhaWxlZCB0byBzZXQgcGVyZm9ybWFuY2UgbGV2ZWwhIik7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KIAkJfQotCQlpZiAoIXJldCkKLQkJCXNtdV9kcG1fY3R4LT5kcG1fbGV2ZWwgPSBsZXZlbDsKKworCQkvKiB1cGRhdGUgdGhlIHNhdmVkIGNvcHkgKi8KKwkJc211X2RwbV9jdHgtPmRwbV9sZXZlbCA9IGxldmVsOwogCX0KIAogCWlmIChzbXVfZHBtX2N0eC0+ZHBtX2xldmVsICE9IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTCkgewpAQCAtMTUwMyw2ICsxNjg0LDQyIEBAIGludCBzbXVfaGFuZGxlX3Rhc2soc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJcmV0dXJuIHJldDsKIH0KIAoraW50IHNtdV9zd2l0Y2hfcG93ZXJfcHJvZmlsZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKKwkJCSAgICAgZW51bSBQUF9TTUNfUE9XRVJfUFJPRklMRSB0eXBlLAorCQkJICAgICBib29sIGVuKQoreworCXN0cnVjdCBzbXVfZHBtX2NvbnRleHQgKnNtdV9kcG1fY3R4ID0gJihzbXUtPnNtdV9kcG0pOworCWxvbmcgd29ya2xvYWQ7CisJdWludDMyX3QgaW5kZXg7CisKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoISh0eXBlIDwgUFBfU01DX1BPV0VSX1BST0ZJTEVfQ1VTVE9NKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltdXRleF9sb2NrKCZzbXUtPm11dGV4KTsKKworCWlmICghZW4pIHsKKwkJc211LT53b3JrbG9hZF9tYXNrICY9IH4oMSA8PCBzbXUtPndvcmtsb2FkX3Byb3JpdHlbdHlwZV0pOworCQlpbmRleCA9IGZscyhzbXUtPndvcmtsb2FkX21hc2spOworCQlpbmRleCA9IGluZGV4ID4gMCAmJiBpbmRleCA8PSBXT1JLTE9BRF9QT0xJQ1lfTUFYID8gaW5kZXggLSAxIDogMDsKKwkJd29ya2xvYWQgPSBzbXUtPndvcmtsb2FkX3NldHRpbmdbaW5kZXhdOworCX0gZWxzZSB7CisJCXNtdS0+d29ya2xvYWRfbWFzayB8PSAoMSA8PCBzbXUtPndvcmtsb2FkX3Byb3JpdHlbdHlwZV0pOworCQlpbmRleCA9IGZscyhzbXUtPndvcmtsb2FkX21hc2spOworCQlpbmRleCA9IGluZGV4IDw9IFdPUktMT0FEX1BPTElDWV9NQVggPyBpbmRleCAtIDEgOiAwOworCQl3b3JrbG9hZCA9IHNtdS0+d29ya2xvYWRfc2V0dGluZ1tpbmRleF07CisJfQorCisJaWYgKHNtdV9kcG1fY3R4LT5kcG1fbGV2ZWwgIT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfTUFOVUFMKQorCQlzbXVfc2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZShzbXUsICZ3b3JrbG9hZCwgMCk7CisKKwltdXRleF91bmxvY2soJnNtdS0+bXV0ZXgpOworCisJcmV0dXJuIDA7Cit9CisKIGVudW0gYW1kX2RwbV9mb3JjZWRfbGV2ZWwgc211X2dldF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIHsKIAlzdHJ1Y3Qgc211X2RwbV9jb250ZXh0ICpzbXVfZHBtX2N0eCA9ICYoc211LT5zbXVfZHBtKTsKQEAgLTE1MjAsMjggKzE3MzcsMTggQEAgZW51bSBhbWRfZHBtX2ZvcmNlZF9sZXZlbCBzbXVfZ2V0X3BlcmZvcm1hbmNlX2xldmVsKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogCiBpbnQgc211X2ZvcmNlX3BlcmZvcm1hbmNlX2xldmVsKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIGFtZF9kcG1fZm9yY2VkX2xldmVsIGxldmVsKQogewotCWludCByZXQgPSAwOwotCWludCBpOwogCXN0cnVjdCBzbXVfZHBtX2NvbnRleHQgKnNtdV9kcG1fY3R4ID0gJihzbXUtPnNtdV9kcG0pOworCWludCByZXQgPSAwOwogCiAJaWYgKCFzbXVfZHBtX2N0eC0+ZHBtX2NvbnRleHQpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JZm9yIChpID0gMDsgaSA8IHNtdS0+YWRldi0+bnVtX2lwX2Jsb2NrczsgaSsrKSB7Ci0JCWlmIChzbXUtPmFkZXYtPmlwX2Jsb2Nrc1tpXS52ZXJzaW9uLT50eXBlID09IEFNRF9JUF9CTE9DS19UWVBFX1NNQykKLQkJCWJyZWFrOwotCX0KLQotCi0Jc211LT5hZGV2LT5pcF9ibG9ja3NbaV0udmVyc2lvbi0+ZnVuY3MtPmVuYWJsZV91bWRfcHN0YXRlKHNtdSwgJmxldmVsKTsKLQlyZXQgPSBzbXVfaGFuZGxlX3Rhc2soc211LCBsZXZlbCwKLQkJCSAgICAgIEFNRF9QUF9UQVNLX1JFQURKVVNUX1BPV0VSX1NUQVRFKTsKKwlyZXQgPSBzbXVfZW5hYmxlX3VtZF9wc3RhdGUoc211LCAmbGV2ZWwpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQltdXRleF9sb2NrKCZzbXUtPm11dGV4KTsKLQlzbXVfZHBtX2N0eC0+ZHBtX2xldmVsID0gbGV2ZWw7Ci0JbXV0ZXhfdW5sb2NrKCZzbXUtPm11dGV4KTsKKwlyZXQgPSBzbXVfaGFuZGxlX3Rhc2soc211LCBsZXZlbCwKKwkJCSAgICAgIEFNRF9QUF9UQVNLX1JFQURKVVNUX1BPV0VSX1NUQVRFKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xNTg0LDMgKzE3OTEsMTIgQEAgY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIHNtdV92MTFfMF9pcF9ibG9jayA9CiAJLnJldiA9IDAsCiAJLmZ1bmNzID0gJnNtdV9pcF9mdW5jcywKIH07CisKK2NvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiBzbXVfdjEyXzBfaXBfYmxvY2sgPQoreworCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfU01DLAorCS5tYWpvciA9IDEyLAorCS5taW5vciA9IDAsCisJLnJldiA9IDAsCisJLmZ1bmNzID0gJnNtdV9pcF9mdW5jcywKK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hcmN0dXJ1c19wcHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FyY3R1cnVzX3BwdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxZjA3MjAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hcmN0dXJ1c19wcHQuYwpAQCAtMCwwICsxLDE5MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpbmNsdWRlICJwcF9kZWJ1Zy5oIgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSAiYW1kZ3B1LmgiCisjaW5jbHVkZSAiYW1kZ3B1X3NtdS5oIgorI2luY2x1ZGUgImF0b21maXJtd2FyZS5oIgorI2luY2x1ZGUgImFtZGdwdV9hdG9tZmlybXdhcmUuaCIKKyNpbmNsdWRlICJzbXVfdjExXzAuaCIKKyNpbmNsdWRlICJzbXUxMV9kcml2ZXJfaWZfYXJjdHVydXMuaCIKKyNpbmNsdWRlICJzb2MxNV9jb21tb24uaCIKKyNpbmNsdWRlICJhdG9tLmgiCisjaW5jbHVkZSAicG93ZXJfc3RhdGUuaCIKKyNpbmNsdWRlICJhcmN0dXJ1c19wcHQuaCIKKyNpbmNsdWRlICJzbXVfdjExXzBfcHB0YWJsZS5oIgorI2luY2x1ZGUgImFyY3R1cnVzX3Bwc21jLmgiCisjaW5jbHVkZSAibmJpby9uYmlvXzdfNF9zaF9tYXNrLmgiCisKKyNkZWZpbmUgQ1RGX09GRlNFVF9FREdFCQkJNQorI2RlZmluZSBDVEZfT0ZGU0VUX0hPVFNQT1QJCTUKKyNkZWZpbmUgQ1RGX09GRlNFVF9IQk0JCQk1CisKKyNkZWZpbmUgTVNHX01BUChtc2csIGluZGV4KSBcCisJW1NNVV9NU0dfIyNtc2ddID0gezEsIChpbmRleCl9CisjZGVmaW5lIEFSQ1RVUlVTX0ZFQV9NQVAoc211X2ZlYXR1cmUsIGFyY3R1cnVzX2ZlYXR1cmUpIFwKKwlbc211X2ZlYXR1cmVdID0gezEsIChhcmN0dXJ1c19mZWF0dXJlKX0KKworI2RlZmluZSBTTVVfRkVBVFVSRVNfTE9XX01BU0sgICAgICAgIDB4MDAwMDAwMDBGRkZGRkZGRgorI2RlZmluZSBTTVVfRkVBVFVSRVNfTE9XX1NISUZUICAgICAgIDAKKyNkZWZpbmUgU01VX0ZFQVRVUkVTX0hJR0hfTUFTSyAgICAgICAweEZGRkZGRkZGMDAwMDAwMDAKKyNkZWZpbmUgU01VX0ZFQVRVUkVTX0hJR0hfU0hJRlQgICAgICAzMgorCisjZGVmaW5lIFNNQ19EUE1fRkVBVFVSRSAoIFwKKwlGRUFUVVJFX0RQTV9QUkVGRVRDSEVSX01BU0sgfCBcCisJRkVBVFVSRV9EUE1fR0ZYQ0xLX01BU0sgfCBcCisJRkVBVFVSRV9EUE1fVUNMS19NQVNLIHwgXAorCUZFQVRVUkVfRFBNX1NPQ0NMS19NQVNLIHwgXAorCUZFQVRVUkVfRFBNX01QMENMS19NQVNLIHwgXAorCUZFQVRVUkVfRFBNX0ZDTEtfTUFTSyB8IFwKKwlGRUFUVVJFX0RQTV9YR01JX01BU0spCisKKy8qIHBvc3NpYmxlIGZyZXF1ZW5jeSBkcmlmdCAoMU1oeikgKi8KKyNkZWZpbmUgRVBTSUxPTgkJCQkxCisKK3N0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBhcmN0dXJ1c19tZXNzYWdlX21hcFtTTVVfTVNHX01BWF9DT1VOVF0gPSB7CisJTVNHX01BUChUZXN0TWVzc2FnZSwJCQkgICAgIFBQU01DX01TR19UZXN0TWVzc2FnZSksCisJTVNHX01BUChHZXRTbXVWZXJzaW9uLAkJCSAgICAgUFBTTUNfTVNHX0dldFNtdVZlcnNpb24pLAorCU1TR19NQVAoR2V0RHJpdmVySWZWZXJzaW9uLAkJICAgICBQUFNNQ19NU0dfR2V0RHJpdmVySWZWZXJzaW9uKSwKKwlNU0dfTUFQKFNldEFsbG93ZWRGZWF0dXJlc01hc2tMb3csCSAgICAgUFBTTUNfTVNHX1NldEFsbG93ZWRGZWF0dXJlc01hc2tMb3cpLAorCU1TR19NQVAoU2V0QWxsb3dlZEZlYXR1cmVzTWFza0hpZ2gsCSAgICAgUFBTTUNfTVNHX1NldEFsbG93ZWRGZWF0dXJlc01hc2tIaWdoKSwKKwlNU0dfTUFQKEVuYWJsZUFsbFNtdUZlYXR1cmVzLAkJICAgICBQUFNNQ19NU0dfRW5hYmxlQWxsU211RmVhdHVyZXMpLAorCU1TR19NQVAoRGlzYWJsZUFsbFNtdUZlYXR1cmVzLAkJICAgICBQUFNNQ19NU0dfRGlzYWJsZUFsbFNtdUZlYXR1cmVzKSwKKwlNU0dfTUFQKEVuYWJsZVNtdUZlYXR1cmVzTG93LAkJICAgICBQUFNNQ19NU0dfRW5hYmxlU211RmVhdHVyZXNMb3cpLAorCU1TR19NQVAoRW5hYmxlU211RmVhdHVyZXNIaWdoLAkJICAgICBQUFNNQ19NU0dfRW5hYmxlU211RmVhdHVyZXNIaWdoKSwKKwlNU0dfTUFQKERpc2FibGVTbXVGZWF0dXJlc0xvdywJCSAgICAgUFBTTUNfTVNHX0Rpc2FibGVTbXVGZWF0dXJlc0xvdyksCisJTVNHX01BUChEaXNhYmxlU211RmVhdHVyZXNIaWdoLAkJICAgICBQUFNNQ19NU0dfRGlzYWJsZVNtdUZlYXR1cmVzSGlnaCksCisJTVNHX01BUChHZXRFbmFibGVkU211RmVhdHVyZXNMb3csCSAgICAgUFBTTUNfTVNHX0dldEVuYWJsZWRTbXVGZWF0dXJlc0xvdyksCisJTVNHX01BUChHZXRFbmFibGVkU211RmVhdHVyZXNIaWdoLAkgICAgIFBQU01DX01TR19HZXRFbmFibGVkU211RmVhdHVyZXNIaWdoKSwKKwlNU0dfTUFQKFNldERyaXZlckRyYW1BZGRySGlnaCwJCSAgICAgUFBTTUNfTVNHX1NldERyaXZlckRyYW1BZGRySGlnaCksCisJTVNHX01BUChTZXREcml2ZXJEcmFtQWRkckxvdywJCSAgICAgUFBTTUNfTVNHX1NldERyaXZlckRyYW1BZGRyTG93KSwKKwlNU0dfTUFQKFNldFRvb2xzRHJhbUFkZHJIaWdoLAkJICAgICBQUFNNQ19NU0dfU2V0VG9vbHNEcmFtQWRkckhpZ2gpLAorCU1TR19NQVAoU2V0VG9vbHNEcmFtQWRkckxvdywJCSAgICAgUFBTTUNfTVNHX1NldFRvb2xzRHJhbUFkZHJMb3cpLAorCU1TR19NQVAoVHJhbnNmZXJUYWJsZVNtdTJEcmFtLAkJICAgICBQUFNNQ19NU0dfVHJhbnNmZXJUYWJsZVNtdTJEcmFtKSwKKwlNU0dfTUFQKFRyYW5zZmVyVGFibGVEcmFtMlNtdSwJCSAgICAgUFBTTUNfTVNHX1RyYW5zZmVyVGFibGVEcmFtMlNtdSksCisJTVNHX01BUChVc2VEZWZhdWx0UFBUYWJsZSwJCSAgICAgUFBTTUNfTVNHX1VzZURlZmF1bHRQUFRhYmxlKSwKKwlNU0dfTUFQKFVzZUJhY2t1cFBQVGFibGUsCQkgICAgIFBQU01DX01TR19Vc2VCYWNrdXBQUFRhYmxlKSwKKwlNU0dfTUFQKFNldFN5c3RlbVZpcnR1YWxEcmFtQWRkckhpZ2gsCSAgICAgUFBTTUNfTVNHX1NldFN5c3RlbVZpcnR1YWxEcmFtQWRkckhpZ2gpLAorCU1TR19NQVAoU2V0U3lzdGVtVmlydHVhbERyYW1BZGRyTG93LAkgICAgIFBQU01DX01TR19TZXRTeXN0ZW1WaXJ0dWFsRHJhbUFkZHJMb3cpLAorCU1TR19NQVAoRW50ZXJCYWNvLAkJCSAgICAgUFBTTUNfTVNHX0VudGVyQmFjbyksCisJTVNHX01BUChFeGl0QmFjbywJCQkgICAgIFBQU01DX01TR19FeGl0QmFjbyksCisJTVNHX01BUChBcm1EMywJCQkJICAgICBQUFNNQ19NU0dfQXJtRDMpLAorCU1TR19NQVAoU2V0U29mdE1pbkJ5RnJlcSwJCSAgICAgUFBTTUNfTVNHX1NldFNvZnRNaW5CeUZyZXEpLAorCU1TR19NQVAoU2V0U29mdE1heEJ5RnJlcSwJCSAgICAgUFBTTUNfTVNHX1NldFNvZnRNYXhCeUZyZXEpLAorCU1TR19NQVAoU2V0SGFyZE1pbkJ5RnJlcSwJCSAgICAgUFBTTUNfTVNHX1NldEhhcmRNaW5CeUZyZXEpLAorCU1TR19NQVAoU2V0SGFyZE1heEJ5RnJlcSwJCSAgICAgUFBTTUNfTVNHX1NldEhhcmRNYXhCeUZyZXEpLAorCU1TR19NQVAoR2V0TWluRHBtRnJlcSwJCQkgICAgIFBQU01DX01TR19HZXRNaW5EcG1GcmVxKSwKKwlNU0dfTUFQKEdldE1heERwbUZyZXEsCQkJICAgICBQUFNNQ19NU0dfR2V0TWF4RHBtRnJlcSksCisJTVNHX01BUChHZXREcG1GcmVxQnlJbmRleCwJCSAgICAgUFBTTUNfTVNHX0dldERwbUZyZXFCeUluZGV4KSwKKwlNU0dfTUFQKFNldFdvcmtsb2FkTWFzaywJCSAgICAgUFBTTUNfTVNHX1NldFdvcmtsb2FkTWFzayksCisJTVNHX01BUChTZXREZlN3aXRjaFR5cGUsCQkgICAgIFBQU01DX01TR19TZXREZlN3aXRjaFR5cGUpLAorCU1TR19NQVAoR2V0Vm9sdGFnZUJ5RHBtLAkJICAgICBQUFNNQ19NU0dfR2V0Vm9sdGFnZUJ5RHBtKSwKKwlNU0dfTUFQKEdldFZvbHRhZ2VCeURwbU92ZXJkcml2ZSwJICAgICBQUFNNQ19NU0dfR2V0Vm9sdGFnZUJ5RHBtT3ZlcmRyaXZlKSwKKwlNU0dfTUFQKFNldFBwdExpbWl0LAkJCSAgICAgUFBTTUNfTVNHX1NldFBwdExpbWl0KSwKKwlNU0dfTUFQKEdldFBwdExpbWl0LAkJCSAgICAgUFBTTUNfTVNHX0dldFBwdExpbWl0KSwKKwlNU0dfTUFQKFBvd2VyVXBWY24wLAkJCSAgICAgUFBTTUNfTVNHX1Bvd2VyVXBWY24wKSwKKwlNU0dfTUFQKFBvd2VyRG93blZjbjAsCQkJICAgICBQUFNNQ19NU0dfUG93ZXJEb3duVmNuMCksCisJTVNHX01BUChQb3dlclVwVmNuMSwJCQkgICAgIFBQU01DX01TR19Qb3dlclVwVmNuMSksCisJTVNHX01BUChQb3dlckRvd25WY24xLAkJCSAgICAgUFBTTUNfTVNHX1Bvd2VyRG93blZjbjEpLAorCU1TR19NQVAoUHJlcGFyZU1wMUZvclVubG9hZCwJCSAgICAgUFBTTUNfTVNHX1ByZXBhcmVNcDFGb3JVbmxvYWQpLAorCU1TR19NQVAoUHJlcGFyZU1wMUZvclJlc2V0LAkJICAgICBQUFNNQ19NU0dfUHJlcGFyZU1wMUZvclJlc2V0KSwKKwlNU0dfTUFQKFByZXBhcmVNcDFGb3JTaHV0ZG93biwJCSAgICAgUFBTTUNfTVNHX1ByZXBhcmVNcDFGb3JTaHV0ZG93biksCisJTVNHX01BUChTb2Z0UmVzZXQsCQkJICAgICBQUFNNQ19NU0dfU29mdFJlc2V0KSwKKwlNU0dfTUFQKFJ1bkFmbGxCdGMsCQkJICAgICBQUFNNQ19NU0dfUnVuQWZsbEJ0YyksCisJTVNHX01BUChSdW5HZnhEY0J0YywJCQkgICAgIFBQU01DX01TR19SdW5HZnhEY0J0YyksCisJTVNHX01BUChSdW5Tb2NEY0J0YywJCQkgICAgIFBQU01DX01TR19SdW5Tb2NEY0J0YyksCisJTVNHX01BUChEcmFtTG9nU2V0RHJhbUFkZHJIaWdoLAkJICAgICBQUFNNQ19NU0dfRHJhbUxvZ1NldERyYW1BZGRySGlnaCksCisJTVNHX01BUChEcmFtTG9nU2V0RHJhbUFkZHJMb3csCQkgICAgIFBQU01DX01TR19EcmFtTG9nU2V0RHJhbUFkZHJMb3cpLAorCU1TR19NQVAoRHJhbUxvZ1NldERyYW1TaXplLAkJICAgICBQUFNNQ19NU0dfRHJhbUxvZ1NldERyYW1TaXplKSwKKwlNU0dfTUFQKEdldERlYnVnRGF0YSwJCQkgICAgIFBQU01DX01TR19HZXREZWJ1Z0RhdGEpLAorCU1TR19NQVAoV2FmbFRlc3QsCQkJICAgICBQUFNNQ19NU0dfV2FmbFRlc3QpLAorCU1TR19NQVAoU2V0WGdtaU1vZGUsCQkJICAgICBQUFNNQ19NU0dfU2V0WGdtaU1vZGUpLAorCU1TR19NQVAoU2V0TWVtb3J5Q2hhbm5lbEVuYWJsZSwJCSAgICAgUFBTTUNfTVNHX1NldE1lbW9yeUNoYW5uZWxFbmFibGUpLAorfTsKKworc3RhdGljIHN0cnVjdCBzbXVfMTFfMF9jbW4yYWlzY19tYXBwaW5nIGFyY3R1cnVzX2Nsa19tYXBbU01VX0NMS19DT1VOVF0gPSB7CisJQ0xLX01BUChHRlhDTEssIFBQQ0xLX0dGWENMSyksCisJQ0xLX01BUChTQ0xLLAlQUENMS19HRlhDTEspLAorCUNMS19NQVAoU09DQ0xLLCBQUENMS19TT0NDTEspLAorCUNMS19NQVAoRkNMSywgUFBDTEtfRkNMSyksCisJQ0xLX01BUChVQ0xLLCBQUENMS19VQ0xLKSwKKwlDTEtfTUFQKE1DTEssIFBQQ0xLX1VDTEspLAorCUNMS19NQVAoRENMSywgUFBDTEtfRENMSyksCisJQ0xLX01BUChWQ0xLLCBQUENMS19WQ0xLKSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBhcmN0dXJ1c19mZWF0dXJlX21hc2tfbWFwW1NNVV9GRUFUVVJFX0NPVU5UXSA9IHsKKwlGRUFfTUFQKERQTV9QUkVGRVRDSEVSKSwKKwlGRUFfTUFQKERQTV9HRlhDTEspLAorCUZFQV9NQVAoRFBNX1VDTEspLAorCUZFQV9NQVAoRFBNX1NPQ0NMSyksCisJRkVBX01BUChEUE1fRkNMSyksCisJRkVBX01BUChEUE1fTVAwQ0xLKSwKKwlBUkNUVVJVU19GRUFfTUFQKFNNVV9GRUFUVVJFX1hHTUlfQklULCBGRUFUVVJFX0RQTV9YR01JX0JJVCksCisJRkVBX01BUChEU19HRlhDTEspLAorCUZFQV9NQVAoRFNfU09DQ0xLKSwKKwlGRUFfTUFQKERTX0xDTEspLAorCUZFQV9NQVAoRFNfRkNMSyksCisJRkVBX01BUChEU19VQ0xLKSwKKwlGRUFfTUFQKEdGWF9VTFYpLAorCUFSQ1RVUlVTX0ZFQV9NQVAoU01VX0ZFQVRVUkVfVkNOX1BHX0JJVCwgRkVBVFVSRV9EUE1fVkNOX0JJVCksCisJRkVBX01BUChSU01VX1NNTl9DRyksCisJRkVBX01BUChXQUZMX0NHKSwKKwlGRUFfTUFQKFBQVCksCisJRkVBX01BUChUREMpLAorCUZFQV9NQVAoQVBDQ19QTFVTKSwKKwlGRUFfTUFQKFZSMEhPVCksCisJRkVBX01BUChWUjFIT1QpLAorCUZFQV9NQVAoRldfQ1RGKSwKKwlGRUFfTUFQKEZBTl9DT05UUk9MKSwKKwlGRUFfTUFQKFRIRVJNQUwpLAorCUZFQV9NQVAoT1VUX09GX0JBTkRfTU9OSVRPUiksCisJRkVBX01BUChURU1QX0RFUEVOREVOVF9WTUlOKSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBhcmN0dXJ1c190YWJsZV9tYXBbU01VX1RBQkxFX0NPVU5UXSA9IHsKKwlUQUJfTUFQKFBQVEFCTEUpLAorCVRBQl9NQVAoQVZGUyksCisJVEFCX01BUChBVkZTX1BTTV9ERUJVRyksCisJVEFCX01BUChBVkZTX0ZVU0VfT1ZFUlJJREUpLAorCVRBQl9NQVAoUE1TVEFUVVNMT0cpLAorCVRBQl9NQVAoU01VX01FVFJJQ1MpLAorCVRBQl9NQVAoRFJJVkVSX1NNVV9DT05GSUcpLAorCVRBQl9NQVAoT1ZFUkRSSVZFKSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBhcmN0dXJ1c19wd3Jfc3JjX21hcFtTTVVfUE9XRVJfU09VUkNFX0NPVU5UXSA9IHsKKwlQV1JfTUFQKEFDKSwKKwlQV1JfTUFQKERDKSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBhcmN0dXJ1c193b3JrbG9hZF9tYXBbUFBfU01DX1BPV0VSX1BST0ZJTEVfQ09VTlRdID0geworCVdPUktMT0FEX01BUChQUF9TTUNfUE9XRVJfUFJPRklMRV9CT09UVVBfREVGQVVMVCwJV09SS0xPQURfUFBMSUJfREVGQVVMVF9CSVQpLAorCVdPUktMT0FEX01BUChQUF9TTUNfUE9XRVJfUFJPRklMRV9QT1dFUlNBVklORywJCVdPUktMT0FEX1BQTElCX1BPV0VSX1NBVklOR19CSVQpLAorCVdPUktMT0FEX01BUChQUF9TTUNfUE9XRVJfUFJPRklMRV9WSURFTywJCVdPUktMT0FEX1BQTElCX1ZJREVPX0JJVCksCisJV09SS0xPQURfTUFQKFBQX1NNQ19QT1dFUl9QUk9GSUxFX0NPTVBVVEUsCQlXT1JLTE9BRF9QUExJQl9DT01QVVRFX0JJVCksCisJV09SS0xPQURfTUFQKFBQX1NNQ19QT1dFUl9QUk9GSUxFX0NVU1RPTSwJCVdPUktMT0FEX1BQTElCX0NVU1RPTV9CSVQpLAorfTsKKworc3RhdGljIGludCBhcmN0dXJ1c19nZXRfc211X21zZ19pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtYywgdWludDMyX3QgaW5kZXgpCit7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKworCWlmIChpbmRleCA+PSBTTVVfTVNHX01BWF9DT1VOVCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltYXBwaW5nID0gYXJjdHVydXNfbWVzc2FnZV9tYXBbaW5kZXhdOworCWlmICghKG1hcHBpbmcudmFsaWRfbWFwcGluZykpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIG1hcHBpbmcubWFwX3RvOworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX2dldF9zbXVfY2xrX2luZGV4KHN0cnVjdCBzbXVfY29udGV4dCAqc21jLCB1aW50MzJfdCBpbmRleCkKK3sKKwlzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBtYXBwaW5nOworCisJaWYgKGluZGV4ID49IFNNVV9DTEtfQ09VTlQpCisJCXJldHVybiAtRUlOVkFMOworCisJbWFwcGluZyA9IGFyY3R1cnVzX2Nsa19tYXBbaW5kZXhdOworCWlmICghKG1hcHBpbmcudmFsaWRfbWFwcGluZykpIHsKKwkJcHJfd2FybigiVW5zdXBwb3J0ZWQgU01VIGNsazogJWRcbiIsIGluZGV4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIG1hcHBpbmcubWFwX3RvOworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX2dldF9zbXVfZmVhdHVyZV9pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtYywgdWludDMyX3QgaW5kZXgpCit7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKworCWlmIChpbmRleCA+PSBTTVVfRkVBVFVSRV9DT1VOVCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltYXBwaW5nID0gYXJjdHVydXNfZmVhdHVyZV9tYXNrX21hcFtpbmRleF07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgeworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gbWFwcGluZy5tYXBfdG87Cit9CisKK3N0YXRpYyBpbnQgYXJjdHVydXNfZ2V0X3NtdV90YWJsZV9pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtYywgdWludDMyX3QgaW5kZXgpCit7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKworCWlmIChpbmRleCA+PSBTTVVfVEFCTEVfQ09VTlQpCisJCXJldHVybiAtRUlOVkFMOworCisJbWFwcGluZyA9IGFyY3R1cnVzX3RhYmxlX21hcFtpbmRleF07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgeworCQlwcl93YXJuKCJVbnN1cHBvcnRlZCBTTVUgdGFibGU6ICVkXG4iLCBpbmRleCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiBtYXBwaW5nLm1hcF90bzsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c19nZXRfcHdyX3NyY19pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtYywgdWludDMyX3QgaW5kZXgpCit7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKworCWlmIChpbmRleCA+PSBTTVVfUE9XRVJfU09VUkNFX0NPVU5UKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW1hcHBpbmcgPSBhcmN0dXJ1c19wd3Jfc3JjX21hcFtpbmRleF07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgeworCQlwcl93YXJuKCJVbnN1cHBvcnRlZCBTTVUgcG93ZXIgc291cmNlOiAlZFxuIiwgaW5kZXgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gbWFwcGluZy5tYXBfdG87Cit9CisKKworc3RhdGljIGludCBhcmN0dXJ1c19nZXRfd29ya2xvYWRfdHlwZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBQUF9TTUNfUE9XRVJfUFJPRklMRSBwcm9maWxlKQoreworCXN0cnVjdCBzbXVfMTFfMF9jbW4yYWlzY19tYXBwaW5nIG1hcHBpbmc7CisKKwlpZiAocHJvZmlsZSA+IFBQX1NNQ19QT1dFUl9QUk9GSUxFX0NVU1RPTSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltYXBwaW5nID0gYXJjdHVydXNfd29ya2xvYWRfbWFwW3Byb2ZpbGVdOworCWlmICghKG1hcHBpbmcudmFsaWRfbWFwcGluZykpIHsKKwkJcHJfd2FybigiVW5zdXBwb3J0ZWQgU01VIHBvd2VyIHNvdXJjZTogJWRcbiIsIHByb2ZpbGUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gbWFwcGluZy5tYXBfdG87Cit9CisKK3N0YXRpYyBpbnQgYXJjdHVydXNfdGFibGVzX2luaXQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHN0cnVjdCBzbXVfdGFibGUgKnRhYmxlcykKK3sKKwlzdHJ1Y3Qgc211X3RhYmxlX2NvbnRleHQgKnNtdV90YWJsZSA9ICZzbXUtPnNtdV90YWJsZTsKKworCVNNVV9UQUJMRV9JTklUKHRhYmxlcywgU01VX1RBQkxFX1BQVEFCTEUsIHNpemVvZihQUFRhYmxlX3QpLAorCQkgICAgICAgUEFHRV9TSVpFLCBBTURHUFVfR0VNX0RPTUFJTl9WUkFNKTsKKworCVNNVV9UQUJMRV9JTklUKHRhYmxlcywgU01VX1RBQkxFX1BNU1RBVFVTTE9HLCBTTVUxMV9UT09MX1NJWkUsCisJCSAgICAgICBQQUdFX1NJWkUsIEFNREdQVV9HRU1fRE9NQUlOX1ZSQU0pOworCisJU01VX1RBQkxFX0lOSVQodGFibGVzLCBTTVVfVEFCTEVfU01VX01FVFJJQ1MsIHNpemVvZihTbXVNZXRyaWNzX3QpLAorCQkgICAgICAgUEFHRV9TSVpFLCBBTURHUFVfR0VNX0RPTUFJTl9WUkFNKTsKKworCXNtdV90YWJsZS0+bWV0cmljc190YWJsZSA9IGt6YWxsb2Moc2l6ZW9mKFNtdU1ldHJpY3NfdCksIEdGUF9LRVJORUwpOworCWlmICghc211X3RhYmxlLT5tZXRyaWNzX3RhYmxlKQorCQlyZXR1cm4gLUVOT01FTTsKKwlzbXVfdGFibGUtPm1ldHJpY3NfdGltZSA9IDA7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c19hbGxvY2F0ZV9kcG1fY29udGV4dChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKK3sKKwlzdHJ1Y3Qgc211X2RwbV9jb250ZXh0ICpzbXVfZHBtID0gJnNtdS0+c211X2RwbTsKKworCWlmIChzbXVfZHBtLT5kcG1fY29udGV4dCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlzbXVfZHBtLT5kcG1fY29udGV4dCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhcmN0dXJ1c19kcG1fdGFibGUpLAorCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXNtdV9kcG0tPmRwbV9jb250ZXh0KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChzbXVfZHBtLT5nb2xkZW5fZHBtX2NvbnRleHQpCisJCXJldHVybiAtRUlOVkFMOworCisJc211X2RwbS0+Z29sZGVuX2RwbV9jb250ZXh0ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGFyY3R1cnVzX2RwbV90YWJsZSksCisJCQkJCSAgICAgIEdGUF9LRVJORUwpOworCWlmICghc211X2RwbS0+Z29sZGVuX2RwbV9jb250ZXh0KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXNtdV9kcG0tPmRwbV9jb250ZXh0X3NpemUgPSBzaXplb2Yoc3RydWN0IGFyY3R1cnVzX2RwbV90YWJsZSk7CisKKwlzbXVfZHBtLT5kcG1fY3VycmVudF9wb3dlcl9zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbXVfcG93ZXJfc3RhdGUpLAorCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXNtdV9kcG0tPmRwbV9jdXJyZW50X3Bvd2VyX3N0YXRlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXNtdV9kcG0tPmRwbV9yZXF1ZXN0X3Bvd2VyX3N0YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNtdV9wb3dlcl9zdGF0ZSksCisJCQkJICAgICAgIEdGUF9LRVJORUwpOworCWlmICghc211X2RwbS0+ZHBtX3JlcXVlc3RfcG93ZXJfc3RhdGUpCisJCXJldHVybiAtRU5PTUVNOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2FyY3R1cnVzX2dldF9hbGxvd2VkX2ZlYXR1cmVfbWFzayhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKKwkJCQkgIHVpbnQzMl90ICpmZWF0dXJlX21hc2ssIHVpbnQzMl90IG51bSkKK3sKKwlpZiAobnVtID4gMikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBwcHRhYmxlIHdpbGwgaGFuZGxlIHRoZSBmZWF0dXJlcyB0byBlbmFibGUgKi8KKwltZW1zZXQoZmVhdHVyZV9tYXNrLCAweEZGLCBzaXplb2YodWludDMyX3QpICogbnVtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CithcmN0dXJ1c19zZXRfc2luZ2xlX2RwbV90YWJsZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKKwkJCSAgICBzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAqc2luZ2xlX2RwbV90YWJsZSwKKwkJCSAgICBQUENMS19lIGNsa19pZCkKK3sKKwlpbnQgcmV0ID0gMDsKKwl1aW50MzJfdCBpLCBudW1fb2ZfbGV2ZWxzID0gMCwgY2xrOworCisJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwKKwkJCVNNVV9NU0dfR2V0RHBtRnJlcUJ5SW5kZXgsCisJCQkoY2xrX2lkIDw8IDE2IHwgMHhGRikpOworCWlmIChyZXQpIHsKKwkJcHJfZXJyKCJbJXNdIGZhaWxlZCB0byBnZXQgZHBtIGxldmVscyFcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlzbXVfcmVhZF9zbWNfYXJnKHNtdSwgJm51bV9vZl9sZXZlbHMpOworCWlmICghbnVtX29mX2xldmVscykgeworCQlwcl9lcnIoIlslc10gbnVtYmVyIG9mIGNsayBsZXZlbHMgaXMgaW52YWxpZCFcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJc2luZ2xlX2RwbV90YWJsZS0+Y291bnQgPSBudW1fb2ZfbGV2ZWxzOworCWZvciAoaSA9IDA7IGkgPCBudW1fb2ZfbGV2ZWxzOyBpKyspIHsKKwkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwKKwkJCQlTTVVfTVNHX0dldERwbUZyZXFCeUluZGV4LAorCQkJCShjbGtfaWQgPDwgMTYgfCBpKSk7CisJCWlmIChyZXQpIHsKKwkJCXByX2VycigiWyVzXSBmYWlsZWQgdG8gZ2V0IGRwbSBmcmVxIGJ5IGluZGV4IVxuIiwgX19mdW5jX18pOworCQkJcmV0dXJuIHJldDsKKwkJfQorCQlzbXVfcmVhZF9zbWNfYXJnKHNtdSwgJmNsayk7CisJCWlmICghY2xrKSB7CisJCQlwcl9lcnIoIlslc10gY2xrIHZhbHVlIGlzIGludmFsaWQhXG4iLCBfX2Z1bmNfXyk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fbGV2ZWxzW2ldLnZhbHVlID0gY2xrOworCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fbGV2ZWxzW2ldLmVuYWJsZWQgPSB0cnVlOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYXJjdHVydXNfaW5pdF9zaW5nbGVfZHBtX3N0YXRlKHN0cnVjdCBhcmN0dXJ1c19kcG1fc3RhdGUgKmRwbV9zdGF0ZSkKK3sKKwlkcG1fc3RhdGUtPnNvZnRfbWluX2xldmVsID0gMHgwOworCWRwbV9zdGF0ZS0+c29mdF9tYXhfbGV2ZWwgPSAweGZmZmY7CisgICAgICAgIGRwbV9zdGF0ZS0+aGFyZF9taW5fbGV2ZWwgPSAweDA7CisgICAgICAgIGRwbV9zdGF0ZS0+aGFyZF9tYXhfbGV2ZWwgPSAweGZmZmY7Cit9CisKK3N0YXRpYyBpbnQgYXJjdHVydXNfc2V0X2RlZmF1bHRfZHBtX3RhYmxlKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQoreworCWludCByZXQ7CisKKwlzdHJ1Y3Qgc211X2RwbV9jb250ZXh0ICpzbXVfZHBtID0gJnNtdS0+c211X2RwbTsKKwlzdHJ1Y3QgYXJjdHVydXNfZHBtX3RhYmxlICpkcG1fdGFibGUgPSBOVUxMOworCXN0cnVjdCBhcmN0dXJ1c19zaW5nbGVfZHBtX3RhYmxlICpzaW5nbGVfZHBtX3RhYmxlOworCisJZHBtX3RhYmxlID0gc211X2RwbS0+ZHBtX2NvbnRleHQ7CisKKwkvKiBzb2NjbGsgKi8KKwlzaW5nbGVfZHBtX3RhYmxlID0gJihkcG1fdGFibGUtPnNvY190YWJsZSk7CisJaWYgKHNtdV9mZWF0dXJlX2lzX2VuYWJsZWQoc211LCBTTVVfRkVBVFVSRV9EUE1fU09DQ0xLX0JJVCkpIHsKKwkJcmV0ID0gYXJjdHVydXNfc2V0X3NpbmdsZV9kcG1fdGFibGUoc211LCBzaW5nbGVfZHBtX3RhYmxlLAorCQkJCQkJICBQUENMS19TT0NDTEspOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIlslc10gZmFpbGVkIHRvIGdldCBzb2NjbGsgZHBtIGxldmVscyFcbiIsIF9fZnVuY19fKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9IGVsc2UgeworCQlzaW5nbGVfZHBtX3RhYmxlLT5jb3VudCA9IDE7CisJCXNpbmdsZV9kcG1fdGFibGUtPmRwbV9sZXZlbHNbMF0udmFsdWUgPSBzbXUtPnNtdV90YWJsZS5ib290X3ZhbHVlcy5zb2NjbGsgLyAxMDA7CisJfQorCWFyY3R1cnVzX2luaXRfc2luZ2xlX2RwbV9zdGF0ZSgmKHNpbmdsZV9kcG1fdGFibGUtPmRwbV9zdGF0ZSkpOworCisJLyogZ2Z4Y2xrICovCisJc2luZ2xlX2RwbV90YWJsZSA9ICYoZHBtX3RhYmxlLT5nZnhfdGFibGUpOworCWlmIChzbXVfZmVhdHVyZV9pc19lbmFibGVkKHNtdSwgU01VX0ZFQVRVUkVfRFBNX0dGWENMS19CSVQpKSB7CisJCXJldCA9IGFyY3R1cnVzX3NldF9zaW5nbGVfZHBtX3RhYmxlKHNtdSwgc2luZ2xlX2RwbV90YWJsZSwKKwkJCQkJCSAgUFBDTEtfR0ZYQ0xLKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJbU2V0dXBEZWZhdWx0RHBtVGFibGVdIGZhaWxlZCB0byBnZXQgZ2Z4Y2xrIGRwbSBsZXZlbHMhIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfSBlbHNlIHsKKwkJc2luZ2xlX2RwbV90YWJsZS0+Y291bnQgPSAxOworCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fbGV2ZWxzWzBdLnZhbHVlID0gc211LT5zbXVfdGFibGUuYm9vdF92YWx1ZXMuZ2Z4Y2xrIC8gMTAwOworCX0KKwlhcmN0dXJ1c19pbml0X3NpbmdsZV9kcG1fc3RhdGUoJihzaW5nbGVfZHBtX3RhYmxlLT5kcG1fc3RhdGUpKTsKKworCS8qIG1lbWNsayAqLworCXNpbmdsZV9kcG1fdGFibGUgPSAmKGRwbV90YWJsZS0+bWVtX3RhYmxlKTsKKwlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIFNNVV9GRUFUVVJFX0RQTV9VQ0xLX0JJVCkpIHsKKwkJcmV0ID0gYXJjdHVydXNfc2V0X3NpbmdsZV9kcG1fdGFibGUoc211LCBzaW5nbGVfZHBtX3RhYmxlLAorCQkJCQkJICBQUENMS19VQ0xLKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJbU2V0dXBEZWZhdWx0RHBtVGFibGVdIGZhaWxlZCB0byBnZXQgbWVtY2xrIGRwbSBsZXZlbHMhIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfSBlbHNlIHsKKwkJc2luZ2xlX2RwbV90YWJsZS0+Y291bnQgPSAxOworCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fbGV2ZWxzWzBdLnZhbHVlID0gc211LT5zbXVfdGFibGUuYm9vdF92YWx1ZXMudWNsayAvIDEwMDsKKwl9CisJYXJjdHVydXNfaW5pdF9zaW5nbGVfZHBtX3N0YXRlKCYoc2luZ2xlX2RwbV90YWJsZS0+ZHBtX3N0YXRlKSk7CisKKwkvKiBmY2xrICovCisJc2luZ2xlX2RwbV90YWJsZSA9ICYoZHBtX3RhYmxlLT5mY2xrX3RhYmxlKTsKKwlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIFNNVV9GRUFUVVJFX0RQTV9GQ0xLX0JJVCkpIHsKKwkJcmV0ID0gYXJjdHVydXNfc2V0X3NpbmdsZV9kcG1fdGFibGUoc211LCBzaW5nbGVfZHBtX3RhYmxlLAorCQkJCQkJICBQUENMS19GQ0xLKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJbU2V0dXBEZWZhdWx0RHBtVGFibGVdIGZhaWxlZCB0byBnZXQgZmNsayBkcG0gbGV2ZWxzISIpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0gZWxzZSB7CisJCXNpbmdsZV9kcG1fdGFibGUtPmNvdW50ID0gMTsKKwkJc2luZ2xlX2RwbV90YWJsZS0+ZHBtX2xldmVsc1swXS52YWx1ZSA9IHNtdS0+c211X3RhYmxlLmJvb3RfdmFsdWVzLmZjbGsgLyAxMDA7CisJfQorCWFyY3R1cnVzX2luaXRfc2luZ2xlX2RwbV9zdGF0ZSgmKHNpbmdsZV9kcG1fdGFibGUtPmRwbV9zdGF0ZSkpOworCisJbWVtY3B5KHNtdV9kcG0tPmdvbGRlbl9kcG1fY29udGV4dCwgZHBtX3RhYmxlLAorCSAgICAgICBzaXplb2Yoc3RydWN0IGFyY3R1cnVzX2RwbV90YWJsZSkpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXJjdHVydXNfY2hlY2tfcG93ZXJwbGF5X3RhYmxlKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX3N0b3JlX3Bvd2VycGxheV90YWJsZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKK3sKKwlzdHJ1Y3Qgc211XzExXzBfcG93ZXJwbGF5X3RhYmxlICpwb3dlcnBsYXlfdGFibGUgPSBOVUxMOworCXN0cnVjdCBzbXVfdGFibGVfY29udGV4dCAqdGFibGVfY29udGV4dCA9ICZzbXUtPnNtdV90YWJsZTsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghdGFibGVfY29udGV4dC0+cG93ZXJfcGxheV90YWJsZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwb3dlcnBsYXlfdGFibGUgPSB0YWJsZV9jb250ZXh0LT5wb3dlcl9wbGF5X3RhYmxlOworCisJbWVtY3B5KHRhYmxlX2NvbnRleHQtPmRyaXZlcl9wcHRhYmxlLCAmcG93ZXJwbGF5X3RhYmxlLT5zbWNfcHB0YWJsZSwKKwkgICAgICAgc2l6ZW9mKFBQVGFibGVfdCkpOworCisJdGFibGVfY29udGV4dC0+dGhlcm1hbF9jb250cm9sbGVyX3R5cGUgPSBwb3dlcnBsYXlfdGFibGUtPnRoZXJtYWxfY29udHJvbGxlcl90eXBlOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c19hcHBlbmRfcG93ZXJwbGF5X3RhYmxlKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQoreworCXN0cnVjdCBzbXVfdGFibGVfY29udGV4dCAqdGFibGVfY29udGV4dCA9ICZzbXUtPnNtdV90YWJsZTsKKwlQUFRhYmxlX3QgKnNtY19wcHRhYmxlID0gdGFibGVfY29udGV4dC0+ZHJpdmVyX3BwdGFibGU7CisJc3RydWN0IGF0b21fc21jX2RwbV9pbmZvX3Y0XzYgKnNtY19kcG1fdGFibGU7CisJaW50IGluZGV4LCByZXQ7CisKKwlpbmRleCA9IGdldF9pbmRleF9pbnRvX21hc3Rlcl90YWJsZShhdG9tX21hc3Rlcl9saXN0X29mX2RhdGFfdGFibGVzX3YyXzEsCisJCQkJCSAgIHNtY19kcG1faW5mbyk7CisKKwlyZXQgPSBzbXVfZ2V0X2F0b21fZGF0YV90YWJsZShzbXUsIGluZGV4LCBOVUxMLCBOVUxMLCBOVUxMLAorCQkJCSAgICAgICh1aW50OF90ICoqKSZzbWNfZHBtX3RhYmxlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcHJfaW5mbygic21jX2RwbV9pbmZvIHRhYmxlIHJldmlzaW9uKGZvcm1hdC5jb250ZW50KTogJWQuJWRcbiIsCisJCQlzbWNfZHBtX3RhYmxlLT50YWJsZV9oZWFkZXIuZm9ybWF0X3JldmlzaW9uLAorCQkJc21jX2RwbV90YWJsZS0+dGFibGVfaGVhZGVyLmNvbnRlbnRfcmV2aXNpb24pOworCisJaWYgKChzbWNfZHBtX3RhYmxlLT50YWJsZV9oZWFkZXIuZm9ybWF0X3JldmlzaW9uID09IDQpICYmCisJICAgIChzbWNfZHBtX3RhYmxlLT50YWJsZV9oZWFkZXIuY29udGVudF9yZXZpc2lvbiA9PSA2KSkKKwkJbWVtY3B5KCZzbWNfcHB0YWJsZS0+TWF4Vm9sdGFnZVN0ZXBHZngsCisJCSAgICAgICAmc21jX2RwbV90YWJsZS0+bWF4dm9sdGFnZXN0ZXBnZngsCisJCSAgICAgICBzaXplb2YoKnNtY19kcG1fdGFibGUpIC0gb2Zmc2V0b2Yoc3RydWN0IGF0b21fc21jX2RwbV9pbmZvX3Y0XzYsIG1heHZvbHRhZ2VzdGVwZ2Z4KSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c19ydW5fYnRjX2FmbGwoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCit7CisJcmV0dXJuIHNtdV9zZW5kX3NtY19tc2coc211LCBTTVVfTVNHX1J1bkFmbGxCdGMpOworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX3BvcHVsYXRlX3VtZF9zdGF0ZV9jbGsoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCit7CisJc3RydWN0IHNtdV9kcG1fY29udGV4dCAqc211X2RwbSA9ICZzbXUtPnNtdV9kcG07CisJc3RydWN0IGFyY3R1cnVzX2RwbV90YWJsZSAqZHBtX3RhYmxlID0gTlVMTDsKKwlzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAqZ2Z4X3RhYmxlID0gTlVMTDsKKwlzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAqbWVtX3RhYmxlID0gTlVMTDsKKworCWRwbV90YWJsZSA9IHNtdV9kcG0tPmRwbV9jb250ZXh0OworCWdmeF90YWJsZSA9ICYoZHBtX3RhYmxlLT5nZnhfdGFibGUpOworCW1lbV90YWJsZSA9ICYoZHBtX3RhYmxlLT5tZW1fdGFibGUpOworCisJc211LT5wc3RhdGVfc2NsayA9IGdmeF90YWJsZS0+ZHBtX2xldmVsc1swXS52YWx1ZTsKKwlzbXUtPnBzdGF0ZV9tY2xrID0gbWVtX3RhYmxlLT5kcG1fbGV2ZWxzWzBdLnZhbHVlOworCisJaWYgKGdmeF90YWJsZS0+Y291bnQgPiBBUkNUVVJVU19VTURfUFNUQVRFX0dGWENMS19MRVZFTCAmJgorCSAgICBtZW1fdGFibGUtPmNvdW50ID4gQVJDVFVSVVNfVU1EX1BTVEFURV9NQ0xLX0xFVkVMKSB7CisJCXNtdS0+cHN0YXRlX3NjbGsgPSBnZnhfdGFibGUtPmRwbV9sZXZlbHNbQVJDVFVSVVNfVU1EX1BTVEFURV9HRlhDTEtfTEVWRUxdLnZhbHVlOworCQlzbXUtPnBzdGF0ZV9tY2xrID0gbWVtX3RhYmxlLT5kcG1fbGV2ZWxzW0FSQ1RVUlVTX1VNRF9QU1RBVEVfTUNMS19MRVZFTF0udmFsdWU7CisJfQorCisJc211LT5wc3RhdGVfc2NsayA9IHNtdS0+cHN0YXRlX3NjbGsgKiAxMDA7CisJc211LT5wc3RhdGVfbWNsayA9IHNtdS0+cHN0YXRlX21jbGsgKiAxMDA7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c19nZXRfY2xrX3RhYmxlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAorCQkJc3RydWN0IHBwX2Nsb2NrX2xldmVsc193aXRoX2xhdGVuY3kgKmNsb2NrcywKKwkJCXN0cnVjdCBhcmN0dXJ1c19zaW5nbGVfZHBtX3RhYmxlICpkcG1fdGFibGUpCit7CisJaW50IGksIGNvdW50OworCisJY291bnQgPSAoZHBtX3RhYmxlLT5jb3VudCA+IE1BWF9OVU1fQ0xPQ0tTKSA/IE1BWF9OVU1fQ0xPQ0tTIDogZHBtX3RhYmxlLT5jb3VudDsKKwljbG9ja3MtPm51bV9sZXZlbHMgPSBjb3VudDsKKworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisJCWNsb2Nrcy0+ZGF0YVtpXS5jbG9ja3NfaW5fa2h6ID0KKwkJCWRwbV90YWJsZS0+ZHBtX2xldmVsc1tpXS52YWx1ZSAqIDEwMDA7CisJCWNsb2Nrcy0+ZGF0YVtpXS5sYXRlbmN5X2luX3VzID0gMDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c19mcmVxc19pbl9zYW1lX2xldmVsKGludDMyX3QgZnJlcXVlbmN5MSwKKwkJCQkJaW50MzJfdCBmcmVxdWVuY3kyKQoreworCXJldHVybiAoYWJzKGZyZXF1ZW5jeTEgLSBmcmVxdWVuY3kyKSA8PSBFUFNJTE9OKTsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c19wcmludF9jbGtfbGV2ZWxzKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAorCQkJZW51bSBzbXVfY2xrX3R5cGUgdHlwZSwgY2hhciAqYnVmKQoreworCWludCBpLCBub3csIHNpemUgPSAwOworCWludCByZXQgPSAwOworCXN0cnVjdCBwcF9jbG9ja19sZXZlbHNfd2l0aF9sYXRlbmN5IGNsb2NrczsKKwlzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAqc2luZ2xlX2RwbV90YWJsZTsKKwlzdHJ1Y3Qgc211X2RwbV9jb250ZXh0ICpzbXVfZHBtID0gJnNtdS0+c211X2RwbTsKKwlzdHJ1Y3QgYXJjdHVydXNfZHBtX3RhYmxlICpkcG1fdGFibGUgPSBOVUxMOworCisJZHBtX3RhYmxlID0gc211X2RwbS0+ZHBtX2NvbnRleHQ7CisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIFNNVV9TQ0xLOgorCQlyZXQgPSBzbXVfZ2V0X2N1cnJlbnRfY2xrX2ZyZXEoc211LCBTTVVfR0ZYQ0xLLCAmbm93KTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJBdHRlbXB0IHRvIGdldCBjdXJyZW50IGdmeCBjbGsgRmFpbGVkISIpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCXNpbmdsZV9kcG1fdGFibGUgPSAmKGRwbV90YWJsZS0+Z2Z4X3RhYmxlKTsKKwkJcmV0ID0gYXJjdHVydXNfZ2V0X2Nsa190YWJsZShzbXUsICZjbG9ja3MsIHNpbmdsZV9kcG1fdGFibGUpOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIkF0dGVtcHQgdG8gZ2V0IGdmeCBjbGsgbGV2ZWxzIEZhaWxlZCEiKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKworCQlmb3IgKGkgPSAwOyBpIDwgY2xvY2tzLm51bV9sZXZlbHM7IGkrKykKKwkJCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXplLCAiJWQ6ICV1TWh6ICVzXG4iLCBpLAorCQkJCQljbG9ja3MuZGF0YVtpXS5jbG9ja3NfaW5fa2h6IC8gMTAwMCwKKwkJCQkJYXJjdHVydXNfZnJlcXNfaW5fc2FtZV9sZXZlbCgKKwkJCQkJY2xvY2tzLmRhdGFbaV0uY2xvY2tzX2luX2toeiAvIDEwMDAsCisJCQkJCW5vdyAvIDEwMCkgPyAiKiIgOiAiIik7CisJCWJyZWFrOworCisJY2FzZSBTTVVfTUNMSzoKKwkJcmV0ID0gc211X2dldF9jdXJyZW50X2Nsa19mcmVxKHNtdSwgU01VX1VDTEssICZub3cpOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIkF0dGVtcHQgdG8gZ2V0IGN1cnJlbnQgbWNsayBGYWlsZWQhIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisKKwkJc2luZ2xlX2RwbV90YWJsZSA9ICYoZHBtX3RhYmxlLT5tZW1fdGFibGUpOworCQlyZXQgPSBhcmN0dXJ1c19nZXRfY2xrX3RhYmxlKHNtdSwgJmNsb2Nrcywgc2luZ2xlX2RwbV90YWJsZSk7CisJCWlmIChyZXQpIHsKKwkJCXByX2VycigiQXR0ZW1wdCB0byBnZXQgbWVtb3J5IGNsayBsZXZlbHMgRmFpbGVkISIpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCWZvciAoaSA9IDA7IGkgPCBjbG9ja3MubnVtX2xldmVsczsgaSsrKQorCQkJc2l6ZSArPSBzcHJpbnRmKGJ1ZiArIHNpemUsICIlZDogJXVNaHogJXNcbiIsCisJCQkJaSwgY2xvY2tzLmRhdGFbaV0uY2xvY2tzX2luX2toeiAvIDEwMDAsCisJCQkJYXJjdHVydXNfZnJlcXNfaW5fc2FtZV9sZXZlbCgKKwkJCQljbG9ja3MuZGF0YVtpXS5jbG9ja3NfaW5fa2h6IC8gMTAwMCwKKwkJCQlub3cgLyAxMDApID8gIioiIDogIiIpOworCQlicmVhazsKKworCWNhc2UgU01VX1NPQ0NMSzoKKwkJcmV0ID0gc211X2dldF9jdXJyZW50X2Nsa19mcmVxKHNtdSwgU01VX1NPQ0NMSywgJm5vdyk7CisJCWlmIChyZXQpIHsKKwkJCXByX2VycigiQXR0ZW1wdCB0byBnZXQgY3VycmVudCBzb2NjbGsgRmFpbGVkISIpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCXNpbmdsZV9kcG1fdGFibGUgPSAmKGRwbV90YWJsZS0+c29jX3RhYmxlKTsKKwkJcmV0ID0gYXJjdHVydXNfZ2V0X2Nsa190YWJsZShzbXUsICZjbG9ja3MsIHNpbmdsZV9kcG1fdGFibGUpOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIkF0dGVtcHQgdG8gZ2V0IHNvY2NsayBsZXZlbHMgRmFpbGVkISIpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCWZvciAoaSA9IDA7IGkgPCBjbG9ja3MubnVtX2xldmVsczsgaSsrKQorCQkJc2l6ZSArPSBzcHJpbnRmKGJ1ZiArIHNpemUsICIlZDogJXVNaHogJXNcbiIsCisJCQkJaSwgY2xvY2tzLmRhdGFbaV0uY2xvY2tzX2luX2toeiAvIDEwMDAsCisJCQkJYXJjdHVydXNfZnJlcXNfaW5fc2FtZV9sZXZlbCgKKwkJCQljbG9ja3MuZGF0YVtpXS5jbG9ja3NfaW5fa2h6IC8gMTAwMCwKKwkJCQlub3cgLyAxMDApID8gIioiIDogIiIpOworCQlicmVhazsKKworCWNhc2UgU01VX0ZDTEs6CisJCXJldCA9IHNtdV9nZXRfY3VycmVudF9jbGtfZnJlcShzbXUsIFNNVV9GQ0xLLCAmbm93KTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJBdHRlbXB0IHRvIGdldCBjdXJyZW50IGZjbGsgRmFpbGVkISIpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCXNpbmdsZV9kcG1fdGFibGUgPSAmKGRwbV90YWJsZS0+ZmNsa190YWJsZSk7CisJCXJldCA9IGFyY3R1cnVzX2dldF9jbGtfdGFibGUoc211LCAmY2xvY2tzLCBzaW5nbGVfZHBtX3RhYmxlKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJBdHRlbXB0IHRvIGdldCBmY2xrIGxldmVscyBGYWlsZWQhIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisKKwkJZm9yIChpID0gMDsgaSA8IHNpbmdsZV9kcG1fdGFibGUtPmNvdW50OyBpKyspCisJCQlzaXplICs9IHNwcmludGYoYnVmICsgc2l6ZSwgIiVkOiAldU1oeiAlc1xuIiwKKwkJCQlpLCBzaW5nbGVfZHBtX3RhYmxlLT5kcG1fbGV2ZWxzW2ldLnZhbHVlLAorCQkJCWFyY3R1cnVzX2ZyZXFzX2luX3NhbWVfbGV2ZWwoCisJCQkJY2xvY2tzLmRhdGFbaV0uY2xvY2tzX2luX2toeiAvIDEwMDAsCisJCQkJbm93IC8gMTAwKSA/ICIqIiA6ICIiKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gc2l6ZTsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c191cGxvYWRfZHBtX2xldmVsKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBib29sIG1heCwKKwkJCQkgICAgIHVpbnQzMl90IGZlYXR1cmVfbWFzaykKK3sKKwlzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAqc2luZ2xlX2RwbV90YWJsZTsKKwlzdHJ1Y3QgYXJjdHVydXNfZHBtX3RhYmxlICpkcG1fdGFibGUgPQorCQkJc211LT5zbXVfZHBtLmRwbV9jb250ZXh0OworCXVpbnQzMl90IGZyZXE7CisJaW50IHJldCA9IDA7CisKKwlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIFNNVV9GRUFUVVJFX0RQTV9HRlhDTEtfQklUKSAmJgorCSAgICAoZmVhdHVyZV9tYXNrICYgRkVBVFVSRV9EUE1fR0ZYQ0xLX01BU0spKSB7CisJCXNpbmdsZV9kcG1fdGFibGUgPSAmKGRwbV90YWJsZS0+Z2Z4X3RhYmxlKTsKKwkJZnJlcSA9IG1heCA/IHNpbmdsZV9kcG1fdGFibGUtPmRwbV9zdGF0ZS5zb2Z0X21heF9sZXZlbCA6CisJCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fc3RhdGUuc29mdF9taW5fbGV2ZWw7CisJCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsCisJCQkobWF4ID8gU01VX01TR19TZXRTb2Z0TWF4QnlGcmVxIDogU01VX01TR19TZXRTb2Z0TWluQnlGcmVxKSwKKwkJCShQUENMS19HRlhDTEsgPDwgMTYpIHwgKGZyZXEgJiAweGZmZmYpKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJGYWlsZWQgdG8gc2V0IHNvZnQgJXMgZ2Z4Y2xrICFcbiIsCisJCQkJCQltYXggPyAibWF4IiA6ICJtaW4iKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIFNNVV9GRUFUVVJFX0RQTV9VQ0xLX0JJVCkgJiYKKwkgICAgKGZlYXR1cmVfbWFzayAmIEZFQVRVUkVfRFBNX1VDTEtfTUFTSykpIHsKKwkJc2luZ2xlX2RwbV90YWJsZSA9ICYoZHBtX3RhYmxlLT5tZW1fdGFibGUpOworCQlmcmVxID0gbWF4ID8gc2luZ2xlX2RwbV90YWJsZS0+ZHBtX3N0YXRlLnNvZnRfbWF4X2xldmVsIDoKKwkJCXNpbmdsZV9kcG1fdGFibGUtPmRwbV9zdGF0ZS5zb2Z0X21pbl9sZXZlbDsKKwkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwKKwkJCShtYXggPyBTTVVfTVNHX1NldFNvZnRNYXhCeUZyZXEgOiBTTVVfTVNHX1NldFNvZnRNaW5CeUZyZXEpLAorCQkJKFBQQ0xLX1VDTEsgPDwgMTYpIHwgKGZyZXEgJiAweGZmZmYpKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJGYWlsZWQgdG8gc2V0IHNvZnQgJXMgbWVtY2xrICFcbiIsCisJCQkJCQltYXggPyAibWF4IiA6ICJtaW4iKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIFNNVV9GRUFUVVJFX0RQTV9TT0NDTEtfQklUKSAmJgorCSAgICAoZmVhdHVyZV9tYXNrICYgRkVBVFVSRV9EUE1fU09DQ0xLX01BU0spKSB7CisJCXNpbmdsZV9kcG1fdGFibGUgPSAmKGRwbV90YWJsZS0+c29jX3RhYmxlKTsKKwkJZnJlcSA9IG1heCA/IHNpbmdsZV9kcG1fdGFibGUtPmRwbV9zdGF0ZS5zb2Z0X21heF9sZXZlbCA6CisJCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fc3RhdGUuc29mdF9taW5fbGV2ZWw7CisJCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsCisJCQkobWF4ID8gU01VX01TR19TZXRTb2Z0TWF4QnlGcmVxIDogU01VX01TR19TZXRTb2Z0TWluQnlGcmVxKSwKKwkJCShQUENMS19TT0NDTEsgPDwgMTYpIHwgKGZyZXEgJiAweGZmZmYpKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJGYWlsZWQgdG8gc2V0IHNvZnQgJXMgc29jY2xrICFcbiIsCisJCQkJCQltYXggPyAibWF4IiA6ICJtaW4iKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX2ZvcmNlX2Nsa19sZXZlbHMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQllbnVtIHNtdV9jbGtfdHlwZSB0eXBlLCB1aW50MzJfdCBtYXNrKQoreworCXN0cnVjdCBhcmN0dXJ1c19kcG1fdGFibGUgKmRwbV90YWJsZTsKKwlzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAqc2luZ2xlX2RwbV90YWJsZTsKKwl1aW50MzJfdCBzb2Z0X21pbl9sZXZlbCwgc29mdF9tYXhfbGV2ZWw7CisJaW50IHJldCA9IDA7CisKKwltdXRleF9sb2NrKCYoc211LT5tdXRleCkpOworCisJc29mdF9taW5fbGV2ZWwgPSBtYXNrID8gKGZmcyhtYXNrKSAtIDEpIDogMDsKKwlzb2Z0X21heF9sZXZlbCA9IG1hc2sgPyAoZmxzKG1hc2spIC0gMSkgOiAwOworCisJZHBtX3RhYmxlID0gc211LT5zbXVfZHBtLmRwbV9jb250ZXh0OworCisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBTTVVfU0NMSzoKKwkJc2luZ2xlX2RwbV90YWJsZSA9ICYoZHBtX3RhYmxlLT5nZnhfdGFibGUpOworCisJCWlmIChzb2Z0X21heF9sZXZlbCA+PSBzaW5nbGVfZHBtX3RhYmxlLT5jb3VudCkgeworCQkJcHJfZXJyKCJDbG9jayBsZXZlbCBzcGVjaWZpZWQgJWQgaXMgb3ZlciBtYXggYWxsb3dlZCAlZFxuIiwKKwkJCQkJc29mdF9tYXhfbGV2ZWwsIHNpbmdsZV9kcG1fdGFibGUtPmNvdW50IC0gMSk7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJYnJlYWs7CisJCX0KKworCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fc3RhdGUuc29mdF9taW5fbGV2ZWwgPQorCQkJc2luZ2xlX2RwbV90YWJsZS0+ZHBtX2xldmVsc1tzb2Z0X21pbl9sZXZlbF0udmFsdWU7CisJCXNpbmdsZV9kcG1fdGFibGUtPmRwbV9zdGF0ZS5zb2Z0X21heF9sZXZlbCA9CisJCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fbGV2ZWxzW3NvZnRfbWF4X2xldmVsXS52YWx1ZTsKKworCQlyZXQgPSBhcmN0dXJ1c191cGxvYWRfZHBtX2xldmVsKHNtdSwgZmFsc2UsIEZFQVRVUkVfRFBNX0dGWENMS19NQVNLKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJGYWlsZWQgdG8gdXBsb2FkIGJvb3QgbGV2ZWwgdG8gbG93ZXN0IVxuIik7CisJCQlicmVhazsKKwkJfQorCisJCXJldCA9IGFyY3R1cnVzX3VwbG9hZF9kcG1fbGV2ZWwoc211LCB0cnVlLCBGRUFUVVJFX0RQTV9HRlhDTEtfTUFTSyk7CisJCWlmIChyZXQpCisJCQlwcl9lcnIoIkZhaWxlZCB0byB1cGxvYWQgZHBtIG1heCBsZXZlbCB0byBoaWdoZXN0IVxuIik7CisKKwkJYnJlYWs7CisKKwljYXNlIFNNVV9NQ0xLOgorCQlzaW5nbGVfZHBtX3RhYmxlID0gJihkcG1fdGFibGUtPm1lbV90YWJsZSk7CisKKwkJaWYgKHNvZnRfbWF4X2xldmVsID49IHNpbmdsZV9kcG1fdGFibGUtPmNvdW50KSB7CisJCQlwcl9lcnIoIkNsb2NrIGxldmVsIHNwZWNpZmllZCAlZCBpcyBvdmVyIG1heCBhbGxvd2VkICVkXG4iLAorCQkJCQlzb2Z0X21heF9sZXZlbCwgc2luZ2xlX2RwbV90YWJsZS0+Y291bnQgLSAxKTsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlicmVhazsKKwkJfQorCisJCXNpbmdsZV9kcG1fdGFibGUtPmRwbV9zdGF0ZS5zb2Z0X21pbl9sZXZlbCA9CisJCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fbGV2ZWxzW3NvZnRfbWluX2xldmVsXS52YWx1ZTsKKwkJc2luZ2xlX2RwbV90YWJsZS0+ZHBtX3N0YXRlLnNvZnRfbWF4X2xldmVsID0KKwkJCXNpbmdsZV9kcG1fdGFibGUtPmRwbV9sZXZlbHNbc29mdF9tYXhfbGV2ZWxdLnZhbHVlOworCisJCXJldCA9IGFyY3R1cnVzX3VwbG9hZF9kcG1fbGV2ZWwoc211LCBmYWxzZSwgRkVBVFVSRV9EUE1fVUNMS19NQVNLKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJGYWlsZWQgdG8gdXBsb2FkIGJvb3QgbGV2ZWwgdG8gbG93ZXN0IVxuIik7CisJCQlicmVhazsKKwkJfQorCisJCXJldCA9IGFyY3R1cnVzX3VwbG9hZF9kcG1fbGV2ZWwoc211LCB0cnVlLCBGRUFUVVJFX0RQTV9VQ0xLX01BU0spOworCQlpZiAocmV0KQorCQkJcHJfZXJyKCJGYWlsZWQgdG8gdXBsb2FkIGRwbSBtYXggbGV2ZWwgdG8gaGlnaGVzdCFcbiIpOworCisJCWJyZWFrOworCisJY2FzZSBTTVVfU09DQ0xLOgorCQlzaW5nbGVfZHBtX3RhYmxlID0gJihkcG1fdGFibGUtPnNvY190YWJsZSk7CisKKwkJaWYgKHNvZnRfbWF4X2xldmVsID49IHNpbmdsZV9kcG1fdGFibGUtPmNvdW50KSB7CisJCQlwcl9lcnIoIkNsb2NrIGxldmVsIHNwZWNpZmllZCAlZCBpcyBvdmVyIG1heCBhbGxvd2VkICVkXG4iLAorCQkJCQlzb2Z0X21heF9sZXZlbCwgc2luZ2xlX2RwbV90YWJsZS0+Y291bnQgLSAxKTsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlicmVhazsKKwkJfQorCisJCXNpbmdsZV9kcG1fdGFibGUtPmRwbV9zdGF0ZS5zb2Z0X21pbl9sZXZlbCA9CisJCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fbGV2ZWxzW3NvZnRfbWluX2xldmVsXS52YWx1ZTsKKwkJc2luZ2xlX2RwbV90YWJsZS0+ZHBtX3N0YXRlLnNvZnRfbWF4X2xldmVsID0KKwkJCXNpbmdsZV9kcG1fdGFibGUtPmRwbV9sZXZlbHNbc29mdF9tYXhfbGV2ZWxdLnZhbHVlOworCisJCXJldCA9IGFyY3R1cnVzX3VwbG9hZF9kcG1fbGV2ZWwoc211LCBmYWxzZSwgRkVBVFVSRV9EUE1fU09DQ0xLX01BU0spOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIkZhaWxlZCB0byB1cGxvYWQgYm9vdCBsZXZlbCB0byBsb3dlc3QhXG4iKTsKKwkJCWJyZWFrOworCQl9CisKKwkJcmV0ID0gYXJjdHVydXNfdXBsb2FkX2RwbV9sZXZlbChzbXUsIHRydWUsIEZFQVRVUkVfRFBNX1NPQ0NMS19NQVNLKTsKKwkJaWYgKHJldCkKKwkJCXByX2VycigiRmFpbGVkIHRvIHVwbG9hZCBkcG0gbWF4IGxldmVsIHRvIGhpZ2hlc3QhXG4iKTsKKworCQlicmVhazsKKworCWNhc2UgU01VX0ZDTEs6CisJCXNpbmdsZV9kcG1fdGFibGUgPSAmKGRwbV90YWJsZS0+ZmNsa190YWJsZSk7CisKKwkJaWYgKHNvZnRfbWF4X2xldmVsID49IHNpbmdsZV9kcG1fdGFibGUtPmNvdW50KSB7CisJCQlwcl9lcnIoIkNsb2NrIGxldmVsIHNwZWNpZmllZCAlZCBpcyBvdmVyIG1heCBhbGxvd2VkICVkXG4iLAorCQkJCQlzb2Z0X21heF9sZXZlbCwgc2luZ2xlX2RwbV90YWJsZS0+Y291bnQgLSAxKTsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlicmVhazsKKwkJfQorCisJCXNpbmdsZV9kcG1fdGFibGUtPmRwbV9zdGF0ZS5zb2Z0X21pbl9sZXZlbCA9CisJCQlzaW5nbGVfZHBtX3RhYmxlLT5kcG1fbGV2ZWxzW3NvZnRfbWluX2xldmVsXS52YWx1ZTsKKwkJc2luZ2xlX2RwbV90YWJsZS0+ZHBtX3N0YXRlLnNvZnRfbWF4X2xldmVsID0KKwkJCXNpbmdsZV9kcG1fdGFibGUtPmRwbV9sZXZlbHNbc29mdF9tYXhfbGV2ZWxdLnZhbHVlOworCisJCXJldCA9IGFyY3R1cnVzX3VwbG9hZF9kcG1fbGV2ZWwoc211LCBmYWxzZSwgRkVBVFVSRV9EUE1fRkNMS19NQVNLKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJGYWlsZWQgdG8gdXBsb2FkIGJvb3QgbGV2ZWwgdG8gbG93ZXN0IVxuIik7CisJCQlicmVhazsKKwkJfQorCisJCXJldCA9IGFyY3R1cnVzX3VwbG9hZF9kcG1fbGV2ZWwoc211LCB0cnVlLCBGRUFUVVJFX0RQTV9GQ0xLX01BU0spOworCQlpZiAocmV0KQorCQkJcHJfZXJyKCJGYWlsZWQgdG8gdXBsb2FkIGRwbSBtYXggbGV2ZWwgdG8gaGlnaGVzdCFcbiIpOworCisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJbXV0ZXhfdW5sb2NrKCYoc211LT5tdXRleCkpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYXJjdHVydXNfZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2Uoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJCQlzdHJ1Y3Qgc211X3RlbXBlcmF0dXJlX3JhbmdlICpyYW5nZSkKK3sKKwlQUFRhYmxlX3QgKnBwdGFibGUgPSBzbXUtPnNtdV90YWJsZS5kcml2ZXJfcHB0YWJsZTsKKworCWlmICghcmFuZ2UpCisJCXJldHVybiAtRUlOVkFMOworCisJcmFuZ2UtPm1heCA9IHBwdGFibGUtPlRlZGdlTGltaXQgKgorCQlTTVVfVEVNUEVSQVRVUkVfVU5JVFNfUEVSX0NFTlRJR1JBREVTOworCXJhbmdlLT5lZGdlX2VtZXJnZW5jeV9tYXggPSAocHB0YWJsZS0+VGVkZ2VMaW1pdCArIENURl9PRkZTRVRfRURHRSkgKgorCQlTTVVfVEVNUEVSQVRVUkVfVU5JVFNfUEVSX0NFTlRJR1JBREVTOworCXJhbmdlLT5ob3RzcG90X2NyaXRfbWF4ID0gcHB0YWJsZS0+VGhvdHNwb3RMaW1pdCAqCisJCVNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7CisJcmFuZ2UtPmhvdHNwb3RfZW1lcmdlbmN5X21heCA9IChwcHRhYmxlLT5UaG90c3BvdExpbWl0ICsgQ1RGX09GRlNFVF9IT1RTUE9UKSAqCisJCVNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7CisJcmFuZ2UtPm1lbV9jcml0X21heCA9IHBwdGFibGUtPlRtZW1MaW1pdCAqCisJCVNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7CisJcmFuZ2UtPm1lbV9lbWVyZ2VuY3lfbWF4ID0gKHBwdGFibGUtPlRtZW1MaW1pdCArIENURl9PRkZTRVRfSEJNKSoKKwkJU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX2dldF9tZXRyaWNzX3RhYmxlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAorCQkJCSAgICAgIFNtdU1ldHJpY3NfdCAqbWV0cmljc190YWJsZSkKK3sKKwlzdHJ1Y3Qgc211X3RhYmxlX2NvbnRleHQgKnNtdV90YWJsZT0gJnNtdS0+c211X3RhYmxlOworCWludCByZXQgPSAwOworCisJaWYgKCFzbXVfdGFibGUtPm1ldHJpY3NfdGltZSB8fAorCSAgICAgdGltZV9hZnRlcihqaWZmaWVzLCBzbXVfdGFibGUtPm1ldHJpY3NfdGltZSArIEhaIC8gMTAwMCkpIHsKKwkJcmV0ID0gc211X3VwZGF0ZV90YWJsZShzbXUsIFNNVV9UQUJMRV9TTVVfTUVUUklDUywgMCwKKwkJCQkodm9pZCAqKXNtdV90YWJsZS0+bWV0cmljc190YWJsZSwgZmFsc2UpOworCQlpZiAocmV0KSB7CisJCQlwcl9pbmZvKCJGYWlsZWQgdG8gZXhwb3J0IFNNVSBtZXRyaWNzIHRhYmxlIVxuIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisJCXNtdV90YWJsZS0+bWV0cmljc190aW1lID0gamlmZmllczsKKwl9CisKKwltZW1jcHkobWV0cmljc190YWJsZSwgc211X3RhYmxlLT5tZXRyaWNzX3RhYmxlLCBzaXplb2YoU211TWV0cmljc190KSk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX2dldF9jdXJyZW50X2FjdGl2aXR5X3BlcmNlbnQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJCQkgZW51bSBhbWRfcHBfc2Vuc29ycyBzZW5zb3IsCisJCQkJCQkgdWludDMyX3QgKnZhbHVlKQoreworCVNtdU1ldHJpY3NfdCBtZXRyaWNzOworCWludCByZXQgPSAwOworCisJaWYgKCF2YWx1ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQgPSBhcmN0dXJ1c19nZXRfbWV0cmljc190YWJsZShzbXUsICZtZXRyaWNzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3dpdGNoIChzZW5zb3IpIHsKKwljYXNlIEFNREdQVV9QUF9TRU5TT1JfR1BVX0xPQUQ6CisJCSp2YWx1ZSA9IG1ldHJpY3MuQXZlcmFnZUdmeEFjdGl2aXR5OworCQlicmVhazsKKwljYXNlIEFNREdQVV9QUF9TRU5TT1JfTUVNX0xPQUQ6CisJCSp2YWx1ZSA9IG1ldHJpY3MuQXZlcmFnZVVjbGtBY3Rpdml0eTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcHJfZXJyKCJJbnZhbGlkIHNlbnNvciBmb3IgcmV0cmlldmluZyBjbG9jayBhY3Rpdml0eVxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX2dldF9ncHVfcG93ZXIoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQzMl90ICp2YWx1ZSkKK3sKKwlTbXVNZXRyaWNzX3QgbWV0cmljczsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghdmFsdWUpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gYXJjdHVydXNfZ2V0X21ldHJpY3NfdGFibGUoc211LCAmbWV0cmljcyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCSp2YWx1ZSA9IG1ldHJpY3MuQXZlcmFnZVNvY2tldFBvd2VyIDw8IDg7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c190aGVybWFsX2dldF90ZW1wZXJhdHVyZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKKwkJCQkJICAgIGVudW0gYW1kX3BwX3NlbnNvcnMgc2Vuc29yLAorCQkJCQkgICAgdWludDMyX3QgKnZhbHVlKQoreworCVNtdU1ldHJpY3NfdCBtZXRyaWNzOworCWludCByZXQgPSAwOworCisJaWYgKCF2YWx1ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQgPSBhcmN0dXJ1c19nZXRfbWV0cmljc190YWJsZShzbXUsICZtZXRyaWNzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3dpdGNoIChzZW5zb3IpIHsKKwljYXNlIEFNREdQVV9QUF9TRU5TT1JfSE9UU1BPVF9URU1QOgorCQkqdmFsdWUgPSBtZXRyaWNzLlRlbXBlcmF0dXJlSG90c3BvdCAqCisJCQlTTVVfVEVNUEVSQVRVUkVfVU5JVFNfUEVSX0NFTlRJR1JBREVTOworCQlicmVhazsKKwljYXNlIEFNREdQVV9QUF9TRU5TT1JfRURHRV9URU1QOgorCQkqdmFsdWUgPSBtZXRyaWNzLlRlbXBlcmF0dXJlRWRnZSAqCisJCQlTTVVfVEVNUEVSQVRVUkVfVU5JVFNfUEVSX0NFTlRJR1JBREVTOworCQlicmVhazsKKwljYXNlIEFNREdQVV9QUF9TRU5TT1JfTUVNX1RFTVA6CisJCSp2YWx1ZSA9IG1ldHJpY3MuVGVtcGVyYXR1cmVIQk0gKgorCQkJU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcHJfZXJyKCJJbnZhbGlkIHNlbnNvciBmb3IgcmV0cmlldmluZyB0ZW1wXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXJjdHVydXNfcmVhZF9zZW5zb3Ioc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJZW51bSBhbWRfcHBfc2Vuc29ycyBzZW5zb3IsCisJCQkJdm9pZCAqZGF0YSwgdWludDMyX3QgKnNpemUpCit7CisJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICp0YWJsZV9jb250ZXh0ID0gJnNtdS0+c211X3RhYmxlOworCVBQVGFibGVfdCAqcHB0YWJsZSA9IHRhYmxlX2NvbnRleHQtPmRyaXZlcl9wcHRhYmxlOworCWludCByZXQgPSAwOworCisJaWYgKCFkYXRhIHx8ICFzaXplKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXN3aXRjaCAoc2Vuc29yKSB7CisJY2FzZSBBTURHUFVfUFBfU0VOU09SX01BWF9GQU5fUlBNOgorCQkqKHVpbnQzMl90ICopZGF0YSA9IHBwdGFibGUtPkZhbk1heGltdW1ScG07CisJCSpzaXplID0gNDsKKwkJYnJlYWs7CisJY2FzZSBBTURHUFVfUFBfU0VOU09SX01FTV9MT0FEOgorCWNhc2UgQU1ER1BVX1BQX1NFTlNPUl9HUFVfTE9BRDoKKwkJcmV0ID0gYXJjdHVydXNfZ2V0X2N1cnJlbnRfYWN0aXZpdHlfcGVyY2VudChzbXUsCisJCQkJCQkJICAgIHNlbnNvciwKKwkJCQkJCSh1aW50MzJfdCAqKWRhdGEpOworCQkqc2l6ZSA9IDQ7CisJCWJyZWFrOworCWNhc2UgQU1ER1BVX1BQX1NFTlNPUl9HUFVfUE9XRVI6CisJCXJldCA9IGFyY3R1cnVzX2dldF9ncHVfcG93ZXIoc211LCAodWludDMyX3QgKilkYXRhKTsKKwkJKnNpemUgPSA0OworCQlicmVhazsKKwljYXNlIEFNREdQVV9QUF9TRU5TT1JfSE9UU1BPVF9URU1QOgorCWNhc2UgQU1ER1BVX1BQX1NFTlNPUl9FREdFX1RFTVA6CisJY2FzZSBBTURHUFVfUFBfU0VOU09SX01FTV9URU1QOgorCQlyZXQgPSBhcmN0dXJ1c190aGVybWFsX2dldF90ZW1wZXJhdHVyZShzbXUsIHNlbnNvciwKKwkJCQkJCSh1aW50MzJfdCAqKWRhdGEpOworCQkqc2l6ZSA9IDQ7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldCA9IHNtdV9zbWNfcmVhZF9zZW5zb3Ioc211LCBzZW5zb3IsIGRhdGEsIHNpemUpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYXJjdHVydXNfZ2V0X2Zhbl9zcGVlZF9ycG0oc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJICAgICAgdWludDMyX3QgKnNwZWVkKQoreworCVNtdU1ldHJpY3NfdCBtZXRyaWNzOworCWludCByZXQgPSAwOworCisJaWYgKCFzcGVlZCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQgPSBhcmN0dXJ1c19nZXRfbWV0cmljc190YWJsZShzbXUsICZtZXRyaWNzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJKnNwZWVkID0gbWV0cmljcy5DdXJyRmFuU3BlZWQ7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX2dldF9mYW5fc3BlZWRfcGVyY2VudChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKKwkJCQkJICB1aW50MzJfdCAqc3BlZWQpCit7CisJUFBUYWJsZV90ICpwcHRhYmxlID0gc211LT5zbXVfdGFibGUuZHJpdmVyX3BwdGFibGU7CisJdWludDMyX3QgcGVyY2VudCwgY3VycmVudF9ycG07CisJaW50IHJldCA9IDA7CisKKwlpZiAoIXNwZWVkKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IGFyY3R1cnVzX2dldF9mYW5fc3BlZWRfcnBtKHNtdSwgJmN1cnJlbnRfcnBtKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcGVyY2VudCA9IGN1cnJlbnRfcnBtICogMTAwIC8gcHB0YWJsZS0+RmFuTWF4aW11bVJwbTsKKwkqc3BlZWQgPSBwZXJjZW50ID4gMTAwID8gMTAwIDogcGVyY2VudDsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYXJjdHVydXNfZ2V0X2N1cnJlbnRfY2xrX2ZyZXFfYnlfdGFibGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJICAgICAgIGVudW0gc211X2Nsa190eXBlIGNsa190eXBlLAorCQkJCSAgICAgICB1aW50MzJfdCAqdmFsdWUpCit7CisJc3RhdGljIFNtdU1ldHJpY3NfdCBtZXRyaWNzOworCWludCByZXQgPSAwLCBjbGtfaWQgPSAwOworCisJaWYgKCF2YWx1ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljbGtfaWQgPSBzbXVfY2xrX2dldF9pbmRleChzbXUsIGNsa190eXBlKTsKKwlpZiAoY2xrX2lkIDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQgPSBhcmN0dXJ1c19nZXRfbWV0cmljc190YWJsZShzbXUsICZtZXRyaWNzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3dpdGNoIChjbGtfaWQpIHsKKwljYXNlIFBQQ0xLX0dGWENMSzoKKwkJLyoKKwkJICogQ3VyckNsb2NrW2Nsa19pZF0gY2FuIHByb3ZpZGUgYWNjdXJhdGUKKwkJICogICBvdXRwdXQgb25seSB3aGVuIHRoZSBkcG0gZmVhdHVyZSBpcyBlbmFibGVkLgorCQkgKiBXZSBjYW4gdXNlIEF2ZXJhZ2VfKiBmb3IgZHBtIGRpc2FibGVkIGNhc2UuCisJCSAqICAgQnV0IHRoaXMgaXMgYXZhaWxhYmxlIGZvciBnZnhjbGsvdWNsay9zb2NjbGsuCisJCSAqLworCQlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIFNNVV9GRUFUVVJFX0RQTV9HRlhDTEtfQklUKSkKKwkJCSp2YWx1ZSA9IG1ldHJpY3MuQ3VyckNsb2NrW1BQQ0xLX0dGWENMS107CisJCWVsc2UKKwkJCSp2YWx1ZSA9IG1ldHJpY3MuQXZlcmFnZUdmeGNsa0ZyZXF1ZW5jeTsKKwkJYnJlYWs7CisJY2FzZSBQUENMS19VQ0xLOgorCQlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIFNNVV9GRUFUVVJFX0RQTV9VQ0xLX0JJVCkpCisJCQkqdmFsdWUgPSBtZXRyaWNzLkN1cnJDbG9ja1tQUENMS19VQ0xLXTsKKwkJZWxzZQorCQkJKnZhbHVlID0gbWV0cmljcy5BdmVyYWdlVWNsa0ZyZXF1ZW5jeTsKKwkJYnJlYWs7CisJY2FzZSBQUENMS19TT0NDTEs6CisJCWlmIChzbXVfZmVhdHVyZV9pc19lbmFibGVkKHNtdSwgU01VX0ZFQVRVUkVfRFBNX1NPQ0NMS19CSVQpKQorCQkJKnZhbHVlID0gbWV0cmljcy5DdXJyQ2xvY2tbUFBDTEtfU09DQ0xLXTsKKwkJZWxzZQorCQkJKnZhbHVlID0gbWV0cmljcy5BdmVyYWdlU29jY2xrRnJlcXVlbmN5OworCQlicmVhazsKKwlkZWZhdWx0OgorCQkqdmFsdWUgPSBtZXRyaWNzLkN1cnJDbG9ja1tjbGtfaWRdOworCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdWludDMyX3QgYXJjdHVydXNfZmluZF9sb3dlc3RfZHBtX2xldmVsKHN0cnVjdCBhcmN0dXJ1c19zaW5nbGVfZHBtX3RhYmxlICp0YWJsZSkKK3sKKwl1aW50MzJfdCBpOworCisJZm9yIChpID0gMDsgaSA8IHRhYmxlLT5jb3VudDsgaSsrKSB7CisJCWlmICh0YWJsZS0+ZHBtX2xldmVsc1tpXS5lbmFibGVkKQorCQkJYnJlYWs7CisJfQorCWlmIChpID49IHRhYmxlLT5jb3VudCkgeworCQlpID0gMDsKKwkJdGFibGUtPmRwbV9sZXZlbHNbaV0uZW5hYmxlZCA9IHRydWU7CisJfQorCisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyB1aW50MzJfdCBhcmN0dXJ1c19maW5kX2hpZ2hlc3RfZHBtX2xldmVsKHN0cnVjdCBhcmN0dXJ1c19zaW5nbGVfZHBtX3RhYmxlICp0YWJsZSkKK3sKKwlpbnQgaSA9IDA7CisKKwlpZiAodGFibGUtPmNvdW50IDw9IDApIHsKKwkJcHJfZXJyKCJbJXNdIERQTSBUYWJsZSBoYXMgbm8gZW50cnkhIiwgX19mdW5jX18pOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKHRhYmxlLT5jb3VudCA+IE1BWF9EUE1fTlVNQkVSKSB7CisJCXByX2VycigiWyVzXSBEUE0gVGFibGUgaGFzIHRvbyBtYW55IGVudHJpZXMhIiwgX19mdW5jX18pOworCQlyZXR1cm4gTUFYX0RQTV9OVU1CRVIgLSAxOworCX0KKworCWZvciAoaSA9IHRhYmxlLT5jb3VudCAtIDE7IGkgPj0gMDsgaS0tKSB7CisJCWlmICh0YWJsZS0+ZHBtX2xldmVsc1tpXS5lbmFibGVkKQorCQkJYnJlYWs7CisJfQorCWlmIChpIDwgMCkgeworCQlpID0gMDsKKwkJdGFibGUtPmRwbV9sZXZlbHNbaV0uZW5hYmxlZCA9IHRydWU7CisJfQorCisJcmV0dXJuIGk7Cit9CisKKworCitzdGF0aWMgaW50IGFyY3R1cnVzX2ZvcmNlX2RwbV9saW1pdF92YWx1ZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgYm9vbCBoaWdoZXN0KQoreworCXN0cnVjdCBhcmN0dXJ1c19kcG1fdGFibGUgKmRwbV90YWJsZSA9CisJCShzdHJ1Y3QgYXJjdHVydXNfZHBtX3RhYmxlICopc211LT5zbXVfZHBtLmRwbV9jb250ZXh0OworCXVpbnQzMl90IHNvZnRfbGV2ZWw7CisJaW50IHJldCA9IDA7CisKKwkvKiBnZnhjbGsgKi8KKwlpZiAoaGlnaGVzdCkKKwkJc29mdF9sZXZlbCA9IGFyY3R1cnVzX2ZpbmRfaGlnaGVzdF9kcG1fbGV2ZWwoJihkcG1fdGFibGUtPmdmeF90YWJsZSkpOworCWVsc2UKKwkJc29mdF9sZXZlbCA9IGFyY3R1cnVzX2ZpbmRfbG93ZXN0X2RwbV9sZXZlbCgmKGRwbV90YWJsZS0+Z2Z4X3RhYmxlKSk7CisKKwlkcG1fdGFibGUtPmdmeF90YWJsZS5kcG1fc3RhdGUuc29mdF9taW5fbGV2ZWwgPQorCQlkcG1fdGFibGUtPmdmeF90YWJsZS5kcG1fc3RhdGUuc29mdF9tYXhfbGV2ZWwgPQorCQlkcG1fdGFibGUtPmdmeF90YWJsZS5kcG1fbGV2ZWxzW3NvZnRfbGV2ZWxdLnZhbHVlOworCisJLyogdWNsayAqLworCWlmIChoaWdoZXN0KQorCQlzb2Z0X2xldmVsID0gYXJjdHVydXNfZmluZF9oaWdoZXN0X2RwbV9sZXZlbCgmKGRwbV90YWJsZS0+bWVtX3RhYmxlKSk7CisJZWxzZQorCQlzb2Z0X2xldmVsID0gYXJjdHVydXNfZmluZF9sb3dlc3RfZHBtX2xldmVsKCYoZHBtX3RhYmxlLT5tZW1fdGFibGUpKTsKKworCWRwbV90YWJsZS0+bWVtX3RhYmxlLmRwbV9zdGF0ZS5zb2Z0X21pbl9sZXZlbCA9CisJCWRwbV90YWJsZS0+bWVtX3RhYmxlLmRwbV9zdGF0ZS5zb2Z0X21heF9sZXZlbCA9CisJCWRwbV90YWJsZS0+bWVtX3RhYmxlLmRwbV9sZXZlbHNbc29mdF9sZXZlbF0udmFsdWU7CisKKwkvKiBzb2NjbGsgKi8KKwlpZiAoaGlnaGVzdCkKKwkJc29mdF9sZXZlbCA9IGFyY3R1cnVzX2ZpbmRfaGlnaGVzdF9kcG1fbGV2ZWwoJihkcG1fdGFibGUtPnNvY190YWJsZSkpOworCWVsc2UKKwkJc29mdF9sZXZlbCA9IGFyY3R1cnVzX2ZpbmRfbG93ZXN0X2RwbV9sZXZlbCgmKGRwbV90YWJsZS0+c29jX3RhYmxlKSk7CisKKwlkcG1fdGFibGUtPnNvY190YWJsZS5kcG1fc3RhdGUuc29mdF9taW5fbGV2ZWwgPQorCQlkcG1fdGFibGUtPnNvY190YWJsZS5kcG1fc3RhdGUuc29mdF9tYXhfbGV2ZWwgPQorCQlkcG1fdGFibGUtPnNvY190YWJsZS5kcG1fbGV2ZWxzW3NvZnRfbGV2ZWxdLnZhbHVlOworCisJcmV0ID0gYXJjdHVydXNfdXBsb2FkX2RwbV9sZXZlbChzbXUsIGZhbHNlLCAweEZGRkZGRkZGKTsKKwlpZiAocmV0KSB7CisJCXByX2VycigiRmFpbGVkIHRvIHVwbG9hZCBib290IGxldmVsIHRvICVzIVxuIiwKKwkJCQloaWdoZXN0ID8gImhpZ2hlc3QiIDogImxvd2VzdCIpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IGFyY3R1cnVzX3VwbG9hZF9kcG1fbGV2ZWwoc211LCB0cnVlLCAweEZGRkZGRkZGKTsKKwlpZiAocmV0KSB7CisJCXByX2VycigiRmFpbGVkIHRvIHVwbG9hZCBkcG0gbWF4IGxldmVsIHRvICVzIVxuISIsCisJCQkJaGlnaGVzdCA/ICJoaWdoZXN0IiA6ICJsb3dlc3QiKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX3VuZm9yY2VfZHBtX2xldmVscyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKK3sKKwlzdHJ1Y3QgYXJjdHVydXNfZHBtX3RhYmxlICpkcG1fdGFibGUgPQorCQkoc3RydWN0IGFyY3R1cnVzX2RwbV90YWJsZSAqKXNtdS0+c211X2RwbS5kcG1fY29udGV4dDsKKwl1aW50MzJfdCBzb2Z0X21pbl9sZXZlbCwgc29mdF9tYXhfbGV2ZWw7CisJaW50IHJldCA9IDA7CisKKwkvKiBnZnhjbGsgKi8KKwlzb2Z0X21pbl9sZXZlbCA9IGFyY3R1cnVzX2ZpbmRfbG93ZXN0X2RwbV9sZXZlbCgmKGRwbV90YWJsZS0+Z2Z4X3RhYmxlKSk7CisJc29mdF9tYXhfbGV2ZWwgPSBhcmN0dXJ1c19maW5kX2hpZ2hlc3RfZHBtX2xldmVsKCYoZHBtX3RhYmxlLT5nZnhfdGFibGUpKTsKKwlkcG1fdGFibGUtPmdmeF90YWJsZS5kcG1fc3RhdGUuc29mdF9taW5fbGV2ZWwgPQorCQlkcG1fdGFibGUtPmdmeF90YWJsZS5kcG1fbGV2ZWxzW3NvZnRfbWluX2xldmVsXS52YWx1ZTsKKwlkcG1fdGFibGUtPmdmeF90YWJsZS5kcG1fc3RhdGUuc29mdF9tYXhfbGV2ZWwgPQorCQlkcG1fdGFibGUtPmdmeF90YWJsZS5kcG1fbGV2ZWxzW3NvZnRfbWF4X2xldmVsXS52YWx1ZTsKKworCS8qIHVjbGsgKi8KKwlzb2Z0X21pbl9sZXZlbCA9IGFyY3R1cnVzX2ZpbmRfbG93ZXN0X2RwbV9sZXZlbCgmKGRwbV90YWJsZS0+bWVtX3RhYmxlKSk7CisJc29mdF9tYXhfbGV2ZWwgPSBhcmN0dXJ1c19maW5kX2hpZ2hlc3RfZHBtX2xldmVsKCYoZHBtX3RhYmxlLT5tZW1fdGFibGUpKTsKKwlkcG1fdGFibGUtPm1lbV90YWJsZS5kcG1fc3RhdGUuc29mdF9taW5fbGV2ZWwgPQorCQlkcG1fdGFibGUtPmdmeF90YWJsZS5kcG1fbGV2ZWxzW3NvZnRfbWluX2xldmVsXS52YWx1ZTsKKwlkcG1fdGFibGUtPm1lbV90YWJsZS5kcG1fc3RhdGUuc29mdF9tYXhfbGV2ZWwgPQorCQlkcG1fdGFibGUtPmdmeF90YWJsZS5kcG1fbGV2ZWxzW3NvZnRfbWF4X2xldmVsXS52YWx1ZTsKKworCS8qIHNvY2NsayAqLworCXNvZnRfbWluX2xldmVsID0gYXJjdHVydXNfZmluZF9sb3dlc3RfZHBtX2xldmVsKCYoZHBtX3RhYmxlLT5zb2NfdGFibGUpKTsKKwlzb2Z0X21heF9sZXZlbCA9IGFyY3R1cnVzX2ZpbmRfaGlnaGVzdF9kcG1fbGV2ZWwoJihkcG1fdGFibGUtPnNvY190YWJsZSkpOworCWRwbV90YWJsZS0+c29jX3RhYmxlLmRwbV9zdGF0ZS5zb2Z0X21pbl9sZXZlbCA9CisJCWRwbV90YWJsZS0+c29jX3RhYmxlLmRwbV9sZXZlbHNbc29mdF9taW5fbGV2ZWxdLnZhbHVlOworCWRwbV90YWJsZS0+c29jX3RhYmxlLmRwbV9zdGF0ZS5zb2Z0X21heF9sZXZlbCA9CisJCWRwbV90YWJsZS0+c29jX3RhYmxlLmRwbV9sZXZlbHNbc29mdF9tYXhfbGV2ZWxdLnZhbHVlOworCisJcmV0ID0gYXJjdHVydXNfdXBsb2FkX2RwbV9sZXZlbChzbXUsIGZhbHNlLCAweEZGRkZGRkZGKTsKKwlpZiAocmV0KSB7CisJCXByX2VycigiRmFpbGVkIHRvIHVwbG9hZCBEUE0gQm9vdHVwIExldmVscyEiKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXQgPSBhcmN0dXJ1c191cGxvYWRfZHBtX2xldmVsKHNtdSwgdHJ1ZSwgMHhGRkZGRkZGRik7CisJaWYgKHJldCkgeworCQlwcl9lcnIoIkZhaWxlZCB0byB1cGxvYWQgRFBNIE1heCBMZXZlbHMhIik7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludAorYXJjdHVydXNfZ2V0X3Byb2ZpbGluZ19jbGtfbWFzayhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKKwkJCQllbnVtIGFtZF9kcG1fZm9yY2VkX2xldmVsIGxldmVsLAorCQkJCXVpbnQzMl90ICpzY2xrX21hc2ssCisJCQkJdWludDMyX3QgKm1jbGtfbWFzaywKKwkJCQl1aW50MzJfdCAqc29jX21hc2spCit7CisJc3RydWN0IGFyY3R1cnVzX2RwbV90YWJsZSAqZHBtX3RhYmxlID0KKwkJKHN0cnVjdCBhcmN0dXJ1c19kcG1fdGFibGUgKilzbXUtPnNtdV9kcG0uZHBtX2NvbnRleHQ7CisJc3RydWN0IGFyY3R1cnVzX3NpbmdsZV9kcG1fdGFibGUgKmdmeF9kcG1fdGFibGU7CisJc3RydWN0IGFyY3R1cnVzX3NpbmdsZV9kcG1fdGFibGUgKm1lbV9kcG1fdGFibGU7CisJc3RydWN0IGFyY3R1cnVzX3NpbmdsZV9kcG1fdGFibGUgKnNvY19kcG1fdGFibGU7CisKKwlpZiAoIXNtdS0+c211X2RwbS5kcG1fY29udGV4dCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlnZnhfZHBtX3RhYmxlID0gJmRwbV90YWJsZS0+Z2Z4X3RhYmxlOworCW1lbV9kcG1fdGFibGUgPSAmZHBtX3RhYmxlLT5tZW1fdGFibGU7CisJc29jX2RwbV90YWJsZSA9ICZkcG1fdGFibGUtPnNvY190YWJsZTsKKworCSpzY2xrX21hc2sgPSAwOworCSptY2xrX21hc2sgPSAwOworCSpzb2NfbWFzayAgPSAwOworCisJaWYgKGdmeF9kcG1fdGFibGUtPmNvdW50ID4gQVJDVFVSVVNfVU1EX1BTVEFURV9HRlhDTEtfTEVWRUwgJiYKKwkgICAgbWVtX2RwbV90YWJsZS0+Y291bnQgPiBBUkNUVVJVU19VTURfUFNUQVRFX01DTEtfTEVWRUwgJiYKKwkgICAgc29jX2RwbV90YWJsZS0+Y291bnQgPiBBUkNUVVJVU19VTURfUFNUQVRFX1NPQ0NMS19MRVZFTCkgeworCQkqc2Nsa19tYXNrID0gQVJDVFVSVVNfVU1EX1BTVEFURV9HRlhDTEtfTEVWRUw7CisJCSptY2xrX21hc2sgPSBBUkNUVVJVU19VTURfUFNUQVRFX01DTEtfTEVWRUw7CisJCSpzb2NfbWFzayAgPSBBUkNUVVJVU19VTURfUFNUQVRFX1NPQ0NMS19MRVZFTDsKKwl9CisKKwlpZiAobGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9NSU5fU0NMSykgeworCQkqc2Nsa19tYXNrID0gMDsKKwl9IGVsc2UgaWYgKGxldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfTUlOX01DTEspIHsKKwkJKm1jbGtfbWFzayA9IDA7CisJfSBlbHNlIGlmIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX1BFQUspIHsKKwkJKnNjbGtfbWFzayA9IGdmeF9kcG1fdGFibGUtPmNvdW50IC0gMTsKKwkJKm1jbGtfbWFzayA9IG1lbV9kcG1fdGFibGUtPmNvdW50IC0gMTsKKwkJKnNvY19tYXNrICA9IHNvY19kcG1fdGFibGUtPmNvdW50IC0gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c19nZXRfcG93ZXJfbGltaXQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJICAgICB1aW50MzJfdCAqbGltaXQsCisJCQkJICAgICBib29sIGFzaWNfZGVmYXVsdCkKK3sKKwlQUFRhYmxlX3QgKnBwdGFibGUgPSBzbXUtPnNtdV90YWJsZS5kcml2ZXJfcHB0YWJsZTsKKwl1aW50MzJfdCBhc2ljX2RlZmF1bHRfcG93ZXJfbGltaXQgPSAwOworCWludCByZXQgPSAwOworCWludCBwb3dlcl9zcmM7CisKKwlpZiAoIXNtdS0+ZGVmYXVsdF9wb3dlcl9saW1pdCB8fAorCSAgICAhc211LT5wb3dlcl9saW1pdCkgeworCQlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIFNNVV9GRUFUVVJFX1BQVF9CSVQpKSB7CisJCQlwb3dlcl9zcmMgPSBzbXVfcG93ZXJfZ2V0X2luZGV4KHNtdSwgU01VX1BPV0VSX1NPVVJDRV9BQyk7CisJCQlpZiAocG93ZXJfc3JjIDwgMCkKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKworCQkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19HZXRQcHRMaW1pdCwKKwkJCQlwb3dlcl9zcmMgPDwgMTYpOworCQkJaWYgKHJldCkgeworCQkJCXByX2VycigiWyVzXSBnZXQgUFBUIGxpbWl0IGZhaWxlZCEiLCBfX2Z1bmNfXyk7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KKwkJCXNtdV9yZWFkX3NtY19hcmcoc211LCAmYXNpY19kZWZhdWx0X3Bvd2VyX2xpbWl0KTsKKwkJfSBlbHNlIHsKKwkJCS8qIHRoZSBsYXN0IGhvcGUgdG8gZmlndXJlIG91dCB0aGUgcHB0IGxpbWl0ICovCisJCQlpZiAoIXBwdGFibGUpIHsKKwkJCQlwcl9lcnIoIkNhbm5vdCBnZXQgUFBUIGxpbWl0IGR1ZSB0byBwcHRhYmxlIG1pc3NpbmchIik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCQlhc2ljX2RlZmF1bHRfcG93ZXJfbGltaXQgPQorCQkJCXBwdGFibGUtPlNvY2tldFBvd2VyTGltaXRBY1tQUFRfVEhST1RUTEVSX1BQVDBdOworCQl9CisKKwkJaWYgKHNtdS0+b2RfZW5hYmxlZCkgeworCQkJYXNpY19kZWZhdWx0X3Bvd2VyX2xpbWl0ICo9ICgxMDAgKyBzbXUtPnNtdV90YWJsZS5URFBPRExpbWl0KTsKKwkJCWFzaWNfZGVmYXVsdF9wb3dlcl9saW1pdCAvPSAxMDA7CisJCX0KKworCQlzbXUtPmRlZmF1bHRfcG93ZXJfbGltaXQgPSBhc2ljX2RlZmF1bHRfcG93ZXJfbGltaXQ7CisJCXNtdS0+cG93ZXJfbGltaXQgPSBhc2ljX2RlZmF1bHRfcG93ZXJfbGltaXQ7CisJfQorCisJaWYgKGFzaWNfZGVmYXVsdCkKKwkJKmxpbWl0ID0gc211LT5kZWZhdWx0X3Bvd2VyX2xpbWl0OworCWVsc2UKKwkJKmxpbWl0ID0gc211LT5wb3dlcl9saW1pdDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX2dldF9wb3dlcl9wcm9maWxlX21vZGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJCSAgIGNoYXIgKmJ1ZikKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqcHJvZmlsZV9uYW1lW10gPSB7CisJCQkJCSJCT09UVVBfREVGQVVMVCIsCisJCQkJCSIzRF9GVUxMX1NDUkVFTiIsCisJCQkJCSJQT1dFUl9TQVZJTkciLAorCQkJCQkiVklERU8iLAorCQkJCQkiVlIiLAorCQkJCQkiQ09NUFVURSIsCisJCQkJCSJDVVNUT00ifTsKKwl1aW50MzJfdCBpLCBzaXplID0gMDsKKwlpbnQxNl90IHdvcmtsb2FkX3R5cGUgPSAwOworCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQgfHwgIWJ1ZikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlmb3IgKGkgPSAwOyBpIDw9IFBQX1NNQ19QT1dFUl9QUk9GSUxFX0NVU1RPTTsgaSsrKSB7CisJCS8qCisJCSAqIENvbnYgUFBfU01DX1BPV0VSX1BST0ZJTEUqIHRvIFdPUktMT0FEX1BQTElCXypfQklUCisJCSAqIE5vdCBhbGwgcHJvZmlsZSBtb2RlcyBhcmUgc3VwcG9ydGVkIG9uIGFyY3R1cnVzLgorCQkgKi8KKwkJd29ya2xvYWRfdHlwZSA9IHNtdV93b3JrbG9hZF9nZXRfdHlwZShzbXUsIGkpOworCQlpZiAod29ya2xvYWRfdHlwZSA8IDApCisJCQljb250aW51ZTsKKworCQlzaXplICs9IHNwcmludGYoYnVmICsgc2l6ZSwgIiUyZCAlMTRzJXNcbiIsCisJCQlpLCBwcm9maWxlX25hbWVbaV0sIChpID09IHNtdS0+cG93ZXJfcHJvZmlsZV9tb2RlKSA/ICIqIiA6ICIgIik7CisJfQorCisJcmV0dXJuIHNpemU7Cit9CisKK3N0YXRpYyBpbnQgYXJjdHVydXNfc2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKKwkJCQkJICAgbG9uZyAqaW5wdXQsCisJCQkJCSAgIHVpbnQzMl90IHNpemUpCit7CisJaW50IHdvcmtsb2FkX3R5cGUgPSAwOworCXVpbnQzMl90IHByb2ZpbGVfbW9kZSA9IGlucHV0W3NpemVdOworCWludCByZXQgPSAwOworCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHByb2ZpbGVfbW9kZSA+IFBQX1NNQ19QT1dFUl9QUk9GSUxFX0NVU1RPTSkgeworCQlwcl9lcnIoIkludmFsaWQgcG93ZXIgcHJvZmlsZSBtb2RlICVkXG4iLCBwcm9maWxlX21vZGUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKgorCSAqIENvbnYgUFBfU01DX1BPV0VSX1BST0ZJTEUqIHRvIFdPUktMT0FEX1BQTElCXypfQklUCisJICogTm90IGFsbCBwcm9maWxlIG1vZGVzIGFyZSBzdXBwb3J0ZWQgb24gYXJjdHVydXMuCisJICovCisJd29ya2xvYWRfdHlwZSA9IHNtdV93b3JrbG9hZF9nZXRfdHlwZShzbXUsIHByb2ZpbGVfbW9kZSk7CisJaWYgKHdvcmtsb2FkX3R5cGUgPCAwKSB7CisJCXByX2VycigiVW5zdXBwb3J0ZWQgcG93ZXIgcHJvZmlsZSBtb2RlICVkIG9uIGFyY3R1cnVzXG4iLCBwcm9maWxlX21vZGUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LAorCQkJCQkgIFNNVV9NU0dfU2V0V29ya2xvYWRNYXNrLAorCQkJCQkgIDEgPDwgd29ya2xvYWRfdHlwZSk7CisJaWYgKHJldCkgeworCQlwcl9lcnIoIkZhaWwgdG8gc2V0IHdvcmtsb2FkIHR5cGUgJWRcbiIsIHdvcmtsb2FkX3R5cGUpOworCQlyZXR1cm4gcmV0OworCX0KKworCXNtdS0+cG93ZXJfcHJvZmlsZV9tb2RlID0gcHJvZmlsZV9tb2RlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGFyY3R1cnVzX2R1bXBfcHB0YWJsZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKK3sKKwlzdHJ1Y3Qgc211X3RhYmxlX2NvbnRleHQgKnRhYmxlX2NvbnRleHQgPSAmc211LT5zbXVfdGFibGU7CisJUFBUYWJsZV90ICpwcHRhYmxlID0gdGFibGVfY29udGV4dC0+ZHJpdmVyX3BwdGFibGU7CisJaW50IGk7CisKKwlwcl9pbmZvKCJEdW1wZWQgUFBUYWJsZTpcbiIpOworCisJcHJfaW5mbygiVmVyc2lvbiA9IDB4JTA4eFxuIiwgcHB0YWJsZS0+VmVyc2lvbik7CisKKwlwcl9pbmZvKCJGZWF0dXJlc1RvUnVuWzBdID0gMHglMDh4XG4iLCBwcHRhYmxlLT5GZWF0dXJlc1RvUnVuWzBdKTsKKwlwcl9pbmZvKCJGZWF0dXJlc1RvUnVuWzFdID0gMHglMDh4XG4iLCBwcHRhYmxlLT5GZWF0dXJlc1RvUnVuWzFdKTsKKworCWZvciAoaSA9IDA7IGkgPCBQUFRfVEhST1RUTEVSX0NPVU5UOyBpKyspIHsKKwkJcHJfaW5mbygiU29ja2V0UG93ZXJMaW1pdEFjWyVkXSA9ICVkXG4iLCBpLCBwcHRhYmxlLT5Tb2NrZXRQb3dlckxpbWl0QWNbaV0pOworCQlwcl9pbmZvKCJTb2NrZXRQb3dlckxpbWl0QWNUYXVbJWRdID0gJWRcbiIsIGksIHBwdGFibGUtPlNvY2tldFBvd2VyTGltaXRBY1RhdVtpXSk7CisJfQorCisJcHJfaW5mbygiVGRjTGltaXRTb2MgPSAlZFxuIiwgcHB0YWJsZS0+VGRjTGltaXRTb2MpOworCXByX2luZm8oIlRkY0xpbWl0U29jVGF1ID0gJWRcbiIsIHBwdGFibGUtPlRkY0xpbWl0U29jVGF1KTsKKwlwcl9pbmZvKCJUZGNMaW1pdEdmeCA9ICVkXG4iLCBwcHRhYmxlLT5UZGNMaW1pdEdmeCk7CisJcHJfaW5mbygiVGRjTGltaXRHZnhUYXUgPSAlZFxuIiwgcHB0YWJsZS0+VGRjTGltaXRHZnhUYXUpOworCisJcHJfaW5mbygiVGVkZ2VMaW1pdCA9ICVkXG4iLCBwcHRhYmxlLT5UZWRnZUxpbWl0KTsKKwlwcl9pbmZvKCJUaG90c3BvdExpbWl0ID0gJWRcbiIsIHBwdGFibGUtPlRob3RzcG90TGltaXQpOworCXByX2luZm8oIlRtZW1MaW1pdCA9ICVkXG4iLCBwcHRhYmxlLT5UbWVtTGltaXQpOworCXByX2luZm8oIlR2cl9nZnhMaW1pdCA9ICVkXG4iLCBwcHRhYmxlLT5UdnJfZ2Z4TGltaXQpOworCXByX2luZm8oIlR2cl9tZW1MaW1pdCA9ICVkXG4iLCBwcHRhYmxlLT5UdnJfbWVtTGltaXQpOworCXByX2luZm8oIlR2cl9zb2NMaW1pdCA9ICVkXG4iLCBwcHRhYmxlLT5UdnJfc29jTGltaXQpOworCXByX2luZm8oIkZpdExpbWl0ID0gJWRcbiIsIHBwdGFibGUtPkZpdExpbWl0KTsKKworCXByX2luZm8oIlBwbVBvd2VyTGltaXQgPSAlZFxuIiwgcHB0YWJsZS0+UHBtUG93ZXJMaW1pdCk7CisJcHJfaW5mbygiUHBtVGVtcGVyYXR1cmVUaHJlc2hvbGQgPSAlZFxuIiwgcHB0YWJsZS0+UHBtVGVtcGVyYXR1cmVUaHJlc2hvbGQpOworCisJcHJfaW5mbygiVGhyb3R0bGVyQ29udHJvbE1hc2sgPSAlZFxuIiwgcHB0YWJsZS0+VGhyb3R0bGVyQ29udHJvbE1hc2spOworCisJcHJfaW5mbygiVWx2Vm9sdGFnZU9mZnNldEdmeCA9ICVkXG4iLCBwcHRhYmxlLT5VbHZWb2x0YWdlT2Zmc2V0R2Z4KTsKKwlwcl9pbmZvKCJVbHZQYWRkaW5nID0gMHglMDh4XG4iLCBwcHRhYmxlLT5VbHZQYWRkaW5nKTsKKworCXByX2luZm8oIlVsdkdmeGNsa0J5cGFzcyA9ICVkXG4iLCBwcHRhYmxlLT5VbHZHZnhjbGtCeXBhc3MpOworCXByX2luZm8oIlBhZGRpbmcyMzRbMF0gPSAweCUwMnhcbiIsIHBwdGFibGUtPlBhZGRpbmcyMzRbMF0pOworCXByX2luZm8oIlBhZGRpbmcyMzRbMV0gPSAweCUwMnhcbiIsIHBwdGFibGUtPlBhZGRpbmcyMzRbMV0pOworCXByX2luZm8oIlBhZGRpbmcyMzRbMl0gPSAweCUwMnhcbiIsIHBwdGFibGUtPlBhZGRpbmcyMzRbMl0pOworCisJcHJfaW5mbygiTWluVm9sdGFnZUdmeCA9ICVkXG4iLCBwcHRhYmxlLT5NaW5Wb2x0YWdlR2Z4KTsKKwlwcl9pbmZvKCJNaW5Wb2x0YWdlU29jID0gJWRcbiIsIHBwdGFibGUtPk1pblZvbHRhZ2VTb2MpOworCXByX2luZm8oIk1heFZvbHRhZ2VHZnggPSAlZFxuIiwgcHB0YWJsZS0+TWF4Vm9sdGFnZUdmeCk7CisJcHJfaW5mbygiTWF4Vm9sdGFnZVNvYyA9ICVkXG4iLCBwcHRhYmxlLT5NYXhWb2x0YWdlU29jKTsKKworCXByX2luZm8oIkxvYWRMaW5lUmVzaXN0YW5jZUdmeCA9ICVkXG4iLCBwcHRhYmxlLT5Mb2FkTGluZVJlc2lzdGFuY2VHZngpOworCXByX2luZm8oIkxvYWRMaW5lUmVzaXN0YW5jZVNvYyA9ICVkXG4iLCBwcHRhYmxlLT5Mb2FkTGluZVJlc2lzdGFuY2VTb2MpOworCisJcHJfaW5mbygiW1BQQ0xLX0dGWENMS11cbiIKKwkJCSIgIC5Wb2x0YWdlTW9kZSAgICAgICAgICA9IDB4JTAyeFxuIgorCQkJIiAgLlNuYXBUb0Rpc2NyZXRlICAgICAgID0gMHglMDJ4XG4iCisJCQkiICAuTnVtRGlzY3JldGVMZXZlbHMgICAgPSAweCUwMnhcbiIKKwkJCSIgIC5wYWRkaW5nICAgICAgICAgICAgICA9IDB4JTAyeFxuIgorCQkJIiAgLkNvbnZlcnNpb25Ub0F2ZnNDbGt7bSA9IDB4JTA4eCBiID0gMHglMDh4fVxuIgorCQkJIiAgLlNzQ3VydmUgICAgICAgICAgICB7YSA9IDB4JTA4eCBiID0gMHglMDh4IGMgPSAweCUwOHh9XG4iCisJCQkiICAuU3NGbWluICAgICAgICAgICAgICAgPSAweCUwNHhcbiIKKwkJCSIgIC5QYWRkaW5nXzE2ICAgICAgICAgICA9IDB4JTA0eFxuIiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfR0ZYQ0xLXS5Wb2x0YWdlTW9kZSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfR0ZYQ0xLXS5TbmFwVG9EaXNjcmV0ZSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfR0ZYQ0xLXS5OdW1EaXNjcmV0ZUxldmVscywKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfR0ZYQ0xLXS5wYWRkaW5nLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19HRlhDTEtdLkNvbnZlcnNpb25Ub0F2ZnNDbGsubSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfR0ZYQ0xLXS5Db252ZXJzaW9uVG9BdmZzQ2xrLmIsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX0dGWENMS10uU3NDdXJ2ZS5hLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19HRlhDTEtdLlNzQ3VydmUuYiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfR0ZYQ0xLXS5Tc0N1cnZlLmMsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX0dGWENMS10uU3NGbWluLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19HRlhDTEtdLlBhZGRpbmcxNik7CisKKwlwcl9pbmZvKCJbUFBDTEtfVkNMS11cbiIKKwkJCSIgIC5Wb2x0YWdlTW9kZSAgICAgICAgICA9IDB4JTAyeFxuIgorCQkJIiAgLlNuYXBUb0Rpc2NyZXRlICAgICAgID0gMHglMDJ4XG4iCisJCQkiICAuTnVtRGlzY3JldGVMZXZlbHMgICAgPSAweCUwMnhcbiIKKwkJCSIgIC5wYWRkaW5nICAgICAgICAgICAgICA9IDB4JTAyeFxuIgorCQkJIiAgLkNvbnZlcnNpb25Ub0F2ZnNDbGt7bSA9IDB4JTA4eCBiID0gMHglMDh4fVxuIgorCQkJIiAgLlNzQ3VydmUgICAgICAgICAgICB7YSA9IDB4JTA4eCBiID0gMHglMDh4IGMgPSAweCUwOHh9XG4iCisJCQkiICAuU3NGbWluICAgICAgICAgICAgICAgPSAweCUwNHhcbiIKKwkJCSIgIC5QYWRkaW5nXzE2ICAgICAgICAgICA9IDB4JTA0eFxuIiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVkNMS10uVm9sdGFnZU1vZGUsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX1ZDTEtdLlNuYXBUb0Rpc2NyZXRlLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19WQ0xLXS5OdW1EaXNjcmV0ZUxldmVscywKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVkNMS10ucGFkZGluZywKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVkNMS10uQ29udmVyc2lvblRvQXZmc0Nsay5tLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19WQ0xLXS5Db252ZXJzaW9uVG9BdmZzQ2xrLmIsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX1ZDTEtdLlNzQ3VydmUuYSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVkNMS10uU3NDdXJ2ZS5iLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19WQ0xLXS5Tc0N1cnZlLmMsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX1ZDTEtdLlNzRm1pbiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVkNMS10uUGFkZGluZzE2KTsKKworCXByX2luZm8oIltQUENMS19EQ0xLXVxuIgorCQkJIiAgLlZvbHRhZ2VNb2RlICAgICAgICAgID0gMHglMDJ4XG4iCisJCQkiICAuU25hcFRvRGlzY3JldGUgICAgICAgPSAweCUwMnhcbiIKKwkJCSIgIC5OdW1EaXNjcmV0ZUxldmVscyAgICA9IDB4JTAyeFxuIgorCQkJIiAgLnBhZGRpbmcgICAgICAgICAgICAgID0gMHglMDJ4XG4iCisJCQkiICAuQ29udmVyc2lvblRvQXZmc0Nsa3ttID0gMHglMDh4IGIgPSAweCUwOHh9XG4iCisJCQkiICAuU3NDdXJ2ZSAgICAgICAgICAgIHthID0gMHglMDh4IGIgPSAweCUwOHggYyA9IDB4JTA4eH1cbiIKKwkJCSIgIC5Tc0ZtaW4gICAgICAgICAgICAgICA9IDB4JTA0eFxuIgorCQkJIiAgLlBhZGRpbmdfMTYgICAgICAgICAgID0gMHglMDR4XG4iLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19EQ0xLXS5Wb2x0YWdlTW9kZSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfRENMS10uU25hcFRvRGlzY3JldGUsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX0RDTEtdLk51bURpc2NyZXRlTGV2ZWxzLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19EQ0xLXS5wYWRkaW5nLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19EQ0xLXS5Db252ZXJzaW9uVG9BdmZzQ2xrLm0sCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX0RDTEtdLkNvbnZlcnNpb25Ub0F2ZnNDbGsuYiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfRENMS10uU3NDdXJ2ZS5hLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19EQ0xLXS5Tc0N1cnZlLmIsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX0RDTEtdLlNzQ3VydmUuYywKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfRENMS10uU3NGbWluLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19EQ0xLXS5QYWRkaW5nMTYpOworCisJcHJfaW5mbygiW1BQQ0xLX1NPQ0NMS11cbiIKKwkJCSIgIC5Wb2x0YWdlTW9kZSAgICAgICAgICA9IDB4JTAyeFxuIgorCQkJIiAgLlNuYXBUb0Rpc2NyZXRlICAgICAgID0gMHglMDJ4XG4iCisJCQkiICAuTnVtRGlzY3JldGVMZXZlbHMgICAgPSAweCUwMnhcbiIKKwkJCSIgIC5wYWRkaW5nICAgICAgICAgICAgICA9IDB4JTAyeFxuIgorCQkJIiAgLkNvbnZlcnNpb25Ub0F2ZnNDbGt7bSA9IDB4JTA4eCBiID0gMHglMDh4fVxuIgorCQkJIiAgLlNzQ3VydmUgICAgICAgICAgICB7YSA9IDB4JTA4eCBiID0gMHglMDh4IGMgPSAweCUwOHh9XG4iCisJCQkiICAuU3NGbWluICAgICAgICAgICAgICAgPSAweCUwNHhcbiIKKwkJCSIgIC5QYWRkaW5nXzE2ICAgICAgICAgICA9IDB4JTA0eFxuIiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfU09DQ0xLXS5Wb2x0YWdlTW9kZSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfU09DQ0xLXS5TbmFwVG9EaXNjcmV0ZSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfU09DQ0xLXS5OdW1EaXNjcmV0ZUxldmVscywKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfU09DQ0xLXS5wYWRkaW5nLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19TT0NDTEtdLkNvbnZlcnNpb25Ub0F2ZnNDbGsubSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfU09DQ0xLXS5Db252ZXJzaW9uVG9BdmZzQ2xrLmIsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX1NPQ0NMS10uU3NDdXJ2ZS5hLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19TT0NDTEtdLlNzQ3VydmUuYiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfU09DQ0xLXS5Tc0N1cnZlLmMsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX1NPQ0NMS10uU3NGbWluLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19TT0NDTEtdLlBhZGRpbmcxNik7CisKKwlwcl9pbmZvKCJbUFBDTEtfVUNMS11cbiIKKwkJCSIgIC5Wb2x0YWdlTW9kZSAgICAgICAgICA9IDB4JTAyeFxuIgorCQkJIiAgLlNuYXBUb0Rpc2NyZXRlICAgICAgID0gMHglMDJ4XG4iCisJCQkiICAuTnVtRGlzY3JldGVMZXZlbHMgICAgPSAweCUwMnhcbiIKKwkJCSIgIC5wYWRkaW5nICAgICAgICAgICAgICA9IDB4JTAyeFxuIgorCQkJIiAgLkNvbnZlcnNpb25Ub0F2ZnNDbGt7bSA9IDB4JTA4eCBiID0gMHglMDh4fVxuIgorCQkJIiAgLlNzQ3VydmUgICAgICAgICAgICB7YSA9IDB4JTA4eCBiID0gMHglMDh4IGMgPSAweCUwOHh9XG4iCisJCQkiICAuU3NGbWluICAgICAgICAgICAgICAgPSAweCUwNHhcbiIKKwkJCSIgIC5QYWRkaW5nXzE2ICAgICAgICAgICA9IDB4JTA0eFxuIiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVUNMS10uVm9sdGFnZU1vZGUsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX1VDTEtdLlNuYXBUb0Rpc2NyZXRlLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19VQ0xLXS5OdW1EaXNjcmV0ZUxldmVscywKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVUNMS10ucGFkZGluZywKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVUNMS10uQ29udmVyc2lvblRvQXZmc0Nsay5tLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19VQ0xLXS5Db252ZXJzaW9uVG9BdmZzQ2xrLmIsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX1VDTEtdLlNzQ3VydmUuYSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVUNMS10uU3NDdXJ2ZS5iLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19VQ0xLXS5Tc0N1cnZlLmMsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX1VDTEtdLlNzRm1pbiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfVUNMS10uUGFkZGluZzE2KTsKKworCXByX2luZm8oIltQUENMS19GQ0xLXVxuIgorCQkJIiAgLlZvbHRhZ2VNb2RlICAgICAgICAgID0gMHglMDJ4XG4iCisJCQkiICAuU25hcFRvRGlzY3JldGUgICAgICAgPSAweCUwMnhcbiIKKwkJCSIgIC5OdW1EaXNjcmV0ZUxldmVscyAgICA9IDB4JTAyeFxuIgorCQkJIiAgLnBhZGRpbmcgICAgICAgICAgICAgID0gMHglMDJ4XG4iCisJCQkiICAuQ29udmVyc2lvblRvQXZmc0Nsa3ttID0gMHglMDh4IGIgPSAweCUwOHh9XG4iCisJCQkiICAuU3NDdXJ2ZSAgICAgICAgICAgIHthID0gMHglMDh4IGIgPSAweCUwOHggYyA9IDB4JTA4eH1cbiIKKwkJCSIgIC5Tc0ZtaW4gICAgICAgICAgICAgICA9IDB4JTA0eFxuIgorCQkJIiAgLlBhZGRpbmdfMTYgICAgICAgICAgID0gMHglMDR4XG4iLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19GQ0xLXS5Wb2x0YWdlTW9kZSwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfRkNMS10uU25hcFRvRGlzY3JldGUsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX0ZDTEtdLk51bURpc2NyZXRlTGV2ZWxzLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19GQ0xLXS5wYWRkaW5nLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19GQ0xLXS5Db252ZXJzaW9uVG9BdmZzQ2xrLm0sCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX0ZDTEtdLkNvbnZlcnNpb25Ub0F2ZnNDbGsuYiwKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfRkNMS10uU3NDdXJ2ZS5hLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19GQ0xLXS5Tc0N1cnZlLmIsCisJCQlwcHRhYmxlLT5EcG1EZXNjcmlwdG9yW1BQQ0xLX0ZDTEtdLlNzQ3VydmUuYywKKwkJCXBwdGFibGUtPkRwbURlc2NyaXB0b3JbUFBDTEtfRkNMS10uU3NGbWluLAorCQkJcHB0YWJsZS0+RHBtRGVzY3JpcHRvcltQUENMS19GQ0xLXS5QYWRkaW5nMTYpOworCisKKwlwcl9pbmZvKCJGcmVxVGFibGVHZnhcbiIpOworCWZvciAoaSA9IDA7IGkgPCBOVU1fR0ZYQ0xLX0RQTV9MRVZFTFM7IGkrKykKKwkJcHJfaW5mbygiICAuWyUwMmRdID0gJWRcbiIsIGksIHBwdGFibGUtPkZyZXFUYWJsZUdmeFtpXSk7CisKKwlwcl9pbmZvKCJGcmVxVGFibGVWY2xrXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX1ZDTEtfRFBNX0xFVkVMUzsgaSsrKQorCQlwcl9pbmZvKCIgIC5bJTAyZF0gPSAlZFxuIiwgaSwgcHB0YWJsZS0+RnJlcVRhYmxlVmNsa1tpXSk7CisKKwlwcl9pbmZvKCJGcmVxVGFibGVEY2xrXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX0RDTEtfRFBNX0xFVkVMUzsgaSsrKQorCQlwcl9pbmZvKCIgIC5bJTAyZF0gPSAlZFxuIiwgaSwgcHB0YWJsZS0+RnJlcVRhYmxlRGNsa1tpXSk7CisKKwlwcl9pbmZvKCJGcmVxVGFibGVTb2NjbGtcbiIpOworCWZvciAoaSA9IDA7IGkgPCBOVU1fU09DQ0xLX0RQTV9MRVZFTFM7IGkrKykKKwkJcHJfaW5mbygiICAuWyUwMmRdID0gJWRcbiIsIGksIHBwdGFibGUtPkZyZXFUYWJsZVNvY2Nsa1tpXSk7CisKKwlwcl9pbmZvKCJGcmVxVGFibGVVY2xrXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX1VDTEtfRFBNX0xFVkVMUzsgaSsrKQorCQlwcl9pbmZvKCIgIC5bJTAyZF0gPSAlZFxuIiwgaSwgcHB0YWJsZS0+RnJlcVRhYmxlVWNsa1tpXSk7CisKKwlwcl9pbmZvKCJGcmVxVGFibGVGY2xrXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX0ZDTEtfRFBNX0xFVkVMUzsgaSsrKQorCQlwcl9pbmZvKCIgIC5bJTAyZF0gPSAlZFxuIiwgaSwgcHB0YWJsZS0+RnJlcVRhYmxlRmNsa1tpXSk7CisKKwlwcl9pbmZvKCJNcDBjbGtGcmVxXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX01QMENMS19EUE1fTEVWRUxTOyBpKyspCisJCXByX2luZm8oIiAgLlslZF0gPSAlZFxuIiwgaSwgcHB0YWJsZS0+TXAwY2xrRnJlcVtpXSk7CisKKwlwcl9pbmZvKCJNcDBEcG1Wb2x0YWdlXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX01QMENMS19EUE1fTEVWRUxTOyBpKyspCisJCXByX2luZm8oIiAgLlslZF0gPSAlZFxuIiwgaSwgcHB0YWJsZS0+TXAwRHBtVm9sdGFnZVtpXSk7CisKKwlwcl9pbmZvKCJHZnhjbGtGaWRsZSA9IDB4JXhcbiIsIHBwdGFibGUtPkdmeGNsa0ZpZGxlKTsKKwlwcl9pbmZvKCJHZnhjbGtTbGV3UmF0ZSA9IDB4JXhcbiIsIHBwdGFibGUtPkdmeGNsa1NsZXdSYXRlKTsKKwlwcl9pbmZvKCJQYWRkaW5nNTY3WzBdID0gMHgleFxuIiwgcHB0YWJsZS0+UGFkZGluZzU2N1swXSk7CisJcHJfaW5mbygiUGFkZGluZzU2N1sxXSA9IDB4JXhcbiIsIHBwdGFibGUtPlBhZGRpbmc1NjdbMV0pOworCXByX2luZm8oIlBhZGRpbmc1NjdbMl0gPSAweCV4XG4iLCBwcHRhYmxlLT5QYWRkaW5nNTY3WzJdKTsKKwlwcl9pbmZvKCJQYWRkaW5nNTY3WzNdID0gMHgleFxuIiwgcHB0YWJsZS0+UGFkZGluZzU2N1szXSk7CisJcHJfaW5mbygiR2Z4Y2xrRHNNYXhGcmVxID0gJWRcbiIsIHBwdGFibGUtPkdmeGNsa0RzTWF4RnJlcSk7CisJcHJfaW5mbygiR2Z4Y2xrU291cmNlID0gMHgleFxuIiwgcHB0YWJsZS0+R2Z4Y2xrU291cmNlKTsKKwlwcl9pbmZvKCJQYWRkaW5nNDU2ID0gMHgleFxuIiwgcHB0YWJsZS0+UGFkZGluZzQ1Nik7CisKKwlwcl9pbmZvKCJFbmFibGVUZHBtID0gJWRcbiIsIHBwdGFibGUtPkVuYWJsZVRkcG0pOworCXByX2luZm8oIlRkcG1IaWdoSHlzdFRlbXBlcmF0dXJlID0gJWRcbiIsIHBwdGFibGUtPlRkcG1IaWdoSHlzdFRlbXBlcmF0dXJlKTsKKwlwcl9pbmZvKCJUZHBtTG93SHlzdFRlbXBlcmF0dXJlID0gJWRcbiIsIHBwdGFibGUtPlRkcG1Mb3dIeXN0VGVtcGVyYXR1cmUpOworCXByX2luZm8oIkdmeGNsa0ZyZXFIaWdoVGVtcExpbWl0ID0gJWRcbiIsIHBwdGFibGUtPkdmeGNsa0ZyZXFIaWdoVGVtcExpbWl0KTsKKworCXByX2luZm8oIkZhblN0b3BUZW1wID0gJWRcbiIsIHBwdGFibGUtPkZhblN0b3BUZW1wKTsKKwlwcl9pbmZvKCJGYW5TdGFydFRlbXAgPSAlZFxuIiwgcHB0YWJsZS0+RmFuU3RhcnRUZW1wKTsKKworCXByX2luZm8oIkZhbkdhaW5FZGdlID0gJWRcbiIsIHBwdGFibGUtPkZhbkdhaW5FZGdlKTsKKwlwcl9pbmZvKCJGYW5HYWluSG90c3BvdCA9ICVkXG4iLCBwcHRhYmxlLT5GYW5HYWluSG90c3BvdCk7CisJcHJfaW5mbygiRmFuR2FpblZyR2Z4ID0gJWRcbiIsIHBwdGFibGUtPkZhbkdhaW5WckdmeCk7CisJcHJfaW5mbygiRmFuR2FpblZyU29jID0gJWRcbiIsIHBwdGFibGUtPkZhbkdhaW5WclNvYyk7CisJcHJfaW5mbygiRmFuR2FpblZyTWVtID0gJWRcbiIsIHBwdGFibGUtPkZhbkdhaW5Wck1lbSk7CisJcHJfaW5mbygiRmFuR2FpbkhibSA9ICVkXG4iLCBwcHRhYmxlLT5GYW5HYWluSGJtKTsKKworCXByX2luZm8oIkZhblB3bU1pbiA9ICVkXG4iLCBwcHRhYmxlLT5GYW5Qd21NaW4pOworCXByX2luZm8oIkZhbkFjb3VzdGljTGltaXRScG0gPSAlZFxuIiwgcHB0YWJsZS0+RmFuQWNvdXN0aWNMaW1pdFJwbSk7CisJcHJfaW5mbygiRmFuVGhyb3R0bGluZ1JwbSA9ICVkXG4iLCBwcHRhYmxlLT5GYW5UaHJvdHRsaW5nUnBtKTsKKwlwcl9pbmZvKCJGYW5NYXhpbXVtUnBtID0gJWRcbiIsIHBwdGFibGUtPkZhbk1heGltdW1ScG0pOworCXByX2luZm8oIkZhblRhcmdldFRlbXBlcmF0dXJlID0gJWRcbiIsIHBwdGFibGUtPkZhblRhcmdldFRlbXBlcmF0dXJlKTsKKwlwcl9pbmZvKCJGYW5UYXJnZXRHZnhjbGsgPSAlZFxuIiwgcHB0YWJsZS0+RmFuVGFyZ2V0R2Z4Y2xrKTsKKwlwcl9pbmZvKCJGYW5aZXJvUnBtRW5hYmxlID0gJWRcbiIsIHBwdGFibGUtPkZhblplcm9ScG1FbmFibGUpOworCXByX2luZm8oIkZhblRhY2hFZGdlUGVyUmV2ID0gJWRcbiIsIHBwdGFibGUtPkZhblRhY2hFZGdlUGVyUmV2KTsKKwlwcl9pbmZvKCJGYW5UZW1wSW5wdXRTZWxlY3QgPSAlZFxuIiwgcHB0YWJsZS0+RmFuVGVtcElucHV0U2VsZWN0KTsKKworCXByX2luZm8oIkZ1enp5RmFuX0Vycm9yU2V0RGVsdGEgPSAlZFxuIiwgcHB0YWJsZS0+RnV6enlGYW5fRXJyb3JTZXREZWx0YSk7CisJcHJfaW5mbygiRnV6enlGYW5fRXJyb3JSYXRlU2V0RGVsdGEgPSAlZFxuIiwgcHB0YWJsZS0+RnV6enlGYW5fRXJyb3JSYXRlU2V0RGVsdGEpOworCXByX2luZm8oIkZ1enp5RmFuX1B3bVNldERlbHRhID0gJWRcbiIsIHBwdGFibGUtPkZ1enp5RmFuX1B3bVNldERlbHRhKTsKKwlwcl9pbmZvKCJGdXp6eUZhbl9SZXNlcnZlZCA9ICVkXG4iLCBwcHRhYmxlLT5GdXp6eUZhbl9SZXNlcnZlZCk7CisKKwlwcl9pbmZvKCJPdmVycmlkZUF2ZnNHYltBVkZTX1ZPTFRBR0VfR0ZYXSA9IDB4JXhcbiIsIHBwdGFibGUtPk92ZXJyaWRlQXZmc0diW0FWRlNfVk9MVEFHRV9HRlhdKTsKKwlwcl9pbmZvKCJPdmVycmlkZUF2ZnNHYltBVkZTX1ZPTFRBR0VfU09DXSA9IDB4JXhcbiIsIHBwdGFibGUtPk92ZXJyaWRlQXZmc0diW0FWRlNfVk9MVEFHRV9TT0NdKTsKKwlwcl9pbmZvKCJQYWRkaW5nOF9BdmZzWzBdID0gJWRcbiIsIHBwdGFibGUtPlBhZGRpbmc4X0F2ZnNbMF0pOworCXByX2luZm8oIlBhZGRpbmc4X0F2ZnNbMV0gPSAlZFxuIiwgcHB0YWJsZS0+UGFkZGluZzhfQXZmc1sxXSk7CisKKwlwcl9pbmZvKCJkQnRjR2JHZnhQbGx7YSA9IDB4JXggYiA9IDB4JXggYyA9IDB4JXh9XG4iLAorCQkJcHB0YWJsZS0+ZEJ0Y0diR2Z4UGxsLmEsCisJCQlwcHRhYmxlLT5kQnRjR2JHZnhQbGwuYiwKKwkJCXBwdGFibGUtPmRCdGNHYkdmeFBsbC5jKTsKKwlwcl9pbmZvKCJkQnRjR2JHZnhBZmxse2EgPSAweCV4IGIgPSAweCV4IGMgPSAweCV4fVxuIiwKKwkJCXBwdGFibGUtPmRCdGNHYkdmeEFmbGwuYSwKKwkJCXBwdGFibGUtPmRCdGNHYkdmeEFmbGwuYiwKKwkJCXBwdGFibGUtPmRCdGNHYkdmeEFmbGwuYyk7CisJcHJfaW5mbygiZEJ0Y0diU29je2EgPSAweCV4IGIgPSAweCV4IGMgPSAweCV4fVxuIiwKKwkJCXBwdGFibGUtPmRCdGNHYlNvYy5hLAorCQkJcHB0YWJsZS0+ZEJ0Y0diU29jLmIsCisJCQlwcHRhYmxlLT5kQnRjR2JTb2MuYyk7CisKKwlwcl9pbmZvKCJxQWdpbmdHYltBVkZTX1ZPTFRBR0VfR0ZYXXttID0gMHgleCBiID0gMHgleH1cbiIsCisJCQlwcHRhYmxlLT5xQWdpbmdHYltBVkZTX1ZPTFRBR0VfR0ZYXS5tLAorCQkJcHB0YWJsZS0+cUFnaW5nR2JbQVZGU19WT0xUQUdFX0dGWF0uYik7CisJcHJfaW5mbygicUFnaW5nR2JbQVZGU19WT0xUQUdFX1NPQ117bSA9IDB4JXggYiA9IDB4JXh9XG4iLAorCQkJcHB0YWJsZS0+cUFnaW5nR2JbQVZGU19WT0xUQUdFX1NPQ10ubSwKKwkJCXBwdGFibGUtPnFBZ2luZ0diW0FWRlNfVk9MVEFHRV9TT0NdLmIpOworCisJcHJfaW5mbygicVN0YXRpY1ZvbHRhZ2VPZmZzZXRbQVZGU19WT0xUQUdFX0dGWF17YSA9IDB4JXggYiA9IDB4JXggYyA9IDB4JXh9XG4iLAorCQkJcHB0YWJsZS0+cVN0YXRpY1ZvbHRhZ2VPZmZzZXRbQVZGU19WT0xUQUdFX0dGWF0uYSwKKwkJCXBwdGFibGUtPnFTdGF0aWNWb2x0YWdlT2Zmc2V0W0FWRlNfVk9MVEFHRV9HRlhdLmIsCisJCQlwcHRhYmxlLT5xU3RhdGljVm9sdGFnZU9mZnNldFtBVkZTX1ZPTFRBR0VfR0ZYXS5jKTsKKwlwcl9pbmZvKCJxU3RhdGljVm9sdGFnZU9mZnNldFtBVkZTX1ZPTFRBR0VfU09DXXthID0gMHgleCBiID0gMHgleCBjID0gMHgleH1cbiIsCisJCQlwcHRhYmxlLT5xU3RhdGljVm9sdGFnZU9mZnNldFtBVkZTX1ZPTFRBR0VfU09DXS5hLAorCQkJcHB0YWJsZS0+cVN0YXRpY1ZvbHRhZ2VPZmZzZXRbQVZGU19WT0xUQUdFX1NPQ10uYiwKKwkJCXBwdGFibGUtPnFTdGF0aWNWb2x0YWdlT2Zmc2V0W0FWRlNfVk9MVEFHRV9TT0NdLmMpOworCisJcHJfaW5mbygiRGNUb2xbQVZGU19WT0xUQUdFX0dGWF0gPSAweCV4XG4iLCBwcHRhYmxlLT5EY1RvbFtBVkZTX1ZPTFRBR0VfR0ZYXSk7CisJcHJfaW5mbygiRGNUb2xbQVZGU19WT0xUQUdFX1NPQ10gPSAweCV4XG4iLCBwcHRhYmxlLT5EY1RvbFtBVkZTX1ZPTFRBR0VfU09DXSk7CisKKwlwcl9pbmZvKCJEY0J0Y0VuYWJsZWRbQVZGU19WT0xUQUdFX0dGWF0gPSAweCV4XG4iLCBwcHRhYmxlLT5EY0J0Y0VuYWJsZWRbQVZGU19WT0xUQUdFX0dGWF0pOworCXByX2luZm8oIkRjQnRjRW5hYmxlZFtBVkZTX1ZPTFRBR0VfU09DXSA9IDB4JXhcbiIsIHBwdGFibGUtPkRjQnRjRW5hYmxlZFtBVkZTX1ZPTFRBR0VfU09DXSk7CisJcHJfaW5mbygiUGFkZGluZzhfR2Z4QnRjWzBdID0gMHgleFxuIiwgcHB0YWJsZS0+UGFkZGluZzhfR2Z4QnRjWzBdKTsKKwlwcl9pbmZvKCJQYWRkaW5nOF9HZnhCdGNbMV0gPSAweCV4XG4iLCBwcHRhYmxlLT5QYWRkaW5nOF9HZnhCdGNbMV0pOworCisJcHJfaW5mbygiRGNCdGNNaW5bQVZGU19WT0xUQUdFX0dGWF0gPSAweCV4XG4iLCBwcHRhYmxlLT5EY0J0Y01pbltBVkZTX1ZPTFRBR0VfR0ZYXSk7CisJcHJfaW5mbygiRGNCdGNNaW5bQVZGU19WT0xUQUdFX1NPQ10gPSAweCV4XG4iLCBwcHRhYmxlLT5EY0J0Y01pbltBVkZTX1ZPTFRBR0VfU09DXSk7CisJcHJfaW5mbygiRGNCdGNNYXhbQVZGU19WT0xUQUdFX0dGWF0gPSAweCV4XG4iLCBwcHRhYmxlLT5EY0J0Y01heFtBVkZTX1ZPTFRBR0VfR0ZYXSk7CisJcHJfaW5mbygiRGNCdGNNYXhbQVZGU19WT0xUQUdFX1NPQ10gPSAweCV4XG4iLCBwcHRhYmxlLT5EY0J0Y01heFtBVkZTX1ZPTFRBR0VfU09DXSk7CisKKwlwcl9pbmZvKCJEY0J0Y0diW0FWRlNfVk9MVEFHRV9HRlhdID0gMHgleFxuIiwgcHB0YWJsZS0+RGNCdGNHYltBVkZTX1ZPTFRBR0VfR0ZYXSk7CisJcHJfaW5mbygiRGNCdGNHYltBVkZTX1ZPTFRBR0VfU09DXSA9IDB4JXhcbiIsIHBwdGFibGUtPkRjQnRjR2JbQVZGU19WT0xUQUdFX1NPQ10pOworCisJcHJfaW5mbygiWGdtaURwbVBzdGF0ZXNcbiIpOworCWZvciAoaSA9IDA7IGkgPCBOVU1fWEdNSV9MRVZFTFM7IGkrKykKKwkJcHJfaW5mbygiICAuWyVkXSA9ICVkXG4iLCBpLCBwcHRhYmxlLT5YZ21pRHBtUHN0YXRlc1tpXSk7CisJcHJfaW5mbygiWGdtaURwbVNwYXJlWzBdID0gMHglMDJ4XG4iLCBwcHRhYmxlLT5YZ21pRHBtU3BhcmVbMF0pOworCXByX2luZm8oIlhnbWlEcG1TcGFyZVsxXSA9IDB4JTAyeFxuIiwgcHB0YWJsZS0+WGdtaURwbVNwYXJlWzFdKTsKKworCXByX2luZm8oIlZEREdGWF9UVm1pbiA9ICVkXG4iLCBwcHRhYmxlLT5WRERHRlhfVFZtaW4pOworCXByX2luZm8oIlZERFNPQ19UVm1pbiA9ICVkXG4iLCBwcHRhYmxlLT5WRERTT0NfVFZtaW4pOworCXByX2luZm8oIlZEREdGWF9WbWluX0hpVGVtcCA9ICVkXG4iLCBwcHRhYmxlLT5WRERHRlhfVm1pbl9IaVRlbXApOworCXByX2luZm8oIlZEREdGWF9WbWluX0xvVGVtcCA9ICVkXG4iLCBwcHRhYmxlLT5WRERHRlhfVm1pbl9Mb1RlbXApOworCXByX2luZm8oIlZERFNPQ19WbWluX0hpVGVtcCA9ICVkXG4iLCBwcHRhYmxlLT5WRERTT0NfVm1pbl9IaVRlbXApOworCXByX2luZm8oIlZERFNPQ19WbWluX0xvVGVtcCA9ICVkXG4iLCBwcHRhYmxlLT5WRERTT0NfVm1pbl9Mb1RlbXApOworCXByX2luZm8oIlZEREdGWF9UVm1pbkh5c3RlcnNpcyA9ICVkXG4iLCBwcHRhYmxlLT5WRERHRlhfVFZtaW5IeXN0ZXJzaXMpOworCXByX2luZm8oIlZERFNPQ19UVm1pbkh5c3RlcnNpcyA9ICVkXG4iLCBwcHRhYmxlLT5WRERTT0NfVFZtaW5IeXN0ZXJzaXMpOworCisJcHJfaW5mbygiRGVidWdPdmVycmlkZXMgPSAweCV4XG4iLCBwcHRhYmxlLT5EZWJ1Z092ZXJyaWRlcyk7CisJcHJfaW5mbygiUmVzZXJ2ZWRFcXVhdGlvbjB7YSA9IDB4JXggYiA9IDB4JXggYyA9IDB4JXh9XG4iLAorCQkJcHB0YWJsZS0+UmVzZXJ2ZWRFcXVhdGlvbjAuYSwKKwkJCXBwdGFibGUtPlJlc2VydmVkRXF1YXRpb24wLmIsCisJCQlwcHRhYmxlLT5SZXNlcnZlZEVxdWF0aW9uMC5jKTsKKwlwcl9pbmZvKCJSZXNlcnZlZEVxdWF0aW9uMXthID0gMHgleCBiID0gMHgleCBjID0gMHgleH1cbiIsCisJCQlwcHRhYmxlLT5SZXNlcnZlZEVxdWF0aW9uMS5hLAorCQkJcHB0YWJsZS0+UmVzZXJ2ZWRFcXVhdGlvbjEuYiwKKwkJCXBwdGFibGUtPlJlc2VydmVkRXF1YXRpb24xLmMpOworCXByX2luZm8oIlJlc2VydmVkRXF1YXRpb24ye2EgPSAweCV4IGIgPSAweCV4IGMgPSAweCV4fVxuIiwKKwkJCXBwdGFibGUtPlJlc2VydmVkRXF1YXRpb24yLmEsCisJCQlwcHRhYmxlLT5SZXNlcnZlZEVxdWF0aW9uMi5iLAorCQkJcHB0YWJsZS0+UmVzZXJ2ZWRFcXVhdGlvbjIuYyk7CisJcHJfaW5mbygiUmVzZXJ2ZWRFcXVhdGlvbjN7YSA9IDB4JXggYiA9IDB4JXggYyA9IDB4JXh9XG4iLAorCQkJcHB0YWJsZS0+UmVzZXJ2ZWRFcXVhdGlvbjMuYSwKKwkJCXBwdGFibGUtPlJlc2VydmVkRXF1YXRpb24zLmIsCisJCQlwcHRhYmxlLT5SZXNlcnZlZEVxdWF0aW9uMy5jKTsKKworCXByX2luZm8oIk1pblZvbHRhZ2VVbHZHZnggPSAlZFxuIiwgcHB0YWJsZS0+TWluVm9sdGFnZVVsdkdmeCk7CisJcHJfaW5mbygiUGFkZGluZ1VsdiA9ICVkXG4iLCBwcHRhYmxlLT5QYWRkaW5nVWx2KTsKKworCXByX2luZm8oIlRvdGFsUG93ZXJDb25maWcgPSAlZFxuIiwgcHB0YWJsZS0+VG90YWxQb3dlckNvbmZpZyk7CisJcHJfaW5mbygiVG90YWxQb3dlclNwYXJlMSA9ICVkXG4iLCBwcHRhYmxlLT5Ub3RhbFBvd2VyU3BhcmUxKTsKKwlwcl9pbmZvKCJUb3RhbFBvd2VyU3BhcmUyID0gJWRcbiIsIHBwdGFibGUtPlRvdGFsUG93ZXJTcGFyZTIpOworCisJcHJfaW5mbygiUGNjVGhyZXNob2xkTG93ID0gJWRcbiIsIHBwdGFibGUtPlBjY1RocmVzaG9sZExvdyk7CisJcHJfaW5mbygiUGNjVGhyZXNob2xkSGlnaCA9ICVkXG4iLCBwcHRhYmxlLT5QY2NUaHJlc2hvbGRIaWdoKTsKKworCXByX2luZm8oIkJvYXJkIFBhcmFtZXRlcnM6XG4iKTsKKwlwcl9pbmZvKCJNYXhWb2x0YWdlU3RlcEdmeCA9IDB4JXhcbiIsIHBwdGFibGUtPk1heFZvbHRhZ2VTdGVwR2Z4KTsKKwlwcl9pbmZvKCJNYXhWb2x0YWdlU3RlcFNvYyA9IDB4JXhcbiIsIHBwdGFibGUtPk1heFZvbHRhZ2VTdGVwU29jKTsKKworCXByX2luZm8oIlZkZEdmeFZyTWFwcGluZyA9IDB4JXhcbiIsIHBwdGFibGUtPlZkZEdmeFZyTWFwcGluZyk7CisJcHJfaW5mbygiVmRkU29jVnJNYXBwaW5nID0gMHgleFxuIiwgcHB0YWJsZS0+VmRkU29jVnJNYXBwaW5nKTsKKwlwcl9pbmZvKCJWZGRNZW1Wck1hcHBpbmcgPSAweCV4XG4iLCBwcHRhYmxlLT5WZGRNZW1Wck1hcHBpbmcpOworCXByX2luZm8oIkJvYXJkVnJNYXBwaW5nID0gMHgleFxuIiwgcHB0YWJsZS0+Qm9hcmRWck1hcHBpbmcpOworCisJcHJfaW5mbygiR2Z4VWx2UGhhc2VTaGVkZGluZ01hc2sgPSAweCV4XG4iLCBwcHRhYmxlLT5HZnhVbHZQaGFzZVNoZWRkaW5nTWFzayk7CisJcHJfaW5mbygiRXh0ZXJuYWxTZW5zb3JQcmVzZW50ID0gMHgleFxuIiwgcHB0YWJsZS0+RXh0ZXJuYWxTZW5zb3JQcmVzZW50KTsKKworCXByX2luZm8oIkdmeE1heEN1cnJlbnQgPSAweCV4XG4iLCBwcHRhYmxlLT5HZnhNYXhDdXJyZW50KTsKKwlwcl9pbmZvKCJHZnhPZmZzZXQgPSAweCV4XG4iLCBwcHRhYmxlLT5HZnhPZmZzZXQpOworCXByX2luZm8oIlBhZGRpbmdfVGVsZW1ldHJ5R2Z4ID0gMHgleFxuIiwgcHB0YWJsZS0+UGFkZGluZ19UZWxlbWV0cnlHZngpOworCisJcHJfaW5mbygiU29jTWF4Q3VycmVudCA9IDB4JXhcbiIsIHBwdGFibGUtPlNvY01heEN1cnJlbnQpOworCXByX2luZm8oIlNvY09mZnNldCA9IDB4JXhcbiIsIHBwdGFibGUtPlNvY09mZnNldCk7CisJcHJfaW5mbygiUGFkZGluZ19UZWxlbWV0cnlTb2MgPSAweCV4XG4iLCBwcHRhYmxlLT5QYWRkaW5nX1RlbGVtZXRyeVNvYyk7CisKKwlwcl9pbmZvKCJNZW1NYXhDdXJyZW50ID0gMHgleFxuIiwgcHB0YWJsZS0+TWVtTWF4Q3VycmVudCk7CisJcHJfaW5mbygiTWVtT2Zmc2V0ID0gMHgleFxuIiwgcHB0YWJsZS0+TWVtT2Zmc2V0KTsKKwlwcl9pbmZvKCJQYWRkaW5nX1RlbGVtZXRyeU1lbSA9IDB4JXhcbiIsIHBwdGFibGUtPlBhZGRpbmdfVGVsZW1ldHJ5TWVtKTsKKworCXByX2luZm8oIkJvYXJkTWF4Q3VycmVudCA9IDB4JXhcbiIsIHBwdGFibGUtPkJvYXJkTWF4Q3VycmVudCk7CisJcHJfaW5mbygiQm9hcmRPZmZzZXQgPSAweCV4XG4iLCBwcHRhYmxlLT5Cb2FyZE9mZnNldCk7CisJcHJfaW5mbygiUGFkZGluZ19UZWxlbWV0cnlCb2FyZElucHV0ID0gMHgleFxuIiwgcHB0YWJsZS0+UGFkZGluZ19UZWxlbWV0cnlCb2FyZElucHV0KTsKKworCXByX2luZm8oIlZSMEhvdEdwaW8gPSAlZFxuIiwgcHB0YWJsZS0+VlIwSG90R3Bpbyk7CisJcHJfaW5mbygiVlIwSG90UG9sYXJpdHkgPSAlZFxuIiwgcHB0YWJsZS0+VlIwSG90UG9sYXJpdHkpOworCXByX2luZm8oIlZSMUhvdEdwaW8gPSAlZFxuIiwgcHB0YWJsZS0+VlIxSG90R3Bpbyk7CisJcHJfaW5mbygiVlIxSG90UG9sYXJpdHkgPSAlZFxuIiwgcHB0YWJsZS0+VlIxSG90UG9sYXJpdHkpOworCisJcHJfaW5mbygiUGxsR2Z4Y2xrU3ByZWFkRW5hYmxlZCA9ICVkXG4iLCBwcHRhYmxlLT5QbGxHZnhjbGtTcHJlYWRFbmFibGVkKTsKKwlwcl9pbmZvKCJQbGxHZnhjbGtTcHJlYWRQZXJjZW50ID0gJWRcbiIsIHBwdGFibGUtPlBsbEdmeGNsa1NwcmVhZFBlcmNlbnQpOworCXByX2luZm8oIlBsbEdmeGNsa1NwcmVhZEZyZXEgPSAlZFxuIiwgcHB0YWJsZS0+UGxsR2Z4Y2xrU3ByZWFkRnJlcSk7CisKKwlwcl9pbmZvKCJVY2xrU3ByZWFkRW5hYmxlZCA9ICVkXG4iLCBwcHRhYmxlLT5VY2xrU3ByZWFkRW5hYmxlZCk7CisJcHJfaW5mbygiVWNsa1NwcmVhZFBlcmNlbnQgPSAlZFxuIiwgcHB0YWJsZS0+VWNsa1NwcmVhZFBlcmNlbnQpOworCXByX2luZm8oIlVjbGtTcHJlYWRGcmVxID0gJWRcbiIsIHBwdGFibGUtPlVjbGtTcHJlYWRGcmVxKTsKKworCXByX2luZm8oIkZjbGtTcHJlYWRFbmFibGVkID0gJWRcbiIsIHBwdGFibGUtPkZjbGtTcHJlYWRFbmFibGVkKTsKKwlwcl9pbmZvKCJGY2xrU3ByZWFkUGVyY2VudCA9ICVkXG4iLCBwcHRhYmxlLT5GY2xrU3ByZWFkUGVyY2VudCk7CisJcHJfaW5mbygiRmNsa1NwcmVhZEZyZXEgPSAlZFxuIiwgcHB0YWJsZS0+RmNsa1NwcmVhZEZyZXEpOworCisJcHJfaW5mbygiRmxsR2Z4Y2xrU3ByZWFkRW5hYmxlZCA9ICVkXG4iLCBwcHRhYmxlLT5GbGxHZnhjbGtTcHJlYWRFbmFibGVkKTsKKwlwcl9pbmZvKCJGbGxHZnhjbGtTcHJlYWRQZXJjZW50ID0gJWRcbiIsIHBwdGFibGUtPkZsbEdmeGNsa1NwcmVhZFBlcmNlbnQpOworCXByX2luZm8oIkZsbEdmeGNsa1NwcmVhZEZyZXEgPSAlZFxuIiwgcHB0YWJsZS0+RmxsR2Z4Y2xrU3ByZWFkRnJlcSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX0kyQ19DT05UUk9MTEVSUzsgaSsrKSB7CisJCXByX2luZm8oIkkyY0NvbnRyb2xsZXJzWyVkXTpcbiIsIGkpOworCQlwcl9pbmZvKCIgICAgICAgICAgICAgICAgICAgLkVuYWJsZWQgPSAlZFxuIiwKKwkJCQlwcHRhYmxlLT5JMmNDb250cm9sbGVyc1tpXS5FbmFibGVkKTsKKwkJcHJfaW5mbygiICAgICAgICAgICAgICAgICAgIC5TbGF2ZUFkZHJlc3MgPSAweCV4XG4iLAorCQkJCXBwdGFibGUtPkkyY0NvbnRyb2xsZXJzW2ldLlNsYXZlQWRkcmVzcyk7CisJCXByX2luZm8oIiAgICAgICAgICAgICAgICAgICAuQ29udHJvbGxlclBvcnQgPSAlZFxuIiwKKwkJCQlwcHRhYmxlLT5JMmNDb250cm9sbGVyc1tpXS5Db250cm9sbGVyUG9ydCk7CisJCXByX2luZm8oIiAgICAgICAgICAgICAgICAgICAuQ29udHJvbGxlck5hbWUgPSAlZFxuIiwKKwkJCQlwcHRhYmxlLT5JMmNDb250cm9sbGVyc1tpXS5Db250cm9sbGVyTmFtZSk7CisJCXByX2luZm8oIiAgICAgICAgICAgICAgICAgICAuVGhlcm1hbFRocm90dGxlciA9ICVkXG4iLAorCQkJCXBwdGFibGUtPkkyY0NvbnRyb2xsZXJzW2ldLlRoZXJtYWxUaHJvdHRlcik7CisJCXByX2luZm8oIiAgICAgICAgICAgICAgICAgICAuSTJjUHJvdG9jb2wgPSAlZFxuIiwKKwkJCQlwcHRhYmxlLT5JMmNDb250cm9sbGVyc1tpXS5JMmNQcm90b2NvbCk7CisJCXByX2luZm8oIiAgICAgICAgICAgICAgICAgICAuU3BlZWQgPSAlZFxuIiwKKwkJCQlwcHRhYmxlLT5JMmNDb250cm9sbGVyc1tpXS5TcGVlZCk7CisJfQorCisJcHJfaW5mbygiTWVtb3J5Q2hhbm5lbEVuYWJsZWQgPSAlZFxuIiwgcHB0YWJsZS0+TWVtb3J5Q2hhbm5lbEVuYWJsZWQpOworCXByX2luZm8oIkRyYW1CaXRXaWR0aCA9ICVkXG4iLCBwcHRhYmxlLT5EcmFtQml0V2lkdGgpOworCisJcHJfaW5mbygiVG90YWxCb2FyZFBvd2VyID0gJWRcbiIsIHBwdGFibGUtPlRvdGFsQm9hcmRQb3dlcik7CisKKwlwcl9pbmZvKCJYZ21pTGlua1NwZWVkXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX1hHTUlfUFNUQVRFX0xFVkVMUzsgaSsrKQorCQlwcl9pbmZvKCIgIC5bJWRdID0gJWRcbiIsIGksIHBwdGFibGUtPlhnbWlMaW5rU3BlZWRbaV0pOworCXByX2luZm8oIlhnbWlMaW5rV2lkdGhcbiIpOworCWZvciAoaSA9IDA7IGkgPCBOVU1fWEdNSV9QU1RBVEVfTEVWRUxTOyBpKyspCisJCXByX2luZm8oIiAgLlslZF0gPSAlZFxuIiwgaSwgcHB0YWJsZS0+WGdtaUxpbmtXaWR0aFtpXSk7CisJcHJfaW5mbygiWGdtaUZjbGtGcmVxXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX1hHTUlfUFNUQVRFX0xFVkVMUzsgaSsrKQorCQlwcl9pbmZvKCIgIC5bJWRdID0gJWRcbiIsIGksIHBwdGFibGUtPlhnbWlGY2xrRnJlcVtpXSk7CisJcHJfaW5mbygiWGdtaVNvY1ZvbHRhZ2VcbiIpOworCWZvciAoaSA9IDA7IGkgPCBOVU1fWEdNSV9QU1RBVEVfTEVWRUxTOyBpKyspCisJCXByX2luZm8oIiAgLlslZF0gPSAlZFxuIiwgaSwgcHB0YWJsZS0+WGdtaVNvY1ZvbHRhZ2VbaV0pOworCit9CisKK3N0YXRpYyBib29sIGFyY3R1cnVzX2lzX2RwbV9ydW5uaW5nKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQoreworCWludCByZXQgPSAwOworCXVpbnQzMl90IGZlYXR1cmVfbWFza1syXTsKKwl1bnNpZ25lZCBsb25nIGZlYXR1cmVfZW5hYmxlZDsKKwlyZXQgPSBzbXVfZmVhdHVyZV9nZXRfZW5hYmxlZF9tYXNrKHNtdSwgZmVhdHVyZV9tYXNrLCAyKTsKKwlmZWF0dXJlX2VuYWJsZWQgPSAodW5zaWduZWQgbG9uZykoKHVpbnQ2NF90KWZlYXR1cmVfbWFza1swXSB8CisJCQkgICAoKHVpbnQ2NF90KWZlYXR1cmVfbWFza1sxXSA8PCAzMikpOworCXJldHVybiAhIShmZWF0dXJlX2VuYWJsZWQgJiBTTUNfRFBNX0ZFQVRVUkUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHBwdGFibGVfZnVuY3MgYXJjdHVydXNfcHB0X2Z1bmNzID0geworCS8qIHRyYW5zbGF0ZSBzbXUgaW5kZXggaW50byBhcmN0dXJ1cyBzcGVjaWZpYyBpbmRleCAqLworCS5nZXRfc211X21zZ19pbmRleCA9IGFyY3R1cnVzX2dldF9zbXVfbXNnX2luZGV4LAorCS5nZXRfc211X2Nsa19pbmRleCA9IGFyY3R1cnVzX2dldF9zbXVfY2xrX2luZGV4LAorCS5nZXRfc211X2ZlYXR1cmVfaW5kZXggPSBhcmN0dXJ1c19nZXRfc211X2ZlYXR1cmVfaW5kZXgsCisJLmdldF9zbXVfdGFibGVfaW5kZXggPSBhcmN0dXJ1c19nZXRfc211X3RhYmxlX2luZGV4LAorCS5nZXRfc211X3Bvd2VyX2luZGV4PSBhcmN0dXJ1c19nZXRfcHdyX3NyY19pbmRleCwKKwkuZ2V0X3dvcmtsb2FkX3R5cGUgPSBhcmN0dXJ1c19nZXRfd29ya2xvYWRfdHlwZSwKKwkvKiBpbnRlcm5hbCBzdHJ1Y3R1cnMgYWxsb2NhdGlvbnMgKi8KKwkudGFibGVzX2luaXQgPSBhcmN0dXJ1c190YWJsZXNfaW5pdCwKKwkuYWxsb2NfZHBtX2NvbnRleHQgPSBhcmN0dXJ1c19hbGxvY2F0ZV9kcG1fY29udGV4dCwKKwkvKiBwcHRhYmxlIHJlbGF0ZWQgKi8KKwkuY2hlY2tfcG93ZXJwbGF5X3RhYmxlID0gYXJjdHVydXNfY2hlY2tfcG93ZXJwbGF5X3RhYmxlLAorCS5zdG9yZV9wb3dlcnBsYXlfdGFibGUgPSBhcmN0dXJ1c19zdG9yZV9wb3dlcnBsYXlfdGFibGUsCisJLmFwcGVuZF9wb3dlcnBsYXlfdGFibGUgPSBhcmN0dXJ1c19hcHBlbmRfcG93ZXJwbGF5X3RhYmxlLAorCS8qIGluaXQgZHBtICovCisJLmdldF9hbGxvd2VkX2ZlYXR1cmVfbWFzayA9IGFyY3R1cnVzX2dldF9hbGxvd2VkX2ZlYXR1cmVfbWFzaywKKwkvKiBidGMgKi8KKwkucnVuX2FmbGxfYnRjID0gYXJjdHVydXNfcnVuX2J0Y19hZmxsLAorCS8qIGRwbS9jbGsgdGFibGVzICovCisJLnNldF9kZWZhdWx0X2RwbV90YWJsZSA9IGFyY3R1cnVzX3NldF9kZWZhdWx0X2RwbV90YWJsZSwKKwkucG9wdWxhdGVfdW1kX3N0YXRlX2NsayA9IGFyY3R1cnVzX3BvcHVsYXRlX3VtZF9zdGF0ZV9jbGssCisJLmdldF90aGVybWFsX3RlbXBlcmF0dXJlX3JhbmdlID0gYXJjdHVydXNfZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2UsCisJLmdldF9jdXJyZW50X2Nsa19mcmVxX2J5X3RhYmxlID0gYXJjdHVydXNfZ2V0X2N1cnJlbnRfY2xrX2ZyZXFfYnlfdGFibGUsCisJLnByaW50X2Nsa19sZXZlbHMgPSBhcmN0dXJ1c19wcmludF9jbGtfbGV2ZWxzLAorCS5mb3JjZV9jbGtfbGV2ZWxzID0gYXJjdHVydXNfZm9yY2VfY2xrX2xldmVscywKKwkucmVhZF9zZW5zb3IgPSBhcmN0dXJ1c19yZWFkX3NlbnNvciwKKwkuZ2V0X2Zhbl9zcGVlZF9wZXJjZW50ID0gYXJjdHVydXNfZ2V0X2Zhbl9zcGVlZF9wZXJjZW50LAorCS5nZXRfZmFuX3NwZWVkX3JwbSA9IGFyY3R1cnVzX2dldF9mYW5fc3BlZWRfcnBtLAorCS5mb3JjZV9kcG1fbGltaXRfdmFsdWUgPSBhcmN0dXJ1c19mb3JjZV9kcG1fbGltaXRfdmFsdWUsCisJLnVuZm9yY2VfZHBtX2xldmVscyA9IGFyY3R1cnVzX3VuZm9yY2VfZHBtX2xldmVscywKKwkuZ2V0X3Byb2ZpbGluZ19jbGtfbWFzayA9IGFyY3R1cnVzX2dldF9wcm9maWxpbmdfY2xrX21hc2ssCisJLmdldF9wb3dlcl9wcm9maWxlX21vZGUgPSBhcmN0dXJ1c19nZXRfcG93ZXJfcHJvZmlsZV9tb2RlLAorCS5zZXRfcG93ZXJfcHJvZmlsZV9tb2RlID0gYXJjdHVydXNfc2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZSwKKwkvKiBkZWJ1ZyAoaW50ZXJuYWwgdXNlZCkgKi8KKwkuZHVtcF9wcHRhYmxlID0gYXJjdHVydXNfZHVtcF9wcHRhYmxlLAorCS5nZXRfcG93ZXJfbGltaXQgPSBhcmN0dXJ1c19nZXRfcG93ZXJfbGltaXQsCisJLmlzX2RwbV9ydW5uaW5nID0gYXJjdHVydXNfaXNfZHBtX3J1bm5pbmcsCit9OworCit2b2lkIGFyY3R1cnVzX3NldF9wcHRfZnVuY3Moc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCit7CisJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICpzbXVfdGFibGUgPSAmc211LT5zbXVfdGFibGU7CisKKwlzbXUtPnBwdF9mdW5jcyA9ICZhcmN0dXJ1c19wcHRfZnVuY3M7CisJc211X3RhYmxlLT50YWJsZV9jb3VudCA9IFRBQkxFX0NPVU5UOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYXJjdHVydXNfcHB0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hcmN0dXJ1c19wcHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzU2YjE2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYXJjdHVydXNfcHB0LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKyNpZm5kZWYgX19BUkNUVVJVU19QUFRfSF9fCisjZGVmaW5lIF9fQVJDVFVSVVNfUFBUX0hfXworCisjZGVmaW5lIEFSQ1RVUlVTX1VNRF9QU1RBVEVfR0ZYQ0xLX0xFVkVMICAgICAgICAgMHgzCisjZGVmaW5lIEFSQ1RVUlVTX1VNRF9QU1RBVEVfU09DQ0xLX0xFVkVMICAgICAgICAgMHgzCisjZGVmaW5lIEFSQ1RVUlVTX1VNRF9QU1RBVEVfTUNMS19MRVZFTCAgICAgICAgICAgMHgyCisKKyNkZWZpbmUgTUFYX0RQTV9OVU1CRVIgMTYKKyNkZWZpbmUgTUFYX1BDSUVfQ09ORiAyCisKK3N0cnVjdCBhcmN0dXJ1c19kcG1fbGV2ZWwgeworICAgICAgICBib29sICAgICAgICAgICAgZW5hYmxlZDsKKyAgICAgICAgdWludDMyX3QgICAgICAgIHZhbHVlOworICAgICAgICB1aW50MzJfdCAgICAgICAgcGFyYW0xOworfTsKKworc3RydWN0IGFyY3R1cnVzX2RwbV9zdGF0ZSB7CisgICAgICAgIHVpbnQzMl90ICBzb2Z0X21pbl9sZXZlbDsKKyAgICAgICAgdWludDMyX3QgIHNvZnRfbWF4X2xldmVsOworICAgICAgICB1aW50MzJfdCAgaGFyZF9taW5fbGV2ZWw7CisgICAgICAgIHVpbnQzMl90ICBoYXJkX21heF9sZXZlbDsKK307CisKK3N0cnVjdCBhcmN0dXJ1c19zaW5nbGVfZHBtX3RhYmxlIHsKKyAgICAgICAgdWludDMyX3QgICAgICAgICAgICAgICAgY291bnQ7CisgICAgICAgIHN0cnVjdCBhcmN0dXJ1c19kcG1fc3RhdGUgZHBtX3N0YXRlOworICAgICAgICBzdHJ1Y3QgYXJjdHVydXNfZHBtX2xldmVsIGRwbV9sZXZlbHNbTUFYX0RQTV9OVU1CRVJdOworfTsKKworc3RydWN0IGFyY3R1cnVzX3BjaWVfdGFibGUgeworICAgICAgICB1aW50MTZfdCBjb3VudDsKKyAgICAgICAgdWludDhfdCAgcGNpZV9nZW5bTUFYX1BDSUVfQ09ORl07CisgICAgICAgIHVpbnQ4X3QgIHBjaWVfbGFuZVtNQVhfUENJRV9DT05GXTsKKyAgICAgICAgdWludDMyX3QgbGNsa1tNQVhfUENJRV9DT05GXTsKK307CisKK3N0cnVjdCBhcmN0dXJ1c19kcG1fdGFibGUgeworICAgICAgICBzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAgc29jX3RhYmxlOworICAgICAgICBzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAgZ2Z4X3RhYmxlOworICAgICAgICBzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAgbWVtX3RhYmxlOworICAgICAgICBzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAgZWNsa190YWJsZTsKKyAgICAgICAgc3RydWN0IGFyY3R1cnVzX3NpbmdsZV9kcG1fdGFibGUgIHZjbGtfdGFibGU7CisgICAgICAgIHN0cnVjdCBhcmN0dXJ1c19zaW5nbGVfZHBtX3RhYmxlICBkY2xrX3RhYmxlOworICAgICAgICBzdHJ1Y3QgYXJjdHVydXNfc2luZ2xlX2RwbV90YWJsZSAgZmNsa190YWJsZTsKKyAgICAgICAgc3RydWN0IGFyY3R1cnVzX3BjaWVfdGFibGUgICAgICAgIHBjaWVfdGFibGU7Cit9OworCitleHRlcm4gdm9pZCBhcmN0dXJ1c19zZXRfcHB0X2Z1bmNzKHN0cnVjdCBzbXVfY29udGV4dCAqc211KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXUxMF9od21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211MTBfaHdtZ3IuYwppbmRleCAxOGU3ODBmLi4xMTE1NzYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXUxMF9od21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTEwX2h3bWdyLmMKQEAgLTEzMTEsNiArMTMxMSwxMiBAQCBzdGF0aWMgaW50IHNtdTEwX3NldF9wb3dlcl9wcm9maWxlX21vZGUoc3RydWN0IHBwX2h3bWdyICpod21nciwgbG9uZyAqaW5wdXQsIHVpbgogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHNtdTEwX2FzaWNfcmVzZXQoc3RydWN0IHBwX2h3bWdyICpod21nciwgZW51bSBTTVVfQVNJQ19SRVNFVF9NT0RFIG1vZGUpCit7CisJcmV0dXJuIHNtdW1fc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyKGh3bWdyLAorCQkJCQkJICAgUFBTTUNfTVNHX0RldmljZURyaXZlclJlc2V0LAorCQkJCQkJICAgbW9kZSk7Cit9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHBfaHdtZ3JfZnVuYyBzbXUxMF9od21ncl9mdW5jcyA9IHsKIAkuYmFja2VuZF9pbml0ID0gc211MTBfaHdtZ3JfYmFja2VuZF9pbml0LApAQCAtMTM1NSw2ICsxMzYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwcF9od21ncl9mdW5jIHNtdTEwX2h3bWdyX2Z1bmNzID0gewogCS5zZXRfaGFyZF9taW5fZmNsa19ieV9mcmVxID0gc211MTBfc2V0X2hhcmRfbWluX2ZjbGtfYnlfZnJlcSwKIAkuZ2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZSA9IHNtdTEwX2dldF9wb3dlcl9wcm9maWxlX21vZGUsCiAJLnNldF9wb3dlcl9wcm9maWxlX21vZGUgPSBzbXUxMF9zZXRfcG93ZXJfcHJvZmlsZV9tb2RlLAorCS5hc2ljX3Jlc2V0ID0gc211MTBfYXNpY19yZXNldCwKIH07CiAKIGludCBzbXUxMF9pbml0X2Z1bmN0aW9uX3BvaW50ZXJzKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXU3X2h3bWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXU3X2h3bWdyLmMKaW5kZXggNDg3YWVlZS4uMzRmOTVlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19od21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdfaHdtZ3IuYwpAQCAtMjk1Niw5ICsyOTU2LDEwIEBAIHN0YXRpYyBpbnQgc211N19hcHBseV9zdGF0ZV9hZGp1c3RfcnVsZXMoc3RydWN0IHBwX2h3bWdyICpod21nciwKIAlpZiAoaHdtZ3ItPmRpc3BsYXlfY29uZmlnLT5udW1fZGlzcGxheSA9PSAwKQogCQlkaXNhYmxlX21jbGtfc3dpdGNoaW5nID0gZmFsc2U7CiAJZWxzZQotCQlkaXNhYmxlX21jbGtfc3dpdGNoaW5nID0gKCgxIDwgaHdtZ3ItPmRpc3BsYXlfY29uZmlnLT5udW1fZGlzcGxheSkgfHwKLQkJCQkJICBkaXNhYmxlX21jbGtfc3dpdGNoaW5nX2Zvcl9mcmFtZV9sb2NrIHx8Ci0JCQkJCSAgc211N192YmxhbmtfdG9vX3Nob3J0KGh3bWdyLCBod21nci0+ZGlzcGxheV9jb25maWctPm1pbl92YmxhbmtfdGltZSkpOworCQlkaXNhYmxlX21jbGtfc3dpdGNoaW5nID0gKCgxIDwgaHdtZ3ItPmRpc3BsYXlfY29uZmlnLT5udW1fZGlzcGxheSkgJiYKKwkJCQkJICAhaHdtZ3ItPmRpc3BsYXlfY29uZmlnLT5tdWx0aV9tb25pdG9yX2luX3N5bmMpIHx8CisJCQlkaXNhYmxlX21jbGtfc3dpdGNoaW5nX2Zvcl9mcmFtZV9sb2NrIHx8CisJCQlzbXU3X3ZibGFua190b29fc2hvcnQoaHdtZ3IsIGh3bWdyLT5kaXNwbGF5X2NvbmZpZy0+bWluX3ZibGFua190aW1lKTsKIAogCXNjbGsgPSBzbXU3X3BzLT5wZXJmb3JtYW5jZV9sZXZlbHNbMF0uZW5naW5lX2Nsb2NrOwogCW1jbGsgPSBzbXU3X3BzLT5wZXJmb3JtYW5jZV9sZXZlbHNbMF0ubWVtb3J5X2Nsb2NrOwpAQCAtNDA2OCw2ICs0MDY5LDExIEBAIHN0YXRpYyBpbnQgc211N19wcm9ncmFtX2Rpc3BsYXlfZ2FwKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCiAKIAlkYXRhLT5mcmFtZV90aW1lX3gyID0gZnJhbWVfdGltZV9pbl91cyAqIDIgLyAxMDA7CiAKKwlpZiAoZGF0YS0+ZnJhbWVfdGltZV94MiA8IDI4MCkgeworCQlwcl9kZWJ1ZygiJXM6IGVuZm9yY2UgbWluaW1hbCBWQklUaW1lb3V0OiAlZCAtPiAyODBcbiIsIF9fZnVuY19fLCBkYXRhLT5mcmFtZV90aW1lX3gyKTsKKwkJZGF0YS0+ZnJhbWVfdGltZV94MiA9IDI4MDsKKwl9CisKIAlkaXNwbGF5X2dhcDIgPSBwcmVfdmJpX3RpbWVfaW5fdXMgKiAocmVmX2Nsb2NrIC8gMTAwKTsKIAogCWNnc193cml0ZV9pbmRfcmVnaXN0ZXIoaHdtZ3ItPmRldmljZSwgQ0dTX0lORF9SRUdfX1NNQywgaXhDR19ESVNQTEFZX0dBUF9DTlRMMiwgZGlzcGxheV9nYXAyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMKaW5kZXggM2JlOGViMi4uZDA4NDkzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMKQEAgLTMyMjAsNyArMzIyMCw4IEBAIHN0YXRpYyBpbnQgdmVnYTEwX2FwcGx5X3N0YXRlX2FkanVzdF9ydWxlcyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCWlmIChod21nci0+ZGlzcGxheV9jb25maWctPm51bV9kaXNwbGF5ID09IDApCiAJCWRpc2FibGVfbWNsa19zd2l0Y2hpbmcgPSBmYWxzZTsKIAllbHNlCi0JCWRpc2FibGVfbWNsa19zd2l0Y2hpbmcgPSAoaHdtZ3ItPmRpc3BsYXlfY29uZmlnLT5udW1fZGlzcGxheSA+IDEpIHx8CisJCWRpc2FibGVfbWNsa19zd2l0Y2hpbmcgPSAoKDEgPCBod21nci0+ZGlzcGxheV9jb25maWctPm51bV9kaXNwbGF5KSAmJgorCQkJCQkgICFod21nci0+ZGlzcGxheV9jb25maWctPm11bHRpX21vbml0b3JfaW5fc3luYykgfHwKIAkJCWRpc2FibGVfbWNsa19zd2l0Y2hpbmdfZm9yX2ZyYW1lX2xvY2sgfHwKIAkJCWRpc2FibGVfbWNsa19zd2l0Y2hpbmdfZm9yX3ZyIHx8CiAJCQlmb3JjZV9tY2xrX2hpZ2g7CkBAIC01MjE5LDYgKzUyMjAsMzAgQEAgc3RhdGljIGludCB2ZWdhMTBfb2RuX2VkaXRfZHBtX3RhYmxlKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgdmVnYTEwX3NldF9tcDFfc3RhdGUoc3RydWN0IHBwX2h3bWdyICpod21nciwKKwkJCQllbnVtIHBwX21wMV9zdGF0ZSBtcDFfc3RhdGUpCit7CisJdWludDE2X3QgbXNnOworCWludCByZXQ7CisKKwlzd2l0Y2ggKG1wMV9zdGF0ZSkgeworCWNhc2UgUFBfTVAxX1NUQVRFX1VOTE9BRDoKKwkJbXNnID0gUFBTTUNfTVNHX1ByZXBhcmVNcDFGb3JVbmxvYWQ7CisJCWJyZWFrOworCWNhc2UgUFBfTVAxX1NUQVRFX1NIVVRET1dOOgorCWNhc2UgUFBfTVAxX1NUQVRFX1JFU0VUOgorCWNhc2UgUFBfTVAxX1NUQVRFX05PTkU6CisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CisJfQorCisJUFBfQVNTRVJUX1dJVEhfQ09ERSgocmV0ID0gc211bV9zZW5kX21zZ190b19zbWMoaHdtZ3IsIG1zZykpID09IDAsCisJCQkgICAgIltQcmVwYXJlTXAxXSBGYWlsZWQhIiwKKwkJCSAgICByZXR1cm4gcmV0KTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHZlZ2ExMF9nZXRfcGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21nciwgY29uc3Qgc3RydWN0IHBwX2h3X3Bvd2VyX3N0YXRlICpzdGF0ZSwKIAkJCQlQSE1fUGVyZm9ybWFuY2VMZXZlbERlc2lnbmF0aW9uIGRlc2lnbmF0aW9uLCB1aW50MzJfdCBpbmRleCwKIAkJCQlQSE1fUGVyZm9ybWFuY2VMZXZlbCAqbGV2ZWwpCkBAIC01MzA4LDYgKzUzMzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBwX2h3bWdyX2Z1bmMgdmVnYTEwX2h3bWdyX2Z1bmNzID0gewogCS5lbmFibGVfbWdwdV9mYW5fYm9vc3QgPSB2ZWdhMTBfZW5hYmxlX21ncHVfZmFuX2Jvb3N0LAogCS5nZXRfcHBmZWF0dXJlX3N0YXR1cyA9IHZlZ2ExMF9nZXRfcHBmZWF0dXJlX3N0YXR1cywKIAkuc2V0X3BwZmVhdHVyZV9zdGF0dXMgPSB2ZWdhMTBfc2V0X3BwZmVhdHVyZV9zdGF0dXMsCisJLnNldF9tcDFfc3RhdGUgPSB2ZWdhMTBfc2V0X21wMV9zdGF0ZSwKIH07CiAKIGludCB2ZWdhMTBfaHdtZ3JfaW5pdChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEyX2h3bWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTJfaHdtZ3IuYwppbmRleCBlZmI2ZDM3Li43YWY5YWQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTJfaHdtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTJfaHdtZ3IuYwpAQCAtMjYzOSw2ICsyNjM5LDMwIEBAIHN0YXRpYyBpbnQgdmVnYTEyX2dldF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBjb25zdCBzdHJ1Y3QgcHBfCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgdmVnYTEyX3NldF9tcDFfc3RhdGUoc3RydWN0IHBwX2h3bWdyICpod21nciwKKwkJCQllbnVtIHBwX21wMV9zdGF0ZSBtcDFfc3RhdGUpCit7CisJdWludDE2X3QgbXNnOworCWludCByZXQ7CisKKwlzd2l0Y2ggKG1wMV9zdGF0ZSkgeworCWNhc2UgUFBfTVAxX1NUQVRFX1VOTE9BRDoKKwkJbXNnID0gUFBTTUNfTVNHX1ByZXBhcmVNcDFGb3JVbmxvYWQ7CisJCWJyZWFrOworCWNhc2UgUFBfTVAxX1NUQVRFX1NIVVRET1dOOgorCWNhc2UgUFBfTVAxX1NUQVRFX1JFU0VUOgorCWNhc2UgUFBfTVAxX1NUQVRFX05PTkU6CisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CisJfQorCisJUFBfQVNTRVJUX1dJVEhfQ09ERSgocmV0ID0gc211bV9zZW5kX21zZ190b19zbWMoaHdtZ3IsIG1zZykpID09IDAsCisJCQkgICAgIltQcmVwYXJlTXAxXSBGYWlsZWQhIiwKKwkJCSAgICByZXR1cm4gcmV0KTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBwX2h3bWdyX2Z1bmMgdmVnYTEyX2h3bWdyX2Z1bmNzID0gewogCS5iYWNrZW5kX2luaXQgPSB2ZWdhMTJfaHdtZ3JfYmFja2VuZF9pbml0LAogCS5iYWNrZW5kX2ZpbmkgPSB2ZWdhMTJfaHdtZ3JfYmFja2VuZF9maW5pLApAQCAtMjY5NSw3ICsyNzE5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwcF9od21ncl9mdW5jIHZlZ2ExMl9od21ncl9mdW5jcyA9IHsKIAkuc2V0X2FzaWNfYmFjb19zdGF0ZSA9IHZlZ2ExMl9iYWNvX3NldF9zdGF0ZSwKIAkuZ2V0X3BwZmVhdHVyZV9zdGF0dXMgPSB2ZWdhMTJfZ2V0X3BwZmVhdHVyZV9zdGF0dXMsCiAJLnNldF9wcGZlYXR1cmVfc3RhdHVzID0gdmVnYTEyX3NldF9wcGZlYXR1cmVfc3RhdHVzLAotCisJLnNldF9tcDFfc3RhdGUgPSB2ZWdhMTJfc2V0X21wMV9zdGF0ZSwKIH07CiAKIGludCB2ZWdhMTJfaHdtZ3JfaW5pdChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTIwX2h3bWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMjBfaHdtZ3IuYwppbmRleCA5MGM0ZTg3Li5mNTkxNTMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMjBfaHdtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMjBfaHdtZ3IuYwpAQCAtMzExNSw2ICszMTE1LDM0IEBAIHN0YXRpYyBpbnQgdmVnYTIwX29kbl9lZGl0X2RwbV90YWJsZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHZlZ2EyMF9zZXRfbXAxX3N0YXRlKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCisJCQkJZW51bSBwcF9tcDFfc3RhdGUgbXAxX3N0YXRlKQoreworCXVpbnQxNl90IG1zZzsKKwlpbnQgcmV0OworCisJc3dpdGNoIChtcDFfc3RhdGUpIHsKKwljYXNlIFBQX01QMV9TVEFURV9TSFVURE9XTjoKKwkJbXNnID0gUFBTTUNfTVNHX1ByZXBhcmVNcDFGb3JTaHV0ZG93bjsKKwkJYnJlYWs7CisJY2FzZSBQUF9NUDFfU1RBVEVfVU5MT0FEOgorCQltc2cgPSBQUFNNQ19NU0dfUHJlcGFyZU1wMUZvclVubG9hZDsKKwkJYnJlYWs7CisJY2FzZSBQUF9NUDFfU1RBVEVfUkVTRVQ6CisJCW1zZyA9IFBQU01DX01TR19QcmVwYXJlTXAxRm9yUmVzZXQ7CisJCWJyZWFrOworCWNhc2UgUFBfTVAxX1NUQVRFX05PTkU6CisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CisJfQorCisJUFBfQVNTRVJUX1dJVEhfQ09ERSgocmV0ID0gc211bV9zZW5kX21zZ190b19zbWMoaHdtZ3IsIG1zZykpID09IDAsCisJCQkgICAgIltQcmVwYXJlTXAxXSBGYWlsZWQhIiwKKwkJCSAgICByZXR1cm4gcmV0KTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHZlZ2EyMF9nZXRfcHBmZWF0dXJlX3N0YXR1cyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBjaGFyICpidWYpCiB7CiAJc3RhdGljIGNvbnN0IGNoYXIgKnBwZmVhdHVyZV9uYW1lW10gPSB7CkBAIC00MTA5LDYgKzQxMzcsMjQgQEAgc3RhdGljIGludCB2ZWdhMjBfZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2Uoc3RydWN0IHBwX2h3bWdyICpod21nciwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCB2ZWdhMjBfc211X2kyY19idXNfYWNjZXNzKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIGJvb2wgYWNxdWlyZSkKK3sKKwlpbnQgcmVzOworCisJLyogSTJDIGJ1cyBhY2Nlc3MgY2FuIGhhcHBlbiB2ZXJ5IGVhcmx5LCB3aGVuIFNNVSBub3QgbG9hZGVkIHlldCAqLworCWlmICghdmVnYTIwX2lzX3NtY19yYW1fcnVubmluZyhod21ncikpCisJCXJldHVybiAwOworCisJcmVzID0gc211bV9zZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0ZXIoaHdtZ3IsCisJCQkJCQkgIChhY3F1aXJlID8KKwkJCQkJCSAgUFBTTUNfTVNHX1JlcXVlc3RJMkNCdXMgOgorCQkJCQkJICBQUFNNQ19NU0dfUmVsZWFzZUkyQ0J1cyksCisJCQkJCQkgIDApOworCisJUFBfQVNTRVJUX1dJVEhfQ09ERSghcmVzLCAiW1NtdUkyQ0FjY2Vzc0J1c10gRmFpbGVkIHRvIGFjY2VzcyBidXMhIiwgcmV0dXJuIHJlcyk7CisJcmV0dXJuIHJlczsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBwcF9od21ncl9mdW5jIHZlZ2EyMF9od21ncl9mdW5jcyA9IHsKIAkvKiBpbml0L2ZpbmkgcmVsYXRlZCAqLwogCS5iYWNrZW5kX2luaXQgPSB2ZWdhMjBfaHdtZ3JfYmFja2VuZF9pbml0LApAQCAtNDE3NSw2ICs0MjIxLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwcF9od21ncl9mdW5jIHZlZ2EyMF9od21ncl9mdW5jcyA9IHsKIAkuZ2V0X2FzaWNfYmFjb19jYXBhYmlsaXR5ID0gdmVnYTIwX2JhY29fZ2V0X2NhcGFiaWxpdHksCiAJLmdldF9hc2ljX2JhY29fc3RhdGUgPSB2ZWdhMjBfYmFjb19nZXRfc3RhdGUsCiAJLnNldF9hc2ljX2JhY29fc3RhdGUgPSB2ZWdhMjBfYmFjb19zZXRfc3RhdGUsCisJLnNldF9tcDFfc3RhdGUgPSB2ZWdhMjBfc2V0X21wMV9zdGF0ZSwKKwkuc211X2kyY19idXNfYWNjZXNzID0gdmVnYTIwX3NtdV9pMmNfYnVzX2FjY2VzcywKIH07CiAKIGludCB2ZWdhMjBfaHdtZ3JfaW5pdChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2FtZGdwdV9zbXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hbWRncHVfc211LmgKaW5kZXggYTc4YjJlMjkuLjYxMDk4MTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hbWRncHVfc211LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2FtZGdwdV9zbXUuaApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImtnZF9wcF9pbnRlcmZhY2UuaCIKICNpbmNsdWRlICJkbV9wcF9pbnRlcmZhY2UuaCIKICNpbmNsdWRlICJkbV9wcF9zbXUuaCIKKyNpbmNsdWRlICJzbXVfdHlwZXMuaCIKIAogI2RlZmluZSBTTVVfVEhFUk1BTF9NSU5JTVVNX0FMRVJUX1RFTVAJCTAKICNkZWZpbmUgU01VX1RIRVJNQUxfTUFYSU1VTV9BTEVSVF9URU1QCQkyNTUKQEAgLTE1MCwxMjQgKzE1MSw2IEBAIHN0cnVjdCBzbXVfcG93ZXJfc3RhdGUgewogCXN0cnVjdCBzbXVfaHdfcG93ZXJfc3RhdGUgICAgICAgICAgICAgICAgICAgICBoYXJkd2FyZTsKIH07CiAKLWVudW0gc211X21lc3NhZ2VfdHlwZQotewotCVNNVV9NU0dfVGVzdE1lc3NhZ2UgPSAwLAotCVNNVV9NU0dfR2V0U211VmVyc2lvbiwKLQlTTVVfTVNHX0dldERyaXZlcklmVmVyc2lvbiwKLQlTTVVfTVNHX1NldEFsbG93ZWRGZWF0dXJlc01hc2tMb3csCi0JU01VX01TR19TZXRBbGxvd2VkRmVhdHVyZXNNYXNrSGlnaCwKLQlTTVVfTVNHX0VuYWJsZUFsbFNtdUZlYXR1cmVzLAotCVNNVV9NU0dfRGlzYWJsZUFsbFNtdUZlYXR1cmVzLAotCVNNVV9NU0dfRW5hYmxlU211RmVhdHVyZXNMb3csCi0JU01VX01TR19FbmFibGVTbXVGZWF0dXJlc0hpZ2gsCi0JU01VX01TR19EaXNhYmxlU211RmVhdHVyZXNMb3csCi0JU01VX01TR19EaXNhYmxlU211RmVhdHVyZXNIaWdoLAotCVNNVV9NU0dfR2V0RW5hYmxlZFNtdUZlYXR1cmVzTG93LAotCVNNVV9NU0dfR2V0RW5hYmxlZFNtdUZlYXR1cmVzSGlnaCwKLQlTTVVfTVNHX1NldFdvcmtsb2FkTWFzaywKLQlTTVVfTVNHX1NldFBwdExpbWl0LAotCVNNVV9NU0dfU2V0RHJpdmVyRHJhbUFkZHJIaWdoLAotCVNNVV9NU0dfU2V0RHJpdmVyRHJhbUFkZHJMb3csCi0JU01VX01TR19TZXRUb29sc0RyYW1BZGRySGlnaCwKLQlTTVVfTVNHX1NldFRvb2xzRHJhbUFkZHJMb3csCi0JU01VX01TR19UcmFuc2ZlclRhYmxlU211MkRyYW0sCi0JU01VX01TR19UcmFuc2ZlclRhYmxlRHJhbTJTbXUsCi0JU01VX01TR19Vc2VEZWZhdWx0UFBUYWJsZSwKLQlTTVVfTVNHX1VzZUJhY2t1cFBQVGFibGUsCi0JU01VX01TR19SdW5CdGMsCi0JU01VX01TR19SZXF1ZXN0STJDQnVzLAotCVNNVV9NU0dfUmVsZWFzZUkyQ0J1cywKLQlTTVVfTVNHX1NldEZsb29yU29jVm9sdGFnZSwKLQlTTVVfTVNHX1NvZnRSZXNldCwKLQlTTVVfTVNHX1N0YXJ0QmFjb01vbml0b3IsCi0JU01VX01TR19DYW5jZWxCYWNvTW9uaXRvciwKLQlTTVVfTVNHX0VudGVyQmFjbywKLQlTTVVfTVNHX1NldFNvZnRNaW5CeUZyZXEsCi0JU01VX01TR19TZXRTb2Z0TWF4QnlGcmVxLAotCVNNVV9NU0dfU2V0SGFyZE1pbkJ5RnJlcSwKLQlTTVVfTVNHX1NldEhhcmRNYXhCeUZyZXEsCi0JU01VX01TR19HZXRNaW5EcG1GcmVxLAotCVNNVV9NU0dfR2V0TWF4RHBtRnJlcSwKLQlTTVVfTVNHX0dldERwbUZyZXFCeUluZGV4LAotCVNNVV9NU0dfR2V0RHBtQ2xvY2tGcmVxLAotCVNNVV9NU0dfR2V0U3NWb2x0YWdlQnlEcG0sCi0JU01VX01TR19TZXRNZW1vcnlDaGFubmVsQ29uZmlnLAotCVNNVV9NU0dfU2V0R2VtaW5pTW9kZSwKLQlTTVVfTVNHX1NldEdlbWluaUFwZXJ0dXJlSGlnaCwKLQlTTVVfTVNHX1NldEdlbWluaUFwZXJ0dXJlTG93LAotCVNNVV9NU0dfU2V0TWluTGlua0RwbUJ5SW5kZXgsCi0JU01VX01TR19PdmVycmlkZVBjaWVQYXJhbWV0ZXJzLAotCVNNVV9NU0dfT3ZlckRyaXZlU2V0UGVyY2VudGFnZSwKLQlTTVVfTVNHX1NldE1pbkRlZXBTbGVlcERjZWZjbGssCi0JU01VX01TR19SZWVuYWJsZUFjRGNJbnRlcnJ1cHQsCi0JU01VX01TR19Ob3RpZnlQb3dlclNvdXJjZSwKLQlTTVVfTVNHX1NldFVjbGtGYXN0U3dpdGNoLAotCVNNVV9NU0dfU2V0VWNsa0Rvd25IeXN0LAotCVNNVV9NU0dfR2Z4RGV2aWNlRHJpdmVyUmVzZXQsCi0JU01VX01TR19HZXRDdXJyZW50UnBtLAotCVNNVV9NU0dfU2V0VmlkZW9GcHMsCi0JU01VX01TR19TZXRUak1heCwKLQlTTVVfTVNHX1NldEZhblRlbXBlcmF0dXJlVGFyZ2V0LAotCVNNVV9NU0dfUHJlcGFyZU1wMUZvclVubG9hZCwKLQlTTVVfTVNHX0RyYW1Mb2dTZXREcmFtQWRkckhpZ2gsCi0JU01VX01TR19EcmFtTG9nU2V0RHJhbUFkZHJMb3csCi0JU01VX01TR19EcmFtTG9nU2V0RHJhbVNpemUsCi0JU01VX01TR19TZXRGYW5NYXhScG0sCi0JU01VX01TR19TZXRGYW5NaW5Qd20sCi0JU01VX01TR19Db25maWd1cmVHZnhEaWR0LAotCVNNVV9NU0dfTnVtT2ZEaXNwbGF5cywKLQlTTVVfTVNHX1JlbW92ZU1hcmdpbnMsCi0JU01VX01TR19SZWFkU2VyaWFsTnVtVG9wMzIsCi0JU01VX01TR19SZWFkU2VyaWFsTnVtQm90dG9tMzIsCi0JU01VX01TR19TZXRTeXN0ZW1WaXJ0dWFsRHJhbUFkZHJIaWdoLAotCVNNVV9NU0dfU2V0U3lzdGVtVmlydHVhbERyYW1BZGRyTG93LAotCVNNVV9NU0dfV2FmbFRlc3QsCi0JU01VX01TR19TZXRGY2xrR2Z4Q2xrUmF0aW8sCi0JU01VX01TR19BbGxvd0dmeE9mZiwKLQlTTVVfTVNHX0Rpc2FsbG93R2Z4T2ZmLAotCVNNVV9NU0dfR2V0UHB0TGltaXQsCi0JU01VX01TR19HZXREY01vZGVNYXhEcG1GcmVxLAotCVNNVV9NU0dfR2V0RGVidWdEYXRhLAotCVNNVV9NU0dfU2V0WGdtaU1vZGUsCi0JU01VX01TR19SdW5BZmxsQnRjLAotCVNNVV9NU0dfRXhpdEJhY28sCi0JU01VX01TR19QcmVwYXJlTXAxRm9yUmVzZXQsCi0JU01VX01TR19QcmVwYXJlTXAxRm9yU2h1dGRvd24sCi0JU01VX01TR19TZXRNR3B1RmFuQm9vc3RMaW1pdFJwbSwKLQlTTVVfTVNHX0dldEFWRlNWb2x0YWdlQnlEcG0sCi0JU01VX01TR19Qb3dlclVwVmNuLAotCVNNVV9NU0dfUG93ZXJEb3duVmNuLAotCVNNVV9NU0dfUG93ZXJVcEpwZWcsCi0JU01VX01TR19Qb3dlckRvd25KcGVnLAotCVNNVV9NU0dfQmFjb0F1ZGlvRDNQTUUsCi0JU01VX01TR19Bcm1EMywKLQlTTVVfTVNHX01BWF9DT1VOVCwKLX07Ci0KLWVudW0gc211X2Nsa190eXBlCi17Ci0JU01VX0dGWENMSywKLQlTTVVfVkNMSywKLQlTTVVfRENMSywKLQlTTVVfRUNMSywKLQlTTVVfU09DQ0xLLAotCVNNVV9VQ0xLLAotCVNNVV9EQ0VGQ0xLLAotCVNNVV9ESVNQQ0xLLAotCVNNVV9QSVhDTEssCi0JU01VX1BIWUNMSywKLQlTTVVfRkNMSywKLQlTTVVfU0NMSywKLQlTTVVfTUNMSywKLQlTTVVfUENJRSwKLQlTTVVfT0RfU0NMSywKLQlTTVVfT0RfTUNMSywKLQlTTVVfT0RfVkREQ19DVVJWRSwKLQlTTVVfT0RfUkFOR0UsCi0JU01VX0NMS19DT1VOVCwKLX07Ci0KIGVudW0gc211X3Bvd2VyX3NyY190eXBlCiB7CiAJU01VX1BPV0VSX1NPVVJDRV9BQywKQEAgLTI3NSw2MyArMTU4LDYgQEAgZW51bSBzbXVfcG93ZXJfc3JjX3R5cGUKIAlTTVVfUE9XRVJfU09VUkNFX0NPVU5ULAogfTsKIAotZW51bSBzbXVfZmVhdHVyZV9tYXNrCi17Ci0JU01VX0ZFQVRVUkVfRFBNX1BSRUZFVENIRVJfQklULAotCVNNVV9GRUFUVVJFX0RQTV9HRlhDTEtfQklULAotCVNNVV9GRUFUVVJFX0RQTV9VQ0xLX0JJVCwKLQlTTVVfRkVBVFVSRV9EUE1fU09DQ0xLX0JJVCwKLQlTTVVfRkVBVFVSRV9EUE1fVVZEX0JJVCwKLQlTTVVfRkVBVFVSRV9EUE1fVkNFX0JJVCwKLQlTTVVfRkVBVFVSRV9VTFZfQklULAotCVNNVV9GRUFUVVJFX0RQTV9NUDBDTEtfQklULAotCVNNVV9GRUFUVVJFX0RQTV9MSU5LX0JJVCwKLQlTTVVfRkVBVFVSRV9EUE1fRENFRkNMS19CSVQsCi0JU01VX0ZFQVRVUkVfRFNfR0ZYQ0xLX0JJVCwKLQlTTVVfRkVBVFVSRV9EU19TT0NDTEtfQklULAotCVNNVV9GRUFUVVJFX0RTX0xDTEtfQklULAotCVNNVV9GRUFUVVJFX1BQVF9CSVQsCi0JU01VX0ZFQVRVUkVfVERDX0JJVCwKLQlTTVVfRkVBVFVSRV9USEVSTUFMX0JJVCwKLQlTTVVfRkVBVFVSRV9HRlhfUEVSX0NVX0NHX0JJVCwKLQlTTVVfRkVBVFVSRV9STV9CSVQsCi0JU01VX0ZFQVRVUkVfRFNfRENFRkNMS19CSVQsCi0JU01VX0ZFQVRVUkVfQUNEQ19CSVQsCi0JU01VX0ZFQVRVUkVfVlIwSE9UX0JJVCwKLQlTTVVfRkVBVFVSRV9WUjFIT1RfQklULAotCVNNVV9GRUFUVVJFX0ZXX0NURl9CSVQsCi0JU01VX0ZFQVRVUkVfTEVEX0RJU1BMQVlfQklULAotCVNNVV9GRUFUVVJFX0ZBTl9DT05UUk9MX0JJVCwKLQlTTVVfRkVBVFVSRV9HRlhfRURDX0JJVCwKLQlTTVVfRkVBVFVSRV9HRlhPRkZfQklULAotCVNNVV9GRUFUVVJFX0NHX0JJVCwKLQlTTVVfRkVBVFVSRV9EUE1fRkNMS19CSVQsCi0JU01VX0ZFQVRVUkVfRFNfRkNMS19CSVQsCi0JU01VX0ZFQVRVUkVfRFNfTVAxQ0xLX0JJVCwKLQlTTVVfRkVBVFVSRV9EU19NUDBDTEtfQklULAotCVNNVV9GRUFUVVJFX1hHTUlfQklULAotCVNNVV9GRUFUVVJFX0RQTV9HRlhfUEFDRV9CSVQsCi0JU01VX0ZFQVRVUkVfTUVNX1ZERENJX1NDQUxJTkdfQklULAotCVNNVV9GRUFUVVJFX01FTV9NVkREX1NDQUxJTkdfQklULAotCVNNVV9GRUFUVVJFX0RTX1VDTEtfQklULAotCVNNVV9GRUFUVVJFX0dGWF9VTFZfQklULAotCVNNVV9GRUFUVVJFX0ZXX0RTVEFURV9CSVQsCi0JU01VX0ZFQVRVUkVfQkFDT19CSVQsCi0JU01VX0ZFQVRVUkVfVkNOX1BHX0JJVCwKLQlTTVVfRkVBVFVSRV9KUEVHX1BHX0JJVCwKLQlTTVVfRkVBVFVSRV9VU0JfUEdfQklULAotCVNNVV9GRUFUVVJFX1JTTVVfU01OX0NHX0JJVCwKLQlTTVVfRkVBVFVSRV9BUENDX1BMVVNfQklULAotCVNNVV9GRUFUVVJFX0dUSFJfQklULAotCVNNVV9GRUFUVVJFX0dGWF9EQ1NfQklULAotCVNNVV9GRUFUVVJFX0dGWF9TU19CSVQsCi0JU01VX0ZFQVRVUkVfT1VUX09GX0JBTkRfTU9OSVRPUl9CSVQsCi0JU01VX0ZFQVRVUkVfVEVNUF9ERVBFTkRFTlRfVk1JTl9CSVQsCi0JU01VX0ZFQVRVUkVfTU1IVUJfUEdfQklULAotCVNNVV9GRUFUVVJFX0FUSFVCX1BHX0JJVCwKLQlTTVVfRkVBVFVSRV9DT1VOVCwKLX07Ci0KIGVudW0gc211X21lbW9yeV9wb29sX3NpemUKIHsKICAgICBTTVVfTUVNT1JZX1BPT0xfU0laRV9aRVJPICAgPSAwLApAQCAtMzk2LDEyICsyMjIsMTcgQEAgc3RydWN0IHNtdV9iaW9zX2Jvb3RfdXBfdmFsdWVzCiAJdWludDE2X3QJCQl2ZGRfZ2Z4OwogCXVpbnQ4X3QJCQkJY29vbGluZ19pZDsKIAl1aW50MzJfdAkJCXBwX3RhYmxlX2lkOworCXVpbnQzMl90CQkJZm9ybWF0X3JldmlzaW9uOworCXVpbnQzMl90CQkJY29udGVudF9yZXZpc2lvbjsKKwl1aW50MzJfdAkJCWZjbGs7CiB9OwogCiBlbnVtIHNtdV90YWJsZV9pZAogewogCVNNVV9UQUJMRV9QUFRBQkxFID0gMCwKIAlTTVVfVEFCTEVfV0FURVJNQVJLUywKKwlTTVVfVEFCTEVfQ1VTVE9NX0RQTSwKKwlTTVVfVEFCTEVfRFBNQ0xPQ0tTLAogCVNNVV9UQUJMRV9BVkZTLAogCVNNVV9UQUJMRV9BVkZTX1BTTV9ERUJVRywKIAlTTVVfVEFCTEVfQVZGU19GVVNFX09WRVJSSURFLApAQCAtNDIyLDYgKzI1Myw3IEBAIHN0cnVjdCBzbXVfdGFibGVfY29udGV4dAogCXZvaWQJCQkJKmhhcmRjb2RlX3BwdGFibGU7CiAJdW5zaWduZWQgbG9uZwkJCW1ldHJpY3NfdGltZTsKIAl2b2lkCQkJCSptZXRyaWNzX3RhYmxlOworCXZvaWQJCQkJKmNsb2Nrc190YWJsZTsKIAogCXZvaWQJCQkJKm1heF9zdXN0YWluYWJsZV9jbG9ja3M7CiAJc3RydWN0IHNtdV9iaW9zX2Jvb3RfdXBfdmFsdWVzCWJvb3RfdmFsdWVzOwpAQCAtNTQwLDYgKzM3Miw4IEBAIHN0cnVjdCBzbXVfY29udGV4dAogI2RlZmluZSBXQVRFUk1BUktTX0VYSVNUCSgxIDw8IDApCiAjZGVmaW5lIFdBVEVSTUFSS1NfTE9BREVECSgxIDw8IDEpCiAJdWludDMyX3Qgd2F0ZXJtYXJrc19iaXRtYXA7CisJdWludDMyX3QgaGFyZF9taW5fdWNsa19yZXFfZnJvbV9kYWw7CisJYm9vbCBkaXNhYmxlX3VjbGtfc3dpdGNoOwogCiAJdWludDMyX3Qgd29ya2xvYWRfbWFzazsKIAl1aW50MzJfdCB3b3JrbG9hZF9wcm9yaXR5W1dPUktMT0FEX1BPTElDWV9NQVhdOwpAQCAtNjA3LDggKzQ0MSw2IEBAIHN0cnVjdCBwcHRhYmxlX2Z1bmNzIHsKIAkJCQkgICAgICB1aW50MzJfdCAqbWNsa19tYXNrLAogCQkJCSAgICAgIHVpbnQzMl90ICpzb2NfbWFzayk7CiAJaW50ICgqc2V0X2NwdV9wb3dlcl9zdGF0ZSkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwotCWludCAoKnNldF9wcGZlYXR1cmVfc3RhdHVzKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDY0X3QgcHBmZWF0dXJlcyk7Ci0JaW50ICgqZ2V0X3BwZmVhdHVyZV9zdGF0dXMpKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBjaGFyICpidWYpOwogCWJvb2wgKCppc19kcG1fcnVubmluZykoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwogCWludCAoKnRhYmxlc19pbml0KShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgc3RydWN0IHNtdV90YWJsZSAqdGFibGVzKTsKIAlpbnQgKCpzZXRfdGhlcm1hbF9mYW5fdGFibGUpKHN0cnVjdCBzbXVfY29udGV4dCAqc211KTsKQEAgLTYyMyw2ICs0NTUsMTAgQEAgc3RydWN0IHBwdGFibGVfZnVuY3MgewogCWludCAoKmdldF91Y2xrX2RwbV9zdGF0ZXMpKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MzJfdCAqY2xvY2tzX2luX2toeiwgdWludDMyX3QgKm51bV9zdGF0ZXMpOwogCWludCAoKnNldF9kZWZhdWx0X29kX3NldHRpbmdzKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgYm9vbCBpbml0aWFsaXplKTsKIAlpbnQgKCpzZXRfcGVyZm9ybWFuY2VfbGV2ZWwpKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIGFtZF9kcG1fZm9yY2VkX2xldmVsIGxldmVsKTsKKwlpbnQgKCpkaXNwbGF5X2Rpc2FibGVfbWVtb3J5X2Nsb2NrX3N3aXRjaCkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGJvb2wgZGlzYWJsZV9tZW1vcnlfY2xvY2tfc3dpdGNoKTsKKwl2b2lkICgqZHVtcF9wcHRhYmxlKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSk7CisJaW50ICgqZ2V0X3Bvd2VyX2xpbWl0KShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgKmxpbWl0LCBib29sIGFzaWNfZGVmYXVsdCk7CisJaW50ICgqZ2V0X2RwbV91Y2xrX2xpbWl0ZWQpKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MzJfdCAqY2xvY2ssIGJvb2wgbWF4KTsKIH07CiAKIHN0cnVjdCBzbXVfZnVuY3MKQEAgLTYzOSw4ICs0NzUsMTEgQEAgc3RydWN0IHNtdV9mdW5jcwogCWludCAoKmdldF9jbGtfaW5mb19mcm9tX3ZiaW9zKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSk7CiAJaW50ICgqY2hlY2tfcHB0YWJsZSkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwogCWludCAoKnBhcnNlX3BwdGFibGUpKHN0cnVjdCBzbXVfY29udGV4dCAqc211KTsKLQlpbnQgKCpwb3B1bGF0ZV9zbWNfcHB0YWJsZSkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOworCWludCAoKnBvcHVsYXRlX3NtY190YWJsZXMpKHN0cnVjdCBzbXVfY29udGV4dCAqc211KTsKIAlpbnQgKCpjaGVja19md192ZXJzaW9uKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSk7CisJaW50ICgqcG93ZXJnYXRlX3NkbWEpKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBib29sIGdhdGUpOworCWludCAoKnBvd2VyZ2F0ZV92Y24pKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBib29sIGdhdGUpOworCWludCAoKnNldF9nZnhfY2dwZykoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGJvb2wgZW5hYmxlKTsKIAlpbnQgKCp3cml0ZV9wcHRhYmxlKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSk7CiAJaW50ICgqc2V0X21pbl9kY2VmX2RlZXBfc2xlZXApKHN0cnVjdCBzbXVfY29udGV4dCAqc211KTsKIAlpbnQgKCpzZXRfdG9vbF90YWJsZV9sb2NhdGlvbikoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwpAQCAtNjU0LDkgKzQ5Myw3IEBAIHN0cnVjdCBzbXVfZnVuY3MKIAlpbnQgKCppbml0X2Rpc3BsYXlfY291bnQpKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MzJfdCBjb3VudCk7CiAJaW50ICgqc2V0X2FsbG93ZWRfbWFzaykoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwogCWludCAoKmdldF9lbmFibGVkX21hc2spKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MzJfdCAqZmVhdHVyZV9tYXNrLCB1aW50MzJfdCBudW0pOwotCWludCAoKnVwZGF0ZV9mZWF0dXJlX2VuYWJsZV9zdGF0ZSkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQzMl90IGZlYXR1cmVfaWQsIGJvb2wgZW5hYmxlZCk7CiAJaW50ICgqbm90aWZ5X2Rpc3BsYXlfY2hhbmdlKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSk7Ci0JaW50ICgqZ2V0X3Bvd2VyX2xpbWl0KShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgKmxpbWl0LCBib29sIGRlZik7CiAJaW50ICgqc2V0X3Bvd2VyX2xpbWl0KShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3Qgbik7CiAJaW50ICgqZ2V0X2N1cnJlbnRfY2xrX2ZyZXEpKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIHNtdV9jbGtfdHlwZSBjbGtfaWQsIHVpbnQzMl90ICp2YWx1ZSk7CiAJaW50ICgqaW5pdF9tYXhfc3VzdGFpbmFibGVfY2xvY2tzKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSk7CkBAIC03MDAsNyArNTM3LDcgQEAgc3RydWN0IHNtdV9mdW5jcwogCWVudW0gc211X2JhY29fc3RhdGUgKCpiYWNvX2dldF9zdGF0ZSkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwogCWludCAoKmJhY29fc2V0X3N0YXRlKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfYmFjb19zdGF0ZSBzdGF0ZSk7CiAJaW50ICgqYmFjb19yZXNldCkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwotCisJaW50ICgqZ2V0X2RwbV91bHRpbWF0ZV9mcmVxKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfY2xrX3R5cGUgY2xrX3R5cGUsIHVpbnQzMl90ICptaW4sIHVpbnQzMl90ICptYXgpOwogfTsKIAogI2RlZmluZSBzbXVfaW5pdF9taWNyb2NvZGUoc211KSBcCkBAIC03MTksNiArNTU2LDEyIEBAIHN0cnVjdCBzbXVfZnVuY3MKIAkoKHNtdSktPmZ1bmNzLT5jaGVja19md19zdGF0dXMgPyAoc211KS0+ZnVuY3MtPmNoZWNrX2Z3X3N0YXR1cygoc211KSkgOiAwKQogI2RlZmluZSBzbXVfc2V0dXBfcHB0YWJsZShzbXUpIFwKIAkoKHNtdSktPmZ1bmNzLT5zZXR1cF9wcHRhYmxlID8gKHNtdSktPmZ1bmNzLT5zZXR1cF9wcHRhYmxlKChzbXUpKSA6IDApCisjZGVmaW5lIHNtdV9wb3dlcmdhdGVfc2RtYShzbXUsIGdhdGUpIFwKKwkoKHNtdSktPmZ1bmNzLT5wb3dlcmdhdGVfc2RtYSA/IChzbXUpLT5mdW5jcy0+cG93ZXJnYXRlX3NkbWEoKHNtdSksIChnYXRlKSkgOiAwKQorI2RlZmluZSBzbXVfcG93ZXJnYXRlX3ZjbihzbXUsIGdhdGUpIFwKKwkoKHNtdSktPmZ1bmNzLT5wb3dlcmdhdGVfdmNuID8gKHNtdSktPmZ1bmNzLT5wb3dlcmdhdGVfdmNuKChzbXUpLCAoZ2F0ZSkpIDogMCkKKyNkZWZpbmUgc211X3NldF9nZnhfY2dwZyhzbXUsIGVuYWJsZWQpIFwKKwkoKHNtdSktPmZ1bmNzLT5zZXRfZ2Z4X2NncGcgPyAoc211KS0+ZnVuY3MtPnNldF9nZnhfY2dwZygoc211KSwgKGVuYWJsZWQpKSA6IDApCiAjZGVmaW5lIHNtdV9nZXRfdmJpb3NfYm9vdHVwX3ZhbHVlcyhzbXUpIFwKIAkoKHNtdSktPmZ1bmNzLT5nZXRfdmJpb3NfYm9vdHVwX3ZhbHVlcyA/IChzbXUpLT5mdW5jcy0+Z2V0X3ZiaW9zX2Jvb3R1cF92YWx1ZXMoKHNtdSkpIDogMCkKICNkZWZpbmUgc211X2dldF9jbGtfaW5mb19mcm9tX3ZiaW9zKHNtdSkgXApAQCAtNzI3LDggKzU3MCw4IEBAIHN0cnVjdCBzbXVfZnVuY3MKIAkoKHNtdSktPmZ1bmNzLT5jaGVja19wcHRhYmxlID8gKHNtdSktPmZ1bmNzLT5jaGVja19wcHRhYmxlKChzbXUpKSA6IDApCiAjZGVmaW5lIHNtdV9wYXJzZV9wcHRhYmxlKHNtdSkgXAogCSgoc211KS0+ZnVuY3MtPnBhcnNlX3BwdGFibGUgPyAoc211KS0+ZnVuY3MtPnBhcnNlX3BwdGFibGUoKHNtdSkpIDogMCkKLSNkZWZpbmUgc211X3BvcHVsYXRlX3NtY19wcHRhYmxlKHNtdSkgXAotCSgoc211KS0+ZnVuY3MtPnBvcHVsYXRlX3NtY19wcHRhYmxlID8gKHNtdSktPmZ1bmNzLT5wb3B1bGF0ZV9zbWNfcHB0YWJsZSgoc211KSkgOiAwKQorI2RlZmluZSBzbXVfcG9wdWxhdGVfc21jX3RhYmxlcyhzbXUpIFwKKwkoKHNtdSktPmZ1bmNzLT5wb3B1bGF0ZV9zbWNfdGFibGVzID8gKHNtdSktPmZ1bmNzLT5wb3B1bGF0ZV9zbWNfdGFibGVzKChzbXUpKSA6IDApCiAjZGVmaW5lIHNtdV9jaGVja19md192ZXJzaW9uKHNtdSkgXAogCSgoc211KS0+ZnVuY3MtPmNoZWNrX2Z3X3ZlcnNpb24gPyAoc211KS0+ZnVuY3MtPmNoZWNrX2Z3X3ZlcnNpb24oKHNtdSkpIDogMCkKICNkZWZpbmUgc211X3dyaXRlX3BwdGFibGUoc211KSBcCkBAIC03NzAsOCArNjEzLDYgQEAgc3RydWN0IHNtdV9mdW5jcwogCSgoc211KS0+ZnVuY3MtPmdldF9lbmFibGVkX21hc2s/IChzbXUpLT5mdW5jcy0+Z2V0X2VuYWJsZWRfbWFzaygoc211KSwgKG1hc2spLCAobnVtKSkgOiAwKQogI2RlZmluZSBzbXVfaXNfZHBtX3J1bm5pbmcoc211KSBcCiAJKChzbXUpLT5wcHRfZnVuY3MtPmlzX2RwbV9ydW5uaW5nID8gKHNtdSktPnBwdF9mdW5jcy0+aXNfZHBtX3J1bm5pbmcoKHNtdSkpIDogMCkKLSNkZWZpbmUgc211X2ZlYXR1cmVfdXBkYXRlX2VuYWJsZV9zdGF0ZShzbXUsIGZlYXR1cmVfaWQsIGVuYWJsZWQpIFwKLQkoKHNtdSktPmZ1bmNzLT51cGRhdGVfZmVhdHVyZV9lbmFibGVfc3RhdGU/IChzbXUpLT5mdW5jcy0+dXBkYXRlX2ZlYXR1cmVfZW5hYmxlX3N0YXRlKChzbXUpLCAoZmVhdHVyZV9pZCksIChlbmFibGVkKSkgOiAwKQogI2RlZmluZSBzbXVfbm90aWZ5X2Rpc3BsYXlfY2hhbmdlKHNtdSkgXAogCSgoc211KS0+ZnVuY3MtPm5vdGlmeV9kaXNwbGF5X2NoYW5nZT8gKHNtdSktPmZ1bmNzLT5ub3RpZnlfZGlzcGxheV9jaGFuZ2UoKHNtdSkpIDogMCkKICNkZWZpbmUgc211X3N0b3JlX3Bvd2VycGxheV90YWJsZShzbXUpIFwKQEAgLTc4Nyw3ICs2MjgsNyBAQCBzdHJ1Y3Qgc211X2Z1bmNzCiAjZGVmaW5lIHNtdV9zZXRfZGVmYXVsdF9vZDhfc2V0dGluZ3Moc211KSBcCiAJKChzbXUpLT5wcHRfZnVuY3MtPnNldF9kZWZhdWx0X29kOF9zZXR0aW5ncyA/IChzbXUpLT5wcHRfZnVuY3MtPnNldF9kZWZhdWx0X29kOF9zZXR0aW5ncygoc211KSkgOiAwKQogI2RlZmluZSBzbXVfZ2V0X3Bvd2VyX2xpbWl0KHNtdSwgbGltaXQsIGRlZikgXAotCSgoc211KS0+ZnVuY3MtPmdldF9wb3dlcl9saW1pdCA/IChzbXUpLT5mdW5jcy0+Z2V0X3Bvd2VyX2xpbWl0KChzbXUpLCAobGltaXQpLCAoZGVmKSkgOiAwKQorCSgoc211KS0+cHB0X2Z1bmNzLT5nZXRfcG93ZXJfbGltaXQgPyAoc211KS0+cHB0X2Z1bmNzLT5nZXRfcG93ZXJfbGltaXQoKHNtdSksIChsaW1pdCksIChkZWYpKSA6IDApCiAjZGVmaW5lIHNtdV9zZXRfcG93ZXJfbGltaXQoc211LCBsaW1pdCkgXAogCSgoc211KS0+ZnVuY3MtPnNldF9wb3dlcl9saW1pdCA/IChzbXUpLT5mdW5jcy0+c2V0X3Bvd2VyX2xpbWl0KChzbXUpLCAobGltaXQpKSA6IDApCiAjZGVmaW5lIHNtdV9nZXRfY3VycmVudF9jbGtfZnJlcShzbXUsIGNsa19pZCwgdmFsdWUpIFwKQEAgLTgwOSw5ICs2NTAsOSBAQCBzdHJ1Y3Qgc211X2Z1bmNzCiAjZGVmaW5lIHNtdV9zdGFydF90aGVybWFsX2NvbnRyb2woc211KSBcCiAJKChzbXUpLT5mdW5jcy0+c3RhcnRfdGhlcm1hbF9jb250cm9sPyAoc211KS0+ZnVuY3MtPnN0YXJ0X3RoZXJtYWxfY29udHJvbCgoc211KSkgOiAwKQogI2RlZmluZSBzbXVfcmVhZF9zZW5zb3Ioc211LCBzZW5zb3IsIGRhdGEsIHNpemUpIFwKLQkoKHNtdSktPmZ1bmNzLT5yZWFkX3NlbnNvcj8gKHNtdSktPmZ1bmNzLT5yZWFkX3NlbnNvcigoc211KSwgKHNlbnNvciksIChkYXRhKSwgKHNpemUpKSA6IDApCi0jZGVmaW5lIHNtdV9hc2ljX3JlYWRfc2Vuc29yKHNtdSwgc2Vuc29yLCBkYXRhLCBzaXplKSBcCiAJKChzbXUpLT5wcHRfZnVuY3MtPnJlYWRfc2Vuc29yPyAoc211KS0+cHB0X2Z1bmNzLT5yZWFkX3NlbnNvcigoc211KSwgKHNlbnNvciksIChkYXRhKSwgKHNpemUpKSA6IDApCisjZGVmaW5lIHNtdV9zbWNfcmVhZF9zZW5zb3Ioc211LCBzZW5zb3IsIGRhdGEsIHNpemUpIFwKKwkoKHNtdSktPmZ1bmNzLT5yZWFkX3NlbnNvcj8gKHNtdSktPmZ1bmNzLT5yZWFkX3NlbnNvcigoc211KSwgKHNlbnNvciksIChkYXRhKSwgKHNpemUpKSA6IC1FSU5WQUwpCiAjZGVmaW5lIHNtdV9nZXRfcG93ZXJfcHJvZmlsZV9tb2RlKHNtdSwgYnVmKSBcCiAJKChzbXUpLT5wcHRfZnVuY3MtPmdldF9wb3dlcl9wcm9maWxlX21vZGUgPyAoc211KS0+cHB0X2Z1bmNzLT5nZXRfcG93ZXJfcHJvZmlsZV9tb2RlKChzbXUpLCBidWYpIDogMCkKICNkZWZpbmUgc211X3NldF9wb3dlcl9wcm9maWxlX21vZGUoc211LCBwYXJhbSwgcGFyYW1fc2l6ZSkgXApAQCAtODc1LDYgKzcxNiw4IEBAIHN0cnVjdCBzbXVfZnVuY3MKIAkoKHNtdSktPnBwdF9mdW5jcy0+Z2V0X2Nsb2NrX2J5X3R5cGVfd2l0aF92b2x0YWdlID8gKHNtdSktPnBwdF9mdW5jcy0+Z2V0X2Nsb2NrX2J5X3R5cGVfd2l0aF92b2x0YWdlKChzbXUpLCAodHlwZSksIChjbG9ja3MpKSA6IDApCiAjZGVmaW5lIHNtdV9kaXNwbGF5X2Nsb2NrX3ZvbHRhZ2VfcmVxdWVzdChzbXUsIGNsb2NrX3JlcSkgXAogCSgoc211KS0+ZnVuY3MtPmRpc3BsYXlfY2xvY2tfdm9sdGFnZV9yZXF1ZXN0ID8gKHNtdSktPmZ1bmNzLT5kaXNwbGF5X2Nsb2NrX3ZvbHRhZ2VfcmVxdWVzdCgoc211KSwgKGNsb2NrX3JlcSkpIDogMCkKKyNkZWZpbmUgc211X2Rpc3BsYXlfZGlzYWJsZV9tZW1vcnlfY2xvY2tfc3dpdGNoKHNtdSwgZGlzYWJsZV9tZW1vcnlfY2xvY2tfc3dpdGNoKSBcCisJKChzbXUpLT5wcHRfZnVuY3MtPmRpc3BsYXlfZGlzYWJsZV9tZW1vcnlfY2xvY2tfc3dpdGNoID8gKHNtdSktPnBwdF9mdW5jcy0+ZGlzcGxheV9kaXNhYmxlX21lbW9yeV9jbG9ja19zd2l0Y2goKHNtdSksIChkaXNhYmxlX21lbW9yeV9jbG9ja19zd2l0Y2gpKSA6IC1FSU5WQUwpCiAjZGVmaW5lIHNtdV9nZXRfZGFsX3Bvd2VyX2xldmVsKHNtdSwgY2xvY2tzKSBcCiAJKChzbXUpLT5mdW5jcy0+Z2V0X2RhbF9wb3dlcl9sZXZlbCA/IChzbXUpLT5mdW5jcy0+Z2V0X2RhbF9wb3dlcl9sZXZlbCgoc211KSwgKGNsb2NrcykpIDogMCkKICNkZWZpbmUgc211X2dldF9wZXJmX2xldmVsKHNtdSwgZGVzaWduYXRpb24sIGxldmVsKSBcCkBAIC04OTEsMTAgKzczNCw2IEBAIHN0cnVjdCBzbXVfZnVuY3MKIAkoKHNtdSktPnBwdF9mdW5jcy0+ZHBtX3NldF92Y2VfZW5hYmxlID8gKHNtdSktPnBwdF9mdW5jcy0+ZHBtX3NldF92Y2VfZW5hYmxlKChzbXUpLCAoZW5hYmxlKSkgOiAwKQogI2RlZmluZSBzbXVfc2V0X3hnbWlfcHN0YXRlKHNtdSwgcHN0YXRlKSBcCiAJCSgoc211KS0+ZnVuY3MtPnNldF94Z21pX3BzdGF0ZSA/IChzbXUpLT5mdW5jcy0+c2V0X3hnbWlfcHN0YXRlKChzbXUpLCAocHN0YXRlKSkgOiAwKQotI2RlZmluZSBzbXVfc2V0X3BwZmVhdHVyZV9zdGF0dXMoc211LCBwcGZlYXR1cmVzKSBcCi0JKChzbXUpLT5wcHRfZnVuY3MtPnNldF9wcGZlYXR1cmVfc3RhdHVzID8gKHNtdSktPnBwdF9mdW5jcy0+c2V0X3BwZmVhdHVyZV9zdGF0dXMoKHNtdSksIChwcGZlYXR1cmVzKSkgOiAtRUlOVkFMKQotI2RlZmluZSBzbXVfZ2V0X3BwZmVhdHVyZV9zdGF0dXMoc211LCBidWYpIFwKLQkoKHNtdSktPnBwdF9mdW5jcy0+Z2V0X3BwZmVhdHVyZV9zdGF0dXMgPyAoc211KS0+cHB0X2Z1bmNzLT5nZXRfcHBmZWF0dXJlX3N0YXR1cygoc211KSwgKGJ1ZikpIDogLUVJTlZBTCkKICNkZWZpbmUgc211X3NldF93YXRlcm1hcmtzX3RhYmxlKHNtdSwgdGFiLCBjbG9ja19yYW5nZXMpIFwKIAkoKHNtdSktPnBwdF9mdW5jcy0+c2V0X3dhdGVybWFya3NfdGFibGUgPyAoc211KS0+cHB0X2Z1bmNzLT5zZXRfd2F0ZXJtYXJrc190YWJsZSgoc211KSwgKHRhYiksIChjbG9ja19yYW5nZXMpKSA6IDApCiAjZGVmaW5lIHNtdV9nZXRfY3VycmVudF9jbGtfZnJlcV9ieV90YWJsZShzbXUsIGNsa190eXBlLCB2YWx1ZSkgXApAQCAtOTA3LDYgKzc0Niw4IEBAIHN0cnVjdCBzbXVfZnVuY3MKIAkoKHNtdSktPmZ1bmNzLT5yZWdpc3Rlcl9pcnFfaGFuZGxlciA/IChzbXUpLT5mdW5jcy0+cmVnaXN0ZXJfaXJxX2hhbmRsZXIoc211KSA6IDApCiAjZGVmaW5lIHNtdV9zZXRfYXphbGlhX2QzX3BtZShzbXUpIFwKIAkoKHNtdSktPmZ1bmNzLT5zZXRfYXphbGlhX2QzX3BtZSA/IChzbXUpLT5mdW5jcy0+c2V0X2F6YWxpYV9kM19wbWUoKHNtdSkpIDogMCkKKyNkZWZpbmUgc211X2dldF9kcG1fdWx0aW1hdGVfZnJlcShzbXUsIHBhcmFtLCBtaW4sIG1heCkgXAorCQkoKHNtdSktPmZ1bmNzLT5nZXRfZHBtX3VsdGltYXRlX2ZyZXEgPyAoc211KS0+ZnVuY3MtPmdldF9kcG1fdWx0aW1hdGVfZnJlcSgoc211KSwgKHBhcmFtKSwgKG1pbiksIChtYXgpKSA6IDApCiAjZGVmaW5lIHNtdV9nZXRfbWF4X3N1c3RhaW5hYmxlX2Nsb2Nrc19ieV9kYyhzbXUsIG1heF9jbG9ja3MpIFwKIAkoKHNtdSktPmZ1bmNzLT5nZXRfbWF4X3N1c3RhaW5hYmxlX2Nsb2Nrc19ieV9kYyA/IChzbXUpLT5mdW5jcy0+Z2V0X21heF9zdXN0YWluYWJsZV9jbG9ja3NfYnlfZGMoKHNtdSksIChtYXhfY2xvY2tzKSkgOiAwKQogI2RlZmluZSBzbXVfZ2V0X3VjbGtfZHBtX3N0YXRlcyhzbXUsIGNsb2Nrc19pbl9raHosIG51bV9zdGF0ZXMpIFwKQEAgLTkxOSw2ICs3NjAsMTAgQEAgc3RydWN0IHNtdV9mdW5jcwogCSgoc211KS0+ZnVuY3MtPmJhY29fcmVzZXQ/IChzbXUpLT5mdW5jcy0+YmFjb19yZXNldCgoc211KSkgOiAwKQogI2RlZmluZSBzbXVfYXNpY19zZXRfcGVyZm9ybWFuY2VfbGV2ZWwoc211LCBsZXZlbCkgXAogCSgoc211KS0+cHB0X2Z1bmNzLT5zZXRfcGVyZm9ybWFuY2VfbGV2ZWw/IChzbXUpLT5wcHRfZnVuY3MtPnNldF9wZXJmb3JtYW5jZV9sZXZlbCgoc211KSwgKGxldmVsKSkgOiAtRUlOVkFMKTsKKyNkZWZpbmUgc211X2R1bXBfcHB0YWJsZShzbXUpIFwKKwkoKHNtdSktPnBwdF9mdW5jcy0+ZHVtcF9wcHRhYmxlID8gKHNtdSktPnBwdF9mdW5jcy0+ZHVtcF9wcHRhYmxlKChzbXUpKSA6IDApCisjZGVmaW5lIHNtdV9nZXRfZHBtX3VjbGtfbGltaXRlZChzbXUsIGNsb2NrLCBtYXgpIFwKKwkJKChzbXUpLT5wcHRfZnVuY3MtPmdldF9kcG1fdWNsa19saW1pdGVkID8gKHNtdSktPnBwdF9mdW5jcy0+Z2V0X2RwbV91Y2xrX2xpbWl0ZWQoKHNtdSksIChjbG9jayksIChtYXgpKSA6IC1FSU5WQUwpCiAKIAogZXh0ZXJuIGludCBzbXVfZ2V0X2F0b21fZGF0YV90YWJsZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgdGFibGUsCkBAIC05MjgsNiArNzczLDggQEAgZXh0ZXJuIGludCBzbXVfZ2V0X2F0b21fZGF0YV90YWJsZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgdGFibGUsCiBleHRlcm4gY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyBzbXVfaXBfZnVuY3M7CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb24gc211X3YxMV8wX2lwX2Jsb2NrOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiBzbXVfdjEyXzBfaXBfYmxvY2s7CisKIGV4dGVybiBpbnQgc211X2ZlYXR1cmVfaW5pdF9kcG0oc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwogCiBleHRlcm4gaW50IHNtdV9mZWF0dXJlX2lzX2VuYWJsZWQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCkBAIC05NDMsNiArNzkwLDcgQEAgaW50IHNtdV91cGRhdGVfdGFibGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gc211X3RhYmxlX2lkIHRhYmxlX2luZGV4LCBpbnQKIAkJICAgICB2b2lkICp0YWJsZV9kYXRhLCBib29sIGRydjJzbXUpOwogCiBib29sIGlzX3N1cHBvcnRfc3dfc211KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKK2Jvb2wgaXNfc3VwcG9ydF9zd19zbXVfeGdtaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQgc211X3Jlc2V0KHN0cnVjdCBzbXVfY29udGV4dCAqc211KTsKIGludCBzbXVfY29tbW9uX3JlYWRfc2Vuc29yKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIGFtZF9wcF9zZW5zb3JzIHNlbnNvciwKIAkJCSAgIHZvaWQgKmRhdGEsIHVpbnQzMl90ICpzaXplKTsKQEAgLTk2MSw2ICs4MDksOSBAQCBleHRlcm4gaW50IHNtdV9kcG1fc2V0X3Bvd2VyX2dhdGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsdWludDMyX3QgYmxvY2tfdHlwZSwgYgogZXh0ZXJuIGludCBzbXVfaGFuZGxlX3Rhc2soc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJCQkgICBlbnVtIGFtZF9kcG1fZm9yY2VkX2xldmVsIGxldmVsLAogCQkJICAgZW51bSBhbWRfcHBfdGFzayB0YXNrX2lkKTsKK2ludCBzbXVfc3dpdGNoX3Bvd2VyX3Byb2ZpbGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkgICAgIGVudW0gUFBfU01DX1BPV0VSX1BST0ZJTEUgdHlwZSwKKwkJCSAgICAgYm9vbCBlbik7CiBpbnQgc211X2dldF9zbWNfdmVyc2lvbihzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgKmlmX3ZlcnNpb24sIHVpbnQzMl90ICpzbXVfdmVyc2lvbik7CiBpbnQgc211X2dldF9kcG1fZnJlcV9ieV9pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfY2xrX3R5cGUgY2xrX3R5cGUsCiAJCQkgICAgICB1aW50MTZfdCBsZXZlbCwgdWludDMyX3QgKnZhbHVlKTsKQEAgLTk3Niw1ICs4MjcsMTAgQEAgZW51bSBhbWRfZHBtX2ZvcmNlZF9sZXZlbCBzbXVfZ2V0X3BlcmZvcm1hbmNlX2xldmVsKHN0cnVjdCBzbXVfY29udGV4dCAqc211KTsKIGludCBzbXVfZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gYW1kX2RwbV9mb3JjZWRfbGV2ZWwgbGV2ZWwpOwogaW50IHNtdV9zZXRfZGlzcGxheV9jb3VudChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgY291bnQpOwogYm9vbCBzbXVfY2xrX2RwbV9pc19lbmFibGVkKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIHNtdV9jbGtfdHlwZSBjbGtfdHlwZSk7CitpbnQgc211X2ZlYXR1cmVfdXBkYXRlX2VuYWJsZV9zdGF0ZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDY0X3QgZmVhdHVyZV9tYXNrLCBib29sIGVuYWJsZWQpOworY29uc3QgY2hhciAqc211X2dldF9tZXNzYWdlX25hbWUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gc211X21lc3NhZ2VfdHlwZSB0eXBlKTsKK2NvbnN0IGNoYXIgKnNtdV9nZXRfZmVhdHVyZV9uYW1lKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIHNtdV9mZWF0dXJlX21hc2sgZmVhdHVyZSk7CitzaXplX3Qgc211X3N5c19nZXRfcHBfZmVhdHVyZV9tYXNrKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBjaGFyICpidWYpOworaW50IHNtdV9zeXNfc2V0X3BwX2ZlYXR1cmVfbWFzayhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDY0X3QgbmV3X21hc2spOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hcmN0dXJ1c19wcHNtYy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2FyY3R1cnVzX3Bwc21jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhlNTkyNwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hcmN0dXJ1c19wcHNtYy5oCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IDIwMTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaWZuZGVmIEFSQ1RVUlVTX1BQX1NNQ19ICisjZGVmaW5lIEFSQ1RVUlVTX1BQX1NNQ19ICisKKyNwcmFnbWEgcGFjayhwdXNoLCAxKQorCisvLyBTTVUgUmVzcG9uc2UgQ29kZXM6CisjZGVmaW5lIFBQU01DX1Jlc3VsdF9PSyAgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBQU01DX1Jlc3VsdF9GYWlsZWQgICAgICAgICAgICAgICAgMHhGRgorI2RlZmluZSBQUFNNQ19SZXN1bHRfVW5rbm93bkNtZCAgICAgICAgICAgIDB4RkUKKyNkZWZpbmUgUFBTTUNfUmVzdWx0X0NtZFJlamVjdGVkUHJlcmVxICAgICAweEZECisjZGVmaW5lIFBQU01DX1Jlc3VsdF9DbWRSZWplY3RlZEJ1c3kgICAgICAgMHhGQworCisvLyBNZXNzYWdlIERlZmluaXRpb25zOgorLy8gQkFTSUMKKyNkZWZpbmUgUFBTTUNfTVNHX1Rlc3RNZXNzYWdlICAgICAgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgUFBTTUNfTVNHX0dldFNtdVZlcnNpb24gICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUFBTTUNfTVNHX0dldERyaXZlcklmVmVyc2lvbiAgICAgICAgICAgICAweDMKKyNkZWZpbmUgUFBTTUNfTVNHX1NldEFsbG93ZWRGZWF0dXJlc01hc2tMb3cgICAgICAweDQKKyNkZWZpbmUgUFBTTUNfTVNHX1NldEFsbG93ZWRGZWF0dXJlc01hc2tIaWdoICAgICAweDUKKyNkZWZpbmUgUFBTTUNfTVNHX0VuYWJsZUFsbFNtdUZlYXR1cmVzICAgICAgICAgICAweDYKKyNkZWZpbmUgUFBTTUNfTVNHX0Rpc2FibGVBbGxTbXVGZWF0dXJlcyAgICAgICAgICAweDcKKyNkZWZpbmUgUFBTTUNfTVNHX0VuYWJsZVNtdUZlYXR1cmVzTG93ICAgICAgICAgICAweDgKKyNkZWZpbmUgUFBTTUNfTVNHX0VuYWJsZVNtdUZlYXR1cmVzSGlnaCAgICAgICAgICAweDkKKyNkZWZpbmUgUFBTTUNfTVNHX0Rpc2FibGVTbXVGZWF0dXJlc0xvdyAgICAgICAgICAweEEKKyNkZWZpbmUgUFBTTUNfTVNHX0Rpc2FibGVTbXVGZWF0dXJlc0hpZ2ggICAgICAgICAweEIKKyNkZWZpbmUgUFBTTUNfTVNHX0dldEVuYWJsZWRTbXVGZWF0dXJlc0xvdyAgICAgICAweEMKKyNkZWZpbmUgUFBTTUNfTVNHX0dldEVuYWJsZWRTbXVGZWF0dXJlc0hpZ2ggICAgICAweEQKKyNkZWZpbmUgUFBTTUNfTVNHX1NldERyaXZlckRyYW1BZGRySGlnaCAgICAgICAgICAweEUKKyNkZWZpbmUgUFBTTUNfTVNHX1NldERyaXZlckRyYW1BZGRyTG93ICAgICAgICAgICAweEYKKyNkZWZpbmUgUFBTTUNfTVNHX1NldFRvb2xzRHJhbUFkZHJIaWdoICAgICAgICAgICAweDEwCisjZGVmaW5lIFBQU01DX01TR19TZXRUb29sc0RyYW1BZGRyTG93ICAgICAgICAgICAgMHgxMQorI2RlZmluZSBQUFNNQ19NU0dfVHJhbnNmZXJUYWJsZVNtdTJEcmFtICAgICAgICAgIDB4MTIKKyNkZWZpbmUgUFBTTUNfTVNHX1RyYW5zZmVyVGFibGVEcmFtMlNtdSAgICAgICAgICAweDEzCisjZGVmaW5lIFBQU01DX01TR19Vc2VEZWZhdWx0UFBUYWJsZSAgICAgICAgICAgICAgMHgxNAorI2RlZmluZSBQUFNNQ19NU0dfVXNlQmFja3VwUFBUYWJsZSAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgUFBTTUNfTVNHX1NldFN5c3RlbVZpcnR1YWxEcmFtQWRkckhpZ2ggICAweDE2CisjZGVmaW5lIFBQU01DX01TR19TZXRTeXN0ZW1WaXJ0dWFsRHJhbUFkZHJMb3cgICAgMHgxNworCisvL0JBQ08vQkFNQUNPL0JPTUFDTworI2RlZmluZSBQUFNNQ19NU0dfRW50ZXJCYWNvICAgICAgICAgICAgICAgICAgICAgIDB4MTgKKyNkZWZpbmUgUFBTTUNfTVNHX0V4aXRCYWNvICAgICAgICAgICAgICAgICAgICAgICAweDE5CisjZGVmaW5lIFBQU01DX01TR19Bcm1EMyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQQorCisvL0RQTQorI2RlZmluZSBQUFNNQ19NU0dfU2V0U29mdE1pbkJ5RnJlcSAgICAgICAgICAgICAgIDB4MUIKKyNkZWZpbmUgUFBTTUNfTVNHX1NldFNvZnRNYXhCeUZyZXEgICAgICAgICAgICAgICAweDFDCisjZGVmaW5lIFBQU01DX01TR19TZXRIYXJkTWluQnlGcmVxICAgICAgICAgICAgICAgMHgxRAorI2RlZmluZSBQUFNNQ19NU0dfU2V0SGFyZE1heEJ5RnJlcSAgICAgICAgICAgICAgIDB4MUUKKyNkZWZpbmUgUFBTTUNfTVNHX0dldE1pbkRwbUZyZXEgICAgICAgICAgICAgICAgICAweDFGCisjZGVmaW5lIFBQU01DX01TR19HZXRNYXhEcG1GcmVxICAgICAgICAgICAgICAgICAgMHgyMAorI2RlZmluZSBQUFNNQ19NU0dfR2V0RHBtRnJlcUJ5SW5kZXggICAgICAgICAgICAgIDB4MjEKKworI2RlZmluZSBQUFNNQ19NU0dfU2V0V29ya2xvYWRNYXNrICAgICAgICAgICAgICAgIDB4MjIKKyNkZWZpbmUgUFBTTUNfTVNHX1NldERmU3dpdGNoVHlwZSAgICAgICAgICAgICAgICAweDIzCisjZGVmaW5lIFBQU01DX01TR19HZXRWb2x0YWdlQnlEcG0gICAgICAgICAgICAgICAgMHgyNAorI2RlZmluZSBQUFNNQ19NU0dfR2V0Vm9sdGFnZUJ5RHBtT3ZlcmRyaXZlICAgICAgIDB4MjUKKworI2RlZmluZSBQUFNNQ19NU0dfU2V0UHB0TGltaXQgICAgICAgICAgICAgICAgICAgIDB4MjYKKyNkZWZpbmUgUFBTTUNfTVNHX0dldFBwdExpbWl0ICAgICAgICAgICAgICAgICAgICAweDI3CisKKy8vUG93ZXIgR2F0aW5nCisjZGVmaW5lIFBQU01DX01TR19Qb3dlclVwVmNuMCAgICAgICAgICAgICAgICAgICAgMHgyOAorI2RlZmluZSBQUFNNQ19NU0dfUG93ZXJEb3duVmNuMCAgICAgICAgICAgICAgICAgIDB4MjkKKyNkZWZpbmUgUFBTTUNfTVNHX1Bvd2VyVXBWY24xICAgICAgICAgICAgICAgICAgICAweDJBCisjZGVmaW5lIFBQU01DX01TR19Qb3dlckRvd25WY24xICAgICAgICAgICAgICAgICAgMHgyQgorCisvL1Jlc2V0cyBhbmQgcmVsb2FkCisjZGVmaW5lIFBQU01DX01TR19QcmVwYXJlTXAxRm9yVW5sb2FkICAgICAgICAgICAgMHgyQworI2RlZmluZSBQUFNNQ19NU0dfUHJlcGFyZU1wMUZvclJlc2V0ICAgICAgICAgICAgIDB4MkQKKyNkZWZpbmUgUFBTTUNfTVNHX1ByZXBhcmVNcDFGb3JTaHV0ZG93biAgICAgICAgICAweDJFCisjZGVmaW5lIFBQU01DX01TR19Tb2Z0UmVzZXQgICAgICAgICAgICAgICAgICAgICAgMHgyRgorCisvL0JUQworI2RlZmluZSBQUFNNQ19NU0dfUnVuQWZsbEJ0YyAgICAgICAgICAgICAgICAgICAgIDB4MzAKKyNkZWZpbmUgUFBTTUNfTVNHX1J1bkdmeERjQnRjICAgICAgICAgICAgICAgICAgICAweDMxCisjZGVmaW5lIFBQU01DX01TR19SdW5Tb2NEY0J0YyAgICAgICAgICAgICAgICAgICAgMHgzMgorCisvL0RlYnVnCisjZGVmaW5lIFBQU01DX01TR19EcmFtTG9nU2V0RHJhbUFkZHJIaWdoICAgICAgICAgMHgzMworI2RlZmluZSBQUFNNQ19NU0dfRHJhbUxvZ1NldERyYW1BZGRyTG93ICAgICAgICAgIDB4MzQKKyNkZWZpbmUgUFBTTUNfTVNHX0RyYW1Mb2dTZXREcmFtU2l6ZSAgICAgICAgICAgICAweDM1CisjZGVmaW5lIFBQU01DX01TR19HZXREZWJ1Z0RhdGEgICAgICAgICAgICAgICAgICAgMHgzNgorCisvL1dBRkwgYW5kIFhHTUkKKyNkZWZpbmUgUFBTTUNfTVNHX1dhZmxUZXN0ICAgICAgICAgICAgICAgICAgICAgICAweDM3CisjZGVmaW5lIFBQU01DX01TR19TZXRYZ21pTW9kZSAgICAgICAgICAgICAgICAgICAgMHgzOAorCisvL090aGVycworI2RlZmluZSBQUFNNQ19NU0dfU2V0TWVtb3J5Q2hhbm5lbEVuYWJsZSAgICAgICAgIDB4MzkKKworI2RlZmluZSBQUFNNQ19NZXNzYWdlX0NvdW50ICAgICAgICAgICAgICAgICAgICAgIDB4M0EKKwordHlwZWRlZiB1aW50MzJfdCBQUFNNQ19SZXN1bHQ7Cit0eXBlZGVmIHVpbnQzMl90IFBQU01DX01zZzsKKyNwcmFnbWEgcGFjayhwb3ApCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvaHdtZ3IuaAppbmRleCBjNTk4OWNiMy4uN2JmOWExNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmgKQEAgLTE4OSw2ICsxODksMTQgQEAgc3RydWN0IHBobV92Y2VfY2xvY2tfdm9sdGFnZV9kZXBlbmRlbmN5X3RhYmxlIHsKIAlzdHJ1Y3QgcGhtX3ZjZV9jbG9ja192b2x0YWdlX2RlcGVuZGVuY3lfcmVjb3JkIGVudHJpZXNbMV07CiB9OwogCisKK2VudW0gU01VX0FTSUNfUkVTRVRfTU9ERQoreworICAgIFNNVV9BU0lDX1JFU0VUX01PREVfMCwKKyAgICBTTVVfQVNJQ19SRVNFVF9NT0RFXzEsCisgICAgU01VX0FTSUNfUkVTRVRfTU9ERV8yLAorfTsKKwogc3RydWN0IHBwX3NtdW1ncl9mdW5jIHsKIAljaGFyICpuYW1lOwogCWludCAoKnNtdV9pbml0KShzdHJ1Y3QgcHBfaHdtZ3IgICpod21ncik7CkBAIC0zNDQsNiArMzUyLDkgQEAgc3RydWN0IHBwX2h3bWdyX2Z1bmMgewogCWludCAoKnNldF9hc2ljX2JhY29fc3RhdGUpKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIGVudW0gQkFDT19TVEFURSBzdGF0ZSk7CiAJaW50ICgqZ2V0X3BwZmVhdHVyZV9zdGF0dXMpKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIGNoYXIgKmJ1Zik7CiAJaW50ICgqc2V0X3BwZmVhdHVyZV9zdGF0dXMpKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIHVpbnQ2NF90IHBwZmVhdHVyZV9tYXNrcyk7CisJaW50ICgqc2V0X21wMV9zdGF0ZSkoc3RydWN0IHBwX2h3bWdyICpod21nciwgZW51bSBwcF9tcDFfc3RhdGUgbXAxX3N0YXRlKTsKKwlpbnQgKCphc2ljX3Jlc2V0KShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBlbnVtIFNNVV9BU0lDX1JFU0VUX01PREUgbW9kZSk7CisJaW50ICgqc211X2kyY19idXNfYWNjZXNzKShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBib29sIGFxdWlyZSk7CiB9OwogCiBzdHJ1Y3QgcHBfdGFibGVfZnVuYyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvcnZfcHBzbWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9ydl9wcHNtYy5oCmluZGV4IDkwODc5ZTQuLmRmNDY3N2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9ydl9wcHNtYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9ydl9wcHNtYy5oCkBAIC01OSw3ICs1OSw3IEBACiAjZGVmaW5lIFBQU01DX01TR19TZXREcml2ZXJEcmFtQWRkckxvdyAgICAgICAgICAweDFCCiAjZGVmaW5lIFBQU01DX01TR19UcmFuc2ZlclRhYmxlU211MkRyYW0gICAgICAgICAweDFDCiAjZGVmaW5lIFBQU01DX01TR19UcmFuc2ZlclRhYmxlRHJhbTJTbXUgICAgICAgICAweDFECi0jZGVmaW5lIFBQU01DX01TR19Db250cm9sR2Z4Uk0gICAgICAgICAgICAgICAgICAweDFFCisjZGVmaW5lIFBQU01DX01TR19EZXZpY2VEcml2ZXJSZXNldCAgICAgICAgICAgICAweDFFCiAjZGVmaW5lIFBQU01DX01TR19TZXRHZnhjbGtPdmVyZHJpdmVCeUZyZXFWaWQgICAweDFGCiAjZGVmaW5lIFBQU01DX01TR19TZXRIYXJkTWluRGNlZmNsa0J5RnJlcSAgICAgICAweDIwCiAjZGVmaW5lIFBQU01DX01TR19TZXRIYXJkTWluU29jY2xrQnlGcmVxICAgICAgICAweDIxCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211MTFfZHJpdmVyX2lmLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211MTFfZHJpdmVyX2lmLmgKaW5kZXggNzU1ZDUxZi4uZmRjNmI3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3NtdTExX2RyaXZlcl9pZi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXUxMV9kcml2ZXJfaWYuaApAQCAtMjcsNyArMjcsOSBAQAogLy8gKioqIElNUE9SVEFOVCAqKioKIC8vIFNNVSBURUFNOiBBbHdheXMgaW5jcmVtZW50IHRoZSBpbnRlcmZhY2UgdmVyc2lvbiBpZgogLy8gYW55IHN0cnVjdHVyZSBpcyBjaGFuZ2VkIGluIHRoaXMgZmlsZQotI2RlZmluZSBTTVUxMV9EUklWRVJfSUZfVkVSU0lPTiAweDEzCisvLyBCZSBhd2FyZSBvZiB0aGF0IHRoZSB2ZXJzaW9uIHNob3VsZCBiZSB1cGRhdGVkIGluCisvLyBzbXVfdjExXzAuaCwgcmVuYW1lIGlzIGFsc28gbmVlZGVkLgorLy8gI2RlZmluZSBTTVUxMV9EUklWRVJfSUZfVkVSU0lPTiAweDEzCiAKICNkZWZpbmUgUFBUQUJMRV9WMjBfU01VX1ZFUlNJT04gMwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211MTFfZHJpdmVyX2lmX2FyY3R1cnVzLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211MTFfZHJpdmVyX2lmX2FyY3R1cnVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAyOTUwYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXUxMV9kcml2ZXJfaWZfYXJjdHVydXMuaApAQCAtMCwwICsxLDg5MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2lmbmRlZiBTTVUxMV9EUklWRVJfSUZfQVJDVFVSVVNfSAorI2RlZmluZSBTTVUxMV9EUklWRVJfSUZfQVJDVFVSVVNfSAorCisvLyAqKiogSU1QT1JUQU5UICoqKgorLy8gU01VIFRFQU06IEFsd2F5cyBpbmNyZW1lbnQgdGhlIGludGVyZmFjZSB2ZXJzaW9uIGlmCisvLyBhbnkgc3RydWN0dXJlIGlzIGNoYW5nZWQgaW4gdGhpcyBmaWxlCisvLyNkZWZpbmUgU01VMTFfRFJJVkVSX0lGX1ZFUlNJT04gMHgwOQorCisjZGVmaW5lIFBQVEFCTEVfQVJDVFVSVVNfU01VX1ZFUlNJT04gNAorCisjZGVmaW5lIE5VTV9HRlhDTEtfRFBNX0xFVkVMUyAgMTYKKyNkZWZpbmUgTlVNX1ZDTEtfRFBNX0xFVkVMUyAgICA4CisjZGVmaW5lIE5VTV9EQ0xLX0RQTV9MRVZFTFMgICAgOAorI2RlZmluZSBOVU1fTVAwQ0xLX0RQTV9MRVZFTFMgIDIKKyNkZWZpbmUgTlVNX1NPQ0NMS19EUE1fTEVWRUxTICA4CisjZGVmaW5lIE5VTV9VQ0xLX0RQTV9MRVZFTFMgICAgNAorI2RlZmluZSBOVU1fRkNMS19EUE1fTEVWRUxTICAgIDgKKyNkZWZpbmUgTlVNX1hHTUlfTEVWRUxTICAgICAgICAyCisjZGVmaW5lIE5VTV9YR01JX1BTVEFURV9MRVZFTFMgNAorCisjZGVmaW5lIE1BWF9HRlhDTEtfRFBNX0xFVkVMICAoTlVNX0dGWENMS19EUE1fTEVWRUxTICAtIDEpCisjZGVmaW5lIE1BWF9WQ0xLX0RQTV9MRVZFTCAgICAoTlVNX1ZDTEtfRFBNX0xFVkVMUyAgICAtIDEpCisjZGVmaW5lIE1BWF9EQ0xLX0RQTV9MRVZFTCAgICAoTlVNX0RDTEtfRFBNX0xFVkVMUyAgICAtIDEpCisjZGVmaW5lIE1BWF9NUDBDTEtfRFBNX0xFVkVMICAoTlVNX01QMENMS19EUE1fTEVWRUxTICAtIDEpCisjZGVmaW5lIE1BWF9TT0NDTEtfRFBNX0xFVkVMICAoTlVNX1NPQ0NMS19EUE1fTEVWRUxTICAtIDEpCisjZGVmaW5lIE1BWF9VQ0xLX0RQTV9MRVZFTCAgICAoTlVNX1VDTEtfRFBNX0xFVkVMUyAgICAtIDEpCisjZGVmaW5lIE1BWF9GQ0xLX0RQTV9MRVZFTCAgICAoTlVNX0ZDTEtfRFBNX0xFVkVMUyAgICAtIDEpCisjZGVmaW5lIE1BWF9YR01JX0xFVkVMICAgICAgICAoTlVNX1hHTUlfTEVWRUxTICAgICAgICAtIDEpCisjZGVmaW5lIE1BWF9YR01JX1BTVEFURV9MRVZFTCAoTlVNX1hHTUlfUFNUQVRFX0xFVkVMUyAtIDEpCisKKy8vIEZlYXR1cmUgQ29udHJvbCBEZWZpbmVzCisvLyBEUE0KKyNkZWZpbmUgRkVBVFVSRV9EUE1fUFJFRkVUQ0hFUl9CSVQgICAgICAwCisjZGVmaW5lIEZFQVRVUkVfRFBNX0dGWENMS19CSVQgICAgICAgICAgMQorI2RlZmluZSBGRUFUVVJFX0RQTV9VQ0xLX0JJVCAgICAgICAgICAgIDIKKyNkZWZpbmUgRkVBVFVSRV9EUE1fU09DQ0xLX0JJVCAgICAgICAgICAzCisjZGVmaW5lIEZFQVRVUkVfRFBNX0ZDTEtfQklUICAgICAgICAgICAgNAorI2RlZmluZSBGRUFUVVJFX0RQTV9NUDBDTEtfQklUICAgICAgICAgIDUKKyNkZWZpbmUgRkVBVFVSRV9EUE1fWEdNSV9CSVQgICAgICAgICAgICA2CisvLyBJZGxlCisjZGVmaW5lIEZFQVRVUkVfRFNfR0ZYQ0xLX0JJVCAgICAgICAgICAgNworI2RlZmluZSBGRUFUVVJFX0RTX1NPQ0NMS19CSVQgICAgICAgICAgIDgKKyNkZWZpbmUgRkVBVFVSRV9EU19MQ0xLX0JJVCAgICAgICAgICAgICA5CisjZGVmaW5lIEZFQVRVUkVfRFNfRkNMS19CSVQgICAgICAgICAgICAgMTAKKyNkZWZpbmUgRkVBVFVSRV9EU19VQ0xLX0JJVCAgICAgICAgICAgICAxMQorI2RlZmluZSBGRUFUVVJFX0dGWF9VTFZfQklUICAgICAgICAgICAgIDEyCisjZGVmaW5lIEZFQVRVUkVfRFBNX1ZDTl9CSVQgICAgICAgICAgICAgMTMKKyNkZWZpbmUgRkVBVFVSRV9SU01VX1NNTl9DR19CSVQgICAgICAgICAxNAorI2RlZmluZSBGRUFUVVJFX1dBRkxfQ0dfQklUICAgICAgICAgICAgIDE1CisvLyBUaHJvdHRsZXIvUmVzcG9uc2UKKyNkZWZpbmUgRkVBVFVSRV9QUFRfQklUICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBGRUFUVVJFX1REQ19CSVQgICAgICAgICAgICAgICAgIDE3CisjZGVmaW5lIEZFQVRVUkVfQVBDQ19QTFVTX0JJVCAgICAgICAgICAgMTgKKyNkZWZpbmUgRkVBVFVSRV9WUjBIT1RfQklUICAgICAgICAgICAgICAxOQorI2RlZmluZSBGRUFUVVJFX1ZSMUhPVF9CSVQgICAgICAgICAgICAgIDIwCisjZGVmaW5lIEZFQVRVUkVfRldfQ1RGX0JJVCAgICAgICAgICAgICAgMjEKKyNkZWZpbmUgRkVBVFVSRV9GQU5fQ09OVFJPTF9CSVQgICAgICAgICAyMgorI2RlZmluZSBGRUFUVVJFX1RIRVJNQUxfQklUICAgICAgICAgICAgIDIzCisvLyBPdGhlcgorI2RlZmluZSBGRUFUVVJFX09VVF9PRl9CQU5EX01PTklUT1JfQklUIDI0CisjZGVmaW5lIEZFQVRVUkVfVEVNUF9ERVBFTkRFTlRfVk1JTl9CSVQgMjUKKworI2RlZmluZSBGRUFUVVJFX1NQQVJFXzI2X0JJVCAgICAgICAgICAgIDI2CisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfMjdfQklUICAgICAgICAgICAgMjcKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV8yOF9CSVQgICAgICAgICAgICAyOAorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzI5X0JJVCAgICAgICAgICAgIDI5CisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfMzBfQklUICAgICAgICAgICAgMzAKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV8zMV9CSVQgICAgICAgICAgICAzMQorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzMyX0JJVCAgICAgICAgICAgIDMyCisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfMzNfQklUICAgICAgICAgICAgMzMKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV8zNF9CSVQgICAgICAgICAgICAzNAorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzM1X0JJVCAgICAgICAgICAgIDM1CisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfMzZfQklUICAgICAgICAgICAgMzYKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV8zN19CSVQgICAgICAgICAgICAzNworI2RlZmluZSBGRUFUVVJFX1NQQVJFXzM4X0JJVCAgICAgICAgICAgIDM4CisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfMzlfQklUICAgICAgICAgICAgMzkKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV80MF9CSVQgICAgICAgICAgICA0MAorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzQxX0JJVCAgICAgICAgICAgIDQxCisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfNDJfQklUICAgICAgICAgICAgNDIKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV80M19CSVQgICAgICAgICAgICA0MworI2RlZmluZSBGRUFUVVJFX1NQQVJFXzQ0X0JJVCAgICAgICAgICAgIDQ0CisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfNDVfQklUICAgICAgICAgICAgNDUKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV80Nl9CSVQgICAgICAgICAgICA0NgorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzQ3X0JJVCAgICAgICAgICAgIDQ3CisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfNDhfQklUICAgICAgICAgICAgNDgKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV80OV9CSVQgICAgICAgICAgICA0OQorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzUwX0JJVCAgICAgICAgICAgIDUwCisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfNTFfQklUICAgICAgICAgICAgNTEKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV81Ml9CSVQgICAgICAgICAgICA1MgorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzUzX0JJVCAgICAgICAgICAgIDUzCisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfNTRfQklUICAgICAgICAgICAgNTQKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV81NV9CSVQgICAgICAgICAgICA1NQorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzU2X0JJVCAgICAgICAgICAgIDU2CisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfNTdfQklUICAgICAgICAgICAgNTcKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV81OF9CSVQgICAgICAgICAgICA1OAorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzU5X0JJVCAgICAgICAgICAgIDU5CisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfNjBfQklUICAgICAgICAgICAgNjAKKyNkZWZpbmUgRkVBVFVSRV9TUEFSRV82MV9CSVQgICAgICAgICAgICA2MQorI2RlZmluZSBGRUFUVVJFX1NQQVJFXzYyX0JJVCAgICAgICAgICAgIDYyCisjZGVmaW5lIEZFQVRVUkVfU1BBUkVfNjNfQklUICAgICAgICAgICAgNjMKKworI2RlZmluZSBOVU1fRkVBVFVSRVMgICAgICAgICAgICAgICAgICAgIDY0CisKKworI2RlZmluZSBGRUFUVVJFX0RQTV9QUkVGRVRDSEVSX01BU0sgICAgICAgKDEgPDwgRkVBVFVSRV9EUE1fUFJFRkVUQ0hFUl9CSVQgICAgICAgKQorI2RlZmluZSBGRUFUVVJFX0RQTV9HRlhDTEtfTUFTSyAgICAgICAgICAgKDEgPDwgRkVBVFVSRV9EUE1fR0ZYQ0xLX0JJVCAgICAgICAgICAgKQorI2RlZmluZSBGRUFUVVJFX0RQTV9VQ0xLX01BU0sgICAgICAgICAgICAgKDEgPDwgRkVBVFVSRV9EUE1fVUNMS19CSVQgICAgICAgICAgICAgKQorI2RlZmluZSBGRUFUVVJFX0RQTV9TT0NDTEtfTUFTSyAgICAgICAgICAgKDEgPDwgRkVBVFVSRV9EUE1fU09DQ0xLX0JJVCAgICAgICAgICAgKQorI2RlZmluZSBGRUFUVVJFX0RQTV9GQ0xLX01BU0sgICAgICAgICAgICAgKDEgPDwgRkVBVFVSRV9EUE1fRkNMS19CSVQgICAgICAgICAgICAgKQorI2RlZmluZSBGRUFUVVJFX0RQTV9NUDBDTEtfTUFTSyAgICAgICAgICAgKDEgPDwgRkVBVFVSRV9EUE1fTVAwQ0xLX0JJVCAgICAgICAgICAgKQorI2RlZmluZSBGRUFUVVJFX0RQTV9YR01JX01BU0sgICAgICAgICAgICAgKDEgPDwgRkVBVFVSRV9EUE1fWEdNSV9CSVQgICAgICAgICAgICAgKQorCisjZGVmaW5lIEZFQVRVUkVfRFNfR0ZYQ0xLX01BU0sgICAgICAgICAgICAoMSA8PCBGRUFUVVJFX0RTX0dGWENMS19CSVQgICAgICAgICAgICApCisjZGVmaW5lIEZFQVRVUkVfRFNfU09DQ0xLX01BU0sgICAgICAgICAgICAoMSA8PCBGRUFUVVJFX0RTX1NPQ0NMS19CSVQgICAgICAgICAgICApCisjZGVmaW5lIEZFQVRVUkVfRFNfTENMS19NQVNLICAgICAgICAgICAgICAoMSA8PCBGRUFUVVJFX0RTX0xDTEtfQklUICAgICAgICAgICAgICApCisjZGVmaW5lIEZFQVRVUkVfRFNfRkNMS19NQVNLICAgICAgICAgICAgICAoMSA8PCBGRUFUVVJFX0RTX0ZDTEtfQklUICAgICAgICAgICAgICApCisjZGVmaW5lIEZFQVRVUkVfRFNfTENMS19NQVNLICAgICAgICAgICAgICAoMSA8PCBGRUFUVVJFX0RTX0xDTEtfQklUICAgICAgICAgICAgICApCisjZGVmaW5lIEZFQVRVUkVfR0ZYX1VMVl9NQVNLICAgICAgICAgICAgICAoMSA8PCBGRUFUVVJFX0dGWF9VTFZfQklUICAgICAgICAgICAgICApCisjZGVmaW5lIEZFQVRVUkVfVkNOX1BHX01BU0sgICAgICAgICAgICAgICAoMSA8PCBGRUFUVVJFX1ZDTl9QR19CSVQgICAgICAgICAgICAgICApCisjZGVmaW5lIEZFQVRVUkVfUlNNVV9TTU5fQ0dfTUFTSyAgICAgICAgICAoMSA8PCBGRUFUVVJFX1JTTVVfU01OX0NHX0JJVCAgICAgICAgICApCisjZGVmaW5lIEZFQVRVUkVfV0FGTF9DR19NQVNLICAgICAgICAgICAgICAoMSA8PCBGRUFUVVJFX1dBRkxfQ0dfQklUICAgICAgICAgICAgICApCisKKyNkZWZpbmUgRkVBVFVSRV9QUFRfTUFTSyAgICAgICAgICAgICAgICAgICgxIDw8IEZFQVRVUkVfUFBUX0JJVCAgICAgICAgICAgICAgICAgICkKKyNkZWZpbmUgRkVBVFVSRV9URENfTUFTSyAgICAgICAgICAgICAgICAgICgxIDw8IEZFQVRVUkVfVERDX0JJVCAgICAgICAgICAgICAgICAgICkKKyNkZWZpbmUgRkVBVFVSRV9BUENDX01BU0sgICAgICAgICAgICAgICAgICgxIDw8IEZFQVRVUkVfQVBDQ19CSVQgICAgICAgICAgICAgICAgICkKKyNkZWZpbmUgRkVBVFVSRV9WUjBIT1RfTUFTSyAgICAgICAgICAgICAgICgxIDw8IEZFQVRVUkVfVlIwSE9UX0JJVCAgICAgICAgICAgICAgICkKKyNkZWZpbmUgRkVBVFVSRV9WUjFIT1RfTUFTSyAgICAgICAgICAgICAgICgxIDw8IEZFQVRVUkVfVlIxSE9UX0JJVCAgICAgICAgICAgICAgICkKKyNkZWZpbmUgRkVBVFVSRV9GV19DVEZfTUFTSyAgICAgICAgICAgICAgICgxIDw8IEZFQVRVUkVfRldfQ1RGX0JJVCAgICAgICAgICAgICAgICkKKyNkZWZpbmUgRkVBVFVSRV9GQU5fQ09OVFJPTF9NQVNLICAgICAgICAgICgxIDw8IEZFQVRVUkVfRkFOX0NPTlRST0xfQklUICAgICAgICAgICkKKyNkZWZpbmUgRkVBVFVSRV9USEVSTUFMX01BU0sgICAgICAgICAgICAgICgxIDw8IEZFQVRVUkVfVEhFUk1BTF9CSVQgICAgICAgICAgICAgICkKKworI2RlZmluZSBGRUFUVVJFX09VVF9PRl9CQU5EX01PTklUT1JfTUFTSyAgKDEgPDwgRUFUVVJFX09VVF9PRl9CQU5EX01PTklUT1JfQklUICAgKQorI2RlZmluZSBGRUFUVVJFX1RFTVBfREVQRU5ERU5UX1ZNSU5fTUFTSyAgKDEgPDwgRkVBVFVSRV9URU1QX0RFUEVOREVOVF9WTUlOX01BU0sgKQorCisKKy8vRklYTUUgbmVlZCB1cGRhdGluZworLy8gRGVidWcgT3ZlcnJpZGVzIEJpdG1hc2sKKyNkZWZpbmUgRFBNX09WRVJSSURFX0RJU0FCTEVfVUNMS19QSUQgICAgICAgICAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIERQTV9PVkVSUklERV9FTkFCTEVfVk9MVF9MSU5LX1ZDTl9GQ0xLICAgICAgMHgwMDAwMDAwMgorCisvLyBJMkMgQ29uZmlnIEJpdCBEZWZpbmVzCisjZGVmaW5lIEkyQ19DT05UUk9MTEVSX0VOQUJMRUQgICAgICAgICAgIDEKKyNkZWZpbmUgSTJDX0NPTlRST0xMRVJfRElTQUJMRUQgICAgICAgICAgMAorCisvLyBWUiBNYXBwaW5nIEJpdCBEZWZpbmVzCisjZGVmaW5lIFZSX01BUFBJTkdfVlJfU0VMRUNUX01BU0sgIDB4MDEKKyNkZWZpbmUgVlJfTUFQUElOR19WUl9TRUxFQ1RfU0hJRlQgMHgwMAorCisjZGVmaW5lIFZSX01BUFBJTkdfUExBTkVfU0VMRUNUX01BU0sgIDB4MDIKKyNkZWZpbmUgVlJfTUFQUElOR19QTEFORV9TRUxFQ1RfU0hJRlQgMHgwMQorCisvLyBQU0kgQml0IERlZmluZXMKKyNkZWZpbmUgUFNJX1NFTF9WUjBfUExBTkUwX1BTSTAgIDB4MDEKKyNkZWZpbmUgUFNJX1NFTF9WUjBfUExBTkUwX1BTSTEgIDB4MDIKKyNkZWZpbmUgUFNJX1NFTF9WUjBfUExBTkUxX1BTSTAgIDB4MDQKKyNkZWZpbmUgUFNJX1NFTF9WUjBfUExBTkUxX1BTSTEgIDB4MDgKKyNkZWZpbmUgUFNJX1NFTF9WUjFfUExBTkUwX1BTSTAgIDB4MTAKKyNkZWZpbmUgUFNJX1NFTF9WUjFfUExBTkUwX1BTSTEgIDB4MjAKKyNkZWZpbmUgUFNJX1NFTF9WUjFfUExBTkUxX1BTSTAgIDB4NDAKKyNkZWZpbmUgUFNJX1NFTF9WUjFfUExBTkUxX1BTSTEgIDB4ODAKKworLy8gVGhyb3R0bGVyIENvbnRyb2wvU3RhdHVzIEJpdHMKKyNkZWZpbmUgVEhST1RUTEVSX1BBRERJTkdfQklUICAgICAgMAorI2RlZmluZSBUSFJPVFRMRVJfVEVNUF9FREdFX0JJVCAgICAxCisjZGVmaW5lIFRIUk9UVExFUl9URU1QX0hPVFNQT1RfQklUIDIKKyNkZWZpbmUgVEhST1RUTEVSX1RFTVBfTUVNX0JJVCAgICAgMworI2RlZmluZSBUSFJPVFRMRVJfVEVNUF9WUl9HRlhfQklUICA0CisjZGVmaW5lIFRIUk9UVExFUl9URU1QX1ZSX01FTV9CSVQgIDUKKyNkZWZpbmUgVEhST1RUTEVSX1RFTVBfVlJfU09DX0JJVCAgNgorI2RlZmluZSBUSFJPVFRMRVJfVERDX0dGWF9CSVQgICAgICA3CisjZGVmaW5lIFRIUk9UVExFUl9URENfU09DX0JJVCAgICAgIDgKKyNkZWZpbmUgVEhST1RUTEVSX1BQVDBfQklUICAgICAgICAgOQorI2RlZmluZSBUSFJPVFRMRVJfUFBUMV9CSVQgICAgICAgICAxMAorI2RlZmluZSBUSFJPVFRMRVJfUFBUMl9CSVQgICAgICAgICAxMQorI2RlZmluZSBUSFJPVFRMRVJfUFBUM19CSVQgICAgICAgICAxMgorI2RlZmluZSBUSFJPVFRMRVJfUFBNX0JJVCAgICAgICAgICAxMworI2RlZmluZSBUSFJPVFRMRVJfRklUX0JJVCAgICAgICAgICAxNAorI2RlZmluZSBUSFJPVFRMRVJfQVBDQ19CSVQgICAgICAgICAxNQorCisvLyBUYWJsZSB0cmFuc2ZlciBzdGF0dXMKKyNkZWZpbmUgVEFCTEVfVFJBTlNGRVJfT0sgICAgICAgICAweDAKKyNkZWZpbmUgVEFCTEVfVFJBTlNGRVJfRkFJTEVEICAgICAweEZGCisjZGVmaW5lIFRBQkxFX1RSQU5TRkVSX1BFTkRJTkcgICAgMHhBQgorCisvLyBXb3JrbG9hZCBiaXRzCisjZGVmaW5lIFdPUktMT0FEX1BQTElCX0RFRkFVTFRfQklUICAgICAgICAwCisjZGVmaW5lIFdPUktMT0FEX1BQTElCX1BPV0VSX1NBVklOR19CSVQgICAxCisjZGVmaW5lIFdPUktMT0FEX1BQTElCX1ZJREVPX0JJVCAgICAgICAgICAyCisjZGVmaW5lIFdPUktMT0FEX1BQTElCX0NPTVBVVEVfQklUICAgICAgICAzCisjZGVmaW5lIFdPUktMT0FEX1BQTElCX0NVU1RPTV9CSVQgICAgICAgICA0CisjZGVmaW5lIFdPUktMT0FEX1BQTElCX0NPVU5UICAgICAgICAgICAgICA1CisKKy8vWEdNSSBwZXJmb3JtYW5jZSBzdGF0ZXMKKyNkZWZpbmUgWEdNSV9TVEFURV9EMCAxCisjZGVmaW5lIFhHTUlfU1RBVEVfRDMgMAorCisjZGVmaW5lIE5VTV9JMkNfQ09OVFJPTExFUlMgICAgICAgICAgICAgICAgOAorCisjZGVmaW5lIEkyQ19DT05UUk9MTEVSX0VOQUJMRUQgICAgICAgICAgICAgMQorI2RlZmluZSBJMkNfQ09OVFJPTExFUl9ESVNBQkxFRCAgICAgICAgICAgIDAKKworI2RlZmluZSBNQVhfU1dfSTJDX0NPTU1BTkRTICAgICAgICAgICAgICAgIDgKKwordHlwZWRlZiBlbnVtIHsKKyAgSTJDX0NPTlRST0xMRVJfUE9SVF8wID0gMCwgIC8vQ0tTVklJMkMwCisgIEkyQ19DT05UUk9MTEVSX1BPUlRfMSA9IDEsICAvL0NLU1ZJSTJDMQorICBJMkNfQ09OVFJPTExFUl9QT1JUX0NPVU5ULAorfSBJMmNDb250cm9sbGVyUG9ydF9lOworCit0eXBlZGVmIGVudW0geworICBJMkNfQ09OVFJPTExFUl9OQU1FX1ZSX0dGWCA9IDAsCisgIEkyQ19DT05UUk9MTEVSX05BTUVfVlJfU09DLAorICBJMkNfQ09OVFJPTExFUl9OQU1FX1ZSX01FTSwKKyAgSTJDX0NPTlRST0xMRVJfTkFNRV9TUEFSRSwKKyAgSTJDX0NPTlRST0xMRVJfTkFNRV9DT1VOVCwKK30gSTJjQ29udHJvbGxlck5hbWVfZTsKKwordHlwZWRlZiBlbnVtIHsKKyAgSTJDX0NPTlRST0xMRVJfVEhST1RUTEVSX1RZUEVfTk9ORSA9IDAsCisgIEkyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9WUl9HRlgsCisgIEkyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9WUl9TT0MsCisgIEkyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9WUl9NRU0sCisgIEkyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9DT1VOVCwKK30gSTJjQ29udHJvbGxlclRocm90dGxlcl9lOworCit0eXBlZGVmIGVudW0geworICBJMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9WUl8wLAorICBJMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9WUl8xLAorICBJMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9UTVBfMCwKKyAgSTJDX0NPTlRST0xMRVJfUFJPVE9DT0xfVE1QXzEsCisgIEkyQ19DT05UUk9MTEVSX1BST1RPQ09MX1NQQVJFXzAsCisgIEkyQ19DT05UUk9MTEVSX1BST1RPQ09MX1NQQVJFXzEsCisgIEkyQ19DT05UUk9MTEVSX1BST1RPQ09MX0NPVU5ULAorfSBJMmNDb250cm9sbGVyUHJvdG9jb2xfZTsKKwordHlwZWRlZiBzdHJ1Y3QgeworICB1aW50OF90ICAgRW5hYmxlZDsKKyAgdWludDhfdCAgIFNwZWVkOworICB1aW50OF90ICAgUGFkZGluZ1syXTsKKyAgdWludDMyX3QgIFNsYXZlQWRkcmVzczsKKyAgdWludDhfdCAgIENvbnRyb2xsZXJQb3J0OworICB1aW50OF90ICAgQ29udHJvbGxlck5hbWU7CisgIHVpbnQ4X3QgICBUaGVybWFsVGhyb3R0ZXI7CisgIHVpbnQ4X3QgICBJMmNQcm90b2NvbDsKK30gSTJjQ29udHJvbGxlckNvbmZpZ190OworCit0eXBlZGVmIGVudW0geworICBJMkNfUE9SVF9TVkRfU0NMID0gMCwKKyAgSTJDX1BPUlRfR1BJTywKK30gSTJjUG9ydF9lOworCit0eXBlZGVmIGVudW0geworICBJMkNfU1BFRURfRkFTVF81MEsgPSAwLCAgICAgIC8vNTAgIEtiaXRzL3MKKyAgSTJDX1NQRUVEX0ZBU1RfMTAwSywgICAgICAgICAvLzEwMCBLYml0cy9zCisgIEkyQ19TUEVFRF9GQVNUXzQwMEssICAgICAgICAgLy80MDAgS2JpdHMvcworICBJMkNfU1BFRURfRkFTVF9QTFVTXzFNLCAgICAgIC8vMSAgIE1iaXRzL3MgKGluIGZhc3QgbW9kZSkKKyAgSTJDX1NQRUVEX0hJR0hfMU0sICAgICAgICAgICAvLzEgICBNYml0cy9zIChpbiBoaWdoIHNwZWVkIG1vZGUpCisgIEkyQ19TUEVFRF9ISUdIXzJNLCAgICAgICAgICAgLy8yLjMgTWJpdHMvcworICBJMkNfU1BFRURfQ09VTlQsCit9IEkyY1NwZWVkX2U7CisKK3R5cGVkZWYgZW51bSB7CisgIEkyQ19DTURfUkVBRCA9IDAsCisgIEkyQ19DTURfV1JJVEUsCisgIEkyQ19DTURfQ09VTlQsCit9IEkyY0NtZFR5cGVfZTsKKworI2RlZmluZSBDTURDT05GSUdfU1RPUF9CSVQgICAgICAwCisjZGVmaW5lIENNRENPTkZJR19SRVNUQVJUX0JJVCAgIDEKKworI2RlZmluZSBDTURDT05GSUdfU1RPUF9NQVNLICAgICAoMSA8PCBDTURDT05GSUdfU1RPUF9CSVQpCisjZGVmaW5lIENNRENPTkZJR19SRVNUQVJUX01BU0sgICgxIDw8IENNRENPTkZJR19SRVNUQVJUX0JJVCkKKwordHlwZWRlZiBzdHJ1Y3QgeworICB1aW50OF90IFJlZ2lzdGVyQWRkcjsgLy8vL29ubHkgdmFsaWQgZm9yIHdyaXRlLCBpZ25vcmVkIGZvciByZWFkCisgIHVpbnQ4X3QgQ21kOyAgLy9SZWFkKDApIG9yIFdyaXRlKDEpCisgIHVpbnQ4X3QgRGF0YTsgIC8vUmV0dXJuIGRhdGEgZm9yIHJlYWQuIERhdGEgdG8gc2VuZCBmb3Igd3JpdGUKKyAgdWludDhfdCBDbWRDb25maWc7IC8vSW5jbHVkZXMgd2hldGhlciBhc3NvY2lhdGVkIGNvbW1hbmQgc2hvdWxkIGhhdmUgYSBzdG9wIG9yIHJlc3RhcnQgY29tbWFuZAorfSBTd0kyY0NtZF90OyAvL1NXIEkyQyBDb21tYW5kIFRhYmxlCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgdWludDhfdCAgICAgSTJDY29udHJvbGxlclBvcnQ7IC8vQ0tTVklJMkMwKDApIG9yIC8vQ0tTVklJMkMxKDEpCisgIHVpbnQ4X3QgICAgIEkyQ1NwZWVkOyAgICAgICAgICAvL1Nsb3coMCkgb3IgRmFzdCgxKQorICB1aW50MTZfdCAgICBTbGF2ZUFkZHJlc3M7CisgIHVpbnQ4X3QgICAgIE51bUNtZHM7ICAgICAgICAgICAvL051bWJlciBvZiBjb21tYW5kcworICB1aW50OF90ICAgICBQYWRkaW5nWzNdOworCisgIFN3STJjQ21kX3QgIFN3STJjQ21kc1tNQVhfU1dfSTJDX0NPTU1BTkRTXTsKKworICB1aW50MzJfdCAgICAgTW1IdWJQYWRkaW5nWzhdOyAvLyBTTVUgaW50ZXJuYWwgdXNlCisKK30gU3dJMmNSZXF1ZXN0X3Q7IC8vIFNXIEkyQyBSZXF1ZXN0IFRhYmxlCisKKy8vRDNIT1Qgc2VxdWVuY2VzCit0eXBlZGVmIGVudW0geworICBCQUNPX1NFUVVFTkNFLAorICBNU1JfU0VRVUVOQ0UsCisgIEJBTUFDT19TRVFVRU5DRSwKKyAgVUxQU19TRVFVRU5DRSwKKyAgRDNIT1RfU0VRVUVOQ0VfQ09VTlQsCit9RDNIT1RTZXF1ZW5jZV9lOworCisvL1RIaXMgaXMgYWxpZ25lZCB3aXRoIFJTTVUgUEdGU00gUmVnaXN0ZXIgTWFwcGluZwordHlwZWRlZiBlbnVtIHsKKyAgUEdfRFlOQU1JQ19NT0RFID0gMCwKKyAgUEdfU1RBVElDX01PREUsCit9IFBvd2VyR2F0aW5nTW9kZV9lOworCisvL1RoaXMgaXMgYWxpZ25lZCB3aXRoIFJTTVUgUEdGU00gUmVnaXN0ZXIgTWFwcGluZwordHlwZWRlZiBlbnVtIHsKKyAgUEdfUE9XRVJfRE9XTiA9IDAsCisgIFBHX1BPV0VSX1VQLAorfSBQb3dlckdhdGluZ1NldHRpbmdzX2U7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgdWludDMyX3QgYTsgIC8vIHN0b3JlIGluIElFRUUgZmxvYXQgZm9ybWF0IGluIHRoaXMgdmFyaWFibGUKKyAgdWludDMyX3QgYjsgIC8vIHN0b3JlIGluIElFRUUgZmxvYXQgZm9ybWF0IGluIHRoaXMgdmFyaWFibGUKKyAgdWludDMyX3QgYzsgIC8vIHN0b3JlIGluIElFRUUgZmxvYXQgZm9ybWF0IGluIHRoaXMgdmFyaWFibGUKK30gUXVhZHJhdGljSW50X3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgdWludDMyX3QgbTsgIC8vIHN0b3JlIGluIElFRUUgZmxvYXQgZm9ybWF0IGluIHRoaXMgdmFyaWFibGUKKyAgdWludDMyX3QgYjsgIC8vIHN0b3JlIGluIElFRUUgZmxvYXQgZm9ybWF0IGluIHRoaXMgdmFyaWFibGUKK30gTGluZWFySW50X3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgdWludDMyX3QgYTsgIC8vIHN0b3JlIGluIElFRUUgZmxvYXQgZm9ybWF0IGluIHRoaXMgdmFyaWFibGUKKyAgdWludDMyX3QgYjsgIC8vIHN0b3JlIGluIElFRUUgZmxvYXQgZm9ybWF0IGluIHRoaXMgdmFyaWFibGUKKyAgdWludDMyX3QgYzsgIC8vIHN0b3JlIGluIElFRUUgZmxvYXQgZm9ybWF0IGluIHRoaXMgdmFyaWFibGUKK30gRHJvb3BJbnRfdDsKKwordHlwZWRlZiBlbnVtIHsKKyAgR0ZYQ0xLX1NPVVJDRV9QTEwgPSAwLAorICBHRlhDTEtfU09VUkNFX0FGTEwsCisgIEdGWENMS19TT1VSQ0VfQ09VTlQsCit9IEdmeGNsa1NyY19lOworCit0eXBlZGVmIGVudW0geworICBQUENMS19HRlhDTEssCisgIFBQQ0xLX1ZDTEssCisgIFBQQ0xLX0RDTEssCisgIFBQQ0xLX1NPQ0NMSywKKyAgUFBDTEtfVUNMSywKKyAgUFBDTEtfRkNMSywKKyAgUFBDTEtfQ09VTlQsCit9IFBQQ0xLX2U7CisKK3R5cGVkZWYgZW51bSB7CisgIFBPV0VSX1NPVVJDRV9BQywKKyAgUE9XRVJfU09VUkNFX0RDLAorICBQT1dFUl9TT1VSQ0VfQ09VTlQsCit9IFBPV0VSX1NPVVJDRV9lOworCit0eXBlZGVmIGVudW0geworICBURU1QX0VER0UsCisgIFRFTVBfSE9UU1BPVCwKKyAgVEVNUF9NRU0sCisgIFRFTVBfVlJfR0ZYLAorICBURU1QX1ZSX1NPQywKKyAgVEVNUF9WUl9NRU0sCisgIFRFTVBfQ09VTlQKK30gVEVNUF9UWVBFX2U7CisKK3R5cGVkZWYgZW51bSAgeworICBQUFRfVEhST1RUTEVSX1BQVDAsCisgIFBQVF9USFJPVFRMRVJfUFBUMSwKKyAgUFBUX1RIUk9UVExFUl9QUFQyLAorICBQUFRfVEhST1RUTEVSX1BQVDMsCisgIFBQVF9USFJPVFRMRVJfQ09VTlQKK30gUFBUX1RIUk9UVExFUl9lOworCit0eXBlZGVmIGVudW0geworICBWT0xUQUdFX01PREVfQVZGUyA9IDAsCisgIFZPTFRBR0VfTU9ERV9BVkZTX1NTLAorICBWT0xUQUdFX01PREVfU1MsCisgIFZPTFRBR0VfTU9ERV9DT1VOVCwKK30gVk9MVEFHRV9NT0RFX2U7CisKK3R5cGVkZWYgZW51bSB7CisgIEFWRlNfVk9MVEFHRV9HRlggPSAwLAorICBBVkZTX1ZPTFRBR0VfU09DLAorICBBVkZTX1ZPTFRBR0VfQ09VTlQsCit9IEFWRlNfVk9MVEFHRV9UWVBFX2U7CisKK3R5cGVkZWYgZW51bSB7CisgIEdQSU9fSU5UX1BPTEFSSVRZX0FDVElWRV9MT1cgPSAwLAorICBHUElPX0lOVF9QT0xBUklUWV9BQ1RJVkVfSElHSCwKK30gR3Bpb0ludFBvbGFyaXR5X2U7CisKK3R5cGVkZWYgZW51bSB7CisgIE1FTU9SWV9UWVBFX0dERFI2ID0gMCwKKyAgTUVNT1JZX1RZUEVfSEJNLAorfSBNZW1vcnlUeXBlX2U7CisKK3R5cGVkZWYgZW51bSB7CisgIFBXUl9DT05GSUdfVERQID0gMCwKKyAgUFdSX0NPTkZJR19UR1AsCisgIFBXUl9DT05GSUdfVENQX0VTVElNQVRFRCwKKyAgUFdSX0NPTkZJR19UQ1BfTUVBU1VSRUQsCit9IFB3ckNvbmZpZ19lOworCit0eXBlZGVmIGVudW0geworICBYR01JX0xJTktfUkFURV8xMiA9IDAsICAvLyAxMkdicHMKKyAgWEdNSV9MSU5LX1JBVEVfMTYsICAgICAgLy8gMTZHYnBzCisgIFhHTUlfTElOS19SQVRFXzIyLCAgICAgIC8vIDIyR2JwcworICBYR01JX0xJTktfUkFURV8yNSwgICAgICAvLyAyNUdicHMKKyAgWEdNSV9MSU5LX1JBVEVfQ09VTlQKK30gWEdNSV9MSU5LX1JBVEVfZTsKKwordHlwZWRlZiBlbnVtIHsKKyAgWEdNSV9MSU5LX1dJRFRIXzIgPSAwLCAvLyB4MgorICBYR01JX0xJTktfV0lEVEhfNCwgICAgIC8vIHg0CisgIFhHTUlfTElOS19XSURUSF84LCAgICAgLy8geDgKKyAgWEdNSV9MSU5LX1dJRFRIXzE2LCAgICAvLyB4MTYKKyAgWEdNSV9MSU5LX1dJRFRIX0NPVU5UCit9IFhHTUlfTElOS19XSURUSF9lOworCit0eXBlZGVmIHN0cnVjdCB7CisgIHVpbnQ4X3QgICAgICAgIFZvbHRhZ2VNb2RlOyAgICAgICAgIC8vIDAgLSBBVkZTIG9ubHksIDEtIG1pbihBVkZTLFNTKSwgMi1TUyBvbmx5CisgIHVpbnQ4X3QgICAgICAgIFNuYXBUb0Rpc2NyZXRlOyAgICAgIC8vIDAgLSBGaW5lIGdyYWluZWQgRFBNLCAxIC0gRGlzY3JldGUgRFBNCisgIHVpbnQ4X3QgICAgICAgIE51bURpc2NyZXRlTGV2ZWxzOyAgIC8vIFNldCB0byAyIChGbWluLCBGbWF4KSB3aGVuIHVzaW5nIGZpbmUgZ3JhaW5lZCBEUE0sIG90aGVyd2lzZSBzZXQgdG8gIyBkaXNjcmV0ZSBsZXZlbHMgdXNlZAorICB1aW50OF90ICAgICAgICBwYWRkaW5nOworICBMaW5lYXJJbnRfdCAgICBDb252ZXJzaW9uVG9BdmZzQ2xrOyAvLyBUcmFuc2ZlciBmdW5jdGlvbiB0byBBVkZTIENsb2NrIChHSHotPkdIeikKKyAgUXVhZHJhdGljSW50X3QgU3NDdXJ2ZTsgICAgICAgICAgICAgLy8gU2xvdy1zbG93IGN1cnZlIChHSHotPlYpCisgIHVpbnQxNl90ICAgICAgIFNzRm1pbjsgICAgICAgICAgICAgIC8vIEZtaW4gZm9yIFNTIGN1cnZlLiBJZiBTUyBjdXJ2ZSBpcyBzZWxlY3RlZCwgd2lsbCB1c2UgVkBTU0ZtaW4gZm9yIEYgPD0gRm1pbgorICB1aW50MTZfdCAgICAgICBQYWRkaW5nMTY7Cit9IERwbURlc2NyaXB0b3JfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICB1aW50MzJfdCBWZXJzaW9uOworCisgIC8vIFNFQ1RJT046IEZlYXR1cmUgRW5hYmxlbWVudAorICB1aW50MzJfdCBGZWF0dXJlc1RvUnVuWzJdOworCisgIC8vIFNFQ1RJT046IEluZnJhc3RydWN0dXJlIExpbWl0cworICB1aW50MTZfdCBTb2NrZXRQb3dlckxpbWl0QWNbUFBUX1RIUk9UVExFUl9DT1VOVF07CisgIHVpbnQxNl90IFNvY2tldFBvd2VyTGltaXRBY1RhdVtQUFRfVEhST1RUTEVSX0NPVU5UXTsKKyAgdWludDE2X3QgVGRjTGltaXRTb2M7ICAgICAgICAgICAgIC8vIEFtcHMKKyAgdWludDE2X3QgVGRjTGltaXRTb2NUYXU7ICAgICAgICAgIC8vIFRpbWUgY29uc3RhbnQgb2YgTFBGIGluIG1zCisgIHVpbnQxNl90IFRkY0xpbWl0R2Z4OyAgICAgICAgICAgICAvLyBBbXBzCisgIHVpbnQxNl90IFRkY0xpbWl0R2Z4VGF1OyAgICAgICAgICAvLyBUaW1lIGNvbnN0YW50IG9mIExQRiBpbiBtcworCisgIHVpbnQxNl90IFRlZGdlTGltaXQ7ICAgICAgICAgICAgICAvLyBDZWxjaXVzCisgIHVpbnQxNl90IFRob3RzcG90TGltaXQ7ICAgICAgICAgICAvLyBDZWxjaXVzCisgIHVpbnQxNl90IFRtZW1MaW1pdDsgICAgICAgICAgICAgICAvLyBDZWxjaXVzCisgIHVpbnQxNl90IFR2cl9nZnhMaW1pdDsgICAgICAgICAgICAvLyBDZWxjaXVzCisgIHVpbnQxNl90IFR2cl9tZW1MaW1pdDsgICAgICAgICAgICAvLyBDZWxjaXVzCisgIHVpbnQxNl90IFR2cl9zb2NMaW1pdDsgICAgICAgICAgICAvLyBDZWxjaXVzCisgIHVpbnQzMl90IEZpdExpbWl0OyAgICAgICAgICAgICAgICAvLyBGYWlsdXJlcyBpbiB0aW1lIChmYWlsdXJlcyBwZXIgbWlsbGlvbiBwYXJ0cyBvdmVyIHRoZSBkZWZpbmVkIGxpZmV0aW1lKQorCisgIHVpbnQxNl90IFBwbVBvd2VyTGltaXQ7ICAgICAgICAgICAvLyBTd2l0Y2ggdGhpcyB0aGlzIHBvd2VyIGxpbWl0IHdoZW4gdGVtcGVyYXR1cmUgaXMgYWJvdmUgUHBtVGVtcFRocmVzaG9sZAorICB1aW50MTZfdCBQcG1UZW1wZXJhdHVyZVRocmVzaG9sZDsKKworICAvLyBTRUNUSU9OOiBUaHJvdHRsZXIgc2V0dGluZ3MKKyAgdWludDMyX3QgVGhyb3R0bGVyQ29udHJvbE1hc2s7ICAgLy8gU2VlIFRocm90dGVyIG1hc2tzIGRlZmluZXMKKworICAvLyBTRUNUSU9OOiBVTFYgU2V0dGluZ3MKKyAgdWludDE2X3QgIFVsdlZvbHRhZ2VPZmZzZXRHZng7IC8vIEluIG1WKFEyKQorICB1aW50MTZfdCAgVWx2UGFkZGluZzsgICAgICAgICAgLy8gUGFkZGluZworCisgIHVpbnQ4X3QgIFVsdkdmeGNsa0J5cGFzczsgIC8vIDEgdG8gdHVybiBvZmYvYnlwYXNzIEdmeGNsayBkdXJpbmcgVUxWLCAwIHRvIGxlYXZlIEdmeGNsayBvbiBkdXJpbmcgVUxWCisgIHVpbnQ4X3QgIFBhZGRpbmcyMzRbM107CisKKyAgLy8gU0VDVElPTjogVm9sdGFnZSBDb250cm9sIFBhcmFtZXRlcnMKKyAgdWludDE2X3QgICAgIE1pblZvbHRhZ2VHZng7ICAgICAvLyBJbiBtVihRMikgTWluaW11bSBWb2x0YWdlICgiVm1pbiIpIG9mIFZERF9HRlgKKyAgdWludDE2X3QgICAgIE1pblZvbHRhZ2VTb2M7ICAgICAvLyBJbiBtVihRMikgTWluaW11bSBWb2x0YWdlICgiVm1pbiIpIG9mIFZERF9TT0MKKyAgdWludDE2X3QgICAgIE1heFZvbHRhZ2VHZng7ICAgICAvLyBJbiBtVihRMikgTWF4aW11bSBWb2x0YWdlIGFsbG93YWJsZSBvZiBWRERfR0ZYCisgIHVpbnQxNl90ICAgICBNYXhWb2x0YWdlU29jOyAgICAgLy8gSW4gbVYoUTIpIE1heGltdW0gVm9sdGFnZSBhbGxvd2FibGUgb2YgVkREX1NPQworCisgIHVpbnQxNl90ICAgICBMb2FkTGluZVJlc2lzdGFuY2VHZng7ICAgLy8gSW4gbU9obXMgd2l0aCA4IGZyYWN0aW9uYWwgYml0cworICB1aW50MTZfdCAgICAgTG9hZExpbmVSZXNpc3RhbmNlU29jOyAgIC8vIEluIG1PaG1zIHdpdGggOCBmcmFjdGlvbmFsIGJpdHMKKworICAvL1NFQ1RJT046IERQTSBDb25maWcgMQorICBEcG1EZXNjcmlwdG9yX3QgRHBtRGVzY3JpcHRvcltQUENMS19DT1VOVF07CisKKyAgdWludDE2X3QgICAgICAgRnJlcVRhYmxlR2Z4ICAgICAgW05VTV9HRlhDTEtfRFBNX0xFVkVMUyAgXTsgICAgIC8vIEluIE1IegorICB1aW50MTZfdCAgICAgICBGcmVxVGFibGVWY2xrICAgICBbTlVNX1ZDTEtfRFBNX0xFVkVMUyAgICBdOyAgICAgLy8gSW4gTUh6CisgIHVpbnQxNl90ICAgICAgIEZyZXFUYWJsZURjbGsgICAgIFtOVU1fRENMS19EUE1fTEVWRUxTICAgIF07ICAgICAvLyBJbiBNSHoKKyAgdWludDE2X3QgICAgICAgRnJlcVRhYmxlU29jY2xrICAgW05VTV9TT0NDTEtfRFBNX0xFVkVMUyAgXTsgICAgIC8vIEluIE1IegorICB1aW50MTZfdCAgICAgICBGcmVxVGFibGVVY2xrICAgICBbTlVNX1VDTEtfRFBNX0xFVkVMUyAgICBdOyAgICAgLy8gSW4gTUh6CisgIHVpbnQxNl90ICAgICAgIEZyZXFUYWJsZUZjbGsgICAgIFtOVU1fRkNMS19EUE1fTEVWRUxTICAgIF07ICAgICAvLyBJbiBNSHoKKworICB1aW50MzJfdCAgICAgICBQYWRkaW5nY2xrc1sxNl07CisKKyAgLy8gU0VDVElPTjogRFBNIENvbmZpZyAyCisgIHVpbnQxNl90ICAgICAgIE1wMGNsa0ZyZXEgICAgICAgIFtOVU1fTVAwQ0xLX0RQTV9MRVZFTFNdOyAgICAgICAvLyBpbiBNSHoKKyAgdWludDE2X3QgICAgICAgTXAwRHBtVm9sdGFnZSAgICAgW05VTV9NUDBDTEtfRFBNX0xFVkVMU107ICAgICAgIC8vIG1WKFEyKQorCisgIC8vIEdGWENMSyBEUE0KKyAgdWludDE2X3QgICAgICAgIEdmeGNsa0ZpZGxlOyAgICAgICAgICAvLyBJbiBNSHoKKyAgdWludDE2X3QgICAgICAgIEdmeGNsa1NsZXdSYXRlOyAgICAgICAvLyBmb3IgUExMIGJhYnlzdGVwcGluZz8/PworICB1aW50OF90ICAgICAgICAgUGFkZGluZzU2N1s0XTsKKyAgdWludDE2X3QgICAgICAgIEdmeGNsa0RzTWF4RnJlcTsgICAgICAvLyBJbiBNSHoKKyAgdWludDhfdCAgICAgICAgIEdmeGNsa1NvdXJjZTsgICAgICAgICAvLyAwID0gUExMLCAxID0gQUZMTAorICB1aW50OF90ICAgICAgICAgUGFkZGluZzQ1NjsKKworICAvLyBHRlhDTEsgVGhlcm1hbCBEUE0gKGZvcm1lcmx5ICdCb29zdCcgU2V0dGluZ3MpCisgIHVpbnQxNl90ICAgICBFbmFibGVUZHBtOworICB1aW50MTZfdCAgICAgVGRwbUhpZ2hIeXN0VGVtcGVyYXR1cmU7CisgIHVpbnQxNl90ICAgICBUZHBtTG93SHlzdFRlbXBlcmF0dXJlOworICB1aW50MTZfdCAgICAgR2Z4Y2xrRnJlcUhpZ2hUZW1wTGltaXQ7IC8vIEhpZ2ggbGltaXQgb24gR0ZYQ0xLIHdoZW4gdGVtcGVyYXR1cmUgaXMgaGlnaCwgZm9yIHJlbGlhYmlsaXR5LgorCisgIC8vIFNFQ1RJT046IEZhbiBDb250cm9sCisgIHVpbnQxNl90ICAgICBGYW5TdG9wVGVtcDsgICAgICAgICAgLy9DZWxjaXVzCisgIHVpbnQxNl90ICAgICBGYW5TdGFydFRlbXA7ICAgICAgICAgLy9DZWxjaXVzCisKKyAgdWludDE2X3QgICAgIEZhbkdhaW5FZGdlOworICB1aW50MTZfdCAgICAgRmFuR2FpbkhvdHNwb3Q7CisgIHVpbnQxNl90ICAgICBGYW5HYWluVnJHZng7CisgIHVpbnQxNl90ICAgICBGYW5HYWluVnJTb2M7CisgIHVpbnQxNl90ICAgICBGYW5HYWluVnJNZW07CisgIHVpbnQxNl90ICAgICBGYW5HYWluSGJtOworICB1aW50MTZfdCAgICAgRmFuUHdtTWluOworICB1aW50MTZfdCAgICAgRmFuQWNvdXN0aWNMaW1pdFJwbTsKKyAgdWludDE2X3QgICAgIEZhblRocm90dGxpbmdScG07CisgIHVpbnQxNl90ICAgICBGYW5NYXhpbXVtUnBtOworICB1aW50MTZfdCAgICAgRmFuVGFyZ2V0VGVtcGVyYXR1cmU7CisgIHVpbnQxNl90ICAgICBGYW5UYXJnZXRHZnhjbGs7CisgIHVpbnQ4X3QgICAgICBGYW5aZXJvUnBtRW5hYmxlOworICB1aW50OF90ICAgICAgRmFuVGFjaEVkZ2VQZXJSZXY7CisgIHVpbnQ4X3QgICAgICBGYW5UZW1wSW5wdXRTZWxlY3Q7CisgIHVpbnQ4X3QgICAgICBwYWRkaW5nOF9GYW47CisKKyAgLy8gVGhlIGZvbGxvd2luZyBhcmUgQUZDIG92ZXJyaWRlIHBhcmFtZXRlcnMuIExlYXZlIGF0IDAgdG8gdXNlIEZXIGRlZmF1bHRzLgorICBpbnQxNl90ICAgICAgRnV6enlGYW5fRXJyb3JTZXREZWx0YTsKKyAgaW50MTZfdCAgICAgIEZ1enp5RmFuX0Vycm9yUmF0ZVNldERlbHRhOworICBpbnQxNl90ICAgICAgRnV6enlGYW5fUHdtU2V0RGVsdGE7CisgIHVpbnQxNl90ICAgICBGdXp6eUZhbl9SZXNlcnZlZDsKKworCisgIC8vIFNFQ1RJT046IEFWRlMKKyAgLy8gT3ZlcnJpZGVzCisgIHVpbnQ4X3QgICAgICAgICAgIE92ZXJyaWRlQXZmc0diW0FWRlNfVk9MVEFHRV9DT1VOVF07CisgIHVpbnQ4X3QgICAgICAgICAgIFBhZGRpbmc4X0F2ZnNbMl07CisKKyAgUXVhZHJhdGljSW50X3QgICAgcUF2ZnNHYltBVkZTX1ZPTFRBR0VfQ09VTlRdOyAgICAgICAgICAgICAgLy8gR0h6LT5WIE92ZXJyaWRlIG9mIGZ1c2VkIGN1cnZlCisgIERyb29wSW50X3QgICAgICAgIGRCdGNHYkdmeFBsbDsgICAgICAgLy8gR0h6LT5WIEJ0Y0diCisgIERyb29wSW50X3QgICAgICAgIGRCdGNHYkdmeEFmbGw7ICAgICAgICAvLyBHSHotPlYgQnRjR2IKKyAgRHJvb3BJbnRfdCAgICAgICAgZEJ0Y0diU29jOyAgICAgICAgICAgIC8vIEdIei0+ViBCdGNHYgorICBMaW5lYXJJbnRfdCAgICAgICBxQWdpbmdHYltBVkZTX1ZPTFRBR0VfQ09VTlRdOyAgICAgICAgICAvLyBHSHotPlYKKworICBRdWFkcmF0aWNJbnRfdCAgICBxU3RhdGljVm9sdGFnZU9mZnNldFtBVkZTX1ZPTFRBR0VfQ09VTlRdOyAvLyBHSHotPlYKKworICB1aW50MTZfdCAgICAgICAgICBEY1RvbFtBVkZTX1ZPTFRBR0VfQ09VTlRdOyAgICAgICAgICAgIC8vIG1WIFEyCisKKyAgdWludDhfdCAgICAgICAgICAgRGNCdGNFbmFibGVkW0FWRlNfVk9MVEFHRV9DT1VOVF07CisgIHVpbnQ4X3QgICAgICAgICAgIFBhZGRpbmc4X0dmeEJ0Y1syXTsKKworICB1aW50MTZfdCAgICAgICAgICBEY0J0Y01pbltBVkZTX1ZPTFRBR0VfQ09VTlRdOyAgICAgICAvLyBtViBRMgorICB1aW50MTZfdCAgICAgICAgICBEY0J0Y01heFtBVkZTX1ZPTFRBR0VfQ09VTlRdOyAgICAgICAvLyBtViBRMgorCisgIHVpbnQxNl90ICAgICAgICAgIERjQnRjR2JbQVZGU19WT0xUQUdFX0NPVU5UXTsgICAgICAgIC8vIG1WIFEyCisKKyAgLy8gU0VDVElPTjogWEdNSQorICB1aW50OF90ICAgICAgICAgICBYZ21pRHBtUHN0YXRlc1tOVU1fWEdNSV9MRVZFTFNdOyAvLyAyIERQTSBzdGF0ZXMsIGhpZ2ggYW5kIGxvdy4gIDAtUDAsIDEtUDEsIDItUDIsIDMtUDMuCisgIHVpbnQ4X3QgICAgICAgICAgIFhnbWlEcG1TcGFyZVsyXTsKKworICAvLyBUZW1wZXJhdHVyZSBEZXBlbmRlbnQgVm1pbgorICB1aW50MTZfdCAgICAgVkRER0ZYX1RWbWluOyAgICAgICAvL0NlbGNpdXMKKyAgdWludDE2X3QgICAgIFZERFNPQ19UVm1pbjsgICAgICAgLy9DZWxjaXVzCisgIHVpbnQxNl90ICAgICBWRERHRlhfVm1pbl9IaVRlbXA7IC8vIG1WIFEyCisgIHVpbnQxNl90ICAgICBWRERHRlhfVm1pbl9Mb1RlbXA7IC8vIG1WIFEyCisgIHVpbnQxNl90ICAgICBWRERTT0NfVm1pbl9IaVRlbXA7IC8vIG1WIFEyCisgIHVpbnQxNl90ICAgICBWRERTT0NfVm1pbl9Mb1RlbXA7IC8vIG1WIFEyCisKKyAgdWludDE2X3QgICAgIFZEREdGWF9UVm1pbkh5c3RlcnNpczsgLy8gQ2VsY2l1cworICB1aW50MTZfdCAgICAgVkREU09DX1RWbWluSHlzdGVyc2lzOyAvLyBDZWxjaXVzCisKKworICAvLyBTRUNUSU9OOiBBZHZhbmNlZCBPcHRpb25zCisgIHVpbnQzMl90ICAgICAgICAgIERlYnVnT3ZlcnJpZGVzOworICBRdWFkcmF0aWNJbnRfdCAgICBSZXNlcnZlZEVxdWF0aW9uMDsKKyAgUXVhZHJhdGljSW50X3QgICAgUmVzZXJ2ZWRFcXVhdGlvbjE7CisgIFF1YWRyYXRpY0ludF90ICAgIFJlc2VydmVkRXF1YXRpb24yOworICBRdWFkcmF0aWNJbnRfdCAgICBSZXNlcnZlZEVxdWF0aW9uMzsKKworICB1aW50MTZfdCAgICAgTWluVm9sdGFnZVVsdkdmeDsgLy8gSW4gbVYoUTIpICBNaW5pbXVtIFZvbHRhZ2UgKCJWbWluIikgb2YgVkREX0dGWCBpbiBVTFYgbW9kZQorICB1aW50MTZfdCAgICAgUGFkZGluZ1VsdjsgICAgICAgLy8gUGFkZGluZworCisgIC8vIFRvdGFsIFBvd2VyIGNvbmZpZ3VyYXRpb24sIHVzZSBkZWZpbmVzIGZyb20gUHdyQ29uZmlnX2UKKyAgdWludDhfdCAgICAgIFRvdGFsUG93ZXJDb25maWc7ICAgIC8vMC1URFAsIDEtVEdQLCAyLVRDUCBFc3RpbWF0ZWQsIDMtVENQIE1lYXN1cmVkCisgIHVpbnQ4X3QgICAgICBUb3RhbFBvd2VyU3BhcmUxOworICB1aW50MTZfdCAgICAgVG90YWxQb3dlclNwYXJlMjsKKworICAvLyBBUENDIFNldHRpbmdzCisgIHVpbnQxNl90ICAgICBQY2NUaHJlc2hvbGRMb3c7CisgIHVpbnQxNl90ICAgICBQY2NUaHJlc2hvbGRIaWdoOworICB1aW50MzJfdCAgICAgUGFkZGluZ0FQQ0NbNl07ICAvL0ZJWE1FIHBlbmRpbmcgU1BFQworCisgIC8vIFNFQ1RJT046IFJlc2VydmVkCisgIHVpbnQzMl90ICAgICBSZXNlcnZlZFsxMV07CisKKyAgLy8gU0VDVElPTjogQk9BUkQgUEFSQU1FVEVSUworCisgIC8vIFNWSTIgQm9hcmQgUGFyYW1ldGVycworICB1aW50MTZfdCAgICAgTWF4Vm9sdGFnZVN0ZXBHZng7IC8vIEluIG1WKFEyKSBNYXggdm9sdGFnZSBzdGVwIHRoYXQgU01VIHdpbGwgcmVxdWVzdC4gTXVsdGlwbGUgc3RlcHMgYXJlIHRha2VuIGlmIHZvbHRhZ2UgY2hhbmdlIGV4Y2VlZHMgdGhpcyB2YWx1ZS4KKyAgdWludDE2X3QgICAgIE1heFZvbHRhZ2VTdGVwU29jOyAvLyBJbiBtVihRMikgTWF4IHZvbHRhZ2Ugc3RlcCB0aGF0IFNNVSB3aWxsIHJlcXVlc3QuIE11bHRpcGxlIHN0ZXBzIGFyZSB0YWtlbiBpZiB2b2x0YWdlIGNoYW5nZSBleGNlZWRzIHRoaXMgdmFsdWUuCisKKyAgdWludDhfdCAgICAgIFZkZEdmeFZyTWFwcGluZzsgICAgIC8vIFVzZSBWUl9NQVBQSU5HKiBiaXRmaWVsZHMKKyAgdWludDhfdCAgICAgIFZkZFNvY1ZyTWFwcGluZzsgICAgIC8vIFVzZSBWUl9NQVBQSU5HKiBiaXRmaWVsZHMKKyAgdWludDhfdCAgICAgIFZkZE1lbVZyTWFwcGluZzsgICAgIC8vIFVzZSBWUl9NQVBQSU5HKiBiaXRmaWVsZHMKKyAgdWludDhfdCAgICAgIEJvYXJkVnJNYXBwaW5nOyAgICAgIC8vIFVzZSBWUl9NQVBQSU5HKiBiaXRmaWVsZHMKKworICB1aW50OF90ICAgICAgR2Z4VWx2UGhhc2VTaGVkZGluZ01hc2s7IC8vIHNldCB0aGlzIHRvIDEgdG8gc2V0IFBTSTAvMSB0byAxIGluIFVMViBtb2RlCisgIHVpbnQ4X3QgICAgICBFeHRlcm5hbFNlbnNvclByZXNlbnQ7IC8vIEV4dGVybmFsIFJESSBjb25uZWN0ZWQgdG8gVE1PTiAoYWthIFRFTVAgSU4pCisgIHVpbnQ4X3QgICAgICBQYWRkaW5nOF9WWzJdOworCisgIC8vIFRlbGVtZXRyeSBTZXR0aW5ncworICB1aW50MTZfdCAgICAgR2Z4TWF4Q3VycmVudDsgICAvLyBpbiBBbXBzCisgIGludDhfdCAgICAgICBHZnhPZmZzZXQ7ICAgICAgIC8vIGluIEFtcHMKKyAgdWludDhfdCAgICAgIFBhZGRpbmdfVGVsZW1ldHJ5R2Z4OworCisgIHVpbnQxNl90ICAgICBTb2NNYXhDdXJyZW50OyAgIC8vIGluIEFtcHMKKyAgaW50OF90ICAgICAgIFNvY09mZnNldDsgICAgICAgLy8gaW4gQW1wcworICB1aW50OF90ICAgICAgUGFkZGluZ19UZWxlbWV0cnlTb2M7CisKKyAgdWludDE2X3QgICAgIE1lbU1heEN1cnJlbnQ7ICAgLy8gaW4gQW1wcworICBpbnQ4X3QgICAgICAgTWVtT2Zmc2V0OyAgICAgICAvLyBpbiBBbXBzCisgIHVpbnQ4X3QgICAgICBQYWRkaW5nX1RlbGVtZXRyeU1lbTsKKworICB1aW50MTZfdCAgICAgQm9hcmRNYXhDdXJyZW50OyAgIC8vIGluIEFtcHMKKyAgaW50OF90ICAgICAgIEJvYXJkT2Zmc2V0OyAgICAgICAvLyBpbiBBbXBzCisgIHVpbnQ4X3QgICAgICBQYWRkaW5nX1RlbGVtZXRyeUJvYXJkSW5wdXQ7CisKKyAgLy8gR1BJTyBTZXR0aW5ncworICB1aW50OF90ICAgICAgVlIwSG90R3BpbzsgICAgICAvLyBHUElPIHBpbiBjb25maWd1cmVkIGZvciBWUjAgSE9UIGV2ZW50CisgIHVpbnQ4X3QgICAgICBWUjBIb3RQb2xhcml0eTsgIC8vIEdQSU8gcG9sYXJpdHkgZm9yIFZSMCBIT1QgZXZlbnQKKyAgdWludDhfdCAgICAgIFZSMUhvdEdwaW87ICAgICAgLy8gR1BJTyBwaW4gY29uZmlndXJlZCBmb3IgVlIxIEhPVCBldmVudAorICB1aW50OF90ICAgICAgVlIxSG90UG9sYXJpdHk7ICAvLyBHUElPIHBvbGFyaXR5IGZvciBWUjEgSE9UIGV2ZW50CisKKyAgLy8gR0ZYQ0xLIFBMTCBTcHJlYWQgU3BlY3RydW0KKyAgdWludDhfdCAgICAgIFBsbEdmeGNsa1NwcmVhZEVuYWJsZWQ7ICAgLy8gb24gb3Igb2ZmCisgIHVpbnQ4X3QgICAgICBQbGxHZnhjbGtTcHJlYWRQZXJjZW50OyAgIC8vIFE0LjQKKyAgdWludDE2X3QgICAgIFBsbEdmeGNsa1NwcmVhZEZyZXE7ICAgICAgLy8ga0h6CisKKyAgLy8gVUNMSyBTcHJlYWQgU3BlY3RydW0KKyAgdWludDhfdCAgICAgIFVjbGtTcHJlYWRFbmFibGVkOyAgIC8vIG9uIG9yIG9mZgorICB1aW50OF90ICAgICAgVWNsa1NwcmVhZFBlcmNlbnQ7ICAgLy8gUTQuNAorICB1aW50MTZfdCAgICAgVWNsa1NwcmVhZEZyZXE7ICAgICAgLy8ga0h6CisKKyAgLy8gRkNMSyBTcHJlYWQgU3BlY3RydW0KKyAgdWludDhfdCAgICAgIEZjbGtTcHJlYWRFbmFibGVkOyAgIC8vIG9uIG9yIG9mZgorICB1aW50OF90ICAgICAgRmNsa1NwcmVhZFBlcmNlbnQ7ICAgLy8gUTQuNAorICB1aW50MTZfdCAgICAgRmNsa1NwcmVhZEZyZXE7ICAgICAgLy8ga0h6CisKKyAgLy8gR0ZYQ0xLIEZsbCBTcHJlYWQgU3BlY3RydW0KKyAgdWludDhfdCAgICAgIEZsbEdmeGNsa1NwcmVhZEVuYWJsZWQ7ICAgLy8gb24gb3Igb2ZmCisgIHVpbnQ4X3QgICAgICBGbGxHZnhjbGtTcHJlYWRQZXJjZW50OyAgIC8vIFE0LjQKKyAgdWludDE2X3QgICAgIEZsbEdmeGNsa1NwcmVhZEZyZXE7ICAgICAgLy8ga0h6CisKKyAgLy8gSTJDIENvbnRyb2xsZXIgU3RydWN0dXJlCisgIEkyY0NvbnRyb2xsZXJDb25maWdfdCAgSTJjQ29udHJvbGxlcnNbTlVNX0kyQ19DT05UUk9MTEVSU107CisKKyAgLy8gTWVtb3J5IHNlY3Rpb24KKyAgdWludDMyX3QgICAgIE1lbW9yeUNoYW5uZWxFbmFibGVkOyAvLyBGb3IgRFJBTSB1c2Ugb25seSwgTWF4IDMyIGNoYW5uZWxzIGVuYWJsZWQgYml0IG1hc2suCisKKyAgdWludDhfdCAgICAgIERyYW1CaXRXaWR0aDsgLy8gRm9yIERSQU0gdXNlIG9ubHkuICBTZWUgRHJhbSBCaXQgd2lkdGggdHlwZSBkZWZpbmVzCisgIHVpbnQ4X3QgICAgICBQYWRkaW5nTWVtWzNdOworCisgIC8vIFRvdGFsIGJvYXJkIHBvd2VyCisgIHVpbnQxNl90ICAgICBUb3RhbEJvYXJkUG93ZXI7ICAgICAvL09ubHkgbmVlZGVkIGZvciBUQ1AgRXN0aW1hdGVkIGNhc2UsIHdoZXJlIFRDUCA9IFRHUCtUb3RhbCBCb2FyZCBQb3dlcgorICB1aW50MTZfdCAgICAgQm9hcmRQYWRkaW5nOworCisgIC8vIFNFQ1RJT046IFhHTUkgVHJhaW5pbmcKKyAgdWludDhfdCAgICAgICAgICAgWGdtaUxpbmtTcGVlZCAgIFtOVU1fWEdNSV9QU1RBVEVfTEVWRUxTXTsKKyAgdWludDhfdCAgICAgICAgICAgWGdtaUxpbmtXaWR0aCAgIFtOVU1fWEdNSV9QU1RBVEVfTEVWRUxTXTsKKworICB1aW50MTZfdCAgICAgICAgICBYZ21pRmNsa0ZyZXEgICAgW05VTV9YR01JX1BTVEFURV9MRVZFTFNdOworICB1aW50MTZfdCAgICAgICAgICBYZ21pU29jVm9sdGFnZSAgW05VTV9YR01JX1BTVEFURV9MRVZFTFNdOworCisgIC8vIEdQSU8gcGlucyBmb3IgSTJDIGNvbW11bmljYXRpb25zIHdpdGggMm5kIGNvbnRyb2xsZXIgZm9yIElucHV0IFRlbGVtZXRyeSBTZXF1ZW5jZQorICB1aW50OF90ICAgICAgR3Bpb0kyY1NjbDsgICAgICAgICAgLy8gU2VyaWFsIENsb2NrCisgIHVpbnQ4X3QgICAgICBHcGlvSTJjU2RhOyAgICAgICAgICAvLyBTZXJpYWwgRGF0YQorICB1aW50MTZfdCAgICAgR3Bpb1BhZGRpbmc7CisKKyAgdWludDMyX3QgICAgIEJvYXJkUmVzZXJ2ZWRbOV07CisKKyAgLy8gUGFkZGluZyBmb3IgTU1IVUIgLSBkbyBub3QgbW9kaWZ5IHRoaXMKKyAgdWludDMyX3QgICAgIE1tSHViUGFkZGluZ1s4XTsgLy8gU01VIGludGVybmFsIHVzZQorCit9IFBQVGFibGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAvLyBUaW1lIGNvbnN0YW50IHBhcmFtZXRlcnMgZm9yIGNsb2NrIGF2ZXJhZ2VzIGluIG1zCisgIHVpbnQxNl90ICAgICBHZnhjbGtBdmVyYWdlTHBmVGF1OworICB1aW50MTZfdCAgICAgU29jY2xrQXZlcmFnZUxwZlRhdTsKKyAgdWludDE2X3QgICAgIFVjbGtBdmVyYWdlTHBmVGF1OworICB1aW50MTZfdCAgICAgR2Z4QWN0aXZpdHlMcGZUYXU7CisgIHVpbnQxNl90ICAgICBVY2xrQWN0aXZpdHlMcGZUYXU7CisKKyAgdWludDE2X3QgICAgIFNvY2tldFBvd2VyTHBmVGF1OworCisgIC8vIFBhZGRpbmcgLSBpZ25vcmUKKyAgdWludDMyX3QgICAgIE1tSHViUGFkZGluZ1s4XTsgLy8gU01VIGludGVybmFsIHVzZQorfSBEcml2ZXJTbXVDb25maWdfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICB1aW50MTZfdCBDdXJyQ2xvY2tbUFBDTEtfQ09VTlRdOworICB1aW50MTZfdCBBdmVyYWdlR2Z4Y2xrRnJlcXVlbmN5OworICB1aW50MTZfdCBBdmVyYWdlU29jY2xrRnJlcXVlbmN5OworICB1aW50MTZfdCBBdmVyYWdlVWNsa0ZyZXF1ZW5jeSAgOworICB1aW50MTZfdCBBdmVyYWdlR2Z4QWN0aXZpdHkgICAgOworICB1aW50MTZfdCBBdmVyYWdlVWNsa0FjdGl2aXR5ICAgOworICB1aW50OF90ICBDdXJyU29jVm9sdGFnZU9mZnNldCAgOworICB1aW50OF90ICBDdXJyR2Z4Vm9sdGFnZU9mZnNldCAgOworICB1aW50OF90ICBDdXJyTWVtVmlkT2Zmc2V0ICAgICAgOworICB1aW50OF90ICBQYWRkaW5nOCAgICAgICAgICAgICAgOworICB1aW50MTZfdCBBdmVyYWdlU29ja2V0UG93ZXIgICAgOworICB1aW50MTZfdCBUZW1wZXJhdHVyZUVkZ2UgICAgICAgOworICB1aW50MTZfdCBUZW1wZXJhdHVyZUhvdHNwb3QgICAgOworICB1aW50MTZfdCBUZW1wZXJhdHVyZUhCTSAgICAgICAgOworICB1aW50MTZfdCBUZW1wZXJhdHVyZVZyR2Z4ICAgICAgOworICB1aW50MTZfdCBUZW1wZXJhdHVyZVZyU29jICAgICAgOworICB1aW50MTZfdCBUZW1wZXJhdHVyZVZyTWVtICAgICAgOworICB1aW50MzJfdCBUaHJvdHRsZXJTdGF0dXMgICAgICAgOworCisgIHVpbnQxNl90IEN1cnJGYW5TcGVlZCAgICAgICAgICA7CisgIHVpbnQxNl90IFBhZGRpbmcxNjsKKworICB1aW50MzJfdCBQYWRkaW5nWzRdOworCisgIC8vIFBhZGRpbmcgLSBpZ25vcmUKKyAgdWludDMyX3QgICAgIE1tSHViUGFkZGluZ1s4XTsgLy8gU01VIGludGVybmFsIHVzZQorfSBTbXVNZXRyaWNzX3Q7CisKKwordHlwZWRlZiBzdHJ1Y3QgeworICB1aW50MTZfdCBhdmdQc21Db3VudFs3NV07CisgIHVpbnQxNl90IG1pblBzbUNvdW50Wzc1XTsKKyAgZmxvYXQgICAgYXZnUHNtVm9sdGFnZVs3NV07CisgIGZsb2F0ICAgIG1pblBzbVZvbHRhZ2VbNzVdOworCisgIHVpbnQzMl90IE1tSHViUGFkZGluZ1s4XTsgLy8gU01VIGludGVybmFsIHVzZQorfSBBdmZzRGVidWdUYWJsZV90OworCit0eXBlZGVmIHN0cnVjdCB7CisgIHVpbnQ4X3QgIEF2ZnNWZXJzaW9uOworICB1aW50OF90ICBQYWRkaW5nOworICB1aW50OF90ICBBdmZzRW5bQVZGU19WT0xUQUdFX0NPVU5UXTsKKworICB1aW50OF90ICBPdmVycmlkZVZGVFtBVkZTX1ZPTFRBR0VfQ09VTlRdOworICB1aW50OF90ICBPdmVycmlkZUF2ZnNHYltBVkZTX1ZPTFRBR0VfQ09VTlRdOworCisgIHVpbnQ4X3QgIE92ZXJyaWRlVGVtcGVyYXR1cmVzW0FWRlNfVk9MVEFHRV9DT1VOVF07CisgIHVpbnQ4X3QgIE92ZXJyaWRlVkludmVyc2lvbltBVkZTX1ZPTFRBR0VfQ09VTlRdOworICB1aW50OF90ICBPdmVycmlkZVAyVltBVkZTX1ZPTFRBR0VfQ09VTlRdOworICB1aW50OF90ICBPdmVycmlkZVAyVkNoYXJ6RnJlcVtBVkZTX1ZPTFRBR0VfQ09VTlRdOworCisgIGludDMyX3QgVkZUMF9tMVtBVkZTX1ZPTFRBR0VfQ09VTlRdOyAvLyBROC4yNAorICBpbnQzMl90IFZGVDBfbTJbQVZGU19WT0xUQUdFX0NPVU5UXTsgLy8gUTEyLjEyCisgIGludDMyX3QgVkZUMF9iW0FWRlNfVk9MVEFHRV9DT1VOVF07ICAvLyBRMzIKKworICBpbnQzMl90IFZGVDFfbTFbQVZGU19WT0xUQUdFX0NPVU5UXTsgLy8gUTguMTYKKyAgaW50MzJfdCBWRlQxX20yW0FWRlNfVk9MVEFHRV9DT1VOVF07IC8vIFExMi4xMgorICBpbnQzMl90IFZGVDFfYltBVkZTX1ZPTFRBR0VfQ09VTlRdOyAgLy8gUTMyCisKKyAgaW50MzJfdCBWRlQyX20xW0FWRlNfVk9MVEFHRV9DT1VOVF07IC8vIFE4LjE2CisgIGludDMyX3QgVkZUMl9tMltBVkZTX1ZPTFRBR0VfQ09VTlRdOyAvLyBRMTIuMTIKKyAgaW50MzJfdCBWRlQyX2JbQVZGU19WT0xUQUdFX0NPVU5UXTsgIC8vIFEzMgorCisgIGludDMyX3QgQXZmc0diMF9tMVtBVkZTX1ZPTFRBR0VfQ09VTlRdOyAvLyBROC4yNAorICBpbnQzMl90IEF2ZnNHYjBfbTJbQVZGU19WT0xUQUdFX0NPVU5UXTsgLy8gUTEyLjEyCisgIGludDMyX3QgQXZmc0diMF9iW0FWRlNfVk9MVEFHRV9DT1VOVF07ICAvLyBRMzIKKworICBpbnQzMl90IEFjQnRjR2JfbTFbQVZGU19WT0xUQUdFX0NPVU5UXTsgLy8gUTguMjQKKyAgaW50MzJfdCBBY0J0Y0diX20yW0FWRlNfVk9MVEFHRV9DT1VOVF07IC8vIFExMi4xMgorICBpbnQzMl90IEFjQnRjR2JfYltBVkZTX1ZPTFRBR0VfQ09VTlRdOyAgLy8gUTMyCisKKyAgdWludDMyX3QgQXZmc1RlbXBDb2xkW0FWRlNfVk9MVEFHRV9DT1VOVF07CisgIHVpbnQzMl90IEF2ZnNUZW1wTWlkW0FWRlNfVk9MVEFHRV9DT1VOVF07CisgIHVpbnQzMl90IEF2ZnNUZW1wSG90W0FWRlNfVk9MVEFHRV9DT1VOVF07CisKKyAgdWludDMyX3QgVkludmVyc2lvbltBVkZTX1ZPTFRBR0VfQ09VTlRdOyAvLyBpbiBtViB3aXRoIDIgZnJhY3Rpb25hbCBiaXRzCisKKworICBpbnQzMl90IFAyVl9tMVtBVkZTX1ZPTFRBR0VfQ09VTlRdOyAvLyBROC4yNAorICBpbnQzMl90IFAyVl9tMltBVkZTX1ZPTFRBR0VfQ09VTlRdOyAvLyBRMTIuMTIKKyAgaW50MzJfdCBQMlZfYltBVkZTX1ZPTFRBR0VfQ09VTlRdOyAgLy8gUTMyCisKKyAgdWludDMyX3QgUDJWQ2hhcnpGcmVxW0FWRlNfVk9MVEFHRV9DT1VOVF07IC8vIGluIDEwS0h6IHVuaXRzCisKKyAgdWludDMyX3QgRW5hYmxlZEF2ZnNNb2R1bGVzWzJdOworCisgIHVpbnQzMl90IE1tSHViUGFkZGluZ1s4XTsgLy8gU01VIGludGVybmFsIHVzZQorfSBBdmZzRnVzZU92ZXJyaWRlX3Q7CisKKy8qIE5PVCBDVVJSRU5UTFkgVVNFRAordHlwZWRlZiBzdHJ1Y3QgeworICB1aW50OF90ICAgR2Z4X0FjdGl2ZUh5c3RMaW1pdDsKKyAgdWludDhfdCAgIEdmeF9JZGxlSHlzdExpbWl0OworICB1aW50OF90ICAgR2Z4X0ZQUzsKKyAgdWludDhfdCAgIEdmeF9NaW5BY3RpdmVGcmVxVHlwZTsKKyAgdWludDhfdCAgIEdmeF9Cb29zdGVyRnJlcVR5cGU7CisgIHVpbnQ4X3QgICBHZnhfTWluRnJlcVN0ZXA7ICAgICAgICAgICAgICAgIC8vIE1pbmltdW0gZGVsdGEgYmV0d2VlbiBjdXJyZW50IGFuZCB0YXJnZXQgZnJlcXVlbnkgaW4gb3JkZXIgZm9yIEZXIHRvIGNoYW5nZSBjbG9jay4KKyAgdWludDhfdCAgIEdmeF9Vc2VSbGNCdXN5OworICB1aW50OF90ICAgUGFkZGluZ0dmeFszXTsKKyAgdWludDE2X3QgIEdmeF9NaW5BY3RpdmVGcmVxOyAgICAgICAgICAgICAgLy8gTUh6CisgIHVpbnQxNl90ICBHZnhfQm9vc3RlckZyZXE7ICAgICAgICAgICAgICAgIC8vIE1IegorICB1aW50MTZfdCAgR2Z4X1BEX0RhdGFfdGltZV9jb25zdGFudDsgICAgICAvLyBUaW1lIGNvbnN0YW50IG9mIFBEIGNvbnRyb2xsZXIgaW4gbXMKKyAgdWludDMyX3QgIEdmeF9QRF9EYXRhX2xpbWl0X2E7ICAgICAgICAgICAgLy8gUTE2CisgIHVpbnQzMl90ICBHZnhfUERfRGF0YV9saW1pdF9iOyAgICAgICAgICAgIC8vIFExNgorICB1aW50MzJfdCAgR2Z4X1BEX0RhdGFfbGltaXRfYzsgICAgICAgICAgICAvLyBRMTYKKyAgdWludDMyX3QgIEdmeF9QRF9EYXRhX2Vycm9yX2NvZWZmOyAgICAgICAgLy8gUTE2CisgIHVpbnQzMl90ICBHZnhfUERfRGF0YV9lcnJvcl9yYXRlX2NvZWZmOyAgIC8vIFExNgorCisgIHVpbnQ4X3QgICBNZW1fQWN0aXZlSHlzdExpbWl0OworICB1aW50OF90ICAgTWVtX0lkbGVIeXN0TGltaXQ7CisgIHVpbnQ4X3QgICBNZW1fRlBTOworICB1aW50OF90ICAgTWVtX01pbkFjdGl2ZUZyZXFUeXBlOworICB1aW50OF90ICAgTWVtX0Jvb3N0ZXJGcmVxVHlwZTsKKyAgdWludDhfdCAgIE1lbV9NaW5GcmVxU3RlcDsgICAgICAgICAgICAgICAgLy8gTWluaW11bSBkZWx0YSBiZXR3ZWVuIGN1cnJlbnQgYW5kIHRhcmdldCBmcmVxdWVueSBpbiBvcmRlciBmb3IgRlcgdG8gY2hhbmdlIGNsb2NrLgorICB1aW50OF90ICAgTWVtX1VzZVJsY0J1c3k7CisgIHVpbnQ4X3QgICBQYWRkaW5nTWVtWzNdOworICB1aW50MTZfdCAgTWVtX01pbkFjdGl2ZUZyZXE7ICAgICAgICAgICAgICAvLyBNSHoKKyAgdWludDE2X3QgIE1lbV9Cb29zdGVyRnJlcTsgICAgICAgICAgICAgICAgLy8gTUh6CisgIHVpbnQxNl90ICBNZW1fUERfRGF0YV90aW1lX2NvbnN0YW50OyAgICAgIC8vIFRpbWUgY29uc3RhbnQgb2YgUEQgY29udHJvbGxlciBpbiBtcworICB1aW50MzJfdCAgTWVtX1BEX0RhdGFfbGltaXRfYTsgICAgICAgICAgICAvLyBRMTYKKyAgdWludDMyX3QgIE1lbV9QRF9EYXRhX2xpbWl0X2I7ICAgICAgICAgICAgLy8gUTE2CisgIHVpbnQzMl90ICBNZW1fUERfRGF0YV9saW1pdF9jOyAgICAgICAgICAgIC8vIFExNgorICB1aW50MzJfdCAgTWVtX1BEX0RhdGFfZXJyb3JfY29lZmY7ICAgICAgICAvLyBRMTYKKyAgdWludDMyX3QgIE1lbV9QRF9EYXRhX2Vycm9yX3JhdGVfY29lZmY7ICAgLy8gUTE2CisKKyAgdWludDMyX3QgIE1lbV9VcFRocmVzaG9sZF9MaW1pdDsgICAgICAgICAgLy8gUTE2CisgIHVpbnQ4X3QgICBNZW1fVXBIeXN0TGltaXQ7CisgIHVpbnQ4X3QgICBNZW1fRG93bkh5c3RMaW1pdDsKKyAgdWludDE2X3QgIE1lbV9GcHM7CisKKyAgdWludDMyX3QgIE1tSHViUGFkZGluZ1s4XTsgLy8gU01VIGludGVybmFsIHVzZQorfSBEcG1BY3Rpdml0eU1vbml0b3JDb2VmZkludF90OworKi8KKworLy8gVGhlc2UgZGVmaW5lcyBhcmUgdXNlZCB3aXRoIHRoZSBmb2xsb3dpbmcgbWVzc2FnZXM6CisvLyBTTUNfTVNHX1RyYW5zZmVyVGFibGVEcmFtMlNtdQorLy8gU01DX01TR19UcmFuc2ZlclRhYmxlU211MkRyYW0KKyNkZWZpbmUgVEFCTEVfUFBUQUJMRSAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUQUJMRV9BVkZTICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIFRBQkxFX0FWRlNfUFNNX0RFQlVHICAgICAgICAgIDIKKyNkZWZpbmUgVEFCTEVfQVZGU19GVVNFX09WRVJSSURFICAgICAgMworI2RlZmluZSBUQUJMRV9QTVNUQVRVU0xPRyAgICAgICAgICAgICA0CisjZGVmaW5lIFRBQkxFX1NNVV9NRVRSSUNTICAgICAgICAgICAgIDUKKyNkZWZpbmUgVEFCTEVfRFJJVkVSX1NNVV9DT05GSUcgICAgICAgNgorLy8jZGVmaW5lIFRBQkxFX0FDVElWSVRZX01PTklUT1JfQ09FRkYgIDcKKyNkZWZpbmUgVEFCTEVfT1ZFUkRSSVZFICAgICAgICAgICAgICAgNworI2RlZmluZSBUQUJMRV9XQUZMX1hHTUlfVE9QT0xPR1kgICAgICA4CisjZGVmaW5lIFRBQkxFX0NPVU5UICAgICAgICAgICAgICAgICAgIDkKKworLy8gVGhlc2UgZGVmaW5lcyBhcmUgdXNlZCB3aXRoIHRoZSBTTUNfTVNHX1NldFVjbGtGYXN0U3dpdGNoIG1lc3NhZ2UuCit0eXBlZGVmIGVudW0geworICBERl9TV0lUQ0hfVFlQRV9GQVNUID0gMCwKKyAgREZfU1dJVENIX1RZUEVfU0xPVywKKyAgREZfU1dJVENIX1RZUEVfQ09VTlQsCit9IERGX1NXSVRDSF9UWVBFX2U7CisKK3R5cGVkZWYgZW51bSB7CisgIERSQU1fQklUX1dJRFRIX0RJU0FCTEVEID0gMCwKKyAgRFJBTV9CSVRfV0lEVEhfWF84LAorICBEUkFNX0JJVF9XSURUSF9YXzE2LAorICBEUkFNX0JJVF9XSURUSF9YXzMyLAorICBEUkFNX0JJVF9XSURUSF9YXzY0LCAvLyBOT1QgVVNFRC4KKyAgRFJBTV9CSVRfV0lEVEhfWF8xMjgsCisgIERSQU1fQklUX1dJRFRIX0NPVU5ULAorfSBEUkFNX0JJVF9XSURUSF9UWVBFX2U7CisKKyNkZWZpbmUgUkVNT1ZFX0ZNQVhfTUFSR0lOX0JJVCAgICAgMHgwCisjZGVmaW5lIFJFTU9WRV9EQ1RPTF9NQVJHSU5fQklUICAgIDB4MQorI2RlZmluZSBSRU1PVkVfUExBVEZPUk1fTUFSR0lOX0JJVCAweDIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211MTFfZHJpdmVyX2lmX25hdmkxMC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3NtdTExX2RyaXZlcl9pZl9uYXZpMTAuaAppbmRleCBhZGJiZmViLi5hYzAxMjBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211MTFfZHJpdmVyX2lmX25hdmkxMC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXUxMV9kcml2ZXJfaWZfbmF2aTEwLmgKQEAgLTI2LDcgKzI2LDkgQEAKIC8vICoqKiBJTVBPUlRBTlQgKioqCiAvLyBTTVUgVEVBTTogQWx3YXlzIGluY3JlbWVudCB0aGUgaW50ZXJmYWNlIHZlcnNpb24gaWYgCiAvLyBhbnkgc3RydWN0dXJlIGlzIGNoYW5nZWQgaW4gdGhpcyBmaWxlCi0jZGVmaW5lIFNNVTExX0RSSVZFUl9JRl9WRVJTSU9OIDB4MzMKKy8vIEJlIGF3YXJlIG9mIHRoYXQgdGhlIHZlcnNpb24gc2hvdWxkIGJlIHVwZGF0ZWQgaW4KKy8vIHNtdV92MTFfMC5oLCBtYXliZSByZW5hbWUgaXMgYWxzbyBuZWVkZWQuCisvLyAjZGVmaW5lIFNNVTExX0RSSVZFUl9JRl9WRVJTSU9OIDB4MzMKIAogI2RlZmluZSBQUFRBQkxFX05WMTBfU01VX1ZFUlNJT04gOAogCkBAIC01MDQsMTAgKzUwNiwxMSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgIHVpbnQzMl90IFN0YXR1czsKIAogICB1aW50MTZfdCBEaWVUZW1wZXJhdHVyZTsKLSAgdWludDE2X3QgTWVtb3J5VGVtcGVyYXR1cmU7CisgIHVpbnQxNl90IEN1cnJlbnRNZW1vcnlUZW1wZXJhdHVyZTsKIAotICB1aW50MTZfdCBTZWxlY3RlZENhcmRQb3dlcjsKLSAgdWludDE2X3QgUmVzZXJ2ZWQ0OyAKKyAgdWludDE2X3QgTWVtb3J5VGVtcGVyYXR1cmU7CisgIHVpbnQ4X3QgTWVtb3J5SG90c3BvdFBvc2l0aW9uOworICB1aW50OF90IFJlc2VydmVkNDsKIAogICB1aW50MzJfdCBCb2FyZExldmVsRW5lcmd5QWNjdW11bGF0b3I7ICAKIH0gT3V0T2ZCYW5kTW9uaXRvcl90OwpAQCAtNzk5LDcgKzgwMiwxMiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgIC8vIE12ZGQgU3ZpMiBEaXYgUmF0aW8gU2V0dGluZwogICB1aW50MzJfdCAgICAgTXZkZFJhdGlvOyAvLyBUaGlzIGlzIHVzZWQgZm9yIE1WREQgVmlkIHdvcmthcm91bmQuIEl0IGhhcyAxNiBmcmFjdGlvbmFsIGJpdHMgKFExNi4xNikKIAotICB1aW50MzJfdCAgICAgQm9hcmRSZXNlcnZlZFs5XTsKKyAgdWludDhfdCAgICAgIFJlbmVzZXNMb2FkTGluZUVuYWJsZWQ7CisgIHVpbnQ4X3QgICAgICBHZnhMb2FkbGluZVJlc2lzdGFuY2U7CisgIHVpbnQ4X3QgICAgICBTb2NMb2FkbGluZVJlc2lzdGFuY2U7CisgIHVpbnQ4X3QgICAgICBQYWRkaW5nOF9Mb2FkbGluZTsKKworICB1aW50MzJfdCAgICAgQm9hcmRSZXNlcnZlZFs4XTsKIAogICAvLyBQYWRkaW5nIGZvciBNTUhVQiAtIGRvIG5vdCBtb2RpZnkgdGhpcwogICB1aW50MzJfdCAgICAgTW1IdWJQYWRkaW5nWzhdOyAvLyBTTVUgaW50ZXJuYWwgdXNlCkBAIC05MDMsMTMgKzkxMSwyMiBAQCB0eXBlZGVmIHN0cnVjdCB7CiB9IFdhdGVybWFya3NfdDsKIAogdHlwZWRlZiBzdHJ1Y3QgeworICB1aW50MTZfdCBhdmdQc21Db3VudFsyOF07CisgIHVpbnQxNl90IG1pblBzbUNvdW50WzI4XTsKKyAgZmxvYXQgICAgYXZnUHNtVm9sdGFnZVsyOF07CisgIGZsb2F0ICAgIG1pblBzbVZvbHRhZ2VbMjhdOworCisgIHVpbnQzMl90ICAgICBNbUh1YlBhZGRpbmdbMzJdOyAvLyBTTVUgaW50ZXJuYWwgdXNlCit9IEF2ZnNEZWJ1Z1RhYmxlX3RfTlYxNDsKKwordHlwZWRlZiBzdHJ1Y3QgewogICB1aW50MTZfdCBhdmdQc21Db3VudFszNl07CiAgIHVpbnQxNl90IG1pblBzbUNvdW50WzM2XTsKICAgZmxvYXQgICAgYXZnUHNtVm9sdGFnZVszNl07IAogICBmbG9hdCAgICBtaW5Qc21Wb2x0YWdlWzM2XTsKIAogICB1aW50MzJfdCAgICAgTW1IdWJQYWRkaW5nWzhdOyAvLyBTTVUgaW50ZXJuYWwgdXNlCi19IEF2ZnNEZWJ1Z1RhYmxlX3Q7Cit9IEF2ZnNEZWJ1Z1RhYmxlX3RfTlYxMDsKIAogdHlwZWRlZiBzdHJ1Y3QgewogICB1aW50OF90ICBBdmZzVmVyc2lvbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXUxMl9kcml2ZXJfaWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXUxMl9kcml2ZXJfaWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjdjODI4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3NtdTEyX2RyaXZlcl9pZi5oCkBAIC0wLDAgKzEsMjE3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaWZuZGVmIFNNVTEyX0RSSVZFUl9JRl9ICisjZGVmaW5lIFNNVTEyX0RSSVZFUl9JRl9ICisKKy8vICoqKiBJTVBPUlRBTlQgKioqCisvLyBTTVUgVEVBTTogQWx3YXlzIGluY3JlbWVudCB0aGUgaW50ZXJmYWNlIHZlcnNpb24gaWYgCisvLyBhbnkgc3RydWN0dXJlIGlzIGNoYW5nZWQgaW4gdGhpcyBmaWxlCisjZGVmaW5lIFNNVTEyX0RSSVZFUl9JRl9WRVJTSU9OIDEwCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgaW50MzJfdCB2YWx1ZTsKKyAgdWludDMyX3QgbnVtRnJhY3Rpb25hbEJpdHM7Cit9IEZsb2F0SW5JbnRGb3JtYXRfdDsKKwordHlwZWRlZiBlbnVtIHsKKyAgRFNQQ0xLX0RDRkNMSyA9IDAsCisgIERTUENMS19ESVNQQ0xLLAorICBEU1BDTEtfUElYQ0xLLAorICBEU1BDTEtfUEhZQ0xLLAorICBEU1BDTEtfQ09VTlQsCit9IERTUENMS19lOworCit0eXBlZGVmIHN0cnVjdCB7CisgIHVpbnQxNl90IEZyZXE7IC8vIGluIE1IegorICB1aW50MTZfdCBWaWQ7ICAvLyBtaW4gdm9sdGFnZSBpbiBTVkkyIFZJRAorfSBEaXNwbGF5Q2xvY2tUYWJsZV90OworCit0eXBlZGVmIHN0cnVjdCB7CisgIHVpbnQxNl90IE1pbkNsb2NrOyAvLyBUaGlzIGlzIGVpdGhlciBEQ0ZDTEsgb3IgU09DQ0xLIChpbiBNSHopCisgIHVpbnQxNl90IE1heENsb2NrOyAvLyBUaGlzIGlzIGVpdGhlciBEQ0ZDTEsgb3IgU09DQ0xLIChpbiBNSHopCisgIHVpbnQxNl90IE1pbk1jbGs7CisgIHVpbnQxNl90IE1heE1jbGs7CisKKyAgdWludDhfdCAgV21TZXR0aW5nOworICB1aW50OF90ICBXbVR5cGU7ICAvLyBVc2VkIGZvciBub3JtYWwgcHN0YXRlIGNoYW5nZSBvciBtZW1vcnkgcmV0cmFpbmluZworICB1aW50OF90ICBQYWRkaW5nWzJdOworfSBXYXRlcm1hcmtSb3dHZW5lcmljX3Q7CisKKyNkZWZpbmUgTlVNX1dNX1JBTkdFUyA0CisjZGVmaW5lIFdNX1BTVEFURV9DSEcgMAorI2RlZmluZSBXTV9SRVRSQUlOSU5HIDEKKwordHlwZWRlZiBlbnVtIHsKKyAgV01fU09DQ0xLID0gMCwKKyAgV01fRENGQ0xLLAorICBXTV9DT1VOVCwKK30gV01fQ0xPQ0tfZTsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAvLyBXYXRlcm1hcmtzCisgIFdhdGVybWFya1Jvd0dlbmVyaWNfdCBXYXRlcm1hcmtSb3dbV01fQ09VTlRdW05VTV9XTV9SQU5HRVNdOworCisgIHVpbnQzMl90ICAgICBNbUh1YlBhZGRpbmdbN107IC8vIFNNVSBpbnRlcm5hbCB1c2UKK30gV2F0ZXJtYXJrc190OworCit0eXBlZGVmIGVudW0geworICBDVVNUT01fRFBNX1NFVFRJTkdfR0ZYQ0xLLAorICBDVVNUT01fRFBNX1NFVFRJTkdfQ0NMSywKKyAgQ1VTVE9NX0RQTV9TRVRUSU5HX0ZDTEtfQ0NYLAorICBDVVNUT01fRFBNX1NFVFRJTkdfRkNMS19HRlgsCisgIENVU1RPTV9EUE1fU0VUVElOR19GQ0xLX1NUQUxMUywKKyAgQ1VTVE9NX0RQTV9TRVRUSU5HX0xDTEssCisgIENVU1RPTV9EUE1fU0VUVElOR19DT1VOVCwKK30gQ1VTVE9NX0RQTV9TRVRUSU5HX2U7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgdWludDhfdCAgICAgICAgICAgICBBY3RpdmVIeXN0TGltaXQ7CisgIHVpbnQ4X3QgICAgICAgICAgICAgSWRsZUh5c3RMaW1pdDsKKyAgdWludDhfdCAgICAgICAgICAgICBGUFM7CisgIHVpbnQ4X3QgICAgICAgICAgICAgTWluQWN0aXZlRnJlcVR5cGU7CisgIEZsb2F0SW5JbnRGb3JtYXRfdCAgTWluQWN0aXZlRnJlcTsKKyAgRmxvYXRJbkludEZvcm1hdF90ICBQRF9EYXRhX2xpbWl0OworICBGbG9hdEluSW50Rm9ybWF0X3QgIFBEX0RhdGFfdGltZV9jb25zdGFudDsKKyAgRmxvYXRJbkludEZvcm1hdF90ICBQRF9EYXRhX2Vycm9yX2NvZWZmOworICBGbG9hdEluSW50Rm9ybWF0X3QgIFBEX0RhdGFfZXJyb3JfcmF0ZV9jb2VmZjsKK30gRHBtQWN0aXZpdHlNb25pdG9yQ29lZmZFeHRfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICBEcG1BY3Rpdml0eU1vbml0b3JDb2VmZkV4dF90IERwbUFjdGl2aXR5TW9uaXRvckNvZWZmW0NVU1RPTV9EUE1fU0VUVElOR19DT1VOVF07Cit9IEN1c3RvbURwbVNldHRpbmdzX3Q7CisKKworI2RlZmluZSBOVU1fRENGQ0xLX0RQTV9MRVZFTFMgOAorI2RlZmluZSBOVU1fU09DQ0xLX0RQTV9MRVZFTFMgOAorI2RlZmluZSBOVU1fRkNMS19EUE1fTEVWRUxTICAgNAorI2RlZmluZSBOVU1fTUVNQ0xLX0RQTV9MRVZFTFMgNAorI2RlZmluZSBOVU1fVkNOX0RQTV9MRVZFTFMgICAgOAorCit0eXBlZGVmIHN0cnVjdCB7CisgIHVpbnQzMl90IEZyZXE7ICAgIC8vIEluIE1IegorICB1aW50MzJfdCBWb2w7ICAgICAvLyBNaWxsaXZvbHRzIHdpdGggMiBmcmFjdGlvbmFsIGJpdHMKK30gRHBtQ2xvY2tfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICBEcG1DbG9ja190IERjZkNsb2Nrc1tOVU1fRENGQ0xLX0RQTV9MRVZFTFNdOworICBEcG1DbG9ja190IFNvY0Nsb2Nrc1tOVU1fU09DQ0xLX0RQTV9MRVZFTFNdOworICBEcG1DbG9ja190IEZDbG9ja3NbTlVNX0ZDTEtfRFBNX0xFVkVMU107CisgIERwbUNsb2NrX3QgTWVtQ2xvY2tzW05VTV9NRU1DTEtfRFBNX0xFVkVMU107CisgIERwbUNsb2NrX3QgVkNsb2Nrc1tOVU1fVkNOX0RQTV9MRVZFTFNdOworICBEcG1DbG9ja190IERDbG9ja3NbTlVNX1ZDTl9EUE1fTEVWRUxTXTsKKworICB1aW50OF90IE51bURjZkNsa0RwbUVuYWJsZWQ7CisgIHVpbnQ4X3QgTnVtU29jQ2xrRHBtRW5hYmxlZDsKKyAgdWludDhfdCBOdW1GQ2xrRHBtRW5hYmxlZDsKKyAgdWludDhfdCBOdW1NZW1DbGtEcG1FbmFibGVkOworICB1aW50OF90IE51bVZDbGtEcG1FbmFibGVkOworICB1aW50OF90IE51bURDbGtEcG1FbmFibGVkOworICB1aW50OF90IHNwYXJlWzJdOworfSBEcG1DbG9ja3NfdDsKKworCit0eXBlZGVmIGVudW0geworICBDTE9DS19TTU5DTEsgPSAwLAorICBDTE9DS19TT0NDTEssCisgIENMT0NLX01QMENMSywKKyAgQ0xPQ0tfTVAxQ0xLLAorICBDTE9DS19NUDJDTEssCisgIENMT0NLX1ZDTEssCisgIENMT0NLX0xDTEssCisgIENMT0NLX0RDTEssCisgIENMT0NLX0FDTEssCisgIENMT0NLX0lTUENMSywKKyAgQ0xPQ0tfU0hVQkNMSywKKyAgQ0xPQ0tfRElTUENMSywKKyAgQ0xPQ0tfRFBQQ0xLLAorICBDTE9DS19EUFJFRkNMSywKKyAgQ0xPQ0tfRENGQ0xLLAorICBDTE9DS19GQ0xLLAorICBDTE9DS19VTUNDTEssCisgIENMT0NLX0dGWENMSywKKyAgQ0xPQ0tfQ09VTlQsCit9IENMT0NLX0lEc19lOworCisvLyBUaHJvdHRsZXIgU3RhdHVzIEJpdG1hc2sKKyNkZWZpbmUgVEhST1RUTEVSX1NUQVRVU19CSVRfU1BMICAgICAgICAwCisjZGVmaW5lIFRIUk9UVExFUl9TVEFUVVNfQklUX0ZQUFQgICAgICAgMQorI2RlZmluZSBUSFJPVFRMRVJfU1RBVFVTX0JJVF9TUFBUICAgICAgIDIKKyNkZWZpbmUgVEhST1RUTEVSX1NUQVRVU19CSVRfU1BQVF9BUFUgICAzCisjZGVmaW5lIFRIUk9UVExFUl9TVEFUVVNfQklUX1RITV9DT1JFICAgNAorI2RlZmluZSBUSFJPVFRMRVJfU1RBVFVTX0JJVF9USE1fR0ZYICAgIDUKKyNkZWZpbmUgVEhST1RUTEVSX1NUQVRVU19CSVRfVEhNX1NPQyAgICA2CisjZGVmaW5lIFRIUk9UVExFUl9TVEFUVVNfQklUX1REQ19WREQgICAgNworI2RlZmluZSBUSFJPVFRMRVJfU1RBVFVTX0JJVF9URENfU09DICAgIDgKKwordHlwZWRlZiBzdHJ1Y3QgeworICB1aW50MTZfdCBDbG9ja0ZyZXF1ZW5jeVtDTE9DS19DT1VOVF07IC8vW01Iel0KKworICB1aW50MTZfdCBBdmVyYWdlR2Z4Y2xrRnJlcXVlbmN5OyAgICAgIC8vW01Iel0KKyAgdWludDE2X3QgQXZlcmFnZVNvY2Nsa0ZyZXF1ZW5jeTsgICAgICAvL1tNSHpdCisgIHVpbnQxNl90IEF2ZXJhZ2VWY2xrRnJlcXVlbmN5OyAgICAgICAgLy9bTUh6XQorICB1aW50MTZfdCBBdmVyYWdlRmNsa0ZyZXF1ZW5jeTsgICAgICAgIC8vW01Iel0KKworICB1aW50MTZfdCBBdmVyYWdlR2Z4QWN0aXZpdHk7ICAgICAgICAgIC8vW2NlbnRpXQorICB1aW50MTZfdCBBdmVyYWdlVXZkQWN0aXZpdHk7ICAgICAgICAgIC8vW2NlbnRpXQorCisgIHVpbnQxNl90IFZvbHRhZ2VbMl07ICAgICAgICAgICAgICAgICAgLy9bbVZdIGluZGljZXM6IFZERENSX1ZERCwgVkREQ1JfU09DCisgIHVpbnQxNl90IEN1cnJlbnRbMl07ICAgICAgICAgICAgICAgICAgLy9bbUFdIGluZGljZXM6IFZERENSX1ZERCwgVkREQ1JfU09DCisgIHVpbnQxNl90IFBvd2VyWzJdOyAgICAgICAgICAgICAgICAgICAgLy9bbVddIGluZGljZXM6IFZERENSX1ZERCwgVkREQ1JfU09DCisKKyAgdWludDE2X3QgRmFuUHdtOyAgICAgICAgICAgICAgICAgICAgICAvL1ttaWxsaV0KKyAgdWludDE2X3QgQ3VycmVudFNvY2tldFBvd2VyOyAgICAgICAgICAvL1ttV10KKworICB1aW50MTZfdCBDb3JlRnJlcXVlbmN5WzhdOyAgICAgICAgICAgIC8vW01Iel0KKyAgdWludDE2X3QgQ29yZVBvd2VyWzhdOyAgICAgICAgICAgICAgICAvL1ttV10KKyAgdWludDE2X3QgQ29yZVRlbXBlcmF0dXJlWzhdOyAgICAgICAgICAvL1tjZW50aS1DZWxzaXVzXQorICB1aW50MTZfdCBMM0ZyZXF1ZW5jeVsyXTsgICAgICAgICAgICAgIC8vW01Iel0KKyAgdWludDE2X3QgTDNUZW1wZXJhdHVyZVsyXTsgICAgICAgICAgICAvL1tjZW50aS1DZWxzaXVzXQorCisgIHVpbnQxNl90IEdmeFRlbXBlcmF0dXJlOyAgICAgICAgICAgICAgLy9bY2VudGktQ2Vsc2l1c10KKyAgdWludDE2X3QgU29jVGVtcGVyYXR1cmU7ICAgICAgICAgICAgICAvL1tjZW50aS1DZWxzaXVzXQorICB1aW50MTZfdCBUaHJvdHRsZXJTdGF0dXM7CisgIHVpbnQxNl90IHNwYXJlOworfSBTbXVNZXRyaWNzX3Q7CisKKworLy8gV29ya2xvYWQgYml0cworI2RlZmluZSBXT1JLTE9BRF9QUExJQl9GVUxMX1NDUkVFTl8zRF9CSVQgMAorI2RlZmluZSBXT1JLTE9BRF9QUExJQl9WSURFT19CSVQgICAgICAgICAgMgorI2RlZmluZSBXT1JLTE9BRF9QUExJQl9WUl9CSVQgICAgICAgICAgICAgMworI2RlZmluZSBXT1JLTE9BRF9QUExJQl9DT01QVVRFX0JJVCAgICAgICAgNAorI2RlZmluZSBXT1JLTE9BRF9QUExJQl9DVVNUT01fQklUICAgICAgICAgNQorI2RlZmluZSBXT1JLTE9BRF9QUExJQl9DT1VOVCAgICAgICAgICAgICAgNgorCisjZGVmaW5lIFRBQkxFX0JJT1NfSUYgICAgICAgICAgICAwIC8vIENhbGxlZCBieSBCSU9TCisjZGVmaW5lIFRBQkxFX1dBVEVSTUFSS1MgICAgICAgICAxIC8vIENhbGxlZCBieSBEcml2ZXIKKyNkZWZpbmUgVEFCTEVfQ1VTVE9NX0RQTSAgICAgICAgIDIgLy8gQ2FsbGVkIGJ5IERyaXZlcgorI2RlZmluZSBUQUJMRV9TUEFSRTEgICAgICAgICAgICAgMworI2RlZmluZSBUQUJMRV9EUE1DTE9DS1MgICAgICAgICAgNCAvLyBDYWxsZWQgYnkgRHJpdmVyCisjZGVmaW5lIFRBQkxFX01PTUVOVEFSWV9QTSAgICAgICA1IC8vIENhbGxlZCBieSBUb29scworI2RlZmluZSBUQUJMRV9NT0RFUk5fU1REQlkgICAgICAgNiAvLyBDYWxsZWQgYnkgVG9vbHMgZm9yIE1vZGVybiBTdGFuZGJ5IExvZworI2RlZmluZSBUQUJMRV9TTVVfTUVUUklDUyAgICAgICAgNyAvLyBDYWxsZWQgYnkgRHJpdmVyCisjZGVmaW5lIFRBQkxFX0NPVU5UICAgICAgICAgICAgICA4CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3R5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBkZDA1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3R5cGVzLmgKQEAgLTAsMCArMSwyNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBfX1NNVV9UWVBFU19IX18KKyNkZWZpbmUgX19TTVVfVFlQRVNfSF9fCisKKyNkZWZpbmUgU01VX01FU1NBR0VfVFlQRVMJCQkgICAgICBcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKFRlc3RNZXNzYWdlKSwJCSAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0U211VmVyc2lvbiksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0RHJpdmVySWZWZXJzaW9uKSwgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0QWxsb3dlZEZlYXR1cmVzTWFza0xvdyksICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0QWxsb3dlZEZlYXR1cmVzTWFza0hpZ2gpLCAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRW5hYmxlQWxsU211RmVhdHVyZXMpLCAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRGlzYWJsZUFsbFNtdUZlYXR1cmVzKSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRW5hYmxlU211RmVhdHVyZXNMb3cpLCAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRW5hYmxlU211RmVhdHVyZXNIaWdoKSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRGlzYWJsZVNtdUZlYXR1cmVzTG93KSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRGlzYWJsZVNtdUZlYXR1cmVzSGlnaCksICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0RW5hYmxlZFNtdUZlYXR1cmVzTG93KSwgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0RW5hYmxlZFNtdUZlYXR1cmVzSGlnaCksICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0V29ya2xvYWRNYXNrKSwgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0UHB0TGltaXQpLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0RHJpdmVyRHJhbUFkZHJIaWdoKSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0RHJpdmVyRHJhbUFkZHJMb3cpLCAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0VG9vbHNEcmFtQWRkckhpZ2gpLCAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0VG9vbHNEcmFtQWRkckxvdyksICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoVHJhbnNmZXJUYWJsZVNtdTJEcmFtKSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoVHJhbnNmZXJUYWJsZURyYW0yU211KSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoVXNlRGVmYXVsdFBQVGFibGUpLCAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoVXNlQmFja3VwUFBUYWJsZSksICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUnVuQnRjKSwgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUmVxdWVzdEkyQ0J1cyksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUmVsZWFzZUkyQ0J1cyksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0Rmxvb3JTb2NWb2x0YWdlKSwgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU29mdFJlc2V0KSwgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU3RhcnRCYWNvTW9uaXRvciksICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoQ2FuY2VsQmFjb01vbml0b3IpLCAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRW50ZXJCYWNvKSwgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0U29mdE1pbkJ5RnJlcSksICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0U29mdE1heEJ5RnJlcSksICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0SGFyZE1pbkJ5RnJlcSksICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0SGFyZE1heEJ5RnJlcSksICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0TWluRHBtRnJlcSksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0TWF4RHBtRnJlcSksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0RHBtRnJlcUJ5SW5kZXgpLCAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0RHBtQ2xvY2tGcmVxKSwgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0U3NWb2x0YWdlQnlEcG0pLCAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0TWVtb3J5Q2hhbm5lbENvbmZpZyksICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0R2VtaW5pTW9kZSksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0R2VtaW5pQXBlcnR1cmVIaWdoKSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0R2VtaW5pQXBlcnR1cmVMb3cpLCAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0TWluTGlua0RwbUJ5SW5kZXgpLCAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoT3ZlcnJpZGVQY2llUGFyYW1ldGVycyksICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoT3ZlckRyaXZlU2V0UGVyY2VudGFnZSksICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0TWluRGVlcFNsZWVwRGNlZmNsayksICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUmVlbmFibGVBY0RjSW50ZXJydXB0KSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoTm90aWZ5UG93ZXJTb3VyY2UpLCAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0VWNsa0Zhc3RTd2l0Y2gpLCAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0VWNsa0Rvd25IeXN0KSwgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2Z4RGV2aWNlRHJpdmVyUmVzZXQpLCAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0Q3VycmVudFJwbSksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0VmlkZW9GcHMpLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0VGpNYXgpLCAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0RmFuVGVtcGVyYXR1cmVUYXJnZXQpLCAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUHJlcGFyZU1wMUZvclVubG9hZCksICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRHJhbUxvZ1NldERyYW1BZGRySGlnaCksICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRHJhbUxvZ1NldERyYW1BZGRyTG93KSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRHJhbUxvZ1NldERyYW1TaXplKSwgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0RmFuTWF4UnBtKSwgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0RmFuTWluUHdtKSwgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoQ29uZmlndXJlR2Z4RGlkdCksICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoTnVtT2ZEaXNwbGF5cyksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUmVtb3ZlTWFyZ2lucyksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUmVhZFNlcmlhbE51bVRvcDMyKSwgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUmVhZFNlcmlhbE51bUJvdHRvbTMyKSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0U3lzdGVtVmlydHVhbERyYW1BZGRySGlnaCksIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0U3lzdGVtVmlydHVhbERyYW1BZGRyTG93KSwgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoV2FmbFRlc3QpLCAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0RmNsa0dmeENsa1JhdGlvKSwgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoQWxsb3dHZnhPZmYpLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRGlzYWxsb3dHZnhPZmYpLCAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0UHB0TGltaXQpLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0RGNNb2RlTWF4RHBtRnJlcSksICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0RGVidWdEYXRhKSwgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0WGdtaU1vZGUpLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUnVuQWZsbEJ0YyksICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRXhpdEJhY28pLCAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUHJlcGFyZU1wMUZvclJlc2V0KSwgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUHJlcGFyZU1wMUZvclNodXRkb3duKSwgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0TUdwdUZhbkJvb3N0TGltaXRScG0pLCAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0QVZGU1ZvbHRhZ2VCeURwbSksICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUG93ZXJVcFZjbiksICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUG93ZXJEb3duVmNuKSwgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUG93ZXJVcEpwZWcpLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUG93ZXJEb3duSnBlZyksICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoQmFjb0F1ZGlvRDNQTUUpLCAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoQXJtRDMpLCAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUnVuR2Z4RGNCdGMpLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUnVuU29jRGNCdGMpLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0TWVtb3J5Q2hhbm5lbEVuYWJsZSksICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoU2V0RGZTd2l0Y2hUeXBlKSwgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0Vm9sdGFnZUJ5RHBtKSwgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR2V0Vm9sdGFnZUJ5RHBtT3ZlcmRyaXZlKSwgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUG93ZXJVcFZjbjApLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoUG93ZXJEb3duVmNuMCksICAgICAgICAgICAgICAgXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChQb3dlclVwVmNuMSksICAgICAgICAgICAgICAgICAgXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChQb3dlckRvd25WY24xKSwgICAgICAgICAgICAgICAgXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChQb3dlclVwR2Z4KSwgICAgICAgICAgICAgICAgICAgXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChQb3dlckRvd25Jc3BCeVRpbGUpLCAgICAgICAgICAgXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChQb3dlclVwSXNwQnlUaWxlKSwgICAgICAgICAgICAgXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChQb3dlckRvd25TZG1hKSwgICAgICAgICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChQb3dlclVwU2RtYSksICAgICAgICAgICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKFNldEhhcmRNaW5Jc3BjbGtCeUZyZXEpLCAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoU2V0SGFyZE1pblZjbiksICAgICAgICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChTcGFyZTEpLCAgICAgICAgICAgICAgICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKFNwYXJlMiksICAgICAgICAgICAJICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChTZXRBbGxvd0ZjbGtTd2l0Y2gpLCAgICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKFNldE1pblZpZGVvR2Z4Y2xrRnJlcSksICAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoQWN0aXZlUHJvY2Vzc05vdGlmeSksICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChTZXRDdXN0b21Qb2xpY3kpLCAgICAgICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKFF1ZXJ5UG93ZXJMaW1pdCksICAgICAgICAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoU2V0R2Z4Y2xrT3ZlcmRyaXZlQnlGcmVxVmlkKSwgXAorCV9fU01VX0RVTU1ZX01BUChTZXRIYXJkTWluRGNmY2xrQnlGcmVxKSwgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKFNldEhhcmRNaW5Tb2NjbGtCeUZyZXEpLCAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoQ29udHJvbElncHVBVFMpLCAgICAgICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChTZXRNaW5WaWRlb0ZjbGtGcmVxKSwgICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKFNldE1pbkRlZXBTbGVlcERjZmNsayksICAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoRm9yY2VQb3dlckRvd25HZngpLCAgICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChTZXRQaHljbGtWb2x0YWdlQnlGcmVxKSwgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKFNldERwcGNsa1ZvbHRhZ2VCeUZyZXEpLCAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoU2V0U29mdE1pblZjbiksICAgICAgICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChFbmFibGVQb3N0Q29kZSksICAgICAgICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKEdldEdmeGNsa0ZyZXF1ZW5jeSksICAgICAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoR2V0RmNsa0ZyZXF1ZW5jeSksICAgICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChHZXRNaW5HZnhjbGtGcmVxdWVuY3kpLCAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKEdldE1heEdmeGNsa0ZyZXF1ZW5jeSksICAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoU2V0R2Z4Q0dQRyksICAgICAgICAgICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChTZXRTb2Z0TWF4R2Z4Q2xrKSwgICAgICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKFNldEhhcmRNaW5HZnhDbGspLCAgICAgICAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoU2V0U29mdE1heFNvY2Nsa0J5RnJlcSksICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChTZXRTb2Z0TWF4RmNsa0J5RnJlcSksICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKFNldFNvZnRNYXhWY24pLCAgICAgICAgICAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoUG93ZXJHYXRlTW1IdWIpLCAgICAgICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChVcGRhdGVQbWVSZXN0b3JlKSwgICAgICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKEdwdUNoYW5nZVN0YXRlKSwgICAgICAgICAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoU2V0UG93ZXJMaW1pdFBlcmNlbnRhZ2UpLCAgICAgXAorCV9fU01VX0RVTU1ZX01BUChGb3JjZUdmeENvbnRlbnRTYXZlKSwgICAgICAgICBcCisJX19TTVVfRFVNTVlfTUFQKEVuYWJsZVRtZHA0OE1IelJlZmNsa1B3ckRvd24pLCBcCisJX19TTVVfRFVNTVlfTUFQKFBvd2VyR2F0ZUF0SHViKSwgICAgICAgICAgICAgIFwKKwlfX1NNVV9EVU1NWV9NQVAoU2V0U29mdE1pbkpwZWcpLCAgICAgICAgICAgICAgXAorCV9fU01VX0RVTU1ZX01BUChTZXRIYXJkTWluRmNsa0J5RnJlcSksICAgICAgICBcCisKKyN1bmRlZiBfX1NNVV9EVU1NWV9NQVAKKyNkZWZpbmUgX19TTVVfRFVNTVlfTUFQKHR5cGUpCVNNVV9NU0dfIyN0eXBlCitlbnVtIHNtdV9tZXNzYWdlX3R5cGUgeworCVNNVV9NRVNTQUdFX1RZUEVTCisJU01VX01TR19NQVhfQ09VTlQsCit9OworCitlbnVtIHNtdV9jbGtfdHlwZSB7CisJU01VX0dGWENMSywKKwlTTVVfVkNMSywKKwlTTVVfRENMSywKKwlTTVVfRUNMSywKKwlTTVVfU09DQ0xLLAorCVNNVV9VQ0xLLAorCVNNVV9EQ0VGQ0xLLAorCVNNVV9ESVNQQ0xLLAorCVNNVV9QSVhDTEssCisJU01VX1BIWUNMSywKKwlTTVVfRkNMSywKKwlTTVVfU0NMSywKKwlTTVVfTUNMSywKKwlTTVVfUENJRSwKKwlTTVVfT0RfU0NMSywKKwlTTVVfT0RfTUNMSywKKwlTTVVfT0RfVkREQ19DVVJWRSwKKwlTTVVfT0RfUkFOR0UsCisJU01VX0NMS19DT1VOVCwKK307CisKKyNkZWZpbmUgU01VX0ZFQVRVUkVfTUFTS1MJCQkJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChEUE1fUFJFRkVUQ0hFUiksCQkJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChEUE1fR0ZYQ0xLKSwgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKERQTV9VQ0xLKSwgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRFBNX1NPQ0NMSyksICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChEUE1fVVZEKSwgICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKERQTV9WQ0UpLCAgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoVUxWKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChEUE1fTVAwQ0xLKSwgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKERQTV9MSU5LKSwgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRFBNX0RDRUZDTEspLCAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChEU19HRlhDTEspLCAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKERTX1NPQ0NMSyksICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRFNfTENMSyksICAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChQUFQpLCAgICAgICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKFREQyksICAgICAgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoVEhFUk1BTCksICAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChHRlhfUEVSX0NVX0NHKSwgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKFJNKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRFNfRENFRkNMSyksICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChBQ0RDKSwgICAgICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKFZSMEhPVCksICAgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoVlIxSE9UKSwgICAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChGV19DVEYpLCAgICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKExFRF9ESVNQTEFZKSwgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRkFOX0NPTlRST0wpLCAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChHRlhfRURDKSwgICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKEdGWE9GRiksICAgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoQ0cpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChEUE1fRkNMSyksICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKERTX0ZDTEspLCAgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRFNfTVAxQ0xLKSwgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChEU19NUDBDTEspLCAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKFhHTUkpLCAgICAgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRFBNX0dGWF9QQUNFKSwgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChNRU1fVkREQ0lfU0NBTElORyksICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKE1FTV9NVkREX1NDQUxJTkcpLCAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoRFNfVUNMSyksICAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChHRlhfVUxWKSwgICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKEZXX0RTVEFURSksICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoQkFDTyksICAgICAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChWQ05fUEcpLCAgICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKEpQRUdfUEcpLCAgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoVVNCX1BHKSwgICAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChSU01VX1NNTl9DRyksICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKEFQQ0NfUExVUyksICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoR1RIUiksICAgICAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChHRlhfRENTKSwgICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKEdGWF9TUyksICAgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoT1VUX09GX0JBTkRfTU9OSVRPUiksICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChURU1QX0RFUEVOREVOVF9WTUlOKSwgICAgICAgICAgIAlcCisgICAgICAgX19TTVVfRFVNTVlfTUFQKE1NSFVCX1BHKSwgICAgICAgICAgICAgICAgICAgICAgCVwKKyAgICAgICBfX1NNVV9EVU1NWV9NQVAoQVRIVUJfUEcpLCAgICAgICAgICAgICAgICAgICAgICAJXAorICAgICAgIF9fU01VX0RVTU1ZX01BUChXQUZMX0NHKSwKKworI3VuZGVmIF9fU01VX0RVTU1ZX01BUAorI2RlZmluZSBfX1NNVV9EVU1NWV9NQVAoZmVhdHVyZSkJU01VX0ZFQVRVUkVfIyNmZWF0dXJlIyNfQklUCitlbnVtIHNtdV9mZWF0dXJlX21hc2sgeworCVNNVV9GRUFUVVJFX01BU0tTCisJU01VX0ZFQVRVUkVfQ09VTlQsCit9OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXVfdjExXzAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXVfdjExXzAuaAppbmRleCAyZmZmNGIxLi41YmRhODUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3YxMV8wLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3NtdV92MTFfMC5oCkBAIC0yNSw2ICsyNSwxMiBAQAogCiAjaW5jbHVkZSAiYW1kZ3B1X3NtdS5oIgogCisjZGVmaW5lIFNNVTExX0RSSVZFUl9JRl9WRVJTSU9OX0lOViAweEZGRkZGRkZGCisjZGVmaW5lIFNNVTExX0RSSVZFUl9JRl9WRVJTSU9OX1ZHMjAgMHgxMworI2RlZmluZSBTTVUxMV9EUklWRVJfSUZfVkVSU0lPTl9BUkNUIDB4MDkKKyNkZWZpbmUgU01VMTFfRFJJVkVSX0lGX1ZFUlNJT05fTlYxMCAweDMzCisjZGVmaW5lIFNNVTExX0RSSVZFUl9JRl9WRVJTSU9OX05WMTQgMHgzNAorCiAvKiBNUCBBcGVydHVyZXMgKi8KICNkZWZpbmUgTVAwX1B1YmxpYwkJCTB4MDM4MDAwMDAKICNkZWZpbmUgTVAwX1NSQU0JCQkweDAzOTAwMDAwCkBAIC00MywxOSArNDksMzAgQEAKICNkZWZpbmUgU01VMTFfVE9PTF9TSVpFCQkJMHgxOTAwMAogCiAjZGVmaW5lIENMS19NQVAoY2xrLCBpbmRleCkgXAotCVtTTVVfIyNjbGtdID0gaW5kZXgKKwlbU01VXyMjY2xrXSA9IHsxLCAoaW5kZXgpfQogCiAjZGVmaW5lIEZFQV9NQVAoZmVhKSBcCi0JW1NNVV9GRUFUVVJFXyMjZmVhIyNfQklUXSA9IEZFQVRVUkVfIyNmZWEjI19CSVQKKwlbU01VX0ZFQVRVUkVfIyNmZWEjI19CSVRdID0gezEsIEZFQVRVUkVfIyNmZWEjI19CSVR9CiAKICNkZWZpbmUgVEFCX01BUCh0YWIpIFwKLQlbU01VX1RBQkxFXyMjdGFiXSA9IFRBQkxFXyMjdGFiCisJW1NNVV9UQUJMRV8jI3RhYl0gPSB7MSwgVEFCTEVfIyN0YWJ9CiAKICNkZWZpbmUgUFdSX01BUCh0YWIpIFwKLQlbU01VX1BPV0VSX1NPVVJDRV8jI3RhYl0gPSBQT1dFUl9TT1VSQ0VfIyN0YWIKKwlbU01VX1BPV0VSX1NPVVJDRV8jI3RhYl0gPSB7MSwgUE9XRVJfU09VUkNFXyMjdGFifQogCiAjZGVmaW5lIFdPUktMT0FEX01BUChwcm9maWxlLCB3b3JrbG9hZCkgXAotCVtwcm9maWxlXSA9IHdvcmtsb2FkCisJW3Byb2ZpbGVdID0gezEsICh3b3JrbG9hZCl9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc211X3RlbXBlcmF0dXJlX3JhbmdlIHNtdTExX3RoZXJtYWxfcG9saWN5W10gPQoreworCXstMjczMTUwLCAgOTkwMDAsIDk5MDAwLCAtMjczMTUwLCA5OTAwMCwgOTkwMDAsIC0yNzMxNTAsIDk5MDAwLCA5OTAwMH0sCisJeyAxMjAwMDAsIDEyMDAwMCwgMTIwMDAwLCAxMjAwMDAsIDEyMDAwMCwgMTIwMDAwLCAxMjAwMDAsIDEyMDAwMCwgMTIwMDAwfSwKK307CisKK3N0cnVjdCBzbXVfMTFfMF9jbW4yYWlzY19tYXBwaW5nIHsKKwlpbnQJdmFsaWRfbWFwcGluZzsKKwlpbnQJbWFwX3RvOworfTsKIAogc3RydWN0IHNtdV8xMV8wX21heF9zdXN0YWluYWJsZV9jbG9ja3MgewogCXVpbnQzMl90IGRpc3BsYXlfY2xvY2s7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3YxMl8wLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3YxMl8wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNmM2RiMQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXVfdjEyXzAuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworI2lmbmRlZiBfX1NNVV9WMTJfMF9IX18KKyNkZWZpbmUgX19TTVVfVjEyXzBfSF9fCisKKyNpbmNsdWRlICJhbWRncHVfc211LmgiCisKKy8qIE1QIEFwZXJ0dXJlcyAqLworI2RlZmluZSBNUDBfUHVibGljCQkJMHgwMzgwMDAwMAorI2RlZmluZSBNUDBfU1JBTQkJCTB4MDM5MDAwMDAKKyNkZWZpbmUgTVAxX1B1YmxpYwkJCTB4MDNiMDAwMDAKKyNkZWZpbmUgTVAxX1NSQU0JCQkweDAzYzAwMDA0CisKKworc3RydWN0IHNtdV8xMl8wX2NtbjJhaXNjX21hcHBpbmcgeworCWludAl2YWxpZF9tYXBwaW5nOworCWludAltYXBfdG87Cit9OworCit2b2lkIHNtdV92MTJfMF9zZXRfc211X2Z1bmNzKHN0cnVjdCBzbXVfY29udGV4dCAqc211KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3YxMl8wX3Bwc21jLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3YxMl8wX3Bwc21jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFjOWYzYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXVfdjEyXzBfcHBzbWMuaApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2lmbmRlZiBTTVVfMTJfMF9QUFNNQ19ICisjZGVmaW5lIFNNVV8xMl8wX1BQU01DX0gKKworLy8gU01VIFJlc3BvbnNlIENvZGVzOgorI2RlZmluZSBQUFNNQ19SZXN1bHRfT0sgICAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBQUFNNQ19SZXN1bHRfRmFpbGVkICAgICAgICAgICAgICAgIDB4RkYKKyNkZWZpbmUgUFBTTUNfUmVzdWx0X1Vua25vd25DbWQgICAgICAgICAgICAweEZFCisjZGVmaW5lIFBQU01DX1Jlc3VsdF9DbWRSZWplY3RlZFByZXJlcSAgICAgMHhGRAorI2RlZmluZSBQUFNNQ19SZXN1bHRfQ21kUmVqZWN0ZWRCdXN5ICAgICAgIDB4RkMKKworCisvLyBNZXNzYWdlIERlZmluaXRpb25zOgorI2RlZmluZSBQUFNNQ19NU0dfVGVzdE1lc3NhZ2UgICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFBQU01DX01TR19HZXRTbXVWZXJzaW9uICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgUFBTTUNfTVNHX0dldERyaXZlcklmVmVyc2lvbiAgICAgICAgICAgIDB4MworI2RlZmluZSBQUFNNQ19NU0dfUG93ZXJVcEdmeCAgICAgICAgICAgICAgICAgICAgMHg2CisjZGVmaW5lIFBQU01DX01TR19FbmFibGVHZnhPZmYgICAgICAgICAgICAgICAgICAweDcKKyNkZWZpbmUgUFBTTUNfTVNHX0Rpc2FibGVHZnhPZmYgICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBQUFNNQ19NU0dfUG93ZXJEb3duSXNwQnlUaWxlICAgICAgICAgICAgMHg5IC8vIElTUCBpcyBwb3dlciBnYXRlZCBieSBkZWZhdWx0CisjZGVmaW5lIFBQU01DX01TR19Qb3dlclVwSXNwQnlUaWxlICAgICAgICAgICAgICAweEEKKyNkZWZpbmUgUFBTTUNfTVNHX1Bvd2VyRG93blZjbiAgICAgICAgICAgICAgICAgIDB4QiAvLyBWQ04gaXMgcG93ZXIgZ2F0ZWQgYnkgZGVmYXVsdAorI2RlZmluZSBQUFNNQ19NU0dfUG93ZXJVcFZjbiAgICAgICAgICAgICAgICAgICAgMHhDCisjZGVmaW5lIFBQU01DX01TR19Qb3dlckRvd25TZG1hICAgICAgICAgICAgICAgICAweEQgLy8gU0RNQSBpcyBwb3dlciBnYXRlZCBieSBkZWZhdWx0CisjZGVmaW5lIFBQU01DX01TR19Qb3dlclVwU2RtYSAgICAgICAgICAgICAgICAgICAweEUKKyNkZWZpbmUgUFBTTUNfTVNHX1NldEhhcmRNaW5Jc3BjbGtCeUZyZXEgICAgICAgIDB4RgorI2RlZmluZSBQUFNNQ19NU0dfU2V0SGFyZE1pblZjbiAgICAgICAgICAgICAgICAgMHgxMCAvLyBGb3Igd2lyZWxlc3MgZGlzcGxheQorI2RlZmluZSBQUFNNQ19NU0dfc3BhcmUxICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBQUFNNQ19NU0dfc3BhcmUyICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgorI2RlZmluZSBQUFNNQ19NU0dfU2V0QWxsb3dGY2xrU3dpdGNoICAgICAgICAgICAgMHgxMworI2RlZmluZSBQUFNNQ19NU0dfU2V0TWluVmlkZW9HZnhjbGtGcmVxICAgICAgICAgMHgxNAorI2RlZmluZSBQUFNNQ19NU0dfQWN0aXZlUHJvY2Vzc05vdGlmeSAgICAgICAgICAgMHgxNQorI2RlZmluZSBQUFNNQ19NU0dfU2V0Q3VzdG9tUG9saWN5ICAgICAgICAgICAgICAgMHgxNgorI2RlZmluZSBQUFNNQ19NU0dfU2V0VmlkZW9GcHMgICAgICAgICAgICAgICAgICAgMHgxNworI2RlZmluZSBQUFNNQ19NU0dfU2V0RGlzcGxheUNvdW50ICAgICAgICAgICAgICAgMHgxOCAvLyBNb3ZlZCB0byBWQklPUworI2RlZmluZSBQUFNNQ19NU0dfUXVlcnlQb3dlckxpbWl0ICAgICAgICAgICAgICAgMHgxOSAvL0RyaXZlciB0byBsb29rIHVwIHN1c3RhaW5hYmxlIGNsb2NrcyBmb3IgVlEKKyNkZWZpbmUgUFBTTUNfTVNHX1NldERyaXZlckRyYW1BZGRySGlnaCAgICAgICAgIDB4MUEKKyNkZWZpbmUgUFBTTUNfTVNHX1NldERyaXZlckRyYW1BZGRyTG93ICAgICAgICAgIDB4MUIKKyNkZWZpbmUgUFBTTUNfTVNHX1RyYW5zZmVyVGFibGVTbXUyRHJhbSAgICAgICAgIDB4MUMKKyNkZWZpbmUgUFBTTUNfTVNHX1RyYW5zZmVyVGFibGVEcmFtMlNtdSAgICAgICAgIDB4MUQKKyNkZWZpbmUgUFBTTUNfTVNHX0dmeERldmljZURyaXZlclJlc2V0ICAgICAgICAgIDB4MUUKKyNkZWZpbmUgUFBTTUNfTVNHX1NldEdmeGNsa092ZXJkcml2ZUJ5RnJlcVZpZCAgIDB4MUYKKyNkZWZpbmUgUFBTTUNfTVNHX1NldEhhcmRNaW5EY2ZjbGtCeUZyZXEgICAgICAgIDB4MjAgLy8gTW92ZWQgdG8gVkJJT1MKKyNkZWZpbmUgUFBTTUNfTVNHX1NldEhhcmRNaW5Tb2NjbGtCeUZyZXEgICAgICAgIDB4MjEKKyNkZWZpbmUgUFBTTUNfTVNHX0NvbnRyb2xJZ3B1QVRTICAgICAgICAgICAgICAgIDB4MjIKKyNkZWZpbmUgUFBTTUNfTVNHX1NldE1pblZpZGVvRmNsa0ZyZXEgICAgICAgICAgIDB4MjMKKyNkZWZpbmUgUFBTTUNfTVNHX1NldE1pbkRlZXBTbGVlcERjZmNsayAgICAgICAgIDB4MjQgLy8gTW92ZWQgdG8gVkJJT1MKKyNkZWZpbmUgUFBTTUNfTVNHX0ZvcmNlUG93ZXJEb3duR2Z4ICAgICAgICAgICAgIDB4MjUKKyNkZWZpbmUgUFBTTUNfTVNHX1NldFBoeWNsa1ZvbHRhZ2VCeUZyZXEgICAgICAgIDB4MjYgLy8gTW92ZWQgdG8gVkJJT1MKKyNkZWZpbmUgUFBTTUNfTVNHX1NldERwcGNsa1ZvbHRhZ2VCeUZyZXEgICAgICAgIDB4MjcgLy8gTW92ZWQgdG8gVkJJT1MgYW5kIGlzIFNldERwcGNsa0ZyZXEKKyNkZWZpbmUgUFBTTUNfTVNHX1NldFNvZnRNaW5WY24gICAgICAgICAgICAgICAgIDB4MjgKKyNkZWZpbmUgUFBTTUNfTVNHX0VuYWJsZVBvc3RDb2RlICAgICAgICAgICAgICAgIDB4MjkKKyNkZWZpbmUgUFBTTUNfTVNHX0dldEdmeGNsa0ZyZXF1ZW5jeSAgICAgICAgICAgIDB4MkEKKyNkZWZpbmUgUFBTTUNfTVNHX0dldEZjbGtGcmVxdWVuY3kgICAgICAgICAgICAgIDB4MkIKKyNkZWZpbmUgUFBTTUNfTVNHX0dldE1pbkdmeGNsa0ZyZXF1ZW5jeSAgICAgICAgIDB4MkMKKyNkZWZpbmUgUFBTTUNfTVNHX0dldE1heEdmeGNsa0ZyZXF1ZW5jeSAgICAgICAgIDB4MkQKKyNkZWZpbmUgUFBTTUNfTVNHX1NvZnRSZXNldCAgICAgICAgICAgICAgICAgICAgIDB4MkUgLy8gTm90IHN1cHBvcnRlZAorI2RlZmluZSBQUFNNQ19NU0dfU2V0R2Z4Q0dQRyAgICAgICAgICAgICAgICAgICAgMHgyRgorI2RlZmluZSBQUFNNQ19NU0dfU2V0U29mdE1heEdmeENsayAgICAgICAgICAgICAgMHgzMAorI2RlZmluZSBQUFNNQ19NU0dfU2V0SGFyZE1pbkdmeENsayAgICAgICAgICAgICAgMHgzMQorI2RlZmluZSBQUFNNQ19NU0dfU2V0U29mdE1heFNvY2Nsa0J5RnJlcSAgICAgICAgMHgzMgorI2RlZmluZSBQUFNNQ19NU0dfU2V0U29mdE1heEZjbGtCeUZyZXEgICAgICAgICAgMHgzMworI2RlZmluZSBQUFNNQ19NU0dfU2V0U29mdE1heFZjbiAgICAgICAgICAgICAgICAgMHgzNAorI2RlZmluZSBQUFNNQ19NU0dfUG93ZXJHYXRlTW1IdWIgICAgICAgICAgICAgICAgMHgzNQorI2RlZmluZSBQUFNNQ19NU0dfVXBkYXRlUG1lUmVzdG9yZSAgICAgICAgICAgICAgMHgzNiAvLyBNb3ZlZCB0byBWQklPUworI2RlZmluZSBQUFNNQ19NU0dfR3B1Q2hhbmdlU3RhdGUgICAgICAgICAgICAgICAgMHgzNworI2RlZmluZSBQUFNNQ19NU0dfU2V0UG93ZXJMaW1pdFBlcmNlbnRhZ2UgICAgICAgMHgzOAorI2RlZmluZSBQUFNNQ19NU0dfRm9yY2VHZnhDb250ZW50U2F2ZSAgICAgICAgICAgMHgzOQorI2RlZmluZSBQUFNNQ19NU0dfRW5hYmxlVG1kcDQ4TUh6UmVmY2xrUHdyRG93biAgMHgzQSAvLyBNb3ZlZCB0byBWQklPUworI2RlZmluZSBQUFNNQ19NU0dfUG93ZXJEb3duSnBlZyAgICAgICAgICAgICAgICAgMHgzQgorI2RlZmluZSBQUFNNQ19NU0dfUG93ZXJVcEpwZWcgICAgICAgICAgICAgICAgICAgMHgzQworI2RlZmluZSBQUFNNQ19NU0dfUG93ZXJHYXRlQXRIdWIgICAgICAgICAgICAgICAgMHgzRAorI2RlZmluZSBQUFNNQ19NU0dfU2V0U29mdE1pbkpwZWcgICAgICAgICAgICAgICAgMHgzRQorI2RlZmluZSBQUFNNQ19NU0dfU2V0SGFyZE1pbkZjbGtCeUZyZXEgICAgICAgICAgMHgzRgorI2RlZmluZSBQUFNNQ19NZXNzYWdlX0NvdW50ICAgICAgICAgICAgICAgICAgICAgMHg0MAorCisKKy8vQXJndW1lbnQgZm9yICBQUFNNQ19NU0dfR3B1Q2hhbmdlU3RhdGUKK2VudW0geworICBlR3B1Q2hhbmdlU3RhdGVfRDBFbnRyeSA9IDEsCisgIGVHcHVDaGFuZ2VTdGF0ZV9EM0VudHJ5LAorfTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9uYXZpMTBfcHB0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9uYXZpMTBfcHB0LmMKaW5kZXggYjgxYzdlNy4uMTJjMGU0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvbmF2aTEwX3BwdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L25hdmkxMF9wcHQuYwpAQCAtNTAsOSArNTAsOSBAQAogCUZFQVRVUkVfTUFTSyhGRUFUVVJFX0RQTV9EQ0VGQ0xLX0JJVCkpCiAKICNkZWZpbmUgTVNHX01BUChtc2csIGluZGV4KSBcCi0JW1NNVV9NU0dfIyNtc2ddID0gaW5kZXgKKwlbU01VX01TR18jI21zZ10gPSB7MSwgKGluZGV4KX0KIAotc3RhdGljIGludCBuYXZpMTBfbWVzc2FnZV9tYXBbU01VX01TR19NQVhfQ09VTlRdID0geworc3RhdGljIHN0cnVjdCBzbXVfMTFfMF9jbW4yYWlzY19tYXBwaW5nIG5hdmkxMF9tZXNzYWdlX21hcFtTTVVfTVNHX01BWF9DT1VOVF0gPSB7CiAJTVNHX01BUChUZXN0TWVzc2FnZSwJCQlQUFNNQ19NU0dfVGVzdE1lc3NhZ2UpLAogCU1TR19NQVAoR2V0U211VmVyc2lvbiwJCQlQUFNNQ19NU0dfR2V0U211VmVyc2lvbiksCiAJTVNHX01BUChHZXREcml2ZXJJZlZlcnNpb24sCQlQUFNNQ19NU0dfR2V0RHJpdmVySWZWZXJzaW9uKSwKQEAgLTExOSw3ICsxMTksNyBAQCBzdGF0aWMgaW50IG5hdmkxMF9tZXNzYWdlX21hcFtTTVVfTVNHX01BWF9DT1VOVF0gPSB7CiAJTVNHX01BUChBcm1EMywJCQlQUFNNQ19NU0dfQXJtRDMpLAogfTsKIAotc3RhdGljIGludCBuYXZpMTBfY2xrX21hcFtTTVVfQ0xLX0NPVU5UXSA9IHsKK3N0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBuYXZpMTBfY2xrX21hcFtTTVVfQ0xLX0NPVU5UXSA9IHsKIAlDTEtfTUFQKEdGWENMSywgUFBDTEtfR0ZYQ0xLKSwKIAlDTEtfTUFQKFNDTEssCVBQQ0xLX0dGWENMSyksCiAJQ0xLX01BUChTT0NDTEssIFBQQ0xLX1NPQ0NMSyksCkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIGludCBuYXZpMTBfY2xrX21hcFtTTVVfQ0xLX0NPVU5UXSA9IHsKIAlDTEtfTUFQKFBIWUNMSywgUFBDTEtfUEhZQ0xLKSwKIH07CiAKLXN0YXRpYyBpbnQgbmF2aTEwX2ZlYXR1cmVfbWFza19tYXBbU01VX0ZFQVRVUkVfQ09VTlRdID0geworc3RhdGljIHN0cnVjdCBzbXVfMTFfMF9jbW4yYWlzY19tYXBwaW5nIG5hdmkxMF9mZWF0dXJlX21hc2tfbWFwW1NNVV9GRUFUVVJFX0NPVU5UXSA9IHsKIAlGRUFfTUFQKERQTV9QUkVGRVRDSEVSKSwKIAlGRUFfTUFQKERQTV9HRlhDTEspLAogCUZFQV9NQVAoRFBNX0dGWF9QQUNFKSwKQEAgLTE3OSw3ICsxNzksNyBAQCBzdGF0aWMgaW50IG5hdmkxMF9mZWF0dXJlX21hc2tfbWFwW1NNVV9GRUFUVVJFX0NPVU5UXSA9IHsKIAlGRUFfTUFQKEFUSFVCX1BHKSwKIH07CiAKLXN0YXRpYyBpbnQgbmF2aTEwX3RhYmxlX21hcFtTTVVfVEFCTEVfQ09VTlRdID0geworc3RhdGljIHN0cnVjdCBzbXVfMTFfMF9jbW4yYWlzY19tYXBwaW5nIG5hdmkxMF90YWJsZV9tYXBbU01VX1RBQkxFX0NPVU5UXSA9IHsKIAlUQUJfTUFQKFBQVEFCTEUpLAogCVRBQl9NQVAoV0FURVJNQVJLUyksCiAJVEFCX01BUChBVkZTKSwKQEAgLTE5NCwxMiArMTk0LDEyIEBAIHN0YXRpYyBpbnQgbmF2aTEwX3RhYmxlX21hcFtTTVVfVEFCTEVfQ09VTlRdID0gewogCVRBQl9NQVAoUEFDRSksCiB9OwogCi1zdGF0aWMgaW50IG5hdmkxMF9wd3Jfc3JjX21hcFtTTVVfUE9XRVJfU09VUkNFX0NPVU5UXSA9IHsKK3N0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBuYXZpMTBfcHdyX3NyY19tYXBbU01VX1BPV0VSX1NPVVJDRV9DT1VOVF0gPSB7CiAJUFdSX01BUChBQyksCiAJUFdSX01BUChEQyksCiB9OwogCi1zdGF0aWMgaW50IG5hdmkxMF93b3JrbG9hZF9tYXBbXSA9IHsKK3N0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBuYXZpMTBfd29ya2xvYWRfbWFwW1BQX1NNQ19QT1dFUl9QUk9GSUxFX0NPVU5UXSA9IHsKIAlXT1JLTE9BRF9NQVAoUFBfU01DX1BPV0VSX1BST0ZJTEVfQk9PVFVQX0RFRkFVTFQsCVdPUktMT0FEX1BQTElCX0RFRkFVTFRfQklUKSwKIAlXT1JLTE9BRF9NQVAoUFBfU01DX1BPV0VSX1BST0ZJTEVfRlVMTFNDUkVFTjNELAkJV09SS0xPQURfUFBMSUJfRlVMTF9TQ1JFRU5fM0RfQklUKSwKIAlXT1JLTE9BRF9NQVAoUFBfU01DX1BPV0VSX1BST0ZJTEVfUE9XRVJTQVZJTkcsCQlXT1JLTE9BRF9QUExJQl9QT1dFUl9TQVZJTkdfQklUKSwKQEAgLTIxMSw3OSArMjExLDkzIEBAIHN0YXRpYyBpbnQgbmF2aTEwX3dvcmtsb2FkX21hcFtdID0gewogCiBzdGF0aWMgaW50IG5hdmkxMF9nZXRfc211X21zZ19pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtYywgdWludDMyX3QgaW5kZXgpCiB7Ci0JaW50IHZhbDsKLQlpZiAoaW5kZXggPiBTTVVfTVNHX01BWF9DT1VOVCkKKwlzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBtYXBwaW5nOworCisJaWYgKGluZGV4ID49IFNNVV9NU0dfTUFYX0NPVU5UKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXZhbCA9IG5hdmkxMF9tZXNzYWdlX21hcFtpbmRleF07Ci0JaWYgKHZhbCA+IFBQU01DX01lc3NhZ2VfQ291bnQpCisJbWFwcGluZyA9IG5hdmkxMF9tZXNzYWdlX21hcFtpbmRleF07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgewogCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKLQlyZXR1cm4gdmFsOworCXJldHVybiBtYXBwaW5nLm1hcF90bzsKIH0KIAogc3RhdGljIGludCBuYXZpMTBfZ2V0X3NtdV9jbGtfaW5kZXgoc3RydWN0IHNtdV9jb250ZXh0ICpzbWMsIHVpbnQzMl90IGluZGV4KQogewotCWludCB2YWw7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKwogCWlmIChpbmRleCA+PSBTTVVfQ0xLX0NPVU5UKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXZhbCA9IG5hdmkxMF9jbGtfbWFwW2luZGV4XTsKLQlpZiAodmFsID49IFBQQ0xLX0NPVU5UKQorCW1hcHBpbmcgPSBuYXZpMTBfY2xrX21hcFtpbmRleF07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgewogCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKLQlyZXR1cm4gdmFsOworCXJldHVybiBtYXBwaW5nLm1hcF90bzsKIH0KIAogc3RhdGljIGludCBuYXZpMTBfZ2V0X3NtdV9mZWF0dXJlX2luZGV4KHN0cnVjdCBzbXVfY29udGV4dCAqc21jLCB1aW50MzJfdCBpbmRleCkKIHsKLQlpbnQgdmFsOworCXN0cnVjdCBzbXVfMTFfMF9jbW4yYWlzY19tYXBwaW5nIG1hcHBpbmc7CisKIAlpZiAoaW5kZXggPj0gU01VX0ZFQVRVUkVfQ09VTlQpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JdmFsID0gbmF2aTEwX2ZlYXR1cmVfbWFza19tYXBbaW5kZXhdOwotCWlmICh2YWwgPiA2NCkKKwltYXBwaW5nID0gbmF2aTEwX2ZlYXR1cmVfbWFza19tYXBbaW5kZXhdOworCWlmICghKG1hcHBpbmcudmFsaWRfbWFwcGluZykpIHsKIAkJcmV0dXJuIC1FSU5WQUw7CisJfQogCi0JcmV0dXJuIHZhbDsKKwlyZXR1cm4gbWFwcGluZy5tYXBfdG87CiB9CiAKIHN0YXRpYyBpbnQgbmF2aTEwX2dldF9zbXVfdGFibGVfaW5kZXgoc3RydWN0IHNtdV9jb250ZXh0ICpzbWMsIHVpbnQzMl90IGluZGV4KQogewotCWludCB2YWw7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKwogCWlmIChpbmRleCA+PSBTTVVfVEFCTEVfQ09VTlQpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JdmFsID0gbmF2aTEwX3RhYmxlX21hcFtpbmRleF07Ci0JaWYgKHZhbCA+PSBUQUJMRV9DT1VOVCkKKwltYXBwaW5nID0gbmF2aTEwX3RhYmxlX21hcFtpbmRleF07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgewogCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKLQlyZXR1cm4gdmFsOworCXJldHVybiBtYXBwaW5nLm1hcF90bzsKIH0KIAogc3RhdGljIGludCBuYXZpMTBfZ2V0X3B3cl9zcmNfaW5kZXgoc3RydWN0IHNtdV9jb250ZXh0ICpzbWMsIHVpbnQzMl90IGluZGV4KQogewotCWludCB2YWw7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKwogCWlmIChpbmRleCA+PSBTTVVfUE9XRVJfU09VUkNFX0NPVU5UKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXZhbCA9IG5hdmkxMF9wd3Jfc3JjX21hcFtpbmRleF07Ci0JaWYgKHZhbCA+PSBQT1dFUl9TT1VSQ0VfQ09VTlQpCisJbWFwcGluZyA9IG5hdmkxMF9wd3Jfc3JjX21hcFtpbmRleF07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgewogCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKLQlyZXR1cm4gdmFsOworCXJldHVybiBtYXBwaW5nLm1hcF90bzsKIH0KIAogCiBzdGF0aWMgaW50IG5hdmkxMF9nZXRfd29ya2xvYWRfdHlwZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBQUF9TTUNfUE9XRVJfUFJPRklMRSBwcm9maWxlKQogewotCWludCB2YWw7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKwogCWlmIChwcm9maWxlID4gUFBfU01DX1BPV0VSX1BST0ZJTEVfQ1VTVE9NKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXZhbCA9IG5hdmkxMF93b3JrbG9hZF9tYXBbcHJvZmlsZV07CisJbWFwcGluZyA9IG5hdmkxMF93b3JrbG9hZF9tYXBbcHJvZmlsZV07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgeworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKLQlyZXR1cm4gdmFsOworCXJldHVybiBtYXBwaW5nLm1hcF90bzsKIH0KIAogc3RhdGljIGJvb2wgaXNfYXNpY19zZWN1cmUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCkBAIC0zNTUsNyArMzY5LDggQEAgbmF2aTEwX2dldF9hbGxvd2VkX2ZlYXR1cmVfbWFzayhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAkJKih1aW50NjRfdCAqKWZlYXR1cmVfbWFzayB8PSBGRUFUVVJFX01BU0soRkVBVFVSRV9BVEhVQl9QR19CSVQpOwogCiAJaWYgKHNtdS0+YWRldi0+cGdfZmxhZ3MgJiBBTURfUEdfU1VQUE9SVF9WQ04pCi0JCSoodWludDY0X3QgKilmZWF0dXJlX21hc2sgfD0gRkVBVFVSRV9NQVNLKEZFQVRVUkVfVkNOX1BHX0JJVCk7CisJCSoodWludDY0X3QgKilmZWF0dXJlX21hc2sgfD0gRkVBVFVSRV9NQVNLKEZFQVRVUkVfVkNOX1BHX0JJVCkKKwkJCQl8IEZFQVRVUkVfTUFTSyhGRUFUVVJFX0pQRUdfUEdfQklUKTsKIAogCS8qIGRpc2FibGUgRFBNIFVDTEsgYW5kIERTIFNPQ0NMSyBvbiBuYXZpMTAgQTAgc2VjdXJlIGJvYXJkICovCiAJaWYgKGlzX2FzaWNfc2VjdXJlKHNtdSkpIHsKQEAgLTkyNyw4ICs5NDIsNiBAQCBzdGF0aWMgaW50IG5hdmkxMF9nZXRfZ3B1X3Bvd2VyKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MzJfdCAqdmFsdWUpCiAJcmV0ID0gbmF2aTEwX2dldF9tZXRyaWNzX3RhYmxlKHNtdSwgJm1ldHJpY3MpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKIAogCSp2YWx1ZSA9IG1ldHJpY3MuQXZlcmFnZVNvY2tldFBvd2VyIDw8IDg7CiAKQEAgLTk4Nyw4ICsxMDAwLDYgQEAgc3RhdGljIGludCBuYXZpMTBfZ2V0X2Zhbl9zcGVlZF9ycG0oc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJcmV0ID0gbmF2aTEwX2dldF9tZXRyaWNzX3RhYmxlKHNtdSwgJm1ldHJpY3MpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKIAogCSpzcGVlZCA9IG1ldHJpY3MuQ3VyckZhblNwZWVkOwogCkBAIC0xMDE3LDcgKzEwMjgsNyBAQCBzdGF0aWMgaW50IG5hdmkxMF9nZXRfcG93ZXJfcHJvZmlsZV9tb2RlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBjaGFyICpidWYpCiB7CiAJRHBtQWN0aXZpdHlNb25pdG9yQ29lZmZJbnRfdCBhY3Rpdml0eV9tb25pdG9yOwogCXVpbnQzMl90IGksIHNpemUgPSAwOwotCXVpbnQxNl90IHdvcmtsb2FkX3R5cGUgPSAwOworCWludDE2X3Qgd29ya2xvYWRfdHlwZSA9IDA7CiAJc3RhdGljIGNvbnN0IGNoYXIgKnByb2ZpbGVfbmFtZVtdID0gewogCQkJCQkiQk9PVFVQX0RFRkFVTFQiLAogCQkJCQkiM0RfRlVMTF9TQ1JFRU4iLApAQCAtMTA1MCw2ICsxMDYxLDkgQEAgc3RhdGljIGludCBuYXZpMTBfZ2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgY2hhciAqYnVmKQogCWZvciAoaSA9IDA7IGkgPD0gUFBfU01DX1BPV0VSX1BST0ZJTEVfQ1VTVE9NOyBpKyspIHsKIAkJLyogY29udiBQUF9TTUNfUE9XRVJfUFJPRklMRSogdG8gV09SS0xPQURfUFBMSUJfKl9CSVQgKi8KIAkJd29ya2xvYWRfdHlwZSA9IHNtdV93b3JrbG9hZF9nZXRfdHlwZShzbXUsIGkpOworCQlpZiAod29ya2xvYWRfdHlwZSA8IDApCisJCQlyZXR1cm4gLUVJTlZBTDsKKwogCQlyZXN1bHQgPSBzbXVfdXBkYXRlX3RhYmxlKHNtdSwKIAkJCQkJICBTTVVfVEFCTEVfQUNUSVZJVFlfTU9OSVRPUl9DT0VGRiwgd29ya2xvYWRfdHlwZSwKIAkJCQkJICAodm9pZCAqKSgmYWN0aXZpdHlfbW9uaXRvciksIGZhbHNlKTsKQEAgLTExNzgsNiArMTE5Miw4IEBAIHN0YXRpYyBpbnQgbmF2aTEwX3NldF9wb3dlcl9wcm9maWxlX21vZGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGxvbmcgKmlucHV0LCB1CiAKIAkvKiBjb252IFBQX1NNQ19QT1dFUl9QUk9GSUxFKiB0byBXT1JLTE9BRF9QUExJQl8qX0JJVCAqLwogCXdvcmtsb2FkX3R5cGUgPSBzbXVfd29ya2xvYWRfZ2V0X3R5cGUoc211LCBzbXUtPnBvd2VyX3Byb2ZpbGVfbW9kZSk7CisJaWYgKHdvcmtsb2FkX3R5cGUgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKIAlzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LCBTTVVfTVNHX1NldFdvcmtsb2FkTWFzaywKIAkJCQkgICAgMSA8PCB3b3JrbG9hZF90eXBlKTsKIApAQCAtMTM2Nyw2ICsxMzgzLDkgQEAgc3RhdGljIGludCBuYXZpMTBfcmVhZF9zZW5zb3Ioc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICp0YWJsZV9jb250ZXh0ID0gJnNtdS0+c211X3RhYmxlOwogCVBQVGFibGVfdCAqcHB0YWJsZSA9IHRhYmxlX2NvbnRleHQtPmRyaXZlcl9wcHRhYmxlOwogCisJaWYoIWRhdGEgfHwgIXNpemUpCisJCXJldHVybiAtRUlOVkFMOworCiAJc3dpdGNoIChzZW5zb3IpIHsKIAljYXNlIEFNREdQVV9QUF9TRU5TT1JfTUFYX0ZBTl9SUE06CiAJCSoodWludDMyX3QgKilkYXRhID0gcHB0YWJsZS0+RmFuTWF4aW11bVJwbTsKQEAgLTEzODgsNyArMTQwNyw3IEBAIHN0YXRpYyBpbnQgbmF2aTEwX3JlYWRfc2Vuc29yKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogCQkqc2l6ZSA9IDQ7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCXJldHVybiAtRUlOVkFMOworCQlyZXQgPSBzbXVfc21jX3JlYWRfc2Vuc29yKHNtdSwgc2Vuc29yLCBkYXRhLCBzaXplKTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtMTQyMywxNjkgKzE0NDIsNiBAQCBzdGF0aWMgaW50IG5hdmkxMF9nZXRfdWNsa19kcG1fc3RhdGVzKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MzJfdCAqY2xvY2tzXwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG5hdmkxMF9nZXRfcHBmZWF0dXJlX3N0YXR1cyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKLQkJCQkgICAgICAgY2hhciAqYnVmKQotewotCXN0YXRpYyBjb25zdCBjaGFyICpwcGZlYXR1cmVfbmFtZVtdID0gewotCQkJCSJEUE1fUFJFRkVUQ0hFUiIsCi0JCQkJIkRQTV9HRlhDTEsiLAotCQkJCSJEUE1fR0ZYX1BBQ0UiLAotCQkJCSJEUE1fVUNMSyIsCi0JCQkJIkRQTV9TT0NDTEsiLAotCQkJCSJEUE1fTVAwQ0xLIiwKLQkJCQkiRFBNX0xJTksiLAotCQkJCSJEUE1fRENFRkNMSyIsCi0JCQkJIk1FTV9WRERDSV9TQ0FMSU5HIiwKLQkJCQkiTUVNX01WRERfU0NBTElORyIsCi0JCQkJIkRTX0dGWENMSyIsCi0JCQkJIkRTX1NPQ0NMSyIsCi0JCQkJIkRTX0xDTEsiLAotCQkJCSJEU19EQ0VGQ0xLIiwKLQkJCQkiRFNfVUNMSyIsCi0JCQkJIkdGWF9VTFYiLAotCQkJCSJGV19EU1RBVEUiLAotCQkJCSJHRlhPRkYiLAotCQkJCSJCQUNPIiwKLQkJCQkiVkNOX1BHIiwKLQkJCQkiSlBFR19QRyIsCi0JCQkJIlVTQl9QRyIsCi0JCQkJIlJTTVVfU01OX0NHIiwKLQkJCQkiUFBUIiwKLQkJCQkiVERDIiwKLQkJCQkiR0ZYX0VEQyIsCi0JCQkJIkFQQ0NfUExVUyIsCi0JCQkJIkdUSFIiLAotCQkJCSJBQ0RDIiwKLQkJCQkiVlIwSE9UIiwKLQkJCQkiVlIxSE9UIiwKLQkJCQkiRldfQ1RGIiwKLQkJCQkiRkFOX0NPTlRST0wiLAotCQkJCSJUSEVSTUFMIiwKLQkJCQkiR0ZYX0RDUyIsCi0JCQkJIlJNIiwKLQkJCQkiTEVEX0RJU1BMQVkiLAotCQkJCSJHRlhfU1MiLAotCQkJCSJPVVRfT0ZfQkFORF9NT05JVE9SIiwKLQkJCQkiVEVNUF9ERVBFTkRFTlRfVk1JTiIsCi0JCQkJIk1NSFVCX1BHIiwKLQkJCQkiQVRIVUJfUEcifTsKLQlzdGF0aWMgY29uc3QgY2hhciAqb3V0cHV0X3RpdGxlW10gPSB7Ci0JCQkJIkZFQVRVUkVTIiwKLQkJCQkiQklUTUFTSyIsCi0JCQkJIkVOQUJMRU1FTlQifTsKLQl1aW50NjRfdCBmZWF0dXJlc19lbmFibGVkOwotCXVpbnQzMl90IGZlYXR1cmVfbWFza1syXTsKLQlpbnQgaTsKLQlpbnQgcmV0ID0gMDsKLQlpbnQgc2l6ZSA9IDA7Ci0KLQlyZXQgPSBzbXVfZmVhdHVyZV9nZXRfZW5hYmxlZF9tYXNrKHNtdSwgZmVhdHVyZV9tYXNrLCAyKTsKLQlQUF9BU1NFUlRfV0lUSF9DT0RFKCFyZXQsCi0JCQkiW0dldFBQZmVhdHVyZVN0YXR1c10gRmFpbGVkIHRvIGdldCBlbmFibGVkIHNtYyBmZWF0dXJlcyEiLAotCQkJcmV0dXJuIHJldCk7Ci0JZmVhdHVyZXNfZW5hYmxlZCA9ICh1aW50NjRfdClmZWF0dXJlX21hc2tbMF0gfAotCQkJICAgKHVpbnQ2NF90KWZlYXR1cmVfbWFza1sxXSA8PCAzMjsKLQotCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXplLCAiQ3VycmVudCBwcGZlYXR1cmVzOiAweCUwMTZsbHhcbiIsIGZlYXR1cmVzX2VuYWJsZWQpOwotCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXplLCAiJS0xOXMgJS0yMnMgJXNcbiIsCi0JCQkJb3V0cHV0X3RpdGxlWzBdLAotCQkJCW91dHB1dF90aXRsZVsxXSwKLQkJCQlvdXRwdXRfdGl0bGVbMl0pOwotCWZvciAoaSA9IDA7IGkgPCAoc2l6ZW9mKHBwZmVhdHVyZV9uYW1lKSAvIHNpemVvZihwcGZlYXR1cmVfbmFtZVswXSkpOyBpKyspIHsKLQkJc2l6ZSArPSBzcHJpbnRmKGJ1ZiArIHNpemUsICIlLTE5cyAweCUwMTZsbHggJTZzXG4iLAotCQkJCQlwcGZlYXR1cmVfbmFtZVtpXSwKLQkJCQkJMVVMTCA8PCBpLAotCQkJCQkoZmVhdHVyZXNfZW5hYmxlZCAmICgxVUxMIDw8IGkpKSA/ICJZIiA6ICJOIik7Ci0JfQotCi0JcmV0dXJuIHNpemU7Ci19Ci0KLXN0YXRpYyBpbnQgbmF2aTEwX2VuYWJsZV9zbWNfZmVhdHVyZXMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCi0JCQkJICAgICAgYm9vbCBlbmFibGVkLAotCQkJCSAgICAgIHVpbnQ2NF90IGZlYXR1cmVfbWFza3MpCi17Ci0Jc3RydWN0IHNtdV9mZWF0dXJlICpmZWF0dXJlID0gJnNtdS0+c211X2ZlYXR1cmU7Ci0JdWludDMyX3QgZmVhdHVyZV9sb3csIGZlYXR1cmVfaGlnaDsKLQl1aW50MzJfdCBmZWF0dXJlX21hc2tbMl07Ci0JaW50IHJldCA9IDA7Ci0KLQlmZWF0dXJlX2xvdyA9ICh1aW50MzJfdCkoZmVhdHVyZV9tYXNrcyAmIDB4RkZGRkZGRkYpOwotCWZlYXR1cmVfaGlnaCA9ICh1aW50MzJfdCkoKGZlYXR1cmVfbWFza3MgJiAweEZGRkZGRkZGMDAwMDAwMDBVTEwpID4+IDMyKTsKLQotCWlmIChlbmFibGVkKSB7Ci0JCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfRW5hYmxlU211RmVhdHVyZXNMb3csCi0JCQkJCQkgIGZlYXR1cmVfbG93KTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfRW5hYmxlU211RmVhdHVyZXNIaWdoLAotCQkJCQkJICBmZWF0dXJlX2hpZ2gpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9IGVsc2UgewotCQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LCBTTVVfTVNHX0Rpc2FibGVTbXVGZWF0dXJlc0xvdywKLQkJCQkJCSAgZmVhdHVyZV9sb3cpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19EaXNhYmxlU211RmVhdHVyZXNIaWdoLAotCQkJCQkJICBmZWF0dXJlX2hpZ2gpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlyZXQgPSBzbXVfZmVhdHVyZV9nZXRfZW5hYmxlZF9tYXNrKHNtdSwgZmVhdHVyZV9tYXNrLCAyKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JbXV0ZXhfbG9jaygmZmVhdHVyZS0+bXV0ZXgpOwotCWJpdG1hcF9jb3B5KGZlYXR1cmUtPmVuYWJsZWQsICh1bnNpZ25lZCBsb25nICopJmZlYXR1cmVfbWFzaywKLQkJICAgIGZlYXR1cmUtPmZlYXR1cmVfbnVtKTsKLQltdXRleF91bmxvY2soJmZlYXR1cmUtPm11dGV4KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IG5hdmkxMF9zZXRfcHBmZWF0dXJlX3N0YXR1cyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKLQkJCQkgICAgICAgdWludDY0X3QgbmV3X3BwZmVhdHVyZV9tYXNrcykKLXsKLQl1aW50NjRfdCBmZWF0dXJlc19lbmFibGVkOwotCXVpbnQzMl90IGZlYXR1cmVfbWFza1syXTsKLQl1aW50NjRfdCBmZWF0dXJlc190b19lbmFibGU7Ci0JdWludDY0X3QgZmVhdHVyZXNfdG9fZGlzYWJsZTsKLQlpbnQgcmV0ID0gMDsKLQotCXJldCA9IHNtdV9mZWF0dXJlX2dldF9lbmFibGVkX21hc2soc211LCBmZWF0dXJlX21hc2ssIDIpOwotCVBQX0FTU0VSVF9XSVRIX0NPREUoIXJldCwKLQkJCSJbU2V0UFBmZWF0dXJlU3RhdHVzXSBGYWlsZWQgdG8gZ2V0IGVuYWJsZWQgc21jIGZlYXR1cmVzISIsCi0JCQlyZXR1cm4gcmV0KTsKLQlmZWF0dXJlc19lbmFibGVkID0gKHVpbnQ2NF90KWZlYXR1cmVfbWFza1swXSB8Ci0JCQkgICAodWludDY0X3QpZmVhdHVyZV9tYXNrWzFdIDw8IDMyOwotCi0JZmVhdHVyZXNfdG9fZGlzYWJsZSA9Ci0JCWZlYXR1cmVzX2VuYWJsZWQgJiB+bmV3X3BwZmVhdHVyZV9tYXNrczsKLQlmZWF0dXJlc190b19lbmFibGUgPQotCQl+ZmVhdHVyZXNfZW5hYmxlZCAmIG5ld19wcGZlYXR1cmVfbWFza3M7Ci0KLQlwcl9kZWJ1ZygiZmVhdHVyZXNfdG9fZGlzYWJsZSAweCVsbHhcbiIsIGZlYXR1cmVzX3RvX2Rpc2FibGUpOwotCXByX2RlYnVnKCJmZWF0dXJlc190b19lbmFibGUgMHglbGx4XG4iLCBmZWF0dXJlc190b19lbmFibGUpOwotCi0JaWYgKGZlYXR1cmVzX3RvX2Rpc2FibGUpIHsKLQkJcmV0ID0gbmF2aTEwX2VuYWJsZV9zbWNfZmVhdHVyZXMoc211LCBmYWxzZSwgZmVhdHVyZXNfdG9fZGlzYWJsZSk7Ci0JCVBQX0FTU0VSVF9XSVRIX0NPREUoIXJldCwKLQkJCQkiW1NldFBQZmVhdHVyZVN0YXR1c10gRmFpbGVkIHRvIGRpc2FibGUgc21jIGZlYXR1cmVzISIsCi0JCQkJcmV0dXJuIHJldCk7Ci0JfQotCi0JaWYgKGZlYXR1cmVzX3RvX2VuYWJsZSkgewotCQlyZXQgPSBuYXZpMTBfZW5hYmxlX3NtY19mZWF0dXJlcyhzbXUsIHRydWUsIGZlYXR1cmVzX3RvX2VuYWJsZSk7Ci0JCVBQX0FTU0VSVF9XSVRIX0NPREUoIXJldCwKLQkJCQkiW1NldFBQZmVhdHVyZVN0YXR1c10gRmFpbGVkIHRvIGVuYWJsZSBzbWMgZmVhdHVyZXMhIiwKLQkJCQlyZXR1cm4gcmV0KTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCBuYXZpMTBfc2V0X3BlYWtfY2xvY2tfYnlfZGV2aWNlKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gc211LT5hZGV2OwpAQCAtMTYyNyw2ICsxNDgzLDEwIEBAIHN0YXRpYyBpbnQgbmF2aTEwX3NldF9wZWFrX2Nsb2NrX2J5X2RldmljZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIHN0YXRpYyBpbnQgbmF2aTEwX3NldF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBhbWRfZHBtX2ZvcmNlZF9sZXZlbCBsZXZlbCkKIHsKIAlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHNtdS0+YWRldjsKKworCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9OQVZJMTApCisJCXJldHVybiAtRUlOVkFMOwogCiAJc3dpdGNoIChsZXZlbCkgewogCWNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9QRUFLOgpAQCAtMTY0OSw5ICsxNTA5LDgyIEBAIHN0YXRpYyBpbnQgbmF2aTEwX2dldF90aGVybWFsX3RlbXBlcmF0dXJlX3JhbmdlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogCWlmICghcmFuZ2UgfHwgIXBvd2VycGxheV90YWJsZSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQkvKiBUaGUgdW5pdCBpcyB0ZW1wZXJhdHVyZSAqLwotCXJhbmdlLT5taW4gPSAwOwotCXJhbmdlLT5tYXggPSBwb3dlcnBsYXlfdGFibGUtPnNvZnR3YXJlX3NodXRkb3duX3RlbXA7CisJcmFuZ2UtPm1heCA9IHBvd2VycGxheV90YWJsZS0+c29mdHdhcmVfc2h1dGRvd25fdGVtcCAqCisJCVNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBuYXZpMTBfZGlzcGxheV9kaXNhYmxlX21lbW9yeV9jbG9ja19zd2l0Y2goc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJCQlib29sIGRpc2FibGVfbWVtb3J5X2Nsb2NrX3N3aXRjaCkKK3sKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3Qgc211XzExXzBfbWF4X3N1c3RhaW5hYmxlX2Nsb2NrcyAqbWF4X3N1c3RhaW5hYmxlX2Nsb2NrcyA9CisJCShzdHJ1Y3Qgc211XzExXzBfbWF4X3N1c3RhaW5hYmxlX2Nsb2NrcyAqKQorCQkJc211LT5zbXVfdGFibGUubWF4X3N1c3RhaW5hYmxlX2Nsb2NrczsKKwl1aW50MzJfdCBtaW5fbWVtb3J5X2Nsb2NrID0gc211LT5oYXJkX21pbl91Y2xrX3JlcV9mcm9tX2RhbDsKKwl1aW50MzJfdCBtYXhfbWVtb3J5X2Nsb2NrID0gbWF4X3N1c3RhaW5hYmxlX2Nsb2Nrcy0+dWNsb2NrOworCisJaWYoc211LT5kaXNhYmxlX3VjbGtfc3dpdGNoID09IGRpc2FibGVfbWVtb3J5X2Nsb2NrX3N3aXRjaCkKKwkJcmV0dXJuIDA7CisKKwlpZihkaXNhYmxlX21lbW9yeV9jbG9ja19zd2l0Y2gpCisJCXJldCA9IHNtdV9zZXRfaGFyZF9mcmVxX3JhbmdlKHNtdSwgU01VX1VDTEssIG1heF9tZW1vcnlfY2xvY2ssIDApOworCWVsc2UKKwkJcmV0ID0gc211X3NldF9oYXJkX2ZyZXFfcmFuZ2Uoc211LCBTTVVfVUNMSywgbWluX21lbW9yeV9jbG9jaywgMCk7CisKKwlpZighcmV0KQorCQlzbXUtPmRpc2FibGVfdWNsa19zd2l0Y2ggPSBkaXNhYmxlX21lbW9yeV9jbG9ja19zd2l0Y2g7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IG5hdmkxMF9nZXRfcG93ZXJfbGltaXQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJICAgICB1aW50MzJfdCAqbGltaXQsCisJCQkJICAgICBib29sIGFzaWNfZGVmYXVsdCkKK3sKKwlQUFRhYmxlX3QgKnBwdGFibGUgPSBzbXUtPnNtdV90YWJsZS5kcml2ZXJfcHB0YWJsZTsKKwl1aW50MzJfdCBhc2ljX2RlZmF1bHRfcG93ZXJfbGltaXQgPSAwOworCWludCByZXQgPSAwOworCWludCBwb3dlcl9zcmM7CisKKwlpZiAoIXNtdS0+ZGVmYXVsdF9wb3dlcl9saW1pdCB8fAorCSAgICAhc211LT5wb3dlcl9saW1pdCkgeworCQlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIFNNVV9GRUFUVVJFX1BQVF9CSVQpKSB7CisJCQlwb3dlcl9zcmMgPSBzbXVfcG93ZXJfZ2V0X2luZGV4KHNtdSwgU01VX1BPV0VSX1NPVVJDRV9BQyk7CisJCQlpZiAocG93ZXJfc3JjIDwgMCkKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKworCQkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19HZXRQcHRMaW1pdCwKKwkJCQlwb3dlcl9zcmMgPDwgMTYpOworCQkJaWYgKHJldCkgeworCQkJCXByX2VycigiWyVzXSBnZXQgUFBUIGxpbWl0IGZhaWxlZCEiLCBfX2Z1bmNfXyk7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KKwkJCXNtdV9yZWFkX3NtY19hcmcoc211LCAmYXNpY19kZWZhdWx0X3Bvd2VyX2xpbWl0KTsKKwkJfSBlbHNlIHsKKwkJCS8qIHRoZSBsYXN0IGhvcGUgdG8gZmlndXJlIG91dCB0aGUgcHB0IGxpbWl0ICovCisJCQlpZiAoIXBwdGFibGUpIHsKKwkJCQlwcl9lcnIoIkNhbm5vdCBnZXQgUFBUIGxpbWl0IGR1ZSB0byBwcHRhYmxlIG1pc3NpbmchIik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCQlhc2ljX2RlZmF1bHRfcG93ZXJfbGltaXQgPQorCQkJCXBwdGFibGUtPlNvY2tldFBvd2VyTGltaXRBY1tQUFRfVEhST1RUTEVSX1BQVDBdOworCQl9CisKKwkJaWYgKHNtdS0+b2RfZW5hYmxlZCkgeworCQkJYXNpY19kZWZhdWx0X3Bvd2VyX2xpbWl0ICo9ICgxMDAgKyBzbXUtPnNtdV90YWJsZS5URFBPRExpbWl0KTsKKwkJCWFzaWNfZGVmYXVsdF9wb3dlcl9saW1pdCAvPSAxMDA7CisJCX0KKworCQlzbXUtPmRlZmF1bHRfcG93ZXJfbGltaXQgPSBhc2ljX2RlZmF1bHRfcG93ZXJfbGltaXQ7CisJCXNtdS0+cG93ZXJfbGltaXQgPSBhc2ljX2RlZmF1bHRfcG93ZXJfbGltaXQ7CisJfQorCisJaWYgKGFzaWNfZGVmYXVsdCkKKwkJKmxpbWl0ID0gc211LT5kZWZhdWx0X3Bvd2VyX2xpbWl0OworCWVsc2UKKwkJKmxpbWl0ID0gc211LT5wb3dlcl9saW1pdDsKIAogCXJldHVybiAwOwogfQpAQCAtMTY5MCwxMCArMTYyMywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBwdGFibGVfZnVuY3MgbmF2aTEwX3BwdF9mdW5jcyA9IHsKIAkuc2V0X3dhdGVybWFya3NfdGFibGUgPSBuYXZpMTBfc2V0X3dhdGVybWFya3NfdGFibGUsCiAJLnJlYWRfc2Vuc29yID0gbmF2aTEwX3JlYWRfc2Vuc29yLAogCS5nZXRfdWNsa19kcG1fc3RhdGVzID0gbmF2aTEwX2dldF91Y2xrX2RwbV9zdGF0ZXMsCi0JLmdldF9wcGZlYXR1cmVfc3RhdHVzID0gbmF2aTEwX2dldF9wcGZlYXR1cmVfc3RhdHVzLAotCS5zZXRfcHBmZWF0dXJlX3N0YXR1cyA9IG5hdmkxMF9zZXRfcHBmZWF0dXJlX3N0YXR1cywKIAkuc2V0X3BlcmZvcm1hbmNlX2xldmVsID0gbmF2aTEwX3NldF9wZXJmb3JtYW5jZV9sZXZlbCwKIAkuZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2UgPSBuYXZpMTBfZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2UsCisJLmRpc3BsYXlfZGlzYWJsZV9tZW1vcnlfY2xvY2tfc3dpdGNoID0gbmF2aTEwX2Rpc3BsYXlfZGlzYWJsZV9tZW1vcnlfY2xvY2tfc3dpdGNoLAorCS5nZXRfcG93ZXJfbGltaXQgPSBuYXZpMTBfZ2V0X3Bvd2VyX2xpbWl0LAogfTsKIAogdm9pZCBuYXZpMTBfc2V0X3BwdF9mdW5jcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKQEAgLTE3MDEsNiArMTYzNCw1IEBAIHZvaWQgbmF2aTEwX3NldF9wcHRfZnVuY3Moc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiAJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICpzbXVfdGFibGUgPSAmc211LT5zbXVfdGFibGU7CiAKIAlzbXUtPnBwdF9mdW5jcyA9ICZuYXZpMTBfcHB0X2Z1bmNzOwotCXNtdS0+c21jX2lmX3ZlcnNpb24gPSBTTVUxMV9EUklWRVJfSUZfVkVSU0lPTjsKIAlzbXVfdGFibGUtPnRhYmxlX2NvdW50ID0gVEFCTEVfQ09VTlQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9yZW5vaXJfcHB0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9yZW5vaXJfcHB0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYyYmZiYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3Jlbm9pcl9wcHQuYwpAQCAtMCwwICsxLDI2NSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImFtZGdwdS5oIgorI2luY2x1ZGUgImFtZGdwdV9zbXUuaCIKKyNpbmNsdWRlICJzb2MxNV9jb21tb24uaCIKKyNpbmNsdWRlICJzbXVfdjEyXzBfcHBzbWMuaCIKKyNpbmNsdWRlICJzbXUxMl9kcml2ZXJfaWYuaCIKKyNpbmNsdWRlICJzbXVfdjEyXzAuaCIKKyNpbmNsdWRlICJyZW5vaXJfcHB0LmgiCisKKworI2RlZmluZSBNU0dfTUFQKG1zZywgaW5kZXgpIFwKKwlbU01VX01TR18jI21zZ10gPSB7MSwgKGluZGV4KX0KKworI2RlZmluZSBUQUJfTUFQX1ZBTElEKHRhYikgXAorCVtTTVVfVEFCTEVfIyN0YWJdID0gezEsIFRBQkxFXyMjdGFifQorCisjZGVmaW5lIFRBQl9NQVBfSU5WQUxJRCh0YWIpIFwKKwlbU01VX1RBQkxFXyMjdGFiXSA9IHswLCBUQUJMRV8jI3RhYn0KKworc3RhdGljIHN0cnVjdCBzbXVfMTJfMF9jbW4yYWlzY19tYXBwaW5nIHJlbm9pcl9tZXNzYWdlX21hcFtTTVVfTVNHX01BWF9DT1VOVF0gPSB7CisJTVNHX01BUChUZXN0TWVzc2FnZSwgICAgICAgICAgICAgICAgICAgIFBQU01DX01TR19UZXN0TWVzc2FnZSksCisJTVNHX01BUChHZXRTbXVWZXJzaW9uLCAgICAgICAgICAgICAgICAgIFBQU01DX01TR19HZXRTbXVWZXJzaW9uKSwKKwlNU0dfTUFQKEdldERyaXZlcklmVmVyc2lvbiwgICAgICAgICAgICAgUFBTTUNfTVNHX0dldERyaXZlcklmVmVyc2lvbiksCisJTVNHX01BUChQb3dlclVwR2Z4LCAgICAgICAgICAgICAgICAgICAgIFBQU01DX01TR19Qb3dlclVwR2Z4KSwKKwlNU0dfTUFQKEFsbG93R2Z4T2ZmLCAgICAgICAgICAgICAgICAgICAgUFBTTUNfTVNHX0VuYWJsZUdmeE9mZiksCisJTVNHX01BUChEaXNhbGxvd0dmeE9mZiwgICAgICAgICAgICAgICAgIFBQU01DX01TR19EaXNhYmxlR2Z4T2ZmKSwKKwlNU0dfTUFQKFBvd2VyRG93bklzcEJ5VGlsZSwgICAgICAgICAgICAgUFBTTUNfTVNHX1Bvd2VyRG93bklzcEJ5VGlsZSksCisJTVNHX01BUChQb3dlclVwSXNwQnlUaWxlLCAgICAgICAgICAgICAgIFBQU01DX01TR19Qb3dlclVwSXNwQnlUaWxlKSwKKwlNU0dfTUFQKFBvd2VyRG93blZjbiwgICAgICAgICAgICAgICAgICAgUFBTTUNfTVNHX1Bvd2VyRG93blZjbiksCisJTVNHX01BUChQb3dlclVwVmNuLCAgICAgICAgICAgICAgICAgICAgIFBQU01DX01TR19Qb3dlclVwVmNuKSwKKwlNU0dfTUFQKFBvd2VyRG93blNkbWEsICAgICAgICAgICAgICAgICAgUFBTTUNfTVNHX1Bvd2VyRG93blNkbWEpLAorCU1TR19NQVAoUG93ZXJVcFNkbWEsICAgICAgICAgICAgICAgICAgICBQUFNNQ19NU0dfUG93ZXJVcFNkbWEpLAorCU1TR19NQVAoU2V0SGFyZE1pbklzcGNsa0J5RnJlcSwgICAgICAgICBQUFNNQ19NU0dfU2V0SGFyZE1pbklzcGNsa0J5RnJlcSksCisJTVNHX01BUChTZXRIYXJkTWluVmNuLCAgICAgICAgICAgICAgICAgIFBQU01DX01TR19TZXRIYXJkTWluVmNuKSwKKwlNU0dfTUFQKFNwYXJlMSwgICAgICAgICAgICAgICAgICAgICAgICAgUFBTTUNfTVNHX3NwYXJlMSksCisJTVNHX01BUChTcGFyZTIsICAgICAgICAgICAgICAgICAgICAgICAgIFBQU01DX01TR19zcGFyZTIpLAorCU1TR19NQVAoU2V0QWxsb3dGY2xrU3dpdGNoLCAgICAgICAgICAgICBQUFNNQ19NU0dfU2V0QWxsb3dGY2xrU3dpdGNoKSwKKwlNU0dfTUFQKFNldE1pblZpZGVvR2Z4Y2xrRnJlcSwgICAgICAgICAgUFBTTUNfTVNHX1NldE1pblZpZGVvR2Z4Y2xrRnJlcSksCisJTVNHX01BUChBY3RpdmVQcm9jZXNzTm90aWZ5LCAgICAgICAgICAgIFBQU01DX01TR19BY3RpdmVQcm9jZXNzTm90aWZ5KSwKKwlNU0dfTUFQKFNldEN1c3RvbVBvbGljeSwgICAgICAgICAgICAgICAgUFBTTUNfTVNHX1NldEN1c3RvbVBvbGljeSksCisJTVNHX01BUChTZXRWaWRlb0ZwcywgICAgICAgICAgICAgICAgICAgIFBQU01DX01TR19TZXRWaWRlb0ZwcyksCisJTVNHX01BUChOdW1PZkRpc3BsYXlzLCAgICAgICAgICAgICAgICAgIFBQU01DX01TR19TZXREaXNwbGF5Q291bnQpLAorCU1TR19NQVAoUXVlcnlQb3dlckxpbWl0LCAgICAgICAgICAgICAgICBQUFNNQ19NU0dfUXVlcnlQb3dlckxpbWl0KSwKKwlNU0dfTUFQKFNldERyaXZlckRyYW1BZGRySGlnaCwgICAgICAgICAgUFBTTUNfTVNHX1NldERyaXZlckRyYW1BZGRySGlnaCksCisJTVNHX01BUChTZXREcml2ZXJEcmFtQWRkckxvdywgICAgICAgICAgIFBQU01DX01TR19TZXREcml2ZXJEcmFtQWRkckxvdyksCisJTVNHX01BUChUcmFuc2ZlclRhYmxlU211MkRyYW0sICAgICAgICAgIFBQU01DX01TR19UcmFuc2ZlclRhYmxlU211MkRyYW0pLAorCU1TR19NQVAoVHJhbnNmZXJUYWJsZURyYW0yU211LCAgICAgICAgICBQUFNNQ19NU0dfVHJhbnNmZXJUYWJsZURyYW0yU211KSwKKwlNU0dfTUFQKEdmeERldmljZURyaXZlclJlc2V0LCAgICAgICAgICAgUFBTTUNfTVNHX0dmeERldmljZURyaXZlclJlc2V0KSwKKwlNU0dfTUFQKFNldEdmeGNsa092ZXJkcml2ZUJ5RnJlcVZpZCwgICAgUFBTTUNfTVNHX1NldEdmeGNsa092ZXJkcml2ZUJ5RnJlcVZpZCksCisJTVNHX01BUChTZXRIYXJkTWluRGNmY2xrQnlGcmVxLCAgICAgICAgIFBQU01DX01TR19TZXRIYXJkTWluRGNmY2xrQnlGcmVxKSwKKwlNU0dfTUFQKFNldEhhcmRNaW5Tb2NjbGtCeUZyZXEsICAgICAgICAgUFBTTUNfTVNHX1NldEhhcmRNaW5Tb2NjbGtCeUZyZXEpLAorCU1TR19NQVAoQ29udHJvbElncHVBVFMsICAgICAgICAgICAgICAgICBQUFNNQ19NU0dfQ29udHJvbElncHVBVFMpLAorCU1TR19NQVAoU2V0TWluVmlkZW9GY2xrRnJlcSwgICAgICAgICAgICBQUFNNQ19NU0dfU2V0TWluVmlkZW9GY2xrRnJlcSksCisJTVNHX01BUChTZXRNaW5EZWVwU2xlZXBEY2ZjbGssICAgICAgICAgIFBQU01DX01TR19TZXRNaW5EZWVwU2xlZXBEY2ZjbGspLAorCU1TR19NQVAoRm9yY2VQb3dlckRvd25HZngsICAgICAgICAgICAgICBQUFNNQ19NU0dfRm9yY2VQb3dlckRvd25HZngpLAorCU1TR19NQVAoU2V0UGh5Y2xrVm9sdGFnZUJ5RnJlcSwgICAgICAgICBQUFNNQ19NU0dfU2V0UGh5Y2xrVm9sdGFnZUJ5RnJlcSksCisJTVNHX01BUChTZXREcHBjbGtWb2x0YWdlQnlGcmVxLCAgICAgICAgIFBQU01DX01TR19TZXREcHBjbGtWb2x0YWdlQnlGcmVxKSwKKwlNU0dfTUFQKFNldFNvZnRNaW5WY24sICAgICAgICAgICAgICAgICAgUFBTTUNfTVNHX1NldFNvZnRNaW5WY24pLAorCU1TR19NQVAoRW5hYmxlUG9zdENvZGUsICAgICAgICAgICAgICAgICBQUFNNQ19NU0dfRW5hYmxlUG9zdENvZGUpLAorCU1TR19NQVAoR2V0R2Z4Y2xrRnJlcXVlbmN5LCAgICAgICAgICAgICBQUFNNQ19NU0dfR2V0R2Z4Y2xrRnJlcXVlbmN5KSwKKwlNU0dfTUFQKEdldEZjbGtGcmVxdWVuY3ksICAgICAgICAgICAgICAgUFBTTUNfTVNHX0dldEZjbGtGcmVxdWVuY3kpLAorCU1TR19NQVAoR2V0TWluR2Z4Y2xrRnJlcXVlbmN5LCAgICAgICAgICBQUFNNQ19NU0dfR2V0TWluR2Z4Y2xrRnJlcXVlbmN5KSwKKwlNU0dfTUFQKEdldE1heEdmeGNsa0ZyZXF1ZW5jeSwgICAgICAgICAgUFBTTUNfTVNHX0dldE1heEdmeGNsa0ZyZXF1ZW5jeSksCisJTVNHX01BUChTb2Z0UmVzZXQsICAgICAgICAgICAgICAgICAgICAgIFBQU01DX01TR19Tb2Z0UmVzZXQpLAorCU1TR19NQVAoU2V0R2Z4Q0dQRywgICAgICAgICAgICAgICAgICAgICBQUFNNQ19NU0dfU2V0R2Z4Q0dQRyksCisJTVNHX01BUChTZXRTb2Z0TWF4R2Z4Q2xrLCAgICAgICAgICAgICAgIFBQU01DX01TR19TZXRTb2Z0TWF4R2Z4Q2xrKSwKKwlNU0dfTUFQKFNldEhhcmRNaW5HZnhDbGssICAgICAgICAgICAgICAgUFBTTUNfTVNHX1NldEhhcmRNaW5HZnhDbGspLAorCU1TR19NQVAoU2V0U29mdE1heFNvY2Nsa0J5RnJlcSwgICAgICAgICBQUFNNQ19NU0dfU2V0U29mdE1heFNvY2Nsa0J5RnJlcSksCisJTVNHX01BUChTZXRTb2Z0TWF4RmNsa0J5RnJlcSwgICAgICAgICAgIFBQU01DX01TR19TZXRTb2Z0TWF4RmNsa0J5RnJlcSksCisJTVNHX01BUChTZXRTb2Z0TWF4VmNuLCAgICAgICAgICAgICAgICAgIFBQU01DX01TR19TZXRTb2Z0TWF4VmNuKSwKKwlNU0dfTUFQKFBvd2VyR2F0ZU1tSHViLCAgICAgICAgICAgICAgICAgUFBTTUNfTVNHX1Bvd2VyR2F0ZU1tSHViKSwKKwlNU0dfTUFQKFVwZGF0ZVBtZVJlc3RvcmUsICAgICAgICAgICAgICAgUFBTTUNfTVNHX1VwZGF0ZVBtZVJlc3RvcmUpLAorCU1TR19NQVAoR3B1Q2hhbmdlU3RhdGUsICAgICAgICAgICAgICAgICBQUFNNQ19NU0dfR3B1Q2hhbmdlU3RhdGUpLAorCU1TR19NQVAoU2V0UG93ZXJMaW1pdFBlcmNlbnRhZ2UsICAgICAgICBQUFNNQ19NU0dfU2V0UG93ZXJMaW1pdFBlcmNlbnRhZ2UpLAorCU1TR19NQVAoRm9yY2VHZnhDb250ZW50U2F2ZSwgICAgICAgICAgICBQUFNNQ19NU0dfRm9yY2VHZnhDb250ZW50U2F2ZSksCisJTVNHX01BUChFbmFibGVUbWRwNDhNSHpSZWZjbGtQd3JEb3duLCAgIFBQU01DX01TR19FbmFibGVUbWRwNDhNSHpSZWZjbGtQd3JEb3duKSwKKwlNU0dfTUFQKFBvd2VyRG93bkpwZWcsICAgICAgICAgICAgICAgICAgUFBTTUNfTVNHX1Bvd2VyRG93bkpwZWcpLAorCU1TR19NQVAoUG93ZXJVcEpwZWcsICAgICAgICAgICAgICAgICAgICBQUFNNQ19NU0dfUG93ZXJVcEpwZWcpLAorCU1TR19NQVAoUG93ZXJHYXRlQXRIdWIsICAgICAgICAgICAgICAgICBQUFNNQ19NU0dfUG93ZXJHYXRlQXRIdWIpLAorCU1TR19NQVAoU2V0U29mdE1pbkpwZWcsICAgICAgICAgICAgICAgICBQUFNNQ19NU0dfU2V0U29mdE1pbkpwZWcpLAorCU1TR19NQVAoU2V0SGFyZE1pbkZjbGtCeUZyZXEsICAgICAgICAgICBQUFNNQ19NU0dfU2V0SGFyZE1pbkZjbGtCeUZyZXEpLAorfTsKKworc3RhdGljIHN0cnVjdCBzbXVfMTJfMF9jbW4yYWlzY19tYXBwaW5nIHJlbm9pcl90YWJsZV9tYXBbU01VX1RBQkxFX0NPVU5UXSA9IHsKKwlUQUJfTUFQX1ZBTElEKFdBVEVSTUFSS1MpLAorCVRBQl9NQVBfSU5WQUxJRChDVVNUT01fRFBNKSwKKwlUQUJfTUFQX1ZBTElEKERQTUNMT0NLUyksCisJVEFCX01BUF9WQUxJRChTTVVfTUVUUklDUyksCit9OworCitzdGF0aWMgaW50IHJlbm9pcl9nZXRfc211X21zZ19pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtYywgdWludDMyX3QgaW5kZXgpCit7CisJc3RydWN0IHNtdV8xMl8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKworCWlmIChpbmRleCA+PSBTTVVfTVNHX01BWF9DT1VOVCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltYXBwaW5nID0gcmVub2lyX21lc3NhZ2VfbWFwW2luZGV4XTsKKwlpZiAoIShtYXBwaW5nLnZhbGlkX21hcHBpbmcpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiBtYXBwaW5nLm1hcF90bzsKK30KKworc3RhdGljIGludCByZW5vaXJfZ2V0X3NtdV90YWJsZV9pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtYywgdWludDMyX3QgaW5kZXgpCit7CisJc3RydWN0IHNtdV8xMl8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKworCWlmIChpbmRleCA+PSBTTVVfVEFCTEVfQ09VTlQpCisJCXJldHVybiAtRUlOVkFMOworCisJbWFwcGluZyA9IHJlbm9pcl90YWJsZV9tYXBbaW5kZXhdOworCWlmICghKG1hcHBpbmcudmFsaWRfbWFwcGluZykpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIG1hcHBpbmcubWFwX3RvOworfQorCitzdGF0aWMgaW50IHJlbm9pcl90YWJsZXNfaW5pdChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgc3RydWN0IHNtdV90YWJsZSAqdGFibGVzKQoreworCXN0cnVjdCBzbXVfdGFibGVfY29udGV4dCAqc211X3RhYmxlID0gJnNtdS0+c211X3RhYmxlOworCisJU01VX1RBQkxFX0lOSVQodGFibGVzLCBTTVVfVEFCTEVfV0FURVJNQVJLUywgc2l6ZW9mKFdhdGVybWFya3NfdCksCisJCVBBR0VfU0laRSwgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSk7CisJU01VX1RBQkxFX0lOSVQodGFibGVzLCBTTVVfVEFCTEVfRFBNQ0xPQ0tTLCBzaXplb2YoRHBtQ2xvY2tzX3QpLAorCQlQQUdFX1NJWkUsIEFNREdQVV9HRU1fRE9NQUlOX1ZSQU0pOworCVNNVV9UQUJMRV9JTklUKHRhYmxlcywgU01VX1RBQkxFX1NNVV9NRVRSSUNTLCBzaXplb2YoU211TWV0cmljc190KSwKKwkJUEFHRV9TSVpFLCBBTURHUFVfR0VNX0RPTUFJTl9WUkFNKTsKKworCXNtdV90YWJsZS0+Y2xvY2tzX3RhYmxlID0ga3phbGxvYyhzaXplb2YoRHBtQ2xvY2tzX3QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXNtdV90YWJsZS0+Y2xvY2tzX3RhYmxlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIFRoaXMgaW50ZXJmYWNlIGp1c3QgZm9yIGdldHRpbmcgdWNsayB1bHRpbWF0ZSBmcmVxIGFuZCBzaG91bGQndCBpbnRyb2R1Y2UKKyAqIG90aGVyIGxpa2V3aXNlIGZ1bmN0aW9uIHJlc3VsdCBpbiBvdmVybXVjaCBjYWxsYmFjay4KKyAqLworc3RhdGljIGludCByZW5vaXJfZ2V0X2RwbV91Y2xrX2xpbWl0ZWQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQzMl90ICpjbG9jaywgYm9vbCBtYXgpCit7CisKKwlEcG1DbG9ja3NfdCAqdGFibGUgPSBzbXUtPnNtdV90YWJsZS5jbG9ja3NfdGFibGU7CisKKwlpZiAoIWNsb2NrIHx8ICF0YWJsZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAobWF4KQorCQkqY2xvY2sgPSB0YWJsZS0+RkNsb2Nrc1tOVU1fRkNMS19EUE1fTEVWRUxTLTFdLkZyZXE7CisJZWxzZQorCQkqY2xvY2sgPSB0YWJsZS0+RkNsb2Nrc1swXS5GcmVxOworCisJcmV0dXJuIDA7CisKK30KKworc3RhdGljIGludCByZW5vaXJfcHJpbnRfY2xrX2xldmVscyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKKwkJCWVudW0gc211X2Nsa190eXBlIGNsa190eXBlLCBjaGFyICpidWYpCit7CisJaW50IGksIHNpemUgPSAwLCByZXQgPSAwOworCXVpbnQzMl90IGN1cl92YWx1ZSA9IDAsIHZhbHVlID0gMCwgY291bnQgPSAwLCBtaW4gPSAwLCBtYXggPSAwOworCURwbUNsb2Nrc190ICpjbGtfdGFibGUgPSBzbXUtPnNtdV90YWJsZS5jbG9ja3NfdGFibGU7CisJU211TWV0cmljc190IG1ldHJpY3MgPSB7MH07CisKKwlpZiAoIWNsa190YWJsZSB8fCBjbGtfdHlwZSA+PSBTTVVfQ0xLX0NPVU5UKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IHNtdV91cGRhdGVfdGFibGUoc211LCBTTVVfVEFCTEVfU01VX01FVFJJQ1MsIDAsCisJCQkgICAgICAgKHZvaWQgKikmbWV0cmljcywgZmFsc2UpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlzd2l0Y2ggKGNsa190eXBlKSB7CisJY2FzZSBTTVVfR0ZYQ0xLOgorCWNhc2UgU01VX1NDTEs6CisJCS8qIHJldGlydmUgdGFibGUgcmV0dXJuZWQgcGFyYW10ZXJzIHVuaXQgaXMgTUh6ICovCisJCWN1cl92YWx1ZSA9IG1ldHJpY3MuQ2xvY2tGcmVxdWVuY3lbQ0xPQ0tfR0ZYQ0xLXTsKKwkJcmV0ID0gc211X2dldF9kcG1fZnJlcV9yYW5nZShzbXUsIFNNVV9HRlhDTEssICZtaW4sICZtYXgpOworCQlpZiAoIXJldCkgeworCQkJLyogZHJpdmVyIG9ubHkga25vdyBtaW4vbWF4IGdmeF9jbGssIEFkZCBsZXZlbCAxIGZvciBhbGwgb3RoZXIgZ2Z4IGNsa3MgKi8KKwkJCWlmIChjdXJfdmFsdWUgID09IG1heCkKKwkJCQlpID0gMjsKKwkJCWVsc2UgaWYgKGN1cl92YWx1ZSA9PSBtaW4pCisJCQkJaSA9IDA7CisJCQllbHNlCisJCQkJaSA9IDE7CisKKwkJCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXplLCAiMDogJXVNaHogJXNcbiIsIG1pbiwKKwkJCQkJaSA9PSAwID8gIioiIDogIiIpOworCQkJc2l6ZSArPSBzcHJpbnRmKGJ1ZiArIHNpemUsICIxOiAldU1oeiAlc1xuIiwKKwkJCQkJaSA9PSAxID8gY3VyX3ZhbHVlIDogUkVOT0lSX1VNRF9QU1RBVEVfR0ZYQ0xLLAorCQkJCQlpID09IDEgPyAiKiIgOiAiIik7CisJCQlzaXplICs9IHNwcmludGYoYnVmICsgc2l6ZSwgIjI6ICV1TWh6ICVzXG4iLCBtYXgsCisJCQkJCWkgPT0gMiA/ICIqIiA6ICIiKTsKKwkJfQorCQlyZXR1cm4gc2l6ZTsKKwljYXNlIFNNVV9TT0NDTEs6CisJCWNvdW50ID0gTlVNX1NPQ0NMS19EUE1fTEVWRUxTOworCQljdXJfdmFsdWUgPSBtZXRyaWNzLkNsb2NrRnJlcXVlbmN5W0NMT0NLX1NPQ0NMS107CisJCWJyZWFrOworCWNhc2UgU01VX01DTEs6CisJCWNvdW50ID0gTlVNX01FTUNMS19EUE1fTEVWRUxTOworCQljdXJfdmFsdWUgPSBtZXRyaWNzLkNsb2NrRnJlcXVlbmN5W0NMT0NLX1VNQ0NMS107CisJCWJyZWFrOworCWNhc2UgU01VX0RDRUZDTEs6CisJCWNvdW50ID0gTlVNX0RDRkNMS19EUE1fTEVWRUxTOworCQljdXJfdmFsdWUgPSBtZXRyaWNzLkNsb2NrRnJlcXVlbmN5W0NMT0NLX0RDRkNMS107CisJCWJyZWFrOworCWNhc2UgU01VX0ZDTEs6CisJCWNvdW50ID0gTlVNX0ZDTEtfRFBNX0xFVkVMUzsKKwkJY3VyX3ZhbHVlID0gbWV0cmljcy5DbG9ja0ZyZXF1ZW5jeVtDTE9DS19GQ0xLXTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJR0VUX0RQTV9DVVJfRlJFUShjbGtfdGFibGUsIGNsa190eXBlLCBpLCB2YWx1ZSk7CisJCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXplLCAiJWQ6ICV1TWh6ICVzXG4iLCBpLCB2YWx1ZSwKKwkJCQljdXJfdmFsdWUgPT0gdmFsdWUgPyAiKiIgOiAiIik7CisJfQorCisJcmV0dXJuIHNpemU7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHB0YWJsZV9mdW5jcyByZW5vaXJfcHB0X2Z1bmNzID0geworCS5nZXRfc211X21zZ19pbmRleCA9IHJlbm9pcl9nZXRfc211X21zZ19pbmRleCwKKwkuZ2V0X3NtdV90YWJsZV9pbmRleCA9IHJlbm9pcl9nZXRfc211X3RhYmxlX2luZGV4LAorCS50YWJsZXNfaW5pdCA9IHJlbm9pcl90YWJsZXNfaW5pdCwKKwkuc2V0X3Bvd2VyX3N0YXRlID0gTlVMTCwKKwkuZ2V0X2RwbV91Y2xrX2xpbWl0ZWQgPSByZW5vaXJfZ2V0X2RwbV91Y2xrX2xpbWl0ZWQsCisJLnByaW50X2Nsa19sZXZlbHMgPSByZW5vaXJfcHJpbnRfY2xrX2xldmVscywKK307CisKK3ZvaWQgcmVub2lyX3NldF9wcHRfZnVuY3Moc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCit7CisJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICpzbXVfdGFibGUgPSAmc211LT5zbXVfdGFibGU7CisKKwlzbXUtPnBwdF9mdW5jcyA9ICZyZW5vaXJfcHB0X2Z1bmNzOworCXNtdS0+c21jX2lmX3ZlcnNpb24gPSBTTVUxMl9EUklWRVJfSUZfVkVSU0lPTjsKKwlzbXVfdGFibGUtPnRhYmxlX2NvdW50ID0gVEFCTEVfQ09VTlQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9yZW5vaXJfcHB0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9yZW5vaXJfcHB0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmEzOTBkZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3Jlbm9pcl9wcHQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IDIwMTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworI2lmbmRlZiBfX1JFTk9JUl9QUFRfSF9fCisjZGVmaW5lIF9fUkVOT0lSX1BQVF9IX18KKworZXh0ZXJuIHZvaWQgcmVub2lyX3NldF9wcHRfZnVuY3Moc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOworCisvKiBVTUQgUFN0YXRlIFJlbm9pciBNc2cgUGFyYW1ldGVycyBpbiBNSHogKi8KKyNkZWZpbmUgUkVOT0lSX1VNRF9QU1RBVEVfR0ZYQ0xLICAgICAgIDcwMAorI2RlZmluZSBSRU5PSVJfVU1EX1BTVEFURV9TT0NDTEsgICAgICAgNjc4CisjZGVmaW5lIFJFTk9JUl9VTURfUFNUQVRFX0ZDTEsgICAgICAgICA4MDAKKworI2RlZmluZSBHRVRfRFBNX0NVUl9GUkVRKHRhYmxlLCBjbGtfdHlwZSwgZHBtX2xldmVsLCBmcmVxKQkJXAorCWRvIHsJCQkJCQkJCVwKKwkJc3dpdGNoIChjbGtfdHlwZSkgewkJCQkJXAorCQljYXNlIFNNVV9TT0NDTEs6CQkJCQlcCisJCQlmcmVxID0gdGFibGUtPlNvY0Nsb2Nrc1tkcG1fbGV2ZWxdLkZyZXE7CVwKKwkJCWJyZWFrOwkJCQkJCVwKKwkJY2FzZSBTTVVfTUNMSzoJCQkJCQlcCisJCQlmcmVxID0gdGFibGUtPk1lbUNsb2Nrc1tkcG1fbGV2ZWxdLkZyZXE7CVwKKwkJCWJyZWFrOwkJCQkJCVwKKwkJY2FzZSBTTVVfRENFRkNMSzoJCQkJCVwKKwkJCWZyZXEgPSB0YWJsZS0+RGNmQ2xvY2tzW2RwbV9sZXZlbF0uRnJlcTsJXAorCQkJYnJlYWs7CQkJCQkJXAorCQljYXNlIFNNVV9GQ0xLOgkJCQkJCVwKKwkJCWZyZXEgPSB0YWJsZS0+RkNsb2Nrc1tkcG1fbGV2ZWxdLkZyZXE7CQlcCisJCQlicmVhazsJCQkJCQlcCisJCWRlZmF1bHQ6CQkJCQkJXAorCQkJYnJlYWs7CQkJCQkJXAorCQl9CQkJCQkJCVwKKwl9IHdoaWxlICgwKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdV92MTFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMKaW5kZXggNTMwOTc5Ni4uYzUyNTdhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJzb2MxNV9jb21tb24uaCIKICNpbmNsdWRlICJhdG9tLmgiCiAjaW5jbHVkZSAidmVnYTIwX3BwdC5oIgorI2luY2x1ZGUgImFyY3R1cnVzX3BwdC5oIgogI2luY2x1ZGUgIm5hdmkxMF9wcHQuaCIKIAogI2luY2x1ZGUgImFzaWNfcmVnL3RobS90aG1fMTFfMF8yX29mZnNldC5oIgpAQCAtNDUsNyArNDYsMTAgQEAKICNpbmNsdWRlICJhc2ljX3JlZy9zbXVpby9zbXVpb18xMV8wXzBfc2hfbWFzay5oIgogCiBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS92ZWdhMjBfc21jLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvYXJjdHVydXNfc21jLmJpbiIpOwogTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvbmF2aTEwX3NtYy5iaW4iKTsKK01PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L25hdmkxNF9zbWMuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImFtZGdwdS9uYXZpMTJfc21jLmJpbiIpOwogCiAjZGVmaW5lIFNNVTExX1ZPTFRBR0VfU0NBTEUgNAogCkBAIC0xMDIsOCArMTA2LDggQEAgc3RhdGljIGludCBzbXVfdjExXzBfc2VuZF9tc2coc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQxNl90IG1zZykKIAlyZXQgPSBzbXVfdjExXzBfd2FpdF9mb3JfcmVzcG9uc2Uoc211KTsKIAogCWlmIChyZXQpCi0JCXByX2VycigiRmFpbGVkIHRvIHNlbmQgbWVzc2FnZSAweCV4LCByZXNwb25zZSAweCV4XG4iLCBpbmRleCwKLQkJICAgICAgIHJldCk7CisJCXByX2VycigiZmFpbGVkIHNlbmQgbWVzc2FnZTogJTEwcyAoJWQpIHJlc3BvbnNlICUjeFxuIiwKKwkJICAgICAgIHNtdV9nZXRfbWVzc2FnZV9uYW1lKHNtdSwgbXNnKSwgaW5kZXgsIHJldCk7CiAKIAlyZXR1cm4gcmV0OwogCkBAIC0xMjMsOCArMTI3LDggQEAgc211X3YxMV8wX3NlbmRfbXNnX3dpdGhfcGFyYW0oc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQxNl90IG1zZywKIAogCXJldCA9IHNtdV92MTFfMF93YWl0X2Zvcl9yZXNwb25zZShzbXUpOwogCWlmIChyZXQpCi0JCXByX2VycigiRmFpbGVkIHRvIHNlbmQgbWVzc2FnZSAweCV4LCByZXNwb25zZSAweCV4LCBwYXJhbSAweCV4XG4iLAotCQkgICAgICAgaW5kZXgsIHJldCwgcGFyYW0pOworCQlwcl9lcnIoImZhaWxlZCBzZW5kIG1lc3NhZ2U6ICUxMHMgKCVkKSBcdHBhcmFtOiAweCUwOHggcmVzcG9uc2UgJSN4XG4iLAorCQkgICAgICAgc211X2dldF9tZXNzYWdlX25hbWUoc211LCBtc2cpLCBpbmRleCwgcGFyYW0sIHJldCk7CiAKIAlXUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzkwLCAwKTsKIApAQCAtMTM0LDggKzEzOCw4IEBAIHNtdV92MTFfMF9zZW5kX21zZ193aXRoX3BhcmFtKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MTZfdCBtc2csCiAKIAlyZXQgPSBzbXVfdjExXzBfd2FpdF9mb3JfcmVzcG9uc2Uoc211KTsKIAlpZiAocmV0KQotCQlwcl9lcnIoIkZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgMHgleCwgcmVzcG9uc2UgMHgleCBwYXJhbSAweCV4XG4iLAotCQkgICAgICAgaW5kZXgsIHJldCwgcGFyYW0pOworCQlwcl9lcnIoImZhaWxlZCBzZW5kIG1lc3NhZ2U6ICUxMHMgKCVkKSBcdHBhcmFtOiAweCUwOHggcmVzcG9uc2UgJSN4XG4iLAorCQkgICAgICAgc211X2dldF9tZXNzYWdlX25hbWUoc211LCBtc2cpLCBpbmRleCwgcGFyYW0sIHJldCk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTU0LDkgKzE1OCwxOCBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9pbml0X21pY3JvY29kZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIAljYXNlIENISVBfVkVHQTIwOgogCQljaGlwX25hbWUgPSAidmVnYTIwIjsKIAkJYnJlYWs7CisJY2FzZSBDSElQX0FSQ1RVUlVTOgorCQljaGlwX25hbWUgPSAiYXJjdHVydXMiOworCQlicmVhazsKIAljYXNlIENISVBfTkFWSTEwOgogCQljaGlwX25hbWUgPSAibmF2aTEwIjsKIAkJYnJlYWs7CisJY2FzZSBDSElQX05BVkkxNDoKKwkJY2hpcF9uYW1lID0gIm5hdmkxNCI7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTI6CisJCWNoaXBfbmFtZSA9ICJuYXZpMTIiOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlCVUcoKTsKIAl9CkBAIC0yMDIsNyArMjE1LDcgQEAgc3RhdGljIGludCBzbXVfdjExXzBfbG9hZF9taWNyb2NvZGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiAJdWludDMyX3QgaTsKIAl1aW50MzJfdCBtcDFfZndfZmxhZ3M7CiAKLQloZHIgPSAoY29uc3Qgc3RydWN0IHNtY19maXJtd2FyZV9oZWFkZXJfdjFfMCAqKQlhZGV2LT5wbS5mdy0+ZGF0YTsKKwloZHIgPSAoY29uc3Qgc3RydWN0IHNtY19maXJtd2FyZV9oZWFkZXJfdjFfMCAqKSBhZGV2LT5wbS5mdy0+ZGF0YTsKIAlzcmMgPSAoY29uc3QgdWludDMyX3QgKikoYWRldi0+cG0uZnctPmRhdGEgKwogCQlsZTMyX3RvX2NwdShoZHItPmhlYWRlci51Y29kZV9hcnJheV9vZmZzZXRfYnl0ZXMpKTsKIApAQCAtMjYxLDYgKzI3NCwyNSBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9jaGVja19md192ZXJzaW9uKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogCXNtdV9taW5vciA9IChzbXVfdmVyc2lvbiA+PiA4KSAmIDB4ZmY7CiAJc211X2RlYnVnID0gKHNtdV92ZXJzaW9uID4+IDApICYgMHhmZjsKIAorCXN3aXRjaCAoc211LT5hZGV2LT5hc2ljX3R5cGUpIHsKKwljYXNlIENISVBfVkVHQTIwOgorCQlzbXUtPnNtY19pZl92ZXJzaW9uID0gU01VMTFfRFJJVkVSX0lGX1ZFUlNJT05fVkcyMDsKKwkJYnJlYWs7CisJY2FzZSBDSElQX0FSQ1RVUlVTOgorCQlzbXUtPnNtY19pZl92ZXJzaW9uID0gU01VMTFfRFJJVkVSX0lGX1ZFUlNJT05fQVJDVDsKKwkJYnJlYWs7CisJY2FzZSBDSElQX05BVkkxMDoKKwkJc211LT5zbWNfaWZfdmVyc2lvbiA9IFNNVTExX0RSSVZFUl9JRl9WRVJTSU9OX05WMTA7CisJCWJyZWFrOworCWNhc2UgQ0hJUF9OQVZJMTQ6CisJCXNtdS0+c21jX2lmX3ZlcnNpb24gPSBTTVUxMV9EUklWRVJfSUZfVkVSU0lPTl9OVjE0OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwcl9lcnIoInNtdSB1bnN1cHBvcnRlZCBhc2ljIHR5cGU6JWQuXG4iLCBzbXUtPmFkZXYtPmFzaWNfdHlwZSk7CisJCXNtdS0+c21jX2lmX3ZlcnNpb24gPSBTTVUxMV9EUklWRVJfSUZfVkVSU0lPTl9JTlY7CisJCWJyZWFrOworCX0KKwogCS8qCiAJICogMS4gaWZfdmVyc2lvbiBtaXNtYXRjaCBpcyBub3QgY3JpdGljYWwgYXMgb3VyIGZ3IGlzIGRlc2lnbmVkCiAJICogdG8gYmUgYmFja3dhcmQgY29tcGF0aWJsZS4KQEAgLTI5NSw3ICszMjcsOCBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9zZXRfcHB0YWJsZV92Ml8wKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB2b2lkICoqdGFibGUsIHVpbgogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNtdV92MTFfMF9zZXRfcHB0YWJsZV92Ml8xKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB2b2lkICoqdGFibGUsIHVpbnQzMl90ICpzaXplLCB1aW50MzJfdCBwcHRhYmxlX2lkKQorc3RhdGljIGludCBzbXVfdjExXzBfc2V0X3BwdGFibGVfdjJfMShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdm9pZCAqKnRhYmxlLAorCQkJCSAgICAgIHVpbnQzMl90ICpzaXplLCB1aW50MzJfdCBwcHRhYmxlX2lkKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gc211LT5hZGV2OwogCWNvbnN0IHN0cnVjdCBzbWNfZmlybXdhcmVfaGVhZGVyX3YyXzEgKnYyXzE7CkBAIC01MzcsNiArNTcwLDkgQEAgaW50IHNtdV92MTFfMF9nZXRfdmJpb3NfYm9vdHVwX3ZhbHVlcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIAkJc211LT5zbXVfdGFibGUuYm9vdF92YWx1ZXMucHBfdGFibGVfaWQgPSB2XzNfMy0+cHBsaWJfcHB0YWJsZV9pZDsKIAl9CiAKKwlzbXUtPnNtdV90YWJsZS5ib290X3ZhbHVlcy5mb3JtYXRfcmV2aXNpb24gPSBoZWFkZXItPmZvcm1hdF9yZXZpc2lvbjsKKwlzbXUtPnNtdV90YWJsZS5ib290X3ZhbHVlcy5jb250ZW50X3JldmlzaW9uID0gaGVhZGVyLT5jb250ZW50X3JldmlzaW9uOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTYxNiw2ICs2NTIsMjQgQEAgc3RhdGljIGludCBzbXVfdjExXzBfZ2V0X2Nsa19pbmZvX2Zyb21fdmJpb3Moc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiAJb3V0cHV0ID0gKHN0cnVjdCBhdG9tX2dldF9zbXVfY2xvY2tfaW5mb19vdXRwdXRfcGFyYW1ldGVyc192M18xICopJmlucHV0OwogCXNtdS0+c211X3RhYmxlLmJvb3RfdmFsdWVzLmRjbGsgPSBsZTMyX3RvX2NwdShvdXRwdXQtPmF0b21fc211X291dHB1dGNsa2ZyZXEuc211X2Nsb2NrX2ZyZXFfaHopIC8gMTAwMDA7CiAKKwlpZiAoKHNtdS0+c211X3RhYmxlLmJvb3RfdmFsdWVzLmZvcm1hdF9yZXZpc2lvbiA9PSAzKSAmJgorCSAgICAoc211LT5zbXVfdGFibGUuYm9vdF92YWx1ZXMuY29udGVudF9yZXZpc2lvbiA+PSAyKSkgeworCQltZW1zZXQoJmlucHV0LCAwLCBzaXplb2YoaW5wdXQpKTsKKwkJaW5wdXQuY2xrX2lkID0gU01VMTFfU1lTUExMMV8wX0ZDTEtfSUQ7CisJCWlucHV0LnN5c3BsbF9pZCA9IFNNVTExX1NZU1BMTDFfMl9JRDsKKwkJaW5wdXQuY29tbWFuZCA9IEdFVF9TTVVfQ0xPQ0tfSU5GT19WM18xX0dFVF9DTE9DS19GUkVROworCQlpbmRleCA9IGdldF9pbmRleF9pbnRvX21hc3Rlcl90YWJsZShhdG9tX21hc3Rlcl9saXN0X29mX2NvbW1hbmRfZnVuY3Rpb25zX3YyXzEsCisJCQkJCQkgICAgZ2V0c211Y2xvY2tpbmZvKTsKKworCQlyZXQgPSBhbWRncHVfYXRvbV9leGVjdXRlX3RhYmxlKGFkZXYtPm1vZGVfaW5mby5hdG9tX2NvbnRleHQsIGluZGV4LAorCQkJCQkJKHVpbnQzMl90ICopJmlucHV0KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCW91dHB1dCA9IChzdHJ1Y3QgYXRvbV9nZXRfc211X2Nsb2NrX2luZm9fb3V0cHV0X3BhcmFtZXRlcnNfdjNfMSAqKSZpbnB1dDsKKwkJc211LT5zbXVfdGFibGUuYm9vdF92YWx1ZXMuZmNsayA9IGxlMzJfdG9fY3B1KG91dHB1dC0+YXRvbV9zbXVfb3V0cHV0Y2xrZnJlcS5zbXVfY2xvY2tfZnJlcV9oeikgLyAxMDAwMDsKKwl9CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNzI0LDggKzc3OCw2IEBAIHN0YXRpYyBpbnQgc211X3YxMV8wX3dyaXRlX3dhdGVybWFya3NfdGFibGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiAJc3RydWN0IHNtdV90YWJsZSAqdGFibGUgPSBOVUxMOwogCiAJdGFibGUgPSAmc211X3RhYmxlLT50YWJsZXNbU01VX1RBQkxFX1dBVEVSTUFSS1NdOwotCWlmICghdGFibGUpCi0JCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKCF0YWJsZS0+Y3B1X2FkZHIpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNzkwLDQ0ICs4NDIsNiBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9pbml0X2Rpc3BsYXlfY291bnQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQzMl90IGNvdW50KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgc211X3YxMV8wX3VwZGF0ZV9mZWF0dXJlX2VuYWJsZV9zdGF0ZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgZmVhdHVyZV9pZCwgYm9vbCBlbmFibGVkKQotewotCXVpbnQzMl90IGZlYXR1cmVfbG93ID0gMCwgZmVhdHVyZV9oaWdoID0gMDsKLQlpbnQgcmV0ID0gMDsKLQotCWlmICghc211LT5wbV9lbmFibGVkKQotCQlyZXR1cm4gcmV0OwotCWlmIChmZWF0dXJlX2lkID49IDAgJiYgZmVhdHVyZV9pZCA8IDMxKQotCQlmZWF0dXJlX2xvdyA9ICgxIDw8IGZlYXR1cmVfaWQpOwotCWVsc2UgaWYgKGZlYXR1cmVfaWQgPiAzMSAmJiBmZWF0dXJlX2lkIDwgNjMpCi0JCWZlYXR1cmVfaGlnaCA9ICgxIDw8IGZlYXR1cmVfaWQpOwotCWVsc2UKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlpZiAoZW5hYmxlZCkgewotCQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LCBTTVVfTVNHX0VuYWJsZVNtdUZlYXR1cmVzTG93LAotCQkJCQkJICBmZWF0dXJlX2xvdyk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LCBTTVVfTVNHX0VuYWJsZVNtdUZlYXR1cmVzSGlnaCwKLQkJCQkJCSAgZmVhdHVyZV9oaWdoKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0KLQl9IGVsc2UgewotCQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LCBTTVVfTVNHX0Rpc2FibGVTbXVGZWF0dXJlc0xvdywKLQkJCQkJCSAgZmVhdHVyZV9sb3cpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19EaXNhYmxlU211RmVhdHVyZXNIaWdoLAotCQkJCQkJICBmZWF0dXJlX2hpZ2gpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQotCX0KLQotCXJldHVybiByZXQ7Ci19CiAKIHN0YXRpYyBpbnQgc211X3YxMV8wX3NldF9hbGxvd2VkX21hc2soc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiB7CkBAIC05MjksMTEgKzk0MywyMSBAQCBzbXVfdjExXzBfZ2V0X21heF9zdXN0YWluYWJsZV9jbG9jayhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgKmNsb2NrLAogCQkJCSAgICBlbnVtIHNtdV9jbGtfdHlwZSBjbG9ja19zZWxlY3QpCiB7CiAJaW50IHJldCA9IDA7CisJaW50IGNsa19pZDsKIAogCWlmICghc211LT5wbV9lbmFibGVkKQogCQlyZXR1cm4gcmV0OworCisJaWYgKChzbXVfbXNnX2dldF9pbmRleChzbXUsIFNNVV9NU0dfR2V0RGNNb2RlTWF4RHBtRnJlcSkgPCAwKSB8fAorCSAgICAoc211X21zZ19nZXRfaW5kZXgoc211LCBTTVVfTVNHX0dldE1heERwbUZyZXEpIDwgMCkpCisJCXJldHVybiAwOworCisJY2xrX2lkID0gc211X2Nsa19nZXRfaW5kZXgoc211LCBjbG9ja19zZWxlY3QpOworCWlmIChjbGtfaWQgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfR2V0RGNNb2RlTWF4RHBtRnJlcSwKLQkJCQkJICBzbXVfY2xrX2dldF9pbmRleChzbXUsIGNsb2NrX3NlbGVjdCkgPDwgMTYpOworCQkJCQkgIGNsa19pZCA8PCAxNik7CiAJaWYgKHJldCkgewogCQlwcl9lcnIoIltHZXRNYXhTdXN0YWluYWJsZUNsb2NrXSBGYWlsZWQgdG8gZ2V0IG1heCBEQyBjbG9jayBmcm9tIFNNQyEiKTsKIAkJcmV0dXJuIHJldDsKQEAgLTk0OCw3ICs5NzIsNyBAQCBzbXVfdjExXzBfZ2V0X21heF9zdXN0YWluYWJsZV9jbG9jayhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgKmNsb2NrLAogCiAJLyogaWYgREMgbGltaXQgaXMgemVybywgcmV0dXJuIEFDIGxpbWl0ICovCiAJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19HZXRNYXhEcG1GcmVxLAotCQkJCQkgIHNtdV9jbGtfZ2V0X2luZGV4KHNtdSwgY2xvY2tfc2VsZWN0KSA8PCAxNik7CisJCQkJCSAgY2xrX2lkIDw8IDE2KTsKIAlpZiAocmV0KSB7CiAJCXByX2VycigiW0dldE1heFN1c3RhaW5hYmxlQ2xvY2tdIGZhaWxlZCB0byBnZXQgbWF4IEFDIGNsb2NrIGZyb20gU01DISIpOwogCQlyZXR1cm4gcmV0OwpAQCAtMTAzOSw1NyArMTA2MywzMiBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9pbml0X21heF9zdXN0YWluYWJsZV9jbG9ja3Moc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc211X3YxMV8wX2dldF9wb3dlcl9saW1pdChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKLQkJCQkgICAgIHVpbnQzMl90ICpsaW1pdCwKLQkJCQkgICAgIGJvb2wgZ2V0X2RlZmF1bHQpCi17Ci0JaW50IHJldCA9IDA7Ci0KLQlpZiAoZ2V0X2RlZmF1bHQpIHsKLQkJbXV0ZXhfbG9jaygmc211LT5tdXRleCk7Ci0JCSpsaW1pdCA9IHNtdS0+ZGVmYXVsdF9wb3dlcl9saW1pdDsKLQkJaWYgKHNtdS0+b2RfZW5hYmxlZCkgewotCQkJKmxpbWl0ICo9ICgxMDAgKyBzbXUtPnNtdV90YWJsZS5URFBPRExpbWl0KTsKLQkJCSpsaW1pdCAvPSAxMDA7Ci0JCX0KLQkJbXV0ZXhfdW5sb2NrKCZzbXUtPm11dGV4KTsKLQl9IGVsc2UgewotCQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LCBTTVVfTVNHX0dldFBwdExpbWl0LAotCQkJc211X3Bvd2VyX2dldF9pbmRleChzbXUsIFNNVV9QT1dFUl9TT1VSQ0VfQUMpIDw8IDE2KTsKLQkJaWYgKHJldCkgewotCQkJcHJfZXJyKCJbJXNdIGdldCBQUFQgbGltaXQgZmFpbGVkISIsIF9fZnVuY19fKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQkJc211X3JlYWRfc21jX2FyZyhzbXUsIGxpbWl0KTsKLQkJc211LT5wb3dlcl9saW1pdCA9ICpsaW1pdDsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCiBzdGF0aWMgaW50IHNtdV92MTFfMF9zZXRfcG93ZXJfbGltaXQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQzMl90IG4pCiB7Ci0JdWludDMyX3QgbWF4X3Bvd2VyX2xpbWl0OwogCWludCByZXQgPSAwOwogCisJaWYgKG4gPiBzbXUtPmRlZmF1bHRfcG93ZXJfbGltaXQpIHsKKwkJcHJfZXJyKCJOZXcgcG93ZXIgbGltaXQgaXMgb3ZlciB0aGUgbWF4IGFsbG93ZWQgJWRcbiIsCisJCQkJc211LT5kZWZhdWx0X3Bvd2VyX2xpbWl0KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJaWYgKG4gPT0gMCkKIAkJbiA9IHNtdS0+ZGVmYXVsdF9wb3dlcl9saW1pdDsKIAotCW1heF9wb3dlcl9saW1pdCA9IHNtdS0+ZGVmYXVsdF9wb3dlcl9saW1pdDsKLQotCWlmIChzbXUtPm9kX2VuYWJsZWQpIHsKLQkJbWF4X3Bvd2VyX2xpbWl0ICo9ICgxMDAgKyBzbXUtPnNtdV90YWJsZS5URFBPRExpbWl0KTsKLQkJbWF4X3Bvd2VyX2xpbWl0IC89IDEwMDsKKwlpZiAoIXNtdV9mZWF0dXJlX2lzX2VuYWJsZWQoc211LCBTTVVfRkVBVFVSRV9QUFRfQklUKSkgeworCQlwcl9lcnIoIlNldHRpbmcgbmV3IHBvd2VyIGxpbWl0IGlzIG5vdCBzdXBwb3J0ZWQhXG4iKTsKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCX0KIAotCWlmIChzbXVfZmVhdHVyZV9pc19lbmFibGVkKHNtdSwgU01VX0ZFQVRVUkVfUFBUX0JJVCkpCi0JCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfU2V0UHB0TGltaXQsIG4pOworCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfU2V0UHB0TGltaXQsIG4pOwogCWlmIChyZXQpIHsKLQkJcHJfZXJyKCJbJXNdIFNldCBwb3dlciBsaW1pdCBGYWlsZWQhIiwgX19mdW5jX18pOworCQlwcl9lcnIoIlslc10gU2V0IHBvd2VyIGxpbWl0IEZhaWxlZCFcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIHJldDsKIAl9CisJc211LT5wb3dlcl9saW1pdCA9IG47CiAKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IHNtdV92MTFfMF9nZXRfY3VycmVudF9jbGtfZnJlcShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKQEAgLTEwOTgsMTYgKzEwOTcsMjEgQEAgc3RhdGljIGludCBzbXVfdjExXzBfZ2V0X2N1cnJlbnRfY2xrX2ZyZXEoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiB7CiAJaW50IHJldCA9IDA7CiAJdWludDMyX3QgZnJlcSA9IDA7CisJaW50IGFzaWNfY2xrX2lkOwogCiAJaWYgKGNsa19pZCA+PSBTTVVfQ0xLX0NPVU5UIHx8ICF2YWx1ZSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwlhc2ljX2Nsa19pZCA9IHNtdV9jbGtfZ2V0X2luZGV4KHNtdSwgY2xrX2lkKTsKKwlpZiAoYXNpY19jbGtfaWQgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCS8qIGlmIGRvbid0IGhhcyBHZXREcG1DbG9ja0ZyZXEgTWVzc2FnZSwgdHJ5IGdldCBjdXJyZW50IGNsb2NrIGJ5IFNtdU1ldHJpY3NfdCAqLwotCWlmIChzbXVfbXNnX2dldF9pbmRleChzbXUsIFNNVV9NU0dfR2V0RHBtQ2xvY2tGcmVxKSA9PSAwKQorCWlmIChzbXVfbXNnX2dldF9pbmRleChzbXUsIFNNVV9NU0dfR2V0RHBtQ2xvY2tGcmVxKSA8IDApCiAJCXJldCA9ICBzbXVfZ2V0X2N1cnJlbnRfY2xrX2ZyZXFfYnlfdGFibGUoc211LCBjbGtfaWQsICZmcmVxKTsKIAllbHNlIHsKIAkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19HZXREcG1DbG9ja0ZyZXEsCi0JCQkJCQkgIChzbXVfY2xrX2dldF9pbmRleChzbXUsIGNsa19pZCkgPDwgMTYpKTsKKwkJCQkJCSAgKGFzaWNfY2xrX2lkIDw8IDE2KSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCkBAIC0xMTIzLDIzICsxMTI3LDE3IEBAIHN0YXRpYyBpbnQgc211X3YxMV8wX2dldF9jdXJyZW50X2Nsa19mcmVxKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogfQogCiBzdGF0aWMgaW50IHNtdV92MTFfMF9zZXRfdGhlcm1hbF9yYW5nZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKLQkJCQkgICAgICAgc3RydWN0IHNtdV90ZW1wZXJhdHVyZV9yYW5nZSAqcmFuZ2UpCisJCQkJICAgICAgIHN0cnVjdCBzbXVfdGVtcGVyYXR1cmVfcmFuZ2UgcmFuZ2UpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBzbXUtPmFkZXY7CiAJaW50IGxvdyA9IFNNVV9USEVSTUFMX01JTklNVU1fQUxFUlRfVEVNUDsKIAlpbnQgaGlnaCA9IFNNVV9USEVSTUFMX01BWElNVU1fQUxFUlRfVEVNUDsKIAl1aW50MzJfdCB2YWw7CiAKLQlpZiAoIXJhbmdlKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmIChsb3cgPCByYW5nZS0+bWluKQotCQlsb3cgPSByYW5nZS0+bWluOwotCWlmIChoaWdoID4gcmFuZ2UtPm1heCkKLQkJaGlnaCA9IHJhbmdlLT5tYXg7Ci0KLQlsb3cgPSBtYXgoU01VX1RIRVJNQUxfTUlOSU1VTV9BTEVSVF9URU1QLCByYW5nZS0+bWluKTsKLQloaWdoID0gbWluKFNNVV9USEVSTUFMX01BWElNVU1fQUxFUlRfVEVNUCwgcmFuZ2UtPm1heCk7CisJbG93ID0gbWF4KFNNVV9USEVSTUFMX01JTklNVU1fQUxFUlRfVEVNUCwKKwkJCXJhbmdlLm1pbiAvIFNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVMpOworCWhpZ2ggPSBtaW4oU01VX1RIRVJNQUxfTUFYSU1VTV9BTEVSVF9URU1QLAorCQkJcmFuZ2UubWF4IC8gU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUyk7CiAKIAlpZiAobG93ID4gaGlnaCkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xMTc1LDI3ICsxMTczLDIwIEBAIHN0YXRpYyBpbnQgc211X3YxMV8wX2VuYWJsZV90aGVybWFsX2FsZXJ0KHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogc3RhdGljIGludCBzbXVfdjExXzBfc3RhcnRfdGhlcm1hbF9jb250cm9sKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogewogCWludCByZXQgPSAwOwotCXN0cnVjdCBzbXVfdGVtcGVyYXR1cmVfcmFuZ2UgcmFuZ2UgPSB7Ci0JCVRFTVBfUkFOR0VfTUlOLAotCQlURU1QX1JBTkdFX01BWCwKLQkJVEVNUF9SQU5HRV9NQVgsCi0JCVRFTVBfUkFOR0VfTUlOLAotCQlURU1QX1JBTkdFX01BWCwKLQkJVEVNUF9SQU5HRV9NQVgsCi0JCVRFTVBfUkFOR0VfTUlOLAotCQlURU1QX1JBTkdFX01BWCwKLQkJVEVNUF9SQU5HRV9NQVh9OworCXN0cnVjdCBzbXVfdGVtcGVyYXR1cmVfcmFuZ2UgcmFuZ2U7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBzbXUtPmFkZXY7CiAKIAlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKIAkJcmV0dXJuIHJldDsKIAorCW1lbWNweSgmcmFuZ2UsICZzbXUxMV90aGVybWFsX3BvbGljeVswXSwgc2l6ZW9mKHN0cnVjdCBzbXVfdGVtcGVyYXR1cmVfcmFuZ2UpKTsKKwogCXJldCA9IHNtdV9nZXRfdGhlcm1hbF90ZW1wZXJhdHVyZV9yYW5nZShzbXUsICZyYW5nZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAogCWlmIChzbXUtPnNtdV90YWJsZS50aGVybWFsX2NvbnRyb2xsZXJfdHlwZSkgewotCQlyZXQgPSBzbXVfdjExXzBfc2V0X3RoZXJtYWxfcmFuZ2Uoc211LCAmcmFuZ2UpOworCQlyZXQgPSBzbXVfdjExXzBfc2V0X3RoZXJtYWxfcmFuZ2Uoc211LCByYW5nZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCkBAIC0xMjA4LDE3ICsxMTk5LDE1IEBAIHN0YXRpYyBpbnQgc211X3YxMV8wX3N0YXJ0X3RoZXJtYWxfY29udHJvbChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JYWRldi0+cG0uZHBtLnRoZXJtYWwubWluX3RlbXAgPSByYW5nZS5taW4gKiBTTVVfVEVNUEVSQVRVUkVfVU5JVFNfUEVSX0NFTlRJR1JBREVTOwotCWFkZXYtPnBtLmRwbS50aGVybWFsLm1heF90ZW1wID0gcmFuZ2UubWF4ICogU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKLQlhZGV2LT5wbS5kcG0udGhlcm1hbC5tYXhfZWRnZV9lbWVyZ2VuY3lfdGVtcCA9IHJhbmdlLmVkZ2VfZW1lcmdlbmN5X21heCAqIFNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7Ci0JYWRldi0+cG0uZHBtLnRoZXJtYWwubWluX2hvdHNwb3RfdGVtcCA9IHJhbmdlLmhvdHNwb3RfbWluICogU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKLQlhZGV2LT5wbS5kcG0udGhlcm1hbC5tYXhfaG90c3BvdF9jcml0X3RlbXAgPSByYW5nZS5ob3RzcG90X2NyaXRfbWF4ICogU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKLQlhZGV2LT5wbS5kcG0udGhlcm1hbC5tYXhfaG90c3BvdF9lbWVyZ2VuY3lfdGVtcCA9IHJhbmdlLmhvdHNwb3RfZW1lcmdlbmN5X21heCAqIFNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7Ci0JYWRldi0+cG0uZHBtLnRoZXJtYWwubWluX21lbV90ZW1wID0gcmFuZ2UubWVtX21pbiAqIFNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7Ci0JYWRldi0+cG0uZHBtLnRoZXJtYWwubWF4X21lbV9jcml0X3RlbXAgPSByYW5nZS5tZW1fY3JpdF9tYXggKiBTTVVfVEVNUEVSQVRVUkVfVU5JVFNfUEVSX0NFTlRJR1JBREVTOwotCWFkZXYtPnBtLmRwbS50aGVybWFsLm1heF9tZW1fZW1lcmdlbmN5X3RlbXAgPSByYW5nZS5tZW1fZW1lcmdlbmN5X21heCAqIFNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7Ci0JYWRldi0+cG0uZHBtLnRoZXJtYWwubWluX3RlbXAgPSByYW5nZS5taW4gKiBTTVVfVEVNUEVSQVRVUkVfVU5JVFNfUEVSX0NFTlRJR1JBREVTOwotCWFkZXYtPnBtLmRwbS50aGVybWFsLm1heF90ZW1wID0gcmFuZ2UubWF4ICogU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKKwlhZGV2LT5wbS5kcG0udGhlcm1hbC5taW5fdGVtcCA9IHJhbmdlLm1pbjsKKwlhZGV2LT5wbS5kcG0udGhlcm1hbC5tYXhfdGVtcCA9IHJhbmdlLm1heDsKKwlhZGV2LT5wbS5kcG0udGhlcm1hbC5tYXhfZWRnZV9lbWVyZ2VuY3lfdGVtcCA9IHJhbmdlLmVkZ2VfZW1lcmdlbmN5X21heDsKKwlhZGV2LT5wbS5kcG0udGhlcm1hbC5taW5faG90c3BvdF90ZW1wID0gcmFuZ2UuaG90c3BvdF9taW47CisJYWRldi0+cG0uZHBtLnRoZXJtYWwubWF4X2hvdHNwb3RfY3JpdF90ZW1wID0gcmFuZ2UuaG90c3BvdF9jcml0X21heDsKKwlhZGV2LT5wbS5kcG0udGhlcm1hbC5tYXhfaG90c3BvdF9lbWVyZ2VuY3lfdGVtcCA9IHJhbmdlLmhvdHNwb3RfZW1lcmdlbmN5X21heDsKKwlhZGV2LT5wbS5kcG0udGhlcm1hbC5taW5fbWVtX3RlbXAgPSByYW5nZS5tZW1fbWluOworCWFkZXYtPnBtLmRwbS50aGVybWFsLm1heF9tZW1fY3JpdF90ZW1wID0gcmFuZ2UubWVtX2NyaXRfbWF4OworCWFkZXYtPnBtLmRwbS50aGVybWFsLm1heF9tZW1fZW1lcmdlbmN5X3RlbXAgPSByYW5nZS5tZW1fZW1lcmdlbmN5X21heDsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xMjUyLDYgKzEyNDEsMTAgQEAgc3RhdGljIGludCBzbXVfdjExXzBfcmVhZF9zZW5zb3Ioc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJCQkJIHZvaWQgKmRhdGEsIHVpbnQzMl90ICpzaXplKQogewogCWludCByZXQgPSAwOworCisJaWYoIWRhdGEgfHwgIXNpemUpCisJCXJldHVybiAtRUlOVkFMOworCiAJc3dpdGNoIChzZW5zb3IpIHsKIAljYXNlIEFNREdQVV9QUF9TRU5TT1JfR0ZYX01DTEs6CiAJCXJldCA9IHNtdV9nZXRfY3VycmVudF9jbGtfZnJlcShzbXUsIFNNVV9VQ0xLLCAodWludDMyX3QgKilkYXRhKTsKQEAgLTEyNzQsMTAgKzEyNjcsNiBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9yZWFkX3NlbnNvcihzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAkJYnJlYWs7CiAJfQogCi0JLyogdHJ5IGdldCBzZW5zb3IgZGF0YSBieSBhc2ljICovCi0JaWYgKHJldCkKLQkJcmV0ID0gc211X2FzaWNfcmVhZF9zZW5zb3Ioc211LCBzZW5zb3IsIGRhdGEsIHNpemUpOwotCiAJaWYgKHJldCkKIAkJKnNpemUgPSAwOwogCkBAIC0xMzI0LDEwICsxMzEzLDE1IEBAIHNtdV92MTFfMF9kaXNwbGF5X2Nsb2NrX3ZvbHRhZ2VfcmVxdWVzdChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAkJaWYgKHJldCkKIAkJCWdvdG8gZmFpbGVkOwogCisJCWlmIChjbGtfc2VsZWN0ID09IFNNVV9VQ0xLICYmIHNtdS0+ZGlzYWJsZV91Y2xrX3N3aXRjaCkKKwkJCXJldHVybiAwOworCiAJCW11dGV4X2xvY2soJnNtdS0+bXV0ZXgpOwotCQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LCBTTVVfTVNHX1NldEhhcmRNaW5CeUZyZXEsCi0JCQkoc211X2Nsa19nZXRfaW5kZXgoc211LCBjbGtfc2VsZWN0KSA8PCAxNikgfCBjbGtfZnJlcSk7CisJCXJldCA9IHNtdV9zZXRfaGFyZF9mcmVxX3JhbmdlKHNtdSwgY2xrX3NlbGVjdCwgY2xrX2ZyZXEsIDApOwogCQltdXRleF91bmxvY2soJnNtdS0+bXV0ZXgpOworCisJCWlmKGNsa19zZWxlY3QgPT0gU01VX1VDTEspCisJCQlzbXUtPmhhcmRfbWluX3VjbGtfcmVxX2Zyb21fZGFsID0gY2xrX2ZyZXE7CiAJfQogCiBmYWlsZWQ6CkBAIC0xMzYzLDYgKzEzNTcsOCBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9nZnhfb2ZmX2NvbnRyb2woc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGJvb2wgZW5hYmxlKQogCWNhc2UgQ0hJUF9WRUdBMjA6CiAJCWJyZWFrOwogCWNhc2UgQ0hJUF9OQVZJMTA6CisJY2FzZSBDSElQX05BVkkxNDoKKwljYXNlIENISVBfTkFWSTEyOgogCQlpZiAoIShhZGV2LT5wbS5wcF9mZWF0dXJlICYgUFBfR0ZYT0ZGX01BU0spKQogCQkJcmV0dXJuIDA7CiAJCW11dGV4X2xvY2soJnNtdS0+bXV0ZXgpOwpAQCAtMTM4OSwxNyArMTM4NSwxNyBAQCBzbXVfdjExXzBfZ2V0X2Zhbl9jb250cm9sX21vZGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiB9CiAKIHN0YXRpYyBpbnQKLXNtdV92MTFfMF9zbWNfZmFuX2NvbnRyb2woc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGJvb2wgc3RhcnQpCitzbXVfdjExXzBfYXV0b19mYW5fY29udHJvbChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgYm9vbCBhdXRvX2Zhbl9jb250cm9sKQogewogCWludCByZXQgPSAwOwogCiAJaWYgKCFzbXVfZmVhdHVyZV9pc19zdXBwb3J0ZWQoc211LCBTTVVfRkVBVFVSRV9GQU5fQ09OVFJPTF9CSVQpKQogCQlyZXR1cm4gMDsKIAotCXJldCA9IHNtdV9mZWF0dXJlX3NldF9lbmFibGVkKHNtdSwgU01VX0ZFQVRVUkVfRkFOX0NPTlRST0xfQklULCBzdGFydCk7CisJcmV0ID0gc211X2ZlYXR1cmVfc2V0X2VuYWJsZWQoc211LCBTTVVfRkVBVFVSRV9GQU5fQ09OVFJPTF9CSVQsIGF1dG9fZmFuX2NvbnRyb2wpOwogCWlmIChyZXQpCiAJCXByX2VycigiWyVzXSVzIHNtYyBGQU4gQ09OVFJPTCBmZWF0dXJlIGZhaWxlZCEiLAotCQkgICAgICAgX19mdW5jX18sIChzdGFydCA/ICJTdGFydCIgOiAiU3RvcCIpKTsKKwkJICAgICAgIF9fZnVuY19fLCAoYXV0b19mYW5fY29udHJvbCA/ICJTdGFydCIgOiAiU3RvcCIpKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xNDIzLDE2ICsxNDE5LDE1IEBAIHN0YXRpYyBpbnQKIHNtdV92MTFfMF9zZXRfZmFuX3NwZWVkX3BlcmNlbnQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gc211LT5hZGV2OwotCXVpbnQzMl90IGR1dHkxMDA7Ci0JdWludDMyX3QgZHV0eTsKKwl1aW50MzJfdCBkdXR5MTAwLCBkdXR5OwogCXVpbnQ2NF90IHRtcDY0OwotCWJvb2wgc3RvcCA9IDA7CiAKIAlpZiAoc3BlZWQgPiAxMDApCiAJCXNwZWVkID0gMTAwOwogCi0JaWYgKHNtdV92MTFfMF9zbWNfZmFuX2NvbnRyb2woc211LCBzdG9wKSkKKwlpZiAoc211X3YxMV8wX2F1dG9fZmFuX2NvbnRyb2woc211LCAwKSkKIAkJcmV0dXJuIC1FSU5WQUw7CisKIAlkdXR5MTAwID0gUkVHX0dFVF9GSUVMRChSUkVHMzJfU09DMTUoVEhNLCAwLCBtbUNHX0ZET19DVFJMMSksCiAJCQkJQ0dfRkRPX0NUUkwxLCBGTUFYX0RVVFkxMDApOwogCWlmICghZHV0eTEwMCkKQEAgLTE0NTQsMTggKzE0NDksMTYgQEAgc211X3YxMV8wX3NldF9mYW5fY29udHJvbF9tb2RlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogCQkJICAgICAgIHVpbnQzMl90IG1vZGUpCiB7CiAJaW50IHJldCA9IDA7Ci0JYm9vbCBzdGFydCA9IDE7Ci0JYm9vbCBzdG9wICA9IDA7CiAKIAlzd2l0Y2ggKG1vZGUpIHsKIAljYXNlIEFNRF9GQU5fQ1RSTF9OT05FOgogCQlyZXQgPSBzbXVfdjExXzBfc2V0X2Zhbl9zcGVlZF9wZXJjZW50KHNtdSwgMTAwKTsKIAkJYnJlYWs7CiAJY2FzZSBBTURfRkFOX0NUUkxfTUFOVUFMOgotCQlyZXQgPSBzbXVfdjExXzBfc21jX2Zhbl9jb250cm9sKHNtdSwgc3RvcCk7CisJCXJldCA9IHNtdV92MTFfMF9hdXRvX2Zhbl9jb250cm9sKHNtdSwgMCk7CiAJCWJyZWFrOwogCWNhc2UgQU1EX0ZBTl9DVFJMX0FVVE86Ci0JCXJldCA9IHNtdV92MTFfMF9zbWNfZmFuX2NvbnRyb2woc211LCBzdGFydCk7CisJCXJldCA9IHNtdV92MTFfMF9hdXRvX2Zhbl9jb250cm9sKHNtdSwgMSk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWJyZWFrOwpAQCAtMTQ4NSwxMyArMTQ3OCwxMiBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9zZXRfZmFuX3NwZWVkX3JwbShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHNtdS0+YWRldjsKIAlpbnQgcmV0OwogCXVpbnQzMl90IHRhY2hfcGVyaW9kLCBjcnlzdGFsX2Nsb2NrX2ZyZXE7Ci0JYm9vbCBzdG9wID0gMDsKIAogCWlmICghc3BlZWQpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJbXV0ZXhfbG9jaygmKHNtdS0+bXV0ZXgpKTsKLQlyZXQgPSBzbXVfdjExXzBfc21jX2Zhbl9jb250cm9sKHNtdSwgc3RvcCk7CisJcmV0ID0gc211X3YxMV8wX2F1dG9fZmFuX2NvbnRyb2woc211LCAwKTsKIAlpZiAocmV0KQogCQlnb3RvIHNldF9mYW5fc3BlZWRfcnBtX2ZhaWxlZDsKIApAQCAtMTY3Miw3ICsxNjY0LDcgQEAgc3RhdGljIGJvb2wgc211X3YxMV8wX2JhY29faXNfc3VwcG9ydChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIHN0YXRpYyBlbnVtIHNtdV9iYWNvX3N0YXRlIHNtdV92MTFfMF9iYWNvX2dldF9zdGF0ZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIHsKIAlzdHJ1Y3Qgc211X2JhY29fY29udGV4dCAqc211X2JhY28gPSAmc211LT5zbXVfYmFjbzsKLQllbnVtIHNtdV9iYWNvX3N0YXRlIGJhY29fc3RhdGUgPSBTTVVfQkFDT19TVEFURV9FWElUOworCWVudW0gc211X2JhY29fc3RhdGUgYmFjb19zdGF0ZTsKIAogCW11dGV4X2xvY2soJnNtdV9iYWNvLT5tdXRleCk7CiAJYmFjb19zdGF0ZSA9IHNtdV9iYWNvLT5zdGF0ZTsKQEAgLTE3MjYsNiArMTcxOCw0MyBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9iYWNvX3Jlc2V0KHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgc211X3YxMV8wX2dldF9kcG1fdWx0aW1hdGVfZnJlcShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfY2xrX3R5cGUgY2xrX3R5cGUsCisJCQkJCQkgdWludDMyX3QgKm1pbiwgdWludDMyX3QgKm1heCkKK3sKKwlpbnQgcmV0ID0gMCwgY2xrX2lkID0gMDsKKwl1aW50MzJfdCBwYXJhbSA9IDA7CisKKwltdXRleF9sb2NrKCZzbXUtPm11dGV4KTsKKwljbGtfaWQgPSBzbXVfY2xrX2dldF9pbmRleChzbXUsIGNsa190eXBlKTsKKwlpZiAoY2xrX2lkIDwgMCkgeworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGZhaWxlZDsKKwl9CisJcGFyYW0gPSAoY2xrX2lkICYgMHhmZmZmKSA8PCAxNjsKKworCWlmIChtYXgpIHsKKwkJcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19HZXRNYXhEcG1GcmVxLCBwYXJhbSk7CisJCWlmIChyZXQpCisJCQlnb3RvIGZhaWxlZDsKKwkJcmV0ID0gc211X3JlYWRfc21jX2FyZyhzbXUsIG1heCk7CisJCWlmIChyZXQpCisJCQlnb3RvIGZhaWxlZDsKKwl9CisKKwlpZiAobWluKSB7CisJCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfR2V0TWluRHBtRnJlcSwgcGFyYW0pOworCQlpZiAocmV0KQorCQkJZ290byBmYWlsZWQ7CisJCXJldCA9IHNtdV9yZWFkX3NtY19hcmcoc211LCBtaW4pOworCQlpZiAocmV0KQorCQkJZ290byBmYWlsZWQ7CisJfQorCitmYWlsZWQ6CisJbXV0ZXhfdW5sb2NrKCZzbXUtPm11dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNtdV9mdW5jcyBzbXVfdjExXzBfZnVuY3MgPSB7CiAJLmluaXRfbWljcm9jb2RlID0gc211X3YxMV8wX2luaXRfbWljcm9jb2RlLAogCS5sb2FkX21pY3JvY29kZSA9IHNtdV92MTFfMF9sb2FkX21pY3JvY29kZSwKQEAgLTE3NDQsNyArMTc3Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc211X2Z1bmNzIHNtdV92MTFfMF9mdW5jcyA9IHsKIAkubm90aWZ5X21lbW9yeV9wb29sX2xvY2F0aW9uID0gc211X3YxMV8wX25vdGlmeV9tZW1vcnlfcG9vbF9sb2NhdGlvbiwKIAkuY2hlY2tfcHB0YWJsZSA9IHNtdV92MTFfMF9jaGVja19wcHRhYmxlLAogCS5wYXJzZV9wcHRhYmxlID0gc211X3YxMV8wX3BhcnNlX3BwdGFibGUsCi0JLnBvcHVsYXRlX3NtY19wcHRhYmxlID0gc211X3YxMV8wX3BvcHVsYXRlX3NtY19wcHRhYmxlLAorCS5wb3B1bGF0ZV9zbWNfdGFibGVzID0gc211X3YxMV8wX3BvcHVsYXRlX3NtY19wcHRhYmxlLAogCS53cml0ZV9wcHRhYmxlID0gc211X3YxMV8wX3dyaXRlX3BwdGFibGUsCiAJLndyaXRlX3dhdGVybWFya3NfdGFibGUgPSBzbXVfdjExXzBfd3JpdGVfd2F0ZXJtYXJrc190YWJsZSwKIAkuc2V0X21pbl9kY2VmX2RlZXBfc2xlZXAgPSBzbXVfdjExXzBfc2V0X21pbl9kY2VmX2RlZXBfc2xlZXAsCkBAIC0xNzUzLDkgKzE3ODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNtdV9mdW5jcyBzbXVfdjExXzBfZnVuY3MgPSB7CiAJLnNldF9hbGxvd2VkX21hc2sgPSBzbXVfdjExXzBfc2V0X2FsbG93ZWRfbWFzaywKIAkuZ2V0X2VuYWJsZWRfbWFzayA9IHNtdV92MTFfMF9nZXRfZW5hYmxlZF9tYXNrLAogCS5zeXN0ZW1fZmVhdHVyZXNfY29udHJvbCA9IHNtdV92MTFfMF9zeXN0ZW1fZmVhdHVyZXNfY29udHJvbCwKLQkudXBkYXRlX2ZlYXR1cmVfZW5hYmxlX3N0YXRlID0gc211X3YxMV8wX3VwZGF0ZV9mZWF0dXJlX2VuYWJsZV9zdGF0ZSwKIAkubm90aWZ5X2Rpc3BsYXlfY2hhbmdlID0gc211X3YxMV8wX25vdGlmeV9kaXNwbGF5X2NoYW5nZSwKLQkuZ2V0X3Bvd2VyX2xpbWl0ID0gc211X3YxMV8wX2dldF9wb3dlcl9saW1pdCwKIAkuc2V0X3Bvd2VyX2xpbWl0ID0gc211X3YxMV8wX3NldF9wb3dlcl9saW1pdCwKIAkuZ2V0X2N1cnJlbnRfY2xrX2ZyZXEgPSBzbXVfdjExXzBfZ2V0X2N1cnJlbnRfY2xrX2ZyZXEsCiAJLmluaXRfbWF4X3N1c3RhaW5hYmxlX2Nsb2NrcyA9IHNtdV92MTFfMF9pbml0X21heF9zdXN0YWluYWJsZV9jbG9ja3MsCkBAIC0xNzc3LDYgKzE4MDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNtdV9mdW5jcyBzbXVfdjExXzBfZnVuY3MgPSB7CiAJLmJhY29fZ2V0X3N0YXRlID0gc211X3YxMV8wX2JhY29fZ2V0X3N0YXRlLAogCS5iYWNvX3NldF9zdGF0ZSA9IHNtdV92MTFfMF9iYWNvX3NldF9zdGF0ZSwKIAkuYmFjb19yZXNldCA9IHNtdV92MTFfMF9iYWNvX3Jlc2V0LAorCS5nZXRfZHBtX3VsdGltYXRlX2ZyZXEgPSBzbXVfdjExXzBfZ2V0X2RwbV91bHRpbWF0ZV9mcmVxLAogfTsKIAogdm9pZCBzbXVfdjExXzBfc2V0X3NtdV9mdW5jcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKQEAgLTE3ODgsNyArMTgxNiwxMiBAQCB2b2lkIHNtdV92MTFfMF9zZXRfc211X2Z1bmNzKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogCWNhc2UgQ0hJUF9WRUdBMjA6CiAJCXZlZ2EyMF9zZXRfcHB0X2Z1bmNzKHNtdSk7CiAJCWJyZWFrOworCWNhc2UgQ0hJUF9BUkNUVVJVUzoKKwkJYXJjdHVydXNfc2V0X3BwdF9mdW5jcyhzbXUpOworCQlicmVhazsKIAljYXNlIENISVBfTkFWSTEwOgorCWNhc2UgQ0hJUF9OQVZJMTQ6CisJY2FzZSBDSElQX05BVkkxMjoKIAkJbmF2aTEwX3NldF9wcHRfZnVuY3Moc211KTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdV92MTJfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMl8wLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQyMjgwYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdV92MTJfMC5jCkBAIC0wLDAgKzEsNDEyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlICJwcF9kZWJ1Zy5oIgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSAiYW1kZ3B1LmgiCisjaW5jbHVkZSAiYW1kZ3B1X3NtdS5oIgorI2luY2x1ZGUgImF0b21maXJtd2FyZS5oIgorI2luY2x1ZGUgImFtZGdwdV9hdG9tZmlybXdhcmUuaCIKKyNpbmNsdWRlICJzbXVfdjEyXzAuaCIKKyNpbmNsdWRlICJzb2MxNV9jb21tb24uaCIKKyNpbmNsdWRlICJhdG9tLmgiCisjaW5jbHVkZSAicmVub2lyX3BwdC5oIgorCisjaW5jbHVkZSAiYXNpY19yZWcvbXAvbXBfMTJfMF8wX29mZnNldC5oIgorI2luY2x1ZGUgImFzaWNfcmVnL21wL21wXzEyXzBfMF9zaF9tYXNrLmgiCisKKyNkZWZpbmUgc21uTVAxX0ZJUk1XQVJFX0ZMQUdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwMTAwMjQKKworI2RlZmluZSBtbVNNVUlPX0dGWF9NSVNDX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBjOAorI2RlZmluZSBtbVNNVUlPX0dGWF9NSVNDX0NOVExfQkFTRV9JRFggICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU01VSU9fR0ZYX01JU0NfQ05UTF9fUFdSX0dGWE9GRl9TVEFUVVNfTUFTSyAgICAgICAgICAweDAwMDAwMDA2TAorI2RlZmluZSBTTVVJT19HRlhfTUlTQ19DTlRMX19QV1JfR0ZYT0ZGX1NUQVRVU19fU0hJRlQgICAgICAgIDB4MQorCitzdGF0aWMgaW50IHNtdV92MTJfMF9zZW5kX21zZ193aXRob3V0X3dhaXRpbmcoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJCSAgICAgIHVpbnQxNl90IG1zZykKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHNtdS0+YWRldjsKKworCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfNjYsIG1zZyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc211X3YxMl8wX3JlYWRfYXJnKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MzJfdCAqYXJnKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gc211LT5hZGV2OworCisJKmFyZyA9IFJSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfODIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNtdV92MTJfMF93YWl0X2Zvcl9yZXNwb25zZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHNtdS0+YWRldjsKKwl1aW50MzJfdCBjdXJfdmFsdWUsIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKKwkJY3VyX3ZhbHVlID0gUlJFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR185MCk7CisJCWlmICgoY3VyX3ZhbHVlICYgTVAxX0MyUE1TR185MF9fQ09OVEVOVF9NQVNLKSAhPSAwKQorCQkJYnJlYWs7CisJCXVkZWxheSgxKTsKKwl9CisKKwkvKiB0aW1lb3V0IG1lYW5zIHdyb25nIGxvZ2ljICovCisJaWYgKGkgPT0gYWRldi0+dXNlY190aW1lb3V0KQorCQlyZXR1cm4gLUVUSU1FOworCisJcmV0dXJuIFJSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfOTApID09IDB4MSA/IDAgOiAtRUlPOworfQorCitzdGF0aWMgaW50IHNtdV92MTJfMF9zZW5kX21zZyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDE2X3QgbXNnKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gc211LT5hZGV2OworCWludCByZXQgPSAwLCBpbmRleCA9IDA7CisKKwlpbmRleCA9IHNtdV9tc2dfZ2V0X2luZGV4KHNtdSwgbXNnKTsKKwlpZiAoaW5kZXggPCAwKQorCQlyZXR1cm4gaW5kZXg7CisKKwlzbXVfdjEyXzBfd2FpdF9mb3JfcmVzcG9uc2Uoc211KTsKKworCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfOTAsIDApOworCisJc211X3YxMl8wX3NlbmRfbXNnX3dpdGhvdXRfd2FpdGluZyhzbXUsICh1aW50MTZfdClpbmRleCk7CisKKwlyZXQgPSBzbXVfdjEyXzBfd2FpdF9mb3JfcmVzcG9uc2Uoc211KTsKKworCWlmIChyZXQpCisJCXByX2VycigiRmFpbGVkIHRvIHNlbmQgbWVzc2FnZSAweCV4LCByZXNwb25zZSAweCV4XG4iLCBpbmRleCwKKwkJICAgICAgIHJldCk7CisKKwlyZXR1cm4gcmV0OworCit9CisKK3N0YXRpYyBpbnQKK3NtdV92MTJfMF9zZW5kX21zZ193aXRoX3BhcmFtKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCB1aW50MTZfdCBtc2csCisJCQkgICAgICB1aW50MzJfdCBwYXJhbSkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHNtdS0+YWRldjsKKwlpbnQgcmV0ID0gMCwgaW5kZXggPSAwOworCisJaW5kZXggPSBzbXVfbXNnX2dldF9pbmRleChzbXUsIG1zZyk7CisJaWYgKGluZGV4IDwgMCkKKwkJcmV0dXJuIGluZGV4OworCisJcmV0ID0gc211X3YxMl8wX3dhaXRfZm9yX3Jlc3BvbnNlKHNtdSk7CisJaWYgKHJldCkKKwkJcHJfZXJyKCJGYWlsZWQgdG8gc2VuZCBtZXNzYWdlIDB4JXgsIHJlc3BvbnNlIDB4JXgsIHBhcmFtIDB4JXhcbiIsCisJCSAgICAgICBpbmRleCwgcmV0LCBwYXJhbSk7CisKKwlXUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzkwLCAwKTsKKworCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfODIsIHBhcmFtKTsKKworCXNtdV92MTJfMF9zZW5kX21zZ193aXRob3V0X3dhaXRpbmcoc211LCAodWludDE2X3QpaW5kZXgpOworCisJcmV0ID0gc211X3YxMl8wX3dhaXRfZm9yX3Jlc3BvbnNlKHNtdSk7CisJaWYgKHJldCkKKwkJcHJfZXJyKCJGYWlsZWQgdG8gc2VuZCBtZXNzYWdlIDB4JXgsIHJlc3BvbnNlIDB4JXggcGFyYW0gMHgleFxuIiwKKwkJICAgICAgIGluZGV4LCByZXQsIHBhcmFtKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgc211X3YxMl8wX2NoZWNrX2Z3X3N0YXR1cyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHNtdS0+YWRldjsKKwl1aW50MzJfdCBtcDFfZndfZmxhZ3M7CisKKwltcDFfZndfZmxhZ3MgPSBSUkVHMzJfUENJRShNUDFfUHVibGljIHwKKwkJKHNtbk1QMV9GSVJNV0FSRV9GTEFHUyAmIDB4ZmZmZmZmZmYpKTsKKworCWlmICgobXAxX2Z3X2ZsYWdzICYgTVAxX0ZJUk1XQVJFX0ZMQUdTX19JTlRFUlJVUFRTX0VOQUJMRURfTUFTSykgPj4KKwkJTVAxX0ZJUk1XQVJFX0ZMQUdTX19JTlRFUlJVUFRTX0VOQUJMRURfX1NISUZUKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAtRUlPOworfQorCitzdGF0aWMgaW50IHNtdV92MTJfMF9jaGVja19md192ZXJzaW9uKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQoreworCXVpbnQzMl90IGlmX3ZlcnNpb24gPSAweGZmLCBzbXVfdmVyc2lvbiA9IDB4ZmY7CisJdWludDE2X3Qgc211X21ham9yOworCXVpbnQ4X3Qgc211X21pbm9yLCBzbXVfZGVidWc7CisJaW50IHJldCA9IDA7CisKKwlyZXQgPSBzbXVfZ2V0X3NtY192ZXJzaW9uKHNtdSwgJmlmX3ZlcnNpb24sICZzbXVfdmVyc2lvbik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXNtdV9tYWpvciA9IChzbXVfdmVyc2lvbiA+PiAxNikgJiAweGZmZmY7CisJc211X21pbm9yID0gKHNtdV92ZXJzaW9uID4+IDgpICYgMHhmZjsKKwlzbXVfZGVidWcgPSAoc211X3ZlcnNpb24gPj4gMCkgJiAweGZmOworCisJLyoKKwkgKiAxLiBpZl92ZXJzaW9uIG1pc21hdGNoIGlzIG5vdCBjcml0aWNhbCBhcyBvdXIgZncgaXMgZGVzaWduZWQKKwkgKiB0byBiZSBiYWNrd2FyZCBjb21wYXRpYmxlLgorCSAqIDIuIE5ldyBmdyB1c3VhbGx5IGJyaW5ncyBzb21lIG9wdGltaXphdGlvbnMuIEJ1dCB0aGF0J3MgdmlzaWJsZQorCSAqIG9ubHkgb24gdGhlIHBhaXJlZCBkcml2ZXIuCisJICogQ29uc2lkZXJpbmcgYWJvdmUsIHdlIGp1c3QgbGVhdmUgdXNlciBhIHdhcm5pbmcgbWVzc2FnZSBpbnN0ZWFkCisJICogb2YgaGFsdCBkcml2ZXIgbG9hZGluZy4KKwkgKi8KKwlpZiAoaWZfdmVyc2lvbiAhPSBzbXUtPnNtY19pZl92ZXJzaW9uKSB7CisJCXByX2luZm8oInNtdSBkcml2ZXIgaWYgdmVyc2lvbiA9IDB4JTA4eCwgc211IGZ3IGlmIHZlcnNpb24gPSAweCUwOHgsICIKKwkJCSJzbXUgZncgdmVyc2lvbiA9IDB4JTA4eCAoJWQuJWQuJWQpXG4iLAorCQkJc211LT5zbWNfaWZfdmVyc2lvbiwgaWZfdmVyc2lvbiwKKwkJCXNtdV92ZXJzaW9uLCBzbXVfbWFqb3IsIHNtdV9taW5vciwgc211X2RlYnVnKTsKKwkJcHJfd2FybigiU01VIGRyaXZlciBpZiB2ZXJzaW9uIG5vdCBtYXRjaGVkXG4iKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHNtdV92MTJfMF9wb3dlcmdhdGVfc2RtYShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgYm9vbCBnYXRlKQoreworCWlmICghKHNtdS0+YWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoZ2F0ZSkKKwkJcmV0dXJuIHNtdV9zZW5kX3NtY19tc2coc211LCBTTVVfTVNHX1Bvd2VyRG93blNkbWEpOworCWVsc2UKKwkJcmV0dXJuIHNtdV9zZW5kX3NtY19tc2coc211LCBTTVVfTVNHX1Bvd2VyVXBTZG1hKTsKK30KKworc3RhdGljIGludCBzbXVfdjEyXzBfcG93ZXJnYXRlX3ZjbihzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgYm9vbCBnYXRlKQoreworCWlmICghKHNtdS0+YWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoZ2F0ZSkKKwkJcmV0dXJuIHNtdV9zZW5kX3NtY19tc2coc211LCBTTVVfTVNHX1Bvd2VyRG93blZjbik7CisJZWxzZQorCQlyZXR1cm4gc211X3NlbmRfc21jX21zZyhzbXUsIFNNVV9NU0dfUG93ZXJVcFZjbik7Cit9CisKK3N0YXRpYyBpbnQgc211X3YxMl8wX3NldF9nZnhfY2dwZyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgYm9vbCBlbmFibGUpCit7CisJaWYgKCEoc211LT5hZGV2LT5wZ19mbGFncyAmIEFNRF9QR19TVVBQT1JUX0dGWF9QRykpCisJCXJldHVybiAwOworCisJcmV0dXJuIHNtdV92MTJfMF9zZW5kX21zZ193aXRoX3BhcmFtKHNtdSwKKwkJU01VX01TR19TZXRHZnhDR1BHLCBlbmFibGUgPyAxIDogMCk7Cit9CisKKy8qKgorICogc211X3YxMl8wX2dldF9nZnhvZmZfc3RhdHVzIC0gZ2V0IGdmeG9mZiBzdGF0dXMKKyAqCisgKiBAc211OiBhbWRncHVfZGV2aWNlIHBvaW50ZXIKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdXNlZCB0byBnZXQgZ2Z4b2ZmIHN0YXR1cworICoKKyAqIFJldHVybnMgMD1HRlhPRkYoZGVmYXVsdCkuCisgKiBSZXR1cm5zIDE9VHJhbnNpdGlvbiBvdXQgb2YgR0ZYIFN0YXRlLgorICogUmV0dXJucyAyPU5vdCBpbiBHRlhPRkYuCisgKiBSZXR1cm5zIDM9VHJhbnNpdGlvbiBpbnRvIEdGWE9GRi4KKyAqLworc3RhdGljIHVpbnQzMl90IHNtdV92MTJfMF9nZXRfZ2Z4b2ZmX3N0YXR1cyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKK3sKKwl1aW50MzJfdCByZWc7CisJdWludDMyX3QgZ2Z4T2ZmX1N0YXR1cyA9IDA7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBzbXUtPmFkZXY7CisKKwlyZWcgPSBSUkVHMzJfU09DMTUoU01VSU8sIDAsIG1tU01VSU9fR0ZYX01JU0NfQ05UTCk7CisJZ2Z4T2ZmX1N0YXR1cyA9IChyZWcgJiBTTVVJT19HRlhfTUlTQ19DTlRMX19QV1JfR0ZYT0ZGX1NUQVRVU19NQVNLKQorCQk+PiBTTVVJT19HRlhfTUlTQ19DTlRMX19QV1JfR0ZYT0ZGX1NUQVRVU19fU0hJRlQ7CisKKwlyZXR1cm4gZ2Z4T2ZmX1N0YXR1czsKK30KKworc3RhdGljIGludCBzbXVfdjEyXzBfZ2Z4X29mZl9jb250cm9sKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBib29sIGVuYWJsZSkKK3sKKwlpbnQgcmV0ID0gMCwgdGltZW91dCA9IDUwMDsKKworCWlmIChlbmFibGUpIHsKKwkJcmV0ID0gc211X3NlbmRfc21jX21zZyhzbXUsIFNNVV9NU0dfQWxsb3dHZnhPZmYpOworCisJCS8qIGNvbmZpcm0gZ2Z4IGlzIGJhY2sgdG8gIm9mZiIgc3RhdGUsIHRpbWVvdXQgaXMgNSBzZWNvbmRzICovCisJCXdoaWxlICghKHNtdV92MTJfMF9nZXRfZ2Z4b2ZmX3N0YXR1cyhzbXUpID09IDApKSB7CisJCQltc2xlZXAoMTApOworCQkJdGltZW91dC0tOworCQkJaWYgKHRpbWVvdXQgPT0gMCkgeworCQkJCURSTV9FUlJPUigiZW5hYmxlIGdmeG9mZiB0aW1lb3V0IGFuZCBmYWlsZWQhXG4iKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0gZWxzZSB7CisJCXJldCA9IHNtdV9zZW5kX3NtY19tc2coc211LCBTTVVfTVNHX0Rpc2FsbG93R2Z4T2ZmKTsKKworCQkvKiBjb25maXJtIGdmeCBpcyBiYWNrIHRvICJvbiIgc3RhdGUsIHRpbWVvdXQgaXMgMC41IHNlY29uZCAqLworCQl3aGlsZSAoIShzbXVfdjEyXzBfZ2V0X2dmeG9mZl9zdGF0dXMoc211KSA9PSAyKSkgeworCQkJbXNsZWVwKDEpOworCQkJdGltZW91dC0tOworCQkJaWYgKHRpbWVvdXQgPT0gMCkgeworCQkJCURSTV9FUlJPUigiZGlzYWJsZSBnZnhvZmYgdGltZW91dCBhbmQgZmFpbGVkIVxuIik7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHNtdV92MTJfMF9pbml0X3NtY190YWJsZXMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCit7CisJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICpzbXVfdGFibGUgPSAmc211LT5zbXVfdGFibGU7CisJc3RydWN0IHNtdV90YWJsZSAqdGFibGVzID0gTlVMTDsKKworCWlmIChzbXVfdGFibGUtPnRhYmxlcyB8fCBzbXVfdGFibGUtPnRhYmxlX2NvdW50ID09IDApCisJCXJldHVybiAtRUlOVkFMOworCisJdGFibGVzID0ga2NhbGxvYyhTTVVfVEFCTEVfQ09VTlQsIHNpemVvZihzdHJ1Y3Qgc211X3RhYmxlKSwKKwkJCSBHRlBfS0VSTkVMKTsKKwlpZiAoIXRhYmxlcykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzbXVfdGFibGUtPnRhYmxlcyA9IHRhYmxlczsKKworCXJldHVybiBzbXVfdGFibGVzX2luaXQoc211LCB0YWJsZXMpOworfQorCitzdGF0aWMgaW50IHNtdV92MTJfMF9maW5pX3NtY190YWJsZXMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCit7CisJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICpzbXVfdGFibGUgPSAmc211LT5zbXVfdGFibGU7CisKKwlpZiAoIXNtdV90YWJsZS0+dGFibGVzIHx8IHNtdV90YWJsZS0+dGFibGVfY291bnQgPT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlrZnJlZShzbXVfdGFibGUtPmNsb2Nrc190YWJsZSk7CisJa2ZyZWUoc211X3RhYmxlLT50YWJsZXMpOworCisJc211X3RhYmxlLT5jbG9ja3NfdGFibGUgPSBOVUxMOworCXNtdV90YWJsZS0+dGFibGVzID0gTlVMTDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNtdV92MTJfMF9wb3B1bGF0ZV9zbWNfdGFibGVzKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQoreworCXN0cnVjdCBzbXVfdGFibGVfY29udGV4dCAqc211X3RhYmxlID0gJnNtdS0+c211X3RhYmxlOworCXN0cnVjdCBzbXVfdGFibGUgKnRhYmxlID0gTlVMTDsKKworCXRhYmxlID0gJnNtdV90YWJsZS0+dGFibGVzW1NNVV9UQUJMRV9EUE1DTE9DS1NdOworCWlmICghdGFibGUpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCF0YWJsZS0+Y3B1X2FkZHIpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIHNtdV91cGRhdGVfdGFibGUoc211LCBTTVVfVEFCTEVfRFBNQ0xPQ0tTLCAwLCBzbXVfdGFibGUtPmNsb2Nrc190YWJsZSwgZmFsc2UpOworfQorCitzdGF0aWMgaW50IHNtdV92MTJfMF9nZXRfZHBtX3VsdGltYXRlX2ZyZXEoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gc211X2Nsa190eXBlIGNsa190eXBlLAorCQkJCQkJIHVpbnQzMl90ICptaW4sIHVpbnQzMl90ICptYXgpCit7CisJaW50IHJldCA9IDA7CisKKwltdXRleF9sb2NrKCZzbXUtPm11dGV4KTsKKworCWlmIChtYXgpIHsKKwkJc3dpdGNoIChjbGtfdHlwZSkgeworCQljYXNlIFNNVV9HRlhDTEs6CisJCWNhc2UgU01VX1NDTEs6CisJCQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnKHNtdSwgU01VX01TR19HZXRNYXhHZnhjbGtGcmVxdWVuY3kpOworCQkJaWYgKHJldCkgeworCQkJCXByX2VycigiQXR0ZW1wdCB0byBnZXQgbWF4IEdYIGZyZXF1ZW5jeSBmcm9tIFNNQyBGYWlsZWQgIVxuIik7CisJCQkJZ290byBmYWlsZWQ7CisJCQl9CisJCQlyZXQgPSBzbXVfcmVhZF9zbWNfYXJnKHNtdSwgbWF4KTsKKwkJCWlmIChyZXQpCisJCQkJZ290byBmYWlsZWQ7CisJCQlicmVhazsKKwkJY2FzZSBTTVVfVUNMSzoKKwkJCXJldCA9IHNtdV9nZXRfZHBtX3VjbGtfbGltaXRlZChzbXUsIG1heCwgdHJ1ZSk7CisJCQlpZiAocmV0KQorCQkJCWdvdG8gZmFpbGVkOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290byBmYWlsZWQ7CisKKwkJfQorCX0KKworCWlmIChtaW4pIHsKKwkJc3dpdGNoIChjbGtfdHlwZSkgeworCQljYXNlIFNNVV9HRlhDTEs6CisJCWNhc2UgU01VX1NDTEs6CisJCQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnKHNtdSwgU01VX01TR19HZXRNaW5HZnhjbGtGcmVxdWVuY3kpOworCQkJaWYgKHJldCkgeworCQkJCXByX2VycigiQXR0ZW1wdCB0byBnZXQgbWluIEdYIGZyZXF1ZW5jeSBmcm9tIFNNQyBGYWlsZWQgIVxuIik7CisJCQkJZ290byBmYWlsZWQ7CisJCQl9CisJCQlyZXQgPSBzbXVfcmVhZF9zbWNfYXJnKHNtdSwgbWluKTsKKwkJCWlmIChyZXQpCisJCQkJZ290byBmYWlsZWQ7CisJCQlicmVhazsKKwkJY2FzZSBTTVVfVUNMSzoKKwkJCXJldCA9IHNtdV9nZXRfZHBtX3VjbGtfbGltaXRlZChzbXUsIG1pbiwgZmFsc2UpOworCQkJaWYgKHJldCkKKwkJCQlnb3RvIGZhaWxlZDsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdvdG8gZmFpbGVkOworCQl9CisKKwl9CitmYWlsZWQ6CisJbXV0ZXhfdW5sb2NrKCZzbXUtPm11dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHNtdV9mdW5jcyBzbXVfdjEyXzBfZnVuY3MgPSB7CisJLmNoZWNrX2Z3X3N0YXR1cyA9IHNtdV92MTJfMF9jaGVja19md19zdGF0dXMsCisJLmNoZWNrX2Z3X3ZlcnNpb24gPSBzbXVfdjEyXzBfY2hlY2tfZndfdmVyc2lvbiwKKwkucG93ZXJnYXRlX3NkbWEgPSBzbXVfdjEyXzBfcG93ZXJnYXRlX3NkbWEsCisJLnBvd2VyZ2F0ZV92Y24gPSBzbXVfdjEyXzBfcG93ZXJnYXRlX3ZjbiwKKwkuc2VuZF9zbWNfbXNnID0gc211X3YxMl8wX3NlbmRfbXNnLAorCS5zZW5kX3NtY19tc2dfd2l0aF9wYXJhbSA9IHNtdV92MTJfMF9zZW5kX21zZ193aXRoX3BhcmFtLAorCS5yZWFkX3NtY19hcmcgPSBzbXVfdjEyXzBfcmVhZF9hcmcsCisJLnNldF9nZnhfY2dwZyA9IHNtdV92MTJfMF9zZXRfZ2Z4X2NncGcsCisJLmdmeF9vZmZfY29udHJvbCA9IHNtdV92MTJfMF9nZnhfb2ZmX2NvbnRyb2wsCisJLmluaXRfc21jX3RhYmxlcyA9IHNtdV92MTJfMF9pbml0X3NtY190YWJsZXMsCisJLmZpbmlfc21jX3RhYmxlcyA9IHNtdV92MTJfMF9maW5pX3NtY190YWJsZXMsCisJLnBvcHVsYXRlX3NtY190YWJsZXMgPSBzbXVfdjEyXzBfcG9wdWxhdGVfc21jX3RhYmxlcywKKwkuZ2V0X2RwbV91bHRpbWF0ZV9mcmVxID0gc211X3YxMl8wX2dldF9kcG1fdWx0aW1hdGVfZnJlcSwKK307CisKK3ZvaWQgc211X3YxMl8wX3NldF9zbXVfZnVuY3Moc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBzbXUtPmFkZXY7CisKKwlzbXUtPmZ1bmNzID0gJnNtdV92MTJfMF9mdW5jczsKKworCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CisJY2FzZSBDSElQX1JFTk9JUjoKKwkJcmVub2lyX3NldF9wcHRfZnVuY3Moc211KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcHJfd2FybigiVW5rbm93biBhc2ljIGZvciBzbXUxMlxuIik7CisJfQorfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdTEwX3NtdW1nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdTEwX3NtdW1nci5jCmluZGV4IDdmYjNlNTcuLjNmMTJjZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9zbXUxMF9zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Ivc211MTBfc211bWdyLmMKQEAgLTExOCw2ICsxMTgsNyBAQCBzdGF0aWMgaW50IHNtdTEwX2NvcHlfdGFibGVfZnJvbV9zbWMoc3RydWN0IHBwX2h3bWdyICpod21nciwKIHsKIAlzdHJ1Y3Qgc211MTBfc211bWdyICpwcml2ID0KIAkJCShzdHJ1Y3Qgc211MTBfc211bWdyICopKGh3bWdyLT5zbXVfYmFja2VuZCk7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBod21nci0+YWRldjsKIAogCVBQX0FTU0VSVF9XSVRIX0NPREUodGFibGVfaWQgPCBNQVhfU01VX1RBQkxFLAogCQkJIkludmFsaWQgU01VIFRhYmxlIElEISIsIHJldHVybiAtRUlOVkFMOyk7CkBAIC0xMzUsNiArMTM2LDkgQEAgc3RhdGljIGludCBzbXUxMF9jb3B5X3RhYmxlX2Zyb21fc21jKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJCQlQUFNNQ19NU0dfVHJhbnNmZXJUYWJsZVNtdTJEcmFtLAogCQkJcHJpdi0+c211X3RhYmxlcy5lbnRyeVt0YWJsZV9pZF0udGFibGVfaWQpOwogCisJLyogZmx1c2ggaGRwIGNhY2hlICovCisJYWRldi0+bmJpb19mdW5jcy0+aGRwX2ZsdXNoKGFkZXYsIE5VTEwpOworCiAJbWVtY3B5KHRhYmxlLCAodWludDhfdCAqKXByaXYtPnNtdV90YWJsZXMuZW50cnlbdGFibGVfaWRdLnRhYmxlLAogCQkJcHJpdi0+c211X3RhYmxlcy5lbnRyeVt0YWJsZV9pZF0uc2l6ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9zbXU4X3NtdW1nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdThfc211bWdyLmMKaW5kZXggODE4OWZlNC4uNDcyOGFhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdThfc211bWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdThfc211bWdyLmMKQEAgLTcyMiwxNiArNzIyLDE3IEBAIHN0YXRpYyBpbnQgc211OF9yZXF1ZXN0X3NtdV9sb2FkX2Z3KHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCiAKIHN0YXRpYyBpbnQgc211OF9zdGFydF9zbXUoc3RydWN0IHBwX2h3bWdyICpod21ncikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGh3bWdyLT5hZGV2OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2OwogCiAJdWludDMyX3QgaW5kZXggPSBTTU5fTVAxX1NSQU1fU1RBUlRfQUREUiArCiAJCQkgU01VOF9GSVJNV0FSRV9IRUFERVJfTE9DQVRJT04gKwogCQkJIG9mZnNldG9mKHN0cnVjdCBTTVU4X0Zpcm13YXJlX0hlYWRlciwgVmVyc2lvbik7CiAKLQogCWlmIChod21nciA9PSBOVUxMIHx8IGh3bWdyLT5kZXZpY2UgPT0gTlVMTCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwlhZGV2ID0gaHdtZ3ItPmFkZXY7CisKIAljZ3Nfd3JpdGVfcmVnaXN0ZXIoaHdtZ3ItPmRldmljZSwgbW1NUDBQVUJfSU5EX0lOREVYLCBpbmRleCk7CiAJaHdtZ3ItPnNtdV92ZXJzaW9uID0gY2dzX3JlYWRfcmVnaXN0ZXIoaHdtZ3ItPmRldmljZSwgbW1NUDBQVUJfSU5EX0RBVEEpOwogCXByX2luZm8oInNtdSB2ZXJzaW9uICUwMmQuJTAyZC4lMDJkXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2ExMF9zbXVtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci92ZWdhMTBfc211bWdyLmMKaW5kZXggOTY3ZDM0Yi4uMGRiZGRlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2ExMF9zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdmVnYTEwX3NtdW1nci5jCkBAIC0zOSw2ICszOSw3IEBAIHN0YXRpYyBpbnQgdmVnYTEwX2NvcHlfdGFibGVfZnJvbV9zbWMoc3RydWN0IHBwX2h3bWdyICpod21nciwKIAkJdWludDhfdCAqdGFibGUsIGludDE2X3QgdGFibGVfaWQpCiB7CiAJc3RydWN0IHZlZ2ExMF9zbXVtZ3IgKnByaXYgPSBod21nci0+c211X2JhY2tlbmQ7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBod21nci0+YWRldjsKIAogCVBQX0FTU0VSVF9XSVRIX0NPREUodGFibGVfaWQgPCBNQVhfU01VX1RBQkxFLAogCQkJIkludmFsaWQgU01VIFRhYmxlIElEISIsIHJldHVybiAtRUlOVkFMKTsKQEAgLTU2LDYgKzU3LDkgQEAgc3RhdGljIGludCB2ZWdhMTBfY29weV90YWJsZV9mcm9tX3NtYyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCQkJUFBTTUNfTVNHX1RyYW5zZmVyVGFibGVTbXUyRHJhbSwKIAkJCXByaXYtPnNtdV90YWJsZXMuZW50cnlbdGFibGVfaWRdLnRhYmxlX2lkKTsKIAorCS8qIGZsdXNoIGhkcCBjYWNoZSAqLworCWFkZXYtPm5iaW9fZnVuY3MtPmhkcF9mbHVzaChhZGV2LCBOVUxMKTsKKwogCW1lbWNweSh0YWJsZSwgcHJpdi0+c211X3RhYmxlcy5lbnRyeVt0YWJsZV9pZF0udGFibGUsCiAJCQlwcml2LT5zbXVfdGFibGVzLmVudHJ5W3RhYmxlX2lkXS5zaXplKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2ExMl9zbXVtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci92ZWdhMTJfc211bWdyLmMKaW5kZXggYmFiM2RmOC4uZjk1ODk4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2ExMl9zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdmVnYTEyX3NtdW1nci5jCkBAIC00Miw2ICs0Miw3IEBAIHN0YXRpYyBpbnQgdmVnYTEyX2NvcHlfdGFibGVfZnJvbV9zbWMoc3RydWN0IHBwX2h3bWdyICpod21nciwKIHsKIAlzdHJ1Y3QgdmVnYTEyX3NtdW1nciAqcHJpdiA9CiAJCQkoc3RydWN0IHZlZ2ExMl9zbXVtZ3IgKikoaHdtZ3ItPnNtdV9iYWNrZW5kKTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGh3bWdyLT5hZGV2OwogCiAJUFBfQVNTRVJUX1dJVEhfQ09ERSh0YWJsZV9pZCA8IFRBQkxFX0NPVU5ULAogCQkJIkludmFsaWQgU01VIFRhYmxlIElEISIsIHJldHVybiAtRUlOVkFMKTsKQEAgLTY0LDYgKzY1LDkgQEAgc3RhdGljIGludCB2ZWdhMTJfY29weV90YWJsZV9mcm9tX3NtYyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCQkJIltDb3B5VGFibGVGcm9tU01DXSBBdHRlbXB0IHRvIFRyYW5zZmVyIFRhYmxlIEZyb20gU01VIEZhaWxlZCEiLAogCQkJcmV0dXJuIC1FSU5WQUwpOwogCisJLyogZmx1c2ggaGRwIGNhY2hlICovCisJYWRldi0+bmJpb19mdW5jcy0+aGRwX2ZsdXNoKGFkZXYsIE5VTEwpOworCiAJbWVtY3B5KHRhYmxlLCBwcml2LT5zbXVfdGFibGVzLmVudHJ5W3RhYmxlX2lkXS50YWJsZSwKIAkJCXByaXYtPnNtdV90YWJsZXMuZW50cnlbdGFibGVfaWRdLnNpemUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdmVnYTIwX3NtdW1nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2EyMF9zbXVtZ3IuYwppbmRleCA5NTc0NDZjLi5iOTA4OWM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdmVnYTIwX3NtdW1nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci92ZWdhMjBfc211bWdyLmMKQEAgLTQ0LDcgKzQ0LDcgQEAKICNkZWZpbmUgc21uTVAwX0ZXX0lOVEYJCQkweDMwMTAxYzAKICNkZWZpbmUgc21uTVAxX1BVQl9DVFJMCQkJMHgzMDEwYjE0CiAKLXN0YXRpYyBib29sIHZlZ2EyMF9pc19zbWNfcmFtX3J1bm5pbmcoc3RydWN0IHBwX2h3bWdyICpod21ncikKK2Jvb2wgdmVnYTIwX2lzX3NtY19yYW1fcnVubmluZyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gaHdtZ3ItPmFkZXY7CiAJdWludDMyX3QgbXAxX2Z3X2ZsYWdzOwpAQCAtMTYzLDYgKzE2Myw3IEBAIHN0YXRpYyBpbnQgdmVnYTIwX2NvcHlfdGFibGVfZnJvbV9zbWMoc3RydWN0IHBwX2h3bWdyICpod21nciwKIHsKIAlzdHJ1Y3QgdmVnYTIwX3NtdW1nciAqcHJpdiA9CiAJCQkoc3RydWN0IHZlZ2EyMF9zbXVtZ3IgKikoaHdtZ3ItPnNtdV9iYWNrZW5kKTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGh3bWdyLT5hZGV2OwogCWludCByZXQgPSAwOwogCiAJUFBfQVNTRVJUX1dJVEhfQ09ERSh0YWJsZV9pZCA8IFRBQkxFX0NPVU5ULApAQCAtMTg3LDYgKzE4OCw5IEBAIHN0YXRpYyBpbnQgdmVnYTIwX2NvcHlfdGFibGVfZnJvbV9zbWMoc3RydWN0IHBwX2h3bWdyICpod21nciwKIAkJCSJbQ29weVRhYmxlRnJvbVNNQ10gQXR0ZW1wdCB0byBUcmFuc2ZlciBUYWJsZSBGcm9tIFNNVSBGYWlsZWQhIiwKIAkJCXJldHVybiByZXQpOwogCisJLyogZmx1c2ggaGRwIGNhY2hlICovCisJYWRldi0+bmJpb19mdW5jcy0+aGRwX2ZsdXNoKGFkZXYsIE5VTEwpOworCiAJbWVtY3B5KHRhYmxlLCBwcml2LT5zbXVfdGFibGVzLmVudHJ5W3RhYmxlX2lkXS50YWJsZSwKIAkJCXByaXYtPnNtdV90YWJsZXMuZW50cnlbdGFibGVfaWRdLnNpemUpOwogCkBAIC0yNjYsNiArMjcwLDcgQEAgaW50IHZlZ2EyMF9nZXRfYWN0aXZpdHlfbW9uaXRvcl9jb2VmZihzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogewogCXN0cnVjdCB2ZWdhMjBfc211bWdyICpwcml2ID0KIAkJCShzdHJ1Y3QgdmVnYTIwX3NtdW1nciAqKShod21nci0+c211X2JhY2tlbmQpOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gaHdtZ3ItPmFkZXY7CiAJaW50IHJldCA9IDA7CiAKIAlQUF9BU1NFUlRfV0lUSF9DT0RFKChyZXQgPSB2ZWdhMjBfc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyKGh3bWdyLApAQCAtMjg0LDYgKzI4OSw5IEBAIGludCB2ZWdhMjBfZ2V0X2FjdGl2aXR5X21vbml0b3JfY29lZmYoc3RydWN0IHBwX2h3bWdyICpod21nciwKIAkJCSJbR2V0QWN0aXZpdHlNb25pdG9yXSBBdHRlbXB0IHRvIFRyYW5zZmVyIFRhYmxlIEZyb20gU01VIEZhaWxlZCEiLAogCQkJcmV0dXJuIHJldCk7CiAKKwkvKiBmbHVzaCBoZHAgY2FjaGUgKi8KKwlhZGV2LT5uYmlvX2Z1bmNzLT5oZHBfZmx1c2goYWRldiwgTlVMTCk7CisKIAltZW1jcHkodGFibGUsIHByaXYtPnNtdV90YWJsZXMuZW50cnlbVEFCTEVfQUNUSVZJVFlfTU9OSVRPUl9DT0VGRl0udGFibGUsCiAJCQlwcml2LT5zbXVfdGFibGVzLmVudHJ5W1RBQkxFX0FDVElWSVRZX01PTklUT1JfQ09FRkZdLnNpemUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdmVnYTIwX3NtdW1nci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2EyMF9zbXVtZ3IuaAppbmRleCBlYzk1M2FiLi42MmViYmZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdmVnYTIwX3NtdW1nci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci92ZWdhMjBfc211bWdyLmgKQEAgLTU3LDUgKzU3LDcgQEAgaW50IHZlZ2EyMF9nZXRfYWN0aXZpdHlfbW9uaXRvcl9jb2VmZihzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCQl1aW50OF90ICp0YWJsZSwgdWludDE2X3Qgd29ya2xvYWRfdHlwZSk7CiBpbnQgdmVnYTIwX3NldF9wcHRhYmxlX2RyaXZlcl9hZGRyZXNzKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpOwogCitib29sIHZlZ2EyMF9pc19zbWNfcmFtX3J1bm5pbmcoc3RydWN0IHBwX2h3bWdyICpod21ncik7CisKICNlbmRpZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS92ZWdhMjBfcHB0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS92ZWdhMjBfcHB0LmMKaW5kZXggNmExNDQ5Ny4uNjQzODZlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvdmVnYTIwX3BwdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3ZlZ2EyMF9wcHQuYwpAQCAtNDcsNyArNDcsNyBAQAogI2RlZmluZSBDVEZfT0ZGU0VUX0hCTQkJCTUKIAogI2RlZmluZSBNU0dfTUFQKG1zZykgXAotCVtTTVVfTVNHXyMjbXNnXSA9IFBQU01DX01TR18jI21zZworCVtTTVVfTVNHXyMjbXNnXSA9IHsxLCBQUFNNQ19NU0dfIyNtc2d9CiAKICNkZWZpbmUgU01DX0RQTV9GRUFUVVJFIChGRUFUVVJFX0RQTV9QUkVGRVRDSEVSX01BU0sgfCBcCiAJCQkgRkVBVFVSRV9EUE1fR0ZYQ0xLX01BU0sgfCBcCkBAIC01OSw3ICs1OSw3IEBACiAJCQkgRkVBVFVSRV9EUE1fTElOS19NQVNLIHwgXAogCQkJIEZFQVRVUkVfRFBNX0RDRUZDTEtfTUFTSykKIAotc3RhdGljIGludCB2ZWdhMjBfbWVzc2FnZV9tYXBbU01VX01TR19NQVhfQ09VTlRdID0geworc3RhdGljIHN0cnVjdCBzbXVfMTFfMF9jbW4yYWlzY19tYXBwaW5nIHZlZ2EyMF9tZXNzYWdlX21hcFtTTVVfTVNHX01BWF9DT1VOVF0gPSB7CiAJTVNHX01BUChUZXN0TWVzc2FnZSksCiAJTVNHX01BUChHZXRTbXVWZXJzaW9uKSwKIAlNU0dfTUFQKEdldERyaXZlcklmVmVyc2lvbiksCkBAIC0xNDUsNyArMTQ1LDcgQEAgc3RhdGljIGludCB2ZWdhMjBfbWVzc2FnZV9tYXBbU01VX01TR19NQVhfQ09VTlRdID0gewogCU1TR19NQVAoR2V0QVZGU1ZvbHRhZ2VCeURwbSksCiB9OwogCi1zdGF0aWMgaW50IHZlZ2EyMF9jbGtfbWFwW1NNVV9DTEtfQ09VTlRdID0geworc3RhdGljIHN0cnVjdCBzbXVfMTFfMF9jbW4yYWlzY19tYXBwaW5nIHZlZ2EyMF9jbGtfbWFwW1NNVV9DTEtfQ09VTlRdID0gewogCUNMS19NQVAoR0ZYQ0xLLCBQUENMS19HRlhDTEspLAogCUNMS19NQVAoVkNMSywgUFBDTEtfVkNMSyksCiAJQ0xLX01BUChEQ0xLLCBQUENMS19EQ0xLKSwKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgaW50IHZlZ2EyMF9jbGtfbWFwW1NNVV9DTEtfQ09VTlRdID0gewogCUNMS19NQVAoRkNMSywgUFBDTEtfRkNMSyksCiB9OwogCi1zdGF0aWMgaW50IHZlZ2EyMF9mZWF0dXJlX21hc2tfbWFwW1NNVV9GRUFUVVJFX0NPVU5UXSA9IHsKK3N0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyB2ZWdhMjBfZmVhdHVyZV9tYXNrX21hcFtTTVVfRkVBVFVSRV9DT1VOVF0gPSB7CiAJRkVBX01BUChEUE1fUFJFRkVUQ0hFUiksCiAJRkVBX01BUChEUE1fR0ZYQ0xLKSwKIAlGRUFfTUFQKERQTV9VQ0xLKSwKQEAgLTE5NSw3ICsxOTUsNyBAQCBzdGF0aWMgaW50IHZlZ2EyMF9mZWF0dXJlX21hc2tfbWFwW1NNVV9GRUFUVVJFX0NPVU5UXSA9IHsKIAlGRUFfTUFQKFhHTUkpLAogfTsKIAotc3RhdGljIGludCB2ZWdhMjBfdGFibGVfbWFwW1NNVV9UQUJMRV9DT1VOVF0gPSB7CitzdGF0aWMgc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgdmVnYTIwX3RhYmxlX21hcFtTTVVfVEFCTEVfQ09VTlRdID0gewogCVRBQl9NQVAoUFBUQUJMRSksCiAJVEFCX01BUChXQVRFUk1BUktTKSwKIAlUQUJfTUFQKEFWRlMpLApAQCAtMjA4LDEyICsyMDgsMTIgQEAgc3RhdGljIGludCB2ZWdhMjBfdGFibGVfbWFwW1NNVV9UQUJMRV9DT1VOVF0gPSB7CiAJVEFCX01BUChPVkVSRFJJVkUpLAogfTsKIAotc3RhdGljIGludCB2ZWdhMjBfcHdyX3NyY19tYXBbU01VX1BPV0VSX1NPVVJDRV9DT1VOVF0gPSB7CitzdGF0aWMgc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgdmVnYTIwX3B3cl9zcmNfbWFwW1NNVV9QT1dFUl9TT1VSQ0VfQ09VTlRdID0gewogCVBXUl9NQVAoQUMpLAogCVBXUl9NQVAoREMpLAogfTsKIAotc3RhdGljIGludCB2ZWdhMjBfd29ya2xvYWRfbWFwW10gPSB7CitzdGF0aWMgc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgdmVnYTIwX3dvcmtsb2FkX21hcFtQUF9TTUNfUE9XRVJfUFJPRklMRV9DT1VOVF0gPSB7CiAJV09SS0xPQURfTUFQKFBQX1NNQ19QT1dFUl9QUk9GSUxFX0JPT1RVUF9ERUZBVUxULAlXT1JLTE9BRF9ERUZBVUxUX0JJVCksCiAJV09SS0xPQURfTUFQKFBQX1NNQ19QT1dFUl9QUk9GSUxFX0ZVTExTQ1JFRU4zRCwJCVdPUktMT0FEX1BQTElCX0ZVTExfU0NSRUVOXzNEX0JJVCksCiAJV09SS0xPQURfTUFQKFBQX1NNQ19QT1dFUl9QUk9GSUxFX1BPV0VSU0FWSU5HLAkJV09SS0xPQURfUFBMSUJfUE9XRVJfU0FWSU5HX0JJVCksCkBAIC0yMjUsNzkgKzIyNSw5MiBAQCBzdGF0aWMgaW50IHZlZ2EyMF93b3JrbG9hZF9tYXBbXSA9IHsKIAogc3RhdGljIGludCB2ZWdhMjBfZ2V0X3NtdV90YWJsZV9pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtYywgdWludDMyX3QgaW5kZXgpCiB7Ci0JaW50IHZhbDsKKwlzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBtYXBwaW5nOworCiAJaWYgKGluZGV4ID49IFNNVV9UQUJMRV9DT1VOVCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQl2YWwgPSB2ZWdhMjBfdGFibGVfbWFwW2luZGV4XTsKLQlpZiAodmFsID49IFRBQkxFX0NPVU5UKQorCW1hcHBpbmcgPSB2ZWdhMjBfdGFibGVfbWFwW2luZGV4XTsKKwlpZiAoIShtYXBwaW5nLnZhbGlkX21hcHBpbmcpKSB7CiAJCXJldHVybiAtRUlOVkFMOworCX0KIAotCXJldHVybiB2YWw7CisJcmV0dXJuIG1hcHBpbmcubWFwX3RvOwogfQogCiBzdGF0aWMgaW50IHZlZ2EyMF9nZXRfcHdyX3NyY19pbmRleChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtYywgdWludDMyX3QgaW5kZXgpCiB7Ci0JaW50IHZhbDsKKwlzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBtYXBwaW5nOworCiAJaWYgKGluZGV4ID49IFNNVV9QT1dFUl9TT1VSQ0VfQ09VTlQpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JdmFsID0gdmVnYTIwX3B3cl9zcmNfbWFwW2luZGV4XTsKLQlpZiAodmFsID49IFBPV0VSX1NPVVJDRV9DT1VOVCkKKwltYXBwaW5nID0gdmVnYTIwX3B3cl9zcmNfbWFwW2luZGV4XTsKKwlpZiAoIShtYXBwaW5nLnZhbGlkX21hcHBpbmcpKSB7CiAJCXJldHVybiAtRUlOVkFMOworCX0KIAotCXJldHVybiB2YWw7CisJcmV0dXJuIG1hcHBpbmcubWFwX3RvOwogfQogCiBzdGF0aWMgaW50IHZlZ2EyMF9nZXRfc211X2ZlYXR1cmVfaW5kZXgoc3RydWN0IHNtdV9jb250ZXh0ICpzbWMsIHVpbnQzMl90IGluZGV4KQogewotCWludCB2YWw7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKwogCWlmIChpbmRleCA+PSBTTVVfRkVBVFVSRV9DT1VOVCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQl2YWwgPSB2ZWdhMjBfZmVhdHVyZV9tYXNrX21hcFtpbmRleF07Ci0JaWYgKHZhbCA+IDY0KQorCW1hcHBpbmcgPSB2ZWdhMjBfZmVhdHVyZV9tYXNrX21hcFtpbmRleF07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgewogCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKLQlyZXR1cm4gdmFsOworCXJldHVybiBtYXBwaW5nLm1hcF90bzsKIH0KIAogc3RhdGljIGludCB2ZWdhMjBfZ2V0X3NtdV9jbGtfaW5kZXgoc3RydWN0IHNtdV9jb250ZXh0ICpzbWMsIHVpbnQzMl90IGluZGV4KQogewotCWludCB2YWw7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKKwogCWlmIChpbmRleCA+PSBTTVVfQ0xLX0NPVU5UKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXZhbCA9IHZlZ2EyMF9jbGtfbWFwW2luZGV4XTsKLQlpZiAodmFsID49IFBQQ0xLX0NPVU5UKQorCW1hcHBpbmcgPSB2ZWdhMjBfY2xrX21hcFtpbmRleF07CisJaWYgKCEobWFwcGluZy52YWxpZF9tYXBwaW5nKSkgewogCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKLQlyZXR1cm4gdmFsOworCXJldHVybiBtYXBwaW5nLm1hcF90bzsKIH0KIAogc3RhdGljIGludCB2ZWdhMjBfZ2V0X3NtdV9tc2dfaW5kZXgoc3RydWN0IHNtdV9jb250ZXh0ICpzbWMsIHVpbnQzMl90IGluZGV4KQogewotCWludCB2YWw7CisJc3RydWN0IHNtdV8xMV8wX2NtbjJhaXNjX21hcHBpbmcgbWFwcGluZzsKIAogCWlmIChpbmRleCA+PSBTTVVfTVNHX01BWF9DT1VOVCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQl2YWwgPSB2ZWdhMjBfbWVzc2FnZV9tYXBbaW5kZXhdOwotCWlmICh2YWwgPiBQUFNNQ19NZXNzYWdlX0NvdW50KQorCW1hcHBpbmcgPSB2ZWdhMjBfbWVzc2FnZV9tYXBbaW5kZXhdOworCWlmICghKG1hcHBpbmcudmFsaWRfbWFwcGluZykpIHsKIAkJcmV0dXJuIC1FSU5WQUw7CisJfQogCi0JcmV0dXJuIHZhbDsKKwlyZXR1cm4gbWFwcGluZy5tYXBfdG87CiB9CiAKIHN0YXRpYyBpbnQgdmVnYTIwX2dldF93b3JrbG9hZF90eXBlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIFBQX1NNQ19QT1dFUl9QUk9GSUxFIHByb2ZpbGUpCiB7Ci0JaW50IHZhbDsKKwlzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFwcGluZyBtYXBwaW5nOworCiAJaWYgKHByb2ZpbGUgPiBQUF9TTUNfUE9XRVJfUFJPRklMRV9DVVNUT00pCiAJCXJldHVybiAtRUlOVkFMOwogCi0JdmFsID0gdmVnYTIwX3dvcmtsb2FkX21hcFtwcm9maWxlXTsKKwltYXBwaW5nID0gdmVnYTIwX3dvcmtsb2FkX21hcFtwcm9maWxlXTsKKwlpZiAoIShtYXBwaW5nLnZhbGlkX21hcHBpbmcpKSB7CisJCXJldHVybiAtRUlOVkFMOworCX0KIAotCXJldHVybiB2YWw7CisJcmV0dXJuIG1hcHBpbmcubWFwX3RvOwogfQogCiBzdGF0aWMgaW50IHZlZ2EyMF90YWJsZXNfaW5pdChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgc3RydWN0IHNtdV90YWJsZSAqdGFibGVzKQpAQCAtMTc3MCw3ICsxNzgzLDcgQEAgc3RhdGljIGludCB2ZWdhMjBfZ2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgY2hhciAqYnVmKQogewogCURwbUFjdGl2aXR5TW9uaXRvckNvZWZmSW50X3QgYWN0aXZpdHlfbW9uaXRvcjsKIAl1aW50MzJfdCBpLCBzaXplID0gMDsKLQl1aW50MTZfdCB3b3JrbG9hZF90eXBlID0gMDsKKwlpbnQxNl90IHdvcmtsb2FkX3R5cGUgPSAwOwogCXN0YXRpYyBjb25zdCBjaGFyICpwcm9maWxlX25hbWVbXSA9IHsKIAkJCQkJIkJPT1RVUF9ERUZBVUxUIiwKIAkJCQkJIjNEX0ZVTExfU0NSRUVOIiwKQEAgLTE4MDMsNiArMTgxNiw5IEBAIHN0YXRpYyBpbnQgdmVnYTIwX2dldF9wb3dlcl9wcm9maWxlX21vZGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGNoYXIgKmJ1ZikKIAlmb3IgKGkgPSAwOyBpIDw9IFBQX1NNQ19QT1dFUl9QUk9GSUxFX0NVU1RPTTsgaSsrKSB7CiAJCS8qIGNvbnYgUFBfU01DX1BPV0VSX1BST0ZJTEUqIHRvIFdPUktMT0FEX1BQTElCXypfQklUICovCiAJCXdvcmtsb2FkX3R5cGUgPSBzbXVfd29ya2xvYWRfZ2V0X3R5cGUoc211LCBpKTsKKwkJaWYgKHdvcmtsb2FkX3R5cGUgPCAwKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKIAkJcmVzdWx0ID0gc211X3VwZGF0ZV90YWJsZShzbXUsCiAJCQkJCSAgU01VX1RBQkxFX0FDVElWSVRZX01PTklUT1JfQ09FRkYsIHdvcmtsb2FkX3R5cGUsCiAJCQkJCSAgKHZvaWQgKikoJmFjdGl2aXR5X21vbml0b3IpLCBmYWxzZSk7CkBAIC0xOTU1LDYgKzE5NzEsOCBAQCBzdGF0aWMgaW50IHZlZ2EyMF9zZXRfcG93ZXJfcHJvZmlsZV9tb2RlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBsb25nICppbnB1dCwgdQogCiAJLyogY29udiBQUF9TTUNfUE9XRVJfUFJPRklMRSogdG8gV09SS0xPQURfUFBMSUJfKl9CSVQgKi8KIAl3b3JrbG9hZF90eXBlID0gc211X3dvcmtsb2FkX2dldF90eXBlKHNtdSwgc211LT5wb3dlcl9wcm9maWxlX21vZGUpOworCWlmICh3b3JrbG9hZF90eXBlIDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19TZXRXb3JrbG9hZE1hc2ssCiAJCQkJICAgIDEgPDwgd29ya2xvYWRfdHlwZSk7CiAKQEAgLTI4NDAsMTU3ICsyODU4LDYgQEAgc3RhdGljIGludCB2ZWdhMjBfZHBtX3NldF92Y2VfZW5hYmxlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBib29sIGVuYWJsZSkKIAlyZXR1cm4gc211X2ZlYXR1cmVfc2V0X2VuYWJsZWQoc211LCBTTVVfRkVBVFVSRV9EUE1fVkNFX0JJVCwgZW5hYmxlKTsKIH0KIAotc3RhdGljIGludCB2ZWdhMjBfZ2V0X2VuYWJsZWRfc21jX2ZlYXR1cmVzKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAotCQl1aW50NjRfdCAqZmVhdHVyZXNfZW5hYmxlZCkKLXsKLQl1aW50MzJfdCBmZWF0dXJlX21hc2tbMl0gPSB7MCwgMH07Ci0JaW50IHJldCA9IDA7Ci0KLQlyZXQgPSBzbXVfZmVhdHVyZV9nZXRfZW5hYmxlZF9tYXNrKHNtdSwgZmVhdHVyZV9tYXNrLCAyKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JKmZlYXR1cmVzX2VuYWJsZWQgPSAoKCgodWludDY0X3QpZmVhdHVyZV9tYXNrWzBdIDw8IFNNVV9GRUFUVVJFU19MT1dfU0hJRlQpICYgU01VX0ZFQVRVUkVTX0xPV19NQVNLKSB8Ci0JCQkoKCh1aW50NjRfdClmZWF0dXJlX21hc2tbMV0gPDwgU01VX0ZFQVRVUkVTX0hJR0hfU0hJRlQpICYgU01VX0ZFQVRVUkVTX0hJR0hfTUFTSykpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCB2ZWdhMjBfZW5hYmxlX3NtY19mZWF0dXJlcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKLQkJYm9vbCBlbmFibGUsIHVpbnQ2NF90IGZlYXR1cmVfbWFzaykKLXsKLQl1aW50MzJfdCBzbXVfZmVhdHVyZXNfbG93LCBzbXVfZmVhdHVyZXNfaGlnaDsKLQlpbnQgcmV0ID0gMDsKLQotCXNtdV9mZWF0dXJlc19sb3cgPSAodWludDMyX3QpKChmZWF0dXJlX21hc2sgJiBTTVVfRkVBVFVSRVNfTE9XX01BU0spID4+IFNNVV9GRUFUVVJFU19MT1dfU0hJRlQpOwotCXNtdV9mZWF0dXJlc19oaWdoID0gKHVpbnQzMl90KSgoZmVhdHVyZV9tYXNrICYgU01VX0ZFQVRVUkVTX0hJR0hfTUFTSykgPj4gU01VX0ZFQVRVUkVTX0hJR0hfU0hJRlQpOwotCi0JaWYgKGVuYWJsZSkgewotCQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LCBTTVVfTVNHX0VuYWJsZVNtdUZlYXR1cmVzTG93LAotCQkJCQkJICBzbXVfZmVhdHVyZXNfbG93KTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfRW5hYmxlU211RmVhdHVyZXNIaWdoLAotCQkJCQkJICBzbXVfZmVhdHVyZXNfaGlnaCk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0gZWxzZSB7Ci0JCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfRGlzYWJsZVNtdUZlYXR1cmVzTG93LAotCQkJCQkJICBzbXVfZmVhdHVyZXNfbG93KTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfRGlzYWJsZVNtdUZlYXR1cmVzSGlnaCwKLQkJCQkJCSAgc211X2ZlYXR1cmVzX2hpZ2gpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlyZXR1cm4gMDsKLQotfQotCi1zdGF0aWMgaW50IHZlZ2EyMF9nZXRfcHBmZWF0dXJlX3N0YXR1cyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgY2hhciAqYnVmKQotewotCXN0YXRpYyBjb25zdCBjaGFyICpwcGZlYXR1cmVfbmFtZVtdID0gewotCQkJCSJEUE1fUFJFRkVUQ0hFUiIsCi0JCQkJIkdGWENMS19EUE0iLAotCQkJCSJVQ0xLX0RQTSIsCi0JCQkJIlNPQ0NMS19EUE0iLAotCQkJCSJVVkRfRFBNIiwKLQkJCQkiVkNFX0RQTSIsCi0JCQkJIlVMViIsCi0JCQkJIk1QMENMS19EUE0iLAotCQkJCSJMSU5LX0RQTSIsCi0JCQkJIkRDRUZDTEtfRFBNIiwKLQkJCQkiR0ZYQ0xLX0RTIiwKLQkJCQkiU09DQ0xLX0RTIiwKLQkJCQkiTENMS19EUyIsCi0JCQkJIlBQVCIsCi0JCQkJIlREQyIsCi0JCQkJIlRIRVJNQUwiLAotCQkJCSJHRlhfUEVSX0NVX0NHIiwKLQkJCQkiUk0iLAotCQkJCSJEQ0VGQ0xLX0RTIiwKLQkJCQkiQUNEQyIsCi0JCQkJIlZSMEhPVCIsCi0JCQkJIlZSMUhPVCIsCi0JCQkJIkZXX0NURiIsCi0JCQkJIkxFRF9ESVNQTEFZIiwKLQkJCQkiRkFOX0NPTlRST0wiLAotCQkJCSJHRlhfRURDIiwKLQkJCQkiR0ZYT0ZGIiwKLQkJCQkiQ0ciLAotCQkJCSJGQ0xLX0RQTSIsCi0JCQkJIkZDTEtfRFMiLAotCQkJCSJNUDFDTEtfRFMiLAotCQkJCSJNUDBDTEtfRFMiLAotCQkJCSJYR01JIiwKLQkJCQkiRUNDIn07Ci0Jc3RhdGljIGNvbnN0IGNoYXIgKm91dHB1dF90aXRsZVtdID0gewotCQkJCSJGRUFUVVJFUyIsCi0JCQkJIkJJVE1BU0siLAotCQkJCSJFTkFCTEVNRU5UIn07Ci0JdWludDY0X3QgZmVhdHVyZXNfZW5hYmxlZDsKLQlpbnQgaTsKLQlpbnQgcmV0ID0gMDsKLQlpbnQgc2l6ZSA9IDA7Ci0KLQlyZXQgPSB2ZWdhMjBfZ2V0X2VuYWJsZWRfc21jX2ZlYXR1cmVzKHNtdSwgJmZlYXR1cmVzX2VuYWJsZWQpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlzaXplICs9IHNwcmludGYoYnVmICsgc2l6ZSwgIkN1cnJlbnQgcHBmZWF0dXJlczogMHglMDE2bGx4XG4iLCBmZWF0dXJlc19lbmFibGVkKTsKLQlzaXplICs9IHNwcmludGYoYnVmICsgc2l6ZSwgIiUtMTlzICUtMjJzICVzXG4iLAotCQkJCW91dHB1dF90aXRsZVswXSwKLQkJCQlvdXRwdXRfdGl0bGVbMV0sCi0JCQkJb3V0cHV0X3RpdGxlWzJdKTsKLQlmb3IgKGkgPSAwOyBpIDwgR05MRF9GRUFUVVJFU19NQVg7IGkrKykgewotCQlzaXplICs9IHNwcmludGYoYnVmICsgc2l6ZSwgIiUtMTlzIDB4JTAxNmxseCAlNnNcbiIsCi0JCQkJCXBwZmVhdHVyZV9uYW1lW2ldLAotCQkJCQkxVUxMIDw8IGksCi0JCQkJCShmZWF0dXJlc19lbmFibGVkICYgKDFVTEwgPDwgaSkpID8gIlkiIDogIk4iKTsKLQl9Ci0KLQlyZXR1cm4gc2l6ZTsKLX0KLQotc3RhdGljIGludCB2ZWdhMjBfc2V0X3BwZmVhdHVyZV9zdGF0dXMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQ2NF90IG5ld19wcGZlYXR1cmVfbWFza3MpCi17Ci0JdWludDY0X3QgZmVhdHVyZXNfZW5hYmxlZDsKLQl1aW50NjRfdCBmZWF0dXJlc190b19lbmFibGU7Ci0JdWludDY0X3QgZmVhdHVyZXNfdG9fZGlzYWJsZTsKLQlpbnQgcmV0ID0gMDsKLQotCWlmIChuZXdfcHBmZWF0dXJlX21hc2tzID49ICgxVUxMIDw8IEdOTERfRkVBVFVSRVNfTUFYKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlyZXQgPSB2ZWdhMjBfZ2V0X2VuYWJsZWRfc21jX2ZlYXR1cmVzKHNtdSwgJmZlYXR1cmVzX2VuYWJsZWQpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlmZWF0dXJlc190b19kaXNhYmxlID0KLQkJZmVhdHVyZXNfZW5hYmxlZCAmIH5uZXdfcHBmZWF0dXJlX21hc2tzOwotCWZlYXR1cmVzX3RvX2VuYWJsZSA9Ci0JCX5mZWF0dXJlc19lbmFibGVkICYgbmV3X3BwZmVhdHVyZV9tYXNrczsKLQotCXByX2RlYnVnKCJmZWF0dXJlc190b19kaXNhYmxlIDB4JWxseFxuIiwgZmVhdHVyZXNfdG9fZGlzYWJsZSk7Ci0JcHJfZGVidWcoImZlYXR1cmVzX3RvX2VuYWJsZSAweCVsbHhcbiIsIGZlYXR1cmVzX3RvX2VuYWJsZSk7Ci0KLQlpZiAoZmVhdHVyZXNfdG9fZGlzYWJsZSkgewotCQlyZXQgPSB2ZWdhMjBfZW5hYmxlX3NtY19mZWF0dXJlcyhzbXUsIGZhbHNlLCBmZWF0dXJlc190b19kaXNhYmxlKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCi0JaWYgKGZlYXR1cmVzX3RvX2VuYWJsZSkgewotCQlyZXQgPSB2ZWdhMjBfZW5hYmxlX3NtY19mZWF0dXJlcyhzbXUsIHRydWUsIGZlYXR1cmVzX3RvX2VuYWJsZSk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgYm9vbCB2ZWdhMjBfaXNfZHBtX3J1bm5pbmcoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiB7CiAJaW50IHJldCA9IDA7CkBAIC0zMTUzLDYgKzMwMjAsOSBAQCBzdGF0aWMgaW50IHZlZ2EyMF9yZWFkX3NlbnNvcihzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAlzdHJ1Y3Qgc211X3RhYmxlX2NvbnRleHQgKnRhYmxlX2NvbnRleHQgPSAmc211LT5zbXVfdGFibGU7CiAJUFBUYWJsZV90ICpwcHRhYmxlID0gdGFibGVfY29udGV4dC0+ZHJpdmVyX3BwdGFibGU7CiAKKwlpZighZGF0YSB8fCAhc2l6ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlzd2l0Y2ggKHNlbnNvcikgewogCWNhc2UgQU1ER1BVX1BQX1NFTlNPUl9NQVhfRkFOX1JQTToKIAkJKih1aW50MzJfdCAqKWRhdGEgPSBwcHRhYmxlLT5GYW5NYXhpbXVtUnBtOwpAQCAtMzE3Niw3ICszMDQ2LDcgQEAgc3RhdGljIGludCB2ZWdhMjBfcmVhZF9zZW5zb3Ioc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJCSpzaXplID0gNDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldCA9IHNtdV9zbWNfcmVhZF9zZW5zb3Ioc211LCBzZW5zb3IsIGRhdGEsIHNpemUpOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC0zMjUyLDE0ICszMTIyLDE4IEBAIHN0YXRpYyBpbnQgdmVnYTIwX2dldF90aGVybWFsX3RlbXBlcmF0dXJlX3JhbmdlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogCWlmICghcmFuZ2UgfHwgIXBvd2VycGxheV90YWJsZSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQkvKiBUaGUgdW5pdCBpcyB0ZW1wZXJhdHVyZSAqLwotCXJhbmdlLT5taW4gPSAwOwotCXJhbmdlLT5tYXggPSBwb3dlcnBsYXlfdGFibGUtPnVzU29mdHdhcmVTaHV0ZG93blRlbXA7Ci0JcmFuZ2UtPmVkZ2VfZW1lcmdlbmN5X21heCA9IChwcHRhYmxlLT5UZWRnZUxpbWl0ICsgQ1RGX09GRlNFVF9FREdFKTsKLQlyYW5nZS0+aG90c3BvdF9jcml0X21heCA9IHBwdGFibGUtPlRob3RzcG90TGltaXQ7Ci0JcmFuZ2UtPmhvdHNwb3RfZW1lcmdlbmN5X21heCA9IChwcHRhYmxlLT5UaG90c3BvdExpbWl0ICsgQ1RGX09GRlNFVF9IT1RTUE9UKTsKLQlyYW5nZS0+bWVtX2NyaXRfbWF4ID0gcHB0YWJsZS0+VGhibUxpbWl0OwotCXJhbmdlLT5tZW1fZW1lcmdlbmN5X21heCA9IChwcHRhYmxlLT5UaGJtTGltaXQgKyBDVEZfT0ZGU0VUX0hCTSk7CisJcmFuZ2UtPm1heCA9IHBvd2VycGxheV90YWJsZS0+dXNTb2Z0d2FyZVNodXRkb3duVGVtcCAqCisJCVNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7CisJcmFuZ2UtPmVkZ2VfZW1lcmdlbmN5X21heCA9IChwcHRhYmxlLT5UZWRnZUxpbWl0ICsgQ1RGX09GRlNFVF9FREdFKSAqCisJCVNNVV9URU1QRVJBVFVSRV9VTklUU19QRVJfQ0VOVElHUkFERVM7CisJcmFuZ2UtPmhvdHNwb3RfY3JpdF9tYXggPSBwcHRhYmxlLT5UaG90c3BvdExpbWl0ICoKKwkJU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKKwlyYW5nZS0+aG90c3BvdF9lbWVyZ2VuY3lfbWF4ID0gKHBwdGFibGUtPlRob3RzcG90TGltaXQgKyBDVEZfT0ZGU0VUX0hPVFNQT1QpICoKKwkJU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKKwlyYW5nZS0+bWVtX2NyaXRfbWF4ID0gcHB0YWJsZS0+VGhibUxpbWl0ICoKKwkJU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKKwlyYW5nZS0+bWVtX2VtZXJnZW5jeV9tYXggPSAocHB0YWJsZS0+VGhibUxpbWl0ICsgQ1RGX09GRlNFVF9IQk0pICoKKwkJU01VX1RFTVBFUkFUVVJFX1VOSVRTX1BFUl9DRU5USUdSQURFUzsKIAogCiAJcmV0dXJuIDA7CkBAIC0zMzAyLDggKzMxNzYsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBwdGFibGVfZnVuY3MgdmVnYTIwX3BwdF9mdW5jcyA9IHsKIAkuZm9yY2VfZHBtX2xpbWl0X3ZhbHVlID0gdmVnYTIwX2ZvcmNlX2RwbV9saW1pdF92YWx1ZSwKIAkudW5mb3JjZV9kcG1fbGV2ZWxzID0gdmVnYTIwX3VuZm9yY2VfZHBtX2xldmVscywKIAkuZ2V0X3Byb2ZpbGluZ19jbGtfbWFzayA9IHZlZ2EyMF9nZXRfcHJvZmlsaW5nX2Nsa19tYXNrLAotCS5zZXRfcHBmZWF0dXJlX3N0YXR1cyA9IHZlZ2EyMF9zZXRfcHBmZWF0dXJlX3N0YXR1cywKLQkuZ2V0X3BwZmVhdHVyZV9zdGF0dXMgPSB2ZWdhMjBfZ2V0X3BwZmVhdHVyZV9zdGF0dXMsCiAJLmlzX2RwbV9ydW5uaW5nID0gdmVnYTIwX2lzX2RwbV9ydW5uaW5nLAogCS5zZXRfdGhlcm1hbF9mYW5fdGFibGUgPSB2ZWdhMjBfc2V0X3RoZXJtYWxfZmFuX3RhYmxlLAogCS5nZXRfZmFuX3NwZWVkX3BlcmNlbnQgPSB2ZWdhMjBfZ2V0X2Zhbl9zcGVlZF9wZXJjZW50LApAQCAtMzMxNyw2ICszMTg5LDUgQEAgdm9pZCB2ZWdhMjBfc2V0X3BwdF9mdW5jcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIAlzdHJ1Y3Qgc211X3RhYmxlX2NvbnRleHQgKnNtdV90YWJsZSA9ICZzbXUtPnNtdV90YWJsZTsKIAogCXNtdS0+cHB0X2Z1bmNzID0gJnZlZ2EyMF9wcHRfZnVuY3M7Ci0Jc211LT5zbWNfaWZfdmVyc2lvbiA9IFNNVTExX0RSSVZFUl9JRl9WRVJTSU9OOwogCXNtdV90YWJsZS0+dGFibGVfY291bnQgPSBUQUJMRV9DT1VOVDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcmMvYXJjcGd1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfZHJ2LmMKaW5kZXggYWY2MGM2ZC4uNmI3Zjc5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfZHJ2LmMKQEAgLTEzNSw4ICsxMzUsNyBAQCBzdGF0aWMgaW50IGFyY3BndV9kZWJ1Z2ZzX2luaXQoc3RydWN0IGRybV9taW5vciAqbWlub3IpCiAjZW5kaWYKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGFyY3BndV9kcm1fZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfUFJJTUUgfAotCQkJICAgRFJJVkVSX0FUT01JQywKKwkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX0FUT01JQywKIAkubmFtZSA9ICJhcmNwZ3UiLAogCS5kZXNjID0gIkFSQyBQR1UgQ29udHJvbGxlciIsCiAJLmRhdGUgPSAiMjAxNjAyMTkiLApAQCAtMTUwLDggKzE0OSw2IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBhcmNwZ3VfZHJtX2RyaXZlciA9IHsKIAkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0gZHJtX2dlbV9jbWFfZnJlZV9vYmplY3QsCiAJLmdlbV9wcmludF9pbmZvID0gZHJtX2dlbV9jbWFfcHJpbnRfaW5mbywKIAkuZ2VtX3ZtX29wcyA9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKLQkuZ2VtX3ByaW1lX2ltcG9ydCA9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcCA9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMKaW5kZXggNDA3M2E0NS4uNTVhOGNjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2NvbXBvbmVudC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcxL2Q3MV9jb21wb25lbnQuYwpAQCAtNCw4ICs0LDYgQEAKICAqIEF1dGhvcjogSmFtZXMuUWlhbi5XYW5nIDxqYW1lcy5xaWFuLndhbmdAYXJtLmNvbT4KICAqCiAgKi8KLQotI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlICJkNzFfZGV2LmgiCiAjaW5jbHVkZSAia29tZWRhX2ttcy5oIgogI2luY2x1ZGUgIm1hbGlkcF9pby5oIgpAQCAtODA0LDcgKzgwMiw3IEBAIHN0YXRpYyBpbnQgZDcxX2Rvd25zY2FsaW5nX2Nsa19jaGVjayhzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlLAogCQlkZW5vbWluYXRvciA9IChtb2RlLT5odG90YWwgLSAxKSAqIHZfb3V0IC0gIDIgKiB2X2luOwogCX0KIAotCXJldHVybiBhY2xrX3JhdGUgKiBkZW5vbWluYXRvciA+PSBtb2RlLT5jbG9jayAqIDEwMDAgKiBmcmFjdGlvbiA/CisJcmV0dXJuIGFjbGtfcmF0ZSAqIGRlbm9taW5hdG9yID49IG1vZGUtPmNydGNfY2xvY2sgKiAxMDAwICogZnJhY3Rpb24gPwogCSAgICAgICAwIDogLUVJTlZBTDsKIH0KIApAQCAtMTAzMiwyMSArMTAzMCwzMSBAQCBzdGF0aWMgdm9pZCBkNzFfdGltaW5nX2N0cmxyX3VwZGF0ZShzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYywKIAkJCQkgICAgc3RydWN0IGtvbWVkYV9jb21wb25lbnRfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdCA9IHN0YXRlLT5jcnRjLT5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZjcnRjX3N0LT5hZGp1c3RlZF9tb2RlOwogCXUzMiBfX2lvbWVtICpyZWcgPSBjLT5yZWc7Ci0Jc3RydWN0IHZpZGVvbW9kZSB2bTsKKwl1MzIgaGFjdGl2ZSwgaGZyb250X3BvcmNoLCBoYmFja19wb3JjaCwgaHN5bmNfbGVuOworCXUzMiB2YWN0aXZlLCB2ZnJvbnRfcG9yY2gsIHZiYWNrX3BvcmNoLCB2c3luY19sZW47CiAJdTMyIHZhbHVlOwogCi0JZHJtX2Rpc3BsYXlfbW9kZV90b192aWRlb21vZGUoJmNydGNfc3QtPmFkanVzdGVkX21vZGUsICZ2bSk7CisJaGFjdGl2ZSA9IG1vZGUtPmNydGNfaGRpc3BsYXk7CisJaGZyb250X3BvcmNoID0gbW9kZS0+Y3J0Y19oc3luY19zdGFydCAtIG1vZGUtPmNydGNfaGRpc3BsYXk7CisJaHN5bmNfbGVuID0gbW9kZS0+Y3J0Y19oc3luY19lbmQgLSBtb2RlLT5jcnRjX2hzeW5jX3N0YXJ0OworCWhiYWNrX3BvcmNoID0gbW9kZS0+Y3J0Y19odG90YWwgLSBtb2RlLT5jcnRjX2hzeW5jX2VuZDsKIAotCW1hbGlkcF93cml0ZTMyKHJlZywgQlNfQUNUSVZFU0laRSwgSFZfU0laRSh2bS5oYWN0aXZlLCB2bS52YWN0aXZlKSk7Ci0JbWFsaWRwX3dyaXRlMzIocmVnLCBCU19ISU5URVJWQUxTLCBCU19IX0lOVFZBTFModm0uaGZyb250X3BvcmNoLAotCQkJCQkJCXZtLmhiYWNrX3BvcmNoKSk7Ci0JbWFsaWRwX3dyaXRlMzIocmVnLCBCU19WSU5URVJWQUxTLCBCU19WX0lOVFZBTFModm0udmZyb250X3BvcmNoLAotCQkJCQkJCXZtLnZiYWNrX3BvcmNoKSk7CisJdmFjdGl2ZSA9IG1vZGUtPmNydGNfdmRpc3BsYXk7CisJdmZyb250X3BvcmNoID0gbW9kZS0+Y3J0Y192c3luY19zdGFydCAtIG1vZGUtPmNydGNfdmRpc3BsYXk7CisJdnN5bmNfbGVuID0gbW9kZS0+Y3J0Y192c3luY19lbmQgLSBtb2RlLT5jcnRjX3ZzeW5jX3N0YXJ0OworCXZiYWNrX3BvcmNoID0gbW9kZS0+Y3J0Y192dG90YWwgLSBtb2RlLT5jcnRjX3ZzeW5jX2VuZDsKIAotCXZhbHVlID0gQlNfU1lOQ19WU1codm0udnN5bmNfbGVuKSB8IEJTX1NZTkNfSFNXKHZtLmhzeW5jX2xlbik7Ci0JdmFsdWUgfD0gdm0uZmxhZ3MgJiBESVNQTEFZX0ZMQUdTX1ZTWU5DX0hJR0ggPyBCU19TWU5DX1ZTUCA6IDA7Ci0JdmFsdWUgfD0gdm0uZmxhZ3MgJiBESVNQTEFZX0ZMQUdTX0hTWU5DX0hJR0ggPyBCU19TWU5DX0hTUCA6IDA7CisJbWFsaWRwX3dyaXRlMzIocmVnLCBCU19BQ1RJVkVTSVpFLCBIVl9TSVpFKGhhY3RpdmUsIHZhY3RpdmUpKTsKKwltYWxpZHBfd3JpdGUzMihyZWcsIEJTX0hJTlRFUlZBTFMsIEJTX0hfSU5UVkFMUyhoZnJvbnRfcG9yY2gsCisJCQkJCQkJaGJhY2tfcG9yY2gpKTsKKwltYWxpZHBfd3JpdGUzMihyZWcsIEJTX1ZJTlRFUlZBTFMsIEJTX1ZfSU5UVkFMUyh2ZnJvbnRfcG9yY2gsCisJCQkJCQkJdmJhY2tfcG9yY2gpKTsKKworCXZhbHVlID0gQlNfU1lOQ19WU1codnN5bmNfbGVuKSB8IEJTX1NZTkNfSFNXKGhzeW5jX2xlbik7CisJdmFsdWUgfD0gbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQyA/IEJTX1NZTkNfVlNQIDogMDsKKwl2YWx1ZSB8PSBtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUEhTWU5DID8gQlNfU1lOQ19IU1AgOiAwOwogCW1hbGlkcF93cml0ZTMyKHJlZywgQlNfU1lOQywgdmFsdWUpOwogCiAJbWFsaWRwX3dyaXRlMzIocmVnLCBCU19QUk9HX0xJTkUsIEQ3MV9ERUZBVUxUX1BSRVBSRVRDSF9MSU5FIC0gMSk7CkBAIC0xMDU0LDYgKzEwNjIsMTAgQEAgc3RhdGljIHZvaWQgZDcxX3RpbWluZ19jdHJscl91cGRhdGUoc3RydWN0IGtvbWVkYV9jb21wb25lbnQgKmMsCiAKIAkvKiBjb25maWd1cmUgYnMgY29udHJvbCByZWdpc3RlciAqLwogCXZhbHVlID0gQlNfQ1RSTF9FTiB8IEJTX0NUUkxfVk07CisJaWYgKGMtPnBpcGVsaW5lLT5kdWFsX2xpbmspIHsKKwkJbWFsaWRwX3dyaXRlMzIocmVnLCBCU19EUklGVF9UTywgaGZyb250X3BvcmNoICsgMTYpOworCQl2YWx1ZSB8PSBCU19DVFJMX0RMOworCX0KIAogCW1hbGlkcF93cml0ZTMyKHJlZywgQkxLX0NPTlRST0wsIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2NydGMuYwppbmRleCBmNDQwMDc4Li42MjRkMjU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jCkBAIC0yNyw4ICsyNyw4IEBAIHN0YXRpYyB2b2lkIGtvbWVkYV9jcnRjX3VwZGF0ZV9jbG9ja19yYXRpbyhzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRjX3N0KQogCQlyZXR1cm47CiAJfQogCi0JcHhsY2xrID0ga2NydGNfc3QtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jbG9jayAqIDEwMDA7Ci0JYWNsayA9IGtvbWVkYV9jYWxjX2FjbGsoa2NydGNfc3QpOworCXB4bGNsayA9IGtjcnRjX3N0LT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayAqIDEwMDBVTEw7CisJYWNsayA9IGtvbWVkYV9jcnRjX2dldF9hY2xrKGtjcnRjX3N0KTsKIAogCWtjcnRjX3N0LT5jbG9ja19yYXRpbyA9IGRpdjY0X3U2NChhY2xrIDw8IDMyLCBweGxjbGspOwogfQpAQCAtNzQsMTQgKzc0LDYgQEAga29tZWRhX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlyZXR1cm4gMDsKIH0KIAotdW5zaWduZWQgbG9uZyBrb21lZGFfY2FsY19hY2xrKHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QpCi17Ci0Jc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYgPSBrY3J0Y19zdC0+YmFzZS5jcnRjLT5kZXYtPmRldl9wcml2YXRlOwotCXVuc2lnbmVkIGxvbmcgcHhsY2xrID0ga2NydGNfc3QtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jbG9jazsKLQotCXJldHVybiBjbGtfcm91bmRfcmF0ZShtZGV2LT5hY2xrLCBweGxjbGsgKiAxMDAwKTsKLX0KLQogLyogRm9yIGFjdGl2ZSBhIGNydGMsIG1haW5seSBuZWVkIHR3byBwYXJ0cyBvZiBwcmVwYXJhdGlvbgogICogMS4gYWRqdXN0IGRpc3BsYXkgb3BlcmF0aW9uIG1vZGUuCiAgKiAyLiBlbmFibGUgbmVlZGVkIGNsawpAQCAtOTIsNyArODQsNyBAQCBrb21lZGFfY3J0Y19wcmVwYXJlKHN0cnVjdCBrb21lZGFfY3J0YyAqa2NydGMpCiAJc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYgPSBrY3J0Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKm1hc3RlciA9IGtjcnRjLT5tYXN0ZXI7CiAJc3RydWN0IGtvbWVkYV9jcnRjX3N0YXRlICprY3J0Y19zdCA9IHRvX2tjcnRjX3N0KGtjcnRjLT5iYXNlLnN0YXRlKTsKLQl1bnNpZ25lZCBsb25nIHB4bGNsa19yYXRlID0ga2NydGNfc3QtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jbG9jayAqIDEwMDA7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAma2NydGNfc3QtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAl1MzIgbmV3X21vZGU7CiAJaW50IGVycjsKIApAQCAtMTE4LDcgKzExMCw3IEBAIGtvbWVkYV9jcnRjX3ByZXBhcmUoc3RydWN0IGtvbWVkYV9jcnRjICprY3J0YykKIAkgKiB0byBlbmFibGUgaXQgYWdhaW4uCiAJICovCiAJaWYgKG5ld19tb2RlICE9IEtPTUVEQV9NT0RFX0RVQUxfRElTUCkgewotCQllcnIgPSBjbGtfc2V0X3JhdGUobWRldi0+YWNsaywga29tZWRhX2NhbGNfYWNsayhrY3J0Y19zdCkpOworCQllcnIgPSBjbGtfc2V0X3JhdGUobWRldi0+YWNsaywga29tZWRhX2NydGNfZ2V0X2FjbGsoa2NydGNfc3QpKTsKIAkJaWYgKGVycikKIAkJCURSTV9FUlJPUigiZmFpbGVkIHRvIHNldCBhY2xrLlxuIik7CiAJCWVyciA9IGNsa19wcmVwYXJlX2VuYWJsZShtZGV2LT5hY2xrKTsKQEAgLTEyNiw3ICsxMTgsNyBAQCBrb21lZGFfY3J0Y19wcmVwYXJlKHN0cnVjdCBrb21lZGFfY3J0YyAqa2NydGMpCiAJCQlEUk1fRVJST1IoImZhaWxlZCB0byBlbmFibGUgYWNsay5cbiIpOwogCX0KIAotCWVyciA9IGNsa19zZXRfcmF0ZShtYXN0ZXItPnB4bGNsaywgcHhsY2xrX3JhdGUpOworCWVyciA9IGNsa19zZXRfcmF0ZShtYXN0ZXItPnB4bGNsaywgbW9kZS0+Y3J0Y19jbG9jayAqIDEwMDApOwogCWlmIChlcnIpCiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHNldCBweGxjbGsgZm9yIHBpcGUlZFxuIiwgbWFzdGVyLT5pZCk7CiAJZXJyID0gY2xrX3ByZXBhcmVfZW5hYmxlKG1hc3Rlci0+cHhsY2xrKTsKQEAgLTM0MiwyOSArMzM0LDU4IEBAIGtvbWVkYV9jcnRjX2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJa29tZWRhX2NydGNfZG9fZmx1c2goY3J0Yywgb2xkKTsKIH0KIAorLyogUmV0dXJucyB0aGUgbWluaW11bSBmcmVxdWVuY3kgb2YgdGhlIGFjbGsgcmF0ZSAobWFpbiBlbmdpbmUgY2xvY2spIGluIEh6ICovCitzdGF0aWMgdW5zaWduZWQgbG9uZwora29tZWRhX2NhbGNfbWluX2FjbGtfcmF0ZShzdHJ1Y3Qga29tZWRhX2NydGMgKmtjcnRjLAorCQkJICB1bnNpZ25lZCBsb25nIHB4bGNsaykKK3sKKwkvKiBPbmNlIGR1YWwtbGluayBvbmUgZGlzcGxheSBwaXBlbGluZSBkcml2ZXMgdHdvIGRpc3BsYXkgb3V0cHV0cywKKwkgKiB0aGUgYWNsayBuZWVkcyBydW4gb24gdGhlIGRvdWJsZSByYXRlIG9mIHB4bGNsaworCSAqLworCWlmIChrY3J0Yy0+bWFzdGVyLT5kdWFsX2xpbmspCisJCXJldHVybiBweGxjbGsgKiAyOworCWVsc2UKKwkJcmV0dXJuIHB4bGNsazsKK30KKworLyogR2V0IGN1cnJlbnQgYWNsayByYXRlIHRoYXQgc3BlY2lmaWVkIGJ5IHN0YXRlICovCit1bnNpZ25lZCBsb25nIGtvbWVkYV9jcnRjX2dldF9hY2xrKHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QpCit7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0ga2NydGNfc3QtPmJhc2UuY3J0YzsKKwlzdHJ1Y3Qga29tZWRhX2RldiAqbWRldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgbG9uZyBweGxjbGsgPSBrY3J0Y19zdC0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgKiAxMDAwOworCXVuc2lnbmVkIGxvbmcgbWluX2FjbGs7CisKKwltaW5fYWNsayA9IGtvbWVkYV9jYWxjX21pbl9hY2xrX3JhdGUodG9fa2NydGMoY3J0YyksIHB4bGNsayk7CisKKwlyZXR1cm4gY2xrX3JvdW5kX3JhdGUobWRldi0+YWNsaywgbWluX2FjbGspOworfQorCiBzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMKIGtvbWVkYV9jcnRjX21vZGVfdmFsaWQoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbSkKIHsKIAlzdHJ1Y3Qga29tZWRhX2RldiAqbWRldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGtvbWVkYV9jcnRjICprY3J0YyA9IHRvX2tjcnRjKGNydGMpOwogCXN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKm1hc3RlciA9IGtjcnRjLT5tYXN0ZXI7Ci0JbG9uZyBtb2RlX2NsaywgcHhsY2xrOworCXVuc2lnbmVkIGxvbmcgbWluX3B4bGNsaywgbWluX2FjbGs7CiAKIAlpZiAobS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKIAkJcmV0dXJuIE1PREVfTk9fSU5URVJMQUNFOwogCi0JbW9kZV9jbGsgPSBtLT5jbG9jayAqIDEwMDA7Ci0JcHhsY2xrID0gY2xrX3JvdW5kX3JhdGUobWFzdGVyLT5weGxjbGssIG1vZGVfY2xrKTsKLQlpZiAocHhsY2xrICE9IG1vZGVfY2xrKSB7Ci0JCURSTV9ERUJVR19BVE9NSUMoInB4bGNsayBkb2Vzbid0IHN1cHBvcnQgJWxkIEh6XG4iLCBtb2RlX2Nsayk7CisJbWluX3B4bGNsayA9IG0tPmNsb2NrICogMTAwMDsKKwlpZiAobWFzdGVyLT5kdWFsX2xpbmspCisJCW1pbl9weGxjbGsgLz0gMjsKKworCWlmIChtaW5fcHhsY2xrICE9IGNsa19yb3VuZF9yYXRlKG1hc3Rlci0+cHhsY2xrLCBtaW5fcHhsY2xrKSkgeworCQlEUk1fREVCVUdfQVRPTUlDKCJweGxjbGsgZG9lc24ndCBzdXBwb3J0ICVsdSBIelxuIiwgbWluX3B4bGNsayk7CiAKIAkJcmV0dXJuIE1PREVfTk9DTE9DSzsKIAl9CiAKLQkvKiBtYWluIGVuZ2luZSBjbG9jayBtdXN0IGJlIGZhc3RlciB0aGFuIHB4bGNsayovCi0JaWYgKGNsa19yb3VuZF9yYXRlKG1kZXYtPmFjbGssIG1vZGVfY2xrKSA8IHB4bGNsaykgewotCQlEUk1fREVCVUdfQVRPTUlDKCJlbmdpbmUgY2xrIGNhbid0IHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50IG9mICVzLWNsazogJWxkLlxuIiwKLQkJCQkgbS0+bmFtZSwgcHhsY2xrKTsKKwltaW5fYWNsayA9IGtvbWVkYV9jYWxjX21pbl9hY2xrX3JhdGUodG9fa2NydGMoY3J0YyksIG1pbl9weGxjbGspOworCWlmIChjbGtfcm91bmRfcmF0ZShtZGV2LT5hY2xrLCBtaW5fYWNsaykgPCBtaW5fYWNsaykgeworCQlEUk1fREVCVUdfQVRPTUlDKCJlbmdpbmUgY2xrIGNhbid0IHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50IG9mICVzLWNsazogJWx1LlxuIiwKKwkJCQkgbS0+bmFtZSwgbWluX3B4bGNsayk7CiAKIAkJcmV0dXJuIE1PREVfQ0xPQ0tfSElHSDsKIAl9CkBAIC0zNzcsMTAgKzM5OCwyMiBAQCBzdGF0aWMgYm9vbCBrb21lZGFfY3J0Y19tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKIHsKIAlzdHJ1Y3Qga29tZWRhX2NydGMgKmtjcnRjID0gdG9fa2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGtvbWVkYV9waXBlbGluZSAqbWFzdGVyID0ga2NydGMtPm1hc3RlcjsKLQlsb25nIG1vZGVfY2xrID0gbS0+Y2xvY2sgKiAxMDAwOworCXVuc2lnbmVkIGxvbmcgY2xrX3JhdGU7CiAKLQlhZGp1c3RlZF9tb2RlLT5jbG9jayA9IGNsa19yb3VuZF9yYXRlKG1hc3Rlci0+cHhsY2xrLCBtb2RlX2NsaykgLyAxMDAwOworCWRybV9tb2RlX3NldF9jcnRjaW5mbyhhZGp1c3RlZF9tb2RlLCAwKTsKKwkvKiBJbiBkdWFsIGxpbmsgaGFsZiB0aGUgaG9yaXpvbnRhbCBzZXR0aW5ncyAqLworCWlmIChrY3J0Yy0+bWFzdGVyLT5kdWFsX2xpbmspIHsKKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayAvPSAyOworCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5IC89IDI7CisJCWFkanVzdGVkX21vZGUtPmNydGNfaHN5bmNfc3RhcnQgLz0gMjsKKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19lbmQgLz0gMjsKKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWwgLz0gMjsKKwl9CisKKwljbGtfcmF0ZSA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgKiAxMDAwOworCS8qIGNydGNfY2xvY2sgd2lsbCBiZSB1c2VkIGFzIHRoZSBrb21lZGEgb3V0cHV0IHBpeGVsIGNsb2NrICovCisJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayA9IGNsa19yb3VuZF9yYXRlKGtjcnRjLT5tYXN0ZXItPnB4bGNsaywKKwkJCQkJCSAgIGNsa19yYXRlKSAvIDEwMDA7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTQ4OCwxMCArNTIxLDggQEAgaW50IGtvbWVkYV9rbXNfc2V0dXBfY3J0Y3Moc3RydWN0IGtvbWVkYV9rbXNfZGV2ICprbXMsCiAJCWVsc2UKIAkJCXNwcmludGYoc3RyLCAiTm9uZSIpOwogCi0JCURSTV9JTkZPKCJjcnRjJWQ6IG1hc3RlcihwaXBlLSVkKSBzbGF2ZSglcykgb3V0cHV0OiAlcy5cbiIsCi0JCQkga21zLT5uX2NydGNzLCBtYXN0ZXItPmlkLCBzdHIsCi0JCQkgbWFzdGVyLT5vZl9vdXRwdXRfZGV2ID8KLQkJCSBtYXN0ZXItPm9mX291dHB1dF9kZXYtPmZ1bGxfbmFtZSA6ICJOb25lIik7CisJCURSTV9JTkZPKCJDUlRDLSVkOiBtYXN0ZXIocGlwZS0lZCkgc2xhdmUoJXMpLlxuIiwKKwkJCSBrbXMtPm5fY3J0Y3MsIG1hc3Rlci0+aWQsIHN0cik7CiAKIAkJa21zLT5uX2NydGNzKys7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuYwppbmRleCA5ZDRkNTA3Li5jYTY0YTEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuYwpAQCAtMTIyLDExICsxMjIsMTQgQEAgc3RhdGljIGludCBrb21lZGFfcGFyc2VfcGlwZV9kdChzdHJ1Y3Qga29tZWRhX2RldiAqbWRldiwgc3RydWN0IGRldmljZV9ub2RlICpucCkKIAlwaXBlLT5weGxjbGsgPSBjbGs7CiAKIAkvKiBlbnVtIHBvcnRzICovCi0JcGlwZS0+b2Zfb3V0cHV0X2RldiA9CisJcGlwZS0+b2Zfb3V0cHV0X2xpbmtzWzBdID0KIAkJb2ZfZ3JhcGhfZ2V0X3JlbW90ZV9ub2RlKG5wLCBLT01FREFfT0ZfUE9SVF9PVVRQVVQsIDApOworCXBpcGUtPm9mX291dHB1dF9saW5rc1sxXSA9CisJCW9mX2dyYXBoX2dldF9yZW1vdGVfbm9kZShucCwgS09NRURBX09GX1BPUlRfT1VUUFVULCAxKTsKIAlwaXBlLT5vZl9vdXRwdXRfcG9ydCA9CiAJCW9mX2dyYXBoX2dldF9wb3J0X2J5X2lkKG5wLCBLT01FREFfT0ZfUE9SVF9PVVRQVVQpOwogCisJcGlwZS0+ZHVhbF9saW5rID0gcGlwZS0+b2Zfb3V0cHV0X2xpbmtzWzBdICYmIHBpcGUtPm9mX291dHB1dF9saW5rc1sxXTsKIAlwaXBlLT5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobnApOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rydi5jCmluZGV4IGNmYTUwNjguLjY5YWNlNmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rydi5jCkBAIC04MywxMSArODMsMTIgQEAgc3RhdGljIGludCBjb21wYXJlX29mKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKIAogc3RhdGljIHZvaWQga29tZWRhX2FkZF9zbGF2ZShzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCiAJCQkgICAgIHN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKiptYXRjaCwKLQkJCSAgICAgc3RydWN0IGRldmljZV9ub2RlICpucCwgaW50IHBvcnQpCisJCQkgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCisJCQkgICAgIHUzMiBwb3J0LCB1MzIgZW5kcG9pbnQpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICpyZW1vdGU7CiAKLQlyZW1vdGUgPSBvZl9ncmFwaF9nZXRfcmVtb3RlX25vZGUobnAsIHBvcnQsIDApOworCXJlbW90ZSA9IG9mX2dyYXBoX2dldF9yZW1vdGVfbm9kZShucCwgcG9ydCwgZW5kcG9pbnQpOwogCWlmIChyZW1vdGUpIHsKIAkJZHJtX29mX2NvbXBvbmVudF9tYXRjaF9hZGQobWFzdGVyLCBtYXRjaCwgY29tcGFyZV9vZiwgcmVtb3RlKTsKIAkJb2Zfbm9kZV9wdXQocmVtb3RlKTsKQEAgLTEwOCw3ICsxMDksOCBAQCBzdGF0aWMgaW50IGtvbWVkYV9wbGF0Zm9ybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQkJY29udGludWU7CiAKIAkJLyogYWRkIGNvbm5lY3RvciAqLwotCQlrb21lZGFfYWRkX3NsYXZlKGRldiwgJm1hdGNoLCBjaGlsZCwgS09NRURBX09GX1BPUlRfT1VUUFVUKTsKKwkJa29tZWRhX2FkZF9zbGF2ZShkZXYsICZtYXRjaCwgY2hpbGQsIEtPTUVEQV9PRl9QT1JUX09VVFBVVCwgMCk7CisJCWtvbWVkYV9hZGRfc2xhdmUoZGV2LCAmbWF0Y2gsIGNoaWxkLCBLT01FREFfT0ZfUE9SVF9PVVRQVVQsIDEpOwogCX0KIAogCXJldHVybiBjb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKGRldiwgJmtvbWVkYV9tYXN0ZXJfb3BzLCBtYXRjaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5jCmluZGV4IDY5ZDllMjYuLjg4MjBjZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5jCkBAIC01NiwxNiArNTYsMTMgQEAgc3RhdGljIGlycXJldHVybl90IGtvbWVkYV9rbXNfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGtvbWVkYV9rbXNfZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDIHwKLQkJCSAgIERSSVZFUl9QUklNRSB8IERSSVZFUl9IQVZFX0lSUSwKKwkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQywKIAkubGFzdGNsb3NlCQkJPSBkcm1fZmJfaGVscGVyX2xhc3RjbG9zZSwKIAkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkCT0gZHJtX2dlbV9jbWFfZnJlZV9vYmplY3QsCiAJLmdlbV92bV9vcHMJCQk9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCiAJLmR1bWJfY3JlYXRlCQkJPSBrb21lZGFfZ2VtX2NtYV9kdW1iX2NyZWF0ZSwKIAkucHJpbWVfaGFuZGxlX3RvX2ZkCQk9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUJCT0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9leHBvcnQJCT0gZHJtX2dlbV9wcmltZV9leHBvcnQsCi0JLmdlbV9wcmltZV9pbXBvcnQJCT0gZHJtX2dlbV9wcmltZV9pbXBvcnQsCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUJCT0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlCT0gZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcAkJCT0gZHJtX2dlbV9jbWFfcHJpbWVfdm1hcCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmgKaW5kZXggOGM4OWZjMi4uNDVjNDk4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmgKQEAgLTE0LDggKzE0LDYgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgogI2luY2x1ZGUgPGRybS9kcm1fd3JpdGViYWNrLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgotI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgotI2luY2x1ZGUgPHZpZGVvL2Rpc3BsYXlfdGltaW5nLmg+CiAKIC8qKgogICogc3RydWN0IGtvbWVkYV9wbGFuZSAtIGtvbWVkYSBpbnN0YW5jZSBvZiBkcm1fcGxhbmUKQEAgLTE2OCw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFzX2ZsaXBfaCh1MzIgcm90KQogCQlyZXR1cm4gISEocm90YXRpb24gJiBEUk1fTU9ERV9SRUZMRUNUX1gpOwogfQogCi11bnNpZ25lZCBsb25nIGtvbWVkYV9jYWxjX2FjbGsoc3RydWN0IGtvbWVkYV9jcnRjX3N0YXRlICprY3J0Y19zdCk7Cit1bnNpZ25lZCBsb25nIGtvbWVkYV9jcnRjX2dldF9hY2xrKHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QpOwogCiBpbnQga29tZWRhX2ttc19zZXR1cF9jcnRjcyhzdHJ1Y3Qga29tZWRhX2ttc19kZXYgKmttcywgc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuYwppbmRleCA3OGU0NGQ5Li40NTJlNTA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmMKQEAgLTU0LDcgKzU0LDggQEAgdm9pZCBrb21lZGFfcGlwZWxpbmVfZGVzdHJveShzdHJ1Y3Qga29tZWRhX2RldiAqbWRldiwKIAogCWNsa19wdXQocGlwZS0+cHhsY2xrKTsKIAotCW9mX25vZGVfcHV0KHBpcGUtPm9mX291dHB1dF9kZXYpOworCW9mX25vZGVfcHV0KHBpcGUtPm9mX291dHB1dF9saW5rc1swXSk7CisJb2Zfbm9kZV9wdXQocGlwZS0+b2Zfb3V0cHV0X2xpbmtzWzFdKTsKIAlvZl9ub2RlX3B1dChwaXBlLT5vZl9vdXRwdXRfcG9ydCk7CiAJb2Zfbm9kZV9wdXQocGlwZS0+b2Zfbm9kZSk7CiAKQEAgLTI0Niw5ICsyNDcsMTUgQEAgc3RhdGljIHZvaWQga29tZWRhX3BpcGVsaW5lX2R1bXAoc3RydWN0IGtvbWVkYV9waXBlbGluZSAqcGlwZSkKIAlzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYzsKIAlpbnQgaWQ7CiAKLQlEUk1fSU5GTygiUGlwZWxpbmUtJWQ6IG5fbGF5ZXJzOiAlZCwgbl9zY2FsZXJzOiAlZCwgb3V0cHV0OiAlc1xuIiwKKwlEUk1fSU5GTygiUGlwZWxpbmUtJWQ6IG5fbGF5ZXJzOiAlZCwgbl9zY2FsZXJzOiAlZCwgb3V0cHV0OiAlcy5cbiIsCiAJCSBwaXBlLT5pZCwgcGlwZS0+bl9sYXllcnMsIHBpcGUtPm5fc2NhbGVycywKLQkJIHBpcGUtPm9mX291dHB1dF9kZXYgPyBwaXBlLT5vZl9vdXRwdXRfZGV2LT5mdWxsX25hbWUgOiAibm9uZSIpOworCQkgcGlwZS0+ZHVhbF9saW5rID8gImR1YWwtbGluayIgOiAic2luZ2xlLWxpbmsiKTsKKwlEUk1fSU5GTygiCW91dHB1dF9saW5rWzBdOiAlcy5cbiIsCisJCSBwaXBlLT5vZl9vdXRwdXRfbGlua3NbMF0gPworCQkgcGlwZS0+b2Zfb3V0cHV0X2xpbmtzWzBdLT5mdWxsX25hbWUgOiAibm9uZSIpOworCURSTV9JTkZPKCIJb3V0cHV0X2xpbmtbMV06ICVzLlxuIiwKKwkJIHBpcGUtPm9mX291dHB1dF9saW5rc1sxXSA/CisJCSBwaXBlLT5vZl9vdXRwdXRfbGlua3NbMV0tPmZ1bGxfbmFtZSA6ICJub25lIik7CiAKIAlkcF9mb3JfZWFjaF9zZXRfYml0KGlkLCBwaXBlLT5hdmFpbF9jb21wcykgewogCQljID0ga29tZWRhX3BpcGVsaW5lX2dldF9jb21wb25lbnQocGlwZSwgaWQpOwpAQCAtMzA1LDYgKzMxMiwxMiBAQCBzdGF0aWMgdm9pZCBrb21lZGFfcGlwZWxpbmVfYXNzZW1ibGUoc3RydWN0IGtvbWVkYV9waXBlbGluZSAqcGlwZSkKIAogCQlsYXllci0+cmlnaHQgPSBrb21lZGFfZ2V0X2xheWVyX3NwbGl0X3JpZ2h0X2xheWVyKHBpcGUsIGxheWVyKTsKIAl9CisKKwlpZiAocGlwZS0+ZHVhbF9saW5rICYmICFwaXBlLT5jdHJsci0+c3VwcG9ydHNfZHVhbF9saW5rKSB7CisJCXBpcGUtPmR1YWxfbGluayA9IGZhbHNlOworCQlEUk1fV0FSTigiUElQRS0lZCBkb2Vzbid0IHN1cHBvcnQgZHVhbC1saW5rLCBpZ25vcmUgRFQgZHVhbC1saW5rIGNvbmZpZ3VyYXRpb24uXG4iLAorCQkJIHBpcGUtPmlkKTsKKwl9CiB9CiAKIC8qIGlmIHBpcGVsaW5lX0EgYWNjZXB0IGFub3RoZXIgcGlwZWxpbmVfQidzIGNvbXBvbmVudCBhcyBpbnB1dCwgdHJlYXQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5oCmluZGV4IDE0YjY4MzEuLmNmNWJlYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuaApAQCAtNDE2LDggKzQxNiwxMCBAQCBzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lIHsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGU7CiAJLyoqIEBvZl9vdXRwdXRfcG9ydDogcGlwZWxpbmUgb3V0cHV0IHBvcnQgKi8KIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX291dHB1dF9wb3J0OwotCS8qKiBAb2Zfb3V0cHV0X2Rldjogb3V0cHV0IGNvbm5lY3RvciBkZXZpY2Ugbm9kZSAqLwotCXN0cnVjdCBkZXZpY2Vfbm9kZSAqb2Zfb3V0cHV0X2RldjsKKwkvKiogQG9mX291dHB1dF9saW5rczogb3V0cHV0IGNvbm5lY3RvciBkZXZpY2Ugbm9kZXMgKi8KKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX291dHB1dF9saW5rc1syXTsKKwkvKiogQGR1YWxfbGluazogdHJ1ZSBpZiBvZl9vdXRwdXRfbGlua3NbMF0gYW5kIFsxXSBhcmUgYm90aCB2YWxpZCAqLworCWJvb2wgZHVhbF9saW5rOwogfTsKIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZV9zdGF0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYwppbmRleCA5NTAyMzVhLi5lYTI2YmM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZV9zdGF0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMKQEAgLTQ3Myw3ICs0NzMsNyBAQCBrb21lZGFfc2NhbGVyX2NoZWNrX2NmZyhzdHJ1Y3Qga29tZWRhX3NjYWxlciAqc2NhbGVyLAogCiAJCWVyciA9IHBpcGUtPmZ1bmNzLT5kb3duc2NhbGluZ19jbGtfY2hlY2socGlwZSwKIAkJCQkJJmtjcnRjX3N0LT5iYXNlLmFkanVzdGVkX21vZGUsCi0JCQkJCWtvbWVkYV9jYWxjX2FjbGsoa2NydGNfc3QpLCBkZmxvdyk7CisJCQkJCWtvbWVkYV9jcnRjX2dldF9hY2xrKGtjcnRjX3N0KSwgZGZsb3cpOwogCQlpZiAoZXJyKSB7CiAJCQlEUk1fREVCVUdfQVRPTUlDKCJhY2xrIGNhbid0IHNhdGlzZnkgdGhlIGNsb2NrIHJlcXVpcmVtZW50IG9mIHRoZSBkb3duc2NhbGluZ1xuIik7CiAJCQlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BsYW5lLmMKaW5kZXggYzA5NWFmMS4uOThlOTE1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9wbGFuZS5jCkBAIC0xNTgsNyArMTU4LDcgQEAgc3RhdGljIHZvaWQga29tZWRhX3BsYW5lX3Jlc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogc3RhdGljIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKgoga29tZWRhX3BsYW5lX2F0b21pY19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB7Ci0Jc3RydWN0IGtvbWVkYV9wbGFuZV9zdGF0ZSAqbmV3LCAqb2xkOworCXN0cnVjdCBrb21lZGFfcGxhbmVfc3RhdGUgKm5ldzsKIAogCWlmIChXQVJOX09OKCFwbGFuZS0+c3RhdGUpKQogCQlyZXR1cm4gTlVMTDsKQEAgLTE2OSw4ICsxNjksNiBAQCBrb21lZGFfcGxhbmVfYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAogCV9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKHBsYW5lLCAmbmV3LT5iYXNlKTsKIAotCW9sZCA9IHRvX2twbGFuZV9zdChwbGFuZS0+c3RhdGUpOwotCiAJcmV0dXJuICZuZXctPmJhc2U7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vaGRsY2RfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRjLmMKaW5kZXggYTNlZmEyOC4uYWY2N2ZlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRjLmMKQEAgLTksNyArOSwxMiBAQAogICogIEltcGxlbWVudGF0aW9uIG9mIGEgQ1JUQyBjbGFzcyBmb3IgdGhlIEhETENEIGRyaXZlci4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvc2ltcGxlZmIuaD4KKworI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KQEAgLTE5LDEwICsyNCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvc2ltcGxlZmIuaD4KLSNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAiaGRsY2RfZHJ2LmgiCiAjaW5jbHVkZSAiaGRsY2RfcmVncy5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vaGRsY2RfZHJ2LmMKaW5kZXggOGZjMGI4OC4uMmUwNTM4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2Rydi5jCkBAIC0xNCwyMSArMTQsMjYgQEAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KICNpbmNsdWRlIDxsaW51eC9vZl9yZXNlcnZlZF9tZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pcnEuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgImhkbGNkX2Rydi5oIgogI2luY2x1ZGUgImhkbGNkX3JlZ3MuaCIKQEAgLTIyOSw5ICsyMzQsNyBAQCBzdGF0aWMgaW50IGhkbGNkX2RlYnVnZnNfaW5pdChzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKIERFRklORV9EUk1fR0VNX0NNQV9GT1BTKGZvcHMpOwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgaGRsY2RfZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfR0VNIHwKLQkJCSAgIERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX1BSSU1FIHwKLQkJCSAgIERSSVZFUl9BVE9NSUMsCisJLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCiAJLmlycV9oYW5kbGVyID0gaGRsY2RfaXJxLAogCS5pcnFfcHJlaW5zdGFsbCA9IGhkbGNkX2lycV9wcmVpbnN0YWxsLAogCS5pcnFfcG9zdGluc3RhbGwgPSBoZGxjZF9pcnFfcG9zdGluc3RhbGwsCkBAIC0yNDIsOCArMjQ1LDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGhkbGNkX2RyaXZlciA9IHsKIAkuZHVtYl9jcmVhdGUgPSBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSwKIAkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfZXhwb3J0ID0gZHJtX2dlbV9wcmltZV9leHBvcnQsCi0JLmdlbV9wcmltZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKIAkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX3ZtYXAgPSBkcm1fZ2VtX2NtYV9wcmltZV92bWFwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfY3J0Yy5jCmluZGV4IGRiNDQ1MTI2Li41ODdkOTQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfY3J0Yy5jCkBAIC02LDE0ICs2LDE3IEBACiAgKiBBUk0gTWFsaSBEUDUwMC9EUDU1MC9EUDY1MCBkcml2ZXIgKGNydGMgb3BlcmF0aW9ucykKICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CisKKyNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgotI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJtYWxpZHBfZHJ2LmgiCiAjaW5jbHVkZSAibWFsaWRwX2h3LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5jCmluZGV4IGYyNWVjNDMuLjMzM2I4OGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5jCkBAIC0xNSwxNyArMTUsMTkgQEAKICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJtYWxpZHBfZHJ2LmgiCiAjaW5jbHVkZSAibWFsaWRwX213LmgiCkBAIC01NjEsMTUgKzU2MywxMiBAQCBzdGF0aWMgaW50IG1hbGlkcF9kZWJ1Z2ZzX2luaXQoc3RydWN0IGRybV9taW5vciAqbWlub3IpCiAjZW5kaWYgLy9DT05GSUdfREVCVUdfRlMKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIG1hbGlkcF9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMgfAotCQkJICAgRFJJVkVSX1BSSU1FLAorCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLAogCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBkcm1fZ2VtX2NtYV9mcmVlX29iamVjdCwKIAkuZ2VtX3ZtX29wcyA9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCiAJLmR1bWJfY3JlYXRlID0gbWFsaWRwX2R1bWJfY3JlYXRlLAogCS5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFuZGxlID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKLQkuZ2VtX3ByaW1lX2ltcG9ydCA9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcCA9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5oCmluZGV4IDBhNjM5YWYuLmNkZmRkZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5oCkBAIC05LDEyICs5LDEzIEBACiAjaWZuZGVmIF9fTUFMSURQX0RSVl9IX18KICNkZWZpbmUgX19NQUxJRFBfRFJWX0hfXwogCi0jaW5jbHVkZSA8ZHJtL2RybV93cml0ZWJhY2suaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX3dyaXRlYmFjay5oPgorI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgorCiAjaW5jbHVkZSAibWFsaWRwX2h3LmgiCiAKICNkZWZpbmUgTUFMSURQX0NPTkZJR19WQUxJRF9JTklUCTAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5jCmluZGV4IDUwYWYzOTkuLmJkODI2NWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuYwpAQCAtOSwxMiArOSwxNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorCiAjaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2RlLmg+CiAjaW5jbHVkZSA8dmlkZW8vZGlzcGxheV90aW1pbmcuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CisKICNpbmNsdWRlICJtYWxpZHBfZHJ2LmgiCiAjaW5jbHVkZSAibWFsaWRwX2h3LmgiCiAjaW5jbHVkZSAibWFsaWRwX213LmgiCkBAIC0zODUsNiArMzkwLDcgQEAgaW50IG1hbGlkcF9mb3JtYXRfZ2V0X2JwcCh1MzIgZm10KQogCQlzd2l0Y2ggKGZtdCkgewogCQljYXNlIERSTV9GT1JNQVRfVlVZMTAxMDEwOgogCQkJYnBwID0gMzA7CisJCQlicmVhazsKIAkJY2FzZSBEUk1fRk9STUFUX1lVVjQyMF8xMEJJVDoKIAkJCWJwcCA9IDE1OwogCQkJYnJlYWs7CkBAIC0xMzA5LDcgKzEzMTUsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbWFsaWRwX3NlX2lycShpbnQgaXJxLCB2b2lkICphcmcpCiAJCQlicmVhazsKIAkJY2FzZSBNV19SRVNUQVJUOgogCQkJZHJtX3dyaXRlYmFja19zaWduYWxfY29tcGxldGlvbigmbWFsaWRwLT5td19jb25uZWN0b3IsIDApOwotCQkJLyogZmFsbCB0aHJvdWdoIHRvIGEgbmV3IHN0YXJ0ICovCisJCQkvKiBmYWxsIHRocm91Z2ggLSB0byBhIG5ldyBzdGFydCAqLwogCQljYXNlIE1XX1NUQVJUOgogCQkJLyogd3JpdGViYWNrIHN0YXJ0ZWQsIG5lZWQgdG8gZW11bGF0ZSBvbmUtc2hvdCBtb2RlICovCiAJCQlody0+ZGlzYWJsZV9tZW13cml0ZShod2Rldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9tdy5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfbXcuYwppbmRleCAyZTgxMjUyLi4yMmMwODQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9tdy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX213LmMKQEAgLTUsMTMgKzUsMTQgQEAKICAqCiAgKiBBUk0gTWFsaSBEUCBXcml0ZWJhY2sgY29ubmVjdG9yIGltcGxlbWVudGF0aW9uCiAgKi8KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV93cml0ZWJhY2suaD4KIAogI2luY2x1ZGUgIm1hbGlkcF9kcnYuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKaW5kZXggNDg4Mzc1Yi4uM2M3MGE1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKQEAgLTcsMTEgKzcsMTMgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW9tbXUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRjLmMKaW5kZXggZDQ0ZmNhNC4uYzJiOTJhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYwpAQCAtMywxNSArMywxOSBAQAogICogQ29weXJpZ2h0IChDKSAyMDEyIFJ1c3NlbGwgS2luZwogICogIFJld3JpdHRlbiBmcm9tIHRoZSBkb3ZlZmIgZHJpdmVyLCBhbmQgQXJtYWRhNTEwIG1hbnVhbHMuCiAgKi8KKwogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKwogI2luY2x1ZGUgImFybWFkYV9jcnRjLmgiCiAjaW5jbHVkZSAiYXJtYWRhX2RybS5oIgogI2luY2x1ZGUgImFybWFkYV9mYi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZGVidWdmcy5jCmluZGV4IGRjMzcxNmQuLmM2ZmMyZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kZWJ1Z2ZzLmMKQEAgLTMsMTEgKzMsMTUgQEAKICAqIENvcHlyaWdodCAoQykgMjAxMiBSdXNzZWxsIEtpbmcKICAqICBSZXdyaXR0ZW4gZnJvbSB0aGUgZG92ZWZiIGRyaXZlciwgYW5kIEFybWFkYTUxMCBtYW51YWxzLgogICovCisKICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgotI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisKICNpbmNsdWRlICJhcm1hZGFfY3J0Yy5oIgogI2luY2x1ZGUgImFybWFkYV9kcm0uaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kcm0uaAppbmRleCBjNzc5NGM4Li5hMTFiZGFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kcm0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kcm0uaApAQCAtOCwxMSArOCwxNCBAQAogI2luY2x1ZGUgPGxpbnV4L2tmaWZvLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21tLmg+CiAKIHN0cnVjdCBhcm1hZGFfY3J0YzsKIHN0cnVjdCBhcm1hZGFfZ2VtX29iamVjdDsKIHN0cnVjdCBjbGs7CitzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZTsKIHN0cnVjdCBkcm1fZmJfaGVscGVyOwogCiBzdGF0aWMgaW5saW5lIHZvaWQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJ2LmMKaW5kZXggNTIxNDY0Zi4uMTk3ZGNhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJ2LmMKQEAgLTIsMTQgKzIsMjIgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUnVzc2VsbCBLaW5nCiAgKi8KKwogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1faW9jdGwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorCiAjaW5jbHVkZSAiYXJtYWRhX2NydGMuaCIKICNpbmNsdWRlICJhcm1hZGFfZHJtLmgiCiAjaW5jbHVkZSAiYXJtYWRhX2dlbS5oIgpAQCAtNDAsOCArNDgsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgYXJtYWRhX2RybV9kcml2ZXIgPSB7CiAJLm5hbWUJCQk9ICJhcm1hZGEtZHJtIiwKIAkuZGVzYwkJCT0gIkFybWFkYSBTb0MgRFJNIiwKIAkuZGF0ZQkJCT0gIjIwMTIwNzMwIiwKLQkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwKLQkJCQkgIERSSVZFUl9QUklNRSB8IERSSVZFUl9BVE9NSUMsCisJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCiAJLmlvY3RscwkJCT0gYXJtYWRhX2lvY3RscywKIAkuZm9wcwkJCT0gJmFybWFkYV9kcm1fZm9wcywKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmIuYwppbmRleCBkZTAzMGNiLi40MjZjYTM4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYi5jCkBAIC0yLDkgKzIsMTIgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUnVzc2VsbCBLaW5nCiAgKi8KKwogI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisKICNpbmNsdWRlICJhcm1hZGFfZHJtLmgiCiAjaW5jbHVkZSAiYXJtYWRhX2ZiLmgiCiAjaW5jbHVkZSAiYXJtYWRhX2dlbS5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMKaW5kZXggMDk2YWZmNS4uMDkwY2MwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jCkBAIC0zLDExICszLDE0IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUnVzc2VsbCBLaW5nCiAgKiAgV3JpdHRlbiBmcm9tIHRoZSBpOTE1IGRyaXZlci4KICAqLworCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKwogI2luY2x1ZGUgImFybWFkYV9jcnRjLmgiCiAjaW5jbHVkZSAiYXJtYWRhX2RybS5oIgogI2luY2x1ZGUgImFybWFkYV9mYi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9nZW0uYwppbmRleCA4NzRiMjk2Li45M2NmOGI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9nZW0uYwpAQCAtMiwxMiArMiwxNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBSdXNzZWxsIEtpbmcKICAqLworCiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvbW1hbi5oPgogI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CisKKyNpbmNsdWRlIDxkcm0vYXJtYWRhX2RybS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4KKwogI2luY2x1ZGUgImFybWFkYV9kcm0uaCIKICNpbmNsdWRlICJhcm1hZGFfZ2VtLmgiCi0jaW5jbHVkZSA8ZHJtL2FybWFkYV9kcm0uaD4KICNpbmNsdWRlICJhcm1hZGFfaW9jdGxQLmgiCiAKIHN0YXRpYyB2bV9mYXVsdF90IGFybWFkYV9nZW1fdm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCkBAIC00ODIsOCArNDg3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyBhcm1hZGFfZ2VtX3ByaW1lX2RtYWJ1Zl9vcHMgPSB7CiB9OwogCiBzdHJ1Y3QgZG1hX2J1ZiAqCi1hcm1hZGFfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKLQlpbnQgZmxhZ3MpCithcm1hZGFfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKQogewogCURFRklORV9ETUFfQlVGX0VYUE9SVF9JTkZPKGV4cF9pbmZvKTsKIApAQCAtNDkyLDcgKzQ5Niw3IEBAIGFybWFkYV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCWV4cF9pbmZvLmZsYWdzID0gT19SRFdSOwogCWV4cF9pbmZvLnByaXYgPSBvYmo7CiAKLQlyZXR1cm4gZHJtX2dlbV9kbWFidWZfZXhwb3J0KGRldiwgJmV4cF9pbmZvKTsKKwlyZXR1cm4gZHJtX2dlbV9kbWFidWZfZXhwb3J0KG9iai0+ZGV2LCAmZXhwX2luZm8pOwogfQogCiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9nZW0uaAppbmRleCAxZGQ4MDU0Li5kZTA0Y2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9nZW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9nZW0uaApAQCAtMzIsOCArMzIsNyBAQCBzdHJ1Y3QgYXJtYWRhX2dlbV9vYmplY3QgKmFybWFkYV9nZW1fYWxsb2NfcHJpdmF0ZV9vYmplY3Qoc3RydWN0IGRybV9kZXZpY2UgKiwKIAlzaXplX3QpOwogaW50IGFybWFkYV9nZW1fZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICosIHN0cnVjdCBkcm1fZGV2aWNlICosCiAJc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICopOwotc3RydWN0IGRtYV9idWYgKmFybWFkYV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBmbGFncyk7CitzdHJ1Y3QgZG1hX2J1ZiAqYXJtYWRhX2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBmbGFncyk7CiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmFybWFkYV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNlICosCiAJc3RydWN0IGRtYV9idWYgKik7CiBpbnQgYXJtYWRhX2dlbV9tYXBfaW1wb3J0KHN0cnVjdCBhcm1hZGFfZ2VtX29iamVjdCAqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX292ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX292ZXJsYXkuYwppbmRleCBlODA2MDIxLi4wN2YwZGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfb3ZlcmxheS5jCkBAIC0zLDEyICszLDE0IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUnVzc2VsbCBLaW5nCiAgKiAgUmV3cml0dGVuIGZyb20gdGhlIGRvdmVmYiBkcml2ZXIsIGFuZCBBcm1hZGE1MTAgbWFudWFscy4KICAqLwotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY191YXBpLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KKwogI2luY2x1ZGUgPGRybS9hcm1hZGFfZHJtLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY191YXBpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorCiAjaW5jbHVkZSAiYXJtYWRhX2NydGMuaCIKICNpbmNsdWRlICJhcm1hZGFfZHJtLmgiCiAjaW5jbHVkZSAiYXJtYWRhX2ZiLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfcGxhbmUuYwppbmRleCBmMDhiNGYzLi5lN2NjMmIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX3BsYW5lLmMKQEAgLTMsMTAgKzMsMTIgQEAKICAqIENvcHlyaWdodCAoQykgMjAxMiBSdXNzZWxsIEtpbmcKICAqICBSZXdyaXR0ZW4gZnJvbSB0aGUgZG92ZWZiIGRyaXZlciwgYW5kIEFybWFkYTUxMCBtYW51YWxzLgogICovCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorCiAjaW5jbHVkZSAiYXJtYWRhX2NydGMuaCIKICNpbmNsdWRlICJhcm1hZGFfZHJtLmgiCiAjaW5jbHVkZSAiYXJtYWRhX2ZiLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfdHJhY2UuaAppbmRleCBmMDNhNTZiLi41MjhmMjBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV90cmFjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX3RyYWNlLmgKQEAgLTMsNyArMywxMCBAQAogI2RlZmluZSBBUk1BREFfVFJBQ0VfSAogCiAjaW5jbHVkZSA8bGludXgvdHJhY2Vwb2ludC5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisKK3N0cnVjdCBkcm1fY3J0YzsKK3N0cnVjdCBkcm1fZnJhbWVidWZmZXI7CitzdHJ1Y3QgZHJtX3BsYW5lOwogCiAjdW5kZWYgVFJBQ0VfU1lTVEVNCiAjZGVmaW5lIFRSQUNFX1NZU1RFTSBhcm1hZGEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3BlZWQvYXNwZWVkX2dmeF9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL2FzcGVlZF9nZnhfY3J0Yy5jCmluZGV4IDE1ZGI5ZTQuLjIxODRiOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3BlZWQvYXNwZWVkX2dmeF9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9hc3BlZWRfZ2Z4X2NydGMuYwpAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyB2b2lkIGFzcGVlZF9nZnhfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlKQogCXdyaXRlbChyZWcgfCBDUlRfQ1RSTF9WRVJUSUNBTF9JTlRSX1NUUywgcHJpdi0+YmFzZSArIENSVF9DVFJMMSk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgYXNwZWVkX2dmeF9mdW5jcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgYXNwZWVkX2dmeF9mdW5jcyA9IHsKIAkuZW5hYmxlCQk9IGFzcGVlZF9nZnhfcGlwZV9lbmFibGUsCiAJLmRpc2FibGUJPSBhc3BlZWRfZ2Z4X3BpcGVfZGlzYWJsZSwKIAkudXBkYXRlCQk9IGFzcGVlZF9nZnhfcGlwZV91cGRhdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL2FzcGVlZF9nZnhfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL2FzcGVlZF9nZnhfZHJ2LmMKaW5kZXggZWViMjJlYy4uYWRhMmY2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9hc3BlZWRfZ2Z4X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3BlZWQvYXNwZWVkX2dmeF9kcnYuYwpAQCAtMTk0LDggKzE5NCw3IEBAIHN0YXRpYyB2b2lkIGFzcGVlZF9nZnhfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCiBERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhmb3BzKTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGFzcGVlZF9nZnhfZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgICAgICAgID0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwKLQkJCQlEUklWRVJfUFJJTUUgfCBEUklWRVJfQVRPTUlDLAorCS5kcml2ZXJfZmVhdHVyZXMgICAgICAgID0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQywKIAkuZ2VtX2NyZWF0ZV9vYmplY3QJPSBkcm1fY21hX2dlbV9jcmVhdGVfb2JqZWN0X2RlZmF1bHRfZnVuY3MsCiAJLmR1bWJfY3JlYXRlCQk9IGRybV9nZW1fY21hX2R1bWJfY3JlYXRlLAogCS5wcmltZV9oYW5kbGVfdG9fZmQJPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L01ha2VmaWxlCmluZGV4IGIwODZkYWUuLjU2MWY3YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9NYWtlZmlsZQpAQCAtMyw2ICszLDYgQEAKICMgTWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZQogIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KIAotYXN0LXkgOj0gYXN0X2Rydi5vIGFzdF9tYWluLm8gYXN0X21vZGUubyBhc3RfZmIubyBhc3RfdHRtLm8gYXN0X3Bvc3QubyBhc3RfZHA1MDEubworYXN0LXkgOj0gYXN0X2Rydi5vIGFzdF9tYWluLm8gYXN0X21vZGUubyBhc3RfdHRtLm8gYXN0X3Bvc3QubyBhc3RfZHA1MDEubwogCiBvYmotJChDT05GSUdfRFJNX0FTVCkgOj0gYXN0Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2RwNTAxLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcDUwMS5jCmluZGV4IDRjNzM3NWIuLjk4Y2Q2OTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2RwNTAxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHA1MDEuYwpAQCAtMSw4ICsxLDExIEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisKICNpbmNsdWRlICJhc3RfZHJ2LmgiCisKIE1PRFVMRV9GSVJNV0FSRSgiYXN0X2RwNTAxX2Z3LmJpbiIpOwogCiBzdGF0aWMgaW50IGFzdF9sb2FkX2RwNTAxX21pY3JvY29kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuYwppbmRleCAzODExOTk3Li42ZWQ2ZmY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuYwpAQCAtMjUsMTIgKzI1LDE3IEBACiAvKgogICogQXV0aG9yczogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KICAqLwotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BjaS5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92cmFtX21tX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiYXN0X2Rydi5oIgogCkBAIC0xMDAsMjggKzEwNSwyMSBAQCBhc3RfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHN0YXRpYyBpbnQgYXN0X2RybV9mcmVlemUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlkcm1fa21zX2hlbHBlcl9wb2xsX2Rpc2FibGUoZGV2KTsKLQogCXBjaV9zYXZlX3N0YXRlKGRldi0+cGRldik7CisJZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZChkZXYtPmZiX2hlbHBlciwgdHJ1ZSk7CiAKLQljb25zb2xlX2xvY2soKTsKLQlhc3RfZmJkZXZfc2V0X3N1c3BlbmQoZGV2LCAxKTsKLQljb25zb2xlX3VubG9jaygpOwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGFzdF9kcm1fdGhhdyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewotCWludCBlcnJvciA9IDA7Ci0KIAlhc3RfcG9zdF9ncHUoZGV2KTsKIAogCWRybV9tb2RlX2NvbmZpZ19yZXNldChkZXYpOwogCWRybV9oZWxwZXJfcmVzdW1lX2ZvcmNlX21vZGUoZGV2KTsKKwlkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkKGRldi0+ZmJfaGVscGVyLCBmYWxzZSk7CiAKLQljb25zb2xlX2xvY2soKTsKLQlhc3RfZmJkZXZfc2V0X3N1c3BlbmQoZGV2LCAwKTsKLQljb25zb2xlX3VubG9jaygpOwotCXJldHVybiBlcnJvcjsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBhc3RfZHJtX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaAppbmRleCA2ODRlMTVlLi4yNDRjYzdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaApAQCAtMjgsMTcgKzI4LDE4IEBACiAjaWZuZGVmIF9fQVNUX0RSVl9IX18KICNkZWZpbmUgX19BU1RfRFJWX0hfXwogCi0jaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KLQotI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaD4KLQotI2luY2x1ZGUgPGRybS9kcm1fdnJhbV9tbV9oZWxwZXIuaD4KLQorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMtYWxnby1iaXQuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fY29ubmVjdG9yLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2RlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mcmFtZWJ1ZmZlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisKICNkZWZpbmUgRFJJVkVSX0FVVEhPUgkJIkRhdmUgQWlybGllIgogCiAjZGVmaW5lIERSSVZFUl9OQU1FCQkiYXN0IgpAQCAtODEsOCArODIsNiBAQCBlbnVtIGFzdF90eF9jaGlwIHsKICNkZWZpbmUgQVNUX0RSQU1fNEd4MTYgICA3CiAjZGVmaW5lIEFTVF9EUkFNXzhHeDE2ICAgOAogCi1zdHJ1Y3QgYXN0X2ZiZGV2OwotCiBzdHJ1Y3QgYXN0X3ByaXZhdGUgewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CiAKQEAgLTk2LDggKzk1LDYgQEAgc3RydWN0IGFzdF9wcml2YXRlIHsKIAl1aW50MzJfdCBtY2xrOwogCXVpbnQzMl90IHZyYW1fc2l6ZTsKIAotCXN0cnVjdCBhc3RfZmJkZXYgKmZiZGV2OwotCiAJaW50IGZiX210cnI7CiAKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmN1cnNvcl9jYWNoZTsKQEAgLTIzOSwyNCArMjM2LDkgQEAgc3RydWN0IGFzdF9lbmNvZGVyIHsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgYmFzZTsKIH07CiAKLXN0cnVjdCBhc3RfZnJhbWVidWZmZXIgewotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgYmFzZTsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKLX07Ci0KLXN0cnVjdCBhc3RfZmJkZXYgewotCXN0cnVjdCBkcm1fZmJfaGVscGVyIGhlbHBlcjsgLyogbXVzdCBiZSBmaXJzdCAqLwotCXN0cnVjdCBhc3RfZnJhbWVidWZmZXIgYWZiOwotCXZvaWQgKnN5c3JhbTsKLQlpbnQgc2l6ZTsKLQlpbnQgeDEsIHkxLCB4MiwgeTI7IC8qIGRpcnR5IHJlY3QgKi8KLQlzcGlubG9ja190IGRpcnR5X2xvY2s7Ci19OwotCiAjZGVmaW5lIHRvX2FzdF9jcnRjKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgYXN0X2NydGMsIGJhc2UpCiAjZGVmaW5lIHRvX2FzdF9jb25uZWN0b3IoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBhc3RfY29ubmVjdG9yLCBiYXNlKQogI2RlZmluZSB0b19hc3RfZW5jb2Rlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGFzdF9lbmNvZGVyLCBiYXNlKQotI2RlZmluZSB0b19hc3RfZnJhbWVidWZmZXIoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBhc3RfZnJhbWVidWZmZXIsIGJhc2UpCiAKIHN0cnVjdCBhc3RfdmJpb3Nfc3RkdGFibGUgewogCXU4IG1pc2M7CkBAIC0yOTYsMTYgKzI3OCw2IEBAIHN0cnVjdCBhc3RfdmJpb3NfbW9kZV9pbmZvIHsKIGV4dGVybiBpbnQgYXN0X21vZGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiB2b2lkIGFzdF9tb2RlX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKLWludCBhc3RfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJIHN0cnVjdCBhc3RfZnJhbWVidWZmZXIgKmFzdF9mYiwKLQkJCSBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCi0JCQkgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwotCi1pbnQgYXN0X2ZiZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci12b2lkIGFzdF9mYmRldl9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotdm9pZCBhc3RfZmJkZXZfc2V0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0YXRlKTsKLXZvaWQgYXN0X2ZiZGV2X3NldF9iYXNlKHN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0LCB1bnNpZ25lZCBsb25nIGdwdV9hZGRyKTsKLQogI2RlZmluZSBBU1RfTU1fQUxJR05fU0hJRlQgNAogI2RlZmluZSBBU1RfTU1fQUxJR05fTUFTSyAoKDEgPDwgQVNUX01NX0FMSUdOX1NISUZUKSAtIDEpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9mYi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjAwYjI1Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAyMDEyIFJlZCBIYXQgSW5jLgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0gKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0gKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0gKiBkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBDT1BZUklHSFQgSE9MREVSUywgQVVUSE9SUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKLSAqIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgotICogT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRQotICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQotICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKLSAqIG9mIHRoZSBTb2Z0d2FyZS4KLSAqCi0gKi8KLS8qCi0gKiBBdXRob3JzOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgotICovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c3JxLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0KLQotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3V0aWwuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Ci0KLSNpbmNsdWRlICJhc3RfZHJ2LmgiCi0KLXN0YXRpYyB2b2lkIGFzdF9kaXJ0eV91cGRhdGUoc3RydWN0IGFzdF9mYmRldiAqYWZiZGV2LAotCQkJICAgICBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkKLXsKLQlpbnQgaTsKLQlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvOwotCWludCBzcmNfb2Zmc2V0LCBkc3Rfb2Zmc2V0OwotCWludCBicHAgPSBhZmJkZXYtPmFmYi5iYXNlLmZvcm1hdC0+Y3BwWzBdOwotCWludCByZXQ7Ci0JdTggKmRzdDsKLQlib29sIHVubWFwID0gZmFsc2U7Ci0JYm9vbCBzdG9yZV9mb3JfbGF0ZXIgPSBmYWxzZTsKLQlpbnQgeDIsIHkyOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGFmYmRldi0+YWZiLm9iaik7Ci0KLQlpZiAoZHJtX2Nhbl9zbGVlcCgpKSB7Ci0JCS8qIFdlIHBpbiB0aGUgQk8gc28gaXQgd29uJ3QgYmUgbW92ZWQgZHVyaW5nIHRoZQotCQkgKiB1cGRhdGUuIFRoZSBhY3R1YWwgbG9jYXRpb24sIHZpZGVvIFJBTSBvciBzeXN0ZW0KLQkJICogbWVtb3J5LCBpcyBub3QgaW1wb3J0YW50LgotCQkgKi8KLQkJcmV0ID0gZHJtX2dlbV92cmFtX3BpbihnYm8sIDApOwotCQlpZiAocmV0KSB7Ci0JCQlpZiAocmV0ICE9IC1FQlVTWSkKLQkJCQlyZXR1cm47Ci0JCQlzdG9yZV9mb3JfbGF0ZXIgPSB0cnVlOwotCQl9Ci0JfSBlbHNlIHsKLQkJc3RvcmVfZm9yX2xhdGVyID0gdHJ1ZTsKLQl9Ci0KLQl4MiA9IHggKyB3aWR0aCAtIDE7Ci0JeTIgPSB5ICsgaGVpZ2h0IC0gMTsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmYWZiZGV2LT5kaXJ0eV9sb2NrLCBmbGFncyk7Ci0KLQlpZiAoYWZiZGV2LT55MSA8IHkpCi0JCXkgPSBhZmJkZXYtPnkxOwotCWlmIChhZmJkZXYtPnkyID4geTIpCi0JCXkyID0gYWZiZGV2LT55MjsKLQlpZiAoYWZiZGV2LT54MSA8IHgpCi0JCXggPSBhZmJkZXYtPngxOwotCWlmIChhZmJkZXYtPngyID4geDIpCi0JCXgyID0gYWZiZGV2LT54MjsKLQotCWlmIChzdG9yZV9mb3JfbGF0ZXIpIHsKLQkJYWZiZGV2LT54MSA9IHg7Ci0JCWFmYmRldi0+eDIgPSB4MjsKLQkJYWZiZGV2LT55MSA9IHk7Ci0JCWFmYmRldi0+eTIgPSB5MjsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWZiZGV2LT5kaXJ0eV9sb2NrLCBmbGFncyk7Ci0JCXJldHVybjsKLQl9Ci0KLQlhZmJkZXYtPngxID0gYWZiZGV2LT55MSA9IElOVF9NQVg7Ci0JYWZiZGV2LT54MiA9IGFmYmRldi0+eTIgPSAwOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFmYmRldi0+ZGlydHlfbG9jaywgZmxhZ3MpOwotCi0JZHN0ID0gZHJtX2dlbV92cmFtX2ttYXAoZ2JvLCBmYWxzZSwgTlVMTCk7Ci0JaWYgKElTX0VSUihkc3QpKSB7Ci0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGttYXAgZmIgdXBkYXRlc1xuIik7Ci0JCWdvdG8gb3V0OwotCX0gZWxzZSBpZiAoIWRzdCkgewotCQlkc3QgPSBkcm1fZ2VtX3ZyYW1fa21hcChnYm8sIHRydWUsIE5VTEwpOwotCQlpZiAoSVNfRVJSKGRzdCkpIHsKLQkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGttYXAgZmIgdXBkYXRlc1xuIik7Ci0JCQlnb3RvIG91dDsKLQkJfQotCQl1bm1hcCA9IHRydWU7Ci0JfQotCi0JZm9yIChpID0geTsgaSA8PSB5MjsgaSsrKSB7Ci0JCS8qIGFzc3VtZSBlcXVhbCBzdHJpZGUgZm9yIG5vdyAqLwotCQlzcmNfb2Zmc2V0ID0gZHN0X29mZnNldCA9Ci0JCQlpICogYWZiZGV2LT5hZmIuYmFzZS5waXRjaGVzWzBdICsgKHggKiBicHApOwotCQltZW1jcHlfdG9pbyhkc3QgKyBkc3Rfb2Zmc2V0LCBhZmJkZXYtPnN5c3JhbSArIHNyY19vZmZzZXQsCi0JCQkgICAgKHgyIC0geCArIDEpICogYnBwKTsKLQl9Ci0KLQlpZiAodW5tYXApCi0JCWRybV9nZW1fdnJhbV9rdW5tYXAoZ2JvKTsKLQotb3V0OgotCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwotfQotCi1zdGF0aWMgdm9pZCBhc3RfZmlsbHJlY3Qoc3RydWN0IGZiX2luZm8gKmluZm8sCi0JCQkgY29uc3Qgc3RydWN0IGZiX2ZpbGxyZWN0ICpyZWN0KQotewotCXN0cnVjdCBhc3RfZmJkZXYgKmFmYmRldiA9IGluZm8tPnBhcjsKLQlkcm1fZmJfaGVscGVyX3N5c19maWxscmVjdChpbmZvLCByZWN0KTsKLQlhc3RfZGlydHlfdXBkYXRlKGFmYmRldiwgcmVjdC0+ZHgsIHJlY3QtPmR5LCByZWN0LT53aWR0aCwKLQkJCSByZWN0LT5oZWlnaHQpOwotfQotCi1zdGF0aWMgdm9pZCBhc3RfY29weWFyZWEoc3RydWN0IGZiX2luZm8gKmluZm8sCi0JCQkgY29uc3Qgc3RydWN0IGZiX2NvcHlhcmVhICphcmVhKQotewotCXN0cnVjdCBhc3RfZmJkZXYgKmFmYmRldiA9IGluZm8tPnBhcjsKLQlkcm1fZmJfaGVscGVyX3N5c19jb3B5YXJlYShpbmZvLCBhcmVhKTsKLQlhc3RfZGlydHlfdXBkYXRlKGFmYmRldiwgYXJlYS0+ZHgsIGFyZWEtPmR5LCBhcmVhLT53aWR0aCwKLQkJCSBhcmVhLT5oZWlnaHQpOwotfQotCi1zdGF0aWMgdm9pZCBhc3RfaW1hZ2VibGl0KHN0cnVjdCBmYl9pbmZvICppbmZvLAotCQkJICBjb25zdCBzdHJ1Y3QgZmJfaW1hZ2UgKmltYWdlKQotewotCXN0cnVjdCBhc3RfZmJkZXYgKmFmYmRldiA9IGluZm8tPnBhcjsKLQlkcm1fZmJfaGVscGVyX3N5c19pbWFnZWJsaXQoaW5mbywgaW1hZ2UpOwotCWFzdF9kaXJ0eV91cGRhdGUoYWZiZGV2LCBpbWFnZS0+ZHgsIGltYWdlLT5keSwgaW1hZ2UtPndpZHRoLAotCQkJIGltYWdlLT5oZWlnaHQpOwotfQotCi1zdGF0aWMgc3RydWN0IGZiX29wcyBhc3RmYl9vcHMgPSB7Ci0JLm93bmVyID0gVEhJU19NT0RVTEUsCi0JLmZiX2NoZWNrX3ZhciA9IGRybV9mYl9oZWxwZXJfY2hlY2tfdmFyLAotCS5mYl9zZXRfcGFyID0gZHJtX2ZiX2hlbHBlcl9zZXRfcGFyLAotCS5mYl9maWxscmVjdCA9IGFzdF9maWxscmVjdCwKLQkuZmJfY29weWFyZWEgPSBhc3RfY29weWFyZWEsCi0JLmZiX2ltYWdlYmxpdCA9IGFzdF9pbWFnZWJsaXQsCi0JLmZiX3Bhbl9kaXNwbGF5ID0gZHJtX2ZiX2hlbHBlcl9wYW5fZGlzcGxheSwKLQkuZmJfYmxhbmsgPSBkcm1fZmJfaGVscGVyX2JsYW5rLAotCS5mYl9zZXRjbWFwID0gZHJtX2ZiX2hlbHBlcl9zZXRjbWFwLAotfTsKLQotc3RhdGljIGludCBhc3RmYl9jcmVhdGVfb2JqZWN0KHN0cnVjdCBhc3RfZmJkZXYgKmFmYmRldiwKLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCi0JCQkgICAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqZ29ial9wKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBhZmJkZXYtPmhlbHBlci5kZXY7Ci0JdTMyIHNpemU7Ci0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqOwotCWludCByZXQgPSAwOwotCi0Jc2l6ZSA9IG1vZGVfY21kLT5waXRjaGVzWzBdICogbW9kZV9jbWQtPmhlaWdodDsKLQlyZXQgPSBhc3RfZ2VtX2NyZWF0ZShkZXYsIHNpemUsIHRydWUsICZnb2JqKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JKmdvYmpfcCA9IGdvYmo7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBhc3RmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKLQkJCXN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpCi17Ci0Jc3RydWN0IGFzdF9mYmRldiAqYWZiZGV2ID0KLQkJY29udGFpbmVyX29mKGhlbHBlciwgc3RydWN0IGFzdF9mYmRldiwgaGVscGVyKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYWZiZGV2LT5oZWxwZXIuZGV2OwotCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIG1vZGVfY21kOwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwotCXN0cnVjdCBmYl9pbmZvICppbmZvOwotCWludCBzaXplLCByZXQ7Ci0Jdm9pZCAqc3lzcmFtOwotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaiA9IE5VTEw7Ci0JbW9kZV9jbWQud2lkdGggPSBzaXplcy0+c3VyZmFjZV93aWR0aDsKLQltb2RlX2NtZC5oZWlnaHQgPSBzaXplcy0+c3VyZmFjZV9oZWlnaHQ7Ci0JbW9kZV9jbWQucGl0Y2hlc1swXSA9IG1vZGVfY21kLndpZHRoICogKChzaXplcy0+c3VyZmFjZV9icHAgKyA3KS84KTsKLQotCW1vZGVfY21kLnBpeGVsX2Zvcm1hdCA9IGRybV9tb2RlX2xlZ2FjeV9mYl9mb3JtYXQoc2l6ZXMtPnN1cmZhY2VfYnBwLAotCQkJCQkJCSAgc2l6ZXMtPnN1cmZhY2VfZGVwdGgpOwotCi0Jc2l6ZSA9IG1vZGVfY21kLnBpdGNoZXNbMF0gKiBtb2RlX2NtZC5oZWlnaHQ7Ci0KLQlyZXQgPSBhc3RmYl9jcmVhdGVfb2JqZWN0KGFmYmRldiwgJm1vZGVfY21kLCAmZ29iaik7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoImZhaWxlZCB0byBjcmVhdGUgZmJjb24gYmFja2luZyBvYmplY3QgJWRcbiIsIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0Jc3lzcmFtID0gdm1hbGxvYyhzaXplKTsKLQlpZiAoIXN5c3JhbSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlpbmZvID0gZHJtX2ZiX2hlbHBlcl9hbGxvY19mYmkoaGVscGVyKTsKLQlpZiAoSVNfRVJSKGluZm8pKSB7Ci0JCXJldCA9IFBUUl9FUlIoaW5mbyk7Ci0JCWdvdG8gb3V0OwotCX0KLQlyZXQgPSBhc3RfZnJhbWVidWZmZXJfaW5pdChkZXYsICZhZmJkZXYtPmFmYiwgJm1vZGVfY21kLCBnb2JqKTsKLQlpZiAocmV0KQotCQlnb3RvIG91dDsKLQotCWFmYmRldi0+c3lzcmFtID0gc3lzcmFtOwotCWFmYmRldi0+c2l6ZSA9IHNpemU7Ci0KLQlmYiA9ICZhZmJkZXYtPmFmYi5iYXNlOwotCWFmYmRldi0+aGVscGVyLmZiID0gZmI7Ci0KLQlpbmZvLT5mYm9wcyA9ICZhc3RmYl9vcHM7Ci0KLQlpbmZvLT5hcGVydHVyZXMtPnJhbmdlc1swXS5iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KGRldi0+cGRldiwgMCk7Ci0JaW5mby0+YXBlcnR1cmVzLT5yYW5nZXNbMF0uc2l6ZSA9IHBjaV9yZXNvdXJjZV9sZW4oZGV2LT5wZGV2LCAwKTsKLQotCWRybV9mYl9oZWxwZXJfZmlsbF9pbmZvKGluZm8sICZhZmJkZXYtPmhlbHBlciwgc2l6ZXMpOwotCi0JaW5mby0+c2NyZWVuX2Jhc2UgPSBzeXNyYW07Ci0JaW5mby0+c2NyZWVuX3NpemUgPSBzaXplOwotCi0JaW5mby0+cGl4bWFwLmZsYWdzID0gRkJfUElYTUFQX1NZU1RFTTsKLQotCURSTV9ERUJVR19LTVMoImFsbG9jYXRlZCAlZHglZFxuIiwKLQkJICAgICAgZmItPndpZHRoLCBmYi0+aGVpZ2h0KTsKLQotCXJldHVybiAwOwotCi1vdXQ6Ci0JdmZyZWUoc3lzcmFtKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3MgYXN0X2ZiX2hlbHBlcl9mdW5jcyA9IHsKLQkuZmJfcHJvYmUgPSBhc3RmYl9jcmVhdGUsCi19OwotCi1zdGF0aWMgdm9pZCBhc3RfZmJkZXZfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJICAgICAgc3RydWN0IGFzdF9mYmRldiAqYWZiZGV2KQotewotCXN0cnVjdCBhc3RfZnJhbWVidWZmZXIgKmFmYiA9ICZhZmJkZXYtPmFmYjsKLQotCWRybV9oZWxwZXJfZm9yY2VfZGlzYWJsZV9hbGwoZGV2KTsKLQlkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfZmJpKCZhZmJkZXYtPmhlbHBlcik7Ci0KLQlpZiAoYWZiLT5vYmopIHsKLQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGFmYi0+b2JqKTsKLQkJYWZiLT5vYmogPSBOVUxMOwotCX0KLQlkcm1fZmJfaGVscGVyX2ZpbmkoJmFmYmRldi0+aGVscGVyKTsKLQotCXZmcmVlKGFmYmRldi0+c3lzcmFtKTsKLQlkcm1fZnJhbWVidWZmZXJfdW5yZWdpc3Rlcl9wcml2YXRlKCZhZmItPmJhc2UpOwotCWRybV9mcmFtZWJ1ZmZlcl9jbGVhbnVwKCZhZmItPmJhc2UpOwotfQotCi1pbnQgYXN0X2ZiZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGFzdF9mYmRldiAqYWZiZGV2OwotCWludCByZXQ7Ci0KLQlhZmJkZXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYXN0X2ZiZGV2KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFhZmJkZXYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JYXN0LT5mYmRldiA9IGFmYmRldjsKLQlzcGluX2xvY2tfaW5pdCgmYWZiZGV2LT5kaXJ0eV9sb2NrKTsKLQotCWRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsICZhZmJkZXYtPmhlbHBlciwgJmFzdF9mYl9oZWxwZXJfZnVuY3MpOwotCi0JcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0KGRldiwgJmFmYmRldi0+aGVscGVyLCAxKTsKLQlpZiAocmV0KQotCQlnb3RvIGZyZWU7Ci0KLQlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoJmFmYmRldi0+aGVscGVyKTsKLQlpZiAocmV0KQotCQlnb3RvIGZpbmk7Ci0KLQkvKiBkaXNhYmxlIGFsbCB0aGUgcG9zc2libGUgb3V0cHV0cy9jcnRjcyBiZWZvcmUgZW50ZXJpbmcgS01TIG1vZGUgKi8KLQlkcm1faGVscGVyX2Rpc2FibGVfdW51c2VkX2Z1bmN0aW9ucyhkZXYpOwotCi0JcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmYWZiZGV2LT5oZWxwZXIsIDMyKTsKLQlpZiAocmV0KQotCQlnb3RvIGZpbmk7Ci0KLQlyZXR1cm4gMDsKLQotZmluaToKLQlkcm1fZmJfaGVscGVyX2ZpbmkoJmFmYmRldi0+aGVscGVyKTsKLWZyZWU6Ci0Ja2ZyZWUoYWZiZGV2KTsKLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIGFzdF9mYmRldl9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGFzdF9wcml2YXRlICphc3QgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JaWYgKCFhc3QtPmZiZGV2KQotCQlyZXR1cm47Ci0KLQlhc3RfZmJkZXZfZGVzdHJveShkZXYsIGFzdC0+ZmJkZXYpOwotCWtmcmVlKGFzdC0+ZmJkZXYpOwotCWFzdC0+ZmJkZXYgPSBOVUxMOwotfQotCi12b2lkIGFzdF9mYmRldl9zZXRfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc3RhdGUpCi17Ci0Jc3RydWN0IGFzdF9wcml2YXRlICphc3QgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JaWYgKCFhc3QtPmZiZGV2KQotCQlyZXR1cm47Ci0KLQlkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKCZhc3QtPmZiZGV2LT5oZWxwZXIsIHN0YXRlKTsKLX0KLQotdm9pZCBhc3RfZmJkZXZfc2V0X2Jhc2Uoc3RydWN0IGFzdF9wcml2YXRlICphc3QsIHVuc2lnbmVkIGxvbmcgZ3B1X2FkZHIpCi17Ci0JYXN0LT5mYmRldi0+aGVscGVyLmZiZGV2LT5maXguc21lbV9zdGFydCA9Ci0JCWFzdC0+ZmJkZXYtPmhlbHBlci5mYmRldi0+YXBlcnR1cmVzLT5yYW5nZXNbMF0uYmFzZSArIGdwdV9hZGRyOwotCWFzdC0+ZmJkZXYtPmhlbHBlci5mYmRldi0+Zml4LnNtZW1fbGVuID0gYXN0LT52cmFtX3NpemUgLSBncHVfYWRkcjsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21haW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21haW4uYwppbmRleCBhNWQxNDk0Li41MGRlOGU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbWFpbi5jCkBAIC0yNSwxMiArMjUsMTcgQEAKIC8qCiAgKiBBdXRob3JzOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgogICovCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlICJhc3RfZHJ2LmgiCiAKKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdnJhbV9tbV9oZWxwZXIuaD4KKworI2luY2x1ZGUgImFzdF9kcnYuaCIKIAogdm9pZCBhc3Rfc2V0X2luZGV4X3JlZ19tYXNrKHN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0LAogCQkJICAgIHVpbnQzMl90IGJhc2UsIHVpbnQ4X3QgaW5kZXgsCkBAIC0zODMsNjcgKzM4OCw4IEBAIHN0YXRpYyBpbnQgYXN0X2dldF9kcmFtX2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgYXN0X3VzZXJfZnJhbWVidWZmZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKLXsKLQlzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyICphc3RfZmIgPSB0b19hc3RfZnJhbWVidWZmZXIoZmIpOwotCi0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGFzdF9mYi0+b2JqKTsKLQlkcm1fZnJhbWVidWZmZXJfY2xlYW51cChmYik7Ci0Ja2ZyZWUoYXN0X2ZiKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgYXN0X2ZiX2Z1bmNzID0gewotCS5kZXN0cm95ID0gYXN0X3VzZXJfZnJhbWVidWZmZXJfZGVzdHJveSwKLX07Ci0KLQotaW50IGFzdF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkgc3RydWN0IGFzdF9mcmFtZWJ1ZmZlciAqYXN0X2ZiLAotCQkJIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCwKLQkJCSBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKLXsKLQlpbnQgcmV0OwotCi0JZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJfc3RydWN0KGRldiwgJmFzdF9mYi0+YmFzZSwgbW9kZV9jbWQpOwotCWFzdF9mYi0+b2JqID0gb2JqOwotCXJldCA9IGRybV9mcmFtZWJ1ZmZlcl9pbml0KGRldiwgJmFzdF9mYi0+YmFzZSwgJmFzdF9mYl9mdW5jcyk7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoImZyYW1lYnVmZmVyIGluaXQgZmFpbGVkICVkXG4iLCByZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKgotYXN0X3VzZXJfZnJhbWVidWZmZXJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlscCwKLQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kKQotewotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBhc3RfZnJhbWVidWZmZXIgKmFzdF9mYjsKLQlpbnQgcmV0OwotCi0Jb2JqID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGZpbHAsIG1vZGVfY21kLT5oYW5kbGVzWzBdKTsKLQlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwotCi0JYXN0X2ZiID0ga3phbGxvYyhzaXplb2YoKmFzdF9mYiksIEdGUF9LRVJORUwpOwotCWlmICghYXN0X2ZiKSB7Ci0JCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOwotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQl9Ci0KLQlyZXQgPSBhc3RfZnJhbWVidWZmZXJfaW5pdChkZXYsIGFzdF9mYiwgbW9kZV9jbWQsIG9iaik7Ci0JaWYgKHJldCkgewotCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqKTsKLQkJa2ZyZWUoYXN0X2ZiKTsKLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKLQl9Ci0JcmV0dXJuICZhc3RfZmItPmJhc2U7Ci19Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIGFzdF9tb2RlX2Z1bmNzID0gewotCS5mYl9jcmVhdGUgPSBhc3RfdXNlcl9mcmFtZWJ1ZmZlcl9jcmVhdGUsCisJLmZiX2NyZWF0ZSA9IGRybV9nZW1fZmJfY3JlYXRlCiB9OwogCiBzdGF0aWMgdTMyIGFzdF9nZXRfdnJhbV9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC01NjEsNyArNTA3LDcgQEAgaW50IGFzdF9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCWlmIChyZXQpCiAJCWdvdG8gb3V0X2ZyZWU7CiAKLQlyZXQgPSBhc3RfZmJkZXZfaW5pdChkZXYpOworCXJldCA9IGRybV9mYmRldl9nZW5lcmljX3NldHVwKGRldiwgMzIpOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0X2ZyZWU7CiAKQEAgLTU4Miw3ICs1MjgsNiBAQCB2b2lkIGFzdF9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJYXN0X3JlbGVhc2VfZmlybXdhcmUoZGV2KTsKIAlrZnJlZShhc3QtPmRwNTAxX2Z3X2FkZHIpOwogCWFzdF9tb2RlX2ZpbmkoZGV2KTsKLQlhc3RfZmJkZXZfZmluaShkZXYpOwogCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRldik7CiAKIAlhc3RfbW1fZmluaShhc3QpOwpAQCAtNjEyLDYgKzU1Nyw2IEBAIGludCBhc3RfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYWxsb2NhdGUgR0VNIG9iamVjdFxuIik7CiAJCXJldHVybiByZXQ7CiAJfQotCSpvYmogPSAmZ2JvLT5nZW07CisJKm9iaiA9ICZnYm8tPmJvLmJhc2U7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMKaW5kZXggYTFjYjAyMC4uZDM0OWM3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwpAQCAtMjcsMTQgKzI3LDE4IEBACiAvKgogICogQXV0aG9yczogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KICAqLworCiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgImFzdF9kcnYuaCIKIAorI2luY2x1ZGUgImFzdF9kcnYuaCIKICNpbmNsdWRlICJhc3RfdGFibGVzLmgiCiAKIHN0YXRpYyBzdHJ1Y3QgYXN0X2kyY19jaGFuICphc3RfaTJjX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKQEAgLTUyNSwyOCArNTI5LDE2IEBAIHN0YXRpYyBpbnQgYXN0X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCWludCB4LCBpbnQgeSwgaW50IGF0b21pYykKIHsKLQlzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGFzdF9mcmFtZWJ1ZmZlciAqYXN0X2ZiOwogCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm87CiAJaW50IHJldDsKIAlzNjQgZ3B1X2FkZHI7Ci0Jdm9pZCAqYmFzZTsKIAogCWlmICghYXRvbWljICYmIGZiKSB7Ci0JCWFzdF9mYiA9IHRvX2FzdF9mcmFtZWJ1ZmZlcihmYik7Ci0JCW9iaiA9IGFzdF9mYi0+b2JqOwotCQlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7Ci0KLQkJLyogdW5tYXAgaWYgY29uc29sZSAqLwotCQlpZiAoJmFzdC0+ZmJkZXYtPmFmYiA9PSBhc3RfZmIpCi0JCQlkcm1fZ2VtX3ZyYW1fa3VubWFwKGdibyk7CisJCWdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0oZmItPm9ialswXSk7CiAJCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwogCX0KIAotCWFzdF9mYiA9IHRvX2FzdF9mcmFtZWJ1ZmZlcihjcnRjLT5wcmltYXJ5LT5mYik7Ci0Jb2JqID0gYXN0X2ZiLT5vYmo7Ci0JZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShvYmopOworCWdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0oY3J0Yy0+cHJpbWFyeS0+ZmItPm9ialswXSk7CiAKIAlyZXQgPSBkcm1fZ2VtX3ZyYW1fcGluKGdibywgRFJNX0dFTV9WUkFNX1BMX0ZMQUdfVlJBTSk7CiAJaWYgKHJldCkKQEAgLTU1NywxNyArNTQ5LDYgQEAgc3RhdGljIGludCBhc3RfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWdvdG8gZXJyX2RybV9nZW1fdnJhbV91bnBpbjsKIAl9CiAKLQlpZiAoJmFzdC0+ZmJkZXYtPmFmYiA9PSBhc3RfZmIpIHsKLQkJLyogaWYgcHVzaGluZyBjb25zb2xlIGluIGttYXAgaXQgKi8KLQkJYmFzZSA9IGRybV9nZW1fdnJhbV9rbWFwKGdibywgdHJ1ZSwgTlVMTCk7Ci0JCWlmIChJU19FUlIoYmFzZSkpIHsKLQkJCXJldCA9IFBUUl9FUlIoYmFzZSk7Ci0JCQlEUk1fRVJST1IoImZhaWxlZCB0byBrbWFwIGZiY29uXG4iKTsKLQkJfSBlbHNlIHsKLQkJCWFzdF9mYmRldl9zZXRfYmFzZShhc3QsIGdwdV9hZGRyKTsKLQkJfQotCX0KLQogCWFzdF9zZXRfb2Zmc2V0X3JlZyhjcnRjKTsKIAlhc3Rfc2V0X3N0YXJ0X2FkZHJlc3NfY3J0MShjcnRjLCAodTMyKWdwdV9hZGRyKTsKIApAQCAtNjI0LDE0ICs2MDUsMTAgQEAgc3RhdGljIHZvaWQgYXN0X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJRFJNX0RFQlVHX0tNUygiXG4iKTsKIAlhc3RfY3J0Y19kcG1zKGNydGMsIERSTV9NT0RFX0RQTVNfT0ZGKTsKIAlpZiAoY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKLQkJc3RydWN0IGFzdF9wcml2YXRlICphc3QgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwotCQlzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyICphc3RfZmIgPSB0b19hc3RfZnJhbWVidWZmZXIoY3J0Yy0+cHJpbWFyeS0+ZmIpOwotCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGFzdF9mYi0+b2JqOwotCQlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShvYmopOworCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPnByaW1hcnktPmZiOworCQlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0KKwkJCWRybV9nZW1fdnJhbV9vZl9nZW0oZmItPm9ialswXSk7CiAKLQkJLyogdW5tYXAgaWYgY29uc29sZSAqLwotCQlpZiAoJmFzdC0+ZmJkZXYtPmFmYiA9PSBhc3RfZmIpCi0JCQlkcm1fZ2VtX3ZyYW1fa3VubWFwKGdibyk7CiAJCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwogCX0KIAljcnRjLT5wcmltYXJ5LT5mYiA9IE5VTEw7CkBAIC04OTAsNyArODY3LDE0IEBAIHN0YXRpYyBpbnQgYXN0X2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJY29ubmVjdG9yID0gJmFzdF9jb25uZWN0b3ItPmJhc2U7Ci0JZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwgY29ubmVjdG9yLCAmYXN0X2Nvbm5lY3Rvcl9mdW5jcywgRFJNX01PREVfQ09OTkVDVE9SX1ZHQSk7CisJYXN0X2Nvbm5lY3Rvci0+aTJjID0gYXN0X2kyY19jcmVhdGUoZGV2KTsKKwlpZiAoIWFzdF9jb25uZWN0b3ItPmkyYykKKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYWRkIGRkYyBidXMgZm9yIGNvbm5lY3RvclxuIik7CisKKwlkcm1fY29ubmVjdG9yX2luaXRfd2l0aF9kZGMoZGV2LCBjb25uZWN0b3IsCisJCQkJICAgICZhc3RfY29ubmVjdG9yX2Z1bmNzLAorCQkJCSAgICBEUk1fTU9ERV9DT05ORUNUT1JfVkdBLAorCQkJCSAgICAmYXN0X2Nvbm5lY3Rvci0+aTJjLT5hZGFwdGVyKTsKIAogCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsICZhc3RfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7CiAKQEAgLTkwNCwxMCArODg4LDYgQEAgc3RhdGljIGludCBhc3RfY29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAllbmNvZGVyID0gbGlzdF9maXJzdF9lbnRyeSgmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIHN0cnVjdCBkcm1fZW5jb2RlciwgaGVhZCk7CiAJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3IsIGVuY29kZXIpOwogCi0JYXN0X2Nvbm5lY3Rvci0+aTJjID0gYXN0X2kyY19jcmVhdGUoZGV2KTsKLQlpZiAoIWFzdF9jb25uZWN0b3ItPmkyYykKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYWRkIGRkYyBidXMgZm9yIGNvbm5lY3RvclxuIik7Ci0KIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfcG9zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfcG9zdC5jCmluZGV4IGMxZDFhYzUuLjJkMWIxODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X3Bvc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9wb3N0LmMKQEAgLTI2LDEwICsyNiwxMyBAQAogICogQXV0aG9yczogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlICJhc3RfZHJ2LmgiCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIAogI2luY2x1ZGUgImFzdF9kcmFtX3RhYmxlcy5oIgorI2luY2x1ZGUgImFzdF9kcnYuaCIKIAogc3RhdGljIHZvaWQgYXN0X3Bvc3RfY2hpcF8yMzAwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogc3RhdGljIHZvaWQgYXN0X3Bvc3RfY2hpcF8yNTAwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYwppbmRleCA3NzljNTNlLi5jNTJkOTIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYwpAQCAtMjUsNyArMjUsMTIgQEAKIC8qCiAgKiBBdXRob3JzOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgogICovCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKworI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92cmFtX21tX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiYXN0X2Rydi5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXRpX3BjaWdhcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hdGlfcGNpZ2FydC5jCmluZGV4IDJhNDEzZTIuLjU4MGFhMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hdGlfcGNpZ2FydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hdGlfcGNpZ2FydC5jCkBAIC0zNSw3ICszNSw2IEBACiAKICNpbmNsdWRlIDxkcm0vYXRpX3BjaWdhcnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgotI2luY2x1ZGUgPGRybS9kcm1fb3NfbGludXguaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BjaS5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIApAQCAtMTY5LDYgKzE2OCw3IEBAIGludCBkcm1fYXRpX3BjaWdhcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhCiAJCXBhZ2VfYmFzZSA9ICh1MzIpIGVudHJ5LT5idXNhZGRyW2ldOwogCiAJCWZvciAoaiA9IDA7IGogPCAoUEFHRV9TSVpFIC8gQVRJX1BDSUdBUlRfUEFHRV9TSVpFKTsgaisrKSB7CisJCQl1MzIgb2Zmc2V0OwogCQkJdTMyIHZhbDsKIAogCQkJc3dpdGNoKGdhcnRfaW5mby0+Z2FydF9yZWdfaWYpIHsKQEAgLTE4NCwxMCArMTg0LDEyIEBAIGludCBkcm1fYXRpX3BjaWdhcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhCiAJCQkJYnJlYWs7CiAJCQl9CiAJCQlpZiAoZ2FydF9pbmZvLT5nYXJ0X3RhYmxlX2xvY2F0aW9uID09Ci0JCQkgICAgRFJNX0FUSV9HQVJUX01BSU4pCisJCQkgICAgRFJNX0FUSV9HQVJUX01BSU4pIHsKIAkJCQlwY2lfZ2FydFtnYXJ0X2lkeF0gPSBjcHVfdG9fbGUzMih2YWwpOwotCQkJZWxzZQotCQkJCURSTV9XUklURTMyKG1hcCwgZ2FydF9pZHggKiBzaXplb2YodTMyKSwgdmFsKTsKKwkJCX0gZWxzZSB7CisJCQkJb2Zmc2V0ID0gZ2FydF9pZHggKiBzaXplb2YodTMyKTsKKwkJCQl3cml0ZWwodmFsLCAodm9pZCBfX2lvbWVtICopbWFwLT5oYW5kbGUgKyBvZmZzZXQpOworCQkJfQogCQkJZ2FydF9pZHgrKzsKIAkJCXBhZ2VfYmFzZSArPSBBVElfUENJR0FSVF9QQUdFX1NJWkU7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5jCmluZGV4IDZjNmM3Y2YuLmYyZTczZTZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMKQEAgLTgsMTYgKzgsMjAgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2F0bWVsLWhsY2RjLmg+CisjaW5jbHVkZSA8bGludXgvcGluY3RybC9jb25zdW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3BtLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvY29uc3VtZXIuaD4KLQotI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KIAogI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisKICNpbmNsdWRlICJhdG1lbF9obGNkY19kYy5oIgogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19kYy5jIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2RjLmMKaW5kZXggOWJhYjZlNS4uOTI2NDAyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2RjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2RjLmMKQEAgLTExLDggKzExLDIwIEBACiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvaXJxY2hpcC5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9hdG1lbC1obGNkYy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgImF0bWVsX2hsY2RjX2RjLmgiCiAKQEAgLTgyMyw5ICs4MzUsNyBAQCBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19kY19pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhmb3BzKTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGF0bWVsX2hsY2RjX2RjX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX0dFTSB8Ci0JCQkgICBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9QUklNRSB8Ci0JCQkgICBEUklWRVJfQVRPTUlDLAorCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLAogCS5pcnFfaGFuZGxlciA9IGF0bWVsX2hsY2RjX2RjX2lycV9oYW5kbGVyLAogCS5pcnFfcHJlaW5zdGFsbCA9IGF0bWVsX2hsY2RjX2RjX2lycV91bmluc3RhbGwsCiAJLmlycV9wb3N0aW5zdGFsbCA9IGF0bWVsX2hsY2RjX2RjX2lycV9wb3N0aW5zdGFsbCwKQEAgLTgzNCw4ICs4NDQsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgYXRtZWxfaGxjZGNfZGNfZHJpdmVyID0gewogCS5nZW1fdm1fb3BzID0gJmRybV9nZW1fY21hX3ZtX29wcywKIAkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfaW1wb3J0ID0gZHJtX2dlbV9wcmltZV9pbXBvcnQsCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKIAkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX3ZtYXAgPSBkcm1fZ2VtX2NtYV9wcmltZV92bWFwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2RjLmggYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfZGMuaAppbmRleCA3MzAwZTNmLi40NjlkNDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfZGMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfZGMuaApAQCAtMTEsMjMgKzExLDkgQEAKICNpZm5kZWYgRFJNX0FUTUVMX0hMQ0RDX0gKICNkZWZpbmUgRFJNX0FUTUVMX0hMQ0RDX0gKIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgotI2luY2x1ZGUgPGxpbnV4L2RtYXBvb2wuaD4KLSNpbmNsdWRlIDxsaW51eC9pcnFkb21haW4uaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvYXRtZWwtaGxjZGMuaD4KLSNpbmNsdWRlIDxsaW51eC9wd20uaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmUuaD4KIAogI2RlZmluZSBBVE1FTF9ITENEQ19MQVlFUl9DSEVSCQkJMHgwCiAjZGVmaW5lIEFUTUVMX0hMQ0RDX0xBWUVSX0NIRFIJCQkweDQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19vdXRwdXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19vdXRwdXQuYwppbmRleCA3ZTA4MzE4Li4zNzVmYTg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfb3V0cHV0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX291dHB1dC5jCkBAIC04LDkgKzgsMTAgQEAKICAqIEF1dGhvcjogQm9yaXMgQlJFWklMTE9OIDxib3Jpcy5icmV6aWxsb25AZnJlZS1lbGVjdHJvbnMuY29tPgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9tZWRpYS1idXMtZm9ybWF0Lmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogI2luY2x1ZGUgPGRybS9kcm1fYnJpZGdlLmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMKaW5kZXggNDEyN2FjYS4uODlmNWE3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMKQEAgLTYsNiArNiwxNiBAQAogICogQXV0aG9yOiBCb3JpcyBCUkVaSUxMT04gPGJvcmlzLmJyZXppbGxvbkBmcmVlLWVsZWN0cm9ucy5jb20+CiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2RtYXBvb2wuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvYXRtZWwtaGxjZGMuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KKwogI2luY2x1ZGUgImF0bWVsX2hsY2RjX2RjLmgiCiAKIC8qKgpAQCAtMzYxLDcgKzM3MSw3IEBAIGF0bWVsX2hsY2RjX3BsYW5lX3VwZGF0ZV9nZW5lcmFsX3NldHRpbmdzKHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUsCiAJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0RNQV9DRkcsCiAJCQkJICAgIGNmZyk7CiAKLQljZmcgPSBBVE1FTF9ITENEQ19MQVlFUl9ETUE7CisJY2ZnID0gQVRNRUxfSExDRENfTEFZRVJfRE1BIHwgQVRNRUxfSExDRENfTEFZRVJfUkVQOwogCiAJaWYgKHBsYW5lLT5iYXNlLnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkgewogCQljZmcgfD0gQVRNRUxfSExDRENfTEFZRVJfT1ZSIHwgQVRNRUxfSExDRENfTEFZRVJfSVRFUjJCTCB8CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Nocy5oCmluZGV4IDJhNjU0MzQuLjY4NDgzYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Nocy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Nocy5oCkBAIC0xLDE3ICsxLDE1IEBACiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworCiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KLQogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaD4KLQorI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3ZyYW1fbW1faGVscGVyLmg+CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19kcnYuYwppbmRleCA4ZjNhNWJkLi43NzBlMTYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2Rydi5jCkBAIC0yLDExICsyLDEwIEBACiAvKgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiYm9jaHMuaCIKQEAgLTY1LDggKzY0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYm9jaHNfZm9wcyA9IHsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBib2Noc19kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMgfAotCQkJCSAgRFJJVkVSX1BSSU1FLAorCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLAogCS5mb3BzCQkJPSAmYm9jaHNfZm9wcywKIAkubmFtZQkJCT0gImJvY2hzLWRybSIsCiAJLmRlc2MJCQk9ICJib2NocyBkaXNwaSB2Z2EgaW50ZXJmYWNlIChxZW11IHN0ZHZnYSkiLApAQCAtNzQsNyArNzIsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgYm9jaHNfZHJpdmVyID0gewogCS5tYWpvcgkJCT0gMSwKIAkubWlub3IJCQk9IDAsCiAJRFJNX0dFTV9WUkFNX0RSSVZFUiwKLQlEUk1fR0VNX1ZSQU1fRFJJVkVSX1BSSU1FLAogfTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtODMsMTYgKzgwLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBib2Noc19kcml2ZXIgPSB7CiAjaWZkZWYgQ09ORklHX1BNX1NMRUVQCiBzdGF0aWMgaW50IGJvY2hzX3BtX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKIAlyZXR1cm4gZHJtX21vZGVfY29uZmlnX2hlbHBlcl9zdXNwZW5kKGRybV9kZXYpOwogfQogCiBzdGF0aWMgaW50IGJvY2hzX3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAogCXJldHVybiBkcm1fbW9kZV9jb25maWdfaGVscGVyX3Jlc3VtZShkcm1fZGV2KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19ody5jIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2h3LmMKaW5kZXggZWJmZWE4Ny4uZTU2N2JkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2h3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2h3LmMKQEAgLTIsNiArMiwxMCBAQAogLyoKICAqLwogCisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorCiAjaW5jbHVkZSAiYm9jaHMuaCIKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2ttcy5jCmluZGV4IDM1OTAzMGQuLjAyYTljMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfa21zLmMKQEAgLTIsMTIgKzIsMTQgQEAKIC8qCiAgKi8KIAotI2luY2x1ZGUgImJvY2hzLmgiCisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfdWFwaS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKworI2luY2x1ZGUgImJvY2hzLmgiCiAKIHN0YXRpYyBpbnQgZGVmeCA9IDEwMjQ7CiBzdGF0aWMgaW50IGRlZnkgPSA3Njg7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcKaW5kZXggZTRlMjJiYi4uMWNjOWY1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwpAQCAtMjEsNyArMjEsNyBAQAogCXNlbGVjdCBEUk1fS01TX0hFTFBFUgogCXNlbGVjdCBSRUdNQVBfSTJDCiAJLS0taGVscC0tLQotCSAgQU5YNzhYWCBpcyBhbiB1bHRyYS1sb3cgRnVsbC1IRCBTbGltUG9ydCB0cmFuc21pdHRlcgorCSAgQU5YNzhYWCBpcyBhbiB1bHRyYS1sb3cgcG93ZXIgRnVsbC1IRCBTbGltUG9ydCB0cmFuc21pdHRlcgogCSAgZGVzaWduZWQgZm9yIHBvcnRhYmxlIGRldmljZXMuIFRoZSBBTlg3OFhYIHRyYW5zZm9ybXMKIAkgIHRoZSBIRE1JIG91dHB1dCBvZiBhbiBhcHBsaWNhdGlvbiBwcm9jZXNzb3IgdG8gTXlEUAogCSAgb3IgRGlzcGxheVBvcnQuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Rydi5jCmluZGV4IGY2ZDI2ODEuLjllMTNlNDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Rydi5jCkBAIC05ODEsMTAgKzk4MSwxMCBAQCBzdGF0aWMgaW50IGFkdjc1MTFfaW5pdF9jZWNfcmVnbWFwKHN0cnVjdCBhZHY3NTExICphZHYpCiB7CiAJaW50IHJldDsKIAotCWFkdi0+aTJjX2NlYyA9IGkyY19uZXdfc2Vjb25kYXJ5X2RldmljZShhZHYtPmkyY19tYWluLCAiY2VjIiwKKwlhZHYtPmkyY19jZWMgPSBpMmNfbmV3X2FuY2lsbGFyeV9kZXZpY2UoYWR2LT5pMmNfbWFpbiwgImNlYyIsCiAJCQkJCQlBRFY3NTExX0NFQ19JMkNfQUREUl9ERUZBVUxUKTsKLQlpZiAoIWFkdi0+aTJjX2NlYykKLQkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKElTX0VSUihhZHYtPmkyY19jZWMpKQorCQlyZXR1cm4gUFRSX0VSUihhZHYtPmkyY19jZWMpOwogCWkyY19zZXRfY2xpZW50ZGF0YShhZHYtPmkyY19jZWMsIGFkdik7CiAKIAlhZHYtPnJlZ21hcF9jZWMgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhhZHYtPmkyY19jZWMsCkBAIC0xMTY1LDIwICsxMTY1LDIwIEBAIHN0YXRpYyBpbnQgYWR2NzUxMV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjLCBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCiAKIAlhZHY3NTExX3BhY2tldF9kaXNhYmxlKGFkdjc1MTEsIDB4ZmZmZik7CiAKLQlhZHY3NTExLT5pMmNfZWRpZCA9IGkyY19uZXdfc2Vjb25kYXJ5X2RldmljZShpMmMsICJlZGlkIiwKKwlhZHY3NTExLT5pMmNfZWRpZCA9IGkyY19uZXdfYW5jaWxsYXJ5X2RldmljZShpMmMsICJlZGlkIiwKIAkJCQkJQURWNzUxMV9FRElEX0kyQ19BRERSX0RFRkFVTFQpOwotCWlmICghYWR2NzUxMS0+aTJjX2VkaWQpIHsKLQkJcmV0ID0gLUVJTlZBTDsKKwlpZiAoSVNfRVJSKGFkdjc1MTEtPmkyY19lZGlkKSkgeworCQlyZXQgPSBQVFJfRVJSKGFkdjc1MTEtPmkyY19lZGlkKTsKIAkJZ290byB1bmluaXRfcmVndWxhdG9yczsKIAl9CiAKIAlyZWdtYXBfd3JpdGUoYWR2NzUxMS0+cmVnbWFwLCBBRFY3NTExX1JFR19FRElEX0kyQ19BRERSLAogCQkgICAgIGFkdjc1MTEtPmkyY19lZGlkLT5hZGRyIDw8IDEpOwogCi0JYWR2NzUxMS0+aTJjX3BhY2tldCA9IGkyY19uZXdfc2Vjb25kYXJ5X2RldmljZShpMmMsICJwYWNrZXQiLAorCWFkdjc1MTEtPmkyY19wYWNrZXQgPSBpMmNfbmV3X2FuY2lsbGFyeV9kZXZpY2UoaTJjLCAicGFja2V0IiwKIAkJCQkJQURWNzUxMV9QQUNLRVRfSTJDX0FERFJfREVGQVVMVCk7Ci0JaWYgKCFhZHY3NTExLT5pMmNfcGFja2V0KSB7Ci0JCXJldCA9IC1FSU5WQUw7CisJaWYgKElTX0VSUihhZHY3NTExLT5pMmNfcGFja2V0KSkgeworCQlyZXQgPSBQVFJfRVJSKGFkdjc1MTEtPmkyY19wYWNrZXQpOwogCQlnb3RvIGVycl9pMmNfdW5yZWdpc3Rlcl9lZGlkOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwppbmRleCAzZjdmNDg4Li4yMjg4NWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAjaW5jbHVkZSA8ZHJtL2JyaWRnZS9hbmFsb2dpeF9kcC5oPgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KQEAgLTEwMSw2MyArMTAyLDcgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9kZXRlY3RfaHBkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCXJldHVybiAwOwogfQogCi1pbnQgYW5hbG9naXhfZHBfcHNyX2VuYWJsZWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCi17Ci0KLQlyZXR1cm4gZHAtPnBzcl9lbmFibGU7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChhbmFsb2dpeF9kcF9wc3JfZW5hYmxlZCk7Ci0KLWludCBhbmFsb2dpeF9kcF9lbmFibGVfcHNyKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQotewotCXN0cnVjdCBkcF9zZHAgcHNyX3ZzYzsKLQotCWlmICghZHAtPnBzcl9lbmFibGUpCi0JCXJldHVybiAwOwotCi0JLyogUHJlcGFyZSBWU0MgcGFja2V0IGFzIHBlciBFRFAgMS40IHNwZWMsIFRhYmxlIDYuOSAqLwotCW1lbXNldCgmcHNyX3ZzYywgMCwgc2l6ZW9mKHBzcl92c2MpKTsKLQlwc3JfdnNjLnNkcF9oZWFkZXIuSEIwID0gMDsKLQlwc3JfdnNjLnNkcF9oZWFkZXIuSEIxID0gMHg3OwotCXBzcl92c2Muc2RwX2hlYWRlci5IQjIgPSAweDI7Ci0JcHNyX3ZzYy5zZHBfaGVhZGVyLkhCMyA9IDB4ODsKLQotCXBzcl92c2MuZGJbMF0gPSAwOwotCXBzcl92c2MuZGJbMV0gPSBFRFBfVlNDX1BTUl9TVEFURV9BQ1RJVkUgfCBFRFBfVlNDX1BTUl9DUkNfVkFMVUVTX1ZBTElEOwotCi0JcmV0dXJuIGFuYWxvZ2l4X2RwX3NlbmRfcHNyX3NwZChkcCwgJnBzcl92c2MsIHRydWUpOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoYW5hbG9naXhfZHBfZW5hYmxlX3Bzcik7Ci0KLWludCBhbmFsb2dpeF9kcF9kaXNhYmxlX3BzcihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKLXsKLQlzdHJ1Y3QgZHBfc2RwIHBzcl92c2M7Ci0JaW50IHJldDsKLQotCWlmICghZHAtPnBzcl9lbmFibGUpCi0JCXJldHVybiAwOwotCi0JLyogUHJlcGFyZSBWU0MgcGFja2V0IGFzIHBlciBFRFAgMS40IHNwZWMsIFRhYmxlIDYuOSAqLwotCW1lbXNldCgmcHNyX3ZzYywgMCwgc2l6ZW9mKHBzcl92c2MpKTsKLQlwc3JfdnNjLnNkcF9oZWFkZXIuSEIwID0gMDsKLQlwc3JfdnNjLnNkcF9oZWFkZXIuSEIxID0gMHg3OwotCXBzcl92c2Muc2RwX2hlYWRlci5IQjIgPSAweDI7Ci0JcHNyX3ZzYy5zZHBfaGVhZGVyLkhCMyA9IDB4ODsKLQotCXBzcl92c2MuZGJbMF0gPSAwOwotCXBzcl92c2MuZGJbMV0gPSAwOwotCi0JcmV0ID0gZHJtX2RwX2RwY2Rfd3JpdGViKCZkcC0+YXV4LCBEUF9TRVRfUE9XRVIsIERQX1NFVF9QT1dFUl9EMCk7Ci0JaWYgKHJldCAhPSAxKSB7Ci0JCWRldl9lcnIoZHAtPmRldiwgIkZhaWxlZCB0byBzZXQgRFAgUG93ZXIwICVkXG4iLCByZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldHVybiBhbmFsb2dpeF9kcF9zZW5kX3Bzcl9zcGQoZHAsICZwc3JfdnNjLCBmYWxzZSk7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChhbmFsb2dpeF9kcF9kaXNhYmxlX3Bzcik7Ci0KLXN0YXRpYyBpbnQgYW5hbG9naXhfZHBfZGV0ZWN0X3NpbmtfcHNyKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQorc3RhdGljIGJvb2wgYW5hbG9naXhfZHBfZGV0ZWN0X3NpbmtfcHNyKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogewogCXVuc2lnbmVkIGNoYXIgcHNyX3ZlcnNpb247CiAJaW50IHJldDsKQEAgLTE2NSwxNCArMTEwLDExIEBAIHN0YXRpYyBpbnQgYW5hbG9naXhfZHBfZGV0ZWN0X3NpbmtfcHNyKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCXJldCA9IGRybV9kcF9kcGNkX3JlYWRiKCZkcC0+YXV4LCBEUF9QU1JfU1VQUE9SVCwgJnBzcl92ZXJzaW9uKTsKIAlpZiAocmV0ICE9IDEpIHsKIAkJZGV2X2VycihkcC0+ZGV2LCAiZmFpbGVkIHRvIGdldCBQU1IgdmVyc2lvbiwgZGlzYWJsZSBpdFxuIik7Ci0JCXJldHVybiByZXQ7CisJCXJldHVybiBmYWxzZTsKIAl9CiAKIAlkZXZfZGJnKGRwLT5kZXYsICJQYW5lbCBQU1IgdmVyc2lvbiA6ICV4XG4iLCBwc3JfdmVyc2lvbik7Ci0KLQlkcC0+cHNyX2VuYWJsZSA9IChwc3JfdmVyc2lvbiAmIERQX1BTUl9JU19TVVBQT1JURUQpID8gdHJ1ZSA6IGZhbHNlOwotCi0JcmV0dXJuIDA7CisJcmV0dXJuIHBzcl92ZXJzaW9uICYgRFBfUFNSX0lTX1NVUFBPUlRFRDsKIH0KIAogc3RhdGljIGludCBhbmFsb2dpeF9kcF9lbmFibGVfc2lua19wc3Ioc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCkBAIC0xOTUsNyArMTM3LDcgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9lbmFibGVfc2lua19wc3Ioc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJfQogCiAJLyogTWFpbi1MaW5rIHRyYW5zbWl0dGVyIHJlbWFpbnMgYWN0aXZlIGR1cmluZyBQU1IgYWN0aXZlIHN0YXRlcyAqLwotCXBzcl9lbiA9IERQX1BTUl9NQUlOX0xJTktfQUNUSVZFIHwgRFBfUFNSX0NSQ19WRVJJRklDQVRJT047CisJcHNyX2VuID0gRFBfUFNSX0NSQ19WRVJJRklDQVRJT047CiAJcmV0ID0gZHJtX2RwX2RwY2Rfd3JpdGViKCZkcC0+YXV4LCBEUF9QU1JfRU5fQ0ZHLCBwc3JfZW4pOwogCWlmIChyZXQgIT0gMSkgewogCQlkZXZfZXJyKGRwLT5kZXYsICJmYWlsZWQgdG8gc2V0IHBhbmVsIHBzclxuIik7CkBAIC0yMDMsOCArMTQ1LDcgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9lbmFibGVfc2lua19wc3Ioc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJfQogCiAJLyogRW5hYmxlIHBzciBmdW5jdGlvbiAqLwotCXBzcl9lbiA9IERQX1BTUl9FTkFCTEUgfCBEUF9QU1JfTUFJTl9MSU5LX0FDVElWRSB8Ci0JCSBEUF9QU1JfQ1JDX1ZFUklGSUNBVElPTjsKKwlwc3JfZW4gPSBEUF9QU1JfRU5BQkxFIHwgRFBfUFNSX0NSQ19WRVJJRklDQVRJT047CiAJcmV0ID0gZHJtX2RwX2RwY2Rfd3JpdGViKCZkcC0+YXV4LCBEUF9QU1JfRU5fQ0ZHLCBwc3JfZW4pOwogCWlmIChyZXQgIT0gMSkgewogCQlkZXZfZXJyKGRwLT5kZXYsICJmYWlsZWQgdG8gc2V0IHBhbmVsIHBzclxuIik7CkBAIC0yMTMsMTAgKzE1NCwxMSBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2VuYWJsZV9zaW5rX3BzcihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIAogCWFuYWxvZ2l4X2RwX2VuYWJsZV9wc3JfY3JjKGRwKTsKIAorCWRwLT5wc3Jfc3VwcG9ydGVkID0gdHJ1ZTsKKwogCXJldHVybiAwOwogZW5kOgogCWRldl9lcnIoZHAtPmRldiwgImVuYWJsZSBwc3IgZmFpbCwgZm9yY2UgdG8gZGlzYWJsZSBwc3JcbiIpOwotCWRwLT5wc3JfZW5hYmxlID0gZmFsc2U7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTAzMSwyNCArOTczLDkwIEBAIHN0YXRpYyBpbnQgYW5hbG9naXhfZHBfY29tbWl0KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCQl9CiAJfQogCi0JcmV0ID0gYW5hbG9naXhfZHBfZGV0ZWN0X3NpbmtfcHNyKGRwKTsKKwkvKiBDaGVjayB3aGV0aGVyIHBhbmVsIHN1cHBvcnRzIGZhc3QgdHJhaW5pbmcgKi8KKwlyZXQgPSBhbmFsb2dpeF9kcF9mYXN0X2xpbmtfdHJhaW5fZGV0ZWN0aW9uKGRwKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaWYgKGRwLT5wc3JfZW5hYmxlKSB7CisJaWYgKGFuYWxvZ2l4X2RwX2RldGVjdF9zaW5rX3BzcihkcCkpIHsKIAkJcmV0ID0gYW5hbG9naXhfZHBfZW5hYmxlX3NpbmtfcHNyKGRwKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JLyogQ2hlY2sgd2hldGhlciBwYW5lbCBzdXBwb3J0cyBmYXN0IHRyYWluaW5nICovCi0JcmV0ID0gIGFuYWxvZ2l4X2RwX2Zhc3RfbGlua190cmFpbl9kZXRlY3Rpb24oZHApOwotCWlmIChyZXQpCi0JCWRwLT5wc3JfZW5hYmxlID0gZmFsc2U7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhbmFsb2dpeF9kcF9lbmFibGVfcHNyKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQoreworCXN0cnVjdCBkcF9zZHAgcHNyX3ZzYzsKKwlpbnQgcmV0OworCXU4IHNpbms7CisKKwlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkYigmZHAtPmF1eCwgRFBfUFNSX1NUQVRVUywgJnNpbmspOworCWlmIChyZXQgIT0gMSkKKwkJRFJNX0RFVl9FUlJPUihkcC0+ZGV2LCAiRmFpbGVkIHRvIHJlYWQgcHNyIHN0YXR1cyAlZFxuIiwgcmV0KTsKKwllbHNlIGlmIChzaW5rID09IERQX1BTUl9TSU5LX0FDVElWRV9SRkIpCisJCXJldHVybiAwOworCisJLyogUHJlcGFyZSBWU0MgcGFja2V0IGFzIHBlciBFRFAgMS40IHNwZWMsIFRhYmxlIDYuOSAqLworCW1lbXNldCgmcHNyX3ZzYywgMCwgc2l6ZW9mKHBzcl92c2MpKTsKKwlwc3JfdnNjLnNkcF9oZWFkZXIuSEIwID0gMDsKKwlwc3JfdnNjLnNkcF9oZWFkZXIuSEIxID0gMHg3OworCXBzcl92c2Muc2RwX2hlYWRlci5IQjIgPSAweDI7CisJcHNyX3ZzYy5zZHBfaGVhZGVyLkhCMyA9IDB4ODsKKwlwc3JfdnNjLmRiWzBdID0gMDsKKwlwc3JfdnNjLmRiWzFdID0gRURQX1ZTQ19QU1JfU1RBVEVfQUNUSVZFIHwgRURQX1ZTQ19QU1JfQ1JDX1ZBTFVFU19WQUxJRDsKKworCXJldCA9IGFuYWxvZ2l4X2RwX3NlbmRfcHNyX3NwZChkcCwgJnBzcl92c2MsIHRydWUpOworCWlmICghcmV0KQorCQlhbmFsb2dpeF9kcF9zZXRfYW5hbG9nX3Bvd2VyX2Rvd24oZHAsIFBPV0VSX0FMTCwgdHJ1ZSk7CiAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2Rpc2FibGVfcHNyKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQoreworCXN0cnVjdCBkcF9zZHAgcHNyX3ZzYzsKKwlpbnQgcmV0OworCXU4IHNpbms7CisKKwlhbmFsb2dpeF9kcF9zZXRfYW5hbG9nX3Bvd2VyX2Rvd24oZHAsIFBPV0VSX0FMTCwgZmFsc2UpOworCisJcmV0ID0gZHJtX2RwX2RwY2Rfd3JpdGViKCZkcC0+YXV4LCBEUF9TRVRfUE9XRVIsIERQX1NFVF9QT1dFUl9EMCk7CisJaWYgKHJldCAhPSAxKSB7CisJCURSTV9ERVZfRVJST1IoZHAtPmRldiwgIkZhaWxlZCB0byBzZXQgRFAgUG93ZXIwICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IGRybV9kcF9kcGNkX3JlYWRiKCZkcC0+YXV4LCBEUF9QU1JfU1RBVFVTLCAmc2luayk7CisJaWYgKHJldCAhPSAxKSB7CisJCURSTV9ERVZfRVJST1IoZHAtPmRldiwgIkZhaWxlZCB0byByZWFkIHBzciBzdGF0dXMgJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfSBlbHNlIGlmIChzaW5rID09IERQX1BTUl9TSU5LX0lOQUNUSVZFKSB7CisJCURSTV9ERVZfRVJST1IoZHAtPmRldiwgInNpbmsgaW5hY3RpdmUsIHNraXAgZGlzYWJsZSBwc3IiKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmV0ID0gYW5hbG9naXhfZHBfdHJhaW5fbGluayhkcCk7CisJaWYgKHJldCkgeworCQlEUk1fREVWX0VSUk9SKGRwLT5kZXYsICJGYWlsZWQgdG8gdHJhaW4gdGhlIGxpbmsgJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJLyogUHJlcGFyZSBWU0MgcGFja2V0IGFzIHBlciBFRFAgMS40IHNwZWMsIFRhYmxlIDYuOSAqLworCW1lbXNldCgmcHNyX3ZzYywgMCwgc2l6ZW9mKHBzcl92c2MpKTsKKwlwc3JfdnNjLnNkcF9oZWFkZXIuSEIwID0gMDsKKwlwc3JfdnNjLnNkcF9oZWFkZXIuSEIxID0gMHg3OworCXBzcl92c2Muc2RwX2hlYWRlci5IQjIgPSAweDI7CisJcHNyX3ZzYy5zZHBfaGVhZGVyLkhCMyA9IDB4ODsKKworCXBzcl92c2MuZGJbMF0gPSAwOworCXBzcl92c2MuZGJbMV0gPSAwOworCisJcmV0dXJuIGFuYWxvZ2l4X2RwX3NlbmRfcHNyX3NwZChkcCwgJnBzcl92c2MsIHRydWUpOworfQorCiAvKgogICogVGhpcyBmdW5jdGlvbiBpcyBhIGJpdCBvZiBhIGNhdGNoLWFsbCBmb3IgcGFuZWwgcHJlcGFyYXRpb24sIGhvcGVmdWxseQogICogc2ltcGxpZnlpbmcgdGhlIGxvZ2ljIG9mIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gcHJlcGFyZS91bnByZXBhcmUgdGhlIHBhbmVsCkBAIC0xMTM5LDkgKzExNDcsMzcgQEAgYW5hbG9naXhfZHBfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAJcmV0dXJuIGRwLT5lbmNvZGVyOwogfQogCisKK3N0YXRpYyBpbnQgYW5hbG9naXhfZHBfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCA9IHRvX2RwKGNvbm5lY3Rvcik7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCisJY29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7CisJaWYgKFdBUk5fT04oIWNvbm5fc3RhdGUpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWNvbm5fc3RhdGUtPnNlbGZfcmVmcmVzaF9hd2FyZSA9IHRydWU7CisKKwlpZiAoIWNvbm5fc3RhdGUtPmNydGMpCisJCXJldHVybiAwOworCisJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjb25uX3N0YXRlLT5jcnRjKTsKKwlpZiAoIWNydGNfc3RhdGUpCisJCXJldHVybiAwOworCisJaWYgKGNydGNfc3RhdGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUgJiYgIWRwLT5wc3Jfc3VwcG9ydGVkKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIGFuYWxvZ2l4X2RwX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7CiAJLmdldF9tb2RlcyA9IGFuYWxvZ2l4X2RwX2dldF9tb2RlcywKIAkuYmVzdF9lbmNvZGVyID0gYW5hbG9naXhfZHBfYmVzdF9lbmNvZGVyLAorCS5hdG9taWNfY2hlY2sgPSBhbmFsb2dpeF9kcF9hdG9taWNfY2hlY2ssCiB9OwogCiBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwpAQCAtMTIzMywxMSArMTI2OSw0MiBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfYnJpZGdlX3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKK3N0YXRpYworc3RydWN0IGRybV9jcnRjICphbmFsb2dpeF9kcF9nZXRfbmV3X2NydGMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IGRwLT5lbmNvZGVyOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7CisKKwljb25uZWN0b3IgPSBkcm1fYXRvbWljX2dldF9uZXdfY29ubmVjdG9yX2Zvcl9lbmNvZGVyKHN0YXRlLCBlbmNvZGVyKTsKKwlpZiAoIWNvbm5lY3RvcikKKwkJcmV0dXJuIE5VTEw7CisKKwljb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yKTsKKwlpZiAoIWNvbm5fc3RhdGUpCisJCXJldHVybiBOVUxMOworCisJcmV0dXJuIGNvbm5fc3RhdGUtPmNydGM7Cit9CisKK3N0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2JyaWRnZV9hdG9taWNfcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJCQkJIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCA9IGJyaWRnZS0+ZHJpdmVyX3ByaXZhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7CiAJaW50IHJldDsKIAorCWNydGMgPSBhbmFsb2dpeF9kcF9nZXRfbmV3X2NydGMoZHAsIHN0YXRlKTsKKwlpZiAoIWNydGMpCisJCXJldHVybjsKKworCW9sZF9jcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCS8qIERvbid0IHRvdWNoIHRoZSBwYW5lbCBpZiB3ZSdyZSBjb21pbmcgYmFjayBmcm9tIFBTUiAqLworCWlmIChvbGRfY3J0Y19zdGF0ZSAmJiBvbGRfY3J0Y19zdGF0ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZSkKKwkJcmV0dXJuOworCiAJcmV0ID0gYW5hbG9naXhfZHBfcHJlcGFyZV9wYW5lbChkcCwgdHJ1ZSwgdHJ1ZSk7CiAJaWYgKHJldCkKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gc2V0dXAgdGhlIHBhbmVsIHJldCA9ICVkXG4iLCByZXQpOwpAQCAtMTI5OCwxMCArMTM2NSwyNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX3NldF9icmlkZ2Uoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQorc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfYnJpZGdlX2F0b21pY19lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJCQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSBicmlkZ2UtPmRyaXZlcl9wcml2YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOwogCWludCB0aW1lb3V0X2xvb3AgPSAwOworCWludCByZXQ7CisKKwljcnRjID0gYW5hbG9naXhfZHBfZ2V0X25ld19jcnRjKGRwLCBzdGF0ZSk7CisJaWYgKCFjcnRjKQorCQlyZXR1cm47CisKKwlvbGRfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwkvKiBOb3QgYSBmdWxsIGVuYWJsZSwganVzdCBkaXNhYmxlIFBTUiBhbmQgY29udGludWUgKi8KKwlpZiAob2xkX2NydGNfc3RhdGUgJiYgb2xkX2NydGNfc3RhdGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUpIHsKKwkJcmV0ID0gYW5hbG9naXhfZHBfZGlzYWJsZV9wc3IoZHApOworCQlpZiAocmV0KQorCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZGlzYWJsZSBwc3IgJWRcbiIsIHJldCk7CisJCXJldHVybjsKKwl9CiAKIAlpZiAoZHAtPmRwbXNfbW9kZSA9PSBEUk1fTU9ERV9EUE1TX09OKQogCQlyZXR1cm47CkBAIC0xMzUwLDExICsxNDM0LDU2IEBAIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2JyaWRnZV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCiAJaWYgKHJldCkKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gc2V0dXAgdGhlIHBhbmVsIHJldCA9ICVkXG4iLCByZXQpOwogCi0JZHAtPnBzcl9lbmFibGUgPSBmYWxzZTsKIAlkcC0+ZmFzdF90cmFpbl9lbmFibGUgPSBmYWxzZTsKKwlkcC0+cHNyX3N1cHBvcnRlZCA9IGZhbHNlOwogCWRwLT5kcG1zX21vZGUgPSBEUk1fTU9ERV9EUE1TX09GRjsKIH0KIAorc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfYnJpZGdlX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCA9IGJyaWRnZS0+ZHJpdmVyX3ByaXZhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPSBOVUxMOworCisJY3J0YyA9IGFuYWxvZ2l4X2RwX2dldF9uZXdfY3J0YyhkcCwgc3RhdGUpOworCWlmICghY3J0YykKKwkJZ290byBvdXQ7CisKKwluZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlpZiAoIW5ld19jcnRjX3N0YXRlKQorCQlnb3RvIG91dDsKKworCS8qIERvbid0IGRvIGEgZnVsbCBkaXNhYmxlIG9uIFBTUiB0cmFuc2l0aW9ucyAqLworCWlmIChuZXdfY3J0Y19zdGF0ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZSkKKwkJcmV0dXJuOworCitvdXQ6CisJYW5hbG9naXhfZHBfYnJpZGdlX2Rpc2FibGUoYnJpZGdlKTsKK30KKworc3RhdGljCit2b2lkIGFuYWxvZ2l4X2RwX2JyaWRnZV9hdG9taWNfcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkJCSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSBicmlkZ2UtPmRyaXZlcl9wcml2YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOworCWludCByZXQ7CisKKwljcnRjID0gYW5hbG9naXhfZHBfZ2V0X25ld19jcnRjKGRwLCBzdGF0ZSk7CisJaWYgKCFjcnRjKQorCQlyZXR1cm47CisKKwluZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlpZiAoIW5ld19jcnRjX3N0YXRlIHx8ICFuZXdfY3J0Y19zdGF0ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZSkKKwkJcmV0dXJuOworCisJcmV0ID0gYW5hbG9naXhfZHBfZW5hYmxlX3BzcihkcCk7CisJaWYgKHJldCkKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZW5hYmxlIHBzciAoJWQpXG4iLCByZXQpOworfQorCiBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKIAkJCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqb3JpZ19tb2RlLAogCQkJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQpAQCAtMTQzMiwxNiArMTU2MSwxMSBAQCBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKIAkJdmlkZW8tPmludGVybGFjZWQgPSB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9icmlkZ2Vfbm9wKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCi17Ci0JLyogZG8gbm90aGluZyAqLwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgYW5hbG9naXhfZHBfYnJpZGdlX2Z1bmNzID0gewotCS5wcmVfZW5hYmxlID0gYW5hbG9naXhfZHBfYnJpZGdlX3ByZV9lbmFibGUsCi0JLmVuYWJsZSA9IGFuYWxvZ2l4X2RwX2JyaWRnZV9lbmFibGUsCi0JLmRpc2FibGUgPSBhbmFsb2dpeF9kcF9icmlkZ2VfZGlzYWJsZSwKLQkucG9zdF9kaXNhYmxlID0gYW5hbG9naXhfZHBfYnJpZGdlX25vcCwKKwkuYXRvbWljX3ByZV9lbmFibGUgPSBhbmFsb2dpeF9kcF9icmlkZ2VfYXRvbWljX3ByZV9lbmFibGUsCisJLmF0b21pY19lbmFibGUgPSBhbmFsb2dpeF9kcF9icmlkZ2VfYXRvbWljX2VuYWJsZSwKKwkuYXRvbWljX2Rpc2FibGUgPSBhbmFsb2dpeF9kcF9icmlkZ2VfYXRvbWljX2Rpc2FibGUsCisJLmF0b21pY19wb3N0X2Rpc2FibGUgPSBhbmFsb2dpeF9kcF9icmlkZ2VfYXRvbWljX3Bvc3RfZGlzYWJsZSwKIAkubW9kZV9zZXQgPSBhbmFsb2dpeF9kcF9icmlkZ2VfbW9kZV9zZXQsCiAJLmF0dGFjaCA9IGFuYWxvZ2l4X2RwX2JyaWRnZV9hdHRhY2gsCiB9OwpAQCAtMTY1Niw4ICsxNzgwLDcgQEAgdm9pZCBhbmFsb2dpeF9kcF91bmJpbmQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJaWYgKGRwLT5wbGF0X2RhdGEtPnBhbmVsKSB7CiAJCWlmIChkcm1fcGFuZWxfdW5wcmVwYXJlKGRwLT5wbGF0X2RhdGEtPnBhbmVsKSkKIAkJCURSTV9FUlJPUigiZmFpbGVkIHRvIHR1cm5vZmYgdGhlIHBhbmVsXG4iKTsKLQkJaWYgKGRybV9wYW5lbF9kZXRhY2goZHAtPnBsYXRfZGF0YS0+cGFuZWwpKQotCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZGV0YWNoIHRoZSBwYW5lbFxuIik7CisJCWRybV9wYW5lbF9kZXRhY2goZHAtPnBsYXRfZGF0YS0+cGFuZWwpOwogCX0KIAogCWRybV9kcF9hdXhfdW5yZWdpc3RlcigmZHAtPmF1eCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCmluZGV4IGRhMDU4MjUuLmMwNTE1MDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCkBAIC0xNzEsOCArMTcxLDggQEAgc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSB7CiAJaW50CQkJZHBtc19tb2RlOwogCXN0cnVjdCBncGlvX2Rlc2MJKmhwZF9ncGlvZDsKIAlib29sICAgICAgICAgICAgICAgICAgICBmb3JjZV9ocGQ7Ci0JYm9vbAkJCXBzcl9lbmFibGU7CiAJYm9vbAkJCWZhc3RfdHJhaW5fZW5hYmxlOworCWJvb2wJCQlwc3Jfc3VwcG9ydGVkOwogCiAJc3RydWN0IG11dGV4CQlwYW5lbF9sb2NrOwogCWJvb2wJCQlwYW5lbF9pc19tb2Rlc2V0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9kdW1iLXZnYS1kYWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvZHVtYi12Z2EtZGFjLmMKaW5kZXggZDMyODg1Yi4uN2FhNzg5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9kdW1iLXZnYS1kYWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R1bWItdmdhLWRhYy5jCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBpbnQgZHVtYl92Z2FfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAJc3RydWN0IGVkaWQgKmVkaWQ7CiAJaW50IHJldDsKIAotCWlmIChJU19FUlIodmdhLT5kZGMpKQorCWlmICghdmdhLT5kZGMpCiAJCWdvdG8gZmFsbGJhY2s7CiAKIAllZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3RvciwgdmdhLT5kZGMpOwpAQCAtODQsNyArODQsNyBAQCBkdW1iX3ZnYV9jb25uZWN0b3JfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCiAJICogd2lyZSB0aGUgRERDIHBpbnMsIG9yIHRoZSBJMkMgYnVzIG1pZ2h0IG5vdCBiZSB3b3JraW5nIGF0CiAJICogYWxsLgogCSAqLwotCWlmICghSVNfRVJSKHZnYS0+ZGRjKSAmJiBkcm1fcHJvYmVfZGRjKHZnYS0+ZGRjKSkKKwlpZiAodmdhLT5kZGMgJiYgZHJtX3Byb2JlX2RkYyh2Z2EtPmRkYykpCiAJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKIAogCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX3Vua25vd247CkBAIC0xMTEsOCArMTExLDEwIEBAIHN0YXRpYyBpbnQgZHVtYl92Z2FfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCiAKIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoJnZnYS0+Y29ubmVjdG9yLAogCQkJCSAmZHVtYl92Z2FfY29uX2hlbHBlcl9mdW5jcyk7Ci0JcmV0ID0gZHJtX2Nvbm5lY3Rvcl9pbml0KGJyaWRnZS0+ZGV2LCAmdmdhLT5jb25uZWN0b3IsCi0JCQkJICZkdW1iX3ZnYV9jb25fZnVuY3MsIERSTV9NT0RFX0NPTk5FQ1RPUl9WR0EpOworCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdF93aXRoX2RkYyhicmlkZ2UtPmRldiwgJnZnYS0+Y29ubmVjdG9yLAorCQkJCQkgICZkdW1iX3ZnYV9jb25fZnVuY3MsCisJCQkJCSAgRFJNX01PREVfQ09OTkVDVE9SX1ZHQSwKKwkJCQkJICB2Z2EtPmRkYyk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIGNvbm5lY3RvclxuIik7CiAJCXJldHVybiByZXQ7CkBAIC0xOTUsNiArMTk3LDcgQEAgc3RhdGljIGludCBkdW1iX3ZnYV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlpZiAoUFRSX0VSUih2Z2EtPmRkYykgPT0gLUVOT0RFVikgewogCQkJZGV2X2RiZygmcGRldi0+ZGV2LAogCQkJCSJObyBpMmMgYnVzIHNwZWNpZmllZC4gRGlzYWJsaW5nIEVESUQgcmVhZG91dFxuIik7CisJCQl2Z2EtPmRkYyA9IE5VTEw7CiAJCX0gZWxzZSB7CiAJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDb3VsZG4ndCByZXRyaWV2ZSBpMmMgYnVzXG4iKTsKIAkJCXJldHVybiBQVFJfRVJSKHZnYS0+ZGRjKTsKQEAgLTIxNiw3ICsyMTksNyBAQCBzdGF0aWMgaW50IGR1bWJfdmdhX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJZHJtX2JyaWRnZV9yZW1vdmUoJnZnYS0+YnJpZGdlKTsKIAotCWlmICghSVNfRVJSKHZnYS0+ZGRjKSkKKwlpZiAodmdhLT5kZGMpCiAJCWkyY19wdXRfYWRhcHRlcih2Z2EtPmRkYyk7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbWVnYWNoaXBzLXN0ZHB4eHh4LWdlLWI4NTB2My1mdy5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9tZWdhY2hpcHMtc3RkcHh4eHgtZ2UtYjg1MHYzLWZ3LmMKaW5kZXggNzkzMTFmOC4uNmU4MWU1ZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbWVnYWNoaXBzLXN0ZHB4eHh4LWdlLWI4NTB2My1mdy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbWVnYWNoaXBzLXN0ZHB4eHh4LWdlLWI4NTB2My1mdy5jCkBAIC0xOSw3ICsxOSw2IEBACiAgKiAgIEhvc3QgLT4gTFZEU3wtLShTVERQNDAyOCktLXxEUCAtPiBEUHwtLShTVERQMjY5MCktLXxEUCsrIC0+IFZpZGVvIG91dHB1dAogICovCiAKLSNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbnhwLXB0bjM0NjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbnhwLXB0bjM0NjAuYwppbmRleCA5OGJjNjUwLi5kNGExY2M1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL254cC1wdG4zNDYwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRuMzQ2MC5jCkBAIC02LDEzICs2LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby5oPgogI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgotI2luY2x1ZGUgPGxpbnV4L29mX2dwaW8uaD4KLQogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYXJhZGUtcHM4NjIyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhcmFkZS1wczg2MjIuYwppbmRleCAyZDg4MTQ2Li45M2M2OGUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhcmFkZS1wczg2MjIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhcmFkZS1wczg2MjIuYwpAQCAtOCw3ICs4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jCmluZGV4IGRkN2FhNDYuLjM4Zjc1YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jCkBAIC0xNTgsNiArMTU4LDggQEAKIAogI2RlZmluZSBTSUk5MDJYX0kyQ19CVVNfQUNRVUlTSVRJT05fVElNRU9VVF9NUwk1MDAKIAorI2RlZmluZSBTSUk5MDJYX0FVRElPX1BPUlRfSU5ERVgJCTMKKwogc3RydWN0IHNpaTkwMnggewogCXN0cnVjdCBpMmNfY2xpZW50ICppMmM7CiAJc3RydWN0IHJlZ21hcCAqcmVnbWFwOwpAQCAtNTY4LDEzICs1NzAsMTQgQEAgc3RhdGljIGludCBzaWk5MDJ4X2F1ZGlvX2h3X3BhcmFtcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXJldHVybiByZXQ7CiAJfQogCi0JbWNsa19yYXRlID0gY2xrX2dldF9yYXRlKHNpaTkwMngtPmF1ZGlvLm1jbGspOwotCi0JcmV0ID0gc2lpOTAyeF9zZWxlY3RfbWNsa19kaXYoJmkyc19jb25maWdfcmVnLCBwYXJhbXMtPnNhbXBsZV9yYXRlLAotCQkJCSAgICAgIG1jbGtfcmF0ZSk7Ci0JaWYgKG1jbGtfcmF0ZSAhPSByZXQgKiBwYXJhbXMtPnNhbXBsZV9yYXRlKQotCQlkZXZfZGJnKGRldiwgIkluYWNjdXJhdGUgcmVmZXJlbmNlIGNsb2NrICglbGQvJWQgIT0gJXUpXG4iLAotCQkJbWNsa19yYXRlLCByZXQsIHBhcmFtcy0+c2FtcGxlX3JhdGUpOworCWlmIChzaWk5MDJ4LT5hdWRpby5tY2xrKSB7CisJCW1jbGtfcmF0ZSA9IGNsa19nZXRfcmF0ZShzaWk5MDJ4LT5hdWRpby5tY2xrKTsKKwkJcmV0ID0gc2lpOTAyeF9zZWxlY3RfbWNsa19kaXYoJmkyc19jb25maWdfcmVnLAorCQkJCQkgICAgICBwYXJhbXMtPnNhbXBsZV9yYXRlLCBtY2xrX3JhdGUpOworCQlpZiAobWNsa19yYXRlICE9IHJldCAqIHBhcmFtcy0+c2FtcGxlX3JhdGUpCisJCQlkZXZfZGJnKGRldiwgIkluYWNjdXJhdGUgcmVmZXJlbmNlIGNsb2NrICglbGQvJWQgIT0gJXUpXG4iLAorCQkJCW1jbGtfcmF0ZSwgcmV0LCBwYXJhbXMtPnNhbXBsZV9yYXRlKTsKKwl9CiAKIAltdXRleF9sb2NrKCZzaWk5MDJ4LT5tdXRleCk7CiAKQEAgLTY2Miw3ICs2NjUsOCBAQCBzdGF0aWMgdm9pZCBzaWk5MDJ4X2F1ZGlvX3NodXRkb3duKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKIAljbGtfZGlzYWJsZV91bnByZXBhcmUoc2lpOTAyeC0+YXVkaW8ubWNsayk7CiB9CiAKLWludCBzaWk5MDJ4X2F1ZGlvX2RpZ2l0YWxfbXV0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIGJvb2wgZW5hYmxlKQorc3RhdGljIGludCBzaWk5MDJ4X2F1ZGlvX2RpZ2l0YWxfbXV0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgICAgdm9pZCAqZGF0YSwgYm9vbCBlbmFibGUpCiB7CiAJc3RydWN0IHNpaTkwMnggKnNpaTkwMnggPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIApAQCAtNjkwLDExICs2OTQsMzIgQEAgc3RhdGljIGludCBzaWk5MDJ4X2F1ZGlvX2dldF9lbGQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHNpaTkwMnhfYXVkaW9fZ2V0X2RhaV9pZChzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCwKKwkJCQkgICAgc3RydWN0IGRldmljZV9ub2RlICplbmRwb2ludCkKK3sKKwlzdHJ1Y3Qgb2ZfZW5kcG9pbnQgb2ZfZXA7CisJaW50IHJldDsKKworCXJldCA9IG9mX2dyYXBoX3BhcnNlX2VuZHBvaW50KGVuZHBvaW50LCAmb2ZfZXApOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJLyoKKwkgKiBIRE1JIHNvdW5kIHNob3VsZCBiZSBsb2NhdGVkIGF0IHJlZyA9IDwzPgorCSAqIFJldHVybiBleHBlY3RlZCBEQUkgaW5kZXggMC4KKwkgKi8KKwlpZiAob2ZfZXAucG9ydCA9PSBTSUk5MDJYX0FVRElPX1BPUlRfSU5ERVgpCisJCXJldHVybiAwOworCisJcmV0dXJuIC1FSU5WQUw7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGRtaV9jb2RlY19vcHMgc2lpOTAyeF9hdWRpb19jb2RlY19vcHMgPSB7CiAJLmh3X3BhcmFtcyA9IHNpaTkwMnhfYXVkaW9faHdfcGFyYW1zLAogCS5hdWRpb19zaHV0ZG93biA9IHNpaTkwMnhfYXVkaW9fc2h1dGRvd24sCiAJLmRpZ2l0YWxfbXV0ZSA9IHNpaTkwMnhfYXVkaW9fZGlnaXRhbF9tdXRlLAogCS5nZXRfZWxkID0gc2lpOTAyeF9hdWRpb19nZXRfZWxkLAorCS5nZXRfZGFpX2lkID0gc2lpOTAyeF9hdWRpb19nZXRfZGFpX2lkLAogfTsKIAogc3RhdGljIGludCBzaWk5MDJ4X2F1ZGlvX2NvZGVjX2luaXQoc3RydWN0IHNpaTkwMnggKnNpaTkwMngsCkBAIC03NTAsMTAgKzc3NSwxMSBAQCBzdGF0aWMgaW50IHNpaTkwMnhfYXVkaW9fY29kZWNfaW5pdChzdHJ1Y3Qgc2lpOTAyeCAqc2lpOTAyeCwKIAkJc2lpOTAyeC0+YXVkaW8uaTJzX2ZpZm9fc2VxdWVuY2VbaV0gfD0gYXVkaW9fZmlmb19pZFtpXSB8CiAJCQlpMnNfbGFuZV9pZFtsYW5lc1tpXV0gfAlTSUk5MDJYX1RQSV9JMlNfRklGT19FTkFCTEU7CiAKKwlzaWk5MDJ4LT5hdWRpby5tY2xrID0gZGV2bV9jbGtfZ2V0X29wdGlvbmFsKGRldiwgIm1jbGsiKTsKIAlpZiAoSVNfRVJSKHNpaTkwMngtPmF1ZGlvLm1jbGspKSB7CiAJCWRldl9lcnIoZGV2LCAiJXM6IE5vIGNsb2NrIChhdWRpbyBtY2xrKSBmb3VuZDogJWxkXG4iLAogCQkJX19mdW5jX18sIFBUUl9FUlIoc2lpOTAyeC0+YXVkaW8ubWNsaykpOwotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIFBUUl9FUlIoc2lpOTAyeC0+YXVkaW8ubWNsayk7CiAJfQogCiAJc2lpOTAyeC0+YXVkaW8ucGRldiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9kYXRhKApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLWFoYi1hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLWFoYi1hdWRpby5jCmluZGV4IGE0OTQxODYuLjJiNzUzOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS1haGItYXVkaW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWktYWhiLWF1ZGlvLmMKQEAgLTYzLDEwICs2Myw2IEBAIGVudW0gewogCUhETUlfUkVWSVNJT05fSUQgPSAweDAwMDEsCiAJSERNSV9JSF9BSEJETUFBVURfU1RBVDAgPSAweDAxMDksCiAJSERNSV9JSF9NVVRFX0FIQkRNQUFVRF9TVEFUMCA9IDB4MDE4OSwKLQlIRE1JX0ZDX0FVRElDT05GMiA9IDB4MTAyNywKLQlIRE1JX0ZDX0FVRFNDT05GID0gMHgxMDYzLAotCUhETUlfRkNfQVVEU0NPTkZfTEFZT1VUMSA9IDEgPDwgMCwKLQlIRE1JX0ZDX0FVRFNDT05GX0xBWU9VVDAgPSAwIDw8IDAsCiAJSERNSV9BSEJfRE1BX0NPTkYwID0gMHgzNjAwLAogCUhETUlfQUhCX0RNQV9TVEFSVCA9IDB4MzYwMSwKIAlIRE1JX0FIQl9ETUFfU1RPUCA9IDB4MzYwMiwKQEAgLTQwMyw3ICszOTksNyBAQCBzdGF0aWMgaW50IGR3X2hkbWlfcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIHsKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwogCXN0cnVjdCBzbmRfZHdfaGRtaSAqZHcgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQl1OCB0aHJlc2hvbGQsIGNvbmYwLCBjb25mMSwgbGF5b3V0LCBjYTsKKwl1OCB0aHJlc2hvbGQsIGNvbmYwLCBjb25mMSwgY2E7CiAKIAkvKiBTZXR1cCBhcyBwZXIgMy4wLjUgRlNMIDQuMS4wIEJTUCAqLwogCXN3aXRjaCAoZHctPnJldmlzaW9uKSB7CkBAIC00MzQsMjAgKzQzMCwxMiBAQCBzdGF0aWMgaW50IGR3X2hkbWlfcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIAljb25mMSA9IGRlZmF1bHRfaGRtaV9jaGFubmVsX2NvbmZpZ1tydW50aW1lLT5jaGFubmVscyAtIDJdLmNvbmYxOwogCWNhID0gZGVmYXVsdF9oZG1pX2NoYW5uZWxfY29uZmlnW3J1bnRpbWUtPmNoYW5uZWxzIC0gMl0uY2E7CiAKLQkvKgotCSAqIEZvciA+MiBjaGFubmVsIFBDTSBhdWRpbywgd2UgbmVlZCB0byBzZWxlY3QgbGF5b3V0IDEKLQkgKiBhbmQgc2V0IGFuIGFwcHJvcHJpYXRlIGNoYW5uZWwgbWFwLgotCSAqLwotCWlmIChydW50aW1lLT5jaGFubmVscyA+IDIpCi0JCWxheW91dCA9IEhETUlfRkNfQVVEU0NPTkZfTEFZT1VUMTsKLQllbHNlCi0JCWxheW91dCA9IEhETUlfRkNfQVVEU0NPTkZfTEFZT1VUMDsKLQogCXdyaXRlYl9yZWxheGVkKHRocmVzaG9sZCwgZHctPmRhdGEuYmFzZSArIEhETUlfQUhCX0RNQV9USFJTTEQpOwogCXdyaXRlYl9yZWxheGVkKGNvbmYwLCBkdy0+ZGF0YS5iYXNlICsgSERNSV9BSEJfRE1BX0NPTkYwKTsKIAl3cml0ZWJfcmVsYXhlZChjb25mMSwgZHctPmRhdGEuYmFzZSArIEhETUlfQUhCX0RNQV9DT05GMSk7Ci0Jd3JpdGViX3JlbGF4ZWQobGF5b3V0LCBkdy0+ZGF0YS5iYXNlICsgSERNSV9GQ19BVURTQ09ORik7Ci0Jd3JpdGViX3JlbGF4ZWQoY2EsIGR3LT5kYXRhLmJhc2UgKyBIRE1JX0ZDX0FVRElDT05GMik7CisKKwlkd19oZG1pX3NldF9jaGFubmVsX2NvdW50KGR3LT5kYXRhLmhkbWksIHJ1bnRpbWUtPmNoYW5uZWxzKTsKKwlkd19oZG1pX3NldF9jaGFubmVsX2FsbG9jYXRpb24oZHctPmRhdGEuaGRtaSwgY2EpOwogCiAJc3dpdGNoIChydW50aW1lLT5mb3JtYXQpIHsKIAljYXNlIFNORFJWX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0xFOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLWF1ZGlvLmggYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWktYXVkaW8uaAppbmRleCA2M2I1NzU2Li5jYjA3ZGMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWktYXVkaW8uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWktYXVkaW8uaApAQCAtMTQsNiArMTQsNyBAQCBzdHJ1Y3QgZHdfaGRtaV9hdWRpb19kYXRhIHsKIAogc3RydWN0IGR3X2hkbWlfaTJzX2F1ZGlvX2RhdGEgewogCXN0cnVjdCBkd19oZG1pICpoZG1pOworCXU4ICplbGQ7CiAKIAl2b2lkICgqd3JpdGUpKHN0cnVjdCBkd19oZG1pICpoZG1pLCB1OCB2YWwsIGludCBvZmZzZXQpOwogCXU4ICgqcmVhZCkoc3RydWN0IGR3X2hkbWkgKmhkbWksIGludCBvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLWNlYy5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLWNlYy5jCmluZGV4IDBmOTQ5OTcuLmFjMWUwMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS1jZWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWktY2VjLmMKQEAgLTI1Niw4ICsyNTYsOCBAQCBzdGF0aWMgaW50IGR3X2hkbWlfY2VjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZHdfaGRtaV93cml0ZShjZWMsIDAsIEhETUlfQ0VDX1BPTEFSSVRZKTsKIAogCWNlYy0+YWRhcCA9IGNlY19hbGxvY2F0ZV9hZGFwdGVyKCZkd19oZG1pX2NlY19vcHMsIGNlYywgImR3X2hkbWkiLAotCQkJCQkgQ0VDX0NBUF9MT0dfQUREUlMgfCBDRUNfQ0FQX1RSQU5TTUlUIHwKLQkJCQkJIENFQ19DQVBfUkMgfCBDRUNfQ0FQX1BBU1NUSFJPVUdILAorCQkJCQkgQ0VDX0NBUF9ERUZBVUxUUyB8CisJCQkJCSBDRUNfQ0FQX0NPTk5FQ1RPUl9JTkZPLAogCQkJCQkgQ0VDX01BWF9MT0dfQUREUlMpOwogCWlmIChJU19FUlIoY2VjLT5hZGFwKSkKIAkJcmV0dXJuIFBUUl9FUlIoY2VjLT5hZGFwKTsKQEAgLTI3OCwxMyArMjc4LDE0IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9jZWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAotCWNlYy0+bm90aWZ5ID0gY2VjX25vdGlmaWVyX2dldChwZGV2LT5kZXYucGFyZW50KTsKKwljZWMtPm5vdGlmeSA9IGNlY19ub3RpZmllcl9jZWNfYWRhcF9yZWdpc3RlcihwZGV2LT5kZXYucGFyZW50LAorCQkJCQkJICAgICBOVUxMLCBjZWMtPmFkYXApOwogCWlmICghY2VjLT5ub3RpZnkpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJcmV0ID0gY2VjX3JlZ2lzdGVyX2FkYXB0ZXIoY2VjLT5hZGFwLCBwZGV2LT5kZXYucGFyZW50KTsKIAlpZiAocmV0IDwgMCkgewotCQljZWNfbm90aWZpZXJfcHV0KGNlYy0+bm90aWZ5KTsKKwkJY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoY2VjLT5ub3RpZnkpOwogCQlyZXR1cm4gcmV0OwogCX0KIApAQCAtMjk0LDggKzI5NSw2IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9jZWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkgKi8KIAlkZXZtX3JlbW92ZV9hY3Rpb24oJnBkZXYtPmRldiwgZHdfaGRtaV9jZWNfZGVsLCBjZWMpOwogCi0JY2VjX3JlZ2lzdGVyX2NlY19ub3RpZmllcihjZWMtPmFkYXAsIGNlYy0+bm90aWZ5KTsKLQogCXJldHVybiAwOwogfQogCkBAIC0zMDMsOCArMzAyLDggQEAgc3RhdGljIGludCBkd19oZG1pX2NlY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgZHdfaGRtaV9jZWMgKmNlYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCisJY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoY2VjLT5ub3RpZnkpOwogCWNlY191bnJlZ2lzdGVyX2FkYXB0ZXIoY2VjLT5hZGFwKTsKLQljZWNfbm90aWZpZXJfcHV0KGNlYy0+bm90aWZ5KTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLWkycy1hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLWkycy1hdWRpby5jCmluZGV4IDVjYmI3MWEuLjFkMTVjZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS1pMnMtYXVkaW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWktaTJzLWF1ZGlvLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPGRybS9icmlkZ2UvZHdfaGRtaS5oPgorI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogCiAjaW5jbHVkZSA8c291bmQvaGRtaS1jb2RlYy5oPgogCkBAIC00NCwxNCArNDUsMzAgQEAgc3RhdGljIGludCBkd19oZG1pX2kyc19od19wYXJhbXMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXU4IGlucHV0Y2xrZnMgPSAwOwogCiAJLyogaXQgY2FyZXMgSTJTIG9ubHkgKi8KLQlpZiAoKGZtdC0+Zm10ICE9IEhETUlfSTJTKSB8fAotCSAgICAoZm10LT5iaXRfY2xrX21hc3RlciB8IGZtdC0+ZnJhbWVfY2xrX21hc3RlcikpIHsKLQkJZGV2X2VycihkZXYsICJ1bnN1cHBvcnRlZCBmb3JtYXQvc2V0dGluZ3NcbiIpOworCWlmIChmbXQtPmJpdF9jbGtfbWFzdGVyIHwgZm10LT5mcmFtZV9jbGtfbWFzdGVyKSB7CisJCWRldl9lcnIoZGV2LCAidW5zdXBwb3J0ZWQgY2xvY2sgc2V0dGluZ3NcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwkvKiBSZXNldCB0aGUgRklGT3MgYmVmb3JlIGFwcGx5aW5nIG5ldyBwYXJhbXMgKi8KKwloZG1pX3dyaXRlKGF1ZGlvLCBIRE1JX0FVRF9DT05GMF9TV19SRVNFVCwgSERNSV9BVURfQ09ORjApOworCWhkbWlfd3JpdGUoYXVkaW8sICh1OCl+SERNSV9NQ19TV1JTVFpfSTJTU1dSU1RfUkVRLCBIRE1JX01DX1NXUlNUWik7CisKIAlpbnB1dGNsa2ZzCT0gSERNSV9BVURfSU5QVVRDTEtGU182NEZTOwotCWNvbmYwCQk9IEhETUlfQVVEX0NPTkYwX0kyU19BTExfRU5BQkxFOworCWNvbmYwCQk9IChIRE1JX0FVRF9DT05GMF9JMlNfU0VMRUNUIHwgSERNSV9BVURfQ09ORjBfSTJTX0VOMCk7CisKKwkvKiBFbmFibGUgdGhlIHJlcXVpcmVkIGkycyBsYW5lcyAqLworCXN3aXRjaCAoaHBhcm1zLT5jaGFubmVscykgeworCWNhc2UgNyAuLi4gODoKKwkJY29uZjAgfD0gSERNSV9BVURfQ09ORjBfSTJTX0VOMzsKKwkJLyogRmFsbC10aHJ1ICovCisJY2FzZSA1IC4uLiA2OgorCQljb25mMCB8PSBIRE1JX0FVRF9DT05GMF9JMlNfRU4yOworCQkvKiBGYWxsLXRocnUgKi8KKwljYXNlIDMgLi4uIDQ6CisJCWNvbmYwIHw9IEhETUlfQVVEX0NPTkYwX0kyU19FTjE7CisJCS8qIEZhbGwtdGhydSAqLworCX0KIAogCXN3aXRjaCAoaHBhcm1zLT5zYW1wbGVfd2lkdGgpIHsKIAljYXNlIDE2OgpAQCAtNjMsNyArODAsMzAgQEAgc3RhdGljIGludCBkd19oZG1pX2kyc19od19wYXJhbXMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlicmVhazsKIAl9CiAKKwlzd2l0Y2ggKGZtdC0+Zm10KSB7CisJY2FzZSBIRE1JX0kyUzoKKwkJY29uZjEgfD0gSERNSV9BVURfQ09ORjFfTU9ERV9JMlM7CisJCWJyZWFrOworCWNhc2UgSERNSV9SSUdIVF9KOgorCQljb25mMSB8PSBIRE1JX0FVRF9DT05GMV9NT0RFX1JJR0hUX0o7CisJCWJyZWFrOworCWNhc2UgSERNSV9MRUZUX0o6CisJCWNvbmYxIHw9IEhETUlfQVVEX0NPTkYxX01PREVfTEVGVF9KOworCQlicmVhazsKKwljYXNlIEhETUlfRFNQX0E6CisJCWNvbmYxIHw9IEhETUlfQVVEX0NPTkYxX01PREVfQlVSU1RfMTsKKwkJYnJlYWs7CisJY2FzZSBIRE1JX0RTUF9COgorCQljb25mMSB8PSBIRE1JX0FVRF9DT05GMV9NT0RFX0JVUlNUXzI7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9lcnIoZGV2LCAidW5zdXBwb3J0ZWQgZm9ybWF0XG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJZHdfaGRtaV9zZXRfc2FtcGxlX3JhdGUoaGRtaSwgaHBhcm1zLT5zYW1wbGVfcmF0ZSk7CisJZHdfaGRtaV9zZXRfY2hhbm5lbF9jb3VudChoZG1pLCBocGFybXMtPmNoYW5uZWxzKTsKKwlkd19oZG1pX3NldF9jaGFubmVsX2FsbG9jYXRpb24oaGRtaSwgaHBhcm1zLT5jZWEuY2hhbm5lbF9hbGxvY2F0aW9uKTsKIAogCWhkbWlfd3JpdGUoYXVkaW8sIGlucHV0Y2xrZnMsIEhETUlfQVVEX0lOUFVUQ0xLRlMpOwogCWhkbWlfd3JpdGUoYXVkaW8sIGNvbmYwLCBIRE1JX0FVRF9DT05GMCk7CkBAIC04MCw4ICsxMjAsMTUgQEAgc3RhdGljIHZvaWQgZHdfaGRtaV9pMnNfYXVkaW9fc2h1dGRvd24oc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQogCXN0cnVjdCBkd19oZG1pICpoZG1pID0gYXVkaW8tPmhkbWk7CiAKIAlkd19oZG1pX2F1ZGlvX2Rpc2FibGUoaGRtaSk7Cit9CiAKLQloZG1pX3dyaXRlKGF1ZGlvLCBIRE1JX0FVRF9DT05GMF9TV19SRVNFVCwgSERNSV9BVURfQ09ORjApOworc3RhdGljIGludCBkd19oZG1pX2kyc19nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgdWludDhfdCAqYnVmLAorCQkJICAgICAgIHNpemVfdCBsZW4pCit7CisJc3RydWN0IGR3X2hkbWlfaTJzX2F1ZGlvX2RhdGEgKmF1ZGlvID0gZGF0YTsKKworCW1lbWNweShidWYsIGF1ZGlvLT5lbGQsIG1pbl90KHNpemVfdCwgTUFYX0VMRF9CWVRFUywgbGVuKSk7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZHdfaGRtaV9pMnNfZ2V0X2RhaV9pZChzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCwKQEAgLTEwNyw2ICsxNTQsNyBAQCBzdGF0aWMgaW50IGR3X2hkbWlfaTJzX2dldF9kYWlfaWQoc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjb21wb25lbnQsCiBzdGF0aWMgc3RydWN0IGhkbWlfY29kZWNfb3BzIGR3X2hkbWlfaTJzX29wcyA9IHsKIAkuaHdfcGFyYW1zCT0gZHdfaGRtaV9pMnNfaHdfcGFyYW1zLAogCS5hdWRpb19zaHV0ZG93bgk9IGR3X2hkbWlfaTJzX2F1ZGlvX3NodXRkb3duLAorCS5nZXRfZWxkCT0gZHdfaGRtaV9pMnNfZ2V0X2VsZCwKIAkuZ2V0X2RhaV9pZAk9IGR3X2hkbWlfaTJzX2dldF9kYWlfaWQsCiB9OwogCkBAIC0xMTksNyArMTY3LDcgQEAgc3RhdGljIGludCBzbmRfZHdfaGRtaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJcGRhdGEub3BzCQk9ICZkd19oZG1pX2kyc19vcHM7CiAJcGRhdGEuaTJzCQk9IDE7Ci0JcGRhdGEubWF4X2kyc19jaGFubmVscwk9IDY7CisJcGRhdGEubWF4X2kyc19jaGFubmVscwk9IDg7CiAJcGRhdGEuZGF0YQkJPSBhdWRpbzsKIAogCW1lbXNldCgmcGRldmluZm8sIDAsIHNpemVvZihwZGV2aW5mbykpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwppbmRleCBjNjQ5MDk0Li41MjFkNjg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgPGRybS9icmlkZ2UvZHdfaGRtaS5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgotI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlcl9zbGF2ZS5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KQEAgLTE5MCw2ICsxODksNyBAQCBzdHJ1Y3QgZHdfaGRtaSB7CiAJdm9pZCAoKmVuYWJsZV9hdWRpbykoc3RydWN0IGR3X2hkbWkgKmhkbWkpOwogCXZvaWQgKCpkaXNhYmxlX2F1ZGlvKShzdHJ1Y3QgZHdfaGRtaSAqaGRtaSk7CiAKKwlzdHJ1Y3QgbXV0ZXggY2VjX25vdGlmaWVyX211dGV4OwogCXN0cnVjdCBjZWNfbm90aWZpZXIgKmNlY19ub3RpZmllcjsKIH07CiAKQEAgLTUwOCw4ICs1MDgsMTQgQEAgc3RhdGljIHZvaWQgaGRtaV9zZXRfY3RzX24oc3RydWN0IGR3X2hkbWkgKmhkbWksIHVuc2lnbmVkIGludCBjdHMsCiAJLyogbnNoaWZ0IGZhY3RvciA9IDAgKi8KIAloZG1pX21vZGIoaGRtaSwgMCwgSERNSV9BVURfQ1RTM19OX1NISUZUX01BU0ssIEhETUlfQVVEX0NUUzMpOwogCi0JaGRtaV93cml0ZWIoaGRtaSwgKChjdHMgPj4gMTYpICYgSERNSV9BVURfQ1RTM19BVURDVFMxOV8xNl9NQVNLKSB8Ci0JCSAgICBIRE1JX0FVRF9DVFMzX0NUU19NQU5VQUwsIEhETUlfQVVEX0NUUzMpOworCS8qIFVzZSBhdXRvbWF0aWMgQ1RTIGdlbmVyYXRpb24gbW9kZSB3aGVuIENUUyBpcyBub3Qgc2V0ICovCisJaWYgKGN0cykKKwkJaGRtaV93cml0ZWIoaGRtaSwgKChjdHMgPj4gMTYpICYKKwkJCQkgICBIRE1JX0FVRF9DVFMzX0FVRENUUzE5XzE2X01BU0spIHwKKwkJCQkgIEhETUlfQVVEX0NUUzNfQ1RTX01BTlVBTCwKKwkJCSAgICBIRE1JX0FVRF9DVFMzKTsKKwllbHNlCisJCWhkbWlfd3JpdGViKGhkbWksIDAsIEhETUlfQVVEX0NUUzMpOwogCWhkbWlfd3JpdGViKGhkbWksIChjdHMgPj4gOCkgJiAweGZmLCBIRE1JX0FVRF9DVFMyKTsKIAloZG1pX3dyaXRlYihoZG1pLCBjdHMgJiAweGZmLCBIRE1JX0FVRF9DVFMxKTsKIApAQCAtNTc5LDI0ICs1ODUsMzMgQEAgc3RhdGljIHZvaWQgaGRtaV9zZXRfY2xrX3JlZ2VuZXJhdG9yKHN0cnVjdCBkd19oZG1pICpoZG1pLAogewogCXVuc2lnbmVkIGxvbmcgZnRkbXMgPSBwaXhlbF9jbGs7CiAJdW5zaWduZWQgaW50IG4sIGN0czsKKwl1OCBjb25maWczOwogCXU2NCB0bXA7CiAKIAluID0gaGRtaV9jb21wdXRlX24oc2FtcGxlX3JhdGUsIHBpeGVsX2Nsayk7CiAKLQkvKgotCSAqIENvbXB1dGUgdGhlIENUUyB2YWx1ZSBmcm9tIHRoZSBOIHZhbHVlLiAgTm90ZSB0aGF0IENUUyBhbmQgTgotCSAqIGNhbiBiZSB1cCB0byAyMCBiaXRzIGluIHRvdGFsLCBzbyB3ZSBuZWVkIDY0LWJpdCBtYXRoLiAgQWxzbwotCSAqIG5vdGUgdGhhdCBvdXIgVERNUyBjbG9jayBpcyBub3QgZnVsbHkgYWNjdXJhdGU7IGl0IGlzIGFjY3VyYXRlCi0JICogdG8ga0h6LiAgVGhpcyBjYW4gaW50cm9kdWNlIGFuIHVubmVjZXNzYXJ5IHJlbWFpbmRlciBpbiB0aGUKLQkgKiBjYWxjdWxhdGlvbiBiZWxvdywgc28gd2UgZG9uJ3QgdHJ5IHRvIHdhcm4gYWJvdXQgdGhhdC4KLQkgKi8KLQl0bXAgPSAodTY0KWZ0ZG1zICogbjsKLQlkb19kaXYodG1wLCAxMjggKiBzYW1wbGVfcmF0ZSk7Ci0JY3RzID0gdG1wOworCWNvbmZpZzMgPSBoZG1pX3JlYWRiKGhkbWksIEhETUlfQ09ORklHM19JRCk7CiAKLQlkZXZfZGJnKGhkbWktPmRldiwgIiVzOiBmcz0ldUh6IGZ0ZG1zPSVsdS4lMDNsdU1IeiBOPSVkIGN0cz0lZFxuIiwKLQkJX19mdW5jX18sIHNhbXBsZV9yYXRlLCBmdGRtcyAvIDEwMDAwMDAsIChmdGRtcyAvIDEwMDApICUgMTAwMCwKLQkJbiwgY3RzKTsKKwkvKiBPbmx5IGNvbXB1dGUgQ1RTIHdoZW4gdXNpbmcgaW50ZXJuYWwgQUhCIGF1ZGlvICovCisJaWYgKGNvbmZpZzMgJiBIRE1JX0NPTkZJRzNfQUhCQVVERE1BKSB7CisJCS8qCisJCSAqIENvbXB1dGUgdGhlIENUUyB2YWx1ZSBmcm9tIHRoZSBOIHZhbHVlLiAgTm90ZSB0aGF0IENUUyBhbmQgTgorCQkgKiBjYW4gYmUgdXAgdG8gMjAgYml0cyBpbiB0b3RhbCwgc28gd2UgbmVlZCA2NC1iaXQgbWF0aC4gIEFsc28KKwkJICogbm90ZSB0aGF0IG91ciBURE1TIGNsb2NrIGlzIG5vdCBmdWxseSBhY2N1cmF0ZTsgaXQgaXMKKwkJICogYWNjdXJhdGUgdG8ga0h6LiAgVGhpcyBjYW4gaW50cm9kdWNlIGFuIHVubmVjZXNzYXJ5IHJlbWFpbmRlcgorCQkgKiBpbiB0aGUgY2FsY3VsYXRpb24gYmVsb3csIHNvIHdlIGRvbid0IHRyeSB0byB3YXJuIGFib3V0IHRoYXQuCisJCSAqLworCQl0bXAgPSAodTY0KWZ0ZG1zICogbjsKKwkJZG9fZGl2KHRtcCwgMTI4ICogc2FtcGxlX3JhdGUpOworCQljdHMgPSB0bXA7CisKKwkJZGV2X2RiZyhoZG1pLT5kZXYsICIlczogZnM9JXVIeiBmdGRtcz0lbHUuJTAzbHVNSHogTj0lZCBjdHM9JWRcbiIsCisJCQlfX2Z1bmNfXywgc2FtcGxlX3JhdGUsCisJCQlmdGRtcyAvIDEwMDAwMDAsIChmdGRtcyAvIDEwMDApICUgMTAwMCwKKwkJCW4sIGN0cyk7CisJfSBlbHNlIHsKKwkJY3RzID0gMDsKKwl9CiAKIAlzcGluX2xvY2tfaXJxKCZoZG1pLT5hdWRpb19sb2NrKTsKIAloZG1pLT5hdWRpb19uID0gbjsKQEAgLTYzMCw2ICs2NDUsNDIgQEAgdm9pZCBkd19oZG1pX3NldF9zYW1wbGVfcmF0ZShzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdW5zaWduZWQgaW50IHJhdGUpCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChkd19oZG1pX3NldF9zYW1wbGVfcmF0ZSk7CiAKK3ZvaWQgZHdfaGRtaV9zZXRfY2hhbm5lbF9jb3VudChzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdW5zaWduZWQgaW50IGNudCkKK3sKKwl1OCBsYXlvdXQ7CisKKwltdXRleF9sb2NrKCZoZG1pLT5hdWRpb19tdXRleCk7CisKKwkvKgorCSAqIEZvciA+MiBjaGFubmVsIFBDTSBhdWRpbywgd2UgbmVlZCB0byBzZWxlY3QgbGF5b3V0IDEKKwkgKiBhbmQgc2V0IGFuIGFwcHJvcHJpYXRlIGNoYW5uZWwgbWFwLgorCSAqLworCWlmIChjbnQgPiAyKQorCQlsYXlvdXQgPSBIRE1JX0ZDX0FVRFNDT05GX0FVRF9QQUNLRVRfTEFZT1VUX0xBWU9VVDE7CisJZWxzZQorCQlsYXlvdXQgPSBIRE1JX0ZDX0FVRFNDT05GX0FVRF9QQUNLRVRfTEFZT1VUX0xBWU9VVDA7CisKKwloZG1pX21vZGIoaGRtaSwgbGF5b3V0LCBIRE1JX0ZDX0FVRFNDT05GX0FVRF9QQUNLRVRfTEFZT1VUX01BU0ssCisJCSAgSERNSV9GQ19BVURTQ09ORik7CisKKwkvKiBTZXQgdGhlIGF1ZGlvIGluZm9mcmFtZXMgY2hhbm5lbCBjb3VudCAqLworCWhkbWlfbW9kYihoZG1pLCAoY250IC0gMSkgPDwgSERNSV9GQ19BVURJQ09ORjBfQ0NfT0ZGU0VULAorCQkgIEhETUlfRkNfQVVESUNPTkYwX0NDX01BU0ssIEhETUlfRkNfQVVESUNPTkYwKTsKKworCW11dGV4X3VubG9jaygmaGRtaS0+YXVkaW9fbXV0ZXgpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZHdfaGRtaV9zZXRfY2hhbm5lbF9jb3VudCk7CisKK3ZvaWQgZHdfaGRtaV9zZXRfY2hhbm5lbF9hbGxvY2F0aW9uKHN0cnVjdCBkd19oZG1pICpoZG1pLCB1bnNpZ25lZCBpbnQgY2EpCit7CisJbXV0ZXhfbG9jaygmaGRtaS0+YXVkaW9fbXV0ZXgpOworCisJaGRtaV93cml0ZWIoaGRtaSwgY2EsIEhETUlfRkNfQVVESUNPTkYyKTsKKworCW11dGV4X3VubG9jaygmaGRtaS0+YXVkaW9fbXV0ZXgpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZHdfaGRtaV9zZXRfY2hhbm5lbF9hbGxvY2F0aW9uKTsKKwogc3RhdGljIHZvaWQgaGRtaV9lbmFibGVfYXVkaW9fY2xrKHN0cnVjdCBkd19oZG1pICpoZG1pLCBib29sIGVuYWJsZSkKIHsKIAlpZiAoZW5hYmxlKQpAQCAtMjE3OSwyMCArMjIzMCw0NCBAQCBzdGF0aWMgaW50IGR3X2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQogCXN0cnVjdCBkd19oZG1pICpoZG1pID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBicmlkZ2UtPmVuY29kZXI7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZoZG1pLT5jb25uZWN0b3I7CisJc3RydWN0IGNlY19jb25uZWN0b3JfaW5mbyBjb25uX2luZm87CisJc3RydWN0IGNlY19ub3RpZmllciAqbm90aWZpZXI7CiAKIAljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gMTsKIAljb25uZWN0b3ItPnBvbGxlZCA9IERSTV9DT05ORUNUT1JfUE9MTF9IUEQ7CiAKIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLCAmZHdfaGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKIAotCWRybV9jb25uZWN0b3JfaW5pdChicmlkZ2UtPmRldiwgY29ubmVjdG9yLCAmZHdfaGRtaV9jb25uZWN0b3JfZnVuY3MsCi0JCQkgICBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUEpOworCWRybV9jb25uZWN0b3JfaW5pdF93aXRoX2RkYyhicmlkZ2UtPmRldiwgY29ubmVjdG9yLAorCQkJCSAgICAmZHdfaGRtaV9jb25uZWN0b3JfZnVuY3MsCisJCQkJICAgIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSwKKwkJCQkgICAgaGRtaS0+ZGRjKTsKIAogCWRybV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoY29ubmVjdG9yLCBlbmNvZGVyKTsKIAorCWNlY19maWxsX2Nvbm5faW5mb19mcm9tX2RybSgmY29ubl9pbmZvLCBjb25uZWN0b3IpOworCisJbm90aWZpZXIgPSBjZWNfbm90aWZpZXJfY29ubl9yZWdpc3RlcihoZG1pLT5kZXYsIE5VTEwsICZjb25uX2luZm8pOworCWlmICghbm90aWZpZXIpCisJCXJldHVybiAtRU5PTUVNOworCisJbXV0ZXhfbG9jaygmaGRtaS0+Y2VjX25vdGlmaWVyX211dGV4KTsKKwloZG1pLT5jZWNfbm90aWZpZXIgPSBub3RpZmllcjsKKwltdXRleF91bmxvY2soJmhkbWktPmNlY19ub3RpZmllcl9tdXRleCk7CisKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgZHdfaGRtaV9icmlkZ2VfZGV0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCit7CisJc3RydWN0IGR3X2hkbWkgKmhkbWkgPSBicmlkZ2UtPmRyaXZlcl9wcml2YXRlOworCisJbXV0ZXhfbG9jaygmaGRtaS0+Y2VjX25vdGlmaWVyX211dGV4KTsKKwljZWNfbm90aWZpZXJfY29ubl91bnJlZ2lzdGVyKGhkbWktPmNlY19ub3RpZmllcik7CisJaGRtaS0+Y2VjX25vdGlmaWVyID0gTlVMTDsKKwltdXRleF91bmxvY2soJmhkbWktPmNlY19ub3RpZmllcl9tdXRleCk7Cit9CisKIHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cwogZHdfaGRtaV9icmlkZ2VfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAogCQkJICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKQEAgLTIyNDksNiArMjMyNCw3IEBAIHN0YXRpYyB2b2lkIGR3X2hkbWlfYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgZHdfaGRtaV9icmlkZ2VfZnVuY3MgPSB7CiAJLmF0dGFjaCA9IGR3X2hkbWlfYnJpZGdlX2F0dGFjaCwKKwkuZGV0YWNoID0gZHdfaGRtaV9icmlkZ2VfZGV0YWNoLAogCS5lbmFibGUgPSBkd19oZG1pX2JyaWRnZV9lbmFibGUsCiAJLmRpc2FibGUgPSBkd19oZG1pX2JyaWRnZV9kaXNhYmxlLAogCS5tb2RlX3NldCA9IGR3X2hkbWlfYnJpZGdlX21vZGVfc2V0LApAQCAtMjM1Niw5ICsyNDMyLDExIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBkd19oZG1pX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJCQkJICAgICAgIHBoeV9zdGF0ICYgSERNSV9QSFlfSFBELAogCQkJCSAgICAgICBwaHlfc3RhdCAmIEhETUlfUEhZX1JYX1NFTlNFKTsKIAotCQlpZiAoKHBoeV9zdGF0ICYgKEhETUlfUEhZX1JYX1NFTlNFIHwgSERNSV9QSFlfSFBEKSkgPT0gMCkKLQkJCWNlY19ub3RpZmllcl9zZXRfcGh5c19hZGRyKGhkbWktPmNlY19ub3RpZmllciwKLQkJCQkJCSAgIENFQ19QSFlTX0FERFJfSU5WQUxJRCk7CisJCWlmICgocGh5X3N0YXQgJiAoSERNSV9QSFlfUlhfU0VOU0UgfCBIRE1JX1BIWV9IUEQpKSA9PSAwKSB7CisJCQltdXRleF9sb2NrKCZoZG1pLT5jZWNfbm90aWZpZXJfbXV0ZXgpOworCQkJY2VjX25vdGlmaWVyX3BoeXNfYWRkcl9pbnZhbGlkYXRlKGhkbWktPmNlY19ub3RpZmllcik7CisJCQltdXRleF91bmxvY2soJmhkbWktPmNlY19ub3RpZmllcl9tdXRleCk7CisJCX0KIAl9CiAKIAlpZiAoaW50cl9zdGF0ICYgSERNSV9JSF9QSFlfU1RBVDBfSFBEKSB7CkBAIC0yNTQ0LDYgKzI2MjIsNyBAQCBfX2R3X2hkbWlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAogCW11dGV4X2luaXQoJmhkbWktPm11dGV4KTsKIAltdXRleF9pbml0KCZoZG1pLT5hdWRpb19tdXRleCk7CisJbXV0ZXhfaW5pdCgmaGRtaS0+Y2VjX25vdGlmaWVyX211dGV4KTsKIAlzcGluX2xvY2tfaW5pdCgmaGRtaS0+YXVkaW9fbG9jayk7CiAKIAlkZGNfbm9kZSA9IG9mX3BhcnNlX3BoYW5kbGUobnAsICJkZGMtaTJjLWJ1cyIsIDApOwpAQCAtMjY3NiwxMiArMjc1NSw2IEBAIF9fZHdfaGRtaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCWlmIChyZXQpCiAJCWdvdG8gZXJyX2lhaGI7CiAKLQloZG1pLT5jZWNfbm90aWZpZXIgPSBjZWNfbm90aWZpZXJfZ2V0KGRldik7Ci0JaWYgKCFoZG1pLT5jZWNfbm90aWZpZXIpIHsKLQkJcmV0ID0gLUVOT01FTTsKLQkJZ290byBlcnJfaWFoYjsKLQl9Ci0KIAkvKgogCSAqIFRvIHByZXZlbnQgb3ZlcmZsb3dzIGluIEhETUlfSUhfRkNfU1RBVDIsIHNldCB0aGUgY2xrIHJlZ2VuZXJhdG9yCiAJICogTiBhbmQgY3RzIHZhbHVlcyBiZWZvcmUgZW5hYmxpbmcgcGh5CkBAIC0yNzQ2LDYgKzI4MTksNyBAQCBfX2R3X2hkbWlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJc3RydWN0IGR3X2hkbWlfaTJzX2F1ZGlvX2RhdGEgYXVkaW87CiAKIAkJYXVkaW8uaGRtaQk9IGhkbWk7CisJCWF1ZGlvLmVsZAk9IGhkbWktPmNvbm5lY3Rvci5lbGQ7CiAJCWF1ZGlvLndyaXRlCT0gaGRtaV93cml0ZWI7CiAJCWF1ZGlvLnJlYWQJPSBoZG1pX3JlYWRiOwogCQloZG1pLT5lbmFibGVfYXVkaW8gPSBkd19oZG1pX2kyc19hdWRpb19lbmFibGU7CkBAIC0yNzc5LDkgKzI4NTMsNiBAQCBfX2R3X2hkbWlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJaGRtaS0+ZGRjID0gTlVMTDsKIAl9CiAKLQlpZiAoaGRtaS0+Y2VjX25vdGlmaWVyKQotCQljZWNfbm90aWZpZXJfcHV0KGhkbWktPmNlY19ub3RpZmllcik7Ci0KIAljbGtfZGlzYWJsZV91bnByZXBhcmUoaGRtaS0+aWFoYl9jbGspOwogCWlmIChoZG1pLT5jZWNfY2xrKQogCQljbGtfZGlzYWJsZV91bnByZXBhcmUoaGRtaS0+Y2VjX2Nsayk7CkBAIC0yODAzLDkgKzI4NzQsNiBAQCBzdGF0aWMgdm9pZCBfX2R3X2hkbWlfcmVtb3ZlKHN0cnVjdCBkd19oZG1pICpoZG1pKQogCS8qIERpc2FibGUgYWxsIGludGVycnVwdHMgKi8KIAloZG1pX3dyaXRlYihoZG1pLCB+MCwgSERNSV9JSF9NVVRFX1BIWV9TVEFUMCk7CiAKLQlpZiAoaGRtaS0+Y2VjX25vdGlmaWVyKQotCQljZWNfbm90aWZpZXJfcHV0KGhkbWktPmNlY19ub3RpZmllcik7Ci0KIAljbGtfZGlzYWJsZV91bnByZXBhcmUoaGRtaS0+aWFoYl9jbGspOwogCWNsa19kaXNhYmxlX3VucHJlcGFyZShoZG1pLT5pc2ZyX2Nsayk7CiAJaWYgKGhkbWktPmNlY19jbGspCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuaCBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5oCmluZGV4IDRlM2VjMDkuLjY5ODhmMTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5oCkBAIC04NjUsMTIgKzg2NSwxOCBAQCBlbnVtIHsKIAogLyogQVVEX0NPTkYwIGZpZWxkIHZhbHVlcyAqLwogCUhETUlfQVVEX0NPTkYwX1NXX1JFU0VUID0gMHg4MCwKLQlIRE1JX0FVRF9DT05GMF9JMlNfQUxMX0VOQUJMRSA9IDB4MkYsCisJSERNSV9BVURfQ09ORjBfSTJTX1NFTEVDVCA9IDB4MjAsCisJSERNSV9BVURfQ09ORjBfSTJTX0VOMyA9IDB4MDgsCisJSERNSV9BVURfQ09ORjBfSTJTX0VOMiA9IDB4MDQsCisJSERNSV9BVURfQ09ORjBfSTJTX0VOMSA9IDB4MDIsCisJSERNSV9BVURfQ09ORjBfSTJTX0VOMCA9IDB4MDEsCiAKIC8qIEFVRF9DT05GMSBmaWVsZCB2YWx1ZXMgKi8KIAlIRE1JX0FVRF9DT05GMV9NT0RFX0kyUyA9IDB4MDAsCi0JSERNSV9BVURfQ09ORjFfTU9ERV9SSUdIVF9KID0gMHgwMiwKLQlIRE1JX0FVRF9DT05GMV9NT0RFX0xFRlRfSiA9IDB4MDQsCisJSERNSV9BVURfQ09ORjFfTU9ERV9SSUdIVF9KID0gMHgyMCwKKwlIRE1JX0FVRF9DT05GMV9NT0RFX0xFRlRfSiA9IDB4NDAsCisJSERNSV9BVURfQ09ORjFfTU9ERV9CVVJTVF8xID0gMHg2MCwKKwlIRE1JX0FVRF9DT05GMV9NT0RFX0JVUlNUXzIgPSAweDgwLAogCUhETUlfQVVEX0NPTkYxX1dJRFRIXzE2ID0gMHgxMCwKIAlIRE1JX0FVRF9DT05GMV9XSURUSF8yNCA9IDB4MTgsCiAKQEAgLTkzOCw2ICs5NDQsNyBAQCBlbnVtIHsKIAlIRE1JX01DX0NMS0RJU19QSVhFTENMS19ESVNBQkxFID0gMHgxLAogCiAvKiBNQ19TV1JTVFogZmllbGQgdmFsdWVzICovCisJSERNSV9NQ19TV1JTVFpfSTJTU1dSU1RfUkVRID0gMHgwOCwKIAlIRE1JX01DX1NXUlNUWl9UTURTU1dSU1RfUkVRID0gMHgwMiwKIAogLyogTUNfRkxPV0NUUkwgZmllbGQgdmFsdWVzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LW1pcGktZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LW1pcGktZHNpLmMKaW5kZXggMjgxYzU4Yi4uNjc1NDQyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctbWlwaS1kc2kuYwpAQCAtMTAsNiArMTAsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgpAQCAtODksNiArOTAsOCBAQAogI2RlZmluZSBWSURfTU9ERV9UWVBFX05PTl9CVVJTVF9TWU5DX0VWRU5UUwkweDEKICNkZWZpbmUgVklEX01PREVfVFlQRV9CVVJTVAkJCTB4MgogI2RlZmluZSBWSURfTU9ERV9UWVBFX01BU0sJCQkweDMKKyNkZWZpbmUgVklEX01PREVfVlBHX0VOQUJMRQkJQklUKDE2KQorI2RlZmluZSBWSURfTU9ERV9WUEdfSE9SSVpPTlRBTAkJQklUKDI0KQogCiAjZGVmaW5lIERTSV9WSURfUEtUX1NJWkUJCTB4M2MKICNkZWZpbmUgVklEX1BLVF9TSVpFKHApCQkJKChwKSAmIDB4M2ZmZikKQEAgLTIzMyw2ICsyMzYsMTMgQEAgc3RydWN0IGR3X21pcGlfZHNpIHsKIAl1MzIgZm9ybWF0OwogCXVuc2lnbmVkIGxvbmcgbW9kZV9mbGFnczsKIAorI2lmZGVmIENPTkZJR19ERUJVR19GUworCXN0cnVjdCBkZW50cnkgKmRlYnVnZnM7CisKKwlib29sIHZwZzsKKwlib29sIHZwZ19ob3Jpem9udGFsOworI2VuZGlmIC8qIENPTkZJR19ERUJVR19GUyAqLworCiAJc3RydWN0IGR3X21pcGlfZHNpICptYXN0ZXI7IC8qIGR1YWwtZHNpIG1hc3RlciBwdHIgKi8KIAlzdHJ1Y3QgZHdfbWlwaV9kc2kgKnNsYXZlOyAvKiBkdWFsLWRzaSBzbGF2ZSBwdHIgKi8KIApAQCAtNTE4LDYgKzUyOCwxMyBAQCBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV92aWRlb19tb2RlX2NvbmZpZyhzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSkKIAllbHNlCiAJCXZhbCB8PSBWSURfTU9ERV9UWVBFX05PTl9CVVJTVF9TWU5DX0VWRU5UUzsKIAorI2lmZGVmIENPTkZJR19ERUJVR19GUworCWlmIChkc2ktPnZwZykgeworCQl2YWwgfD0gVklEX01PREVfVlBHX0VOQUJMRTsKKwkJdmFsIHw9IGRzaS0+dnBnX2hvcml6b250YWwgPyBWSURfTU9ERV9WUEdfSE9SSVpPTlRBTCA6IDA7CisJfQorI2VuZGlmIC8qIENPTkZJR19ERUJVR19GUyAqLworCiAJZHNpX3dyaXRlKGRzaSwgRFNJX1ZJRF9NT0RFX0NGRywgdmFsKTsKIH0KIApAQCAtOTMwLDYgKzk0NywzMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgZHdfbWlwaV9kc2lfYnJpZGdlX2Z1bmNzID0gewogCS5hdHRhY2gJICAgICAgPSBkd19taXBpX2RzaV9icmlkZ2VfYXR0YWNoLAogfTsKIAorI2lmZGVmIENPTkZJR19ERUJVR19GUworCitzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9kZWJ1Z2ZzX2luaXQoc3RydWN0IGR3X21pcGlfZHNpICpkc2kpCit7CisJZHNpLT5kZWJ1Z2ZzID0gZGVidWdmc19jcmVhdGVfZGlyKGRldl9uYW1lKGRzaS0+ZGV2KSwgTlVMTCk7CisJaWYgKElTX0VSUihkc2ktPmRlYnVnZnMpKSB7CisJCWRldl9lcnIoZHNpLT5kZXYsICJmYWlsZWQgdG8gY3JlYXRlIGRlYnVnZnMgcm9vdFxuIik7CisJCXJldHVybjsKKwl9CisKKwlkZWJ1Z2ZzX2NyZWF0ZV9ib29sKCJ2cGciLCAwNjYwLCBkc2ktPmRlYnVnZnMsICZkc2ktPnZwZyk7CisJZGVidWdmc19jcmVhdGVfYm9vbCgidnBnX2hvcml6b250YWwiLCAwNjYwLCBkc2ktPmRlYnVnZnMsCisJCQkgICAgJmRzaS0+dnBnX2hvcml6b250YWwpOworfQorCitzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9kZWJ1Z2ZzX3JlbW92ZShzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSkKK3sKKwlkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoZHNpLT5kZWJ1Z2ZzKTsKK30KKworI2Vsc2UKKworc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfZGVidWdmc19pbml0KHN0cnVjdCBkd19taXBpX2RzaSAqZHNpKSB7IH0KK3N0YXRpYyB2b2lkIGR3X21pcGlfZHNpX2RlYnVnZnNfcmVtb3ZlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpKSB7IH0KKworI2VuZGlmIC8qIENPTkZJR19ERUJVR19GUyAqLworCiBzdGF0aWMgc3RydWN0IGR3X21pcGlfZHNpICoKIF9fZHdfbWlwaV9kc2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJICAgIGNvbnN0IHN0cnVjdCBkd19taXBpX2RzaV9wbGF0X2RhdGEgKnBsYXRfZGF0YSkKQEAgLTEwMDAsNiArMTA0NCw3IEBAIF9fZHdfbWlwaV9kc2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRzaS0+cGNsayk7CiAJfQogCisJZHdfbWlwaV9kc2lfZGVidWdmc19pbml0KGRzaSk7CiAJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKIAogCWRzaS0+ZHNpX2hvc3Qub3BzID0gJmR3X21pcGlfZHNpX2hvc3Rfb3BzOwpAQCAtMTAwNyw2ICsxMDUyLDcgQEAgX19kd19taXBpX2RzaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCXJldCA9IG1pcGlfZHNpX2hvc3RfcmVnaXN0ZXIoJmRzaS0+ZHNpX2hvc3QpOwogCWlmIChyZXQpIHsKIAkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgTUlQSSBob3N0OiAlZFxuIiwgcmV0KTsKKwkJZHdfbWlwaV9kc2lfZGVidWdmc19yZW1vdmUoZHNpKTsKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKQEAgLTEwMjQsNiArMTA3MCw3IEBAIHN0YXRpYyB2b2lkIF9fZHdfbWlwaV9kc2lfcmVtb3ZlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpKQogCW1pcGlfZHNpX2hvc3RfdW5yZWdpc3RlcigmZHNpLT5kc2lfaG9zdCk7CiAKIAlwbV9ydW50aW1lX2Rpc2FibGUoZHNpLT5kZXYpOworCWR3X21pcGlfZHNpX2RlYnVnZnNfcmVtb3ZlKGRzaSk7CiB9CiAKIHZvaWQgZHdfbWlwaV9kc2lfc2V0X3NsYXZlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLCBzdHJ1Y3QgZHdfbWlwaV9kc2kgKnNsYXZlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCmluZGV4IDEzYWRlMjguLmNlYmM4ZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMKQEAgLTE1LDYgKzE1LDcgQEAKICAqIEF1dGhvcjogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KQEAgLTQ3LDYgKzQ4LDcgQEAKIAogLyogVmlkZW8gUGF0aCAqLwogI2RlZmluZSBWUENUUkwwCQkJMHgwNDUwCisjZGVmaW5lIFZTREVMQVkJCQlHRU5NQVNLKDMxLCAyMCkKICNkZWZpbmUgT1BYTEZNVF9SR0I2NjYJCQkoMCA8PCA4KQogI2RlZmluZSBPUFhMRk1UX1JHQjg4OAkJCSgxIDw8IDgpCiAjZGVmaW5lIEZSTVNZTkNfRElTQUJMRUQJCSgwIDw8IDQpIC8qIFZpZGVvIFRpbWluZyBHZW4gRGlzYWJsZWQgKi8KQEAgLTU0LDkgKzU2LDE3IEBACiAjZGVmaW5lIE1TRl9ESVNBQkxFRAkJCSgwIDw8IDApIC8qIE1hZ2ljIFNxdWFyZSBGUkMgZGlzYWJsZWQgKi8KICNkZWZpbmUgTVNGX0VOQUJMRUQJCQkoMSA8PCAwKSAvKiBNYWdpYyBTcXVhcmUgRlJDIGVuYWJsZWQgKi8KICNkZWZpbmUgSFRJTTAxCQkJMHgwNDU0CisjZGVmaW5lIEhQVwkJCUdFTk1BU0soOCwgMCkKKyNkZWZpbmUgSEJQUgkJCUdFTk1BU0soMjQsIDE2KQogI2RlZmluZSBIVElNMDIJCQkweDA0NTgKKyNkZWZpbmUgSERJU1BSCQkJR0VOTUFTSygxMCwgMCkKKyNkZWZpbmUgSEZQUgkJCUdFTk1BU0soMjQsIDE2KQogI2RlZmluZSBWVElNMDEJCQkweDA0NWMKKyNkZWZpbmUgVlNQUgkJCUdFTk1BU0soNywgMCkKKyNkZWZpbmUgVkJQUgkJCUdFTk1BU0soMjMsIDE2KQogI2RlZmluZSBWVElNMDIJCQkweDA0NjAKKyNkZWZpbmUgVkZQUgkJCUdFTk1BU0soMjMsIDE2KQorI2RlZmluZSBWRElTUFIJCQlHRU5NQVNLKDEwLCAwKQogI2RlZmluZSBWRlVFTjAJCQkweDA0NjQKICNkZWZpbmUgVkZVRU4JCQkJQklUKDApICAgLyogVmlkZW8gRnJhbWUgVGltaW5nIFVwbG9hZCAqLwogCkBAIC03MCw2ICs4MCwxMyBAQAogI2RlZmluZSBEUDBfVklEU1JDX0RTSV9SWAkJKDEgPDwgMCkKICNkZWZpbmUgRFAwX1ZJRFNSQ19EUElfUlgJCSgyIDw8IDApCiAjZGVmaW5lIERQMF9WSURTUkNfQ09MT1JfQkFSCQkoMyA8PCAwKQorI2RlZmluZSBTWVNSU1RFTkIJCTB4MDUwYworI2RlZmluZSBFTkJJMkMJCQkJKDEgPDwgMCkKKyNkZWZpbmUgRU5CTENEMAkJCQkoMSA8PCAyKQorI2RlZmluZSBFTkJCTQkJCQkoMSA8PCAzKQorI2RlZmluZSBFTkJEU0lSWAkJCSgxIDw8IDQpCisjZGVmaW5lIEVOQlJFRwkJCQkoMSA8PCA1KQorI2RlZmluZSBFTkJIRENQCQkJCSgxIDw8IDgpCiAjZGVmaW5lIEdQSU9NCQkJMHgwNTQwCiAjZGVmaW5lIEdQSU9DCQkJMHgwNTQ0CiAjZGVmaW5lIEdQSU9PCQkJMHgwNTQ4CkBAIC05OSwxOSArMTE2LDM1IEBACiAvKiBNYWluIENoYW5uZWwgKi8KICNkZWZpbmUgRFAwX1NFQ1NBTVBMRQkJMHgwNjQwCiAjZGVmaW5lIERQMF9WSURTWU5DREVMQVkJMHgwNjQ0CisjZGVmaW5lIFZJRF9TWU5DX0RMWQkJR0VOTUFTSygxNSwgMCkKKyNkZWZpbmUgVEhSRVNIX0RMWQkJR0VOTUFTSygzMSwgMTYpCisKICNkZWZpbmUgRFAwX1RPVEFMVkFMCQkweDA2NDgKKyNkZWZpbmUgSF9UT1RBTAkJCUdFTk1BU0soMTUsIDApCisjZGVmaW5lIFZfVE9UQUwJCQlHRU5NQVNLKDMxLCAxNikKICNkZWZpbmUgRFAwX1NUQVJUVkFMCQkweDA2NGMKKyNkZWZpbmUgSF9TVEFSVAkJCUdFTk1BU0soMTUsIDApCisjZGVmaW5lIFZfU1RBUlQJCQlHRU5NQVNLKDMxLCAxNikKICNkZWZpbmUgRFAwX0FDVElWRVZBTAkJMHgwNjUwCisjZGVmaW5lIEhfQUNUCQkJR0VOTUFTSygxNSwgMCkKKyNkZWZpbmUgVl9BQ1QJCQlHRU5NQVNLKDMxLCAxNikKKwogI2RlZmluZSBEUDBfU1lOQ1ZBTAkJMHgwNjU0CisjZGVmaW5lIFZTX1dJRFRICQlHRU5NQVNLKDMwLCAxNikKKyNkZWZpbmUgSFNfV0lEVEgJCUdFTk1BU0soMTQsIDApCiAjZGVmaW5lIFNZTkNWQUxfSFNfUE9MX0FDVElWRV9MT1cJKDEgPDwgMTUpCiAjZGVmaW5lIFNZTkNWQUxfVlNfUE9MX0FDVElWRV9MT1cJKDEgPDwgMzEpCiAjZGVmaW5lIERQMF9NSVNDCQkweDA2NTgKICNkZWZpbmUgVFVfU0laRV9SRUNPTU1FTkRFRAkJKDYzKSAvKiBMU0NMSyBjeWNsZXMgcGVyIFRVICovCisjZGVmaW5lIE1BWF9UVV9TWU1CT0wJCUdFTk1BU0soMjgsIDIzKQorI2RlZmluZSBUVV9TSVpFCQkJR0VOTUFTSygyMSwgMTYpCiAjZGVmaW5lIEJQQ182CQkJCSgwIDw8IDUpCiAjZGVmaW5lIEJQQ184CQkJCSgxIDw8IDUpCiAKIC8qIEFVWCBjaGFubmVsICovCiAjZGVmaW5lIERQMF9BVVhDRkcwCQkweDA2NjAKKyNkZWZpbmUgRFAwX0FVWENGRzBfQlNJWkUJR0VOTUFTSygxMSwgOCkKKyNkZWZpbmUgRFAwX0FVWENGRzBfQUREUl9PTkxZCUJJVCg0KQogI2RlZmluZSBEUDBfQVVYQ0ZHMQkJMHgwNjY0CiAjZGVmaW5lIEFVWF9SWF9GSUxURVJfRU4JCUJJVCgxNikKIApAQCAtMTE5LDEwICsxNTIsMTAgQEAKICNkZWZpbmUgRFAwX0FVWFdEQVRBKGkpCQkoMHgwNjZjICsgKGkpICogNCkKICNkZWZpbmUgRFAwX0FVWFJEQVRBKGkpCQkoMHgwNjdjICsgKGkpICogNCkKICNkZWZpbmUgRFAwX0FVWFNUQVRVUwkJMHgwNjhjCi0jZGVmaW5lIEFVWF9TVEFUVVNfTUFTSwkJCTB4ZjAKLSNkZWZpbmUgQVVYX1NUQVRVU19TSElGVAkJNAotI2RlZmluZSBBVVhfVElNRU9VVAkJCUJJVCgxKQotI2RlZmluZSBBVVhfQlVTWQkJCUJJVCgwKQorI2RlZmluZSBBVVhfQllURVMJCUdFTk1BU0soMTUsIDgpCisjZGVmaW5lIEFVWF9TVEFUVVMJCUdFTk1BU0soNywgNCkKKyNkZWZpbmUgQVVYX1RJTUVPVVQJCUJJVCgxKQorI2RlZmluZSBBVVhfQlVTWQkJQklUKDApCiAjZGVmaW5lIERQMF9BVVhJMkNBRFIJCTB4MDY5OAogCiAvKiBMaW5rIFRyYWluaW5nICovCkBAIC0xODMsNiArMjE2LDEyIEBACiAKIC8qIFRlc3QgJiBEZWJ1ZyAqLwogI2RlZmluZSBUU1RDVEwJCQkweDBhMDAKKyNkZWZpbmUgQ09MT1JfUgkJCUdFTk1BU0soMzEsIDI0KQorI2RlZmluZSBDT0xPUl9HCQkJR0VOTUFTSygyMywgMTYpCisjZGVmaW5lIENPTE9SX0IJCQlHRU5NQVNLKDE1LCA4KQorI2RlZmluZSBFTkkyQ0ZJTFRFUgkJQklUKDQpCisjZGVmaW5lIENPTE9SX0JBUl9NT0RFCQlHRU5NQVNLKDEsIDApCisjZGVmaW5lIENPTE9SX0JBUl9NT0RFX0JBUlMJMgogI2RlZmluZSBQTExfREJHCQkJMHgwYTA0CiAKIHN0YXRpYyBib29sIHRjX3Rlc3RfcGF0dGVybjsKQEAgLTI0MSwxMzcgKzI4MCwxMzEgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdGNfZGF0YSAqY29ubmVjdG9yX3RvX3RjKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjKQogCXJldHVybiBjb250YWluZXJfb2YoYywgc3RydWN0IHRjX2RhdGEsIGNvbm5lY3Rvcik7CiB9CiAKLS8qIFNpbXBsZSBtYWNyb3MgdG8gYXZvaWQgcmVwZWF0ZWQgZXJyb3IgY2hlY2tzICovCi0jZGVmaW5lIHRjX3dyaXRlKHJlZywgdmFyKQkJCQkJXAotCWRvIHsJCQkJCQkJXAotCQlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgcmVnLCB2YXIpOwlcCi0JCWlmIChyZXQpCQkJCQlcCi0JCQlnb3RvIGVycjsJCQkJXAotCX0gd2hpbGUgKDApCi0jZGVmaW5lIHRjX3JlYWQocmVnLCB2YXIpCQkJCQlcCi0JZG8gewkJCQkJCQlcCi0JCXJldCA9IHJlZ21hcF9yZWFkKHRjLT5yZWdtYXAsIHJlZywgdmFyKTsJXAotCQlpZiAocmV0KQkJCQkJXAotCQkJZ290byBlcnI7CQkJCVwKLQl9IHdoaWxlICgwKQotCi1zdGF0aWMgaW5saW5lIGludCB0Y19wb2xsX3RpbWVvdXQoc3RydWN0IHJlZ21hcCAqbWFwLCB1bnNpZ25lZCBpbnQgYWRkciwKK3N0YXRpYyBpbmxpbmUgaW50IHRjX3BvbGxfdGltZW91dChzdHJ1Y3QgdGNfZGF0YSAqdGMsIHVuc2lnbmVkIGludCBhZGRyLAogCQkJCSAgdW5zaWduZWQgaW50IGNvbmRfbWFzaywKIAkJCQkgIHVuc2lnbmVkIGludCBjb25kX3ZhbHVlLAogCQkJCSAgdW5zaWduZWQgbG9uZyBzbGVlcF91cywgdTY0IHRpbWVvdXRfdXMpCiB7Ci0Ja3RpbWVfdCB0aW1lb3V0ID0ga3RpbWVfYWRkX3VzKGt0aW1lX2dldCgpLCB0aW1lb3V0X3VzKTsKIAl1bnNpZ25lZCBpbnQgdmFsOwotCWludCByZXQ7CiAKLQlmb3IgKDs7KSB7Ci0JCXJldCA9IHJlZ21hcF9yZWFkKG1hcCwgYWRkciwgJnZhbCk7Ci0JCWlmIChyZXQpCi0JCQlicmVhazsKLQkJaWYgKCh2YWwgJiBjb25kX21hc2spID09IGNvbmRfdmFsdWUpCi0JCQlicmVhazsKLQkJaWYgKHRpbWVvdXRfdXMgJiYga3RpbWVfY29tcGFyZShrdGltZV9nZXQoKSwgdGltZW91dCkgPiAwKSB7Ci0JCQlyZXQgPSByZWdtYXBfcmVhZChtYXAsIGFkZHIsICZ2YWwpOwotCQkJYnJlYWs7Ci0JCX0KLQkJaWYgKHNsZWVwX3VzKQotCQkJdXNsZWVwX3JhbmdlKChzbGVlcF91cyA+PiAyKSArIDEsIHNsZWVwX3VzKTsKLQl9Ci0JcmV0dXJuIHJldCA/OiAoKCh2YWwgJiBjb25kX21hc2spID09IGNvbmRfdmFsdWUpID8gMCA6IC1FVElNRURPVVQpOworCXJldHVybiByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQodGMtPnJlZ21hcCwgYWRkciwgdmFsLAorCQkJCQkodmFsICYgY29uZF9tYXNrKSA9PSBjb25kX3ZhbHVlLAorCQkJCQlzbGVlcF91cywgdGltZW91dF91cyk7CiB9CiAKLXN0YXRpYyBpbnQgdGNfYXV4X3dhaXRfYnVzeShzdHJ1Y3QgdGNfZGF0YSAqdGMsIHVuc2lnbmVkIGludCB0aW1lb3V0X21zKQorc3RhdGljIGludCB0Y19hdXhfd2FpdF9idXN5KHN0cnVjdCB0Y19kYXRhICp0YykKIHsKLQlyZXR1cm4gdGNfcG9sbF90aW1lb3V0KHRjLT5yZWdtYXAsIERQMF9BVVhTVEFUVVMsIEFVWF9CVVNZLCAwLAotCQkJICAgICAgIDEwMDAsIDEwMDAgKiB0aW1lb3V0X21zKTsKKwlyZXR1cm4gdGNfcG9sbF90aW1lb3V0KHRjLCBEUDBfQVVYU1RBVFVTLCBBVVhfQlVTWSwgMCwgMTAwMCwgMTAwMDAwKTsKIH0KIAotc3RhdGljIGludCB0Y19hdXhfZ2V0X3N0YXR1cyhzdHJ1Y3QgdGNfZGF0YSAqdGMsIHU4ICpyZXBseSkKK3N0YXRpYyBpbnQgdGNfYXV4X3dyaXRlX2RhdGEoc3RydWN0IHRjX2RhdGEgKnRjLCBjb25zdCB2b2lkICpkYXRhLAorCQkJICAgICBzaXplX3Qgc2l6ZSkKIHsKLQlpbnQgcmV0OwotCXUzMiB2YWx1ZTsKKwl1MzIgYXV4d2RhdGFbRFBfQVVYX01BWF9QQVlMT0FEX0JZVEVTIC8gc2l6ZW9mKHUzMildID0geyAwIH07CisJaW50IHJldCwgY291bnQgPSBBTElHTihzaXplLCBzaXplb2YodTMyKSk7CiAKLQlyZXQgPSByZWdtYXBfcmVhZCh0Yy0+cmVnbWFwLCBEUDBfQVVYU1RBVFVTLCAmdmFsdWUpOwotCWlmIChyZXQgPCAwKQorCW1lbWNweShhdXh3ZGF0YSwgZGF0YSwgc2l6ZSk7CisKKwlyZXQgPSByZWdtYXBfcmF3X3dyaXRlKHRjLT5yZWdtYXAsIERQMF9BVVhXREFUQSgwKSwgYXV4d2RhdGEsIGNvdW50KTsKKwlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaWYgKHZhbHVlICYgQVVYX0JVU1kpIHsKLQkJZGV2X2Vycih0Yy0+ZGV2LCAiYXV4IGJ1c3khXG4iKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9CisJcmV0dXJuIHNpemU7Cit9CiAKLQlpZiAodmFsdWUgJiBBVVhfVElNRU9VVCkgewotCQlkZXZfZXJyKHRjLT5kZXYsICJhdXggYWNjZXNzIHRpbWVvdXQhXG4iKTsKLQkJcmV0dXJuIC1FVElNRURPVVQ7Ci0JfQorc3RhdGljIGludCB0Y19hdXhfcmVhZF9kYXRhKHN0cnVjdCB0Y19kYXRhICp0Yywgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUpCit7CisJdTMyIGF1eHJkYXRhW0RQX0FVWF9NQVhfUEFZTE9BRF9CWVRFUyAvIHNpemVvZih1MzIpXTsKKwlpbnQgcmV0LCBjb3VudCA9IEFMSUdOKHNpemUsIHNpemVvZih1MzIpKTsKIAotCSpyZXBseSA9ICh2YWx1ZSAmIEFVWF9TVEFUVVNfTUFTSykgPj4gQVVYX1NUQVRVU19TSElGVDsKLQlyZXR1cm4gMDsKKwlyZXQgPSByZWdtYXBfcmF3X3JlYWQodGMtPnJlZ21hcCwgRFAwX0FVWFJEQVRBKDApLCBhdXhyZGF0YSwgY291bnQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwltZW1jcHkoZGF0YSwgYXV4cmRhdGEsIHNpemUpOworCisJcmV0dXJuIHNpemU7Cit9CisKK3N0YXRpYyB1MzIgdGNfYXV4Y2ZnMChzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZywgc2l6ZV90IHNpemUpCit7CisJdTMyIGF1eGNmZzAgPSBtc2ctPnJlcXVlc3Q7CisKKwlpZiAoc2l6ZSkKKwkJYXV4Y2ZnMCB8PSBGSUVMRF9QUkVQKERQMF9BVVhDRkcwX0JTSVpFLCBzaXplIC0gMSk7CisJZWxzZQorCQlhdXhjZmcwIHw9IERQMF9BVVhDRkcwX0FERFJfT05MWTsKKworCXJldHVybiBhdXhjZmcwOwogfQogCiBzdGF0aWMgc3NpemVfdCB0Y19hdXhfdHJhbnNmZXIoc3RydWN0IGRybV9kcF9hdXggKmF1eCwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZykKIHsKIAlzdHJ1Y3QgdGNfZGF0YSAqdGMgPSBhdXhfdG9fdGMoYXV4KTsKLQlzaXplX3Qgc2l6ZSA9IG1pbl90KHNpemVfdCwgOCwgbXNnLT5zaXplKTsKKwlzaXplX3Qgc2l6ZSA9IG1pbl90KHNpemVfdCwgRFBfQVVYX01BWF9QQVlMT0FEX0JZVEVTIC0gMSwgbXNnLT5zaXplKTsKIAl1OCByZXF1ZXN0ID0gbXNnLT5yZXF1ZXN0ICYgfkRQX0FVWF9JMkNfTU9UOwotCXU4ICpidWYgPSBtc2ctPmJ1ZmZlcjsKLQl1MzIgdG1wID0gMDsKLQlpbnQgaSA9IDA7CisJdTMyIGF1eHN0YXR1czsKIAlpbnQgcmV0OwogCi0JaWYgKHNpemUgPT0gMCkKLQkJcmV0dXJuIDA7Ci0KLQlyZXQgPSB0Y19hdXhfd2FpdF9idXN5KHRjLCAxMDApOworCXJldCA9IHRjX2F1eF93YWl0X2J1c3kodGMpOwogCWlmIChyZXQpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCi0JaWYgKHJlcXVlc3QgPT0gRFBfQVVYX0kyQ19XUklURSB8fCByZXF1ZXN0ID09IERQX0FVWF9OQVRJVkVfV1JJVEUpIHsKLQkJLyogU3RvcmUgZGF0YSAqLwotCQl3aGlsZSAoaSA8IHNpemUpIHsKLQkJCWlmIChyZXF1ZXN0ID09IERQX0FVWF9OQVRJVkVfV1JJVEUpCi0JCQkJdG1wID0gdG1wIHwgKGJ1ZltpXSA8PCAoOCAqIChpICYgMHgzKSkpOwotCQkJZWxzZQotCQkJCXRtcCA9ICh0bXAgPDwgOCkgfCBidWZbaV07Ci0JCQlpKys7Ci0JCQlpZiAoKChpICUgNCkgPT0gMCkgfHwgKGkgPT0gc2l6ZSkpIHsKLQkJCQl0Y193cml0ZShEUDBfQVVYV0RBVEEoKGkgLSAxKSA+PiAyKSwgdG1wKTsKLQkJCQl0bXAgPSAwOwotCQkJfQorCXN3aXRjaCAocmVxdWVzdCkgeworCWNhc2UgRFBfQVVYX05BVElWRV9SRUFEOgorCWNhc2UgRFBfQVVYX0kyQ19SRUFEOgorCQlicmVhazsKKwljYXNlIERQX0FVWF9OQVRJVkVfV1JJVEU6CisJY2FzZSBEUF9BVVhfSTJDX1dSSVRFOgorCQlpZiAoc2l6ZSkgeworCQkJcmV0ID0gdGNfYXV4X3dyaXRlX2RhdGEodGMsIG1zZy0+YnVmZmVyLCBzaXplKTsKKwkJCWlmIChyZXQgPCAwKQorCQkJCXJldHVybiByZXQ7CiAJCX0KLQl9IGVsc2UgaWYgKHJlcXVlc3QgIT0gRFBfQVVYX0kyQ19SRUFEICYmCi0JCSAgIHJlcXVlc3QgIT0gRFBfQVVYX05BVElWRV9SRUFEKSB7CisJCWJyZWFrOworCWRlZmF1bHQ6CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAogCS8qIFN0b3JlIGFkZHJlc3MgKi8KLQl0Y193cml0ZShEUDBfQVVYQUREUiwgbXNnLT5hZGRyZXNzKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwX0FVWEFERFIsIG1zZy0+YWRkcmVzcyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAkvKiBTdGFydCB0cmFuc2ZlciAqLwotCXRjX3dyaXRlKERQMF9BVVhDRkcwLCAoKHNpemUgLSAxKSA8PCA4KSB8IHJlcXVlc3QpOwotCi0JcmV0ID0gdGNfYXV4X3dhaXRfYnVzeSh0YywgMTAwKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwX0FVWENGRzAsIHRjX2F1eGNmZzAobXNnLCBzaXplKSk7CiAJaWYgKHJldCkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKLQlyZXQgPSB0Y19hdXhfZ2V0X3N0YXR1cyh0YywgJm1zZy0+cmVwbHkpOworCXJldCA9IHRjX2F1eF93YWl0X2J1c3kodGMpOwogCWlmIChyZXQpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCi0JaWYgKHJlcXVlc3QgPT0gRFBfQVVYX0kyQ19SRUFEIHx8IHJlcXVlc3QgPT0gRFBfQVVYX05BVElWRV9SRUFEKSB7Ci0JCS8qIFJlYWQgZGF0YSAqLwotCQl3aGlsZSAoaSA8IHNpemUpIHsKLQkJCWlmICgoaSAlIDQpID09IDApCi0JCQkJdGNfcmVhZChEUDBfQVVYUkRBVEEoaSA+PiAyKSwgJnRtcCk7Ci0JCQlidWZbaV0gPSB0bXAgJiAweGZmOwotCQkJdG1wID0gdG1wID4+IDg7Ci0JCQlpKys7Ci0JCX0KKwlyZXQgPSByZWdtYXBfcmVhZCh0Yy0+cmVnbWFwLCBEUDBfQVVYU1RBVFVTLCAmYXV4c3RhdHVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJaWYgKGF1eHN0YXR1cyAmIEFVWF9USU1FT1VUKQorCQlyZXR1cm4gLUVUSU1FRE9VVDsKKwkvKgorCSAqIEZvciBzb21lIHJlYXNvbiBhZGRyZXNzLW9ubHkgRFBfQVVYX0kyQ19XUklURSAoTU9UKSwgc3RpbGwKKwkgKiByZXBvcnRzIDEgYnl0ZSB0cmFuc2ZlcnJlZCBpbiBpdHMgc3RhdHVzLiBUbyBkZWFsIHdlIHRoYXQKKwkgKiB3ZSBpZ25vcmUgYXV4X2J5dGVzIGZpZWxkIGlmIHdlIGtub3cgdGhhdCB0aGlzIHdhcyBhbgorCSAqIGFkZHJlc3Mtb25seSB0cmFuc2ZlcgorCSAqLworCWlmIChzaXplKQorCQlzaXplID0gRklFTERfR0VUKEFVWF9CWVRFUywgYXV4c3RhdHVzKTsKKwltc2ctPnJlcGx5ID0gRklFTERfR0VUKEFVWF9TVEFUVVMsIGF1eHN0YXR1cyk7CisKKwlzd2l0Y2ggKHJlcXVlc3QpIHsKKwljYXNlIERQX0FVWF9OQVRJVkVfUkVBRDoKKwljYXNlIERQX0FVWF9JMkNfUkVBRDoKKwkJaWYgKHNpemUpCisJCQlyZXR1cm4gdGNfYXV4X3JlYWRfZGF0YSh0YywgbXNnLT5idWZmZXIsIHNpemUpOworCQlicmVhazsKIAl9CiAKIAlyZXR1cm4gc2l6ZTsKLWVycjoKLQlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRyYWluaW5nX3BhdHRlcm4xX2Vycm9yc1tdID0gewpAQCAtNDExLDEwICs0NDQsMTggQEAgc3RhdGljIHUzMiB0Y19zcmNjdHJsKHN0cnVjdCB0Y19kYXRhICp0YykKIAlyZXR1cm4gcmVnOwogfQogCi1zdGF0aWMgdm9pZCB0Y193YWl0X3BsbF9sb2NrKHN0cnVjdCB0Y19kYXRhICp0YykKK3N0YXRpYyBpbnQgdGNfcGxsdXBkYXRlKHN0cnVjdCB0Y19kYXRhICp0YywgdW5zaWduZWQgaW50IHBsbGN0cmwpCiB7CisJaW50IHJldDsKKworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBwbGxjdHJsLCBQTExVUERBVEUgfCBQTExFTik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwogCS8qIFdhaXQgZm9yIFBMTCB0byBsb2NrOiB1cCB0byAyLjA5IG1zLCBkZXBlbmRpbmcgb24gcmVmY2xrICovCiAJdXNsZWVwX3JhbmdlKDMwMDAsIDYwMDApOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgdGNfcHhsX3BsbF9lbihzdHJ1Y3QgdGNfZGF0YSAqdGMsIHUzMiByZWZjbGssIHUzMiBwaXhlbGNsb2NrKQpAQCAtNDI4LDYgKzQ2OSw3IEBAIHN0YXRpYyBpbnQgdGNfcHhsX3BsbF9lbihzdHJ1Y3QgdGNfZGF0YSAqdGMsIHUzMiByZWZjbGssIHUzMiBwaXhlbGNsb2NrKQogCWludCBleHRfZGl2W10gPSB7MSwgMiwgMywgNSwgN307CiAJaW50IGJlc3RfcGl4ZWxjbG9jayA9IDA7CiAJaW50IHZjb19oaSA9IDA7CisJdTMyIHB4bF9wbGxwYXJhbTsKIAogCWRldl9kYmcodGMtPmRldiwgIlBMTDogcmVxdWVzdGVkICVkIHBpeGVsY2xvY2ssIHJlZiAlZFxuIiwgcGl4ZWxjbG9jaywKIAkJcmVmY2xrKTsKQEAgLTQ5NywyNCArNTM5LDIzIEBAIHN0YXRpYyBpbnQgdGNfcHhsX3BsbF9lbihzdHJ1Y3QgdGNfZGF0YSAqdGMsIHUzMiByZWZjbGssIHUzMiBwaXhlbGNsb2NrKQogCQliZXN0X211bCA9IDA7CiAKIAkvKiBQb3dlciB1cCBQTEwgYW5kIHN3aXRjaCB0byBieXBhc3MgKi8KLQl0Y193cml0ZShQWExfUExMQ1RSTCwgUExMQllQIHwgUExMRU4pOworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBQWExfUExMQ1RSTCwgUExMQllQIHwgUExMRU4pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKLQl0Y193cml0ZShQWExfUExMUEFSQU0sCi0JCSAodmNvX2hpIDw8IDI0KSB8CQkvKiBGb3IgUExMIFZDTyA+PSAzMDAgTUh6ID0gMSAqLwotCQkgKGV4dF9kaXZbYmVzdF9wcmVdIDw8IDIwKSB8CS8qIEV4dGVybmFsIFByZS1kaXZpZGVyICovCi0JCSAoZXh0X2RpdltiZXN0X3Bvc3RdIDw8IDE2KSB8CS8qIEV4dGVybmFsIFBvc3QtZGl2aWRlciAqLwotCQkgSU5fU0VMX1JFRkNMSyB8CQkvKiBVc2UgUmVmQ2xrIGFzIFBMTCBpbnB1dCAqLwotCQkgKGJlc3RfZGl2IDw8IDgpIHwJCS8qIERpdmlkZXIgZm9yIFBMTCBSZWZDbGsgKi8KLQkJIChiZXN0X211bCA8PCAwKSk7CQkvKiBNdWx0aXBsaWVyIGZvciBQTEwgKi8KKwlweGxfcGxscGFyYW0gID0gdmNvX2hpIDw8IDI0OyAvKiBGb3IgUExMIFZDTyA+PSAzMDAgTUh6ID0gMSAqLworCXB4bF9wbGxwYXJhbSB8PSBleHRfZGl2W2Jlc3RfcHJlXSA8PCAyMDsgLyogRXh0ZXJuYWwgUHJlLWRpdmlkZXIgKi8KKwlweGxfcGxscGFyYW0gfD0gZXh0X2RpdltiZXN0X3Bvc3RdIDw8IDE2OyAvKiBFeHRlcm5hbCBQb3N0LWRpdmlkZXIgKi8KKwlweGxfcGxscGFyYW0gfD0gSU5fU0VMX1JFRkNMSzsgLyogVXNlIFJlZkNsayBhcyBQTEwgaW5wdXQgKi8KKwlweGxfcGxscGFyYW0gfD0gYmVzdF9kaXYgPDwgODsgLyogRGl2aWRlciBmb3IgUExMIFJlZkNsayAqLworCXB4bF9wbGxwYXJhbSB8PSBiZXN0X211bDsgLyogTXVsdGlwbGllciBmb3IgUExMICovCisKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgUFhMX1BMTFBBUkFNLCBweGxfcGxscGFyYW0pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAkvKiBGb3JjZSBQTEwgcGFyYW1ldGVyIHVwZGF0ZSBhbmQgZGlzYWJsZSBieXBhc3MgKi8KLQl0Y193cml0ZShQWExfUExMQ1RSTCwgUExMVVBEQVRFIHwgUExMRU4pOwotCi0JdGNfd2FpdF9wbGxfbG9jayh0Yyk7Ci0KLQlyZXR1cm4gMDsKLWVycjoKLQlyZXR1cm4gcmV0OworCXJldHVybiB0Y19wbGx1cGRhdGUodGMsIFBYTF9QTExDVFJMKTsKIH0KIAogc3RhdGljIGludCB0Y19weGxfcGxsX2RpcyhzdHJ1Y3QgdGNfZGF0YSAqdGMpCkBAIC01MjUsNyArNTY2LDYgQEAgc3RhdGljIGludCB0Y19weGxfcGxsX2RpcyhzdHJ1Y3QgdGNfZGF0YSAqdGMpCiAKIHN0YXRpYyBpbnQgdGNfc3RyZWFtX2Nsb2NrX2NhbGMoc3RydWN0IHRjX2RhdGEgKnRjKQogewotCWludCByZXQ7CiAJLyoKIAkgKiBJZiB0aGUgU3RyZWFtIGNsb2NrIGFuZCBMaW5rIFN5bWJvbCBjbG9jayBhcmUKIAkgKiBhc3luY2hyb25vdXMgd2l0aCBlYWNoIG90aGVyLCB0aGUgdmFsdWUgb2YgTSBjaGFuZ2VzIG92ZXIKQEAgLTU0MSw1NiArNTgxLDYzIEBAIHN0YXRpYyBpbnQgdGNfc3RyZWFtX2Nsb2NrX2NhbGMoc3RydWN0IHRjX2RhdGEgKnRjKQogCSAqIE0vTiA9IGZfU1RSTUNMSyAvIGZfTFNDTEsKIAkgKgogCSAqLwotCXRjX3dyaXRlKERQMF9WSURNTkdFTjEsIDMyNzY4KTsKLQotCXJldHVybiAwOwotZXJyOgotCXJldHVybiByZXQ7CisJcmV0dXJuIHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBEUDBfVklETU5HRU4xLCAzMjc2OCk7CiB9CiAKLXN0YXRpYyBpbnQgdGNfYXV4X2xpbmtfc2V0dXAoc3RydWN0IHRjX2RhdGEgKnRjKQorc3RhdGljIGludCB0Y19zZXRfc3lzcGxscGFyYW0oc3RydWN0IHRjX2RhdGEgKnRjKQogewogCXVuc2lnbmVkIGxvbmcgcmF0ZTsKLQl1MzIgdmFsdWU7Ci0JaW50IHJldDsKKwl1MzIgcGxscGFyYW0gPSBTWVNDTEtfU0VMX0xTQ0xLIHwgTFNDTEtfRElWXzI7CiAKIAlyYXRlID0gY2xrX2dldF9yYXRlKHRjLT5yZWZjbGspOwogCXN3aXRjaCAocmF0ZSkgewogCWNhc2UgMzg0MDAwMDA6Ci0JCXZhbHVlID0gUkVGX0ZSRVFfMzhNNDsKKwkJcGxscGFyYW0gfD0gUkVGX0ZSRVFfMzhNNDsKIAkJYnJlYWs7CiAJY2FzZSAyNjAwMDAwMDoKLQkJdmFsdWUgPSBSRUZfRlJFUV8yNk07CisJCXBsbHBhcmFtIHw9IFJFRl9GUkVRXzI2TTsKIAkJYnJlYWs7CiAJY2FzZSAxOTIwMDAwMDoKLQkJdmFsdWUgPSBSRUZfRlJFUV8xOU0yOworCQlwbGxwYXJhbSB8PSBSRUZfRlJFUV8xOU0yOwogCQlicmVhazsKIAljYXNlIDEzMDAwMDAwOgotCQl2YWx1ZSA9IFJFRl9GUkVRXzEzTTsKKwkJcGxscGFyYW0gfD0gUkVGX0ZSRVFfMTNNOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlkZXZfZXJyKHRjLT5kZXYsICJJbnZhbGlkIHJlZmNsayByYXRlOiAlbHUgSHpcbiIsIHJhdGUpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwlyZXR1cm4gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIFNZU19QTExQQVJBTSwgcGxscGFyYW0pOworfQorCitzdGF0aWMgaW50IHRjX2F1eF9saW5rX3NldHVwKHN0cnVjdCB0Y19kYXRhICp0YykKK3sKKwlpbnQgcmV0OworCXUzMiBkcDBfYXV4Y2ZnMTsKKwogCS8qIFNldHVwIERQLVBIWSAvIFBMTCAqLwotCXZhbHVlIHw9IFNZU0NMS19TRUxfTFNDTEsgfCBMU0NMS19ESVZfMjsKLQl0Y193cml0ZShTWVNfUExMUEFSQU0sIHZhbHVlKTsKKwlyZXQgPSB0Y19zZXRfc3lzcGxscGFyYW0odGMpOworCWlmIChyZXQpCisJCWdvdG8gZXJyOwogCi0JdGNfd3JpdGUoRFBfUEhZX0NUUkwsIEJHUkVOIHwgUFdSX1NXX0VOIHwgUEhZX0EwX0VOKTsKLQorCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBEUF9QSFlfQ1RSTCwKKwkJCSAgIEJHUkVOIHwgUFdSX1NXX0VOIHwgUEhZX0EwX0VOKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycjsKIAkvKgogCSAqIEluaXRpYWxseSBQTExzIGFyZSBpbiBieXBhc3MuIEZvcmNlIFBMTCBwYXJhbWV0ZXIgdXBkYXRlLAogCSAqIGRpc2FibGUgUExMIGJ5cGFzcywgZW5hYmxlIFBMTAogCSAqLwotCXRjX3dyaXRlKERQMF9QTExDVFJMLCBQTExVUERBVEUgfCBQTExFTik7Ci0JdGNfd2FpdF9wbGxfbG9jayh0Yyk7CisJcmV0ID0gdGNfcGxsdXBkYXRlKHRjLCBEUDBfUExMQ1RSTCk7CisJaWYgKHJldCkKKwkJZ290byBlcnI7CiAKLQl0Y193cml0ZShEUDFfUExMQ1RSTCwgUExMVVBEQVRFIHwgUExMRU4pOwotCXRjX3dhaXRfcGxsX2xvY2sodGMpOworCXJldCA9IHRjX3BsbHVwZGF0ZSh0YywgRFAxX1BMTENUUkwpOworCWlmIChyZXQpCisJCWdvdG8gZXJyOwogCi0JcmV0ID0gdGNfcG9sbF90aW1lb3V0KHRjLT5yZWdtYXAsIERQX1BIWV9DVFJMLCBQSFlfUkRZLCBQSFlfUkRZLCAxLAotCQkJICAgICAgMTAwMCk7CisJcmV0ID0gdGNfcG9sbF90aW1lb3V0KHRjLCBEUF9QSFlfQ1RSTCwgUEhZX1JEWSwgUEhZX1JEWSwgMSwgMTAwMCk7CiAJaWYgKHJldCA9PSAtRVRJTUVET1VUKSB7CiAJCWRldl9lcnIodGMtPmRldiwgIlRpbWVvdXQgd2FpdGluZyBmb3IgUEhZIHRvIGJlY29tZSByZWFkeSIpOwogCQlyZXR1cm4gcmV0OwpAQCAtNTk5LDkgKzY0NiwxMyBAQCBzdGF0aWMgaW50IHRjX2F1eF9saW5rX3NldHVwKHN0cnVjdCB0Y19kYXRhICp0YykKIAl9CiAKIAkvKiBTZXR1cCBBVVggbGluayAqLwotCXRjX3dyaXRlKERQMF9BVVhDRkcxLCBBVVhfUlhfRklMVEVSX0VOIHwKLQkJICgweDA2IDw8IDgpIHwJLyogQXV4IEJpdCBQZXJpb2QgQ2FsY3VsYXRvciBUaHJlc2hvbGQgKi8KLQkJICgweDNmIDw8IDApKTsJLyogQXV4IFJlc3BvbnNlIFRpbWVvdXQgVGltZXIgKi8KKwlkcDBfYXV4Y2ZnMSAgPSBBVVhfUlhfRklMVEVSX0VOOworCWRwMF9hdXhjZmcxIHw9IDB4MDYgPDwgODsgLyogQXV4IEJpdCBQZXJpb2QgQ2FsY3VsYXRvciBUaHJlc2hvbGQgKi8KKwlkcDBfYXV4Y2ZnMSB8PSAweDNmIDw8IDA7IC8qIEF1eCBSZXNwb25zZSBUaW1lb3V0IFRpbWVyICovCisKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwX0FVWENGRzEsIGRwMF9hdXhjZmcxKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycjsKIAogCXJldHVybiAwOwogZXJyOgpAQCAtNjEyLDggKzY2Myw3IEBAIHN0YXRpYyBpbnQgdGNfYXV4X2xpbmtfc2V0dXAoc3RydWN0IHRjX2RhdGEgKnRjKQogc3RhdGljIGludCB0Y19nZXRfZGlzcGxheV9wcm9wcyhzdHJ1Y3QgdGNfZGF0YSAqdGMpCiB7CiAJaW50IHJldDsKLQkvKiB0ZW1wIGJ1ZmZlciAqLwotCXU4IHRtcFs4XTsKKwl1OCByZWc7CiAKIAkvKiBSZWFkIERQIFJ4IExpbmsgQ2FwYWJpbGl0eSAqLwogCXJldCA9IGRybV9kcF9saW5rX3Byb2JlKCZ0Yy0+YXV4LCAmdGMtPmxpbmsuYmFzZSk7CkBAIC02MjksMjEgKzY3OSwyMSBAQCBzdGF0aWMgaW50IHRjX2dldF9kaXNwbGF5X3Byb3BzKHN0cnVjdCB0Y19kYXRhICp0YykKIAkJdGMtPmxpbmsuYmFzZS5udW1fbGFuZXMgPSAyOwogCX0KIAotCXJldCA9IGRybV9kcF9kcGNkX3JlYWRiKCZ0Yy0+YXV4LCBEUF9NQVhfRE9XTlNQUkVBRCwgdG1wKTsKKwlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkYigmdGMtPmF1eCwgRFBfTUFYX0RPV05TUFJFQUQsICZyZWcpOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIGVycl9kcGNkX3JlYWQ7Ci0JdGMtPmxpbmsuc3ByZWFkID0gdG1wWzBdICYgRFBfTUFYX0RPV05TUFJFQURfMF81OworCXRjLT5saW5rLnNwcmVhZCA9IHJlZyAmIERQX01BWF9ET1dOU1BSRUFEXzBfNTsKIAotCXJldCA9IGRybV9kcF9kcGNkX3JlYWRiKCZ0Yy0+YXV4LCBEUF9NQUlOX0xJTktfQ0hBTk5FTF9DT0RJTkcsIHRtcCk7CisJcmV0ID0gZHJtX2RwX2RwY2RfcmVhZGIoJnRjLT5hdXgsIERQX01BSU5fTElOS19DSEFOTkVMX0NPRElORywgJnJlZyk7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gZXJyX2RwY2RfcmVhZDsKIAogCXRjLT5saW5rLnNjcmFtYmxlcl9kaXMgPSBmYWxzZTsKIAkvKiByZWFkIGFzc3IgKi8KLQlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkYigmdGMtPmF1eCwgRFBfRURQX0NPTkZJR1VSQVRJT05fU0VULCB0bXApOworCXJldCA9IGRybV9kcF9kcGNkX3JlYWRiKCZ0Yy0+YXV4LCBEUF9FRFBfQ09ORklHVVJBVElPTl9TRVQsICZyZWcpOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIGVycl9kcGNkX3JlYWQ7Ci0JdGMtPmxpbmsuYXNzciA9IHRtcFswXSAmIERQX0FMVEVSTkFURV9TQ1JBTUJMRVJfUkVTRVRfRU5BQkxFOworCXRjLT5saW5rLmFzc3IgPSByZWcgJiBEUF9BTFRFUk5BVEVfU0NSQU1CTEVSX1JFU0VUX0VOQUJMRTsKIAogCWRldl9kYmcodGMtPmRldiwgIkRQQ0QgcmV2OiAlZC4lZCwgcmF0ZTogJXMsIGxhbmVzOiAlZCwgZnJhbWluZzogJXNcbiIsCiAJCXRjLT5saW5rLmJhc2UucmV2aXNpb24gPj4gNCwgdGMtPmxpbmsuYmFzZS5yZXZpc2lvbiAmIDB4MGYsCkBAIC02NzcsNiArNzI3LDcgQEAgc3RhdGljIGludCB0Y19zZXRfdmlkZW9fbW9kZShzdHJ1Y3QgdGNfZGF0YSAqdGMsCiAJaW50IHVwcGVyX21hcmdpbiA9IG1vZGUtPnZ0b3RhbCAtIG1vZGUtPnZzeW5jX2VuZDsKIAlpbnQgbG93ZXJfbWFyZ2luID0gbW9kZS0+dnN5bmNfc3RhcnQgLSBtb2RlLT52ZGlzcGxheTsKIAlpbnQgdnN5bmNfbGVuID0gbW9kZS0+dnN5bmNfZW5kIC0gbW9kZS0+dnN5bmNfc3RhcnQ7CisJdTMyIGRwMF9zeW5jdmFsOwogCiAJLyoKIAkgKiBSZWNvbW1lbmRlZCBtYXhpbXVtIG51bWJlciBvZiBzeW1ib2xzIHRyYW5zZmVycmVkIGluIGEgdHJhbnNmZXIgdW5pdDoKQEAgLTcwMSwxNTYgKzc1MiwxOTMgQEAgc3RhdGljIGludCB0Y19zZXRfdmlkZW9fbW9kZShzdHJ1Y3QgdGNfZGF0YSAqdGMsCiAJICogYXNzdW1lIHdlIGRvIG5vdCBuZWVkIGFueSBkZWxheSB3aGVuIERQSSBpcyBhIHNvdXJjZSBvZgogCSAqIHN5bmMgc2lnbmFscwogCSAqLwotCXRjX3dyaXRlKFZQQ1RSTDAsICgwIDw8IDIwKSAvKiBWU0RFTEFZICovIHwKLQkJIE9QWExGTVRfUkdCODg4IHwgRlJNU1lOQ19ESVNBQkxFRCB8IE1TRl9ESVNBQkxFRCk7Ci0JdGNfd3JpdGUoSFRJTTAxLCAoQUxJR04obGVmdF9tYXJnaW4sIDIpIDw8IDE2KSB8IC8qIEggYmFjayBwb3JjaCAqLwotCQkJIChBTElHTihoc3luY19sZW4sIDIpIDw8IDApKTsJIC8qIEhzeW5jICovCi0JdGNfd3JpdGUoSFRJTTAyLCAoQUxJR04ocmlnaHRfbWFyZ2luLCAyKSA8PCAxNikgfCAgLyogSCBmcm9udCBwb3JjaCAqLwotCQkJIChBTElHTihtb2RlLT5oZGlzcGxheSwgMikgPDwgMCkpOyAvKiB3aWR0aCAqLwotCXRjX3dyaXRlKFZUSU0wMSwgKHVwcGVyX21hcmdpbiA8PCAxNikgfAkJLyogViBiYWNrIHBvcmNoICovCi0JCQkgKHZzeW5jX2xlbiA8PCAwKSk7CQkvKiBWc3luYyAqLwotCXRjX3dyaXRlKFZUSU0wMiwgKGxvd2VyX21hcmdpbiA8PCAxNikgfAkJLyogViBmcm9udCBwb3JjaCAqLwotCQkJIChtb2RlLT52ZGlzcGxheSA8PCAwKSk7CS8qIGhlaWdodCAqLwotCXRjX3dyaXRlKFZGVUVOMCwgVkZVRU4pOwkJLyogdXBkYXRlIHNldHRpbmdzICovCisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIFZQQ1RSTDAsCisJCQkgICBGSUVMRF9QUkVQKFZTREVMQVksIDApIHwKKwkJCSAgIE9QWExGTVRfUkdCODg4IHwgRlJNU1lOQ19ESVNBQkxFRCB8IE1TRl9ESVNBQkxFRCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBIVElNMDEsCisJCQkgICBGSUVMRF9QUkVQKEhCUFIsIEFMSUdOKGxlZnRfbWFyZ2luLCAyKSkgfAorCQkJICAgRklFTERfUFJFUChIUFcsIEFMSUdOKGhzeW5jX2xlbiwgMikpKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIEhUSU0wMiwKKwkJCSAgIEZJRUxEX1BSRVAoSERJU1BSLCBBTElHTihtb2RlLT5oZGlzcGxheSwgMikpIHwKKwkJCSAgIEZJRUxEX1BSRVAoSEZQUiwgQUxJR04ocmlnaHRfbWFyZ2luLCAyKSkpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgVlRJTTAxLAorCQkJICAgRklFTERfUFJFUChWQlBSLCB1cHBlcl9tYXJnaW4pIHwKKwkJCSAgIEZJRUxEX1BSRVAoVlNQUiwgdnN5bmNfbGVuKSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBWVElNMDIsCisJCQkgICBGSUVMRF9QUkVQKFZGUFIsIGxvd2VyX21hcmdpbikgfAorCQkJICAgRklFTERfUFJFUChWRElTUFIsIG1vZGUtPnZkaXNwbGF5KSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBWRlVFTjAsIFZGVUVOKTsgLyogdXBkYXRlIHNldHRpbmdzICovCisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCS8qIFRlc3QgcGF0dGVybiBzZXR0aW5ncyAqLwotCXRjX3dyaXRlKFRTVENUTCwKLQkJICgxMjAgPDwgMjQpIHwJLyogUmVkIENvbG9yIGNvbXBvbmVudCB2YWx1ZSAqLwotCQkgKDIwIDw8IDE2KSB8CS8qIEdyZWVuIENvbG9yIGNvbXBvbmVudCB2YWx1ZSAqLwotCQkgKDk5IDw8IDgpIHwJLyogQmx1ZSBDb2xvciBjb21wb25lbnQgdmFsdWUgKi8KLQkJICgxIDw8IDQpIHwJLyogRW5hYmxlIEkyQyBGaWx0ZXIgKi8KLQkJICgyIDw8IDApIHwJLyogQ29sb3IgYmFyIE1vZGUgKi8KLQkJIDApOworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBUU1RDVEwsCisJCQkgICBGSUVMRF9QUkVQKENPTE9SX1IsIDEyMCkgfAorCQkJICAgRklFTERfUFJFUChDT0xPUl9HLCAyMCkgfAorCQkJICAgRklFTERfUFJFUChDT0xPUl9CLCA5OSkgfAorCQkJICAgRU5JMkNGSUxURVIgfAorCQkJICAgRklFTERfUFJFUChDT0xPUl9CQVJfTU9ERSwgQ09MT1JfQkFSX01PREVfQkFSUykpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAkvKiBEUCBNYWluIFN0cmVhbSBBdHRyaWJ1dGVzICovCiAJdmlkX3N5bmNfZGx5ID0gaHN5bmNfbGVuICsgbGVmdF9tYXJnaW4gKyBtb2RlLT5oZGlzcGxheTsKLQl0Y193cml0ZShEUDBfVklEU1lOQ0RFTEFZLAotCQkgKG1heF90dV9zeW1ib2wgPDwgMTYpIHwJLyogdGhyZXNoX2RseSAqLwotCQkgKHZpZF9zeW5jX2RseSA8PCAwKSk7CisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQMF9WSURTWU5DREVMQVksCisJCSBGSUVMRF9QUkVQKFRIUkVTSF9ETFksIG1heF90dV9zeW1ib2wpIHwKKwkJIEZJRUxEX1BSRVAoVklEX1NZTkNfRExZLCB2aWRfc3luY19kbHkpKTsKIAotCXRjX3dyaXRlKERQMF9UT1RBTFZBTCwgKG1vZGUtPnZ0b3RhbCA8PCAxNikgfCAobW9kZS0+aHRvdGFsKSk7CisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQMF9UT1RBTFZBTCwKKwkJCSAgIEZJRUxEX1BSRVAoSF9UT1RBTCwgbW9kZS0+aHRvdGFsKSB8CisJCQkgICBGSUVMRF9QUkVQKFZfVE9UQUwsIG1vZGUtPnZ0b3RhbCkpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKLQl0Y193cml0ZShEUDBfU1RBUlRWQUwsCi0JCSAoKHVwcGVyX21hcmdpbiArIHZzeW5jX2xlbikgPDwgMTYpIHwKLQkJICgobGVmdF9tYXJnaW4gKyBoc3luY19sZW4pIDw8IDApKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwX1NUQVJUVkFMLAorCQkJICAgRklFTERfUFJFUChIX1NUQVJULCBsZWZ0X21hcmdpbiArIGhzeW5jX2xlbikgfAorCQkJICAgRklFTERfUFJFUChWX1NUQVJULCB1cHBlcl9tYXJnaW4gKyB2c3luY19sZW4pKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCi0JdGNfd3JpdGUoRFAwX0FDVElWRVZBTCwgKG1vZGUtPnZkaXNwbGF5IDw8IDE2KSB8IChtb2RlLT5oZGlzcGxheSkpOworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBEUDBfQUNUSVZFVkFMLAorCQkJICAgRklFTERfUFJFUChWX0FDVCwgbW9kZS0+dmRpc3BsYXkpIHwKKwkJCSAgIEZJRUxEX1BSRVAoSF9BQ1QsIG1vZGUtPmhkaXNwbGF5KSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAotCXRjX3dyaXRlKERQMF9TWU5DVkFMLCAodnN5bmNfbGVuIDw8IDE2KSB8IChoc3luY19sZW4gPDwgMCkgfAotCQkgKChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfTkhTWU5DKSA/IFNZTkNWQUxfSFNfUE9MX0FDVElWRV9MT1cgOiAwKSB8Ci0JCSAoKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19OVlNZTkMpID8gU1lOQ1ZBTF9WU19QT0xfQUNUSVZFX0xPVyA6IDApKTsKKwlkcDBfc3luY3ZhbCA9IEZJRUxEX1BSRVAoVlNfV0lEVEgsIHZzeW5jX2xlbikgfAorCQkgICAgICBGSUVMRF9QUkVQKEhTX1dJRFRILCBoc3luY19sZW4pOwogCi0JdGNfd3JpdGUoRFBJUFhMRk1ULCBWU19QT0xfQUNUSVZFX0xPVyB8IEhTX1BPTF9BQ1RJVkVfTE9XIHwKLQkJIERFX1BPTF9BQ1RJVkVfSElHSCB8IFNVQl9DRkdfVFlQRV9DT05GSUcxIHwgRFBJX0JQUF9SR0I4ODgpOworCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfTlZTWU5DKQorCQlkcDBfc3luY3ZhbCB8PSBTWU5DVkFMX1ZTX1BPTF9BQ1RJVkVfTE9XOwogCi0JdGNfd3JpdGUoRFAwX01JU0MsIChtYXhfdHVfc3ltYm9sIDw8IDIzKSB8IChUVV9TSVpFX1JFQ09NTUVOREVEIDw8IDE2KSB8CisJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19OSFNZTkMpCisJCWRwMF9zeW5jdmFsIHw9IFNZTkNWQUxfSFNfUE9MX0FDVElWRV9MT1c7CisKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwX1NZTkNWQUwsIGRwMF9zeW5jdmFsKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQSVBYTEZNVCwKKwkJCSAgIFZTX1BPTF9BQ1RJVkVfTE9XIHwgSFNfUE9MX0FDVElWRV9MT1cgfAorCQkJICAgREVfUE9MX0FDVElWRV9ISUdIIHwgU1VCX0NGR19UWVBFX0NPTkZJRzEgfAorCQkJICAgRFBJX0JQUF9SR0I4ODgpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwX01JU0MsCisJCQkgICBGSUVMRF9QUkVQKE1BWF9UVV9TWU1CT0wsIG1heF90dV9zeW1ib2wpIHwKKwkJCSAgIEZJRUxEX1BSRVAoVFVfU0laRSwgVFVfU0laRV9SRUNPTU1FTkRFRCkgfAogCQkJICAgQlBDXzgpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAlyZXR1cm4gMDsKLWVycjoKLQlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IHRjX3dhaXRfbGlua190cmFpbmluZyhzdHJ1Y3QgdGNfZGF0YSAqdGMpCiB7Ci0JdTMyIHRpbWVvdXQgPSAxMDAwOwogCXUzMiB2YWx1ZTsKIAlpbnQgcmV0OwogCi0JZG8gewotCQl1ZGVsYXkoMSk7Ci0JCXRjX3JlYWQoRFAwX0xUU1RBVCwgJnZhbHVlKTsKLQl9IHdoaWxlICgoISh2YWx1ZSAmIExUX0xPT1BET05FKSkgJiYgKC0tdGltZW91dCkpOwotCi0JaWYgKHRpbWVvdXQgPT0gMCkgeworCXJldCA9IHRjX3BvbGxfdGltZW91dCh0YywgRFAwX0xUU1RBVCwgTFRfTE9PUERPTkUsCisJCQkgICAgICBMVF9MT09QRE9ORSwgMSwgMTAwMCk7CisJaWYgKHJldCkgewogCQlkZXZfZXJyKHRjLT5kZXYsICJMaW5rIHRyYWluaW5nIHRpbWVvdXQgd2FpdGluZyBmb3IgTFRfTE9PUERPTkUhXG4iKTsKLQkJcmV0dXJuIC1FVElNRURPVVQ7CisJCXJldHVybiByZXQ7CiAJfQogCi0JcmV0dXJuICh2YWx1ZSA+PiA4KSAmIDB4NzsKKwlyZXQgPSByZWdtYXBfcmVhZCh0Yy0+cmVnbWFwLCBEUDBfTFRTVEFULCAmdmFsdWUpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKLWVycjoKLQlyZXR1cm4gcmV0OworCXJldHVybiAodmFsdWUgPj4gOCkgJiAweDc7CiB9CiAKIHN0YXRpYyBpbnQgdGNfbWFpbl9saW5rX2VuYWJsZShzdHJ1Y3QgdGNfZGF0YSAqdGMpCiB7CiAJc3RydWN0IGRybV9kcF9hdXggKmF1eCA9ICZ0Yy0+YXV4OwogCXN0cnVjdCBkZXZpY2UgKmRldiA9IHRjLT5kZXY7Ci0JdW5zaWduZWQgaW50IHJhdGU7CiAJdTMyIGRwX3BoeV9jdHJsOwotCWludCB0aW1lb3V0OwogCXUzMiB2YWx1ZTsKIAlpbnQgcmV0OwotCXU4IHRtcFs4XTsKKwl1OCB0bXBbRFBfTElOS19TVEFUVVNfU0laRV07CiAKIAlkZXZfZGJnKHRjLT5kZXYsICJsaW5rIGVuYWJsZVxuIik7CiAKLQl0Y19yZWFkKERQMENUTCwgJnZhbHVlKTsKLQlpZiAoV0FSTl9PTih2YWx1ZSAmIERQX0VOKSkKLQkJdGNfd3JpdGUoRFAwQ1RMLCAwKTsKKwlyZXQgPSByZWdtYXBfcmVhZCh0Yy0+cmVnbWFwLCBEUDBDVEwsICZ2YWx1ZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAotCXRjX3dyaXRlKERQMF9TUkNDVFJMLCB0Y19zcmNjdHJsKHRjKSk7CisJaWYgKFdBUk5fT04odmFsdWUgJiBEUF9FTikpIHsKKwkJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQMENUTCwgMCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBEUDBfU1JDQ1RSTCwgdGNfc3JjY3RybCh0YykpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAJLyogU1NDRyBhbmQgQlcyNyBvbiBEUDEgbXVzdCBiZSBzZXQgdG8gdGhlIHNhbWUgYXMgb24gRFAwICovCi0JdGNfd3JpdGUoRFAxX1NSQ0NUUkwsCisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQMV9TUkNDVFJMLAogCQkgKHRjLT5saW5rLnNwcmVhZCA/IERQMF9TUkNDVFJMX1NTQ0cgOiAwKSB8CiAJCSAoKHRjLT5saW5rLmJhc2UucmF0ZSAhPSAxNjIwMDApID8gRFAwX1NSQ0NUUkxfQlcyNyA6IDApKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCi0JcmF0ZSA9IGNsa19nZXRfcmF0ZSh0Yy0+cmVmY2xrKTsKLQlzd2l0Y2ggKHJhdGUpIHsKLQljYXNlIDM4NDAwMDAwOgotCQl2YWx1ZSA9IFJFRl9GUkVRXzM4TTQ7Ci0JCWJyZWFrOwotCWNhc2UgMjYwMDAwMDA6Ci0JCXZhbHVlID0gUkVGX0ZSRVFfMjZNOwotCQlicmVhazsKLQljYXNlIDE5MjAwMDAwOgotCQl2YWx1ZSA9IFJFRl9GUkVRXzE5TTI7Ci0JCWJyZWFrOwotCWNhc2UgMTMwMDAwMDA6Ci0JCXZhbHVlID0gUkVGX0ZSRVFfMTNNOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JdmFsdWUgfD0gU1lTQ0xLX1NFTF9MU0NMSyB8IExTQ0xLX0RJVl8yOwotCXRjX3dyaXRlKFNZU19QTExQQVJBTSwgdmFsdWUpOworCXJldCA9IHRjX3NldF9zeXNwbGxwYXJhbSh0Yyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCS8qIFNldHVwIE1haW4gTGluayAqLwogCWRwX3BoeV9jdHJsID0gQkdSRU4gfCBQV1JfU1dfRU4gfCBQSFlfQTBfRU4gfCBQSFlfTTBfRU47CiAJaWYgKHRjLT5saW5rLmJhc2UubnVtX2xhbmVzID09IDIpCiAJCWRwX3BoeV9jdHJsIHw9IFBIWV8yTEFORTsKLQl0Y193cml0ZShEUF9QSFlfQ1RSTCwgZHBfcGh5X2N0cmwpOworCisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQX1BIWV9DVFJMLCBkcF9waHlfY3RybCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCS8qIFBMTCBzZXR1cCAqLwotCXRjX3dyaXRlKERQMF9QTExDVFJMLCBQTExVUERBVEUgfCBQTExFTik7Ci0JdGNfd2FpdF9wbGxfbG9jayh0Yyk7CisJcmV0ID0gdGNfcGxsdXBkYXRlKHRjLCBEUDBfUExMQ1RSTCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAotCXRjX3dyaXRlKERQMV9QTExDVFJMLCBQTExVUERBVEUgfCBQTExFTik7Ci0JdGNfd2FpdF9wbGxfbG9jayh0Yyk7CisJcmV0ID0gdGNfcGxsdXBkYXRlKHRjLCBEUDFfUExMQ1RSTCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCS8qIFJlc2V0L0VuYWJsZSBNYWluIExpbmtzICovCiAJZHBfcGh5X2N0cmwgfD0gRFBfUEhZX1JTVCB8IFBIWV9NMV9SU1QgfCBQSFlfTTBfUlNUOwotCXRjX3dyaXRlKERQX1BIWV9DVFJMLCBkcF9waHlfY3RybCk7CisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQX1BIWV9DVFJMLCBkcF9waHlfY3RybCk7CiAJdXNsZWVwX3JhbmdlKDEwMCwgMjAwKTsKIAlkcF9waHlfY3RybCAmPSB+KERQX1BIWV9SU1QgfCBQSFlfTTFfUlNUIHwgUEhZX00wX1JTVCk7Ci0JdGNfd3JpdGUoRFBfUEhZX0NUUkwsIGRwX3BoeV9jdHJsKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFBfUEhZX0NUUkwsIGRwX3BoeV9jdHJsKTsKIAotCXRpbWVvdXQgPSAxMDAwOwotCWRvIHsKLQkJdGNfcmVhZChEUF9QSFlfQ1RSTCwgJnZhbHVlKTsKLQkJdWRlbGF5KDEpOwotCX0gd2hpbGUgKCghKHZhbHVlICYgUEhZX1JEWSkpICYmICgtLXRpbWVvdXQpKTsKLQotCWlmICh0aW1lb3V0ID09IDApIHsKKwlyZXQgPSB0Y19wb2xsX3RpbWVvdXQodGMsIERQX1BIWV9DVFJMLCBQSFlfUkRZLCBQSFlfUkRZLCAxLCAxMDAwKTsKKwlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LCAidGltZW91dCB3YWl0aW5nIGZvciBwaHkgYmVjb21lIHJlYWR5Iik7Ci0JCXJldHVybiAtRVRJTUVET1VUOworCQlyZXR1cm4gcmV0OwogCX0KIAogCS8qIFNldCBtaXNjOiA4IGJpdHMgcGVyIGNvbG9yICovCiAJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHRjLT5yZWdtYXAsIERQMF9NSVNDLCBCUENfOCwgQlBDXzgpOwogCWlmIChyZXQpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJLyoKIAkgKiBBU1NSIG1vZGUKQEAgLTkwMyw1MyArOTkxLDcxIEBAIHN0YXRpYyBpbnQgdGNfbWFpbl9saW5rX2VuYWJsZShzdHJ1Y3QgdGNfZGF0YSAqdGMpCiAJLyogQ2xvY2stUmVjb3ZlcnkgKi8KIAogCS8qIFNldCBEUENEIDB4MTAyIGZvciBUcmFpbmluZyBQYXR0ZXJuIDEgKi8KLQl0Y193cml0ZShEUDBfU05LTFRDVFJMLCBEUF9MSU5LX1NDUkFNQkxJTkdfRElTQUJMRSB8Ci0JCSBEUF9UUkFJTklOR19QQVRURVJOXzEpOworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBEUDBfU05LTFRDVFJMLAorCQkJICAgRFBfTElOS19TQ1JBTUJMSU5HX0RJU0FCTEUgfAorCQkJICAgRFBfVFJBSU5JTkdfUEFUVEVSTl8xKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCi0JdGNfd3JpdGUoRFAwX0xUTE9PUENUUkwsCi0JCSAoMTUgPDwgMjgpIHwJLyogRGVmZXIgSXRlcmF0aW9uIENvdW50ICovCi0JCSAoMTUgPDwgMjQpIHwJLyogTG9vcCBJdGVyYXRpb24gQ291bnQgKi8KLQkJICgweGQgPDwgMCkpOwkvKiBMb29wIFRpbWVyIERlbGF5ICovCisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQMF9MVExPT1BDVFJMLAorCQkJICAgKDE1IDw8IDI4KSB8CS8qIERlZmVyIEl0ZXJhdGlvbiBDb3VudCAqLworCQkJICAgKDE1IDw8IDI0KSB8CS8qIExvb3AgSXRlcmF0aW9uIENvdW50ICovCisJCQkgICAoMHhkIDw8IDApKTsJLyogTG9vcCBUaW1lciBEZWxheSAqLworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKLQl0Y193cml0ZShEUDBfU1JDQ1RSTCwgdGNfc3JjY3RybCh0YykgfCBEUDBfU1JDQ1RSTF9TQ1JNQkxESVMgfAotCQkgRFAwX1NSQ0NUUkxfQVVUT0NPUlJFQ1QgfCBEUDBfU1JDQ1RSTF9UUDEpOworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBEUDBfU1JDQ1RSTCwKKwkJCSAgIHRjX3NyY2N0cmwodGMpIHwgRFAwX1NSQ0NUUkxfU0NSTUJMRElTIHwKKwkJCSAgIERQMF9TUkNDVFJMX0FVVE9DT1JSRUNUIHwKKwkJCSAgIERQMF9TUkNDVFJMX1RQMSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCS8qIEVuYWJsZSBEUDAgdG8gc3RhcnQgTGluayBUcmFpbmluZyAqLwotCXRjX3dyaXRlKERQMENUTCwKLQkJICgodGMtPmxpbmsuYmFzZS5jYXBhYmlsaXRpZXMgJiBEUF9MSU5LX0NBUF9FTkhBTkNFRF9GUkFNSU5HKSA/IEVGX0VOIDogMCkgfAotCQkgRFBfRU4pOworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBEUDBDVEwsCisJCQkgICAoKHRjLT5saW5rLmJhc2UuY2FwYWJpbGl0aWVzICYKKwkJCSAgICAgRFBfTElOS19DQVBfRU5IQU5DRURfRlJBTUlORykgPyBFRl9FTiA6IDApIHwKKwkJCSAgIERQX0VOKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJLyogd2FpdCAqLworCiAJcmV0ID0gdGNfd2FpdF9saW5rX3RyYWluaW5nKHRjKTsKIAlpZiAocmV0IDwgMCkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIodGMtPmRldiwgIkxpbmsgdHJhaW5pbmcgcGhhc2UgMSBmYWlsZWQ6ICVzXG4iLAogCQkJdHJhaW5pbmdfcGF0dGVybjFfZXJyb3JzW3JldF0pOwotCQlyZXQgPSAtRU5PREVWOwotCQlnb3RvIGVycjsKKwkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCiAJLyogQ2hhbm5lbCBFcXVhbGl6YXRpb24gKi8KIAogCS8qIFNldCBEUENEIDB4MTAyIGZvciBUcmFpbmluZyBQYXR0ZXJuIDIgKi8KLQl0Y193cml0ZShEUDBfU05LTFRDVFJMLCBEUF9MSU5LX1NDUkFNQkxJTkdfRElTQUJMRSB8Ci0JCSBEUF9UUkFJTklOR19QQVRURVJOXzIpOworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBEUDBfU05LTFRDVFJMLAorCQkJICAgRFBfTElOS19TQ1JBTUJMSU5HX0RJU0FCTEUgfAorCQkJICAgRFBfVFJBSU5JTkdfUEFUVEVSTl8yKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCi0JdGNfd3JpdGUoRFAwX1NSQ0NUUkwsIHRjX3NyY2N0cmwodGMpIHwgRFAwX1NSQ0NUUkxfU0NSTUJMRElTIHwKLQkJIERQMF9TUkNDVFJMX0FVVE9DT1JSRUNUIHwgRFAwX1NSQ0NUUkxfVFAyKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwX1NSQ0NUUkwsCisJCQkgICB0Y19zcmNjdHJsKHRjKSB8IERQMF9TUkNDVFJMX1NDUk1CTERJUyB8CisJCQkgICBEUDBfU1JDQ1RSTF9BVVRPQ09SUkVDVCB8CisJCQkgICBEUDBfU1JDQ1RSTF9UUDIpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAkvKiB3YWl0ICovCiAJcmV0ID0gdGNfd2FpdF9saW5rX3RyYWluaW5nKHRjKTsKIAlpZiAocmV0IDwgMCkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIodGMtPmRldiwgIkxpbmsgdHJhaW5pbmcgcGhhc2UgMiBmYWlsZWQ6ICVzXG4iLAogCQkJdHJhaW5pbmdfcGF0dGVybjJfZXJyb3JzW3JldF0pOwotCQlyZXQgPSAtRU5PREVWOwotCQlnb3RvIGVycjsKKwkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCiAJLyoKQEAgLTk2Miw3ICsxMDY4LDEwIEBAIHN0YXRpYyBpbnQgdGNfbWFpbl9saW5rX2VuYWJsZShzdHJ1Y3QgdGNfZGF0YSAqdGMpCiAJICovCiAKIAkvKiBDbGVhciBUcmFpbmluZyBQYXR0ZXJuLCBzZXQgQXV0b0NvcnJlY3QgTW9kZSA9IDEgKi8KLQl0Y193cml0ZShEUDBfU1JDQ1RSTCwgdGNfc3JjY3RybCh0YykgfCBEUDBfU1JDQ1RSTF9BVVRPQ09SUkVDVCk7CisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQMF9TUkNDVFJMLCB0Y19zcmNjdHJsKHRjKSB8CisJCQkgICBEUDBfU1JDQ1RSTF9BVVRPQ09SUkVDVCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCS8qIENsZWFyIERQQ0QgMHgxMDIgKi8KIAkvKiBOb3RlOiBDYW4gTm90IHVzZSBEUDBfU05LTFRDVFJMICgweDA2RTQpIHNob3J0IGN1dCAqLwpAQCAtMTAwNiw3ICsxMTE1LDcgQEAgc3RhdGljIGludCB0Y19tYWluX2xpbmtfZW5hYmxlKHN0cnVjdCB0Y19kYXRhICp0YykKIAkJZGV2X2VycihkZXYsICIweDAyMDUgU0lOS19TVEFUVVM6ICAgICAgICAgICAgICAgMHglMDJ4XG4iLCB0bXBbM10pOwogCQlkZXZfZXJyKGRldiwgIjB4MDIwNiBBREpVU1RfUkVRVUVTVF9MQU5FMF8xOiAgICAweCUwMnhcbiIsIHRtcFs0XSk7CiAJCWRldl9lcnIoZGV2LCAiMHgwMjA3IEFESlVTVF9SRVFVRVNUX0xBTkUyXzM6ICAgIDB4JTAyeFxuIiwgdG1wWzVdKTsKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0xMDE1LDcgKzExMjQsNiBAQCBzdGF0aWMgaW50IHRjX21haW5fbGlua19lbmFibGUoc3RydWN0IHRjX2RhdGEgKnRjKQogCXJldHVybiByZXQ7CiBlcnJfZHBjZF93cml0ZToKIAlkZXZfZXJyKHRjLT5kZXYsICJGYWlsZWQgdG8gd3JpdGUgRFBDRDogJWRcbiIsIHJldCk7Ci1lcnI6CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTAyNSwxMiArMTEzMywxMSBAQCBzdGF0aWMgaW50IHRjX21haW5fbGlua19kaXNhYmxlKHN0cnVjdCB0Y19kYXRhICp0YykKIAogCWRldl9kYmcodGMtPmRldiwgImxpbmsgZGlzYWJsZVxuIik7CiAKLQl0Y193cml0ZShEUDBfU1JDQ1RSTCwgMCk7Ci0JdGNfd3JpdGUoRFAwQ1RMLCAwKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwX1NSQ0NUUkwsIDApOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKLQlyZXR1cm4gMDsKLWVycjoKLQlyZXR1cm4gcmV0OworCXJldHVybiByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwQ1RMLCAwKTsKIH0KIAogc3RhdGljIGludCB0Y19zdHJlYW1fZW5hYmxlKHN0cnVjdCB0Y19kYXRhICp0YykKQEAgLTEwNDUsNyArMTE1Miw3IEBAIHN0YXRpYyBpbnQgdGNfc3RyZWFtX2VuYWJsZShzdHJ1Y3QgdGNfZGF0YSAqdGMpCiAJCXJldCA9IHRjX3B4bF9wbGxfZW4odGMsIGNsa19nZXRfcmF0ZSh0Yy0+cmVmY2xrKSwKIAkJCQkgICAgMTAwMCAqIHRjLT5tb2RlLmNsb2NrKTsKIAkJaWYgKHJldCkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAl9CiAKIAlyZXQgPSB0Y19zZXRfdmlkZW9fbW9kZSh0YywgJnRjLT5tb2RlKTsKQEAgLTEwNjAsNyArMTE2Nyw5IEBAIHN0YXRpYyBpbnQgdGNfc3RyZWFtX2VuYWJsZShzdHJ1Y3QgdGNfZGF0YSAqdGMpCiAJdmFsdWUgPSBWSURfTU5fR0VOIHwgRFBfRU47CiAJaWYgKHRjLT5saW5rLmJhc2UuY2FwYWJpbGl0aWVzICYgRFBfTElOS19DQVBfRU5IQU5DRURfRlJBTUlORykKIAkJdmFsdWUgfD0gRUZfRU47Ci0JdGNfd3JpdGUoRFAwQ1RMLCB2YWx1ZSk7CisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIERQMENUTCwgdmFsdWUpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAJLyoKIAkgKiBWSURfRU4gYXNzZXJ0aW9uIHNob3VsZCBiZSBkZWxheWVkIGJ5IGF0IGxlYXN0IE4gKiBMU0NMSwogCSAqIGN5Y2xlcyBmcm9tIHRoZSB0aW1lIFZJRF9NTl9HRU4gaXMgZW5hYmxlZCBpbiBvcmRlciB0bwpAQCAtMTA3MCwzNiArMTE3OSwzNSBAQCBzdGF0aWMgaW50IHRjX3N0cmVhbV9lbmFibGUoc3RydWN0IHRjX2RhdGEgKnRjKQogCSAqLwogCXVzbGVlcF9yYW5nZSg1MDAsIDEwMDApOwogCXZhbHVlIHw9IFZJRF9FTjsKLQl0Y193cml0ZShEUDBDVEwsIHZhbHVlKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUodGMtPnJlZ21hcCwgRFAwQ1RMLCB2YWx1ZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAkvKiBTZXQgaW5wdXQgaW50ZXJmYWNlICovCiAJdmFsdWUgPSBEUDBfQVVEU1JDX05PX0lOUFVUOwogCWlmICh0Y190ZXN0X3BhdHRlcm4pCiAJCXZhbHVlIHw9IERQMF9WSURTUkNfQ09MT1JfQkFSOwogCWVsc2UKIAkJdmFsdWUgfD0gRFAwX1ZJRFNSQ19EUElfUlg7Ci0JdGNfd3JpdGUoU1lTQ1RSTCwgdmFsdWUpOworCXJldCA9IHJlZ21hcF93cml0ZSh0Yy0+cmVnbWFwLCBTWVNDVFJMLCB2YWx1ZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCXJldHVybiAwOwotZXJyOgotCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgdGNfc3RyZWFtX2Rpc2FibGUoc3RydWN0IHRjX2RhdGEgKnRjKQogewogCWludCByZXQ7Ci0JdTMyIHZhbDsKIAogCWRldl9kYmcodGMtPmRldiwgImRpc2FibGUgdmlkZW8gc3RyZWFtXG4iKTsKIAotCXRjX3JlYWQoRFAwQ1RMLCAmdmFsKTsKLQl2YWwgJj0gflZJRF9FTjsKLQl0Y193cml0ZShEUDBDVEwsIHZhbCk7CisJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHRjLT5yZWdtYXAsIERQMENUTCwgVklEX0VOLCAwKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJdGNfcHhsX3BsbF9kaXModGMpOwogCiAJcmV0dXJuIDA7Ci1lcnI6Ci0JcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgdGNfYnJpZGdlX3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKQEAgLTEyMDQsNyArMTMxMiw3IEBAIHN0YXRpYyBpbnQgdGNfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCB0Y19kYXRhICp0YyA9IGNvbm5lY3Rvcl90b190Yyhjb25uZWN0b3IpOwogCXN0cnVjdCBlZGlkICplZGlkOwotCXVuc2lnbmVkIGludCBjb3VudDsKKwlpbnQgY291bnQ7CiAJaW50IHJldDsKIAogCXJldCA9IHRjX2dldF9kaXNwbGF5X3Byb3BzKHRjKTsKQEAgLTEyMTMsMTEgKzEzMjEsOSBAQCBzdGF0aWMgaW50IHRjX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKHRjLT5wYW5lbCAmJiB0Yy0+cGFuZWwtPmZ1bmNzICYmIHRjLT5wYW5lbC0+ZnVuY3MtPmdldF9tb2RlcykgewotCQljb3VudCA9IHRjLT5wYW5lbC0+ZnVuY3MtPmdldF9tb2Rlcyh0Yy0+cGFuZWwpOwotCQlpZiAoY291bnQgPiAwKQotCQkJcmV0dXJuIGNvdW50OwotCX0KKwljb3VudCA9IGRybV9wYW5lbF9nZXRfbW9kZXModGMtPnBhbmVsKTsKKwlpZiAoY291bnQgPiAwKQorCQlyZXR1cm4gY291bnQ7CiAKIAllZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3RvciwgJnRjLT5hdXguZGRjKTsKIApAQCAtMTI1MSw3ICsxMzU3LDkgQEAgc3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgdGNfY29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmUKIAkJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX3Vua25vd247CiAJfQogCi0JdGNfcmVhZChHUElPSSwgJnZhbCk7CisJcmV0ID0gcmVnbWFwX3JlYWQodGMtPnJlZ21hcCwgR1BJT0ksICZ2YWwpOworCWlmIChyZXQpCisJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX3Vua25vd247CiAKIAljb25uID0gdmFsICYgQklUKHRjLT5ocGRfcGluKTsKIApAQCAtMTI1OSw5ICsxMzY3LDYgQEAgc3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgdGNfY29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmUKIAkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwogCWVsc2UKIAkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwotCi1lcnI6Ci0JcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfdW5rbm93bjsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHRjX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKQEAgLTE0OTcsNiArMTYwMiwyMiBAQCBzdGF0aWMgaW50IHRjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKIAogCXRjLT5hc3NyID0gKHRjLT5yZXYgPT0gMHg2NjAxKTsgLyogRW5hYmxlIEFTU1IgZm9yIGVEUCBwYW5lbHMgKi8KIAorCWlmICghdGMtPnJlc2V0X2dwaW8pIHsKKwkJLyoKKwkJICogSWYgdGhlIHJlc2V0IHBpbiBpc24ndCBwcmVzZW50LCBkbyBhIHNvZnR3YXJlIHJlc2V0LiBJdCBpc24ndAorCQkgKiBhcyB0aG9yb3VnaCBhcyB0aGUgaGFyZHdhcmUgcmVzZXQsIGFzIHdlIGNhbid0IHJlc2V0IHRoZSBJMkMKKwkJICogY29tbXVuaWNhdGlvbiBibG9jayBmb3Igb2J2aW91cyByZWFzb25zLCBidXQgaXQncyBnZXR0aW5nIHRoZQorCQkgKiBjaGlwIGludG8gYSBkZWZpbmVkIHN0YXRlLgorCQkgKi8KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHRjLT5yZWdtYXAsIFNZU1JTVEVOQiwKKwkJCQlFTkJMQ0QwIHwgRU5CQk0gfCBFTkJEU0lSWCB8IEVOQlJFRyB8IEVOQkhEQ1AsCisJCQkJMCk7CisJCXJlZ21hcF91cGRhdGVfYml0cyh0Yy0+cmVnbWFwLCBTWVNSU1RFTkIsCisJCQkJRU5CTENEMCB8IEVOQkJNIHwgRU5CRFNJUlggfCBFTkJSRUcgfCBFTkJIRENQLAorCQkJCUVOQkxDRDAgfCBFTkJCTSB8IEVOQkRTSVJYIHwgRU5CUkVHIHwgRU5CSERDUCk7CisJCXVzbGVlcF9yYW5nZSg1MDAwLCAxMDAwMCk7CisJfQorCiAJaWYgKHRjLT5ocGRfcGluID49IDApIHsKIAkJdTMyIGxjbnRfcmVnID0gdGMtPmhwZF9waW4gPT0gMCA/IElOVF9HUDBfTENOVCA6IElOVF9HUDFfTENOVDsKIAkJdTMyIGhfbGMgPSBJTlRfR1BJT19IKHRjLT5ocGRfcGluKSB8IElOVF9HUElPX0xDKHRjLT5ocGRfcGluKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRzaTg2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXNuNjVkc2k4Ni5jCmluZGV4IGI3N2E1MmQwLi4wYTU4MDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXNuNjVkc2k4Ni5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRzaTg2LmMKQEAgLTEsOSArMSwxMSBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTgsIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogZGF0YXNoZWV0OiBodHRwOi8vd3d3LnRpLmNvbS9saXQvZHMvc3ltbGluay9zbjY1ZHNpODYucGRmCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+CkBAIC05MCw2ICs5Miw3IEBAIHN0cnVjdCB0aV9zbl9icmlkZ2UgewogCXN0cnVjdCBkcm1fZHBfYXV4CQlhdXg7CiAJc3RydWN0IGRybV9icmlkZ2UJCWJyaWRnZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvcgkJY29ubmVjdG9yOworCXN0cnVjdCBkZW50cnkJCQkqZGVidWdmczsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUJCSpob3N0X25vZGU7CiAJc3RydWN0IG1pcGlfZHNpX2RldmljZQkJKmRzaTsKIAlzdHJ1Y3QgY2xrCQkJKnJlZmNsazsKQEAgLTE1NSw2ICsxNTgsNDIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIHRpX3NuX2JyaWRnZV9wbV9vcHMgPSB7CiAJU0VUX1JVTlRJTUVfUE1fT1BTKHRpX3NuX2JyaWRnZV9zdXNwZW5kLCB0aV9zbl9icmlkZ2VfcmVzdW1lLCBOVUxMKQogfTsKIAorc3RhdGljIGludCBzdGF0dXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHRpX3NuX2JyaWRnZSAqcGRhdGEgPSBzLT5wcml2YXRlOworCXVuc2lnbmVkIGludCByZWcsIHZhbDsKKworCXNlcV9wdXRzKHMsICJTVEFUVVMgUkVHSVNURVJTOlxuIik7CisKKwlwbV9ydW50aW1lX2dldF9zeW5jKHBkYXRhLT5kZXYpOworCisJLyogSVJRIFN0YXR1cyBSZWdpc3RlcnMsIHNlZSBUYWJsZSAzMSBpbiBkYXRhc2hlZXQgKi8KKwlmb3IgKHJlZyA9IDB4ZjA7IHJlZyA8PSAweGY4OyByZWcrKykgeworCQlyZWdtYXBfcmVhZChwZGF0YS0+cmVnbWFwLCByZWcsICZ2YWwpOworCQlzZXFfcHJpbnRmKHMsICJbMHglMDJ4XSA9IDB4JTA4eFxuIiwgcmVnLCB2YWwpOworCX0KKworCXBtX3J1bnRpbWVfcHV0KHBkYXRhLT5kZXYpOworCisJcmV0dXJuIDA7Cit9CisKK0RFRklORV9TSE9XX0FUVFJJQlVURShzdGF0dXMpOworCitzdGF0aWMgdm9pZCB0aV9zbl9kZWJ1Z2ZzX2luaXQoc3RydWN0IHRpX3NuX2JyaWRnZSAqcGRhdGEpCit7CisJcGRhdGEtPmRlYnVnZnMgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoZGV2X25hbWUocGRhdGEtPmRldiksIE5VTEwpOworCisJZGVidWdmc19jcmVhdGVfZmlsZSgic3RhdHVzIiwgMDYwMCwgcGRhdGEtPmRlYnVnZnMsIHBkYXRhLAorCQkJJnN0YXR1c19mb3BzKTsKK30KKworc3RhdGljIHZvaWQgdGlfc25fZGVidWdmc19yZW1vdmUoc3RydWN0IHRpX3NuX2JyaWRnZSAqcGRhdGEpCit7CisJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHBkYXRhLT5kZWJ1Z2ZzKTsKKwlwZGF0YS0+ZGVidWdmcyA9IE5VTEw7Cit9CisKIC8qIENvbm5lY3RvciBmdW5jcyAqLwogc3RhdGljIHN0cnVjdCB0aV9zbl9icmlkZ2UgKgogY29ubmVjdG9yX3RvX3RpX3NuX2JyaWRnZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQpAQCAtMjc1LDggKzMxNCw3IEBAIHN0YXRpYyBpbnQgdGlfc25fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQogCS8qIFRPRE86IHNldHRpbmcgdG8gNCBsYW5lcyBhbHdheXMgZm9yIG5vdyAqLwogCWRzaS0+bGFuZXMgPSA0OwogCWRzaS0+Zm9ybWF0ID0gTUlQSV9EU0lfRk1UX1JHQjg4ODsKLQlkc2ktPm1vZGVfZmxhZ3MgPSBNSVBJX0RTSV9NT0RFX1ZJREVPIHwgTUlQSV9EU0lfTU9ERV9WSURFT19TWU5DX1BVTFNFIHwKLQkJCSAgTUlQSV9EU0lfTU9ERV9FT1RfUEFDS0VUIHwgTUlQSV9EU0lfTU9ERV9WSURFT19IU0U7CisJZHNpLT5tb2RlX2ZsYWdzID0gTUlQSV9EU0lfTU9ERV9WSURFTzsKIAogCS8qIGNoZWNrIGlmIGNvbnRpbnVvdXMgZHNpIGNsb2NrIGlzIHJlcXVpcmVkIG9yIG5vdCAqLwogCXBtX3J1bnRpbWVfZ2V0X3N5bmMocGRhdGEtPmRldik7CkBAIC03MzEsNiArNzY5LDggQEAgc3RhdGljIGludCB0aV9zbl9icmlkZ2VfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAogCWRybV9icmlkZ2VfYWRkKCZwZGF0YS0+YnJpZGdlKTsKIAorCXRpX3NuX2RlYnVnZnNfaW5pdChwZGF0YSk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNzQxLDYgKzc4MSw4IEBAIHN0YXRpYyBpbnQgdGlfc25fYnJpZGdlX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQogCWlmICghcGRhdGEpCiAJCXJldHVybiAtRUlOVkFMOwogCisJdGlfc25fZGVidWdmc19yZW1vdmUocGRhdGEpOworCiAJb2Zfbm9kZV9wdXQocGRhdGEtPmhvc3Rfbm9kZSk7CiAKIAlwbV9ydW50aW1lX2Rpc2FibGUocGRhdGEtPmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXRmcDQxMC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS10ZnA0MTAuYwppbmRleCBkYmYzNWM3Li42MWNjMjM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXRmcDQxMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktdGZwNDEwLmMKQEAgLTEzNCw4ICsxMzQsMTAgQEAgc3RhdGljIGludCB0ZnA0MTBfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCiAKIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoJmR2aS0+Y29ubmVjdG9yLAogCQkJCSAmdGZwNDEwX2Nvbl9oZWxwZXJfZnVuY3MpOwotCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChicmlkZ2UtPmRldiwgJmR2aS0+Y29ubmVjdG9yLAotCQkJCSAmdGZwNDEwX2Nvbl9mdW5jcywgZHZpLT5jb25uZWN0b3JfdHlwZSk7CisJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9pbml0X3dpdGhfZGRjKGJyaWRnZS0+ZGV2LCAmZHZpLT5jb25uZWN0b3IsCisJCQkJCSAgJnRmcDQxMF9jb25fZnVuY3MsCisJCQkJCSAgZHZpLT5jb25uZWN0b3JfdHlwZSwKKwkJCQkJICBkdmktPmRkYyk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGR2aS0+ZGV2LCAiZHJtX2Nvbm5lY3Rvcl9pbml0KCkgZmFpbGVkOiAlZFxuIiwgcmV0KTsKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1cy5jCmluZGV4IGJlNGVhMzcuLjM2YTY5YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXMuYwpAQCAtNTEzLDcgKzUxMyw3IEBAIHN0YXRpYyB2b2lkIGNpcnJ1c19tb2RlX2NvbmZpZ19pbml0KHN0cnVjdCBjaXJydXNfZGV2aWNlICpjaXJydXMpCiBERUZJTkVfRFJNX0dFTV9TSE1FTV9GT1BTKGNpcnJ1c19mb3BzKTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGNpcnJ1c19kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9BVE9NSUMgfCBEUklWRVJfUFJJTUUsCisJLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9BVE9NSUMsCiAKIAkubmFtZQkJID0gRFJJVkVSX05BTUUsCiAJLmRlc2MJCSA9IERSSVZFUl9ERVNDLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hZ3BzdXBwb3J0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2FncHN1cHBvcnQuYwppbmRleCAxMTdiOGVlLi42ZTA5ZjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2FncHN1cHBvcnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2FncHN1cHBvcnQuYwpAQCAtMSw0ICsxLDQgQEAKLS8qKgorLyoKICAqIFxmaWxlIGRybV9hZ3BzdXBwb3J0LmMKICAqIERSTSBzdXBwb3J0IGZvciBBR1AvR0FSVCBiYWNrZW5kCiAgKgpAQCAtNDY1LDQ2ICs0NjUsMyBAQCB2b2lkIGRybV9sZWdhY3lfYWdwX2NsZWFyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZGV2LT5hZ3AtPmFjcXVpcmVkID0gMDsKIAlkZXYtPmFncC0+ZW5hYmxlZCA9IDA7CiB9Ci0KLS8qKgotICogQmluZHMgYSBjb2xsZWN0aW9uIG9mIHBhZ2VzIGludG8gQUdQIG1lbW9yeSBhdCB0aGUgZ2l2ZW4gb2Zmc2V0LCByZXR1cm5pbmcKLSAqIHRoZSBBR1AgbWVtb3J5IHN0cnVjdHVyZSBjb250YWluaW5nIHRoZW0uCi0gKgotICogTm8gcmVmZXJlbmNlIGlzIGhlbGQgb24gdGhlIHBhZ2VzIGR1cmluZyB0aGlzIHRpbWUgLS0gaXQgaXMgdXAgdG8gdGhlCi0gKiBjYWxsZXIgdG8gaGFuZGxlIHRoYXQuCi0gKi8KLXN0cnVjdCBhZ3BfbWVtb3J5ICoKLWRybV9hZ3BfYmluZF9wYWdlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkgICBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAotCQkgICB1bnNpZ25lZCBsb25nIG51bV9wYWdlcywKLQkJICAgdWludDMyX3QgZ3R0X29mZnNldCwKLQkJICAgdTMyIHR5cGUpCi17Ci0Jc3RydWN0IGFncF9tZW1vcnkgKm1lbTsKLQlpbnQgcmV0LCBpOwotCi0JRFJNX0RFQlVHKCJcbiIpOwotCi0JbWVtID0gYWdwX2FsbG9jYXRlX21lbW9yeShkZXYtPmFncC0+YnJpZGdlLCBudW1fcGFnZXMsCi0JCQkJICAgICAgdHlwZSk7Ci0JaWYgKG1lbSA9PSBOVUxMKSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgJWxkIHBhZ2VzXG4iLAotCQkJICBudW1fcGFnZXMpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhZ2VzOyBpKyspCi0JCW1lbS0+cGFnZXNbaV0gPSBwYWdlc1tpXTsKLQltZW0tPnBhZ2VfY291bnQgPSBudW1fcGFnZXM7Ci0KLQltZW0tPmlzX2ZsdXNoZWQgPSB0cnVlOwotCXJldCA9IGFncF9iaW5kX21lbW9yeShtZW0sIGd0dF9vZmZzZXQgLyBQQUdFX1NJWkUpOwotCWlmIChyZXQgIT0gMCkgewotCQlEUk1fRVJST1IoIkZhaWxlZCB0byBiaW5kIEFHUCBtZW1vcnk6ICVkXG4iLCByZXQpOwotCQlhZ3BfZnJlZV9tZW1vcnkobWVtKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCi0JcmV0dXJuIG1lbTsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2FncF9iaW5kX3BhZ2VzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggYWExNmVhMTcuLjNlZjJhYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0yNiw2ICsyNiw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgpAQCAtMTU4MCw5ICsxNTgxLDIzIEBAIHN0YXRpYyB2b2lkIGNvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9sZF9zdGF0ZS0+ZGV2OwogCWNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfaGVscGVyX2Z1bmNzICpmdW5jczsKKwlrdGltZV90IHN0YXJ0OworCXM2NCBjb21taXRfdGltZV9tczsKIAogCWZ1bmNzID0gZGV2LT5tb2RlX2NvbmZpZy5oZWxwZXJfcHJpdmF0ZTsKIAorCS8qCisJICogV2UncmUgbWVhc3VyaW5nIHRoZSBfZW50aXJlXyBjb21taXQsIHNvIHRoZSB0aW1lIHdpbGwgdmFyeSBkZXBlbmRpbmcKKwkgKiBvbiBob3cgbWFueSBmZW5jZXMgYW5kIG9iamVjdHMgYXJlIGludm9sdmVkLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHNlbGYKKwkgKiByZWZyZXNoLCB0aGlzIGlzIGRlc2lyYWJsZSBzaW5jZSBpdCdsbCBnaXZlIHVzIGFuIGlkZWEgb2YgaG93CisJICogY29uZ2VzdGVkIHRoaW5ncyBhcmUuIFRoaXMgd2lsbCBpbmZvcm0gb3VyIGRlY2lzaW9uIG9uIGhvdyBvZnRlbiB3ZQorCSAqIHNob3VsZCBlbnRlciBzZWxmIHJlZnJlc2ggYWZ0ZXIgaWRsZS4KKwkgKgorCSAqIFRoZXNlIHRpbWVzIHdpbGwgYmUgYXZlcmFnZWQgb3V0IGluIHRoZSBzZWxmIHJlZnJlc2ggaGVscGVycyB0byBhdm9pZAorCSAqIG92ZXJyZWFjdGluZyBvdmVyIG9uZSBvdXRsaWVyIGZyYW1lCisJICovCisJc3RhcnQgPSBrdGltZV9nZXQoKTsKKwogCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2ZlbmNlcyhkZXYsIG9sZF9zdGF0ZSwgZmFsc2UpOwogCiAJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKG9sZF9zdGF0ZSk7CkBAIC0xNTkyLDYgKzE2MDcsMTEgQEAgc3RhdGljIHZvaWQgY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKIAllbHNlCiAJCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF90YWlsKG9sZF9zdGF0ZSk7CiAKKwljb21taXRfdGltZV9tcyA9IGt0aW1lX21zX2RlbHRhKGt0aW1lX2dldCgpLCBzdGFydCk7CisJaWYgKGNvbW1pdF90aW1lX21zID4gMCkKKwkJZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXJfdXBkYXRlX2F2Z190aW1lcyhvbGRfc3RhdGUsCisJCQkJCQkgKHVuc2lnbmVkIGxvbmcpY29tbWl0X3RpbWVfbXMpOworCiAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2NsZWFudXBfZG9uZShvbGRfc3RhdGUpOwogCiAJZHJtX2F0b21pY19zdGF0ZV9wdXQob2xkX3N0YXRlKTsKQEAgLTMyNzUsNyArMzI5NSw3IEBAIHN0YXRpYyBpbnQgcGFnZV9mbGlwX2NvbW1vbihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOwogCiAJY3J0Y19zdGF0ZS0+ZXZlbnQgPSBldmVudDsKLQljcnRjX3N0YXRlLT5wYWdlZmxpcF9mbGFncyA9IGZsYWdzOworCWNydGNfc3RhdGUtPmFzeW5jX2ZsaXAgPSBmbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9BU1lOQzsKIAogCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsKIAlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKaW5kZXggNDZkYzI2NC4uZDBhOTM3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXN0YXRlLT56cG9zX2NoYW5nZWQgPSBmYWxzZTsKIAlzdGF0ZS0+Y29tbWl0ID0gTlVMTDsKIAlzdGF0ZS0+ZXZlbnQgPSBOVUxMOwotCXN0YXRlLT5wYWdlZmxpcF9mbGFncyA9IDA7CisJc3RhdGUtPmFzeW5jX2ZsaXAgPSBmYWxzZTsKIAogCS8qIFNlbGYgcmVmcmVzaCBzaG91bGQgYmUgY2FuY2VsZWQgd2hlbiBhIG5ldyB1cGRhdGUgaXMgYXZhaWxhYmxlICovCiAJc3RhdGUtPmFjdGl2ZSA9IGRybV9hdG9taWNfY3J0Y19lZmZlY3RpdmVseV9hY3RpdmUoc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCmluZGV4IGFiZTM4YmQuLjdhMjZiZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKQEAgLTc0Nyw2ICs3NDcsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAkJc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9IHZhbDsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+aGRjcF9jb250ZW50X3R5cGVfcHJvcGVydHkpIHsKKwkJc3RhdGUtPmhkY3BfY29udGVudF90eXBlID0gdmFsOwogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5jb2xvcnNwYWNlX3Byb3BlcnR5KSB7CiAJCXN0YXRlLT5jb2xvcnNwYWNlID0gdmFsOwogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT53cml0ZWJhY2tfZmJfaWRfcHJvcGVydHkpIHsKQEAgLTgzMSw2ICs4MzMsOCBAQCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCXN0YXRlLT5oZHJfb3V0cHV0X21ldGFkYXRhLT5iYXNlLmlkIDogMDsKIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+Y29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KSB7CiAJCSp2YWwgPSBzdGF0ZS0+Y29udGVudF9wcm90ZWN0aW9uOworCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5oZGNwX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eSkgeworCQkqdmFsID0gc3RhdGUtPmhkY3BfY29udGVudF90eXBlOwogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT53cml0ZWJhY2tfZmJfaWRfcHJvcGVydHkpIHsKIAkJLyogV3JpdGViYWNrIGZyYW1lYnVmZmVyIGlzIG9uZS1zaG90LCB3cml0ZSBhbmQgZm9yZ2V0ICovCiAJCSp2YWwgPSAwOwpAQCAtMTAzMyw3ICsxMDM3LDcgQEAgaW50IGRybV9hdG9taWNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKICAqIEFzIGEgY29udHJhc3QsIHdpdGggaW1wbGljaXQgZmVuY2luZyB0aGUga2VybmVsIGtlZXBzIHRyYWNrIG9mIGFueQogICogb25nb2luZyByZW5kZXJpbmcsIGFuZCBhdXRvbWF0aWNhbGx5IGVuc3VyZXMgdGhhdCB0aGUgYXRvbWljIHVwZGF0ZSB3YWl0cwogICogZm9yIGFueSBwZW5kaW5nIHJlbmRlcmluZyB0byBjb21wbGV0ZS4gRm9yIHNoYXJlZCBidWZmZXJzIHJlcHJlc2VudGVkIHdpdGgKLSAqIGEgJnN0cnVjdCBkbWFfYnVmIHRoaXMgaXMgdHJhY2tlZCBpbiAmc3RydWN0IHJlc2VydmF0aW9uX29iamVjdC4KKyAqIGEgJnN0cnVjdCBkbWFfYnVmIHRoaXMgaXMgdHJhY2tlZCBpbiAmc3RydWN0IGRtYV9yZXN2LgogICogSW1wbGljaXQgc3luY2luZyBpcyBob3cgTGludXggdHJhZGl0aW9uYWxseSB3b3JrZWQgKGUuZy4gRFJJMi8zIG9uIFgub3JnKSwKICAqIHdoZXJlYXMgZXhwbGljaXQgZmVuY2luZyBpcyB3aGF0IEFuZHJvaWQgd2FudHMuCiAgKgpAQCAtMTMwMSw4ICsxMzA1LDcgQEAgaW50IGRybV9tb2RlX2F0b21pY19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChhcmctPnJlc2VydmVkKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmICgoYXJnLT5mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9BU1lOQykgJiYKLQkJCSFkZXYtPm1vZGVfY29uZmlnLmFzeW5jX3BhZ2VfZmxpcCkKKwlpZiAoYXJnLT5mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9BU1lOQykKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKiBjYW4ndCB0ZXN0IGFuZCBleHBlY3QgYW4gZXZlbnQgYXQgdGhlIHNhbWUgdGltZS4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jCmluZGV4IGUxZGFmYjAuLmQ5YTJlMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYwpAQCAtNTksNyArNTksNiBAQCBzdGF0aWMgdm9pZCBkcm1fY2xpZW50X2Nsb3NlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KQogCiAJZHJtX2ZpbGVfZnJlZShjbGllbnQtPmZpbGUpOwogfQotRVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X2Nsb3NlKTsKIAogLyoqCiAgKiBkcm1fY2xpZW50X2luaXQgLSBJbml0aWFsaXNlIGEgRFJNIGNsaWVudApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKaW5kZXggYjNmMmNmNy4uNGM3NjY2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCkBAIC05Miw2ICs5Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5fcHJvcF9lbnVtX2xpc3QgZHJtX2Nvbm5lY3Rvcl9lbnVtX2xpc3RbXSA9IHsKIAl7IERSTV9NT0RFX0NPTk5FQ1RPUl9EU0ksICJEU0kiIH0sCiAJeyBEUk1fTU9ERV9DT05ORUNUT1JfRFBJLCAiRFBJIiB9LAogCXsgRFJNX01PREVfQ09OTkVDVE9SX1dSSVRFQkFDSywgIldyaXRlYmFjayIgfSwKKwl7IERSTV9NT0RFX0NPTk5FQ1RPUl9TUEksICJTUEkiIH0sCiB9OwogCiB2b2lkIGRybV9jb25uZWN0b3JfaWRhX2luaXQodm9pZCkKQEAgLTE0MCw4ICsxNDEsNyBAQCBzdGF0aWMgdm9pZCBkcm1fY29ubmVjdG9yX2dldF9jbWRsaW5lX21vZGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAl9CiAKIAlEUk1fREVCVUdfS01TKCJjbWRsaW5lIG1vZGUgZm9yIGNvbm5lY3RvciAlcyAlcyAlZHglZEAlZEh6JXMlcyVzXG4iLAotCQkgICAgICBjb25uZWN0b3ItPm5hbWUsCi0JCSAgICAgIG1vZGUtPm5hbWUsCisJCSAgICAgIGNvbm5lY3Rvci0+bmFtZSwgbW9kZS0+bmFtZSwKIAkJICAgICAgbW9kZS0+eHJlcywgbW9kZS0+eXJlcywKIAkJICAgICAgbW9kZS0+cmVmcmVzaF9zcGVjaWZpZWQgPyBtb2RlLT5yZWZyZXNoIDogNjAsCiAJCSAgICAgIG1vZGUtPnJiID8gIiByZWR1Y2VkIGJsYW5raW5nIiA6ICIiLApAQCAtMjk4LDYgKzI5OCw0MSBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiBFWFBPUlRfU1lNQk9MKGRybV9jb25uZWN0b3JfaW5pdCk7CiAKIC8qKgorICogZHJtX2Nvbm5lY3Rvcl9pbml0X3dpdGhfZGRjIC0gSW5pdCBhIHByZWFsbG9jYXRlZCBjb25uZWN0b3IKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAqIEBjb25uZWN0b3I6IHRoZSBjb25uZWN0b3IgdG8gaW5pdAorICogQGZ1bmNzOiBjYWxsYmFja3MgZm9yIHRoaXMgY29ubmVjdG9yCisgKiBAY29ubmVjdG9yX3R5cGU6IHVzZXIgdmlzaWJsZSB0eXBlIG9mIHRoZSBjb25uZWN0b3IKKyAqIEBkZGM6IHBvaW50ZXIgdG8gdGhlIGFzc29jaWF0ZWQgZGRjIGFkYXB0ZXIKKyAqCisgKiBJbml0aWFsaXNlcyBhIHByZWFsbG9jYXRlZCBjb25uZWN0b3IuIENvbm5lY3RvcnMgc2hvdWxkIGJlCisgKiBzdWJjbGFzc2VkIGFzIHBhcnQgb2YgZHJpdmVyIGNvbm5lY3RvciBvYmplY3RzLgorICoKKyAqIEVuc3VyZXMgdGhhdCB0aGUgZGRjIGZpZWxkIG9mIHRoZSBjb25uZWN0b3IgaXMgY29ycmVjdGx5IHNldC4KKyAqCisgKiBSZXR1cm5zOgorICogWmVybyBvbiBzdWNjZXNzLCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fY29ubmVjdG9yX2luaXRfd2l0aF9kZGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzICpmdW5jcywKKwkJCQlpbnQgY29ubmVjdG9yX3R5cGUsCisJCQkJc3RydWN0IGkyY19hZGFwdGVyICpkZGMpCit7CisJaW50IHJldDsKKworCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3RvciwgZnVuY3MsIGNvbm5lY3Rvcl90eXBlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyogcHJvdmlkZSBkZGMgc3ltbGluayBpbiBzeXNmcyAqLworCWNvbm5lY3Rvci0+ZGRjID0gZGRjOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl9pbml0X3dpdGhfZGRjKTsKKworLyoqCiAgKiBkcm1fY29ubmVjdG9yX2F0dGFjaF9lZGlkX3Byb3BlcnR5IC0gYXR0YWNoIGVkaWQgcHJvcGVydHkuCiAgKiBAY29ubmVjdG9yOiB0aGUgY29ubmVjdG9yCiAgKgpAQCAtOTQ4LDEwICs5ODMsNzIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgaGRtaV9jb2xvcnNwYWNlc1tdID0gewogICoJLSBJZiB0aGUgc3RhdGUgaXMgREVTSVJFRCwga2VybmVsIHNob3VsZCBhdHRlbXB0IHRvIHJlLWF1dGhlbnRpY2F0ZSB0aGUKICAqCSAgbGluayB3aGVuZXZlciBwb3NzaWJsZS4gVGhpcyBpbmNsdWRlcyBhY3Jvc3MgZGlzYWJsZS9lbmFibGUsIGRwbXMsCiAgKgkgIGhvdHBsdWcsIGRvd25zdHJlYW0gZGV2aWNlIGNoYW5nZXMsIGxpbmsgc3RhdHVzIGZhaWx1cmVzLCBldGMuLgotICoJLSBVc2Vyc3BhY2UgaXMgcmVzcG9uc2libGUgZm9yIHBvbGxpbmcgdGhlIHByb3BlcnR5IHRvIGRldGVybWluZSB3aGVuCi0gKgkgIHRoZSB2YWx1ZSB0cmFuc2l0aW9ucyBmcm9tIEVOQUJMRUQgdG8gREVTSVJFRC4gVGhpcyBzaWduaWZpZXMgdGhlIGxpbmsKLSAqCSAgaXMgbm8gbG9uZ2VyIHByb3RlY3RlZCBhbmQgdXNlcnNwYWNlIHNob3VsZCB0YWtlIGFwcHJvcHJpYXRlIGFjdGlvbgotICoJICAod2hhdGV2ZXIgdGhhdCBtaWdodCBiZSkuCisgKgktIEtlcm5lbCBzZW5kcyB1ZXZlbnQgd2l0aCB0aGUgY29ubmVjdG9yIGlkIGFuZCBwcm9wZXJ0eSBpZCB0aHJvdWdoCisgKgkgIEBkcm1faGRjcF91cGRhdGVfY29udGVudF9wcm90ZWN0aW9uLCB1cG9uIGJlbG93IGtlcm5lbCB0cmlnZ2VyZWQKKyAqCSAgc2NlbmFyaW9zOgorICoKKyAqCQktIERFU0lSRUQgLT4gRU5BQkxFRCAoYXV0aGVudGljYXRpb24gc3VjY2VzcykKKyAqCQktIEVOQUJMRUQgLT4gREVTSVJFRCAodGVybWluYXRpb24gb2YgYXV0aGVudGljYXRpb24pCisgKgktIFBsZWFzZSBub3RlIG5vIHVldmVudHMgZm9yIHVzZXJzcGFjZSB0cmlnZ2VyZWQgcHJvcGVydHkgc3RhdGUgY2hhbmdlcywKKyAqCSAgd2hpY2ggY2FuJ3QgZmFpbCBzdWNoIGFzCisgKgorICoJCS0gREVTSVJFRC9FTkFCTEVEIC0+IFVOREVTSVJFRAorICoJCS0gVU5ERVNJUkVEIC0+IERFU0lSRUQKKyAqCS0gVXNlcnNwYWNlIGlzIHJlc3BvbnNpYmxlIGZvciBwb2xsaW5nIHRoZSBwcm9wZXJ0eSBvciBsaXN0ZW4gdG8gdWV2ZW50cworICoJICB0byBkZXRlcm1pbmUgd2hlbiB0aGUgdmFsdWUgdHJhbnNpdGlvbnMgZnJvbSBFTkFCTEVEIHRvIERFU0lSRUQuCisgKgkgIFRoaXMgc2lnbmlmaWVzIHRoZSBsaW5rIGlzIG5vIGxvbmdlciBwcm90ZWN0ZWQgYW5kIHVzZXJzcGFjZSBzaG91bGQKKyAqCSAgdGFrZSBhcHByb3ByaWF0ZSBhY3Rpb24gKHdoYXRldmVyIHRoYXQgbWlnaHQgYmUpLgorICoKKyAqIEhEQ1AgQ29udGVudCBUeXBlOgorICoJVGhpcyBFbnVtIHByb3BlcnR5IGlzIHVzZWQgYnkgdGhlIHVzZXJzcGFjZSB0byBkZWNsYXJlIHRoZSBjb250ZW50IHR5cGUKKyAqCW9mIHRoZSBkaXNwbGF5IHN0cmVhbSwgdG8ga2VybmVsLiBIZXJlIGRpc3BsYXkgc3RyZWFtIHN0YW5kcyBmb3IgYW55CisgKglkaXNwbGF5IGNvbnRlbnQgdGhhdCB1c2Vyc3BhY2UgaW50ZW5kZWQgdG8gZGlzcGxheSB0aHJvdWdoIEhEQ1AKKyAqCWVuY3J5cHRpb24uCisgKgorICoJQ29udGVudCBUeXBlIG9mIGEgc3RyZWFtIGlzIGRlY2lkZWQgYnkgdGhlIG93bmVyIG9mIHRoZSBzdHJlYW0sIGFzCisgKgkiSERDUCBUeXBlMCIgb3IgIkhEQ1AgVHlwZTEiLgorICoKKyAqCVRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgY2FuIGJlIG9uZSBvZiB0aGUgYmVsb3c6CisgKgkgIC0gIkhEQ1AgVHlwZTAiOiBEUk1fTU9ERV9IRENQX0NPTlRFTlRfVFlQRTAgPSAwCisgKgkgIC0gIkhEQ1AgVHlwZTEiOiBEUk1fTU9ERV9IRENQX0NPTlRFTlRfVFlQRTEgPSAxCisgKgorICoJV2hlbiBrZXJuZWwgc3RhcnRzIHRoZSBIRENQIGF1dGhlbnRpY2F0aW9uIChzZWUgIkNvbnRlbnQgUHJvdGVjdGlvbiIKKyAqCWZvciBkZXRhaWxzKSwgaXQgdXNlcyB0aGUgY29udGVudCB0eXBlIGluICJIRENQIENvbnRlbnQgVHlwZSIKKyAqCWZvciBwZXJmb3JtaW5nIHRoZSBIRENQIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhlIGRpc3BsYXkgc2luay4KKyAqCisgKglQbGVhc2Ugbm90ZSBpbiBIRENQIHNwZWMgdmVyc2lvbnMsIGEgbGluayBjYW4gYmUgYXV0aGVudGljYXRlZCB3aXRoCisgKglIRENQIDIuMiBmb3IgQ29udGVudCBUeXBlIDAvQ29udGVudCBUeXBlIDEuIFdoZXJlIGFzIGEgbGluayBjYW4gYmUKKyAqCWF1dGhlbnRpY2F0ZWQgd2l0aCBIRENQMS40IG9ubHkgZm9yIENvbnRlbnQgVHlwZSAwKHRob3VnaCBpdCBpcyBpbXBsaWNpdAorICoJaW4gbmF0dXJlLiBBcyB0aGVyZSBpcyBubyByZWZlcmVuY2UgZm9yIENvbnRlbnQgVHlwZSBpbiBIRENQMS40KS4KKyAqCisgKglIRENQMi4yIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sIGl0c2VsZiB0YWtlcyB0aGUgIkNvbnRlbnQgVHlwZSIgYXMgYQorICoJcGFyYW1ldGVyLCB3aGljaCBpcyBhIGlucHV0IGZvciB0aGUgRFAgSERDUDIuMiBlbmNyeXB0aW9uIGFsZ28uCisgKgorICoJSW4gY2FzZSBvZiBUeXBlIDAgY29udGVudCBwcm90ZWN0aW9uIHJlcXVlc3QsIGtlcm5lbCBkcml2ZXIgY2FuIGNob29zZQorICoJZWl0aGVyIG9mIEhEQ1Agc3BlYyB2ZXJzaW9ucyAxLjQgYW5kIDIuMi4gV2hlbiBIRENQMi4yIGlzIHVzZWQgZm9yCisgKgkiSERDUCBUeXBlIDAiLCBhIEhEQ1AgMi4yIGNhcGFibGUgcmVwZWF0ZXIgaW4gdGhlIGRvd25zdHJlYW0gY2FuIHNlbmQKKyAqCXRoYXQgY29udGVudCB0byBhIEhEQ1AgMS40IGF1dGhlbnRpY2F0ZWQgSERDUCBzaW5rIChUeXBlMCBsaW5rKS4KKyAqCUJ1dCBpZiB0aGUgY29udGVudCBpcyBjbGFzc2lmaWVkIGFzICJIRENQIFR5cGUgMSIsIGFib3ZlIG1lbnRpb25lZAorICoJSERDUCAyLjIgcmVwZWF0ZXIgd29udCBzZW5kIHRoZSBjb250ZW50IHRvIHRoZSBIRENQIHNpbmsgYXMgaXQgY2FuJ3QKKyAqCWF1dGhlbnRpY2F0ZSB0aGUgSERDUDEuNCBjYXBhYmxlIHNpbmsgZm9yICJIRENQIFR5cGUgMSIuCisgKgorICoJUGxlYXNlIG5vdGUgdXNlcnNwYWNlIGNhbiBiZSBpZ25vcmFudCBvZiB0aGUgSERDUCB2ZXJzaW9ucyB1c2VkIGJ5IHRoZQorICoJa2VybmVsIGRyaXZlciB0byBhY2hpZXZlIHRoZSAiSERDUCBDb250ZW50IFR5cGUiLgorICoKKyAqCUF0IGN1cnJlbnQgc2NlbmFyaW8sIGNsYXNzaWZ5aW5nIGEgY29udGVudCBhcyBUeXBlIDEgZW5zdXJlcyB0aGF0IHRoZQorICoJY29udGVudCB3aWxsIGJlIGRpc3BsYXllZCBvbmx5IHRocm91Z2ggdGhlIEhEQ1AyLjIgZW5jcnlwdGVkIGxpbmsuCisgKgorICoJTm90ZSB0aGF0IHRoZSBIRENQIENvbnRlbnQgVHlwZSBwcm9wZXJ0eSBpcyBpbnRyb2R1Y2VkIGF0IEhEQ1AgMi4yLCBhbmQKKyAqCWRlZmF1bHRzIHRvIHR5cGUgMC4gSXQgaXMgb25seSBleHBvc2VkIGJ5IGRyaXZlcnMgc3VwcG9ydGluZyBIRENQIDIuMgorICoJKGhlbmNlIHN1cHBvcnRpbmcgVHlwZSAwIGFuZCBUeXBlIDEpLiBCYXNlZCBvbiBob3cgbmV4dCB2ZXJzaW9ucyBvZgorICoJSERDUCBzcGVjcyBhcmUgZGVmaW5lZCBjb250ZW50IFR5cGUgY291bGQgYmUgdXNlZCBmb3IgaGlnaGVyIHZlcnNpb25zCisgKgl0b28uCisgKgorICoJSWYgY29udGVudCB0eXBlIGlzIGNoYW5nZWQgd2hlbiAiQ29udGVudCBQcm90ZWN0aW9uIiBpcyBub3QgVU5ERVNJUkVELAorICoJdGhlbiBrZXJuZWwgd2lsbCBkaXNhYmxlIHRoZSBIRENQIGFuZCByZS1lbmFibGUgd2l0aCBuZXcgdHlwZSBpbiB0aGUKKyAqCXNhbWUgYXRvbWljIGNvbW1pdC4gQW5kIHdoZW4gIkNvbnRlbnQgUHJvdGVjdGlvbiIgaXMgRU5BQkxFRCwgaXQgbWVhbnMKKyAqCXRoYXQgbGluayBpcyBIRENQIGF1dGhlbnRpY2F0ZWQgYW5kIGVuY3J5cHRlZCwgZm9yIHRoZSB0cmFuc21pc3Npb24gb2YKKyAqCXRoZSBUeXBlIG9mIHN0cmVhbSBtZW50aW9uZWQgYXQgIkhEQ1AgQ29udGVudCBUeXBlIi4KICAqCiAgKiBIRFJfT1VUUFVUX01FVEFEQVRBOgogICoJQ29ubmVjdG9yIHByb3BlcnR5IHRvIGVuYWJsZSB1c2Vyc3BhY2UgdG8gc2VuZCBIRFIgTWV0YWRhdGEgdG8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwppbmRleCA2ZGQ0OWE2Li44MGRkZjEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCkBAIC0xNTksMTQgKzE1OSwxMCBAQCBkcm1fZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAlpZiAoIWVuY29kZXJfZnVuY3MpCiAJCXJldHVybjsKIAotCWRybV9icmlkZ2VfZGlzYWJsZShlbmNvZGVyLT5icmlkZ2UpOwotCiAJaWYgKGVuY29kZXJfZnVuY3MtPmRpc2FibGUpCiAJCSgqZW5jb2Rlcl9mdW5jcy0+ZGlzYWJsZSkoZW5jb2Rlcik7CiAJZWxzZSBpZiAoZW5jb2Rlcl9mdW5jcy0+ZHBtcykKIAkJKCplbmNvZGVyX2Z1bmNzLT5kcG1zKShlbmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRik7Ci0KLQlkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShlbmNvZGVyLT5icmlkZ2UpOwogfQogCiBzdGF0aWMgdm9pZCBfX2RybV9oZWxwZXJfZGlzYWJsZV91bnVzZWRfZnVuY3Rpb25zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0zMjYsMTMgKzMyMiw2IEBAIGJvb2wgZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJaWYgKCFlbmNvZGVyX2Z1bmNzKQogCQkJY29udGludWU7CiAKLQkJcmV0ID0gZHJtX2JyaWRnZV9tb2RlX2ZpeHVwKGVuY29kZXItPmJyaWRnZSwKLQkJCW1vZGUsIGFkanVzdGVkX21vZGUpOwotCQlpZiAoIXJldCkgewotCQkJRFJNX0RFQlVHX0tNUygiQnJpZGdlIGZpeHVwIGZhaWxlZFxuIik7Ci0JCQlnb3RvIGRvbmU7Ci0JCX0KLQogCQllbmNvZGVyX2Z1bmNzID0gZW5jb2Rlci0+aGVscGVyX3ByaXZhdGU7CiAJCWlmIChlbmNvZGVyX2Z1bmNzLT5tb2RlX2ZpeHVwKSB7CiAJCQlpZiAoIShyZXQgPSBlbmNvZGVyX2Z1bmNzLT5tb2RlX2ZpeHVwKGVuY29kZXIsIG1vZGUsCkBAIC0zNjQsMTMgKzM1Myw5IEBAIGJvb2wgZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJaWYgKCFlbmNvZGVyX2Z1bmNzKQogCQkJY29udGludWU7CiAKLQkJZHJtX2JyaWRnZV9kaXNhYmxlKGVuY29kZXItPmJyaWRnZSk7Ci0KIAkJLyogRGlzYWJsZSB0aGUgZW5jb2RlcnMgYXMgdGhlIGZpcnN0IHRoaW5nIHdlIGRvLiAqLwogCQlpZiAoZW5jb2Rlcl9mdW5jcy0+cHJlcGFyZSkKIAkJCWVuY29kZXJfZnVuY3MtPnByZXBhcmUoZW5jb2Rlcik7Ci0KLQkJZHJtX2JyaWRnZV9wb3N0X2Rpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKIAl9CiAKIAlkcm1fY3J0Y19wcmVwYXJlX2VuY29kZXJzKGRldik7CkBAIC0zOTcsOCArMzgyLDYgQEAgYm9vbCBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJZW5jb2Rlci0+YmFzZS5pZCwgZW5jb2Rlci0+bmFtZSwgbW9kZS0+bmFtZSk7CiAJCWlmIChlbmNvZGVyX2Z1bmNzLT5tb2RlX3NldCkKIAkJCWVuY29kZXJfZnVuY3MtPm1vZGVfc2V0KGVuY29kZXIsIG1vZGUsIGFkanVzdGVkX21vZGUpOwotCi0JCWRybV9icmlkZ2VfbW9kZV9zZXQoZW5jb2Rlci0+YnJpZGdlLCBtb2RlLCBhZGp1c3RlZF9tb2RlKTsKIAl9CiAKIAkvKiBOb3cgZW5hYmxlIHRoZSBjbG9ja3MsIHBsYW5lLCBwaXBlLCBhbmQgY29ubmVjdG9ycyB0aGF0IHdlIHNldCB1cC4gKi8KQEAgLTQxMywxMiArMzk2LDggQEAgYm9vbCBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlpZiAoIWVuY29kZXJfZnVuY3MpCiAJCQljb250aW51ZTsKIAotCQlkcm1fYnJpZGdlX3ByZV9lbmFibGUoZW5jb2Rlci0+YnJpZGdlKTsKLQogCQlpZiAoZW5jb2Rlcl9mdW5jcy0+Y29tbWl0KQogCQkJZW5jb2Rlcl9mdW5jcy0+Y29tbWl0KGVuY29kZXIpOwotCi0JCWRybV9icmlkZ2VfZW5hYmxlKGVuY29kZXItPmJyaWRnZSk7CiAJfQogCiAJLyogQ2FsY3VsYXRlIGFuZCBzdG9yZSB2YXJpb3VzIGNvbnN0YW50cyB3aGljaApAQCAtODE3LDI1ICs3OTYsMTQgQEAgc3RhdGljIGludCBkcm1faGVscGVyX2Nob29zZV9lbmNvZGVyX2RwbXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogLyogSGVscGVyIHdoaWNoIGhhbmRsZXMgYnJpZGdlIG9yZGVyaW5nIGFyb3VuZCBlbmNvZGVyIGRwbXMgKi8KIHN0YXRpYyB2b2lkIGRybV9oZWxwZXJfZW5jb2Rlcl9kcG1zKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgaW50IG1vZGUpCiB7Ci0Jc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSA9IGVuY29kZXItPmJyaWRnZTsKIAljb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzICplbmNvZGVyX2Z1bmNzOwogCiAJZW5jb2Rlcl9mdW5jcyA9IGVuY29kZXItPmhlbHBlcl9wcml2YXRlOwogCWlmICghZW5jb2Rlcl9mdW5jcykKIAkJcmV0dXJuOwogCi0JaWYgKG1vZGUgPT0gRFJNX01PREVfRFBNU19PTikKLQkJZHJtX2JyaWRnZV9wcmVfZW5hYmxlKGJyaWRnZSk7Ci0JZWxzZQotCQlkcm1fYnJpZGdlX2Rpc2FibGUoYnJpZGdlKTsKLQogCWlmIChlbmNvZGVyX2Z1bmNzLT5kcG1zKQogCQllbmNvZGVyX2Z1bmNzLT5kcG1zKGVuY29kZXIsIG1vZGUpOwotCi0JaWYgKG1vZGUgPT0gRFJNX01PREVfRFBNU19PTikKLQkJZHJtX2JyaWRnZV9lbmFibGUoYnJpZGdlKTsKLQllbHNlCi0JCWRybV9icmlkZ2VfcG9zdF9kaXNhYmxlKGJyaWRnZSk7CiB9CiAKIHN0YXRpYyBpbnQgZHJtX2hlbHBlcl9jaG9vc2VfY3J0Y19kcG1zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGVidWdmc19jcmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGVidWdmc19jcmMuYwppbmRleCA3Y2E0ODZkLi5iZTFiN2JhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RlYnVnZnNfY3JjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kZWJ1Z2ZzX2NyYy5jCkBAIC02Niw5ICs2NiwxOCBAQAogICogdGhlIHJlcG9ydGVkIENSQ3Mgb2YgZnJhbWVzIHRoYXQgc2hvdWxkIGhhdmUgdGhlIHNhbWUgY29udGVudHMuCiAgKgogICogT24gdGhlIGRyaXZlciBzaWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBlZmZvcnQgaXMgbWluaW1hbCwgZHJpdmVycyBvbmx5IG5lZWQgdG8KLSAqIGltcGxlbWVudCAmZHJtX2NydGNfZnVuY3Muc2V0X2NyY19zb3VyY2UuIFRoZSBkZWJ1Z2ZzIGZpbGVzIGFyZSBhdXRvbWF0aWNhbGx5Ci0gKiBzZXQgdXAgaWYgdGhhdCB2ZnVuYyBpcyBzZXQuIENSQyBzYW1wbGVzIG5lZWQgdG8gYmUgY2FwdHVyZWQgaW4gdGhlIGRyaXZlciBieQotICogY2FsbGluZyBkcm1fY3J0Y19hZGRfY3JjX2VudHJ5KCkuCisgKiBpbXBsZW1lbnQgJmRybV9jcnRjX2Z1bmNzLnNldF9jcmNfc291cmNlIGFuZCAmZHJtX2NydGNfZnVuY3MudmVyaWZ5X2NyY19zb3VyY2UuCisgKiBUaGUgZGVidWdmcyBmaWxlcyBhcmUgYXV0b21hdGljYWxseSBzZXQgdXAgaWYgdGhvc2UgdmZ1bmNzIGFyZSBzZXQuIENSQyBzYW1wbGVzCisgKiBuZWVkIHRvIGJlIGNhcHR1cmVkIGluIHRoZSBkcml2ZXIgYnkgY2FsbGluZyBkcm1fY3J0Y19hZGRfY3JjX2VudHJ5KCkuCisgKiBEZXBlbmRpbmcgb24gdGhlIGRyaXZlciBhbmQgSFcgcmVxdWlyZW1lbnRzLCAmZHJtX2NydGNfZnVuY3Muc2V0X2NyY19zb3VyY2UKKyAqIG1heSByZXN1bHQgaW4gYSBjb21taXQgKGV2ZW4gYSBmdWxsIG1vZGVzZXQpLgorICoKKyAqIENSQyByZXN1bHRzIG11c3QgYmUgcmVsaWFibGUgYWNyb3NzIG5vbi1mdWxsLW1vZGVzZXQgYXRvbWljIGNvbW1pdHMsIHNvIGlmIGEKKyAqIGNvbW1pdCB2aWEgRFJNX0lPQ1RMX01PREVfQVRPTUlDIHdvdWxkIGRpc2FibGUgb3Igb3RoZXJ3aXNlIGludGVyZmVyZSB3aXRoCisgKiBDUkMgZ2VuZXJhdGlvbiwgdGhlbiB0aGUgZHJpdmVyIG11c3QgbWFyayB0aGF0IGNvbW1pdCBhcyBhIGZ1bGwgbW9kZXNldAorICogKGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCkgc2hvdWxkIHJldHVybiB0cnVlKS4gQXMgYSByZXN1bHQsIHRvIGVuc3VyZQorICogY29uc2lzdGVudCByZXN1bHRzLCBnZW5lcmljIHVzZXJzcGFjZSBtdXN0IHJlLXNldHVwIENSQyBnZW5lcmF0aW9uIGFmdGVyIGEKKyAqIGxlZ2FjeSBTRVRDUlRDIG9yIGFuIGF0b21pYyBjb21taXQgd2l0aCBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVC4KICAqLwogCiBzdGF0aWMgaW50IGNyY19jb250cm9sX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZG1hLmMKaW5kZXggNWVmMDIyNy4uZTQ1YjA3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RtYS5jCkBAIC0xLDQgKzEsNCBAQAotLyoqCisvKgogICogXGZpbGUgZHJtX2RtYS5jCiAgKiBETUEgSU9DVEwgYW5kIGZ1bmN0aW9uIHN1cHBvcnQKICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2F1eF9kZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfYXV4X2Rldi5jCmluZGV4IDViZTI4ZTMuLjBjZmIzODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfYXV4X2Rldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfYXV4X2Rldi5jCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2RwX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHBfbXN0X2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIAogI2luY2x1ZGUgImRybV9jcnRjX2hlbHBlcl9pbnRlcm5hbC5oIgpAQCAtODIsOCArODMsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9kcF9hdXhfZGV2ICphbGxvY19kcm1fZHBfYXV4X2RldihzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4KQogCWtyZWZfaW5pdCgmYXV4X2Rldi0+cmVmY291bnQpOwogCiAJbXV0ZXhfbG9jaygmYXV4X2lkcl9tdXRleCk7Ci0JaW5kZXggPSBpZHJfYWxsb2NfY3ljbGljKCZhdXhfaWRyLCBhdXhfZGV2LCAwLCBEUk1fQVVYX01JTk9SUywKLQkJCQkgR0ZQX0tFUk5FTCk7CisJaW5kZXggPSBpZHJfYWxsb2MoJmF1eF9pZHIsIGF1eF9kZXYsIDAsIERSTV9BVVhfTUlOT1JTLCBHRlBfS0VSTkVMKTsKIAltdXRleF91bmxvY2soJmF1eF9pZHJfbXV0ZXgpOwogCWlmIChpbmRleCA8IDApIHsKIAkJa2ZyZWUoYXV4X2Rldik7CkBAIC0xNjMsNyArMTYzLDEyIEBAIHN0YXRpYyBzc2l6ZV90IGF1eGRldl9yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKQogCQkJYnJlYWs7CiAJCX0KIAotCQlyZXMgPSBkcm1fZHBfZHBjZF9yZWFkKGF1eF9kZXYtPmF1eCwgcG9zLCBidWYsIHRvZG8pOworCQlpZiAoYXV4X2Rldi0+YXV4LT5pc19yZW1vdGUpCisJCQlyZXMgPSBkcm1fZHBfbXN0X2RwY2RfcmVhZChhdXhfZGV2LT5hdXgsIHBvcywgYnVmLAorCQkJCQkJICAgdG9kbyk7CisJCWVsc2UKKwkJCXJlcyA9IGRybV9kcF9kcGNkX3JlYWQoYXV4X2Rldi0+YXV4LCBwb3MsIGJ1ZiwgdG9kbyk7CisKIAkJaWYgKHJlcyA8PSAwKQogCQkJYnJlYWs7CiAKQEAgLTIxMCw3ICsyMTUsMTIgQEAgc3RhdGljIHNzaXplX3QgYXV4ZGV2X3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pCiAJCQlicmVhazsKIAkJfQogCi0JCXJlcyA9IGRybV9kcF9kcGNkX3dyaXRlKGF1eF9kZXYtPmF1eCwgcG9zLCBidWYsIHRvZG8pOworCQlpZiAoYXV4X2Rldi0+YXV4LT5pc19yZW1vdGUpCisJCQlyZXMgPSBkcm1fZHBfbXN0X2RwY2Rfd3JpdGUoYXV4X2Rldi0+YXV4LCBwb3MsIGJ1ZiwKKwkJCQkJCSAgICB0b2RvKTsKKwkJZWxzZQorCQkJcmVzID0gZHJtX2RwX2RwY2Rfd3JpdGUoYXV4X2Rldi0+YXV4LCBwb3MsIGJ1ZiwgdG9kbyk7CisKIAkJaWYgKHJlcyA8PSAwKQogCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCmluZGV4IDBiOTk0ZDAuLmZmYzY4ZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYwpAQCAtMTUyLDM4ICsxNTIsMTUgQEAgRVhQT1JUX1NZTUJPTChkcm1fZHBfbGlua190cmFpbl9jaGFubmVsX2VxX2RlbGF5KTsKIAogdTggZHJtX2RwX2xpbmtfcmF0ZV90b19id19jb2RlKGludCBsaW5rX3JhdGUpCiB7Ci0Jc3dpdGNoIChsaW5rX3JhdGUpIHsKLQlkZWZhdWx0OgotCQlXQVJOKDEsICJ1bmtub3duIERQIGxpbmsgcmF0ZSAlZCwgdXNpbmcgJXhcbiIsIGxpbmtfcmF0ZSwKLQkJICAgICBEUF9MSU5LX0JXXzFfNjIpOwotCQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIDE2MjAwMDoKLQkJcmV0dXJuIERQX0xJTktfQldfMV82MjsKLQljYXNlIDI3MDAwMDoKLQkJcmV0dXJuIERQX0xJTktfQldfMl83OwotCWNhc2UgNTQwMDAwOgotCQlyZXR1cm4gRFBfTElOS19CV181XzQ7Ci0JY2FzZSA4MTAwMDA6Ci0JCXJldHVybiBEUF9MSU5LX0JXXzhfMTsKLQl9CisJLyogU3BlYyBzYXlzIGxpbmtfYncgPSBsaW5rX3JhdGUgLyAwLjI3R2JwcyAqLworCXJldHVybiBsaW5rX3JhdGUgLyAyNzAwMDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX2xpbmtfcmF0ZV90b19id19jb2RlKTsKIAogaW50IGRybV9kcF9id19jb2RlX3RvX2xpbmtfcmF0ZSh1OCBsaW5rX2J3KQogewotCXN3aXRjaCAobGlua19idykgewotCWRlZmF1bHQ6Ci0JCVdBUk4oMSwgInVua25vd24gRFAgbGluayBCVyBjb2RlICV4LCB1c2luZyAxNjIwMDBcbiIsIGxpbmtfYncpOwotCQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIERQX0xJTktfQldfMV82MjoKLQkJcmV0dXJuIDE2MjAwMDsKLQljYXNlIERQX0xJTktfQldfMl83OgotCQlyZXR1cm4gMjcwMDAwOwotCWNhc2UgRFBfTElOS19CV181XzQ6Ci0JCXJldHVybiA1NDAwMDA7Ci0JY2FzZSBEUF9MSU5LX0JXXzhfMToKLQkJcmV0dXJuIDgxMDAwMDsKLQl9CisJLyogU3BlYyBzYXlzIGxpbmtfcmF0ZSA9IGxpbmtfYncgKiAwLjI3R2JwcyAqLworCXJldHVybiBsaW5rX2J3ICogMjcwMDA7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9id19jb2RlX3RvX2xpbmtfcmF0ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCmluZGV4IDA5ODRiOWEuLjgyYWRkNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwpAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogCisjaW5jbHVkZSAiZHJtX2NydGNfaGVscGVyX2ludGVybmFsLmgiCisKIC8qKgogICogRE9DOiBkcCBtc3QgaGVscGVyCiAgKgpAQCAtNTMsNiArNTUsOSBAQCBzdGF0aWMgaW50IGRybV9kcF9kcGNkX3dyaXRlX3BheWxvYWQoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJICAgICBpbnQgaWQsCiAJCQkJICAgICBzdHJ1Y3QgZHJtX2RwX3BheWxvYWQgKnBheWxvYWQpOwogCitzdGF0aWMgaW50IGRybV9kcF9zZW5kX2RwY2RfcmVhZChzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKKwkJCQkgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCwKKwkJCQkgaW50IG9mZnNldCwgaW50IHNpemUsIHU4ICpieXRlcyk7CiBzdGF0aWMgaW50IGRybV9kcF9zZW5kX2RwY2Rfd3JpdGUoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJICBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0LAogCQkJCSAgaW50IG9mZnNldCwgaW50IHNpemUsIHU4ICpieXRlcyk7CkBAIC0xNDgzLDYgKzE0ODgsNTIgQEAgc3RhdGljIGJvb2wgZHJtX2RwX3BvcnRfc2V0dXBfcGR0KHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpCiAJcmV0dXJuIHNlbmRfbGluazsKIH0KIAorLyoqCisgKiBkcm1fZHBfbXN0X2RwY2RfcmVhZCgpIC0gcmVhZCBhIHNlcmllcyBvZiBieXRlcyBmcm9tIHRoZSBEUENEIHZpYSBzaWRlYmFuZAorICogQGF1eDogRmFrZSBzaWRlYmFuZCBBVVggQ0gKKyAqIEBvZmZzZXQ6IGFkZHJlc3Mgb2YgdGhlIChmaXJzdCkgcmVnaXN0ZXIgdG8gcmVhZAorICogQGJ1ZmZlcjogYnVmZmVyIHRvIHN0b3JlIHRoZSByZWdpc3RlciB2YWx1ZXMKKyAqIEBzaXplOiBudW1iZXIgb2YgYnl0ZXMgaW4gQGJ1ZmZlcgorICoKKyAqIFBlcmZvcm1zIHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkgZm9yIHJlbW90ZSBkZXZpY2VzIHZpYQorICogc2lkZWJhbmQgbWVzc2FnaW5nIGFzIGRybV9kcF9kcGNkX3JlYWQoKSBkb2VzIGZvciBsb2NhbAorICogZGV2aWNlcyB2aWEgYWN0dWFsIEFVWCBDSC4KKyAqCisgKiBSZXR1cm46IE51bWJlciBvZiBieXRlcyByZWFkLCBvciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK3NzaXplX3QgZHJtX2RwX21zdF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCSAgICAgdW5zaWduZWQgaW50IG9mZnNldCwgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0ID0gY29udGFpbmVyX29mKGF1eCwgc3RydWN0IGRybV9kcF9tc3RfcG9ydCwKKwkJCQkJCSAgICBhdXgpOworCisJcmV0dXJuIGRybV9kcF9zZW5kX2RwY2RfcmVhZChwb3J0LT5tZ3IsIHBvcnQsCisJCQkJICAgICBvZmZzZXQsIHNpemUsIGJ1ZmZlcik7Cit9CisKKy8qKgorICogZHJtX2RwX21zdF9kcGNkX3dyaXRlKCkgLSB3cml0ZSBhIHNlcmllcyBvZiBieXRlcyB0byB0aGUgRFBDRCB2aWEgc2lkZWJhbmQKKyAqIEBhdXg6IEZha2Ugc2lkZWJhbmQgQVVYIENICisgKiBAb2Zmc2V0OiBhZGRyZXNzIG9mIHRoZSAoZmlyc3QpIHJlZ2lzdGVyIHRvIHdyaXRlCisgKiBAYnVmZmVyOiBidWZmZXIgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIHdyaXRlCisgKiBAc2l6ZTogbnVtYmVyIG9mIGJ5dGVzIGluIEBidWZmZXIKKyAqCisgKiBQZXJmb3JtcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5IGZvciByZW1vdGUgZGV2aWNlcyB2aWEKKyAqIHNpZGViYW5kIG1lc3NhZ2luZyBhcyBkcm1fZHBfZHBjZF93cml0ZSgpIGRvZXMgZm9yIGxvY2FsCisgKiBkZXZpY2VzIHZpYSBhY3R1YWwgQVVYIENILgorICoKKyAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK3NzaXplX3QgZHJtX2RwX21zdF9kcGNkX3dyaXRlKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKQoreworCXN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQgPSBjb250YWluZXJfb2YoYXV4LCBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0LAorCQkJCQkJICAgIGF1eCk7CisKKwlyZXR1cm4gZHJtX2RwX3NlbmRfZHBjZF93cml0ZShwb3J0LT5tZ3IsIHBvcnQsCisJCQkJICAgICAgb2Zmc2V0LCBzaXplLCBidWZmZXIpOworfQorCiBzdGF0aWMgdm9pZCBkcm1fZHBfY2hlY2tfbXN0Yl9ndWlkKHN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YiwgdTggKmd1aWQpCiB7CiAJaW50IHJldDsKQEAgLTE1MjYsNiArMTU3Nyw0NiBAQCBzdGF0aWMgdm9pZCBidWlsZF9tc3RfcHJvcF9wYXRoKGNvbnN0IHN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YiwKIAlzdHJsY2F0KHByb3BwYXRoLCB0ZW1wLCBwcm9wcGF0aF9zaXplKTsKIH0KIAorLyoqCisgKiBkcm1fZHBfbXN0X2Nvbm5lY3Rvcl9sYXRlX3JlZ2lzdGVyKCkgLSBMYXRlIE1TVCBjb25uZWN0b3IgcmVnaXN0cmF0aW9uCisgKiBAY29ubmVjdG9yOiBUaGUgTVNUIGNvbm5lY3RvcgorICogQHBvcnQ6IFRoZSBNU1QgcG9ydCBmb3IgdGhpcyBjb25uZWN0b3IKKyAqCisgKiBIZWxwZXIgdG8gcmVnaXN0ZXIgdGhlIHJlbW90ZSBhdXggZGV2aWNlIGZvciB0aGlzIE1TVCBwb3J0LiBEcml2ZXJzIHNob3VsZAorICogY2FsbCB0aGlzIGZyb20gdGhlaXIgbXN0IGNvbm5lY3RvcidzIGxhdGVfcmVnaXN0ZXIgaG9vayB0byBlbmFibGUgTVNUIGF1eAorICogZGV2aWNlcy4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2RwX21zdF9jb25uZWN0b3JfbGF0ZV9yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0KQoreworCURSTV9ERUJVR19LTVMoInJlZ2lzdGVyaW5nICVzIHJlbW90ZSBidXMgZm9yICVzXG4iLAorCQkgICAgICBwb3J0LT5hdXgubmFtZSwgY29ubmVjdG9yLT5rZGV2LT5rb2JqLm5hbWUpOworCisJcG9ydC0+YXV4LmRldiA9IGNvbm5lY3Rvci0+a2RldjsKKwlyZXR1cm4gZHJtX2RwX2F1eF9yZWdpc3Rlcl9kZXZub2RlKCZwb3J0LT5hdXgpOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBfbXN0X2Nvbm5lY3Rvcl9sYXRlX3JlZ2lzdGVyKTsKKworLyoqCisgKiBkcm1fZHBfbXN0X2Nvbm5lY3Rvcl9lYXJseV91bnJlZ2lzdGVyKCkgLSBFYXJseSBNU1QgY29ubmVjdG9yIHVucmVnaXN0cmF0aW9uCisgKiBAY29ubmVjdG9yOiBUaGUgTVNUIGNvbm5lY3RvcgorICogQHBvcnQ6IFRoZSBNU1QgcG9ydCBmb3IgdGhpcyBjb25uZWN0b3IKKyAqCisgKiBIZWxwZXIgdG8gdW5yZWdpc3RlciB0aGUgcmVtb3RlIGF1eCBkZXZpY2UgZm9yIHRoaXMgTVNUIHBvcnQsIHJlZ2lzdGVyZWQgYnkKKyAqIGRybV9kcF9tc3RfY29ubmVjdG9yX2xhdGVfcmVnaXN0ZXIoKS4gRHJpdmVycyBzaG91bGQgY2FsbCB0aGlzIGZyb20gdGhlaXIgbXN0CisgKiBjb25uZWN0b3IncyBlYXJseV91bnJlZ2lzdGVyIGhvb2suCisgKi8KK3ZvaWQgZHJtX2RwX21zdF9jb25uZWN0b3JfZWFybHlfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCQkgICBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0KQoreworCURSTV9ERUJVR19LTVMoInVucmVnaXN0ZXJpbmcgJXMgcmVtb3RlIGJ1cyBmb3IgJXNcbiIsCisJCSAgICAgIHBvcnQtPmF1eC5uYW1lLCBjb25uZWN0b3ItPmtkZXYtPmtvYmoubmFtZSk7CisJZHJtX2RwX2F1eF91bnJlZ2lzdGVyX2Rldm5vZGUoJnBvcnQtPmF1eCk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9kcF9tc3RfY29ubmVjdG9yX2Vhcmx5X3VucmVnaXN0ZXIpOworCiBzdGF0aWMgdm9pZCBkcm1fZHBfYWRkX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiLAogCQkJICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAgc3RydWN0IGRybV9kcF9saW5rX2FkZHJfcmVwbHlfcG9ydCAqcG9ydF9tc2cpCkBAIC0xNTQ4LDYgKzE2MzksNyBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfYWRkX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiLAogCQlwb3J0LT5tZ3IgPSBtc3RiLT5tZ3I7CiAJCXBvcnQtPmF1eC5uYW1lID0gIkRQTVNUIjsKIAkJcG9ydC0+YXV4LmRldiA9IGRldi0+ZGV2OworCQlwb3J0LT5hdXguaXNfcmVtb3RlID0gdHJ1ZTsKIAogCQkvKgogCQkgKiBNYWtlIHN1cmUgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIGZvciBvdXIgcGFyZW50IGJyYW5jaCBzdGF5cwpAQCAtMTgxNiw3ICsxOTA4LDYgQEAgc3RhdGljIGJvb2wgZHJtX2RwX3ZhbGlkYXRlX2d1aWQoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgMAogc3RhdGljIGludCBidWlsZF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZywgdTggcG9ydF9udW0sIHUzMiBvZmZzZXQsIHU4IG51bV9ieXRlcykKIHsKIAlzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yZXFfYm9keSByZXE7CkBAIC0xODI5LDcgKzE5MjAsNiBAQCBzdGF0aWMgaW50IGJ1aWxkX2RwY2RfcmVhZChzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAqbXNnLCB1OCBwb3J0X251bSwgdTMyCiAKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgogCiBzdGF0aWMgaW50IGRybV9kcF9zZW5kX3NpZGViYW5kX21zZyhzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAkJCQkgICAgYm9vbCB1cCwgdTggKm1zZywgaW50IGxlbikKQEAgLTI0NDEsMjYgKzI1MzEsNTggQEAgaW50IGRybV9kcF91cGRhdGVfcGF5bG9hZF9wYXJ0MihzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1ncikKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX3VwZGF0ZV9wYXlsb2FkX3BhcnQyKTsKIAotI2lmIDAgLyogdW51c2VkIGFzIG9mIHlldCAqLwogc3RhdGljIGludCBkcm1fZHBfc2VuZF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQsCi0JCQkJIGludCBvZmZzZXQsIGludCBzaXplKQorCQkJCSBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdTggKmJ5dGVzKQogewogCWludCBsZW47CisJaW50IHJldCA9IDA7CiAJc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKnR4bXNnOworCXN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YjsKKworCW1zdGIgPSBkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9tc3RiX3ZhbGlkYXRlZChtZ3IsIHBvcnQtPnBhcmVudCk7CisJaWYgKCFtc3RiKQorCQlyZXR1cm4gLUVJTlZBTDsKIAogCXR4bXNnID0ga3phbGxvYyhzaXplb2YoKnR4bXNnKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCF0eG1zZykKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKCF0eG1zZykgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGZhaWxfcHV0OworCX0KIAotCWxlbiA9IGJ1aWxkX2RwY2RfcmVhZCh0eG1zZywgcG9ydC0+cG9ydF9udW0sIDAsIDgpOworCWxlbiA9IGJ1aWxkX2RwY2RfcmVhZCh0eG1zZywgcG9ydC0+cG9ydF9udW0sIG9mZnNldCwgc2l6ZSk7CiAJdHhtc2ctPmRzdCA9IHBvcnQtPnBhcmVudDsKIAogCWRybV9kcF9xdWV1ZV9kb3duX3R4KG1nciwgdHhtc2cpOwogCi0JcmV0dXJuIDA7CisJcmV0ID0gZHJtX2RwX21zdF93YWl0X3R4X3JlcGx5KG1zdGIsIHR4bXNnKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBmYWlsX2ZyZWU7CisKKwkvKiBEUENEIHJlYWQgc2hvdWxkIG5ldmVyIGJlIE5BQ0tlZCAqLworCWlmICh0eG1zZy0+cmVwbHkucmVwbHlfdHlwZSA9PSAxKSB7CisJCURSTV9FUlJPUigibXN0YiAlcCBwb3J0ICVkOiBEUENEIHJlYWQgb24gYWRkciAweCV4IGZvciAlZCBieXRlcyBOQUtlZFxuIiwKKwkJCSAgbXN0YiwgcG9ydC0+cG9ydF9udW0sIG9mZnNldCwgc2l6ZSk7CisJCXJldCA9IC1FSU87CisJCWdvdG8gZmFpbF9mcmVlOworCX0KKworCWlmICh0eG1zZy0+cmVwbHkudS5yZW1vdGVfZHBjZF9yZWFkX2Fjay5udW1fYnl0ZXMgIT0gc2l6ZSkgeworCQlyZXQgPSAtRVBST1RPOworCQlnb3RvIGZhaWxfZnJlZTsKKwl9CisKKwlyZXQgPSBtaW5fdChzaXplX3QsIHR4bXNnLT5yZXBseS51LnJlbW90ZV9kcGNkX3JlYWRfYWNrLm51bV9ieXRlcywKKwkJICAgIHNpemUpOworCW1lbWNweShieXRlcywgdHhtc2ctPnJlcGx5LnUucmVtb3RlX2RwY2RfcmVhZF9hY2suYnl0ZXMsIHJldCk7CisKK2ZhaWxfZnJlZToKKwlrZnJlZSh0eG1zZyk7CitmYWlsX3B1dDoKKwlkcm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9tc3RiKG1zdGIpOworCisJcmV0dXJuIHJldDsKIH0KLSNlbmRpZgogCiBzdGF0aWMgaW50IGRybV9kcF9zZW5kX2RwY2Rfd3JpdGUoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJICBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0LApAQCAtMjQ4OSw3ICsyNjExLDcgQEAgc3RhdGljIGludCBkcm1fZHBfc2VuZF9kcGNkX3dyaXRlKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCXJldCA9IGRybV9kcF9tc3Rfd2FpdF90eF9yZXBseShtc3RiLCB0eG1zZyk7CiAJaWYgKHJldCA+IDApIHsKIAkJaWYgKHR4bXNnLT5yZXBseS5yZXBseV90eXBlID09IERQX1NJREVCQU5EX1JFUExZX05BSykKLQkJCXJldCA9IC1FSU5WQUw7CisJCQlyZXQgPSAtRUlPOwogCQllbHNlCiAJCQlyZXQgPSAwOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCmluZGV4IDlkMDA5NDdjLi43NjlmZWVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKQEAgLTMyOCwxMSArMzI4LDkgQEAgdm9pZCBkcm1fbWlub3JfcmVsZWFzZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKICAqCQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwogICoJCWludCByZXQ7CiAgKgotICoJCVsKLSAqCQkgIGRldm1fa3phbGxvYygpIGNhbid0IGJlIHVzZWQgaGVyZSBiZWNhdXNlIHRoZSBkcm1fZGV2aWNlCi0gKgkJICBsaWZldGltZSBjYW4gZXhjZWVkIHRoZSBkZXZpY2UgbGlmZXRpbWUgaWYgZHJpdmVyIHVuYmluZAotICoJCSAgaGFwcGVucyB3aGVuIHVzZXJzcGFjZSBzdGlsbCBoYXMgb3BlbiBmaWxlIGRlc2NyaXB0b3JzLgotICoJCV0KKyAqCQkvLyBkZXZtX2t6YWxsb2MoKSBjYW4ndCBiZSB1c2VkIGhlcmUgYmVjYXVzZSB0aGUgZHJtX2RldmljZSAnCisgKgkJLy8gbGlmZXRpbWUgY2FuIGV4Y2VlZCB0aGUgZGV2aWNlIGxpZmV0aW1lIGlmIGRyaXZlciB1bmJpbmQKKyAqCQkvLyBoYXBwZW5zIHdoZW4gdXNlcnNwYWNlIHN0aWxsIGhhcyBvcGVuIGZpbGUgZGVzY3JpcHRvcnMuCiAgKgkJcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7CiAgKgkJaWYgKCFwcml2KQogICoJCQlyZXR1cm4gLUVOT01FTTsKQEAgLTM1NSw3ICszNTMsNyBAQCB2b2lkIGRybV9taW5vcl9yZWxlYXNlKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQogICoJCWlmIChJU19FUlIocHJpdi0+cGNsaykpCiAgKgkJCXJldHVybiBQVFJfRVJSKHByaXYtPnBjbGspOwogICoKLSAqCQlbIEZ1cnRoZXIgc2V0dXAsIGRpc3BsYXkgcGlwZWxpbmUgZXRjIF0KKyAqCQkvLyBGdXJ0aGVyIHNldHVwLCBkaXNwbGF5IHBpcGVsaW5lIGV0YwogICoKICAqCQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBkcm0pOwogICoKQEAgLTM3MCw3ICszNjgsNyBAQCB2b2lkIGRybV9taW5vcl9yZWxlYXNlKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQogICoJCXJldHVybiAwOwogICoJfQogICoKLSAqCVsgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIHRoZSBkZXZtXyByZXNvdXJjZXMgYXJlIHJlbGVhc2VkIF0KKyAqCS8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSB0aGUgZGV2bV8gcmVzb3VyY2VzIGFyZSByZWxlYXNlZAogICoJc3RhdGljIGludCBkcml2ZXJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAgKgl7CiAgKgkJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwpAQCAtMzgxLDcgKzM3OSw3IEBAIHZvaWQgZHJtX21pbm9yX3JlbGVhc2Uoc3RydWN0IGRybV9taW5vciAqbWlub3IpCiAgKgkJcmV0dXJuIDA7CiAgKgl9CiAgKgotICoJWyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBrZXJuZWwgcmVzdGFydCBhbmQgc2h1dGRvd24gXQorICoJLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb24ga2VybmVsIHJlc3RhcnQgYW5kIHNodXRkb3duCiAgKglzdGF0aWMgdm9pZCBkcml2ZXJfc2h1dGRvd24oc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKICAqCXsKICAqCQlkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bihwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZpbGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmlsZS5jCmluZGV4IDc1NGFmMjUuLmVhMzRiYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmlsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmlsZS5jCkBAIC0xNDcsOCArMTQ3LDcgQEAgc3RydWN0IGRybV9maWxlICpkcm1fZmlsZV9hbGxvYyhzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKIAlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9TWU5DT0JKKSkKIAkJZHJtX3N5bmNvYmpfb3BlbihmaWxlKTsKIAotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1BSSU1FKSkKLQkJZHJtX3ByaW1lX2luaXRfZmlsZV9wcml2YXRlKCZmaWxlLT5wcmltZSk7CisJZHJtX3ByaW1lX2luaXRfZmlsZV9wcml2YXRlKCZmaWxlLT5wcmltZSk7CiAKIAlpZiAoZGV2LT5kcml2ZXItPm9wZW4pIHsKIAkJcmV0ID0gZGV2LT5kcml2ZXItPm9wZW4oZGV2LCBmaWxlKTsKQEAgLTE1OSw4ICsxNTgsNyBAQCBzdHJ1Y3QgZHJtX2ZpbGUgKmRybV9maWxlX2FsbG9jKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQogCXJldHVybiBmaWxlOwogCiBvdXRfcHJpbWVfZGVzdHJveToKLQlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9QUklNRSkpCi0JCWRybV9wcmltZV9kZXN0cm95X2ZpbGVfcHJpdmF0ZSgmZmlsZS0+cHJpbWUpOworCWRybV9wcmltZV9kZXN0cm95X2ZpbGVfcHJpdmF0ZSgmZmlsZS0+cHJpbWUpOwogCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1NZTkNPQkopKQogCQlkcm1fc3luY29ial9yZWxlYXNlKGZpbGUpOwogCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0dFTSkpCkBAIC0yNTMsOCArMjUxLDcgQEAgdm9pZCBkcm1fZmlsZV9mcmVlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIAlpZiAoZGV2LT5kcml2ZXItPnBvc3RjbG9zZSkKIAkJZGV2LT5kcml2ZXItPnBvc3RjbG9zZShkZXYsIGZpbGUpOwogCi0JaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfUFJJTUUpKQotCQlkcm1fcHJpbWVfZGVzdHJveV9maWxlX3ByaXZhdGUoJmZpbGUtPnByaW1lKTsKKwlkcm1fcHJpbWVfZGVzdHJveV9maWxlX3ByaXZhdGUoJmZpbGUtPnByaW1lKTsKIAogCVdBUk5fT04oIWxpc3RfZW1wdHkoJmZpbGUtPmV2ZW50X2xpc3QpKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMKaW5kZXggYThjNDQ2OC4uNjg1NGY1ODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L21lbV9lbmNyeXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvcGFnZXZlYy5oPgogCisjaW5jbHVkZSA8ZHJtL2RybS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KQEAgLTE1OCw3ICsxNTksNyBAQCB2b2lkIGRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWtyZWZfaW5pdCgmb2JqLT5yZWZjb3VudCk7CiAJb2JqLT5oYW5kbGVfY291bnQgPSAwOwogCW9iai0+c2l6ZSA9IHNpemU7Ci0JcmVzZXJ2YXRpb25fb2JqZWN0X2luaXQoJm9iai0+X3Jlc3YpOworCWRtYV9yZXN2X2luaXQoJm9iai0+X3Jlc3YpOwogCWlmICghb2JqLT5yZXN2KQogCQlvYmotPnJlc3YgPSAmb2JqLT5fcmVzdjsKIApAQCAtMjU0LDggKzI1NSw3IEBAIGRybV9nZW1fb2JqZWN0X3JlbGVhc2VfaGFuZGxlKGludCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkYXRhKQogCWVsc2UgaWYgKGRldi0+ZHJpdmVyLT5nZW1fY2xvc2Vfb2JqZWN0KQogCQlkZXYtPmRyaXZlci0+Z2VtX2Nsb3NlX29iamVjdChvYmosIGZpbGVfcHJpdik7CiAKLQlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9QUklNRSkpCi0JCWRybV9nZW1fcmVtb3ZlX3ByaW1lX2hhbmRsZXMob2JqLCBmaWxlX3ByaXYpOworCWRybV9nZW1fcmVtb3ZlX3ByaW1lX2hhbmRsZXMob2JqLCBmaWxlX3ByaXYpOwogCWRybV92bWFfbm9kZV9yZXZva2UoJm9iai0+dm1hX25vZGUsIGZpbGVfcHJpdik7CiAKIAlkcm1fZ2VtX29iamVjdF9oYW5kbGVfcHV0X3VubG9ja2VkKG9iaik7CkBAIC02MzMsNiArNjMzLDkgQEAgdm9pZCBkcm1fZ2VtX3B1dF9wYWdlcyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IHBhZ2UgKipwYWdlcywKIAogCXBhZ2V2ZWNfaW5pdCgmcHZlYyk7CiAJZm9yIChpID0gMDsgaSA8IG5wYWdlczsgaSsrKSB7CisJCWlmICghcGFnZXNbaV0pCisJCQljb250aW51ZTsKKwogCQlpZiAoZGlydHkpCiAJCQlzZXRfcGFnZV9kaXJ0eShwYWdlc1tpXSk7CiAKQEAgLTc1Miw3ICs3NTUsNyBAQCBkcm1fZ2VtX29iamVjdF9sb29rdXAoc3RydWN0IGRybV9maWxlICpmaWxwLCB1MzIgaGFuZGxlKQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX29iamVjdF9sb29rdXApOwogCiAvKioKLSAqIGRybV9nZW1fcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXQgLSBXYWl0IG9uIEdFTSBvYmplY3QncyByZXNlcnZhdGlvbidzIG9iamVjdHMKKyAqIGRybV9nZW1fZG1hX3Jlc3Zfd2FpdCAtIFdhaXQgb24gR0VNIG9iamVjdCdzIHJlc2VydmF0aW9uJ3Mgb2JqZWN0cwogICogc2hhcmVkIGFuZC9vciBleGNsdXNpdmUgZmVuY2VzLgogICogQGZpbGVwOiBEUk0gZmlsZSBwcml2YXRlIGRhdGUKICAqIEBoYW5kbGU6IHVzZXJzcGFjZSBoYW5kbGUKQEAgLTc2NCw3ICs3NjcsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fb2JqZWN0X2xvb2t1cCk7CiAgKiBSZXR1cm5zIC1FUkVTVEFSVFNZUyBpZiBpbnRlcnJ1cHRlZCwgMCBpZiB0aGUgd2FpdCB0aW1lZCBvdXQsIG9yCiAgKiBncmVhdGVyIHRoYW4gMCBvbiBzdWNjZXNzLgogICovCi1sb25nIGRybV9nZW1fcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXQoc3RydWN0IGRybV9maWxlICpmaWxlcCwgdTMyIGhhbmRsZSwKK2xvbmcgZHJtX2dlbV9kbWFfcmVzdl93YWl0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZXAsIHUzMiBoYW5kbGUsCiAJCQkJICAgIGJvb2wgd2FpdF9hbGwsIHVuc2lnbmVkIGxvbmcgdGltZW91dCkKIHsKIAlsb25nIHJldDsKQEAgLTc3Niw3ICs3NzksNyBAQCBsb25nIGRybV9nZW1fcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXQoc3RydWN0IGRybV9maWxlICpmaWxlcCwgdTMyIGhhbmRsZSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3Uob2JqLT5yZXN2LCB3YWl0X2FsbCwKKwlyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KG9iai0+cmVzdiwgd2FpdF9hbGwsCiAJCQkJCQkgIHRydWUsIHRpbWVvdXQpOwogCWlmIChyZXQgPT0gMCkKIAkJcmV0ID0gLUVUSU1FOwpAQCAtNzg3LDcgKzc5MCw3IEBAIGxvbmcgZHJtX2dlbV9yZXNlcnZhdGlvbl9vYmplY3Rfd2FpdChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVwLCB1MzIgaGFuZGxlLAogCiAJcmV0dXJuIHJldDsKIH0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV9yZXNlcnZhdGlvbl9vYmplY3Rfd2FpdCk7CitFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hX3Jlc3Zfd2FpdCk7CiAKIC8qKgogICogZHJtX2dlbV9jbG9zZV9pb2N0bCAtIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHRU1fQ0xPU0UgaW9jdGwKQEAgLTk1Myw3ICs5NTYsNyBAQCBkcm1fZ2VtX29iamVjdF9yZWxlYXNlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogCWlmIChvYmotPmZpbHApCiAJCWZwdXQob2JqLT5maWxwKTsKIAotCXJlc2VydmF0aW9uX29iamVjdF9maW5pKCZvYmotPl9yZXN2KTsKKwlkbWFfcmVzdl9maW5pKCZvYmotPl9yZXN2KTsKIAlkcm1fZ2VtX2ZyZWVfbW1hcF9vZmZzZXQob2JqKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9vYmplY3RfcmVsZWFzZSk7CkBAIC0xMjg4LDggKzEyOTEsOCBAQCBkcm1fZ2VtX2xvY2tfcmVzZXJ2YXRpb25zKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9ianMsIGludCBjb3VudCwKIAlpZiAoY29udGVuZGVkICE9IC0xKSB7CiAJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gb2Jqc1tjb250ZW5kZWRdOwogCi0JCXJldCA9IHd3X211dGV4X2xvY2tfc2xvd19pbnRlcnJ1cHRpYmxlKCZvYmotPnJlc3YtPmxvY2ssCi0JCQkJCQkgICAgICAgYWNxdWlyZV9jdHgpOworCQlyZXQgPSBkbWFfcmVzdl9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZShvYmotPnJlc3YsCisJCQkJCQkJCSBhY3F1aXJlX2N0eCk7CiAJCWlmIChyZXQpIHsKIAkJCXd3X2FjcXVpcmVfZG9uZShhY3F1aXJlX2N0eCk7CiAJCQlyZXR1cm4gcmV0OwpAQCAtMTMwMCwxNiArMTMwMywxNiBAQCBkcm1fZ2VtX2xvY2tfcmVzZXJ2YXRpb25zKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9ianMsIGludCBjb3VudCwKIAkJaWYgKGkgPT0gY29udGVuZGVkKQogCQkJY29udGludWU7CiAKLQkJcmV0ID0gd3dfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZvYmpzW2ldLT5yZXN2LT5sb2NrLAotCQkJCQkJICBhY3F1aXJlX2N0eCk7CisJCXJldCA9IGRtYV9yZXN2X2xvY2tfaW50ZXJydXB0aWJsZShvYmpzW2ldLT5yZXN2LAorCQkJCQkJCSAgICBhY3F1aXJlX2N0eCk7CiAJCWlmIChyZXQpIHsKIAkJCWludCBqOwogCiAJCQlmb3IgKGogPSAwOyBqIDwgaTsgaisrKQotCQkJCXd3X211dGV4X3VubG9jaygmb2Jqc1tqXS0+cmVzdi0+bG9jayk7CisJCQkJZG1hX3Jlc3ZfdW5sb2NrKG9ianNbal0tPnJlc3YpOwogCiAJCQlpZiAoY29udGVuZGVkICE9IC0xICYmIGNvbnRlbmRlZCA+PSBpKQotCQkJCXd3X211dGV4X3VubG9jaygmb2Jqc1tjb250ZW5kZWRdLT5yZXN2LT5sb2NrKTsKKwkJCQlkbWFfcmVzdl91bmxvY2sob2Jqc1tjb250ZW5kZWRdLT5yZXN2KTsKIAogCQkJaWYgKHJldCA9PSAtRURFQURMSykgewogCQkJCWNvbnRlbmRlZCA9IGk7CkBAIC0xMzM0LDcgKzEzMzcsNyBAQCBkcm1fZ2VtX3VubG9ja19yZXNlcnZhdGlvbnMoc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqb2JqcywgaW50IGNvdW50LAogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCi0JCXd3X211dGV4X3VubG9jaygmb2Jqc1tpXS0+cmVzdi0+bG9jayk7CisJCWRtYV9yZXN2X3VubG9jayhvYmpzW2ldLT5yZXN2KTsKIAogCXd3X2FjcXVpcmVfZmluaShhY3F1aXJlX2N0eCk7CiB9CkBAIC0xNDEwLDEyICsxNDEzLDEyIEBAIGludCBkcm1fZ2VtX2ZlbmNlX2FycmF5X2FkZF9pbXBsaWNpdChzdHJ1Y3QgeGFycmF5ICpmZW5jZV9hcnJheSwKIAogCWlmICghd3JpdGUpIHsKIAkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShvYmotPnJlc3YpOworCQkJZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KG9iai0+cmVzdik7CiAKIAkJcmV0dXJuIGRybV9nZW1fZmVuY2VfYXJyYXlfYWRkKGZlbmNlX2FycmF5LCBmZW5jZSk7CiAJfQogCi0JcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KG9iai0+cmVzdiwgTlVMTCwKKwlyZXQgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShvYmotPnJlc3YsIE5VTEwsCiAJCQkJCQkmZmVuY2VfY291bnQsICZmZW5jZXMpOwogCWlmIChyZXQgfHwgIWZlbmNlX2NvdW50KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuYwppbmRleCA4ZmNiYWJmLi5iOWJjZDMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuYwpAQCAtNyw3ICs3LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1yZXN2Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KQEAgLTI3MSwxMSArMjcxLDExIEBAIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9nZW1fZmJfY3JlYXRlX3dpdGhfZGlydHkpOwogICogQHBsYW5lOiBQbGFuZQogICogQHN0YXRlOiBQbGFuZSBzdGF0ZSB0aGUgZmVuY2Ugd2lsbCBiZSBhdHRhY2hlZCB0bwogICoKLSAqIFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgYSBHRU0gYmFja2VkIGZyYW1lYnVmZmVyIGZvciBzY2Fub3V0IGJ5IGNoZWNraW5nIGlmCi0gKiB0aGUgcGxhbmUgZnJhbWVidWZmZXIgaGFzIGEgRE1BLUJVRiBhdHRhY2hlZC4gSWYgaXQgZG9lcywgaXQgZXh0cmFjdHMgdGhlCi0gKiBleGNsdXNpdmUgZmVuY2UgYW5kIGF0dGFjaGVzIGl0IHRvIHRoZSBwbGFuZSBzdGF0ZSBmb3IgdGhlIGF0b21pYyBoZWxwZXIgdG8KLSAqIHdhaXQgb24uIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgYXMgdGhlICZkcm1fcGxhbmVfaGVscGVyX2Z1bmNzLnByZXBhcmVfZmIKLSAqIGNhbGxiYWNrLgorICogVGhpcyBmdW5jdGlvbiBleHRyYWN0cyB0aGUgZXhjbHVzaXZlIGZlbmNlIGZyb20gJmRybV9nZW1fb2JqZWN0LnJlc3YgYW5kCisgKiBhdHRhY2hlcyBpdCB0byBwbGFuZSBzdGF0ZSBmb3IgdGhlIGF0b21pYyBoZWxwZXIgdG8gd2FpdCBvbi4gVGhpcyBpcworICogbmVjZXNzYXJ5IHRvIGNvcnJlY3RseSBpbXBsZW1lbnQgaW1wbGljaXQgc3luY2hyb25pemF0aW9uIGZvciBhbnkgYnVmZmVycworICogc2hhcmVkIGFzIGEgc3RydWN0ICZkbWFfYnVmLiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGFzIHRoZQorICogJmRybV9wbGFuZV9oZWxwZXJfZnVuY3MucHJlcGFyZV9mYiBjYWxsYmFjay4KICAqCiAgKiBUaGVyZSBpcyBubyBuZWVkIGZvciAmZHJtX3BsYW5lX2hlbHBlcl9mdW5jcy5jbGVhbnVwX2ZiIGhvb2sgZm9yIHNpbXBsZQogICogZ2VtIGJhc2VkIGZyYW1lYnVmZmVyIGRyaXZlcnMgd2hpY2ggaGF2ZSB0aGVpciBidWZmZXJzIGFsd2F5cyBwaW5uZWQgaW4KQEAgLTI4NywxNyArMjg3LDE1IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9nZW1fZmJfY3JlYXRlX3dpdGhfZGlydHkpOwogaW50IGRybV9nZW1fZmJfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRtYV9idWYgKmRtYV9idWY7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAlpZiAoIXN0YXRlLT5mYikKIAkJcmV0dXJuIDA7CiAKLQlkbWFfYnVmID0gZHJtX2dlbV9mYl9nZXRfb2JqKHN0YXRlLT5mYiwgMCktPmRtYV9idWY7Ci0JaWYgKGRtYV9idWYpIHsKLQkJZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KGRtYV9idWYtPnJlc3YpOwotCQlkcm1fYXRvbWljX3NldF9mZW5jZV9mb3JfcGxhbmUoc3RhdGUsIGZlbmNlKTsKLQl9CisJb2JqID0gZHJtX2dlbV9mYl9nZXRfb2JqKHN0YXRlLT5mYiwgMCk7CisJZmVuY2UgPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3Uob2JqLT5yZXN2KTsKKwlkcm1fYXRvbWljX3NldF9mZW5jZV9mb3JfcGxhbmUoc3RhdGUsIGZlbmNlKTsKIAogCXJldHVybiAwOwogfQpAQCAtMzA5LDEwICszMDcsMTEgQEAgRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9mYl9wcmVwYXJlX2ZiKTsKICAqIEBwaXBlOiBTaW1wbGUgZGlzcGxheSBwaXBlCiAgKiBAcGxhbmVfc3RhdGU6IFBsYW5lIHN0YXRlCiAgKgotICogVGhpcyBmdW5jdGlvbiB1c2VzIGRybV9nZW1fZmJfcHJlcGFyZV9mYigpIHRvIGNoZWNrIGlmIHRoZSBwbGFuZSBGQiBoYXMgYQotICogJmRtYV9idWYgYXR0YWNoZWQsIGV4dHJhY3RzIHRoZSBleGNsdXNpdmUgZmVuY2UgYW5kIGF0dGFjaGVzIGl0IHRvIHBsYW5lCi0gKiBzdGF0ZSBmb3IgdGhlIGF0b21pYyBoZWxwZXIgdG8gd2FpdCBvbi4gRHJpdmVycyBjYW4gdXNlIHRoaXMgYXMgdGhlaXIKLSAqICZkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcy5wcmVwYXJlX2ZiIGNhbGxiYWNrLgorICogVGhpcyBmdW5jdGlvbiB1c2VzIGRybV9nZW1fZmJfcHJlcGFyZV9mYigpIHRvIGV4dHJhY3QgdGhlIGV4Y2x1c2l2ZSBmZW5jZQorICogZnJvbSAmZHJtX2dlbV9vYmplY3QucmVzdiBhbmQgYXR0YWNoZXMgaXQgdG8gcGxhbmUgc3RhdGUgZm9yIHRoZSBhdG9taWMKKyAqIGhlbHBlciB0byB3YWl0IG9uLiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBjb3JyZWN0bHkgaW1wbGVtZW50IGltcGxpY2l0CisgKiBzeW5jaHJvbml6YXRpb24gZm9yIGFueSBidWZmZXJzIHNoYXJlZCBhcyBhIHN0cnVjdCAmZG1hX2J1Zi4gRHJpdmVycyBjYW4gdXNlCisgKiB0aGlzIGFzIHRoZWlyICZkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcy5wcmVwYXJlX2ZiIGNhbGxiYWNrLgogICoKICAqIFNlZSBkcm1fYXRvbWljX3NldF9mZW5jZV9mb3JfcGxhbmUoKSBmb3IgYSBkaXNjdXNzaW9uIG9mIGltcGxpY2l0IGFuZAogICogZXhwbGljaXQgZmVuY2luZyBpbiBhdG9taWMgbW9kZXNldCB1cGRhdGVzLgpAQCAtMzIzLDQ2ICszMjIsMyBAQCBpbnQgZHJtX2dlbV9mYl9zaW1wbGVfZGlzcGxheV9waXBlX3ByZXBhcmVfZmIoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaQogCXJldHVybiBkcm1fZ2VtX2ZiX3ByZXBhcmVfZmIoJnBpcGUtPnBsYW5lLCBwbGFuZV9zdGF0ZSk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9wcmVwYXJlX2ZiKTsKLQotLyoqCi0gKiBkcm1fZ2VtX2ZiZGV2X2ZiX2NyZWF0ZSAtIENyZWF0ZSBhIEdFTSBiYWNrZWQgJmRybV9mcmFtZWJ1ZmZlciBmb3IgZmJkZXYKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZW11bGF0aW9uCi0gKiBAZGV2OiBEUk0gZGV2aWNlCi0gKiBAc2l6ZXM6IGZiZGV2IHNpemUgZGVzY3JpcHRpb24KLSAqIEBwaXRjaF9hbGlnbjogT3B0aW9uYWwgcGl0Y2ggYWxpZ25tZW50Ci0gKiBAb2JqOiBHRU0gb2JqZWN0IGJhY2tpbmcgdGhlIGZyYW1lYnVmZmVyCi0gKiBAZnVuY3M6IE9wdGlvbmFsIHZ0YWJsZSB0byBiZSB1c2VkIGZvciB0aGUgbmV3IGZyYW1lYnVmZmVyIG9iamVjdCB3aGVuIHRoZQotICogICAgICAgICBkaXJ0eSBjYWxsYmFjayBpcyBuZWVkZWQuCi0gKgotICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgZnJhbWVidWZmZXIgZnJvbSBhICZkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZQotICogZGVzY3JpcHRpb24gZm9yIHVzZSBpbiB0aGUgJmRybV9mYl9oZWxwZXJfZnVuY3MuZmJfcHJvYmUgY2FsbGJhY2suCi0gKgotICogUmV0dXJuczoKLSAqIFBvaW50ZXIgdG8gYSAmZHJtX2ZyYW1lYnVmZmVyIG9uIHN1Y2Nlc3Mgb3IgYW4gZXJyb3IgcG9pbnRlciBvbiBmYWlsdXJlLgotICovCi1zdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoKLWRybV9nZW1fZmJkZXZfZmJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUgKnNpemVzLAotCQkJdW5zaWduZWQgaW50IHBpdGNoX2FsaWduLCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKLQkJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgKmZ1bmNzKQotewotCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIG1vZGVfY21kID0geyAwIH07Ci0KLQltb2RlX2NtZC53aWR0aCA9IHNpemVzLT5zdXJmYWNlX3dpZHRoOwotCW1vZGVfY21kLmhlaWdodCA9IHNpemVzLT5zdXJmYWNlX2hlaWdodDsKLQltb2RlX2NtZC5waXRjaGVzWzBdID0gc2l6ZXMtPnN1cmZhY2Vfd2lkdGggKgotCQkJICAgICAgRElWX1JPVU5EX1VQKHNpemVzLT5zdXJmYWNlX2JwcCwgOCk7Ci0JaWYgKHBpdGNoX2FsaWduKQotCQltb2RlX2NtZC5waXRjaGVzWzBdID0gcm91bmR1cChtb2RlX2NtZC5waXRjaGVzWzBdLAotCQkJCQkgICAgICBwaXRjaF9hbGlnbik7Ci0JbW9kZV9jbWQucGl4ZWxfZm9ybWF0ID0gZHJtX2RyaXZlcl9sZWdhY3lfZmJfZm9ybWF0KGRldiwgc2l6ZXMtPnN1cmZhY2VfYnBwLAotCQkJCQkJCSAgICBzaXplcy0+c3VyZmFjZV9kZXB0aCk7Ci0JaWYgKG9iai0+c2l6ZSA8IG1vZGVfY21kLnBpdGNoZXNbMF0gKiBtb2RlX2NtZC5oZWlnaHQpCi0JCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwotCi0JaWYgKCFmdW5jcykKLQkJZnVuY3MgPSAmZHJtX2dlbV9mYl9mdW5jczsKLQotCXJldHVybiBkcm1fZ2VtX2ZiX2FsbG9jKGRldiwgJm1vZGVfY21kLCAmb2JqLCAxLCBmdW5jcyk7Ci19Ci1FWFBPUlRfU1lNQk9MKGRybV9nZW1fZmJkZXZfZmJfY3JlYXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3NobWVtX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmMKaW5kZXggNDcyZWE1ZC4uZjU5MTg3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogCisjaW5jbHVkZSA8ZHJtL2RybS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9zaG1lbV9oZWxwZXIuaD4KQEAgLTc0LDYgKzc1LDcgQEAgc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0ICpkcm1fZ2VtX3NobWVtX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3QKIAlzaG1lbSA9IHRvX2RybV9nZW1fc2htZW1fb2JqKG9iaik7CiAJbXV0ZXhfaW5pdCgmc2htZW0tPnBhZ2VzX2xvY2spOwogCW11dGV4X2luaXQoJnNobWVtLT52bWFwX2xvY2spOworCUlOSVRfTElTVF9IRUFEKCZzaG1lbS0+bWFkdl9saXN0KTsKIAogCS8qCiAJICogT3VyIGJ1ZmZlcnMgYXJlIGtlcHQgcGlubmVkLCBzbyBhbGxvY2F0aW5nIHRoZW0KQEAgLTExNywxMSArMTE5LDExIEBAIHZvaWQgZHJtX2dlbV9zaG1lbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIAkJaWYgKHNobWVtLT5zZ3QpIHsKIAkJCWRtYV91bm1hcF9zZyhvYmotPmRldi0+ZGV2LCBzaG1lbS0+c2d0LT5zZ2wsCiAJCQkJICAgICBzaG1lbS0+c2d0LT5uZW50cywgRE1BX0JJRElSRUNUSU9OQUwpOwotCi0JCQlkcm1fZ2VtX3NobWVtX3B1dF9wYWdlcyhzaG1lbSk7CiAJCQlzZ19mcmVlX3RhYmxlKHNobWVtLT5zZ3QpOwogCQkJa2ZyZWUoc2htZW0tPnNndCk7CiAJCX0KKwkJaWYgKHNobWVtLT5wYWdlcykKKwkJCWRybV9nZW1fc2htZW1fcHV0X3BhZ2VzKHNobWVtKTsKIAl9CiAKIAlXQVJOX09OKHNobWVtLT5wYWdlc191c2VfY291bnQpOwpAQCAtMzYxLDYgKzM2Myw3MSBAQCBkcm1fZ2VtX3NobWVtX2NyZWF0ZV93aXRoX2hhbmRsZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9zaG1lbV9jcmVhdGVfd2l0aF9oYW5kbGUpOwogCisvKiBVcGRhdGUgbWFkdmlzZSBzdGF0dXMsIHJldHVybnMgdHJ1ZSBpZiBub3QgcHVyZ2VkLCBlbHNlCisgKiBmYWxzZSBvciAtZXJybm8uCisgKi8KK2ludCBkcm1fZ2VtX3NobWVtX21hZHZpc2Uoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBtYWR2KQoreworCXN0cnVjdCBkcm1fZ2VtX3NobWVtX29iamVjdCAqc2htZW0gPSB0b19kcm1fZ2VtX3NobWVtX29iaihvYmopOworCisJbXV0ZXhfbG9jaygmc2htZW0tPnBhZ2VzX2xvY2spOworCisJaWYgKHNobWVtLT5tYWR2ID49IDApCisJCXNobWVtLT5tYWR2ID0gbWFkdjsKKworCW1hZHYgPSBzaG1lbS0+bWFkdjsKKworCW11dGV4X3VubG9jaygmc2htZW0tPnBhZ2VzX2xvY2spOworCisJcmV0dXJuIChtYWR2ID49IDApOworfQorRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3NobWVtX21hZHZpc2UpOworCit2b2lkIGRybV9nZW1fc2htZW1fcHVyZ2VfbG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmRldjsKKwlzdHJ1Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3QgKnNobWVtID0gdG9fZHJtX2dlbV9zaG1lbV9vYmoob2JqKTsKKworCVdBUk5fT04oIWRybV9nZW1fc2htZW1faXNfcHVyZ2VhYmxlKHNobWVtKSk7CisKKwlkbWFfdW5tYXBfc2cob2JqLT5kZXYtPmRldiwgc2htZW0tPnNndC0+c2dsLAorCQkgICAgIHNobWVtLT5zZ3QtPm5lbnRzLCBETUFfQklESVJFQ1RJT05BTCk7CisJc2dfZnJlZV90YWJsZShzaG1lbS0+c2d0KTsKKwlrZnJlZShzaG1lbS0+c2d0KTsKKwlzaG1lbS0+c2d0ID0gTlVMTDsKKworCWRybV9nZW1fc2htZW1fcHV0X3BhZ2VzX2xvY2tlZChzaG1lbSk7CisKKwlzaG1lbS0+bWFkdiA9IC0xOworCisJZHJtX3ZtYV9ub2RlX3VubWFwKCZvYmotPnZtYV9ub2RlLCBkZXYtPmFub25faW5vZGUtPmlfbWFwcGluZyk7CisJZHJtX2dlbV9mcmVlX21tYXBfb2Zmc2V0KG9iaik7CisKKwkvKiBPdXIgZ29hbCBoZXJlIGlzIHRvIHJldHVybiBhcyBtdWNoIG9mIHRoZSBtZW1vcnkgYXMKKwkgKiBpcyBwb3NzaWJsZSBiYWNrIHRvIHRoZSBzeXN0ZW0gYXMgd2UgYXJlIGNhbGxlZCBmcm9tIE9PTS4KKwkgKiBUbyBkbyB0aGlzIHdlIG11c3QgaW5zdHJ1Y3QgdGhlIHNobWZzIHRvIGRyb3AgYWxsIG9mIGl0cworCSAqIGJhY2tpbmcgcGFnZXMsICpub3cqLgorCSAqLworCXNobWVtX3RydW5jYXRlX3JhbmdlKGZpbGVfaW5vZGUob2JqLT5maWxwKSwgMCwgKGxvZmZfdCktMSk7CisKKwlpbnZhbGlkYXRlX21hcHBpbmdfcGFnZXMoZmlsZV9pbm9kZShvYmotPmZpbHApLT5pX21hcHBpbmcsCisJCQkwLCAobG9mZl90KS0xKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2dlbV9zaG1lbV9wdXJnZV9sb2NrZWQpOworCitib29sIGRybV9nZW1fc2htZW1fcHVyZ2Uoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCit7CisJc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0ICpzaG1lbSA9IHRvX2RybV9nZW1fc2htZW1fb2JqKG9iaik7CisKKwlpZiAoIW11dGV4X3RyeWxvY2soJnNobWVtLT5wYWdlc19sb2NrKSkKKwkJcmV0dXJuIGZhbHNlOworCWRybV9nZW1fc2htZW1fcHVyZ2VfbG9ja2VkKG9iaik7CisJbXV0ZXhfdW5sb2NrKCZzaG1lbS0+cGFnZXNfbG9jayk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2dlbV9zaG1lbV9wdXJnZSk7CisKIC8qKgogICogZHJtX2dlbV9zaG1lbV9kdW1iX2NyZWF0ZSAtIENyZWF0ZSBhIGR1bWIgc2htZW0gYnVmZmVyIG9iamVjdAogICogQGZpbGU6IERSTSBmaWxlIHN0cnVjdHVyZSB0byBjcmVhdGUgdGhlIGR1bWIgYnVmZmVyIGZvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKaW5kZXggNGRlNzgyYy4uZmQ3NTEwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCkBAIC03LDYgKzcsOCBAQAogI2luY2x1ZGUgPGRybS9kcm1fdnJhbV9tbV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmg+CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MgZHJtX2dlbV92cmFtX29iamVjdF9mdW5jczsKKwogLyoqCiAgKiBET0M6IG92ZXJ2aWV3CiAgKgpAQCAtMjQsNyArMjYsNyBAQCBzdGF0aWMgdm9pZCBkcm1fZ2VtX3ZyYW1fY2xlYW51cChzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvKQogCSAqIFRUTSBidWZmZXIgb2JqZWN0IGluICdibycgaGFzIGFscmVhZHkgYmVlbiBjbGVhbmVkCiAJICogdXA7IG9ubHkgcmVsZWFzZSB0aGUgR0VNIG9iamVjdC4KIAkgKi8KLQlkcm1fZ2VtX29iamVjdF9yZWxlYXNlKCZnYm8tPmdlbSk7CisJZHJtX2dlbV9vYmplY3RfcmVsZWFzZSgmZ2JvLT5iby5iYXNlKTsKIH0KIAogc3RhdGljIHZvaWQgZHJtX2dlbV92cmFtX2Rlc3Ryb3koc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibykKQEAgLTgwLDcgKzgyLDEwIEBAIHN0YXRpYyBpbnQgZHJtX2dlbV92cmFtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnQgcmV0OwogCXNpemVfdCBhY2Nfc2l6ZTsKIAotCXJldCA9IGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LCAmZ2JvLT5nZW0sIHNpemUpOworCWlmICghZ2JvLT5iby5iYXNlLmZ1bmNzKQorCQlnYm8tPmJvLmJhc2UuZnVuY3MgPSAmZHJtX2dlbV92cmFtX29iamVjdF9mdW5jczsKKworCXJldCA9IGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LCAmZ2JvLT5iby5iYXNlLCBzaXplKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC05OCw3ICsxMDMsNyBAQCBzdGF0aWMgaW50IGRybV9nZW1fdnJhbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIDA7CiAKIGVycl9kcm1fZ2VtX29iamVjdF9yZWxlYXNlOgotCWRybV9nZW1fb2JqZWN0X3JlbGVhc2UoJmdiby0+Z2VtKTsKKwlkcm1fZ2VtX29iamVjdF9yZWxlYXNlKCZnYm8tPmJvLmJhc2UpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTE2Myw3ICsxNjgsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fdnJhbV9wdXQpOwogICovCiB1NjQgZHJtX2dlbV92cmFtX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8pCiB7Ci0JcmV0dXJuIGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmZ2JvLT5iby52bWFfbm9kZSk7CisJcmV0dXJuIGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmZ2JvLT5iby5iYXNlLnZtYV9ub2RlKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX21tYXBfb2Zmc2V0KTsKIApAQCAtMzc4LDExICszODMsMTEgQEAgaW50IGRybV9nZW1fdnJhbV9maWxsX2NyZWF0ZV9kdW1iKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAlpZiAoSVNfRVJSKGdibykpCiAJCXJldHVybiBQVFJfRVJSKGdibyk7CiAKLQlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZSwgJmdiby0+Z2VtLCAmaGFuZGxlKTsKKwlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZSwgJmdiby0+Ym8uYmFzZSwgJmhhbmRsZSk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkOwogCi0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZnYm8tPmdlbSk7CisJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZnYm8tPmJvLmJhc2UpOwogCiAJYXJncy0+cGl0Y2ggPSBwaXRjaDsKIAlhcmdzLT5zaXplID0gc2l6ZTsKQEAgLTM5MSw3ICszOTYsNyBAQCBpbnQgZHJtX2dlbV92cmFtX2ZpbGxfY3JlYXRlX2R1bWIoc3RydWN0IGRybV9maWxlICpmaWxlLAogCXJldHVybiAwOwogCiBlcnJfZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkOgotCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZCgmZ2JvLT5nZW0pOworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZCgmZ2JvLT5iby5iYXNlKTsKIAlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1fZmlsbF9jcmVhdGVfZHVtYik7CkBAIC00NDEsNyArNDQ2LDcgQEAgaW50IGRybV9nZW1fdnJhbV9ib19kcml2ZXJfdmVyaWZ5X2FjY2VzcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogewogCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfYm8oYm8pOwogCi0JcmV0dXJuIGRybV92bWFfbm9kZV92ZXJpZnlfYWNjZXNzKCZnYm8tPmdlbS52bWFfbm9kZSwKKwlyZXR1cm4gZHJtX3ZtYV9ub2RlX3ZlcmlmeV9hY2Nlc3MoJmdiby0+Ym8uYmFzZS52bWFfbm9kZSwKIAkJCQkJICBmaWxwLT5wcml2YXRlX2RhdGEpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1fYm9fZHJpdmVyX3ZlcmlmeV9hY2Nlc3MpOwpAQCAtNDYwLDIxICs0NjUsMjQgQEAgY29uc3Qgc3RydWN0IGRybV92cmFtX21tX2Z1bmNzIGRybV9nZW1fdnJhbV9tbV9mdW5jcyA9IHsKIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX21tX2Z1bmNzKTsKIAogLyoKLSAqIEhlbHBlcnMgZm9yIHN0cnVjdCBkcm1fZHJpdmVyCisgKiBIZWxwZXJzIGZvciBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MKICAqLwogCiAvKioKLSAqIGRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkKCkgLSBcCi0JSW1wbGVtZW50cyAmc3RydWN0IGRybV9kcml2ZXIuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkCi0gKiBAZ2VtOglHRU0gb2JqZWN0LiBSZWZlcnMgdG8gJnN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0LmdlbQorICogZHJtX2dlbV92cmFtX29iamVjdF9mcmVlKCkgLSBcCisJSW1wbGVtZW50cyAmc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzLmZyZWUKKyAqIEBnZW06ICAgICAgIEdFTSBvYmplY3QuIFJlZmVycyB0byAmc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QuZ2VtCiAgKi8KLXZvaWQgZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0pCitzdGF0aWMgdm9pZCBkcm1fZ2VtX3ZyYW1fb2JqZWN0X2ZyZWUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0pCiB7CiAJc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0oZ2VtKTsKIAogCWRybV9nZW1fdnJhbV9wdXQoZ2JvKTsKIH0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQpOworCisvKgorICogSGVscGVycyBmb3IgZHVtcCBidWZmZXJzCisgKi8KIAogLyoqCiAgKiBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2NyZWF0ZV9kdW1iKCkgLSBcCkBAIC01MzYsMTkgKzU0NCwxOSBAQCBpbnQgZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0KTsKIAogLyoKLSAqIFBSSU1FIGhlbHBlcnMgZm9yIHN0cnVjdCBkcm1fZHJpdmVyCisgKiBQUklNRSBoZWxwZXJzCiAgKi8KIAogLyoqCi0gKiBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV9waW4oKSAtIFwKLQlJbXBsZW1lbnRzICZzdHJ1Y3QgZHJtX2RyaXZlci5nZW1fcHJpbWVfcGluCisgKiBkcm1fZ2VtX3ZyYW1fb2JqZWN0X3BpbigpIC0gXAorCUltcGxlbWVudHMgJnN0cnVjdCBkcm1fZ2VtX29iamVjdF9mdW5jcy5waW4KICAqIEBnZW06CVRoZSBHRU0gb2JqZWN0IHRvIHBpbgogICoKICAqIFJldHVybnM6CiAgKiAwIG9uIHN1Y2Nlc3MsIG9yCiAgKiBhIG5lZ2F0aXZlIGVycm5vIGNvZGUgb3RoZXJ3aXNlLgogICovCi1pbnQgZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtKQorc3RhdGljIGludCBkcm1fZ2VtX3ZyYW1fb2JqZWN0X3BpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSkKIHsKIAlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShnZW0pOwogCkBAIC01NjIsMzEgKzU3MCwyOSBAQCBpbnQgZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtKQogCSAqLwogCXJldHVybiBkcm1fZ2VtX3ZyYW1fcGluKGdibywgMCk7CiB9Ci1FWFBPUlRfU1lNQk9MKGRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX3ByaW1lX3Bpbik7CiAKIC8qKgotICogZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfdW5waW4oKSAtIFwKLQlJbXBsZW1lbnRzICZzdHJ1Y3QgZHJtX2RyaXZlci5nZW1fcHJpbWVfdW5waW4KKyAqIGRybV9nZW1fdnJhbV9vYmplY3RfdW5waW4oKSAtIFwKKwlJbXBsZW1lbnRzICZzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MudW5waW4KICAqIEBnZW06CVRoZSBHRU0gb2JqZWN0IHRvIHVucGluCiAgKi8KLXZvaWQgZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfdW5waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0pCitzdGF0aWMgdm9pZCBkcm1fZ2VtX3ZyYW1fb2JqZWN0X3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtKQogewogCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGdlbSk7CiAKIAlkcm1fZ2VtX3ZyYW1fdW5waW4oZ2JvKTsKIH0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfdW5waW4pOwogCiAvKioKLSAqIGRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX3ByaW1lX3ZtYXAoKSAtIFwKLQlJbXBsZW1lbnRzICZzdHJ1Y3QgZHJtX2RyaXZlci5nZW1fcHJpbWVfdm1hcAorICogZHJtX2dlbV92cmFtX29iamVjdF92bWFwKCkgLSBcCisJSW1wbGVtZW50cyAmc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzLnZtYXAKICAqIEBnZW06CVRoZSBHRU0gb2JqZWN0IHRvIG1hcAogICoKICAqIFJldHVybnM6CiAgKiBUaGUgYnVmZmVycyB2aXJ0dWFsIGFkZHJlc3Mgb24gc3VjY2Vzcywgb3IKICAqIE5VTEwgb3RoZXJ3aXNlLgogICovCi12b2lkICpkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtKQorc3RhdGljIHZvaWQgKmRybV9nZW1fdnJhbV9vYmplY3Rfdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSkKIHsKIAlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShnZW0pOwogCWludCByZXQ7CkBAIC02MDIsNDAgKzYwOCwzMCBAQCB2b2lkICpkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtKQogCX0KIAlyZXR1cm4gYmFzZTsKIH0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfdm1hcCk7CiAKIC8qKgotICogZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfdnVubWFwKCkgLSBcCi0JSW1wbGVtZW50cyAmc3RydWN0IGRybV9kcml2ZXIuZ2VtX3ByaW1lX3Z1bm1hcAorICogZHJtX2dlbV92cmFtX29iamVjdF92dW5tYXAoKSAtIFwKKwlJbXBsZW1lbnRzICZzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MudnVubWFwCiAgKiBAZ2VtOglUaGUgR0VNIG9iamVjdCB0byB1bm1hcAogICogQHZhZGRyOglUaGUgbWFwcGluZydzIGJhc2UgYWRkcmVzcwogICovCi12b2lkIGRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX3ByaW1lX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSwKLQkJCQkJICB2b2lkICp2YWRkcikKK3N0YXRpYyB2b2lkIGRybV9nZW1fdnJhbV9vYmplY3RfdnVubWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtLAorCQkJCSAgICAgICB2b2lkICp2YWRkcikKIHsKIAlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShnZW0pOwogCiAJZHJtX2dlbV92cmFtX2t1bm1hcChnYm8pOwogCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwogfQotRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV92dW5tYXApOwogCi0vKioKLSAqIGRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX3ByaW1lX21tYXAoKSAtIFwKLQlJbXBsZW1lbnRzICZzdHJ1Y3QgZHJtX2RyaXZlci5nZW1fcHJpbWVfbW1hcAotICogQGdlbToJVGhlIEdFTSBvYmplY3QgdG8gbWFwCi0gKiBAdm1hOglUaGUgVk1BIGRlc2NyaWJpbmcgdGhlIG1hcHBpbmcKLSAqCi0gKiBSZXR1cm5zOgotICogMCBvbiBzdWNjZXNzLCBvcgotICogYSBuZWdhdGl2ZSBlcnJubyBjb2RlIG90aGVyd2lzZS4KKy8qCisgKiBHRU0gb2JqZWN0IGZ1bmNzCiAgKi8KLWludCBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV9tbWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtLAotCQkJCSAgICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKLXsKLQlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShnZW0pOwogCi0JZ2JvLT5nZW0udm1hX25vZGUudm1fbm9kZS5zdGFydCA9IGdiby0+Ym8udm1hX25vZGUudm1fbm9kZS5zdGFydDsKLQlyZXR1cm4gZHJtX2dlbV9wcmltZV9tbWFwKGdlbSwgdm1hKTsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfbW1hcCk7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzIGRybV9nZW1fdnJhbV9vYmplY3RfZnVuY3MgPSB7CisJLmZyZWUJPSBkcm1fZ2VtX3ZyYW1fb2JqZWN0X2ZyZWUsCisJLnBpbgk9IGRybV9nZW1fdnJhbV9vYmplY3RfcGluLAorCS51bnBpbgk9IGRybV9nZW1fdnJhbV9vYmplY3RfdW5waW4sCisJLnZtYXAJPSBkcm1fZ2VtX3ZyYW1fb2JqZWN0X3ZtYXAsCisJLnZ1bm1hcAk9IGRybV9nZW1fdnJhbV9vYmplY3RfdnVubWFwCit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9oZGNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2hkY3AuYwppbmRleCBjZDgzN2JkLi45MTkxNjMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2hkY3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2hkY3AuYwpAQCAtMjcxLDYgKzI3MSwxMyBAQCBzdGF0aWMgdm9pZCBkcm1faGRjcF9yZXF1ZXN0X3NybShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldikKICAqCiAgKiBTUk0gc2hvdWxkIGJlIHByZXNlbnRlZCBpbiB0aGUgbmFtZSBvZiAiZGlzcGxheV9oZGNwX3NybS5iaW4iLgogICoKKyAqIEZvcm1hdCBvZiB0aGUgU1JNIHRhYmxlLCB0aGF0IHVzZXJzcGFjZSBuZWVkcyB0byB3cml0ZSBpbnRvIHRoZSBiaW5hcnkgZmlsZSwKKyAqIGlzIGRlZmluZWQgYXQ6CisgKiAxLiBSZW5ld2FiaWxpdHkgY2hhcHRlciBvbiA1NXRoIHBhZ2Ugb2YgSERDUCAxLjQgc3BlY2lmaWNhdGlvbgorICogaHR0cHM6Ly93d3cuZGlnaXRhbC1jcC5jb20vc2l0ZXMvZGVmYXVsdC9maWxlcy9zcGVjaWZpY2F0aW9ucy9IRENQJTIwU3BlY2lmaWNhdGlvbiUyMFJldjFfNF9TZWN1cmUucGRmCisgKiAyLiBSZW5ld2FiaWxpdHkgY2hhcHRlciBvbiA2M3JkIHBhZ2Ugb2YgSERDUCAyLjIgc3BlY2lmaWNhdGlvbgorICogaHR0cHM6Ly93d3cuZGlnaXRhbC1jcC5jb20vc2l0ZXMvZGVmYXVsdC9maWxlcy9zcGVjaWZpY2F0aW9ucy9IRENQJTIwb24lMjBIRE1JJTIwU3BlY2lmaWNhdGlvbiUyMFJldjJfMl9GaW5hbDEucGRmCisgKgogICogUmV0dXJuczoKICAqIFRSVUUgb24gYW55IG9mIHRoZSBLU1YgaXMgcmV2b2tlZCwgZWxzZSBGQUxTRS4KICAqLwpAQCAtMzQ0LDIzICszNTEsNDUgQEAgc3RhdGljIHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgZHJtX2NwX2VudW1fbGlzdFtdID0gewogfTsKIERSTV9FTlVNX05BTUVfRk4oZHJtX2dldF9jb250ZW50X3Byb3RlY3Rpb25fbmFtZSwgZHJtX2NwX2VudW1fbGlzdCkKIAorc3RhdGljIHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgZHJtX2hkY3BfY29udGVudF90eXBlX2VudW1fbGlzdFtdID0geworCXsgRFJNX01PREVfSERDUF9DT05URU5UX1RZUEUwLCAiSERDUCBUeXBlMCIgfSwKKwl7IERSTV9NT0RFX0hEQ1BfQ09OVEVOVF9UWVBFMSwgIkhEQ1AgVHlwZTEiIH0sCit9OworRFJNX0VOVU1fTkFNRV9GTihkcm1fZ2V0X2hkY3BfY29udGVudF90eXBlX25hbWUsCisJCSBkcm1faGRjcF9jb250ZW50X3R5cGVfZW51bV9saXN0KQorCiAvKioKICAqIGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSAtIGF0dGFjaCBjb250ZW50IHByb3RlY3Rpb24KICAqIHByb3BlcnR5CiAgKgogICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIGF0dGFjaCBDUCBwcm9wZXJ0eSBvbi4KKyAqIEBoZGNwX2NvbnRlbnRfdHlwZTogaXMgSERDUCBDb250ZW50IFR5cGUgcHJvcGVydHkgbmVlZGVkIGZvciBjb25uZWN0b3IKICAqCiAgKiBUaGlzIGlzIHVzZWQgdG8gYWRkIHN1cHBvcnQgZm9yIGNvbnRlbnQgcHJvdGVjdGlvbiBvbiBzZWxlY3QgY29ubmVjdG9ycy4KICAqIENvbnRlbnQgUHJvdGVjdGlvbiBpcyBpbnRlbnRpb25hbGx5IHZhZ3VlIHRvIGFsbG93IGZvciBkaWZmZXJlbnQgdW5kZXJseWluZwogICogdGVjaG5vbG9naWVzLCBob3dldmVyIGl0IGlzIG1vc3QgaW1wbGVtZW50ZWQgYnkgSERDUC4KICAqCisgKiBXaGVuIGhkY3BfY29udGVudF90eXBlIGlzIHRydWUgZW51bSBwcm9wZXJ0eSBjYWxsZWQgSERDUCBDb250ZW50IFR5cGUgaXMKKyAqIGNyZWF0ZWQgKGlmIGl0IGlzIG5vdCBhbHJlYWR5KSBhbmQgYXR0YWNoZWQgdG8gdGhlIGNvbm5lY3Rvci4KKyAqCisgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgZm9yIHNlbmRpbmcgdGhlIHByb3RlY3RlZCBjb250ZW50J3Mgc3RyZWFtIHR5cGUKKyAqIGZyb20gdXNlcnNwYWNlIHRvIGtlcm5lbCBvbiBzZWxlY3RlZCBjb25uZWN0b3JzLiBQcm90ZWN0ZWQgY29udGVudCBwcm92aWRlcgorICogd2lsbCBkZWNpZGUgdGhlaXIgdHlwZSBvZiB0aGVpciBjb250ZW50IGFuZCBkZWNsYXJlIHRoZSBzYW1lIHRvIGtlcm5lbC4KKyAqCisgKiBDb250ZW50IHR5cGUgd2lsbCBiZSB1c2VkIGR1cmluZyB0aGUgSERDUCAyLjIgYXV0aGVudGljYXRpb24uCisgKiBDb250ZW50IHR5cGUgd2lsbCBiZSBzZXQgdG8gJmRybV9jb25uZWN0b3Jfc3RhdGUuaGRjcF9jb250ZW50X3R5cGUuCisgKgogICogVGhlIGNvbnRlbnQgcHJvdGVjdGlvbiB3aWxsIGJlIHNldCB0byAmZHJtX2Nvbm5lY3Rvcl9zdGF0ZS5jb250ZW50X3Byb3RlY3Rpb24KICAqCisgKiBXaGVuIGtlcm5lbCB0cmlnZ2VyZWQgY29udGVudCBwcm90ZWN0aW9uIHN0YXRlIGNoYW5nZSBsaWtlIERFU0lSRUQtPkVOQUJMRUQKKyAqIGFuZCBFTkFCTEVELT5ERVNJUkVELCB3aWxsIHVzZSBkcm1faGRjcF91cGRhdGVfY29udGVudF9wcm90ZWN0aW9uKCkgdG8gdXBkYXRlCisgKiB0aGUgY29udGVudCBwcm90ZWN0aW9uIHN0YXRlIG9mIGEgY29ubmVjdG9yLgorICoKICAqIFJldHVybnM6CiAgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCiAgKi8KIGludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3Byb3RlY3Rpb25fcHJvcGVydHkoCi0JCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCisJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgaGRjcF9jb250ZW50X3R5cGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2OwogCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3AgPQpAQCAtMzc3LDYgKzQwNiw1MiBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KAogCQkJCSAgIERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQpOwogCWRldi0+bW9kZV9jb25maWcuY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5ID0gcHJvcDsKIAorCWlmICghaGRjcF9jb250ZW50X3R5cGUpCisJCXJldHVybiAwOworCisJcHJvcCA9IGRldi0+bW9kZV9jb25maWcuaGRjcF9jb250ZW50X3R5cGVfcHJvcGVydHk7CisJaWYgKCFwcm9wKQorCQlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwgMCwgIkhEQ1AgQ29udGVudCBUeXBlIiwKKwkJCQkJZHJtX2hkY3BfY29udGVudF90eXBlX2VudW1fbGlzdCwKKwkJCQkJQVJSQVlfU0laRSgKKwkJCQkJZHJtX2hkY3BfY29udGVudF90eXBlX2VudW1fbGlzdCkpOworCWlmICghcHJvcCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLCBwcm9wLAorCQkJCSAgIERSTV9NT0RFX0hEQ1BfQ09OVEVOVF9UWVBFMCk7CisJZGV2LT5tb2RlX2NvbmZpZy5oZGNwX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eSA9IHByb3A7CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KTsKKworLyoqCisgKiBkcm1faGRjcF91cGRhdGVfY29udGVudF9wcm90ZWN0aW9uIC0gVXBkYXRlcyB0aGUgY29udGVudCBwcm90ZWN0aW9uIHN0YXRlCisgKiBvZiBhIGNvbm5lY3RvcgorICoKKyAqIEBjb25uZWN0b3I6IGRybV9jb25uZWN0b3Igb24gd2hpY2ggY29udGVudCBwcm90ZWN0aW9uIHN0YXRlIG5lZWRzIGFuIHVwZGF0ZQorICogQHZhbDogTmV3IHN0YXRlIG9mIHRoZSBjb250ZW50IHByb3RlY3Rpb24gcHJvcGVydHkKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGJ5IGRpc3BsYXkgZHJpdmVycywgdG8gdXBkYXRlIHRoZSBrZXJuZWwgdHJpZ2dlcmVkCisgKiBjb250ZW50IHByb3RlY3Rpb24gc3RhdGUgY2hhbmdlcyBvZiBhIGRybV9jb25uZWN0b3Igc3VjaCBhcyBERVNJUkVELT5FTkFCTEVECisgKiBhbmQgRU5BQkxFRC0+REVTSVJFRC4gTm8gdWV2ZW50IGZvciBERVNJUkVELT5VTkRFU0lSRUQgb3IgRU5BQkxFRC0+VU5ERVNJUkVELAorICogYXMgdXNlcnNwYWNlIGlzIHRyaWdnZXJpbmcgc3VjaCBzdGF0ZSBjaGFuZ2UgYW5kIGtlcm5lbCBwZXJmb3JtcyBpdCB3aXRob3V0CisgKiBmYWlsLlRoaXMgZnVuY3Rpb24gdXBkYXRlIHRoZSBuZXcgc3RhdGUgb2YgdGhlIHByb3BlcnR5IGludG8gdGhlIGNvbm5lY3RvcidzCisgKiBzdGF0ZSBhbmQgZ2VuZXJhdGUgYW4gdWV2ZW50IHRvIG5vdGlmeSB0aGUgdXNlcnNwYWNlLgorICovCit2b2lkIGRybV9oZGNwX3VwZGF0ZV9jb250ZW50X3Byb3RlY3Rpb24oc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJdTY0IHZhbCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlID0gY29ubmVjdG9yLT5zdGF0ZTsKKworCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KSk7CisJaWYgKHN0YXRlLT5jb250ZW50X3Byb3RlY3Rpb24gPT0gdmFsKQorCQlyZXR1cm47CisKKwlzdGF0ZS0+Y29udGVudF9wcm90ZWN0aW9uID0gdmFsOworCWRybV9zeXNmc19jb25uZWN0b3Jfc3RhdHVzX2V2ZW50KGNvbm5lY3RvciwKKwkJCQkgZGV2LT5tb2RlX2NvbmZpZy5jb250ZW50X3Byb3RlY3Rpb25fcHJvcGVydHkpOworfQorRVhQT1JUX1NZTUJPTChkcm1faGRjcF91cGRhdGVfY29udGVudF9wcm90ZWN0aW9uKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jMzIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jMzIuYwppbmRleCBhMTZiNmRjLi4yMmM3ZmQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2MzMi5jCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RhdGljIGludCBjb21wYXRfZHJtX3ZlcnNpb24oc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAJCS5kZXNjID0gY29tcGF0X3B0cih2MzIuZGVzYyksCiAJfTsKIAllcnIgPSBkcm1faW9jdGxfa2VybmVsKGZpbGUsIGRybV92ZXJzaW9uLCAmdiwKLQkJCSAgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyk7CisJCQkgICAgICAgRFJNX1JFTkRFUl9BTExPVyk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIApAQCAtMTQyLDcgKzE0Miw3IEBAIHN0YXRpYyBpbnQgY29tcGF0X2RybV9nZXR1bmlxdWUoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAJCS51bmlxdWUgPSBjb21wYXRfcHRyKHVxMzIudW5pcXVlKSwKIAl9OwogCi0JZXJyID0gZHJtX2lvY3RsX2tlcm5lbChmaWxlLCBkcm1fZ2V0dW5pcXVlLCAmdXEsIERSTV9VTkxPQ0tFRCk7CisJZXJyID0gZHJtX2lvY3RsX2tlcm5lbChmaWxlLCBkcm1fZ2V0dW5pcXVlLCAmdXEsIDApOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKQEAgLTE4MSw3ICsxODEsNyBAQCBzdGF0aWMgaW50IGNvbXBhdF9kcm1fZ2V0bWFwKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAogCQlyZXR1cm4gLUVGQVVMVDsKIAogCW1hcC5vZmZzZXQgPSBtMzIub2Zmc2V0OwotCWVyciA9IGRybV9pb2N0bF9rZXJuZWwoZmlsZSwgZHJtX2xlZ2FjeV9nZXRtYXBfaW9jdGwsICZtYXAsIERSTV9VTkxPQ0tFRCk7CisJZXJyID0gZHJtX2lvY3RsX2tlcm5lbChmaWxlLCBkcm1fbGVnYWN5X2dldG1hcF9pb2N0bCwgJm1hcCwgMCk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIApAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0YXRpYyBpbnQgY29tcGF0X2RybV9nZXRjbGllbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAKIAljbGllbnQuaWR4ID0gYzMyLmlkeDsKIAotCWVyciA9IGRybV9pb2N0bF9rZXJuZWwoZmlsZSwgZHJtX2dldGNsaWVudCwgJmNsaWVudCwgRFJNX1VOTE9DS0VEKTsKKwllcnIgPSBkcm1faW9jdGxfa2VybmVsKGZpbGUsIGRybV9nZXRjbGllbnQsICZjbGllbnQsIDApOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKQEAgLTI5Nyw3ICsyOTcsNyBAQCBzdGF0aWMgaW50IGNvbXBhdF9kcm1fZ2V0c3RhdHMoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAJZHJtX3N0YXRzMzJfdCBfX3VzZXIgKmFyZ3AgPSAodm9pZCBfX3VzZXIgKilhcmc7CiAJaW50IGVycjsKIAotCWVyciA9IGRybV9pb2N0bF9rZXJuZWwoZmlsZSwgZHJtX25vb3AsIE5VTEwsIERSTV9VTkxPQ0tFRCk7CisJZXJyID0gZHJtX2lvY3RsX2tlcm5lbChmaWxlLCBkcm1fbm9vcCwgTlVMTCwgMCk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIApAQCAtODk1LDggKzg5NSw3IEBAIHN0YXRpYyBpbnQgY29tcGF0X2RybV9tb2RlX2FkZGZiMihzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwKIAkJCSAgIHNpemVvZihyZXE2NC5tb2RpZmllcikpKQogCQlyZXR1cm4gLUVGQVVMVDsKIAotCWVyciA9IGRybV9pb2N0bF9rZXJuZWwoZmlsZSwgZHJtX21vZGVfYWRkZmIyLCAmcmVxNjQsCi0JCQkgICAgICAgRFJNX1VOTE9DS0VEKTsKKwllcnIgPSBkcm1faW9jdGxfa2VybmVsKGZpbGUsIGRybV9tb2RlX2FkZGZiMiwgJnJlcTY0LCAwKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKaW5kZXggYmQ4MTA0NS4uZmNkNzI4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpAQCAtMzM2LDcgKzMzNiwxMiBAQCBkcm1fc2V0Y2xpZW50Y2FwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQogCWNhc2UgRFJNX0NMSUVOVF9DQVBfQVRPTUlDOgogCQlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfQVRPTUlDKSkKIAkJCXJldHVybiAtRU9QTk9UU1VQUDsKLQkJaWYgKHJlcS0+dmFsdWUgPiAxKQorCQkvKiBUaGUgbW9kZXNldHRpbmcgRERYIGhhcyBhIHRvdGFsbHkgYnJva2VuIGlkZWEgb2YgYXRvbWljLiAqLworCQlpZiAoY3VycmVudC0+Y29tbVswXSA9PSAnWCcgJiYgcmVxLT52YWx1ZSA9PSAxKSB7CisJCQlwcl9pbmZvKCJicm9rZW4gYXRvbWljIG1vZGVzZXQgdXNlcnNwYWNlIGRldGVjdGVkLCBkaXNhYmxpbmcgYXRvbWljXG4iKTsKKwkJCXJldHVybiAtRU9QTk9UU1VQUDsKKwkJfQorCQlpZiAocmVxLT52YWx1ZSA+IDIpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJZmlsZV9wcml2LT5hdG9taWMgPSByZXEtPnZhbHVlOwogCQlmaWxlX3ByaXYtPnVuaXZlcnNhbF9wbGFuZXMgPSByZXEtPnZhbHVlOwpAQCAtNTcwLDI0ICs1NzUsMjMgQEAgRVhQT1JUX1NZTUJPTChkcm1faW9jdGxfcGVybWl0KTsKIAogLyogSW9jdGwgdGFibGUgKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0gewotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1ZFUlNJT04sIGRybV92ZXJzaW9uLAotCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX1VOSVFVRSwgZHJtX2dldHVuaXF1ZSwgRFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfTUFHSUMsIGRybV9nZXRtYWdpYywgRFJNX1VOTE9DS0VEKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9WRVJTSU9OLCBkcm1fdmVyc2lvbiwgRFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX1VOSVFVRSwgZHJtX2dldHVuaXF1ZSwgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX01BR0lDLCBkcm1fZ2V0bWFnaWMsIDApLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0lSUV9CVVNJRCwgZHJtX2lycV9ieV9idXNpZCwgRFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKIAotCURSTV9MRUdBQ1lfSU9DVExfREVGKERSTV9JT0NUTF9HRVRfTUFQLCBkcm1fbGVnYWN5X2dldG1hcF9pb2N0bCwgRFJNX1VOTE9DS0VEKSwKKwlEUk1fTEVHQUNZX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX01BUCwgZHJtX2xlZ2FjeV9nZXRtYXBfaW9jdGwsIDApLAogCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX0NMSUVOVCwgZHJtX2dldGNsaWVudCwgRFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfU1RBVFMsIGRybV9nZXRzdGF0cywgRFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfQ0FQLCBkcm1fZ2V0Y2FwLCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX0NMSUVOVF9DQVAsIGRybV9zZXRjbGllbnRjYXAsIERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX1ZFUlNJT04sIGRybV9zZXR2ZXJzaW9uLCBEUk1fVU5MT0NLRUQgfCBEUk1fTUFTVEVSKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfQ0xJRU5ULCBkcm1fZ2V0Y2xpZW50LCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfU1RBVFMsIGRybV9nZXRzdGF0cywgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX0NBUCwgZHJtX2dldGNhcCwgRFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX0NMSUVOVF9DQVAsIGRybV9zZXRjbGllbnRjYXAsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NFVF9WRVJTSU9OLCBkcm1fc2V0dmVyc2lvbiwgRFJNX01BU1RFUiksCiAKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TRVRfVU5JUVVFLCBkcm1faW52YWxpZF9vcCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9CTE9DSywgZHJtX25vb3AsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfVU5CTE9DSywgZHJtX25vb3AsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQVVUSF9NQUdJQywgZHJtX2F1dGhtYWdpYywgRFJNX1VOTE9DS0VEfERSTV9NQVNURVIpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FVVEhfTUFHSUMsIGRybV9hdXRobWFnaWMsIERSTV9NQVNURVIpLAogCiAJRFJNX0xFR0FDWV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FERF9NQVAsIGRybV9sZWdhY3lfYWRkbWFwX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAogCURSTV9MRUdBQ1lfSU9DVExfREVGKERSTV9JT0NUTF9STV9NQVAsIGRybV9sZWdhY3lfcm1tYXBfaW9jdGwsIERSTV9BVVRIKSwKQEAgLTU5NSw4ICs1OTksOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKIAlEUk1fTEVHQUNZX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX1NBUkVBX0NUWCwgZHJtX2xlZ2FjeV9zZXRzYXJlYWN0eCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKIAlEUk1fTEVHQUNZX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX1NBUkVBX0NUWCwgZHJtX2xlZ2FjeV9nZXRzYXJlYWN0eCwgRFJNX0FVVEgpLAogCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX01BU1RFUiwgZHJtX3NldG1hc3Rlcl9pb2N0bCwgRFJNX1VOTE9DS0VEfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0RST1BfTUFTVEVSLCBkcm1fZHJvcG1hc3Rlcl9pb2N0bCwgRFJNX1VOTE9DS0VEfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NFVF9NQVNURVIsIGRybV9zZXRtYXN0ZXJfaW9jdGwsIERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0RST1BfTUFTVEVSLCBkcm1fZHJvcG1hc3Rlcl9pb2N0bCwgRFJNX1JPT1RfT05MWSksCiAKIAlEUk1fTEVHQUNZX0lPQ1RMX0RFRihEUk1fSU9DVExfQUREX0NUWCwgZHJtX2xlZ2FjeV9hZGRjdHgsIERSTV9BVVRIfERSTV9ST09UX09OTFkpLAogCURSTV9MRUdBQ1lfSU9DVExfREVGKERSTV9JT0NUTF9STV9DVFgsIGRybV9sZWdhY3lfcm1jdHgsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCkBAIC02NDIsNzQgKzY0Niw3NCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKIAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1VQREFURV9EUkFXLCBkcm1fbm9vcCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKIAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFTV9DTE9TRSwgZHJtX2dlbV9jbG9zZV9pb2N0bCwgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFTV9GTElOSywgZHJtX2dlbV9mbGlua19pb2N0bCwgRFJNX0FVVEh8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRU1fT1BFTiwgZHJtX2dlbV9vcGVuX2lvY3RsLCBEUk1fQVVUSHxEUk1fVU5MT0NLRUQpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFTV9DTE9TRSwgZHJtX2dlbV9jbG9zZV9pb2N0bCwgRFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VNX0ZMSU5LLCBkcm1fZ2VtX2ZsaW5rX2lvY3RsLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VNX09QRU4sIGRybV9nZW1fb3Blbl9pb2N0bCwgRFJNX0FVVEgpLAogCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRSRVNPVVJDRVMsIGRybV9tb2RlX2dldHJlc291cmNlcywgRFJNX1VOTE9DS0VEKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVFJFU09VUkNFUywgZHJtX21vZGVfZ2V0cmVzb3VyY2VzLCAwKSwKIAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1BSSU1FX0hBTkRMRV9UT19GRCwgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bCwgRFJNX0FVVEh8RFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1BSSU1FX0ZEX1RPX0hBTkRMRSwgZHJtX3ByaW1lX2ZkX3RvX2hhbmRsZV9pb2N0bCwgRFJNX0FVVEh8RFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1BSSU1FX0hBTkRMRV9UT19GRCwgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfUFJJTUVfRkRfVE9fSEFORExFLCBkcm1fcHJpbWVfZmRfdG9faGFuZGxlX2lvY3RsLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKIAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUExBTkVSRVNPVVJDRVMsIGRybV9tb2RlX2dldHBsYW5lX3JlcywgRFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVENSVEMsIGRybV9tb2RlX2dldGNydGMsIERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9TRVRDUlRDLCBkcm1fbW9kZV9zZXRjcnRjLCBEUk1fTUFTVEVSfERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRQTEFORSwgZHJtX21vZGVfZ2V0cGxhbmUsIERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9TRVRQTEFORSwgZHJtX21vZGVfc2V0cGxhbmUsIERSTV9NQVNURVJ8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0NVUlNPUiwgZHJtX21vZGVfY3Vyc29yX2lvY3RsLCBEUk1fTUFTVEVSfERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRHQU1NQSwgZHJtX21vZGVfZ2FtbWFfZ2V0X2lvY3RsLCBEUk1fVU5MT0NLRUQpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfU0VUR0FNTUEsIGRybV9tb2RlX2dhbW1hX3NldF9pb2N0bCwgRFJNX01BU1RFUnxEUk1fVU5MT0NLRUQpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VURU5DT0RFUiwgZHJtX21vZGVfZ2V0ZW5jb2RlciwgRFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVENPTk5FQ1RPUiwgZHJtX21vZGVfZ2V0Y29ubmVjdG9yLCBEUk1fVU5MT0NLRUQpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQVRUQUNITU9ERSwgZHJtX25vb3AsIERSTV9NQVNURVJ8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0RFVEFDSE1PREUsIGRybV9ub29wLCBEUk1fTUFTVEVSfERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRQUk9QRVJUWSwgZHJtX21vZGVfZ2V0cHJvcGVydHlfaW9jdGwsIERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9TRVRQUk9QRVJUWSwgZHJtX2Nvbm5lY3Rvcl9wcm9wZXJ0eV9zZXRfaW9jdGwsIERSTV9NQVNURVJ8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVFBST1BCTE9CLCBkcm1fbW9kZV9nZXRibG9iX2lvY3RsLCBEUk1fVU5MT0NLRUQpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VURkIsIGRybV9tb2RlX2dldGZiLCBEUk1fVU5MT0NLRUQpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQURERkIsIGRybV9tb2RlX2FkZGZiX2lvY3RsLCBEUk1fVU5MT0NLRUQpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQURERkIyLCBkcm1fbW9kZV9hZGRmYjJfaW9jdGwsIERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9STUZCLCBkcm1fbW9kZV9ybWZiX2lvY3RsLCBEUk1fVU5MT0NLRUQpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfUEFHRV9GTElQLCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwsIERSTV9NQVNURVJ8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0RJUlRZRkIsIGRybV9tb2RlX2RpcnR5ZmJfaW9jdGwsIERSTV9NQVNURVJ8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0NSRUFURV9EVU1CLCBkcm1fbW9kZV9jcmVhdGVfZHVtYl9pb2N0bCwgRFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX01BUF9EVU1CLCBkcm1fbW9kZV9tbWFwX2R1bWJfaW9jdGwsIERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9ERVNUUk9ZX0RVTUIsIGRybV9tb2RlX2Rlc3Ryb3lfZHVtYl9pb2N0bCwgRFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX09CSl9HRVRQUk9QRVJUSUVTLCBkcm1fbW9kZV9vYmpfZ2V0X3Byb3BlcnRpZXNfaW9jdGwsIERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9PQkpfU0VUUFJPUEVSVFksIGRybV9tb2RlX29ial9zZXRfcHJvcGVydHlfaW9jdGwsIERSTV9NQVNURVJ8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0NVUlNPUjIsIGRybV9tb2RlX2N1cnNvcjJfaW9jdGwsIERSTV9NQVNURVJ8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0FUT01JQywgZHJtX21vZGVfYXRvbWljX2lvY3RsLCBEUk1fTUFTVEVSfERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9DUkVBVEVQUk9QQkxPQiwgZHJtX21vZGVfY3JlYXRlYmxvYl9pb2N0bCwgRFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0RFU1RST1lQUk9QQkxPQiwgZHJtX21vZGVfZGVzdHJveWJsb2JfaW9jdGwsIERSTV9VTkxPQ0tFRCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRQTEFORVJFU09VUkNFUywgZHJtX21vZGVfZ2V0cGxhbmVfcmVzLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVENSVEMsIGRybV9tb2RlX2dldGNydGMsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfU0VUQ1JUQywgZHJtX21vZGVfc2V0Y3J0YywgRFJNX01BU1RFUiksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRQTEFORSwgZHJtX21vZGVfZ2V0cGxhbmUsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfU0VUUExBTkUsIGRybV9tb2RlX3NldHBsYW5lLCBEUk1fTUFTVEVSKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0NVUlNPUiwgZHJtX21vZGVfY3Vyc29yX2lvY3RsLCBEUk1fTUFTVEVSKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVEdBTU1BLCBkcm1fbW9kZV9nYW1tYV9nZXRfaW9jdGwsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfU0VUR0FNTUEsIGRybV9tb2RlX2dhbW1hX3NldF9pb2N0bCwgRFJNX01BU1RFUiksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRFTkNPREVSLCBkcm1fbW9kZV9nZXRlbmNvZGVyLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVENPTk5FQ1RPUiwgZHJtX21vZGVfZ2V0Y29ubmVjdG9yLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0FUVEFDSE1PREUsIGRybV9ub29wLCBEUk1fTUFTVEVSKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0RFVEFDSE1PREUsIGRybV9ub29wLCBEUk1fTUFTVEVSKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVFBST1BFUlRZLCBkcm1fbW9kZV9nZXRwcm9wZXJ0eV9pb2N0bCwgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9TRVRQUk9QRVJUWSwgZHJtX2Nvbm5lY3Rvcl9wcm9wZXJ0eV9zZXRfaW9jdGwsIERSTV9NQVNURVIpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUFJPUEJMT0IsIGRybV9tb2RlX2dldGJsb2JfaW9jdGwsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VURkIsIGRybV9tb2RlX2dldGZiLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0FEREZCLCBkcm1fbW9kZV9hZGRmYl9pb2N0bCwgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9BRERGQjIsIGRybV9tb2RlX2FkZGZiMl9pb2N0bCwgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9STUZCLCBkcm1fbW9kZV9ybWZiX2lvY3RsLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX1BBR0VfRkxJUCwgZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsLCBEUk1fTUFTVEVSKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0RJUlRZRkIsIGRybV9tb2RlX2RpcnR5ZmJfaW9jdGwsIERSTV9NQVNURVIpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIsIGRybV9tb2RlX2NyZWF0ZV9kdW1iX2lvY3RsLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX01BUF9EVU1CLCBkcm1fbW9kZV9tbWFwX2R1bWJfaW9jdGwsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfREVTVFJPWV9EVU1CLCBkcm1fbW9kZV9kZXN0cm95X2R1bWJfaW9jdGwsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfT0JKX0dFVFBST1BFUlRJRVMsIGRybV9tb2RlX29ial9nZXRfcHJvcGVydGllc19pb2N0bCwgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9PQkpfU0VUUFJPUEVSVFksIGRybV9tb2RlX29ial9zZXRfcHJvcGVydHlfaW9jdGwsIERSTV9NQVNURVIpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQ1VSU09SMiwgZHJtX21vZGVfY3Vyc29yMl9pb2N0bCwgRFJNX01BU1RFUiksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9BVE9NSUMsIGRybV9tb2RlX2F0b21pY19pb2N0bCwgRFJNX01BU1RFUiksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9DUkVBVEVQUk9QQkxPQiwgZHJtX21vZGVfY3JlYXRlYmxvYl9pb2N0bCwgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9ERVNUUk9ZUFJPUEJMT0IsIGRybV9tb2RlX2Rlc3Ryb3libG9iX2lvY3RsLCAwKSwKIAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfQ1JFQVRFLCBkcm1fc3luY29ial9jcmVhdGVfaW9jdGwsCi0JCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKKwkJICAgICAgRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9ERVNUUk9ZLCBkcm1fc3luY29ial9kZXN0cm95X2lvY3RsLAotCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJCSAgICAgIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfSEFORExFX1RPX0ZELCBkcm1fc3luY29ial9oYW5kbGVfdG9fZmRfaW9jdGwsCi0JCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKKwkJICAgICAgRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9GRF9UT19IQU5ETEUsIGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRsZV9pb2N0bCwKLQkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAorCQkgICAgICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX1RSQU5TRkVSLCBkcm1fc3luY29ial90cmFuc2Zlcl9pb2N0bCwKLQkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAorCQkgICAgICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX1dBSVQsIGRybV9zeW5jb2JqX3dhaXRfaW9jdGwsCi0JCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKKwkJICAgICAgRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9USU1FTElORV9XQUlULCBkcm1fc3luY29ial90aW1lbGluZV93YWl0X2lvY3RsLAotCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJCSAgICAgIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfUkVTRVQsIGRybV9zeW5jb2JqX3Jlc2V0X2lvY3RsLAotCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJCSAgICAgIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfU0lHTkFMLCBkcm1fc3luY29ial9zaWduYWxfaW9jdGwsCi0JCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKKwkJICAgICAgRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9USU1FTElORV9TSUdOQUwsIGRybV9zeW5jb2JqX3RpbWVsaW5lX3NpZ25hbF9pb2N0bCwKLQkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAorCQkgICAgICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX1FVRVJZLCBkcm1fc3luY29ial9xdWVyeV9pb2N0bCwKLQkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0NSVENfR0VUX1NFUVVFTkNFLCBkcm1fY3J0Y19nZXRfc2VxdWVuY2VfaW9jdGwsIERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQ1JUQ19RVUVVRV9TRVFVRU5DRSwgZHJtX2NydGNfcXVldWVfc2VxdWVuY2VfaW9jdGwsIERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9DUkVBVEVfTEVBU0UsIGRybV9tb2RlX2NyZWF0ZV9sZWFzZV9pb2N0bCwgRFJNX01BU1RFUnxEUk1fVU5MT0NLRUQpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfTElTVF9MRVNTRUVTLCBkcm1fbW9kZV9saXN0X2xlc3NlZXNfaW9jdGwsIERSTV9NQVNURVJ8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVF9MRUFTRSwgZHJtX21vZGVfZ2V0X2xlYXNlX2lvY3RsLCBEUk1fTUFTVEVSfERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9SRVZPS0VfTEVBU0UsIGRybV9tb2RlX3Jldm9rZV9sZWFzZV9pb2N0bCwgRFJNX01BU1RFUnxEUk1fVU5MT0NLRUQpLAorCQkgICAgICBEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9DUlRDX0dFVF9TRVFVRU5DRSwgZHJtX2NydGNfZ2V0X3NlcXVlbmNlX2lvY3RsLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9DUlRDX1FVRVVFX1NFUVVFTkNFLCBkcm1fY3J0Y19xdWV1ZV9zZXF1ZW5jZV9pb2N0bCwgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9DUkVBVEVfTEVBU0UsIGRybV9tb2RlX2NyZWF0ZV9sZWFzZV9pb2N0bCwgRFJNX01BU1RFUiksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9MSVNUX0xFU1NFRVMsIGRybV9tb2RlX2xpc3RfbGVzc2Vlc19pb2N0bCwgRFJNX01BU1RFUiksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRfTEVBU0UsIGRybV9tb2RlX2dldF9sZWFzZV9pb2N0bCwgRFJNX01BU1RFUiksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9SRVZPS0VfTEVBU0UsIGRybV9tb2RlX3Jldm9rZV9sZWFzZV9pb2N0bCwgRFJNX01BU1RFUiksCiB9OwogCiAjZGVmaW5lIERSTV9DT1JFX0lPQ1RMX0NPVU5UCUFSUkFZX1NJWkUoIGRybV9pb2N0bHMgKQpAQCAtNzc3LDcgKzc4MSw3IEBAIGxvbmcgZHJtX2lvY3RsX2tlcm5lbChzdHJ1Y3QgZmlsZSAqZmlsZSwgZHJtX2lvY3RsX3QgKmZ1bmMsIHZvaWQgKmtkYXRhLAogCQlyZXR1cm4gcmV0Y29kZTsKIAogCS8qIEVuZm9yY2Ugc2FuZSBsb2NraW5nIGZvciBtb2Rlcm4gZHJpdmVyIGlvY3Rscy4gKi8KLQlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTEVHQUNZKSB8fAorCWlmIChsaWtlbHkoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTEVHQUNZKSkgfHwKIAkgICAgKGZsYWdzICYgRFJNX1VOTE9DS0VEKSkKIAkJcmV0Y29kZSA9IGZ1bmMoZGV2LCBrZGF0YSwgZmlsZV9wcml2KTsKIAllbHNlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fa21zX2hlbHBlcl9jb21tb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fa21zX2hlbHBlcl9jb21tb24uYwppbmRleCBkOWE1YWM4Li4yMjFhODUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ttc19oZWxwZXJfY29tbW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9rbXNfaGVscGVyX2NvbW1vbi5jCkBAIC00MCw3ICs0MCw3IEBAIE1PRFVMRV9MSUNFTlNFKCJHUEwgYW5kIGFkZGl0aW9uYWwgcmlnaHRzIik7CiAvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBkcm1fa21zX2hlbHBlci5lZGlkX2Zpcm13YXJlICovCiBzdGF0aWMgaW50IGVkaWRfZmlybXdhcmVfc2V0KGNvbnN0IGNoYXIgKnZhbCwgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSAqa3ApCiB7Ci0JRFJNX05PVEUoImRybV9rbXNfZmlybXdhcmUuZWRpZF9maXJtd2FyZSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGRybS5lZGlkX2Zpcm13YXJlIGluc3RlYWQuXG4iKTsKKwlEUk1fTk9URSgiZHJtX2ttc19oZWxwZXIuZWRpZF9maXJtd2FyZSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGRybS5lZGlkX2Zpcm13YXJlIGluc3RlYWQuXG4iKTsKIAogCXJldHVybiBfX2RybV9zZXRfZWRpZF9maXJtd2FyZV9wYXRoKHZhbCk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2xlZ2FjeV9taXNjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2xlZ2FjeV9taXNjLmMKaW5kZXggNGQzYTExYy4uOGY1NGU2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9sZWdhY3lfbWlzYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbGVnYWN5X21pc2MuYwpAQCAtMSw0ICsxLDQgQEAKLS8qKgorLyoKICAqIFxmaWxlIGRybV9sZWdhY3lfbWlzYy5jCiAgKiBNaXNjIGxlZ2FjeSBzdXBwb3J0IGZ1bmN0aW9ucy4KICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2xvY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbG9jay5jCmluZGV4IDY4YjE4YjAuLjJlOGNlOTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbG9jay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbG9jay5jCkBAIC0xLDQgKzEsNCBAQAotLyoqCisvKgogICogXGZpbGUgZHJtX2xvY2suYwogICogSU9DVExzIGZvciBsb2NraW5nCiAgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tZW1vcnkuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWVtb3J5LmMKaW5kZXggYjYzNGUxNjcuLjBiZWM2ZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWVtb3J5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tZW1vcnkuYwpAQCAtMSw0ICsxLDQgQEAKLS8qKgorLyoKICAqIFxmaWxlIGRybV9tZW1vcnkuYwogICogTWVtb3J5IG1hbmFnZW1lbnQgd3JhcHBlcnMgZm9yIERSTQogICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWlwaV9kYmkuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWlwaV9kYmkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTYxZjcxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9taXBpX2RiaS5jCkBAIC0wLDAgKzEsMTMzMCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKy8qCisgKiBNSVBJIERpc3BsYXkgQnVzIEludGVyZmFjZSAoREJJKSBMQ0QgY29udHJvbGxlciBzdXBwb3J0CisgKgorICogQ29weXJpZ2h0IDIwMTYgTm9yYWxmIFRyw7hubmVzCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Zvcm1hdF9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kYmkuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgorCisjZGVmaW5lIE1JUElfREJJX01BWF9TUElfUkVBRF9TUEVFRCAyMDAwMDAwIC8qIDJNSHogKi8KKworI2RlZmluZSBEQ1NfUE9XRVJfTU9ERV9ESVNQTEFZCQkJQklUKDIpCisjZGVmaW5lIERDU19QT1dFUl9NT0RFX0RJU1BMQVlfTk9STUFMX01PREUJQklUKDMpCisjZGVmaW5lIERDU19QT1dFUl9NT0RFX1NMRUVQX01PREUJCUJJVCg0KQorI2RlZmluZSBEQ1NfUE9XRVJfTU9ERV9QQVJUSUFMX01PREUJCUJJVCg1KQorI2RlZmluZSBEQ1NfUE9XRVJfTU9ERV9JRExFX01PREUJCUJJVCg2KQorI2RlZmluZSBEQ1NfUE9XRVJfTU9ERV9SRVNFUlZFRF9NQVNLCQkoQklUKDApIHwgQklUKDEpIHwgQklUKDcpKQorCisvKioKKyAqIERPQzogb3ZlcnZpZXcKKyAqCisgKiBUaGlzIGxpYnJhcnkgcHJvdmlkZXMgaGVscGVycyBmb3IgTUlQSSBEaXNwbGF5IEJ1cyBJbnRlcmZhY2UgKERCSSkKKyAqIGNvbXBhdGlibGUgZGlzcGxheSBjb250cm9sbGVycy4KKyAqCisgKiBNYW55IGNvbnRyb2xsZXJzIGZvciB0aW55IGxjZCBkaXNwbGF5cyBhcmUgTUlQSSBjb21wbGlhbnQgYW5kIGNhbiB1c2UgdGhpcworICogbGlicmFyeS4gSWYgYSBjb250cm9sbGVyIHVzZXMgcmVnaXN0ZXJzIDB4MkEgYW5kIDB4MkIgdG8gc2V0IHRoZSBhcmVhIHRvCisgKiB1cGRhdGUgYW5kIHVzZXMgcmVnaXN0ZXIgMHgyQyB0byB3cml0ZSB0byBmcmFtZSBtZW1vcnksIGl0IGlzIG1vc3QgbGlrZWx5CisgKiBNSVBJIGNvbXBsaWFudC4KKyAqCisgKiBPbmx5IE1JUEkgVHlwZSAxIGRpc3BsYXlzIGFyZSBzdXBwb3J0ZWQgc2luY2UgYSBmdWxsIGZyYW1lIG1lbW9yeSBpcyBuZWVkZWQuCisgKgorICogVGhlcmUgYXJlIDMgTUlQSSBEQkkgaW1wbGVtZW50YXRpb24gdHlwZXM6CisgKgorICogQS4gTW90b3JvbGEgNjgwMCB0eXBlIHBhcmFsbGVsIGJ1cworICoKKyAqIEIuIEludGVsIDgwODAgdHlwZSBwYXJhbGxlbCBidXMKKyAqCisgKiBDLiBTUEkgdHlwZSB3aXRoIDMgb3B0aW9uczoKKyAqCisgKiAgICAxLiA5LWJpdCB3aXRoIHRoZSBEYXRhL0NvbW1hbmQgc2lnbmFsIGFzIHRoZSBuaW50aCBiaXQKKyAqICAgIDIuIFNhbWUgYXMgYWJvdmUgZXhjZXB0IGl0J3Mgc2VudCBhcyAxNiBiaXRzCisgKiAgICAzLiA4LWJpdCB3aXRoIHRoZSBEYXRhL0NvbW1hbmQgc2lnbmFsIGFzIGEgc2VwYXJhdGUgRC9DWCBwaW4KKyAqCisgKiBDdXJyZW50bHkgbWlwaV9kYmkgb25seSBzdXBwb3J0cyBUeXBlIEMgb3B0aW9ucyAxIGFuZCAzIHdpdGgKKyAqIG1pcGlfZGJpX3NwaV9pbml0KCkuCisgKi8KKworI2RlZmluZSBNSVBJX0RCSV9ERUJVR19DT01NQU5EKGNtZCwgZGF0YSwgbGVuKSBcCisoeyBcCisJaWYgKCFsZW4pIFwKKwkJRFJNX0RFQlVHX0RSSVZFUigiY21kPSUwMnhcbiIsIGNtZCk7IFwKKwllbHNlIGlmIChsZW4gPD0gMzIpIFwKKwkJRFJNX0RFQlVHX0RSSVZFUigiY21kPSUwMngsIHBhcj0lKnBoXG4iLCBjbWQsIChpbnQpbGVuLCBkYXRhKTtcCisJZWxzZSBcCisJCURSTV9ERUJVR19EUklWRVIoImNtZD0lMDJ4LCBsZW49JXp1XG4iLCBjbWQsIGxlbik7IFwKK30pCisKK3N0YXRpYyBjb25zdCB1OCBtaXBpX2RiaV9kY3NfcmVhZF9jb21tYW5kc1tdID0geworCU1JUElfRENTX0dFVF9ESVNQTEFZX0lELAorCU1JUElfRENTX0dFVF9SRURfQ0hBTk5FTCwKKwlNSVBJX0RDU19HRVRfR1JFRU5fQ0hBTk5FTCwKKwlNSVBJX0RDU19HRVRfQkxVRV9DSEFOTkVMLAorCU1JUElfRENTX0dFVF9ESVNQTEFZX1NUQVRVUywKKwlNSVBJX0RDU19HRVRfUE9XRVJfTU9ERSwKKwlNSVBJX0RDU19HRVRfQUREUkVTU19NT0RFLAorCU1JUElfRENTX0dFVF9QSVhFTF9GT1JNQVQsCisJTUlQSV9EQ1NfR0VUX0RJU1BMQVlfTU9ERSwKKwlNSVBJX0RDU19HRVRfU0lHTkFMX01PREUsCisJTUlQSV9EQ1NfR0VUX0RJQUdOT1NUSUNfUkVTVUxULAorCU1JUElfRENTX1JFQURfTUVNT1JZX1NUQVJULAorCU1JUElfRENTX1JFQURfTUVNT1JZX0NPTlRJTlVFLAorCU1JUElfRENTX0dFVF9TQ0FOTElORSwKKwlNSVBJX0RDU19HRVRfRElTUExBWV9CUklHSFRORVNTLAorCU1JUElfRENTX0dFVF9DT05UUk9MX0RJU1BMQVksCisJTUlQSV9EQ1NfR0VUX1BPV0VSX1NBVkUsCisJTUlQSV9EQ1NfR0VUX0NBQkNfTUlOX0JSSUdIVE5FU1MsCisJTUlQSV9EQ1NfUkVBRF9EREJfU1RBUlQsCisJTUlQSV9EQ1NfUkVBRF9EREJfQ09OVElOVUUsCisJMCwgLyogc2VudGluZWwgKi8KK307CisKK3N0YXRpYyBib29sIG1pcGlfZGJpX2NvbW1hbmRfaXNfcmVhZChzdHJ1Y3QgbWlwaV9kYmkgKmRiaSwgdTggY21kKQoreworCXVuc2lnbmVkIGludCBpOworCisJaWYgKCFkYmktPnJlYWRfY29tbWFuZHMpCisJCXJldHVybiBmYWxzZTsKKworCWZvciAoaSA9IDA7IGkgPCAweGZmOyBpKyspIHsKKwkJaWYgKCFkYmktPnJlYWRfY29tbWFuZHNbaV0pCisJCQlyZXR1cm4gZmFsc2U7CisJCWlmIChjbWQgPT0gZGJpLT5yZWFkX2NvbW1hbmRzW2ldKQorCQkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCisvKioKKyAqIG1pcGlfZGJpX2NvbW1hbmRfcmVhZCAtIE1JUEkgRENTIHJlYWQgY29tbWFuZAorICogQGRiaTogTUlQSSBEQkkgc3RydWN0dXJlCisgKiBAY21kOiBDb21tYW5kCisgKiBAdmFsOiBWYWx1ZSByZWFkCisgKgorICogU2VuZCBNSVBJIERDUyByZWFkIGNvbW1hbmQgdG8gdGhlIGNvbnRyb2xsZXIuCisgKgorICogUmV0dXJuczoKKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWlwaV9kYmlfY29tbWFuZF9yZWFkKHN0cnVjdCBtaXBpX2RiaSAqZGJpLCB1OCBjbWQsIHU4ICp2YWwpCit7CisJaWYgKCFkYmktPnJlYWRfY29tbWFuZHMpCisJCXJldHVybiAtRUFDQ0VTOworCisJaWYgKCFtaXBpX2RiaV9jb21tYW5kX2lzX3JlYWQoZGJpLCBjbWQpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiBtaXBpX2RiaV9jb21tYW5kX2J1ZihkYmksIGNtZCwgdmFsLCAxKTsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kYmlfY29tbWFuZF9yZWFkKTsKKworLyoqCisgKiBtaXBpX2RiaV9jb21tYW5kX2J1ZiAtIE1JUEkgRENTIGNvbW1hbmQgd2l0aCBwYXJhbWV0ZXIocykgaW4gYW4gYXJyYXkKKyAqIEBkYmk6IE1JUEkgREJJIHN0cnVjdHVyZQorICogQGNtZDogQ29tbWFuZAorICogQGRhdGE6IFBhcmFtZXRlciBidWZmZXIKKyAqIEBsZW46IEJ1ZmZlciBsZW5ndGgKKyAqCisgKiBSZXR1cm5zOgorICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtaXBpX2RiaV9jb21tYW5kX2J1ZihzdHJ1Y3QgbWlwaV9kYmkgKmRiaSwgdTggY21kLCB1OCAqZGF0YSwgc2l6ZV90IGxlbikKK3sKKwl1OCAqY21kYnVmOworCWludCByZXQ7CisKKwkvKiBTUEkgcmVxdWlyZXMgZG1hLXNhZmUgYnVmZmVycyAqLworCWNtZGJ1ZiA9IGttZW1kdXAoJmNtZCwgMSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjbWRidWYpCisJCXJldHVybiAtRU5PTUVNOworCisJbXV0ZXhfbG9jaygmZGJpLT5jbWRsb2NrKTsKKwlyZXQgPSBkYmktPmNvbW1hbmQoZGJpLCBjbWRidWYsIGRhdGEsIGxlbik7CisJbXV0ZXhfdW5sb2NrKCZkYmktPmNtZGxvY2spOworCisJa2ZyZWUoY21kYnVmKTsKKworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2NvbW1hbmRfYnVmKTsKKworLyogVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGJ5IG1pcGlfZGJpX2NvbW1hbmQoKSAqLworaW50IG1pcGlfZGJpX2NvbW1hbmRfc3RhY2tidWYoc3RydWN0IG1pcGlfZGJpICpkYmksIHU4IGNtZCwgdTggKmRhdGEsIHNpemVfdCBsZW4pCit7CisJdTggKmJ1ZjsKKwlpbnQgcmV0OworCisJYnVmID0ga21lbWR1cChkYXRhLCBsZW4sIEdGUF9LRVJORUwpOworCWlmICghYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJldCA9IG1pcGlfZGJpX2NvbW1hbmRfYnVmKGRiaSwgY21kLCBidWYsIGxlbik7CisKKwlrZnJlZShidWYpOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kYmlfY29tbWFuZF9zdGFja2J1Zik7CisKKy8qKgorICogbWlwaV9kYmlfYnVmX2NvcHkgLSBDb3B5IGEgZnJhbWVidWZmZXIsIHRyYW5zZm9ybWluZyBpdCBpZiBuZWNlc3NhcnkKKyAqIEBkc3Q6IFRoZSBkZXN0aW5hdGlvbiBidWZmZXIKKyAqIEBmYjogVGhlIHNvdXJjZSBmcmFtZWJ1ZmZlcgorICogQGNsaXA6IENsaXBwaW5nIHJlY3RhbmdsZSBvZiB0aGUgYXJlYSB0byBiZSBjb3BpZWQKKyAqIEBzd2FwOiBXaGVuIHRydWUsIHN3YXAgTVNCL0xTQiBvZiAxNi1iaXQgdmFsdWVzCisgKgorICogUmV0dXJuczoKKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWlwaV9kYmlfYnVmX2NvcHkodm9pZCAqZHN0LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKKwkJICAgICAgc3RydWN0IGRybV9yZWN0ICpjbGlwLCBib29sIHN3YXApCit7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0gPSBkcm1fZ2VtX2ZiX2dldF9vYmooZmIsIDApOworCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSB0b19kcm1fZ2VtX2NtYV9vYmooZ2VtKTsKKwlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICppbXBvcnRfYXR0YWNoID0gZ2VtLT5pbXBvcnRfYXR0YWNoOworCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOworCXZvaWQgKnNyYyA9IGNtYV9vYmotPnZhZGRyOworCWludCByZXQgPSAwOworCisJaWYgKGltcG9ydF9hdHRhY2gpIHsKKwkJcmV0ID0gZG1hX2J1Zl9iZWdpbl9jcHVfYWNjZXNzKGltcG9ydF9hdHRhY2gtPmRtYWJ1ZiwKKwkJCQkJICAgICAgIERNQV9GUk9NX0RFVklDRSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXN3aXRjaCAoZmItPmZvcm1hdC0+Zm9ybWF0KSB7CisJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKKwkJaWYgKHN3YXApCisJCQlkcm1fZmJfc3dhYjE2KGRzdCwgc3JjLCBmYiwgY2xpcCk7CisJCWVsc2UKKwkJCWRybV9mYl9tZW1jcHkoZHN0LCBzcmMsIGZiLCBjbGlwKTsKKwkJYnJlYWs7CisJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4OgorCQlkcm1fZmJfeHJnYjg4ODhfdG9fcmdiNTY1KGRzdCwgc3JjLCBmYiwgY2xpcCwgc3dhcCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9lcnJfb25jZShmYi0+ZGV2LT5kZXYsICJGb3JtYXQgaXMgbm90IHN1cHBvcnRlZDogJXNcbiIsCisJCQkgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPmZvcm1hdC0+Zm9ybWF0LAorCQkJCQkJICZmb3JtYXRfbmFtZSkpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoaW1wb3J0X2F0dGFjaCkKKwkJcmV0ID0gZG1hX2J1Zl9lbmRfY3B1X2FjY2VzcyhpbXBvcnRfYXR0YWNoLT5kbWFidWYsCisJCQkJCSAgICAgRE1BX0ZST01fREVWSUNFKTsKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9idWZfY29weSk7CisKK3N0YXRpYyB2b2lkIG1pcGlfZGJpX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBzdHJ1Y3QgZHJtX3JlY3QgKnJlY3QpCit7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0gPSBkcm1fZ2VtX2ZiX2dldF9vYmooZmIsIDApOworCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSB0b19kcm1fZ2VtX2NtYV9vYmooZ2VtKTsKKwlzdHJ1Y3QgbWlwaV9kYmlfZGV2ICpkYmlkZXYgPSBkcm1fdG9fbWlwaV9kYmlfZGV2KGZiLT5kZXYpOworCXVuc2lnbmVkIGludCBoZWlnaHQgPSByZWN0LT55MiAtIHJlY3QtPnkxOworCXVuc2lnbmVkIGludCB3aWR0aCA9IHJlY3QtPngyIC0gcmVjdC0+eDE7CisJc3RydWN0IG1pcGlfZGJpICpkYmkgPSAmZGJpZGV2LT5kYmk7CisJYm9vbCBzd2FwID0gZGJpLT5zd2FwX2J5dGVzOworCWludCBpZHgsIHJldCA9IDA7CisJYm9vbCBmdWxsOworCXZvaWQgKnRyOworCisJaWYgKCFkYmlkZXYtPmVuYWJsZWQpCisJCXJldHVybjsKKworCWlmICghZHJtX2Rldl9lbnRlcihmYi0+ZGV2LCAmaWR4KSkKKwkJcmV0dXJuOworCisJZnVsbCA9IHdpZHRoID09IGZiLT53aWR0aCAmJiBoZWlnaHQgPT0gZmItPmhlaWdodDsKKworCURSTV9ERUJVR19LTVMoIkZsdXNoaW5nIFtGQjolZF0gIiBEUk1fUkVDVF9GTVQgIlxuIiwgZmItPmJhc2UuaWQsIERSTV9SRUNUX0FSRyhyZWN0KSk7CisKKwlpZiAoIWRiaS0+ZGMgfHwgIWZ1bGwgfHwgc3dhcCB8fAorCSAgICBmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9YUkdCODg4OCkgeworCQl0ciA9IGRiaWRldi0+dHhfYnVmOworCQlyZXQgPSBtaXBpX2RiaV9idWZfY29weShkYmlkZXYtPnR4X2J1ZiwgZmIsIHJlY3QsIHN3YXApOworCQlpZiAocmV0KQorCQkJZ290byBlcnJfbXNnOworCX0gZWxzZSB7CisJCXRyID0gY21hX29iai0+dmFkZHI7CisJfQorCisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9DT0xVTU5fQUREUkVTUywKKwkJCSAocmVjdC0+eDEgPj4gOCkgJiAweGZmLCByZWN0LT54MSAmIDB4ZmYsCisJCQkgKChyZWN0LT54MiAtIDEpID4+IDgpICYgMHhmZiwgKHJlY3QtPngyIC0gMSkgJiAweGZmKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX1BBR0VfQUREUkVTUywKKwkJCSAocmVjdC0+eTEgPj4gOCkgJiAweGZmLCByZWN0LT55MSAmIDB4ZmYsCisJCQkgKChyZWN0LT55MiAtIDEpID4+IDgpICYgMHhmZiwgKHJlY3QtPnkyIC0gMSkgJiAweGZmKTsKKworCXJldCA9IG1pcGlfZGJpX2NvbW1hbmRfYnVmKGRiaSwgTUlQSV9EQ1NfV1JJVEVfTUVNT1JZX1NUQVJULCB0ciwKKwkJCQkgICB3aWR0aCAqIGhlaWdodCAqIDIpOworZXJyX21zZzoKKwlpZiAocmV0KQorCQlkZXZfZXJyX29uY2UoZmItPmRldi0+ZGV2LCAiRmFpbGVkIHRvIHVwZGF0ZSBkaXNwbGF5ICVkXG4iLCByZXQpOworCisJZHJtX2Rldl9leGl0KGlkeCk7Cit9CisKKy8qKgorICogbWlwaV9kYmlfcGlwZV91cGRhdGUgLSBEaXNwbGF5IHBpcGUgdXBkYXRlIGhlbHBlcgorICogQHBpcGU6IFNpbXBsZSBkaXNwbGF5IHBpcGUKKyAqIEBvbGRfc3RhdGU6IE9sZCBwbGFuZSBzdGF0ZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBmcmFtZWJ1ZmZlciBmbHVzaGluZyBhbmQgdmJsYW5rIGV2ZW50cy4gRHJpdmVycyBjYW4gdXNlCisgKiB0aGlzIGFzIHRoZWlyICZkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcy0+dXBkYXRlIGNhbGxiYWNrLgorICovCit2b2lkIG1pcGlfZGJpX3BpcGVfdXBkYXRlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKKwkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlID0gcGlwZS0+cGxhbmUuc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJnBpcGUtPmNydGM7CisJc3RydWN0IGRybV9yZWN0IHJlY3Q7CisKKwlpZiAoZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX21lcmdlZChvbGRfc3RhdGUsIHN0YXRlLCAmcmVjdCkpCisJCW1pcGlfZGJpX2ZiX2RpcnR5KHN0YXRlLT5mYiwgJnJlY3QpOworCisJaWYgKGNydGMtPnN0YXRlLT5ldmVudCkgeworCQlzcGluX2xvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOworCQlkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOworCQlzcGluX3VubG9ja19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CisJCWNydGMtPnN0YXRlLT5ldmVudCA9IE5VTEw7CisJfQorfQorRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9waXBlX3VwZGF0ZSk7CisKKy8qKgorICogbWlwaV9kYmlfZW5hYmxlX2ZsdXNoIC0gTUlQSSBEQkkgZW5hYmxlIGhlbHBlcgorICogQGRiaWRldjogTUlQSSBEQkkgZGV2aWNlIHN0cnVjdHVyZQorICogQGNydGNfc3RhdGU6IENSVEMgc3RhdGUKKyAqIEBwbGFuZV9zdGF0ZTogUGxhbmUgc3RhdGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHNldHMgJm1pcGlfZGJpLT5lbmFibGVkLCBmbHVzaGVzIHRoZSB3aG9sZSBmcmFtZWJ1ZmZlciBhbmQKKyAqIGVuYWJsZXMgdGhlIGJhY2tsaWdodC4gRHJpdmVycyBjYW4gdXNlIHRoaXMgaW4gdGhlaXIKKyAqICZkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcy0+ZW5hYmxlIGNhbGxiYWNrLgorICoKKyAqIE5vdGU6IERyaXZlcnMgd2hpY2ggZG9uJ3QgdXNlIG1pcGlfZGJpX3BpcGVfdXBkYXRlKCkgYmVjYXVzZSB0aGV5IGhhdmUgY3VzdG9tCisgKiBmcmFtZWJ1ZmZlciBmbHVzaGluZywgY2FuJ3QgdXNlIHRoaXMgZnVuY3Rpb24gc2luY2UgdGhleSBib3RoIHVzZSB0aGUgc2FtZQorICogZmx1c2hpbmcgY29kZS4KKyAqLwordm9pZCBtaXBpX2RiaV9lbmFibGVfZmx1c2goc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2LAorCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCit7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7CisJc3RydWN0IGRybV9yZWN0IHJlY3QgPSB7CisJCS54MSA9IDAsCisJCS54MiA9IGZiLT53aWR0aCwKKwkJLnkxID0gMCwKKwkJLnkyID0gZmItPmhlaWdodCwKKwl9OworCWludCBpZHg7CisKKwlpZiAoIWRybV9kZXZfZW50ZXIoJmRiaWRldi0+ZHJtLCAmaWR4KSkKKwkJcmV0dXJuOworCisJZGJpZGV2LT5lbmFibGVkID0gdHJ1ZTsKKwltaXBpX2RiaV9mYl9kaXJ0eShmYiwgJnJlY3QpOworCWJhY2tsaWdodF9lbmFibGUoZGJpZGV2LT5iYWNrbGlnaHQpOworCisJZHJtX2Rldl9leGl0KGlkeCk7Cit9CitFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2VuYWJsZV9mbHVzaCk7CisKK3N0YXRpYyB2b2lkIG1pcGlfZGJpX2JsYW5rKHN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gJmRiaWRldi0+ZHJtOworCXUxNiBoZWlnaHQgPSBkcm0tPm1vZGVfY29uZmlnLm1pbl9oZWlnaHQ7CisJdTE2IHdpZHRoID0gZHJtLT5tb2RlX2NvbmZpZy5taW5fd2lkdGg7CisJc3RydWN0IG1pcGlfZGJpICpkYmkgPSAmZGJpZGV2LT5kYmk7CisJc2l6ZV90IGxlbiA9IHdpZHRoICogaGVpZ2h0ICogMjsKKwlpbnQgaWR4OworCisJaWYgKCFkcm1fZGV2X2VudGVyKGRybSwgJmlkeCkpCisJCXJldHVybjsKKworCW1lbXNldChkYmlkZXYtPnR4X2J1ZiwgMCwgbGVuKTsKKworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19TRVRfQ09MVU1OX0FERFJFU1MsIDAsIDAsCisJCQkgKHdpZHRoID4+IDgpICYgMHhGRiwgKHdpZHRoIC0gMSkgJiAweEZGKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX1BBR0VfQUREUkVTUywgMCwgMCwKKwkJCSAoaGVpZ2h0ID4+IDgpICYgMHhGRiwgKGhlaWdodCAtIDEpICYgMHhGRik7CisJbWlwaV9kYmlfY29tbWFuZF9idWYoZGJpLCBNSVBJX0RDU19XUklURV9NRU1PUllfU1RBUlQsCisJCQkgICAgICh1OCAqKWRiaWRldi0+dHhfYnVmLCBsZW4pOworCisJZHJtX2Rldl9leGl0KGlkeCk7Cit9CisKKy8qKgorICogbWlwaV9kYmlfcGlwZV9kaXNhYmxlIC0gTUlQSSBEQkkgcGlwZSBkaXNhYmxlIGhlbHBlcgorICogQHBpcGU6IERpc3BsYXkgcGlwZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gZGlzYWJsZXMgYmFja2xpZ2h0IGlmIHByZXNlbnQsIGlmIG5vdCB0aGUgZGlzcGxheSBtZW1vcnkgaXMKKyAqIGJsYW5rZWQuIFRoZSByZWd1bGF0b3IgaXMgZGlzYWJsZWQgaWYgaW4gdXNlLiBEcml2ZXJzIGNhbiB1c2UgdGhpcyBhcyB0aGVpcgorICogJmRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzLT5kaXNhYmxlIGNhbGxiYWNrLgorICovCit2b2lkIG1pcGlfZGJpX3BpcGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCit7CisJc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2ID0gZHJtX3RvX21pcGlfZGJpX2RldihwaXBlLT5jcnRjLmRldik7CisKKwlpZiAoIWRiaWRldi0+ZW5hYmxlZCkKKwkJcmV0dXJuOworCisJRFJNX0RFQlVHX0tNUygiXG4iKTsKKworCWRiaWRldi0+ZW5hYmxlZCA9IGZhbHNlOworCisJaWYgKGRiaWRldi0+YmFja2xpZ2h0KQorCQliYWNrbGlnaHRfZGlzYWJsZShkYmlkZXYtPmJhY2tsaWdodCk7CisJZWxzZQorCQltaXBpX2RiaV9ibGFuayhkYmlkZXYpOworCisJaWYgKGRiaWRldi0+cmVndWxhdG9yKQorCQlyZWd1bGF0b3JfZGlzYWJsZShkYmlkZXYtPnJlZ3VsYXRvcik7Cit9CitFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX3BpcGVfZGlzYWJsZSk7CisKK3N0YXRpYyBpbnQgbWlwaV9kYmlfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiA9IGRybV90b19taXBpX2RiaV9kZXYoY29ubmVjdG9yLT5kZXYpOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOworCisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRiaWRldi0+bW9kZSk7CisJaWYgKCFtb2RlKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGR1cGxpY2F0ZSBtb2RlXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKG1vZGUtPm5hbWVbMF0gPT0gJ1wwJykKKwkJZHJtX21vZGVfc2V0X25hbWUobW9kZSk7CisKKwltb2RlLT50eXBlIHw9IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKKworCWlmIChtb2RlLT53aWR0aF9tbSkgeworCQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOworCQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07CisJfQorCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgbWlwaV9kYmlfY29ubmVjdG9yX2hmdW5jcyA9IHsKKwkuZ2V0X21vZGVzID0gbWlwaV9kYmlfY29ubmVjdG9yX2dldF9tb2RlcywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBtaXBpX2RiaV9jb25uZWN0b3JfZnVuY3MgPSB7CisJLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3Jlc2V0LAorCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAorCS5kZXN0cm95ID0gZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwLAorCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKK307CisKK3N0YXRpYyBpbnQgbWlwaV9kYmlfcm90YXRlX21vZGUoc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkJdW5zaWduZWQgaW50IHJvdGF0aW9uKQoreworCWlmIChyb3RhdGlvbiA9PSAwIHx8IHJvdGF0aW9uID09IDE4MCkgeworCQlyZXR1cm4gMDsKKwl9IGVsc2UgaWYgKHJvdGF0aW9uID09IDkwIHx8IHJvdGF0aW9uID09IDI3MCkgeworCQlzd2FwKG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7CisJCXN3YXAobW9kZS0+aHN5bmNfc3RhcnQsIG1vZGUtPnZzeW5jX3N0YXJ0KTsKKwkJc3dhcChtb2RlLT5oc3luY19lbmQsIG1vZGUtPnZzeW5jX2VuZCk7CisJCXN3YXAobW9kZS0+aHRvdGFsLCBtb2RlLT52dG90YWwpOworCQlzd2FwKG1vZGUtPndpZHRoX21tLCBtb2RlLT5oZWlnaHRfbW0pOworCQlyZXR1cm4gMDsKKwl9IGVsc2UgeworCQlyZXR1cm4gLUVJTlZBTDsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIG1pcGlfZGJpX21vZGVfY29uZmlnX2Z1bmNzID0geworCS5mYl9jcmVhdGUgPSBkcm1fZ2VtX2ZiX2NyZWF0ZV93aXRoX2RpcnR5LAorCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKKwkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKK307CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBtaXBpX2RiaV9mb3JtYXRzW10gPSB7CisJRFJNX0ZPUk1BVF9SR0I1NjUsCisJRFJNX0ZPUk1BVF9YUkdCODg4OCwKK307CisKKy8qKgorICogbWlwaV9kYmlfZGV2X2luaXRfd2l0aF9mb3JtYXRzIC0gTUlQSSBEQkkgZGV2aWNlIGluaXRpYWxpemF0aW9uIHdpdGggY3VzdG9tIGZvcm1hdHMKKyAqIEBkYmlkZXY6IE1JUEkgREJJIGRldmljZSBzdHJ1Y3R1cmUgdG8gaW5pdGlhbGl6ZQorICogQGZ1bmNzOiBEaXNwbGF5IHBpcGUgZnVuY3Rpb25zCisgKiBAZm9ybWF0czogQXJyYXkgb2Ygc3VwcG9ydGVkIGZvcm1hdHMgKERSTV9GT1JNQVRcX1wqKS4KKyAqIEBmb3JtYXRfY291bnQ6IE51bWJlciBvZiBlbGVtZW50cyBpbiBAZm9ybWF0cworICogQG1vZGU6IERpc3BsYXkgbW9kZQorICogQHJvdGF0aW9uOiBJbml0aWFsIHJvdGF0aW9uIGluIGRlZ3JlZXMgQ291bnRlciBDbG9jayBXaXNlCisgKiBAdHhfYnVmX3NpemU6IEFsbG9jYXRlIGEgdHJhbnNtaXQgYnVmZmVyIG9mIHRoaXMgc2l6ZS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHNldHMgdXAgYSAmZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgd2l0aCBhICZkcm1fY29ubmVjdG9yIHRoYXQKKyAqIGhhcyBvbmUgZml4ZWQgJmRybV9kaXNwbGF5X21vZGUgd2hpY2ggaXMgcm90YXRlZCBhY2NvcmRpbmcgdG8gQHJvdGF0aW9uLgorICogVGhpcyBtb2RlIGlzIHVzZWQgdG8gc2V0IHRoZSBtb2RlIGNvbmZpZyBtaW4vbWF4IHdpZHRoL2hlaWdodCBwcm9wZXJ0aWVzLgorICoKKyAqIFVzZSBtaXBpX2RiaV9kZXZfaW5pdCgpIGlmIHlvdSBkb24ndCBuZWVkIGN1c3RvbSBmb3JtYXRzLgorICoKKyAqIE5vdGU6CisgKiBTb21lIG9mIHRoZSBoZWxwZXIgZnVuY3Rpb25zIGV4cGVjdHMgUkdCNTY1IHRvIGJlIHRoZSBkZWZhdWx0IGZvcm1hdCBhbmQgdGhlCisgKiB0cmFuc21pdCBidWZmZXIgc2l6ZWQgdG8gZml0IHRoYXQuCisgKgorICogUmV0dXJuczoKKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWlwaV9kYmlfZGV2X2luaXRfd2l0aF9mb3JtYXRzKHN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgKmZ1bmNzLAorCQkJCSAgIGNvbnN0IHVpbnQzMl90ICpmb3JtYXRzLCB1bnNpZ25lZCBpbnQgZm9ybWF0X2NvdW50LAorCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAorCQkJCSAgIHVuc2lnbmVkIGludCByb3RhdGlvbiwgc2l6ZV90IHR4X2J1Zl9zaXplKQoreworCXN0YXRpYyBjb25zdCB1aW50NjRfdCBtb2RpZmllcnNbXSA9IHsKKwkJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAorCQlEUk1fRk9STUFUX01PRF9JTlZBTElECisJfTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gJmRiaWRldi0+ZHJtOworCWludCByZXQ7CisKKwlpZiAoIWRiaWRldi0+ZGJpLmNvbW1hbmQpCisJCXJldHVybiAtRUlOVkFMOworCisJZGJpZGV2LT50eF9idWYgPSBkZXZtX2ttYWxsb2MoZHJtLT5kZXYsIHR4X2J1Zl9zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRiaWRldi0+dHhfYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRybV9tb2RlX2NvcHkoJmRiaWRldi0+bW9kZSwgbW9kZSk7CisJcmV0ID0gbWlwaV9kYmlfcm90YXRlX21vZGUoJmRiaWRldi0+bW9kZSwgcm90YXRpb24pOworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJJbGxlZ2FsIHJvdGF0aW9uIHZhbHVlICV1XG4iLCByb3RhdGlvbik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmZGJpZGV2LT5jb25uZWN0b3IsICZtaXBpX2RiaV9jb25uZWN0b3JfaGZ1bmNzKTsKKwlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAmZGJpZGV2LT5jb25uZWN0b3IsICZtaXBpX2RiaV9jb25uZWN0b3JfZnVuY3MsCisJCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9TUEkpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9pbml0KGRybSwgJmRiaWRldi0+cGlwZSwgZnVuY3MsIGZvcm1hdHMsIGZvcm1hdF9jb3VudCwKKwkJCQkJICAgbW9kaWZpZXJzLCAmZGJpZGV2LT5jb25uZWN0b3IpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlkcm1fcGxhbmVfZW5hYmxlX2ZiX2RhbWFnZV9jbGlwcygmZGJpZGV2LT5waXBlLnBsYW5lKTsKKworCWRybS0+bW9kZV9jb25maWcuZnVuY3MgPSAmbWlwaV9kYmlfbW9kZV9jb25maWdfZnVuY3M7CisJZHJtLT5tb2RlX2NvbmZpZy5taW5fd2lkdGggPSBkYmlkZXYtPm1vZGUuaGRpc3BsYXk7CisJZHJtLT5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSBkYmlkZXYtPm1vZGUuaGRpc3BsYXk7CisJZHJtLT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gZGJpZGV2LT5tb2RlLnZkaXNwbGF5OworCWRybS0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IGRiaWRldi0+bW9kZS52ZGlzcGxheTsKKwlkYmlkZXYtPnJvdGF0aW9uID0gcm90YXRpb247CisKKwlEUk1fREVCVUdfS01TKCJyb3RhdGlvbiA9ICV1XG4iLCByb3RhdGlvbik7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kYmlfZGV2X2luaXRfd2l0aF9mb3JtYXRzKTsKKworLyoqCisgKiBtaXBpX2RiaV9kZXZfaW5pdCAtIE1JUEkgREJJIGRldmljZSBpbml0aWFsaXphdGlvbgorICogQGRiaWRldjogTUlQSSBEQkkgZGV2aWNlIHN0cnVjdHVyZSB0byBpbml0aWFsaXplCisgKiBAZnVuY3M6IERpc3BsYXkgcGlwZSBmdW5jdGlvbnMKKyAqIEBtb2RlOiBEaXNwbGF5IG1vZGUKKyAqIEByb3RhdGlvbjogSW5pdGlhbCByb3RhdGlvbiBpbiBkZWdyZWVzIENvdW50ZXIgQ2xvY2sgV2lzZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gc2V0cyB1cCBhICZkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSB3aXRoIGEgJmRybV9jb25uZWN0b3IgdGhhdAorICogaGFzIG9uZSBmaXhlZCAmZHJtX2Rpc3BsYXlfbW9kZSB3aGljaCBpcyByb3RhdGVkIGFjY29yZGluZyB0byBAcm90YXRpb24uCisgKiBUaGlzIG1vZGUgaXMgdXNlZCB0byBzZXQgdGhlIG1vZGUgY29uZmlnIG1pbi9tYXggd2lkdGgvaGVpZ2h0IHByb3BlcnRpZXMuCisgKiBBZGRpdGlvbmFsbHkgJm1pcGlfZGJpLnR4X2J1ZiBpcyBhbGxvY2F0ZWQuCisgKgorICogU3VwcG9ydGVkIGZvcm1hdHM6IE5hdGl2ZSBSR0I1NjUgYW5kIGVtdWxhdGVkIFhSR0I4ODg4LgorICoKKyAqIFJldHVybnM6CisgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1pcGlfZGJpX2Rldl9pbml0KHN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiwKKwkJICAgICAgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzICpmdW5jcywKKwkJICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsIHVuc2lnbmVkIGludCByb3RhdGlvbikKK3sKKwlzaXplX3QgYnVmc2l6ZSA9IG1vZGUtPnZkaXNwbGF5ICogbW9kZS0+aGRpc3BsYXkgKiBzaXplb2YodTE2KTsKKworCWRiaWRldi0+ZHJtLm1vZGVfY29uZmlnLnByZWZlcnJlZF9kZXB0aCA9IDE2OworCisJcmV0dXJuIG1pcGlfZGJpX2Rldl9pbml0X3dpdGhfZm9ybWF0cyhkYmlkZXYsIGZ1bmNzLCBtaXBpX2RiaV9mb3JtYXRzLAorCQkJCQkgICAgICBBUlJBWV9TSVpFKG1pcGlfZGJpX2Zvcm1hdHMpLCBtb2RlLAorCQkJCQkgICAgICByb3RhdGlvbiwgYnVmc2l6ZSk7Cit9CitFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2Rldl9pbml0KTsKKworLyoqCisgKiBtaXBpX2RiaV9yZWxlYXNlIC0gRFJNIGRyaXZlciByZWxlYXNlIGhlbHBlcgorICogQGRybTogRFJNIGRldmljZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gZmluYWxpemVzIGFuZCBmcmVlcyAmbWlwaV9kYmkuCisgKgorICogRHJpdmVycyBjYW4gdXNlIHRoaXMgYXMgdGhlaXIgJmRybV9kcml2ZXItPnJlbGVhc2UgY2FsbGJhY2suCisgKi8KK3ZvaWQgbWlwaV9kYmlfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQoreworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiA9IGRybV90b19taXBpX2RiaV9kZXYoZHJtKTsKKworCURSTV9ERUJVR19EUklWRVIoIlxuIik7CisKKwlkcm1fbW9kZV9jb25maWdfY2xlYW51cChkcm0pOworCWRybV9kZXZfZmluaShkcm0pOworCWtmcmVlKGRiaWRldik7Cit9CitFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX3JlbGVhc2UpOworCisvKioKKyAqIG1pcGlfZGJpX2h3X3Jlc2V0IC0gSGFyZHdhcmUgcmVzZXQgb2YgY29udHJvbGxlcgorICogQGRiaTogTUlQSSBEQkkgc3RydWN0dXJlCisgKgorICogUmVzZXQgY29udHJvbGxlciBpZiB0aGUgJm1pcGlfZGJpLT5yZXNldCBncGlvIGlzIHNldC4KKyAqLwordm9pZCBtaXBpX2RiaV9od19yZXNldChzdHJ1Y3QgbWlwaV9kYmkgKmRiaSkKK3sKKwlpZiAoIWRiaS0+cmVzZXQpCisJCXJldHVybjsKKworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChkYmktPnJlc2V0LCAwKTsKKwl1c2xlZXBfcmFuZ2UoMjAsIDEwMDApOworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChkYmktPnJlc2V0LCAxKTsKKwltc2xlZXAoMTIwKTsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kYmlfaHdfcmVzZXQpOworCisvKioKKyAqIG1pcGlfZGJpX2Rpc3BsYXlfaXNfb24gLSBDaGVjayBpZiBkaXNwbGF5IGlzIG9uCisgKiBAZGJpOiBNSVBJIERCSSBzdHJ1Y3R1cmUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyB0aGUgUG93ZXIgTW9kZSByZWdpc3RlciAoaWYgcmVhZGFibGUpIHRvIHNlZSBpZgorICogZGlzcGxheSBvdXRwdXQgaXMgdHVybmVkIG9uLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHNlZSBpZiB0aGUgYm9vdGxvYWRlcgorICogaGFzIGFscmVhZHkgdHVybmVkIG9uIHRoZSBkaXNwbGF5IGF2b2lkaW5nIGZsaWNrZXIgd2hlbiB0aGUgcGlwZWxpbmUgaXMKKyAqIGVuYWJsZWQuCisgKgorICogUmV0dXJuczoKKyAqIHRydWUgaWYgdGhlIGRpc3BsYXkgY2FuIGJlIHZlcmlmaWVkIHRvIGJlIG9uLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wgbWlwaV9kYmlfZGlzcGxheV9pc19vbihzdHJ1Y3QgbWlwaV9kYmkgKmRiaSkKK3sKKwl1OCB2YWw7CisKKwlpZiAobWlwaV9kYmlfY29tbWFuZF9yZWFkKGRiaSwgTUlQSV9EQ1NfR0VUX1BPV0VSX01PREUsICZ2YWwpKQorCQlyZXR1cm4gZmFsc2U7CisKKwl2YWwgJj0gfkRDU19QT1dFUl9NT0RFX1JFU0VSVkVEX01BU0s7CisKKwkvKiBUaGUgcG93ZXJvbi9yZXNldCB2YWx1ZSBpcyAwOGggRENTX1BPV0VSX01PREVfRElTUExBWV9OT1JNQUxfTU9ERSAqLworCWlmICh2YWwgIT0gKERDU19QT1dFUl9NT0RFX0RJU1BMQVkgfAorCSAgICBEQ1NfUE9XRVJfTU9ERV9ESVNQTEFZX05PUk1BTF9NT0RFIHwgRENTX1BPV0VSX01PREVfU0xFRVBfTU9ERSkpCisJCXJldHVybiBmYWxzZTsKKworCURSTV9ERUJVR19EUklWRVIoIkRpc3BsYXkgaXMgT05cbiIpOworCisJcmV0dXJuIHRydWU7Cit9CitFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2Rpc3BsYXlfaXNfb24pOworCitzdGF0aWMgaW50IG1pcGlfZGJpX3Bvd2Vyb25fcmVzZXRfY29uZGl0aW9uYWwoc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2LCBib29sIGNvbmQpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gZGJpZGV2LT5kcm0uZGV2OworCXN0cnVjdCBtaXBpX2RiaSAqZGJpID0gJmRiaWRldi0+ZGJpOworCWludCByZXQ7CisKKwlpZiAoZGJpZGV2LT5yZWd1bGF0b3IpIHsKKwkJcmV0ID0gcmVndWxhdG9yX2VuYWJsZShkYmlkZXYtPnJlZ3VsYXRvcik7CisJCWlmIChyZXQpIHsKKwkJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSByZWd1bGF0b3IgKCVkKVxuIiwgcmV0KTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlpZiAoY29uZCAmJiBtaXBpX2RiaV9kaXNwbGF5X2lzX29uKGRiaSkpCisJCXJldHVybiAxOworCisJbWlwaV9kYmlfaHdfcmVzZXQoZGJpKTsKKwlyZXQgPSBtaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU09GVF9SRVNFVCk7CisJaWYgKHJldCkgeworCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBzZW5kIHJlc2V0IGNvbW1hbmQgKCVkKVxuIiwgcmV0KTsKKwkJaWYgKGRiaWRldi0+cmVndWxhdG9yKQorCQkJcmVndWxhdG9yX2Rpc2FibGUoZGJpZGV2LT5yZWd1bGF0b3IpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qCisJICogSWYgd2UgZGlkIGEgaHcgcmVzZXQsIHdlIGtub3cgdGhlIGNvbnRyb2xsZXIgaXMgaW4gU2xlZXAgbW9kZSBhbmQKKwkgKiBwZXIgTUlQSSBEU0Mgc3BlYyBzaG91bGQgd2FpdCA1bXMgYWZ0ZXIgc29mdCByZXNldC4gSWYgd2UgZGlkbid0LAorCSAqIHdlIGFzc3VtZSB3b3JzdCBjYXNlIGFuZCB3YWl0IDEyMG1zLgorCSAqLworCWlmIChkYmktPnJlc2V0KQorCQl1c2xlZXBfcmFuZ2UoNTAwMCwgMjAwMDApOworCWVsc2UKKwkJbXNsZWVwKDEyMCk7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBtaXBpX2RiaV9wb3dlcm9uX3Jlc2V0IC0gTUlQSSBEQkkgcG93ZXJvbiBhbmQgcmVzZXQKKyAqIEBkYmlkZXY6IE1JUEkgREJJIGRldmljZSBzdHJ1Y3R1cmUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGVuYWJsZXMgdGhlIHJlZ3VsYXRvciBpZiB1c2VkIGFuZCBkb2VzIGEgaGFyZHdhcmUgYW5kIHNvZnR3YXJlCisgKiByZXNldC4KKyAqCisgKiBSZXR1cm5zOgorICogWmVybyBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgKi8KK2ludCBtaXBpX2RiaV9wb3dlcm9uX3Jlc2V0KHN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldikKK3sKKwlyZXR1cm4gbWlwaV9kYmlfcG93ZXJvbl9yZXNldF9jb25kaXRpb25hbChkYmlkZXYsIGZhbHNlKTsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kYmlfcG93ZXJvbl9yZXNldCk7CisKKy8qKgorICogbWlwaV9kYmlfcG93ZXJvbl9jb25kaXRpb25hbF9yZXNldCAtIE1JUEkgREJJIHBvd2Vyb24gYW5kIGNvbmRpdGlvbmFsIHJlc2V0CisgKiBAZGJpZGV2OiBNSVBJIERCSSBkZXZpY2Ugc3RydWN0dXJlCisgKgorICogVGhpcyBmdW5jdGlvbiBlbmFibGVzIHRoZSByZWd1bGF0b3IgaWYgdXNlZCBhbmQgaWYgdGhlIGRpc3BsYXkgaXMgb2ZmLCBpdAorICogZG9lcyBhIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSByZXNldC4gSWYgbWlwaV9kYmlfZGlzcGxheV9pc19vbigpIGRldGVybWluZXMKKyAqIHRoYXQgdGhlIGRpc3BsYXkgaXMgb24sIG5vIHJlc2V0IGlzIHBlcmZvcm1lZC4KKyAqCisgKiBSZXR1cm5zOgorICogWmVybyBpZiB0aGUgY29udHJvbGxlciB3YXMgcmVzZXQsIDEgaWYgdGhlIGRpc3BsYXkgd2FzIGFscmVhZHkgb24sIG9yIGEKKyAqIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgKi8KK2ludCBtaXBpX2RiaV9wb3dlcm9uX2NvbmRpdGlvbmFsX3Jlc2V0KHN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldikKK3sKKwlyZXR1cm4gbWlwaV9kYmlfcG93ZXJvbl9yZXNldF9jb25kaXRpb25hbChkYmlkZXYsIHRydWUpOworfQorRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9wb3dlcm9uX2NvbmRpdGlvbmFsX3Jlc2V0KTsKKworI2lmIElTX0VOQUJMRUQoQ09ORklHX1NQSSkKKworLyoqCisgKiBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZCAtIGdldCB0aGUgbWF4aW11bSBTUEkgYnVzIHNwZWVkCisgKiBAc3BpOiBTUEkgZGV2aWNlCisgKiBAbGVuOiBUaGUgdHJhbnNmZXIgYnVmZmVyIGxlbmd0aC4KKyAqCisgKiBNYW55IGNvbnRyb2xsZXJzIGhhdmUgYSBtYXggc3BlZWQgb2YgMTBNSHosIGJ1dCBjYW4gYmUgcHVzaGVkIHdheSBiZXlvbmQKKyAqIHRoYXQuIEluY3JlYXNlIHJlbGlhYmlsaXR5IGJ5IHJ1bm5pbmcgcGl4ZWwgZGF0YSBhdCBtYXggc3BlZWQgYW5kIHRoZSByZXN0CisgKiBhdCAxME1IeiwgcHJldmVudGluZyB0cmFuc2ZlciBnbGl0Y2hlcyBmcm9tIG1lc3NpbmcgdXAgdGhlIGluaXQgc2V0dGluZ3MuCisgKi8KK3UzMiBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzaXplX3QgbGVuKQoreworCWlmIChsZW4gPiA2NCkKKwkJcmV0dXJuIDA7IC8qIHVzZSBkZWZhdWx0ICovCisKKwlyZXR1cm4gbWluX3QodTMyLCAxMDAwMDAwMCwgc3BpLT5tYXhfc3BlZWRfaHopOworfQorRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZCk7CisKK3N0YXRpYyBib29sIG1pcGlfZGJpX21hY2hpbmVfbGl0dGxlX2VuZGlhbih2b2lkKQoreworI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKQorCXJldHVybiB0cnVlOworI2Vsc2UKKwlyZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworLyoKKyAqIE1JUEkgREJJIFR5cGUgQyBPcHRpb24gMQorICoKKyAqIElmIHRoZSBTUEkgY29udHJvbGxlciBkb2Vzbid0IGhhdmUgOSBiaXRzIHBlciB3b3JkIHN1cHBvcnQsCisgKiB1c2UgYmxvY2tzIG9mIDkgYnl0ZXMgdG8gc2VuZCA4eCA5LWJpdCB3b3JkcyB1c2luZyBhIDgtYml0IFNQSSB0cmFuc2Zlci4KKyAqIFBhZCBwYXJ0aWFsIGJsb2NrcyB3aXRoIE1JUElfRENTX05PUCAoemVybykuCisgKiBUaGlzIGlzIGhvdyB0aGUgRC9DIGJpdCAoeCkgaXMgYWRkZWQ6CisgKiAgICAgeDc2NTQzMjEKKyAqICAgICAweDc2NTQzMgorICogICAgIDEweDc2NTQzCisgKiAgICAgMjEweDc2NTQKKyAqICAgICAzMjEweDc2NQorICogICAgIDQzMjEweDc2CisgKiAgICAgNTQzMjEweDcKKyAqICAgICA2NTQzMjEweAorICogICAgIDc2NTQzMjEwCisgKi8KKworc3RhdGljIGludCBtaXBpX2RiaV9zcGkxZV90cmFuc2ZlcihzdHJ1Y3QgbWlwaV9kYmkgKmRiaSwgaW50IGRjLAorCQkJCSAgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwKKwkJCQkgICB1bnNpZ25lZCBpbnQgYnB3KQoreworCWJvb2wgc3dhcF9ieXRlcyA9IChicHcgPT0gMTYgJiYgbWlwaV9kYmlfbWFjaGluZV9saXR0bGVfZW5kaWFuKCkpOworCXNpemVfdCBjaHVuaywgbWF4X2NodW5rID0gZGJpLT50eF9idWY5X2xlbjsKKwlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gZGJpLT5zcGk7CisJc3RydWN0IHNwaV90cmFuc2ZlciB0ciA9IHsKKwkJLnR4X2J1ZiA9IGRiaS0+dHhfYnVmOSwKKwkJLmJpdHNfcGVyX3dvcmQgPSA4LAorCX07CisJc3RydWN0IHNwaV9tZXNzYWdlIG07CisJY29uc3QgdTggKnNyYyA9IGJ1ZjsKKwlpbnQgaSwgcmV0OworCXU4ICpkc3Q7CisKKwlpZiAoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikKKwkJcHJfZGVidWcoIltkcm06JXNdIGRjPSVkLCBtYXhfY2h1bms9JXp1LCB0cmFuc2ZlcnM6XG4iLAorCQkJIF9fZnVuY19fLCBkYywgbWF4X2NodW5rKTsKKworCXRyLnNwZWVkX2h6ID0gbWlwaV9kYmlfc3BpX2NtZF9tYXhfc3BlZWQoc3BpLCBsZW4pOworCXNwaV9tZXNzYWdlX2luaXRfd2l0aF90cmFuc2ZlcnMoJm0sICZ0ciwgMSk7CisKKwlpZiAoIWRjKSB7CisJCWlmIChXQVJOX09OX09OQ0UobGVuICE9IDEpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJLyogQ29tbWFuZDogcGFkIG5vLW9wJ3MgKHplcm9lcykgYXQgYmVnaW5uaW5nIG9mIGJsb2NrICovCisJCWRzdCA9IGRiaS0+dHhfYnVmOTsKKwkJbWVtc2V0KGRzdCwgMCwgOSk7CisJCWRzdFs4XSA9ICpzcmM7CisJCXRyLmxlbiA9IDk7CisKKwkJcmV0dXJuIHNwaV9zeW5jKHNwaSwgJm0pOworCX0KKworCS8qIG1heCB3aXRoIHJvb20gZm9yIGFkZGluZyBvbmUgYml0IHBlciBieXRlICovCisJbWF4X2NodW5rID0gbWF4X2NodW5rIC8gOSAqIDg7CisJLyogYnV0IG5vIGJpZ2dlciB0aGFuIGxlbiAqLworCW1heF9jaHVuayA9IG1pbihtYXhfY2h1bmssIGxlbik7CisJLyogOCBieXRlIGJsb2NrcyAqLworCW1heF9jaHVuayA9IG1heF90KHNpemVfdCwgOCwgbWF4X2NodW5rICYgfjB4Nyk7CisKKwl3aGlsZSAobGVuKSB7CisJCXNpemVfdCBhZGRlZCA9IDA7CisKKwkJY2h1bmsgPSBtaW4obGVuLCBtYXhfY2h1bmspOworCQlsZW4gLT0gY2h1bms7CisJCWRzdCA9IGRiaS0+dHhfYnVmOTsKKworCQlpZiAoY2h1bmsgPCA4KSB7CisJCQl1OCB2YWwsIGNhcnJ5ID0gMDsKKworCQkJLyogRGF0YTogcGFkIG5vLW9wJ3MgKHplcm9lcykgYXQgZW5kIG9mIGJsb2NrICovCisJCQltZW1zZXQoZHN0LCAwLCA5KTsKKworCQkJaWYgKHN3YXBfYnl0ZXMpIHsKKwkJCQlmb3IgKGkgPSAxOyBpIDwgKGNodW5rICsgMSk7IGkrKykgeworCQkJCQl2YWwgPSBzcmNbMV07CisJCQkJCSpkc3QrKyA9IGNhcnJ5IHwgQklUKDggLSBpKSB8ICh2YWwgPj4gaSk7CisJCQkJCWNhcnJ5ID0gdmFsIDw8ICg4IC0gaSk7CisJCQkJCWkrKzsKKwkJCQkJdmFsID0gc3JjWzBdOworCQkJCQkqZHN0KysgPSBjYXJyeSB8IEJJVCg4IC0gaSkgfCAodmFsID4+IGkpOworCQkJCQljYXJyeSA9IHZhbCA8PCAoOCAtIGkpOworCQkJCQlzcmMgKz0gMjsKKwkJCQl9CisJCQkJKmRzdCsrID0gY2Fycnk7CisJCQl9IGVsc2UgeworCQkJCWZvciAoaSA9IDE7IGkgPCAoY2h1bmsgKyAxKTsgaSsrKSB7CisJCQkJCXZhbCA9ICpzcmMrKzsKKwkJCQkJKmRzdCsrID0gY2FycnkgfCBCSVQoOCAtIGkpIHwgKHZhbCA+PiBpKTsKKwkJCQkJY2FycnkgPSB2YWwgPDwgKDggLSBpKTsKKwkJCQl9CisJCQkJKmRzdCsrID0gY2Fycnk7CisJCQl9CisKKwkJCWNodW5rID0gODsKKwkJCWFkZGVkID0gMTsKKwkJfSBlbHNlIHsKKwkJCWZvciAoaSA9IDA7IGkgPCBjaHVuazsgaSArPSA4KSB7CisJCQkJaWYgKHN3YXBfYnl0ZXMpIHsKKwkJCQkJKmRzdCsrID0gICAgICAgICAgICAgICAgIEJJVCg3KSB8IChzcmNbMV0gPj4gMSk7CisJCQkJCSpkc3QrKyA9IChzcmNbMV0gPDwgNykgfCBCSVQoNikgfCAoc3JjWzBdID4+IDIpOworCQkJCQkqZHN0KysgPSAoc3JjWzBdIDw8IDYpIHwgQklUKDUpIHwgKHNyY1szXSA+PiAzKTsKKwkJCQkJKmRzdCsrID0gKHNyY1szXSA8PCA1KSB8IEJJVCg0KSB8IChzcmNbMl0gPj4gNCk7CisJCQkJCSpkc3QrKyA9IChzcmNbMl0gPDwgNCkgfCBCSVQoMykgfCAoc3JjWzVdID4+IDUpOworCQkJCQkqZHN0KysgPSAoc3JjWzVdIDw8IDMpIHwgQklUKDIpIHwgKHNyY1s0XSA+PiA2KTsKKwkJCQkJKmRzdCsrID0gKHNyY1s0XSA8PCAyKSB8IEJJVCgxKSB8IChzcmNbN10gPj4gNyk7CisJCQkJCSpkc3QrKyA9IChzcmNbN10gPDwgMSkgfCBCSVQoMCk7CisJCQkJCSpkc3QrKyA9IHNyY1s2XTsKKwkJCQl9IGVsc2UgeworCQkJCQkqZHN0KysgPSAgICAgICAgICAgICAgICAgQklUKDcpIHwgKHNyY1swXSA+PiAxKTsKKwkJCQkJKmRzdCsrID0gKHNyY1swXSA8PCA3KSB8IEJJVCg2KSB8IChzcmNbMV0gPj4gMik7CisJCQkJCSpkc3QrKyA9IChzcmNbMV0gPDwgNikgfCBCSVQoNSkgfCAoc3JjWzJdID4+IDMpOworCQkJCQkqZHN0KysgPSAoc3JjWzJdIDw8IDUpIHwgQklUKDQpIHwgKHNyY1szXSA+PiA0KTsKKwkJCQkJKmRzdCsrID0gKHNyY1szXSA8PCA0KSB8IEJJVCgzKSB8IChzcmNbNF0gPj4gNSk7CisJCQkJCSpkc3QrKyA9IChzcmNbNF0gPDwgMykgfCBCSVQoMikgfCAoc3JjWzVdID4+IDYpOworCQkJCQkqZHN0KysgPSAoc3JjWzVdIDw8IDIpIHwgQklUKDEpIHwgKHNyY1s2XSA+PiA3KTsKKwkJCQkJKmRzdCsrID0gKHNyY1s2XSA8PCAxKSB8IEJJVCgwKTsKKwkJCQkJKmRzdCsrID0gc3JjWzddOworCQkJCX0KKworCQkJCXNyYyArPSA4OworCQkJCWFkZGVkKys7CisJCQl9CisJCX0KKworCQl0ci5sZW4gPSBjaHVuayArIGFkZGVkOworCisJCXJldCA9IHNwaV9zeW5jKHNwaSwgJm0pOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBtaXBpX2RiaV9zcGkxX3RyYW5zZmVyKHN0cnVjdCBtaXBpX2RiaSAqZGJpLCBpbnQgZGMsCisJCQkJICBjb25zdCB2b2lkICpidWYsIHNpemVfdCBsZW4sCisJCQkJICB1bnNpZ25lZCBpbnQgYnB3KQoreworCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBkYmktPnNwaTsKKwlzdHJ1Y3Qgc3BpX3RyYW5zZmVyIHRyID0geworCQkuYml0c19wZXJfd29yZCA9IDksCisJfTsKKwljb25zdCB1MTYgKnNyYzE2ID0gYnVmOworCWNvbnN0IHU4ICpzcmM4ID0gYnVmOworCXN0cnVjdCBzcGlfbWVzc2FnZSBtOworCXNpemVfdCBtYXhfY2h1bms7CisJdTE2ICpkc3QxNjsKKwlpbnQgcmV0OworCisJaWYgKCFzcGlfaXNfYnB3X3N1cHBvcnRlZChzcGksIDkpKQorCQlyZXR1cm4gbWlwaV9kYmlfc3BpMWVfdHJhbnNmZXIoZGJpLCBkYywgYnVmLCBsZW4sIGJwdyk7CisKKwl0ci5zcGVlZF9oeiA9IG1pcGlfZGJpX3NwaV9jbWRfbWF4X3NwZWVkKHNwaSwgbGVuKTsKKwltYXhfY2h1bmsgPSBkYmktPnR4X2J1ZjlfbGVuOworCWRzdDE2ID0gZGJpLT50eF9idWY5OworCisJaWYgKGRybV9kZWJ1ZyAmIERSTV9VVF9EUklWRVIpCisJCXByX2RlYnVnKCJbZHJtOiVzXSBkYz0lZCwgbWF4X2NodW5rPSV6dSwgdHJhbnNmZXJzOlxuIiwKKwkJCSBfX2Z1bmNfXywgZGMsIG1heF9jaHVuayk7CisKKwltYXhfY2h1bmsgPSBtaW4obWF4X2NodW5rIC8gMiwgbGVuKTsKKworCXNwaV9tZXNzYWdlX2luaXRfd2l0aF90cmFuc2ZlcnMoJm0sICZ0ciwgMSk7CisJdHIudHhfYnVmID0gZHN0MTY7CisKKwl3aGlsZSAobGVuKSB7CisJCXNpemVfdCBjaHVuayA9IG1pbihsZW4sIG1heF9jaHVuayk7CisJCXVuc2lnbmVkIGludCBpOworCisJCWlmIChicHcgPT0gMTYgJiYgbWlwaV9kYmlfbWFjaGluZV9saXR0bGVfZW5kaWFuKCkpIHsKKwkJCWZvciAoaSA9IDA7IGkgPCAoY2h1bmsgKiAyKTsgaSArPSAyKSB7CisJCQkJZHN0MTZbaV0gICAgID0gKnNyYzE2ID4+IDg7CisJCQkJZHN0MTZbaSArIDFdID0gKnNyYzE2KysgJiAweEZGOworCQkJCWlmIChkYykgeworCQkJCQlkc3QxNltpXSAgICAgfD0gMHgwMTAwOworCQkJCQlkc3QxNltpICsgMV0gfD0gMHgwMTAwOworCQkJCX0KKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWZvciAoaSA9IDA7IGkgPCBjaHVuazsgaSsrKSB7CisJCQkJZHN0MTZbaV0gPSAqc3JjOCsrOworCQkJCWlmIChkYykKKwkJCQkJZHN0MTZbaV0gfD0gMHgwMTAwOworCQkJfQorCQl9CisKKwkJdHIubGVuID0gY2h1bms7CisJCWxlbiAtPSBjaHVuazsKKworCQlyZXQgPSBzcGlfc3luYyhzcGksICZtKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbWlwaV9kYmlfdHlwZWMxX2NvbW1hbmQoc3RydWN0IG1pcGlfZGJpICpkYmksIHU4ICpjbWQsCisJCQkJICAgdTggKnBhcmFtZXRlcnMsIHNpemVfdCBudW0pCit7CisJdW5zaWduZWQgaW50IGJwdyA9ICgqY21kID09IE1JUElfRENTX1dSSVRFX01FTU9SWV9TVEFSVCkgPyAxNiA6IDg7CisJaW50IHJldDsKKworCWlmIChtaXBpX2RiaV9jb21tYW5kX2lzX3JlYWQoZGJpLCAqY21kKSkKKwkJcmV0dXJuIC1FTk9UU1VQUDsKKworCU1JUElfREJJX0RFQlVHX0NPTU1BTkQoKmNtZCwgcGFyYW1ldGVycywgbnVtKTsKKworCXJldCA9IG1pcGlfZGJpX3NwaTFfdHJhbnNmZXIoZGJpLCAwLCBjbWQsIDEsIDgpOworCWlmIChyZXQgfHwgIW51bSkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiBtaXBpX2RiaV9zcGkxX3RyYW5zZmVyKGRiaSwgMSwgcGFyYW1ldGVycywgbnVtLCBicHcpOworfQorCisvKiBNSVBJIERCSSBUeXBlIEMgT3B0aW9uIDMgKi8KKworc3RhdGljIGludCBtaXBpX2RiaV90eXBlYzNfY29tbWFuZF9yZWFkKHN0cnVjdCBtaXBpX2RiaSAqZGJpLCB1OCAqY21kLAorCQkJCQl1OCAqZGF0YSwgc2l6ZV90IGxlbikKK3sKKwlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gZGJpLT5zcGk7CisJdTMyIHNwZWVkX2h6ID0gbWluX3QodTMyLCBNSVBJX0RCSV9NQVhfU1BJX1JFQURfU1BFRUQsCisJCQkgICAgIHNwaS0+bWF4X3NwZWVkX2h6IC8gMik7CisJc3RydWN0IHNwaV90cmFuc2ZlciB0clsyXSA9IHsKKwkJeworCQkJLnNwZWVkX2h6ID0gc3BlZWRfaHosCisJCQkudHhfYnVmID0gY21kLAorCQkJLmxlbiA9IDEsCisJCX0sIHsKKwkJCS5zcGVlZF9oeiA9IHNwZWVkX2h6LAorCQkJLmxlbiA9IGxlbiwKKwkJfSwKKwl9OworCXN0cnVjdCBzcGlfbWVzc2FnZSBtOworCXU4ICpidWY7CisJaW50IHJldDsKKworCWlmICghbGVuKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qCisJICogU3VwcG9ydCBub24tc3RhbmRhcmQgMjQtYml0IGFuZCAzMi1iaXQgTm9raWEgcmVhZCBjb21tYW5kcyB3aGljaAorCSAqIHN0YXJ0IHdpdGggYSBkdW1teSBjbG9jaywgc28gd2UgbmVlZCB0byByZWFkIGFuIGV4dHJhIGJ5dGUuCisJICovCisJaWYgKCpjbWQgPT0gTUlQSV9EQ1NfR0VUX0RJU1BMQVlfSUQgfHwKKwkgICAgKmNtZCA9PSBNSVBJX0RDU19HRVRfRElTUExBWV9TVEFUVVMpIHsKKwkJaWYgKCEobGVuID09IDMgfHwgbGVuID09IDQpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJdHJbMV0ubGVuID0gbGVuICsgMTsKKwl9CisKKwlidWYgPSBrbWFsbG9jKHRyWzFdLmxlbiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFidWYpCisJCXJldHVybiAtRU5PTUVNOworCisJdHJbMV0ucnhfYnVmID0gYnVmOworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChkYmktPmRjLCAwKTsKKworCXNwaV9tZXNzYWdlX2luaXRfd2l0aF90cmFuc2ZlcnMoJm0sIHRyLCBBUlJBWV9TSVpFKHRyKSk7CisJcmV0ID0gc3BpX3N5bmMoc3BpLCAmbSk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfZnJlZTsKKworCWlmICh0clsxXS5sZW4gPT0gbGVuKSB7CisJCW1lbWNweShkYXRhLCBidWYsIGxlbik7CisJfSBlbHNlIHsKKwkJdW5zaWduZWQgaW50IGk7CisKKwkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQorCQkJZGF0YVtpXSA9IChidWZbaV0gPDwgMSkgfCAhIShidWZbaSArIDFdICYgQklUKDcpKTsKKwl9CisKKwlNSVBJX0RCSV9ERUJVR19DT01NQU5EKCpjbWQsIGRhdGEsIGxlbik7CisKK2Vycl9mcmVlOgorCWtmcmVlKGJ1Zik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IG1pcGlfZGJpX3R5cGVjM19jb21tYW5kKHN0cnVjdCBtaXBpX2RiaSAqZGJpLCB1OCAqY21kLAorCQkJCSAgIHU4ICpwYXIsIHNpemVfdCBudW0pCit7CisJc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IGRiaS0+c3BpOworCXVuc2lnbmVkIGludCBicHcgPSA4OworCXUzMiBzcGVlZF9oejsKKwlpbnQgcmV0OworCisJaWYgKG1pcGlfZGJpX2NvbW1hbmRfaXNfcmVhZChkYmksICpjbWQpKQorCQlyZXR1cm4gbWlwaV9kYmlfdHlwZWMzX2NvbW1hbmRfcmVhZChkYmksIGNtZCwgcGFyLCBudW0pOworCisJTUlQSV9EQklfREVCVUdfQ09NTUFORCgqY21kLCBwYXIsIG51bSk7CisKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZGJpLT5kYywgMCk7CisJc3BlZWRfaHogPSBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZChzcGksIDEpOworCXJldCA9IG1pcGlfZGJpX3NwaV90cmFuc2ZlcihzcGksIHNwZWVkX2h6LCA4LCBjbWQsIDEpOworCWlmIChyZXQgfHwgIW51bSkKKwkJcmV0dXJuIHJldDsKKworCWlmICgqY21kID09IE1JUElfRENTX1dSSVRFX01FTU9SWV9TVEFSVCAmJiAhZGJpLT5zd2FwX2J5dGVzKQorCQlicHcgPSAxNjsKKworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChkYmktPmRjLCAxKTsKKwlzcGVlZF9oeiA9IG1pcGlfZGJpX3NwaV9jbWRfbWF4X3NwZWVkKHNwaSwgbnVtKTsKKworCXJldHVybiBtaXBpX2RiaV9zcGlfdHJhbnNmZXIoc3BpLCBzcGVlZF9oeiwgYnB3LCBwYXIsIG51bSk7Cit9CisKKy8qKgorICogbWlwaV9kYmlfc3BpX2luaXQgLSBJbml0aWFsaXplIE1JUEkgREJJIFNQSSBpbnRlcmZhY2UKKyAqIEBzcGk6IFNQSSBkZXZpY2UKKyAqIEBkYmk6IE1JUEkgREJJIHN0cnVjdHVyZSB0byBpbml0aWFsaXplCisgKiBAZGM6IEQvQyBncGlvIChvcHRpb25hbCkKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHNldHMgJm1pcGlfZGJpLT5jb21tYW5kLCBlbmFibGVzICZtaXBpX2RiaS0+cmVhZF9jb21tYW5kcyBmb3IgdGhlCisgKiB1c3VhbCByZWFkIGNvbW1hbmRzLiBJdCBzaG91bGQgYmUgZm9sbG93ZWQgYnkgYSBjYWxsIHRvIG1pcGlfZGJpX2Rldl9pbml0KCkgb3IKKyAqIGEgZHJpdmVyLXNwZWNpZmljIGluaXQuCisgKgorICogSWYgQGRjIGlzIHNldCwgYSBUeXBlIEMgT3B0aW9uIDMgaW50ZXJmYWNlIGlzIGFzc3VtZWQsIGlmIG5vdAorICogVHlwZSBDIE9wdGlvbiAxLgorICoKKyAqIElmIHRoZSBTUEkgbWFzdGVyIGRyaXZlciBkb2Vzbid0IHN1cHBvcnQgdGhlIG5lY2Vzc2FyeSBiaXRzIHBlciB3b3JkLAorICogdGhlIGZvbGxvd2luZyB0cmFuc2Zvcm1hdGlvbiBpcyB1c2VkOgorICoKKyAqIC0gOS1iaXQ6IHJlb3JkZXIgYnVmZmVyIGFzIDl4IDgtYml0IHdvcmRzLCBwYWRkZWQgd2l0aCBuby1vcCBjb21tYW5kLgorICogLSAxNi1iaXQ6IGlmIGJpZyBlbmRpYW4gc2VuZCBhcyA4LWJpdCwgaWYgbGl0dGxlIGVuZGlhbiBzd2FwIGJ5dGVzCisgKgorICogUmV0dXJuczoKKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWlwaV9kYmlfc3BpX2luaXQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IG1pcGlfZGJpICpkYmksCisJCSAgICAgIHN0cnVjdCBncGlvX2Rlc2MgKmRjKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsKKwlpbnQgcmV0OworCisJLyoKKwkgKiBFdmVuIHRob3VnaCBpdCdzIG5vdCB0aGUgU1BJIGRldmljZSB0aGF0IGRvZXMgRE1BICh0aGUgbWFzdGVyIGRvZXMpLAorCSAqIHRoZSBkbWEgbWFzayBpcyBuZWNlc3NhcnkgZm9yIHRoZSBkbWFfYWxsb2Nfd2MoKSBpbgorCSAqIGRybV9nZW1fY21hX2NyZWF0ZSgpLiBUaGUgZG1hX2FkZHIgcmV0dXJuZWQgd2lsbCBiZSBhIHBoeXNpY2FsCisJICogYWRkcmVzcyB3aGljaCBtaWdodCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgYnVzIGFkZHJlc3MsIGJ1dCB0aGlzIGlzCisJICogbm90IGEgcHJvYmxlbSBzaW5jZSB0aGUgYWRkcmVzcyB3aWxsIG5vdCBiZSB1c2VkLgorCSAqIFRoZSB2aXJ0dWFsIGFkZHJlc3MgaXMgdXNlZCBpbiB0aGUgdHJhbnNmZXIgYW5kIHRoZSBTUEkgY29yZQorCSAqIHJlLW1hcHMgaXQgb24gdGhlIFNQSSBtYXN0ZXIgZGV2aWNlIHVzaW5nIHRoZSBETUEgc3RyZWFtaW5nIEFQSQorCSAqIChzcGlfbWFwX2J1ZigpKS4KKwkgKi8KKwlpZiAoIWRldi0+Y29oZXJlbnRfZG1hX21hc2spIHsKKwkJcmV0ID0gZG1hX2NvZXJjZV9tYXNrX2FuZF9jb2hlcmVudChkZXYsIERNQV9CSVRfTUFTSygzMikpOworCQlpZiAocmV0KSB7CisJCQlkZXZfd2FybihkZXYsICJGYWlsZWQgdG8gc2V0IGRtYSBtYXNrICVkXG4iLCByZXQpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCWRiaS0+c3BpID0gc3BpOworCWRiaS0+cmVhZF9jb21tYW5kcyA9IG1pcGlfZGJpX2Rjc19yZWFkX2NvbW1hbmRzOworCisJaWYgKGRjKSB7CisJCWRiaS0+Y29tbWFuZCA9IG1pcGlfZGJpX3R5cGVjM19jb21tYW5kOworCQlkYmktPmRjID0gZGM7CisJCWlmIChtaXBpX2RiaV9tYWNoaW5lX2xpdHRsZV9lbmRpYW4oKSAmJiAhc3BpX2lzX2Jwd19zdXBwb3J0ZWQoc3BpLCAxNikpCisJCQlkYmktPnN3YXBfYnl0ZXMgPSB0cnVlOworCX0gZWxzZSB7CisJCWRiaS0+Y29tbWFuZCA9IG1pcGlfZGJpX3R5cGVjMV9jb21tYW5kOworCQlkYmktPnR4X2J1ZjlfbGVuID0gU1pfMTZLOworCQlkYmktPnR4X2J1ZjkgPSBkZXZtX2ttYWxsb2MoZGV2LCBkYmktPnR4X2J1ZjlfbGVuLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFkYmktPnR4X2J1ZjkpCisJCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwltdXRleF9pbml0KCZkYmktPmNtZGxvY2spOworCisJRFJNX0RFQlVHX0RSSVZFUigiU1BJIHNwZWVkOiAldU1IelxuIiwgc3BpLT5tYXhfc3BlZWRfaHogLyAxMDAwMDAwKTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9zcGlfaW5pdCk7CisKKy8qKgorICogbWlwaV9kYmlfc3BpX3RyYW5zZmVyIC0gU1BJIHRyYW5zZmVyIGhlbHBlcgorICogQHNwaTogU1BJIGRldmljZQorICogQHNwZWVkX2h6OiBPdmVycmlkZSBzcGVlZCAob3B0aW9uYWwpCisgKiBAYnB3OiBCaXRzIHBlciB3b3JkCisgKiBAYnVmOiBCdWZmZXIgdG8gdHJhbnNmZXIKKyAqIEBsZW46IEJ1ZmZlciBsZW5ndGgKKyAqCisgKiBUaGlzIFNQSSB0cmFuc2ZlciBoZWxwZXIgYnJlYWtzIHVwIHRoZSB0cmFuc2ZlciBvZiBAYnVmIGludG8gY2h1bmtzIHdoaWNoCisgKiB0aGUgU1BJIGNvbnRyb2xsZXIgZHJpdmVyIGNhbiBoYW5kbGUuCisgKgorICogUmV0dXJuczoKKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWlwaV9kYmlfc3BpX3RyYW5zZmVyKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHUzMiBzcGVlZF9oeiwKKwkJCSAgdTggYnB3LCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBsZW4pCit7CisJc2l6ZV90IG1heF9jaHVuayA9IHNwaV9tYXhfdHJhbnNmZXJfc2l6ZShzcGkpOworCXN0cnVjdCBzcGlfdHJhbnNmZXIgdHIgPSB7CisJCS5iaXRzX3Blcl93b3JkID0gYnB3LAorCQkuc3BlZWRfaHogPSBzcGVlZF9oeiwKKwl9OworCXN0cnVjdCBzcGlfbWVzc2FnZSBtOworCXNpemVfdCBjaHVuazsKKwlpbnQgcmV0OworCisJc3BpX21lc3NhZ2VfaW5pdF93aXRoX3RyYW5zZmVycygmbSwgJnRyLCAxKTsKKworCXdoaWxlIChsZW4pIHsKKwkJY2h1bmsgPSBtaW4obGVuLCBtYXhfY2h1bmspOworCisJCXRyLnR4X2J1ZiA9IGJ1ZjsKKwkJdHIubGVuID0gY2h1bms7CisJCWJ1ZiArPSBjaHVuazsKKwkJbGVuIC09IGNodW5rOworCisJCXJldCA9IHNwaV9zeW5jKHNwaSwgJm0pOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kYmlfc3BpX3RyYW5zZmVyKTsKKworI2VuZGlmIC8qIENPTkZJR19TUEkgKi8KKworI2lmZGVmIENPTkZJR19ERUJVR19GUworCitzdGF0aWMgc3NpemVfdCBtaXBpX2RiaV9kZWJ1Z2ZzX2NvbW1hbmRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCisJCQkJCSAgICAgIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAorCQkJCQkgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKK3sKKwlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2ID0gbS0+cHJpdmF0ZTsKKwl1OCB2YWwsIGNtZCA9IDAsIHBhcmFtZXRlcnNbNjRdOworCWNoYXIgKmJ1ZiwgKnBvcywgKnRva2VuOworCXVuc2lnbmVkIGludCBpOworCWludCByZXQsIGlkeDsKKworCWlmICghZHJtX2Rldl9lbnRlcigmZGJpZGV2LT5kcm0sICZpZHgpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWJ1ZiA9IG1lbWR1cF91c2VyX251bCh1YnVmLCBjb3VudCk7CisJaWYgKElTX0VSUihidWYpKSB7CisJCXJldCA9IFBUUl9FUlIoYnVmKTsKKwkJZ290byBlcnJfZXhpdDsKKwl9CisKKwkvKiBzdHJpcCB0cmFpbGluZyB3aGl0ZXNwYWNlICovCisJZm9yIChpID0gY291bnQgLSAxOyBpID4gMDsgaS0tKQorCQlpZiAoaXNzcGFjZShidWZbaV0pKQorCQkJYnVmW2ldID0gJ1wwJzsKKwkJZWxzZQorCQkJYnJlYWs7CisJaSA9IDA7CisJcG9zID0gYnVmOworCXdoaWxlIChwb3MpIHsKKwkJdG9rZW4gPSBzdHJzZXAoJnBvcywgIiAiKTsKKwkJaWYgKCF0b2tlbikgeworCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyX2ZyZWU7CisJCX0KKworCQlyZXQgPSBrc3RydG91OCh0b2tlbiwgMTYsICZ2YWwpOworCQlpZiAocmV0IDwgMCkKKwkJCWdvdG8gZXJyX2ZyZWU7CisKKwkJaWYgKHRva2VuID09IGJ1ZikKKwkJCWNtZCA9IHZhbDsKKwkJZWxzZQorCQkJcGFyYW1ldGVyc1tpKytdID0gdmFsOworCisJCWlmIChpID09IDY0KSB7CisJCQlyZXQgPSAtRTJCSUc7CisJCQlnb3RvIGVycl9mcmVlOworCQl9CisJfQorCisJcmV0ID0gbWlwaV9kYmlfY29tbWFuZF9idWYoJmRiaWRldi0+ZGJpLCBjbWQsIHBhcmFtZXRlcnMsIGkpOworCitlcnJfZnJlZToKKwlrZnJlZShidWYpOworZXJyX2V4aXQ6CisJZHJtX2Rldl9leGl0KGlkeCk7CisKKwlyZXR1cm4gcmV0IDwgMCA/IHJldCA6IGNvdW50OworfQorCitzdGF0aWMgaW50IG1pcGlfZGJpX2RlYnVnZnNfY29tbWFuZF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQoreworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiA9IG0tPnByaXZhdGU7CisJc3RydWN0IG1pcGlfZGJpICpkYmkgPSAmZGJpZGV2LT5kYmk7CisJdTggY21kLCB2YWxbNF07CisJaW50IHJldCwgaWR4OworCXNpemVfdCBsZW47CisKKwlpZiAoIWRybV9kZXZfZW50ZXIoJmRiaWRldi0+ZHJtLCAmaWR4KSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlmb3IgKGNtZCA9IDA7IGNtZCA8IDI1NTsgY21kKyspIHsKKwkJaWYgKCFtaXBpX2RiaV9jb21tYW5kX2lzX3JlYWQoZGJpLCBjbWQpKQorCQkJY29udGludWU7CisKKwkJc3dpdGNoIChjbWQpIHsKKwkJY2FzZSBNSVBJX0RDU19SRUFEX01FTU9SWV9TVEFSVDoKKwkJY2FzZSBNSVBJX0RDU19SRUFEX01FTU9SWV9DT05USU5VRToKKwkJCWxlbiA9IDI7CisJCQlicmVhazsKKwkJY2FzZSBNSVBJX0RDU19HRVRfRElTUExBWV9JRDoKKwkJCWxlbiA9IDM7CisJCQlicmVhazsKKwkJY2FzZSBNSVBJX0RDU19HRVRfRElTUExBWV9TVEFUVVM6CisJCQlsZW4gPSA0OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlsZW4gPSAxOworCQkJYnJlYWs7CisJCX0KKworCQlzZXFfcHJpbnRmKG0sICIlMDJ4OiAiLCBjbWQpOworCQlyZXQgPSBtaXBpX2RiaV9jb21tYW5kX2J1ZihkYmksIGNtZCwgdmFsLCBsZW4pOworCQlpZiAocmV0KSB7CisJCQlzZXFfcHV0cyhtLCAiWFhcbiIpOworCQkJY29udGludWU7CisJCX0KKwkJc2VxX3ByaW50ZihtLCAiJSpwaE5cbiIsIChpbnQpbGVuLCB2YWwpOworCX0KKworCWRybV9kZXZfZXhpdChpZHgpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbWlwaV9kYmlfZGVidWdmc19jb21tYW5kX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwKKwkJCQkJIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBtaXBpX2RiaV9kZWJ1Z2ZzX2NvbW1hbmRfc2hvdywKKwkJCSAgIGlub2RlLT5pX3ByaXZhdGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtaXBpX2RiaV9kZWJ1Z2ZzX2NvbW1hbmRfZm9wcyA9IHsKKwkub3duZXIgPSBUSElTX01PRFVMRSwKKwkub3BlbiA9IG1pcGlfZGJpX2RlYnVnZnNfY29tbWFuZF9vcGVuLAorCS5yZWFkID0gc2VxX3JlYWQsCisJLmxsc2VlayA9IHNlcV9sc2VlaywKKwkucmVsZWFzZSA9IHNpbmdsZV9yZWxlYXNlLAorCS53cml0ZSA9IG1pcGlfZGJpX2RlYnVnZnNfY29tbWFuZF93cml0ZSwKK307CisKKy8qKgorICogbWlwaV9kYmlfZGVidWdmc19pbml0IC0gQ3JlYXRlIGRlYnVnZnMgZW50cmllcworICogQG1pbm9yOiBEUk0gbWlub3IKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSAnY29tbWFuZCcgZGVidWdmcyBmaWxlIGZvciBzZW5kaW5nIGNvbW1hbmRzIHRvIHRoZQorICogY29udHJvbGxlciBvciBnZXR0aW5nIHRoZSByZWFkIGNvbW1hbmQgdmFsdWVzLgorICogRHJpdmVycyBjYW4gdXNlIHRoaXMgYXMgdGhlaXIgJmRybV9kcml2ZXItPmRlYnVnZnNfaW5pdCBjYWxsYmFjay4KKyAqCisgKiBSZXR1cm5zOgorICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtaXBpX2RiaV9kZWJ1Z2ZzX2luaXQoc3RydWN0IGRybV9taW5vciAqbWlub3IpCit7CisJc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2ID0gZHJtX3RvX21pcGlfZGJpX2RldihtaW5vci0+ZGV2KTsKKwl1bW9kZV90IG1vZGUgPSBTX0lGUkVHIHwgU19JV1VTUjsKKworCWlmIChkYmlkZXYtPmRiaS5yZWFkX2NvbW1hbmRzKQorCQltb2RlIHw9IFNfSVJVR087CisJZGVidWdmc19jcmVhdGVfZmlsZSgiY29tbWFuZCIsIG1vZGUsIG1pbm9yLT5kZWJ1Z2ZzX3Jvb3QsIGRiaWRldiwKKwkJCSAgICAmbWlwaV9kYmlfZGVidWdmc19jb21tYW5kX2ZvcHMpOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2RlYnVnZnNfaW5pdCk7CisKKyNlbmRpZgorCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21tLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21tLmMKaW5kZXggOWE1OTg2NS4uNDU4MWM1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYwpAQCAtNDcyLDcgKzQ3Miw3IEBAIGludCBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2Uoc3RydWN0IGRybV9tbSAqIGNvbnN0IG1tLAogCXU2NCByZW1haW5kZXJfbWFzazsKIAlib29sIG9uY2U7CiAKLQlEUk1fTU1fQlVHX09OKHJhbmdlX3N0YXJ0ID49IHJhbmdlX2VuZCk7CisJRFJNX01NX0JVR19PTihyYW5nZV9zdGFydCA+IHJhbmdlX2VuZCk7CiAKIAlpZiAodW5saWtlbHkoc2l6ZSA9PSAwIHx8IHJhbmdlX2VuZCAtIHJhbmdlX3N0YXJ0IDwgc2l6ZSkpCiAJCXJldHVybiAtRU5PU1BDOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX29iamVjdC5jCmluZGV4IDFjNmU1MTEuLjZhMjNlMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfb2JqZWN0LmMKQEAgLTQyLDYgKzQyLDggQEAgaW50IF9fZHJtX21vZGVfb2JqZWN0X2FkZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosCiB7CiAJaW50IHJldDsKIAorCVdBUk5fT04oIWRldi0+ZHJpdmVyLT5sb2FkICYmIGRldi0+cmVnaXN0ZXJlZCAmJiAhb2JqX2ZyZWVfY2IpOworCiAJbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5pZHJfbXV0ZXgpOwogCXJldCA9IGlkcl9hbGxvYygmZGV2LT5tb2RlX2NvbmZpZy5vYmplY3RfaWRyLCByZWdpc3Rlcl9vYmogPyBvYmogOiBOVUxMLAogCQkJMSwgMCwgR0ZQX0tFUk5FTCk7CkBAIC0xMDIsNiArMTA0LDggQEAgdm9pZCBkcm1fbW9kZV9vYmplY3RfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIHZvaWQgZHJtX21vZGVfb2JqZWN0X3VucmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmplY3QpCiB7CisJV0FSTl9PTighZGV2LT5kcml2ZXItPmxvYWQgJiYgZGV2LT5yZWdpc3RlcmVkICYmICFvYmplY3QtPmZyZWVfY2IpOworCiAJbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5pZHJfbXV0ZXgpOwogCWlmIChvYmplY3QtPmlkKSB7CiAJCWlkcl9yZW1vdmUoJmRldi0+bW9kZV9jb25maWcub2JqZWN0X2lkciwgb2JqZWN0LT5pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMKaW5kZXggYzgxNGJjZS4uODgyMzI2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwpAQCAtMTk1Niw4ICsxOTU2LDExIEBAIHZvaWQgZHJtX21vZGVfY29udmVydF90b191bW9kZShzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gKm91dCwKIAljYXNlIEhETUlfUElDVFVSRV9BU1BFQ1RfMjU2XzEzNToKIAkJb3V0LT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX1BJQ19BUl8yNTZfMTM1OwogCQlicmVhazsKLQljYXNlIEhETUlfUElDVFVSRV9BU1BFQ1RfUkVTRVJWRUQ6CiAJZGVmYXVsdDoKKwkJV0FSTigxLCAiSW52YWxpZCBhc3BlY3QgcmF0aW8gKDAleCkgb24gbW9kZVxuIiwKKwkJICAgICBpbi0+cGljdHVyZV9hc3BlY3RfcmF0aW8pOworCQkvKiBmYWxsIHRocm91Z2ggKi8KKwljYXNlIEhETUlfUElDVFVSRV9BU1BFQ1RfTk9ORToKIAkJb3V0LT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX1BJQ19BUl9OT05FOwogCQlicmVhazsKIAl9CkBAIC0yMDE2LDIwICsyMDE5LDIyIEBAIGludCBkcm1fbW9kZV9jb252ZXJ0X3Vtb2RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlzd2l0Y2ggKGluLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUElDX0FSX01BU0spIHsKIAljYXNlIERSTV9NT0RFX0ZMQUdfUElDX0FSXzRfMzoKLQkJb3V0LT5waWN0dXJlX2FzcGVjdF9yYXRpbyB8PSBIRE1JX1BJQ1RVUkVfQVNQRUNUXzRfMzsKKwkJb3V0LT5waWN0dXJlX2FzcGVjdF9yYXRpbyA9IEhETUlfUElDVFVSRV9BU1BFQ1RfNF8zOwogCQlicmVhazsKIAljYXNlIERSTV9NT0RFX0ZMQUdfUElDX0FSXzE2Xzk6Ci0JCW91dC0+cGljdHVyZV9hc3BlY3RfcmF0aW8gfD0gSERNSV9QSUNUVVJFX0FTUEVDVF8xNl85OworCQlvdXQtPnBpY3R1cmVfYXNwZWN0X3JhdGlvID0gSERNSV9QSUNUVVJFX0FTUEVDVF8xNl85OwogCQlicmVhazsKIAljYXNlIERSTV9NT0RFX0ZMQUdfUElDX0FSXzY0XzI3OgotCQlvdXQtPnBpY3R1cmVfYXNwZWN0X3JhdGlvIHw9IEhETUlfUElDVFVSRV9BU1BFQ1RfNjRfMjc7CisJCW91dC0+cGljdHVyZV9hc3BlY3RfcmF0aW8gPSBIRE1JX1BJQ1RVUkVfQVNQRUNUXzY0XzI3OwogCQlicmVhazsKIAljYXNlIERSTV9NT0RFX0ZMQUdfUElDX0FSXzI1Nl8xMzU6Ci0JCW91dC0+cGljdHVyZV9hc3BlY3RfcmF0aW8gfD0gSERNSV9QSUNUVVJFX0FTUEVDVF8yNTZfMTM1OworCQlvdXQtPnBpY3R1cmVfYXNwZWN0X3JhdGlvID0gSERNSV9QSUNUVVJFX0FTUEVDVF8yNTZfMTM1OwogCQlicmVhazsKLQlkZWZhdWx0OgorCWNhc2UgRFJNX01PREVfRkxBR19QSUNfQVJfTk9ORToKIAkJb3V0LT5waWN0dXJlX2FzcGVjdF9yYXRpbyA9IEhETUlfUElDVFVSRV9BU1BFQ1RfTk9ORTsKIAkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJb3V0LT5zdGF0dXMgPSBkcm1fbW9kZV92YWxpZGF0ZV9kcml2ZXIoZGV2LCBvdXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCmluZGV4IGRiZDViODcuLjZiMGJmNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMKQEAgLTEyMywxOCArMTIzLDExMCBAQCBFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9hdHRhY2gpOwogICoKICAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBjYWxsZWQgYnkgdGhlIHBhbmVsIGRldmljZSBpdHNlbGYuIEl0CiAgKiBpcyBvbmx5IGZvciB0aGUgZHJtIGRldmljZSB0aGF0IGNhbGxlZCBkcm1fcGFuZWxfYXR0YWNoKCkuCi0gKgotICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KLWludCBkcm1fcGFuZWxfZGV0YWNoKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQordm9pZCBkcm1fcGFuZWxfZGV0YWNoKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogewogCXBhbmVsLT5jb25uZWN0b3IgPSBOVUxMOwogCXBhbmVsLT5kcm0gPSBOVUxMOwotCi0JcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9kZXRhY2gpOwogCisvKioKKyAqIGRybV9wYW5lbF9wcmVwYXJlIC0gcG93ZXIgb24gYSBwYW5lbAorICogQHBhbmVsOiBEUk0gcGFuZWwKKyAqCisgKiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbCBlbmFibGUgcG93ZXIgYW5kIGRlYXNzZXJ0IGFueSByZXNldCBzaWduYWxzIHRvCisgKiB0aGUgcGFuZWwuIEFmdGVyIHRoaXMgaGFzIGNvbXBsZXRlZCBpdCBpcyBwb3NzaWJsZSB0byBjb21tdW5pY2F0ZSB3aXRoIGFueQorICogaW50ZWdyYXRlZCBjaXJjdWl0cnkgdmlhIGEgY29tbWFuZCBidXMuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fcGFuZWxfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+cHJlcGFyZSkKKwkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+cHJlcGFyZShwYW5lbCk7CisKKwlyZXR1cm4gcGFuZWwgPyAtRU5PU1lTIDogLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3BhbmVsX3ByZXBhcmUpOworCisvKioKKyAqIGRybV9wYW5lbF91bnByZXBhcmUgLSBwb3dlciBvZmYgYSBwYW5lbAorICogQHBhbmVsOiBEUk0gcGFuZWwKKyAqCisgKiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbCBjb21wbGV0ZWx5IHBvd2VyIG9mZiBhIHBhbmVsIChhc3NlcnQgdGhlIHBhbmVsJ3MKKyAqIHJlc2V0LCB0dXJuIG9mZiBwb3dlciBzdXBwbGllcywgLi4uKS4gQWZ0ZXIgdGhpcyBmdW5jdGlvbiBoYXMgY29tcGxldGVkLCBpdAorICogaXMgdXN1YWxseSBubyBsb25nZXIgcG9zc2libGUgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgcGFuZWwgdW50aWwgYW5vdGhlcgorICogY2FsbCB0byBkcm1fcGFuZWxfcHJlcGFyZSgpLgorICoKKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX3BhbmVsX3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+dW5wcmVwYXJlKQorCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT51bnByZXBhcmUocGFuZWwpOworCisJcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF91bnByZXBhcmUpOworCisvKioKKyAqIGRybV9wYW5lbF9lbmFibGUgLSBlbmFibGUgYSBwYW5lbAorICogQHBhbmVsOiBEUk0gcGFuZWwKKyAqCisgKiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbCBjYXVzZSB0aGUgcGFuZWwgZGlzcGxheSBkcml2ZXJzIHRvIGJlIHR1cm5lZCBvbgorICogYW5kIHRoZSBiYWNrbGlnaHQgdG8gYmUgZW5hYmxlZC4gQ29udGVudCB3aWxsIGJlIHZpc2libGUgb24gc2NyZWVuIGFmdGVyCisgKiB0aGlzIGNhbGwgY29tcGxldGVzLgorICoKKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+ZW5hYmxlKQorCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT5lbmFibGUocGFuZWwpOworCisJcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9lbmFibGUpOworCisvKioKKyAqIGRybV9wYW5lbF9kaXNhYmxlIC0gZGlzYWJsZSBhIHBhbmVsCisgKiBAcGFuZWw6IERSTSBwYW5lbAorICoKKyAqIFRoaXMgd2lsbCB0eXBpY2FsbHkgdHVybiBvZmYgdGhlIHBhbmVsJ3MgYmFja2xpZ2h0IG9yIGRpc2FibGUgdGhlIGRpc3BsYXkKKyAqIGRyaXZlcnMuIEZvciBzbWFydCBwYW5lbHMgaXQgc2hvdWxkIHN0aWxsIGJlIHBvc3NpYmxlIHRvIGNvbW11bmljYXRlIHdpdGgKKyAqIHRoZSBpbnRlZ3JhdGVkIGNpcmN1aXRyeSB2aWEgYW55IGNvbW1hbmQgYnVzIGFmdGVyIHRoaXMgY2FsbC4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGRybV9wYW5lbF9kaXNhYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCWlmIChwYW5lbCAmJiBwYW5lbC0+ZnVuY3MgJiYgcGFuZWwtPmZ1bmNzLT5kaXNhYmxlKQorCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT5kaXNhYmxlKHBhbmVsKTsKKworCXJldHVybiBwYW5lbCA/IC1FTk9TWVMgOiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxfZGlzYWJsZSk7CisKKy8qKgorICogZHJtX3BhbmVsX2dldF9tb2RlcyAtIHByb2JlIHRoZSBhdmFpbGFibGUgZGlzcGxheSBtb2RlcyBvZiBhIHBhbmVsCisgKiBAcGFuZWw6IERSTSBwYW5lbAorICoKKyAqIFRoZSBtb2RlcyBwcm9iZWQgZnJvbSB0aGUgcGFuZWwgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGNvbm5lY3RvcgorICogdGhhdCB0aGUgcGFuZWwgaXMgYXR0YWNoZWQgdG8uCisgKgorICogUmV0dXJuOiBUaGUgbnVtYmVyIG9mIG1vZGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBwYW5lbCBvbiBzdWNjZXNzIG9yIGEKKyAqIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGRybV9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJaWYgKHBhbmVsICYmIHBhbmVsLT5mdW5jcyAmJiBwYW5lbC0+ZnVuY3MtPmdldF9tb2RlcykKKwkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKHBhbmVsKTsKKworCXJldHVybiBwYW5lbCA/IC1FTk9TWVMgOiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxfZ2V0X21vZGVzKTsKKwogI2lmZGVmIENPTkZJR19PRgogLyoqCiAgKiBvZl9kcm1fZmluZF9wYW5lbCAtIGxvb2sgdXAgYSBwYW5lbCB1c2luZyBhIGRldmljZSB0cmVlIG5vZGUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwppbmRleCBkMGMwMTMxLi4wYTIzMTZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5oPgogCisjaW5jbHVkZSA8ZHJtL2RybS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mcmFtZWJ1ZmZlci5oPgpAQCAtMzgsNDcgKzM5LDUyIEBACiAKICNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCIKIAotLyoKLSAqIERNQS1CVUYvR0VNIE9iamVjdCByZWZlcmVuY2VzIGFuZCBsaWZldGltZSBvdmVydmlldzoKKy8qKgorICogRE9DOiBvdmVydmlldyBhbmQgbGlmZXRpbWUgcnVsZXMKICAqCi0gKiBPbiB0aGUgZXhwb3J0IHRoZSBkbWFfYnVmIGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZSBleHBvcnRpbmcgR0VNCi0gKiBvYmplY3QuIEl0IHRha2VzIHRoaXMgcmVmZXJlbmNlIGluIGhhbmRsZV90b19mZF9pb2N0bCwgd2hlbiBpdAotICogZmlyc3QgY2FsbHMgLnByaW1lX2V4cG9ydCBhbmQgc3RvcmVzIHRoZSBleHBvcnRpbmcgR0VNIG9iamVjdCBpbgotICogdGhlIGRtYV9idWYgcHJpdi4gVGhpcyByZWZlcmVuY2UgbmVlZHMgdG8gYmUgcmVsZWFzZWQgd2hlbiB0aGUKLSAqIGZpbmFsIHJlZmVyZW5jZSB0byB0aGUgJmRtYV9idWYgaXRzZWxmIGlzIGRyb3BwZWQgYW5kIGl0cwotICogJmRtYV9idWZfb3BzLnJlbGVhc2UgZnVuY3Rpb24gaXMgY2FsbGVkLiBGb3IgR0VNLWJhc2VkIGRyaXZlcnMsCi0gKiB0aGUgZG1hX2J1ZiBzaG91bGQgYmUgZXhwb3J0ZWQgdXNpbmcgZHJtX2dlbV9kbWFidWZfZXhwb3J0KCkgYW5kCi0gKiB0aGVuIHJlbGVhc2VkIGJ5IGRybV9nZW1fZG1hYnVmX3JlbGVhc2UoKS4KKyAqIFNpbWlsYXIgdG8gR0VNIGdsb2JhbCBuYW1lcywgUFJJTUUgZmlsZSBkZXNjcmlwdG9ycyBhcmUgYWxzbyB1c2VkIHRvIHNoYXJlCisgKiBidWZmZXIgb2JqZWN0cyBhY3Jvc3MgcHJvY2Vzc2VzLiBUaGV5IG9mZmVyIGFkZGl0aW9uYWwgc2VjdXJpdHk6IGFzIGZpbGUKKyAqIGRlc2NyaXB0b3JzIG11c3QgYmUgZXhwbGljaXRseSBzZW50IG92ZXIgVU5JWCBkb21haW4gc29ja2V0cyB0byBiZSBzaGFyZWQKKyAqIGJldHdlZW4gYXBwbGljYXRpb25zLCB0aGV5IGNhbid0IGJlIGd1ZXNzZWQgbGlrZSB0aGUgZ2xvYmFsbHkgdW5pcXVlIEdFTQorICogbmFtZXMuCiAgKgotICogT24gdGhlIGltcG9ydCB0aGUgaW1wb3J0aW5nIEdFTSBvYmplY3QgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlCi0gKiBkbWFfYnVmICh3aGljaCBpbiB0dXJuIGhvbGRzIGEgcmVmIHRvIHRoZSBleHBvcnRpbmcgR0VNIG9iamVjdCkuCi0gKiBJdCB0YWtlcyB0aGF0IHJlZmVyZW5jZSBpbiB0aGUgZmRfdG9faGFuZGxlIGlvY3RsLgotICogSXQgY2FsbHMgZG1hX2J1Zl9nZXQsIGNyZWF0ZXMgYW4gYXR0YWNobWVudCB0byBpdCBhbmQgc3RvcmVzIHRoZQotICogYXR0YWNobWVudCBpbiB0aGUgR0VNIG9iamVjdC4gV2hlbiB0aGlzIGF0dGFjaG1lbnQgaXMgZGVzdHJveWVkCi0gKiB3aGVuIHRoZSBpbXBvcnRlZCBvYmplY3QgaXMgZGVzdHJveWVkLCB3ZSByZW1vdmUgdGhlIGF0dGFjaG1lbnQKLSAqIGFuZCBkcm9wIHRoZSByZWZlcmVuY2UgdG8gdGhlIGRtYV9idWYuCisgKiBEcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGUgUFJJTUUgQVBJIGltcGxlbWVudCB0aGUKKyAqICZkcm1fZHJpdmVyLnByaW1lX2hhbmRsZV90b19mZCBhbmQgJmRybV9kcml2ZXIucHJpbWVfZmRfdG9faGFuZGxlIG9wZXJhdGlvbnMuCisgKiBHRU0gYmFzZWQgZHJpdmVycyBtdXN0IHVzZSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCgpIGFuZAorICogZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoKSB0byBpbXBsZW1lbnQgdGhlc2UuIEZvciBHRU0gYmFzZWQgZHJpdmVycyB0aGUKKyAqIGFjdHVhbCBkcml2ZXIgaW50ZXJmYWNlcyBpcyBwcm92aWRlZCB0aHJvdWdoIHRoZSAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZXhwb3J0CisgKiBhbmQgJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydCBob29rcy4KICAqCi0gKiBXaGVuIGFsbCB0aGUgcmVmZXJlbmNlcyB0byB0aGUgJmRtYV9idWYgYXJlIGRyb3BwZWQsIGkuZS4gd2hlbgotICogdXNlcnNwYWNlIGhhcyBjbG9zZWQgYm90aCBoYW5kbGVzIHRvIHRoZSBpbXBvcnRlZCBHRU0gb2JqZWN0ICh0aHJvdWdoIHRoZQotICogRkRfVE9fSEFORExFIElPQ1RMKSBhbmQgY2xvc2VkIHRoZSBmaWxlIGRlc2NyaXB0b3Igb2YgdGhlIGV4cG9ydGVkCi0gKiAodGhyb3VnaCB0aGUgSEFORExFX1RPX0ZEIElPQ1RMKSBkbWFfYnVmLCBhbmQgYWxsIGtlcm5lbC1pbnRlcm5hbCByZWZlcmVuY2VzCi0gKiBhcmUgYWxzbyBnb25lLCB0aGVuIHRoZSBkbWFfYnVmIGdldHMgZGVzdHJveWVkLiAgVGhpcyBjYW4gYWxzbyBoYXBwZW4gYXMgYQotICogcGFydCBvZiB0aGUgY2xlYW4gdXAgcHJvY2VkdXJlIGluIHRoZSBkcm1fcmVsZWFzZSgpIGZ1bmN0aW9uIGlmIHVzZXJzcGFjZQotICogZmFpbHMgdG8gcHJvcGVybHkgY2xlYW4gdXAuICBOb3RlIHRoYXQgYm90aCB0aGUga2VybmVsIGFuZCB1c2Vyc3BhY2UgKGJ5Ci0gKiBrZWVlcGluZyB0aGUgUFJJTUUgZmlsZSBkZXNjcmlwdG9ycyBvcGVuKSBjYW4gaG9sZCByZWZlcmVuY2VzIG9udG8gYQotICogJmRtYV9idWYuCisgKiAmZG1hX2J1Zl9vcHMgaW1wbGVtZW50YXRpb25zIGZvciBHRU0gZHJpdmVycyBhcmUgYWxsIGluZGl2aWR1YWxseSBleHBvcnRlZAorICogZm9yIGRyaXZlcnMgd2hpY2ggbmVlZCB0byBvdmVyd3JpdGUgb3IgcmVpbXBsZW1lbnQgc29tZSBvZiB0aGVtLgogICoKLSAqIFRodXMgdGhlIGNoYWluIG9mIHJlZmVyZW5jZXMgYWx3YXlzIGZsb3dzIGluIG9uZSBkaXJlY3Rpb24KLSAqIChhdm9pZGluZyBsb29wcyk6IGltcG9ydGluZ19nZW0gLT4gZG1hYnVmIC0+IGV4cG9ydGluZ19nZW0KKyAqIFJlZmVyZW5jZSBDb3VudGluZyBmb3IgR0VNIERyaXZlcnMKKyAqIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAqCi0gKiBTZWxmLWltcG9ydGluZzogaWYgdXNlcnNwYWNlIGlzIHVzaW5nIFBSSU1FIGFzIGEgcmVwbGFjZW1lbnQgZm9yIGZsaW5rCi0gKiB0aGVuIGl0IHdpbGwgZ2V0IGEgZmQtPmhhbmRsZSByZXF1ZXN0IGZvciBhIEdFTSBvYmplY3QgdGhhdCBpdCBjcmVhdGVkLgotICogRHJpdmVycyBzaG91bGQgZGV0ZWN0IHRoaXMgc2l0dWF0aW9uIGFuZCByZXR1cm4gYmFjayB0aGUgZ2VtIG9iamVjdAotICogZnJvbSB0aGUgZG1hLWJ1ZiBwcml2YXRlLiAgUHJpbWUgd2lsbCBkbyB0aGlzIGF1dG9tYXRpY2FsbHkgZm9yIGRyaXZlcnMgdGhhdAotICogdXNlIHRoZSBkcm1fZ2VtX3ByaW1lX3tpbXBvcnQsZXhwb3J0fSBoZWxwZXJzLgorICogT24gdGhlIGV4cG9ydCB0aGUgJmRtYV9idWYgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGV4cG9ydGVkIGJ1ZmZlciBvYmplY3QsCisgKiB1c3VhbGx5IGEgJmRybV9nZW1fb2JqZWN0LiBJdCB0YWtlcyB0aGlzIHJlZmVyZW5jZSBpbiB0aGUgUFJJTUVfSEFORExFX1RPX0ZECisgKiBJT0NUTCwgd2hlbiBpdCBmaXJzdCBjYWxscyAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZXhwb3J0CisgKiBhbmQgc3RvcmVzIHRoZSBleHBvcnRpbmcgR0VNIG9iamVjdCBpbiB0aGUgJmRtYV9idWYucHJpdiBmaWVsZC4gVGhpcworICogcmVmZXJlbmNlIG5lZWRzIHRvIGJlIHJlbGVhc2VkIHdoZW4gdGhlIGZpbmFsIHJlZmVyZW5jZSB0byB0aGUgJmRtYV9idWYKKyAqIGl0c2VsZiBpcyBkcm9wcGVkIGFuZCBpdHMgJmRtYV9idWZfb3BzLnJlbGVhc2UgZnVuY3Rpb24gaXMgY2FsbGVkLiAgRm9yCisgKiBHRU0tYmFzZWQgZHJpdmVycywgdGhlICZkbWFfYnVmIHNob3VsZCBiZSBleHBvcnRlZCB1c2luZworICogZHJtX2dlbV9kbWFidWZfZXhwb3J0KCkgYW5kIHRoZW4gcmVsZWFzZWQgYnkgZHJtX2dlbV9kbWFidWZfcmVsZWFzZSgpLgogICoKLSAqIEdFTSBzdHJ1Y3QgJmRtYV9idWZfb3BzIHN5bWJvbHMgYXJlIG5vdyBleHBvcnRlZC4gVGhleSBjYW4gYmUgcmVzdWVkIGJ5Ci0gKiBkcml2ZXJzIHdoaWNoIGltcGxlbWVudCBHRU0gaW50ZXJmYWNlLgorICogVGh1cyB0aGUgY2hhaW4gb2YgcmVmZXJlbmNlcyBhbHdheXMgZmxvd3MgaW4gb25lIGRpcmVjdGlvbiwgYXZvaWRpbmcgbG9vcHM6CisgKiBpbXBvcnRpbmcgR0VNIG9iamVjdCAtPiBkbWEtYnVmIC0+IGV4cG9ydGVkIEdFTSBiby4gQSBmdXJ0aGVyIGNvbXBsaWNhdGlvbgorICogYXJlIHRoZSBsb29rdXAgY2FjaGVzIGZvciBpbXBvcnQgYW5kIGV4cG9ydC4gVGhlc2UgYXJlIHJlcXVpcmVkIHRvIGd1YXJhbnRlZQorICogdGhhdCBhbnkgZ2l2ZW4gb2JqZWN0IHdpbGwgYWx3YXlzIGhhdmUgb25seSBvbmUgdW5pcWUgdXNlcnNwYWNlIGhhbmRsZS4gVGhpcworICogaXMgcmVxdWlyZWQgdG8gYWxsb3cgdXNlcnNwYWNlIHRvIGRldGVjdCBkdXBsaWNhdGVkIGltcG9ydHMsIHNpbmNlIHNvbWUgR0VNCisgKiBkcml2ZXJzIGRvIGZhaWwgY29tbWFuZCBzdWJtaXNzaW9ucyBpZiBhIGdpdmVuIGJ1ZmZlciBvYmplY3QgaXMgbGlzdGVkIG1vcmUKKyAqIHRoYW4gb25jZS4gVGhlc2UgaW1wb3J0IGFuZCBleHBvcnQgY2FjaGVzIGluICZkcm1fcHJpbWVfZmlsZV9wcml2YXRlIG9ubHkKKyAqIHJldGFpbiBhIHdlYWsgcmVmZXJlbmNlLCB3aGljaCBpcyBjbGVhbmVkIHVwIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgb2JqZWN0IGlzCisgKiByZWxlYXNlZC4KKyAqCisgKiBTZWxmLWltcG9ydGluZzogSWYgdXNlcnNwYWNlIGlzIHVzaW5nIFBSSU1FIGFzIGEgcmVwbGFjZW1lbnQgZm9yIGZsaW5rIHRoZW4KKyAqIGl0IHdpbGwgZ2V0IGEgZmQtPmhhbmRsZSByZXF1ZXN0IGZvciBhIEdFTSBvYmplY3QgdGhhdCBpdCBjcmVhdGVkLiAgRHJpdmVycworICogc2hvdWxkIGRldGVjdCB0aGlzIHNpdHVhdGlvbiBhbmQgcmV0dXJuIGJhY2sgdGhlIHVuZGVybHlpbmcgb2JqZWN0IGZyb20gdGhlCisgKiBkbWEtYnVmIHByaXZhdGUuIEZvciBHRU0gYmFzZWQgZHJpdmVycyB0aGlzIGlzIGhhbmRsZWQgaW4KKyAqIGRybV9nZW1fcHJpbWVfaW1wb3J0KCkgYWxyZWFkeS4KICAqLwogCiBzdHJ1Y3QgZHJtX3ByaW1lX21lbWJlciB7CkBAIC0xODEsNDIgKzE4Nyw2IEBAIHN0YXRpYyBpbnQgZHJtX3ByaW1lX2xvb2t1cF9idWZfaGFuZGxlKHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpCiAJcmV0dXJuIC1FTk9FTlQ7CiB9CiAKLS8qKgotICogZHJtX2dlbV9tYXBfYXR0YWNoIC0gZG1hX2J1ZiBhdHRhY2ggaW1wbGVtZW50YXRpb24gZm9yIEdFTQotICogQGRtYV9idWY6IGJ1ZmZlciB0byBhdHRhY2ggZGV2aWNlIHRvCi0gKiBAYXR0YWNoOiBidWZmZXIgYXR0YWNobWVudCBkYXRhCi0gKgotICogQ2FsbHMgJmRybV9kcml2ZXIuZ2VtX3ByaW1lX3BpbiBmb3IgZGV2aWNlIHNwZWNpZmljIGhhbmRsaW5nLiBUaGlzIGNhbiBiZQotICogdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLmF0dGFjaCBjYWxsYmFjay4KLSAqCi0gKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgZHJtX2dlbV9tYXBfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAotCQkgICAgICAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQotewotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gZG1hX2J1Zi0+cHJpdjsKLQotCXJldHVybiBkcm1fZ2VtX3BpbihvYmopOwotfQotRVhQT1JUX1NZTUJPTChkcm1fZ2VtX21hcF9hdHRhY2gpOwotCi0vKioKLSAqIGRybV9nZW1fbWFwX2RldGFjaCAtIGRtYV9idWYgZGV0YWNoIGltcGxlbWVudGF0aW9uIGZvciBHRU0KLSAqIEBkbWFfYnVmOiBidWZmZXIgdG8gZGV0YWNoIGZyb20KLSAqIEBhdHRhY2g6IGF0dGFjaG1lbnQgdG8gYmUgZGV0YWNoZWQKLSAqCi0gKiBDbGVhbnMgdXAgJmRtYV9idWZfYXR0YWNobWVudC4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLmRldGFjaAotICogY2FsbGJhY2suCi0gKi8KLXZvaWQgZHJtX2dlbV9tYXBfZGV0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAotCQkJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQotewotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gZG1hX2J1Zi0+cHJpdjsKLQotCWRybV9nZW1fdW5waW4ob2JqKTsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV9tYXBfZGV0YWNoKTsKLQogdm9pZCBkcm1fcHJpbWVfcmVtb3ZlX2J1Zl9oYW5kbGVfbG9ja2VkKHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpdiwKIAkJCQkJc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCiB7CkBAIC0yNDIsNjcgKzIxMiwyMSBAQCB2b2lkIGRybV9wcmltZV9yZW1vdmVfYnVmX2hhbmRsZV9sb2NrZWQoc3RydWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgKnByaW1lX2ZwcgogCX0KIH0KIAotLyoqCi0gKiBkcm1fZ2VtX21hcF9kbWFfYnVmIC0gbWFwX2RtYV9idWYgaW1wbGVtZW50YXRpb24gZm9yIEdFTQotICogQGF0dGFjaDogYXR0YWNobWVudCB3aG9zZSBzY2F0dGVybGlzdCBpcyB0byBiZSByZXR1cm5lZAotICogQGRpcjogZGlyZWN0aW9uIG9mIERNQSB0cmFuc2ZlcgotICoKLSAqIENhbGxzICZkcm1fZHJpdmVyLmdlbV9wcmltZV9nZXRfc2dfdGFibGUgYW5kIHRoZW4gbWFwcyB0aGUgc2NhdHRlcmxpc3QuIFRoaXMKLSAqIGNhbiBiZSB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMubWFwX2RtYV9idWYgY2FsbGJhY2suCi0gKgotICogUmV0dXJucyBzZ190YWJsZSBjb250YWluaW5nIHRoZSBzY2F0dGVybGlzdCB0byBiZSByZXR1cm5lZDsgcmV0dXJucyBFUlJfUFRSCi0gKiBvbiBlcnJvci4gTWF5IHJldHVybiAtRUlOVFIgaWYgaXQgaXMgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwuCi0gKi8KLQotc3RydWN0IHNnX3RhYmxlICpkcm1fZ2VtX21hcF9kbWFfYnVmKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKLQkJCQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKK3ZvaWQgZHJtX3ByaW1lX2luaXRfZmlsZV9wcml2YXRlKHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGF0dGFjaC0+ZG1hYnVmLT5wcml2OwotCXN0cnVjdCBzZ190YWJsZSAqc2d0OwotCi0JaWYgKFdBUk5fT04oZGlyID09IERNQV9OT05FKSkKLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci0KLQlpZiAob2JqLT5mdW5jcykKLQkJc2d0ID0gb2JqLT5mdW5jcy0+Z2V0X3NnX3RhYmxlKG9iaik7Ci0JZWxzZQotCQlzZ3QgPSBvYmotPmRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKG9iaik7Ci0KLQlpZiAoIWRtYV9tYXBfc2dfYXR0cnMoYXR0YWNoLT5kZXYsIHNndC0+c2dsLCBzZ3QtPm5lbnRzLCBkaXIsCi0JCQkgICAgICBETUFfQVRUUl9TS0lQX0NQVV9TWU5DKSkgewotCQlzZ19mcmVlX3RhYmxlKHNndCk7Ci0JCWtmcmVlKHNndCk7Ci0JCXNndCA9IEVSUl9QVFIoLUVOT01FTSk7Ci0JfQotCi0JcmV0dXJuIHNndDsKKwltdXRleF9pbml0KCZwcmltZV9mcHJpdi0+bG9jayk7CisJcHJpbWVfZnByaXYtPmRtYWJ1ZnMgPSBSQl9ST09UOworCXByaW1lX2Zwcml2LT5oYW5kbGVzID0gUkJfUk9PVDsKIH0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV9tYXBfZG1hX2J1Zik7CiAKLS8qKgotICogZHJtX2dlbV91bm1hcF9kbWFfYnVmIC0gdW5tYXBfZG1hX2J1ZiBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCi0gKiBAYXR0YWNoOiBhdHRhY2htZW50IHRvIHVubWFwIGJ1ZmZlciBmcm9tCi0gKiBAc2d0OiBzY2F0dGVybGlzdCBpbmZvIG9mIHRoZSBidWZmZXIgdG8gdW5tYXAKLSAqIEBkaXI6IGRpcmVjdGlvbiBvZiBETUEgdHJhbnNmZXIKLSAqCi0gKiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMudW5tYXBfZG1hX2J1ZiBjYWxsYmFjay4KLSAqLwotdm9pZCBkcm1fZ2VtX3VubWFwX2RtYV9idWYoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAotCQkJICAgc3RydWN0IHNnX3RhYmxlICpzZ3QsCi0JCQkgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCit2b2lkIGRybV9wcmltZV9kZXN0cm95X2ZpbGVfcHJpdmF0ZShzdHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYpCiB7Ci0JaWYgKCFzZ3QpCi0JCXJldHVybjsKLQotCWRtYV91bm1hcF9zZ19hdHRycyhhdHRhY2gtPmRldiwgc2d0LT5zZ2wsIHNndC0+bmVudHMsIGRpciwKLQkJCSAgIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpOwotCXNnX2ZyZWVfdGFibGUoc2d0KTsKLQlrZnJlZShzZ3QpOworCS8qIGJ5IG5vdyBkcm1fZ2VtX3JlbGVhc2Ugc2hvdWxkJ3ZlIG1hZGUgc3VyZSB0aGUgbGlzdCBpcyBlbXB0eSAqLworCVdBUk5fT04oIVJCX0VNUFRZX1JPT1QoJnByaW1lX2Zwcml2LT5kbWFidWZzKSk7CiB9Ci1FWFBPUlRfU1lNQk9MKGRybV9nZW1fdW5tYXBfZG1hX2J1Zik7CiAKIC8qKgotICogZHJtX2dlbV9kbWFidWZfZXhwb3J0IC0gZG1hX2J1ZiBleHBvcnQgaW1wbGVtZW50YXRpb24gZm9yIEdFTQorICogZHJtX2dlbV9kbWFidWZfZXhwb3J0IC0gJmRtYV9idWYgZXhwb3J0IGltcGxlbWVudGF0aW9uIGZvciBHRU0KICAqIEBkZXY6IHBhcmVudCBkZXZpY2UgZm9yIHRoZSBleHBvcnRlZCBkbWFidWYKICAqIEBleHBfaW5mbzogdGhlIGV4cG9ydCBpbmZvcm1hdGlvbiB1c2VkIGJ5IGRtYV9idWZfZXhwb3J0KCkKICAqCkBAIC0zMzAsMTEgKzI1NCwxMSBAQCBzdHJ1Y3QgZG1hX2J1ZiAqZHJtX2dlbV9kbWFidWZfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVmX2V4cG9ydCk7CiAKIC8qKgotICogZHJtX2dlbV9kbWFidWZfcmVsZWFzZSAtIGRtYV9idWYgcmVsZWFzZSBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCisgKiBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlIC0gJmRtYV9idWYgcmVsZWFzZSBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCiAgKiBAZG1hX2J1ZjogYnVmZmVyIHRvIGJlIHJlbGVhc2VkCiAgKgogICogR2VuZXJpYyByZWxlYXNlIGZ1bmN0aW9uIGZvciBkbWFfYnVmcyBleHBvcnRlZCBhcyBQUklNRSBidWZmZXJzLiBHRU0gZHJpdmVycwotICogbXVzdCB1c2UgdGhpcyBpbiB0aGVpciBkbWFfYnVmIG9wcyBzdHJ1Y3R1cmUgYXMgdGhlIHJlbGVhc2UgY2FsbGJhY2suCisgKiBtdXN0IHVzZSB0aGlzIGluIHRoZWlyICZkbWFfYnVmX29wcyBzdHJ1Y3R1cmUgYXMgdGhlIHJlbGVhc2UgY2FsbGJhY2suCiAgKiBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlKCkgc2hvdWxkIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aAogICogZHJtX2dlbV9kbWFidWZfZXhwb3J0KCkuCiAgKi8KQEAgLTM1MSwxMjggKzI3NSwxMDAgQEAgdm9pZCBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlKTsKIAogLyoqCi0gKiBkcm1fZ2VtX2RtYWJ1Zl92bWFwIC0gZG1hX2J1ZiB2bWFwIGltcGxlbWVudGF0aW9uIGZvciBHRU0KLSAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYmUgbWFwcGVkCisgKiBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSAtIFBSSU1FIGltcG9ydCBmdW5jdGlvbiBmb3IgR0VNIGRyaXZlcnMKKyAqIEBkZXY6IGRldiB0byBleHBvcnQgdGhlIGJ1ZmZlciBmcm9tCisgKiBAZmlsZV9wcml2OiBkcm0gZmlsZS1wcml2YXRlIHN0cnVjdHVyZQorICogQHByaW1lX2ZkOiBmZCBpZCBvZiB0aGUgZG1hLWJ1ZiB3aGljaCBzaG91bGQgYmUgaW1wb3J0ZWQKKyAqIEBoYW5kbGU6IHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIGhhbmRsZSBvZiB0aGUgaW1wb3J0ZWQgYnVmZmVyIG9iamVjdAogICoKLSAqIFNldHMgdXAgYSBrZXJuZWwgdmlydHVhbCBtYXBwaW5nLiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMudm1hcAotICogY2FsbGJhY2suCi0gKgotICogUmV0dXJucyB0aGUga2VybmVsIHZpcnR1YWwgYWRkcmVzcy4KLSAqLwotdm9pZCAqZHJtX2dlbV9kbWFidWZfdm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZikKLXsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGRtYV9idWYtPnByaXY7Ci0Jdm9pZCAqdmFkZHI7Ci0KLQl2YWRkciA9IGRybV9nZW1fdm1hcChvYmopOwotCWlmIChJU19FUlIodmFkZHIpKQotCQl2YWRkciA9IE5VTEw7Ci0KLQlyZXR1cm4gdmFkZHI7Ci19Ci1FWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVmX3ZtYXApOwotCi0vKioKLSAqIGRybV9nZW1fZG1hYnVmX3Z1bm1hcCAtIGRtYV9idWYgdnVubWFwIGltcGxlbWVudGF0aW9uIGZvciBHRU0KLSAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYmUgdW5tYXBwZWQKLSAqIEB2YWRkcjogdGhlIHZpcnR1YWwgYWRkcmVzcyBvZiB0aGUgYnVmZmVyCi0gKgotICogUmVsZWFzZXMgYSBrZXJuZWwgdmlydHVhbCBtYXBwaW5nLiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRoZQotICogJmRtYV9idWZfb3BzLnZ1bm1hcCBjYWxsYmFjay4KLSAqLwotdm9pZCBkcm1fZ2VtX2RtYWJ1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYsIHZvaWQgKnZhZGRyKQotewotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gZG1hX2J1Zi0+cHJpdjsKLQotCWRybV9nZW1fdnVubWFwKG9iaiwgdmFkZHIpOwotfQotRVhQT1JUX1NZTUJPTChkcm1fZ2VtX2RtYWJ1Zl92dW5tYXApOwotCi0vKioKLSAqIGRybV9nZW1fZG1hYnVmX21tYXAgLSBkbWFfYnVmIG1tYXAgaW1wbGVtZW50YXRpb24gZm9yIEdFTQotICogQGRtYV9idWY6IGJ1ZmZlciB0byBiZSBtYXBwZWQKLSAqIEB2bWE6IHZpcnR1YWwgYWRkcmVzcyByYW5nZQotICoKLSAqIFByb3ZpZGVzIG1lbW9yeSBtYXBwaW5nIGZvciB0aGUgYnVmZmVyLiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRoZQotICogJmRtYV9idWZfb3BzLm1tYXAgY2FsbGJhY2suCisgKiBUaGlzIGlzIHRoZSBQUklNRSBpbXBvcnQgZnVuY3Rpb24gd2hpY2ggbXVzdCBiZSB1c2VkIG1hbmRhdG9yaWx5IGJ5IEdFTQorICogZHJpdmVycyB0byBlbnN1cmUgY29ycmVjdCBsaWZldGltZSBtYW5hZ2VtZW50IG9mIHRoZSB1bmRlcmx5aW5nIEdFTSBvYmplY3QuCisgKiBUaGUgYWN0dWFsIGltcG9ydGluZyBvZiBHRU0gb2JqZWN0IGZyb20gdGhlIGRtYS1idWYgaXMgZG9uZSB0aHJvdWdoIHRoZQorICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydCBkcml2ZXIgY2FsbGJhY2suCiAgKgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KLWludCBkcm1fZ2VtX2RtYWJ1Zl9tbWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK2ludCBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCBpbnQgcHJpbWVfZmQsCisJCQkgICAgICAgdWludDMyX3QgKmhhbmRsZSkKIHsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGRtYV9idWYtPnByaXY7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+ZGV2OworCXN0cnVjdCBkbWFfYnVmICpkbWFfYnVmOworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOworCWludCByZXQ7CiAKLQlpZiAoIWRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfbW1hcCkKKwlkbWFfYnVmID0gZG1hX2J1Zl9nZXQocHJpbWVfZmQpOworCWlmIChJU19FUlIoZG1hX2J1ZikpCisJCXJldHVybiBQVFJfRVJSKGRtYV9idWYpOworCisJbXV0ZXhfbG9jaygmZmlsZV9wcml2LT5wcmltZS5sb2NrKTsKKworCXJldCA9IGRybV9wcmltZV9sb29rdXBfYnVmX2hhbmRsZSgmZmlsZV9wcml2LT5wcmltZSwKKwkJCWRtYV9idWYsIGhhbmRsZSk7CisJaWYgKHJldCA9PSAwKQorCQlnb3RvIG91dF9wdXQ7CisKKwkvKiBuZXZlciBzZWVuIHRoaXMgb25lLCBuZWVkIHRvIGltcG9ydCAqLworCW11dGV4X2xvY2soJmRldi0+b2JqZWN0X25hbWVfbG9jayk7CisJaWYgKGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfaW1wb3J0KQorCQlvYmogPSBkZXYtPmRyaXZlci0+Z2VtX3ByaW1lX2ltcG9ydChkZXYsIGRtYV9idWYpOworCWVsc2UKKwkJb2JqID0gZHJtX2dlbV9wcmltZV9pbXBvcnQoZGV2LCBkbWFfYnVmKTsKKwlpZiAoSVNfRVJSKG9iaikpIHsKKwkJcmV0ID0gUFRSX0VSUihvYmopOworCQlnb3RvIG91dF91bmxvY2s7CisJfQorCisJaWYgKG9iai0+ZG1hX2J1ZikgeworCQlXQVJOX09OKG9iai0+ZG1hX2J1ZiAhPSBkbWFfYnVmKTsKKwl9IGVsc2UgeworCQlvYmotPmRtYV9idWYgPSBkbWFfYnVmOworCQlnZXRfZG1hX2J1ZihkbWFfYnVmKTsKKwl9CisKKwkvKiBfaGFuZGxlX2NyZWF0ZV90YWlsIHVuY29uZGl0aW9uYWxseSB1bmxvY2tzIGRldi0+b2JqZWN0X25hbWVfbG9jay4gKi8KKwlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGVfdGFpbChmaWxlX3ByaXYsIG9iaiwgaGFuZGxlKTsKKwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9wdXQ7CisKKwlyZXQgPSBkcm1fcHJpbWVfYWRkX2J1Zl9oYW5kbGUoJmZpbGVfcHJpdi0+cHJpbWUsCisJCQlkbWFfYnVmLCAqaGFuZGxlKTsKKwltdXRleF91bmxvY2soJmZpbGVfcHJpdi0+cHJpbWUubG9jayk7CisJaWYgKHJldCkKKwkJZ290byBmYWlsOworCisJZG1hX2J1Zl9wdXQoZG1hX2J1Zik7CisKKwlyZXR1cm4gMDsKKworZmFpbDoKKwkvKiBobW0sIGlmIGRyaXZlciBhdHRhY2hlZCwgd2UgYXJlIHJlbHlpbmcgb24gdGhlIGZyZWUtb2JqZWN0IHBhdGgKKwkgKiB0byBkZXRhY2guLiB3aGljaCBzZWVtcyBvay4uCisJICovCisJZHJtX2dlbV9oYW5kbGVfZGVsZXRlKGZpbGVfcHJpdiwgKmhhbmRsZSk7CisJZG1hX2J1Zl9wdXQoZG1hX2J1Zik7CisJcmV0dXJuIHJldDsKKworb3V0X3VubG9jazoKKwltdXRleF91bmxvY2soJmRldi0+b2JqZWN0X25hbWVfbG9jayk7CitvdXRfcHV0OgorCW11dGV4X3VubG9jaygmZmlsZV9wcml2LT5wcmltZS5sb2NrKTsKKwlkbWFfYnVmX3B1dChkbWFfYnVmKTsKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSk7CisKK2ludCBkcm1fcHJpbWVfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlICphcmdzID0gZGF0YTsKKworCWlmICghZGV2LT5kcml2ZXItPnByaW1lX2ZkX3RvX2hhbmRsZSkKIAkJcmV0dXJuIC1FTk9TWVM7CiAKLQlyZXR1cm4gZGV2LT5kcml2ZXItPmdlbV9wcmltZV9tbWFwKG9iaiwgdm1hKTsKKwlyZXR1cm4gZGV2LT5kcml2ZXItPnByaW1lX2ZkX3RvX2hhbmRsZShkZXYsIGZpbGVfcHJpdiwKKwkJCWFyZ3MtPmZkLCAmYXJncy0+aGFuZGxlKTsKIH0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV9kbWFidWZfbW1hcCk7Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgZHJtX2dlbV9wcmltZV9kbWFidWZfb3BzID0gIHsKLQkuY2FjaGVfc2d0X21hcHBpbmcgPSB0cnVlLAotCS5hdHRhY2ggPSBkcm1fZ2VtX21hcF9hdHRhY2gsCi0JLmRldGFjaCA9IGRybV9nZW1fbWFwX2RldGFjaCwKLQkubWFwX2RtYV9idWYgPSBkcm1fZ2VtX21hcF9kbWFfYnVmLAotCS51bm1hcF9kbWFfYnVmID0gZHJtX2dlbV91bm1hcF9kbWFfYnVmLAotCS5yZWxlYXNlID0gZHJtX2dlbV9kbWFidWZfcmVsZWFzZSwKLQkubW1hcCA9IGRybV9nZW1fZG1hYnVmX21tYXAsCi0JLnZtYXAgPSBkcm1fZ2VtX2RtYWJ1Zl92bWFwLAotCS52dW5tYXAgPSBkcm1fZ2VtX2RtYWJ1Zl92dW5tYXAsCi19OwotCi0vKioKLSAqIERPQzogUFJJTUUgSGVscGVycwotICoKLSAqIERyaXZlcnMgY2FuIGltcGxlbWVudCBAZ2VtX3ByaW1lX2V4cG9ydCBhbmQgQGdlbV9wcmltZV9pbXBvcnQgaW4gdGVybXMgb2YKLSAqIHNpbXBsZXIgQVBJcyBieSB1c2luZyB0aGUgaGVscGVyIGZ1bmN0aW9ucyBAZHJtX2dlbV9wcmltZV9leHBvcnQgYW5kCi0gKiBAZHJtX2dlbV9wcmltZV9pbXBvcnQuICBUaGVzZSBmdW5jdGlvbnMgaW1wbGVtZW50IGRtYS1idWYgc3VwcG9ydCBpbiB0ZXJtcyBvZgotICogc2l4IGxvd2VyLWxldmVsIGRyaXZlciBjYWxsYmFja3M6Ci0gKgotICogRXhwb3J0IGNhbGxiYWNrczoKLSAqCi0gKiAgKiBAZ2VtX3ByaW1lX3BpbiAob3B0aW9uYWwpOiBwcmVwYXJlIGEgR0VNIG9iamVjdCBmb3IgZXhwb3J0aW5nCi0gKiAgKiBAZ2VtX3ByaW1lX2dldF9zZ190YWJsZTogcHJvdmlkZSBhIHNjYXR0ZXIvZ2F0aGVyIHRhYmxlIG9mIHBpbm5lZCBwYWdlcwotICogICogQGdlbV9wcmltZV92bWFwOiB2bWFwIGEgYnVmZmVyIGV4cG9ydGVkIGJ5IHlvdXIgZHJpdmVyCi0gKiAgKiBAZ2VtX3ByaW1lX3Z1bm1hcDogdnVubWFwIGEgYnVmZmVyIGV4cG9ydGVkIGJ5IHlvdXIgZHJpdmVyCi0gKiAgKiBAZ2VtX3ByaW1lX21tYXAgKG9wdGlvbmFsKTogbW1hcCBhIGJ1ZmZlciBleHBvcnRlZCBieSB5b3VyIGRyaXZlcgotICoKLSAqIEltcG9ydCBjYWxsYmFjazoKLSAqCi0gKiAgKiBAZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSAoaW1wb3J0KTogcHJvZHVjZSBhIEdFTSBvYmplY3QgZnJvbSBhbm90aGVyCi0gKiAgICBkcml2ZXIncyBzY2F0dGVyL2dhdGhlciB0YWJsZQotICovCi0KLS8qKgotICogZHJtX2dlbV9wcmltZV9leHBvcnQgLSBoZWxwZXIgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXhwb3J0IGNhbGxiYWNrCi0gKiBAZGV2OiBkcm1fZGV2aWNlIHRvIGV4cG9ydCBmcm9tCi0gKiBAb2JqOiBHRU0gb2JqZWN0IHRvIGV4cG9ydAotICogQGZsYWdzOiBmbGFncyBsaWtlIERSTV9DTE9FWEVDIGFuZCBEUk1fUkRXUgotICoKLSAqIFRoaXMgaXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBnZW1fcHJpbWVfZXhwb3J0IGZ1bmN0aW9ucyBmb3IgR0VNIGRyaXZlcnMKLSAqIHVzaW5nIHRoZSBQUklNRSBoZWxwZXJzLgotICovCi1zdHJ1Y3QgZG1hX2J1ZiAqZHJtX2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAotCQkJCSAgICAgaW50IGZsYWdzKQotewotCXN0cnVjdCBkbWFfYnVmX2V4cG9ydF9pbmZvIGV4cF9pbmZvID0gewotCQkuZXhwX25hbWUgPSBLQlVJTERfTU9ETkFNRSwgLyogd2hpdGUgbGllIGZvciBkZWJ1ZyAqLwotCQkub3duZXIgPSBkZXYtPmRyaXZlci0+Zm9wcy0+b3duZXIsCi0JCS5vcHMgPSAmZHJtX2dlbV9wcmltZV9kbWFidWZfb3BzLAotCQkuc2l6ZSA9IG9iai0+c2l6ZSwKLQkJLmZsYWdzID0gZmxhZ3MsCi0JCS5wcml2ID0gb2JqLAotCQkucmVzdiA9IG9iai0+cmVzdiwKLQl9OwotCi0JaWYgKGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfcmVzX29iaikKLQkJZXhwX2luZm8ucmVzdiA9IGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfcmVzX29iaihvYmopOwotCi0JcmV0dXJuIGRybV9nZW1fZG1hYnVmX2V4cG9ydChkZXYsICZleHBfaW5mbyk7Ci19Ci1FWFBPUlRfU1lNQk9MKGRybV9nZW1fcHJpbWVfZXhwb3J0KTsKIAogc3RhdGljIHN0cnVjdCBkbWFfYnVmICpleHBvcnRfYW5kX3JlZ2lzdGVyX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkJICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKQEAgLTQ4OSw5ICszODUsOSBAQCBzdGF0aWMgc3RydWN0IGRtYV9idWYgKmV4cG9ydF9hbmRfcmVnaXN0ZXJfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKG9iai0+ZnVuY3MgJiYgb2JqLT5mdW5jcy0+ZXhwb3J0KQogCQlkbWFidWYgPSBvYmotPmZ1bmNzLT5leHBvcnQob2JqLCBmbGFncyk7CiAJZWxzZSBpZiAoZGV2LT5kcml2ZXItPmdlbV9wcmltZV9leHBvcnQpCi0JCWRtYWJ1ZiA9IGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfZXhwb3J0KGRldiwgb2JqLCBmbGFncyk7CisJCWRtYWJ1ZiA9IGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfZXhwb3J0KG9iaiwgZmxhZ3MpOwogCWVsc2UKLQkJZG1hYnVmID0gZHJtX2dlbV9wcmltZV9leHBvcnQoZGV2LCBvYmosIGZsYWdzKTsKKwkJZG1hYnVmID0gZHJtX2dlbV9wcmltZV9leHBvcnQob2JqLCBmbGFncyk7CiAJaWYgKElTX0VSUihkbWFidWYpKSB7CiAJCS8qIG5vcm1hbGx5IHRoZSBjcmVhdGVkIGRtYS1idWYgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSByZWYsCiAJCSAqIGJ1dCBpZiB0aGF0IGZhaWxzIHRoZW4gZHJvcCB0aGUgcmVmCkBAIC01MjEsNyArNDE3LDcgQEAgc3RhdGljIHN0cnVjdCBkbWFfYnVmICpleHBvcnRfYW5kX3JlZ2lzdGVyX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogICogVGhpcyBpcyB0aGUgUFJJTUUgZXhwb3J0IGZ1bmN0aW9uIHdoaWNoIG11c3QgYmUgdXNlZCBtYW5kYXRvcmlseSBieSBHRU0KICAqIGRyaXZlcnMgdG8gZW5zdXJlIGNvcnJlY3QgbGlmZXRpbWUgbWFuYWdlbWVudCBvZiB0aGUgdW5kZXJseWluZyBHRU0gb2JqZWN0LgogICogVGhlIGFjdHVhbCBleHBvcnRpbmcgZnJvbSBHRU0gb2JqZWN0IHRvIGEgZG1hLWJ1ZiBpcyBkb25lIHRocm91Z2ggdGhlCi0gKiBnZW1fcHJpbWVfZXhwb3J0IGRyaXZlciBjYWxsYmFjay4KKyAqICZkcm1fZHJpdmVyLmdlbV9wcmltZV9leHBvcnQgZHJpdmVyIGNhbGxiYWNrLgogICovCiBpbnQgZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgdWludDMyX3QgaGFuZGxlLApAQCAtNjEwLDYgKzUwNiwxOTUgQEAgaW50IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKTsKIAoraW50IGRybV9wcmltZV9oYW5kbGVfdG9fZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJc3RydWN0IGRybV9wcmltZV9oYW5kbGUgKmFyZ3MgPSBkYXRhOworCisJaWYgKCFkZXYtPmRyaXZlci0+cHJpbWVfaGFuZGxlX3RvX2ZkKQorCQlyZXR1cm4gLUVOT1NZUzsKKworCS8qIGNoZWNrIGZsYWdzIGFyZSB2YWxpZCAqLworCWlmIChhcmdzLT5mbGFncyAmIH4oRFJNX0NMT0VYRUMgfCBEUk1fUkRXUikpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIGRldi0+ZHJpdmVyLT5wcmltZV9oYW5kbGVfdG9fZmQoZGV2LCBmaWxlX3ByaXYsCisJCQlhcmdzLT5oYW5kbGUsIGFyZ3MtPmZsYWdzLCAmYXJncy0+ZmQpOworfQorCisvKioKKyAqIERPQzogUFJJTUUgSGVscGVycworICoKKyAqIERyaXZlcnMgY2FuIGltcGxlbWVudCAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZXhwb3J0IGFuZAorICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydCBpbiB0ZXJtcyBvZiBzaW1wbGVyIEFQSXMgYnkgdXNpbmcgdGhlIGhlbHBlcgorICogZnVuY3Rpb25zIGRybV9nZW1fcHJpbWVfZXhwb3J0KCkgYW5kIGRybV9nZW1fcHJpbWVfaW1wb3J0KCkuIFRoZXNlIGZ1bmN0aW9ucworICogaW1wbGVtZW50IGRtYS1idWYgc3VwcG9ydCBpbiB0ZXJtcyBvZiBzb21lIGxvd2VyLWxldmVsIGhlbHBlcnMsIHdoaWNoIGFyZQorICogYWdhaW4gZXhwb3J0ZWQgZm9yIGRyaXZlcnMgdG8gdXNlIGluZGl2aWR1YWxseToKKyAqCisgKiBFeHBvcnRpbmcgYnVmZmVycworICogfn5+fn5+fn5+fn5+fn5+fn4KKyAqCisgKiBPcHRpb25hbCBwaW5uaW5nIG9mIGJ1ZmZlcnMgaXMgaGFuZGxlZCBhdCBkbWEtYnVmIGF0dGFjaCBhbmQgZGV0YWNoIHRpbWUgaW4KKyAqIGRybV9nZW1fbWFwX2F0dGFjaCgpIGFuZCBkcm1fZ2VtX21hcF9kZXRhY2goKS4gQmFja2luZyBzdG9yYWdlIGl0c2VsZiBpcworICogaGFuZGxlZCBieSBkcm1fZ2VtX21hcF9kbWFfYnVmKCkgYW5kIGRybV9nZW1fdW5tYXBfZG1hX2J1ZigpLCB3aGljaCByZWxpZXMgb24KKyAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy5nZXRfc2dfdGFibGUuCisgKgorICogRm9yIGtlcm5lbC1pbnRlcm5hbCBhY2Nlc3MgdGhlcmUncyBkcm1fZ2VtX2RtYWJ1Zl92bWFwKCkgYW5kCisgKiBkcm1fZ2VtX2RtYWJ1Zl92dW5tYXAoKS4gVXNlcnNwYWNlIG1tYXAgc3VwcG9ydCBpcyBwcm92aWRlZCBieQorICogZHJtX2dlbV9kbWFidWZfbW1hcCgpLgorICoKKyAqIE5vdGUgdGhhdCB0aGVzZSBleHBvcnQgaGVscGVycyBjYW4gb25seSBiZSB1c2VkIGlmIHRoZSB1bmRlcmx5aW5nIGJhY2tpbmcKKyAqIHN0b3JhZ2UgaXMgZnVsbHkgY29oZXJlbnQgYW5kIGVpdGhlciBwZXJtYW5lbnRseSBwaW5uZWQsIG9yIGl0IGlzIHNhZmUgdG8gcGluCisgKiBpdCBpbmRlZmluaXRlbHkuCisgKgorICogRklYTUU6IFRoZSB1bmRlcmx5aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIG5hbWVkIHJhdGhlciBpbmNvbnNpc3RlbnRseS4KKyAqCisgKiBFeHBvcnRpbmcgYnVmZmVycworICogfn5+fn5+fn5+fn5+fn5+fn4KKyAqCisgKiBJbXBvcnRpbmcgZG1hLWJ1ZnMgdXNpbmcgZHJtX2dlbV9wcmltZV9pbXBvcnQoKSByZWxpZXMgb24KKyAqICZkcm1fZHJpdmVyLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUuCisgKgorICogTm90ZSB0aGF0IHNpbWlsYXJseSB0byB0aGUgZXhwb3J0IGhlbHBlcnMgdGhpcyBwZXJtYW5lbnRseSBwaW5zIHRoZQorICogdW5kZXJseWluZyBiYWNraW5nIHN0b3JhZ2UuIFdoaWNoIGlzIG9rIGZvciBzY2Fub3V0LCBidXQgaXMgbm90IHRoZSBiZXN0CisgKiBvcHRpb24gZm9yIHNoYXJpbmcgbG90cyBvZiBidWZmZXJzIGZvciByZW5kZXJpbmcuCisgKi8KKworLyoqCisgKiBkcm1fZ2VtX21hcF9hdHRhY2ggLSBkbWFfYnVmIGF0dGFjaCBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCisgKiBAZG1hX2J1ZjogYnVmZmVyIHRvIGF0dGFjaCBkZXZpY2UgdG8KKyAqIEBhdHRhY2g6IGJ1ZmZlciBhdHRhY2htZW50IGRhdGEKKyAqCisgKiBDYWxscyAmZHJtX2dlbV9vYmplY3RfZnVuY3MucGluIGZvciBkZXZpY2Ugc3BlY2lmaWMgaGFuZGxpbmcuIFRoaXMgY2FuIGJlCisgKiB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMuYXR0YWNoIGNhbGxiYWNrLiBNdXN0IGJlIHVzZWQgdG9nZXRoZXIgd2l0aAorICogZHJtX2dlbV9tYXBfZGV0YWNoKCkuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGRybV9nZW1fbWFwX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKKwkJICAgICAgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKK3sKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGRtYV9idWYtPnByaXY7CisKKwlyZXR1cm4gZHJtX2dlbV9waW4ob2JqKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2dlbV9tYXBfYXR0YWNoKTsKKworLyoqCisgKiBkcm1fZ2VtX21hcF9kZXRhY2ggLSBkbWFfYnVmIGRldGFjaCBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCisgKiBAZG1hX2J1ZjogYnVmZmVyIHRvIGRldGFjaCBmcm9tCisgKiBAYXR0YWNoOiBhdHRhY2htZW50IHRvIGJlIGRldGFjaGVkCisgKgorICogQ2FsbHMgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnBpbiBmb3IgZGV2aWNlIHNwZWNpZmljIGhhbmRsaW5nLiAgQ2xlYW5zIHVwCisgKiAmZG1hX2J1Zl9hdHRhY2htZW50IGZyb20gZHJtX2dlbV9tYXBfYXR0YWNoKCkuIFRoaXMgY2FuIGJlIHVzZWQgYXMgdGhlCisgKiAmZG1hX2J1Zl9vcHMuZGV0YWNoIGNhbGxiYWNrLgorICovCit2b2lkIGRybV9nZW1fbWFwX2RldGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKKwkJCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKK3sKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGRtYV9idWYtPnByaXY7CisKKwlkcm1fZ2VtX3VucGluKG9iaik7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9nZW1fbWFwX2RldGFjaCk7CisKKy8qKgorICogZHJtX2dlbV9tYXBfZG1hX2J1ZiAtIG1hcF9kbWFfYnVmIGltcGxlbWVudGF0aW9uIGZvciBHRU0KKyAqIEBhdHRhY2g6IGF0dGFjaG1lbnQgd2hvc2Ugc2NhdHRlcmxpc3QgaXMgdG8gYmUgcmV0dXJuZWQKKyAqIEBkaXI6IGRpcmVjdGlvbiBvZiBETUEgdHJhbnNmZXIKKyAqCisgKiBDYWxscyAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZ2V0X3NnX3RhYmxlIGFuZCB0aGVuIG1hcHMgdGhlIHNjYXR0ZXJsaXN0LiBUaGlzCisgKiBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLm1hcF9kbWFfYnVmIGNhbGxiYWNrLiBTaG91bGQgYmUgdXNlZCB0b2dldGhlcgorICogd2l0aCBkcm1fZ2VtX3VubWFwX2RtYV9idWYoKS4KKyAqCisgKiBSZXR1cm5zOnNnX3RhYmxlIGNvbnRhaW5pbmcgdGhlIHNjYXR0ZXJsaXN0IHRvIGJlIHJldHVybmVkOyByZXR1cm5zIEVSUl9QVFIKKyAqIG9uIGVycm9yLiBNYXkgcmV0dXJuIC1FSU5UUiBpZiBpdCBpcyBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbC4KKyAqLworc3RydWN0IHNnX3RhYmxlICpkcm1fZ2VtX21hcF9kbWFfYnVmKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKKwkJCQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKK3sKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGF0dGFjaC0+ZG1hYnVmLT5wcml2OworCXN0cnVjdCBzZ190YWJsZSAqc2d0OworCisJaWYgKFdBUk5fT04oZGlyID09IERNQV9OT05FKSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisKKwlpZiAob2JqLT5mdW5jcykKKwkJc2d0ID0gb2JqLT5mdW5jcy0+Z2V0X3NnX3RhYmxlKG9iaik7CisJZWxzZQorCQlzZ3QgPSBvYmotPmRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKG9iaik7CisKKwlpZiAoIWRtYV9tYXBfc2dfYXR0cnMoYXR0YWNoLT5kZXYsIHNndC0+c2dsLCBzZ3QtPm5lbnRzLCBkaXIsCisJCQkgICAgICBETUFfQVRUUl9TS0lQX0NQVV9TWU5DKSkgeworCQlzZ19mcmVlX3RhYmxlKHNndCk7CisJCWtmcmVlKHNndCk7CisJCXNndCA9IEVSUl9QVFIoLUVOT01FTSk7CisJfQorCisJcmV0dXJuIHNndDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2dlbV9tYXBfZG1hX2J1Zik7CisKKy8qKgorICogZHJtX2dlbV91bm1hcF9kbWFfYnVmIC0gdW5tYXBfZG1hX2J1ZiBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCisgKiBAYXR0YWNoOiBhdHRhY2htZW50IHRvIHVubWFwIGJ1ZmZlciBmcm9tCisgKiBAc2d0OiBzY2F0dGVybGlzdCBpbmZvIG9mIHRoZSBidWZmZXIgdG8gdW5tYXAKKyAqIEBkaXI6IGRpcmVjdGlvbiBvZiBETUEgdHJhbnNmZXIKKyAqCisgKiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMudW5tYXBfZG1hX2J1ZiBjYWxsYmFjay4KKyAqLwordm9pZCBkcm1fZ2VtX3VubWFwX2RtYV9idWYoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAorCQkJICAgc3RydWN0IHNnX3RhYmxlICpzZ3QsCisJCQkgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCit7CisJaWYgKCFzZ3QpCisJCXJldHVybjsKKworCWRtYV91bm1hcF9zZ19hdHRycyhhdHRhY2gtPmRldiwgc2d0LT5zZ2wsIHNndC0+bmVudHMsIGRpciwKKwkJCSAgIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpOworCXNnX2ZyZWVfdGFibGUoc2d0KTsKKwlrZnJlZShzZ3QpOworfQorRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3VubWFwX2RtYV9idWYpOworCisvKioKKyAqIGRybV9nZW1fZG1hYnVmX3ZtYXAgLSBkbWFfYnVmIHZtYXAgaW1wbGVtZW50YXRpb24gZm9yIEdFTQorICogQGRtYV9idWY6IGJ1ZmZlciB0byBiZSBtYXBwZWQKKyAqCisgKiBTZXRzIHVwIGEga2VybmVsIHZpcnR1YWwgbWFwcGluZy4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLnZtYXAKKyAqIGNhbGxiYWNrLiBDYWxscyBpbnRvICZkcm1fZ2VtX29iamVjdF9mdW5jcy52bWFwIGZvciBkZXZpY2Ugc3BlY2lmaWMgaGFuZGxpbmcuCisgKgorICogUmV0dXJucyB0aGUga2VybmVsIHZpcnR1YWwgYWRkcmVzcyBvciBOVUxMIG9uIGZhaWx1cmUuCisgKi8KK3ZvaWQgKmRybV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCit7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmLT5wcml2OworCXZvaWQgKnZhZGRyOworCisJdmFkZHIgPSBkcm1fZ2VtX3ZtYXAob2JqKTsKKwlpZiAoSVNfRVJSKHZhZGRyKSkKKwkJdmFkZHIgPSBOVUxMOworCisJcmV0dXJuIHZhZGRyOworfQorRVhQT1JUX1NZTUJPTChkcm1fZ2VtX2RtYWJ1Zl92bWFwKTsKKworLyoqCisgKiBkcm1fZ2VtX2RtYWJ1Zl92dW5tYXAgLSBkbWFfYnVmIHZ1bm1hcCBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCisgKiBAZG1hX2J1ZjogYnVmZmVyIHRvIGJlIHVubWFwcGVkCisgKiBAdmFkZHI6IHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGJ1ZmZlcgorICoKKyAqIFJlbGVhc2VzIGEga2VybmVsIHZpcnR1YWwgbWFwcGluZy4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUKKyAqICZkbWFfYnVmX29wcy52dW5tYXAgY2FsbGJhY2suIENhbGxzIGludG8gJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZ1bm1hcCBmb3IgZGV2aWNlIHNwZWNpZmljIGhhbmRsaW5nLgorICovCit2b2lkIGRybV9nZW1fZG1hYnVmX3Z1bm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Ziwgdm9pZCAqdmFkZHIpCit7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmLT5wcml2OworCisJZHJtX2dlbV92dW5tYXAob2JqLCB2YWRkcik7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVmX3Z1bm1hcCk7CisKIC8qKgogICogZHJtX2dlbV9wcmltZV9tbWFwIC0gUFJJTUUgbW1hcCBmdW5jdGlvbiBmb3IgR0VNIGRyaXZlcnMKICAqIEBvYmo6IEdFTSBvYmplY3QKQEAgLTY1NywxNCArNzQyLDExNyBAQCBpbnQgZHJtX2dlbV9wcmltZV9tbWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9tbWFwKTsKIAogLyoqCisgKiBkcm1fZ2VtX2RtYWJ1Zl9tbWFwIC0gZG1hX2J1ZiBtbWFwIGltcGxlbWVudGF0aW9uIGZvciBHRU0KKyAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYmUgbWFwcGVkCisgKiBAdm1hOiB2aXJ0dWFsIGFkZHJlc3MgcmFuZ2UKKyAqCisgKiBQcm92aWRlcyBtZW1vcnkgbWFwcGluZyBmb3IgdGhlIGJ1ZmZlci4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUKKyAqICZkbWFfYnVmX29wcy5tbWFwIGNhbGxiYWNrLiBJdCBqdXN0IGZvcndhcmRzIHRvICZkcm1fZHJpdmVyLmdlbV9wcmltZV9tbWFwLAorICogd2hpY2ggc2hvdWxkIGJlIHNldCB0byBkcm1fZ2VtX3ByaW1lX21tYXAoKS4KKyAqCisgKiBGSVhNRTogVGhlcmUncyByZWFsbHkgbm8gcG9pbnQgdG8gdGhpcyB3cmFwcGVyLCBkcml2ZXJzIHdoaWNoIG5lZWQgYW55dGhpbmcKKyAqIGVsc2UgYnV0IGRybV9nZW1fcHJpbWVfbW1hcCBjYW4gcm9sbCB0aGVpciBvd24gJmRtYV9idWZfb3BzLm1tYXAgY2FsbGJhY2suCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fZ2VtX2RtYWJ1Zl9tbWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGRtYV9idWYtPnByaXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+ZGV2OworCisJaWYgKCFkZXYtPmRyaXZlci0+Z2VtX3ByaW1lX21tYXApCisJCXJldHVybiAtRU5PU1lTOworCisJcmV0dXJuIGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfbW1hcChvYmosIHZtYSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVmX21tYXApOworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIGRybV9nZW1fcHJpbWVfZG1hYnVmX29wcyA9ICB7CisJLmNhY2hlX3NndF9tYXBwaW5nID0gdHJ1ZSwKKwkuYXR0YWNoID0gZHJtX2dlbV9tYXBfYXR0YWNoLAorCS5kZXRhY2ggPSBkcm1fZ2VtX21hcF9kZXRhY2gsCisJLm1hcF9kbWFfYnVmID0gZHJtX2dlbV9tYXBfZG1hX2J1ZiwKKwkudW5tYXBfZG1hX2J1ZiA9IGRybV9nZW1fdW5tYXBfZG1hX2J1ZiwKKwkucmVsZWFzZSA9IGRybV9nZW1fZG1hYnVmX3JlbGVhc2UsCisJLm1tYXAgPSBkcm1fZ2VtX2RtYWJ1Zl9tbWFwLAorCS52bWFwID0gZHJtX2dlbV9kbWFidWZfdm1hcCwKKwkudnVubWFwID0gZHJtX2dlbV9kbWFidWZfdnVubWFwLAorfTsKKworLyoqCisgKiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cgLSBjb252ZXJ0cyBhIHBhZ2UgYXJyYXkgaW50byBhbiBzZyBsaXN0CisgKiBAcGFnZXM6IHBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHBhZ2UgcG9pbnRlcnMgdG8gY29udmVydAorICogQG5yX3BhZ2VzOiBsZW5ndGggb2YgdGhlIHBhZ2UgdmVjdG9yCisgKgorICogVGhpcyBoZWxwZXIgY3JlYXRlcyBhbiBzZyB0YWJsZSBvYmplY3QgZnJvbSBhIHNldCBvZiBwYWdlcworICogdGhlIGRyaXZlciBpcyByZXNwb25zaWJsZSBmb3IgbWFwcGluZyB0aGUgcGFnZXMgaW50byB0aGUKKyAqIGltcG9ydGVycyBhZGRyZXNzIHNwYWNlIGZvciB1c2Ugd2l0aCBkbWFfYnVmIGl0c2VsZi4KKyAqCisgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nICZkcm1fZ2VtX29iamVjdF9mdW5jcy5nZXRfc2dfdGFibGUuCisgKi8KK3N0cnVjdCBzZ190YWJsZSAqZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKHN0cnVjdCBwYWdlICoqcGFnZXMsIHVuc2lnbmVkIGludCBucl9wYWdlcykKK3sKKwlzdHJ1Y3Qgc2dfdGFibGUgKnNnID0gTlVMTDsKKwlpbnQgcmV0OworCisJc2cgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2dfdGFibGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXNnKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKworCXJldCA9IHNnX2FsbG9jX3RhYmxlX2Zyb21fcGFnZXMoc2csIHBhZ2VzLCBucl9wYWdlcywgMCwKKwkJCQlucl9wYWdlcyA8PCBQQUdFX1NISUZULCBHRlBfS0VSTkVMKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCXJldHVybiBzZzsKK291dDoKKwlrZnJlZShzZyk7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKTsKKworLyoqCisgKiBkcm1fZ2VtX3ByaW1lX2V4cG9ydCAtIGhlbHBlciBsaWJyYXJ5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBleHBvcnQgY2FsbGJhY2sKKyAqIEBvYmo6IEdFTSBvYmplY3QgdG8gZXhwb3J0CisgKiBAZmxhZ3M6IGZsYWdzIGxpa2UgRFJNX0NMT0VYRUMgYW5kIERSTV9SRFdSCisgKgorICogVGhpcyBpcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlICZkcm1fZ2VtX29iamVjdF9mdW5jcy5leHBvcnQgZnVuY3Rpb25zIGZvciBHRU0gZHJpdmVycworICogdXNpbmcgdGhlIFBSSU1FIGhlbHBlcnMuIEl0IGlzIHVzZWQgYXMgdGhlIGRlZmF1bHQgaW4KKyAqIGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKCkuCisgKi8KK3N0cnVjdCBkbWFfYnVmICpkcm1fZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKKwkJCQkgICAgIGludCBmbGFncykKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5kZXY7CisJc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gZXhwX2luZm8gPSB7CisJCS5leHBfbmFtZSA9IEtCVUlMRF9NT0ROQU1FLCAvKiB3aGl0ZSBsaWUgZm9yIGRlYnVnICovCisJCS5vd25lciA9IGRldi0+ZHJpdmVyLT5mb3BzLT5vd25lciwKKwkJLm9wcyA9ICZkcm1fZ2VtX3ByaW1lX2RtYWJ1Zl9vcHMsCisJCS5zaXplID0gb2JqLT5zaXplLAorCQkuZmxhZ3MgPSBmbGFncywKKwkJLnByaXYgPSBvYmosCisJCS5yZXN2ID0gb2JqLT5yZXN2LAorCX07CisKKwlyZXR1cm4gZHJtX2dlbV9kbWFidWZfZXhwb3J0KGRldiwgJmV4cF9pbmZvKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9leHBvcnQpOworCisvKioKICAqIGRybV9nZW1fcHJpbWVfaW1wb3J0X2RldiAtIGNvcmUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGltcG9ydCBjYWxsYmFjawogICogQGRldjogZHJtX2RldmljZSB0byBpbXBvcnQgaW50bwogICogQGRtYV9idWY6IGRtYS1idWYgb2JqZWN0IHRvIGltcG9ydAogICogQGF0dGFjaF9kZXY6IHN0cnVjdCBkZXZpY2UgdG8gZG1hX2J1ZiBhdHRhY2gKICAqCi0gKiBUaGlzIGlzIHRoZSBjb3JlIG9mIGRybV9nZW1fcHJpbWVfaW1wb3J0LiBJdCdzIGRlc2lnbmVkIHRvIGJlIGNhbGxlZCBieQotICogZHJpdmVycyB3aG8gd2FudCB0byB1c2UgYSBkaWZmZXJlbnQgZGV2aWNlIHN0cnVjdHVyZSB0aGFuIGRldi0+ZGV2IGZvcgotICogYXR0YWNoaW5nIHZpYSBkbWFfYnVmLgorICogVGhpcyBpcyB0aGUgY29yZSBvZiBkcm1fZ2VtX3ByaW1lX2ltcG9ydCgpLiBJdCdzIGRlc2lnbmVkIHRvIGJlIGNhbGxlZCBieQorICogZHJpdmVycyB3aG8gd2FudCB0byB1c2UgYSBkaWZmZXJlbnQgZGV2aWNlIHN0cnVjdHVyZSB0aGFuICZkcm1fZGV2aWNlLmRldiBmb3IKKyAqIGF0dGFjaGluZyB2aWEgZG1hX2J1Zi4gVGhpcyBmdW5jdGlvbiBjYWxscworICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSBpbnRlcm5hbGx5LgorICoKKyAqIERyaXZlcnMgbXVzdCBhcnJhbmdlIHRvIGNhbGwgZHJtX3ByaW1lX2dlbV9kZXN0cm95KCkgZnJvbSB0aGVpcgorICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmZyZWUgaG9vayB3aGVuIHVzaW5nIHRoaXMgZnVuY3Rpb24uCiAgKi8KIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSAgICBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKQEAgLTcwOSw2ICs4OTcsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmRybV9nZW1fcHJpbWVfaW1wb3J0X2RldihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCX0KIAogCW9iai0+aW1wb3J0X2F0dGFjaCA9IGF0dGFjaDsKKwlvYmotPnJlc3YgPSBkbWFfYnVmLT5yZXN2OwogCiAJcmV0dXJuIG9iajsKIApAQCAtNzI4LDcgKzkxNywxMiBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fcHJpbWVfaW1wb3J0X2Rldik7CiAgKiBAZG1hX2J1ZjogZG1hLWJ1ZiBvYmplY3QgdG8gaW1wb3J0CiAgKgogICogVGhpcyBpcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGdlbV9wcmltZV9pbXBvcnQgZnVuY3Rpb25zIGZvciBHRU0gZHJpdmVycwotICogdXNpbmcgdGhlIFBSSU1FIGhlbHBlcnMuCisgKiB1c2luZyB0aGUgUFJJTUUgaGVscGVycy4gRHJpdmVycyBjYW4gdXNlIHRoaXMgYXMgdGhlaXIKKyAqICZkcm1fZHJpdmVyLmdlbV9wcmltZV9pbXBvcnQgaW1wbGVtZW50YXRpb24uIEl0IGlzIHVzZWQgYXMgdGhlIGRlZmF1bHQKKyAqIGltcGxlbWVudGF0aW9uIGluIGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKCkuCisgKgorICogRHJpdmVycyBtdXN0IGFycmFuZ2UgdG8gY2FsbCBkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koKSBmcm9tIHRoZWlyCisgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZnJlZSBob29rIHdoZW4gdXNpbmcgdGhpcyBmdW5jdGlvbi4KICAqLwogc3RydWN0IGRybV9nZW1fb2JqZWN0ICpkcm1fZ2VtX3ByaW1lX2ltcG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCkBAIC03MzgsMTU0ICs5MzIsNiBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmRybV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fcHJpbWVfaW1wb3J0KTsKIAogLyoqCi0gKiBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSAtIFBSSU1FIGltcG9ydCBmdW5jdGlvbiBmb3IgR0VNIGRyaXZlcnMKLSAqIEBkZXY6IGRldiB0byBleHBvcnQgdGhlIGJ1ZmZlciBmcm9tCi0gKiBAZmlsZV9wcml2OiBkcm0gZmlsZS1wcml2YXRlIHN0cnVjdHVyZQotICogQHByaW1lX2ZkOiBmZCBpZCBvZiB0aGUgZG1hLWJ1ZiB3aGljaCBzaG91bGQgYmUgaW1wb3J0ZWQKLSAqIEBoYW5kbGU6IHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIGhhbmRsZSBvZiB0aGUgaW1wb3J0ZWQgYnVmZmVyIG9iamVjdAotICoKLSAqIFRoaXMgaXMgdGhlIFBSSU1FIGltcG9ydCBmdW5jdGlvbiB3aGljaCBtdXN0IGJlIHVzZWQgbWFuZGF0b3JpbHkgYnkgR0VNCi0gKiBkcml2ZXJzIHRvIGVuc3VyZSBjb3JyZWN0IGxpZmV0aW1lIG1hbmFnZW1lbnQgb2YgdGhlIHVuZGVybHlpbmcgR0VNIG9iamVjdC4KLSAqIFRoZSBhY3R1YWwgaW1wb3J0aW5nIG9mIEdFTSBvYmplY3QgZnJvbSB0aGUgZG1hLWJ1ZiBpcyBkb25lIHRocm91Z2ggdGhlCi0gKiBnZW1faW1wb3J0X2V4cG9ydCBkcml2ZXIgY2FsbGJhY2suCi0gKi8KLWludCBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCBpbnQgcHJpbWVfZmQsCi0JCQkgICAgICAgdWludDMyX3QgKmhhbmRsZSkKLXsKLQlzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZjsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKLQlpbnQgcmV0OwotCi0JZG1hX2J1ZiA9IGRtYV9idWZfZ2V0KHByaW1lX2ZkKTsKLQlpZiAoSVNfRVJSKGRtYV9idWYpKQotCQlyZXR1cm4gUFRSX0VSUihkbWFfYnVmKTsKLQotCW11dGV4X2xvY2soJmZpbGVfcHJpdi0+cHJpbWUubG9jayk7Ci0KLQlyZXQgPSBkcm1fcHJpbWVfbG9va3VwX2J1Zl9oYW5kbGUoJmZpbGVfcHJpdi0+cHJpbWUsCi0JCQlkbWFfYnVmLCBoYW5kbGUpOwotCWlmIChyZXQgPT0gMCkKLQkJZ290byBvdXRfcHV0OwotCi0JLyogbmV2ZXIgc2VlbiB0aGlzIG9uZSwgbmVlZCB0byBpbXBvcnQgKi8KLQltdXRleF9sb2NrKCZkZXYtPm9iamVjdF9uYW1lX2xvY2spOwotCWlmIChkZXYtPmRyaXZlci0+Z2VtX3ByaW1lX2ltcG9ydCkKLQkJb2JqID0gZGV2LT5kcml2ZXItPmdlbV9wcmltZV9pbXBvcnQoZGV2LCBkbWFfYnVmKTsKLQllbHNlCi0JCW9iaiA9IGRybV9nZW1fcHJpbWVfaW1wb3J0KGRldiwgZG1hX2J1Zik7Ci0JaWYgKElTX0VSUihvYmopKSB7Ci0JCXJldCA9IFBUUl9FUlIob2JqKTsKLQkJZ290byBvdXRfdW5sb2NrOwotCX0KLQotCWlmIChvYmotPmRtYV9idWYpIHsKLQkJV0FSTl9PTihvYmotPmRtYV9idWYgIT0gZG1hX2J1Zik7Ci0JfSBlbHNlIHsKLQkJb2JqLT5kbWFfYnVmID0gZG1hX2J1ZjsKLQkJZ2V0X2RtYV9idWYoZG1hX2J1Zik7Ci0JfQotCi0JLyogX2hhbmRsZV9jcmVhdGVfdGFpbCB1bmNvbmRpdGlvbmFsbHkgdW5sb2NrcyBkZXYtPm9iamVjdF9uYW1lX2xvY2suICovCi0JcmV0ID0gZHJtX2dlbV9oYW5kbGVfY3JlYXRlX3RhaWwoZmlsZV9wcml2LCBvYmosIGhhbmRsZSk7Ci0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9iaik7Ci0JaWYgKHJldCkKLQkJZ290byBvdXRfcHV0OwotCi0JcmV0ID0gZHJtX3ByaW1lX2FkZF9idWZfaGFuZGxlKCZmaWxlX3ByaXYtPnByaW1lLAotCQkJZG1hX2J1ZiwgKmhhbmRsZSk7Ci0JbXV0ZXhfdW5sb2NrKCZmaWxlX3ByaXYtPnByaW1lLmxvY2spOwotCWlmIChyZXQpCi0JCWdvdG8gZmFpbDsKLQotCWRtYV9idWZfcHV0KGRtYV9idWYpOwotCi0JcmV0dXJuIDA7Ci0KLWZhaWw6Ci0JLyogaG1tLCBpZiBkcml2ZXIgYXR0YWNoZWQsIHdlIGFyZSByZWx5aW5nIG9uIHRoZSBmcmVlLW9iamVjdCBwYXRoCi0JICogdG8gZGV0YWNoLi4gd2hpY2ggc2VlbXMgb2suLgotCSAqLwotCWRybV9nZW1faGFuZGxlX2RlbGV0ZShmaWxlX3ByaXYsICpoYW5kbGUpOwotCWRtYV9idWZfcHV0KGRtYV9idWYpOwotCXJldHVybiByZXQ7Ci0KLW91dF91bmxvY2s6Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPm9iamVjdF9uYW1lX2xvY2spOwotb3V0X3B1dDoKLQltdXRleF91bmxvY2soJmZpbGVfcHJpdi0+cHJpbWUubG9jayk7Ci0JZG1hX2J1Zl9wdXQoZG1hX2J1Zik7Ci0JcmV0dXJuIHJldDsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUpOwotCi1pbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSAqYXJncyA9IGRhdGE7Ci0KLQlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfUFJJTUUpKQotCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0KLQlpZiAoIWRldi0+ZHJpdmVyLT5wcmltZV9oYW5kbGVfdG9fZmQpCi0JCXJldHVybiAtRU5PU1lTOwotCi0JLyogY2hlY2sgZmxhZ3MgYXJlIHZhbGlkICovCi0JaWYgKGFyZ3MtPmZsYWdzICYgfihEUk1fQ0xPRVhFQyB8IERSTV9SRFdSKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlyZXR1cm4gZGV2LT5kcml2ZXItPnByaW1lX2hhbmRsZV90b19mZChkZXYsIGZpbGVfcHJpdiwKLQkJCWFyZ3MtPmhhbmRsZSwgYXJncy0+ZmxhZ3MsICZhcmdzLT5mZCk7Ci19Ci0KLWludCBkcm1fcHJpbWVfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCXN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlICphcmdzID0gZGF0YTsKLQotCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9QUklNRSkpCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKLQotCWlmICghZGV2LT5kcml2ZXItPnByaW1lX2ZkX3RvX2hhbmRsZSkKLQkJcmV0dXJuIC1FTk9TWVM7Ci0KLQlyZXR1cm4gZGV2LT5kcml2ZXItPnByaW1lX2ZkX3RvX2hhbmRsZShkZXYsIGZpbGVfcHJpdiwKLQkJCWFyZ3MtPmZkLCAmYXJncy0+aGFuZGxlKTsKLX0KLQotLyoqCi0gKiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cgLSBjb252ZXJ0cyBhIHBhZ2UgYXJyYXkgaW50byBhbiBzZyBsaXN0Ci0gKiBAcGFnZXM6IHBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHBhZ2UgcG9pbnRlcnMgdG8gY29udmVydAotICogQG5yX3BhZ2VzOiBsZW5ndGggb2YgdGhlIHBhZ2UgdmVjdG9yCi0gKgotICogVGhpcyBoZWxwZXIgY3JlYXRlcyBhbiBzZyB0YWJsZSBvYmplY3QgZnJvbSBhIHNldCBvZiBwYWdlcwotICogdGhlIGRyaXZlciBpcyByZXNwb25zaWJsZSBmb3IgbWFwcGluZyB0aGUgcGFnZXMgaW50byB0aGUKLSAqIGltcG9ydGVycyBhZGRyZXNzIHNwYWNlIGZvciB1c2Ugd2l0aCBkbWFfYnVmIGl0c2VsZi4KLSAqLwotc3RydWN0IHNnX3RhYmxlICpkcm1fcHJpbWVfcGFnZXNfdG9fc2coc3RydWN0IHBhZ2UgKipwYWdlcywgdW5zaWduZWQgaW50IG5yX3BhZ2VzKQotewotCXN0cnVjdCBzZ190YWJsZSAqc2cgPSBOVUxMOwotCWludCByZXQ7Ci0KLQlzZyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBzZ190YWJsZSksIEdGUF9LRVJORUwpOwotCWlmICghc2cpIHsKLQkJcmV0ID0gLUVOT01FTTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JcmV0ID0gc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcyhzZywgcGFnZXMsIG5yX3BhZ2VzLCAwLAotCQkJCW5yX3BhZ2VzIDw8IFBBR0VfU0hJRlQsIEdGUF9LRVJORUwpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0OwotCi0JcmV0dXJuIHNnOwotb3V0OgotCWtmcmVlKHNnKTsKLQlyZXR1cm4gRVJSX1BUUihyZXQpOwotfQotRVhQT1JUX1NZTUJPTChkcm1fcHJpbWVfcGFnZXNfdG9fc2cpOwotCi0vKioKICAqIGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzIC0gY29udmVydCBhbiBzZyB0YWJsZSBpbnRvIGEgcGFnZSBhcnJheQogICogQHNndDogc2NhdHRlci1nYXRoZXIgdGFibGUgdG8gY29udmVydAogICogQHBhZ2VzOiBvcHRpb25hbCBhcnJheSBvZiBwYWdlIHBvaW50ZXJzIHRvIHN0b3JlIHRoZSBwYWdlIGFycmF5IGluCkBAIC04OTQsNiArOTQwLDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fcHJpbWVfcGFnZXNfdG9fc2cpOwogICoKICAqIEV4cG9ydHMgYW4gc2cgdGFibGUgaW50byBhbiBhcnJheSBvZiBwYWdlcyBhbmQgYWRkcmVzc2VzLiBUaGlzIGlzIGN1cnJlbnRseQogICogcmVxdWlyZWQgYnkgdGhlIFRUTSBkcml2ZXIgaW4gb3JkZXIgdG8gZG8gY29ycmVjdCBmYXVsdCBoYW5kbGluZy4KKyAqCisgKiBEcml2ZXJzIGNhbiB1c2UgdGhpcyBpbiB0aGVpciAmZHJtX2RyaXZlci5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlCisgKiBpbXBsZW1lbnRhdGlvbi4KICAqLwogaW50IGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKHN0cnVjdCBzZ190YWJsZSAqc2d0LCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAogCQkJCSAgICAgZG1hX2FkZHJfdCAqYWRkcnMsIGludCBtYXhfZW50cmllcykKQEAgLTkzNCw3ICs5ODMsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKTsKICAqIEBzZzogdGhlIHNnLXRhYmxlIHdoaWNoIHdhcyBwaW5uZWQgYXQgaW1wb3J0IHRpbWUKICAqCiAgKiBUaGlzIGlzIHRoZSBjbGVhbnVwIGZ1bmN0aW9ucyB3aGljaCBHRU0gZHJpdmVycyBuZWVkIHRvIGNhbGwgd2hlbiB0aGV5IHVzZQotICogQGRybV9nZW1fcHJpbWVfaW1wb3J0IHRvIGltcG9ydCBkbWEtYnVmcy4KKyAqIGRybV9nZW1fcHJpbWVfaW1wb3J0KCkgb3IgZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2KCkgdG8gaW1wb3J0IGRtYS1idWZzLgogICovCiB2b2lkIGRybV9wcmltZV9nZW1fZGVzdHJveShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IHNnX3RhYmxlICpzZykKIHsKQEAgLTk0OSwxNiArOTk4LDMgQEAgdm9pZCBkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZ190YWJsZSAqc2cpCiAJZG1hX2J1Zl9wdXQoZG1hX2J1Zik7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9wcmltZV9nZW1fZGVzdHJveSk7Ci0KLXZvaWQgZHJtX3ByaW1lX2luaXRfZmlsZV9wcml2YXRlKHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpdikKLXsKLQltdXRleF9pbml0KCZwcmltZV9mcHJpdi0+bG9jayk7Ci0JcHJpbWVfZnByaXYtPmRtYWJ1ZnMgPSBSQl9ST09UOwotCXByaW1lX2Zwcml2LT5oYW5kbGVzID0gUkJfUk9PVDsKLX0KLQotdm9pZCBkcm1fcHJpbWVfZGVzdHJveV9maWxlX3ByaXZhdGUoc3RydWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgKnByaW1lX2Zwcml2KQotewotCS8qIGJ5IG5vdyBkcm1fZ2VtX3JlbGVhc2Ugc2hvdWxkJ3ZlIG1hZGUgc3VyZSB0aGUgbGlzdCBpcyBlbXB0eSAqLwotCVdBUk5fT04oIVJCX0VNUFRZX1JPT1QoJnByaW1lX2Zwcml2LT5kbWFidWZzKSk7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3NjYXR0ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NhdHRlci5jCmluZGV4IDJkNzc5MGYuLmQ1YzM4NjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NhdHRlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NhdHRlci5jCkBAIC0xLDQgKzEsNCBAQAotLyoqCisvKgogICogXGZpbGUgZHJtX3NjYXR0ZXIuYwogICogSU9DVExzIHRvIG1hbmFnZSBzY2F0dGVyL2dhdGhlciBtZW1vcnkKICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2VsZl9yZWZyZXNoX2hlbHBlci5jCmluZGV4IDRiOTQyNGEuLjY4ZjQ3NjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2VsZl9yZWZyZXNoX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2VsZl9yZWZyZXNoX2hlbHBlci5jCkBAIC01LDYgKzUsNyBAQAogICogQXV0aG9yczoKICAqIFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgogICovCisjaW5jbHVkZSA8bGludXgvYXZlcmFnZS5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KQEAgLTUwLDExICs1MSwxNyBAQAogICogYXRvbWljX2NoZWNrIHdoZW4gJmRybV9jcnRjX3N0YXRlLnNlbGZfcmVmcmVzaF9hY3RpdmUgaXMgdHJ1ZS4KICAqLwogCisjZGVmaW5lIFNFTEZfUkVGUkVTSF9BVkdfU0VFRF9NUyAyMDAKKworREVDTEFSRV9FV01BKHBzcl90aW1lLCA0LCA0KQorCiBzdHJ1Y3QgZHJtX3NlbGZfcmVmcmVzaF9kYXRhIHsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJc3RydWN0IGRlbGF5ZWRfd29yayBlbnRyeV93b3JrOwotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzYXZlX3N0YXRlOwotCXVuc2lnbmVkIGludCBlbnRyeV9kZWxheV9tczsKKworCXN0cnVjdCBtdXRleCBhdmdfbXV0ZXg7CisJc3RydWN0IGV3bWFfcHNyX3RpbWUgZW50cnlfYXZnX21zOworCXN0cnVjdCBld21hX3Bzcl90aW1lIGV4aXRfYXZnX21zOwogfTsKIAogc3RhdGljIHZvaWQgZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXJfZW50cnlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCkBAIC0xMjMsNiArMTMwLDQ0IEBAIHN0YXRpYyB2b2lkIGRybV9zZWxmX3JlZnJlc2hfaGVscGVyX2VudHJ5X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogfQogCiAvKioKKyAqIGRybV9zZWxmX3JlZnJlc2hfaGVscGVyX3VwZGF0ZV9hdmdfdGltZXMgLSBVcGRhdGVzIGEgY3J0YydzIFNSIHRpbWUgYXZlcmFnZXMKKyAqIEBzdGF0ZTogdGhlIHN0YXRlIHdoaWNoIGhhcyBqdXN0IGJlZW4gYXBwbGllZCB0byBoYXJkd2FyZQorICogQGNvbW1pdF90aW1lX21zOiB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbXMgdGhhdCB0aGlzIGNvbW1pdCB0b29rIHRvIGNvbXBsZXRlCisgKgorICogQ2FsbGVkIGFmdGVyICZkcm1fbW9kZV9jb25maWdfZnVuY3MuYXRvbWljX2NvbW1pdF90YWlsLCB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAqIHVwZGF0ZSB0aGUgYXZlcmFnZSBlbnRyeS9leGl0IHNlbGYgcmVmcmVzaCB0aW1lcyBvbiBzZWxmIHJlZnJlc2ggdHJhbnNpdGlvbnMuCisgKiBUaGVzZSBhdmVyYWdlcyB3aWxsIGJlIHVzZWQgd2hlbiBjYWxjdWxhdGluZyBob3cgbG9uZyB0byBkZWxheSBiZWZvcmUKKyAqIGVudGVyaW5nIHNlbGYgcmVmcmVzaCBtb2RlIGFmdGVyIGFjdGl2aXR5LgorICovCit2b2lkIGRybV9zZWxmX3JlZnJlc2hfaGVscGVyX3VwZGF0ZV9hdmdfdGltZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCQkgICAgICB1bnNpZ25lZCBpbnQgY29tbWl0X3RpbWVfbXMpCit7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0ZTsKKwlpbnQgaTsKKworCWZvcl9lYWNoX29sZG5ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKKwkJCQkgICAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgZHJtX3NlbGZfcmVmcmVzaF9kYXRhICpzcl9kYXRhID0gY3J0Yy0+c2VsZl9yZWZyZXNoX2RhdGE7CisJCXN0cnVjdCBld21hX3Bzcl90aW1lICp0aW1lOworCisJCWlmIChvbGRfY3J0Y19zdGF0ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZSA9PQorCQkgICAgbmV3X2NydGNfc3RhdGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUpCisJCQljb250aW51ZTsKKworCQlpZiAobmV3X2NydGNfc3RhdGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUpCisJCQl0aW1lID0gJnNyX2RhdGEtPmVudHJ5X2F2Z19tczsKKwkJZWxzZQorCQkJdGltZSA9ICZzcl9kYXRhLT5leGl0X2F2Z19tczsKKworCQltdXRleF9sb2NrKCZzcl9kYXRhLT5hdmdfbXV0ZXgpOworCQlld21hX3Bzcl90aW1lX2FkZCh0aW1lLCBjb21taXRfdGltZV9tcyk7CisJCW11dGV4X3VubG9jaygmc3JfZGF0YS0+YXZnX211dGV4KTsKKwl9Cit9CitFWFBPUlRfU1lNQk9MKGRybV9zZWxmX3JlZnJlc2hfaGVscGVyX3VwZGF0ZV9hdmdfdGltZXMpOworCisvKioKICAqIGRybV9zZWxmX3JlZnJlc2hfaGVscGVyX2FsdGVyX3N0YXRlIC0gQWx0ZXJzIHRoZSBhdG9taWMgc3RhdGUgZm9yIFNSIGV4aXQKICAqIEBzdGF0ZTogdGhlIHN0YXRlIGN1cnJlbnRseSBiZWluZyBjaGVja2VkCiAgKgpAQCAtMTUzLDYgKzE5OCw3IEBAIHZvaWQgZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXJfYWx0ZXJfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKIAkJc3RydWN0IGRybV9zZWxmX3JlZnJlc2hfZGF0YSAqc3JfZGF0YTsKKwkJdW5zaWduZWQgaW50IGRlbGF5OwogCiAJCS8qIERvbid0IHRyaWdnZXIgdGhlIGVudHJ5IHRpbWVyIHdoZW4gd2UncmUgYWxyZWFkeSBpbiBTUiAqLwogCQlpZiAoY3J0Y19zdGF0ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZSkKQEAgLTE2Miw4ICsyMDgsMTMgQEAgdm9pZCBkcm1fc2VsZl9yZWZyZXNoX2hlbHBlcl9hbHRlcl9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCWlmICghc3JfZGF0YSkKIAkJCWNvbnRpbnVlOwogCisJCW11dGV4X2xvY2soJnNyX2RhdGEtPmF2Z19tdXRleCk7CisJCWRlbGF5ID0gKGV3bWFfcHNyX3RpbWVfcmVhZCgmc3JfZGF0YS0+ZW50cnlfYXZnX21zKSArCisJCQkgZXdtYV9wc3JfdGltZV9yZWFkKCZzcl9kYXRhLT5leGl0X2F2Z19tcykpICogMjsKKwkJbXV0ZXhfdW5sb2NrKCZzcl9kYXRhLT5hdmdfbXV0ZXgpOworCiAJCW1vZF9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCAmc3JfZGF0YS0+ZW50cnlfd29yaywKLQkJCQkgbXNlY3NfdG9famlmZmllcyhzcl9kYXRhLT5lbnRyeV9kZWxheV9tcykpOworCQkJCSBtc2Vjc190b19qaWZmaWVzKGRlbGF5KSk7CiAJfQogfQogRVhQT1JUX1NZTUJPTChkcm1fc2VsZl9yZWZyZXNoX2hlbHBlcl9hbHRlcl9zdGF0ZSk7CkBAIC0xNzEsMTIgKzIyMiwxMCBAQCBFWFBPUlRfU1lNQk9MKGRybV9zZWxmX3JlZnJlc2hfaGVscGVyX2FsdGVyX3N0YXRlKTsKIC8qKgogICogZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXJfaW5pdCAtIEluaXRpYWxpemVzIHNlbGYgcmVmcmVzaCBoZWxwZXJzIGZvciBhIGNydGMKICAqIEBjcnRjOiB0aGUgY3J0YyB3aGljaCBzdXBwb3J0cyBzZWxmIHJlZnJlc2ggc3VwcG9ydGVkIGRpc3BsYXlzCi0gKiBAZW50cnlfZGVsYXlfbXM6IGFtb3VudCBvZiBpbmFjdGl2aXR5IHRvIHdhaXQgYmVmb3JlIGVudGVyaW5nIHNlbGYgcmVmcmVzaAogICoKICAqIFJldHVybnMgemVybyBpZiBzdWNjZXNzZnVsIG9yIC1lcnJubyBvbiBmYWlsdXJlCiAgKi8KLWludCBkcm1fc2VsZl9yZWZyZXNoX2hlbHBlcl9pbml0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCQkgdW5zaWduZWQgaW50IGVudHJ5X2RlbGF5X21zKQoraW50IGRybV9zZWxmX3JlZnJlc2hfaGVscGVyX2luaXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBkcm1fc2VsZl9yZWZyZXNoX2RhdGEgKnNyX2RhdGEgPSBjcnRjLT5zZWxmX3JlZnJlc2hfZGF0YTsKIApAQCAtMTkwLDggKzIzOSwxOCBAQCBpbnQgZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXJfaW5pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlJTklUX0RFTEFZRURfV09SSygmc3JfZGF0YS0+ZW50cnlfd29yaywKIAkJCSAgZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXJfZW50cnlfd29yayk7Ci0Jc3JfZGF0YS0+ZW50cnlfZGVsYXlfbXMgPSBlbnRyeV9kZWxheV9tczsKIAlzcl9kYXRhLT5jcnRjID0gY3J0YzsKKwltdXRleF9pbml0KCZzcl9kYXRhLT5hdmdfbXV0ZXgpOworCWV3bWFfcHNyX3RpbWVfaW5pdCgmc3JfZGF0YS0+ZW50cnlfYXZnX21zKTsKKwlld21hX3Bzcl90aW1lX2luaXQoJnNyX2RhdGEtPmV4aXRfYXZnX21zKTsKKworCS8qCisJICogU2VlZCB0aGUgYXZlcmFnZXMgc28gdGhleSdyZSBub24temVybyAoYW5kIHN1ZmZpY2llbnRseSBsYXJnZQorCSAqIGZvciBldmVuIHBvb3JseSBwZXJmb3JtaW5nIHBhbmVscykuIEFzIHRpbWUgZ29lcyBvbiwgdGhpcyB3aWxsIGJlCisJICogYXZlcmFnZWQgb3V0IGFuZCB0aGUgdmFsdWVzIHdpbGwgdHJlbmQgdG8gdGhlaXIgdHJ1ZSB2YWx1ZS4KKwkgKi8KKwlld21hX3Bzcl90aW1lX2FkZCgmc3JfZGF0YS0+ZW50cnlfYXZnX21zLCBTRUxGX1JFRlJFU0hfQVZHX1NFRURfTVMpOworCWV3bWFfcHNyX3RpbWVfYWRkKCZzcl9kYXRhLT5leGl0X2F2Z19tcywgU0VMRl9SRUZSRVNIX0FWR19TRUVEX01TKTsKIAogCWNydGMtPnNlbGZfcmVmcmVzaF9kYXRhID0gc3JfZGF0YTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKaW5kZXggYTE5OWM4ZC4uNGI1YzdiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKQEAgLTI5LDIxICsyOSw5NyBAQAogLyoqCiAgKiBET0M6IE92ZXJ2aWV3CiAgKgotICogRFJNIHN5bmNocm9uaXNhdGlvbiBvYmplY3RzIChzeW5jb2JqLCBzZWUgc3RydWN0ICZkcm1fc3luY29iaikgYXJlCi0gKiBwZXJzaXN0ZW50IG9iamVjdHMgdGhhdCBjb250YWluIGFuIG9wdGlvbmFsIGZlbmNlLiBUaGUgZmVuY2UgY2FuIGJlIHVwZGF0ZWQKLSAqIHdpdGggYSBuZXcgZmVuY2UsIG9yIGJlIE5VTEwuCi0gKgotICogc3luY29iaidzIGNhbiBiZSB3YWl0ZWQgdXBvbiwgd2hlcmUgaXQgd2lsbCB3YWl0IGZvciB0aGUgdW5kZXJseWluZwotICogZmVuY2UuCi0gKgotICogc3luY29iaidzIGNhbiBiZSBleHBvcnQgdG8gZmQncyBhbmQgYmFjaywgdGhlc2UgZmQncyBhcmUgb3BhcXVlIGFuZAotICogaGF2ZSBubyBvdGhlciB1c2UgY2FzZSwgZXhjZXB0IHBhc3NpbmcgdGhlIHN5bmNvYmogYmV0d2VlbiBwcm9jZXNzZXMuCi0gKgorICogRFJNIHN5bmNocm9uaXNhdGlvbiBvYmplY3RzIChzeW5jb2JqLCBzZWUgc3RydWN0ICZkcm1fc3luY29iaikgcHJvdmlkZSBhCisgKiBjb250YWluZXIgZm9yIGEgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZSB3aGljaCBjYW4gYmUgdXNlZCBieSB1c2Vyc3BhY2UKKyAqIHRvIGV4cGxpY2l0bHkgc3luY2hyb25pemUgR1BVIGNvbW1hbmRzLCBjYW4gYmUgc2hhcmVkIGJldHdlZW4gdXNlcnNwYWNlCisgKiBwcm9jZXNzZXMsIGFuZCBjYW4gYmUgc2hhcmVkIGJldHdlZW4gZGlmZmVyZW50IERSTSBkcml2ZXJzLgogICogVGhlaXIgcHJpbWFyeSB1c2UtY2FzZSBpcyB0byBpbXBsZW1lbnQgVnVsa2FuIGZlbmNlcyBhbmQgc2VtYXBob3Jlcy4KKyAqIFRoZSBzeW5jb2JqIHVzZXJzcGFjZSBBUEkgcHJvdmlkZXMgaW9jdGxzIGZvciBzZXZlcmFsIG9wZXJhdGlvbnM6CiAgKgotICogc3luY29iaiBoYXZlIGEga3JlZiByZWZlcmVuY2UgY291bnQsIGJ1dCBhbHNvIGhhdmUgYW4gb3B0aW9uYWwgZmlsZS4KLSAqIFRoZSBmaWxlIGlzIG9ubHkgY3JlYXRlZCBvbmNlIHRoZSBzeW5jb2JqIGlzIGV4cG9ydGVkLgotICogVGhlIGZpbGUgdGFrZXMgYSByZWZlcmVuY2Ugb24gdGhlIGtyZWYuCisgKiAgLSBDcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gb2Ygc3luY29ianMKKyAqICAtIEltcG9ydCBhbmQgZXhwb3J0IG9mIHN5bmNvYmpzIHRvL2Zyb20gYSBzeW5jb2JqIGZpbGUgZGVzY3JpcHRvcgorICogIC0gSW1wb3J0IGFuZCBleHBvcnQgYSBzeW5jb2JqJ3MgdW5kZXJseWluZyBmZW5jZSB0by9mcm9tIGEgc3luYyBmaWxlCisgKiAgLSBSZXNldCBhIHN5bmNvYmogKHNldCBpdHMgZmVuY2UgdG8gTlVMTCkKKyAqICAtIFNpZ25hbCBhIHN5bmNvYmogKHNldCBhIHRyaXZpYWxseSBzaWduYWxlZCBmZW5jZSkKKyAqICAtIFdhaXQgZm9yIGEgc3luY29iaidzIGZlbmNlIHRvIGFwcGVhciBhbmQgYmUgc2lnbmFsZWQKKyAqCisgKiBBdCBpdCdzIGNvcmUsIGEgc3luY29iaiBpcyBzaW1wbHkgYSB3cmFwcGVyIGFyb3VuZCBhIHBvaW50ZXIgdG8gYSBzdHJ1Y3QKKyAqICZkbWFfZmVuY2Ugd2hpY2ggbWF5IGJlIE5VTEwuCisgKiBXaGVuIGEgc3luY29iaiBpcyBmaXJzdCBjcmVhdGVkLCBpdHMgcG9pbnRlciBpcyBlaXRoZXIgTlVMTCBvciBhIHBvaW50ZXIKKyAqIHRvIGFuIGFscmVhZHkgc2lnbmFsZWQgZmVuY2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlCisgKiAmRFJNX1NZTkNPQkpfQ1JFQVRFX1NJR05BTEVEIGZsYWcgaXMgcGFzc2VkIHRvCisgKiAmRFJNX0lPQ1RMX1NZTkNPQkpfQ1JFQVRFLgorICogV2hlbiBHUFUgd29yayB3aGljaCBzaWduYWxzIGEgc3luY29iaiBpcyBlbnF1ZXVlZCBpbiBhIERSTSBkcml2ZXIsCisgKiB0aGUgc3luY29iaiBmZW5jZSBpcyByZXBsYWNlZCB3aXRoIGEgZmVuY2Ugd2hpY2ggd2lsbCBiZSBzaWduYWxlZCBieSB0aGUKKyAqIGNvbXBsZXRpb24gb2YgdGhhdCB3b3JrLgorICogV2hlbiBHUFUgd29yayB3aGljaCB3YWl0cyBvbiBhIHN5bmNvYmogaXMgZW5xdWV1ZWQgaW4gYSBEUk0gZHJpdmVyLCB0aGUKKyAqIGRyaXZlciByZXRyaWV2ZXMgc3luY29iaidzIGN1cnJlbnQgZmVuY2UgYXQgdGhlIHRpbWUgdGhlIHdvcmsgaXMgZW5xdWV1ZWQKKyAqIHdhaXRzIG9uIHRoYXQgZmVuY2UgYmVmb3JlIHN1Ym1pdHRpbmcgdGhlIHdvcmsgdG8gaGFyZHdhcmUuCisgKiBJZiB0aGUgc3luY29iaidzIGZlbmNlIGlzIE5VTEwsIHRoZSBlbnF1ZXVlIG9wZXJhdGlvbiBpcyBleHBlY3RlZCB0byBmYWlsLgorICogQWxsIG1hbmlwdWxhdGlvbiBvZiB0aGUgc3luY29ianMncyBmZW5jZSBoYXBwZW5zIGluIHRlcm1zIG9mIHRoZSBjdXJyZW50CisgKiBmZW5jZSBhdCB0aGUgdGltZSB0aGUgaW9jdGwgaXMgY2FsbGVkIGJ5IHVzZXJzcGFjZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIKKyAqIHRoYXQgb3BlcmF0aW9uIGlzIGFuIGltbWVkaWF0ZSBob3N0LXNpZGUgb3BlcmF0aW9uIChzaWduYWwgb3IgcmVzZXQpIG9yCisgKiBvciBhbiBvcGVyYXRpb24gd2hpY2ggaXMgZW5xdWV1ZWQgaW4gc29tZSBkcml2ZXIgcXVldWUuCisgKiAmRFJNX0lPQ1RMX1NZTkNPQkpfUkVTRVQgYW5kICZEUk1fSU9DVExfU1lOQ09CSl9TSUdOQUwgY2FuIGJlIHVzZWQgdG8KKyAqIG1hbmlwdWxhdGUgYSBzeW5jb2JqIGZyb20gdGhlIGhvc3QgYnkgcmVzZXR0aW5nIGl0cyBwb2ludGVyIHRvIE5VTEwgb3IKKyAqIHNldHRpbmcgaXRzIHBvaW50ZXIgdG8gYSBmZW5jZSB3aGljaCBpcyBhbHJlYWR5IHNpZ25hbGVkLgorICoKKyAqCisgKiBIb3N0LXNpZGUgd2FpdCBvbiBzeW5jb2JqcworICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAmRFJNX0lPQ1RMX1NZTkNPQkpfV0FJVCB0YWtlcyBhbiBhcnJheSBvZiBzeW5jb2JqIGhhbmRsZXMgYW5kIGRvZXMgYQorICogaG9zdC1zaWRlIHdhaXQgb24gYWxsIG9mIHRoZSBzeW5jb2JqIGZlbmNlcyBzaW11bHRhbmVvdXNseS4KKyAqIElmICZEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQUxMIGlzIHNldCwgdGhlIHdhaXQgaW9jdGwgd2lsbCB3YWl0IG9uCisgKiBhbGwgb2YgdGhlIHN5bmNvYmogZmVuY2VzIHRvIGJlIHNpZ25hbGVkIGJlZm9yZSBpdCByZXR1cm5zLgorICogT3RoZXJ3aXNlLCBpdCByZXR1cm5zIG9uY2UgYXQgbGVhc3Qgb25lIHN5bmNvYmogZmVuY2UgaGFzIGJlZW4gc2lnbmFsZWQKKyAqIGFuZCB0aGUgaW5kZXggb2YgYSBzaWduYWxlZCBmZW5jZSBpcyB3cml0dGVuIGJhY2sgdG8gdGhlIGNsaWVudC4KKyAqCisgKiBVbmxpa2UgdGhlIGVucXVldWVkIEdQVSB3b3JrIGRlcGVuZGVuY2llcyB3aGljaCBmYWlsIGlmIHRoZXkgc2VlIGEgTlVMTAorICogZmVuY2UgaW4gYSBzeW5jb2JqLCBpZiAmRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQgaXMgc2V0LAorICogdGhlIGhvc3Qtc2lkZSB3YWl0IHdpbGwgZmlyc3Qgd2FpdCBmb3IgdGhlIHN5bmNvYmogdG8gcmVjZWl2ZSBhIG5vbi1OVUxMCisgKiBmZW5jZSBhbmQgdGhlbiB3YWl0IG9uIHRoYXQgZmVuY2UuCisgKiBJZiAmRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQgaXMgbm90IHNldCBhbmQgYW55IG9uZSBvZiB0aGUKKyAqIHN5bmNvYmpzIGluIHRoZSBhcnJheSBoYXMgYSBOVUxMIGZlbmNlLCAtRUlOVkFMIHdpbGwgYmUgcmV0dXJuZWQuCisgKiBBc3N1bWluZyB0aGUgc3luY29iaiBzdGFydHMgb2ZmIHdpdGggYSBOVUxMIGZlbmNlLCB0aGlzIGFsbG93cyBhIGNsaWVudAorICogdG8gZG8gYSBob3N0IHdhaXQgaW4gb25lIHRocmVhZCAob3IgcHJvY2Vzcykgd2hpY2ggd2FpdHMgb24gR1BVIHdvcmsKKyAqIHN1Ym1pdHRlZCBpbiBhbm90aGVyIHRocmVhZCAob3IgcHJvY2Vzcykgd2l0aG91dCBoYXZpbmcgdG8gbWFudWFsbHkKKyAqIHN5bmNocm9uaXplIGJldHdlZW4gdGhlIHR3by4KKyAqIFRoaXMgcmVxdWlyZW1lbnQgaXMgaW5oZXJpdGVkIGZyb20gdGhlIFZ1bGthbiBmZW5jZSBBUEkuCisgKgorICoKKyAqIEltcG9ydC9leHBvcnQgb2Ygc3luY29ianMKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAmRFJNX0lPQ1RMX1NZTkNPQkpfRkRfVE9fSEFORExFIGFuZCAmRFJNX0lPQ1RMX1NZTkNPQkpfSEFORExFX1RPX0ZECisgKiBwcm92aWRlIHR3byBtZWNoYW5pc21zIGZvciBpbXBvcnQvZXhwb3J0IG9mIHN5bmNvYmpzLgorICoKKyAqIFRoZSBmaXJzdCBsZXRzIHRoZSBjbGllbnQgaW1wb3J0IG9yIGV4cG9ydCBhbiBlbnRpcmUgc3luY29iaiB0byBhIGZpbGUKKyAqIGRlc2NyaXB0b3IuCisgKiBUaGVzZSBmZCdzIGFyZSBvcGFxdWUgYW5kIGhhdmUgbm8gb3RoZXIgdXNlIGNhc2UsIGV4Y2VwdCBwYXNzaW5nIHRoZQorICogc3luY29iaiBiZXR3ZWVuIHByb2Nlc3Nlcy4KKyAqIEFsbCBleHBvcnRlZCBmaWxlIGRlc2NyaXB0b3JzIGFuZCBhbnkgc3luY29iaiBoYW5kbGVzIGNyZWF0ZWQgYXMgYQorICogcmVzdWx0IG9mIGltcG9ydGluZyB0aG9zZSBmaWxlIGRlc2NyaXB0b3JzIG93biBhIHJlZmVyZW5jZSB0byB0aGUKKyAqIHNhbWUgdW5kZXJseWluZyBzdHJ1Y3QgJmRybV9zeW5jb2JqIGFuZCB0aGUgc3luY29iaiBjYW4gYmUgdXNlZAorICogcGVyc2lzdGVudGx5IGFjcm9zcyBhbGwgdGhlIHByb2Nlc3NlcyB3aXRoIHdoaWNoIGl0IGlzIHNoYXJlZC4KKyAqIFRoZSBzeW5jb2JqIGlzIGZyZWVkIG9ubHkgb25jZSB0aGUgbGFzdCByZWZlcmVuY2UgaXMgZHJvcHBlZC4KKyAqIFVubGlrZSBkbWEtYnVmLCBpbXBvcnRpbmcgYSBzeW5jb2JqIGNyZWF0ZXMgYSBuZXcgaGFuZGxlICh3aXRoIGl0cyBvd24KKyAqIHJlZmVyZW5jZSkgZm9yIGV2ZXJ5IGltcG9ydCBpbnN0ZWFkIG9mIGRlLWR1cGxpY2F0aW5nLgorICogVGhlIHByaW1hcnkgdXNlLWNhc2Ugb2YgdGhpcyBwZXJzaXN0ZW50IGltcG9ydC9leHBvcnQgaXMgZm9yIHNoYXJlZAorICogVnVsa2FuIGZlbmNlcyBhbmQgc2VtYXBob3Jlcy4KKyAqCisgKiBUaGUgc2Vjb25kIGltcG9ydC9leHBvcnQgbWVjaGFuaXNtLCB3aGljaCBpcyBpbmRpY2F0ZWQgYnkKKyAqICZEUk1fU1lOQ09CSl9GRF9UT19IQU5ETEVfRkxBR1NfSU1QT1JUX1NZTkNfRklMRSBvcgorICogJkRSTV9TWU5DT0JKX0hBTkRMRV9UT19GRF9GTEFHU19FWFBPUlRfU1lOQ19GSUxFIGxldHMgdGhlIGNsaWVudAorICogaW1wb3J0L2V4cG9ydCB0aGUgc3luY29iaidzIGN1cnJlbnQgZmVuY2UgZnJvbS90byBhICZzeW5jX2ZpbGUuCisgKiBXaGVuIGEgc3luY29iaiBpcyBleHBvcnRlZCB0byBhIHN5bmMgZmlsZSwgdGhhdCBzeW5jIGZpbGUgd3JhcHMgdGhlCisgKiBzeWNub2JqJ3MgZmVuY2UgYXQgdGhlIHRpbWUgb2YgZXhwb3J0IGFuZCBhbnkgbGF0ZXIgc2lnbmFsIG9yIHJlc2V0CisgKiBvcGVyYXRpb25zIG9uIHRoZSBzeW5jb2JqIHdpbGwgbm90IGFmZmVjdCB0aGUgZXhwb3J0ZWQgc3luYyBmaWxlLgorICogV2hlbiBhIHN5bmMgZmlsZSBpcyBpbXBvcnRlZCBpbnRvIGEgc3luY29iaiwgdGhlIHN5bmNvYmoncyBmZW5jZSBpcyBzZXQKKyAqIHRvIHRoZSBmZW5jZSB3cmFwcGVkIGJ5IHRoYXQgc3luYyBmaWxlLgorICogQmVjYXVzZSBzeW5jIGZpbGVzIGFyZSBpbW11dGFibGUsIHJlc2V0dGluZyBvciBzaWduYWxpbmcgdGhlIHN5bmNvYmoKKyAqIHdpbGwgbm90IGFmZmVjdCBhbnkgc3luYyBmaWxlcyB3aG9zZSBmZW5jZXMgaGF2ZSBiZWVuIGltcG9ydGVkIGludG8gdGhlCisgKiBzeW5jb2JqLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9hbm9uX2lub2Rlcy5oPgpAQCAtNTMsNiArMTI5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zeW5jX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgpAQCAtMTI5NywxNCArMTM3NCwxNCBAQCBpbnQgZHJtX3N5bmNvYmpfcXVlcnlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCXN0cnVjdCBkbWFfZmVuY2UgKml0ZXIsICpsYXN0X3NpZ25hbGVkID0gTlVMTDsKIAogCQkJZG1hX2ZlbmNlX2NoYWluX2Zvcl9lYWNoKGl0ZXIsIGZlbmNlKSB7Ci0JCQkJaWYgKCFpdGVyKQotCQkJCQlicmVhazsKLQkJCQlkbWFfZmVuY2VfcHV0KGxhc3Rfc2lnbmFsZWQpOwotCQkJCWxhc3Rfc2lnbmFsZWQgPSBkbWFfZmVuY2VfZ2V0KGl0ZXIpOwotCQkJCWlmICghdG9fZG1hX2ZlbmNlX2NoYWluKGxhc3Rfc2lnbmFsZWQpLT5wcmV2X3NlcW5vKQorCQkJCWlmIChpdGVyLT5jb250ZXh0ICE9IGZlbmNlLT5jb250ZXh0KSB7CisJCQkJCWRtYV9mZW5jZV9wdXQoaXRlcik7CiAJCQkJCS8qIEl0IGlzIG1vc3QgbGlrZWx5IHRoYXQgdGltZWxpbmUgaGFzCiAJCQkJCSAqIHVub3JkZXIgcG9pbnRzLiAqLwogCQkJCQlicmVhazsKKwkJCQl9CisJCQkJZG1hX2ZlbmNlX3B1dChsYXN0X3NpZ25hbGVkKTsKKwkJCQlsYXN0X3NpZ25hbGVkID0gZG1hX2ZlbmNlX2dldChpdGVyKTsKIAkJCX0KIAkJCXBvaW50ID0gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGxhc3Rfc2lnbmFsZWQpID8KIAkJCQlsYXN0X3NpZ25hbGVkLT5zZXFubyA6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMKaW5kZXggYWQxMDgxMC4uZGQyYmM4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2dmcC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2tkZXZfdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIApAQCAtMjYsNiArMjcsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fc3lzZnMuaD4KIAogI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgorI2luY2x1ZGUgImRybV9jcnRjX2ludGVybmFsLmgiCiAKICNkZWZpbmUgdG9fZHJtX21pbm9yKGQpIGRldl9nZXRfZHJ2ZGF0YShkKQogI2RlZmluZSB0b19kcm1fY29ubmVjdG9yKGQpIGRldl9nZXRfZHJ2ZGF0YShkKQpAQCAtMjk0LDYgKzI5Niw5IEBAIGludCBkcm1fc3lzZnNfY29ubmVjdG9yX2FkZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCS8qIExldCB1c2Vyc3BhY2Uga25vdyB3ZSBoYXZlIGEgbmV3IGNvbm5lY3RvciAqLwogCWRybV9zeXNmc19ob3RwbHVnX2V2ZW50KGRldik7CiAKKwlpZiAoY29ubmVjdG9yLT5kZGMpCisJCXJldHVybiBzeXNmc19jcmVhdGVfbGluaygmY29ubmVjdG9yLT5rZGV2LT5rb2JqLAorCQkJCSAmY29ubmVjdG9yLT5kZGMtPmRldi5rb2JqLCAiZGRjIik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTMwMSw2ICszMDYsMTAgQEAgdm9pZCBkcm1fc3lzZnNfY29ubmVjdG9yX3JlbW92ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCWlmICghY29ubmVjdG9yLT5rZGV2KQogCQlyZXR1cm47CisKKwlpZiAoY29ubmVjdG9yLT5kZGMpCisJCXN5c2ZzX3JlbW92ZV9saW5rKCZjb25uZWN0b3ItPmtkZXYtPmtvYmosICJkZGMiKTsKKwogCURSTV9ERUJVRygicmVtb3ZpbmcgXCIlc1wiIGZyb20gc3lzZnNcbiIsCiAJCSAgY29ubmVjdG9yLT5uYW1lKTsKIApAQCAtMzI1LDYgKzMzNCw5IEBAIHZvaWQgZHJtX3N5c2ZzX2xlYXNlX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAgKiBTZW5kIGEgdWV2ZW50IGZvciB0aGUgRFJNIGRldmljZSBzcGVjaWZpZWQgYnkgQGRldi4gIEN1cnJlbnRseSB3ZSBvbmx5CiAgKiBzZXQgSE9UUExVRz0xIGluIHRoZSB1ZXZlbnQgZW52aXJvbm1lbnQsIGJ1dCB0aGlzIGNvdWxkIGJlIGV4cGFuZGVkIHRvCiAgKiBkZWFsIHdpdGggb3RoZXIgdHlwZXMgb2YgZXZlbnRzLgorICoKKyAqIEFueSBuZXcgdWFwaSBzaG91bGQgYmUgdXNpbmcgdGhlIGRybV9zeXNmc19jb25uZWN0b3Jfc3RhdHVzX2V2ZW50KCkKKyAqIGZvciB1ZXZlbnRzIG9uIGNvbm5lY3RvciBzdGF0dXMgY2hhbmdlLgogICovCiB2b2lkIGRybV9zeXNmc19ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CkBAIC0zMzcsNiArMzQ5LDM3IEBAIHZvaWQgZHJtX3N5c2ZzX2hvdHBsdWdfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3N5c2ZzX2hvdHBsdWdfZXZlbnQpOwogCisvKioKKyAqIGRybV9zeXNmc19jb25uZWN0b3Jfc3RhdHVzX2V2ZW50IC0gZ2VuZXJhdGUgYSBEUk0gdWV2ZW50IGZvciBjb25uZWN0b3IKKyAqIHByb3BlcnR5IHN0YXR1cyBjaGFuZ2UKKyAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciBvbiB3aGljaCBwcm9wZXJ0eSBzdGF0dXMgY2hhbmdlZAorICogQHByb3BlcnR5OiBjb25uZWN0b3IgcHJvcGVydHkgd2hvc2Ugc3RhdHVzIGNoYW5nZWQuCisgKgorICogU2VuZCBhIHVldmVudCBmb3IgdGhlIERSTSBkZXZpY2Ugc3BlY2lmaWVkIGJ5IEBkZXYuICBDdXJyZW50bHkgd2UKKyAqIHNldCBIT1RQTFVHPTEgYW5kIGNvbm5lY3RvciBpZCBhbG9uZyB3aXRoIHRoZSBhdHRhY2hlZCBwcm9wZXJ0eSBpZAorICogcmVsYXRlZCB0byB0aGUgc3RhdHVzIGNoYW5nZS4KKyAqLwordm9pZCBkcm1fc3lzZnNfY29ubmVjdG9yX3N0YXR1c19ldmVudChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCSAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKKwljaGFyIGhvdHBsdWdfc3RyW10gPSAiSE9UUExVRz0xIiwgY29ubl9pZFsyMV0sIHByb3BfaWRbMjFdOworCWNoYXIgKmVudnBbNF0gPSB7IGhvdHBsdWdfc3RyLCBjb25uX2lkLCBwcm9wX2lkLCBOVUxMIH07CisKKwlXQVJOX09OKCFkcm1fbW9kZV9vYmpfZmluZF9wcm9wX2lkKCZjb25uZWN0b3ItPmJhc2UsCisJCQkJCSAgIHByb3BlcnR5LT5iYXNlLmlkKSk7CisKKwlzbnByaW50Zihjb25uX2lkLCBBUlJBWV9TSVpFKGNvbm5faWQpLAorCQkgIkNPTk5FQ1RPUj0ldSIsIGNvbm5lY3Rvci0+YmFzZS5pZCk7CisJc25wcmludGYocHJvcF9pZCwgQVJSQVlfU0laRShwcm9wX2lkKSwKKwkJICJQUk9QRVJUWT0ldSIsIHByb3BlcnR5LT5iYXNlLmlkKTsKKworCURSTV9ERUJVRygiZ2VuZXJhdGluZyBjb25uZWN0b3Igc3RhdHVzIGV2ZW50XG4iKTsKKworCWtvYmplY3RfdWV2ZW50X2VudigmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLCBLT0JKX0NIQU5HRSwgZW52cCk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9zeXNmc19jb25uZWN0b3Jfc3RhdHVzX2V2ZW50KTsKKwogc3RhdGljIHZvaWQgZHJtX3N5c2ZzX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2KQogewogCWtmcmVlKGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwppbmRleCA2MDNhYjEwLi5mZDFmYmM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZnJhbWVidWZmZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9vc19saW51eC5oPgogI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCIKQEAgLTE2NzAsMTIgKzE2NjksMjggQEAgaW50IGRybV93YWl0X3ZibGFua19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCX0KIAogCWlmIChyZXFfc2VxICE9IHNlcSkgeworCQlpbnQgd2FpdDsKKwogCQlEUk1fREVCVUcoIndhaXRpbmcgb24gdmJsYW5rIGNvdW50ICVsbHUsIGNydGMgJXVcbiIsCiAJCQkgIHJlcV9zZXEsIHBpcGUpOwotCQlEUk1fV0FJVF9PTihyZXQsIHZibGFuay0+cXVldWUsIDMgKiBIWiwKLQkJCSAgICB2YmxhbmtfcGFzc2VkKGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSwKLQkJCQkJICByZXFfc2VxKSB8fAotCQkJICAgICFSRUFEX09OQ0UodmJsYW5rLT5lbmFibGVkKSk7CisJCXdhaXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dCh2YmxhbmstPnF1ZXVlLAorCQkJdmJsYW5rX3Bhc3NlZChkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksIHJlcV9zZXEpIHx8CisJCQkJICAgICAgIVJFQURfT05DRSh2YmxhbmstPmVuYWJsZWQpLAorCQkJbXNlY3NfdG9famlmZmllcygzMDAwKSk7CisKKwkJc3dpdGNoICh3YWl0KSB7CisJCWNhc2UgMDoKKwkJCS8qIHRpbWVvdXQgKi8KKwkJCXJldCA9IC1FQlVTWTsKKwkJCWJyZWFrOworCQljYXNlIC1FUkVTVEFSVFNZUzoKKwkJCS8qIGludGVycnVwdGVkIGJ5IHNpZ25hbCAqLworCQkJcmV0ID0gLUVJTlRSOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlyZXQgPSAwOworCQkJYnJlYWs7CisJCX0KIAl9CiAKIAlpZiAocmV0ICE9IC1FSU5UUikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV92bS5jCmluZGV4IDA1ZjdjNTguLjUyZTg3ZTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92bS5jCkBAIC0xLDQgKzEsNCBAQAotLyoqCisvKgogICogXGZpbGUgZHJtX3ZtLmMKICAqIE1lbW9yeSBtYXBwaW5nIGZvciBEUk0KICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYwppbmRleCAxNjBjZTNjLi43ZTRlMjk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfYnVmZmVyLmMKQEAgLTMsNiArMyw4IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBFdG5hdml2IFByb2plY3QKICAqLwogCisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKwogI2luY2x1ZGUgImV0bmF2aXZfY21kYnVmLmgiCiAjaW5jbHVkZSAiZXRuYXZpdl9ncHUuaCIKICNpbmNsdWRlICJldG5hdml2X2dlbS5oIgpAQCAtMTE2LDcgKzExOCw5IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfYnVmZmVyX2R1bXAoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCiAJdTMyICpwdHIgPSBidWYtPnZhZGRyICsgb2ZmOwogCiAJZGV2X2luZm8oZ3B1LT5kZXYsICJ2aXJ0ICVwIHBoeXMgMHglMDh4IGZyZWUgMHglMDh4XG4iLAotCQkJcHRyLCBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoYnVmKSArIG9mZiwgc2l6ZSAtIGxlbiAqIDQgLSBvZmYpOworCQkJcHRyLCBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoYnVmLAorCQkJJmdwdS0+bW11X2NvbnRleHQtPmNtZGJ1Zl9tYXBwaW5nKSArCisJCQlvZmYsIHNpemUgLSBsZW4gKiA0IC0gb2ZmKTsKIAogCXByaW50X2hleF9kdW1wKEtFUk5fSU5GTywgImNtZCAiLCBEVU1QX1BSRUZJWF9PRkZTRVQsIDE2LCA0LAogCQkJcHRyLCBsZW4gKiA0LCAwKTsKQEAgLTE0OSw3ICsxNTMsOSBAQCBzdGF0aWMgdTMyIGV0bmF2aXZfYnVmZmVyX3Jlc2VydmUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCiAJaWYgKGJ1ZmZlci0+dXNlcl9zaXplICsgY21kX2R3b3JkcyAqIHNpemVvZih1NjQpID4gYnVmZmVyLT5zaXplKQogCQlidWZmZXItPnVzZXJfc2l6ZSA9IDA7CiAKLQlyZXR1cm4gZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGJ1ZmZlcikgKyBidWZmZXItPnVzZXJfc2l6ZTsKKwlyZXR1cm4gZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGJ1ZmZlciwKKwkJCQkgICAgICZncHUtPm1tdV9jb250ZXh0LT5jbWRidWZfbWFwcGluZykgKworCSAgICAgICBidWZmZXItPnVzZXJfc2l6ZTsKIH0KIAogdTE2IGV0bmF2aXZfYnVmZmVyX2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCkBAIC0xNjIsOCArMTY4LDkgQEAgdTE2IGV0bmF2aXZfYnVmZmVyX2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJYnVmZmVyLT51c2VyX3NpemUgPSAwOwogCiAJQ01EX1dBSVQoYnVmZmVyKTsKLQlDTURfTElOSyhidWZmZXIsIDIsIGV0bmF2aXZfY21kYnVmX2dldF92YShidWZmZXIpICsKLQkJIGJ1ZmZlci0+dXNlcl9zaXplIC0gNCk7CisJQ01EX0xJTksoYnVmZmVyLCAyLAorCQkgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGJ1ZmZlciwgJmdwdS0+bW11X2NvbnRleHQtPmNtZGJ1Zl9tYXBwaW5nKQorCQkgKyBidWZmZXItPnVzZXJfc2l6ZSAtIDQpOwogCiAJcmV0dXJuIGJ1ZmZlci0+dXNlcl9zaXplIC8gODsKIH0KQEAgLTIwMyw3ICsyMTAsNyBAQCB1MTYgZXRuYXZpdl9idWZmZXJfY29uZmlnX21tdXYyKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1MzIgbXRsYl9hZGRyLCB1MzIgc2FmZQogCXJldHVybiBidWZmZXItPnVzZXJfc2l6ZSAvIDg7CiB9CiAKLXUxNiBldG5hdml2X2J1ZmZlcl9jb25maWdfcHRhKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQordTE2IGV0bmF2aXZfYnVmZmVyX2NvbmZpZ19wdGEoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHVuc2lnbmVkIHNob3J0IGlkKQogewogCXN0cnVjdCBldG5hdml2X2NtZGJ1ZiAqYnVmZmVyID0gJmdwdS0+YnVmZmVyOwogCkBAIC0yMTIsNyArMjE5LDcgQEAgdTE2IGV0bmF2aXZfYnVmZmVyX2NvbmZpZ19wdGEoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJYnVmZmVyLT51c2VyX3NpemUgPSAwOwogCiAJQ01EX0xPQURfU1RBVEUoYnVmZmVyLCBWSVZTX01NVXYyX1BUQV9DT05GSUcsCi0JCSAgICAgICBWSVZTX01NVXYyX1BUQV9DT05GSUdfSU5ERVgoMCkpOworCQkgICAgICAgVklWU19NTVV2Ml9QVEFfQ09ORklHX0lOREVYKGlkKSk7CiAKIAlDTURfRU5EKGJ1ZmZlcik7CiAKQEAgLTI4OSw4ICsyOTYsOSBAQCB2b2lkIGV0bmF2aXZfc3luY19wb2ludF9xdWV1ZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdW5zaWduZWQgaW50IGV2ZW50KQogCiAJLyogQXBwZW5kIHdhaXRsaW5rICovCiAJQ01EX1dBSVQoYnVmZmVyKTsKLQlDTURfTElOSyhidWZmZXIsIDIsIGV0bmF2aXZfY21kYnVmX2dldF92YShidWZmZXIpICsKLQkJCSAgICBidWZmZXItPnVzZXJfc2l6ZSAtIDQpOworCUNNRF9MSU5LKGJ1ZmZlciwgMiwKKwkJIGV0bmF2aXZfY21kYnVmX2dldF92YShidWZmZXIsICZncHUtPm1tdV9jb250ZXh0LT5jbWRidWZfbWFwcGluZykKKwkJICsgYnVmZmVyLT51c2VyX3NpemUgLSA0KTsKIAogCS8qCiAJICogS2ljayBvZmYgdGhlICdzeW5jIHBvaW50JyBjb21tYW5kIGJ5IHJlcGxhY2luZyB0aGUgcHJldmlvdXMKQEAgLTMwNCwzNiArMzEyLDQxIEBAIHZvaWQgZXRuYXZpdl9zeW5jX3BvaW50X3F1ZXVlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1bnNpZ25lZCBpbnQgZXZlbnQpCiAKIC8qIEFwcGVuZCBhIGNvbW1hbmQgYnVmZmVyIHRvIHRoZSByaW5nIGJ1ZmZlci4gKi8KIHZvaWQgZXRuYXZpdl9idWZmZXJfcXVldWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHUzMiBleGVjX3N0YXRlLAotCXVuc2lnbmVkIGludCBldmVudCwgc3RydWN0IGV0bmF2aXZfY21kYnVmICpjbWRidWYpCisJc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqbW11X2NvbnRleHQsIHVuc2lnbmVkIGludCBldmVudCwKKwlzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmNtZGJ1ZikKIHsKIAlzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmJ1ZmZlciA9ICZncHUtPmJ1ZmZlcjsKIAl1bnNpZ25lZCBpbnQgd2FpdGxpbmtfb2Zmc2V0ID0gYnVmZmVyLT51c2VyX3NpemUgLSAxNjsKIAl1MzIgcmV0dXJuX3RhcmdldCwgcmV0dXJuX2R3b3JkczsKIAl1MzIgbGlua190YXJnZXQsIGxpbmtfZHdvcmRzOwogCWJvb2wgc3dpdGNoX2NvbnRleHQgPSBncHUtPmV4ZWNfc3RhdGUgIT0gZXhlY19zdGF0ZTsKKwlib29sIHN3aXRjaF9tbXVfY29udGV4dCA9IGdwdS0+bW11X2NvbnRleHQgIT0gbW11X2NvbnRleHQ7CisJdW5zaWduZWQgaW50IG5ld19mbHVzaF9zZXEgPSBSRUFEX09OQ0UoZ3B1LT5tbXVfY29udGV4dC0+Zmx1c2hfc2VxKTsKKwlib29sIG5lZWRfZmx1c2ggPSBzd2l0Y2hfbW11X2NvbnRleHQgfHwgZ3B1LT5mbHVzaF9zZXEgIT0gbmV3X2ZsdXNoX3NlcTsKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmdwdS0+bG9jayk7CiAKIAlpZiAoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikKIAkJZXRuYXZpdl9idWZmZXJfZHVtcChncHUsIGJ1ZmZlciwgMCwgMHg1MCk7CiAKLQlsaW5rX3RhcmdldCA9IGV0bmF2aXZfY21kYnVmX2dldF92YShjbWRidWYpOworCWxpbmtfdGFyZ2V0ID0gZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGNtZGJ1ZiwKKwkJCQkJICAgICZncHUtPm1tdV9jb250ZXh0LT5jbWRidWZfbWFwcGluZyk7CiAJbGlua19kd29yZHMgPSBjbWRidWYtPnNpemUgLyA4OwogCiAJLyoKLQkgKiBJZiB3ZSBuZWVkIG1haW50YW5lbmNlIHByaW9yIHRvIHN1Ym1pdHRpbmcgdGhpcyBidWZmZXIsIHdlIHdpbGwKKwkgKiBJZiB3ZSBuZWVkIG1haW50ZW5hbmNlIHByaW9yIHRvIHN1Ym1pdHRpbmcgdGhpcyBidWZmZXIsIHdlIHdpbGwKIAkgKiBuZWVkIHRvIGFwcGVuZCBhIG1tdSBmbHVzaCBsb2FkIHN0YXRlLCBmb2xsb3dlZCBieSBhIG5ldwogCSAqIGxpbmsgdG8gdGhpcyBidWZmZXIgLSBhIHRvdGFsIG9mIGZvdXIgYWRkaXRpb25hbCB3b3Jkcy4KIAkgKi8KLQlpZiAoZ3B1LT5tbXUtPm5lZWRfZmx1c2ggfHwgc3dpdGNoX2NvbnRleHQpIHsKKwlpZiAobmVlZF9mbHVzaCB8fCBzd2l0Y2hfY29udGV4dCkgewogCQl1MzIgdGFyZ2V0LCBleHRyYV9kd29yZHM7CiAKIAkJLyogbGluayBjb21tYW5kICovCiAJCWV4dHJhX2R3b3JkcyA9IDE7CiAKIAkJLyogZmx1c2ggY29tbWFuZCAqLwotCQlpZiAoZ3B1LT5tbXUtPm5lZWRfZmx1c2gpIHsKLQkJCWlmIChncHUtPm1tdS0+dmVyc2lvbiA9PSBFVE5BVklWX0lPTU1VX1YxKQorCQlpZiAobmVlZF9mbHVzaCkgeworCQkJaWYgKGdwdS0+bW11X2NvbnRleHQtPmdsb2JhbC0+dmVyc2lvbiA9PSBFVE5BVklWX0lPTU1VX1YxKQogCQkJCWV4dHJhX2R3b3JkcyArPSAxOwogCQkJZWxzZQogCQkJCWV4dHJhX2R3b3JkcyArPSAzOwpAQCAtMzQzLDExICszNTYsMjggQEAgdm9pZCBldG5hdml2X2J1ZmZlcl9xdWV1ZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdTMyIGV4ZWNfc3RhdGUsCiAJCWlmIChzd2l0Y2hfY29udGV4dCkKIAkJCWV4dHJhX2R3b3JkcyArPSA0OwogCi0JCXRhcmdldCA9IGV0bmF2aXZfYnVmZmVyX3Jlc2VydmUoZ3B1LCBidWZmZXIsIGV4dHJhX2R3b3Jkcyk7CisJCS8qIFBUQSBsb2FkIGNvbW1hbmQgKi8KKwkJaWYgKHN3aXRjaF9tbXVfY29udGV4dCAmJiBncHUtPnNlY19tb2RlID09IEVUTkFfU0VDX0tFUk5FTCkKKwkJCWV4dHJhX2R3b3JkcyArPSAxOwogCi0JCWlmIChncHUtPm1tdS0+bmVlZF9mbHVzaCkgeworCQl0YXJnZXQgPSBldG5hdml2X2J1ZmZlcl9yZXNlcnZlKGdwdSwgYnVmZmVyLCBleHRyYV9kd29yZHMpOworCQkvKgorCQkgKiBTd2l0Y2ggTU1VIGNvbnRleHQgaWYgbmVjZXNzYXJ5LiBNdXN0IGJlIGRvbmUgYWZ0ZXIgdGhlCisJCSAqIGxpbmsgdGFyZ2V0IGhhcyBiZWVuIGNhbGN1bGF0ZWQsIGFzIHRoZSBqdW1wIGZvcndhcmQgaW4gdGhlCisJCSAqIGtlcm5lbCByaW5nIHN0aWxsIHVzZXMgdGhlIGxhc3QgYWN0aXZlIE1NVSBjb250ZXh0IGJlZm9yZQorCQkgKiB0aGUgc3dpdGNoLgorCQkgKi8KKwkJaWYgKHN3aXRjaF9tbXVfY29udGV4dCkgeworCQkJc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqb2xkX2NvbnRleHQgPSBncHUtPm1tdV9jb250ZXh0OworCisJCQlldG5hdml2X2lvbW11X2NvbnRleHRfZ2V0KG1tdV9jb250ZXh0KTsKKwkJCWdwdS0+bW11X2NvbnRleHQgPSBtbXVfY29udGV4dDsKKwkJCWV0bmF2aXZfaW9tbXVfY29udGV4dF9wdXQob2xkX2NvbnRleHQpOworCQl9CisKKwkJaWYgKG5lZWRfZmx1c2gpIHsKIAkJCS8qIEFkZCB0aGUgTU1VIGZsdXNoICovCi0JCQlpZiAoZ3B1LT5tbXUtPnZlcnNpb24gPT0gRVROQVZJVl9JT01NVV9WMSkgeworCQkJaWYgKGdwdS0+bW11X2NvbnRleHQtPmdsb2JhbC0+dmVyc2lvbiA9PSBFVE5BVklWX0lPTU1VX1YxKSB7CiAJCQkJQ01EX0xPQURfU1RBVEUoYnVmZmVyLCBWSVZTX0dMX0ZMVVNIX01NVSwKIAkJCQkJICAgICAgIFZJVlNfR0xfRkxVU0hfTU1VX0ZMVVNIX0ZFTU1VIHwKIAkJCQkJICAgICAgIFZJVlNfR0xfRkxVU0hfTU1VX0ZMVVNIX1VOSzEgfApAQCAtMzU1LDE3ICszODUsMzAgQEAgdm9pZCBldG5hdml2X2J1ZmZlcl9xdWV1ZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdTMyIGV4ZWNfc3RhdGUsCiAJCQkJCSAgICAgICBWSVZTX0dMX0ZMVVNIX01NVV9GTFVTSF9QRU1NVSB8CiAJCQkJCSAgICAgICBWSVZTX0dMX0ZMVVNIX01NVV9GTFVTSF9VTks0KTsKIAkJCX0gZWxzZSB7CisJCQkJdTMyIGZsdXNoID0gVklWU19NTVV2Ml9DT05GSUdVUkFUSU9OX01PREVfTUFTSyB8CisJCQkJCSAgICBWSVZTX01NVXYyX0NPTkZJR1VSQVRJT05fRkxVU0hfRkxVU0g7CisKKwkJCQlpZiAoc3dpdGNoX21tdV9jb250ZXh0ICYmCisJCQkJICAgIGdwdS0+c2VjX21vZGUgPT0gRVROQV9TRUNfS0VSTkVMKSB7CisJCQkJCXVuc2lnbmVkIHNob3J0IGlkID0KKwkJCQkJCWV0bmF2aXZfaW9tbXV2Ml9nZXRfcHRhX2lkKGdwdS0+bW11X2NvbnRleHQpOworCQkJCQlDTURfTE9BRF9TVEFURShidWZmZXIsCisJCQkJCQlWSVZTX01NVXYyX1BUQV9DT05GSUcsCisJCQkJCQlWSVZTX01NVXYyX1BUQV9DT05GSUdfSU5ERVgoaWQpKTsKKwkJCQl9CisKKwkJCQlpZiAoZ3B1LT5zZWNfbW9kZSA9PSBFVE5BX1NFQ19OT05FKQorCQkJCQlmbHVzaCB8PSBldG5hdml2X2lvbW11djJfZ2V0X210bGJfYWRkcihncHUtPm1tdV9jb250ZXh0KTsKKwogCQkJCUNNRF9MT0FEX1NUQVRFKGJ1ZmZlciwgVklWU19NTVV2Ml9DT05GSUdVUkFUSU9OLAotCQkJCQlWSVZTX01NVXYyX0NPTkZJR1VSQVRJT05fTU9ERV9NQVNLIHwKLQkJCQkJVklWU19NTVV2Ml9DT05GSUdVUkFUSU9OX0FERFJFU1NfTUFTSyB8Ci0JCQkJCVZJVlNfTU1VdjJfQ09ORklHVVJBVElPTl9GTFVTSF9GTFVTSCk7CisJCQkJCSAgICAgICBmbHVzaCk7CiAJCQkJQ01EX1NFTShidWZmZXIsIFNZTkNfUkVDSVBJRU5UX0ZFLAogCQkJCQlTWU5DX1JFQ0lQSUVOVF9QRSk7CiAJCQkJQ01EX1NUQUxMKGJ1ZmZlciwgU1lOQ19SRUNJUElFTlRfRkUsCiAJCQkJCVNZTkNfUkVDSVBJRU5UX1BFKTsKIAkJCX0KIAotCQkJZ3B1LT5tbXUtPm5lZWRfZmx1c2ggPSBmYWxzZTsKKwkJCWdwdS0+Zmx1c2hfc2VxID0gbmV3X2ZsdXNoX3NlcTsKIAkJfQogCiAJCWlmIChzd2l0Y2hfY29udGV4dCkgewpAQCAtMzc0LDYgKzQxNyw4IEBAIHZvaWQgZXRuYXZpdl9idWZmZXJfcXVldWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHUzMiBleGVjX3N0YXRlLAogCQl9CiAKIAkJLyogQW5kIHRoZSBsaW5rIHRvIHRoZSBzdWJtaXR0ZWQgYnVmZmVyICovCisJCWxpbmtfdGFyZ2V0ID0gZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGNtZGJ1ZiwKKwkJCQkJJmdwdS0+bW11X2NvbnRleHQtPmNtZGJ1Zl9tYXBwaW5nKTsKIAkJQ01EX0xJTksoYnVmZmVyLCBsaW5rX2R3b3JkcywgbGlua190YXJnZXQpOwogCiAJCS8qIFVwZGF0ZSB0aGUgbGluayB0YXJnZXQgdG8gcG9pbnQgdG8gYWJvdmUgaW5zdHJ1Y3Rpb25zICovCkBAIC00MTAsMTIgKzQ1NSwxNCBAQCB2b2lkIGV0bmF2aXZfYnVmZmVyX3F1ZXVlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1MzIgZXhlY19zdGF0ZSwKIAlDTURfTE9BRF9TVEFURShidWZmZXIsIFZJVlNfR0xfRVZFTlQsIFZJVlNfR0xfRVZFTlRfRVZFTlRfSUQoZXZlbnQpIHwKIAkJICAgICAgIFZJVlNfR0xfRVZFTlRfRlJPTV9QRSk7CiAJQ01EX1dBSVQoYnVmZmVyKTsKLQlDTURfTElOSyhidWZmZXIsIDIsIGV0bmF2aXZfY21kYnVmX2dldF92YShidWZmZXIpICsKLQkJCSAgICBidWZmZXItPnVzZXJfc2l6ZSAtIDQpOworCUNNRF9MSU5LKGJ1ZmZlciwgMiwKKwkJIGV0bmF2aXZfY21kYnVmX2dldF92YShidWZmZXIsICZncHUtPm1tdV9jb250ZXh0LT5jbWRidWZfbWFwcGluZykKKwkJICsgYnVmZmVyLT51c2VyX3NpemUgLSA0KTsKIAogCWlmIChkcm1fZGVidWcgJiBEUk1fVVRfRFJJVkVSKQogCQlwcl9pbmZvKCJzdHJlYW0gbGluayB0byAweCUwOHggQCAweCUwOHggJXBcbiIsCi0JCQlyZXR1cm5fdGFyZ2V0LCBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoY21kYnVmKSwKKwkJCXJldHVybl90YXJnZXQsCisJCQlldG5hdml2X2NtZGJ1Zl9nZXRfdmEoY21kYnVmLCAmZ3B1LT5tbXVfY29udGV4dC0+Y21kYnVmX21hcHBpbmcpLAogCQkJY21kYnVmLT52YWRkcik7CiAKIAlpZiAoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9jbWRidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfY21kYnVmLmMKaW5kZXggYTNjNDRmMS4uOWRjMjBkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9jbWRidWYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2NtZGJ1Zi5jCkBAIC0zLDI3ICszLDI2IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBFdG5hdml2IFByb2plY3QKICAqLwogCisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fbW0uaD4KIAogI2luY2x1ZGUgImV0bmF2aXZfY21kYnVmLmgiCisjaW5jbHVkZSAiZXRuYXZpdl9nZW0uaCIKICNpbmNsdWRlICJldG5hdml2X2dwdS5oIgogI2luY2x1ZGUgImV0bmF2aXZfbW11LmgiCiAjaW5jbHVkZSAiZXRuYXZpdl9wZXJmbW9uLmgiCiAKLSNkZWZpbmUgU1VCQUxMT0NfU0laRQkJU1pfMjU2SworI2RlZmluZSBTVUJBTExPQ19TSVpFCQlTWl81MTJLCiAjZGVmaW5lIFNVQkFMTE9DX0dSQU5VTEUJU1pfNEsKICNkZWZpbmUgU1VCQUxMT0NfR1JBTlVMRVMJKFNVQkFMTE9DX1NJWkUgLyBTVUJBTExPQ19HUkFOVUxFKQogCiBzdHJ1Y3QgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2MgewogCS8qIHN1YmFsbG9jYXRlZCBkbWEgYnVmZmVyIHByb3BlcnRpZXMgKi8KLQlzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJdm9pZCAqdmFkZHI7CiAJZG1hX2FkZHJfdCBwYWRkcjsKIAotCS8qIEdQVSBtYXBwaW5nICovCi0JdTMyIGlvdmE7Ci0Jc3RydWN0IGRybV9tbV9ub2RlIHZyYW1fbm9kZTsgLyogb25seSB1c2VkIG9uIE1NVXYyICovCi0KIAkvKiBhbGxvY2F0aW9uIG1hbmFnZW1lbnQgKi8KIAlzdHJ1Y3QgbXV0ZXggbG9jazsKIAlERUNMQVJFX0JJVE1BUChncmFudWxlX21hcCwgU1VCQUxMT0NfR1JBTlVMRVMpOwpAQCAtMzIsNyArMzEsNyBAQCBzdHJ1Y3QgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2MgewogfTsKIAogc3RydWN0IGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jICoKLWV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX25ldyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKiBncHUpCitldG5hdml2X2NtZGJ1Zl9zdWJhbGxvY19uZXcoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYyAqc3ViYWxsb2M7CiAJaW50IHJldDsKQEAgLTQxLDM2ICs0MCw0NCBAQCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvY19uZXcoc3RydWN0IGV0bmF2aXZfZ3B1ICogZ3B1KQogCWlmICghc3ViYWxsb2MpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0Jc3ViYWxsb2MtPmdwdSA9IGdwdTsKKwlzdWJhbGxvYy0+ZGV2ID0gZGV2OwogCW11dGV4X2luaXQoJnN1YmFsbG9jLT5sb2NrKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzdWJhbGxvYy0+ZnJlZV9ldmVudCk7CiAKLQlzdWJhbGxvYy0+dmFkZHIgPSBkbWFfYWxsb2Nfd2MoZ3B1LT5kZXYsIFNVQkFMTE9DX1NJWkUsCisJQlVJTERfQlVHX09OKEVUTkFWSVZfU09GVFBJTl9TVEFSVF9BRERSRVNTIDwgU1VCQUxMT0NfU0laRSk7CisJc3ViYWxsb2MtPnZhZGRyID0gZG1hX2FsbG9jX3djKGRldiwgU1VCQUxMT0NfU0laRSwKIAkJCQkgICAgICAgJnN1YmFsbG9jLT5wYWRkciwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzdWJhbGxvYy0+dmFkZHIpCisJaWYgKCFzdWJhbGxvYy0+dmFkZHIpIHsKKwkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBmcmVlX3N1YmFsbG9jOwotCi0JcmV0ID0gZXRuYXZpdl9pb21tdV9nZXRfc3ViYWxsb2NfdmEoZ3B1LCBzdWJhbGxvYy0+cGFkZHIsCi0JCQkJCSAgICAmc3ViYWxsb2MtPnZyYW1fbm9kZSwgU1VCQUxMT0NfU0laRSwKLQkJCQkJICAgICZzdWJhbGxvYy0+aW92YSk7Ci0JaWYgKHJldCkKLQkJZ290byBmcmVlX2RtYTsKKwl9CiAKIAlyZXR1cm4gc3ViYWxsb2M7CiAKLWZyZWVfZG1hOgotCWRtYV9mcmVlX3djKGdwdS0+ZGV2LCBTVUJBTExPQ19TSVpFLCBzdWJhbGxvYy0+dmFkZHIsIHN1YmFsbG9jLT5wYWRkcik7CiBmcmVlX3N1YmFsbG9jOgogCWtmcmVlKHN1YmFsbG9jKTsKIAotCXJldHVybiBOVUxMOworCXJldHVybiBFUlJfUFRSKHJldCk7Cit9CisKK2ludCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvY19tYXAoc3RydWN0IGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jICpzdWJhbGxvYywKKwkJCQlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0LAorCQkJCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZywKKwkJCQl1MzIgbWVtb3J5X2Jhc2UpCit7CisJcmV0dXJuIGV0bmF2aXZfaW9tbXVfZ2V0X3N1YmFsbG9jX3ZhKGNvbnRleHQsIG1hcHBpbmcsIG1lbW9yeV9iYXNlLAorCQkJCQkgICAgIHN1YmFsbG9jLT5wYWRkciwgU1VCQUxMT0NfU0laRSk7Cit9CisKK3ZvaWQgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfdW5tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwKKwkJCQkgICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcpCit7CisJZXRuYXZpdl9pb21tdV9wdXRfc3ViYWxsb2NfdmEoY29udGV4dCwgbWFwcGluZyk7CiB9CiAKIHZvaWQgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfZGVzdHJveShzdHJ1Y3QgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2MgKnN1YmFsbG9jKQogewotCWV0bmF2aXZfaW9tbXVfcHV0X3N1YmFsbG9jX3ZhKHN1YmFsbG9jLT5ncHUsICZzdWJhbGxvYy0+dnJhbV9ub2RlLAotCQkJCSAgICAgIFNVQkFMTE9DX1NJWkUsIHN1YmFsbG9jLT5pb3ZhKTsKLQlkbWFfZnJlZV93YyhzdWJhbGxvYy0+Z3B1LT5kZXYsIFNVQkFMTE9DX1NJWkUsIHN1YmFsbG9jLT52YWRkciwKKwlkbWFfZnJlZV93YyhzdWJhbGxvYy0+ZGV2LCBTVUJBTExPQ19TSVpFLCBzdWJhbGxvYy0+dmFkZHIsCiAJCSAgICBzdWJhbGxvYy0+cGFkZHIpOwogCWtmcmVlKHN1YmFsbG9jKTsKIH0KQEAgLTk1LDcgKzEwMiw3IEBAIGludCBldG5hdml2X2NtZGJ1Zl9pbml0KHN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYyAqc3ViYWxsb2MsCiAJCQkJCQkgICAgICAgc3ViYWxsb2MtPmZyZWVfc3BhY2UsCiAJCQkJCQkgICAgICAgbXNlY3NfdG9famlmZmllcygxMCAqIDEwMDApKTsKIAkJaWYgKCFyZXQpIHsKLQkJCWRldl9lcnIoc3ViYWxsb2MtPmdwdS0+ZGV2LAorCQkJZGV2X2VycihzdWJhbGxvYy0+ZGV2LAogCQkJCSJUaW1lb3V0IHdhaXRpbmcgZm9yIGNtZGJ1ZiBzcGFjZVxuIik7CiAJCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAkJfQpAQCAtMTIzLDkgKzEzMCwxMCBAQCB2b2lkIGV0bmF2aXZfY21kYnVmX2ZyZWUoc3RydWN0IGV0bmF2aXZfY21kYnVmICpjbWRidWYpCiAJd2FrZV91cF9hbGwoJnN1YmFsbG9jLT5mcmVlX2V2ZW50KTsKIH0KIAotdTMyIGV0bmF2aXZfY21kYnVmX2dldF92YShzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmJ1ZikKK3UzMiBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoc3RydWN0IGV0bmF2aXZfY21kYnVmICpidWYsCisJCQkgIHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZykKIHsKLQlyZXR1cm4gYnVmLT5zdWJhbGxvYy0+aW92YSArIGJ1Zi0+c3ViYWxsb2Nfb2Zmc2V0OworCXJldHVybiBtYXBwaW5nLT5pb3ZhICsgYnVmLT5zdWJhbGxvY19vZmZzZXQ7CiB9CiAKIGRtYV9hZGRyX3QgZXRuYXZpdl9jbWRidWZfZ2V0X3BhKHN0cnVjdCBldG5hdml2X2NtZGJ1ZiAqYnVmKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9jbWRidWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfY21kYnVmLmgKaW5kZXggNGQ1ZDFhNy4uYWQ2ZmQ4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9jbWRidWYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2NtZGJ1Zi5oCkBAIC04LDcgKzgsOSBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAotc3RydWN0IGV0bmF2aXZfZ3B1Oworc3RydWN0IGRldmljZTsKK3N0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQ7CitzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmc7CiBzdHJ1Y3QgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2M7CiBzdHJ1Y3QgZXRuYXZpdl9wZXJmbW9uX3JlcXVlc3Q7CiAKQEAgLTIzLDE1ICsyNSwyMiBAQCBzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgewogfTsKIAogc3RydWN0IGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jICoKLWV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX25ldyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKiBncHUpOworZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfbmV3KHN0cnVjdCBkZXZpY2UgKmRldik7CiB2b2lkIGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX2Rlc3Ryb3koc3RydWN0IGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jICpzdWJhbGxvYyk7CitpbnQgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfbWFwKHN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYyAqc3ViYWxsb2MsCisJCQkJc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwKKwkJCQlzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcsCisJCQkJdTMyIG1lbW9yeV9iYXNlKTsKK3ZvaWQgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfdW5tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwKKwkJCQkgICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcpOwogCiAKIGludCBldG5hdml2X2NtZGJ1Zl9pbml0KHN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYyAqc3ViYWxsb2MsCiAJCXN0cnVjdCBldG5hdml2X2NtZGJ1ZiAqY21kYnVmLCB1MzIgc2l6ZSk7CiB2b2lkIGV0bmF2aXZfY21kYnVmX2ZyZWUoc3RydWN0IGV0bmF2aXZfY21kYnVmICpjbWRidWYpOwogCi11MzIgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKHN0cnVjdCBldG5hdml2X2NtZGJ1ZiAqYnVmKTsKK3UzMiBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoc3RydWN0IGV0bmF2aXZfY21kYnVmICpidWYsCisJCQkgIHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZyk7CiBkbWFfYWRkcl90IGV0bmF2aXZfY21kYnVmX2dldF9wYShzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmJ1Zik7CiAKICNlbmRpZiAvKiBfX0VUTkFWSVZfQ01EQlVGX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHJ2LmMKaW5kZXggN2ViN2NmOS4uMWY5YzAxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2Rydi5jCkBAIC00LDggKzQsMTcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+CiAKICNpbmNsdWRlICJldG5hdml2X2NtZGJ1Zi5oIgogI2luY2x1ZGUgImV0bmF2aXZfZHJ2LmgiCkBAIC00MSwxMiArNTAsMTkgQEAgc3RhdGljIGludCBldG5hdml2X29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQogewogCXN0cnVjdCBldG5hdml2X2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZXRuYXZpdl9maWxlX3ByaXZhdGUgKmN0eDsKLQlpbnQgaTsKKwlpbnQgcmV0LCBpOwogCiAJY3R4ID0ga3phbGxvYyhzaXplb2YoKmN0eCksIEdGUF9LRVJORUwpOwogCWlmICghY3R4KQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWN0eC0+bW11ID0gZXRuYXZpdl9pb21tdV9jb250ZXh0X2luaXQocHJpdi0+bW11X2dsb2JhbCwKKwkJCQkJICAgICAgcHJpdi0+Y21kYnVmX3N1YmFsbG9jKTsKKwlpZiAoIWN0eC0+bW11KSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCiAJZm9yIChpID0gMDsgaSA8IEVUTkFfTUFYX1BJUEVTOyBpKyspIHsKIAkJc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUgPSBwcml2LT5ncHVbaV07CiAJCXN0cnVjdCBkcm1fc2NoZWRfcnEgKnJxOwpAQCAtNjEsNiArNzcsMTAgQEAgc3RhdGljIGludCBldG5hdml2X29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQogCWZpbGUtPmRyaXZlcl9wcml2ID0gY3R4OwogCiAJcmV0dXJuIDA7CisKK291dF9mcmVlOgorCWtmcmVlKGN0eCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgZXRuYXZpdl9wb3N0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQpAQCAtNzYsNiArOTYsOCBAQCBzdGF0aWMgdm9pZCBldG5hdml2X3Bvc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiAJCQlkcm1fc2NoZWRfZW50aXR5X2Rlc3Ryb3koJmN0eC0+c2NoZWRfZW50aXR5W2ldKTsKIAl9CiAKKwlldG5hdml2X2lvbW11X2NvbnRleHRfcHV0KGN0eC0+bW11KTsKKwogCWtmcmVlKGN0eCk7CiB9CiAKQEAgLTEwNywxMiArMTI5LDI5IEBAIHN0YXRpYyBpbnQgZXRuYXZpdl9tbV9zaG93KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBzZXFfZmlsZSAqbSkKIHN0YXRpYyBpbnQgZXRuYXZpdl9tbXVfc2hvdyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgc3RydWN0IHNlcV9maWxlICptKQogewogCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7CisJc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqbW11X2NvbnRleHQ7CiAKIAlzZXFfcHJpbnRmKG0sICJBY3RpdmUgT2JqZWN0cyAoJXMpOlxuIiwgZGV2X25hbWUoZ3B1LT5kZXYpKTsKIAotCW11dGV4X2xvY2soJmdwdS0+bW11LT5sb2NrKTsKLQlkcm1fbW1fcHJpbnQoJmdwdS0+bW11LT5tbSwgJnApOwotCW11dGV4X3VubG9jaygmZ3B1LT5tbXUtPmxvY2spOworCS8qCisJICogTG9jayB0aGUgR1BVIHRvIGF2b2lkIGEgTU1VIGNvbnRleHQgc3dpdGNoIGp1c3Qgbm93IGFuZCBlbGV2YXRlCisJICogdGhlIHJlZmNvdW50IG9mIHRoZSBjdXJyZW50IGNvbnRleHQgdG8gYXZvaWQgaXQgZGlzYXBwZWFyaW5nIGZyb20KKwkgKiB1bmRlciBvdXIgZmVldC4KKwkgKi8KKwltdXRleF9sb2NrKCZncHUtPmxvY2spOworCW1tdV9jb250ZXh0ID0gZ3B1LT5tbXVfY29udGV4dDsKKwlpZiAobW11X2NvbnRleHQpCisJCWV0bmF2aXZfaW9tbXVfY29udGV4dF9nZXQobW11X2NvbnRleHQpOworCW11dGV4X3VubG9jaygmZ3B1LT5sb2NrKTsKKworCWlmICghbW11X2NvbnRleHQpCisJCXJldHVybiAwOworCisJbXV0ZXhfbG9jaygmbW11X2NvbnRleHQtPmxvY2spOworCWRybV9tbV9wcmludCgmbW11X2NvbnRleHQtPm1tLCAmcCk7CisJbXV0ZXhfdW5sb2NrKCZtbXVfY29udGV4dC0+bG9jayk7CisKKwlldG5hdml2X2lvbW11X2NvbnRleHRfcHV0KG1tdV9jb250ZXh0KTsKIAogCXJldHVybiAwOwogfQpAQCAtNDMwLDE3ICs0NjksMTcgQEAgc3RhdGljIGludCBldG5hdml2X2lvY3RsX3BtX3F1ZXJ5X3NpZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBldG5hdml2X2lvY3Rsc1tdID0gewogI2RlZmluZSBFVE5BX0lPQ1RMKG4sIGZ1bmMsIGZsYWdzKSBcCiAJRFJNX0lPQ1RMX0RFRl9EUlYoRVROQVZJVl8jI24sIGV0bmF2aXZfaW9jdGxfIyNmdW5jLCBmbGFncykKLQlFVE5BX0lPQ1RMKEdFVF9QQVJBTSwgICAgZ2V0X3BhcmFtLCAgICBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKEdFTV9ORVcsICAgICAgZ2VtX25ldywgICAgICBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKEdFTV9JTkZPLCAgICAgZ2VtX2luZm8sICAgICBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKEdFTV9DUFVfUFJFUCwgZ2VtX2NwdV9wcmVwLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKEdFTV9DUFVfRklOSSwgZ2VtX2NwdV9maW5pLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKEdFTV9TVUJNSVQsICAgZ2VtX3N1Ym1pdCwgICBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKFdBSVRfRkVOQ0UsICAgd2FpdF9mZW5jZSwgICBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKEdFTV9VU0VSUFRSLCAgZ2VtX3VzZXJwdHIsICBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKEdFTV9XQUlULCAgICAgZ2VtX3dhaXQsICAgICBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKFBNX1FVRVJZX0RPTSwgcG1fcXVlcnlfZG9tLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlFVE5BX0lPQ1RMKFBNX1FVRVJZX1NJRywgcG1fcXVlcnlfc2lnLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKEdFVF9QQVJBTSwgICAgZ2V0X3BhcmFtLCAgICBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKEdFTV9ORVcsICAgICAgZ2VtX25ldywgICAgICBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKEdFTV9JTkZPLCAgICAgZ2VtX2luZm8sICAgICBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKEdFTV9DUFVfUFJFUCwgZ2VtX2NwdV9wcmVwLCBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKEdFTV9DUFVfRklOSSwgZ2VtX2NwdV9maW5pLCBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKEdFTV9TVUJNSVQsICAgZ2VtX3N1Ym1pdCwgICBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKFdBSVRfRkVOQ0UsICAgd2FpdF9mZW5jZSwgICBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKEdFTV9VU0VSUFRSLCAgZ2VtX3VzZXJwdHIsICBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKEdFTV9XQUlULCAgICAgZ2VtX3dhaXQsICAgICBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKFBNX1FVRVJZX0RPTSwgcG1fcXVlcnlfZG9tLCBEUk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKFBNX1FVRVJZX1NJRywgcG1fcXVlcnlfc2lnLCBEUk1fUkVOREVSX0FMTE9XKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgdm1fb3BzID0gewpAQCAtNDYyLDE3ICs1MDEsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZm9wcyA9IHsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBldG5hdml2X2RybV9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcyAgICA9IERSSVZFUl9HRU0gfAotCQkJCURSSVZFUl9QUklNRSB8Ci0JCQkJRFJJVkVSX1JFTkRFUiwKKwkuZHJpdmVyX2ZlYXR1cmVzICAgID0gRFJJVkVSX0dFTSB8IERSSVZFUl9SRU5ERVIsCiAJLm9wZW4gICAgICAgICAgICAgICA9IGV0bmF2aXZfb3BlbiwKIAkucG9zdGNsb3NlICAgICAgICAgICA9IGV0bmF2aXZfcG9zdGNsb3NlLAogCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBldG5hdml2X2dlbV9mcmVlX29iamVjdCwKIAkuZ2VtX3ZtX29wcyAgICAgICAgID0gJnZtX29wcywKIAkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfZXhwb3J0ICAgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKLQkuZ2VtX3ByaW1lX2ltcG9ydCAgID0gZHJtX2dlbV9wcmltZV9pbXBvcnQsCiAJLmdlbV9wcmltZV9waW4gICAgICA9IGV0bmF2aXZfZ2VtX3ByaW1lX3BpbiwKIAkuZ2VtX3ByaW1lX3VucGluICAgID0gZXRuYXZpdl9nZW1fcHJpbWVfdW5waW4sCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUgPSBldG5hdml2X2dlbV9wcmltZV9nZXRfc2dfdGFibGUsCkBAIC00OTAsNyArNTI1LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGV0bmF2aXZfZHJtX2RyaXZlciA9IHsKIAkuZGVzYyAgICAgICAgICAgICAgID0gImV0bmF2aXYgRFJNIiwKIAkuZGF0ZSAgICAgICAgICAgICAgID0gIjIwMTUxMjE0IiwKIAkubWFqb3IgICAgICAgICAgICAgID0gMSwKLQkubWlub3IgICAgICAgICAgICAgID0gMiwKKwkubWlub3IgICAgICAgICAgICAgID0gMywKIH07CiAKIC8qCkBAIC01MjEsMjMgKzU1NiwzMiBAQCBzdGF0aWMgaW50IGV0bmF2aXZfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmdlbV9saXN0KTsKIAlwcml2LT5udW1fZ3B1cyA9IDA7CiAKKwlwcml2LT5jbWRidWZfc3ViYWxsb2MgPSBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvY19uZXcoZHJtLT5kZXYpOworCWlmIChJU19FUlIocHJpdi0+Y21kYnVmX3N1YmFsbG9jKSkgeworCQlkZXZfZXJyKGRybS0+ZGV2LCAiRmFpbGVkIHRvIGNyZWF0ZSBjbWRidWYgc3ViYWxsb2NhdG9yXG4iKTsKKwkJcmV0ID0gUFRSX0VSUihwcml2LT5jbWRidWZfc3ViYWxsb2MpOworCQlnb3RvIG91dF9mcmVlX3ByaXY7CisJfQorCiAJZGV2X3NldF9kcnZkYXRhKGRldiwgZHJtKTsKIAogCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChkZXYsIGRybSk7CiAJaWYgKHJldCA8IDApCi0JCWdvdG8gb3V0X2JpbmQ7CisJCWdvdG8gb3V0X2Rlc3Ryb3lfc3ViYWxsb2M7CiAKIAlsb2FkX2dwdShkcm0pOwogCiAJcmV0ID0gZHJtX2Rldl9yZWdpc3Rlcihkcm0sIDApOwogCWlmIChyZXQpCi0JCWdvdG8gb3V0X3JlZ2lzdGVyOworCQlnb3RvIG91dF91bmJpbmQ7CiAKIAlyZXR1cm4gMDsKIAotb3V0X3JlZ2lzdGVyOgorb3V0X3VuYmluZDoKIAljb21wb25lbnRfdW5iaW5kX2FsbChkZXYsIGRybSk7Ci1vdXRfYmluZDoKK291dF9kZXN0cm95X3N1YmFsbG9jOgorCWV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX2Rlc3Ryb3kocHJpdi0+Y21kYnVmX3N1YmFsbG9jKTsKK291dF9mcmVlX3ByaXY6CiAJa2ZyZWUocHJpdik7CiBvdXRfcHV0OgogCWRybV9kZXZfcHV0KGRybSk7CkBAIC01NTYsNiArNjAwLDggQEAgc3RhdGljIHZvaWQgZXRuYXZpdl91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2KQogCiAJZGV2LT5kbWFfcGFybXMgPSBOVUxMOwogCisJZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfZGVzdHJveShwcml2LT5jbWRidWZfc3ViYWxsb2MpOworCiAJZHJtLT5kZXZfcHJpdmF0ZSA9IE5VTEw7CiAJa2ZyZWUocHJpdik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2Rydi5oCmluZGV4IDg3OTg0MjMuLjMyY2ZhNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kcnYuaApAQCAtNiwyMSArNiwxMiBAQAogI2lmbmRlZiBfX0VUTkFWSVZfRFJWX0hfXwogI2RlZmluZSBfX0VUTkFWSVZfRFJWX0hfXwogCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BtLmg+Ci0jaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbW1fdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zaXplcy5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWU2NC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvc2l6ZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9tbV90eXBlcy5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8ZHJtL2V0bmF2aXZfZHJtLmg+CkBAIC0zMSwxMiArMjIsMTIgQEAgc3RydWN0IGV0bmF2aXZfZ3B1Owogc3RydWN0IGV0bmF2aXZfbW11Owogc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdDsKIHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQ7CitzdHJ1Y3QgZXRuYXZpdl9pb21tdV9nbG9iYWw7CisKKyNkZWZpbmUgRVROQVZJVl9TT0ZUUElOX1NUQVJUX0FERFJFU1MJU1pfNE0gLyogbXVzdCBiZSA+PSBTVUJBTExPQ19TSVpFICovCiAKIHN0cnVjdCBldG5hdml2X2ZpbGVfcHJpdmF0ZSB7Ci0JLyoKLQkgKiBXaGVuIHBlci1jb250ZXh0IGFkZHJlc3Mgc3BhY2VzIGFyZSBzdXBwb3J0ZWQgd2UnZCBrZWVwIHRyYWNrIG9mCi0JICogdGhlIGNvbnRleHQncyBwYWdlLXRhYmxlcyBoZXJlLgotCSAqLworCXN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQJKm1tdTsKIAlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eQkJc2NoZWRfZW50aXR5W0VUTkFfTUFYX1BJUEVTXTsKIH07CiAKQEAgLTQ1LDYgKzM2LDkgQEAgc3RydWN0IGV0bmF2aXZfZHJtX3ByaXZhdGUgewogCXN0cnVjdCBkZXZpY2VfZG1hX3BhcmFtZXRlcnMgZG1hX3Bhcm1zOwogCXN0cnVjdCBldG5hdml2X2dwdSAqZ3B1W0VUTkFfTUFYX1BJUEVTXTsKIAorCXN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYyAqY21kYnVmX3N1YmFsbG9jOworCXN0cnVjdCBldG5hdml2X2lvbW11X2dsb2JhbCAqbW11X2dsb2JhbDsKKwogCS8qIGxpc3Qgb2YgR0VNIG9iamVjdHM6ICovCiAJc3RydWN0IG11dGV4IGdlbV9sb2NrOwogCXN0cnVjdCBsaXN0X2hlYWQgZ2VtX2xpc3Q7CkBAIC03NiwxMCArNzAsMTEgQEAgaW50IGV0bmF2aXZfZ2VtX25ld191c2VycHRyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAl1aW50cHRyX3QgcHRyLCB1MzIgc2l6ZSwgdTMyIGZsYWdzLCB1MzIgKmhhbmRsZSk7CiB1MTYgZXRuYXZpdl9idWZmZXJfaW5pdChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSk7CiB1MTYgZXRuYXZpdl9idWZmZXJfY29uZmlnX21tdXYyKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1MzIgbXRsYl9hZGRyLCB1MzIgc2FmZV9hZGRyKTsKLXUxNiBldG5hdml2X2J1ZmZlcl9jb25maWdfcHRhKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KTsKK3UxNiBldG5hdml2X2J1ZmZlcl9jb25maWdfcHRhKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1bnNpZ25lZCBzaG9ydCBpZCk7CiB2b2lkIGV0bmF2aXZfYnVmZmVyX2VuZChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSk7CiB2b2lkIGV0bmF2aXZfc3luY19wb2ludF9xdWV1ZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdW5zaWduZWQgaW50IGV2ZW50KTsKIHZvaWQgZXRuYXZpdl9idWZmZXJfcXVldWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHUzMiBleGVjX3N0YXRlLAorCXN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKm1tdSwKIAl1bnNpZ25lZCBpbnQgZXZlbnQsIHN0cnVjdCBldG5hdml2X2NtZGJ1ZiAqY21kYnVmKTsKIHZvaWQgZXRuYXZpdl92YWxpZGF0ZV9pbml0KHZvaWQpOwogYm9vbCBldG5hdml2X2NtZF92YWxpZGF0ZV9vbmUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jCmluZGV4IDlhNmY1YjYuLjY5OGRiNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jCkBAIC00LDYgKzQsOCBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9kZXZjb3JlZHVtcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisKICNpbmNsdWRlICJldG5hdml2X2NtZGJ1Zi5oIgogI2luY2x1ZGUgImV0bmF2aXZfZHVtcC5oIgogI2luY2x1ZGUgImV0bmF2aXZfZ2VtLmgiCkBAIC05MSw5ICs5Myw5IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfY29yZV9kdW1wX3JlZ2lzdGVycyhzdHJ1Y3QgY29yZV9kdW1wX2l0ZXJhdG9yICppdGVyLAogfQogCiBzdGF0aWMgdm9pZCBldG5hdml2X2NvcmVfZHVtcF9tbXUoc3RydWN0IGNvcmVfZHVtcF9pdGVyYXRvciAqaXRlciwKLQlzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgc2l6ZV90IG1tdV9zaXplKQorCXN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKm1tdSwgc2l6ZV90IG1tdV9zaXplKQogewotCWV0bmF2aXZfaW9tbXVfZHVtcChncHUtPm1tdSwgaXRlci0+ZGF0YSk7CisJZXRuYXZpdl9pb21tdV9kdW1wKG1tdSwgaXRlci0+ZGF0YSk7CiAKIAlldG5hdml2X2NvcmVfZHVtcF9oZWFkZXIoaXRlciwgRVREVU1QX0JVRl9NTVUsIGl0ZXItPmRhdGEgKyBtbXVfc2l6ZSk7CiB9CkBAIC0xMDgsNDYgKzExMCwzNSBAQCBzdGF0aWMgdm9pZCBldG5hdml2X2NvcmVfZHVtcF9tZW0oc3RydWN0IGNvcmVfZHVtcF9pdGVyYXRvciAqaXRlciwgdTMyIHR5cGUsCiAJZXRuYXZpdl9jb3JlX2R1bXBfaGVhZGVyKGl0ZXIsIHR5cGUsIGl0ZXItPmRhdGEgKyBzaXplKTsKIH0KIAotdm9pZCBldG5hdml2X2NvcmVfZHVtcChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKK3ZvaWQgZXRuYXZpdl9jb3JlX2R1bXAoc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0KQogeworCXN0cnVjdCBldG5hdml2X2dwdSAqZ3B1ID0gc3VibWl0LT5ncHU7CiAJc3RydWN0IGNvcmVfZHVtcF9pdGVyYXRvciBpdGVyOwotCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqdnJhbTsKIAlzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0OwotCXN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYjsKIAl1bnNpZ25lZCBpbnQgbl9vYmosIG5fYm9tYXBfcGFnZXM7CiAJc2l6ZV90IGZpbGVfc2l6ZSwgbW11X3NpemU7CiAJX19sZTY0ICpib21hcCwgKmJvbWFwX3N0YXJ0OworCWludCBpOwogCiAJLyogT25seSBjYXRjaCB0aGUgZmlyc3QgZXZlbnQsIG9yIHdoZW4gbWFudWFsbHkgcmUtYXJtZWQgKi8KIAlpZiAoIWV0bmF2aXZfZHVtcF9jb3JlKQogCQlyZXR1cm47CiAJZXRuYXZpdl9kdW1wX2NvcmUgPSBmYWxzZTsKIAotCW11dGV4X2xvY2soJmdwdS0+bW11LT5sb2NrKTsKKwltdXRleF9sb2NrKCZncHUtPm1tdV9jb250ZXh0LT5sb2NrKTsKIAotCW1tdV9zaXplID0gZXRuYXZpdl9pb21tdV9kdW1wX3NpemUoZ3B1LT5tbXUpOworCW1tdV9zaXplID0gZXRuYXZpdl9pb21tdV9kdW1wX3NpemUoZ3B1LT5tbXVfY29udGV4dCk7CiAKLQkvKiBXZSBhbHdheXMgZHVtcCByZWdpc3RlcnMsIG1tdSwgcmluZyBhbmQgZW5kIG1hcmtlciAqLwotCW5fb2JqID0gNDsKKwkvKiBXZSBhbHdheXMgZHVtcCByZWdpc3RlcnMsIG1tdSwgcmluZywgaGFuZ2luZyBjbWRidWYgYW5kIGVuZCBtYXJrZXIgKi8KKwluX29iaiA9IDU7CiAJbl9ib21hcF9wYWdlcyA9IDA7CiAJZmlsZV9zaXplID0gQVJSQVlfU0laRShldG5hdml2X2R1bXBfcmVnaXN0ZXJzKSAqCiAJCQlzaXplb2Yoc3RydWN0IGV0bmF2aXZfZHVtcF9yZWdpc3RlcnMpICsKLQkJICAgIG1tdV9zaXplICsgZ3B1LT5idWZmZXIuc2l6ZTsKLQotCS8qIEFkZCBpbiB0aGUgYWN0aXZlIGNvbW1hbmQgYnVmZmVycyAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkoc19qb2IsICZncHUtPnNjaGVkLnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsKLQkJc3VibWl0ID0gdG9fZXRuYXZpdl9zdWJtaXQoc19qb2IpOwotCQlmaWxlX3NpemUgKz0gc3VibWl0LT5jbWRidWYuc2l6ZTsKLQkJbl9vYmorKzsKLQl9CisJCSAgICBtbXVfc2l6ZSArIGdwdS0+YnVmZmVyLnNpemUgKyBzdWJtaXQtPmNtZGJ1Zi5zaXplOwogCiAJLyogQWRkIGluIHRoZSBhY3RpdmUgYnVmZmVyIG9iamVjdHMgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZyYW0sICZncHUtPm1tdS0+bWFwcGluZ3MsIG1tdV9ub2RlKSB7Ci0JCWlmICghdnJhbS0+dXNlKQotCQkJY29udGludWU7Ci0KLQkJb2JqID0gdnJhbS0+b2JqZWN0OworCWZvciAoaSA9IDA7IGkgPCBzdWJtaXQtPm5yX2JvczsgaSsrKSB7CisJCW9iaiA9IHN1Ym1pdC0+Ym9zW2ldLm9iajsKIAkJZmlsZV9zaXplICs9IG9iai0+YmFzZS5zaXplOwogCQluX2JvbWFwX3BhZ2VzICs9IG9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQ7CiAJCW5fb2JqKys7CkBAIC0xNjYsNyArMTU3LDcgQEAgdm9pZCBldG5hdml2X2NvcmVfZHVtcChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAlpdGVyLnN0YXJ0ID0gX192bWFsbG9jKGZpbGVfc2l6ZSwgR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX05PUkVUUlksCiAJCQkgICAgICAgUEFHRV9LRVJORUwpOwogCWlmICghaXRlci5zdGFydCkgewotCQltdXRleF91bmxvY2soJmdwdS0+bW11LT5sb2NrKTsKKwkJbXV0ZXhfdW5sb2NrKCZncHUtPm1tdV9jb250ZXh0LT5sb2NrKTsKIAkJZGV2X3dhcm4oZ3B1LT5kZXYsICJmYWlsZWQgdG8gYWxsb2NhdGUgZGV2Y29yZWR1bXAgZmlsZVxuIik7CiAJCXJldHVybjsKIAl9CkBAIC0xNzgsMTcgKzE2OSwxNiBAQCB2b2lkIGV0bmF2aXZfY29yZV9kdW1wKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogCW1lbXNldChpdGVyLmhkciwgMCwgaXRlci5kYXRhIC0gaXRlci5zdGFydCk7CiAKIAlldG5hdml2X2NvcmVfZHVtcF9yZWdpc3RlcnMoJml0ZXIsIGdwdSk7Ci0JZXRuYXZpdl9jb3JlX2R1bXBfbW11KCZpdGVyLCBncHUsIG1tdV9zaXplKTsKKwlldG5hdml2X2NvcmVfZHVtcF9tbXUoJml0ZXIsIGdwdS0+bW11X2NvbnRleHQsIG1tdV9zaXplKTsKIAlldG5hdml2X2NvcmVfZHVtcF9tZW0oJml0ZXIsIEVURFVNUF9CVUZfUklORywgZ3B1LT5idWZmZXIudmFkZHIsCiAJCQkgICAgICBncHUtPmJ1ZmZlci5zaXplLAotCQkJICAgICAgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZncHUtPmJ1ZmZlcikpOworCQkJICAgICAgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZncHUtPmJ1ZmZlciwKKwkJCQkJJmdwdS0+bW11X2NvbnRleHQtPmNtZGJ1Zl9tYXBwaW5nKSk7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHNfam9iLCAmZ3B1LT5zY2hlZC5yaW5nX21pcnJvcl9saXN0LCBub2RlKSB7Ci0JCXN1Ym1pdCA9IHRvX2V0bmF2aXZfc3VibWl0KHNfam9iKTsKLQkJZXRuYXZpdl9jb3JlX2R1bXBfbWVtKCZpdGVyLCBFVERVTVBfQlVGX0NNRCwKLQkJCQkgICAgICBzdWJtaXQtPmNtZGJ1Zi52YWRkciwgc3VibWl0LT5jbWRidWYuc2l6ZSwKLQkJCQkgICAgICBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoJnN1Ym1pdC0+Y21kYnVmKSk7Ci0JfQorCWV0bmF2aXZfY29yZV9kdW1wX21lbSgmaXRlciwgRVREVU1QX0JVRl9DTUQsCisJCQkgICAgICBzdWJtaXQtPmNtZGJ1Zi52YWRkciwgc3VibWl0LT5jbWRidWYuc2l6ZSwKKwkJCSAgICAgIGV0bmF2aXZfY21kYnVmX2dldF92YSgmc3VibWl0LT5jbWRidWYsCisJCQkJCSZncHUtPm1tdV9jb250ZXh0LT5jbWRidWZfbWFwcGluZykpOwogCiAJLyogUmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGJvbWFwICovCiAJaWYgKG5fYm9tYXBfcGFnZXMpIHsKQEAgLTIwMSwxNCArMTkxLDEzIEBAIHZvaWQgZXRuYXZpdl9jb3JlX2R1bXAoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJCWJvbWFwX3N0YXJ0ID0gYm9tYXAgPSBOVUxMOwogCX0KIAotCWxpc3RfZm9yX2VhY2hfZW50cnkodnJhbSwgJmdwdS0+bW11LT5tYXBwaW5ncywgbW11X25vZGUpIHsKKwlmb3IgKGkgPSAwOyBpIDwgc3VibWl0LT5ucl9ib3M7IGkrKykgeworCQlzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKnZyYW07CiAJCXN0cnVjdCBwYWdlICoqcGFnZXM7CiAJCXZvaWQgKnZhZGRyOwogCi0JCWlmICh2cmFtLT51c2UgPT0gMCkKLQkJCWNvbnRpbnVlOwotCi0JCW9iaiA9IHZyYW0tPm9iamVjdDsKKwkJb2JqID0gc3VibWl0LT5ib3NbaV0ub2JqOworCQl2cmFtID0gc3VibWl0LT5ib3NbaV0ubWFwcGluZzsKIAogCQltdXRleF9sb2NrKCZvYmotPmxvY2spOwogCQlwYWdlcyA9IGV0bmF2aXZfZ2VtX2dldF9wYWdlcyhvYmopOwpAQCAtMjMyLDcgKzIyMSw3IEBAIHZvaWQgZXRuYXZpdl9jb3JlX2R1bXAoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJCQkJCSBvYmotPmJhc2Uuc2l6ZSk7CiAJfQogCi0JbXV0ZXhfdW5sb2NrKCZncHUtPm1tdS0+bG9jayk7CisJbXV0ZXhfdW5sb2NrKCZncHUtPm1tdV9jb250ZXh0LT5sb2NrKTsKIAogCWV0bmF2aXZfY29yZV9kdW1wX2hlYWRlcigmaXRlciwgRVREVU1QX0JVRl9FTkQsIGl0ZXIuZGF0YSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5oIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmgKaW5kZXggMmQ5MTZjMi4uYTEyNWM0NmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5oCkBAIC0zNSw4ICszNSw4IEBAIHN0cnVjdCBldG5hdml2X2R1bXBfcmVnaXN0ZXJzIHsKIH07CiAKICNpZmRlZiBfX0tFUk5FTF9fCi1zdHJ1Y3QgZXRuYXZpdl9ncHU7Ci12b2lkIGV0bmF2aXZfY29yZV9kdW1wKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KTsKK3N0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQ7Cit2b2lkIGV0bmF2aXZfY29yZV9kdW1wKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1pdCk7CiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYwppbmRleCBlODc3OGViLi5jYjFmYWFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmMKQEAgLTMsMTAgKzMsMTEgQEAKICAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IEV0bmF2aXYgUHJvamVjdAogICovCiAKLSNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC90YXNrLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAKICNpbmNsdWRlICJldG5hdml2X2Rydi5oIgogI2luY2x1ZGUgImV0bmF2aXZfZ2VtLmgiCkBAIC0yMjIsMzAgKzIyMywxOCBAQCBpbnQgZXRuYXZpdl9nZW1fbW1hcF9vZmZzZXQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHU2NCAqb2Zmc2V0KQogCiBzdGF0aWMgc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICoKIGV0bmF2aXZfZ2VtX2dldF92cmFtX21hcHBpbmcoc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqb2JqLAotCQkJICAgICBzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11KQorCQkJICAgICBzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQogewogCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZzsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkobWFwcGluZywgJm9iai0+dnJhbV9saXN0LCBvYmpfbm9kZSkgewotCQlpZiAobWFwcGluZy0+bW11ID09IG1tdSkKKwkJaWYgKG1hcHBpbmctPmNvbnRleHQgPT0gY29udGV4dCkKIAkJCXJldHVybiBtYXBwaW5nOwogCX0KIAogCXJldHVybiBOVUxMOwogfQogCi12b2lkIGV0bmF2aXZfZ2VtX21hcHBpbmdfcmVmZXJlbmNlKHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZykKLXsKLQlzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2X29iaiA9IG1hcHBpbmctPm9iamVjdDsKLQotCWRybV9nZW1fb2JqZWN0X2dldCgmZXRuYXZpdl9vYmotPmJhc2UpOwotCi0JbXV0ZXhfbG9jaygmZXRuYXZpdl9vYmotPmxvY2spOwotCVdBUk5fT04obWFwcGluZy0+dXNlID09IDApOwotCW1hcHBpbmctPnVzZSArPSAxOwotCW11dGV4X3VubG9jaygmZXRuYXZpdl9vYmotPmxvY2spOwotfQotCiB2b2lkIGV0bmF2aXZfZ2VtX21hcHBpbmdfdW5yZWZlcmVuY2Uoc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nKQogewogCXN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmV0bmF2aXZfb2JqID0gbWFwcGluZy0+b2JqZWN0OwpAQCAtMjU5LDcgKzI0OCw4IEBAIHZvaWQgZXRuYXZpdl9nZW1fbWFwcGluZ191bnJlZmVyZW5jZShzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcpCiB9CiAKIHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqZXRuYXZpdl9nZW1fbWFwcGluZ19nZXQoCi0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQorCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICptbXVfY29udGV4dCwKKwl1NjQgdmEpCiB7CiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmogPSB0b19ldG5hdml2X2JvKG9iaik7CiAJc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nOwpAQCAtMjY3LDcgKzI1Nyw3IEBAIHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqZXRuYXZpdl9nZW1fbWFwcGluZ19nZXQoCiAJaW50IHJldCA9IDA7CiAKIAltdXRleF9sb2NrKCZldG5hdml2X29iai0+bG9jayk7Ci0JbWFwcGluZyA9IGV0bmF2aXZfZ2VtX2dldF92cmFtX21hcHBpbmcoZXRuYXZpdl9vYmosIGdwdS0+bW11KTsKKwltYXBwaW5nID0gZXRuYXZpdl9nZW1fZ2V0X3ZyYW1fbWFwcGluZyhldG5hdml2X29iaiwgbW11X2NvbnRleHQpOwogCWlmIChtYXBwaW5nKSB7CiAJCS8qCiAJCSAqIEhvbGRpbmcgdGhlIG9iamVjdCBsb2NrIHByZXZlbnRzIHRoZSB1c2UgY291bnQgY2hhbmdpbmcKQEAgLTI3NiwxMiArMjY2LDEyIEBAIHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqZXRuYXZpdl9nZW1fbWFwcGluZ19nZXQoCiAJCSAqIHRoZSBNTVUgb3ducyB0aGlzIG1hcHBpbmcgdG8gY2xvc2UgdGhpcyByYWNlLgogCQkgKi8KIAkJaWYgKG1hcHBpbmctPnVzZSA9PSAwKSB7Ci0JCQltdXRleF9sb2NrKCZncHUtPm1tdS0+bG9jayk7Ci0JCQlpZiAobWFwcGluZy0+bW11ID09IGdwdS0+bW11KQorCQkJbXV0ZXhfbG9jaygmbW11X2NvbnRleHQtPmxvY2spOworCQkJaWYgKG1hcHBpbmctPmNvbnRleHQgPT0gbW11X2NvbnRleHQpCiAJCQkJbWFwcGluZy0+dXNlICs9IDE7CiAJCQllbHNlCiAJCQkJbWFwcGluZyA9IE5VTEw7Ci0JCQltdXRleF91bmxvY2soJmdwdS0+bW11LT5sb2NrKTsKKwkJCW11dGV4X3VubG9jaygmbW11X2NvbnRleHQtPmxvY2spOwogCQkJaWYgKG1hcHBpbmcpCiAJCQkJZ290byBvdXQ7CiAJCX0gZWxzZSB7CkBAIC0zMTQsMTUgKzMwNCwxOSBAQCBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKmV0bmF2aXZfZ2VtX21hcHBpbmdfZ2V0KAogCQlsaXN0X2RlbCgmbWFwcGluZy0+b2JqX25vZGUpOwogCX0KIAotCW1hcHBpbmctPm1tdSA9IGdwdS0+bW11OworCWV0bmF2aXZfaW9tbXVfY29udGV4dF9nZXQobW11X2NvbnRleHQpOworCW1hcHBpbmctPmNvbnRleHQgPSBtbXVfY29udGV4dDsKIAltYXBwaW5nLT51c2UgPSAxOwogCi0JcmV0ID0gZXRuYXZpdl9pb21tdV9tYXBfZ2VtKGdwdS0+bW11LCBldG5hdml2X29iaiwgZ3B1LT5tZW1vcnlfYmFzZSwKLQkJCQkgICAgbWFwcGluZyk7Ci0JaWYgKHJldCA8IDApCisJcmV0ID0gZXRuYXZpdl9pb21tdV9tYXBfZ2VtKG1tdV9jb250ZXh0LCBldG5hdml2X29iaiwKKwkJCQkgICAgbW11X2NvbnRleHQtPmdsb2JhbC0+bWVtb3J5X2Jhc2UsCisJCQkJICAgIG1hcHBpbmcsIHZhKTsKKwlpZiAocmV0IDwgMCkgeworCQlldG5hdml2X2lvbW11X2NvbnRleHRfcHV0KG1tdV9jb250ZXh0KTsKIAkJa2ZyZWUobWFwcGluZyk7Ci0JZWxzZQorCX0gZWxzZSB7CiAJCWxpc3RfYWRkX3RhaWwoJm1hcHBpbmctPm9ial9ub2RlLCAmZXRuYXZpdl9vYmotPnZyYW1fbGlzdCk7CisJfQogCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZldG5hdml2X29iai0+bG9jayk7CkBAIC0zOTcsMTMgKzM5MSwxMyBAQCBpbnQgZXRuYXZpdl9nZW1fY3B1X3ByZXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHUzMiBvcCwKIAl9CiAKIAlpZiAob3AgJiBFVE5BX1BSRVBfTk9TWU5DKSB7Ci0JCWlmICghcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KG9iai0+cmVzdiwKKwkJaWYgKCFkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdShvYmotPnJlc3YsCiAJCQkJCQkJICB3cml0ZSkpCiAJCQlyZXR1cm4gLUVCVVNZOwogCX0gZWxzZSB7CiAJCXVuc2lnbmVkIGxvbmcgcmVtYWluID0gZXRuYXZpdl90aW1lb3V0X3RvX2ppZmZpZXModGltZW91dCk7CiAKLQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3Uob2JqLT5yZXN2LAorCQlyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KG9iai0+cmVzdiwKIAkJCQkJCQkgIHdyaXRlLCB0cnVlLCByZW1haW4pOwogCQlpZiAocmV0IDw9IDApCiAJCQlyZXR1cm4gcmV0ID09IDAgPyAtRVRJTUVET1VUIDogcmV0OwpAQCAtNDU5LDggKzQ1Myw4IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfZ2VtX2Rlc2NyaWJlX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogc3RhdGljIHZvaWQgZXRuYXZpdl9nZW1fZGVzY3JpYmUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZXFfZmlsZSAqbSkKIHsKIAlzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2X29iaiA9IHRvX2V0bmF2aXZfYm8ob2JqKTsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyb2JqID0gb2JqLT5yZXN2OwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iajsKKwlzdHJ1Y3QgZG1hX3Jlc3YgKnJvYmogPSBvYmotPnJlc3Y7CisJc3RydWN0IGRtYV9yZXN2X2xpc3QgKmZvYmo7CiAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJdW5zaWduZWQgbG9uZyBvZmYgPSBkcm1fdm1hX25vZGVfc3RhcnQoJm9iai0+dm1hX25vZGUpOwogCkBAIC01MzYsMTIgKzUzMCwxNCBAQCB2b2lkIGV0bmF2aXZfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG1hcHBpbmcsIHRtcCwgJmV0bmF2aXZfb2JqLT52cmFtX2xpc3QsCiAJCQkJIG9ial9ub2RlKSB7Ci0JCXN0cnVjdCBldG5hdml2X2lvbW11ICptbXUgPSBtYXBwaW5nLT5tbXU7CisJCXN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQgPSBtYXBwaW5nLT5jb250ZXh0OwogCiAJCVdBUk5fT04obWFwcGluZy0+dXNlKTsKIAotCQlpZiAobW11KQotCQkJZXRuYXZpdl9pb21tdV91bm1hcF9nZW0obW11LCBtYXBwaW5nKTsKKwkJaWYgKGNvbnRleHQpIHsKKwkJCWV0bmF2aXZfaW9tbXVfdW5tYXBfZ2VtKGNvbnRleHQsIG1hcHBpbmcpOworCQkJZXRuYXZpdl9pb21tdV9jb250ZXh0X3B1dChjb250ZXh0KTsKKwkJfQogCiAJCWxpc3RfZGVsKCZtYXBwaW5nLT5vYmpfbm9kZSk7CiAJCWtmcmVlKG1hcHBpbmcpOwpAQCAtNTY1LDggKzU2MSw3IEBAIHZvaWQgZXRuYXZpdl9nZW1fb2JqX2FkZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIH0KIAogc3RhdGljIGludCBldG5hdml2X2dlbV9uZXdfaW1wbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgc2l6ZSwgdTMyIGZsYWdzLAotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJvYmosIGNvbnN0IHN0cnVjdCBldG5hdml2X2dlbV9vcHMgKm9wcywKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipvYmopCisJY29uc3Qgc3RydWN0IGV0bmF2aXZfZ2VtX29wcyAqb3BzLCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipvYmopCiB7CiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmo7CiAJdW5zaWduZWQgc3ogPSBzaXplb2YoKmV0bmF2aXZfb2JqKTsKQEAgLTU5NCw4ICs1ODksNiBAQCBzdGF0aWMgaW50IGV0bmF2aXZfZ2VtX25ld19pbXBsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzaXplLCB1MzIgZmxhZ3MsCiAKIAlldG5hdml2X29iai0+ZmxhZ3MgPSBmbGFnczsKIAlldG5hdml2X29iai0+b3BzID0gb3BzOwotCWlmIChyb2JqKQotCQlldG5hdml2X29iai0+YmFzZS5yZXN2ID0gcm9iajsKIAogCW11dGV4X2luaXQoJmV0bmF2aXZfb2JqLT5sb2NrKTsKIAlJTklUX0xJU1RfSEVBRCgmZXRuYXZpdl9vYmotPnZyYW1fbGlzdCk7CkBAIC02MTQsNyArNjA3LDcgQEAgaW50IGV0bmF2aXZfZ2VtX25ld19oYW5kbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlLAogCiAJc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7CiAKLQlyZXQgPSBldG5hdml2X2dlbV9uZXdfaW1wbChkZXYsIHNpemUsIGZsYWdzLCBOVUxMLAorCXJldCA9IGV0bmF2aXZfZ2VtX25ld19pbXBsKGRldiwgc2l6ZSwgZmxhZ3MsCiAJCQkJICAgJmV0bmF2aXZfZ2VtX3NobWVtX29wcywgJm9iaik7CiAJaWYgKHJldCkKIAkJZ290byBmYWlsOwpAQCAtNjQ2LDEzICs2MzksMTIgQEAgaW50IGV0bmF2aXZfZ2VtX25ld19oYW5kbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlLAogfQogCiBpbnQgZXRuYXZpdl9nZW1fbmV3X3ByaXZhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHUzMiBmbGFncywKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyb2JqLCBjb25zdCBzdHJ1Y3QgZXRuYXZpdl9nZW1fb3BzICpvcHMsCi0Jc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqKnJlcykKKwljb25zdCBzdHJ1Y3QgZXRuYXZpdl9nZW1fb3BzICpvcHMsIHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKipyZXMpCiB7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CiAJaW50IHJldDsKIAotCXJldCA9IGV0bmF2aXZfZ2VtX25ld19pbXBsKGRldiwgc2l6ZSwgZmxhZ3MsIHJvYmosIG9wcywgJm9iaik7CisJcmV0ID0gZXRuYXZpdl9nZW1fbmV3X2ltcGwoZGV2LCBzaXplLCBmbGFncywgb3BzLCAmb2JqKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC03MzQsNyArNzI2LDcgQEAgaW50IGV0bmF2aXZfZ2VtX25ld191c2VycHRyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAlzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2X29iajsKIAlpbnQgcmV0OwogCi0JcmV0ID0gZXRuYXZpdl9nZW1fbmV3X3ByaXZhdGUoZGV2LCBzaXplLCBFVE5BX0JPX0NBQ0hFRCwgTlVMTCwKKwlyZXQgPSBldG5hdml2X2dlbV9uZXdfcHJpdmF0ZShkZXYsIHNpemUsIEVUTkFfQk9fQ0FDSEVELAogCQkJCSAgICAgICZldG5hdml2X2dlbV91c2VycHRyX29wcywgJmV0bmF2aXZfb2JqKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmgKaW5kZXggNzUzYzQ1OC4uZDYyNzBhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5oCkBAIC02LDcgKzYsNyBAQAogI2lmbmRlZiBfX0VUTkFWSVZfR0VNX0hfXwogI2RlZmluZSBfX0VUTkFWSVZfR0VNX0hfXwogCi0jaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgogI2luY2x1ZGUgImV0bmF2aXZfY21kYnVmLmgiCiAjaW5jbHVkZSAiZXRuYXZpdl9kcnYuaCIKIApAQCAtMjUsNyArMjUsNyBAQCBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgewogCXN0cnVjdCBsaXN0X2hlYWQgc2Nhbl9ub2RlOwogCXN0cnVjdCBsaXN0X2hlYWQgbW11X25vZGU7CiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqb2JqZWN0OwotCXN0cnVjdCBldG5hdml2X2lvbW11ICptbXU7CisJc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dDsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgdnJhbV9ub2RlOwogCXVuc2lnbmVkIGludCB1c2U7CiAJdTMyIGlvdmE7CkBAIC03Nyw2ICs3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc19hY3RpdmUoc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmopCiAKIHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXRfYm8gewogCXUzMiBmbGFnczsKKwl1NjQgdmE7CiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZzsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpleGNsOwpAQCAtOTMsNiArOTQsNyBAQCBzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0IHsKIAlzdHJ1Y3Qga3JlZiByZWZjb3VudDsKIAlzdHJ1Y3QgZXRuYXZpdl9maWxlX3ByaXZhdGUgKmN0eDsKIAlzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICptbXVfY29udGV4dCwgKnByZXZfbW11X2NvbnRleHQ7CiAJc3RydWN0IGRtYV9mZW5jZSAqb3V0X2ZlbmNlLCAqaW5fZmVuY2U7CiAJaW50IG91dF9mZW5jZV9pZDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7IC8qIEdQVSBhY3RpdmUgc3VibWl0IGxpc3QgKi8KQEAgLTExMiwxNSArMTE0LDE0IEBAIHZvaWQgZXRuYXZpdl9zdWJtaXRfcHV0KHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKiBzdWJtaXQpOwogaW50IGV0bmF2aXZfZ2VtX3dhaXRfYm8oc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCXN0cnVjdCB0aW1lc3BlYyAqdGltZW91dCk7CiBpbnQgZXRuYXZpdl9nZW1fbmV3X3ByaXZhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHUzMiBmbGFncywKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyb2JqLCBjb25zdCBzdHJ1Y3QgZXRuYXZpdl9nZW1fb3BzICpvcHMsCi0Jc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqKnJlcyk7CisJY29uc3Qgc3RydWN0IGV0bmF2aXZfZ2VtX29wcyAqb3BzLCBzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICoqcmVzKTsKIHZvaWQgZXRuYXZpdl9nZW1fb2JqX2FkZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiBzdHJ1Y3QgcGFnZSAqKmV0bmF2aXZfZ2VtX2dldF9wYWdlcyhzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpvYmopOwogdm9pZCBldG5hdml2X2dlbV9wdXRfcGFnZXMoc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqb2JqKTsKIAogc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICpldG5hdml2X2dlbV9tYXBwaW5nX2dldCgKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpOwotdm9pZCBldG5hdml2X2dlbV9tYXBwaW5nX3JlZmVyZW5jZShzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcpOworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICptbXVfY29udGV4dCwKKwl1NjQgdmEpOwogdm9pZCBldG5hdml2X2dlbV9tYXBwaW5nX3VucmVmZXJlbmNlKHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZyk7CiAKICNlbmRpZiAvKiBfX0VUTkFWSVZfR0VNX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1lLmMKaW5kZXggMDBlOGI2YS4uZjI0ZGQyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fcHJpbWUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9wcmltZS5jCkBAIC0zLDcgKzMsOSBAQAogICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggRXRuYXZpdiBQcm9qZWN0CiAgKi8KIAorI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+CisKICNpbmNsdWRlICJldG5hdml2X2Rydi5oIgogI2luY2x1ZGUgImV0bmF2aXZfZ2VtLmgiCiAKQEAgLTEwOSw3ICsxMTEsNiBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmV0bmF2aXZfZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWludCByZXQsIG5wYWdlczsKIAogCXJldCA9IGV0bmF2aXZfZ2VtX25ld19wcml2YXRlKGRldiwgc2l6ZSwgRVROQV9CT19XQywKLQkJCQkgICAgICBhdHRhY2gtPmRtYWJ1Zi0+cmVzdiwKIAkJCQkgICAgICAmZXRuYXZpdl9nZW1fcHJpbWVfb3BzLCAmZXRuYXZpdl9vYmopOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwppbmRleCAxYTYzNjQ2Li5hYTNlNGMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwpAQCAtMyw5ICszLDE1IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRXRuYXZpdiBQcm9qZWN0CiAgKi8KIAorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS1hcnJheS5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2VydmF0aW9uLmg+CisjaW5jbHVkZSA8bGludXgvZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgogI2luY2x1ZGUgPGxpbnV4L3N5bmNfZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisKICNpbmNsdWRlICJldG5hdml2X2NtZGJ1Zi5oIgogI2luY2x1ZGUgImV0bmF2aXZfZHJ2LmgiCiAjaW5jbHVkZSAiZXRuYXZpdl9ncHUuaCIKQEAgLTY2LDYgKzcyLDE0IEBAIHN0YXRpYyBpbnQgc3VibWl0X2xvb2t1cF9vYmplY3RzKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1pdCwKIAkJfQogCiAJCXN1Ym1pdC0+Ym9zW2ldLmZsYWdzID0gYm8tPmZsYWdzOworCQlpZiAoc3VibWl0LT5mbGFncyAmIEVUTkFfU1VCTUlUX1NPRlRQSU4pIHsKKwkJCWlmIChiby0+cHJlc3VtZWQgPCBFVE5BVklWX1NPRlRQSU5fU1RBUlRfQUREUkVTUykgeworCQkJCURSTV9FUlJPUigiaW52YWxpZCBzb2Z0cGluIGFkZHJlc3NcbiIpOworCQkJCXJldCA9IC1FSU5WQUw7CisJCQkJZ290byBvdXRfdW5sb2NrOworCQkJfQorCQkJc3VibWl0LT5ib3NbaV0udmEgPSBiby0+cHJlc3VtZWQ7CisJCX0KIAogCQkvKiBub3JtYWxseSB1c2UgZHJtX2dlbV9vYmplY3RfbG9va3VwKCksIGJ1dCBmb3IgYnVsayBsb29rdXAKIAkJICogYWxsIHVuZGVyIHNpbmdsZSB0YWJsZV9sb2NrIGp1c3QgaGl0IG9iamVjdF9pZHIgZGlyZWN0bHk6CkBAIC0xNjUsMTAgKzE3OSwxMCBAQCBzdGF0aWMgaW50IHN1Ym1pdF9mZW5jZV9zeW5jKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1pdCkKIAogCWZvciAoaSA9IDA7IGkgPCBzdWJtaXQtPm5yX2JvczsgaSsrKSB7CiAJCXN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXRfYm8gKmJvID0gJnN1Ym1pdC0+Ym9zW2ldOwotCQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyb2JqID0gYm8tPm9iai0+YmFzZS5yZXN2OworCQlzdHJ1Y3QgZG1hX3Jlc3YgKnJvYmogPSBiby0+b2JqLT5iYXNlLnJlc3Y7CiAKIAkJaWYgKCEoYm8tPmZsYWdzICYgRVROQV9TVUJNSVRfQk9fV1JJVEUpKSB7Ci0JCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQocm9iaiwgMSk7CisJCQlyZXQgPSBkbWFfcmVzdl9yZXNlcnZlX3NoYXJlZChyb2JqLCAxKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQpAQCAtMTc3LDEzICsxOTEsMTMgQEAgc3RhdGljIGludCBzdWJtaXRfZmVuY2Vfc3luYyhzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaXQpCiAJCQljb250aW51ZTsKIAogCQlpZiAoYm8tPmZsYWdzICYgRVROQV9TVUJNSVRfQk9fV1JJVEUpIHsKLQkJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShyb2JqLCAmYm8tPmV4Y2wsCisJCQlyZXQgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShyb2JqLCAmYm8tPmV4Y2wsCiAJCQkJCQkJCSZiby0+bnJfc2hhcmVkLAogCQkJCQkJCQkmYm8tPnNoYXJlZCk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAJCX0gZWxzZSB7Ci0JCQliby0+ZXhjbCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbF9yY3Uocm9iaik7CisJCQliby0+ZXhjbCA9IGRtYV9yZXN2X2dldF9leGNsX3JjdShyb2JqKTsKIAkJfQogCiAJfQpAQCAtMTk5LDEwICsyMTMsMTAgQEAgc3RhdGljIHZvaWQgc3VibWl0X2F0dGFjaF9vYmplY3RfZmVuY2VzKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1pdCkKIAkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSAmc3VibWl0LT5ib3NbaV0ub2JqLT5iYXNlOwogCiAJCWlmIChzdWJtaXQtPmJvc1tpXS5mbGFncyAmIEVUTkFfU1VCTUlUX0JPX1dSSVRFKQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKG9iai0+cmVzdiwKKwkJCWRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKG9iai0+cmVzdiwKIAkJCQkJCQkgIHN1Ym1pdC0+b3V0X2ZlbmNlKTsKIAkJZWxzZQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2Uob2JqLT5yZXN2LAorCQkJZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZShvYmotPnJlc3YsCiAJCQkJCQkJICAgIHN1Ym1pdC0+b3V0X2ZlbmNlKTsKIAogCQlzdWJtaXRfdW5sb2NrX29iamVjdChzdWJtaXQsIGkpOwpAQCAtMjE4LDExICsyMzIsMTcgQEAgc3RhdGljIGludCBzdWJtaXRfcGluX29iamVjdHMoc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0KQogCQlzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmc7CiAKIAkJbWFwcGluZyA9IGV0bmF2aXZfZ2VtX21hcHBpbmdfZ2V0KCZldG5hdml2X29iai0+YmFzZSwKLQkJCQkJCSAgc3VibWl0LT5ncHUpOworCQkJCQkJICBzdWJtaXQtPm1tdV9jb250ZXh0LAorCQkJCQkJICBzdWJtaXQtPmJvc1tpXS52YSk7CiAJCWlmIChJU19FUlIobWFwcGluZykpIHsKIAkJCXJldCA9IFBUUl9FUlIobWFwcGluZyk7CiAJCQlicmVhazsKIAkJfQorCisJCWlmICgoc3VibWl0LT5mbGFncyAmIEVUTkFfU1VCTUlUX1NPRlRQSU4pICYmCisJCSAgICAgc3VibWl0LT5ib3NbaV0udmEgIT0gbWFwcGluZy0+aW92YSkKKwkJCXJldHVybiAtRUlOVkFMOworCiAJCWF0b21pY19pbmMoJmV0bmF2aXZfb2JqLT5ncHVfYWN0aXZlKTsKIAogCQlzdWJtaXQtPmJvc1tpXS5mbGFncyB8PSBCT19QSU5ORUQ7CkBAIC0yNTUsNiArMjc1LDEwIEBAIHN0YXRpYyBpbnQgc3VibWl0X3JlbG9jKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1pdCwgdm9pZCAqc3RyZWFtLAogCXUzMiAqcHRyID0gc3RyZWFtOwogCWludCByZXQ7CiAKKwkvKiBTdWJtaXRzIHVzaW5nIHNvZnRwaW4gZG9uJ3QgYmxlbmQgd2l0aCByZWxvY3MgKi8KKwlpZiAoKHN1Ym1pdC0+ZmxhZ3MgJiBFVE5BX1NVQk1JVF9TT0ZUUElOKSAmJiBucl9yZWxvY3MgIT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlmb3IgKGkgPSAwOyBpIDwgbnJfcmVsb2NzOyBpKyspIHsKIAkJY29uc3Qgc3RydWN0IGRybV9ldG5hdml2X2dlbV9zdWJtaXRfcmVsb2MgKnIgPSByZWxvY3MgKyBpOwogCQlzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0X2JvICpibzsKQEAgLTM1NSw2ICszNzksMTIgQEAgc3RhdGljIHZvaWQgc3VibWl0X2NsZWFudXAoc3RydWN0IGtyZWYgKmtyZWYpCiAJaWYgKHN1Ym1pdC0+Y21kYnVmLnN1YmFsbG9jKQogCQlldG5hdml2X2NtZGJ1Zl9mcmVlKCZzdWJtaXQtPmNtZGJ1Zik7CiAKKwlpZiAoc3VibWl0LT5tbXVfY29udGV4dCkKKwkJZXRuYXZpdl9pb21tdV9jb250ZXh0X3B1dChzdWJtaXQtPm1tdV9jb250ZXh0KTsKKworCWlmIChzdWJtaXQtPnByZXZfbW11X2NvbnRleHQpCisJCWV0bmF2aXZfaW9tbXVfY29udGV4dF9wdXQoc3VibWl0LT5wcmV2X21tdV9jb250ZXh0KTsKKwogCWZvciAoaSA9IDA7IGkgPCBzdWJtaXQtPm5yX2JvczsgaSsrKSB7CiAJCXN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmV0bmF2aXZfb2JqID0gc3VibWl0LT5ib3NbaV0ub2JqOwogCkBAIC00MzMsNiArNDYzLDEyIEBAIGludCBldG5hdml2X2lvY3RsX2dlbV9zdWJtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJaWYgKChhcmdzLT5mbGFncyAmIEVUTkFfU1VCTUlUX1NPRlRQSU4pICYmCisJICAgIHByaXYtPm1tdV9nbG9iYWwtPnZlcnNpb24gIT0gRVROQVZJVl9JT01NVV9WMikgeworCQlEUk1fRVJST1IoInNvZnRwaW4gcmVxdWVzdGVkIG9uIGluY29tcGF0aWJsZSBNTVVcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAkvKgogCSAqIENvcHkgdGhlIGNvbW1hbmQgc3VibWlzc2lvbiBhbmQgYm8gYXJyYXkgdG8ga2VybmVsIHNwYWNlIGluCiAJICogb25lIGdvLCBhbmQgZG8gdGhpcyBvdXRzaWRlIG9mIGFueSBsb2Nrcy4KQEAgLTQ5MCwxMiArNTI2LDE0IEBAIGludCBldG5hdml2X2lvY3RsX2dlbV9zdWJtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZ290byBlcnJfc3VibWl0X3d3X2FjcXVpcmU7CiAJfQogCi0JcmV0ID0gZXRuYXZpdl9jbWRidWZfaW5pdChncHUtPmNtZGJ1Zl9zdWJhbGxvYywgJnN1Ym1pdC0+Y21kYnVmLAorCXJldCA9IGV0bmF2aXZfY21kYnVmX2luaXQocHJpdi0+Y21kYnVmX3N1YmFsbG9jLCAmc3VibWl0LT5jbWRidWYsCiAJCQkJICBBTElHTihhcmdzLT5zdHJlYW1fc2l6ZSwgOCkgKyA4KTsKIAlpZiAocmV0KQogCQlnb3RvIGVycl9zdWJtaXRfb2JqZWN0czsKIAogCXN1Ym1pdC0+Y3R4ID0gZmlsZS0+ZHJpdmVyX3ByaXY7CisJZXRuYXZpdl9pb21tdV9jb250ZXh0X2dldChzdWJtaXQtPmN0eC0+bW11KTsKKwlzdWJtaXQtPm1tdV9jb250ZXh0ID0gc3VibWl0LT5jdHgtPm1tdTsKIAlzdWJtaXQtPmV4ZWNfc3RhdGUgPSBhcmdzLT5leGVjX3N0YXRlOwogCXN1Ym1pdC0+ZmxhZ3MgPSBhcmdzLT5mbGFnczsKIApAQCAtNTAzLDcgKzU0MSw4IEBAIGludCBldG5hdml2X2lvY3RsX2dlbV9zdWJtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAocmV0KQogCQlnb3RvIGVycl9zdWJtaXRfb2JqZWN0czsKIAotCWlmICghZXRuYXZpdl9jbWRfdmFsaWRhdGVfb25lKGdwdSwgc3RyZWFtLCBhcmdzLT5zdHJlYW1fc2l6ZSAvIDQsCisJaWYgKChwcml2LT5tbXVfZ2xvYmFsLT52ZXJzaW9uICE9IEVUTkFWSVZfSU9NTVVfVjIpICYmCisJICAgICFldG5hdml2X2NtZF92YWxpZGF0ZV9vbmUoZ3B1LCBzdHJlYW0sIGFyZ3MtPnN0cmVhbV9zaXplIC8gNCwKIAkJCQkgICAgICByZWxvY3MsIGFyZ3MtPm5yX3JlbG9jcykpIHsKIAkJcmV0ID0gLUVJTlZBTDsKIAkJZ290byBlcnJfc3VibWl0X29iamVjdHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuYwppbmRleCA1NDE4YTFhLi5kNDdkMWE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmMKQEAgLTUsOSArNSwxMyBAQAogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3RoZXJtYWwuaD4KIApAQCAtMzgsNiArNDIsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBncHVfaWRzW10gPSB7CiAKIGludCBldG5hdml2X2dwdV9nZXRfcGFyYW0oc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHUzMiBwYXJhbSwgdTY0ICp2YWx1ZSkKIHsKKwlzdHJ1Y3QgZXRuYXZpdl9kcm1fcHJpdmF0ZSAqcHJpdiA9IGdwdS0+ZHJtLT5kZXZfcHJpdmF0ZTsKKwogCXN3aXRjaCAocGFyYW0pIHsKIAljYXNlIEVUTkFWSVZfUEFSQU1fR1BVX01PREVMOgogCQkqdmFsdWUgPSBncHUtPmlkZW50aXR5Lm1vZGVsOwpAQCAtMTQzLDYgKzE0OSwxMyBAQCBpbnQgZXRuYXZpdl9ncHVfZ2V0X3BhcmFtKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1MzIgcGFyYW0sIHU2NCAqdmFsdWUpCiAJCSp2YWx1ZSA9IGdwdS0+aWRlbnRpdHkudmFyeWluZ3NfY291bnQ7CiAJCWJyZWFrOwogCisJY2FzZSBFVE5BVklWX1BBUkFNX1NPRlRQSU5fU1RBUlRfQUREUjoKKwkJaWYgKHByaXYtPm1tdV9nbG9iYWwtPnZlcnNpb24gPT0gRVROQVZJVl9JT01NVV9WMikKKwkJCSp2YWx1ZSA9IEVUTkFWSVZfU09GVFBJTl9TVEFSVF9BRERSRVNTOworCQllbHNlCisJCQkqdmFsdWUgPSB+MFVMTDsKKwkJYnJlYWs7CisKIAlkZWZhdWx0OgogCQlEQkcoIiVzOiBpbnZhbGlkIHBhcmFtOiAldSIsIGRldl9uYW1lKGdwdS0+ZGV2KSwgcGFyYW0pOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTU5Niw2ICs2MDksMjEgQEAgdm9pZCBldG5hdml2X2dwdV9zdGFydF9mZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdTMyIGFkZHJlc3MsIHUxNiBwcmVmZXRjaCkKIAl9CiB9CiAKK3N0YXRpYyB2b2lkIGV0bmF2aXZfZ3B1X3N0YXJ0X2ZlX2lkbGVsb29wKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQoreworCXUzMiBhZGRyZXNzID0gZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZncHUtPmJ1ZmZlciwKKwkJCQkmZ3B1LT5tbXVfY29udGV4dC0+Y21kYnVmX21hcHBpbmcpOworCXUxNiBwcmVmZXRjaDsKKworCS8qIHNldHVwIHRoZSBNTVUgKi8KKwlldG5hdml2X2lvbW11X3Jlc3RvcmUoZ3B1LCBncHUtPm1tdV9jb250ZXh0KTsKKworCS8qIFN0YXJ0IGNvbW1hbmQgcHJvY2Vzc29yICovCisJcHJlZmV0Y2ggPSBldG5hdml2X2J1ZmZlcl9pbml0KGdwdSk7CisKKwlldG5hdml2X2dwdV9zdGFydF9mZShncHUsIGFkZHJlc3MsIHByZWZldGNoKTsKK30KKwogc3RhdGljIHZvaWQgZXRuYXZpdl9ncHVfc2V0dXBfcHVsc2VfZWF0ZXIoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiB7CiAJLyoKQEAgLTYyOSw4ICs2NTcsNiBAQCBzdGF0aWMgdm9pZCBldG5hdml2X2dwdV9zZXR1cF9wdWxzZV9lYXRlcihzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAogc3RhdGljIHZvaWQgZXRuYXZpdl9ncHVfaHdfaW5pdChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIHsKLQl1MTYgcHJlZmV0Y2g7Ci0KIAlpZiAoKGV0bmF2aXZfaXNfbW9kZWxfcmV2KGdwdSwgR0MzMjAsIDB4NTAwNykgfHwKIAkgICAgIGV0bmF2aXZfaXNfbW9kZWxfcmV2KGdwdSwgR0MzMjAsIDB4NTIyMCkpICYmCiAJICAgIGdwdV9yZWFkKGdwdSwgVklWU19ISV9DSElQX1RJTUUpICE9IDB4MjA2MjQwMCkgewpAQCAtNjc2LDE5ICs3MDIsMTIgQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9ncHVfaHdfaW5pdChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAkvKiBzZXR1cCB0aGUgcHVsc2UgZWF0ZXIgKi8KIAlldG5hdml2X2dwdV9zZXR1cF9wdWxzZV9lYXRlcihncHUpOwogCi0JLyogc2V0dXAgdGhlIE1NVSAqLwotCWV0bmF2aXZfaW9tbXVfcmVzdG9yZShncHUpOwotCi0JLyogU3RhcnQgY29tbWFuZCBwcm9jZXNzb3IgKi8KLQlwcmVmZXRjaCA9IGV0bmF2aXZfYnVmZmVyX2luaXQoZ3B1KTsKLQogCWdwdV93cml0ZShncHUsIFZJVlNfSElfSU5UUl9FTkJMLCB+MFUpOwotCWV0bmF2aXZfZ3B1X3N0YXJ0X2ZlKGdwdSwgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZncHUtPmJ1ZmZlciksCi0JCQkgICAgIHByZWZldGNoKTsKIH0KIAogaW50IGV0bmF2aXZfZ3B1X2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiB7CisJc3RydWN0IGV0bmF2aXZfZHJtX3ByaXZhdGUgKnByaXYgPSBncHUtPmRybS0+ZGV2X3ByaXZhdGU7CiAJaW50IHJldCwgaTsKIAogCXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMoZ3B1LT5kZXYpOwpAQCAtNzE0LDI4ICs3MzMsNiBAQCBpbnQgZXRuYXZpdl9ncHVfaW5pdChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAl9CiAKIAkvKgotCSAqIFNldCB0aGUgR1BVIGxpbmVhciB3aW5kb3cgdG8gYmUgYXQgdGhlIGVuZCBvZiB0aGUgRE1BIHdpbmRvdywgd2hlcmUKLQkgKiB0aGUgQ01BIGFyZWEgaXMgbGlrZWx5IHRvIHJlc2lkZS4gVGhpcyBlbnN1cmVzIHRoYXQgd2UgYXJlIGFibGUgdG8KLQkgKiBtYXAgdGhlIGNvbW1hbmQgYnVmZmVycyB3aGlsZSBoYXZpbmcgdGhlIGxpbmVhciB3aW5kb3cgb3ZlcmxhcCBhcwotCSAqIG11Y2ggUkFNIGFzIHBvc3NpYmxlLCBzbyB3ZSBjYW4gb3B0aW1pemUgbWFwcGluZ3MgZm9yIG90aGVyIGJ1ZmZlcnMuCi0JICoKLQkgKiBGb3IgM0QgY29yZXMgb25seSBkbyB0aGlzIGlmIE1DMi4wIGlzIHByZXNlbnQsIGFzIHdpdGggTUMxLjAgaXQgbGVhZHMKLQkgKiB0byBkaWZmZXJlbnQgdmlld3Mgb2YgdGhlIG1lbW9yeSBvbiB0aGUgaW5kaXZpZHVhbCBlbmdpbmVzLgotCSAqLwotCWlmICghKGdwdS0+aWRlbnRpdHkuZmVhdHVyZXMgJiBjaGlwRmVhdHVyZXNfUElQRV8zRCkgfHwKLQkgICAgKGdwdS0+aWRlbnRpdHkubWlub3JfZmVhdHVyZXMwICYgY2hpcE1pbm9yRmVhdHVyZXMwX01DMjApKSB7Ci0JCXUzMiBkbWFfbWFzayA9ICh1MzIpZG1hX2dldF9yZXF1aXJlZF9tYXNrKGdwdS0+ZGV2KTsKLQkJaWYgKGRtYV9tYXNrIDwgUEhZU19PRkZTRVQgKyBTWl8yRykKLQkJCWdwdS0+bWVtb3J5X2Jhc2UgPSBQSFlTX09GRlNFVDsKLQkJZWxzZQotCQkJZ3B1LT5tZW1vcnlfYmFzZSA9IGRtYV9tYXNrIC0gU1pfMkcgKyAxOwotCX0gZWxzZSBpZiAoUEhZU19PRkZTRVQgPj0gU1pfMkcpIHsKLQkJZGV2X2luZm8oZ3B1LT5kZXYsICJOZWVkIHRvIG1vdmUgbGluZWFyIHdpbmRvdyBvbiBNQzEuMCwgZGlzYWJsaW5nIFRTXG4iKTsKLQkJZ3B1LT5tZW1vcnlfYmFzZSA9IFBIWVNfT0ZGU0VUOwotCQlncHUtPmlkZW50aXR5LmZlYXR1cmVzICY9IH5jaGlwRmVhdHVyZXNfRkFTVF9DTEVBUjsKLQl9Ci0KLQkvKgogCSAqIE9uIGNvcmVzIHdpdGggc2VjdXJpdHkgZmVhdHVyZXMgc3VwcG9ydGVkLCB3ZSBjbGFpbSBjb250cm9sIG92ZXIgdGhlCiAJICogc2VjdXJpdHkgc3RhdGVzLgogCSAqLwpAQCAtNzQ5LDM0ICs3NDYsMzggQEAgaW50IGV0bmF2aXZfZ3B1X2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJCWdvdG8gZmFpbDsKIAl9CiAKLQlncHUtPm1tdSA9IGV0bmF2aXZfaW9tbXVfbmV3KGdwdSk7Ci0JaWYgKElTX0VSUihncHUtPm1tdSkpIHsKLQkJZGV2X2VycihncHUtPmRldiwgIkZhaWxlZCB0byBpbnN0YW50aWF0ZSBHUFUgSU9NTVVcbiIpOwotCQlyZXQgPSBQVFJfRVJSKGdwdS0+bW11KTsKKwlyZXQgPSBldG5hdml2X2lvbW11X2dsb2JhbF9pbml0KGdwdSk7CisJaWYgKHJldCkKIAkJZ290byBmYWlsOwotCX0KIAotCWdwdS0+Y21kYnVmX3N1YmFsbG9jID0gZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfbmV3KGdwdSk7Ci0JaWYgKElTX0VSUihncHUtPmNtZGJ1Zl9zdWJhbGxvYykpIHsKLQkJZGV2X2VycihncHUtPmRldiwgIkZhaWxlZCB0byBjcmVhdGUgY21kYnVmIHN1YmFsbG9jYXRvclxuIik7Ci0JCXJldCA9IFBUUl9FUlIoZ3B1LT5jbWRidWZfc3ViYWxsb2MpOwotCQlnb3RvIGRlc3Ryb3lfaW9tbXU7CisJLyoKKwkgKiBTZXQgdGhlIEdQVSBsaW5lYXIgd2luZG93IHRvIGJlIGF0IHRoZSBlbmQgb2YgdGhlIERNQSB3aW5kb3csIHdoZXJlCisJICogdGhlIENNQSBhcmVhIGlzIGxpa2VseSB0byByZXNpZGUuIFRoaXMgZW5zdXJlcyB0aGF0IHdlIGFyZSBhYmxlIHRvCisJICogbWFwIHRoZSBjb21tYW5kIGJ1ZmZlcnMgd2hpbGUgaGF2aW5nIHRoZSBsaW5lYXIgd2luZG93IG92ZXJsYXAgYXMKKwkgKiBtdWNoIFJBTSBhcyBwb3NzaWJsZSwgc28gd2UgY2FuIG9wdGltaXplIG1hcHBpbmdzIGZvciBvdGhlciBidWZmZXJzLgorCSAqCisJICogRm9yIDNEIGNvcmVzIG9ubHkgZG8gdGhpcyBpZiBNQzIuMCBpcyBwcmVzZW50LCBhcyB3aXRoIE1DMS4wIGl0IGxlYWRzCisJICogdG8gZGlmZmVyZW50IHZpZXdzIG9mIHRoZSBtZW1vcnkgb24gdGhlIGluZGl2aWR1YWwgZW5naW5lcy4KKwkgKi8KKwlpZiAoIShncHUtPmlkZW50aXR5LmZlYXR1cmVzICYgY2hpcEZlYXR1cmVzX1BJUEVfM0QpIHx8CisJICAgIChncHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMCAmIGNoaXBNaW5vckZlYXR1cmVzMF9NQzIwKSkgeworCQl1MzIgZG1hX21hc2sgPSAodTMyKWRtYV9nZXRfcmVxdWlyZWRfbWFzayhncHUtPmRldik7CisJCWlmIChkbWFfbWFzayA8IFBIWVNfT0ZGU0VUICsgU1pfMkcpCisJCQlwcml2LT5tbXVfZ2xvYmFsLT5tZW1vcnlfYmFzZSA9IFBIWVNfT0ZGU0VUOworCQllbHNlCisJCQlwcml2LT5tbXVfZ2xvYmFsLT5tZW1vcnlfYmFzZSA9IGRtYV9tYXNrIC0gU1pfMkcgKyAxOworCX0gZWxzZSBpZiAoUEhZU19PRkZTRVQgPj0gU1pfMkcpIHsKKwkJZGV2X2luZm8oZ3B1LT5kZXYsICJOZWVkIHRvIG1vdmUgbGluZWFyIHdpbmRvdyBvbiBNQzEuMCwgZGlzYWJsaW5nIFRTXG4iKTsKKwkJcHJpdi0+bW11X2dsb2JhbC0+bWVtb3J5X2Jhc2UgPSBQSFlTX09GRlNFVDsKKwkJZ3B1LT5pZGVudGl0eS5mZWF0dXJlcyAmPSB+Y2hpcEZlYXR1cmVzX0ZBU1RfQ0xFQVI7CiAJfQogCiAJLyogQ3JlYXRlIGJ1ZmZlcjogKi8KLQlyZXQgPSBldG5hdml2X2NtZGJ1Zl9pbml0KGdwdS0+Y21kYnVmX3N1YmFsbG9jLCAmZ3B1LT5idWZmZXIsCisJcmV0ID0gZXRuYXZpdl9jbWRidWZfaW5pdChwcml2LT5jbWRidWZfc3ViYWxsb2MsICZncHUtPmJ1ZmZlciwKIAkJCQkgIFBBR0VfU0laRSk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGdwdS0+ZGV2LCAiY291bGQgbm90IGNyZWF0ZSBjb21tYW5kIGJ1ZmZlclxuIik7Ci0JCWdvdG8gZGVzdHJveV9zdWJhbGxvYzsKLQl9Ci0KLQlpZiAoZ3B1LT5tbXUtPnZlcnNpb24gPT0gRVROQVZJVl9JT01NVV9WMSAmJgotCSAgICBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoJmdwdS0+YnVmZmVyKSA+IDB4ODAwMDAwMDApIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZGV2X2VycihncHUtPmRldiwKLQkJCSJjb21tYW5kIGJ1ZmZlciBvdXRzaWRlIHZhbGlkIG1lbW9yeSB3aW5kb3dcbiIpOwotCQlnb3RvIGZyZWVfYnVmZmVyOworCQlnb3RvIGZhaWw7CiAJfQogCiAJLyogU2V0dXAgZXZlbnQgbWFuYWdlbWVudCAqLwpAQCAtNzk1LDE3ICs3OTYsMTAgQEAgaW50IGV0bmF2aXZfZ3B1X2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShncHUtPmRldik7CiAJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZ3B1LT5kZXYpOwogCisJZ3B1LT5pbml0aWFsaXplZCA9IHRydWU7CisKIAlyZXR1cm4gMDsKIAotZnJlZV9idWZmZXI6Ci0JZXRuYXZpdl9jbWRidWZfZnJlZSgmZ3B1LT5idWZmZXIpOwotCWdwdS0+YnVmZmVyLnN1YmFsbG9jID0gTlVMTDsKLWRlc3Ryb3lfc3ViYWxsb2M6Ci0JZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfZGVzdHJveShncHUtPmNtZGJ1Zl9zdWJhbGxvYyk7Ci0JZ3B1LT5jbWRidWZfc3ViYWxsb2MgPSBOVUxMOwotZGVzdHJveV9pb21tdToKLQlldG5hdml2X2lvbW11X2Rlc3Ryb3koZ3B1LT5tbXUpOwotCWdwdS0+bW11ID0gTlVMTDsKIGZhaWw6CiAJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShncHUtPmRldik7CiAJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZ3B1LT5kZXYpOwpAQCAtOTk5LDYgKzk5Myw3IEBAIHZvaWQgZXRuYXZpdl9ncHVfcmVjb3Zlcl9oYW5nKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogCiAJZXRuYXZpdl9ncHVfaHdfaW5pdChncHUpOwogCWdwdS0+ZXhlY19zdGF0ZSA9IC0xOworCWdwdS0+bW11X2NvbnRleHQgPSBOVUxMOwogCiAJbXV0ZXhfdW5sb2NrKCZncHUtPmxvY2spOwogCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZ3B1LT5kZXYpOwpAQCAtMTMwNSw2ICsxMzAwLDE1IEBAIHN0cnVjdCBkbWFfZmVuY2UgKmV0bmF2aXZfZ3B1X3N1Ym1pdChzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaXQpCiAJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAKKwlpZiAoIWdwdS0+bW11X2NvbnRleHQpIHsKKwkJZXRuYXZpdl9pb21tdV9jb250ZXh0X2dldChzdWJtaXQtPm1tdV9jb250ZXh0KTsKKwkJZ3B1LT5tbXVfY29udGV4dCA9IHN1Ym1pdC0+bW11X2NvbnRleHQ7CisJCWV0bmF2aXZfZ3B1X3N0YXJ0X2ZlX2lkbGVsb29wKGdwdSk7CisJfSBlbHNlIHsKKwkJZXRuYXZpdl9pb21tdV9jb250ZXh0X2dldChncHUtPm1tdV9jb250ZXh0KTsKKwkJc3VibWl0LT5wcmV2X21tdV9jb250ZXh0ID0gZ3B1LT5tbXVfY29udGV4dDsKKwl9CisKIAlpZiAoc3VibWl0LT5ucl9wbXJzKSB7CiAJCWdwdS0+ZXZlbnRbZXZlbnRbMV1dLnN5bmNfcG9pbnQgPSAmc3luY19wb2ludF9wZXJmbW9uX3NhbXBsZV9wcmU7CiAJCWtyZWZfZ2V0KCZzdWJtaXQtPnJlZmNvdW50KTsKQEAgLTEzMTQsOCArMTMxOCw4IEBAIHN0cnVjdCBkbWFfZmVuY2UgKmV0bmF2aXZfZ3B1X3N1Ym1pdChzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaXQpCiAKIAlncHUtPmV2ZW50W2V2ZW50WzBdXS5mZW5jZSA9IGdwdV9mZW5jZTsKIAlzdWJtaXQtPmNtZGJ1Zi51c2VyX3NpemUgPSBzdWJtaXQtPmNtZGJ1Zi5zaXplIC0gODsKLQlldG5hdml2X2J1ZmZlcl9xdWV1ZShncHUsIHN1Ym1pdC0+ZXhlY19zdGF0ZSwgZXZlbnRbMF0sCi0JCQkgICAgICZzdWJtaXQtPmNtZGJ1Zik7CisJZXRuYXZpdl9idWZmZXJfcXVldWUoZ3B1LCBzdWJtaXQtPmV4ZWNfc3RhdGUsIHN1Ym1pdC0+bW11X2NvbnRleHQsCisJCQkgICAgIGV2ZW50WzBdLCAmc3VibWl0LT5jbWRidWYpOwogCiAJaWYgKHN1Ym1pdC0+bnJfcG1ycykgewogCQlncHUtPmV2ZW50W2V2ZW50WzJdXS5zeW5jX3BvaW50ID0gJnN5bmNfcG9pbnRfcGVyZm1vbl9zYW1wbGVfcG9zdDsKQEAgLTE1MTcsNyArMTUyMSw3IEBAIGludCBldG5hdml2X2dwdV93YWl0X2lkbGUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHVuc2lnbmVkIGludCB0aW1lb3V0X21zKQogCiBzdGF0aWMgaW50IGV0bmF2aXZfZ3B1X2h3X3N1c3BlbmQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiB7Ci0JaWYgKGdwdS0+YnVmZmVyLnN1YmFsbG9jKSB7CisJaWYgKGdwdS0+aW5pdGlhbGl6ZWQgJiYgZ3B1LT5tbXVfY29udGV4dCkgewogCQkvKiBSZXBsYWNlIHRoZSBsYXN0IFdBSVQgd2l0aCBFTkQgKi8KIAkJbXV0ZXhfbG9jaygmZ3B1LT5sb2NrKTsKIAkJZXRuYXZpdl9idWZmZXJfZW5kKGdwdSk7CkBAIC0xNTI5LDggKzE1MzMsMTMgQEAgc3RhdGljIGludCBldG5hdml2X2dwdV9od19zdXNwZW5kKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogCQkgKiB3ZSBmYWlsLCBqdXN0IHdhcm4gYW5kIGNvbnRpbnVlLgogCQkgKi8KIAkJZXRuYXZpdl9ncHVfd2FpdF9pZGxlKGdwdSwgMTAwKTsKKworCQlldG5hdml2X2lvbW11X2NvbnRleHRfcHV0KGdwdS0+bW11X2NvbnRleHQpOworCQlncHUtPm1tdV9jb250ZXh0ID0gTlVMTDsKIAl9CiAKKwlncHUtPmV4ZWNfc3RhdGUgPSAtMTsKKwogCXJldHVybiBldG5hdml2X2dwdV9jbGtfZGlzYWJsZShncHUpOwogfQogCkBAIC0xNTQ2LDggKzE1NTUsNiBAQCBzdGF0aWMgaW50IGV0bmF2aXZfZ3B1X2h3X3Jlc3VtZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAlldG5hdml2X2dwdV91cGRhdGVfY2xvY2soZ3B1KTsKIAlldG5hdml2X2dwdV9od19pbml0KGdwdSk7CiAKLQlncHUtPmV4ZWNfc3RhdGUgPSAtMTsKLQogCW11dGV4X3VubG9jaygmZ3B1LT5sb2NrKTsKIAogCXJldHVybiAwOwpAQCAtMTY3NiwxNyArMTY4MywxMCBAQCBzdGF0aWMgdm9pZCBldG5hdml2X2dwdV91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCiAJZXRuYXZpdl9ncHVfaHdfc3VzcGVuZChncHUpOwogI2VuZGlmCiAKLQlpZiAoZ3B1LT5idWZmZXIuc3ViYWxsb2MpCisJaWYgKGdwdS0+aW5pdGlhbGl6ZWQpIHsKIAkJZXRuYXZpdl9jbWRidWZfZnJlZSgmZ3B1LT5idWZmZXIpOwotCi0JaWYgKGdwdS0+Y21kYnVmX3N1YmFsbG9jKSB7Ci0JCWV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX2Rlc3Ryb3koZ3B1LT5jbWRidWZfc3ViYWxsb2MpOwotCQlncHUtPmNtZGJ1Zl9zdWJhbGxvYyA9IE5VTEw7Ci0JfQotCi0JaWYgKGdwdS0+bW11KSB7Ci0JCWV0bmF2aXZfaW9tbXVfZGVzdHJveShncHUtPm1tdSk7Ci0JCWdwdS0+bW11ID0gTlVMTDsKKwkJZXRuYXZpdl9pb21tdV9nbG9iYWxfZmluaShncHUpOworCQlncHUtPmluaXRpYWxpemVkID0gZmFsc2U7CiAJfQogCiAJZ3B1LT5kcm0gPSBOVUxMOwpAQCAtMTcxNCw3ICsxNzE0LDYgQEAgc3RhdGljIGludCBldG5hdml2X2dwdV9wbGF0Zm9ybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CiAJc3RydWN0IGV0bmF2aXZfZ3B1ICpncHU7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7CiAJaW50IGVycjsKIAogCWdwdSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZ3B1KSwgR0ZQX0tFUk5FTCk7CkBAIC0xNzI2LDggKzE3MjUsNyBAQCBzdGF0aWMgaW50IGV0bmF2aXZfZ3B1X3BsYXRmb3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJbXV0ZXhfaW5pdCgmZ3B1LT5mZW5jZV9sb2NrKTsKIAogCS8qIE1hcCByZWdpc3RlcnM6ICovCi0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlncHUtPm1taW8gPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKKwlncHUtPm1taW8gPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7CiAJaWYgKElTX0VSUihncHUtPm1taW8pKQogCQlyZXR1cm4gUFRSX0VSUihncHUtPm1taW8pOwogCkBAIC0xODI1LDcgKzE4MjMsNyBAQCBzdGF0aWMgaW50IGV0bmF2aXZfZ3B1X3JwbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogCQlyZXR1cm4gcmV0OwogCiAJLyogUmUtaW5pdGlhbGlzZSB0aGUgYmFzaWMgaGFyZHdhcmUgc3RhdGUgKi8KLQlpZiAoZ3B1LT5kcm0gJiYgZ3B1LT5idWZmZXIuc3ViYWxsb2MpIHsKKwlpZiAoZ3B1LT5kcm0gJiYgZ3B1LT5pbml0aWFsaXplZCkgewogCQlyZXQgPSBldG5hdml2X2dwdV9od19yZXN1bWUoZ3B1KTsKIAkJaWYgKHJldCkgewogCQkJZXRuYXZpdl9ncHVfY2xrX2Rpc2FibGUoZ3B1KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5oCmluZGV4IDliY2YxNTEuLjhmOWJkNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuaApAQCAtNyw2ICs3LDggQEAKICNkZWZpbmUgX19FVE5BVklWX0dQVV9IX18KIAogI2luY2x1ZGUgImV0bmF2aXZfY21kYnVmLmgiCisjaW5jbHVkZSAiZXRuYXZpdl9nZW0uaCIKKyNpbmNsdWRlICJldG5hdml2X21tdS5oIgogI2luY2x1ZGUgImV0bmF2aXZfZHJ2LmgiCiAKIHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQ7CkBAIC04NCw3ICs4Niw2IEBAIHN0cnVjdCBldG5hdml2X2V2ZW50IHsKIH07CiAKIHN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYzsKLXN0cnVjdCBldG5hdml2X2NtZGJ1ZjsKIHN0cnVjdCByZWd1bGF0b3I7CiBzdHJ1Y3QgY2xrOwogCkBAIC05OSwxNCArMTAwLDEyIEBAIHN0cnVjdCBldG5hdml2X2dwdSB7CiAJZW51bSBldG5hdml2X3NlY19tb2RlIHNlY19tb2RlOwogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTsKIAlzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgc2NoZWQ7CisJYm9vbCBpbml0aWFsaXplZDsKIAogCS8qICdyaW5nJy1idWZmZXI6ICovCiAJc3RydWN0IGV0bmF2aXZfY21kYnVmIGJ1ZmZlcjsKIAlpbnQgZXhlY19zdGF0ZTsKIAotCS8qIGJ1cyBiYXNlIGFkZHJlc3Mgb2YgbWVtb3J5ICAqLwotCXUzMiBtZW1vcnlfYmFzZTsKLQogCS8qIGV2ZW50IG1hbmFnZW1lbnQ6ICovCiAJREVDTEFSRV9CSVRNQVAoZXZlbnRfYml0bWFwLCBFVE5BX05SX0VWRU5UUyk7CiAJc3RydWN0IGV0bmF2aXZfZXZlbnQgZXZlbnRbRVROQV9OUl9FVkVOVFNdOwpAQCAtMTM0LDggKzEzMyw4IEBAIHN0cnVjdCBldG5hdml2X2dwdSB7CiAJdm9pZCBfX2lvbWVtICptbWlvOwogCWludCBpcnE7CiAKLQlzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11OwotCXN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYyAqY21kYnVmX3N1YmFsbG9jOworCXN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKm1tdV9jb250ZXh0OworCXVuc2lnbmVkIGludCBmbHVzaF9zZXE7CiAKIAkvKiBQb3dlciBDb250cm9sOiAqLwogCXN0cnVjdCBjbGsgKmNsa19idXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2lvbW11LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2lvbW11LmMKaW5kZXggYjE2M2JkYi4uMWE3Yzg5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9pb21tdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfaW9tbXUuYwpAQCAtMywxNSArMywxNCBAQAogICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggRXRuYXZpdiBQcm9qZWN0CiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2l6ZXMuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KIAogI2luY2x1ZGUgImV0bmF2aXZfZ3B1LmgiCiAjaW5jbHVkZSAiZXRuYXZpdl9tbXUuaCIKLSNpbmNsdWRlICJldG5hdml2X2lvbW11LmgiCiAjaW5jbHVkZSAic3RhdGVfaGkueG1sLmgiCiAKICNkZWZpbmUgUFRfU0laRQkJU1pfMk0KQEAgLTE5LDEyNCArMTgsODkgQEAKIAogI2RlZmluZSBHUFVfTUVNX1NUQVJUCTB4ODAwMDAwMDAKIAotc3RydWN0IGV0bmF2aXZfaW9tbXV2MV9kb21haW4gewotCXN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiBiYXNlOworc3RydWN0IGV0bmF2aXZfaW9tbXV2MV9jb250ZXh0IHsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0IGJhc2U7CiAJdTMyICpwZ3RhYmxlX2NwdTsKIAlkbWFfYWRkcl90IHBndGFibGVfZG1hOwogfTsKIAotc3RhdGljIHN0cnVjdCBldG5hdml2X2lvbW11djFfZG9tYWluICoKLXRvX2V0bmF2aXZfZG9tYWluKHN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiAqZG9tYWluKQorc3RhdGljIHN0cnVjdCBldG5hdml2X2lvbW11djFfY29udGV4dCAqCit0b192MV9jb250ZXh0KHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQpCiB7Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihkb21haW4sIHN0cnVjdCBldG5hdml2X2lvbW11djFfZG9tYWluLCBiYXNlKTsKKwlyZXR1cm4gY29udGFpbmVyX29mKGNvbnRleHQsIHN0cnVjdCBldG5hdml2X2lvbW11djFfY29udGV4dCwgYmFzZSk7CiB9CiAKLXN0YXRpYyBpbnQgX19ldG5hdml2X2lvbW11X2luaXQoc3RydWN0IGV0bmF2aXZfaW9tbXV2MV9kb21haW4gKmV0bmF2aXZfZG9tYWluKQorc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdXYxX2ZyZWUoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCkKIHsKLQl1MzIgKnA7Ci0JaW50IGk7CisJc3RydWN0IGV0bmF2aXZfaW9tbXV2MV9jb250ZXh0ICp2MV9jb250ZXh0ID0gdG9fdjFfY29udGV4dChjb250ZXh0KTsKIAotCWV0bmF2aXZfZG9tYWluLT5iYXNlLmJhZF9wYWdlX2NwdSA9Ci0JCQlkbWFfYWxsb2Nfd2MoZXRuYXZpdl9kb21haW4tPmJhc2UuZGV2LCBTWl80SywKLQkJCQkgICAgICZldG5hdml2X2RvbWFpbi0+YmFzZS5iYWRfcGFnZV9kbWEsCi0JCQkJICAgICBHRlBfS0VSTkVMKTsKLQlpZiAoIWV0bmF2aXZfZG9tYWluLT5iYXNlLmJhZF9wYWdlX2NwdSkKLQkJcmV0dXJuIC1FTk9NRU07CisJZHJtX21tX3Rha2Vkb3duKCZjb250ZXh0LT5tbSk7CiAKLQlwID0gZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfY3B1OwotCWZvciAoaSA9IDA7IGkgPCBTWl80SyAvIDQ7IGkrKykKLQkJKnArKyA9IDB4ZGVhZDU1YWE7CisJZG1hX2ZyZWVfd2MoY29udGV4dC0+Z2xvYmFsLT5kZXYsIFBUX1NJWkUsIHYxX2NvbnRleHQtPnBndGFibGVfY3B1LAorCQkgICAgdjFfY29udGV4dC0+cGd0YWJsZV9kbWEpOwogCi0JZXRuYXZpdl9kb21haW4tPnBndGFibGVfY3B1ID0gZG1hX2FsbG9jX3djKGV0bmF2aXZfZG9tYWluLT5iYXNlLmRldiwKLQkJCQkJCSAgIFBUX1NJWkUsCi0JCQkJCQkgICAmZXRuYXZpdl9kb21haW4tPnBndGFibGVfZG1hLAotCQkJCQkJICAgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFldG5hdml2X2RvbWFpbi0+cGd0YWJsZV9jcHUpIHsKLQkJZG1hX2ZyZWVfd2MoZXRuYXZpdl9kb21haW4tPmJhc2UuZGV2LCBTWl80SywKLQkJCSAgICBldG5hdml2X2RvbWFpbi0+YmFzZS5iYWRfcGFnZV9jcHUsCi0JCQkgICAgZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfZG1hKTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQorCWNvbnRleHQtPmdsb2JhbC0+djEuc2hhcmVkX2NvbnRleHQgPSBOVUxMOwogCi0JbWVtc2V0MzIoZXRuYXZpdl9kb21haW4tPnBndGFibGVfY3B1LCBldG5hdml2X2RvbWFpbi0+YmFzZS5iYWRfcGFnZV9kbWEsCi0JCSBQVF9FTlRSSUVTKTsKLQotCXJldHVybiAwOworCWtmcmVlKHYxX2NvbnRleHQpOwogfQogCi1zdGF0aWMgdm9pZCBldG5hdml2X2lvbW11djFfZG9tYWluX2ZyZWUoc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpkb21haW4pCi17Ci0Jc3RydWN0IGV0bmF2aXZfaW9tbXV2MV9kb21haW4gKmV0bmF2aXZfZG9tYWluID0KLQkJCXRvX2V0bmF2aXZfZG9tYWluKGRvbWFpbik7Ci0KLQlkbWFfZnJlZV93YyhldG5hdml2X2RvbWFpbi0+YmFzZS5kZXYsIFBUX1NJWkUsCi0JCSAgICBldG5hdml2X2RvbWFpbi0+cGd0YWJsZV9jcHUsIGV0bmF2aXZfZG9tYWluLT5wZ3RhYmxlX2RtYSk7Ci0KLQlkbWFfZnJlZV93YyhldG5hdml2X2RvbWFpbi0+YmFzZS5kZXYsIFNaXzRLLAotCQkgICAgZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfY3B1LAotCQkgICAgZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfZG1hKTsKLQotCWtmcmVlKGV0bmF2aXZfZG9tYWluKTsKLX0KLQotc3RhdGljIGludCBldG5hdml2X2lvbW11djFfbWFwKHN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiAqZG9tYWluLAorc3RhdGljIGludCBldG5hdml2X2lvbW11djFfbWFwKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBpb3ZhLCBwaHlzX2FkZHJfdCBwYWRkciwKIAkJCSAgICAgICBzaXplX3Qgc2l6ZSwgaW50IHByb3QpCiB7Ci0Jc3RydWN0IGV0bmF2aXZfaW9tbXV2MV9kb21haW4gKmV0bmF2aXZfZG9tYWluID0gdG9fZXRuYXZpdl9kb21haW4oZG9tYWluKTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYxX2NvbnRleHQgKnYxX2NvbnRleHQgPSB0b192MV9jb250ZXh0KGNvbnRleHQpOwogCXVuc2lnbmVkIGludCBpbmRleCA9IChpb3ZhIC0gR1BVX01FTV9TVEFSVCkgLyBTWl80SzsKIAogCWlmIChzaXplICE9IFNaXzRLKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWV0bmF2aXZfZG9tYWluLT5wZ3RhYmxlX2NwdVtpbmRleF0gPSBwYWRkcjsKKwl2MV9jb250ZXh0LT5wZ3RhYmxlX2NwdVtpbmRleF0gPSBwYWRkcjsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc2l6ZV90IGV0bmF2aXZfaW9tbXV2MV91bm1hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbiwKK3N0YXRpYyBzaXplX3QgZXRuYXZpdl9pb21tdXYxX3VubWFwKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsCiAJdW5zaWduZWQgbG9uZyBpb3ZhLCBzaXplX3Qgc2l6ZSkKIHsKLQlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYxX2RvbWFpbiAqZXRuYXZpdl9kb21haW4gPQotCQkJdG9fZXRuYXZpdl9kb21haW4oZG9tYWluKTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYxX2NvbnRleHQgKnYxX2NvbnRleHQgPSB0b192MV9jb250ZXh0KGNvbnRleHQpOwogCXVuc2lnbmVkIGludCBpbmRleCA9IChpb3ZhIC0gR1BVX01FTV9TVEFSVCkgLyBTWl80SzsKIAogCWlmIChzaXplICE9IFNaXzRLKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWV0bmF2aXZfZG9tYWluLT5wZ3RhYmxlX2NwdVtpbmRleF0gPSBldG5hdml2X2RvbWFpbi0+YmFzZS5iYWRfcGFnZV9kbWE7CisJdjFfY29udGV4dC0+cGd0YWJsZV9jcHVbaW5kZXhdID0gY29udGV4dC0+Z2xvYmFsLT5iYWRfcGFnZV9kbWE7CiAKIAlyZXR1cm4gU1pfNEs7CiB9CiAKLXN0YXRpYyBzaXplX3QgZXRuYXZpdl9pb21tdXYxX2R1bXBfc2l6ZShzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbikKK3N0YXRpYyBzaXplX3QgZXRuYXZpdl9pb21tdXYxX2R1bXBfc2l6ZShzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQogewogCXJldHVybiBQVF9TSVpFOwogfQogCi1zdGF0aWMgdm9pZCBldG5hdml2X2lvbW11djFfZHVtcChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbiwgdm9pZCAqYnVmKQorc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdXYxX2R1bXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwKKwkJCQkgdm9pZCAqYnVmKQogewotCXN0cnVjdCBldG5hdml2X2lvbW11djFfZG9tYWluICpldG5hdml2X2RvbWFpbiA9Ci0JCQl0b19ldG5hdml2X2RvbWFpbihkb21haW4pOworCXN0cnVjdCBldG5hdml2X2lvbW11djFfY29udGV4dCAqdjFfY29udGV4dCA9IHRvX3YxX2NvbnRleHQoY29udGV4dCk7CiAKLQltZW1jcHkoYnVmLCBldG5hdml2X2RvbWFpbi0+cGd0YWJsZV9jcHUsIFBUX1NJWkUpOworCW1lbWNweShidWYsIHYxX2NvbnRleHQtPnBndGFibGVfY3B1LCBQVF9TSVpFKTsKIH0KIAotdm9pZCBldG5hdml2X2lvbW11djFfcmVzdG9yZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKK3N0YXRpYyB2b2lkIGV0bmF2aXZfaW9tbXV2MV9yZXN0b3JlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LAorCQkJICAgICBzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQogewotCXN0cnVjdCBldG5hdml2X2lvbW11djFfZG9tYWluICpldG5hdml2X2RvbWFpbiA9Ci0JCQl0b19ldG5hdml2X2RvbWFpbihncHUtPm1tdS0+ZG9tYWluKTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYxX2NvbnRleHQgKnYxX2NvbnRleHQgPSB0b192MV9jb250ZXh0KGNvbnRleHQpOwogCXUzMiBwZ3RhYmxlOwogCiAJLyogc2V0IGJhc2UgYWRkcmVzc2VzICovCi0JZ3B1X3dyaXRlKGdwdSwgVklWU19NQ19NRU1PUllfQkFTRV9BRERSX1JBLCBncHUtPm1lbW9yeV9iYXNlKTsKLQlncHVfd3JpdGUoZ3B1LCBWSVZTX01DX01FTU9SWV9CQVNFX0FERFJfRkUsIGdwdS0+bWVtb3J5X2Jhc2UpOwotCWdwdV93cml0ZShncHUsIFZJVlNfTUNfTUVNT1JZX0JBU0VfQUREUl9UWCwgZ3B1LT5tZW1vcnlfYmFzZSk7Ci0JZ3B1X3dyaXRlKGdwdSwgVklWU19NQ19NRU1PUllfQkFTRV9BRERSX1BFWiwgZ3B1LT5tZW1vcnlfYmFzZSk7Ci0JZ3B1X3dyaXRlKGdwdSwgVklWU19NQ19NRU1PUllfQkFTRV9BRERSX1BFLCBncHUtPm1lbW9yeV9iYXNlKTsKKwlncHVfd3JpdGUoZ3B1LCBWSVZTX01DX01FTU9SWV9CQVNFX0FERFJfUkEsIGNvbnRleHQtPmdsb2JhbC0+bWVtb3J5X2Jhc2UpOworCWdwdV93cml0ZShncHUsIFZJVlNfTUNfTUVNT1JZX0JBU0VfQUREUl9GRSwgY29udGV4dC0+Z2xvYmFsLT5tZW1vcnlfYmFzZSk7CisJZ3B1X3dyaXRlKGdwdSwgVklWU19NQ19NRU1PUllfQkFTRV9BRERSX1RYLCBjb250ZXh0LT5nbG9iYWwtPm1lbW9yeV9iYXNlKTsKKwlncHVfd3JpdGUoZ3B1LCBWSVZTX01DX01FTU9SWV9CQVNFX0FERFJfUEVaLCBjb250ZXh0LT5nbG9iYWwtPm1lbW9yeV9iYXNlKTsKKwlncHVfd3JpdGUoZ3B1LCBWSVZTX01DX01FTU9SWV9CQVNFX0FERFJfUEUsIGNvbnRleHQtPmdsb2JhbC0+bWVtb3J5X2Jhc2UpOwogCiAJLyogc2V0IHBhZ2UgdGFibGUgYWRkcmVzcyBpbiBNQyAqLwotCXBndGFibGUgPSAodTMyKWV0bmF2aXZfZG9tYWluLT5wZ3RhYmxlX2RtYTsKKwlwZ3RhYmxlID0gKHUzMil2MV9jb250ZXh0LT5wZ3RhYmxlX2RtYTsKIAogCWdwdV93cml0ZShncHUsIFZJVlNfTUNfTU1VX0ZFX1BBR0VfVEFCTEUsIHBndGFibGUpOwogCWdwdV93cml0ZShncHUsIFZJVlNfTUNfTU1VX1RYX1BBR0VfVEFCTEUsIHBndGFibGUpOwpAQCAtMTQ1LDM5ICsxMDksNjQgQEAgdm9pZCBldG5hdml2X2lvbW11djFfcmVzdG9yZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAlncHVfd3JpdGUoZ3B1LCBWSVZTX01DX01NVV9SQV9QQUdFX1RBQkxFLCBwZ3RhYmxlKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbl9vcHMgZXRuYXZpdl9pb21tdXYxX29wcyA9IHsKLQkuZnJlZSA9IGV0bmF2aXZfaW9tbXV2MV9kb21haW5fZnJlZSwKKworY29uc3Qgc3RydWN0IGV0bmF2aXZfaW9tbXVfb3BzIGV0bmF2aXZfaW9tbXV2MV9vcHMgPSB7CisJLmZyZWUgPSBldG5hdml2X2lvbW11djFfZnJlZSwKIAkubWFwID0gZXRuYXZpdl9pb21tdXYxX21hcCwKIAkudW5tYXAgPSBldG5hdml2X2lvbW11djFfdW5tYXAsCiAJLmR1bXBfc2l6ZSA9IGV0bmF2aXZfaW9tbXV2MV9kdW1wX3NpemUsCiAJLmR1bXAgPSBldG5hdml2X2lvbW11djFfZHVtcCwKKwkucmVzdG9yZSA9IGV0bmF2aXZfaW9tbXV2MV9yZXN0b3JlLAogfTsKIAotc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICoKLWV0bmF2aXZfaW9tbXV2MV9kb21haW5fYWxsb2Moc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCitzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICoKK2V0bmF2aXZfaW9tbXV2MV9jb250ZXh0X2FsbG9jKHN0cnVjdCBldG5hdml2X2lvbW11X2dsb2JhbCAqZ2xvYmFsKQogewotCXN0cnVjdCBldG5hdml2X2lvbW11djFfZG9tYWluICpldG5hdml2X2RvbWFpbjsKLQlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbjsKLQlpbnQgcmV0OworCXN0cnVjdCBldG5hdml2X2lvbW11djFfY29udGV4dCAqdjFfY29udGV4dDsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0OwogCi0JZXRuYXZpdl9kb21haW4gPSBremFsbG9jKHNpemVvZigqZXRuYXZpdl9kb21haW4pLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWV0bmF2aXZfZG9tYWluKQorCW11dGV4X2xvY2soJmdsb2JhbC0+bG9jayk7CisKKwkvKgorCSAqIE1NVXYxIGRvZXMgbm90IHN1cHBvcnQgc3dpdGNoaW5nIGJldHdlZW4gZGlmZmVyZW50IGNvbnRleHRzIHdpdGhvdXQKKwkgKiBhIHN0b3AgdGhlIHdvcmxkIG9wZXJhdGlvbiwgc28gd2Ugb25seSBzdXBwb3J0IGEgc2luZ2xlIHNoYXJlZAorCSAqIGNvbnRleHQgd2l0aCB0aGlzIHZlcnNpb24uCisJICovCisJaWYgKGdsb2JhbC0+djEuc2hhcmVkX2NvbnRleHQpIHsKKwkJY29udGV4dCA9IGdsb2JhbC0+djEuc2hhcmVkX2NvbnRleHQ7CisJCWV0bmF2aXZfaW9tbXVfY29udGV4dF9nZXQoY29udGV4dCk7CisJCW11dGV4X3VubG9jaygmZ2xvYmFsLT5sb2NrKTsKKwkJcmV0dXJuIGNvbnRleHQ7CisJfQorCisJdjFfY29udGV4dCA9IGt6YWxsb2Moc2l6ZW9mKCp2MV9jb250ZXh0KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF2MV9jb250ZXh0KSB7CisJCW11dGV4X3VubG9jaygmZ2xvYmFsLT5sb2NrKTsKIAkJcmV0dXJuIE5VTEw7CisJfQogCi0JZG9tYWluID0gJmV0bmF2aXZfZG9tYWluLT5iYXNlOwotCi0JZG9tYWluLT5kZXYgPSBncHUtPmRldjsKLQlkb21haW4tPmJhc2UgPSBHUFVfTUVNX1NUQVJUOwotCWRvbWFpbi0+c2l6ZSA9IFBUX0VOVFJJRVMgKiBTWl80SzsKLQlkb21haW4tPm9wcyA9ICZldG5hdml2X2lvbW11djFfb3BzOwotCi0JcmV0ID0gX19ldG5hdml2X2lvbW11X2luaXQoZXRuYXZpdl9kb21haW4pOwotCWlmIChyZXQpCisJdjFfY29udGV4dC0+cGd0YWJsZV9jcHUgPSBkbWFfYWxsb2Nfd2MoZ2xvYmFsLT5kZXYsIFBUX1NJWkUsCisJCQkJCSAgICAgICAmdjFfY29udGV4dC0+cGd0YWJsZV9kbWEsCisJCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXYxX2NvbnRleHQtPnBndGFibGVfY3B1KQogCQlnb3RvIG91dF9mcmVlOwogCi0JcmV0dXJuICZldG5hdml2X2RvbWFpbi0+YmFzZTsKKwltZW1zZXQzMih2MV9jb250ZXh0LT5wZ3RhYmxlX2NwdSwgZ2xvYmFsLT5iYWRfcGFnZV9kbWEsIFBUX0VOVFJJRVMpOworCisJY29udGV4dCA9ICZ2MV9jb250ZXh0LT5iYXNlOworCWNvbnRleHQtPmdsb2JhbCA9IGdsb2JhbDsKKwlrcmVmX2luaXQoJmNvbnRleHQtPnJlZmNvdW50KTsKKwltdXRleF9pbml0KCZjb250ZXh0LT5sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmY29udGV4dC0+bWFwcGluZ3MpOworCWRybV9tbV9pbml0KCZjb250ZXh0LT5tbSwgR1BVX01FTV9TVEFSVCwgUFRfRU5UUklFUyAqIFNaXzRLKTsKKwljb250ZXh0LT5nbG9iYWwtPnYxLnNoYXJlZF9jb250ZXh0ID0gY29udGV4dDsKKworCW11dGV4X3VubG9jaygmZ2xvYmFsLT5sb2NrKTsKKworCXJldHVybiBjb250ZXh0OwogCiBvdXRfZnJlZToKLQlrZnJlZShldG5hdml2X2RvbWFpbik7CisJbXV0ZXhfdW5sb2NrKCZnbG9iYWwtPmxvY2spOworCWtmcmVlKHYxX2NvbnRleHQpOwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9pb21tdS5oIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9pb21tdS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjc5NDA0Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfaW9tbXUuaAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggRXRuYXZpdiBQcm9qZWN0Ci0gKi8KLQotI2lmbmRlZiBfX0VUTkFWSVZfSU9NTVVfSF9fCi0jZGVmaW5lIF9fRVROQVZJVl9JT01NVV9IX18KLQotc3RydWN0IGV0bmF2aXZfZ3B1Owotc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluOwotCi1zdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKgotZXRuYXZpdl9pb21tdXYxX2RvbWFpbl9hbGxvYyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSk7Ci12b2lkIGV0bmF2aXZfaW9tbXV2MV9yZXN0b3JlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KTsKLQotc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICoKLWV0bmF2aXZfaW9tbXV2Ml9kb21haW5fYWxsb2Moc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpOwotdm9pZCBldG5hdml2X2lvbW11djJfcmVzdG9yZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSk7Ci0KLSNlbmRpZiAvKiBfX0VUTkFWSVZfSU9NTVVfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2lvbW11X3YyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2lvbW11X3YyLmMKaW5kZXggZjc5NGUwNC4uMDQzMTExYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9pb21tdV92Mi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfaW9tbXVfdjIuYwpAQCAtMywxNiArMywxNiBAQAogICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggRXRuYXZpdiBQcm9qZWN0CiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2l6ZXMuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAKICNpbmNsdWRlICJldG5hdml2X2NtZGJ1Zi5oIgogI2luY2x1ZGUgImV0bmF2aXZfZ3B1LmgiCiAjaW5jbHVkZSAiZXRuYXZpdl9tbXUuaCIKLSNpbmNsdWRlICJldG5hdml2X2lvbW11LmgiCiAjaW5jbHVkZSAic3RhdGUueG1sLmgiCiAjaW5jbHVkZSAic3RhdGVfaGkueG1sLmgiCiAKQEAgLTI3LDExICsyNyw5IEBACiAKICNkZWZpbmUgTU1VdjJfTUFYX1NUTEJfRU5UUklFUwkJMTAyNAogCi1zdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2RvbWFpbiB7Ci0Jc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluIGJhc2U7Ci0JLyogUChhZ2UpIFQoYWJsZSkgQShycmF5KSAqLwotCXU2NCAqcHRhX2NwdTsKLQlkbWFfYWRkcl90IHB0YV9kbWE7CitzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2NvbnRleHQgeworCXN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgYmFzZTsKKwl1bnNpZ25lZCBzaG9ydCBpZDsKIAkvKiBNKGFzdGVyKSBUTEIgYWthIGZpcnN0IGxldmVsIHBhZ2V0YWJsZSAqLwogCXUzMiAqbXRsYl9jcHU7CiAJZG1hX2FkZHJfdCBtdGxiX2RtYTsKQEAgLTQwLDQxICszOCw2MiBAQCBzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2RvbWFpbiB7CiAJZG1hX2FkZHJfdCBzdGxiX2RtYVtNTVV2Ml9NQVhfU1RMQl9FTlRSSUVTXTsKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2RvbWFpbiAqCi10b19ldG5hdml2X2RvbWFpbihzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbikKK3N0YXRpYyBzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2NvbnRleHQgKgordG9fdjJfY29udGV4dChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQogewotCXJldHVybiBjb250YWluZXJfb2YoZG9tYWluLCBzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2RvbWFpbiwgYmFzZSk7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihjb250ZXh0LCBzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2NvbnRleHQsIGJhc2UpOwogfQogCitzdGF0aWMgdm9pZCBldG5hdml2X2lvbW11djJfZnJlZShzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQoreworCXN0cnVjdCBldG5hdml2X2lvbW11djJfY29udGV4dCAqdjJfY29udGV4dCA9IHRvX3YyX2NvbnRleHQoY29udGV4dCk7CisJaW50IGk7CisKKwlkcm1fbW1fdGFrZWRvd24oJmNvbnRleHQtPm1tKTsKKworCWZvciAoaSA9IDA7IGkgPCBNTVV2Ml9NQVhfU1RMQl9FTlRSSUVTOyBpKyspIHsKKwkJaWYgKHYyX2NvbnRleHQtPnN0bGJfY3B1W2ldKQorCQkJZG1hX2ZyZWVfd2MoY29udGV4dC0+Z2xvYmFsLT5kZXYsIFNaXzRLLAorCQkJCSAgICB2Ml9jb250ZXh0LT5zdGxiX2NwdVtpXSwKKwkJCQkgICAgdjJfY29udGV4dC0+c3RsYl9kbWFbaV0pOworCX0KKworCWRtYV9mcmVlX3djKGNvbnRleHQtPmdsb2JhbC0+ZGV2LCBTWl80SywgdjJfY29udGV4dC0+bXRsYl9jcHUsCisJCSAgICB2Ml9jb250ZXh0LT5tdGxiX2RtYSk7CisKKwljbGVhcl9iaXQodjJfY29udGV4dC0+aWQsIGNvbnRleHQtPmdsb2JhbC0+djIucHRhX2FsbG9jKTsKKworCXZmcmVlKHYyX2NvbnRleHQpOworfQogc3RhdGljIGludAotZXRuYXZpdl9pb21tdXYyX2Vuc3VyZV9zdGxiKHN0cnVjdCBldG5hdml2X2lvbW11djJfZG9tYWluICpldG5hdml2X2RvbWFpbiwKK2V0bmF2aXZfaW9tbXV2Ml9lbnN1cmVfc3RsYihzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2NvbnRleHQgKnYyX2NvbnRleHQsCiAJCQkgICAgaW50IHN0bGIpCiB7Ci0JaWYgKGV0bmF2aXZfZG9tYWluLT5zdGxiX2NwdVtzdGxiXSkKKwlpZiAodjJfY29udGV4dC0+c3RsYl9jcHVbc3RsYl0pCiAJCXJldHVybiAwOwogCi0JZXRuYXZpdl9kb21haW4tPnN0bGJfY3B1W3N0bGJdID0KLQkJCWRtYV9hbGxvY193YyhldG5hdml2X2RvbWFpbi0+YmFzZS5kZXYsIFNaXzRLLAotCQkJCSAgICAgJmV0bmF2aXZfZG9tYWluLT5zdGxiX2RtYVtzdGxiXSwKKwl2Ml9jb250ZXh0LT5zdGxiX2NwdVtzdGxiXSA9CisJCQlkbWFfYWxsb2Nfd2ModjJfY29udGV4dC0+YmFzZS5nbG9iYWwtPmRldiwgU1pfNEssCisJCQkJICAgICAmdjJfY29udGV4dC0+c3RsYl9kbWFbc3RsYl0sCiAJCQkJICAgICBHRlBfS0VSTkVMKTsKIAotCWlmICghZXRuYXZpdl9kb21haW4tPnN0bGJfY3B1W3N0bGJdKQorCWlmICghdjJfY29udGV4dC0+c3RsYl9jcHVbc3RsYl0pCiAJCXJldHVybiAtRU5PTUVNOwogCi0JbWVtc2V0MzIoZXRuYXZpdl9kb21haW4tPnN0bGJfY3B1W3N0bGJdLCBNTVV2Ml9QVEVfRVhDRVBUSU9OLAorCW1lbXNldDMyKHYyX2NvbnRleHQtPnN0bGJfY3B1W3N0bGJdLCBNTVV2Ml9QVEVfRVhDRVBUSU9OLAogCQkgU1pfNEsgLyBzaXplb2YodTMyKSk7CiAKLQlldG5hdml2X2RvbWFpbi0+bXRsYl9jcHVbc3RsYl0gPSBldG5hdml2X2RvbWFpbi0+c3RsYl9kbWFbc3RsYl0gfAotCQkJCQkJICAgICAgTU1VdjJfUFRFX1BSRVNFTlQ7CisJdjJfY29udGV4dC0+bXRsYl9jcHVbc3RsYl0gPQorCQkJdjJfY29udGV4dC0+c3RsYl9kbWFbc3RsYl0gfCBNTVV2Ml9QVEVfUFJFU0VOVDsKKwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGV0bmF2aXZfaW9tbXV2Ml9tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpkb21haW4sCitzdGF0aWMgaW50IGV0bmF2aXZfaW9tbXV2Ml9tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwKIAkJCSAgICAgICB1bnNpZ25lZCBsb25nIGlvdmEsIHBoeXNfYWRkcl90IHBhZGRyLAogCQkJICAgICAgIHNpemVfdCBzaXplLCBpbnQgcHJvdCkKIHsKLQlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2RvbWFpbiAqZXRuYXZpdl9kb21haW4gPQotCQkJdG9fZXRuYXZpdl9kb21haW4oZG9tYWluKTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2NvbnRleHQgKnYyX2NvbnRleHQgPSB0b192Ml9jb250ZXh0KGNvbnRleHQpOwogCWludCBtdGxiX2VudHJ5LCBzdGxiX2VudHJ5LCByZXQ7CiAJdTMyIGVudHJ5ID0gbG93ZXJfMzJfYml0cyhwYWRkcikgfCBNTVV2Ml9QVEVfUFJFU0VOVDsKIApAQCAtOTAsMjAgKzEwOSwxOSBAQCBzdGF0aWMgaW50IGV0bmF2aXZfaW9tbXV2Ml9tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpkb21haW4sCiAJbXRsYl9lbnRyeSA9IChpb3ZhICYgTU1VdjJfTVRMQl9NQVNLKSA+PiBNTVV2Ml9NVExCX1NISUZUOwogCXN0bGJfZW50cnkgPSAoaW92YSAmIE1NVXYyX1NUTEJfTUFTSykgPj4gTU1VdjJfU1RMQl9TSElGVDsKIAotCXJldCA9IGV0bmF2aXZfaW9tbXV2Ml9lbnN1cmVfc3RsYihldG5hdml2X2RvbWFpbiwgbXRsYl9lbnRyeSk7CisJcmV0ID0gZXRuYXZpdl9pb21tdXYyX2Vuc3VyZV9zdGxiKHYyX2NvbnRleHQsIG10bGJfZW50cnkpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlldG5hdml2X2RvbWFpbi0+c3RsYl9jcHVbbXRsYl9lbnRyeV1bc3RsYl9lbnRyeV0gPSBlbnRyeTsKKwl2Ml9jb250ZXh0LT5zdGxiX2NwdVttdGxiX2VudHJ5XVtzdGxiX2VudHJ5XSA9IGVudHJ5OwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzaXplX3QgZXRuYXZpdl9pb21tdXYyX3VubWFwKHN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiAqZG9tYWluLAorc3RhdGljIHNpemVfdCBldG5hdml2X2lvbW11djJfdW5tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwKIAkJCQkgICAgdW5zaWduZWQgbG9uZyBpb3ZhLCBzaXplX3Qgc2l6ZSkKIHsKLQlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2RvbWFpbiAqZXRuYXZpdl9kb21haW4gPQotCQkJdG9fZXRuYXZpdl9kb21haW4oZG9tYWluKTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2NvbnRleHQgKmV0bmF2aXZfZG9tYWluID0gdG9fdjJfY29udGV4dChjb250ZXh0KTsKIAlpbnQgbXRsYl9lbnRyeSwgc3RsYl9lbnRyeTsKIAogCWlmIChzaXplICE9IFNaXzRLKQpAQCAtMTE3LDExOCArMTM1LDM1IEBAIHN0YXRpYyBzaXplX3QgZXRuYXZpdl9pb21tdXYyX3VubWFwKHN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiAqZG9tYWluLAogCXJldHVybiBTWl80SzsKIH0KIAotc3RhdGljIGludCBldG5hdml2X2lvbW11djJfaW5pdChzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2RvbWFpbiAqZXRuYXZpdl9kb21haW4pCitzdGF0aWMgc2l6ZV90IGV0bmF2aXZfaW9tbXV2Ml9kdW1wX3NpemUoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCkKIHsKLQlpbnQgcmV0OwotCi0JLyogYWxsb2NhdGUgc2NyYXRjaCBwYWdlICovCi0JZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfY3B1ID0KLQkJCWRtYV9hbGxvY193YyhldG5hdml2X2RvbWFpbi0+YmFzZS5kZXYsIFNaXzRLLAotCQkJCSAgICAgJmV0bmF2aXZfZG9tYWluLT5iYXNlLmJhZF9wYWdlX2RtYSwKLQkJCQkgICAgIEdGUF9LRVJORUwpOwotCWlmICghZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfY3B1KSB7Ci0JCXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gZmFpbF9tZW07Ci0JfQotCi0JbWVtc2V0MzIoZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfY3B1LCAweGRlYWQ1NWFhLAotCQkgU1pfNEsgLyBzaXplb2YodTMyKSk7Ci0KLQlldG5hdml2X2RvbWFpbi0+cHRhX2NwdSA9IGRtYV9hbGxvY193YyhldG5hdml2X2RvbWFpbi0+YmFzZS5kZXYsCi0JCQkJCSAgICAgICBTWl80SywgJmV0bmF2aXZfZG9tYWluLT5wdGFfZG1hLAotCQkJCQkgICAgICAgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFldG5hdml2X2RvbWFpbi0+cHRhX2NwdSkgewotCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIGZhaWxfbWVtOwotCX0KLQotCWV0bmF2aXZfZG9tYWluLT5tdGxiX2NwdSA9IGRtYV9hbGxvY193YyhldG5hdml2X2RvbWFpbi0+YmFzZS5kZXYsCi0JCQkJCQlTWl80SywgJmV0bmF2aXZfZG9tYWluLT5tdGxiX2RtYSwKLQkJCQkJCUdGUF9LRVJORUwpOwotCWlmICghZXRuYXZpdl9kb21haW4tPm10bGJfY3B1KSB7Ci0JCXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gZmFpbF9tZW07Ci0JfQotCi0JbWVtc2V0MzIoZXRuYXZpdl9kb21haW4tPm10bGJfY3B1LCBNTVV2Ml9QVEVfRVhDRVBUSU9OLAotCQkgTU1VdjJfTUFYX1NUTEJfRU5UUklFUyk7Ci0KLQlyZXR1cm4gMDsKLQotZmFpbF9tZW06Ci0JaWYgKGV0bmF2aXZfZG9tYWluLT5iYXNlLmJhZF9wYWdlX2NwdSkKLQkJZG1hX2ZyZWVfd2MoZXRuYXZpdl9kb21haW4tPmJhc2UuZGV2LCBTWl80SywKLQkJCSAgICBldG5hdml2X2RvbWFpbi0+YmFzZS5iYWRfcGFnZV9jcHUsCi0JCQkgICAgZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfZG1hKTsKLQotCWlmIChldG5hdml2X2RvbWFpbi0+cHRhX2NwdSkKLQkJZG1hX2ZyZWVfd2MoZXRuYXZpdl9kb21haW4tPmJhc2UuZGV2LCBTWl80SywKLQkJCSAgICBldG5hdml2X2RvbWFpbi0+cHRhX2NwdSwgZXRuYXZpdl9kb21haW4tPnB0YV9kbWEpOwotCi0JaWYgKGV0bmF2aXZfZG9tYWluLT5tdGxiX2NwdSkKLQkJZG1hX2ZyZWVfd2MoZXRuYXZpdl9kb21haW4tPmJhc2UuZGV2LCBTWl80SywKLQkJCSAgICBldG5hdml2X2RvbWFpbi0+bXRsYl9jcHUsIGV0bmF2aXZfZG9tYWluLT5tdGxiX2RtYSk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBldG5hdml2X2lvbW11djJfZG9tYWluX2ZyZWUoc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpkb21haW4pCi17Ci0Jc3RydWN0IGV0bmF2aXZfaW9tbXV2Ml9kb21haW4gKmV0bmF2aXZfZG9tYWluID0KLQkJCXRvX2V0bmF2aXZfZG9tYWluKGRvbWFpbik7Ci0JaW50IGk7Ci0KLQlkbWFfZnJlZV93YyhldG5hdml2X2RvbWFpbi0+YmFzZS5kZXYsIFNaXzRLLAotCQkgICAgZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfY3B1LAotCQkgICAgZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfZG1hKTsKLQotCWRtYV9mcmVlX3djKGV0bmF2aXZfZG9tYWluLT5iYXNlLmRldiwgU1pfNEssCi0JCSAgICBldG5hdml2X2RvbWFpbi0+cHRhX2NwdSwgZXRuYXZpdl9kb21haW4tPnB0YV9kbWEpOwotCi0JZG1hX2ZyZWVfd2MoZXRuYXZpdl9kb21haW4tPmJhc2UuZGV2LCBTWl80SywKLQkJICAgIGV0bmF2aXZfZG9tYWluLT5tdGxiX2NwdSwgZXRuYXZpdl9kb21haW4tPm10bGJfZG1hKTsKLQotCWZvciAoaSA9IDA7IGkgPCBNTVV2Ml9NQVhfU1RMQl9FTlRSSUVTOyBpKyspIHsKLQkJaWYgKGV0bmF2aXZfZG9tYWluLT5zdGxiX2NwdVtpXSkKLQkJCWRtYV9mcmVlX3djKGV0bmF2aXZfZG9tYWluLT5iYXNlLmRldiwgU1pfNEssCi0JCQkJICAgIGV0bmF2aXZfZG9tYWluLT5zdGxiX2NwdVtpXSwKLQkJCQkgICAgZXRuYXZpdl9kb21haW4tPnN0bGJfZG1hW2ldKTsKLQl9Ci0KLQl2ZnJlZShldG5hdml2X2RvbWFpbik7Ci19Ci0KLXN0YXRpYyBzaXplX3QgZXRuYXZpdl9pb21tdXYyX2R1bXBfc2l6ZShzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbikKLXsKLQlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2RvbWFpbiAqZXRuYXZpdl9kb21haW4gPQotCQkJdG9fZXRuYXZpdl9kb21haW4oZG9tYWluKTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2NvbnRleHQgKnYyX2NvbnRleHQgPSB0b192Ml9jb250ZXh0KGNvbnRleHQpOwogCXNpemVfdCBkdW1wX3NpemUgPSBTWl80SzsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBNTVV2Ml9NQVhfU1RMQl9FTlRSSUVTOyBpKyspCi0JCWlmIChldG5hdml2X2RvbWFpbi0+bXRsYl9jcHVbaV0gJiBNTVV2Ml9QVEVfUFJFU0VOVCkKKwkJaWYgKHYyX2NvbnRleHQtPm10bGJfY3B1W2ldICYgTU1VdjJfUFRFX1BSRVNFTlQpCiAJCQlkdW1wX3NpemUgKz0gU1pfNEs7CiAKIAlyZXR1cm4gZHVtcF9zaXplOwogfQogCi1zdGF0aWMgdm9pZCBldG5hdml2X2lvbW11djJfZHVtcChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbiwgdm9pZCAqYnVmKQorc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdXYyX2R1bXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwgdm9pZCAqYnVmKQogewotCXN0cnVjdCBldG5hdml2X2lvbW11djJfZG9tYWluICpldG5hdml2X2RvbWFpbiA9Ci0JCQl0b19ldG5hdml2X2RvbWFpbihkb21haW4pOworCXN0cnVjdCBldG5hdml2X2lvbW11djJfY29udGV4dCAqdjJfY29udGV4dCA9IHRvX3YyX2NvbnRleHQoY29udGV4dCk7CiAJaW50IGk7CiAKLQltZW1jcHkoYnVmLCBldG5hdml2X2RvbWFpbi0+bXRsYl9jcHUsIFNaXzRLKTsKKwltZW1jcHkoYnVmLCB2Ml9jb250ZXh0LT5tdGxiX2NwdSwgU1pfNEspOwogCWJ1ZiArPSBTWl80SzsKIAlmb3IgKGkgPSAwOyBpIDwgTU1VdjJfTUFYX1NUTEJfRU5UUklFUzsgaSsrLCBidWYgKz0gU1pfNEspCi0JCWlmIChldG5hdml2X2RvbWFpbi0+bXRsYl9jcHVbaV0gJiBNTVV2Ml9QVEVfUFJFU0VOVCkKLQkJCW1lbWNweShidWYsIGV0bmF2aXZfZG9tYWluLT5zdGxiX2NwdVtpXSwgU1pfNEspOworCQlpZiAodjJfY29udGV4dC0+bXRsYl9jcHVbaV0gJiBNTVV2Ml9QVEVfUFJFU0VOVCkKKwkJCW1lbWNweShidWYsIHYyX2NvbnRleHQtPnN0bGJfY3B1W2ldLCBTWl80Syk7CiB9CiAKLXN0YXRpYyB2b2lkIGV0bmF2aXZfaW9tbXV2Ml9yZXN0b3JlX25vbnNlYyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKK3N0YXRpYyB2b2lkIGV0bmF2aXZfaW9tbXV2Ml9yZXN0b3JlX25vbnNlYyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQogewotCXN0cnVjdCBldG5hdml2X2lvbW11djJfZG9tYWluICpldG5hdml2X2RvbWFpbiA9Ci0JCQl0b19ldG5hdml2X2RvbWFpbihncHUtPm1tdS0+ZG9tYWluKTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2NvbnRleHQgKnYyX2NvbnRleHQgPSB0b192Ml9jb250ZXh0KGNvbnRleHQpOwogCXUxNiBwcmVmZXRjaDsKIAogCS8qIElmIHRoZSBNTVUgaXMgYWxyZWFkeSBlbmFibGVkIHRoZSBzdGF0ZSBpcyBzdGlsbCB0aGVyZS4gKi8KQEAgLTIzNiw4ICsxNzEsOCBAQCBzdGF0aWMgdm9pZCBldG5hdml2X2lvbW11djJfcmVzdG9yZV9ub25zZWMoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJCXJldHVybjsKIAogCXByZWZldGNoID0gZXRuYXZpdl9idWZmZXJfY29uZmlnX21tdXYyKGdwdSwKLQkJCQkodTMyKWV0bmF2aXZfZG9tYWluLT5tdGxiX2RtYSwKLQkJCQkodTMyKWV0bmF2aXZfZG9tYWluLT5iYXNlLmJhZF9wYWdlX2RtYSk7CisJCQkJKHUzMil2Ml9jb250ZXh0LT5tdGxiX2RtYSwKKwkJCQkodTMyKWNvbnRleHQtPmdsb2JhbC0+YmFkX3BhZ2VfZG1hKTsKIAlldG5hdml2X2dwdV9zdGFydF9mZShncHUsICh1MzIpZXRuYXZpdl9jbWRidWZfZ2V0X3BhKCZncHUtPmJ1ZmZlciksCiAJCQkgICAgIHByZWZldGNoKTsKIAlldG5hdml2X2dwdV93YWl0X2lkbGUoZ3B1LCAxMDApOwpAQCAtMjQ1LDEwICsxODAsMTAgQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdXYyX3Jlc3RvcmVfbm9uc2VjKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogCWdwdV93cml0ZShncHUsIFZJVlNfTU1VdjJfQ09OVFJPTCwgVklWU19NTVV2Ml9DT05UUk9MX0VOQUJMRSk7CiB9CiAKLXN0YXRpYyB2b2lkIGV0bmF2aXZfaW9tbXV2Ml9yZXN0b3JlX3NlYyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKK3N0YXRpYyB2b2lkIGV0bmF2aXZfaW9tbXV2Ml9yZXN0b3JlX3NlYyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQogewotCXN0cnVjdCBldG5hdml2X2lvbW11djJfZG9tYWluICpldG5hdml2X2RvbWFpbiA9Ci0JCQkJdG9fZXRuYXZpdl9kb21haW4oZ3B1LT5tbXUtPmRvbWFpbik7CisJc3RydWN0IGV0bmF2aXZfaW9tbXV2Ml9jb250ZXh0ICp2Ml9jb250ZXh0ID0gdG9fdjJfY29udGV4dChjb250ZXh0KTsKIAl1MTYgcHJlZmV0Y2g7CiAKIAkvKiBJZiB0aGUgTU1VIGlzIGFscmVhZHkgZW5hYmxlZCB0aGUgc3RhdGUgaXMgc3RpbGwgdGhlcmUuICovCkBAIC0yNTYsMjYgKzE5MSwyNiBAQCBzdGF0aWMgdm9pZCBldG5hdml2X2lvbW11djJfcmVzdG9yZV9zZWMoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJCXJldHVybjsKIAogCWdwdV93cml0ZShncHUsIFZJVlNfTU1VdjJfUFRBX0FERFJFU1NfTE9XLAotCQkgIGxvd2VyXzMyX2JpdHMoZXRuYXZpdl9kb21haW4tPnB0YV9kbWEpKTsKKwkJICBsb3dlcl8zMl9iaXRzKGNvbnRleHQtPmdsb2JhbC0+djIucHRhX2RtYSkpOwogCWdwdV93cml0ZShncHUsIFZJVlNfTU1VdjJfUFRBX0FERFJFU1NfSElHSCwKLQkJICB1cHBlcl8zMl9iaXRzKGV0bmF2aXZfZG9tYWluLT5wdGFfZG1hKSk7CisJCSAgdXBwZXJfMzJfYml0cyhjb250ZXh0LT5nbG9iYWwtPnYyLnB0YV9kbWEpKTsKIAlncHVfd3JpdGUoZ3B1LCBWSVZTX01NVXYyX1BUQV9DT05UUk9MLCBWSVZTX01NVXYyX1BUQV9DT05UUk9MX0VOQUJMRSk7CiAKIAlncHVfd3JpdGUoZ3B1LCBWSVZTX01NVXYyX05PTlNFQ19TQUZFX0FERFJfTE9XLAotCQkgIGxvd2VyXzMyX2JpdHMoZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfZG1hKSk7CisJCSAgbG93ZXJfMzJfYml0cyhjb250ZXh0LT5nbG9iYWwtPmJhZF9wYWdlX2RtYSkpOwogCWdwdV93cml0ZShncHUsIFZJVlNfTU1VdjJfU0VDX1NBRkVfQUREUl9MT1csCi0JCSAgbG93ZXJfMzJfYml0cyhldG5hdml2X2RvbWFpbi0+YmFzZS5iYWRfcGFnZV9kbWEpKTsKKwkJICBsb3dlcl8zMl9iaXRzKGNvbnRleHQtPmdsb2JhbC0+YmFkX3BhZ2VfZG1hKSk7CiAJZ3B1X3dyaXRlKGdwdSwgVklWU19NTVV2Ml9TQUZFX0FERFJFU1NfQ09ORklHLAogCQkgIFZJVlNfTU1VdjJfU0FGRV9BRERSRVNTX0NPTkZJR19OT05fU0VDX1NBRkVfQUREUl9ISUdIKAotCQkgIHVwcGVyXzMyX2JpdHMoZXRuYXZpdl9kb21haW4tPmJhc2UuYmFkX3BhZ2VfZG1hKSkgfAorCQkgIHVwcGVyXzMyX2JpdHMoY29udGV4dC0+Z2xvYmFsLT5iYWRfcGFnZV9kbWEpKSB8CiAJCSAgVklWU19NTVV2Ml9TQUZFX0FERFJFU1NfQ09ORklHX1NFQ19TQUZFX0FERFJfSElHSCgKLQkJICB1cHBlcl8zMl9iaXRzKGV0bmF2aXZfZG9tYWluLT5iYXNlLmJhZF9wYWdlX2RtYSkpKTsKKwkJICB1cHBlcl8zMl9iaXRzKGNvbnRleHQtPmdsb2JhbC0+YmFkX3BhZ2VfZG1hKSkpOwogCi0JZXRuYXZpdl9kb21haW4tPnB0YV9jcHVbMF0gPSBldG5hdml2X2RvbWFpbi0+bXRsYl9kbWEgfAotCQkJCSAgICAgVklWU19NTVV2Ml9DT05GSUdVUkFUSU9OX01PREVfTU9ERTRfSzsKKwljb250ZXh0LT5nbG9iYWwtPnYyLnB0YV9jcHVbdjJfY29udGV4dC0+aWRdID0gdjJfY29udGV4dC0+bXRsYl9kbWEgfAorCQkJCSAJIFZJVlNfTU1VdjJfQ09ORklHVVJBVElPTl9NT0RFX01PREU0X0s7CiAKIAkvKiB0cmlnZ2VyIGEgUFRBIGxvYWQgdGhyb3VnaCB0aGUgRkUgKi8KLQlwcmVmZXRjaCA9IGV0bmF2aXZfYnVmZmVyX2NvbmZpZ19wdGEoZ3B1KTsKKwlwcmVmZXRjaCA9IGV0bmF2aXZfYnVmZmVyX2NvbmZpZ19wdGEoZ3B1LCB2Ml9jb250ZXh0LT5pZCk7CiAJZXRuYXZpdl9ncHVfc3RhcnRfZmUoZ3B1LCAodTMyKWV0bmF2aXZfY21kYnVmX2dldF9wYSgmZ3B1LT5idWZmZXIpLAogCQkJICAgICBwcmVmZXRjaCk7CiAJZXRuYXZpdl9ncHVfd2FpdF9pZGxlKGdwdSwgMTAwKTsKQEAgLTI4MywxNCArMjE4LDI4IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfaW9tbXV2Ml9yZXN0b3JlX3NlYyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAlncHVfd3JpdGUoZ3B1LCBWSVZTX01NVXYyX1NFQ19DT05UUk9MLCBWSVZTX01NVXYyX1NFQ19DT05UUk9MX0VOQUJMRSk7CiB9CiAKLXZvaWQgZXRuYXZpdl9pb21tdXYyX3Jlc3RvcmUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCit1MzIgZXRuYXZpdl9pb21tdXYyX2dldF9tdGxiX2FkZHIoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCkKK3sKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdXYyX2NvbnRleHQgKnYyX2NvbnRleHQgPSB0b192Ml9jb250ZXh0KGNvbnRleHQpOworCisJcmV0dXJuIHYyX2NvbnRleHQtPm10bGJfZG1hOworfQorCit1bnNpZ25lZCBzaG9ydCBldG5hdml2X2lvbW11djJfZ2V0X3B0YV9pZChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQoreworCXN0cnVjdCBldG5hdml2X2lvbW11djJfY29udGV4dCAqdjJfY29udGV4dCA9IHRvX3YyX2NvbnRleHQoY29udGV4dCk7CisKKwlyZXR1cm4gdjJfY29udGV4dC0+aWQ7Cit9CitzdGF0aWMgdm9pZCBldG5hdml2X2lvbW11djJfcmVzdG9yZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKKwkJCQkgICAgc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCkKIHsKIAlzd2l0Y2ggKGdwdS0+c2VjX21vZGUpIHsKIAljYXNlIEVUTkFfU0VDX05PTkU6Ci0JCWV0bmF2aXZfaW9tbXV2Ml9yZXN0b3JlX25vbnNlYyhncHUpOworCQlldG5hdml2X2lvbW11djJfcmVzdG9yZV9ub25zZWMoZ3B1LCBjb250ZXh0KTsKIAkJYnJlYWs7CiAJY2FzZSBFVE5BX1NFQ19LRVJORUw6Ci0JCWV0bmF2aXZfaW9tbXV2Ml9yZXN0b3JlX3NlYyhncHUpOworCQlldG5hdml2X2lvbW11djJfcmVzdG9yZV9zZWMoZ3B1LCBjb250ZXh0KTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJV0FSTigxLCAidW5oYW5kbGVkIEdQVSBzZWN1cml0eSBtb2RlXG4iKTsKQEAgLTI5OCwzOSArMjQ3LDU4IEBAIHZvaWQgZXRuYXZpdl9pb21tdXYyX3Jlc3RvcmUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJfQogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluX29wcyBldG5hdml2X2lvbW11djJfb3BzID0gewotCS5mcmVlID0gZXRuYXZpdl9pb21tdXYyX2RvbWFpbl9mcmVlLAorY29uc3Qgc3RydWN0IGV0bmF2aXZfaW9tbXVfb3BzIGV0bmF2aXZfaW9tbXV2Ml9vcHMgPSB7CisJLmZyZWUgPSBldG5hdml2X2lvbW11djJfZnJlZSwKIAkubWFwID0gZXRuYXZpdl9pb21tdXYyX21hcCwKIAkudW5tYXAgPSBldG5hdml2X2lvbW11djJfdW5tYXAsCiAJLmR1bXBfc2l6ZSA9IGV0bmF2aXZfaW9tbXV2Ml9kdW1wX3NpemUsCiAJLmR1bXAgPSBldG5hdml2X2lvbW11djJfZHVtcCwKKwkucmVzdG9yZSA9IGV0bmF2aXZfaW9tbXV2Ml9yZXN0b3JlLAogfTsKIAotc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICoKLWV0bmF2aXZfaW9tbXV2Ml9kb21haW5fYWxsb2Moc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCitzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICoKK2V0bmF2aXZfaW9tbXV2Ml9jb250ZXh0X2FsbG9jKHN0cnVjdCBldG5hdml2X2lvbW11X2dsb2JhbCAqZ2xvYmFsKQogewotCXN0cnVjdCBldG5hdml2X2lvbW11djJfZG9tYWluICpldG5hdml2X2RvbWFpbjsKLQlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbjsKLQlpbnQgcmV0OworCXN0cnVjdCBldG5hdml2X2lvbW11djJfY29udGV4dCAqdjJfY29udGV4dDsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0OwogCi0JZXRuYXZpdl9kb21haW4gPSB2emFsbG9jKHNpemVvZigqZXRuYXZpdl9kb21haW4pKTsKLQlpZiAoIWV0bmF2aXZfZG9tYWluKQorCXYyX2NvbnRleHQgPSB2emFsbG9jKHNpemVvZigqdjJfY29udGV4dCkpOworCWlmICghdjJfY29udGV4dCkKIAkJcmV0dXJuIE5VTEw7CiAKLQlkb21haW4gPSAmZXRuYXZpdl9kb21haW4tPmJhc2U7Ci0KLQlkb21haW4tPmRldiA9IGdwdS0+ZGV2OwotCWRvbWFpbi0+YmFzZSA9IFNaXzRLOwotCWRvbWFpbi0+c2l6ZSA9ICh1NjQpU1pfMUcgKiA0IC0gU1pfNEs7Ci0JZG9tYWluLT5vcHMgPSAmZXRuYXZpdl9pb21tdXYyX29wczsKLQotCXJldCA9IGV0bmF2aXZfaW9tbXV2Ml9pbml0KGV0bmF2aXZfZG9tYWluKTsKLQlpZiAocmV0KQorCW11dGV4X2xvY2soJmdsb2JhbC0+bG9jayk7CisJdjJfY29udGV4dC0+aWQgPSBmaW5kX2ZpcnN0X3plcm9fYml0KGdsb2JhbC0+djIucHRhX2FsbG9jLAorCQkJCQkgICAgIEVUTkFWSVZfUFRBX0VOVFJJRVMpOworCWlmICh2Ml9jb250ZXh0LT5pZCA8IEVUTkFWSVZfUFRBX0VOVFJJRVMpIHsKKwkJc2V0X2JpdCh2Ml9jb250ZXh0LT5pZCwgZ2xvYmFsLT52Mi5wdGFfYWxsb2MpOworCX0gZWxzZSB7CisJCW11dGV4X3VubG9jaygmZ2xvYmFsLT5sb2NrKTsKIAkJZ290byBvdXRfZnJlZTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZnbG9iYWwtPmxvY2spOwogCi0JcmV0dXJuICZldG5hdml2X2RvbWFpbi0+YmFzZTsKKwl2Ml9jb250ZXh0LT5tdGxiX2NwdSA9IGRtYV9hbGxvY193YyhnbG9iYWwtPmRldiwgU1pfNEssCisJCQkJCSAgICAmdjJfY29udGV4dC0+bXRsYl9kbWEsIEdGUF9LRVJORUwpOworCWlmICghdjJfY29udGV4dC0+bXRsYl9jcHUpCisJCWdvdG8gb3V0X2ZyZWVfaWQ7CiAKKwltZW1zZXQzMih2Ml9jb250ZXh0LT5tdGxiX2NwdSwgTU1VdjJfUFRFX0VYQ0VQVElPTiwKKwkJIE1NVXYyX01BWF9TVExCX0VOVFJJRVMpOworCisJZ2xvYmFsLT52Mi5wdGFfY3B1W3YyX2NvbnRleHQtPmlkXSA9IHYyX2NvbnRleHQtPm10bGJfZG1hOworCisJY29udGV4dCA9ICZ2Ml9jb250ZXh0LT5iYXNlOworCWNvbnRleHQtPmdsb2JhbCA9IGdsb2JhbDsKKwlrcmVmX2luaXQoJmNvbnRleHQtPnJlZmNvdW50KTsKKwltdXRleF9pbml0KCZjb250ZXh0LT5sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmY29udGV4dC0+bWFwcGluZ3MpOworCWRybV9tbV9pbml0KCZjb250ZXh0LT5tbSwgU1pfNEssICh1NjQpU1pfMUcgKiA0IC0gU1pfNEspOworCisJcmV0dXJuIGNvbnRleHQ7CisKK291dF9mcmVlX2lkOgorCWNsZWFyX2JpdCh2Ml9jb250ZXh0LT5pZCwgZ2xvYmFsLT52Mi5wdGFfYWxsb2MpOwogb3V0X2ZyZWU6Ci0JdmZyZWUoZXRuYXZpdl9kb21haW4pOworCXZmcmVlKHYyX2NvbnRleHQpOwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9tbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfbW11LmMKaW5kZXggODA2OWY5Zi4uMzVlYmFlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9tbXUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X21tdS5jCkBAIC0zLDE1ICszLDE3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBFdG5hdml2IFByb2plY3QKICAqLwogCisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgorCiAjaW5jbHVkZSAiY29tbW9uLnhtbC5oIgogI2luY2x1ZGUgImV0bmF2aXZfY21kYnVmLmgiCiAjaW5jbHVkZSAiZXRuYXZpdl9kcnYuaCIKICNpbmNsdWRlICJldG5hdml2X2dlbS5oIgogI2luY2x1ZGUgImV0bmF2aXZfZ3B1LmgiCi0jaW5jbHVkZSAiZXRuYXZpdl9pb21tdS5oIgogI2luY2x1ZGUgImV0bmF2aXZfbW11LmgiCiAKLXN0YXRpYyB2b2lkIGV0bmF2aXZfZG9tYWluX3VubWFwKHN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiAqZG9tYWluLAorc3RhdGljIHZvaWQgZXRuYXZpdl9jb250ZXh0X3VubWFwKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsCiAJCQkJIHVuc2lnbmVkIGxvbmcgaW92YSwgc2l6ZV90IHNpemUpCiB7CiAJc2l6ZV90IHVubWFwcGVkX3BhZ2UsIHVubWFwcGVkID0gMDsKQEAgLTI0LDcgKzI2LDggQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9kb21haW5fdW5tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpkb21haW4sCiAJfQogCiAJd2hpbGUgKHVubWFwcGVkIDwgc2l6ZSkgewotCQl1bm1hcHBlZF9wYWdlID0gZG9tYWluLT5vcHMtPnVubWFwKGRvbWFpbiwgaW92YSwgcGdzaXplKTsKKwkJdW5tYXBwZWRfcGFnZSA9IGNvbnRleHQtPmdsb2JhbC0+b3BzLT51bm1hcChjb250ZXh0LCBpb3ZhLAorCQkJCQkJCSAgICBwZ3NpemUpOwogCQlpZiAoIXVubWFwcGVkX3BhZ2UpCiAJCQlicmVhazsKIApAQCAtMzMsNyArMzYsNyBAQCBzdGF0aWMgdm9pZCBldG5hdml2X2RvbWFpbl91bm1hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbiwKIAl9CiB9CiAKLXN0YXRpYyBpbnQgZXRuYXZpdl9kb21haW5fbWFwKHN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiAqZG9tYWluLAorc3RhdGljIGludCBldG5hdml2X2NvbnRleHRfbWFwKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIGlvdmEsIHBoeXNfYWRkcl90IHBhZGRyLAogCQkJICAgICAgc2l6ZV90IHNpemUsIGludCBwcm90KQogewpAQCAtNDksNyArNTIsOCBAQCBzdGF0aWMgaW50IGV0bmF2aXZfZG9tYWluX21hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbiwKIAl9CiAKIAl3aGlsZSAoc2l6ZSkgewotCQlyZXQgPSBkb21haW4tPm9wcy0+bWFwKGRvbWFpbiwgaW92YSwgcGFkZHIsIHBnc2l6ZSwgcHJvdCk7CisJCXJldCA9IGNvbnRleHQtPmdsb2JhbC0+b3BzLT5tYXAoY29udGV4dCwgaW92YSwgcGFkZHIsIHBnc2l6ZSwKKwkJCQkJCXByb3QpOwogCQlpZiAocmV0KQogCQkJYnJlYWs7CiAKQEAgLTYwLDIxICs2NCwxOSBAQCBzdGF0aWMgaW50IGV0bmF2aXZfZG9tYWluX21hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbiwKIAogCS8qIHVucm9sbCBtYXBwaW5nIGluIGNhc2Ugc29tZXRoaW5nIHdlbnQgd3JvbmcgKi8KIAlpZiAocmV0KQotCQlldG5hdml2X2RvbWFpbl91bm1hcChkb21haW4sIG9yaWdfaW92YSwgb3JpZ19zaXplIC0gc2l6ZSk7CisJCWV0bmF2aXZfY29udGV4dF91bm1hcChjb250ZXh0LCBvcmlnX2lvdmEsIG9yaWdfc2l6ZSAtIHNpemUpOwogCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBldG5hdml2X2lvbW11X21hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqaW9tbXUsIHUzMiBpb3ZhLAorc3RhdGljIGludCBldG5hdml2X2lvbW11X21hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0LCB1MzIgaW92YSwKIAkJCSAgICAgc3RydWN0IHNnX3RhYmxlICpzZ3QsIHVuc2lnbmVkIGxlbiwgaW50IHByb3QpCi17Ci0Jc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpkb21haW4gPSBpb21tdS0+ZG9tYWluOwotCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7Cit7CXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CiAJdW5zaWduZWQgaW50IGRhID0gaW92YTsKIAl1bnNpZ25lZCBpbnQgaSwgajsKIAlpbnQgcmV0OwogCi0JaWYgKCFkb21haW4gfHwgIXNndCkKKwlpZiAoIWNvbnRleHQgfHwgIXNndCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlmb3JfZWFjaF9zZyhzZ3QtPnNnbCwgc2csIHNndC0+bmVudHMsIGkpIHsKQEAgLTgzLDcgKzg1LDcgQEAgc3RhdGljIGludCBldG5hdml2X2lvbW11X21hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqaW9tbXUsIHUzMiBpb3ZhLAogCiAJCVZFUkIoIm1hcFslZF06ICUwOHggJTA4eCglengpIiwgaSwgaW92YSwgcGEsIGJ5dGVzKTsKIAotCQlyZXQgPSBldG5hdml2X2RvbWFpbl9tYXAoZG9tYWluLCBkYSwgcGEsIGJ5dGVzLCBwcm90KTsKKwkJcmV0ID0gZXRuYXZpdl9jb250ZXh0X21hcChjb250ZXh0LCBkYSwgcGEsIGJ5dGVzLCBwcm90KTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gZmFpbDsKIApAQCAtOTgsMTYgKzEwMCwxNSBAQCBzdGF0aWMgaW50IGV0bmF2aXZfaW9tbXVfbWFwKHN0cnVjdCBldG5hdml2X2lvbW11ICppb21tdSwgdTMyIGlvdmEsCiAJZm9yX2VhY2hfc2coc2d0LT5zZ2wsIHNnLCBpLCBqKSB7CiAJCXNpemVfdCBieXRlcyA9IHNnX2RtYV9sZW4oc2cpICsgc2ctPm9mZnNldDsKIAotCQlldG5hdml2X2RvbWFpbl91bm1hcChkb21haW4sIGRhLCBieXRlcyk7CisJCWV0bmF2aXZfY29udGV4dF91bm1hcChjb250ZXh0LCBkYSwgYnl0ZXMpOwogCQlkYSArPSBieXRlczsKIAl9CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdV91bm1hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqaW9tbXUsIHUzMiBpb3ZhLAorc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdV91bm1hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0LCB1MzIgaW92YSwKIAkJCQlzdHJ1Y3Qgc2dfdGFibGUgKnNndCwgdW5zaWduZWQgbGVuKQogewotCXN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiAqZG9tYWluID0gaW9tbXUtPmRvbWFpbjsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOwogCXVuc2lnbmVkIGludCBkYSA9IGlvdmE7CiAJaW50IGk7CkBAIC0xMTUsNyArMTE2LDcgQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdV91bm1hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqaW9tbXUsIHUzMiBpb3ZhLAogCWZvcl9lYWNoX3NnKHNndC0+c2dsLCBzZywgc2d0LT5uZW50cywgaSkgewogCQlzaXplX3QgYnl0ZXMgPSBzZ19kbWFfbGVuKHNnKSArIHNnLT5vZmZzZXQ7CiAKLQkJZXRuYXZpdl9kb21haW5fdW5tYXAoZG9tYWluLCBkYSwgYnl0ZXMpOworCQlldG5hdml2X2NvbnRleHRfdW5tYXAoY29udGV4dCwgZGEsIGJ5dGVzKTsKIAogCQlWRVJCKCJ1bm1hcFslZF06ICUwOHgoJXp4KSIsIGksIGlvdmEsIGJ5dGVzKTsKIApAQCAtMTI1LDI0ICsxMjYsMjQgQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdV91bm1hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqaW9tbXUsIHUzMiBpb3ZhLAogCX0KIH0KIAotc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdV9yZW1vdmVfbWFwcGluZyhzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11LAorc3RhdGljIHZvaWQgZXRuYXZpdl9pb21tdV9yZW1vdmVfbWFwcGluZyhzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0LAogCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZykKIHsKIAlzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2X29iaiA9IG1hcHBpbmctPm9iamVjdDsKIAotCWV0bmF2aXZfaW9tbXVfdW5tYXAobW11LCBtYXBwaW5nLT52cmFtX25vZGUuc3RhcnQsCisJZXRuYXZpdl9pb21tdV91bm1hcChjb250ZXh0LCBtYXBwaW5nLT52cmFtX25vZGUuc3RhcnQsCiAJCQkgICAgZXRuYXZpdl9vYmotPnNndCwgZXRuYXZpdl9vYmotPmJhc2Uuc2l6ZSk7CiAJZHJtX21tX3JlbW92ZV9ub2RlKCZtYXBwaW5nLT52cmFtX25vZGUpOwogfQogCi1zdGF0aWMgaW50IGV0bmF2aXZfaW9tbXVfZmluZF9pb3ZhKHN0cnVjdCBldG5hdml2X2lvbW11ICptbXUsCitzdGF0aWMgaW50IGV0bmF2aXZfaW9tbXVfZmluZF9pb3ZhKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsCiAJCQkJICAgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLCBzaXplX3Qgc2l6ZSkKIHsKIAlzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKmZyZWUgPSBOVUxMOwogCWVudW0gZHJtX21tX2luc2VydF9tb2RlIG1vZGUgPSBEUk1fTU1fSU5TRVJUX0xPVzsKIAlpbnQgcmV0OwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmbW11LT5sb2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjb250ZXh0LT5sb2NrKTsKIAogCXdoaWxlICgxKSB7CiAJCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbSwgKm47CkBAIC0xNTAsMTcgKzE1MSwxNyBAQCBzdGF0aWMgaW50IGV0bmF2aXZfaW9tbXVfZmluZF9pb3ZhKHN0cnVjdCBldG5hdml2X2lvbW11ICptbXUsCiAJCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIAkJYm9vbCBmb3VuZDsKIAotCQlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2UoJm1tdS0+bW0sIG5vZGUsCisJCXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZSgmY29udGV4dC0+bW0sIG5vZGUsCiAJCQkJCQkgIHNpemUsIDAsIDAsIDAsIFU2NF9NQVgsIG1vZGUpOwogCQlpZiAocmV0ICE9IC1FTk9TUEMpCiAJCQlicmVhazsKIAogCQkvKiBUcnkgdG8gcmV0aXJlIHNvbWUgZW50cmllcyAqLwotCQlkcm1fbW1fc2Nhbl9pbml0KCZzY2FuLCAmbW11LT5tbSwgc2l6ZSwgMCwgMCwgbW9kZSk7CisJCWRybV9tbV9zY2FuX2luaXQoJnNjYW4sICZjb250ZXh0LT5tbSwgc2l6ZSwgMCwgMCwgbW9kZSk7CiAKIAkJZm91bmQgPSAwOwogCQlJTklUX0xJU1RfSEVBRCgmbGlzdCk7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnkoZnJlZSwgJm1tdS0+bWFwcGluZ3MsIG1tdV9ub2RlKSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkoZnJlZSwgJmNvbnRleHQtPm1hcHBpbmdzLCBtbXVfbm9kZSkgewogCQkJLyogSWYgdGhpcyB2cmFtIG5vZGUgaGFzIG5vdCBiZWVuIHVzZWQsIHNraXAgdGhpcy4gKi8KIAkJCWlmICghZnJlZS0+dnJhbV9ub2RlLm1tKQogCQkJCWNvbnRpbnVlOwpAQCAtMjAyLDggKzIwMyw4IEBAIHN0YXRpYyBpbnQgZXRuYXZpdl9pb21tdV9maW5kX2lvdmEoc3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSwKIAkJICogdGhpcyBtYXBwaW5nLgogCQkgKi8KIAkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG0sIG4sICZsaXN0LCBzY2FuX25vZGUpIHsKLQkJCWV0bmF2aXZfaW9tbXVfcmVtb3ZlX21hcHBpbmcobW11LCBtKTsKLQkJCW0tPm1tdSA9IE5VTEw7CisJCQlldG5hdml2X2lvbW11X3JlbW92ZV9tYXBwaW5nKGNvbnRleHQsIG0pOworCQkJbS0+Y29udGV4dCA9IE5VTEw7CiAJCQlsaXN0X2RlbF9pbml0KCZtLT5tbXVfbm9kZSk7CiAJCQlsaXN0X2RlbF9pbml0KCZtLT5zY2FuX25vZGUpOwogCQl9CkBAIC0yMTksOSArMjIwLDE2IEBAIHN0YXRpYyBpbnQgZXRuYXZpdl9pb21tdV9maW5kX2lvdmEoc3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSwKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgZXRuYXZpdl9pb21tdV9tYXBfZ2VtKHN0cnVjdCBldG5hdml2X2lvbW11ICptbXUsCitzdGF0aWMgaW50IGV0bmF2aXZfaW9tbXVfaW5zZXJ0X2V4YWN0KHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsCisJCSAgIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgc2l6ZV90IHNpemUsIHU2NCB2YSkKK3sKKwlyZXR1cm4gZHJtX21tX2luc2VydF9ub2RlX2luX3JhbmdlKCZjb250ZXh0LT5tbSwgbm9kZSwgc2l6ZSwgMCwgMCwgdmEsCisJCQkJCSAgIHZhICsgc2l6ZSwgRFJNX01NX0lOU0VSVF9MT1dFU1QpOworfQorCitpbnQgZXRuYXZpdl9pb21tdV9tYXBfZ2VtKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsCiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmosIHUzMiBtZW1vcnlfYmFzZSwKLQlzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcpCisJc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nLCB1NjQgdmEpCiB7CiAJc3RydWN0IHNnX3RhYmxlICpzZ3QgPSBldG5hdml2X29iai0+c2d0OwogCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZTsKQEAgLTIyOSwxNyArMjM3LDE3IEBAIGludCBldG5hdml2X2lvbW11X21hcF9nZW0oc3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSwKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmV0bmF2aXZfb2JqLT5sb2NrKTsKIAotCW11dGV4X2xvY2soJm1tdS0+bG9jayk7CisJbXV0ZXhfbG9jaygmY29udGV4dC0+bG9jayk7CiAKIAkvKiB2MSBNTVUgY2FuIG9wdGltaXplIHNpbmdsZSBlbnRyeSAoY29udGlndW91cykgc2NhdHRlcmxpc3RzICovCi0JaWYgKG1tdS0+dmVyc2lvbiA9PSBFVE5BVklWX0lPTU1VX1YxICYmCisJaWYgKGNvbnRleHQtPmdsb2JhbC0+dmVyc2lvbiA9PSBFVE5BVklWX0lPTU1VX1YxICYmCiAJICAgIHNndC0+bmVudHMgPT0gMSAmJiAhKGV0bmF2aXZfb2JqLT5mbGFncyAmIEVUTkFfQk9fRk9SQ0VfTU1VKSkgewogCQl1MzIgaW92YTsKIAogCQlpb3ZhID0gc2dfZG1hX2FkZHJlc3Moc2d0LT5zZ2wpIC0gbWVtb3J5X2Jhc2U7CiAJCWlmIChpb3ZhIDwgMHg4MDAwMDAwMCAtIHNnX2RtYV9sZW4oc2d0LT5zZ2wpKSB7CiAJCQltYXBwaW5nLT5pb3ZhID0gaW92YTsKLQkJCWxpc3RfYWRkX3RhaWwoJm1hcHBpbmctPm1tdV9ub2RlLCAmbW11LT5tYXBwaW5ncyk7CisJCQlsaXN0X2FkZF90YWlsKCZtYXBwaW5nLT5tbXVfbm9kZSwgJmNvbnRleHQtPm1hcHBpbmdzKTsKIAkJCXJldCA9IDA7CiAJCQlnb3RvIHVubG9jazsKIAkJfQpAQCAtMjQ3LDEyICsyNTUsMTcgQEAgaW50IGV0bmF2aXZfaW9tbXVfbWFwX2dlbShzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11LAogCiAJbm9kZSA9ICZtYXBwaW5nLT52cmFtX25vZGU7CiAKLQlyZXQgPSBldG5hdml2X2lvbW11X2ZpbmRfaW92YShtbXUsIG5vZGUsIGV0bmF2aXZfb2JqLT5iYXNlLnNpemUpOworCWlmICh2YSkKKwkJcmV0ID0gZXRuYXZpdl9pb21tdV9pbnNlcnRfZXhhY3QoY29udGV4dCwgbm9kZSwKKwkJCQkJCSBldG5hdml2X29iai0+YmFzZS5zaXplLCB2YSk7CisJZWxzZQorCQlyZXQgPSBldG5hdml2X2lvbW11X2ZpbmRfaW92YShjb250ZXh0LCBub2RlLAorCQkJCQkgICAgICBldG5hdml2X29iai0+YmFzZS5zaXplKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byB1bmxvY2s7CiAKIAltYXBwaW5nLT5pb3ZhID0gbm9kZS0+c3RhcnQ7Ci0JcmV0ID0gZXRuYXZpdl9pb21tdV9tYXAobW11LCBub2RlLT5zdGFydCwgc2d0LCBldG5hdml2X29iai0+YmFzZS5zaXplLAorCXJldCA9IGV0bmF2aXZfaW9tbXVfbWFwKGNvbnRleHQsIG5vZGUtPnN0YXJ0LCBzZ3QsIGV0bmF2aXZfb2JqLT5iYXNlLnNpemUsCiAJCQkJRVROQVZJVl9QUk9UX1JFQUQgfCBFVE5BVklWX1BST1RfV1JJVEUpOwogCiAJaWYgKHJldCA8IDApIHsKQEAgLTI2MCwxMzAgKzI3MywyMzMgQEAgaW50IGV0bmF2aXZfaW9tbXVfbWFwX2dlbShzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11LAogCQlnb3RvIHVubG9jazsKIAl9CiAKLQlsaXN0X2FkZF90YWlsKCZtYXBwaW5nLT5tbXVfbm9kZSwgJm1tdS0+bWFwcGluZ3MpOwotCW1tdS0+bmVlZF9mbHVzaCA9IHRydWU7CisJbGlzdF9hZGRfdGFpbCgmbWFwcGluZy0+bW11X25vZGUsICZjb250ZXh0LT5tYXBwaW5ncyk7CisJY29udGV4dC0+Zmx1c2hfc2VxKys7CiB1bmxvY2s6Ci0JbXV0ZXhfdW5sb2NrKCZtbXUtPmxvY2spOworCW11dGV4X3VubG9jaygmY29udGV4dC0+bG9jayk7CiAKIAlyZXR1cm4gcmV0OwogfQogCi12b2lkIGV0bmF2aXZfaW9tbXVfdW5tYXBfZ2VtKHN0cnVjdCBldG5hdml2X2lvbW11ICptbXUsCit2b2lkIGV0bmF2aXZfaW9tbXVfdW5tYXBfZ2VtKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsCiAJc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nKQogewogCVdBUk5fT04obWFwcGluZy0+dXNlKTsKIAotCW11dGV4X2xvY2soJm1tdS0+bG9jayk7CisJbXV0ZXhfbG9jaygmY29udGV4dC0+bG9jayk7CiAKIAkvKiBJZiB0aGUgdnJhbSBub2RlIGlzIG9uIHRoZSBtbSwgdW5tYXAgYW5kIHJlbW92ZSB0aGUgbm9kZSAqLwotCWlmIChtYXBwaW5nLT52cmFtX25vZGUubW0gPT0gJm1tdS0+bW0pCi0JCWV0bmF2aXZfaW9tbXVfcmVtb3ZlX21hcHBpbmcobW11LCBtYXBwaW5nKTsKKwlpZiAobWFwcGluZy0+dnJhbV9ub2RlLm1tID09ICZjb250ZXh0LT5tbSkKKwkJZXRuYXZpdl9pb21tdV9yZW1vdmVfbWFwcGluZyhjb250ZXh0LCBtYXBwaW5nKTsKIAogCWxpc3RfZGVsKCZtYXBwaW5nLT5tbXVfbm9kZSk7Ci0JbW11LT5uZWVkX2ZsdXNoID0gdHJ1ZTsKLQltdXRleF91bmxvY2soJm1tdS0+bG9jayk7CisJY29udGV4dC0+Zmx1c2hfc2VxKys7CisJbXV0ZXhfdW5sb2NrKCZjb250ZXh0LT5sb2NrKTsKIH0KIAotdm9pZCBldG5hdml2X2lvbW11X2Rlc3Ryb3koc3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSkKK3N0YXRpYyB2b2lkIGV0bmF2aXZfaW9tbXVfY29udGV4dF9mcmVlKHN0cnVjdCBrcmVmICprcmVmKQogewotCWRybV9tbV90YWtlZG93bigmbW11LT5tbSk7Ci0JbW11LT5kb21haW4tPm9wcy0+ZnJlZShtbXUtPmRvbWFpbik7Ci0Ja2ZyZWUobW11KTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0ID0KKwkJY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQsIHJlZmNvdW50KTsKKworCWV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX3VubWFwKGNvbnRleHQsICZjb250ZXh0LT5jbWRidWZfbWFwcGluZyk7CisKKwljb250ZXh0LT5nbG9iYWwtPm9wcy0+ZnJlZShjb250ZXh0KTsKK30KK3ZvaWQgZXRuYXZpdl9pb21tdV9jb250ZXh0X3B1dChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQoreworCWtyZWZfcHV0KCZjb250ZXh0LT5yZWZjb3VudCwgZXRuYXZpdl9pb21tdV9jb250ZXh0X2ZyZWUpOwogfQogCi1zdHJ1Y3QgZXRuYXZpdl9pb21tdSAqZXRuYXZpdl9pb21tdV9uZXcoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCitzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICoKK2V0bmF2aXZfaW9tbXVfY29udGV4dF9pbml0KHN0cnVjdCBldG5hdml2X2lvbW11X2dsb2JhbCAqZ2xvYmFsLAorCQkJICAgc3RydWN0IGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jICpzdWJhbGxvYykKIHsKLQllbnVtIGV0bmF2aXZfaW9tbXVfdmVyc2lvbiB2ZXJzaW9uOwotCXN0cnVjdCBldG5hdml2X2lvbW11ICptbXU7CisJc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY3R4OworCWludCByZXQ7CiAKLQltbXUgPSBremFsbG9jKHNpemVvZigqbW11KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtbXUpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCi0JaWYgKCEoZ3B1LT5pZGVudGl0eS5taW5vcl9mZWF0dXJlczEgJiBjaGlwTWlub3JGZWF0dXJlczFfTU1VX1ZFUlNJT04pKSB7Ci0JCW1tdS0+ZG9tYWluID0gZXRuYXZpdl9pb21tdXYxX2RvbWFpbl9hbGxvYyhncHUpOwotCQl2ZXJzaW9uID0gRVROQVZJVl9JT01NVV9WMTsKLQl9IGVsc2UgewotCQltbXUtPmRvbWFpbiA9IGV0bmF2aXZfaW9tbXV2Ml9kb21haW5fYWxsb2MoZ3B1KTsKLQkJdmVyc2lvbiA9IEVUTkFWSVZfSU9NTVVfVjI7Ci0JfQotCi0JaWYgKCFtbXUtPmRvbWFpbikgewotCQlkZXZfZXJyKGdwdS0+ZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIEdQVSBJT01NVSBkb21haW5cbiIpOwotCQlrZnJlZShtbXUpOwotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQl9Ci0KLQltbXUtPmdwdSA9IGdwdTsKLQltbXUtPnZlcnNpb24gPSB2ZXJzaW9uOwotCW11dGV4X2luaXQoJm1tdS0+bG9jayk7Ci0JSU5JVF9MSVNUX0hFQUQoJm1tdS0+bWFwcGluZ3MpOwotCi0JZHJtX21tX2luaXQoJm1tdS0+bW0sIG1tdS0+ZG9tYWluLT5iYXNlLCBtbXUtPmRvbWFpbi0+c2l6ZSk7Ci0KLQlyZXR1cm4gbW11OwotfQotCi12b2lkIGV0bmF2aXZfaW9tbXVfcmVzdG9yZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKLXsKLQlpZiAoZ3B1LT5tbXUtPnZlcnNpb24gPT0gRVROQVZJVl9JT01NVV9WMSkKLQkJZXRuYXZpdl9pb21tdXYxX3Jlc3RvcmUoZ3B1KTsKKwlpZiAoZ2xvYmFsLT52ZXJzaW9uID09IEVUTkFWSVZfSU9NTVVfVjEpCisJCWN0eCA9IGV0bmF2aXZfaW9tbXV2MV9jb250ZXh0X2FsbG9jKGdsb2JhbCk7CiAJZWxzZQotCQlldG5hdml2X2lvbW11djJfcmVzdG9yZShncHUpOworCQljdHggPSBldG5hdml2X2lvbW11djJfY29udGV4dF9hbGxvYyhnbG9iYWwpOworCisJaWYgKCFjdHgpCisJCXJldHVybiBOVUxMOworCisJcmV0ID0gZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfbWFwKHN1YmFsbG9jLCBjdHgsICZjdHgtPmNtZGJ1Zl9tYXBwaW5nLAorCQkJCQkgIGdsb2JhbC0+bWVtb3J5X2Jhc2UpOworCWlmIChyZXQpIHsKKwkJZ2xvYmFsLT5vcHMtPmZyZWUoY3R4KTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJcmV0dXJuIGN0eDsKIH0KIAotaW50IGV0bmF2aXZfaW9tbXVfZ2V0X3N1YmFsbG9jX3ZhKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCBkbWFfYWRkcl90IHBhZGRyLAotCQkJCSAgc3RydWN0IGRybV9tbV9ub2RlICp2cmFtX25vZGUsIHNpemVfdCBzaXplLAotCQkJCSAgdTMyICppb3ZhKQordm9pZCBldG5hdml2X2lvbW11X3Jlc3RvcmUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCisJCQkgICBzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KQogewotCXN0cnVjdCBldG5hdml2X2lvbW11ICptbXUgPSBncHUtPm1tdTsKKwljb250ZXh0LT5nbG9iYWwtPm9wcy0+cmVzdG9yZShncHUsIGNvbnRleHQpOworfQogCi0JaWYgKG1tdS0+dmVyc2lvbiA9PSBFVE5BVklWX0lPTU1VX1YxKSB7Ci0JCSppb3ZhID0gcGFkZHIgLSBncHUtPm1lbW9yeV9iYXNlOworaW50IGV0bmF2aXZfaW9tbXVfZ2V0X3N1YmFsbG9jX3ZhKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsCisJCQkJICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcsCisJCQkJICB1MzIgbWVtb3J5X2Jhc2UsIGRtYV9hZGRyX3QgcGFkZHIsCisJCQkJICBzaXplX3Qgc2l6ZSkKK3sKKwltdXRleF9sb2NrKCZjb250ZXh0LT5sb2NrKTsKKworCWlmIChtYXBwaW5nLT51c2UgPiAwKSB7CisJCW1hcHBpbmctPnVzZSsrOworCQltdXRleF91bmxvY2soJmNvbnRleHQtPmxvY2spOwogCQlyZXR1cm4gMDsKKwl9CisKKwkvKgorCSAqIEZvciBNTVV2MSB3ZSBkb24ndCBhZGQgdGhlIHN1YmFsbG9jIHJlZ2lvbiB0byB0aGUgcGFnZXRhYmxlcywgYXMKKwkgKiB0aG9zZSBHUFVzIGNhbiBvbmx5IHdvcmsgd2l0aCBjbWRidWZzIGFjY2Vzc2VkIHRocm91Z2ggdGhlIGxpbmVhcgorCSAqIHdpbmRvdy4gSW5zdGVhZCB3ZSBtYW51ZmFjdHVyZSBhIG1hcHBpbmcgdG8gbWFrZSBpdCBsb29rIHVuaWZvcm0KKwkgKiB0byB0aGUgdXBwZXIgbGF5ZXJzLgorCSAqLworCWlmIChjb250ZXh0LT5nbG9iYWwtPnZlcnNpb24gPT0gRVROQVZJVl9JT01NVV9WMSkgeworCQltYXBwaW5nLT5pb3ZhID0gcGFkZHIgLSBtZW1vcnlfYmFzZTsKIAl9IGVsc2UgeworCQlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUgPSAmbWFwcGluZy0+dnJhbV9ub2RlOwogCQlpbnQgcmV0OwogCi0JCW11dGV4X2xvY2soJm1tdS0+bG9jayk7Ci0JCXJldCA9IGV0bmF2aXZfaW9tbXVfZmluZF9pb3ZhKG1tdSwgdnJhbV9ub2RlLCBzaXplKTsKKwkJcmV0ID0gZXRuYXZpdl9pb21tdV9maW5kX2lvdmEoY29udGV4dCwgbm9kZSwgc2l6ZSk7CiAJCWlmIChyZXQgPCAwKSB7Ci0JCQltdXRleF91bmxvY2soJm1tdS0+bG9jayk7CisJCQltdXRleF91bmxvY2soJmNvbnRleHQtPmxvY2spOwogCQkJcmV0dXJuIHJldDsKIAkJfQotCQlyZXQgPSBldG5hdml2X2RvbWFpbl9tYXAobW11LT5kb21haW4sIHZyYW1fbm9kZS0+c3RhcnQsIHBhZGRyLAotCQkJCQkgc2l6ZSwgRVROQVZJVl9QUk9UX1JFQUQpOwotCQlpZiAocmV0IDwgMCkgewotCQkJZHJtX21tX3JlbW92ZV9ub2RlKHZyYW1fbm9kZSk7Ci0JCQltdXRleF91bmxvY2soJm1tdS0+bG9jayk7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JCWdwdS0+bW11LT5uZWVkX2ZsdXNoID0gdHJ1ZTsKLQkJbXV0ZXhfdW5sb2NrKCZtbXUtPmxvY2spOwogCi0JCSppb3ZhID0gKHUzMil2cmFtX25vZGUtPnN0YXJ0OworCQltYXBwaW5nLT5pb3ZhID0gbm9kZS0+c3RhcnQ7CisJCXJldCA9IGV0bmF2aXZfY29udGV4dF9tYXAoY29udGV4dCwgbm9kZS0+c3RhcnQsIHBhZGRyLCBzaXplLAorCQkJCQkgIEVUTkFWSVZfUFJPVF9SRUFEKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWRybV9tbV9yZW1vdmVfbm9kZShub2RlKTsKKwkJCW11dGV4X3VubG9jaygmY29udGV4dC0+bG9jayk7CisJCQlyZXR1cm4gcmV0OworCQl9CisKKwkJY29udGV4dC0+Zmx1c2hfc2VxKys7CisJfQorCisJbGlzdF9hZGRfdGFpbCgmbWFwcGluZy0+bW11X25vZGUsICZjb250ZXh0LT5tYXBwaW5ncyk7CisJbWFwcGluZy0+dXNlID0gMTsKKworCW11dGV4X3VubG9jaygmY29udGV4dC0+bG9jayk7CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCBldG5hdml2X2lvbW11X3B1dF9zdWJhbGxvY192YShzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0LAorCQkgIHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZykKK3sKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUgPSAmbWFwcGluZy0+dnJhbV9ub2RlOworCisJbXV0ZXhfbG9jaygmY29udGV4dC0+bG9jayk7CisJbWFwcGluZy0+dXNlLS07CisKKwlpZiAobWFwcGluZy0+dXNlID4gMCB8fCBjb250ZXh0LT5nbG9iYWwtPnZlcnNpb24gPT0gRVROQVZJVl9JT01NVV9WMSkgeworCQltdXRleF91bmxvY2soJmNvbnRleHQtPmxvY2spOworCQlyZXR1cm47CisJfQorCisJZXRuYXZpdl9jb250ZXh0X3VubWFwKGNvbnRleHQsIG5vZGUtPnN0YXJ0LCBub2RlLT5zaXplKTsKKwlkcm1fbW1fcmVtb3ZlX25vZGUobm9kZSk7CisJbXV0ZXhfdW5sb2NrKCZjb250ZXh0LT5sb2NrKTsKK30KKworc2l6ZV90IGV0bmF2aXZfaW9tbXVfZHVtcF9zaXplKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQpCit7CisJcmV0dXJuIGNvbnRleHQtPmdsb2JhbC0+b3BzLT5kdW1wX3NpemUoY29udGV4dCk7Cit9CisKK3ZvaWQgZXRuYXZpdl9pb21tdV9kdW1wKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQsIHZvaWQgKmJ1ZikKK3sKKwljb250ZXh0LT5nbG9iYWwtPm9wcy0+ZHVtcChjb250ZXh0LCBidWYpOworfQorCitpbnQgZXRuYXZpdl9pb21tdV9nbG9iYWxfaW5pdChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKK3sKKwllbnVtIGV0bmF2aXZfaW9tbXVfdmVyc2lvbiB2ZXJzaW9uID0gRVROQVZJVl9JT01NVV9WMTsKKwlzdHJ1Y3QgZXRuYXZpdl9kcm1fcHJpdmF0ZSAqcHJpdiA9IGdwdS0+ZHJtLT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZXRuYXZpdl9pb21tdV9nbG9iYWwgKmdsb2JhbDsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBncHUtPmRybS0+ZGV2OworCisJaWYgKGdwdS0+aWRlbnRpdHkubWlub3JfZmVhdHVyZXMxICYgY2hpcE1pbm9yRmVhdHVyZXMxX01NVV9WRVJTSU9OKQorCQl2ZXJzaW9uID0gRVROQVZJVl9JT01NVV9WMjsKKworCWlmIChwcml2LT5tbXVfZ2xvYmFsKSB7CisJCWlmIChwcml2LT5tbXVfZ2xvYmFsLT52ZXJzaW9uICE9IHZlcnNpb24pIHsKKwkJCWRldl9lcnIoZ3B1LT5kZXYsCisJCQkJIk1NVSB2ZXJzaW9uIGRvZXNuJ3QgbWF0Y2ggZ2xvYmFsIHZlcnNpb25cbiIpOworCQkJcmV0dXJuIC1FTlhJTzsKKwkJfQorCisJCXByaXYtPm1tdV9nbG9iYWwtPnVzZSsrOwogCQlyZXR1cm4gMDsKIAl9Ci19CiAKLXZvaWQgZXRuYXZpdl9pb21tdV9wdXRfc3ViYWxsb2NfdmEoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCi0JCQkJICAgc3RydWN0IGRybV9tbV9ub2RlICp2cmFtX25vZGUsIHNpemVfdCBzaXplLAotCQkJCSAgIHUzMiBpb3ZhKQotewotCXN0cnVjdCBldG5hdml2X2lvbW11ICptbXUgPSBncHUtPm1tdTsKKwlnbG9iYWwgPSBremFsbG9jKHNpemVvZigqZ2xvYmFsKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFnbG9iYWwpCisJCXJldHVybiAtRU5PTUVNOwogCi0JaWYgKG1tdS0+dmVyc2lvbiA9PSBFVE5BVklWX0lPTU1VX1YyKSB7Ci0JCW11dGV4X2xvY2soJm1tdS0+bG9jayk7Ci0JCWV0bmF2aXZfZG9tYWluX3VubWFwKG1tdS0+ZG9tYWluLCBpb3ZhLCBzaXplKTsKLQkJZHJtX21tX3JlbW92ZV9ub2RlKHZyYW1fbm9kZSk7Ci0JCW11dGV4X3VubG9jaygmbW11LT5sb2NrKTsKKwlnbG9iYWwtPmJhZF9wYWdlX2NwdSA9IGRtYV9hbGxvY193YyhkZXYsIFNaXzRLLCAmZ2xvYmFsLT5iYWRfcGFnZV9kbWEsCisJCQkJCSAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIWdsb2JhbC0+YmFkX3BhZ2VfY3B1KQorCQlnb3RvIGZyZWVfZ2xvYmFsOworCisJbWVtc2V0MzIoZ2xvYmFsLT5iYWRfcGFnZV9jcHUsIDB4ZGVhZDU1YWEsIFNaXzRLIC8gc2l6ZW9mKHUzMikpOworCisJaWYgKHZlcnNpb24gPT0gRVROQVZJVl9JT01NVV9WMikgeworCQlnbG9iYWwtPnYyLnB0YV9jcHUgPSBkbWFfYWxsb2Nfd2MoZGV2LCBFVE5BVklWX1BUQV9TSVpFLAorCQkJCQkgICAgICAgJmdsb2JhbC0+djIucHRhX2RtYSwgR0ZQX0tFUk5FTCk7CisJCWlmICghZ2xvYmFsLT52Mi5wdGFfY3B1KQorCQkJZ290byBmcmVlX2JhZF9wYWdlOwogCX0KLX0KLXNpemVfdCBldG5hdml2X2lvbW11X2R1bXBfc2l6ZShzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqaW9tbXUpCi17Ci0JcmV0dXJuIGlvbW11LT5kb21haW4tPm9wcy0+ZHVtcF9zaXplKGlvbW11LT5kb21haW4pOworCisJZ2xvYmFsLT5kZXYgPSBkZXY7CisJZ2xvYmFsLT52ZXJzaW9uID0gdmVyc2lvbjsKKwlnbG9iYWwtPnVzZSA9IDE7CisJbXV0ZXhfaW5pdCgmZ2xvYmFsLT5sb2NrKTsKKworCWlmICh2ZXJzaW9uID09IEVUTkFWSVZfSU9NTVVfVjEpCisJCWdsb2JhbC0+b3BzID0gJmV0bmF2aXZfaW9tbXV2MV9vcHM7CisJZWxzZQorCQlnbG9iYWwtPm9wcyA9ICZldG5hdml2X2lvbW11djJfb3BzOworCisJcHJpdi0+bW11X2dsb2JhbCA9IGdsb2JhbDsKKworCXJldHVybiAwOworCitmcmVlX2JhZF9wYWdlOgorCWRtYV9mcmVlX3djKGRldiwgU1pfNEssIGdsb2JhbC0+YmFkX3BhZ2VfY3B1LCBnbG9iYWwtPmJhZF9wYWdlX2RtYSk7CitmcmVlX2dsb2JhbDoKKwlrZnJlZShnbG9iYWwpOworCisJcmV0dXJuIC1FTk9NRU07CiB9CiAKLXZvaWQgZXRuYXZpdl9pb21tdV9kdW1wKHN0cnVjdCBldG5hdml2X2lvbW11ICppb21tdSwgdm9pZCAqYnVmKQordm9pZCBldG5hdml2X2lvbW11X2dsb2JhbF9maW5pKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogewotCWlvbW11LT5kb21haW4tPm9wcy0+ZHVtcChpb21tdS0+ZG9tYWluLCBidWYpOworCXN0cnVjdCBldG5hdml2X2RybV9wcml2YXRlICpwcml2ID0gZ3B1LT5kcm0tPmRldl9wcml2YXRlOworCXN0cnVjdCBldG5hdml2X2lvbW11X2dsb2JhbCAqZ2xvYmFsID0gcHJpdi0+bW11X2dsb2JhbDsKKworCWlmICgtLWdsb2JhbC0+dXNlID4gMCkKKwkJcmV0dXJuOworCisJaWYgKGdsb2JhbC0+djIucHRhX2NwdSkKKwkJZG1hX2ZyZWVfd2MoZ2xvYmFsLT5kZXYsIEVUTkFWSVZfUFRBX1NJWkUsCisJCQkgICAgZ2xvYmFsLT52Mi5wdGFfY3B1LCBnbG9iYWwtPnYyLnB0YV9kbWEpOworCisJaWYgKGdsb2JhbC0+YmFkX3BhZ2VfY3B1KQorCQlkbWFfZnJlZV93YyhnbG9iYWwtPmRldiwgU1pfNEssCisJCQkgICAgZ2xvYmFsLT5iYWRfcGFnZV9jcHUsIGdsb2JhbC0+YmFkX3BhZ2VfZG1hKTsKKworCW11dGV4X2Rlc3Ryb3koJmdsb2JhbC0+bG9jayk7CisJa2ZyZWUoZ2xvYmFsKTsKKworCXByaXYtPm1tdV9nbG9iYWwgPSBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9tbXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfbW11LmgKaW5kZXggYTBkYjE3Zi4uZDFkNjkwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9tbXUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X21tdS5oCkBAIC0xNiw2MSArMTYsMTA5IEBAIGVudW0gZXRuYXZpdl9pb21tdV92ZXJzaW9uIHsKIAogc3RydWN0IGV0bmF2aXZfZ3B1Owogc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nOwotc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluOworc3RydWN0IGV0bmF2aXZfaW9tbXVfZ2xvYmFsOworc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dDsKIAotc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluX29wcyB7Ci0Jdm9pZCAoKmZyZWUpKHN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiAqKTsKLQlpbnQgKCptYXApKHN0cnVjdCBldG5hdml2X2lvbW11X2RvbWFpbiAqZG9tYWluLCB1bnNpZ25lZCBsb25nIGlvdmEsCitzdHJ1Y3QgZXRuYXZpdl9pb21tdV9vcHMgeworCXN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKigqaW5pdCkoc3RydWN0IGV0bmF2aXZfaW9tbXVfZ2xvYmFsICopOworCXZvaWQgKCpmcmVlKShzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICopOworCWludCAoKm1hcCkoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwgdW5zaWduZWQgbG9uZyBpb3ZhLAogCQkgICBwaHlzX2FkZHJfdCBwYWRkciwgc2l6ZV90IHNpemUsIGludCBwcm90KTsKLQlzaXplX3QgKCp1bm1hcCkoc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpkb21haW4sIHVuc2lnbmVkIGxvbmcgaW92YSwKKwlzaXplX3QgKCp1bm1hcCkoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwgdW5zaWduZWQgbG9uZyBpb3ZhLAogCQkJc2l6ZV90IHNpemUpOwotCXNpemVfdCAoKmR1bXBfc2l6ZSkoc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICopOwotCXZvaWQgKCpkdW1wKShzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKiwgdm9pZCAqKTsKKwlzaXplX3QgKCpkdW1wX3NpemUpKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKik7CisJdm9pZCAoKmR1bXApKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKiwgdm9pZCAqKTsKKwl2b2lkICgqcmVzdG9yZSkoc3RydWN0IGV0bmF2aXZfZ3B1ICosIHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKik7CiB9OwogCi1zdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4geworZXh0ZXJuIGNvbnN0IHN0cnVjdCBldG5hdml2X2lvbW11X29wcyBldG5hdml2X2lvbW11djFfb3BzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBldG5hdml2X2lvbW11X29wcyBldG5hdml2X2lvbW11djJfb3BzOworCisjZGVmaW5lIEVUTkFWSVZfUFRBX1NJWkUJU1pfNEsKKyNkZWZpbmUgRVROQVZJVl9QVEFfRU5UUklFUwkoRVROQVZJVl9QVEFfU0laRSAvIHNpemVvZih1NjQpKQorCitzdHJ1Y3QgZXRuYXZpdl9pb21tdV9nbG9iYWwgewogCXN0cnVjdCBkZXZpY2UgKmRldjsKKwllbnVtIGV0bmF2aXZfaW9tbXVfdmVyc2lvbiB2ZXJzaW9uOworCWNvbnN0IHN0cnVjdCBldG5hdml2X2lvbW11X29wcyAqb3BzOworCXVuc2lnbmVkIGludCB1c2U7CisJc3RydWN0IG11dGV4IGxvY2s7CisKIAl2b2lkICpiYWRfcGFnZV9jcHU7CiAJZG1hX2FkZHJfdCBiYWRfcGFnZV9kbWE7Ci0JdTY0IGJhc2U7Ci0JdTY0IHNpemU7CiAKLQljb25zdCBzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW5fb3BzICpvcHM7CisJdTMyIG1lbW9yeV9iYXNlOworCisJLyoKKwkgKiBUaGlzIHVuaW9uIGhvbGRzIG1lbWJlcnMgbmVlZGVkIGJ5IGVpdGhlciBNTVV2MSBvciBNTVV2Miwgd2hpY2gKKwkgKiBjYW4gbm90IGV4aXN0IGF0IHRoZSBzYW1lIHRpbWUuCisJICovCisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqc2hhcmVkX2NvbnRleHQ7CisJCX0gdjE7CisJCXN0cnVjdCB7CisJCQkvKiBQKGFnZSkgVChhYmxlKSBBKHJyYXkpICovCisJCQl1NjQgKnB0YV9jcHU7CisJCQlkbWFfYWRkcl90IHB0YV9kbWE7CisJCQlzdHJ1Y3Qgc3BpbmxvY2sgcHRhX2xvY2s7CisJCQlERUNMQVJFX0JJVE1BUChwdGFfYWxsb2MsIEVUTkFWSVZfUFRBX0VOVFJJRVMpOworCQl9IHYyOworCX07CiB9OwogCi1zdHJ1Y3QgZXRuYXZpdl9pb21tdSB7Ci0Jc3RydWN0IGV0bmF2aXZfZ3B1ICpncHU7Ci0Jc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpkb21haW47Ci0KLQllbnVtIGV0bmF2aXZfaW9tbXVfdmVyc2lvbiB2ZXJzaW9uOworc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCB7CisJc3RydWN0IGtyZWYgcmVmY291bnQ7CisJc3RydWN0IGV0bmF2aXZfaW9tbXVfZ2xvYmFsICpnbG9iYWw7CiAKIAkvKiBtZW1vcnkgbWFuYWdlciBmb3IgR1BVIGFkZHJlc3MgYXJlYSAqLwogCXN0cnVjdCBtdXRleCBsb2NrOwogCXN0cnVjdCBsaXN0X2hlYWQgbWFwcGluZ3M7CiAJc3RydWN0IGRybV9tbSBtbTsKLQlib29sIG5lZWRfZmx1c2g7CisJdW5zaWduZWQgaW50IGZsdXNoX3NlcTsKKworCS8qIE5vdCBwYXJ0IG9mIHRoZSBjb250ZXh0LCBidXQgbmVlZHMgdG8gaGF2ZSB0aGUgc2FtZSBsaWZldGltZSAqLworCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyBjbWRidWZfbWFwcGluZzsKIH07CiAKK2ludCBldG5hdml2X2lvbW11X2dsb2JhbF9pbml0KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KTsKK3ZvaWQgZXRuYXZpdl9pb21tdV9nbG9iYWxfZmluaShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSk7CisKIHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3Q7CiAKLWludCBldG5hdml2X2lvbW11X21hcF9nZW0oc3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSwKK2ludCBldG5hdml2X2lvbW11X21hcF9nZW0oc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY29udGV4dCwKIAlzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2X29iaiwgdTMyIG1lbW9yeV9iYXNlLAotCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZyk7Ci12b2lkIGV0bmF2aXZfaW9tbXVfdW5tYXBfZ2VtKHN0cnVjdCBldG5hdml2X2lvbW11ICptbXUsCisJc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nLCB1NjQgdmEpOwordm9pZCBldG5hdml2X2lvbW11X3VubWFwX2dlbShzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0LAogCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZyk7CiAKLWludCBldG5hdml2X2lvbW11X2dldF9zdWJhbGxvY192YShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgZG1hX2FkZHJfdCBwYWRkciwKLQkJCQkgIHN0cnVjdCBkcm1fbW1fbm9kZSAqdnJhbV9ub2RlLCBzaXplX3Qgc2l6ZSwKLQkJCQkgIHUzMiAqaW92YSk7Ci12b2lkIGV0bmF2aXZfaW9tbXVfcHV0X3N1YmFsbG9jX3ZhKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LAotCQkJCSAgIHN0cnVjdCBkcm1fbW1fbm9kZSAqdnJhbV9ub2RlLCBzaXplX3Qgc2l6ZSwKLQkJCQkgICB1MzIgaW92YSk7CitpbnQgZXRuYXZpdl9pb21tdV9nZXRfc3ViYWxsb2NfdmEoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY3R4LAorCQkJCSAgc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nLAorCQkJCSAgdTMyIG1lbW9yeV9iYXNlLCBkbWFfYWRkcl90IHBhZGRyLAorCQkJCSAgc2l6ZV90IHNpemUpOwordm9pZCBldG5hdml2X2lvbW11X3B1dF9zdWJhbGxvY192YShzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjdHgsCisJCQkJICAgc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nKTsKIAotc2l6ZV90IGV0bmF2aXZfaW9tbXVfZHVtcF9zaXplKHN0cnVjdCBldG5hdml2X2lvbW11ICppb21tdSk7Ci12b2lkIGV0bmF2aXZfaW9tbXVfZHVtcChzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqaW9tbXUsIHZvaWQgKmJ1Zik7CitzaXplX3QgZXRuYXZpdl9pb21tdV9kdW1wX3NpemUoc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqY3R4KTsKK3ZvaWQgZXRuYXZpdl9pb21tdV9kdW1wKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmN0eCwgdm9pZCAqYnVmKTsKIAotc3RydWN0IGV0bmF2aXZfaW9tbXUgKmV0bmF2aXZfaW9tbXVfbmV3KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KTsKLXZvaWQgZXRuYXZpdl9pb21tdV9kZXN0cm95KHN0cnVjdCBldG5hdml2X2lvbW11ICppb21tdSk7Ci12b2lkIGV0bmF2aXZfaW9tbXVfcmVzdG9yZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSk7CitzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICoKK2V0bmF2aXZfaW9tbXVfY29udGV4dF9pbml0KHN0cnVjdCBldG5hdml2X2lvbW11X2dsb2JhbCAqZ2xvYmFsLAorCQkJICAgc3RydWN0IGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jICpzdWJhbGxvYyk7CitzdGF0aWMgaW5saW5lIHZvaWQgZXRuYXZpdl9pb21tdV9jb250ZXh0X2dldChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjdHgpCit7CisJa3JlZl9nZXQoJmN0eC0+cmVmY291bnQpOworfQordm9pZCBldG5hdml2X2lvbW11X2NvbnRleHRfcHV0KHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmN0eCk7Cit2b2lkIGV0bmF2aXZfaW9tbXVfcmVzdG9yZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKKwkJCSAgIHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmN0eCk7CisKK3N0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKgorZXRuYXZpdl9pb21tdXYxX2NvbnRleHRfYWxsb2Moc3RydWN0IGV0bmF2aXZfaW9tbXVfZ2xvYmFsICpnbG9iYWwpOworc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqCitldG5hdml2X2lvbW11djJfY29udGV4dF9hbGxvYyhzdHJ1Y3QgZXRuYXZpdl9pb21tdV9nbG9iYWwgKmdsb2JhbCk7CisKK3UzMiBldG5hdml2X2lvbW11djJfZ2V0X210bGJfYWRkcihzdHJ1Y3QgZXRuYXZpdl9pb21tdV9jb250ZXh0ICpjb250ZXh0KTsKK3Vuc2lnbmVkIHNob3J0IGV0bmF2aXZfaW9tbXV2Ml9nZXRfcHRhX2lkKHN0cnVjdCBldG5hdml2X2lvbW11X2NvbnRleHQgKmNvbnRleHQpOwogCiAjZW5kaWYgLyogX19FVE5BVklWX01NVV9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfcGVyZm1vbi5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9wZXJmbW9uLmMKaW5kZXggNDIyN2E0MC4uOGFkYmYyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9wZXJmbW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9wZXJmbW9uLmMKQEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWm9kaWFjIEluZmxpZ2h0IElubm92YXRpb25zCiAgKi8KIAorI2luY2x1ZGUgImNvbW1vbi54bWwuaCIKICNpbmNsdWRlICJldG5hdml2X2dwdS5oIgogI2luY2x1ZGUgImV0bmF2aXZfcGVyZm1vbi5oIgogI2luY2x1ZGUgInN0YXRlX2hpLnhtbC5oIgpAQCAtMTUsOCArMTYsOCBAQCBzdHJ1Y3QgZXRuYXZpdl9wbV9zaWduYWwgewogCXUzMiBkYXRhOwogCiAJdTMyICgqc2FtcGxlKShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKLQkgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBldG5hdml2X3BtX2RvbWFpbiAqZG9tYWluLAotCSAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGV0bmF2aXZfcG1fc2lnbmFsICpzaWduYWwpOworCQkgICAgICBjb25zdCBzdHJ1Y3QgZXRuYXZpdl9wbV9kb21haW4gKmRvbWFpbiwKKwkJICAgICAgY29uc3Qgc3RydWN0IGV0bmF2aXZfcG1fc2lnbmFsICpzaWduYWwpOwogfTsKIAogc3RydWN0IGV0bmF2aXZfcG1fZG9tYWluIHsKQEAgLTM1LDEzICszNiw2IEBAIHN0cnVjdCBldG5hdml2X3BtX2RvbWFpbl9tZXRhIHsKIAl1MzIgbnJfZG9tYWluczsKIH07CiAKLXN0YXRpYyB1MzIgc2ltcGxlX3JlZ19yZWFkKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LAotCWNvbnN0IHN0cnVjdCBldG5hdml2X3BtX2RvbWFpbiAqZG9tYWluLAotCWNvbnN0IHN0cnVjdCBldG5hdml2X3BtX3NpZ25hbCAqc2lnbmFsKQotewotCXJldHVybiBncHVfcmVhZChncHUsIHNpZ25hbC0+ZGF0YSk7Ci19Ci0KIHN0YXRpYyB1MzIgcGVyZl9yZWdfcmVhZChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKIAljb25zdCBzdHJ1Y3QgZXRuYXZpdl9wbV9kb21haW4gKmRvbWFpbiwKIAljb25zdCBzdHJ1Y3QgZXRuYXZpdl9wbV9zaWduYWwgKnNpZ25hbCkKQEAgLTc1LDYgKzY5LDM0IEBAIHN0YXRpYyB1MzIgcGlwZV9yZWdfcmVhZChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKIAlyZXR1cm4gdmFsdWU7CiB9CiAKK3N0YXRpYyB1MzIgaGlfdG90YWxfY3ljbGVfcmVhZChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKKwljb25zdCBzdHJ1Y3QgZXRuYXZpdl9wbV9kb21haW4gKmRvbWFpbiwKKwljb25zdCBzdHJ1Y3QgZXRuYXZpdl9wbV9zaWduYWwgKnNpZ25hbCkKK3sKKwl1MzIgcmVnID0gVklWU19ISV9QUk9GSUxFX1RPVEFMX0NZQ0xFUzsKKworCWlmIChncHUtPmlkZW50aXR5Lm1vZGVsID09IGNoaXBNb2RlbF9HQzg4MCB8fAorCQlncHUtPmlkZW50aXR5Lm1vZGVsID09IGNoaXBNb2RlbF9HQzIwMDAgfHwKKwkJZ3B1LT5pZGVudGl0eS5tb2RlbCA9PSBjaGlwTW9kZWxfR0MyMTAwKQorCQlyZWcgPSBWSVZTX01DX1BST0ZJTEVfQ1lDTEVfQ09VTlRFUjsKKworCXJldHVybiBncHVfcmVhZChncHUsIHJlZyk7Cit9CisKK3N0YXRpYyB1MzIgaGlfdG90YWxfaWRsZV9jeWNsZV9yZWFkKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LAorCWNvbnN0IHN0cnVjdCBldG5hdml2X3BtX2RvbWFpbiAqZG9tYWluLAorCWNvbnN0IHN0cnVjdCBldG5hdml2X3BtX3NpZ25hbCAqc2lnbmFsKQoreworCXUzMiByZWcgPSBWSVZTX0hJX1BST0ZJTEVfSURMRV9DWUNMRVM7CisKKwlpZiAoZ3B1LT5pZGVudGl0eS5tb2RlbCA9PSBjaGlwTW9kZWxfR0M4ODAgfHwKKwkJZ3B1LT5pZGVudGl0eS5tb2RlbCA9PSBjaGlwTW9kZWxfR0MyMDAwIHx8CisJCWdwdS0+aWRlbnRpdHkubW9kZWwgPT0gY2hpcE1vZGVsX0dDMjEwMCkKKwkJcmVnID0gVklWU19ISV9QUk9GSUxFX1RPVEFMX0NZQ0xFUzsKKworCXJldHVybiBncHVfcmVhZChncHUsIHJlZyk7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRuYXZpdl9wbV9kb21haW4gZG9tc18zZFtdID0gewogCXsKIAkJLm5hbWUgPSAiSEkiLApAQCAtODQsMTMgKzEwNiwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV0bmF2aXZfcG1fZG9tYWluIGRvbXNfM2RbXSA9IHsKIAkJLnNpZ25hbCA9IChjb25zdCBzdHJ1Y3QgZXRuYXZpdl9wbV9zaWduYWxbXSkgewogCQkJewogCQkJCSJUT1RBTF9DWUNMRVMiLAotCQkJCVZJVlNfSElfUFJPRklMRV9UT1RBTF9DWUNMRVMsCi0JCQkJJnNpbXBsZV9yZWdfcmVhZAorCQkJCTAsCisJCQkJJmhpX3RvdGFsX2N5Y2xlX3JlYWQKIAkJCX0sCiAJCQl7CiAJCQkJIklETEVfQ1lDTEVTIiwKLQkJCQlWSVZTX0hJX1BST0ZJTEVfSURMRV9DWUNMRVMsCi0JCQkJJnNpbXBsZV9yZWdfcmVhZAorCQkJCTAsCisJCQkJJmhpX3RvdGFsX2lkbGVfY3ljbGVfcmVhZAogCQkJfSwKIAkJCXsKIAkJCQkiQVhJX0NZQ0xFU19SRUFEX1JFUVVFU1RfU1RBTExFRCIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X3NjaGVkLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X3NjaGVkLmMKaW5kZXggYTgxM2M4Mi4uNGUzZTk1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9zY2hlZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfc2NoZWQuYwpAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAxNyBFdG5hdml2IFByb2plY3QKICAqLwogCi0jaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAKICNpbmNsdWRlICJldG5hdml2X2Rydi5oIgogI2luY2x1ZGUgImV0bmF2aXZfZHVtcC5oIgpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfc2NoZWRfdGltZWRvdXRfam9iKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9qb2IpCiAJCWRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYShzY2hlZF9qb2IpOwogCiAJLyogZ2V0IHRoZSBHUFUgYmFjayBpbnRvIHRoZSBpbml0IHN0YXRlICovCi0JZXRuYXZpdl9jb3JlX2R1bXAoZ3B1KTsKKwlldG5hdml2X2NvcmVfZHVtcChzdWJtaXQpOwogCWV0bmF2aXZfZ3B1X3JlY292ZXJfaGFuZyhncHUpOwogCiAJZHJtX3NjaGVkX3Jlc3VibWl0X2pvYnMoJmdwdS0+c2NoZWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5jCmluZGV4IGJhZGFiOTQuLmJhMGY4NjhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5jCkBAIC04LDEyICs4LDIwIEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KICNpbmNsdWRlIDxkcm0vZXh5bm9zX2RybS5oPgogCiAjaW5jbHVkZSAiZXh5bm9zX2RybV9kcnYuaCIKQEAgLTc1LDI5ICs4MywyOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGV4eW5vc19kcm1fZ2VtX3ZtX29wcyA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBleHlub3NfaW9jdGxzW10gPSB7CiAJRFJNX0lPQ1RMX0RFRl9EUlYoRVhZTk9TX0dFTV9DUkVBVEUsIGV4eW5vc19kcm1fZ2VtX2NyZWF0ZV9pb2N0bCwKLQkJCURSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQlEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihFWFlOT1NfR0VNX01BUCwgZXh5bm9zX2RybV9nZW1fbWFwX2lvY3RsLAotCQkJRFJNX0FVVEggfCBEUk1fUkVOREVSX0FMTE9XKSwKKwkJCURSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKEVYWU5PU19HRU1fR0VULCBleHlub3NfZHJtX2dlbV9nZXRfaW9jdGwsCiAJCQlEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihFWFlOT1NfVklESV9DT05ORUNUSU9OLCB2aWRpX2Nvbm5lY3Rpb25faW9jdGwsCiAJCQlEUk1fQVVUSCksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoRVhZTk9TX0cyRF9HRVRfVkVSLCBleHlub3NfZzJkX2dldF92ZXJfaW9jdGwsCi0JCQlEUk1fQVVUSCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoRVhZTk9TX0cyRF9TRVRfQ01ETElTVCwgZXh5bm9zX2cyZF9zZXRfY21kbGlzdF9pb2N0bCwKLQkJCURSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQlEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihFWFlOT1NfRzJEX0VYRUMsIGV4eW5vc19nMmRfZXhlY19pb2N0bCwKLQkJCURSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQlEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihFWFlOT1NfSVBQX0dFVF9SRVNPVVJDRVMsCiAJCQlleHlub3NfZHJtX2lwcF9nZXRfcmVzX2lvY3RsLAotCQkJRFJNX0FVVEggfCBEUk1fUkVOREVSX0FMTE9XKSwKKwkJCURSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKEVYWU5PU19JUFBfR0VUX0NBUFMsIGV4eW5vc19kcm1faXBwX2dldF9jYXBzX2lvY3RsLAotCQkJRFJNX0FVVEggfCBEUk1fUkVOREVSX0FMTE9XKSwKKwkJCURSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKEVYWU5PU19JUFBfR0VUX0xJTUlUUywKIAkJCWV4eW5vc19kcm1faXBwX2dldF9saW1pdHNfaW9jdGwsCi0JCQlEUk1fQVVUSCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoRVhZTk9TX0lQUF9DT01NSVQsIGV4eW5vc19kcm1faXBwX2NvbW1pdF9pb2N0bCwKLQkJCURSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQlEUk1fUkVOREVSX0FMTE9XKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGV4eW5vc19kcm1fZHJpdmVyX2ZvcHMgPSB7CkBAIC0xMTIsNyArMTIwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZXh5bm9zX2RybV9kcml2ZXJfZm9wcyA9IHsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBleHlub3NfZHJtX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX1BSSU1FCisJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTQogCQkJCSAgfCBEUklWRVJfQVRPTUlDIHwgRFJJVkVSX1JFTkRFUiwKIAkub3BlbgkJCT0gZXh5bm9zX2RybV9vcGVuLAogCS5sYXN0Y2xvc2UJCT0gZHJtX2ZiX2hlbHBlcl9sYXN0Y2xvc2UsCkBAIC0xMjIsNyArMTMwLDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGV4eW5vc19kcm1fZHJpdmVyID0gewogCS5kdW1iX2NyZWF0ZQkJPSBleHlub3NfZHJtX2dlbV9kdW1iX2NyZWF0ZSwKIAkucHJpbWVfaGFuZGxlX3RvX2ZkCT0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZQk9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfZXhwb3J0CT0gZHJtX2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmltZV9pbXBvcnQJPSBleHlub3NfZHJtX2dlbV9wcmltZV9pbXBvcnQsCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUJPSBleHlub3NfZHJtX2dlbV9wcmltZV9nZXRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUJPSBleHlub3NfZHJtX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltYy5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWMuYwppbmRleCAxNjRkOTE0Li44ZWEyZTFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1jLmMKQEAgLTE3LDYgKzE3LDggQEAKICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CiAjaW5jbHVkZSA8ZHJtL2V4eW5vc19kcm0uaD4KIAogI2luY2x1ZGUgImV4eW5vc19kcm1fZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ3NjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ3NjLmMKaW5kZXggMWM1MjRkYi4uN2FlMDg3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2dzYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9nc2MuYwpAQCAtMTYsNiArMTYsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9leHlub3NfZHJtLmg+CiAKICNpbmNsdWRlICJleHlub3NfZHJtX2Rydi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2lwcC5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2lwcC5jCmluZGV4IGQ0NWJmYWIuLjRmMmI3NTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9pcHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1faXBwLmMKQEAgLTE2LDcgKzE2LDEwIEBACiAgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fbW9kZS5oPgogI2luY2x1ZGUgPGRybS9leHlub3NfZHJtLmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9pcHAuaCBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9pcHAuaAppbmRleCA5Y2JiYzMwLi42N2EwODA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1faXBwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2lwcC5oCkBAIC02LDggKzYsNiBAQAogI2lmbmRlZiBfRVhZTk9TX0RSTV9JUFBfSF8KICNkZWZpbmUgX0VYWU5PU19EUk1fSVBQX0hfCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotCiBzdHJ1Y3QgZXh5bm9zX2RybV9pcHA7CiBzdHJ1Y3QgZXh5bm9zX2RybV9pcHBfdGFzazsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3JvdGF0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9yb3RhdG9yLmMKaW5kZXggOGViYWQyNy4uYjk4NDgyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3JvdGF0b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fcm90YXRvci5jCkBAIC0xNSw3ICsxNSw5IEBACiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NpemVzLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9leHlub3NfZHJtLmg+CiAKICNpbmNsdWRlICJleHlub3NfZHJtX2Rydi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3NjYWxlci5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3NjYWxlci5jCmluZGV4IGIyNGJhOTQuLjQ5Nzk3M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9zY2FsZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fc2NhbGVyLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9leHlub3NfZHJtLmg+CiAKICNpbmNsdWRlICJleHlub3NfZHJtX2Rydi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fY3J0Yy5jCmluZGV4IGY0NjM1YmUuLmI5Y2E4MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9jcnRjLmMKQEAgLTgsMTIgKzgsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2RlLmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2RlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgImZzbF9kY3VfZHJtX2NydGMuaCIKICNpbmNsdWRlICJmc2xfZGN1X2RybV9kcnYuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fZHJ2LmMKaW5kZXggZTgxZGFhYS4uZjE1ZDJlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fZHJ2LmMKQEAgLTE4LDEzICsxOCwxNSBAQAogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgogI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJmc2xfZGN1X2RybV9jcnRjLmgiCiAjaW5jbHVkZSAiZnNsX2RjdV9kcm1fZHJ2LmgiCkBAIC0xMzMsOCArMTM1LDcgQEAgc3RhdGljIGlycXJldHVybl90IGZzbF9kY3VfZHJtX2lycShpbnQgaXJxLCB2b2lkICphcmcpCiBERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhmc2xfZGN1X2RybV9mb3BzKTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGZzbF9kY3VfZHJtX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUCi0JCQkJfCBEUklWRVJfUFJJTUUgfCBEUklWRVJfQVRPTUlDLAorCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLAogCS5sb2FkCQkJPSBmc2xfZGN1X2xvYWQsCiAJLnVubG9hZAkJCT0gZnNsX2RjdV91bmxvYWQsCiAJLmlycV9oYW5kbGVyCQk9IGZzbF9kY3VfZHJtX2lycSwKQEAgLTE0NCw4ICsxNDUsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZnNsX2RjdV9kcm1fZHJpdmVyID0gewogCS5nZW1fdm1fb3BzCQk9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCiAJLnByaW1lX2hhbmRsZV90b19mZAk9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUJPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKLQkuZ2VtX3ByaW1lX2ltcG9ydAk9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAotCS5nZW1fcHJpbWVfZXhwb3J0CT0gZHJtX2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUJPSBkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgPSBkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV92bWFwCQk9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2ttcy5jCmluZGV4IDI0NjdjODkuLmQ3NjNmNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2ttcy5jCkBAIC01LDcgKzUsNiBAQAogICogRnJlZXNjYWxlIERDVSBkcm0gZGV2aWNlIGRyaXZlcgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX3BsYW5lLmMKaW5kZXggNmYyZjY1MC4uODZmYWM2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9wbGFuZS5jCkBAIC03LDEwICs3LDEwIEBACiAKICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcmdiLmMgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYwppbmRleCBjNDllOWUzLi5hOTJmZDZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYwpAQCAtOCw3ICs4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgpAQCAtNjYsMTcgKzY1LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGZzbF9kY3VfZHJtX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKIHN0YXRpYyBpbnQgZnNsX2RjdV9kcm1fY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBmc2xfZGN1X2RybV9jb25uZWN0b3IgKmZzbF9jb25uZWN0b3I7Ci0JaW50ICgqZ2V0X21vZGVzKShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7Ci0JaW50IG51bV9tb2RlcyA9IDA7CiAKIAlmc2xfY29ubmVjdG9yID0gdG9fZnNsX2RjdV9jb25uZWN0b3IoY29ubmVjdG9yKTsKLQlpZiAoZnNsX2Nvbm5lY3Rvci0+cGFuZWwgJiYgZnNsX2Nvbm5lY3Rvci0+cGFuZWwtPmZ1bmNzICYmCi0JICAgIGZzbF9jb25uZWN0b3ItPnBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKSB7Ci0JCWdldF9tb2RlcyA9IGZzbF9jb25uZWN0b3ItPnBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzOwotCQludW1fbW9kZXMgPSBnZXRfbW9kZXMoZnNsX2Nvbm5lY3Rvci0+cGFuZWwpOwotCX0KLQotCXJldHVybiBudW1fbW9kZXM7CisJcmV0dXJuIGRybV9wYW5lbF9nZXRfbW9kZXMoZnNsX2Nvbm5lY3Rvci0+cGFuZWwpOwogfQogCiBzdGF0aWMgaW50IGZzbF9kY3VfZHJtX2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWcKaW5kZXggZjIwZWVkZi4uMzVhM2M1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvS2NvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQogY29uZmlnIERSTV9ISVNJX0hJQk1DCiAJdHJpc3RhdGUgIkRSTSBTdXBwb3J0IGZvciBIaXNpbGljb24gSGlibWMiCi0JZGVwZW5kcyBvbiBEUk0gJiYgUENJICYmIE1NVQorCWRlcGVuZHMgb24gRFJNICYmIFBDSSAmJiBNTVUgJiYgQVJNNjQKIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKIAlzZWxlY3QgRFJNX1ZSQU1fSEVMUEVSCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kZS5jCmluZGV4IDA4NjU3YTMuLmNjNGM0MTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2RlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZGUuYwpAQCAtMTEsMTAgKzExLDE2IEBACiAgKglKaWFuaHVhIExpIDxsaWppYW5odWFAaHVhd2VpLmNvbT4KICAqLwogCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgImhpYm1jX2RybV9kcnYuaCIKICNpbmNsdWRlICJoaWJtY19kcm1fcmVncy5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuYwppbmRleCBjZTg5ZTU2Li5jMTAzMDA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuYwpAQCAtMTMsOSArMTMsMTYgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92cmFtX21tX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiaGlibWNfZHJtX2Rydi5oIgogI2luY2x1ZGUgImhpYm1jX2RybV9yZWdzLmgiCkBAIC01MSwyNSArNTgsMjIgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGhpYm1jX2RyaXZlciA9IHsKIAkuZGVzYwkJCT0gImhpYm1jIGRybSBkcml2ZXIiLAogCS5tYWpvcgkJCT0gMSwKIAkubWlub3IJCQk9IDAsCi0JLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9Ci0JCWRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkLAogCS5kdW1iX2NyZWF0ZSAgICAgICAgICAgID0gaGlibWNfZHVtYl9jcmVhdGUsCiAJLmR1bWJfbWFwX29mZnNldCAgICAgICAgPSBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2R1bWJfbW1hcF9vZmZzZXQsCisJLmdlbV9wcmltZV9tbWFwCQk9IGRybV9nZW1fcHJpbWVfbW1hcCwKIAkuaXJxX2hhbmRsZXIJCT0gaGlibWNfZHJtX2ludGVycnVwdCwKIH07CiAKIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgaGlibWNfcG1fc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAogCXJldHVybiBkcm1fbW9kZV9jb25maWdfaGVscGVyX3N1c3BlbmQoZHJtX2Rldik7CiB9CiAKIHN0YXRpYyBpbnQgIF9fbWF5YmVfdW51c2VkIGhpYm1jX3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAogCXJldHVybiBkcm1fbW9kZV9jb25maWdfaGVscGVyX3Jlc3VtZShkcm1fZGV2KTsKIH0KQEAgLTM4OCwxOCArMzkyLDcgQEAgc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGhpYm1jX3BjaV9kcml2ZXIgPSB7CiAJLmRyaXZlci5wbSA9ICAgICZoaWJtY19wbV9vcHMsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBoaWJtY19pbml0KHZvaWQpCi17Ci0JcmV0dXJuIHBjaV9yZWdpc3Rlcl9kcml2ZXIoJmhpYm1jX3BjaV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgaGlibWNfZXhpdCh2b2lkKQotewotCXJldHVybiBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoJmhpYm1jX3BjaV9kcml2ZXIpOwotfQotCi1tb2R1bGVfaW5pdChoaWJtY19pbml0KTsKLW1vZHVsZV9leGl0KGhpYm1jX2V4aXQpOworbW9kdWxlX3BjaV9kcml2ZXIoaGlibWNfcGNpX2RyaXZlcik7CiAKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBoaWJtY19wY2lfdGFibGUpOwogTU9EVUxFX0FVVEhPUigiUm9uZ3Jvbmdab3UgPHpvdXJvbmdyb25nQGh1YXdlaS5jb20+Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5oCmluZGV4IDY5MzQ4YmYuLmU1OGVjZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5oCkBAIC0xNCwxMiArMTQsMTEgQEAKICNpZm5kZWYgSElCTUNfRFJNX0RSVl9ICiAjZGVmaW5lIEhJQk1DX0RSTV9EUlZfSAogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fdnJhbV9tbV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZyYW1lYnVmZmVyLmg+CisKK3N0cnVjdCBkcm1fZGV2aWNlOworc3RydWN0IGRybV9nZW1fb2JqZWN0OwogCiBzdHJ1Y3QgaGlibWNfZnJhbWVidWZmZXIgewogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgZmI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZmJkZXYuYwppbmRleCBhZjFlYTRjLi5iNGMxY2VhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9mYmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2ZiZGV2LmMKQEAgLTEzLDYgKzEzLDggQEAKIAogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJoaWJtY19kcm1fZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV92ZGFjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV92ZGFjLmMKaW5kZXggNjM0YTNiZi4uNmQ5OGZkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fdmRhYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3ZkYWMuYwpAQCAtMTMsNiArMTMsNyBAQAogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CiAKICNpbmNsdWRlICJoaWJtY19kcm1fZHJ2LmgiCiAjaW5jbHVkZSAiaGlibWNfZHJtX3JlZ3MuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jCmluZGV4IDVkNGEwM2MuLjlmNmU0NzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY190dG0uYwpAQCAtMTEsNyArMTEsMTMgQEAKICAqCUppYW5odWEgTGkgPGxpamlhbmh1YUBodWF3ZWkuY29tPgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV92cmFtX21tX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiaGlibWNfZHJtX2Rydi5oIgogCkBAIC02MCw3ICs2Niw3IEBAIGludCBoaWJtY19nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzaXplLCBib29sIGlza2VybmVsLAogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYWxsb2NhdGUgR0VNIG9iamVjdDogJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7CiAJfQotCSpvYmogPSAmZ2JvLT5nZW07CisJKm9iaiA9ICZnYm8tPmJvLmJhc2U7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4vS2NvbmZpZwppbmRleCAwZmEyOWFmLi4yOTA1NTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnCkBAIC01LDE2ICs1LDggQEAKIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKIAlzZWxlY3QgRFJNX0dFTV9DTUFfSEVMUEVSCiAJc2VsZWN0IERSTV9LTVNfQ01BX0hFTFBFUgotCXNlbGVjdCBISVNJX0tJUklOX0RXX0RTSQorCXNlbGVjdCBEUk1fTUlQSV9EU0kKIAloZWxwCiAJICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBoaXNpbGljb24gS2lyaW4gY2hpcHNldHMoaGk2MjIwKS4KIAkgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBraXJpbi1kcm0uCiAKLWNvbmZpZyBISVNJX0tJUklOX0RXX0RTSQotCXRyaXN0YXRlICJIaVNpbGljb24gS2lyaW4gc3BlY2lmaWMgZXh0ZW5zaW9ucyBmb3IgU3lub3BzeXMgRFcgTUlQSSBEU0kiCi0JZGVwZW5kcyBvbiBEUk1fSElTSV9LSVJJTgotCXNlbGVjdCBEUk1fTUlQSV9EU0kKLQloZWxwCi0JIFRoaXMgc2VsZWN0cyBzdXBwb3J0IGZvciBIaVNpbGljb24gS2lyaW4gU29DIHNwZWNpZmljIGV4dGVuc2lvbnMgZm9yCi0JIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIERTSSBkcml2ZXIuIElmIHlvdSB3YW50IHRvIGVuYWJsZSBNSVBJIERTSSBvbgotCSBoaTYyMjAgYmFzZWQgU29DLCB5b3Ugc2hvdWxkIHNlbGV0IHRoaXMgb3B0aW9uLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4vTWFrZWZpbGUKaW5kZXggYzA1MDFmYS4uZDkzMjNmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL01ha2VmaWxlCkBAIC0yLDYgKzIsNSBAQAoga2lyaW4tZHJtLXkgOj0ga2lyaW5fZHJtX2Rydi5vIFwKIAkgICAgICAga2lyaW5fZHJtX2FkZS5vCiAKLW9iai0kKENPTkZJR19EUk1fSElTSV9LSVJJTikgKz0ga2lyaW4tZHJtLm8KK29iai0kKENPTkZJR19EUk1fSElTSV9LSVJJTikgKz0ga2lyaW4tZHJtLm8gZHdfZHJtX2RzaS5vCiAKLW9iai0kKENPTkZJR19ISVNJX0tJUklOX0RXX0RTSSkgKz0gZHdfZHJtX2RzaS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2FkZV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fYWRlX3JlZy5oCmluZGV4IGUyYWMwOTguLjBkYTg2MDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fYWRlX3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fYWRlX3JlZy5oCkBAIC04Myw2ICs4Myw3IEBACiAjZGVmaW5lIFZTSVpFX09GU1QJCQkyMAogI2RlZmluZSBMRElfSU5UX0VOCQkJMHg3NDFDCiAjZGVmaW5lIEZSQU1FX0VORF9JTlRfRU5fT0ZTVAkJMQorI2RlZmluZSBVTkRFUkZMT1dfSU5UX0VOX09GU1QJCTIKICNkZWZpbmUgTERJX0NUUkwJCQkweDc0MjAKICNkZWZpbmUgQlBQX09GU1QJCQkzCiAjZGVmaW5lIERBVEFfR0FURV9FTgkJCUJJVCgyKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYwppbmRleCBhZDcwNDJhLi43M2NkMjhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYwpAQCAtMTMsMzIgKzEzLDMxIEBACiAKICNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDx2aWRlby9kaXNwbGF5X3RpbWluZy5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDx2aWRlby9kaXNwbGF5X3RpbWluZy5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgogCiAjaW5jbHVkZSAia2lyaW5fZHJtX2Rydi5oIgogI2luY2x1ZGUgImtpcmluX2FkZV9yZWcuaCIKIAotI2RlZmluZSBQUklNQVJZX0NICUFERV9DSDEgLyogcHJpbWFyeSBwbGFuZSAqLwogI2RlZmluZSBPVVRfT1ZMWQlBREVfT1ZMWTIgLyogb3V0cHV0IG92ZXJsYXkgY29tcG9zaXRvciAqLwogI2RlZmluZSBBREVfREVCVUcJMQogCi0jZGVmaW5lIHRvX2FkZV9jcnRjKGNydGMpIFwKLQljb250YWluZXJfb2YoY3J0Yywgc3RydWN0IGFkZV9jcnRjLCBiYXNlKQotCi0jZGVmaW5lIHRvX2FkZV9wbGFuZShwbGFuZSkgXAotCWNvbnRhaW5lcl9vZihwbGFuZSwgc3RydWN0IGFkZV9wbGFuZSwgYmFzZSkKIAogc3RydWN0IGFkZV9od19jdHggewogCXZvaWQgX19pb21lbSAgKmJhc2U7CkBAIC00NywzNiArNDYsMTQgQEAgc3RydWN0IGFkZV9od19jdHggewogCXN0cnVjdCBjbGsgKm1lZGlhX25vY19jbGs7CiAJc3RydWN0IGNsayAqYWRlX3BpeF9jbGs7CiAJc3RydWN0IHJlc2V0X2NvbnRyb2wgKnJlc2V0OworCXN0cnVjdCB3b3JrX3N0cnVjdCBkaXNwbGF5X3Jlc2V0X3dxOwogCWJvb2wgcG93ZXJfb247CiAJaW50IGlycTsKKworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIH07CiAKLXN0cnVjdCBhZGVfY3J0YyB7Ci0Jc3RydWN0IGRybV9jcnRjIGJhc2U7Ci0Jc3RydWN0IGFkZV9od19jdHggKmN0eDsKLQlib29sIGVuYWJsZTsKLQl1MzIgb3V0X2Zvcm1hdDsKLX07Ci0KLXN0cnVjdCBhZGVfcGxhbmUgewotCXN0cnVjdCBkcm1fcGxhbmUgYmFzZTsKLQl2b2lkICpjdHg7Ci0JdTggY2g7IC8qIGNoYW5uZWwgKi8KLX07Ci0KLXN0cnVjdCBhZGVfZGF0YSB7Ci0Jc3RydWN0IGFkZV9jcnRjIGFjcnRjOwotCXN0cnVjdCBhZGVfcGxhbmUgYXBsYW5lW0FERV9DSF9OVU1dOwotCXN0cnVjdCBhZGVfaHdfY3R4IGN0eDsKLX07Ci0KLS8qIGFkZS1mb3JtYXQgaW5mbzogKi8KLXN0cnVjdCBhZGVfZm9ybWF0IHsKLQl1MzIgcGl4ZWxfZm9ybWF0OwotCWVudW0gYWRlX2ZiX2Zvcm1hdCBhZGVfZm9ybWF0OwotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBhZGVfZm9ybWF0IGFkZV9mb3JtYXRzW10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGtpcmluX2Zvcm1hdCBhZGVfZm9ybWF0c1tdID0gewogCS8qIDE2YnBwIFJHQjogKi8KIAl7IERSTV9GT1JNQVRfUkdCNTY1LCBBREVfUkdCXzU2NSB9LAogCXsgRFJNX0ZPUk1BVF9CR1I1NjUsIEFERV9CR1JfNTY1IH0sCkBAIC05Miw3ICs2OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRlX2Zvcm1hdCBhZGVfZm9ybWF0c1tdID0gewogCXsgRFJNX0ZPUk1BVF9BQkdSODg4OCwgQURFX0FCR1JfODg4OCB9LAogfTsKIAotc3RhdGljIGNvbnN0IHUzMiBjaGFubmVsX2Zvcm1hdHMxW10gPSB7CitzdGF0aWMgY29uc3QgdTMyIGNoYW5uZWxfZm9ybWF0c1tdID0gewogCS8qIGNoYW5uZWwgMSwyLDMsNCAqLwogCURSTV9GT1JNQVRfUkdCNTY1LCBEUk1fRk9STUFUX0JHUjU2NSwgRFJNX0ZPUk1BVF9SR0I4ODgsCiAJRFJNX0ZPUk1BVF9CR1I4ODgsIERSTV9GT1JNQVRfWFJHQjg4ODgsIERSTV9GT1JNQVRfWEJHUjg4ODgsCkBAIC0xMDAsMTkgKzc3LDYgQEAgc3RhdGljIGNvbnN0IHUzMiBjaGFubmVsX2Zvcm1hdHMxW10gPSB7CiAJRFJNX0ZPUk1BVF9BQkdSODg4OAogfTsKIAotdTMyIGFkZV9nZXRfY2hhbm5lbF9mb3JtYXRzKHU4IGNoLCBjb25zdCB1MzIgKipmb3JtYXRzKQotewotCXN3aXRjaCAoY2gpIHsKLQljYXNlIEFERV9DSDE6Ci0JCSpmb3JtYXRzID0gY2hhbm5lbF9mb3JtYXRzMTsKLQkJcmV0dXJuIEFSUkFZX1NJWkUoY2hhbm5lbF9mb3JtYXRzMSk7Ci0JZGVmYXVsdDoKLQkJRFJNX0VSUk9SKCJubyB0aGlzIGNoYW5uZWwgJWRcbiIsIGNoKTsKLQkJKmZvcm1hdHMgPSBOVUxMOwotCQlyZXR1cm4gMDsKLQl9Ci19Ci0KIC8qIGNvbnZlcnQgZnJvbSBmb3VyY2MgZm9ybWF0IHRvIGFkZSBmb3JtYXQgKi8KIHN0YXRpYyB1MzIgYWRlX2dldF9mb3JtYXQodTMyIHBpeGVsX2Zvcm1hdCkKIHsKQEAgLTEyMCw3ICs4NCw3IEBAIHN0YXRpYyB1MzIgYWRlX2dldF9mb3JtYXQodTMyIHBpeGVsX2Zvcm1hdCkKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFkZV9mb3JtYXRzKTsgaSsrKQogCQlpZiAoYWRlX2Zvcm1hdHNbaV0ucGl4ZWxfZm9ybWF0ID09IHBpeGVsX2Zvcm1hdCkKLQkJCXJldHVybiBhZGVfZm9ybWF0c1tpXS5hZGVfZm9ybWF0OworCQkJcmV0dXJuIGFkZV9mb3JtYXRzW2ldLmh3X2Zvcm1hdDsKIAogCS8qIG5vdCBmb3VuZCAqLwogCURSTV9FUlJPUigiTm90IGZvdW5kIHBpeGVsIGZvcm1hdCEhZm91cmNjX2Zvcm1hdD0gJWRcbiIsCkBAIC0xNzIsMTQgKzEzNiwxNSBAQCBzdGF0aWMgdm9pZCBhZGVfaW5pdChzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4KQogCSAqLwogCWFkZV91cGRhdGVfYml0cyhiYXNlICsgQURFX0NUUkwsIEZSTV9FTkRfU1RBUlRfT0ZTVCwKIAkJCUZSTV9FTkRfU1RBUlRfTUFTSywgUkVHX0VGRkVDVElWRV9JTl9BREVFTl9GUk1FTkQpOworCWFkZV91cGRhdGVfYml0cyhiYXNlICsgTERJX0lOVF9FTiwgVU5ERVJGTE9XX0lOVF9FTl9PRlNULCBNQVNLKDEpLCAxKTsKIH0KIAogc3RhdGljIGJvb2wgYWRlX2NydGNfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCiAJCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCiB7Ci0Jc3RydWN0IGFkZV9jcnRjICphY3J0YyA9IHRvX2FkZV9jcnRjKGNydGMpOwotCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBhY3J0Yy0+Y3R4OworCXN0cnVjdCBraXJpbl9jcnRjICprY3J0YyA9IHRvX2tpcmluX2NydGMoY3J0Yyk7CisJc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGtjcnRjLT5od19jdHg7CiAKIAlhZGp1c3RlZF9tb2RlLT5jbG9jayA9CiAJCWNsa19yb3VuZF9yYXRlKGN0eC0+YWRlX3BpeF9jbGssIG1vZGUtPmNsb2NrICogMTAwMCkgLyAxMDAwOwpAQCAtMjA0LDExICsxNjksMTAgQEAgc3RhdGljIHZvaWQgYWRlX3NldF9waXhfY2xrKHN0cnVjdCBhZGVfaHdfY3R4ICpjdHgsCiAJYWRqX21vZGUtPmNsb2NrID0gY2xrX2dldF9yYXRlKGN0eC0+YWRlX3BpeF9jbGspIC8gMTAwMDsKIH0KIAotc3RhdGljIHZvaWQgYWRlX2xkaV9zZXRfbW9kZShzdHJ1Y3QgYWRlX2NydGMgKmFjcnRjLAorc3RhdGljIHZvaWQgYWRlX2xkaV9zZXRfbW9kZShzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4LAogCQkJICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKIAkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkal9tb2RlKQogewotCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBhY3J0Yy0+Y3R4OwogCXZvaWQgX19pb21lbSAqYmFzZSA9IGN0eC0+YmFzZTsKIAl1MzIgd2lkdGggPSBtb2RlLT5oZGlzcGxheTsKIAl1MzIgaGVpZ2h0ID0gbW9kZS0+dmRpc3BsYXk7CkBAIC0yOTUsOSArMjU5LDggQEAgc3RhdGljIHZvaWQgYWRlX3Bvd2VyX2Rvd24oc3RydWN0IGFkZV9od19jdHggKmN0eCkKIAljdHgtPnBvd2VyX29uID0gZmFsc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZV9zZXRfbWVkaWFub2NfcW9zKHN0cnVjdCBhZGVfY3J0YyAqYWNydGMpCitzdGF0aWMgdm9pZCBhZGVfc2V0X21lZGlhbm9jX3FvcyhzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4KQogewotCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBhY3J0Yy0+Y3R4OwogCXN0cnVjdCByZWdtYXAgKm1hcCA9IGN0eC0+bm9jX3JlZ21hcDsKIAogCXJlZ21hcF91cGRhdGVfYml0cyhtYXAsIEFERTBfUU9TR0VORVJBVE9SX01PREUsCkBAIC0zMTMsOCArMjc2LDggQEAgc3RhdGljIHZvaWQgYWRlX3NldF9tZWRpYW5vY19xb3Moc3RydWN0IGFkZV9jcnRjICphY3J0YykKIAogc3RhdGljIGludCBhZGVfY3J0Y19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgYWRlX2NydGMgKmFjcnRjID0gdG9fYWRlX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGFjcnRjLT5jdHg7CisJc3RydWN0IGtpcmluX2NydGMgKmtjcnRjID0gdG9fa2lyaW5fY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4ID0ga2NydGMtPmh3X2N0eDsKIAl2b2lkIF9faW9tZW0gKmJhc2UgPSBjdHgtPmJhc2U7CiAKIAlpZiAoIWN0eC0+cG93ZXJfb24pCkBAIC0zMjgsOCArMjkxLDggQEAgc3RhdGljIGludCBhZGVfY3J0Y19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAogc3RhdGljIHZvaWQgYWRlX2NydGNfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBhZGVfY3J0YyAqYWNydGMgPSB0b19hZGVfY3J0YyhjcnRjKTsKLQlzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4ID0gYWNydGMtPmN0eDsKKwlzdHJ1Y3Qga2lyaW5fY3J0YyAqa2NydGMgPSB0b19raXJpbl9jcnRjKGNydGMpOworCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBrY3J0Yy0+aHdfY3R4OwogCXZvaWQgX19pb21lbSAqYmFzZSA9IGN0eC0+YmFzZTsKIAogCWlmICghY3R4LT5wb3dlcl9vbikgewpAQCAtMzQxLDExICszMDQsMjEgQEAgc3RhdGljIHZvaWQgYWRlX2NydGNfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQkJTUFTSygxKSwgMCk7CiB9CiAKK3N0YXRpYyB2b2lkIGRybV91bmRlcmZsb3dfd3Eoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGFkZV9od19jdHgsCisJCQkJCSAgICAgIGRpc3BsYXlfcmVzZXRfd3EpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gY3R4LT5jcnRjLT5kZXY7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOworCisJc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKGRybV9kZXYpOworCWRybV9hdG9taWNfaGVscGVyX3Jlc3VtZShkcm1fZGV2LCBzdGF0ZSk7Cit9CisKIHN0YXRpYyBpcnFyZXR1cm5fdCBhZGVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKIHsKLQlzdHJ1Y3QgYWRlX2NydGMgKmFjcnRjID0gZGF0YTsKLQlzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4ID0gYWNydGMtPmN0eDsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmYWNydGMtPmJhc2U7CisJc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGRhdGE7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3R4LT5jcnRjOwogCXZvaWQgX19pb21lbSAqYmFzZSA9IGN0eC0+YmFzZTsKIAl1MzIgc3RhdHVzOwogCkBAIC0zNTgsMTUgKzMzMSwyMCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYWRlX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiAJCQkJTUFTSygxKSwgMSk7CiAJCWRybV9jcnRjX2hhbmRsZV92YmxhbmsoY3J0Yyk7CiAJfQorCWlmIChzdGF0dXMgJiBCSVQoVU5ERVJGTE9XX0lOVF9FTl9PRlNUKSkgeworCQlhZGVfdXBkYXRlX2JpdHMoYmFzZSArIExESV9JTlRfQ0xSLCBVTkRFUkZMT1dfSU5UX0VOX09GU1QsCisJCQkJTUFTSygxKSwgMSk7CisJCURSTV9FUlJPUigiTERJIHVuZGVyZmxvdyEiKTsKKwkJc2NoZWR1bGVfd29yaygmY3R4LT5kaXNwbGF5X3Jlc2V0X3dxKTsKKwl9CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZV9kaXNwbGF5X2VuYWJsZShzdHJ1Y3QgYWRlX2NydGMgKmFjcnRjKQorc3RhdGljIHZvaWQgYWRlX2Rpc3BsYXlfZW5hYmxlKHN0cnVjdCBhZGVfaHdfY3R4ICpjdHgpCiB7Ci0Jc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGFjcnRjLT5jdHg7CiAJdm9pZCBfX2lvbWVtICpiYXNlID0gY3R4LT5iYXNlOwotCXUzMiBvdXRfZm10ID0gYWNydGMtPm91dF9mb3JtYXQ7CisJdTMyIG91dF9mbXQgPSBMRElfT1VUX1JHQl84ODg7CiAKIAkvKiBlbmFibGUgb3V0cHV0IG92ZXJsYXkgY29tcG9zaXRvciAqLwogCXdyaXRlbChBREVfRU5BQkxFLCBiYXNlICsgQURFX09WTFlYX0NUTChPVVRfT1ZMWSkpOwpAQCAtNDc5LDExICs0NTcsMTEgQEAgc3RhdGljIHZvaWQgYWRlX2R1bXBfcmVncyh2b2lkIF9faW9tZW0gKmJhc2UpIHsgfQogc3RhdGljIHZvaWQgYWRlX2NydGNfYXRvbWljX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfc3RhdGUpCiB7Ci0Jc3RydWN0IGFkZV9jcnRjICphY3J0YyA9IHRvX2FkZV9jcnRjKGNydGMpOwotCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBhY3J0Yy0+Y3R4OworCXN0cnVjdCBraXJpbl9jcnRjICprY3J0YyA9IHRvX2tpcmluX2NydGMoY3J0Yyk7CisJc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGtjcnRjLT5od19jdHg7CiAJaW50IHJldDsKIAotCWlmIChhY3J0Yy0+ZW5hYmxlKQorCWlmIChrY3J0Yy0+ZW5hYmxlKQogCQlyZXR1cm47CiAKIAlpZiAoIWN0eC0+cG93ZXJfb24pIHsKQEAgLTQ5Miw2MyArNDcwLDYzIEBAIHN0YXRpYyB2b2lkIGFkZV9jcnRjX2F0b21pY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJcmV0dXJuOwogCX0KIAotCWFkZV9zZXRfbWVkaWFub2NfcW9zKGFjcnRjKTsKLQlhZGVfZGlzcGxheV9lbmFibGUoYWNydGMpOworCWFkZV9zZXRfbWVkaWFub2NfcW9zKGN0eCk7CisJYWRlX2Rpc3BsYXlfZW5hYmxlKGN0eCk7CiAJYWRlX2R1bXBfcmVncyhjdHgtPmJhc2UpOwogCWRybV9jcnRjX3ZibGFua19vbihjcnRjKTsKLQlhY3J0Yy0+ZW5hYmxlID0gdHJ1ZTsKKwlrY3J0Yy0+ZW5hYmxlID0gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgYWRlX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKLQlzdHJ1Y3QgYWRlX2NydGMgKmFjcnRjID0gdG9fYWRlX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGFjcnRjLT5jdHg7CisJc3RydWN0IGtpcmluX2NydGMgKmtjcnRjID0gdG9fa2lyaW5fY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4ID0ga2NydGMtPmh3X2N0eDsKIAotCWlmICghYWNydGMtPmVuYWJsZSkKKwlpZiAoIWtjcnRjLT5lbmFibGUpCiAJCXJldHVybjsKIAogCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CiAJYWRlX3Bvd2VyX2Rvd24oY3R4KTsKLQlhY3J0Yy0+ZW5hYmxlID0gZmFsc2U7CisJa2NydGMtPmVuYWJsZSA9IGZhbHNlOwogfQogCiBzdGF0aWMgdm9pZCBhZGVfY3J0Y19tb2RlX3NldF9ub2ZiKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgYWRlX2NydGMgKmFjcnRjID0gdG9fYWRlX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGFjcnRjLT5jdHg7CisJc3RydWN0IGtpcmluX2NydGMgKmtjcnRjID0gdG9fa2lyaW5fY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4ID0ga2NydGMtPmh3X2N0eDsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZjcnRjLT5zdGF0ZS0+bW9kZTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqX21vZGUgPSAmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGU7CiAKIAlpZiAoIWN0eC0+cG93ZXJfb24pCiAJCSh2b2lkKWFkZV9wb3dlcl91cChjdHgpOwotCWFkZV9sZGlfc2V0X21vZGUoYWNydGMsIG1vZGUsIGFkal9tb2RlKTsKKwlhZGVfbGRpX3NldF9tb2RlKGN0eCwgbW9kZSwgYWRqX21vZGUpOwogfQogCiBzdGF0aWMgdm9pZCBhZGVfY3J0Y19hdG9taWNfYmVnaW4oc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfc3RhdGUpCiB7Ci0Jc3RydWN0IGFkZV9jcnRjICphY3J0YyA9IHRvX2FkZV9jcnRjKGNydGMpOwotCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBhY3J0Yy0+Y3R4OworCXN0cnVjdCBraXJpbl9jcnRjICprY3J0YyA9IHRvX2tpcmluX2NydGMoY3J0Yyk7CisJc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGtjcnRjLT5od19jdHg7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Yy0+c3RhdGUtPm1vZGU7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkal9tb2RlID0gJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwogCiAJaWYgKCFjdHgtPnBvd2VyX29uKQogCQkodm9pZClhZGVfcG93ZXJfdXAoY3R4KTsKLQlhZGVfbGRpX3NldF9tb2RlKGFjcnRjLCBtb2RlLCBhZGpfbW9kZSk7CisJYWRlX2xkaV9zZXRfbW9kZShjdHgsIG1vZGUsIGFkal9tb2RlKTsKIH0KIAogc3RhdGljIHZvaWQgYWRlX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX3N0YXRlKQogCiB7Ci0Jc3RydWN0IGFkZV9jcnRjICphY3J0YyA9IHRvX2FkZV9jcnRjKGNydGMpOwotCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBhY3J0Yy0+Y3R4OworCXN0cnVjdCBraXJpbl9jcnRjICprY3J0YyA9IHRvX2tpcmluX2NydGMoY3J0Yyk7CisJc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGtjcnRjLT5od19jdHg7CiAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZXZlbnQgPSBjcnRjLT5zdGF0ZS0+ZXZlbnQ7CiAJdm9pZCBfX2lvbWVtICpiYXNlID0gY3R4LT5iYXNlOwogCiAJLyogb25seSBjcnRjIGlzIGVuYWJsZWQgcmVncyB0YWtlIGVmZmVjdCAqLwotCWlmIChhY3J0Yy0+ZW5hYmxlKSB7CisJaWYgKGtjcnRjLT5lbmFibGUpIHsKIAkJYWRlX2R1bXBfcmVncyhiYXNlKTsKIAkJLyogZmx1c2ggYWRlIHJlZ2lzdGVycyAqLwogCQl3cml0ZWwoQURFX0VOQUJMRSwgYmFzZSArIEFERV9FTik7CkBAIC01ODYsMzUgKzU2NCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgYWRlX2NydGNfZnVuY3MgPSB7CiAJLmRpc2FibGVfdmJsYW5rCT0gYWRlX2NydGNfZGlzYWJsZV92YmxhbmssCiB9OwogCi1zdGF0aWMgaW50IGFkZV9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQkJIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQotewotCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydDsKLQlpbnQgcmV0OwotCi0JLyogc2V0IGNydGMgcG9ydCBzbyB0aGF0Ci0JICogZHJtX29mX2ZpbmRfcG9zc2libGVfY3J0Y3MgY2FsbCB3b3JrcwotCSAqLwotCXBvcnQgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYtPmRldi0+b2Zfbm9kZSwgInBvcnQiKTsKLQlpZiAoIXBvcnQpIHsKLQkJRFJNX0VSUk9SKCJubyBwb3J0IG5vZGUgZm91bmQgaW4gJXBPRlxuIiwgZGV2LT5kZXYtPm9mX25vZGUpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0Jb2Zfbm9kZV9wdXQocG9ydCk7Ci0JY3J0Yy0+cG9ydCA9IHBvcnQ7Ci0KLQlyZXQgPSBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKGRldiwgY3J0YywgcGxhbmUsIE5VTEwsCi0JCQkJCSZhZGVfY3J0Y19mdW5jcywgTlVMTCk7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoImZhaWxlZCB0byBpbml0IGNydGMuXG4iKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlkcm1fY3J0Y19oZWxwZXJfYWRkKGNydGMsICZhZGVfY3J0Y19oZWxwZXJfZnVuY3MpOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyB2b2lkIGFkZV9yZG1hX3NldCh2b2lkIF9faW9tZW0gKmJhc2UsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJIHUzMiBjaCwgdTMyIHksIHUzMiBpbl9oLCB1MzIgZm10KQogewpAQCAtNzc2LDE2ICs3MjUsMTYgQEAgc3RhdGljIHZvaWQgYWRlX2NvbXBvc2l0b3Jfcm91dGluZ19kaXNhYmxlKHZvaWQgX19pb21lbSAqYmFzZSwgdTMyIGNoKQogLyoKICAqIFR5cGljYWx5LCBhIGNoYW5uZWwgbG9va3MgbGlrZTogRE1BLS0+Y2xpcC0tPnNjYWxlLS0+Y3RyYW5zLS0+Y29tcG9zaXRvcgogICovCi1zdGF0aWMgdm9pZCBhZGVfdXBkYXRlX2NoYW5uZWwoc3RydWN0IGFkZV9wbGFuZSAqYXBsYW5lLAorc3RhdGljIHZvaWQgYWRlX3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBraXJpbl9wbGFuZSAqa3BsYW5lLAogCQkJICAgICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY3J0Y194LAogCQkJICAgICAgIGludCBjcnRjX3ksIHVuc2lnbmVkIGludCBjcnRjX3csCiAJCQkgICAgICAgdW5zaWduZWQgaW50IGNydGNfaCwgdTMyIHNyY194LAogCQkJICAgICAgIHUzMiBzcmNfeSwgdTMyIHNyY193LCB1MzIgc3JjX2gpCiB7Ci0Jc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGFwbGFuZS0+Y3R4OworCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBrcGxhbmUtPmh3X2N0eDsKIAl2b2lkIF9faW9tZW0gKmJhc2UgPSBjdHgtPmJhc2U7CiAJdTMyIGZtdCA9IGFkZV9nZXRfZm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1hdCk7Ci0JdTMyIGNoID0gYXBsYW5lLT5jaDsKKwl1MzIgY2ggPSBrcGxhbmUtPmNoOwogCXUzMiBpbl93OwogCXUzMiBpbl9oOwogCkBAIC04MDksMTEgKzc1OCwxMSBAQCBzdGF0aWMgdm9pZCBhZGVfdXBkYXRlX2NoYW5uZWwoc3RydWN0IGFkZV9wbGFuZSAqYXBsYW5lLAogCWFkZV9jb21wb3NpdG9yX3JvdXRpbmdfc2V0KGJhc2UsIGNoLCBjcnRjX3gsIGNydGNfeSwgaW5fdywgaW5faCwgZm10KTsKIH0KIAotc3RhdGljIHZvaWQgYWRlX2Rpc2FibGVfY2hhbm5lbChzdHJ1Y3QgYWRlX3BsYW5lICphcGxhbmUpCitzdGF0aWMgdm9pZCBhZGVfZGlzYWJsZV9jaGFubmVsKHN0cnVjdCBraXJpbl9wbGFuZSAqa3BsYW5lKQogewotCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBhcGxhbmUtPmN0eDsKKwlzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4ID0ga3BsYW5lLT5od19jdHg7CiAJdm9pZCBfX2lvbWVtICpiYXNlID0gY3R4LT5iYXNlOwotCXUzMiBjaCA9IGFwbGFuZS0+Y2g7CisJdTMyIGNoID0ga3BsYW5lLT5jaDsKIAogCURSTV9ERUJVR19EUklWRVIoImRpc2FibGUgY2hhbm5lbCVkXG4iLCBjaCArIDEpOwogCkBAIC04NzUsMTAgKzgyNCwxMCBAQCBzdGF0aWMgaW50IGFkZV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiBzdGF0aWMgdm9pZCBhZGVfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQogewotCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUJKnN0YXRlCT0gcGxhbmUtPnN0YXRlOwotCXN0cnVjdCBhZGVfcGxhbmUgKmFwbGFuZSA9IHRvX2FkZV9wbGFuZShwbGFuZSk7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3RhdGU7CisJc3RydWN0IGtpcmluX3BsYW5lICprcGxhbmUgPSB0b19raXJpbl9wbGFuZShwbGFuZSk7CiAKLQlhZGVfdXBkYXRlX2NoYW5uZWwoYXBsYW5lLCBzdGF0ZS0+ZmIsIHN0YXRlLT5jcnRjX3gsIHN0YXRlLT5jcnRjX3ksCisJYWRlX3VwZGF0ZV9jaGFubmVsKGtwbGFuZSwgc3RhdGUtPmZiLCBzdGF0ZS0+Y3J0Y194LCBzdGF0ZS0+Y3J0Y195LAogCQkJICAgc3RhdGUtPmNydGNfdywgc3RhdGUtPmNydGNfaCwKIAkJCSAgIHN0YXRlLT5zcmNfeCA+PiAxNiwgc3RhdGUtPnNyY195ID4+IDE2LAogCQkJICAgc3RhdGUtPnNyY193ID4+IDE2LCBzdGF0ZS0+c3JjX2ggPj4gMTYpOwpAQCAtODg3LDkgKzgzNiw5IEBAIHN0YXRpYyB2b2lkIGFkZV9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogc3RhdGljIHZvaWQgYWRlX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQogewotCXN0cnVjdCBhZGVfcGxhbmUgKmFwbGFuZSA9IHRvX2FkZV9wbGFuZShwbGFuZSk7CisJc3RydWN0IGtpcmluX3BsYW5lICprcGxhbmUgPSB0b19raXJpbl9wbGFuZShwbGFuZSk7CiAKLQlhZGVfZGlzYWJsZV9jaGFubmVsKGFwbGFuZSk7CisJYWRlX2Rpc2FibGVfY2hhbm5lbChrcGxhbmUpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgYWRlX3BsYW5lX2hlbHBlcl9mdW5jcyA9IHsKQEAgLTkwNywxNDQgKzg1NiwxMjQgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgYWRlX3BsYW5lX2Z1bmNzID0gewogCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUsCiB9OwogCi1zdGF0aWMgaW50IGFkZV9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBhZGVfcGxhbmUgKmFwbGFuZSwKLQkJCSAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlKQotewotCWNvbnN0IHUzMiAqZm10czsKLQl1MzIgZm10c19jbnQ7Ci0JaW50IHJldCA9IDA7Ci0KLQkvKiBnZXQgIHByb3BlcnRpZXMgKi8KLQlmbXRzX2NudCA9IGFkZV9nZXRfY2hhbm5lbF9mb3JtYXRzKGFwbGFuZS0+Y2gsICZmbXRzKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgJmFwbGFuZS0+YmFzZSwgMSwgJmFkZV9wbGFuZV9mdW5jcywKLQkJCQkgICAgICAgZm10cywgZm10c19jbnQsIE5VTEwsIHR5cGUsIE5VTEwpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJmYWlsIHRvIGluaXQgcGxhbmUsIGNoPSVkXG4iLCBhcGxhbmUtPmNoKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlkcm1fcGxhbmVfaGVscGVyX2FkZCgmYXBsYW5lLT5iYXNlLCAmYWRlX3BsYW5lX2hlbHBlcl9mdW5jcyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBhZGVfZHRzX3BhcnNlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHN0cnVjdCBhZGVfaHdfY3R4ICpjdHgpCitzdGF0aWMgdm9pZCAqYWRlX2h3X2N0eF9hbGxvYyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CiAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IHBkZXYtPmRldi5vZl9ub2RlOworCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBOVUxMOworCWludCByZXQ7CisKKwljdHggPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmN0eCksIEdGUF9LRVJORUwpOworCWlmICghY3R4KSB7CisJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFsbG9jIGFkZV9od19jdHhcbiIpOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwl9CiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwogCWN0eC0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7CiAJaWYgKElTX0VSUihjdHgtPmJhc2UpKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHJlbWFwIGFkZSBpbyBiYXNlXG4iKTsKLQkJcmV0dXJuICBQVFJfRVJSKGN0eC0+YmFzZSk7CisJCXJldHVybiBFUlJfUFRSKC1FSU8pOwogCX0KIAogCWN0eC0+cmVzZXQgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0KGRldiwgTlVMTCk7CiAJaWYgKElTX0VSUihjdHgtPnJlc2V0KSkKLQkJcmV0dXJuIFBUUl9FUlIoY3R4LT5yZXNldCk7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCiAJY3R4LT5ub2NfcmVnbWFwID0KIAkJc3lzY29uX3JlZ21hcF9sb29rdXBfYnlfcGhhbmRsZShucCwgImhpc2lsaWNvbixub2Mtc3lzY29uIik7CiAJaWYgKElTX0VSUihjdHgtPm5vY19yZWdtYXApKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGdldCBub2MgcmVnbWFwXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIoY3R4LT5ub2NfcmVnbWFwKTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7CiAJfQogCiAJY3R4LT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwogCWlmIChjdHgtPmlycSA8IDApIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZ2V0IGlycVxuIik7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAl9CiAKIAljdHgtPmFkZV9jb3JlX2NsayA9IGRldm1fY2xrX2dldChkZXYsICJjbGtfYWRlX2NvcmUiKTsKIAlpZiAoSVNfRVJSKGN0eC0+YWRlX2NvcmVfY2xrKSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBwYXJzZSBjbGsgQURFX0NPUkVcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihjdHgtPmFkZV9jb3JlX2Nsayk7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCX0KIAogCWN0eC0+bWVkaWFfbm9jX2NsayA9IGRldm1fY2xrX2dldChkZXYsICJjbGtfY29kZWNfanBlZyIpOwogCWlmIChJU19FUlIoY3R4LT5tZWRpYV9ub2NfY2xrKSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBwYXJzZSBjbGsgQ09ERUNfSlBFR1xuIik7Ci0JCXJldHVybiBQVFJfRVJSKGN0eC0+bWVkaWFfbm9jX2Nsayk7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCX0KIAogCWN0eC0+YWRlX3BpeF9jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAiY2xrX2FkZV9waXgiKTsKIAlpZiAoSVNfRVJSKGN0eC0+YWRlX3BpeF9jbGspKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHBhcnNlIGNsayBBREVfUElYXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIoY3R4LT5hZGVfcGl4X2Nsayk7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCX0KIAotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGFkZV9kcm1faW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQlzdHJ1Y3QgYWRlX2RhdGEgKmFkZTsKLQlzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4OwotCXN0cnVjdCBhZGVfY3J0YyAqYWNydGM7Ci0Jc3RydWN0IGFkZV9wbGFuZSAqYXBsYW5lOwotCWVudW0gZHJtX3BsYW5lX3R5cGUgdHlwZTsKLQlpbnQgcmV0OwotCWludCBpOwotCi0JYWRlID0gZGV2bV9remFsbG9jKGRldi0+ZGV2LCBzaXplb2YoKmFkZSksIEdGUF9LRVJORUwpOwotCWlmICghYWRlKSB7Ci0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGFsbG9jIGFkZV9kYXRhXG4iKTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGFkZSk7Ci0KLQljdHggPSAmYWRlLT5jdHg7Ci0JYWNydGMgPSAmYWRlLT5hY3J0YzsKLQlhY3J0Yy0+Y3R4ID0gY3R4OwotCWFjcnRjLT5vdXRfZm9ybWF0ID0gTERJX09VVF9SR0JfODg4OwotCi0JcmV0ID0gYWRlX2R0c19wYXJzZShwZGV2LCBjdHgpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQkvKgotCSAqIHBsYW5lIGluaXQKLQkgKiBUT0RPOiBOb3cgb25seSBzdXBwb3J0IHByaW1hcnkgcGxhbmUsIG92ZXJsYXkgcGxhbmVzCi0JICogbmVlZCB0byBkby4KLQkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQURFX0NIX05VTTsgaSsrKSB7Ci0JCWFwbGFuZSA9ICZhZGUtPmFwbGFuZVtpXTsKLQkJYXBsYW5lLT5jaCA9IGk7Ci0JCWFwbGFuZS0+Y3R4ID0gY3R4OwotCQl0eXBlID0gaSA9PSBQUklNQVJZX0NIID8gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSA6Ci0JCQlEUk1fUExBTkVfVFlQRV9PVkVSTEFZOwotCi0JCXJldCA9IGFkZV9wbGFuZV9pbml0KGRldiwgYXBsYW5lLCB0eXBlKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCi0JLyogY3J0YyBpbml0ICovCi0JcmV0ID0gYWRlX2NydGNfaW5pdChkZXYsICZhY3J0Yy0+YmFzZSwgJmFkZS0+YXBsYW5lW1BSSU1BUllfQ0hdLmJhc2UpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KIAkvKiB2YmxhbmsgaXJxIGluaXQgKi8KLQlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKGRldi0+ZGV2LCBjdHgtPmlycSwgYWRlX2lycV9oYW5kbGVyLAotCQkJICAgICAgIElSUUZfU0hBUkVELCBkZXYtPmRyaXZlci0+bmFtZSwgYWNydGMpOworCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoZGV2LCBjdHgtPmlycSwgYWRlX2lycV9oYW5kbGVyLAorCQkJICAgICAgIElSUUZfU0hBUkVELCBkZXYtPmRyaXZlci0+bmFtZSwgY3R4KTsKIAlpZiAocmV0KQotCQlyZXR1cm4gcmV0OworCQlyZXR1cm4gRVJSX1BUUigtRUlPKTsKIAotCXJldHVybiAwOworCUlOSVRfV09SSygmY3R4LT5kaXNwbGF5X3Jlc2V0X3dxLCBkcm1fdW5kZXJmbG93X3dxKTsKKwljdHgtPmNydGMgPSBjcnRjOworCisJcmV0dXJuIGN0eDsKIH0KIAotc3RhdGljIHZvaWQgYWRlX2RybV9jbGVhbnVwKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgdm9pZCBhZGVfaHdfY3R4X2NsZWFudXAodm9pZCAqaHdfY3R4KQogewogfQogCi1jb25zdCBzdHJ1Y3Qga2lyaW5fZGNfb3BzIGFkZV9kY19vcHMgPSB7Ci0JLmluaXQgPSBhZGVfZHJtX2luaXQsCi0JLmNsZWFudXAgPSBhZGVfZHJtX2NsZWFudXAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIGFkZV9tb2RlX2NvbmZpZ19mdW5jcyA9IHsKKwkuZmJfY3JlYXRlID0gZHJtX2dlbV9mYl9jcmVhdGUsCisJLmF0b21pY19jaGVjayA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrLAorCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0LAorCit9OworCitERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhhZGVfZm9wcyk7CisKK3N0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBhZGVfZHJpdmVyID0geworCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLAorCS5mb3BzID0gJmFkZV9mb3BzLAorCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBkcm1fZ2VtX2NtYV9mcmVlX29iamVjdCwKKwkuZ2VtX3ZtX29wcyA9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCisJLmR1bWJfY3JlYXRlID0gZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGVfaW50ZXJuYWwsCisJLnByaW1lX2hhbmRsZV90b19mZAk9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAorCS5wcmltZV9mZF90b19oYW5kbGUJPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKKwkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwKKwkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKKwkuZ2VtX3ByaW1lX3ZtYXAgPSBkcm1fZ2VtX2NtYV9wcmltZV92bWFwLAorCS5nZW1fcHJpbWVfdnVubWFwID0gZHJtX2dlbV9jbWFfcHJpbWVfdnVubWFwLAorCS5nZW1fcHJpbWVfbW1hcCA9IGRybV9nZW1fY21hX3ByaW1lX21tYXAsCisKKwkubmFtZSA9ICJraXJpbiIsCisJLmRlc2MgPSAiSGlzaWxpY29uIEtpcmluNjIwIFNvQyBEUk0gRHJpdmVyIiwKKwkuZGF0ZSA9ICIyMDE1MDcxOCIsCisJLm1ham9yID0gMSwKKwkubWlub3IgPSAwLAorfTsKKworc3RydWN0IGtpcmluX2RybV9kYXRhIGFkZV9kcml2ZXJfZGF0YSA9IHsKKwkucmVnaXN0ZXJfY29ubmVjdHMgPSBmYWxzZSwKKwkubnVtX3BsYW5lcyA9IEFERV9DSF9OVU0sCisJLnByaW1fcGxhbmUgPSBBREVfQ0gxLAorCS5jaGFubmVsX2Zvcm1hdHMgPSBjaGFubmVsX2Zvcm1hdHMsCisJLmNoYW5uZWxfZm9ybWF0c19jbnQgPSBBUlJBWV9TSVpFKGNoYW5uZWxfZm9ybWF0cyksCisJLmNvbmZpZ19tYXhfd2lkdGggPSAyMDQ4LAorCS5jb25maWdfbWF4X2hlaWdodCA9IDIwNDgsCisJLmRyaXZlciA9ICZhZGVfZHJpdmVyLAorCS5jcnRjX2hlbHBlcl9mdW5jcyA9ICZhZGVfY3J0Y19oZWxwZXJfZnVuY3MsCisJLmNydGNfZnVuY3MgPSAmYWRlX2NydGNfZnVuY3MsCisJLnBsYW5lX2hlbHBlcl9mdW5jcyA9ICZhZGVfcGxhbmVfaGVscGVyX2Z1bmNzLAorCS5wbGFuZV9mdW5jcyA9ICZhZGVfcGxhbmVfZnVuY3MsCisJLm1vZGVfY29uZmlnX2Z1bmNzID0gJmFkZV9tb2RlX2NvbmZpZ19mdW5jcywKKworCS5hbGxvY19od19jdHggPSBhZGVfaHdfY3R4X2FsbG9jLAorCS5jbGVhbnVwX2h3X2N0eCA9IGFkZV9od19jdHhfY2xlYW51cCwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2Rydi5jCmluZGV4IDRhN2ZlMTBhLi5kMzE0NWFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9kcnYuYwpAQCAtMTMsNTkgKzEzLDE2MiBAQAogCiAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJraXJpbl9kcm1fZHJ2LmgiCiAKLXN0YXRpYyBzdHJ1Y3Qga2lyaW5fZGNfb3BzICpkY19vcHM7CisjZGVmaW5lIEtJUklOX01BWF9QTEFORQkyCiAKLXN0YXRpYyBpbnQga2lyaW5fZHJtX2ttc19jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdHJ1Y3Qga2lyaW5fZHJtX3ByaXZhdGUgeworCXN0cnVjdCBraXJpbl9jcnRjIGNydGM7CisJc3RydWN0IGtpcmluX3BsYW5lIHBsYW5lc1tLSVJJTl9NQVhfUExBTkVdOworCXZvaWQgKmh3X2N0eDsKK307CisKK3N0YXRpYyBpbnQga2lyaW5fZHJtX2NydGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGtpcmluX2RybV9kYXRhICpkcml2ZXJfZGF0YSkKIHsKLQlkcm1fa21zX2hlbHBlcl9wb2xsX2ZpbmkoZGV2KTsKLQlkY19vcHMtPmNsZWFudXAodG9fcGxhdGZvcm1fZGV2aWNlKGRldi0+ZGV2KSk7Ci0JZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZGV2KTsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBvcnQ7CisJaW50IHJldDsKKworCS8qIHNldCBjcnRjIHBvcnQgc28gdGhhdAorCSAqIGRybV9vZl9maW5kX3Bvc3NpYmxlX2NydGNzIGNhbGwgd29ya3MKKwkgKi8KKwlwb3J0ID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUoZGV2LT5kZXYtPm9mX25vZGUsICJwb3J0Iik7CisJaWYgKCFwb3J0KSB7CisJCURSTV9FUlJPUigibm8gcG9ydCBub2RlIGZvdW5kIGluICVwT0ZcbiIsIGRldi0+ZGV2LT5vZl9ub2RlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCW9mX25vZGVfcHV0KHBvcnQpOworCWNydGMtPnBvcnQgPSBwb3J0OworCisJcmV0ID0gZHJtX2NydGNfaW5pdF93aXRoX3BsYW5lcyhkZXYsIGNydGMsIHBsYW5lLCBOVUxMLAorCQkJCQlkcml2ZXJfZGF0YS0+Y3J0Y19mdW5jcywgTlVMTCk7CisJaWYgKHJldCkgeworCQlEUk1fRVJST1IoImZhaWxlZCB0byBpbml0IGNydGMuXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlkcm1fY3J0Y19oZWxwZXJfYWRkKGNydGMsIGRyaXZlcl9kYXRhLT5jcnRjX2hlbHBlcl9mdW5jcyk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3Mga2lyaW5fZHJtX21vZGVfY29uZmlnX2Z1bmNzID0gewotCS5mYl9jcmVhdGUgPSBkcm1fZ2VtX2ZiX2NyZWF0ZSwKLQkuYXRvbWljX2NoZWNrID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCi0JLmF0b21pY19jb21taXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQsCi19OwotCi1zdGF0aWMgdm9pZCBraXJpbl9kcm1fbW9kZV9jb25maWdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIGludCBraXJpbl9kcm1fcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQllbnVtIGRybV9wbGFuZV90eXBlIHR5cGUsCisJCQkJY29uc3Qgc3RydWN0IGtpcmluX2RybV9kYXRhICpkYXRhKQogewotCWRldi0+bW9kZV9jb25maWcubWluX3dpZHRoID0gMDsKLQlkZXYtPm1vZGVfY29uZmlnLm1pbl9oZWlnaHQgPSAwOworCWludCByZXQgPSAwOwogCi0JZGV2LT5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSAyMDQ4OwotCWRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IDIwNDg7CisJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgcGxhbmUsIDEsIGRhdGEtPnBsYW5lX2Z1bmNzLAorCQkJCSAgICAgICBkYXRhLT5jaGFubmVsX2Zvcm1hdHMsCisJCQkJICAgICAgIGRhdGEtPmNoYW5uZWxfZm9ybWF0c19jbnQsCisJCQkJICAgICAgIE5VTEwsIHR5cGUsIE5VTEwpOworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJmYWlsIHRvIGluaXQgcGxhbmUsIGNoPSVkXG4iLCAwKTsKKwkJcmV0dXJuIHJldDsKKwl9CiAKLQlkZXYtPm1vZGVfY29uZmlnLmZ1bmNzID0gJmtpcmluX2RybV9tb2RlX2NvbmZpZ19mdW5jczsKKwlkcm1fcGxhbmVfaGVscGVyX2FkZChwbGFuZSwgZGF0YS0+cGxhbmVfaGVscGVyX2Z1bmNzKTsKKworCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGtpcmluX2RybV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQga2lyaW5fZHJtX3ByaXZhdGVfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBraXJpbl9kcm1fcHJpdmF0ZSAqa2lyaW5fcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGtpcmluX2RybV9kYXRhICpkYXRhOworCisJZGF0YSA9IChzdHJ1Y3Qga2lyaW5fZHJtX2RhdGEgKilvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2LT5kZXYpOworCWlmIChkYXRhLT5jbGVhbnVwX2h3X2N0eCkKKwkJZGF0YS0+Y2xlYW51cF9od19jdHgoa2lyaW5fcHJpdi0+aHdfY3R4KTsKKworCWRldm1fa2ZyZWUoZGV2LT5kZXYsIGtpcmluX3ByaXYpOworCWRldi0+ZGV2X3ByaXZhdGUgPSBOVUxMOworfQorCitzdGF0aWMgaW50IGtpcmluX2RybV9wcml2YXRlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgIGNvbnN0IHN0cnVjdCBraXJpbl9kcm1fZGF0YSAqZHJpdmVyX2RhdGEpCit7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYtPmRldik7CisJc3RydWN0IGtpcmluX2RybV9wcml2YXRlICpraXJpbl9wcml2OworCXN0cnVjdCBkcm1fcGxhbmUgKnByaW1fcGxhbmU7CisJZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlOworCXZvaWQgKmN0eDsKKwlpbnQgcmV0OworCXUzMiBjaDsKKworCWtpcmluX3ByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LT5kZXYsIHNpemVvZigqa2lyaW5fcHJpdiksIEdGUF9LRVJORUwpOworCWlmICgha2lyaW5fcHJpdikgeworCQlEUk1fRVJST1IoImZhaWxlZCB0byBhbGxvYyBraXJpbl9kcm1fcHJpdmF0ZVxuIik7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWN0eCA9IGRyaXZlcl9kYXRhLT5hbGxvY19od19jdHgocGRldiwgJmtpcmluX3ByaXYtPmNydGMuYmFzZSk7CisJaWYgKElTX0VSUihjdHgpKSB7CisJCURSTV9FUlJPUigiZmFpbGVkIHRvIGluaXRpYWxpemUga2lyaW5fcHJpdiBodyBjdHhcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJa2lyaW5fcHJpdi0+aHdfY3R4ID0gY3R4OworCisJLyoKKwkgKiBwbGFuZSBpbml0CisJICogVE9ETzogTm93IG9ubHkgc3VwcG9ydCBwcmltYXJ5IHBsYW5lLCBvdmVybGF5IHBsYW5lcworCSAqIG5lZWQgdG8gZG8uCisJICovCisJZm9yIChjaCA9IDA7IGNoIDwgZHJpdmVyX2RhdGEtPm51bV9wbGFuZXM7IGNoKyspIHsKKwkJaWYgKGNoID09IGRyaXZlcl9kYXRhLT5wcmltX3BsYW5lKQorCQkJdHlwZSA9IERSTV9QTEFORV9UWVBFX1BSSU1BUlk7CisJCWVsc2UKKwkJCXR5cGUgPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOworCQlyZXQgPSBraXJpbl9kcm1fcGxhbmVfaW5pdChkZXYsICZraXJpbl9wcml2LT5wbGFuZXNbY2hdLmJhc2UsCisJCQkJCSAgIHR5cGUsIGRyaXZlcl9kYXRhKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJCWtpcmluX3ByaXYtPnBsYW5lc1tjaF0uY2ggPSBjaDsKKwkJa2lyaW5fcHJpdi0+cGxhbmVzW2NoXS5od19jdHggPSBjdHg7CisJfQorCisJLyogY3J0YyBpbml0ICovCisJcHJpbV9wbGFuZSA9ICZraXJpbl9wcml2LT5wbGFuZXNbZHJpdmVyX2RhdGEtPnByaW1fcGxhbmVdLmJhc2U7CisJcmV0ID0ga2lyaW5fZHJtX2NydGNfaW5pdChkZXYsICZraXJpbl9wcml2LT5jcnRjLmJhc2UsCisJCQkJICBwcmltX3BsYW5lLCBkcml2ZXJfZGF0YSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwlraXJpbl9wcml2LT5jcnRjLmh3X2N0eCA9IGN0eDsKKwlkZXYtPmRldl9wcml2YXRlID0ga2lyaW5fcHJpdjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGtpcmluX2RybV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICAgY29uc3Qgc3RydWN0IGtpcmluX2RybV9kYXRhICpkcml2ZXJfZGF0YSkKIHsKIAlpbnQgcmV0OwogCi0JZGV2X3NldF9kcnZkYXRhKGRldi0+ZGV2LCBkZXYpOwotCiAJLyogZGV2LT5tb2RlX2NvbmZpZyBpbml0aWFsaXphdGlvbiAqLwogCWRybV9tb2RlX2NvbmZpZ19pbml0KGRldik7Ci0Ja2lyaW5fZHJtX21vZGVfY29uZmlnX2luaXQoZGV2KTsKKwlkZXYtPm1vZGVfY29uZmlnLm1pbl93aWR0aCA9IDA7CisJZGV2LT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gMDsKKwlkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9IGRyaXZlcl9kYXRhLT5jb25maWdfbWF4X3dpZHRoOworCWRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IGRyaXZlcl9kYXRhLT5jb25maWdfbWF4X3dpZHRoOworCWRldi0+bW9kZV9jb25maWcuZnVuY3MgPSBkcml2ZXJfZGF0YS0+bW9kZV9jb25maWdfZnVuY3M7CiAKIAkvKiBkaXNwbGF5IGNvbnRyb2xsZXIgaW5pdCAqLwotCXJldCA9IGRjX29wcy0+aW5pdCh0b19wbGF0Zm9ybV9kZXZpY2UoZGV2LT5kZXYpKTsKKwlyZXQgPSBraXJpbl9kcm1fcHJpdmF0ZV9pbml0KGRldiwgZHJpdmVyX2RhdGEpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX21vZGVfY29uZmlnX2NsZWFudXA7CiAKQEAgLTczLDcgKzE3Niw3IEBAIHN0YXRpYyBpbnQga2lyaW5fZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0ID0gY29tcG9uZW50X2JpbmRfYWxsKGRldi0+ZGV2LCBkZXYpOwogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYmluZCBhbGwgY29tcG9uZW50LlxuIik7Ci0JCWdvdG8gZXJyX2RjX2NsZWFudXA7CisJCWdvdG8gZXJyX3ByaXZhdGVfY2xlYW51cDsKIAl9CiAKIAkvKiB2YmxhbmsgaW5pdCAqLwpAQCAtOTUsNjUgKzE5OCw3OCBAQCBzdGF0aWMgaW50IGtpcmluX2RybV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiBlcnJfdW5iaW5kX2FsbDoKIAljb21wb25lbnRfdW5iaW5kX2FsbChkZXYtPmRldiwgZGV2KTsKLWVycl9kY19jbGVhbnVwOgotCWRjX29wcy0+Y2xlYW51cCh0b19wbGF0Zm9ybV9kZXZpY2UoZGV2LT5kZXYpKTsKK2Vycl9wcml2YXRlX2NsZWFudXA6CisJa2lyaW5fZHJtX3ByaXZhdGVfY2xlYW51cChkZXYpOwogZXJyX21vZGVfY29uZmlnX2NsZWFudXA6CiAJZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZGV2KTsKLQogCXJldHVybiByZXQ7CiB9CiAKLURFRklORV9EUk1fR0VNX0NNQV9GT1BTKGtpcmluX2RybV9mb3BzKTsKLQotc3RhdGljIGludCBraXJpbl9nZW1fY21hX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKLQkJCQkgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MpCi17Ci0JcmV0dXJuIGRybV9nZW1fY21hX2R1bWJfY3JlYXRlX2ludGVybmFsKGZpbGUsIGRldiwgYXJncyk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBraXJpbl9kcm1fZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfUFJJTUUgfAotCQkJCSAgRFJJVkVSX0FUT01JQywKLQkuZm9wcwkJCT0gJmtpcmluX2RybV9mb3BzLAotCi0JLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IGRybV9nZW1fY21hX2ZyZWVfb2JqZWN0LAotCS5nZW1fdm1fb3BzCQk9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCi0JLmR1bWJfY3JlYXRlCQk9IGtpcmluX2dlbV9jbWFfZHVtYl9jcmVhdGUsCi0KLQkucHJpbWVfaGFuZGxlX3RvX2ZkCT0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCi0JLnByaW1lX2ZkX3RvX2hhbmRsZQk9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfZXhwb3J0CT0gZHJtX2dlbV9wcmltZV9leHBvcnQsCi0JLmdlbV9wcmltZV9pbXBvcnQJPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKLQkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwKLQkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKLQkuZ2VtX3ByaW1lX3ZtYXAJCT0gZHJtX2dlbV9jbWFfcHJpbWVfdm1hcCwKLQkuZ2VtX3ByaW1lX3Z1bm1hcAk9IGRybV9nZW1fY21hX3ByaW1lX3Z1bm1hcCwKLQkuZ2VtX3ByaW1lX21tYXAJCT0gZHJtX2dlbV9jbWFfcHJpbWVfbW1hcCwKLQotCS5uYW1lCQkJPSAia2lyaW4iLAotCS5kZXNjCQkJPSAiSGlzaWxpY29uIEtpcmluIFNvQ3MnIERSTSBEcml2ZXIiLAotCS5kYXRlCQkJPSAiMjAxNTA3MTgiLAotCS5tYWpvcgkJCT0gMSwKLQkubWlub3IJCQk9IDAsCi19OwotCiBzdGF0aWMgaW50IGNvbXBhcmVfb2Yoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQogewogCXJldHVybiBkZXYtPm9mX25vZGUgPT0gZGF0YTsKIH0KIAorc3RhdGljIGludCBraXJpbl9kcm1fa21zX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlkcm1fa21zX2hlbHBlcl9wb2xsX2ZpbmkoZGV2KTsKKwlraXJpbl9kcm1fcHJpdmF0ZV9jbGVhbnVwKGRldik7CisJZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZGV2KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGtpcmluX2RybV9jb25uZWN0b3JzX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqZmFpbGVkX2Nvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOworCWludCByZXQ7CisKKwltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZjb25uX2l0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKKwkJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOworCQlpZiAocmV0KSB7CisJCQlmYWlsZWRfY29ubmVjdG9yID0gY29ubmVjdG9yOworCQkJZ290byBlcnI7CisJCX0KKwl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOworCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CisKKwlyZXR1cm4gMDsKKworZXJyOgorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNvbm5faXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgeworCQlpZiAoZmFpbGVkX2Nvbm5lY3RvciA9PSBjb25uZWN0b3IpCisJCQlicmVhazsKKwkJZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7CisJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9pdGVyKTsKKwltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGludCBraXJpbl9kcm1fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlciA9ICZraXJpbl9kcm1fZHJpdmVyOworCXN0cnVjdCBraXJpbl9kcm1fZGF0YSAqZHJpdmVyX2RhdGE7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXY7CiAJaW50IHJldDsKIAotCWRybV9kZXYgPSBkcm1fZGV2X2FsbG9jKGRyaXZlciwgZGV2KTsKKwlkcml2ZXJfZGF0YSA9IChzdHJ1Y3Qga2lyaW5fZHJtX2RhdGEgKilvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTsKKwlpZiAoIWRyaXZlcl9kYXRhKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRybV9kZXYgPSBkcm1fZGV2X2FsbG9jKGRyaXZlcl9kYXRhLT5kcml2ZXIsIGRldik7CiAJaWYgKElTX0VSUihkcm1fZGV2KSkKIAkJcmV0dXJuIFBUUl9FUlIoZHJtX2Rldik7CisJZGV2X3NldF9kcnZkYXRhKGRldiwgZHJtX2Rldik7CiAKLQlyZXQgPSBraXJpbl9kcm1fa21zX2luaXQoZHJtX2Rldik7CisJLyogZGlzcGxheSBjb250cm9sbGVyIGluaXQgKi8KKwlyZXQgPSBraXJpbl9kcm1fa21zX2luaXQoZHJtX2RldiwgZHJpdmVyX2RhdGEpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX2RybV9kZXZfcHV0OwogCkBAIC0xNjMsOCArMjc5LDE3IEBAIHN0YXRpYyBpbnQga2lyaW5fZHJtX2JpbmQoc3RydWN0IGRldmljZSAqZGV2KQogCiAJZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoZHJtX2RldiwgMzIpOwogCisJLyogY29ubmVjdG9ycyBzaG91bGQgYmUgcmVnaXN0ZXJlZCBhZnRlciBkcm0gZGV2aWNlIHJlZ2lzdGVyICovCisJaWYgKGRyaXZlcl9kYXRhLT5yZWdpc3Rlcl9jb25uZWN0cykgeworCQlyZXQgPSBraXJpbl9kcm1fY29ubmVjdG9yc19yZWdpc3Rlcihkcm1fZGV2KTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyX2RybV9kZXZfdW5yZWdpc3RlcjsKKwl9CisKIAlyZXR1cm4gMDsKIAorZXJyX2RybV9kZXZfdW5yZWdpc3RlcjoKKwlkcm1fZGV2X3VucmVnaXN0ZXIoZHJtX2Rldik7CiBlcnJfa21zX2NsZWFudXA6CiAJa2lyaW5fZHJtX2ttc19jbGVhbnVwKGRybV9kZXYpOwogZXJyX2RybV9kZXZfcHV0OgpAQCAtMTk0LDEyICszMTksNiBAQCBzdGF0aWMgaW50IGtpcmluX2RybV9wbGF0Zm9ybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKm1hdGNoID0gTlVMTDsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnJlbW90ZTsKIAotCWRjX29wcyA9IChzdHJ1Y3Qga2lyaW5fZGNfb3BzICopb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7Ci0JaWYgKCFkY19vcHMpIHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZ2V0IGR0IGlkIGRhdGFcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KIAlyZW1vdGUgPSBvZl9ncmFwaF9nZXRfcmVtb3RlX25vZGUobnAsIDAsIDApOwogCWlmICghcmVtb3RlKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTIwOCwyMCArMzI3LDE3IEBAIHN0YXRpYyBpbnQga2lyaW5fZHJtX3BsYXRmb3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJb2Zfbm9kZV9wdXQocmVtb3RlKTsKIAogCXJldHVybiBjb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKGRldiwgJmtpcmluX2RybV9vcHMsIG1hdGNoKTsKLQotCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGtpcmluX2RybV9wbGF0Zm9ybV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAljb21wb25lbnRfbWFzdGVyX2RlbCgmcGRldi0+ZGV2LCAma2lyaW5fZHJtX29wcyk7Ci0JZGNfb3BzID0gTlVMTDsKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQga2lyaW5fZHJtX2R0X2lkc1tdID0gewogCXsgLmNvbXBhdGlibGUgPSAiaGlzaWxpY29uLGhpNjIyMC1hZGUiLAotCSAgLmRhdGEgPSAmYWRlX2RjX29wcywKKwkgIC5kYXRhID0gJmFkZV9kcml2ZXJfZGF0YSwKIAl9LAogCXsgLyogZW5kIG5vZGUgKi8gfSwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2Rydi5oCmluZGV4IDIyZDEyOTEuLjRkNWMwNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2Rydi5oCkBAIC03LDE0ICs3LDUyIEBACiAjaWZuZGVmIF9fS0lSSU5fRFJNX0RSVl9IX18KICNkZWZpbmUgX19LSVJJTl9EUk1fRFJWX0hfXwogCi0jZGVmaW5lIE1BWF9DUlRDCTIKKyNkZWZpbmUgdG9fa2lyaW5fY3J0YyhjcnRjKSBcCisJY29udGFpbmVyX29mKGNydGMsIHN0cnVjdCBraXJpbl9jcnRjLCBiYXNlKQogCi0vKiBkaXNwbGF5IGNvbnRyb2xsZXIgaW5pdC9jbGVhbnVwIG9wcyAqLwotc3RydWN0IGtpcmluX2RjX29wcyB7Ci0JaW50ICgqaW5pdCkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7Ci0Jdm9pZCAoKmNsZWFudXApKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOworI2RlZmluZSB0b19raXJpbl9wbGFuZShwbGFuZSkgXAorCWNvbnRhaW5lcl9vZihwbGFuZSwgc3RydWN0IGtpcmluX3BsYW5lLCBiYXNlKQorCisvKiBraXJpbi1mb3JtYXQgdHJhbnNsYXRlIHRhYmxlICovCitzdHJ1Y3Qga2lyaW5fZm9ybWF0IHsKKwl1MzIgcGl4ZWxfZm9ybWF0OworCXUzMiBod19mb3JtYXQ7CiB9OwogCi1leHRlcm4gY29uc3Qgc3RydWN0IGtpcmluX2RjX29wcyBhZGVfZGNfb3BzOworc3RydWN0IGtpcmluX2NydGMgeworCXN0cnVjdCBkcm1fY3J0YyBiYXNlOworCXZvaWQgKmh3X2N0eDsKKwlib29sIGVuYWJsZTsKK307CisKK3N0cnVjdCBraXJpbl9wbGFuZSB7CisJc3RydWN0IGRybV9wbGFuZSBiYXNlOworCXZvaWQgKmh3X2N0eDsKKwl1MzIgY2g7Cit9OworCisvKiBkaXNwbGF5IGNvbnRyb2xsZXIgaW5pdC9jbGVhbnVwIG9wcyAqLworc3RydWN0IGtpcmluX2RybV9kYXRhIHsKKwljb25zdCB1MzIgKmNoYW5uZWxfZm9ybWF0czsKKwl1MzIgY2hhbm5lbF9mb3JtYXRzX2NudDsKKwlpbnQgY29uZmlnX21heF93aWR0aDsKKwlpbnQgY29uZmlnX21heF9oZWlnaHQ7CisJYm9vbCByZWdpc3Rlcl9jb25uZWN0czsKKwl1MzIgbnVtX3BsYW5lczsKKwl1MzIgcHJpbV9wbGFuZTsKKworCXN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXI7CisJY29uc3Qgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyAqY3J0Y19oZWxwZXJfZnVuY3M7CisJY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzICpjcnRjX2Z1bmNzOworCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzICpwbGFuZV9oZWxwZXJfZnVuY3M7CisJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyAgKnBsYW5lX2Z1bmNzOworCWNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgKm1vZGVfY29uZmlnX2Z1bmNzOworCisJdm9pZCAqKCphbGxvY19od19jdHgpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOworCXZvaWQgKCpjbGVhbnVwX2h3X2N0eCkodm9pZCAqaHdfY3R4KTsKK307CisKK2V4dGVybiBzdHJ1Y3Qga2lyaW5fZHJtX2RhdGEgYWRlX2RyaXZlcl9kYXRhOwogCiAjZW5kaWYgLyogX19LSVJJTl9EUk1fRFJWX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2kyYy9jaDcwMDZfcHJpdi5oIGIvZHJpdmVycy9ncHUvZHJtL2kyYy9jaDcwMDZfcHJpdi5oCmluZGV4IGI2ZTA5MTkuLjk4NmIwNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvY2g3MDA2X3ByaXYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL2NoNzAwNl9wcml2LmgKQEAgLTI3LDcgKzI3LDYgQEAKICNpZm5kZWYgX19EUk1fSTJDX0NINzAwNl9QUklWX0hfXwogI2RlZmluZSBfX0RSTV9JMkNfQ0g3MDA2X1BSSVZfSF9fCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXJfc2xhdmUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2kyYy9zaWwxNjRfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL3NpbDE2NF9kcnYuYwppbmRleCA4NzhiYThkLi44YmNmMGQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3NpbDE2NF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL3NpbDE2NF9kcnYuYwpAQCAtMjYsOCArMjYsOSBAQAogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyX3NsYXZlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2kyYy9zaWwxNjQuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jCmluZGV4IDYxZTA0MjkuLjg0YzZkNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMKQEAgLTEzLDEwICsxMywxMCBAQAogI2luY2x1ZGUgPHNvdW5kL2Fzb3VuZGVmLmg+CiAjaW5jbHVkZSA8c291bmQvaGRtaS1jb2RlYy5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2kyYy90ZGE5OTh4Lmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTgxMC9pODEwX2RtYS5jCmluZGV4IDNiMzc4OTMuLjJhNzc4MjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kbWEuYwpAQCAtMzAsMTMgKzMwLDIwIEBACiAgKgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9pODEwX2RybS5oPgotI2luY2x1ZGUgImk4MTBfZHJ2LmgiCi0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CS8qIEZvciB0YXNrIHF1ZXVlIHN1cHBvcnQgKi8KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbW1hbi5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hZ3BzdXBwb3J0Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1faW9jdGwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGNpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorI2luY2x1ZGUgPGRybS9pODEwX2RybS5oPgorCisjaW5jbHVkZSAiaTgxMF9kcnYuaCIKIAogI2RlZmluZSBJODEwX0JVRl9GUkVFCQkyCiAjZGVmaW5lIEk4MTBfQlVGX0NMSUVOVAkJMQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZHJ2LmMKaW5kZXggYzY5ZDVjNC4uNWRkMjZhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTgxMC9pODEwX2Rydi5jCkBAIC0zMCwxMyArMzAsMTUgQEAKICAqICAgIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KICAqLwogCisjaW5jbHVkZSAiaTgxMF9kcnYuaCIKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2k4MTBfZHJtLmg+Ci0jaW5jbHVkZSAiaTgxMF9kcnYuaCIKLQorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wY2kuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BjaWlkcy5oPgorI2luY2x1ZGUgPGRybS9pODEwX2RybS5oPgorCiAKIHN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lpZGxpc3RbXSA9IHsKIAlpODEwX1BDSV9JRFMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTgxMC9pODEwX2Rydi5oCmluZGV4IGM3M2QyZjIuLjlkZjM5ODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kcnYuaApAQCAtMzIsNyArMzIsOSBAQAogI2lmbmRlZiBfSTgxMF9EUlZfSF8KICNkZWZpbmUgX0k4MTBfRFJWX0hfCiAKKyNpbmNsdWRlIDxkcm0vZHJtX2lvY3RsLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9sZWdhY3kuaD4KKyNpbmNsdWRlIDxkcm0vaTgxMF9kcm0uaD4KIAogLyogR2VuZXJhbCBjdXN0b21pemF0aW9uOgogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnLmRlYnVnIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy5kZWJ1ZwppbmRleCA4ZDkyMmJiLi4wMDc4NmExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnLmRlYnVnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcuZGVidWcKQEAgLTcsNiArNyw3IEBACiAgICAgICAgICMgV2UgdXNlIHRoZSBkZXBlbmRlbmN5IG9uICFDT01QSUxFX1RFU1QgdG8gbm90IGJlIGVuYWJsZWQgaW4KICAgICAgICAgIyBhbGxtb2Rjb25maWcgb3IgYWxseWVzY29uZmlnIGNvbmZpZ3VyYXRpb25zCiAgICAgICAgIGRlcGVuZHMgb24gIUNPTVBJTEVfVEVTVAorCXNlbGVjdCBIRUFERVJfVEVTVAogICAgICAgICBkZWZhdWx0IG4KICAgICAgICAgaGVscAogICAgICAgICAgIEFkZCAtV2Vycm9yIHRvIHRoZSBidWlsZCBmbGFncyBmb3IgKGFuZCBvbmx5IGZvcikgaTkxNS5rby4KQEAgLTI5LDYgKzMwLDcgQEAKICAgICAgICAgc2VsZWN0IERSTV9WR0VNICMgdXNlZCBieSBpZ3QvcHJpbWVfdmdlbSAoZG1hYnVmIGludGVyb3AgY2hlY2tzKQogICAgICAgICBzZWxlY3QgRFJNX0RFQlVHX01NIGlmIERSTT15CiAJc2VsZWN0IERSTV9ERUJVR19TRUxGVEVTVAorCXNlbGVjdCBETUFCVUZfU0VMRlRFU1RTCiAJc2VsZWN0IFNXX1NZTkMgIyBzaWduYWxpbmcgdmFsaWRhdGlvbiBmcmFtZXdvcmsgKGlndC9zeW5jb2JqKikKIAlzZWxlY3QgRFJNX0k5MTVfU1dfRkVOQ0VfREVCVUdfT0JKRUNUUwogCXNlbGVjdCBEUk1fSTkxNV9TRUxGVEVTVApAQCAtOTQsNiArOTYsMjAgQEAKIAogCSAgSWYgaW4gZG91YnQsIHNheSAiTiIuCiAKK2NvbmZpZyBEUk1fSTkxNV9UUkFDRV9HVFQKKwlib29sICJJbnNlcnQgZXh0cmEgZnRyYWNlIG91dHB1dCBmcm9tIHRoZSBHVFQgaW50ZXJuYWxzIgorCWRlcGVuZHMgb24gRFJNX0k5MTVfREVCVUdfR0VNCisJc2VsZWN0IFRSQUNJTkcKKwlkZWZhdWx0IG4KKwloZWxwCisJICBFbmFibGUgYWRkaXRpb25hbCBhbmQgdmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0IHRoYXQgd2lsbCBzcGFtCisJICBvcmRpbmFyeSB0ZXN0cywgYnV0IG1heSBiZSB2aXRhbCBmb3IgcG9zdC1tb3J0ZW0gZGVidWdnaW5nIHdoZW4KKwkgIHVzZWQgd2l0aCAvcHJvYy9zeXMva2VybmVsL2Z0cmFjZV9kdW1wX29uX29vcHMKKworCSAgUmVjb21tZW5kZWQgZm9yIGRyaXZlciBkZXZlbG9wZXJzIG9ubHkuCisKKwkgIElmIGluIGRvdWJ0LCBzYXkgIk4iLgorCiBjb25maWcgRFJNX0k5MTVfU1dfRkVOQ0VfREVCVUdfT0JKRUNUUwogICAgICAgICBib29sICJFbmFibGUgYWRkaXRpb25hbCBkcml2ZXIgZGVidWdnaW5nIGZvciBmZW5jZSBvYmplY3RzIgogICAgICAgICBkZXBlbmRzIG9uIERSTV9JOTE1CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IDhjYWNlNjUuLjI1ODdlYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC0yNiwyOCArMjYsMzEgQEAKIAogIyBGaW5lIGdyYWluZWQgd2FybmluZ3MgZGlzYWJsZQogQ0ZMQUdTX2k5MTVfcGNpLm8gPSAkKGNhbGwgY2MtZGlzYWJsZS13YXJuaW5nLCBvdmVycmlkZS1pbml0KQotQ0ZMQUdTX2ludGVsX2ZiZGV2Lm8gPSAkKGNhbGwgY2MtZGlzYWJsZS13YXJuaW5nLCBvdmVycmlkZS1pbml0KQorQ0ZMQUdTX2Rpc3BsYXkvaW50ZWxfZmJkZXYubyA9ICQoY2FsbCBjYy1kaXNhYmxlLXdhcm5pbmcsIG92ZXJyaWRlLWluaXQpCiAKIHN1YmRpci1jY2ZsYWdzLXkgKz0gXAogCSQoY2FsbCBhcy1pbnN0cixtb3ZudGRxYSAoJWVheCkkKGNvbW1hKSV4bW0wLC1EQ09ORklHX0FTX01PVk5URFFBKQogCiAjIEV4dHJhIGhlYWRlciB0ZXN0cwotaW5jbHVkZSAkKHNyYykvTWFrZWZpbGUuaGVhZGVyLXRlc3QKK2hlYWRlci10ZXN0LXBhdHRlcm4tJChDT05GSUdfRFJNX0k5MTVfV0VSUk9SKSA6PSAqLmgKIAotc3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjKQorc3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjdHJlZSkvJChzcmMpCiAKICMgUGxlYXNlIGtlZXAgdGhlc2UgYnVpbGQgbGlzdHMgc29ydGVkIQogCiAjIGNvcmUgZHJpdmVyIGNvZGUKIGk5MTUteSArPSBpOTE1X2Rydi5vIFwKIAkgIGk5MTVfaXJxLm8gXAorCSAgaTkxNV9nZXRwYXJhbS5vIFwKIAkgIGk5MTVfcGFyYW1zLm8gXAogCSAgaTkxNV9wY2kubyBcCiAJICBpOTE1X3NjYXR0ZXJsaXN0Lm8gXAogCSAgaTkxNV9zdXNwZW5kLm8gXAogCSAgaTkxNV9zeXNmcy5vIFwKKwkgIGk5MTVfdXRpbHMubyBcCiAJICBpbnRlbF9jc3IubyBcCiAJICBpbnRlbF9kZXZpY2VfaW5mby5vIFwKKwkgIGludGVsX3BjaC5vIFwKIAkgIGludGVsX3BtLm8gXAogCSAgaW50ZWxfcnVudGltZV9wbS5vIFwKIAkgIGludGVsX3NpZGViYW5kLm8gXApAQCAtNTksNiArNjIsNyBAQAogCWk5MTVfbWVtY3B5Lm8gXAogCWk5MTVfbW0ubyBcCiAJaTkxNV9zd19mZW5jZS5vIFwKKwlpOTE1X3N3X2ZlbmNlX3dvcmsubyBcCiAJaTkxNV9zeW5jbWFwLm8gXAogCWk5MTVfdXNlcl9leHRlbnNpb25zLm8KIApAQCAtNzIsMTcgKzc2LDI4IEBACiAJZ3QvaW50ZWxfYnJlYWRjcnVtYnMubyBcCiAJZ3QvaW50ZWxfY29udGV4dC5vIFwKIAlndC9pbnRlbF9lbmdpbmVfY3MubyBcCisJZ3QvaW50ZWxfZW5naW5lX3Bvb2wubyBcCiAJZ3QvaW50ZWxfZW5naW5lX3BtLm8gXAorCWd0L2ludGVsX2VuZ2luZV91c2VyLm8gXAorCWd0L2ludGVsX2d0Lm8gXAorCWd0L2ludGVsX2d0X2lycS5vIFwKIAlndC9pbnRlbF9ndF9wbS5vIFwKKwlndC9pbnRlbF9ndF9wbV9pcnEubyBcCiAJZ3QvaW50ZWxfaGFuZ2NoZWNrLm8gXAogCWd0L2ludGVsX2xyYy5vIFwKKwlndC9pbnRlbF9yZW5kZXJzdGF0ZS5vIFwKIAlndC9pbnRlbF9yZXNldC5vIFwKIAlndC9pbnRlbF9yaW5nYnVmZmVyLm8gXAogCWd0L2ludGVsX21vY3MubyBcCiAJZ3QvaW50ZWxfc3NldS5vIFwKKwlndC9pbnRlbF90aW1lbGluZS5vIFwKIAlndC9pbnRlbF93b3JrYXJvdW5kcy5vCi1ndC0kKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkgKz0gXAotCWd0L21vY2tfZW5naW5lLm8KKyMgYXV0b2dlbmVyYXRlZCBudWxsIHJlbmRlciBzdGF0ZQorZ3QteSArPSBcCisJZ3QvZ2VuNl9yZW5kZXJzdGF0ZS5vIFwKKwlndC9nZW43X3JlbmRlcnN0YXRlLm8gXAorCWd0L2dlbjhfcmVuZGVyc3RhdGUubyBcCisJZ3QvZ2VuOV9yZW5kZXJzdGF0ZS5vCiBpOTE1LXkgKz0gJChndC15KQogCiAjIEdFTSAoR3JhcGhpY3MgRXhlY3V0aW9uIE1hbmFnZW1lbnQpIGNvZGUKQEAgLTExNCwzOSArMTI5LDMyIEBACiBpOTE1LXkgKz0gXAogCSAgJChnZW0teSkgXAogCSAgaTkxNV9hY3RpdmUubyBcCisJICBpOTE1X2J1ZGR5Lm8gXAogCSAgaTkxNV9jbWRfcGFyc2VyLm8gXAotCSAgaTkxNV9nZW1fYmF0Y2hfcG9vbC5vIFwKIAkgIGk5MTVfZ2VtX2V2aWN0Lm8gXAogCSAgaTkxNV9nZW1fZmVuY2VfcmVnLm8gXAogCSAgaTkxNV9nZW1fZ3R0Lm8gXAogCSAgaTkxNV9nZW0ubyBcCi0JICBpOTE1X2dlbV9yZW5kZXJfc3RhdGUubyBcCiAJICBpOTE1X2dsb2JhbHMubyBcCiAJICBpOTE1X3F1ZXJ5Lm8gXAogCSAgaTkxNV9yZXF1ZXN0Lm8gXAogCSAgaTkxNV9zY2hlZHVsZXIubyBcCi0JICBpOTE1X3RpbWVsaW5lLm8gXAogCSAgaTkxNV90cmFjZV9wb2ludHMubyBcCiAJICBpOTE1X3ZtYS5vIFwKIAkgIGludGVsX3dvcGNtLm8KIAogIyBnZW5lcmFsLXB1cnBvc2UgbWljcm9jb250cm9sbGVyIChHdUMpIHN1cHBvcnQKLWk5MTUteSArPSBpbnRlbF91Yy5vIFwKLQkgIGludGVsX3VjX2Z3Lm8gXAotCSAgaW50ZWxfZ3VjLm8gXAotCSAgaW50ZWxfZ3VjX2Fkcy5vIFwKLQkgIGludGVsX2d1Y19jdC5vIFwKLQkgIGludGVsX2d1Y19mdy5vIFwKLQkgIGludGVsX2d1Y19sb2cubyBcCi0JICBpbnRlbF9ndWNfc3VibWlzc2lvbi5vIFwKLQkgIGludGVsX2h1Yy5vIFwKLQkgIGludGVsX2h1Y19mdy5vCi0KLSMgYXV0b2dlbmVyYXRlZCBudWxsIHJlbmRlciBzdGF0ZQotaTkxNS15ICs9IGludGVsX3JlbmRlcnN0YXRlX2dlbjYubyBcCi0JICBpbnRlbF9yZW5kZXJzdGF0ZV9nZW43Lm8gXAotCSAgaW50ZWxfcmVuZGVyc3RhdGVfZ2VuOC5vIFwKLQkgIGludGVsX3JlbmRlcnN0YXRlX2dlbjkubworb2JqLXkgKz0gZ3QvdWMvCitpOTE1LXkgKz0gZ3QvdWMvaW50ZWxfdWMubyBcCisJICBndC91Yy9pbnRlbF91Y19mdy5vIFwKKwkgIGd0L3VjL2ludGVsX2d1Yy5vIFwKKwkgIGd0L3VjL2ludGVsX2d1Y19hZHMubyBcCisJICBndC91Yy9pbnRlbF9ndWNfY3QubyBcCisJICBndC91Yy9pbnRlbF9ndWNfZncubyBcCisJICBndC91Yy9pbnRlbF9ndWNfbG9nLm8gXAorCSAgZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24ubyBcCisJICBndC91Yy9pbnRlbF9odWMubyBcCisJICBndC91Yy9pbnRlbF9odWNfZncubwogCiAjIG1vZGVzZXR0aW5nIGNvcmUgY29kZQogb2JqLXkgKz0gZGlzcGxheS8KQEAgLTE3Myw3ICsxODEsOCBAQAogCWRpc3BsYXkvaW50ZWxfb3ZlcmxheS5vIFwKIAlkaXNwbGF5L2ludGVsX3Bzci5vIFwKIAlkaXNwbGF5L2ludGVsX3F1aXJrcy5vIFwKLQlkaXNwbGF5L2ludGVsX3Nwcml0ZS5vCisJZGlzcGxheS9pbnRlbF9zcHJpdGUubyBcCisJZGlzcGxheS9pbnRlbF90Yy5vCiBpOTE1LSQoQ09ORklHX0FDUEkpICs9IFwKIAlkaXNwbGF5L2ludGVsX2FjcGkubyBcCiAJZGlzcGxheS9pbnRlbF9vcHJlZ2lvbi5vCkBAIC0yMTAsNiArMjE5LDI1IEBACiAJZGlzcGxheS92bHZfZHNpLm8gXAogCWRpc3BsYXkvdmx2X2RzaV9wbGwubwogCisjIHBlcmYgY29kZQorb2JqLXkgKz0gb2EvCitpOTE1LXkgKz0gXAorCW9hL2k5MTVfb2FfaHN3Lm8gXAorCW9hL2k5MTVfb2FfYmR3Lm8gXAorCW9hL2k5MTVfb2FfY2h2Lm8gXAorCW9hL2k5MTVfb2Ffc2tsZ3QyLm8gXAorCW9hL2k5MTVfb2Ffc2tsZ3QzLm8gXAorCW9hL2k5MTVfb2Ffc2tsZ3Q0Lm8gXAorCW9hL2k5MTVfb2FfYnh0Lm8gXAorCW9hL2k5MTVfb2Ffa2JsZ3QyLm8gXAorCW9hL2k5MTVfb2Ffa2JsZ3QzLm8gXAorCW9hL2k5MTVfb2FfZ2xrLm8gXAorCW9hL2k5MTVfb2FfY2ZsZ3QyLm8gXAorCW9hL2k5MTVfb2FfY2ZsZ3QzLm8gXAorCW9hL2k5MTVfb2FfY25sLm8gXAorCW9hL2k5MTVfb2FfaWNsLm8KK2k5MTUteSArPSBpOTE1X3BlcmYubworCiAjIFBvc3QtbW9ydGVtIGRlYnVnIGFuZCBHUFUgaGFuZyBzdGF0ZSBjYXB0dXJlCiBpOTE1LSQoQ09ORklHX0RSTV9JOTE1X0NBUFRVUkVfRVJST1IpICs9IGk5MTVfZ3B1X2Vycm9yLm8KIGk5MTUtJChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpICs9IFwKQEAgLTIyNCwyMyArMjUyLDYgQEAKICMgdmlydHVhbCBncHUgY29kZQogaTkxNS15ICs9IGk5MTVfdmdwdS5vCiAKLSMgcGVyZiBjb2RlCi1pOTE1LXkgKz0gaTkxNV9wZXJmLm8gXAotCSAgaTkxNV9vYV9oc3cubyBcCi0JICBpOTE1X29hX2Jkdy5vIFwKLQkgIGk5MTVfb2FfY2h2Lm8gXAotCSAgaTkxNV9vYV9za2xndDIubyBcCi0JICBpOTE1X29hX3NrbGd0My5vIFwKLQkgIGk5MTVfb2Ffc2tsZ3Q0Lm8gXAotCSAgaTkxNV9vYV9ieHQubyBcCi0JICBpOTE1X29hX2tibGd0Mi5vIFwKLQkgIGk5MTVfb2Ffa2JsZ3QzLm8gXAotCSAgaTkxNV9vYV9nbGsubyBcCi0JICBpOTE1X29hX2NmbGd0Mi5vIFwKLQkgIGk5MTVfb2FfY2ZsZ3QzLm8gXAotCSAgaTkxNV9vYV9jbmwubyBcCi0JICBpOTE1X29hX2ljbC5vCi0KIGlmZXEgKCQoQ09ORklHX0RSTV9JOTE1X0dWVCkseSkKIGk5MTUteSArPSBpbnRlbF9ndnQubwogaW5jbHVkZSAkKHNyYykvZ3Z0L01ha2VmaWxlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZS5oZWFkZXItdGVzdCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlLmhlYWRlci10ZXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Y2RlMGVjLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlLmhlYWRlci10ZXN0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0jIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCi0KLSMgVGVzdCB0aGUgaGVhZGVycyBhcmUgY29tcGlsYWJsZSBhcyBzdGFuZGFsb25lIHVuaXRzCi1oZWFkZXItdGVzdC0kKENPTkZJR19EUk1fSTkxNV9XRVJST1IpIDo9IFwKLQlpOTE1X2FjdGl2ZV90eXBlcy5oIFwKLQlpOTE1X2RlYnVnZnMuaCBcCi0JaTkxNV9kcnYuaCBcCi0JaTkxNV9pcnEuaCBcCi0JaTkxNV9wYXJhbXMuaCBcCi0JaTkxNV9wcmlvbGlzdF90eXBlcy5oIFwKLQlpOTE1X3JlZy5oIFwKLQlpOTE1X3NjaGVkdWxlcl90eXBlcy5oIFwKLQlpOTE1X3RpbWVsaW5lX3R5cGVzLmggXAotCWk5MTVfdXRpbHMuaCBcCi0JaW50ZWxfY3NyLmggXAotCWludGVsX2Rydi5oIFwKLQlpbnRlbF9wbS5oIFwKLQlpbnRlbF9ydW50aW1lX3BtLmggXAotCWludGVsX3NpZGViYW5kLmggXAotCWludGVsX3VuY29yZS5oIFwKLQlpbnRlbF93YWtlcmVmLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L01ha2VmaWxlCmluZGV4IDFjNzViNWMuLjE3M2MzMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9NYWtlZmlsZQpAQCAtMSwyICsxLDYgQEAKKyMgRm9yIGJ1aWxkaW5nIGluZGl2aWR1YWwgc3ViZGlyIGZpbGVzIG9uIHRoZSBjb21tYW5kIGxpbmUKK3N1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpLyQoc3JjKS8uLgorCiAjIEV4dHJhIGhlYWRlciB0ZXN0cwotaW5jbHVkZSAkKHNyYykvTWFrZWZpbGUuaGVhZGVyLXRlc3QKK2hlYWRlci10ZXN0LXBhdHRlcm4tJChDT05GSUdfRFJNX0k5MTVfV0VSUk9SKSA6PSAqLmgKK2hlYWRlci10ZXN0LSA6PSBpbnRlbF92YnRfZGVmcy5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L01ha2VmaWxlLmhlYWRlci10ZXN0IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9NYWtlZmlsZS5oZWFkZXItdGVzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmM3ZDRlNS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L01ha2VmaWxlLmhlYWRlci10ZXN0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0jIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCi0KLSMgVGVzdCB0aGUgaGVhZGVycyBhcmUgY29tcGlsYWJsZSBhcyBzdGFuZGFsb25lIHVuaXRzCi1oZWFkZXJfdGVzdCA6PSAkKG5vdGRpciAkKGZpbHRlci1vdXQgJS9pbnRlbF92YnRfZGVmcy5oLCQod2lsZGNhcmQgJChzcmMpLyouaCkpKQotCi1xdWlldF9jbWRfaGVhZGVyX3Rlc3QgPSBIRFJURVNUICRACi0gICAgICBjbWRfaGVhZGVyX3Rlc3QgPSBlY2hvICJcI2luY2x1ZGUgXCIkKDxGKVwiIiA+ICRACi0KLWhlYWRlcl90ZXN0XyUuYzogJS5oCi0JJChjYWxsIGNtZCxoZWFkZXJfdGVzdCkKLQotZXh0cmEtJChDT05GSUdfRFJNX0k5MTVfV0VSUk9SKSArPSBcCi0JJChmb3JlYWNoIGgsJChoZWFkZXJfdGVzdCksJChwYXRzdWJzdCAlLmgsaGVhZGVyX3Rlc3RfJS5vLCQoaCkpKQotCi1jbGVhbi1maWxlcyArPSAkKGZvcmVhY2ggaCwkKGhlYWRlcl90ZXN0KSwkKHBhdHN1YnN0ICUuaCxoZWFkZXJfdGVzdF8lLmMsJChoKSkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2R2b19jaDcwMTcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX2NoNzAxNy5jCmluZGV4IDYwMjM4MGYuLjA1ODk5OTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX2NoNzAxNy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX2NoNzAxNy5jCkBAIC0yNSw3ICsyNSw3IEBACiAgKgogICovCiAKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHZvX2Rldi5oIgogCiAjZGVmaW5lIENINzAxN19UVl9ESVNQTEFZX01PREUJCTB4MDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX2NoN3h4eC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9kdm9fY2g3eHh4LmMKaW5kZXggZTA3MGJlYi4uNTRmNThiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9kdm9fY2g3eHh4LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9kdm9fY2g3eHh4LmMKQEAgLTI2LDcgKzI2LDcgQEAgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCiAKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2R2b19kZXYuaCIKIAogI2RlZmluZSBDSDd4eHhfUkVHX1ZJRAkJMHg0YQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9kdm9faXZjaC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9kdm9faXZjaC5jCmluZGV4IDA5ZGJhMzUuLmY0M2Q4YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX2l2Y2guYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2R2b19pdmNoLmMKQEAgLTI5LDcgKzI5LDcgQEAKICAqCiAgKi8KIAotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9kdm9fZGV2LmgiCiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2R2b19uczI1MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX25zMjUwMS5jCmluZGV4IGM4M2E1ZDguLmE3MjRhODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX25zMjUwMS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX25zMjUwMS5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImk5MTVfcmVnLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2R2b19kZXYuaCIKIAogI2RlZmluZSBOUzI1MDFfVklEIDB4MTMwNQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9kdm9fc2lsMTY0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2R2b19zaWwxNjQuYwppbmRleCAwNDY5OGVhLi4wZGZhMGEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2R2b19zaWwxNjQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2R2b19zaWwxNjQuYwpAQCAtMjYsNyArMjYsNyBAQCBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KIAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHZvX2Rldi5oIgogCiAjZGVmaW5lIFNJTDE2NF9WSUQgMHgwMDAxCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2R2b190ZnA0MTAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX3RmcDQxMC5jCmluZGV4IDYyMzExNGUuLjAwOWQ2NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX3RmcDQxMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvZHZvX3RmcDQxMC5jCkBAIC0yNSw3ICsyNSw3IEBACiAgKgogICovCiAKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHZvX2Rldi5oIgogCiAvKiByZWdpc3RlciBkZWZpbml0aW9ucyBhY2NvcmRpbmcgdG8gdGhlIFRGUDQxMCBkYXRhIHNoZWV0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCmluZGV4IDc0NDQ4ZTYuLjZlMzk4YzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCkBAIC0yMDIsNjMgKzIwMiw2MiBAQCBzdGF0aWMgdm9pZCBkc2lfcHJvZ3JhbV9zd2luZ19hbmRfZGVlbXBoYXNpcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKLQllbnVtIHBvcnQgcG9ydDsKKwllbnVtIHBoeSBwaHk7CiAJdTMyIHRtcDsKIAlpbnQgbGFuZTsKIAotCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKLQorCWZvcl9lYWNoX2RzaV9waHkocGh5LCBpbnRlbF9kc2ktPnBoeXMpIHsKIAkJLyoKIAkJICogUHJvZ3JhbSB2b2x0YWdlIHN3aW5nIGFuZCBwcmUtZW1waGFzaXMgbGV2ZWwgdmFsdWVzIGFzIHBlcgogCQkgKiB0YWJsZSBpbiBCU1BFQyB1bmRlciBEREkgYnVmZmVyIHByb2dyYW1pbmcKIAkJICovCi0JCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzVfTE4wKHBvcnQpKTsKKwkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNV9MTjAocGh5KSk7CiAJCXRtcCAmPSB+KFNDQUxJTkdfTU9ERV9TRUxfTUFTSyB8IFJURVJNX1NFTEVDVF9NQVNLKTsKIAkJdG1wIHw9IFNDQUxJTkdfTU9ERV9TRUwoMHgyKTsKIAkJdG1wIHw9IFRBUDJfRElTQUJMRSB8IFRBUDNfRElTQUJMRTsKIAkJdG1wIHw9IFJURVJNX1NFTEVDVCgweDYpOwotCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNV9HUlAocG9ydCksIHRtcCk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc1X0dSUChwaHkpLCB0bXApOwogCi0JCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzVfQVVYKHBvcnQpKTsKKwkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNV9BVVgocGh5KSk7CiAJCXRtcCAmPSB+KFNDQUxJTkdfTU9ERV9TRUxfTUFTSyB8IFJURVJNX1NFTEVDVF9NQVNLKTsKIAkJdG1wIHw9IFNDQUxJTkdfTU9ERV9TRUwoMHgyKTsKIAkJdG1wIHw9IFRBUDJfRElTQUJMRSB8IFRBUDNfRElTQUJMRTsKIAkJdG1wIHw9IFJURVJNX1NFTEVDVCgweDYpOwotCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNV9BVVgocG9ydCksIHRtcCk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc1X0FVWChwaHkpLCB0bXApOwogCi0JCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzJfTE4wKHBvcnQpKTsKKwkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXMl9MTjAocGh5KSk7CiAJCXRtcCAmPSB+KFNXSU5HX1NFTF9MT1dFUl9NQVNLIHwgU1dJTkdfU0VMX1VQUEVSX01BU0sgfAogCQkJIFJDT01QX1NDQUxBUl9NQVNLKTsKIAkJdG1wIHw9IFNXSU5HX1NFTF9VUFBFUigweDIpOwogCQl0bXAgfD0gU1dJTkdfU0VMX0xPV0VSKDB4Mik7CiAJCXRtcCB8PSBSQ09NUF9TQ0FMQVIoMHg5OCk7Ci0JCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFcyX0dSUChwb3J0KSwgdG1wKTsKKwkJSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzJfR1JQKHBoeSksIHRtcCk7CiAKLQkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXMl9BVVgocG9ydCkpOworCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFcyX0FVWChwaHkpKTsKIAkJdG1wICY9IH4oU1dJTkdfU0VMX0xPV0VSX01BU0sgfCBTV0lOR19TRUxfVVBQRVJfTUFTSyB8CiAJCQkgUkNPTVBfU0NBTEFSX01BU0spOwogCQl0bXAgfD0gU1dJTkdfU0VMX1VQUEVSKDB4Mik7CiAJCXRtcCB8PSBTV0lOR19TRUxfTE9XRVIoMHgyKTsKIAkJdG1wIHw9IFJDT01QX1NDQUxBUigweDk4KTsKLQkJSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzJfQVVYKHBvcnQpLCB0bXApOworCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXMl9BVVgocGh5KSwgdG1wKTsKIAotCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc0X0FVWChwb3J0KSk7CisJCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzRfQVVYKHBoeSkpOwogCQl0bXAgJj0gfihQT1NUX0NVUlNPUl8xX01BU0sgfCBQT1NUX0NVUlNPUl8yX01BU0sgfAogCQkJIENVUlNPUl9DT0VGRl9NQVNLKTsKIAkJdG1wIHw9IFBPU1RfQ1VSU09SXzEoMHgwKTsKIAkJdG1wIHw9IFBPU1RfQ1VSU09SXzIoMHgwKTsKIAkJdG1wIHw9IENVUlNPUl9DT0VGRigweDNmKTsKLQkJSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzRfQVVYKHBvcnQpLCB0bXApOworCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNF9BVVgocGh5KSwgdG1wKTsKIAogCQlmb3IgKGxhbmUgPSAwOyBsYW5lIDw9IDM7IGxhbmUrKykgewogCQkJLyogQnNwZWM6IG11c3Qgbm90IHVzZSBHUlAgcmVnaXN0ZXIgZm9yIHdyaXRlICovCi0JCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc0X0xOKGxhbmUsIHBvcnQpKTsKKwkJCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzRfTE4obGFuZSwgcGh5KSk7CiAJCQl0bXAgJj0gfihQT1NUX0NVUlNPUl8xX01BU0sgfCBQT1NUX0NVUlNPUl8yX01BU0sgfAogCQkJCSBDVVJTT1JfQ09FRkZfTUFTSyk7CiAJCQl0bXAgfD0gUE9TVF9DVVJTT1JfMSgweDApOwogCQkJdG1wIHw9IFBPU1RfQ1VSU09SXzIoMHgwKTsKIAkJCXRtcCB8PSBDVVJTT1JfQ09FRkYoMHgzZik7Ci0JCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNF9MTihsYW5lLCBwb3J0KSwgdG1wKTsKKwkJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc0X0xOKGxhbmUsIHBoeSksIHRtcCk7CiAJCX0KIAl9CiB9CkBAIC0zNjQsMTAgKzM2MywxMCBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfcG93ZXJfdXBfbGFuZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Ci0JZW51bSBwb3J0IHBvcnQ7CisJZW51bSBwaHkgcGh5OwogCi0JZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykKLQkJaW50ZWxfY29tYm9fcGh5X3Bvd2VyX3VwX2xhbmVzKGRldl9wcml2LCBwb3J0LCB0cnVlLAorCWZvcl9lYWNoX2RzaV9waHkocGh5LCBpbnRlbF9kc2ktPnBoeXMpCisJCWludGVsX2NvbWJvX3BoeV9wb3dlcl91cF9sYW5lcyhkZXZfcHJpdiwgcGh5LCB0cnVlLAogCQkJCQkgICAgICAgaW50ZWxfZHNpLT5sYW5lX2NvdW50LCBmYWxzZSk7CiB9CiAKQEAgLTM3NSwzNCArMzc0LDQ3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9jb25maWdfcGh5X2xhbmVzX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwotCWVudW0gcG9ydCBwb3J0OworCWVudW0gcGh5IHBoeTsKIAl1MzIgdG1wOwogCWludCBsYW5lOwogCiAJLyogU3RlcCA0YihpKSBzZXQgbG9hZGdlbiBzZWxlY3QgZm9yIHRyYW5zbWl0IGFuZCBhdXggbGFuZXMgKi8KLQlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzRfQVVYKHBvcnQpKTsKKwlmb3JfZWFjaF9kc2lfcGh5KHBoeSwgaW50ZWxfZHNpLT5waHlzKSB7CisJCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzRfQVVYKHBoeSkpOwogCQl0bXAgJj0gfkxPQURHRU5fU0VMRUNUOwotCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNF9BVVgocG9ydCksIHRtcCk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc0X0FVWChwaHkpLCB0bXApOwogCQlmb3IgKGxhbmUgPSAwOyBsYW5lIDw9IDM7IGxhbmUrKykgewotCQkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNF9MTihsYW5lLCBwb3J0KSk7CisJCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc0X0xOKGxhbmUsIHBoeSkpOwogCQkJdG1wICY9IH5MT0FER0VOX1NFTEVDVDsKIAkJCWlmIChsYW5lICE9IDIpCiAJCQkJdG1wIHw9IExPQURHRU5fU0VMRUNUOwotCQkJSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzRfTE4obGFuZSwgcG9ydCksIHRtcCk7CisJCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNF9MTihsYW5lLCBwaHkpLCB0bXApOwogCQl9CiAJfQogCiAJLyogU3RlcCA0YihpaSkgc2V0IGxhdGVuY3kgb3B0aW1pemF0aW9uIGZvciB0cmFuc21pdCBhbmQgYXV4IGxhbmVzICovCi0JZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFcyX0FVWChwb3J0KSk7CisJZm9yX2VhY2hfZHNpX3BoeShwaHksIGludGVsX2RzaS0+cGh5cykgeworCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFcyX0FVWChwaHkpKTsKIAkJdG1wICY9IH5GUkNfTEFURU5DWV9PUFRJTV9NQVNLOwogCQl0bXAgfD0gRlJDX0xBVEVOQ1lfT1BUSU1fVkFMKDB4NSk7Ci0JCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFcyX0FVWChwb3J0KSwgdG1wKTsKLQkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXMl9MTjAocG9ydCkpOworCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXMl9BVVgocGh5KSwgdG1wKTsKKwkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXMl9MTjAocGh5KSk7CiAJCXRtcCAmPSB+RlJDX0xBVEVOQ1lfT1BUSU1fTUFTSzsKIAkJdG1wIHw9IEZSQ19MQVRFTkNZX09QVElNX1ZBTCgweDUpOwotCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXMl9HUlAocG9ydCksIHRtcCk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFcyX0dSUChwaHkpLCB0bXApOworCisJCS8qIEZvciBFSEwsIFRHTCwgc2V0IGxhdGVuY3kgb3B0aW1pemF0aW9uIGZvciBQQ1NfRFcxIGxhbmVzICovCisJCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikgfHwgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpKSB7CisJCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfUENTX0RXMV9BVVgocGh5KSk7CisJCQl0bXAgJj0gfkxBVEVOQ1lfT1BUSU1fTUFTSzsKKwkJCXRtcCB8PSBMQVRFTkNZX09QVElNX1ZBTCgwKTsKKwkJCUk5MTVfV1JJVEUoSUNMX1BPUlRfUENTX0RXMV9BVVgocGh5KSwgdG1wKTsKKworCQkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1BDU19EVzFfTE4wKHBoeSkpOworCQkJdG1wICY9IH5MQVRFTkNZX09QVElNX01BU0s7CisJCQl0bXAgfD0gTEFURU5DWV9PUFRJTV9WQUwoMHgxKTsKKwkJCUk5MTVfV1JJVEUoSUNMX1BPUlRfUENTX0RXMV9HUlAocGh5KSwgdG1wKTsKKwkJfQogCX0KIAogfQpAQCAtNDEyLDE2ICs0MjQsMTYgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX3ZvbHRhZ2Vfc3dpbmdfcHJvZ3JhbV9zZXEoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJdTMyIHRtcDsKLQllbnVtIHBvcnQgcG9ydDsKKwllbnVtIHBoeSBwaHk7CiAKIAkvKiBjbGVhciBjb21tb24ga2VlcGVyIGVuYWJsZSBiaXQgKi8KLQlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9QQ1NfRFcxX0xOMChwb3J0KSk7CisJZm9yX2VhY2hfZHNpX3BoeShwaHksIGludGVsX2RzaS0+cGh5cykgeworCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfUENTX0RXMV9MTjAocGh5KSk7CiAJCXRtcCAmPSB+Q09NTU9OX0tFRVBFUl9FTjsKLQkJSTkxNV9XUklURShJQ0xfUE9SVF9QQ1NfRFcxX0dSUChwb3J0KSwgdG1wKTsKLQkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1BDU19EVzFfQVVYKHBvcnQpKTsKKwkJSTkxNV9XUklURShJQ0xfUE9SVF9QQ1NfRFcxX0dSUChwaHkpLCB0bXApOworCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfUENTX0RXMV9BVVgocGh5KSk7CiAJCXRtcCAmPSB+Q09NTU9OX0tFRVBFUl9FTjsKLQkJSTkxNV9XUklURShJQ0xfUE9SVF9QQ1NfRFcxX0FVWChwb3J0KSwgdG1wKTsKKwkJSTkxNV9XUklURShJQ0xfUE9SVF9QQ1NfRFcxX0FVWChwaHkpLCB0bXApOwogCX0KIAogCS8qCkBAIC00MjksMzMgKzQ0MSwzMyBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfdm9sdGFnZV9zd2luZ19wcm9ncmFtX3NlcShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkgKiBOb3RlOiBsb2FkZ2VuIHNlbGVjdCBwcm9ncmFtIGlzIGRvbmUKIAkgKiBhcyBwYXJ0IG9mIGxhbmUgcGh5IHNlcXVlbmNlIGNvbmZpZ3VyYXRpb24KIAkgKi8KLQlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DTF9EVzUocG9ydCkpOworCWZvcl9lYWNoX2RzaV9waHkocGh5LCBpbnRlbF9kc2ktPnBoeXMpIHsKKwkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX0NMX0RXNShwaHkpKTsKIAkJdG1wIHw9IFNVU19DTE9DS19DT05GSUc7Ci0JCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ0xfRFc1KHBvcnQpLCB0bXApOworCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NMX0RXNShwaHkpLCB0bXApOwogCX0KIAogCS8qIENsZWFyIHRyYWluaW5nIGVuYWJsZSB0byBjaGFuZ2Ugc3dpbmcgdmFsdWVzICovCi0JZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc1X0xOMChwb3J0KSk7CisJZm9yX2VhY2hfZHNpX3BoeShwaHksIGludGVsX2RzaS0+cGh5cykgeworCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc1X0xOMChwaHkpKTsKIAkJdG1wICY9IH5UWF9UUkFJTklOR19FTjsKLQkJSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzVfR1JQKHBvcnQpLCB0bXApOwotCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc1X0FVWChwb3J0KSk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc1X0dSUChwaHkpLCB0bXApOworCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc1X0FVWChwaHkpKTsKIAkJdG1wICY9IH5UWF9UUkFJTklOR19FTjsKLQkJSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzVfQVVYKHBvcnQpLCB0bXApOworCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNV9BVVgocGh5KSwgdG1wKTsKIAl9CiAKIAkvKiBQcm9ncmFtIHN3aW5nIGFuZCBkZS1lbXBoYXNpcyAqLwogCWRzaV9wcm9ncmFtX3N3aW5nX2FuZF9kZWVtcGhhc2lzKGVuY29kZXIpOwogCiAJLyogU2V0IHRyYWluaW5nIGVuYWJsZSB0byB0cmlnZ2VyIHVwZGF0ZSAqLwotCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKLQkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNV9MTjAocG9ydCkpOworCWZvcl9lYWNoX2RzaV9waHkocGh5LCBpbnRlbF9kc2ktPnBoeXMpIHsKKwkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNV9MTjAocGh5KSk7CiAJCXRtcCB8PSBUWF9UUkFJTklOR19FTjsKLQkJSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzVfR1JQKHBvcnQpLCB0bXApOwotCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc1X0FVWChwb3J0KSk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc1X0dSUChwaHkpLCB0bXApOworCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc1X0FVWChwaHkpKTsKIAkJdG1wIHw9IFRYX1RSQUlOSU5HX0VOOwotCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNV9BVVgocG9ydCksIHRtcCk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc1X0FVWChwaHkpLCB0bXApOwogCX0KIH0KIApAQCAtNDg0LDYgKzQ5Niw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9zZXR1cF9kcGh5X3RpbWluZ3Moc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJdTMyIHRtcDsKIAllbnVtIHBvcnQgcG9ydDsKKwllbnVtIHBoeSBwaHk7CiAKIAkvKiBQcm9ncmFtIFQtSU5JVCBtYXN0ZXIgcmVnaXN0ZXJzICovCiAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewpAQCAtNTE3LDE4ICs1MzAsMjggQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX3NldHVwX2RwaHlfdGltaW5ncyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkgKiBhIHZhbHVlICcwJyBpbnNpZGUgVEFfUEFSQU1fUkVHSVNURVJTIG90aGVyd2lzZQogCSAqIGxlYXZlIGFsbCBmaWVsZHMgYXQgSFcgZGVmYXVsdCB2YWx1ZXMuCiAJICovCi0JaWYgKGludGVsX2RzaV9iaXRyYXRlKGludGVsX2RzaSkgPD0gODAwMDAwKSB7Ci0JCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKLQkJCXRtcCA9IEk5MTVfUkVBRChEUEhZX1RBX1RJTUlOR19QQVJBTShwb3J0KSk7Ci0JCQl0bXAgJj0gflRBX1NVUkVfTUFTSzsKLQkJCXRtcCB8PSBUQV9TVVJFX09WRVJSSURFIHwgVEFfU1VSRSgwKTsKLQkJCUk5MTVfV1JJVEUoRFBIWV9UQV9USU1JTkdfUEFSQU0ocG9ydCksIHRtcCk7CisJaWYgKElTX0dFTihkZXZfcHJpdiwgMTEpKSB7CisJCWlmIChpbnRlbF9kc2lfYml0cmF0ZShpbnRlbF9kc2kpIDw9IDgwMDAwMCkgeworCQkJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgeworCQkJCXRtcCA9IEk5MTVfUkVBRChEUEhZX1RBX1RJTUlOR19QQVJBTShwb3J0KSk7CisJCQkJdG1wICY9IH5UQV9TVVJFX01BU0s7CisJCQkJdG1wIHw9IFRBX1NVUkVfT1ZFUlJJREUgfCBUQV9TVVJFKDApOworCQkJCUk5MTVfV1JJVEUoRFBIWV9UQV9USU1JTkdfUEFSQU0ocG9ydCksIHRtcCk7CiAKLQkJCS8qIHNoYWRvdyByZWdpc3RlciBpbnNpZGUgZGlzcGxheSBjb3JlICovCi0JCQl0bXAgPSBJOTE1X1JFQUQoRFNJX1RBX1RJTUlOR19QQVJBTShwb3J0KSk7Ci0JCQl0bXAgJj0gflRBX1NVUkVfTUFTSzsKLQkJCXRtcCB8PSBUQV9TVVJFX09WRVJSSURFIHwgVEFfU1VSRSgwKTsKLQkJCUk5MTVfV1JJVEUoRFNJX1RBX1RJTUlOR19QQVJBTShwb3J0KSwgdG1wKTsKKwkJCQkvKiBzaGFkb3cgcmVnaXN0ZXIgaW5zaWRlIGRpc3BsYXkgY29yZSAqLworCQkJCXRtcCA9IEk5MTVfUkVBRChEU0lfVEFfVElNSU5HX1BBUkFNKHBvcnQpKTsKKwkJCQl0bXAgJj0gflRBX1NVUkVfTUFTSzsKKwkJCQl0bXAgfD0gVEFfU1VSRV9PVkVSUklERSB8IFRBX1NVUkUoMCk7CisJCQkJSTkxNV9XUklURShEU0lfVEFfVElNSU5HX1BBUkFNKHBvcnQpLCB0bXApOworCQkJfQorCQl9CisJfQorCisJaWYgKElTX0VMS0hBUlRMQUtFKGRldl9wcml2KSkgeworCQlmb3JfZWFjaF9kc2lfcGh5KHBoeSwgaW50ZWxfZHNpLT5waHlzKSB7CisJCQl0bXAgPSBJOTE1X1JFQUQoSUNMX0RQSFlfQ0hLTihwaHkpKTsKKwkJCXRtcCB8PSBJQ0xfRFBIWV9DSEtOX0FGRV9PVkVSX1BQSV9TVFJBUDsKKwkJCUk5MTVfV1JJVEUoSUNMX0RQSFlfQ0hLTihwaHkpLCB0bXApOwogCQl9CiAJfQogfQpAQCAtNTM4LDE1ICs1NjEsMTQgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2dhdGVfY2xvY2tzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwogCXUzMiB0bXA7Ci0JZW51bSBwb3J0IHBvcnQ7CisJZW51bSBwaHkgcGh5OwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7Ci0JdG1wID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKLQlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCXRtcCB8PSBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBvcnQpOwotCX0KKwl0bXAgPSBJOTE1X1JFQUQoSUNMX0RQQ0xLQV9DRkdDUjApOworCWZvcl9lYWNoX2RzaV9waHkocGh5LCBpbnRlbF9kc2ktPnBoeXMpCisJCXRtcCB8PSBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwaHkpOwogCi0JSTkxNV9XUklURShEUENMS0FfQ0ZHQ1IwX0lDTCwgdG1wKTsKKwlJOTE1X1dSSVRFKElDTF9EUENMS0FfQ0ZHQ1IwLCB0bXApOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7CiB9CiAKQEAgLTU1NSwxNSArNTc3LDE0IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV91bmdhdGVfY2xvY2tzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwogCXUzMiB0bXA7Ci0JZW51bSBwb3J0IHBvcnQ7CisJZW51bSBwaHkgcGh5OwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7Ci0JdG1wID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKLQlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCXRtcCAmPSB+RFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0KTsKLQl9CisJdG1wID0gSTkxNV9SRUFEKElDTF9EUENMS0FfQ0ZHQ1IwKTsKKwlmb3JfZWFjaF9kc2lfcGh5KHBoeSwgaW50ZWxfZHNpLT5waHlzKQorCQl0bXAgJj0gfklDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSk7CiAKLQlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB0bXApOworCUk5MTVfV1JJVEUoSUNMX0RQQ0xLQV9DRkdDUjAsIHRtcCk7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKIH0KIApAQCAtNTczLDI0ICs1OTQsMjcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX21hcF9wbGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKLQllbnVtIHBvcnQgcG9ydDsKKwllbnVtIHBoeSBwaHk7CiAJdTMyIHZhbDsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOwogCi0JdmFsID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKLQlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCXZhbCAmPSB+RFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBvcnQpOwotCQl2YWwgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLCBwb3J0KTsKKwl2YWwgPSBJOTE1X1JFQUQoSUNMX0RQQ0xLQV9DRkdDUjApOworCWZvcl9lYWNoX2RzaV9waHkocGh5LCBpbnRlbF9kc2ktPnBoeXMpIHsKKwkJdmFsICY9IH5JQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBoeSk7CisJCXZhbCB8PSBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLCBwaHkpOwogCX0KLQlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB2YWwpOworCUk5MTVfV1JJVEUoSUNMX0RQQ0xLQV9DRkdDUjAsIHZhbCk7CiAKLQlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCXZhbCAmPSB+RFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0KTsKKwlmb3JfZWFjaF9kc2lfcGh5KHBoeSwgaW50ZWxfZHNpLT5waHlzKSB7CisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKQorCQkJdmFsIHw9IElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSk7CisJCWVsc2UKKwkJCXZhbCAmPSB+SUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYocGh5KTsKIAl9Ci0JSTkxNV9XUklURShEUENMS0FfQ0ZHQ1IwX0lDTCwgdmFsKTsKKwlJOTE1X1dSSVRFKElDTF9EUENMS0FfQ0ZHQ1IwLCB2YWwpOwogCi0JUE9TVElOR19SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKKwlQT1NUSU5HX1JFQUQoSUNMX0RQQ0xLQV9DRkdDUjApOwogCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKIH0KQEAgLTY2MSw2ICs2ODUsMTEgQEAgZ2VuMTFfZHNpX2NvbmZpZ3VyZV90cmFuc2NvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJYnJlYWs7CiAJCX0KIAorCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgeworCQkJaWYgKGlzX3ZpZF9tb2RlKGludGVsX2RzaSkpCisJCQkJdG1wIHw9IEJMQU5LSU5HX1BBQ0tFVF9FTkFCTEU7CisJCX0KKwogCQkvKiBwcm9ncmFtIERTSSBvcGVyYXRpb24gbW9kZSAqLwogCQlpZiAoaXNfdmlkX21vZGUoaW50ZWxfZHNpKSkgewogCQkJdG1wICY9IH5PUF9NT0RFX01BU0s7CkBAIC03NDQsNyArNzczLDcgQEAgZ2VuMTFfZHNpX3NldF90cmFuc2NvZGVyX3RpbWluZ3Moc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZW51bSB0cmFuc2NvZGVyIGRzaV90cmFuczsKIAkvKiBob3Jpem9udGFsIHRpbWluZ3MgKi8KIAl1MTYgaHRvdGFsLCBoYWN0aXZlLCBoc3luY19zdGFydCwgaHN5bmNfZW5kLCBoc3luY19zaXplOwotCXUxNiBoZnJvbnRfcG9yY2gsIGhiYWNrX3BvcmNoOworCXUxNiBoYmFja19wb3JjaDsKIAkvKiB2ZXJ0aWNhbCB0aW1pbmdzICovCiAJdTE2IHZ0b3RhbCwgdmFjdGl2ZSwgdnN5bmNfc3RhcnQsIHZzeW5jX2VuZCwgdnN5bmNfc2hpZnQ7CiAKQEAgLTc1Myw4ICs3ODIsNiBAQCBnZW4xMV9kc2lfc2V0X3RyYW5zY29kZXJfdGltaW5ncyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAloc3luY19zdGFydCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHN5bmNfc3RhcnQ7CiAJaHN5bmNfZW5kID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19lbmQ7CiAJaHN5bmNfc2l6ZSAgPSBoc3luY19lbmQgLSBoc3luY19zdGFydDsKLQloZnJvbnRfcG9yY2ggPSAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19zdGFydCAtCi0JCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KTsKIAloYmFja19wb3JjaCA9IChhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbCAtCiAJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hzeW5jX2VuZCk7CiAJdmFjdGl2ZSA9IGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXk7CkBAIC04NDUsNiArODcyLDE1IEBAIGdlbjExX2RzaV9zZXRfdHJhbnNjb2Rlcl90aW1pbmdzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQlkc2lfdHJhbnMgPSBkc2lfcG9ydF90b190cmFuc2NvZGVyKHBvcnQpOwogCQlJOTE1X1dSSVRFKFZTWU5DU0hJRlQoZHNpX3RyYW5zKSwgdnN5bmNfc2hpZnQpOwogCX0KKworCS8qIHByb2dyYW0gVFJBTlNfVkJMQU5LIHJlZ2lzdGVyLCBzaG91bGQgYmUgc2FtZSBhcyB2dG90YWwgcHJvZ3JhbW1lZCAqLworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKSB7CisJCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKKwkJCWRzaV90cmFucyA9IGRzaV9wb3J0X3RvX3RyYW5zY29kZXIocG9ydCk7CisJCQlJOTE1X1dSSVRFKFZCTEFOSyhkc2lfdHJhbnMpLAorCQkJCSAgICh2YWN0aXZlIC0gMSkgfCAoKHZ0b3RhbCAtIDEpIDw8IDE2KSk7CisJCX0KKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9lbmFibGVfdHJhbnNjb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKQEAgLTg2MiwxMCArODk4LDggQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2VuYWJsZV90cmFuc2NvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCQlJOTE1X1dSSVRFKFBJUEVDT05GKGRzaV90cmFucyksIHRtcCk7CiAKIAkJLyogd2FpdCBmb3IgdHJhbnNjb2RlciB0byBiZSBlbmFibGVkICovCi0JCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkJICAgIFBJUEVDT05GKGRzaV90cmFucyksCi0JCQkJCSAgICBJOTY1X1BJUEVDT05GX0FDVElWRSwKLQkJCQkJICAgIEk5NjVfUElQRUNPTkZfQUNUSVZFLCAxMCkpCisJCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIFBJUEVDT05GKGRzaV90cmFucyksCisJCQkJCSAgSTk2NV9QSVBFQ09ORl9BQ1RJVkUsIDEwKSkKIAkJCURSTV9FUlJPUigiRFNJIHRyYW5zY29kZXIgbm90IGVuYWJsZWRcbiIpOwogCX0KIH0KQEAgLTkyMyw2ICs5NTcsOCBAQCBzdGF0aWMgdm9pZAogZ2VuMTFfZHNpX2VuYWJsZV9wb3J0X2FuZF9waHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisKIAkvKiBzdGVwIDRhOiBwb3dlciB1cCBhbGwgbGFuZXMgb2YgdGhlIERESSB1c2VkIGJ5IERTSSAqLwogCWdlbjExX2RzaV9wb3dlcl91cF9sYW5lcyhlbmNvZGVyKTsKIApAQCAtOTQ1LDcgKzk4MSw4IEBAIGdlbjExX2RzaV9lbmFibGVfcG9ydF9hbmRfcGh5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWdlbjExX2RzaV9jb25maWd1cmVfdHJhbnNjb2RlcihlbmNvZGVyLCBwaXBlX2NvbmZpZyk7CiAKIAkvKiBTdGVwIDRsOiBHYXRlIERESSBjbG9ja3MgKi8KLQlnZW4xMV9kc2lfZ2F0ZV9jbG9ja3MoZW5jb2Rlcik7CisJaWYgKElTX0dFTihkZXZfcHJpdiwgMTEpKQorCQlnZW4xMV9kc2lfZ2F0ZV9jbG9ja3MoZW5jb2Rlcik7CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9wb3dlcnVwX3BhbmVsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQpAQCAtMTA0MSw5ICsxMDc4LDggQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2Rpc2FibGVfdHJhbnNjb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJSTkxNV9XUklURShQSVBFQ09ORihkc2lfdHJhbnMpLCB0bXApOwogCiAJCS8qIHdhaXQgZm9yIHRyYW5zY29kZXIgdG8gYmUgZGlzYWJsZWQgKi8KLQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCQkgICAgUElQRUNPTkYoZHNpX3RyYW5zKSwKLQkJCQkJICAgIEk5NjVfUElQRUNPTkZfQUNUSVZFLCAwLCA1MCkpCisJCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9jbGVhcihkZXZfcHJpdiwgUElQRUNPTkYoZHNpX3RyYW5zKSwKKwkJCQkJICAgIEk5NjVfUElQRUNPTkZfQUNUSVZFLCA1MCkpCiAJCQlEUk1fRVJST1IoIkRTSSB0cmFuY29kZXIgbm90IGRpc2FibGVkXG4iKTsKIAl9CiB9CkBAIC0xNDg3LDYgKzE1MjMsMjYgQEAgc3RhdGljIHZvaWQgaWNsX2RwaHlfcGFyYW1faW5pdChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kpCiAJaW50ZWxfZHNpX2xvZ19wYXJhbXMoaW50ZWxfZHNpKTsKIH0KIAorc3RhdGljIHZvaWQgaWNsX2RzaV9hZGRfcHJvcGVydGllcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJdTMyIGFsbG93ZWRfc2NhbGVyczsKKworCWFsbG93ZWRfc2NhbGVycyA9IEJJVChEUk1fTU9ERV9TQ0FMRV9BU1BFQ1QpIHwKKwkJCSAgIEJJVChEUk1fTU9ERV9TQ0FMRV9GVUxMU0NSRUVOKSB8CisJCQkgICBCSVQoRFJNX01PREVfU0NBTEVfQ0VOVEVSKTsKKworCWRybV9jb25uZWN0b3JfYXR0YWNoX3NjYWxpbmdfbW9kZV9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAorCQkJCQkJICAgYWxsb3dlZF9zY2FsZXJzKTsKKworCWNvbm5lY3Rvci0+YmFzZS5zdGF0ZS0+c2NhbGluZ19tb2RlID0gRFJNX01PREVfU0NBTEVfQVNQRUNUOworCisJY29ubmVjdG9yLT5iYXNlLmRpc3BsYXlfaW5mby5wYW5lbF9vcmllbnRhdGlvbiA9CisJCQlpbnRlbF9kc2lfZ2V0X3BhbmVsX29yaWVudGF0aW9uKGNvbm5lY3Rvcik7CisJZHJtX2Nvbm5lY3Rvcl9pbml0X3BhbmVsX29yaWVudGF0aW9uX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCisJCQkJY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlLT5oZGlzcGxheSwKKwkJCQljb25uZWN0b3ItPnBhbmVsLmZpeGVkX21vZGUtPnZkaXNwbGF5KTsKK30KKwogdm9pZCBpY2xfZHNpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKQEAgLTE1ODAsNiArMTYzNiw4IEBAIHZvaWQgaWNsX2RzaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAl9CiAKIAlpY2xfZHBoeV9wYXJhbV9pbml0KGludGVsX2RzaSk7CisKKwlpY2xfZHNpX2FkZF9wcm9wZXJ0aWVzKGludGVsX2Nvbm5lY3Rvcik7CiAJcmV0dXJuOwogCiBlcnI6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYwppbmRleCA5MGNhMTFhLi5kM2ZiNzViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiaW50ZWxfYXRvbWljLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2hkY3AuaCIKICNpbmNsdWRlICJpbnRlbF9zcHJpdGUuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKaW5kZXggMzBiZDRlNy4uZDFmY2RmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCkBAIC0zNSw4ICszNSw5IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogCisjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogI2luY2x1ZGUgImludGVsX2F0b21pY19wbGFuZS5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9wbS5oIgogI2luY2x1ZGUgImludGVsX3Nwcml0ZS5oIgogCkBAIC0xNzYsMzMgKzE3Nyw0OSBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjXwogCW5ld19jcnRjX3N0YXRlLT5kYXRhX3JhdGVbcGxhbmUtPmlkXSA9CiAJCWludGVsX3BsYW5lX2RhdGFfcmF0ZShuZXdfY3J0Y19zdGF0ZSwgbmV3X3BsYW5lX3N0YXRlKTsKIAotCXJldHVybiBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKG9sZF9jcnRjX3N0YXRlLAotCQkJCQkgICAgICAgJm5ld19jcnRjX3N0YXRlLT5iYXNlLAotCQkJCQkgICAgICAgb2xkX3BsYW5lX3N0YXRlLAotCQkJCQkgICAgICAgJm5ld19wbGFuZV9zdGF0ZS0+YmFzZSk7CisJcmV0dXJuIGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMob2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLAorCQkJCQkgICAgICAgb2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUpOwogfQogCi1zdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlKQorc3RhdGljIHN0cnVjdCBpbnRlbF9jcnRjICoKK2dldF9jcnRjX2Zyb21fc3RhdGVzKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLAorCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlKQogewotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG5ld19wbGFuZV9zdGF0ZS0+c3RhdGU7Ci0JY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlID0KLQkJZHJtX2F0b21pY19nZXRfb2xkX3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gbmV3X3BsYW5lX3N0YXRlLT5jcnRjID86IG9sZF9wbGFuZV9zdGF0ZS0+Y3J0YzsKLQljb25zdCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CisJaWYgKG5ld19wbGFuZV9zdGF0ZS0+YmFzZS5jcnRjKQorCQlyZXR1cm4gdG9faW50ZWxfY3J0YyhuZXdfcGxhbmVfc3RhdGUtPmJhc2UuY3J0Yyk7CiAKLQluZXdfcGxhbmVfc3RhdGUtPnZpc2libGUgPSBmYWxzZTsKKwlpZiAob2xkX3BsYW5lX3N0YXRlLT5iYXNlLmNydGMpCisJCXJldHVybiB0b19pbnRlbF9jcnRjKG9sZF9wbGFuZV9zdGF0ZS0+YmFzZS5jcnRjKTsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpfcGxhbmUsCisJCQkJICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKl9uZXdfcGxhbmVfc3RhdGUpCit7CisJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKF9wbGFuZSk7CisJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPQorCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoX25ld19wbGFuZV9zdGF0ZS0+c3RhdGUpOworCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlID0KKwkJdG9faW50ZWxfcGxhbmVfc3RhdGUoX25ld19wbGFuZV9zdGF0ZSk7CisJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0KKwkJZ2V0X2NydGNfZnJvbV9zdGF0ZXMob2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUpOworCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CisKKwluZXdfcGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOwogCWlmICghY3J0YykKIAkJcmV0dXJuIDA7CiAKLQlvbGRfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKLQluZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlvbGRfY3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCW5ld19jcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAKLQlyZXR1cm4gaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUodG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSksCi0JCQkJCQkgICB0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKSwKLQkJCQkJCSAgIHRvX2ludGVsX3BsYW5lX3N0YXRlKG9sZF9wbGFuZV9zdGF0ZSksCi0JCQkJCQkgICB0b19pbnRlbF9wbGFuZV9zdGF0ZShuZXdfcGxhbmVfc3RhdGUpKTsKKwlyZXR1cm4gaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUob2xkX2NydGNfc3RhdGUsCisJCQkJCQkgICBuZXdfY3J0Y19zdGF0ZSwKKwkJCQkJCSAgIG9sZF9wbGFuZV9zdGF0ZSwKKwkJCQkJCSAgIG5ld19wbGFuZV9zdGF0ZSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfcGxhbmUgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmgKaW5kZXggMTQzN2E4Ny4uY2I3ZWY0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5oCkBAIC04LDcgKzgsNiBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAotc3RydWN0IGRybV9jcnRjX3N0YXRlOwogc3RydWN0IGRybV9wbGFuZTsKIHN0cnVjdCBkcm1fcHJvcGVydHk7CiBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlOwpAQCAtNDMsOCArNDIsOCBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjXwogCQkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSwKIAkJCQkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9zdGF0ZSk7CiBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCi0JCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLAotCQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CisJCQkJICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwogCiAjZW5kaWYgLyogX19JTlRFTF9BVE9NSUNfUExBTkVfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMKaW5kZXggODQwZGFmZjEyLi5kZGNjY2Y0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdWRpby5jCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2F1ZGlvLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2xwZV9hdWRpby5oIgogCiAvKioKQEAgLTcyLDYgKzcyLDEzIEBAIHN0cnVjdCBkcF9hdWRfbl9tIHsKIAl1MTYgbjsKIH07CiAKK3N0cnVjdCBoZG1pX2F1ZF9uY3RzIHsKKwlpbnQgc2FtcGxlX3JhdGU7CisJaW50IGNsb2NrOworCWludCBuOworCWludCBjdHM7Cit9OworCiAvKiBWYWx1ZXMgYWNjb3JkaW5nIHRvIERQIDEuNCBUYWJsZSAyLTEwNCAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcF9hdWRfbl9tIGRwX2F1ZF9uX21bXSA9IHsKIAl7IDMyMDAwLCBMQ18xNjJNLCAxMDI0LCAxMDEyNSB9LApAQCAtMTQ4LDEyICsxNTUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICNkZWZpbmUgVE1EU181OTRNIDU5NDAwMAogI2RlZmluZSBUTURTXzU5M00gNTkzNDA3CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgewotCWludCBzYW1wbGVfcmF0ZTsKLQlpbnQgY2xvY2s7Ci0JaW50IG47Ci0JaW50IGN0czsKLX0gaGRtaV9hdWRfbmN0c1tdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBoZG1pX2F1ZF9uY3RzIGhkbWlfYXVkX25jdHNfMjRicHBbXSA9IHsKIAl7IDMyMDAwLCBUTURTXzI5Nk0sIDU4MjQsIDQyMTg3NSB9LAogCXsgMzIwMDAsIFRNRFNfMjk3TSwgMzA3MiwgMjIyNzUwIH0sCiAJeyAzMjAwMCwgVE1EU181OTNNLCA1ODI0LCA4NDM3NTAgfSwKQEAgLTE4NCw2ICsxODYsNDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAJeyAxOTIwMDAsIFRNRFNfNTk0TSwgMjQ1NzYsIDU5NDAwMCB9LAogfTsKIAorLyogQXBwZW5kaXggQyAtIE4gJiBDVFMgdmFsdWVzIGZvciBkZWVwIGNvbG9yIGZyb20gSERNSSAyLjAgc3BlYyovCisvKiBIRE1JIE4vQ1RTIHRhYmxlIGZvciAxMCBiaXQgZGVlcCBjb2xvcigzMCBicHApKi8KKyNkZWZpbmUgVE1EU18zNzFNIDM3MTI1MAorI2RlZmluZSBUTURTXzM3ME0gMzcwODc4CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaGRtaV9hdWRfbmN0cyBoZG1pX2F1ZF9uY3RzXzMwYnBwW10gPSB7CisJeyAzMjAwMCwgVE1EU18zNzBNLCA1ODI0LCA1MjczNDQgfSwKKwl7IDMyMDAwLCBUTURTXzM3MU0sIDYxNDQsIDU1Njg3NSB9LAorCXsgNDQxMDAsIFRNRFNfMzcwTSwgODkxOCwgNTg1OTM4IH0sCisJeyA0NDEwMCwgVE1EU18zNzFNLCA0NzA0LCAzMDkzNzUgfSwKKwl7IDg4MjAwLCBUTURTXzM3ME0sIDE3ODM2LCA1ODU5MzggfSwKKwl7IDg4MjAwLCBUTURTXzM3MU0sIDk0MDgsIDMwOTM3NSB9LAorCXsgMTc2NDAwLCBUTURTXzM3ME0sIDM1NjcyLCA1ODU5MzggfSwKKwl7IDE3NjQwMCwgVE1EU18zNzFNLCAxODgxNiwgMzA5Mzc1IH0sCisJeyA0ODAwMCwgVE1EU18zNzBNLCAxMTY0OCwgNzAzMTI1IH0sCisJeyA0ODAwMCwgVE1EU18zNzFNLCA1MTIwLCAzMDkzNzUgfSwKKwl7IDk2MDAwLCBUTURTXzM3ME0sIDIzMjk2LCA3MDMxMjUgfSwKKwl7IDk2MDAwLCBUTURTXzM3MU0sIDEwMjQwLCAzMDkzNzUgfSwKKwl7IDE5MjAwMCwgVE1EU18zNzBNLCA0NjU5MiwgNzAzMTI1IH0sCisJeyAxOTIwMDAsIFRNRFNfMzcxTSwgMjA0ODAsIDMwOTM3NSB9LAorfTsKKworLyogSERNSSBOL0NUUyB0YWJsZSBmb3IgMTIgYml0IGRlZXAgY29sb3IoMzYgYnBwKSovCisjZGVmaW5lIFRNRFNfNDQ1XzVNIDQ0NTUwMAorI2RlZmluZSBUTURTXzQ0NU0gNDQ1MDU0CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaGRtaV9hdWRfbmN0cyBoZG1pX2F1ZF9uY3RzXzM2YnBwW10gPSB7CisJeyAzMjAwMCwgVE1EU180NDVNLCA1ODI0LCA2MzI4MTMgfSwKKwl7IDMyMDAwLCBUTURTXzQ0NV81TSwgNDA5NiwgNDQ1NTAwIH0sCisJeyA0NDEwMCwgVE1EU180NDVNLCA4OTE4LCA3MDMxMjUgfSwKKwl7IDQ0MTAwLCBUTURTXzQ0NV81TSwgNDcwNCwgMzcxMjUwIH0sCisJeyA4ODIwMCwgVE1EU180NDVNLCAxNzgzNiwgNzAzMTI1IH0sCisJeyA4ODIwMCwgVE1EU180NDVfNU0sIDk0MDgsIDM3MTI1MCB9LAorCXsgMTc2NDAwLCBUTURTXzQ0NU0sIDM1NjcyLCA3MDMxMjUgfSwKKwl7IDE3NjQwMCwgVE1EU180NDVfNU0sIDE4ODE2LCAzNzEyNTAgfSwKKwl7IDQ4MDAwLCBUTURTXzQ0NU0sIDU4MjQsIDQyMTg3NSB9LAorCXsgNDgwMDAsIFRNRFNfNDQ1XzVNLCA1MTIwLCAzNzEyNTAgfSwKKwl7IDk2MDAwLCBUTURTXzQ0NU0sIDExNjQ4LCA0MjE4NzUgfSwKKwl7IDk2MDAwLCBUTURTXzQ0NV81TSwgMTAyNDAsIDM3MTI1MCB9LAorCXsgMTkyMDAwLCBUTURTXzQ0NU0sIDIzMjk2LCA0MjE4NzUgfSwKKwl7IDE5MjAwMCwgVE1EU180NDVfNU0sIDIwNDgwLCAzNzEyNTAgfSwKK307CisKIC8qIGdldCBBVURfQ09ORklHX1BJWEVMX0NMT0NLX0hETUlfKiB2YWx1ZSBmb3IgbW9kZSAqLwogc3RhdGljIHUzMiBhdWRpb19jb25maWdfaGRtaV9waXhlbF9jbG9jayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKQEAgLTIxMiwxNCArMjU3LDI0IEBAIHN0YXRpYyB1MzIgYXVkaW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2soY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhCiBzdGF0aWMgaW50IGF1ZGlvX2NvbmZpZ19oZG1pX2dldF9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgIGludCByYXRlKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKLQlpbnQgaTsKKwljb25zdCBzdHJ1Y3QgaGRtaV9hdWRfbmN0cyAqaGRtaV9uY3RzX3RhYmxlOworCWludCBpLCBzaXplOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGRtaV9hdWRfbmN0cyk7IGkrKykgewotCQlpZiAocmF0ZSA9PSBoZG1pX2F1ZF9uY3RzW2ldLnNhbXBsZV9yYXRlICYmCi0JCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrID09IGhkbWlfYXVkX25jdHNbaV0uY2xvY2spIHsKLQkJCXJldHVybiBoZG1pX2F1ZF9uY3RzW2ldLm47CisJaWYgKGNydGNfc3RhdGUtPnBpcGVfYnBwID09IDM2KSB7CisJCWhkbWlfbmN0c190YWJsZSA9IGhkbWlfYXVkX25jdHNfMzZicHA7CisJCXNpemUgPSBBUlJBWV9TSVpFKGhkbWlfYXVkX25jdHNfMzZicHApOworCX0gZWxzZSBpZiAoY3J0Y19zdGF0ZS0+cGlwZV9icHAgPT0gMzApIHsKKwkJaGRtaV9uY3RzX3RhYmxlID0gaGRtaV9hdWRfbmN0c18zMGJwcDsKKwkJc2l6ZSA9IEFSUkFZX1NJWkUoaGRtaV9hdWRfbmN0c18zMGJwcCk7CisJfSBlbHNlIHsKKwkJaGRtaV9uY3RzX3RhYmxlID0gaGRtaV9hdWRfbmN0c18yNGJwcDsKKwkJc2l6ZSA9IEFSUkFZX1NJWkUoaGRtaV9hdWRfbmN0c18yNGJwcCk7CisJfQorCisJZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgeworCQlpZiAocmF0ZSA9PSBoZG1pX25jdHNfdGFibGVbaV0uc2FtcGxlX3JhdGUgJiYKKwkJICAgIGNydGNfc3RhdGUtPnBvcnRfY2xvY2sgPT0gaGRtaV9uY3RzX3RhYmxlW2ldLmNsb2NrKSB7CisJCQlyZXR1cm4gaGRtaV9uY3RzX3RhYmxlW2ldLm47CiAJCX0KIAl9CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCmluZGV4IDNlZjRlOWYuLmVmYjM5ZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KIAorI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZGlzcGxheS5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZ21idXMuaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCkBAIC0xMzQyLDE2ICsxMzQzLDEzIEBAIHN0YXRpYyBjb25zdCB1OCBjbnBfZGRjX3Bpbl9tYXBbXSA9IHsKIHN0YXRpYyBjb25zdCB1OCBpY3BfZGRjX3Bpbl9tYXBbXSA9IHsKIAlbSUNMX0REQ19CVVNfRERJX0FdID0gR01CVVNfUElOXzFfQlhULAogCVtJQ0xfRERDX0JVU19ERElfQl0gPSBHTUJVU19QSU5fMl9CWFQsCisJW1RHTF9ERENfQlVTX0RESV9DXSA9IEdNQlVTX1BJTl8zX0JYVCwKIAlbSUNMX0REQ19CVVNfUE9SVF8xXSA9IEdNQlVTX1BJTl85X1RDMV9JQ1AsCiAJW0lDTF9ERENfQlVTX1BPUlRfMl0gPSBHTUJVU19QSU5fMTBfVEMyX0lDUCwKIAlbSUNMX0REQ19CVVNfUE9SVF8zXSA9IEdNQlVTX1BJTl8xMV9UQzNfSUNQLAogCVtJQ0xfRERDX0JVU19QT1JUXzRdID0gR01CVVNfUElOXzEyX1RDNF9JQ1AsCi19OwotCi1zdGF0aWMgY29uc3QgdTggbWNjX2RkY19waW5fbWFwW10gPSB7Ci0JW01DQ19ERENfQlVTX0RESV9BXSA9IEdNQlVTX1BJTl8xX0JYVCwKLQlbTUNDX0REQ19CVVNfRERJX0JdID0gR01CVVNfUElOXzJfQlhULAotCVtNQ0NfRERDX0JVU19ERElfQ10gPSBHTUJVU19QSU5fOV9UQzFfSUNQLAorCVtUR0xfRERDX0JVU19QT1JUXzVdID0gR01CVVNfUElOXzEzX1RDNV9UR1AsCisJW1RHTF9ERENfQlVTX1BPUlRfNl0gPSBHTUJVU19QSU5fMTRfVEM2X1RHUCwKIH07CiAKIHN0YXRpYyB1OCBtYXBfZGRjX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IHZidF9waW4pCkBAIC0xMzU5LDEwICsxMzU3LDcgQEAgc3RhdGljIHU4IG1hcF9kZGNfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggdmJ0X3BpbikKIAljb25zdCB1OCAqZGRjX3Bpbl9tYXA7CiAJaW50IG5fZW50cmllczsKIAotCWlmIChIQVNfUENIX01DQyhkZXZfcHJpdikpIHsKLQkJZGRjX3Bpbl9tYXAgPSBtY2NfZGRjX3Bpbl9tYXA7Ci0JCW5fZW50cmllcyA9IEFSUkFZX1NJWkUobWNjX2RkY19waW5fbWFwKTsKLQl9IGVsc2UgaWYgKEhBU19QQ0hfSUNQKGRldl9wcml2KSkgeworCWlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX0lDUCkgewogCQlkZGNfcGluX21hcCA9IGljcF9kZGNfcGluX21hcDsKIAkJbl9lbnRyaWVzID0gQVJSQVlfU0laRShpY3BfZGRjX3Bpbl9tYXApOwogCX0gZWxzZSBpZiAoSEFTX1BDSF9DTlAoZGV2X3ByaXYpKSB7CkBAIC0xNjY4LDYgKzE2NjMsOSBAQCBwYXJzZV9nZW5lcmFsX2RlZmluaXRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJaWYgKCFjaGlsZC0+ZGV2aWNlX3R5cGUpCiAJCQljb250aW51ZTsKIAorCQlEUk1fREVCVUdfS01TKCJGb3VuZCBWQlQgY2hpbGQgZGV2aWNlIHdpdGggdHlwZSAweCV4XG4iLAorCQkJICAgICAgY2hpbGQtPmRldmljZV90eXBlKTsKKwogCQkvKgogCQkgKiBDb3B5IGFzIG11Y2ggYXMgd2Uga25vdyAoc2l6ZW9mKSBhbmQgaXMgYXZhaWxhYmxlCiAJCSAqIChjaGlsZF9kZXZfc2l6ZSkgb2YgdGhlIGNoaWxkIGRldmljZS4gQWNjZXNzaW5nIHRoZSBkYXRhIG11c3QKQEAgLTE3MzAsMTIgKzE3MjgsMTMgQEAgaW5pdF92YnRfbWlzc2luZ19kZWZhdWx0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZm9yIChwb3J0ID0gUE9SVF9BOyBwb3J0IDwgSTkxNV9NQVhfUE9SVFM7IHBvcnQrKykgewogCQlzdHJ1Y3QgZGRpX3ZidF9wb3J0X2luZm8gKmluZm8gPQogCQkJJmRldl9wcml2LT52YnQuZGRpX3BvcnRfaW5mb1twb3J0XTsKKwkJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCiAJCS8qCiAJCSAqIFZCVCBoYXMgdGhlIFR5cGVDIG1vZGUgKG5hdGl2ZSxUQlQvVVNCKSBhbmQgd2UgZG9uJ3Qgd2FudAogCQkgKiB0byBkZXRlY3QgaXQuCiAJCSAqLwotCQlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpCisJCWlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCiAJCQljb250aW51ZTsKIAogCQlpbmZvLT5zdXBwb3J0c19kdmkgPSAocG9ydCAhPSBQT1JUX0EgJiYgcG9ydCAhPSBQT1JUX0UpOwpAQCAtMTg4OCwxMCArMTg4NywxMCBAQCB2b2lkIGludGVsX2Jpb3NfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB9CiAKIC8qKgotICogaW50ZWxfYmlvc19jbGVhbnVwIC0gRnJlZSBhbnkgcmVzb3VyY2VzIGFsbG9jYXRlZCBieSBpbnRlbF9iaW9zX2luaXQoKQorICogaW50ZWxfYmlvc19kcml2ZXJfcmVtb3ZlIC0gRnJlZSBhbnkgcmVzb3VyY2VzIGFsbG9jYXRlZCBieSBpbnRlbF9iaW9zX2luaXQoKQogICogQGRldl9wcml2OiBpOTE1IGRldmljZSBpbnN0YW5jZQogICovCi12b2lkIGludGVsX2Jpb3NfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit2b2lkIGludGVsX2Jpb3NfZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJa2ZyZWUoZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYpOwogCWRldl9wcml2LT52YnQuY2hpbGRfZGV2ID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmgKaW5kZXggNGU0MmNmYS4uNDk2OTE4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmgKQEAgLTQyLDYgKzQyLDcgQEAgZW51bSBpbnRlbF9iYWNrbGlnaHRfdHlwZSB7CiAJSU5URUxfQkFDS0xJR0hUX0RJU1BMQVlfRERJLAogCUlOVEVMX0JBQ0tMSUdIVF9EU0lfRENTLAogCUlOVEVMX0JBQ0tMSUdIVF9QQU5FTF9EUklWRVJfSU5URVJGQUNFLAorCUlOVEVMX0JBQ0tMSUdIVF9WRVNBX0VEUF9BVVhfSU5URVJGQUNFLAogfTsKIAogc3RydWN0IGVkcF9wb3dlcl9zZXEgewpAQCAtMjI3LDcgKzIyOCw3IEBAIHN0cnVjdCBtaXBpX3Bwc19kYXRhIHsKIH0gX19wYWNrZWQ7CiAKIHZvaWQgaW50ZWxfYmlvc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX2Jpb3NfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpbnRlbF9iaW9zX2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGJvb2wgaW50ZWxfYmlvc19pc192YWxpZF92YnQoY29uc3Qgdm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSk7CiBib29sIGludGVsX2Jpb3NfaXNfdHZfcHJlc2VudChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogYm9vbCBpbnRlbF9iaW9zX2lzX2x2ZHNfcHJlc2VudChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4ICppMmNfcGluKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuYwppbmRleCA3YjkwOGUxLi42ODg4NThlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jCkBAIC02LDcgKzYsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiaW50ZWxfYncuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfc2lkZWJhbmQuaCIKIAogLyogUGFyYW1ldGVycyBmb3IgUWNsayBHZXlzZXJ2aWxsZSAoUUdWKSAqLwpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgaW50IGljbF9wY29kZV9yZWFkX3Fndl9wb2ludF9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJIHN0cnVjdCBpbnRlbF9xZ3ZfcG9pbnQgKnNwLAogCQkJCQkgaW50IHBvaW50KQogewotCXUzMiB2YWwgPSAwLCB2YWwyOworCXUzMiB2YWwgPSAwLCB2YWwyID0gMDsKIAlpbnQgcmV0OwogCiAJcmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfcmVhZChkZXZfcHJpdiwKQEAgLTMyMiw2ICszMjIsMjAgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9id19kYXRhX3JhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJldHVybiBkYXRhX3JhdGU7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfYndfc3RhdGUgKgoraW50ZWxfYXRvbWljX2dldF9id19zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJc3RydWN0IGRybV9wcml2YXRlX3N0YXRlICpid19zdGF0ZTsKKworCWJ3X3N0YXRlID0gZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUoJnN0YXRlLT5iYXNlLAorCQkJCQkJICAgICZkZXZfcHJpdi0+Yndfb2JqKTsKKwlpZiAoSVNfRVJSKGJ3X3N0YXRlKSkKKwkJcmV0dXJuIEVSUl9DQVNUKGJ3X3N0YXRlKTsKKworCXJldHVybiB0b19pbnRlbF9id19zdGF0ZShid19zdGF0ZSk7Cit9CisKIGludCBpbnRlbF9id19hdG9taWNfY2hlY2soc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5oCmluZGV4IGU5ZDljNmQuLjlkYjEwYWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmgKQEAgLTgsNyArOCw2IEBACiAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF9kaXNwbGF5LmgiCiAKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwpAQCAtMjQsMjAgKzIzLDYgQEAgc3RydWN0IGludGVsX2J3X3N0YXRlIHsKIAogI2RlZmluZSB0b19pbnRlbF9id19zdGF0ZSh4KSBjb250YWluZXJfb2YoKHgpLCBzdHJ1Y3QgaW50ZWxfYndfc3RhdGUsIGJhc2UpCiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2J3X3N0YXRlICoKLWludGVsX2F0b21pY19nZXRfYndfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwotCXN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSAqYndfc3RhdGU7Ci0KLQlid19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRlKCZzdGF0ZS0+YmFzZSwKLQkJCQkJCSAgICAmZGV2X3ByaXYtPmJ3X29iaik7Ci0JaWYgKElTX0VSUihid19zdGF0ZSkpCi0JCXJldHVybiBFUlJfQ0FTVChid19zdGF0ZSk7Ci0KLQlyZXR1cm4gdG9faW50ZWxfYndfc3RhdGUoYndfc3RhdGUpOwotfQotCiB2b2lkIGludGVsX2J3X2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGludCBpbnRlbF9id19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBpbnQgaW50ZWxfYndfYXRvbWljX2NoZWNrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYwppbmRleCAwZDE5YmJkLi5kMGJjNDJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jCkBAIC0yMiw3ICsyMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgImludGVsX2NkY2xrLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX3NpZGViYW5kLmgiCiAKIC8qKgpAQCAtNTQ1LDEwICs1NDUsMTAgQEAgc3RhdGljIHZvaWQgdmx2X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJLyogVGhlcmUgYXJlIGNhc2VzIHdoZXJlIHdlIGNhbiBlbmQgdXAgaGVyZSB3aXRoIHBvd2VyIGRvbWFpbnMKIAkgKiBvZmYgYW5kIGEgQ0RDTEsgZnJlcXVlbmN5IG90aGVyIHRoYW4gdGhlIG1pbmltdW0sIGxpa2Ugd2hlbgogCSAqIGlzc3VpbmcgYSBtb2Rlc2V0IHdpdGhvdXQgYWN0dWFsbHkgY2hhbmdpbmcgYW55IGRpc3BsYXkgYWZ0ZXIKLQkgKiBhIHN5c3RlbSBzdXNwZW5kLiAgU28gZ3JhYiB0aGUgUElQRS1BIGRvbWFpbiwgd2hpY2ggY292ZXJzCisJICogYSBzeXN0ZW0gc3VzcGVuZC4gIFNvIGdyYWIgdGhlIGRpc3BsYXkgY29yZSBkb21haW4sIHdoaWNoIGNvdmVycwogCSAqIHRoZSBIVyBibG9ja3MgbmVlZGVkIGZvciB0aGUgZm9sbG93aW5nIHByb2dyYW1taW5nLgogCSAqLwotCXdha2VyZWYgPSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX1BJUEVfQSk7CisJd2FrZXJlZiA9IGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fRElTUExBWV9DT1JFKTsKIAogCXZsdl9pb3NmX3NiX2dldChkZXZfcHJpdiwKIAkJCUJJVChWTFZfSU9TRl9TQl9DQ0spIHwKQEAgLTYwNiw3ICs2MDYsNyBAQCBzdGF0aWMgdm9pZCB2bHZfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCXZsdl9wcm9ncmFtX3BmaV9jcmVkaXRzKGRldl9wcml2KTsKIAotCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fUElQRV9BLCB3YWtlcmVmKTsKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0RJU1BMQVlfQ09SRSwgd2FrZXJlZik7CiB9CiAKIHN0YXRpYyB2b2lkIGNodl9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtNjMxLDEwICs2MzEsMTAgQEAgc3RhdGljIHZvaWQgY2h2X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJLyogVGhlcmUgYXJlIGNhc2VzIHdoZXJlIHdlIGNhbiBlbmQgdXAgaGVyZSB3aXRoIHBvd2VyIGRvbWFpbnMKIAkgKiBvZmYgYW5kIGEgQ0RDTEsgZnJlcXVlbmN5IG90aGVyIHRoYW4gdGhlIG1pbmltdW0sIGxpa2Ugd2hlbgogCSAqIGlzc3VpbmcgYSBtb2Rlc2V0IHdpdGhvdXQgYWN0dWFsbHkgY2hhbmdpbmcgYW55IGRpc3BsYXkgYWZ0ZXIKLQkgKiBhIHN5c3RlbSBzdXNwZW5kLiAgU28gZ3JhYiB0aGUgUElQRS1BIGRvbWFpbiwgd2hpY2ggY292ZXJzCisJICogYSBzeXN0ZW0gc3VzcGVuZC4gIFNvIGdyYWIgdGhlIGRpc3BsYXkgY29yZSBkb21haW4sIHdoaWNoIGNvdmVycwogCSAqIHRoZSBIVyBibG9ja3MgbmVlZGVkIGZvciB0aGUgZm9sbG93aW5nIHByb2dyYW1taW5nLgogCSAqLwotCXdha2VyZWYgPSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX1BJUEVfQSk7CisJd2FrZXJlZiA9IGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fRElTUExBWV9DT1JFKTsKIAogCXZsdl9wdW5pdF9nZXQoZGV2X3ByaXYpOwogCXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2LCBQVU5JVF9SRUdfRFNQU1NQTSk7CkBAIC02NTMsNyArNjUzLDcgQEAgc3RhdGljIHZvaWQgY2h2X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAl2bHZfcHJvZ3JhbV9wZmlfY3JlZGl0cyhkZXZfcHJpdik7CiAKLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX1BJUEVfQSwgd2FrZXJlZik7CisJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9ESVNQTEFZX0NPUkUsIHdha2VyZWYpOwogfQogCiBzdGF0aWMgaW50IGJkd19jYWxjX2NkY2xrKGludCBtaW5fY2RjbGspCkBAIC05NjksOSArOTY5LDcgQEAgc3RhdGljIHZvaWQgc2tsX2RwbGwwX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2Y28pCiAKIAlJOTE1X1dSSVRFKExDUExMMV9DVEwsIEk5MTVfUkVBRChMQ1BMTDFfQ1RMKSB8IExDUExMX1BMTF9FTkFCTEUpOwogCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBMQ1BMTDFfQ1RMLCBMQ1BMTF9QTExfTE9DSywgTENQTExfUExMX0xPQ0ssCi0JCQkJICAgIDUpKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIExDUExMMV9DVEwsIExDUExMX1BMTF9MT0NLLCA1KSkKIAkJRFJNX0VSUk9SKCJEUExMMCBub3QgbG9ja2VkXG4iKTsKIAogCWRldl9wcml2LT5jZGNsay5ody52Y28gPSB2Y287CkBAIC05ODMsOSArOTgxLDcgQEAgc3RhdGljIHZvaWQgc2tsX2RwbGwwX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2Y28pCiBzdGF0aWMgdm9pZCBza2xfZHBsbDBfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJSTkxNV9XUklURShMQ1BMTDFfQ1RMLCBJOTE1X1JFQUQoTENQTEwxX0NUTCkgJiB+TENQTExfUExMX0VOQUJMRSk7Ci0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBMQ1BMTDFfQ1RMLCBMQ1BMTF9QTExfTE9DSywgMCwKLQkJCQkgICAgMSkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2LCBMQ1BMTDFfQ1RMLCBMQ1BMTF9QTExfTE9DSywgMSkpCiAJCURSTV9FUlJPUigiQ291bGRuJ3QgZGlzYWJsZSBEUExMMFxuIik7CiAKIAlkZXZfcHJpdi0+Y2RjbGsuaHcudmNvID0gMDsKQEAgLTEzMDksOSArMTMwNSw4IEBAIHN0YXRpYyB2b2lkIGJ4dF9kZV9wbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJSTkxNV9XUklURShCWFRfREVfUExMX0VOQUJMRSwgMCk7CiAKIAkvKiBUaW1lb3V0IDIwMHVzICovCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBCWFRfREVfUExMX0VOQUJMRSwgQlhUX0RFX1BMTF9MT0NLLCAwLAotCQkJCSAgICAxKSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsCisJCQkJICAgIEJYVF9ERV9QTExfRU5BQkxFLCBCWFRfREVfUExMX0xPQ0ssIDEpKQogCQlEUk1fRVJST1IoInRpbWVvdXQgd2FpdGluZyBmb3IgREUgUExMIHVubG9ja1xuIik7CiAKIAlkZXZfcHJpdi0+Y2RjbGsuaHcudmNvID0gMDsKQEAgLTEzMzAsMTEgKzEzMjUsOCBAQCBzdGF0aWMgdm9pZCBieHRfZGVfcGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2Y28pCiAJSTkxNV9XUklURShCWFRfREVfUExMX0VOQUJMRSwgQlhUX0RFX1BMTF9QTExfRU5BQkxFKTsKIAogCS8qIFRpbWVvdXQgMjAwdXMgKi8KLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIEJYVF9ERV9QTExfRU5BQkxFLAotCQkJCSAgICBCWFRfREVfUExMX0xPQ0ssCi0JCQkJICAgIEJYVF9ERV9QTExfTE9DSywKLQkJCQkgICAgMSkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwKKwkJCQkgIEJYVF9ERV9QTExfRU5BQkxFLCBCWFRfREVfUExMX0xPQ0ssIDEpKQogCQlEUk1fRVJST1IoInRpbWVvdXQgd2FpdGluZyBmb3IgREUgUExMIGxvY2tcbiIpOwogCiAJZGV2X3ByaXYtPmNkY2xrLmh3LnZjbyA9IHZjbzsKQEAgLTE3NTYsOSArMTc0OCwxMCBAQCBzdGF0aWMgdm9pZCBjbmxfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgaW50IGljbF9jYWxjX2NkY2xrKGludCBtaW5fY2RjbGssIHVuc2lnbmVkIGludCByZWYpCiB7Ci0JaW50IHJhbmdlc18yNFtdID0geyAzMTIwMDAsIDU1MjAwMCwgNjQ4MDAwIH07Ci0JaW50IHJhbmdlc18xOV8zOFtdID0geyAzMDcyMDAsIDU1NjgwMCwgNjUyODAwIH07Ci0JaW50ICpyYW5nZXM7CisJc3RhdGljIGNvbnN0IGludCByYW5nZXNfMjRbXSA9IHsgMTgwMDAwLCAxOTIwMDAsIDMxMjAwMCwgNTUyMDAwLCA2NDgwMDAgfTsKKwlzdGF0aWMgY29uc3QgaW50IHJhbmdlc18xOV8zOFtdID0geyAxNzI4MDAsIDE5MjAwMCwgMzA3MjAwLCA1NTY4MDAsIDY1MjgwMCB9OworCWNvbnN0IGludCAqcmFuZ2VzOworCWludCBsZW4sIGk7CiAKIAlzd2l0Y2ggKHJlZikgewogCWRlZmF1bHQ6CkBAIC0xNzY2LDE5ICsxNzU5LDIyIEBAIHN0YXRpYyBpbnQgaWNsX2NhbGNfY2RjbGsoaW50IG1pbl9jZGNsaywgdW5zaWduZWQgaW50IHJlZikKIAkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSAyNDAwMDoKIAkJcmFuZ2VzID0gcmFuZ2VzXzI0OworCQlsZW4gPSBBUlJBWV9TSVpFKHJhbmdlc18yNCk7CiAJCWJyZWFrOwogCWNhc2UgMTkyMDA6CiAJY2FzZSAzODQwMDoKIAkJcmFuZ2VzID0gcmFuZ2VzXzE5XzM4OworCQlsZW4gPSBBUlJBWV9TSVpFKHJhbmdlc18xOV8zOCk7CiAJCWJyZWFrOwogCX0KIAotCWlmIChtaW5fY2RjbGsgPiByYW5nZXNbMV0pCi0JCXJldHVybiByYW5nZXNbMl07Ci0JZWxzZSBpZiAobWluX2NkY2xrID4gcmFuZ2VzWzBdKQotCQlyZXR1cm4gcmFuZ2VzWzFdOwotCWVsc2UKLQkJcmV0dXJuIHJhbmdlc1swXTsKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKwkJaWYgKG1pbl9jZGNsayA8PSByYW5nZXNbaV0pCisJCQlyZXR1cm4gcmFuZ2VzW2ldOworCX0KKworCVdBUk5fT04obWluX2NkY2xrID4gcmFuZ2VzW2xlbiAtIDFdKTsKKwlyZXR1cm4gcmFuZ2VzW2xlbiAtIDFdOwogfQogCiBzdGF0aWMgaW50IGljbF9jYWxjX2NkY2xrX3BsbF92Y28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgY2RjbGspCkBAIC0xNzkyLDE2ICsxNzg4LDI0IEBAIHN0YXRpYyBpbnQgaWNsX2NhbGNfY2RjbGtfcGxsX3ZjbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBjZGNsaykKIAlkZWZhdWx0OgogCQlNSVNTSU5HX0NBU0UoY2RjbGspOwogCQkvKiBmYWxsIHRocm91Z2ggKi8KKwljYXNlIDE3MjgwMDoKIAljYXNlIDMwNzIwMDoKIAljYXNlIDU1NjgwMDoKIAljYXNlIDY1MjgwMDoKIAkJV0FSTl9PTihkZXZfcHJpdi0+Y2RjbGsuaHcucmVmICE9IDE5MjAwICYmCiAJCQlkZXZfcHJpdi0+Y2RjbGsuaHcucmVmICE9IDM4NDAwKTsKIAkJYnJlYWs7CisJY2FzZSAxODAwMDA6CiAJY2FzZSAzMTIwMDA6CiAJY2FzZSA1NTIwMDA6CiAJY2FzZSA2NDgwMDA6CiAJCVdBUk5fT04oZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiAhPSAyNDAwMCk7CisJCWJyZWFrOworCWNhc2UgMTkyMDAwOgorCQlXQVJOX09OKGRldl9wcml2LT5jZGNsay5ody5yZWYgIT0gMTkyMDAgJiYKKwkJCWRldl9wcml2LT5jZGNsay5ody5yZWYgIT0gMzg0MDAgJiYKKwkJCWRldl9wcml2LT5jZGNsay5ody5yZWYgIT0gMjQwMDApOworCQlicmVhazsKIAl9CiAKIAlyYXRpbyA9IGNkY2xrIC8gKGRldl9wcml2LT5jZGNsay5ody5yZWYgLyAyKTsKQEAgLTE4NTQsMTQgKzE4NTgsMjMgQEAgc3RhdGljIHZvaWQgaWNsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJZGV2X3ByaXYtPmNkY2xrLmh3LnZvbHRhZ2VfbGV2ZWwgPSBjZGNsa19zdGF0ZS0+dm9sdGFnZV9sZXZlbDsKIH0KIAotc3RhdGljIHU4IGljbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoaW50IGNkY2xrKQorc3RhdGljIHU4IGljbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgY2RjbGspCiB7Ci0JaWYgKGNkY2xrID4gNTU2ODAwKQotCQlyZXR1cm4gMjsKLQllbHNlIGlmIChjZGNsayA+IDMxMjAwMCkKLQkJcmV0dXJuIDE7Ci0JZWxzZQotCQlyZXR1cm4gMDsKKwlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpKSB7CisJCWlmIChjZGNsayA+IDMxMjAwMCkKKwkJCXJldHVybiAyOworCQllbHNlIGlmIChjZGNsayA+IDE4MDAwMCkKKwkJCXJldHVybiAxOworCQllbHNlCisJCQlyZXR1cm4gMDsKKwl9IGVsc2UgeworCQlpZiAoY2RjbGsgPiA1NTY4MDApCisJCQlyZXR1cm4gMjsKKwkJZWxzZSBpZiAoY2RjbGsgPiAzMTIwMDApCisJCQlyZXR1cm4gMTsKKwkJZWxzZQorCQkJcmV0dXJuIDA7CisJfQogfQogCiBzdGF0aWMgdm9pZCBpY2xfZ2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTE5MTIsNyArMTkyNSw3IEBAIHN0YXRpYyB2b2lkIGljbF9nZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqIGF0IGxlYXN0IHdoYXQgdGhlIENEQ0xLIGZyZXF1ZW5jeSByZXF1aXJlcy4KIAkgKi8KIAljZGNsa19zdGF0ZS0+dm9sdGFnZV9sZXZlbCA9Ci0JCWljbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUtPmNkY2xrKTsKKwkJaWNsX2NhbGNfdm9sdGFnZV9sZXZlbChkZXZfcHJpdiwgY2RjbGtfc3RhdGUtPmNkY2xrKTsKIH0KIAogc3RhdGljIHZvaWQgaWNsX2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtMTk0Nyw3ICsxOTYwLDggQEAgc3RhdGljIHZvaWQgaWNsX2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXNhbml0aXplZF9zdGF0ZS52Y28gPSBpY2xfY2FsY19jZGNsa19wbGxfdmNvKGRldl9wcml2LAogCQkJCQkJICAgICBzYW5pdGl6ZWRfc3RhdGUuY2RjbGspOwogCXNhbml0aXplZF9zdGF0ZS52b2x0YWdlX2xldmVsID0KLQkJCQlpY2xfY2FsY192b2x0YWdlX2xldmVsKHNhbml0aXplZF9zdGF0ZS5jZGNsayk7CisJCQkJaWNsX2NhbGNfdm9sdGFnZV9sZXZlbChkZXZfcHJpdiwKKwkJCQkJCSAgICAgICBzYW5pdGl6ZWRfc3RhdGUuY2RjbGspOwogCiAJaWNsX3NldF9jZGNsayhkZXZfcHJpdiwgJnNhbml0aXplZF9zdGF0ZSwgSU5WQUxJRF9QSVBFKTsKIH0KQEAgLTE5NTgsNyArMTk3Miw4IEBAIHN0YXRpYyB2b2lkIGljbF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJY2RjbGtfc3RhdGUuY2RjbGsgPSBjZGNsa19zdGF0ZS5ieXBhc3M7CiAJY2RjbGtfc3RhdGUudmNvID0gMDsKLQljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gaWNsX2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7CisJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IGljbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoZGV2X3ByaXYsCisJCQkJCQkJICAgY2RjbGtfc3RhdGUuY2RjbGspOwogCiAJaWNsX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJTlZBTElEX1BJUEUpOwogfQpAQCAtMjU2MCw3ICsyNTc1LDcgQEAgc3RhdGljIGludCBpY2xfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCXN0YXRlLT5jZGNsay5sb2dpY2FsLnZjbyA9IHZjbzsKIAlzdGF0ZS0+Y2RjbGsubG9naWNhbC5jZGNsayA9IGNkY2xrOwogCXN0YXRlLT5jZGNsay5sb2dpY2FsLnZvbHRhZ2VfbGV2ZWwgPQotCQltYXgoaWNsX2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsayksCisJCW1heChpY2xfY2FsY192b2x0YWdlX2xldmVsKGRldl9wcml2LCBjZGNsayksCiAJCSAgICBjbmxfY29tcHV0ZV9taW5fdm9sdGFnZV9sZXZlbChzdGF0ZSkpOwogCiAJaWYgKCFzdGF0ZS0+YWN0aXZlX2NydGNzKSB7CkBAIC0yNTcwLDcgKzI1ODUsNyBAQCBzdGF0aWMgaW50IGljbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCXN0YXRlLT5jZGNsay5hY3R1YWwudmNvID0gdmNvOwogCQlzdGF0ZS0+Y2RjbGsuYWN0dWFsLmNkY2xrID0gY2RjbGs7CiAJCXN0YXRlLT5jZGNsay5hY3R1YWwudm9sdGFnZV9sZXZlbCA9Ci0JCQlpY2xfY2FsY192b2x0YWdlX2xldmVsKGNkY2xrKTsKKwkJCWljbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoZGV2X3ByaXYsIGNkY2xrKTsKIAl9IGVsc2UgewogCQlzdGF0ZS0+Y2RjbGsuYWN0dWFsID0gc3RhdGUtPmNkY2xrLmxvZ2ljYWw7CiAJfQpAQCAtMjYwNSw3ICsyNjIwLDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfY29tcHV0ZV9tYXhfZG90Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqLwogdm9pZCBpbnRlbF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgeworCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikpIHsKKwkJaWYgKGRldl9wcml2LT5jZGNsay5ody5yZWYgPT0gMjQwMDApCisJCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSA1NTIwMDA7CisJCWVsc2UKKwkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDU1NjgwMDsKKwl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKIAkJaWYgKGRldl9wcml2LT5jZGNsay5ody5yZWYgPT0gMjQwMDApCiAJCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSA2NDgwMDA7CiAJCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYwppbmRleCAyM2E4NGRkLi43MWEwMjAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jCkBAIC0yMyw3ICsyMyw3IEBACiAgKi8KIAogI2luY2x1ZGUgImludGVsX2NvbG9yLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogCiAjZGVmaW5lIENUTV9DT0VGRl9TSUdOCSgxVUxMIDw8IDYzKQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbWJvX3BoeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb21ib19waHkuYwppbmRleCA4NDE3MDhkLi40NGJiYzdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbWJvX3BoeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29tYm9fcGh5LmMKQEAgLTQsMTUgKzQsMTUgQEAKICAqLwogCiAjaW5jbHVkZSAiaW50ZWxfY29tYm9fcGh5LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogCi0jZGVmaW5lIGZvcl9lYWNoX2NvbWJvX3BvcnQoX19kZXZfcHJpdiwgX19wb3J0KSBcCi0JZm9yICgoX19wb3J0KSA9IFBPUlRfQTsgKF9fcG9ydCkgPCBJOTE1X01BWF9QT1JUUzsgKF9fcG9ydCkrKykJXAotCQlmb3JfZWFjaF9pZihpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KF9fZGV2X3ByaXYsIF9fcG9ydCkpCisjZGVmaW5lIGZvcl9lYWNoX2NvbWJvX3BoeShfX2Rldl9wcml2LCBfX3BoeSkgXAorCWZvciAoKF9fcGh5KSA9IFBIWV9BOyAoX19waHkpIDwgSTkxNV9NQVhfUEhZUzsgKF9fcGh5KSsrKQlcCisJCWZvcl9lYWNoX2lmKGludGVsX3BoeV9pc19jb21ibyhfX2Rldl9wcml2LCBfX3BoeSkpCiAKLSNkZWZpbmUgZm9yX2VhY2hfY29tYm9fcG9ydF9yZXZlcnNlKF9fZGV2X3ByaXYsIF9fcG9ydCkgXAotCWZvciAoKF9fcG9ydCkgPSBJOTE1X01BWF9QT1JUUzsgKF9fcG9ydCktLSA+IFBPUlRfQTspIFwKLQkJZm9yX2VhY2hfaWYoaW50ZWxfcG9ydF9pc19jb21ib3BoeShfX2Rldl9wcml2LCBfX3BvcnQpKQorI2RlZmluZSBmb3JfZWFjaF9jb21ib19waHlfcmV2ZXJzZShfX2Rldl9wcml2LCBfX3BoeSkgXAorCWZvciAoKF9fcGh5KSA9IEk5MTVfTUFYX1BIWVM7IChfX3BoeSktLSA+IFBIWV9BOykgXAorCQlmb3JfZWFjaF9pZihpbnRlbF9waHlfaXNfY29tYm8oX19kZXZfcHJpdiwgX19waHkpKQogCiBlbnVtIHsKIAlQUk9DTU9OXzBfODVWX0RPVF8wLApAQCAtMzgsMTggKzM4LDE3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY25sX3Byb2Ntb24gewogfTsKIAogLyoKLSAqIENOTCBoYXMganVzdCBvbmUgc2V0IG9mIHJlZ2lzdGVycywgd2hpbGUgSUNMIGhhcyB0d28gc2V0czogb25lIGZvciBwb3J0IEEgYW5kCi0gKiB0aGUgb3RoZXIgZm9yIHBvcnQgQi4gVGhlIENOTCByZWdpc3RlcnMgYXJlIGVxdWl2YWxlbnQgdG8gdGhlIElDTCBwb3J0IEEKLSAqIHJlZ2lzdGVycywgdGhhdCdzIHdoeSB3ZSBjYWxsIHRoZSBJQ0wgbWFjcm9zIGV2ZW4gdGhvdWdoIHRoZSBmdW5jdGlvbiBoYXMgQ05MCi0gKiBvbiBpdHMgbmFtZS4KKyAqIENOTCBoYXMganVzdCBvbmUgc2V0IG9mIHJlZ2lzdGVycywgd2hpbGUgZ2VuMTEgaGFzIGEgc2V0IGZvciBlYWNoIGNvbWJvIFBIWS4KKyAqIFRoZSBDTkwgcmVnaXN0ZXJzIGFyZSBlcXVpdmFsZW50IHRvIHRoZSBnZW4xMSBQSFkgQSByZWdpc3RlcnMsIHRoYXQncyB3aHkgd2UKKyAqIGNhbGwgdGhlIElDTCBtYWNyb3MgZXZlbiB0aG91Z2ggdGhlIGZ1bmN0aW9uIGhhcyBDTkwgb24gaXRzIG5hbWUuCiAgKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY25sX3Byb2Ntb24gKgotY25sX2dldF9wcm9jbW9uX3JlZl92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKK2NubF9nZXRfcHJvY21vbl9yZWZfdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaHkgcGh5KQogewogCWNvbnN0IHN0cnVjdCBjbmxfcHJvY21vbiAqcHJvY21vbjsKIAl1MzIgdmFsOwogCi0JdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFczKHBvcnQpKTsKKwl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzMocGh5KSk7CiAJc3dpdGNoICh2YWwgJiAoUFJPQ0VTU19JTkZPX01BU0sgfCBWT0xUQUdFX0lORk9fTUFTSykpIHsKIAlkZWZhdWx0OgogCQlNSVNTSU5HX0NBU0UodmFsKTsKQEAgLTc1LDMyICs3NCwzMiBAQCBjbmxfZ2V0X3Byb2Ntb25fcmVmX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogfQogCiBzdGF0aWMgdm9pZCBjbmxfc2V0X3Byb2Ntb25fcmVmX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICAgIGVudW0gcG9ydCBwb3J0KQorCQkJCSAgICAgICBlbnVtIHBoeSBwaHkpCiB7CiAJY29uc3Qgc3RydWN0IGNubF9wcm9jbW9uICpwcm9jbW9uOwogCXUzMiB2YWw7CiAKLQlwcm9jbW9uID0gY25sX2dldF9wcm9jbW9uX3JlZl92YWx1ZXMoZGV2X3ByaXYsIHBvcnQpOworCXByb2Ntb24gPSBjbmxfZ2V0X3Byb2Ntb25fcmVmX3ZhbHVlcyhkZXZfcHJpdiwgcGh5KTsKIAotCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DT01QX0RXMShwb3J0KSk7CisJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFcxKHBoeSkpOwogCXZhbCAmPSB+KCgweGZmIDw8IDE2KSB8IDB4ZmYpOwogCXZhbCB8PSBwcm9jbW9uLT5kdzE7Ci0JSTkxNV9XUklURShJQ0xfUE9SVF9DT01QX0RXMShwb3J0KSwgdmFsKTsKKwlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFcxKHBoeSksIHZhbCk7CiAKLQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFc5KHBvcnQpLCBwcm9jbW9uLT5kdzkpOwotCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzEwKHBvcnQpLCBwcm9jbW9uLT5kdzEwKTsKKwlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFc5KHBoeSksIHByb2Ntb24tPmR3OSk7CisJSTkxNV9XUklURShJQ0xfUE9SVF9DT01QX0RXMTAocGh5KSwgcHJvY21vbi0+ZHcxMCk7CiB9CiAKIHN0YXRpYyBib29sIGNoZWNrX3BoeV9yZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICBlbnVtIHBvcnQgcG9ydCwgaTkxNV9yZWdfdCByZWcsIHUzMiBtYXNrLAorCQkJICBlbnVtIHBoeSBwaHksIGk5MTVfcmVnX3QgcmVnLCB1MzIgbWFzaywKIAkJCSAgdTMyIGV4cGVjdGVkX3ZhbCkKIHsKIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAKIAlpZiAoKHZhbCAmIG1hc2spICE9IGV4cGVjdGVkX3ZhbCkgewotCQlEUk1fREVCVUdfRFJJVkVSKCJQb3J0ICVjIGNvbWJvIFBIWSByZWcgJTA4eCBzdGF0ZSBtaXNtYXRjaDogIgorCQlEUk1fREVCVUdfRFJJVkVSKCJDb21ibyBQSFkgJWMgcmVnICUwOHggc3RhdGUgbWlzbWF0Y2g6ICIKIAkJCQkgImN1cnJlbnQgJTA4eCBtYXNrICUwOHggZXhwZWN0ZWQgJTA4eFxuIiwKLQkJCQkgcG9ydF9uYW1lKHBvcnQpLAorCQkJCSBwaHlfbmFtZShwaHkpLAogCQkJCSByZWcucmVnLCB2YWwsIG1hc2ssIGV4cGVjdGVkX3ZhbCk7CiAJCXJldHVybiBmYWxzZTsKIAl9CkBAIC0xMDksMTggKzEwOCwxOCBAQCBzdGF0aWMgYm9vbCBjaGVja19waHlfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIH0KIAogc3RhdGljIGJvb2wgY25sX3ZlcmlmeV9wcm9jbW9uX3JlZl92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCQkgIGVudW0gcG9ydCBwb3J0KQorCQkJCQkgIGVudW0gcGh5IHBoeSkKIHsKIAljb25zdCBzdHJ1Y3QgY25sX3Byb2Ntb24gKnByb2Ntb247CiAJYm9vbCByZXQ7CiAKLQlwcm9jbW9uID0gY25sX2dldF9wcm9jbW9uX3JlZl92YWx1ZXMoZGV2X3ByaXYsIHBvcnQpOworCXByb2Ntb24gPSBjbmxfZ2V0X3Byb2Ntb25fcmVmX3ZhbHVlcyhkZXZfcHJpdiwgcGh5KTsKIAotCXJldCA9IGNoZWNrX3BoeV9yZWcoZGV2X3ByaXYsIHBvcnQsIElDTF9QT1JUX0NPTVBfRFcxKHBvcnQpLAorCXJldCA9IGNoZWNrX3BoeV9yZWcoZGV2X3ByaXYsIHBoeSwgSUNMX1BPUlRfQ09NUF9EVzEocGh5KSwKIAkJCSAgICAoMHhmZiA8PCAxNikgfCAweGZmLCBwcm9jbW9uLT5kdzEpOwotCXJldCAmPSBjaGVja19waHlfcmVnKGRldl9wcml2LCBwb3J0LCBJQ0xfUE9SVF9DT01QX0RXOShwb3J0KSwKKwlyZXQgJj0gY2hlY2tfcGh5X3JlZyhkZXZfcHJpdiwgcGh5LCBJQ0xfUE9SVF9DT01QX0RXOShwaHkpLAogCQkJICAgICAtMVUsIHByb2Ntb24tPmR3OSk7Ci0JcmV0ICY9IGNoZWNrX3BoeV9yZWcoZGV2X3ByaXYsIHBvcnQsIElDTF9QT1JUX0NPTVBfRFcxMChwb3J0KSwKKwlyZXQgJj0gY2hlY2tfcGh5X3JlZyhkZXZfcHJpdiwgcGh5LCBJQ0xfUE9SVF9DT01QX0RXMTAocGh5KSwKIAkJCSAgICAgLTFVLCBwcm9jbW9uLT5kdzEwKTsKIAogCXJldHVybiByZXQ7CkBAIC0xMzQsMTUgKzEzMywxNSBAQCBzdGF0aWMgYm9vbCBjbmxfY29tYm9fcGh5X2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgYm9vbCBjbmxfY29tYm9fcGh5X3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JZW51bSBwb3J0IHBvcnQgPSBQT1JUX0E7CisJZW51bSBwaHkgcGh5ID0gUEhZX0E7CiAJYm9vbCByZXQ7CiAKIAlpZiAoIWNubF9jb21ib19waHlfZW5hYmxlZChkZXZfcHJpdikpCiAJCXJldHVybiBmYWxzZTsKIAotCXJldCA9IGNubF92ZXJpZnlfcHJvY21vbl9yZWZfdmFsdWVzKGRldl9wcml2LCBwb3J0KTsKKwlyZXQgPSBjbmxfdmVyaWZ5X3Byb2Ntb25fcmVmX3ZhbHVlcyhkZXZfcHJpdiwgcGh5KTsKIAotCXJldCAmPSBjaGVja19waHlfcmVnKGRldl9wcml2LCBwb3J0LCBDTkxfUE9SVF9DTDFDTV9EVzUsCisJcmV0ICY9IGNoZWNrX3BoeV9yZWcoZGV2X3ByaXYsIHBoeSwgQ05MX1BPUlRfQ0wxQ01fRFc1LAogCQkJICAgICBDTF9QT1dFUl9ET1dOX0VOQUJMRSwgQ0xfUE9XRVJfRE9XTl9FTkFCTEUpOwogCiAJcmV0dXJuIHJldDsKQEAgLTE1Nyw3ICsxNTYsNyBAQCBzdGF0aWMgdm9pZCBjbmxfY29tYm9fcGh5c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlJOTE1X1dSSVRFKENISUNLRU5fTUlTQ18yLCB2YWwpOwogCiAJLyogRHVtbXkgUE9SVF9BIHRvIGdldCB0aGUgY29ycmVjdCBDTkwgcmVnaXN0ZXIgZnJvbSB0aGUgSUNMIG1hY3JvICovCi0JY25sX3NldF9wcm9jbW9uX3JlZl92YWx1ZXMoZGV2X3ByaXYsIFBPUlRfQSk7CisJY25sX3NldF9wcm9jbW9uX3JlZl92YWx1ZXMoZGV2X3ByaXYsIFBIWV9BKTsKIAogCXZhbCA9IEk5MTVfUkVBRChDTkxfUE9SVF9DT01QX0RXMCk7CiAJdmFsIHw9IENPTVBfSU5JVDsKQEAgLTE4MSwzNSArMTgwLDM5IEBAIHN0YXRpYyB2b2lkIGNubF9jb21ib19waHlzX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB9CiAKIHN0YXRpYyBib29sIGljbF9jb21ib19waHlfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICBlbnVtIHBvcnQgcG9ydCkKKwkJCQkgIGVudW0gcGh5IHBoeSkKIHsKLQlyZXR1cm4gIShJOTE1X1JFQUQoSUNMX1BIWV9NSVNDKHBvcnQpKSAmCi0JCSBJQ0xfUEhZX01JU0NfREVfSU9fQ09NUF9QV1JfRE9XTikgJiYKLQkJKEk5MTVfUkVBRChJQ0xfUE9SVF9DT01QX0RXMChwb3J0KSkgJiBDT01QX0lOSVQpOworCS8qIFRoZSBQSFkgQyBhZGRlZCBieSBFSEwgaGFzIG5vIFBIWV9NSVNDIHJlZ2lzdGVyICovCisJaWYgKElTX0VMS0hBUlRMQUtFKGRldl9wcml2KSAmJiBwaHkgPT0gUEhZX0MpCisJCXJldHVybiBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzAocGh5KSkgJiBDT01QX0lOSVQ7CisJZWxzZQorCQlyZXR1cm4gIShJOTE1X1JFQUQoSUNMX1BIWV9NSVNDKHBoeSkpICYKKwkJCSBJQ0xfUEhZX01JU0NfREVfSU9fQ09NUF9QV1JfRE9XTikgJiYKKwkJCShJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzAocGh5KSkgJiBDT01QX0lOSVQpOwogfQogCiBzdGF0aWMgYm9vbCBpY2xfY29tYm9fcGh5X3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICAgIGVudW0gcG9ydCBwb3J0KQorCQkJCSAgICAgICBlbnVtIHBoeSBwaHkpCiB7CiAJYm9vbCByZXQ7CiAKLQlpZiAoIWljbF9jb21ib19waHlfZW5hYmxlZChkZXZfcHJpdiwgcG9ydCkpCisJaWYgKCFpY2xfY29tYm9fcGh5X2VuYWJsZWQoZGV2X3ByaXYsIHBoeSkpCiAJCXJldHVybiBmYWxzZTsKIAotCXJldCA9IGNubF92ZXJpZnlfcHJvY21vbl9yZWZfdmFsdWVzKGRldl9wcml2LCBwb3J0KTsKKwlyZXQgPSBjbmxfdmVyaWZ5X3Byb2Ntb25fcmVmX3ZhbHVlcyhkZXZfcHJpdiwgcGh5KTsKIAotCWlmIChwb3J0ID09IFBPUlRfQSkKLQkJcmV0ICY9IGNoZWNrX3BoeV9yZWcoZGV2X3ByaXYsIHBvcnQsIElDTF9QT1JUX0NPTVBfRFc4KHBvcnQpLAorCWlmIChwaHkgPT0gUEhZX0EpCisJCXJldCAmPSBjaGVja19waHlfcmVnKGRldl9wcml2LCBwaHksIElDTF9QT1JUX0NPTVBfRFc4KHBoeSksCiAJCQkJICAgICBJUkVGR0VOLCBJUkVGR0VOKTsKIAotCXJldCAmPSBjaGVja19waHlfcmVnKGRldl9wcml2LCBwb3J0LCBJQ0xfUE9SVF9DTF9EVzUocG9ydCksCisJcmV0ICY9IGNoZWNrX3BoeV9yZWcoZGV2X3ByaXYsIHBoeSwgSUNMX1BPUlRfQ0xfRFc1KHBoeSksCiAJCQkgICAgIENMX1BPV0VSX0RPV05fRU5BQkxFLCBDTF9QT1dFUl9ET1dOX0VOQUJMRSk7CiAKIAlyZXR1cm4gcmV0OwogfQogCiB2b2lkIGludGVsX2NvbWJvX3BoeV9wb3dlcl91cF9sYW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgIGVudW0gcG9ydCBwb3J0LCBib29sIGlzX2RzaSwKKwkJCQkgICAgZW51bSBwaHkgcGh5LCBib29sIGlzX2RzaSwKIAkJCQkgICAgaW50IGxhbmVfY291bnQsIGJvb2wgbGFuZV9yZXZlcnNhbCkKIHsKIAl1OCBsYW5lX21hc2s7CkBAIC0yNTQsNjYgKzI1NywxMjAgQEAgdm9pZCBpbnRlbF9jb21ib19waHlfcG93ZXJfdXBfbGFuZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQl9CiAJfQogCi0JdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NMX0RXMTAocG9ydCkpOworCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DTF9EVzEwKHBoeSkpOwogCXZhbCAmPSB+UFdSX0RPV05fTE5fTUFTSzsKIAl2YWwgfD0gbGFuZV9tYXNrIDw8IFBXUl9ET1dOX0xOX1NISUZUOwotCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ0xfRFcxMChwb3J0KSwgdmFsKTsKKwlJOTE1X1dSSVRFKElDTF9QT1JUX0NMX0RXMTAocGh5KSwgdmFsKTsKK30KKworc3RhdGljIHUzMiBlaGxfY29tYm9fcGh5X2FfbXV4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1MzIgdmFsKQoreworCWJvb2wgZGRpX2FfcHJlc2VudCA9IGk5MTUtPnZidC5kZGlfcG9ydF9pbmZvW1BPUlRfQV0uY2hpbGQgIT0gTlVMTDsKKwlib29sIGRkaV9kX3ByZXNlbnQgPSBpOTE1LT52YnQuZGRpX3BvcnRfaW5mb1tQT1JUX0RdLmNoaWxkICE9IE5VTEw7CisJYm9vbCBkc2lfcHJlc2VudCA9IGludGVsX2Jpb3NfaXNfZHNpX3ByZXNlbnQoaTkxNSwgTlVMTCk7CisKKwkvKgorCSAqIFZCVCdzICdkdm8gcG9ydCcgZmllbGQgZm9yIGNoaWxkIGRldmljZXMgcmVmZXJlbmNlcyB0aGUgRERJLCBub3QKKwkgKiB0aGUgUEhZLiAgU28gaWYgY29tYm8gUEhZIEEgaXMgd2lyZWQgdXAgdG8gZHJpdmUgYW4gZXh0ZXJuYWwKKwkgKiBkaXNwbGF5LCB3ZSBzaG91bGQgc2VlIGEgY2hpbGQgZGV2aWNlIHByZXNlbnQgb24gUE9SVF9EIGFuZAorCSAqIG5vdGhpbmcgb24gUE9SVF9BIGFuZCBubyBEU0kuCisJICovCisJaWYgKGRkaV9kX3ByZXNlbnQgJiYgIWRkaV9hX3ByZXNlbnQgJiYgIWRzaV9wcmVzZW50KQorCQlyZXR1cm4gdmFsIHwgSUNMX1BIWV9NSVNDX01VWF9ERElEOworCisJLyoKKwkgKiBJZiB3ZSBlbmNvdW50ZXIgYSBWQlQgdGhhdCBjbGFpbXMgdG8gaGF2ZSBhbiBleHRlcm5hbCBkaXNwbGF5IG9uCisJICogRERJLUQgX2FuZF8gYW4gaW50ZXJuYWwgZGlzcGxheSBvbiBEREktQS9EU0kgbGVhdmUgYW4gZXJyb3IgbWVzc2FnZQorCSAqIGluIHRoZSBsb2cgYW5kIGxldCB0aGUgaW50ZXJuYWwgZGlzcGxheSB3aW4uCisJICovCisJaWYgKGRkaV9kX3ByZXNlbnQpCisJCURSTV9FUlJPUigiVkJUIGNsYWltcyB0byBoYXZlIGJvdGggaW50ZXJuYWwgYW5kIGV4dGVybmFsIGRpc3BsYXlzIG9uIFBIWSBBLiAgQ29uZmlndXJpbmcgZm9yIGludGVybmFsLlxuIik7CisKKwlyZXR1cm4gdmFsICYgfklDTF9QSFlfTUlTQ19NVVhfRERJRDsKIH0KIAogc3RhdGljIHZvaWQgaWNsX2NvbWJvX3BoeXNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JZW51bSBwb3J0IHBvcnQ7CisJZW51bSBwaHkgcGh5OwogCi0JZm9yX2VhY2hfY29tYm9fcG9ydChkZXZfcHJpdiwgcG9ydCkgeworCWZvcl9lYWNoX2NvbWJvX3BoeShkZXZfcHJpdiwgcGh5KSB7CiAJCXUzMiB2YWw7CiAKLQkJaWYgKGljbF9jb21ib19waHlfdmVyaWZ5X3N0YXRlKGRldl9wcml2LCBwb3J0KSkgewotCQkJRFJNX0RFQlVHX0RSSVZFUigiUG9ydCAlYyBjb21ibyBQSFkgYWxyZWFkeSBlbmFibGVkLCB3b24ndCByZXByb2dyYW0gaXQuXG4iLAotCQkJCQkgcG9ydF9uYW1lKHBvcnQpKTsKKwkJaWYgKGljbF9jb21ib19waHlfdmVyaWZ5X3N0YXRlKGRldl9wcml2LCBwaHkpKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJDb21ibyBQSFkgJWMgYWxyZWFkeSBlbmFibGVkLCB3b24ndCByZXByb2dyYW0gaXQuXG4iLAorCQkJCQkgcGh5X25hbWUocGh5KSk7CiAJCQljb250aW51ZTsKIAkJfQogCi0JCXZhbCA9IEk5MTVfUkVBRChJQ0xfUEhZX01JU0MocG9ydCkpOworCQkvKgorCQkgKiBBbHRob3VnaCBFSEwgYWRkcyBhIGNvbWJvIFBIWSBDLCB0aGVyZSdzIG5vIFBIWV9NSVNDCisJCSAqIHJlZ2lzdGVyIGZvciBpdCBhbmQgbm8gbmVlZCB0byBwcm9ncmFtIHRoZQorCQkgKiBERV9JT19DT01QX1BXUl9ET1dOIHNldHRpbmcgb24gUEhZIEMuCisJCSAqLworCQlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmIHBoeSA9PSBQSFlfQykKKwkJCWdvdG8gc2tpcF9waHlfbWlzYzsKKworCQkvKgorCQkgKiBFSEwncyBjb21ibyBQSFkgQSBjYW4gYmUgaG9va2VkIHVwIHRvIGVpdGhlciBhbiBleHRlcm5hbAorCQkgKiBkaXNwbGF5ICh2aWEgRERJLUQpIG9yIGFuIGludGVybmFsIGRpc3BsYXkgKHZpYSBEREktQSBvcgorCQkgKiB0aGUgRFNJIERQSFkpLiAgVGhpcyBpcyBhIG1vdGhlcmJvYXJkIGRlc2lnbiBkZWNpc2lvbiB0aGF0CisJCSAqIGNhbid0IGJlIGNoYW5nZWQgb24gdGhlIGZseSwgc28gaW5pdGlhbGl6ZSB0aGUgUEhZJ3MgbXV4CisJCSAqIGJhc2VkIG9uIHdoZXRoZXIgb3VyIFZCVCBpbmRpY2F0ZXMgdGhlIHByZXNlbmNlIG9mIGFueQorCQkgKiAiaW50ZXJuYWwiIGNoaWxkIGRldmljZXMuCisJCSAqLworCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BIWV9NSVNDKHBoeSkpOworCQlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmIHBoeSA9PSBQSFlfQSkKKwkJCXZhbCA9IGVobF9jb21ib19waHlfYV9tdXgoZGV2X3ByaXYsIHZhbCk7CiAJCXZhbCAmPSB+SUNMX1BIWV9NSVNDX0RFX0lPX0NPTVBfUFdSX0RPV047Ci0JCUk5MTVfV1JJVEUoSUNMX1BIWV9NSVNDKHBvcnQpLCB2YWwpOworCQlJOTE1X1dSSVRFKElDTF9QSFlfTUlTQyhwaHkpLCB2YWwpOwogCi0JCWNubF9zZXRfcHJvY21vbl9yZWZfdmFsdWVzKGRldl9wcml2LCBwb3J0KTsKK3NraXBfcGh5X21pc2M6CisJCWNubF9zZXRfcHJvY21vbl9yZWZfdmFsdWVzKGRldl9wcml2LCBwaHkpOwogCi0JCWlmIChwb3J0ID09IFBPUlRfQSkgewotCQkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFc4KHBvcnQpKTsKKwkJaWYgKHBoeSA9PSBQSFlfQSkgeworCQkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFc4KHBoeSkpOwogCQkJdmFsIHw9IElSRUZHRU47Ci0JCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFc4KHBvcnQpLCB2YWwpOworCQkJSTkxNV9XUklURShJQ0xfUE9SVF9DT01QX0RXOChwaHkpLCB2YWwpOwogCQl9CiAKLQkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFcwKHBvcnQpKTsKKwkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFcwKHBoeSkpOwogCQl2YWwgfD0gQ09NUF9JTklUOwotCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFcwKHBvcnQpLCB2YWwpOworCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFcwKHBoeSksIHZhbCk7CiAKLQkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NMX0RXNShwb3J0KSk7CisJCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DTF9EVzUocGh5KSk7CiAJCXZhbCB8PSBDTF9QT1dFUl9ET1dOX0VOQUJMRTsKLQkJSTkxNV9XUklURShJQ0xfUE9SVF9DTF9EVzUocG9ydCksIHZhbCk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ0xfRFc1KHBoeSksIHZhbCk7CiAJfQogfQogCiBzdGF0aWMgdm9pZCBpY2xfY29tYm9fcGh5c191bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCWVudW0gcG9ydCBwb3J0OworCWVudW0gcGh5IHBoeTsKIAotCWZvcl9lYWNoX2NvbWJvX3BvcnRfcmV2ZXJzZShkZXZfcHJpdiwgcG9ydCkgeworCWZvcl9lYWNoX2NvbWJvX3BoeV9yZXZlcnNlKGRldl9wcml2LCBwaHkpIHsKIAkJdTMyIHZhbDsKIAotCQlpZiAocG9ydCA9PSBQT1JUX0EgJiYKLQkJICAgICFpY2xfY29tYm9fcGh5X3ZlcmlmeV9zdGF0ZShkZXZfcHJpdiwgcG9ydCkpCi0JCQlEUk1fV0FSTigiUG9ydCAlYyBjb21ibyBQSFkgSFcgc3RhdGUgY2hhbmdlZCB1bmV4cGVjdGVkbHlcbiIsCi0JCQkJIHBvcnRfbmFtZShwb3J0KSk7CisJCWlmIChwaHkgPT0gUEhZX0EgJiYKKwkJICAgICFpY2xfY29tYm9fcGh5X3ZlcmlmeV9zdGF0ZShkZXZfcHJpdiwgcGh5KSkKKwkJCURSTV9XQVJOKCJDb21ibyBQSFkgJWMgSFcgc3RhdGUgY2hhbmdlZCB1bmV4cGVjdGVkbHlcbiIsCisJCQkJIHBoeV9uYW1lKHBoeSkpOwogCi0JCXZhbCA9IEk5MTVfUkVBRChJQ0xfUEhZX01JU0MocG9ydCkpOworCQkvKgorCQkgKiBBbHRob3VnaCBFSEwgYWRkcyBhIGNvbWJvIFBIWSBDLCB0aGVyZSdzIG5vIFBIWV9NSVNDCisJCSAqIHJlZ2lzdGVyIGZvciBpdCBhbmQgbm8gbmVlZCB0byBwcm9ncmFtIHRoZQorCQkgKiBERV9JT19DT01QX1BXUl9ET1dOIHNldHRpbmcgb24gUEhZIEMuCisJCSAqLworCQlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmIHBoeSA9PSBQSFlfQykKKwkJCWdvdG8gc2tpcF9waHlfbWlzYzsKKworCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BIWV9NSVNDKHBoeSkpOwogCQl2YWwgfD0gSUNMX1BIWV9NSVNDX0RFX0lPX0NPTVBfUFdSX0RPV047Ci0JCUk5MTVfV1JJVEUoSUNMX1BIWV9NSVNDKHBvcnQpLCB2YWwpOworCQlJOTE1X1dSSVRFKElDTF9QSFlfTUlTQyhwaHkpLCB2YWwpOwogCi0JCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DT01QX0RXMChwb3J0KSk7Citza2lwX3BoeV9taXNjOgorCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzAocGh5KSk7CiAJCXZhbCAmPSB+Q09NUF9JTklUOwotCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFcwKHBvcnQpLCB2YWwpOworCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFcwKHBoeSksIHZhbCk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbWJvX3BoeS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb21ib19waHkuaAppbmRleCBlNmUxOTVhLi42NjA4ODZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbWJvX3BoeS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29tYm9fcGh5LmgKQEAgLTcsMTQgKzcsMTQgQEAKICNkZWZpbmUgX19JTlRFTF9DT01CT19QSFlfSF9fCiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgogCiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKK2VudW0gcGh5OwogCiB2b2lkIGludGVsX2NvbWJvX3BoeV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX2NvbWJvX3BoeV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfY29tYm9fcGh5X3Bvd2VyX3VwX2xhbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgZW51bSBwb3J0IHBvcnQsIGJvb2wgaXNfZHNpLAorCQkJCSAgICBlbnVtIHBoeSBwaHksIGJvb2wgaXNfZHNpLAogCQkJCSAgICBpbnQgbGFuZV9jb3VudCwgYm9vbCBsYW5lX3JldmVyc2FsKTsKIAogI2VuZGlmIC8qIF9fSU5URUxfQ09NQk9fUEhZX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29ubmVjdG9yLmMKaW5kZXggNDEzMTBmOC4uMzA4ZWM2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Nvbm5lY3Rvci5jCkBAIC0zMyw3ICszMyw3IEBACiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2Nvbm5lY3Rvci5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9oZGNwLmgiCiAKIGludCBpbnRlbF9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCkBAIC0xMTgsNyArMTE4LDcgQEAgaW50IGludGVsX2Nvbm5lY3Rvcl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCWlmIChyZXQpCiAJCWdvdG8gZXJyOwogCi0JaWYgKGk5MTVfaW5qZWN0X2xvYWRfZmFpbHVyZSgpKSB7CisJaWYgKGk5MTVfaW5qZWN0X3Byb2JlX2ZhaWx1cmUodG9faTkxNShjb25uZWN0b3ItPmRldikpKSB7CiAJCXJldCA9IC1FRkFVTFQ7CiAJCWdvdG8gZXJyX2JhY2tsaWdodDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYwppbmRleCAzZmNmMmY4Li5lNmU4ZDRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlICJpbnRlbF9jb25uZWN0b3IuaCIKICNpbmNsdWRlICJpbnRlbF9jcnQuaCIKICNpbmNsdWRlICJpbnRlbF9kZGkuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZmlmb191bmRlcnJ1bi5oIgogI2luY2x1ZGUgImludGVsX2dtYnVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfaG90cGx1Zy5oIgpAQCAtNDQzLDkgKzQ0Myw5IEBAIHN0YXRpYyBib29sIGludGVsX2lyb25sYWtlX2NydF9kZXRlY3RfaG90cGx1ZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCiAJCUk5MTVfV1JJVEUoY3J0LT5hZHBhX3JlZywgYWRwYSk7CiAKLQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAorCQlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsCiAJCQkJCSAgICBjcnQtPmFkcGFfcmVnLAotCQkJCQkgICAgQURQQV9DUlRfSE9UUExVR19GT1JDRV9UUklHR0VSLCAwLAorCQkJCQkgICAgQURQQV9DUlRfSE9UUExVR19GT1JDRV9UUklHR0VSLAogCQkJCQkgICAgMTAwMCkpCiAJCQlEUk1fREVCVUdfS01TKCJ0aW1lZCBvdXQgd2FpdGluZyBmb3IgRk9SQ0VfVFJJR0dFUiIpOwogCkBAIC00OTcsMTAgKzQ5Nyw4IEBAIHN0YXRpYyBib29sIHZhbGxleXZpZXdfY3J0X2RldGVjdF9ob3RwbHVnKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAKIAlJOTE1X1dSSVRFKGNydC0+YWRwYV9yZWcsIGFkcGEpOwogCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBjcnQtPmFkcGFfcmVnLAotCQkJCSAgICBBRFBBX0NSVF9IT1RQTFVHX0ZPUkNFX1RSSUdHRVIsIDAsCi0JCQkJICAgIDEwMDApKSB7CisJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2LCBjcnQtPmFkcGFfcmVnLAorCQkJCSAgICBBRFBBX0NSVF9IT1RQTFVHX0ZPUkNFX1RSSUdHRVIsIDEwMDApKSB7CiAJCURSTV9ERUJVR19LTVMoInRpbWVkIG91dCB3YWl0aW5nIGZvciBGT1JDRV9UUklHR0VSIik7CiAJCUk5MTVfV1JJVEUoY3J0LT5hZHBhX3JlZywgc2F2ZV9hZHBhKTsKIAl9CkBAIC01NTAsOSArNTQ4LDggQEAgc3RhdGljIGJvb2wgaW50ZWxfY3J0X2RldGVjdF9ob3RwbHVnKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAJCQkJCSAgICAgIENSVF9IT1RQTFVHX0ZPUkNFX0RFVEVDVCwKIAkJCQkJICAgICAgQ1JUX0hPVFBMVUdfRk9SQ0VfREVURUNUKTsKIAkJLyogd2FpdCBmb3IgRk9SQ0VfREVURUNUIHRvIGdvIG9mZiAqLwotCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsIFBPUlRfSE9UUExVR19FTiwKLQkJCQkJICAgIENSVF9IT1RQTFVHX0ZPUkNFX0RFVEVDVCwgMCwKLQkJCQkJICAgIDEwMDApKQorCQlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIFBPUlRfSE9UUExVR19FTiwKKwkJCQkJICAgIENSVF9IT1RQTFVHX0ZPUkNFX0RFVEVDVCwgMTAwMCkpCiAJCQlEUk1fREVCVUdfS01TKCJ0aW1lZCBvdXQgd2FpdGluZyBmb3IgRk9SQ0VfREVURUNUIHRvIGdvIG9mZiIpOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKaW5kZXggMWNiMWZhNy4uOGViMmIzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCkBAIC0zMiwxMCArMzIsMTAgQEAKICNpbmNsdWRlICJpbnRlbF9jb21ib19waHkuaCIKICNpbmNsdWRlICJpbnRlbF9jb25uZWN0b3IuaCIKICNpbmNsdWRlICJpbnRlbF9kZGkuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHAuaCIKICNpbmNsdWRlICJpbnRlbF9kcF9saW5rX3RyYWluaW5nLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHBpb19waHkuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF9kc2kuaCIKICNpbmNsdWRlICJpbnRlbF9maWZvX3VuZGVycnVuLmgiCiAjaW5jbHVkZSAiaW50ZWxfZ21idXMuaCIKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJpbnRlbF9sc3Bjb24uaCIKICNpbmNsdWRlICJpbnRlbF9wYW5lbC5oIgogI2luY2x1ZGUgImludGVsX3Bzci5oIgorI2luY2x1ZGUgImludGVsX3RjLmgiCiAjaW5jbHVkZSAiaW50ZWxfdmRzYy5oIgogCiBzdHJ1Y3QgZGRpX2J1Zl90cmFucyB7CkBAIC04NDYsOCArODQ3LDggQEAgY25sX2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50ICpuX2VudHJpZXMpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY25sX2RkaV9idWZfdHJhbnMgKgotaWNsX2dldF9jb21ib19idWZfdHJhbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCwKLQkJCWludCB0eXBlLCBpbnQgcmF0ZSwgaW50ICpuX2VudHJpZXMpCitpY2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB0eXBlLCBpbnQgcmF0ZSwKKwkJCWludCAqbl9lbnRyaWVzKQogewogCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9IRE1JKSB7CiAJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pKTsKQEAgLTg2NywxMiArODY4LDEzIEBAIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQsCiBzdGF0aWMgaW50IGludGVsX2RkaV9oZG1pX2xldmVsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiB7CiAJaW50IG5fZW50cmllcywgbGV2ZWwsIGRlZmF1bHRfZW50cnk7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCiAJbGV2ZWwgPSBkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF0uaGRtaV9sZXZlbF9zaGlmdDsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkKLQkJCWljbF9nZXRfY29tYm9fYnVmX3RyYW5zKGRldl9wcml2LCBwb3J0LCBJTlRFTF9PVVRQVVRfSERNSSwKKwkJaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkKKwkJCWljbF9nZXRfY29tYm9fYnVmX3RyYW5zKGRldl9wcml2LCBJTlRFTF9PVVRQVVRfSERNSSwKIAkJCQkJCTAsICZuX2VudHJpZXMpOwogCQllbHNlCiAJCQluX2VudHJpZXMgPSBBUlJBWV9TSVpFKGljbF9tZ19waHlfZGRpX3RyYW5zbGF0aW9ucyk7CkBAIC0xNDg2LDkgKzE0ODgsMTAgQEAgc3RhdGljIHZvaWQgaWNsX2RkaV9jbG9ja19nZXQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSA9ICZwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCWludCBsaW5rX2Nsb2NrOwogCi0JaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKSB7CisJaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkgewogCQlsaW5rX2Nsb2NrID0gY25sX2NhbGNfd3JwbGxfbGluayhkZXZfcHJpdiwgcGxsX3N0YXRlKTsKIAl9IGVsc2UgewogCQllbnVtIGludGVsX2RwbGxfaWQgcGxsX2lkID0gaW50ZWxfZ2V0X3NoYXJlZF9kcGxsX2lkKGRldl9wcml2LApAQCAtMTc3MCw3ICsxNzczLDEwIEBAIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIAkvKiBFbmFibGUgVFJBTlNfRERJX0ZVTkNfQ1RMIGZvciB0aGUgcGlwZSB0byB3b3JrIGluIEhETUkgbW9kZSAqLwogCXRlbXAgPSBUUkFOU19ERElfRlVOQ19FTkFCTEU7Ci0JdGVtcCB8PSBUUkFOU19ERElfU0VMRUNUX1BPUlQocG9ydCk7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpCisJCXRlbXAgfD0gVEdMX1RSQU5TX0RESV9TRUxFQ1RfUE9SVChwb3J0KTsKKwllbHNlCisJCXRlbXAgfD0gVFJBTlNfRERJX1NFTEVDVF9QT1JUKHBvcnQpOwogCiAJc3dpdGNoIChjcnRjX3N0YXRlLT5waXBlX2JwcCkgewogCWNhc2UgMTg6CkBAIC0xODUwLDggKzE4NTYsMTMgQEAgdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUKIAlpOTE1X3JlZ190IHJlZyA9IFRSQU5TX0RESV9GVU5DX0NUTChjcHVfdHJhbnNjb2Rlcik7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwogCi0JdmFsICY9IH4oVFJBTlNfRERJX0ZVTkNfRU5BQkxFIHwgVFJBTlNfRERJX1BPUlRfTUFTSyB8IFRSQU5TX0RESV9EUF9WQ19QQVlMT0FEX0FMTE9DKTsKLQl2YWwgfD0gVFJBTlNfRERJX1BPUlRfTk9ORTsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgeworCQl2YWwgJj0gfihUUkFOU19ERElfRlVOQ19FTkFCTEUgfCBUR0xfVFJBTlNfRERJX1BPUlRfTUFTSyB8CisJCQkgVFJBTlNfRERJX0RQX1ZDX1BBWUxPQURfQUxMT0MpOworCX0gZWxzZSB7CisJCXZhbCAmPSB+KFRSQU5TX0RESV9GVU5DX0VOQUJMRSB8IFRSQU5TX0RESV9QT1JUX01BU0sgfAorCQkJIFRSQU5TX0RESV9EUF9WQ19QQVlMT0FEX0FMTE9DKTsKKwl9CiAJSTkxNV9XUklURShyZWcsIHZhbCk7CiAKIAlpZiAoZGV2X3ByaXYtPnF1aXJrcyAmIFFVSVJLX0lOQ1JFQVNFX0RESV9ESVNBQkxFRF9USU1FICYmCkBAIC0yMDAzLDEwICsyMDE0LDI3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9nZXRfZW5jb2Rlcl9waXBlcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAltc3RfcGlwZV9tYXNrID0gMDsKIAlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwKSB7CiAJCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IChlbnVtIHRyYW5zY29kZXIpcDsKKwkJdW5zaWduZWQgaW50IHBvcnRfbWFzaywgZGRpX3NlbGVjdDsKKwkJaW50ZWxfd2FrZXJlZl90IHRyYW5zX3dha2VyZWY7CisKKwkJdHJhbnNfd2FrZXJlZiA9IGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0X2lmX2VuYWJsZWQoZGV2X3ByaXYsCisJCQkJCQkJCSAgIFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSKGNwdV90cmFuc2NvZGVyKSk7CisJCWlmICghdHJhbnNfd2FrZXJlZikKKwkJCWNvbnRpbnVlOworCisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKSB7CisJCQlwb3J0X21hc2sgPSBUR0xfVFJBTlNfRERJX1BPUlRfTUFTSzsKKwkJCWRkaV9zZWxlY3QgPSBUR0xfVFJBTlNfRERJX1NFTEVDVF9QT1JUKHBvcnQpOworCQl9IGVsc2UgeworCQkJcG9ydF9tYXNrID0gVFJBTlNfRERJX1BPUlRfTUFTSzsKKwkJCWRkaV9zZWxlY3QgPSBUUkFOU19ERElfU0VMRUNUX1BPUlQocG9ydCk7CisJCX0KIAogCQl0bXAgPSBJOTE1X1JFQUQoVFJBTlNfRERJX0ZVTkNfQ1RMKGNwdV90cmFuc2NvZGVyKSk7CisJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fVFJBTlNDT0RFUihjcHVfdHJhbnNjb2RlciksCisJCQkJCXRyYW5zX3dha2VyZWYpOwogCi0JCWlmICgodG1wICYgVFJBTlNfRERJX1BPUlRfTUFTSykgIT0gVFJBTlNfRERJX1NFTEVDVF9QT1JUKHBvcnQpKQorCQlpZiAoKHRtcCAmIHBvcnRfbWFzaykgIT0gZGRpX3NlbGVjdCkKIAkJCWNvbnRpbnVlOwogCiAJCWlmICgodG1wICYgVFJBTlNfRERJX01PREVfU0VMRUNUX01BU0spID09CkBAIC0yMDg1LDYgKzIxMTMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZ2V0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQ7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwogCiAJLyoKIAkgKiBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgTVNUIGVuY29kZXJzLiBBdG0sIHRoZSBmb2xsb3dpbmcgc2hvdWxkIG5ldmVyCkBAIC0yMTAyLDcgKzIxMzEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZ2V0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJICogcG9ydHMuCiAJICovCiAJaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIoY3J0Y19zdGF0ZSkgfHwKLQkgICAgaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCkpCisJICAgIGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkKIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsCiAJCQkJCWludGVsX2RkaV9tYWluX2xpbmtfYXV4X2RvbWFpbihkaWdfcG9ydCkpOwogCkBAIC0yMTIyLDkgKzIxNTEsMTQgQEAgdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3BpcGVfY2xvY2soY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCi0JaWYgKGNwdV90cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJfRURQKQotCQlJOTE1X1dSSVRFKFRSQU5TX0NMS19TRUwoY3B1X3RyYW5zY29kZXIpLAotCQkJICAgVFJBTlNfQ0xLX1NFTF9QT1JUKHBvcnQpKTsKKwlpZiAoY3B1X3RyYW5zY29kZXIgIT0gVFJBTlNDT0RFUl9FRFApIHsKKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpCisJCQlJOTE1X1dSSVRFKFRSQU5TX0NMS19TRUwoY3B1X3RyYW5zY29kZXIpLAorCQkJCSAgIFRHTF9UUkFOU19DTEtfU0VMX1BPUlQocG9ydCkpOworCQllbHNlCisJCQlJOTE1X1dSSVRFKFRSQU5TX0NMS19TRUwoY3B1X3RyYW5zY29kZXIpLAorCQkJCSAgIFRSQU5TX0NMS19TRUxfUE9SVChwb3J0KSk7CisJfQogfQogCiB2b2lkIGludGVsX2RkaV9kaXNhYmxlX3BpcGVfY2xvY2soY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCkBAIC0yMTMyLDkgKzIxNjYsMTQgQEAgdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV9waXBlX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCi0JaWYgKGNwdV90cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJfRURQKQotCQlJOTE1X1dSSVRFKFRSQU5TX0NMS19TRUwoY3B1X3RyYW5zY29kZXIpLAotCQkJICAgVFJBTlNfQ0xLX1NFTF9ESVNBQkxFRCk7CisJaWYgKGNwdV90cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJfRURQKSB7CisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKQorCQkJSTkxNV9XUklURShUUkFOU19DTEtfU0VMKGNwdV90cmFuc2NvZGVyKSwKKwkJCQkgICBUR0xfVFJBTlNfQ0xLX1NFTF9ESVNBQkxFRCk7CisJCWVsc2UKKwkJCUk5MTVfV1JJVEUoVFJBTlNfQ0xLX1NFTChjcHVfdHJhbnNjb2RlciksCisJCQkJICAgVFJBTlNfQ0xLX1NFTF9ESVNBQkxFRCk7CisJfQogfQogCiBzdGF0aWMgdm9pZCBfc2tsX2RkaV9zZXRfaWJvb3N0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTIyMjcsMTEgKzIyNjYsMTIgQEAgdTggaW50ZWxfZGRpX2RwX3ZvbHRhZ2VfbWF4KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7CiAJaW50IG5fZW50cmllczsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkKLQkJCWljbF9nZXRfY29tYm9fYnVmX3RyYW5zKGRldl9wcml2LCBwb3J0LCBlbmNvZGVyLT50eXBlLAorCQlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQorCQkJaWNsX2dldF9jb21ib19idWZfdHJhbnMoZGV2X3ByaXYsIGVuY29kZXItPnR5cGUsCiAJCQkJCQlpbnRlbF9kcC0+bGlua19yYXRlLCAmbl9lbnRyaWVzKTsKIAkJZWxzZQogCQkJbl9lbnRyaWVzID0gQVJSQVlfU0laRShpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnMpOwpAQCAtMjQxMywxNSArMjQ1MywxNSBAQCBzdGF0aWMgdm9pZCBjbmxfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIH0KIAogc3RhdGljIHZvaWQgaWNsX2RkaV9jb21ib192c3dpbmdfcHJvZ3JhbShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJCXUzMiBsZXZlbCwgZW51bSBwb3J0IHBvcnQsIGludCB0eXBlLAorCQkJCQl1MzIgbGV2ZWwsIGVudW0gcGh5IHBoeSwgaW50IHR5cGUsCiAJCQkJCWludCByYXRlKQogewogCWNvbnN0IHN0cnVjdCBjbmxfZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9ucyA9IE5VTEw7CiAJdTMyIG5fZW50cmllcywgdmFsOwogCWludCBsbjsKIAotCWRkaV90cmFuc2xhdGlvbnMgPSBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhkZXZfcHJpdiwgcG9ydCwgdHlwZSwKLQkJCQkJCSAgIHJhdGUsICZuX2VudHJpZXMpOworCWRkaV90cmFuc2xhdGlvbnMgPSBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhkZXZfcHJpdiwgdHlwZSwgcmF0ZSwKKwkJCQkJCSAgICZuX2VudHJpZXMpOwogCWlmICghZGRpX3RyYW5zbGF0aW9ucykKIAkJcmV0dXJuOwogCkBAIC0yNDMxLDQxICsyNDcxLDQxIEBAIHN0YXRpYyB2b2lkIGljbF9kZGlfY29tYm9fdnN3aW5nX3Byb2dyYW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCX0KIAogCS8qIFNldCBQT1JUX1RYX0RXNSAqLwotCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzVfTE4wKHBvcnQpKTsKKwl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc1X0xOMChwaHkpKTsKIAl2YWwgJj0gfihTQ0FMSU5HX01PREVfU0VMX01BU0sgfCBSVEVSTV9TRUxFQ1RfTUFTSyB8CiAJCSAgVEFQMl9ESVNBQkxFIHwgVEFQM19ESVNBQkxFKTsKIAl2YWwgfD0gU0NBTElOR19NT0RFX1NFTCgweDIpOwogCXZhbCB8PSBSVEVSTV9TRUxFQ1QoMHg2KTsKIAl2YWwgfD0gVEFQM19ESVNBQkxFOwotCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc1X0dSUChwb3J0KSwgdmFsKTsKKwlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNV9HUlAocGh5KSwgdmFsKTsKIAogCS8qIFByb2dyYW0gUE9SVF9UWF9EVzIgKi8KLQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFcyX0xOMChwb3J0KSk7CisJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXMl9MTjAocGh5KSk7CiAJdmFsICY9IH4oU1dJTkdfU0VMX0xPV0VSX01BU0sgfCBTV0lOR19TRUxfVVBQRVJfTUFTSyB8CiAJCSBSQ09NUF9TQ0FMQVJfTUFTSyk7CiAJdmFsIHw9IFNXSU5HX1NFTF9VUFBFUihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5kdzJfc3dpbmdfc2VsKTsKIAl2YWwgfD0gU1dJTkdfU0VMX0xPV0VSKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3Ml9zd2luZ19zZWwpOwogCS8qIFByb2dyYW0gUmNvbXAgc2NhbGFyIGZvciBldmVyeSB0YWJsZSBlbnRyeSAqLwogCXZhbCB8PSBSQ09NUF9TQ0FMQVIoMHg5OCk7Ci0JSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzJfR1JQKHBvcnQpLCB2YWwpOworCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFcyX0dSUChwaHkpLCB2YWwpOwogCiAJLyogUHJvZ3JhbSBQT1JUX1RYX0RXNCAqLwogCS8qIFdlIGNhbm5vdCB3cml0ZSB0byBHUlAuIEl0IHdvdWxkIG92ZXJ3cml0ZSBpbmRpdmlkdWFsIGxvYWRnZW4uICovCiAJZm9yIChsbiA9IDA7IGxuIDw9IDM7IGxuKyspIHsKLQkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNF9MTihsbiwgcG9ydCkpOworCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc0X0xOKGxuLCBwaHkpKTsKIAkJdmFsICY9IH4oUE9TVF9DVVJTT1JfMV9NQVNLIHwgUE9TVF9DVVJTT1JfMl9NQVNLIHwKIAkJCSBDVVJTT1JfQ09FRkZfTUFTSyk7CiAJCXZhbCB8PSBQT1NUX0NVUlNPUl8xKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3NF9wb3N0X2N1cnNvcl8xKTsKIAkJdmFsIHw9IFBPU1RfQ1VSU09SXzIoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uZHc0X3Bvc3RfY3Vyc29yXzIpOwogCQl2YWwgfD0gQ1VSU09SX0NPRUZGKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3NF9jdXJzb3JfY29lZmYpOwotCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNF9MTihsbiwgcG9ydCksIHZhbCk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc0X0xOKGxuLCBwaHkpLCB2YWwpOwogCX0KIAogCS8qIFByb2dyYW0gUE9SVF9UWF9EVzcgKi8KLQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc3X0xOMChwb3J0KSk7CisJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXN19MTjAocGh5KSk7CiAJdmFsICY9IH5OX1NDQUxBUl9NQVNLOwogCXZhbCB8PSBOX1NDQUxBUihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5kdzdfbl9zY2FsYXIpOwotCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc3X0dSUChwb3J0KSwgdmFsKTsKKwlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXN19HUlAocGh5KSwgdmFsKTsKIH0KIAogc3RhdGljIHZvaWQgaWNsX2NvbWJvX3BoeV9kZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLApAQCAtMjQ3Myw3ICsyNTEzLDcgQEAgc3RhdGljIHZvaWQgaWNsX2NvbWJvX3BoeV9kZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkgICAgICBlbnVtIGludGVsX291dHB1dF90eXBlIHR5cGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0JZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKIAlpbnQgd2lkdGggPSAwOwogCWludCByYXRlID0gMDsKIAl1MzIgdmFsOwpAQCAtMjQ5NCwxMiArMjUzNCwxMiBAQCBzdGF0aWMgdm9pZCBpY2xfY29tYm9fcGh5X2RkaV92c3dpbmdfc2VxdWVuY2Uoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJICogc2V0IFBPUlRfUENTX0RXMSBjbW5rZWVwZXJfZW5hYmxlIHRvIDFiLAogCSAqIGVsc2UgY2xlYXIgdG8gMGIuCiAJICovCi0JdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX1BDU19EVzFfTE4wKHBvcnQpKTsKKwl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfUENTX0RXMV9MTjAocGh5KSk7CiAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpCiAJCXZhbCAmPSB+Q09NTU9OX0tFRVBFUl9FTjsKIAllbHNlCiAJCXZhbCB8PSBDT01NT05fS0VFUEVSX0VOOwotCUk5MTVfV1JJVEUoSUNMX1BPUlRfUENTX0RXMV9HUlAocG9ydCksIHZhbCk7CisJSTkxNV9XUklURShJQ0xfUE9SVF9QQ1NfRFcxX0dSUChwaHkpLCB2YWwpOwogCiAJLyogMi4gUHJvZ3JhbSBsb2FkZ2VuIHNlbGVjdCAqLwogCS8qCkBAIC0yNTA5LDMzICsyNTQ5LDMzIEBAIHN0YXRpYyB2b2lkIGljbF9jb21ib19waHlfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkgKiA+IDYgR0h6IChMTjA9MCwgTE4xPTAsIExOMj0wLCBMTjM9MCkKIAkgKi8KIAlmb3IgKGxuID0gMDsgbG4gPD0gMzsgbG4rKykgewotCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc0X0xOKGxuLCBwb3J0KSk7CisJCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzRfTE4obG4sIHBoeSkpOwogCQl2YWwgJj0gfkxPQURHRU5fU0VMRUNUOwogCiAJCWlmICgocmF0ZSA8PSA2MDAwMDAgJiYgd2lkdGggPT0gNCAmJiBsbiA+PSAxKSB8fAogCQkgICAgKHJhdGUgPD0gNjAwMDAwICYmIHdpZHRoIDwgNCAmJiAobG4gPT0gMSB8fCBsbiA9PSAyKSkpIHsKIAkJCXZhbCB8PSBMT0FER0VOX1NFTEVDVDsKIAkJfQotCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNF9MTihsbiwgcG9ydCksIHZhbCk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc0X0xOKGxuLCBwaHkpLCB2YWwpOwogCX0KIAogCS8qIDMuIFNldCBQT1JUX0NMX0RXNSBTVVMgQ2xvY2sgQ29uZmlnIHRvIDExYiAqLwotCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DTF9EVzUocG9ydCkpOworCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DTF9EVzUocGh5KSk7CiAJdmFsIHw9IFNVU19DTE9DS19DT05GSUc7Ci0JSTkxNV9XUklURShJQ0xfUE9SVF9DTF9EVzUocG9ydCksIHZhbCk7CisJSTkxNV9XUklURShJQ0xfUE9SVF9DTF9EVzUocGh5KSwgdmFsKTsKIAogCS8qIDQuIENsZWFyIHRyYWluaW5nIGVuYWJsZSB0byBjaGFuZ2Ugc3dpbmcgdmFsdWVzICovCi0JdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNV9MTjAocG9ydCkpOworCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzVfTE4wKHBoeSkpOwogCXZhbCAmPSB+VFhfVFJBSU5JTkdfRU47Ci0JSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzVfR1JQKHBvcnQpLCB2YWwpOworCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc1X0dSUChwaHkpLCB2YWwpOwogCiAJLyogNS4gUHJvZ3JhbSBzd2luZyBhbmQgZGUtZW1waGFzaXMgKi8KLQlpY2xfZGRpX2NvbWJvX3Zzd2luZ19wcm9ncmFtKGRldl9wcml2LCBsZXZlbCwgcG9ydCwgdHlwZSwgcmF0ZSk7CisJaWNsX2RkaV9jb21ib192c3dpbmdfcHJvZ3JhbShkZXZfcHJpdiwgbGV2ZWwsIHBoeSwgdHlwZSwgcmF0ZSk7CiAKIAkvKiA2LiBTZXQgdHJhaW5pbmcgZW5hYmxlIHRvIHRyaWdnZXIgdXBkYXRlICovCi0JdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNV9MTjAocG9ydCkpOworCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzVfTE4wKHBoeSkpOwogCXZhbCB8PSBUWF9UUkFJTklOR19FTjsKLQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNV9HUlAocG9ydCksIHZhbCk7CisJSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzVfR1JQKHBoeSksIHZhbCk7CiB9CiAKIHN0YXRpYyB2b2lkIGljbF9tZ19waHlfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKQEAgLTI2NjMsOSArMjcwMyw5IEBAIHN0YXRpYyB2b2lkIGljbF9kZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgICBlbnVtIGludGVsX291dHB1dF90eXBlIHR5cGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0JZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKIAotCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkKKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQogCQlpY2xfY29tYm9fcGh5X2RkaV92c3dpbmdfc2VxdWVuY2UoZW5jb2RlciwgbGV2ZWwsIHR5cGUpOwogCWVsc2UKIAkJaWNsX21nX3BoeV9kZGlfdnN3aW5nX3NlcXVlbmNlKGVuY29kZXIsIGxpbmtfY2xvY2ssIGxldmVsKTsKQEAgLTI3MjgsMTIgKzI3NjgsMTMgQEAgdTMyIGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAKIHN0YXRpYyBpbmxpbmUKIHUzMiBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgICAgIGVudW0gcG9ydCBwb3J0KQorCQkJICAgICAgZW51bSBwaHkgcGh5KQogewotCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkgewotCQlyZXR1cm4gSUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYocG9ydCk7Ci0JfSBlbHNlIGlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBwb3J0KSkgewotCQllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBvcnQpOworCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpIHsKKwkJcmV0dXJuIElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSk7CisJfSBlbHNlIGlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpIHsKKwkJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LAorCQkJCQkJCShlbnVtIHBvcnQpcGh5KTsKIAogCQlyZXR1cm4gSUNMX0RQQ0xLQV9DRkdDUjBfVENfQ0xLX09GRih0Y19wb3J0KTsKIAl9CkBAIC0yNzQ2LDIzICsyNzg3LDMzIEBAIHN0YXRpYyB2b2lkIGljbF9tYXBfcGxsc190b19wb3J0cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsOwotCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7CiAJdTMyIHZhbDsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOwogCi0JdmFsID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKLQlXQVJOX09OKCh2YWwgJiBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwb3J0KSkgPT0gMCk7CisJdmFsID0gSTkxNV9SRUFEKElDTF9EUENMS0FfQ0ZHQ1IwKTsKKwlXQVJOX09OKCh2YWwgJiBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwaHkpKSA9PSAwKTsKIAotCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkgewotCQl2YWwgJj0gfkRQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfTUFTSyhwb3J0KTsKLQkJdmFsIHw9IERQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUwocGxsLT5pbmZvLT5pZCwgcG9ydCk7Ci0JCUk5MTVfV1JJVEUoRFBDTEtBX0NGR0NSMF9JQ0wsIHZhbCk7Ci0JCVBPU1RJTkdfUkVBRChEUENMS0FfQ0ZHQ1IwX0lDTCk7CisJaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkgeworCQkvKgorCQkgKiBFdmVuIHRob3VnaCB0aGlzIHJlZ2lzdGVyIHJlZmVyZW5jZXMgRERJcywgbm90ZSB0aGF0IHdlCisJCSAqIHdhbnQgdG8gcGFzcyB0aGUgUEhZIHJhdGhlciB0aGFuIHRoZSBwb3J0IChEREkpLiAgRm9yCisJCSAqIElDTCwgcG9ydD1waHkgaW4gYWxsIGNhc2VzIHNvIGl0IGRvZXNuJ3QgbWF0dGVyLCBidXQgZm9yCisJCSAqIEVITCB0aGUgYnNwZWMgbm90ZXMgdGhlIGZvbGxvd2luZzoKKwkJICoKKwkJICogICAiRERJRCBjbG9jayB0aWVkIHRvIERESUEgY2xvY2ssIHNvIERQQ0xLQV9DRkdDUjAgRERJQQorCQkgKiAgIENsb2NrIFNlbGVjdCBjaG9vc2VzIHRoZSBQTEwgZm9yIGJvdGggRERJQSBhbmQgRERJRCBhbmQKKwkJICogICBkcml2ZXMgcG9ydCBBIGluIGFsbCBjYXNlcy4iCisJCSAqLworCQl2YWwgJj0gfklDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01BU0socGh5KTsKKwkJdmFsIHw9IElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMKHBsbC0+aW5mby0+aWQsIHBoeSk7CisJCUk5MTVfV1JJVEUoSUNMX0RQQ0xLQV9DRkdDUjAsIHZhbCk7CisJCVBPU1RJTkdfUkVBRChJQ0xfRFBDTEtBX0NGR0NSMCk7CiAJfQogCi0JdmFsICY9IH5pY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwb3J0KTsKLQlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB2YWwpOworCXZhbCAmPSB+aWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZihkZXZfcHJpdiwgcGh5KTsKKwlJOTE1X1dSSVRFKElDTF9EUENMS0FfQ0ZHQ1IwLCB2YWwpOwogCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKIH0KQEAgLTI3NzAsMTQgKzI4MjEsMTQgQEAgc3RhdGljIHZvaWQgaWNsX21hcF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogc3RhdGljIHZvaWQgaWNsX3VubWFwX3BsbHNfdG9fcG9ydHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0JZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKIAl1MzIgdmFsOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7CiAKLQl2YWwgPSBJOTE1X1JFQUQoRFBDTEtBX0NGR0NSMF9JQ0wpOwotCXZhbCB8PSBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwb3J0KTsKLQlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB2YWwpOworCXZhbCA9IEk5MTVfUkVBRChJQ0xfRFBDTEtBX0NGR0NSMCk7CisJdmFsIHw9IGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYoZGV2X3ByaXYsIHBoeSk7CisJSTkxNV9XUklURShJQ0xfRFBDTEtBX0NGR0NSMCwgdmFsKTsKIAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7CiB9CkBAIC0yODM1LDExICsyODg2LDEzIEBAIHZvaWQgaWNsX3Nhbml0aXplX2VuY29kZXJfcGxsX21hcHBpbmcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJCWRkaV9jbGtfbmVlZGVkID0gZmFsc2U7CiAJfQogCi0JdmFsID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKKwl2YWwgPSBJOTE1X1JFQUQoSUNMX0RQQ0xLQV9DRkdDUjApOwogCWZvcl9lYWNoX3BvcnRfbWFza2VkKHBvcnQsIHBvcnRfbWFzaykgeworCQllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7CisKIAkJYm9vbCBkZGlfY2xrX3VuZ2F0ZWQgPSAhKHZhbCAmCiAJCQkJCSBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LAotCQkJCQkJCQkgICBwb3J0KSk7CisJCQkJCQkJCSAgIHBoeSkpOwogCiAJCWlmIChkZGlfY2xrX25lZWRlZCA9PSBkZGlfY2xrX3VuZ2F0ZWQpCiAJCQljb250aW51ZTsKQEAgLTI4NTEsMTAgKzI5MDQsMTAgQEAgdm9pZCBpY2xfc2FuaXRpemVfZW5jb2Rlcl9wbGxfbWFwcGluZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJaWYgKFdBUk5fT04oZGRpX2Nsa19uZWVkZWQpKQogCQkJY29udGludWU7CiAKLQkJRFJNX05PVEUoIlBvcnQgJWMgaXMgZGlzYWJsZWQvaW4gRFNJIG1vZGUgd2l0aCBhbiB1bmdhdGVkIERESSBjbG9jaywgZ2F0ZSBpdFxuIiwKLQkJCSBwb3J0X25hbWUocG9ydCkpOwotCQl2YWwgfD0gaWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZihkZXZfcHJpdiwgcG9ydCk7Ci0JCUk5MTVfV1JJVEUoRFBDTEtBX0NGR0NSMF9JQ0wsIHZhbCk7CisJCURSTV9OT1RFKCJQSFkgJWMgaXMgZGlzYWJsZWQvaW4gRFNJIG1vZGUgd2l0aCBhbiB1bmdhdGVkIERESSBjbG9jaywgZ2F0ZSBpdFxuIiwKKwkJCSBwaHlfbmFtZShwb3J0KSk7CisJCXZhbCB8PSBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwaHkpOworCQlJOTE1X1dSSVRFKElDTF9EUENMS0FfQ0ZHQ1IwLCB2YWwpOwogCX0KIH0KIApAQCAtMjg2Myw2ICsyOTE2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KTsKIAl1MzIgdmFsOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7CiAKQEAgLTI4NzIsOSArMjkyNiwxNSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfY2xrX3NlbGVjdChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCWlmICghaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkpCisJCWlmICghaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQogCQkJSTkxNV9XUklURShERElfQ0xLX1NFTChwb3J0KSwKIAkJCQkgICBpY2xfcGxsX3RvX2RkaV9jbGtfc2VsKGVuY29kZXIsIGNydGNfc3RhdGUpKTsKKwkJZWxzZSBpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmIHBvcnQgPj0gUE9SVF9DKQorCQkJLyoKKwkJCSAqIE1HIGRvZXMgbm90IGV4aXN0IGJ1dCB0aGUgcHJvZ3JhbW1pbmcgaXMgcmVxdWlyZWQKKwkJCSAqIHRvIHVuZ2F0ZSBERElDIGFuZCBERElECisJCQkgKi8KKwkJCUk5MTVfV1JJVEUoRERJX0NMS19TRUwocG9ydCksIERESV9DTEtfU0VMX01HKTsKIAl9IGVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7CiAJCS8qIENvbmZpZ3VyZSBEUENMS0FfQ0ZHQ1IwIHRvIG1hcCB0aGUgRFBMTCB0byB0aGUgRERJLiAqLwogCQl2YWwgPSBJOTE1X1JFQUQoRFBDTEtBX0NGR0NSMCk7CkBAIC0yOTEyLDkgKzI5NzIsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2Nsa19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewotCQlpZiAoIWludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKQorCQlpZiAoIWludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSB8fAorCQkgICAgKElTX0VMS0hBUlRMQUtFKGRldl9wcml2KSAmJiBwb3J0ID49IFBPUlRfQykpCiAJCQlJOTE1X1dSSVRFKERESV9DTEtfU0VMKHBvcnQpLCBERElfQ0xLX1NFTF9OT05FKTsKIAl9IGVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7CiAJCUk5MTVfV1JJVEUoRFBDTEtBX0NGR0NSMCwgSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjApIHwKQEAgLTI5OTUsMjUgKzMwNTcsMjIgQEAgc3RhdGljIHZvaWQgaWNsX3Byb2dyYW1fbWdfZHBfbW9kZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7Ci0JZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBwb3J0KTsKLQl1MzIgbG4wLCBsbjEsIGxhbmVfaW5mbzsKKwl1MzIgbG4wLCBsbjEsIGxhbmVfbWFzazsKIAotCWlmICh0Y19wb3J0ID09IFBPUlRfVENfTk9ORSB8fCBpbnRlbF9kaWdfcG9ydC0+dGNfdHlwZSA9PSBUQ19QT1JUX1RCVCkKKwlpZiAoaW50ZWxfZGlnX3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9UQlRfQUxUKQogCQlyZXR1cm47CiAKIAlsbjAgPSBJOTE1X1JFQUQoTUdfRFBfTU9ERSgwLCBwb3J0KSk7CiAJbG4xID0gSTkxNV9SRUFEKE1HX0RQX01PREUoMSwgcG9ydCkpOwogCi0Jc3dpdGNoIChpbnRlbF9kaWdfcG9ydC0+dGNfdHlwZSkgewotCWNhc2UgVENfUE9SVF9UWVBFQzoKKwlzd2l0Y2ggKGludGVsX2RpZ19wb3J0LT50Y19tb2RlKSB7CisJY2FzZSBUQ19QT1JUX0RQX0FMVDoKIAkJbG4wICY9IH4oTUdfRFBfTU9ERV9DRkdfRFBfWDFfTU9ERSB8IE1HX0RQX01PREVfQ0ZHX0RQX1gyX01PREUpOwogCQlsbjEgJj0gfihNR19EUF9NT0RFX0NGR19EUF9YMV9NT0RFIHwgTUdfRFBfTU9ERV9DRkdfRFBfWDJfTU9ERSk7CiAKLQkJbGFuZV9pbmZvID0gKEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBTUCkgJgotCQkJICAgICBEUF9MQU5FX0FTU0lHTk1FTlRfTUFTSyh0Y19wb3J0KSkgPj4KLQkJCSAgICBEUF9MQU5FX0FTU0lHTk1FTlRfU0hJRlQodGNfcG9ydCk7CisJCWxhbmVfbWFzayA9IGludGVsX3RjX3BvcnRfZ2V0X2xhbmVfbWFzayhpbnRlbF9kaWdfcG9ydCk7CiAKLQkJc3dpdGNoIChsYW5lX2luZm8pIHsKKwkJc3dpdGNoIChsYW5lX21hc2spIHsKIAkJY2FzZSAweDE6CiAJCWNhc2UgMHg0OgogCQkJYnJlYWs7CkBAIC0zMDM4LDcgKzMwOTcsNyBAQCBzdGF0aWMgdm9pZCBpY2xfcHJvZ3JhbV9tZ19kcF9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQogCQkJICAgICAgIE1HX0RQX01PREVfQ0ZHX0RQX1gyX01PREU7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJCU1JU1NJTkdfQ0FTRShsYW5lX2luZm8pOworCQkJTUlTU0lOR19DQVNFKGxhbmVfbWFzayk7CiAJCX0KIAkJYnJlYWs7CiAKQEAgLTMwNDgsNyArMzEwNyw3IEBAIHN0YXRpYyB2b2lkIGljbF9wcm9ncmFtX21nX2RwX21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKGludGVsX2RpZ19wb3J0LT50Y190eXBlKTsKKwkJTUlTU0lOR19DQVNFKGludGVsX2RpZ19wb3J0LT50Y19tb2RlKTsKIAkJcmV0dXJuOwogCX0KIApAQCAtMzA4MCwxMCArMzEzOSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9lbmFibGVfZmVjKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXZhbCB8PSBEUF9UUF9DVExfRkVDX0VOQUJMRTsKIAlJOTE1X1dSSVRFKERQX1RQX0NUTChwb3J0KSwgdmFsKTsKIAotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwgRFBfVFBfU1RBVFVTKHBvcnQpLAotCQkJCSAgICBEUF9UUF9TVEFUVVNfRkVDX0VOQUJMRV9MSVZFLAotCQkJCSAgICBEUF9UUF9TVEFUVVNfRkVDX0VOQUJMRV9MSVZFLAotCQkJCSAgICAxKSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBEUF9UUF9TVEFUVVMocG9ydCksCisJCQkJICBEUF9UUF9TVEFUVVNfRkVDX0VOQUJMRV9MSVZFLCAxKSkKIAkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgRkVDIEVuYWJsZSBTdGF0dXNcbiIpOwogfQogCkBAIC0zMTEwLDYgKzMxNjcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIAlib29sIGlzX21zdCA9IGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RQX01TVCk7CiAJaW50IGxldmVsID0gaW50ZWxfZGRpX2RwX2xldmVsKGludGVsX2RwKTsKQEAgLTMxMjMsNyArMzE4MSwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCWludGVsX2RkaV9jbGtfc2VsZWN0KGVuY29kZXIsIGNydGNfc3RhdGUpOwogCi0JaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIGRpZ19wb3J0LT5kZGlfaW9fcG93ZXJfZG9tYWluKTsKKwlpZiAoIWludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSB8fAorCSAgICBkaWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX1RCVF9BTFQpCisJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LAorCQkJCQlkaWdfcG9ydC0+ZGRpX2lvX3Bvd2VyX2RvbWFpbik7CiAKIAlpY2xfcHJvZ3JhbV9tZ19kcF9tb2RlKGRpZ19wb3J0KTsKIAlpY2xfZGlzYWJsZV9waHlfY2xvY2tfZ2F0aW5nKGRpZ19wb3J0KTsKQEAgLTMxMzgsMTEgKzMxOTksMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZWxzZQogCQlpbnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGVuY29kZXIsIGNydGNfc3RhdGUpOwogCi0JaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKSB7CisJaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkgewogCQlib29sIGxhbmVfcmV2ZXJzYWwgPQogCQkJZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyAmIERESV9CVUZfUE9SVF9SRVZFUlNBTDsKIAotCQlpbnRlbF9jb21ib19waHlfcG93ZXJfdXBfbGFuZXMoZGV2X3ByaXYsIHBvcnQsIGZhbHNlLAorCQlpbnRlbF9jb21ib19waHlfcG93ZXJfdXBfbGFuZXMoZGV2X3ByaXYsIHBoeSwgZmFsc2UsCiAJCQkJCSAgICAgICBjcnRjX3N0YXRlLT5sYW5lX2NvdW50LAogCQkJCQkgICAgICAgbGFuZV9yZXZlcnNhbCk7CiAJfQpAQCAtMzI5MCw2ICszMzUxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmRpZ19wb3J0LT5kcDsKIAlib29sIGlzX21zdCA9IGludGVsX2NydGNfaGFzX3R5cGUob2xkX2NydGNfc3RhdGUsCiAJCQkJCSAgSU5URUxfT1VUUFVUX0RQX01TVCk7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwogCiAJaWYgKCFpc19tc3QpIHsKIAkJaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9jbG9jayhvbGRfY3J0Y19zdGF0ZSk7CkBAIC0zMzA1LDggKzMzNjcsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlpbnRlbF9lZHBfcGFuZWxfdmRkX29uKGludGVsX2RwKTsKIAlpbnRlbF9lZHBfcGFuZWxfb2ZmKGludGVsX2RwKTsKIAotCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChkZXZfcHJpdiwKLQkJCQkJICBkaWdfcG9ydC0+ZGRpX2lvX3Bvd2VyX2RvbWFpbik7CisJaWYgKCFpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkgfHwKKwkgICAgZGlnX3BvcnQtPnRjX21vZGUgIT0gVENfUE9SVF9UQlRfQUxUKQorCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dF91bmNoZWNrZWQoZGV2X3ByaXYsCisJCQkJCQkgIGRpZ19wb3J0LT5kZGlfaW9fcG93ZXJfZG9tYWluKTsKIAogCWludGVsX2RkaV9jbGtfZGlzYWJsZShlbmNvZGVyKTsKIH0KQEAgLTM1MTEsNyArMzU3NSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJLyogRW5hYmxlIGhkY3AgaWYgaXQncyBkZXNpcmVkICovCiAJaWYgKGNvbm5fc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9PQogCSAgICBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRCkKLQkJaW50ZWxfaGRjcF9lbmFibGUodG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3RvcikpOworCQlpbnRlbF9oZGNwX2VuYWJsZSh0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKSwKKwkJCQkgICh1OCljb25uX3N0YXRlLT5oZGNwX2NvbnRlbnRfdHlwZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZGRpX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLApAQCAtMzU4MCw0NCArMzY0NSw2NSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfdXBkYXRlX3BpcGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogeworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9CisJCQkJdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOworCWJvb2wgY29udGVudF9wcm90ZWN0aW9uX3R5cGVfY2hhbmdlZCA9CisJCQkoY29ubl9zdGF0ZS0+aGRjcF9jb250ZW50X3R5cGUgIT0gaGRjcC0+Y29udGVudF90eXBlICYmCisJCQkgY29ubl9zdGF0ZS0+Y29udGVudF9wcm90ZWN0aW9uICE9CisJCQkgRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRCk7CisKIAlpZiAoIWludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hETUkpKQogCQlpbnRlbF9kZGlfdXBkYXRlX3BpcGVfZHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSk7CiAKKwkvKgorCSAqIER1cmluZyB0aGUgSERDUCBlbmNyeXB0aW9uIHNlc3Npb24gaWYgVHlwZSBjaGFuZ2UgaXMgcmVxdWVzdGVkLAorCSAqIGRpc2FibGUgdGhlIEhEQ1AgYW5kIHJlZW5hYmxlIGl0IHdpdGggbmV3IFRZUEUgdmFsdWUuCisJICovCiAJaWYgKGNvbm5fc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9PQotCSAgICBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRCkKLQkJaW50ZWxfaGRjcF9lbmFibGUodG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3RvcikpOwotCWVsc2UgaWYgKGNvbm5fc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9PQotCQkgRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRCkKLQkJaW50ZWxfaGRjcF9kaXNhYmxlKHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3IpKTsKKwkgICAgRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRCB8fAorCSAgICBjb250ZW50X3Byb3RlY3Rpb25fdHlwZV9jaGFuZ2VkKQorCQlpbnRlbF9oZGNwX2Rpc2FibGUoY29ubmVjdG9yKTsKKworCS8qCisJICogTWFyayB0aGUgaGRjcCBzdGF0ZSBhcyBERVNJUkVEIGFmdGVyIHRoZSBoZGNwIGRpc2FibGUgb2YgdHlwZQorCSAqIGNoYW5nZSBwcm9jZWR1cmUuCisJICovCisJaWYgKGNvbnRlbnRfcHJvdGVjdGlvbl90eXBlX2NoYW5nZWQpIHsKKwkJbXV0ZXhfbG9jaygmaGRjcC0+bXV0ZXgpOworCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9ERVNJUkVEOworCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOworCQltdXRleF91bmxvY2soJmhkY3AtPm11dGV4KTsKKwl9CisKKwlpZiAoY29ubl9zdGF0ZS0+Y29udGVudF9wcm90ZWN0aW9uID09CisJICAgIERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9ERVNJUkVEIHx8CisJICAgIGNvbnRlbnRfcHJvdGVjdGlvbl90eXBlX2NoYW5nZWQpCisJCWludGVsX2hkY3BfZW5hYmxlKGNvbm5lY3RvciwgKHU4KWNvbm5fc3RhdGUtPmhkY3BfY29udGVudF90eXBlKTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZGRpX3NldF9maWFfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKLQkJCQkJIGVudW0gcG9ydCBwb3J0KQorc3RhdGljIHZvaWQKK2ludGVsX2RkaV91cGRhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCSBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Ci0JZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBwb3J0KTsKLQl1MzIgdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUE1MRTEpOwotCWJvb2wgbGFuZV9yZXZlcnNhbCA9IGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgJiBERElfQlVGX1BPUlRfUkVWRVJTQUw7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQljcnRjID8gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0YykgOiBOVUxMOworCWludCByZXF1aXJlZF9sYW5lcyA9IGNydGNfc3RhdGUgPyBjcnRjX3N0YXRlLT5sYW5lX2NvdW50IDogMTsKIAotCXZhbCAmPSB+REZMRVhEUE1MRTFfRFBNTEVUQ19NQVNLKHRjX3BvcnQpOwotCXN3aXRjaCAocGlwZV9jb25maWctPmxhbmVfY291bnQpIHsKLQljYXNlIDE6Ci0JCXZhbCB8PSAobGFuZV9yZXZlcnNhbCkgPyBERkxFWERQTUxFMV9EUE1MRVRDX01MMyh0Y19wb3J0KSA6Ci0JCURGTEVYRFBNTEUxX0RQTUxFVENfTUwwKHRjX3BvcnQpOwotCQlicmVhazsKLQljYXNlIDI6Ci0JCXZhbCB8PSAobGFuZV9yZXZlcnNhbCkgPyBERkxFWERQTUxFMV9EUE1MRVRDX01MM18yKHRjX3BvcnQpIDoKLQkJREZMRVhEUE1MRTFfRFBNTEVUQ19NTDFfMCh0Y19wb3J0KTsKLQkJYnJlYWs7Ci0JY2FzZSA0OgotCQl2YWwgfD0gREZMRVhEUE1MRTFfRFBNTEVUQ19NTDNfMCh0Y19wb3J0KTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KTsKLQl9Ci0JSTkxNV9XUklURShQT1JUX1RYX0RGTEVYRFBNTEUxLCB2YWwpOworCVdBUk5fT04oY3J0YyAmJiBjcnRjLT5hY3RpdmUpOworCisJaW50ZWxfdGNfcG9ydF9nZXRfbGluayhlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpLCByZXF1aXJlZF9sYW5lcyk7CisJaWYgKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCWludGVsX3VwZGF0ZV9hY3RpdmVfZHBsbChzdGF0ZSwgY3J0YywgZW5jb2Rlcik7Cit9CisKK3N0YXRpYyB2b2lkCitpbnRlbF9kZGlfdXBkYXRlX2NvbXBsZXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCSAgc3RydWN0IGludGVsX2NydGMgKmNydGMpCit7CisJaW50ZWxfdGNfcG9ydF9wdXRfbGluayhlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTM2MjcsMjYgKzM3MTMsMjUgQEAgaW50ZWxfZGRpX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKLQllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOworCWJvb2wgaXNfdGNfcG9ydCA9IGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KTsKIAotCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpIHx8Ci0JICAgIGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQorCWlmIChpc190Y19wb3J0KQorCQlpbnRlbF90Y19wb3J0X2dldF9saW5rKGRpZ19wb3J0LCBjcnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKKworCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpIHx8IGlzX3RjX3BvcnQpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LAogCQkJCQlpbnRlbF9kZGlfbWFpbl9saW5rX2F1eF9kb21haW4oZGlnX3BvcnQpKTsKIAotCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKKwlpZiAoaXNfdGNfcG9ydCAmJiBkaWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX1RCVF9BTFQpCisJCS8qCisJCSAqIFByb2dyYW0gdGhlIGxhbmUgY291bnQgZm9yIHN0YXRpYy9keW5hbWljIGNvbm5lY3Rpb25zIG9uCisJCSAqIFR5cGUtQyBwb3J0cy4gIFNraXAgdGhpcyBzdGVwIGZvciBUQlQuCisJCSAqLworCQlpbnRlbF90Y19wb3J0X3NldF9maWFfbGFuZV9jb3VudChkaWdfcG9ydCwgY3J0Y19zdGF0ZS0+bGFuZV9jb3VudCk7CisJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCWJ4dF9kZGlfcGh5X3NldF9sYW5lX29wdGltX21hc2soZW5jb2RlciwKIAkJCQkJCWNydGNfc3RhdGUtPmxhbmVfbGF0X29wdGltX21hc2spOwotCi0JLyoKLQkgKiBQcm9ncmFtIHRoZSBsYW5lIGNvdW50IGZvciBzdGF0aWMvZHluYW1pYyBjb25uZWN0aW9ucyBvbiBUeXBlLUMgcG9ydHMuCi0JICogU2tpcCB0aGlzIHN0ZXAgZm9yIFRCVC4KLQkgKi8KLQlpZiAoZGlnX3BvcnQtPnRjX3R5cGUgPT0gVENfUE9SVF9VTktOT1dOIHx8Ci0JICAgIGRpZ19wb3J0LT50Y190eXBlID09IFRDX1BPUlRfVEJUKQotCQlyZXR1cm47Ci0KLQlpbnRlbF9kZGlfc2V0X2ZpYV9sYW5lX2NvdW50KGVuY29kZXIsIGNydGNfc3RhdGUsIHBvcnQpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMzY1NiwxMSArMzc0MSwxNSBAQCBpbnRlbF9kZGlfcG9zdF9wbGxfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOworCWJvb2wgaXNfdGNfcG9ydCA9IGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KTsKIAotCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpIHx8Ci0JICAgIGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQorCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpIHx8IGlzX3RjX3BvcnQpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChkZXZfcHJpdiwKIAkJCQkJCSAgaW50ZWxfZGRpX21haW5fbGlua19hdXhfZG9tYWluKGRpZ19wb3J0KSk7CisKKwlpZiAoaXNfdGNfcG9ydCkKKwkJaW50ZWxfdGNfcG9ydF9wdXRfbGluayhkaWdfcG9ydCk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVwYXJlX2xpbmtfcmV0cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQpAQCAtMzczNyw3ICszODI2LDYgQEAgdm9pZCBpbnRlbF9kZGlfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyOwotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0OwogCXUzMiB0ZW1wLCBmbGFncyA9IDA7CiAKIAkvKiBYWFg6IERTSSB0cmFuc2NvZGVyIHBhcmFub2lhICovCkBAIC0zNzc2LDcgKzM4NjQsNiBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN3aXRjaCAodGVtcCAmIFRSQU5TX0RESV9NT0RFX1NFTEVDVF9NQVNLKSB7CiAJY2FzZSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfSERNSToKIAkJcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgPSB0cnVlOwotCQlpbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAKIAkJcGlwZV9jb25maWctPmluZm9mcmFtZXMuZW5hYmxlIHw9CiAJCQlpbnRlbF9oZG1pX2luZm9mcmFtZXNfZW5hYmxlZChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7CkBAIC0zOTE0LDQ5ICs0MDAxLDE4IEBAIHN0YXRpYyBpbnQgaW50ZWxfZGRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQotewotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCi0JaW50ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kKGVuY29kZXIpOwotCi0JLyoKLQkgKiBUT0RPOiBkaXNjb25uZWN0IGFsc28gZnJvbSBVU0IgRFAgYWx0ZXJuYXRlIG1vZGUgb25jZSB3ZSBoYXZlIGEKLQkgKiB3YXkgdG8gaGFuZGxlIHRoZSBtb2Rlc2V0IHJlc3RvcmUgaW4gdGhhdCBtb2RlIGR1cmluZyByZXN1bWUKLQkgKiBldmVuIGlmIHRoZSBzaW5rIGhhcyBkaXNhcHBlYXJlZCB3aGlsZSBiZWluZyBzdXNwZW5kZWQuCi0JICovCi0JaWYgKGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCkKLQkJaWNsX3RjX3BoeV9kaXNjb25uZWN0KGk5MTUsIGRpZ19wb3J0KTsKLX0KLQotc3RhdGljIHZvaWQgaW50ZWxfZGRpX2VuY29kZXJfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jb2RlcikKLXsKLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChkcm1fZW5jb2Rlcik7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRybV9lbmNvZGVyLT5kZXYpOwotCi0JaWYgKGludGVsX3BvcnRfaXNfdGMoaTkxNSwgZGlnX3BvcnQtPmJhc2UucG9ydCkpCi0JCWludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoJmRpZ19wb3J0LT5iYXNlKTsKLQotCWludGVsX2RwX2VuY29kZXJfcmVzZXQoZHJtX2VuY29kZXIpOwotfQotCiBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsKIAogCWludGVsX2RwX2VuY29kZXJfZmx1c2hfd29yayhlbmNvZGVyKTsKIAotCWlmIChpbnRlbF9wb3J0X2lzX3RjKGk5MTUsIGRpZ19wb3J0LT5iYXNlLnBvcnQpKQotCQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoaTkxNSwgZGlnX3BvcnQpOwotCiAJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKIAlrZnJlZShkaWdfcG9ydCk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgaW50ZWxfZGRpX2Z1bmNzID0gewotCS5yZXNldCA9IGludGVsX2RkaV9lbmNvZGVyX3Jlc2V0LAorCS5yZXNldCA9IGludGVsX2RwX2VuY29kZXJfcmVzZXQsCiAJLmRlc3Ryb3kgPSBpbnRlbF9kZGlfZW5jb2Rlcl9kZXN0cm95LAogfTsKIApAQCAtNDA4MSwxNCArNDEzNywxNyBAQCBzdGF0aWMgaW50IGludGVsX2hkbWlfcmVzZXRfbGluayhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlyZXR1cm4gbW9kZXNldF9waXBlKCZjcnRjLT5iYXNlLCBjdHgpOwogfQogCi1zdGF0aWMgYm9vbCBpbnRlbF9kZGlfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyBlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUKK2ludGVsX2RkaV9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJICBib29sIGlycV9yZWNlaXZlZCkKIHsKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKLQlib29sIGNoYW5nZWQ7CisJZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlIHN0YXRlOwogCWludCByZXQ7CiAKLQljaGFuZ2VkID0gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3Rvcik7CisJc3RhdGUgPSBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29ubmVjdG9yLCBpcnFfcmVjZWl2ZWQpOwogCiAJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwogCkBAIC00MTEwLDcgKzQxNjksMjcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZGRpX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwogCVdBUk4ocmV0LCAiQWNxdWlyaW5nIG1vZGVzZXQgbG9ja3MgZmFpbGVkIHdpdGggJWlcbiIsIHJldCk7CiAKLQlyZXR1cm4gY2hhbmdlZDsKKwkvKgorCSAqIFVucG93ZXJlZCB0eXBlLWMgZG9uZ2xlcyBjYW4gdGFrZSBzb21lIHRpbWUgdG8gYm9vdCBhbmQgYmUKKwkgKiByZXNwb25zaWJsZSwgc28gaGVyZSBnaXZpbmcgc29tZSB0aW1lIHRvIHRob3NlIGRvbmdsZXMgdG8gcG93ZXIgdXAKKwkgKiBhbmQgdGhlbiByZXRyeWluZyB0aGUgcHJvYmUuCisJICoKKwkgKiBPbiBtYW55IHBsYXRmb3JtcyB0aGUgSERNSSBsaXZlIHN0YXRlIHNpZ25hbCBpcyBrbm93biB0byBiZQorCSAqIHVucmVsaWFibGUsIHNvIHdlIGNhbid0IHVzZSBpdCB0byBkZXRlY3QgaWYgYSBzaW5rIGlzIGNvbm5lY3RlZCBvcgorCSAqIG5vdC4gSW5zdGVhZCB3ZSBkZXRlY3QgaWYgaXQncyBjb25uZWN0ZWQgYmFzZWQgb24gd2hldGhlciB3ZSBjYW4KKwkgKiByZWFkIHRoZSBFRElEIG9yIG5vdC4gVGhhdCBpbiB0dXJuIGhhcyBhIHByb2JsZW0gZHVyaW5nIGRpc2Nvbm5lY3QsCisJICogc2luY2UgdGhlIEhQRCBpbnRlcnJ1cHQgbWF5IGJlIHJhaXNlZCBiZWZvcmUgdGhlIEREQyBsaW5lcyBnZXQKKwkgKiBkaXNjb25uZWN0ZWQgKGR1ZSB0byBob3cgdGhlIHJlcXVpcmVkIGxlbmd0aCBvZiBEREMgdnMuIEhQRAorCSAqIGNvbm5lY3RvciBwaW5zIGFyZSBzcGVjaWZpZWQpIGFuZCBzbyB3ZSdsbCBzdGlsbCBiZSBhYmxlIHRvIGdldCBhCisJICogdmFsaWQgRURJRC4gVG8gc29sdmUgdGhpcyBzY2hlZHVsZSBhbm90aGVyIGRldGVjdGlvbiBjeWNsZSBpZiB0aGlzCisJICogdGltZSBhcm91bmQgd2UgZGlkbid0IGRldGVjdCBhbnkgY2hhbmdlIGluIHRoZSBzaW5rJ3MgY29ubmVjdGlvbgorCSAqIHN0YXR1cy4KKwkgKi8KKwlpZiAoc3RhdGUgPT0gSU5URUxfSE9UUExVR19VTkNIQU5HRUQgJiYgaXJxX3JlY2VpdmVkICYmCisJICAgICFkaWdfcG9ydC0+ZHAuaXNfbXN0KQorCQlzdGF0ZSA9IElOVEVMX0hPVFBMVUdfUkVUUlk7CisKKwlyZXR1cm4gc3RhdGU7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICoKQEAgLTQxOTgsNiArNDI3Nyw3IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CiAJYm9vbCBpbml0X2hkbWksIGluaXRfZHAsIGluaXRfbHNwY29uID0gZmFsc2U7CiAJZW51bSBwaXBlIHBpcGU7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCiAJaW5pdF9oZG1pID0gcG9ydF9pbmZvLT5zdXBwb3J0c19kdmkgfHwgcG9ydF9pbmZvLT5zdXBwb3J0c19oZG1pOwogCWluaXRfZHAgPSBwb3J0X2luZm8tPnN1cHBvcnRzX2RwOwpAQCAtNDI0Miw3ICs0MzIyLDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogCWludGVsX2VuY29kZXItPnVwZGF0ZV9waXBlID0gaW50ZWxfZGRpX3VwZGF0ZV9waXBlOwogCWludGVsX2VuY29kZXItPmdldF9od19zdGF0ZSA9IGludGVsX2RkaV9nZXRfaHdfc3RhdGU7CiAJaW50ZWxfZW5jb2Rlci0+Z2V0X2NvbmZpZyA9IGludGVsX2RkaV9nZXRfY29uZmlnOwotCWludGVsX2VuY29kZXItPnN1c3BlbmQgPSBpbnRlbF9kZGlfZW5jb2Rlcl9zdXNwZW5kOworCWludGVsX2VuY29kZXItPnN1c3BlbmQgPSBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQ7CiAJaW50ZWxfZW5jb2Rlci0+Z2V0X3Bvd2VyX2RvbWFpbnMgPSBpbnRlbF9kZGlfZ2V0X3Bvd2VyX2RvbWFpbnM7CiAJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9EREk7CiAJaW50ZWxfZW5jb2Rlci0+cG93ZXJfZG9tYWluID0gaW50ZWxfcG9ydF90b19wb3dlcl9kb21haW4ocG9ydCk7CkBAIC00MjYxLDkgKzQzNDEsMTUgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogCWludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMgPSBpbnRlbF9kZGlfbWF4X2xhbmVzKGludGVsX2RpZ19wb3J0KTsKIAlpbnRlbF9kaWdfcG9ydC0+YXV4X2NoID0gaW50ZWxfYmlvc19wb3J0X2F1eF9jaChkZXZfcHJpdiwgcG9ydCk7CiAKLQlpbnRlbF9kaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQgPSBpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBwb3J0KSAmJgotCQkJCQkgIXBvcnRfaW5mby0+c3VwcG9ydHNfdHlwZWNfdXNiICYmCi0JCQkJCSAhcG9ydF9pbmZvLT5zdXBwb3J0c190YnQ7CisJaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkgeworCQlib29sIGlzX2xlZ2FjeSA9ICFwb3J0X2luZm8tPnN1cHBvcnRzX3R5cGVjX3VzYiAmJgorCQkJCSAhcG9ydF9pbmZvLT5zdXBwb3J0c190YnQ7CisKKwkJaW50ZWxfdGNfcG9ydF9pbml0KGludGVsX2RpZ19wb3J0LCBpc19sZWdhY3kpOworCisJCWludGVsX2VuY29kZXItPnVwZGF0ZV9wcmVwYXJlID0gaW50ZWxfZGRpX3VwZGF0ZV9wcmVwYXJlOworCQlpbnRlbF9lbmNvZGVyLT51cGRhdGVfY29tcGxldGUgPSBpbnRlbF9kZGlfdXBkYXRlX2NvbXBsZXRlOworCX0KIAogCXN3aXRjaCAocG9ydCkgewogCWNhc2UgUE9SVF9BOgpAQCAtNDI5MCw2ICs0Mzc2LDE4IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKIAkJaW50ZWxfZGlnX3BvcnQtPmRkaV9pb19wb3dlcl9kb21haW4gPQogCQkJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU87CiAJCWJyZWFrOworCWNhc2UgUE9SVF9HOgorCQlpbnRlbF9kaWdfcG9ydC0+ZGRpX2lvX3Bvd2VyX2RvbWFpbiA9CisJCQlQT1dFUl9ET01BSU5fUE9SVF9ERElfR19JTzsKKwkJYnJlYWs7CisJY2FzZSBQT1JUX0g6CisJCWludGVsX2RpZ19wb3J0LT5kZGlfaW9fcG93ZXJfZG9tYWluID0KKwkJCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9IX0lPOworCQlicmVhazsKKwljYXNlIFBPUlRfSToKKwkJaW50ZWxfZGlnX3BvcnQtPmRkaV9pb19wb3dlcl9kb21haW4gPQorCQkJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0lfSU87CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCU1JU1NJTkdfQ0FTRShwb3J0KTsKIAl9CkBAIC00MzI0LDkgKzQ0MjIsNiBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiAKIAlpbnRlbF9pbmZvZnJhbWVfaW5pdChpbnRlbF9kaWdfcG9ydCk7CiAKLQlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpCi0JCWludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoaW50ZWxfZW5jb2Rlcik7Ci0KIAlyZXR1cm47CiAKIGVycjoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNTkyYjkyNy4uYjUxZDFjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlbC1pb21tdS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2VydmF0aW9uLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdmdhYXJiLmg+CiAKQEAgLTYyLDkgKzYyLDkgQEAKICNpbmNsdWRlICJpbnRlbF9hdG9taWMuaCIKICNpbmNsdWRlICJpbnRlbF9hdG9taWNfcGxhbmUuaCIKICNpbmNsdWRlICJpbnRlbF9idy5oIgotI2luY2x1ZGUgImludGVsX2NvbG9yLmgiCiAjaW5jbHVkZSAiaW50ZWxfY2RjbGsuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9jb2xvci5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9mYmMuaCIKICNpbmNsdWRlICJpbnRlbF9mYmRldi5oIgogI2luY2x1ZGUgImludGVsX2ZpZm9fdW5kZXJydW4uaCIKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlICJpbnRlbF9xdWlya3MuaCIKICNpbmNsdWRlICJpbnRlbF9zaWRlYmFuZC5oIgogI2luY2x1ZGUgImludGVsX3Nwcml0ZS5oIgorI2luY2x1ZGUgImludGVsX3RjLmgiCiAKIC8qIFByaW1hcnkgcGxhbmUgZm9ybWF0cyBmb3IgZ2VuIDw9IDMgKi8KIHN0YXRpYyBjb25zdCB1MzIgaTh4eF9wcmltYXJ5X2Zvcm1hdHNbXSA9IHsKQEAgLTUxNSw5ICs1MTYsOSBAQCBpY2xfd2Ffc2NhbGVyY2xrZ2F0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUsCiB9CiAKIHN0YXRpYyBib29sCi1uZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCituZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSkKIHsKLQlyZXR1cm4gZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoc3RhdGUpOworCXJldHVybiBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmc3RhdGUtPmJhc2UpOwogfQogCiAvKgpAQCAtMTA3Niw5ICsxMDc3LDggQEAgaW50ZWxfd2FpdF9mb3JfcGlwZV9vZmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogCQlpOTE1X3JlZ190IHJlZyA9IFBJUEVDT05GKGNwdV90cmFuc2NvZGVyKTsKIAogCQkvKiBXYWl0IGZvciB0aGUgUGlwZSBTdGF0ZSB0byBnbyBvZmYgKi8KLQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCQkgICAgcmVnLCBJOTY1X1BJUEVDT05GX0FDVElWRSwgMCwKLQkJCQkJICAgIDEwMCkpCisJCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9jbGVhcihkZXZfcHJpdiwgcmVnLAorCQkJCQkgICAgSTk2NV9QSVBFQ09ORl9BQ1RJVkUsIDEwMCkpCiAJCQlXQVJOKDEsICJwaXBlX29mZiB3YWl0IHRpbWVkIG91dFxuIik7CiAJfSBlbHNlIHsKIAkJaW50ZWxfd2FpdF9mb3JfcGlwZV9zY2FubGluZV9zdG9wcGVkKGNydGMpOwpAQCAtMTM4MiwxMSArMTM4Miw3IEBAIHN0YXRpYyB2b2lkIF92bHZfZW5hYmxlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlQT1NUSU5HX1JFQUQoRFBMTChwaXBlKSk7CiAJdWRlbGF5KDE1MCk7CiAKLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIERQTEwocGlwZSksCi0JCQkJICAgIERQTExfTE9DS19WTFYsCi0JCQkJICAgIERQTExfTE9DS19WTFYsCi0JCQkJICAgIDEpKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIERQTEwocGlwZSksIERQTExfTE9DS19WTFYsIDEpKQogCQlEUk1fRVJST1IoIkRQTEwgJWQgZmFpbGVkIHRvIGxvY2tcbiIsIHBpcGUpOwogfQogCkBAIC0xNDM1LDkgKzE0MzEsNyBAQCBzdGF0aWMgdm9pZCBfY2h2X2VuYWJsZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJSTkxNV9XUklURShEUExMKHBpcGUpLCBwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsKTsKIAogCS8qIENoZWNrIFBMTCBpcyBsb2NrZWQgKi8KLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIERQTEwocGlwZSksIERQTExfTE9DS19WTFYsIERQTExfTE9DS19WTFYsCi0JCQkJICAgIDEpKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIERQTEwocGlwZSksIERQTExfTE9DS19WTFYsIDEpKQogCQlEUk1fRVJST1IoIlBMTCAlZCBmYWlsZWQgdG8gbG9ja1xuIiwgcGlwZSk7CiB9CiAKQEAgLTE2MTYsOSArMTYxMCw4IEBAIHZvaWQgdmx2X3dhaXRfcG9ydF9yZWFkeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCUJVRygpOwogCX0KIAotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgZHBsbF9yZWcsIHBvcnRfbWFzaywgZXhwZWN0ZWRfbWFzaywKLQkJCQkgICAgMTAwMCkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LCBkcGxsX3JlZywKKwkJCQkgICAgICAgcG9ydF9tYXNrLCBleHBlY3RlZF9tYXNrLCAxMDAwKSkKIAkJV0FSTigxLCAidGltZWQgb3V0IHdhaXRpbmcgZm9yIHBvcnQgJWMgcmVhZHk6IGdvdCAweCV4LCBleHBlY3RlZCAweCV4XG4iLAogCQkgICAgIHBvcnRfbmFtZShkcG9ydC0+YmFzZS5wb3J0KSwKIAkJICAgICBJOTE1X1JFQUQoZHBsbF9yZWcpICYgcG9ydF9tYXNrLCBleHBlY3RlZF9tYXNrKTsKQEAgLTE2NzcsOSArMTY3MCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2VuYWJsZV9wY2hfdHJhbnNjb2Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zCiAJfQogCiAJSTkxNV9XUklURShyZWcsIHZhbCB8IFRSQU5TX0VOQUJMRSk7Ci0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICByZWcsIFRSQU5TX1NUQVRFX0VOQUJMRSwgVFJBTlNfU1RBVEVfRU5BQkxFLAotCQkJCSAgICAxMDApKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIHJlZywgVFJBTlNfU1RBVEVfRU5BQkxFLCAxMDApKQogCQlEUk1fRVJST1IoImZhaWxlZCB0byBlbmFibGUgdHJhbnNjb2RlciAlY1xuIiwgcGlwZV9uYW1lKHBpcGUpKTsKIH0KIApAQCAtMTcwNywxMSArMTY5OCw4IEBAIHN0YXRpYyB2b2lkIGxwdF9lbmFibGVfcGNoX3RyYW5zY29kZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQl2YWwgfD0gVFJBTlNfUFJPR1JFU1NJVkU7CiAKIAlJOTE1X1dSSVRFKExQVF9UUkFOU0NPTkYsIHZhbCk7Ci0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBMUFRfVFJBTlNDT05GLAotCQkJCSAgICBUUkFOU19TVEFURV9FTkFCTEUsCi0JCQkJICAgIFRSQU5TX1NUQVRFX0VOQUJMRSwKLQkJCQkgICAgMTAwKSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBMUFRfVFJBTlNDT05GLAorCQkJCSAgVFJBTlNfU1RBVEVfRU5BQkxFLCAxMDApKQogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBlbmFibGUgUENIIHRyYW5zY29kZXJcbiIpOwogfQogCkBAIC0xNzMzLDkgKzE3MjEsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9kaXNhYmxlX3BjaF90cmFuc2NvZGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl2YWwgJj0gflRSQU5TX0VOQUJMRTsKIAlJOTE1X1dSSVRFKHJlZywgdmFsKTsKIAkvKiB3YWl0IGZvciBQQ0ggdHJhbnNjb2RlciBvZmYsIHRyYW5zY29kZXIgc3RhdGUgKi8KLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIHJlZywgVFJBTlNfU1RBVEVfRU5BQkxFLCAwLAotCQkJCSAgICA1MCkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2LCByZWcsIFRSQU5TX1NUQVRFX0VOQUJMRSwgNTApKQogCQlEUk1fRVJST1IoImZhaWxlZCB0byBkaXNhYmxlIHRyYW5zY29kZXIgJWNcbiIsIHBpcGVfbmFtZShwaXBlKSk7CiAKIAlpZiAoSEFTX1BDSF9DUFQoZGV2X3ByaXYpKSB7CkBAIC0xNzU1LDkgKzE3NDEsOCBAQCB2b2lkIGxwdF9kaXNhYmxlX3BjaF90cmFuc2NvZGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAl2YWwgJj0gflRSQU5TX0VOQUJMRTsKIAlJOTE1X1dSSVRFKExQVF9UUkFOU0NPTkYsIHZhbCk7CiAJLyogd2FpdCBmb3IgUENIIHRyYW5zY29kZXIgb2ZmLCB0cmFuc2NvZGVyIHN0YXRlICovCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBMUFRfVFJBTlNDT05GLCBUUkFOU19TVEFURV9FTkFCTEUsIDAsCi0JCQkJICAgIDUwKSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIExQVF9UUkFOU0NPTkYsCisJCQkJICAgIFRSQU5TX1NUQVRFX0VOQUJMRSwgNTApKQogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBkaXNhYmxlIFBDSCB0cmFuc2NvZGVyXG4iKTsKIAogCS8qIFdvcmthcm91bmQ6IGNsZWFyIHRpbWluZyBvdmVycmlkZSBiaXQuICovCkBAIC0zMDQ4LDEyICszMDMzLDEzIEBAIGludGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IE5VTEw7CiAJc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgbW9kZV9jbWQgPSB7IDAgfTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9ICZwbGFuZV9jb25maWctPmZiLT5iYXNlOwogCXUzMiBiYXNlX2FsaWduZWQgPSByb3VuZF9kb3duKHBsYW5lX2NvbmZpZy0+YmFzZSwgUEFHRV9TSVpFKTsKIAl1MzIgc2l6ZV9hbGlnbmVkID0gcm91bmRfdXAocGxhbmVfY29uZmlnLT5iYXNlICsgcGxhbmVfY29uZmlnLT5zaXplLAogCQkJCSAgICBQQUdFX1NJWkUpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJYm9vbCByZXQgPSBmYWxzZTsKIAogCXNpemVfYWxpZ25lZCAtPSBiYXNlX2FsaWduZWQ7CiAKQEAgLTMwOTUsNyArMzA4MSw3IEBAIGludGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQlicmVhazsKIAlkZWZhdWx0OgogCQlNSVNTSU5HX0NBU0UocGxhbmVfY29uZmlnLT50aWxpbmcpOwotCQlyZXR1cm4gZmFsc2U7CisJCWdvdG8gb3V0OwogCX0KIAogCW1vZGVfY21kLnBpeGVsX2Zvcm1hdCA9IGZiLT5mb3JtYXQtPmZvcm1hdDsKQEAgLTMxMDcsMTYgKzMwOTMsMTUgQEAgaW50ZWxfYWxsb2NfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIAlpZiAoaW50ZWxfZnJhbWVidWZmZXJfaW5pdCh0b19pbnRlbF9mcmFtZWJ1ZmZlcihmYiksIG9iaiwgJm1vZGVfY21kKSkgewogCQlEUk1fREVCVUdfS01TKCJpbnRlbCBmYiBpbml0IGZhaWxlZFxuIik7Ci0JCWdvdG8gb3V0X3VucmVmX29iajsKKwkJZ290byBvdXQ7CiAJfQogCiAKIAlEUk1fREVCVUdfS01TKCJpbml0aWFsIHBsYW5lIGZiIG9iaiAlcFxuIiwgb2JqKTsKLQlyZXR1cm4gdHJ1ZTsKLQotb3V0X3VucmVmX29iajoKKwlyZXQgPSB0cnVlOworb3V0OgogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKLQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTMxNzMsNiArMzE1OCwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wbGFuZV9kaXNhYmxlX25vYXRvbWljKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWludGVsX2Rpc2FibGVfcGxhbmUocGxhbmUsIGNydGNfc3RhdGUpOwogfQogCitzdGF0aWMgc3RydWN0IGludGVsX2Zyb250YnVmZmVyICoKK3RvX2ludGVsX2Zyb250YnVmZmVyKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQoreworCXJldHVybiBmYiA/IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKS0+ZnJvbnRidWZmZXIgOiBOVUxMOworfQorCiBzdGF0aWMgdm9pZAogaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJCSAgICAgc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnICpwbGFuZV9jb25maWcpCkBAIC0zMTgwLDcgKzMxNzEsNiBAQCBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGRybV9jcnRjICpjOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSA9IGludGVsX2NydGMtPmJhc2UucHJpbWFyeTsKIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9IHByaW1hcnktPnN0YXRlOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwcmltYXJ5KTsKQEAgLTMyNTYsOCArMzI0Niw3IEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCXJldHVybjsKIAl9CiAKLQlvYmogPSBpbnRlbF9mYl9vYmooZmIpOwotCWludGVsX2ZiX29ial9mbHVzaChvYmosIE9SSUdJTl9ESVJUWUZCKTsKKwlpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaCh0b19pbnRlbF9mcm9udGJ1ZmZlcihmYiksIE9SSUdJTl9ESVJUWUZCKTsKIAogCXBsYW5lX3N0YXRlLT5zcmNfeCA9IDA7CiAJcGxhbmVfc3RhdGUtPnNyY195ID0gMDsKQEAgLTMyNzIsMTQgKzMyNjEsMTQgQEAgaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAlpbnRlbF9zdGF0ZS0+YmFzZS5zcmMgPSBkcm1fcGxhbmVfc3RhdGVfc3JjKHBsYW5lX3N0YXRlKTsKIAlpbnRlbF9zdGF0ZS0+YmFzZS5kc3QgPSBkcm1fcGxhbmVfc3RhdGVfZGVzdChwbGFuZV9zdGF0ZSk7CiAKLQlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3RpbGVkKG9iaikpCisJaWYgKHBsYW5lX2NvbmZpZy0+dGlsaW5nKQogCQlkZXZfcHJpdi0+cHJlc2VydmVfYmlvc19zd2l6emxlID0gdHJ1ZTsKIAogCXBsYW5lX3N0YXRlLT5mYiA9IGZiOwogCXBsYW5lX3N0YXRlLT5jcnRjID0gJmludGVsX2NydGMtPmJhc2U7CiAKIAlhdG9taWNfb3IodG9faW50ZWxfcGxhbmUocHJpbWFyeSktPmZyb250YnVmZmVyX2JpdCwKLQkJICAmb2JqLT5mcm9udGJ1ZmZlcl9iaXRzKTsKKwkJICAmdG9faW50ZWxfZnJvbnRidWZmZXIoZmIpLT5iaXRzKTsKIH0KIAogc3RhdGljIGludCBza2xfbWF4X3BsYW5lX3dpZHRoKGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLApAQCAtMzcxNSwxMCArMzcwNCwyNyBAQCBpbnQgaTl4eF9jaGVja19wbGFuZV9zdXJmYWNlKHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBib29sIGk5eHhfcGxhbmVfaGFzX3dpbmRvd2luZyhzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKKwllbnVtIGk5eHhfcGxhbmVfaWQgaTl4eF9wbGFuZSA9IHBsYW5lLT5pOXh4X3BsYW5lOworCisJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQorCQlyZXR1cm4gaTl4eF9wbGFuZSA9PSBQTEFORV9COworCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSB8fCBJU19HNFgoZGV2X3ByaXYpKQorCQlyZXR1cm4gZmFsc2U7CisJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA0KSkKKwkJcmV0dXJuIGk5eHhfcGxhbmUgPT0gUExBTkVfQzsKKwllbHNlCisJCXJldHVybiBpOXh4X3BsYW5lID09IFBMQU5FX0IgfHwKKwkJCWk5eHhfcGxhbmUgPT0gUExBTkVfQzsKK30KKwogc3RhdGljIGludAogaTl4eF9wbGFuZV9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CisJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlpbnQgcmV0OwogCiAJcmV0ID0gY2h2X3BsYW5lX2NoZWNrX3JvdGF0aW9uKHBsYW5lX3N0YXRlKTsKQEAgLTM3MjksNyArMzczNSw4IEBAIGk5eHhfcGxhbmVfY2hlY2soc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJCQkgICZjcnRjX3N0YXRlLT5iYXNlLAogCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCiAJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKLQkJCQkJCSAgZmFsc2UsIHRydWUpOworCQkJCQkJICBpOXh4X3BsYW5lX2hhc193aW5kb3dpbmcocGxhbmUpLAorCQkJCQkJICB0cnVlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0zNzU4LDYgKzM3NjUsMTAgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAl1MzIgbGluZWFyX29mZnNldDsKIAlpbnQgeCA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVswXS54OwogCWludCB5ID0gcGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lWzBdLnk7CisJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5iYXNlLmRzdC54MTsKKwlpbnQgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmJhc2UuZHN0LnkxOworCWludCBjcnRjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2UuZHN0KTsKKwlpbnQgY3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+YmFzZS5kc3QpOwogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CiAJdTMyIGRzcGFkZHJfb2Zmc2V0OwogCXUzMiBkc3BjbnRyOwpAQCAtMzc3NiwxOCArMzc4NywxOCBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCUk5MTVfV1JJVEVfRlcoRFNQU1RSSURFKGk5eHhfcGxhbmUpLCBwbGFuZV9zdGF0ZS0+Y29sb3JfcGxhbmVbMF0uc3RyaWRlKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCkgewotCQkvKiBwaXBlc3JjIGFuZCBkc3BzaXplIGNvbnRyb2wgdGhlIHNpemUgdGhhdCBpcyBzY2FsZWQgZnJvbSwKLQkJICogd2hpY2ggc2hvdWxkIGFsd2F5cyBiZSB0aGUgdXNlcidzIHJlcXVlc3RlZCBzaXplLgorCQkvKgorCQkgKiBQTEFORV9BIGRvZXNuJ3QgYWN0dWFsbHkgaGF2ZSBhIGZ1bGwgd2luZG93CisJCSAqIGdlbmVyYXRvciBidXQgbGV0J3MgYXNzdW1lIHdlIHN0aWxsIG5lZWQgdG8KKwkJICogcHJvZ3JhbSB3aGF0ZXZlciBpcyB0aGVyZS4KIAkJICovCi0JCUk5MTVfV1JJVEVfRlcoRFNQUE9TKGk5eHhfcGxhbmUpLCAwKTsKKwkJSTkxNV9XUklURV9GVyhEU1BQT1MoaTl4eF9wbGFuZSksIChjcnRjX3kgPDwgMTYpIHwgY3J0Y194KTsKIAkJSTkxNV9XUklURV9GVyhEU1BTSVpFKGk5eHhfcGxhbmUpLAotCQkJICAgICAgKChjcnRjX3N0YXRlLT5waXBlX3NyY19oIC0gMSkgPDwgMTYpIHwKLQkJCSAgICAgIChjcnRjX3N0YXRlLT5waXBlX3NyY193IC0gMSkpOworCQkJICAgICAgKChjcnRjX2ggLSAxKSA8PCAxNikgfCAoY3J0Y193IC0gMSkpOwogCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYgaTl4eF9wbGFuZSA9PSBQTEFORV9CKSB7Ci0JCUk5MTVfV1JJVEVfRlcoUFJJTVBPUyhpOXh4X3BsYW5lKSwgMCk7CisJCUk5MTVfV1JJVEVfRlcoUFJJTVBPUyhpOXh4X3BsYW5lKSwgKGNydGNfeSA8PCAxNikgfCBjcnRjX3gpOwogCQlJOTE1X1dSSVRFX0ZXKFBSSU1TSVpFKGk5eHhfcGxhbmUpLAotCQkJICAgICAgKChjcnRjX3N0YXRlLT5waXBlX3NyY19oIC0gMSkgPDwgMTYpIHwKLQkJCSAgICAgIChjcnRjX3N0YXRlLT5waXBlX3NyY193IC0gMSkpOworCQkJICAgICAgKChjcnRjX2ggLSAxKSA8PCAxNikgfCAoY3J0Y193IC0gMSkpOwogCQlJOTE1X1dSSVRFX0ZXKFBSSU1DTlNUQUxQSEEoaTl4eF9wbGFuZSksIDApOwogCX0KIApAQCAtMzk1MCwxMCArMzk2MSwxMCBAQCBzdGF0aWMgdTMyIHNrbF9wbGFuZV9jdGxfZm9ybWF0KHUzMiBwaXhlbF9mb3JtYXQpCiAJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4OgogCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKIAkJcmV0dXJuIFBMQU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4OworCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMDoKKwkJcmV0dXJuIFBMQU5FX0NUTF9GT1JNQVRfWFJHQl8yMTAxMDEwIHwgUExBTkVfQ1RMX09SREVSX1JHQlg7CiAJY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOgogCQlyZXR1cm4gUExBTkVfQ1RMX0ZPUk1BVF9YUkdCXzIxMDEwMTA7Ci0JY2FzZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgotCQlyZXR1cm4gUExBTkVfQ1RMX09SREVSX1JHQlggfCBQTEFORV9DVExfRk9STUFUX1hSR0JfMjEwMTAxMDsKIAljYXNlIERSTV9GT1JNQVRfWEJHUjE2MTYxNjE2RjoKIAljYXNlIERSTV9GT1JNQVRfQUJHUjE2MTYxNjE2RjoKIAkJcmV0dXJuIFBMQU5FX0NUTF9GT1JNQVRfWFJHQl8xNjE2MTYxNkYgfCBQTEFORV9DVExfT1JERVJfUkdCWDsKQEAgLTQyNDgsMTIgKzQyNTksMTMgQEAgdm9pZCBpbnRlbF9wcmVwYXJlX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJcmV0dXJuOwogCiAJLyogV2UgaGF2ZSBhIG1vZGVzZXQgdnMgcmVzZXQgZGVhZGxvY2ssIGRlZmVuc2l2ZWx5IHVuYnJlYWsgaXQuICovCi0Jc2V0X2JpdChJOTE1X1JFU0VUX01PREVTRVQsICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKTsKLQl3YWtlX3VwX2FsbCgmZGV2X3ByaXYtPmdwdV9lcnJvci53YWl0X3F1ZXVlKTsKKwlzZXRfYml0KEk5MTVfUkVTRVRfTU9ERVNFVCwgJmRldl9wcml2LT5ndC5yZXNldC5mbGFncyk7CisJc21wX21iX19hZnRlcl9hdG9taWMoKTsKKwl3YWtlX3VwX2JpdCgmZGV2X3ByaXYtPmd0LnJlc2V0LmZsYWdzLCBJOTE1X1JFU0VUX01PREVTRVQpOwogCiAJaWYgKGF0b21pY19yZWFkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnBlbmRpbmdfZmJfcGluKSkgewogCQlEUk1fREVCVUdfS01TKCJNb2Rlc2V0IHBvdGVudGlhbGx5IHN0dWNrLCB1bmJyZWFraW5nIHRocm91Z2ggd2VkZ2luZ1xuIik7Ci0JCWk5MTVfZ2VtX3NldF93ZWRnZWQoZGV2X3ByaXYpOworCQlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZkZXZfcHJpdi0+Z3QpOwogCX0KIAogCS8qCkBAIC00Mjk5LDcgKzQzMTEsNyBAQCB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaW50IHJldDsKIAogCS8qIHJlc2V0IGRvZXNuJ3QgdG91Y2ggdGhlIGRpc3BsYXkgKi8KLQlpZiAoIXRlc3RfYml0KEk5MTVfUkVTRVRfTU9ERVNFVCwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpKQorCWlmICghdGVzdF9iaXQoSTkxNV9SRVNFVF9NT0RFU0VULCAmZGV2X3ByaXYtPmd0LnJlc2V0LmZsYWdzKSkKIAkJcmV0dXJuOwogCiAJc3RhdGUgPSBmZXRjaF9hbmRfemVybygmZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9zdGF0ZSk7CkBAIC00MzM5LDcgKzQzNTEsNyBAQCB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKGN0eCk7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKIAotCWNsZWFyX2JpdChJOTE1X1JFU0VUX01PREVTRVQsICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKTsKKwljbGVhcl9iaXRfdW5sb2NrKEk5MTVfUkVTRVRfTU9ERVNFVCwgJmRldl9wcml2LT5ndC5yZXNldC5mbGFncyk7CiB9CiAKIHN0YXRpYyB2b2lkIGljbF9zZXRfcGlwZV9jaGlja2VuKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQpAQCAtNTY2OSw5ICs1NjgxLDcgQEAgdm9pZCBoc3dfZW5hYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJICogYW5kIGRvbid0IHdhaXQgZm9yIHZibGFua3MgdW50aWwgdGhlIGVuZCBvZiBjcnRjX2VuYWJsZSwgdGhlbgogCQkgKiB0aGUgSFcgc3RhdGUgcmVhZG91dCBjb2RlIHdpbGwgY29tcGxhaW4gdGhhdCB0aGUgZXhwZWN0ZWQKIAkJICogSVBTX0NUTCB2YWx1ZSBpcyBub3QgdGhlIG9uZSB3ZSByZWFkLiAqLwotCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJCSAgICBJUFNfQ1RMLCBJUFNfRU5BQkxFLCBJUFNfRU5BQkxFLAotCQkJCQkgICAgNTApKQorCQlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBJUFNfQ1RMLCBJUFNfRU5BQkxFLCA1MCkpCiAJCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBJUFMgZW5hYmxlXG4iKTsKIAl9CiB9CkBAIC01NjkyLDkgKzU3MDIsNyBAQCB2b2lkIGhzd19kaXNhYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJICogNDJtcyB0aW1lb3V0IHZhbHVlIGxlYWRzIHRvIG9jY2FzaW9uYWwgdGltZW91dHMgc28gdXNlIDEwMG1zCiAJCSAqIGluc3RlYWQuCiAJCSAqLwotCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJCSAgICBJUFNfQ1RMLCBJUFNfRU5BQkxFLCAwLAotCQkJCQkgICAgMTAwKSkKKwkJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2LCBJUFNfQ1RMLCBJUFNfRU5BQkxFLCAxMDApKQogCQkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgSVBTIGRpc2FibGVcbiIpOwogCX0gZWxzZSB7CiAJCUk5MTVfV1JJVEUoSVBTX0NUTCwgMCk7CkBAIC01Nzk2LDcgKzU4MDQsNyBAQCBzdGF0aWMgYm9vbCBoc3dfcHJlX3VwZGF0ZV9kaXNhYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfcwogCWlmICghb2xkX2NydGNfc3RhdGUtPmlwc19lbmFibGVkKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAobmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpKQorCWlmIChuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkKIAkJcmV0dXJuIHRydWU7CiAKIAkvKgpAQCAtNTgyMyw3ICs1ODMxLDcgQEAgc3RhdGljIGJvb2wgaHN3X3Bvc3RfdXBkYXRlX2VuYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3MKIAlpZiAoIW5ld19jcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKG5lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkKKwlpZiAobmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkpCiAJCXJldHVybiB0cnVlOwogCiAJLyoKQEAgLTU4NzcsMTMgKzU4ODUsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQotCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpLAorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSksCiAJCQkJCQljcnRjKTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gY3J0Yy0+YmFzZS5wcmltYXJ5OwogCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wcmltYXJ5X3N0YXRlID0KLQkJZHJtX2F0b21pY19nZXRfb2xkX3BsYW5lX3N0YXRlKG9sZF9zdGF0ZSwgcHJpbWFyeSk7CisJCWRybV9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShzdGF0ZSwgcHJpbWFyeSk7CiAKIAlpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpLCBwaXBlX2NvbmZpZy0+ZmJfYml0cyk7CiAKQEAgLTU4OTUsMTIgKzU5MDMsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogCiAJaWYgKG9sZF9wcmltYXJ5X3N0YXRlKSB7CiAJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19wcmltYXJ5X3N0YXRlID0KLQkJCWRybV9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShvbGRfc3RhdGUsIHByaW1hcnkpOworCQkJZHJtX2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKHN0YXRlLCBwcmltYXJ5KTsKIAogCQlpbnRlbF9mYmNfcG9zdF91cGRhdGUoY3J0Yyk7CiAKIAkJaWYgKG5ld19wcmltYXJ5X3N0YXRlLT52aXNpYmxlICYmCi0JCSAgICAobmVlZHNfbW9kZXNldCgmcGlwZV9jb25maWctPmJhc2UpIHx8CisJCSAgICAobmVlZHNfbW9kZXNldChwaXBlX2NvbmZpZykgfHwKIAkJICAgICAhb2xkX3ByaW1hcnlfc3RhdGUtPnZpc2libGUpKQogCQkJaW50ZWxfcG9zdF9lbmFibGVfcHJpbWFyeSgmY3J0Yy0+YmFzZSwgcGlwZV9jb25maWcpOwogCX0KQEAgLTU5MjAsMjAgKzU5MjgsMjAgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwogCXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnkgPSBjcnRjLT5iYXNlLnByaW1hcnk7CiAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3ByaW1hcnlfc3RhdGUgPQotCQlkcm1fYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUob2xkX3N0YXRlLCBwcmltYXJ5KTsKLQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KCZwaXBlX2NvbmZpZy0+YmFzZSk7Ci0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqb2xkX2ludGVsX3N0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9zdGF0ZSk7CisJCWRybV9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShzdGF0ZSwgcHJpbWFyeSk7CisJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChwaXBlX2NvbmZpZyk7CisJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQorCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwogCiAJaWYgKGhzd19wcmVfdXBkYXRlX2Rpc2FibGVfaXBzKG9sZF9jcnRjX3N0YXRlLCBwaXBlX2NvbmZpZykpCiAJCWhzd19kaXNhYmxlX2lwcyhvbGRfY3J0Y19zdGF0ZSk7CiAKIAlpZiAob2xkX3ByaW1hcnlfc3RhdGUpIHsKIAkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfcHJpbWFyeV9zdGF0ZSA9Ci0JCQlpbnRlbF9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShvbGRfaW50ZWxfc3RhdGUsCisJCQlpbnRlbF9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShpbnRlbF9zdGF0ZSwKIAkJCQkJCQkgdG9faW50ZWxfcGxhbmUocHJpbWFyeSkpOwogCiAJCWludGVsX2ZiY19wcmVfdXBkYXRlKGNydGMsIHBpcGVfY29uZmlnLCBuZXdfcHJpbWFyeV9zdGF0ZSk7CkBAIC01OTg0LDcgKzU5OTIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkgKiBJZiB3ZSdyZSBkb2luZyBhIG1vZGVzZXQsIHdlJ3JlIGRvbmUuICBObyBuZWVkIHRvIGRvIGFueSBwcmUtdmJsYW5rCiAJICogd2F0ZXJtYXJrIHByb2dyYW1taW5nIGhlcmUuCiAJICovCi0JaWYgKG5lZWRzX21vZGVzZXQoJnBpcGVfY29uZmlnLT5iYXNlKSkKKwlpZiAobmVlZHNfbW9kZXNldChwaXBlX2NvbmZpZykpCiAJCXJldHVybjsKIAogCS8qCkBAIC02MDAyLDcgKzYwMTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkgKiB1cyB0by4KIAkgKi8KIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzICE9IE5VTEwpCi0JCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhvbGRfaW50ZWxfc3RhdGUsCisJCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhpbnRlbF9zdGF0ZSwKIAkJCQkJCSAgICAgcGlwZV9jb25maWcpOwogCWVsc2UgaWYgKHBpcGVfY29uZmlnLT51cGRhdGVfd21fcHJlKQogCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKQEAgLTYwMzYsMTkgKzYwNDQsMTExIEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJaW50ZWxfZnJvbnRidWZmZXJfZmxpcChkZXZfcHJpdiwgZmJfYml0cyk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKy8qCisgKiBpbnRlbF9jb25uZWN0b3JfcHJpbWFyeV9lbmNvZGVyIC0gZ2V0IHRoZSBwcmltYXJ5IGVuY29kZXIgZm9yIGEgY29ubmVjdG9yCisgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgZm9yIHdoaWNoIHRvIHJldHVybiB0aGUgZW5jb2RlcgorICoKKyAqIFJldHVybnMgdGhlIHByaW1hcnkgZW5jb2RlciBmb3IgYSBjb25uZWN0b3IuIFRoZXJlIGlzIGEgMToxIG1hcHBpbmcgZnJvbQorICogYWxsIGNvbm5lY3RvcnMgdG8gdGhlaXIgZW5jb2RlciwgZXhjZXB0IGZvciBEUC1NU1QgY29ubmVjdG9ycyB3aGljaCBoYXZlCisgKiBib3RoIGEgdmlydHVhbCBhbmQgYSBwcmltYXJ5IGVuY29kZXIuIFRoZXNlIERQLU1TVCBwcmltYXJ5IGVuY29kZXJzIGNhbiBiZQorICogcG9pbnRlZCB0byBieSBhcyBtYW55IERQLU1TVCBjb25uZWN0b3JzIGFzIHRoZXJlIGFyZSBwaXBlcy4KKyAqLworc3RhdGljIHN0cnVjdCBpbnRlbF9lbmNvZGVyICoKK2ludGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2VuY29kZXIoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOworCisJaWYgKGNvbm5lY3Rvci0+bXN0X3BvcnQpCisJCXJldHVybiAmZHBfdG9fZGlnX3BvcnQoY29ubmVjdG9yLT5tc3RfcG9ydCktPmJhc2U7CisKKwllbmNvZGVyID0gaW50ZWxfYXR0YWNoZWRfZW5jb2RlcigmY29ubmVjdG9yLT5iYXNlKTsKKwlXQVJOX09OKCFlbmNvZGVyKTsKKworCXJldHVybiBlbmNvZGVyOworfQorCitzdGF0aWMgYm9vbAoraW50ZWxfY29ubmVjdG9yX25lZWRzX21vZGVzZXQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGUpCit7CisJc3RydWN0IGludGVsX2NydGMgKm9sZF9jcnRjID0gb2xkX2Nvbm5fc3RhdGUtPmNydGMgPworCQkJCSAgICAgIHRvX2ludGVsX2NydGMob2xkX2Nvbm5fc3RhdGUtPmNydGMpIDogTlVMTDsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqbmV3X2NydGMgPSBuZXdfY29ubl9zdGF0ZS0+Y3J0YyA/CisJCQkJICAgICAgdG9faW50ZWxfY3J0YyhuZXdfY29ubl9zdGF0ZS0+Y3J0YykgOiBOVUxMOworCisJcmV0dXJuIG5ld19jcnRjICE9IG9sZF9jcnRjIHx8CisJICAgICAgIChuZXdfY3J0YyAmJgorCQluZWVkc19tb2Rlc2V0KGludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIG5ld19jcnRjKSkpOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc191cGRhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOworCWludCBpOworCisJZm9yX2VhY2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sCisJCQkJCSAgIG9sZF9jb25uX3N0YXRlLCBuZXdfY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKKwkJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisKKwkJaWYgKCFpbnRlbF9jb25uZWN0b3JfbmVlZHNfbW9kZXNldChzdGF0ZSwKKwkJCQkJCSAgIG9sZF9jb25uX3N0YXRlLAorCQkJCQkJICAgbmV3X2Nvbm5fc3RhdGUpKQorCQkJY29udGludWU7CisKKwkJZW5jb2RlciA9IGludGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2VuY29kZXIodG9faW50ZWxfY29ubmVjdG9yKGNvbm4pKTsKKwkJaWYgKCFlbmNvZGVyLT51cGRhdGVfcHJlcGFyZSkKKwkJCWNvbnRpbnVlOworCisJCWNydGMgPSBuZXdfY29ubl9zdGF0ZS0+Y3J0YyA/CisJCQl0b19pbnRlbF9jcnRjKG5ld19jb25uX3N0YXRlLT5jcnRjKSA6IE5VTEw7CisJCWVuY29kZXItPnVwZGF0ZV9wcmVwYXJlKHN0YXRlLCBlbmNvZGVyLCBjcnRjKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3VwZGF0ZV9jb21wbGV0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOworCWludCBpOworCisJZm9yX2VhY2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sCisJCQkJCSAgIG9sZF9jb25uX3N0YXRlLCBuZXdfY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKKwkJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisKKwkJaWYgKCFpbnRlbF9jb25uZWN0b3JfbmVlZHNfbW9kZXNldChzdGF0ZSwKKwkJCQkJCSAgIG9sZF9jb25uX3N0YXRlLAorCQkJCQkJICAgbmV3X2Nvbm5fc3RhdGUpKQorCQkJY29udGludWU7CisKKwkJZW5jb2RlciA9IGludGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2VuY29kZXIodG9faW50ZWxfY29ubmVjdG9yKGNvbm4pKTsKKwkJaWYgKCFlbmNvZGVyLT51cGRhdGVfY29tcGxldGUpCisJCQljb250aW51ZTsKKworCQljcnRjID0gbmV3X2Nvbm5fc3RhdGUtPmNydGMgPworCQkJdG9faW50ZWxfY3J0YyhuZXdfY29ubl9zdGF0ZS0+Y3J0YykgOiBOVUxMOworCQllbmNvZGVyLT51cGRhdGVfY29tcGxldGUoc3RhdGUsIGVuY29kZXIsIGNydGMpOworCX0KK30KKworc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKKwkJCQkJICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25uLCBjb25uX3N0YXRlLCBpKSB7CisJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKIAkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQogCQkJdG9faW50ZWxfZW5jb2Rlcihjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOwogCi0JCWlmIChjb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCisJCWlmIChjb25uX3N0YXRlLT5jcnRjICE9ICZjcnRjLT5iYXNlKQogCQkJY29udGludWU7CiAKIAkJaWYgKGVuY29kZXItPnByZV9wbGxfZW5hYmxlKQpAQCAtNjA1NiwxOSArNjE1NiwxOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19wcmVfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKK3N0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkJICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKKwkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25uLCBjb25uX3N0YXRlLCBpKSB7CisJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKIAkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQogCQkJdG9faW50ZWxfZW5jb2Rlcihjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOwogCi0JCWlmIChjb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCisJCWlmIChjb25uX3N0YXRlLT5jcnRjICE9ICZjcnRjLT5iYXNlKQogCQkJY29udGludWU7CiAKIAkJaWYgKGVuY29kZXItPnByZV9lbmFibGUpCkBAIC02MDc2LDE5ICs2MTc2LDE5IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCX0KIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKK3N0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKKwkJCQkgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwogCWludCBpOwogCi0JZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKKwlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKCZzdGF0ZS0+YmFzZSwgY29ubiwgY29ubl9zdGF0ZSwgaSkgewogCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9CiAJCQl0b19pbnRlbF9lbmNvZGVyKGNvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7CiAKLQkJaWYgKGNvbm5fc3RhdGUtPmNydGMgIT0gY3J0YykKKwkJaWYgKGNvbm5fc3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCiAJCQljb250aW51ZTsKIAogCQlpZiAoZW5jb2Rlci0+ZW5hYmxlKQpAQCAtNjA5NywxOSArNjE5NywxOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCX0KIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCitzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKLQkJCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQorCQkJCSAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX29sZF9jb25uZWN0b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25uLCBvbGRfY29ubl9zdGF0ZSwgaSkgeworCWZvcl9lYWNoX29sZF9jb25uZWN0b3JfaW5fc3RhdGUoJnN0YXRlLT5iYXNlLCBjb25uLCBvbGRfY29ubl9zdGF0ZSwgaSkgewogCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9CiAJCQl0b19pbnRlbF9lbmNvZGVyKG9sZF9jb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOwogCi0JCWlmIChvbGRfY29ubl9zdGF0ZS0+Y3J0YyAhPSBjcnRjKQorCQlpZiAob2xkX2Nvbm5fc3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCiAJCQljb250aW51ZTsKIAogCQlpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfZW5jb2RlcihlbmNvZGVyLCBmYWxzZSk7CkBAIC02MTE4LDE5ICs2MjE4LDE5IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCX0KIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKK3N0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAotCQkJCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQorCQkJCQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47CiAJaW50IGk7CiAKLQlmb3JfZWFjaF9vbGRfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKKwlmb3JfZWFjaF9vbGRfY29ubmVjdG9yX2luX3N0YXRlKCZzdGF0ZS0+YmFzZSwgY29ubiwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKIAkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQogCQkJdG9faW50ZWxfZW5jb2RlcihvbGRfY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKTsKIAotCQlpZiAob2xkX2Nvbm5fc3RhdGUtPmNydGMgIT0gY3J0YykKKwkJaWYgKG9sZF9jb25uX3N0YXRlLT5jcnRjICE9ICZjcnRjLT5iYXNlKQogCQkJY29udGludWU7CiAKIAkJaWYgKGVuY29kZXItPnBvc3RfZGlzYWJsZSkKQEAgLTYxMzgsMTkgKzYyMzgsMTkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3Bvc3RfcGxsX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAorc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfcG9zdF9wbGxfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKLQkJCQkJICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCisJCQkJCSAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47CiAJaW50IGk7CiAKLQlmb3JfZWFjaF9vbGRfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKKwlmb3JfZWFjaF9vbGRfY29ubmVjdG9yX2luX3N0YXRlKCZzdGF0ZS0+YmFzZSwgY29ubiwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKIAkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQogCQkJdG9faW50ZWxfZW5jb2RlcihvbGRfY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKTsKIAotCQlpZiAob2xkX2Nvbm5fc3RhdGUtPmNydGMgIT0gY3J0YykKKwkJaWYgKG9sZF9jb25uX3N0YXRlLT5jcnRjICE9ICZjcnRjLT5iYXNlKQogCQkJY29udGludWU7CiAKIAkJaWYgKGVuY29kZXItPnBvc3RfcGxsX2Rpc2FibGUpCkBAIC02MTU4LDE5ICs2MjU4LDE5IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3Bvc3RfcGxsX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCX0KIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfdXBkYXRlX3BpcGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAorc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfdXBkYXRlX3BpcGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQorCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25uLCBjb25uX3N0YXRlLCBpKSB7CisJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKIAkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQogCQkJdG9faW50ZWxfZW5jb2Rlcihjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOwogCi0JCWlmIChjb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCisJCWlmIChjb25uX3N0YXRlLT5jcnRjICE9ICZjcnRjLT5iYXNlKQogCQkJY29udGludWU7CiAKIAkJaWYgKGVuY29kZXItPnVwZGF0ZV9waXBlKQpAQCAtNjE4NywxNSArNjI4NywxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdAogfQogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCi0JCQkJIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCisJCQkJIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKLQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpvbGRfaW50ZWxfc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKTsKIAogCWlmIChXQVJOX09OKGludGVsX2NydGMtPmFjdGl2ZSkpCiAJCXJldHVybjsKQEAgLTYyMzEsNyArNjMyOSw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAogCWludGVsX2NydGMtPmFjdGl2ZSA9IHRydWU7CiAKLQlpbnRlbF9lbmNvZGVyc19wcmVfZW5hYmxlKGNydGMsIHBpcGVfY29uZmlnLCBvbGRfc3RhdGUpOworCWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoaW50ZWxfY3J0YywgcGlwZV9jb25maWcsIHN0YXRlKTsKIAogCWlmIChwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7CiAJCS8qIE5vdGU6IEZESSBQTEwgZW5hYmxpbmcgX211c3RfIGJlIGRvbmUgYmVmb3JlIHdlIGVuYWJsZSB0aGUKQEAgLTYyNTUsMTYgKzYzNTMsMTYgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCWludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFuZShwaXBlX2NvbmZpZyk7CiAKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzICE9IE5VTEwpCi0JCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhvbGRfaW50ZWxfc3RhdGUsIHBpcGVfY29uZmlnKTsKKwkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKHN0YXRlLCBwaXBlX2NvbmZpZyk7CiAJaW50ZWxfZW5hYmxlX3BpcGUocGlwZV9jb25maWcpOwogCiAJaWYgKHBpcGVfY29uZmlnLT5oYXNfcGNoX2VuY29kZXIpCi0JCWlyb25sYWtlX3BjaF9lbmFibGUob2xkX2ludGVsX3N0YXRlLCBwaXBlX2NvbmZpZyk7CisJCWlyb25sYWtlX3BjaF9lbmFibGUoc3RhdGUsIHBpcGVfY29uZmlnKTsKIAogCWFzc2VydF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7CiAJaW50ZWxfY3J0Y192Ymxhbmtfb24ocGlwZV9jb25maWcpOwogCi0JaW50ZWxfZW5jb2RlcnNfZW5hYmxlKGNydGMsIHBpcGVfY29uZmlnLCBvbGRfc3RhdGUpOworCWludGVsX2VuY29kZXJzX2VuYWJsZShpbnRlbF9jcnRjLCBwaXBlX2NvbmZpZywgc3RhdGUpOwogCiAJaWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSkKIAkJY3B0X3ZlcmlmeV9tb2Rlc2V0KGRldiwgaW50ZWxfY3J0Yy0+cGlwZSk7CkBAIC02MzEwLDMzICs2NDA4LDM3IEBAIHN0YXRpYyB2b2lkIGljbF9waXBlX21idXNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCXUzMiB2YWw7CiAKIAl2YWwgPSBNQlVTX0RCT1hfQV9DUkVESVQoMik7Ci0JdmFsIHw9IE1CVVNfREJPWF9CV19DUkVESVQoMSk7Ci0JdmFsIHw9IE1CVVNfREJPWF9CX0NSRURJVCg4KTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKSB7CisJCXZhbCB8PSBNQlVTX0RCT1hfQldfQ1JFRElUKDIpOworCQl2YWwgfD0gTUJVU19EQk9YX0JfQ1JFRElUKDEyKTsKKwl9IGVsc2UgeworCQl2YWwgfD0gTUJVU19EQk9YX0JXX0NSRURJVCgxKTsKKwkJdmFsIHw9IE1CVVNfREJPWF9CX0NSRURJVCg4KTsKKwl9CiAKIAlJOTE1X1dSSVRFKFBJUEVfTUJVU19EQk9YX0NUTChwaXBlKSwgdmFsKTsKIH0KIAogc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCi0JCQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKKwkJCQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+YmFzZS5jcnRjOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlLCBoc3dfd29ya2Fyb3VuZF9waXBlOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKLQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpvbGRfaW50ZWxfc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKTsKIAlib29sIHBzbF9jbGtnYXRlX3dhOwogCiAJaWYgKFdBUk5fT04oaW50ZWxfY3J0Yy0+YWN0aXZlKSkKIAkJcmV0dXJuOwogCi0JaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoY3J0YywgcGlwZV9jb25maWcsIG9sZF9zdGF0ZSk7CisJaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoaW50ZWxfY3J0YywgcGlwZV9jb25maWcsIHN0YXRlKTsKIAogCWlmIChwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwpCiAJCWludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChwaXBlX2NvbmZpZyk7CiAKLQlpbnRlbF9lbmNvZGVyc19wcmVfZW5hYmxlKGNydGMsIHBpcGVfY29uZmlnLCBvbGRfc3RhdGUpOworCWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoaW50ZWxfY3J0YywgcGlwZV9jb25maWcsIHN0YXRlKTsKIAogCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKHBpcGVfY29uZmlnKSkKIAkJaW50ZWxfZHBfc2V0X21fbihwaXBlX2NvbmZpZywgTTFfTjEpOwpAQCAtNjM5NCw3ICs2NDk2LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCWludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKHBpcGVfY29uZmlnKTsKIAogCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MgIT0gTlVMTCkKLQkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKG9sZF9pbnRlbF9zdGF0ZSwgcGlwZV9jb25maWcpOworCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3Moc3RhdGUsIHBpcGVfY29uZmlnKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQogCQlpY2xfcGlwZV9tYnVzX2VuYWJsZShpbnRlbF9jcnRjKTsKQEAgLTY0MDQsNyArNjUwNiw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQlpbnRlbF9lbmFibGVfcGlwZShwaXBlX2NvbmZpZyk7CiAKIAlpZiAocGlwZV9jb25maWctPmhhc19wY2hfZW5jb2RlcikKLQkJbHB0X3BjaF9lbmFibGUob2xkX2ludGVsX3N0YXRlLCBwaXBlX2NvbmZpZyk7CisJCWxwdF9wY2hfZW5hYmxlKHN0YXRlLCBwaXBlX2NvbmZpZyk7CiAKIAlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShwaXBlX2NvbmZpZywgSU5URUxfT1VUUFVUX0RQX01TVCkpCiAJCWludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhwaXBlX2NvbmZpZywgdHJ1ZSk7CkBAIC02NDEyLDcgKzY1MTQsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAlhc3NlcnRfdmJsYW5rX2Rpc2FibGVkKGNydGMpOwogCWludGVsX2NydGNfdmJsYW5rX29uKHBpcGVfY29uZmlnKTsKIAotCWludGVsX2VuY29kZXJzX2VuYWJsZShjcnRjLCBwaXBlX2NvbmZpZywgb2xkX3N0YXRlKTsKKwlpbnRlbF9lbmNvZGVyc19lbmFibGUoaW50ZWxfY3J0YywgcGlwZV9jb25maWcsIHN0YXRlKTsKIAogCWlmIChwc2xfY2xrZ2F0ZV93YSkgewogCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUpOwpAQCAtNjQ0NCw3ICs2NTQ2LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIH0KIAogc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKLQkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCisJCQkJICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CkBAIC02NDYwLDcgKzY1NjIsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZhbHNlKTsKIAlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwaXBlLCBmYWxzZSk7CiAKLQlpbnRlbF9lbmNvZGVyc19kaXNhYmxlKGNydGMsIG9sZF9jcnRjX3N0YXRlLCBvbGRfc3RhdGUpOworCWludGVsX2VuY29kZXJzX2Rpc2FibGUoaW50ZWxfY3J0Yywgb2xkX2NydGNfc3RhdGUsIHN0YXRlKTsKIAogCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CiAJYXNzZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKQEAgLTY0NzIsNyArNjU3NCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJaWYgKG9sZF9jcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCiAJCWlyb25sYWtlX2ZkaV9kaXNhYmxlKGNydGMpOwogCi0JaW50ZWxfZW5jb2RlcnNfcG9zdF9kaXNhYmxlKGNydGMsIG9sZF9jcnRjX3N0YXRlLCBvbGRfc3RhdGUpOworCWludGVsX2VuY29kZXJzX3Bvc3RfZGlzYWJsZShpbnRlbF9jcnRjLCBvbGRfY3J0Y19zdGF0ZSwgc3RhdGUpOwogCiAJaWYgKG9sZF9jcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpIHsKIAkJaXJvbmxha2VfZGlzYWJsZV9wY2hfdHJhbnNjb2RlcihkZXZfcHJpdiwgcGlwZSk7CkBAIC02NTAzLDE0ICs2NjA1LDE0IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiB9CiAKIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKLQkJCQkgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKKwkJCQkgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gb2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0YzsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IG9sZF9jcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAotCWludGVsX2VuY29kZXJzX2Rpc2FibGUoY3J0Yywgb2xkX2NydGNfc3RhdGUsIG9sZF9zdGF0ZSk7CisJaW50ZWxfZW5jb2RlcnNfZGlzYWJsZShpbnRlbF9jcnRjLCBvbGRfY3J0Y19zdGF0ZSwgc3RhdGUpOwogCiAJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKIAlhc3NlcnRfdmJsYW5rX2Rpc2FibGVkKGNydGMpOwpAQCAtNjUzMiw5ICs2NjM0LDkgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCWVsc2UKIAkJaXJvbmxha2VfcGZpdF9kaXNhYmxlKG9sZF9jcnRjX3N0YXRlKTsKIAotCWludGVsX2VuY29kZXJzX3Bvc3RfZGlzYWJsZShjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgb2xkX3N0YXRlKTsKKwlpbnRlbF9lbmNvZGVyc19wb3N0X2Rpc2FibGUoaW50ZWxfY3J0Yywgb2xkX2NydGNfc3RhdGUsIHN0YXRlKTsKIAotCWludGVsX2VuY29kZXJzX3Bvc3RfcGxsX2Rpc2FibGUoY3J0Yywgb2xkX2NydGNfc3RhdGUsIG9sZF9zdGF0ZSk7CisJaW50ZWxfZW5jb2RlcnNfcG9zdF9wbGxfZGlzYWJsZShpbnRlbF9jcnRjLCBvbGRfY3J0Y19zdGF0ZSwgc3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZCBpOXh4X3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQpAQCAtNjU2MCwzMyArNjY2Miw0NyBAQCBzdGF0aWMgdm9pZCBpOXh4X3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCUk5MTVfV1JJVEUoQkNMUlBBVChjcnRjLT5waXBlKSwgMCk7CiB9CiAKLWJvb2wgaW50ZWxfcG9ydF9pc19jb21ib3BoeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQorYm9vbCBpbnRlbF9waHlfaXNfY29tYm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBoeSBwaHkpCiB7Ci0JaWYgKHBvcnQgPT0gUE9SVF9OT05FKQorCWlmIChwaHkgPT0gUEhZX05PTkUpCiAJCXJldHVybiBmYWxzZTsKIAogCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikpCi0JCXJldHVybiBwb3J0IDw9IFBPUlRfQzsKKwkJcmV0dXJuIHBoeSA8PSBQSFlfQzsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQotCQlyZXR1cm4gcG9ydCA8PSBQT1JUX0I7CisJCXJldHVybiBwaHkgPD0gUEhZX0I7CiAKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgaW50ZWxfcG9ydF9pc190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQorYm9vbCBpbnRlbF9waHlfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBoeSBwaHkpCiB7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpCisJCXJldHVybiBwaHkgPj0gUEhZX0QgJiYgcGh5IDw9IFBIWV9JOworCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYgIUlTX0VMS0hBUlRMQUtFKGRldl9wcml2KSkKLQkJcmV0dXJuIHBvcnQgPj0gUE9SVF9DICYmIHBvcnQgPD0gUE9SVF9GOworCQlyZXR1cm4gcGh5ID49IFBIWV9DICYmIHBoeSA8PSBQSFlfRjsKIAogCXJldHVybiBmYWxzZTsKIH0KIAorZW51bSBwaHkgaW50ZWxfcG9ydF90b19waHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGVudW0gcG9ydCBwb3J0KQoreworCWlmIChJU19FTEtIQVJUTEFLRShpOTE1KSAmJiBwb3J0ID09IFBPUlRfRCkKKwkJcmV0dXJuIFBIWV9BOworCisJcmV0dXJuIChlbnVtIHBoeSlwb3J0OworfQorCiBlbnVtIHRjX3BvcnQgaW50ZWxfcG9ydF90b190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogewotCWlmICghaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpCisJaWYgKCFpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KSkpCiAJCXJldHVybiBQT1JUX1RDX05PTkU7CiAKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKKwkJcmV0dXJuIHBvcnQgLSBQT1JUX0Q7CisKIAlyZXR1cm4gcG9ydCAtIFBPUlRfQzsKIH0KIApAQCAtNjYxNCw2ICs2NzMwLDI2IEBAIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gaW50ZWxfcG9ydF90b19wb3dlcl9kb21haW4oZW51bSBwb3J0IHBvcnQpCiBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCiBpbnRlbF9hdXhfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKKworCWlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkgJiYKKwkgICAgZGlnX3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9UQlRfQUxUKSB7CisJCXN3aXRjaCAoZGlnX3BvcnQtPmF1eF9jaCkgeworCQljYXNlIEFVWF9DSF9DOgorCQkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfVEJUMTsKKwkJY2FzZSBBVVhfQ0hfRDoKKwkJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX1RCVDI7CisJCWNhc2UgQVVYX0NIX0U6CisJCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9UQlQzOworCQljYXNlIEFVWF9DSF9GOgorCQkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfVEJUNDsKKwkJZGVmYXVsdDoKKwkJCU1JU1NJTkdfQ0FTRShkaWdfcG9ydC0+YXV4X2NoKTsKKwkJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX1RCVDE7CisJCX0KKwl9CisKIAlzd2l0Y2ggKGRpZ19wb3J0LT5hdXhfY2gpIHsKIAljYXNlIEFVWF9DSF9BOgogCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9BOwpAQCAtNjYzMywxNCArNjc2OSwxMiBAQCBpbnRlbF9hdXhfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQogCX0KIH0KIAotc3RhdGljIHU2NCBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQorc3RhdGljIHU2NCBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1NjQgbWFzazsKIAllbnVtIHRyYW5zY29kZXIgdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCkBAIC02NjUzLDcgKzY3ODcsOCBAQCBzdGF0aWMgdTY0IGdldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCSAgICBjcnRjX3N0YXRlLT5wY2hfcGZpdC5mb3JjZV90aHJ1KQogCQltYXNrIHw9IEJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfUEFORUxfRklUVEVSKHBpcGUpKTsKIAotCWRybV9mb3JfZWFjaF9lbmNvZGVyX21hc2soZW5jb2RlciwgZGV2LCBjcnRjX3N0YXRlLT5iYXNlLmVuY29kZXJfbWFzaykgeworCWRybV9mb3JfZWFjaF9lbmNvZGVyX21hc2soZW5jb2RlciwgJmRldl9wcml2LT5kcm0sCisJCQkJICBjcnRjX3N0YXRlLT5iYXNlLmVuY29kZXJfbWFzaykgewogCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9IHRvX2ludGVsX2VuY29kZXIoZW5jb2Rlcik7CiAKIAkJbWFzayB8PSBCSVRfVUxMKGludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbik7CkBAIC02NjY5LDE3ICs2ODA0LDE2IEBAIHN0YXRpYyB1NjQgZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiB9CiAKIHN0YXRpYyB1NjQKLW1vZGVzZXRfZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCittb2Rlc2V0X2dldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbjsKIAl1NjQgZG9tYWlucywgbmV3X2RvbWFpbnMsIG9sZF9kb21haW5zOwogCi0Jb2xkX2RvbWFpbnMgPSBpbnRlbF9jcnRjLT5lbmFibGVkX3Bvd2VyX2RvbWFpbnM7Ci0JaW50ZWxfY3J0Yy0+ZW5hYmxlZF9wb3dlcl9kb21haW5zID0gbmV3X2RvbWFpbnMgPQotCQlnZXRfY3J0Y19wb3dlcl9kb21haW5zKGNydGMsIGNydGNfc3RhdGUpOworCW9sZF9kb21haW5zID0gY3J0Yy0+ZW5hYmxlZF9wb3dlcl9kb21haW5zOworCWNydGMtPmVuYWJsZWRfcG93ZXJfZG9tYWlucyA9IG5ld19kb21haW5zID0KKwkJZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhjcnRjX3N0YXRlKTsKIAogCWRvbWFpbnMgPSBuZXdfZG9tYWlucyAmIH5vbGRfZG9tYWluczsKIApAQCAtNjY5OSwxMCArNjgzMyw4IEBAIHN0YXRpYyB2b2lkIG1vZGVzZXRfcHV0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogfQogCiBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKLQkJCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQorCQkJCSAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKm9sZF9pbnRlbF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CkBAIC02NzI5LDcgKzY4NjEsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAogCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwogCi0JaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoY3J0YywgcGlwZV9jb25maWcsIG9sZF9zdGF0ZSk7CisJaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoaW50ZWxfY3J0YywgcGlwZV9jb25maWcsIHN0YXRlKTsKIAogCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewogCQljaHZfcHJlcGFyZV9wbGwoaW50ZWxfY3J0YywgcGlwZV9jb25maWcpOwpAQCAtNjczOSw3ICs2ODcxLDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCXZsdl9lbmFibGVfcGxsKGludGVsX2NydGMsIHBpcGVfY29uZmlnKTsKIAl9CiAKLQlpbnRlbF9lbmNvZGVyc19wcmVfZW5hYmxlKGNydGMsIHBpcGVfY29uZmlnLCBvbGRfc3RhdGUpOworCWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoaW50ZWxfY3J0YywgcGlwZV9jb25maWcsIHN0YXRlKTsKIAogCWk5eHhfcGZpdF9lbmFibGUocGlwZV9jb25maWcpOwogCkBAIC02NzQ4LDE0ICs2ODgwLDEzIEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCS8qIHVwZGF0ZSBEU1BDTlRSIHRvIGNvbmZpZ3VyZSBnYW1tYSBmb3IgcGlwZSBib3R0b20gY29sb3IgKi8KIAlpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUocGlwZV9jb25maWcpOwogCi0JZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKG9sZF9pbnRlbF9zdGF0ZSwKLQkJCQkJICAgICBwaXBlX2NvbmZpZyk7CisJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKHN0YXRlLCBwaXBlX2NvbmZpZyk7CiAJaW50ZWxfZW5hYmxlX3BpcGUocGlwZV9jb25maWcpOwogCiAJYXNzZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKIAlpbnRlbF9jcnRjX3ZibGFua19vbihwaXBlX2NvbmZpZyk7CiAKLQlpbnRlbF9lbmNvZGVyc19lbmFibGUoY3J0YywgcGlwZV9jb25maWcsIG9sZF9zdGF0ZSk7CisJaW50ZWxfZW5jb2RlcnNfZW5hYmxlKGludGVsX2NydGMsIHBpcGVfY29uZmlnLCBzdGF0ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGk5eHhfc2V0X3BsbF9kaXZpZGVycyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKQEAgLTY3NjgsMTAgKzY4OTksOCBAQCBzdGF0aWMgdm9pZCBpOXh4X3NldF9wbGxfZGl2aWRlcnMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB9CiAKIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAotCQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQorCQkJICAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpvbGRfaW50ZWxfc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+YmFzZS5jcnRjOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwpAQCAtNjc5Niw3ICs2OTI1LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJaWYgKCFJU19HRU4oZGV2X3ByaXYsIDIpKQogCQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwaXBlLCB0cnVlKTsKIAotCWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoY3J0YywgcGlwZV9jb25maWcsIG9sZF9zdGF0ZSk7CisJaW50ZWxfZW5jb2RlcnNfcHJlX2VuYWJsZShpbnRlbF9jcnRjLCBwaXBlX2NvbmZpZywgc3RhdGUpOwogCiAJaTl4eF9lbmFibGVfcGxsKGludGVsX2NydGMsIHBpcGVfY29uZmlnKTsKIApAQCAtNjgwOCw3ICs2OTM3LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJaW50ZWxfZGlzYWJsZV9wcmltYXJ5X3BsYW5lKHBpcGVfY29uZmlnKTsKIAogCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MgIT0gTlVMTCkKLQkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKG9sZF9pbnRlbF9zdGF0ZSwKKwkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKHN0YXRlLAogCQkJCQkJICAgICBwaXBlX2NvbmZpZyk7CiAJZWxzZQogCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhpbnRlbF9jcnRjKTsKQEAgLTY4MTcsNyArNjk0Niw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCWFzc2VydF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7CiAJaW50ZWxfY3J0Y192Ymxhbmtfb24ocGlwZV9jb25maWcpOwogCi0JaW50ZWxfZW5jb2RlcnNfZW5hYmxlKGNydGMsIHBpcGVfY29uZmlnLCBvbGRfc3RhdGUpOworCWludGVsX2VuY29kZXJzX2VuYWJsZShpbnRlbF9jcnRjLCBwaXBlX2NvbmZpZywgc3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZCBpOXh4X3BmaXRfZGlzYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCkBAIC02ODM2LDcgKzY5NjUsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3BmaXRfZGlzYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiB9CiAKIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKLQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCisJCQkgICAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CkBAIC02ODUxLDcgKzY5ODAsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJaWYgKElTX0dFTihkZXZfcHJpdiwgMikpCiAJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgcGlwZSk7CiAKLQlpbnRlbF9lbmNvZGVyc19kaXNhYmxlKGNydGMsIG9sZF9jcnRjX3N0YXRlLCBvbGRfc3RhdGUpOworCWludGVsX2VuY29kZXJzX2Rpc2FibGUoaW50ZWxfY3J0Yywgb2xkX2NydGNfc3RhdGUsIHN0YXRlKTsKIAogCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CiAJYXNzZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKQEAgLTY4NjAsNyArNjk4OSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAogCWk5eHhfcGZpdF9kaXNhYmxlKG9sZF9jcnRjX3N0YXRlKTsKIAotCWludGVsX2VuY29kZXJzX3Bvc3RfZGlzYWJsZShjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgb2xkX3N0YXRlKTsKKwlpbnRlbF9lbmNvZGVyc19wb3N0X2Rpc2FibGUoaW50ZWxfY3J0Yywgb2xkX2NydGNfc3RhdGUsIHN0YXRlKTsKIAogCWlmICghaW50ZWxfY3J0Y19oYXNfdHlwZShvbGRfY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RTSSkpIHsKIAkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQpAQCAtNjg3MSw3ICs3MDAwLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJaTl4eF9kaXNhYmxlX3BsbChvbGRfY3J0Y19zdGF0ZSk7CiAJfQogCi0JaW50ZWxfZW5jb2RlcnNfcG9zdF9wbGxfZGlzYWJsZShjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgb2xkX3N0YXRlKTsKKwlpbnRlbF9lbmNvZGVyc19wb3N0X3BsbF9kaXNhYmxlKGludGVsX2NydGMsIG9sZF9jcnRjX3N0YXRlLCBzdGF0ZSk7CiAKIAlpZiAoIUlTX0dFTihkZXZfcHJpdiwgMikpCiAJCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZhbHNlKTsKQEAgLTY5MjUsNyArNzA1NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGlzYWJsZV9ub2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlXQVJOX09OKElTX0VSUihjcnRjX3N0YXRlKSB8fCByZXQpOwogCi0JZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19kaXNhYmxlKGNydGNfc3RhdGUsIHN0YXRlKTsKKwlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2Rpc2FibGUoY3J0Y19zdGF0ZSwgdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKSk7CiAKIAlkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7CiAKQEAgLTY5ODgsNyArNzExNyw3IEBAIHZvaWQgaW50ZWxfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAogLyogQ3Jvc3MgY2hlY2sgdGhlIGFjdHVhbCBodyBzdGF0ZSB3aXRoIG91ciBvd24gbW9kZXNldCBzdGF0ZSB0cmFja2luZyAoYW5kIGl0J3MKICAqIGludGVybmFsIGNvbnNpc3RlbmN5KS4gKi8KLXN0YXRpYyB2b2lkIGludGVsX2Nvbm5lY3Rvcl92ZXJpZnlfc3RhdGUoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9yX3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3IpOwpAQCAtNzAwNiw3ICs3MTM1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9yX3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCWlmICghY3J0Y19zdGF0ZSkKIAkJCXJldHVybjsKIAotCQlJOTE1X1NUQVRFX1dBUk4oIWNydGNfc3RhdGUtPmFjdGl2ZSwKKwkJSTkxNV9TVEFURV9XQVJOKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSwKIAkJICAgICAgImNvbm5lY3RvciBpcyBhY3RpdmUsIGJ1dCBhdHRhY2hlZCBjcnRjIGlzbid0XG4iKTsKIAogCQlpZiAoIWVuY29kZXIgfHwgZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKQpAQCAtNzAxOCw3ICs3MTQ3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9yX3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCUk5MTVfU1RBVEVfV0FSTihjb25uX3N0YXRlLT5jcnRjICE9IGVuY29kZXItPmJhc2UuY3J0YywKIAkJCSJhdHRhY2hlZCBlbmNvZGVyIGNydGMgZGlmZmVycyBmcm9tIGNvbm5lY3RvciBjcnRjXG4iKTsKIAl9IGVsc2UgewotCQlJOTE1X1NUQVRFX1dBUk4oY3J0Y19zdGF0ZSAmJiBjcnRjX3N0YXRlLT5hY3RpdmUsCisJCUk5MTVfU1RBVEVfV0FSTihjcnRjX3N0YXRlICYmIGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlLAogCQkJImF0dGFjaGVkIGNydGMgaXMgYWN0aXZlLCBidXQgY29ubmVjdG9yIGlzbid0XG4iKTsKIAkJSTkxNV9TVEFURV9XQVJOKCFjcnRjX3N0YXRlICYmIGNvbm5fc3RhdGUtPmJlc3RfZW5jb2RlciwKIAkJCSJiZXN0IGVuY29kZXIgc2V0IHdpdGhvdXQgY3J0YyFcbiIpOwpAQCAtOTQ4NCw2ICs5NjEzLDggQEAgc3RhdGljIGludCBpcm9ubGFrZV9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQ7CiAJaW50IHJlZmNsayA9IDEyMDAwMDsKIApAQCAtOTUyNSw3ICs5NjU2LDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIAlpcm9ubGFrZV9jb21wdXRlX2RwbGwoY3J0YywgY3J0Y19zdGF0ZSwgTlVMTCk7CiAKLQlpZiAoIWludGVsX2dldF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLCBOVUxMKSkgeworCWlmICghaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoc3RhdGUsIGNydGMsIE5VTEwpKSB7CiAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBmaW5kIFBMTCBmb3IgcGlwZSAlY1xuIiwKIAkJCSAgICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtOTkwNiw3ICsxMDAzNyw3IEBAIHN0YXRpYyBpbnQgaGFzd2VsbF9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0KIAkJCWludGVsX2dldF9jcnRjX25ld19lbmNvZGVyKHN0YXRlLCBjcnRjX3N0YXRlKTsKIAotCQlpZiAoIWludGVsX2dldF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLCBlbmNvZGVyKSkgeworCQlpZiAoIWludGVsX3Jlc2VydmVfc2hhcmVkX2RwbGxzKHN0YXRlLCBjcnRjLCBlbmNvZGVyKSkgewogCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGZpbmQgUExMIGZvciBwaXBlICVjXG4iLAogCQkJCSAgICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTk5MzYsMjIgKzEwMDY3LDM3IEBAIHN0YXRpYyB2b2lkIGljZWxha2VfZ2V0X2RkaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCWVudW0gcG9ydCBwb3J0LAogCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7CisJZW51bSBpY2xfcG9ydF9kcGxsX2lkIHBvcnRfZHBsbF9pZDsKIAllbnVtIGludGVsX2RwbGxfaWQgaWQ7CiAJdTMyIHRlbXA7CiAKLQkvKiBUT0RPOiBUQlQgcGxsIG5vdCBpbXBsZW1lbnRlZC4gKi8KLQlpZiAoaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkpIHsKLQkJdGVtcCA9IEk5MTVfUkVBRChEUENMS0FfQ0ZHQ1IwX0lDTCkgJgotCQkgICAgICAgRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBvcnQpOwotCQlpZCA9IHRlbXAgPj4gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChwb3J0KTsKLQl9IGVsc2UgaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQpKSB7Ci0JCWlkID0gaWNsX3RjX3BvcnRfdG9fcGxsX2lkKGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBvcnQpKTsKKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKSB7CisJCXRlbXAgPSBJOTE1X1JFQUQoSUNMX0RQQ0xLQV9DRkdDUjApICYKKwkJCUlDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01BU0socGh5KTsKKwkJaWQgPSB0ZW1wID4+IElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX1NISUZUKHBoeSk7CisJCXBvcnRfZHBsbF9pZCA9IElDTF9QT1JUX0RQTExfREVGQVVMVDsKKwl9IGVsc2UgaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkgeworCQl1MzIgY2xrX3NlbCA9IEk5MTVfUkVBRChERElfQ0xLX1NFTChwb3J0KSkgJiBERElfQ0xLX1NFTF9NQVNLOworCisJCWlmIChjbGtfc2VsID09IERESV9DTEtfU0VMX01HKSB7CisJCQlpZCA9IGljbF90Y19wb3J0X3RvX3BsbF9pZChpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LAorCQkJCQkJCQkgICAgcG9ydCkpOworCQkJcG9ydF9kcGxsX2lkID0gSUNMX1BPUlRfRFBMTF9NR19QSFk7CisJCX0gZWxzZSB7CisJCQlXQVJOX09OKGNsa19zZWwgPCBERElfQ0xLX1NFTF9UQlRfMTYyKTsKKwkJCWlkID0gRFBMTF9JRF9JQ0xfVEJUUExMOworCQkJcG9ydF9kcGxsX2lkID0gSUNMX1BPUlRfRFBMTF9ERUZBVUxUOworCQl9CiAJfSBlbHNlIHsKIAkJV0FSTigxLCAiSW52YWxpZCBwb3J0ICV4XG4iLCBwb3J0KTsKIAkJcmV0dXJuOwogCX0KIAotCXBpcGVfY29uZmlnLT5zaGFyZWRfZHBsbCA9IGludGVsX2dldF9zaGFyZWRfZHBsbF9ieV9pZChkZXZfcHJpdiwgaWQpOworCXBpcGVfY29uZmlnLT5pY2xfcG9ydF9kcGxsc1twb3J0X2RwbGxfaWRdLnBsbCA9CisJCWludGVsX2dldF9zaGFyZWRfZHBsbF9ieV9pZChkZXZfcHJpdiwgaWQpOworCisJaWNsX3NldF9hY3RpdmVfcG9ydF9kcGxsKHBpcGVfY29uZmlnLCBwb3J0X2RwbGxfaWQpOwogfQogCiBzdGF0aWMgdm9pZCBieHRfZ2V0X2RkaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMTAxOTEsNyArMTAzMzcsMTAgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9nZXRfZGRpX3BvcnRfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIAl0bXAgPSBJOTE1X1JFQUQoVFJBTlNfRERJX0ZVTkNfQ1RMKHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlcikpOwogCi0JcG9ydCA9ICh0bXAgJiBUUkFOU19ERElfUE9SVF9NQVNLKSA+PiBUUkFOU19ERElfUE9SVF9TSElGVDsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKKwkJcG9ydCA9IFRHTF9UUkFOU19ERElfRlVOQ19DVExfVkFMX1RPX1BPUlQodG1wKTsKKwllbHNlCisJCXBvcnQgPSBUUkFOU19ERElfRlVOQ19DVExfVkFMX1RPX1BPUlQodG1wKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQogCQlpY2VsYWtlX2dldF9kZGlfcGxsKGRldl9wcml2LCBwb3J0LCBwaXBlX2NvbmZpZyk7CkBAIC0xMTI5Nyw3ICsxMTQ0Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGVzdHJveShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAgKgogICogUmV0dXJucyB0cnVlIG9yIGZhbHNlLgogICovCi1zdGF0aWMgYm9vbCBpbnRlbF93bV9uZWVkX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmN1ciwKK3N0YXRpYyBib29sIGludGVsX3dtX25lZWRfdXBkYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqY3VyLAogCQkJCSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm5ldykKIHsKIAkvKiBVcGRhdGUgd2F0ZXJtYXJrcyBvbiB0aWxpbmcgb3Igc2l6ZSBjaGFuZ2VzLiAqLwpAQCAtMTEzMjksMzMgKzExNDc4LDI4IEBAIHN0YXRpYyBib29sIG5lZWRzX3NjYWxpbmcoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKIH0KIAogaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAotCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSwKLQkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCisJCQkJICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT5jcnRjOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPnBsYW5lKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWJvb2wgbW9kZV9jaGFuZ2VkID0gbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKTsKIAlib29sIHdhc19jcnRjX2VuYWJsZWQgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7Ci0JYm9vbCBpc19jcnRjX2VuYWJsZWQgPSBjcnRjX3N0YXRlLT5hY3RpdmU7CisJYm9vbCBpc19jcnRjX2VuYWJsZWQgPSBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZTsKIAlib29sIHR1cm5fb2ZmLCB0dXJuX29uLCB2aXNpYmxlLCB3YXNfdmlzaWJsZTsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5mYjsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwogCWludCByZXQ7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5ICYmIHBsYW5lLT5pZCAhPSBQTEFORV9DVVJTT1IpIHsKLQkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoCi0JCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLAotCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpKTsKKwkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CiAKIAl3YXNfdmlzaWJsZSA9IG9sZF9wbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlOwotCXZpc2libGUgPSBwbGFuZV9zdGF0ZS0+dmlzaWJsZTsKKwl2aXNpYmxlID0gcGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZTsKIAogCWlmICghd2FzX2NydGNfZW5hYmxlZCAmJiBXQVJOX09OKHdhc192aXNpYmxlKSkKIAkJd2FzX3Zpc2libGUgPSBmYWxzZTsKQEAgLTExMzcxLDIyICsxMTUxNSwyMiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdAogCSAqIG9ubHkgY29tYmluZSB0aGUgcmVzdWx0cyBmcm9tIGFsbCBwbGFuZXMgaW4gdGhlIGN1cnJlbnQgcGxhY2U/CiAJICovCiAJaWYgKCFpc19jcnRjX2VuYWJsZWQpIHsKLQkJcGxhbmVfc3RhdGUtPnZpc2libGUgPSB2aXNpYmxlID0gZmFsc2U7Ci0JCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSktPmFjdGl2ZV9wbGFuZXMgJj0gfkJJVChwbGFuZS0+aWQpOwotCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLT5kYXRhX3JhdGVbcGxhbmUtPmlkXSA9IDA7CisJCXBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUgPSB2aXNpYmxlID0gZmFsc2U7CisJCWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgJj0gfkJJVChwbGFuZS0+aWQpOworCQljcnRjX3N0YXRlLT5kYXRhX3JhdGVbcGxhbmUtPmlkXSA9IDA7CiAJfQogCiAJaWYgKCF3YXNfdmlzaWJsZSAmJiAhdmlzaWJsZSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoZmIgIT0gb2xkX3BsYW5lX3N0YXRlLT5iYXNlLmZiKQotCQlwaXBlX2NvbmZpZy0+ZmJfY2hhbmdlZCA9IHRydWU7CisJCWNydGNfc3RhdGUtPmZiX2NoYW5nZWQgPSB0cnVlOwogCiAJdHVybl9vZmYgPSB3YXNfdmlzaWJsZSAmJiAoIXZpc2libGUgfHwgbW9kZV9jaGFuZ2VkKTsKIAl0dXJuX29uID0gdmlzaWJsZSAmJiAoIXdhc192aXNpYmxlIHx8IG1vZGVfY2hhbmdlZCk7CiAKIAlEUk1fREVCVUdfQVRPTUlDKCJbQ1JUQzolZDolc10gaGFzIFtQTEFORTolZDolc10gd2l0aCBmYiAlaVxuIiwKLQkJCSBpbnRlbF9jcnRjLT5iYXNlLmJhc2UuaWQsIGludGVsX2NydGMtPmJhc2UubmFtZSwKKwkJCSBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSwKIAkJCSBwbGFuZS0+YmFzZS5iYXNlLmlkLCBwbGFuZS0+YmFzZS5uYW1lLAogCQkJIGZiID8gZmItPmJhc2UuaWQgOiAtMSk7CiAKQEAgLTExMzk3LDI5ICsxMTU0MSwyOCBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdAogCiAJaWYgKHR1cm5fb24pIHsKIAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA1ICYmICFJU19HNFgoZGV2X3ByaXYpKQotCQkJcGlwZV9jb25maWctPnVwZGF0ZV93bV9wcmUgPSB0cnVlOworCQkJY3J0Y19zdGF0ZS0+dXBkYXRlX3dtX3ByZSA9IHRydWU7CiAKIAkJLyogbXVzdCBkaXNhYmxlIGN4c3IgYXJvdW5kIHBsYW5lIGVuYWJsZS9kaXNhYmxlICovCiAJCWlmIChwbGFuZS0+aWQgIT0gUExBTkVfQ1VSU09SKQotCQkJcGlwZV9jb25maWctPmRpc2FibGVfY3hzciA9IHRydWU7CisJCQljcnRjX3N0YXRlLT5kaXNhYmxlX2N4c3IgPSB0cnVlOwogCX0gZWxzZSBpZiAodHVybl9vZmYpIHsKIAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA1ICYmICFJU19HNFgoZGV2X3ByaXYpKQotCQkJcGlwZV9jb25maWctPnVwZGF0ZV93bV9wb3N0ID0gdHJ1ZTsKKwkJCWNydGNfc3RhdGUtPnVwZGF0ZV93bV9wb3N0ID0gdHJ1ZTsKIAogCQkvKiBtdXN0IGRpc2FibGUgY3hzciBhcm91bmQgcGxhbmUgZW5hYmxlL2Rpc2FibGUgKi8KIAkJaWYgKHBsYW5lLT5pZCAhPSBQTEFORV9DVVJTT1IpCi0JCQlwaXBlX2NvbmZpZy0+ZGlzYWJsZV9jeHNyID0gdHJ1ZTsKLQl9IGVsc2UgaWYgKGludGVsX3dtX25lZWRfdXBkYXRlKHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKSwKLQkJCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpKSkgeworCQkJY3J0Y19zdGF0ZS0+ZGlzYWJsZV9jeHNyID0gdHJ1ZTsKKwl9IGVsc2UgaWYgKGludGVsX3dtX25lZWRfdXBkYXRlKG9sZF9wbGFuZV9zdGF0ZSwgcGxhbmVfc3RhdGUpKSB7CiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNSAmJiAhSVNfRzRYKGRldl9wcml2KSkgewogCQkJLyogRklYTUUgYm9sbG9ja3MgKi8KLQkJCXBpcGVfY29uZmlnLT51cGRhdGVfd21fcHJlID0gdHJ1ZTsKLQkJCXBpcGVfY29uZmlnLT51cGRhdGVfd21fcG9zdCA9IHRydWU7CisJCQljcnRjX3N0YXRlLT51cGRhdGVfd21fcHJlID0gdHJ1ZTsKKwkJCWNydGNfc3RhdGUtPnVwZGF0ZV93bV9wb3N0ID0gdHJ1ZTsKIAkJfQogCX0KIAogCWlmICh2aXNpYmxlIHx8IHdhc192aXNpYmxlKQotCQlwaXBlX2NvbmZpZy0+ZmJfYml0cyB8PSBwbGFuZS0+ZnJvbnRidWZmZXJfYml0OworCQljcnRjX3N0YXRlLT5mYl9iaXRzIHw9IHBsYW5lLT5mcm9udGJ1ZmZlcl9iaXQ7CiAKIAkvKgogCSAqIElMSy9TTkIgRFZTQUNOVFIvU3ByaXRlIEVuYWJsZQpAQCAtMTE0NTgsOCArMTE2MDEsOCBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdAogCSAgICAoSVNfR0VOX1JBTkdFKGRldl9wcml2LCA1LCA2KSB8fAogCSAgICAgSVNfSVZZQlJJREdFKGRldl9wcml2KSkgJiYKIAkgICAgKHR1cm5fb24gfHwgKCFuZWVkc19zY2FsaW5nKG9sZF9wbGFuZV9zdGF0ZSkgJiYKLQkJCSBuZWVkc19zY2FsaW5nKHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKSkpKSkKLQkJcGlwZV9jb25maWctPmRpc2FibGVfbHBfd20gPSB0cnVlOworCQkJIG5lZWRzX3NjYWxpbmcocGxhbmVfc3RhdGUpKSkpCisJCWNydGNfc3RhdGUtPmRpc2FibGVfbHBfd20gPSB0cnVlOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMTYwOCw3ICsxMTc1MSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9CiAJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7CiAJaW50IHJldDsKLQlib29sIG1vZGVfY2hhbmdlZCA9IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSk7CisJYm9vbCBtb2RlX2NoYW5nZWQgPSBuZWVkc19tb2Rlc2V0KHBpcGVfY29uZmlnKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNSAmJiAhSVNfRzRYKGRldl9wcml2KSAmJgogCSAgICBtb2RlX2NoYW5nZWQgJiYgIWNydGNfc3RhdGUtPmFjdGl2ZSkKQEAgLTEyMDkwLDYgKzEyMjMzLDggQEAgY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlzYXZlZF9zdGF0ZS0+c2NhbGVyX3N0YXRlID0gY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlOwogCXNhdmVkX3N0YXRlLT5zaGFyZWRfZHBsbCA9IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsOwogCXNhdmVkX3N0YXRlLT5kcGxsX2h3X3N0YXRlID0gY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKKwltZW1jcHkoc2F2ZWRfc3RhdGUtPmljbF9wb3J0X2RwbGxzLCBjcnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxscywKKwkgICAgICAgc2l6ZW9mKHNhdmVkX3N0YXRlLT5pY2xfcG9ydF9kcGxscykpOwogCXNhdmVkX3N0YXRlLT5jcmNfZW5hYmxlZCA9IGNydGNfc3RhdGUtPmNyY19lbmFibGVkOwogCWlmIChJU19HNFgoZGV2X3ByaXYpIHx8CiAJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQpAQCAtMTI3MDYsMTAgKzEyODUxLDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX3BpcGVfY29uZmlnX3Nhbml0eV9jaGVjayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJfQogfQogCi1zdGF0aWMgdm9pZCB2ZXJpZnlfd21fc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X3N0YXRlKQorc3RhdGljIHZvaWQgdmVyaWZ5X3dtX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IHNrbF9od19zdGF0ZSB7CiAJCXN0cnVjdCBza2xfZGRiX2VudHJ5IGRkYl95W0k5MTVfTUFYX1BMQU5FU107CiAJCXN0cnVjdCBza2xfZGRiX2VudHJ5IGRkYl91dltJOTE1X01BWF9QTEFORVNdOwpAQCAtMTI3MTksMjEgKzEyODY0LDIwIEBAIHN0YXRpYyB2b2lkIHZlcmlmeV93bV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqc3dfZGRiOwogCXN0cnVjdCBza2xfcGlwZV93bSAqc3dfd207CiAJc3RydWN0IHNrbF9kZGJfZW50cnkgKmh3X2RkYl9lbnRyeSwgKnN3X2RkYl9lbnRyeTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0JY29uc3QgZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCWNvbnN0IGVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpbnQgcGxhbmUsIGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldl9wcml2KTsKIAotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSB8fCAhbmV3X3N0YXRlLT5hY3RpdmUpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5IHx8ICFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCiAJCXJldHVybjsKIAogCWh3ID0ga3phbGxvYyhzaXplb2YoKmh3KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFodykKIAkJcmV0dXJuOwogCi0Jc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKGludGVsX2NydGMsICZody0+d20pOwotCXN3X3dtID0gJnRvX2ludGVsX2NydGNfc3RhdGUobmV3X3N0YXRlKS0+d20uc2tsLm9wdGltYWw7CisJc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKGNydGMsICZody0+d20pOworCXN3X3dtID0gJm5ld19jcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbDsKIAotCXNrbF9waXBlX2RkYl9nZXRfaHdfc3RhdGUoaW50ZWxfY3J0YywgaHctPmRkYl95LCBody0+ZGRiX3V2KTsKKwlza2xfcGlwZV9kZGJfZ2V0X2h3X3N0YXRlKGNydGMsIGh3LT5kZGJfeSwgaHctPmRkYl91dik7CiAKIAlza2xfZGRiX2dldF9od19zdGF0ZShkZXZfcHJpdiwgJmh3LT5kZGIpOwogCXN3X2RkYiA9ICZkZXZfcHJpdi0+d20uc2tsX2h3LmRkYjsKQEAgLTEyNzgxLDcgKzEyOTI1LDcgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X3dtX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCQkvKiBEREIgKi8KIAkJaHdfZGRiX2VudHJ5ID0gJmh3LT5kZGJfeVtwbGFuZV07Ci0JCXN3X2RkYl9lbnRyeSA9ICZ0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19zdGF0ZSktPndtLnNrbC5wbGFuZV9kZGJfeVtwbGFuZV07CisJCXN3X2RkYl9lbnRyeSA9ICZuZXdfY3J0Y19zdGF0ZS0+d20uc2tsLnBsYW5lX2RkYl95W3BsYW5lXTsKIAogCQlpZiAoIXNrbF9kZGJfZW50cnlfZXF1YWwoaHdfZGRiX2VudHJ5LCBzd19kZGJfZW50cnkpKSB7CiAJCQlEUk1fRVJST1IoIm1pc21hdGNoIGluIEREQiBzdGF0ZSBwaXBlICVjIHBsYW5lICVkIChleHBlY3RlZCAoJXUsJXUpLCBmb3VuZCAoJXUsJXUpKVxuIiwKQEAgLTEyODMzLDcgKzEyOTc3LDcgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X3dtX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCQkvKiBEREIgKi8KIAkJaHdfZGRiX2VudHJ5ID0gJmh3LT5kZGJfeVtQTEFORV9DVVJTT1JdOwotCQlzd19kZGJfZW50cnkgPSAmdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfc3RhdGUpLT53bS5za2wucGxhbmVfZGRiX3lbUExBTkVfQ1VSU09SXTsKKwkJc3dfZGRiX2VudHJ5ID0gJm5ld19jcnRjX3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3lbUExBTkVfQ1VSU09SXTsKIAogCQlpZiAoIXNrbF9kZGJfZW50cnlfZXF1YWwoaHdfZGRiX2VudHJ5LCBzd19kZGJfZW50cnkpKSB7CiAJCQlEUk1fRVJST1IoIm1pc21hdGNoIGluIEREQiBzdGF0ZSBwaXBlICVjIGN1cnNvciAoZXhwZWN0ZWQgKCV1LCV1KSwgZm91bmQgKCV1LCV1KSlcbiIsCkBAIC0xMjg0NywyMyArMTI5OTEsMjIgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X3dtX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIH0KIAogc3RhdGljIHZvaWQKLXZlcmlmeV9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKLQkJICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3ZlcmlmeV9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZTsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgbmV3X2Nvbm5fc3RhdGUsIGkpIHsKKwlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKCZzdGF0ZS0+YmFzZSwgY29ubmVjdG9yLCBuZXdfY29ubl9zdGF0ZSwgaSkgewogCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Ci0JCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IE5VTEw7CisJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gTlVMTDsKIAotCQlpZiAobmV3X2Nvbm5fc3RhdGUtPmNydGMgIT0gY3J0YykKKwkJaWYgKG5ld19jb25uX3N0YXRlLT5jcnRjICE9ICZjcnRjLT5iYXNlKQogCQkJY29udGludWU7CiAKIAkJaWYgKGNydGMpCi0JCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIG5ld19jb25uX3N0YXRlLT5jcnRjKTsKKwkJCWNydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIAogCQlpbnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0YXRlKGNydGNfc3RhdGUsIG5ld19jb25uX3N0YXRlKTsKIApAQCAtMTI4NzMsMTQgKzEzMDE2LDE0IEBAIHZlcmlmeV9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIH0KIAogc3RhdGljIHZvaWQKLXZlcmlmeV9lbmNvZGVyX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3ZlcmlmeV9lbmNvZGVyX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUsICpuZXdfY29ubl9zdGF0ZTsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNvZGVyKSB7CisJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcigmZGV2X3ByaXYtPmRybSwgZW5jb2RlcikgewogCQlib29sIGVuYWJsZWQgPSBmYWxzZSwgZm91bmQgPSBmYWxzZTsKIAkJZW51bSBwaXBlIHBpcGU7CiAKQEAgLTEyODg4LDcgKzEzMDMxLDcgQEAgdmVyaWZ5X2VuY29kZXJfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkJICAgICAgZW5jb2Rlci0+YmFzZS5iYXNlLmlkLAogCQkJICAgICAgZW5jb2Rlci0+YmFzZS5uYW1lKTsKIAotCQlmb3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIG9sZF9jb25uX3N0YXRlLAorCQlmb3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0YXRlKCZzdGF0ZS0+YmFzZSwgY29ubmVjdG9yLCBvbGRfY29ubl9zdGF0ZSwKIAkJCQkJCSAgIG5ld19jb25uX3N0YXRlLCBpKSB7CiAJCQlpZiAob2xkX2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlciA9PSAmZW5jb2Rlci0+YmFzZSkKIAkJCQlmb3VuZCA9IHRydWU7CkBAIC0xMjkyMiw1MCArMTMwNjUsNDkgQEAgdmVyaWZ5X2VuY29kZXJfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogfQogCiBzdGF0aWMgdm9pZAotdmVyaWZ5X2NydGNfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCi0JCSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKK3ZlcmlmeV9jcnRjX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKKwkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsICpzd19jb25maWc7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWc7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwogCWJvb2wgYWN0aXZlOwogCi0Jb2xkX3N0YXRlID0gb2xkX2NydGNfc3RhdGUtPnN0YXRlOwotCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKG9sZF9jcnRjX3N0YXRlKTsKLQlwaXBlX2NvbmZpZyA9IHRvX2ludGVsX2NydGNfc3RhdGUob2xkX2NydGNfc3RhdGUpOworCXN0YXRlID0gb2xkX2NydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJm9sZF9jcnRjX3N0YXRlLT5iYXNlKTsKKwlwaXBlX2NvbmZpZyA9IG9sZF9jcnRjX3N0YXRlOwogCW1lbXNldChwaXBlX2NvbmZpZywgMCwgc2l6ZW9mKCpwaXBlX2NvbmZpZykpOwotCXBpcGVfY29uZmlnLT5iYXNlLmNydGMgPSBjcnRjOwotCXBpcGVfY29uZmlnLT5iYXNlLnN0YXRlID0gb2xkX3N0YXRlOworCXBpcGVfY29uZmlnLT5iYXNlLmNydGMgPSAmY3J0Yy0+YmFzZTsKKwlwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZSA9IHN0YXRlOwogCi0JRFJNX0RFQlVHX0tNUygiW0NSVEM6JWQ6JXNdXG4iLCBjcnRjLT5iYXNlLmlkLCBjcnRjLT5uYW1lKTsKKwlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc11cbiIsIGNydGMtPmJhc2UuYmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lKTsKIAotCWFjdGl2ZSA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhpbnRlbF9jcnRjLCBwaXBlX2NvbmZpZyk7CisJYWN0aXZlID0gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X3BpcGVfY29uZmlnKGNydGMsIHBpcGVfY29uZmlnKTsKIAogCS8qIHdlIGtlZXAgYm90aCBwaXBlcyBlbmFibGVkIG9uIDgzMCAqLwogCWlmIChJU19JODMwKGRldl9wcml2KSkKLQkJYWN0aXZlID0gbmV3X2NydGNfc3RhdGUtPmFjdGl2ZTsKKwkJYWN0aXZlID0gbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlOwogCi0JSTkxNV9TVEFURV9XQVJOKG5ld19jcnRjX3N0YXRlLT5hY3RpdmUgIT0gYWN0aXZlLAorCUk5MTVfU1RBVEVfV0FSTihuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgIT0gYWN0aXZlLAogCSAgICAgImNydGMgYWN0aXZlIHN0YXRlIGRvZXNuJ3QgbWF0Y2ggd2l0aCBodyBzdGF0ZSAiCi0JICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIG5ld19jcnRjX3N0YXRlLT5hY3RpdmUsIGFjdGl2ZSk7CisJICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSwgYWN0aXZlKTsKIAotCUk5MTVfU1RBVEVfV0FSTihpbnRlbF9jcnRjLT5hY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmFjdGl2ZSwKKwlJOTE1X1NUQVRFX1dBUk4oY3J0Yy0+YWN0aXZlICE9IG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSwKIAkgICAgICJ0cmFuc2l0aW9uYWwgYWN0aXZlIHN0YXRlIGRvZXMgbm90IG1hdGNoIGF0b21pYyBodyBzdGF0ZSAiCi0JICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIG5ld19jcnRjX3N0YXRlLT5hY3RpdmUsIGludGVsX2NydGMtPmFjdGl2ZSk7CisJICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSwgY3J0Yy0+YWN0aXZlKTsKIAotCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKKwlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCAmY3J0Yy0+YmFzZSwgZW5jb2RlcikgewogCQllbnVtIHBpcGUgcGlwZTsKIAogCQlhY3RpdmUgPSBlbmNvZGVyLT5nZXRfaHdfc3RhdGUoZW5jb2RlciwgJnBpcGUpOwotCQlJOTE1X1NUQVRFX1dBUk4oYWN0aXZlICE9IG5ld19jcnRjX3N0YXRlLT5hY3RpdmUsCisJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlLAogCQkJIltFTkNPREVSOiVpXSBhY3RpdmUgJWkgd2l0aCBjcnRjIGFjdGl2ZSAlaVxuIiwKLQkJCWVuY29kZXItPmJhc2UuYmFzZS5pZCwgYWN0aXZlLCBuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKTsKKwkJCWVuY29kZXItPmJhc2UuYmFzZS5pZCwgYWN0aXZlLCBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpOwogCi0JCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgJiYgaW50ZWxfY3J0Yy0+cGlwZSAhPSBwaXBlLAorCQlJOTE1X1NUQVRFX1dBUk4oYWN0aXZlICYmIGNydGMtPnBpcGUgIT0gcGlwZSwKIAkJCQkiRW5jb2RlciBjb25uZWN0ZWQgdG8gd3JvbmcgcGlwZSAlY1xuIiwKIAkJCQlwaXBlX25hbWUocGlwZSkpOwogCkBAIC0xMjk3NSwxNiArMTMxMTcsMTYgQEAgdmVyaWZ5X2NydGNfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJaW50ZWxfY3J0Y19jb21wdXRlX3BpeGVsX3JhdGUocGlwZV9jb25maWcpOwogCi0JaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQorCWlmICghbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQogCQlyZXR1cm47CiAKIAlpbnRlbF9waXBlX2NvbmZpZ19zYW5pdHlfY2hlY2soZGV2X3ByaXYsIHBpcGVfY29uZmlnKTsKIAotCXN3X2NvbmZpZyA9IHRvX2ludGVsX2NydGNfc3RhdGUobmV3X2NydGNfc3RhdGUpOwotCWlmICghaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzd19jb25maWcsIHBpcGVfY29uZmlnLCBmYWxzZSkpIHsKKwlpZiAoIWludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUobmV3X2NydGNfc3RhdGUsCisJCQkJICAgICAgIHBpcGVfY29uZmlnLCBmYWxzZSkpIHsKIAkJSTkxNV9TVEFURV9XQVJOKDEsICJwaXBlIHN0YXRlIGRvZXNuJ3QgbWF0Y2ghXG4iKTsKIAkJaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhwaXBlX2NvbmZpZywgTlVMTCwgIltodyBzdGF0ZV0iKTsKLQkJaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhzd19jb25maWcsIE5VTEwsICJbc3cgc3RhdGVdIik7CisJCWludGVsX2R1bXBfcGlwZV9jb25maWcobmV3X2NydGNfc3RhdGUsIE5VTEwsICJbc3cgc3RhdGVdIik7CiAJfQogfQogCkBAIC0xMzAwNCw4ICsxMzE0Niw4IEBAIGludGVsX3ZlcmlmeV9wbGFuZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiBzdGF0aWMgdm9pZAogdmVyaWZ5X3NpbmdsZV9kcGxsX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKLQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkgc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfc3RhdGUpCisJCQkgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIGRwbGxfaHdfc3RhdGU7CiAJdW5zaWduZWQgaW50IGNydGNfbWFzazsKQEAgLTEzMDM1LDE2ICsxMzE3NywxNiBAQCB2ZXJpZnlfc2luZ2xlX2RwbGxfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlyZXR1cm47CiAJfQogCi0JY3J0Y19tYXNrID0gZHJtX2NydGNfbWFzayhjcnRjKTsKKwljcnRjX21hc2sgPSBkcm1fY3J0Y19tYXNrKCZjcnRjLT5iYXNlKTsKIAotCWlmIChuZXdfc3RhdGUtPmFjdGl2ZSkKKwlpZiAobmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQogCQlJOTE1X1NUQVRFX1dBUk4oIShwbGwtPmFjdGl2ZV9tYXNrICYgY3J0Y19tYXNrKSwKIAkJCQkicGxsIGFjdGl2ZSBtaXNtYXRjaCAoZXhwZWN0ZWQgcGlwZSAlYyBpbiBhY3RpdmUgbWFzayAweCUwMngpXG4iLAotCQkJCXBpcGVfbmFtZShkcm1fY3J0Y19pbmRleChjcnRjKSksIHBsbC0+YWN0aXZlX21hc2spOworCQkJCXBpcGVfbmFtZShkcm1fY3J0Y19pbmRleCgmY3J0Yy0+YmFzZSkpLCBwbGwtPmFjdGl2ZV9tYXNrKTsKIAllbHNlCiAJCUk5MTVfU1RBVEVfV0FSTihwbGwtPmFjdGl2ZV9tYXNrICYgY3J0Y19tYXNrLAogCQkJCSJwbGwgYWN0aXZlIG1pc21hdGNoIChkaWRuJ3QgZXhwZWN0IHBpcGUgJWMgaW4gYWN0aXZlIG1hc2sgMHglMDJ4KVxuIiwKLQkJCQlwaXBlX25hbWUoZHJtX2NydGNfaW5kZXgoY3J0YykpLCBwbGwtPmFjdGl2ZV9tYXNrKTsKKwkJCQlwaXBlX25hbWUoZHJtX2NydGNfaW5kZXgoJmNydGMtPmJhc2UpKSwgcGxsLT5hY3RpdmVfbWFzayk7CiAKIAlJOTE1X1NUQVRFX1dBUk4oIShwbGwtPnN0YXRlLmNydGNfbWFzayAmIGNydGNfbWFzayksCiAJCQkicGxsIGVuYWJsZWQgY3J0Y3MgbWlzbWF0Y2ggKGV4cGVjdGVkIDB4JXggaW4gMHglMDJ4KVxuIiwKQEAgLTEzMDU3LDUxICsxMzE5OSw0NyBAQCB2ZXJpZnlfc2luZ2xlX2RwbGxfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogfQogCiBzdGF0aWMgdm9pZAotdmVyaWZ5X3NoYXJlZF9kcGxsX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAotCQkJIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCit2ZXJpZnlfc2hhcmVkX2RwbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAorCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUob2xkX2NydGNfc3RhdGUpOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAotCWlmIChuZXdfc3RhdGUtPnNoYXJlZF9kcGxsKQotCQl2ZXJpZnlfc2luZ2xlX2RwbGxfc3RhdGUoZGV2X3ByaXYsIG5ld19zdGF0ZS0+c2hhcmVkX2RwbGwsIGNydGMsIG5ld19jcnRjX3N0YXRlKTsKKwlpZiAobmV3X2NydGNfc3RhdGUtPnNoYXJlZF9kcGxsKQorCQl2ZXJpZnlfc2luZ2xlX2RwbGxfc3RhdGUoZGV2X3ByaXYsIG5ld19jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCwgY3J0YywgbmV3X2NydGNfc3RhdGUpOwogCi0JaWYgKG9sZF9zdGF0ZS0+c2hhcmVkX2RwbGwgJiYKLQkgICAgb2xkX3N0YXRlLT5zaGFyZWRfZHBsbCAhPSBuZXdfc3RhdGUtPnNoYXJlZF9kcGxsKSB7Ci0JCXVuc2lnbmVkIGludCBjcnRjX21hc2sgPSBkcm1fY3J0Y19tYXNrKGNydGMpOwotCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IG9sZF9zdGF0ZS0+c2hhcmVkX2RwbGw7CisJaWYgKG9sZF9jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCAmJgorCSAgICBvbGRfY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgIT0gbmV3X2NydGNfc3RhdGUtPnNoYXJlZF9kcGxsKSB7CisJCXVuc2lnbmVkIGludCBjcnRjX21hc2sgPSBkcm1fY3J0Y19tYXNrKCZjcnRjLT5iYXNlKTsKKwkJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBvbGRfY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7CiAKIAkJSTkxNV9TVEFURV9XQVJOKHBsbC0+YWN0aXZlX21hc2sgJiBjcnRjX21hc2ssCiAJCQkJInBsbCBhY3RpdmUgbWlzbWF0Y2ggKGRpZG4ndCBleHBlY3QgcGlwZSAlYyBpbiBhY3RpdmUgbWFzaylcbiIsCi0JCQkJcGlwZV9uYW1lKGRybV9jcnRjX2luZGV4KGNydGMpKSk7CisJCQkJcGlwZV9uYW1lKGRybV9jcnRjX2luZGV4KCZjcnRjLT5iYXNlKSkpOwogCQlJOTE1X1NUQVRFX1dBUk4ocGxsLT5zdGF0ZS5jcnRjX21hc2sgJiBjcnRjX21hc2ssCiAJCQkJInBsbCBlbmFibGVkIGNydGNzIG1pc21hdGNoIChmb3VuZCAleCBpbiBlbmFibGVkIG1hc2spXG4iLAotCQkJCXBpcGVfbmFtZShkcm1fY3J0Y19pbmRleChjcnRjKSkpOworCQkJCXBpcGVfbmFtZShkcm1fY3J0Y19pbmRleCgmY3J0Yy0+YmFzZSkpKTsKIAl9CiB9CiAKIHN0YXRpYyB2b2lkCi1pbnRlbF9tb2Rlc2V0X3ZlcmlmeV9jcnRjKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSwKLQkJCSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfc3RhdGUpCitpbnRlbF9tb2Rlc2V0X3ZlcmlmeV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAorCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0JaWYgKCFuZWVkc19tb2Rlc2V0KG5ld19zdGF0ZSkgJiYKLQkgICAgIXRvX2ludGVsX2NydGNfc3RhdGUobmV3X3N0YXRlKS0+dXBkYXRlX3BpcGUpCisJaWYgKCFuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSAmJiAhbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKQogCQlyZXR1cm47CiAKLQl2ZXJpZnlfd21fc3RhdGUoY3J0YywgbmV3X3N0YXRlKTsKLQl2ZXJpZnlfY29ubmVjdG9yX3N0YXRlKGNydGMtPmRldiwgc3RhdGUsIGNydGMpOwotCXZlcmlmeV9jcnRjX3N0YXRlKGNydGMsIG9sZF9zdGF0ZSwgbmV3X3N0YXRlKTsKLQl2ZXJpZnlfc2hhcmVkX2RwbGxfc3RhdGUoY3J0Yy0+ZGV2LCBjcnRjLCBvbGRfc3RhdGUsIG5ld19zdGF0ZSk7CisJdmVyaWZ5X3dtX3N0YXRlKGNydGMsIG5ld19jcnRjX3N0YXRlKTsKKwl2ZXJpZnlfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwl2ZXJpZnlfY3J0Y19zdGF0ZShjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUpOworCXZlcmlmeV9zaGFyZWRfZHBsbF9zdGF0ZShjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZAotdmVyaWZ5X2Rpc2FibGVkX2RwbGxfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3ZlcmlmeV9kaXNhYmxlZF9kcGxsX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKQpAQCAtMTMxMDksMTIgKzEzMjQ3LDEyIEBAIHZlcmlmeV9kaXNhYmxlZF9kcGxsX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB9CiAKIHN0YXRpYyB2b2lkCi1pbnRlbF9tb2Rlc2V0X3ZlcmlmeV9kaXNhYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQoraW50ZWxfbW9kZXNldF92ZXJpZnlfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0JdmVyaWZ5X2VuY29kZXJfc3RhdGUoZGV2LCBzdGF0ZSk7Ci0JdmVyaWZ5X2Nvbm5lY3Rvcl9zdGF0ZShkZXYsIHN0YXRlLCBOVUxMKTsKLQl2ZXJpZnlfZGlzYWJsZWRfZHBsbF9zdGF0ZShkZXYpOworCXZlcmlmeV9lbmNvZGVyX3N0YXRlKGRldl9wcml2LCBzdGF0ZSk7CisJdmVyaWZ5X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgTlVMTCk7CisJdmVyaWZ5X2Rpc2FibGVkX2RwbGxfc3RhdGUoZGV2X3ByaXYpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVfc2NhbmxpbmVfb2Zmc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQpAQCAtMTMxNjgsMjcgKzEzMzA2LDE4IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9zY2FubGluZV9vZmZzZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X2NsZWFyX3BsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRjX3N0YXRlOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAlpbnQgaTsKIAogCWlmICghZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19jb21wdXRlX2Nsb2NrKQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsCi0JCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKm9sZF9kcGxsID0KLQkJCW9sZF9jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKLQotCQlpZiAoIW5lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkKKwlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUsIGkpIHsKKwkJaWYgKCFuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkKIAkJCWNvbnRpbnVlOwogCi0JCW5ld19jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IE5VTEw7Ci0KLQkJaWYgKCFvbGRfZHBsbCkKLQkJCWNvbnRpbnVlOwotCi0JCWludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGwob2xkX2RwbGwsIGNydGMsICZzdGF0ZS0+YmFzZSk7CisJCWludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxzKHN0YXRlLCBjcnRjKTsKIAl9CiB9CiAKQEAgLTEzMjEwLDcgKzEzMzM5LDcgQEAgc3RhdGljIGludCBoYXN3ZWxsX21vZGVfc2V0X3BsYW5lc193b3JrYXJvdW5kKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCS8qIGxvb2sgYXQgYWxsIGNydGMncyB0aGF0IGFyZSBnb2luZyB0byBiZSBlbmFibGVkIGluIGR1cmluZyBtb2Rlc2V0ICovCiAJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKIAkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fAotCQkgICAgIW5lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPmJhc2UpKQorCQkgICAgIW5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCiAJCQljb250aW51ZTsKIAogCQlpZiAoZmlyc3RfY3J0Y19zdGF0ZSkgewpAQCAtMTMyMzUsNyArMTMzNjQsNyBAQCBzdGF0aWMgaW50IGhhc3dlbGxfbW9kZV9zZXRfcGxhbmVzX3dvcmthcm91bmQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCWNydGNfc3RhdGUtPmhzd193b3JrYXJvdW5kX3BpcGUgPSBJTlZBTElEX1BJUEU7CiAKIAkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fAotCQkgICAgbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+YmFzZSkpCisJCSAgICBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQogCQkJY29udGludWU7CiAKIAkJLyogMiBvciBtb3JlIGVuYWJsZWQgY3J0Y3MgbWVhbnMgbm8gbmVlZCBmb3Igdy9hICovCkBAIC0xMzI1MywxNSArMTMzODIsMTYgQEAgc3RhdGljIGludCBoYXN3ZWxsX21vZGVfc2V0X3BsYW5lc193b3JrYXJvdW5kKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGludGVsX2xvY2tfYWxsX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyBpbnQgaW50ZWxfbG9ja19hbGxfcGlwZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAogCS8qIEFkZCBhbGwgcGlwZXMgdG8gdGhlIHN0YXRlICovCi0JZm9yX2VhY2hfY3J0YyhzdGF0ZS0+ZGV2LCBjcnRjKSB7Ci0JCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlmb3JfZWFjaF9pbnRlbF9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBjcnRjKSB7CisJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCi0JCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwkJY3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZSgmc3RhdGUtPmJhc2UsIGNydGMpOwogCQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQogCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7CiAJfQpAQCAtMTMyNjksMzIgKzEzMzk5LDM1IEBAIHN0YXRpYyBpbnQgaW50ZWxfbG9ja19hbGxfcGlwZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAogCS8qCiAJICogQWRkIGFsbCBwaXBlcyB0byB0aGUgc3RhdGUsIGFuZCBmb3JjZQogCSAqIGEgbW9kZXNldCBvbiBhbGwgdGhlIGFjdGl2ZSBvbmVzLgogCSAqLwotCWZvcl9lYWNoX2NydGMoc3RhdGUtPmRldiwgY3J0YykgewotCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisJZm9yX2VhY2hfaW50ZWxfY3J0YygmZGV2X3ByaXYtPmRybSwgY3J0YykgeworCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAkJaW50IHJldDsKIAotCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisJCWNydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoJnN0YXRlLT5iYXNlLCBjcnRjKTsKIAkJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKIAkJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOwogCi0JCWlmICghY3J0Y19zdGF0ZS0+YWN0aXZlIHx8IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCisJCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwgbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkKIAkJCWNvbnRpbnVlOwogCi0JCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7CisJCWNydGNfc3RhdGUtPmJhc2UubW9kZV9jaGFuZ2VkID0gdHJ1ZTsKIAotCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKHN0YXRlLCBjcnRjKTsKKwkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycygmc3RhdGUtPmJhc2UsCisJCQkJCQkJICZjcnRjLT5iYXNlKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKLQkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0YXRlLCBjcnRjKTsKKwkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfcGxhbmVzKCZzdGF0ZS0+YmFzZSwKKwkJCQkJCSAgICAgJmNydGMtPmJhc2UpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CkBAIC0xMzM1NiwxOCArMTM0ODksMTggQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJICovCiAJCWlmIChpbnRlbF9jZGNsa19jaGFuZ2VkKCZkZXZfcHJpdi0+Y2RjbGsubG9naWNhbCwKIAkJCQkJJnN0YXRlLT5jZGNsay5sb2dpY2FsKSkgewotCQkJcmV0ID0gaW50ZWxfbG9ja19hbGxfcGlwZXMoJnN0YXRlLT5iYXNlKTsKKwkJCXJldCA9IGludGVsX2xvY2tfYWxsX3BpcGVzKHN0YXRlKTsKIAkJCWlmIChyZXQgPCAwKQogCQkJCXJldHVybiByZXQ7CiAJCX0KIAogCQlpZiAoaXNfcG93ZXJfb2ZfMihzdGF0ZS0+YWN0aXZlX2NydGNzKSkgewotCQkJc3RydWN0IGRybV9jcnRjICpjcnRjOwotCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCQkJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAogCQkJcGlwZSA9IGlsb2cyKHN0YXRlLT5hY3RpdmVfY3J0Y3MpOwotCQkJY3J0YyA9ICZpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZfcHJpdiwgcGlwZSktPmJhc2U7Ci0JCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoJnN0YXRlLT5iYXNlLCBjcnRjKTsKKwkJCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZfcHJpdiwgcGlwZSk7CisJCQljcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAJCQlpZiAoY3J0Y19zdGF0ZSAmJiBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQogCQkJCXBpcGUgPSBJTlZBTElEX1BJUEU7CiAJCX0gZWxzZSB7CkBAIC0xMzM3OSwxNCArMTM1MTIsMTQgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJICAgIGludGVsX2NkY2xrX25lZWRzX2NkMnhfdXBkYXRlKGRldl9wcml2LAogCQkJCQkJICAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKIAkJCQkJCSAgJnN0YXRlLT5jZGNsay5hY3R1YWwpKSB7Ci0JCQlyZXQgPSBpbnRlbF9sb2NrX2FsbF9waXBlcygmc3RhdGUtPmJhc2UpOworCQkJcmV0ID0gaW50ZWxfbG9ja19hbGxfcGlwZXMoc3RhdGUpOwogCQkJaWYgKHJldCA8IDApCiAJCQkJcmV0dXJuIHJldDsKIAogCQkJc3RhdGUtPmNkY2xrLnBpcGUgPSBwaXBlOwogCQl9IGVsc2UgaWYgKGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoJmRldl9wcml2LT5jZGNsay5hY3R1YWwsCiAJCQkJCQkgICAgICZzdGF0ZS0+Y2RjbGsuYWN0dWFsKSkgewotCQkJcmV0ID0gaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoJnN0YXRlLT5iYXNlKTsKKwkJCXJldCA9IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0YXRlKTsKIAkJCWlmIChyZXQgPCAwKQogCQkJCXJldHVybiByZXQ7CiAKQEAgLTEzNDc4LDcgKzEzNjExLDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKIAkJCQkJICAgIG5ld19jcnRjX3N0YXRlLCBpKSB7Ci0JCWlmICghbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpKQorCQlpZiAoIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpKQogCQkJY29udGludWU7CiAKIAkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUpIHsKQEAgLTEzNDkyLDcgKzEzNjI1LDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCQlpbnRlbF9jcnRjX2NoZWNrX2Zhc3RzZXQob2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlKTsKIAotCQlpZiAobmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpKQorCQlpZiAobmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkpCiAJCQlhbnlfbXMgPSB0cnVlOwogCX0KIApAQCAtMTM1MjcsMTIgKzEzNjYwLDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsCiAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoIW5lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSAmJgorCQlpZiAoIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpICYmCiAJCSAgICAhbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKQogCQkJY29udGludWU7CiAKIAkJaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhuZXdfY3J0Y19zdGF0ZSwgc3RhdGUsCi0JCQkJICAgICAgIG5lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSA/CisJCQkJICAgICAgIG5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpID8KIAkJCQkgICAgICAgIlttb2Rlc2V0XSIgOiAiW2Zhc3RzZXRdIik7CiAJfQogCkBAIC0xMzU1MywxMCArMTM2ODYsMTAgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGludGVsX2F0b21pY19wcmVwYXJlX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgaW50IGludGVsX2F0b21pY19wcmVwYXJlX2NvbW1pdChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlyZXR1cm4gZHJtX2F0b21pY19oZWxwZXJfcHJlcGFyZV9wbGFuZXMoZGV2LCBzdGF0ZSk7CisJcmV0dXJuIGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVfcGxhbmVzKHN0YXRlLT5iYXNlLmRldiwKKwkJCQkJCSZzdGF0ZS0+YmFzZSk7CiB9CiAKIHUzMiBpbnRlbF9jcnRjX2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKQEAgLTEzNTY3LDYwICsxMzcwMCw1NyBAQCB1MzIgaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJaWYgKCF2YmxhbmstPm1heF92YmxhbmtfY291bnQpCiAJCXJldHVybiAodTMyKWRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19jb3VudCgmY3J0Yy0+YmFzZSk7CiAKLQlyZXR1cm4gZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRlcihkZXYsIGNydGMtPnBpcGUpOworCXJldHVybiBjcnRjLT5iYXNlLmZ1bmNzLT5nZXRfdmJsYW5rX2NvdW50ZXIoJmNydGMtPmJhc2UpOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAotCQkJICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKK3N0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJICAgICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCisJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0gdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7CiAJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSk7CiAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGUgPQotCQlpbnRlbF9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZSh0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLAotCQkJCQkJIHRvX2ludGVsX3BsYW5lKGNydGMtPnByaW1hcnkpKTsKKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUsCisJCQkJCQkgdG9faW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KSk7CiAKIAlpZiAobW9kZXNldCkgewotCQl1cGRhdGVfc2NhbmxpbmVfb2Zmc2V0KHBpcGVfY29uZmlnKTsKLQkJZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19lbmFibGUocGlwZV9jb25maWcsIHN0YXRlKTsKKwkJdXBkYXRlX3NjYW5saW5lX29mZnNldChuZXdfY3J0Y19zdGF0ZSk7CisJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZW5hYmxlKG5ld19jcnRjX3N0YXRlLCBzdGF0ZSk7CiAKIAkJLyogdmJsYW5rcyB3b3JrIGFnYWluLCByZS1lbmFibGUgcGlwZSBDUkMuICovCi0JCWludGVsX2NydGNfZW5hYmxlX3BpcGVfY3JjKGludGVsX2NydGMpOworCQlpbnRlbF9jcnRjX2VuYWJsZV9waXBlX2NyYyhjcnRjKTsKIAl9IGVsc2UgewotCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHRvX2ludGVsX2NydGNfc3RhdGUob2xkX2NydGNfc3RhdGUpLAotCQkJCSAgICAgICBwaXBlX2NvbmZpZyk7CisJCWludGVsX3ByZV9wbGFuZV91cGRhdGUob2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlKTsKIAotCQlpZiAocGlwZV9jb25maWctPnVwZGF0ZV9waXBlKQotCQkJaW50ZWxfZW5jb2RlcnNfdXBkYXRlX3BpcGUoY3J0YywgcGlwZV9jb25maWcsIHN0YXRlKTsKKwkJaWYgKG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkKKwkJCWludGVsX2VuY29kZXJzX3VwZGF0ZV9waXBlKGNydGMsIG5ld19jcnRjX3N0YXRlLCBzdGF0ZSk7CiAJfQogCi0JaWYgKHBpcGVfY29uZmlnLT51cGRhdGVfcGlwZSAmJiAhcGlwZV9jb25maWctPmVuYWJsZV9mYmMpCi0JCWludGVsX2ZiY19kaXNhYmxlKGludGVsX2NydGMpOworCWlmIChuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUgJiYgIW5ld19jcnRjX3N0YXRlLT5lbmFibGVfZmJjKQorCQlpbnRlbF9mYmNfZGlzYWJsZShjcnRjKTsKIAllbHNlIGlmIChuZXdfcGxhbmVfc3RhdGUpCi0JCWludGVsX2ZiY19lbmFibGUoaW50ZWxfY3J0YywgcGlwZV9jb25maWcsIG5ld19wbGFuZV9zdGF0ZSk7CisJCWludGVsX2ZiY19lbmFibGUoY3J0YywgbmV3X2NydGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSk7CiAKLQlpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdCh0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLCBpbnRlbF9jcnRjKTsKKwlpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdGF0ZSwgY3J0Yyk7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQotCQlza2xfdXBkYXRlX3BsYW5lc19vbl9jcnRjKHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSksIGludGVsX2NydGMpOworCQlza2xfdXBkYXRlX3BsYW5lc19vbl9jcnRjKHN0YXRlLCBjcnRjKTsKIAllbHNlCi0JCWk5eHhfdXBkYXRlX3BsYW5lc19vbl9jcnRjKHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSksIGludGVsX2NydGMpOworCQlpOXh4X3VwZGF0ZV9wbGFuZXNfb25fY3J0YyhzdGF0ZSwgY3J0Yyk7CiAKLQlpbnRlbF9maW5pc2hfY3J0Y19jb21taXQodG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKSwgaW50ZWxfY3J0Yyk7CisJaW50ZWxfZmluaXNoX2NydGNfY29tbWl0KHN0YXRlLCBjcnRjKTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX2NydGNzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRjX3N0YXRlOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRjX3N0YXRlOwogCWludCBpOwogCi0JZm9yX2VhY2hfb2xkbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5hY3RpdmUpCisJZm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwgaSkgeworCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKIAkJCWNvbnRpbnVlOwogCiAJCWludGVsX3VwZGF0ZV9jcnRjKGNydGMsIHN0YXRlLCBvbGRfY3J0Y19zdGF0ZSwKQEAgLTEzNjI4LDI2ICsxMzc1OCwyMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfY3J0Y3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCX0KIH0KIAotc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgdm9pZCBza2xfdXBkYXRlX2NydGNzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7Ci0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLCAqbmV3X2NydGNfc3RhdGU7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLCAqbmV3X2NydGNfc3RhdGU7CiAJdW5zaWduZWQgaW50IHVwZGF0ZWQgPSAwOwogCWJvb2wgcHJvZ3Jlc3M7CiAJZW51bSBwaXBlIHBpcGU7CiAJaW50IGk7CiAJdTggaHdfZW5hYmxlZF9zbGljZXMgPSBkZXZfcHJpdi0+d20uc2tsX2h3LmRkYi5lbmFibGVkX3NsaWNlczsKLQl1OCByZXF1aXJlZF9zbGljZXMgPSBpbnRlbF9zdGF0ZS0+d21fcmVzdWx0cy5kZGIuZW5hYmxlZF9zbGljZXM7CisJdTggcmVxdWlyZWRfc2xpY2VzID0gc3RhdGUtPndtX3Jlc3VsdHMuZGRiLmVuYWJsZWRfc2xpY2VzOwogCXN0cnVjdCBza2xfZGRiX2VudHJ5IGVudHJpZXNbSTkxNV9NQVhfUElQRVNdID0ge307CiAKLQlmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKQorCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsIGkpCiAJCS8qIGlnbm9yZSBhbGxvY2F0aW9ucyBmb3IgY3J0YydzIHRoYXQgaGF2ZSBiZWVuIHR1cm5lZCBvZmYuICovCi0JCWlmIChuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQotCQkJZW50cmllc1tpXSA9IHRvX2ludGVsX2NydGNfc3RhdGUob2xkX2NydGNfc3RhdGUpLT53bS5za2wuZGRiOworCQlpZiAobmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCQkJZW50cmllc1tpXSA9IG9sZF9jcnRjX3N0YXRlLT53bS5za2wuZGRiOwogCiAJLyogSWYgMm5kIERCdWYgc2xpY2UgcmVxdWlyZWQsIGVuYWJsZSBpdCBoZXJlICovCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYgcmVxdWlyZWRfc2xpY2VzID4gaHdfZW5hYmxlZF9zbGljZXMpCkBAIC0xMzY2MiwyNCArMTM3ODksMjIgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJZG8gewogCQlwcm9ncmVzcyA9IGZhbHNlOwogCi0JCWZvcl9lYWNoX29sZG5ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsIGkpIHsKKwkJZm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewogCQkJYm9vbCB2Ymxfd2FpdCA9IGZhbHNlOwotCQkJdW5zaWduZWQgaW50IGNtYXNrID0gZHJtX2NydGNfbWFzayhjcnRjKTsKKwkJCXVuc2lnbmVkIGludCBjbWFzayA9IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwogCi0JCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQkJCWNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUobmV3X2NydGNfc3RhdGUpOwotCQkJcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CisJCQlwaXBlID0gY3J0Yy0+cGlwZTsKIAotCQkJaWYgKHVwZGF0ZWQgJiBjbWFzayB8fCAhY3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwkJCWlmICh1cGRhdGVkICYgY21hc2sgfHwgIW5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKIAkJCQljb250aW51ZTsKIAotCQkJaWYgKHNrbF9kZGJfYWxsb2NhdGlvbl9vdmVybGFwcygmY3N0YXRlLT53bS5za2wuZGRiLAorCQkJaWYgKHNrbF9kZGJfYWxsb2NhdGlvbl9vdmVybGFwcygmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5kZGIsCiAJCQkJCQkJZW50cmllcywKIAkJCQkJCQlJTlRFTF9JTkZPKGRldl9wcml2KS0+bnVtX3BpcGVzLCBpKSkKIAkJCQljb250aW51ZTsKIAogCQkJdXBkYXRlZCB8PSBjbWFzazsKLQkJCWVudHJpZXNbaV0gPSBjc3RhdGUtPndtLnNrbC5kZGI7CisJCQllbnRyaWVzW2ldID0gbmV3X2NydGNfc3RhdGUtPndtLnNrbC5kZGI7CiAKIAkJCS8qCiAJCQkgKiBJZiB0aGlzIGlzIGFuIGFscmVhZHkgYWN0aXZlIHBpcGUsIGl0J3MgRERCIGNoYW5nZWQsCkBAIC0xMzY4NywxMCArMTM4MTIsMTAgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCQkgKiB0aGVuIHdlIG5lZWQgdG8gd2FpdCBmb3IgYSB2YmxhbmsgdG8gcGFzcyBmb3IgdGhlCiAJCQkgKiBuZXcgZGRiIGFsbG9jYXRpb24gdG8gdGFrZSBlZmZlY3QuCiAJCQkgKi8KLQkJCWlmICghc2tsX2RkYl9lbnRyeV9lcXVhbCgmY3N0YXRlLT53bS5za2wuZGRiLAotCQkJCQkJICZ0b19pbnRlbF9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKS0+d20uc2tsLmRkYikgJiYKLQkJCSAgICAhbmV3X2NydGNfc3RhdGUtPmFjdGl2ZV9jaGFuZ2VkICYmCi0JCQkgICAgaW50ZWxfc3RhdGUtPndtX3Jlc3VsdHMuZGlydHlfcGlwZXMgIT0gdXBkYXRlZCkKKwkJCWlmICghc2tsX2RkYl9lbnRyeV9lcXVhbCgmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5kZGIsCisJCQkJCQkgJm9sZF9jcnRjX3N0YXRlLT53bS5za2wuZGRiKSAmJgorCQkJICAgICFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmVfY2hhbmdlZCAmJgorCQkJICAgIHN0YXRlLT53bV9yZXN1bHRzLmRpcnR5X3BpcGVzICE9IHVwZGF0ZWQpCiAJCQkJdmJsX3dhaXQgPSB0cnVlOwogCiAJCQlpbnRlbF91cGRhdGVfY3J0YyhjcnRjLCBzdGF0ZSwgb2xkX2NydGNfc3RhdGUsCkBAIC0xMzczNiwxOCArMTM4NjEsMjEgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF9mZW5jZV93YWl0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXQKIAlmb3IgKDs7KSB7CiAJCXByZXBhcmVfdG9fd2FpdCgmaW50ZWxfc3RhdGUtPmNvbW1pdF9yZWFkeS53YWl0LAogCQkJCSZ3YWl0X2ZlbmNlLCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7Ci0JCXByZXBhcmVfdG9fd2FpdCgmZGV2X3ByaXYtPmdwdV9lcnJvci53YWl0X3F1ZXVlLAorCQlwcmVwYXJlX3RvX3dhaXQoYml0X3dhaXRxdWV1ZSgmZGV2X3ByaXYtPmd0LnJlc2V0LmZsYWdzLAorCQkJCQkgICAgICBJOTE1X1JFU0VUX01PREVTRVQpLAogCQkJCSZ3YWl0X3Jlc2V0LCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7CiAKIAotCQlpZiAoaTkxNV9zd19mZW5jZV9kb25lKCZpbnRlbF9zdGF0ZS0+Y29tbWl0X3JlYWR5KQotCQkgICAgfHwgdGVzdF9iaXQoSTkxNV9SRVNFVF9NT0RFU0VULCAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncykpCisJCWlmIChpOTE1X3N3X2ZlbmNlX2RvbmUoJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHkpIHx8CisJCSAgICB0ZXN0X2JpdChJOTE1X1JFU0VUX01PREVTRVQsICZkZXZfcHJpdi0+Z3QucmVzZXQuZmxhZ3MpKQogCQkJYnJlYWs7CiAKIAkJc2NoZWR1bGUoKTsKIAl9CiAJZmluaXNoX3dhaXQoJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHkud2FpdCwgJndhaXRfZmVuY2UpOwotCWZpbmlzaF93YWl0KCZkZXZfcHJpdi0+Z3B1X2Vycm9yLndhaXRfcXVldWUsICZ3YWl0X3Jlc2V0KTsKKwlmaW5pc2hfd2FpdChiaXRfd2FpdHF1ZXVlKCZkZXZfcHJpdi0+Z3QucmVzZXQuZmxhZ3MsCisJCQkJICBJOTE1X1JFU0VUX01PREVTRVQpLAorCQkgICAgJndhaXRfcmVzZXQpOwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY2xlYW51cF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKQEAgLTEzNzYzLDU3ICsxMzg5MSw0OSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY2xlYW51cF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpbnRlbF9hdG9taWNfaGVscGVyX2ZyZWVfc3RhdGUoaTkxNSk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Ci0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0ZTsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2ludGVsX2NydGNfc3RhdGUsICpvbGRfaW50ZWxfY3J0Y19zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlLCAqb2xkX2NydGNfc3RhdGU7CisJc3RydWN0IGludGVsX2NydGMgKmNydGM7CiAJdTY0IHB1dF9kb21haW5zW0k5MTVfTUFYX1BJUEVTXSA9IHt9OwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmID0gMDsKIAlpbnQgaTsKIAotCWludGVsX2F0b21pY19jb21taXRfZmVuY2Vfd2FpdChpbnRlbF9zdGF0ZSk7CisJaW50ZWxfYXRvbWljX2NvbW1pdF9mZW5jZV93YWl0KHN0YXRlKTsKIAotCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVuZGVuY2llcyhzdGF0ZSk7CisJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKCZzdGF0ZS0+YmFzZSk7CiAKLQlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpCisJaWYgKHN0YXRlLT5tb2Rlc2V0KQogCQl3YWtlcmVmID0gaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9NT0RFU0VUKTsKIAotCWZvcl9lYWNoX29sZG5ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJb2xkX2ludGVsX2NydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKTsKLQkJbmV3X2ludGVsX2NydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKTsKLQkJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0KKwlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7CiAJCWlmIChuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSB8fAotCQkgICAgdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSktPnVwZGF0ZV9waXBlKSB7CisJCSAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpIHsKIAotCQkJcHV0X2RvbWFpbnNbaW50ZWxfY3J0Yy0+cGlwZV0gPQotCQkJCW1vZGVzZXRfZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhjcnRjLAotCQkJCQluZXdfaW50ZWxfY3J0Y19zdGF0ZSk7CisJCQlwdXRfZG9tYWluc1tjcnRjLT5waXBlXSA9CisJCQkJbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5zKG5ld19jcnRjX3N0YXRlKTsKIAkJfQogCiAJCWlmICghbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkpCiAJCQljb250aW51ZTsKIAotCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKG9sZF9pbnRlbF9jcnRjX3N0YXRlLCBuZXdfaW50ZWxfY3J0Y19zdGF0ZSk7CisJCWludGVsX3ByZV9wbGFuZV91cGRhdGUob2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlKTsKIAotCQlpZiAob2xkX2NydGNfc3RhdGUtPmFjdGl2ZSkgewotCQkJaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhpbnRlbF9zdGF0ZSwgaW50ZWxfY3J0Yyk7CisJCWlmIChvbGRfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwkJCWludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoc3RhdGUsIGNydGMpOwogCiAJCQkvKgogCQkJICogV2UgbmVlZCB0byBkaXNhYmxlIHBpcGUgQ1JDIGJlZm9yZSBkaXNhYmxpbmcgdGhlIHBpcGUsCiAJCQkgKiBvciB3ZSByYWNlIGFnYWluc3QgdmJsYW5rIG9mZi4KIAkJCSAqLwotCQkJaW50ZWxfY3J0Y19kaXNhYmxlX3BpcGVfY3JjKGludGVsX2NydGMpOworCQkJaW50ZWxfY3J0Y19kaXNhYmxlX3BpcGVfY3JjKGNydGMpOwogCi0JCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2Rpc2FibGUob2xkX2ludGVsX2NydGNfc3RhdGUsIHN0YXRlKTsKLQkJCWludGVsX2NydGMtPmFjdGl2ZSA9IGZhbHNlOwotCQkJaW50ZWxfZmJjX2Rpc2FibGUoaW50ZWxfY3J0Yyk7Ci0JCQlpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKG9sZF9pbnRlbF9jcnRjX3N0YXRlKTsKKwkJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZGlzYWJsZShvbGRfY3J0Y19zdGF0ZSwgc3RhdGUpOworCQkJY3J0Yy0+YWN0aXZlID0gZmFsc2U7CisJCQlpbnRlbF9mYmNfZGlzYWJsZShjcnRjKTsKKwkJCWludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwob2xkX2NydGNfc3RhdGUpOwogCiAJCQkvKgogCQkJICogVW5kZXJydW5zIGRvbid0IGFsd2F5cyByYWlzZQpAQCAtMTM4MjMsMjUgKzEzOTQzLDI1IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCQlpbnRlbF9jaGVja19wY2hfZmlmb191bmRlcnJ1bnMoZGV2X3ByaXYpOwogCiAJCQkvKiBGSVhNRSB1bmlmeSB0aGlzIGZvciBhbGwgcGxhdGZvcm1zICovCi0JCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5hY3RpdmUgJiYKKwkJCWlmICghbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlICYmCiAJCQkgICAgIUhBU19HTUNIKGRldl9wcml2KSAmJgogCQkJICAgIGRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcykKLQkJCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MoaW50ZWxfc3RhdGUsCi0JCQkJCQkJCSAgICAgbmV3X2ludGVsX2NydGNfc3RhdGUpOworCQkJCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhzdGF0ZSwKKwkJCQkJCQkJICAgICBuZXdfY3J0Y19zdGF0ZSk7CiAJCX0KIAl9CiAKLQkvKiBGSVhNRTogRXZlbnR1YWxseSBnZXQgcmlkIG9mIG91ciBpbnRlbF9jcnRjLT5jb25maWcgcG9pbnRlciAqLwotCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkKLQkJdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnID0gdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7CisJLyogRklYTUU6IEV2ZW50dWFsbHkgZ2V0IHJpZCBvZiBvdXIgY3J0Yy0+Y29uZmlnIHBvaW50ZXIgKi8KKwlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUsIGkpCisJCWNydGMtPmNvbmZpZyA9IG5ld19jcnRjX3N0YXRlOwogCi0JaWYgKGludGVsX3N0YXRlLT5tb2Rlc2V0KSB7Ci0JCWRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdhY3lfbW9kZXNldF9zdGF0ZShzdGF0ZS0+ZGV2LCBzdGF0ZSk7CisJaWYgKHN0YXRlLT5tb2Rlc2V0KSB7CisJCWRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdhY3lfbW9kZXNldF9zdGF0ZShkZXYsICZzdGF0ZS0+YmFzZSk7CiAKIAkJaW50ZWxfc2V0X2NkY2xrX3ByZV9wbGFuZV91cGRhdGUoZGV2X3ByaXYsCi0JCQkJCQkgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwsCisJCQkJCQkgJnN0YXRlLT5jZGNsay5hY3R1YWwsCiAJCQkJCQkgJmRldl9wcml2LT5jZGNsay5hY3R1YWwsCi0JCQkJCQkgaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUpOworCQkJCQkJIHN0YXRlLT5jZGNsay5waXBlKTsKIAogCQkvKgogCQkgKiBTS0wgd29ya2Fyb3VuZDogYnNwZWMgcmVjb21tZW5kcyB3ZSBkaXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UKQEAgLTEzODUwLDMxICsxMzk3MCwzNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQlpZiAoIWludGVsX2Nhbl9lbmFibGVfc2FndihzdGF0ZSkpCiAJCQlpbnRlbF9kaXNhYmxlX3NhZ3YoZGV2X3ByaXYpOwogCi0JCWludGVsX21vZGVzZXRfdmVyaWZ5X2Rpc2FibGVkKGRldiwgc3RhdGUpOworCQlpbnRlbF9tb2Rlc2V0X3ZlcmlmeV9kaXNhYmxlZChkZXZfcHJpdiwgc3RhdGUpOwogCX0KIAogCS8qIENvbXBsZXRlIHRoZSBldmVudHMgZm9yIHBpcGVzIHRoYXQgaGF2ZSBub3cgYmVlbiBkaXNhYmxlZCAqLwotCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgeworCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewogCQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKTsKIAogCQkvKiBDb21wbGV0ZSBldmVudHMgZm9yIG5vdyBkaXNhYmxlIHBpcGVzIGhlcmUuICovCi0JCWlmIChtb2Rlc2V0ICYmICFuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlICYmIG5ld19jcnRjX3N0YXRlLT5ldmVudCkgeworCQlpZiAobW9kZXNldCAmJiAhbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlICYmIG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50KSB7CiAJCQlzcGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwotCQkJZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoY3J0YywgbmV3X2NydGNfc3RhdGUtPmV2ZW50KTsKKwkJCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KCZjcnRjLT5iYXNlLCBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5ldmVudCk7CiAJCQlzcGluX3VubG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CiAKLQkJCW5ld19jcnRjX3N0YXRlLT5ldmVudCA9IE5VTEw7CisJCQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5ldmVudCA9IE5VTEw7CiAJCX0KIAl9CiAKKwlpZiAoc3RhdGUtPm1vZGVzZXQpCisJCWludGVsX2VuY29kZXJzX3VwZGF0ZV9wcmVwYXJlKHN0YXRlKTsKKwogCS8qIE5vdyBlbmFibGUgdGhlIGNsb2NrcywgcGxhbmUsIHBpcGUsIGFuZCBjb25uZWN0b3JzIHRoYXQgd2Ugc2V0IHVwLiAqLwogCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV9jcnRjcyhzdGF0ZSk7CiAKLQlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpCisJaWYgKHN0YXRlLT5tb2Rlc2V0KSB7CisJCWludGVsX2VuY29kZXJzX3VwZGF0ZV9jb21wbGV0ZShzdGF0ZSk7CisKIAkJaW50ZWxfc2V0X2NkY2xrX3Bvc3RfcGxhbmVfdXBkYXRlKGRldl9wcml2LAotCQkJCQkJICAmaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCwKKwkJCQkJCSAgJnN0YXRlLT5jZGNsay5hY3R1YWwsCiAJCQkJCQkgICZkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsLAotCQkJCQkJICBpbnRlbF9zdGF0ZS0+Y2RjbGsucGlwZSk7CisJCQkJCQkgIHN0YXRlLT5jZGNsay5waXBlKTsKKwl9CiAKIAkvKiBGSVhNRTogV2Ugc2hvdWxkIGNhbGwgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUoKSBoZXJlCiAJICogYWxyZWFkeSwgYnV0IHN0aWxsIG5lZWQgdGhlIHN0YXRlIGZvciB0aGUgZGVsYXllZCBvcHRpbWl6YXRpb24uIFRvCkBAIC0xMzg4NSwxNiArMTQwMTEsMTQgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkgKiAtIHN3aXRjaCBvdmVyIHRvIHRoZSB2Ymxhbmsgd2FpdCBoZWxwZXIgaW4gdGhlIGNvcmUgYWZ0ZXIgdGhhdCBzaW5jZQogCSAqICAgd2UgZG9uJ3QgbmVlZCBvdXQgc3BlY2lhbCBoYW5kbGluZyBhbnkgbW9yZS4KIAkgKi8KLQlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9mbGlwX2RvbmUoZGV2LCBzdGF0ZSk7CisJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZmxpcF9kb25lKGRldiwgJnN0YXRlLT5iYXNlKTsKIAotCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQluZXdfaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUobmV3X2NydGNfc3RhdGUpOwotCi0JCWlmIChuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlICYmCisJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCWlmIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgJiYKIAkJICAgICFuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSAmJgotCQkgICAgKG5ld19pbnRlbF9jcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCB8fAotCQkgICAgIG5ld19pbnRlbF9jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkpCi0JCQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMobmV3X2ludGVsX2NydGNfc3RhdGUpOworCQkgICAgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCB8fAorCQkgICAgIG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkpCisJCQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMobmV3X2NydGNfc3RhdGUpOwogCX0KIAogCS8qCkBAIC0xMzkwNCwxNiArMTQwMjgsMTQgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkgKgogCSAqIFRPRE86IE1vdmUgdGhpcyAoYW5kIG90aGVyIGNsZWFudXApIHRvIGFuIGFzeW5jIHdvcmtlciBldmVudHVhbGx5LgogCSAqLwotCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQluZXdfaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUobmV3X2NydGNfc3RhdGUpOwotCisJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7CiAJCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtzKQotCQkJZGV2X3ByaXYtPmRpc3BsYXkub3B0aW1pemVfd2F0ZXJtYXJrcyhpbnRlbF9zdGF0ZSwKLQkJCQkJCQkgICAgICBuZXdfaW50ZWxfY3J0Y19zdGF0ZSk7CisJCQlkZXZfcHJpdi0+ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtzKHN0YXRlLAorCQkJCQkJCSAgICAgIG5ld19jcnRjX3N0YXRlKTsKIAl9CiAKLQlmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7Ci0JCWludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKHRvX2ludGVsX2NydGNfc3RhdGUob2xkX2NydGNfc3RhdGUpKTsKKwlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCWludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKG9sZF9jcnRjX3N0YXRlKTsKIAogCQlpZiAocHV0X2RvbWFpbnNbaV0pCiAJCQltb2Rlc2V0X3B1dF9wb3dlcl9kb21haW5zKGRldl9wcml2LCBwdXRfZG9tYWluc1tpXSk7CkBAIC0xMzkyMSwxNSArMTQwNDMsMTUgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJaW50ZWxfbW9kZXNldF92ZXJpZnlfY3J0YyhjcnRjLCBzdGF0ZSwgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlKTsKIAl9CiAKLQlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpCi0JCWludGVsX3ZlcmlmeV9wbGFuZXMoaW50ZWxfc3RhdGUpOworCWlmIChzdGF0ZS0+bW9kZXNldCkKKwkJaW50ZWxfdmVyaWZ5X3BsYW5lcyhzdGF0ZSk7CiAKLQlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQgJiYgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKSkKKwlpZiAoc3RhdGUtPm1vZGVzZXQgJiYgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKSkKIAkJaW50ZWxfZW5hYmxlX3NhZ3YoZGV2X3ByaXYpOwogCi0JZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUoc3RhdGUpOworCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKCZzdGF0ZS0+YmFzZSk7CiAKLQlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpIHsKKwlpZiAoc3RhdGUtPm1vZGVzZXQpIHsKIAkJLyogQXMgb25lIG9mIHRoZSBwcmltYXJ5IG1taW8gYWNjZXNzb3JzLCBLTVMgaGFzIGEgaGlnaAogCQkgKiBsaWtlbGlob29kIG9mIHRyaWdnZXJpbmcgYnVncyBpbiB1bmNsYWltZWQgYWNjZXNzLiBBZnRlciB3ZQogCQkgKiBmaW5pc2ggbW9kZXNldHRpbmcsIHNlZSBpZiBhbiBlcnJvciBoYXMgYmVlbiBmbGFnZ2VkLCBhbmQgaWYKQEAgLTEzOTM5LDcgKzE0MDYxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJaW50ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRlY3Rpb24oJmRldl9wcml2LT51bmNvcmUpOwogCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX01PREVTRVQsIHdha2VyZWYpOwogCX0KLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIGludGVsX3N0YXRlLT53YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHN0YXRlLT53YWtlcmVmKTsKIAogCS8qCiAJICogRGVmZXIgdGhlIGNsZWFudXAgb2YgdGhlIG9sZCBzdGF0ZSB0byBhIHNlcGFyYXRlIHdvcmtlciB0byBub3QKQEAgLTEzOTQ5LDE0ICsxNDA3MSwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCSAqIHNjaGVkdWxlIHBvaW50IChjb25kX3Jlc2NoZWQoKSkgaGVyZSBhbnl3YXkgdG8ga2VlcCBsYXRlbmNpZXMKIAkgKiBkb3duLgogCSAqLwotCUlOSVRfV09SSygmc3RhdGUtPmNvbW1pdF93b3JrLCBpbnRlbF9hdG9taWNfY2xlYW51cF93b3JrKTsKLQlxdWV1ZV93b3JrKHN5c3RlbV9oaWdocHJpX3dxLCAmc3RhdGUtPmNvbW1pdF93b3JrKTsKKwlJTklUX1dPUksoJnN0YXRlLT5iYXNlLmNvbW1pdF93b3JrLCBpbnRlbF9hdG9taWNfY2xlYW51cF93b3JrKTsKKwlxdWV1ZV93b3JrKHN5c3RlbV9oaWdocHJpX3dxLCAmc3RhdGUtPmJhc2UuY29tbWl0X3dvcmspOwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9Ci0JCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSwgY29tbWl0X3dvcmspOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUsIGJhc2UuY29tbWl0X3dvcmspOwogCiAJaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0YXRlKTsKIH0KQEAgLTEzOTg2LDQyICsxNDEwOCwzMSBAQCBpbnRlbF9hdG9taWNfY29tbWl0X3JlYWR5KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIAlyZXR1cm4gTk9USUZZX0RPTkU7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2F0b21pY190cmFja19mYnMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQorc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX3RyYWNrX2ZicyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7Ci0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7CisJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX29sZG5ld19wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwgbmV3X3BsYW5lX3N0YXRlLCBpKQotCQlpOTE1X2dlbV90cmFja19mYihpbnRlbF9mYl9vYmoob2xkX3BsYW5lX3N0YXRlLT5mYiksCi0JCQkJICBpbnRlbF9mYl9vYmoobmV3X3BsYW5lX3N0YXRlLT5mYiksCi0JCQkJICB0b19pbnRlbF9wbGFuZShwbGFuZSktPmZyb250YnVmZmVyX2JpdCk7CisJZm9yX2VhY2hfb2xkbmV3X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLAorCQkJCQkgICAgIG5ld19wbGFuZV9zdGF0ZSwgaSkKKwkJaW50ZWxfZnJvbnRidWZmZXJfdHJhY2sodG9faW50ZWxfZnJvbnRidWZmZXIob2xkX3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwKKwkJCQkJdG9faW50ZWxfZnJvbnRidWZmZXIobmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwKKwkJCQkJcGxhbmUtPmZyb250YnVmZmVyX2JpdCk7CiB9CiAKLS8qKgotICogaW50ZWxfYXRvbWljX2NvbW1pdCAtIGNvbW1pdCB2YWxpZGF0ZWQgc3RhdGUgb2JqZWN0Ci0gKiBAZGV2OiBEUk0gZGV2aWNlCi0gKiBAc3RhdGU6IHRoZSB0b3AtbGV2ZWwgZHJpdmVyIHN0YXRlIG9iamVjdAotICogQG5vbmJsb2NrOiBub25ibG9ja2luZyBjb21taXQKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGNvbW1pdHMgYSB0b3AtbGV2ZWwgc3RhdGUgb2JqZWN0IHRoYXQgaGFzIGJlZW4gdmFsaWRhdGVkCi0gKiB3aXRoIGRybV9hdG9taWNfaGVscGVyX2NoZWNrKCkuCi0gKgotICogUkVUVVJOUwotICogWmVybyBmb3Igc3VjY2VzcyBvciAtZXJybm8uCi0gKi8KIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqX3N0YXRlLAogCQkJICAgICAgIGJvb2wgbm9uYmxvY2spCiB7Ci0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKF9zdGF0ZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCWludCByZXQgPSAwOwogCi0JaW50ZWxfc3RhdGUtPndha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOworCXN0YXRlLT53YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAotCWRybV9hdG9taWNfc3RhdGVfZ2V0KHN0YXRlKTsKLQlpOTE1X3N3X2ZlbmNlX2luaXQoJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHksCisJZHJtX2F0b21pY19zdGF0ZV9nZXQoJnN0YXRlLT5iYXNlKTsKKwlpOTE1X3N3X2ZlbmNlX2luaXQoJnN0YXRlLT5jb21taXRfcmVhZHksCiAJCQkgICBpbnRlbF9hdG9taWNfY29tbWl0X3JlYWR5KTsKIAogCS8qCkBAIC0xNDA0MSw2MyArMTQxNTIsNjEgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJICogRklYTUUgZG9pbmcgd2F0ZXJtYXJrcyBhbmQgZmIgY2xlYW51cCBmcm9tIGEgdmJsYW5rIHdvcmtlcgogCSAqIChhc3N1bWluZyB3ZSBoYWQgYW55KSB3b3VsZCBzb2x2ZSB0aGVzZSBwcm9ibGVtcy4KIAkgKi8KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDkgJiYgc3RhdGUtPmxlZ2FjeV9jdXJzb3JfdXBkYXRlKSB7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5ICYmIHN0YXRlLT5iYXNlLmxlZ2FjeV9jdXJzb3JfdXBkYXRlKSB7CiAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKIAkJc3RydWN0IGludGVsX2NydGMgKmNydGM7CiAJCWludCBpOwogCi0JCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKGludGVsX3N0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkKKwkJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKQogCQkJaWYgKG5ld19jcnRjX3N0YXRlLT53bS5uZWVkX3Bvc3R2YmxfdXBkYXRlIHx8CiAJCQkgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV93bV9wb3N0KQotCQkJCXN0YXRlLT5sZWdhY3lfY3Vyc29yX3VwZGF0ZSA9IGZhbHNlOworCQkJCXN0YXRlLT5iYXNlLmxlZ2FjeV9jdXJzb3JfdXBkYXRlID0gZmFsc2U7CiAJfQogCi0JcmV0ID0gaW50ZWxfYXRvbWljX3ByZXBhcmVfY29tbWl0KGRldiwgc3RhdGUpOworCXJldCA9IGludGVsX2F0b21pY19wcmVwYXJlX2NvbW1pdChzdGF0ZSk7CiAJaWYgKHJldCkgewogCQlEUk1fREVCVUdfQVRPTUlDKCJQcmVwYXJpbmcgc3RhdGUgZmFpbGVkIHdpdGggJWlcbiIsIHJldCk7Ci0JCWk5MTVfc3dfZmVuY2VfY29tbWl0KCZpbnRlbF9zdGF0ZS0+Y29tbWl0X3JlYWR5KTsKLQkJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCBpbnRlbF9zdGF0ZS0+d2FrZXJlZik7CisJCWk5MTVfc3dfZmVuY2VfY29tbWl0KCZzdGF0ZS0+Y29tbWl0X3JlYWR5KTsKKwkJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCBzdGF0ZS0+d2FrZXJlZik7CiAJCXJldHVybiByZXQ7CiAJfQogCi0JcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KHN0YXRlLCBub25ibG9jayk7CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KCZzdGF0ZS0+YmFzZSwgbm9uYmxvY2spOwogCWlmICghcmV0KQotCQlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0YXRlLCB0cnVlKTsKKwkJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZSgmc3RhdGUtPmJhc2UsIHRydWUpOwogCiAJaWYgKHJldCkgewotCQlpOTE1X3N3X2ZlbmNlX2NvbW1pdCgmaW50ZWxfc3RhdGUtPmNvbW1pdF9yZWFkeSk7CisJCWk5MTVfc3dfZmVuY2VfY29tbWl0KCZzdGF0ZS0+Y29tbWl0X3JlYWR5KTsKIAotCQlkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKLQkJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCBpbnRlbF9zdGF0ZS0+d2FrZXJlZik7CisJCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgJnN0YXRlLT5iYXNlKTsKKwkJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCBzdGF0ZS0+d2FrZXJlZik7CiAJCXJldHVybiByZXQ7CiAJfQogCWRldl9wcml2LT53bS5kaXN0cnVzdF9iaW9zX3dtID0gZmFsc2U7CiAJaW50ZWxfc2hhcmVkX2RwbGxfc3dhcF9zdGF0ZShzdGF0ZSk7CiAJaW50ZWxfYXRvbWljX3RyYWNrX2ZicyhzdGF0ZSk7CiAKLQlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpIHsKLQkJbWVtY3B5KGRldl9wcml2LT5taW5fY2RjbGssIGludGVsX3N0YXRlLT5taW5fY2RjbGssCi0JCSAgICAgICBzaXplb2YoaW50ZWxfc3RhdGUtPm1pbl9jZGNsaykpOwotCQltZW1jcHkoZGV2X3ByaXYtPm1pbl92b2x0YWdlX2xldmVsLAotCQkgICAgICAgaW50ZWxfc3RhdGUtPm1pbl92b2x0YWdlX2xldmVsLAotCQkgICAgICAgc2l6ZW9mKGludGVsX3N0YXRlLT5taW5fdm9sdGFnZV9sZXZlbCkpOwotCQlkZXZfcHJpdi0+YWN0aXZlX2NydGNzID0gaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjczsKLQkJZGV2X3ByaXYtPmNkY2xrLmZvcmNlX21pbl9jZGNsayA9Ci0JCQlpbnRlbF9zdGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrOworCWlmIChzdGF0ZS0+bW9kZXNldCkgeworCQltZW1jcHkoZGV2X3ByaXYtPm1pbl9jZGNsaywgc3RhdGUtPm1pbl9jZGNsaywKKwkJICAgICAgIHNpemVvZihzdGF0ZS0+bWluX2NkY2xrKSk7CisJCW1lbWNweShkZXZfcHJpdi0+bWluX3ZvbHRhZ2VfbGV2ZWwsIHN0YXRlLT5taW5fdm9sdGFnZV9sZXZlbCwKKwkJICAgICAgIHNpemVvZihzdGF0ZS0+bWluX3ZvbHRhZ2VfbGV2ZWwpKTsKKwkJZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyA9IHN0YXRlLT5hY3RpdmVfY3J0Y3M7CisJCWRldl9wcml2LT5jZGNsay5mb3JjZV9taW5fY2RjbGsgPSBzdGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrOwogCi0JCWludGVsX2NkY2xrX3N3YXBfc3RhdGUoaW50ZWxfc3RhdGUpOworCQlpbnRlbF9jZGNsa19zd2FwX3N0YXRlKHN0YXRlKTsKIAl9CiAKLQlkcm1fYXRvbWljX3N0YXRlX2dldChzdGF0ZSk7Ci0JSU5JVF9XT1JLKCZzdGF0ZS0+Y29tbWl0X3dvcmssIGludGVsX2F0b21pY19jb21taXRfd29yayk7CisJZHJtX2F0b21pY19zdGF0ZV9nZXQoJnN0YXRlLT5iYXNlKTsKKwlJTklUX1dPUksoJnN0YXRlLT5iYXNlLmNvbW1pdF93b3JrLCBpbnRlbF9hdG9taWNfY29tbWl0X3dvcmspOwogCi0JaTkxNV9zd19mZW5jZV9jb21taXQoJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHkpOwotCWlmIChub25ibG9jayAmJiBpbnRlbF9zdGF0ZS0+bW9kZXNldCkgewotCQlxdWV1ZV93b3JrKGRldl9wcml2LT5tb2Rlc2V0X3dxLCAmc3RhdGUtPmNvbW1pdF93b3JrKTsKKwlpOTE1X3N3X2ZlbmNlX2NvbW1pdCgmc3RhdGUtPmNvbW1pdF9yZWFkeSk7CisJaWYgKG5vbmJsb2NrICYmIHN0YXRlLT5tb2Rlc2V0KSB7CisJCXF1ZXVlX3dvcmsoZGV2X3ByaXYtPm1vZGVzZXRfd3EsICZzdGF0ZS0+YmFzZS5jb21taXRfd29yayk7CiAJfSBlbHNlIGlmIChub25ibG9jaykgewotCQlxdWV1ZV93b3JrKHN5c3RlbV91bmJvdW5kX3dxLCAmc3RhdGUtPmNvbW1pdF93b3JrKTsKKwkJcXVldWVfd29yayhzeXN0ZW1fdW5ib3VuZF93cSwgJnN0YXRlLT5iYXNlLmNvbW1pdF93b3JrKTsKIAl9IGVsc2UgewotCQlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpCisJCWlmIChzdGF0ZS0+bW9kZXNldCkKIAkJCWZsdXNoX3dvcmtxdWV1ZShkZXZfcHJpdi0+bW9kZXNldF93cSk7CiAJCWludGVsX2F0b21pY19jb21taXRfdGFpbChzdGF0ZSk7CiAJfQpAQCAtMTQxMDUsMTggKzE0MjE0LDYgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgaW50ZWxfY3J0Y19mdW5jcyA9IHsKLQkuZ2FtbWFfc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dhbW1hX3NldCwKLQkuc2V0X2NvbmZpZyA9IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcsCi0JLmRlc3Ryb3kgPSBpbnRlbF9jcnRjX2Rlc3Ryb3ksCi0JLnBhZ2VfZmxpcCA9IGRybV9hdG9taWNfaGVscGVyX3BhZ2VfZmxpcCwKLQkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlLAotCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGludGVsX2NydGNfZGVzdHJveV9zdGF0ZSwKLQkuc2V0X2NyY19zb3VyY2UgPSBpbnRlbF9jcnRjX3NldF9jcmNfc291cmNlLAotCS52ZXJpZnlfY3JjX3NvdXJjZSA9IGludGVsX2NydGNfdmVyaWZ5X2NyY19zb3VyY2UsCi0JLmdldF9jcmNfc291cmNlcyA9IGludGVsX2NydGNfZ2V0X2NyY19zb3VyY2VzLAotfTsKLQogc3RydWN0IHdhaXRfcnBzX2Jvb3N0IHsKIAlzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSB3YWl0OwogCkBAIC0xNDI1MCw5ICsxNDM0Nyw5IEBAIGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJaW50IHJldDsKIAogCWlmIChvbGRfb2JqKSB7Ci0JCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9Ci0JCQlkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShuZXdfc3RhdGUtPnN0YXRlLAotCQkJCQkJICAgICAgcGxhbmUtPnN0YXRlLT5jcnRjKTsKKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShpbnRlbF9zdGF0ZSwKKwkJCQkJCQl0b19pbnRlbF9jcnRjKHBsYW5lLT5zdGF0ZS0+Y3J0YykpOwogCiAJCS8qIEJpZyBIYW1tZXIsIHdlIGFsc28gbmVlZCB0byBlbnN1cmUgdGhhdCBhbnkgcGVuZGluZwogCQkgKiBNSV9XQUlUX0ZPUl9FVkVOVCBpbnNpZGUgYSB1c2VyIGJhdGNoIGJ1ZmZlciBvbiB0aGUKQEAgLTE0MzA1LDcgKzE0NDAyLDcgQEAgaW50ZWxfcHJlcGFyZV9wbGFuZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJcmV0dXJuIHJldDsKIAogCWZiX29ial9idW1wX3JlbmRlcl9wcmlvcml0eShvYmopOwotCWludGVsX2ZiX29ial9mbHVzaChvYmosIE9SSUdJTl9ESVJUWUZCKTsKKwlpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChvYmotPmZyb250YnVmZmVyLCBPUklHSU5fRElSVFlGQik7CiAKIAlpZiAoIW5ld19zdGF0ZS0+ZmVuY2UpIHsgLyogaW1wbGljaXQgZmVuY2luZyAqLwogCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKQEAgLTE0MzE3LDcgKzE0NDE0LDcgQEAgaW50ZWxfcHJlcGFyZV9wbGFuZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0OwogCi0JCWZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShvYmotPmJhc2UucmVzdik7CisJCWZlbmNlID0gZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KG9iai0+YmFzZS5yZXN2KTsKIAkJaWYgKGZlbmNlKSB7CiAJCQlhZGRfcnBzX2Jvb3N0X2FmdGVyX3ZibGFuayhuZXdfc3RhdGUtPmNydGMsIGZlbmNlKTsKIAkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwpAQCAtMTQ0MTMsNyArMTQ1MTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlID0KIAkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Ci0JYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpOworCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpOwogCiAJLyogUGVyZm9ybSB2YmxhbmsgZXZhc2lvbiBhcm91bmQgY29tbWl0IG9wZXJhdGlvbiAqLwogCWludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KG5ld19jcnRjX3N0YXRlKTsKQEAgLTE0NDY2LDcgKzE0NTYzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmluaXNoX2NydGNfY29tbWl0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWludGVsX3BpcGVfdXBkYXRlX2VuZChuZXdfY3J0Y19zdGF0ZSk7CiAKIAlpZiAobmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlICYmCi0JICAgICFuZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkgJiYKKwkgICAgIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpICYmCiAJICAgIG9sZF9jcnRjX3N0YXRlLT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkKIAkJaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7CiB9CkBAIC0xNDU2OCwxOSArMTQ2NjUsMTggQEAgaW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7Ci0JaW50IHJldDsKIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmI7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQogCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CisJaW50IHJldDsKIAogCS8qCiAJICogV2hlbiBjcnRjIGlzIGluYWN0aXZlIG9yIHRoZXJlIGlzIGEgbW9kZXNldCBwZW5kaW5nLAogCSAqIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlIGluIHRoZSBzbG93cGF0aAogCSAqLwotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwgbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+YmFzZSkgfHwKKwlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkgfHwKIAkgICAgY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCiAJCWdvdG8gc2xvdzsKIApAQCAtMTQ2NDIsMTEgKzE0NzM4LDEwIEBAIGludGVsX2xlZ2FjeV9jdXJzb3JfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWlmIChyZXQpCiAJCWdvdG8gb3V0X3VubG9jazsKIAotCWludGVsX2ZiX29ial9mbHVzaChpbnRlbF9mYl9vYmooZmIpLCBPUklHSU5fRkxJUCk7Ci0KLQlvbGRfZmIgPSBvbGRfcGxhbmVfc3RhdGUtPmZiOwotCWk5MTVfZ2VtX3RyYWNrX2ZiKGludGVsX2ZiX29iaihvbGRfZmIpLCBpbnRlbF9mYl9vYmooZmIpLAotCQkJICBpbnRlbF9wbGFuZS0+ZnJvbnRidWZmZXJfYml0KTsKKwlpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaCh0b19pbnRlbF9mcm9udGJ1ZmZlcihmYiksIE9SSUdJTl9GTElQKTsKKwlpbnRlbF9mcm9udGJ1ZmZlcl90cmFjayh0b19pbnRlbF9mcm9udGJ1ZmZlcihvbGRfcGxhbmVfc3RhdGUtPmZiKSwKKwkJCQl0b19pbnRlbF9mcm9udGJ1ZmZlcihmYiksCisJCQkJaW50ZWxfcGxhbmUtPmZyb250YnVmZmVyX2JpdCk7CiAKIAkvKiBTd2FwIHBsYW5lIHN0YXRlICovCiAJcGxhbmUtPnN0YXRlID0gbmV3X3BsYW5lX3N0YXRlOwpAQCAtMTQ5MTAsOCArMTUwMDUsNzYgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19pbml0X3NjYWxlcnMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJc2NhbGVyX3N0YXRlLT5zY2FsZXJfaWQgPSAtMTsKIH0KIAorI2RlZmluZSBJTlRFTF9DUlRDX0ZVTkNTIFwKKwkuZ2FtbWFfc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dhbW1hX3NldCwgXAorCS5zZXRfY29uZmlnID0gZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZywgXAorCS5kZXN0cm95ID0gaW50ZWxfY3J0Y19kZXN0cm95LCBcCisJLnBhZ2VfZmxpcCA9IGRybV9hdG9taWNfaGVscGVyX3BhZ2VfZmxpcCwgXAorCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfY3J0Y19kdXBsaWNhdGVfc3RhdGUsIFwKKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBpbnRlbF9jcnRjX2Rlc3Ryb3lfc3RhdGUsIFwKKwkuc2V0X2NyY19zb3VyY2UgPSBpbnRlbF9jcnRjX3NldF9jcmNfc291cmNlLCBcCisJLnZlcmlmeV9jcmNfc291cmNlID0gaW50ZWxfY3J0Y192ZXJpZnlfY3JjX3NvdXJjZSwgXAorCS5nZXRfY3JjX3NvdXJjZXMgPSBpbnRlbF9jcnRjX2dldF9jcmNfc291cmNlcworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGJkd19jcnRjX2Z1bmNzID0geworCUlOVEVMX0NSVENfRlVOQ1MsCisKKwkuZ2V0X3ZibGFua19jb3VudGVyID0gZzR4X2dldF92YmxhbmtfY291bnRlciwKKwkuZW5hYmxlX3ZibGFuayA9IGJkd19lbmFibGVfdmJsYW5rLAorCS5kaXNhYmxlX3ZibGFuayA9IGJkd19kaXNhYmxlX3ZibGFuaywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgaWxrX2NydGNfZnVuY3MgPSB7CisJSU5URUxfQ1JUQ19GVU5DUywKKworCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBnNHhfZ2V0X3ZibGFua19jb3VudGVyLAorCS5lbmFibGVfdmJsYW5rID0gaWxrX2VuYWJsZV92YmxhbmssCisJLmRpc2FibGVfdmJsYW5rID0gaWxrX2Rpc2FibGVfdmJsYW5rLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBnNHhfY3J0Y19mdW5jcyA9IHsKKwlJTlRFTF9DUlRDX0ZVTkNTLAorCisJLmdldF92YmxhbmtfY291bnRlciA9IGc0eF9nZXRfdmJsYW5rX2NvdW50ZXIsCisJLmVuYWJsZV92YmxhbmsgPSBpOTY1X2VuYWJsZV92YmxhbmssCisJLmRpc2FibGVfdmJsYW5rID0gaTk2NV9kaXNhYmxlX3ZibGFuaywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgaTk2NV9jcnRjX2Z1bmNzID0geworCUlOVEVMX0NSVENfRlVOQ1MsCisKKwkuZ2V0X3ZibGFua19jb3VudGVyID0gaTkxNV9nZXRfdmJsYW5rX2NvdW50ZXIsCisJLmVuYWJsZV92YmxhbmsgPSBpOTY1X2VuYWJsZV92YmxhbmssCisJLmRpc2FibGVfdmJsYW5rID0gaTk2NV9kaXNhYmxlX3ZibGFuaywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgaTk0NWdtX2NydGNfZnVuY3MgPSB7CisJSU5URUxfQ1JUQ19GVU5DUywKKworCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBpOTE1X2dldF92YmxhbmtfY291bnRlciwKKwkuZW5hYmxlX3ZibGFuayA9IGk5NDVnbV9lbmFibGVfdmJsYW5rLAorCS5kaXNhYmxlX3ZibGFuayA9IGk5NDVnbV9kaXNhYmxlX3ZibGFuaywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgaTkxNV9jcnRjX2Z1bmNzID0geworCUlOVEVMX0NSVENfRlVOQ1MsCisKKwkuZ2V0X3ZibGFua19jb3VudGVyID0gaTkxNV9nZXRfdmJsYW5rX2NvdW50ZXIsCisJLmVuYWJsZV92YmxhbmsgPSBpOHh4X2VuYWJsZV92YmxhbmssCisJLmRpc2FibGVfdmJsYW5rID0gaTh4eF9kaXNhYmxlX3ZibGFuaywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgaTh4eF9jcnRjX2Z1bmNzID0geworCUlOVEVMX0NSVENfRlVOQ1MsCisKKwkvKiBubyBodyB2YmxhbmsgY291bnRlciAqLworCS5lbmFibGVfdmJsYW5rID0gaTh4eF9lbmFibGVfdmJsYW5rLAorCS5kaXNhYmxlX3ZibGFuayA9IGk4eHhfZGlzYWJsZV92YmxhbmssCit9OworCiBzdGF0aWMgaW50IGludGVsX2NydGNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQogeworCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyAqZnVuY3M7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcHJpbWFyeSA9IE5VTEw7CkBAIC0xNDk1NSwxMCArMTUxMTgsMjggQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKIAl9CiAJaW50ZWxfY3J0Yy0+cGxhbmVfaWRzX21hc2sgfD0gQklUKGN1cnNvci0+aWQpOwogCisJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgeworCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgfHwKKwkJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0c0WChkZXZfcHJpdikpCisJCQlmdW5jcyA9ICZnNHhfY3J0Y19mdW5jczsKKwkJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA0KSkKKwkJCWZ1bmNzID0gJmk5NjVfY3J0Y19mdW5jczsKKwkJZWxzZSBpZiAoSVNfSTk0NUdNKGRldl9wcml2KSkKKwkJCWZ1bmNzID0gJmk5NDVnbV9jcnRjX2Z1bmNzOworCQllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDMpKQorCQkJZnVuY3MgPSAmaTkxNV9jcnRjX2Z1bmNzOworCQllbHNlCisJCQlmdW5jcyA9ICZpOHh4X2NydGNfZnVuY3M7CisJfSBlbHNlIHsKKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKKwkJCWZ1bmNzID0gJmJkd19jcnRjX2Z1bmNzOworCQllbHNlCisJCQlmdW5jcyA9ICZpbGtfY3J0Y19mdW5jczsKKwl9CisKIAlyZXQgPSBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKCZkZXZfcHJpdi0+ZHJtLCAmaW50ZWxfY3J0Yy0+YmFzZSwKIAkJCQkJJnByaW1hcnktPmJhc2UsICZjdXJzb3ItPmJhc2UsCi0JCQkJCSZpbnRlbF9jcnRjX2Z1bmNzLAotCQkJCQkicGlwZSAlYyIsIHBpcGVfbmFtZShwaXBlKSk7CisJCQkJCWZ1bmNzLCAicGlwZSAlYyIsIHBpcGVfbmFtZShwaXBlKSk7CiAJaWYgKHJldCkKIAkJZ290byBmYWlsOwogCkBAIC0xNTExNCwxMiArMTUyOTUsMTggQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKCFIQVNfRElTUExBWShkZXZfcHJpdikpCiAJCXJldHVybjsKIAotCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikpIHsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgeworCQkvKiBUT0RPOiBpbml0aWFsaXplIFRDIHBvcnRzIGFzIHdlbGwgKi8KKwkJaW50ZWxfZGRpX2luaXQoZGV2X3ByaXYsIFBPUlRfQSk7CisJCWludGVsX2RkaV9pbml0KGRldl9wcml2LCBQT1JUX0IpOworCQlpY2xfZHNpX2luaXQoZGV2X3ByaXYpOworCX0gZWxzZSBpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpKSB7CiAJCWludGVsX2RkaV9pbml0KGRldl9wcml2LCBQT1JUX0EpOwogCQlpbnRlbF9kZGlfaW5pdChkZXZfcHJpdiwgUE9SVF9CKTsKIAkJaW50ZWxfZGRpX2luaXQoZGV2X3ByaXYsIFBPUlRfQyk7CisJCWludGVsX2RkaV9pbml0KGRldl9wcml2LCBQT1JUX0QpOwogCQlpY2xfZHNpX2luaXQoZGV2X3ByaXYpOwotCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgeworCX0gZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCAxMSkpIHsKIAkJaW50ZWxfZGRpX2luaXQoZGV2X3ByaXYsIFBPUlRfQSk7CiAJCWludGVsX2RkaV9pbml0KGRldl9wcml2LCBQT1JUX0IpOwogCQlpbnRlbF9kZGlfaW5pdChkZXZfcHJpdiwgUE9SVF9DKTsKQEAgLTE1MzM0LDE1ICsxNTUyMSw5IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldHVwX291dHB1dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZvaWQgaW50ZWxfdXNlcl9mcmFtZWJ1ZmZlcl9kZXN0cm95KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogewogCXN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIgPSB0b19pbnRlbF9mcmFtZWJ1ZmZlcihmYik7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CiAKIAlkcm1fZnJhbWVidWZmZXJfY2xlYW51cChmYik7Ci0KLQlpOTE1X2dlbV9vYmplY3RfbG9jayhvYmopOwotCVdBUk5fT04oIW9iai0+ZnJhbWVidWZmZXJfcmVmZXJlbmNlcy0tKTsKLQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7Ci0KLQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJaW50ZWxfZnJvbnRidWZmZXJfcHV0KGludGVsX2ZiLT5mcm9udGJ1ZmZlcik7CiAKIAlrZnJlZShpbnRlbF9mYik7CiB9CkBAIC0xNTM3MCw3ICsxNTU1MSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfdXNlcl9mcmFtZWJ1ZmZlcl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAogCWk5MTVfZ2VtX29iamVjdF9mbHVzaF9pZl9kaXNwbGF5KG9iaik7Ci0JaW50ZWxfZmJfb2JqX2ZsdXNoKG9iaiwgT1JJR0lOX0RJUlRZRkIpOworCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKHRvX2ludGVsX2Zyb250YnVmZmVyKGZiKSwgT1JJR0lOX0RJUlRZRkIpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNTM5Miw4ICsxNTU3MywxMSBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiwKIAlpbnQgcmV0ID0gLUVJTlZBTDsKIAlpbnQgaTsKIAorCWludGVsX2ZiLT5mcm9udGJ1ZmZlciA9IGludGVsX2Zyb250YnVmZmVyX2dldChvYmopOworCWlmICghaW50ZWxfZmItPmZyb250YnVmZmVyKQorCQlyZXR1cm4gLUVOT01FTTsKKwogCWk5MTVfZ2VtX29iamVjdF9sb2NrKG9iaik7Ci0Jb2JqLT5mcmFtZWJ1ZmZlcl9yZWZlcmVuY2VzKys7CiAJdGlsaW5nID0gaTkxNV9nZW1fb2JqZWN0X2dldF90aWxpbmcob2JqKTsKIAlzdHJpZGUgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3N0cmlkZShvYmopOwogCWk5MTVfZ2VtX29iamVjdF91bmxvY2sob2JqKTsKQEAgLTE1NTEwLDkgKzE1Njk0LDcgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIsCiAJcmV0dXJuIDA7CiAKIGVycjoKLQlpOTE1X2dlbV9vYmplY3RfbG9jayhvYmopOwotCW9iai0+ZnJhbWVidWZmZXJfcmVmZXJlbmNlcy0tOwotCWk5MTVfZ2VtX29iamVjdF91bmxvY2sob2JqKTsKKwlpbnRlbF9mcm9udGJ1ZmZlcl9wdXQoaW50ZWxfZmItPmZyb250YnVmZmVyKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xNTUzMCw4ICsxNTcxMiw3IEBAIGludGVsX3VzZXJfZnJhbWVidWZmZXJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwogCiAJZmIgPSBpbnRlbF9mcmFtZWJ1ZmZlcl9jcmVhdGUob2JqLCAmbW9kZV9jbWQpOwotCWlmIChJU19FUlIoZmIpKQotCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCiAJcmV0dXJuIGZiOwogfQpAQCAtMTU3NzUsOCArMTU5NTYsOCBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV93YXRlcm1hcmtzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpjc3RhdGU7CisJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKIAlpbnQgcmV0OwogCWludCBpOwpAQCAtMTU4MzEsMTMgKzE2MDEyLDExIEBAIHN0YXRpYyB2b2lkIHNhbml0aXplX3dhdGVybWFya3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAKIAkvKiBXcml0ZSBjYWxjdWxhdGVkIHdhdGVybWFyayB2YWx1ZXMgYmFjayAqLwotCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjc3RhdGUsIGkpIHsKLQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjc3RhdGUpOworCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKGludGVsX3N0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7CisJCWNydGNfc3RhdGUtPndtLm5lZWRfcG9zdHZibF91cGRhdGUgPSB0cnVlOworCQlkZXZfcHJpdi0+ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtzKGludGVsX3N0YXRlLCBjcnRjX3N0YXRlKTsKIAotCQljcy0+d20ubmVlZF9wb3N0dmJsX3VwZGF0ZSA9IHRydWU7Ci0JCWRldl9wcml2LT5kaXNwbGF5Lm9wdGltaXplX3dhdGVybWFya3MoaW50ZWxfc3RhdGUsIGNzKTsKLQotCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKS0+d20gPSBjcy0+d207CisJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSktPndtID0gY3J0Y19zdGF0ZS0+d207CiAJfQogCiBwdXRfc3RhdGU6CkBAIC0xNTkyMiw3ICsxNjEwMSw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdGlhbF9jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIGludCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKIAllbnVtIHBpcGUgcGlwZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAlpbnQgcmV0OwpAQCAtMTYwMDIsOCArMTYxODAsNiBAQCBpbnQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWRldi0+bW9kZV9jb25maWcuY3Vyc29yX2hlaWdodCA9IDI1NjsKIAl9CiAKLQlkZXYtPm1vZGVfY29uZmlnLmZiX2Jhc2UgPSBnZ3R0LT5nbWFkci5zdGFydDsKLQogCURSTV9ERUJVR19LTVMoIiVkIGRpc3BsYXkgcGlwZSVzIGF2YWlsYWJsZS5cbiIsCiAJCSAgICAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMsCiAJCSAgICAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMgPiAxID8gInMiIDogIiIpOwpAQCAtMTY0OTUsNiArMTY2NzEsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkJcGxsLT5vbiA9IHBsbC0+aW5mby0+ZnVuY3MtPmdldF9od19zdGF0ZShkZXZfcHJpdiwgcGxsLAogCQkJCQkJCSZwbGwtPnN0YXRlLmh3X3N0YXRlKTsKKworCQlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmIHBsbC0+b24gJiYKKwkJICAgIHBsbC0+aW5mby0+aWQgPT0gRFBMTF9JRF9FSExfRFBMTDQpIHsKKwkJCXBsbC0+d2FrZXJlZiA9IGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LAorCQkJCQkJCSAgICAgICBQT1dFUl9ET01BSU5fRFBMTF9EQ19PRkYpOworCQl9CisKIAkJcGxsLT5zdGF0ZS5jcnRjX21hc2sgPSAwOwogCQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0YykgewogCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQpAQCAtMTY3NDQsNiArMTY5MjcsMTcgQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShkZXYpOwogCiAJLyogSFcgc3RhdGUgaXMgcmVhZCBvdXQsIG5vdyB3ZSBuZWVkIHRvIHNhbml0aXplIHRoaXMgbWVzcy4gKi8KKworCS8qIFNhbml0aXplIHRoZSBUeXBlQyBwb3J0IG1vZGUgdXBmcm9udCwgZW5jb2RlcnMgZGVwZW5kIG9uIHRoaXMgKi8KKwlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRldiwgZW5jb2RlcikgeworCQllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7CisKKwkJLyogV2UgbmVlZCB0byBzYW5pdGl6ZSBvbmx5IHRoZSBNU1QgcHJpbWFyeSBwb3J0LiAqLworCQlpZiAoZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFBfTVNUICYmCisJCSAgICBpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCisJCQlpbnRlbF90Y19wb3J0X3Nhbml0aXplKGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSkpOworCX0KKwogCWdldF9lbmNvZGVyX3Bvd2VyX2RvbWFpbnMoZGV2X3ByaXYpOwogCiAJaWYgKEhBU19QQ0hfSUJYKGRldl9wcml2KSkKQEAgLTE2ODA0LDcgKzE2OTk4LDcgQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQl1NjQgcHV0X2RvbWFpbnM7CiAKIAkJY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7Ci0JCXB1dF9kb21haW5zID0gbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5zKCZjcnRjLT5iYXNlLCBjcnRjX3N0YXRlKTsKKwkJcHV0X2RvbWFpbnMgPSBtb2Rlc2V0X2dldF9jcnRjX3Bvd2VyX2RvbWFpbnMoY3J0Y19zdGF0ZSk7CiAJCWlmIChXQVJOX09OKHB1dF9kb21haW5zKSkKIAkJCW1vZGVzZXRfcHV0X3Bvd2VyX2RvbWFpbnMoZGV2X3ByaXYsIHB1dF9kb21haW5zKTsKIAl9CkBAIC0xNjg2Niw3ICsxNzA2MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2hwZF9wb2xsX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRlcik7CiB9CiAKLXZvaWQgaW50ZWxfbW9kZXNldF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit2b2lkIGludGVsX21vZGVzZXRfZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIApAQCAtMTY5ODIsNyArMTcxNzYsNyBAQCBzdHJ1Y3QgaW50ZWxfZGlzcGxheV9lcnJvcl9zdGF0ZSB7CiAJCXUzMiB2dG90YWw7CiAJCXUzMiB2Ymxhbms7CiAJCXUzMiB2c3luYzsKLQl9IHRyYW5zY29kZXJbNF07CisJfSB0cmFuc2NvZGVyWzVdOwogfTsKIAogc3RydWN0IGludGVsX2Rpc3BsYXlfZXJyb3Jfc3RhdGUgKgpAQCAtMTY5OTMsNiArMTcxODcsNyBAQCBpbnRlbF9kaXNwbGF5X2NhcHR1cmVfZXJyb3Jfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlUUkFOU0NPREVSX0EsCiAJCVRSQU5TQ09ERVJfQiwKIAkJVFJBTlNDT0RFUl9DLAorCQlUUkFOU0NPREVSX0QsCiAJCVRSQU5TQ09ERVJfRURQLAogCX07CiAJaW50IGk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCmluZGV4IGVlNmI4MTkuLmU1N2U2OTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCkBAIC0yOCw4ICsyOCwzMCBAQAogI2luY2x1ZGUgPGRybS9kcm1fdXRpbC5oPgogI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgogCitlbnVtIGxpbmtfbV9uX3NldDsKK3N0cnVjdCBkcGxsOworc3RydWN0IGRybV9jb25uZWN0b3I7CitzdHJ1Y3QgZHJtX2RldmljZTsKK3N0cnVjdCBkcm1fZW5jb2RlcjsKK3N0cnVjdCBkcm1fZmlsZTsKK3N0cnVjdCBkcm1fZnJhbWVidWZmZXI7CitzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmOworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Q7CiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKK3N0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eDsKK3N0cnVjdCBkcm1fcGxhbmU7CitzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlOworc3RydWN0IGk5MTVfZ2d0dF92aWV3Oworc3RydWN0IGludGVsX2NydGM7CitzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZTsKK3N0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQ7CitzdHJ1Y3QgaW50ZWxfZHA7CitzdHJ1Y3QgaW50ZWxfZW5jb2RlcjsKK3N0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlOworc3RydWN0IGludGVsX3BsYW5lOwogc3RydWN0IGludGVsX3BsYW5lX3N0YXRlOworc3RydWN0IGludGVsX3JlbWFwcGVkX2luZm87CitzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbzsKIAogZW51bSBpOTE1X2dwaW8gewogCUdQSU9BLApAQCAtNDUsNiArNjcsOCBAQCBlbnVtIGk5MTVfZ3BpbyB7CiAJR1BJT0ssCiAJR1BJT0wsCiAJR1BJT00sCisJR1BJT04sCisJR1BJT08sCiB9OwogCiAvKgpAQCAtNTgsNiArODIsNyBAQCBlbnVtIHBpcGUgewogCVBJUEVfQSA9IDAsCiAJUElQRV9CLAogCVBJUEVfQywKKwlQSVBFX0QsCiAJX1BJUEVfRURQLAogCiAJSTkxNV9NQVhfUElQRVMgPSBfUElQRV9FRFAKQEAgLTc1LDYgKzEwMCw3IEBAIGVudW0gdHJhbnNjb2RlciB7CiAJVFJBTlNDT0RFUl9BID0gUElQRV9BLAogCVRSQU5TQ09ERVJfQiA9IFBJUEVfQiwKIAlUUkFOU0NPREVSX0MgPSBQSVBFX0MsCisJVFJBTlNDT0RFUl9EID0gUElQRV9ELAogCiAJLyoKIAkgKiBUaGUgZm9sbG93aW5nIHRyYW5zY29kZXJzIGNhbiBtYXAgdG8gYW55IHBpcGUsIHRoZWlyIGVudW0gdmFsdWUKQEAgLTk4LDYgKzEyNCw4IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqdHJhbnNjb2Rlcl9uYW1lKGVudW0gdHJhbnNjb2RlciB0cmFuc2NvZGVyKQogCQlyZXR1cm4gIkIiOwogCWNhc2UgVFJBTlNDT0RFUl9DOgogCQlyZXR1cm4gIkMiOworCWNhc2UgVFJBTlNDT0RFUl9EOgorCQlyZXR1cm4gIkQiOwogCWNhc2UgVFJBTlNDT0RFUl9FRFA6CiAJCXJldHVybiAiRURQIjsKIAljYXNlIFRSQU5TQ09ERVJfRFNJX0E6CkBAIC0xNzMsNiArMjAxLDEyIEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqcG9ydF9pZGVudGlmaWVyKGVudW0gcG9ydCBwb3J0KQogCQlyZXR1cm4gIlBvcnQgRSI7CiAJY2FzZSBQT1JUX0Y6CiAJCXJldHVybiAiUG9ydCBGIjsKKwljYXNlIFBPUlRfRzoKKwkJcmV0dXJuICJQb3J0IEciOworCWNhc2UgUE9SVF9IOgorCQlyZXR1cm4gIlBvcnQgSCI7CisJY2FzZSBQT1JUX0k6CisJCXJldHVybiAiUG9ydCBJIjsKIAlkZWZhdWx0OgogCQlyZXR1cm4gIjxpbnZhbGlkPiI7CiAJfQpAQCAtMTg1LDE0ICsyMTksMTUgQEAgZW51bSB0Y19wb3J0IHsKIAlQT1JUX1RDMiwKIAlQT1JUX1RDMywKIAlQT1JUX1RDNCwKKwlQT1JUX1RDNSwKKwlQT1JUX1RDNiwKIAogCUk5MTVfTUFYX1RDX1BPUlRTCiB9OwogCi1lbnVtIHRjX3BvcnRfdHlwZSB7Ci0JVENfUE9SVF9VTktOT1dOID0gMCwKLQlUQ19QT1JUX1RZUEVDLAotCVRDX1BPUlRfVEJULAorZW51bSB0Y19wb3J0X21vZGUgeworCVRDX1BPUlRfVEJUX0FMVCwKKwlUQ19QT1JUX0RQX0FMVCwKIAlUQ19QT1JUX0xFR0FDWSwKIH07CiAKQEAgLTIyOSw2ICsyNjQsMzAgQEAgc3RydWN0IGludGVsX2xpbmtfbV9uIHsKIAl1MzIgbGlua19uOwogfTsKIAorZW51bSBwaHkgeworCVBIWV9OT05FID0gLTEsCisKKwlQSFlfQSA9IDAsCisJUEhZX0IsCisJUEhZX0MsCisJUEhZX0QsCisJUEhZX0UsCisJUEhZX0YsCisJUEhZX0csCisJUEhZX0gsCisJUEhZX0ksCisKKwlJOTE1X01BWF9QSFlTCit9OworCisjZGVmaW5lIHBoeV9uYW1lKGEpICgoYSkgKyAnQScpCisKK2VudW0gcGh5X2ZpYSB7CisJRklBMSwKKwlGSUEyLAorCUZJQTMsCit9OworCiAjZGVmaW5lIGZvcl9lYWNoX3BpcGUoX19kZXZfcHJpdiwgX19wKSBcCiAJZm9yICgoX19wKSA9IDA7IChfX3ApIDwgSU5URUxfSU5GTyhfX2Rldl9wcml2KS0+bnVtX3BpcGVzOyAoX19wKSsrKQogCkBAIC0yNTQsNiArMzEzLDEwIEBAIHN0cnVjdCBpbnRlbF9saW5rX21fbiB7CiAJZm9yICgoX19wb3J0KSA9IFBPUlRfQTsgKF9fcG9ydCkgPCBJOTE1X01BWF9QT1JUUzsgKF9fcG9ydCkrKykJXAogCQlmb3JfZWFjaF9pZigoX19wb3J0c19tYXNrKSAmIEJJVChfX3BvcnQpKQogCisjZGVmaW5lIGZvcl9lYWNoX3BoeV9tYXNrZWQoX19waHksIF9fcGh5c19tYXNrKSBcCisJZm9yICgoX19waHkpID0gUEhZX0E7IChfX3BoeSkgPCBJOTE1X01BWF9QSFlTOyAoX19waHkpKyspCVwKKwkJZm9yX2VhY2hfaWYoKF9fcGh5c19tYXNrKSAmIEJJVChfX3BoeSkpCisKICNkZWZpbmUgZm9yX2VhY2hfY3J0YyhkZXYsIGNydGMpIFwKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICYoZGV2KS0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKQogCkBAIC0zNTcsNSArNDIwLDE3MyBAQCB2b2lkIGxwdF9kaXNhYmxlX2Nsa291dF9kcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdTMyIGludGVsX3BsYW5lX2ZiX21heF9zdHJpZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICAgdTMyIHBpeGVsX2Zvcm1hdCwgdTY0IG1vZGlmaWVyKTsKIGJvb2wgaW50ZWxfcGxhbmVfY2FuX3JlbWFwKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOworZW51bSBwaHkgaW50ZWxfcG9ydF90b19waHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGVudW0gcG9ydCBwb3J0KTsKKwordm9pZCBpbnRlbF9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKK3ZvaWQgaTgzMF9lbmFibGVfcGlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKTsKK3ZvaWQgaTgzMF9kaXNhYmxlX3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSk7CitlbnVtIHBpcGUgaW50ZWxfY3J0Y19wY2hfdHJhbnNjb2RlcihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7CitpbnQgdmx2X2dldF9ocGxsX3ZjbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworaW50IHZsdl9nZXRfY2NrX2Nsb2NrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgICAgY29uc3QgY2hhciAqbmFtZSwgdTMyIHJlZywgaW50IHJlZl9mcmVxKTsKK2ludCB2bHZfZ2V0X2Nja19jbG9ja19ocGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgIGNvbnN0IGNoYXIgKm5hbWUsIHUzMiByZWcpOwordm9pZCBscHRfZGlzYWJsZV9wY2hfdHJhbnNjb2RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBscHRfZGlzYWJsZV9pY2xraXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5X2hvb2tzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit1bnNpZ25lZCBpbnQgaW50ZWxfZmJfeHlfdG9fbGluZWFyKGludCB4LCBpbnQgeSwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlLAorCQkJCSAgIGludCBwbGFuZSk7Cit1bnNpZ25lZCBpbnQgaW50ZWxfZmJfYWxpZ25faGVpZ2h0KGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJCSAgIGludCBjb2xvcl9wbGFuZSwgdW5zaWduZWQgaW50IGhlaWdodCk7Cit2b2lkIGludGVsX2FkZF9mYl9vZmZzZXRzKGludCAqeCwgaW50ICp5LAorCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlLCBpbnQgcGxhbmUpOwordW5zaWduZWQgaW50IGludGVsX3JvdGF0aW9uX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90X2luZm8pOwordW5zaWduZWQgaW50IGludGVsX3JlbWFwcGVkX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbyAqcmVtX2luZm8pOworYm9vbCBpbnRlbF9oYXNfcGVuZGluZ19mYl91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworaW50IGludGVsX2Rpc3BsYXlfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgaW50ZWxfcHBzX3VubG9ja19yZWdzX3dhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGludGVsX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOworc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKgoraW50ZWxfZW5jb2Rlcl9jdXJyZW50X21vZGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOworYm9vbCBpbnRlbF9waHlfaXNfY29tYm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBoeSBwaHkpOworYm9vbCBpbnRlbF9waHlfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBoeSBwaHkpOworZW51bSB0Y19wb3J0IGludGVsX3BvcnRfdG9fdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICAgZW51bSBwb3J0IHBvcnQpOworaW50IGludGVsX2dldF9waXBlX2Zyb21fY3J0Y19pZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2VudW0gdHJhbnNjb2RlciBpbnRlbF9waXBlX3RvX2NwdV90cmFuc2NvZGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJICAgICBlbnVtIHBpcGUgcGlwZSk7Cit1MzIgaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGludGVsX2NydGMgKmNydGMpOworCitpbnQgaXJvbmxha2VfZ2V0X2xhbmVzX3JlcXVpcmVkKGludCB0YXJnZXRfY2xvY2ssIGludCBsaW5rX2J3LCBpbnQgYnBwKTsKK3ZvaWQgdmx2X3dhaXRfcG9ydF9yZWFkeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQsCisJCQkgdW5zaWduZWQgaW50IGV4cGVjdGVkX21hc2spOworaW50IGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkgICAgICAgc3RydWN0IGludGVsX2xvYWRfZGV0ZWN0X3BpcGUgKm9sZCwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7Cit2b2lkIGludGVsX3JlbGVhc2VfbG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCSAgICBzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSAqb2xkLAorCQkJCSAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7CitzdHJ1Y3QgaTkxNV92bWEgKgoraW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCisJCQkgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsCisJCQkgICBib29sIHVzZXNfZmVuY2UsCisJCQkgICB1bnNpZ25lZCBsb25nICpvdXRfZmxhZ3MpOwordm9pZCBpbnRlbF91bnBpbl9mYl92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOworc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqCitpbnRlbF9mcmFtZWJ1ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCSBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQpOworaW50IGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfc3RhdGUpOwordm9pZCBpbnRlbF9jbGVhbnVwX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSk7CisKK3ZvaWQgYXNzZXJ0X3BjaF90cmFuc2NvZGVyX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgZW51bSBwaXBlIHBpcGUpOworCitpbnQgdmx2X2ZvcmNlX3BsbF9vbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlLAorCQkgICAgIGNvbnN0IHN0cnVjdCBkcGxsICpkcGxsKTsKK3ZvaWQgdmx2X2ZvcmNlX3BsbF9vZmYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSk7CitpbnQgbHB0X2dldF9pY2xraXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK2Jvb2wgaW50ZWxfZnV6enlfY2xvY2tfY2hlY2soaW50IGNsb2NrMSwgaW50IGNsb2NrMik7CisKK3ZvaWQgaW50ZWxfcHJlcGFyZV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpbnRlbF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaW50ZWxfZHBfZ2V0X21fbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKK3ZvaWQgaW50ZWxfZHBfc2V0X21fbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJICAgICAgZW51bSBsaW5rX21fbl9zZXQgbV9uKTsKK3ZvaWQgaW50ZWxfZHBfeWNiY3JfNDIwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKK2ludCBpbnRlbF9kb3RjbG9ja19jYWxjdWxhdGUoaW50IGxpbmtfZnJlcSwgY29uc3Qgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24pOworYm9vbCBieHRfZmluZF9iZXN0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQlzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jayk7CitpbnQgY2h2X2NhbGNfZHBsbF9wYXJhbXMoaW50IHJlZmNsaywgc3RydWN0IGRwbGwgKnBsbF9jbG9jayk7CisKK2Jvb2wgaW50ZWxfY3J0Y19hY3RpdmUoc3RydWN0IGludGVsX2NydGMgKmNydGMpOworYm9vbCBoc3dfY3J0Y19zdGF0ZV9pcHNfY2FwYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cit2b2lkIGhzd19lbmFibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKK3ZvaWQgaHN3X2Rpc2FibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKK2VudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gaW50ZWxfcG9ydF90b19wb3dlcl9kb21haW4oZW51bSBwb3J0IHBvcnQpOworZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgoraW50ZWxfYXV4X3Bvd2VyX2RvbWFpbihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Cit2b2lkIGludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKK3ZvaWQgaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKKwordTE2IHNrbF9zY2FsZXJfY2FsY19waGFzZShpbnQgc3ViLCBpbnQgc2NhbGUsIGJvb2wgY2hyb21hX2NlbnRlcik7CitpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CitpbnQgc2tsX21heF9zY2FsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJICB1MzIgcGl4ZWxfZm9ybWF0KTsKK3UzMiBnbGtfcGxhbmVfY29sb3JfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cit1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKK3UzMiBza2xfcGxhbmVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwordTMyIHNrbF9wbGFuZV9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cit1MzIgc2tsX3BsYW5lX3N0cmlkZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAorCQkgICAgIGludCBwbGFuZSk7CitpbnQgc2tsX2NoZWNrX3BsYW5lX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CitpbnQgaTl4eF9jaGVja19wbGFuZV9zdXJmYWNlKHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOworaW50IHNrbF9mb3JtYXRfdG9fZm91cmNjKGludCBmb3JtYXQsIGJvb2wgcmdiX29yZGVyLCBib29sIGFscGhhKTsKK3Vuc2lnbmVkIGludCBpOXh4X3BsYW5lX21heF9zdHJpZGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKKwkJCQkgICB1MzIgcGl4ZWxfZm9ybWF0LCB1NjQgbW9kaWZpZXIsCisJCQkJICAgdW5zaWduZWQgaW50IHJvdGF0aW9uKTsKK2ludCBiZHdfZ2V0X3BpcGVtaXNjX2JwcChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7CisKK3N0cnVjdCBpbnRlbF9kaXNwbGF5X2Vycm9yX3N0YXRlICoKK2ludGVsX2Rpc3BsYXlfY2FwdHVyZV9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpbnRlbF9kaXNwbGF5X3ByaW50X2Vycm9yX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKmUsCisJCQkJICAgICBzdHJ1Y3QgaW50ZWxfZGlzcGxheV9lcnJvcl9zdGF0ZSAqZXJyb3IpOworCisvKiBtb2Rlc2V0dGluZyAqLwordm9pZCBpbnRlbF9tb2Rlc2V0X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitpbnQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwordm9pZCBpbnRlbF9tb2Rlc2V0X2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitpbnQgaW50ZWxfbW9kZXNldF92Z2Ffc2V0X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCBzdGF0ZSk7Cit2b2lkIGludGVsX2Rpc3BsYXlfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwordm9pZCBpOTE1X3JlZGlzYWJsZV92Z2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaTkxNV9yZWRpc2FibGVfdmdhX3Bvd2VyX29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGludGVsX2luaXRfcGNoX3JlZmNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCisvKiBtb2Rlc2V0dGluZyBhc3NlcnRzICovCit2b2lkIGFzc2VydF9wYW5lbF91bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICBlbnVtIHBpcGUgcGlwZSk7Cit2b2lkIGFzc2VydF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQllbnVtIHBpcGUgcGlwZSwgYm9vbCBzdGF0ZSk7CisjZGVmaW5lIGFzc2VydF9wbGxfZW5hYmxlZChkLCBwKSBhc3NlcnRfcGxsKGQsIHAsIHRydWUpCisjZGVmaW5lIGFzc2VydF9wbGxfZGlzYWJsZWQoZCwgcCkgYXNzZXJ0X3BsbChkLCBwLCBmYWxzZSkKK3ZvaWQgYXNzZXJ0X2RzaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHN0YXRlKTsKKyNkZWZpbmUgYXNzZXJ0X2RzaV9wbGxfZW5hYmxlZChkKSBhc3NlcnRfZHNpX3BsbChkLCB0cnVlKQorI2RlZmluZSBhc3NlcnRfZHNpX3BsbF9kaXNhYmxlZChkKSBhc3NlcnRfZHNpX3BsbChkLCBmYWxzZSkKK3ZvaWQgYXNzZXJ0X2ZkaV9yeF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgICAgZW51bSBwaXBlIHBpcGUsIGJvb2wgc3RhdGUpOworI2RlZmluZSBhc3NlcnRfZmRpX3J4X3BsbF9lbmFibGVkKGQsIHApIGFzc2VydF9mZGlfcnhfcGxsKGQsIHAsIHRydWUpCisjZGVmaW5lIGFzc2VydF9mZGlfcnhfcGxsX2Rpc2FibGVkKGQsIHApIGFzc2VydF9mZGlfcnhfcGxsKGQsIHAsIGZhbHNlKQordm9pZCBhc3NlcnRfcGlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlLCBib29sIHN0YXRlKTsKKyNkZWZpbmUgYXNzZXJ0X3BpcGVfZW5hYmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCB0cnVlKQorI2RlZmluZSBhc3NlcnRfcGlwZV9kaXNhYmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCBmYWxzZSkKKworLyogVXNlIEk5MTVfU1RBVEVfV0FSTih4KSBhbmQgSTkxNV9TVEFURV9XQVJOX09OKCkgKHJhdGhlciB0aGFuIFdBUk4oKSBhbmQKKyAqIFdBUk5fT04oKSkgZm9yIGh3IHN0YXRlIHNhbml0eSBjaGVja3MgdG8gY2hlY2sgZm9yIHVuZXhwZWN0ZWQgY29uZGl0aW9ucworICogd2hpY2ggbWF5IG5vdCBuZWNlc3NhcmlseSBiZSBhIHVzZXIgdmlzaWJsZSBwcm9ibGVtLiAgVGhpcyB3aWxsIGVpdGhlcgorICogV0FSTigpIG9yIERSTV9FUlJPUigpIGRlcGVuZGluZyBvbiB0aGUgdmVyYm9zZV9jaGVja3MgbW9kdWxlcGFyYW0sIHRvCisgKiBlbmFibGUgZGlzdHJvcyBhbmQgdXNlcnMgdG8gdGFpbG9yIHRoZWlyIHByZWZlcnJlZCBhbW91bnQgb2YgaTkxNSBhYnJ0CisgKiBzcGFtLgorICovCisjZGVmaW5lIEk5MTVfU1RBVEVfV0FSTihjb25kaXRpb24sIGZvcm1hdC4uLikgKHsJCQlcCisJaW50IF9fcmV0X3dhcm5fb24gPSAhIShjb25kaXRpb24pOwkJCQlcCisJaWYgKHVubGlrZWx5KF9fcmV0X3dhcm5fb24pKQkJCQkJXAorCQlpZiAoIVdBUk4oaTkxNV9tb2RwYXJhbXMudmVyYm9zZV9zdGF0ZV9jaGVja3MsIGZvcm1hdCkpCVwKKwkJCURSTV9FUlJPUihmb3JtYXQpOwkJCQlcCisJdW5saWtlbHkoX19yZXRfd2Fybl9vbik7CQkJCQlcCit9KQorCisjZGVmaW5lIEk5MTVfU1RBVEVfV0FSTl9PTih4KQkJCQkJCVwKKwlJOTE1X1NUQVRFX1dBUk4oKHgpLCAiJXMiLCAiV0FSTl9PTigiIF9fc3RyaW5naWZ5KHgpICIpIikKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCmluZGV4IDJkMTkzOWQuLjEyMDk5NzYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwpAQCAtMTMsMTcgKzEzLDIyIEBACiAjaW5jbHVkZSAiaW50ZWxfY2RjbGsuaCIKICNpbmNsdWRlICJpbnRlbF9jb21ib19waHkuaCIKICNpbmNsdWRlICJpbnRlbF9jc3IuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3Bvd2VyLmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2RwaW9fcGh5LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfaG90cGx1Zy5oIgogI2luY2x1ZGUgImludGVsX3NpZGViYW5kLmgiCisjaW5jbHVkZSAiaW50ZWxfdGMuaCIKIAogYm9vbCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3dlbGxfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCSBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCBwb3dlcl93ZWxsX2lkKTsKIAogY29uc3QgY2hhciAqCi1pbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pCitpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgICAgICAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pCiB7CisJYm9vbCBkZGlfdGNfcG9ydHMgPSBJU19HRU4oaTkxNSwgMTIpOworCiAJc3dpdGNoIChkb21haW4pIHsKIAljYXNlIFBPV0VSX0RPTUFJTl9ESVNQTEFZX0NPUkU6CiAJCXJldHVybiAiRElTUExBWV9DT1JFIjsKQEAgLTMzLDIyICszOCwyOCBAQCBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pCiAJCXJldHVybiAiUElQRV9CIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9QSVBFX0M6CiAJCXJldHVybiAiUElQRV9DIjsKKwljYXNlIFBPV0VSX0RPTUFJTl9QSVBFX0Q6CisJCXJldHVybiAiUElQRV9EIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9QSVBFX0FfUEFORUxfRklUVEVSOgogCQlyZXR1cm4gIlBJUEVfQV9QQU5FTF9GSVRURVIiOwogCWNhc2UgUE9XRVJfRE9NQUlOX1BJUEVfQl9QQU5FTF9GSVRURVI6CiAJCXJldHVybiAiUElQRV9CX1BBTkVMX0ZJVFRFUiI7CiAJY2FzZSBQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUjoKIAkJcmV0dXJuICJQSVBFX0NfUEFORUxfRklUVEVSIjsKKwljYXNlIFBPV0VSX0RPTUFJTl9QSVBFX0RfUEFORUxfRklUVEVSOgorCQlyZXR1cm4gIlBJUEVfRF9QQU5FTF9GSVRURVIiOwogCWNhc2UgUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQToKIAkJcmV0dXJuICJUUkFOU0NPREVSX0EiOwogCWNhc2UgUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQjoKIAkJcmV0dXJuICJUUkFOU0NPREVSX0IiOwogCWNhc2UgUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQzoKIAkJcmV0dXJuICJUUkFOU0NPREVSX0MiOworCWNhc2UgUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRDoKKwkJcmV0dXJuICJUUkFOU0NPREVSX0QiOwogCWNhc2UgUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRURQOgogCQlyZXR1cm4gIlRSQU5TQ09ERVJfRURQIjsKLQljYXNlIFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0VEUF9WRFNDOgotCQlyZXR1cm4gIlRSQU5TQ09ERVJfRURQX1ZEU0MiOworCWNhc2UgUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfVkRTQ19QVzI6CisJCXJldHVybiAiVFJBTlNDT0RFUl9WRFNDX1BXMiI7CiAJY2FzZSBQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9EU0lfQToKIAkJcmV0dXJuICJUUkFOU0NPREVSX0RTSV9BIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0RTSV9DOgpAQCAtNjAsMTEgKzcxLDIzIEBAIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbikKIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTOgogCQlyZXR1cm4gIlBPUlRfRERJX0NfTEFORVMiOwogCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVM6Ci0JCXJldHVybiAiUE9SVF9ERElfRF9MQU5FUyI7CisJCUJVSUxEX0JVR19PTihQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUyAhPQorCQkJICAgICBQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMxX0xBTkVTKTsKKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJQT1JUX0RESV9UQzFfTEFORVMiIDogIlBPUlRfRERJX0RfTEFORVMiOwogCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0VfTEFORVM6Ci0JCXJldHVybiAiUE9SVF9ERElfRV9MQU5FUyI7CisJCUJVSUxEX0JVR19PTihQT1dFUl9ET01BSU5fUE9SVF9ERElfRV9MQU5FUyAhPQorCQkJICAgICBQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMyX0xBTkVTKTsKKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJQT1JUX0RESV9UQzJfTEFORVMiIDogIlBPUlRfRERJX0VfTEFORVMiOwogCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfTEFORVM6Ci0JCXJldHVybiAiUE9SVF9ERElfRl9MQU5FUyI7CisJCUJVSUxEX0JVR19PTihQT1dFUl9ET01BSU5fUE9SVF9ERElfRl9MQU5FUyAhPQorCQkJICAgICBQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0xBTkVTKTsKKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJQT1JUX0RESV9UQzNfTEFORVMiIDogIlBPUlRfRERJX0ZfTEFORVMiOworCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNF9MQU5FUzoKKwkJcmV0dXJuICJQT1JUX0RESV9UQzRfTEFORVMiOworCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNV9MQU5FUzoKKwkJcmV0dXJuICJQT1JUX0RESV9UQzVfTEFORVMiOworCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNl9MQU5FUzoKKwkJcmV0dXJuICJQT1JUX0RESV9UQzZfTEFORVMiOwogCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0FfSU86CiAJCXJldHVybiAiUE9SVF9ERElfQV9JTyI7CiAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9JTzoKQEAgLTcyLDExICs5NSwyMyBAQCBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pCiAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19JTzoKIAkJcmV0dXJuICJQT1JUX0RESV9DX0lPIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0lPOgotCQlyZXR1cm4gIlBPUlRfRERJX0RfSU8iOworCQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfSU8gIT0KKwkJCSAgICAgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMV9JTyk7CisJCXJldHVybiBkZGlfdGNfcG9ydHMgPyAiUE9SVF9ERElfVEMxX0lPIiA6ICJQT1JUX0RESV9EX0lPIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0lPOgotCQlyZXR1cm4gIlBPUlRfRERJX0VfSU8iOworCQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX1BPUlRfRERJX0VfSU8gIT0KKwkJCSAgICAgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMl9JTyk7CisJCXJldHVybiBkZGlfdGNfcG9ydHMgPyAiUE9SVF9ERElfVEMyX0lPIiA6ICJQT1JUX0RESV9FX0lPIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9GX0lPOgotCQlyZXR1cm4gIlBPUlRfRERJX0ZfSU8iOworCQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU8gIT0KKwkJCSAgICAgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDM19JTyk7CisJCXJldHVybiBkZGlfdGNfcG9ydHMgPyAiUE9SVF9ERElfVEMzX0lPIiA6ICJQT1JUX0RESV9GX0lPIjsKKwljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzRfSU86CisJCXJldHVybiAiUE9SVF9ERElfVEM0X0lPIjsKKwljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzVfSU86CisJCXJldHVybiAiUE9SVF9ERElfVEM1X0lPIjsKKwljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzZfSU86CisJCXJldHVybiAiUE9SVF9ERElfVEM2X0lPIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RTSToKIAkJcmV0dXJuICJQT1JUX0RTSSI7CiAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9DUlQ6CkBAIC05NCwxMSArMTI5LDIwIEBAIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbikKIAljYXNlIFBPV0VSX0RPTUFJTl9BVVhfQzoKIAkJcmV0dXJuICJBVVhfQyI7CiAJY2FzZSBQT1dFUl9ET01BSU5fQVVYX0Q6Ci0JCXJldHVybiAiQVVYX0QiOworCQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX0FVWF9EICE9IFBPV0VSX0RPTUFJTl9BVVhfVEMxKTsKKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJBVVhfVEMxIiA6ICJBVVhfRCI7CiAJY2FzZSBQT1dFUl9ET01BSU5fQVVYX0U6Ci0JCXJldHVybiAiQVVYX0UiOworCQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX0FVWF9FICE9IFBPV0VSX0RPTUFJTl9BVVhfVEMyKTsKKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJBVVhfVEMyIiA6ICJBVVhfRSI7CiAJY2FzZSBQT1dFUl9ET01BSU5fQVVYX0Y6Ci0JCXJldHVybiAiQVVYX0YiOworCQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX0FVWF9GICE9IFBPV0VSX0RPTUFJTl9BVVhfVEMzKTsKKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJBVVhfVEMzIiA6ICJBVVhfRiI7CisJY2FzZSBQT1dFUl9ET01BSU5fQVVYX1RDNDoKKwkJcmV0dXJuICJBVVhfVEM0IjsKKwljYXNlIFBPV0VSX0RPTUFJTl9BVVhfVEM1OgorCQlyZXR1cm4gIkFVWF9UQzUiOworCWNhc2UgUE9XRVJfRE9NQUlOX0FVWF9UQzY6CisJCXJldHVybiAiQVVYX1RDNiI7CiAJY2FzZSBQT1dFUl9ET01BSU5fQVVYX0lPX0E6CiAJCXJldHVybiAiQVVYX0lPX0EiOwogCWNhc2UgUE9XRVJfRE9NQUlOX0FVWF9UQlQxOgpAQCAtMTA5LDYgKzE1MywxMCBAQCBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pCiAJCXJldHVybiAiQVVYX1RCVDMiOwogCWNhc2UgUE9XRVJfRE9NQUlOX0FVWF9UQlQ0OgogCQlyZXR1cm4gIkFVWF9UQlQ0IjsKKwljYXNlIFBPV0VSX0RPTUFJTl9BVVhfVEJUNToKKwkJcmV0dXJuICJBVVhfVEJUNSI7CisJY2FzZSBQT1dFUl9ET01BSU5fQVVYX1RCVDY6CisJCXJldHVybiAiQVVYX1RCVDYiOwogCWNhc2UgUE9XRVJfRE9NQUlOX0dNQlVTOgogCQlyZXR1cm4gIkdNQlVTIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9JTklUOgpAQCAtMTE3LDYgKzE2NSw4IEBAIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbikKIAkJcmV0dXJuICJNT0RFU0VUIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9HVF9JUlE6CiAJCXJldHVybiAiR1RfSVJRIjsKKwljYXNlIFBPV0VSX0RPTUFJTl9EUExMX0RDX09GRjoKKwkJcmV0dXJuICJEUExMX0RDX09GRiI7CiAJZGVmYXVsdDoKIAkJTUlTU0lOR19DQVNFKGRvbWFpbik7CiAJCXJldHVybiAiPyI7CkBAIC0yNjksMTEgKzMxOSwxNCBAQCBzdGF0aWMgdm9pZCBoc3dfd2FpdF9mb3JfcG93ZXJfd2VsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWludCBwd19pZHggPSBwb3dlcl93ZWxsLT5kZXNjLT5oc3cuaWR4OwogCiAJLyogVGltZW91dCBmb3IgUFcxOjEwIHVzLCBBVVg6bm90IHNwZWNpZmllZCwgb3RoZXIgUFdzOjIwIHVzLiAqLwotCVdBUk5fT04oaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJCXJlZ3MtPmRyaXZlciwKLQkJCQkJSFNXX1BXUl9XRUxMX0NUTF9TVEFURShwd19pZHgpLAotCQkJCQlIU1dfUFdSX1dFTExfQ1RMX1NUQVRFKHB3X2lkeCksCi0JCQkJCTEpKTsKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCByZWdzLT5kcml2ZXIsCisJCQkJICBIU1dfUFdSX1dFTExfQ1RMX1NUQVRFKHB3X2lkeCksIDEpKSB7CisJCURSTV9ERUJVR19LTVMoIiVzIHBvd2VyIHdlbGwgZW5hYmxlIHRpbWVvdXRcbiIsCisJCQkgICAgICBwb3dlcl93ZWxsLT5kZXNjLT5uYW1lKTsKKworCQkvKiBBbiBBVVggdGltZW91dCBpcyBleHBlY3RlZCBpZiB0aGUgVEJUIERQIHR1bm5lbCBpcyBkb3duLiAqLworCQlXQVJOX09OKCFwb3dlcl93ZWxsLT5kZXNjLT5oc3cuaXNfdGNfdGJ0KTsKKwl9CiB9CiAKIHN0YXRpYyB1MzIgaHN3X3Bvd2VyX3dlbGxfcmVxdWVzdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC0zMjQsOSArMzc3LDggQEAgc3RhdGljIHZvaWQgZ2VuOV93YWl0X2Zvcl9wb3dlcl93ZWxsX2Z1c2VzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJICAgZW51bSBza2xfcG93ZXJfZ2F0ZSBwZykKIHsKIAkvKiBUaW1lb3V0IDV1cyBmb3IgUEcjMCwgZm9yIG90aGVyIFBHcyAxdXMgKi8KLQlXQVJOX09OKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLCBTS0xfRlVTRV9TVEFUVVMsCi0JCQkJCVNLTF9GVVNFX1BHX0RJU1RfU1RBVFVTKHBnKSwKLQkJCQkJU0tMX0ZVU0VfUEdfRElTVF9TVEFUVVMocGcpLCAxKSk7CisJV0FSTl9PTihpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIFNLTF9GVVNFX1NUQVRVUywKKwkJCQkgICAgICBTS0xfRlVTRV9QR19ESVNUX1NUQVRVUyhwZyksIDEpKTsKIH0KIAogc3RhdGljIHZvaWQgaHN3X3Bvd2VyX3dlbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTM4OCw3ICs0NDAsNyBAQCBzdGF0aWMgdm9pZCBoc3dfcG93ZXJfd2VsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAloc3dfd2FpdF9mb3JfcG93ZXJfd2VsbF9kaXNhYmxlKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKIH0KIAotI2RlZmluZSBJQ0xfQVVYX1BXX1RPX1BPUlQocHdfaWR4KQkoKHB3X2lkeCkgLSBJQ0xfUFdfQ1RMX0lEWF9BVVhfQSkKKyNkZWZpbmUgSUNMX0FVWF9QV19UT19QSFkocHdfaWR4KQkoKHB3X2lkeCkgLSBJQ0xfUFdfQ1RMX0lEWF9BVVhfQSkKIAogc3RhdGljIHZvaWQKIGljbF9jb21ib19waHlfYXV4X3Bvd2VyX3dlbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTM5NiwyMSArNDQ4LDI5IEBAIGljbF9jb21ib19waHlfYXV4X3Bvd2VyX3dlbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHsKIAljb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX3JlZ3MgKnJlZ3MgPSBwb3dlcl93ZWxsLT5kZXNjLT5oc3cucmVnczsKIAlpbnQgcHdfaWR4ID0gcG93ZXJfd2VsbC0+ZGVzYy0+aHN3LmlkeDsKLQllbnVtIHBvcnQgcG9ydCA9IElDTF9BVVhfUFdfVE9fUE9SVChwd19pZHgpOworCWVudW0gcGh5IHBoeSA9IElDTF9BVVhfUFdfVE9fUEhZKHB3X2lkeCk7CiAJdTMyIHZhbDsKKwlpbnQgd2FfaWR4X21heDsKIAogCXZhbCA9IEk5MTVfUkVBRChyZWdzLT5kcml2ZXIpOwogCUk5MTVfV1JJVEUocmVncy0+ZHJpdmVyLCB2YWwgfCBIU1dfUFdSX1dFTExfQ1RMX1JFUShwd19pZHgpKTsKIAotCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DTF9EVzEyKHBvcnQpKTsKLQlJOTE1X1dSSVRFKElDTF9QT1JUX0NMX0RXMTIocG9ydCksIHZhbCB8IElDTF9MQU5FX0VOQUJMRV9BVVgpOworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTIpIHsKKwkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NMX0RXMTIocGh5KSk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ0xfRFcxMihwaHkpLCB2YWwgfCBJQ0xfTEFORV9FTkFCTEVfQVVYKTsKKwl9CiAKIAloc3dfd2FpdF9mb3JfcG93ZXJfd2VsbF9lbmFibGUoZGV2X3ByaXYsIHBvd2VyX3dlbGwpOwogCi0JLyogRGlzcGxheSBXQSAjMTE3ODogaWNsICovCi0JaWYgKElTX0lDRUxBS0UoZGV2X3ByaXYpICYmCi0JICAgIHB3X2lkeCA+PSBJQ0xfUFdfQ1RMX0lEWF9BVVhfQSAmJiBwd19pZHggPD0gSUNMX1BXX0NUTF9JRFhfQVVYX0IgJiYKLQkgICAgIWludGVsX2Jpb3NfaXNfcG9ydF9lZHAoZGV2X3ByaXYsIHBvcnQpKSB7CisJLyogRGlzcGxheSBXQSAjMTE3ODogaWNsLCB0Z2wgKi8KKwlpZiAoSVNfVElHRVJMQUtFKGRldl9wcml2KSkKKwkJd2FfaWR4X21heCA9IElDTF9QV19DVExfSURYX0FVWF9DOworCWVsc2UKKwkJd2FfaWR4X21heCA9IElDTF9QV19DVExfSURYX0FVWF9COworCisJaWYgKCFJU19FTEtIQVJUTEFLRShkZXZfcHJpdikgJiYKKwkgICAgcHdfaWR4ID49IElDTF9QV19DVExfSURYX0FVWF9BICYmIHB3X2lkeCA8PSB3YV9pZHhfbWF4ICYmCisJICAgICFpbnRlbF9iaW9zX2lzX3BvcnRfZWRwKGRldl9wcml2LCAoZW51bSBwb3J0KXBoeSkpIHsKIAkJdmFsID0gSTkxNV9SRUFEKElDTF9BVVhfQU5BT1ZSRDEocHdfaWR4KSk7CiAJCXZhbCB8PSBJQ0xfQVVYX0FOQU9WUkQxX0VOQUJMRSB8IElDTF9BVVhfQU5BT1ZSRDFfTERPX0JZUEFTUzsKIAkJSTkxNV9XUklURShJQ0xfQVVYX0FOQU9WUkQxKHB3X2lkeCksIHZhbCk7CkBAIC00MjMsMTEgKzQ4MywxMyBAQCBpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogewogCWNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfcmVncyAqcmVncyA9IHBvd2VyX3dlbGwtPmRlc2MtPmhzdy5yZWdzOwogCWludCBwd19pZHggPSBwb3dlcl93ZWxsLT5kZXNjLT5oc3cuaWR4OwotCWVudW0gcG9ydCBwb3J0ID0gSUNMX0FVWF9QV19UT19QT1JUKHB3X2lkeCk7CisJZW51bSBwaHkgcGh5ID0gSUNMX0FVWF9QV19UT19QSFkocHdfaWR4KTsKIAl1MzIgdmFsOwogCi0JdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NMX0RXMTIocG9ydCkpOwotCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ0xfRFcxMihwb3J0KSwgdmFsICYgfklDTF9MQU5FX0VOQUJMRV9BVVgpOworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTIpIHsKKwkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NMX0RXMTIocGh5KSk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ0xfRFcxMihwaHkpLCB2YWwgJiB+SUNMX0xBTkVfRU5BQkxFX0FVWCk7CisJfQogCiAJdmFsID0gSTkxNV9SRUFEKHJlZ3MtPmRyaXZlcik7CiAJSTkxNV9XUklURShyZWdzLT5kcml2ZXIsIHZhbCAmIH5IU1dfUFdSX1dFTExfQ1RMX1JFUShwd19pZHgpKTsKQEAgLTQ0MSwyNiArNTAzLDEwOCBAQCBpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogI2RlZmluZSBJQ0xfVEJUX0FVWF9QV19UT19DSChwd19pZHgpCVwKIAkoKHB3X2lkeCkgLSBJQ0xfUFdfQ1RMX0lEWF9BVVhfVEJUMSArIEFVWF9DSF9DKQogCitzdGF0aWMgZW51bSBhdXhfY2ggaWNsX3RjX3BoeV9hdXhfY2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgICAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKK3sKKwlpbnQgcHdfaWR4ID0gcG93ZXJfd2VsbC0+ZGVzYy0+aHN3LmlkeDsKKworCXJldHVybiBwb3dlcl93ZWxsLT5kZXNjLT5oc3cuaXNfdGNfdGJ0ID8gSUNMX1RCVF9BVVhfUFdfVE9fQ0gocHdfaWR4KSA6CisJCQkJCQkgSUNMX0FVWF9QV19UT19DSChwd19pZHgpOworfQorCisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfUlVOVElNRV9QTSkKKworc3RhdGljIHU2NCBhc3luY19wdXRfZG9tYWluc19tYXNrKHN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMpOworCitzdGF0aWMgaW50IHBvd2VyX3dlbGxfYXN5bmNfcmVmX2NvdW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsKQoreworCWludCByZWZzID0gaHdlaWdodDY0KHBvd2VyX3dlbGwtPmRlc2MtPmRvbWFpbnMgJgorCQkJICAgICBhc3luY19wdXRfZG9tYWluc19tYXNrKCZkZXZfcHJpdi0+cG93ZXJfZG9tYWlucykpOworCisJV0FSTl9PTihyZWZzID4gcG93ZXJfd2VsbC0+Y291bnQpOworCisJcmV0dXJuIHJlZnM7Cit9CisKK3N0YXRpYyB2b2lkIGljbF90Y19wb3J0X2Fzc2VydF9yZWZfaGVsZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJCXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCit7CisJZW51bSBhdXhfY2ggYXV4X2NoID0gaWNsX3RjX3BoeV9hdXhfY2goZGV2X3ByaXYsIHBvd2VyX3dlbGwpOworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gTlVMTDsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKKworCS8qIEJ5cGFzcyB0aGUgY2hlY2sgaWYgYWxsIHJlZmVyZW5jZXMgYXJlIHJlbGVhc2VkIGFzeW5jaHJvbm91c2x5ICovCisJaWYgKHBvd2VyX3dlbGxfYXN5bmNfcmVmX2NvdW50KGRldl9wcml2LCBwb3dlcl93ZWxsKSA9PQorCSAgICBwb3dlcl93ZWxsLT5jb3VudCkKKwkJcmV0dXJuOworCisJYXV4X2NoID0gaWNsX3RjX3BoeV9hdXhfY2goZGV2X3ByaXYsIHBvd2VyX3dlbGwpOworCisJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcigmZGV2X3ByaXYtPmRybSwgZW5jb2RlcikgeworCQllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7CisKKwkJaWYgKCFpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCisJCQljb250aW51ZTsKKworCQkvKiBXZSdsbCBjaGVjayB0aGUgTVNUIHByaW1hcnkgcG9ydCAqLworCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKQorCQkJY29udGludWU7CisKKwkJZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCQlpZiAoV0FSTl9PTighZGlnX3BvcnQpKQorCQkJY29udGludWU7CisKKwkJaWYgKGRpZ19wb3J0LT5hdXhfY2ggIT0gYXV4X2NoKSB7CisJCQlkaWdfcG9ydCA9IE5VTEw7CisJCQljb250aW51ZTsKKwkJfQorCisJCWJyZWFrOworCX0KKworCWlmIChXQVJOX09OKCFkaWdfcG9ydCkpCisJCXJldHVybjsKKworCVdBUk5fT04oIWludGVsX3RjX3BvcnRfcmVmX2hlbGQoZGlnX3BvcnQpKTsKK30KKworI2Vsc2UKKworc3RhdGljIHZvaWQgaWNsX3RjX3BvcnRfYXNzZXJ0X3JlZl9oZWxkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKK3sKK30KKworI2VuZGlmCisKIHN0YXRpYyB2b2lkCiBpY2xfdGNfcGh5X2F1eF9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCiB7Ci0JaW50IHB3X2lkeCA9IHBvd2VyX3dlbGwtPmRlc2MtPmhzdy5pZHg7Ci0JYm9vbCBpc190YnQgPSBwb3dlcl93ZWxsLT5kZXNjLT5oc3cuaXNfdGNfdGJ0OwotCWVudW0gYXV4X2NoIGF1eF9jaDsKKwllbnVtIGF1eF9jaCBhdXhfY2ggPSBpY2xfdGNfcGh5X2F1eF9jaChkZXZfcHJpdiwgcG93ZXJfd2VsbCk7CiAJdTMyIHZhbDsKIAotCWF1eF9jaCA9IGlzX3RidCA/IElDTF9UQlRfQVVYX1BXX1RPX0NIKHB3X2lkeCkgOgotCQkJICBJQ0xfQVVYX1BXX1RPX0NIKHB3X2lkeCk7CisJaWNsX3RjX3BvcnRfYXNzZXJ0X3JlZl9oZWxkKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKKwogCXZhbCA9IEk5MTVfUkVBRChEUF9BVVhfQ0hfQ1RMKGF1eF9jaCkpOwogCXZhbCAmPSB+RFBfQVVYX0NIX0NUTF9UQlRfSU87Ci0JaWYgKGlzX3RidCkKKwlpZiAocG93ZXJfd2VsbC0+ZGVzYy0+aHN3LmlzX3RjX3RidCkKIAkJdmFsIHw9IERQX0FVWF9DSF9DVExfVEJUX0lPOwogCUk5MTVfV1JJVEUoRFBfQVVYX0NIX0NUTChhdXhfY2gpLCB2YWwpOwogCiAJaHN3X3Bvd2VyX3dlbGxfZW5hYmxlKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKIH0KIAorc3RhdGljIHZvaWQKK2ljbF90Y19waHlfYXV4X3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsKQoreworCWljbF90Y19wb3J0X2Fzc2VydF9yZWZfaGVsZChkZXZfcHJpdiwgcG93ZXJfd2VsbCk7CisKKwloc3dfcG93ZXJfd2VsbF9kaXNhYmxlKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKK30KKwogLyoKICAqIFdlIHNob3VsZCBvbmx5IHVzZSB0aGUgcG93ZXIgd2VsbCBpZiB3ZSBleHBsaWNpdGx5IGFza2VkIHRoZSBoYXJkd2FyZSB0bwogICogZW5hYmxlIGl0LCBzbyBjaGVjayBpZiBpdCdzIGVuYWJsZWQgYW5kIGFsc28gY2hlY2sgaWYgd2UndmUgcmVxdWVzdGVkIGl0IHRvCkBAIC01ODAsNyArNzI0LDcgQEAgc3RhdGljIHUzMiBnZW45X2RjX21hc2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXJldHVybiBtYXNrOwogfQogCi12b2lkIGdlbjlfc2FuaXRpemVfZGNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgZ2VuOV9zYW5pdGl6ZV9kY19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJdTMyIHZhbDsKIApAQCAtNjQwLDcgKzc4NCw3IEBAIHN0YXRpYyB2b2lkIGdlbjlfc2V0X2RjX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHN0YXRlKQogCWRldl9wcml2LT5jc3IuZGNfc3RhdGUgPSB2YWwgJiBtYXNrOwogfQogCi12b2lkIGJ4dF9lbmFibGVfZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGJ4dF9lbmFibGVfZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlhc3NlcnRfY2FuX2VuYWJsZV9kYzkoZGV2X3ByaXYpOwogCkBAIC02NTUsNyArNzk5LDcgQEAgdm9pZCBieHRfZW5hYmxlX2RjOShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZ2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0VOX0RDOSk7CiB9CiAKLXZvaWQgYnh0X2Rpc2FibGVfZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGJ4dF9kaXNhYmxlX2RjOShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJYXNzZXJ0X2Nhbl9kaXNhYmxlX2RjOShkZXZfcHJpdik7CiAKQEAgLTcwOSw3ICs4NTMsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfY2FuX2VuYWJsZV9kYzUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWFzc2VydF9jc3JfbG9hZGVkKGRldl9wcml2KTsKIH0KIAotdm9pZCBnZW45X2VuYWJsZV9kYzUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgZ2VuOV9lbmFibGVfZGM1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlhc3NlcnRfY2FuX2VuYWJsZV9kYzUoZGV2X3ByaXYpOwogCkBAIC03MzMsNyArODc3LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlhc3NlcnRfY3NyX2xvYWRlZChkZXZfcHJpdik7CiB9CiAKLXZvaWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCWFzc2VydF9jYW5fZW5hYmxlX2RjNihkZXZfcHJpdik7CiAKQEAgLTgxOSw4ICs5NjMsNyBAQCBzdGF0aWMgdm9pZCBnZW45X2Fzc2VydF9kYnVmX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAgICAgIlVuZXhwZWN0ZWQgREJ1ZiBwb3dlciBwb3dlciBzdGF0ZSAoMHglMDh4KVxuIiwgdG1wKTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCQkgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCitzdGF0aWMgdm9pZCBnZW45X2Rpc2FibGVfZGNfc3RhdGVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgY2RjbGtfc3RhdGUgPSB7fTsKIApAQCAtODQ0LDYgKzk4NywxMiBAQCBzdGF0aWMgdm9pZCBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWludGVsX2NvbWJvX3BoeV9pbml0KGRldl9wcml2KTsKIH0KIAorc3RhdGljIHZvaWQgZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQkgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCit7CisJZ2VuOV9kaXNhYmxlX2RjX3N0YXRlcyhkZXZfcHJpdik7Cit9CisKIHN0YXRpYyB2b2lkIGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCSAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCiB7CkBAIC0xMDcxLDcgKzEyMjAsNyBAQCBzdGF0aWMgdm9pZCB2bHZfZGlzcGxheV9wb3dlcl93ZWxsX2RlaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCiAJLyogbWFrZSBzdXJlIHdlJ3JlIGRvbmUgcHJvY2Vzc2luZyBkaXNwbGF5IGlycXMgKi8KLQlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRybS5pcnEpOworCWludGVsX3N5bmNocm9uaXplX2lycShkZXZfcHJpdik7CiAKIAlpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoZGV2X3ByaXYpOwogCkBAIC0xMjMyLDExICsxMzgxLDggQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2Nodl9waHlfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBUaGUgUEhZIG1heSBiZSBidXN5IHdpdGggc29tZSBpbml0aWFsIGNhbGlicmF0aW9uIGFuZCB3aGF0bm90LAogCSAqIHNvIHRoZSBwb3dlciBzdGF0ZSBjYW4gdGFrZSBhIHdoaWxlIHRvIGFjdHVhbGx5IGNoYW5nZS4KIAkgKi8KLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIERJU1BMQVlfUEhZX1NUQVRVUywKLQkJCQkgICAgcGh5X3N0YXR1c19tYXNrLAotCQkJCSAgICBwaHlfc3RhdHVzLAotCQkJCSAgICAxMCkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LCBESVNQTEFZX1BIWV9TVEFUVVMsCisJCQkJICAgICAgIHBoeV9zdGF0dXNfbWFzaywgcGh5X3N0YXR1cywgMTApKQogCQlEUk1fRVJST1IoIlVuZXhwZWN0ZWQgUEhZX1NUQVRVUyAweCUwOHgsIGV4cGVjdGVkIDB4JTA4eCAoUEhZX0NPTlRST0w9MHglMDh4KVxuIiwKIAkJCSAgSTkxNV9SRUFEKERJU1BMQVlfUEhZX1NUQVRVUykgJiBwaHlfc3RhdHVzX21hc2ssCiAJCQkgICBwaHlfc3RhdHVzLCBkZXZfcHJpdi0+Y2h2X3BoeV9jb250cm9sKTsKQEAgLTEyNjcsMTEgKzE0MTMsOCBAQCBzdGF0aWMgdm9pZCBjaHZfZHBpb19jbW5fcG93ZXJfd2VsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXZsdl9zZXRfcG93ZXJfd2VsbChkZXZfcHJpdiwgcG93ZXJfd2VsbCwgdHJ1ZSk7CiAKIAkvKiBQb2xsIGZvciBwaHlwd3Jnb29kIHNpZ25hbCAqLwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgRElTUExBWV9QSFlfU1RBVFVTLAotCQkJCSAgICBQSFlfUE9XRVJHT09EKHBoeSksCi0JCQkJICAgIFBIWV9QT1dFUkdPT0QocGh5KSwKLQkJCQkgICAgMSkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgRElTUExBWV9QSFlfU1RBVFVTLAorCQkJCSAgUEhZX1BPV0VSR09PRChwaHkpLCAxKSkKIAkJRFJNX0VSUk9SKCJEaXNwbGF5IFBIWSAlZCBpcyBub3QgcG93ZXIgdXBcbiIsIHBoeSk7CiAKIAl2bHZfZHBpb19nZXQoZGV2X3ByaXYpOwpAQCAtMTU3NSwxMiArMTcxOCwxNSBAQCBfX2FzeW5jX3B1dF9kb21haW5zX3N0YXRlX29rKHN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMpCiBzdGF0aWMgdm9pZCBwcmludF9wb3dlcl9kb21haW5zKHN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMsCiAJCQkJY29uc3QgY2hhciAqcHJlZml4LCB1NjQgbWFzaykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CisJCWNvbnRhaW5lcl9vZihwb3dlcl9kb21haW5zLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwKKwkJCSAgICAgcG93ZXJfZG9tYWlucyk7CiAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW47CiAKIAlEUk1fREVCVUdfRFJJVkVSKCIlcyAoJWx1KTpcbiIsIHByZWZpeCwgaHdlaWdodDY0KG1hc2spKTsKIAlmb3JfZWFjaF9wb3dlcl9kb21haW4oZG9tYWluLCBtYXNrKQogCQlEUk1fREVCVUdfRFJJVkVSKCIlcyB1c2VfY291bnQgJWRcbiIsCi0JCQkJIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihkb21haW4pLAorCQkJCSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoaTkxNSwgZG9tYWluKSwKIAkJCQkgcG93ZXJfZG9tYWlucy0+ZG9tYWluX3VzZV9jb3VudFtkb21haW5dKTsKIH0KIApAQCAtMTc1MCw3ICsxODk2LDcgQEAgX19pbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dF9kb21haW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogewogCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnM7CiAJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbDsKLQljb25zdCBjaGFyICpuYW1lID0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGRvbWFpbik7CisJY29uc3QgY2hhciAqbmFtZSA9IGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihkZXZfcHJpdiwgZG9tYWluKTsKIAogCXBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7CiAKQEAgLTIzMzIsMTUgKzI0NzgsMTAgQEAgdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJQklUX1VMTChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9DKSB8CQlcCiAJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAlcCiAJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAlcCi0JQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9JTykgfAkJXAogCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJXAotCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfSU8pIHwJCVwKIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0xBTkVTKSB8CVwKLQlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0lPKSB8CQlcCiAJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfRV9MQU5FUykgfAlcCi0JQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfRV9JTykgfAkJXAogCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfTEFORVMpIHwJXAotCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU8pIHwJCVwKIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQikgfAkJCVwKIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJCVwKIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfRCkgfAkJCVwKQEAgLTIzNTksNyArMjUwMCw3IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqLwogI2RlZmluZSBJQ0xfUFdfMl9QT1dFUl9ET01BSU5TICgJCQlcCiAJSUNMX1BXXzNfUE9XRVJfRE9NQUlOUyB8CQkJXAotCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRURQX1ZEU0MpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX1ZEU0NfUFcyKSB8CQlcCiAJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCiAJLyoKIAkgKiAtIEtWTVIgKEhXIGNvbnRyb2wpCkBAIC0yMzY4LDYgKzI1MDksNyBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlJQ0xfUFdfMl9QT1dFUl9ET01BSU5TIHwJCQlcCiAJQklUX1VMTChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwKIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9EUExMX0RDX09GRikgfAkJCVwKIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKIAogI2RlZmluZSBJQ0xfRERJX0lPX0FfUE9XRVJfRE9NQUlOUyAoCQkJXApAQCAtMjQwNSw2ICsyNTQ3LDg3IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogI2RlZmluZSBJQ0xfQVVYX1RCVDRfSU9fUE9XRVJfRE9NQUlOUyAoCQkJXAogCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQlQ0KSkKIAorI2RlZmluZSBUR0xfUFdfNV9QT1dFUl9ET01BSU5TICgJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9EKSB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRCkgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfRF9QQU5FTF9GSVRURVIpIHwgICAgIFwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKKworI2RlZmluZSBUR0xfUFdfNF9QT1dFUl9ET01BSU5TICgJCQlcCisJVEdMX1BXXzVfUE9XRVJfRE9NQUlOUyB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQykgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0MpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0NfUEFORUxfRklUVEVSKSB8CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKKworI2RlZmluZSBUR0xfUFdfM19QT1dFUl9ET01BSU5TICgJCQlcCisJVEdMX1BXXzRfUE9XRVJfRE9NQUlOUyB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQikgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0JfUEFORUxfRklUVEVSKSB8CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzFfTEFORVMpIHwJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMl9MQU5FUykgfAlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0xBTkVTKSB8CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzRfTEFORVMpIHwJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNV9MQU5FUykgfAlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM2X0xBTkVTKSB8CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEMxKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RDMikgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzMpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEM0KSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RDNSkgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzYpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUMSkgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQlQyKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RCVDMpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUNCkgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQlQ1KSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RCVDYpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9WR0EpIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVESU8pIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCisKKyNkZWZpbmUgVEdMX1BXXzJfUE9XRVJfRE9NQUlOUyAoCQkJXAorCVRHTF9QV18zX1BPV0VSX0RPTUFJTlMgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX1ZEU0NfUFcyKSB8CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKKworI2RlZmluZSBUR0xfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUyAoCQlcCisJVEdMX1BXXzJfUE9XRVJfRE9NQUlOUyB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX01PREVTRVQpIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCisKKyNkZWZpbmUgVEdMX0RESV9JT19UQzFfUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMxX0lPKSkKKyNkZWZpbmUgVEdMX0RESV9JT19UQzJfUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMyX0lPKSkKKyNkZWZpbmUgVEdMX0RESV9JT19UQzNfUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0lPKSkKKyNkZWZpbmUgVEdMX0RESV9JT19UQzRfUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM0X0lPKSkKKyNkZWZpbmUgVEdMX0RESV9JT19UQzVfUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM1X0lPKSkKKyNkZWZpbmUgVEdMX0RESV9JT19UQzZfUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM2X0lPKSkKKworI2RlZmluZSBUR0xfQVVYX1RDMV9JT19QT1dFUl9ET01BSU5TICgJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEMxKSkKKyNkZWZpbmUgVEdMX0FVWF9UQzJfSU9fUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RDMikpCisjZGVmaW5lIFRHTF9BVVhfVEMzX0lPX1BPV0VSX0RPTUFJTlMgKAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzMpKQorI2RlZmluZSBUR0xfQVVYX1RDNF9JT19QT1dFUl9ET01BSU5TICgJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEM0KSkKKyNkZWZpbmUgVEdMX0FVWF9UQzVfSU9fUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RDNSkpCisjZGVmaW5lIFRHTF9BVVhfVEM2X0lPX1BPV0VSX0RPTUFJTlMgKAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzYpKQorI2RlZmluZSBUR0xfQVVYX1RCVDVfSU9fUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RCVDUpKQorI2RlZmluZSBUR0xfQVVYX1RCVDZfSU9fUE9XRVJfRE9NQUlOUyAoCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RCVDYpKQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMgaTl4eF9hbHdheXNfb25fcG93ZXJfd2VsbF9vcHMgPSB7CiAJLnN5bmNfaHcgPSBpOXh4X3Bvd2VyX3dlbGxfc3luY19od19ub29wLAogCS5lbmFibGUgPSBpOXh4X2Fsd2F5c19vbl9wb3dlcl93ZWxsX25vb3AsCkBAIC0zMTEzLDcgKzMzMzYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMgaWNsX2NvbWJvX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMgPSB7CiBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMgaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMgPSB7CiAJLnN5bmNfaHcgPSBoc3dfcG93ZXJfd2VsbF9zeW5jX2h3LAogCS5lbmFibGUgPSBpY2xfdGNfcGh5X2F1eF9wb3dlcl93ZWxsX2VuYWJsZSwKLQkuZGlzYWJsZSA9IGhzd19wb3dlcl93ZWxsX2Rpc2FibGUsCisJLmRpc2FibGUgPSBpY2xfdGNfcGh5X2F1eF9wb3dlcl93ZWxsX2Rpc2FibGUsCiAJLmlzX2VuYWJsZWQgPSBoc3dfcG93ZXJfd2VsbF9lbmFibGVkLAogfTsKIApAQCAtMzM2Miw2ICszNTg1LDMzNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9kZXNjIGljbF9wb3dlcl93ZWxsc1tdID0gewogCX0sCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9kZXNjIHRnbF9wb3dlcl93ZWxsc1tdID0geworCXsKKwkJLm5hbWUgPSAiYWx3YXlzLW9uIiwKKwkJLmFsd2F5c19vbiA9IHRydWUsCisJCS5kb21haW5zID0gUE9XRVJfRE9NQUlOX01BU0ssCisJCS5vcHMgPSAmaTl4eF9hbHdheXNfb25fcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwl9LAorCXsKKwkJLm5hbWUgPSAicG93ZXIgd2VsbCAxIiwKKwkJLyogSGFuZGxlZCBieSB0aGUgRE1DIGZpcm13YXJlICovCisJCS5hbHdheXNfb24gPSB0cnVlLAorCQkuZG9tYWlucyA9IDAsCisJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBTS0xfRElTUF9QV18xLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfUFdfMSwKKwkJCS5oc3cuaGFzX2Z1c2VzID0gdHJ1ZSwKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAiREMgb2ZmIiwKKwkJLmRvbWFpbnMgPSBUR0xfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZnZW45X2RjX29mZl9wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCX0sCisJeworCQkubmFtZSA9ICJwb3dlciB3ZWxsIDIiLAorCQkuZG9tYWlucyA9IFRHTF9QV18yX1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBTS0xfRElTUF9QV18yLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfUFdfMiwKKwkJCS5oc3cuaGFzX2Z1c2VzID0gdHJ1ZSwKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAicG93ZXIgd2VsbCAzIiwKKwkJLmRvbWFpbnMgPSBUR0xfUFdfM19QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfUFdfMywKKwkJCS5oc3cuaXJxX3BpcGVfbWFzayA9IEJJVChQSVBFX0IpLAorCQkJLmhzdy5oYXNfdmdhID0gdHJ1ZSwKKwkJCS5oc3cuaGFzX2Z1c2VzID0gdHJ1ZSwKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAiRERJIEEgSU8iLAorCQkuZG9tYWlucyA9IElDTF9ERElfSU9fQV9QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93ZWxsX3JlZ3MsCisJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX0RESV9BLAorCQl9CisJfSwKKwl7CisJCS5uYW1lID0gIkRESSBCIElPIiwKKwkJLmRvbWFpbnMgPSBJQ0xfRERJX0lPX0JfUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJeworCQkJLmhzdy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAorCQkJLmhzdy5pZHggPSBJQ0xfUFdfQ1RMX0lEWF9ERElfQiwKKwkJfQorCX0sCisJeworCQkubmFtZSA9ICJEREkgQyBJTyIsCisJCS5kb21haW5zID0gSUNMX0RESV9JT19DX1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCisJCXsKKwkJCS5oc3cucmVncyA9ICZpY2xfZGRpX3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfRERJX0MsCisJCX0KKwl9LAorCXsKKwkJLm5hbWUgPSAiRERJIFRDMSBJTyIsCisJCS5kb21haW5zID0gVEdMX0RESV9JT19UQzFfUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJeworCQkJLmhzdy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAorCQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9ERElfVEMxLAorCQl9LAorCX0sCisJeworCQkubmFtZSA9ICJEREkgVEMyIElPIiwKKwkJLmRvbWFpbnMgPSBUR0xfRERJX0lPX1RDMl9QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93ZWxsX3JlZ3MsCisJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0RESV9UQzIsCisJCX0sCisJfSwKKwl7CisJCS5uYW1lID0gIkRESSBUQzMgSU8iLAorCQkuZG9tYWlucyA9IFRHTF9ERElfSU9fVEMzX1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCisJCXsKKwkJCS5oc3cucmVncyA9ICZpY2xfZGRpX3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gVEdMX1BXX0NUTF9JRFhfRERJX1RDMywKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAiRERJIFRDNCBJTyIsCisJCS5kb21haW5zID0gVEdMX0RESV9JT19UQzRfUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJeworCQkJLmhzdy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAorCQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9ERElfVEM0LAorCQl9LAorCX0sCisJeworCQkubmFtZSA9ICJEREkgVEM1IElPIiwKKwkJLmRvbWFpbnMgPSBUR0xfRERJX0lPX1RDNV9QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93ZWxsX3JlZ3MsCisJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0RESV9UQzUsCisJCX0sCisJfSwKKwl7CisJCS5uYW1lID0gIkRESSBUQzYgSU8iLAorCQkuZG9tYWlucyA9IFRHTF9ERElfSU9fVEM2X1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCisJCXsKKwkJCS5oc3cucmVncyA9ICZpY2xfZGRpX3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gVEdMX1BXX0NUTF9JRFhfRERJX1RDNiwKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAiQVVYIEEiLAorCQkuZG9tYWlucyA9IElDTF9BVVhfQV9JT19QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmljbF9jb21ib19waHlfYXV4X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCisJCXsKKwkJCS5oc3cucmVncyA9ICZpY2xfYXV4X3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfQVVYX0EsCisJCX0sCisJfSwKKwl7CisJCS5uYW1lID0gIkFVWCBCIiwKKwkJLmRvbWFpbnMgPSBJQ0xfQVVYX0JfSU9fUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaWNsX2F1eF9wb3dlcl93ZWxsX3JlZ3MsCisJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX0FVWF9CLAorCQl9LAorCX0sCisJeworCQkubmFtZSA9ICJBVVggQyIsCisJCS5kb21haW5zID0gSUNMX0FVWF9DX0lPX1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmaWNsX2NvbWJvX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJeworCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAorCQkJLmhzdy5pZHggPSBJQ0xfUFdfQ1RMX0lEWF9BVVhfQywKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAiQVVYIFRDMSIsCisJCS5kb21haW5zID0gVEdMX0FVWF9UQzFfSU9fUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZpY2xfdGNfcGh5X2F1eF9wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaWNsX2F1eF9wb3dlcl93ZWxsX3JlZ3MsCisJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQzEsCisJCQkuaHN3LmlzX3RjX3RidCA9IGZhbHNlLAorCQl9LAorCX0sCisJeworCQkubmFtZSA9ICJBVVggVEMyIiwKKwkJLmRvbWFpbnMgPSBUR0xfQVVYX1RDMl9JT19QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmljbF90Y19waHlfYXV4X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCisJCXsKKwkJCS5oc3cucmVncyA9ICZpY2xfYXV4X3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gVEdMX1BXX0NUTF9JRFhfQVVYX1RDMiwKKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCisJCX0sCisJfSwKKwl7CisJCS5uYW1lID0gIkFVWCBUQzMiLAorCQkuZG9tYWlucyA9IFRHTF9BVVhfVEMzX0lPX1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJeworCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAorCQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9BVVhfVEMzLAorCQkJLmhzdy5pc190Y190YnQgPSBmYWxzZSwKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAiQVVYIFRDNCIsCisJCS5kb21haW5zID0gVEdMX0FVWF9UQzRfSU9fUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZpY2xfdGNfcGh5X2F1eF9wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaWNsX2F1eF9wb3dlcl93ZWxsX3JlZ3MsCisJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQzQsCisJCQkuaHN3LmlzX3RjX3RidCA9IGZhbHNlLAorCQl9LAorCX0sCisJeworCQkubmFtZSA9ICJBVVggVEM1IiwKKwkJLmRvbWFpbnMgPSBUR0xfQVVYX1RDNV9JT19QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmljbF90Y19waHlfYXV4X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCisJCXsKKwkJCS5oc3cucmVncyA9ICZpY2xfYXV4X3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gVEdMX1BXX0NUTF9JRFhfQVVYX1RDNSwKKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCisJCX0sCisJfSwKKwl7CisJCS5uYW1lID0gIkFVWCBUQzYiLAorCQkuZG9tYWlucyA9IFRHTF9BVVhfVEM2X0lPX1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJeworCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAorCQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9BVVhfVEM2LAorCQkJLmhzdy5pc190Y190YnQgPSBmYWxzZSwKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAiQVVYIFRCVDEiLAorCQkuZG9tYWlucyA9IElDTF9BVVhfVEJUMV9JT19QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaWNsX2F1eF9wb3dlcl93ZWxsX3JlZ3MsCisJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQlQxLAorCQkJLmhzdy5pc190Y190YnQgPSB0cnVlLAorCQl9LAorCX0sCisJeworCQkubmFtZSA9ICJBVVggVEJUMiIsCisJCS5kb21haW5zID0gSUNMX0FVWF9UQlQyX0lPX1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCisJCXsKKwkJCS5oc3cucmVncyA9ICZpY2xfYXV4X3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gVEdMX1BXX0NUTF9JRFhfQVVYX1RCVDIsCisJCQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCisJCX0sCisJfSwKKwl7CisJCS5uYW1lID0gIkFVWCBUQlQzIiwKKwkJLmRvbWFpbnMgPSBJQ0xfQVVYX1RCVDNfSU9fUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJeworCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAorCQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9BVVhfVEJUMywKKwkJCS5oc3cuaXNfdGNfdGJ0ID0gdHJ1ZSwKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAiQVVYIFRCVDQiLAorCQkuZG9tYWlucyA9IElDTF9BVVhfVEJUNF9JT19QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaWNsX2F1eF9wb3dlcl93ZWxsX3JlZ3MsCisJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQlQ0LAorCQkJLmhzdy5pc190Y190YnQgPSB0cnVlLAorCQl9LAorCX0sCisJeworCQkubmFtZSA9ICJBVVggVEJUNSIsCisJCS5kb21haW5zID0gVEdMX0FVWF9UQlQ1X0lPX1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAorCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCisJCXsKKwkJCS5oc3cucmVncyA9ICZpY2xfYXV4X3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gVEdMX1BXX0NUTF9JRFhfQVVYX1RCVDUsCisJCQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCisJCX0sCisJfSwKKwl7CisJCS5uYW1lID0gIkFVWCBUQlQ2IiwKKwkJLmRvbWFpbnMgPSBUR0xfQVVYX1RCVDZfSU9fUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJeworCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAorCQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9BVVhfVEJUNiwKKwkJCS5oc3cuaXNfdGNfdGJ0ID0gdHJ1ZSwKKwkJfSwKKwl9LAorCXsKKwkJLm5hbWUgPSAicG93ZXIgd2VsbCA0IiwKKwkJLmRvbWFpbnMgPSBUR0xfUFdfNF9QT1dFUl9ET01BSU5TLAorCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQl7CisJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVncywKKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfUFdfNCwKKwkJCS5oc3cuaGFzX2Z1c2VzID0gdHJ1ZSwKKwkJCS5oc3cuaXJxX3BpcGVfbWFzayA9IEJJVChQSVBFX0MpLAorCQl9CisJfSwKKwl7CisJCS5uYW1lID0gInBvd2VyIHdlbGwgNSIsCisJCS5kb21haW5zID0gVEdMX1BXXzVfUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCisJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJeworCQkJLmhzdy5yZWdzID0gJmhzd19wb3dlcl93ZWxsX3JlZ3MsCisJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX1BXXzUsCisJCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCisJCQkuaHN3LmlycV9waXBlX21hc2sgPSBCSVQoUElQRV9EKSwKKwkJfSwKKwl9LAorfTsKKwogc3RhdGljIGludAogc2FuaXRpemVfZGlzYWJsZV9wb3dlcl93ZWxsX29wdGlvbihjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgaW50IGRpc2FibGVfcG93ZXJfd2VsbCkKQEAgLTM0ODksNyArNDA0MSw5IEBAIGludCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIFRoZSBlbmFibGluZyBvcmRlciB3aWxsIGJlIGZyb20gbG93ZXIgdG8gaGlnaGVyIGluZGV4ZWQgd2VsbHMsCiAJICogdGhlIGRpc2FibGluZyBvcmRlciBpcyByZXZlcnNlZC4KIAkgKi8KLQlpZiAoSVNfR0VOKGRldl9wcml2LCAxMSkpIHsKKwlpZiAoSVNfR0VOKGRldl9wcml2LCAxMikpIHsKKwkJZXJyID0gc2V0X3Bvd2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMsIHRnbF9wb3dlcl93ZWxscyk7CisJfSBlbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDExKSkgewogCQllcnIgPSBzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgaWNsX3Bvd2VyX3dlbGxzKTsKIAl9IGVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7CiAJCWVyciA9IHNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21haW5zLCBjbmxfcG93ZXJfd2VsbHMpOwpAQCAtMzc3Myw4ICs0MzI3LDcgQEAgc3RhdGljIHZvaWQgaHN3X2Rpc2FibGVfbGNwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCUk5MTVfV1JJVEUoTENQTExfQ1RMLCB2YWwpOwogCVBPU1RJTkdfUkVBRChMQ1BMTF9DVEwpOwogCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLCBMQ1BMTF9DVEwsCi0JCQkJICAgIExDUExMX1BMTF9MT0NLLCAwLCAxKSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIExDUExMX0NUTCwgTENQTExfUExMX0xPQ0ssIDEpKQogCQlEUk1fRVJST1IoIkxDUExMIHN0aWxsIGxvY2tlZFxuIik7CiAKIAl2YWwgPSBoc3dfcmVhZF9kY29tcChkZXZfcHJpdik7CkBAIC0zODI5LDggKzQzODIsNyBAQCBzdGF0aWMgdm9pZCBoc3dfcmVzdG9yZV9sY3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJdmFsICY9IH5MQ1BMTF9QTExfRElTQUJMRTsKIAlJOTE1X1dSSVRFKExDUExMX0NUTCwgdmFsKTsKIAotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwgTENQTExfQ1RMLAotCQkJCSAgICBMQ1BMTF9QTExfTE9DSywgTENQTExfUExMX0xPQ0ssIDUpKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIExDUExMX0NUTCwgTENQTExfUExMX0xPQ0ssIDUpKQogCQlEUk1fRVJST1IoIkxDUExMIG5vdCBsb2NrZWQgeWV0XG4iKTsKIAogCWlmICh2YWwgJiBMQ1BMTF9DRF9TT1VSQ0VfRkNMSykgewpAQCAtMzg3Miw3ICs0NDI0LDcgQEAgc3RhdGljIHZvaWQgaHN3X3Jlc3RvcmVfbGNwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICogRm9yIG1vcmUsIHJlYWQgIkRpc3BsYXkgU2VxdWVuY2VzIGZvciBQYWNrYWdlIEM4IiBvbiB0aGUgaGFyZHdhcmUKICAqIGRvY3VtZW50YXRpb24uCiAgKi8KLXZvaWQgaHN3X2VuYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgaHN3X2VuYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXUzMiB2YWw7CiAKQEAgLTM4ODgsNyArNDQ0MCw3IEBAIHZvaWQgaHN3X2VuYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWhzd19kaXNhYmxlX2xjcGxsKGRldl9wcml2LCB0cnVlLCB0cnVlKTsKIH0KIAotdm9pZCBoc3dfZGlzYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgaHN3X2Rpc2FibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAl1MzIgdmFsOwogCkBAIC0zOTYzLDcgKzQ1MTUsNyBAQCBzdGF0aWMgdm9pZCBza2xfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+cG93ZXJfZG9tYWluczsKIAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICp3ZWxsOwogCi0JZ2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOworCWdlbjlfZGlzYWJsZV9kY19zdGF0ZXMoZGV2X3ByaXYpOwogCiAJZ2VuOV9kYnVmX2Rpc2FibGUoZGV2X3ByaXYpOwogCkBAIC0zOTg4LDggKzQ1NDAsNyBAQCBzdGF0aWMgdm9pZCBza2xfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJdXNsZWVwX3JhbmdlKDEwLCAzMCk7CQkvKiAxMCB1cyBkZWxheSBwZXIgQnNwZWMgKi8KIH0KIAotdm9pZCBieHRfZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICAgYm9vbCByZXN1bWUpCitzdGF0aWMgdm9pZCBieHRfZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHJlc3VtZSkKIHsKIAlzdHJ1Y3QgaTkxNV9wb3dlcl9kb21haW5zICpwb3dlcl9kb21haW5zID0gJmRldl9wcml2LT5wb3dlcl9kb21haW5zOwogCXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKndlbGw7CkBAIC00MDIwLDEyICs0NTcxLDEyIEBAIHZvaWQgYnh0X2Rpc3BsYXlfY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbShkZXZfcHJpdik7CiB9CiAKLXZvaWQgYnh0X2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgYnh0X2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7CiAJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqd2VsbDsKIAotCWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKKwlnZW45X2Rpc2FibGVfZGNfc3RhdGVzKGRldl9wcml2KTsKIAogCWdlbjlfZGJ1Zl9kaXNhYmxlKGRldl9wcml2KTsKIApAQCAtNDA4NSw3ICs0NjM2LDcgQEAgc3RhdGljIHZvaWQgY25sX2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7CiAJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqd2VsbDsKIAotCWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKKwlnZW45X2Rpc2FibGVfZGNfc3RhdGVzKGRldl9wcml2KTsKIAogCS8qIDEuIERpc2FibGUgYWxsIGRpc3BsYXkgZW5naW5lIGZ1bmN0aW9ucyAtPiBhcmVhZHkgZG9uZSAqLwogCkBAIC00MTExLDggKzQ2NjIsOCBAQCBzdGF0aWMgdm9pZCBjbmxfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaW50ZWxfY29tYm9fcGh5X3VuaW5pdChkZXZfcHJpdik7CiB9CiAKLXZvaWQgaWNsX2Rpc3BsYXlfY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgIGJvb2wgcmVzdW1lKQorc3RhdGljIHZvaWQgaWNsX2Rpc3BsYXlfY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgIGJvb2wgcmVzdW1lKQogewogCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7CiAJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqd2VsbDsKQEAgLTQxNDcsMTIgKzQ2OTgsMTIgQEAgdm9pZCBpY2xfZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlpbnRlbF9jc3JfbG9hZF9wcm9ncmFtKGRldl9wcml2KTsKIH0KIAotdm9pZCBpY2xfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBpY2xfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+cG93ZXJfZG9tYWluczsKIAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICp3ZWxsOwogCi0JZ2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOworCWdlbjlfZGlzYWJsZV9kY19zdGF0ZXMoZGV2X3ByaXYpOwogCiAJLyogMS4gRGlzYWJsZSBhbGwgZGlzcGxheSBlbmdpbmUgZnVuY3Rpb25zIC0+IGFyZWFkeSBkb25lICovCiAKQEAgLTQzMzcsNyArNDg4OCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfdmVyaWZ5X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAgKgogICogSXQgd2lsbCByZXR1cm4gd2l0aCBwb3dlciBkb21haW5zIGRpc2FibGVkICh0byBiZSBlbmFibGVkIGxhdGVyIGJ5CiAgKiBpbnRlbF9wb3dlcl9kb21haW5zX2VuYWJsZSgpKSBhbmQgbXVzdCBiZSBwYWlyZWQgd2l0aAotICogaW50ZWxfcG93ZXJfZG9tYWluc19maW5pX2h3KCkuCisgKiBpbnRlbF9wb3dlcl9kb21haW5zX2RyaXZlcl9yZW1vdmUoKS4KICAqLwogdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGJvb2wgcmVzdW1lKQogewpAQCAtNDM4OSw3ICs0OTQwLDcgQEAgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGJvb2wgcmVzdW1lKQogfQogCiAvKioKLSAqIGludGVsX3Bvd2VyX2RvbWFpbnNfZmluaV9odyAtIGRlaW5pdGlhbGl6ZSBodyBwb3dlciBkb21haW4gc3RhdGUKKyAqIGludGVsX3Bvd2VyX2RvbWFpbnNfZHJpdmVyX3JlbW92ZSAtIGRlaW5pdGlhbGl6ZSBodyBwb3dlciBkb21haW4gc3RhdGUKICAqIEBpOTE1OiBpOTE1IGRldmljZSBpbnN0YW5jZQogICoKICAqIERlLWluaXRpYWxpemVzIHRoZSBkaXNwbGF5IHBvd2VyIGRvbWFpbiBIVyBzdGF0ZS4gSXQgYWxzbyBlbnN1cmVzIHRoYXQgdGhlCkBAIC00Mzk5LDcgKzQ5NTAsNyBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgYm9vbCByZXN1bWUpCiAgKiBpbnRlbF9wb3dlcl9kb21haW5zX2Rpc2FibGUoKSkgYW5kIG11c3QgYmUgcGFpcmVkIHdpdGgKICAqIGludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdF9odygpLgogICovCi12b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfZmluaV9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3ZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmIF9fbWF5YmVfdW51c2VkID0KIAkJZmV0Y2hfYW5kX3plcm8oJmk5MTUtPnBvd2VyX2RvbWFpbnMud2FrZXJlZik7CkBAIC00NTUzLDcgKzUxMDQsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2R1bXBfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCQlmb3JfZWFjaF9wb3dlcl9kb21haW4oZG9tYWluLCBwb3dlcl93ZWxsLT5kZXNjLT5kb21haW5zKQogCQkJRFJNX0RFQlVHX0RSSVZFUigiICAlLTIzcyAlZFxuIiwKLQkJCQkJIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihkb21haW4pLAorCQkJCQkgaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGk5MTUsCisJCQkJCQkJCQlkb21haW4pLAogCQkJCQkgcG93ZXJfZG9tYWlucy0+ZG9tYWluX3VzZV9jb3VudFtkb21haW5dKTsKIAl9CiB9CkBAIC00NjIzLDMgKzUxNzUsNTggQEAgc3RhdGljIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc192ZXJpZnlfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB9CiAKICNlbmRpZgorCit2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfc3VzcGVuZF9sYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEgfHwgSVNfR0VOOV9MUChpOTE1KSkKKwkJYnh0X2VuYWJsZV9kYzkoaTkxNSk7CisJZWxzZSBpZiAoSVNfSEFTV0VMTChpOTE1KSB8fCBJU19CUk9BRFdFTEwoaTkxNSkpCisJCWhzd19lbmFibGVfcGM4KGk5MTUpOworfQorCit2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcmVzdW1lX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEgfHwgSVNfR0VOOV9MUChpOTE1KSkgeworCQlnZW45X3Nhbml0aXplX2RjX3N0YXRlKGk5MTUpOworCQlieHRfZGlzYWJsZV9kYzkoaTkxNSk7CisJfSBlbHNlIGlmIChJU19IQVNXRUxMKGk5MTUpIHx8IElTX0JST0FEV0VMTChpOTE1KSkgeworCQloc3dfZGlzYWJsZV9wYzgoaTkxNSk7CisJfQorfQorCit2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDExKSB7CisJCWljbF9kaXNwbGF5X2NvcmVfdW5pbml0KGk5MTUpOworCQlieHRfZW5hYmxlX2RjOShpOTE1KTsKKwl9IGVsc2UgaWYgKElTX0dFTjlfTFAoaTkxNSkpIHsKKwkJYnh0X2Rpc3BsYXlfY29yZV91bmluaXQoaTkxNSk7CisJCWJ4dF9lbmFibGVfZGM5KGk5MTUpOworCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChpOTE1KSB8fCBJU19CUk9BRFdFTEwoaTkxNSkpIHsKKwkJaHN3X2VuYWJsZV9wYzgoaTkxNSk7CisJfQorfQorCit2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpIHsKKwkJYnh0X2Rpc2FibGVfZGM5KGk5MTUpOworCQlpY2xfZGlzcGxheV9jb3JlX2luaXQoaTkxNSwgdHJ1ZSk7CisJCWlmIChpOTE1LT5jc3IuZG1jX3BheWxvYWQpIHsKKwkJCWlmIChpOTE1LT5jc3IuYWxsb3dlZF9kY19tYXNrICYKKwkJCSAgICBEQ19TVEFURV9FTl9VUFRPX0RDNikKKwkJCQlza2xfZW5hYmxlX2RjNihpOTE1KTsKKwkJCWVsc2UgaWYgKGk5MTUtPmNzci5hbGxvd2VkX2RjX21hc2sgJgorCQkJCSBEQ19TVEFURV9FTl9VUFRPX0RDNSkKKwkJCQlnZW45X2VuYWJsZV9kYzUoaTkxNSk7CisJCX0KKwl9IGVsc2UgaWYgKElTX0dFTjlfTFAoaTkxNSkpIHsKKwkJYnh0X2Rpc2FibGVfZGM5KGk5MTUpOworCQlieHRfZGlzcGxheV9jb3JlX2luaXQoaTkxNSwgdHJ1ZSk7CisJCWlmIChpOTE1LT5jc3IuZG1jX3BheWxvYWQgJiYKKwkJICAgIChpOTE1LT5jc3IuYWxsb3dlZF9kY19tYXNrICYgRENfU1RBVEVfRU5fVVBUT19EQzUpKQorCQkJZ2VuOV9lbmFibGVfZGM1KGk5MTUpOworCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChpOTE1KSB8fCBJU19CUk9BRFdFTEwoaTkxNSkpIHsKKwkJaHN3X2Rpc2FibGVfcGM4KGk5MTUpOworCX0KK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmgKaW5kZXggZmY1N2IwYS4uYTUwNjA1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmgKQEAgLTE4LDI4ICsxOCw0NyBAQCBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHsKIAlQT1dFUl9ET01BSU5fUElQRV9BLAogCVBPV0VSX0RPTUFJTl9QSVBFX0IsCiAJUE9XRVJfRE9NQUlOX1BJUEVfQywKKwlQT1dFUl9ET01BSU5fUElQRV9ELAogCVBPV0VSX0RPTUFJTl9QSVBFX0FfUEFORUxfRklUVEVSLAogCVBPV0VSX0RPTUFJTl9QSVBFX0JfUEFORUxfRklUVEVSLAogCVBPV0VSX0RPTUFJTl9QSVBFX0NfUEFORUxfRklUVEVSLAorCVBPV0VSX0RPTUFJTl9QSVBFX0RfUEFORUxfRklUVEVSLAogCVBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0EsCiAJUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQiwKIAlQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9DLAorCVBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0QsCiAJUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRURQLAotCVBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0VEUF9WRFNDLAorCS8qIFZEU0Mvam9pbmluZyBmb3IgVFJBTlNDT0RFUl9FRFAgKElDTCkgb3IgVFJBTlNDT0RFUl9BIChUR0wpICovCisJUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfVkRTQ19QVzIsCiAJUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRFNJX0EsCiAJUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRFNJX0MsCiAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0FfTEFORVMsCiAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMsCiAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMsCiAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMsCisJUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMV9MQU5FUyA9IFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0xBTkVTLAogCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0xBTkVTLAorCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzJfTEFORVMgPSBQT1dFUl9ET01BSU5fUE9SVF9ERElfRV9MQU5FUywKIAlQT1dFUl9ET01BSU5fUE9SVF9ERElfRl9MQU5FUywKKwlQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0xBTkVTID0gUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfTEFORVMsCisJUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNF9MQU5FUywKKwlQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM1X0xBTkVTLAorCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzZfTEFORVMsCiAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0FfSU8sCiAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfSU8sCiAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfSU8sCiAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfSU8sCisJUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMV9JTyA9IFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0lPLAogCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0lPLAorCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzJfSU8gPSBQT1dFUl9ET01BSU5fUE9SVF9ERElfRV9JTywKIAlQT1dFUl9ET01BSU5fUE9SVF9ERElfRl9JTywKKwlQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0lPID0gUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU8sCisJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0dfSU8sCisJUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNF9JTyA9IFBPV0VSX0RPTUFJTl9QT1JUX0RESV9HX0lPLAorCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9IX0lPLAorCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzVfSU8gPSBQT1dFUl9ET01BSU5fUE9SVF9ERElfSF9JTywKKwlQT1dFUl9ET01BSU5fUE9SVF9ERElfSV9JTywKKwlQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM2X0lPID0gUE9XRVJfRE9NQUlOX1BPUlRfRERJX0lfSU8sCiAJUE9XRVJfRE9NQUlOX1BPUlRfRFNJLAogCVBPV0VSX0RPTUFJTl9QT1JUX0NSVCwKIAlQT1dFUl9ET01BSU5fUE9SVF9PVEhFUiwKQEAgLTQ5LDIxICs2OCw1MSBAQCBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHsKIAlQT1dFUl9ET01BSU5fQVVYX0IsCiAJUE9XRVJfRE9NQUlOX0FVWF9DLAogCVBPV0VSX0RPTUFJTl9BVVhfRCwKKwlQT1dFUl9ET01BSU5fQVVYX1RDMSA9IFBPV0VSX0RPTUFJTl9BVVhfRCwKIAlQT1dFUl9ET01BSU5fQVVYX0UsCisJUE9XRVJfRE9NQUlOX0FVWF9UQzIgPSBQT1dFUl9ET01BSU5fQVVYX0UsCiAJUE9XRVJfRE9NQUlOX0FVWF9GLAorCVBPV0VSX0RPTUFJTl9BVVhfVEMzID0gUE9XRVJfRE9NQUlOX0FVWF9GLAorCVBPV0VSX0RPTUFJTl9BVVhfVEM0LAorCVBPV0VSX0RPTUFJTl9BVVhfVEM1LAorCVBPV0VSX0RPTUFJTl9BVVhfVEM2LAogCVBPV0VSX0RPTUFJTl9BVVhfSU9fQSwKIAlQT1dFUl9ET01BSU5fQVVYX1RCVDEsCiAJUE9XRVJfRE9NQUlOX0FVWF9UQlQyLAogCVBPV0VSX0RPTUFJTl9BVVhfVEJUMywKIAlQT1dFUl9ET01BSU5fQVVYX1RCVDQsCisJUE9XRVJfRE9NQUlOX0FVWF9UQlQ1LAorCVBPV0VSX0RPTUFJTl9BVVhfVEJUNiwKIAlQT1dFUl9ET01BSU5fR01CVVMsCiAJUE9XRVJfRE9NQUlOX01PREVTRVQsCiAJUE9XRVJfRE9NQUlOX0dUX0lSUSwKKwlQT1dFUl9ET01BSU5fRFBMTF9EQ19PRkYsCiAJUE9XRVJfRE9NQUlOX0lOSVQsCiAKIAlQT1dFUl9ET01BSU5fTlVNLAogfTsKIAorLyoKKyAqIGk5MTVfcG93ZXJfd2VsbF9pZDoKKyAqCisgKiBJRHMgdXNlZCB0byBsb29rIHVwIHBvd2VyIHdlbGxzLiBQb3dlciB3ZWxscyBhY2Nlc3NlZCBkaXJlY3RseSBieXBhc3NpbmcKKyAqIHRoZSBwb3dlciBkb21haW5zIGZyYW1ld29yayBtdXN0IGJlIGFzc2lnbmVkIGEgdW5pcXVlIElELiBUaGUgcmVzdCBvZiBwb3dlcgorICogd2VsbHMgbXVzdCBiZSBhc3NpZ25lZCBESVNQX1BXX0lEX05PTkUuCisgKi8KK2VudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKKwlESVNQX1BXX0lEX05PTkUsCisKKwlWTFZfRElTUF9QV19ESVNQMkQsCisJQlhUX0RJU1BfUFdfRFBJT19DTU5fQSwKKwlWTFZfRElTUF9QV19EUElPX0NNTl9CQywKKwlHTEtfRElTUF9QV19EUElPX0NNTl9DLAorCUNIVl9ESVNQX1BXX0RQSU9fQ01OX0QsCisJSFNXX0RJU1BfUFdfR0xPQkFMLAorCVNLTF9ESVNQX1BXX01JU0NfSU8sCisJU0tMX0RJU1BfUFdfMSwKKwlTS0xfRElTUF9QV18yLAorfTsKKwogI2RlZmluZSBQT1dFUl9ET01BSU5fUElQRShwaXBlKSAoKHBpcGUpICsgUE9XRVJfRE9NQUlOX1BJUEVfQSkKICNkZWZpbmUgUE9XRVJfRE9NQUlOX1BJUEVfUEFORUxfRklUVEVSKHBpcGUpIFwKIAkJKChwaXBlKSArIFBPV0VSX0RPTUFJTl9QSVBFX0FfUEFORUxfRklUVEVSKQpAQCAtMjA0LDMwICsyNTMsMjQgQEAgc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyB7CiAJZm9yX2VhY2hfcG93ZXJfd2VsbF9yZXZlcnNlKF9fZGV2X3ByaXYsIF9fcG93ZXJfd2VsbCkJCSAgICAgICAgXAogCQlmb3JfZWFjaF9pZigoX19wb3dlcl93ZWxsKS0+ZGVzYy0+ZG9tYWlucyAmIChfX2RvbWFpbl9tYXNrKSkKIAotdm9pZCBza2xfZW5hYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBnZW45X3Nhbml0aXplX2RjX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGJ4dF9lbmFibGVfZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGJ4dF9kaXNhYmxlX2RjOShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBnZW45X2VuYWJsZV9kYzUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQogaW50IGludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCByZXN1bWUpOwotdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2ZpbmlfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaWNsX2Rpc3BsYXlfY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCByZXN1bWUpOwotdm9pZCBpY2xfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJIGVudW0gaTkxNV9kcm1fc3VzcGVuZF9tb2RlKTsKIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaHN3X2VuYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaHN3X2Rpc2FibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGJ4dF9kaXNwbGF5X2NvcmVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgcmVzdW1lKTsKLXZvaWQgYnh0X2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKwordm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cit2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcmVzdW1lX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogCiBjb25zdCBjaGFyICoKLWludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbik7CitpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgICAgICAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pOwogCiBib29sIGludGVsX2Rpc3BsYXlfcG93ZXJfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQ5YWJhZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCkBAIC0wLDAgKzEsMTUyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwNiBEYXZlIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KKyAqIENvcHlyaWdodCAoYykgMjAwNy0yMDA4IEludGVsIENvcnBvcmF0aW9uCisgKiAgIEplc3NlIEJhcm5lcyA8amVzc2UuYmFybmVzQGludGVsLmNvbT4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBfX0lOVEVMX0RJU1BMQVlfVFlQRVNfSF9fCisjZGVmaW5lIF9fSU5URUxfRElTUExBWV9UWVBFU19IX18KKworI2luY2x1ZGUgPGxpbnV4L2FzeW5jLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQvY2xvY2suaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcF9tc3RfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fcmVjdC5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CisjaW5jbHVkZSA8ZHJtL2k5MTVfbWVpX2hkY3BfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8bWVkaWEvY2VjLW5vdGlmaWVyLmg+CisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCitzdHJ1Y3QgZHJtX3ByaW50ZXI7CisKKy8qCisgKiBEaXNwbGF5IHJlbGF0ZWQgc3R1ZmYKKyAqLworCisvKiB0aGVzZSBhcmUgb3V0cHV0cyBmcm9tIHRoZSBjaGlwIC0gaW50ZWdyYXRlZCBvbmx5CisgICBleHRlcm5hbCBjaGlwcyBhcmUgdmlhIERWTyBvciBTRFZPIG91dHB1dCAqLworZW51bSBpbnRlbF9vdXRwdXRfdHlwZSB7CisJSU5URUxfT1VUUFVUX1VOVVNFRCA9IDAsCisJSU5URUxfT1VUUFVUX0FOQUxPRyA9IDEsCisJSU5URUxfT1VUUFVUX0RWTyA9IDIsCisJSU5URUxfT1VUUFVUX1NEVk8gPSAzLAorCUlOVEVMX09VVFBVVF9MVkRTID0gNCwKKwlJTlRFTF9PVVRQVVRfVFZPVVQgPSA1LAorCUlOVEVMX09VVFBVVF9IRE1JID0gNiwKKwlJTlRFTF9PVVRQVVRfRFAgPSA3LAorCUlOVEVMX09VVFBVVF9FRFAgPSA4LAorCUlOVEVMX09VVFBVVF9EU0kgPSA5LAorCUlOVEVMX09VVFBVVF9EREkgPSAxMCwKKwlJTlRFTF9PVVRQVVRfRFBfTVNUID0gMTEsCit9OworCitlbnVtIGhkbWlfZm9yY2VfYXVkaW8geworCUhETUlfQVVESU9fT0ZGX0RWSSA9IC0yLAkvKiBubyBhdXggZGF0YSBmb3IgSERNSS1EVkkgY29udmVydGVyICovCisJSERNSV9BVURJT19PRkYsCQkJLyogZm9yY2UgdHVybiBvZmYgSERNSSBhdWRpbyAqLworCUhETUlfQVVESU9fQVVUTywJCS8qIHRydXN0IEVESUQgKi8KKwlIRE1JX0FVRElPX09OLAkJCS8qIGZvcmNlIHR1cm4gb24gSERNSSBhdWRpbyAqLworfTsKKworLyogIkJyb2FkY2FzdCBSR0IiIHByb3BlcnR5ICovCitlbnVtIGludGVsX2Jyb2FkY2FzdF9yZ2IgeworCUlOVEVMX0JST0FEQ0FTVF9SR0JfQVVUTywKKwlJTlRFTF9CUk9BRENBU1RfUkdCX0ZVTEwsCisJSU5URUxfQlJPQURDQVNUX1JHQl9MSU1JVEVELAorfTsKKworc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyIHsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGJhc2U7CisJc3RydWN0IGludGVsX2Zyb250YnVmZmVyICpmcm9udGJ1ZmZlcjsKKwlzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyByb3RfaW5mbzsKKworCS8qIGZvciBlYWNoIHBsYW5lIGluIHRoZSBub3JtYWwgR1RUIHZpZXcgKi8KKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBpbnQgeCwgeTsKKwl9IG5vcm1hbFsyXTsKKwkvKiBmb3IgZWFjaCBwbGFuZSBpbiB0aGUgcm90YXRlZCBHVFQgdmlldyAqLworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGludCB4LCB5OworCQl1bnNpZ25lZCBpbnQgcGl0Y2g7IC8qIHBpeGVscyAqLworCX0gcm90YXRlZFsyXTsKK307CisKK3N0cnVjdCBpbnRlbF9mYmRldiB7CisJc3RydWN0IGRybV9mYl9oZWxwZXIgaGVscGVyOworCXN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqZmI7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdW5zaWduZWQgbG9uZyB2bWFfZmxhZ3M7CisJYXN5bmNfY29va2llX3QgY29va2llOworCWludCBwcmVmZXJyZWRfYnBwOworCisJLyogV2hldGhlciBvciBub3QgZmJkZXYgaHBkIHByb2Nlc3NpbmcgaXMgdGVtcG9yYXJpbHkgc3VzcGVuZGVkICovCisJYm9vbCBocGRfc3VzcGVuZGVkIDogMTsKKwkvKiBTZXQgd2hlbiBhIGhvdHBsdWcgd2FzIHJlY2VpdmVkIHdoaWxlIEhQRCBwcm9jZXNzaW5nIHdhcworCSAqIHN1c3BlbmRlZAorCSAqLworCWJvb2wgaHBkX3dhaXRpbmcgOiAxOworCisJLyogUHJvdGVjdHMgaHBkX3N1c3BlbmRlZCAqLworCXN0cnVjdCBtdXRleCBocGRfbG9jazsKK307CisKK2VudW0gaW50ZWxfaG90cGx1Z19zdGF0ZSB7CisJSU5URUxfSE9UUExVR19VTkNIQU5HRUQsCisJSU5URUxfSE9UUExVR19DSEFOR0VELAorCUlOVEVMX0hPVFBMVUdfUkVUUlksCit9OworCitzdHJ1Y3QgaW50ZWxfZW5jb2RlciB7CisJc3RydWN0IGRybV9lbmNvZGVyIGJhc2U7CisKKwllbnVtIGludGVsX291dHB1dF90eXBlIHR5cGU7CisJZW51bSBwb3J0IHBvcnQ7CisJdW5zaWduZWQgaW50IGNsb25lYWJsZTsKKwllbnVtIGludGVsX2hvdHBsdWdfc3RhdGUgKCpob3RwbHVnKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCQkJICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJICAgIGJvb2wgaXJxX3JlY2VpdmVkKTsKKwllbnVtIGludGVsX291dHB1dF90eXBlICgqY29tcHV0ZV9vdXRwdXRfdHlwZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwKKwkJCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCisJCQkJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqKTsKKwlpbnQgKCpjb21wdXRlX2NvbmZpZykoc3RydWN0IGludGVsX2VuY29kZXIgKiwKKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCisJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqKTsKKwl2b2lkICgqdXBkYXRlX3ByZXBhcmUpKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKiwKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAorCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICopOworCXZvaWQgKCpwcmVfcGxsX2VuYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOworCXZvaWQgKCpwcmVfZW5hYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAorCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKKwkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOworCXZvaWQgKCplbmFibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAorCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7CisJdm9pZCAoKnVwZGF0ZV9jb21wbGV0ZSkoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqLAorCQkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICosCisJCQkJc3RydWN0IGludGVsX2NydGMgKik7CisJdm9pZCAoKmRpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCisJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAorCQkJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7CisJdm9pZCAoKnBvc3RfZGlzYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwKKwkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKKwkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7CisJdm9pZCAoKnBvc3RfcGxsX2Rpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCisJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCisJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOworCXZvaWQgKCp1cGRhdGVfcGlwZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwKKwkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAorCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOworCS8qIFJlYWQgb3V0IHRoZSBjdXJyZW50IGh3IHN0YXRlIG9mIHRoaXMgY29ubmVjdG9yLCByZXR1cm5pbmcgdHJ1ZSBpZgorCSAqIHRoZSBlbmNvZGVyIGlzIGFjdGl2ZS4gSWYgdGhlIGVuY29kZXIgaXMgZW5hYmxlZCBpdCBhbHNvIHNldCB0aGUgcGlwZQorCSAqIGl0IGlzIGNvbm5lY3RlZCB0byBpbiB0aGUgcGlwZSBwYXJhbWV0ZXIuICovCisJYm9vbCAoKmdldF9od19zdGF0ZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwgZW51bSBwaXBlICpwaXBlKTsKKwkvKiBSZWNvbnN0cnVjdHMgdGhlIGVxdWl2YWxlbnQgbW9kZSBmbGFncyBmb3IgdGhlIGN1cnJlbnQgaGFyZHdhcmUKKwkgKiBzdGF0ZS4gVGhpcyBtdXN0IGJlIGNhbGxlZCBfYWZ0ZXJfIGRpc3BsYXktPmdldF9waXBlX2NvbmZpZyBoYXMKKwkgKiBwcmUtZmlsbGVkIHRoZSBwaXBlIGNvbmZpZy4gTm90ZSB0aGF0IGludGVsX2VuY29kZXItPmJhc2UuY3J0YyBtdXN0CisJICogYmUgc2V0IGNvcnJlY3RseSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLiAqLworCXZvaWQgKCpnZXRfY29uZmlnKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAorCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKKwkvKgorCSAqIEFjcXVpcmVzIHRoZSBwb3dlciBkb21haW5zIG5lZWRlZCBmb3IgYW4gYWN0aXZlIGVuY29kZXIgZHVyaW5nCisJICogaGFyZHdhcmUgc3RhdGUgcmVhZG91dC4KKwkgKi8KKwl2b2lkICgqZ2V0X3Bvd2VyX2RvbWFpbnMpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOworCS8qCisJICogQ2FsbGVkIGR1cmluZyBzeXN0ZW0gc3VzcGVuZCBhZnRlciBhbGwgcGVuZGluZyByZXF1ZXN0cyBmb3IgdGhlCisJICogZW5jb2RlciBhcmUgZmx1c2hlZCAoZm9yIGV4YW1wbGUgZm9yIERQIEFVWCB0cmFuc2FjdGlvbnMpIGFuZAorCSAqIGRldmljZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZC4KKwkgKi8KKwl2b2lkICgqc3VzcGVuZCkoc3RydWN0IGludGVsX2VuY29kZXIgKik7CisJaW50IGNydGNfbWFzazsKKwllbnVtIGhwZF9waW4gaHBkX3BpbjsKKwllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKKwkvKiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGF1ZGlvIGNvbXBvbmVudDsgcHJvdGVjdGVkIGJ5IGF2X211dGV4ICovCisJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3IgKmF1ZGlvX2Nvbm5lY3RvcjsKK307CisKK3N0cnVjdCBpbnRlbF9wYW5lbCB7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRvd25jbG9ja19tb2RlOworCisJLyogYmFja2xpZ2h0ICovCisJc3RydWN0IHsKKwkJYm9vbCBwcmVzZW50OworCQl1MzIgbGV2ZWw7CisJCXUzMiBtaW47CisJCXUzMiBtYXg7CisJCWJvb2wgZW5hYmxlZDsKKwkJYm9vbCBjb21iaW5hdGlvbl9tb2RlOwkvKiBnZW4gMi80IG9ubHkgKi8KKwkJYm9vbCBhY3RpdmVfbG93X3B3bTsKKwkJYm9vbCBhbHRlcm5hdGVfcHdtX2luY3JlbWVudDsJLyogbHB0KyAqLworCisJCS8qIFBXTSBjaGlwICovCisJCWJvb2wgdXRpbF9waW5fYWN0aXZlX2xvdzsJLyogYnh0KyAqLworCQl1OCBjb250cm9sbGVyOwkJLyogYnh0KyBvbmx5ICovCisJCXN0cnVjdCBwd21fZGV2aWNlICpwd207CisKKwkJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmRldmljZTsKKworCQkvKiBDb25uZWN0b3IgYW5kIHBsYXRmb3JtIHNwZWNpZmljIGJhY2tsaWdodCBmdW5jdGlvbnMgKi8KKwkJaW50ICgqc2V0dXApKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHBpcGUpOworCQl1MzIgKCpnZXQpKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CisJCXZvaWQgKCpzZXQpKGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLCB1MzIgbGV2ZWwpOworCQl2b2lkICgqZGlzYWJsZSkoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOworCQl2b2lkICgqZW5hYmxlKShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7CisJCXUzMiAoKmh6X3RvX3B3bSkoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgaHopOworCQl2b2lkICgqcG93ZXIpKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKiwgYm9vbCBlbmFibGUpOworCX0gYmFja2xpZ2h0OworfTsKKworc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydDsKKworZW51bSBjaGVja19saW5rX3Jlc3BvbnNlIHsKKwlIRENQX0xJTktfUFJPVEVDVEVECT0gMCwKKwlIRENQX1RPUE9MT0dZX0NIQU5HRSwKKwlIRENQX0xJTktfSU5URUdSSVRZX0ZBSUxVUkUsCisJSERDUF9SRUFVVEhfUkVRVUVTVAorfTsKKworLyoKKyAqIFRoaXMgc3RydWN0dXJlIHNlcnZlcyBhcyBhIHRyYW5zbGF0aW9uIGxheWVyIGJldHdlZW4gdGhlIGdlbmVyaWMgSERDUCBjb2RlCisgKiBhbmQgdGhlIGJ1cy1zcGVjaWZpYyBjb2RlLiBXaGF0IHRoYXQgbWVhbnMgaXMgdGhhdCBIRENQIG92ZXIgSERNSSBkaWZmZXJzCisgKiBmcm9tIEhEQ1Agb3ZlciBEUCwgc28gdG8gYWNjb3VudCBmb3IgdGhlc2UgZGlmZmVyZW5jZXMsIHdlIG5lZWQgdG8KKyAqIGNvbW11bmljYXRlIHdpdGggdGhlIHJlY2VpdmVyIHRocm91Z2ggdGhpcyBzaGltLgorICoKKyAqIEZvciBjb21wbGV0ZW5lc3MsIHRoZSAyIGJ1c2VzIGRpZmZlciBpbiB0aGUgZm9sbG93aW5nIHdheXM6CisgKgktIERQIEFVWCB2cy4gRERDCisgKgkJSERDUCByZWdpc3RlcnMgb24gdGhlIHJlY2VpdmVyIGFyZSBzZXQgdmlhIERQIEFVWCBmb3IgRFAsIGFuZAorICoJCXRoZXkgYXJlIHNldCB2aWEgRERDIGZvciBIRE1JLgorICoJLSBSZWNlaXZlciByZWdpc3RlciBvZmZzZXRzCisgKgkJVGhlIG9mZnNldHMgb2YgdGhlIHJlZ2lzdGVycyBhcmUgZGlmZmVyZW50IGZvciBEUCB2cy4gSERNSQorICoJLSBSZWNlaXZlciByZWdpc3RlciBtYXNrcy9vZmZzZXRzCisgKgkJRm9yIGluc3RhbmNlLCB0aGUgcmVhZHkgYml0IGZvciB0aGUgS1NWIGZpZm8gaXMgaW4gYSBkaWZmZXJlbnQKKyAqCQlwbGFjZSBvbiBEUCB2cyBIRE1JCisgKgktIFJlY2VpdmVyIHJlZ2lzdGVyIG5hbWVzCisgKgkJU2VyaW91c2x5LiBJbiB0aGUgRFAgc3BlYywgdGhlIDE2LWJpdCByZWdpc3RlciBjb250YWluaW5nCisgKgkJZG93bnN0cmVhbSBpbmZvcm1hdGlvbiBpcyBjYWxsZWQgQklORk8sIG9uIEhETUkgaXQncyBjYWxsZWQKKyAqCQlCU1RBVFVTLiBUbyBjb25mdXNlIG1hdHRlcnMgZnVydGhlciwgRFAgaGFzIGEgQlNUQVRVUyByZWdpc3RlcgorICoJCXdpdGggYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBkZWZpbml0aW9uLgorICoJLSBLU1YgRklGTworICoJCU9uIEhETUksIHRoZSBrc3YgZmlmbyBpcyByZWFkIGFsbCBhdCBvbmNlLCB3aGVyZWFzIG9uIERQIGl0IG11c3QKKyAqCQliZSByZWFkIDMga2V5cyBhdCBhIHRpbWUKKyAqCS0gQWtzdiBvdXRwdXQKKyAqCQlTaW5jZSBBa3N2IGlzIGhpZGRlbiBpbiBoYXJkd2FyZSwgdGhlcmUncyBkaWZmZXJlbnQgcHJvY2VkdXJlcworICoJCXRvIHNlbmQgaXQgb3ZlciBEUCBBVVggdnMgRERDCisgKi8KK3N0cnVjdCBpbnRlbF9oZGNwX3NoaW0geworCS8qIE91dHB1dHMgdGhlIHRyYW5zbWl0dGVyJ3MgQW4gYW5kIEFrc3YgdmFsdWVzIHRvIHRoZSByZWNlaXZlci4gKi8KKwlpbnQgKCp3cml0ZV9hbl9ha3N2KShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgdTggKmFuKTsKKworCS8qIFJlYWRzIHRoZSByZWNlaXZlcidzIGtleSBzZWxlY3Rpb24gdmVjdG9yICovCisJaW50ICgqcmVhZF9ia3N2KShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgdTggKmJrc3YpOworCisJLyoKKwkgKiBSZWFkcyBCSU5GTyBmcm9tIERQIHJlY2VpdmVycyBhbmQgQlNUQVRVUyBmcm9tIEhETUkgcmVjZWl2ZXJzLiBUaGUKKwkgKiBkZWZpbml0aW9ucyBhcmUgdGhlIHNhbWUgaW4gdGhlIHJlc3BlY3RpdmUgc3BlY3MsIGJ1dCB0aGUgbmFtZXMgYXJlCisJICogZGlmZmVyZW50LiBDYWxsIGl0IEJTVEFUVVMgc2luY2UgdGhhdCdzIHRoZSBuYW1lIHRoZSBIRE1JIHNwZWMKKwkgKiB1c2VzIGFuZCBpdCB3YXMgdGhlcmUgZmlyc3QuCisJICovCisJaW50ICgqcmVhZF9ic3RhdHVzKShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJCSAgICB1OCAqYnN0YXR1cyk7CisKKwkvKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSByZXBlYXRlciBpcyBwcmVzZW50IGRvd25zdHJlYW0gKi8KKwlpbnQgKCpyZXBlYXRlcl9wcmVzZW50KShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJCQlib29sICpyZXBlYXRlcl9wcmVzZW50KTsKKworCS8qIFJlYWRzIHRoZSByZWNlaXZlcidzIFJpJyB2YWx1ZSAqLworCWludCAoKnJlYWRfcmlfcHJpbWUpKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LCB1OCAqcmkpOworCisJLyogRGV0ZXJtaW5lcyBpZiB0aGUgcmVjZWl2ZXIncyBLU1YgRklGTyBpcyByZWFkeSBmb3IgY29uc3VtcHRpb24gKi8KKwlpbnQgKCpyZWFkX2tzdl9yZWFkeSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgICBib29sICprc3ZfcmVhZHkpOworCisJLyogUmVhZHMgdGhlIGtzdiBmaWZvIGZvciBudW1fZG93bnN0cmVhbSBkZXZpY2VzICovCisJaW50ICgqcmVhZF9rc3ZfZmlmbykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgIGludCBudW1fZG93bnN0cmVhbSwgdTggKmtzdl9maWZvKTsKKworCS8qIFJlYWRzIGEgMzItYml0IHBhcnQgb2YgVicgZnJvbSB0aGUgcmVjZWl2ZXIgKi8KKwlpbnQgKCpyZWFkX3ZfcHJpbWVfcGFydCkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkJIGludCBpLCB1MzIgKnBhcnQpOworCisJLyogRW5hYmxlcyBIRENQIHNpZ25hbGxpbmcgb24gdGhlIHBvcnQgKi8KKwlpbnQgKCp0b2dnbGVfc2lnbmFsbGluZykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkJIGJvb2wgZW5hYmxlKTsKKworCS8qIEVuc3VyZXMgdGhlIGxpbmsgaXMgc3RpbGwgcHJvdGVjdGVkICovCisJYm9vbCAoKmNoZWNrX2xpbmspKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KTsKKworCS8qIERldGVjdHMgcGFuZWwncyBoZGNwIGNhcGFiaWxpdHkuIFRoaXMgaXMgb3B0aW9uYWwgZm9yIEhETUkuICovCisJaW50ICgqaGRjcF9jYXBhYmxlKShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJCSAgICBib29sICpoZGNwX2NhcGFibGUpOworCisJLyogSERDUCBhZGFwdGF0aW9uKERQL0hETUkpIHJlcXVpcmVkIG9uIHRoZSBwb3J0ICovCisJZW51bSBoZGNwX3dpcmVkX3Byb3RvY29sIHByb3RvY29sOworCisJLyogRGV0ZWN0cyB3aGV0aGVyIHNpbmsgaXMgSERDUDIuMiBjYXBhYmxlICovCisJaW50ICgqaGRjcF8yXzJfY2FwYWJsZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkJYm9vbCAqY2FwYWJsZSk7CisKKwkvKiBXcml0ZSBIRENQMi4yIG1lc3NhZ2VzICovCisJaW50ICgqd3JpdGVfMl8yX21zZykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgIHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpOworCisJLyogUmVhZCBIRENQMi4yIG1lc3NhZ2VzICovCisJaW50ICgqcmVhZF8yXzJfbXNnKShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJCSAgICB1OCBtc2dfaWQsIHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpOworCisJLyoKKwkgKiBJbXBsZW1lbnRhdGlvbiBvZiBEUCBIRENQMi4yIEVycmF0YSBmb3IgdGhlIGNvbW11bmljYXRpb24gb2Ygc3RyZWFtCisJICogdHlwZSB0byBSZWNlaXZlcnMuIEluIERQIEhEQ1AyLjIgU3RyZWFtIHR5cGUgaXMgb25lIG9mIHRoZSBpbnB1dCB0bworCSAqIHRoZSBIRENQMi4yIENpcGhlciBmb3IgRW4vRGUtQ3J5cHRpb24uIE5vdCBhcHBsaWNhYmxlIGZvciBIRE1JLgorCSAqLworCWludCAoKmNvbmZpZ19zdHJlYW1fdHlwZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkJICBib29sIGlzX3JlcGVhdGVyLCB1OCB0eXBlKTsKKworCS8qIEhEQ1AyLjIgTGluayBJbnRlZ3JpdHkgQ2hlY2sgKi8KKwlpbnQgKCpjaGVja18yXzJfbGluaykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOworfTsKKworc3RydWN0IGludGVsX2hkY3AgeworCWNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gKnNoaW07CisJLyogTXV0ZXggZm9yIGhkY3Agc3RhdGUgb2YgdGhlIGNvbm5lY3RvciAqLworCXN0cnVjdCBtdXRleCBtdXRleDsKKwl1NjQgdmFsdWU7CisJc3RydWN0IGRlbGF5ZWRfd29yayBjaGVja193b3JrOworCXN0cnVjdCB3b3JrX3N0cnVjdCBwcm9wX3dvcms7CisKKwkvKiBIRENQMS40IEVuY3J5cHRpb24gc3RhdHVzICovCisJYm9vbCBoZGNwX2VuY3J5cHRlZDsKKworCS8qIEhEQ1AyLjIgcmVsYXRlZCBkZWZpbml0aW9ucyAqLworCS8qIEZsYWcgaW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBjb25uZWN0b3Igc3VwcG9ydHMgSERDUDIuMiBvciBub3QuICovCisJYm9vbCBoZGNwMl9zdXBwb3J0ZWQ7CisKKwkvKiBIRENQMi4yIEVuY3J5cHRpb24gc3RhdHVzICovCisJYm9vbCBoZGNwMl9lbmNyeXB0ZWQ7CisKKwkvKgorCSAqIENvbnRlbnQgU3RyZWFtIFR5cGUgZGVmaW5lZCBieSBjb250ZW50IG93bmVyLiBUWVBFMCgweDApIGNvbnRlbnQgY2FuCisJICogZmxvdyBpbiB0aGUgbGluayBwcm90ZWN0ZWQgYnkgSERDUDIuMiBvciBIRENQMS40LCB3aGVyZSBhcyBUWVBFMSgweDEpCisJICogY29udGVudCBjYW4gZmxvdyBvbmx5IHRocm91Z2ggYSBsaW5rIHByb3RlY3RlZCBieSBIRENQMi4yLgorCSAqLworCXU4IGNvbnRlbnRfdHlwZTsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgcG9ydF9kYXRhOworCisJYm9vbCBpc19wYWlyZWQ7CisJYm9vbCBpc19yZXBlYXRlcjsKKworCS8qCisJICogQ291bnQgb2YgUmVjZWl2ZXJJRF9MaXN0IHJlY2VpdmVkLiBJbml0aWFsaXplZCB0byAwIGF0IEFLRV9JTklULgorCSAqIEluY3JlbWVudGVkIGFmdGVyIHByb2Nlc3NpbmcgdGhlIFJlcGVhdGVyQXV0aF9TZW5kX1JlY2VpdmVySURfTGlzdC4KKwkgKiBXaGVuIGl0IHJvbGxzIG92ZXIgcmUtYXV0aCBoYXMgdG8gYmUgdHJpZ2dlcmVkLgorCSAqLworCXUzMiBzZXFfbnVtX3Y7CisKKwkvKgorCSAqIENvdW50IG9mIFJlcGVhdGVyQXV0aF9TdHJlYW1fTWFuYWdlIG1zZyBwcm9wYWdhdGVkLgorCSAqIEluaXRpYWxpemVkIHRvIDAgb24gQUtFX0lOSVQuIEluY3JlbWVudGVkIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwKKwkgKiB0cmFuc21pc3Npb24gb2YgUmVwZWF0ZXJBdXRoX1N0cmVhbV9NYW5hZ2UgbWVzc2FnZS4gV2hlbiBpdCByb2xscworCSAqIG92ZXIgcmUtQXV0aCBoYXMgdG8gYmUgdHJpZ2dlcmVkLgorCSAqLworCXUzMiBzZXFfbnVtX207CisKKwkvKgorCSAqIFdvcmsgcXVldWUgdG8gc2lnbmFsIHRoZSBDUF9JUlEuIFVzZWQgZm9yIHRoZSB3YWl0ZXJzIHRvIHJlYWQgdGhlCisJICogYXZhaWxhYmxlIGluZm9ybWF0aW9uIGZyb20gSERDUCBEUCBzaW5rLgorCSAqLworCXdhaXRfcXVldWVfaGVhZF90IGNwX2lycV9xdWV1ZTsKKwlhdG9taWNfdCBjcF9pcnFfY291bnQ7CisJaW50IGNwX2lycV9jb3VudF9jYWNoZWQ7Cit9OworCitzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBiYXNlOworCS8qCisJICogVGhlIGZpeGVkIGVuY29kZXIgdGhpcyBjb25uZWN0b3IgaXMgY29ubmVjdGVkIHRvLgorCSAqLworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOworCisJLyogQUNQSSBkZXZpY2UgaWQgZm9yIEFDUEkgYW5kIGRyaXZlciBjb29wZXJhdGlvbiAqLworCXUzMiBhY3BpX2RldmljZV9pZDsKKworCS8qIFJlYWRzIG91dCB0aGUgY3VycmVudCBodywgcmV0dXJuaW5nIHRydWUgaWYgdGhlIGNvbm5lY3RvciBpcyBlbmFibGVkCisJICogYW5kIGFjdGl2ZSAoaS5lLiBkcG1zIE9OIHN0YXRlKS4gKi8KKwlib29sICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICopOworCisJLyogUGFuZWwgaW5mbyBmb3IgZURQIGFuZCBMVkRTICovCisJc3RydWN0IGludGVsX3BhbmVsIHBhbmVsOworCisJLyogQ2FjaGVkIEVESUQgZm9yIGVEUCBhbmQgTFZEUy4gTWF5IGhvbGQgRVJSX1BUUiBmb3IgaW52YWxpZCBFRElELiAqLworCXN0cnVjdCBlZGlkICplZGlkOworCXN0cnVjdCBlZGlkICpkZXRlY3RfZWRpZDsKKworCS8qIHNpbmNlIFBPTEwgYW5kIEhQRCBjb25uZWN0b3JzIG1heSB1c2UgdGhlIHNhbWUgSFBEIGxpbmUga2VlcCB0aGUgbmF0aXZlCisJICAgc3RhdGUgb2YgY29ubmVjdG9yLT5wb2xsZWQgaW4gY2FzZSBob3RwbHVnIHN0b3JtIGRldGVjdGlvbiBjaGFuZ2VzIGl0ICovCisJdTggcG9sbGVkOworCisJdm9pZCAqcG9ydDsgLyogc3RvcmUgdGhpcyBvcGFxdWUgYXMgaXRzIGlsbGVnYWwgdG8gZGVyZWZlcmVuY2UgaXQgKi8KKworCXN0cnVjdCBpbnRlbF9kcCAqbXN0X3BvcnQ7CisKKwkvKiBXb3JrIHN0cnVjdCB0byBzY2hlZHVsZSBhIHVldmVudCBvbiBsaW5rIHRyYWluIGZhaWx1cmUgKi8KKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgbW9kZXNldF9yZXRyeV93b3JrOworCisJc3RydWN0IGludGVsX2hkY3AgaGRjcDsKK307CisKK3N0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSB7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgYmFzZTsKKworCWVudW0gaGRtaV9mb3JjZV9hdWRpbyBmb3JjZV9hdWRpbzsKKwlpbnQgYnJvYWRjYXN0X3JnYjsKK307CisKKyNkZWZpbmUgdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSwgYmFzZSkKKworc3RydWN0IGRwbGwgeworCS8qIGdpdmVuIHZhbHVlcyAqLworCWludCBuOworCWludCBtMSwgbTI7CisJaW50IHAxLCBwMjsKKwkvKiBkZXJpdmVkIHZhbHVlcyAqLworCWludAlkb3Q7CisJaW50CXZjbzsKKwlpbnQJbTsKKwlpbnQJcDsKK307CisKK3N0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgeworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIGJhc2U7CisKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKKworCXN0cnVjdCB7CisJCS8qCisJCSAqIExvZ2ljYWwgc3RhdGUgb2YgY2RjbGsgKHVzZWQgZm9yIGFsbCBzY2FsaW5nLCB3YXRlcm1hcmssCisJCSAqIGV0Yy4gY2FsY3VsYXRpb25zIGFuZCBjaGVja3MpLiBUaGlzIGlzIGNvbXB1dGVkIGFzIGlmIGFsbAorCQkgKiBlbmFibGVkIGNydGNzIHdlcmUgYWN0aXZlLgorCQkgKi8KKwkJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGxvZ2ljYWw7CisKKwkJLyoKKwkJICogQWN0dWFsIHN0YXRlIG9mIGNkY2xrLCBjYW4gYmUgZGlmZmVyZW50IGZyb20gdGhlIGxvZ2ljYWwKKwkJICogc3RhdGUgb25seSB3aGVuIGFsbCBjcnRjJ3MgYXJlIERQTVMgb2ZmLgorCQkgKi8KKwkJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGFjdHVhbDsKKworCQlpbnQgZm9yY2VfbWluX2NkY2xrOworCQlib29sIGZvcmNlX21pbl9jZGNsa19jaGFuZ2VkOworCQkvKiBwaXBlIHRvIHdoaWNoIGNkMnggdXBkYXRlIGlzIHN5bmNocm9uaXplZCAqLworCQllbnVtIHBpcGUgcGlwZTsKKwl9IGNkY2xrOworCisJYm9vbCBkcGxsX3NldCwgbW9kZXNldDsKKworCS8qCisJICogRG9lcyB0aGlzIHRyYW5zYWN0aW9uIGNoYW5nZSB0aGUgcGlwZXMgdGhhdCBhcmUgYWN0aXZlPyAgVGhpcyBtYXNrCisJICogdHJhY2tzIHdoaWNoIENSVEMncyBoYXZlIGNoYW5nZWQgdGhlaXIgYWN0aXZlIHN0YXRlIGF0IHRoZSBlbmQgb2YKKwkgKiB0aGUgdHJhbnNhY3Rpb24gKG5vdCBjb3VudGluZyB0aGUgdGVtcG9yYXJ5IGRpc2FibGUgZHVyaW5nIG1vZGVzZXRzKS4KKwkgKiBUaGlzIG1hc2sgc2hvdWxkIG9ubHkgYmUgbm9uLXplcm8gd2hlbiBpbnRlbF9zdGF0ZS0+bW9kZXNldCBpcyB0cnVlLAorCSAqIGJ1dCB0aGUgY29udmVyc2UgaXMgbm90IG5lY2Vzc2FyaWx5IHRydWU7IHNpbXBseSBjaGFuZ2luZyBhIG1vZGUgbWF5CisJICogbm90IGZsaXAgdGhlIGZpbmFsIGFjdGl2ZSBzdGF0dXMgb2YgYW55IENSVEMncworCSAqLworCXVuc2lnbmVkIGludCBhY3RpdmVfcGlwZV9jaGFuZ2VzOworCisJdW5zaWduZWQgaW50IGFjdGl2ZV9jcnRjczsKKwkvKiBtaW5pbXVtIGFjY2VwdGFibGUgY2RjbGsgZm9yIGVhY2ggcGlwZSAqLworCWludCBtaW5fY2RjbGtbSTkxNV9NQVhfUElQRVNdOworCS8qIG1pbmltdW0gYWNjZXB0YWJsZSB2b2x0YWdlIGxldmVsIGZvciBlYWNoIHBpcGUgKi8KKwl1OCBtaW5fdm9sdGFnZV9sZXZlbFtJOTE1X01BWF9QSVBFU107CisKKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgc2hhcmVkX2RwbGxbSTkxNV9OVU1fUExMU107CisKKwkvKgorCSAqIEN1cnJlbnQgd2F0ZXJtYXJrcyBjYW4ndCBiZSB0cnVzdGVkIGR1cmluZyBoYXJkd2FyZSByZWFkb3V0LCBzbworCSAqIGRvbid0IGJvdGhlciBjYWxjdWxhdGluZyBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrcy4KKwkgKi8KKwlib29sIHNraXBfaW50ZXJtZWRpYXRlX3dtOworCisJYm9vbCBycHNfaW50ZXJhY3RpdmU7CisKKwkvKiBHZW45KyBvbmx5ICovCisJc3RydWN0IHNrbF9kZGJfdmFsdWVzIHdtX3Jlc3VsdHM7CisKKwlzdHJ1Y3QgaTkxNV9zd19mZW5jZSBjb21taXRfcmVhZHk7CisKKwlzdHJ1Y3QgbGxpc3Rfbm9kZSBmcmVlZDsKK307CisKK3N0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSBiYXNlOworCXN0cnVjdCBpOTE1X2dndHRfdmlldyB2aWV3OworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisjZGVmaW5lIFBMQU5FX0hBU19GRU5DRSBCSVQoMCkKKworCXN0cnVjdCB7CisJCXUzMiBvZmZzZXQ7CisJCS8qCisJCSAqIFBsYW5lIHN0cmlkZSBpbjoKKwkJICogYnl0ZXMgZm9yIDAvMTgwIGRlZ3JlZSByb3RhdGlvbgorCQkgKiBwaXhlbHMgZm9yIDkwLzI3MCBkZWdyZWUgcm90YXRpb24KKwkJICovCisJCXUzMiBzdHJpZGU7CisJCWludCB4LCB5OworCX0gY29sb3JfcGxhbmVbMl07CisKKwkvKiBwbGFuZSBjb250cm9sIHJlZ2lzdGVyICovCisJdTMyIGN0bDsKKworCS8qIHBsYW5lIGNvbG9yIGNvbnRyb2wgcmVnaXN0ZXIgKi8KKwl1MzIgY29sb3JfY3RsOworCisJLyoKKwkgKiBzY2FsZXJfaWQKKwkgKiAgICA9IC0xIDogbm90IHVzaW5nIGEgc2NhbGVyCisJICogICAgPj0gIDAgOiB1c2luZyBhIHNjYWxlcnMKKwkgKgorCSAqIHBsYW5lIHJlcXVpcmluZyBhIHNjYWxlcjoKKwkgKiAgIC0gRHVyaW5nIGNoZWNrX3BsYW5lLCBpdHMgYml0IGlzIHNldCBpbgorCSAqICAgICBjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyX3VzZXJzIGJ5IGNhbGxpbmcgaGVscGVyIGZ1bmN0aW9uCisJICogICAgIHVwZGF0ZV9zY2FsZXJfcGxhbmUuCisJICogICAtIHNjYWxlcl9pZCBpbmRpY2F0ZXMgdGhlIHNjYWxlciBpdCBnb3QgYXNzaWduZWQuCisJICoKKwkgKiBwbGFuZSBkb2Vzbid0IHJlcXVpcmUgYSBzY2FsZXI6CisJICogICAtIHRoaXMgY2FuIGhhcHBlbiB3aGVuIHNjYWxpbmcgaXMgbm8gbW9yZSByZXF1aXJlZCBvciBwbGFuZSBzaW1wbHkKKwkgKiAgICAgZ290IGRpc2FibGVkLgorCSAqICAgLSBEdXJpbmcgY2hlY2tfcGxhbmUsIGNvcnJlc3BvbmRpbmcgYml0IGlzIHJlc2V0IGluCisJICogICAgIGNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJfdXNlcnMgYnkgY2FsbGluZyBoZWxwZXIgZnVuY3Rpb24KKwkgKiAgICAgdXBkYXRlX3NjYWxlcl9wbGFuZS4KKwkgKi8KKwlpbnQgc2NhbGVyX2lkOworCisJLyoKKwkgKiBsaW5rZWRfcGxhbmU6CisJICoKKwkgKiBJQ0wgcGxhbmFyIGZvcm1hdHMgcmVxdWlyZSAyIHBsYW5lcyB0aGF0IGFyZSB1cGRhdGVkIGFzIHBhaXJzLgorCSAqIFRoaXMgbWVtYmVyIGlzIHVzZWQgdG8gbWFrZSBzdXJlIHRoZSBvdGhlciBwbGFuZSBpcyBhbHNvIHVwZGF0ZWQKKwkgKiB3aGVuIHJlcXVpcmVkLCBhbmQgZm9yIHVwZGF0ZV9zbGF2ZSgpIHRvIGZpbmQgdGhlIGNvcnJlY3QKKwkgKiBwbGFuZV9zdGF0ZSB0byBwYXNzIGFzIGFyZ3VtZW50LgorCSAqLworCXN0cnVjdCBpbnRlbF9wbGFuZSAqbGlua2VkX3BsYW5lOworCisJLyoKKwkgKiBzbGF2ZToKKwkgKiBJZiBzZXQgZG9uJ3QgdXBkYXRlIHVzZSB0aGUgbGlua2VkIHBsYW5lJ3Mgc3RhdGUgZm9yIHVwZGF0aW5nCisJICogdGhpcyBwbGFuZSBkdXJpbmcgYXRvbWljIGNvbW1pdCB3aXRoIHRoZSB1cGRhdGVfc2xhdmUoKSBjYWxsYmFjay4KKwkgKgorCSAqIEl0J3MgYWxzbyB1c2VkIGJ5IHRoZSB3YXRlcm1hcmsgY29kZSB0byBpZ25vcmUgd20gY2FsY3VsYXRpb25zIG9uCisJICogdGhpcyBwbGFuZS4gVGhleSdyZSBjYWxjdWxhdGVkIGJ5IHRoZSBsaW5rZWQgcGxhbmUncyB3bSBjb2RlLgorCSAqLworCXUzMiBzbGF2ZTsKKworCXN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5IGNrZXk7Cit9OworCitzdHJ1Y3QgaW50ZWxfaW5pdGlhbF9wbGFuZV9jb25maWcgeworCXN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqZmI7CisJdW5zaWduZWQgaW50IHRpbGluZzsKKwlpbnQgc2l6ZTsKKwl1MzIgYmFzZTsKKwl1OCByb3RhdGlvbjsKK307CisKK3N0cnVjdCBpbnRlbF9zY2FsZXIgeworCWludCBpbl91c2U7CisJdTMyIG1vZGU7Cit9OworCitzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgeworI2RlZmluZSBTS0xfTlVNX1NDQUxFUlMgMgorCXN0cnVjdCBpbnRlbF9zY2FsZXIgc2NhbGVyc1tTS0xfTlVNX1NDQUxFUlNdOworCisJLyoKKwkgKiBzY2FsZXJfdXNlcnM6IGtlZXBzIHRyYWNrIG9mIHVzZXJzIHJlcXVlc3Rpbmcgc2NhbGVycyBvbiB0aGlzIGNydGMuCisJICoKKwkgKiAgICAgSWYgYSBiaXQgaXMgc2V0LCBhIHVzZXIgaXMgdXNpbmcgYSBzY2FsZXIuCisJICogICAgIEhlcmUgdXNlciBjYW4gYmUgYSBwbGFuZSBvciBjcnRjIGFzIGRlZmluZWQgYmVsb3c6CisJICogICAgICAgYml0cyAwLTMwIC0gcGxhbmUgKGJpdCBwb3NpdGlvbiBpcyBpbmRleCBmcm9tIGRybV9wbGFuZV9pbmRleCkKKwkgKiAgICAgICBiaXQgMzEgICAgLSBjcnRjCisJICoKKwkgKiBJbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IGluZGV4IHRvIGNvdmVyIHBsYW5lcyBhbmQgY3J0YywgdXNpbmcKKwkgKiBleGlzdGluZyBkcm1fcGxhbmVfaW5kZXggZm9yIHBsYW5lcyB3aGljaCBpcyB3ZWxsIGxlc3MgdGhhbiAzMQorCSAqIHBsYW5lcyBhbmQgYml0IDMxIGZvciBjcnRjLiBUaGlzIHNob3VsZCBiZSBmaW5lIHRvIGNvdmVyIGFsbAorCSAqIG91ciBwbGF0Zm9ybXMuCisJICoKKwkgKiBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycyB3aWxsIHNldHVwIGF2YWlsYWJsZSBzY2FsZXJzIHRvIHVzZXJzCisJICogcmVxdWVzdGluZyBzY2FsZXJzLiBJdCB3aWxsIGdyYWNlZnVsbHkgZmFpbCBpZiByZXF1ZXN0IGV4Y2VlZHMKKwkgKiBhdmlsYWJpbGl0eS4KKwkgKi8KKyNkZWZpbmUgU0tMX0NSVENfSU5ERVggMzEKKwl1bnNpZ25lZCBzY2FsZXJfdXNlcnM7CisKKwkvKiBzY2FsZXIgdXNlZCBieSBjcnRjIGZvciBwYW5lbCBmaXR0aW5nIHB1cnBvc2UgKi8KKwlpbnQgc2NhbGVyX2lkOworfTsKKworLyogZHJtX21vZGUtPnByaXZhdGVfZmxhZ3MgKi8KKyNkZWZpbmUgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEICgxPDwwKQorLyogRmxhZyB0byBnZXQgc2NhbmxpbmUgdXNpbmcgZnJhbWUgdGltZSBzdGFtcHMgKi8KKyNkZWZpbmUgSTkxNV9NT0RFX0ZMQUdfR0VUX1NDQU5MSU5FX0ZST01fVElNRVNUQU1QICgxPDwxKQorLyogRmxhZyB0byB1c2UgdGhlIHNjYW5saW5lIGNvdW50ZXIgaW5zdGVhZCBvZiB0aGUgcGl4ZWwgY291bnRlciAqLworI2RlZmluZSBJOTE1X01PREVfRkxBR19VU0VfU0NBTkxJTkVfQ09VTlRFUiAoMTw8MikKKworc3RydWN0IGludGVsX3BpcGVfd20geworCXN0cnVjdCBpbnRlbF93bV9sZXZlbCB3bVs1XTsKKwl1MzIgbGluZXRpbWU7CisJYm9vbCBmYmNfd21fZW5hYmxlZDsKKwlib29sIHBpcGVfZW5hYmxlZDsKKwlib29sIHNwcml0ZXNfZW5hYmxlZDsKKwlib29sIHNwcml0ZXNfc2NhbGVkOworfTsKKworc3RydWN0IHNrbF9wbGFuZV93bSB7CisJc3RydWN0IHNrbF93bV9sZXZlbCB3bVs4XTsKKwlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHV2X3dtWzhdOworCXN0cnVjdCBza2xfd21fbGV2ZWwgdHJhbnNfd207CisJYm9vbCBpc19wbGFuYXI7Cit9OworCitzdHJ1Y3Qgc2tsX3BpcGVfd20geworCXN0cnVjdCBza2xfcGxhbmVfd20gcGxhbmVzW0k5MTVfTUFYX1BMQU5FU107CisJdTMyIGxpbmV0aW1lOworfTsKKworZW51bSB2bHZfd21fbGV2ZWwgeworCVZMVl9XTV9MRVZFTF9QTTIsCisJVkxWX1dNX0xFVkVMX1BNNSwKKwlWTFZfV01fTEVWRUxfRERSX0RWRlMsCisJTlVNX1ZMVl9XTV9MRVZFTFMsCit9OworCitzdHJ1Y3Qgdmx2X3dtX3N0YXRlIHsKKwlzdHJ1Y3QgZzR4X3BpcGVfd20gd21bTlVNX1ZMVl9XTV9MRVZFTFNdOworCXN0cnVjdCBnNHhfc3Jfd20gc3JbTlVNX1ZMVl9XTV9MRVZFTFNdOworCXU4IG51bV9sZXZlbHM7CisJYm9vbCBjeHNyOworfTsKKworc3RydWN0IHZsdl9maWZvX3N0YXRlIHsKKwl1MTYgcGxhbmVbSTkxNV9NQVhfUExBTkVTXTsKK307CisKK2VudW0gZzR4X3dtX2xldmVsIHsKKwlHNFhfV01fTEVWRUxfTk9STUFMLAorCUc0WF9XTV9MRVZFTF9TUiwKKwlHNFhfV01fTEVWRUxfSFBMTCwKKwlOVU1fRzRYX1dNX0xFVkVMUywKK307CisKK3N0cnVjdCBnNHhfd21fc3RhdGUgeworCXN0cnVjdCBnNHhfcGlwZV93bSB3bTsKKwlzdHJ1Y3QgZzR4X3NyX3dtIHNyOworCXN0cnVjdCBnNHhfc3Jfd20gaHBsbDsKKwlib29sIGN4c3I7CisJYm9vbCBocGxsX2VuOworCWJvb2wgZmJjX2VuOworfTsKKworc3RydWN0IGludGVsX2NydGNfd21fc3RhdGUgeworCXVuaW9uIHsKKwkJc3RydWN0IHsKKwkJCS8qCisJCQkgKiBJbnRlcm1lZGlhdGUgd2F0ZXJtYXJrczsgdGhlc2UgY2FuIGJlCisJCQkgKiBwcm9ncmFtbWVkIGltbWVkaWF0ZWx5IHNpbmNlIHRoZXkgc2F0aXNmeQorCQkJICogYm90aCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHdlJ3JlCisJCQkgKiBzd2l0Y2hpbmcgYXdheSBmcm9tIGFuZCB0aGUgbmV3CisJCQkgKiBjb25maWd1cmF0aW9uIHdlJ3JlIHN3aXRjaGluZyB0by4KKwkJCSAqLworCQkJc3RydWN0IGludGVsX3BpcGVfd20gaW50ZXJtZWRpYXRlOworCisJCQkvKgorCQkJICogT3B0aW1hbCB3YXRlcm1hcmtzLCBwcm9ncmFtbWVkIHBvc3QtdmJsYW5rCisJCQkgKiB3aGVuIHRoaXMgc3RhdGUgaXMgY29tbWl0dGVkLgorCQkJICovCisJCQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBvcHRpbWFsOworCQl9IGlsazsKKworCQlzdHJ1Y3QgeworCQkJLyogZ2VuOSsgb25seSBuZWVkcyAxLXN0ZXAgd20gcHJvZ3JhbW1pbmcgKi8KKwkJCXN0cnVjdCBza2xfcGlwZV93bSBvcHRpbWFsOworCQkJc3RydWN0IHNrbF9kZGJfZW50cnkgZGRiOworCQkJc3RydWN0IHNrbF9kZGJfZW50cnkgcGxhbmVfZGRiX3lbSTkxNV9NQVhfUExBTkVTXTsKKwkJCXN0cnVjdCBza2xfZGRiX2VudHJ5IHBsYW5lX2RkYl91dltJOTE1X01BWF9QTEFORVNdOworCQl9IHNrbDsKKworCQlzdHJ1Y3QgeworCQkJLyogInJhdyIgd2F0ZXJtYXJrcyAobm90IGludmVydGVkKSAqLworCQkJc3RydWN0IGc0eF9waXBlX3dtIHJhd1tOVU1fVkxWX1dNX0xFVkVMU107CisJCQkvKiBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrcyAoaW52ZXJ0ZWQpICovCisJCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlIGludGVybWVkaWF0ZTsKKwkJCS8qIG9wdGltYWwgd2F0ZXJtYXJrcyAoaW52ZXJ0ZWQpICovCisJCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlIG9wdGltYWw7CisJCQkvKiBkaXNwbGF5IEZJRk8gc3BsaXQgKi8KKwkJCXN0cnVjdCB2bHZfZmlmb19zdGF0ZSBmaWZvX3N0YXRlOworCQl9IHZsdjsKKworCQlzdHJ1Y3QgeworCQkJLyogInJhdyIgd2F0ZXJtYXJrcyAqLworCQkJc3RydWN0IGc0eF9waXBlX3dtIHJhd1tOVU1fRzRYX1dNX0xFVkVMU107CisJCQkvKiBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrcyAqLworCQkJc3RydWN0IGc0eF93bV9zdGF0ZSBpbnRlcm1lZGlhdGU7CisJCQkvKiBvcHRpbWFsIHdhdGVybWFya3MgKi8KKwkJCXN0cnVjdCBnNHhfd21fc3RhdGUgb3B0aW1hbDsKKwkJfSBnNHg7CisJfTsKKworCS8qCisJICogUGxhdGZvcm1zIHdpdGggdHdvLXN0ZXAgd2F0ZXJtYXJrIHByb2dyYW1taW5nIHdpbGwgbmVlZCB0bworCSAqIHVwZGF0ZSB3YXRlcm1hcmsgcHJvZ3JhbW1pbmcgcG9zdC12YmxhbmsgdG8gc3dpdGNoIGZyb20gdGhlCisJICogc2FmZSBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrcyB0byB0aGUgb3B0aW1hbCBmaW5hbAorCSAqIHdhdGVybWFya3MuCisJICovCisJYm9vbCBuZWVkX3Bvc3R2YmxfdXBkYXRlOworfTsKKworZW51bSBpbnRlbF9vdXRwdXRfZm9ybWF0IHsKKwlJTlRFTF9PVVRQVVRfRk9STUFUX0lOVkFMSUQsCisJSU5URUxfT1VUUFVUX0ZPUk1BVF9SR0IsCisJSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMCwKKwlJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDQ0LAorfTsKKworc3RydWN0IGludGVsX2NydGNfc3RhdGUgeworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBiYXNlOworCisJLyoqCisJICogcXVpcmtzIC0gYml0ZmllbGQgd2l0aCBodyBzdGF0ZSByZWFkb3V0IHF1aXJrcworCSAqCisJICogRm9yIHZhcmlvdXMgcmVhc29ucyB0aGUgaHcgc3RhdGUgcmVhZG91dCBjb2RlIG1pZ2h0IG5vdCBiZSBhYmxlIHRvCisJICogY29tcGxldGVseSBmYWl0aGZ1bGx5IHJlYWQgb3V0IHRoZSBjdXJyZW50IHN0YXRlLiBUaGVzZSBjYXNlcyBhcmUKKwkgKiB0cmFja2VkIHdpdGggcXVpcmsgZmxhZ3Mgc28gdGhhdCBmYXN0Ym9vdCBhbmQgc3RhdGUgY2hlY2tlciBjYW4gYWN0CisJICogYWNjb3JkaW5nbHkuCisJICovCisjZGVmaW5lIFBJUEVfQ09ORklHX1FVSVJLX01PREVfU1lOQ19GTEFHUwkoMTw8MCkgLyogdW5yZWxpYWJsZSBzeW5jIG1vZGUuZmxhZ3MgKi8KKwl1bnNpZ25lZCBsb25nIHF1aXJrczsKKworCXVuc2lnbmVkIGZiX2JpdHM7IC8qIGZyYW1lYnVmZmVycyB0byBmbGlwICovCisJYm9vbCB1cGRhdGVfcGlwZTsgLyogY2FuIGEgZmFzdCBtb2Rlc2V0IGJlIHBlcmZvcm1lZD8gKi8KKwlib29sIGRpc2FibGVfY3hzcjsKKwlib29sIHVwZGF0ZV93bV9wcmUsIHVwZGF0ZV93bV9wb3N0OyAvKiB3YXRlcm1hcmtzIGFyZSB1cGRhdGVkICovCisJYm9vbCBmYl9jaGFuZ2VkOyAvKiBmYiBvbiBhbnkgb2YgdGhlIHBsYW5lcyBpcyBjaGFuZ2VkICovCisJYm9vbCBmaWZvX2NoYW5nZWQ7IC8qIEZJRk8gc3BsaXQgaXMgY2hhbmdlZCAqLworCisJLyogUGlwZSBzb3VyY2Ugc2l6ZSAoaWUuIHBhbmVsIGZpdHRlciBpbnB1dCBzaXplKQorCSAqIEFsbCBwbGFuZXMgd2lsbCBiZSBwb3NpdGlvbmVkIGluc2lkZSB0aGlzIHNwYWNlLAorCSAqIGFuZCBnZXQgY2xpcHBlZCBhdCB0aGUgZWRnZXMuICovCisJaW50IHBpcGVfc3JjX3csIHBpcGVfc3JjX2g7CisKKwkvKgorCSAqIFBpcGUgcGl4ZWwgcmF0ZSwgYWRqdXN0ZWQgZm9yCisJICogcGFuZWwgZml0dGVyL3BpcGUgc2NhbGVyIGRvd25zY2FsaW5nLgorCSAqLworCXVuc2lnbmVkIGludCBwaXhlbF9yYXRlOworCisJLyogV2hldGhlciB0byBzZXQgdXAgdGhlIFBDSC9GREkuIE5vdGUgdGhhdCB3ZSBuZXZlciBhbGxvdyBzaGFyaW5nCisJICogYmV0d2VlbiBwY2ggZW5jb2RlcnMgYW5kIGNwdSBlbmNvZGVycy4gKi8KKwlib29sIGhhc19wY2hfZW5jb2RlcjsKKworCS8qIEFyZSB3ZSBzZW5kaW5nIGluZm9mcmFtZXMgb24gdGhlIGF0dGFjaGVkIHBvcnQgKi8KKwlib29sIGhhc19pbmZvZnJhbWU7CisKKwkvKiBDUFUgVHJhbnNjb2RlciBmb3IgdGhlIHBpcGUuIEN1cnJlbnRseSB0aGlzIGNhbiBvbmx5IGRpZmZlciBmcm9tIHRoZQorCSAqIHBpcGUgb24gSGFzd2VsbCBhbmQgbGF0ZXIgKHdoZXJlIHdlIGhhdmUgYSBzcGVjaWFsIGVEUCB0cmFuc2NvZGVyKQorCSAqIGFuZCBCcm94dG9uICh3aGVyZSB3ZSBoYXZlIHNwZWNpYWwgRFNJIHRyYW5zY29kZXJzKS4gKi8KKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXI7CisKKwkvKgorCSAqIFVzZSByZWR1Y2VkL2xpbWl0ZWQvYnJvYWRjYXN0IHJiZyByYW5nZSwgY29tcHJlc3NpbmcgZnJvbSB0aGUgZnVsbAorCSAqIHJhbmdlIGZlZCBpbnRvIHRoZSBjcnRjcy4KKwkgKi8KKwlib29sIGxpbWl0ZWRfY29sb3JfcmFuZ2U7CisKKwkvKiBCaXRtYXNrIG9mIGVuY29kZXIgdHlwZXMgKGVudW0gaW50ZWxfb3V0cHV0X3R5cGUpCisJICogZHJpdmVuIGJ5IHRoZSBwaXBlLgorCSAqLworCXVuc2lnbmVkIGludCBvdXRwdXRfdHlwZXM7CisKKwkvKiBXaGV0aGVyIHdlIHNob3VsZCBzZW5kIE5VTEwgaW5mb2ZyYW1lcy4gUmVxdWlyZWQgZm9yIGF1ZGlvLiAqLworCWJvb2wgaGFzX2hkbWlfc2luazsKKworCS8qIEF1ZGlvIGVuYWJsZWQgb24gdGhpcyBwaXBlLiBPbmx5IHZhbGlkIGlmIGVpdGhlciBoYXNfaGRtaV9zaW5rIG9yCisJICogaGFzX2RwX2VuY29kZXIgaXMgc2V0LiAqLworCWJvb2wgaGFzX2F1ZGlvOworCisJLyoKKwkgKiBFbmFibGUgZGl0aGVyaW5nLCB1c2VkIHdoZW4gdGhlIHNlbGVjdGVkIHBpcGUgYnBwIGRvZXNuJ3QgbWF0Y2ggdGhlCisJICogcGxhbmUgYnBwLgorCSAqLworCWJvb2wgZGl0aGVyOworCisJLyoKKwkgKiBEaXRoZXIgZ2V0cyBlbmFibGVkIGZvciAxOGJwcCB3aGljaCBjYXVzZXMgQ1JDIG1pc21hdGNoIGVycm9ycyBmb3IKKwkgKiBjb21wbGlhbmNlIHZpZGVvIHBhdHRlcm4gdGVzdHMuCisJICogRGlzYWJsZSBkaXRoZXIgb25seSBpZiBpdCBpcyBhIGNvbXBsaWFuY2UgdGVzdCByZXF1ZXN0IGZvcgorCSAqIDE4YnBwLgorCSAqLworCWJvb2wgZGl0aGVyX2ZvcmNlX2Rpc2FibGU7CisKKwkvKiBDb250cm9scyBmb3IgdGhlIGNsb2NrIGNvbXB1dGF0aW9uLCB0byBvdmVycmlkZSB2YXJpb3VzIHN0YWdlcy4gKi8KKwlib29sIGNsb2NrX3NldDsKKworCS8qIFNEVk8gVFYgaGFzIGEgYnVuY2ggb2Ygc3BlY2lhbCBjYXNlLiBUbyBtYWtlIG11bHRpZnVuY3Rpb24gZW5jb2RlcnMKKwkgKiB3b3JrIGNvcnJlY3RseSwgd2UgbmVlZCB0byB0cmFjayB0aGlzIGF0IHJ1bnRpbWUuKi8KKwlib29sIHNkdm9fdHZfY2xvY2s7CisKKwkvKgorCSAqIGNydGMgYmFuZHdpZHRoIGxpbWl0LCBkb24ndCBpbmNyZWFzZSBwaXBlIGJwcCBvciBjbG9jayBpZiBub3QgcmVhbGx5CisJICogcmVxdWlyZWQuIFRoaXMgaXMgc2V0IGluIHRoZSAybmQgbG9vcCBvZiBjYWxsaW5nIGVuY29kZXIncworCSAqIC0+Y29tcHV0ZV9jb25maWcgaWYgdGhlIGZpcnN0IHBpY2sgZG9lc24ndCB3b3JrIG91dC4KKwkgKi8KKwlib29sIGJ3X2NvbnN0cmFpbmVkOworCisJLyogU2V0dGluZ3MgZm9yIHRoZSBpbnRlbCBkcGxsIHVzZWQgb24gcHJldHR5IG11Y2ggZXZlcnl0aGluZyBidXQKKwkgKiBoYXN3ZWxsLiAqLworCXN0cnVjdCBkcGxsIGRwbGw7CisKKwkvKiBTZWxlY3RlZCBkcGxsIHdoZW4gc2hhcmVkIG9yIE5VTEwuICovCisJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpzaGFyZWRfZHBsbDsKKworCS8qIEFjdHVhbCByZWdpc3RlciBzdGF0ZSBvZiB0aGUgZHBsbCwgZm9yIHNoYXJlZCBkcGxsIGNyb3NzLWNoZWNraW5nLiAqLworCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIGRwbGxfaHdfc3RhdGU7CisKKwkvKgorCSAqIElDTCByZXNlcnZlZCBEUExMcyBmb3IgdGhlIENSVEMvcG9ydC4gVGhlIGFjdGl2ZSBQTEwgaXMgc2VsZWN0ZWQgYnkKKwkgKiBzZXR0aW5nIHNoYXJlZF9kcGxsIGFuZCBkcGxsX2h3X3N0YXRlIHRvIG9uZSBvZiB0aGVzZSByZXNlcnZlZCBvbmVzLgorCSAqLworCXN0cnVjdCBpY2xfcG9ydF9kcGxsIHsKKwkJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CisJCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIGh3X3N0YXRlOworCX0gaWNsX3BvcnRfZHBsbHNbSUNMX1BPUlRfRFBMTF9DT1VOVF07CisKKwkvKiBEU0kgUExMIHJlZ2lzdGVycyAqLworCXN0cnVjdCB7CisJCXUzMiBjdHJsLCBkaXY7CisJfSBkc2lfcGxsOworCisJaW50IHBpcGVfYnBwOworCXN0cnVjdCBpbnRlbF9saW5rX21fbiBkcF9tX247CisKKwkvKiBtMl9uMiBmb3IgZURQIGRvd25jbG9jayAqLworCXN0cnVjdCBpbnRlbF9saW5rX21fbiBkcF9tMl9uMjsKKwlib29sIGhhc19kcnJzOworCisJYm9vbCBoYXNfcHNyOworCWJvb2wgaGFzX3BzcjI7CisKKwkvKgorCSAqIEZyZXF1ZW5jZSB0aGUgZHBsbCBmb3IgdGhlIHBvcnQgc2hvdWxkIHJ1biBhdC4gRGlmZmVycyBmcm9tIHRoZQorCSAqIGFkanVzdGVkIGRvdGNsb2NrIGUuZy4gZm9yIERQIG9yIDEwLzEyYnBjIGhkbWkgbW9kZS4gVGhpcyBpcyBhbHNvCisJICogYWxyZWFkeSBtdWx0aXBsaWVkIGJ5IHBpeGVsX211bHRpcGxpZXIuCisJICovCisJaW50IHBvcnRfY2xvY2s7CisKKwkvKiBVc2VkIGJ5IFNEVk8gKGFuZCBpZiB3ZSBldmVyIGZpeCBpdCwgSERNSSkuICovCisJdW5zaWduZWQgcGl4ZWxfbXVsdGlwbGllcjsKKworCXU4IGxhbmVfY291bnQ7CisKKwkvKgorCSAqIFVzZWQgYnkgcGxhdGZvcm1zIGhhdmluZyBEUC9IRE1JIFBIWSB3aXRoIHByb2dyYW1tYWJsZSBsYW5lCisJICogbGF0ZW5jeSBvcHRpbWl6YXRpb24uCisJICovCisJdTggbGFuZV9sYXRfb3B0aW1fbWFzazsKKworCS8qIG1pbmltdW0gYWNjZXB0YWJsZSB2b2x0YWdlIGxldmVsICovCisJdTggbWluX3ZvbHRhZ2VfbGV2ZWw7CisKKwkvKiBQYW5lbCBmaXR0ZXIgY29udHJvbHMgZm9yIGdlbjItZ2VuNCArIFZMViAqLworCXN0cnVjdCB7CisJCXUzMiBjb250cm9sOworCQl1MzIgcGdtX3JhdGlvczsKKwkJdTMyIGx2ZHNfYm9yZGVyX2JpdHM7CisJfSBnbWNoX3BmaXQ7CisKKwkvKiBQYW5lbCBmaXR0ZXIgcGxhY2VtZW50IGFuZCBzaXplIGZvciBJcm9ubGFrZSsgKi8KKwlzdHJ1Y3QgeworCQl1MzIgcG9zOworCQl1MzIgc2l6ZTsKKwkJYm9vbCBlbmFibGVkOworCQlib29sIGZvcmNlX3RocnU7CisJfSBwY2hfcGZpdDsKKworCS8qIEZESSBjb25maWd1cmF0aW9uLCBvbmx5IHZhbGlkIGlmIGhhc19wY2hfZW5jb2RlciBpcyBzZXQuICovCisJaW50IGZkaV9sYW5lczsKKwlzdHJ1Y3QgaW50ZWxfbGlua19tX24gZmRpX21fbjsKKworCWJvb2wgaXBzX2VuYWJsZWQ7CisKKwlib29sIGNyY19lbmFibGVkOworCisJYm9vbCBlbmFibGVfZmJjOworCisJYm9vbCBkb3VibGVfd2lkZTsKKworCWludCBwYm47CisKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgc2NhbGVyX3N0YXRlOworCisJLyogdy9hIGZvciB3YWl0aW5nIDIgdmJsYW5rcyBkdXJpbmcgY3J0YyBlbmFibGUgKi8KKwllbnVtIHBpcGUgaHN3X3dvcmthcm91bmRfcGlwZTsKKworCS8qIElWQiBzcHJpdGUgc2NhbGluZyB3L2EgKFdhQ3hTUkRpc2FibGVkRm9yU3ByaXRlU2NhbGluZzppdmIpICovCisJYm9vbCBkaXNhYmxlX2xwX3dtOworCisJc3RydWN0IGludGVsX2NydGNfd21fc3RhdGUgd207CisKKwl1MzIgZGF0YV9yYXRlW0k5MTVfTUFYX1BMQU5FU107CisKKwkvKiBHYW1tYSBtb2RlIHByb2dyYW1tZWQgb24gdGhlIHBpcGUgKi8KKwl1MzIgZ2FtbWFfbW9kZTsKKworCXVuaW9uIHsKKwkJLyogQ1NDIG1vZGUgcHJvZ3JhbW1lZCBvbiB0aGUgcGlwZSAqLworCQl1MzIgY3NjX21vZGU7CisKKwkJLyogQ0hWIENHTSBtb2RlICovCisJCXUzMiBjZ21fbW9kZTsKKwl9OworCisJLyogYml0bWFzayBvZiB2aXNpYmxlIHBsYW5lcyAoZW51bSBwbGFuZV9pZCkgKi8KKwl1OCBhY3RpdmVfcGxhbmVzOworCXU4IG52MTJfcGxhbmVzOworCXU4IGM4X3BsYW5lczsKKworCS8qIGJpdG1hc2sgb2YgcGxhbmVzIHRoYXQgd2lsbCBiZSB1cGRhdGVkIGR1cmluZyB0aGUgY29tbWl0ICovCisJdTggdXBkYXRlX3BsYW5lczsKKworCXN0cnVjdCB7CisJCXUzMiBlbmFibGU7CisJCXUzMiBnY3A7CisJCXVuaW9uIGhkbWlfaW5mb2ZyYW1lIGF2aTsKKwkJdW5pb24gaGRtaV9pbmZvZnJhbWUgc3BkOworCQl1bmlvbiBoZG1pX2luZm9mcmFtZSBoZG1pOworCQl1bmlvbiBoZG1pX2luZm9mcmFtZSBkcm07CisJfSBpbmZvZnJhbWVzOworCisJLyogSERNSSBzY3JhbWJsaW5nIHN0YXR1cyAqLworCWJvb2wgaGRtaV9zY3JhbWJsaW5nOworCisJLyogSERNSSBIaWdoIFRNRFMgY2hhciByYXRlIHJhdGlvICovCisJYm9vbCBoZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbzsKKworCS8qIE91dHB1dCBmb3JtYXQgUkdCL1lDQkNSIGV0YyAqLworCWVudW0gaW50ZWxfb3V0cHV0X2Zvcm1hdCBvdXRwdXRfZm9ybWF0OworCisJLyogT3V0cHV0IGRvd24gc2NhbGluZyBpcyBkb25lIGluIExTUENPTiBkZXZpY2UgKi8KKwlib29sIGxzcGNvbl9kb3duc2FtcGxpbmc7CisKKwkvKiBlbmFibGUgcGlwZSBnYW1tYT8gKi8KKwlib29sIGdhbW1hX2VuYWJsZTsKKworCS8qIGVuYWJsZSBwaXBlIGNzYz8gKi8KKwlib29sIGNzY19lbmFibGU7CisKKwkvKiBEaXNwbGF5IFN0cmVhbSBjb21wcmVzc2lvbiBzdGF0ZSAqLworCXN0cnVjdCB7CisJCWJvb2wgY29tcHJlc3Npb25fZW5hYmxlOworCQlib29sIGRzY19zcGxpdDsKKwkJdTE2IGNvbXByZXNzZWRfYnBwOworCQl1OCBzbGljZV9jb3VudDsKKwl9IGRzY19wYXJhbXM7CisJc3RydWN0IGRybV9kc2NfY29uZmlnIGRwX2RzY19jZmc7CisKKwkvKiBGb3J3YXJkIEVycm9yIGNvcnJlY3Rpb24gU3RhdGUgKi8KKwlib29sIGZlY19lbmFibGU7Cit9OworCitzdHJ1Y3QgaW50ZWxfY3J0YyB7CisJc3RydWN0IGRybV9jcnRjIGJhc2U7CisJZW51bSBwaXBlIHBpcGU7CisJLyoKKwkgKiBXaGV0aGVyIHRoZSBjcnRjIGFuZCB0aGUgY29ubmVjdGVkIG91dHB1dCBwaXBlbGluZSBpcyBhY3RpdmUuIEltcGxpZXMKKwkgKiB0aGF0IGNydGMtPmVuYWJsZWQgaXMgc2V0LCBpLmUuIHRoZSBjdXJyZW50IG1vZGUgY29uZmlndXJhdGlvbiBoYXMKKwkgKiBzb21lIG91dHB1dHMgY29ubmVjdGVkIHRvIHRoaXMgY3J0Yy4KKwkgKi8KKwlib29sIGFjdGl2ZTsKKwl1OCBwbGFuZV9pZHNfbWFzazsKKwl1bnNpZ25lZCBsb25nIGxvbmcgZW5hYmxlZF9wb3dlcl9kb21haW5zOworCXN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5OworCisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNvbmZpZzsKKworCS8qIEFjY2VzcyB0byB0aGVzZSBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGRldl9wcml2LT5pcnFfbG9jay4gKi8KKwlib29sIGNwdV9maWZvX3VuZGVycnVuX2Rpc2FibGVkOworCWJvb2wgcGNoX2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQ7CisKKwkvKiBwZXItcGlwZSB3YXRlcm1hcmsgc3RhdGUgKi8KKwlzdHJ1Y3QgeworCQkvKiB3YXRlcm1hcmtzIGN1cnJlbnRseSBiZWluZyB1c2VkICAqLworCQl1bmlvbiB7CisJCQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBpbGs7CisJCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlIHZsdjsKKwkJCXN0cnVjdCBnNHhfd21fc3RhdGUgZzR4OworCQl9IGFjdGl2ZTsKKwl9IHdtOworCisJaW50IHNjYW5saW5lX29mZnNldDsKKworCXN0cnVjdCB7CisJCXVuc2lnbmVkIHN0YXJ0X3ZibF9jb3VudDsKKwkJa3RpbWVfdCBzdGFydF92YmxfdGltZTsKKwkJaW50IG1pbl92YmwsIG1heF92Ymw7CisJCWludCBzY2FubGluZV9zdGFydDsKKwl9IGRlYnVnOworCisJLyogc2NhbGVycyBhdmFpbGFibGUgb24gdGhpcyBjcnRjICovCisJaW50IG51bV9zY2FsZXJzOworfTsKKworc3RydWN0IGludGVsX3BsYW5lIHsKKwlzdHJ1Y3QgZHJtX3BsYW5lIGJhc2U7CisJZW51bSBpOXh4X3BsYW5lX2lkIGk5eHhfcGxhbmU7CisJZW51bSBwbGFuZV9pZCBpZDsKKwllbnVtIHBpcGUgcGlwZTsKKwlib29sIGhhc19mYmM7CisJYm9vbCBoYXNfY2NzOworCXUzMiBmcm9udGJ1ZmZlcl9iaXQ7CisKKwlzdHJ1Y3QgeworCQl1MzIgYmFzZSwgY250bCwgc2l6ZTsKKwl9IGN1cnNvcjsKKworCS8qCisJICogTk9URTogRG8gbm90IHBsYWNlIG5ldyBwbGFuZSBzdGF0ZSBmaWVsZHMgaGVyZSAoZS5nLiwgd2hlbiBhZGRpbmcKKwkgKiBuZXcgcGxhbmUgcHJvcGVydGllcykuICBOZXcgcnVudGltZSBzdGF0ZSBzaG91bGQgbm93IGJlIHBsYWNlZCBpbgorCSAqIHRoZSBpbnRlbF9wbGFuZV9zdGF0ZSBzdHJ1Y3R1cmUgYW5kIGFjY2Vzc2VkIHZpYSBwbGFuZV9zdGF0ZS4KKwkgKi8KKworCXVuc2lnbmVkIGludCAoKm1heF9zdHJpZGUpKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCisJCQkJICAgdTMyIHBpeGVsX2Zvcm1hdCwgdTY0IG1vZGlmaWVyLAorCQkJCSAgIHVuc2lnbmVkIGludCByb3RhdGlvbik7CisJdm9pZCAoKnVwZGF0ZV9wbGFuZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKKwkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOworCXZvaWQgKCp1cGRhdGVfc2xhdmUpKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKKwl2b2lkICgqZGlzYWJsZV9wbGFuZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKKwlib29sICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLCBlbnVtIHBpcGUgKnBpcGUpOworCWludCAoKmNoZWNrX3BsYW5lKShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOworfTsKKworc3RydWN0IGludGVsX3dhdGVybWFya19wYXJhbXMgeworCXUxNiBmaWZvX3NpemU7CisJdTE2IG1heF93bTsKKwl1OCBkZWZhdWx0X3dtOworCXU4IGd1YXJkX3NpemU7CisJdTggY2FjaGVsaW5lX3NpemU7Cit9OworCitzdHJ1Y3QgY3hzcl9sYXRlbmN5IHsKKwlib29sIGlzX2Rlc2t0b3AgOiAxOworCWJvb2wgaXNfZGRyMyA6IDE7CisJdTE2IGZzYl9mcmVxOworCXUxNiBtZW1fZnJlcTsKKwl1MTYgZGlzcGxheV9zcjsKKwl1MTYgZGlzcGxheV9ocGxsX2Rpc2FibGU7CisJdTE2IGN1cnNvcl9zcjsKKwl1MTYgY3Vyc29yX2hwbGxfZGlzYWJsZTsKK307CisKKyNkZWZpbmUgdG9faW50ZWxfYXRvbWljX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlLCBiYXNlKQorI2RlZmluZSB0b19pbnRlbF9jcnRjKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfY3J0YywgYmFzZSkKKyNkZWZpbmUgdG9faW50ZWxfY3J0Y19zdGF0ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGJhc2UpCisjZGVmaW5lIHRvX2ludGVsX2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2Nvbm5lY3RvciwgYmFzZSkKKyNkZWZpbmUgdG9faW50ZWxfZW5jb2Rlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2VuY29kZXIsIGJhc2UpCisjZGVmaW5lIHRvX2ludGVsX2ZyYW1lYnVmZmVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIsIGJhc2UpCisjZGVmaW5lIHRvX2ludGVsX3BsYW5lKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfcGxhbmUsIGJhc2UpCisjZGVmaW5lIHRvX2ludGVsX3BsYW5lX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUsIGJhc2UpCisjZGVmaW5lIGludGVsX2ZiX29iaih4KSAoKHgpID8gdG9faW50ZWxfYm8oKHgpLT5vYmpbMF0pIDogTlVMTCkKKworc3RydWN0IGludGVsX2hkbWkgeworCWk5MTVfcmVnX3QgaGRtaV9yZWc7CisJaW50IGRkY19idXM7CisJc3RydWN0IHsKKwkJZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgdHlwZTsKKwkJaW50IG1heF90bWRzX2Nsb2NrOworCX0gZHBfZHVhbF9tb2RlOworCWJvb2wgaGFzX2hkbWlfc2luazsKKwlib29sIGhhc19hdWRpbzsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICphdHRhY2hlZF9jb25uZWN0b3I7CisJc3RydWN0IGNlY19ub3RpZmllciAqY2VjX25vdGlmaWVyOworfTsKKworc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyOworI2RlZmluZSBEUF9NQVhfRE9XTlNUUkVBTV9QT1JUUwkJMHgxMAorCisvKgorICogZW51bSBsaW5rX21fbl9zZXQ6CisgKglXaGVuIHBsYXRmb3JtIHByb3ZpZGVzIHR3byBzZXQgb2YgTV9OIHJlZ2lzdGVycyBmb3IgZHAsIHdlIGNhbgorICoJcHJvZ3JhbSB0aGVtIGFuZCBzd2l0Y2ggYmV0d2VlbiB0aGVtIGluY2FzZSBvZiBEUlJTLgorICoJQnV0IFdoZW4gb25seSBvbmUgc3VjaCByZWdpc3RlciBpcyBwcm92aWRlZCwgd2UgaGF2ZSB0byBwcm9ncmFtIHRoZQorICoJcmVxdWlyZWQgZGl2aWRlciB2YWx1ZSBvbiB0aGF0IHJlZ2lzdGVycyBpdHNlbGYgYmFzZWQgb24gdGhlIERSUlMgc3RhdGUuCisgKgorICogTTFfTjEJOiBQcm9ncmFtIGRwX21fbiBvbiBNMV9OMSByZWdpc3RlcnMKKyAqCQkJICBkcF9tMl9uMiBvbiBNMl9OMiByZWdpc3RlcnMgKElmIHN1cHBvcnRlZCkKKyAqCisgKiBNMl9OMgk6IFByb2dyYW0gZHBfbTJfbjIgb24gTTFfTjEgcmVnaXN0ZXJzCisgKgkJCSAgTTJfTjIgcmVnaXN0ZXJzIGFyZSBub3Qgc3VwcG9ydGVkCisgKi8KKworZW51bSBsaW5rX21fbl9zZXQgeworCS8qIFNldHMgdGhlIG0xX24xIGFuZCBtMl9uMiAqLworCU0xX04xID0gMCwKKwlNMl9OMgorfTsKKworc3RydWN0IGludGVsX2RwX2NvbXBsaWFuY2VfZGF0YSB7CisJdW5zaWduZWQgbG9uZyBlZGlkOworCXU4IHZpZGVvX3BhdHRlcm47CisJdTE2IGhkaXNwbGF5LCB2ZGlzcGxheTsKKwl1OCBicGM7Cit9OworCitzdHJ1Y3QgaW50ZWxfZHBfY29tcGxpYW5jZSB7CisJdW5zaWduZWQgbG9uZyB0ZXN0X3R5cGU7CisJc3RydWN0IGludGVsX2RwX2NvbXBsaWFuY2VfZGF0YSB0ZXN0X2RhdGE7CisJYm9vbCB0ZXN0X2FjdGl2ZTsKKwlpbnQgdGVzdF9saW5rX3JhdGU7CisJdTggdGVzdF9sYW5lX2NvdW50OworfTsKKworc3RydWN0IGludGVsX2RwIHsKKwlpOTE1X3JlZ190IG91dHB1dF9yZWc7CisJdTMyIERQOworCWludCBsaW5rX3JhdGU7CisJdTggbGFuZV9jb3VudDsKKwl1OCBzaW5rX2NvdW50OworCWJvb2wgbGlua19tc3Q7CisJYm9vbCBsaW5rX3RyYWluZWQ7CisJYm9vbCBoYXNfYXVkaW87CisJYm9vbCByZXNldF9saW5rX3BhcmFtczsKKwl1OCBkcGNkW0RQX1JFQ0VJVkVSX0NBUF9TSVpFXTsKKwl1OCBwc3JfZHBjZFtFRFBfUFNSX1JFQ0VJVkVSX0NBUF9TSVpFXTsKKwl1OCBkb3duc3RyZWFtX3BvcnRzW0RQX01BWF9ET1dOU1RSRUFNX1BPUlRTXTsKKwl1OCBlZHBfZHBjZFtFRFBfRElTUExBWV9DVExfQ0FQX1NJWkVdOworCXU4IGRzY19kcGNkW0RQX0RTQ19SRUNFSVZFUl9DQVBfU0laRV07CisJdTggZmVjX2NhcGFibGU7CisJLyogc291cmNlIHJhdGVzICovCisJaW50IG51bV9zb3VyY2VfcmF0ZXM7CisJY29uc3QgaW50ICpzb3VyY2VfcmF0ZXM7CisJLyogc2luayByYXRlcyBhcyByZXBvcnRlZCBieSBEUF9NQVhfTElOS19SQVRFL0RQX1NVUFBPUlRFRF9MSU5LX1JBVEVTICovCisJaW50IG51bV9zaW5rX3JhdGVzOworCWludCBzaW5rX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdOworCWJvb2wgdXNlX3JhdGVfc2VsZWN0OworCS8qIGludGVyc2VjdGlvbiBvZiBzb3VyY2UgYW5kIHNpbmsgcmF0ZXMgKi8KKwlpbnQgbnVtX2NvbW1vbl9yYXRlczsKKwlpbnQgY29tbW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdOworCS8qIE1heCBsYW5lIGNvdW50IGZvciB0aGUgY3VycmVudCBsaW5rICovCisJaW50IG1heF9saW5rX2xhbmVfY291bnQ7CisJLyogTWF4IHJhdGUgZm9yIHRoZSBjdXJyZW50IGxpbmsgKi8KKwlpbnQgbWF4X2xpbmtfcmF0ZTsKKwkvKiBzaW5rIG9yIGJyYW5jaCBkZXNjcmlwdG9yICovCisJc3RydWN0IGRybV9kcF9kZXNjIGRlc2M7CisJc3RydWN0IGRybV9kcF9hdXggYXV4OworCXU4IHRyYWluX3NldFs0XTsKKwlpbnQgcGFuZWxfcG93ZXJfdXBfZGVsYXk7CisJaW50IHBhbmVsX3Bvd2VyX2Rvd25fZGVsYXk7CisJaW50IHBhbmVsX3Bvd2VyX2N5Y2xlX2RlbGF5OworCWludCBiYWNrbGlnaHRfb25fZGVsYXk7CisJaW50IGJhY2tsaWdodF9vZmZfZGVsYXk7CisJc3RydWN0IGRlbGF5ZWRfd29yayBwYW5lbF92ZGRfd29yazsKKwlib29sIHdhbnRfcGFuZWxfdmRkOworCXVuc2lnbmVkIGxvbmcgbGFzdF9wb3dlcl9vbjsKKwl1bnNpZ25lZCBsb25nIGxhc3RfYmFja2xpZ2h0X29mZjsKKwlrdGltZV90IHBhbmVsX3Bvd2VyX29mZl90aW1lOworCisJc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGVkcF9ub3RpZmllcjsKKworCS8qCisJICogUGlwZSB3aG9zZSBwb3dlciBzZXF1ZW5jZXIgaXMgY3VycmVudGx5IGxvY2tlZCBpbnRvCisJICogdGhpcyBwb3J0LiBPbmx5IHJlbGV2YW50IG9uIFZMVi9DSFYuCisJICovCisJZW51bSBwaXBlIHBwc19waXBlOworCS8qCisJICogUGlwZSBjdXJyZW50bHkgZHJpdmluZyB0aGUgcG9ydC4gVXNlZCBmb3IgcHJldmVudGluZworCSAqIHRoZSB1c2Ugb2YgdGhlIFBQUyBmb3IgYW55IHBpcGUgY3VycmVudHJseSBkcml2aW5nCisJICogZXh0ZXJuYWwgRFAgYXMgdGhhdCB3aWxsIG1lc3MgdGhpbmdzIHVwIG9uIFZMVi4KKwkgKi8KKwllbnVtIHBpcGUgYWN0aXZlX3BpcGU7CisJLyoKKwkgKiBTZXQgaWYgdGhlIHNlcXVlbmNlciBtYXkgYmUgcmVzZXQgZHVlIHRvIGEgcG93ZXIgdHJhbnNpdGlvbiwKKwkgKiByZXF1aXJpbmcgYSByZWluaXRpYWxpemF0aW9uLiBPbmx5IHJlbGV2YW50IG9uIEJYVC4KKwkgKi8KKwlib29sIHBwc19yZXNldDsKKwlzdHJ1Y3QgZWRwX3Bvd2VyX3NlcSBwcHNfZGVsYXlzOworCisJYm9vbCBjYW5fbXN0OyAvKiB0aGlzIHBvcnQgc3VwcG9ydHMgbXN0ICovCisJYm9vbCBpc19tc3Q7CisJaW50IGFjdGl2ZV9tc3RfbGlua3M7CisJLyogY29ubmVjdG9yIGRpcmVjdGx5IGF0dGFjaGVkIC0gd29uJ3QgYmUgdXNlIGZvciBtb2Rlc2V0IGluIG1zdCB3b3JsZCAqLworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmF0dGFjaGVkX2Nvbm5lY3RvcjsKKworCS8qIG1zdCBjb25uZWN0b3IgbGlzdCAqLworCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqbXN0X2VuY29kZXJzW0k5MTVfTUFYX1BJUEVTXTsKKwlzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgbXN0X21ncjsKKworCXUzMiAoKmdldF9hdXhfY2xvY2tfZGl2aWRlcikoc3RydWN0IGludGVsX2RwICpkcCwgaW50IGluZGV4KTsKKwkvKgorCSAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsdWUgd2UgaGF2ZSB0byBwcm9ncmFtIHRoZSBBVVhfQ1RMCisJICogcmVnaXN0ZXIgd2l0aCB0byBraWNrIG9mZiBhbiBBVVggdHJhbnNhY3Rpb24uCisJICovCisJdTMyICgqZ2V0X2F1eF9zZW5kX2N0bCkoc3RydWN0IGludGVsX2RwICpkcCwgaW50IHNlbmRfYnl0ZXMsCisJCQkJdTMyIGF1eF9jbG9ja19kaXZpZGVyKTsKKworCWk5MTVfcmVnX3QgKCphdXhfY2hfY3RsX3JlZykoc3RydWN0IGludGVsX2RwICpkcCk7CisJaTkxNV9yZWdfdCAoKmF1eF9jaF9kYXRhX3JlZykoc3RydWN0IGludGVsX2RwICpkcCwgaW50IGluZGV4KTsKKworCS8qIFRoaXMgaXMgY2FsbGVkIGJlZm9yZSBhIGxpbmsgdHJhaW5pbmcgaXMgc3RhcnRlcmQgKi8KKwl2b2lkICgqcHJlcGFyZV9saW5rX3JldHJhaW4pKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOworCisJLyogRGlzcGxheXBvcnQgY29tcGxpYW5jZSB0ZXN0aW5nICovCisJc3RydWN0IGludGVsX2RwX2NvbXBsaWFuY2UgY29tcGxpYW5jZTsKKworCS8qIERpc3BsYXkgc3RyZWFtIGNvbXByZXNzaW9uIHRlc3RpbmcgKi8KKwlib29sIGZvcmNlX2RzY19lbjsKK307CisKK2VudW0gbHNwY29uX3ZlbmRvciB7CisJTFNQQ09OX1ZFTkRPUl9NQ0EsCisJTFNQQ09OX1ZFTkRPUl9QQVJBREUKK307CisKK3N0cnVjdCBpbnRlbF9sc3Bjb24geworCWJvb2wgYWN0aXZlOworCWVudW0gZHJtX2xzcGNvbl9tb2RlIG1vZGU7CisJZW51bSBsc3Bjb25fdmVuZG9yIHZlbmRvcjsKK307CisKK3N0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgeworCXN0cnVjdCBpbnRlbF9lbmNvZGVyIGJhc2U7CisJdTMyIHNhdmVkX3BvcnRfYml0czsKKwlzdHJ1Y3QgaW50ZWxfZHAgZHA7CisJc3RydWN0IGludGVsX2hkbWkgaGRtaTsKKwlzdHJ1Y3QgaW50ZWxfbHNwY29uIGxzcGNvbjsKKwllbnVtIGlycXJldHVybiAoKmhwZF9wdWxzZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqLCBib29sKTsKKwlib29sIHJlbGVhc2VfY2wyX292ZXJyaWRlOworCXU4IG1heF9sYW5lczsKKwkvKiBVc2VkIGZvciBEUCBhbmQgSUNMKyBUeXBlQy9EUCBhbmQgVHlwZUMvSERNSSBwb3J0cy4gKi8KKwllbnVtIGF1eF9jaCBhdXhfY2g7CisJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkZGlfaW9fcG93ZXJfZG9tYWluOworCXN0cnVjdCBtdXRleCB0Y19sb2NrOwkvKiBwcm90ZWN0cyB0aGUgVHlwZUMgcG9ydCBtb2RlICovCisJaW50ZWxfd2FrZXJlZl90IHRjX2xvY2tfd2FrZXJlZjsKKwlpbnQgdGNfbGlua19yZWZjb3VudDsKKwlib29sIHRjX2xlZ2FjeV9wb3J0OjE7CisJY2hhciB0Y19wb3J0X25hbWVbOF07CisJZW51bSB0Y19wb3J0X21vZGUgdGNfbW9kZTsKKwllbnVtIHBoeV9maWEgdGNfcGh5X2ZpYTsKKworCXZvaWQgKCp3cml0ZV9pbmZvZnJhbWUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJCXVuc2lnbmVkIGludCB0eXBlLAorCQkJCWNvbnN0IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbik7CisJdm9pZCAoKnJlYWRfaW5mb2ZyYW1lKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgdHlwZSwKKwkJCSAgICAgICB2b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pOworCXZvaWQgKCpzZXRfaW5mb2ZyYW1lcykoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkgICAgICAgYm9vbCBlbmFibGUsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOworCXUzMiAoKmluZm9mcmFtZXNfZW5hYmxlZCkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOworfTsKKworc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyIHsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciBiYXNlOworCWVudW0gcGlwZSBwaXBlOworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKnByaW1hcnk7CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOworfTsKKworc3RhdGljIGlubGluZSBlbnVtIGRwaW9fY2hhbm5lbAordmx2X2Rwb3J0X3RvX2NoYW5uZWwoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQpCit7CisJc3dpdGNoIChkcG9ydC0+YmFzZS5wb3J0KSB7CisJY2FzZSBQT1JUX0I6CisJY2FzZSBQT1JUX0Q6CisJCXJldHVybiBEUElPX0NIMDsKKwljYXNlIFBPUlRfQzoKKwkJcmV0dXJuIERQSU9fQ0gxOworCWRlZmF1bHQ6CisJCUJVRygpOworCX0KK30KKworc3RhdGljIGlubGluZSBlbnVtIGRwaW9fcGh5Cit2bHZfZHBvcnRfdG9fcGh5KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0KQoreworCXN3aXRjaCAoZHBvcnQtPmJhc2UucG9ydCkgeworCWNhc2UgUE9SVF9COgorCWNhc2UgUE9SVF9DOgorCQlyZXR1cm4gRFBJT19QSFkwOworCWNhc2UgUE9SVF9EOgorCQlyZXR1cm4gRFBJT19QSFkxOworCWRlZmF1bHQ6CisJCUJVRygpOworCX0KK30KKworc3RhdGljIGlubGluZSBlbnVtIGRwaW9fY2hhbm5lbAordmx2X3BpcGVfdG9fY2hhbm5lbChlbnVtIHBpcGUgcGlwZSkKK3sKKwlzd2l0Y2ggKHBpcGUpIHsKKwljYXNlIFBJUEVfQToKKwljYXNlIFBJUEVfQzoKKwkJcmV0dXJuIERQSU9fQ0gwOworCWNhc2UgUElQRV9COgorCQlyZXR1cm4gRFBJT19DSDE7CisJZGVmYXVsdDoKKwkJQlVHKCk7CisJfQorfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9jcnRjICoKK2ludGVsX2dldF9jcnRjX2Zvcl9waXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCit7CisJcmV0dXJuIGRldl9wcml2LT5waXBlX3RvX2NydGNfbWFwcGluZ1twaXBlXTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfY3J0YyAqCitpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIGk5eHhfcGxhbmVfaWQgcGxhbmUpCit7CisJcmV0dXJuIGRldl9wcml2LT5wbGFuZV90b19jcnRjX21hcHBpbmdbcGxhbmVdOworfQorCitzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSB7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnJlc3RvcmVfc3RhdGU7Cit9OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9lbmNvZGVyICoKK2ludGVsX2F0dGFjaGVkX2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlyZXR1cm4gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3RvciktPmVuY29kZXI7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9lbmNvZGVyX2lzX2RpZ19wb3J0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQoreworCXN3aXRjaCAoZW5jb2Rlci0+dHlwZSkgeworCWNhc2UgSU5URUxfT1VUUFVUX0RESToKKwljYXNlIElOVEVMX09VVFBVVF9EUDoKKwljYXNlIElOVEVMX09VVFBVVF9FRFA6CisJY2FzZSBJTlRFTF9PVVRQVVRfSERNSToKKwkJcmV0dXJuIHRydWU7CisJZGVmYXVsdDoKKwkJcmV0dXJuIGZhbHNlOworCX0KK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICoKK2VuY190b19kaWdfcG9ydChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCit7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSB0b19pbnRlbF9lbmNvZGVyKGVuY29kZXIpOworCisJaWYgKGludGVsX2VuY29kZXJfaXNfZGlnX3BvcnQoaW50ZWxfZW5jb2RlcikpCisJCXJldHVybiBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCwKKwkJCQkgICAgYmFzZS5iYXNlKTsKKwllbHNlCisJCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKgorY29ubl90b19kaWdfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJcmV0dXJuIGVuY190b19kaWdfcG9ydCgmaW50ZWxfYXR0YWNoZWRfZW5jb2RlcigmY29ubmVjdG9yLT5iYXNlKS0+YmFzZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICoKK2VuY190b19tc3Qoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQoreworCXJldHVybiBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyLCBiYXNlLmJhc2UpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9kcCAqZW5jX3RvX2ludGVsX2RwKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKK3sKKwlyZXR1cm4gJmVuY190b19kaWdfcG9ydChlbmNvZGVyKS0+ZHA7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9lbmNvZGVyX2lzX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQoreworCXN3aXRjaCAoZW5jb2Rlci0+dHlwZSkgeworCWNhc2UgSU5URUxfT1VUUFVUX0RQOgorCWNhc2UgSU5URUxfT1VUUFVUX0VEUDoKKwkJcmV0dXJuIHRydWU7CisJY2FzZSBJTlRFTF9PVVRQVVRfRERJOgorCQkvKiBTa2lwIHB1cmUgSERNSS9EVkkgRERJIGVuY29kZXJzICovCisJCXJldHVybiBpOTE1X21taW9fcmVnX3ZhbGlkKGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSktPm91dHB1dF9yZWcpOworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2xzcGNvbiAqCitlbmNfdG9faW50ZWxfbHNwY29uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKK3sKKwlyZXR1cm4gJmVuY190b19kaWdfcG9ydChlbmNvZGVyKS0+bHNwY29uOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKgorZHBfdG9fZGlnX3BvcnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGludGVsX2RwLCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0LCBkcCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2xzcGNvbiAqCitkcF90b19sc3Bjb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKK3sKKwlyZXR1cm4gJmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+bHNwY29uOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICoKK2RwX3RvX2k5MTUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKK3sKKwlyZXR1cm4gdG9faTkxNShkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2UuYmFzZS5kZXYpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKgoraGRtaV90b19kaWdfcG9ydChzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGludGVsX2hkbWksIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQsIGhkbWkpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqCitpbnRlbF9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQoreworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnJldCA9CisJCWRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKCZzdGF0ZS0+YmFzZSwgJnBsYW5lLT5iYXNlKTsKKworCWlmIChJU19FUlIocmV0KSkKKwkJcmV0dXJuIEVSUl9DQVNUKHJldCk7CisKKwlyZXR1cm4gdG9faW50ZWxfcGxhbmVfc3RhdGUocmV0KTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKgoraW50ZWxfYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJIHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCit7CisJcmV0dXJuIHRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZSgmc3RhdGUtPmJhc2UsCisJCQkJCQkJCSAgICZwbGFuZS0+YmFzZSkpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqCitpbnRlbF9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKK3sKKwlyZXR1cm4gdG9faW50ZWxfcGxhbmVfc3RhdGUoZHJtX2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKCZzdGF0ZS0+YmFzZSwKKwkJCQkJCQkJICAgJnBsYW5lLT5iYXNlKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKgoraW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3sKKwlyZXR1cm4gdG9faW50ZWxfY3J0Y19zdGF0ZShkcm1fYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZSgmc3RhdGUtPmJhc2UsCisJCQkJCQkJCSAmY3J0Yy0+YmFzZSkpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICoKK2ludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJc3RydWN0IGludGVsX2NydGMgKmNydGMpCit7CisJcmV0dXJuIHRvX2ludGVsX2NydGNfc3RhdGUoZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoJnN0YXRlLT5iYXNlLAorCQkJCQkJCQkgJmNydGMtPmJhc2UpKTsKK30KKworLyogaW50ZWxfZGlzcGxheS5jICovCitzdGF0aWMgaW5saW5lIGJvb2wKK2ludGVsX2NydGNfaGFzX3R5cGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCSAgICBlbnVtIGludGVsX291dHB1dF90eXBlIHR5cGUpCit7CisJcmV0dXJuIGNydGNfc3RhdGUtPm91dHB1dF90eXBlcyAmICgxIDw8IHR5cGUpOworfQorc3RhdGljIGlubGluZSBib29sCitpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQoreworCXJldHVybiBjcnRjX3N0YXRlLT5vdXRwdXRfdHlwZXMgJgorCQkoKDEgPDwgSU5URUxfT1VUUFVUX0RQKSB8CisJCSAoMSA8PCBJTlRFTF9PVVRQVVRfRFBfTVNUKSB8CisJCSAoMSA8PCBJTlRFTF9PVVRQVVRfRURQKSk7Cit9CitzdGF0aWMgaW5saW5lIHZvaWQKK2ludGVsX3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQoreworCWRybV93YWl0X29uZV92YmxhbmsoJmRldl9wcml2LT5kcm0sIHBpcGUpOworfQorc3RhdGljIGlubGluZSB2b2lkCitpbnRlbF93YWl0X2Zvcl92YmxhbmtfaWZfYWN0aXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHBpcGUpCit7CisJY29uc3Qgc3RydWN0IGludGVsX2NydGMgKmNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZfcHJpdiwgcGlwZSk7CisKKwlpZiAoY3J0Yy0+YWN0aXZlKQorCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUpOworfQorCitzdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9wbGFuZV9nZ3R0X29mZnNldChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQoreworCXJldHVybiBpOTE1X2dndHRfb2Zmc2V0KHN0YXRlLT52bWEpOworfQorCisjZW5kaWYgLyogIF9fSU5URUxfRElTUExBWV9UWVBFU19IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwppbmRleCBkMGZjMzQ4Li45MjFhZDBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCkBAIC00NCwxNSArNDQsMTYgQEAKIAogI2luY2x1ZGUgImk5MTVfZGVidWdmcy5oIgogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogI2luY2x1ZGUgImludGVsX2F0b21pYy5oIgogI2luY2x1ZGUgImludGVsX2F1ZGlvLmgiCiAjaW5jbHVkZSAiaW50ZWxfY29ubmVjdG9yLmgiCiAjaW5jbHVkZSAiaW50ZWxfZGRpLmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2RwLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHBfbGlua190cmFpbmluZy5oIgogI2luY2x1ZGUgImludGVsX2RwX21zdC5oIgogI2luY2x1ZGUgImludGVsX2RwaW9fcGh5LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfZmlmb191bmRlcnJ1bi5oIgogI2luY2x1ZGUgImludGVsX2hkY3AuaCIKICNpbmNsdWRlICJpbnRlbF9oZG1pLmgiCkBAIC02Miw2ICs2Myw3IEBACiAjaW5jbHVkZSAiaW50ZWxfcGFuZWwuaCIKICNpbmNsdWRlICJpbnRlbF9wc3IuaCIKICNpbmNsdWRlICJpbnRlbF9zaWRlYmFuZC5oIgorI2luY2x1ZGUgImludGVsX3RjLmgiCiAjaW5jbHVkZSAiaW50ZWxfdmRzYy5oIgogCiAjZGVmaW5lIERQX0RQUlhfRVNJX0xFTiAxNApAQCAtMjExLDQ3ICsyMTMsMTMgQEAgc3RhdGljIGludCBpbnRlbF9kcF9tYXhfY29tbW9uX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlyZXR1cm4gaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tpbnRlbF9kcC0+bnVtX2NvbW1vbl9yYXRlcyAtIDFdOwogfQogCi1zdGF0aWMgaW50IGludGVsX2RwX2dldF9maWFfc3VwcG9ydGVkX2xhbmVfY291bnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKLXsKLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKLQllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBvcnQpOwotCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwotCXUzMiBsYW5lX2luZm87Ci0KLQlpZiAodGNfcG9ydCA9PSBQT1JUX1RDX05PTkUgfHwgZGlnX3BvcnQtPnRjX3R5cGUgIT0gVENfUE9SVF9UWVBFQykKLQkJcmV0dXJuIDQ7Ci0KLQlsYW5lX2luZm8gPSAwOwotCXdpdGhfaW50ZWxfZGlzcGxheV9wb3dlcihkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0RJU1BMQVlfQ09SRSwgd2FrZXJlZikKLQkJbGFuZV9pbmZvID0gKEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBTUCkgJgotCQkJICAgICBEUF9MQU5FX0FTU0lHTk1FTlRfTUFTSyh0Y19wb3J0KSkgPj4KLQkJCQlEUF9MQU5FX0FTU0lHTk1FTlRfU0hJRlQodGNfcG9ydCk7Ci0KLQlzd2l0Y2ggKGxhbmVfaW5mbykgewotCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShsYW5lX2luZm8pOwotCQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIDE6Ci0JY2FzZSAyOgotCWNhc2UgNDoKLQljYXNlIDg6Ci0JCXJldHVybiAxOwotCWNhc2UgMzoKLQljYXNlIDEyOgotCQlyZXR1cm4gMjsKLQljYXNlIDE1OgotCQlyZXR1cm4gNDsKLQl9Ci19Ci0KIC8qIFRoZW9yZXRpY2FsIG1heCBiZXR3ZWVuIHNvdXJjZSBhbmQgc2luayAqLwogc3RhdGljIGludCBpbnRlbF9kcF9tYXhfY29tbW9uX2xhbmVfY291bnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKIAlpbnQgc291cmNlX21heCA9IGludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXM7CiAJaW50IHNpbmtfbWF4ID0gZHJtX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwLT5kcGNkKTsKLQlpbnQgZmlhX21heCA9IGludGVsX2RwX2dldF9maWFfc3VwcG9ydGVkX2xhbmVfY291bnQoaW50ZWxfZHApOworCWludCBmaWFfbWF4ID0gaW50ZWxfdGNfcG9ydF9maWFfbWF4X2xhbmVfY291bnQoaW50ZWxfZGlnX3BvcnQpOwogCiAJcmV0dXJuIG1pbjMoc291cmNlX21heCwgc2lua19tYXgsIGZpYV9tYXgpOwogfQpAQCAtMzMwLDkgKzI5OCw5IEBAIHN0YXRpYyBpbnQgaWNsX21heF9zb3VyY2VfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwotCWVudW0gcG9ydCBwb3J0ID0gZGlnX3BvcnQtPmJhc2UucG9ydDsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZGlnX3BvcnQtPmJhc2UucG9ydCk7CiAKLQlpZiAoaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkgJiYKKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpICYmCiAJICAgICFJU19FTEtIQVJUTEFLRShkZXZfcHJpdikgJiYKIAkgICAgIWludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCiAJCXJldHVybiA1NDAwMDA7CkBAIC0xMjA5LDcgKzExNzcsNyBAQCBzdGF0aWMgdTMyIHNrbF9nZXRfYXV4X3NlbmRfY3RsKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJICAgICAgRFBfQVVYX0NIX0NUTF9GV19TWU5DX1BVTFNFX1NLTCgzMikgfAogCSAgICAgIERQX0FVWF9DSF9DVExfU1lOQ19QVUxTRV9TS0woMzIpOwogCi0JaWYgKGludGVsX2RpZ19wb3J0LT50Y190eXBlID09IFRDX1BPUlRfVEJUKQorCWlmIChpbnRlbF9kaWdfcG9ydC0+dGNfbW9kZSA9PSBUQ19QT1JUX1RCVF9BTFQpCiAJCXJldCB8PSBEUF9BVVhfQ0hfQ1RMX1RCVF9JTzsKIAogCXJldHVybiByZXQ7CkBAIC0xMjI1LDYgKzExOTMsOCBAQCBpbnRlbF9kcF9hdXhfeGZlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0KIAkJCXRvX2k5MTUoaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZpOTE1LT51bmNvcmU7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoaTkxNSwgaW50ZWxfZGlnX3BvcnQtPmJhc2UucG9ydCk7CisJYm9vbCBpc190Y19wb3J0ID0gaW50ZWxfcGh5X2lzX3RjKGk5MTUsIHBoeSk7CiAJaTkxNV9yZWdfdCBjaF9jdGwsIGNoX2RhdGFbNV07CiAJdTMyIGF1eF9jbG9ja19kaXZpZGVyOwogCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gYXV4X2RvbWFpbiA9CkBAIC0xMjQwLDYgKzEyMTAsOSBAQCBpbnRlbF9kcF9hdXhfeGZlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNoX2RhdGEpOyBpKyspCiAJCWNoX2RhdGFbaV0gPSBpbnRlbF9kcC0+YXV4X2NoX2RhdGFfcmVnKGludGVsX2RwLCBpKTsKIAorCWlmIChpc190Y19wb3J0KQorCQlpbnRlbF90Y19wb3J0X2xvY2soaW50ZWxfZGlnX3BvcnQpOworCiAJYXV4X3dha2VyZWYgPSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChpOTE1LCBhdXhfZG9tYWluKTsKIAlwcHNfd2FrZXJlZiA9IHBwc19sb2NrKGludGVsX2RwKTsKIApAQCAtMTM5Miw2ICsxMzY1LDkgQEAgaW50ZWxfZHBfYXV4X3hmZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlwcHNfdW5sb2NrKGludGVsX2RwLCBwcHNfd2FrZXJlZik7CiAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXRfYXN5bmMoaTkxNSwgYXV4X2RvbWFpbiwgYXV4X3dha2VyZWYpOwogCisJaWYgKGlzX3RjX3BvcnQpCisJCWludGVsX3RjX3BvcnRfdW5sb2NrKGludGVsX2RpZ19wb3J0KTsKKwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTE4NzksOCArMTg1NSwxMCBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlpbnQgbW9kZV9yYXRlLCBsaW5rX2Nsb2NrLCBsaW5rX2F2YWlsOwogCiAJZm9yIChicHAgPSBsaW1pdHMtPm1heF9icHA7IGJwcCA+PSBsaW1pdHMtPm1pbl9icHA7IGJwcCAtPSAyICogMykgeworCQlpbnQgb3V0cHV0X2JwcCA9IGludGVsX2RwX291dHB1dF9icHAocGlwZV9jb25maWcsIGJwcCk7CisKIAkJbW9kZV9yYXRlID0gaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAotCQkJCQkJICAgYnBwKTsKKwkJCQkJCSAgIG91dHB1dF9icHApOwogCiAJCWZvciAoY2xvY2sgPSBsaW1pdHMtPm1pbl9jbG9jazsgY2xvY2sgPD0gbGltaXRzLT5tYXhfY2xvY2s7IGNsb2NrKyspIHsKIAkJCWZvciAobGFuZV9jb3VudCA9IGxpbWl0cy0+bWluX2xhbmVfY291bnQ7CkBAIC0yMzkzLDkgKzIzNzEsOCBAQCBzdGF0aWMgdm9pZCB3YWl0X3BhbmVsX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJSTkxNV9SRUFEKHBwX3N0YXRfcmVnKSwKIAkJCUk5MTVfUkVBRChwcF9jdHJsX3JlZykpOwogCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBwcF9zdGF0X3JlZywgbWFzaywgdmFsdWUsCi0JCQkJICAgIDUwMDApKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwgcHBfc3RhdF9yZWcsCisJCQkJICAgICAgIG1hc2ssIHZhbHVlLCA1MDAwKSkKIAkJRFJNX0VSUk9SKCJQYW5lbCBzdGF0dXMgdGltZW91dDogc3RhdHVzICUwOHggY29udHJvbCAlMDh4XG4iLAogCQkJCUk5MTVfUkVBRChwcF9zdGF0X3JlZyksCiAJCQkJSTkxNV9SRUFEKHBwX2N0cmxfcmVnKSk7CkBAIC0zOTgyLDEwICszOTU5LDggQEAgdm9pZCBpbnRlbF9kcF9zZXRfaWRsZV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJaWYgKHBvcnQgPT0gUE9SVF9BKQogCQlyZXR1cm47CiAKLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsIERQX1RQX1NUQVRVUyhwb3J0KSwKLQkJCQkgICAgRFBfVFBfU1RBVFVTX0lETEVfRE9ORSwKLQkJCQkgICAgRFBfVFBfU1RBVFVTX0lETEVfRE9ORSwKLQkJCQkgICAgMSkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgRFBfVFBfU1RBVFVTKHBvcnQpLAorCQkJCSAgRFBfVFBfU1RBVFVTX0lETEVfRE9ORSwgMSkpCiAJCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIERQIGlkbGUgcGF0dGVybnNcbiIpOwogfQogCkBAIC00MTY5LDEwICs0MTQ0LDYgQEAgaW50ZWxfZWRwX2luaXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCWRybV9kcF9yZWFkX2Rlc2MoJmludGVsX2RwLT5hdXgsICZpbnRlbF9kcC0+ZGVzYywKIAkJCSBkcm1fZHBfaXNfYnJhbmNoKGludGVsX2RwLT5kcGNkKSk7CiAKLQlpZiAoaW50ZWxfZHAtPmRwY2RbRFBfRFBDRF9SRVZdID49IDB4MTEpCi0JCWRldl9wcml2LT5ub19hdXhfaGFuZHNoYWtlID0gaW50ZWxfZHAtPmRwY2RbRFBfTUFYX0RPV05TUFJFQURdICYKLQkJCURQX05PX0FVWF9IQU5EU0hBS0VfTElOS19UUkFJTklORzsKLQogCS8qCiAJICogUmVhZCB0aGUgZURQIGRpc3BsYXkgY29udHJvbCByZWdpc3RlcnMuCiAJICoKQEAgLTQyNDQsOCArNDIxNSwxNCBAQCBpbnRlbF9kcF9nZXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCWlmICghaW50ZWxfZHBfcmVhZF9kcGNkKGludGVsX2RwKSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JLyogRG9uJ3QgY2xvYmJlciBjYWNoZWQgZURQIHJhdGVzLiAqLworCS8qCisJICogRG9uJ3QgY2xvYmJlciBjYWNoZWQgZURQIHJhdGVzLiBBbHNvIHNraXAgcmUtcmVhZGluZworCSAqIHRoZSBPVUkvSUQgc2luY2Ugd2Uga25vdyBpdCB3b24ndCBjaGFuZ2UuCisJICovCiAJaWYgKCFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7CisJCWRybV9kcF9yZWFkX2Rlc2MoJmludGVsX2RwLT5hdXgsICZpbnRlbF9kcC0+ZGVzYywKKwkJCQkgZHJtX2RwX2lzX2JyYW5jaChpbnRlbF9kcC0+ZHBjZCkpOworCiAJCWludGVsX2RwX3NldF9zaW5rX3JhdGVzKGludGVsX2RwKTsKIAkJaW50ZWxfZHBfc2V0X2NvbW1vbl9yYXRlcyhpbnRlbF9kcCk7CiAJfQpAQCAtNDI1NCw3ICs0MjMxLDggQEAgaW50ZWxfZHBfZ2V0X2RwY2Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAkgKiBTb21lIGVEUCBwYW5lbHMgZG8gbm90IHNldCBhIHZhbGlkIHZhbHVlIGZvciBzaW5rIGNvdW50LCB0aGF0IGlzIHdoeQogCSAqIGl0IGRvbid0IGNhcmUgYWJvdXQgcmVhZCBpdCBoZXJlIGFuZCBpbiBpbnRlbF9lZHBfaW5pdF9kcGNkKCkuCiAJICovCi0JaWYgKCFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7CisJaWYgKCFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApICYmCisJICAgICFkcm1fZHBfaGFzX3F1aXJrKCZpbnRlbF9kcC0+ZGVzYywgRFBfRFBDRF9RVUlSS19OT19TSU5LX0NPVU5UKSkgewogCQl1OCBjb3VudDsKIAkJc3NpemVfdCByOwogCkBAIC00ODc5LDE0ICs0ODU3LDE2IEBAIGludCBpbnRlbF9kcF9yZXRyYWluX2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAgKiByZXRyYWluIHRoZSBsaW5rIHRvIGdldCBhIHBpY3R1cmUuIFRoYXQncyBpbiBjYXNlIG5vCiAgKiB1c2Vyc3BhY2UgY29tcG9uZW50IHJlYWN0ZWQgdG8gaW50ZXJtaXR0ZW50IEhQRCBkaXAuCiAgKi8KLXN0YXRpYyBib29sIGludGVsX2RwX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyBlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUKK2ludGVsX2RwX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCSBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCSBib29sIGlycV9yZWNlaXZlZCkKIHsKIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4OwotCWJvb2wgY2hhbmdlZDsKKwllbnVtIGludGVsX2hvdHBsdWdfc3RhdGUgc3RhdGU7CiAJaW50IHJldDsKIAotCWNoYW5nZWQgPSBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29ubmVjdG9yKTsKKwlzdGF0ZSA9IGludGVsX2VuY29kZXJfaG90cGx1ZyhlbmNvZGVyLCBjb25uZWN0b3IsIGlycV9yZWNlaXZlZCk7CiAKIAlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7CiAKQEAgLTQ5MDUsNyArNDg4NSwxNCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKIAlXQVJOKHJldCwgIkFjcXVpcmluZyBtb2Rlc2V0IGxvY2tzIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOwogCi0JcmV0dXJuIGNoYW5nZWQ7CisJLyoKKwkgKiBLZWVwaW5nIGl0IGNvbnNpc3RlbnQgd2l0aCBpbnRlbF9kZGlfaG90cGx1ZygpIGFuZAorCSAqIGludGVsX2hkbWlfaG90cGx1ZygpLgorCSAqLworCWlmIChzdGF0ZSA9PSBJTlRFTF9IT1RQTFVHX1VOQ0hBTkdFRCAmJiBpcnFfcmVjZWl2ZWQpCisJCXN0YXRlID0gSU5URUxfSE9UUExVR19SRVRSWTsKKworCXJldHVybiBzdGF0ZTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfZHBfY2hlY2tfc2VydmljZV9pcnEoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKQEAgLTUyMzMsMjA0ICs1MjIwLDE2IEBAIHN0YXRpYyBib29sIGljbF9jb21ib19wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0dXJuIEk5MTVfUkVBRChTREVJU1IpICYgU0RFX0RESV9IT1RQTFVHX0lDUChwb3J0KTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKnRjX3R5cGVfbmFtZShlbnVtIHRjX3BvcnRfdHlwZSB0eXBlKQotewotCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbmFtZXNbXSA9IHsKLQkJW1RDX1BPUlRfVU5LTk9XTl0gPSAidW5rbm93biIsCi0JCVtUQ19QT1JUX0xFR0FDWV0gPSAibGVnYWN5IiwKLQkJW1RDX1BPUlRfVFlQRUNdID0gInR5cGVjIiwKLQkJW1RDX1BPUlRfVEJUXSA9ICJ0YnQiLAotCX07Ci0KLQlpZiAoV0FSTl9PTih0eXBlID49IEFSUkFZX1NJWkUobmFtZXMpKSkKLQkJdHlwZSA9IFRDX1BPUlRfVU5LTk9XTjsKLQotCXJldHVybiBuYW1lc1t0eXBlXTsKLX0KLQotc3RhdGljIHZvaWQgaWNsX3VwZGF0ZV90Y19wb3J0X3R5cGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKLQkJCQkgICAgYm9vbCBpc19sZWdhY3ksIGJvb2wgaXNfdHlwZWMsIGJvb2wgaXNfdGJ0KQotewotCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UucG9ydDsKLQllbnVtIHRjX3BvcnRfdHlwZSBvbGRfdHlwZSA9IGludGVsX2RpZ19wb3J0LT50Y190eXBlOwotCi0JV0FSTl9PTihpc19sZWdhY3kgKyBpc190eXBlYyArIGlzX3RidCAhPSAxKTsKLQotCWlmIChpc19sZWdhY3kpCi0JCWludGVsX2RpZ19wb3J0LT50Y190eXBlID0gVENfUE9SVF9MRUdBQ1k7Ci0JZWxzZSBpZiAoaXNfdHlwZWMpCi0JCWludGVsX2RpZ19wb3J0LT50Y190eXBlID0gVENfUE9SVF9UWVBFQzsKLQllbHNlIGlmIChpc190YnQpCi0JCWludGVsX2RpZ19wb3J0LT50Y190eXBlID0gVENfUE9SVF9UQlQ7Ci0JZWxzZQotCQlyZXR1cm47Ci0KLQkvKiBUeXBlcyBhcmUgbm90IHN1cHBvc2VkIHRvIGJlIGNoYW5nZWQgYXQgcnVudGltZS4gKi8KLQlXQVJOX09OKG9sZF90eXBlICE9IFRDX1BPUlRfVU5LTk9XTiAmJgotCQlvbGRfdHlwZSAhPSBpbnRlbF9kaWdfcG9ydC0+dGNfdHlwZSk7Ci0KLQlpZiAob2xkX3R5cGUgIT0gaW50ZWxfZGlnX3BvcnQtPnRjX3R5cGUpCi0JCURSTV9ERUJVR19LTVMoIlBvcnQgJWMgaGFzIFRDIHR5cGUgJXNcbiIsIHBvcnRfbmFtZShwb3J0KSwKLQkJCSAgICAgIHRjX3R5cGVfbmFtZShpbnRlbF9kaWdfcG9ydC0+dGNfdHlwZSkpOwotfQotCi0vKgotICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBDb25uZWN0IEZsb3cgZGVzY3JpYmVkIGJ5IG91cgotICogc3BlY2lmaWNhdGlvbiwgR2VuMTEgVHlwZUMgUHJvZ3JhbW1pbmcgY2hhcHRlci4gVGhlIHJlc3Qgb2YgdGhlIGZsb3cgKHJlYWRpbmcKLSAqIGxhbmVzLCBFRElELCBldGMpIGlzIGRvbmUgYXMgbmVlZGVkIGluIHRoZSB0eXBpY2FsIHBsYWNlcy4KLSAqCi0gKiBVbmxpa2UgdGhlIG90aGVyIHBvcnRzLCB0eXBlLUMgcG9ydHMgYXJlIG5vdCBhdmFpbGFibGUgdG8gdXNlIGFzIHNvb24gYXMgd2UKLSAqIGdldCBhIGhvdHBsdWcuIFRoZSB0eXBlLUMgUEhZcyBjYW4gYmUgc2hhcmVkIGJldHdlZW4gbXVsdGlwbGUgY29udHJvbGxlcnM6Ci0gKiBkaXNwbGF5LCBVU0IsIGV0Yy4gQXMgYSByZXN1bHQsIGhhbmRzaGFraW5nIHRocm91Z2ggRklBIGlzIHJlcXVpcmVkIGFyb3VuZAotICogY29ubmVjdCBhbmQgZGlzY29ubmVjdCB0byBjbGVhbmx5IHRyYW5zZmVyIG93bmVyc2hpcCB3aXRoIHRoZSBjb250cm9sbGVyIGFuZAotICogc2V0IHRoZSB0eXBlLUMgcG93ZXIgc3RhdGUuCi0gKgotICogV2UgY291bGQgb3B0IHRvIG9ubHkgZG8gdGhlIGNvbm5lY3QgZmxvdyB3aGVuIHdlIGFjdHVhbGx5IHRyeSB0byB1c2UgdGhlIEFVWAotICogY2hhbm5lbHMgb3IgZG8gYSBtb2Rlc2V0LCB0aGVuIGltbWVkaWF0ZWx5IHJ1biB0aGUgZGlzY29ubmVjdCBmbG93IGFmdGVyCi0gKiB1c2FnZSwgYnV0IHRoZXJlIGFyZSBzb21lIGltcGxpY2F0aW9ucyBvbiB0aGlzIGZvciBhIGR5bmFtaWMgZW52aXJvbm1lbnQ6Ci0gKiB0aGluZ3MgbWF5IGdvIGF3YXkgb3IgY2hhbmdlIGJlaGluZCBvdXIgYmFja3MuIFNvIGZvciBub3cgb3VyIGRyaXZlciBpcwotICogYWx3YXlzIHRyeWluZyB0byBhY3F1aXJlIG93bmVyc2hpcCBvZiB0aGUgY29udHJvbGxlciBhcyBzb29uIGFzIGl0IGdldHMgYW4KLSAqIGludGVycnVwdCAob3IgcG9sbHMgc3RhdGUgYW5kIHNlZXMgYSBwb3J0IGlzIGNvbm5lY3RlZCkgYW5kIG9ubHkgZ2l2ZXMgaXQKLSAqIGJhY2sgd2hlbiBpdCBzZWVzIGEgZGlzY29ubmVjdC4gSW1wbGVtZW50YXRpb24gb2YgYSBtb3JlIGZpbmUtZ3JhaW5lZCBtb2RlbAotICogd2lsbCByZXF1aXJlIGEgbG90IG9mIGNvb3JkaW5hdGlvbiB3aXRoIHVzZXIgc3BhY2UgYW5kIHRob3JvdWdoIHRlc3RpbmcgZm9yCi0gKiB0aGUgZXh0cmEgcG9zc2libGUgY2FzZXMuCi0gKi8KLXN0YXRpYyBib29sIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICAgICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCi17Ci0JZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKLQl1MzIgdmFsOwotCi0JaWYgKGRpZ19wb3J0LT50Y190eXBlICE9IFRDX1BPUlRfTEVHQUNZICYmCi0JICAgIGRpZ19wb3J0LT50Y190eXBlICE9IFRDX1BPUlRfVFlQRUMpCi0JCXJldHVybiB0cnVlOwotCi0JdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFBNUyk7Ci0JaWYgKCEodmFsICYgRFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCh0Y19wb3J0KSkpIHsKLQkJRFJNX0RFQlVHX0tNUygiRFAgUEhZIGZvciBUQyBwb3J0ICVkIG5vdCByZWFkeVxuIiwgdGNfcG9ydCk7Ci0JCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KTsKLQkJcmV0dXJuIGZhbHNlOwotCX0KLQotCS8qCi0JICogVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIG1hbnkgdGltZXMgaW4gYSByb3cgd2l0aG91dCBhbiBIUEQgZXZlbnQKLQkgKiBpbiBiZXR3ZWVuLCBzbyB0cnkgdG8gYXZvaWQgdGhlIHdyaXRlIHdoZW4gd2UgY2FuLgotCSAqLwotCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBDU1NTKTsKLQlpZiAoISh2YWwgJiBEUF9QSFlfTU9ERV9TVEFUVVNfTk9UX1NBRkUodGNfcG9ydCkpKSB7Ci0JCXZhbCB8PSBEUF9QSFlfTU9ERV9TVEFUVVNfTk9UX1NBRkUodGNfcG9ydCk7Ci0JCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQQ1NTUywgdmFsKTsKLQl9Ci0KLQkvKgotCSAqIE5vdyB3ZSBoYXZlIHRvIHJlLWNoZWNrIHRoZSBsaXZlIHN0YXRlLCBpbiBjYXNlIHRoZSBwb3J0IHJlY2VudGx5Ci0JICogYmVjYW1lIGRpc2Nvbm5lY3RlZC4gTm90IG5lY2Vzc2FyeSBmb3IgbGVnYWN5IG1vZGUuCi0JICovCi0JaWYgKGRpZ19wb3J0LT50Y190eXBlID09IFRDX1BPUlRfVFlQRUMgJiYKLQkgICAgIShJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQU1ApICYgVENfTElWRV9TVEFURV9UQyh0Y19wb3J0KSkpIHsKLQkJRFJNX0RFQlVHX0tNUygiVEMgUEhZICVkIHN1ZGRlbiBkaXNjb25uZWN0LlxuIiwgdGNfcG9ydCk7Ci0JCWljbF90Y19waHlfZGlzY29ubmVjdChkZXZfcHJpdiwgZGlnX3BvcnQpOwotCQlyZXR1cm4gZmFsc2U7Ci0JfQotCi0JcmV0dXJuIHRydWU7Ci19Ci0KLS8qCi0gKiBTZWUgdGhlIGNvbW1lbnQgYXQgdGhlIGNvbm5lY3QgZnVuY3Rpb24uIFRoaXMgaW1wbGVtZW50cyB0aGUgRGlzY29ubmVjdAotICogRmxvdy4KLSAqLwotdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCi17Ci0JZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKLQotCWlmIChkaWdfcG9ydC0+dGNfdHlwZSA9PSBUQ19QT1JUX1VOS05PV04pCi0JCXJldHVybjsKLQotCS8qCi0JICogVEJUIGRpc2Nvbm5lY3Rpb24gZmxvdyBpcyByZWFkIHRoZSBsaXZlIHN0YXR1cywgd2hhdCB3YXMgZG9uZSBpbgotCSAqIGNhbGxlci4KLQkgKi8KLQlpZiAoZGlnX3BvcnQtPnRjX3R5cGUgPT0gVENfUE9SVF9UWVBFQyB8fAotCSAgICBkaWdfcG9ydC0+dGNfdHlwZSA9PSBUQ19QT1JUX0xFR0FDWSkgewotCQl1MzIgdmFsOwotCi0JCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBDU1NTKTsKLQkJdmFsICY9IH5EUF9QSFlfTU9ERV9TVEFUVVNfTk9UX1NBRkUodGNfcG9ydCk7Ci0JCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQQ1NTUywgdmFsKTsKLQl9Ci0KLQlEUk1fREVCVUdfS01TKCJQb3J0ICVjIFRDIHR5cGUgJXMgZGlzY29ubmVjdGVkXG4iLAotCQkgICAgICBwb3J0X25hbWUoZGlnX3BvcnQtPmJhc2UucG9ydCksCi0JCSAgICAgIHRjX3R5cGVfbmFtZShkaWdfcG9ydC0+dGNfdHlwZSkpOwotCi0JZGlnX3BvcnQtPnRjX3R5cGUgPSBUQ19QT1JUX1VOS05PV047Ci19Ci0KLS8qCi0gKiBUaGUgdHlwZS1DIHBvcnRzIGFyZSBkaWZmZXJlbnQgYmVjYXVzZSBldmVuIHdoZW4gdGhleSBhcmUgY29ubmVjdGVkLCB0aGV5IG1heQotICogbm90IGJlIGF2YWlsYWJsZS91c2FibGUgYnkgdGhlIGdyYXBoaWNzIGRyaXZlcjogc2VlIHRoZSBjb21tZW50IG9uCi0gKiBpY2xfdGNfcGh5X2Nvbm5lY3QoKS4gU28gaW4gb3VyIGRyaXZlciBpbnN0ZWFkIG9mIGFkZGluZyB0aGUgYWRkaXRpb25hbAotICogY29uY2VwdCBvZiAidXNhYmxlIiBhbmQgbWFrZSBldmVyeXRoaW5nIGNoZWNrIGZvciAiY29ubmVjdGVkIGFuZCB1c2FibGUiIHdlCi0gKiBkZWZpbmUgYSBwb3J0IGFzICJjb25uZWN0ZWQiIHdoZW4gaXQgaXMgbm90IG9ubHkgY29ubmVjdGVkLCBidXQgYWxzbyB3aGVuIGl0Ci0gKiBpcyB1c2FibGUgYnkgdGhlIHJlc3Qgb2YgdGhlIGRyaXZlci4gVGhhdCBtYWludGFpbnMgdGhlIG9sZCBhc3N1bXB0aW9uIHRoYXQKLSAqIGNvbm5lY3RlZCBwb3J0cyBhcmUgdXNhYmxlLCBhbmQgYXZvaWRzIGV4cG9zaW5nIHRvIHRoZSB1c2VycyBvYmplY3RzIHRoZXkKLSAqIGNhbid0IHJlYWxseSB1c2UuCi0gKi8KLXN0YXRpYyBib29sIGljbF90Y19wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKLXsKLQllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7Ci0JZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBwb3J0KTsKLQlib29sIGlzX2xlZ2FjeSwgaXNfdHlwZWMsIGlzX3RidDsKLQl1MzIgZHBzcDsKLQotCS8qCi0JICogQ29tcGxhaW4gaWYgd2UgZ290IGEgbGVnYWN5IHBvcnQgSFBELCBidXQgVkJUIGRpZG4ndCBtYXJrIHRoZSBwb3J0IGFzCi0JICogbGVnYWN5LiBUcmVhdCB0aGUgcG9ydCBhcyBsZWdhY3kgZnJvbSBub3cgb24uCi0JICovCi0JaWYgKCFpbnRlbF9kaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQgJiYKLQkgICAgSTkxNV9SRUFEKFNERUlTUikgJiBTREVfVENfSE9UUExVR19JQ1AodGNfcG9ydCkpIHsKLQkJRFJNX0VSUk9SKCJWQlQgaW5jb3JyZWN0bHkgY2xhaW1zIHBvcnQgJWMgaXMgbm90IFR5cGVDIGxlZ2FjeVxuIiwKLQkJCSAgcG9ydF9uYW1lKHBvcnQpKTsKLQkJaW50ZWxfZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0ID0gdHJ1ZTsKLQl9Ci0JaXNfbGVnYWN5ID0gaW50ZWxfZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0OwotCi0JLyoKLQkgKiBUaGUgc3BlYyBzYXlzIHdlIHNob3VsZG4ndCBiZSB1c2luZyB0aGUgSVNSIGJpdHMgZm9yIGRldGVjdGluZwotCSAqIGJldHdlZW4gVEMgYW5kIFRCVC4gV2Ugc2hvdWxkIHVzZSBERkxFWERQU1AuCi0JICovCi0JZHBzcCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBTUCk7Ci0JaXNfdHlwZWMgPSBkcHNwICYgVENfTElWRV9TVEFURV9UQyh0Y19wb3J0KTsKLQlpc190YnQgPSBkcHNwICYgVENfTElWRV9TVEFURV9UQlQodGNfcG9ydCk7Ci0KLQlpZiAoIWlzX2xlZ2FjeSAmJiAhaXNfdHlwZWMgJiYgIWlzX3RidCkgewotCQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoZGV2X3ByaXYsIGludGVsX2RpZ19wb3J0KTsKLQotCQlyZXR1cm4gZmFsc2U7Ci0JfQotCi0JaWNsX3VwZGF0ZV90Y19wb3J0X3R5cGUoZGV2X3ByaXYsIGludGVsX2RpZ19wb3J0LCBpc19sZWdhY3ksIGlzX3R5cGVjLAotCQkJCWlzX3RidCk7Ci0KLQlpZiAoIWljbF90Y19waHlfY29ubmVjdChkZXZfcHJpdiwgaW50ZWxfZGlnX3BvcnQpKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlyZXR1cm4gdHJ1ZTsKLX0KLQogc3RhdGljIGJvb2wgaWNsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKIAotCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KSkKKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQogCQlyZXR1cm4gaWNsX2NvbWJvX3BvcnRfY29ubmVjdGVkKGRldl9wcml2LCBkaWdfcG9ydCk7Ci0JZWxzZSBpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCkpCi0JCXJldHVybiBpY2xfdGNfcG9ydF9jb25uZWN0ZWQoZGV2X3ByaXYsIGRpZ19wb3J0KTsKKwllbHNlIGlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCisJCXJldHVybiBpbnRlbF90Y19wb3J0X2Nvbm5lY3RlZChkaWdfcG9ydCk7CiAJZWxzZQogCQlNSVNTSU5HX0NBU0UoZW5jb2Rlci0+aHBkX3Bpbik7CiAKQEAgLTU1ODgsOSArNTM4Nyw2IEBAIGludGVsX2RwX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQogCQlpbnRlbF9kcF9nZXRfZHNjX3NpbmtfY2FwKGludGVsX2RwKTsKIAotCWRybV9kcF9yZWFkX2Rlc2MoJmludGVsX2RwLT5hdXgsICZpbnRlbF9kcC0+ZGVzYywKLQkJCSBkcm1fZHBfaXNfYnJhbmNoKGludGVsX2RwLT5kcGNkKSk7Ci0KIAlpbnRlbF9kcF9jb25maWd1cmVfbXN0KGludGVsX2RwKTsKIAogCWlmIChpbnRlbF9kcC0+aXNfbXN0KSB7CkBAIC02MDE2LDQ3ICs1ODEyLDQ5IEBAIHN0cnVjdCBoZGNwMl9kcF9lcnJhdGFfc3RyZWFtX3R5cGUgewogCXU4CXN0cmVhbV90eXBlOwogfSBfX3BhY2tlZDsKIAotc3RhdGljIHN0cnVjdCBoZGNwMl9kcF9tc2dfZGF0YSB7CitzdHJ1Y3QgaGRjcDJfZHBfbXNnX2RhdGEgewogCXU4IG1zZ19pZDsKIAl1MzIgb2Zmc2V0OwogCWJvb2wgbXNnX2RldGVjdGFibGU7CiAJdTMyIHRpbWVvdXQ7CiAJdTMyIHRpbWVvdXQyOyAvKiBBZGRlZCBmb3Igbm9uX3BhaXJlZCBzaXR1YXRpb24gKi8KLQl9IGhkY3AyX21zZ19kYXRhW10gPSB7Ci0JCXtIRENQXzJfMl9BS0VfSU5JVCwgRFBfSERDUF8yXzJfQUtFX0lOSVRfT0ZGU0VULCBmYWxzZSwgMCwgMH0sCi0JCXtIRENQXzJfMl9BS0VfU0VORF9DRVJULCBEUF9IRENQXzJfMl9BS0VfU0VORF9DRVJUX09GRlNFVCwKLQkJCQlmYWxzZSwgSERDUF8yXzJfQ0VSVF9USU1FT1VUX01TLCAwfSwKLQkJe0hEQ1BfMl8yX0FLRV9OT19TVE9SRURfS00sIERQX0hEQ1BfMl8yX0FLRV9OT19TVE9SRURfS01fT0ZGU0VULAotCQkJCWZhbHNlLCAwLCAwfSwKLQkJe0hEQ1BfMl8yX0FLRV9TVE9SRURfS00sIERQX0hEQ1BfMl8yX0FLRV9TVE9SRURfS01fT0ZGU0VULAotCQkJCWZhbHNlLCAwLCAwfSwKLQkJe0hEQ1BfMl8yX0FLRV9TRU5EX0hQUklNRSwgRFBfSERDUF8yXzJfQUtFX1NFTkRfSFBSSU1FX09GRlNFVCwKLQkJCQl0cnVlLCBIRENQXzJfMl9IUFJJTUVfUEFJUkVEX1RJTUVPVVRfTVMsCi0JCQkJSERDUF8yXzJfSFBSSU1FX05PX1BBSVJFRF9USU1FT1VUX01TfSwKLQkJe0hEQ1BfMl8yX0FLRV9TRU5EX1BBSVJJTkdfSU5GTywKLQkJCQlEUF9IRENQXzJfMl9BS0VfU0VORF9QQUlSSU5HX0lORk9fT0ZGU0VULCB0cnVlLAotCQkJCUhEQ1BfMl8yX1BBSVJJTkdfVElNRU9VVF9NUywgMH0sCi0JCXtIRENQXzJfMl9MQ19JTklULCBEUF9IRENQXzJfMl9MQ19JTklUX09GRlNFVCwgZmFsc2UsIDAsIDB9LAotCQl7SERDUF8yXzJfTENfU0VORF9MUFJJTUUsIERQX0hEQ1BfMl8yX0xDX1NFTkRfTFBSSU1FX09GRlNFVCwKLQkJCQlmYWxzZSwgSERDUF8yXzJfRFBfTFBSSU1FX1RJTUVPVVRfTVMsIDB9LAotCQl7SERDUF8yXzJfU0tFX1NFTkRfRUtTLCBEUF9IRENQXzJfMl9TS0VfU0VORF9FS1NfT0ZGU0VULCBmYWxzZSwKLQkJCQkwLCAwfSwKLQkJe0hEQ1BfMl8yX1JFUF9TRU5EX1JFQ1ZJRF9MSVNULAotCQkJCURQX0hEQ1BfMl8yX1JFUF9TRU5EX1JFQ1ZJRF9MSVNUX09GRlNFVCwgdHJ1ZSwKLQkJCQlIRENQXzJfMl9SRUNWSURfTElTVF9USU1FT1VUX01TLCAwfSwKLQkJe0hEQ1BfMl8yX1JFUF9TRU5EX0FDSywgRFBfSERDUF8yXzJfUkVQX1NFTkRfQUNLX09GRlNFVCwgZmFsc2UsCi0JCQkJMCwgMH0sCi0JCXtIRENQXzJfMl9SRVBfU1RSRUFNX01BTkFHRSwKLQkJCQlEUF9IRENQXzJfMl9SRVBfU1RSRUFNX01BTkFHRV9PRkZTRVQsIGZhbHNlLAotCQkJCTAsIDB9LAotCQl7SERDUF8yXzJfUkVQX1NUUkVBTV9SRUFEWSwgRFBfSERDUF8yXzJfUkVQX1NUUkVBTV9SRUFEWV9PRkZTRVQsCi0JCQkJZmFsc2UsIEhEQ1BfMl8yX1NUUkVBTV9SRUFEWV9USU1FT1VUX01TLCAwfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaGRjcDJfZHBfbXNnX2RhdGEgaGRjcDJfZHBfbXNnX2RhdGFbXSA9IHsKKwl7IEhEQ1BfMl8yX0FLRV9JTklULCBEUF9IRENQXzJfMl9BS0VfSU5JVF9PRkZTRVQsIGZhbHNlLCAwLCAwIH0sCisJeyBIRENQXzJfMl9BS0VfU0VORF9DRVJULCBEUF9IRENQXzJfMl9BS0VfU0VORF9DRVJUX09GRlNFVCwKKwkgIGZhbHNlLCBIRENQXzJfMl9DRVJUX1RJTUVPVVRfTVMsIDAgfSwKKwl7IEhEQ1BfMl8yX0FLRV9OT19TVE9SRURfS00sIERQX0hEQ1BfMl8yX0FLRV9OT19TVE9SRURfS01fT0ZGU0VULAorCSAgZmFsc2UsIDAsIDAgfSwKKwl7IEhEQ1BfMl8yX0FLRV9TVE9SRURfS00sIERQX0hEQ1BfMl8yX0FLRV9TVE9SRURfS01fT0ZGU0VULAorCSAgZmFsc2UsIDAsIDAgfSwKKwl7IEhEQ1BfMl8yX0FLRV9TRU5EX0hQUklNRSwgRFBfSERDUF8yXzJfQUtFX1NFTkRfSFBSSU1FX09GRlNFVCwKKwkgIHRydWUsIEhEQ1BfMl8yX0hQUklNRV9QQUlSRURfVElNRU9VVF9NUywKKwkgIEhEQ1BfMl8yX0hQUklNRV9OT19QQUlSRURfVElNRU9VVF9NUyB9LAorCXsgSERDUF8yXzJfQUtFX1NFTkRfUEFJUklOR19JTkZPLAorCSAgRFBfSERDUF8yXzJfQUtFX1NFTkRfUEFJUklOR19JTkZPX09GRlNFVCwgdHJ1ZSwKKwkgIEhEQ1BfMl8yX1BBSVJJTkdfVElNRU9VVF9NUywgMCB9LAorCXsgSERDUF8yXzJfTENfSU5JVCwgRFBfSERDUF8yXzJfTENfSU5JVF9PRkZTRVQsIGZhbHNlLCAwLCAwIH0sCisJeyBIRENQXzJfMl9MQ19TRU5EX0xQUklNRSwgRFBfSERDUF8yXzJfTENfU0VORF9MUFJJTUVfT0ZGU0VULAorCSAgZmFsc2UsIEhEQ1BfMl8yX0RQX0xQUklNRV9USU1FT1VUX01TLCAwIH0sCisJeyBIRENQXzJfMl9TS0VfU0VORF9FS1MsIERQX0hEQ1BfMl8yX1NLRV9TRU5EX0VLU19PRkZTRVQsIGZhbHNlLAorCSAgMCwgMCB9LAorCXsgSERDUF8yXzJfUkVQX1NFTkRfUkVDVklEX0xJU1QsCisJICBEUF9IRENQXzJfMl9SRVBfU0VORF9SRUNWSURfTElTVF9PRkZTRVQsIHRydWUsCisJICBIRENQXzJfMl9SRUNWSURfTElTVF9USU1FT1VUX01TLCAwIH0sCisJeyBIRENQXzJfMl9SRVBfU0VORF9BQ0ssIERQX0hEQ1BfMl8yX1JFUF9TRU5EX0FDS19PRkZTRVQsIGZhbHNlLAorCSAgMCwgMCB9LAorCXsgSERDUF8yXzJfUkVQX1NUUkVBTV9NQU5BR0UsCisJICBEUF9IRENQXzJfMl9SRVBfU1RSRUFNX01BTkFHRV9PRkZTRVQsIGZhbHNlLAorCSAgMCwgMCB9LAorCXsgSERDUF8yXzJfUkVQX1NUUkVBTV9SRUFEWSwgRFBfSERDUF8yXzJfUkVQX1NUUkVBTV9SRUFEWV9PRkZTRVQsCisJICBmYWxzZSwgSERDUF8yXzJfU1RSRUFNX1JFQURZX1RJTUVPVVRfTVMsIDAgfSwKIC8qIGxvY2FsIGRlZmluZSB0byBzaG92ZWwgdGhpcyB0aHJvdWdoIHRoZSB3cml0ZV8yXzIgaW50ZXJmYWNlICovCiAjZGVmaW5lIEhEQ1BfMl8yX0VSUkFUQV9EUF9TVFJFQU1fVFlQRQk1MAotCQl7SERDUF8yXzJfRVJSQVRBX0RQX1NUUkVBTV9UWVBFLAotCQkJCURQX0hEQ1BfMl8yX1JFR19TVFJFQU1fVFlQRV9PRkZTRVQsIGZhbHNlLAotCQkJCTAsIDB9LAotCQl9OworCXsgSERDUF8yXzJfRVJSQVRBX0RQX1NUUkVBTV9UWVBFLAorCSAgRFBfSERDUF8yXzJfUkVHX1NUUkVBTV9UWVBFX09GRlNFVCwgZmFsc2UsCisJICAwLCAwIH0sCit9OwogCiBzdGF0aWMgaW5saW5lCiBpbnQgaW50ZWxfZHBfaGRjcDJfcmVhZF9yeF9zdGF0dXMoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCkBAIC02MTEwLDcgKzU5MDgsNyBAQCBpbnQgaGRjcDJfZGV0ZWN0X21zZ19hdmFpbGFiaWxpdHkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAKIHN0YXRpYyBzc2l6ZV90CiBpbnRlbF9kcF9oZGNwMl93YWl0X2Zvcl9tc2coc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCi0JCQkgICAgc3RydWN0IGhkY3AyX2RwX21zZ19kYXRhICpoZGNwMl9tc2dfZGF0YSkKKwkJCSAgICBjb25zdCBzdHJ1Y3QgaGRjcDJfZHBfbXNnX2RhdGEgKmhkY3AyX21zZ19kYXRhKQogewogCXN0cnVjdCBpbnRlbF9kcCAqZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOwogCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmRwLT5hdHRhY2hlZF9jb25uZWN0b3ItPmhkY3A7CkBAIC02MTQ5LDEzICs1OTQ3LDEzIEBAIGludGVsX2RwX2hkY3AyX3dhaXRfZm9yX21zZyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgc3RydWN0IGhkY3AyX2RwX21zZ19kYXRhICpnZXRfaGRjcDJfZHBfbXNnX2RhdGEodTggbXNnX2lkKQorc3RhdGljIGNvbnN0IHN0cnVjdCBoZGNwMl9kcF9tc2dfZGF0YSAqZ2V0X2hkY3AyX2RwX21zZ19kYXRhKHU4IG1zZ19pZCkKIHsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhkY3AyX21zZ19kYXRhKTsgaSsrKQotCQlpZiAoaGRjcDJfbXNnX2RhdGFbaV0ubXNnX2lkID09IG1zZ19pZCkKLQkJCXJldHVybiAmaGRjcDJfbXNnX2RhdGFbaV07CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGRjcDJfZHBfbXNnX2RhdGEpOyBpKyspCisJCWlmIChoZGNwMl9kcF9tc2dfZGF0YVtpXS5tc2dfaWQgPT0gbXNnX2lkKQorCQkJcmV0dXJuICZoZGNwMl9kcF9tc2dfZGF0YVtpXTsKIAogCXJldHVybiBOVUxMOwogfQpAQCAtNjE2OSw3ICs1OTY3LDcgQEAgaW50IGludGVsX2RwX2hkY3AyX3dyaXRlX21zZyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKIAl1bnNpZ25lZCBpbnQgb2Zmc2V0OwogCXU4ICpieXRlID0gYnVmOwogCXNzaXplX3QgcmV0LCBieXRlc190b193cml0ZSwgbGVuOwotCXN0cnVjdCBoZGNwMl9kcF9tc2dfZGF0YSAqaGRjcDJfbXNnX2RhdGE7CisJY29uc3Qgc3RydWN0IGhkY3AyX2RwX21zZ19kYXRhICpoZGNwMl9tc2dfZGF0YTsKIAogCWhkY3AyX21zZ19kYXRhID0gZ2V0X2hkY3AyX2RwX21zZ19kYXRhKCpieXRlKTsKIAlpZiAoIWhkY3AyX21zZ19kYXRhKQpAQCAtNjIzMyw3ICs2MDMxLDcgQEAgaW50IGludGVsX2RwX2hkY3AyX3JlYWRfbXNnKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCXVuc2lnbmVkIGludCBvZmZzZXQ7CiAJdTggKmJ5dGUgPSBidWY7CiAJc3NpemVfdCByZXQsIGJ5dGVzX3RvX3JlY3YsIGxlbjsKLQlzdHJ1Y3QgaGRjcDJfZHBfbXNnX2RhdGEgKmhkY3AyX21zZ19kYXRhOworCWNvbnN0IHN0cnVjdCBoZGNwMl9kcF9tc2dfZGF0YSAqaGRjcDJfbXNnX2RhdGE7CiAKIAloZGNwMl9tc2dfZGF0YSA9IGdldF9oZGNwMl9kcF9tc2dfZGF0YShtc2dfaWQpOwogCWlmICghaGRjcDJfbXNnX2RhdGEpCkBAIC02ODM1LDggKzY2MzMsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9zZXRfZHJyc19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICBpbnQgcmVmcmVzaF9yYXRlKQogewotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gTlVMTDsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZGV2X3ByaXYtPmRycnMuZHA7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CiAJZW51bSBkcnJzX3JlZnJlc2hfcmF0ZV90eXBlIGluZGV4ID0gRFJSU19ISUdIX1JSOwpAQCAtNjg1MSw5ICs2NjQ3LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlyZXR1cm47CiAJfQogCi0JZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Ci0JZW5jb2RlciA9ICZkaWdfcG9ydC0+YmFzZTsKLQogCWlmICghaW50ZWxfY3J0YykgewogCQlEUk1fREVCVUdfS01TKCJEUlJTOiBpbnRlbF9jcnRjIG5vdCBpbml0aWFsaXplZFxuIik7CiAJCXJldHVybjsKQEAgLTczMzMsNiArNzEyNiw3IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9lbmNvZGVyLT5wb3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KTsKIAlpbnQgdHlwZTsKIAogCS8qIEluaXRpYWxpemUgdGhlIHdvcmsgZm9yIG1vZGVzZXQgaW4gY2FzZSBvZiBsaW5rIHRyYWluIGZhaWx1cmUgKi8KQEAgLTczNTksNyArNzE1Myw3IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCQkgKiBDdXJyZW50bHkgd2UgZG9uJ3Qgc3VwcG9ydCBlRFAgb24gVHlwZUMgcG9ydHMsIGFsdGhvdWdoIGluCiAJCSAqIHRoZW9yeSBpdCBjb3VsZCB3b3JrIG9uIFR5cGVDIGxlZ2FjeSBwb3J0cy4KIAkJICovCi0JCVdBUk5fT04oaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpOworCQlXQVJOX09OKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSk7CiAJCXR5cGUgPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQOwogCX0gZWxzZSB7CiAJCXR5cGUgPSBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmgKaW5kZXggZGE3MGIxYS4uNjU3YmJiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuaApAQCAtMTEyLDggKzExMiw2IEBAIGJvb2wgaW50ZWxfZHBfZ2V0X2NvbG9yaW1ldHJ5X3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKIGludCBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGludCBwaXhlbF9jbG9jaywgaW50IGJwcCk7CiBpbnQgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShpbnQgbWF4X2xpbmtfY2xvY2ssIGludCBtYXhfbGFuZXMpOwogYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKLXZvaWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaW50ZWxfZHBfdW51c2VkX2xhbmVfbWFzayhpbnQgbGFuZV9jb3VudCkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMKaW5kZXggN2RlZDk1YS4uMDIwNDIyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMKQEAgLTIyLDggKzIyLDggQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAKIHN0YXRpYyB2b2lkIHNldF9hdXhfYmFja2xpZ2h0X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBib29sIGVuYWJsZSkKIHsKQEAgLTI2NCw4ICsyNjQsMTEgQEAgaW50ZWxfZHBfYXV4X2Rpc3BsYXlfY29udHJvbF9jYXBhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIGludCBpbnRlbF9kcF9hdXhfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQogewogCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmaW50ZWxfY29ubmVjdG9yLT5wYW5lbDsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2Nvbm5lY3Rvci0+YmFzZS5kZXYpOwogCi0JaWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVfZHBjZF9iYWNrbGlnaHQpCisJaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9kcGNkX2JhY2tsaWdodCA9PSAwIHx8CisJICAgIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZHBjZF9iYWNrbGlnaHQgPT0gLTEgJiYKKwkgICAgZGV2X3ByaXYtPnZidC5iYWNrbGlnaHQudHlwZSAhPSBJTlRFTF9CQUNLTElHSFRfVkVTQV9FRFBfQVVYX0lOVEVSRkFDRSkpCiAJCXJldHVybiAtRU5PREVWOwogCiAJaWYgKCFpbnRlbF9kcF9hdXhfZGlzcGxheV9jb250cm9sX2NhcGFibGUoaW50ZWxfY29ubmVjdG9yKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbGlua190cmFpbmluZy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKaW5kZXggOWIxZmNjZS4uMmExMTMwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKQEAgLTIxLDkgKzIxLDkgQEAKICAqIElOIFRIRSBTT0ZUV0FSRS4KICAqLwogCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2RwLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHBfbGlua190cmFpbmluZy5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgogCiBzdGF0aWMgdm9pZAogaW50ZWxfZHBfZHVtcF9saW5rX3N0YXR1cyhjb25zdCB1OCBsaW5rX3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCmluZGV4IDhhYTZhMzEuLjZkZjI0MGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwpAQCAtMzIsMTAgKzMyLDEwIEBACiAjaW5jbHVkZSAiaW50ZWxfYXVkaW8uaCIKICNpbmNsdWRlICJpbnRlbF9jb25uZWN0b3IuaCIKICNpbmNsdWRlICJpbnRlbF9kZGkuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHAuaCIKICNpbmNsdWRlICJpbnRlbF9kcF9tc3QuaCIKICNpbmNsdWRlICJpbnRlbF9kcGlvX3BoeS5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgogCiBzdGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCkBAIC0zNDYsMTEgKzM0Niw4IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlEUk1fREVCVUdfS01TKCJhY3RpdmUgbGlua3MgJWRcbiIsIGludGVsX2RwLT5hY3RpdmVfbXN0X2xpbmtzKTsKIAotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgRFBfVFBfU1RBVFVTKHBvcnQpLAotCQkJCSAgICBEUF9UUF9TVEFUVVNfQUNUX1NFTlQsCi0JCQkJICAgIERQX1RQX1NUQVRVU19BQ1RfU0VOVCwKLQkJCQkgICAgMSkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgRFBfVFBfU1RBVFVTKHBvcnQpLAorCQkJCSAgRFBfVFBfU1RBVFVTX0FDVF9TRU5ULCAxKSkKIAkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgQUNUIHNlbnRcbiIpOwogCiAJZHJtX2RwX2NoZWNrX2FjdF9zdGF0dXMoJmludGVsX2RwLT5tc3RfbWdyKTsKQEAgLTYxOCw3ICs2MTUsNyBAQCBpbnRlbF9kcF9jcmVhdGVfZmFrZV9tc3RfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgZW51bQogCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRFBfTVNUOwogCWludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvd2VyX2RvbWFpbjsKIAlpbnRlbF9lbmNvZGVyLT5wb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UucG9ydDsKLQlpbnRlbF9lbmNvZGVyLT5jcnRjX21hc2sgPSAweDc7CisJaW50ZWxfZW5jb2Rlci0+Y3J0Y19tYXNrID0gQklUKHBpcGUpOwogCWludGVsX2VuY29kZXItPmNsb25lYWJsZSA9IDA7CiAKIAlpbnRlbF9lbmNvZGVyLT5jb21wdXRlX2NvbmZpZyA9IGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZzsKQEAgLTY0OCw2ICs2NDUsMTIgQEAgaW50ZWxfZHBfY3JlYXRlX2Zha2VfbXN0X2VuY29kZXJzKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQogfQogCiBpbnQKK2ludGVsX2RwX21zdF9lbmNvZGVyX2FjdGl2ZV9saW5rcyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKK3sKKwlyZXR1cm4gaW50ZWxfZGlnX3BvcnQtPmRwLmFjdGl2ZV9tc3RfbGlua3M7Cit9CisKK2ludAogaW50ZWxfZHBfbXN0X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgaW50IGNvbm5fYmFzZV9pZCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5oCmluZGV4IDE0NzBjNmUuLmY2NjBhZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuaApAQCAtMTAsNSArMTAsNiBAQCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0OwogCiBpbnQgaW50ZWxfZHBfbXN0X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgaW50IGNvbm5faWQpOwogdm9pZCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9jbGVhbnVwKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KTsKK2ludCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9hY3RpdmVfbGlua3Moc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOwogCiAjZW5kaWYgLyogX19JTlRFTF9EUF9NU1RfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwaW9fcGh5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwaW9fcGh5LmMKaW5kZXggN2NjZjdmMy4uNTU2ZDFiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGlvX3BoeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBpb19waHkuYwpAQCAtMjMsOCArMjMsOCBAQAogCiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kcC5oIgogCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2RwaW9fcGh5LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfc2lkZWJhbmQuaCIKIAogLyoqCkBAIC0zNDUsMTAgKzM0NSw4IEBAIHN0YXRpYyB1MzIgYnh0X2dldF9ncmMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIGRwaW9fcGh5IHBoeSkKIHN0YXRpYyB2b2lkIGJ4dF9waHlfd2FpdF9ncmNfZG9uZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICBlbnVtIGRwaW9fcGh5IHBoeSkKIHsKLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIEJYVF9QT1JUX1JFRl9EVzMocGh5KSwKLQkJCQkgICAgR1JDX0RPTkUsIEdSQ19ET05FLAotCQkJCSAgICAxMCkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgQlhUX1BPUlRfUkVGX0RXMyhwaHkpLAorCQkJCSAgR1JDX0RPTkUsIDEwKSkKIAkJRFJNX0VSUk9SKCJ0aW1lb3V0IHdhaXRpbmcgZm9yIFBIWSVkIEdSQ1xuIiwgcGh5KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5jCmluZGV4IDJkNGU3YjkuLmI4MTQ4ZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMKQEAgLTIxLDkgKzIxLDkgQEAKICAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KICAqLwogCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2RwaW9fcGh5LmgiCiAjaW5jbHVkZSAiaW50ZWxfZHBsbF9tZ3IuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKIAogLyoqCiAgKiBET0M6IERpc3BsYXkgUExMcwpAQCAtMzYsOSArMzYsMTAgQEAKICAqIFRoaXMgZmlsZSBwcm92aWRlcyBhbiBhYnN0cmFjdGlvbiBvdmVyIGRpc3BsYXkgUExMcy4gVGhlIGZ1bmN0aW9uCiAgKiBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KCkgaW5pdGlhbGl6ZXMgdGhlIFBMTHMgZm9yIHRoZSBnaXZlbiBwbGF0Zm9ybS4gIFRoZQogICogdXNlcnMgb2YgYSBQTEwgYXJlIHRyYWNrZWQgYW5kIHRoYXQgdHJhY2tpbmcgaXMgaW50ZWdyYXRlZCB3aXRoIHRoZSBhdG9taWMKLSAqIG1vZGVzdCBpbnRlcmZhY2UuIER1cmluZyBhbiBhdG9taWMgb3BlcmF0aW9uLCBhIFBMTCBjYW4gYmUgcmVxdWVzdGVkIGZvciBhCi0gKiBnaXZlbiBDUlRDIGFuZCBlbmNvZGVyIGNvbmZpZ3VyYXRpb24gYnkgY2FsbGluZyBpbnRlbF9nZXRfc2hhcmVkX2RwbGwoKSBhbmQKLSAqIGEgcHJldmlvdXNseSB1c2VkIFBMTCBjYW4gYmUgcmVsZWFzZWQgd2l0aCBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxsKCkuCisgKiBtb2RzZXQgaW50ZXJmYWNlLiBEdXJpbmcgYW4gYXRvbWljIG9wZXJhdGlvbiwgcmVxdWlyZWQgUExMcyBjYW4gYmUgcmVzZXJ2ZWQKKyAqIGZvciBhIGdpdmVuIENSVEMgYW5kIGVuY29kZXIgY29uZmlndXJhdGlvbiBieSBjYWxsaW5nCisgKiBpbnRlbF9yZXNlcnZlX3NoYXJlZF9kcGxscygpIGFuZCBwcmV2aW91c2x5IHJlc2VydmVkIFBMTHMgY2FuIGJlIHJlbGVhc2VkCisgKiB3aXRoIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxzKCkuCiAgKiBDaGFuZ2VzIHRvIHRoZSB1c2VycyBhcmUgZmlyc3Qgc3RhZ2VkIGluIHRoZSBhdG9taWMgc3RhdGUsIGFuZCB0aGVuIG1hZGUKICAqIGVmZmVjdGl2ZSBieSBjYWxsaW5nIGludGVsX3NoYXJlZF9kcGxsX3N3YXBfc3RhdGUoKSBkdXJpbmcgdGhlIGF0b21pYwogICogY29tbWl0IHBoYXNlLgpAQCAtMjQzLDE3ICsyNDQsMTggQEAgdm9pZCBpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogfQogCiBzdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKLWludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCitpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqcGxsX3N0YXRlLAogCQkgICAgICAgZW51bSBpbnRlbF9kcGxsX2lkIHJhbmdlX21pbiwKIAkJICAgICAgIGVudW0gaW50ZWxfZHBsbF9pZCByYW5nZV9tYXgpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsICp1bnVzZWRfcGxsID0gTlVMTDsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgKnNoYXJlZF9kcGxsOwogCWVudW0gaW50ZWxfZHBsbF9pZCBpOwogCi0Jc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCXNoYXJlZF9kcGxsID0gaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZSgmc3RhdGUtPmJhc2UpOwogCiAJZm9yIChpID0gcmFuZ2VfbWluOyBpIDw9IHJhbmdlX21heDsgaSsrKSB7CiAJCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwpAQCAtMjY1LDkgKzI2Nyw5IEBAIGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQljb250aW51ZTsKIAkJfQogCi0JCWlmIChtZW1jbXAoJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsCisJCWlmIChtZW1jbXAocGxsX3N0YXRlLAogCQkJICAgJnNoYXJlZF9kcGxsW2ldLmh3X3N0YXRlLAotCQkJICAgc2l6ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKSA9PSAwKSB7CisJCQkgICBzaXplb2YoKnBsbF9zdGF0ZSkpID09IDApIHsKIAkJCURSTV9ERUJVR19LTVMoIltDUlRDOiVkOiVzXSBzaGFyaW5nIGV4aXN0aW5nICVzIChjcnRjIG1hc2sgMHglMDh4LCBhY3RpdmUgJXgpXG4iLAogCQkJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lLAogCQkJCSAgICAgIHBsbC0+aW5mby0+bmFtZSwKQEAgLTI4OSwyNiArMjkxLDUxIEBAIGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB9CiAKIHN0YXRpYyB2b2lkCi1pbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCi0JCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCitpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCisJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgKnNoYXJlZF9kcGxsOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCWNvbnN0IGVudW0gaW50ZWxfZHBsbF9pZCBpZCA9IHBsbC0+aW5mby0+aWQ7CiAKLQlzaGFyZWRfZHBsbCA9IGludGVsX2F0b21pY19nZXRfc2hhcmVkX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7CisJc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKCZzdGF0ZS0+YmFzZSk7CiAKIAlpZiAoc2hhcmVkX2RwbGxbaWRdLmNydGNfbWFzayA9PSAwKQotCQlzaGFyZWRfZHBsbFtpZF0uaHdfc3RhdGUgPQotCQkJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKKwkJc2hhcmVkX2RwbGxbaWRdLmh3X3N0YXRlID0gKnBsbF9zdGF0ZTsKIAotCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gcGxsOwogCURSTV9ERUJVR19EUklWRVIoInVzaW5nICVzIGZvciBwaXBlICVjXG4iLCBwbGwtPmluZm8tPm5hbWUsCiAJCQkgcGlwZV9uYW1lKGNydGMtPnBpcGUpKTsKIAogCXNoYXJlZF9kcGxsW2lkXS5jcnRjX21hc2sgfD0gMSA8PCBjcnRjLT5waXBlOwogfQogCitzdGF0aWMgdm9pZCBpbnRlbF91bnJlZmVyZW5jZV9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCkKK3sKKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgKnNoYXJlZF9kcGxsOworCisJc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKCZzdGF0ZS0+YmFzZSk7CisJc2hhcmVkX2RwbGxbcGxsLT5pbmZvLT5pZF0uY3J0Y19tYXNrICY9IH4oMSA8PCBjcnRjLT5waXBlKTsKK30KKworc3RhdGljIHZvaWQgaW50ZWxfcHV0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3sKKwljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKworCW5ld19jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IE5VTEw7CisKKwlpZiAoIW9sZF9jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCkKKwkJcmV0dXJuOworCisJaW50ZWxfdW5yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCk7Cit9CisKIC8qKgogICogaW50ZWxfc2hhcmVkX2RwbGxfc3dhcF9zdGF0ZSAtIG1ha2UgYXRvbWljIERQTEwgY29uZmlndXJhdGlvbiBlZmZlY3RpdmUKICAqIEBzdGF0ZTogYXRvbWljIHN0YXRlCkBAIC0zMjAsMjUgKzM0NywyMCBAQCBpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCiAgKiBpLmUuIGl0IGFsc28gcHV0cyB0aGUgY3VycmVudCBzdGF0ZSBpbnRvIEBzdGF0ZSwgZXZlbiB0aG91Z2ggdGhlcmUgaXMgbm8KICAqIG5lZWQgZm9yIHRoYXQgYXQgdGhpcyBtb21lbnQuCiAgKi8KLXZvaWQgaW50ZWxfc2hhcmVkX2RwbGxfc3dhcF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit2b2lkIGludGVsX3NoYXJlZF9kcGxsX3N3YXBfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgKnNoYXJlZF9kcGxsOwotCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgKnNoYXJlZF9kcGxsID0gc3RhdGUtPnNoYXJlZF9kcGxsOwogCWVudW0gaW50ZWxfZHBsbF9pZCBpOwogCi0JaWYgKCF0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5kcGxsX3NldCkKKwlpZiAoIXN0YXRlLT5kcGxsX3NldCkKIAkJcmV0dXJuOwogCi0Jc2hhcmVkX2RwbGwgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5zaGFyZWRfZHBsbDsKIAlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7Ci0JCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9zdGF0ZSB0bXA7CisJCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0KKwkJCSZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwogCi0JCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwotCi0JCXRtcCA9IHBsbC0+c3RhdGU7Ci0JCXBsbC0+c3RhdGUgPSBzaGFyZWRfZHBsbFtpXTsKLQkJc2hhcmVkX2RwbGxbaV0gPSB0bXA7CisJCXN3YXAocGxsLT5zdGF0ZSwgc2hhcmVkX2RwbGxbaV0pOwogCX0KIH0KIApAQCAtNDIxLDExICs0NDMsMTIgQEAgc3RhdGljIHZvaWQgaWJ4X3BjaF9kcGxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXVkZWxheSgyMDApOwogfQogCi1zdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKLWlieF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIGJvb2wgaWJ4X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CiAJZW51bSBpbnRlbF9kcGxsX2lkIGk7CkBAIC00MzksMTggKzQ2MiwyMiBAQCBpYnhfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSwKIAkJCSAgICAgIHBsbC0+aW5mby0+bmFtZSk7CiAJfSBlbHNlIHsKLQkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLAorCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAogCQkJCQkgICAgIERQTExfSURfUENIX1BMTF9BLAogCQkJCQkgICAgIERQTExfSURfUENIX1BMTF9CKTsKIAl9CiAKIAlpZiAoIXBsbCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsKIAogCS8qIHJlZmVyZW5jZSB0aGUgcGxsICovCi0JaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CisJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKIAotCXJldHVybiBwbGw7CisJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgaWJ4X2R1bXBfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtNzY3LDggKzc5NCwxMiBAQCBoc3dfZGRpX2NhbGN1bGF0ZV93cnBsbChpbnQgY2xvY2sgLyogaW4gSHogKi8sCiAJKnIyX291dCA9IGJlc3QucjI7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmhzd19kZGlfaGRtaV9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgoraHN3X2RkaV9oZG1pX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwogCXUzMiB2YWw7CiAJdW5zaWduZWQgaW50IHAsIG4yLCByMjsKQEAgLTc4MSw3ICs4MTIsOCBAQCBzdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpoc3dfZGRpX2hkbWlfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKgogCiAJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS53cnBsbCA9IHZhbDsKIAotCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0Y19zdGF0ZSwKKwlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsCiAJCQkJICAgICBEUExMX0lEX1dSUExMMSwgRFBMTF9JRF9XUlBMTDIpOwogCiAJaWYgKCFwbGwpCkBAIC04MjEsMzggKzg1Myw0NCBAQCBoc3dfZGRpX2RwX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXJldHVybiBwbGw7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgotaHN3X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCSAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgYm9vbCBoc3dfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAogCW1lbXNldCgmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwgMCwKIAkgICAgICAgc2l6ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKTsKIAogCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSkgewotCQlwbGwgPSBoc3dfZGRpX2hkbWlfZ2V0X2RwbGwoY3J0Y19zdGF0ZSk7CisJCXBsbCA9IGhzd19kZGlfaGRtaV9nZXRfZHBsbChzdGF0ZSwgY3J0Yyk7CiAJfSBlbHNlIGlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKSB7CiAJCXBsbCA9IGhzd19kZGlfZHBfZ2V0X2RwbGwoY3J0Y19zdGF0ZSk7CiAJfSBlbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9BTkFMT0cpKSB7CiAJCWlmIChXQVJOX09OKGNydGNfc3RhdGUtPnBvcnRfY2xvY2sgLyAyICE9IDEzNTAwMCkpCi0JCQlyZXR1cm4gTlVMTDsKKwkJCXJldHVybiBmYWxzZTsKIAogCQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLnNwbGwgPQogCQkJU1BMTF9QTExfRU5BQkxFIHwgU1BMTF9GUkVRXzEzNTBNSHogfCBTUExMX1JFRl9NVVhFRF9TU0M7CiAKLQkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLAorCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAogCQkJCQkgICAgIERQTExfSURfU1BMTCwgRFBMTF9JRF9TUExMKTsKIAl9IGVsc2UgewotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAogCWlmICghcGxsKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCi0JaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CisJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKIAotCXJldHVybiBwbGw7CisJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgaHN3X2R1bXBfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtOTYyLDExICsxMDAwLDcgQEAgc3RhdGljIHZvaWQgc2tsX2RkaV9wbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlJOTE1X1dSSVRFKHJlZ3NbaWRdLmN0bCwKIAkJICAgSTkxNV9SRUFEKHJlZ3NbaWRdLmN0bCkgfCBMQ1BMTF9QTExfRU5BQkxFKTsKIAotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgRFBMTF9TVEFUVVMsCi0JCQkJICAgIERQTExfTE9DSyhpZCksCi0JCQkJICAgIERQTExfTE9DSyhpZCksCi0JCQkJICAgIDUpKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIERQTExfU1RBVFVTLCBEUExMX0xPQ0soaWQpLCA1KSkKIAkJRFJNX0VSUk9SKCJEUExMICVkIG5vdCBsb2NrZWRcbiIsIGlkKTsKIH0KIApAQCAtMTM4NSwxMCArMTQxOSwxMiBAQCBza2xfZGRpX2RwX3NldF9kcGxsX2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKLXNrbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIGJvb2wgc2tsX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogeworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CiAJYm9vbCBicmV0OwogCkBAIC0xMzk2LDMyICsxNDMyLDM3IEBAIHNrbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJYnJldCA9IHNrbF9kZGlfaGRtaV9wbGxfZGl2aWRlcnMoY3J0Y19zdGF0ZSk7CiAJCWlmICghYnJldCkgewogCQkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGdldCBIRE1JIHBsbCBkaXZpZGVycy5cbiIpOwotCQkJcmV0dXJuIE5VTEw7CisJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAl9IGVsc2UgaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIoY3J0Y19zdGF0ZSkpIHsKIAkJYnJldCA9IHNrbF9kZGlfZHBfc2V0X2RwbGxfaHdfc3RhdGUoY3J0Y19zdGF0ZSk7CiAJCWlmICghYnJldCkgewogCQkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IHNldCBEUCBkcGxsIEhXIHN0YXRlLlxuIik7Ci0JCQlyZXR1cm4gTlVMTDsKKwkJCXJldHVybiBmYWxzZTsKIAkJfQogCX0gZWxzZSB7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0VEUCkpCi0JCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0Y19zdGF0ZSwKKwkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkJICAgICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwKIAkJCQkJICAgICBEUExMX0lEX1NLTF9EUExMMCwKIAkJCQkJICAgICBEUExMX0lEX1NLTF9EUExMMCk7CiAJZWxzZQotCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCisJCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJCSAgICAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsCiAJCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDEsCiAJCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDMpOwogCWlmICghcGxsKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCi0JaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CisJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKIAotCXJldHVybiBwbGw7CisJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgc2tsX2R1bXBfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMTgyNywyMiArMTg2OCwyMyBAQCBieHRfZGRpX2hkbWlfc2V0X2RwbGxfaHdfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJcmV0dXJuIGJ4dF9kZGlfc2V0X2RwbGxfaHdfc3RhdGUoY3J0Y19zdGF0ZSwgJmNsa19kaXYpOwogfQogCi1zdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKLWJ4dF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIGJvb2wgYnh0X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CiAJZW51bSBpbnRlbF9kcGxsX2lkIGlkOwogCiAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hETUkpICYmCiAJICAgICFieHRfZGRpX2hkbWlfc2V0X2RwbGxfaHdfc3RhdGUoY3J0Y19zdGF0ZSkpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZmFsc2U7CiAKIAlpZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSAmJgogCSAgICAhYnh0X2RkaV9kcF9zZXRfZHBsbF9od19zdGF0ZShjcnRjX3N0YXRlKSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsKIAogCS8qIDE6MSBtYXBwaW5nIGJldHdlZW4gcG9ydHMgYW5kIFBMTHMgKi8KIAlpZCA9IChlbnVtIGludGVsX2RwbGxfaWQpIGVuY29kZXItPnBvcnQ7CkBAIC0xODUxLDkgKzE4OTMsMTIgQEAgYnh0X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCURSTV9ERUJVR19LTVMoIltDUlRDOiVkOiVzXSB1c2luZyBwcmUtYWxsb2NhdGVkICVzXG4iLAogCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSwgcGxsLT5pbmZvLT5uYW1lKTsKIAotCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOworCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7CiAKLQlyZXR1cm4gcGxsOworCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gcGxsOworCisJcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIGJ4dF9kdW1wX2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTE4ODQsOSArMTkyOSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2Z1bmNzIGJ4dF9kZGlfcGxsX2Z1bmNzID0gewogc3RydWN0IGludGVsX2RwbGxfbWdyIHsKIAljb25zdCBzdHJ1Y3QgZHBsbF9pbmZvICpkcGxsX2luZm87CiAKLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKigqZ2V0X2RwbGwpKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Ci0KKwlib29sICgqZ2V0X2RwbGxzKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKKwl2b2lkICgqcHV0X2RwbGxzKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgc3RydWN0IGludGVsX2NydGMgKmNydGMpOworCXZvaWQgKCp1cGRhdGVfYWN0aXZlX2RwbGwpKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKIAl2b2lkICgqZHVtcF9od19zdGF0ZSkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKmh3X3N0YXRlKTsKIH07CkBAIC0xODk5LDcgKzE5NDksOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBwY2hfcGxsc1tdID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIHBjaF9wbGxfbWdyID0gewogCS5kcGxsX2luZm8gPSBwY2hfcGxscywKLQkuZ2V0X2RwbGwgPSBpYnhfZ2V0X2RwbGwsCisJLmdldF9kcGxscyA9IGlieF9nZXRfZHBsbCwKKwkucHV0X2RwbGxzID0gaW50ZWxfcHV0X2RwbGwsCiAJLmR1bXBfaHdfc3RhdGUgPSBpYnhfZHVtcF9od19zdGF0ZSwKIH07CiAKQEAgLTE5MTUsNyArMTk2Niw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIGhzd19wbGxzW10gPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgaHN3X3BsbF9tZ3IgPSB7CiAJLmRwbGxfaW5mbyA9IGhzd19wbGxzLAotCS5nZXRfZHBsbCA9IGhzd19nZXRfZHBsbCwKKwkuZ2V0X2RwbGxzID0gaHN3X2dldF9kcGxsLAorCS5wdXRfZHBsbHMgPSBpbnRlbF9wdXRfZHBsbCwKIAkuZHVtcF9od19zdGF0ZSA9IGhzd19kdW1wX2h3X3N0YXRlLAogfTsKIApAQCAtMTkyOSw3ICsxOTgxLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gc2tsX3BsbHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBza2xfcGxsX21nciA9IHsKIAkuZHBsbF9pbmZvID0gc2tsX3BsbHMsCi0JLmdldF9kcGxsID0gc2tsX2dldF9kcGxsLAorCS5nZXRfZHBsbHMgPSBza2xfZ2V0X2RwbGwsCisJLnB1dF9kcGxscyA9IGludGVsX3B1dF9kcGxsLAogCS5kdW1wX2h3X3N0YXRlID0gc2tsX2R1bXBfaHdfc3RhdGUsCiB9OwogCkBAIC0xOTQyLDcgKzE5OTUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBieHRfcGxsc1tdID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIGJ4dF9wbGxfbWdyID0gewogCS5kcGxsX2luZm8gPSBieHRfcGxscywKLQkuZ2V0X2RwbGwgPSBieHRfZ2V0X2RwbGwsCisJLmdldF9kcGxscyA9IGJ4dF9nZXRfZHBsbCwKKwkucHV0X2RwbGxzID0gaW50ZWxfcHV0X2RwbGwsCiAJLmR1bXBfaHdfc3RhdGUgPSBieHRfZHVtcF9od19zdGF0ZSwKIH07CiAKQEAgLTE5NTgsMTEgKzIwMTIsOCBAQCBzdGF0aWMgdm9pZCBjbmxfZGRpX3BsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCUk5MTVfV1JJVEUoQ05MX0RQTExfRU5BQkxFKGlkKSwgdmFsKTsKIAogCS8qIDIuIFdhaXQgZm9yIERQTEwgcG93ZXIgc3RhdGUgZW5hYmxlZCBpbiBEUExMX0VOQUJMRS4gKi8KLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIENOTF9EUExMX0VOQUJMRShpZCksCi0JCQkJICAgIFBMTF9QT1dFUl9TVEFURSwKLQkJCQkgICAgUExMX1BPV0VSX1NUQVRFLAotCQkJCSAgICA1KSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBDTkxfRFBMTF9FTkFCTEUoaWQpLAorCQkJCSAgUExMX1BPV0VSX1NUQVRFLCA1KSkKIAkJRFJNX0VSUk9SKCJQTEwgJWQgUG93ZXIgbm90IGVuYWJsZWRcbiIsIGlkKTsKIAogCS8qCkBAIC0xOTk5LDExICsyMDUwLDcgQEAgc3RhdGljIHZvaWQgY25sX2RkaV9wbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlJOTE1X1dSSVRFKENOTF9EUExMX0VOQUJMRShpZCksIHZhbCk7CiAKIAkvKiA3LiBXYWl0IGZvciBQTEwgbG9jayBzdGF0dXMgaW4gRFBMTF9FTkFCTEUuICovCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBDTkxfRFBMTF9FTkFCTEUoaWQpLAotCQkJCSAgICBQTExfTE9DSywKLQkJCQkgICAgUExMX0xPQ0ssCi0JCQkJICAgIDUpKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIENOTF9EUExMX0VOQUJMRShpZCksIFBMTF9MT0NLLCA1KSkKIAkJRFJNX0VSUk9SKCJQTEwgJWQgbm90IGxvY2tlZFxuIiwgaWQpOwogCiAJLyoKQEAgLTIwNDcsMTEgKzIwOTQsNyBAQCBzdGF0aWMgdm9pZCBjbmxfZGRpX3BsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlJOTE1X1dSSVRFKENOTF9EUExMX0VOQUJMRShpZCksIHZhbCk7CiAKIAkvKiA0LiBXYWl0IGZvciBQTEwgbm90IGxvY2tlZCBzdGF0dXMgaW4gRFBMTF9FTkFCTEUuICovCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBDTkxfRFBMTF9FTkFCTEUoaWQpLAotCQkJCSAgICBQTExfTE9DSywKLQkJCQkgICAgMCwKLQkJCQkgICAgNSkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2LCBDTkxfRFBMTF9FTkFCTEUoaWQpLCBQTExfTE9DSywgNSkpCiAJCURSTV9FUlJPUigiUExMICVkIGxvY2tlZFxuIiwgaWQpOwogCiAJLyoKQEAgLTIwNjksMTEgKzIxMTIsOCBAQCBzdGF0aWMgdm9pZCBjbmxfZGRpX3BsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlJOTE1X1dSSVRFKENOTF9EUExMX0VOQUJMRShpZCksIHZhbCk7CiAKIAkvKiA3LiBXYWl0IGZvciBEUExMIHBvd2VyIHN0YXRlIGRpc2FibGVkIGluIERQTExfRU5BQkxFLiAqLwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgQ05MX0RQTExfRU5BQkxFKGlkKSwKLQkJCQkgICAgUExMX1BPV0VSX1NUQVRFLAotCQkJCSAgICAwLAotCQkJCSAgICA1KSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIENOTF9EUExMX0VOQUJMRShpZCksCisJCQkJICAgIFBMTF9QT1dFUl9TVEFURSwgNSkpCiAJCURSTV9FUlJPUigiUExMICVkIFBvd2VyIG5vdCBkaXNhYmxlZFxuIiwgaWQpOwogfQogCkBAIC0yMzMyLDEwICsyMzcyLDEyIEBAIGNubF9kZGlfZHBfc2V0X2RwbGxfaHdfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgotY25sX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCSAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgYm9vbCBjbmxfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAlib29sIGJyZXQ7CiAKQEAgLTIzNDMsMzEgKzIzODUsMzUgQEAgY25sX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlicmV0ID0gY25sX2RkaV9oZG1pX3BsbF9kaXZpZGVycyhjcnRjX3N0YXRlKTsKIAkJaWYgKCFicmV0KSB7CiAJCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3QgZ2V0IEhETUkgcGxsIGRpdmlkZXJzLlxuIik7Ci0JCQlyZXR1cm4gTlVMTDsKKwkJCXJldHVybiBmYWxzZTsKIAkJfQogCX0gZWxzZSBpZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSkgewogCQlicmV0ID0gY25sX2RkaV9kcF9zZXRfZHBsbF9od19zdGF0ZShjcnRjX3N0YXRlKTsKIAkJaWYgKCFicmV0KSB7CiAJCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3Qgc2V0IERQIGRwbGwgSFcgc3RhdGUuXG4iKTsKLQkJCXJldHVybiBOVUxMOworCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJfSBlbHNlIHsKIAkJRFJNX0RFQlVHX0tNUygiU2tpcCBEUExMIHNldHVwIGZvciBvdXRwdXRfdHlwZXMgMHgleFxuIiwKIAkJCSAgICAgIGNydGNfc3RhdGUtPm91dHB1dF90eXBlcyk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLAorCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJICAgICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwKIAkJCQkgICAgIERQTExfSURfU0tMX0RQTEwwLAogCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDIpOwogCWlmICghcGxsKSB7CiAJCURSTV9ERUJVR19LTVMoIk5vIFBMTCBzZWxlY3RlZFxuIik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CisJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKIAotCXJldHVybiBwbGw7CisJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgY25sX2R1bXBfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMjM5NCw3ICsyNDQwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gY25sX3BsbHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBjbmxfcGxsX21nciA9IHsKIAkuZHBsbF9pbmZvID0gY25sX3BsbHMsCi0JLmdldF9kcGxsID0gY25sX2dldF9kcGxsLAorCS5nZXRfZHBsbHMgPSBjbmxfZ2V0X2RwbGwsCisJLnB1dF9kcGxscyA9IGludGVsX3B1dF9kcGxsLAogCS5kdW1wX2h3X3N0YXRlID0gY25sX2R1bXBfaHdfc3RhdGUsCiB9OwogCkBAIC0yNTA2LDE0ICsyNTUzLDE2IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX3RidF9wbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB9CiAKIHN0YXRpYyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCisJCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKIAl1MzIgY2ZnY3IwLCBjZmdjcjE7CiAJc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgcGxsX3BhcmFtcyA9IHsgMCB9OwogCWJvb2wgcmV0OwogCi0JaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQorCWlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LAorCQkJCQkJCWVuY29kZXItPnBvcnQpKSkKIAkJcmV0ID0gaWNsX2NhbGNfdGJ0X3BsbChjcnRjX3N0YXRlLCAmcGxsX3BhcmFtcyk7CiAJZWxzZSBpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkgfHwKIAkJIGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RTSSkpCkBAIC0yNTMwLDE0ICsyNTc5LDE3IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJY2ZnY3IxID0gRFBMTF9DRkdDUjFfUURJVl9SQVRJTyhwbGxfcGFyYW1zLnFkaXZfcmF0aW8pIHwKIAkJIERQTExfQ0ZHQ1IxX1FESVZfTU9ERShwbGxfcGFyYW1zLnFkaXZfbW9kZSkgfAogCQkgRFBMTF9DRkdDUjFfS0RJVihwbGxfcGFyYW1zLmtkaXYpIHwKLQkJIERQTExfQ0ZHQ1IxX1BESVYocGxsX3BhcmFtcy5wZGl2KSB8Ci0JCSBEUExMX0NGR0NSMV9DRU5UUkFMX0ZSRVFfODQwMDsKKwkJIERQTExfQ0ZHQ1IxX1BESVYocGxsX3BhcmFtcy5wZGl2KTsKIAotCW1lbXNldCgmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwgMCwKLQkgICAgICAgc2l6ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKTsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKKwkJY2ZnY3IxIHw9IFRHTF9EUExMX0NGR0NSMV9DRlNFTE9WUkRfTk9STUFMX1hUQUw7CisJZWxzZQorCQljZmdjcjEgfD0gRFBMTF9DRkdDUjFfQ0VOVFJBTF9GUkVRXzg0MDA7CiAKLQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLmNmZ2NyMCA9IGNmZ2NyMDsKLQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLmNmZ2NyMSA9IGNmZ2NyMTsKKwltZW1zZXQocGxsX3N0YXRlLCAwLCBzaXplb2YoKnBsbF9zdGF0ZSkpOworCisJcGxsX3N0YXRlLT5jZmdjcjAgPSBjZmdjcjA7CisJcGxsX3N0YXRlLT5jZmdjcjEgPSBjZmdjcjE7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTI2MjcsMTAgKzI2NzksMTAgQEAgc3RhdGljIGJvb2wgaWNsX21nX3BsbF9maW5kX2Rpdmlzb3JzKGludCBjbG9ja19raHosIGJvb2wgaXNfZHAsIGJvb2wgdXNlX3NzYywKICAqIFRoZSBzcGVjaWZpY2F0aW9uIGZvciB0aGlzIGZ1bmN0aW9uIHVzZXMgcmVhbCBudW1iZXJzLCBzbyB0aGUgbWF0aCBoYWQgdG8gYmUKICAqIGFkYXB0ZWQgdG8gaW50ZWdlci1vbmx5IGNhbGN1bGF0aW9uLCB0aGF0J3Mgd2h5IGl0IGxvb2tzIHNvIGRpZmZlcmVudC4KICAqLwotc3RhdGljIGJvb2wgaWNsX2NhbGNfbWdfcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQorc3RhdGljIGJvb2wgaWNsX2NhbGNfbWdfcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJCSAgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqcGxsX3N0YXRlID0gJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGU7CiAJaW50IHJlZmNsa19raHogPSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmOwogCWludCBjbG9jayA9IGNydGNfc3RhdGUtPnBvcnRfY2xvY2s7CiAJdTMyIGRjb19raHosIG0xZGl2LCBtMmRpdl9pbnQsIG0yZGl2X3JlbSwgbTJkaXZfZnJhYzsKQEAgLTI3OTIsNjMgKzI4NDQsMTg0IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX21nX3BsbF9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCi1pY2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKKy8qKgorICogaWNsX3NldF9hY3RpdmVfcG9ydF9kcGxsIC0gc2VsZWN0IHRoZSBhY3RpdmUgcG9ydCBEUExMIGZvciBhIGdpdmVuIENSVEMKKyAqIEBjcnRjX3N0YXRlOiBzdGF0ZSBmb3IgdGhlIENSVEMgdG8gc2VsZWN0IHRoZSBEUExMIGZvcgorICogQHBvcnRfZHBsbF9pZDogdGhlIGFjdGl2ZSBAcG9ydF9kcGxsX2lkIHRvIHNlbGVjdAorICoKKyAqIFNlbGVjdCB0aGUgZ2l2ZW4gQHBvcnRfZHBsbF9pZCBpbnN0YW5jZSBmcm9tIHRoZSBEUExMcyByZXNlcnZlZCBmb3IgdGhlCisgKiBDUlRDLgorICovCit2b2lkIGljbF9zZXRfYWN0aXZlX3BvcnRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAgIGVudW0gaWNsX3BvcnRfZHBsbF9pZCBwb3J0X2RwbGxfaWQpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7Ci0Jc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CisJc3RydWN0IGljbF9wb3J0X2RwbGwgKnBvcnRfZHBsbCA9CisJCSZjcnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxsc1twb3J0X2RwbGxfaWRdOworCisJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwb3J0X2RwbGwtPnBsbDsKKwljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlID0gcG9ydF9kcGxsLT5od19zdGF0ZTsKK30KKworc3RhdGljIHZvaWQgaWNsX3VwZGF0ZV9hY3RpdmVfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKnByaW1hcnlfcG9ydDsKKwllbnVtIGljbF9wb3J0X2RwbGxfaWQgcG9ydF9kcGxsX2lkID0gSUNMX1BPUlRfRFBMTF9ERUZBVUxUOworCisJcHJpbWFyeV9wb3J0ID0gZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUID8KKwkJZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSktPnByaW1hcnkgOgorCQllbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCisJaWYgKHByaW1hcnlfcG9ydCAmJgorCSAgICAocHJpbWFyeV9wb3J0LT50Y19tb2RlID09IFRDX1BPUlRfRFBfQUxUIHx8CisJICAgICBwcmltYXJ5X3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9MRUdBQ1kpKQorCQlwb3J0X2RwbGxfaWQgPSBJQ0xfUE9SVF9EUExMX01HX1BIWTsKKworCWljbF9zZXRfYWN0aXZlX3BvcnRfZHBsbChjcnRjX3N0YXRlLCBwb3J0X2RwbGxfaWQpOworfQorCitzdGF0aWMgYm9vbCBpY2xfZ2V0X2NvbWJvX3BoeV9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQoreworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisJc3RydWN0IGljbF9wb3J0X2RwbGwgKnBvcnRfZHBsbCA9CisJCSZjcnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxsc1tJQ0xfUE9SVF9EUExMX0RFRkFVTFRdOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKLQllbnVtIGludGVsX2RwbGxfaWQgbWluLCBtYXg7Ci0JYm9vbCByZXQ7CisJYm9vbCBoYXNfZHBsbDQgPSBmYWxzZTsKIAotCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkgewotCQltaW4gPSBEUExMX0lEX0lDTF9EUExMMDsKLQkJbWF4ID0gRFBMTF9JRF9JQ0xfRFBMTDE7Ci0JCXJldCA9IGljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwgZW5jb2Rlcik7Ci0JfSBlbHNlIGlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBwb3J0KSkgewotCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKSB7Ci0JCQlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKm1zdF9lbmNvZGVyOworCWlmICghaWNsX2NhbGNfZHBsbF9zdGF0ZShjcnRjX3N0YXRlLCBlbmNvZGVyLCAmcG9ydF9kcGxsLT5od19zdGF0ZSkpIHsKKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGNhbGN1bGF0ZSBjb21ibyBQSFkgUExMIHN0YXRlLlxuIik7CiAKLQkJCW1zdF9lbmNvZGVyID0gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSk7Ci0JCQlpbnRlbF9kaWdfcG9ydCA9IG1zdF9lbmNvZGVyLT5wcmltYXJ5OwotCQl9IGVsc2UgewotCQkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwotCQl9Ci0KLQkJaWYgKGludGVsX2RpZ19wb3J0LT50Y190eXBlID09IFRDX1BPUlRfVEJUKSB7Ci0JCQltaW4gPSBEUExMX0lEX0lDTF9UQlRQTEw7Ci0JCQltYXggPSBtaW47Ci0JCQlyZXQgPSBpY2xfY2FsY19kcGxsX3N0YXRlKGNydGNfc3RhdGUsIGVuY29kZXIpOwotCQl9IGVsc2UgewotCQkJZW51bSB0Y19wb3J0IHRjX3BvcnQ7Ci0KLQkJCXRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBwb3J0KTsKLQkJCW1pbiA9IGljbF90Y19wb3J0X3RvX3BsbF9pZCh0Y19wb3J0KTsKLQkJCW1heCA9IG1pbjsKLQkJCXJldCA9IGljbF9jYWxjX21nX3BsbF9zdGF0ZShjcnRjX3N0YXRlKTsKLQkJfQotCX0gZWxzZSB7Ci0JCU1JU1NJTkdfQ0FTRShwb3J0KTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlpZiAoIXJldCkgewotCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3QgY2FsY3VsYXRlIFBMTCBzdGF0ZS5cbiIpOwotCQlyZXR1cm4gTlVMTDsKKwlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmIHBvcnQgIT0gUE9SVF9BKQorCQloYXNfZHBsbDQgPSB0cnVlOworCisJcG9ydF9kcGxsLT5wbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCQkJJnBvcnRfZHBsbC0+aHdfc3RhdGUsCisJCQkJCQlEUExMX0lEX0lDTF9EUExMMCwKKwkJCQkJCWhhc19kcGxsNCA/IERQTExfSURfRUhMX0RQTEw0CisJCQkJCQkJICA6IERQTExfSURfSUNMX0RQTEwxKTsKKwlpZiAoIXBvcnRfZHBsbC0+cGxsKSB7CisJCURSTV9ERUJVR19LTVMoIk5vIGNvbWJvIFBIWSBQTEwgZm91bmQgZm9yIHBvcnQgJWNcbiIsCisJCQkgICAgICBwb3J0X25hbWUoZW5jb2Rlci0+cG9ydCkpOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCisJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwb3J0X2RwbGwtPnBsbCwgJnBvcnRfZHBsbC0+aHdfc3RhdGUpOwogCi0JcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLCBtaW4sIG1heCk7Ci0JaWYgKCFwbGwpIHsKLQkJRFJNX0RFQlVHX0tNUygiTm8gUExMIHNlbGVjdGVkXG4iKTsKLQkJcmV0dXJuIE5VTEw7CisJaWNsX3VwZGF0ZV9hY3RpdmVfZHBsbChzdGF0ZSwgY3J0YywgZW5jb2Rlcik7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgaWNsX2dldF90Y19waHlfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJCSBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlzdHJ1Y3QgaWNsX3BvcnRfZHBsbCAqcG9ydF9kcGxsOworCWVudW0gaW50ZWxfZHBsbF9pZCBkcGxsX2lkOworCisJcG9ydF9kcGxsID0gJmNydGNfc3RhdGUtPmljbF9wb3J0X2RwbGxzW0lDTF9QT1JUX0RQTExfREVGQVVMVF07CisJaWYgKCFpY2xfY2FsY19kcGxsX3N0YXRlKGNydGNfc3RhdGUsIGVuY29kZXIsICZwb3J0X2RwbGwtPmh3X3N0YXRlKSkgeworCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3QgY2FsY3VsYXRlIFRCVCBQTEwgc3RhdGUuXG4iKTsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAotCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOworCXBvcnRfZHBsbC0+cGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkJCSZwb3J0X2RwbGwtPmh3X3N0YXRlLAorCQkJCQkJRFBMTF9JRF9JQ0xfVEJUUExMLAorCQkJCQkJRFBMTF9JRF9JQ0xfVEJUUExMKTsKKwlpZiAoIXBvcnRfZHBsbC0+cGxsKSB7CisJCURSTV9ERUJVR19LTVMoIk5vIFRCVC1BTFQgUExMIGZvdW5kXG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJICAgIHBvcnRfZHBsbC0+cGxsLCAmcG9ydF9kcGxsLT5od19zdGF0ZSk7CiAKLQlyZXR1cm4gcGxsOworCisJcG9ydF9kcGxsID0gJmNydGNfc3RhdGUtPmljbF9wb3J0X2RwbGxzW0lDTF9QT1JUX0RQTExfTUdfUEhZXTsKKwlpZiAoIWljbF9jYWxjX21nX3BsbF9zdGF0ZShjcnRjX3N0YXRlLCAmcG9ydF9kcGxsLT5od19zdGF0ZSkpIHsKKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGNhbGN1bGF0ZSBNRyBQSFkgUExMIHN0YXRlLlxuIik7CisJCWdvdG8gZXJyX3VucmVmZXJlbmNlX3RidF9wbGw7CisJfQorCisJZHBsbF9pZCA9IGljbF90Y19wb3J0X3RvX3BsbF9pZChpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LAorCQkJCQkJCSBlbmNvZGVyLT5wb3J0KSk7CisJcG9ydF9kcGxsLT5wbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCQkJJnBvcnRfZHBsbC0+aHdfc3RhdGUsCisJCQkJCQlkcGxsX2lkLAorCQkJCQkJZHBsbF9pZCk7CisJaWYgKCFwb3J0X2RwbGwtPnBsbCkgeworCQlEUk1fREVCVUdfS01TKCJObyBNRyBQSFkgUExMIGZvdW5kXG4iKTsKKwkJZ290byBlcnJfdW5yZWZlcmVuY2VfdGJ0X3BsbDsKKwl9CisJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwb3J0X2RwbGwtPnBsbCwgJnBvcnRfZHBsbC0+aHdfc3RhdGUpOworCisJaWNsX3VwZGF0ZV9hY3RpdmVfZHBsbChzdGF0ZSwgY3J0YywgZW5jb2Rlcik7CisKKwlyZXR1cm4gdHJ1ZTsKKworZXJyX3VucmVmZXJlbmNlX3RidF9wbGw6CisJcG9ydF9kcGxsID0gJmNydGNfc3RhdGUtPmljbF9wb3J0X2RwbGxzW0lDTF9QT1JUX0RQTExfREVGQVVMVF07CisJaW50ZWxfdW5yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsIHBvcnRfZHBsbC0+cGxsKTsKKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgaWNsX2dldF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7CisKKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQorCQlyZXR1cm4gaWNsX2dldF9jb21ib19waHlfZHBsbChzdGF0ZSwgY3J0YywgZW5jb2Rlcik7CisJZWxzZSBpZiAoaW50ZWxfcGh5X2lzX3RjKGRldl9wcml2LCBwaHkpKQorCQlyZXR1cm4gaWNsX2dldF90Y19waHlfZHBsbHMoc3RhdGUsIGNydGMsIGVuY29kZXIpOworCisJTUlTU0lOR19DQVNFKHBoeSk7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkIGljbF9wdXRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQoreworCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCWVudW0gaWNsX3BvcnRfZHBsbF9pZCBpZDsKKworCW5ld19jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IE5VTEw7CisKKwlmb3IgKGlkID0gSUNMX1BPUlRfRFBMTF9ERUZBVUxUOyBpZCA8IElDTF9QT1JUX0RQTExfQ09VTlQ7IGlkKyspIHsKKwkJY29uc3Qgc3RydWN0IGljbF9wb3J0X2RwbGwgKm9sZF9wb3J0X2RwbGwgPQorCQkJJm9sZF9jcnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxsc1tpZF07CisJCXN0cnVjdCBpY2xfcG9ydF9kcGxsICpuZXdfcG9ydF9kcGxsID0KKwkJCSZuZXdfY3J0Y19zdGF0ZS0+aWNsX3BvcnRfZHBsbHNbaWRdOworCisJCW5ld19wb3J0X2RwbGwtPnBsbCA9IE5VTEw7CisKKwkJaWYgKCFvbGRfcG9ydF9kcGxsLT5wbGwpCisJCQljb250aW51ZTsKKworCQlpbnRlbF91bnJlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0Yywgb2xkX3BvcnRfZHBsbC0+cGxsKTsKKwl9CiB9CiAKIHN0YXRpYyBib29sIG1nX3BsbF9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMjkzMiw4ICszMTA1LDE4IEBAIHN0YXRpYyBib29sIGljbF9wbGxfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoISh2YWwgJiBQTExfRU5BQkxFKSkKIAkJZ290byBvdXQ7CiAKLQlod19zdGF0ZS0+Y2ZnY3IwID0gSTkxNV9SRUFEKElDTF9EUExMX0NGR0NSMChpZCkpOwotCWh3X3N0YXRlLT5jZmdjcjEgPSBJOTE1X1JFQUQoSUNMX0RQTExfQ0ZHQ1IxKGlkKSk7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKKwkJaHdfc3RhdGUtPmNmZ2NyMCA9IEk5MTVfUkVBRChUR0xfRFBMTF9DRkdDUjAoaWQpKTsKKwkJaHdfc3RhdGUtPmNmZ2NyMSA9IEk5MTVfUkVBRChUR0xfRFBMTF9DRkdDUjEoaWQpKTsKKwl9IGVsc2UgeworCQlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmIGlkID09IERQTExfSURfRUhMX0RQTEw0KSB7CisJCQlod19zdGF0ZS0+Y2ZnY3IwID0gSTkxNV9SRUFEKElDTF9EUExMX0NGR0NSMCg0KSk7CisJCQlod19zdGF0ZS0+Y2ZnY3IxID0gSTkxNV9SRUFEKElDTF9EUExMX0NGR0NSMSg0KSk7CisJCX0gZWxzZSB7CisJCQlod19zdGF0ZS0+Y2ZnY3IwID0gSTkxNV9SRUFEKElDTF9EUExMX0NGR0NSMChpZCkpOworCQkJaHdfc3RhdGUtPmNmZ2NyMSA9IEk5MTVfUkVBRChJQ0xfRFBMTF9DRkdDUjEoaWQpKTsKKwkJfQorCX0KIAogCXJldCA9IHRydWU7CiBvdXQ6CkBAIC0yOTQ1LDggKzMxMjgsMTQgQEAgc3RhdGljIGJvb2wgY29tYm9fcGxsX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCiAJCQkJICAgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKmh3X3N0YXRlKQogewotCXJldHVybiBpY2xfcGxsX2dldF9od19zdGF0ZShkZXZfcHJpdiwgcGxsLCBod19zdGF0ZSwKLQkJCQkgICAgQ05MX0RQTExfRU5BQkxFKHBsbC0+aW5mby0+aWQpKTsKKwlpOTE1X3JlZ190IGVuYWJsZV9yZWcgPSBDTkxfRFBMTF9FTkFCTEUocGxsLT5pbmZvLT5pZCk7CisKKwlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmCisJICAgIHBsbC0+aW5mby0+aWQgPT0gRFBMTF9JRF9FSExfRFBMTDQpIHsKKwkJZW5hYmxlX3JlZyA9IE1HX1BMTF9FTkFCTEUoMCk7CisJfQorCisJcmV0dXJuIGljbF9wbGxfZ2V0X2h3X3N0YXRlKGRldl9wcml2LCBwbGwsIGh3X3N0YXRlLCBlbmFibGVfcmVnKTsKIH0KIAogc3RhdGljIGJvb2wgdGJ0X3BsbF9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMjk2MSwxMCArMzE1MCwyNCBAQCBzdGF0aWMgdm9pZCBpY2xfZHBsbF93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKmh3X3N0YXRlID0gJnBsbC0+c3RhdGUuaHdfc3RhdGU7CiAJY29uc3QgZW51bSBpbnRlbF9kcGxsX2lkIGlkID0gcGxsLT5pbmZvLT5pZDsKKwlpOTE1X3JlZ190IGNmZ2NyMF9yZWcsIGNmZ2NyMV9yZWc7CiAKLQlJOTE1X1dSSVRFKElDTF9EUExMX0NGR0NSMChpZCksIGh3X3N0YXRlLT5jZmdjcjApOwotCUk5MTVfV1JJVEUoSUNMX0RQTExfQ0ZHQ1IxKGlkKSwgaHdfc3RhdGUtPmNmZ2NyMSk7Ci0JUE9TVElOR19SRUFEKElDTF9EUExMX0NGR0NSMShpZCkpOworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKSB7CisJCWNmZ2NyMF9yZWcgPSBUR0xfRFBMTF9DRkdDUjAoaWQpOworCQljZmdjcjFfcmVnID0gVEdMX0RQTExfQ0ZHQ1IxKGlkKTsKKwl9IGVsc2UgeworCQlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmIGlkID09IERQTExfSURfRUhMX0RQTEw0KSB7CisJCQljZmdjcjBfcmVnID0gSUNMX0RQTExfQ0ZHQ1IwKDQpOworCQkJY2ZnY3IxX3JlZyA9IElDTF9EUExMX0NGR0NSMSg0KTsKKwkJfSBlbHNlIHsKKwkJCWNmZ2NyMF9yZWcgPSBJQ0xfRFBMTF9DRkdDUjAoaWQpOworCQkJY2ZnY3IxX3JlZyA9IElDTF9EUExMX0NGR0NSMShpZCk7CisJCX0KKwl9CisKKwlJOTE1X1dSSVRFKGNmZ2NyMF9yZWcsIGh3X3N0YXRlLT5jZmdjcjApOworCUk5MTVfV1JJVEUoY2ZnY3IxX3JlZywgaHdfc3RhdGUtPmNmZ2NyMSk7CisJUE9TVElOR19SRUFEKGNmZ2NyMV9yZWcpOwogfQogCiBzdGF0aWMgdm9pZCBpY2xfbWdfcGxsX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTMwMzEsOCArMzIzNCw3IEBAIHN0YXRpYyB2b2lkIGljbF9wbGxfcG93ZXJfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKiBUaGUgc3BlYyBzYXlzIHdlIG5lZWQgdG8gIndhaXQiIGJ1dCBpdCBhbHNvIHNheXMgaXQgc2hvdWxkIGJlCiAJICogaW1tZWRpYXRlLgogCSAqLwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwgZW5hYmxlX3JlZywKLQkJCQkgICAgUExMX1BPV0VSX1NUQVRFLCBQTExfUE9XRVJfU1RBVEUsIDEpKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIGVuYWJsZV9yZWcsIFBMTF9QT1dFUl9TVEFURSwgMSkpCiAJCURSTV9FUlJPUigiUExMICVkIFBvd2VyIG5vdCBlbmFibGVkXG4iLCBwbGwtPmluZm8tPmlkKTsKIH0KIApAQCAtMzA0Nyw4ICszMjQ5LDcgQEAgc3RhdGljIHZvaWQgaWNsX3BsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCUk5MTVfV1JJVEUoZW5hYmxlX3JlZywgdmFsKTsKIAogCS8qIFRpbWVvdXQgaXMgYWN0dWFsbHkgNjAwdXMuICovCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLCBlbmFibGVfcmVnLAotCQkJCSAgICBQTExfTE9DSywgUExMX0xPQ0ssIDEpKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIGVuYWJsZV9yZWcsIFBMTF9MT0NLLCAxKSkKIAkJRFJNX0VSUk9SKCJQTEwgJWQgbm90IGxvY2tlZFxuIiwgcGxsLT5pbmZvLT5pZCk7CiB9CiAKQEAgLTMwNTcsNiArMzI1OCwxOSBAQCBzdGF0aWMgdm9pZCBjb21ib19wbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHsKIAlpOTE1X3JlZ190IGVuYWJsZV9yZWcgPSBDTkxfRFBMTF9FTkFCTEUocGxsLT5pbmZvLT5pZCk7CiAKKwlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmCisJICAgIHBsbC0+aW5mby0+aWQgPT0gRFBMTF9JRF9FSExfRFBMTDQpIHsKKwkJZW5hYmxlX3JlZyA9IE1HX1BMTF9FTkFCTEUoMCk7CisKKwkJLyoKKwkJICogV2UgbmVlZCB0byBkaXNhYmxlIERDIHN0YXRlcyB3aGVuIHRoaXMgRFBMTCBpcyBlbmFibGVkLgorCQkgKiBUaGlzIGNhbiBiZSBkb25lIGJ5IHRha2luZyBhIHJlZmVyZW5jZSBvbiBEUExMNCBwb3dlcgorCQkgKiBkb21haW4uCisJCSAqLworCQlwbGwtPndha2VyZWYgPSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwKKwkJCQkJCSAgICAgICBQT1dFUl9ET01BSU5fRFBMTF9EQ19PRkYpOworCX0KKwogCWljbF9wbGxfcG93ZXJfZW5hYmxlKGRldl9wcml2LCBwbGwsIGVuYWJsZV9yZWcpOwogCiAJaWNsX2RwbGxfd3JpdGUoZGV2X3ByaXYsIHBsbCk7CkBAIC0zMTMwLDggKzMzNDQsNyBAQCBzdGF0aWMgdm9pZCBpY2xfcGxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCUk5MTVfV1JJVEUoZW5hYmxlX3JlZywgdmFsKTsKIAogCS8qIFRpbWVvdXQgaXMgYWN0dWFsbHkgMXVzLiAqLwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgZW5hYmxlX3JlZywgUExMX0xPQ0ssIDAsIDEpKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9jbGVhcihkZXZfcHJpdiwgZW5hYmxlX3JlZywgUExMX0xPQ0ssIDEpKQogCQlEUk1fRVJST1IoIlBMTCAlZCBsb2NrZWRcbiIsIHBsbC0+aW5mby0+aWQpOwogCiAJLyogRFZGUyBwb3N0IHNlcXVlbmNlIHdvdWxkIGJlIGhlcmUuIFNlZSB0aGUgY29tbWVudCBhYm92ZS4gKi8KQEAgLTMxNDQsMTUgKzMzNTcsMjYgQEAgc3RhdGljIHZvaWQgaWNsX3BsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKiBUaGUgc3BlYyBzYXlzIHdlIG5lZWQgdG8gIndhaXQiIGJ1dCBpdCBhbHNvIHNheXMgaXQgc2hvdWxkIGJlCiAJICogaW1tZWRpYXRlLgogCSAqLwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgZW5hYmxlX3JlZywgUExMX1BPV0VSX1NUQVRFLCAwLCAxKSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIGVuYWJsZV9yZWcsIFBMTF9QT1dFUl9TVEFURSwgMSkpCiAJCURSTV9FUlJPUigiUExMICVkIFBvd2VyIG5vdCBkaXNhYmxlZFxuIiwgcGxsLT5pbmZvLT5pZCk7CiB9CiAKIHN0YXRpYyB2b2lkIGNvbWJvX3BsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQogewotCWljbF9wbGxfZGlzYWJsZShkZXZfcHJpdiwgcGxsLCBDTkxfRFBMTF9FTkFCTEUocGxsLT5pbmZvLT5pZCkpOworCWk5MTVfcmVnX3QgZW5hYmxlX3JlZyA9IENOTF9EUExMX0VOQUJMRShwbGwtPmluZm8tPmlkKTsKKworCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikgJiYKKwkgICAgcGxsLT5pbmZvLT5pZCA9PSBEUExMX0lEX0VITF9EUExMNCkgeworCQllbmFibGVfcmVnID0gTUdfUExMX0VOQUJMRSgwKTsKKwkJaWNsX3BsbF9kaXNhYmxlKGRldl9wcml2LCBwbGwsIGVuYWJsZV9yZWcpOworCisJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fRFBMTF9EQ19PRkYsCisJCQkJCXBsbC0+d2FrZXJlZik7CisJCXJldHVybjsKKwl9CisKKwlpY2xfcGxsX2Rpc2FibGUoZGV2X3ByaXYsIHBsbCwgZW5hYmxlX3JlZyk7CiB9CiAKIHN0YXRpYyB2b2lkIHRidF9wbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC0zMjIzLDE5ICszNDQ3LDM4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIGljbF9wbGxzW10gPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgaWNsX3BsbF9tZ3IgPSB7CiAJLmRwbGxfaW5mbyA9IGljbF9wbGxzLAotCS5nZXRfZHBsbCA9IGljbF9nZXRfZHBsbCwKKwkuZ2V0X2RwbGxzID0gaWNsX2dldF9kcGxscywKKwkucHV0X2RwbGxzID0gaWNsX3B1dF9kcGxscywKKwkudXBkYXRlX2FjdGl2ZV9kcGxsID0gaWNsX3VwZGF0ZV9hY3RpdmVfZHBsbCwKIAkuZHVtcF9od19zdGF0ZSA9IGljbF9kdW1wX2h3X3N0YXRlLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gZWhsX3BsbHNbXSA9IHsKIAl7ICJEUExMIDAiLCAmY29tYm9fcGxsX2Z1bmNzLCBEUExMX0lEX0lDTF9EUExMMCwgMCB9LAogCXsgIkRQTEwgMSIsICZjb21ib19wbGxfZnVuY3MsIERQTExfSURfSUNMX0RQTEwxLCAwIH0sCisJeyAiRFBMTCA0IiwgJmNvbWJvX3BsbF9mdW5jcywgRFBMTF9JRF9FSExfRFBMTDQsIDAgfSwKIAl7IH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIGVobF9wbGxfbWdyID0gewogCS5kcGxsX2luZm8gPSBlaGxfcGxscywKLQkuZ2V0X2RwbGwgPSBpY2xfZ2V0X2RwbGwsCisJLmdldF9kcGxscyA9IGljbF9nZXRfZHBsbHMsCisJLnB1dF9kcGxscyA9IGljbF9wdXRfZHBsbHMsCisJLmR1bXBfaHdfc3RhdGUgPSBpY2xfZHVtcF9od19zdGF0ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIHRnbF9wbGxzW10gPSB7CisJeyAiRFBMTCAwIiwgJmNvbWJvX3BsbF9mdW5jcywgRFBMTF9JRF9JQ0xfRFBMTDAsICAwIH0sCisJeyAiRFBMTCAxIiwgJmNvbWJvX3BsbF9mdW5jcywgRFBMTF9JRF9JQ0xfRFBMTDEsICAwIH0sCisJeyAiVEJUIFBMTCIsICAmdGJ0X3BsbF9mdW5jcywgRFBMTF9JRF9JQ0xfVEJUUExMLCAwIH0sCisJLyogVE9ETzogQWRkIHR5cGVDIHBsbHMgKi8KKwl7IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIHRnbF9wbGxfbWdyID0geworCS5kcGxsX2luZm8gPSB0Z2xfcGxscywKKwkuZ2V0X2RwbGxzID0gaWNsX2dldF9kcGxscywKKwkucHV0X2RwbGxzID0gaWNsX3B1dF9kcGxscywKIAkuZHVtcF9od19zdGF0ZSA9IGljbF9kdW1wX2h3X3N0YXRlLAogfTsKIApAQCAtMzI1Miw3ICszNDk1LDkgQEAgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJY29uc3Qgc3RydWN0IGRwbGxfaW5mbyAqZHBsbF9pbmZvOwogCWludCBpOwogCi0JaWYgKElTX0VMS0hBUlRMQUtFKGRldl9wcml2KSkKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKKwkJZHBsbF9tZ3IgPSAmdGdsX3BsbF9tZ3I7CisJZWxzZSBpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpKQogCQlkcGxsX21nciA9ICZlaGxfcGxsX21ncjsKIAllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQogCQlkcGxsX21nciA9ICZpY2xfcGxsX21ncjsKQEAgLTMyODcsNTAgKzM1MzIsODcgQEAgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB9CiAKIC8qKgotICogaW50ZWxfZ2V0X3NoYXJlZF9kcGxsIC0gZ2V0IGEgc2hhcmVkIERQTEwgZm9yIENSVEMgYW5kIGVuY29kZXIgY29tYmluYXRpb24KLSAqIEBjcnRjX3N0YXRlOiBhdG9taWMgc3RhdGUgZm9yIHRoZSBjcnRjCisgKiBpbnRlbF9yZXNlcnZlX3NoYXJlZF9kcGxscyAtIHJlc2VydmUgRFBMTHMgZm9yIENSVEMgYW5kIGVuY29kZXIgY29tYmluYXRpb24KKyAqIEBzdGF0ZTogYXRvbWljIHN0YXRlCisgKiBAY3J0YzogQ1JUQyB0byByZXNlcnZlIERQTExzIGZvcgogICogQGVuY29kZXI6IGVuY29kZXIKICAqCi0gKiBGaW5kIGFuIGFwcHJvcHJpYXRlIERQTEwgZm9yIHRoZSBnaXZlbiBDUlRDIGFuZCBlbmNvZGVyIGNvbWJpbmF0aW9uLiBBCi0gKiByZWZlcmVuY2UgZnJvbSB0aGUgQGNydGNfc3RhdGUgdG8gdGhlIHJldHVybmVkIHBsbCBpcyByZWdpc3RlcmVkIGluIHRoZQotICogYXRvbWljIHN0YXRlLiBUaGF0IGNvbmZpZ3VyYXRpb24gaXMgbWFkZSBlZmZlY3RpdmUgYnkgY2FsbGluZwotICogaW50ZWxfc2hhcmVkX2RwbGxfc3dhcF9zdGF0ZSgpLiBUaGUgcmVmZXJlbmNlIHNob3VsZCBiZSByZWxlYXNlZCBieSBjYWxsaW5nCi0gKiBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxsKCkuCisgKiBUaGlzIGZ1bmN0aW9uIHJlc2VydmVzIGFsbCByZXF1aXJlZCBEUExMcyBmb3IgdGhlIGdpdmVuIENSVEMgYW5kIGVuY29kZXIKKyAqIGNvbWJpbmF0aW9uIGluIHRoZSBjdXJyZW50IGF0b21pYyBjb21taXQgQHN0YXRlIGFuZCB0aGUgbmV3IEBjcnRjIGF0b21pYworICogc3RhdGUuCisgKgorICogVGhlIG5ldyBjb25maWd1cmF0aW9uIGluIHRoZSBhdG9taWMgY29tbWl0IEBzdGF0ZSBpcyBtYWRlIGVmZmVjdGl2ZSBieQorICogY2FsbGluZyBpbnRlbF9zaGFyZWRfZHBsbF9zd2FwX3N0YXRlKCkuCisgKgorICogVGhlIHJlc2VydmVkIERQTExzIHNob3VsZCBiZSByZWxlYXNlZCBieSBjYWxsaW5nCisgKiBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxscygpLgogICoKICAqIFJldHVybnM6Ci0gKiBBIHNoYXJlZCBEUExMIHRvIGJlIHVzZWQgYnkgQGNydGNfc3RhdGUgYW5kIEBlbmNvZGVyLgorICogVHJ1ZSBpZiBhbGwgcmVxdWlyZWQgRFBMTHMgd2VyZSBzdWNjZXNzZnVsbHkgcmVzZXJ2ZWQuCiAgKi8KLXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCi1pbnRlbF9nZXRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCSAgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQorYm9vbCBpbnRlbF9yZXNlcnZlX3NoYXJlZF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CiAJY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyICpkcGxsX21nciA9IGRldl9wcml2LT5kcGxsX21ncjsKIAogCWlmIChXQVJOX09OKCFkcGxsX21ncikpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZmFsc2U7CiAKLQlyZXR1cm4gZHBsbF9tZ3ItPmdldF9kcGxsKGNydGNfc3RhdGUsIGVuY29kZXIpOworCXJldHVybiBkcGxsX21nci0+Z2V0X2RwbGxzKHN0YXRlLCBjcnRjLCBlbmNvZGVyKTsKIH0KIAogLyoqCi0gKiBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxsIC0gZW5kIHVzZSBvZiBEUExMIGJ5IENSVEMgaW4gYXRvbWljIHN0YXRlCi0gKiBAZHBsbDogZHBsbCBpbiB1c2UgYnkgQGNydGMKLSAqIEBjcnRjOiBjcnRjCisgKiBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxscyAtIGVuZCB1c2Ugb2YgRFBMTHMgYnkgQ1JUQyBpbiBhdG9taWMgc3RhdGUKICAqIEBzdGF0ZTogYXRvbWljIHN0YXRlCisgKiBAY3J0YzogY3J0YyBmcm9tIHdoaWNoIHRoZSBEUExMcyBhcmUgdG8gYmUgcmVsZWFzZWQKICAqCi0gKiBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIHRoZSByZWZlcmVuY2UgZnJvbSBAY3J0YyB0byBAZHBsbCBmcm9tIHRoZQotICogYXRvbWljIEBzdGF0ZS4gVGhlIG5ldyBjb25maWd1cmF0aW9uIGlzIG1hZGUgZWZmZWN0aXZlIGJ5IGNhbGxpbmcKLSAqIGludGVsX3NoYXJlZF9kcGxsX3N3YXBfc3RhdGUoKS4KKyAqIFRoaXMgZnVuY3Rpb24gcmVsZWFzZXMgYWxsIERQTExzIHJlc2VydmVkIGJ5IGludGVsX3Jlc2VydmVfc2hhcmVkX2RwbGxzKCkKKyAqIGZyb20gdGhlIGN1cnJlbnQgYXRvbWljIGNvbW1pdCBAc3RhdGUgYW5kIHRoZSBvbGQgQGNydGMgYXRvbWljIHN0YXRlLgorICoKKyAqIFRoZSBuZXcgY29uZmlndXJhdGlvbiBpbiB0aGUgYXRvbWljIGNvbW1pdCBAc3RhdGUgaXMgbWFkZSBlZmZlY3RpdmUgYnkKKyAqIGNhbGxpbmcgaW50ZWxfc2hhcmVkX2RwbGxfc3dhcF9zdGF0ZSgpLgogICovCi12b2lkIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpkcGxsLAotCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAotCQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3ZvaWQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX3N0YXRlICpzaGFyZWRfZHBsbF9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyICpkcGxsX21nciA9IGRldl9wcml2LT5kcGxsX21ncjsKIAotCXNoYXJlZF9kcGxsX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZShzdGF0ZSk7Ci0Jc2hhcmVkX2RwbGxfc3RhdGVbZHBsbC0+aW5mby0+aWRdLmNydGNfbWFzayAmPSB+KDEgPDwgY3J0Yy0+cGlwZSk7CisJLyoKKwkgKiBGSVhNRTogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGV2ZXJ5IHBsYXRmb3JtIGhhdmluZyBhCisJICogY29tcHV0ZV9jbG9jayBob29rLCBldmVuIHRob3VnaCB0aGUgcGxhdGZvcm0gZG9lc24ndCB5ZXQgc3VwcG9ydAorCSAqIHRoZSBzaGFyZWQgRFBMTCBmcmFtZXdvcmsgYW5kIGludGVsX3Jlc2VydmVfc2hhcmVkX2RwbGxzKCkgaXMgbm90CisJICogY2FsbGVkIG9uIHRob3NlLgorCSAqLworCWlmICghZHBsbF9tZ3IpCisJCXJldHVybjsKKworCWRwbGxfbWdyLT5wdXRfZHBsbHMoc3RhdGUsIGNydGMpOworfQorCisvKioKKyAqIGludGVsX3VwZGF0ZV9hY3RpdmVfZHBsbCAtIHVwZGF0ZSB0aGUgYWN0aXZlIERQTEwgZm9yIGEgQ1JUQy9lbmNvZGVyCisgKiBAc3RhdGU6IGF0b21pYyBzdGF0ZQorICogQGNydGM6IHRoZSBDUlRDIGZvciB3aGljaCB0byB1cGRhdGUgdGhlIGFjdGl2ZSBEUExMCisgKiBAZW5jb2RlcjogZW5jb2RlciBkZXRlcm1pbmluZyB0aGUgdHlwZSBvZiBwb3J0IERQTEwKKyAqCisgKiBVcGRhdGUgdGhlIGFjdGl2ZSBEUExMIGZvciB0aGUgZ2l2ZW4gQGNydGMvQGVuY29kZXIgaW4gQGNydGMncyBhdG9taWMgc3RhdGUsCisgKiBmcm9tIHRoZSBwb3J0IERQTExzIHJlc2VydmVkIHByZXZpb3VzbHkgYnkgaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoKS4gVGhlCisgKiBEUExMIHNlbGVjdGVkIHdpbGwgYmUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbW9kZSBvZiB0aGUgZW5jb2RlcidzIHBvcnQuCisgKi8KK3ZvaWQgaW50ZWxfdXBkYXRlX2FjdGl2ZV9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICAgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgKmRwbGxfbWdyID0gZGV2X3ByaXYtPmRwbGxfbWdyOworCisJaWYgKFdBUk5fT04oIWRwbGxfbWdyKSkKKwkJcmV0dXJuOworCisJZHBsbF9tZ3ItPnVwZGF0ZV9hY3RpdmVfZHBsbChzdGF0ZSwgY3J0YywgZW5jb2Rlcik7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5oCmluZGV4IGQwNTcwNDEuLmU3NTg4NzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCiAjaW5jbHVkZSAiaW50ZWxfZGlzcGxheS5oIgorI2luY2x1ZGUgImludGVsX3dha2VyZWYuaCIKIAogLypGSVhNRTogTW92ZSB0aGlzIHRvIGEgbW9yZSBhcHByb3ByaWF0ZSBwbGFjZS4gKi8KICNkZWZpbmUgYWJzX2RpZmYoYSwgYikgKHsJCQlcCkBAIC0zNiw5ICszNyw5IEBACiAJKHZvaWQpICgmX19hID09ICZfX2IpOwkJCVwKIAlfX2EgPiBfX2IgPyAoX19hIC0gX19iKSA6IChfX2IgLSBfX2EpOyB9KQogCi1zdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZTsKIHN0cnVjdCBkcm1fZGV2aWNlOwogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CitzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlOwogc3RydWN0IGludGVsX2NydGM7CiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZTsKIHN0cnVjdCBpbnRlbF9lbmNvZGVyOwpAQCAtMTEwLDM1ICsxMTEsNTkgQEAgZW51bSBpbnRlbF9kcGxsX2lkIHsKIAogCiAJLyoqCi0JICogQERQTExfSURfSUNMX0RQTEwwOiBJQ0wgY29tYm8gUEhZIERQTEwwCisJICogQERQTExfSURfSUNMX0RQTEwwOiBJQ0wvVEdMIGNvbWJvIFBIWSBEUExMMAogCSAqLwogCURQTExfSURfSUNMX0RQTEwwID0gMCwKIAkvKioKLQkgKiBARFBMTF9JRF9JQ0xfRFBMTDE6IElDTCBjb21ibyBQSFkgRFBMTDEKKwkgKiBARFBMTF9JRF9JQ0xfRFBMTDE6IElDTC9UR0wgY29tYm8gUEhZIERQTEwxCiAJICovCiAJRFBMTF9JRF9JQ0xfRFBMTDEgPSAxLAogCS8qKgotCSAqIEBEUExMX0lEX0lDTF9UQlRQTEw6IElDTCBUQlQgUExMCisJICogQERQTExfSURfRUhMX0RQTEw0OiBFSEwgY29tYm8gUEhZIERQTEw0CisJICovCisJRFBMTF9JRF9FSExfRFBMTDQgPSAyLAorCS8qKgorCSAqIEBEUExMX0lEX0lDTF9UQlRQTEw6IElDTC9UR0wgVEJUIFBMTAogCSAqLwogCURQTExfSURfSUNMX1RCVFBMTCA9IDIsCiAJLyoqCi0JICogQERQTExfSURfSUNMX01HUExMMTogSUNMIE1HIFBMTCAxIHBvcnQgMSAoQykKKwkgKiBARFBMTF9JRF9JQ0xfTUdQTEwxOiBJQ0wgTUcgUExMIDEgcG9ydCAxIChDKSwKKwkgKiAgICAgICAgICAgICAgICAgICAgICBUR0wgVEMgUExMIDEgcG9ydCAxIChUQzEpCiAJICovCiAJRFBMTF9JRF9JQ0xfTUdQTEwxID0gMywKIAkvKioKIAkgKiBARFBMTF9JRF9JQ0xfTUdQTEwyOiBJQ0wgTUcgUExMIDEgcG9ydCAyIChEKQorCSAqICAgICAgICAgICAgICAgICAgICAgIFRHTCBUQyBQTEwgMSBwb3J0IDIgKFRDMikKIAkgKi8KIAlEUExMX0lEX0lDTF9NR1BMTDIgPSA0LAogCS8qKgogCSAqIEBEUExMX0lEX0lDTF9NR1BMTDM6IElDTCBNRyBQTEwgMSBwb3J0IDMgKEUpCisJICogICAgICAgICAgICAgICAgICAgICAgVEdMIFRDIFBMTCAxIHBvcnQgMyAoVEMzKQogCSAqLwogCURQTExfSURfSUNMX01HUExMMyA9IDUsCiAJLyoqCiAJICogQERQTExfSURfSUNMX01HUExMNDogSUNMIE1HIFBMTCAxIHBvcnQgNCAoRikKKwkgKiAgICAgICAgICAgICAgICAgICAgICBUR0wgVEMgUExMIDEgcG9ydCA0IChUQzQpCiAJICovCiAJRFBMTF9JRF9JQ0xfTUdQTEw0ID0gNiwKKwkvKioKKwkgKiBARFBMTF9JRF9UR0xfVENQTEw1OiBUR0wgVEMgUExMIHBvcnQgNSAoVEM1KQorCSAqLworCURQTExfSURfVEdMX01HUExMNSA9IDcsCisJLyoqCisJICogQERQTExfSURfVEdMX1RDUExMNjogVEdMIFRDIFBMTCBwb3J0IDYgKFRDNikKKwkgKi8KKwlEUExMX0lEX1RHTF9NR1BMTDYgPSA4LAogfTsKLSNkZWZpbmUgSTkxNV9OVU1fUExMUyA3CisKKyNkZWZpbmUgSTkxNV9OVU1fUExMUyA5CisKK2VudW0gaWNsX3BvcnRfZHBsbF9pZCB7CisJSUNMX1BPUlRfRFBMTF9ERUZBVUxULAorCUlDTF9QT1JUX0RQTExfTUdfUEhZLAorCisJSUNMX1BPUlRfRFBMTF9DT1VOVCwKK307CiAKIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIHsKIAkvKiBpOXh4LCBwY2ggcGxscyAqLwpAQCAtMTk1LDcgKzIyMCw3IEBAIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIHsKICAqIGZ1dHVyZSBzdGF0ZSB3aGljaCB3b3VsZCBiZSBhcHBsaWVkIGJ5IGFuIGF0b21pYyBtb2RlIHNldCAoc3RvcmVkIGluCiAgKiBhIHN0cnVjdCAmaW50ZWxfYXRvbWljX3N0YXRlKS4KICAqCi0gKiBTZWUgYWxzbyBpbnRlbF9nZXRfc2hhcmVkX2RwbGwoKSBhbmQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbCgpLgorICogU2VlIGFsc28gaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoKSBhbmQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbHMoKS4KICAqLwogc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX3N0YXRlIHsKIAkvKioKQEAgLTMxMiw2ICszMzcsNyBAQCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgewogCSAqIEBpbmZvOiBwbGF0Zm9ybSBzcGVjaWZpYyBpbmZvCiAJICovCiAJY29uc3Qgc3RydWN0IGRwbGxfaW5mbyAqaW5mbzsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIH07CiAKICNkZWZpbmUgU0tMX0RQTEwwIDAKQEAgLTMzMSwxNSArMzU3LDIwIEBAIHZvaWQgYXNzZXJ0X3NoYXJlZF9kcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCWJvb2wgc3RhdGUpOwogI2RlZmluZSBhc3NlcnRfc2hhcmVkX2RwbGxfZW5hYmxlZChkLCBwKSBhc3NlcnRfc2hhcmVkX2RwbGwoZCwgcCwgdHJ1ZSkKICNkZWZpbmUgYXNzZXJ0X3NoYXJlZF9kcGxsX2Rpc2FibGVkKGQsIHApIGFzc2VydF9zaGFyZWRfZHBsbChkLCBwLCBmYWxzZSkKLXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqaW50ZWxfZ2V0X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSwKLQkJCQkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKLXZvaWQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmRwbGwsCi0JCQkgICAgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCi0JCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKK2Jvb2wgaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwordm9pZCBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cit2b2lkIGljbF9zZXRfYWN0aXZlX3BvcnRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAgIGVudW0gaWNsX3BvcnRfZHBsbF9pZCBwb3J0X2RwbGxfaWQpOwordm9pZCBpbnRlbF91cGRhdGVfYWN0aXZlX2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKIHZvaWQgaW50ZWxfcHJlcGFyZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwotdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9zd2FwX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cit2b2lkIGludGVsX3NoYXJlZF9kcGxsX3N3YXBfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCiB2b2lkIGludGVsX2RwbGxfZHVtcF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RzaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2kuaAppbmRleCA2ZDIwNDM0Li5iMTViZTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RzaS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpLmgKQEAgLTI2LDcgKzI2LDggQEAKIAogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKworI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKIAogI2RlZmluZSBJTlRFTF9EU0lfVklERU9fTU9ERQkwCiAjZGVmaW5lIElOVEVMX0RTSV9DT01NQU5EX01PREUJMQpAQCAtNDksOCArNTAsMTEgQEAgc3RydWN0IGludGVsX2RzaSB7CiAKIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICphdHRhY2hlZF9jb25uZWN0b3I7CiAKLQkvKiBiaXQgbWFzayBvZiBwb3J0cyBiZWluZyBkcml2ZW4gKi8KLQl1MTYgcG9ydHM7CisJLyogYml0IG1hc2sgb2YgcG9ydHMgKHZsdiBkc2kpIG9yIHBoeXMgKGljbCBkc2kpIGJlaW5nIGRyaXZlbiAqLworCXVuaW9uIHsKKwkJdTE2IHBvcnRzOwkvKiBWTFYgRFNJICovCisJCXUxNiBwaHlzOwkvKiBJQ0wgRFNJICovCisJfTsKIAogCS8qIGlmIHRydWUsIHVzZSBIUyBtb2RlLCBvdGhlcndpc2UgTFAgKi8KIAlib29sIGhzOwpAQCAtMTMyLDcgKzEzNiwxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9kc2lfaG9zdCAqdG9faW50ZWxfZHNpX2hvc3Qoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmgpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihoLCBzdHJ1Y3QgaW50ZWxfZHNpX2hvc3QsIGJhc2UpOwogfQogCi0jZGVmaW5lIGZvcl9lYWNoX2RzaV9wb3J0KF9fcG9ydCwgX19wb3J0c19tYXNrKSBmb3JfZWFjaF9wb3J0X21hc2tlZChfX3BvcnQsIF9fcG9ydHNfbWFzaykKKyNkZWZpbmUgZm9yX2VhY2hfZHNpX3BvcnQoX19wb3J0LCBfX3BvcnRzX21hc2spIFwKKwlmb3JfZWFjaF9wb3J0X21hc2tlZChfX3BvcnQsIF9fcG9ydHNfbWFzaykKKyNkZWZpbmUgZm9yX2VhY2hfZHNpX3BoeShfX3BoeSwgX19waHlzX21hc2spIFwKKwlmb3JfZWFjaF9waHlfbWFza2VkKF9fcGh5LCBfX3BoeXNfbWFzaykKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZHNpICplbmNfdG9faW50ZWxfZHNpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX2Rjc19iYWNrbGlnaHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX2Rjc19iYWNrbGlnaHQuYwppbmRleCA4YzMzMjYyLi5iYjNmZDhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RzaV9kY3NfYmFja2xpZ2h0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2lfZGNzX2JhY2tsaWdodC5jCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9kc2kuaCIKICNpbmNsdWRlICJpbnRlbF9kc2lfZGNzX2JhY2tsaWdodC5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RzaV92YnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX3ZidC5jCmluZGV4IGU1YjE3ODYuLmY5MDk0NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX3ZidC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX3ZidC5jCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9kc2kuaCIKICNpbmNsdWRlICJpbnRlbF9zaWRlYmFuZC5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kdm8uYwppbmRleCAyMjY2NmQyLi45M2JhZjM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHZvLmMKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfY29ubmVjdG9yLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2R2by5oIgogI2luY2x1ZGUgImludGVsX2R2b19kZXYuaCIKICNpbmNsdWRlICJpbnRlbF9nbWJ1cy5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMKaW5kZXggZDM2Y2FkYS4uMTZlZDQ0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2ZiYy5oIgogI2luY2x1ZGUgImludGVsX2Zyb250YnVmZmVyLmgiCiAKQEAgLTExMCw5ICsxMTAsOCBAQCBzdGF0aWMgdm9pZCBpOHh4X2ZiY19kZWFjdGl2YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlJOTE1X1dSSVRFKEZCQ19DT05UUk9MLCBmYmNfY3RsKTsKIAogCS8qIFdhaXQgZm9yIGNvbXByZXNzaW5nIGJpdCB0byBjbGVhciAqLwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgRkJDX1NUQVRVUywgRkJDX1NUQVRfQ09NUFJFU1NJTkcsIDAsCi0JCQkJICAgIDEwKSkgeworCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9jbGVhcihkZXZfcHJpdiwgRkJDX1NUQVRVUywKKwkJCQkgICAgRkJDX1NUQVRfQ09NUFJFU1NJTkcsIDEwKSkgewogCQlEUk1fREVCVUdfS01TKCJGQkMgaWRsZSB0aW1lZCBvdXRcbiIpOwogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmRldi5jCmluZGV4IDFlZGQ0NGUuLmQ1OWVlZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiZGV2LmMKQEAgLTQzLDE3ICs0MywxOCBAQAogI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZmJkZXYuaCIKICNpbmNsdWRlICJpbnRlbF9mcm9udGJ1ZmZlci5oIgogCitzdGF0aWMgc3RydWN0IGludGVsX2Zyb250YnVmZmVyICp0b19mcm9udGJ1ZmZlcihzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRldikKK3sKKwlyZXR1cm4gaWZiZGV2LT5mYi0+ZnJvbnRidWZmZXI7Cit9CisKIHN0YXRpYyB2b2lkIGludGVsX2ZiZGV2X2ludmFsaWRhdGUoc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaigmaWZiZGV2LT5mYi0+YmFzZSk7Ci0JdW5zaWduZWQgaW50IG9yaWdpbiA9Ci0JCWlmYmRldi0+dm1hX2ZsYWdzICYgUExBTkVfSEFTX0ZFTkNFID8gT1JJR0lOX0dUVCA6IE9SSUdJTl9DUFU7Ci0KLQlpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShvYmosIG9yaWdpbik7CisJaW50ZWxfZnJvbnRidWZmZXJfaW52YWxpZGF0ZSh0b19mcm9udGJ1ZmZlcihpZmJkZXYpLCBPUklHSU5fQ1BVKTsKIH0KIAogc3RhdGljIGludCBpbnRlbF9mYmRldl9zZXRfcGFyKHN0cnVjdCBmYl9pbmZvICppbmZvKQpAQCAtMTIwLDcgKzEyMSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9hbGxvYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiBtb2RlX2NtZCA9IHt9OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0JaW50IHNpemUsIHJldDsKKwlpbnQgc2l6ZTsKIAogCS8qIHdlIGRvbid0IGRvIHBhY2tlZCAyNGJwcCAqLwogCWlmIChzaXplcy0+c3VyZmFjZV9icHAgPT0gMjQpCkBAIC0xNDcsMjQgKzE0OCwxNiBAQCBzdGF0aWMgaW50IGludGVsZmJfYWxsb2Moc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zaG1lbShkZXZfcHJpdiwgc2l6ZSk7CiAJaWYgKElTX0VSUihvYmopKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFsbG9jYXRlIGZyYW1lYnVmZmVyXG4iKTsKLQkJcmV0ID0gUFRSX0VSUihvYmopOwotCQlnb3RvIGVycjsKKwkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAl9CiAKIAlmYiA9IGludGVsX2ZyYW1lYnVmZmVyX2NyZWF0ZShvYmosICZtb2RlX2NtZCk7Ci0JaWYgKElTX0VSUihmYikpIHsKLQkJcmV0ID0gUFRSX0VSUihmYik7Ci0JCWdvdG8gZXJyX29iajsKLQl9CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOworCWlmIChJU19FUlIoZmIpKQorCQlyZXR1cm4gUFRSX0VSUihmYik7CiAKIAlpZmJkZXYtPmZiID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIpOwotCiAJcmV0dXJuIDA7Ci0KLWVycl9vYmo6Ci0JaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwotZXJyOgotCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKQEAgLTE4MCw3ICsxNzMsNiBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3IHZpZXcgPSB7CiAJCS50eXBlID0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMLAogCX07Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJc3RydWN0IGZiX2luZm8gKmluZm87CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CkBAIC0yMjYsOCArMjE4LDcgQEAgc3RhdGljIGludCBpbnRlbGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCQlnb3RvIG91dF91bmxvY2s7CiAJfQogCi0JZmIgPSAmaWZiZGV2LT5mYi0+YmFzZTsKLQlpbnRlbF9mYl9vYmpfZmx1c2goaW50ZWxfZmJfb2JqKGZiKSwgT1JJR0lOX0RJUlRZRkIpOworCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKHRvX2Zyb250YnVmZmVyKGlmYmRldiksIE9SSUdJTl9ESVJUWUZCKTsKIAogCWluZm8gPSBkcm1fZmJfaGVscGVyX2FsbG9jX2ZiaShoZWxwZXIpOwogCWlmIChJU19FUlIoaW5mbykpIHsKQEAgLTIzNiwxNyArMjI3LDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAkJZ290byBvdXRfdW5waW47CiAJfQogCi0JaWZiZGV2LT5oZWxwZXIuZmIgPSBmYjsKKwlpZmJkZXYtPmhlbHBlci5mYiA9ICZpZmJkZXYtPmZiLT5iYXNlOwogCiAJaW5mby0+ZmJvcHMgPSAmaW50ZWxmYl9vcHM7CiAKIAkvKiBzZXR1cCBhcGVydHVyZSBiYXNlL3NpemUgZm9yIHZlc2FmYiB0YWtlb3ZlciAqLwotCWluZm8tPmFwZXJ0dXJlcy0+cmFuZ2VzWzBdLmJhc2UgPSBkZXYtPm1vZGVfY29uZmlnLmZiX2Jhc2U7CisJaW5mby0+YXBlcnR1cmVzLT5yYW5nZXNbMF0uYmFzZSA9IGdndHQtPmdtYWRyLnN0YXJ0OwogCWluZm8tPmFwZXJ0dXJlcy0+cmFuZ2VzWzBdLnNpemUgPSBnZ3R0LT5tYXBwYWJsZV9lbmQ7CiAKLQlpbmZvLT5maXguc21lbV9zdGFydCA9IGRldi0+bW9kZV9jb25maWcuZmJfYmFzZSArIGk5MTVfZ2d0dF9vZmZzZXQodm1hKTsKLQlpbmZvLT5maXguc21lbV9sZW4gPSB2bWEtPm5vZGUuc2l6ZTsKLQogCXZhZGRyID0gaTkxNV92bWFfcGluX2lvbWFwKHZtYSk7CiAJaWYgKElTX0VSUih2YWRkcikpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVtYXAgZnJhbWVidWZmZXIgaW50byB2aXJ0dWFsIG1lbW9yeVxuIik7CkBAIC0yNTYsMTkgKzI0NCwyNCBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJaW5mby0+c2NyZWVuX2Jhc2UgPSB2YWRkcjsKIAlpbmZvLT5zY3JlZW5fc2l6ZSA9IHZtYS0+bm9kZS5zaXplOwogCisJLyogT3VyIGZyYW1lYnVmZmVyIGlzIHRoZSBlbnRpcmV0eSBvZiBmYmRldidzIHN5c3RlbSBtZW1vcnkgKi8KKwlpbmZvLT5maXguc21lbV9zdGFydCA9ICh1bnNpZ25lZCBsb25nKWluZm8tPnNjcmVlbl9iYXNlOworCWluZm8tPmZpeC5zbWVtX2xlbiA9IGluZm8tPnNjcmVlbl9zaXplOworCiAJZHJtX2ZiX2hlbHBlcl9maWxsX2luZm8oaW5mbywgJmlmYmRldi0+aGVscGVyLCBzaXplcyk7CiAKIAkvKiBJZiB0aGUgb2JqZWN0IGlzIHNobWVtZnMgYmFja2VkLCBpdCB3aWxsIGhhdmUgZ2l2ZW4gdXMgemVyb2VkIHBhZ2VzLgogCSAqIElmIHRoZSBvYmplY3QgaXMgc3RvbGVuIGhvd2V2ZXIsIGl0IHdpbGwgYmUgZnVsbCBvZiB3aGF0ZXZlcgogCSAqIGdhcmJhZ2Ugd2FzIGxlZnQgaW4gdGhlcmUuCiAJICovCi0JaWYgKGludGVsX2ZiX29iaihmYiktPnN0b2xlbiAmJiAhcHJlYWxsb2MpCisJaWYgKHZtYS0+b2JqLT5zdG9sZW4gJiYgIXByZWFsbG9jKQogCQltZW1zZXRfaW8oaW5mby0+c2NyZWVuX2Jhc2UsIDAsIGluZm8tPnNjcmVlbl9zaXplKTsKIAogCS8qIFVzZSBkZWZhdWx0IHNjcmF0Y2ggcGl4bWFwIChpbmZvLT5waXhtYXAuZmxhZ3MgPSBGQl9QSVhNQVBfU1lTVEVNKSAqLwogCiAJRFJNX0RFQlVHX0tNUygiYWxsb2NhdGVkICVkeCVkIGZiOiAweCUwOHhcbiIsCi0JCSAgICAgIGZiLT53aWR0aCwgZmItPmhlaWdodCwgaTkxNV9nZ3R0X29mZnNldCh2bWEpKTsKKwkJICAgICAgaWZiZGV2LT5mYi0+YmFzZS53aWR0aCwgaWZiZGV2LT5mYi0+YmFzZS5oZWlnaHQsCisJCSAgICAgIGk5MTVfZ2d0dF9vZmZzZXQodm1hKSk7CiAJaWZiZGV2LT52bWEgPSB2bWE7CiAJaWZiZGV2LT52bWFfZmxhZ3MgPSBmbGFnczsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9maWZvX3VuZGVycnVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZpZm9fdW5kZXJydW4uYwppbmRleCA4NTQ1YWQzLi5hYjYxZjg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZpZm9fdW5kZXJydW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZpZm9fdW5kZXJydW4uYwpAQCAtMjYsNyArMjYsOCBAQAogICovCiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImk5MTVfdHJhY2UuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZmJjLmgiCiAjaW5jbHVkZSAiaW50ZWxfZmlmb191bmRlcnJ1bi5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmMKaW5kZXggNDQyNzNjMS4uNzE5Mzc5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuYwpAQCAtMzAsMTEgKzMwLDExIEBACiAgKiBNYW55IGZlYXR1cmVzIHJlcXVpcmUgdXMgdG8gdHJhY2sgY2hhbmdlcyB0byB0aGUgY3VycmVudGx5IGFjdGl2ZQogICogZnJvbnRidWZmZXIsIGVzcGVjaWFsbHkgcmVuZGVyaW5nIHRhcmdldGVkIGF0IHRoZSBmcm9udGJ1ZmZlci4KICAqCi0gKiBUbyBiZSBhYmxlIHRvIGRvIHNvIEdFTSB0cmFja3MgZnJvbnRidWZmZXJzIHVzaW5nIGEgYml0bWFzayBmb3IgYWxsIHBvc3NpYmxlCi0gKiBmcm9udGJ1ZmZlciBzbG90cyB0aHJvdWdoIGk5MTVfZ2VtX3RyYWNrX2ZiKCkuIFRoZSBmdW5jdGlvbiBpbiB0aGlzIGZpbGUgYXJlCi0gKiB0aGVuIGNhbGxlZCB3aGVuIHRoZSBjb250ZW50cyBvZiB0aGUgZnJvbnRidWZmZXIgYXJlIGludmFsaWRhdGVkLCB3aGVuCi0gKiBmcm9udGJ1ZmZlciByZW5kZXJpbmcgaGFzIHN0b3BwZWQgYWdhaW4gdG8gZmx1c2ggb3V0IGFsbCB0aGUgY2hhbmdlcyBhbmQgd2hlbgotICogdGhlIGZyb250YnVmZmVyIGlzIGV4Y2hhbmdlZCB3aXRoIGEgZmxpcC4gU3Vic3lzdGVtcyBpbnRlcmVzdGVkIGluCisgKiBUbyBiZSBhYmxlIHRvIGRvIHNvIHdlIHRyYWNrIGZyb250YnVmZmVycyB1c2luZyBhIGJpdG1hc2sgZm9yIGFsbCBwb3NzaWJsZQorICogZnJvbnRidWZmZXIgc2xvdHMgdGhyb3VnaCBpbnRlbF9mcm9udGJ1ZmZlcl90cmFjaygpLiBUaGUgZnVuY3Rpb25zIGluIHRoaXMKKyAqIGZpbGUgYXJlIHRoZW4gY2FsbGVkIHdoZW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBmcm9udGJ1ZmZlciBhcmUgaW52YWxpZGF0ZWQsCisgKiB3aGVuIGZyb250YnVmZmVyIHJlbmRlcmluZyBoYXMgc3RvcHBlZCBhZ2FpbiB0byBmbHVzaCBvdXQgYWxsIHRoZSBjaGFuZ2VzCisgKiBhbmQgd2hlbiB0aGUgZnJvbnRidWZmZXIgaXMgZXhjaGFuZ2VkIHdpdGggYSBmbGlwLiBTdWJzeXN0ZW1zIGludGVyZXN0ZWQgaW4KICAqIGZyb250YnVmZmVyIGNoYW5nZXMgKGUuZy4gUFNSLCBGQkMsIERSUlMpIHNob3VsZCBkaXJlY3RseSBwdXQgdGhlaXIgY2FsbGJhY2tzCiAgKiBpbnRvIHRoZSByZWxldmFudCBwbGFjZXMgYW5kIGZpbHRlciBmb3IgdGhlIGZyb250YnVmZmVyIHNsb3RzIHRoYXQgdGhleSBhcmUKICAqIGludGVyZXN0ZWQgaW50LgpAQCAtNTgsMzMgKzU4LDE0IEBACiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kcC5oIgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZmJjLmgiCiAjaW5jbHVkZSAiaW50ZWxfZnJvbnRidWZmZXIuaCIKICNpbmNsdWRlICJpbnRlbF9wc3IuaCIKIAotdm9pZCBfX2ludGVsX2ZiX29ial9pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCQkgICAgICAgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luLAotCQkJICAgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7Ci0KLQlpZiAob3JpZ2luID09IE9SSUdJTl9DUykgewotCQlzcGluX2xvY2soJmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKLQkJZGV2X3ByaXYtPmZiX3RyYWNraW5nLmJ1c3lfYml0cyB8PSBmcm9udGJ1ZmZlcl9iaXRzOwotCQlkZXZfcHJpdi0+ZmJfdHJhY2tpbmcuZmxpcF9iaXRzICY9IH5mcm9udGJ1ZmZlcl9iaXRzOwotCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmZiX3RyYWNraW5nLmxvY2spOwotCX0KLQotCW1pZ2h0X3NsZWVwKCk7Ci0JaW50ZWxfcHNyX2ludmFsaWRhdGUoZGV2X3ByaXYsIGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7Ci0JaW50ZWxfZWRwX2RycnNfaW52YWxpZGF0ZShkZXZfcHJpdiwgZnJvbnRidWZmZXJfYml0cyk7Ci0JaW50ZWxfZmJjX2ludmFsaWRhdGUoZGV2X3ByaXYsIGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7Ci19Ci0KIC8qKgotICogaW50ZWxfZnJvbnRidWZmZXJfZmx1c2ggLSBmbHVzaCBmcm9udGJ1ZmZlcgotICogQGRldl9wcml2OiBpOTE1IGRldmljZQorICogZnJvbnRidWZmZXJfZmx1c2ggLSBmbHVzaCBmcm9udGJ1ZmZlcgorICogQGk5MTU6IGk5MTUgZGV2aWNlCiAgKiBAZnJvbnRidWZmZXJfYml0czogZnJvbnRidWZmZXIgcGxhbmUgdHJhY2tpbmcgYml0cwogICogQG9yaWdpbjogd2hpY2ggb3BlcmF0aW9uIGNhdXNlZCB0aGUgZmx1c2gKICAqCkBAIC05NCw0NSArNzUsMjcgQEAgdm9pZCBfX2ludGVsX2ZiX29ial9pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAgKgogICogQ2FuIGJlIGNhbGxlZCB3aXRob3V0IGFueSBsb2NrcyBoZWxkLgogICovCi1zdGF0aWMgdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgIHVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMsCi0JCQkJICAgIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbikKK3N0YXRpYyB2b2lkIGZyb250YnVmZmVyX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJICAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMsCisJCQkgICAgICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCiB7CiAJLyogRGVsYXkgZmx1c2hpbmcgd2hlbiByaW5ncyBhcmUgc3RpbGwgYnVzeS4qLwotCXNwaW5fbG9jaygmZGV2X3ByaXYtPmZiX3RyYWNraW5nLmxvY2spOwotCWZyb250YnVmZmVyX2JpdHMgJj0gfmRldl9wcml2LT5mYl90cmFja2luZy5idXN5X2JpdHM7Ci0Jc3Bpbl91bmxvY2soJmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKKwlzcGluX2xvY2soJmk5MTUtPmZiX3RyYWNraW5nLmxvY2spOworCWZyb250YnVmZmVyX2JpdHMgJj0gfmk5MTUtPmZiX3RyYWNraW5nLmJ1c3lfYml0czsKKwlzcGluX3VubG9jaygmaTkxNS0+ZmJfdHJhY2tpbmcubG9jayk7CiAKIAlpZiAoIWZyb250YnVmZmVyX2JpdHMpCiAJCXJldHVybjsKIAogCW1pZ2h0X3NsZWVwKCk7Ci0JaW50ZWxfZWRwX2RycnNfZmx1c2goZGV2X3ByaXYsIGZyb250YnVmZmVyX2JpdHMpOwotCWludGVsX3Bzcl9mbHVzaChkZXZfcHJpdiwgZnJvbnRidWZmZXJfYml0cywgb3JpZ2luKTsKLQlpbnRlbF9mYmNfZmx1c2goZGV2X3ByaXYsIGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7Ci19Ci0KLXZvaWQgX19pbnRlbF9mYl9vYmpfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKLQkJCSAgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luLAotCQkJICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwotCi0JaWYgKG9yaWdpbiA9PSBPUklHSU5fQ1MpIHsKLQkJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Ci0JCS8qIEZpbHRlciBvdXQgbmV3IGJpdHMgc2luY2UgcmVuZGVyaW5nIHN0YXJ0ZWQuICovCi0JCWZyb250YnVmZmVyX2JpdHMgJj0gZGV2X3ByaXYtPmZiX3RyYWNraW5nLmJ1c3lfYml0czsKLQkJZGV2X3ByaXYtPmZiX3RyYWNraW5nLmJ1c3lfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0czsKLQkJc3Bpbl91bmxvY2soJmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKLQl9Ci0KLQlpZiAoZnJvbnRidWZmZXJfYml0cykKLQkJaW50ZWxfZnJvbnRidWZmZXJfZmx1c2goZGV2X3ByaXYsIGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7CisJaW50ZWxfZWRwX2RycnNfZmx1c2goaTkxNSwgZnJvbnRidWZmZXJfYml0cyk7CisJaW50ZWxfcHNyX2ZsdXNoKGk5MTUsIGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7CisJaW50ZWxfZmJjX2ZsdXNoKGk5MTUsIGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7CiB9CiAKIC8qKgogICogaW50ZWxfZnJvbnRidWZmZXJfZmxpcF9wcmVwYXJlIC0gcHJlcGFyZSBhc3luY2hyb25vdXMgZnJvbnRidWZmZXIgZmxpcAotICogQGRldl9wcml2OiBpOTE1IGRldmljZQorICogQGk5MTU6IGk5MTUgZGV2aWNlCiAgKiBAZnJvbnRidWZmZXJfYml0czogZnJvbnRidWZmZXIgcGxhbmUgdHJhY2tpbmcgYml0cwogICoKICAqIFRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgYWZ0ZXIgc2NoZWR1bGluZyBhIGZsaXAgb24gQG9iai4gVGhlIGFjdHVhbApAQCAtMTQyLDE5ICsxMDUsMTkgQEAgdm9pZCBfX2ludGVsX2ZiX29ial9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogICoKICAqIENhbiBiZSBjYWxsZWQgd2l0aG91dCBhbnkgbG9ja3MgaGVsZC4KICAqLwotdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAordm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJICAgIHVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMpCiB7Ci0Jc3Bpbl9sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Ci0JZGV2X3ByaXYtPmZiX3RyYWNraW5nLmZsaXBfYml0cyB8PSBmcm9udGJ1ZmZlcl9iaXRzOworCXNwaW5fbG9jaygmaTkxNS0+ZmJfdHJhY2tpbmcubG9jayk7CisJaTkxNS0+ZmJfdHJhY2tpbmcuZmxpcF9iaXRzIHw9IGZyb250YnVmZmVyX2JpdHM7CiAJLyogUmVtb3ZlIHN0YWxlIGJ1c3kgYml0cyBkdWUgdG8gdGhlIG9sZCBidWZmZXIuICovCi0JZGV2X3ByaXYtPmZiX3RyYWNraW5nLmJ1c3lfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0czsKLQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmZiX3RyYWNraW5nLmxvY2spOworCWk5MTUtPmZiX3RyYWNraW5nLmJ1c3lfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0czsKKwlzcGluX3VubG9jaygmaTkxNS0+ZmJfdHJhY2tpbmcubG9jayk7CiB9CiAKIC8qKgogICogaW50ZWxfZnJvbnRidWZmZXJfZmxpcF9jb21wbGV0ZSAtIGNvbXBsZXRlIGFzeW5jaHJvbm91cyBmcm9udGJ1ZmZlciBmbGlwCi0gKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlCisgKiBAaTkxNTogaTkxNSBkZXZpY2UKICAqIEBmcm9udGJ1ZmZlcl9iaXRzOiBmcm9udGJ1ZmZlciBwbGFuZSB0cmFja2luZyBiaXRzCiAgKgogICogVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBhZnRlciB0aGUgZmxpcCBoYXMgYmVlbiBsYXRjaGVkIGFuZCB3aWxsIGNvbXBsZXRlCkBAIC0xNjIsMjMgKzEyNSwyMiBAQCB2b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKgogICogQ2FuIGJlIGNhbGxlZCB3aXRob3V0IGFueSBsb2NrcyBoZWxkLgogICovCi12b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXBfY29tcGxldGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAordm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJCSAgICAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cykKIHsKLQlzcGluX2xvY2soJmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKKwlzcGluX2xvY2soJmk5MTUtPmZiX3RyYWNraW5nLmxvY2spOwogCS8qIE1hc2sgYW55IGNhbmNlbGxlZCBmbGlwcy4gKi8KLQlmcm9udGJ1ZmZlcl9iaXRzICY9IGRldl9wcml2LT5mYl90cmFja2luZy5mbGlwX2JpdHM7Ci0JZGV2X3ByaXYtPmZiX3RyYWNraW5nLmZsaXBfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0czsKLQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmZiX3RyYWNraW5nLmxvY2spOworCWZyb250YnVmZmVyX2JpdHMgJj0gaTkxNS0+ZmJfdHJhY2tpbmcuZmxpcF9iaXRzOworCWk5MTUtPmZiX3RyYWNraW5nLmZsaXBfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0czsKKwlzcGluX3VubG9jaygmaTkxNS0+ZmJfdHJhY2tpbmcubG9jayk7CiAKIAlpZiAoZnJvbnRidWZmZXJfYml0cykKLQkJaW50ZWxfZnJvbnRidWZmZXJfZmx1c2goZGV2X3ByaXYsCi0JCQkJCWZyb250YnVmZmVyX2JpdHMsIE9SSUdJTl9GTElQKTsKKwkJZnJvbnRidWZmZXJfZmx1c2goaTkxNSwgZnJvbnRidWZmZXJfYml0cywgT1JJR0lOX0ZMSVApOwogfQogCiAvKioKICAqIGludGVsX2Zyb250YnVmZmVyX2ZsaXAgLSBzeW5jaHJvbm91cyBmcm9udGJ1ZmZlciBmbGlwCi0gKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlCisgKiBAaTkxNTogaTkxNSBkZXZpY2UKICAqIEBmcm9udGJ1ZmZlcl9iaXRzOiBmcm9udGJ1ZmZlciBwbGFuZSB0cmFja2luZyBiaXRzCiAgKgogICogVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBhZnRlciBzY2hlZHVsaW5nIGEgZmxpcCBvbiBAb2JqLiBUaGlzIGlzIGZvcgpAQCAtMTg3LDEzICsxNDksMTYwIEBAIHZvaWQgaW50ZWxfZnJvbnRidWZmZXJfZmxpcF9jb21wbGV0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKgogICogQ2FuIGJlIGNhbGxlZCB3aXRob3V0IGFueSBsb2NrcyBoZWxkLgogICovCi12b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAordm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJICAgIHVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMpCiB7Ci0Jc3Bpbl9sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7CisJc3Bpbl9sb2NrKCZpOTE1LT5mYl90cmFja2luZy5sb2NrKTsKIAkvKiBSZW1vdmUgc3RhbGUgYnVzeSBiaXRzIGR1ZSB0byB0aGUgb2xkIGJ1ZmZlci4gKi8KLQlkZXZfcHJpdi0+ZmJfdHJhY2tpbmcuYnVzeV9iaXRzICY9IH5mcm9udGJ1ZmZlcl9iaXRzOwotCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7CisJaTkxNS0+ZmJfdHJhY2tpbmcuYnVzeV9iaXRzICY9IH5mcm9udGJ1ZmZlcl9iaXRzOworCXNwaW5fdW5sb2NrKCZpOTE1LT5mYl90cmFja2luZy5sb2NrKTsKIAotCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKGRldl9wcml2LCBmcm9udGJ1ZmZlcl9iaXRzLCBPUklHSU5fRkxJUCk7CisJZnJvbnRidWZmZXJfZmx1c2goaTkxNSwgZnJvbnRidWZmZXJfYml0cywgT1JJR0lOX0ZMSVApOworfQorCit2b2lkIF9faW50ZWxfZmJfaW52YWxpZGF0ZShzdHJ1Y3QgaW50ZWxfZnJvbnRidWZmZXIgKmZyb250LAorCQkJICAgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luLAorCQkJICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGZyb250LT5vYmotPmJhc2UuZGV2KTsKKworCWlmIChvcmlnaW4gPT0gT1JJR0lOX0NTKSB7CisJCXNwaW5fbG9jaygmaTkxNS0+ZmJfdHJhY2tpbmcubG9jayk7CisJCWk5MTUtPmZiX3RyYWNraW5nLmJ1c3lfYml0cyB8PSBmcm9udGJ1ZmZlcl9iaXRzOworCQlpOTE1LT5mYl90cmFja2luZy5mbGlwX2JpdHMgJj0gfmZyb250YnVmZmVyX2JpdHM7CisJCXNwaW5fdW5sb2NrKCZpOTE1LT5mYl90cmFja2luZy5sb2NrKTsKKwl9CisKKwltaWdodF9zbGVlcCgpOworCWludGVsX3Bzcl9pbnZhbGlkYXRlKGk5MTUsIGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7CisJaW50ZWxfZWRwX2RycnNfaW52YWxpZGF0ZShpOTE1LCBmcm9udGJ1ZmZlcl9iaXRzKTsKKwlpbnRlbF9mYmNfaW52YWxpZGF0ZShpOTE1LCBmcm9udGJ1ZmZlcl9iaXRzLCBvcmlnaW4pOworfQorCit2b2lkIF9faW50ZWxfZmJfZmx1c2goc3RydWN0IGludGVsX2Zyb250YnVmZmVyICpmcm9udCwKKwkJICAgICAgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luLAorCQkgICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZnJvbnQtPm9iai0+YmFzZS5kZXYpOworCisJaWYgKG9yaWdpbiA9PSBPUklHSU5fQ1MpIHsKKwkJc3Bpbl9sb2NrKCZpOTE1LT5mYl90cmFja2luZy5sb2NrKTsKKwkJLyogRmlsdGVyIG91dCBuZXcgYml0cyBzaW5jZSByZW5kZXJpbmcgc3RhcnRlZC4gKi8KKwkJZnJvbnRidWZmZXJfYml0cyAmPSBpOTE1LT5mYl90cmFja2luZy5idXN5X2JpdHM7CisJCWk5MTUtPmZiX3RyYWNraW5nLmJ1c3lfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0czsKKwkJc3Bpbl91bmxvY2soJmk5MTUtPmZiX3RyYWNraW5nLmxvY2spOworCX0KKworCWlmIChmcm9udGJ1ZmZlcl9iaXRzKQorCQlmcm9udGJ1ZmZlcl9mbHVzaChpOTE1LCBmcm9udGJ1ZmZlcl9iaXRzLCBvcmlnaW4pOworfQorCitzdGF0aWMgaW50IGZyb250YnVmZmVyX2FjdGl2ZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikKK3sKKwlzdHJ1Y3QgaW50ZWxfZnJvbnRidWZmZXIgKmZyb250ID0KKwkJY29udGFpbmVyX29mKHJlZiwgdHlwZW9mKCpmcm9udCksIHdyaXRlKTsKKworCWtyZWZfZ2V0KCZmcm9udC0+cmVmKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZnJvbnRidWZmZXJfcmV0aXJlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQoreworCXN0cnVjdCBpbnRlbF9mcm9udGJ1ZmZlciAqZnJvbnQgPQorCQljb250YWluZXJfb2YocmVmLCB0eXBlb2YoKmZyb250KSwgd3JpdGUpOworCisJaW50ZWxfZnJvbnRidWZmZXJfZmx1c2goZnJvbnQsIE9SSUdJTl9DUyk7CisJaW50ZWxfZnJvbnRidWZmZXJfcHV0KGZyb250KTsKK30KKworc3RhdGljIHZvaWQgZnJvbnRidWZmZXJfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqcmVmKQorCV9fcmVsZWFzZXMoJnRvX2k5MTUoZnJvbnQtPm9iai0+YmFzZS5kZXYpLT5mYl90cmFja2luZy5sb2NrKQoreworCXN0cnVjdCBpbnRlbF9mcm9udGJ1ZmZlciAqZnJvbnQgPQorCQljb250YWluZXJfb2YocmVmLCB0eXBlb2YoKmZyb250KSwgcmVmKTsKKworCWZyb250LT5vYmotPmZyb250YnVmZmVyID0gTlVMTDsKKwlzcGluX3VubG9jaygmdG9faTkxNShmcm9udC0+b2JqLT5iYXNlLmRldiktPmZiX3RyYWNraW5nLmxvY2spOworCisJaTkxNV9nZW1fb2JqZWN0X3B1dChmcm9udC0+b2JqKTsKKwlrZnJlZShmcm9udCk7Cit9CisKK3N0cnVjdCBpbnRlbF9mcm9udGJ1ZmZlciAqCitpbnRlbF9mcm9udGJ1ZmZlcl9nZXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX2Zyb250YnVmZmVyICpmcm9udDsKKworCXNwaW5fbG9jaygmaTkxNS0+ZmJfdHJhY2tpbmcubG9jayk7CisJZnJvbnQgPSBvYmotPmZyb250YnVmZmVyOworCWlmIChmcm9udCkKKwkJa3JlZl9nZXQoJmZyb250LT5yZWYpOworCXNwaW5fdW5sb2NrKCZpOTE1LT5mYl90cmFja2luZy5sb2NrKTsKKwlpZiAoZnJvbnQpCisJCXJldHVybiBmcm9udDsKKworCWZyb250ID0ga21hbGxvYyhzaXplb2YoKmZyb250KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFmcm9udCkKKwkJcmV0dXJuIE5VTEw7CisKKwlmcm9udC0+b2JqID0gb2JqOworCWtyZWZfaW5pdCgmZnJvbnQtPnJlZik7CisJYXRvbWljX3NldCgmZnJvbnQtPmJpdHMsIDApOworCWk5MTVfYWN0aXZlX2luaXQoaTkxNSwgJmZyb250LT53cml0ZSwKKwkJCSBmcm9udGJ1ZmZlcl9hY3RpdmUsIGZyb250YnVmZmVyX3JldGlyZSk7CisKKwlzcGluX2xvY2soJmk5MTUtPmZiX3RyYWNraW5nLmxvY2spOworCWlmIChvYmotPmZyb250YnVmZmVyKSB7CisJCWtmcmVlKGZyb250KTsKKwkJZnJvbnQgPSBvYmotPmZyb250YnVmZmVyOworCQlrcmVmX2dldCgmZnJvbnQtPnJlZik7CisJfSBlbHNlIHsKKwkJaTkxNV9nZW1fb2JqZWN0X2dldChvYmopOworCQlvYmotPmZyb250YnVmZmVyID0gZnJvbnQ7CisJfQorCXNwaW5fdW5sb2NrKCZpOTE1LT5mYl90cmFja2luZy5sb2NrKTsKKworCXJldHVybiBmcm9udDsKK30KKwordm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9wdXQoc3RydWN0IGludGVsX2Zyb250YnVmZmVyICpmcm9udCkKK3sKKwlrcmVmX3B1dF9sb2NrKCZmcm9udC0+cmVmLAorCQkgICAgICBmcm9udGJ1ZmZlcl9yZWxlYXNlLAorCQkgICAgICAmdG9faTkxNShmcm9udC0+b2JqLT5iYXNlLmRldiktPmZiX3RyYWNraW5nLmxvY2spOworfQorCisvKioKKyAqIGludGVsX2Zyb250YnVmZmVyX3RyYWNrIC0gdXBkYXRlIGZyb250YnVmZmVyIHRyYWNraW5nCisgKiBAb2xkOiBjdXJyZW50IGJ1ZmZlciBmb3IgdGhlIGZyb250YnVmZmVyIHNsb3RzCisgKiBAbmV3OiBuZXcgYnVmZmVyIGZvciB0aGUgZnJvbnRidWZmZXIgc2xvdHMKKyAqIEBmcm9udGJ1ZmZlcl9iaXRzOiBiaXRtYXNrIG9mIGZyb250YnVmZmVyIHNsb3RzCisgKgorICogVGhpcyB1cGRhdGVzIHRoZSBmcm9udGJ1ZmZlciB0cmFja2luZyBiaXRzIEBmcm9udGJ1ZmZlcl9iaXRzIGJ5IGNsZWFyaW5nIHRoZW0KKyAqIGZyb20gQG9sZCBhbmQgc2V0dGluZyB0aGVtIGluIEBuZXcuIEJvdGggQG9sZCBhbmQgQG5ldyBjYW4gYmUgTlVMTC4KKyAqLwordm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl90cmFjayhzdHJ1Y3QgaW50ZWxfZnJvbnRidWZmZXIgKm9sZCwKKwkJCSAgICAgc3RydWN0IGludGVsX2Zyb250YnVmZmVyICpuZXcsCisJCQkgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKQoreworCS8qCisJICogQ29udHJvbCBvZiBpbmRpdmlkdWFsIGJpdHMgd2l0aGluIHRoZSBtYXNrIGFyZSBndWFyZGVkIGJ5CisJICogdGhlIG93bmluZyBwbGFuZS0+bXV0ZXgsIGkuZS4gd2UgY2FuIG5ldmVyIHNlZSBjb25jdXJyZW50CisJICogbWFuaXB1bGF0aW9uIG9mIGluZGl2aWR1YWwgYml0cy4gQnV0IHNpbmNlIHRoZSBiaXRmaWVsZCBhcyBhIHdob2xlCisJICogaXMgdXBkYXRlZCB1c2luZyBSTVcsIHdlIG5lZWQgdG8gdXNlIGF0b21pY3MgaW4gb3JkZXIgdG8gdXBkYXRlCisJICogdGhlIGJpdHMuCisJICovCisJQlVJTERfQlVHX09OKElOVEVMX0ZST05UQlVGRkVSX0JJVFNfUEVSX1BJUEUgKiBJOTE1X01BWF9QSVBFUyA+CisJCSAgICAgQklUU19QRVJfVFlQRShhdG9taWNfdCkpOworCisJaWYgKG9sZCkgeworCQlXQVJOX09OKCEoYXRvbWljX3JlYWQoJm9sZC0+Yml0cykgJiBmcm9udGJ1ZmZlcl9iaXRzKSk7CisJCWF0b21pY19hbmRub3QoZnJvbnRidWZmZXJfYml0cywgJm9sZC0+Yml0cyk7CisJfQorCisJaWYgKG5ldykgeworCQlXQVJOX09OKGF0b21pY19yZWFkKCZuZXctPmJpdHMpICYgZnJvbnRidWZmZXJfYml0cyk7CisJCWF0b21pY19vcihmcm9udGJ1ZmZlcl9iaXRzLCAmbmV3LT5iaXRzKTsKKwl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmgKaW5kZXggNTcyNzMyMC4uYWRjNjRkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuaApAQCAtMjQsNyArMjQsMTAgQEAKICNpZm5kZWYgX19JTlRFTF9GUk9OVEJVRkZFUl9IX18KICNkZWZpbmUgX19JTlRFTF9GUk9OVEJVRkZFUl9IX18KIAotI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9vYmplY3QuaCIKKyNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KKyNpbmNsdWRlIDxsaW51eC9rcmVmLmg+CisKKyNpbmNsdWRlICJpOTE1X2FjdGl2ZS5oIgogCiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0OwpAQCAtMzcsMjMgKzQwLDMwIEBAIGVudW0gZmJfb3Bfb3JpZ2luIHsKIAlPUklHSU5fRElSVFlGQiwKIH07CiAKLXZvaWQgaW50ZWxfZnJvbnRidWZmZXJfZmxpcF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKK3N0cnVjdCBpbnRlbF9mcm9udGJ1ZmZlciB7CisJc3RydWN0IGtyZWYgcmVmOworCWF0b21pY190IGJpdHM7CisJc3RydWN0IGk5MTVfYWN0aXZlIHdyaXRlOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cit9OworCit2b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkgICAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyk7Ci12b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXBfY29tcGxldGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAordm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJCSAgICAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyk7Ci12b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAordm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJICAgIHVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMpOwogCi12b2lkIF9faW50ZWxfZmJfb2JqX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKLQkJCSAgICAgICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4sCi0JCQkgICAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMpOwotdm9pZCBfX2ludGVsX2ZiX29ial9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4sCi0JCQkgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKTsKK3N0cnVjdCBpbnRlbF9mcm9udGJ1ZmZlciAqCitpbnRlbF9mcm9udGJ1ZmZlcl9nZXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CisKK3ZvaWQgX19pbnRlbF9mYl9pbnZhbGlkYXRlKHN0cnVjdCBpbnRlbF9mcm9udGJ1ZmZlciAqZnJvbnQsCisJCQkgICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4sCisJCQkgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cyk7CiAKIC8qKgotICogaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUgLSBpbnZhbGlkYXRlIGZyb250YnVmZmVyIG9iamVjdAotICogQG9iajogR0VNIG9iamVjdCB0byBpbnZhbGlkYXRlCisgKiBpbnRlbF9mcm9udGJ1ZmZlcl9pbnZhbGlkYXRlIC0gaW52YWxpZGF0ZSBmcm9udGJ1ZmZlciBvYmplY3QKKyAqIEBmcm9udDogR0VNIG9iamVjdCB0byBpbnZhbGlkYXRlCiAgKiBAb3JpZ2luOiB3aGljaCBvcGVyYXRpb24gY2F1c2VkIHRoZSBpbnZhbGlkYXRpb24KICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGV2ZXJ5IHRpbWUgcmVuZGVyaW5nIG9uIHRoZSBnaXZlbiBvYmplY3Qgc3RhcnRzIGFuZApAQCAtNjIsMzcgKzcyLDUzIEBAIHZvaWQgX19pbnRlbF9mYl9vYmpfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKICAqIHVudGlsIHRoZSByZW5kZXJpbmcgY29tcGxldGVzIG9yIGEgZmxpcCBvbiB0aGlzIGZyb250YnVmZmVyIHBsYW5lIGlzCiAgKiBzY2hlZHVsZWQuCiAgKi8KLXN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJCQkgICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZnJvbnRidWZmZXJfaW52YWxpZGF0ZShzdHJ1Y3QgaW50ZWxfZnJvbnRidWZmZXIgKmZyb250LAorCQkJCQkJZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKQogewogCXVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzOwogCi0JZnJvbnRidWZmZXJfYml0cyA9IGF0b21pY19yZWFkKCZvYmotPmZyb250YnVmZmVyX2JpdHMpOworCWlmICghZnJvbnQpCisJCXJldHVybiBmYWxzZTsKKworCWZyb250YnVmZmVyX2JpdHMgPSBhdG9taWNfcmVhZCgmZnJvbnQtPmJpdHMpOwogCWlmICghZnJvbnRidWZmZXJfYml0cykKIAkJcmV0dXJuIGZhbHNlOwogCi0JX19pbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShvYmosIG9yaWdpbiwgZnJvbnRidWZmZXJfYml0cyk7CisJX19pbnRlbF9mYl9pbnZhbGlkYXRlKGZyb250LCBvcmlnaW4sIGZyb250YnVmZmVyX2JpdHMpOwogCXJldHVybiB0cnVlOwogfQogCit2b2lkIF9faW50ZWxfZmJfZmx1c2goc3RydWN0IGludGVsX2Zyb250YnVmZmVyICpmcm9udCwKKwkJICAgICAgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luLAorCQkgICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cyk7CisKIC8qKgotICogaW50ZWxfZmJfb2JqX2ZsdXNoIC0gZmx1c2ggZnJvbnRidWZmZXIgb2JqZWN0Ci0gKiBAb2JqOiBHRU0gb2JqZWN0IHRvIGZsdXNoCisgKiBpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaCAtIGZsdXNoIGZyb250YnVmZmVyIG9iamVjdAorICogQGZyb250OiBHRU0gb2JqZWN0IHRvIGZsdXNoCiAgKiBAb3JpZ2luOiB3aGljaCBvcGVyYXRpb24gY2F1c2VkIHRoZSBmbHVzaAogICoKICAqIFRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgZXZlcnkgdGltZSByZW5kZXJpbmcgb24gdGhlIGdpdmVuIG9iamVjdCBoYXMKICAqIGNvbXBsZXRlZCBhbmQgZnJvbnRidWZmZXIgY2FjaGluZyBjYW4gYmUgc3RhcnRlZCBhZ2Fpbi4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIGludGVsX2ZiX29ial9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJCSAgICAgIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbikKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChzdHJ1Y3QgaW50ZWxfZnJvbnRidWZmZXIgKmZyb250LAorCQkJCQkgICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCiB7CiAJdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHM7CiAKLQlmcm9udGJ1ZmZlcl9iaXRzID0gYXRvbWljX3JlYWQoJm9iai0+ZnJvbnRidWZmZXJfYml0cyk7CisJaWYgKCFmcm9udCkKKwkJcmV0dXJuOworCisJZnJvbnRidWZmZXJfYml0cyA9IGF0b21pY19yZWFkKCZmcm9udC0+Yml0cyk7CiAJaWYgKCFmcm9udGJ1ZmZlcl9iaXRzKQogCQlyZXR1cm47CiAKLQlfX2ludGVsX2ZiX29ial9mbHVzaChvYmosIG9yaWdpbiwgZnJvbnRidWZmZXJfYml0cyk7CisJX19pbnRlbF9mYl9mbHVzaChmcm9udCwgb3JpZ2luLCBmcm9udGJ1ZmZlcl9iaXRzKTsKIH0KIAordm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl90cmFjayhzdHJ1Y3QgaW50ZWxfZnJvbnRidWZmZXIgKm9sZCwKKwkJCSAgICAgc3RydWN0IGludGVsX2Zyb250YnVmZmVyICpuZXcsCisJCQkgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKTsKKwordm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9wdXQoc3RydWN0IGludGVsX2Zyb250YnVmZmVyICpmcm9udCk7CisKICNlbmRpZiAvKiBfX0lOVEVMX0ZST05UQlVGRkVSX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9nbWJ1cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9nbWJ1cy5jCmluZGV4IDRmNmE5YmQuLmQ2Nzc1YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZ21idXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2dtYnVzLmMKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2dtYnVzLmgiCiAKIHN0cnVjdCBnbWJ1c19waW4gewpAQCAtODIsMjUgKzgyLDIwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ21idXNfcGluIGdtYnVzX3BpbnNfY25wW10gPSB7CiBzdGF0aWMgY29uc3Qgc3RydWN0IGdtYnVzX3BpbiBnbWJ1c19waW5zX2ljcFtdID0gewogCVtHTUJVU19QSU5fMV9CWFRdID0geyAiZHBhIiwgR1BJT0IgfSwKIAlbR01CVVNfUElOXzJfQlhUXSA9IHsgImRwYiIsIEdQSU9DIH0sCisJW0dNQlVTX1BJTl8zX0JYVF0gPSB7ICJkcGMiLCBHUElPRCB9LAogCVtHTUJVU19QSU5fOV9UQzFfSUNQXSA9IHsgInRjMSIsIEdQSU9KIH0sCiAJW0dNQlVTX1BJTl8xMF9UQzJfSUNQXSA9IHsgInRjMiIsIEdQSU9LIH0sCiAJW0dNQlVTX1BJTl8xMV9UQzNfSUNQXSA9IHsgInRjMyIsIEdQSU9MIH0sCiAJW0dNQlVTX1BJTl8xMl9UQzRfSUNQXSA9IHsgInRjNCIsIEdQSU9NIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGdtYnVzX3BpbiBnbWJ1c19waW5zX21jY1tdID0gewotCVtHTUJVU19QSU5fMV9CWFRdID0geyAiZHBhIiwgR1BJT0IgfSwKLQlbR01CVVNfUElOXzJfQlhUXSA9IHsgImRwYiIsIEdQSU9DIH0sCi0JW0dNQlVTX1BJTl85X1RDMV9JQ1BdID0geyAiZHBjIiwgR1BJT0ogfSwKKwlbR01CVVNfUElOXzEzX1RDNV9UR1BdID0geyAidGM1IiwgR1BJT04gfSwKKwlbR01CVVNfUElOXzE0X1RDNl9UR1BdID0geyAidGM2IiwgR1BJT08gfSwKIH07CiAKIC8qIHBpbiBpcyBleHBlY3RlZCB0byBiZSB2YWxpZCAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBnbWJ1c19waW4gKmdldF9nbWJ1c19waW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkgICAgIHVuc2lnbmVkIGludCBwaW4pCiB7Ci0JaWYgKEhBU19QQ0hfTUNDKGRldl9wcml2KSkKLQkJcmV0dXJuICZnbWJ1c19waW5zX21jY1twaW5dOwotCWVsc2UgaWYgKEhBU19QQ0hfSUNQKGRldl9wcml2KSkKKwlpZiAoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpID49IFBDSF9JQ1ApCiAJCXJldHVybiAmZ21idXNfcGluc19pY3BbcGluXTsKIAllbHNlIGlmIChIQVNfUENIX0NOUChkZXZfcHJpdikpCiAJCXJldHVybiAmZ21idXNfcGluc19jbnBbcGluXTsKQEAgLTExOSw5ICsxMTQsNyBAQCBib29sIGludGVsX2dtYnVzX2lzX3ZhbGlkX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJdW5zaWduZWQgaW50IHNpemU7CiAKLQlpZiAoSEFTX1BDSF9NQ0MoZGV2X3ByaXYpKQotCQlzaXplID0gQVJSQVlfU0laRShnbWJ1c19waW5zX21jYyk7Ci0JZWxzZSBpZiAoSEFTX1BDSF9JQ1AoZGV2X3ByaXYpKQorCWlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX0lDUCkKIAkJc2l6ZSA9IEFSUkFZX1NJWkUoZ21idXNfcGluc19pY3ApOwogCWVsc2UgaWYgKEhBU19QQ0hfQ05QKGRldl9wcml2KSkKIAkJc2l6ZSA9IEFSUkFZX1NJWkUoZ21idXNfcGluc19jbnApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9nbWJ1cy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9nbWJ1cy5oCmluZGV4IGQ5ODkwODUuLmI5NjIxMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZ21idXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2dtYnVzLmgKQEAgLTExLDYgKzExLDI4IEBACiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKIHN0cnVjdCBpMmNfYWRhcHRlcjsKIAorI2RlZmluZSBHTUJVU19QSU5fRElTQUJMRUQJMAorI2RlZmluZSBHTUJVU19QSU5fU1NDCQkxCisjZGVmaW5lIEdNQlVTX1BJTl9WR0FEREMJMgorI2RlZmluZSBHTUJVU19QSU5fUEFORUwJCTMKKyNkZWZpbmUgR01CVVNfUElOX0RQRF9DSFYJMyAvKiBIRE1JRF9DSFYgKi8KKyNkZWZpbmUgR01CVVNfUElOX0RQQwkJNCAvKiBIRE1JQyAqLworI2RlZmluZSBHTUJVU19QSU5fRFBCCQk1IC8qIFNEVk8sIEhETUlCICovCisjZGVmaW5lIEdNQlVTX1BJTl9EUEQJCTYgLyogSERNSUQgKi8KKyNkZWZpbmUgR01CVVNfUElOX1JFU0VSVkVECTcgLyogNyByZXNlcnZlZCAqLworI2RlZmluZSBHTUJVU19QSU5fMV9CWFQJCTEgLyogQlhUKyAoYXRvbSkgYW5kIENOUCsgKGJpZyBjb3JlKSAqLworI2RlZmluZSBHTUJVU19QSU5fMl9CWFQJCTIKKyNkZWZpbmUgR01CVVNfUElOXzNfQlhUCQkzCisjZGVmaW5lIEdNQlVTX1BJTl80X0NOUAkJNAorI2RlZmluZSBHTUJVU19QSU5fOV9UQzFfSUNQCTkKKyNkZWZpbmUgR01CVVNfUElOXzEwX1RDMl9JQ1AJMTAKKyNkZWZpbmUgR01CVVNfUElOXzExX1RDM19JQ1AJMTEKKyNkZWZpbmUgR01CVVNfUElOXzEyX1RDNF9JQ1AJMTIKKyNkZWZpbmUgR01CVVNfUElOXzEzX1RDNV9UR1AJMTMKKyNkZWZpbmUgR01CVVNfUElOXzE0X1RDNl9UR1AJMTQKKworI2RlZmluZSBHTUJVU19OVU1fUElOUwkxNSAvKiBpbmNsdWRpbmcgMCAqLworCiBpbnQgaW50ZWxfZ21idXNfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfZ21idXNfdGVhcmRvd24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGJvb2wgaW50ZWxfZ21idXNfaXNfdmFsaWRfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZGNwLmMKaW5kZXggMjdiZDcyNzYuLjZlYzVjZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5jCkBAIC0xNCw3ICsxNCw4IEBACiAjaW5jbHVkZSA8ZHJtL2k5MTVfY29tcG9uZW50Lmg+CiAKICNpbmNsdWRlICJpOTE1X3JlZy5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfcG93ZXIuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfaGRjcC5oIgogI2luY2x1ZGUgImludGVsX3NpZGViYW5kLmgiCiAKQEAgLTI0NCw4ICsyNDUsNyBAQCBzdGF0aWMgaW50IGludGVsX2hkY3BfbG9hZF9rZXlzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHN0YXRpYyBpbnQgaW50ZWxfd3JpdGVfc2hhX3RleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgc2hhX3RleHQpCiB7CiAJSTkxNV9XUklURShIRENQX1NIQV9URVhULCBzaGFfdGV4dCk7Ci0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLCBIRENQX1JFUF9DVEwsCi0JCQkJICAgIEhEQ1BfU0hBMV9SRUFEWSwgSERDUF9TSEExX1JFQURZLCAxKSkgeworCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIEhEQ1BfUkVQX0NUTCwgSERDUF9TSEExX1JFQURZLCAxKSkgewogCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBTSEExIHJlYWR5XG4iKTsKIAkJcmV0dXJuIC1FVElNRURPVVQ7CiAJfQpAQCAtNDc1LDkgKzQ3NSw4IEBAIGludCBpbnRlbF9oZGNwX3ZhbGlkYXRlX3ZfcHJpbWUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAKIAkvKiBUZWxsIHRoZSBIVyB3ZSdyZSBkb25lIHdpdGggdGhlIGhhc2ggYW5kIHdhaXQgZm9yIGl0IHRvIEFDSyAqLwogCUk5MTVfV1JJVEUoSERDUF9SRVBfQ1RMLCByZXBfY3RsIHwgSERDUF9TSEExX0NPTVBMRVRFX0hBU0gpOwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwgSERDUF9SRVBfQ1RMLAotCQkJCSAgICBIRENQX1NIQTFfQ09NUExFVEUsCi0JCQkJICAgIEhEQ1BfU0hBMV9DT01QTEVURSwgMSkpIHsKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBIRENQX1JFUF9DVEwsCisJCQkJICBIRENQX1NIQTFfQ09NUExFVEUsIDEpKSB7CiAJCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIFNIQTEgY29tcGxldGVcbiIpOwogCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAl9CkBAIC01MjMsMTIgKzUyMiwxNiBAQCBpbnQgaW50ZWxfaGRjcF9hdXRoX2Rvd25zdHJlYW0oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCSAqIGF1dGhlbnRpY2F0aW9uLgogCSAqLwogCW51bV9kb3duc3RyZWFtID0gRFJNX0hEQ1BfTlVNX0RPV05TVFJFQU0oYnN0YXR1c1swXSk7Ci0JaWYgKG51bV9kb3duc3RyZWFtID09IDApCisJaWYgKG51bV9kb3duc3RyZWFtID09IDApIHsKKwkJRFJNX0RFQlVHX0tNUygiUmVwZWF0ZXIgd2l0aCB6ZXJvIGRvd25zdHJlYW0gZGV2aWNlc1xuIik7CiAJCXJldHVybiAtRUlOVkFMOworCX0KIAogCWtzdl9maWZvID0ga2NhbGxvYyhEUk1fSERDUF9LU1ZfTEVOLCBudW1fZG93bnN0cmVhbSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFrc3ZfZmlmbykKKwlpZiAoIWtzdl9maWZvKSB7CisJCURSTV9ERUJVR19LTVMoIk91dCBvZiBtZW06IGtzdl9maWZvXG4iKTsKIAkJcmV0dXJuIC1FTk9NRU07CisJfQogCiAJcmV0ID0gc2hpbS0+cmVhZF9rc3ZfZmlmbyhpbnRlbF9kaWdfcG9ydCwgbnVtX2Rvd25zdHJlYW0sIGtzdl9maWZvKTsKIAlpZiAocmV0KQpAQCAtNjE2LDkgKzYxOSw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRjcF9hdXRoKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlJOTE1X1dSSVRFKFBPUlRfSERDUF9DT05GKHBvcnQpLCBIRENQX0NPTkZfQ0FQVFVSRV9BTik7CiAKIAkvKiBXYWl0IGZvciBBbiB0byBiZSBhY3F1aXJlZCAqLwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwgUE9SVF9IRENQX1NUQVRVUyhwb3J0KSwKLQkJCQkgICAgSERDUF9TVEFUVVNfQU5fUkVBRFksCi0JCQkJICAgIEhEQ1BfU1RBVFVTX0FOX1JFQURZLCAxKSkgeworCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIFBPUlRfSERDUF9TVEFUVVMocG9ydCksCisJCQkJICBIRENQX1NUQVRVU19BTl9SRUFEWSwgMSkpIHsKIAkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgQW5cbiIpOwogCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAl9CkBAIC03MDIsOSArNzA0LDkgQEAgc3RhdGljIGludCBpbnRlbF9oZGNwX2F1dGgoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCX0KIAogCS8qIFdhaXQgZm9yIGVuY3J5cHRpb24gY29uZmlybWF0aW9uICovCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLCBQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpLAotCQkJCSAgICBIRENQX1NUQVRVU19FTkMsIEhEQ1BfU1RBVFVTX0VOQywKLQkJCQkgICAgRU5DUllQVF9TVEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpKSB7CisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgUE9SVF9IRENQX1NUQVRVUyhwb3J0KSwKKwkJCQkgIEhEQ1BfU1RBVFVTX0VOQywKKwkJCQkgIEVOQ1JZUFRfU1RBVFVTX0NIQU5HRV9USU1FT1VUX01TKSkgewogCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBlbmNyeXB0aW9uXG4iKTsKIAkJcmV0dXJuIC1FVElNRURPVVQ7CiAJfQpAQCAtNzM0LDggKzczNiw3IEBAIHN0YXRpYyBpbnQgX2ludGVsX2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAKIAloZGNwLT5oZGNwX2VuY3J5cHRlZCA9IGZhbHNlOwogCUk5MTVfV1JJVEUoUE9SVF9IRENQX0NPTkYocG9ydCksIDApOwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgUE9SVF9IRENQX1NUQVRVUyhwb3J0KSwgfjAsIDAsCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2LCBQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpLCB+MCwKIAkJCQkgICAgRU5DUllQVF9TVEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpKSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGRpc2FibGUgSERDUCwgdGltZW91dCBjbGVhcmluZyBzdGF0dXNcbiIpOwogCQlyZXR1cm4gLUVUSU1FRE9VVDsKQEAgLTg2Niw3ICs4NjcsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZGNwX3Byb3Bfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQkJCSAgICAgICBwcm9wX3dvcmspOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGludGVsX2hkY3BfdG9fY29ubmVjdG9yKGhkY3ApOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2OwotCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZTsKIAogCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7CiAJbXV0ZXhfbG9jaygmaGRjcC0+bXV0ZXgpOwpAQCAtODc2LDEwICs4NzYsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZGNwX3Byb3Bfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJICogdGhvc2UgdG8gVU5ERVNJUkVEIGlzIGhhbmRsZWQgYnkgY29yZS4gSWYgdmFsdWUgPT0gVU5ERVNJUkVELAogCSAqIHdlJ3JlIHJ1bm5pbmcganVzdCBhZnRlciBoZGNwIGhhcyBiZWVuIGRpc2FibGVkLCBzbyBqdXN0IGV4aXQKIAkgKi8KLQlpZiAoaGRjcC0+dmFsdWUgIT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRCkgewotCQlzdGF0ZSA9IGNvbm5lY3Rvci0+YmFzZS5zdGF0ZTsKLQkJc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9IGhkY3AtPnZhbHVlOwotCX0KKwlpZiAoaGRjcC0+dmFsdWUgIT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRCkKKwkJZHJtX2hkY3BfdXBkYXRlX2NvbnRlbnRfcHJvdGVjdGlvbigmY29ubmVjdG9yLT5iYXNlLAorCQkJCQkJICAgaGRjcC0+dmFsdWUpOwogCiAJbXV0ZXhfdW5sb2NrKCZoZGNwLT5tdXRleCk7CiAJZHJtX21vZGVzZXRfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOwpAQCAtMTIwNyw4ICsxMjA2LDEwIEBAIHN0YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRpb25fa2V5X2V4Y2hhbmdlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAotCWlmIChtc2dzLnNlbmRfY2VydC5yeF9jYXBzWzBdICE9IEhEQ1BfMl8yX1JYX0NBUFNfVkVSU0lPTl9WQUwpCisJaWYgKG1zZ3Muc2VuZF9jZXJ0LnJ4X2NhcHNbMF0gIT0gSERDUF8yXzJfUlhfQ0FQU19WRVJTSU9OX1ZBTCkgeworCQlEUk1fREVCVUdfS01TKCJjZXJ0LnJ4X2NhcHMgZG9udCBjbGFpbSBIRENQMi4yXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CisJfQogCiAJaGRjcC0+aXNfcmVwZWF0ZXIgPSBIRENQXzJfMl9SWF9SRVBFQVRFUihtc2dzLnNlbmRfY2VydC5yeF9jYXBzWzJdKTsKIApAQCAtMTUxMiwxMCArMTUxMyw5IEBAIHN0YXRpYyBpbnQgaGRjcDJfZW5hYmxlX2VuY3J5cHRpb24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkJICAgQ1RMX0xJTktfRU5DUllQVElPTl9SRVEpOwogCX0KIAotCXJldCA9IGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLCBIRENQMl9TVEFUVVNfRERJKHBvcnQpLAotCQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsCi0JCQkJICAgICAgTElOS19FTkNSWVBUSU9OX1NUQVRVUywKLQkJCQkgICAgICBFTkNSWVBUX1NUQVRVU19DSEFOR0VfVElNRU9VVF9NUyk7CisJcmV0ID0gaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBIRENQMl9TVEFUVVNfRERJKHBvcnQpLAorCQkJCSAgICBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTLAorCQkJCSAgICBFTkNSWVBUX1NUQVRVU19DSEFOR0VfVElNRU9VVF9NUyk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTUzMyw4ICsxNTMzLDggQEAgc3RhdGljIGludCBoZGNwMl9kaXNhYmxlX2VuY3J5cHRpb24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCUk5MTVfV1JJVEUoSERDUDJfQ1RMX0RESShwb3J0KSwKIAkJICAgSTkxNV9SRUFEKEhEQ1AyX0NUTF9EREkocG9ydCkpICYgfkNUTF9MSU5LX0VOQ1JZUFRJT05fUkVRKTsKIAotCXJldCA9IGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLCBIRENQMl9TVEFUVVNfRERJKHBvcnQpLAotCQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsIDB4MCwKKwlyZXQgPSBpbnRlbF9kZV93YWl0X2Zvcl9jbGVhcihkZXZfcHJpdiwgSERDUDJfU1RBVFVTX0RESShwb3J0KSwKKwkJCQkgICAgICBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTLAogCQkJCSAgICAgIEVOQ1JZUFRfU1RBVFVTX0NIQU5HRV9USU1FT1VUX01TKTsKIAlpZiAocmV0ID09IC1FVElNRURPVVQpCiAJCURSTV9ERUJVR19LTVMoIkRpc2FibGUgRW5jcnlwdGlvbiBUaW1lZG91dCIpOwpAQCAtMTc0OSwxNCArMTc0OSwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMgaTkxNV9oZGNwX2NvbXBvbmVudF9vcHMgPSB7CiAJLnVuYmluZCA9IGk5MTVfaGRjcF9jb21wb25lbnRfdW5iaW5kLAogfTsKIAotc3RhdGljIGlubGluZSBpbnQgaW5pdGlhbGl6ZV9oZGNwX3BvcnRfZGF0YShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCitzdGF0aWMgaW5saW5lIGludCBpbml0aWFsaXplX2hkY3BfcG9ydF9kYXRhKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0pCiB7CiAJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwogCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZoZGNwLT5wb3J0X2RhdGE7CiAKIAlkYXRhLT5wb3J0ID0gY29ubmVjdG9yLT5lbmNvZGVyLT5wb3J0OwogCWRhdGEtPnBvcnRfdHlwZSA9ICh1OClIRENQX1BPUlRfVFlQRV9JTlRFR1JBVEVEOwotCWRhdGEtPnByb3RvY29sID0gKHU4KWhkY3AtPnNoaW0tPnByb3RvY29sOworCWRhdGEtPnByb3RvY29sID0gKHU4KXNoaW0tPnByb3RvY29sOwogCiAJZGF0YS0+ayA9IDE7CiAJaWYgKCFkYXRhLT5zdHJlYW1zKQpAQCAtMTgwNiwxMiArMTgwNywxMyBAQCB2b2lkIGludGVsX2hkY3BfY29tcG9uZW50X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCX0KIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfaGRjcDJfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCitzdGF0aWMgdm9pZCBpbnRlbF9oZGNwMl9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSkKIHsKIAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CiAJaW50IHJldDsKIAotCXJldCA9IGluaXRpYWxpemVfaGRjcF9wb3J0X2RhdGEoY29ubmVjdG9yKTsKKwlyZXQgPSBpbml0aWFsaXplX2hkY3BfcG9ydF9kYXRhKGNvbm5lY3Rvciwgc2hpbSk7CiAJaWYgKHJldCkgewogCQlEUk1fREVCVUdfS01TKCJNZWkgaGRjcCBkYXRhIGluaXQgZmFpbGVkXG4iKTsKIAkJcmV0dXJuOwpAQCAtMTgzMCwyMyArMTgzMiwyOCBAQCBpbnQgaW50ZWxfaGRjcF9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlpZiAoIXNoaW0pCiAJCXJldHVybiAtRUlOVkFMOwogCi0JcmV0ID0gZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UpOwotCWlmIChyZXQpCisJaWYgKGlzX2hkY3AyX3N1cHBvcnRlZChkZXZfcHJpdikpCisJCWludGVsX2hkY3AyX2luaXQoY29ubmVjdG9yLCBzaGltKTsKKworCXJldCA9CisJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCisJCQkJCQkJIGhkY3AtPmhkY3AyX3N1cHBvcnRlZCk7CisJaWYgKHJldCkgeworCQloZGNwLT5oZGNwMl9zdXBwb3J0ZWQgPSBmYWxzZTsKKwkJa2ZyZWUoaGRjcC0+cG9ydF9kYXRhLnN0cmVhbXMpOwogCQlyZXR1cm4gcmV0OworCX0KIAogCWhkY3AtPnNoaW0gPSBzaGltOwogCW11dGV4X2luaXQoJmhkY3AtPm11dGV4KTsKIAlJTklUX0RFTEFZRURfV09SSygmaGRjcC0+Y2hlY2tfd29yaywgaW50ZWxfaGRjcF9jaGVja193b3JrKTsKIAlJTklUX1dPUksoJmhkY3AtPnByb3Bfd29yaywgaW50ZWxfaGRjcF9wcm9wX3dvcmspOwotCi0JaWYgKGlzX2hkY3AyX3N1cHBvcnRlZChkZXZfcHJpdikpCi0JCWludGVsX2hkY3AyX2luaXQoY29ubmVjdG9yKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZoZGNwLT5jcF9pcnFfcXVldWUpOwogCiAJcmV0dXJuIDA7CiB9CiAKLWludCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCitpbnQgaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1OCBjb250ZW50X3R5cGUpCiB7CiAJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwogCXVuc2lnbmVkIGxvbmcgY2hlY2tfbGlua19pbnRlcnZhbCA9IERSTV9IRENQX0NIRUNLX1BFUklPRF9NUzsKQEAgLTE4NTcsNiArMTg2NCw3IEBAIGludCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAKIAltdXRleF9sb2NrKCZoZGNwLT5tdXRleCk7CiAJV0FSTl9PTihoZGNwLT52YWx1ZSA9PSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRCk7CisJaGRjcC0+Y29udGVudF90eXBlID0gY29udGVudF90eXBlOwogCiAJLyoKIAkgKiBDb25zaWRlcmluZyB0aGF0IEhEQ1AyLjIgaXMgbW9yZSBzZWN1cmUgdGhhbiBIRENQMS40LCBJZiB0aGUgc2V0dXAKQEAgLTE4NjgsOCArMTg3NiwxMiBAQCBpbnQgaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkJY2hlY2tfbGlua19pbnRlcnZhbCA9IERSTV9IRENQMl9DSEVDS19QRVJJT0RfTVM7CiAJfQogCi0JLyogV2hlbiBIRENQMi4yIGZhaWxzLCBIRENQMS40IHdpbGwgYmUgYXR0ZW1wdGVkICovCi0JaWYgKHJldCAmJiBpbnRlbF9oZGNwX2NhcGFibGUoY29ubmVjdG9yKSkgeworCS8qCisJICogV2hlbiBIRENQMi4yIGZhaWxzIGFuZCBDb250ZW50IFR5cGUgaXMgbm90IFR5cGUxLCBIRENQMS40IHdpbGwKKwkgKiBiZSBhdHRlbXB0ZWQuCisJICovCisJaWYgKHJldCAmJiBpbnRlbF9oZGNwX2NhcGFibGUoY29ubmVjdG9yKSAmJgorCSAgICBoZGNwLT5jb250ZW50X3R5cGUgIT0gRFJNX01PREVfSERDUF9DT05URU5UX1RZUEUxKSB7CiAJCXJldCA9IF9pbnRlbF9oZGNwX2VuYWJsZShjb25uZWN0b3IpOwogCX0KIApAQCAtMTk1MSwxMiArMTk2MywxNSBAQCB2b2lkIGludGVsX2hkY3BfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAKIAkvKgogCSAqIE5vdGhpbmcgdG8gZG8gaWYgdGhlIHN0YXRlIGRpZG4ndCBjaGFuZ2UsIG9yIEhEQ1Agd2FzIGFjdGl2YXRlZCBzaW5jZQotCSAqIHRoZSBsYXN0IGNvbW1pdAorCSAqIHRoZSBsYXN0IGNvbW1pdC4gQW5kIGFsc28gbm8gY2hhbmdlIGluIGhkY3AgY29udGVudCB0eXBlLgogCSAqLwogCWlmIChvbGRfY3AgPT0gbmV3X2NwIHx8CiAJICAgIChvbGRfY3AgPT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQgJiYKLQkgICAgIG5ld19jcCA9PSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRCkpCi0JCXJldHVybjsKKwkgICAgIG5ld19jcCA9PSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRCkpIHsKKwkJaWYgKG9sZF9zdGF0ZS0+aGRjcF9jb250ZW50X3R5cGUgPT0KKwkJCQluZXdfc3RhdGUtPmhkY3BfY29udGVudF90eXBlKQorCQkJcmV0dXJuOworCX0KIAogCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShuZXdfc3RhdGUtPnN0YXRlLAogCQkJCQkJICAgbmV3X3N0YXRlLT5jcnRjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZGNwLmgKaW5kZXggYmU4ZGE4NS4uMTM1NTViMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZGNwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZGNwLmgKQEAgLTIxLDcgKzIxLDcgQEAgdm9pZCBpbnRlbF9oZGNwX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X3N0YXRlKTsKIGludCBpbnRlbF9oZGNwX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqaGRjcF9zaGltKTsKLWludCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOworaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTggY29udGVudF90eXBlKTsKIGludCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKIGJvb2wgaXNfaGRjcF9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCk7CiBib29sIGludGVsX2hkY3BfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYwppbmRleCAwZWJlYzY5Li5lMDJmMGZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYwpAQCAtNDUsMTcgKzQ1LDE3IEBACiAjaW5jbHVkZSAiaW50ZWxfYXVkaW8uaCIKICNpbmNsdWRlICJpbnRlbF9jb25uZWN0b3IuaCIKICNpbmNsdWRlICJpbnRlbF9kZGkuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHAuaCIKICNpbmNsdWRlICJpbnRlbF9kcGlvX3BoeS5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1ZGUgImludGVsX2ZpZm9fdW5kZXJydW4uaCIKICNpbmNsdWRlICJpbnRlbF9nbWJ1cy5oIgogI2luY2x1ZGUgImludGVsX2hkY3AuaCIKICNpbmNsdWRlICJpbnRlbF9oZG1pLmgiCiAjaW5jbHVkZSAiaW50ZWxfaG90cGx1Zy5oIgogI2luY2x1ZGUgImludGVsX2xzcGNvbi5oIgotI2luY2x1ZGUgImludGVsX3Nkdm8uaCIKICNpbmNsdWRlICJpbnRlbF9wYW5lbC5oIgorI2luY2x1ZGUgImludGVsX3Nkdm8uaCIKICNpbmNsdWRlICJpbnRlbF9zaWRlYmFuZC5oIgogCiBzdGF0aWMgc3RydWN0IGRybV9kZXZpY2UgKmludGVsX2hkbWlfdG9fZGV2KHN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pKQpAQCAtMTUxNCwyOSArMTUxNCwyOCBAQCBib29sIGludGVsX2hkbWlfaGRjcF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgc3RydWN0IGhkY3AyX2hkbWlfbXNnX2RhdGEgeworc3RydWN0IGhkY3AyX2hkbWlfbXNnX2RhdGEgewogCXU4IG1zZ19pZDsKIAl1MzIgdGltZW91dDsKIAl1MzIgdGltZW91dDI7Ci0JfSBoZGNwMl9tc2dfZGF0YVtdID0gewotCQl7SERDUF8yXzJfQUtFX0lOSVQsIDAsIDB9LAotCQl7SERDUF8yXzJfQUtFX1NFTkRfQ0VSVCwgSERDUF8yXzJfQ0VSVF9USU1FT1VUX01TLCAwfSwKLQkJe0hEQ1BfMl8yX0FLRV9OT19TVE9SRURfS00sIDAsIDB9LAotCQl7SERDUF8yXzJfQUtFX1NUT1JFRF9LTSwgMCwgMH0sCi0JCXtIRENQXzJfMl9BS0VfU0VORF9IUFJJTUUsIEhEQ1BfMl8yX0hQUklNRV9QQUlSRURfVElNRU9VVF9NUywKLQkJCQlIRENQXzJfMl9IUFJJTUVfTk9fUEFJUkVEX1RJTUVPVVRfTVN9LAotCQl7SERDUF8yXzJfQUtFX1NFTkRfUEFJUklOR19JTkZPLCBIRENQXzJfMl9QQUlSSU5HX1RJTUVPVVRfTVMsCi0JCQkJMH0sCi0JCXtIRENQXzJfMl9MQ19JTklULCAwLCAwfSwKLQkJe0hEQ1BfMl8yX0xDX1NFTkRfTFBSSU1FLCBIRENQXzJfMl9IRE1JX0xQUklNRV9USU1FT1VUX01TLCAwfSwKLQkJe0hEQ1BfMl8yX1NLRV9TRU5EX0VLUywgMCwgMH0sCi0JCXtIRENQXzJfMl9SRVBfU0VORF9SRUNWSURfTElTVCwKLQkJCQlIRENQXzJfMl9SRUNWSURfTElTVF9USU1FT1VUX01TLCAwfSwKLQkJe0hEQ1BfMl8yX1JFUF9TRU5EX0FDSywgMCwgMH0sCi0JCXtIRENQXzJfMl9SRVBfU1RSRUFNX01BTkFHRSwgMCwgMH0sCi0JCXtIRENQXzJfMl9SRVBfU1RSRUFNX1JFQURZLCBIRENQXzJfMl9TVFJFQU1fUkVBRFlfVElNRU9VVF9NUywKLQkJCQkwfSwKLQl9OworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBoZGNwMl9oZG1pX21zZ19kYXRhIGhkY3AyX21zZ19kYXRhW10gPSB7CisJeyBIRENQXzJfMl9BS0VfSU5JVCwgMCwgMCB9LAorCXsgSERDUF8yXzJfQUtFX1NFTkRfQ0VSVCwgSERDUF8yXzJfQ0VSVF9USU1FT1VUX01TLCAwIH0sCisJeyBIRENQXzJfMl9BS0VfTk9fU1RPUkVEX0tNLCAwLCAwIH0sCisJeyBIRENQXzJfMl9BS0VfU1RPUkVEX0tNLCAwLCAwIH0sCisJeyBIRENQXzJfMl9BS0VfU0VORF9IUFJJTUUsIEhEQ1BfMl8yX0hQUklNRV9QQUlSRURfVElNRU9VVF9NUywKKwkgIEhEQ1BfMl8yX0hQUklNRV9OT19QQUlSRURfVElNRU9VVF9NUyB9LAorCXsgSERDUF8yXzJfQUtFX1NFTkRfUEFJUklOR19JTkZPLCBIRENQXzJfMl9QQUlSSU5HX1RJTUVPVVRfTVMsIDAgfSwKKwl7IEhEQ1BfMl8yX0xDX0lOSVQsIDAsIDAgfSwKKwl7IEhEQ1BfMl8yX0xDX1NFTkRfTFBSSU1FLCBIRENQXzJfMl9IRE1JX0xQUklNRV9USU1FT1VUX01TLCAwIH0sCisJeyBIRENQXzJfMl9TS0VfU0VORF9FS1MsIDAsIDAgfSwKKwl7IEhEQ1BfMl8yX1JFUF9TRU5EX1JFQ1ZJRF9MSVNULCBIRENQXzJfMl9SRUNWSURfTElTVF9USU1FT1VUX01TLCAwIH0sCisJeyBIRENQXzJfMl9SRVBfU0VORF9BQ0ssIDAsIDAgfSwKKwl7IEhEQ1BfMl8yX1JFUF9TVFJFQU1fTUFOQUdFLCAwLCAwIH0sCisJeyBIRENQXzJfMl9SRVBfU1RSRUFNX1JFQURZLCBIRENQXzJfMl9TVFJFQU1fUkVBRFlfVElNRU9VVF9NUywgMCB9LAorfTsKIAogc3RhdGljCiBpbnQgaW50ZWxfaGRtaV9oZGNwMl9yZWFkX3J4X3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKQEAgLTI5MzAsNTEgKzI5MjksMzQgQEAgc3RhdGljIHU4IGNucF9wb3J0X3RvX2RkY19waW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiBzdGF0aWMgdTggaWNsX3BvcnRfdG9fZGRjX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogewotCXU4IGRkY19waW47CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCi0Jc3dpdGNoIChwb3J0KSB7Ci0JY2FzZSBQT1JUX0E6Ci0JCWRkY19waW4gPSBHTUJVU19QSU5fMV9CWFQ7Ci0JCWJyZWFrOwotCWNhc2UgUE9SVF9COgotCQlkZGNfcGluID0gR01CVVNfUElOXzJfQlhUOwotCQlicmVhazsKLQljYXNlIFBPUlRfQzoKLQkJZGRjX3BpbiA9IEdNQlVTX1BJTl85X1RDMV9JQ1A7Ci0JCWJyZWFrOwotCWNhc2UgUE9SVF9EOgotCQlkZGNfcGluID0gR01CVVNfUElOXzEwX1RDMl9JQ1A7Ci0JCWJyZWFrOwotCWNhc2UgUE9SVF9FOgotCQlkZGNfcGluID0gR01CVVNfUElOXzExX1RDM19JQ1A7Ci0JCWJyZWFrOwotCWNhc2UgUE9SVF9GOgotCQlkZGNfcGluID0gR01CVVNfUElOXzEyX1RDNF9JQ1A7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShwb3J0KTsKLQkJZGRjX3BpbiA9IEdNQlVTX1BJTl8yX0JYVDsKLQkJYnJlYWs7Ci0JfQotCXJldHVybiBkZGNfcGluOworCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpCisJCXJldHVybiBHTUJVU19QSU5fMV9CWFQgKyBwb3J0OworCWVsc2UgaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkKKwkJcmV0dXJuIEdNQlVTX1BJTl85X1RDMV9JQ1AgKyBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBwb3J0KTsKKworCVdBUk4oMSwgIlVua25vd24gcG9ydDolY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsKKwlyZXR1cm4gR01CVVNfUElOXzJfQlhUOwogfQogCiBzdGF0aWMgdTggbWNjX3BvcnRfdG9fZGRjX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogeworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KTsKIAl1OCBkZGNfcGluOwogCi0Jc3dpdGNoIChwb3J0KSB7Ci0JY2FzZSBQT1JUX0E6CisJc3dpdGNoIChwaHkpIHsKKwljYXNlIFBIWV9BOgogCQlkZGNfcGluID0gR01CVVNfUElOXzFfQlhUOwogCQlicmVhazsKLQljYXNlIFBPUlRfQjoKKwljYXNlIFBIWV9COgogCQlkZGNfcGluID0gR01CVVNfUElOXzJfQlhUOwogCQlicmVhazsKLQljYXNlIFBPUlRfQzoKKwljYXNlIFBIWV9DOgogCQlkZGNfcGluID0gR01CVVNfUElOXzlfVEMxX0lDUDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKHBvcnQpOworCQlNSVNTSU5HX0NBU0UocGh5KTsKIAkJZGRjX3BpbiA9IEdNQlVTX1BJTl8xX0JYVDsKIAkJYnJlYWs7CiAJfQpAQCAtMzAxOSw3ICszMDAxLDcgQEAgc3RhdGljIHU4IGludGVsX2hkbWlfZGRjX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlpZiAoSEFTX1BDSF9NQ0MoZGV2X3ByaXYpKQogCQlkZGNfcGluID0gbWNjX3BvcnRfdG9fZGRjX3BpbihkZXZfcHJpdiwgcG9ydCk7Ci0JZWxzZSBpZiAoSEFTX1BDSF9JQ1AoZGV2X3ByaXYpKQorCWVsc2UgaWYgKEhBU19QQ0hfVEdQKGRldl9wcml2KSB8fCBIQVNfUENIX0lDUChkZXZfcHJpdikpCiAJCWRkY19waW4gPSBpY2xfcG9ydF90b19kZGNfcGluKGRldl9wcml2LCBwb3J0KTsKIAllbHNlIGlmIChIQVNfUENIX0NOUChkZXZfcHJpdikpCiAJCWRkY19waW4gPSBjbnBfcG9ydF90b19kZGNfcGluKGRldl9wcml2LCBwb3J0KTsKQEAgLTMxNDMsNiArMzEyNSwzMiBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJCURSTV9ERUJVR19LTVMoIkNFQyBub3RpZmllciBnZXQgZmFpbGVkXG4iKTsKIH0KIAorc3RhdGljIGVudW0gaW50ZWxfaG90cGx1Z19zdGF0ZQoraW50ZWxfaGRtaV9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgaXJxX3JlY2VpdmVkKQoreworCWVudW0gaW50ZWxfaG90cGx1Z19zdGF0ZSBzdGF0ZTsKKworCXN0YXRlID0gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3RvciwgaXJxX3JlY2VpdmVkKTsKKworCS8qCisJICogT24gbWFueSBwbGF0Zm9ybXMgdGhlIEhETUkgbGl2ZSBzdGF0ZSBzaWduYWwgaXMga25vd24gdG8gYmUKKwkgKiB1bnJlbGlhYmxlLCBzbyB3ZSBjYW4ndCB1c2UgaXQgdG8gZGV0ZWN0IGlmIGEgc2luayBpcyBjb25uZWN0ZWQgb3IKKwkgKiBub3QuIEluc3RlYWQgd2UgZGV0ZWN0IGlmIGl0J3MgY29ubmVjdGVkIGJhc2VkIG9uIHdoZXRoZXIgd2UgY2FuCisJICogcmVhZCB0aGUgRURJRCBvciBub3QuIFRoYXQgaW4gdHVybiBoYXMgYSBwcm9ibGVtIGR1cmluZyBkaXNjb25uZWN0LAorCSAqIHNpbmNlIHRoZSBIUEQgaW50ZXJydXB0IG1heSBiZSByYWlzZWQgYmVmb3JlIHRoZSBEREMgbGluZXMgZ2V0CisJICogZGlzY29ubmVjdGVkIChkdWUgdG8gaG93IHRoZSByZXF1aXJlZCBsZW5ndGggb2YgRERDIHZzLiBIUEQKKwkgKiBjb25uZWN0b3IgcGlucyBhcmUgc3BlY2lmaWVkKSBhbmQgc28gd2UnbGwgc3RpbGwgYmUgYWJsZSB0byBnZXQgYQorCSAqIHZhbGlkIEVESUQuIFRvIHNvbHZlIHRoaXMgc2NoZWR1bGUgYW5vdGhlciBkZXRlY3Rpb24gY3ljbGUgaWYgdGhpcworCSAqIHRpbWUgYXJvdW5kIHdlIGRpZG4ndCBkZXRlY3QgYW55IGNoYW5nZSBpbiB0aGUgc2luaydzIGNvbm5lY3Rpb24KKwkgKiBzdGF0dXMuCisJICovCisJaWYgKHN0YXRlID09IElOVEVMX0hPVFBMVUdfVU5DSEFOR0VEICYmIGlycV9yZWNlaXZlZCkKKwkJc3RhdGUgPSBJTlRFTF9IT1RQTFVHX1JFVFJZOworCisJcmV0dXJuIHN0YXRlOworfQorCiB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCSAgICAgaTkxNV9yZWdfdCBoZG1pX3JlZywgZW51bSBwb3J0IHBvcnQpCiB7CkBAIC0zMTY2LDcgKzMxNzQsNyBAQCB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgJmludGVsX2hkbWlfZW5jX2Z1bmNzLCBEUk1fTU9ERV9FTkNPREVSX1RNRFMsCiAJCQkgIkhETUkgJWMiLCBwb3J0X25hbWUocG9ydCkpOwogCi0JaW50ZWxfZW5jb2Rlci0+aG90cGx1ZyA9IGludGVsX2VuY29kZXJfaG90cGx1ZzsKKwlpbnRlbF9lbmNvZGVyLT5ob3RwbHVnID0gaW50ZWxfaGRtaV9ob3RwbHVnOwogCWludGVsX2VuY29kZXItPmNvbXB1dGVfY29uZmlnID0gaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZzsKIAlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsKIAkJaW50ZWxfZW5jb2Rlci0+ZGlzYWJsZSA9IHBjaF9kaXNhYmxlX2hkbWk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5jCmluZGV4IGVhM2RlNGEuLjU2YmUyMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5jCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9ob3RwbHVnLmgiCiAKIC8qKgpAQCAtMTA0LDYgKzEwNCwxMiBAQCBlbnVtIGhwZF9waW4gaW50ZWxfaHBkX3Bpbl9kZWZhdWx0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJaWYgKElTX0NOTF9XSVRIX1BPUlRfRihkZXZfcHJpdikpCiAJCQlyZXR1cm4gSFBEX1BPUlRfRTsKIAkJcmV0dXJuIEhQRF9QT1JUX0Y7CisJY2FzZSBQT1JUX0c6CisJCXJldHVybiBIUERfUE9SVF9HOworCWNhc2UgUE9SVF9IOgorCQlyZXR1cm4gSFBEX1BPUlRfSDsKKwljYXNlIFBPUlRfSToKKwkJcmV0dXJuIEhQRF9QT1JUX0k7CiAJZGVmYXVsdDoKIAkJTUlTU0lOR19DQVNFKHBvcnQpOwogCQlyZXR1cm4gSFBEX05PTkU7CkBAIC0xMTIsNiArMTE4LDcgQEAgZW51bSBocGRfcGluIGludGVsX2hwZF9waW5fZGVmYXVsdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKICNkZWZpbmUgSFBEX1NUT1JNX0RFVEVDVF9QRVJJT0QJCTEwMDAKICNkZWZpbmUgSFBEX1NUT1JNX1JFRU5BQkxFX0RFTEFZCSgyICogNjAgKiAxMDAwKQorI2RlZmluZSBIUERfUkVUUllfREVMQVkJCQkxMDAwCiAKIC8qKgogICogaW50ZWxfaHBkX2lycV9zdG9ybV9kZXRlY3QgLSBnYXRoZXIgc3RhdHMgYW5kIGRldGVjdCBIUEQgSVJRIHN0b3JtIG9uIGEgcGluCkBAIC0yNjYsOCArMjczLDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2hwZF9pcnFfc3Rvcm1fcmVlbmFibGVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIH0KIAotYm9vbCBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCitlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUKK2ludGVsX2VuY29kZXJfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJICAgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkgICAgICBib29sIGlycV9yZWNlaXZlZCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKIAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIG9sZF9zdGF0dXM7CkBAIC0yNzksNyArMjg4LDcgQEAgYm9vbCBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCWRybV9oZWxwZXJfcHJvYmVfZGV0ZWN0KCZjb25uZWN0b3ItPmJhc2UsIE5VTEwsIGZhbHNlKTsKIAogCWlmIChvbGRfc3RhdHVzID09IGNvbm5lY3Rvci0+YmFzZS5zdGF0dXMpCi0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIElOVEVMX0hPVFBMVUdfVU5DSEFOR0VEOwogCiAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc10gc3RhdHVzIHVwZGF0ZWQgZnJvbSAlcyB0byAlc1xuIiwKIAkJICAgICAgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCkBAIC0yODcsNyArMjk2LDcgQEAgYm9vbCBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAgICAgIGRybV9nZXRfY29ubmVjdG9yX3N0YXR1c19uYW1lKG9sZF9zdGF0dXMpLAogCQkgICAgICBkcm1fZ2V0X2Nvbm5lY3Rvcl9zdGF0dXNfbmFtZShjb25uZWN0b3ItPmJhc2Uuc3RhdHVzKSk7CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gSU5URUxfSE9UUExVR19DSEFOR0VEOwogfQogCiBzdGF0aWMgYm9vbCBpbnRlbF9lbmNvZGVyX2hhc19ocGRfcHVsc2Uoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCkBAIC0zMzksNyArMzQ4LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9kaWdwb3J0X3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAJCWRldl9wcml2LT5ob3RwbHVnLmV2ZW50X2JpdHMgfD0gb2xkX2JpdHM7CiAJCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKLQkJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrKTsKKwkJcXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV93cSwgJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yaywgMCk7CiAJfQogfQogCkBAIC0zNDksMTQgKzM1OCwxNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2RpZ3BvcnRfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgaG90cGx1Zy5ob3RwbHVnX3dvcmspOworCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsCisJCQkgICAgIGhvdHBsdWcuaG90cGx1Z193b3JrLndvcmspOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOwotCWJvb2wgY2hhbmdlZCA9IGZhbHNlOworCXUzMiBjaGFuZ2VkID0gMCwgcmV0cnkgPSAwOwogCXUzMiBocGRfZXZlbnRfYml0czsKKwl1MzIgaHBkX3JldHJ5X2JpdHM7CiAKIAltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKIAlEUk1fREVCVUdfS01TKCJydW5uaW5nIGVuY29kZXIgaG90cGx1ZyBmdW5jdGlvbnNcbiIpOwpAQCAtMzY1LDYgKzM3Niw4IEBAIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJaHBkX2V2ZW50X2JpdHMgPSBkZXZfcHJpdi0+aG90cGx1Zy5ldmVudF9iaXRzOwogCWRldl9wcml2LT5ob3RwbHVnLmV2ZW50X2JpdHMgPSAwOworCWhwZF9yZXRyeV9iaXRzID0gZGV2X3ByaXYtPmhvdHBsdWcucmV0cnlfYml0czsKKwlkZXZfcHJpdi0+aG90cGx1Zy5yZXRyeV9iaXRzID0gMDsKIAogCS8qIEVuYWJsZSBwb2xsaW5nIGZvciBjb25uZWN0b3JzIHdoaWNoIGhhZCBIUEQgSVJRIHN0b3JtcyAqLwogCWludGVsX2hwZF9pcnFfc3Rvcm1fc3dpdGNoX3RvX3BvbGxpbmcoZGV2X3ByaXYpOwpAQCAtMzczLDE2ICszODYsMjkgQEAgc3RhdGljIHZvaWQgaTkxNV9ob3RwbHVnX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZjb25uX2l0ZXIpOwogCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKKwkJdTMyIGhwZF9iaXQ7CisKIAkJaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCWlmICghaW50ZWxfY29ubmVjdG9yLT5lbmNvZGVyKQogCQkJY29udGludWU7CiAJCWludGVsX2VuY29kZXIgPSBpbnRlbF9jb25uZWN0b3ItPmVuY29kZXI7Ci0JCWlmIChocGRfZXZlbnRfYml0cyAmICgxIDw8IGludGVsX2VuY29kZXItPmhwZF9waW4pKSB7CisJCWhwZF9iaXQgPSBCSVQoaW50ZWxfZW5jb2Rlci0+aHBkX3Bpbik7CisJCWlmICgoaHBkX2V2ZW50X2JpdHMgfCBocGRfcmV0cnlfYml0cykgJiBocGRfYml0KSB7CiAJCQlEUk1fREVCVUdfS01TKCJDb25uZWN0b3IgJXMgKHBpbiAlaSkgcmVjZWl2ZWQgaG90cGx1ZyBldmVudC5cbiIsCiAJCQkJICAgICAgY29ubmVjdG9yLT5uYW1lLCBpbnRlbF9lbmNvZGVyLT5ocGRfcGluKTsKIAotCQkJY2hhbmdlZCB8PSBpbnRlbF9lbmNvZGVyLT5ob3RwbHVnKGludGVsX2VuY29kZXIsCi0JCQkJCQkJICBpbnRlbF9jb25uZWN0b3IpOworCQkJc3dpdGNoIChpbnRlbF9lbmNvZGVyLT5ob3RwbHVnKGludGVsX2VuY29kZXIsCisJCQkJCQkgICAgICAgaW50ZWxfY29ubmVjdG9yLAorCQkJCQkJICAgICAgIGhwZF9ldmVudF9iaXRzICYgaHBkX2JpdCkpIHsKKwkJCWNhc2UgSU5URUxfSE9UUExVR19VTkNIQU5HRUQ6CisJCQkJYnJlYWs7CisJCQljYXNlIElOVEVMX0hPVFBMVUdfQ0hBTkdFRDoKKwkJCQljaGFuZ2VkIHw9IGhwZF9iaXQ7CisJCQkJYnJlYWs7CisJCQljYXNlIElOVEVMX0hPVFBMVUdfUkVUUlk6CisJCQkJcmV0cnkgfD0gaHBkX2JpdDsKKwkJCQlicmVhazsKKwkJCX0KIAkJfQogCX0KIAlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRlcik7CkBAIC0zOTAsNiArNDE2LDE3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJaWYgKGNoYW5nZWQpCiAJCWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoZGV2KTsKKworCS8qIFJlbW92ZSBzaGFyZWQgSFBEIHBpbnMgdGhhdCBoYXZlIGNoYW5nZWQgKi8KKwlyZXRyeSAmPSB+Y2hhbmdlZDsKKwlpZiAocmV0cnkpIHsKKwkJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwkJZGV2X3ByaXYtPmhvdHBsdWcucmV0cnlfYml0cyB8PSByZXRyeTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCisJCW1vZF9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCAmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLAorCQkJCSBtc2Vjc190b19qaWZmaWVzKEhQRF9SRVRSWV9ERUxBWSkpOworCX0KIH0KIAogCkBAIC01MTYsNyArNTUzLDcgQEAgdm9pZCBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChxdWV1ZV9kaWcpCiAJCXF1ZXVlX3dvcmsoZGV2X3ByaXYtPmhvdHBsdWcuZHBfd3EsICZkZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrKTsKIAlpZiAocXVldWVfaHApCi0JCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7CisJCXF1ZXVlX2RlbGF5ZWRfd29yayhzeXN0ZW1fd3EsICZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmssIDApOwogfQogCiAvKioKQEAgLTYzNiw3ICs2NzMsOCBAQCB2b2lkIGludGVsX2hwZF9wb2xsX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiB2b2lkIGludGVsX2hwZF9pbml0X3dvcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCUlOSVRfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLCBpOTE1X2hvdHBsdWdfd29ya19mdW5jKTsKKwlJTklUX0RFTEFZRURfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLAorCQkJICBpOTE1X2hvdHBsdWdfd29ya19mdW5jKTsKIAlJTklUX1dPUksoJmRldl9wcml2LT5ob3RwbHVnLmRpZ19wb3J0X3dvcmssIGk5MTVfZGlncG9ydF93b3JrX2Z1bmMpOwogCUlOSVRfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcucG9sbF9pbml0X3dvcmssIGk5MTVfaHBkX3BvbGxfaW5pdF93b3JrKTsKIAlJTklUX0RFTEFZRURfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcucmVlbmFibGVfd29yaywKQEAgLTY1MCwxMSArNjg4LDEyIEBAIHZvaWQgaW50ZWxfaHBkX2NhbmNlbF93b3JrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlkZXZfcHJpdi0+aG90cGx1Zy5sb25nX3BvcnRfbWFzayA9IDA7CiAJZGV2X3ByaXYtPmhvdHBsdWcuc2hvcnRfcG9ydF9tYXNrID0gMDsKIAlkZXZfcHJpdi0+aG90cGx1Zy5ldmVudF9iaXRzID0gMDsKKwlkZXZfcHJpdi0+aG90cGx1Zy5yZXRyeV9iaXRzID0gMDsKIAogCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIAogCWNhbmNlbF93b3JrX3N5bmMoJmRldl9wcml2LT5ob3RwbHVnLmRpZ19wb3J0X3dvcmspOwotCWNhbmNlbF93b3JrX3N5bmMoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7CisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwogCWNhbmNlbF93b3JrX3N5bmMoJmRldl9wcml2LT5ob3RwbHVnLnBvbGxfaW5pdF93b3JrKTsKIAljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmRldl9wcml2LT5ob3RwbHVnLnJlZW5hYmxlX3dvcmspOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuaAppbmRleCA4MDVmODk3Li5iMGNkNDQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuaApAQCAtMTUsOCArMTUsOSBAQCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yOwogc3RydWN0IGludGVsX2VuY29kZXI7CiAKIHZvaWQgaW50ZWxfaHBkX3BvbGxfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotYm9vbCBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOworZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlIGludGVsX2VuY29kZXJfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJICAgICAgIGJvb2wgaXJxX3JlY2VpdmVkKTsKIHZvaWQgaW50ZWxfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgIHUzMiBwaW5fbWFzaywgdTMyIGxvbmdfbWFzayk7CiB2b2lkIGludGVsX2hwZF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2xzcGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sc3Bjb24uYwppbmRleCA3MDI4ZDBjLi5mOGYxMzA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2xzcGNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHNwY29uLmMKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlIDxkcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KIAorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9kcC5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1ZGUgImludGVsX2xzcGNvbi5oIgogCiAvKiBMU1BDT04gT1VJIFZlbmRvciBJRChzaWduYXR1cmVzKSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2ZHMuYwppbmRleCBlZmVmZWQ2Li5iN2M0NTlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2ZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2ZHMuYwpAQCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfYXRvbWljLmgiCiAjaW5jbHVkZSAiaW50ZWxfY29ubmVjdG9yLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2dtYnVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfbHZkcy5oIgogI2luY2x1ZGUgImludGVsX3BhbmVsLmgiCkBAIC0zMTgsOCArMzE4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2x2ZHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJSTkxNV9XUklURShQUF9DT05UUk9MKDApLCBJOTE1X1JFQUQoUFBfQ09OVFJPTCgwKSkgfCBQQU5FTF9QT1dFUl9PTik7CiAJUE9TVElOR19SRUFEKGx2ZHNfZW5jb2Rlci0+cmVnKTsKIAotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgUFBfU1RBVFVTKDApLCBQUF9PTiwgUFBfT04sIDUwMDApKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIFBQX1NUQVRVUygwKSwgUFBfT04sIDUwMDApKQogCQlEUk1fRVJST1IoInRpbWVkIG91dCB3YWl0aW5nIGZvciBwYW5lbCB0byBwb3dlciBvblxuIik7CiAKIAlpbnRlbF9wYW5lbF9lbmFibGVfYmFja2xpZ2h0KHBpcGVfY29uZmlnLCBjb25uX3N0YXRlKTsKQEAgLTMzMyw4ICszMzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2x2ZHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAKIAlJOTE1X1dSSVRFKFBQX0NPTlRST0woMCksIEk5MTVfUkVBRChQUF9DT05UUk9MKDApKSAmIH5QQU5FTF9QT1dFUl9PTik7Ci0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBQUF9TVEFUVVMoMCksIFBQX09OLCAwLCAxMDAwKSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIFBQX1NUQVRVUygwKSwgUFBfT04sIDEwMDApKQogCQlEUk1fRVJST1IoInRpbWVkIG91dCB3YWl0aW5nIGZvciBwYW5lbCB0byBwb3dlciBvZmZcbiIpOwogCiAJSTkxNV9XUklURShsdmRzX2VuY29kZXItPnJlZywgSTkxNV9SRUFEKGx2ZHNfZW5jb2Rlci0+cmVnKSAmIH5MVkRTX1BPUlRfRU4pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9vcHJlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9vcHJlZ2lvbi5jCmluZGV4IDgyNDg4MTIuLjk2OWFkZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ByZWdpb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX29wcmVnaW9uLmMKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX3BhbmVsLmgiCiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9vcHJlZ2lvbi5oIgogCiAjZGVmaW5lIE9QUkVHSU9OX0hFQURFUl9PRkZTRVQgMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9vdmVybGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX292ZXJsYXkuYwppbmRleCAyMTMzOWI3Li4yOWVkZmMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX292ZXJsYXkuYwpAQCAtMzMsNyArMzMsNyBAQAogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X3JlZy5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9mcm9udGJ1ZmZlci5oIgogI2luY2x1ZGUgImludGVsX292ZXJsYXkuaCIKIApAQCAtMTc1LDYgKzE3NSw3IEBAIHN0cnVjdCBvdmVybGF5X3JlZ2lzdGVycyB7CiAKIHN0cnVjdCBpbnRlbF9vdmVybGF5IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY29udGV4dDsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlzdHJ1Y3QgaTkxNV92bWEgKm9sZF92bWE7CkBAIC0xOTAsNyArMTkxLDggQEAgc3RydWN0IGludGVsX292ZXJsYXkgewogCXN0cnVjdCBvdmVybGF5X3JlZ2lzdGVycyBfX2lvbWVtICpyZWdzOwogCXUzMiBmbGlwX2FkZHI7CiAJLyogZmxpcCBoYW5kbGluZyAqLwotCXN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0IGxhc3RfZmxpcDsKKwlzdHJ1Y3QgaTkxNV9hY3RpdmUgbGFzdF9mbGlwOworCXZvaWQgKCpmbGlwX2NvbXBsZXRlKShzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZsKTsKIH07CiAKIHN0YXRpYyB2b2lkIGk4MzBfb3ZlcmxheV9jbG9ja19nYXRpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMjE2LDMyICsyMTgsMjUgQEAgc3RhdGljIHZvaWQgaTgzMF9vdmVybGF5X2Nsb2NrX2dhdGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICBQQ0lfREVWRk4oMCwgMCksIEk4MzBfQ0xPQ0tfR0FURSwgdmFsKTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfb3ZlcmxheV9zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSwKLQkJCQkJIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAotCQkJCQkgaTkxNV9hY3RpdmVfcmV0aXJlX2ZuIHJldGlyZSkKK3N0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKK2FsbG9jX3JlcXVlc3Qoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksIHZvaWQgKCpmbikoc3RydWN0IGludGVsX292ZXJsYXkgKikpCiB7Ci0JR0VNX0JVR19PTihpOTE1X2FjdGl2ZV9yZXF1ZXN0X3BlZWsoJm92ZXJsYXktPmxhc3RfZmxpcCwKLQkJCQkJICAgICZvdmVybGF5LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KSk7Ci0JaTkxNV9hY3RpdmVfcmVxdWVzdF9zZXRfcmV0aXJlX2ZuKCZvdmVybGF5LT5sYXN0X2ZsaXAsIHJldGlyZSwKLQkJCQkJICAmb3ZlcmxheS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JX19pOTE1X2FjdGl2ZV9yZXF1ZXN0X3NldCgmb3ZlcmxheS0+bGFzdF9mbGlwLCBycSk7Ci0JaTkxNV9yZXF1ZXN0X2FkZChycSk7Ci19CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisJaW50IGVycjsKIAotc3RhdGljIGludCBpbnRlbF9vdmVybGF5X2RvX3dhaXRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSwKLQkJCQkJIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAotCQkJCQkgaTkxNV9hY3RpdmVfcmV0aXJlX2ZuIHJldGlyZSkKLXsKLQlpbnRlbF9vdmVybGF5X3N1Ym1pdF9yZXF1ZXN0KG92ZXJsYXksIHJxLCByZXRpcmUpOwotCXJldHVybiBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3JldGlyZSgmb3ZlcmxheS0+bGFzdF9mbGlwLAotCQkJCQkgICZvdmVybGF5LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLX0KKwlvdmVybGF5LT5mbGlwX2NvbXBsZXRlID0gZm47CiAKLXN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICphbGxvY19yZXF1ZXN0KHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQotewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IG92ZXJsYXktPmk5MTUtPmVuZ2luZVtSQ1MwXTsKKwlycSA9IGk5MTVfcmVxdWVzdF9jcmVhdGUob3ZlcmxheS0+Y29udGV4dCk7CisJaWYgKElTX0VSUihycSkpCisJCXJldHVybiBycTsKIAotCXJldHVybiBpOTE1X3JlcXVlc3RfY3JlYXRlKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOworCWVyciA9IGk5MTVfYWN0aXZlX3JlZigmb3ZlcmxheS0+bGFzdF9mbGlwLCBycS0+dGltZWxpbmUsIHJxKTsKKwlpZiAoZXJyKSB7CisJCWk5MTVfcmVxdWVzdF9hZGQocnEpOworCQlyZXR1cm4gRVJSX1BUUihlcnIpOworCX0KKworCXJldHVybiBycTsKIH0KIAogLyogb3ZlcmxheSBuZWVkcyB0byBiZSBkaXNhYmxlIGluIE9DTUQgcmVnICovCkBAIC0yNTMsNyArMjQ4LDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29uKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQogCiAJV0FSTl9PTihvdmVybGF5LT5hY3RpdmUpOwogCi0JcnEgPSBhbGxvY19yZXF1ZXN0KG92ZXJsYXkpOworCXJxID0gYWxsb2NfcmVxdWVzdChvdmVybGF5LCBOVUxMKTsKIAlpZiAoSVNfRVJSKHJxKSkKIAkJcmV0dXJuIFBUUl9FUlIocnEpOwogCkBAIC0yNzQsNyArMjY5LDkgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29uKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQogCSpjcysrID0gTUlfTk9PUDsKIAlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNzKTsKIAotCXJldHVybiBpbnRlbF9vdmVybGF5X2RvX3dhaXRfcmVxdWVzdChvdmVybGF5LCBycSwgTlVMTCk7CisJaTkxNV9yZXF1ZXN0X2FkZChycSk7CisKKwlyZXR1cm4gaTkxNV9hY3RpdmVfd2FpdCgmb3ZlcmxheS0+bGFzdF9mbGlwKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfb3ZlcmxheV9mbGlwX3ByZXBhcmUoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCkBAIC0yODQsOSArMjgxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfb3ZlcmxheV9mbGlwX3ByZXBhcmUoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiAKIAlXQVJOX09OKG92ZXJsYXktPm9sZF92bWEpOwogCi0JaTkxNV9nZW1fdHJhY2tfZmIob3ZlcmxheS0+dm1hID8gb3ZlcmxheS0+dm1hLT5vYmogOiBOVUxMLAotCQkJICB2bWEgPyB2bWEtPm9iaiA6IE5VTEwsCi0JCQkgIElOVEVMX0ZST05UQlVGRkVSX09WRVJMQVkocGlwZSkpOworCWludGVsX2Zyb250YnVmZmVyX3RyYWNrKG92ZXJsYXktPnZtYSA/IG92ZXJsYXktPnZtYS0+b2JqLT5mcm9udGJ1ZmZlciA6IE5VTEwsCisJCQkJdm1hID8gdm1hLT5vYmotPmZyb250YnVmZmVyIDogTlVMTCwKKwkJCQlJTlRFTF9GUk9OVEJVRkZFUl9PVkVSTEFZKHBpcGUpKTsKIAogCWludGVsX2Zyb250YnVmZmVyX2ZsaXBfcHJlcGFyZShvdmVybGF5LT5pOTE1LAogCQkJCSAgICAgICBJTlRFTF9GUk9OVEJVRkZFUl9PVkVSTEFZKHBpcGUpKTsKQEAgLTMxOCw3ICszMTUsNyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfY29udGludWUoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiAJaWYgKHRtcCAmICgxIDw8IDE3KSkKIAkJRFJNX0RFQlVHKCJvdmVybGF5IHVuZGVycnVuLCBET1ZTVEE6ICV4XG4iLCB0bXApOwogCi0JcnEgPSBhbGxvY19yZXF1ZXN0KG92ZXJsYXkpOworCXJxID0gYWxsb2NfcmVxdWVzdChvdmVybGF5LCBOVUxMKTsKIAlpZiAoSVNfRVJSKHJxKSkKIAkJcmV0dXJuIFBUUl9FUlIocnEpOwogCkBAIC0zMzMsOCArMzMwLDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X2NvbnRpbnVlKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5LAogCWludGVsX3JpbmdfYWR2YW5jZShycSwgY3MpOwogCiAJaW50ZWxfb3ZlcmxheV9mbGlwX3ByZXBhcmUob3ZlcmxheSwgdm1hKTsKLQotCWludGVsX292ZXJsYXlfc3VibWl0X3JlcXVlc3Qob3ZlcmxheSwgcnEsIE5VTEwpOworCWk5MTVfcmVxdWVzdF9hZGQocnEpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zNTUsMjAgKzM1MSwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZtYShzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIH0KIAogc3RhdGljIHZvaWQKLWludGVsX292ZXJsYXlfcmVsZWFzZV9vbGRfdmlkX3RhaWwoc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSwKLQkJCQkgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK2ludGVsX292ZXJsYXlfcmVsZWFzZV9vbGRfdmlkX3RhaWwoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiB7Ci0Jc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkgPQotCQljb250YWluZXJfb2YoYWN0aXZlLCB0eXBlb2YoKm92ZXJsYXkpLCBsYXN0X2ZsaXApOwotCiAJaW50ZWxfb3ZlcmxheV9yZWxlYXNlX29sZF92bWEob3ZlcmxheSk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX292ZXJsYXlfb2ZmX3RhaWwoc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSwKLQkJCQkgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3N0YXRpYyB2b2lkIGludGVsX292ZXJsYXlfb2ZmX3RhaWwoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiB7Ci0Jc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkgPQotCQljb250YWluZXJfb2YoYWN0aXZlLCB0eXBlb2YoKm92ZXJsYXkpLCBsYXN0X2ZsaXApOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG92ZXJsYXktPmk5MTU7CiAKIAlpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZtYShvdmVybGF5KTsKQEAgLTM4MSw2ICszNzAsMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfb3ZlcmxheV9vZmZfdGFpbChzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCAqYWN0aXZlLAogCQlpODMwX292ZXJsYXlfY2xvY2tfZ2F0aW5nKGRldl9wcml2LCB0cnVlKTsKIH0KIAorc3RhdGljIHZvaWQKK2ludGVsX292ZXJsYXlfbGFzdF9mbGlwX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmFjdGl2ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSA9CisJCWNvbnRhaW5lcl9vZihhY3RpdmUsIHR5cGVvZigqb3ZlcmxheSksIGxhc3RfZmxpcCk7CisKKwlpZiAob3ZlcmxheS0+ZmxpcF9jb21wbGV0ZSkKKwkJb3ZlcmxheS0+ZmxpcF9jb21wbGV0ZShvdmVybGF5KTsKK30KKwogLyogb3ZlcmxheSBuZWVkcyB0byBiZSBkaXNhYmxlZCBpbiBPQ01EIHJlZyAqLwogc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29mZihzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIHsKQEAgLTM5NSw3ICszOTQsNyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfb2ZmKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQogCSAqIG9mIHRoZSBody4gRG8gaXQgaW4gYm90aCBjYXNlcyAqLwogCWZsaXBfYWRkciB8PSBPRkNfVVBEQVRFOwogCi0JcnEgPSBhbGxvY19yZXF1ZXN0KG92ZXJsYXkpOworCXJxID0gYWxsb2NfcmVxdWVzdChvdmVybGF5LCBpbnRlbF9vdmVybGF5X29mZl90YWlsKTsKIAlpZiAoSVNfRVJSKHJxKSkKIAkJcmV0dXJuIFBUUl9FUlIocnEpOwogCkBAIC00MTgsMTcgKzQxNywxNiBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfb2ZmKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQogCWludGVsX3JpbmdfYWR2YW5jZShycSwgY3MpOwogCiAJaW50ZWxfb3ZlcmxheV9mbGlwX3ByZXBhcmUob3ZlcmxheSwgTlVMTCk7CisJaTkxNV9yZXF1ZXN0X2FkZChycSk7CiAKLQlyZXR1cm4gaW50ZWxfb3ZlcmxheV9kb193YWl0X3JlcXVlc3Qob3ZlcmxheSwgcnEsCi0JCQkJCSAgICAgaW50ZWxfb3ZlcmxheV9vZmZfdGFpbCk7CisJcmV0dXJuIGk5MTVfYWN0aXZlX3dhaXQoJm92ZXJsYXktPmxhc3RfZmxpcCk7CiB9CiAKIC8qIHJlY292ZXIgZnJvbSBhbiBpbnRlcnJ1cHRpb24gZHVlIHRvIGEgc2lnbmFsCiAgKiBXZSBoYXZlIHRvIGJlIGNhcmVmdWwgbm90IHRvIHJlcGVhdCB3b3JrIGZvcmV2ZXIgYW4gbWFrZSBmb3J3YXJkIHByb2dlc3MuICovCiBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfcmVjb3Zlcl9mcm9tX2ludGVycnVwdChzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIHsKLQlyZXR1cm4gaTkxNV9hY3RpdmVfcmVxdWVzdF9yZXRpcmUoJm92ZXJsYXktPmxhc3RfZmxpcCwKLQkJCQkJICAmb3ZlcmxheS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJcmV0dXJuIGk5MTVfYWN0aXZlX3dhaXQoJm92ZXJsYXktPmxhc3RfZmxpcCk7CiB9CiAKIC8qIFdhaXQgZm9yIHBlbmRpbmcgb3ZlcmxheSBmbGlwIGFuZCByZWxlYXNlIG9sZCBmcmFtZS4KQEAgLTQzOCw0MyArNDM2LDQwIEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9yZWNvdmVyX2Zyb21faW50ZXJydXB0KHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQogc3RhdGljIGludCBpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZpZChzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBvdmVybGF5LT5pOTE1OworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCXUzMiAqY3M7Ci0JaW50IHJldDsKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAotCS8qIE9ubHkgd2FpdCBpZiB0aGVyZSBpcyBhY3R1YWxseSBhbiBvbGQgZnJhbWUgdG8gcmVsZWFzZSB0bworCS8qCisJICogT25seSB3YWl0IGlmIHRoZXJlIGlzIGFjdHVhbGx5IGFuIG9sZCBmcmFtZSB0byByZWxlYXNlIHRvCiAJICogZ3VhcmFudGVlIGZvcndhcmQgcHJvZ3Jlc3MuCiAJICovCiAJaWYgKCFvdmVybGF5LT5vbGRfdm1hKQogCQlyZXR1cm4gMDsKIAotCWlmIChJOTE1X1JFQUQoR0VOMl9JU1IpICYgSTkxNV9PVkVSTEFZX1BMQU5FX0ZMSVBfUEVORElOR19JTlRFUlJVUFQpIHsKLQkJLyogc3luY2hyb25vdXMgc2xvd3BhdGggKi8KLQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisJaWYgKCEoSTkxNV9SRUFEKEdFTjJfSVNSKSAmIEk5MTVfT1ZFUkxBWV9QTEFORV9GTElQX1BFTkRJTkdfSU5URVJSVVBUKSkgeworCQlpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZpZF90YWlsKG92ZXJsYXkpOworCQlyZXR1cm4gMDsKKwl9CiAKLQkJcnEgPSBhbGxvY19yZXF1ZXN0KG92ZXJsYXkpOwotCQlpZiAoSVNfRVJSKHJxKSkKLQkJCXJldHVybiBQVFJfRVJSKHJxKTsKKwlycSA9IGFsbG9jX3JlcXVlc3Qob3ZlcmxheSwgaW50ZWxfb3ZlcmxheV9yZWxlYXNlX29sZF92aWRfdGFpbCk7CisJaWYgKElTX0VSUihycSkpCisJCXJldHVybiBQVFJfRVJSKHJxKTsKIAotCQljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDIpOwotCQlpZiAoSVNfRVJSKGNzKSkgewotCQkJaTkxNV9yZXF1ZXN0X2FkZChycSk7Ci0JCQlyZXR1cm4gUFRSX0VSUihjcyk7Ci0JCX0KKwljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDIpOworCWlmIChJU19FUlIoY3MpKSB7CisJCWk5MTVfcmVxdWVzdF9hZGQocnEpOworCQlyZXR1cm4gUFRSX0VSUihjcyk7CisJfQogCi0JCSpjcysrID0gTUlfV0FJVF9GT1JfRVZFTlQgfCBNSV9XQUlUX0ZPUl9PVkVSTEFZX0ZMSVA7Ci0JCSpjcysrID0gTUlfTk9PUDsKLQkJaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBjcyk7CisJKmNzKysgPSBNSV9XQUlUX0ZPUl9FVkVOVCB8IE1JX1dBSVRfRk9SX09WRVJMQVlfRkxJUDsKKwkqY3MrKyA9IE1JX05PT1A7CisJaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBjcyk7CiAKLQkJcmV0ID0gaW50ZWxfb3ZlcmxheV9kb193YWl0X3JlcXVlc3Qob3ZlcmxheSwgcnEsCi0JCQkJCQkgICAgaW50ZWxfb3ZlcmxheV9yZWxlYXNlX29sZF92aWRfdGFpbCk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0gZWxzZQotCQlpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZpZF90YWlsKCZvdmVybGF5LT5sYXN0X2ZsaXAsIE5VTEwpOworCWk5MTVfcmVxdWVzdF9hZGQocnEpOwogCi0JcmV0dXJuIDA7CisJcmV0dXJuIGk5MTVfYWN0aXZlX3dhaXQoJm92ZXJsYXktPmxhc3RfZmxpcCk7CiB9CiAKIHZvaWQgaW50ZWxfb3ZlcmxheV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC03NzMsMTEgKzc2OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9kb19wdXRfaW1hZ2Uoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiAJCXJldCA9IFBUUl9FUlIodm1hKTsKIAkJZ290byBvdXRfcGluX3NlY3Rpb247CiAJfQotCWludGVsX2ZiX29ial9mbHVzaChuZXdfYm8sIE9SSUdJTl9ESVJUWUZCKTsKLQotCXJldCA9IGk5MTVfdm1hX3B1dF9mZW5jZSh2bWEpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0X3VucGluOworCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKG5ld19iby0+ZnJvbnRidWZmZXIsIE9SSUdJTl9ESVJUWUZCKTsKIAogCWlmICghb3ZlcmxheS0+YWN0aXZlKSB7CiAJCXUzMiBvY29uZmlnOwpAQCAtMTM1OSwxMSArMTM1MCwxNiBAQCB2b2lkIGludGVsX292ZXJsYXlfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmICghSEFTX09WRVJMQVkoZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKKwlpZiAoIUhBU19FTkdJTkUoZGV2X3ByaXYsIFJDUzApKQorCQlyZXR1cm47CisKIAlvdmVybGF5ID0ga3phbGxvYyhzaXplb2YoKm92ZXJsYXkpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIW92ZXJsYXkpCiAJCXJldHVybjsKIAogCW92ZXJsYXktPmk5MTUgPSBkZXZfcHJpdjsKKwlvdmVybGF5LT5jb250ZXh0ID0gZGV2X3ByaXYtPmVuZ2luZVtSQ1MwXS0+a2VybmVsX2NvbnRleHQ7CisJR0VNX0JVR19PTighb3ZlcmxheS0+Y29udGV4dCk7CiAKIAlvdmVybGF5LT5jb2xvcl9rZXkgPSAweDAxMDFmZTsKIAlvdmVybGF5LT5jb2xvcl9rZXlfZW5hYmxlZCA9IHRydWU7CkBAIC0xMzcxLDcgKzEzNjcsOSBAQCB2b2lkIGludGVsX292ZXJsYXlfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCW92ZXJsYXktPmNvbnRyYXN0ID0gNzU7CiAJb3ZlcmxheS0+c2F0dXJhdGlvbiA9IDE0NjsKIAotCUlOSVRfQUNUSVZFX1JFUVVFU1QoJm92ZXJsYXktPmxhc3RfZmxpcCk7CisJaTkxNV9hY3RpdmVfaW5pdChkZXZfcHJpdiwKKwkJCSAmb3ZlcmxheS0+bGFzdF9mbGlwLAorCQkJIE5VTEwsIGludGVsX292ZXJsYXlfbGFzdF9mbGlwX3JldGlyZSk7CiAKIAlyZXQgPSBnZXRfcmVnaXN0ZXJzKG92ZXJsYXksIE9WRVJMQVlfTkVFRFNfUEhZU0lDQUwoZGV2X3ByaXYpKTsKIAlpZiAocmV0KQpAQCAtMTQwNSw2ICsxNDAzLDcgQEAgdm9pZCBpbnRlbF9vdmVybGF5X2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCVdBUk5fT04ob3ZlcmxheS0+YWN0aXZlKTsKIAogCWk5MTVfZ2VtX29iamVjdF9wdXQob3ZlcmxheS0+cmVnX2JvKTsKKwlpOTE1X2FjdGl2ZV9maW5pKCZvdmVybGF5LT5sYXN0X2ZsaXApOwogCiAJa2ZyZWUob3ZlcmxheSk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKaW5kZXggMzlkNzQyMDkuLmJjMTRlOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKQEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlIDxsaW51eC9wd20uaD4KIAogI2luY2x1ZGUgImludGVsX2Nvbm5lY3Rvci5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfZHNpX2Rjc19iYWNrbGlnaHQuaCIKICNpbmNsdWRlICJpbnRlbF9wYW5lbC5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMKaW5kZXggMWUyYzQzMDcuLjYyNjBhMjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGlwZV9jcmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogCiAjaW5jbHVkZSAiaW50ZWxfYXRvbWljLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX3BpcGVfY3JjLmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGlwZV9jcmNfc291cmNlc1tdID0gewpAQCAtNjY3LDUgKzY2Nyw1IEBAIHZvaWQgaW50ZWxfY3J0Y19kaXNhYmxlX3BpcGVfY3JjKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQogCiAJSTkxNV9XUklURShQSVBFX0NSQ19DVEwoY3J0Yy0+aW5kZXgpLCAwKTsKIAlQT1NUSU5HX1JFQUQoUElQRV9DUkNfQ1RMKGNydGMtPmluZGV4KSk7Ci0Jc3luY2hyb25pemVfaXJxKGRldl9wcml2LT5kcm0uaXJxKTsKKwlpbnRlbF9zeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKaW5kZXggNjlkOTA4ZS4uM2JmYjcyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kcC5oIgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfcHNyLmgiCiAjaW5jbHVkZSAiaW50ZWxfc3ByaXRlLmgiCiAKQEAgLTgyNSw4ICs4MjUsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAl9CiAKIAkvKiBXYWl0IHRpbGwgUFNSIGlzIGlkbGUgKi8KLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIHBzcl9zdGF0dXMsIHBzcl9zdGF0dXNfbWFzaywgMCwgMjAwMCkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2LCBwc3Jfc3RhdHVzLAorCQkJCSAgICBwc3Jfc3RhdHVzX21hc2ssIDIwMDApKQogCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIFBTUiBpZGxlIHN0YXRlXG4iKTsKIAogCS8qIERpc2FibGUgUFNSIG9uIFNpbmsgKi8KQEAgLTk4OCw3ICs5ODgsNyBAQCBzdGF0aWMgYm9vbCBfX3Bzcl93YWl0X2Zvcl9pZGxlX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7CiAKLQllcnIgPSBpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwgcmVnLCBtYXNrLCAwLCA1MCk7CisJZXJyID0gaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIHJlZywgbWFzaywgNTApOwogCWlmIChlcnIpCiAJCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIFBTUiBJZGxlIGZvciByZS1lbmFibGVcbiIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3F1aXJrcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9xdWlya3MuYwppbmRleCAwYjc0OWMyLi4zOTliMTU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3F1aXJrcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcXVpcmtzLmMKQEAgLTUsNyArNSw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9kbWkuaD4KIAotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9xdWlya3MuaCIKIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKaW5kZXggY2VkYTAzZS4uYWRlYjFjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2F0b21pYy5oIgogI2luY2x1ZGUgImludGVsX2Nvbm5lY3Rvci5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9maWZvX3VuZGVycnVuLmgiCiAjaW5jbHVkZSAiaW50ZWxfZ21idXMuaCIKICNpbmNsdWRlICJpbnRlbF9oZG1pLmgiCkBAIC0yNzQsMTMwICsyNzQsMTQ1IEBAIHN0YXRpYyBib29sIGludGVsX3Nkdm9fcmVhZF9ieXRlKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLCB1OCBhZGRyLCB1OCAqY2gpCiAJcmV0dXJuIGZhbHNlOwogfQogCi0jZGVmaW5lIFNEVk9fQ01EX05BTUVfRU5UUlkoY21kKSB7Y21kLCAjY21kfQorI2RlZmluZSBTRFZPX0NNRF9OQU1FX0VOVFJZKGNtZF8pIHsgLmNtZCA9IFNEVk9fQ01EXyAjIyBjbWRfLCAubmFtZSA9ICNjbWRfIH0KKwogLyoqIE1hcHBpbmcgb2YgY29tbWFuZCBudW1iZXJzIHRvIG5hbWVzLCBmb3IgZGVidWcgb3V0cHV0ICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IF9zZHZvX2NtZF9uYW1lIHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgewogCXU4IGNtZDsKIAljb25zdCBjaGFyICpuYW1lOwogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgc2R2b19jbWRfbmFtZXNbXSA9IHsKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX1JFU0VUKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9ERVZJQ0VfQ0FQUyksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfRklSTVdBUkVfUkVWKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9UUkFJTkVEX0lOUFVUUyksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfQUNUSVZFX09VVFBVVFMpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0FDVElWRV9PVVRQVVRTKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9JTl9PVVRfTUFQKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX1NFVF9JTl9PVVRfTUFQKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9BVFRBQ0hFRF9ESVNQTEFZUyksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfSE9UX1BMVUdfU1VQUE9SVCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfQUNUSVZFX0hPVF9QTFVHKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9BQ1RJVkVfSE9UX1BMVUcpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX0lOVEVSUlVQVF9FVkVOVF9TT1VSQ0UpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX1RBUkdFVF9JTlBVVCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfVEFSR0VUX09VVFBVVCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfSU5QVVRfVElNSU5HU19QQVJUMSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfSU5QVVRfVElNSU5HU19QQVJUMiksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfSU5QVVRfVElNSU5HU19QQVJUMSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfSU5QVVRfVElNSU5HU19QQVJUMiksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfSU5QVVRfVElNSU5HU19QQVJUMSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfT1VUUFVUX1RJTUlOR1NfUEFSVDEpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX09VVFBVVF9USU1JTkdTX1BBUlQyKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9PVVRQVVRfVElNSU5HU19QQVJUMSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfT1VUUFVUX1RJTUlOR1NfUEFSVDIpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfQ1JFQVRFX1BSRUZFUlJFRF9JTlBVVF9USU1JTkcpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX1BSRUZFUlJFRF9JTlBVVF9USU1JTkdfUEFSVDEpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX1BSRUZFUlJFRF9JTlBVVF9USU1JTkdfUEFSVDIpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX0lOUFVUX1BJWEVMX0NMT0NLX1JBTkdFKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9PVVRQVVRfUElYRUxfQ0xPQ0tfUkFOR0UpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX1NVUFBPUlRFRF9DTE9DS19SQVRFX01VTFRTKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9DTE9DS19SQVRFX01VTFQpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0NMT0NLX1JBVEVfTVVMVCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfU1VQUE9SVEVEX1RWX0ZPUk1BVFMpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX1RWX0ZPUk1BVCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfVFZfRk9STUFUKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9TVVBQT1JURURfUE9XRVJfU1RBVEVTKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9QT1dFUl9TVEFURSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfRU5DT0RFUl9QT1dFUl9TVEFURSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfRElTUExBWV9QT1dFUl9TVEFURSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfQ09OVFJPTF9CVVNfU1dJVENIKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9TRFRWX1JFU09MVVRJT05fU1VQUE9SVCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfU0NBTEVEX0hEVFZfUkVTT0xVVElPTl9TVVBQT1JUKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9TVVBQT1JURURfRU5IQU5DRU1FTlRTKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKFJFU0VUKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9ERVZJQ0VfQ0FQUyksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfRklSTVdBUkVfUkVWKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9UUkFJTkVEX0lOUFVUUyksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfQUNUSVZFX09VVFBVVFMpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX0FDVElWRV9PVVRQVVRTKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9JTl9PVVRfTUFQKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKFNFVF9JTl9PVVRfTUFQKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9BVFRBQ0hFRF9ESVNQTEFZUyksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfSE9UX1BMVUdfU1VQUE9SVCksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfQUNUSVZFX0hPVF9QTFVHKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9BQ1RJVkVfSE9UX1BMVUcpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX0lOVEVSUlVQVF9FVkVOVF9TT1VSQ0UpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX1RBUkdFVF9JTlBVVCksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfVEFSR0VUX09VVFBVVCksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfSU5QVVRfVElNSU5HU19QQVJUMSksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfSU5QVVRfVElNSU5HU19QQVJUMiksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfSU5QVVRfVElNSU5HU19QQVJUMSksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfSU5QVVRfVElNSU5HU19QQVJUMiksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfT1VUUFVUX1RJTUlOR1NfUEFSVDEpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX09VVFBVVF9USU1JTkdTX1BBUlQyKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9PVVRQVVRfVElNSU5HU19QQVJUMSksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfT1VUUFVUX1RJTUlOR1NfUEFSVDIpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoQ1JFQVRFX1BSRUZFUlJFRF9JTlBVVF9USU1JTkcpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX1BSRUZFUlJFRF9JTlBVVF9USU1JTkdfUEFSVDEpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX1BSRUZFUlJFRF9JTlBVVF9USU1JTkdfUEFSVDIpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX0lOUFVUX1BJWEVMX0NMT0NLX1JBTkdFKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9PVVRQVVRfUElYRUxfQ0xPQ0tfUkFOR0UpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX1NVUFBPUlRFRF9DTE9DS19SQVRFX01VTFRTKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9DTE9DS19SQVRFX01VTFQpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX0NMT0NLX1JBVEVfTVVMVCksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfU1VQUE9SVEVEX1RWX0ZPUk1BVFMpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX1RWX0ZPUk1BVCksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfVFZfRk9STUFUKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9TVVBQT1JURURfUE9XRVJfU1RBVEVTKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9QT1dFUl9TVEFURSksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfRU5DT0RFUl9QT1dFUl9TVEFURSksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfRElTUExBWV9QT1dFUl9TVEFURSksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfQ09OVFJPTF9CVVNfU1dJVENIKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9TRFRWX1JFU09MVVRJT05fU1VQUE9SVCksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfU0NBTEVEX0hEVFZfUkVTT0xVVElPTl9TVVBQT1JUKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9TVVBQT1JURURfRU5IQU5DRU1FTlRTKSwKIAogCS8qIEFkZCB0aGUgb3AgY29kZSBmb3IgU0RWTyBlbmhhbmNlbWVudHMgKi8KLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9NQVhfSFBPUyksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfSFBPUyksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfSFBPUyksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfTUFYX1ZQT1MpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX1ZQT1MpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX1ZQT1MpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX01BWF9TQVRVUkFUSU9OKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9TQVRVUkFUSU9OKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX1NFVF9TQVRVUkFUSU9OKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9NQVhfSFVFKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9IVUUpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0hVRSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfTUFYX0NPTlRSQVNUKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9DT05UUkFTVCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfQ09OVFJBU1QpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX01BWF9CUklHSFRORVNTKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9CUklHSFRORVNTKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX1NFVF9CUklHSFRORVNTKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9NQVhfT1ZFUlNDQU5fSCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfT1ZFUlNDQU5fSCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfT1ZFUlNDQU5fSCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfTUFYX09WRVJTQ0FOX1YpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX09WRVJTQ0FOX1YpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX09WRVJTQ0FOX1YpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX01BWF9GTElDS0VSX0ZJTFRFUiksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfRkxJQ0tFUl9GSUxURVIpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0ZMSUNLRVJfRklMVEVSKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9NQVhfRkxJQ0tFUl9GSUxURVJfQURBUFRJVkUpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX0ZMSUNLRVJfRklMVEVSX0FEQVBUSVZFKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX1NFVF9GTElDS0VSX0ZJTFRFUl9BREFQVElWRSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfTUFYX0ZMSUNLRVJfRklMVEVSXzJEKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9GTElDS0VSX0ZJTFRFUl8yRCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfRkxJQ0tFUl9GSUxURVJfMkQpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX01BWF9TSEFSUE5FU1MpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX1NIQVJQTkVTUyksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfU0hBUlBORVNTKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9ET1RfQ1JBV0wpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0RPVF9DUkFXTCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfTUFYX1RWX0NIUk9NQV9GSUxURVIpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX1RWX0NIUk9NQV9GSUxURVIpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX1RWX0NIUk9NQV9GSUxURVIpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX01BWF9UVl9MVU1BX0ZJTFRFUiksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfVFZfTFVNQV9GSUxURVIpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX1RWX0xVTUFfRklMVEVSKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9NQVhfSFBPUyksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfSFBPUyksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfSFBPUyksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfTUFYX1ZQT1MpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX1ZQT1MpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX1ZQT1MpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX01BWF9TQVRVUkFUSU9OKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9TQVRVUkFUSU9OKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKFNFVF9TQVRVUkFUSU9OKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9NQVhfSFVFKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9IVUUpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX0hVRSksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfTUFYX0NPTlRSQVNUKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9DT05UUkFTVCksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfQ09OVFJBU1QpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX01BWF9CUklHSFRORVNTKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9CUklHSFRORVNTKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKFNFVF9CUklHSFRORVNTKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9NQVhfT1ZFUlNDQU5fSCksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfT1ZFUlNDQU5fSCksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfT1ZFUlNDQU5fSCksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfTUFYX09WRVJTQ0FOX1YpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX09WRVJTQ0FOX1YpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX09WRVJTQ0FOX1YpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX01BWF9GTElDS0VSX0ZJTFRFUiksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfRkxJQ0tFUl9GSUxURVIpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX0ZMSUNLRVJfRklMVEVSKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9NQVhfRkxJQ0tFUl9GSUxURVJfQURBUFRJVkUpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX0ZMSUNLRVJfRklMVEVSX0FEQVBUSVZFKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKFNFVF9GTElDS0VSX0ZJTFRFUl9BREFQVElWRSksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfTUFYX0ZMSUNLRVJfRklMVEVSXzJEKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9GTElDS0VSX0ZJTFRFUl8yRCksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfRkxJQ0tFUl9GSUxURVJfMkQpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX01BWF9TSEFSUE5FU1MpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX1NIQVJQTkVTUyksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfU0hBUlBORVNTKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9ET1RfQ1JBV0wpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX0RPVF9DUkFXTCksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfTUFYX1RWX0NIUk9NQV9GSUxURVIpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX1RWX0NIUk9NQV9GSUxURVIpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX1RWX0NIUk9NQV9GSUxURVIpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX01BWF9UVl9MVU1BX0ZJTFRFUiksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfVFZfTFVNQV9GSUxURVIpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX1RWX0xVTUFfRklMVEVSKSwKIAogCS8qIEhETUkgb3AgY29kZSAqLwotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX1NVUFBfRU5DT0RFKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9FTkNPREUpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0VOQ09ERSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfUElYRUxfUkVQTEkpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX1BJWEVMX1JFUExJKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9DT0xPUklNRVRSWV9DQVApLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0NPTE9SSU1FVFJZKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX0dFVF9DT0xPUklNRVRSWSksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfQVVESU9fRU5DUllQVF9QUkVGRVIpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0FVRElPX1NUQVQpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX0FVRElPX1NUQVQpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX0hCVUZfSU5ERVgpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0hCVUZfSU5ERVgpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX0hCVUZfSU5GTyksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfSEJVRl9BVl9TUExJVCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9TRVRfSEJVRl9BVl9TUExJVCksCi0JU0RWT19DTURfTkFNRV9FTlRSWShTRFZPX0NNRF9HRVRfSEJVRl9UWFJBVEUpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfU0VUX0hCVUZfVFhSQVRFKSwKLQlTRFZPX0NNRF9OQU1FX0VOVFJZKFNEVk9fQ01EX1NFVF9IQlVGX0RBVEEpLAotCVNEVk9fQ01EX05BTUVfRU5UUlkoU0RWT19DTURfR0VUX0hCVUZfREFUQSksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfU1VQUF9FTkNPREUpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX0VOQ09ERSksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfRU5DT0RFKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKFNFVF9QSVhFTF9SRVBMSSksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfUElYRUxfUkVQTEkpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX0NPTE9SSU1FVFJZX0NBUCksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfQ09MT1JJTUVUUlkpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoR0VUX0NPTE9SSU1FVFJZKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9BVURJT19FTkNSWVBUX1BSRUZFUiksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfQVVESU9fU1RBVCksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfQVVESU9fU1RBVCksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfSEJVRl9JTkRFWCksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfSEJVRl9JTkRFWCksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfSEJVRl9JTkZPKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9IQlVGX0FWX1NQTElUKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKFNFVF9IQlVGX0FWX1NQTElUKSwKKwlTRFZPX0NNRF9OQU1FX0VOVFJZKEdFVF9IQlVGX1RYUkFURSksCisJU0RWT19DTURfTkFNRV9FTlRSWShTRVRfSEJVRl9UWFJBVEUpLAorCVNEVk9fQ01EX05BTUVfRU5UUlkoU0VUX0hCVUZfREFUQSksCisJU0RWT19DTURfTkFNRV9FTlRSWShHRVRfSEJVRl9EQVRBKSwKIH07CiAKKyN1bmRlZiBTRFZPX0NNRF9OQU1FX0VOVFJZCisKK3N0YXRpYyBjb25zdCBjaGFyICpzZHZvX2NtZF9uYW1lKHU4IGNtZCkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNkdm9fY21kX25hbWVzKTsgaSsrKSB7CisJCWlmIChjbWQgPT0gc2R2b19jbWRfbmFtZXNbaV0uY21kKQorCQkJcmV0dXJuIHNkdm9fY21kX25hbWVzW2ldLm5hbWU7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKICNkZWZpbmUgU0RWT19OQU1FKHN2ZG8pICgoc3ZkbyktPnBvcnQgPT0gUE9SVF9CID8gIlNEVk9CIiA6ICJTRFZPQyIpCiAKIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fZGVidWdfd3JpdGUoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8sIHU4IGNtZCwKIAkJCQkgICBjb25zdCB2b2lkICphcmdzLCBpbnQgYXJnc19sZW4pCiB7CisJY29uc3QgY2hhciAqY21kX25hbWU7CiAJaW50IGksIHBvcyA9IDA7CiAjZGVmaW5lIEJVRl9MRU4gMjU2CiAJY2hhciBidWZmZXJbQlVGX0xFTl07CkBAIC00MTIsMTUgKzQyNywxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX2RlYnVnX3dyaXRlKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLCB1OCBjbWQsCiAJZm9yICg7IGkgPCA4OyBpKyspIHsKIAkJQlVGX1BSSU5UKCIgICAiKTsKIAl9Ci0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc2R2b19jbWRfbmFtZXMpOyBpKyspIHsKLQkJaWYgKGNtZCA9PSBzZHZvX2NtZF9uYW1lc1tpXS5jbWQpIHsKLQkJCUJVRl9QUklOVCgiKCVzKSIsIHNkdm9fY21kX25hbWVzW2ldLm5hbWUpOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0JaWYgKGkgPT0gQVJSQVlfU0laRShzZHZvX2NtZF9uYW1lcykpIHsKKworCWNtZF9uYW1lID0gc2R2b19jbWRfbmFtZShjbWQpOworCWlmIChjbWRfbmFtZSkKKwkJQlVGX1BSSU5UKCIoJXMpIiwgY21kX25hbWUpOworCWVsc2UKIAkJQlVGX1BSSU5UKCIoJTAyWCkiLCBjbWQpOwotCX0KIAlCVUdfT04ocG9zID49IEJVRl9MRU4gLSAxKTsKICN1bmRlZiBCVUZfUFJJTlQKICN1bmRlZiBCVUZfTEVOCkBAIC00MjksMTUgKzQ0MSwyMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX2RlYnVnX3dyaXRlKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLCB1OCBjbWQsCiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY21kX3N0YXR1c19uYW1lc1tdID0gewotCSJQb3dlciBvbiIsCi0JIlN1Y2Nlc3MiLAotCSJOb3Qgc3VwcG9ydGVkIiwKLQkiSW52YWxpZCBhcmciLAotCSJQZW5kaW5nIiwKLQkiVGFyZ2V0IG5vdCBzcGVjaWZpZWQiLAotCSJTY2FsaW5nIG5vdCBzdXBwb3J0ZWQiCisJW1NEVk9fQ01EX1NUQVRVU19QT1dFUl9PTl0gPSAiUG93ZXIgb24iLAorCVtTRFZPX0NNRF9TVEFUVVNfU1VDQ0VTU10gPSAiU3VjY2VzcyIsCisJW1NEVk9fQ01EX1NUQVRVU19OT1RTVVBQXSA9ICJOb3Qgc3VwcG9ydGVkIiwKKwlbU0RWT19DTURfU1RBVFVTX0lOVkFMSURfQVJHXSA9ICJJbnZhbGlkIGFyZyIsCisJW1NEVk9fQ01EX1NUQVRVU19QRU5ESU5HXSA9ICJQZW5kaW5nIiwKKwlbU0RWT19DTURfU1RBVFVTX1RBUkdFVF9OT1RfU1BFQ0lGSUVEXSA9ICJUYXJnZXQgbm90IHNwZWNpZmllZCIsCisJW1NEVk9fQ01EX1NUQVRVU19TQ0FMSU5HX05PVF9TVVBQXSA9ICJTY2FsaW5nIG5vdCBzdXBwb3J0ZWQiLAogfTsKIAorc3RhdGljIGNvbnN0IGNoYXIgKnNkdm9fY21kX3N0YXR1cyh1OCBzdGF0dXMpCit7CisJaWYgKHN0YXR1cyA8IEFSUkFZX1NJWkUoY21kX3N0YXR1c19uYW1lcykpCisJCXJldHVybiBjbWRfc3RhdHVzX25hbWVzW3N0YXR1c107CisJZWxzZQorCQlyZXR1cm4gTlVMTDsKK30KKwogc3RhdGljIGJvb2wgX19pbnRlbF9zZHZvX3dyaXRlX2NtZChzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2bywgdTggY21kLAogCQkJCSAgIGNvbnN0IHZvaWQgKmFyZ3MsIGludCBhcmdzX2xlbiwKIAkJCQkgICBib29sIHVubG9ja2VkKQpAQCAtNTE2LDYgKzUzNiw3IEBAIHN0YXRpYyBib29sIGludGVsX3Nkdm9fd3JpdGVfY21kKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLCB1OCBjbWQsCiBzdGF0aWMgYm9vbCBpbnRlbF9zZHZvX3JlYWRfcmVzcG9uc2Uoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8sCiAJCQkJICAgICB2b2lkICpyZXNwb25zZSwgaW50IHJlc3BvbnNlX2xlbikKIHsKKwljb25zdCBjaGFyICpjbWRfc3RhdHVzOwogCXU4IHJldHJ5ID0gMTU7IC8qIDUgcXVpY2sgY2hlY2tzLCBmb2xsb3dlZCBieSAxMCBsb25nIGNoZWNrcyAqLwogCXU4IHN0YXR1czsKIAlpbnQgaSwgcG9zID0gMDsKQEAgLTU2Miw4ICs1ODMsOSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9zZHZvX3JlYWRfcmVzcG9uc2Uoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8sCiAjZGVmaW5lIEJVRl9QUklOVChhcmdzLi4uKSBcCiAJcG9zICs9IHNucHJpbnRmKGJ1ZmZlciArIHBvcywgbWF4X3QoaW50LCBCVUZfTEVOIC0gcG9zLCAwKSwgYXJncykKIAotCWlmIChzdGF0dXMgPD0gU0RWT19DTURfU1RBVFVTX1NDQUxJTkdfTk9UX1NVUFApCi0JCUJVRl9QUklOVCgiKCVzKSIsIGNtZF9zdGF0dXNfbmFtZXNbc3RhdHVzXSk7CisJY21kX3N0YXR1cyA9IHNkdm9fY21kX3N0YXR1cyhzdGF0dXMpOworCWlmIChjbWRfc3RhdHVzKQorCQlCVUZfUFJJTlQoIiglcykiLCBjbWRfc3RhdHVzKTsKIAllbHNlCiAJCUJVRl9QUklOVCgiKD8/PyAlZCkiLCBzdGF0dXMpOwogCkBAIC05MjksNiArOTUxLDIwIEBAIHN0YXRpYyBib29sIGludGVsX3Nkdm9fc2V0X2F1ZGlvX3N0YXRlKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAogCQkJCSAgICAmYXVkaW9fc3RhdGUsIDEpOwogfQogCitzdGF0aWMgYm9vbCBpbnRlbF9zZHZvX2dldF9oYnVmX3NpemUoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8sCisJCQkJICAgICB1OCAqaGJ1Zl9zaXplKQoreworCWlmICghaW50ZWxfc2R2b19nZXRfdmFsdWUoaW50ZWxfc2R2bywgU0RWT19DTURfR0VUX0hCVUZfSU5GTywKKwkJCQkgIGhidWZfc2l6ZSwgMSkpCisJCXJldHVybiBmYWxzZTsKKworCS8qIEJ1ZmZlciBzaXplIGlzIDAgYmFzZWQsIGhvb3JheSEgSG93ZXZlciB6ZXJvIG1lYW5zIHplcm8uICovCisJaWYgKCpoYnVmX3NpemUpCisJCSgqaGJ1Zl9zaXplKSsrOworCisJcmV0dXJuIHRydWU7Cit9CisKICNpZiAwCiBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX2R1bXBfaGRtaV9idWYoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8pCiB7CkBAIC05NzIsMTQgKzEwMDgsMTAgQEAgc3RhdGljIGJvb2wgaW50ZWxfc2R2b193cml0ZV9pbmZvZnJhbWUoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8sCiAJCQkJICBzZXRfYnVmX2luZGV4LCAyKSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKCFpbnRlbF9zZHZvX2dldF92YWx1ZShpbnRlbF9zZHZvLCBTRFZPX0NNRF9HRVRfSEJVRl9JTkZPLAotCQkJCSAgJmhidWZfc2l6ZSwgMSkpCisJaWYgKCFpbnRlbF9zZHZvX2dldF9oYnVmX3NpemUoaW50ZWxfc2R2bywgJmhidWZfc2l6ZSkpCiAJCXJldHVybiBmYWxzZTsKIAotCS8qIEJ1ZmZlciBzaXplIGlzIDAgYmFzZWQsIGhvb3JheSEgKi8KLQloYnVmX3NpemUrKzsKLQotCURSTV9ERUJVR19LTVMoIndyaXRpbmcgc2R2byBoYnVmOiAlaSwgaGJ1Zl9zaXplICVpLCBoYnVmX3NpemU6ICVpXG4iLAorCURSTV9ERUJVR19LTVMoIndyaXRpbmcgc2R2byBoYnVmOiAlaSwgbGVuZ3RoICV1LCBoYnVmX3NpemU6ICVpXG4iLAogCQkgICAgICBpZl9pbmRleCwgbGVuZ3RoLCBoYnVmX3NpemUpOwogCiAJaWYgKGhidWZfc2l6ZSA8IGxlbmd0aCkKQEAgLTEwMzAsMTQgKzEwNjIsMTAgQEAgc3RhdGljIHNzaXplX3QgaW50ZWxfc2R2b19yZWFkX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2bywKIAlpZiAodHhfcmF0ZSA9PSBTRFZPX0hCVUZfVFhfRElTQUJMRUQpCiAJCXJldHVybiAwOwogCi0JaWYgKCFpbnRlbF9zZHZvX2dldF92YWx1ZShpbnRlbF9zZHZvLCBTRFZPX0NNRF9HRVRfSEJVRl9JTkZPLAotCQkJCSAgJmhidWZfc2l6ZSwgMSkpCi0JCXJldHVybiAtRU5YSU87CisJaWYgKCFpbnRlbF9zZHZvX2dldF9oYnVmX3NpemUoaW50ZWxfc2R2bywgJmhidWZfc2l6ZSkpCisJCXJldHVybiBmYWxzZTsKIAotCS8qIEJ1ZmZlciBzaXplIGlzIDAgYmFzZWQsIGhvb3JheSEgKi8KLQloYnVmX3NpemUrKzsKLQotCURSTV9ERUJVR19LTVMoInJlYWRpbmcgc2R2byBoYnVmOiAlaSwgaGJ1Zl9zaXplICVpLCBoYnVmX3NpemU6ICVpXG4iLAorCURSTV9ERUJVR19LTVMoInJlYWRpbmcgc2R2byBoYnVmOiAlaSwgbGVuZ3RoICV1LCBoYnVmX3NpemU6ICVpXG4iLAogCQkgICAgICBpZl9pbmRleCwgbGVuZ3RoLCBoYnVmX3NpemUpOwogCiAJaGJ1Zl9zaXplID0gbWluX3QodW5zaWduZWQgaW50LCBsZW5ndGgsIGhidWZfc2l6ZSk7CkBAIC0xODkzLDEyICsxOTIxLDE0IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fZW5hYmxlX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJCQkgICAgICZpbnRlbF9zZHZvLT5ob3RwbHVnX2FjdGl2ZSwgMik7CiB9CiAKLXN0YXRpYyBib29sIGludGVsX3Nkdm9faG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCitzdGF0aWMgZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlCitpbnRlbF9zZHZvX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCSAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJICAgYm9vbCBpcnFfcmVjZWl2ZWQpCiB7CiAJaW50ZWxfc2R2b19lbmFibGVfaG90cGx1ZyhlbmNvZGVyKTsKIAotCXJldHVybiBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29ubmVjdG9yKTsKKwlyZXR1cm4gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3RvciwgaXJxX3JlY2VpdmVkKTsKIH0KIAogc3RhdGljIGJvb2wKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jCmluZGV4IDAwNGI1MjAuLmRlYTYzYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYwpAQCAtNDAsOCArNDAsOSBAQAogI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfYXRvbWljX3BsYW5lLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2Zyb250YnVmZmVyLmgiCiAjaW5jbHVkZSAiaW50ZWxfcG0uaCIKICNpbmNsdWRlICJpbnRlbF9wc3IuaCIKQEAgLTMzMCw2ICszMzEsMTIgQEAgaW50IGludGVsX3BsYW5lX2NoZWNrX3NyY19jb29yZGluYXRlcyhzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCXJldHVybiAwOwogfQogCitib29sIGljbF9pc19oZHJfcGxhbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBsYW5lX2lkIHBsYW5lX2lkKQoreworCXJldHVybiBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExICYmCisJCWljbF9oZHJfcGxhbmVfbWFzaygpICYgQklUKHBsYW5lX2lkKTsKK30KKwogc3RhdGljIHVuc2lnbmVkIGludAogc2tsX3BsYW5lX21heF9zdHJpZGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJICAgICB1MzIgcGl4ZWxfZm9ybWF0LCB1NjQgbW9kaWZpZXIsCkBAIC00NDEsOSArNDQ4LDIxIEBAIGljbF9wcm9ncmFtX2lucHV0X2NzYyhzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCQkgKi8KIAkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDcwOV0gPSB7CiAJCQkweDdDOTgsIDB4NzgwMCwgMHgwLAotCQkJMHg5RUY4LCAweDc4MDAsIDB4QUJGOCwKKwkJCTB4OUVGOCwgMHg3ODAwLCAweEFDMDAsCiAJCQkweDAsIDB4NzgwMCwgIDB4N0VEOCwKIAkJfSwKKwkJLyoKKwkJICogQlQuMjAyMCBmdWxsIHJhbmdlIFlDYkNyIC0+IGZ1bGwgcmFuZ2UgUkdCCisJCSAqIFRoZSBtYXRyaXggcmVxdWlyZWQgaXMgOgorCQkgKiBbMS4wMDAsIDAuMDAwLCAxLjQ3NCwKKwkJICogIDEuMDAwLCAtMC4xNjQ1LCAtMC41NzEzLAorCQkgKiAgMS4wMDAsIDEuODgxNCwgMC4wMDAwXQorCQkgKi8KKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDIwMjBdID0geworCQkJMHg3QkM4LCAweDc4MDAsIDB4MCwKKwkJCTB4ODkyOCwgMHg3ODAwLCAweEFBODgsCisJCQkweDAsIDB4NzgwMCwgMHg3RjEwLAorCQl9LAogCX07CiAKIAkvKiBNYXRyaXggZm9yIExpbWl0ZWQgUmFuZ2UgdG8gRnVsbCBSYW5nZSBDb252ZXJzaW9uICovCkBAIC00NTEsMjYgKzQ3MCwzOCBAQCBpY2xfcHJvZ3JhbV9pbnB1dF9jc2Moc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJLyoKIAkJICogQlQuNjAxIExpbXRlZCByYW5nZSBZQ2JDciAtPiBmdWxsIHJhbmdlIFJHQgogCQkgKiBUaGUgbWF0cml4IHJlcXVpcmVkIGlzIDoKLQkJICogWzEuMTY0Mzg0LCAwLjAwMCwgMS41OTYzNzAsCi0JCSAqICAxLjEzODM5MywgLTAuMzgyNTAwLCAtMC43OTQ1OTgsCi0JCSAqICAxLjEzODM5MywgMS45NzE2OTYsIDAuMDAwMF0KKwkJICogWzEuMTY0Mzg0LCAwLjAwMCwgMS41OTYwMjcsCisJCSAqICAxLjE2NDM4NCwgLTAuMzkxNzUsIC0wLjgxMjgxMywKKwkJICogIDEuMTY0Mzg0LCAyLjAxNzIzMiwgMC4wMDAwXQogCQkgKi8KIAkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDYwMV0gPSB7CiAJCQkweDdDQzgsIDB4Nzk1MCwgMHgwLAotCQkJMHg4Q0I4LCAweDc5MTgsIDB4OUM0MCwKLQkJCTB4MCwgMHg3OTE4LCAweDdGQzgsCisJCQkweDhEMDAsIDB4Nzk1MCwgMHg5Qzg4LAorCQkJMHgwLCAweDc5NTAsIDB4NjgxMCwKIAkJfSwKIAkJLyoKIAkJICogQlQuNzA5IExpbWl0ZWQgcmFuZ2UgWUNiQ3IgLT4gZnVsbCByYW5nZSBSR0IKIAkJICogVGhlIG1hdHJpeCByZXF1aXJlZCBpcyA6Ci0JCSAqIFsxLjE2NCwgMC4wMDAsIDEuODMzNjcxLAotCQkgKiAgMS4xMzgzOTMsIC0wLjIxMzI0OSwgLTAuNTMyOTA5LAotCQkgKiAgMS4xMzgzOTMsIDIuMTEyNDAyLCAwLjAwMDBdCisJCSAqIFsxLjE2NDM4NCwgMC4wMDAsIDEuNzkyNzQxLAorCQkgKiAgMS4xNjQzODQsIC0wLjIxMzI0OSwgLTAuNTMyOTA5LAorCQkgKiAgMS4xNjQzODQsIDIuMTEyNDAyLCAwLjAwMDBdCiAJCSAqLwogCQlbRFJNX0NPTE9SX1lDQkNSX0JUNzA5XSA9IHsKLQkJCTB4N0VBOCwgMHg3OTUwLCAweDAsCi0JCQkweDg4ODgsIDB4NzkxOCwgMHhBREE4LAotCQkJMHgwLCAweDc5MTgsICAweDY4NzAsCisJCQkweDdFNTgsIDB4Nzk1MCwgMHgwLAorCQkJMHg4ODg4LCAweDc5NTAsIDB4QURBOCwKKwkJCTB4MCwgMHg3OTUwLCAgMHg2ODcwLAorCQl9LAorCQkvKgorCQkgKiBCVC4yMDIwIExpbWl0ZWQgcmFuZ2UgWUNiQ3IgLT4gZnVsbCByYW5nZSBSR0IKKwkJICogVGhlIG1hdHJpeCByZXF1aXJlZCBpcyA6CisJCSAqIFsxLjE2NCwgMC4wMDAsIDEuNjc4LAorCQkgKiAgMS4xNjQsIC0wLjE4NzMsIC0wLjY1MDQsCisJCSAqICAxLjE2NCwgMi4xNDE3LCAwLjAwMDBdCisJCSAqLworCQlbRFJNX0NPTE9SX1lDQkNSX0JUMjAyMF0gPSB7CisJCQkweDdENzAsIDB4Nzk1MCwgMHgwLAorCQkJMHg4QTY4LCAweDc5NTAsIDB4QUMwMCwKKwkJCTB4MCwgMHg3OTUwLCAweDY4OTAsCiAJCX0sCiAJfTsKIAljb25zdCB1MTYgKmNzYzsKQEAgLTQ5Miw4ICs1MjMsMTEgQEAgaWNsX3Byb2dyYW1faW5wdXRfY3NjKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAKIAlJOTE1X1dSSVRFX0ZXKFBMQU5FX0lOUFVUX0NTQ19QUkVPRkYocGlwZSwgcGxhbmVfaWQsIDApLAogCQkgICAgICBQUkVPRkZfWVVWX1RPX1JHQl9ISSk7Ci0JSTkxNV9XUklURV9GVyhQTEFORV9JTlBVVF9DU0NfUFJFT0ZGKHBpcGUsIHBsYW5lX2lkLCAxKSwKLQkJICAgICAgUFJFT0ZGX1lVVl9UT19SR0JfTUUpOworCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9yYW5nZSA9PSBEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRSkKKwkJSTkxNV9XUklURV9GVyhQTEFORV9JTlBVVF9DU0NfUFJFT0ZGKHBpcGUsIHBsYW5lX2lkLCAxKSwgMCk7CisJZWxzZQorCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0lOUFVUX0NTQ19QUkVPRkYocGlwZSwgcGxhbmVfaWQsIDEpLAorCQkJICAgICAgUFJFT0ZGX1lVVl9UT19SR0JfTUUpOwogCUk5MTVfV1JJVEVfRlcoUExBTkVfSU5QVVRfQ1NDX1BSRU9GRihwaXBlLCBwbGFuZV9pZCwgMiksCiAJCSAgICAgIFBSRU9GRl9ZVVZfVE9fUkdCX0xPKTsKIAlJOTE1X1dSSVRFX0ZXKFBMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGKHBpcGUsIHBsYW5lX2lkLCAwKSwgMHgwKTsKQEAgLTY4Myw2ICs3MTcsMTYgQEAgc2tsX3BsYW5lX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIGk5eHhfcGxhbmVfbGluZWFyX2dhbW1hKHUxNiBnYW1tYVs4XSkKK3sKKwkvKiBUaGUgcG9pbnRzIGFyZSBub3QgZXZlbmx5IHNwYWNlZC4gKi8KKwlzdGF0aWMgY29uc3QgdTggaW5bOF0gPSB7IDAsIDEsIDIsIDQsIDgsIDE2LCAyNCwgMzIgfTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCisJCWdhbW1hW2ldID0gKGluW2ldIDw8IDgpIC8gMzI7Cit9CisKIHN0YXRpYyB2b2lkCiBjaHZfdXBkYXRlX2NzYyhjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewpAQCAtODU4LDYgKzkwMiwzMSBAQCBzdGF0aWMgdTMyIHZsdl9zcHJpdGVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXJldHVybiBzcHJjdGw7CiB9CiAKK3N0YXRpYyB2b2lkIHZsdl91cGRhdGVfZ2FtbWEoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7CisJZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5pZDsKKwl1MTYgZ2FtbWFbOF07CisJaW50IGk7CisKKwkvKiBTZWVtcyBSR0IgZGF0YSBieXBhc3NlcyB0aGUgZ2FtbWEgYWx3YXlzICovCisJaWYgKCFmYi0+Zm9ybWF0LT5pc195dXYpCisJCXJldHVybjsKKworCWk5eHhfcGxhbmVfbGluZWFyX2dhbW1hKGdhbW1hKTsKKworCS8qIEZJWE1FIHRoZXNlIHJlZ2lzdGVyIGFyZSBzaW5nbGUgYnVmZmVyZWQgOiggKi8KKwkvKiBUaGUgdHdvIGVuZCBwb2ludHMgYXJlIGltcGxpY2l0ICgwLjAgYW5kIDEuMCkgKi8KKwlmb3IgKGkgPSAxOyBpIDwgOCAtIDE7IGkrKykKKwkJSTkxNV9XUklURV9GVyhTUEdBTUMocGlwZSwgcGxhbmVfaWQsIGkgLSAxKSwKKwkJCSAgICAgIGdhbW1hW2ldIDw8IDE2IHwKKwkJCSAgICAgIGdhbW1hW2ldIDw8IDggfAorCQkJICAgICAgZ2FtbWFbaV0pOworfQorCiBzdGF0aWMgdm9pZAogdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCkBAIC05MTYsNiArOTg1LDcgQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCQkgICAgICBpbnRlbF9wbGFuZV9nZ3R0X29mZnNldChwbGFuZV9zdGF0ZSkgKyBzcHJzdXJmX29mZnNldCk7CiAKIAl2bHZfdXBkYXRlX2NscmMocGxhbmVfc3RhdGUpOworCXZsdl91cGRhdGVfZ2FtbWEocGxhbmVfc3RhdGUpOwogCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFncyk7CiB9CkBAIC0xMDEzLDYgKzEwODMsOCBAQCBzdGF0aWMgdTMyIGl2Yl9zcHJpdGVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gMDsKIAl9CiAKKwlzcHJjdGwgfD0gU1BSSVRFX0lOVF9HQU1NQV9ESVNBQkxFOworCiAJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX2VuY29kaW5nID09IERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkKIAkJc3ByY3RsIHw9IFNQUklURV9ZVVZfVE9fUkdCX0NTQ19GT1JNQVRfQlQ3MDk7CiAKQEAgLTEwMzMsNiArMTEwNSw0NSBAQCBzdGF0aWMgdTMyIGl2Yl9zcHJpdGVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXJldHVybiBzcHJjdGw7CiB9CiAKK3N0YXRpYyB2b2lkIGl2Yl9zcHJpdGVfbGluZWFyX2dhbW1hKHUxNiBnYW1tYVsxOF0pCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMTc7IGkrKykKKwkJZ2FtbWFbaV0gPSAoaSA8PCAxMCkgLyAxNjsKKworCWdhbW1hW2ldID0gMyA8PCAxMDsKKwlpKys7Cit9CisKK3N0YXRpYyB2b2lkIGl2Yl91cGRhdGVfZ2FtbWEoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKKwllbnVtIHBpcGUgcGlwZSA9IHBsYW5lLT5waXBlOworCXUxNiBnYW1tYVsxOF07CisJaW50IGk7CisKKwlpdmJfc3ByaXRlX2xpbmVhcl9nYW1tYShnYW1tYSk7CisKKwkvKiBGSVhNRSB0aGVzZSByZWdpc3RlciBhcmUgc2luZ2xlIGJ1ZmZlcmVkIDooICovCisJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspCisJCUk5MTVfV1JJVEVfRlcoU1BSR0FNQyhwaXBlLCBpKSwKKwkJCSAgICAgIGdhbW1hW2ldIDw8IDIwIHwKKwkJCSAgICAgIGdhbW1hW2ldIDw8IDEwIHwKKwkJCSAgICAgIGdhbW1hW2ldKTsKKworCUk5MTVfV1JJVEVfRlcoU1BSR0FNQzE2KHBpcGUsIDApLCBnYW1tYVtpXSk7CisJSTkxNV9XUklURV9GVyhTUFJHQU1DMTYocGlwZSwgMSksIGdhbW1hW2ldKTsKKwlJOTE1X1dSSVRFX0ZXKFNQUkdBTUMxNihwaXBlLCAyKSwgZ2FtbWFbaV0pOworCWkrKzsKKworCUk5MTVfV1JJVEVfRlcoU1BSR0FNQzE3KHBpcGUsIDApLCBnYW1tYVtpXSk7CisJSTkxNV9XUklURV9GVyhTUFJHQU1DMTcocGlwZSwgMSksIGdhbW1hW2ldKTsKKwlJOTE1X1dSSVRFX0ZXKFNQUkdBTUMxNyhwaXBlLCAyKSwgZ2FtbWFbaV0pOworCWkrKzsKK30KKwogc3RhdGljIHZvaWQKIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLApAQCAtMTA5OSw2ICsxMjEwLDggQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCUk5MTVfV1JJVEVfRlcoU1BSU1VSRihwaXBlKSwKIAkJICAgICAgaW50ZWxfcGxhbmVfZ2d0dF9vZmZzZXQocGxhbmVfc3RhdGUpICsgc3Byc3VyZl9vZmZzZXQpOwogCisJaXZiX3VwZGF0ZV9nYW1tYShwbGFuZV9zdGF0ZSk7CisKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGlycWZsYWdzKTsKIH0KIApAQCAtMTIyNCw2ICsxMzM3LDY2IEBAIHN0YXRpYyB1MzIgZzR4X3Nwcml0ZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcmV0dXJuIGR2c2NudHI7CiB9CiAKK3N0YXRpYyB2b2lkIGc0eF91cGRhdGVfZ2FtbWEoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7CisJdTE2IGdhbW1hWzhdOworCWludCBpOworCisJLyogU2VlbXMgUkdCIGRhdGEgYnlwYXNzZXMgdGhlIGdhbW1hIGFsd2F5cyAqLworCWlmICghZmItPmZvcm1hdC0+aXNfeXV2KQorCQlyZXR1cm47CisKKwlpOXh4X3BsYW5lX2xpbmVhcl9nYW1tYShnYW1tYSk7CisKKwkvKiBGSVhNRSB0aGVzZSByZWdpc3RlciBhcmUgc2luZ2xlIGJ1ZmZlcmVkIDooICovCisJLyogVGhlIHR3byBlbmQgcG9pbnRzIGFyZSBpbXBsaWNpdCAoMC4wIGFuZCAxLjApICovCisJZm9yIChpID0gMTsgaSA8IDggLSAxOyBpKyspCisJCUk5MTVfV1JJVEVfRlcoRFZTR0FNQ19HNFgocGlwZSwgaSAtIDEpLAorCQkJICAgICAgZ2FtbWFbaV0gPDwgMTYgfAorCQkJICAgICAgZ2FtbWFbaV0gPDwgOCB8CisJCQkgICAgICBnYW1tYVtpXSk7Cit9CisKK3N0YXRpYyB2b2lkIGlsa19zcHJpdGVfbGluZWFyX2dhbW1hKHUxNiBnYW1tYVsxN10pCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMTc7IGkrKykKKwkJZ2FtbWFbaV0gPSAoaSA8PCAxMCkgLyAxNjsKK30KKworc3RhdGljIHZvaWQgaWxrX3VwZGF0ZV9nYW1tYShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQoreworCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKKwl1MTYgZ2FtbWFbMTddOworCWludCBpOworCisJLyogU2VlbXMgUkdCIGRhdGEgYnlwYXNzZXMgdGhlIGdhbW1hIGFsd2F5cyAqLworCWlmICghZmItPmZvcm1hdC0+aXNfeXV2KQorCQlyZXR1cm47CisKKwlpbGtfc3ByaXRlX2xpbmVhcl9nYW1tYShnYW1tYSk7CisKKwkvKiBGSVhNRSB0aGVzZSByZWdpc3RlciBhcmUgc2luZ2xlIGJ1ZmZlcmVkIDooICovCisJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspCisJCUk5MTVfV1JJVEVfRlcoRFZTR0FNQ19JTEsocGlwZSwgaSksCisJCQkgICAgICBnYW1tYVtpXSA8PCAyMCB8CisJCQkgICAgICBnYW1tYVtpXSA8PCAxMCB8CisJCQkgICAgICBnYW1tYVtpXSk7CisKKwlJOTE1X1dSSVRFX0ZXKERWU0dBTUNNQVhfSUxLKHBpcGUsIDApLCBnYW1tYVtpXSk7CisJSTkxNV9XUklURV9GVyhEVlNHQU1DTUFYX0lMSyhwaXBlLCAxKSwgZ2FtbWFbaV0pOworCUk5MTVfV1JJVEVfRlcoRFZTR0FNQ01BWF9JTEsocGlwZSwgMiksIGdhbW1hW2ldKTsKKwlpKys7Cit9CisKIHN0YXRpYyB2b2lkCiBnNHhfdXBkYXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKQEAgLTEyODMsNiArMTQ1NiwxMSBAQCBnNHhfdXBkYXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJSTkxNV9XUklURV9GVyhEVlNTVVJGKHBpcGUpLAogCQkgICAgICBpbnRlbF9wbGFuZV9nZ3R0X29mZnNldChwbGFuZV9zdGF0ZSkgKyBkdnNzdXJmX29mZnNldCk7CiAKKwlpZiAoSVNfRzRYKGRldl9wcml2KSkKKwkJZzR4X3VwZGF0ZV9nYW1tYShwbGFuZV9zdGF0ZSk7CisJZWxzZQorCQlpbGtfdXBkYXRlX2dhbW1hKHBsYW5lX3N0YXRlKTsKKwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxhZ3MpOwogfQogCkBAIC0xMzQ3LDcgKzE1MjUsNyBAQCBnNHhfc3ByaXRlX2NoZWNrX3NjYWxpbmcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZwbGFuZV9zdGF0ZS0+YmFzZS5zcmM7CiAJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpkc3QgPSAmcGxhbmVfc3RhdGUtPmJhc2UuZHN0OwotCWludCBzcmNfeCwgc3JjX3ksIHNyY193LCBzcmNfaCwgY3J0Y193LCBjcnRjX2g7CisJaW50IHNyY194LCBzcmNfdywgc3JjX2gsIGNydGNfdywgY3J0Y19oOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KIAkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAl1bnNpZ25lZCBpbnQgY3BwID0gZmItPmZvcm1hdC0+Y3BwWzBdOwpAQCAtMTM1OCw3ICsxNTM2LDYgQEAgZzR4X3Nwcml0ZV9jaGVja19zY2FsaW5nKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNydGNfaCA9IGRybV9yZWN0X2hlaWdodChkc3QpOwogCiAJc3JjX3ggPSBzcmMtPngxID4+IDE2OwotCXNyY195ID0gc3JjLT55MSA+PiAxNjsKIAlzcmNfdyA9IGRybV9yZWN0X3dpZHRoKHNyYykgPj4gMTY7CiAJc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoc3JjKSA+PiAxNjsKIApAQCAtMTg1Miw1MiArMjAyOSw2IEBAIHN0YXRpYyBjb25zdCB1MzIgc2tsX3BsYW5lX2Zvcm1hdHNbXSA9IHsKIAlEUk1fRk9STUFUX1ZZVVksCiB9OwogCi1zdGF0aWMgY29uc3QgdTMyIGljbF9wbGFuZV9mb3JtYXRzW10gPSB7Ci0JRFJNX0ZPUk1BVF9DOCwKLQlEUk1fRk9STUFUX1JHQjU2NSwKLQlEUk1fRk9STUFUX1hSR0I4ODg4LAotCURSTV9GT1JNQVRfWEJHUjg4ODgsCi0JRFJNX0ZPUk1BVF9BUkdCODg4OCwKLQlEUk1fRk9STUFUX0FCR1I4ODg4LAotCURSTV9GT1JNQVRfWFJHQjIxMDEwMTAsCi0JRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCwKLQlEUk1fRk9STUFUX1lVWVYsCi0JRFJNX0ZPUk1BVF9ZVllVLAotCURSTV9GT1JNQVRfVVlWWSwKLQlEUk1fRk9STUFUX1ZZVVksCi0JRFJNX0ZPUk1BVF9ZMjEwLAotCURSTV9GT1JNQVRfWTIxMiwKLQlEUk1fRk9STUFUX1kyMTYsCi0JRFJNX0ZPUk1BVF9YVllVMjEwMTAxMCwKLQlEUk1fRk9STUFUX1hWWVUxMl8xNjE2MTYxNiwKLQlEUk1fRk9STUFUX1hWWVUxNjE2MTYxNiwKLX07Ci0KLXN0YXRpYyBjb25zdCB1MzIgaWNsX2hkcl9wbGFuZV9mb3JtYXRzW10gPSB7Ci0JRFJNX0ZPUk1BVF9DOCwKLQlEUk1fRk9STUFUX1JHQjU2NSwKLQlEUk1fRk9STUFUX1hSR0I4ODg4LAotCURSTV9GT1JNQVRfWEJHUjg4ODgsCi0JRFJNX0ZPUk1BVF9BUkdCODg4OCwKLQlEUk1fRk9STUFUX0FCR1I4ODg4LAotCURSTV9GT1JNQVRfWFJHQjIxMDEwMTAsCi0JRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCwKLQlEUk1fRk9STUFUX1hSR0IxNjE2MTYxNkYsCi0JRFJNX0ZPUk1BVF9YQkdSMTYxNjE2MTZGLAotCURSTV9GT1JNQVRfQVJHQjE2MTYxNjE2RiwKLQlEUk1fRk9STUFUX0FCR1IxNjE2MTYxNkYsCi0JRFJNX0ZPUk1BVF9ZVVlWLAotCURSTV9GT1JNQVRfWVZZVSwKLQlEUk1fRk9STUFUX1VZVlksCi0JRFJNX0ZPUk1BVF9WWVVZLAotCURSTV9GT1JNQVRfWTIxMCwKLQlEUk1fRk9STUFUX1kyMTIsCi0JRFJNX0ZPUk1BVF9ZMjE2LAotCURSTV9GT1JNQVRfWFZZVTIxMDEwMTAsCi0JRFJNX0ZPUk1BVF9YVllVMTJfMTYxNjE2MTYsCi0JRFJNX0ZPUk1BVF9YVllVMTYxNjE2MTYsCi19OwotCiBzdGF0aWMgY29uc3QgdTMyIHNrbF9wbGFuYXJfZm9ybWF0c1tdID0gewogCURSTV9GT1JNQVRfQzgsCiAJRFJNX0ZPUk1BVF9SR0I1NjUsCkBAIC0xOTMzLDcgKzIwNjQsMjggQEAgc3RhdGljIGNvbnN0IHUzMiBnbGtfcGxhbmFyX2Zvcm1hdHNbXSA9IHsKIAlEUk1fRk9STUFUX1AwMTYsCiB9OwogCi1zdGF0aWMgY29uc3QgdTMyIGljbF9wbGFuYXJfZm9ybWF0c1tdID0geworc3RhdGljIGNvbnN0IHUzMiBpY2xfc2RyX3lfcGxhbmVfZm9ybWF0c1tdID0geworCURSTV9GT1JNQVRfQzgsCisJRFJNX0ZPUk1BVF9SR0I1NjUsCisJRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwlEUk1fRk9STUFUX1hCR1I4ODg4LAorCURSTV9GT1JNQVRfQVJHQjg4ODgsCisJRFJNX0ZPUk1BVF9BQkdSODg4OCwKKwlEUk1fRk9STUFUX1hSR0IyMTAxMDEwLAorCURSTV9GT1JNQVRfWEJHUjIxMDEwMTAsCisJRFJNX0ZPUk1BVF9ZVVlWLAorCURSTV9GT1JNQVRfWVZZVSwKKwlEUk1fRk9STUFUX1VZVlksCisJRFJNX0ZPUk1BVF9WWVVZLAorCURSTV9GT1JNQVRfWTIxMCwKKwlEUk1fRk9STUFUX1kyMTIsCisJRFJNX0ZPUk1BVF9ZMjE2LAorCURSTV9GT1JNQVRfWFZZVTIxMDEwMTAsCisJRFJNX0ZPUk1BVF9YVllVMTJfMTYxNjE2MTYsCisJRFJNX0ZPUk1BVF9YVllVMTYxNjE2MTYsCit9OworCitzdGF0aWMgY29uc3QgdTMyIGljbF9zZHJfdXZfcGxhbmVfZm9ybWF0c1tdID0gewogCURSTV9GT1JNQVRfQzgsCiAJRFJNX0ZPUk1BVF9SR0I1NjUsCiAJRFJNX0ZPUk1BVF9YUkdCODg4OCwKQEAgLTE5NTgsNyArMjExMCw3IEBAIHN0YXRpYyBjb25zdCB1MzIgaWNsX3BsYW5hcl9mb3JtYXRzW10gPSB7CiAJRFJNX0ZPUk1BVF9YVllVMTYxNjE2MTYsCiB9OwogCi1zdGF0aWMgY29uc3QgdTMyIGljbF9oZHJfcGxhbmFyX2Zvcm1hdHNbXSA9IHsKK3N0YXRpYyBjb25zdCB1MzIgaWNsX2hkcl9wbGFuZV9mb3JtYXRzW10gPSB7CiAJRFJNX0ZPUk1BVF9DOCwKIAlEUk1fRk9STUFUX1JHQjU2NSwKIAlEUk1fRk9STUFUX1hSR0I4ODg4LApAQCAtMjIwMSw5ICsyMzUzLDYgQEAgc3RhdGljIGJvb2wgc2tsX3BsYW5lX2hhc19mYmMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3RhdGljIGJvb2wgc2tsX3BsYW5lX2hhc19wbGFuYXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSBlbnVtIHBpcGUgcGlwZSwgZW51bSBwbGFuZV9pZCBwbGFuZV9pZCkKIHsKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKLQkJcmV0dXJuIHBsYW5lX2lkIDw9IFBMQU5FX1NQUklURTM7Ci0KIAkvKiBEaXNwbGF5IFdBICMwODcwOiBza2wsIGJ4dCAqLwogCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMjIxNyw2ICsyMzY2LDQ4IEBAIHN0YXRpYyBib29sIHNrbF9wbGFuZV9oYXNfcGxhbmFyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGNvbnN0IHUzMiAqc2tsX2dldF9wbGFuZV9mb3JtYXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJZW51bSBwaXBlIHBpcGUsIGVudW0gcGxhbmVfaWQgcGxhbmVfaWQsCisJCQkJCWludCAqbnVtX2Zvcm1hdHMpCit7CisJaWYgKHNrbF9wbGFuZV9oYXNfcGxhbmFyKGRldl9wcml2LCBwaXBlLCBwbGFuZV9pZCkpIHsKKwkJKm51bV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcGxhbmFyX2Zvcm1hdHMpOworCQlyZXR1cm4gc2tsX3BsYW5hcl9mb3JtYXRzOworCX0gZWxzZSB7CisJCSpudW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoc2tsX3BsYW5lX2Zvcm1hdHMpOworCQlyZXR1cm4gc2tsX3BsYW5lX2Zvcm1hdHM7CisJfQorfQorCitzdGF0aWMgY29uc3QgdTMyICpnbGtfZ2V0X3BsYW5lX2Zvcm1hdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQllbnVtIHBpcGUgcGlwZSwgZW51bSBwbGFuZV9pZCBwbGFuZV9pZCwKKwkJCQkJaW50ICpudW1fZm9ybWF0cykKK3sKKwlpZiAoc2tsX3BsYW5lX2hhc19wbGFuYXIoZGV2X3ByaXYsIHBpcGUsIHBsYW5lX2lkKSkgeworCQkqbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGdsa19wbGFuYXJfZm9ybWF0cyk7CisJCXJldHVybiBnbGtfcGxhbmFyX2Zvcm1hdHM7CisJfSBlbHNlIHsKKwkJKm51bV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcGxhbmVfZm9ybWF0cyk7CisJCXJldHVybiBza2xfcGxhbmVfZm9ybWF0czsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCB1MzIgKmljbF9nZXRfcGxhbmVfZm9ybWF0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJCWVudW0gcGlwZSBwaXBlLCBlbnVtIHBsYW5lX2lkIHBsYW5lX2lkLAorCQkJCQlpbnQgKm51bV9mb3JtYXRzKQoreworCWlmIChpY2xfaXNfaGRyX3BsYW5lKGRldl9wcml2LCBwbGFuZV9pZCkpIHsKKwkJKm51bV9mb3JtYXRzID0gQVJSQVlfU0laRShpY2xfaGRyX3BsYW5lX2Zvcm1hdHMpOworCQlyZXR1cm4gaWNsX2hkcl9wbGFuZV9mb3JtYXRzOworCX0gZWxzZSBpZiAoaWNsX2lzX252MTJfeV9wbGFuZShwbGFuZV9pZCkpIHsKKwkJKm51bV9mb3JtYXRzID0gQVJSQVlfU0laRShpY2xfc2RyX3lfcGxhbmVfZm9ybWF0cyk7CisJCXJldHVybiBpY2xfc2RyX3lfcGxhbmVfZm9ybWF0czsKKwl9IGVsc2UgeworCQkqbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGljbF9zZHJfdXZfcGxhbmVfZm9ybWF0cyk7CisJCXJldHVybiBpY2xfc2RyX3V2X3BsYW5lX2Zvcm1hdHM7CisJfQorfQorCiBzdGF0aWMgYm9vbCBza2xfcGxhbmVfaGFzX2NjcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICBlbnVtIHBpcGUgcGlwZSwgZW51bSBwbGFuZV9pZCBwbGFuZV9pZCkKIHsKQEAgLTIyNzAsMzAgKzI0NjEsMTUgQEAgc2tsX3VuaXZlcnNhbF9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChpY2xfaXNfbnYxMl95X3BsYW5lKHBsYW5lX2lkKSkKIAkJcGxhbmUtPnVwZGF0ZV9zbGF2ZSA9IGljbF91cGRhdGVfc2xhdmU7CiAKLQlpZiAoc2tsX3BsYW5lX2hhc19wbGFuYXIoZGV2X3ByaXYsIHBpcGUsIHBsYW5lX2lkKSkgewotCQlpZiAoaWNsX2lzX2hkcl9wbGFuZShkZXZfcHJpdiwgcGxhbmVfaWQpKSB7Ci0JCQlmb3JtYXRzID0gaWNsX2hkcl9wbGFuYXJfZm9ybWF0czsKLQkJCW51bV9mb3JtYXRzID0gQVJSQVlfU0laRShpY2xfaGRyX3BsYW5hcl9mb3JtYXRzKTsKLQkJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCQlmb3JtYXRzID0gaWNsX3BsYW5hcl9mb3JtYXRzOwotCQkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGljbF9wbGFuYXJfZm9ybWF0cyk7Ci0JCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA9PSAxMCB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewotCQkJZm9ybWF0cyA9IGdsa19wbGFuYXJfZm9ybWF0czsKLQkJCW51bV9mb3JtYXRzID0gQVJSQVlfU0laRShnbGtfcGxhbmFyX2Zvcm1hdHMpOwotCQl9IGVsc2UgewotCQkJZm9ybWF0cyA9IHNrbF9wbGFuYXJfZm9ybWF0czsKLQkJCW51bV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcGxhbmFyX2Zvcm1hdHMpOwotCQl9Ci0JfSBlbHNlIGlmIChpY2xfaXNfaGRyX3BsYW5lKGRldl9wcml2LCBwbGFuZV9pZCkpIHsKLQkJZm9ybWF0cyA9IGljbF9oZHJfcGxhbmVfZm9ybWF0czsKLQkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGljbF9oZHJfcGxhbmVfZm9ybWF0cyk7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCWZvcm1hdHMgPSBpY2xfcGxhbmVfZm9ybWF0czsKLQkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGljbF9wbGFuZV9mb3JtYXRzKTsKLQl9IGVsc2UgewotCQlmb3JtYXRzID0gc2tsX3BsYW5lX2Zvcm1hdHM7Ci0JCW51bV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcGxhbmVfZm9ybWF0cyk7Ci0JfQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQorCQlmb3JtYXRzID0gaWNsX2dldF9wbGFuZV9mb3JtYXRzKGRldl9wcml2LCBwaXBlLAorCQkJCQkJcGxhbmVfaWQsICZudW1fZm9ybWF0cyk7CisJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkKKwkJZm9ybWF0cyA9IGdsa19nZXRfcGxhbmVfZm9ybWF0cyhkZXZfcHJpdiwgcGlwZSwKKwkJCQkJCXBsYW5lX2lkLCAmbnVtX2Zvcm1hdHMpOworCWVsc2UKKwkJZm9ybWF0cyA9IHNrbF9nZXRfcGxhbmVfZm9ybWF0cyhkZXZfcHJpdiwgcGlwZSwKKwkJCQkJCXBsYW5lX2lkLCAmbnVtX2Zvcm1hdHMpOwogCiAJcGxhbmUtPmhhc19jY3MgPSBza2xfcGxhbmVfaGFzX2NjcyhkZXZfcHJpdiwgcGlwZSwgcGxhbmVfaWQpOwogCWlmIChwbGFuZS0+aGFzX2NjcykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5oCmluZGV4IDUwMGY2YmYuLjA5M2EyZDE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmgKQEAgLTgsNyArOCw2IEBACiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF9kaXNwbGF5LmgiCiAKIHN0cnVjdCBkcm1fZGV2aWNlOwpAQCAtNDksMTEgKzQ4LDYgQEAgc3RhdGljIGlubGluZSB1OCBpY2xfaGRyX3BsYW5lX21hc2sodm9pZCkKIAkJQklUKFBMQU5FX1NQUklURTApIHwgQklUKFBMQU5FX1NQUklURTEpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaWNsX2lzX2hkcl9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgIGVudW0gcGxhbmVfaWQgcGxhbmVfaWQpCi17Ci0JcmV0dXJuIElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYKLQkJaWNsX2hkcl9wbGFuZV9tYXNrKCkgJiBCSVQocGxhbmVfaWQpOwotfQorYm9vbCBpY2xfaXNfaGRyX3BsYW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwbGFuZV9pZCBwbGFuZV9pZCk7CiAKICNlbmRpZiAvKiBfX0lOVEVMX1NQUklURV9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTc0M2E0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jCkBAIC0wLDAgKzEsNTQ0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5LmgiCisjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgorI2luY2x1ZGUgImludGVsX2RwX21zdC5oIgorI2luY2x1ZGUgImludGVsX3RjLmgiCisKK3N0YXRpYyBjb25zdCBjaGFyICp0Y19wb3J0X21vZGVfbmFtZShlbnVtIHRjX3BvcnRfbW9kZSBtb2RlKQoreworCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbmFtZXNbXSA9IHsKKwkJW1RDX1BPUlRfVEJUX0FMVF0gPSAidGJ0LWFsdCIsCisJCVtUQ19QT1JUX0RQX0FMVF0gPSAiZHAtYWx0IiwKKwkJW1RDX1BPUlRfTEVHQUNZXSA9ICJsZWdhY3kiLAorCX07CisKKwlpZiAoV0FSTl9PTihtb2RlID49IEFSUkFZX1NJWkUobmFtZXMpKSkKKwkJbW9kZSA9IFRDX1BPUlRfVEJUX0FMVDsKKworCXJldHVybiBuYW1lc1ttb2RlXTsKK30KKworc3RhdGljIGJvb2wgaGFzX21vZHVsYXJfZmlhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWlmICghSU5URUxfSU5GTyhpOTE1KS0+ZGlzcGxheS5oYXNfbW9kdWxhcl9maWEpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiBpbnRlbF91bmNvcmVfcmVhZCgmaTkxNS0+dW5jb3JlLAorCQkJCSBQT1JUX1RYX0RGTEVYRFBTUChGSUExKSkgJiBNT0RVTEFSX0ZJQV9NQVNLOworfQorCitzdGF0aWMgZW51bSBwaHlfZmlhIHRjX3BvcnRfdG9fZmlhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJCSAgIGVudW0gdGNfcG9ydCB0Y19wb3J0KQoreworCWlmICghaGFzX21vZHVsYXJfZmlhKGk5MTUpKQorCQlyZXR1cm4gRklBMTsKKworCS8qCisJICogRWFjaCBNb2R1bGFyIEZJQSBpbnN0YW5jZSBob3VzZXMgMiBUQyBwb3J0cy4gSW4gU09DIHRoYXQgaGFzIG1vcmUKKwkgKiB0aGFuIHR3byBUQyBwb3J0cywgdGhlcmUgYXJlIG11bHRpcGxlIGluc3RhbmNlcyBvZiBNb2R1bGFyIEZJQS4KKwkgKi8KKwlyZXR1cm4gdGNfcG9ydCAvIDI7Cit9CisKK3UzMiBpbnRlbF90Y19wb3J0X2dldF9sYW5lX21hc2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKKwllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoaTkxNSwgZGlnX3BvcnQtPmJhc2UucG9ydCk7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmk5MTUtPnVuY29yZTsKKwl1MzIgbGFuZV9tYXNrOworCisJbGFuZV9tYXNrID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLAorCQkJCSAgICAgIFBPUlRfVFhfREZMRVhEUFNQKGRpZ19wb3J0LT50Y19waHlfZmlhKSk7CisKKwlXQVJOX09OKGxhbmVfbWFzayA9PSAweGZmZmZmZmZmKTsKKworCXJldHVybiAobGFuZV9tYXNrICYgRFBfTEFORV9BU1NJR05NRU5UX01BU0sodGNfcG9ydCkpID4+CisJICAgICAgIERQX0xBTkVfQVNTSUdOTUVOVF9TSElGVCh0Y19wb3J0KTsKK30KKworaW50IGludGVsX3RjX3BvcnRfZmlhX21heF9sYW5lX2NvdW50KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisJdTMyIGxhbmVfbWFzazsKKworCWlmIChkaWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX0RQX0FMVCkKKwkJcmV0dXJuIDQ7CisKKwlsYW5lX21hc2sgPSAwOworCXdpdGhfaW50ZWxfZGlzcGxheV9wb3dlcihpOTE1LCBQT1dFUl9ET01BSU5fRElTUExBWV9DT1JFLCB3YWtlcmVmKQorCQlsYW5lX21hc2sgPSBpbnRlbF90Y19wb3J0X2dldF9sYW5lX21hc2soZGlnX3BvcnQpOworCisJc3dpdGNoIChsYW5lX21hc2spIHsKKwlkZWZhdWx0OgorCQlNSVNTSU5HX0NBU0UobGFuZV9tYXNrKTsKKwkJLyogZmFsbC10aHJvdWdoICovCisJY2FzZSAweDE6CisJY2FzZSAweDI6CisJY2FzZSAweDQ6CisJY2FzZSAweDg6CisJCXJldHVybiAxOworCWNhc2UgMHgzOgorCWNhc2UgMHhjOgorCQlyZXR1cm4gMjsKKwljYXNlIDB4ZjoKKwkJcmV0dXJuIDQ7CisJfQorfQorCit2b2lkIGludGVsX3RjX3BvcnRfc2V0X2ZpYV9sYW5lX2NvdW50KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAorCQkJCSAgICAgIGludCByZXF1aXJlZF9sYW5lcykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOworCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKKwlib29sIGxhbmVfcmV2ZXJzYWwgPSBkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzICYgRERJX0JVRl9QT1JUX1JFVkVSU0FMOworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZpOTE1LT51bmNvcmU7CisJdTMyIHZhbDsKKworCVdBUk5fT04obGFuZV9yZXZlcnNhbCAmJiBkaWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX0xFR0FDWSk7CisKKwl2YWwgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsCisJCQkJUE9SVF9UWF9ERkxFWERQTUxFMShkaWdfcG9ydC0+dGNfcGh5X2ZpYSkpOworCXZhbCAmPSB+REZMRVhEUE1MRTFfRFBNTEVUQ19NQVNLKHRjX3BvcnQpOworCisJc3dpdGNoIChyZXF1aXJlZF9sYW5lcykgeworCWNhc2UgMToKKwkJdmFsIHw9IGxhbmVfcmV2ZXJzYWwgPyBERkxFWERQTUxFMV9EUE1MRVRDX01MMyh0Y19wb3J0KSA6CisJCQlERkxFWERQTUxFMV9EUE1MRVRDX01MMCh0Y19wb3J0KTsKKwkJYnJlYWs7CisJY2FzZSAyOgorCQl2YWwgfD0gbGFuZV9yZXZlcnNhbCA/IERGTEVYRFBNTEUxX0RQTUxFVENfTUwzXzIodGNfcG9ydCkgOgorCQkJREZMRVhEUE1MRTFfRFBNTEVUQ19NTDFfMCh0Y19wb3J0KTsKKwkJYnJlYWs7CisJY2FzZSA0OgorCQl2YWwgfD0gREZMRVhEUE1MRTFfRFBNTEVUQ19NTDNfMCh0Y19wb3J0KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJTUlTU0lOR19DQVNFKHJlcXVpcmVkX2xhbmVzKTsKKwl9CisKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAorCQkJICAgUE9SVF9UWF9ERkxFWERQTUxFMShkaWdfcG9ydC0+dGNfcGh5X2ZpYSksIHZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIHRjX3BvcnRfZml4dXBfbGVnYWN5X2ZsYWcoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsCisJCQkJICAgICAgdTMyIGxpdmVfc3RhdHVzX21hc2spCit7CisJdTMyIHZhbGlkX2hwZF9tYXNrOworCisJaWYgKGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCkKKwkJdmFsaWRfaHBkX21hc2sgPSBCSVQoVENfUE9SVF9MRUdBQ1kpOworCWVsc2UKKwkJdmFsaWRfaHBkX21hc2sgPSBCSVQoVENfUE9SVF9EUF9BTFQpIHwKKwkJCQkgQklUKFRDX1BPUlRfVEJUX0FMVCk7CisKKwlpZiAoIShsaXZlX3N0YXR1c19tYXNrICYgfnZhbGlkX2hwZF9tYXNrKSkKKwkJcmV0dXJuOworCisJLyogSWYgbGl2ZSBzdGF0dXMgbWlzbWF0Y2hlcyB0aGUgVkJUIGZsYWcsIHRydXN0IHRoZSBsaXZlIHN0YXR1cy4gKi8KKwlEUk1fRVJST1IoIlBvcnQgJXM6IGxpdmUgc3RhdHVzICUwOHggbWlzbWF0Y2hlcyB0aGUgbGVnYWN5IHBvcnQgZmxhZywgZml4IGZsYWdcbiIsCisJCSAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSwgbGl2ZV9zdGF0dXNfbWFzayk7CisKKwlkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQgPSAhZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0OworfQorCitzdGF0aWMgdTMyIHRjX3BvcnRfbGl2ZV9zdGF0dXNfbWFzayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOworCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOworCXUzMiBtYXNrID0gMDsKKwl1MzIgdmFsOworCisJdmFsID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLAorCQkJCVBPUlRfVFhfREZMRVhEUFNQKGRpZ19wb3J0LT50Y19waHlfZmlhKSk7CisKKwlpZiAodmFsID09IDB4ZmZmZmZmZmYpIHsKKwkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIGluIFRDQ09MRCwgbm90aGluZyBjb25uZWN0ZWRcbiIsCisJCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lKTsKKwkJcmV0dXJuIG1hc2s7CisJfQorCisJaWYgKHZhbCAmIFRDX0xJVkVfU1RBVEVfVEJUKHRjX3BvcnQpKQorCQltYXNrIHw9IEJJVChUQ19QT1JUX1RCVF9BTFQpOworCWlmICh2YWwgJiBUQ19MSVZFX1NUQVRFX1RDKHRjX3BvcnQpKQorCQltYXNrIHw9IEJJVChUQ19QT1JUX0RQX0FMVCk7CisKKwlpZiAoaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBTREVJU1IpICYgU0RFX1RDX0hPVFBMVUdfSUNQKHRjX3BvcnQpKQorCQltYXNrIHw9IEJJVChUQ19QT1JUX0xFR0FDWSk7CisKKwkvKiBUaGUgc2luayBjYW4gYmUgY29ubmVjdGVkIG9ubHkgaW4gYSBzaW5nbGUgbW9kZS4gKi8KKwlpZiAoIVdBUk5fT04oaHdlaWdodDMyKG1hc2spID4gMSkpCisJCXRjX3BvcnRfZml4dXBfbGVnYWN5X2ZsYWcoZGlnX3BvcnQsIG1hc2spOworCisJcmV0dXJuIG1hc2s7Cit9CisKK3N0YXRpYyBib29sIGljbF90Y19waHlfc3RhdHVzX2NvbXBsZXRlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7CisJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGk5MTUsIGRpZ19wb3J0LT5iYXNlLnBvcnQpOworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZpOTE1LT51bmNvcmU7CisJdTMyIHZhbDsKKworCXZhbCA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwKKwkJCQlQT1JUX1RYX0RGTEVYRFBQTVMoZGlnX3BvcnQtPnRjX3BoeV9maWEpKTsKKwlpZiAodmFsID09IDB4ZmZmZmZmZmYpIHsKKwkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIGluIFRDQ09MRCwgYXNzdW1pbmcgbm90IGNvbXBsZXRlXG4iLAorCQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdmFsICYgRFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCh0Y19wb3J0KTsKK30KKworc3RhdGljIGJvb2wgaWNsX3RjX3BoeV9zZXRfc2FmZV9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAorCQkJCSAgICAgYm9vbCBlbmFibGUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKKwllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoaTkxNSwgZGlnX3BvcnQtPmJhc2UucG9ydCk7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmk5MTUtPnVuY29yZTsKKwl1MzIgdmFsOworCisJdmFsID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLAorCQkJCVBPUlRfVFhfREZMRVhEUENTU1MoZGlnX3BvcnQtPnRjX3BoeV9maWEpKTsKKwlpZiAodmFsID09IDB4ZmZmZmZmZmYpIHsKKwkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIGluIFRDQ09MRCwgY2FuJ3Qgc2V0IHNhZmUtbW9kZSB0byAlc1xuIiwKKwkJCSAgICAgIGRpZ19wb3J0LT50Y19wb3J0X25hbWUsCisJCQkgICAgICBlbmFibGVkZGlzYWJsZWQoZW5hYmxlKSk7CisKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXZhbCAmPSB+RFBfUEhZX01PREVfU1RBVFVTX05PVF9TQUZFKHRjX3BvcnQpOworCWlmICghZW5hYmxlKQorCQl2YWwgfD0gRFBfUEhZX01PREVfU1RBVFVTX05PVF9TQUZFKHRjX3BvcnQpOworCisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwKKwkJCSAgIFBPUlRfVFhfREZMRVhEUENTU1MoZGlnX3BvcnQtPnRjX3BoeV9maWEpLCB2YWwpOworCisJaWYgKGVuYWJsZSAmJiB3YWl0X2ZvcighaWNsX3RjX3BoeV9zdGF0dXNfY29tcGxldGUoZGlnX3BvcnQpLCAxMCkpCisJCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IFBIWSBjb21wbGV0ZSBjbGVhciB0aW1lZCBvdXRcbiIsCisJCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lKTsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2lzX2luX3NhZmVfbW9kZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOworCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOworCXUzMiB2YWw7CisKKwl2YWwgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsCisJCQkJUE9SVF9UWF9ERkxFWERQQ1NTUyhkaWdfcG9ydC0+dGNfcGh5X2ZpYSkpOworCWlmICh2YWwgPT0gMHhmZmZmZmZmZikgeworCQlEUk1fREVCVUdfS01TKCJQb3J0ICVzOiBQSFkgaW4gVENDT0xELCBhc3N1bWUgc2FmZSBtb2RlXG4iLAorCQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSk7CisJCXJldHVybiB0cnVlOworCX0KKworCXJldHVybiAhKHZhbCAmIERQX1BIWV9NT0RFX1NUQVRVU19OT1RfU0FGRSh0Y19wb3J0KSk7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIENvbm5lY3QgRmxvdyBkZXNjcmliZWQgYnkgb3VyCisgKiBzcGVjaWZpY2F0aW9uLCBHZW4xMSBUeXBlQyBQcm9ncmFtbWluZyBjaGFwdGVyLiBUaGUgcmVzdCBvZiB0aGUgZmxvdyAocmVhZGluZworICogbGFuZXMsIEVESUQsIGV0YykgaXMgZG9uZSBhcyBuZWVkZWQgaW4gdGhlIHR5cGljYWwgcGxhY2VzLgorICoKKyAqIFVubGlrZSB0aGUgb3RoZXIgcG9ydHMsIHR5cGUtQyBwb3J0cyBhcmUgbm90IGF2YWlsYWJsZSB0byB1c2UgYXMgc29vbiBhcyB3ZQorICogZ2V0IGEgaG90cGx1Zy4gVGhlIHR5cGUtQyBQSFlzIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBjb250cm9sbGVyczoKKyAqIGRpc3BsYXksIFVTQiwgZXRjLiBBcyBhIHJlc3VsdCwgaGFuZHNoYWtpbmcgdGhyb3VnaCBGSUEgaXMgcmVxdWlyZWQgYXJvdW5kCisgKiBjb25uZWN0IGFuZCBkaXNjb25uZWN0IHRvIGNsZWFubHkgdHJhbnNmZXIgb3duZXJzaGlwIHdpdGggdGhlIGNvbnRyb2xsZXIgYW5kCisgKiBzZXQgdGhlIHR5cGUtQyBwb3dlciBzdGF0ZS4KKyAqLworc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAorCQkJICAgICAgIGludCByZXF1aXJlZF9sYW5lcykKK3sKKwlpbnQgbWF4X2xhbmVzOworCisJaWYgKCFpY2xfdGNfcGh5X3N0YXR1c19jb21wbGV0ZShkaWdfcG9ydCkpIHsKKwkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIG5vdCByZWFkeVxuIiwKKwkJCSAgICAgIGRpZ19wb3J0LT50Y19wb3J0X25hbWUpOworCQlnb3RvIG91dF9zZXRfdGJ0X2FsdF9tb2RlOworCX0KKworCWlmICghaWNsX3RjX3BoeV9zZXRfc2FmZV9tb2RlKGRpZ19wb3J0LCBmYWxzZSkgJiYKKwkgICAgIVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KSkKKwkJZ290byBvdXRfc2V0X3RidF9hbHRfbW9kZTsKKworCW1heF9sYW5lcyA9IGludGVsX3RjX3BvcnRfZmlhX21heF9sYW5lX2NvdW50KGRpZ19wb3J0KTsKKwlpZiAoZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KSB7CisJCVdBUk5fT04obWF4X2xhbmVzICE9IDQpOworCQlkaWdfcG9ydC0+dGNfbW9kZSA9IFRDX1BPUlRfTEVHQUNZOworCisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIE5vdyB3ZSBoYXZlIHRvIHJlLWNoZWNrIHRoZSBsaXZlIHN0YXRlLCBpbiBjYXNlIHRoZSBwb3J0IHJlY2VudGx5CisJICogYmVjYW1lIGRpc2Nvbm5lY3RlZC4gTm90IG5lY2Vzc2FyeSBmb3IgbGVnYWN5IG1vZGUuCisJICovCisJaWYgKCEodGNfcG9ydF9saXZlX3N0YXR1c19tYXNrKGRpZ19wb3J0KSAmIEJJVChUQ19QT1JUX0RQX0FMVCkpKSB7CisJCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IFBIWSBzdWRkZW4gZGlzY29ubmVjdFxuIiwKKwkJCSAgICAgIGRpZ19wb3J0LT50Y19wb3J0X25hbWUpOworCQlnb3RvIG91dF9zZXRfc2FmZV9tb2RlOworCX0KKworCWlmIChtYXhfbGFuZXMgPCByZXF1aXJlZF9sYW5lcykgeworCQlEUk1fREVCVUdfS01TKCJQb3J0ICVzOiBQSFkgbWF4IGxhbmVzICVkIDwgcmVxdWlyZWQgbGFuZXMgJWRcbiIsCisJCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLAorCQkJICAgICAgbWF4X2xhbmVzLCByZXF1aXJlZF9sYW5lcyk7CisJCWdvdG8gb3V0X3NldF9zYWZlX21vZGU7CisJfQorCisJZGlnX3BvcnQtPnRjX21vZGUgPSBUQ19QT1JUX0RQX0FMVDsKKworCXJldHVybjsKKworb3V0X3NldF9zYWZlX21vZGU6CisJaWNsX3RjX3BoeV9zZXRfc2FmZV9tb2RlKGRpZ19wb3J0LCB0cnVlKTsKK291dF9zZXRfdGJ0X2FsdF9tb2RlOgorCWRpZ19wb3J0LT50Y19tb2RlID0gVENfUE9SVF9UQlRfQUxUOworfQorCisvKgorICogU2VlIHRoZSBjb21tZW50IGF0IHRoZSBjb25uZWN0IGZ1bmN0aW9uLiBUaGlzIGltcGxlbWVudHMgdGhlIERpc2Nvbm5lY3QKKyAqIEZsb3cuCisgKi8KK3N0YXRpYyB2b2lkIGljbF90Y19waHlfZGlzY29ubmVjdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKK3sKKwlzd2l0Y2ggKGRpZ19wb3J0LT50Y19tb2RlKSB7CisJY2FzZSBUQ19QT1JUX0xFR0FDWToKKwkJLyogTm90aGluZyB0byBkbywgd2UgbmV2ZXIgZGlzY29ubmVjdCBmcm9tIGxlZ2FjeSBtb2RlICovCisJCWJyZWFrOworCWNhc2UgVENfUE9SVF9EUF9BTFQ6CisJCWljbF90Y19waHlfc2V0X3NhZmVfbW9kZShkaWdfcG9ydCwgdHJ1ZSk7CisJCWRpZ19wb3J0LT50Y19tb2RlID0gVENfUE9SVF9UQlRfQUxUOworCQlicmVhazsKKwljYXNlIFRDX1BPUlRfVEJUX0FMVDoKKwkJLyogTm90aGluZyB0byBkbywgd2Ugc3RheSBpbiBUQlQtYWx0IG1vZGUgKi8KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJTUlTU0lOR19DQVNFKGRpZ19wb3J0LT50Y19tb2RlKTsKKwl9Cit9CisKK3N0YXRpYyBib29sIGljbF90Y19waHlfaXNfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQoreworCWlmICghaWNsX3RjX3BoeV9zdGF0dXNfY29tcGxldGUoZGlnX3BvcnQpKSB7CisJCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IFBIWSBzdGF0dXMgbm90IGNvbXBsZXRlXG4iLAorCQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSk7CisJCXJldHVybiBkaWdfcG9ydC0+dGNfbW9kZSA9PSBUQ19QT1JUX1RCVF9BTFQ7CisJfQorCisJaWYgKGljbF90Y19waHlfaXNfaW5fc2FmZV9tb2RlKGRpZ19wb3J0KSkgeworCQlEUk1fREVCVUdfS01TKCJQb3J0ICVzOiBQSFkgc3RpbGwgaW4gc2FmZSBtb2RlXG4iLAorCQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSk7CisKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiBkaWdfcG9ydC0+dGNfbW9kZSA9PSBUQ19QT1JUX0RQX0FMVCB8fAorCSAgICAgICBkaWdfcG9ydC0+dGNfbW9kZSA9PSBUQ19QT1JUX0xFR0FDWTsKK30KKworc3RhdGljIGVudW0gdGNfcG9ydF9tb2RlCitpbnRlbF90Y19wb3J0X2dldF9jdXJyZW50X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCit7CisJdTMyIGxpdmVfc3RhdHVzX21hc2sgPSB0Y19wb3J0X2xpdmVfc3RhdHVzX21hc2soZGlnX3BvcnQpOworCWJvb2wgaW5fc2FmZV9tb2RlID0gaWNsX3RjX3BoeV9pc19pbl9zYWZlX21vZGUoZGlnX3BvcnQpOworCWVudW0gdGNfcG9ydF9tb2RlIG1vZGU7CisKKwlpZiAoaW5fc2FmZV9tb2RlIHx8IFdBUk5fT04oIWljbF90Y19waHlfc3RhdHVzX2NvbXBsZXRlKGRpZ19wb3J0KSkpCisJCXJldHVybiBUQ19QT1JUX1RCVF9BTFQ7CisKKwltb2RlID0gZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0ID8gVENfUE9SVF9MRUdBQ1kgOiBUQ19QT1JUX0RQX0FMVDsKKwlpZiAobGl2ZV9zdGF0dXNfbWFzaykgeworCQllbnVtIHRjX3BvcnRfbW9kZSBsaXZlX21vZGUgPSBmbHMobGl2ZV9zdGF0dXNfbWFzaykgLSAxOworCisJCWlmICghV0FSTl9PTihsaXZlX21vZGUgPT0gVENfUE9SVF9UQlRfQUxUKSkKKwkJCW1vZGUgPSBsaXZlX21vZGU7CisJfQorCisJcmV0dXJuIG1vZGU7Cit9CisKK3N0YXRpYyBlbnVtIHRjX3BvcnRfbW9kZQoraW50ZWxfdGNfcG9ydF9nZXRfdGFyZ2V0X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCit7CisJdTMyIGxpdmVfc3RhdHVzX21hc2sgPSB0Y19wb3J0X2xpdmVfc3RhdHVzX21hc2soZGlnX3BvcnQpOworCisJaWYgKGxpdmVfc3RhdHVzX21hc2spCisJCXJldHVybiBmbHMobGl2ZV9zdGF0dXNfbWFzaykgLSAxOworCisJcmV0dXJuIGljbF90Y19waHlfc3RhdHVzX2NvbXBsZXRlKGRpZ19wb3J0KSAmJgorCSAgICAgICBkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQgPyBUQ19QT1JUX0xFR0FDWSA6CisJCQkJCSAgVENfUE9SVF9UQlRfQUxUOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF90Y19wb3J0X3Jlc2V0X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsCisJCQkJICAgICBpbnQgcmVxdWlyZWRfbGFuZXMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKKwllbnVtIHRjX3BvcnRfbW9kZSBvbGRfdGNfbW9kZSA9IGRpZ19wb3J0LT50Y19tb2RlOworCisJaW50ZWxfZGlzcGxheV9wb3dlcl9mbHVzaF93b3JrKGk5MTUpOworCVdBUk5fT04oaW50ZWxfZGlzcGxheV9wb3dlcl9pc19lbmFibGVkKGk5MTUsCisJCQkJCSAgICAgICBpbnRlbF9hdXhfcG93ZXJfZG9tYWluKGRpZ19wb3J0KSkpOworCisJaWNsX3RjX3BoeV9kaXNjb25uZWN0KGRpZ19wb3J0KTsKKwlpY2xfdGNfcGh5X2Nvbm5lY3QoZGlnX3BvcnQsIHJlcXVpcmVkX2xhbmVzKTsKKworCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IFRDIHBvcnQgbW9kZSByZXNldCAoJXMgLT4gJXMpXG4iLAorCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLAorCQkgICAgICB0Y19wb3J0X21vZGVfbmFtZShvbGRfdGNfbW9kZSksCisJCSAgICAgIHRjX3BvcnRfbW9kZV9uYW1lKGRpZ19wb3J0LT50Y19tb2RlKSk7Cit9CisKK3N0YXRpYyB2b2lkCitpbnRlbF90Y19wb3J0X2xpbmtfaW5pdF9yZWZjb3VudChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwKKwkJCQkgaW50IHJlZmNvdW50KQoreworCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQpOworCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50ID0gcmVmY291bnQ7Cit9CisKK3ZvaWQgaW50ZWxfdGNfcG9ydF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZkaWdfcG9ydC0+YmFzZTsKKwlpbnQgYWN0aXZlX2xpbmtzID0gMDsKKworCW11dGV4X2xvY2soJmRpZ19wb3J0LT50Y19sb2NrKTsKKworCWRpZ19wb3J0LT50Y19tb2RlID0gaW50ZWxfdGNfcG9ydF9nZXRfY3VycmVudF9tb2RlKGRpZ19wb3J0KTsKKwlpZiAoZGlnX3BvcnQtPmRwLmlzX21zdCkKKwkJYWN0aXZlX2xpbmtzID0gaW50ZWxfZHBfbXN0X2VuY29kZXJfYWN0aXZlX2xpbmtzKGRpZ19wb3J0KTsKKwllbHNlIGlmIChlbmNvZGVyLT5iYXNlLmNydGMpCisJCWFjdGl2ZV9saW5rcyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKS0+YWN0aXZlOworCisJaWYgKGFjdGl2ZV9saW5rcykgeworCQlpZiAoIWljbF90Y19waHlfaXNfY29ubmVjdGVkKGRpZ19wb3J0KSkKKwkJCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IFBIWSBkaXNjb25uZWN0ZWQgd2l0aCAlZCBhY3RpdmUgbGluayhzKVxuIiwKKwkJCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLCBhY3RpdmVfbGlua3MpOworCQlpbnRlbF90Y19wb3J0X2xpbmtfaW5pdF9yZWZjb3VudChkaWdfcG9ydCwgYWN0aXZlX2xpbmtzKTsKKworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KQorCQlpY2xfdGNfcGh5X2Nvbm5lY3QoZGlnX3BvcnQsIDEpOworCitvdXQ6CisJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogc2FuaXRpemUgbW9kZSAoJXMpXG4iLAorCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLAorCQkgICAgICB0Y19wb3J0X21vZGVfbmFtZShkaWdfcG9ydC0+dGNfbW9kZSkpOworCisJbXV0ZXhfdW5sb2NrKCZkaWdfcG9ydC0+dGNfbG9jayk7Cit9CisKK3N0YXRpYyBib29sIGludGVsX3RjX3BvcnRfbmVlZHNfcmVzZXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCit7CisJcmV0dXJuIGludGVsX3RjX3BvcnRfZ2V0X3RhcmdldF9tb2RlKGRpZ19wb3J0KSAhPSBkaWdfcG9ydC0+dGNfbW9kZTsKK30KKworLyoKKyAqIFRoZSB0eXBlLUMgcG9ydHMgYXJlIGRpZmZlcmVudCBiZWNhdXNlIGV2ZW4gd2hlbiB0aGV5IGFyZSBjb25uZWN0ZWQsIHRoZXkgbWF5CisgKiBub3QgYmUgYXZhaWxhYmxlL3VzYWJsZSBieSB0aGUgZ3JhcGhpY3MgZHJpdmVyOiBzZWUgdGhlIGNvbW1lbnQgb24KKyAqIGljbF90Y19waHlfY29ubmVjdCgpLiBTbyBpbiBvdXIgZHJpdmVyIGluc3RlYWQgb2YgYWRkaW5nIHRoZSBhZGRpdGlvbmFsCisgKiBjb25jZXB0IG9mICJ1c2FibGUiIGFuZCBtYWtlIGV2ZXJ5dGhpbmcgY2hlY2sgZm9yICJjb25uZWN0ZWQgYW5kIHVzYWJsZSIgd2UKKyAqIGRlZmluZSBhIHBvcnQgYXMgImNvbm5lY3RlZCIgd2hlbiBpdCBpcyBub3Qgb25seSBjb25uZWN0ZWQsIGJ1dCBhbHNvIHdoZW4gaXQKKyAqIGlzIHVzYWJsZSBieSB0aGUgcmVzdCBvZiB0aGUgZHJpdmVyLiBUaGF0IG1haW50YWlucyB0aGUgb2xkIGFzc3VtcHRpb24gdGhhdAorICogY29ubmVjdGVkIHBvcnRzIGFyZSB1c2FibGUsIGFuZCBhdm9pZHMgZXhwb3NpbmcgdG8gdGhlIHVzZXJzIG9iamVjdHMgdGhleQorICogY2FuJ3QgcmVhbGx5IHVzZS4KKyAqLworYm9vbCBpbnRlbF90Y19wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKK3sKKwlib29sIGlzX2Nvbm5lY3RlZDsKKworCWludGVsX3RjX3BvcnRfbG9jayhkaWdfcG9ydCk7CisJaXNfY29ubmVjdGVkID0gdGNfcG9ydF9saXZlX3N0YXR1c19tYXNrKGRpZ19wb3J0KSAmCisJCSAgICAgICBCSVQoZGlnX3BvcnQtPnRjX21vZGUpOworCWludGVsX3RjX3BvcnRfdW5sb2NrKGRpZ19wb3J0KTsKKworCXJldHVybiBpc19jb25uZWN0ZWQ7Cit9CisKK3N0YXRpYyB2b2lkIF9faW50ZWxfdGNfcG9ydF9sb2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAorCQkJCSBpbnQgcmVxdWlyZWRfbGFuZXMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKKworCXdha2VyZWYgPSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChpOTE1LCBQT1dFUl9ET01BSU5fRElTUExBWV9DT1JFKTsKKworCW11dGV4X2xvY2soJmRpZ19wb3J0LT50Y19sb2NrKTsKKworCWlmICghZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQgJiYKKwkgICAgaW50ZWxfdGNfcG9ydF9uZWVkc19yZXNldChkaWdfcG9ydCkpCisJCWludGVsX3RjX3BvcnRfcmVzZXRfbW9kZShkaWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMpOworCisJV0FSTl9PTihkaWdfcG9ydC0+dGNfbG9ja193YWtlcmVmKTsKKwlkaWdfcG9ydC0+dGNfbG9ja193YWtlcmVmID0gd2FrZXJlZjsKK30KKwordm9pZCBpbnRlbF90Y19wb3J0X2xvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCit7CisJX19pbnRlbF90Y19wb3J0X2xvY2soZGlnX3BvcnQsIDEpOworfQorCit2b2lkIGludGVsX3RjX3BvcnRfdW5sb2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWYgPSBmZXRjaF9hbmRfemVybygmZGlnX3BvcnQtPnRjX2xvY2tfd2FrZXJlZik7CisKKwltdXRleF91bmxvY2soJmRpZ19wb3J0LT50Y19sb2NrKTsKKworCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X2FzeW5jKGk5MTUsIFBPV0VSX0RPTUFJTl9ESVNQTEFZX0NPUkUsCisJCQkJICAgICAgd2FrZXJlZik7Cit9CisKK2Jvb2wgaW50ZWxfdGNfcG9ydF9yZWZfaGVsZChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKK3sKKwlyZXR1cm4gbXV0ZXhfaXNfbG9ja2VkKCZkaWdfcG9ydC0+dGNfbG9jaykgfHwKKwkgICAgICAgZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQ7Cit9CisKK3ZvaWQgaW50ZWxfdGNfcG9ydF9nZXRfbGluayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwKKwkJCSAgICBpbnQgcmVxdWlyZWRfbGFuZXMpCit7CisJX19pbnRlbF90Y19wb3J0X2xvY2soZGlnX3BvcnQsIHJlcXVpcmVkX2xhbmVzKTsKKwlkaWdfcG9ydC0+dGNfbGlua19yZWZjb3VudCsrOworCWludGVsX3RjX3BvcnRfdW5sb2NrKGRpZ19wb3J0KTsKK30KKwordm9pZCBpbnRlbF90Y19wb3J0X3B1dF9saW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQoreworCW11dGV4X2xvY2soJmRpZ19wb3J0LT50Y19sb2NrKTsKKwlkaWdfcG9ydC0+dGNfbGlua19yZWZjb3VudC0tOworCW11dGV4X3VubG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOworfQorCit2b2lkIGludGVsX3RjX3BvcnRfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwgYm9vbCBpc19sZWdhY3kpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKKwllbnVtIHBvcnQgcG9ydCA9IGRpZ19wb3J0LT5iYXNlLnBvcnQ7CisJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGk5MTUsIHBvcnQpOworCisJaWYgKFdBUk5fT04odGNfcG9ydCA9PSBQT1JUX1RDX05PTkUpKQorCQlyZXR1cm47CisKKwlzbnByaW50ZihkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLCBzaXplb2YoZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSksCisJCSAiJWMvVEMjJWQiLCBwb3J0X25hbWUocG9ydCksIHRjX3BvcnQgKyAxKTsKKworCW11dGV4X2luaXQoJmRpZ19wb3J0LT50Y19sb2NrKTsKKwlkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQgPSBpc19sZWdhY3k7CisJZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQgPSAwOworCWRpZ19wb3J0LT50Y19waHlfZmlhID0gdGNfcG9ydF90b19maWEoaTkxNSwgdGNfcG9ydCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgzZDc1NQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuaApAQCAtMCwwICsxLDMwIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSU5URUxfVENfSF9fCisjZGVmaW5lIF9fSU5URUxfVENfSF9fCisKKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKK3N0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQ7CisKK2Jvb2wgaW50ZWxfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwordTMyIGludGVsX3RjX3BvcnRfZ2V0X2xhbmVfbWFzayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7CitpbnQgaW50ZWxfdGNfcG9ydF9maWFfbWF4X2xhbmVfY291bnQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwordm9pZCBpbnRlbF90Y19wb3J0X3NldF9maWFfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwKKwkJCQkgICAgICBpbnQgcmVxdWlyZWRfbGFuZXMpOworCit2b2lkIGludGVsX3RjX3BvcnRfc2FuaXRpemUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwordm9pZCBpbnRlbF90Y19wb3J0X2xvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwordm9pZCBpbnRlbF90Y19wb3J0X3VubG9jayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Cit2b2lkIGludGVsX3RjX3BvcnRfZ2V0X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsCisJCQkgICAgaW50IHJlcXVpcmVkX2xhbmVzKTsKK3ZvaWQgaW50ZWxfdGNfcG9ydF9wdXRfbGluayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Citib29sIGludGVsX3RjX3BvcnRfcmVmX2hlbGQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOworCit2b2lkIGludGVsX3RjX3BvcnRfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwgYm9vbCBpc19sZWdhY3kpOworCisjZW5kaWYgLyogX19JTlRFTF9UQ19IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdHYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdHYuYwppbmRleCAwYTk1ZGY2Li5iNzAyMjFmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90di5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdHYuYwpAQCAtMzcsNyArMzcsNyBAQAogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF9jb25uZWN0b3IuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfaG90cGx1Zy5oIgogI2luY2x1ZGUgImludGVsX3R2LmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaAppbmRleCA1ZGRiZTcxLi5kZmNkMTU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3ZidF9kZWZzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92YnRfZGVmcy5oCkBAIC0zMTAsMTMgKzMxMCwxMyBAQCBlbnVtIHZidF9nbWJ1c19kZGkgewogCUREQ19CVVNfRERJX0YsCiAJSUNMX0REQ19CVVNfRERJX0EgPSAweDEsCiAJSUNMX0REQ19CVVNfRERJX0IsCisJVEdMX0REQ19CVVNfRERJX0MsCiAJSUNMX0REQ19CVVNfUE9SVF8xID0gMHg0LAogCUlDTF9ERENfQlVTX1BPUlRfMiwKIAlJQ0xfRERDX0JVU19QT1JUXzMsCiAJSUNMX0REQ19CVVNfUE9SVF80LAotCU1DQ19ERENfQlVTX0RESV9BID0gMHgxLAotCU1DQ19ERENfQlVTX0RESV9CLAotCU1DQ19ERENfQlVTX0RESV9DID0gMHg0LAorCVRHTF9ERENfQlVTX1BPUlRfNSwKKwlUR0xfRERDX0JVU19QT1JUXzYsCiB9OwogCiAjZGVmaW5lIERQX0FVWF9BIDB4NDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMKaW5kZXggZjQxMzkwNC4uZDRmYjdmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMKQEAgLTksNyArOSw3IEBACiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF92ZHNjLmgiCiAKIGVudW0gUk9XX0lOREVYX0JQUCB7CkBAIC00NTksMTcgKzQ1OSwyMyBAQCBpbnQgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCiBpbnRlbF9kc2NfcG93ZXJfZG9tYWluKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAKIAkvKgotCSAqIE9uIElDTCBWRFNDL2pvaW5pbmcgZm9yIGVEUCB0cmFuc2NvZGVyIHVzZXMgYSBzZXBhcmF0ZSBwb3dlciB3ZWxsIFBXMgotCSAqIFRoaXMgcmVxdWlyZXMgUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRURQX1ZEU0MgcG93ZXIgZG9tYWluLgorCSAqIE9uIElDTCBWRFNDL2pvaW5pbmcgZm9yIGVEUCB0cmFuc2NvZGVyIHVzZXMgYSBzZXBhcmF0ZSBwb3dlciB3ZWxsLAorCSAqIFBXMi4gVGhpcyByZXF1aXJlcyBQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9WRFNDX1BXMiBwb3dlciBkb21haW4uCiAJICogRm9yIGFueSBvdGhlciB0cmFuc2NvZGVyLCBWRFNDL2pvaW5pbmcgdXNlcyB0aGUgcG93ZXIgd2VsbCBhc3NvY2lhdGVkCiAJICogd2l0aCB0aGUgcGlwZS90cmFuc2NvZGVyIGluIHVzZS4gSGVuY2UgYW5vdGhlciByZWZlcmVuY2Ugb24gdGhlCiAJICogdHJhbnNjb2RlciBwb3dlciBkb21haW4gd2lsbCBzdWZmaWNlLgorCSAqCisJICogT24gVEdMIHdlIGhhdmUgdGhlIHNhbWUgbWFwcGluZywgYnV0IGZvciB0cmFuc2NvZGVyIEEgKHRoZSBzcGVjaWFsCisJICogVFJBTlNDT0RFUl9FRFAgaXMgZ29uZSkuCiAJICovCi0JaWYgKGNwdV90cmFuc2NvZGVyID09IFRSQU5TQ09ERVJfRURQKQotCQlyZXR1cm4gUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRURQX1ZEU0M7CisJaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMiAmJiBjcHVfdHJhbnNjb2RlciA9PSBUUkFOU0NPREVSX0EpCisJCXJldHVybiBQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9WRFNDX1BXMjsKKwllbHNlIGlmIChjcHVfdHJhbnNjb2RlciA9PSBUUkFOU0NPREVSX0VEUCkKKwkJcmV0dXJuIFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX1ZEU0NfUFcyOwogCWVsc2UKIAkJcmV0dXJuIFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSKGNwdV90cmFuc2NvZGVyKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpLmMKaW5kZXggZTI3MmQ4Mi4uYTcxYjIyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpLmMKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2F0b21pYy5oIgogI2luY2x1ZGUgImludGVsX2Nvbm5lY3Rvci5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9kc2kuaCIKICNpbmNsdWRlICJpbnRlbF9maWZvX3VuZGVycnVuLmgiCiAjaW5jbHVkZSAiaW50ZWxfcGFuZWwuaCIKQEAgLTg0LDkgKzg0LDggQEAgdm9pZCB2bHZfZHNpX3dhaXRfZm9yX2ZpZm9fZW1wdHkoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBlbnVtIHBvcnQgcG9ydCkKIAltYXNrID0gTFBfQ1RSTF9GSUZPX0VNUFRZIHwgSFNfQ1RSTF9GSUZPX0VNUFRZIHwKIAkJTFBfREFUQV9GSUZPX0VNUFRZIHwgSFNfREFUQV9GSUZPX0VNUFRZOwogCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCSAgICBNSVBJX0dFTl9GSUZPX1NUQVQocG9ydCksIG1hc2ssIG1hc2ssCi0JCQkJICAgIDEwMCkpCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgTUlQSV9HRU5fRklGT19TVEFUKHBvcnQpLAorCQkJCSAgbWFzaywgMTAwKSkKIAkJRFJNX0VSUk9SKCJEUEkgRklGT3MgYXJlIG5vdCBlbXB0eVxuIik7CiB9CiAKQEAgLTE1NCwxMCArMTUzLDggQEAgc3RhdGljIHNzaXplX3QgaW50ZWxfZHNpX2hvc3RfdHJhbnNmZXIoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAKIAkvKiBub3RlOiB0aGlzIGlzIG5ldmVyIHRydWUgZm9yIHJlYWRzICovCiAJaWYgKHBhY2tldC5wYXlsb2FkX2xlbmd0aCkgewotCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJCSAgICBNSVBJX0dFTl9GSUZPX1NUQVQocG9ydCksCi0JCQkJCSAgICBkYXRhX21hc2ssIDAsCi0JCQkJCSAgICA1MCkpCisJCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9jbGVhcihkZXZfcHJpdiwgTUlQSV9HRU5fRklGT19TVEFUKHBvcnQpLAorCQkJCQkgICAgZGF0YV9tYXNrLCA1MCkpCiAJCQlEUk1fRVJST1IoIlRpbWVvdXQgd2FpdGluZyBmb3IgSFMvTFAgREFUQSBGSUZPICFmdWxsXG4iKTsKIAogCQl3cml0ZV9kYXRhKGRldl9wcml2LCBkYXRhX3JlZywgcGFja2V0LnBheWxvYWQsCkBAIC0xNjgsMTAgKzE2NSw4IEBAIHN0YXRpYyBzc2l6ZV90IGludGVsX2RzaV9ob3N0X3RyYW5zZmVyKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAogCQlJOTE1X1dSSVRFKE1JUElfSU5UUl9TVEFUKHBvcnQpLCBHRU5fUkVBRF9EQVRBX0FWQUlMKTsKIAl9CiAKLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIE1JUElfR0VOX0ZJRk9fU1RBVChwb3J0KSwKLQkJCQkgICAgY3RybF9tYXNrLCAwLAotCQkJCSAgICA1MCkpIHsKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIE1JUElfR0VOX0ZJRk9fU1RBVChwb3J0KSwKKwkJCQkgICAgY3RybF9tYXNrLCA1MCkpIHsKIAkJRFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIEhTL0xQIENUUkwgRklGTyAhZnVsbFxuIik7CiAJfQogCkBAIC0xODAsMTAgKzE3NSw4IEBAIHN0YXRpYyBzc2l6ZV90IGludGVsX2RzaV9ob3N0X3RyYW5zZmVyKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAogCS8qIC0+cnhfbGVuIGlzIHNldCBvbmx5IGZvciByZWFkcyAqLwogCWlmIChtc2ctPnJ4X2xlbikgewogCQlkYXRhX21hc2sgPSBHRU5fUkVBRF9EQVRBX0FWQUlMOwotCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJCSAgICBNSVBJX0lOVFJfU1RBVChwb3J0KSwKLQkJCQkJICAgIGRhdGFfbWFzaywgZGF0YV9tYXNrLAotCQkJCQkgICAgNTApKQorCQlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBNSVBJX0lOVFJfU1RBVChwb3J0KSwKKwkJCQkJICBkYXRhX21hc2ssIDUwKSkKIAkJCURSTV9FUlJPUigiVGltZW91dCB3YWl0aW5nIGZvciByZWFkIGRhdGEuXG4iKTsKIAogCQlyZWFkX2RhdGEoZGV2X3ByaXYsIGRhdGFfcmVnLCBtc2ctPnJ4X2J1ZiwgbXNnLT5yeF9sZW4pOwpAQCAtMjQwLDkgKzIzMyw3IEBAIHN0YXRpYyBpbnQgZHBpX3NlbmRfY21kKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgdTMyIGNtZCwgYm9vbCBocywKIAlJOTE1X1dSSVRFKE1JUElfRFBJX0NPTlRST0wocG9ydCksIGNtZCk7CiAKIAltYXNrID0gU1BMX1BLVF9TRU5UX0lOVEVSUlVQVDsKLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIE1JUElfSU5UUl9TVEFUKHBvcnQpLCBtYXNrLCBtYXNrLAotCQkJCSAgICAxMDApKQorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIE1JUElfSU5UUl9TVEFUKHBvcnQpLCBtYXNrLCAxMDApKQogCQlEUk1fRVJST1IoIlZpZGVvIG1vZGUgY29tbWFuZCAweCUwOHggc2VuZCBmYWlsZWQuXG4iLCBjbWQpOwogCiAJcmV0dXJuIDA7CkBAIC0zNTksMTEgKzM1MCw4IEBAIHN0YXRpYyBib29sIGdsa19kc2lfZW5hYmxlX2lvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiAJLyogV2FpdCBmb3IgUHdyIEFDSyAqLwogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKLQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCQkgICAgTUlQSV9DVFJMKHBvcnQpLAotCQkJCQkgICAgR0xLX01JUElJT19QT1JUX1BPV0VSRUQsCi0JCQkJCSAgICBHTEtfTUlQSUlPX1BPUlRfUE9XRVJFRCwKLQkJCQkJICAgIDIwKSkKKwkJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgTUlQSV9DVFJMKHBvcnQpLAorCQkJCQkgIEdMS19NSVBJSU9fUE9SVF9QT1dFUkVELCAyMCkpCiAJCQlEUk1fRVJST1IoIk1JUElPIHBvcnQgaXMgcG93ZXJnYXRlZFxuIik7CiAJfQogCkBAIC0zODUsMTEgKzM3Myw4IEBAIHN0YXRpYyB2b2lkIGdsa19kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiAJLyogV2FpdCBmb3IgTUlQSSBQSFkgc3RhdHVzIGJpdCB0byBzZXQgKi8KIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkJICAgIE1JUElfQ1RSTChwb3J0KSwKLQkJCQkJICAgIEdMS19QSFlfU1RBVFVTX1BPUlRfUkVBRFksCi0JCQkJCSAgICBHTEtfUEhZX1NUQVRVU19QT1JUX1JFQURZLAotCQkJCQkgICAgMjApKQorCQlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBNSVBJX0NUUkwocG9ydCksCisJCQkJCSAgR0xLX1BIWV9TVEFUVVNfUE9SVF9SRUFEWSwgMjApKQogCQkJRFJNX0VSUk9SKCJQSFkgaXMgbm90IE9OXG4iKTsKIAl9CiAKQEAgLTQxMywxMSArMzk4LDggQEAgc3RhdGljIHZvaWQgZ2xrX2RzaV9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJCQlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBvcnQpLCB2YWwpOwogCiAJCQkvKiBXYWl0IGZvciBVTFBTIGFjdGl2ZSAqLwotCQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCQkJICAgIE1JUElfQ1RSTChwb3J0KSwKLQkJCQkJCSAgICBHTEtfVUxQU19OT1RfQUNUSVZFLAotCQkJCQkJICAgIDAsCi0JCQkJCQkgICAgMjApKQorCQkJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2LCBNSVBJX0NUUkwocG9ydCksCisJCQkJCQkgICAgR0xLX1VMUFNfTk9UX0FDVElWRSwgMjApKQogCQkJCURSTV9FUlJPUigiVUxQUyBub3QgYWN0aXZlXG4iKTsKIAogCQkJLyogRXhpdCBVTFBTICovCkBAIC00NDAsMjEgKzQyMiwxNSBAQCBzdGF0aWMgdm9pZCBnbGtfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogCS8qIFdhaXQgZm9yIFN0b3Agc3RhdGUgKi8KIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkJICAgIE1JUElfQ1RSTChwb3J0KSwKLQkJCQkJICAgIEdMS19EQVRBX0xBTkVfU1RPUF9TVEFURSwKLQkJCQkJICAgIEdMS19EQVRBX0xBTkVfU1RPUF9TVEFURSwKLQkJCQkJICAgIDIwKSkKKwkJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgTUlQSV9DVFJMKHBvcnQpLAorCQkJCQkgIEdMS19EQVRBX0xBTkVfU1RPUF9TVEFURSwgMjApKQogCQkJRFJNX0VSUk9SKCJEYXRlIGxhbmUgbm90IGluIFNUT1Agc3RhdGVcbiIpOwogCX0KIAogCS8qIFdhaXQgZm9yIEFGRSBMQVRDSCAqLwogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKLQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCQkgICAgQlhUX01JUElfUE9SVF9DVFJMKHBvcnQpLAotCQkJCQkgICAgQUZFX0xBVENIT1VULAotCQkJCQkgICAgQUZFX0xBVENIT1VULAotCQkJCQkgICAgMjApKQorCQlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCksCisJCQkJCSAgQUZFX0xBVENIT1VULCAyMCkpCiAJCQlEUk1fRVJST1IoIkQtUEhZIG5vdCBlbnRlcmluZyBMUC0xMSBzdGF0ZVxuIik7CiAJfQogfQpAQCAtNTU0LDE3ICs1MzAsMTUgQEAgc3RhdGljIHZvaWQgZ2xrX2RzaV9lbnRlcl9sb3dfcG93ZXJfbW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogCS8qIFdhaXQgZm9yIE1JUEkgUEhZIHN0YXR1cyBiaXQgdG8gdW5zZXQgKi8KIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkJICAgIE1JUElfQ1RSTChwb3J0KSwKLQkJCQkJICAgIEdMS19QSFlfU1RBVFVTX1BPUlRfUkVBRFksIDAsIDIwKSkKKwkJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2LCBNSVBJX0NUUkwocG9ydCksCisJCQkJCSAgICBHTEtfUEhZX1NUQVRVU19QT1JUX1JFQURZLCAyMCkpCiAJCQlEUk1fRVJST1IoIlBIWSBpcyBub3QgdHVybmluZyBPRkZcbiIpOwogCX0KIAogCS8qIFdhaXQgZm9yIFB3ciBBQ0sgYml0IHRvIHVuc2V0ICovCiAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJCSAgICBNSVBJX0NUUkwocG9ydCksCi0JCQkJCSAgICBHTEtfTUlQSUlPX1BPUlRfUE9XRVJFRCwgMCwgMjApKQorCQlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIE1JUElfQ1RSTChwb3J0KSwKKwkJCQkJICAgIEdMS19NSVBJSU9fUE9SVF9QT1dFUkVELCAyMCkpCiAJCQlEUk1fRVJST1IoIk1JUEkgSU8gUG9ydCBpcyBub3QgcG93ZXJnYXRlZFxuIik7CiAJfQogfQpAQCAtNTgzLDkgKzU1Nyw4IEBAIHN0YXRpYyB2b2lkIGdsa19kc2lfZGlzYWJsZV9taXBpX2lvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiAJLyogV2FpdCBmb3IgTUlQSSBQSFkgc3RhdHVzIGJpdCB0byB1bnNldCAqLwogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKLQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCQkgICAgTUlQSV9DVFJMKHBvcnQpLAotCQkJCQkgICAgR0xLX1BIWV9TVEFUVVNfUE9SVF9SRUFEWSwgMCwgMjApKQorCQlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIE1JUElfQ1RSTChwb3J0KSwKKwkJCQkJICAgIEdMS19QSFlfU1RBVFVTX1BPUlRfUkVBRFksIDIwKSkKIAkJCURSTV9FUlJPUigiUEhZIGlzIG5vdCB0dXJuaW5nIE9GRlxuIik7CiAJfQogCkBAIC02MzMsOSArNjA2LDggQEAgc3RhdGljIHZvaWQgdmx2X2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJCSAqIFBvcnQgQSBvbmx5LiBNSVBJIFBvcnQgQyBoYXMgbm8gc2ltaWxhciBiaXQgZm9yIGNoZWNraW5nLgogCQkgKi8KIAkJaWYgKChJU19HRU45X0xQKGRldl9wcml2KSB8fCBwb3J0ID09IFBPUlRfQSkgJiYKLQkJICAgIGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLAotCQkJCQkgICAgcG9ydF9jdHJsLCBBRkVfTEFUQ0hPVVQsIDAsCi0JCQkJCSAgICAzMCkpCisJCSAgICBpbnRlbF9kZV93YWl0X2Zvcl9jbGVhcihkZXZfcHJpdiwgcG9ydF9jdHJsLAorCQkJCQkgICAgQUZFX0xBVENIT1VULCAzMCkpCiAJCQlEUk1fRVJST1IoIkRTSSBMUCBub3QgZ29pbmcgTG93XG4iKTsKIAogCQkvKiBEaXNhYmxlIE1JUEkgUEhZIHRyYW5zcGFyZW50IGxhdGNoICovCkBAIC0xNjQ0LDcgKzE2MTYsNyBAQCB2bHZfZHNpX2dldF9wYW5lbF9vcmllbnRhdGlvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJcmV0dXJuIGludGVsX2RzaV9nZXRfcGFuZWxfb3JpZW50YXRpb24oY29ubmVjdG9yKTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZHNpX2FkZF9wcm9wZXJ0aWVzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyB2b2lkIHZsdl9kc2lfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAKQEAgLTE5ODMsNyArMTk1NSw3IEBAIHZvaWQgdmx2X2RzaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpbnRlbF9wYW5lbF9pbml0KCZpbnRlbF9jb25uZWN0b3ItPnBhbmVsLCBmaXhlZF9tb2RlLCBOVUxMKTsKIAlpbnRlbF9wYW5lbF9zZXR1cF9iYWNrbGlnaHQoY29ubmVjdG9yLCBJTlZBTElEX1BJUEUpOwogCi0JaW50ZWxfZHNpX2FkZF9wcm9wZXJ0aWVzKGludGVsX2Nvbm5lY3Rvcik7CisJdmx2X2RzaV9hZGRfcHJvcGVydGllcyhpbnRlbF9jb25uZWN0b3IpOwogCiAJcmV0dXJuOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9kc2lfcGxsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9kc2lfcGxsLmMKaW5kZXggZjAxNmE3Ny4uOTVmMzljZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpX3BsbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaV9wbGwuYwpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHNpLmgiCiAjaW5jbHVkZSAiaW50ZWxfc2lkZWJhbmQuaCIKIApAQCAtMjQ2LDExICsyNDYsOCBAQCB2b2lkIGJ4dF9kc2lfcGxsX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJICogUExMIGxvY2sgc2hvdWxkIGRlYXNzZXJ0IHdpdGhpbiAyMDB1cy4KIAkgKiBXYWl0IHVwIHRvIDFtcyBiZWZvcmUgdGltaW5nIG91dC4KIAkgKi8KLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIEJYVF9EU0lfUExMX0VOQUJMRSwKLQkJCQkgICAgQlhUX0RTSV9QTExfTE9DS0VELAotCQkJCSAgICAwLAotCQkJCSAgICAxKSkKKwlpZiAoaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIEJYVF9EU0lfUExMX0VOQUJMRSwKKwkJCQkgICAgQlhUX0RTSV9QTExfTE9DS0VELCAxKSkKIAkJRFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIFBMTCBsb2NrIGRlYXNzZXJ0aW9uXG4iKTsKIH0KIApAQCAtNTMwLDExICs1MjcsOCBAQCB2b2lkIGJ4dF9kc2lfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlJOTE1X1dSSVRFKEJYVF9EU0lfUExMX0VOQUJMRSwgdmFsKTsKIAogCS8qIFRpbWVvdXQgYW5kIGZhaWwgaWYgUExMIG5vdCBsb2NrZWQgKi8KLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCi0JCQkJICAgIEJYVF9EU0lfUExMX0VOQUJMRSwKLQkJCQkgICAgQlhUX0RTSV9QTExfTE9DS0VELAotCQkJCSAgICBCWFRfRFNJX1BMTF9MT0NLRUQsCi0JCQkJICAgIDEpKSB7CisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgQlhUX0RTSV9QTExfRU5BQkxFLAorCQkJCSAgQlhUX0RTSV9QTExfTE9DS0VELCAxKSkgewogCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBEU0kgUExMIHRvIGxvY2tcbiIpOwogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL01ha2VmaWxlCmluZGV4IDA3ZTdiOGIuLjdlNzNhYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vTWFrZWZpbGUKQEAgLTEgKzEsNSBAQAotaW5jbHVkZSAkKHNyYykvTWFrZWZpbGUuaGVhZGVyLXRlc3QgIyBFeHRyYSBoZWFkZXIgdGVzdHMKKyMgRm9yIGJ1aWxkaW5nIGluZGl2aWR1YWwgc3ViZGlyIGZpbGVzIG9uIHRoZSBjb21tYW5kIGxpbmUKK3N1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpLyQoc3JjKS8uLgorCisjIEV4dHJhIGhlYWRlciB0ZXN0cworaGVhZGVyLXRlc3QtcGF0dGVybi0kKENPTkZJR19EUk1fSTkxNV9XRVJST1IpIDo9ICouaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL01ha2VmaWxlLmhlYWRlci10ZXN0IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL01ha2VmaWxlLmhlYWRlci10ZXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MWUwNmNiLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9NYWtlZmlsZS5oZWFkZXItdGVzdAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotIyBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgotCi0jIFRlc3QgdGhlIGhlYWRlcnMgYXJlIGNvbXBpbGFibGUgYXMgc3RhbmRhbG9uZSB1bml0cwotaGVhZGVyX3Rlc3QgOj0gJChub3RkaXIgJCh3aWxkY2FyZCAkKHNyYykvKi5oKSkKLQotcXVpZXRfY21kX2hlYWRlcl90ZXN0ID0gSERSVEVTVCAkQAotICAgICAgY21kX2hlYWRlcl90ZXN0ID0gZWNobyAiXCNpbmNsdWRlIFwiJCg8RilcIiIgPiAkQAotCi1oZWFkZXJfdGVzdF8lLmM6ICUuaAotCSQoY2FsbCBjbWQsaGVhZGVyX3Rlc3QpCi0KLWV4dHJhLSQoQ09ORklHX0RSTV9JOTE1X1dFUlJPUikgKz0gXAotCSQoZm9yZWFjaCBoLCQoaGVhZGVyX3Rlc3QpLCQocGF0c3Vic3QgJS5oLGhlYWRlcl90ZXN0XyUubywkKGgpKSkKLQotY2xlYW4tZmlsZXMgKz0gJChmb3JlYWNoIGgsJChoZWFkZXJfdGVzdCksJChwYXRzdWJzdCAlLmgsaGVhZGVyX3Rlc3RfJS5jLCQoaCkpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2J1c3kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9idXN5LmMKaW5kZXggNmFkOTNhMC4uM2Q0ZjU3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2J1c3kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fYnVzeS5jCkBAIC04Miw3ICs4Miw3IEBAIGk5MTVfZ2VtX2J1c3lfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2J1c3kgKmFyZ3MgPSBkYXRhOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpsaXN0OworCXN0cnVjdCBkbWFfcmVzdl9saXN0ICpsaXN0OwogCXVuc2lnbmVkIGludCBzZXE7CiAJaW50IGVycjsKIApAQCAtMTA1LDcgKzEwNSw3IEBAIGk5MTVfZ2VtX2J1c3lfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkgKiBBbHRlcm5hdGl2ZWx5LCB3ZSBjYW4gdHJhZGUgdGhhdCBleHRyYSBpbmZvcm1hdGlvbiBvbiByZWFkL3dyaXRlCiAJICogYWN0aXZpdHkgd2l0aAogCSAqCWFyZ3MtPmJ1c3kgPQotCSAqCQkhcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KG9iai0+cmVzdiwgdHJ1ZSk7CisJICoJCSFkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdShvYmotPnJlc3YsIHRydWUpOwogCSAqIHRvIHJlcG9ydCB0aGUgb3ZlcmFsbCBidXN5bmVzcy4gVGhpcyBpcyB3aGF0IHRoZSB3YWl0LWlvY3RsIGRvZXMuCiAJICoKIAkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jbGZsdXNoLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY2xmbHVzaC5jCmluZGV4IDUyOTUyODVkLi5iOWY1MDRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY2xmbHVzaC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jbGZsdXNoLmMKQEAgLTgsODcgKzgsNjcgQEAKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fY2xmbHVzaC5oIgotCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKGNsZmx1c2hfbG9jayk7CisjaW5jbHVkZSAiaTkxNV9zd19mZW5jZV93b3JrLmgiCisjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogCiBzdHJ1Y3QgY2xmbHVzaCB7Ci0Jc3RydWN0IGRtYV9mZW5jZSBkbWE7IC8qIE11c3QgYmUgZmlyc3QgZm9yIGRtYV9mZW5jZV9mcmVlKCkgKi8KLQlzdHJ1Y3QgaTkxNV9zd19mZW5jZSB3YWl0OwotCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOworCXN0cnVjdCBkbWFfZmVuY2Vfd29yayBiYXNlOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqaTkxNV9jbGZsdXNoX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKLXsKLQlyZXR1cm4gRFJJVkVSX05BTUU7Ci19Ci0KLXN0YXRpYyBjb25zdCBjaGFyICppOTE1X2NsZmx1c2hfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCi17Ci0JcmV0dXJuICJjbGZsdXNoIjsKLX0KLQotc3RhdGljIHZvaWQgaTkxNV9jbGZsdXNoX3JlbGVhc2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCi17Ci0Jc3RydWN0IGNsZmx1c2ggKmNsZmx1c2ggPSBjb250YWluZXJfb2YoZmVuY2UsIHR5cGVvZigqY2xmbHVzaCksIGRtYSk7Ci0KLQlpOTE1X3N3X2ZlbmNlX2ZpbmkoJmNsZmx1c2gtPndhaXQpOwotCi0JQlVJTERfQlVHX09OKG9mZnNldG9mKHR5cGVvZigqY2xmbHVzaCksIGRtYSkpOwotCWRtYV9mZW5jZV9mcmVlKCZjbGZsdXNoLT5kbWEpOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgaTkxNV9jbGZsdXNoX29wcyA9IHsKLQkuZ2V0X2RyaXZlcl9uYW1lID0gaTkxNV9jbGZsdXNoX2dldF9kcml2ZXJfbmFtZSwKLQkuZ2V0X3RpbWVsaW5lX25hbWUgPSBpOTE1X2NsZmx1c2hfZ2V0X3RpbWVsaW5lX25hbWUsCi0JLnJlbGVhc2UgPSBpOTE1X2NsZmx1c2hfcmVsZWFzZSwKLX07Ci0KLXN0YXRpYyB2b2lkIF9faTkxNV9kb19jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgdm9pZCBfX2RvX2NsZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikpOwogCWRybV9jbGZsdXNoX3NnKG9iai0+bW0ucGFnZXMpOwotCWludGVsX2ZiX29ial9mbHVzaChvYmosIE9SSUdJTl9DUFUpOworCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKG9iai0+ZnJvbnRidWZmZXIsIE9SSUdJTl9DUFUpOwogfQogCi1zdGF0aWMgdm9pZCBpOTE1X2NsZmx1c2hfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCitzdGF0aWMgaW50IGNsZmx1c2hfd29yayhzdHJ1Y3QgZG1hX2ZlbmNlX3dvcmsgKmJhc2UpCiB7Ci0Jc3RydWN0IGNsZmx1c2ggKmNsZmx1c2ggPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9mKCpjbGZsdXNoKSwgd29yayk7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGNsZmx1c2gtPm9iajsKKwlzdHJ1Y3QgY2xmbHVzaCAqY2xmbHVzaCA9IGNvbnRhaW5lcl9vZihiYXNlLCB0eXBlb2YoKmNsZmx1c2gpLCBiYXNlKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gZmV0Y2hfYW5kX3plcm8oJmNsZmx1c2gtPm9iaik7CisJaW50IGVycjsKIAotCWlmIChpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaikpIHsKLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWNxdWlyZSBvYmotPnBhZ2VzIGZvciBjbGZsdXNoaW5nXG4iKTsKLQkJZ290byBvdXQ7Ci0JfQorCWVyciA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2JqKTsKKwlpZiAoZXJyKQorCQlnb3RvIHB1dDsKIAotCV9faTkxNV9kb19jbGZsdXNoKG9iaik7Ci0KKwlfX2RvX2NsZmx1c2gob2JqKTsKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKIAotb3V0OgorcHV0OgogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKLQotCWRtYV9mZW5jZV9zaWduYWwoJmNsZmx1c2gtPmRtYSk7Ci0JZG1hX2ZlbmNlX3B1dCgmY2xmbHVzaC0+ZG1hKTsKKwlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgaW50IF9faTkxNV9zd19mZW5jZV9jYWxsCi1pOTE1X2NsZmx1c2hfbm90aWZ5KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKLQkJICAgIGVudW0gaTkxNV9zd19mZW5jZV9ub3RpZnkgc3RhdGUpCitzdGF0aWMgdm9pZCBjbGZsdXNoX3JlbGVhc2Uoc3RydWN0IGRtYV9mZW5jZV93b3JrICpiYXNlKQogewotCXN0cnVjdCBjbGZsdXNoICpjbGZsdXNoID0gY29udGFpbmVyX29mKGZlbmNlLCB0eXBlb2YoKmNsZmx1c2gpLCB3YWl0KTsKKwlzdHJ1Y3QgY2xmbHVzaCAqY2xmbHVzaCA9IGNvbnRhaW5lcl9vZihiYXNlLCB0eXBlb2YoKmNsZmx1c2gpLCBiYXNlKTsKIAotCXN3aXRjaCAoc3RhdGUpIHsKLQljYXNlIEZFTkNFX0NPTVBMRVRFOgotCQlzY2hlZHVsZV93b3JrKCZjbGZsdXNoLT53b3JrKTsKLQkJYnJlYWs7CisJaWYgKGNsZmx1c2gtPm9iaikKKwkJaTkxNV9nZW1fb2JqZWN0X3B1dChjbGZsdXNoLT5vYmopOworfQogCi0JY2FzZSBGRU5DRV9GUkVFOgotCQlkbWFfZmVuY2VfcHV0KCZjbGZsdXNoLT5kbWEpOwotCQlicmVhazsKLQl9CitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV93b3JrX29wcyBjbGZsdXNoX29wcyA9IHsKKwkubmFtZSA9ICJjbGZsdXNoIiwKKwkud29yayA9IGNsZmx1c2hfd29yaywKKwkucmVsZWFzZSA9IGNsZmx1c2hfcmVsZWFzZSwKK307CiAKLQlyZXR1cm4gTk9USUZZX0RPTkU7CitzdGF0aWMgc3RydWN0IGNsZmx1c2ggKmNsZmx1c2hfd29ya19jcmVhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgY2xmbHVzaCAqY2xmbHVzaDsKKworCUdFTV9CVUdfT04oIW9iai0+Y2FjaGVfZGlydHkpOworCisJY2xmbHVzaCA9IGttYWxsb2Moc2l6ZW9mKCpjbGZsdXNoKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjbGZsdXNoKQorCQlyZXR1cm4gTlVMTDsKKworCWRtYV9mZW5jZV93b3JrX2luaXQoJmNsZmx1c2gtPmJhc2UsICZjbGZsdXNoX29wcyk7CisJY2xmbHVzaC0+b2JqID0gaTkxNV9nZW1fb2JqZWN0X2dldChvYmopOyAvKiBvYmogPC0+IGNsZmx1c2ggY3ljbGUgKi8KKworCXJldHVybiBjbGZsdXNoOwogfQogCiBib29sIGk5MTVfZ2VtX2NsZmx1c2hfb2JqZWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCkBAIC0xMjYsMzMgKzEwNiwxNiBAQCBib29sIGk5MTVfZ2VtX2NsZmx1c2hfb2JqZWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAKIAljbGZsdXNoID0gTlVMTDsKIAlpZiAoIShmbGFncyAmIEk5MTVfQ0xGTFVTSF9TWU5DKSkKLQkJY2xmbHVzaCA9IGttYWxsb2Moc2l6ZW9mKCpjbGZsdXNoKSwgR0ZQX0tFUk5FTCk7CisJCWNsZmx1c2ggPSBjbGZsdXNoX3dvcmtfY3JlYXRlKG9iaik7CiAJaWYgKGNsZmx1c2gpIHsKLQkJR0VNX0JVR19PTighb2JqLT5jYWNoZV9kaXJ0eSk7Ci0KLQkJZG1hX2ZlbmNlX2luaXQoJmNsZmx1c2gtPmRtYSwKLQkJCSAgICAgICAmaTkxNV9jbGZsdXNoX29wcywKLQkJCSAgICAgICAmY2xmbHVzaF9sb2NrLAotCQkJICAgICAgIHRvX2k5MTUob2JqLT5iYXNlLmRldiktPm1tLnVub3JkZXJlZF90aW1lbGluZSwKLQkJCSAgICAgICAwKTsKLQkJaTkxNV9zd19mZW5jZV9pbml0KCZjbGZsdXNoLT53YWl0LCBpOTE1X2NsZmx1c2hfbm90aWZ5KTsKLQotCQljbGZsdXNoLT5vYmogPSBpOTE1X2dlbV9vYmplY3RfZ2V0KG9iaik7Ci0JCUlOSVRfV09SSygmY2xmbHVzaC0+d29yaywgaTkxNV9jbGZsdXNoX3dvcmspOwotCi0JCWRtYV9mZW5jZV9nZXQoJmNsZmx1c2gtPmRtYSk7Ci0KLQkJaTkxNV9zd19mZW5jZV9hd2FpdF9yZXNlcnZhdGlvbigmY2xmbHVzaC0+d2FpdCwKLQkJCQkJCW9iai0+YmFzZS5yZXN2LCBOVUxMLAotCQkJCQkJdHJ1ZSwgSTkxNV9GRU5DRV9USU1FT1VULAorCQlpOTE1X3N3X2ZlbmNlX2F3YWl0X3Jlc2VydmF0aW9uKCZjbGZsdXNoLT5iYXNlLmNoYWluLAorCQkJCQkJb2JqLT5iYXNlLnJlc3YsIE5VTEwsIHRydWUsCisJCQkJCQlJOTE1X0ZFTkNFX1RJTUVPVVQsCiAJCQkJCQlJOTE1X0ZFTkNFX0dGUCk7Ci0KLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKG9iai0+YmFzZS5yZXN2LAotCQkJCQkJICAmY2xmbHVzaC0+ZG1hKTsKLQotCQlpOTE1X3N3X2ZlbmNlX2NvbW1pdCgmY2xmbHVzaC0+d2FpdCk7CisJCWRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKG9iai0+YmFzZS5yZXN2LCAmY2xmbHVzaC0+YmFzZS5kbWEpOworCQlkbWFfZmVuY2Vfd29ya19jb21taXQoJmNsZmx1c2gtPmJhc2UpOwogCX0gZWxzZSBpZiAob2JqLT5tbS5wYWdlcykgewotCQlfX2k5MTVfZG9fY2xmbHVzaChvYmopOworCQlfX2RvX2NsZmx1c2gob2JqKTsKIAl9IGVsc2UgewogCQlHRU1fQlVHX09OKG9iai0+d3JpdGVfZG9tYWluICE9IEk5MTVfR0VNX0RPTUFJTl9DUFUpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jbGllbnRfYmx0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY2xpZW50X2JsdC5jCmluZGV4IDFmZGFiMDcuLmY5OTkyMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jbGllbnRfYmx0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NsaWVudF9ibHQuYwpAQCAtMiwxMCArMiwxMyBAQAogLyoKICAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCiAgKi8KLSNpbmNsdWRlICJpOTE1X2dlbV9jbGllbnRfYmx0LmgiCiAKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImd0L2ludGVsX2NvbnRleHQuaCIKKyNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfcG0uaCIKKyNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfcG9vbC5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX2NsaWVudF9ibHQuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3RfYmx0LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAKIHN0cnVjdCBpOTE1X3NsZWV2ZSB7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CkBAIC03Miw3ICs3NSw2IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9zbGVldmUgKmNyZWF0ZV9zbGVldmUoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJdm1hLT5vcHMgPSAmcHJveHlfdm1hX29wczsKIAogCXNsZWV2ZS0+dm1hID0gdm1hOwotCXNsZWV2ZS0+b2JqID0gaTkxNV9nZW1fb2JqZWN0X2dldChvYmopOwogCXNsZWV2ZS0+cGFnZXMgPSBwYWdlczsKIAlzbGVldmUtPnBhZ2Vfc2l6ZXMgPSAqcGFnZV9zaXplczsKIApAQCAtODUsNyArODcsNiBAQCBzdGF0aWMgc3RydWN0IGk5MTVfc2xlZXZlICpjcmVhdGVfc2xlZXZlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiBzdGF0aWMgdm9pZCBkZXN0cm95X3NsZWV2ZShzdHJ1Y3QgaTkxNV9zbGVldmUgKnNsZWV2ZSkKIHsKLQlpOTE1X2dlbV9vYmplY3RfcHV0KHNsZWV2ZS0+b2JqKTsKIAlrZnJlZShzbGVldmUpOwogfQogCkBAIC0xNTQsMjEgKzE1NSwyMyBAQCBzdGF0aWMgdm9pZCBjbGVhcl9wYWdlc19kbWFfZmVuY2VfY2Ioc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCiBzdGF0aWMgdm9pZCBjbGVhcl9wYWdlc193b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBjbGVhcl9wYWdlc193b3JrICp3ID0gY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqdyksIHdvcmspOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdy0+Y2UtPmdlbV9jb250ZXh0LT5pOTE1OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB3LT5zbGVldmUtPm9iajsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHctPmNlLT5lbmdpbmUtPmk5MTU7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHctPnNsZWV2ZS0+dm1hLT5vYmo7CiAJc3RydWN0IGk5MTVfdm1hICp2bWEgPSB3LT5zbGVldmUtPnZtYTsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwlzdHJ1Y3QgaTkxNV92bWEgKmJhdGNoOwogCWludCBlcnIgPSB3LT5kbWEuZXJyb3I7CiAKIAlpZiAodW5saWtlbHkoZXJyKSkKIAkJZ290byBvdXRfc2lnbmFsOwogCiAJaWYgKG9iai0+Y2FjaGVfZGlydHkpIHsKLQkJb2JqLT53cml0ZV9kb21haW4gPSAwOwogCQlpZiAoaTkxNV9nZW1fb2JqZWN0X2hhc19zdHJ1Y3RfcGFnZShvYmopKQogCQkJZHJtX2NsZmx1c2hfc2cody0+c2xlZXZlLT5wYWdlcyk7CiAJCW9iai0+Y2FjaGVfZGlydHkgPSBmYWxzZTsKIAl9CisJb2JqLT5yZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9HUFVfRE9NQUlOUzsKKwlvYmotPndyaXRlX2RvbWFpbiA9IDA7CiAKIAkvKiBYWFg6IHdlIG5lZWQgdG8ga2lsbCB0aGlzICovCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CkBAIC0xNzYsMTAgKzE3OSwxNiBAQCBzdGF0aWMgdm9pZCBjbGVhcl9wYWdlc193b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWlmICh1bmxpa2VseShlcnIpKQogCQlnb3RvIG91dF91bmxvY2s7CiAKLQlycSA9IGk5MTVfcmVxdWVzdF9jcmVhdGUody0+Y2UpOworCWJhdGNoID0gaW50ZWxfZW1pdF92bWFfZmlsbF9ibHQody0+Y2UsIHZtYSwgdy0+dmFsdWUpOworCWlmIChJU19FUlIoYmF0Y2gpKSB7CisJCWVyciA9IFBUUl9FUlIoYmF0Y2gpOworCQlnb3RvIG91dF91bnBpbjsKKwl9CisKKwlycSA9IGludGVsX2NvbnRleHRfY3JlYXRlX3JlcXVlc3Qody0+Y2UpOwogCWlmIChJU19FUlIocnEpKSB7CiAJCWVyciA9IFBUUl9FUlIocnEpOwotCQlnb3RvIG91dF91bnBpbjsKKwkJZ290byBvdXRfYmF0Y2g7CiAJfQogCiAJLyogVGhlcmUncyBubyB3YXkgdGhlIGZlbmNlIGhhcyBzaWduYWxsZWQgKi8KQEAgLTE4NywyMCArMTk2LDI4IEBAIHN0YXRpYyB2b2lkIGNsZWFyX3BhZ2VzX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQkJICAgY2xlYXJfcGFnZXNfZG1hX2ZlbmNlX2NiKSkKIAkJR0VNX0JVR19PTigxKTsKIAorCWVyciA9IGludGVsX2VtaXRfdm1hX21hcmtfYWN0aXZlKGJhdGNoLCBycSk7CisJaWYgKHVubGlrZWx5KGVycikpCisJCWdvdG8gb3V0X3JlcXVlc3Q7CisKIAlpZiAody0+Y2UtPmVuZ2luZS0+ZW1pdF9pbml0X2JyZWFkY3J1bWIpIHsKIAkJZXJyID0gdy0+Y2UtPmVuZ2luZS0+ZW1pdF9pbml0X2JyZWFkY3J1bWIocnEpOwogCQlpZiAodW5saWtlbHkoZXJyKSkKIAkJCWdvdG8gb3V0X3JlcXVlc3Q7CiAJfQogCi0JLyogWFhYOiBtb3JlIGZldmVyaXNoIG5pZ2h0bWFyZXMgYXdhaXQgKi8KLQlpOTE1X3ZtYV9sb2NrKHZtYSk7Ci0JZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCBycSwgRVhFQ19PQkpFQ1RfV1JJVEUpOwotCWk5MTVfdm1hX3VubG9jayh2bWEpOworCS8qCisJICogdy0+ZG1hIGlzIGFscmVhZHkgZXhwb3J0ZWQgdmlhICh2bWF8b2JqKS0+cmVzdiB3ZSBuZWVkIG9ubHkKKwkgKiBrZWVwIHRyYWNrIG9mIHRoZSBHUFUgYWN0aXZpdHkgd2l0aGluIHRoaXMgdm1hL3JlcXVlc3QsIGFuZAorCSAqIHByb3BhZ2F0ZSB0aGUgc2lnbmFsIGZyb20gdGhlIHJlcXVlc3QgdG8gdy0+ZG1hLgorCSAqLworCWVyciA9IGk5MTVfYWN0aXZlX3JlZigmdm1hLT5hY3RpdmUsIHJxLT50aW1lbGluZSwgcnEpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3JlcXVlc3Q7CiAKLQllcnIgPSBpbnRlbF9lbWl0X3ZtYV9maWxsX2JsdChycSwgdm1hLCB3LT52YWx1ZSk7CisJZXJyID0gdy0+Y2UtPmVuZ2luZS0+ZW1pdF9iYl9zdGFydChycSwKKwkJCQkJICAgYmF0Y2gtPm5vZGUuc3RhcnQsIGJhdGNoLT5ub2RlLnNpemUsCisJCQkJCSAgIDApOwogb3V0X3JlcXVlc3Q6CiAJaWYgKHVubGlrZWx5KGVycikpIHsKIAkJaTkxNV9yZXF1ZXN0X3NraXAocnEsIGVycik7CkBAIC0yMDgsNiArMjI1LDggQEAgc3RhdGljIHZvaWQgY2xlYXJfcGFnZXNfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAl9CiAKIAlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKK291dF9iYXRjaDoKKwlpbnRlbF9lbWl0X3ZtYV9yZWxlYXNlKHctPmNlLCBiYXRjaCk7CiBvdXRfdW5waW46CiAJaTkxNV92bWFfdW5waW4odm1hKTsKIG91dF91bmxvY2s6CkBAIC0yNDgsMTQgKzI2NywxMSBAQCBpbnQgaTkxNV9nZW1fc2NoZWR1bGVfZmlsbF9wYWdlc19ibHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkgICAgIHN0cnVjdCBpOTE1X3BhZ2Vfc2l6ZXMgKnBhZ2Vfc2l6ZXMsCiAJCQkJICAgICB1MzIgdmFsdWUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwotCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHggPSBjZS0+Z2VtX2NvbnRleHQ7Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPSBjdHgtPnZtID86ICZpOTE1LT5nZ3R0LnZtOwogCXN0cnVjdCBjbGVhcl9wYWdlc193b3JrICp3b3JrOwogCXN0cnVjdCBpOTE1X3NsZWV2ZSAqc2xlZXZlOwogCWludCBlcnI7CiAKLQlzbGVldmUgPSBjcmVhdGVfc2xlZXZlKHZtLCBvYmosIHBhZ2VzLCBwYWdlX3NpemVzKTsKKwlzbGVldmUgPSBjcmVhdGVfc2xlZXZlKGNlLT52bSwgb2JqLCBwYWdlcywgcGFnZV9zaXplcyk7CiAJaWYgKElTX0VSUihzbGVldmUpKQogCQlyZXR1cm4gUFRSX0VSUihzbGVldmUpOwogCkBAIC0yNzMsMTEgKzI4OSw3IEBAIGludCBpOTE1X2dlbV9zY2hlZHVsZV9maWxsX3BhZ2VzX2JsdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiAJaW5pdF9pcnFfd29yaygmd29yay0+aXJxX3dvcmssIGNsZWFyX3BhZ2VzX3NpZ25hbF9pcnFfd29ya2VyKTsKIAotCWRtYV9mZW5jZV9pbml0KCZ3b3JrLT5kbWEsCi0JCSAgICAgICAmY2xlYXJfcGFnZXNfd29ya19vcHMsCi0JCSAgICAgICAmZmVuY2VfbG9jaywKLQkJICAgICAgIGk5MTUtPm1tLnVub3JkZXJlZF90aW1lbGluZSwKLQkJICAgICAgIDApOworCWRtYV9mZW5jZV9pbml0KCZ3b3JrLT5kbWEsICZjbGVhcl9wYWdlc193b3JrX29wcywgJmZlbmNlX2xvY2ssIDAsIDApOwogCWk5MTVfc3dfZmVuY2VfaW5pdCgmd29yay0+d2FpdCwgY2xlYXJfcGFnZXNfd29ya19ub3RpZnkpOwogCiAJaTkxNV9nZW1fb2JqZWN0X2xvY2sob2JqKTsKQEAgLTI4OCw3ICszMDAsNyBAQCBpbnQgaTkxNV9nZW1fc2NoZWR1bGVfZmlsbF9wYWdlc19ibHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlpZiAoZXJyIDwgMCkgewogCQlkbWFfZmVuY2Vfc2V0X2Vycm9yKCZ3b3JrLT5kbWEsIGVycik7CiAJfSBlbHNlIHsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKG9iai0+YmFzZS5yZXN2LCAmd29yay0+ZG1hKTsKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2Uob2JqLT5iYXNlLnJlc3YsICZ3b3JrLT5kbWEpOwogCQllcnIgPSAwOwogCX0KIAlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCAwZjJjMjJhLi4xY2RmZTA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTcwLDYgKzcwLDcgQEAKICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KIAogI2luY2x1ZGUgImd0L2ludGVsX2xyY19yZWcuaCIKKyNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfdXNlci5oIgogCiAjaW5jbHVkZSAiaTkxNV9nZW1fY29udGV4dC5oIgogI2luY2x1ZGUgImk5MTVfZ2xvYmFscy5oIgpAQCAtMTU4LDcgKzE1OSw3IEBAIGxvb2t1cF91c2VyX2VuZ2luZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQlpZiAoIWVuZ2luZSkKIAkJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCi0JCWlkeCA9IGVuZ2luZS0+aWQ7CisJCWlkeCA9IGVuZ2luZS0+bGVnYWN5X2lkeDsKIAl9IGVsc2UgewogCQlpZHggPSBjaS0+ZW5naW5lX2luc3RhbmNlOwogCX0KQEAgLTE3Miw3ICsxNzMsOSBAQCBzdGF0aWMgaW5saW5lIGludCBuZXdfaHdfaWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGdmcF90IGdmcCkKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmNvbnRleHRzLm11dGV4KTsKIAotCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpCisJaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMikKKwkJbWF4ID0gR0VOMTJfTUFYX0NPTlRFWFRfSFdfSUQ7CisJZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUpID49IDExKQogCQltYXggPSBHRU4xMV9NQVhfQ09OVEVYVF9IV19JRDsKIAllbHNlIGlmIChVU0VTX0dVQ19TVUJNSVNTSU9OKGk5MTUpKQogCQkvKgpAQCAtMjc4LDYgKzI4MSw3IEBAIHN0YXRpYyB2b2lkIGZyZWVfZW5naW5lc19yY3Uoc3RydWN0IHJjdV9oZWFkICpyY3UpCiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9nZW1fZW5naW5lcyAqZGVmYXVsdF9lbmdpbmVzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCiB7CisJY29uc3Qgc3RydWN0IGludGVsX2d0ICpndCA9ICZjdHgtPmk5MTUtPmd0OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlzdHJ1Y3QgaTkxNV9nZW1fZW5naW5lcyAqZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKQEAgLTI4Nyw3ICsyOTEsNyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXMgKmRlZmF1bHRfZW5naW5lcyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCWluaXRfcmN1X2hlYWQoJmUtPnJjdSk7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgY3R4LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAKIAkJY2UgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZShjdHgsIGVuZ2luZSk7CkBAIC0yOTcsOCArMzAxLDggQEAgc3RhdGljIHN0cnVjdCBpOTE1X2dlbV9lbmdpbmVzICpkZWZhdWx0X2VuZ2luZXMoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIAkJfQogCiAJCWUtPmVuZ2luZXNbaWRdID0gY2U7CisJCWUtPm51bV9lbmdpbmVzID0gaWQgKyAxOwogCX0KLQllLT5udW1fZW5naW5lcyA9IGlkOwogCiAJcmV0dXJuIGU7CiB9CkBAIC0zMTYsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fY29udGV4dF9mcmVlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCiAJbXV0ZXhfZGVzdHJveSgmY3R4LT5lbmdpbmVzX211dGV4KTsKIAogCWlmIChjdHgtPnRpbWVsaW5lKQotCQlpOTE1X3RpbWVsaW5lX3B1dChjdHgtPnRpbWVsaW5lKTsKKwkJaW50ZWxfdGltZWxpbmVfcHV0KGN0eC0+dGltZWxpbmUpOwogCiAJa2ZyZWUoY3R4LT5uYW1lKTsKIAlwdXRfcGlkKGN0eC0+cGlkKTsKQEAgLTM5NywzMCArNDAxLDYgQEAgc3RhdGljIHZvaWQgY29udGV4dF9jbG9zZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQogCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGN0eCk7CiB9CiAKLXN0YXRpYyB1MzIgZGVmYXVsdF9kZXNjX3RlbXBsYXRlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkJCSBjb25zdCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKLXsKLQl1MzIgYWRkcmVzc19tb2RlOwotCXUzMiBkZXNjOwotCi0JZGVzYyA9IEdFTjhfQ1RYX1ZBTElEIHwgR0VOOF9DVFhfUFJJVklMRUdFOwotCi0JYWRkcmVzc19tb2RlID0gSU5URUxfTEVHQUNZXzMyQl9DT05URVhUOwotCWlmICh2bSAmJiBpOTE1X3ZtX2lzXzRsdmwodm0pKQotCQlhZGRyZXNzX21vZGUgPSBJTlRFTF9MRUdBQ1lfNjRCX0NPTlRFWFQ7Ci0JZGVzYyB8PSBhZGRyZXNzX21vZGUgPDwgR0VOOF9DVFhfQUREUkVTU0lOR19NT0RFX1NISUZUOwotCi0JaWYgKElTX0dFTihpOTE1LCA4KSkKLQkJZGVzYyB8PSBHRU44X0NUWF9MM0xMQ19DT0hFUkVOVDsKLQotCS8qIFRPRE86IFdhRGlzYWJsZUxpdGVSZXN0b3JlIHdoZW4gd2Ugc3RhcnQgdXNpbmcgc2VtYXBob3JlCi0JICogc2lnbmFsbGluZyBiZXR3ZWVuIENvbW1hbmQgU3RyZWFtZXJzCi0JICogcmluZy0+Y3R4X2Rlc2NfdGVtcGxhdGUgfD0gR0VOOF9DVFhfRk9SQ0VfUkVTVE9SRTsKLQkgKi8KLQotCXJldHVybiBkZXNjOwotfQotCiBzdGF0aWMgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKgogX19jcmVhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKQEAgLTQ1OCwxMCArNDM4LDYgQEAgX19jcmVhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpOTE1X2dlbV9jb250ZXh0X3NldF9iYW5uYWJsZShjdHgpOwogCWk5MTVfZ2VtX2NvbnRleHRfc2V0X3JlY292ZXJhYmxlKGN0eCk7CiAKLQljdHgtPnJpbmdfc2l6ZSA9IDQgKiBQQUdFX1NJWkU7Ci0JY3R4LT5kZXNjX3RlbXBsYXRlID0KLQkJZGVmYXVsdF9kZXNjX3RlbXBsYXRlKGk5MTUsICZpOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm0pOwotCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3R4LT5oYW5nX3RpbWVzdGFtcCk7IGkrKykKIAkJY3R4LT5oYW5nX3RpbWVzdGFtcFtpXSA9IGppZmZpZXMgLSBDT05URVhUX0ZBU1RfSEFOR19KSUZGSUVTOwogCkBAIC00NzIsMTMgKzQ0OCwzNCBAQCBfX2NyZWF0ZV9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCXJldHVybiBFUlJfUFRSKGVycik7CiB9CiAKK3N0YXRpYyB2b2lkCitjb250ZXh0X2FwcGx5X2FsbChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAorCQkgIHZvaWQgKCpmbikoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCB2b2lkICpkYXRhKSwKKwkJICB2b2lkICpkYXRhKQoreworCXN0cnVjdCBpOTE1X2dlbV9lbmdpbmVzX2l0ZXIgaXQ7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOworCisJZm9yX2VhY2hfZ2VtX2VuZ2luZShjZSwgaTkxNV9nZW1fY29udGV4dF9sb2NrX2VuZ2luZXMoY3R4KSwgaXQpCisJCWZuKGNlLCBkYXRhKTsKKwlpOTE1X2dlbV9jb250ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7Cit9CisKK3N0YXRpYyB2b2lkIF9fYXBwbHlfcHBndHQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCB2b2lkICp2bSkKK3sKKwlpOTE1X3ZtX3B1dChjZS0+dm0pOworCWNlLT52bSA9IGk5MTVfdm1fZ2V0KHZtKTsKK30KKwogc3RhdGljIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKgogX19zZXRfcHBndHQoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCiB7CiAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqb2xkID0gY3R4LT52bTsKIAorCUdFTV9CVUdfT04ob2xkICYmIGk5MTVfdm1faXNfNGx2bCh2bSkgIT0gaTkxNV92bV9pc180bHZsKG9sZCkpOworCiAJY3R4LT52bSA9IGk5MTVfdm1fZ2V0KHZtKTsKLQljdHgtPmRlc2NfdGVtcGxhdGUgPSBkZWZhdWx0X2Rlc2NfdGVtcGxhdGUoY3R4LT5pOTE1LCB2bSk7CisJY29udGV4dF9hcHBseV9hbGwoY3R4LCBfX2FwcGx5X3BwZ3R0LCB2bSk7CiAKIAlyZXR1cm4gb2xkOwogfQpAQCAtNDk0LDYgKzQ5MSwyOSBAQCBzdGF0aWMgdm9pZCBfX2Fzc2lnbl9wcGd0dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQlpOTE1X3ZtX3B1dCh2bSk7CiB9CiAKK3N0YXRpYyB2b2lkIF9fc2V0X3RpbWVsaW5lKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqKmRzdCwKKwkJCSAgIHN0cnVjdCBpbnRlbF90aW1lbGluZSAqc3JjKQoreworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqb2xkID0gKmRzdDsKKworCSpkc3QgPSBzcmMgPyBpbnRlbF90aW1lbGluZV9nZXQoc3JjKSA6IE5VTEw7CisKKwlpZiAob2xkKQorCQlpbnRlbF90aW1lbGluZV9wdXQob2xkKTsKK30KKworc3RhdGljIHZvaWQgX19hcHBseV90aW1lbGluZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHZvaWQgKnRpbWVsaW5lKQoreworCV9fc2V0X3RpbWVsaW5lKCZjZS0+dGltZWxpbmUsIHRpbWVsaW5lKTsKK30KKworc3RhdGljIHZvaWQgX19hc3NpZ25fdGltZWxpbmUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJCSAgICAgIHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmUpCit7CisJX19zZXRfdGltZWxpbmUoJmN0eC0+dGltZWxpbmUsIHRpbWVsaW5lKTsKKwljb250ZXh0X2FwcGx5X2FsbChjdHgsIF9fYXBwbHlfdGltZWxpbmUsIHRpbWVsaW5lKTsKK30KKwogc3RhdGljIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICoKIGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdW5zaWduZWQgaW50IGZsYWdzKQogewpAQCAtNTI4LDE1ICs1NDgsMTYgQEAgaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJfQogCiAJaWYgKGZsYWdzICYgSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19TSU5HTEVfVElNRUxJTkUpIHsKLQkJc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lOworCQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lOwogCi0JCXRpbWVsaW5lID0gaTkxNV90aW1lbGluZV9jcmVhdGUoZGV2X3ByaXYsIE5VTEwpOworCQl0aW1lbGluZSA9IGludGVsX3RpbWVsaW5lX2NyZWF0ZSgmZGV2X3ByaXYtPmd0LCBOVUxMKTsKIAkJaWYgKElTX0VSUih0aW1lbGluZSkpIHsKIAkJCWNvbnRleHRfY2xvc2UoY3R4KTsKIAkJCXJldHVybiBFUlJfQ0FTVCh0aW1lbGluZSk7CiAJCX0KIAotCQljdHgtPnRpbWVsaW5lID0gdGltZWxpbmU7CisJCV9fYXNzaWduX3RpbWVsaW5lKGN0eCwgdGltZWxpbmUpOworCQlpbnRlbF90aW1lbGluZV9wdXQodGltZWxpbmUpOwogCX0KIAogCXRyYWNlX2k5MTVfY29udGV4dF9jcmVhdGUoY3R4KTsKQEAgLTU0NCw1MyArNTY1LDYgQEAgaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJcmV0dXJuIGN0eDsKIH0KIAotLyoqCi0gKiBpOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9ndnQgLSBjcmVhdGUgYSBHVlQgR0VNIGNvbnRleHQKLSAqIEBkZXY6IGRybSBkZXZpY2UgKgotICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgYSBHVlQgc3BlY2lmaWMgR0VNIGNvbnRleHQuCi0gKgotICogUmV0dXJuczoKLSAqIHBvaW50ZXIgdG8gaTkxNV9nZW1fY29udGV4dCBvbiBzdWNjZXNzLCBlcnJvciBwb2ludGVyIGlmIGZhaWxlZAotICoKLSAqLwotc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKgotaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfZ3Z0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKLQlpbnQgcmV0OwotCi0JaWYgKCFJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9HVlQpKQotCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKLQotCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKLQotCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHRvX2k5MTUoZGV2KSwgMCk7Ci0JaWYgKElTX0VSUihjdHgpKQotCQlnb3RvIG91dDsKLQotCXJldCA9IGk5MTVfZ2VtX2NvbnRleHRfcGluX2h3X2lkKGN0eCk7Ci0JaWYgKHJldCkgewotCQljb250ZXh0X2Nsb3NlKGN0eCk7Ci0JCWN0eCA9IEVSUl9QVFIocmV0KTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JY3R4LT5maWxlX3ByaXYgPSBFUlJfUFRSKC1FQkFERik7Ci0JaTkxNV9nZW1fY29udGV4dF9zZXRfY2xvc2VkKGN0eCk7IC8qIG5vdCB1c2VyIGFjY2Vzc2libGUgKi8KLQlpOTE1X2dlbV9jb250ZXh0X2NsZWFyX2Jhbm5hYmxlKGN0eCk7Ci0JaTkxNV9nZW1fY29udGV4dF9zZXRfZm9yY2Vfc2luZ2xlX3N1Ym1pc3Npb24oY3R4KTsKLQlpZiAoIVVTRVNfR1VDX1NVQk1JU1NJT04odG9faTkxNShkZXYpKSkKLQkJY3R4LT5yaW5nX3NpemUgPSA1MTIgKiBQQUdFX1NJWkU7IC8qIE1heCByaW5nIGJ1ZmZlciBzaXplICovCi0KLQlHRU1fQlVHX09OKGk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVsKGN0eCkpOwotb3V0OgotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCXJldHVybiBjdHg7Ci19Ci0KIHN0YXRpYyB2b2lkCiBkZXN0cm95X2tlcm5lbF9jb250ZXh0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICoqY3R4cCkKIHsKQEAgLTYyMiw3ICs1OTYsNiBAQCBpOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9rZXJuZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCBwcmlvKQogCiAJaTkxNV9nZW1fY29udGV4dF9jbGVhcl9iYW5uYWJsZShjdHgpOwogCWN0eC0+c2NoZWQucHJpb3JpdHkgPSBJOTE1X1VTRVJfUFJJT1JJVFkocHJpbyk7Ci0JY3R4LT5yaW5nX3NpemUgPSBQQUdFX1NJWkU7CiAKIAlHRU1fQlVHX09OKCFpOTE1X2dlbV9jb250ZXh0X2lzX2tlcm5lbChjdHgpKTsKIApAQCAtNjQ0LDIwICs2MTcsMTMgQEAgc3RhdGljIHZvaWQgaW5pdF9jb250ZXh0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpbml0X2xsaXN0X2hlYWQoJmk5MTUtPmNvbnRleHRzLmZyZWVfbGlzdCk7CiB9CiAKLXN0YXRpYyBib29sIG5lZWRzX3ByZWVtcHRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlyZXR1cm4gSEFTX0VYRUNMSVNUUyhpOTE1KTsKLX0KLQogaW50IGk5MTVfZ2VtX2NvbnRleHRzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAKIAkvKiBSZWFzc3VyZSBvdXJzZWx2ZXMgd2UgYXJlIG9ubHkgY2FsbGVkIG9uY2UgKi8KIAlHRU1fQlVHX09OKGRldl9wcml2LT5rZXJuZWxfY29udGV4dCk7Ci0JR0VNX0JVR19PTihkZXZfcHJpdi0+cHJlZW1wdF9jb250ZXh0KTsKIAotCWludGVsX2VuZ2luZV9pbml0X2N0eF93YShkZXZfcHJpdi0+ZW5naW5lW1JDUzBdKTsKIAlpbml0X2NvbnRleHRzKGRldl9wcml2KTsKIAogCS8qIGxvd2VzdCBwcmlvcml0eTsgaWRsZSB0YXNrICovCkBAIC02NzcsMTUgKzY0Myw2IEBAIGludCBpOTE1X2dlbV9jb250ZXh0c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlHRU1fQlVHX09OKCFhdG9taWNfcmVhZCgmY3R4LT5od19pZF9waW5fY291bnQpKTsKIAlkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQgPSBjdHg7CiAKLQkvKiBoaWdoZXN0IHByaW9yaXR5OyBwcmVlbXB0aW5nIHRhc2sgKi8KLQlpZiAobmVlZHNfcHJlZW1wdF9jb250ZXh0KGRldl9wcml2KSkgewotCQljdHggPSBpOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9rZXJuZWwoZGV2X3ByaXYsIElOVF9NQVgpOwotCQlpZiAoIUlTX0VSUihjdHgpKQotCQkJZGV2X3ByaXYtPnByZWVtcHRfY29udGV4dCA9IGN0eDsKLQkJZWxzZQotCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHByZWVtcHQgY29udGV4dDsgZGlzYWJsaW5nIHByZWVtcHRpb25cbiIpOwotCX0KLQogCURSTV9ERUJVR19EUklWRVIoIiVzIGNvbnRleHQgc3VwcG9ydCBpbml0aWFsaXplZFxuIiwKIAkJCSBEUklWRVJfQ0FQUyhkZXZfcHJpdiktPmhhc19sb2dpY2FsX2NvbnRleHRzID8KIAkJCSAibG9naWNhbCIgOiAiZmFrZSIpOwpAQCAtNjk2LDggKzY1Myw2IEBAIHZvaWQgaTkxNV9nZW1fY29udGV4dHNfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCWlmIChpOTE1LT5wcmVlbXB0X2NvbnRleHQpCi0JCWRlc3Ryb3lfa2VybmVsX2NvbnRleHQoJmk5MTUtPnByZWVtcHRfY29udGV4dCk7CiAJZGVzdHJveV9rZXJuZWxfY29udGV4dCgmaTkxNS0+a2VybmVsX2NvbnRleHQpOwogCiAJLyogTXVzdCBmcmVlIGFsbCBkZWZlcnJlZCBjb250ZXh0cyAodmlhIGZsdXNoX3dvcmtxdWV1ZSkgZmlyc3QgKi8KQEAgLTkyMyw4ICs4NzgsMTIgQEAgc3RhdGljIGludCBjb250ZXh0X2JhcnJpZXJfdGFzayhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCWlmICghY2IpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JaTkxNV9hY3RpdmVfaW5pdChpOTE1LCAmY2ItPmJhc2UsIGNiX3JldGlyZSk7Ci0JaTkxNV9hY3RpdmVfYWNxdWlyZSgmY2ItPmJhc2UpOworCWk5MTVfYWN0aXZlX2luaXQoaTkxNSwgJmNiLT5iYXNlLCBOVUxMLCBjYl9yZXRpcmUpOworCWVyciA9IGk5MTVfYWN0aXZlX2FjcXVpcmUoJmNiLT5iYXNlKTsKKwlpZiAoZXJyKSB7CisJCWtmcmVlKGNiKTsKKwkJcmV0dXJuIGVycjsKKwl9CiAKIAlmb3JfZWFjaF9nZW1fZW5naW5lKGNlLCBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhjdHgpLCBpdCkgewogCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKQEAgLTk1MSw3ICs5MTAsNyBAQCBzdGF0aWMgaW50IGNvbnRleHRfYmFycmllcl90YXNrKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCWlmIChlbWl0KQogCQkJZXJyID0gZW1pdChycSwgZGF0YSk7CiAJCWlmIChlcnIgPT0gMCkKLQkJCWVyciA9IGk5MTVfYWN0aXZlX3JlZigmY2ItPmJhc2UsIHJxLT5mZW5jZS5jb250ZXh0LCBycSk7CisJCQllcnIgPSBpOTE1X2FjdGl2ZV9yZWYoJmNiLT5iYXNlLCBycS0+dGltZWxpbmUsIHJxKTsKIAogCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKIAkJaWYgKGVycikKQEAgLTEwMTksNyArOTc4LDcgQEAgc3RhdGljIHZvaWQgc2V0X3BwZ3R0X2JhcnJpZXIodm9pZCAqZGF0YSkKIAogc3RhdGljIGludCBlbWl0X3BwZ3R0X3VwZGF0ZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdm9pZCAqZGF0YSkKIHsKLQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9IHJxLT5nZW1fY29udGV4dC0+dm07CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPSBycS0+aHdfY29udGV4dC0+dm07CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcnEtPmVuZ2luZTsKIAl1MzIgYmFzZSA9IGVuZ2luZS0+bW1pb19iYXNlOwogCXUzMiAqY3M7CkBAIC0xMTI4LDkgKzEwODcsOCBAQCBzdGF0aWMgaW50IHNldF9wcGd0dChzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYsCiAJCQkJICAgc2V0X3BwZ3R0X2JhcnJpZXIsCiAJCQkJICAgb2xkKTsKIAlpZiAoZXJyKSB7Ci0JCWN0eC0+dm0gPSBvbGQ7Ci0JCWN0eC0+ZGVzY190ZW1wbGF0ZSA9IGRlZmF1bHRfZGVzY190ZW1wbGF0ZShjdHgtPmk5MTUsIG9sZCk7Ci0JCWk5MTVfdm1fcHV0KHZtKTsKKwkJaTkxNV92bV9wdXQoX19zZXRfcHBndHQoY3R4LCBvbGQpKTsKKwkJaTkxNV92bV9wdXQob2xkKTsKIAl9CiAKIHVubG9jazoKQEAgLTExODcsMjYgKzExNDUsMTEgQEAgZ2VuOF9tb2RpZnlfcnBjcyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHN0cnVjdCBpbnRlbF9zc2V1IHNzZXUpCiAJaWYgKElTX0VSUihycSkpCiAJCXJldHVybiBQVFJfRVJSKHJxKTsKIAotCS8qIFF1ZXVlIHRoaXMgc3dpdGNoIGFmdGVyIGFsbCBvdGhlciBhY3Rpdml0eSBieSB0aGlzIGNvbnRleHQuICovCi0JcmV0ID0gaTkxNV9hY3RpdmVfcmVxdWVzdF9zZXQoJmNlLT5yaW5nLT50aW1lbGluZS0+bGFzdF9yZXF1ZXN0LCBycSk7Ci0JaWYgKHJldCkKLQkJZ290byBvdXRfYWRkOworCS8qIFNlcmlhbGlzZSB3aXRoIHRoZSByZW1vdGUgY29udGV4dCAqLworCXJldCA9IGludGVsX2NvbnRleHRfcHJlcGFyZV9yZW1vdGVfcmVxdWVzdChjZSwgcnEpOworCWlmIChyZXQgPT0gMCkKKwkJcmV0ID0gZ2VuOF9lbWl0X3JwY3NfY29uZmlnKHJxLCBjZSwgc3NldSk7CiAKLQkvKgotCSAqIEd1YXJhbnRlZSBjb250ZXh0IGltYWdlIGFuZCB0aGUgdGltZWxpbmUgcmVtYWlucyBwaW5uZWQgdW50aWwgdGhlCi0JICogbW9kaWZ5aW5nIHJlcXVlc3QgaXMgcmV0aXJlZCBieSBzZXR0aW5nIHRoZSBjZSBhY3Rpdml0eSB0cmFja2VyLgotCSAqCi0JICogQnV0IHdlIG9ubHkgbmVlZCB0byB0YWtlIG9uZSBwaW4gb24gdGhlIGFjY291bnQgb2YgaXQuIE9yIGluIG90aGVyCi0JICogd29yZHMgdHJhbnNmZXIgdGhlIHBpbm5lZCBjZSBvYmplY3QgdG8gdHJhY2tlZCBhY3RpdmUgcmVxdWVzdC4KLQkgKi8KLQlHRU1fQlVHX09OKGk5MTVfYWN0aXZlX2lzX2lkbGUoJmNlLT5hY3RpdmUpKTsKLQlyZXQgPSBpOTE1X2FjdGl2ZV9yZWYoJmNlLT5hY3RpdmUsIHJxLT5mZW5jZS5jb250ZXh0LCBycSk7Ci0JaWYgKHJldCkKLQkJZ290byBvdXRfYWRkOwotCi0JcmV0ID0gZ2VuOF9lbWl0X3JwY3NfY29uZmlnKHJxLCBjZSwgc3NldSk7Ci0KLW91dF9hZGQ6CiAJaTkxNV9yZXF1ZXN0X2FkZChycSk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTEyMTcsNyArMTE2MCw3IEBAIF9faW50ZWxfY29udGV4dF9yZWNvbmZpZ3VyZV9zc2V1KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIHsKIAlpbnQgcmV0OwogCi0JR0VNX0JVR19PTihJTlRFTF9HRU4oY2UtPmdlbV9jb250ZXh0LT5pOTE1KSA8IDgpOworCUdFTV9CVUdfT04oSU5URUxfR0VOKGNlLT5lbmdpbmUtPmk5MTUpIDwgOCk7CiAKIAlyZXQgPSBpbnRlbF9jb250ZXh0X2xvY2tfcGlubmVkKGNlKTsKIAlpZiAocmV0KQpAQCAtMTIzOSw3ICsxMTgyLDcgQEAgX19pbnRlbF9jb250ZXh0X3JlY29uZmlndXJlX3NzZXUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogc3RhdGljIGludAogaW50ZWxfY29udGV4dF9yZWNvbmZpZ3VyZV9zc2V1KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgc3RydWN0IGludGVsX3NzZXUgc3NldSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGNlLT5nZW1fY29udGV4dC0+aTkxNTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGNlLT5lbmdpbmUtPmk5MTU7CiAJaW50IHJldDsKIAogCXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CkBAIC0xNjM2LDYgKzE1NzksNyBAQCBzZXRfZW5naW5lcyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCWZvciAobiA9IDA7IG4gPCBudW1fZW5naW5lczsgbisrKSB7CiAJCXN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBjaTsKIAkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZjaSwgJnVzZXItPmVuZ2luZXNbbl0sIHNpemVvZihjaSkpKSB7CiAJCQlfX2ZyZWVfZW5naW5lcyhzZXQuZW5naW5lcywgbik7CkBAIC0xNjU4LDExICsxNjAyLDEzIEBAIHNldF9lbmdpbmVzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCQlyZXR1cm4gLUVOT0VOVDsKIAkJfQogCi0JCXNldC5lbmdpbmVzLT5lbmdpbmVzW25dID0gaW50ZWxfY29udGV4dF9jcmVhdGUoY3R4LCBlbmdpbmUpOwotCQlpZiAoIXNldC5lbmdpbmVzLT5lbmdpbmVzW25dKSB7CisJCWNlID0gaW50ZWxfY29udGV4dF9jcmVhdGUoY3R4LCBlbmdpbmUpOworCQlpZiAoSVNfRVJSKGNlKSkgewogCQkJX19mcmVlX2VuZ2luZXMoc2V0LmVuZ2luZXMsIG4pOwotCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyZXR1cm4gUFRSX0VSUihjZSk7CiAJCX0KKworCQlzZXQuZW5naW5lcy0+ZW5naW5lc1tuXSA9IGNlOwogCX0KIAlzZXQuZW5naW5lcy0+bnVtX2VuZ2luZXMgPSBudW1fZW5naW5lczsKIApAQCAtMTc3Niw3ICsxNzIyLDcgQEAgZ2V0X2VuZ2luZXMoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAogCQlpZiAoZS0+ZW5naW5lc1tuXSkgewogCQkJY2kuZW5naW5lX2NsYXNzID0gZS0+ZW5naW5lc1tuXS0+ZW5naW5lLT51YWJpX2NsYXNzOwotCQkJY2kuZW5naW5lX2luc3RhbmNlID0gZS0+ZW5naW5lc1tuXS0+ZW5naW5lLT5pbnN0YW5jZTsKKwkJCWNpLmVuZ2luZV9pbnN0YW5jZSA9IGUtPmVuZ2luZXNbbl0tPmVuZ2luZS0+dWFiaV9pbnN0YW5jZTsKIAkJfQogCiAJCWlmIChjb3B5X3RvX3VzZXIoJnVzZXItPmVuZ2luZXNbbl0sICZjaSwgc2l6ZW9mKGNpKSkpIHsKQEAgLTIwMTEsMTMgKzE5NTcsOCBAQCBzdGF0aWMgaW50IGNsb25lX3NzZXUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmRzdCwKIHN0YXRpYyBpbnQgY2xvbmVfdGltZWxpbmUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmRzdCwKIAkJCSAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKnNyYykKIHsKLQlpZiAoc3JjLT50aW1lbGluZSkgewotCQlHRU1fQlVHX09OKHNyYy0+dGltZWxpbmUgPT0gZHN0LT50aW1lbGluZSk7Ci0KLQkJaWYgKGRzdC0+dGltZWxpbmUpCi0JCQlpOTE1X3RpbWVsaW5lX3B1dChkc3QtPnRpbWVsaW5lKTsKLQkJZHN0LT50aW1lbGluZSA9IGk5MTVfdGltZWxpbmVfZ2V0KHNyYy0+dGltZWxpbmUpOwotCX0KKwlpZiAoc3JjLT50aW1lbGluZSkKKwkJX19hc3NpZ25fdGltZWxpbmUoZHN0LCBzcmMtPnRpbWVsaW5lKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjE0MSw3ICsyMDgyLDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19VTktOT1dOKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXJldCA9IGk5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNSk7CisJcmV0ID0gaW50ZWxfZ3RfdGVybWluYWxseV93ZWRnZWQoJmk5MTUtPmd0KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0yMjg3LDggKzIyMjgsOCBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlhcmdzLT5zaXplID0gMDsKIAkJaWYgKGN0eC0+dm0pCiAJCQlhcmdzLT52YWx1ZSA9IGN0eC0+dm0tPnRvdGFsOwotCQllbHNlIGlmICh0b19pOTE1KGRldiktPm1tLmFsaWFzaW5nX3BwZ3R0KQotCQkJYXJncy0+dmFsdWUgPSB0b19pOTE1KGRldiktPm1tLmFsaWFzaW5nX3BwZ3R0LT52bS50b3RhbDsKKwkJZWxzZSBpZiAodG9faTkxNShkZXYpLT5nZ3R0LmFsaWFzKQorCQkJYXJncy0+dmFsdWUgPSB0b19pOTE1KGRldiktPmdndHQuYWxpYXMtPnZtLnRvdGFsOwogCQllbHNlCiAJCQlhcmdzLT52YWx1ZSA9IHRvX2k5MTUoZGV2KS0+Z2d0dC52bS50b3RhbDsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaAppbmRleCA5NjkxZGQwNi4uMTc2OTc4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5oCkBAIC0xNDEsOCArMTQxLDYgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfb3BlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIHZvaWQgaTkxNV9nZW1fY29udGV4dF9jbG9zZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwogCiB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqY3R4X3JlZik7Ci1zdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqCi1pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9ndnQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKIGludCBpOTE1X2dlbV92bV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlKTsKQEAgLTE5OCwxMiArMTk2LDYgQEAgaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKLWk5MTVfZ2VtX2NvbnRleHRfbG9va3VwX2VuZ2luZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCB1bnNpZ25lZCBpbnQgaWR4KQotewotCXJldHVybiBpOTE1X2dlbV9jb250ZXh0X2VuZ2luZXMoY3R4KS0+ZW5naW5lc1tpZHhdOwotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKIGk5MTVfZ2VtX2NvbnRleHRfZ2V0X2VuZ2luZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCB1bnNpZ25lZCBpbnQgaWR4KQogewogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IEVSUl9QVFIoLUVJTlZBTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHRfdHlwZXMuaAppbmRleCBjYzUxMzQxLi4yNjBkNTljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0X3R5cGVzLmgKQEAgLTI2LDcgKzI2LDcgQEAgc3RydWN0IHBpZDsKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZTsKIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2U7Ci1zdHJ1Y3QgaTkxNV90aW1lbGluZTsKK3N0cnVjdCBpbnRlbF90aW1lbGluZTsKIHN0cnVjdCBpbnRlbF9yaW5nOwogCiBzdHJ1Y3QgaTkxNV9nZW1fZW5naW5lcyB7CkBAIC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0IHsKIAlzdHJ1Y3QgaTkxNV9nZW1fZW5naW5lcyBfX3JjdSAqZW5naW5lczsKIAlzdHJ1Y3QgbXV0ZXggZW5naW5lc19tdXRleDsgLyogZ3VhcmRzIHdyaXRlcyB0byBlbmdpbmVzICovCiAKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmU7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0aW1lbGluZTsKIAogCS8qKgogCSAqIEB2bTogdW5pcXVlIGFkZHJlc3Mgc3BhY2UgKEdUVCkKQEAgLTE2OSwxMSArMTY5LDYgQEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewogCiAJc3RydWN0IGk5MTVfc2NoZWRfYXR0ciBzY2hlZDsKIAotCS8qKiByaW5nX3NpemU6IHNpemUgZm9yIGFsbG9jYXRpbmcgdGhlIHBlci1lbmdpbmUgcmluZyBidWZmZXIgKi8KLQl1MzIgcmluZ19zaXplOwotCS8qKiBkZXNjX3RlbXBsYXRlOiBpbnZhcmlhbnQgZmllbGRzIGZvciB0aGUgSFcgY29udGV4dCBkZXNjcmlwdG9yICovCi0JdTMyIGRlc2NfdGVtcGxhdGU7Ci0KIAkvKiogZ3VpbHR5X2NvdW50OiBIb3cgbWFueSB0aW1lcyB0aGlzIGNvbnRleHQgaGFzIGNhdXNlZCBhIEdQVSBoYW5nLiAqLwogCWF0b21pY190IGd1aWx0eV9jb3VudDsKIAkvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kbWFidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kbWFidWYuYwppbmRleCBjYmYxNzAxLi45NmNlOTVjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RtYWJ1Zi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kbWFidWYuYwpAQCAtNiw3ICs2LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KICNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKQEAgLTIwNCw4ICsyMDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIGk5MTVfZG1hYnVmX29wcyA9ICB7CiAJLmVuZF9jcHVfYWNjZXNzID0gaTkxNV9nZW1fZW5kX2NwdV9hY2Nlc3MsCiB9OwogCi1zdHJ1Y3QgZG1hX2J1ZiAqaTkxNV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqLCBpbnQgZmxhZ3MpCitzdHJ1Y3QgZG1hX2J1ZiAqaTkxNV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaiwgaW50IGZsYWdzKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB0b19pbnRlbF9ibyhnZW1fb2JqKTsKIAlERUZJTkVfRE1BX0JVRl9FWFBPUlRfSU5GTyhleHBfaW5mbyk7CkBAIC0yMjIsNyArMjIxLDcgQEAgc3RydWN0IGRtYV9idWYgKmk5MTVfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKLQlyZXR1cm4gZHJtX2dlbV9kbWFidWZfZXhwb3J0KGRldiwgJmV4cF9pbmZvKTsKKwlyZXR1cm4gZHJtX2dlbV9kbWFidWZfZXhwb3J0KGdlbV9vYmotPmRldiwgJmV4cF9pbmZvKTsKIH0KIAogc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2RtYWJ1ZihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5jCmluZGV4IDJlM2NlMmEuLjljNThlOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kb21haW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG9tYWluLmMKQEAgLTIyMSw2ICsyMjEsOCBAQCBpbnQgaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCSAqIHN0YXRlIGFuZCBzbyBpbnZvbHZlcyBsZXNzIHdvcmsuCiAJICovCiAJaWYgKGF0b21pY19yZWFkKCZvYmotPmJpbmRfY291bnQpKSB7CisJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKKwogCQkvKiBCZWZvcmUgd2UgY2hhbmdlIHRoZSBQVEUsIHRoZSBHUFUgbXVzdCBub3QgYmUgYWNjZXNzaW5nIGl0LgogCQkgKiBJZiB3ZSB3YWl0IHVwb24gdGhlIG9iamVjdCwgd2Uga25vdyB0aGF0IGFsbCB0aGUgYm91bmQKIAkJICogVk1BIGFyZSBubyBsb25nZXIgYWN0aXZlLgpAQCAtMjMyLDE4ICsyMzQsMzAgQEAgaW50IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKLQkJaWYgKCFIQVNfTExDKHRvX2k5MTUob2JqLT5iYXNlLmRldikpICYmCi0JCSAgICBjYWNoZV9sZXZlbCAhPSBJOTE1X0NBQ0hFX05PTkUpIHsKLQkJCS8qIEFjY2VzcyB0byBzbm9vcGFibGUgcGFnZXMgdGhyb3VnaCB0aGUgR1RUIGlzCisJCWlmICghSEFTX0xMQyhpOTE1KSAmJiBjYWNoZV9sZXZlbCAhPSBJOTE1X0NBQ0hFX05PTkUpIHsKKwkJCWludGVsX3dha2VyZWZfdCB3YWtlcmVmID0KKwkJCQlpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CisKKwkJCS8qCisJCQkgKiBBY2Nlc3MgdG8gc25vb3BhYmxlIHBhZ2VzIHRocm91Z2ggdGhlIEdUVCBpcwogCQkJICogaW5jb2hlcmVudCBhbmQgb24gc29tZSBtYWNoaW5lcyBjYXVzZXMgYSBoYXJkCiAJCQkgKiBsb2NrdXAuIFJlbGlucXVpc2ggdGhlIENQVSBtbWFwaW5nIHRvIGZvcmNlCiAJCQkgKiB1c2Vyc3BhY2UgdG8gcmVmYXVsdCBpbiB0aGUgcGFnZXMgYW5kIHdlIGNhbgogCQkJICogdGhlbiBkb3VibGUgY2hlY2sgaWYgdGhlIEdUVCBtYXBwaW5nIGlzIHN0aWxsCiAJCQkgKiB2YWxpZCBmb3IgdGhhdCBwb2ludGVyIGFjY2Vzcy4KIAkJCSAqLwotCQkJaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChvYmopOworCQkJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZpOTE1LT5nZ3R0LnZtLm11dGV4KTsKKwkJCWlmIChyZXQpIHsKKwkJCQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwKKwkJCQkJCSAgICAgd2FrZXJlZik7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KIAotCQkJLyogQXMgd2Ugbm8gbG9uZ2VyIG5lZWQgYSBmZW5jZSBmb3IgR1RUIGFjY2VzcywKKwkJCWlmIChvYmotPnVzZXJmYXVsdF9jb3VudCkKKwkJCQlfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAob2JqKTsKKworCQkJLyoKKwkJCSAqIEFzIHdlIG5vIGxvbmdlciBuZWVkIGEgZmVuY2UgZm9yIEdUVCBhY2Nlc3MsCiAJCQkgKiB3ZSBjYW4gcmVsaW5xdWlzaCBpdCBub3cgKGFuZCBzbyBwcmV2ZW50IGhhdmluZwogCQkJICogdG8gc3RlYWwgYSBmZW5jZSBmcm9tIHNvbWVvbmUgZWxzZSBvbiB0aGUgbmV4dAogCQkJICogZmVuY2UgcmVxdWVzdCkuIE5vdGUgR1BVIGFjdGl2aXR5IHdvdWxkIGhhdmUKQEAgLTI1MSwxMiArMjY1LDE3IEBAIGludCBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgKiBzdXBwb3NlZCB0byBiZSBsaW5lYXIuCiAJCQkgKi8KIAkJCWZvcl9lYWNoX2dndHRfdm1hKHZtYSwgb2JqKSB7Ci0JCQkJcmV0ID0gaTkxNV92bWFfcHV0X2ZlbmNlKHZtYSk7CisJCQkJcmV0ID0gaTkxNV92bWFfcmV2b2tlX2ZlbmNlKHZtYSk7CiAJCQkJaWYgKHJldCkKLQkJCQkJcmV0dXJuIHJldDsKKwkJCQkJYnJlYWs7CiAJCQl9CisJCQltdXRleF91bmxvY2soJmk5MTUtPmdndHQudm0ubXV0ZXgpOworCQkJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OwogCQl9IGVsc2UgewotCQkJLyogV2UgZWl0aGVyIGhhdmUgaW5jb2hlcmVudCBiYWNraW5nIHN0b3JlIGFuZAorCQkJLyoKKwkJCSAqIFdlIGVpdGhlciBoYXZlIGluY29oZXJlbnQgYmFja2luZyBzdG9yZSBhbmQKIAkJCSAqIHNvIG5vIEdUVCBhY2Nlc3Mgb3IgdGhlIGFyY2hpdGVjdHVyZSBpcyBmdWxseQogCQkJICogY29oZXJlbnQuIEluIHN1Y2ggY2FzZXMsIGV4aXN0aW5nIEdUVCBtbWFwcwogCQkJICogaWdub3JlIHRoZSBjYWNoZSBiaXQgaW4gdGhlIFBURSBhbmQgd2UgY2FuCkBAIC01NTEsMTMgKzU3MCw2IEBAIGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fY3B1X2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBib29sIHdyaXRlKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIGVudW0gZmJfb3Bfb3JpZ2luCi1mYl93cml0ZV9vcmlnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgdW5zaWduZWQgaW50IGRvbWFpbikKLXsKLQlyZXR1cm4gKGRvbWFpbiA9PSBJOTE1X0dFTV9ET01BSU5fR1RUID8KLQkJb2JqLT5mcm9udGJ1ZmZlcl9nZ3R0X29yaWdpbiA6IE9SSUdJTl9DUFUpOwotfQotCiAvKioKICAqIENhbGxlZCB3aGVuIHVzZXIgc3BhY2UgcHJlcGFyZXMgdG8gdXNlIGFuIG9iamVjdCB3aXRoIHRoZSBDUFUsIGVpdGhlcgogICogdGhyb3VnaCB0aGUgbW1hcCBpb2N0bCdzIG1hcHBpbmcgb3IgYSBHVFQgbWFwcGluZy4KQEAgLTY2MSw5ICs2NzMsOCBAQCBpOTE1X2dlbV9zZXRfZG9tYWluX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAKIAlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7CiAKLQlpZiAod3JpdGVfZG9tYWluICE9IDApCi0JCWludGVsX2ZiX29ial9pbnZhbGlkYXRlKG9iaiwKLQkJCQkJZmJfd3JpdGVfb3JpZ2luKG9iaiwgd3JpdGVfZG9tYWluKSk7CisJaWYgKHdyaXRlX2RvbWFpbikKKwkJaW50ZWxfZnJvbnRidWZmZXJfaW52YWxpZGF0ZShvYmotPmZyb250YnVmZmVyLCBPUklHSU5fQ1BVKTsKIAogb3V0X3VucGluOgogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwpAQCAtNzgzLDcgKzc5NCw3IEBAIGludCBpOTE1X2dlbV9vYmplY3RfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCX0KIAogb3V0OgotCWludGVsX2ZiX29ial9pbnZhbGlkYXRlKG9iaiwgT1JJR0lOX0NQVSk7CisJaW50ZWxfZnJvbnRidWZmZXJfaW52YWxpZGF0ZShvYmotPmZyb250YnVmZmVyLCBPUklHSU5fQ1BVKTsKIAlvYmotPm1tLmRpcnR5ID0gdHJ1ZTsKIAkvKiByZXR1cm4gd2l0aCB0aGUgcGFnZXMgcGlubmVkICovCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCA0MWRhYjllLi5iNWY2OTM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTUsNyArNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2ludGVsLWlvbW11Lmg+Ci0jaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgogI2luY2x1ZGUgPGxpbnV4L3N5bmNfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KIApAQCAtMTYsMTMgKzE2LDE1IEBACiAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1faW9jdGxzLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfY29udGV4dC5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV9wb29sLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKICNpbmNsdWRlICJndC9pbnRlbF9ndF9wbS5oIgogCi0jaW5jbHVkZSAiaTkxNV9nZW1faW9jdGxzLmgiCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9jbGZsdXNoLmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fY29udGV4dC5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX2lvY3Rscy5oIgogI2luY2x1ZGUgImk5MTVfdHJhY2UuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKIAogZW51bSB7CiAJRk9SQ0VfQ1BVX1JFTE9DID0gMSwKQEAgLTIyMiw3ICsyMjQsNiBAQCBzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7IC8qKiBlbmdpbmUgdG8gcXVldWUgdGhlIHJlcXVlc3QgdG8gKi8KIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY29udGV4dDsgLyogbG9naWNhbCBzdGF0ZSBmb3IgdGhlIHJlcXVlc3QgKi8KIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqZ2VtX2NvbnRleHQ7IC8qKiBjYWxsZXIncyBjb250ZXh0ICovCi0Jc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07IC8qKiBHVFQgYW5kIHZtYSBmb3IgdGhlIHJlcXVlc3QgKi8KIAogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3Q7IC8qKiBvdXIgcmVxdWVzdCB0byBidWlsZCAqLwogCXN0cnVjdCBpOTE1X3ZtYSAqYmF0Y2g7IC8qKiBpZGVudGl0eSBvZiB0aGUgYmF0Y2ggb2JqL3ZtYSAqLwpAQCAtNjk2LDcgKzY5Nyw3IEBAIHN0YXRpYyBpbnQgZWJfcmVzZXJ2ZShzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYikKIAogCQljYXNlIDE6CiAJCQkvKiBUb28gZnJhZ21lbnRlZCwgdW5iaW5kIGV2ZXJ5dGhpbmcgYW5kIHJldHJ5ICovCi0JCQllcnIgPSBpOTE1X2dlbV9ldmljdF92bShlYi0+dm0pOworCQkJZXJyID0gaTkxNV9nZW1fZXZpY3Rfdm0oZWItPmNvbnRleHQtPnZtKTsKIAkJCWlmIChlcnIpCiAJCQkJcmV0dXJuIGVycjsKIAkJCWJyZWFrOwpAQCAtNzI0LDEyICs3MjUsOCBAQCBzdGF0aWMgaW50IGViX3NlbGVjdF9jb250ZXh0KHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViKQogCQlyZXR1cm4gLUVOT0VOVDsKIAogCWViLT5nZW1fY29udGV4dCA9IGN0eDsKLQlpZiAoY3R4LT52bSkgewotCQllYi0+dm0gPSBjdHgtPnZtOworCWlmIChjdHgtPnZtKQogCQllYi0+aW52YWxpZF9mbGFncyB8PSBFWEVDX09CSkVDVF9ORUVEU19HVFQ7Ci0JfSBlbHNlIHsKLQkJZWItPnZtID0gJmViLT5pOTE1LT5nZ3R0LnZtOwotCX0KIAogCWViLT5jb250ZXh0X2ZsYWdzID0gMDsKIAlpZiAodGVzdF9iaXQoVUNPTlRFWFRfTk9fWkVST01BUCwgJmN0eC0+dXNlcl9mbGFncykpCkBAIC03MzgsNjMgKzczNSw2IEBAIHN0YXRpYyBpbnQgZWJfc2VsZWN0X2NvbnRleHQoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpfX2ViX3dhaXRfZm9yX3Jpbmcoc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCi17Ci0Jc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Ci0KLQkvKgotCSAqIENvbXBsZXRlbHkgdW5zY2llbnRpZmljIGZpbmdlci1pbi10aGUtYWlyIGVzdGltYXRlcyBmb3Igc3VpdGFibGUKLQkgKiBtYXhpbXVtIHVzZXIgcmVxdWVzdCBzaXplICh0byBhdm9pZCBibG9ja2luZykgYW5kIHRoZW4gYmFja29mZi4KLQkgKi8KLQlpZiAoaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZykgPj0gUEFHRV9TSVpFKQotCQlyZXR1cm4gTlVMTDsKLQotCS8qCi0JICogRmluZCBhIHJlcXVlc3QgdGhhdCBhZnRlciB3YWl0aW5nIHVwb24sIHRoZXJlIHdpbGwgYmUgYXQgbGVhc3QgaGFsZgotCSAqIHRoZSByaW5nIGF2YWlsYWJsZS4gVGhlIGh5c3RlcmVzaXMgYWxsb3dzIHVzIHRvIGNvbXBldGUgZm9yIHRoZQotCSAqIHNoYXJlZCByaW5nIGFuZCBzaG91bGQgbWVhbiB0aGF0IHdlIHNsZWVwIGxlc3Mgb2Z0ZW4gcHJpb3IgdG8KLQkgKiBjbGFpbWluZyBvdXIgcmVzb3VyY2VzLCBidXQgbm90IHNvIGxvbmcgdGhhdCB0aGUgcmluZyBjb21wbGV0ZWx5Ci0JICogZHJhaW5zIGJlZm9yZSB3ZSBjYW4gc3VibWl0IG91ciBuZXh0IHJlcXVlc3QuCi0JICovCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShycSwgJnJpbmctPnJlcXVlc3RfbGlzdCwgcmluZ19saW5rKSB7Ci0JCWlmIChfX2ludGVsX3Jpbmdfc3BhY2UocnEtPnBvc3RmaXgsCi0JCQkJICAgICAgIHJpbmctPmVtaXQsIHJpbmctPnNpemUpID4gcmluZy0+c2l6ZSAvIDIpCi0JCQlicmVhazsKLQl9Ci0JaWYgKCZycS0+cmluZ19saW5rID09ICZyaW5nLT5yZXF1ZXN0X2xpc3QpCi0JCXJldHVybiBOVUxMOyAvKiB3ZWlyZCwgd2Ugd2lsbCBjaGVjayBhZ2FpbiBsYXRlciBmb3IgcmVhbCAqLwotCi0JcmV0dXJuIGk5MTVfcmVxdWVzdF9nZXQocnEpOwotfQotCi1zdGF0aWMgaW50IGViX3dhaXRfZm9yX3JpbmcoY29uc3Qgc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIpCi17Ci0Jc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Ci0JaW50IHJldCA9IDA7Ci0KLQkvKgotCSAqIEFwcGx5IGEgbGlnaHQgYW1vdW50IG9mIGJhY2twcmVzc3VyZSB0byBwcmV2ZW50IGV4Y2Vzc2l2ZSBob2dzCi0JICogZnJvbSBibG9ja2luZyB3YWl0aW5nIGZvciBzcGFjZSB3aGlsc3QgaG9sZGluZyBzdHJ1Y3RfbXV0ZXggYW5kCi0JICoga2VlcGluZyBhbGwgb2YgdGhlaXIgcmVzb3VyY2VzIHBpbm5lZC4KLQkgKi8KLQotCXJxID0gX19lYl93YWl0X2Zvcl9yaW5nKGViLT5jb250ZXh0LT5yaW5nKTsKLQlpZiAocnEpIHsKLQkJbXV0ZXhfdW5sb2NrKCZlYi0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0KLQkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLAotCQkJCSAgICAgIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAotCQkJCSAgICAgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKSA8IDApCi0JCQlyZXQgPSAtRUlOVFI7Ci0KLQkJaTkxNV9yZXF1ZXN0X3B1dChycSk7Ci0KLQkJbXV0ZXhfbG9jaygmZWItPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KIHN0YXRpYyBpbnQgZWJfbG9va3VwX3ZtYXMoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIpCiB7CiAJc3RydWN0IHJhZGl4X3RyZWVfcm9vdCAqaGFuZGxlc192bWEgPSAmZWItPmdlbV9jb250ZXh0LT5oYW5kbGVzX3ZtYTsKQEAgLTgzMSw3ICs3NzEsNyBAQCBzdGF0aWMgaW50IGViX2xvb2t1cF92bWFzKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViKQogCQkJZ290byBlcnJfdm1hOwogCQl9CiAKLQkJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCBlYi0+dm0sIE5VTEwpOworCQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosIGViLT5jb250ZXh0LT52bSwgTlVMTCk7CiAJCWlmIChJU19FUlIodm1hKSkgewogCQkJZXJyID0gUFRSX0VSUih2bWEpOwogCQkJZ290byBlcnJfb2JqOwpAQCAtOTk0LDcgKzkzNCw3IEBAIHN0YXRpYyB2b2lkIHJlbG9jX2dwdV9mbHVzaChzdHJ1Y3QgcmVsb2NfY2FjaGUgKmNhY2hlKQogCV9faTkxNV9nZW1fb2JqZWN0X2ZsdXNoX21hcChjYWNoZS0+cnEtPmJhdGNoLT5vYmosIDAsIGNhY2hlLT5ycV9zaXplKTsKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNhY2hlLT5ycS0+YmF0Y2gtPm9iaik7CiAKLQlpOTE1X2dlbV9jaGlwc2V0X2ZsdXNoKGNhY2hlLT5ycS0+aTkxNSk7CisJaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChjYWNoZS0+cnEtPmVuZ2luZS0+Z3QpOwogCiAJaTkxNV9yZXF1ZXN0X2FkZChjYWNoZS0+cnEpOwogCWNhY2hlLT5ycSA9IE5VTEw7CkBAIC0xMDE4LDExICs5NTgsMTIgQEAgc3RhdGljIHZvaWQgcmVsb2NfY2FjaGVfcmVzZXQoc3RydWN0IHJlbG9jX2NhY2hlICpjYWNoZSkKIAkJa3VubWFwX2F0b21pYyh2YWRkcik7CiAJCWk5MTVfZ2VtX29iamVjdF9maW5pc2hfYWNjZXNzKChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqKWNhY2hlLT5ub2RlLm1tKTsKIAl9IGVsc2UgewotCQl3bWIoKTsKLQkJaW9fbWFwcGluZ191bm1hcF9hdG9taWMoKHZvaWQgX19pb21lbSAqKXZhZGRyKTsKLQkJaWYgKGNhY2hlLT5ub2RlLmFsbG9jYXRlZCkgewotCQkJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IGNhY2hlX3RvX2dndHQoY2FjaGUpOworCQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gY2FjaGVfdG9fZ2d0dChjYWNoZSk7CiAKKwkJaW50ZWxfZ3RfZmx1c2hfZ2d0dF93cml0ZXMoZ2d0dC0+dm0uZ3QpOworCQlpb19tYXBwaW5nX3VubWFwX2F0b21pYygodm9pZCBfX2lvbWVtICopdmFkZHIpOworCisJCWlmIChjYWNoZS0+bm9kZS5hbGxvY2F0ZWQpIHsKIAkJCWdndHQtPnZtLmNsZWFyX3JhbmdlKCZnZ3R0LT52bSwKIAkJCQkJICAgICBjYWNoZS0+bm9kZS5zdGFydCwKIAkJCQkJICAgICBjYWNoZS0+bm9kZS5zaXplKTsKQEAgLTEwNzcsMTEgKzEwMTgsMTUgQEAgc3RhdGljIHZvaWQgKnJlbG9jX2lvbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJdm9pZCAqdmFkZHI7CiAKIAlpZiAoY2FjaGUtPnZhZGRyKSB7CisJCWludGVsX2d0X2ZsdXNoX2dndHRfd3JpdGVzKGdndHQtPnZtLmd0KTsKIAkJaW9fbWFwcGluZ191bm1hcF9hdG9taWMoKHZvaWQgX19mb3JjZSBfX2lvbWVtICopIHVubWFza19wYWdlKGNhY2hlLT52YWRkcikpOwogCX0gZWxzZSB7CiAJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCQlpbnQgZXJyOwogCisJCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfdGlsZWQob2JqKSkKKwkJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworCiAJCWlmICh1c2VfY3B1X3JlbG9jKGNhY2hlLCBvYmopKQogCQkJcmV0dXJuIE5VTEw7CiAKQEAgLTEwOTMsOCArMTAzOCw4IEBAIHN0YXRpYyB2b2lkICpyZWxvY19pb21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiAJCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosIE5VTEwsIDAsIDAsCiAJCQkJCSAgICAgICBQSU5fTUFQUEFCTEUgfAotCQkJCQkgICAgICAgUElOX05PTkJMT0NLIHwKLQkJCQkJICAgICAgIFBJTl9OT05GQVVMVCk7CisJCQkJCSAgICAgICBQSU5fTk9OQkxPQ0sgLyogTk9XQVJOICovIHwKKwkJCQkJICAgICAgIFBJTl9OT0VWSUNUKTsKIAkJaWYgKElTX0VSUih2bWEpKSB7CiAJCQltZW1zZXQoJmNhY2hlLT5ub2RlLCAwLCBzaXplb2YoY2FjaGUtPm5vZGUpKTsKIAkJCWVyciA9IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZQpAQCAtMTEwNSwxMiArMTA1MCw2IEBAIHN0YXRpYyB2b2lkICpyZWxvY19pb21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJaWYgKGVycikgLyogbm8gaW5hY3RpdmUgYXBlcnR1cmUgc3BhY2UsIHVzZSBjcHUgcmVsb2MgKi8KIAkJCQlyZXR1cm4gTlVMTDsKIAkJfSBlbHNlIHsKLQkJCWVyciA9IGk5MTVfdm1hX3B1dF9mZW5jZSh2bWEpOwotCQkJaWYgKGVycikgewotCQkJCWk5MTVfdm1hX3VucGluKHZtYSk7Ci0JCQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKLQkJCX0KLQogCQkJY2FjaGUtPm5vZGUuc3RhcnQgPSB2bWEtPm5vZGUuc3RhcnQ7CiAJCQljYWNoZS0+bm9kZS5tbSA9ICh2b2lkICopdm1hOwogCQl9CkBAIC0xMTE4LDcgKzEwNTcsNiBAQCBzdGF0aWMgdm9pZCAqcmVsb2NfaW9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogCW9mZnNldCA9IGNhY2hlLT5ub2RlLnN0YXJ0OwogCWlmIChjYWNoZS0+bm9kZS5hbGxvY2F0ZWQpIHsKLQkJd21iKCk7CiAJCWdndHQtPnZtLmluc2VydF9wYWdlKCZnZ3R0LT52bSwKIAkJCQkgICAgIGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Mob2JqLCBwYWdlKSwKIAkJCQkgICAgIG9mZnNldCwgSTkxNV9DQUNIRV9OT05FLCAwKTsKQEAgLTEyMDEsMjUgKzExMzksMjYgQEAgc3RhdGljIGludCBfX3JlbG9jX2dwdV9hbGxvYyhzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYiwKIAkJCSAgICAgdW5zaWduZWQgaW50IGxlbikKIHsKIAlzdHJ1Y3QgcmVsb2NfY2FjaGUgKmNhY2hlID0gJmViLT5yZWxvY19jYWNoZTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbF9ub2RlICpwb29sOwogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCXN0cnVjdCBpOTE1X3ZtYSAqYmF0Y2g7CiAJdTMyICpjbWQ7CiAJaW50IGVycjsKIAotCW9iaiA9IGk5MTVfZ2VtX2JhdGNoX3Bvb2xfZ2V0KCZlYi0+ZW5naW5lLT5iYXRjaF9wb29sLCBQQUdFX1NJWkUpOwotCWlmIChJU19FUlIob2JqKSkKLQkJcmV0dXJuIFBUUl9FUlIob2JqKTsKKwlwb29sID0gaW50ZWxfZW5naW5lX3Bvb2xfZ2V0KCZlYi0+ZW5naW5lLT5wb29sLCBQQUdFX1NJWkUpOworCWlmIChJU19FUlIocG9vbCkpCisJCXJldHVybiBQVFJfRVJSKHBvb2wpOwogCi0JY21kID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAob2JqLAorCWNtZCA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHBvb2wtPm9iaiwKIAkJCQkgICAgICBjYWNoZS0+aGFzX2xsYyA/CiAJCQkJICAgICAgSTkxNV9NQVBfRk9SQ0VfV0IgOgogCQkJCSAgICAgIEk5MTVfTUFQX0ZPUkNFX1dDKTsKLQlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKLQlpZiAoSVNfRVJSKGNtZCkpCi0JCXJldHVybiBQVFJfRVJSKGNtZCk7CisJaWYgKElTX0VSUihjbWQpKSB7CisJCWVyciA9IFBUUl9FUlIoY21kKTsKKwkJZ290byBvdXRfcG9vbDsKKwl9CiAKLQliYXRjaCA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgdm1hLT52bSwgTlVMTCk7CisJYmF0Y2ggPSBpOTE1X3ZtYV9pbnN0YW5jZShwb29sLT5vYmosIHZtYS0+dm0sIE5VTEwpOwogCWlmIChJU19FUlIoYmF0Y2gpKSB7CiAJCWVyciA9IFBUUl9FUlIoYmF0Y2gpOwogCQlnb3RvIGVycl91bm1hcDsKQEAgLTEyMzUsNiArMTE3NCwxMCBAQCBzdGF0aWMgaW50IF9fcmVsb2NfZ3B1X2FsbG9jKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAogCQlnb3RvIGVycl91bnBpbjsKIAl9CiAKKwllcnIgPSBpbnRlbF9lbmdpbmVfcG9vbF9tYXJrX2FjdGl2ZShwb29sLCBycSk7CisJaWYgKGVycikKKwkJZ290byBlcnJfcmVxdWVzdDsKKwogCWVyciA9IHJlbG9jX21vdmVfdG9fZ3B1KHJxLCB2bWEpOwogCWlmIChlcnIpCiAJCWdvdG8gZXJyX3JlcXVlc3Q7CkBAIC0xMjQ2LDggKzExODksOSBAQCBzdGF0aWMgaW50IF9fcmVsb2NfZ3B1X2FsbG9jKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAogCQlnb3RvIHNraXBfcmVxdWVzdDsKIAogCWk5MTVfdm1hX2xvY2soYmF0Y2gpOwotCUdFTV9CVUdfT04oIXJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShiYXRjaC0+cmVzdiwgdHJ1ZSkpOwotCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKGJhdGNoLCBycSwgMCk7CisJZXJyID0gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgYmF0Y2gtPm9iaiwgZmFsc2UpOworCWlmIChlcnIgPT0gMCkKKwkJZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUoYmF0Y2gsIHJxLCAwKTsKIAlpOTE1X3ZtYV91bmxvY2soYmF0Y2gpOwogCWlmIChlcnIpCiAJCWdvdG8gc2tpcF9yZXF1ZXN0OwpAQCAtMTI2MCw3ICsxMjA0LDcgQEAgc3RhdGljIGludCBfX3JlbG9jX2dwdV9hbGxvYyhzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYiwKIAljYWNoZS0+cnFfc2l6ZSA9IDA7CiAKIAkvKiBSZXR1cm4gd2l0aCBiYXRjaCBtYXBwaW5nIChjbWQpIHN0aWxsIHBpbm5lZCAqLwotCXJldHVybiAwOworCWdvdG8gb3V0X3Bvb2w7CiAKIHNraXBfcmVxdWVzdDoKIAlpOTE1X3JlcXVlc3Rfc2tpcChycSwgZXJyKTsKQEAgLTEyNjksNyArMTIxMyw5IEBAIHN0YXRpYyBpbnQgX19yZWxvY19ncHVfYWxsb2Moc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCiBlcnJfdW5waW46CiAJaTkxNV92bWFfdW5waW4oYmF0Y2gpOwogZXJyX3VubWFwOgotCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAob2JqKTsKKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKHBvb2wtPm9iaik7CitvdXRfcG9vbDoKKwlpbnRlbF9lbmdpbmVfcG9vbF9wdXQocG9vbCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtMTMxNyw3ICsxMjYzLDcgQEAgcmVsb2NhdGVfZW50cnkoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAKIAlpZiAoIWViLT5yZWxvY19jYWNoZS52YWRkciAmJgogCSAgICAoREJHX0ZPUkNFX1JFTE9DID09IEZPUkNFX0dQVV9SRUxPQyB8fAotCSAgICAgIXJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdSh2bWEtPnJlc3YsIHRydWUpKSkgeworCSAgICAgIWRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfcmN1KHZtYS0+cmVzdiwgdHJ1ZSkpKSB7CiAJCWNvbnN0IHVuc2lnbmVkIGludCBnZW4gPSBlYi0+cmVsb2NfY2FjaGUuZ2VuOwogCQl1bnNpZ25lZCBpbnQgbGVuOwogCQl1MzIgKmJhdGNoOwpAQCAtMTk1Miw3ICsxODk4LDcgQEAgc3RhdGljIGludCBlYl9tb3ZlX3RvX2dwdShzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYikKIAllYi0+ZXhlYyA9IE5VTEw7CiAKIAkvKiBVbmNvbmRpdGlvbmFsbHkgZmx1c2ggYW55IGNoaXBzZXQgY2FjaGVzIChmb3Igc3RyZWFtaW5nIHdyaXRlcykuICovCi0JaTkxNV9nZW1fY2hpcHNldF9mbHVzaChlYi0+aTkxNSk7CisJaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChlYi0+ZW5naW5lLT5ndCk7CiAJcmV0dXJuIDA7CiAKIGVycl9za2lwOgpAQCAtMjAxMSwxOCArMTk1NywxNyBAQCBzdGF0aWMgaW50IGk5MTVfcmVzZXRfZ2VuN19zb2xfb2Zmc2V0cyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAogc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqZWJfcGFyc2Uoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsIGJvb2wgaXNfbWFzdGVyKQogewotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpzaGFkb3dfYmF0Y2hfb2JqOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbF9ub2RlICpwb29sOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCWludCBlcnI7CiAKLQlzaGFkb3dfYmF0Y2hfb2JqID0gaTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoJmViLT5lbmdpbmUtPmJhdGNoX3Bvb2wsCi0JCQkJCQkgICBQQUdFX0FMSUdOKGViLT5iYXRjaF9sZW4pKTsKLQlpZiAoSVNfRVJSKHNoYWRvd19iYXRjaF9vYmopKQotCQlyZXR1cm4gRVJSX0NBU1Qoc2hhZG93X2JhdGNoX29iaik7CisJcG9vbCA9IGludGVsX2VuZ2luZV9wb29sX2dldCgmZWItPmVuZ2luZS0+cG9vbCwgZWItPmJhdGNoX2xlbik7CisJaWYgKElTX0VSUihwb29sKSkKKwkJcmV0dXJuIEVSUl9DQVNUKHBvb2wpOwogCiAJZXJyID0gaW50ZWxfZW5naW5lX2NtZF9wYXJzZXIoZWItPmVuZ2luZSwKIAkJCQkgICAgICBlYi0+YmF0Y2gtPm9iaiwKLQkJCQkgICAgICBzaGFkb3dfYmF0Y2hfb2JqLAorCQkJCSAgICAgIHBvb2wtPm9iaiwKIAkJCQkgICAgICBlYi0+YmF0Y2hfc3RhcnRfb2Zmc2V0LAogCQkJCSAgICAgIGViLT5iYXRjaF9sZW4sCiAJCQkJICAgICAgaXNfbWFzdGVyKTsKQEAgLTIwMzEsMTIgKzE5NzYsMTIgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqZWJfcGFyc2Uoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsIGJvb2wgaXNfbWFzdGVyKQogCQkJdm1hID0gTlVMTDsKIAkJZWxzZQogCQkJdm1hID0gRVJSX1BUUihlcnIpOwotCQlnb3RvIG91dDsKKwkJZ290byBlcnI7CiAJfQogCi0Jdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKHNoYWRvd19iYXRjaF9vYmosIE5VTEwsIDAsIDAsIDApOworCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3Bpbihwb29sLT5vYmosIE5VTEwsIDAsIDAsIDApOwogCWlmIChJU19FUlIodm1hKSkKLQkJZ290byBvdXQ7CisJCWdvdG8gZXJyOwogCiAJZWItPnZtYVtlYi0+YnVmZmVyX2NvdW50XSA9IGk5MTVfdm1hX2dldCh2bWEpOwogCWViLT5mbGFnc1tlYi0+YnVmZmVyX2NvdW50XSA9CkBAIC0yMDQ0LDE2ICsxOTg5LDI0IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKmViX3BhcnNlKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLCBib29sIGlzX21hc3RlcikKIAl2bWEtPmV4ZWNfZmxhZ3MgPSAmZWItPmZsYWdzW2ViLT5idWZmZXJfY291bnRdOwogCWViLT5idWZmZXJfY291bnQrKzsKIAotb3V0OgotCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhzaGFkb3dfYmF0Y2hfb2JqKTsKKwl2bWEtPnByaXZhdGUgPSBwb29sOworCXJldHVybiB2bWE7CisKK2VycjoKKwlpbnRlbF9lbmdpbmVfcG9vbF9wdXQocG9vbCk7CiAJcmV0dXJuIHZtYTsKIH0KIAogc3RhdGljIHZvaWQKIGFkZF90b19jbGllbnQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIHsKLQlycS0+ZmlsZV9wcml2ID0gZmlsZS0+ZHJpdmVyX3ByaXY7Ci0JbGlzdF9hZGRfdGFpbCgmcnEtPmNsaWVudF9saW5rLCAmcnEtPmZpbGVfcHJpdi0+bW0ucmVxdWVzdF9saXN0KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYgPSBmaWxlLT5kcml2ZXJfcHJpdjsKKworCXJxLT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7CisKKwlzcGluX2xvY2soJmZpbGVfcHJpdi0+bW0ubG9jayk7CisJbGlzdF9hZGRfdGFpbCgmcnEtPmNsaWVudF9saW5rLCAmZmlsZV9wcml2LT5tbS5yZXF1ZXN0X2xpc3QpOworCXNwaW5fdW5sb2NrKCZmaWxlX3ByaXYtPm1tLmxvY2spOwogfQogCiBzdGF0aWMgaW50IGViX3N1Ym1pdChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYikKQEAgLTIwOTMsNiArMjA0NiwxMiBAQCBzdGF0aWMgaW50IGViX3N1Ym1pdChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYikKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBudW1fdmNzX2VuZ2luZXMoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJcmV0dXJuIGh3ZWlnaHQ2NChJTlRFTF9JTkZPKGk5MTUpLT5lbmdpbmVfbWFzayAmCisJCQkgR0VOTUFTS19VTEwoVkNTMCArIEk5MTVfTUFYX1ZDUyAtIDEsIFZDUzApKTsKK30KKwogLyoKICAqIEZpbmQgb25lIEJTRCByaW5nIHRvIGRpc3BhdGNoIHRoZSBjb3JyZXNwb25kaW5nIEJTRCBjb21tYW5kLgogICogVGhlIGVuZ2luZSBpbmRleCBpcyByZXR1cm5lZC4KQEAgLTIxMDUsOCArMjA2NCw4IEBAIGdlbjhfZGlzcGF0Y2hfYnNkX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAkvKiBDaGVjayB3aGV0aGVyIHRoZSBmaWxlX3ByaXYgaGFzIGFscmVhZHkgc2VsZWN0ZWQgb25lIHJpbmcuICovCiAJaWYgKChpbnQpZmlsZV9wcml2LT5ic2RfZW5naW5lIDwgMCkKLQkJZmlsZV9wcml2LT5ic2RfZW5naW5lID0gYXRvbWljX2ZldGNoX3hvcigxLAotCQkJICZkZXZfcHJpdi0+bW0uYnNkX2VuZ2luZV9kaXNwYXRjaF9pbmRleCk7CisJCWZpbGVfcHJpdi0+YnNkX2VuZ2luZSA9CisJCQlnZXRfcmFuZG9tX2ludCgpICUgbnVtX3Zjc19lbmdpbmVzKGRldl9wcml2KTsKIAogCXJldHVybiBmaWxlX3ByaXYtPmJzZF9lbmdpbmU7CiB9CkBAIC0yMTE5LDE1ICsyMDc4LDgwIEBAIHN0YXRpYyBjb25zdCBlbnVtIGludGVsX2VuZ2luZV9pZCB1c2VyX3JpbmdfbWFwW10gPSB7CiAJW0k5MTVfRVhFQ19WRUJPWF0JPSBWRUNTMAogfTsKIAotc3RhdGljIGludCBlYl9waW5fY29udGV4dChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYiwgc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQorc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKmViX3Rocm90dGxlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IGNlLT5yaW5nOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwgPSBjZS0+dGltZWxpbmU7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisKKwkvKgorCSAqIENvbXBsZXRlbHkgdW5zY2llbnRpZmljIGZpbmdlci1pbi10aGUtYWlyIGVzdGltYXRlcyBmb3Igc3VpdGFibGUKKwkgKiBtYXhpbXVtIHVzZXIgcmVxdWVzdCBzaXplICh0byBhdm9pZCBibG9ja2luZykgYW5kIHRoZW4gYmFja29mZi4KKwkgKi8KKwlpZiAoaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZykgPj0gUEFHRV9TSVpFKQorCQlyZXR1cm4gTlVMTDsKKworCS8qCisJICogRmluZCBhIHJlcXVlc3QgdGhhdCBhZnRlciB3YWl0aW5nIHVwb24sIHRoZXJlIHdpbGwgYmUgYXQgbGVhc3QgaGFsZgorCSAqIHRoZSByaW5nIGF2YWlsYWJsZS4gVGhlIGh5c3RlcmVzaXMgYWxsb3dzIHVzIHRvIGNvbXBldGUgZm9yIHRoZQorCSAqIHNoYXJlZCByaW5nIGFuZCBzaG91bGQgbWVhbiB0aGF0IHdlIHNsZWVwIGxlc3Mgb2Z0ZW4gcHJpb3IgdG8KKwkgKiBjbGFpbWluZyBvdXIgcmVzb3VyY2VzLCBidXQgbm90IHNvIGxvbmcgdGhhdCB0aGUgcmluZyBjb21wbGV0ZWx5CisJICogZHJhaW5zIGJlZm9yZSB3ZSBjYW4gc3VibWl0IG91ciBuZXh0IHJlcXVlc3QuCisJICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeShycSwgJnRsLT5yZXF1ZXN0cywgbGluaykgeworCQlpZiAocnEtPnJpbmcgIT0gcmluZykKKwkJCWNvbnRpbnVlOworCisJCWlmIChfX2ludGVsX3Jpbmdfc3BhY2UocnEtPnBvc3RmaXgsCisJCQkJICAgICAgIHJpbmctPmVtaXQsIHJpbmctPnNpemUpID4gcmluZy0+c2l6ZSAvIDIpCisJCQlicmVhazsKKwl9CisJaWYgKCZycS0+bGluayA9PSAmdGwtPnJlcXVlc3RzKQorCQlyZXR1cm4gTlVMTDsgLyogd2VpcmQsIHdlIHdpbGwgY2hlY2sgYWdhaW4gbGF0ZXIgZm9yIHJlYWwgKi8KKworCXJldHVybiBpOTE1X3JlcXVlc3RfZ2V0KHJxKTsKK30KKworc3RhdGljIGludAorX19lYl9waW5fY29udGV4dChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYiwgc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQoreworCWludCBlcnI7CisKKwlpZiAobGlrZWx5KGF0b21pY19pbmNfbm90X3plcm8oJmNlLT5waW5fY291bnQpKSkKKwkJcmV0dXJuIDA7CisKKwllcnIgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmViLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gX19pbnRlbF9jb250ZXh0X2RvX3BpbihjZSk7CisJbXV0ZXhfdW5sb2NrKCZlYi0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgdm9pZAorX19lYl91bnBpbl9jb250ZXh0KHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLCBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCit7CisJaWYgKGxpa2VseShhdG9taWNfYWRkX3VubGVzcygmY2UtPnBpbl9jb3VudCwgLTEsIDEpKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmZWItPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWludGVsX2NvbnRleHRfdW5waW4oY2UpOworCW11dGV4X3VubG9jaygmZWItPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworfQorCitzdGF0aWMgaW50IF9fZWJfcGluX2VuZ2luZShzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYiwgc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQoreworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGw7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAJaW50IGVycjsKIAogCS8qCiAJICogQUJJOiBCZWZvcmUgdXNlcnNwYWNlIGFjY2Vzc2VzIHRoZSBHUFUgKGUuZy4gZXhlY2J1ZmZlciksIHJlcG9ydAogCSAqIEVJTyBpZiB0aGUgR1BVIGlzIGFscmVhZHkgd2VkZ2VkLgogCSAqLwotCWVyciA9IGk5MTVfdGVybWluYWxseV93ZWRnZWQoZWItPmk5MTUpOworCWVyciA9IGludGVsX2d0X3Rlcm1pbmFsbHlfd2VkZ2VkKGNlLT5lbmdpbmUtPmd0KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCkBAIC0yMTM2LDE4ICsyMTYwLDY0IEBAIHN0YXRpYyBpbnQgZWJfcGluX2NvbnRleHQoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIAkgKiBHR1RUIHNwYWNlLCBzbyBkbyB0aGlzIGZpcnN0IGJlZm9yZSB3ZSByZXNlcnZlIGEgc2Vxbm8gZm9yCiAJICogb3Vyc2VsdmVzLgogCSAqLwotCWVyciA9IGludGVsX2NvbnRleHRfcGluKGNlKTsKKwllcnIgPSBfX2ViX3Bpbl9jb250ZXh0KGViLCBjZSk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAorCS8qCisJICogVGFrZSBhIGxvY2FsIHdha2VyZWYgZm9yIHByZXBhcmluZyB0byBkaXNwYXRjaCB0aGUgZXhlY2J1ZiBhcworCSAqIHdlIGV4cGVjdCB0byBhY2Nlc3MgdGhlIGhhcmR3YXJlIGZhaXJseSBmcmVxdWVudGx5IGluIHRoZQorCSAqIHByb2Nlc3MsIGFuZCByZXF1aXJlIHRoZSBlbmdpbmUgdG8gYmUga2VwdCBhd2FrZSBiZXR3ZWVuIGFjY2Vzc2VzLgorCSAqIFVwb24gZGlzcGF0Y2gsIHdlIGFjcXVpcmUgYW5vdGhlciBwcm9sb25nZWQgd2FrZXJlZiB0aGF0IHdlIGhvbGQKKwkgKiB1bnRpbCB0aGUgdGltZWxpbmUgaXMgaWRsZSwgd2hpY2ggaW4gdHVybiByZWxlYXNlcyB0aGUgd2FrZXJlZgorCSAqIHRha2VuIG9uIHRoZSBlbmdpbmUsIGFuZCB0aGUgcGFyZW50IGRldmljZS4KKwkgKi8KKwl0bCA9IGludGVsX2NvbnRleHRfdGltZWxpbmVfbG9jayhjZSk7CisJaWYgKElTX0VSUih0bCkpIHsKKwkJZXJyID0gUFRSX0VSUih0bCk7CisJCWdvdG8gZXJyX3VucGluOworCX0KKworCWludGVsX2NvbnRleHRfZW50ZXIoY2UpOworCXJxID0gZWJfdGhyb3R0bGUoY2UpOworCisJaW50ZWxfY29udGV4dF90aW1lbGluZV91bmxvY2sodGwpOworCisJaWYgKHJxKSB7CisJCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChycSwKKwkJCQkgICAgICBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSwKKwkJCQkgICAgICBNQVhfU0NIRURVTEVfVElNRU9VVCkgPCAwKSB7CisJCQlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKKwkJCWVyciA9IC1FSU5UUjsKKwkJCWdvdG8gZXJyX2V4aXQ7CisJCX0KKworCQlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKKwl9CisKIAllYi0+ZW5naW5lID0gY2UtPmVuZ2luZTsKIAllYi0+Y29udGV4dCA9IGNlOwogCXJldHVybiAwOworCitlcnJfZXhpdDoKKwltdXRleF9sb2NrKCZ0bC0+bXV0ZXgpOworCWludGVsX2NvbnRleHRfZXhpdChjZSk7CisJaW50ZWxfY29udGV4dF90aW1lbGluZV91bmxvY2sodGwpOworZXJyX3VucGluOgorCV9fZWJfdW5waW5fY29udGV4dChlYiwgY2UpOworCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyB2b2lkIGViX3VucGluX2NvbnRleHQoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIpCitzdGF0aWMgdm9pZCBlYl91bnBpbl9lbmdpbmUoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIpCiB7Ci0JaW50ZWxfY29udGV4dF91bnBpbihlYi0+Y29udGV4dCk7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gZWItPmNvbnRleHQ7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCA9IGNlLT50aW1lbGluZTsKKworCW11dGV4X2xvY2soJnRsLT5tdXRleCk7CisJaW50ZWxfY29udGV4dF9leGl0KGNlKTsKKwltdXRleF91bmxvY2soJnRsLT5tdXRleCk7CisKKwlfX2ViX3VucGluX2NvbnRleHQoZWIsIGNlKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGludApAQCAtMjE2NSw3ICsyMjM1LDcgQEAgZWJfc2VsZWN0X2xlZ2FjeV9yaW5nKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAogCQlyZXR1cm4gLTE7CiAJfQogCi0JaWYgKHVzZXJfcmluZ19pZCA9PSBJOTE1X0VYRUNfQlNEICYmIEhBU19FTkdJTkUoaTkxNSwgVkNTMSkpIHsKKwlpZiAodXNlcl9yaW5nX2lkID09IEk5MTVfRVhFQ19CU0QgJiYgbnVtX3Zjc19lbmdpbmVzKGk5MTUpID4gMSkgewogCQl1bnNpZ25lZCBpbnQgYnNkX2lkeCA9IGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0JTRF9NQVNLOwogCiAJCWlmIChic2RfaWR4ID09IEk5MTVfRVhFQ19CU0RfREVGQVVMVCkgewpAQCAtMjE5Miw5ICsyMjYyLDkgQEAgZWJfc2VsZWN0X2xlZ2FjeV9yaW5nKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAogfQogCiBzdGF0aWMgaW50Ci1lYl9zZWxlY3RfZW5naW5lKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAotCQkgc3RydWN0IGRybV9maWxlICpmaWxlLAotCQkgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncykKK2ViX3Bpbl9lbmdpbmUoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCisJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlLAorCSAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFyZ3MpCiB7CiAJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCXVuc2lnbmVkIGludCBpZHg7CkBAIC0yMjA5LDcgKzIyNzksNyBAQCBlYl9zZWxlY3RfZW5naW5lKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAogCWlmIChJU19FUlIoY2UpKQogCQlyZXR1cm4gUFRSX0VSUihjZSk7CiAKLQllcnIgPSBlYl9waW5fY29udGV4dChlYiwgY2UpOworCWVyciA9IF9fZWJfcGluX2VuZ2luZShlYiwgY2UpOwogCWludGVsX2NvbnRleHRfcHV0KGNlKTsKIAogCXJldHVybiBlcnI7CkBAIC0yNDI3LDI1ICsyNDk3LDEyIEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAodW5saWtlbHkoZXJyKSkKIAkJZ290byBlcnJfZGVzdHJveTsKIAotCS8qCi0JICogVGFrZSBhIGxvY2FsIHdha2VyZWYgZm9yIHByZXBhcmluZyB0byBkaXNwYXRjaCB0aGUgZXhlY2J1ZiBhcwotCSAqIHdlIGV4cGVjdCB0byBhY2Nlc3MgdGhlIGhhcmR3YXJlIGZhaXJseSBmcmVxdWVudGx5IGluIHRoZQotCSAqIHByb2Nlc3MuIFVwb24gZmlyc3QgZGlzcGF0Y2gsIHdlIGFjcXVpcmUgYW5vdGhlciBwcm9sb25nZWQKLQkgKiB3YWtlcmVmIHRoYXQgd2UgaG9sZCB1bnRpbCB0aGUgR1BVIGhhcyBiZWVuIGlkbGUgZm9yIGF0IGxlYXN0Ci0JICogMTAwbXMuCi0JICovCi0JaW50ZWxfZ3RfcG1fZ2V0KGViLmk5MTUpOworCWVyciA9IGViX3Bpbl9lbmdpbmUoJmViLCBmaWxlLCBhcmdzKTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byBlcnJfY29udGV4dDsKIAogCWVyciA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7CiAJaWYgKGVycikKLQkJZ290byBlcnJfcnBtOwotCi0JZXJyID0gZWJfc2VsZWN0X2VuZ2luZSgmZWIsIGZpbGUsIGFyZ3MpOwotCWlmICh1bmxpa2VseShlcnIpKQotCQlnb3RvIGVycl91bmxvY2s7Ci0KLQllcnIgPSBlYl93YWl0X2Zvcl9yaW5nKCZlYik7IC8qIG1heSB0ZW1wb3JhcmlseSBkcm9wIHN0cnVjdF9tdXRleCAqLwotCWlmICh1bmxpa2VseShlcnIpKQogCQlnb3RvIGVycl9lbmdpbmU7CiAKIAllcnIgPSBlYl9yZWxvY2F0ZSgmZWIpOwpAQCAtMjU3Miw2ICsyNjI5LDggQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqIHRvIGV4cGxpY2l0bHkgaG9sZCBhbm90aGVyIHJlZmVyZW5jZSBoZXJlLgogCSAqLwogCWViLnJlcXVlc3QtPmJhdGNoID0gZWIuYmF0Y2g7CisJaWYgKGViLmJhdGNoLT5wcml2YXRlKQorCQlpbnRlbF9lbmdpbmVfcG9vbF9tYXJrX2FjdGl2ZShlYi5iYXRjaC0+cHJpdmF0ZSwgZWIucmVxdWVzdCk7CiAKIAl0cmFjZV9pOTE1X3JlcXVlc3RfcXVldWUoZWIucmVxdWVzdCwgZWIuYmF0Y2hfZmxhZ3MpOwogCWVyciA9IGViX3N1Ym1pdCgmZWIpOwpAQCAtMjU5NiwxNSArMjY1NSwxNSBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiBlcnJfYmF0Y2hfdW5waW46CiAJaWYgKGViLmJhdGNoX2ZsYWdzICYgSTkxNV9ESVNQQVRDSF9TRUNVUkUpCiAJCWk5MTVfdm1hX3VucGluKGViLmJhdGNoKTsKKwlpZiAoZWIuYmF0Y2gtPnByaXZhdGUpCisJCWludGVsX2VuZ2luZV9wb29sX3B1dChlYi5iYXRjaC0+cHJpdmF0ZSk7CiBlcnJfdm1hOgogCWlmIChlYi5leGVjKQogCQllYl9yZWxlYXNlX3ZtYXMoJmViKTsKLWVycl9lbmdpbmU6Ci0JZWJfdW5waW5fY29udGV4dCgmZWIpOwotZXJyX3VubG9jazoKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLWVycl9ycG06Ci0JaW50ZWxfZ3RfcG1fcHV0KGViLmk5MTUpOworZXJyX2VuZ2luZToKKwllYl91bnBpbl9lbmdpbmUoJmViKTsKK2Vycl9jb250ZXh0OgogCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGViLmdlbV9jb250ZXh0KTsKIGVycl9kZXN0cm95OgogCWViX2Rlc3Ryb3koJmViKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2ZlbmNlLmMKaW5kZXggY2YwNDM5ZS4uMmY2MTAwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2ZlbmNlLmMKQEAgLTY5LDggKzY5LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2xvY2tfZmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAogCWk5MTVfc3dfZmVuY2VfaW5pdCgmc3R1Yi0+Y2hhaW4sIHN0dWJfbm90aWZ5KTsKIAlkbWFfZmVuY2VfaW5pdCgmc3R1Yi0+ZG1hLCAmc3R1Yl9mZW5jZV9vcHMsICZzdHViLT5jaGFpbi53YWl0LmxvY2ssCi0JCSAgICAgICB0b19pOTE1KG9iai0+YmFzZS5kZXYpLT5tbS51bm9yZGVyZWRfdGltZWxpbmUsCi0JCSAgICAgICAwKTsKKwkJICAgICAgIDAsIDApOwogCiAJaWYgKGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2YXRpb24oJnN0dWItPmNoYWluLAogCQkJCQkgICAgb2JqLT5iYXNlLnJlc3YsIE5VTEwsCkBAIC03OCw3ICs3Nyw3IEBAIGk5MTVfZ2VtX29iamVjdF9sb2NrX2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCQkJCSAgICBJOTE1X0ZFTkNFX0dGUCkgPCAwKQogCQlnb3RvIGVycjsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShvYmotPmJhc2UucmVzdiwgJnN0dWItPmRtYSk7CisJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2Uob2JqLT5iYXNlLnJlc3YsICZzdHViLT5kbWEpOwogCiAJcmV0dXJuICZzdHViLT5kbWE7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jCmluZGV4IDM5YTY2MTkuLjI2MWM5YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwpAQCAtNywxMiArNywxNCBAQAogI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KICNpbmNsdWRlIDxsaW51eC9zaXplcy5oPgogCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKKwogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fZ3R0LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1faW9jdGxzLmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCisjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogI2luY2x1ZGUgImk5MTVfdm1hLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAKIHN0YXRpYyBpbmxpbmUgYm9vbAogX192bWFfbWF0Y2hlcyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IGZpbGUgKmZpbHAsCkBAIC05OSw5ICsxMDEsNiBAQCBpOTE1X2dlbV9tbWFwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOwogCQlpZiAoSVNfRVJSX1ZBTFVFKGFkZHIpKQogCQkJZ290byBlcnI7Ci0KLQkJLyogVGhpcyBtYXkgcmFjZSwgYnV0IHRoYXQncyBvaywgaXQgb25seSBnZXRzIHNldCAqLwotCQlXUklURV9PTkNFKG9iai0+ZnJvbnRidWZmZXJfZ2d0dF9vcmlnaW4sIE9SSUdJTl9DUFUpOwogCX0KIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiAKQEAgLTI0Niw3ICsyNDUsNyBAQCB2bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCiAJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KHJwbSk7CiAKLQlzcmN1ID0gaTkxNV9yZXNldF90cnlsb2NrKGk5MTUpOworCXNyY3UgPSBpbnRlbF9ndF9yZXNldF90cnlsb2NrKGdndHQtPnZtLmd0KTsKIAlpZiAoc3JjdSA8IDApIHsKIAkJcmV0ID0gc3JjdTsKIAkJZ290byBlcnJfcnBtOwpAQCAtMjY1LDE1ICsyNjQsMTUgQEAgdm1fZmF1bHRfdCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkvKiBOb3cgcGluIGl0IGludG8gdGhlIEdUVCBhcyBuZWVkZWQgKi8KIAl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCBOVUxMLCAwLCAwLAogCQkJCSAgICAgICBQSU5fTUFQUEFCTEUgfAotCQkJCSAgICAgICBQSU5fTk9OQkxPQ0sgfAotCQkJCSAgICAgICBQSU5fTk9ORkFVTFQpOworCQkJCSAgICAgICBQSU5fTk9OQkxPQ0sgLyogTk9XQVJOICovIHwKKwkJCQkgICAgICAgUElOX05PRVZJQ1QpOwogCWlmIChJU19FUlIodm1hKSkgewogCQkvKiBVc2UgYSBwYXJ0aWFsIHZpZXcgaWYgaXQgaXMgYmlnZ2VyIHRoYW4gYXZhaWxhYmxlIHNwYWNlICovCiAJCXN0cnVjdCBpOTE1X2dndHRfdmlldyB2aWV3ID0KIAkJCWNvbXB1dGVfcGFydGlhbF92aWV3KG9iaiwgcGFnZV9vZmZzZXQsIE1JTl9DSFVOS19QQUdFUyk7CiAJCXVuc2lnbmVkIGludCBmbGFnczsKIAotCQlmbGFncyA9IFBJTl9NQVBQQUJMRTsKKwkJZmxhZ3MgPSBQSU5fTUFQUEFCTEUgfCBQSU5fTk9TRUFSQ0g7CiAJCWlmICh2aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMKQogCQkJZmxhZ3MgfD0gUElOX05PTkJMT0NLOyAvKiBhdm9pZCB3YXJuaW5ncyBmb3IgcGlubmVkICovCiAKQEAgLTI4MSwxMCArMjgwLDkgQEAgdm1fZmF1bHRfdCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkJICogVXNlcnNwYWNlIGlzIG5vdyB3cml0aW5nIHRocm91Z2ggYW4gdW50cmFja2VkIFZNQSwgYWJhbmRvbgogCQkgKiBhbGwgaG9wZSB0aGF0IHRoZSBoYXJkd2FyZSBpcyBhYmxlIHRvIHRyYWNrIGZ1dHVyZSB3cml0ZXMuCiAJCSAqLwotCQlvYmotPmZyb250YnVmZmVyX2dndHRfb3JpZ2luID0gT1JJR0lOX0NQVTsKIAogCQl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCAmdmlldywgMCwgMCwgZmxhZ3MpOwotCQlpZiAoSVNfRVJSKHZtYSkgJiYgIXZpZXcudHlwZSkgeworCQlpZiAoSVNfRVJSKHZtYSkpIHsKIAkJCWZsYWdzID0gUElOX01BUFBBQkxFOwogCQkJdmlldy50eXBlID0gSTkxNV9HR1RUX1ZJRVdfUEFSVElBTDsKIAkJCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosICZ2aWV3LCAwLCAwLCBmbGFncyk7CkBAIC0zMDgsMTQgKzMwNiwxNyBAQCB2bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCWlmIChyZXQpCiAJCWdvdG8gZXJyX2ZlbmNlOwogCi0JLyogTWFyayBhcyBiZWluZyBtbWFwcGVkIGludG8gdXNlcnNwYWNlIGZvciBsYXRlciByZXZvY2F0aW9uICovCiAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHJwbSk7CisKKwkvKiBNYXJrIGFzIGJlaW5nIG1tYXBwZWQgaW50byB1c2Vyc3BhY2UgZm9yIGxhdGVyIHJldm9jYXRpb24gKi8KKwltdXRleF9sb2NrKCZpOTE1LT5nZ3R0LnZtLm11dGV4KTsKIAlpZiAoIWk5MTVfdm1hX3NldF91c2VyZmF1bHQodm1hKSAmJiAhb2JqLT51c2VyZmF1bHRfY291bnQrKykKIAkJbGlzdF9hZGQoJm9iai0+dXNlcmZhdWx0X2xpbmssICZpOTE1LT5nZ3R0LnVzZXJmYXVsdF9saXN0KTsKKwltdXRleF91bmxvY2soJmk5MTUtPmdndHQudm0ubXV0ZXgpOworCiAJaWYgKENPTkZJR19EUk1fSTkxNV9VU0VSRkFVTFRfQVVUT1NVU1BFTkQpCiAJCWludGVsX3dha2VyZWZfYXV0bygmaTkxNS0+Z2d0dC51c2VyZmF1bHRfd2FrZXJlZiwKIAkJCQkgICBtc2Vjc190b19qaWZmaWVzX3RpbWVvdXQoQ09ORklHX0RSTV9JOTE1X1VTRVJGQVVMVF9BVVRPU1VTUEVORCkpOwotCUdFTV9CVUdfT04oIW9iai0+dXNlcmZhdWx0X2NvdW50KTsKIAogCWk5MTVfdm1hX3NldF9nZ3R0X3dyaXRlKHZtYSk7CiAKQEAgLTMyNiw3ICszMjcsNyBAQCB2bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogZXJyX3VubG9jazoKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIGVycl9yZXNldDoKLQlpOTE1X3Jlc2V0X3VubG9jayhpOTE1LCBzcmN1KTsKKwlpbnRlbF9ndF9yZXNldF91bmxvY2soZ2d0dC0+dm0uZ3QsIHNyY3UpOwogZXJyX3JwbToKIAlpbnRlbF9ydW50aW1lX3BtX3B1dChycG0sIHdha2VyZWYpOwogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwpAQCAtMzM5LDcgKzM0MCw3IEBAIHZtX2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJCSAqIGZhaWwpLiBCdXQgYW55IG90aGVyIC1FSU8gaXNuJ3Qgb3VycyAoZS5nLiBzd2FwIGluIGZhaWx1cmUpCiAJCSAqIGFuZCBzbyBuZWVkcyB0byBiZSByZXBvcnRlZC4KIAkJICovCi0JCWlmICghaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1KSkKKwkJaWYgKCFpbnRlbF9ndF9pc193ZWRnZWQoZ2d0dC0+dm0uZ3QpKQogCQkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsKIAkJLyogZWxzZSwgZmFsbCB0aHJvdWdoICovCiAJY2FzZSAtRUFHQUlOOgpAQCAtNDEwLDggKzQxMSw4IEBAIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCSAqIHJlcXVpcmVtZW50IHRoYXQgb3BlcmF0aW9ucyB0byB0aGUgR0dUVCBiZSBtYWRlIGhvbGRpbmcgdGhlIFJQTQogCSAqIHdha2VyZWYuCiAJICovCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKKwltdXRleF9sb2NrKCZpOTE1LT5nZ3R0LnZtLm11dGV4KTsKIAogCWlmICghb2JqLT51c2VyZmF1bHRfY291bnQpCiAJCWdvdG8gb3V0OwpAQCAtNDI4LDYgKzQyOSw3IEBAIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXdtYigpOwogCiBvdXQ6CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5nZ3R0LnZtLm11dGV4KTsKIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYwppbmRleCBiZTZjYWNjLi5kNzg1NWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCkBAIC0yMywxMiArMjMsMTMgQEAKICAqLwogCiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5oIgotCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX2NsZmx1c2guaCIKICNpbmNsdWRlICJpOTE1X2dlbV9jb250ZXh0LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCiAjaW5jbHVkZSAiaTkxNV9nbG9iYWxzLmgiCisjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogCiBzdGF0aWMgc3RydWN0IGk5MTVfZ2xvYmFsX29iamVjdCB7CiAJc3RydWN0IGk5MTVfZ2xvYmFsIGJhc2U7CkBAIC00NSwxNiArNDYsNiBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF9mcmVlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJcmV0dXJuIGttZW1fY2FjaGVfZnJlZShnbG9iYWwuc2xhYl9vYmplY3RzLCBvYmopOwogfQogCi1zdGF0aWMgdm9pZAotZnJvbnRidWZmZXJfcmV0aXJlKHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUsCi0JCSAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCi17Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9Ci0JCWNvbnRhaW5lcl9vZihhY3RpdmUsIHR5cGVvZigqb2JqKSwgZnJvbnRidWZmZXJfd3JpdGUpOwotCi0JaW50ZWxfZmJfb2JqX2ZsdXNoKG9iaiwgT1JJR0lOX0NTKTsKLX0KLQogdm9pZCBpOTE1X2dlbV9vYmplY3RfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgKm9wcykKIHsKQEAgLTYzLDE3ICs1NCwxNCBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF9pbml0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJc3Bpbl9sb2NrX2luaXQoJm9iai0+dm1hLmxvY2spOwogCUlOSVRfTElTVF9IRUFEKCZvYmotPnZtYS5saXN0KTsKIAorCUlOSVRfTElTVF9IRUFEKCZvYmotPm1tLmxpbmspOworCiAJSU5JVF9MSVNUX0hFQUQoJm9iai0+bHV0X2xpc3QpOwotCUlOSVRfTElTVF9IRUFEKCZvYmotPmJhdGNoX3Bvb2xfbGluayk7CiAKIAlpbml0X3JjdV9oZWFkKCZvYmotPnJjdSk7CiAKIAlvYmotPm9wcyA9IG9wczsKIAotCW9iai0+ZnJvbnRidWZmZXJfZ2d0dF9vcmlnaW4gPSBPUklHSU5fR1RUOwotCWk5MTVfYWN0aXZlX3JlcXVlc3RfaW5pdCgmb2JqLT5mcm9udGJ1ZmZlcl93cml0ZSwKLQkJCQkgTlVMTCwgZnJvbnRidWZmZXJfcmV0aXJlKTsKLQogCW9iai0+bW0ubWFkdiA9IEk5MTVfTUFEVl9XSUxMTkVFRDsKIAlJTklUX1JBRElYX1RSRUUoJm9iai0+bW0uZ2V0X3BhZ2UucmFkaXgsIEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4pOwogCW11dGV4X2luaXQoJm9iai0+bW0uZ2V0X3BhZ2UubG9jayk7CkBAIC0xNDYsNiArMTM0LDE5IEBAIHZvaWQgaTkxNV9nZW1fY2xvc2Vfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiAJfQogfQogCitzdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0X3JjdShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9CisJCWNvbnRhaW5lcl9vZihoZWFkLCB0eXBlb2YoKm9iaiksIHJjdSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOworCisJZG1hX3Jlc3ZfZmluaSgmb2JqLT5iYXNlLl9yZXN2KTsKKwlpOTE1X2dlbV9vYmplY3RfZnJlZShvYmopOworCisJR0VNX0JVR19PTighYXRvbWljX3JlYWQoJmk5MTUtPm1tLmZyZWVfY291bnQpKTsKKwlhdG9taWNfZGVjKCZpOTE1LT5tbS5mcmVlX2NvdW50KTsKK30KKwogc3RhdGljIHZvaWQgX19pOTE1X2dlbV9mcmVlX29iamVjdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJICAgIHN0cnVjdCBsbGlzdF9ub2RlICpmcmVlZCkKIHsKQEAgLTE2MCw3ICsxNjEsNiBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAogCQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCQlHRU1fQlVHX09OKGk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSk7CiAJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEsIHZuLCAmb2JqLT52bWEubGlzdCwgb2JqX2xpbmspIHsKIAkJCUdFTV9CVUdfT04oaTkxNV92bWFfaXNfYWN0aXZlKHZtYSkpOwogCQkJdm1hLT5mbGFncyAmPSB+STkxNV9WTUFfUElOX01BU0s7CkBAIC0xNjksMTEwICsxNjksNzAgQEAgc3RhdGljIHZvaWQgX19pOTE1X2dlbV9mcmVlX29iamVjdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJm9iai0+dm1hLmxpc3QpKTsKIAkJR0VNX0JVR19PTighUkJfRU1QVFlfUk9PVCgmb2JqLT52bWEudHJlZSkpOwogCi0JCS8qCi0JCSAqIFRoaXMgc2VyaWFsaXplcyBmcmVlaW5nIHdpdGggdGhlIHNocmlua2VyLiBTaW5jZSB0aGUgZnJlZQotCQkgKiBpcyBkZWxheWVkLCBmaXJzdCBieSBSQ1UgdGhlbiBieSB0aGUgd29ya3F1ZXVlLCB3ZSB3YW50IHRoZQotCQkgKiBzaHJpbmtlciB0byBiZSBhYmxlIHRvIGZyZWUgcGFnZXMgb2YgdW5yZWZlcmVuY2VkIG9iamVjdHMsCi0JCSAqIG9yIGVsc2Ugd2UgbWF5IG9vbSB3aGlsc3QgdGhlcmUgYXJlIHBsZW50eSBvZiBkZWZlcnJlZAotCQkgKiBmcmVlZCBvYmplY3RzLgotCQkgKi8KLQkJaWYgKGk5MTVfZ2VtX29iamVjdF9oYXNfcGFnZXMob2JqKSAmJgotCQkgICAgaTkxNV9nZW1fb2JqZWN0X2lzX3Nocmlua2FibGUob2JqKSkgewotCQkJdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCQkJc3Bpbl9sb2NrX2lycXNhdmUoJmk5MTUtPm1tLm9ial9sb2NrLCBmbGFncyk7Ci0JCQlsaXN0X2RlbF9pbml0KCZvYmotPm1tLmxpbmspOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTkxNS0+bW0ub2JqX2xvY2ssIGZsYWdzKTsKLQkJfQotCiAJCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAkJR0VNX0JVR19PTihhdG9taWNfcmVhZCgmb2JqLT5iaW5kX2NvdW50KSk7CiAJCUdFTV9CVUdfT04ob2JqLT51c2VyZmF1bHRfY291bnQpOwotCQlHRU1fQlVHX09OKGF0b21pY19yZWFkKCZvYmotPmZyb250YnVmZmVyX2JpdHMpKTsKIAkJR0VNX0JVR19PTighbGlzdF9lbXB0eSgmb2JqLT5sdXRfbGlzdCkpOwogCi0JCWlmIChvYmotPm9wcy0+cmVsZWFzZSkKLQkJCW9iai0+b3BzLT5yZWxlYXNlKG9iaik7Ci0KIAkJYXRvbWljX3NldCgmb2JqLT5tbS5wYWdlc19waW5fY291bnQsIDApOwogCQlfX2k5MTVfZ2VtX29iamVjdF9wdXRfcGFnZXMob2JqLCBJOTE1X01NX05PUk1BTCk7CiAJCUdFTV9CVUdfT04oaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopKTsKKwkJYml0bWFwX2ZyZWUob2JqLT5iaXRfMTcpOwogCiAJCWlmIChvYmotPmJhc2UuaW1wb3J0X2F0dGFjaCkKIAkJCWRybV9wcmltZV9nZW1fZGVzdHJveSgmb2JqLT5iYXNlLCBOVUxMKTsKIAotCQlkcm1fZ2VtX29iamVjdF9yZWxlYXNlKCZvYmotPmJhc2UpOworCQlkcm1fZ2VtX2ZyZWVfbW1hcF9vZmZzZXQoJm9iai0+YmFzZSk7CiAKLQkJYml0bWFwX2ZyZWUob2JqLT5iaXRfMTcpOwotCQlpOTE1X2dlbV9vYmplY3RfZnJlZShvYmopOworCQlpZiAob2JqLT5vcHMtPnJlbGVhc2UpCisJCQlvYmotPm9wcy0+cmVsZWFzZShvYmopOwogCi0JCUdFTV9CVUdfT04oIWF0b21pY19yZWFkKCZpOTE1LT5tbS5mcmVlX2NvdW50KSk7Ci0JCWF0b21pY19kZWMoJmk5MTUtPm1tLmZyZWVfY291bnQpOwotCi0JCWNvbmRfcmVzY2hlZCgpOworCQkvKiBCdXQga2VlcCB0aGUgcG9pbnRlciBhbGl2ZSBmb3IgUkNVLXByb3RlY3RlZCBsb29rdXBzICovCisJCWNhbGxfcmN1KCZvYmotPnJjdSwgX19pOTE1X2dlbV9mcmVlX29iamVjdF9yY3UpOwogCX0KIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiB9CiAKIHZvaWQgaTkxNV9nZW1fZmx1c2hfZnJlZV9vYmplY3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewotCXN0cnVjdCBsbGlzdF9ub2RlICpmcmVlZDsKKwlzdHJ1Y3QgbGxpc3Rfbm9kZSAqZnJlZWQgPSBsbGlzdF9kZWxfYWxsKCZpOTE1LT5tbS5mcmVlX2xpc3QpOwogCi0JLyogRnJlZSB0aGUgb2xkZXN0LCBtb3N0IHN0YWxlIG9iamVjdCB0byBrZWVwIHRoZSBmcmVlX2xpc3Qgc2hvcnQgKi8KLQlmcmVlZCA9IE5VTEw7Ci0JaWYgKCFsbGlzdF9lbXB0eSgmaTkxNS0+bW0uZnJlZV9saXN0KSkgeyAvKiBxdWljayB0ZXN0IGZvciBob3RwYXRoICovCi0JCS8qIE9ubHkgb25lIGNvbnN1bWVyIG9mIGxsaXN0X2RlbF9maXJzdCgpIGFsbG93ZWQgKi8KLQkJc3Bpbl9sb2NrKCZpOTE1LT5tbS5mcmVlX2xvY2spOwotCQlmcmVlZCA9IGxsaXN0X2RlbF9maXJzdCgmaTkxNS0+bW0uZnJlZV9saXN0KTsKLQkJc3Bpbl91bmxvY2soJmk5MTUtPm1tLmZyZWVfbG9jayk7Ci0JfQotCWlmICh1bmxpa2VseShmcmVlZCkpIHsKLQkJZnJlZWQtPm5leHQgPSBOVUxMOworCWlmICh1bmxpa2VseShmcmVlZCkpCiAJCV9faTkxNV9nZW1fZnJlZV9vYmplY3RzKGk5MTUsIGZyZWVkKTsKLQl9CiB9CiAKIHN0YXRpYyB2b2lkIF9faTkxNV9nZW1fZnJlZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgbW0uZnJlZV93b3JrKTsKLQlzdHJ1Y3QgbGxpc3Rfbm9kZSAqZnJlZWQ7CiAKLQkvKgotCSAqIEFsbCBmaWxlLW93bmVkIFZNQSBzaG91bGQgaGF2ZSBiZWVuIHJlbGVhc2VkIGJ5IHRoaXMgcG9pbnQgdGhyb3VnaAotCSAqIGk5MTVfZ2VtX2Nsb3NlX29iamVjdCgpLCBvciBlYXJsaWVyIGJ5IGk5MTVfZ2VtX2NvbnRleHRfY2xvc2UoKS4KLQkgKiBIb3dldmVyLCB0aGUgb2JqZWN0IG1heSBhbHNvIGJlIGJvdW5kIGludG8gdGhlIGdsb2JhbCBHVFQgKGUuZy4KLQkgKiBvbGRlciBHUFVzIHdpdGhvdXQgcGVyLXByb2Nlc3Mgc3VwcG9ydCwgb3IgZm9yIGRpcmVjdCBhY2Nlc3MgdGhyb3VnaAotCSAqIHRoZSBHVFQgZWl0aGVyIGZvciB0aGUgdXNlciBvciBmb3Igc2Nhbm91dCkuIFRob3NlIFZNQSBzdGlsbCBuZWVkIHRvCi0JICogdW5ib3VuZCBub3cuCi0JICovCi0KLQlzcGluX2xvY2soJmk5MTUtPm1tLmZyZWVfbG9jayk7Ci0Jd2hpbGUgKChmcmVlZCA9IGxsaXN0X2RlbF9hbGwoJmk5MTUtPm1tLmZyZWVfbGlzdCkpKSB7Ci0JCXNwaW5fdW5sb2NrKCZpOTE1LT5tbS5mcmVlX2xvY2spOwotCi0JCV9faTkxNV9nZW1fZnJlZV9vYmplY3RzKGk5MTUsIGZyZWVkKTsKLQkJaWYgKG5lZWRfcmVzY2hlZCgpKQotCQkJcmV0dXJuOwotCi0JCXNwaW5fbG9jaygmaTkxNS0+bW0uZnJlZV9sb2NrKTsKLQl9Ci0Jc3Bpbl91bmxvY2soJmk5MTUtPm1tLmZyZWVfbG9jayk7CisJaTkxNV9nZW1fZmx1c2hfZnJlZV9vYmplY3RzKGk5MTUpOwogfQogCi1zdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0X3JjdShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCit2b2lkIGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0KLQkJY29udGFpbmVyX29mKGhlYWQsIHR5cGVvZigqb2JqKSwgcmN1KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdG9faW50ZWxfYm8oZ2VtX29iaik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwogCisJR0VNX0JVR19PTihpOTE1X2dlbV9vYmplY3RfaXNfZnJhbWVidWZmZXIob2JqKSk7CisKIAkvKgotCSAqIFdlIHJldXNlIG9iai0+cmN1IGZvciB0aGUgZnJlZWQgbGlzdCwgc28gd2UgaGFkIGJldHRlciBub3QgdHJlYXQKLQkgKiBpdCBsaWtlIGEgcmN1X2hlYWQgZnJvbSB0aGlzIHBvaW50IGZvcndhcmRzLiBBbmQgd2UgZXhwZWN0IGFsbAotCSAqIG9iamVjdHMgdG8gYmUgZnJlZWQgdmlhIHRoaXMgcGF0aC4KKwkgKiBCZWZvcmUgd2UgZnJlZSB0aGUgb2JqZWN0LCBtYWtlIHN1cmUgYW55IHB1cmUgUkNVLW9ubHkKKwkgKiByZWFkLXNpZGUgY3JpdGljYWwgc2VjdGlvbnMgYXJlIGNvbXBsZXRlLCBlLmcuCisJICogaTkxNV9nZW1fYnVzeV9pb2N0bCgpLiBGb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3luY2hyb25pemVkCisJICogbG9va3VwIHNlZSBpOTE1X2dlbV9vYmplY3RfbG9va3VwX3JjdSgpLgogCSAqLwotCWRlc3Ryb3lfcmN1X2hlYWQoJm9iai0+cmN1KTsKKwlhdG9taWNfaW5jKCZpOTE1LT5tbS5mcmVlX2NvdW50KTsKKworCS8qCisJICogVGhpcyBzZXJpYWxpemVzIGZyZWVpbmcgd2l0aCB0aGUgc2hyaW5rZXIuIFNpbmNlIHRoZSBmcmVlCisJICogaXMgZGVsYXllZCwgZmlyc3QgYnkgUkNVIHRoZW4gYnkgdGhlIHdvcmtxdWV1ZSwgd2Ugd2FudCB0aGUKKwkgKiBzaHJpbmtlciB0byBiZSBhYmxlIHRvIGZyZWUgcGFnZXMgb2YgdW5yZWZlcmVuY2VkIG9iamVjdHMsCisJICogb3IgZWxzZSB3ZSBtYXkgb29tIHdoaWxzdCB0aGVyZSBhcmUgcGxlbnR5IG9mIGRlZmVycmVkCisJICogZnJlZWQgb2JqZWN0cy4KKwkgKi8KKwlpOTE1X2dlbV9vYmplY3RfbWFrZV91bnNocmlua2FibGUob2JqKTsKIAogCS8qCiAJICogU2luY2Ugd2UgcmVxdWlyZSBibG9ja2luZyBvbiBzdHJ1Y3RfbXV0ZXggdG8gdW5iaW5kIHRoZSBmcmVlZApAQCAtMjg4LDI3ICsyNDgsNiBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0X3JjdShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCiAJCXF1ZXVlX3dvcmsoaTkxNS0+d3EsICZpOTE1LT5tbS5mcmVlX3dvcmspOwogfQogCi12b2lkIGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaikKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdG9faW50ZWxfYm8oZ2VtX29iaik7Ci0KLQkvKgotCSAqIEJlZm9yZSB3ZSBmcmVlIHRoZSBvYmplY3QsIG1ha2Ugc3VyZSBhbnkgcHVyZSBSQ1Utb25seQotCSAqIHJlYWQtc2lkZSBjcml0aWNhbCBzZWN0aW9ucyBhcmUgY29tcGxldGUsIGUuZy4KLQkgKiBpOTE1X2dlbV9idXN5X2lvY3RsKCkuIEZvciB0aGUgY29ycmVzcG9uZGluZyBzeW5jaHJvbml6ZWQKLQkgKiBsb29rdXAgc2VlIGk5MTVfZ2VtX29iamVjdF9sb29rdXBfcmN1KCkuCi0JICovCi0JYXRvbWljX2luYygmdG9faTkxNShvYmotPmJhc2UuZGV2KS0+bW0uZnJlZV9jb3VudCk7Ci0JY2FsbF9yY3UoJm9iai0+cmN1LCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0X3JjdSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgZW51bSBmYl9vcF9vcmlnaW4KLWZiX3dyaXRlX29yaWdpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCB1bnNpZ25lZCBpbnQgZG9tYWluKQotewotCXJldHVybiAoZG9tYWluID09IEk5MTVfR0VNX0RPTUFJTl9HVFQgPwotCQlvYmotPmZyb250YnVmZmVyX2dndHRfb3JpZ2luIDogT1JJR0lOX0NQVSk7Ci19Ci0KIHN0YXRpYyBib29sIGdwdV93cml0ZV9uZWVkc19jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJcmV0dXJuICEob2JqLT5jYWNoZV9sZXZlbCA9PSBJOTE1X0NBQ0hFX05PTkUgfHwKQEAgLTMxOSw3ICsyNTgsNiBAQCB2b2lkCiBpOTE1X2dlbV9vYmplY3RfZmx1c2hfd3JpdGVfZG9tYWluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJICAgdW5zaWduZWQgaW50IGZsdXNoX2RvbWFpbnMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAogCWFzc2VydF9vYmplY3RfaGVsZChvYmopOwpAQCAtMzI5LDEwICsyNjcsMTAgQEAgaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX3dyaXRlX2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiAJc3dpdGNoIChvYmotPndyaXRlX2RvbWFpbikgewogCWNhc2UgSTkxNV9HRU1fRE9NQUlOX0dUVDoKLQkJaTkxNV9nZW1fZmx1c2hfZ2d0dF93cml0ZXMoZGV2X3ByaXYpOworCQlmb3JfZWFjaF9nZ3R0X3ZtYSh2bWEsIG9iaikKKwkJCWludGVsX2d0X2ZsdXNoX2dndHRfd3JpdGVzKHZtYS0+dm0tPmd0KTsKIAotCQlpbnRlbF9mYl9vYmpfZmx1c2gob2JqLAotCQkJCSAgIGZiX3dyaXRlX29yaWdpbihvYmosIEk5MTVfR0VNX0RPTUFJTl9HVFQpKTsKKwkJaW50ZWxfZnJvbnRidWZmZXJfZmx1c2gob2JqLT5mcm9udGJ1ZmZlciwgT1JJR0lOX0NQVSk7CiAKIAkJZm9yX2VhY2hfZ2d0dF92bWEodm1hLCBvYmopIHsKIAkJCWlmICh2bWEtPmlvbWFwKQpAQCAtMzQwLDYgKzI3OCw3IEBAIGk5MTVfZ2VtX29iamVjdF9mbHVzaF93cml0ZV9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogCQkJaTkxNV92bWFfdW5zZXRfZ2d0dF93cml0ZSh2bWEpOwogCQl9CisKIAkJYnJlYWs7CiAKIAljYXNlIEk5MTVfR0VNX0RPTUFJTl9XQzoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaAppbmRleCBkZmViZDU3Li41ZWZiOTkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCkBAIC04MSw3ICs4MSw3IEBAIGk5MTVfZ2VtX29iamVjdF9sb29rdXAoc3RydWN0IGRybV9maWxlICpmaWxlLCB1MzIgaGFuZGxlKQogfQogCiBfX2RlcHJlY2F0ZWQKLWV4dGVybiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKgorc3RydWN0IGRybV9nZW1fb2JqZWN0ICoKIGRybV9nZW1fb2JqZWN0X2xvb2t1cChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHUzMiBoYW5kbGUpOwogCiBfX2F0dHJpYnV0ZV9fKChub25udWxsKSkKQEAgLTk5LDIyICs5OSwyMiBAQCBpOTE1X2dlbV9vYmplY3RfcHV0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJX19kcm1fZ2VtX29iamVjdF9wdXQoJm9iai0+YmFzZSk7CiB9CiAKLSNkZWZpbmUgYXNzZXJ0X29iamVjdF9oZWxkKG9iaikgcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKChvYmopLT5iYXNlLnJlc3YpCisjZGVmaW5lIGFzc2VydF9vYmplY3RfaGVsZChvYmopIGRtYV9yZXN2X2Fzc2VydF9oZWxkKChvYmopLT5iYXNlLnJlc3YpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9vYmplY3RfbG9jayhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewotCXJlc2VydmF0aW9uX29iamVjdF9sb2NrKG9iai0+YmFzZS5yZXN2LCBOVUxMKTsKKwlkbWFfcmVzdl9sb2NrKG9iai0+YmFzZS5yZXN2LCBOVUxMKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQKIGk5MTVfZ2VtX29iamVjdF9sb2NrX2ludGVycnVwdGlibGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlyZXR1cm4gcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2tfaW50ZXJydXB0aWJsZShvYmotPmJhc2UucmVzdiwgTlVMTCk7CisJcmV0dXJuIGRtYV9yZXN2X2xvY2tfaW50ZXJydXB0aWJsZShvYmotPmJhc2UucmVzdiwgTlVMTCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9vYmplY3RfdW5sb2NrKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0JcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhvYmotPmJhc2UucmVzdik7CisJZG1hX3Jlc3ZfdW5sb2NrKG9iai0+YmFzZS5yZXN2KTsKIH0KIAogc3RydWN0IGRtYV9mZW5jZSAqCkBAIC0xNTksMTUgKzE1OSw5IEBAIGk5MTVfZ2VtX29iamVjdF9uZWVkc19hc3luY19jYW5jZWwoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIH0KIAogc3RhdGljIGlubGluZSBib29sCi1pOTE1X2dlbV9vYmplY3RfaXNfYWN0aXZlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCi17Ci0JcmV0dXJuIFJFQURfT05DRShvYmotPmFjdGl2ZV9jb3VudCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbAogaTkxNV9nZW1fb2JqZWN0X2lzX2ZyYW1lYnVmZmVyKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0JcmV0dXJuIFJFQURfT05DRShvYmotPmZyYW1lYnVmZmVyX3JlZmVyZW5jZXMpOworCXJldHVybiBSRUFEX09OQ0Uob2JqLT5mcm9udGJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50CkBAIC0zNzMsNyArMzY3LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2xhc3Rfd3JpdGVfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAlyY3VfcmVhZF9sb2NrKCk7Ci0JZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KG9iai0+YmFzZS5yZXN2KTsKKwlmZW5jZSA9IGRtYV9yZXN2X2dldF9leGNsX3JjdShvYmotPmJhc2UucmVzdik7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlpZiAoZmVuY2UgJiYgZG1hX2ZlbmNlX2lzX2k5MTUoZmVuY2UpICYmICFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQpAQCAtNDAwLDYgKzM5NCwxMCBAQCBpOTE1X2dlbV9vYmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkgICAgIHVuc2lnbmVkIGludCBmbGFncyk7CiB2b2lkIGk5MTVfZ2VtX29iamVjdF91bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGk5MTVfdm1hICp2bWEpOwogCit2b2lkIGk5MTVfZ2VtX29iamVjdF9tYWtlX3Vuc2hyaW5rYWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0X21ha2Vfc2hyaW5rYWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0X21ha2VfcHVyZ2VhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOworCiBzdGF0aWMgaW5saW5lIGJvb2wgY3B1X3dyaXRlX25lZWRzX2NsZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlpZiAob2JqLT5jYWNoZV9kaXJ0eSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X2JsdC5jCmluZGV4IGNiNDJlM2EuLjY0MTVmOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuYwpAQCAtMyw1OSArMywxMzYgQEAKICAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCiAgKi8KIAorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfY29udGV4dC5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV9wb29sLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKKyNpbmNsdWRlICJpOTE1X2dlbV9jbGZsdXNoLmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0X2JsdC5oIgogCi0jaW5jbHVkZSAiaTkxNV9nZW1fY2xmbHVzaC5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgotCi1pbnQgaW50ZWxfZW1pdF92bWFfZmlsbF9ibHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCi0JCQkgICAgc3RydWN0IGk5MTVfdm1hICp2bWEsCi0JCQkgICAgdTMyIHZhbHVlKQorc3RydWN0IGk5MTVfdm1hICppbnRlbF9lbWl0X3ZtYV9maWxsX2JsdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCQkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJCQkJIHUzMiB2YWx1ZSkKIHsKLQl1MzIgKmNzOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gY2UtPnZtLT5pOTE1OworCWNvbnN0IHUzMiBibG9ja19zaXplID0gUzE2X01BWCAqIFBBR0VfU0laRTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX3Bvb2xfbm9kZSAqcG9vbDsKKwlzdHJ1Y3QgaTkxNV92bWEgKmJhdGNoOworCXU2NCBvZmZzZXQ7CisJdTY0IGNvdW50OworCXU2NCByZW07CisJdTMyIHNpemU7CisJdTMyICpjbWQ7CisJaW50IGVycjsKIAotCWNzID0gaW50ZWxfcmluZ19iZWdpbihycSwgOCk7Ci0JaWYgKElTX0VSUihjcykpCi0JCXJldHVybiBQVFJfRVJSKGNzKTsKKwlHRU1fQlVHX09OKGludGVsX2VuZ2luZV9pc192aXJ0dWFsKGNlLT5lbmdpbmUpKTsKKwlpbnRlbF9lbmdpbmVfcG1fZ2V0KGNlLT5lbmdpbmUpOwogCi0JaWYgKElOVEVMX0dFTihycS0+aTkxNSkgPj0gOCkgewotCQkqY3MrKyA9IFhZX0NPTE9SX0JMVF9DTUQgfCBCTFRfV1JJVEVfUkdCQSB8ICg3IC0gMik7Ci0JCSpjcysrID0gQkxUX0RFUFRIXzMyIHwgQkxUX1JPUF9DT0xPUl9DT1BZIHwgUEFHRV9TSVpFOwotCQkqY3MrKyA9IDA7Ci0JCSpjcysrID0gdm1hLT5zaXplID4+IFBBR0VfU0hJRlQgPDwgMTYgfCBQQUdFX1NJWkUgLyA0OwotCQkqY3MrKyA9IGxvd2VyXzMyX2JpdHModm1hLT5ub2RlLnN0YXJ0KTsKLQkJKmNzKysgPSB1cHBlcl8zMl9iaXRzKHZtYS0+bm9kZS5zdGFydCk7Ci0JCSpjcysrID0gdmFsdWU7Ci0JCSpjcysrID0gTUlfTk9PUDsKLQl9IGVsc2UgewotCQkqY3MrKyA9IFhZX0NPTE9SX0JMVF9DTUQgfCBCTFRfV1JJVEVfUkdCQSB8ICg2IC0gMik7Ci0JCSpjcysrID0gQkxUX0RFUFRIXzMyIHwgQkxUX1JPUF9DT0xPUl9DT1BZIHwgUEFHRV9TSVpFOwotCQkqY3MrKyA9IDA7Ci0JCSpjcysrID0gdm1hLT5zaXplID4+IFBBR0VfU0hJRlQgPDwgMTYgfCBQQUdFX1NJWkUgLyA0OwotCQkqY3MrKyA9IHZtYS0+bm9kZS5zdGFydDsKLQkJKmNzKysgPSB2YWx1ZTsKLQkJKmNzKysgPSBNSV9OT09QOwotCQkqY3MrKyA9IE1JX05PT1A7CisJY291bnQgPSBkaXZfdTY0KHZtYS0+c2l6ZSwgYmxvY2tfc2l6ZSk7CisJc2l6ZSA9ICgxICsgOCAqIGNvdW50KSAqIHNpemVvZih1MzIpOworCXNpemUgPSByb3VuZF91cChzaXplLCBQQUdFX1NJWkUpOworCXBvb2wgPSBpbnRlbF9lbmdpbmVfcG9vbF9nZXQoJmNlLT5lbmdpbmUtPnBvb2wsIHNpemUpOworCWlmIChJU19FUlIocG9vbCkpIHsKKwkJZXJyID0gUFRSX0VSUihwb29sKTsKKwkJZ290byBvdXRfcG07CiAJfQogCi0JaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBjcyk7CisJY21kID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAocG9vbC0+b2JqLCBJOTE1X01BUF9XQyk7CisJaWYgKElTX0VSUihjbWQpKSB7CisJCWVyciA9IFBUUl9FUlIoY21kKTsKKwkJZ290byBvdXRfcHV0OworCX0KIAotCXJldHVybiAwOworCXJlbSA9IHZtYS0+c2l6ZTsKKwlvZmZzZXQgPSB2bWEtPm5vZGUuc3RhcnQ7CisKKwlkbyB7CisJCXUzMiBzaXplID0gbWluX3QodTY0LCByZW0sIGJsb2NrX3NpemUpOworCisJCUdFTV9CVUdfT04oc2l6ZSA+PiBQQUdFX1NISUZUID4gUzE2X01BWCk7CisKKwkJaWYgKElOVEVMX0dFTihpOTE1KSA+PSA4KSB7CisJCQkqY21kKysgPSBYWV9DT0xPUl9CTFRfQ01EIHwgQkxUX1dSSVRFX1JHQkEgfCAoNyAtIDIpOworCQkJKmNtZCsrID0gQkxUX0RFUFRIXzMyIHwgQkxUX1JPUF9DT0xPUl9DT1BZIHwgUEFHRV9TSVpFOworCQkJKmNtZCsrID0gMDsKKwkJCSpjbWQrKyA9IHNpemUgPj4gUEFHRV9TSElGVCA8PCAxNiB8IFBBR0VfU0laRSAvIDQ7CisJCQkqY21kKysgPSBsb3dlcl8zMl9iaXRzKG9mZnNldCk7CisJCQkqY21kKysgPSB1cHBlcl8zMl9iaXRzKG9mZnNldCk7CisJCQkqY21kKysgPSB2YWx1ZTsKKwkJfSBlbHNlIHsKKwkJCSpjbWQrKyA9IFhZX0NPTE9SX0JMVF9DTUQgfCBCTFRfV1JJVEVfUkdCQSB8ICg2IC0gMik7CisJCQkqY21kKysgPSBCTFRfREVQVEhfMzIgfCBCTFRfUk9QX0NPTE9SX0NPUFkgfCBQQUdFX1NJWkU7CisJCQkqY21kKysgPSAwOworCQkJKmNtZCsrID0gc2l6ZSA+PiBQQUdFX1NISUZUIDw8IDE2IHwgUEFHRV9TSVpFIC8gNDsKKwkJCSpjbWQrKyA9IG9mZnNldDsKKwkJCSpjbWQrKyA9IHZhbHVlOworCQl9CisKKwkJLyogQWxsb3cgb3Vyc2VsdmVzIHRvIGJlIHByZWVtcHRlZCBpbiBiZXR3ZWVuIGJsb2Nrcy4gKi8KKwkJKmNtZCsrID0gTUlfQVJCX0NIRUNLOworCisJCW9mZnNldCArPSBzaXplOworCQlyZW0gLT0gc2l6ZTsKKwl9IHdoaWxlIChyZW0pOworCisJKmNtZCA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7CisJaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChjZS0+dm0tPmd0KTsKKworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAocG9vbC0+b2JqKTsKKworCWJhdGNoID0gaTkxNV92bWFfaW5zdGFuY2UocG9vbC0+b2JqLCBjZS0+dm0sIE5VTEwpOworCWlmIChJU19FUlIoYmF0Y2gpKSB7CisJCWVyciA9IFBUUl9FUlIoYmF0Y2gpOworCQlnb3RvIG91dF9wdXQ7CisJfQorCisJZXJyID0gaTkxNV92bWFfcGluKGJhdGNoLCAwLCAwLCBQSU5fVVNFUik7CisJaWYgKHVubGlrZWx5KGVycikpCisJCWdvdG8gb3V0X3B1dDsKKworCWJhdGNoLT5wcml2YXRlID0gcG9vbDsKKwlyZXR1cm4gYmF0Y2g7CisKK291dF9wdXQ6CisJaW50ZWxfZW5naW5lX3Bvb2xfcHV0KHBvb2wpOworb3V0X3BtOgorCWludGVsX2VuZ2luZV9wbV9wdXQoY2UtPmVuZ2luZSk7CisJcmV0dXJuIEVSUl9QVFIoZXJyKTsKK30KKworaW50IGludGVsX2VtaXRfdm1hX21hcmtfYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlpbnQgZXJyOworCisJaTkxNV92bWFfbG9jayh2bWEpOworCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9vYmplY3QocnEsIHZtYS0+b2JqLCBmYWxzZSk7CisJaWYgKGVyciA9PSAwKQorCQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCAwKTsKKwlpOTE1X3ZtYV91bmxvY2sodm1hKTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJcmV0dXJuIGVycjsKKworCXJldHVybiBpbnRlbF9lbmdpbmVfcG9vbF9tYXJrX2FjdGl2ZSh2bWEtPnByaXZhdGUsIHJxKTsKK30KKwordm9pZCBpbnRlbF9lbWl0X3ZtYV9yZWxlYXNlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgc3RydWN0IGk5MTVfdm1hICp2bWEpCit7CisJaTkxNV92bWFfdW5waW4odm1hKTsKKwlpbnRlbF9lbmdpbmVfcG9vbF9wdXQodm1hLT5wcml2YXRlKTsKKwlpbnRlbF9lbmdpbmVfcG1fcHV0KGNlLT5lbmdpbmUpOwogfQogCiBpbnQgaTkxNV9nZW1fb2JqZWN0X2ZpbGxfYmx0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkJCSAgICAgdTMyIHZhbHVlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0gY2UtPmdlbV9jb250ZXh0OwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gY3R4LT52bSA/OiAmaTkxNS0+Z2d0dC52bTsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwlzdHJ1Y3QgaTkxNV92bWEgKmJhdGNoOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCWludCBlcnI7CiAKLQkvKiBYWFg6IGNlLT52bSBwbGVhc2UgKi8KLQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosIHZtLCBOVUxMKTsKKwl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosIGNlLT52bSwgTlVMTCk7CiAJaWYgKElTX0VSUih2bWEpKQogCQlyZXR1cm4gUFRSX0VSUih2bWEpOwogCkBAIC02OSwxMiArMTQ2LDIyIEBAIGludCBpOTE1X2dlbV9vYmplY3RfZmlsbF9ibHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhvYmopOwogCX0KIAotCXJxID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZShjZSk7Ci0JaWYgKElTX0VSUihycSkpIHsKLQkJZXJyID0gUFRSX0VSUihycSk7CisJYmF0Y2ggPSBpbnRlbF9lbWl0X3ZtYV9maWxsX2JsdChjZSwgdm1hLCB2YWx1ZSk7CisJaWYgKElTX0VSUihiYXRjaCkpIHsKKwkJZXJyID0gUFRSX0VSUihiYXRjaCk7CiAJCWdvdG8gb3V0X3VucGluOwogCX0KIAorCXJxID0gaW50ZWxfY29udGV4dF9jcmVhdGVfcmVxdWVzdChjZSk7CisJaWYgKElTX0VSUihycSkpIHsKKwkJZXJyID0gUFRSX0VSUihycSk7CisJCWdvdG8gb3V0X2JhdGNoOworCX0KKworCWVyciA9IGludGVsX2VtaXRfdm1hX21hcmtfYWN0aXZlKGJhdGNoLCBycSk7CisJaWYgKHVubGlrZWx5KGVycikpCisJCWdvdG8gb3V0X3JlcXVlc3Q7CisKIAllcnIgPSBpOTE1X3JlcXVlc3RfYXdhaXRfb2JqZWN0KHJxLCBvYmosIHRydWUpOwogCWlmICh1bmxpa2VseShlcnIpKQogCQlnb3RvIG91dF9yZXF1ZXN0OwpAQCAtODYsMjIgKzE3MywyMjkgQEAgaW50IGk5MTVfZ2VtX29iamVjdF9maWxsX2JsdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCX0KIAogCWk5MTVfdm1hX2xvY2sodm1hKTsKLQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCBFWEVDX09CSkVDVF9XUklURSk7CisJZXJyID0gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgdm1hLT5vYmosIHRydWUpOworCWlmIChlcnIgPT0gMCkKKwkJZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCBycSwgRVhFQ19PQkpFQ1RfV1JJVEUpOwogCWk5MTVfdm1hX3VubG9jayh2bWEpOwogCWlmICh1bmxpa2VseShlcnIpKQogCQlnb3RvIG91dF9yZXF1ZXN0OwogCi0JZXJyID0gaW50ZWxfZW1pdF92bWFfZmlsbF9ibHQocnEsIHZtYSwgdmFsdWUpOworCWVyciA9IGNlLT5lbmdpbmUtPmVtaXRfYmJfc3RhcnQocnEsCisJCQkJCWJhdGNoLT5ub2RlLnN0YXJ0LCBiYXRjaC0+bm9kZS5zaXplLAorCQkJCQkwKTsKIG91dF9yZXF1ZXN0OgogCWlmICh1bmxpa2VseShlcnIpKQogCQlpOTE1X3JlcXVlc3Rfc2tpcChycSwgZXJyKTsKIAogCWk5MTVfcmVxdWVzdF9hZGQocnEpOworb3V0X2JhdGNoOgorCWludGVsX2VtaXRfdm1hX3JlbGVhc2UoY2UsIGJhdGNoKTsKIG91dF91bnBpbjoKIAlpOTE1X3ZtYV91bnBpbih2bWEpOwogCXJldHVybiBlcnI7CiB9CiAKK3N0cnVjdCBpOTE1X3ZtYSAqaW50ZWxfZW1pdF92bWFfY29weV9ibHQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAorCQkJCQkgc3RydWN0IGk5MTVfdm1hICpzcmMsCisJCQkJCSBzdHJ1Y3QgaTkxNV92bWEgKmRzdCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGNlLT52bS0+aTkxNTsKKwljb25zdCB1MzIgYmxvY2tfc2l6ZSA9IFMxNl9NQVggKiBQQUdFX1NJWkU7CisJc3RydWN0IGludGVsX2VuZ2luZV9wb29sX25vZGUgKnBvb2w7CisJc3RydWN0IGk5MTVfdm1hICpiYXRjaDsKKwl1NjQgc3JjX29mZnNldCwgZHN0X29mZnNldDsKKwl1NjQgY291bnQsIHJlbTsKKwl1MzIgc2l6ZSwgKmNtZDsKKwlpbnQgZXJyOworCisJR0VNX0JVR19PTihzcmMtPnNpemUgIT0gZHN0LT5zaXplKTsKKworCUdFTV9CVUdfT04oaW50ZWxfZW5naW5lX2lzX3ZpcnR1YWwoY2UtPmVuZ2luZSkpOworCWludGVsX2VuZ2luZV9wbV9nZXQoY2UtPmVuZ2luZSk7CisKKwljb3VudCA9IGRpdl91NjQoZHN0LT5zaXplLCBibG9ja19zaXplKTsKKwlzaXplID0gKDEgKyAxMSAqIGNvdW50KSAqIHNpemVvZih1MzIpOworCXNpemUgPSByb3VuZF91cChzaXplLCBQQUdFX1NJWkUpOworCXBvb2wgPSBpbnRlbF9lbmdpbmVfcG9vbF9nZXQoJmNlLT5lbmdpbmUtPnBvb2wsIHNpemUpOworCWlmIChJU19FUlIocG9vbCkpIHsKKwkJZXJyID0gUFRSX0VSUihwb29sKTsKKwkJZ290byBvdXRfcG07CisJfQorCisJY21kID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAocG9vbC0+b2JqLCBJOTE1X01BUF9XQyk7CisJaWYgKElTX0VSUihjbWQpKSB7CisJCWVyciA9IFBUUl9FUlIoY21kKTsKKwkJZ290byBvdXRfcHV0OworCX0KKworCXJlbSA9IHNyYy0+c2l6ZTsKKwlzcmNfb2Zmc2V0ID0gc3JjLT5ub2RlLnN0YXJ0OworCWRzdF9vZmZzZXQgPSBkc3QtPm5vZGUuc3RhcnQ7CisKKwlkbyB7CisJCXNpemUgPSBtaW5fdCh1NjQsIHJlbSwgYmxvY2tfc2l6ZSk7CisJCUdFTV9CVUdfT04oc2l6ZSA+PiBQQUdFX1NISUZUID4gUzE2X01BWCk7CisKKwkJaWYgKElOVEVMX0dFTihpOTE1KSA+PSA5KSB7CisJCQkqY21kKysgPSBHRU45X1hZX0ZBU1RfQ09QWV9CTFRfQ01EIHwgKDEwIC0gMik7CisJCQkqY21kKysgPSBCTFRfREVQVEhfMzIgfCBQQUdFX1NJWkU7CisJCQkqY21kKysgPSAwOworCQkJKmNtZCsrID0gc2l6ZSA+PiBQQUdFX1NISUZUIDw8IDE2IHwgUEFHRV9TSVpFIC8gNDsKKwkJCSpjbWQrKyA9IGxvd2VyXzMyX2JpdHMoZHN0X29mZnNldCk7CisJCQkqY21kKysgPSB1cHBlcl8zMl9iaXRzKGRzdF9vZmZzZXQpOworCQkJKmNtZCsrID0gMDsKKwkJCSpjbWQrKyA9IFBBR0VfU0laRTsKKwkJCSpjbWQrKyA9IGxvd2VyXzMyX2JpdHMoc3JjX29mZnNldCk7CisJCQkqY21kKysgPSB1cHBlcl8zMl9iaXRzKHNyY19vZmZzZXQpOworCQl9IGVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSA4KSB7CisJCQkqY21kKysgPSBYWV9TUkNfQ09QWV9CTFRfQ01EIHwgQkxUX1dSSVRFX1JHQkEgfCAoMTAgLSAyKTsKKwkJCSpjbWQrKyA9IEJMVF9ERVBUSF8zMiB8IEJMVF9ST1BfU1JDX0NPUFkgfCBQQUdFX1NJWkU7CisJCQkqY21kKysgPSAwOworCQkJKmNtZCsrID0gc2l6ZSA+PiBQQUdFX1NISUZUIDw8IDE2IHwgUEFHRV9TSVpFIC8gNDsKKwkJCSpjbWQrKyA9IGxvd2VyXzMyX2JpdHMoZHN0X29mZnNldCk7CisJCQkqY21kKysgPSB1cHBlcl8zMl9iaXRzKGRzdF9vZmZzZXQpOworCQkJKmNtZCsrID0gMDsKKwkJCSpjbWQrKyA9IFBBR0VfU0laRTsKKwkJCSpjbWQrKyA9IGxvd2VyXzMyX2JpdHMoc3JjX29mZnNldCk7CisJCQkqY21kKysgPSB1cHBlcl8zMl9iaXRzKHNyY19vZmZzZXQpOworCQl9IGVsc2UgeworCQkJKmNtZCsrID0gU1JDX0NPUFlfQkxUX0NNRCB8IEJMVF9XUklURV9SR0JBIHwgKDYgLSAyKTsKKwkJCSpjbWQrKyA9IEJMVF9ERVBUSF8zMiB8IEJMVF9ST1BfU1JDX0NPUFkgfCBQQUdFX1NJWkU7CisJCQkqY21kKysgPSBzaXplID4+IFBBR0VfU0hJRlQgPDwgMTYgfCBQQUdFX1NJWkU7CisJCQkqY21kKysgPSBkc3Rfb2Zmc2V0OworCQkJKmNtZCsrID0gUEFHRV9TSVpFOworCQkJKmNtZCsrID0gc3JjX29mZnNldDsKKwkJfQorCisJCS8qIEFsbG93IG91cnNlbHZlcyB0byBiZSBwcmVlbXB0ZWQgaW4gYmV0d2VlbiBibG9ja3MuICovCisJCSpjbWQrKyA9IE1JX0FSQl9DSEVDSzsKKworCQlzcmNfb2Zmc2V0ICs9IHNpemU7CisJCWRzdF9vZmZzZXQgKz0gc2l6ZTsKKwkJcmVtIC09IHNpemU7CisJfSB3aGlsZSAocmVtKTsKKworCSpjbWQgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOworCWludGVsX2d0X2NoaXBzZXRfZmx1c2goY2UtPnZtLT5ndCk7CisKKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKHBvb2wtPm9iaik7CisKKwliYXRjaCA9IGk5MTVfdm1hX2luc3RhbmNlKHBvb2wtPm9iaiwgY2UtPnZtLCBOVUxMKTsKKwlpZiAoSVNfRVJSKGJhdGNoKSkgeworCQllcnIgPSBQVFJfRVJSKGJhdGNoKTsKKwkJZ290byBvdXRfcHV0OworCX0KKworCWVyciA9IGk5MTVfdm1hX3BpbihiYXRjaCwgMCwgMCwgUElOX1VTRVIpOworCWlmICh1bmxpa2VseShlcnIpKQorCQlnb3RvIG91dF9wdXQ7CisKKwliYXRjaC0+cHJpdmF0ZSA9IHBvb2w7CisJcmV0dXJuIGJhdGNoOworCitvdXRfcHV0OgorCWludGVsX2VuZ2luZV9wb29sX3B1dChwb29sKTsKK291dF9wbToKKwlpbnRlbF9lbmdpbmVfcG1fcHV0KGNlLT5lbmdpbmUpOworCXJldHVybiBFUlJfUFRSKGVycik7Cit9CisKK3N0YXRpYyBpbnQgbW92ZV90b19ncHUoc3RydWN0IGk5MTVfdm1hICp2bWEsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBib29sIHdyaXRlKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKKworCWlmIChvYmotPmNhY2hlX2RpcnR5ICYgfm9iai0+Y2FjaGVfY29oZXJlbnQpCisJCWk5MTVfZ2VtX2NsZmx1c2hfb2JqZWN0KG9iaiwgMCk7CisKKwlyZXR1cm4gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgb2JqLCB3cml0ZSk7Cit9CisKK2ludCBpOTE1X2dlbV9vYmplY3RfY29weV9ibHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnNyYywKKwkJCSAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmRzdCwKKwkJCSAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQoreworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jqc1tdID0geyAmc3JjLT5iYXNlLCAmZHN0LT5iYXNlIH07CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPSBjZS0+dm07CisJc3RydWN0IGk5MTVfdm1hICp2bWFbMl0sICpiYXRjaDsKKwlzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggYWNxdWlyZTsKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwlpbnQgZXJyLCBpOworCisJdm1hWzBdID0gaTkxNV92bWFfaW5zdGFuY2Uoc3JjLCB2bSwgTlVMTCk7CisJaWYgKElTX0VSUih2bWFbMF0pKQorCQlyZXR1cm4gUFRSX0VSUih2bWFbMF0pOworCisJZXJyID0gaTkxNV92bWFfcGluKHZtYVswXSwgMCwgMCwgUElOX1VTRVIpOworCWlmICh1bmxpa2VseShlcnIpKQorCQlyZXR1cm4gZXJyOworCisJdm1hWzFdID0gaTkxNV92bWFfaW5zdGFuY2UoZHN0LCB2bSwgTlVMTCk7CisJaWYgKElTX0VSUih2bWFbMV0pKQorCQlnb3RvIG91dF91bnBpbl9zcmM7CisKKwllcnIgPSBpOTE1X3ZtYV9waW4odm1hWzFdLCAwLCAwLCBQSU5fVVNFUik7CisJaWYgKHVubGlrZWx5KGVycikpCisJCWdvdG8gb3V0X3VucGluX3NyYzsKKworCWJhdGNoID0gaW50ZWxfZW1pdF92bWFfY29weV9ibHQoY2UsIHZtYVswXSwgdm1hWzFdKTsKKwlpZiAoSVNfRVJSKGJhdGNoKSkgeworCQllcnIgPSBQVFJfRVJSKGJhdGNoKTsKKwkJZ290byBvdXRfdW5waW5fZHN0OworCX0KKworCXJxID0gaW50ZWxfY29udGV4dF9jcmVhdGVfcmVxdWVzdChjZSk7CisJaWYgKElTX0VSUihycSkpIHsKKwkJZXJyID0gUFRSX0VSUihycSk7CisJCWdvdG8gb3V0X2JhdGNoOworCX0KKworCWVyciA9IGludGVsX2VtaXRfdm1hX21hcmtfYWN0aXZlKGJhdGNoLCBycSk7CisJaWYgKHVubGlrZWx5KGVycikpCisJCWdvdG8gb3V0X3JlcXVlc3Q7CisKKwllcnIgPSBkcm1fZ2VtX2xvY2tfcmVzZXJ2YXRpb25zKG9ianMsIEFSUkFZX1NJWkUob2JqcyksICZhY3F1aXJlKTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byBvdXRfcmVxdWVzdDsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHZtYSk7IGkrKykgeworCQllcnIgPSBtb3ZlX3RvX2dwdSh2bWFbaV0sIHJxLCBpKTsKKwkJaWYgKHVubGlrZWx5KGVycikpCisJCQlnb3RvIG91dF91bmxvY2s7CisJfQorCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodm1hKTsgaSsrKSB7CisJCXVuc2lnbmVkIGludCBmbGFncyA9IGkgPyBFWEVDX09CSkVDVF9XUklURSA6IDA7CisKKwkJZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hW2ldLCBycSwgZmxhZ3MpOworCQlpZiAodW5saWtlbHkoZXJyKSkKKwkJCWdvdG8gb3V0X3VubG9jazsKKwl9CisKKwlpZiAocnEtPmVuZ2luZS0+ZW1pdF9pbml0X2JyZWFkY3J1bWIpIHsKKwkJZXJyID0gcnEtPmVuZ2luZS0+ZW1pdF9pbml0X2JyZWFkY3J1bWIocnEpOworCQlpZiAodW5saWtlbHkoZXJyKSkKKwkJCWdvdG8gb3V0X3VubG9jazsKKwl9CisKKwllcnIgPSBycS0+ZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHJxLAorCQkJCQliYXRjaC0+bm9kZS5zdGFydCwgYmF0Y2gtPm5vZGUuc2l6ZSwKKwkJCQkJMCk7CitvdXRfdW5sb2NrOgorCWRybV9nZW1fdW5sb2NrX3Jlc2VydmF0aW9ucyhvYmpzLCBBUlJBWV9TSVpFKG9ianMpLCAmYWNxdWlyZSk7CitvdXRfcmVxdWVzdDoKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJaTkxNV9yZXF1ZXN0X3NraXAocnEsIGVycik7CisKKwlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKK291dF9iYXRjaDoKKwlpbnRlbF9lbWl0X3ZtYV9yZWxlYXNlKGNlLCBiYXRjaCk7CitvdXRfdW5waW5fZHN0OgorCWk5MTVfdm1hX3VucGluKHZtYVsxXSk7CitvdXRfdW5waW5fc3JjOgorCWk5MTVfdm1hX3VucGluKHZtYVswXSk7CisJcmV0dXJuIGVycjsKK30KKwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X2JsdC5oCmluZGV4IDdlYzdkZTYuLjI0M2E0M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuaApAQCAtOCwxNyArOCwzMCBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAotc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Q7Ci1zdHJ1Y3QgaW50ZWxfY29udGV4dDsKLXN0cnVjdCBpOTE1X3JlcXVlc3Q7Ci1zdHJ1Y3QgaTkxNV92bWE7CisjaW5jbHVkZSAiZ3QvaW50ZWxfY29udGV4dC5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV9wb29sLmgiCisjaW5jbHVkZSAiaTkxNV92bWEuaCIKIAotaW50IGludGVsX2VtaXRfdm1hX2ZpbGxfYmx0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAotCQkJICAgIHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAotCQkJICAgIHUzMiB2YWx1ZSk7CitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKKworc3RydWN0IGk5MTVfdm1hICppbnRlbF9lbWl0X3ZtYV9maWxsX2JsdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCQkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJCQkJIHUzMiB2YWx1ZSk7CisKK3N0cnVjdCBpOTE1X3ZtYSAqaW50ZWxfZW1pdF92bWFfY29weV9ibHQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAorCQkJCQkgc3RydWN0IGk5MTVfdm1hICpzcmMsCisJCQkJCSBzdHJ1Y3QgaTkxNV92bWEgKmRzdCk7CisKK2ludCBpbnRlbF9lbWl0X3ZtYV9tYXJrX2FjdGl2ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpOwordm9pZCBpbnRlbF9lbWl0X3ZtYV9yZWxlYXNlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgc3RydWN0IGk5MTVfdm1hICp2bWEpOwogCiBpbnQgaTkxNV9nZW1fb2JqZWN0X2ZpbGxfYmx0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkJCSAgICAgdTMyIHZhbHVlKTsKIAoraW50IGk5MTVfZ2VtX29iamVjdF9jb3B5X2JsdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc3JjLAorCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZHN0LAorCQkJICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAppbmRleCAxOGJmNGY4Li5lZGUwZWI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgogCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKK3N0cnVjdCBpbnRlbF9mcm9uYnVmZmVyOwogCiAvKgogICogc3RydWN0IGk5MTVfbHV0X2hhbmRsZSB0cmFja3MgdGhlIGZhc3QgbG9va3VwcyBmcm9tIGhhbmRsZSB0byB2bWEgdXNlZApAQCAtMTE0LDcgKzExNSw2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsKIAl1bnNpZ25lZCBpbnQgdXNlcmZhdWx0X2NvdW50OwogCXN0cnVjdCBsaXN0X2hlYWQgdXNlcmZhdWx0X2xpbms7CiAKLQlzdHJ1Y3QgbGlzdF9oZWFkIGJhdGNoX3Bvb2xfbGluazsKIAlJOTE1X1NFTEZURVNUX0RFQ0xBUkUoc3RydWN0IGxpc3RfaGVhZCBzdF9saW5rKTsKIAogCS8qCkBAIC0xNDIsOSArMTQyLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgewogCSAqLwogCXUxNiB3cml0ZV9kb21haW47CiAKLQlhdG9taWNfdCBmcm9udGJ1ZmZlcl9iaXRzOwotCXVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9nZ3R0X29yaWdpbjsgLyogd3JpdGUgb25jZSAqLwotCXN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0IGZyb250YnVmZmVyX3dyaXRlOworCXN0cnVjdCBpbnRlbF9mcm9udGJ1ZmZlciAqZnJvbnRidWZmZXI7CiAKIAkvKiogQ3VycmVudCB0aWxpbmcgc3RyaWRlIGZvciB0aGUgb2JqZWN0LCBpZiBpdCdzIHRpbGVkLiAqLwogCXVuc2lnbmVkIGludCB0aWxpbmdfYW5kX3N0cmlkZTsKQEAgLTE1NCw3ICsxNTIsNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAKIAkvKiogQ291bnQgb2YgVk1BIGFjdHVhbGx5IGJvdW5kIGJ5IHRoaXMgb2JqZWN0ICovCiAJYXRvbWljX3QgYmluZF9jb3VudDsKLQl1bnNpZ25lZCBpbnQgYWN0aXZlX2NvdW50OwogCS8qKiBDb3VudCBvZiBob3cgbWFueSBnbG9iYWwgVk1BIGFyZSBjdXJyZW50bHkgcGlubmVkIGZvciB1c2UgYnkgSFcgKi8KIAl1bnNpZ25lZCBpbnQgcGluX2dsb2JhbDsKIApAQCAtMjI2LDkgKzIyMyw2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsKIAkJYm9vbCBxdWlya2VkOjE7CiAJfSBtbTsKIAotCS8qKiBSZWZlcmVuY2VzIGZyb20gZnJhbWVidWZmZXJzLCBsb2NrcyBvdXQgdGlsaW5nIGNoYW5nZXMuICovCi0JdW5zaWduZWQgaW50IGZyYW1lYnVmZmVyX3JlZmVyZW5jZXM7Ci0KIAkvKiogUmVjb3JkIG9mIGFkZHJlc3MgYml0IDE3IG9mIGVhY2ggcGFnZSBhdCBsYXN0IHVuYmluZC4gKi8KIAl1bnNpZ25lZCBsb25nICpiaXRfMTc7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMKaW5kZXggNjVlYjQzMC4uMThmMGNlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMKQEAgLTE1MywyNCArMTUzLDEzIEBAIHN0YXRpYyB2b2lkIF9faTkxNV9nZW1fb2JqZWN0X3Jlc2V0X3BhZ2VfaXRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogc3RydWN0IHNnX3RhYmxlICoKIF9faTkxNV9nZW1fb2JqZWN0X3Vuc2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwogCXN0cnVjdCBzZ190YWJsZSAqcGFnZXM7CiAKIAlwYWdlcyA9IGZldGNoX2FuZF96ZXJvKCZvYmotPm1tLnBhZ2VzKTsKIAlpZiAoSVNfRVJSX09SX05VTEwocGFnZXMpKQogCQlyZXR1cm4gcGFnZXM7CiAKLQlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3Nocmlua2FibGUob2JqKSkgewotCQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JCXNwaW5fbG9ja19pcnFzYXZlKCZpOTE1LT5tbS5vYmpfbG9jaywgZmxhZ3MpOwotCi0JCWxpc3RfZGVsKCZvYmotPm1tLmxpbmspOwotCQlpOTE1LT5tbS5zaHJpbmtfY291bnQtLTsKLQkJaTkxNS0+bW0uc2hyaW5rX21lbW9yeSAtPSBvYmotPmJhc2Uuc2l6ZTsKLQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpOTE1LT5tbS5vYmpfbG9jaywgZmxhZ3MpOwotCX0KKwlpOTE1X2dlbV9vYmplY3RfbWFrZV91bnNocmlua2FibGUob2JqKTsKIAogCWlmIChvYmotPm1tLm1hcHBpbmcpIHsKIAkJdm9pZCAqcHRyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BoeXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9waHlzLmMKaW5kZXggMmRlYWM5My4uNzY4MzU2OTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9waHlzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BoeXMuYwpAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fbGVnYWN5Lmg+IC8qIGZvciBkcm1fcGNpLmghICovCiAjaW5jbHVkZSA8ZHJtL2RybV9wY2kuaD4KIAorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJpOTE1X3NjYXR0ZXJsaXN0LmgiCkBAIC02MCw3ICs2MSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCXZhZGRyICs9IFBBR0VfU0laRTsKIAl9CiAKLQlpOTE1X2dlbV9jaGlwc2V0X2ZsdXNoKHRvX2k5MTUob2JqLT5iYXNlLmRldikpOworCWludGVsX2d0X2NoaXBzZXRfZmx1c2goJnRvX2k5MTUob2JqLT5iYXNlLmRldiktPmd0KTsKIAogCXN0ID0ga21hbGxvYyhzaXplb2YoKnN0KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzdCkgewpAQCAtMTMyLDE2ICsxMzMsMTYgQEAgaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJZHJtX3BjaV9mcmVlKG9iai0+YmFzZS5kZXYsIG9iai0+cGh5c19oYW5kbGUpOwogfQogCi1zdGF0aWMgdm9pZAotaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIHZvaWQgcGh5c19yZWxlYXNlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0JaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CisJZnB1dChvYmotPmJhc2UuZmlscCk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1fcGh5c19vcHMgPSB7CiAJLmdldF9wYWdlcyA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfcGh5cywKIAkucHV0X3BhZ2VzID0gaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19waHlzLAotCS5yZWxlYXNlID0gaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfcGh5cywKKworCS5yZWxlYXNlID0gcGh5c19yZWxlYXNlLAogfTsKIAogaW50IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBpbnQgYWxpZ24pCkBAIC0xNTgsNyArMTU5LDcgQEAgaW50IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBpbnQgYWxpZ24pCiAJaWYgKG9iai0+b3BzICE9ICZpOTE1X2dlbV9zaG1lbV9vcHMpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JZXJyID0gaTkxNV9nZW1fb2JqZWN0X3VuYmluZChvYmopOworCWVyciA9IGk5MTVfZ2VtX29iamVjdF91bmJpbmQob2JqLCBJOTE1X0dFTV9PQkpFQ1RfVU5CSU5EX0FDVElWRSk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcG0uYwppbmRleCA5MTRiNWQ0Li45MmU1M2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcG0uYwpAQCAtNSw2ICs1LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3BtLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKICNpbmNsdWRlICJndC9pbnRlbF9ndF9wbS5oIgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKQEAgLTMzLDEyICszNCw5IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Bhcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCiAJCWNhbGxfaWRsZV9iYXJyaWVycyhlbmdpbmUpOyAvKiBjbGVhbnVwIGFmdGVyIHdlZGdpbmcgKi8KLQkJaTkxNV9nZW1fYmF0Y2hfcG9vbF9maW5pKCZlbmdpbmUtPmJhdGNoX3Bvb2wpOwotCX0KIAotCWk5MTVfdGltZWxpbmVzX3BhcmsoaTkxNSk7CiAJaTkxNV92bWFfcGFya2VkKGk5MTUpOwogCiAJaTkxNV9nbG9iYWxzX3BhcmsoKTsKQEAgLTU0LDcgKzUyLDggQEAgc3RhdGljIHZvaWQgaWRsZV93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiAJaW50ZWxfd2FrZXJlZl9sb2NrKCZpOTE1LT5ndC53YWtlcmVmKTsKLQlwYXJrID0gIWludGVsX3dha2VyZWZfYWN0aXZlKCZpOTE1LT5ndC53YWtlcmVmKSAmJiAhd29ya19wZW5kaW5nKHdvcmspOworCXBhcmsgPSAoIWludGVsX3dha2VyZWZfaXNfYWN0aXZlKCZpOTE1LT5ndC53YWtlcmVmKSAmJgorCQkhd29ya19wZW5kaW5nKHdvcmspKTsKIAlpbnRlbF93YWtlcmVmX3VubG9jaygmaTkxNS0+Z3Qud2FrZXJlZik7CiAJaWYgKHBhcmspCiAJCWk5MTVfZ2VtX3BhcmsoaTkxNSk7CkBAIC0xMDUsMTggKzEwNCwxOCBAQCBzdGF0aWMgaW50IHBtX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCiAJcmV0dXJuIE5PVElGWV9PSzsKIH0KIAotc3RhdGljIGJvb2wgc3dpdGNoX3RvX2tlcm5lbF9jb250ZXh0X3N5bmMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgYm9vbCBzd2l0Y2hfdG9fa2VybmVsX2NvbnRleHRfc3luYyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCWJvb2wgcmVzdWx0ID0gIWk5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNSk7CisJYm9vbCByZXN1bHQgPSAhaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KTsKIAogCWRvIHsKLQkJaWYgKGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwKKwkJaWYgKGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZ3QtPmk5MTUsCiAJCQkJCSAgIEk5MTVfV0FJVF9MT0NLRUQgfAogCQkJCQkgICBJOTE1X1dBSVRfRk9SX0lETEVfQk9PU1QsCiAJCQkJCSAgIEk5MTVfR0VNX0lETEVfVElNRU9VVCkgPT0gLUVUSU1FKSB7CiAJCQkvKiBYWFggaGlkZSB3YXJuaW5nIGZyb20gZ2VtX2VpbyAqLwogCQkJaWYgKGk5MTVfbW9kcGFyYW1zLnJlc2V0KSB7Ci0JCQkJZGV2X2VycihpOTE1LT5kcm0uZGV2LAorCQkJCWRldl9lcnIoZ3QtPmk5MTUtPmRybS5kZXYsCiAJCQkJCSJGYWlsZWQgdG8gaWRsZSBlbmdpbmVzLCBkZWNsYXJpbmcgd2VkZ2VkIVxuIik7CiAJCQkJR0VNX1RSQUNFX0RVTVAoKTsKIAkJCX0KQEAgLTEyNSwxOCArMTI0LDIwIEBAIHN0YXRpYyBib29sIHN3aXRjaF90b19rZXJuZWxfY29udGV4dF9zeW5jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQkJICogRm9yY2libHkgY2FuY2VsIG91dHN0YW5kaW5nIHdvcmsgYW5kIGxlYXZlCiAJCQkgKiB0aGUgZ3B1IHF1aWV0LgogCQkJICovCi0JCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZChndCk7CiAJCQlyZXN1bHQgPSBmYWxzZTsKIAkJfQotCX0gd2hpbGUgKGk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUpICYmIHJlc3VsdCk7CisJfSB3aGlsZSAoaTkxNV9yZXRpcmVfcmVxdWVzdHMoZ3QtPmk5MTUpICYmIHJlc3VsdCk7CiAKLQlHRU1fQlVHX09OKGk5MTUtPmd0LmF3YWtlKTsKKwlpZiAoaW50ZWxfZ3RfcG1fd2FpdF9mb3JfaWRsZShndCkpCisJCXJlc3VsdCA9IGZhbHNlOworCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBpOTE1X2dlbV9sb2FkX3Bvd2VyX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0JcmV0dXJuIHN3aXRjaF90b19rZXJuZWxfY29udGV4dF9zeW5jKGk5MTUpOworCXJldHVybiBzd2l0Y2hfdG9fa2VybmVsX2NvbnRleHRfc3luYygmaTkxNS0+Z3QpOwogfQogCiB2b2lkIGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCkBAIC0xNTcsMjIgKzE1OCwxNSBAQCB2b2lkIGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJICogc3RhdGUuIEZvcnR1bmF0ZWx5LCB0aGUga2VybmVsX2NvbnRleHQgaXMgZGlzcG9zYWJsZSBhbmQgd2UgZG8KIAkgKiBub3QgcmVseSBvbiBpdHMgc3RhdGUuCiAJICovCi0Jc3dpdGNoX3RvX2tlcm5lbF9jb250ZXh0X3N5bmMoaTkxNSk7CisJc3dpdGNoX3RvX2tlcm5lbF9jb250ZXh0X3N5bmMoJmk5MTUtPmd0KTsKIAogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQkvKgotCSAqIEFzc2VydCB0aGF0IHdlIHN1Y2Nlc3NmdWxseSBmbHVzaGVkIGFsbCB0aGUgd29yayBhbmQKLQkgKiByZXNldCB0aGUgR1BVIGJhY2sgdG8gaXRzIGlkbGUsIGxvdyBwb3dlciBzdGF0ZS4KLQkgKi8KLQlHRU1fQlVHX09OKGk5MTUtPmd0LmF3YWtlKTsKLQlmbHVzaF93b3JrKCZpOTE1LT5nZW0uaWRsZV93b3JrKTsKLQotCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmaTkxNS0+Z3B1X2Vycm9yLmhhbmdjaGVja193b3JrKTsKKwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmk5MTUtPmd0LmhhbmdjaGVjay53b3JrKTsKIAogCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoaTkxNSk7CiAKLQlpbnRlbF91Y19zdXNwZW5kKGk5MTUpOworCWludGVsX3VjX3N1c3BlbmQoJmk5MTUtPmd0LnVjKTsKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpmaXJzdF9tbV9vYmplY3Qoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKQEAgLTIzNyw3ICsyMzEsNiBAQCB2b2lkIGk5MTVfZ2VtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTkxNS0+bW0ub2JqX2xvY2ssIGZsYWdzKTsKIAotCWludGVsX3VjX3Nhbml0aXplKGk5MTUpOwogCWk5MTVfZ2VtX3Nhbml0aXplKGk5MTUpOwogfQogCkBAIC0yNDUsOCArMjM4LDYgQEAgdm9pZCBpOTE1X2dlbV9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJR0VNX1RSQUNFKCJcbiIpOwogCi0JV0FSTl9PTihpOTE1LT5ndC5hd2FrZSk7Ci0KIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCgmaTkxNS0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKIApAQCAtMjYxLDEwICsyNTIsMTAgQEAgdm9pZCBpOTE1X2dlbV9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJICogZ3VhcmFudGVlIHRoYXQgdGhlIGNvbnRleHQgaW1hZ2UgaXMgY29tcGxldGUuIFNvIGxldCdzIGp1c3QgcmVzZXQKIAkgKiBpdCBhbmQgc3RhcnQgYWdhaW4uCiAJICovCi0JaWYgKGludGVsX2d0X3Jlc3VtZShpOTE1KSkKKwlpZiAoaW50ZWxfZ3RfcmVzdW1lKCZpOTE1LT5ndCkpCiAJCWdvdG8gZXJyX3dlZGdlZDsKIAotCWludGVsX3VjX3Jlc3VtZShpOTE1KTsKKwlpbnRlbF91Y19yZXN1bWUoJmk5MTUtPmd0LnVjKTsKIAogCS8qIEFsd2F5cyByZWxvYWQgYSBjb250ZXh0IGZvciBwb3dlcnNhdmluZy4gKi8KIAlpZiAoIWk5MTVfZ2VtX2xvYWRfcG93ZXJfY29udGV4dChpOTE1KSkKQEAgLTI3NiwxMCArMjY3LDEwIEBAIHZvaWQgaTkxNV9nZW1fcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCXJldHVybjsKIAogZXJyX3dlZGdlZDoKLQlpZiAoIWk5MTVfcmVzZXRfZmFpbGVkKGk5MTUpKSB7CisJaWYgKCFpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkgewogCQlkZXZfZXJyKGk5MTUtPmRybS5kZXYsCiAJCQkiRmFpbGVkIHRvIHJlLWluaXRpYWxpemUgR1BVLCBkZWNsYXJpbmcgaXQgd2VkZ2VkIVxuIik7Ci0JCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CisJCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAl9CiAJZ290byBvdXRfdW5sb2NrOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3NobWVtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2htZW0uYwppbmRleCAxOWQ5ZWNkLi40YzQ5NTRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2htZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2htZW0uYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCiAjaW5jbHVkZSAiaTkxNV9zY2F0dGVybGlzdC5oIgorI2luY2x1ZGUgImk5MTVfdHJhY2UuaCIKIAogLyoKICAqIE1vdmUgcGFnZXMgdG8gYXBwcm9wcmlhdGUgbHJ1IGFuZCByZWxlYXNlIHRoZSBwYWdldmVjLCBkZWNyZW1lbnRpbmcgdGhlCkBAIC00MTQsNiArNDE1LDExIEBAIHNobWVtX3B3cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBzaG1lbV9yZWxlYXNlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJZnB1dChvYmotPmJhc2UuZmlscCk7Cit9CisKIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9zaG1lbV9vcHMgPSB7CiAJLmZsYWdzID0gSTkxNV9HRU1fT0JKRUNUX0hBU19TVFJVQ1RfUEFHRSB8CiAJCSBJOTE1X0dFTV9PQkpFQ1RfSVNfU0hSSU5LQUJMRSwKQEAgLTQyNCw2ICs0MzAsOCBAQCBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1fc2htZW1fb3BzID0gewogCS53cml0ZWJhY2sgPSBzaG1lbV93cml0ZWJhY2ssCiAKIAkucHdyaXRlID0gc2htZW1fcHdyaXRlLAorCisJLnJlbGVhc2UgPSBzaG1lbV9yZWxlYXNlLAogfTsKIAogc3RhdGljIGludCBjcmVhdGVfc2htZW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2hyaW5rZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtlci5jCmluZGV4IDNhOTI2YTguLmVkZDIxZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtlci5jCkBAIC04OCwxMCArODgsMTggQEAgc3RhdGljIGJvb2wgY2FuX3JlbGVhc2VfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlyZXR1cm4gc3dhcF9hdmFpbGFibGUoKSB8fCBvYmotPm1tLm1hZHYgPT0gSTkxNV9NQURWX0RPTlRORUVEOwogfQogCi1zdGF0aWMgYm9vbCB1bnNhZmVfZHJvcF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIGJvb2wgdW5zYWZlX2Ryb3BfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCSAgICAgIHVuc2lnbmVkIGxvbmcgc2hyaW5rKQogewotCWlmIChpOTE1X2dlbV9vYmplY3RfdW5iaW5kKG9iaikgPT0gMCkKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZmxhZ3MgPSAwOworCWlmIChzaHJpbmsgJiBJOTE1X1NIUklOS19BQ1RJVkUpCisJCWZsYWdzID0gSTkxNV9HRU1fT0JKRUNUX1VOQklORF9BQ1RJVkU7CisKKwlpZiAoaTkxNV9nZW1fb2JqZWN0X3VuYmluZChvYmosIGZsYWdzKSA9PSAwKQogCQlfX2k5MTVfZ2VtX29iamVjdF9wdXRfcGFnZXMob2JqLCBJOTE1X01NX1NIUklOS0VSKTsKKwogCXJldHVybiAhaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopOwogfQogCkBAIC0xNjksNyArMTc3LDYgQEAgaTkxNV9nZW1fc2hyaW5rKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCSAqLwogCiAJdHJhY2VfaTkxNV9nZW1fc2hyaW5rKGk5MTUsIHRhcmdldCwgc2hyaW5rKTsKLQlpOTE1X3JldGlyZV9yZXF1ZXN0cyhpOTE1KTsKIAogCS8qCiAJICogVW5iaW5kaW5nIG9mIG9iamVjdHMgd2lsbCByZXF1aXJlIEhXIGFjY2VzczsgTGV0IHVzIG5vdCB3YWtlIHRoZQpAQCAtMjMwLDggKzIzNyw3IEBAIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQljb250aW51ZTsKIAogCQkJaWYgKCEoc2hyaW5rICYgSTkxNV9TSFJJTktfQUNUSVZFKSAmJgotCQkJICAgIChpOTE1X2dlbV9vYmplY3RfaXNfYWN0aXZlKG9iaikgfHwKLQkJCSAgICAgaTkxNV9nZW1fb2JqZWN0X2lzX2ZyYW1lYnVmZmVyKG9iaikpKQorCQkJICAgIGk5MTVfZ2VtX29iamVjdF9pc19mcmFtZWJ1ZmZlcihvYmopKQogCQkJCWNvbnRpbnVlOwogCiAJCQlpZiAoIShzaHJpbmsgJiBJOTE1X1NIUklOS19CT1VORCkgJiYKQEAgLTI0Niw3ICsyNTIsNyBAQCBpOTE1X2dlbV9zaHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk5MTUtPm1tLm9ial9sb2NrLCBmbGFncyk7CiAKLQkJCWlmICh1bnNhZmVfZHJvcF9wYWdlcyhvYmopKSB7CisJCQlpZiAodW5zYWZlX2Ryb3BfcGFnZXMob2JqLCBzaHJpbmspKSB7CiAJCQkJLyogTWF5IGFycml2ZSBmcm9tIGdldF9wYWdlcyBvbiBhbm90aGVyIGJvICovCiAJCQkJbXV0ZXhfbG9ja19uZXN0ZWQoJm9iai0+bW0ubG9jaywKIAkJCQkJCSAgSTkxNV9NTV9TSFJJTktFUik7CkBAIC0yNjksOCArMjc1LDYgQEAgaTkxNV9nZW1fc2hyaW5rKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWlmIChzaHJpbmsgJiBJOTE1X1NIUklOS19CT1VORCkKIAkJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCi0JaTkxNV9yZXRpcmVfcmVxdWVzdHMoaTkxNSk7Ci0KIAlzaHJpbmtlcl91bmxvY2soaTkxNSwgdW5sb2NrKTsKIAogCWlmIChucl9zY2FubmVkKQpAQCAtNDI3LDEyICs0MzEsNiBAQCBpOTE1X2dlbV9zaHJpbmtlcl92bWFwKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQgKnB0cgogCWlmICghc2hyaW5rZXJfbG9jayhpOTE1LCAwLCAmdW5sb2NrKSkKIAkJcmV0dXJuIE5PVElGWV9ET05FOwogCi0JLyogRm9yY2UgZXZlcnl0aGluZyBvbnRvIHRoZSBpbmFjdGl2ZSBsaXN0cyAqLwotCWlmIChpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUsCi0JCQkJICAgSTkxNV9XQUlUX0xPQ0tFRCwKLQkJCQkgICBNQVhfU0NIRURVTEVfVElNRU9VVCkpCi0JCWdvdG8gb3V0OwotCiAJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQlmcmVlZF9wYWdlcyArPSBpOTE1X2dlbV9zaHJpbmsoaTkxNSwgLTFVTCwgTlVMTCwKIAkJCQkJICAgICAgIEk5MTVfU0hSSU5LX0JPVU5EIHwKQEAgLTQ1NSwyMCArNDUzLDEzIEBAIGk5MTVfZ2VtX3Nocmlua2VyX3ZtYXAoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyCiAJfQogCW11dGV4X3VubG9jaygmaTkxNS0+Z2d0dC52bS5tdXRleCk7CiAKLW91dDoKIAlzaHJpbmtlcl91bmxvY2soaTkxNSwgdW5sb2NrKTsKIAogCSoodW5zaWduZWQgbG9uZyAqKXB0ciArPSBmcmVlZF9wYWdlczsKIAlyZXR1cm4gTk9USUZZX0RPTkU7CiB9CiAKLS8qKgotICogaTkxNV9nZW1fc2hyaW5rZXJfcmVnaXN0ZXIgLSBSZWdpc3RlciB0aGUgaTkxNSBzaHJpbmtlcgotICogQGk5MTU6IGk5MTUgZGV2aWNlCi0gKgotICogVGhpcyBmdW5jdGlvbiByZWdpc3RlcnMgYW5kIHNldHMgdXAgdGhlIGk5MTUgc2hyaW5rZXIgYW5kIE9PTSBoYW5kbGVyLgotICovCi12b2lkIGk5MTVfZ2VtX3Nocmlua2VyX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQordm9pZCBpOTE1X2dlbV9kcml2ZXJfcmVnaXN0ZXJfX3Nocmlua2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCWk5MTUtPm1tLnNocmlua2VyLnNjYW5fb2JqZWN0cyA9IGk5MTVfZ2VtX3Nocmlua2VyX3NjYW47CiAJaTkxNS0+bW0uc2hyaW5rZXIuY291bnRfb2JqZWN0cyA9IGk5MTVfZ2VtX3Nocmlua2VyX2NvdW50OwpAQCAtNDgzLDEzICs0NzQsNyBAQCB2b2lkIGk5MTVfZ2VtX3Nocmlua2VyX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCVdBUk5fT04ocmVnaXN0ZXJfdm1hcF9wdXJnZV9ub3RpZmllcigmaTkxNS0+bW0udm1hcF9ub3RpZmllcikpOwogfQogCi0vKioKLSAqIGk5MTVfZ2VtX3Nocmlua2VyX3VucmVnaXN0ZXIgLSBVbnJlZ2lzdGVycyB0aGUgaTkxNSBzaHJpbmtlcgotICogQGk5MTU6IGk5MTUgZGV2aWNlCi0gKgotICogVGhpcyBmdW5jdGlvbiB1bnJlZ2lzdGVycyB0aGUgaTkxNSBzaHJpbmtlciBhbmQgT09NIGhhbmRsZXIuCi0gKi8KLXZvaWQgaTkxNV9nZW1fc2hyaW5rZXJfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3ZvaWQgaTkxNV9nZW1fZHJpdmVyX3VucmVnaXN0ZXJfX3Nocmlua2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCVdBUk5fT04odW5yZWdpc3Rlcl92bWFwX3B1cmdlX25vdGlmaWVyKCZpOTE1LT5tbS52bWFwX25vdGlmaWVyKSk7CiAJV0FSTl9PTih1bnJlZ2lzdGVyX29vbV9ub3RpZmllcigmaTkxNS0+bW0ub29tX25vdGlmaWVyKSk7CkBAIC01MzMsMyArNTE4LDYxIEBAIHZvaWQgaTkxNV9nZW1fc2hyaW5rZXJfdGFpbnRzX211dGV4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWlmICh1bmxvY2spCiAJCW11dGV4X3JlbGVhc2UoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXguZGVwX21hcCwgMCwgX1JFVF9JUF8pOwogfQorCisjZGVmaW5lIG9ial90b19pOTE1KG9ial9fKSB0b19pOTE1KChvYmpfXyktPmJhc2UuZGV2KQorCit2b2lkIGk5MTVfZ2VtX29iamVjdF9tYWtlX3Vuc2hyaW5rYWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCS8qCisJICogV2UgY2FuIG9ubHkgYmUgY2FsbGVkIHdoaWxlIHRoZSBwYWdlcyBhcmUgcGlubmVkIG9yIHdoZW4KKwkgKiB0aGUgcGFnZXMgYXJlIHJlbGVhc2VkLiBJZiBwaW5uZWQsIHdlIHNob3VsZCBvbmx5IGJlIGNhbGxlZAorCSAqIGZyb20gYSBzaW5nbGUgY2FsbGVyIHVuZGVyIGNvbnRyb2xsZWQgY29uZGl0aW9uczsgYW5kIG9uIHJlbGVhc2UKKwkgKiBvbmx5IG9uZSBjYWxsZXIgbWF5IHJlbGVhc2UgdXMuIE5laXRoZXIgdGhlIHR3byBtYXkgY3Jvc3MuCisJICovCisJaWYgKCFsaXN0X2VtcHR5KCZvYmotPm1tLmxpbmspKSB7IC8qIHBpbm5lZCBieSBjYWxsZXIgKi8KKwkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBvYmpfdG9faTkxNShvYmopOworCQl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZpOTE1LT5tbS5vYmpfbG9jaywgZmxhZ3MpOworCQlHRU1fQlVHX09OKGxpc3RfZW1wdHkoJm9iai0+bW0ubGluaykpOworCisJCWxpc3RfZGVsX2luaXQoJm9iai0+bW0ubGluayk7CisJCWk5MTUtPm1tLnNocmlua19jb3VudC0tOworCQlpOTE1LT5tbS5zaHJpbmtfbWVtb3J5IC09IG9iai0+YmFzZS5zaXplOworCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk5MTUtPm1tLm9ial9sb2NrLCBmbGFncyk7CisJfQorfQorCitzdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9tYWtlX3Nocmlua2FibGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkJICAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKK3sKKwlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikpOworCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJm9iai0+bW0ubGluaykpOworCisJaWYgKGk5MTVfZ2VtX29iamVjdF9pc19zaHJpbmthYmxlKG9iaikpIHsKKwkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBvYmpfdG9faTkxNShvYmopOworCQl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZpOTE1LT5tbS5vYmpfbG9jaywgZmxhZ3MpOworCQlHRU1fQlVHX09OKCFrcmVmX3JlYWQoJm9iai0+YmFzZS5yZWZjb3VudCkpOworCisJCWxpc3RfYWRkX3RhaWwoJm9iai0+bW0ubGluaywgaGVhZCk7CisJCWk5MTUtPm1tLnNocmlua19jb3VudCsrOworCQlpOTE1LT5tbS5zaHJpbmtfbWVtb3J5ICs9IG9iai0+YmFzZS5zaXplOworCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk5MTUtPm1tLm9ial9sb2NrLCBmbGFncyk7CisJfQorfQorCit2b2lkIGk5MTVfZ2VtX29iamVjdF9tYWtlX3Nocmlua2FibGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlfX2k5MTVfZ2VtX29iamVjdF9tYWtlX3Nocmlua2FibGUob2JqLAorCQkJCQkgICZvYmpfdG9faTkxNShvYmopLT5tbS5zaHJpbmtfbGlzdCk7Cit9CisKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0X21ha2VfcHVyZ2VhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJX19pOTE1X2dlbV9vYmplY3RfbWFrZV9zaHJpbmthYmxlKG9iaiwKKwkJCQkJICAmb2JqX3RvX2k5MTUob2JqKS0+bW0ucHVyZ2VfbGlzdCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2hyaW5rZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzOTdkNzcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2hyaW5rZXIuaApAQCAtMCwwICsxLDMxIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSTkxNV9HRU1fU0hSSU5LRVJfSF9fCisjZGVmaW5lIF9fSTkxNV9HRU1fU0hSSU5LRVJfSF9fCisKKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworc3RydWN0IG11dGV4OworCisvKiBpOTE1X2dlbV9zaHJpbmtlci5jICovCit1bnNpZ25lZCBsb25nIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCSAgICAgIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LAorCQkJICAgICAgdW5zaWduZWQgbG9uZyAqbnJfc2Nhbm5lZCwKKwkJCSAgICAgIHVuc2lnbmVkIGZsYWdzKTsKKyNkZWZpbmUgSTkxNV9TSFJJTktfVU5CT1VORAlCSVQoMCkKKyNkZWZpbmUgSTkxNV9TSFJJTktfQk9VTkQJQklUKDEpCisjZGVmaW5lIEk5MTVfU0hSSU5LX0FDVElWRQlCSVQoMikKKyNkZWZpbmUgSTkxNV9TSFJJTktfVk1BUFMJQklUKDMpCisjZGVmaW5lIEk5MTVfU0hSSU5LX1dSSVRFQkFDSwlCSVQoNCkKKwordW5zaWduZWQgbG9uZyBpOTE1X2dlbV9zaHJpbmtfYWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaTkxNV9nZW1fZHJpdmVyX3JlZ2lzdGVyX19zaHJpbmtlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cit2b2lkIGk5MTVfZ2VtX2RyaXZlcl91bnJlZ2lzdGVyX19zaHJpbmtlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cit2b2lkIGk5MTVfZ2VtX3Nocmlua2VyX3RhaW50c19tdXRleChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQkgICAgc3RydWN0IG11dGV4ICptdXRleCk7CisKKyNlbmRpZiAvKiBfX0k5MTVfR0VNX1NIUklOS0VSX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5jCmluZGV4IGRlMWZhYjIwLi5hYTUzM2I0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX3N0b2xlbi5oIgogCiAvKgogICogVGhlIEJJT1MgdHlwaWNhbGx5IHJlc2VydmVzIHNvbWUgb2YgdGhlIHN5c3RlbSdzIG1lbW9yeSBmb3IgdGhlIGV4Y2x1c2l2ZQpAQCAtMzYyLDEyICszNjMsMTYgQEAgaW50IGk5MTVfZ2VtX2luaXRfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAltdXRleF9pbml0KCZkZXZfcHJpdi0+bW0uc3RvbGVuX2xvY2spOwogCiAJaWYgKGludGVsX3ZncHVfYWN0aXZlKGRldl9wcml2KSkgewotCQlEUk1fSU5GTygiaUdWVC1nIGFjdGl2ZSwgZGlzYWJsaW5nIHVzZSBvZiBzdG9sZW4gbWVtb3J5XG4iKTsKKwkJZGV2X25vdGljZShkZXZfcHJpdi0+ZHJtLmRldiwKKwkJCSAgICIlcywgZGlzYWJsaW5nIHVzZSBvZiBzdG9sZW4gbWVtb3J5XG4iLAorCQkJICAgImlHVlQtZyBhY3RpdmUiKTsKIAkJcmV0dXJuIDA7CiAJfQogCiAJaWYgKGludGVsX3Z0ZF9hY3RpdmUoKSAmJiBJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOCkgewotCQlEUk1fSU5GTygiRE1BUiBhY3RpdmUsIGRpc2FibGluZyB1c2Ugb2Ygc3RvbGVuIG1lbW9yeVxuIik7CisJCWRldl9ub3RpY2UoZGV2X3ByaXYtPmRybS5kZXYsCisJCQkgICAiJXMsIGRpc2FibGluZyB1c2Ugb2Ygc3RvbGVuIG1lbW9yeVxuIiwKKwkJCSAgICJETUFSIGFjdGl2ZSIpOwogCQlyZXR1cm4gMDsKIAl9CiAKQEAgLTUyOSw4ICs1MzQsNiBAQCBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9zdG9sZW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAogCUdFTV9CVUdfT04oIXN0b2xlbik7CiAKLQlfX2k5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwotCiAJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9wcml2LCBzdG9sZW4pOwogCWtmcmVlKHN0b2xlbik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI4OTY0NAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zdG9sZW4uaApAQCAtMCwwICsxLDM1IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSTkxNV9HRU1fU1RPTEVOX0hfXworI2RlZmluZSBfX0k5MTVfR0VNX1NUT0xFTl9IX18KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworc3RydWN0IGRybV9tbV9ub2RlOworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Q7CisKK2ludCBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgdTY0IHNpemUsCisJCQkJdW5zaWduZWQgYWxpZ25tZW50KTsKK2ludCBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25vZGVfaW5fcmFuZ2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQkgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLCB1NjQgc2l6ZSwKKwkJCQkJIHVuc2lnbmVkIGFsaWdubWVudCwgdTY0IHN0YXJ0LAorCQkJCQkgdTY0IGVuZCk7Cit2b2lkIGk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSk7CitpbnQgaTkxNV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaTkxNV9nZW1fY2xlYW51cF9zdG9sZW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKK2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgIHJlc291cmNlX3NpemVfdCBzaXplKTsKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKK2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQkgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHN0b2xlbl9vZmZzZXQsCisJCQkJCSAgICAgICByZXNvdXJjZV9zaXplX3QgZ3R0X29mZnNldCwKKwkJCQkJICAgICAgIHJlc291cmNlX3NpemVfdCBzaXplKTsKKworI2VuZGlmIC8qIF9fSTkxNV9HRU1fU1RPTEVOX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Rocm90dGxlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdGhyb3R0bGUuYwppbmRleCBhZGIzMDc0Li4xZTM3MjQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdGhyb3R0bGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdGhyb3R0bGUuYwpAQCAtNDEsNyArNDEsNyBAQCBpOTE1X2dlbV90aHJvdHRsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWxvbmcgcmV0OwogCiAJLyogQUJJOiByZXR1cm4gLUVJTyBpZiBhbHJlYWR5IHdlZGdlZCAqLwotCXJldCA9IGk5MTVfdGVybWluYWxseV93ZWRnZWQodG9faTkxNShkZXYpKTsKKwlyZXQgPSBpbnRlbF9ndF90ZXJtaW5hbGx5X3dlZGdlZCgmdG9faTkxNShkZXYpLT5ndCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3VzZXJwdHIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV91c2VycHRyLmMKaW5kZXggNTI4YjYxNi4uMTFiMjMxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3VzZXJwdHIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdXNlcnB0ci5jCkBAIC0xMiwxMSArMTIsMTAgQEAKIAogI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgogCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9pb2N0bHMuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJpOTE1X3NjYXR0ZXJsaXN0LmgiCi0jaW5jbHVkZSAiaTkxNV90cmFjZS5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgogCiBzdHJ1Y3QgaTkxNV9tbV9zdHJ1Y3QgewogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwpAQCAtMTUwLDcgKzE0OSw4IEBAIHVzZXJwdHJfbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICpfbW4sCiAJCQl9CiAJCX0KIAotCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfdW5iaW5kKG9iaik7CisJCXJldCA9IGk5MTVfZ2VtX29iamVjdF91bmJpbmQob2JqLAorCQkJCQkgICAgIEk5MTVfR0VNX09CSkVDVF9VTkJJTkRfQUNUSVZFKTsKIAkJaWYgKHJldCA9PSAwKQogCQkJcmV0ID0gX19pOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzKG9iaiwgSTkxNV9NTV9TSFJJTktFUik7CiAJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKQEAgLTY2Miw2ICs2NjIsMTQgQEAgaTkxNV9nZW1fdXNlcnB0cl9wdXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX3NobWVtKG9iaiwgcGFnZXMsIHRydWUpOwogCWk5MTVfZ2VtX2d0dF9maW5pc2hfcGFnZXMob2JqLCBwYWdlcyk7CiAKKwkvKgorCSAqIFdlIGFsd2F5cyBtYXJrIG9iamVjdHMgYXMgZGlydHkgd2hlbiB0aGV5IGFyZSB1c2VkIGJ5IHRoZSBHUFUsCisJICoganVzdCBpbiBjYXNlLiBIb3dldmVyLCBpZiB3ZSBzZXQgdGhlIHZtYSBhcyBiZWluZyByZWFkLW9ubHkgd2Uga25vdworCSAqIHRoYXQgdGhlIG9iamVjdCB3aWxsIG5ldmVyIGhhdmUgYmVlbiB3cml0dGVuIHRvLgorCSAqLworCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfcmVhZG9ubHkob2JqKSkKKwkJb2JqLT5tbS5kaXJ0eSA9IGZhbHNlOworCiAJZm9yX2VhY2hfc2d0X3BhZ2UocGFnZSwgc2d0X2l0ZXIsIHBhZ2VzKSB7CiAJCWlmIChvYmotPm1tLmRpcnR5KQogCQkJc2V0X3BhZ2VfZGlydHkocGFnZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fd2FpdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3dhaXQuYwppbmRleCAyNmVjNjU3Li44YWY1NWNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fd2FpdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV93YWl0LmMKQEAgLTMxLDExICszMSwxMCBAQCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIH0KIAogc3RhdGljIGxvbmcKLWk5MTVfZ2VtX29iamVjdF93YWl0X3Jlc2VydmF0aW9uKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCitpOTE1X2dlbV9vYmplY3Rfd2FpdF9yZXNlcnZhdGlvbihzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCQkJIHVuc2lnbmVkIGludCBmbGFncywKIAkJCQkgbG9uZyB0aW1lb3V0KQogewotCXVuc2lnbmVkIGludCBzZXEgPSBfX3JlYWRfc2VxY291bnRfYmVnaW4oJnJlc3YtPnNlcSk7CiAJc3RydWN0IGRtYV9mZW5jZSAqZXhjbDsKIAlib29sIHBydW5lX2ZlbmNlcyA9IGZhbHNlOwogCkBAIC00NCw3ICs0Myw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3Jlc2VydmF0aW9uKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCiAJCXVuc2lnbmVkIGludCBjb3VudCwgaTsKIAkJaW50IHJldDsKIAotCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2ZlbmNlc19yY3UocmVzdiwKKwkJcmV0ID0gZG1hX3Jlc3ZfZ2V0X2ZlbmNlc19yY3UocmVzdiwKIAkJCQkJCQkmZXhjbCwgJmNvdW50LCAmc2hhcmVkKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CkBAIC03Myw3ICs3Miw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3Jlc2VydmF0aW9uKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCiAJCSAqLwogCQlwcnVuZV9mZW5jZXMgPSBjb3VudCAmJiB0aW1lb3V0ID49IDA7CiAJfSBlbHNlIHsKLQkJZXhjbCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbF9yY3UocmVzdik7CisJCWV4Y2wgPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3UocmVzdik7CiAJfQogCiAJaWYgKGV4Y2wgJiYgdGltZW91dCA+PSAwKQpAQCAtODMsMTUgKzgyLDEyIEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3Jlc2VydmF0aW9uKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCiAKIAkvKgogCSAqIE9wcG9ydHVuaXN0aWNhbGx5IHBydW5lIHRoZSBmZW5jZXMgaWZmIHdlIGtub3cgdGhleSBoYXZlICphbGwqIGJlZW4KLQkgKiBzaWduYWxlZCBhbmQgdGhhdCB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0IGhhcyBub3QgYmVlbiBjaGFuZ2VkIChpLmUuCi0JICogbm8gbmV3IGZlbmNlcyBoYXZlIGJlZW4gYWRkZWQpLgorCSAqIHNpZ25hbGVkLgogCSAqLwotCWlmIChwcnVuZV9mZW5jZXMgJiYgIV9fcmVhZF9zZXFjb3VudF9yZXRyeSgmcmVzdi0+c2VxLCBzZXEpKSB7Ci0JCWlmIChyZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhyZXN2KSkgewotCQkJaWYgKCFfX3JlYWRfc2VxY291bnRfcmV0cnkoJnJlc3YtPnNlcSwgc2VxKSkKLQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UocmVzdiwgTlVMTCk7Ci0JCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKHJlc3YpOwotCQl9CisJaWYgKHBydW5lX2ZlbmNlcyAmJiBkbWFfcmVzdl90cnlsb2NrKHJlc3YpKSB7CisJCWlmIChkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdShyZXN2LCB0cnVlKSkKKwkJCWRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKHJlc3YsIE5VTEwpOworCQlkbWFfcmVzdl91bmxvY2socmVzdik7CiAJfQogCiAJcmV0dXJuIHRpbWVvdXQ7CkBAIC0xNDQsNyArMTQwLDcgQEAgaTkxNV9nZW1fb2JqZWN0X3dhaXRfcHJpb3JpdHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJdW5zaWduZWQgaW50IGNvdW50LCBpOwogCQlpbnQgcmV0OwogCi0JCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShvYmotPmJhc2UucmVzdiwKKwkJcmV0ID0gZG1hX3Jlc3ZfZ2V0X2ZlbmNlc19yY3Uob2JqLT5iYXNlLnJlc3YsCiAJCQkJCQkJJmV4Y2wsICZjb3VudCwgJnNoYXJlZCk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwpAQCAtMTU2LDcgKzE1Miw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3ByaW9yaXR5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAKIAkJa2ZyZWUoc2hhcmVkKTsKIAl9IGVsc2UgewotCQlleGNsID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShvYmotPmJhc2UucmVzdik7CisJCWV4Y2wgPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3Uob2JqLT5iYXNlLnJlc3YpOwogCX0KIAogCWlmIChleGNsKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1mcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtZnMuYwppbmRleCAwOTlmMzM5Li41ZTZlOGM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1mcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbWZzLmMKQEAgLTIwLDMyICsyMCwxOSBAQCBpbnQgaTkxNV9nZW1mc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWlmICghdHlwZSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKKwkvKgorCSAqIEJ5IGNyZWF0aW5nIG91ciBvd24gc2htZW1mcyBtb3VudHBvaW50LCB3ZSBjYW4gcGFzcyBpbgorCSAqIG1vdW50IGZsYWdzIHRoYXQgYmV0dGVyIG1hdGNoIG91ciB1c2VjYXNlLgorCSAqCisJICogT25lIGV4YW1wbGUsIGFsdGhvdWdoIGl0IGlzIHByb2JhYmx5IGJldHRlciB3aXRoIGEgcGVyLWZpbGUKKwkgKiBjb250cm9sLCBpcyBzZWxlY3RpbmcgaHVnZSBwYWdlIGFsbG9jYXRpb25zICgiaHVnZT13aXRoaW5fc2l6ZSIpLgorCSAqIEN1cnJlbnRseSB1bnVzZWQgZHVlIHRvIGJhbmR3aWR0aCBpc3N1ZXMgKHNsb3cgcmVhZHMpIG9uIEJyb2Fkd2VsbCsuCisJICovCisKIAlnZW1mcyA9IGtlcm5fbW91bnQodHlwZSk7CiAJaWYgKElTX0VSUihnZW1mcykpCiAJCXJldHVybiBQVFJfRVJSKGdlbWZzKTsKIAotCS8qCi0JICogRW5hYmxlIGh1Z2UtcGFnZXMgZm9yIG9iamVjdHMgdGhhdCBhcmUgYXQgbGVhc3QgSFBBR0VfUE1EX1NJWkUsIG1vc3QKLQkgKiBsaWtlbHkgMk0uIE5vdGUgdGhhdCB3aXRoaW5fc2l6ZSBtYXkgb3ZlcmFsbG9jYXRlIGh1Z2UtcGFnZXMsIGlmIHNheQotCSAqIHdlIGFsbG9jYXRlIGFuIG9iamVjdCBvZiBzaXplIDJNICsgNEssIHdlIG1heSBnZXQgMk0gKyAyTSwgYnV0IHVuZGVyCi0JICogbWVtb3J5IHByZXNzdXJlIHNobWVtIHNob3VsZCBzcGxpdCBhbnkgaHVnZS1wYWdlcyB3aGljaCBjYW4gYmUKLQkgKiBzaHJ1bmsuCi0JICovCi0KLQlpZiAoaGFzX3RyYW5zcGFyZW50X2h1Z2VwYWdlKCkpIHsKLQkJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGdlbWZzLT5tbnRfc2I7Ci0JCS8qIEZJWE1FOiBEaXNhYmxlZCB1bnRpbCB3ZSBnZXQgVy9BIGZvciByZWFkIEJXIGlzc3VlLiAqLwotCQljaGFyIG9wdGlvbnNbXSA9ICJodWdlPW5ldmVyIjsKLQkJaW50IGZsYWdzID0gMDsKLQkJaW50IGVycjsKLQotCQllcnIgPSBzYi0+c19vcC0+cmVtb3VudF9mcyhzYiwgJmZsYWdzLCBvcHRpb25zKTsKLQkJaWYgKGVycikgewotCQkJa2Vybl91bm1vdW50KGdlbWZzKTsKLQkJCXJldHVybiBlcnI7Ci0JCX0KLQl9Ci0KIAlpOTE1LT5tbS5nZW1mcyA9IGdlbWZzOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jCmluZGV4IGI3NDcyOWIuLjhkZTgzYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jCkBAIC0xMCw2ICsxMCw4IEBACiAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcG0uaCIKIAorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCisKICNpbmNsdWRlICJpZ3RfZ2VtX3V0aWxzLmgiCiAjaW5jbHVkZSAibW9ja19jb250ZXh0LmgiCiAKQEAgLTg3NywxMjYgKzg3OSwyMiBAQCBzdGF0aWMgaW50IGlndF9tb2NrX3BwZ3R0XzY0Syh2b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqCi1ncHVfd3JpdGVfZHcoc3RydWN0IGk5MTVfdm1hICp2bWEsIHU2NCBvZmZzZXQsIHUzMiB2YWwpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB2bWEtPnZtLT5pOTE1OwotCWNvbnN0IGludCBnZW4gPSBJTlRFTF9HRU4oaTkxNSk7Ci0JdW5zaWduZWQgaW50IGNvdW50ID0gdm1hLT5zaXplID4+IFBBR0VfU0hJRlQ7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgaTkxNV92bWEgKmJhdGNoOwotCXVuc2lnbmVkIGludCBzaXplOwotCXUzMiAqY21kOwotCWludCBuOwotCWludCBlcnI7Ci0KLQlzaXplID0gKDEgKyA0ICogY291bnQpICogc2l6ZW9mKHUzMik7Ci0Jc2l6ZSA9IHJvdW5kX3VwKHNpemUsIFBBR0VfU0laRSk7Ci0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBzaXplKTsKLQlpZiAoSVNfRVJSKG9iaikpCi0JCXJldHVybiBFUlJfQ0FTVChvYmopOwotCi0JY21kID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAob2JqLCBJOTE1X01BUF9XQyk7Ci0JaWYgKElTX0VSUihjbWQpKSB7Ci0JCWVyciA9IFBUUl9FUlIoY21kKTsKLQkJZ290byBlcnI7Ci0JfQotCi0Jb2Zmc2V0ICs9IHZtYS0+bm9kZS5zdGFydDsKLQotCWZvciAobiA9IDA7IG4gPCBjb3VudDsgbisrKSB7Ci0JCWlmIChnZW4gPj0gOCkgewotCQkJKmNtZCsrID0gTUlfU1RPUkVfRFdPUkRfSU1NX0dFTjQ7Ci0JCQkqY21kKysgPSBsb3dlcl8zMl9iaXRzKG9mZnNldCk7Ci0JCQkqY21kKysgPSB1cHBlcl8zMl9iaXRzKG9mZnNldCk7Ci0JCQkqY21kKysgPSB2YWw7Ci0JCX0gZWxzZSBpZiAoZ2VuID49IDQpIHsKLQkJCSpjbWQrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTV9HRU40IHwKLQkJCQkoZ2VuIDwgNiA/IE1JX1VTRV9HR1RUIDogMCk7Ci0JCQkqY21kKysgPSAwOwotCQkJKmNtZCsrID0gb2Zmc2V0OwotCQkJKmNtZCsrID0gdmFsOwotCQl9IGVsc2UgewotCQkJKmNtZCsrID0gTUlfU1RPUkVfRFdPUkRfSU1NIHwgTUlfTUVNX1ZJUlRVQUw7Ci0JCQkqY21kKysgPSBvZmZzZXQ7Ci0JCQkqY21kKysgPSB2YWw7Ci0JCX0KLQotCQlvZmZzZXQgKz0gUEFHRV9TSVpFOwotCX0KLQotCSpjbWQgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwotCWk5MTVfZ2VtX2NoaXBzZXRfZmx1c2goaTkxNSk7Ci0KLQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKG9iaik7Ci0KLQliYXRjaCA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgdm1hLT52bSwgTlVMTCk7Ci0JaWYgKElTX0VSUihiYXRjaCkpIHsKLQkJZXJyID0gUFRSX0VSUihiYXRjaCk7Ci0JCWdvdG8gZXJyOwotCX0KLQotCWVyciA9IGk5MTVfdm1hX3BpbihiYXRjaCwgMCwgMCwgUElOX1VTRVIpOwotCWlmIChlcnIpCi0JCWdvdG8gZXJyOwotCi0JcmV0dXJuIGJhdGNoOwotCi1lcnI6Ci0JaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwotCi0JcmV0dXJuIEVSUl9QVFIoZXJyKTsKLX0KLQogc3RhdGljIGludCBncHVfd3JpdGUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCSAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCi0JCSAgICAgdTMyIGR3b3JkLAotCQkgICAgIHUzMiB2YWx1ZSkKKwkJICAgICB1MzIgZHcsCisJCSAgICAgdTMyIHZhbCkKIHsKLQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKLQlzdHJ1Y3QgaTkxNV92bWEgKmJhdGNoOwogCWludCBlcnI7CiAKLQlHRU1fQlVHX09OKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpOwotCi0JYmF0Y2ggPSBncHVfd3JpdGVfZHcodm1hLCBkd29yZCAqIHNpemVvZih1MzIpLCB2YWx1ZSk7Ci0JaWYgKElTX0VSUihiYXRjaCkpCi0JCXJldHVybiBQVFJfRVJSKGJhdGNoKTsKLQotCXJxID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4LCBlbmdpbmUpOwotCWlmIChJU19FUlIocnEpKSB7Ci0JCWVyciA9IFBUUl9FUlIocnEpOwotCQlnb3RvIGVycl9iYXRjaDsKLQl9Ci0KLQlpOTE1X3ZtYV9sb2NrKGJhdGNoKTsKLQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShiYXRjaCwgcnEsIDApOwotCWk5MTVfdm1hX3VubG9jayhiYXRjaCk7CisJaTkxNV9nZW1fb2JqZWN0X2xvY2sodm1hLT5vYmopOworCWVyciA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbih2bWEtPm9iaiwgdHJ1ZSk7CisJaTkxNV9nZW1fb2JqZWN0X3VubG9jayh2bWEtPm9iaik7CiAJaWYgKGVycikKLQkJZ290byBlcnJfcmVxdWVzdDsKKwkJcmV0dXJuIGVycjsKIAotCWk5MTVfdm1hX2xvY2sodm1hKTsKLQllcnIgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4odm1hLT5vYmosIGZhbHNlKTsKLQlpZiAoZXJyID09IDApCi0JCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHZtYSwgcnEsIEVYRUNfT0JKRUNUX1dSSVRFKTsKLQlpOTE1X3ZtYV91bmxvY2sodm1hKTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9yZXF1ZXN0OwotCi0JZXJyID0gZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHJxLAotCQkJCSAgICBiYXRjaC0+bm9kZS5zdGFydCwgYmF0Y2gtPm5vZGUuc2l6ZSwKLQkJCQkgICAgMCk7Ci1lcnJfcmVxdWVzdDoKLQlpZiAoZXJyKQotCQlpOTE1X3JlcXVlc3Rfc2tpcChycSwgZXJyKTsKLQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKLWVycl9iYXRjaDoKLQlpOTE1X3ZtYV91bnBpbihiYXRjaCk7Ci0JaTkxNV92bWFfY2xvc2UoYmF0Y2gpOwotCWk5MTVfdm1hX3B1dChiYXRjaCk7Ci0KLQlyZXR1cm4gZXJyOworCXJldHVybiBpZ3RfZ3B1X2ZpbGxfZHcodm1hLCBjdHgsIGVuZ2luZSwgZHcgKiBzaXplb2YodTMyKSwKKwkJCSAgICAgICB2bWEtPnNpemUgPj4gUEFHRV9TSElGVCwgdmFsKTsKIH0KIAogc3RhdGljIGludCBjcHVfY2hlY2soc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgdTMyIGR3b3JkLCB1MzIgdmFsKQpAQCAtMTAzNyw4ICs5MzUsNyBAQCBzdGF0aWMgaW50IF9faWd0X3dyaXRlX2h1Z2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJCSAgICB1NjQgc2l6ZSwgdTY0IG9mZnNldCwKIAkJCSAgICB1MzIgZHdvcmQsIHUzMiB2YWwpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gY3R4LT52bSA/OiAmaTkxNS0+Z2d0dC52bTsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9IGN0eC0+dm0gPzogJmVuZ2luZS0+Z3QtPmdndHQtPnZtOwogCXVuc2lnbmVkIGludCBmbGFncyA9IFBJTl9VU0VSIHwgUElOX09GRlNFVF9GSVhFRDsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlpbnQgZXJyOwpAQCAtMTQyMSw2ICsxMzE4LDkgQEAgc3RhdGljIGludCBpZ3RfcHBndHRfcGluX3VwZGF0ZSh2b2lkICphcmcpCiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBQSU5fVVNFUiB8IFBJTl9PRkZTRVRfRklYRUQ7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCXVuc2lnbmVkIGludCBuOwogCWludCBmaXJzdCwgbGFzdDsKIAlpbnQgZXJyOwogCkBAIC0xNTE4LDExICsxNDE4LDIwIEBAIHN0YXRpYyBpbnQgaWd0X3BwZ3R0X3Bpbl91cGRhdGUodm9pZCAqYXJnKQogCSAqIGxhbmQgaW4gdGhlIG5vdyBzdGFsZSAyTSBwYWdlLgogCSAqLwogCi0JZXJyID0gZ3B1X3dyaXRlKHZtYSwgY3R4LCBkZXZfcHJpdi0+ZW5naW5lW1JDUzBdLCAwLCAweGRlYWRiZWFmKTsKLQlpZiAoZXJyKQotCQlnb3RvIG91dF91bnBpbjsKKwluID0gMDsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKKwkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCisJCQljb250aW51ZTsKIAotCWVyciA9IGNwdV9jaGVjayhvYmosIDAsIDB4ZGVhZGJlYWYpOworCQllcnIgPSBncHVfd3JpdGUodm1hLCBjdHgsIGVuZ2luZSwgbisrLCAweGRlYWRiZWFmKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0X3VucGluOworCX0KKwl3aGlsZSAobi0tKSB7CisJCWVyciA9IGNwdV9jaGVjayhvYmosIG4sIDB4ZGVhZGJlYWYpOworCQlpZiAoZXJyKQorCQkJZ290byBvdXRfdW5waW47CisJfQogCiBvdXRfdW5waW46CiAJaTkxNV92bWFfdW5waW4odm1hKTsKQEAgLTE1OTgsOCArMTUwNywxMSBAQCBzdGF0aWMgaW50IGlndF9zaHJpbmtfdGhwKHZvaWQgKmFyZykKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGN0eC0+aTkxNTsKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9IGN0eC0+dm0gPzogJmk5MTUtPmdndHQudm07CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJdW5zaWduZWQgaW50IGZsYWdzID0gUElOX1VTRVI7CisJdW5zaWduZWQgaW50IG47CiAJaW50IGVycjsKIAogCS8qCkBAIC0xNjM1LDkgKzE1NDcsMTUgQEAgc3RhdGljIGludCBpZ3Rfc2hyaW5rX3RocCh2b2lkICphcmcpCiAJaWYgKGVycikKIAkJZ290byBvdXRfdW5waW47CiAKLQllcnIgPSBncHVfd3JpdGUodm1hLCBjdHgsIGk5MTUtPmVuZ2luZVtSQ1MwXSwgMCwgMHhkZWFkYmVhZik7Ci0JaWYgKGVycikKLQkJZ290byBvdXRfdW5waW47CisJbiA9IDA7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCisJCQljb250aW51ZTsKKworCQllcnIgPSBncHVfd3JpdGUodm1hLCBjdHgsIGVuZ2luZSwgbisrLCAweGRlYWRiZWFmKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0X3VucGluOworCX0KIAogCWk5MTVfdm1hX3VucGluKHZtYSk7CiAKQEAgLTE2NjIsNyArMTU4MCwxMiBAQCBzdGF0aWMgaW50IGlndF9zaHJpbmtfdGhwKHZvaWQgKmFyZykKIAlpZiAoZXJyKQogCQlnb3RvIG91dF9jbG9zZTsKIAotCWVyciA9IGNwdV9jaGVjayhvYmosIDAsIDB4ZGVhZGJlYWYpOworCXdoaWxlIChuLS0pIHsKKwkJZXJyID0gY3B1X2NoZWNrKG9iaiwgbiwgMHhkZWFkYmVhZik7CisJCWlmIChlcnIpCisJCQlnb3RvIG91dF91bnBpbjsKKwl9CisKIAogb3V0X3VucGluOgogCWk5MTVfdm1hX3VucGluKHZtYSk7CkBAIC0xNzI2LDcgKzE2NDksNyBAQCBpbnQgaTkxNV9nZW1faHVnZV9wYWdlX21vY2tfc2VsZnRlc3RzKHZvaWQpCiAJcmV0dXJuIGVycjsKIH0KIAotaW50IGk5MTVfZ2VtX2h1Z2VfcGFnZV9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitpbnQgaTkxNV9nZW1faHVnZV9wYWdlX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CiAJCVNVQlRFU1QoaWd0X3Nocmlua190aHApLApAQCAtMTc0MSwyMiArMTY2NCwyMiBAQCBpbnQgaTkxNV9nZW1faHVnZV9wYWdlX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAlpbnQgZXJyOwogCi0JaWYgKCFIQVNfUFBHVFQoZGV2X3ByaXYpKSB7CisJaWYgKCFIQVNfUFBHVFQoaTkxNSkpIHsKIAkJcHJfaW5mbygiUFBHVFQgbm90IHN1cHBvcnRlZCwgc2tpcHBpbmcgbGl2ZS1zZWxmdGVzdHNcbiIpOwogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChkZXZfcHJpdikpCisJaWYgKGludGVsX2d0X2lzX3dlZGdlZCgmaTkxNS0+Z3QpKQogCQlyZXR1cm4gMDsKIAotCWZpbGUgPSBtb2NrX2ZpbGUoZGV2X3ByaXYpOworCWZpbGUgPSBtb2NrX2ZpbGUoaTkxNSk7CiAJaWYgKElTX0VSUihmaWxlKSkKIAkJcmV0dXJuIFBUUl9FUlIoZmlsZSk7CiAKLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAotCWN0eCA9IGxpdmVfY29udGV4dChkZXZfcHJpdiwgZmlsZSk7CisJY3R4ID0gbGl2ZV9jb250ZXh0KGk5MTUsIGZpbGUpOwogCWlmIChJU19FUlIoY3R4KSkgewogCQllcnIgPSBQVFJfRVJSKGN0eCk7CiAJCWdvdG8gb3V0X3VubG9jazsKQEAgLTE3NjgsMTAgKzE2OTEsMTAgQEAgaW50IGk5MTVfZ2VtX2h1Z2VfcGFnZV9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZXJyID0gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgY3R4KTsKIAogb3V0X3VubG9jazoKLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwotCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JbW9ja19maWxlX2ZyZWUoZGV2X3ByaXYsIGZpbGUpOworCW1vY2tfZmlsZV9mcmVlKGk5MTUsIGZpbGUpOwogCiAJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY2xpZW50X2JsdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jbGllbnRfYmx0LmMKaW5kZXggZjNhNWViOC4uZDg4MDRhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jbGllbnRfYmx0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jbGllbnRfYmx0LmMKQEAgLTUsMTQgKzUsMTcgQEAKIAogI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKIAorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCisKICNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QuaCIKICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19kcm0uaCIKKyNpbmNsdWRlICJodWdlX2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJtb2NrX2NvbnRleHQuaCIKIAogc3RhdGljIGludCBpZ3RfY2xpZW50X2ZpbGwodm9pZCAqYXJnKQogewotCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IGFyZzsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGNlLT5nZW1fY29udGV4dC0+aTkxNTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBpOTE1LT5lbmdpbmVbQkNTMF0tPmtlcm5lbF9jb250ZXh0OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IHJuZF9zdGF0ZSBwcm5nOwogCUlHVF9USU1FT1VUKGVuZCk7CkBAIC0yMiwxNSArMjUsMTkgQEAgc3RhdGljIGludCBpZ3RfY2xpZW50X2ZpbGwodm9pZCAqYXJnKQogCXByYW5kb21fc2VlZF9zdGF0ZSgmcHJuZywgaTkxNV9zZWxmdGVzdC5yYW5kb21fc2VlZCk7CiAKIAlkbyB7Ci0JCXUzMiBzeiA9IHByYW5kb21fdTMyX3N0YXRlKCZwcm5nKSAlIFNaXzMyTTsKKwkJY29uc3QgdTMyIG1heF9ibG9ja19zaXplID0gUzE2X01BWCAqIFBBR0VfU0laRTsKKwkJdTMyIHN6ID0gbWluX3QodTY0LCBjZS0+dm0tPnRvdGFsID4+IDQsIHByYW5kb21fdTMyX3N0YXRlKCZwcm5nKSk7CisJCXUzMiBwaHlzX3N6ID0gc3ogJSAobWF4X2Jsb2NrX3NpemUgKyAxKTsKIAkJdTMyIHZhbCA9IHByYW5kb21fdTMyX3N0YXRlKCZwcm5nKTsKIAkJdTMyIGk7CiAKIAkJc3ogPSByb3VuZF91cChzeiwgUEFHRV9TSVpFKTsKKwkJcGh5c19zeiA9IHJvdW5kX3VwKHBoeXNfc3osIFBBR0VfU0laRSk7CiAKLQkJcHJfZGVidWcoIiVzIHdpdGggc3o9JXgsIHZhbD0leFxuIiwgX19mdW5jX18sIHN6LCB2YWwpOworCQlwcl9kZWJ1ZygiJXMgd2l0aCBwaHlzX3N6PSAleCwgc3o9JXgsIHZhbD0leFxuIiwgX19mdW5jX18sCisJCQkgcGh5c19zeiwgc3osIHZhbCk7CiAKLQkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBzeik7CisJCW9iaiA9IGh1Z2VfZ2VtX29iamVjdChpOTE1LCBwaHlzX3N6LCBzeik7CiAJCWlmIChJU19FUlIob2JqKSkgewogCQkJZXJyID0gUFRSX0VSUihvYmopOwogCQkJZ290byBlcnJfZmx1c2g7CkBAIC01Miw3ICs1OSw4IEBAIHN0YXRpYyBpbnQgaWd0X2NsaWVudF9maWxsKHZvaWQgKmFyZykKIAkJICogdmFsdWVzIGFmdGVyIHdlIGRvIHRoZSBzZXRfdG9fY3B1X2RvbWFpbiBhbmQgcGljayBpdCB1cCBhcyBhCiAJCSAqIHRlc3QgZmFpbHVyZS4KIAkJICovCi0JCW1lbXNldDMyKHZhZGRyLCB2YWwgXiAweGRlYWRiZWFmLCBvYmotPmJhc2Uuc2l6ZSAvIHNpemVvZih1MzIpKTsKKwkJbWVtc2V0MzIodmFkZHIsIHZhbCBeIDB4ZGVhZGJlYWYsCisJCQkgaHVnZV9nZW1fb2JqZWN0X3BoeXNfc2l6ZShvYmopIC8gc2l6ZW9mKHUzMikpOwogCiAJCWlmICghKG9iai0+Y2FjaGVfY29oZXJlbnQgJiBJOTE1X0JPX0NBQ0hFX0NPSEVSRU5UX0ZPUl9XUklURSkpCiAJCQlvYmotPmNhY2hlX2RpcnR5ID0gdHJ1ZTsKQEAgLTYzLDI0ICs3MSwxMyBAQCBzdGF0aWMgaW50IGlndF9jbGllbnRfZmlsbCh2b2lkICphcmcpCiAJCWlmIChlcnIpCiAJCQlnb3RvIGVycl91bnBpbjsKIAotCQkvKgotCQkgKiBYWFg6IEZvciBub3cgZG8gdGhlIHdhaXQgd2l0aG91dCB0aGUgb2JqZWN0IHJlc3YgbG9jayB0bwotCQkgKiBlbnN1cmUgd2UgZG9uJ3QgZGVhZGxvY2suCi0JCSAqLwotCQllcnIgPSBpOTE1X2dlbV9vYmplY3Rfd2FpdChvYmosCi0JCQkJCSAgIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFIHwKLQkJCQkJICAgSTkxNV9XQUlUX0FMTCwKLQkJCQkJICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwotCQlpZiAoZXJyKQotCQkJZ290byBlcnJfdW5waW47Ci0KIAkJaTkxNV9nZW1fb2JqZWN0X2xvY2sob2JqKTsKIAkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19jcHVfZG9tYWluKG9iaiwgZmFsc2UpOwogCQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7CiAJCWlmIChlcnIpCiAJCQlnb3RvIGVycl91bnBpbjsKIAotCQlmb3IgKGkgPSAwOyBpIDwgb2JqLT5iYXNlLnNpemUgLyBzaXplb2YodTMyKTsgKytpKSB7CisJCWZvciAoaSA9IDA7IGkgPCBodWdlX2dlbV9vYmplY3RfcGh5c19zaXplKG9iaikgLyBzaXplb2YodTMyKTsgKytpKSB7CiAJCQlpZiAodmFkZHJbaV0gIT0gdmFsKSB7CiAJCQkJcHJfZXJyKCJ2YWRkclsldV09JXgsIGV4cGVjdGVkPSV4XG4iLCBpLAogCQkJCSAgICAgICB2YWRkcltpXSwgdmFsKTsKQEAgLTEwMCwxMSArOTcsNiBAQCBzdGF0aWMgaW50IGlndF9jbGllbnRfZmlsbCh2b2lkICphcmcpCiBlcnJfcHV0OgogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIGVycl9mbHVzaDoKLQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCi0JCWVyciA9IC1FSU87Ci0JbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQogCWlmIChlcnIgPT0gLUVOT01FTSkKIAkJZXJyID0gMDsKIApAQCAtMTE3LDExICsxMDksMTEgQEAgaW50IGk5MTVfZ2VtX2NsaWVudF9ibHRfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCVNVQlRFU1QoaWd0X2NsaWVudF9maWxsKSwKIAl9OwogCi0JaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNSkpCisJaWYgKGludGVsX2d0X2lzX3dlZGdlZCgmaTkxNS0+Z3QpKQogCQlyZXR1cm4gMDsKIAogCWlmICghSEFTX0VOR0lORShpOTE1LCBCQ1MwKSkKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgaTkxNS0+ZW5naW5lW0JDUzBdLT5rZXJuZWxfY29udGV4dCk7CisJcmV0dXJuIGk5MTVfbGl2ZV9zdWJ0ZXN0cyh0ZXN0cywgaTkxNSk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvaGVyZW5jeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb2hlcmVuY3kuYwppbmRleCA4ZjIyZDNmLi4wZmY3YTg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvaGVyZW5jeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29oZXJlbmN5LmMKQEAgLTYsNiArNiw4IEBACiAKICNpbmNsdWRlIDxsaW51eC9wcmltZV9udW1iZXJzLmg+CiAKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgorCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pOTE1X3JhbmRvbS5oIgogCkBAIC0yMjYsNyArMjI4LDkgQEAgc3RhdGljIGludCBncHVfc2V0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBjcyk7CiAKIAlpOTE1X3ZtYV9sb2NrKHZtYSk7Ci0JZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCBycSwgRVhFQ19PQkpFQ1RfV1JJVEUpOworCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9vYmplY3QocnEsIHZtYS0+b2JqLCB0cnVlKTsKKwlpZiAoZXJyID09IDApCisJCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHZtYSwgcnEsIEVYRUNfT0JKRUNUX1dSSVRFKTsKIAlpOTE1X3ZtYV91bmxvY2sodm1hKTsKIAlpOTE1X3ZtYV91bnBpbih2bWEpOwogCkBAIC0yNDIsMTIgKzI0NiwxNSBAQCBzdGF0aWMgYm9vbCBhbHdheXNfdmFsaWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIHN0YXRpYyBib29sIG5lZWRzX2ZlbmNlX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlyZXR1cm4gIWk5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNSk7CisJcmV0dXJuICFpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KTsKIH0KIAogc3RhdGljIGJvb2wgbmVlZHNfbWlfc3RvcmVfZHdvcmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0JaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNSkpCisJaWYgKGludGVsX2d0X2lzX3dlZGdlZCgmaTkxNS0+Z3QpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoIUhBU19FTkdJTkUoaTkxNSwgUkNTMCkpCiAJCXJldHVybiBmYWxzZTsKIAogCXJldHVybiBpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGk5MTUtPmVuZ2luZVtSQ1MwXSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IGVhYTJiMTY1Li4zZTZmNGE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtNyw2ICs3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wcmltZV9udW1iZXJzLmg+CiAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcG0uaCIKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgogI2luY2x1ZGUgImd0L2ludGVsX3Jlc2V0LmgiCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgogCkBAIC0zMSw3ICszMiw2IEBAIHN0YXRpYyBpbnQgbGl2ZV9ub3Bfc3dpdGNoKHZvaWQgKmFyZykKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKipjdHg7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0JaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJc3RydWN0IGlndF9saXZlX3Rlc3QgdDsKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGU7CiAJdW5zaWduZWQgbG9uZyBuOwpAQCAtNTMsNyArNTMsNiBAQCBzdGF0aWMgaW50IGxpdmVfbm9wX3N3aXRjaCh2b2lkICphcmcpCiAJCXJldHVybiBQVFJfRVJSKGZpbGUpOwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCWN0eCA9IGtjYWxsb2MobmN0eCwgc2l6ZW9mKCpjdHgpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWN0eCkgewpAQCAtODUsNyArODQsNyBAQCBzdGF0aWMgaW50IGxpdmVfbm9wX3N3aXRjaCh2b2lkICphcmcpCiAJCX0KIAkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWiAvIDUpIDwgMCkgewogCQkJcHJfZXJyKCJGYWlsZWQgdG8gcG9wdWxhdGVkICVkIGNvbnRleHRzXG4iLCBuY3R4KTsKLQkJCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CisJCQlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZpOTE1LT5ndCk7CiAJCQllcnIgPSAtRUlPOwogCQkJZ290byBvdXRfdW5sb2NrOwogCQl9CkBAIC0xMjksNyArMTI4LDcgQEAgc3RhdGljIGludCBsaXZlX25vcF9zd2l0Y2godm9pZCAqYXJnKQogCQkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWiAvIDUpIDwgMCkgewogCQkJCXByX2VycigiU3dpdGNoaW5nIGJldHdlZW4gJWxkIGNvbnRleHRzIHRpbWVkIG91dFxuIiwKIAkJCQkgICAgICAgcHJpbWUpOwotCQkJCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CisJCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZCgmaTkxNS0+Z3QpOwogCQkJCWJyZWFrOwogCQkJfQogCkBAIC0xNTIsNzYgKzE1MSwxMSBAQCBzdGF0aWMgaW50IGxpdmVfbm9wX3N3aXRjaCh2b2lkICphcmcpCiAJfQogCiBvdXRfdW5sb2NrOgotCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCW1vY2tfZmlsZV9mcmVlKGk5MTUsIGZpbGUpOwogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKgotZ3B1X2ZpbGxfZHcoc3RydWN0IGk5MTVfdm1hICp2bWEsIHU2NCBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgY291bnQsIHUzMiB2YWx1ZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCWNvbnN0IGludCBnZW4gPSBJTlRFTF9HRU4odm1hLT52bS0+aTkxNSk7Ci0JdW5zaWduZWQgbG9uZyBuLCBzaXplOwotCXUzMiAqY21kOwotCWludCBlcnI7Ci0KLQlzaXplID0gKDQgKiBjb3VudCArIDEpICogc2l6ZW9mKHUzMik7Ci0Jc2l6ZSA9IHJvdW5kX3VwKHNpemUsIFBBR0VfU0laRSk7Ci0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbCh2bWEtPnZtLT5pOTE1LCBzaXplKTsKLQlpZiAoSVNfRVJSKG9iaikpCi0JCXJldHVybiBFUlJfQ0FTVChvYmopOwotCi0JY21kID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAob2JqLCBJOTE1X01BUF9XQik7Ci0JaWYgKElTX0VSUihjbWQpKSB7Ci0JCWVyciA9IFBUUl9FUlIoY21kKTsKLQkJZ290byBlcnI7Ci0JfQotCi0JR0VNX0JVR19PTihvZmZzZXQgKyAoY291bnQgLSAxKSAqIFBBR0VfU0laRSA+IHZtYS0+bm9kZS5zaXplKTsKLQlvZmZzZXQgKz0gdm1hLT5ub2RlLnN0YXJ0OwotCi0JZm9yIChuID0gMDsgbiA8IGNvdW50OyBuKyspIHsKLQkJaWYgKGdlbiA+PSA4KSB7Ci0JCQkqY21kKysgPSBNSV9TVE9SRV9EV09SRF9JTU1fR0VONDsKLQkJCSpjbWQrKyA9IGxvd2VyXzMyX2JpdHMob2Zmc2V0KTsKLQkJCSpjbWQrKyA9IHVwcGVyXzMyX2JpdHMob2Zmc2V0KTsKLQkJCSpjbWQrKyA9IHZhbHVlOwotCQl9IGVsc2UgaWYgKGdlbiA+PSA0KSB7Ci0JCQkqY21kKysgPSBNSV9TVE9SRV9EV09SRF9JTU1fR0VONCB8Ci0JCQkJKGdlbiA8IDYgPyBNSV9VU0VfR0dUVCA6IDApOwotCQkJKmNtZCsrID0gMDsKLQkJCSpjbWQrKyA9IG9mZnNldDsKLQkJCSpjbWQrKyA9IHZhbHVlOwotCQl9IGVsc2UgewotCQkJKmNtZCsrID0gTUlfU1RPUkVfRFdPUkRfSU1NIHwgTUlfTUVNX1ZJUlRVQUw7Ci0JCQkqY21kKysgPSBvZmZzZXQ7Ci0JCQkqY21kKysgPSB2YWx1ZTsKLQkJfQotCQlvZmZzZXQgKz0gUEFHRV9TSVpFOwotCX0KLQkqY21kID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKLQlpOTE1X2dlbV9vYmplY3RfZmx1c2hfbWFwKG9iaik7Ci0JaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChvYmopOwotCi0Jdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCB2bWEtPnZtLCBOVUxMKTsKLQlpZiAoSVNfRVJSKHZtYSkpIHsKLQkJZXJyID0gUFRSX0VSUih2bWEpOwotCQlnb3RvIGVycjsKLQl9Ci0KLQllcnIgPSBpOTE1X3ZtYV9waW4odm1hLCAwLCAwLCBQSU5fVVNFUik7Ci0JaWYgKGVycikKLQkJZ290byBlcnI7Ci0KLQlyZXR1cm4gdm1hOwotCi1lcnI6Ci0JaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwotCXJldHVybiBFUlJfUFRSKGVycik7Ci19Ci0KIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJlYWxfcGFnZV9jb3VudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXJldHVybiBodWdlX2dlbV9vYmplY3RfcGh5c19zaXplKG9iaikgPj4gUEFHRV9TSElGVDsKQEAgLTIzNywxMiArMTcxLDggQEAgc3RhdGljIGludCBncHVfZmlsbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkgICAgdW5zaWduZWQgaW50IGR3KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9IGN0eC0+dm0gPzogJmk5MTUtPmdndHQudm07Ci0Jc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPSBjdHgtPnZtID86ICZlbmdpbmUtPmd0LT5nZ3R0LT52bTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQlzdHJ1Y3QgaTkxNV92bWEgKmJhdGNoOwotCXVuc2lnbmVkIGludCBmbGFnczsKIAlpbnQgZXJyOwogCiAJR0VNX0JVR19PTihvYmotPmJhc2Uuc2l6ZSA+IHZtLT50b3RhbCk7CkBAIC0yNTMsNyArMTgzLDcgQEAgc3RhdGljIGludCBncHVfZmlsbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlyZXR1cm4gUFRSX0VSUih2bWEpOwogCiAJaTkxNV9nZW1fb2JqZWN0X2xvY2sob2JqKTsKLQllcnIgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4ob2JqLCBmYWxzZSk7CisJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgdHJ1ZSk7CiAJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhvYmopOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CkBAIC0yNjIsNzAgKzE5MiwyMyBAQCBzdGF0aWMgaW50IGdwdV9maWxsKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCS8qIFdpdGhpbiB0aGUgR1RUIHRoZSBodWdlIG9iamVjdHMgbWFwcyBldmVyeSBwYWdlIG9udG8KKwkvKgorCSAqIFdpdGhpbiB0aGUgR1RUIHRoZSBodWdlIG9iamVjdHMgbWFwcyBldmVyeSBwYWdlIG9udG8KIAkgKiBpdHMgMTAyNCByZWFsIHBhZ2VzICh1c2luZyBwaHlzX3BmbiA9IGRtYV9wZm4gJSAxMDI0KS4KIAkgKiBXZSBzZXQgdGhlIG50aCBkd29yZCB3aXRoaW4gdGhlIHBhZ2UgdXNpbmcgdGhlIG50aAogCSAqIG1hcHBpbmcgdmlhIHRoZSBHVFQgLSB0aGlzIHNob3VsZCBleGVyY2lzZSB0aGUgR1RUIG1hcHBpbmcKIAkgKiB3aGlsc3QgY2hlY2tpbmcgdGhhdCBlYWNoIGNvbnRleHQgcHJvdmlkZXMgYSB1bmlxdWUgdmlldwogCSAqIGludG8gdGhlIG9iamVjdC4KIAkgKi8KLQliYXRjaCA9IGdwdV9maWxsX2R3KHZtYSwKLQkJCSAgICAoZHcgKiByZWFsX3BhZ2VfY291bnQob2JqKSkgPDwgUEFHRV9TSElGVCB8Ci0JCQkgICAgKGR3ICogc2l6ZW9mKHUzMikpLAotCQkJICAgIHJlYWxfcGFnZV9jb3VudChvYmopLAotCQkJICAgIGR3KTsKLQlpZiAoSVNfRVJSKGJhdGNoKSkgewotCQllcnIgPSBQVFJfRVJSKGJhdGNoKTsKLQkJZ290byBlcnJfdm1hOwotCX0KLQotCXJxID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4LCBlbmdpbmUpOwotCWlmIChJU19FUlIocnEpKSB7Ci0JCWVyciA9IFBUUl9FUlIocnEpOwotCQlnb3RvIGVycl9iYXRjaDsKLQl9Ci0KLQlmbGFncyA9IDA7Ci0JaWYgKElOVEVMX0dFTih2bS0+aTkxNSkgPD0gNSkKLQkJZmxhZ3MgfD0gSTkxNV9ESVNQQVRDSF9TRUNVUkU7Ci0KLQllcnIgPSBlbmdpbmUtPmVtaXRfYmJfc3RhcnQocnEsCi0JCQkJICAgIGJhdGNoLT5ub2RlLnN0YXJ0LCBiYXRjaC0+bm9kZS5zaXplLAotCQkJCSAgICBmbGFncyk7Ci0JaWYgKGVycikKLQkJZ290byBlcnJfcmVxdWVzdDsKLQotCWk5MTVfdm1hX2xvY2soYmF0Y2gpOwotCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKGJhdGNoLCBycSwgMCk7Ci0JaTkxNV92bWFfdW5sb2NrKGJhdGNoKTsKLQlpZiAoZXJyKQotCQlnb3RvIHNraXBfcmVxdWVzdDsKLQotCWk5MTVfdm1hX2xvY2sodm1hKTsKLQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCBFWEVDX09CSkVDVF9XUklURSk7Ci0JaTkxNV92bWFfdW5sb2NrKHZtYSk7Ci0JaWYgKGVycikKLQkJZ290byBza2lwX3JlcXVlc3Q7Ci0KLQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKLQotCWk5MTVfdm1hX3VucGluKGJhdGNoKTsKLQlpOTE1X3ZtYV9jbG9zZShiYXRjaCk7Ci0JaTkxNV92bWFfcHV0KGJhdGNoKTsKLQorCWVyciA9IGlndF9ncHVfZmlsbF9kdyh2bWEsCisJCQkgICAgICBjdHgsCisJCQkgICAgICBlbmdpbmUsCisJCQkgICAgICAoZHcgKiByZWFsX3BhZ2VfY291bnQob2JqKSkgPDwgUEFHRV9TSElGVCB8CisJCQkgICAgICAoZHcgKiBzaXplb2YodTMyKSksCisJCQkgICAgICByZWFsX3BhZ2VfY291bnQob2JqKSwKKwkJCSAgICAgIGR3KTsKIAlpOTE1X3ZtYV91bnBpbih2bWEpOwogCi0JcmV0dXJuIDA7Ci0KLXNraXBfcmVxdWVzdDoKLQlpOTE1X3JlcXVlc3Rfc2tpcChycSwgZXJyKTsKLWVycl9yZXF1ZXN0OgotCWk5MTVfcmVxdWVzdF9hZGQocnEpOwotZXJyX2JhdGNoOgotCWk5MTVfdm1hX3VucGluKGJhdGNoKTsKLQlpOTE1X3ZtYV9wdXQoYmF0Y2gpOwotZXJyX3ZtYToKLQlpOTE1X3ZtYV91bnBpbih2bWEpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTQzMSw2ICszMTQsOSBAQCBjcmVhdGVfdGVzdF9vYmplY3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAl1NjQgc2l6ZTsKIAlpbnQgZXJyOwogCisJLyogS2VlcCBpbiBHRU0ncyBnb29kIGdyYWNlcyAqLworCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGN0eC0+aTkxNSk7CisKIAlzaXplID0gbWluKHZtLT50b3RhbCAvIDIsIDEwMjR1bGwgKiBEV19QRVJfUEFHRSAqIFBBR0VfU0laRSk7CiAJc2l6ZSA9IHJvdW5kX2Rvd24oc2l6ZSwgRFdfUEVSX1BBR0UgKiBQQUdFX1NJWkUpOwogCkBAIC01MDcsNyArMzkzLDYgQEAgc3RhdGljIGludCBpZ3RfY3R4X2V4ZWModm9pZCAqYXJnKQogCQlkdyA9IDA7CiAJCXdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmRfdGltZSkpIHsKIAkJCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Ci0JCQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAogCQkJY3R4ID0gbGl2ZV9jb250ZXh0KGk5MTUsIGZpbGUpOwogCQkJaWYgKElTX0VSUihjdHgpKSB7CkBAIC01MjMsOCArNDA4LDcgQEAgc3RhdGljIGludCBpZ3RfY3R4X2V4ZWModm9pZCAqYXJnKQogCQkJCX0KIAkJCX0KIAotCQkJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQotCQkJCWVyciA9IGdwdV9maWxsKG9iaiwgY3R4LCBlbmdpbmUsIGR3KTsKKwkJCWVyciA9IGdwdV9maWxsKG9iaiwgY3R4LCBlbmdpbmUsIGR3KTsKIAkJCWlmIChlcnIpIHsKIAkJCQlwcl9lcnIoIkZhaWxlZCB0byBmaWxsIGR3b3JkICVsdSBbJWx1LyVsdV0gd2l0aCBncHUgKCVzKSBpbiBjdHggJXUgW2Z1bGwtcHBndHQ/ICVzXSwgZXJyPSVkXG4iLAogCQkJCSAgICAgICBuZHdvcmRzLCBkdywgbWF4X2R3b3JkcyhvYmopLApAQCAtNTY1LDYgKzQ0OSw4IEBAIHN0YXRpYyBpbnQgaWd0X2N0eF9leGVjKHZvaWQgKmFyZykKIAkJbW9ja19maWxlX2ZyZWUoaTkxNSwgZmlsZSk7CiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOworCisJCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoaTkxNSk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC02MjMsNyArNTA5LDYgQEAgc3RhdGljIGludCBpZ3Rfc2hhcmVkX2N0eF9leGVjKHZvaWQgKmFyZykKIAkJbmNvbnRleHRzID0gMDsKIAkJd2hpbGUgKCF0aW1lX2FmdGVyKGppZmZpZXMsIGVuZF90aW1lKSkgewogCQkJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKLQkJCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCiAJCQljdHggPSBrZXJuZWxfY29udGV4dChpOTE1KTsKIAkJCWlmIChJU19FUlIoY3R4KSkgewpAQCAtNjQyLDkgKzUyNyw3IEBAIHN0YXRpYyBpbnQgaWd0X3NoYXJlZF9jdHhfZXhlYyh2b2lkICphcmcpCiAJCQkJfQogCQkJfQogCi0JCQllcnIgPSAwOwotCQkJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQotCQkJCWVyciA9IGdwdV9maWxsKG9iaiwgY3R4LCBlbmdpbmUsIGR3KTsKKwkJCWVyciA9IGdwdV9maWxsKG9iaiwgY3R4LCBlbmdpbmUsIGR3KTsKIAkJCWlmIChlcnIpIHsKIAkJCQlwcl9lcnIoIkZhaWxlZCB0byBmaWxsIGR3b3JkICVsdSBbJWx1LyVsdV0gd2l0aCBncHUgKCVzKSBpbiBjdHggJXUgW2Z1bGwtcHBndHQ/ICVzXSwgZXJyPSVkXG4iLAogCQkJCSAgICAgICBuZHdvcmRzLCBkdywgbWF4X2R3b3JkcyhvYmopLApAQCAtNjc4LDYgKzU2MSwxMCBAQCBzdGF0aWMgaW50IGlndF9zaGFyZWRfY3R4X2V4ZWModm9pZCAqYXJnKQogCiAJCQlkdyArPSByZW07CiAJCX0KKworCQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCQlpOTE1X2dlbV9kcmFpbl9mcmVlZF9vYmplY3RzKGk5MTUpOworCQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAl9CiBvdXRfdGVzdDoKIAlpZiAoaWd0X2xpdmVfdGVzdF9lbmQoJnQpKQpAQCAtNzQ2LDcgKzYzMyw3IEBAIGVtaXRfcnBjc19xdWVyeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiAJR0VNX0JVR19PTighaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChjZS0+ZW5naW5lKSk7CiAKLQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosIGNlLT5nZW1fY29udGV4dC0+dm0sIE5VTEwpOworCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgY2UtPnZtLCBOVUxMKTsKIAlpZiAoSVNfRVJSKHZtYSkpCiAJCXJldHVybiBQVFJfRVJSKHZtYSk7CiAKQEAgLTc3OSwxMyArNjY2LDE3IEBAIGVtaXRfcnBjc19xdWVyeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlnb3RvIGVycl9yZXF1ZXN0OwogCiAJaTkxNV92bWFfbG9jayhiYXRjaCk7Ci0JZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUoYmF0Y2gsIHJxLCAwKTsKKwllcnIgPSBpOTE1X3JlcXVlc3RfYXdhaXRfb2JqZWN0KHJxLCBiYXRjaC0+b2JqLCBmYWxzZSk7CisJaWYgKGVyciA9PSAwKQorCQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShiYXRjaCwgcnEsIDApOwogCWk5MTVfdm1hX3VubG9jayhiYXRjaCk7CiAJaWYgKGVycikKIAkJZ290byBza2lwX3JlcXVlc3Q7CiAKIAlpOTE1X3ZtYV9sb2NrKHZtYSk7Ci0JZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCBycSwgRVhFQ19PQkpFQ1RfV1JJVEUpOworCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9vYmplY3QocnEsIHZtYS0+b2JqLCB0cnVlKTsKKwlpZiAoZXJyID09IDApCisJCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHZtYSwgcnEsIEVYRUNfT0JKRUNUX1dSSVRFKTsKIAlpOTE1X3ZtYV91bmxvY2sodm1hKTsKIAlpZiAoZXJyKQogCQlnb3RvIHNraXBfcmVxdWVzdDsKQEAgLTgyMCw4ICs3MTEsNyBAQCBlbWl0X3JwY3NfcXVlcnkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKICNkZWZpbmUgVEVTVF9SRVNFVAlCSVQoMikKIAogc3RhdGljIGludAotX19zc2V1X3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCitfX3NzZXVfcHJlcGFyZShjb25zdCBjaGFyICpuYW1lLAogCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkgICAgICAgc3RydWN0IGlndF9zcGlubmVyICoqc3BpbikKQEAgLTgzNywxNCArNzI3LDExIEBAIF9fc3NldV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWlmICghKnNwaW4pCiAJCXJldHVybiAtRU5PTUVNOwogCi0JcmV0ID0gaWd0X3NwaW5uZXJfaW5pdCgqc3BpbiwgaTkxNSk7CisJcmV0ID0gaWd0X3NwaW5uZXJfaW5pdCgqc3BpbiwgY2UtPmVuZ2luZS0+Z3QpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX2ZyZWU7CiAKLQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCpzcGluLAotCQkJCQljZS0+Z2VtX2NvbnRleHQsCi0JCQkJCWNlLT5lbmdpbmUsCi0JCQkJCU1JX05PT1ApOworCXJxID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3QoKnNwaW4sIGNlLCBNSV9OT09QKTsKIAlpZiAoSVNfRVJSKHJxKSkgewogCQlyZXQgPSBQVFJfRVJSKHJxKTsKIAkJZ290byBlcnJfZmluaTsKQEAgLTg3MCw4ICs3NTcsNyBAQCBfX3NzZXVfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIH0KIAogc3RhdGljIGludAotX19yZWFkX3NsaWNlX2NvdW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCitfX3JlYWRfc2xpY2VfY291bnQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICBzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4sCiAJCSAgIHUzMiAqcnBjcykKQEAgLTkwMCw3ICs3ODYsNyBAQCBfX3JlYWRfc2xpY2VfY291bnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCXJldHVybiByZXQ7CiAJfQogCi0JaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMSkgeworCWlmIChJTlRFTF9HRU4oY2UtPmVuZ2luZS0+aTkxNSkgPj0gMTEpIHsKIAkJc19tYXNrID0gR0VOMTFfUlBDU19TX0NOVF9NQVNLOwogCQlzX3NoaWZ0ID0gR0VOMTFfUlBDU19TX0NOVF9TSElGVDsKIAl9IGVsc2UgewpAQCAtOTQzLDggKzgyOSw3IEBAIF9fY2hlY2tfcnBjcyhjb25zdCBjaGFyICpuYW1lLCB1MzIgcnBjcywgaW50IHNsaWNlcywgdW5zaWduZWQgaW50IGV4cGVjdGVkLAogfQogCiBzdGF0aWMgaW50Ci1fX3NzZXVfZmluaXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCitfX3NzZXVfZmluaXNoKGNvbnN0IGNoYXIgKm5hbWUsCiAJICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAogCSAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApAQCAtOTU2LDE5ICs4NDEsMTggQEAgX19zc2V1X2ZpbmlzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlpbnQgcmV0ID0gMDsKIAogCWlmIChmbGFncyAmIFRFU1RfUkVTRVQpIHsKLQkJcmV0ID0gaTkxNV9yZXNldF9lbmdpbmUoY2UtPmVuZ2luZSwgInNzZXUiKTsKKwkJcmV0ID0gaW50ZWxfZW5naW5lX3Jlc2V0KGNlLT5lbmdpbmUsICJzc2V1Iik7CiAJCWlmIChyZXQpCiAJCQlnb3RvIG91dDsKIAl9CiAKLQlyZXQgPSBfX3JlYWRfc2xpY2VfY291bnQoaTkxNSwgY2UsIG9iaiwKKwlyZXQgPSBfX3JlYWRfc2xpY2VfY291bnQoY2UsIG9iaiwKIAkJCQkgZmxhZ3MgJiBURVNUX1JFU0VUID8gTlVMTCA6IHNwaW4sICZycGNzKTsKIAlyZXQgPSBfX2NoZWNrX3JwY3MobmFtZSwgcnBjcywgcmV0LCBleHBlY3RlZCwgIkNvbnRleHQiLCAiISIpOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCi0JcmV0ID0gX19yZWFkX3NsaWNlX2NvdW50KGk5MTUsIGNlLT5lbmdpbmUtPmtlcm5lbF9jb250ZXh0LCBvYmosCi0JCQkJIE5VTEwsICZycGNzKTsKKwlyZXQgPSBfX3JlYWRfc2xpY2VfY291bnQoY2UtPmVuZ2luZS0+a2VybmVsX2NvbnRleHQsIG9iaiwgTlVMTCwgJnJwY3MpOwogCXJldCA9IF9fY2hlY2tfcnBjcyhuYW1lLCBycGNzLCByZXQsIHNsaWNlcywgIktlcm5lbCBjb250ZXh0IiwgIiEiKTsKIAogb3V0OgpAQCAtOTc2LDExICs4NjAsMTIgQEAgX19zc2V1X2ZpbmlzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJaWd0X3NwaW5uZXJfZW5kKHNwaW4pOwogCiAJaWYgKChmbGFncyAmIFRFU1RfSURMRSkgJiYgcmV0ID09IDApIHsKLQkJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LCAwLCBNQVhfU0NIRURVTEVfVElNRU9VVCk7CisJCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoY2UtPmVuZ2luZS0+aTkxNSwKKwkJCQkJICAgICAwLCBNQVhfU0NIRURVTEVfVElNRU9VVCk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCi0JCXJldCA9IF9fcmVhZF9zbGljZV9jb3VudChpOTE1LCBjZSwgb2JqLCBOVUxMLCAmcnBjcyk7CisJCXJldCA9IF9fcmVhZF9zbGljZV9jb3VudChjZSwgb2JqLCBOVUxMLCAmcnBjcyk7CiAJCXJldCA9IF9fY2hlY2tfcnBjcyhuYW1lLCBycGNzLCByZXQsIGV4cGVjdGVkLAogCQkJCSAgICJDb250ZXh0IiwgIiBhZnRlciBpZGxlISIpOwogCX0KQEAgLTk4OSw4ICs4NzQsNyBAQCBfX3NzZXVfZmluaXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogfQogCiBzdGF0aWMgaW50Ci1fX3NzZXVfdGVzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkgICAgY29uc3QgY2hhciAqbmFtZSwKK19fc3NldV90ZXN0KGNvbnN0IGNoYXIgKm5hbWUsCiAJICAgIHVuc2lnbmVkIGludCBmbGFncywKIAkgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApAQCAtOTk5LDcgKzg4Myw3IEBAIF9fc3NldV90ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3BpbiA9IE5VTEw7CiAJaW50IHJldDsKIAotCXJldCA9IF9fc3NldV9wcmVwYXJlKGk5MTUsIG5hbWUsIGZsYWdzLCBjZSwgJnNwaW4pOworCXJldCA9IF9fc3NldV9wcmVwYXJlKG5hbWUsIGZsYWdzLCBjZSwgJnNwaW4pOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTEwMDcsNyArODkxLDcgQEAgX19zc2V1X3Rlc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJaWYgKHJldCkKIAkJZ290byBvdXRfc3BpbjsKIAotCXJldCA9IF9fc3NldV9maW5pc2goaTkxNSwgbmFtZSwgZmxhZ3MsIGNlLCBvYmosCisJcmV0ID0gX19zc2V1X2ZpbmlzaChuYW1lLCBmbGFncywgY2UsIG9iaiwKIAkJCSAgICBod2VpZ2h0MzIoc3NldS5zbGljZV9tYXNrKSwgc3Bpbik7CiAKIG91dF9zcGluOgpAQCAtMTAyNSwzNSArOTA5LDMzIEBAIF9faWd0X2N0eF9zc2V1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gaTkxNS0+ZW5naW5lW1JDUzBdOwotCXN0cnVjdCBpbnRlbF9zc2V1IGRlZmF1bHRfc3NldSA9IGVuZ2luZS0+c3NldTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCXN0cnVjdCBpbnRlbF9zc2V1IHBnX3NzZXU7Ci0JaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJc3RydWN0IGRybV9maWxlICpmaWxlOwogCWludCByZXQ7CiAKLQlpZiAoSU5URUxfR0VOKGk5MTUpIDwgOSkKKwlpZiAoSU5URUxfR0VOKGk5MTUpIDwgOSB8fCAhZW5naW5lKQogCQlyZXR1cm4gMDsKIAogCWlmICghUlVOVElNRV9JTkZPKGk5MTUpLT5zc2V1Lmhhc19zbGljZV9wZykKIAkJcmV0dXJuIDA7CiAKLQlpZiAoaHdlaWdodDMyKGRlZmF1bHRfc3NldS5zbGljZV9tYXNrKSA8IDIpCisJaWYgKGh3ZWlnaHQzMihlbmdpbmUtPnNzZXUuc2xpY2VfbWFzaykgPCAyKQogCQlyZXR1cm4gMDsKIAogCS8qCiAJICogR2VuMTEgVk1FIGZyaWVuZGx5IHBvd2VyLWdhdGVkIGNvbmZpZ3VyYXRpb24gd2l0aCBoYWxmIGVuYWJsZWQKIAkgKiBzdWItc2xpY2VzLgogCSAqLwotCXBnX3NzZXUgPSBkZWZhdWx0X3NzZXU7CisJcGdfc3NldSA9IGVuZ2luZS0+c3NldTsKIAlwZ19zc2V1LnNsaWNlX21hc2sgPSAxOwogCXBnX3NzZXUuc3Vic2xpY2VfbWFzayA9Ci0JCX4ofjAgPDwgKGh3ZWlnaHQzMihkZWZhdWx0X3NzZXUuc3Vic2xpY2VfbWFzaykgLyAyKSk7CisJCX4ofjAgPDwgKGh3ZWlnaHQzMihlbmdpbmUtPnNzZXUuc3Vic2xpY2VfbWFzaykgLyAyKSk7CiAKIAlwcl9pbmZvKCJTU0VVIHN1YnRlc3QgJyVzJywgZmxhZ3M9JXgsIGRlZl9zbGljZXM9JXUsIHBnX3NsaWNlcz0ldVxuIiwKLQkJbmFtZSwgZmxhZ3MsIGh3ZWlnaHQzMihkZWZhdWx0X3NzZXUuc2xpY2VfbWFzayksCisJCW5hbWUsIGZsYWdzLCBod2VpZ2h0MzIoZW5naW5lLT5zc2V1LnNsaWNlX21hc2spLAogCQlod2VpZ2h0MzIocGdfc3NldS5zbGljZV9tYXNrKSk7CiAKIAlmaWxlID0gbW9ja19maWxlKGk5MTUpOwpAQCAtMTA2MSw3ICs5NDMsNyBAQCBfX2lndF9jdHhfc3NldShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJcmV0dXJuIFBUUl9FUlIoZmlsZSk7CiAKIAlpZiAoZmxhZ3MgJiBURVNUX1JFU0VUKQotCQlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CisJCWlndF9nbG9iYWxfcmVzZXRfbG9jaygmaTkxNS0+Z3QpOwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKQEAgLTEwNzgsMTIgKzk2MCwxMCBAQCBfX2lndF9jdHhfc3NldShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7Ci0KIAljZSA9IGk5MTVfZ2VtX2NvbnRleHRfZ2V0X2VuZ2luZShjdHgsIFJDUzApOwogCWlmIChJU19FUlIoY2UpKSB7CiAJCXJldCA9IFBUUl9FUlIoY2UpOwotCQlnb3RvIG91dF9ycG07CisJCWdvdG8gb3V0X3B1dDsKIAl9CiAKIAlyZXQgPSBpbnRlbF9jb250ZXh0X3BpbihjZSk7CkBAIC0xMDkxLDIyICs5NzEsMjIgQEAgX19pZ3RfY3R4X3NzZXUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCWdvdG8gb3V0X2NvbnRleHQ7CiAKIAkvKiBGaXJzdCBzZXQgdGhlIGRlZmF1bHQgbWFzay4gKi8KLQlyZXQgPSBfX3NzZXVfdGVzdChpOTE1LCBuYW1lLCBmbGFncywgY2UsIG9iaiwgZGVmYXVsdF9zc2V1KTsKKwlyZXQgPSBfX3NzZXVfdGVzdChuYW1lLCBmbGFncywgY2UsIG9iaiwgZW5naW5lLT5zc2V1KTsKIAlpZiAocmV0KQogCQlnb3RvIG91dF9mYWlsOwogCiAJLyogVGhlbiBzZXQgYSBwb3dlci1nYXRlZCBjb25maWd1cmF0aW9uLiAqLwotCXJldCA9IF9fc3NldV90ZXN0KGk5MTUsIG5hbWUsIGZsYWdzLCBjZSwgb2JqLCBwZ19zc2V1KTsKKwlyZXQgPSBfX3NzZXVfdGVzdChuYW1lLCBmbGFncywgY2UsIG9iaiwgcGdfc3NldSk7CiAJaWYgKHJldCkKIAkJZ290byBvdXRfZmFpbDsKIAogCS8qIEJhY2sgdG8gZGVmYXVsdHMuICovCi0JcmV0ID0gX19zc2V1X3Rlc3QoaTkxNSwgbmFtZSwgZmxhZ3MsIGNlLCBvYmosIGRlZmF1bHRfc3NldSk7CisJcmV0ID0gX19zc2V1X3Rlc3QobmFtZSwgZmxhZ3MsIGNlLCBvYmosIGVuZ2luZS0+c3NldSk7CiAJaWYgKHJldCkKIAkJZ290byBvdXRfZmFpbDsKIAogCS8qIE9uZSBsYXN0IHBvd2VyLWdhdGVkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSByb2FkLiAqLwotCXJldCA9IF9fc3NldV90ZXN0KGk5MTUsIG5hbWUsIGZsYWdzLCBjZSwgb2JqLCBwZ19zc2V1KTsKKwlyZXQgPSBfX3NzZXVfdGVzdChuYW1lLCBmbGFncywgY2UsIG9iaiwgcGdfc3NldSk7CiAJaWYgKHJldCkKIAkJZ290byBvdXRfZmFpbDsKIApAQCAtMTExNywxNSArOTk3LDE0IEBAIF9faWd0X2N0eF9zc2V1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWludGVsX2NvbnRleHRfdW5waW4oY2UpOwogb3V0X2NvbnRleHQ6CiAJaW50ZWxfY29udGV4dF9wdXQoY2UpOwotb3V0X3JwbToKLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CitvdXRfcHV0OgogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIAogb3V0X3VubG9jazoKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiAJaWYgKGZsYWdzICYgVEVTVF9SRVNFVCkKLQkJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisJCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKCZpOTE1LT5ndCk7CiAKIAltb2NrX2ZpbGVfZnJlZShpOTE1LCBmaWxlKTsKIApAQCAtMTE5NCw3ICsxMDczLDcgQEAgc3RhdGljIGludCBpZ3RfY3R4X3JlYWRvbmx5KHZvaWQgKmFyZykKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAotCXZtID0gY3R4LT52bSA/OiAmaTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtOworCXZtID0gY3R4LT52bSA/OiAmaTkxNS0+Z2d0dC5hbGlhcy0+dm07CiAJaWYgKCF2bSB8fCAhdm0tPmhhc19yZWFkX29ubHkpIHsKIAkJZXJyID0gMDsKIAkJZ290byBvdXRfdW5sb2NrOwpAQCAtMTIwNyw4ICsxMDg2LDYgQEAgc3RhdGljIGludCBpZ3RfY3R4X3JlYWRvbmx5KHZvaWQgKmFyZykKIAkJdW5zaWduZWQgaW50IGlkOwogCiAJCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7Ci0JCQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQogCQkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCiAJCQkJY29udGludWU7CiAKQEAgLTEyMjMsOSArMTEwMCw3IEBAIHN0YXRpYyBpbnQgaWd0X2N0eF9yZWFkb25seSh2b2lkICphcmcpCiAJCQkJCWk5MTVfZ2VtX29iamVjdF9zZXRfcmVhZG9ubHkob2JqKTsKIAkJCX0KIAotCQkJZXJyID0gMDsKLQkJCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZikKLQkJCQllcnIgPSBncHVfZmlsbChvYmosIGN0eCwgZW5naW5lLCBkdyk7CisJCQllcnIgPSBncHVfZmlsbChvYmosIGN0eCwgZW5naW5lLCBkdyk7CiAJCQlpZiAoZXJyKSB7CiAJCQkJcHJfZXJyKCJGYWlsZWQgdG8gZmlsbCBkd29yZCAlbHUgWyVsdS8lbHVdIHdpdGggZ3B1ICglcykgaW4gY3R4ICV1IFtmdWxsLXBwZ3R0PyAlc10sIGVycj0lZFxuIiwKIAkJCQkgICAgICAgbmR3b3JkcywgZHcsIG1heF9kd29yZHMob2JqKSwKQEAgLTEzNDcsNyArMTIyMiw5IEBAIHN0YXRpYyBpbnQgd3JpdGVfdG9fc2NyYXRjaChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQlnb3RvIGVycl9yZXF1ZXN0OwogCiAJaTkxNV92bWFfbG9jayh2bWEpOwotCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHZtYSwgcnEsIDApOworCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9vYmplY3QocnEsIHZtYS0+b2JqLCBmYWxzZSk7CisJaWYgKGVyciA9PSAwKQorCQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCAwKTsKIAlpOTE1X3ZtYV91bmxvY2sodm1hKTsKIAlpZiAoZXJyKQogCQlnb3RvIHNraXBfcmVxdWVzdDsKQEAgLTE0NDQsNyArMTMyMSw5IEBAIHN0YXRpYyBpbnQgcmVhZF9mcm9tX3NjcmF0Y2goc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJZ290byBlcnJfcmVxdWVzdDsKIAogCWk5MTVfdm1hX2xvY2sodm1hKTsKLQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCBFWEVDX09CSkVDVF9XUklURSk7CisJZXJyID0gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgdm1hLT5vYmosIHRydWUpOworCWlmIChlcnIgPT0gMCkKKwkJZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCBycSwgRVhFQ19PQkpFQ1RfV1JJVEUpOwogCWk5MTVfdm1hX3VubG9jayh2bWEpOwogCWlmIChlcnIpCiAJCWdvdG8gc2tpcF9yZXF1ZXN0OwpAQCAtMTQ4OCw3ICsxMzY3LDYgQEAgc3RhdGljIGludCBpZ3Rfdm1faXNvbGF0aW9uKHZvaWQgKmFyZykKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4X2EsICpjdHhfYjsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJc3RydWN0IGlndF9saXZlX3Rlc3QgdDsKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGU7CiAJSTkxNV9STkRfU1RBVEUocHJuZyk7CkBAIC0xNTM1LDggKzE0MTMsNiBAQCBzdGF0aWMgaW50IGlndF92bV9pc29sYXRpb24odm9pZCAqYXJnKQogCUdFTV9CVUdfT04oY3R4X2ItPnZtLT50b3RhbCAhPSB2bV90b3RhbCk7CiAJdm1fdG90YWwgLT0gSTkxNV9HVFRfUEFHRV9TSVpFOwogCi0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKLQogCWNvdW50ID0gMDsKIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewogCQlJR1RfVElNRU9VVChlbmRfdGltZSk7CkBAIC0xNTUxLDcgKzE0MjcsNyBAQCBzdGF0aWMgaW50IGlndF92bV9pc29sYXRpb24odm9pZCAqYXJnKQogCiAJCQlkaXY2NF91NjRfcmVtKGk5MTVfcHJhbmRvbV91NjRfc3RhdGUoJnBybmcpLAogCQkJCSAgICAgIHZtX3RvdGFsLCAmb2Zmc2V0KTsKLQkJCW9mZnNldCAmPSAtc2l6ZW9mKHUzMik7CisJCQlvZmZzZXQgPSByb3VuZF9kb3duKG9mZnNldCwgYWxpZ25vZl9kd29yZCk7CiAJCQlvZmZzZXQgKz0gSTkxNV9HVFRfUEFHRV9TSVpFOwogCiAJCQllcnIgPSB3cml0ZV90b19zY3JhdGNoKGN0eF9hLCBlbmdpbmUsCkBAIC0xNTYwLDcgKzE0MzYsNyBAQCBzdGF0aWMgaW50IGlndF92bV9pc29sYXRpb24odm9pZCAqYXJnKQogCQkJCWVyciA9IHJlYWRfZnJvbV9zY3JhdGNoKGN0eF9iLCBlbmdpbmUsCiAJCQkJCQkJb2Zmc2V0LCAmdmFsdWUpOwogCQkJaWYgKGVycikKLQkJCQlnb3RvIG91dF9ycG07CisJCQkJZ290byBvdXRfdW5sb2NrOwogCiAJCQlpZiAodmFsdWUpIHsKIAkJCQlwcl9lcnIoIiVzOiBSZWFkICUwOHggZnJvbSBzY3JhdGNoIChvZmZzZXQgMHglMDh4XyUwOHgpLCBhZnRlciAlbHUgcmVhZHMhXG4iLApAQCAtMTU2OSw3ICsxNDQ1LDcgQEAgc3RhdGljIGludCBpZ3Rfdm1faXNvbGF0aW9uKHZvaWQgKmFyZykKIAkJCQkgICAgICAgbG93ZXJfMzJfYml0cyhvZmZzZXQpLAogCQkJCSAgICAgICB0aGlzKTsKIAkJCQllcnIgPSAtRUlOVkFMOwotCQkJCWdvdG8gb3V0X3JwbTsKKwkJCQlnb3RvIG91dF91bmxvY2s7CiAJCQl9CiAKIAkJCXRoaXMrKzsKQEAgLTE1NzksOCArMTQ1NSw2IEBAIHN0YXRpYyBpbnQgaWd0X3ZtX2lzb2xhdGlvbih2b2lkICphcmcpCiAJcHJfaW5mbygiQ2hlY2tlZCAlbHUgc2NyYXRjaCBvZmZzZXRzIGFjcm9zcyAlZCBlbmdpbmVzXG4iLAogCQljb3VudCwgUlVOVElNRV9JTkZPKGk5MTUpLT5udW1fZW5naW5lcyk7CiAKLW91dF9ycG06Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogb3V0X3VubG9jazoKIAlpZiAoaWd0X2xpdmVfdGVzdF9lbmQoJnQpKQogCQllcnIgPSAtRUlPOwpAQCAtMTczNiw3ICsxNjEwLDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfbW9ja19zZWxmdGVzdHModm9pZCkKIAlyZXR1cm4gZXJyOwogfQogCi1pbnQgaTkxNV9nZW1fY29udGV4dF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitpbnQgaTkxNV9nZW1fY29udGV4dF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewogCQlTVUJURVNUKGxpdmVfbm9wX3N3aXRjaCksCkBAIC0xNzQ3LDggKzE2MjEsOCBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCVNVQlRFU1QoaWd0X3ZtX2lzb2xhdGlvbiksCiAJfTsKIAotCWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGRldl9wcml2KSkKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKCZpOTE1LT5ndCkpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIGRldl9wcml2KTsKKwlyZXR1cm4gaTkxNV9saXZlX3N1YnRlc3RzKHRlc3RzLCBpOTE1KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2RtYWJ1Zi5jCmluZGV4IGUzYTY0ZWQuLmQ4NWQxY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fZG1hYnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9kbWFidWYuYwpAQCAtMjAsNyArMjAsNyBAQCBzdGF0aWMgaW50IGlndF9kbWFidWZfZXhwb3J0KHZvaWQgKmFyZykKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBQVFJfRVJSKG9iaik7CiAKLQlkbWFidWYgPSBpOTE1X2dlbV9wcmltZV9leHBvcnQoJmk5MTUtPmRybSwgJm9iai0+YmFzZSwgMCk7CisJZG1hYnVmID0gaTkxNV9nZW1fcHJpbWVfZXhwb3J0KCZvYmotPmJhc2UsIDApOwogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIAlpZiAoSVNfRVJSKGRtYWJ1ZikpIHsKIAkJcHJfZXJyKCJpOTE1X2dlbV9wcmltZV9leHBvcnQgZmFpbGVkIHdpdGggZXJyPSVkXG4iLApAQCAtNDQsNyArNDQsNyBAQCBzdGF0aWMgaW50IGlndF9kbWFidWZfaW1wb3J0X3NlbGYodm9pZCAqYXJnKQogCWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAotCWRtYWJ1ZiA9IGk5MTVfZ2VtX3ByaW1lX2V4cG9ydCgmaTkxNS0+ZHJtLCAmb2JqLT5iYXNlLCAwKTsKKwlkbWFidWYgPSBpOTE1X2dlbV9wcmltZV9leHBvcnQoJm9iai0+YmFzZSwgMCk7CiAJaWYgKElTX0VSUihkbWFidWYpKSB7CiAJCXByX2VycigiaTkxNV9nZW1fcHJpbWVfZXhwb3J0IGZhaWxlZCB3aXRoIGVycj0lZFxuIiwKIAkJICAgICAgIChpbnQpUFRSX0VSUihkbWFidWYpKTsKQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgaW50IGlndF9kbWFidWZfZXhwb3J0X3ZtYXAodm9pZCAqYXJnKQogCWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAotCWRtYWJ1ZiA9IGk5MTVfZ2VtX3ByaW1lX2V4cG9ydCgmaTkxNS0+ZHJtLCAmb2JqLT5iYXNlLCAwKTsKKwlkbWFidWYgPSBpOTE1X2dlbV9wcmltZV9leHBvcnQoJm9iai0+YmFzZSwgMCk7CiAJaWYgKElTX0VSUihkbWFidWYpKSB7CiAJCXByX2VycigiaTkxNV9nZW1fcHJpbWVfZXhwb3J0IGZhaWxlZCB3aXRoIGVycj0lZFxuIiwKIAkJICAgICAgIChpbnQpUFRSX0VSUihkbWFidWYpKTsKQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgaW50IGlndF9kbWFidWZfZXhwb3J0X2ttYXAodm9pZCAqYXJnKQogCWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAotCWRtYWJ1ZiA9IGk5MTVfZ2VtX3ByaW1lX2V4cG9ydCgmaTkxNS0+ZHJtLCAmb2JqLT5iYXNlLCAwKTsKKwlkbWFidWYgPSBpOTE1X2dlbV9wcmltZV9leHBvcnQoJm9iai0+YmFzZSwgMCk7CiAJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCWlmIChJU19FUlIoZG1hYnVmKSkgewogCQllcnIgPSBQVFJfRVJSKGRtYWJ1Zik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fbW1hbi5jCmluZGV4IDVjODFmNGIuLjFkMjdiYWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fbW1hbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fbW1hbi5jCkBAIC02LDYgKzYsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvcHJpbWVfbnVtYmVycy5oPgogCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKICNpbmNsdWRlICJndC9pbnRlbF9ndF9wbS5oIgogI2luY2x1ZGUgImh1Z2VfZ2VtX29iamVjdC5oIgogI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKQEAgLTE0Myw3ICsxNDQsNyBAQCBzdGF0aWMgaW50IGNoZWNrX3BhcnRpYWxfbWFwcGluZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlpZiAob2Zmc2V0ID49IG9iai0+YmFzZS5zaXplKQogCQkJY29udGludWU7CiAKLQkJaTkxNV9nZW1fZmx1c2hfZ2d0dF93cml0ZXModG9faTkxNShvYmotPmJhc2UuZGV2KSk7CisJCWludGVsX2d0X2ZsdXNoX2dndHRfd3JpdGVzKCZ0b19pOTE1KG9iai0+YmFzZS5kZXYpLT5ndCk7CiAKIAkJcCA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShvYmosIG9mZnNldCA+PiBQQUdFX1NISUZUKTsKIAkJY3B1ID0ga21hcChwKSArIG9mZnNldF9pbl9wYWdlKG9mZnNldCk7CkBAIC0zMjcsNyArMzI4LDggQEAgbmV4dF90aWxpbmc6IDsKIHN0YXRpYyBpbnQgbWFrZV9vYmpfYnVzeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJaW50IGVycjsKIApAQCAtMzM5LDE4ICszNDEsMjUgQEAgc3RhdGljIGludCBtYWtlX29ial9idXN5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCXJxID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZShpOTE1LT5lbmdpbmVbUkNTMF0tPmtlcm5lbF9jb250ZXh0KTsKLQlpZiAoSVNfRVJSKHJxKSkgewotCQlpOTE1X3ZtYV91bnBpbih2bWEpOwotCQlyZXR1cm4gUFRSX0VSUihycSk7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisKKwkJcnEgPSBpOTE1X3JlcXVlc3RfY3JlYXRlKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOworCQlpZiAoSVNfRVJSKHJxKSkgeworCQkJaTkxNV92bWFfdW5waW4odm1hKTsKKwkJCXJldHVybiBQVFJfRVJSKHJxKTsKKwkJfQorCisJCWk5MTVfdm1hX2xvY2sodm1hKTsKKwkJZXJyID0gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgdm1hLT5vYmosIHRydWUpOworCQlpZiAoZXJyID09IDApCisJCQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLAorCQkJCQkJICAgICAgRVhFQ19PQkpFQ1RfV1JJVEUpOworCQlpOTE1X3ZtYV91bmxvY2sodm1hKTsKKworCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKIAl9CiAKLQlpOTE1X3ZtYV9sb2NrKHZtYSk7Ci0JZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCBycSwgRVhFQ19PQkpFQ1RfV1JJVEUpOwotCWk5MTVfdm1hX3VubG9jayh2bWEpOwotCi0JaTkxNV9yZXF1ZXN0X2FkZChycSk7Ci0KIAlpOTE1X3ZtYV91bnBpbih2bWEpOwogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsgLyogbGVhdmUgaXQgb25seSBhbGl2ZSB2aWEgaXRzIGFjdGl2ZSByZWYgKi8KIApAQCAtMzc2LDkgKzM4NSw5IEBAIHN0YXRpYyBib29sIGFzc2VydF9tbWFwX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAogc3RhdGljIHZvaWQgZGlzYWJsZV9yZXRpcmVfd29ya2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewotCWk5MTVfZ2VtX3Nocmlua2VyX3VucmVnaXN0ZXIoaTkxNSk7CisJaTkxNV9nZW1fZHJpdmVyX3VucmVnaXN0ZXJfX3Nocmlua2VyKGk5MTUpOwogCi0JaW50ZWxfZ3RfcG1fZ2V0KGk5MTUpOworCWludGVsX2d0X3BtX2dldCgmaTkxNS0+Z3QpOwogCiAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpOTE1LT5nZW0ucmV0aXJlX3dvcmspOwogCWZsdXNoX3dvcmsoJmk5MTUtPmdlbS5pZGxlX3dvcmspOwpAQCAtMzg2LDEzICszOTUsMjUgQEAgc3RhdGljIHZvaWQgZGlzYWJsZV9yZXRpcmVfd29ya2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiBzdGF0aWMgdm9pZCByZXN0b3JlX3JldGlyZV93b3JrZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0JaW50ZWxfZ3RfcG1fcHV0KGk5MTUpOworCWludGVsX2d0X3BtX3B1dCgmaTkxNS0+Z3QpOwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCWk5MTVfZ2VtX3Nocmlua2VyX3JlZ2lzdGVyKGk5MTUpOworCWk5MTVfZ2VtX2RyaXZlcl9yZWdpc3Rlcl9fc2hyaW5rZXIoaTkxNSk7Cit9CisKK3N0YXRpYyB2b2lkIG1tYXBfb2Zmc2V0X2xvY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCisJX19hY3F1aXJlcygmaTkxNS0+ZHJtLnZtYV9vZmZzZXRfbWFuYWdlci0+dm1fbG9jaykKK3sKKwl3cml0ZV9sb2NrKCZpOTE1LT5kcm0udm1hX29mZnNldF9tYW5hZ2VyLT52bV9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgbW1hcF9vZmZzZXRfdW5sb2NrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorCV9fcmVsZWFzZXMoJmk5MTUtPmRybS52bWFfb2Zmc2V0X21hbmFnZXItPnZtX2xvY2spCit7CisJd3JpdGVfdW5sb2NrKCZpOTE1LT5kcm0udm1hX29mZnNldF9tYW5hZ2VyLT52bV9sb2NrKTsKIH0KIAogc3RhdGljIGludCBpZ3RfbW1hcF9vZmZzZXRfZXhoYXVzdGlvbih2b2lkICphcmcpCkBAIC00MTMsNyArNDM0LDkgQEAgc3RhdGljIGludCBpZ3RfbW1hcF9vZmZzZXRfZXhoYXVzdGlvbih2b2lkICphcmcpCiAJZHJtX21tX2Zvcl9lYWNoX2hvbGUoaG9sZSwgbW0sIGhvbGVfc3RhcnQsIGhvbGVfZW5kKSB7CiAJCXJlc3Yuc3RhcnQgPSBob2xlX3N0YXJ0OwogCQlyZXN2LnNpemUgPSBob2xlX2VuZCAtIGhvbGVfc3RhcnQgLSAxOyAvKiBQQUdFX1NJWkUgdW5pdHMgKi8KKwkJbW1hcF9vZmZzZXRfbG9jayhpOTE1KTsKIAkJZXJyID0gZHJtX21tX3Jlc2VydmVfbm9kZShtbSwgJnJlc3YpOworCQltbWFwX29mZnNldF91bmxvY2soaTkxNSk7CiAJCWlmIChlcnIpIHsKIAkJCXByX2VycigiRmFpbGVkIHRvIHRyaW0gVk1BIG1hbmFnZXIsIGVycj0lZFxuIiwgZXJyKTsKIAkJCWdvdG8gb3V0X3Bhcms7CkBAIC00NTgsNyArNDgxLDcgQEAgc3RhdGljIGludCBpZ3RfbW1hcF9vZmZzZXRfZXhoYXVzdGlvbih2b2lkICphcmcpCiAKIAkvKiBOb3cgZmlsbCB3aXRoIGJ1c3kgZGVhZCBvYmplY3RzIHRoYXQgd2UgZXhwZWN0IHRvIHJlYXAgKi8KIAlmb3IgKGxvb3AgPSAwOyBsb29wIDwgMzsgbG9vcCsrKSB7Ci0JCWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGk5MTUpKQorCQlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKCZpOTE1LT5ndCkpCiAJCQlicmVhazsKIAogCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGk5MTUsIFBBR0VfU0laRSk7CkBAIC00NzQsMTkgKzQ5NywxMiBAQCBzdGF0aWMgaW50IGlndF9tbWFwX29mZnNldF9leGhhdXN0aW9uKHZvaWQgKmFyZykKIAkJCXByX2VycigiW2xvb3AgJWRdIEZhaWxlZCB0byBidXN5IHRoZSBvYmplY3RcbiIsIGxvb3ApOwogCQkJZ290byBlcnJfb2JqOwogCQl9Ci0KLQkJLyogTkIgd2UgcmVseSBvbiB0aGUgX2FjdGl2ZV8gcmVmZXJlbmNlIHRvIGFjY2VzcyBvYmogbm93ICovCi0JCUdFTV9CVUdfT04oIWk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSk7Ci0JCWVyciA9IGNyZWF0ZV9tbWFwX29mZnNldChvYmopOwotCQlpZiAoZXJyKSB7Ci0JCQlwcl9lcnIoIltsb29wICVkXSBjcmVhdGVfbW1hcF9vZmZzZXQgZmFpbGVkIHdpdGggZXJyPSVkXG4iLAotCQkJICAgICAgIGxvb3AsIGVycik7Ci0JCQlnb3RvIG91dDsKLQkJfQogCX0KIAogb3V0OgorCW1tYXBfb2Zmc2V0X2xvY2soaTkxNSk7CiAJZHJtX21tX3JlbW92ZV9ub2RlKCZyZXN2KTsKKwltbWFwX29mZnNldF91bmxvY2soaTkxNSk7CiBvdXRfcGFyazoKIAlyZXN0b3JlX3JldGlyZV93b3JrZXIoaTkxNSk7CiAJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fb2JqZWN0X2JsdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMKaW5kZXggZTIzZDhjOS4uYzIxZDc0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMKQEAgLTMsMTYgKzMsMTkgQEAKICAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCiAgKi8KIAorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCisKICNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCiAKICNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QuaCIKICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19kcm0uaCIKKyNpbmNsdWRlICJodWdlX2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJtb2NrX2NvbnRleHQuaCIKIAogc3RhdGljIGludCBpZ3RfZmlsbF9ibHQodm9pZCAqYXJnKQogewotCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IGFyZzsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGNlLT5nZW1fY29udGV4dC0+aTkxNTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBpOTE1LT5lbmdpbmVbQkNTMF0tPmtlcm5lbF9jb250ZXh0OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IHJuZF9zdGF0ZSBwcm5nOwogCUlHVF9USU1FT1VUKGVuZCk7CkBAIC0yMSwxNiArMjQsMjYgQEAgc3RhdGljIGludCBpZ3RfZmlsbF9ibHQodm9pZCAqYXJnKQogCiAJcHJhbmRvbV9zZWVkX3N0YXRlKCZwcm5nLCBpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9zZWVkKTsKIAorCS8qCisJICogWFhYOiBuZWVkcyBzb21lIHRocmVhZHMgdG8gc2NhbGUgYWxsIHRoZXNlIHRlc3RzLCBhbHNvIG1heWJlIHRocm93CisJICogaW4gc3VibWlzc2lvbiBmcm9tIGhpZ2hlciBwcmlvcml0eSBjb250ZXh0IHRvIHNlZSBpZiB3ZSBhcmUKKwkgKiBwcmVlbXB0ZWQgZm9yIHZlcnkgbGFyZ2Ugb2JqZWN0cy4uLgorCSAqLworCiAJZG8gewotCQl1MzIgc3ogPSBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZykgJSBTWl8zMk07CisJCWNvbnN0IHUzMiBtYXhfYmxvY2tfc2l6ZSA9IFMxNl9NQVggKiBQQUdFX1NJWkU7CisJCXUzMiBzeiA9IG1pbl90KHU2NCwgY2UtPnZtLT50b3RhbCA+PiA0LCBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZykpOworCQl1MzIgcGh5c19zeiA9IHN6ICUgKG1heF9ibG9ja19zaXplICsgMSk7CiAJCXUzMiB2YWwgPSBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZyk7CiAJCXUzMiBpOwogCiAJCXN6ID0gcm91bmRfdXAoc3osIFBBR0VfU0laRSk7CisJCXBoeXNfc3ogPSByb3VuZF91cChwaHlzX3N6LCBQQUdFX1NJWkUpOwogCi0JCXByX2RlYnVnKCIlcyB3aXRoIHN6PSV4LCB2YWw9JXhcbiIsIF9fZnVuY19fLCBzeiwgdmFsKTsKKwkJcHJfZGVidWcoIiVzIHdpdGggcGh5c19zej0gJXgsIHN6PSV4LCB2YWw9JXhcbiIsIF9fZnVuY19fLAorCQkJIHBoeXNfc3osIHN6LCB2YWwpOwogCi0JCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoaTkxNSwgc3opOworCQlvYmogPSBodWdlX2dlbV9vYmplY3QoaTkxNSwgcGh5c19zeiwgc3opOwogCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCWVyciA9IFBUUl9FUlIob2JqKTsKIAkJCWdvdG8gZXJyX2ZsdXNoOwpAQCAtNDYsNyArNTksOCBAQCBzdGF0aWMgaW50IGlndF9maWxsX2JsdCh2b2lkICphcmcpCiAJCSAqIE1ha2Ugc3VyZSB0aGUgcG90ZW50aWFsbHkgYXN5bmMgY2xmbHVzaCBkb2VzIGl0cyBqb2IsIGlmCiAJCSAqIHJlcXVpcmVkLgogCQkgKi8KLQkJbWVtc2V0MzIodmFkZHIsIHZhbCBeIDB4ZGVhZGJlYWYsIG9iai0+YmFzZS5zaXplIC8gc2l6ZW9mKHUzMikpOworCQltZW1zZXQzMih2YWRkciwgdmFsIF4gMHhkZWFkYmVhZiwKKwkJCSBodWdlX2dlbV9vYmplY3RfcGh5c19zaXplKG9iaikgLyBzaXplb2YodTMyKSk7CiAKIAkJaWYgKCEob2JqLT5jYWNoZV9jb2hlcmVudCAmIEk5MTVfQk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1dSSVRFKSkKIAkJCW9iai0+Y2FjaGVfZGlydHkgPSB0cnVlOwpAQCAtNjMsNyArNzcsNyBAQCBzdGF0aWMgaW50IGlndF9maWxsX2JsdCh2b2lkICphcmcpCiAJCWlmIChlcnIpCiAJCQlnb3RvIGVycl91bnBpbjsKIAotCQlmb3IgKGkgPSAwOyBpIDwgb2JqLT5iYXNlLnNpemUgLyBzaXplb2YodTMyKTsgKytpKSB7CisJCWZvciAoaSA9IDA7IGkgPCBodWdlX2dlbV9vYmplY3RfcGh5c19zaXplKG9iaikgLyBzaXplb2YodTMyKTsgKytpKSB7CiAJCQlpZiAodmFkZHJbaV0gIT0gdmFsKSB7CiAJCQkJcHJfZXJyKCJ2YWRkclsldV09JXgsIGV4cGVjdGVkPSV4XG4iLCBpLAogCQkJCSAgICAgICB2YWRkcltpXSwgdmFsKTsKQEAgLTgzLDExICs5NywxMTEgQEAgc3RhdGljIGludCBpZ3RfZmlsbF9ibHQodm9pZCAqYXJnKQogZXJyX3B1dDoKIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiBlcnJfZmx1c2g6Ci0JbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JaWYgKGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpKQotCQllcnIgPSAtRUlPOwotCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaWYgKGVyciA9PSAtRU5PTUVNKQorCQllcnIgPSAwOwogCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBpZ3RfY29weV9ibHQodm9pZCAqYXJnKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IGk5MTUtPmVuZ2luZVtCQ1MwXS0+a2VybmVsX2NvbnRleHQ7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnNyYywgKmRzdDsKKwlzdHJ1Y3Qgcm5kX3N0YXRlIHBybmc7CisJSUdUX1RJTUVPVVQoZW5kKTsKKwl1MzIgKnZhZGRyOworCWludCBlcnIgPSAwOworCisJcHJhbmRvbV9zZWVkX3N0YXRlKCZwcm5nLCBpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9zZWVkKTsKKworCWRvIHsKKwkJY29uc3QgdTMyIG1heF9ibG9ja19zaXplID0gUzE2X01BWCAqIFBBR0VfU0laRTsKKwkJdTMyIHN6ID0gbWluX3QodTY0LCBjZS0+dm0tPnRvdGFsID4+IDQsIHByYW5kb21fdTMyX3N0YXRlKCZwcm5nKSk7CisJCXUzMiBwaHlzX3N6ID0gc3ogJSAobWF4X2Jsb2NrX3NpemUgKyAxKTsKKwkJdTMyIHZhbCA9IHByYW5kb21fdTMyX3N0YXRlKCZwcm5nKTsKKwkJdTMyIGk7CisKKwkJc3ogPSByb3VuZF91cChzeiwgUEFHRV9TSVpFKTsKKwkJcGh5c19zeiA9IHJvdW5kX3VwKHBoeXNfc3osIFBBR0VfU0laRSk7CisKKwkJcHJfZGVidWcoIiVzIHdpdGggcGh5c19zej0gJXgsIHN6PSV4LCB2YWw9JXhcbiIsIF9fZnVuY19fLAorCQkJIHBoeXNfc3osIHN6LCB2YWwpOworCisJCXNyYyA9IGh1Z2VfZ2VtX29iamVjdChpOTE1LCBwaHlzX3N6LCBzeik7CisJCWlmIChJU19FUlIoc3JjKSkgeworCQkJZXJyID0gUFRSX0VSUihzcmMpOworCQkJZ290byBlcnJfZmx1c2g7CisJCX0KKworCQl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHNyYywgSTkxNV9NQVBfV0IpOworCQlpZiAoSVNfRVJSKHZhZGRyKSkgeworCQkJZXJyID0gUFRSX0VSUih2YWRkcik7CisJCQlnb3RvIGVycl9wdXRfc3JjOworCQl9CisKKwkJbWVtc2V0MzIodmFkZHIsIHZhbCwKKwkJCSBodWdlX2dlbV9vYmplY3RfcGh5c19zaXplKHNyYykgLyBzaXplb2YodTMyKSk7CisKKwkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChzcmMpOworCisJCWlmICghKHNyYy0+Y2FjaGVfY29oZXJlbnQgJiBJOTE1X0JPX0NBQ0hFX0NPSEVSRU5UX0ZPUl9SRUFEKSkKKwkJCXNyYy0+Y2FjaGVfZGlydHkgPSB0cnVlOworCisJCWRzdCA9IGh1Z2VfZ2VtX29iamVjdChpOTE1LCBwaHlzX3N6LCBzeik7CisJCWlmIChJU19FUlIoZHN0KSkgeworCQkJZXJyID0gUFRSX0VSUihkc3QpOworCQkJZ290byBlcnJfcHV0X3NyYzsKKwkJfQorCisJCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoZHN0LCBJOTE1X01BUF9XQik7CisJCWlmIChJU19FUlIodmFkZHIpKSB7CisJCQllcnIgPSBQVFJfRVJSKHZhZGRyKTsKKwkJCWdvdG8gZXJyX3B1dF9kc3Q7CisJCX0KKworCQltZW1zZXQzMih2YWRkciwgdmFsIF4gMHhkZWFkYmVhZiwKKwkJCSBodWdlX2dlbV9vYmplY3RfcGh5c19zaXplKGRzdCkgLyBzaXplb2YodTMyKSk7CisKKwkJaWYgKCEoZHN0LT5jYWNoZV9jb2hlcmVudCAmIEk5MTVfQk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1dSSVRFKSkKKwkJCWRzdC0+Y2FjaGVfZGlydHkgPSB0cnVlOworCisJCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCQllcnIgPSBpOTE1X2dlbV9vYmplY3RfY29weV9ibHQoc3JjLCBkc3QsIGNlKTsKKwkJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyX3VucGluOworCisJCWk5MTVfZ2VtX29iamVjdF9sb2NrKGRzdCk7CisJCWVyciA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fY3B1X2RvbWFpbihkc3QsIGZhbHNlKTsKKwkJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhkc3QpOworCQlpZiAoZXJyKQorCQkJZ290byBlcnJfdW5waW47CisKKwkJZm9yIChpID0gMDsgaSA8IGh1Z2VfZ2VtX29iamVjdF9waHlzX3NpemUoZHN0KSAvIHNpemVvZih1MzIpOyArK2kpIHsKKwkJCWlmICh2YWRkcltpXSAhPSB2YWwpIHsKKwkJCQlwcl9lcnIoInZhZGRyWyV1XT0leCwgZXhwZWN0ZWQ9JXhcbiIsIGksCisJCQkJICAgICAgIHZhZGRyW2ldLCB2YWwpOworCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJZ290byBlcnJfdW5waW47CisJCQl9CisJCX0KKworCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGRzdCk7CisKKwkJaTkxNV9nZW1fb2JqZWN0X3B1dChzcmMpOworCQlpOTE1X2dlbV9vYmplY3RfcHV0KGRzdCk7CisJfSB3aGlsZSAoIXRpbWVfYWZ0ZXIoamlmZmllcywgZW5kKSk7CisKKwlnb3RvIGVycl9mbHVzaDsKKworZXJyX3VucGluOgorCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoZHN0KTsKK2Vycl9wdXRfZHN0OgorCWk5MTVfZ2VtX29iamVjdF9wdXQoZHN0KTsKK2Vycl9wdXRfc3JjOgorCWk5MTVfZ2VtX29iamVjdF9wdXQoc3JjKTsKK2Vycl9mbHVzaDoKIAlpZiAoZXJyID09IC1FTk9NRU0pCiAJCWVyciA9IDA7CiAKQEAgLTk4LDEzICsyMTIsMTQgQEAgaW50IGk5MTVfZ2VtX29iamVjdF9ibHRfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKIAkJU1VCVEVTVChpZ3RfZmlsbF9ibHQpLAorCQlTVUJURVNUKGlndF9jb3B5X2JsdCksCiAJfTsKIAotCWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGk5MTUpKQorCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoIUhBU19FTkdJTkUoaTkxNSwgQkNTMCkpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIGk5MTUtPmVuZ2luZVtCQ1MwXS0+a2VybmVsX2NvbnRleHQpOworCXJldHVybiBpOTE1X2xpdmVfc3VidGVzdHModGVzdHMsIGk5MTUpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuYwppbmRleCBiMjMyZTZkLi41N2VjZTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuYwpAQCAtOSw2ICs5LDggQEAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY29udGV4dC5oIgogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9wbS5oIgogI2luY2x1ZGUgImd0L2ludGVsX2NvbnRleHQuaCIKKyNpbmNsdWRlICJpOTE1X3ZtYS5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAKICNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKIApAQCAtMjMsNyArMjUsNyBAQCBpZ3RfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICogR0dUVCBzcGFjZSwgc28gZG8gdGhpcyBmaXJzdCBiZWZvcmUgd2UgcmVzZXJ2ZSBhIHNlcW5vIGZvcgogCSAqIG91cnNlbHZlcy4KIAkgKi8KLQljZSA9IGk5MTVfZ2VtX2NvbnRleHRfZ2V0X2VuZ2luZShjdHgsIGVuZ2luZS0+aWQpOworCWNlID0gaTkxNV9nZW1fY29udGV4dF9nZXRfZW5naW5lKGN0eCwgZW5naW5lLT5sZWdhY3lfaWR4KTsKIAlpZiAoSVNfRVJSKGNlKSkKIAkJcmV0dXJuIEVSUl9DQVNUKGNlKTsKIApAQCAtMzIsMyArMzQsMTQwIEBAIGlndF9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCXJldHVybiBycTsKIH0KKworc3RydWN0IGk5MTVfdm1hICoKK2lndF9lbWl0X3N0b3JlX2R3KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAorCQkgIHU2NCBvZmZzZXQsCisJCSAgdW5zaWduZWQgbG9uZyBjb3VudCwKKwkJICB1MzIgdmFsKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJY29uc3QgaW50IGdlbiA9IElOVEVMX0dFTih2bWEtPnZtLT5pOTE1KTsKKwl1bnNpZ25lZCBsb25nIG4sIHNpemU7CisJdTMyICpjbWQ7CisJaW50IGVycjsKKworCXNpemUgPSAoNCAqIGNvdW50ICsgMSkgKiBzaXplb2YodTMyKTsKKwlzaXplID0gcm91bmRfdXAoc2l6ZSwgUEFHRV9TSVpFKTsKKwlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKHZtYS0+dm0tPmk5MTUsIHNpemUpOworCWlmIChJU19FUlIob2JqKSkKKwkJcmV0dXJuIEVSUl9DQVNUKG9iaik7CisKKwljbWQgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChvYmosIEk5MTVfTUFQX1dDKTsKKwlpZiAoSVNfRVJSKGNtZCkpIHsKKwkJZXJyID0gUFRSX0VSUihjbWQpOworCQlnb3RvIGVycjsKKwl9CisKKwlHRU1fQlVHX09OKG9mZnNldCArIChjb3VudCAtIDEpICogUEFHRV9TSVpFID4gdm1hLT5ub2RlLnNpemUpOworCW9mZnNldCArPSB2bWEtPm5vZGUuc3RhcnQ7CisKKwlmb3IgKG4gPSAwOyBuIDwgY291bnQ7IG4rKykgeworCQlpZiAoZ2VuID49IDgpIHsKKwkJCSpjbWQrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTV9HRU40OworCQkJKmNtZCsrID0gbG93ZXJfMzJfYml0cyhvZmZzZXQpOworCQkJKmNtZCsrID0gdXBwZXJfMzJfYml0cyhvZmZzZXQpOworCQkJKmNtZCsrID0gdmFsOworCQl9IGVsc2UgaWYgKGdlbiA+PSA0KSB7CisJCQkqY21kKysgPSBNSV9TVE9SRV9EV09SRF9JTU1fR0VONCB8CisJCQkJKGdlbiA8IDYgPyBNSV9VU0VfR0dUVCA6IDApOworCQkJKmNtZCsrID0gMDsKKwkJCSpjbWQrKyA9IG9mZnNldDsKKwkJCSpjbWQrKyA9IHZhbDsKKwkJfSBlbHNlIHsKKwkJCSpjbWQrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTSB8IE1JX01FTV9WSVJUVUFMOworCQkJKmNtZCsrID0gb2Zmc2V0OworCQkJKmNtZCsrID0gdmFsOworCQl9CisJCW9mZnNldCArPSBQQUdFX1NJWkU7CisJfQorCSpjbWQgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAob2JqKTsKKworCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgdm1hLT52bSwgTlVMTCk7CisJaWYgKElTX0VSUih2bWEpKSB7CisJCWVyciA9IFBUUl9FUlIodm1hKTsKKwkJZ290byBlcnI7CisJfQorCisJZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgUElOX1VTRVIpOworCWlmIChlcnIpCisJCWdvdG8gZXJyOworCisJcmV0dXJuIHZtYTsKKworZXJyOgorCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKwlyZXR1cm4gRVJSX1BUUihlcnIpOworfQorCitpbnQgaWd0X2dwdV9maWxsX2R3KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAorCQkgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJICAgIHU2NCBvZmZzZXQsCisJCSAgICB1bnNpZ25lZCBsb25nIGNvdW50LAorCQkgICAgdTMyIHZhbCkKK3sKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9IGN0eC0+dm0gPzogJmVuZ2luZS0+Z3QtPmdndHQtPnZtOworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCXN0cnVjdCBpOTE1X3ZtYSAqYmF0Y2g7CisJdW5zaWduZWQgaW50IGZsYWdzOworCWludCBlcnI7CisKKwlHRU1fQlVHX09OKHZtYS0+c2l6ZSA+IHZtLT50b3RhbCk7CisJR0VNX0JVR19PTighaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKTsKKwlHRU1fQlVHX09OKCFpOTE1X3ZtYV9pc19waW5uZWQodm1hKSk7CisKKwliYXRjaCA9IGlndF9lbWl0X3N0b3JlX2R3KHZtYSwgb2Zmc2V0LCBjb3VudCwgdmFsKTsKKwlpZiAoSVNfRVJSKGJhdGNoKSkKKwkJcmV0dXJuIFBUUl9FUlIoYmF0Y2gpOworCisJcnEgPSBpZ3RfcmVxdWVzdF9hbGxvYyhjdHgsIGVuZ2luZSk7CisJaWYgKElTX0VSUihycSkpIHsKKwkJZXJyID0gUFRSX0VSUihycSk7CisJCWdvdG8gZXJyX2JhdGNoOworCX0KKworCWZsYWdzID0gMDsKKwlpZiAoSU5URUxfR0VOKHZtLT5pOTE1KSA8PSA1KQorCQlmbGFncyB8PSBJOTE1X0RJU1BBVENIX1NFQ1VSRTsKKworCWVyciA9IGVuZ2luZS0+ZW1pdF9iYl9zdGFydChycSwKKwkJCQkgICAgYmF0Y2gtPm5vZGUuc3RhcnQsIGJhdGNoLT5ub2RlLnNpemUsCisJCQkJICAgIGZsYWdzKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9yZXF1ZXN0OworCisJaTkxNV92bWFfbG9jayhiYXRjaCk7CisJZXJyID0gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgYmF0Y2gtPm9iaiwgZmFsc2UpOworCWlmIChlcnIgPT0gMCkKKwkJZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUoYmF0Y2gsIHJxLCAwKTsKKwlpOTE1X3ZtYV91bmxvY2soYmF0Y2gpOworCWlmIChlcnIpCisJCWdvdG8gc2tpcF9yZXF1ZXN0OworCisJaTkxNV92bWFfbG9jayh2bWEpOworCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9vYmplY3QocnEsIHZtYS0+b2JqLCB0cnVlKTsKKwlpZiAoZXJyID09IDApCisJCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHZtYSwgcnEsIEVYRUNfT0JKRUNUX1dSSVRFKTsKKwlpOTE1X3ZtYV91bmxvY2sodm1hKTsKKwlpZiAoZXJyKQorCQlnb3RvIHNraXBfcmVxdWVzdDsKKworCWk5MTVfcmVxdWVzdF9hZGQocnEpOworCisJaTkxNV92bWFfdW5waW4oYmF0Y2gpOworCWk5MTVfdm1hX2Nsb3NlKGJhdGNoKTsKKwlpOTE1X3ZtYV9wdXQoYmF0Y2gpOworCisJcmV0dXJuIDA7CisKK3NraXBfcmVxdWVzdDoKKwlpOTE1X3JlcXVlc3Rfc2tpcChycSwgZXJyKTsKK2Vycl9yZXF1ZXN0OgorCWk5MTVfcmVxdWVzdF9hZGQocnEpOworZXJyX2JhdGNoOgorCWk5MTVfdm1hX3VucGluKGJhdGNoKTsKKwlpOTE1X3ZtYV9wdXQoYmF0Y2gpOworCXJldHVybiBlcnI7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oCmluZGV4IDBmMTcyNTEuLjM2MWE3ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oCkBAIC03LDExICs3LDI3IEBACiAjaWZuZGVmIF9fSUdUX0dFTV9VVElMU19IX18KICNkZWZpbmUgX19JR1RfR0VNX1VUSUxTX0hfXwogCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKwogc3RydWN0IGk5MTVfcmVxdWVzdDsKIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0Owogc3RydWN0IGludGVsX2VuZ2luZV9jczsKK3N0cnVjdCBpOTE1X3ZtYTsKIAogc3RydWN0IGk5MTVfcmVxdWVzdCAqCiBpZ3RfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCitzdHJ1Y3QgaTkxNV92bWEgKgoraWd0X2VtaXRfc3RvcmVfZHcoc3RydWN0IGk5MTVfdm1hICp2bWEsCisJCSAgdTY0IG9mZnNldCwKKwkJICB1bnNpZ25lZCBsb25nIGNvdW50LAorCQkgIHUzMiB2YWwpOworCitpbnQgaWd0X2dwdV9maWxsX2R3KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAorCQkgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJICAgIHU2NCBvZmZzZXQsCisJCSAgICB1bnNpZ25lZCBsb25nIGNvdW50LAorCQkgICAgdTMyIHZhbCk7CisKICNlbmRpZiAvKiBfX0lHVF9HRU1fVVRJTFNfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L01ha2VmaWxlCmluZGV4IDFjNzViNWMuLjdlNzNhYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L01ha2VmaWxlCkBAIC0xLDIgKzEsNSBAQAorIyBGb3IgYnVpbGRpbmcgaW5kaXZpZHVhbCBzdWJkaXIgZmlsZXMgb24gdGhlIGNvbW1hbmQgbGluZQorc3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjdHJlZSkvJChzcmMpLy4uCisKICMgRXh0cmEgaGVhZGVyIHRlc3RzCi1pbmNsdWRlICQoc3JjKS9NYWtlZmlsZS5oZWFkZXItdGVzdAoraGVhZGVyLXRlc3QtcGF0dGVybi0kKENPTkZJR19EUk1fSTkxNV9XRVJST1IpIDo9ICouaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvTWFrZWZpbGUuaGVhZGVyLXRlc3QgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9NYWtlZmlsZS5oZWFkZXItdGVzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjFlMDZjYi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9NYWtlZmlsZS5oZWFkZXItdGVzdAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotIyBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgotCi0jIFRlc3QgdGhlIGhlYWRlcnMgYXJlIGNvbXBpbGFibGUgYXMgc3RhbmRhbG9uZSB1bml0cwotaGVhZGVyX3Rlc3QgOj0gJChub3RkaXIgJCh3aWxkY2FyZCAkKHNyYykvKi5oKSkKLQotcXVpZXRfY21kX2hlYWRlcl90ZXN0ID0gSERSVEVTVCAkQAotICAgICAgY21kX2hlYWRlcl90ZXN0ID0gZWNobyAiXCNpbmNsdWRlIFwiJCg8RilcIiIgPiAkQAotCi1oZWFkZXJfdGVzdF8lLmM6ICUuaAotCSQoY2FsbCBjbWQsaGVhZGVyX3Rlc3QpCi0KLWV4dHJhLSQoQ09ORklHX0RSTV9JOTE1X1dFUlJPUikgKz0gXAotCSQoZm9yZWFjaCBoLCQoaGVhZGVyX3Rlc3QpLCQocGF0c3Vic3QgJS5oLGhlYWRlcl90ZXN0XyUubywkKGgpKSkKLQotY2xlYW4tZmlsZXMgKz0gJChmb3JlYWNoIGgsJChoZWFkZXJfdGVzdCksJChwYXRzdWJzdCAlLmgsaGVhZGVyX3Rlc3RfJS5jLCQoaCkpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuNi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuNl9yZW5kZXJzdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW42LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjZfcmVuZGVyc3RhdGUuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuNy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuN19yZW5kZXJzdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW43LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjdfcmVuZGVyc3RhdGUuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuOC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuOF9yZW5kZXJzdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW44LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjhfcmVuZGVyc3RhdGUuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuOS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuOV9yZW5kZXJzdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW45LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjlfcmVuZGVyc3RhdGUuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfYnJlYWRjcnVtYnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2JyZWFkY3J1bWJzLmMKaW5kZXggYzA5MmJkZi4uMDljNjhkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfYnJlYWRjcnVtYnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9icmVhZGNydW1icy5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8dWFwaS9saW51eC9zY2hlZC90eXBlcy5oPgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAKIHN0YXRpYyB2b2lkIGlycV9lbmFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewpAQCAtMzQsOSArMzUsOSBAQCBzdGF0aWMgdm9pZCBpcnFfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJcmV0dXJuOwogCiAJLyogQ2FsbGVyIGRpc2FibGVzIGludGVycnVwdHMgKi8KLQlzcGluX2xvY2soJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOworCXNwaW5fbG9jaygmZW5naW5lLT5ndC0+aXJxX2xvY2spOwogCWVuZ2luZS0+aXJxX2VuYWJsZShlbmdpbmUpOwotCXNwaW5fdW5sb2NrKCZlbmdpbmUtPmk5MTUtPmlycV9sb2NrKTsKKwlzcGluX3VubG9jaygmZW5naW5lLT5ndC0+aXJxX2xvY2spOwogfQogCiBzdGF0aWMgdm9pZCBpcnFfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCkBAIC00NSw5ICs0Niw5IEBAIHN0YXRpYyB2b2lkIGlycV9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJcmV0dXJuOwogCiAJLyogQ2FsbGVyIGRpc2FibGVzIGludGVycnVwdHMgKi8KLQlzcGluX2xvY2soJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOworCXNwaW5fbG9jaygmZW5naW5lLT5ndC0+aXJxX2xvY2spOwogCWVuZ2luZS0+aXJxX2Rpc2FibGUoZW5naW5lKTsKLQlzcGluX3VubG9jaygmZW5naW5lLT5pOTE1LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2soJmVuZ2luZS0+Z3QtPmlycV9sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbnRlbF9icmVhZGNydW1ic19kaXNhcm1faXJxKHN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKQEAgLTY2LDE0ICs2NywxNSBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2JyZWFkY3J1bWJzX2Rpc2FybV9pcnEoc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiKQogdm9pZCBpbnRlbF9lbmdpbmVfZGlzYXJtX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1iczsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJaWYgKCFiLT5pcnFfYXJtZWQpCiAJCXJldHVybjsKIAotCXNwaW5fbG9ja19pcnEoJmItPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmYi0+aXJxX2xvY2ssIGZsYWdzKTsKIAlpZiAoYi0+aXJxX2FybWVkKQogCQlfX2ludGVsX2JyZWFkY3J1bWJzX2Rpc2FybV9pcnEoYik7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZiLT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYi0+aXJxX2xvY2ssIGZsYWdzKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIF9fcmVxdWVzdF9jb21wbGV0ZWQoY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCkBAIC0xMTIsMTggKzExNCwxOCBAQCBfX2RtYV9mZW5jZV9zaWduYWxfX3RpbWVzdGFtcChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwga3RpbWVfdCB0aW1lc3RhbXApCiB9CiAKIHN0YXRpYyB2b2lkCi1fX2RtYV9mZW5jZV9zaWduYWxfX25vdGlmeShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK19fZG1hX2ZlbmNlX3NpZ25hbF9fbm90aWZ5KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAorCQkJICAgY29uc3Qgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKIHsKIAlzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjdXIsICp0bXA7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKGZlbmNlLT5sb2NrKTsKIAlsb2NrZGVwX2Fzc2VydF9pcnFzX2Rpc2FibGVkKCk7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY3VyLCB0bXAsICZmZW5jZS0+Y2JfbGlzdCwgbm9kZSkgeworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwgbGlzdCwgbm9kZSkgewogCQlJTklUX0xJU1RfSEVBRCgmY3VyLT5ub2RlKTsKIAkJY3VyLT5mdW5jKGZlbmNlLCBjdXIpOwogCX0KLQlJTklUX0xJU1RfSEVBRCgmZmVuY2UtPmNiX2xpc3QpOwogfQogCiB2b2lkIGludGVsX2VuZ2luZV9icmVhZGNydW1ic19pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpAQCAtMTg1LDExICsxODcsMTIgQEAgdm9pZCBpbnRlbF9lbmdpbmVfYnJlYWRjcnVtYnNfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlsaXN0X2Zvcl9lYWNoX3NhZmUocG9zLCBuZXh0LCAmc2lnbmFsKSB7CiAJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxID0KIAkJCWxpc3RfZW50cnkocG9zLCB0eXBlb2YoKnJxKSwgc2lnbmFsX2xpbmspOwotCi0JCV9fZG1hX2ZlbmNlX3NpZ25hbF9fdGltZXN0YW1wKCZycS0+ZmVuY2UsIHRpbWVzdGFtcCk7CisJCXN0cnVjdCBsaXN0X2hlYWQgY2JfbGlzdDsKIAogCQlzcGluX2xvY2soJnJxLT5sb2NrKTsKLQkJX19kbWFfZmVuY2Vfc2lnbmFsX19ub3RpZnkoJnJxLT5mZW5jZSk7CisJCWxpc3RfcmVwbGFjZSgmcnEtPmZlbmNlLmNiX2xpc3QsICZjYl9saXN0KTsKKwkJX19kbWFfZmVuY2Vfc2lnbmFsX190aW1lc3RhbXAoJnJxLT5mZW5jZSwgdGltZXN0YW1wKTsKKwkJX19kbWFfZmVuY2Vfc2lnbmFsX19ub3RpZnkoJnJxLT5mZW5jZSwgJmNiX2xpc3QpOwogCQlzcGluX3VubG9jaygmcnEtPmxvY2spOwogCiAJCWk5MTVfcmVxdWVzdF9wdXQocnEpOwpAQCAtMjExLDI4ICsyMTQsNiBAQCBzdGF0aWMgdm9pZCBzaWduYWxfaXJxX3dvcmsoc3RydWN0IGlycV93b3JrICp3b3JrKQogCWludGVsX2VuZ2luZV9icmVhZGNydW1ic19pcnEoZW5naW5lKTsKIH0KIAotdm9pZCBpbnRlbF9lbmdpbmVfcGluX2JyZWFkY3J1bWJzX2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0Jc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7Ci0KLQlzcGluX2xvY2tfaXJxKCZiLT5pcnFfbG9jayk7Ci0JaWYgKCFiLT5pcnFfZW5hYmxlZCsrKQotCQlpcnFfZW5hYmxlKGVuZ2luZSk7Ci0JR0VNX0JVR19PTighYi0+aXJxX2VuYWJsZWQpOyAvKiBubyBvdmVyZmxvdyEgKi8KLQlzcGluX3VubG9ja19pcnEoJmItPmlycV9sb2NrKTsKLX0KLQotdm9pZCBpbnRlbF9lbmdpbmVfdW5waW5fYnJlYWRjcnVtYnNfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1iczsKLQotCXNwaW5fbG9ja19pcnEoJmItPmlycV9sb2NrKTsKLQlHRU1fQlVHX09OKCFiLT5pcnFfZW5hYmxlZCk7IC8qIG5vIHVuZGVyZmxvdyEgKi8KLQlpZiAoIS0tYi0+aXJxX2VuYWJsZWQpCi0JCWlycV9kaXNhYmxlKGVuZ2luZSk7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZiLT5pcnFfbG9jayk7Ci19Ci0KIHN0YXRpYyB2b2lkIF9faW50ZWxfYnJlYWRjcnVtYnNfYXJtX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYwppbmRleCAyMzEyMDkwMWMuLmY1NTY5MWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKQEAgLTUzLDEyICs1MywyNCBAQCBpbnQgX19pbnRlbF9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiAJaWYgKGxpa2VseSghYXRvbWljX3JlYWQoJmNlLT5waW5fY291bnQpKSkgewogCQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAorCQlpZiAodW5saWtlbHkoIXRlc3RfYml0KENPTlRFWFRfQUxMT0NfQklULCAmY2UtPmZsYWdzKSkpIHsKKwkJCWVyciA9IGNlLT5vcHMtPmFsbG9jKGNlKTsKKwkJCWlmICh1bmxpa2VseShlcnIpKQorCQkJCWdvdG8gZXJyOworCisJCQlfX3NldF9iaXQoQ09OVEVYVF9BTExPQ19CSVQsICZjZS0+ZmxhZ3MpOworCQl9CisKIAkJZXJyID0gMDsKIAkJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZjZS0+ZW5naW5lLT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQkJZXJyID0gY2UtPm9wcy0+cGluKGNlKTsKIAkJaWYgKGVycikKIAkJCWdvdG8gZXJyOwogCisJCUdFTV9UUkFDRSgiJXMgY29udGV4dDolbGx4IHBpbiByaW5nOntoZWFkOiUwNHgsIHRhaWw6JTA0eH1cbiIsCisJCQkgIGNlLT5lbmdpbmUtPm5hbWUsIGNlLT50aW1lbGluZS0+ZmVuY2VfY29udGV4dCwKKwkJCSAgY2UtPnJpbmctPmhlYWQsIGNlLT5yaW5nLT50YWlsKTsKKwogCQlpOTE1X2dlbV9jb250ZXh0X2dldChjZS0+Z2VtX2NvbnRleHQpOyAvKiBmb3IgY3R4LT5wcGd0dCAqLwogCiAJCXNtcF9tYl9fYmVmb3JlX2F0b21pYygpOyAvKiBmbHVzaCBwaW4gYmVmb3JlIGl0IGlzIHZpc2libGUgKi8KQEAgLTg1LDYgKzk3LDkgQEAgdm9pZCBpbnRlbF9jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIAltdXRleF9sb2NrX25lc3RlZCgmY2UtPnBpbl9tdXRleCwgU0lOR0xFX0RFUFRIX05FU1RJTkcpOwogCiAJaWYgKGxpa2VseShhdG9taWNfZGVjX2FuZF90ZXN0KCZjZS0+cGluX2NvdW50KSkpIHsKKwkJR0VNX1RSQUNFKCIlcyBjb250ZXh0OiVsbHggcmV0aXJlXG4iLAorCQkJICBjZS0+ZW5naW5lLT5uYW1lLCBjZS0+dGltZWxpbmUtPmZlbmNlX2NvbnRleHQpOworCiAJCWNlLT5vcHMtPnVucGluKGNlKTsKIAogCQlpOTE1X2dlbV9jb250ZXh0X3B1dChjZS0+Z2VtX2NvbnRleHQpOwpAQCAtOTUsMTEgKzExMCwxNSBAQCB2b2lkIGludGVsX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogCWludGVsX2NvbnRleHRfcHV0KGNlKTsKIH0KIAotc3RhdGljIGludCBfX2NvbnRleHRfcGluX3N0YXRlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1bnNpZ25lZCBsb25nIGZsYWdzKQorc3RhdGljIGludCBfX2NvbnRleHRfcGluX3N0YXRlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogeworCXU2NCBmbGFnczsKIAlpbnQgZXJyOwogCi0JZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgZmxhZ3MgfCBQSU5fR0xPQkFMKTsKKwlmbGFncyA9IGk5MTVfZ2d0dF9waW5fYmlhcyh2bWEpIHwgUElOX09GRlNFVF9CSUFTOworCWZsYWdzIHw9IFBJTl9ISUdIIHwgUElOX0dMT0JBTDsKKworCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIGZsYWdzKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCkBAIC0xMDcsNyArMTI2LDcgQEAgc3RhdGljIGludCBfX2NvbnRleHRfcGluX3N0YXRlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCSAqIEFuZCBtYXJrIGl0IGFzIGEgZ2xvYmFsbHkgcGlubmVkIG9iamVjdCB0byBsZXQgdGhlIHNocmlua2VyIGtub3cKIAkgKiBpdCBjYW5ub3QgcmVjbGFpbSB0aGUgb2JqZWN0IHVudGlsIHdlIHJlbGVhc2UgaXQuCiAJICovCi0Jdm1hLT5vYmotPnBpbl9nbG9iYWwrKzsKKwlpOTE1X3ZtYV9tYWtlX3Vuc2hyaW5rYWJsZSh2bWEpOwogCXZtYS0+b2JqLT5tbS5kaXJ0eSA9IHRydWU7CiAKIAlyZXR1cm4gMDsKQEAgLTExNSwyMSArMTM0LDg2IEBAIHN0YXRpYyBpbnQgX19jb250ZXh0X3Bpbl9zdGF0ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdW5zaWduZWQgbG9uZyBmbGFncykKIAogc3RhdGljIHZvaWQgX19jb250ZXh0X3VucGluX3N0YXRlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogewotCXZtYS0+b2JqLT5waW5fZ2xvYmFsLS07CiAJX19pOTE1X3ZtYV91bnBpbih2bWEpOworCWk5MTVfdm1hX21ha2Vfc2hyaW5rYWJsZSh2bWEpOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9jb250ZXh0X3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmFjdGl2ZSkKK3N0YXRpYyB2b2lkIF9faW50ZWxfY29udGV4dF9yZXRpcmUoc3RydWN0IGk5MTVfYWN0aXZlICphY3RpdmUpCiB7CiAJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gY29udGFpbmVyX29mKGFjdGl2ZSwgdHlwZW9mKCpjZSksIGFjdGl2ZSk7CiAKKwlHRU1fVFJBQ0UoIiVzIGNvbnRleHQ6JWxseCByZXRpcmVcbiIsCisJCSAgY2UtPmVuZ2luZS0+bmFtZSwgY2UtPnRpbWVsaW5lLT5mZW5jZV9jb250ZXh0KTsKKwogCWlmIChjZS0+c3RhdGUpCiAJCV9fY29udGV4dF91bnBpbl9zdGF0ZShjZS0+c3RhdGUpOwogCisJaW50ZWxfdGltZWxpbmVfdW5waW4oY2UtPnRpbWVsaW5lKTsKIAlpbnRlbF9yaW5nX3VucGluKGNlLT5yaW5nKTsKIAlpbnRlbF9jb250ZXh0X3B1dChjZSk7CiB9CiAKK3N0YXRpYyBpbnQgX19pbnRlbF9jb250ZXh0X2FjdGl2ZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmFjdGl2ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBjb250YWluZXJfb2YoYWN0aXZlLCB0eXBlb2YoKmNlKSwgYWN0aXZlKTsKKwlpbnQgZXJyOworCisJaW50ZWxfY29udGV4dF9nZXQoY2UpOworCisJZXJyID0gaW50ZWxfcmluZ19waW4oY2UtPnJpbmcpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX3B1dDsKKworCWVyciA9IGludGVsX3RpbWVsaW5lX3BpbihjZS0+dGltZWxpbmUpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX3Jpbmc7CisKKwlpZiAoIWNlLT5zdGF0ZSkKKwkJcmV0dXJuIDA7CisKKwllcnIgPSBfX2NvbnRleHRfcGluX3N0YXRlKGNlLT5zdGF0ZSk7CisJaWYgKGVycikKKwkJZ290byBlcnJfdGltZWxpbmU7CisKKwlyZXR1cm4gMDsKKworZXJyX3RpbWVsaW5lOgorCWludGVsX3RpbWVsaW5lX3VucGluKGNlLT50aW1lbGluZSk7CitlcnJfcmluZzoKKwlpbnRlbF9yaW5nX3VucGluKGNlLT5yaW5nKTsKK2Vycl9wdXQ6CisJaW50ZWxfY29udGV4dF9wdXQoY2UpOworCXJldHVybiBlcnI7Cit9CisKK2ludCBpbnRlbF9jb250ZXh0X2FjdGl2ZV9hY3F1aXJlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKK3sKKwlpbnQgZXJyOworCisJZXJyID0gaTkxNV9hY3RpdmVfYWNxdWlyZSgmY2UtPmFjdGl2ZSk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCS8qIFByZWFsbG9jYXRlIHRyYWNraW5nIG5vZGVzICovCisJaWYgKCFpOTE1X2dlbV9jb250ZXh0X2lzX2tlcm5lbChjZS0+Z2VtX2NvbnRleHQpKSB7CisJCWVyciA9IGk5MTVfYWN0aXZlX2FjcXVpcmVfcHJlYWxsb2NhdGVfYmFycmllcigmY2UtPmFjdGl2ZSwKKwkJCQkJCQkgICAgICBjZS0+ZW5naW5lKTsKKwkJaWYgKGVycikgeworCQkJaTkxNV9hY3RpdmVfcmVsZWFzZSgmY2UtPmFjdGl2ZSk7CisJCQlyZXR1cm4gZXJyOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgaW50ZWxfY29udGV4dF9hY3RpdmVfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCit7CisJLyogTm9kZXMgcHJlYWxsb2NhdGVkIGluIGludGVsX2NvbnRleHRfYWN0aXZlKCkgKi8KKwlpOTE1X2FjdGl2ZV9hY3F1aXJlX2JhcnJpZXIoJmNlLT5hY3RpdmUpOworCWk5MTVfYWN0aXZlX3JlbGVhc2UoJmNlLT5hY3RpdmUpOworfQorCiB2b2lkCiBpbnRlbF9jb250ZXh0X2luaXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCQkgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LApAQCAtMTQwLDYzICsyMjQsMzIgQEAgaW50ZWxfY29udGV4dF9pbml0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAlrcmVmX2luaXQoJmNlLT5yZWYpOwogCiAJY2UtPmdlbV9jb250ZXh0ID0gY3R4OworCWNlLT52bSA9IGk5MTVfdm1fZ2V0KGN0eC0+dm0gPzogJmVuZ2luZS0+Z3QtPmdndHQtPnZtKTsKKwlpZiAoY3R4LT50aW1lbGluZSkKKwkJY2UtPnRpbWVsaW5lID0gaW50ZWxfdGltZWxpbmVfZ2V0KGN0eC0+dGltZWxpbmUpOworCiAJY2UtPmVuZ2luZSA9IGVuZ2luZTsKIAljZS0+b3BzID0gZW5naW5lLT5jb3BzOwogCWNlLT5zc2V1ID0gZW5naW5lLT5zc2V1OworCWNlLT5yaW5nID0gX19pbnRlbF9jb250ZXh0X3Jpbmdfc2l6ZShTWl8xNkspOwogCiAJSU5JVF9MSVNUX0hFQUQoJmNlLT5zaWduYWxfbGluayk7CiAJSU5JVF9MSVNUX0hFQUQoJmNlLT5zaWduYWxzKTsKIAogCW11dGV4X2luaXQoJmNlLT5waW5fbXV0ZXgpOwogCi0JaTkxNV9hY3RpdmVfaW5pdChjdHgtPmk5MTUsICZjZS0+YWN0aXZlLCBpbnRlbF9jb250ZXh0X3JldGlyZSk7CisJaTkxNV9hY3RpdmVfaW5pdChjdHgtPmk5MTUsICZjZS0+YWN0aXZlLAorCQkJIF9faW50ZWxfY29udGV4dF9hY3RpdmUsIF9faW50ZWxfY29udGV4dF9yZXRpcmUpOwogfQogCi1pbnQgaW50ZWxfY29udGV4dF9hY3RpdmVfYWNxdWlyZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit2b2lkIGludGVsX2NvbnRleHRfZmluaShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7Ci0JaW50IGVycjsKKwlpZiAoY2UtPnRpbWVsaW5lKQorCQlpbnRlbF90aW1lbGluZV9wdXQoY2UtPnRpbWVsaW5lKTsKKwlpOTE1X3ZtX3B1dChjZS0+dm0pOwogCi0JaWYgKCFpOTE1X2FjdGl2ZV9hY3F1aXJlKCZjZS0+YWN0aXZlKSkKLQkJcmV0dXJuIDA7Ci0KLQlpbnRlbF9jb250ZXh0X2dldChjZSk7Ci0KLQllcnIgPSBpbnRlbF9yaW5nX3BpbihjZS0+cmluZyk7Ci0JaWYgKGVycikKLQkJZ290byBlcnJfcHV0OwotCi0JaWYgKCFjZS0+c3RhdGUpCi0JCXJldHVybiAwOwotCi0JZXJyID0gX19jb250ZXh0X3Bpbl9zdGF0ZShjZS0+c3RhdGUsIGZsYWdzKTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9yaW5nOwotCi0JLyogUHJlYWxsb2NhdGUgdHJhY2tpbmcgbm9kZXMgKi8KLQlpZiAoIWk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVsKGNlLT5nZW1fY29udGV4dCkpIHsKLQkJZXJyID0gaTkxNV9hY3RpdmVfYWNxdWlyZV9wcmVhbGxvY2F0ZV9iYXJyaWVyKCZjZS0+YWN0aXZlLAotCQkJCQkJCSAgICAgIGNlLT5lbmdpbmUpOwotCQlpZiAoZXJyKQotCQkJZ290byBlcnJfc3RhdGU7Ci0JfQotCi0JcmV0dXJuIDA7Ci0KLWVycl9zdGF0ZToKLQlfX2NvbnRleHRfdW5waW5fc3RhdGUoY2UtPnN0YXRlKTsKLWVycl9yaW5nOgotCWludGVsX3JpbmdfdW5waW4oY2UtPnJpbmcpOwotZXJyX3B1dDoKLQlpbnRlbF9jb250ZXh0X3B1dChjZSk7Ci0JaTkxNV9hY3RpdmVfY2FuY2VsKCZjZS0+YWN0aXZlKTsKLQlyZXR1cm4gZXJyOwotfQotCi12b2lkIGludGVsX2NvbnRleHRfYWN0aXZlX3JlbGVhc2Uoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQotewotCS8qIE5vZGVzIHByZWFsbG9jYXRlZCBpbiBpbnRlbF9jb250ZXh0X2FjdGl2ZSgpICovCi0JaTkxNV9hY3RpdmVfYWNxdWlyZV9iYXJyaWVyKCZjZS0+YWN0aXZlKTsKLQlpOTE1X2FjdGl2ZV9yZWxlYXNlKCZjZS0+YWN0aXZlKTsKKwltdXRleF9kZXN0cm95KCZjZS0+cGluX211dGV4KTsKKwlpOTE1X2FjdGl2ZV9maW5pKCZjZS0+YWN0aXZlKTsKIH0KIAogc3RhdGljIHZvaWQgaTkxNV9nbG9iYWxfY29udGV4dF9zaHJpbmsodm9pZCkKQEAgLTIyNywxMyArMjgwLDQ4IEBAIGludCBfX2luaXQgaTkxNV9nbG9iYWxfY29udGV4dF9pbml0KHZvaWQpCiB2b2lkIGludGVsX2NvbnRleHRfZW50ZXJfZW5naW5lKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIHsKIAlpbnRlbF9lbmdpbmVfcG1fZ2V0KGNlLT5lbmdpbmUpOworCWludGVsX3RpbWVsaW5lX2VudGVyKGNlLT50aW1lbGluZSk7CiB9CiAKIHZvaWQgaW50ZWxfY29udGV4dF9leGl0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CisJaW50ZWxfdGltZWxpbmVfZXhpdChjZS0+dGltZWxpbmUpOwogCWludGVsX2VuZ2luZV9wbV9wdXQoY2UtPmVuZ2luZSk7CiB9CiAKK2ludCBpbnRlbF9jb250ZXh0X3ByZXBhcmVfcmVtb3RlX3JlcXVlc3Qoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAorCQkJCQkgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCit7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCA9IGNlLT50aW1lbGluZTsKKwlpbnQgZXJyOworCisJLyogT25seSBzdWl0YWJsZSBmb3IgdXNlIGluIHJlbW90ZWx5IG1vZGlmeWluZyB0aGlzIGNvbnRleHQgKi8KKwlHRU1fQlVHX09OKHJxLT5od19jb250ZXh0ID09IGNlKTsKKworCWlmIChycS0+dGltZWxpbmUgIT0gdGwpIHsgLyogYmV3YXJlIHRpbWVsaW5lIHNoYXJpbmcgKi8KKwkJZXJyID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlX25lc3RlZCgmdGwtPm11dGV4LAorCQkJCQkJICAgICAgU0lOR0xFX0RFUFRIX05FU1RJTkcpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKworCQkvKiBRdWV1ZSB0aGlzIHN3aXRjaCBhZnRlciBjdXJyZW50IGFjdGl2aXR5IGJ5IHRoaXMgY29udGV4dC4gKi8KKwkJZXJyID0gaTkxNV9hY3RpdmVfcmVxdWVzdF9zZXQoJnRsLT5sYXN0X3JlcXVlc3QsIHJxKTsKKwkJbXV0ZXhfdW5sb2NrKCZ0bC0+bXV0ZXgpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwkvKgorCSAqIEd1YXJhbnRlZSBjb250ZXh0IGltYWdlIGFuZCB0aGUgdGltZWxpbmUgcmVtYWlucyBwaW5uZWQgdW50aWwgdGhlCisJICogbW9kaWZ5aW5nIHJlcXVlc3QgaXMgcmV0aXJlZCBieSBzZXR0aW5nIHRoZSBjZSBhY3Rpdml0eSB0cmFja2VyLgorCSAqCisJICogQnV0IHdlIG9ubHkgbmVlZCB0byB0YWtlIG9uZSBwaW4gb24gdGhlIGFjY291bnQgb2YgaXQuIE9yIGluIG90aGVyCisJICogd29yZHMgdHJhbnNmZXIgdGhlIHBpbm5lZCBjZSBvYmplY3QgdG8gdHJhY2tlZCBhY3RpdmUgcmVxdWVzdC4KKwkgKi8KKwlHRU1fQlVHX09OKGk5MTVfYWN0aXZlX2lzX2lkbGUoJmNlLT5hY3RpdmUpKTsKKwlyZXR1cm4gaTkxNV9hY3RpdmVfcmVmKCZjZS0+YWN0aXZlLCBycS0+dGltZWxpbmUsIHJxKTsKK30KKwogc3RydWN0IGk5MTVfcmVxdWVzdCAqaW50ZWxfY29udGV4dF9jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CkBAIC0yNDgsMyArMzM2LDcgQEAgc3RydWN0IGk5MTVfcmVxdWVzdCAqaW50ZWxfY29udGV4dF9jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiAKIAlyZXR1cm4gcnE7CiB9CisKKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKKyNpbmNsdWRlICJzZWxmdGVzdF9jb250ZXh0LmMiCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaAppbmRleCBhNDcyNzViLi5kZDc0MmFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCkBAIC05LDEyICs5LDE1IEBACiAKICNpbmNsdWRlIDxsaW51eC9sb2NrZGVwLmg+CiAKKyNpbmNsdWRlICJpOTE1X2FjdGl2ZS5oIgogI2luY2x1ZGUgImludGVsX2NvbnRleHRfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9lbmdpbmVfdHlwZXMuaCIKKyNpbmNsdWRlICJpbnRlbF90aW1lbGluZV90eXBlcy5oIgogCiB2b2lkIGludGVsX2NvbnRleHRfaW5pdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKK3ZvaWQgaW50ZWxfY29udGV4dF9maW5pKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSk7CiAKIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKIGludGVsX2NvbnRleHRfY3JlYXRlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCkBAIC04NiwyMyArODksMjYgQEAgdm9pZCBpbnRlbF9jb250ZXh0X2V4aXRfZW5naW5lKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSk7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9jb250ZXh0X2VudGVyKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIHsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjZS0+dGltZWxpbmUtPm11dGV4KTsKIAlpZiAoIWNlLT5hY3RpdmVfY291bnQrKykKIAkJY2UtPm9wcy0+ZW50ZXIoY2UpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfY29udGV4dF9tYXJrX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmY2UtPnRpbWVsaW5lLT5tdXRleCk7CiAJKytjZS0+YWN0aXZlX2NvdW50OwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfY29udGV4dF9leGl0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIHsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjZS0+dGltZWxpbmUtPm11dGV4KTsKIAlHRU1fQlVHX09OKCFjZS0+YWN0aXZlX2NvdW50KTsKIAlpZiAoIS0tY2UtPmFjdGl2ZV9jb3VudCkKIAkJY2UtPm9wcy0+ZXhpdChjZSk7CiB9CiAKLWludCBpbnRlbF9jb250ZXh0X2FjdGl2ZV9hY3F1aXJlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgdW5zaWduZWQgbG9uZyBmbGFncyk7CitpbnQgaW50ZWxfY29udGV4dF9hY3RpdmVfYWNxdWlyZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpOwogdm9pZCBpbnRlbF9jb250ZXh0X2FjdGl2ZV9yZWxlYXNlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSk7CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2NvbnRleHQgKmludGVsX2NvbnRleHRfZ2V0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKQEAgLTExNiwxOSArMTIyLDM0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9jb250ZXh0X3B1dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiAJa3JlZl9wdXQoJmNlLT5yZWYsIGNlLT5vcHMtPmRlc3Ryb3kpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBfX211c3RfY2hlY2sKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3RpbWVsaW5lICpfX211c3RfY2hlY2sKIGludGVsX2NvbnRleHRfdGltZWxpbmVfbG9jayhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCi0JX19hY3F1aXJlcygmY2UtPnJpbmctPnRpbWVsaW5lLT5tdXRleCkKKwlfX2FjcXVpcmVzKCZjZS0+dGltZWxpbmUtPm11dGV4KQogewotCXJldHVybiBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmNlLT5yaW5nLT50aW1lbGluZS0+bXV0ZXgpOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwgPSBjZS0+dGltZWxpbmU7CisJaW50IGVycjsKKworCWVyciA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmdGwtPm11dGV4KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gRVJSX1BUUihlcnIpOworCisJcmV0dXJuIHRsOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfY29udGV4dF90aW1lbGluZV91bmxvY2soc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQotCV9fcmVsZWFzZXMoJmNlLT5yaW5nLT50aW1lbGluZS0+bXV0ZXgpCitzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfY29udGV4dF90aW1lbGluZV91bmxvY2soc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCkKKwlfX3JlbGVhc2VzKCZ0bC0+bXV0ZXgpCiB7Ci0JbXV0ZXhfdW5sb2NrKCZjZS0+cmluZy0+dGltZWxpbmUtPm11dGV4KTsKKwltdXRleF91bmxvY2soJnRsLT5tdXRleCk7CiB9CiAKK2ludCBpbnRlbF9jb250ZXh0X3ByZXBhcmVfcmVtb3RlX3JlcXVlc3Qoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAorCQkJCQkgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpOworCiBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICppbnRlbF9jb250ZXh0X2NyZWF0ZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSk7CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3JpbmcgKl9faW50ZWxfY29udGV4dF9yaW5nX3NpemUodTY0IHN6KQoreworCXJldHVybiB1NjRfdG9fcHRyKHN0cnVjdCBpbnRlbF9yaW5nLCBzeik7Cit9CisKICNlbmRpZiAvKiBfX0lOVEVMX0NPTlRFWFRfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0X3R5cGVzLmgKaW5kZXggMDgwNDllZS4uYmY5Y2VkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHRfdHlwZXMuaApAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKICNpbmNsdWRlICJpOTE1X2FjdGl2ZV90eXBlcy5oIgorI2luY2x1ZGUgImk5MTVfdXRpbHMuaCIKICNpbmNsdWRlICJpbnRlbF9lbmdpbmVfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9zc2V1LmgiCiAKQEAgLTIyLDYgKzIzLDggQEAgc3RydWN0IGludGVsX2NvbnRleHQ7CiBzdHJ1Y3QgaW50ZWxfcmluZzsKIAogc3RydWN0IGludGVsX2NvbnRleHRfb3BzIHsKKwlpbnQgKCphbGxvYykoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKTsKKwogCWludCAoKnBpbikoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKTsKIAl2b2lkICgqdW5waW4pKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSk7CiAKQEAgLTM1LDIwICszOCwyOCBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4dF9vcHMgewogc3RydWN0IGludGVsX2NvbnRleHQgewogCXN0cnVjdCBrcmVmIHJlZjsKIAotCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpnZW1fY29udGV4dDsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqaW5mbGlnaHQ7CisjZGVmaW5lIGludGVsX2NvbnRleHRfaW5mbGlnaHQoY2UpIHB0cl9tYXNrX2JpdHMoKGNlKS0+aW5mbGlnaHQsIDIpCisjZGVmaW5lIGludGVsX2NvbnRleHRfaW5mbGlnaHRfY291bnQoY2UpIHB0cl91bm1hc2tfYml0cygoY2UpLT5pbmZsaWdodCwgMikKKworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOworCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpnZW1fY29udGV4dDsKIAogCXN0cnVjdCBsaXN0X2hlYWQgc2lnbmFsX2xpbms7CiAJc3RydWN0IGxpc3RfaGVhZCBzaWduYWxzOwogCiAJc3RydWN0IGk5MTVfdm1hICpzdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lOworCisJdW5zaWduZWQgbG9uZyBmbGFnczsKKyNkZWZpbmUgQ09OVEVYVF9BTExPQ19CSVQgMAogCiAJdTMyICpscmNfcmVnX3N0YXRlOwogCXU2NCBscmNfZGVzYzsKIAotCXVuc2lnbmVkIGludCBhY3RpdmVfY291bnQ7IC8qIG5vdGlvbmFsbHkgcHJvdGVjdGVkIGJ5IHRpbWVsaW5lLT5tdXRleCAqLworCXVuc2lnbmVkIGludCBhY3RpdmVfY291bnQ7IC8qIHByb3RlY3RlZCBieSB0aW1lbGluZS0+bXV0ZXggKi8KIAogCWF0b21pY190IHBpbl9jb3VudDsKIAlzdHJ1Y3QgbXV0ZXggcGluX211dGV4OyAvKiBndWFyZHMgcGlubmluZyBhbmQgYXNzb2NpYXRlZCBvbi1ncHVpbmcgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKaW5kZXggMmYxYzY4Ny4uZDNjNjk5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKQEAgLTksMTIgKzksMTEgQEAKICNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KICNpbmNsdWRlIDxsaW51eC9zZXFsb2NrLmg+CiAKLSNpbmNsdWRlICJpOTE1X2dlbV9iYXRjaF9wb29sLmgiCiAjaW5jbHVkZSAiaTkxNV9wbXUuaCIKICNpbmNsdWRlICJpOTE1X3JlZy5oIgogI2luY2x1ZGUgImk5MTVfcmVxdWVzdC5oIgogI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKLSNpbmNsdWRlICJpOTE1X3RpbWVsaW5lLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfdGltZWxpbmUuaCIKICNpbmNsdWRlICJpbnRlbF9lbmdpbmVfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9ncHVfY29tbWFuZHMuaCIKICNpbmNsdWRlICJpbnRlbF93b3JrYXJvdW5kcy5oIgpAQCAtNTEsNyArNTAsNyBAQCBzdHJ1Y3QgZHJtX3ByaW50ZXI7CiAjZGVmaW5lIEVOR0lORV9SRUFEMTYoLi4uKQlfX0VOR0lORV9SRUFEX09QKHJlYWQxNiwgX19WQV9BUkdTX18pCiAjZGVmaW5lIEVOR0lORV9SRUFEKC4uLikJX19FTkdJTkVfUkVBRF9PUChyZWFkLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgRU5HSU5FX1JFQURfRlcoLi4uKQlfX0VOR0lORV9SRUFEX09QKHJlYWRfZncsIF9fVkFfQVJHU19fKQotI2RlZmluZSBFTkdJTkVfUE9TVElOR19SRUFEKC4uLikgX19FTkdJTkVfUkVBRF9PUChwb3N0aW5nX3JlYWQsIF9fVkFfQVJHU19fKQorI2RlZmluZSBFTkdJTkVfUE9TVElOR19SRUFEKC4uLikgX19FTkdJTkVfUkVBRF9PUChwb3N0aW5nX3JlYWRfZncsIF9fVkFfQVJHU19fKQogI2RlZmluZSBFTkdJTkVfUE9TVElOR19SRUFEMTYoLi4uKSBfX0VOR0lORV9SRUFEX09QKHBvc3RpbmdfcmVhZDE2LCBfX1ZBX0FSR1NfXykKIAogI2RlZmluZSBFTkdJTkVfUkVBRDY0KGVuZ2luZV9fLCBsb3dlcl9yZWdfXywgdXBwZXJfcmVnX18pIFwKQEAgLTEyMyw3MyArMTIyLDIzIEBAIGhhbmdjaGVja19hY3Rpb25fdG9fc3RyKGNvbnN0IGVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gYSkKIAlyZXR1cm4gInVua25vd24iOwogfQogCi12b2lkIGludGVsX2VuZ2luZXNfc2V0X3NjaGVkdWxlcl9jYXBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLQotc3RhdGljIGlubGluZSB2b2lkCi1leGVjbGlzdHNfc2V0X2FjdGl2ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzLAotCQkgICAgIHVuc2lnbmVkIGludCBiaXQpCi17Ci0JX19zZXRfYml0KGJpdCwgKHVuc2lnbmVkIGxvbmcgKikmZXhlY2xpc3RzLT5hY3RpdmUpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wKLWV4ZWNsaXN0c19zZXRfYWN0aXZlX29uY2Uoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cywKLQkJCSAgdW5zaWduZWQgaW50IGJpdCkKLXsKLQlyZXR1cm4gIV9fdGVzdF9hbmRfc2V0X2JpdChiaXQsICh1bnNpZ25lZCBsb25nICopJmV4ZWNsaXN0cy0+YWN0aXZlKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkCi1leGVjbGlzdHNfY2xlYXJfYWN0aXZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMsCi0JCSAgICAgICB1bnNpZ25lZCBpbnQgYml0KQotewotCV9fY2xlYXJfYml0KGJpdCwgKHVuc2lnbmVkIGxvbmcgKikmZXhlY2xpc3RzLT5hY3RpdmUpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQKLWV4ZWNsaXN0c19jbGVhcl9hbGxfYWN0aXZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMpCi17Ci0JZXhlY2xpc3RzLT5hY3RpdmUgPSAwOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wKLWV4ZWNsaXN0c19pc19hY3RpdmUoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cywKLQkJICAgIHVuc2lnbmVkIGludCBiaXQpCi17Ci0JcmV0dXJuIHRlc3RfYml0KGJpdCwgKHVuc2lnbmVkIGxvbmcgKikmZXhlY2xpc3RzLT5hY3RpdmUpOwotfQotCi12b2lkIGV4ZWNsaXN0c191c2VyX2JlZ2luKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMsCi0JCQkgIGNvbnN0IHN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0KTsKLXZvaWQgZXhlY2xpc3RzX3VzZXJfZW5kKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMpOwotCi12b2lkCi1leGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMpOwotCi1zdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKLWV4ZWNsaXN0c191bndpbmRfaW5jb21wbGV0ZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKTsKLQogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKIGV4ZWNsaXN0c19udW1fcG9ydHMoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMpCiB7CiAJcmV0dXJuIGV4ZWNsaXN0cy0+cG9ydF9tYXNrICsgMTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqCi1leGVjbGlzdHNfcG9ydF9jb21wbGV0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cywKLQkJCXN0cnVjdCBleGVjbGlzdF9wb3J0ICogY29uc3QgcG9ydCkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGk5MTVfcmVxdWVzdCAqCitleGVjbGlzdHNfYWN0aXZlKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMpCiB7Ci0JY29uc3QgdW5zaWduZWQgaW50IG0gPSBleGVjbGlzdHMtPnBvcnRfbWFzazsKLQotCUdFTV9CVUdfT04ocG9ydF9pbmRleChwb3J0LCBleGVjbGlzdHMpICE9IDApOwotCUdFTV9CVUdfT04oIWV4ZWNsaXN0c19pc19hY3RpdmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1VTRVIpKTsKLQotCW1lbW1vdmUocG9ydCwgcG9ydCArIDEsIG0gKiBzaXplb2Yoc3RydWN0IGV4ZWNsaXN0X3BvcnQpKTsKLQltZW1zZXQocG9ydCArIG0sIDAsIHNpemVvZihzdHJ1Y3QgZXhlY2xpc3RfcG9ydCkpOwotCi0JcmV0dXJuIHBvcnQ7CisJR0VNX0JVR19PTihleGVjbGlzdHMtPmFjdGl2ZSAtIGV4ZWNsaXN0cy0+aW5mbGlnaHQgPgorCQkgICBleGVjbGlzdHNfbnVtX3BvcnRzKGV4ZWNsaXN0cykpOworCXJldHVybiBSRUFEX09OQ0UoKmV4ZWNsaXN0cy0+YWN0aXZlKTsKIH0KIAorc3RydWN0IGk5MTVfcmVxdWVzdCAqCitleGVjbGlzdHNfdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cyk7CisKIHN0YXRpYyBpbmxpbmUgdTMyCiBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHJlZykKIHsKQEAgLTI0NCw5ICsxOTMsNyBAQCBpbnRlbF93cml0ZV9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCByZWcsIHUzMiB2YWx1ZSkKICNkZWZpbmUgQ05MX0hXU19DU0JfV1JJVEVfSU5ERVgJCTB4MmYKIAogc3RydWN0IGludGVsX3JpbmcgKgotaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKLQkJCSBzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUsCi0JCQkgaW50IHNpemUpOworaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpOwogaW50IGludGVsX3JpbmdfcGluKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKTsKIHZvaWQgaW50ZWxfcmluZ19yZXNldChzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZywgdTMyIHRhaWwpOwogdW5zaWduZWQgaW50IGludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKTsKQEAgLTM4OCw5ICszMzUsNiBAQCB2b2lkIGludGVsX2VuZ2luZV9pbml0X2V4ZWNsaXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogdm9pZCBpbnRlbF9lbmdpbmVfZmluaV9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCi12b2lkIGludGVsX2VuZ2luZV9waW5fYnJlYWRjcnVtYnNfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Ci12b2lkIGludGVsX2VuZ2luZV91bnBpbl9icmVhZGNydW1ic19pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKLQogdm9pZCBpbnRlbF9lbmdpbmVfc2lnbmFsX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiB2b2lkIGludGVsX2VuZ2luZV9kaXNhcm1fYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIApAQCAtNDU2LDggKzQwMCw4IEBAIGdlbjhfZW1pdF9nZ3R0X3dyaXRlKHUzMiAqY3MsIHUzMiB2YWx1ZSwgdTMyIGd0dF9vZmZzZXQsIHUzMiBmbGFncykKIAlyZXR1cm4gY3M7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9lbmdpbmVfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAotCQkJCSAgICAgIGJvb2wgc3RhbGxlZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2ludGVsX2VuZ2luZV9yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkJCWJvb2wgc3RhbGxlZCkKIHsKIAlpZiAoZW5naW5lLT5yZXNldC5yZXNldCkKIAkJZW5naW5lLT5yZXNldC5yZXNldChlbmdpbmUsIHN0YWxsZWQpOwpAQCAtNDY1LDEwICs0MDksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIH0KIAogYm9vbCBpbnRlbF9lbmdpbmVfaXNfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwotYm9vbCBpbnRlbF9lbmdpbmVzX2FyZV9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Citib29sIGludGVsX2VuZ2luZXNfYXJlX2lkbGUoc3RydWN0IGludGVsX2d0ICpndCk7CiAKLXZvaWQgaW50ZWxfZW5naW5lc19yZXNldF9kZWZhdWx0X3N1Ym1pc3Npb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotdW5zaWduZWQgaW50IGludGVsX2VuZ2luZXNfaGFzX2NvbnRleHRfaXNvbGF0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaW50ZWxfZW5naW5lc19yZXNldF9kZWZhdWx0X3N1Ym1pc3Npb24oc3RydWN0IGludGVsX2d0ICpndCk7CiAKIGJvb2wgaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCkBAIC00NzcsOSArNDIwLDYgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZHVtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCSAgICAgICBzdHJ1Y3QgZHJtX3ByaW50ZXIgKm0sCiAJCSAgICAgICBjb25zdCBjaGFyICpoZWFkZXIsIC4uLik7CiAKLXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKgotaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1OCBjbGFzcywgdTggaW5zdGFuY2UpOwotCiBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX2NvbnRleHRfaW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IGYyNTYzMmMuLjgyNjMwZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0yOCw4ICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCisKICNpbmNsdWRlICJpbnRlbF9lbmdpbmUuaCIKICNpbmNsdWRlICJpbnRlbF9lbmdpbmVfcG0uaCIKKyNpbmNsdWRlICJpbnRlbF9lbmdpbmVfcG9vbC5oIgorI2luY2x1ZGUgImludGVsX2VuZ2luZV91c2VyLmgiCiAjaW5jbHVkZSAiaW50ZWxfY29udGV4dC5oIgogI2luY2x1ZGUgImludGVsX2xyYy5oIgogI2luY2x1ZGUgImludGVsX3Jlc2V0LmgiCkBAIC01MSwzMCArNTUsNiBAQAogCiAjZGVmaW5lIEdFTjhfTFJfQ09OVEVYVF9PVEhFUl9TSVpFCSggMiAqIFBBR0VfU0laRSkKIAotc3RydWN0IGVuZ2luZV9jbGFzc19pbmZvIHsKLQljb25zdCBjaGFyICpuYW1lOwotCXU4IHVhYmlfY2xhc3M7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGVuZ2luZV9jbGFzc19pbmZvIGludGVsX2VuZ2luZV9jbGFzc2VzW10gPSB7Ci0JW1JFTkRFUl9DTEFTU10gPSB7Ci0JCS5uYW1lID0gInJjcyIsCi0JCS51YWJpX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSLAotCX0sCi0JW0NPUFlfRU5HSU5FX0NMQVNTXSA9IHsKLQkJLm5hbWUgPSAiYmNzIiwKLQkJLnVhYmlfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19DT1BZLAotCX0sCi0JW1ZJREVPX0RFQ09ERV9DTEFTU10gPSB7Ci0JCS5uYW1lID0gInZjcyIsCi0JCS51YWJpX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfVklERU8sCi0JfSwKLQlbVklERU9fRU5IQU5DRU1FTlRfQ0xBU1NdID0gewotCQkubmFtZSA9ICJ2ZWNzIiwKLQkJLnVhYmlfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19WSURFT19FTkhBTkNFLAotCX0sCi19OwotCiAjZGVmaW5lIE1BWF9NTUlPX0JBU0VTIDMKIHN0cnVjdCBlbmdpbmVfaW5mbyB7CiAJdW5zaWduZWQgaW50IGh3X2lkOwpAQCAtMTg0LDYgKzE2NCw3IEBAIHUzMiBpbnRlbF9lbmdpbmVfY29udGV4dF9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggY2xhc3MpCiAJCWRlZmF1bHQ6CiAJCQlNSVNTSU5HX0NBU0UoSU5URUxfR0VOKGRldl9wcml2KSk7CiAJCQlyZXR1cm4gREVGQVVMVF9MUl9DT05URVhUX1JFTkRFUl9TSVpFOworCQljYXNlIDEyOgogCQljYXNlIDExOgogCQkJcmV0dXJuIEdFTjExX0xSX0NPTlRFWFRfUkVOREVSX1NJWkU7CiAJCWNhc2UgMTA6CkBAIC0yNTUsMTEgKzIzNiwxNiBAQCBzdGF0aWMgdTMyIF9fZW5naW5lX21taW9fYmFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlyZXR1cm4gYmFzZXNbaV0uYmFzZTsKIH0KIAotc3RhdGljIHZvaWQgX19zcHJpbnRfZW5naW5lX25hbWUoY2hhciAqbmFtZSwgY29uc3Qgc3RydWN0IGVuZ2luZV9pbmZvICppbmZvKQorc3RhdGljIHZvaWQgX19zcHJpbnRfZW5naW5lX25hbWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCVdBUk5fT04oc25wcmludGYobmFtZSwgSU5URUxfRU5HSU5FX0NTX01BWF9OQU1FLCAiJXMldSIsCi0JCQkgaW50ZWxfZW5naW5lX2NsYXNzZXNbaW5mby0+Y2xhc3NdLm5hbWUsCi0JCQkgaW5mby0+aW5zdGFuY2UpID49IElOVEVMX0VOR0lORV9DU19NQVhfTkFNRSk7CisJLyoKKwkgKiBCZWZvcmUgd2Uga25vdyB3aGF0IHRoZSB1QUJJIG5hbWUgZm9yIHRoaXMgZW5naW5lIHdpbGwgYmUsCisJICogd2Ugc3RpbGwgd291bGQgbGlrZSB0byBrZWVwIHRyYWNrIG9mIHRoaXMgZW5naW5lIGluIHRoZSBkZWJ1ZyBsb2dzLgorCSAqIFdlIHRocm93IGluIGEgJyBoZXJlIGFzIGEgcmVtaW5kZXIgdGhhdCB0aGlzIGlzbid0IGl0cyBmaW5hbCBuYW1lLgorCSAqLworCUdFTV9XQVJOX09OKHNucHJpbnRmKGVuZ2luZS0+bmFtZSwgc2l6ZW9mKGVuZ2luZS0+bmFtZSksICIlcycldSIsCisJCQkgICAgIGludGVsX2VuZ2luZV9jbGFzc19yZXByKGVuZ2luZS0+Y2xhc3MpLAorCQkJICAgICBlbmdpbmUtPmluc3RhbmNlKSA+PSBzaXplb2YoZW5naW5lLT5uYW1lKSk7CiB9CiAKIHZvaWQgaW50ZWxfZW5naW5lX3NldF9od3NwX3dyaXRlbWFzayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBtYXNrKQpAQCAtMjgzLDE1ICsyNjksMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5naW5lX3Nhbml0aXplX21taW8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWludGVsX2VuZ2luZV9zZXRfaHdzcF93cml0ZW1hc2soZW5naW5lLCB+MHUpOwogfQogCi1zdGF0aWMgaW50Ci1pbnRlbF9lbmdpbmVfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkgICBlbnVtIGludGVsX2VuZ2luZV9pZCBpZCkKK3N0YXRpYyBpbnQgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGVudW0gaW50ZWxfZW5naW5lX2lkIGlkKQogewogCWNvbnN0IHN0cnVjdCBlbmdpbmVfaW5mbyAqaW5mbyA9ICZpbnRlbF9lbmdpbmVzW2lkXTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAKLQlHRU1fQlVHX09OKGluZm8tPmNsYXNzID49IEFSUkFZX1NJWkUoaW50ZWxfZW5naW5lX2NsYXNzZXMpKTsKLQogCUJVSUxEX0JVR19PTihNQVhfRU5HSU5FX0NMQVNTID49IEJJVChHRU4xMV9FTkdJTkVfQ0xBU1NfV0lEVEgpKTsKIAlCVUlMRF9CVUdfT04oTUFYX0VOR0lORV9JTlNUQU5DRSA+PSBCSVQoR0VOMTFfRU5HSU5FX0lOU1RBTkNFX1dJRFRIKSk7CiAKQEAgLTMwMSwxMCArMjgzLDkgQEAgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoR0VNX0RFQlVHX1dBUk5fT04oaW5mby0+aW5zdGFuY2UgPiBNQVhfRU5HSU5FX0lOU1RBTkNFKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoR0VNX0RFQlVHX1dBUk5fT04oZGV2X3ByaXYtPmVuZ2luZV9jbGFzc1tpbmZvLT5jbGFzc11baW5mby0+aW5zdGFuY2VdKSkKKwlpZiAoR0VNX0RFQlVHX1dBUk5fT04oZ3QtPmVuZ2luZV9jbGFzc1tpbmZvLT5jbGFzc11baW5mby0+aW5zdGFuY2VdKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlHRU1fQlVHX09OKGRldl9wcml2LT5lbmdpbmVbaWRdKTsKIAllbmdpbmUgPSBremFsbG9jKHNpemVvZigqZW5naW5lKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFlbmdpbmUpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMzEzLDEzICsyOTQsMTUgQEAgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCWVuZ2luZS0+aWQgPSBpZDsKIAllbmdpbmUtPm1hc2sgPSBCSVQoaWQpOwotCWVuZ2luZS0+aTkxNSA9IGRldl9wcml2OwotCWVuZ2luZS0+dW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Ci0JX19zcHJpbnRfZW5naW5lX25hbWUoZW5naW5lLT5uYW1lLCBpbmZvKTsKKwllbmdpbmUtPmk5MTUgPSBndC0+aTkxNTsKKwllbmdpbmUtPmd0ID0gZ3Q7CisJZW5naW5lLT51bmNvcmUgPSBndC0+dW5jb3JlOwogCWVuZ2luZS0+aHdfaWQgPSBlbmdpbmUtPmd1Y19pZCA9IGluZm8tPmh3X2lkOwotCWVuZ2luZS0+bW1pb19iYXNlID0gX19lbmdpbmVfbW1pb19iYXNlKGRldl9wcml2LCBpbmZvLT5tbWlvX2Jhc2VzKTsKKwllbmdpbmUtPm1taW9fYmFzZSA9IF9fZW5naW5lX21taW9fYmFzZShndC0+aTkxNSwgaW5mby0+bW1pb19iYXNlcyk7CisKIAllbmdpbmUtPmNsYXNzID0gaW5mby0+Y2xhc3M7CiAJZW5naW5lLT5pbnN0YW5jZSA9IGluZm8tPmluc3RhbmNlOworCV9fc3ByaW50X2VuZ2luZV9uYW1lKGVuZ2luZSk7CiAKIAkvKgogCSAqIFRvIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGJhY2tlbmQgb24gc2V0dXAuIEhvd2V2ZXIgdG8gZmFjaWxpdGF0ZQpAQCAtMzI3LDE0ICszMTAsMTIgQEAgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKi8KIAllbmdpbmUtPmRlc3Ryb3kgPSAodHlwZW9mKGVuZ2luZS0+ZGVzdHJveSkpa2ZyZWU7CiAKLQllbmdpbmUtPnVhYmlfY2xhc3MgPSBpbnRlbF9lbmdpbmVfY2xhc3Nlc1tpbmZvLT5jbGFzc10udWFiaV9jbGFzczsKLQotCWVuZ2luZS0+Y29udGV4dF9zaXplID0gaW50ZWxfZW5naW5lX2NvbnRleHRfc2l6ZShkZXZfcHJpdiwKKwllbmdpbmUtPmNvbnRleHRfc2l6ZSA9IGludGVsX2VuZ2luZV9jb250ZXh0X3NpemUoZ3QtPmk5MTUsCiAJCQkJCQkJIGVuZ2luZS0+Y2xhc3MpOwogCWlmIChXQVJOX09OKGVuZ2luZS0+Y29udGV4dF9zaXplID4gQklUKDIwKSkpCiAJCWVuZ2luZS0+Y29udGV4dF9zaXplID0gMDsKIAlpZiAoZW5naW5lLT5jb250ZXh0X3NpemUpCi0JCURSSVZFUl9DQVBTKGRldl9wcml2KS0+aGFzX2xvZ2ljYWxfY29udGV4dHMgPSB0cnVlOworCQlEUklWRVJfQ0FQUyhndC0+aTkxNSktPmhhc19sb2dpY2FsX2NvbnRleHRzID0gdHJ1ZTsKIAogCS8qIE5vdGhpbmcgdG8gZG8gaGVyZSwgZXhlY3V0ZSBpbiBvcmRlciBvZiBkZXBlbmRlbmNpZXMgKi8KIAllbmdpbmUtPnNjaGVkdWxlID0gTlVMTDsKQEAgLTM0Niw4ICszMjcsMTEgQEAgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkvKiBTY3J1YiBtbWlvIHN0YXRlIG9uIHRha2VvdmVyICovCiAJaW50ZWxfZW5naW5lX3Nhbml0aXplX21taW8oZW5naW5lKTsKIAotCWRldl9wcml2LT5lbmdpbmVfY2xhc3NbaW5mby0+Y2xhc3NdW2luZm8tPmluc3RhbmNlXSA9IGVuZ2luZTsKLQlkZXZfcHJpdi0+ZW5naW5lW2lkXSA9IGVuZ2luZTsKKwlndC0+ZW5naW5lX2NsYXNzW2luZm8tPmNsYXNzXVtpbmZvLT5pbnN0YW5jZV0gPSBlbmdpbmU7CisKKwlpbnRlbF9lbmdpbmVfYWRkX3VzZXIoZW5naW5lKTsKKwlndC0+aTkxNS0+ZW5naW5lW2lkXSA9IGVuZ2luZTsKKwogCXJldHVybiAwOwogfQogCkBAIC00MjMsMTQgKzQwNywxNCBAQCBpbnQgaW50ZWxfZW5naW5lc19pbml0X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJV0FSTl9PTihlbmdpbmVfbWFzayAmCiAJCUdFTk1BU0soQklUU19QRVJfVFlQRShtYXNrKSAtIDEsIEk5MTVfTlVNX0VOR0lORVMpKTsKIAotCWlmIChpOTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKKwlpZiAoaTkxNV9pbmplY3RfcHJvYmVfZmFpbHVyZShpOTE1KSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbnRlbF9lbmdpbmVzKTsgaSsrKSB7CiAJCWlmICghSEFTX0VOR0lORShpOTE1LCBpKSkKIAkJCWNvbnRpbnVlOwogCi0JCWVyciA9IGludGVsX2VuZ2luZV9zZXR1cChpOTE1LCBpKTsKKwkJZXJyID0gaW50ZWxfZW5naW5lX3NldHVwKCZpOTE1LT5ndCwgaSk7CiAJCWlmIChlcnIpCiAJCQlnb3RvIGNsZWFudXA7CiAKQEAgLTQ0NSwxNSArNDI5LDkgQEAgaW50IGludGVsX2VuZ2luZXNfaW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWlmIChXQVJOX09OKG1hc2sgIT0gZW5naW5lX21hc2spKQogCQlkZXZpY2VfaW5mby0+ZW5naW5lX21hc2sgPSBtYXNrOwogCi0JLyogV2UgYWx3YXlzIHByZXN1bWUgd2UgaGF2ZSBhdCBsZWFzdCBSQ1MgYXZhaWxhYmxlIGZvciBsYXRlciBwcm9iaW5nICovCi0JaWYgKFdBUk5fT04oIUhBU19FTkdJTkUoaTkxNSwgUkNTMCkpKSB7Ci0JCWVyciA9IC1FTk9ERVY7Ci0JCWdvdG8gY2xlYW51cDsKLQl9Ci0KIAlSVU5USU1FX0lORk8oaTkxNSktPm51bV9lbmdpbmVzID0gaHdlaWdodDMyKG1hc2spOwogCi0JaTkxNV9jaGVja19hbmRfY2xlYXJfZmF1bHRzKGk5MTUpOworCWludGVsX2d0X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoJmk5MTUtPmd0KTsKIAogCWludGVsX3NldHVwX2VuZ2luZV9jYXBhYmlsaXRpZXMoaTkxNSk7CiAKQEAgLTQ5NSwxMSArNDczLDYgQEAgaW50IGludGVsX2VuZ2luZXNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF9iYXRjaF9wb29sKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoJmVuZ2luZS0+YmF0Y2hfcG9vbCwgZW5naW5lKTsKLX0KLQogdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF9leGVjbGlzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwpAQCAtNTA4LDYgKzQ4MSwxMCBAQCB2b2lkIGludGVsX2VuZ2luZV9pbml0X2V4ZWNsaXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJR0VNX0JVR19PTighaXNfcG93ZXJfb2ZfMihleGVjbGlzdHNfbnVtX3BvcnRzKGV4ZWNsaXN0cykpKTsKIAlHRU1fQlVHX09OKGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKSA+IEVYRUNMSVNUX01BWF9QT1JUUyk7CiAKKwltZW1zZXQoZXhlY2xpc3RzLT5wZW5kaW5nLCAwLCBzaXplb2YoZXhlY2xpc3RzLT5wZW5kaW5nKSk7CisJZXhlY2xpc3RzLT5hY3RpdmUgPQorCQltZW1zZXQoZXhlY2xpc3RzLT5pbmZsaWdodCwgMCwgc2l6ZW9mKGV4ZWNsaXN0cy0+aW5mbGlnaHQpKTsKKwogCWV4ZWNsaXN0cy0+cXVldWVfcHJpb3JpdHlfaGludCA9IElOVF9NSU47CiAJZXhlY2xpc3RzLT5xdWV1ZSA9IFJCX1JPT1RfQ0FDSEVEOwogfQpAQCAtNTc3LDcgKzU1NCw3IEBAIHN0YXRpYyBpbnQgaW5pdF9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAlpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2NvaGVyZW5jeShvYmosIEk5MTVfQ0FDSEVfTExDKTsKIAotCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgJmVuZ2luZS0+aTkxNS0+Z2d0dC52bSwgTlVMTCk7CisJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCAmZW5naW5lLT5ndC0+Z2d0dC0+dm0sIE5VTEwpOwogCWlmIChJU19FUlIodm1hKSkgewogCQlyZXQgPSBQVFJfRVJSKHZtYSk7CiAJCWdvdG8gZXJyOwpAQCAtNjIxLDE0ICs1OTgsMTkgQEAgc3RhdGljIGludCBpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpbnRlbF9lbmdpbmVfaW5pdF9icmVhZGNydW1icyhlbmdpbmUpOwogCWludGVsX2VuZ2luZV9pbml0X2V4ZWNsaXN0cyhlbmdpbmUpOwogCWludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhlbmdpbmUpOwotCWludGVsX2VuZ2luZV9pbml0X2JhdGNoX3Bvb2woZW5naW5lKTsKIAlpbnRlbF9lbmdpbmVfaW5pdF9jbWRfcGFyc2VyKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX2luaXRfX3BtKGVuZ2luZSk7CiAKKwlpbnRlbF9lbmdpbmVfcG9vbF9pbml0KCZlbmdpbmUtPnBvb2wpOworCiAJLyogVXNlIHRoZSB3aG9sZSBkZXZpY2UgYnkgZGVmYXVsdCAqLwogCWVuZ2luZS0+c3NldSA9CiAJCWludGVsX3NzZXVfZnJvbV9kZXZpY2VfaW5mbygmUlVOVElNRV9JTkZPKGVuZ2luZS0+aTkxNSktPnNzZXUpOwogCisJaW50ZWxfZW5naW5lX2luaXRfd29ya2Fyb3VuZHMoZW5naW5lKTsKKwlpbnRlbF9lbmdpbmVfaW5pdF93aGl0ZWxpc3QoZW5naW5lKTsKKwlpbnRlbF9lbmdpbmVfaW5pdF9jdHhfd2EoZW5naW5lKTsKKwogCXJldHVybiAwOwogfQogCkBAIC02NzUsNDkgKzY1Nyw5IEBAIGludCBpbnRlbF9lbmdpbmVzX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCXJldHVybiBlcnI7CiB9CiAKLXZvaWQgaW50ZWxfZW5naW5lc19zZXRfc2NoZWR1bGVyX2NhcHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RhdGljIGNvbnN0IHN0cnVjdCB7Ci0JCXU4IGVuZ2luZTsKLQkJdTggc2NoZWQ7Ci0JfSBtYXBbXSA9IHsKLSNkZWZpbmUgTUFQKHgsIHkpIHsgaWxvZzIoSTkxNV9FTkdJTkVfSEFTXyMjeCksIGlsb2cyKEk5MTVfU0NIRURVTEVSX0NBUF8jI3kpIH0KLQkJTUFQKFBSRUVNUFRJT04sIFBSRUVNUFRJT04pLAotCQlNQVAoU0VNQVBIT1JFUywgU0VNQVBIT1JFUyksCi0jdW5kZWYgTUFQCi0JfTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0JdTMyIGVuYWJsZWQsIGRpc2FibGVkOwotCi0JZW5hYmxlZCA9IDA7Ci0JZGlzYWJsZWQgPSAwOwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7IC8qIGFsbCBlbmdpbmVzIG11c3QgYWdyZWUhICovCi0JCWludCBpOwotCi0JCWlmIChlbmdpbmUtPnNjaGVkdWxlKQotCQkJZW5hYmxlZCB8PSAoSTkxNV9TQ0hFRFVMRVJfQ0FQX0VOQUJMRUQgfAotCQkJCSAgICBJOTE1X1NDSEVEVUxFUl9DQVBfUFJJT1JJVFkpOwotCQllbHNlCi0JCQlkaXNhYmxlZCB8PSAoSTkxNV9TQ0hFRFVMRVJfQ0FQX0VOQUJMRUQgfAotCQkJCSAgICAgSTkxNV9TQ0hFRFVMRVJfQ0FQX1BSSU9SSVRZKTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtYXApOyBpKyspIHsKLQkJCWlmIChlbmdpbmUtPmZsYWdzICYgQklUKG1hcFtpXS5lbmdpbmUpKQotCQkJCWVuYWJsZWQgfD0gQklUKG1hcFtpXS5zY2hlZCk7Ci0JCQllbHNlCi0JCQkJZGlzYWJsZWQgfD0gQklUKG1hcFtpXS5zY2hlZCk7Ci0JCX0KLQl9Ci0KLQlpOTE1LT5jYXBzLnNjaGVkdWxlciA9IGVuYWJsZWQgJiB+ZGlzYWJsZWQ7Ci0JaWYgKCEoaTkxNS0+Y2Fwcy5zY2hlZHVsZXIgJiBJOTE1X1NDSEVEVUxFUl9DQVBfRU5BQkxFRCkpCi0JCWk5MTUtPmNhcHMuc2NoZWR1bGVyID0gMDsKLX0KLQogc3RydWN0IG1lYXN1cmVfYnJlYWRjcnVtYiB7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCBycTsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSB0aW1lbGluZTsKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgdGltZWxpbmU7CiAJc3RydWN0IGludGVsX3JpbmcgcmluZzsKIAl1MzIgY3NbMTAyNF07CiB9OwpAQCAtNzI3LDE5ICs2NjksMTcgQEAgc3RhdGljIGludCBtZWFzdXJlX2JyZWFkY3J1bWJfZHcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXN0cnVjdCBtZWFzdXJlX2JyZWFkY3J1bWIgKmZyYW1lOwogCWludCBkdyA9IC1FTk9NRU07CiAKLQlHRU1fQlVHX09OKCFlbmdpbmUtPmk5MTUtPmd0LnNjcmF0Y2gpOworCUdFTV9CVUdfT04oIWVuZ2luZS0+Z3QtPnNjcmF0Y2gpOwogCiAJZnJhbWUgPSBremFsbG9jKHNpemVvZigqZnJhbWUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWZyYW1lKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCWlmIChpOTE1X3RpbWVsaW5lX2luaXQoZW5naW5lLT5pOTE1LAotCQkJICAgICAgICZmcmFtZS0+dGltZWxpbmUsCi0JCQkgICAgICAgZW5naW5lLT5zdGF0dXNfcGFnZS52bWEpKQorCWlmIChpbnRlbF90aW1lbGluZV9pbml0KCZmcmFtZS0+dGltZWxpbmUsCisJCQkJZW5naW5lLT5ndCwKKwkJCQllbmdpbmUtPnN0YXR1c19wYWdlLnZtYSkpCiAJCWdvdG8gb3V0X2ZyYW1lOwogCi0JSU5JVF9MSVNUX0hFQUQoJmZyYW1lLT5yaW5nLnJlcXVlc3RfbGlzdCk7Ci0JZnJhbWUtPnJpbmcudGltZWxpbmUgPSAmZnJhbWUtPnRpbWVsaW5lOwogCWZyYW1lLT5yaW5nLnZhZGRyID0gZnJhbWUtPmNzOwogCWZyYW1lLT5yaW5nLnNpemUgPSBzaXplb2YoZnJhbWUtPmNzKTsKIAlmcmFtZS0+cmluZy5lZmZlY3RpdmVfc2l6ZSA9IGZyYW1lLT5yaW5nLnNpemU7CkBAIC03NTAsNDIgKzY5MCwyMiBAQCBzdGF0aWMgaW50IG1lYXN1cmVfYnJlYWRjcnVtYl9kdyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZnJhbWUtPnJxLnJpbmcgPSAmZnJhbWUtPnJpbmc7CiAJZnJhbWUtPnJxLnRpbWVsaW5lID0gJmZyYW1lLT50aW1lbGluZTsKIAotCWR3ID0gaTkxNV90aW1lbGluZV9waW4oJmZyYW1lLT50aW1lbGluZSk7CisJZHcgPSBpbnRlbF90aW1lbGluZV9waW4oJmZyYW1lLT50aW1lbGluZSk7CiAJaWYgKGR3IDwgMCkKIAkJZ290byBvdXRfdGltZWxpbmU7CiAKIAlkdyA9IGVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIoJmZyYW1lLT5ycSwgZnJhbWUtPmNzKSAtIGZyYW1lLT5jczsKIAlHRU1fQlVHX09OKGR3ICYgMSk7IC8qIFJJTkdfVEFJTCBtdXN0IGJlIHF3b3JkIGFsaWduZWQgKi8KIAotCWk5MTVfdGltZWxpbmVfdW5waW4oJmZyYW1lLT50aW1lbGluZSk7CisJaW50ZWxfdGltZWxpbmVfdW5waW4oJmZyYW1lLT50aW1lbGluZSk7CiAKIG91dF90aW1lbGluZToKLQlpOTE1X3RpbWVsaW5lX2ZpbmkoJmZyYW1lLT50aW1lbGluZSk7CisJaW50ZWxfdGltZWxpbmVfZmluaSgmZnJhbWUtPnRpbWVsaW5lKTsKIG91dF9mcmFtZToKIAlrZnJlZShmcmFtZSk7CiAJcmV0dXJuIGR3OwogfQogCi1zdGF0aWMgaW50IHBpbl9jb250ZXh0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCi0JCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCi0JCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqKm91dCkKLXsKLQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7Ci0JaW50IGVycjsKLQotCWNlID0gaTkxNV9nZW1fY29udGV4dF9nZXRfZW5naW5lKGN0eCwgZW5naW5lLT5pZCk7Ci0JaWYgKElTX0VSUihjZSkpCi0JCXJldHVybiBQVFJfRVJSKGNlKTsKLQotCWVyciA9IGludGVsX2NvbnRleHRfcGluKGNlKTsKLQlpbnRlbF9jb250ZXh0X3B1dChjZSk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKLQotCSpvdXQgPSBjZTsKLQlyZXR1cm4gMDsKLX0KLQogdm9pZAogaW50ZWxfZW5naW5lX2luaXRfYWN0aXZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdW5zaWduZWQgaW50IHN1YmNsYXNzKQogewpAQCAtODA3LDYgKzcyNywyNyBAQCBpbnRlbF9lbmdpbmVfaW5pdF9hY3RpdmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1bnNpZ25lZCBpbnQgc3ViY2xhc3MpCiAjZW5kaWYKIH0KIAorc3RhdGljIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKK2NyZWF0ZV9rZXJuZWxfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOworCWludCBlcnI7CisKKwljZSA9IGludGVsX2NvbnRleHRfY3JlYXRlKGVuZ2luZS0+aTkxNS0+a2VybmVsX2NvbnRleHQsIGVuZ2luZSk7CisJaWYgKElTX0VSUihjZSkpCisJCXJldHVybiBjZTsKKworCWNlLT5yaW5nID0gX19pbnRlbF9jb250ZXh0X3Jpbmdfc2l6ZShTWl80Syk7CisKKwllcnIgPSBpbnRlbF9jb250ZXh0X3BpbihjZSk7CisJaWYgKGVycikgeworCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7CisJCXJldHVybiBFUlJfUFRSKGVycik7CisJfQorCisJcmV0dXJuIGNlOworfQorCiAvKioKICAqIGludGVsX2VuZ2luZXNfaW5pdF9jb21tb24gLSBpbml0aWFsaXplIGNlbmdpbmUgc3RhdGUgd2hpY2ggbWlnaHQgcmVxdWlyZSBodyBhY2Nlc3MKICAqIEBlbmdpbmU6IEVuZ2luZSB0byBpbml0aWFsaXplLgpAQCAtODIwLDI5ICs3NjEsMjQgQEAgaW50ZWxfZW5naW5lX2luaXRfYWN0aXZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdW5zaWduZWQgaW50IHN1YmNsYXNzKQogICovCiBpbnQgaW50ZWxfZW5naW5lX2luaXRfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAJaW50IHJldDsKIAotCS8qIFdlIG1heSBuZWVkIHRvIGRvIHRoaW5ncyB3aXRoIHRoZSBzaHJpbmtlciB3aGljaAorCWVuZ2luZS0+c2V0X2RlZmF1bHRfc3VibWlzc2lvbihlbmdpbmUpOworCisJLyoKKwkgKiBXZSBtYXkgbmVlZCB0byBkbyB0aGluZ3Mgd2l0aCB0aGUgc2hyaW5rZXIgd2hpY2gKIAkgKiByZXF1aXJlIHVzIHRvIGltbWVkaWF0ZWx5IHN3aXRjaCBiYWNrIHRvIHRoZSBkZWZhdWx0CiAJICogY29udGV4dC4gVGhpcyBjYW4gY2F1c2UgYSBwcm9ibGVtIGFzIHBpbm5pbmcgdGhlCiAJICogZGVmYXVsdCBjb250ZXh0IGFsc28gcmVxdWlyZXMgR1RUIHNwYWNlIHdoaWNoIG1heSBub3QKIAkgKiBiZSBhdmFpbGFibGUuIFRvIGF2b2lkIHRoaXMgd2UgYWx3YXlzIHBpbiB0aGUgZGVmYXVsdAogCSAqIGNvbnRleHQuCiAJICovCi0JcmV0ID0gcGluX2NvbnRleHQoaTkxNS0+a2VybmVsX2NvbnRleHQsIGVuZ2luZSwKLQkJCSAgJmVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJY2UgPSBjcmVhdGVfa2VybmVsX2NvbnRleHQoZW5naW5lKTsKKwlpZiAoSVNfRVJSKGNlKSkKKwkJcmV0dXJuIFBUUl9FUlIoY2UpOwogCi0JLyoKLQkgKiBTaW1pbGFybHkgdGhlIHByZWVtcHQgY29udGV4dCBtdXN0IGFsd2F5cyBiZSBhdmFpbGFibGUgc28gdGhhdAotCSAqIHdlIGNhbiBpbnRlcnJ1cHQgdGhlIGVuZ2luZSBhdCBhbnkgdGltZS4gSG93ZXZlciwgYXMgcHJlZW1wdGlvbgotCSAqIGlzIG9wdGlvbmFsLCB3ZSBhbGxvdyBpdCB0byBmYWlsLgotCSAqLwotCWlmIChpOTE1LT5wcmVlbXB0X2NvbnRleHQpCi0JCXBpbl9jb250ZXh0KGk5MTUtPnByZWVtcHRfY29udGV4dCwgZW5naW5lLAotCQkJICAgICZlbmdpbmUtPnByZWVtcHRfY29udGV4dCk7CisJZW5naW5lLT5rZXJuZWxfY29udGV4dCA9IGNlOwogCiAJcmV0ID0gbWVhc3VyZV9icmVhZGNydW1iX2R3KGVuZ2luZSk7CiAJaWYgKHJldCA8IDApCkBAIC04NTAsMTQgKzc4NiwxMSBAQCBpbnQgaW50ZWxfZW5naW5lX2luaXRfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWJfZHcgPSByZXQ7CiAKLQllbmdpbmUtPnNldF9kZWZhdWx0X3N1Ym1pc3Npb24oZW5naW5lKTsKLQogCXJldHVybiAwOwogCiBlcnJfdW5waW46Ci0JaWYgKGVuZ2luZS0+cHJlZW1wdF9jb250ZXh0KQotCQlpbnRlbF9jb250ZXh0X3VucGluKGVuZ2luZS0+cHJlZW1wdF9jb250ZXh0KTsKLQlpbnRlbF9jb250ZXh0X3VucGluKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOworCWludGVsX2NvbnRleHRfdW5waW4oY2UpOworCWludGVsX2NvbnRleHRfcHV0KGNlKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC04NzQsMTYgKzgwNywxNSBAQCB2b2lkIGludGVsX2VuZ2luZV9jbGVhbnVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAljbGVhbnVwX3N0YXR1c19wYWdlKGVuZ2luZSk7CiAKKwlpbnRlbF9lbmdpbmVfcG9vbF9maW5pKCZlbmdpbmUtPnBvb2wpOwogCWludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX2NsZWFudXBfY21kX3BhcnNlcihlbmdpbmUpOwotCWk5MTVfZ2VtX2JhdGNoX3Bvb2xfZmluaSgmZW5naW5lLT5iYXRjaF9wb29sKTsKIAogCWlmIChlbmdpbmUtPmRlZmF1bHRfc3RhdGUpCiAJCWk5MTVfZ2VtX29iamVjdF9wdXQoZW5naW5lLT5kZWZhdWx0X3N0YXRlKTsKIAotCWlmIChlbmdpbmUtPnByZWVtcHRfY29udGV4dCkKLQkJaW50ZWxfY29udGV4dF91bnBpbihlbmdpbmUtPnByZWVtcHRfY29udGV4dCk7CiAJaW50ZWxfY29udGV4dF91bnBpbihlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKwlpbnRlbF9jb250ZXh0X3B1dChlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKIAlHRU1fQlVHX09OKCFsbGlzdF9lbXB0eSgmZW5naW5lLT5iYXJyaWVyX3Rhc2tzKSk7CiAKIAlpbnRlbF93YV9saXN0X2ZyZWUoJmVuZ2luZS0+Y3R4X3dhX2xpc3QpOwpAQCAtOTY2LDU3ICs4OTgsMjMgQEAgY29uc3QgY2hhciAqaTkxNV9jYWNoZV9sZXZlbF9zdHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCB0eXBlKQogCX0KIH0KIAotdTMyIGludGVsX2NhbGN1bGF0ZV9tY3Jfc19zc19zZWxlY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7Ci0JdW5zaWduZWQgaW50IHNsaWNlID0gZmxzKHNzZXUtPnNsaWNlX21hc2spIC0gMTsKLQl1bnNpZ25lZCBpbnQgc3Vic2xpY2U7Ci0JdTMyIG1jcl9zX3NzX3NlbGVjdDsKLQotCUdFTV9CVUdfT04oc2xpY2UgPj0gQVJSQVlfU0laRShzc2V1LT5zdWJzbGljZV9tYXNrKSk7Ci0Jc3Vic2xpY2UgPSBmbHMoc3NldS0+c3Vic2xpY2VfbWFza1tzbGljZV0pOwotCUdFTV9CVUdfT04oIXN1YnNsaWNlKTsKLQlzdWJzbGljZS0tOwotCi0JaWYgKElTX0dFTihkZXZfcHJpdiwgMTApKQotCQltY3Jfc19zc19zZWxlY3QgPSBHRU44X01DUl9TTElDRShzbGljZSkgfAotCQkJCSAgR0VOOF9NQ1JfU1VCU0xJQ0Uoc3Vic2xpY2UpOwotCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCi0JCW1jcl9zX3NzX3NlbGVjdCA9IEdFTjExX01DUl9TTElDRShzbGljZSkgfAotCQkJCSAgR0VOMTFfTUNSX1NVQlNMSUNFKHN1YnNsaWNlKTsKLQllbHNlCi0JCW1jcl9zX3NzX3NlbGVjdCA9IDA7Ci0KLQlyZXR1cm4gbWNyX3Nfc3Nfc2VsZWN0OwotfQotCiBzdGF0aWMgdTMyCiByZWFkX3N1YnNsaWNlX3JlZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBzbGljZSwgaW50IHN1YnNsaWNlLAogCQkgIGk5MTVfcmVnX3QgcmVnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1OwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGVuZ2luZS0+dW5jb3JlOwotCXUzMiBtY3Jfc2xpY2Vfc3Vic2xpY2VfbWFzazsKLQl1MzIgbWNyX3NsaWNlX3N1YnNsaWNlX3NlbGVjdDsKLQl1MzIgZGVmYXVsdF9tY3Jfc19zc19zZWxlY3Q7Ci0JdTMyIG1jcjsKLQl1MzIgcmV0OworCXUzMiBtY3JfbWFzaywgbWNyX3NzLCBtY3IsIG9sZF9tY3IsIHZhbDsKIAllbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2RvbWFpbnM7CiAKIAlpZiAoSU5URUxfR0VOKGk5MTUpID49IDExKSB7Ci0JCW1jcl9zbGljZV9zdWJzbGljZV9tYXNrID0gR0VOMTFfTUNSX1NMSUNFX01BU0sgfAotCQkJCQkgIEdFTjExX01DUl9TVUJTTElDRV9NQVNLOwotCQltY3Jfc2xpY2Vfc3Vic2xpY2Vfc2VsZWN0ID0gR0VOMTFfTUNSX1NMSUNFKHNsaWNlKSB8Ci0JCQkJCSAgICBHRU4xMV9NQ1JfU1VCU0xJQ0Uoc3Vic2xpY2UpOworCQltY3JfbWFzayA9IEdFTjExX01DUl9TTElDRV9NQVNLIHwgR0VOMTFfTUNSX1NVQlNMSUNFX01BU0s7CisJCW1jcl9zcyA9IEdFTjExX01DUl9TTElDRShzbGljZSkgfCBHRU4xMV9NQ1JfU1VCU0xJQ0Uoc3Vic2xpY2UpOwogCX0gZWxzZSB7Ci0JCW1jcl9zbGljZV9zdWJzbGljZV9tYXNrID0gR0VOOF9NQ1JfU0xJQ0VfTUFTSyB8Ci0JCQkJCSAgR0VOOF9NQ1JfU1VCU0xJQ0VfTUFTSzsKLQkJbWNyX3NsaWNlX3N1YnNsaWNlX3NlbGVjdCA9IEdFTjhfTUNSX1NMSUNFKHNsaWNlKSB8Ci0JCQkJCSAgICBHRU44X01DUl9TVUJTTElDRShzdWJzbGljZSk7CisJCW1jcl9tYXNrID0gR0VOOF9NQ1JfU0xJQ0VfTUFTSyB8IEdFTjhfTUNSX1NVQlNMSUNFX01BU0s7CisJCW1jcl9zcyA9IEdFTjhfTUNSX1NMSUNFKHNsaWNlKSB8IEdFTjhfTUNSX1NVQlNMSUNFKHN1YnNsaWNlKTsKIAl9CiAKLQlkZWZhdWx0X21jcl9zX3NzX3NlbGVjdCA9IGludGVsX2NhbGN1bGF0ZV9tY3Jfc19zc19zZWxlY3QoaTkxNSk7Ci0KIAlmd19kb21haW5zID0gaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9mb3JfcmVnKHVuY29yZSwgcmVnLAogCQkJCQkJICAgIEZXX1JFR19SRUFEKTsKIAlmd19kb21haW5zIHw9IGludGVsX3VuY29yZV9mb3JjZXdha2VfZm9yX3JlZyh1bmNvcmUsCkBAIC0xMDI2LDI2ICs5MjQsMjMgQEAgcmVhZF9zdWJzbGljZV9yZWcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgc2xpY2UsIGludCBzdWJzbGljZSwKIAlzcGluX2xvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwogCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0X19sb2NrZWQodW5jb3JlLCBmd19kb21haW5zKTsKIAotCW1jciA9IGludGVsX3VuY29yZV9yZWFkX2Z3KHVuY29yZSwgR0VOOF9NQ1JfU0VMRUNUT1IpOworCW9sZF9tY3IgPSBtY3IgPSBpbnRlbF91bmNvcmVfcmVhZF9mdyh1bmNvcmUsIEdFTjhfTUNSX1NFTEVDVE9SKTsKIAotCVdBUk5fT05fT05DRSgobWNyICYgbWNyX3NsaWNlX3N1YnNsaWNlX21hc2spICE9Ci0JCSAgICAgZGVmYXVsdF9tY3Jfc19zc19zZWxlY3QpOwotCi0JbWNyICY9IH5tY3Jfc2xpY2Vfc3Vic2xpY2VfbWFzazsKLQltY3IgfD0gbWNyX3NsaWNlX3N1YnNsaWNlX3NlbGVjdDsKKwltY3IgJj0gfm1jcl9tYXNrOworCW1jciB8PSBtY3Jfc3M7CiAJaW50ZWxfdW5jb3JlX3dyaXRlX2Z3KHVuY29yZSwgR0VOOF9NQ1JfU0VMRUNUT1IsIG1jcik7CiAKLQlyZXQgPSBpbnRlbF91bmNvcmVfcmVhZF9mdyh1bmNvcmUsIHJlZyk7CisJdmFsID0gaW50ZWxfdW5jb3JlX3JlYWRfZncodW5jb3JlLCByZWcpOwogCi0JbWNyICY9IH5tY3Jfc2xpY2Vfc3Vic2xpY2VfbWFzazsKLQltY3IgfD0gZGVmYXVsdF9tY3Jfc19zc19zZWxlY3Q7CisJbWNyICY9IH5tY3JfbWFzazsKKwltY3IgfD0gb2xkX21jciAmIG1jcl9tYXNrOwogCiAJaW50ZWxfdW5jb3JlX3dyaXRlX2Z3KHVuY29yZSwgR0VOOF9NQ1JfU0VMRUNUT1IsIG1jcik7CiAKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dF9fbG9ja2VkKHVuY29yZSwgZndfZG9tYWlucyk7CiAJc3Bpbl91bmxvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwogCi0JcmV0dXJuIHJldDsKKwlyZXR1cm4gdmFsOwogfQogCiAvKiBOQjogcGxlYXNlIG5vdGljZSB0aGUgbWVtc2V0ICovCkBAIC0xMTEzLDE2ICsxMDA4LDEyIEBAIHZvaWQgaW50ZWxfZW5naW5lX2dldF9pbnN0ZG9uZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAKIHN0YXRpYyBib29sIHJpbmdfaXNfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwotCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCWJvb2wgaWRsZSA9IHRydWU7CiAKIAlpZiAoSTkxNV9TRUxGVEVTVF9PTkxZKCFlbmdpbmUtPm1taW9fYmFzZSkpCiAJCXJldHVybiB0cnVlOwogCi0JLyogSWYgdGhlIHdob2xlIGRldmljZSBpcyBhc2xlZXAsIHRoZSBlbmdpbmUgbXVzdCBiZSBpZGxlICovCi0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwotCWlmICghd2FrZXJlZikKKwlpZiAoIWludGVsX2VuZ2luZV9wbV9nZXRfaWZfYXdha2UoZW5naW5lKSkKIAkJcmV0dXJuIHRydWU7CiAKIAkvKiBGaXJzdCBjaGVjayB0aGF0IG5vIGNvbW1hbmRzIGFyZSBsZWZ0IGluIHRoZSByaW5nICovCkBAIC0xMTMxLDExICsxMDIyLDExIEBAIHN0YXRpYyBib29sIHJpbmdfaXNfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWlkbGUgPSBmYWxzZTsKIAogCS8qIE5vIGJpdCBmb3IgZ2VuMiwgc28gYXNzdW1lIHRoZSBDUyBwYXJzZXIgaXMgaWRsZSAqLwotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID4gMiAmJgorCWlmIChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSA+IDIgJiYKIAkgICAgIShFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfTUlfTU9ERSkgJiBNT0RFX0lETEUpKQogCQlpZGxlID0gZmFsc2U7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOworCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKIAogCXJldHVybiBpZGxlOwogfQpAQCAtMTE1MCwxNyArMTA0MSwxNyBAQCBzdGF0aWMgYm9vbCByaW5nX2lzX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogYm9vbCBpbnRlbF9lbmdpbmVfaXNfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJLyogTW9yZSB3aGl0ZSBsaWVzLCBpZiB3ZWRnZWQsIGh3IHN0YXRlIGlzIGluY29uc2lzdGVudCAqLwotCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChlbmdpbmUtPmk5MTUpKQorCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZW5naW5lLT5ndCkpCiAJCXJldHVybiB0cnVlOwogCi0JaWYgKCFpbnRlbF93YWtlcmVmX2FjdGl2ZSgmZW5naW5lLT53YWtlcmVmKSkKKwlpZiAoIWludGVsX2VuZ2luZV9wbV9pc19hd2FrZShlbmdpbmUpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCS8qIFdhaXRpbmcgdG8gZHJhaW4gRUxTUD8gKi8KLQlpZiAoUkVBRF9PTkNFKGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSkpIHsKKwlpZiAoZXhlY2xpc3RzX2FjdGl2ZSgmZW5naW5lLT5leGVjbGlzdHMpKSB7CiAJCXN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdCA9ICZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0OwogCi0JCXN5bmNocm9uaXplX2hhcmRpcnEoZW5naW5lLT5pOTE1LT5kcm0uaXJxKTsKKwkJc3luY2hyb25pemVfaGFyZGlycShlbmdpbmUtPmk5MTUtPmRybS5wZGV2LT5pcnEpOwogCiAJCWxvY2FsX2JoX2Rpc2FibGUoKTsKIAkJaWYgKHRhc2tsZXRfdHJ5bG9jayh0KSkgewpAQCAtMTE3NCw3ICsxMDY1LDcgQEAgYm9vbCBpbnRlbF9lbmdpbmVfaXNfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCS8qIE90aGVyd2lzZSBmbHVzaCB0aGUgdGFza2xldCBpZiBpdCB3YXMgb24gYW5vdGhlciBjcHUgKi8KIAkJdGFza2xldF91bmxvY2tfd2FpdCh0KTsKIAotCQlpZiAoUkVBRF9PTkNFKGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSkpCisJCWlmIChleGVjbGlzdHNfYWN0aXZlKCZlbmdpbmUtPmV4ZWNsaXN0cykpCiAJCQlyZXR1cm4gZmFsc2U7CiAJfQogCkBAIC0xMTg2LDcgKzEwNzcsNyBAQCBib29sIGludGVsX2VuZ2luZV9pc19pZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlyZXR1cm4gcmluZ19pc19pZGxlKGVuZ2luZSk7CiB9CiAKLWJvb2wgaW50ZWxfZW5naW5lc19hcmVfaWRsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK2Jvb2wgaW50ZWxfZW5naW5lc19hcmVfaWRsZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKQEAgLTExOTUsMTQgKzEwODYsMTQgQEAgYm9vbCBpbnRlbF9lbmdpbmVzX2FyZV9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCSAqIElmIHRoZSBkcml2ZXIgaXMgd2VkZ2VkLCBIVyBzdGF0ZSBtYXkgYmUgdmVyeSBpbmNvbnNpc3RlbnQgYW5kCiAJICogcmVwb3J0IHRoYXQgaXQgaXMgc3RpbGwgYnVzeSwgZXZlbiB0aG91Z2ggd2UgaGF2ZSBzdG9wcGVkIHVzaW5nIGl0LgogCSAqLwotCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChpOTE1KSkKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSkKIAkJcmV0dXJuIHRydWU7CiAKIAkvKiBBbHJlYWR5IHBhcmtlZCAoYW5kIHBhc3NlZCBhbiBpZGxlbmVzcyB0ZXN0KTsgbXVzdCBzdGlsbCBiZSBpZGxlICovCi0JaWYgKCFSRUFEX09OQ0UoaTkxNS0+Z3QuYXdha2UpKQorCWlmICghUkVBRF9PTkNFKGd0LT5hd2FrZSkpCiAJCXJldHVybiB0cnVlOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKIAkJaWYgKCFpbnRlbF9lbmdpbmVfaXNfaWRsZShlbmdpbmUpKQogCQkJcmV0dXJuIGZhbHNlOwogCX0KQEAgLTEyMTAsMTIgKzExMDEsMTIgQEAgYm9vbCBpbnRlbF9lbmdpbmVzX2FyZV9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCXJldHVybiB0cnVlOwogfQogCi12b2lkIGludGVsX2VuZ2luZXNfcmVzZXRfZGVmYXVsdF9zdWJtaXNzaW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQordm9pZCBpbnRlbF9lbmdpbmVzX3Jlc2V0X2RlZmF1bHRfc3VibWlzc2lvbihzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkKIAkJZW5naW5lLT5zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKGVuZ2luZSk7CiB9CiAKQEAgLTEyMzQsMjAgKzExMjUsNiBAQCBib29sIGludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCX0KIH0KIAotdW5zaWduZWQgaW50IGludGVsX2VuZ2luZXNfaGFzX2NvbnRleHRfaXNvbGF0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQl1bnNpZ25lZCBpbnQgd2hpY2g7Ci0KLQl3aGljaCA9IDA7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCi0JCWlmIChlbmdpbmUtPmRlZmF1bHRfc3RhdGUpCi0JCQl3aGljaCB8PSBCSVQoZW5naW5lLT51YWJpX2NsYXNzKTsKLQotCXJldHVybiB3aGljaDsKLX0KLQogc3RhdGljIGludCBwcmludF9zY2hlZF9hdHRyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJICAgIGNvbnN0IHN0cnVjdCBpOTE1X3NjaGVkX2F0dHIgKmF0dHIsCiAJCQkgICAgY2hhciAqYnVmLCBpbnQgeCwgaW50IGxlbikKQEAgLTEzMjUsNyArMTIwMiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9wcmludF9yZWdpc3RlcnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdTY0IGFkZHI7CiAKLQlpZiAoZW5naW5lLT5pZCA9PSBSQ1MwICYmIElTX0dFTl9SQU5HRShkZXZfcHJpdiwgNCwgNykpCisJaWYgKGVuZ2luZS0+aWQgPT0gUkVOREVSX0NMQVNTICYmIElTX0dFTl9SQU5HRShkZXZfcHJpdiwgNCwgNykpCiAJCWRybV9wcmludGYobSwgIlx0Q0NJRDogMHglMDh4XG4iLCBFTkdJTkVfUkVBRChlbmdpbmUsIENDSUQpKTsKIAlkcm1fcHJpbnRmKG0sICJcdFJJTkdfU1RBUlQ6IDB4JTA4eFxuIiwKIAkJICAgRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX1NUQVJUKSk7CkBAIC0xMzcyLDYgKzEyNDksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfcHJpbnRfcmVnaXN0ZXJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAl9CiAKIAlpZiAoSEFTX0VYRUNMSVNUUyhkZXZfcHJpdikpIHsKKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqIGNvbnN0ICpwb3J0LCAqcnE7CiAJCWNvbnN0IHUzMiAqaHdzID0KIAkJCSZlbmdpbmUtPnN0YXR1c19wYWdlLmFkZHJbSTkxNV9IV1NfQ1NCX0JVRjBfSU5ERVhdOwogCQljb25zdCB1OCBudW1fZW50cmllcyA9IGV4ZWNsaXN0cy0+Y3NiX3NpemU7CkBAIC0xNDA0LDI3ICsxMjgyLDMzIEBAIHN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9wcmludF9yZWdpc3RlcnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQl9CiAKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKLQkJZm9yIChpZHggPSAwOyBpZHggPCBleGVjbGlzdHNfbnVtX3BvcnRzKGV4ZWNsaXN0cyk7IGlkeCsrKSB7Ci0JCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKLQkJCXVuc2lnbmVkIGludCBjb3VudDsKKwkJZm9yIChwb3J0ID0gZXhlY2xpc3RzLT5hY3RpdmU7IChycSA9ICpwb3J0KTsgcG9ydCsrKSB7CisJCQljaGFyIGhkcls4MF07CisJCQlpbnQgbGVuOworCisJCQlsZW4gPSBzbnByaW50ZihoZHIsIHNpemVvZihoZHIpLAorCQkJCSAgICAgICAiXHRcdEFjdGl2ZVslZDogIiwKKwkJCQkgICAgICAgKGludCkocG9ydCAtIGV4ZWNsaXN0cy0+YWN0aXZlKSk7CisJCQlpZiAoIWk5MTVfcmVxdWVzdF9zaWduYWxlZChycSkpCisJCQkJbGVuICs9IHNucHJpbnRmKGhkciArIGxlbiwgc2l6ZW9mKGhkcikgLSBsZW4sCisJCQkJCQkicmluZzp7c3RhcnQ6JTA4eCwgaHdzcDolMDh4LCBzZXFubzolMDh4fSwgIiwKKwkJCQkJCWk5MTVfZ2d0dF9vZmZzZXQocnEtPnJpbmctPnZtYSksCisJCQkJCQlycS0+dGltZWxpbmUtPmh3c3Bfb2Zmc2V0LAorCQkJCQkJaHdzcF9zZXFubyhycSkpOworCQkJc25wcmludGYoaGRyICsgbGVuLCBzaXplb2YoaGRyKSAtIGxlbiwgInJxOiAiKTsKKwkJCXByaW50X3JlcXVlc3QobSwgcnEsIGhkcik7CisJCX0KKwkJZm9yIChwb3J0ID0gZXhlY2xpc3RzLT5wZW5kaW5nOyAocnEgPSAqcG9ydCk7IHBvcnQrKykgewogCQkJY2hhciBoZHJbODBdOwogCi0JCQlycSA9IHBvcnRfdW5wYWNrKCZleGVjbGlzdHMtPnBvcnRbaWR4XSwgJmNvdW50KTsKLQkJCWlmICghcnEpIHsKLQkJCQlkcm1fcHJpbnRmKG0sICJcdFx0RUxTUFslZF0gaWRsZVxuIiwgaWR4KTsKLQkJCX0gZWxzZSBpZiAoIWk5MTVfcmVxdWVzdF9zaWduYWxlZChycSkpIHsKLQkJCQlzbnByaW50ZihoZHIsIHNpemVvZihoZHIpLAotCQkJCQkgIlx0XHRFTFNQWyVkXSBjb3VudD0lZCwgcmluZzp7c3RhcnQ6JTA4eCwgaHdzcDolMDh4LCBzZXFubzolMDh4fSwgcnE6ICIsCi0JCQkJCSBpZHgsIGNvdW50LAotCQkJCQkgaTkxNV9nZ3R0X29mZnNldChycS0+cmluZy0+dm1hKSwKLQkJCQkJIHJxLT50aW1lbGluZS0+aHdzcF9vZmZzZXQsCi0JCQkJCSBod3NwX3NlcW5vKHJxKSk7Ci0JCQkJcHJpbnRfcmVxdWVzdChtLCBycSwgaGRyKTsKLQkJCX0gZWxzZSB7Ci0JCQkJcHJpbnRfcmVxdWVzdChtLCBycSwgIlx0XHRFTFNQWyVkXSBycTogIik7Ci0JCQl9CisJCQlzbnByaW50ZihoZHIsIHNpemVvZihoZHIpLAorCQkJCSAiXHRcdFBlbmRpbmdbJWRdIHJpbmc6e3N0YXJ0OiUwOHgsIGh3c3A6JTA4eCwgc2Vxbm86JTA4eH0sIHJxOiAiLAorCQkJCSAoaW50KShwb3J0IC0gZXhlY2xpc3RzLT5wZW5kaW5nKSwKKwkJCQkgaTkxNV9nZ3R0X29mZnNldChycS0+cmluZy0+dm1hKSwKKwkJCQkgcnEtPnRpbWVsaW5lLT5od3NwX29mZnNldCwKKwkJCQkgaHdzcF9zZXFubyhycSkpOworCQkJcHJpbnRfcmVxdWVzdChtLCBycSwgaGRyKTsKIAkJfQotCQlkcm1fcHJpbnRmKG0sICJcdFx0SFcgYWN0aXZlPyAweCV4XG4iLCBleGVjbGlzdHMtPmFjdGl2ZSk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPiA2KSB7CiAJCWRybV9wcmludGYobSwgIlx0UFBfRElSX0JBU0U6IDB4JTA4eFxuIiwKQEAgLTE0ODYsNyArMTM3MCw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQl2YV9lbmQoYXApOwogCX0KIAotCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChlbmdpbmUtPmk5MTUpKQorCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZW5naW5lLT5ndCkpCiAJCWRybV9wcmludGYobSwgIioqKiBXRURHRUQgKioqXG4iKTsKIAogCWRybV9wcmludGYobSwgIlx0QXdha2U/ICVkXG4iLCBhdG9taWNfcmVhZCgmZW5naW5lLT53YWtlcmVmLmNvdW50KSk7CkBAIC0xNTIwLDYgKzE0MDQsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogCisJZHJtX3ByaW50ZihtLCAiXHRNTUlPIGJhc2U6ICAweCUwOHhcbiIsIGVuZ2luZS0+bW1pb19iYXNlKTsKIAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKCZlbmdpbmUtPmk5MTUtPnJ1bnRpbWVfcG0pOwogCWlmICh3YWtlcmVmKSB7CiAJCWludGVsX2VuZ2luZV9wcmludF9yZWdpc3RlcnMoZW5naW5lLCBtKTsKQEAgLTE1MzgsMjkgKzE0MjMsNiBAQCB2b2lkIGludGVsX2VuZ2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpbnRlbF9lbmdpbmVfcHJpbnRfYnJlYWRjcnVtYnMoZW5naW5lLCBtKTsKIH0KIAotc3RhdGljIHU4IHVzZXJfY2xhc3NfbWFwW10gPSB7Ci0JW0k5MTVfRU5HSU5FX0NMQVNTX1JFTkRFUl0gPSBSRU5ERVJfQ0xBU1MsCi0JW0k5MTVfRU5HSU5FX0NMQVNTX0NPUFldID0gQ09QWV9FTkdJTkVfQ0xBU1MsCi0JW0k5MTVfRU5HSU5FX0NMQVNTX1ZJREVPXSA9IFZJREVPX0RFQ09ERV9DTEFTUywKLQlbSTkxNV9FTkdJTkVfQ0xBU1NfVklERU9fRU5IQU5DRV0gPSBWSURFT19FTkhBTkNFTUVOVF9DTEFTUywKLX07Ci0KLXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKgotaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1OCBjbGFzcywgdTggaW5zdGFuY2UpCi17Ci0JaWYgKGNsYXNzID49IEFSUkFZX1NJWkUodXNlcl9jbGFzc19tYXApKQotCQlyZXR1cm4gTlVMTDsKLQotCWNsYXNzID0gdXNlcl9jbGFzc19tYXBbY2xhc3NdOwotCi0JR0VNX0JVR19PTihjbGFzcyA+IE1BWF9FTkdJTkVfQ0xBU1MpOwotCi0JaWYgKGluc3RhbmNlID4gTUFYX0VOR0lORV9JTlNUQU5DRSkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlyZXR1cm4gaTkxNS0+ZW5naW5lX2NsYXNzW2NsYXNzXVtpbnN0YW5jZV07Ci19Ci0KIC8qKgogICogaW50ZWxfZW5hYmxlX2VuZ2luZV9zdGF0cygpIC0gRW5hYmxlIGVuZ2luZSBidXN5IHRyYWNraW5nIG9uIGVuZ2luZQogICogQGVuZ2luZTogZW5naW5lIHRvIGVuYWJsZSBzdGF0cyBjb2xsZWN0aW9uCkBAIC0xNTg3LDE1ICsxNDQ5LDE5IEBAIGludCBpbnRlbF9lbmFibGVfZW5naW5lX3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl9CiAKIAlpZiAoZW5naW5lLT5zdGF0cy5lbmFibGVkKysgPT0gMCkgewotCQljb25zdCBzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0cy0+cG9ydDsKLQkJdW5zaWduZWQgaW50IG51bV9wb3J0cyA9IGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKTsKKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqIGNvbnN0ICpwb3J0OworCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKIAogCQllbmdpbmUtPnN0YXRzLmVuYWJsZWRfYXQgPSBrdGltZV9nZXQoKTsKIAogCQkvKiBYWFggc3VibWlzc2lvbiBtZXRob2Qgb2JsaXZpb3VzPyAqLwotCQl3aGlsZSAobnVtX3BvcnRzLS0gJiYgcG9ydF9pc3NldChwb3J0KSkgeworCQlmb3IgKHBvcnQgPSBleGVjbGlzdHMtPmFjdGl2ZTsgKHJxID0gKnBvcnQpOyBwb3J0KyspCiAJCQllbmdpbmUtPnN0YXRzLmFjdGl2ZSsrOwotCQkJcG9ydCsrOworCisJCWZvciAocG9ydCA9IGV4ZWNsaXN0cy0+cGVuZGluZzsgKHJxID0gKnBvcnQpOyBwb3J0KyspIHsKKwkJCS8qIEV4Y2x1ZGUgYW55IGNvbnRleHRzIGFscmVhZHkgY291bnRlZCBpbiBhY3RpdmUgKi8KKwkJCWlmICghaW50ZWxfY29udGV4dF9pbmZsaWdodF9jb3VudChycS0+aHdfY29udGV4dCkpCisJCQkJZW5naW5lLT5zdGF0cy5hY3RpdmUrKzsKIAkJfQogCiAJCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSkKQEAgLTE3MDgsNSArMTU3NCw3IEBAIGludGVsX2VuZ2luZV9maW5kX2FjdGl2ZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQorI2luY2x1ZGUgIm1vY2tfZW5naW5lLmMiCisjaW5jbHVkZSAic2VsZnRlc3RfZW5naW5lLmMiCiAjaW5jbHVkZSAic2VsZnRlc3RfZW5naW5lX2NzLmMiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKaW5kZXggYWU1YjZiYS4uNjViNWNhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKQEAgLTgsNiArOCw4IEBACiAKICNpbmNsdWRlICJpbnRlbF9lbmdpbmUuaCIKICNpbmNsdWRlICJpbnRlbF9lbmdpbmVfcG0uaCIKKyNpbmNsdWRlICJpbnRlbF9lbmdpbmVfcG9vbC5oIgorI2luY2x1ZGUgImludGVsX2d0LmgiCiAjaW5jbHVkZSAiaW50ZWxfZ3RfcG0uaCIKIAogc3RhdGljIGludCBfX2VuZ2luZV91bnBhcmsoc3RydWN0IGludGVsX3dha2VyZWYgKndmKQpAQCAtMTgsNyArMjAsNyBAQCBzdGF0aWMgaW50IF9fZW5naW5lX3VucGFyayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiAKIAlHRU1fVFJBQ0UoIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwogCi0JaW50ZWxfZ3RfcG1fZ2V0KGVuZ2luZS0+aTkxNSk7CisJaW50ZWxfZ3RfcG1fZ2V0KGVuZ2luZS0+Z3QpOwogCiAJLyogUGluIHRoZSBkZWZhdWx0IHN0YXRlIGZvciBmYXN0IHJlc2V0cyBmcm9tIGF0b21pYyBjb250ZXh0LiAqLwogCW1hcCA9IE5VTEw7CkBAIC0zNSwzOCArMzcsNTEgQEAgc3RhdGljIGludCBfX2VuZ2luZV91bnBhcmsoc3RydWN0IGludGVsX3dha2VyZWYgKndmKQogCXJldHVybiAwOwogfQogCi12b2lkIGludGVsX2VuZ2luZV9wbV9nZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorI2lmIElTX0VOQUJMRUQoQ09ORklHX0xPQ0tERVApCisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBfX3RpbWVsaW5lX21hcmtfbG9jayhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7Ci0JaW50ZWxfd2FrZXJlZl9nZXQoJmVuZ2luZS0+aTkxNS0+cnVudGltZV9wbSwgJmVuZ2luZS0+d2FrZXJlZiwgX19lbmdpbmVfdW5wYXJrKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCW11dGV4X2FjcXVpcmUoJmNlLT50aW1lbGluZS0+bXV0ZXguZGVwX21hcCwgMiwgMCwgX1RISVNfSVBfKTsKKworCXJldHVybiBmbGFnczsKIH0KIAotdm9pZCBpbnRlbF9lbmdpbmVfcGFyayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitzdGF0aWMgaW5saW5lIHZvaWQgX190aW1lbGluZV9tYXJrX3VubG9jayhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCQkJCSAgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKLQkvKgotCSAqIFdlIGFyZSBjb21taXR0ZWQgbm93IHRvIHBhcmtpbmcgdGhpcyBlbmdpbmUsIG1ha2Ugc3VyZSB0aGVyZQotCSAqIHdpbGwgYmUgbm8gbW9yZSBpbnRlcnJ1cHRzIGFycml2aW5nIGxhdGVyIGFuZCB0aGUgZW5naW5lCi0JICogaXMgdHJ1bHkgaWRsZS4KLQkgKi8KLQlpZiAod2FpdF9mb3IoaW50ZWxfZW5naW5lX2lzX2lkbGUoZW5naW5lKSwgMTApKSB7Ci0JCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2RlYnVnX3ByaW50ZXIoX19mdW5jX18pOwotCi0JCWRldl9lcnIoZW5naW5lLT5pOTE1LT5kcm0uZGV2LAotCQkJIiVzIGlzIG5vdCBpZGxlIGJlZm9yZSBwYXJraW5nXG4iLAotCQkJZW5naW5lLT5uYW1lKTsKLQkJaW50ZWxfZW5naW5lX2R1bXAoZW5naW5lLCAmcCwgTlVMTCk7Ci0JfQorCW11dGV4X3JlbGVhc2UoJmNlLT50aW1lbGluZS0+bXV0ZXguZGVwX21hcCwgMCwgX1RISVNfSVBfKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKKyNlbHNlCisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBfX3RpbWVsaW5lX21hcmtfbG9jayhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3RpbWVsaW5lX21hcmtfdW5sb2NrKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKKwkJCQkJICB1bnNpZ25lZCBsb25nIGZsYWdzKQoreworfQorCisjZW5kaWYgLyogIUlTX0VOQUJMRUQoQ09ORklHX0xPQ0tERVApICovCisKIHN0YXRpYyBib29sIHN3aXRjaF90b19rZXJuZWxfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlib29sIHJlc3VsdCA9IHRydWU7CiAKIAkvKiBBbHJlYWR5IGluc2lkZSB0aGUga2VybmVsIGNvbnRleHQsIHNhZmUgdG8gcG93ZXIgZG93bi4gKi8KIAlpZiAoZW5naW5lLT53YWtlcmVmX3NlcmlhbCA9PSBlbmdpbmUtPnNlcmlhbCkKIAkJcmV0dXJuIHRydWU7CiAKIAkvKiBHUFUgaXMgcG9pbnRpbmcgdG8gdGhlIHZvaWQsIGFzIGdvb2QgYXMgaW4gdGhlIGtlcm5lbCBjb250ZXh0LiAqLwotCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChlbmdpbmUtPmk5MTUpKQorCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZW5naW5lLT5ndCkpCiAJCXJldHVybiB0cnVlOwogCiAJLyoKQEAgLTgxLDE4ICs5NiwzMSBAQCBzdGF0aWMgYm9vbCBzd2l0Y2hfdG9fa2VybmVsX2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCSAqIHJldGlyaW5nIHRoZSBsYXN0IHJlcXVlc3QsIHRodXMgYWxsIHJpbmdzIHNob3VsZCBiZSBlbXB0eSBhbmQKIAkgKiBhbGwgdGltZWxpbmVzIGlkbGUuCiAJICovCisJZmxhZ3MgPSBfX3RpbWVsaW5lX21hcmtfbG9jayhlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKwogCXJxID0gX19pOTE1X3JlcXVlc3RfY3JlYXRlKGVuZ2luZS0+a2VybmVsX2NvbnRleHQsIEdGUF9OT1dBSVQpOwogCWlmIChJU19FUlIocnEpKQogCQkvKiBDb250ZXh0IHN3aXRjaCBmYWlsZWQsIGhvcGUgZm9yIHRoZSBiZXN0ISBNYXliZSByZXNldD8gKi8KLQkJcmV0dXJuIHRydWU7CisJCWdvdG8gb3V0X3VubG9jazsKKworCWludGVsX3RpbWVsaW5lX2VudGVyKHJxLT50aW1lbGluZSk7CiAKIAkvKiBDaGVjayBhZ2FpbiBvbiB0aGUgbmV4dCByZXRpcmVtZW50LiAqLwogCWVuZ2luZS0+d2FrZXJlZl9zZXJpYWwgPSBlbmdpbmUtPnNlcmlhbCArIDE7CisJaTkxNV9yZXF1ZXN0X2FkZF9hY3RpdmVfYmFycmllcnMocnEpOwogCi0JaTkxNV9yZXF1ZXN0X2FkZF9iYXJyaWVycyhycSk7CisJLyogSW5zdGFsbCBvdXJzZWx2ZXMgYXMgYSBwcmVlbXB0aW9uIGJhcnJpZXIgKi8KKwlycS0+c2NoZWQuYXR0ci5wcmlvcml0eSA9IEk5MTVfUFJJT1JJVFlfVU5QUkVFTVBUQUJMRTsKIAlfX2k5MTVfcmVxdWVzdF9jb21taXQocnEpOwogCi0JcmV0dXJuIGZhbHNlOworCS8qIFJlbGVhc2Ugb3VyIGV4Y2x1c2l2ZSBob2xkIG9uIHRoZSBlbmdpbmUgKi8KKwlfX2ludGVsX3dha2VyZWZfZGVmZXJfcGFyaygmZW5naW5lLT53YWtlcmVmKTsKKwlfX2k5MTVfcmVxdWVzdF9xdWV1ZShycSwgTlVMTCk7CisKKwlyZXN1bHQgPSBmYWxzZTsKK291dF91bmxvY2s6CisJX190aW1lbGluZV9tYXJrX3VubG9jayhlbmdpbmUtPmtlcm5lbF9jb250ZXh0LCBmbGFncyk7CisJcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIGludCBfX2VuZ2luZV9wYXJrKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKQEAgLTExNSw2ICsxNDMsNyBAQCBzdGF0aWMgaW50IF9fZW5naW5lX3Bhcmsoc3RydWN0IGludGVsX3dha2VyZWYgKndmKQogCUdFTV9UUkFDRSgiJXNcbiIsIGVuZ2luZS0+bmFtZSk7CiAKIAlpbnRlbF9lbmdpbmVfZGlzYXJtX2JyZWFkY3J1bWJzKGVuZ2luZSk7CisJaW50ZWxfZW5naW5lX3Bvb2xfcGFyaygmZW5naW5lLT5wb29sKTsKIAogCS8qIE11c3QgYmUgcmVzZXQgdXBvbiBpZGxpbmcsIG9yIHdlIG1heSBtaXNzIHRoZSBidXN5IHdha2V1cC4gKi8KIAlHRU1fQlVHX09OKGVuZ2luZS0+ZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5X2hpbnQgIT0gSU5UX01JTik7CkBAIC0xMjksMTYgKzE1OCwyMiBAQCBzdGF0aWMgaW50IF9fZW5naW5lX3Bhcmsoc3RydWN0IGludGVsX3dha2VyZWYgKndmKQogCiAJZW5naW5lLT5leGVjbGlzdHMubm9fcHJpb2xpc3QgPSBmYWxzZTsKIAotCWludGVsX2d0X3BtX3B1dChlbmdpbmUtPmk5MTUpOworCWludGVsX2d0X3BtX3B1dChlbmdpbmUtPmd0KTsKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBpbnRlbF9lbmdpbmVfcG1fcHV0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlpbnRlbF93YWtlcmVmX3B1dCgmZW5naW5lLT5pOTE1LT5ydW50aW1lX3BtLCAmZW5naW5lLT53YWtlcmVmLCBfX2VuZ2luZV9wYXJrKTsKLX0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfd2FrZXJlZl9vcHMgd2Zfb3BzID0geworCS5nZXQgPSBfX2VuZ2luZV91bnBhcmssCisJLnB1dCA9IF9fZW5naW5lX3BhcmssCit9OwogCiB2b2lkIGludGVsX2VuZ2luZV9pbml0X19wbShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0JaW50ZWxfd2FrZXJlZl9pbml0KCZlbmdpbmUtPndha2VyZWYpOworCXN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0gPSAmZW5naW5lLT5pOTE1LT5ydW50aW1lX3BtOworCisJaW50ZWxfd2FrZXJlZl9pbml0KCZlbmdpbmUtPndha2VyZWYsIHJwbSwgJndmX29wcyk7CiB9CisKKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKKyNpbmNsdWRlICJzZWxmdGVzdF9lbmdpbmVfcG0uYyIKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfcG0uaAppbmRleCBhMTFjODkzLi43MzljNTBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfcG0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfcG0uaApAQCAtMTAsMTggKzEwLDI2IEBACiAjaW5jbHVkZSAiaW50ZWxfZW5naW5lX3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfd2FrZXJlZi5oIgogCi1zdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKLQotdm9pZCBpbnRlbF9lbmdpbmVfcG1fZ2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Ci12b2lkIGludGVsX2VuZ2luZV9wbV9wdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKLQogc3RhdGljIGlubGluZSBib29sCi1pbnRlbF9lbmdpbmVfcG1fZ2V0X2lmX2F3YWtlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK2ludGVsX2VuZ2luZV9wbV9pc19hd2FrZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJcmV0dXJuIGludGVsX3dha2VyZWZfaXNfYWN0aXZlKCZlbmdpbmUtPndha2VyZWYpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX3BtX2dldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJaW50ZWxfd2FrZXJlZl9nZXQoJmVuZ2luZS0+d2FrZXJlZik7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9lbmdpbmVfcG1fZ2V0X2lmX2F3YWtlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlyZXR1cm4gaW50ZWxfd2FrZXJlZl9nZXRfaWZfYWN0aXZlKCZlbmdpbmUtPndha2VyZWYpOwogfQogCi12b2lkIGludGVsX2VuZ2luZV9wYXJrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CitzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX3BtX3B1dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJaW50ZWxfd2FrZXJlZl9wdXQoJmVuZ2luZS0+d2FrZXJlZik7Cit9CiAKIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfX3BtKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wb29sLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfcG9vbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjZDU0YzUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfcG9vbC5jCkBAIC0wLDAgKzEsMTc3IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE0LTIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX29iamVjdC5oIgorCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9lbmdpbmVfcG0uaCIKKyNpbmNsdWRlICJpbnRlbF9lbmdpbmVfcG9vbC5oIgorCitzdGF0aWMgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqdG9fZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbCAqcG9vbCkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHBvb2wsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MsIHBvb2wpOworfQorCitzdGF0aWMgc3RydWN0IGxpc3RfaGVhZCAqCitidWNrZXRfZm9yX3NpemUoc3RydWN0IGludGVsX2VuZ2luZV9wb29sICpwb29sLCBzaXplX3Qgc3opCit7CisJaW50IG47CisKKwkvKgorCSAqIENvbXB1dGUgYSBwb3dlci1vZi10d28gYnVja2V0LCBidXQgdGhyb3cgZXZlcnl0aGluZyBncmVhdGVyIHRoYW4KKwkgKiAxNktpQiBpbnRvIHRoZSBzYW1lIGJ1Y2tldDogaS5lLiB0aGUgYnVja2V0cyBob2xkIG9iamVjdHMgb2YKKwkgKiAoMSBwYWdlLCAyIHBhZ2VzLCA0IHBhZ2VzLCA4KyBwYWdlcykuCisJICovCisJbiA9IGZscyhzeiA+PiBQQUdFX1NISUZUKSAtIDE7CisJaWYgKG4gPj0gQVJSQVlfU0laRShwb29sLT5jYWNoZV9saXN0KSkKKwkJbiA9IEFSUkFZX1NJWkUocG9vbC0+Y2FjaGVfbGlzdCkgLSAxOworCisJcmV0dXJuICZwb29sLT5jYWNoZV9saXN0W25dOworfQorCitzdGF0aWMgdm9pZCBub2RlX2ZyZWUoc3RydWN0IGludGVsX2VuZ2luZV9wb29sX25vZGUgKm5vZGUpCit7CisJaTkxNV9nZW1fb2JqZWN0X3B1dChub2RlLT5vYmopOworCWk5MTVfYWN0aXZlX2ZpbmkoJm5vZGUtPmFjdGl2ZSk7CisJa2ZyZWUobm9kZSk7Cit9CisKK3N0YXRpYyBpbnQgcG9vbF9hY3RpdmUoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9wb29sX25vZGUgKm5vZGUgPQorCQljb250YWluZXJfb2YocmVmLCB0eXBlb2YoKm5vZGUpLCBhY3RpdmUpOworCXN0cnVjdCBkbWFfcmVzdiAqcmVzdiA9IG5vZGUtPm9iai0+YmFzZS5yZXN2OworCWludCBlcnI7CisKKwlpZiAoZG1hX3Jlc3ZfdHJ5bG9jayhyZXN2KSkgeworCQlkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZShyZXN2LCBOVUxMKTsKKwkJZG1hX3Jlc3ZfdW5sb2NrKHJlc3YpOworCX0KKworCWVyciA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMobm9kZS0+b2JqKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJLyogSGlkZSB0aGlzIHBpbm5lZCBvYmplY3QgZnJvbSB0aGUgc2hyaW5rZXIgdW50aWwgcmV0aXJlZCAqLworCWk5MTVfZ2VtX29iamVjdF9tYWtlX3Vuc2hyaW5rYWJsZShub2RlLT5vYmopOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHBvb2xfcmV0aXJlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbF9ub2RlICpub2RlID0KKwkJY29udGFpbmVyX29mKHJlZiwgdHlwZW9mKCpub2RlKSwgYWN0aXZlKTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX3Bvb2wgKnBvb2wgPSBub2RlLT5wb29sOworCXN0cnVjdCBsaXN0X2hlYWQgKmxpc3QgPSBidWNrZXRfZm9yX3NpemUocG9vbCwgbm9kZS0+b2JqLT5iYXNlLnNpemUpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlHRU1fQlVHX09OKCFpbnRlbF9lbmdpbmVfcG1faXNfYXdha2UodG9fZW5naW5lKHBvb2wpKSk7CisKKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMobm9kZS0+b2JqKTsKKworCS8qIFJldHVybiB0aGlzIG9iamVjdCB0byB0aGUgc2hyaW5rZXIgcG9vbCAqLworCWk5MTVfZ2VtX29iamVjdF9tYWtlX3B1cmdlYWJsZShub2RlLT5vYmopOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBvb2wtPmxvY2ssIGZsYWdzKTsKKwlsaXN0X2FkZCgmbm9kZS0+bGluaywgbGlzdCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9vbC0+bG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgc3RydWN0IGludGVsX2VuZ2luZV9wb29sX25vZGUgKgorbm9kZV9jcmVhdGUoc3RydWN0IGludGVsX2VuZ2luZV9wb29sICpwb29sLCBzaXplX3Qgc3opCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gdG9fZW5naW5lKHBvb2wpOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbF9ub2RlICpub2RlOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisKKwlub2RlID0ga21hbGxvYyhzaXplb2YoKm5vZGUpLAorCQkgICAgICAgR0ZQX0tFUk5FTCB8IF9fR0ZQX1JFVFJZX01BWUZBSUwgfCBfX0dGUF9OT1dBUk4pOworCWlmICghbm9kZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlub2RlLT5wb29sID0gcG9vbDsKKwlpOTE1X2FjdGl2ZV9pbml0KGVuZ2luZS0+aTkxNSwgJm5vZGUtPmFjdGl2ZSwgcG9vbF9hY3RpdmUsIHBvb2xfcmV0aXJlKTsKKworCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoZW5naW5lLT5pOTE1LCBzeik7CisJaWYgKElTX0VSUihvYmopKSB7CisJCWk5MTVfYWN0aXZlX2ZpbmkoJm5vZGUtPmFjdGl2ZSk7CisJCWtmcmVlKG5vZGUpOworCQlyZXR1cm4gRVJSX0NBU1Qob2JqKTsKKwl9CisKKwlub2RlLT5vYmogPSBvYmo7CisJcmV0dXJuIG5vZGU7Cit9CisKK3N0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbF9ub2RlICoKK2ludGVsX2VuZ2luZV9wb29sX2dldChzdHJ1Y3QgaW50ZWxfZW5naW5lX3Bvb2wgKnBvb2wsIHNpemVfdCBzaXplKQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbF9ub2RlICpub2RlOworCXN0cnVjdCBsaXN0X2hlYWQgKmxpc3Q7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0OworCisJR0VNX0JVR19PTighaW50ZWxfZW5naW5lX3BtX2lzX2F3YWtlKHRvX2VuZ2luZShwb29sKSkpOworCisJc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7CisJbGlzdCA9IGJ1Y2tldF9mb3Jfc2l6ZShwb29sLCBzaXplKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwb29sLT5sb2NrLCBmbGFncyk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShub2RlLCBsaXN0LCBsaW5rKSB7CisJCWlmIChub2RlLT5vYmotPmJhc2Uuc2l6ZSA8IHNpemUpCisJCQljb250aW51ZTsKKwkJbGlzdF9kZWwoJm5vZGUtPmxpbmspOworCQlicmVhazsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9vbC0+bG9jaywgZmxhZ3MpOworCisJaWYgKCZub2RlLT5saW5rID09IGxpc3QpIHsKKwkJbm9kZSA9IG5vZGVfY3JlYXRlKHBvb2wsIHNpemUpOworCQlpZiAoSVNfRVJSKG5vZGUpKQorCQkJcmV0dXJuIG5vZGU7CisJfQorCisJcmV0ID0gaTkxNV9hY3RpdmVfYWNxdWlyZSgmbm9kZS0+YWN0aXZlKTsKKwlpZiAocmV0KSB7CisJCW5vZGVfZnJlZShub2RlKTsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwl9CisKKwlyZXR1cm4gbm9kZTsKK30KKwordm9pZCBpbnRlbF9lbmdpbmVfcG9vbF9pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbCAqcG9vbCkKK3sKKwlpbnQgbjsKKworCXNwaW5fbG9ja19pbml0KCZwb29sLT5sb2NrKTsKKwlmb3IgKG4gPSAwOyBuIDwgQVJSQVlfU0laRShwb29sLT5jYWNoZV9saXN0KTsgbisrKQorCQlJTklUX0xJU1RfSEVBRCgmcG9vbC0+Y2FjaGVfbGlzdFtuXSk7Cit9CisKK3ZvaWQgaW50ZWxfZW5naW5lX3Bvb2xfcGFyayhzdHJ1Y3QgaW50ZWxfZW5naW5lX3Bvb2wgKnBvb2wpCit7CisJaW50IG47CisKKwlmb3IgKG4gPSAwOyBuIDwgQVJSQVlfU0laRShwb29sLT5jYWNoZV9saXN0KTsgbisrKSB7CisJCXN0cnVjdCBsaXN0X2hlYWQgKmxpc3QgPSAmcG9vbC0+Y2FjaGVfbGlzdFtuXTsKKwkJc3RydWN0IGludGVsX2VuZ2luZV9wb29sX25vZGUgKm5vZGUsICpubjsKKworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobm9kZSwgbm4sIGxpc3QsIGxpbmspCisJCQlub2RlX2ZyZWUobm9kZSk7CisKKwkJSU5JVF9MSVNUX0hFQUQobGlzdCk7CisJfQorfQorCit2b2lkIGludGVsX2VuZ2luZV9wb29sX2Zpbmkoc3RydWN0IGludGVsX2VuZ2luZV9wb29sICpwb29sKQoreworCWludCBuOworCisJZm9yIChuID0gMDsgbiA8IEFSUkFZX1NJWkUocG9vbC0+Y2FjaGVfbGlzdCk7IG4rKykKKwkJR0VNX0JVR19PTighbGlzdF9lbXB0eSgmcG9vbC0+Y2FjaGVfbGlzdFtuXSkpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3Bvb2wuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wb29sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQwNjllZgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wb29sLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE4IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBJTlRFTF9FTkdJTkVfUE9PTF9ICisjZGVmaW5lIElOVEVMX0VOR0lORV9QT09MX0gKKworI2luY2x1ZGUgImludGVsX2VuZ2luZV9wb29sX3R5cGVzLmgiCisjaW5jbHVkZSAiaTkxNV9hY3RpdmUuaCIKKyNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKKworc3RydWN0IGludGVsX2VuZ2luZV9wb29sX25vZGUgKgoraW50ZWxfZW5naW5lX3Bvb2xfZ2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbCAqcG9vbCwgc2l6ZV90IHNpemUpOworCitzdGF0aWMgaW5saW5lIGludAoraW50ZWxfZW5naW5lX3Bvb2xfbWFya19hY3RpdmUoc3RydWN0IGludGVsX2VuZ2luZV9wb29sX25vZGUgKm5vZGUsCisJCQkgICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlyZXR1cm4gaTkxNV9hY3RpdmVfcmVmKCZub2RlLT5hY3RpdmUsIHJxLT50aW1lbGluZSwgcnEpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK2ludGVsX2VuZ2luZV9wb29sX3B1dChzdHJ1Y3QgaW50ZWxfZW5naW5lX3Bvb2xfbm9kZSAqbm9kZSkKK3sKKwlpOTE1X2FjdGl2ZV9yZWxlYXNlKCZub2RlLT5hY3RpdmUpOworfQorCit2b2lkIGludGVsX2VuZ2luZV9wb29sX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9wb29sICpwb29sKTsKK3ZvaWQgaW50ZWxfZW5naW5lX3Bvb2xfcGFyayhzdHJ1Y3QgaW50ZWxfZW5naW5lX3Bvb2wgKnBvb2wpOwordm9pZCBpbnRlbF9lbmdpbmVfcG9vbF9maW5pKHN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbCAqcG9vbCk7CisKKyNlbmRpZiAvKiBJTlRFTF9FTkdJTkVfUE9PTF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfcG9vbF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3Bvb2xfdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzFlZTM2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3Bvb2xfdHlwZXMuaApAQCAtMCwwICsxLDI5IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE0LTIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIElOVEVMX0VOR0lORV9QT09MX1RZUEVTX0gKKyNkZWZpbmUgSU5URUxfRU5HSU5FX1BPT0xfVFlQRVNfSAorCisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisKKyNpbmNsdWRlICJpOTE1X2FjdGl2ZV90eXBlcy5oIgorCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKKworc3RydWN0IGludGVsX2VuZ2luZV9wb29sIHsKKwlzcGlubG9ja190IGxvY2s7CisJc3RydWN0IGxpc3RfaGVhZCBjYWNoZV9saXN0WzRdOworfTsKKworc3RydWN0IGludGVsX2VuZ2luZV9wb29sX25vZGUgeworCXN0cnVjdCBpOTE1X2FjdGl2ZSBhY3RpdmU7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7CisJc3RydWN0IGludGVsX2VuZ2luZV9wb29sICpwb29sOworfTsKKworI2VuZGlmIC8qIElOVEVMX0VOR0lORV9QT09MX1RZUEVTX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKaW5kZXggNDNlOTc1YS4uYTgyY2VhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKQEAgLTEyLDE4ICsxMiw0MCBAQAogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvbGxpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9yYnRyZWUuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKICNpbmNsdWRlICJpOTE1X2dlbS5oIgotI2luY2x1ZGUgImk5MTVfZ2VtX2JhdGNoX3Bvb2wuaCIKICNpbmNsdWRlICJpOTE1X3BtdS5oIgogI2luY2x1ZGUgImk5MTVfcHJpb2xpc3RfdHlwZXMuaCIKICNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCi0jaW5jbHVkZSAiaTkxNV90aW1lbGluZV90eXBlcy5oIgorI2luY2x1ZGUgImludGVsX2VuZ2luZV9wb29sX3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfc3NldS5oIgorI2luY2x1ZGUgImludGVsX3RpbWVsaW5lX3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfd2FrZXJlZi5oIgogI2luY2x1ZGUgImludGVsX3dvcmthcm91bmRzX3R5cGVzLmgiCiAKKy8qIExlZ2FjeSBIVyBFbmdpbmUgSUQgKi8KKworI2RlZmluZSBSQ1MwX0hXCQkwCisjZGVmaW5lIFZDUzBfSFcJCTEKKyNkZWZpbmUgQkNTMF9IVwkJMgorI2RlZmluZSBWRUNTMF9IVwkzCisjZGVmaW5lIFZDUzFfSFcJCTQKKyNkZWZpbmUgVkNTMl9IVwkJNgorI2RlZmluZSBWQ1MzX0hXCQk3CisjZGVmaW5lIFZFQ1MxX0hXCTEyCisKKy8qIEdlbjExKyBIVyBFbmdpbmUgY2xhc3MgKyBpbnN0YW5jZSAqLworI2RlZmluZSBSRU5ERVJfQ0xBU1MJCTAKKyNkZWZpbmUgVklERU9fREVDT0RFX0NMQVNTCTEKKyNkZWZpbmUgVklERU9fRU5IQU5DRU1FTlRfQ0xBU1MJMgorI2RlZmluZSBDT1BZX0VOR0lORV9DTEFTUwkzCisjZGVmaW5lIE9USEVSX0NMQVNTCQk0CisjZGVmaW5lIE1BWF9FTkdJTkVfQ0xBU1MJNAorI2RlZmluZSBNQVhfRU5HSU5FX0lOU1RBTkNFCTMKKwogI2RlZmluZSBJOTE1X01BWF9TTElDRVMJMwogI2RlZmluZSBJOTE1X01BWF9TVUJTTElDRVMgOAogCkBAIC0zNSw2ICs1Nyw3IEBAIHN0cnVjdCBkcm1faTkxNV9yZWdfdGFibGU7CiBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dDsKIHN0cnVjdCBpOTE1X3JlcXVlc3Q7CiBzdHJ1Y3QgaTkxNV9zY2hlZF9hdHRyOworc3RydWN0IGludGVsX2d0Owogc3RydWN0IGludGVsX3VuY29yZTsKIAogdHlwZWRlZiB1OCBpbnRlbF9lbmdpbmVfbWFza190OwpAQCAtNjYsMTAgKzg5LDYgQEAgc3RydWN0IGludGVsX3JpbmcgewogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCXZvaWQgKnZhZGRyOwogCi0Jc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lOwotCXN0cnVjdCBsaXN0X2hlYWQgcmVxdWVzdF9saXN0OwotCXN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX2xpbms7Ci0KIAkvKgogCSAqIEFzIHdlIGhhdmUgdHdvIHR5cGVzIG9mIHJpbmdzLCBvbmUgZ2xvYmFsIHRvIHRoZSBlbmdpbmUgdXNlZAogCSAqIGJ5IHJpbmdidWZmZXIgc3VibWlzc2lvbiBhbmQgdGhvc2UgdGhhdCBhcmUgZXhjbHVzaXZlIHRvIGEKQEAgLTE1MCw2ICsxNjksMTEgQEAgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgewogCXN0cnVjdCB0YXNrbGV0X3N0cnVjdCB0YXNrbGV0OwogCiAJLyoqCisJICogQHRpbWVyOiBraWNrIHRoZSBjdXJyZW50IGNvbnRleHQgaWYgaXRzIHRpbWVzbGljZSBleHBpcmVzCisJICovCisJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CisKKwkvKioKIAkgKiBAZGVmYXVsdF9wcmlvbGlzdDogcHJpb3JpdHkgbGlzdCBmb3IgSTkxNV9QUklPUklUWV9OT1JNQUwKIAkgKi8KIAlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCBkZWZhdWx0X3ByaW9saXN0OwpAQCAtMTcyLDUxICsxOTYsMjggQEAgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgewogCSAqLwogCXUzMiBfX2lvbWVtICpjdHJsX3JlZzsKIAotCS8qKgotCSAqIEBwb3J0OiBleGVjbGlzdCBwb3J0IHN0YXRlcwotCSAqCi0JICogRm9yIGVhY2ggaGFyZHdhcmUgRUxTUCAoRXhlY0xpc3QgU3VibWlzc2lvbiBQb3J0KSB3ZSBrZWVwCi0JICogdHJhY2sgb2YgdGhlIGxhc3QgcmVxdWVzdCBhbmQgdGhlIG51bWJlciBvZiB0aW1lcyB3ZSBzdWJtaXR0ZWQKLQkgKiB0aGF0IHBvcnQgdG8gaHcuIFdlIHRoZW4gY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgaHcgcmVwb3J0cwotCSAqIGEgY29udGV4dCBjb21wbGV0aW9uIG9yIHByZWVtcHRpb24uIEFzIG9ubHkgb25lIGNvbnRleHQgY2FuCi0JICogYmUgYWN0aXZlIG9uIGh3LCB3ZSBsaW1pdCByZXN1Ym1pc3Npb24gb2YgY29udGV4dCB0byBwb3J0WzBdLiBUaGlzCi0JICogaXMgY2FsbGVkIExpdGUgUmVzdG9yZSwgb2YgdGhlIGNvbnRleHQuCi0JICovCi0Jc3RydWN0IGV4ZWNsaXN0X3BvcnQgewotCQkvKioKLQkJICogQHJlcXVlc3RfY291bnQ6IGNvbWJpbmVkIHJlcXVlc3QgYW5kIHN1Ym1pc3Npb24gY291bnQKLQkJICovCi0JCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3RfY291bnQ7Ci0jZGVmaW5lIEVYRUNMSVNUX0NPVU5UX0JJVFMgMgotI2RlZmluZSBwb3J0X3JlcXVlc3QocCkgcHRyX21hc2tfYml0cygocCktPnJlcXVlc3RfY291bnQsIEVYRUNMSVNUX0NPVU5UX0JJVFMpCi0jZGVmaW5lIHBvcnRfY291bnQocCkgcHRyX3VubWFza19iaXRzKChwKS0+cmVxdWVzdF9jb3VudCwgRVhFQ0xJU1RfQ09VTlRfQklUUykKLSNkZWZpbmUgcG9ydF9wYWNrKHJxLCBjb3VudCkgcHRyX3BhY2tfYml0cyhycSwgY291bnQsIEVYRUNMSVNUX0NPVU5UX0JJVFMpCi0jZGVmaW5lIHBvcnRfdW5wYWNrKHAsIGNvdW50KSBwdHJfdW5wYWNrX2JpdHMoKHApLT5yZXF1ZXN0X2NvdW50LCBjb3VudCwgRVhFQ0xJU1RfQ09VTlRfQklUUykKLSNkZWZpbmUgcG9ydF9zZXQocCwgcGFja2VkKSAoKHApLT5yZXF1ZXN0X2NvdW50ID0gKHBhY2tlZCkpCi0jZGVmaW5lIHBvcnRfaXNzZXQocCkgKChwKS0+cmVxdWVzdF9jb3VudCkKLSNkZWZpbmUgcG9ydF9pbmRleChwLCBleGVjbGlzdHMpICgocCkgLSAoZXhlY2xpc3RzKS0+cG9ydCkKLQotCQkvKioKLQkJICogQGNvbnRleHRfaWQ6IGNvbnRleHQgSUQgZm9yIHBvcnQKLQkJICovCi0JCUdFTV9ERUJVR19ERUNMKHUzMiBjb250ZXh0X2lkKTsKLQogI2RlZmluZSBFWEVDTElTVF9NQVhfUE9SVFMgMgotCX0gcG9ydFtFWEVDTElTVF9NQVhfUE9SVFNdOwotCiAJLyoqCi0JICogQGFjdGl2ZTogaXMgdGhlIEhXIGFjdGl2ZT8gV2UgY29uc2lkZXIgdGhlIEhXIGFzIGFjdGl2ZSBhZnRlcgotCSAqIHN1Ym1pdHRpbmcgYW55IGNvbnRleHQgZm9yIGV4ZWN1dGlvbiBhbmQgdW50aWwgd2UgaGF2ZSBzZWVuIHRoZQotCSAqIGxhc3QgY29udGV4dCBjb21wbGV0aW9uIGV2ZW50LiBBZnRlciB0aGF0LCB3ZSBkbyBub3QgZXhwZWN0IGFueQotCSAqIG1vcmUgZXZlbnRzIHVudGlsIHdlIHN1Ym1pdCwgYW5kIHNvIGNhbiBwYXJrIHRoZSBIVy4KLQkgKgotCSAqIEFzIHdlIGhhdmUgYSBzbWFsbCBudW1iZXIgb2YgZGlmZmVyZW50IHNvdXJjZXMgZnJvbSB3aGljaCB3ZSBmZWVkCi0JICogdGhlIEhXLCB3ZSB0cmFjayB0aGUgc3RhdGUgb2YgZWFjaCBpbnNpZGUgYSBzaW5nbGUgYml0ZmllbGQuCisJICogQGFjdGl2ZTogdGhlIGN1cnJlbnRseSBrbm93biBjb250ZXh0IGV4ZWN1dGluZyBvbiBIVwogCSAqLwotCXVuc2lnbmVkIGludCBhY3RpdmU7Ci0jZGVmaW5lIEVYRUNMSVNUU19BQ1RJVkVfVVNFUiAwCi0jZGVmaW5lIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCAxCi0jZGVmaW5lIEVYRUNMSVNUU19BQ1RJVkVfSFdBQ0sgMgorCXN0cnVjdCBpOTE1X3JlcXVlc3QgKiBjb25zdCAqYWN0aXZlOworCS8qKgorCSAqIEBpbmZsaWdodDogdGhlIHNldCBvZiBjb250ZXh0cyBzdWJtaXR0ZWQgYW5kIGFja25vd2xlZ2VkIGJ5IEhXCisJICoKKwkgKiBUaGUgc2V0IG9mIGluZmxpZ2h0IGNvbnRleHRzIGlzIG1hbmFnZWQgYnkgcmVhZGluZyBDUyBldmVudHMKKwkgKiBmcm9tIHRoZSBIVy4gT24gYSBjb250ZXh0LXN3aXRjaCBldmVudCAobm90IHByZWVtcHRpb24pLCB3ZQorCSAqIGtub3cgdGhlIEhXIGhhcyB0cmFuc2l0aW9uZWQgZnJvbSBwb3J0MCB0byBwb3J0MSwgYW5kIHdlCisJICogYWR2YW5jZSBvdXIgaW5mbGlnaHQvYWN0aXZlIHRyYWNraW5nIGFjY29yZGluZ2x5LgorCSAqLworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKmluZmxpZ2h0W0VYRUNMSVNUX01BWF9QT1JUUyArIDEgLyogc2VudGluZWwgKi9dOworCS8qKgorCSAqIEBwZW5kaW5nOiB0aGUgbmV4dCBzZXQgb2YgY29udGV4dHMgc3VibWl0dGVkIHRvIEVMU1AKKwkgKgorCSAqIFdlIHN0b3JlIHRoZSBhcnJheSBvZiBjb250ZXh0cyB0aGF0IHdlIHN1Ym1pdCB0byBIVyAodmlhIEVMU1ApIGFuZAorCSAqIHByb21vdGUgdGhlbSB0byB0aGUgaW5mbGlnaHQgYXJyYXkgb25jZSBIVyBoYXMgc2lnbmFsZWQgdGhlCisJICogcHJlZW1wdGlvbiBvciBpZGxlLXRvLWFjdGl2ZSBldmVudC4KKwkgKi8KKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpwZW5kaW5nW0VYRUNMSVNUX01BWF9QT1JUUyArIDFdOwogCiAJLyoqCiAJICogQHBvcnRfbWFzazogbnVtYmVyIG9mIGV4ZWNsaXN0IHBvcnRzIC0gMQpAQCAtMjI0LDYgKzIyNSwxNiBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyB7CiAJdW5zaWduZWQgaW50IHBvcnRfbWFzazsKIAogCS8qKgorCSAqIEBzd2l0Y2hfcHJpb3JpdHlfaGludDogU2Vjb25kIGNvbnRleHQgcHJpb3JpdHkuCisJICoKKwkgKiBXZSBzdWJtaXQgbXVsdGlwbGUgY29udGV4dHMgdG8gdGhlIEhXIHNpbXVsdGFuZW91c2x5IGFuZCB3b3VsZAorCSAqIGxpa2UgdG8gb2NjYXNpb25hbGx5IHN3aXRjaCBiZXR3ZWVuIHRoZW0gdG8gZW11bGF0ZSB0aW1lc2xpY2luZy4KKwkgKiBUbyBrbm93IHdoZW4gdGltZXNsaWNpbmcgaXMgc3VpdGFibGUsIHdlIHRyYWNrIHRoZSBwcmlvcml0eSBvZgorCSAqIHRoZSBjb250ZXh0IHN1Ym1pdHRlZCBzZWNvbmQuCisJICovCisJaW50IHN3aXRjaF9wcmlvcml0eV9oaW50OworCisJLyoqCiAJICogQHF1ZXVlX3ByaW9yaXR5X2hpbnQ6IEhpZ2hlc3QgcGVuZGluZyBwcmlvcml0eS4KIAkgKgogCSAqIFdoZW4gd2UgYWRkIHJlcXVlc3RzIGludG8gdGhlIHF1ZXVlLCBvciBhZGp1c3QgdGhlIHByaW9yaXR5IG9mCkBAIC0yNTgsMTEgKzI2OSw2IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzIHsKIAl1MzIgKmNzYl9zdGF0dXM7CiAKIAkvKioKLQkgKiBAcHJlZW1wdF9jb21wbGV0ZV9zdGF0dXM6IGV4cGVjdGVkIENTQiB1cG9uIGNvbXBsZXRpbmcgcHJlZW1wdGlvbgotCSAqLwotCXUzMiBwcmVlbXB0X2NvbXBsZXRlX3N0YXR1czsKLQotCS8qKgogCSAqIEBjc2Jfc2l6ZTogY29udGV4dCBzdGF0dXMgYnVmZmVyIEZJRk8gc2l6ZQogCSAqLwogCXU4IGNzYl9zaXplOwpAQCAtMjc5LDI2ICsyODUsMzIgQEAgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgewogCiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0OwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZTsKIAljaGFyIG5hbWVbSU5URUxfRU5HSU5FX0NTX01BWF9OQU1FXTsKIAogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGxlZ2FjeV9pZHg7CisKIAl1bnNpZ25lZCBpbnQgaHdfaWQ7CiAJdW5zaWduZWQgaW50IGd1Y19pZDsKLQlpbnRlbF9lbmdpbmVfbWFza190IG1hc2s7CiAKLQl1OCB1YWJpX2NsYXNzOworCWludGVsX2VuZ2luZV9tYXNrX3QgbWFzazsKIAogCXU4IGNsYXNzOwogCXU4IGluc3RhbmNlOworCisJdTggdWFiaV9jbGFzczsKKwl1OCB1YWJpX2luc3RhbmNlOworCiAJdTMyIGNvbnRleHRfc2l6ZTsKIAl1MzIgbW1pb19iYXNlOwogCiAJdTMyIHVhYmlfY2FwYWJpbGl0aWVzOwogCi0Jc3RydWN0IGludGVsX3NzZXUgc3NldTsKKwlzdHJ1Y3QgcmJfbm9kZSB1YWJpX25vZGU7CiAKLQlzdHJ1Y3QgaW50ZWxfcmluZyAqYnVmZmVyOworCXN0cnVjdCBpbnRlbF9zc2V1IHNzZXU7CiAKIAlzdHJ1Y3QgewogCQlzcGlubG9ja190IGxvY2s7CkBAIC0zMDgsNyArMzIwLDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJc3RydWN0IGxsaXN0X2hlYWQgYmFycmllcl90YXNrczsKIAogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICprZXJuZWxfY29udGV4dDsgLyogcGlubmVkICovCi0Jc3RydWN0IGludGVsX2NvbnRleHQgKnByZWVtcHRfY29udGV4dDsgLyogcGlubmVkOyBvcHRpb25hbCAqLwogCiAJaW50ZWxfZW5naW5lX21hc2tfdCBzYXR1cmF0ZWQ7IC8qIHN1Ym1pdHRpbmcgc2VtYXBob3JlcyB0b28gbGF0ZT8gKi8KIApAQCAtMzE5LDYgKzMzMCwxMSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZGVmYXVsdF9zdGF0ZTsKIAl2b2lkICpwaW5uZWRfZGVmYXVsdF9zdGF0ZTsKIAorCXN0cnVjdCB7CisJCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOworCQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lOworCX0gbGVnYWN5OworCiAJLyogUmF0aGVyIHRoYW4gaGF2ZSBldmVyeSBjbGllbnQgd2FpdCB1cG9uIGFsbCB1c2VyIGludGVycnVwdHMsCiAJICogd2l0aCB0aGUgaGVyZCB3YWtpbmcgYWZ0ZXIgZXZlcnkgaW50ZXJydXB0IGFuZCBlYWNoIGRvaW5nIHRoZQogCSAqIGhlYXZ5d2VpZ2h0IHNlcW5vIGRhbmNlLCB3ZSBkZWxlZ2F0ZSB0aGUgdGFzayAob2YgYmVpbmcgdGhlCkBAIC0zNzUsNyArMzkxLDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJICogd2hlbiB0aGUgY29tbWFuZCBwYXJzZXIgaXMgZW5hYmxlZC4gUHJldmVudHMgdGhlIGNsaWVudCBmcm9tCiAJICogbW9kaWZ5aW5nIHRoZSBiYXRjaCBjb250ZW50cyBhZnRlciBzb2Z0d2FyZSBwYXJzaW5nLgogCSAqLwotCXN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sIGJhdGNoX3Bvb2w7CisJc3RydWN0IGludGVsX2VuZ2luZV9wb29sIHBvb2w7CiAKIAlzdHJ1Y3QgaW50ZWxfaHdfc3RhdHVzX3BhZ2Ugc3RhdHVzX3BhZ2U7CiAJc3RydWN0IGk5MTVfY3R4X3dvcmthcm91bmRzIHdhX2N0eDsKQEAgLTQwNCw3ICs0MjAsNiBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY29udGV4dF9vcHMgKmNvcHM7CiAKIAlpbnQJCSgqcmVxdWVzdF9hbGxvYykoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpOwotCWludAkJKCppbml0X2NvbnRleHQpKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKTsKIAogCWludAkJKCplbWl0X2ZsdXNoKShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIgbW9kZSk7CiAjZGVmaW5lIEVNSVRfSU5WQUxJREFURQlCSVQoMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV91c2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdXNlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3Y2Q1ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdXNlci5jCkBAIC0wLDAgKzEsMzAzIEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0X3NvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9sbGlzdC5oPgorCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9lbmdpbmUuaCIKKyNpbmNsdWRlICJpbnRlbF9lbmdpbmVfdXNlci5oIgorCitzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoKK2ludGVsX2VuZ2luZV9sb29rdXBfdXNlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTggY2xhc3MsIHU4IGluc3RhbmNlKQoreworCXN0cnVjdCByYl9ub2RlICpwID0gaTkxNS0+dWFiaV9lbmdpbmVzLnJiX25vZGU7CisKKwl3aGlsZSAocCkgeworCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICppdCA9CisJCQlyYl9lbnRyeShwLCB0eXBlb2YoKml0KSwgdWFiaV9ub2RlKTsKKworCQlpZiAoY2xhc3MgPCBpdC0+dWFiaV9jbGFzcykKKwkJCXAgPSBwLT5yYl9sZWZ0OworCQllbHNlIGlmIChjbGFzcyA+IGl0LT51YWJpX2NsYXNzIHx8CisJCQkgaW5zdGFuY2UgPiBpdC0+dWFiaV9pbnN0YW5jZSkKKwkJCXAgPSBwLT5yYl9yaWdodDsKKwkJZWxzZSBpZiAoaW5zdGFuY2UgPCBpdC0+dWFiaV9pbnN0YW5jZSkKKwkJCXAgPSBwLT5yYl9sZWZ0OworCQllbHNlCisJCQlyZXR1cm4gaXQ7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKK3ZvaWQgaW50ZWxfZW5naW5lX2FkZF91c2VyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlsbGlzdF9hZGQoKHN0cnVjdCBsbGlzdF9ub2RlICopJmVuZ2luZS0+dWFiaV9ub2RlLAorCQkgIChzdHJ1Y3QgbGxpc3RfaGVhZCAqKSZlbmdpbmUtPmk5MTUtPnVhYmlfZW5naW5lcyk7Cit9CisKK3N0YXRpYyBjb25zdCB1OCB1YWJpX2NsYXNzZXNbXSA9IHsKKwlbUkVOREVSX0NMQVNTXSA9IEk5MTVfRU5HSU5FX0NMQVNTX1JFTkRFUiwKKwlbQ09QWV9FTkdJTkVfQ0xBU1NdID0gSTkxNV9FTkdJTkVfQ0xBU1NfQ09QWSwKKwlbVklERU9fREVDT0RFX0NMQVNTXSA9IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPLAorCVtWSURFT19FTkhBTkNFTUVOVF9DTEFTU10gPSBJOTE1X0VOR0lORV9DTEFTU19WSURFT19FTkhBTkNFLAorfTsKKworc3RhdGljIGludCBlbmdpbmVfY21wKHZvaWQgKnByaXYsIHN0cnVjdCBsaXN0X2hlYWQgKkEsIHN0cnVjdCBsaXN0X2hlYWQgKkIpCit7CisJY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqYSA9CisJCWNvbnRhaW5lcl9vZigoc3RydWN0IHJiX25vZGUgKilBLCB0eXBlb2YoKmEpLCB1YWJpX25vZGUpOworCWNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmIgPQorCQljb250YWluZXJfb2YoKHN0cnVjdCByYl9ub2RlICopQiwgdHlwZW9mKCpiKSwgdWFiaV9ub2RlKTsKKworCWlmICh1YWJpX2NsYXNzZXNbYS0+Y2xhc3NdIDwgdWFiaV9jbGFzc2VzW2ItPmNsYXNzXSkKKwkJcmV0dXJuIC0xOworCWlmICh1YWJpX2NsYXNzZXNbYS0+Y2xhc3NdID4gdWFiaV9jbGFzc2VzW2ItPmNsYXNzXSkKKwkJcmV0dXJuIDE7CisKKwlpZiAoYS0+aW5zdGFuY2UgPCBiLT5pbnN0YW5jZSkKKwkJcmV0dXJuIC0xOworCWlmIChhLT5pbnN0YW5jZSA+IGItPmluc3RhbmNlKQorCQlyZXR1cm4gMTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGxsaXN0X25vZGUgKmdldF9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCXJldHVybiBsbGlzdF9kZWxfYWxsKChzdHJ1Y3QgbGxpc3RfaGVhZCAqKSZpOTE1LT51YWJpX2VuZ2luZXMpOworfQorCitzdGF0aWMgdm9pZCBzb3J0X2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgc3RydWN0IGxpc3RfaGVhZCAqZW5naW5lcykKK3sKKwlzdHJ1Y3QgbGxpc3Rfbm9kZSAqcG9zLCAqbmV4dDsKKworCWxsaXN0X2Zvcl9lYWNoX3NhZmUocG9zLCBuZXh0LCBnZXRfZW5naW5lcyhpOTE1KSkgeworCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQorCQkJY29udGFpbmVyX29mKChzdHJ1Y3QgcmJfbm9kZSAqKXBvcywgdHlwZW9mKCplbmdpbmUpLAorCQkJCSAgICAgdWFiaV9ub2RlKTsKKwkJbGlzdF9hZGQoKHN0cnVjdCBsaXN0X2hlYWQgKikmZW5naW5lLT51YWJpX25vZGUsIGVuZ2luZXMpOworCX0KKwlsaXN0X3NvcnQoTlVMTCwgZW5naW5lcywgZW5naW5lX2NtcCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9zY2hlZHVsZXJfY2FwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IHsKKwkJdTggZW5naW5lOworCQl1OCBzY2hlZDsKKwl9IG1hcFtdID0geworI2RlZmluZSBNQVAoeCwgeSkgeyBpbG9nMihJOTE1X0VOR0lORV8jI3gpLCBpbG9nMihJOTE1X1NDSEVEVUxFUl9DQVBfIyN5KSB9CisJCU1BUChIQVNfUFJFRU1QVElPTiwgUFJFRU1QVElPTiksCisJCU1BUChIQVNfU0VNQVBIT1JFUywgU0VNQVBIT1JFUyksCisJCU1BUChTVVBQT1JUU19TVEFUUywgRU5HSU5FX0JVU1lfU1RBVFMpLAorI3VuZGVmIE1BUAorCX07CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXUzMiBlbmFibGVkLCBkaXNhYmxlZDsKKworCWVuYWJsZWQgPSAwOworCWRpc2FibGVkID0gMDsKKwlmb3JfZWFjaF91YWJpX2VuZ2luZShlbmdpbmUsIGk5MTUpIHsgLyogYWxsIGVuZ2luZXMgbXVzdCBhZ3JlZSEgKi8KKwkJaW50IGk7CisKKwkJaWYgKGVuZ2luZS0+c2NoZWR1bGUpCisJCQllbmFibGVkIHw9IChJOTE1X1NDSEVEVUxFUl9DQVBfRU5BQkxFRCB8CisJCQkJICAgIEk5MTVfU0NIRURVTEVSX0NBUF9QUklPUklUWSk7CisJCWVsc2UKKwkJCWRpc2FibGVkIHw9IChJOTE1X1NDSEVEVUxFUl9DQVBfRU5BQkxFRCB8CisJCQkJICAgICBJOTE1X1NDSEVEVUxFUl9DQVBfUFJJT1JJVFkpOworCisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG1hcCk7IGkrKykgeworCQkJaWYgKGVuZ2luZS0+ZmxhZ3MgJiBCSVQobWFwW2ldLmVuZ2luZSkpCisJCQkJZW5hYmxlZCB8PSBCSVQobWFwW2ldLnNjaGVkKTsKKwkJCWVsc2UKKwkJCQlkaXNhYmxlZCB8PSBCSVQobWFwW2ldLnNjaGVkKTsKKwkJfQorCX0KKworCWk5MTUtPmNhcHMuc2NoZWR1bGVyID0gZW5hYmxlZCAmIH5kaXNhYmxlZDsKKwlpZiAoIShpOTE1LT5jYXBzLnNjaGVkdWxlciAmIEk5MTVfU0NIRURVTEVSX0NBUF9FTkFCTEVEKSkKKwkJaTkxNS0+Y2Fwcy5zY2hlZHVsZXIgPSAwOworfQorCitjb25zdCBjaGFyICppbnRlbF9lbmdpbmVfY2xhc3NfcmVwcih1OCBjbGFzcykKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhYmlfbmFtZXNbXSA9IHsKKwkJW1JFTkRFUl9DTEFTU10gPSAicmNzIiwKKwkJW0NPUFlfRU5HSU5FX0NMQVNTXSA9ICJiY3MiLAorCQlbVklERU9fREVDT0RFX0NMQVNTXSA9ICJ2Y3MiLAorCQlbVklERU9fRU5IQU5DRU1FTlRfQ0xBU1NdID0gInZlY3MiLAorCX07CisKKwlpZiAoY2xhc3MgPj0gQVJSQVlfU0laRSh1YWJpX25hbWVzKSB8fCAhdWFiaV9uYW1lc1tjbGFzc10pCisJCXJldHVybiAieHh4IjsKKworCXJldHVybiB1YWJpX25hbWVzW2NsYXNzXTsKK30KKworc3RydWN0IGxlZ2FjeV9yaW5nIHsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0OworCXU4IGNsYXNzOworCXU4IGluc3RhbmNlOworfTsKKworc3RhdGljIGludCBsZWdhY3lfcmluZ19pZHgoY29uc3Qgc3RydWN0IGxlZ2FjeV9yaW5nICpyaW5nKQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgeworCQl1OCBiYXNlLCBtYXg7CisJfSBtYXBbXSA9IHsKKwkJW1JFTkRFUl9DTEFTU10gPSB7IFJDUzAsIDEgfSwKKwkJW0NPUFlfRU5HSU5FX0NMQVNTXSA9IHsgQkNTMCwgMSB9LAorCQlbVklERU9fREVDT0RFX0NMQVNTXSA9IHsgVkNTMCwgSTkxNV9NQVhfVkNTIH0sCisJCVtWSURFT19FTkhBTkNFTUVOVF9DTEFTU10gPSB7IFZFQ1MwLCBJOTE1X01BWF9WRUNTIH0sCisJfTsKKworCWlmIChHRU1fREVCVUdfV0FSTl9PTihyaW5nLT5jbGFzcyA+PSBBUlJBWV9TSVpFKG1hcCkpKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoR0VNX0RFQlVHX1dBUk5fT04ocmluZy0+aW5zdGFuY2UgPj0gbWFwW3JpbmctPmNsYXNzXS5tYXgpKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gbWFwW3JpbmctPmNsYXNzXS5iYXNlICsgcmluZy0+aW5zdGFuY2U7Cit9CisKK3N0YXRpYyB2b2lkIGFkZF9sZWdhY3lfcmluZyhzdHJ1Y3QgbGVnYWN5X3JpbmcgKnJpbmcsCisJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCWludCBpZHg7CisKKwlpZiAoZW5naW5lLT5ndCAhPSByaW5nLT5ndCB8fCBlbmdpbmUtPmNsYXNzICE9IHJpbmctPmNsYXNzKSB7CisJCXJpbmctPmd0ID0gZW5naW5lLT5ndDsKKwkJcmluZy0+Y2xhc3MgPSBlbmdpbmUtPmNsYXNzOworCQlyaW5nLT5pbnN0YW5jZSA9IDA7CisJfQorCisJaWR4ID0gbGVnYWN5X3JpbmdfaWR4KHJpbmcpOworCWlmICh1bmxpa2VseShpZHggPT0gLTEpKQorCQlyZXR1cm47CisKKwlHRU1fQlVHX09OKGlkeCA+PSBBUlJBWV9TSVpFKHJpbmctPmd0LT5lbmdpbmUpKTsKKwlyaW5nLT5ndC0+ZW5naW5lW2lkeF0gPSBlbmdpbmU7CisJcmluZy0+aW5zdGFuY2UrKzsKKworCWVuZ2luZS0+bGVnYWN5X2lkeCA9IGlkeDsKK30KKwordm9pZCBpbnRlbF9lbmdpbmVzX2RyaXZlcl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzdHJ1Y3QgbGVnYWN5X3JpbmcgcmluZyA9IHt9OworCXU4IHVhYmlfaW5zdGFuY2VzWzRdID0ge307CisJc3RydWN0IGxpc3RfaGVhZCAqaXQsICpuZXh0OworCXN0cnVjdCByYl9ub2RlICoqcCwgKnByZXY7CisJTElTVF9IRUFEKGVuZ2luZXMpOworCisJc29ydF9lbmdpbmVzKGk5MTUsICZlbmdpbmVzKTsKKworCXByZXYgPSBOVUxMOworCXAgPSAmaTkxNS0+dWFiaV9lbmdpbmVzLnJiX25vZGU7CisJbGlzdF9mb3JfZWFjaF9zYWZlKGl0LCBuZXh0LCAmZW5naW5lcykgeworCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQorCQkJY29udGFpbmVyX29mKChzdHJ1Y3QgcmJfbm9kZSAqKWl0LCB0eXBlb2YoKmVuZ2luZSksCisJCQkJICAgICB1YWJpX25vZGUpOworCQljaGFyIG9sZFtzaXplb2YoZW5naW5lLT5uYW1lKV07CisKKwkJR0VNX0JVR19PTihlbmdpbmUtPmNsYXNzID49IEFSUkFZX1NJWkUodWFiaV9jbGFzc2VzKSk7CisJCWVuZ2luZS0+dWFiaV9jbGFzcyA9IHVhYmlfY2xhc3Nlc1tlbmdpbmUtPmNsYXNzXTsKKworCQlHRU1fQlVHX09OKGVuZ2luZS0+dWFiaV9jbGFzcyA+PSBBUlJBWV9TSVpFKHVhYmlfaW5zdGFuY2VzKSk7CisJCWVuZ2luZS0+dWFiaV9pbnN0YW5jZSA9IHVhYmlfaW5zdGFuY2VzW2VuZ2luZS0+dWFiaV9jbGFzc10rKzsKKworCQkvKiBSZXBsYWNlIHRoZSBpbnRlcm5hbCBuYW1lIHdpdGggdGhlIGZpbmFsIHVzZXIgZmFjaW5nIG5hbWUgKi8KKwkJbWVtY3B5KG9sZCwgZW5naW5lLT5uYW1lLCBzaXplb2YoZW5naW5lLT5uYW1lKSk7CisJCXNjbnByaW50ZihlbmdpbmUtPm5hbWUsIHNpemVvZihlbmdpbmUtPm5hbWUpLCAiJXMldSIsCisJCQkgIGludGVsX2VuZ2luZV9jbGFzc19yZXByKGVuZ2luZS0+Y2xhc3MpLAorCQkJICBlbmdpbmUtPnVhYmlfaW5zdGFuY2UpOworCQlEUk1fREVCVUdfRFJJVkVSKCJyZW5hbWVkICVzIHRvICVzXG4iLCBvbGQsIGVuZ2luZS0+bmFtZSk7CisKKwkJcmJfbGlua19ub2RlKCZlbmdpbmUtPnVhYmlfbm9kZSwgcHJldiwgcCk7CisJCXJiX2luc2VydF9jb2xvcigmZW5naW5lLT51YWJpX25vZGUsICZpOTE1LT51YWJpX2VuZ2luZXMpOworCisJCUdFTV9CVUdfT04oaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKGk5MTUsCisJCQkJCQkgICAgZW5naW5lLT51YWJpX2NsYXNzLAorCQkJCQkJICAgIGVuZ2luZS0+dWFiaV9pbnN0YW5jZSkgIT0gZW5naW5lKTsKKworCQkvKiBGaXggdXAgdGhlIG1hcHBpbmcgdG8gbWF0Y2ggZGVmYXVsdCBleGVjYnVmOjp1c2VyX21hcFtdICovCisJCWFkZF9sZWdhY3lfcmluZygmcmluZywgZW5naW5lKTsKKworCQlwcmV2ID0gJmVuZ2luZS0+dWFiaV9ub2RlOworCQlwID0gJnByZXYtPnJiX3JpZ2h0OworCX0KKworCWlmIChJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVFMpICYmCisJICAgIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dFTSkpIHsKKwkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCQl1bnNpZ25lZCBpbnQgaXNvbGF0aW9uOworCQlpbnQgY2xhc3MsIGluc3Q7CisJCWludCBlcnJvcnMgPSAwOworCisJCWZvciAoY2xhc3MgPSAwOyBjbGFzcyA8IEFSUkFZX1NJWkUodWFiaV9pbnN0YW5jZXMpOyBjbGFzcysrKSB7CisJCQlmb3IgKGluc3QgPSAwOyBpbnN0IDwgdWFiaV9pbnN0YW5jZXNbY2xhc3NdOyBpbnN0KyspIHsKKwkJCQllbmdpbmUgPSBpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoaTkxNSwKKwkJCQkJCQkJICBjbGFzcywgaW5zdCk7CisJCQkJaWYgKCFlbmdpbmUpIHsKKwkJCQkJcHJfZXJyKCJVQUJJIGVuZ2luZSBub3QgZm91bmQgZm9yIHsgY2xhc3M6JWQsIGluc3RhbmNlOiVkIH1cbiIsCisJCQkJCSAgICAgICBjbGFzcywgaW5zdCk7CisJCQkJCWVycm9ycysrOworCQkJCQljb250aW51ZTsKKwkJCQl9CisKKwkJCQlpZiAoZW5naW5lLT51YWJpX2NsYXNzICE9IGNsYXNzIHx8CisJCQkJICAgIGVuZ2luZS0+dWFiaV9pbnN0YW5jZSAhPSBpbnN0KSB7CisJCQkJCXByX2VycigiV3JvbmcgVUFCSSBlbmdpbmU6JXMgeyBjbGFzczolZCwgaW5zdGFuY2U6JWQgfSBmb3VuZCBmb3IgeyBjbGFzczolZCwgaW5zdGFuY2U6JWQgfVxuIiwKKwkJCQkJICAgICAgIGVuZ2luZS0+bmFtZSwKKwkJCQkJICAgICAgIGVuZ2luZS0+dWFiaV9jbGFzcywKKwkJCQkJICAgICAgIGVuZ2luZS0+dWFiaV9pbnN0YW5jZSwKKwkJCQkJICAgICAgIGNsYXNzLCBpbnN0KTsKKwkJCQkJZXJyb3JzKys7CisJCQkJCWNvbnRpbnVlOworCQkJCX0KKwkJCX0KKwkJfQorCisJCS8qCisJCSAqIE1ha2Ugc3VyZSB0aGF0IGNsYXNzZXMgd2l0aCBtdWx0aXBsZSBlbmdpbmUgaW5zdGFuY2VzIGFsbAorCQkgKiBzaGFyZSB0aGUgc2FtZSBiYXNpYyBjb25maWd1cmF0aW9uLgorCQkgKi8KKwkJaXNvbGF0aW9uID0gaW50ZWxfZW5naW5lc19oYXNfY29udGV4dF9pc29sYXRpb24oaTkxNSk7CisJCWZvcl9lYWNoX3VhYmlfZW5naW5lKGVuZ2luZSwgaTkxNSkgeworCQkJdW5zaWduZWQgaW50IGJpdCA9IEJJVChlbmdpbmUtPnVhYmlfY2xhc3MpOworCQkJdW5zaWduZWQgaW50IGV4cGVjdGVkID0gZW5naW5lLT5kZWZhdWx0X3N0YXRlID8gYml0IDogMDsKKworCQkJaWYgKChpc29sYXRpb24gJiBiaXQpICE9IGV4cGVjdGVkKSB7CisJCQkJcHJfZXJyKCJtaXNtYXRjaGluZyBkZWZhdWx0IGNvbnRleHQgc3RhdGUgZm9yIGNsYXNzICVkIG9uIGVuZ2luZSAlc1xuIiwKKwkJCQkgICAgICAgZW5naW5lLT51YWJpX2NsYXNzLCBlbmdpbmUtPm5hbWUpOworCQkJCWVycm9ycysrOworCQkJfQorCQl9CisKKwkJaWYgKFdBUk4oZXJyb3JzLCAiSW52YWxpZCBVQUJJIGVuZ2luZSBtYXBwaW5nIGZvdW5kIikpCisJCQlpOTE1LT51YWJpX2VuZ2luZXMgPSBSQl9ST09UOworCX0KKworCXNldF9zY2hlZHVsZXJfY2FwcyhpOTE1KTsKK30KKwordW5zaWduZWQgaW50IGludGVsX2VuZ2luZXNfaGFzX2NvbnRleHRfaXNvbGF0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwl1bnNpZ25lZCBpbnQgd2hpY2g7CisKKwl3aGljaCA9IDA7CisJZm9yX2VhY2hfdWFiaV9lbmdpbmUoZW5naW5lLCBpOTE1KQorCQlpZiAoZW5naW5lLT5kZWZhdWx0X3N0YXRlKQorCQkJd2hpY2ggfD0gQklUKGVuZ2luZS0+dWFiaV9jbGFzcyk7CisKKwlyZXR1cm4gd2hpY2g7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdXNlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3VzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODQ1ZWExCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3VzZXIuaApAQCAtMCwwICsxLDI1IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBJTlRFTF9FTkdJTkVfVVNFUl9ICisjZGVmaW5lIElOVEVMX0VOR0lORV9VU0VSX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworc3RydWN0IGludGVsX2VuZ2luZV9jczsKKworc3RydWN0IGludGVsX2VuZ2luZV9jcyAqCitpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHU4IGNsYXNzLCB1OCBpbnN0YW5jZSk7CisKK3Vuc2lnbmVkIGludCBpbnRlbF9lbmdpbmVzX2hhc19jb250ZXh0X2lzb2xhdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CisKK3ZvaWQgaW50ZWxfZW5naW5lX2FkZF91c2VyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cit2b2lkIGludGVsX2VuZ2luZXNfZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKKworY29uc3QgY2hhciAqaW50ZWxfZW5naW5lX2NsYXNzX3JlcHIodTggY2xhc3MpOworCisjZW5kaWYgLyogSU5URUxfRU5HSU5FX1VTRVJfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaAppbmRleCBlZWMzMWUzLi44NmUwMGEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaApAQCAtOCw2ICs4LDEzIEBACiAjZGVmaW5lIF9JTlRFTF9HUFVfQ09NTUFORFNfSF8KIAogLyoKKyAqIFRhcmdldCBhZGRyZXNzIGFsaWdubWVudHMgcmVxdWlyZWQgZm9yIEdQVSBhY2Nlc3MgZS5nLgorICogTUlfU1RPUkVfRFdPUkRfSU1NLgorICovCisjZGVmaW5lIGFsaWdub2ZfZHdvcmQgNAorI2RlZmluZSBhbGlnbm9mX3F3b3JkIDgKKworLyoKICAqIEluc3RydWN0aW9uIGZpZWxkIGRlZmluaXRpb25zIHVzZWQgYnkgdGhlIGNvbW1hbmQgcGFyc2VyCiAgKi8KICNkZWZpbmUgSU5TVFJfQ0xJRU5UX1NISUZUICAgICAgMjkKQEAgLTE3OSwxMSArMTg2LDEyIEBACiAjZGVmaW5lIEdGWF9PUF9EUkFXUkVDVF9JTkZPICAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODA8PDE2KXwoMHgzKSkKICNkZWZpbmUgR0ZYX09QX0RSQVdSRUNUX0lORk9fSTk2NSAgKCgweDc5MDA8PDE2KXwweDIpCiAKLSNkZWZpbmUgQ09MT1JfQkxUX0NNRAkJCSgyPDwyOSB8IDB4NDA8PDIyIHwgKDUtMikpCisjZGVmaW5lIENPTE9SX0JMVF9DTUQJCQkoMiA8PCAyOSB8IDB4NDAgPDwgMjIgfCAoNSAtIDIpKQogI2RlZmluZSBYWV9DT0xPUl9CTFRfQ01ECQkoMiA8PCAyOSB8IDB4NTAgPDwgMjIpCi0jZGVmaW5lIFNSQ19DT1BZX0JMVF9DTUQJCSgoMjw8MjkpfCgweDQzPDwyMil8NCkKLSNkZWZpbmUgWFlfU1JDX0NPUFlfQkxUX0NNRAkJKCgyPDwyOSl8KDB4NTM8PDIyKXw2KQotI2RlZmluZSBYWV9NT05PX1NSQ19DT1BZX0lNTV9CTFQJKCgyPDwyOSl8KDB4NzE8PDIyKXw1KQorI2RlZmluZSBTUkNfQ09QWV9CTFRfQ01ECQkoMiA8PCAyOSB8IDB4NDMgPDwgMjIpCisjZGVmaW5lIEdFTjlfWFlfRkFTVF9DT1BZX0JMVF9DTUQJKDIgPDwgMjkgfCAweDQyIDw8IDIyKQorI2RlZmluZSBYWV9TUkNfQ09QWV9CTFRfQ01ECQkoMiA8PCAyOSB8IDB4NTMgPDwgMjIpCisjZGVmaW5lIFhZX01PTk9fU1JDX0NPUFlfSU1NX0JMVAkoMiA8PCAyOSB8IDB4NzEgPDwgMjIgfCA1KQogI2RlZmluZSAgIEJMVF9XUklURV9BCQkJKDI8PDIwKQogI2RlZmluZSAgIEJMVF9XUklURV9SR0IJCQkoMTw8MjApCiAjZGVmaW5lICAgQkxUX1dSSVRFX1JHQkEJCShCTFRfV1JJVEVfUkdCIHwgQkxUX1dSSVRFX0EpCkBAIC0yMDAsNiArMjA4LDggQEAKICNkZWZpbmUgICBESVNQTEFZX1BMQU5FX0EgICAgICAgICAgICgwPDwyMCkKICNkZWZpbmUgICBESVNQTEFZX1BMQU5FX0IgICAgICAgICAgICgxPDwyMCkKICNkZWZpbmUgR0ZYX09QX1BJUEVfQ09OVFJPTChsZW4pCSgoMHgzPDwyOSl8KDB4Mzw8MjcpfCgweDI8PDI0KXwoKGxlbiktMikpCisjZGVmaW5lICAgUElQRV9DT05UUk9MX0NPTU1BTkRfQ0FDSEVfSU5WQUxJREFURQkJKDE8PDI5KSAvKiBnZW4xMSsgKi8KKyNkZWZpbmUgICBQSVBFX0NPTlRST0xfVElMRV9DQUNIRV9GTFVTSAkJCSgxPDwyOCkgLyogZ2VuMTErICovCiAjZGVmaW5lICAgUElQRV9DT05UUk9MX0ZMVVNIX0wzCQkJCSgxPDwyNykKICNkZWZpbmUgICBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkIJCQkoMTw8MjQpIC8qIGdlbjcrICovCiAjZGVmaW5lICAgUElQRV9DT05UUk9MX01NSU9fV1JJVEUJCQkoMTw8MjMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDhlYzlhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYwpAQCAtMCwwICsxLDI2OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZ3QuaCIKKyNpbmNsdWRlICJpbnRlbF9ndF9wbS5oIgorI2luY2x1ZGUgImludGVsX3VuY29yZS5oIgorCit2b2lkIGludGVsX2d0X2luaXRfZWFybHkoc3RydWN0IGludGVsX2d0ICpndCwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJZ3QtPmk5MTUgPSBpOTE1OworCWd0LT51bmNvcmUgPSAmaTkxNS0+dW5jb3JlOworCisJc3Bpbl9sb2NrX2luaXQoJmd0LT5pcnFfbG9jayk7CisKKwlJTklUX0xJU1RfSEVBRCgmZ3QtPmNsb3NlZF92bWEpOworCXNwaW5fbG9ja19pbml0KCZndC0+Y2xvc2VkX2xvY2spOworCisJaW50ZWxfZ3RfaW5pdF9oYW5nY2hlY2soZ3QpOworCWludGVsX2d0X2luaXRfcmVzZXQoZ3QpOworCWludGVsX2d0X3BtX2luaXRfZWFybHkoZ3QpOworCWludGVsX3VjX2luaXRfZWFybHkoJmd0LT51Yyk7Cit9CisKK3ZvaWQgaW50ZWxfZ3RfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlpOTE1LT5ndC5nZ3R0ID0gJmk5MTUtPmdndHQ7Cit9CisKK3N0YXRpYyB2b2lkIHJtd19zZXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IHJlZywgdTMyIHNldCkKK3sKKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgcmVnLCAwLCBzZXQpOworfQorCitzdGF0aWMgdm9pZCBybXdfY2xlYXIoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IHJlZywgdTMyIGNscikKK3sKKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgcmVnLCBjbHIsIDApOworfQorCitzdGF0aWMgdm9pZCBjbGVhcl9yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsIGk5MTVfcmVnX3QgcmVnKQoreworCWludGVsX3VuY29yZV9ybXcodW5jb3JlLCByZWcsIDAsIDApOworfQorCitzdGF0aWMgdm9pZCBnZW44X2NsZWFyX2VuZ2luZV9lcnJvcl9yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJR0VONl9SSU5HX0ZBVUxUX1JFR19STVcoZW5naW5lLCBSSU5HX0ZBVUxUX1ZBTElELCAwKTsKKwlHRU42X1JJTkdfRkFVTFRfUkVHX1BPU1RJTkdfUkVBRChlbmdpbmUpOworfQorCit2b2lkCitpbnRlbF9ndF9jbGVhcl9lcnJvcl9yZWdpc3RlcnMoc3RydWN0IGludGVsX2d0ICpndCwKKwkJCSAgICAgICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKwl1MzIgZWlyOworCisJaWYgKCFJU19HRU4oaTkxNSwgMikpCisJCWNsZWFyX3JlZ2lzdGVyKHVuY29yZSwgUEdUQkxfRVIpOworCisJaWYgKElOVEVMX0dFTihpOTE1KSA8IDQpCisJCWNsZWFyX3JlZ2lzdGVyKHVuY29yZSwgSVBFSVIoUkVOREVSX1JJTkdfQkFTRSkpOworCWVsc2UKKwkJY2xlYXJfcmVnaXN0ZXIodW5jb3JlLCBJUEVJUl9JOTY1KTsKKworCWNsZWFyX3JlZ2lzdGVyKHVuY29yZSwgRUlSKTsKKwllaXIgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEVJUik7CisJaWYgKGVpcikgeworCQkvKgorCQkgKiBzb21lIGVycm9ycyBtaWdodCBoYXZlIGJlY29tZSBzdHVjaywKKwkJICogbWFzayB0aGVtLgorCQkgKi8KKwkJRFJNX0RFQlVHX0RSSVZFUigiRUlSIHN0dWNrOiAweCUwOHgsIG1hc2tpbmdcbiIsIGVpcik7CisJCXJtd19zZXQodW5jb3JlLCBFTVIsIGVpcik7CisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjJfSUlSLAorCQkJCSAgIEk5MTVfTUFTVEVSX0VSUk9SX0lOVEVSUlVQVCk7CisJfQorCisJaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMikgeworCQlybXdfY2xlYXIodW5jb3JlLCBHRU4xMl9SSU5HX0ZBVUxUX1JFRywgUklOR19GQVVMVF9WQUxJRCk7CisJCWludGVsX3VuY29yZV9wb3N0aW5nX3JlYWQodW5jb3JlLCBHRU4xMl9SSU5HX0ZBVUxUX1JFRyk7CisJfSBlbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPj0gOCkgeworCQlybXdfY2xlYXIodW5jb3JlLCBHRU44X1JJTkdfRkFVTFRfUkVHLCBSSU5HX0ZBVUxUX1ZBTElEKTsKKwkJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZCh1bmNvcmUsIEdFTjhfUklOR19GQVVMVF9SRUcpOworCX0gZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUpID49IDYpIHsKKwkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKworCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgaTkxNSwgZW5naW5lX21hc2ssIGlkKQorCQkJZ2VuOF9jbGVhcl9lbmdpbmVfZXJyb3JfcmVnaXN0ZXIoZW5naW5lKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGdlbjZfY2hlY2tfZmF1bHRzKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCXUzMiBmYXVsdDsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCQlmYXVsdCA9IEdFTjZfUklOR19GQVVMVF9SRUdfUkVBRChlbmdpbmUpOworCQlpZiAoZmF1bHQgJiBSSU5HX0ZBVUxUX1ZBTElEKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJVbmV4cGVjdGVkIGZhdWx0XG4iCisJCQkJCSAiXHRBZGRyOiAweCUwOGx4XG4iCisJCQkJCSAiXHRBZGRyZXNzIHNwYWNlOiAlc1xuIgorCQkJCQkgIlx0U291cmNlIElEOiAlZFxuIgorCQkJCQkgIlx0VHlwZTogJWRcbiIsCisJCQkJCSBmYXVsdCAmIFBBR0VfTUFTSywKKwkJCQkJIGZhdWx0ICYgUklOR19GQVVMVF9HVFRTRUxfTUFTSyA/CisJCQkJCSAiR0dUVCIgOiAiUFBHVFQiLAorCQkJCQkgUklOR19GQVVMVF9TUkNJRChmYXVsdCksCisJCQkJCSBSSU5HX0ZBVUxUX0ZBVUxUX1RZUEUoZmF1bHQpKTsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgZ2VuOF9jaGVja19mYXVsdHMoc3RydWN0IGludGVsX2d0ICpndCkKK3sKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3JlOworCWk5MTVfcmVnX3QgZmF1bHRfcmVnLCBmYXVsdF9kYXRhMF9yZWcsIGZhdWx0X2RhdGExX3JlZzsKKwl1MzIgZmF1bHQ7CisKKwlpZiAoSU5URUxfR0VOKGd0LT5pOTE1KSA+PSAxMikgeworCQlmYXVsdF9yZWcgPSBHRU4xMl9SSU5HX0ZBVUxUX1JFRzsKKwkJZmF1bHRfZGF0YTBfcmVnID0gR0VOMTJfRkFVTFRfVExCX0RBVEEwOworCQlmYXVsdF9kYXRhMV9yZWcgPSBHRU4xMl9GQVVMVF9UTEJfREFUQTE7CisJfSBlbHNlIHsKKwkJZmF1bHRfcmVnID0gR0VOOF9SSU5HX0ZBVUxUX1JFRzsKKwkJZmF1bHRfZGF0YTBfcmVnID0gR0VOOF9GQVVMVF9UTEJfREFUQTA7CisJCWZhdWx0X2RhdGExX3JlZyA9IEdFTjhfRkFVTFRfVExCX0RBVEExOworCX0KKworCWZhdWx0ID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBmYXVsdF9yZWcpOworCWlmIChmYXVsdCAmIFJJTkdfRkFVTFRfVkFMSUQpIHsKKwkJdTMyIGZhdWx0X2RhdGEwLCBmYXVsdF9kYXRhMTsKKwkJdTY0IGZhdWx0X2FkZHI7CisKKwkJZmF1bHRfZGF0YTAgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIGZhdWx0X2RhdGEwX3JlZyk7CisJCWZhdWx0X2RhdGExID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBmYXVsdF9kYXRhMV9yZWcpOworCisJCWZhdWx0X2FkZHIgPSAoKHU2NCkoZmF1bHRfZGF0YTEgJiBGQVVMVF9WQV9ISUdIX0JJVFMpIDw8IDQ0KSB8CisJCQkgICAgICgodTY0KWZhdWx0X2RhdGEwIDw8IDEyKTsKKworCQlEUk1fREVCVUdfRFJJVkVSKCJVbmV4cGVjdGVkIGZhdWx0XG4iCisJCQkJICJcdEFkZHI6IDB4JTA4eF8lMDh4XG4iCisJCQkJICJcdEFkZHJlc3Mgc3BhY2U6ICVzXG4iCisJCQkJICJcdEVuZ2luZSBJRDogJWRcbiIKKwkJCQkgIlx0U291cmNlIElEOiAlZFxuIgorCQkJCSAiXHRUeXBlOiAlZFxuIiwKKwkJCQkgdXBwZXJfMzJfYml0cyhmYXVsdF9hZGRyKSwKKwkJCQkgbG93ZXJfMzJfYml0cyhmYXVsdF9hZGRyKSwKKwkJCQkgZmF1bHRfZGF0YTEgJiBGQVVMVF9HVFRfU0VMID8gIkdHVFQiIDogIlBQR1RUIiwKKwkJCQkgR0VOOF9SSU5HX0ZBVUxUX0VOR0lORV9JRChmYXVsdCksCisJCQkJIFJJTkdfRkFVTFRfU1JDSUQoZmF1bHQpLAorCQkJCSBSSU5HX0ZBVUxUX0ZBVUxUX1RZUEUoZmF1bHQpKTsKKwl9Cit9CisKK3ZvaWQgaW50ZWxfZ3RfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CisKKwkvKiBGcm9tIEdFTjggb253YXJkcyB3ZSBvbmx5IGhhdmUgb25lICdBbGwgRW5naW5lIEZhdWx0IFJlZ2lzdGVyJyAqLworCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gOCkKKwkJZ2VuOF9jaGVja19mYXVsdHMoZ3QpOworCWVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSA2KQorCQlnZW42X2NoZWNrX2ZhdWx0cyhndCk7CisJZWxzZQorCQlyZXR1cm47CisKKwlpbnRlbF9ndF9jbGVhcl9lcnJvcl9yZWdpc3RlcnMoZ3QsIEFMTF9FTkdJTkVTKTsKK30KKwordm9pZCBpbnRlbF9ndF9mbHVzaF9nZ3R0X3dyaXRlcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisKKwkvKgorCSAqIE5vIGFjdHVhbCBmbHVzaGluZyBpcyByZXF1aXJlZCBmb3IgdGhlIEdUVCB3cml0ZSBkb21haW4gZm9yIHJlYWRzCisJICogZnJvbSB0aGUgR1RUIGRvbWFpbi4gV3JpdGVzIHRvIGl0ICJpbW1lZGlhdGVseSIgZ28gdG8gbWFpbiBtZW1vcnkKKwkgKiBhcyBmYXIgYXMgd2Uga25vdywgc28gdGhlcmUncyBubyBjaGlwc2V0IGZsdXNoLiBJdCBhbHNvIGRvZXNuJ3QKKwkgKiBsYW5kIGluIHRoZSBHUFUgcmVuZGVyIGNhY2hlLgorCSAqCisJICogSG93ZXZlciwgd2UgZG8gaGF2ZSB0byBlbmZvcmNlIHRoZSBvcmRlciBzbyB0aGF0IGFsbCB3cml0ZXMgdGhyb3VnaAorCSAqIHRoZSBHVFQgbGFuZCBiZWZvcmUgYW55IHdyaXRlcyB0byB0aGUgZGV2aWNlLCBzdWNoIGFzIHVwZGF0ZXMgdG8KKwkgKiB0aGUgR0FUVCBpdHNlbGYuCisJICoKKwkgKiBXZSBhbHNvIGhhdmUgdG8gd2FpdCBhIGJpdCBmb3IgdGhlIHdyaXRlcyB0byBsYW5kIGZyb20gdGhlIEdUVC4KKwkgKiBBbiB1bmNhY2hlZCByZWFkIChpLmUuIG1taW8pIHNlZW1zIHRvIGJlIGlkZWFsIGZvciB0aGUgcm91bmQtdHJpcAorCSAqIHRpbWluZy4gVGhpcyBpc3N1ZSBoYXMgb25seSBiZWVuIG9ic2VydmVkIHdoZW4gc3dpdGNoaW5nIHF1aWNrbHkKKwkgKiBiZXR3ZWVuIEdUVCB3cml0ZXMgYW5kIENQVSByZWFkcyBmcm9tIGluc2lkZSB0aGUga2VybmVsIG9uIHJlY2VudCBodywKKwkgKiBhbmQgaXQgYXBwZWFycyB0byBvbmx5IGFmZmVjdCBkaXNjcmV0ZSBHVFQgYmxvY2tzIChpLmUuIG9uIExMQworCSAqIHN5c3RlbSBhZ2VudHMgd2UgY2Fubm90IHJlcHJvZHVjZSB0aGlzIGJlaGF2aW91ciwgdW50aWwgQ2Fubm9ubGFrZQorCSAqIHRoYXQgd2FzISkuCisJICovCisKKwl3bWIoKTsKKworCWlmIChJTlRFTF9JTkZPKGk5MTUpLT5oYXNfY29oZXJlbnRfZ2d0dCkKKwkJcmV0dXJuOworCisJaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChndCk7CisKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpIHsKKwkJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKworCQlzcGluX2xvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOworCQlpbnRlbF91bmNvcmVfcG9zdGluZ19yZWFkX2Z3KHVuY29yZSwKKwkJCQkJICAgICBSSU5HX0hFQUQoUkVOREVSX1JJTkdfQkFTRSkpOworCQlzcGluX3VubG9ja19pcnEoJnVuY29yZS0+bG9jayk7CisJfQorfQorCit2b2lkIGludGVsX2d0X2NoaXBzZXRfZmx1c2goc3RydWN0IGludGVsX2d0ICpndCkKK3sKKwl3bWIoKTsKKwlpZiAoSU5URUxfR0VOKGd0LT5pOTE1KSA8IDYpCisJCWludGVsX2d0dF9jaGlwc2V0X2ZsdXNoKCk7Cit9CisKK2ludCBpbnRlbF9ndF9pbml0X3NjcmF0Y2goc3RydWN0IGludGVsX2d0ICpndCwgdW5zaWduZWQgaW50IHNpemUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCWludCByZXQ7CisKKwlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihpOTE1LCBzaXplKTsKKwlpZiAoIW9iaikKKwkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBzaXplKTsKKwlpZiAoSVNfRVJSKG9iaikpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc2NyYXRjaCBwYWdlXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIob2JqKTsKKwl9CisKKwl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosICZndC0+Z2d0dC0+dm0sIE5VTEwpOworCWlmIChJU19FUlIodm1hKSkgeworCQlyZXQgPSBQVFJfRVJSKHZtYSk7CisJCWdvdG8gZXJyX3VucmVmOworCX0KKworCXJldCA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIFBJTl9HTE9CQUwgfCBQSU5fSElHSCk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfdW5yZWY7CisKKwlndC0+c2NyYXRjaCA9IGk5MTVfdm1hX21ha2VfdW5zaHJpbmthYmxlKHZtYSk7CisKKwlyZXR1cm4gMDsKKworZXJyX3VucmVmOgorCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGludGVsX2d0X2Zpbmlfc2NyYXRjaChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndC0+c2NyYXRjaCwgMCk7Cit9CisKK3ZvaWQgaW50ZWxfZ3RfZHJpdmVyX2xhdGVfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCWludGVsX3VjX2RyaXZlcl9sYXRlX3JlbGVhc2UoJmd0LT51Yyk7CisJaW50ZWxfZ3RfZmluaV9yZXNldChndCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTIwY2IzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuaApAQCAtMCwwICsxLDYwIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSU5URUxfR1RfXworI2RlZmluZSBfX0lOVEVMX0dUX18KKworI2luY2x1ZGUgImludGVsX2VuZ2luZV90eXBlcy5oIgorI2luY2x1ZGUgImludGVsX2d0X3R5cGVzLmgiCisjaW5jbHVkZSAiaW50ZWxfcmVzZXQuaCIKKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2d0ICp1Y190b19ndChzdHJ1Y3QgaW50ZWxfdWMgKnVjKQoreworCXJldHVybiBjb250YWluZXJfb2YodWMsIHN0cnVjdCBpbnRlbF9ndCwgdWMpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9ndCAqZ3VjX3RvX2d0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGd1Yywgc3RydWN0IGludGVsX2d0LCB1Yy5ndWMpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9ndCAqaHVjX3RvX2d0KHN0cnVjdCBpbnRlbF9odWMgKmh1YykKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGh1Yywgc3RydWN0IGludGVsX2d0LCB1Yy5odWMpOworfQorCit2b2lkIGludGVsX2d0X2luaXRfZWFybHkoc3RydWN0IGludGVsX2d0ICpndCwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwordm9pZCBpbnRlbF9ndF9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKKwordm9pZCBpbnRlbF9ndF9kcml2ZXJfbGF0ZV9yZWxlYXNlKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOworCit2b2lkIGludGVsX2d0X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoc3RydWN0IGludGVsX2d0ICpndCk7Cit2b2lkIGludGVsX2d0X2NsZWFyX2Vycm9yX3JlZ2lzdGVycyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkJCSAgICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrKTsKKwordm9pZCBpbnRlbF9ndF9mbHVzaF9nZ3R0X3dyaXRlcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKK3ZvaWQgaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKKwordm9pZCBpbnRlbF9ndF9pbml0X2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKKworaW50IGludGVsX2d0X2luaXRfc2NyYXRjaChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCB1bnNpZ25lZCBpbnQgc2l6ZSk7Cit2b2lkIGludGVsX2d0X2Zpbmlfc2NyYXRjaChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKKworc3RhdGljIGlubGluZSB1MzIgaW50ZWxfZ3Rfc2NyYXRjaF9vZmZzZXQoY29uc3Qgc3RydWN0IGludGVsX2d0ICpndCwKKwkJCQkJICBlbnVtIGludGVsX2d0X3NjcmF0Y2hfZmllbGQgZmllbGQpCit7CisJcmV0dXJuIGk5MTVfZ2d0dF9vZmZzZXQoZ3QtPnNjcmF0Y2gpICsgZmllbGQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9ndF9pc193ZWRnZWQoc3RydWN0IGludGVsX2d0ICpndCkKK3sKKwlyZXR1cm4gX19pbnRlbF9yZXNldF9mYWlsZWQoJmd0LT5yZXNldCk7Cit9CisKK3ZvaWQgaW50ZWxfZ3RfcXVldWVfaGFuZ2NoZWNrKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOworCisjZW5kaWYgLyogX19JTlRFTF9HVF9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfaXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRhNGZiNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X2lycS5jCkBAIC0wLDAgKzEsNDU1IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NjaGVkL2Nsb2NrLmg+CisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfaXJxLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3QuaCIKKyNpbmNsdWRlICJpbnRlbF9ndF9pcnEuaCIKKyNpbmNsdWRlICJpbnRlbF91bmNvcmUuaCIKKworc3RhdGljIHZvaWQgZ3VjX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTE2IGlpcikKK3sKKwlpZiAoaWlyICYgR1VDX0lOVFJfR1VDMkhPU1QpCisJCWludGVsX2d1Y190b19ob3N0X2V2ZW50X2hhbmRsZXIoZ3VjKTsKK30KKworc3RhdGljIHZvaWQKK2NzX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIGlpcikKK3sKKwlib29sIHRhc2tsZXQgPSBmYWxzZTsKKworCWlmIChpaXIgJiBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQpCisJCXRhc2tsZXQgPSB0cnVlOworCisJaWYgKGlpciAmIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCkgeworCQlpbnRlbF9lbmdpbmVfYnJlYWRjcnVtYnNfaXJxKGVuZ2luZSk7CisJCXRhc2tsZXQgfD0gaW50ZWxfZW5naW5lX25lZWRzX2JyZWFkY3J1bWJfdGFza2xldChlbmdpbmUpOworCX0KKworCWlmICh0YXNrbGV0KQorCQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0KTsKK30KKworc3RhdGljIHUzMgorZ2VuMTFfZ3RfZW5naW5lX2lkZW50aXR5KHN0cnVjdCBpbnRlbF9ndCAqZ3QsCisJCQkgY29uc3QgdW5zaWduZWQgaW50IGJhbmssIGNvbnN0IHVuc2lnbmVkIGludCBiaXQpCit7CisJdm9pZCBfX2lvbWVtICogY29uc3QgcmVncyA9IGd0LT51bmNvcmUtPnJlZ3M7CisJdTMyIHRpbWVvdXRfdHM7CisJdTMyIGlkZW50OworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZ3QtPmlycV9sb2NrKTsKKworCXJhd19yZWdfd3JpdGUocmVncywgR0VOMTFfSUlSX1JFR19TRUxFQ1RPUihiYW5rKSwgQklUKGJpdCkpOworCisJLyoKKwkgKiBOQjogU3BlY3MgZG8gbm90IHNwZWNpZnkgaG93IGxvbmcgdG8gc3BpbiB3YWl0LAorCSAqIHNvIHdlIGRvIH4xMDB1cyBhcyBhbiBlZHVjYXRlZCBndWVzcy4KKwkgKi8KKwl0aW1lb3V0X3RzID0gKGxvY2FsX2Nsb2NrKCkgPj4gMTApICsgMTAwOworCWRvIHsKKwkJaWRlbnQgPSByYXdfcmVnX3JlYWQocmVncywgR0VOMTFfSU5UUl9JREVOVElUWV9SRUcoYmFuaykpOworCX0gd2hpbGUgKCEoaWRlbnQgJiBHRU4xMV9JTlRSX0RBVEFfVkFMSUQpICYmCisJCSAhdGltZV9hZnRlcjMyKGxvY2FsX2Nsb2NrKCkgPj4gMTAsIHRpbWVvdXRfdHMpKTsKKworCWlmICh1bmxpa2VseSghKGlkZW50ICYgR0VOMTFfSU5UUl9EQVRBX1ZBTElEKSkpIHsKKwkJRFJNX0VSUk9SKCJJTlRSX0lERU5USVRZX1JFRyV1OiV1IDB4JTA4eCBub3QgdmFsaWQhXG4iLAorCQkJICBiYW5rLCBiaXQsIGlkZW50KTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmF3X3JlZ193cml0ZShyZWdzLCBHRU4xMV9JTlRSX0lERU5USVRZX1JFRyhiYW5rKSwKKwkJICAgICAgR0VOMTFfSU5UUl9EQVRBX1ZBTElEKTsKKworCXJldHVybiBpZGVudDsKK30KKworc3RhdGljIHZvaWQKK2dlbjExX290aGVyX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGNvbnN0IHU4IGluc3RhbmNlLAorCQkJY29uc3QgdTE2IGlpcikKK3sKKwlpZiAoaW5zdGFuY2UgPT0gT1RIRVJfR1VDX0lOU1RBTkNFKQorCQlyZXR1cm4gZ3VjX2lycV9oYW5kbGVyKCZndC0+dWMuZ3VjLCBpaXIpOworCisJaWYgKGluc3RhbmNlID09IE9USEVSX0dUUE1fSU5TVEFOQ0UpCisJCXJldHVybiBnZW4xMV9ycHNfaXJxX2hhbmRsZXIoZ3QsIGlpcik7CisKKwlXQVJOX09OQ0UoMSwgInVuaGFuZGxlZCBvdGhlciBpbnRlcnJ1cHQgaW5zdGFuY2U9MHgleCwgaWlyPTB4JXhcbiIsCisJCSAgaW5zdGFuY2UsIGlpcik7Cit9CisKK3N0YXRpYyB2b2lkCitnZW4xMV9lbmdpbmVfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2d0ICpndCwgY29uc3QgdTggY2xhc3MsCisJCQkgY29uc3QgdTggaW5zdGFuY2UsIGNvbnN0IHUxNiBpaXIpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCisJaWYgKGluc3RhbmNlIDw9IE1BWF9FTkdJTkVfSU5TVEFOQ0UpCisJCWVuZ2luZSA9IGd0LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RhbmNlXTsKKwllbHNlCisJCWVuZ2luZSA9IE5VTEw7CisKKwlpZiAobGlrZWx5KGVuZ2luZSkpCisJCXJldHVybiBjc19pcnFfaGFuZGxlcihlbmdpbmUsIGlpcik7CisKKwlXQVJOX09OQ0UoMSwgInVuaGFuZGxlZCBlbmdpbmUgaW50ZXJydXB0IGNsYXNzPTB4JXgsIGluc3RhbmNlPTB4JXhcbiIsCisJCSAgY2xhc3MsIGluc3RhbmNlKTsKK30KKworc3RhdGljIHZvaWQKK2dlbjExX2d0X2lkZW50aXR5X2hhbmRsZXIoc3RydWN0IGludGVsX2d0ICpndCwgY29uc3QgdTMyIGlkZW50aXR5KQoreworCWNvbnN0IHU4IGNsYXNzID0gR0VOMTFfSU5UUl9FTkdJTkVfQ0xBU1MoaWRlbnRpdHkpOworCWNvbnN0IHU4IGluc3RhbmNlID0gR0VOMTFfSU5UUl9FTkdJTkVfSU5TVEFOQ0UoaWRlbnRpdHkpOworCWNvbnN0IHUxNiBpbnRyID0gR0VOMTFfSU5UUl9FTkdJTkVfSU5UUihpZGVudGl0eSk7CisKKwlpZiAodW5saWtlbHkoIWludHIpKQorCQlyZXR1cm47CisKKwlpZiAoY2xhc3MgPD0gQ09QWV9FTkdJTkVfQ0xBU1MpCisJCXJldHVybiBnZW4xMV9lbmdpbmVfaXJxX2hhbmRsZXIoZ3QsIGNsYXNzLCBpbnN0YW5jZSwgaW50cik7CisKKwlpZiAoY2xhc3MgPT0gT1RIRVJfQ0xBU1MpCisJCXJldHVybiBnZW4xMV9vdGhlcl9pcnFfaGFuZGxlcihndCwgaW5zdGFuY2UsIGludHIpOworCisJV0FSTl9PTkNFKDEsICJ1bmtub3duIGludGVycnVwdCBjbGFzcz0weCV4LCBpbnN0YW5jZT0weCV4LCBpbnRyPTB4JXhcbiIsCisJCSAgY2xhc3MsIGluc3RhbmNlLCBpbnRyKTsKK30KKworc3RhdGljIHZvaWQKK2dlbjExX2d0X2JhbmtfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBjb25zdCB1bnNpZ25lZCBpbnQgYmFuaykKK3sKKwl2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzID0gZ3QtPnVuY29yZS0+cmVnczsKKwl1bnNpZ25lZCBsb25nIGludHJfZHc7CisJdW5zaWduZWQgaW50IGJpdDsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmd0LT5pcnFfbG9jayk7CisKKwlpbnRyX2R3ID0gcmF3X3JlZ19yZWFkKHJlZ3MsIEdFTjExX0dUX0lOVFJfRFcoYmFuaykpOworCisJZm9yX2VhY2hfc2V0X2JpdChiaXQsICZpbnRyX2R3LCAzMikgeworCQljb25zdCB1MzIgaWRlbnQgPSBnZW4xMV9ndF9lbmdpbmVfaWRlbnRpdHkoZ3QsIGJhbmssIGJpdCk7CisKKwkJZ2VuMTFfZ3RfaWRlbnRpdHlfaGFuZGxlcihndCwgaWRlbnQpOworCX0KKworCS8qIENsZWFyIG11c3QgYmUgYWZ0ZXIgc2hhcmVkIGhhcyBiZWVuIHNlcnZlZCBmb3IgZW5naW5lICovCisJcmF3X3JlZ193cml0ZShyZWdzLCBHRU4xMV9HVF9JTlRSX0RXKGJhbmspLCBpbnRyX2R3KTsKK30KKwordm9pZCBnZW4xMV9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBjb25zdCB1MzIgbWFzdGVyX2N0bCkKK3sKKwl1bnNpZ25lZCBpbnQgYmFuazsKKworCXNwaW5fbG9jaygmZ3QtPmlycV9sb2NrKTsKKworCWZvciAoYmFuayA9IDA7IGJhbmsgPCAyOyBiYW5rKyspIHsKKwkJaWYgKG1hc3Rlcl9jdGwgJiBHRU4xMV9HVF9EV19JUlEoYmFuaykpCisJCQlnZW4xMV9ndF9iYW5rX2hhbmRsZXIoZ3QsIGJhbmspOworCX0KKworCXNwaW5fdW5sb2NrKCZndC0+aXJxX2xvY2spOworfQorCitib29sIGdlbjExX2d0X3Jlc2V0X29uZV9paXIoc3RydWN0IGludGVsX2d0ICpndCwKKwkJCSAgICBjb25zdCB1bnNpZ25lZCBpbnQgYmFuaywgY29uc3QgdW5zaWduZWQgaW50IGJpdCkKK3sKKwl2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzID0gZ3QtPnVuY29yZS0+cmVnczsKKwl1MzIgZHc7CisKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZndC0+aXJxX2xvY2spOworCisJZHcgPSByYXdfcmVnX3JlYWQocmVncywgR0VOMTFfR1RfSU5UUl9EVyhiYW5rKSk7CisJaWYgKGR3ICYgQklUKGJpdCkpIHsKKwkJLyoKKwkJICogQWNjb3JkaW5nIHRvIHRoZSBCU3BlYywgRFdfSUlSIGJpdHMgY2Fubm90IGJlIGNsZWFyZWQgd2l0aG91dAorCQkgKiBmaXJzdCBzZXJ2aWNpbmcgdGhlIFNlbGVjdG9yICYgU2hhcmVkIElJUiByZWdpc3RlcnMuCisJCSAqLworCQlnZW4xMV9ndF9lbmdpbmVfaWRlbnRpdHkoZ3QsIGJhbmssIGJpdCk7CisKKwkJLyoKKwkJICogV2UgbG9ja2VkIEdUIElOVCBEVyBieSByZWFkaW5nIGl0LiBJZiB3ZSB3YW50IHRvICh0cnkKKwkJICogdG8pIHJlY292ZXIgZnJvbSB0aGlzIHN1Y2Nlc3NmdWxseSwgd2UgbmVlZCB0byBjbGVhcgorCQkgKiBvdXIgYml0LCBvdGhlcndpc2Ugd2UgYXJlIGxvY2tpbmcgdGhlIHJlZ2lzdGVyIGZvcgorCQkgKiBldmVyeWJvZHkuCisJCSAqLworCQlyYXdfcmVnX3dyaXRlKHJlZ3MsIEdFTjExX0dUX0lOVFJfRFcoYmFuayksIEJJVChiaXQpKTsKKworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgZ2VuMTFfZ3RfaXJxX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKworCS8qIERpc2FibGUgUkNTLCBCQ1MsIFZDUyBhbmQgVkVDUyBjbGFzcyBlbmdpbmVzLiAqLworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjExX1JFTkRFUl9DT1BZX0lOVFJfRU5BQkxFLCAwKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU4xMV9WQ1NfVkVDU19JTlRSX0VOQUJMRSwJICAwKTsKKworCS8qIFJlc3RvcmUgbWFza3MgaXJxcyBvbiBSQ1MsIEJDUywgVkNTIGFuZCBWRUNTIGVuZ2luZXMuICovCisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMTFfUkNTMF9SU1ZEX0lOVFJfTUFTSywJfjApOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjExX0JDU19SU1ZEX0lOVFJfTUFTSywJfjApOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjExX1ZDUzBfVkNTMV9JTlRSX01BU0ssCX4wKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU4xMV9WQ1MyX1ZDUzNfSU5UUl9NQVNLLAl+MCk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMTFfVkVDUzBfVkVDUzFfSU5UUl9NQVNLLAl+MCk7CisKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU4xMV9HUE1fV0dCT1hQRVJGX0lOVFJfRU5BQkxFLCAwKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU4xMV9HUE1fV0dCT1hQRVJGX0lOVFJfTUFTSywgIH4wKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU4xMV9HVUNfU0dfSU5UUl9FTkFCTEUsIDApOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjExX0dVQ19TR19JTlRSX01BU0ssICB+MCk7Cit9CisKK3ZvaWQgZ2VuMTFfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJY29uc3QgdTMyIGlycXMgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgfCBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQ7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKwljb25zdCB1MzIgZG1hc2sgPSBpcnFzIDw8IDE2IHwgaXJxczsKKwljb25zdCB1MzIgc21hc2sgPSBpcnFzIDw8IDE2OworCisJQlVJTERfQlVHX09OKGlycXMgJiAweGZmZmYwMDAwKTsKKworCS8qIEVuYWJsZSBSQ1MsIEJDUywgVkNTIGFuZCBWRUNTIGNsYXNzIGludGVycnVwdHMuICovCisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMTFfUkVOREVSX0NPUFlfSU5UUl9FTkFCTEUsIGRtYXNrKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU4xMV9WQ1NfVkVDU19JTlRSX0VOQUJMRSwgZG1hc2spOworCisJLyogVW5tYXNrIGlycXMgb24gUkNTLCBCQ1MsIFZDUyBhbmQgVkVDUyBlbmdpbmVzLiAqLworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjExX1JDUzBfUlNWRF9JTlRSX01BU0ssIH5zbWFzayk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMTFfQkNTX1JTVkRfSU5UUl9NQVNLLCB+c21hc2spOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjExX1ZDUzBfVkNTMV9JTlRSX01BU0ssIH5kbWFzayk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMTFfVkNTMl9WQ1MzX0lOVFJfTUFTSywgfmRtYXNrKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU4xMV9WRUNTMF9WRUNTMV9JTlRSX01BU0ssIH5kbWFzayk7CisKKwkvKgorCSAqIFJQUyBpbnRlcnJ1cHRzIHdpbGwgZ2V0IGVuYWJsZWQvZGlzYWJsZWQgb24gZGVtYW5kIHdoZW4gUlBTIGl0c2VsZgorCSAqIGlzIGVuYWJsZWQvZGlzYWJsZWQuCisJICovCisJZ3QtPnBtX2llciA9IDB4MDsKKwlndC0+cG1faW1yID0gfmd0LT5wbV9pZXI7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMTFfR1BNX1dHQk9YUEVSRl9JTlRSX0VOQUJMRSwgMCk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMTFfR1BNX1dHQk9YUEVSRl9JTlRSX01BU0ssICB+MCk7CisKKwkvKiBTYW1lIHRoaW5nIGZvciBHdUMgaW50ZXJydXB0cyAqLworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjExX0dVQ19TR19JTlRSX0VOQUJMRSwgMCk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMTFfR1VDX1NHX0lOVFJfTUFTSywgIH4wKTsKK30KKwordm9pZCBnZW41X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBndF9paXIpCit7CisJaWYgKGd0X2lpciAmIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCkKKwkJaW50ZWxfZW5naW5lX2JyZWFkY3J1bWJzX2lycShndC0+ZW5naW5lX2NsYXNzW1JFTkRFUl9DTEFTU11bMF0pOworCWlmIChndF9paXIgJiBJTEtfQlNEX1VTRVJfSU5URVJSVVBUKQorCQlpbnRlbF9lbmdpbmVfYnJlYWRjcnVtYnNfaXJxKGd0LT5lbmdpbmVfY2xhc3NbVklERU9fREVDT0RFX0NMQVNTXVswXSk7Cit9CisKK3N0YXRpYyB2b2lkIGdlbjdfcGFyaXR5X2Vycm9yX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBpaXIpCit7CisJaWYgKCFIQVNfTDNfRFBGKGd0LT5pOTE1KSkKKwkJcmV0dXJuOworCisJc3Bpbl9sb2NrKCZndC0+aXJxX2xvY2spOworCWdlbjVfZ3RfZGlzYWJsZV9pcnEoZ3QsIEdUX1BBUklUWV9FUlJPUihndC0+aTkxNSkpOworCXNwaW5fdW5sb2NrKCZndC0+aXJxX2xvY2spOworCisJaWYgKGlpciAmIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUX1MxKQorCQlndC0+aTkxNS0+bDNfcGFyaXR5LndoaWNoX3NsaWNlIHw9IDEgPDwgMTsKKworCWlmIChpaXIgJiBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVCkKKwkJZ3QtPmk5MTUtPmwzX3Bhcml0eS53aGljaF9zbGljZSB8PSAxIDw8IDA7CisKKwlzY2hlZHVsZV93b3JrKCZndC0+aTkxNS0+bDNfcGFyaXR5LmVycm9yX3dvcmspOworfQorCit2b2lkIGdlbjZfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIGd0X2lpcikKK3sKKwlpZiAoZ3RfaWlyICYgR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUKQorCQlpbnRlbF9lbmdpbmVfYnJlYWRjcnVtYnNfaXJxKGd0LT5lbmdpbmVfY2xhc3NbUkVOREVSX0NMQVNTXVswXSk7CisJaWYgKGd0X2lpciAmIEdUX0JTRF9VU0VSX0lOVEVSUlVQVCkKKwkJaW50ZWxfZW5naW5lX2JyZWFkY3J1bWJzX2lycShndC0+ZW5naW5lX2NsYXNzW1ZJREVPX0RFQ09ERV9DTEFTU11bMF0pOworCWlmIChndF9paXIgJiBHVF9CTFRfVVNFUl9JTlRFUlJVUFQpCisJCWludGVsX2VuZ2luZV9icmVhZGNydW1ic19pcnEoZ3QtPmVuZ2luZV9jbGFzc1tDT1BZX0VOR0lORV9DTEFTU11bMF0pOworCisJaWYgKGd0X2lpciAmIChHVF9CTFRfQ1NfRVJST1JfSU5URVJSVVBUIHwKKwkJICAgICAgR1RfQlNEX0NTX0VSUk9SX0lOVEVSUlVQVCB8CisJCSAgICAgIEdUX1JFTkRFUl9DU19NQVNURVJfRVJST1JfSU5URVJSVVBUKSkKKwkJRFJNX0RFQlVHKCJDb21tYW5kIHBhcnNlciBlcnJvciwgZ3RfaWlyIDB4JTA4eFxuIiwgZ3RfaWlyKTsKKworCWlmIChndF9paXIgJiBHVF9QQVJJVFlfRVJST1IoZ3QtPmk5MTUpKQorCQlnZW43X3Bhcml0eV9lcnJvcl9pcnFfaGFuZGxlcihndCwgZ3RfaWlyKTsKK30KKwordm9pZCBnZW44X2d0X2lycV9hY2soc3RydWN0IGludGVsX2d0ICpndCwgdTMyIG1hc3Rlcl9jdGwsIHUzMiBndF9paXJbNF0pCit7CisJdm9pZCBfX2lvbWVtICogY29uc3QgcmVncyA9IGd0LT51bmNvcmUtPnJlZ3M7CisKKwlpZiAobWFzdGVyX2N0bCAmIChHRU44X0dUX1JDU19JUlEgfCBHRU44X0dUX0JDU19JUlEpKSB7CisJCWd0X2lpclswXSA9IHJhd19yZWdfcmVhZChyZWdzLCBHRU44X0dUX0lJUigwKSk7CisJCWlmIChsaWtlbHkoZ3RfaWlyWzBdKSkKKwkJCXJhd19yZWdfd3JpdGUocmVncywgR0VOOF9HVF9JSVIoMCksIGd0X2lpclswXSk7CisJfQorCisJaWYgKG1hc3Rlcl9jdGwgJiAoR0VOOF9HVF9WQ1MwX0lSUSB8IEdFTjhfR1RfVkNTMV9JUlEpKSB7CisJCWd0X2lpclsxXSA9IHJhd19yZWdfcmVhZChyZWdzLCBHRU44X0dUX0lJUigxKSk7CisJCWlmIChsaWtlbHkoZ3RfaWlyWzFdKSkKKwkJCXJhd19yZWdfd3JpdGUocmVncywgR0VOOF9HVF9JSVIoMSksIGd0X2lpclsxXSk7CisJfQorCisJaWYgKG1hc3Rlcl9jdGwgJiAoR0VOOF9HVF9QTV9JUlEgfCBHRU44X0dUX0dVQ19JUlEpKSB7CisJCWd0X2lpclsyXSA9IHJhd19yZWdfcmVhZChyZWdzLCBHRU44X0dUX0lJUigyKSk7CisJCWlmIChsaWtlbHkoZ3RfaWlyWzJdKSkKKwkJCXJhd19yZWdfd3JpdGUocmVncywgR0VOOF9HVF9JSVIoMiksIGd0X2lpclsyXSk7CisJfQorCisJaWYgKG1hc3Rlcl9jdGwgJiBHRU44X0dUX1ZFQ1NfSVJRKSB7CisJCWd0X2lpclszXSA9IHJhd19yZWdfcmVhZChyZWdzLCBHRU44X0dUX0lJUigzKSk7CisJCWlmIChsaWtlbHkoZ3RfaWlyWzNdKSkKKwkJCXJhd19yZWdfd3JpdGUocmVncywgR0VOOF9HVF9JSVIoMyksIGd0X2lpclszXSk7CisJfQorfQorCit2b2lkIGdlbjhfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIG1hc3Rlcl9jdGwsIHUzMiBndF9paXJbNF0pCit7CisJaWYgKG1hc3Rlcl9jdGwgJiAoR0VOOF9HVF9SQ1NfSVJRIHwgR0VOOF9HVF9CQ1NfSVJRKSkgeworCQljc19pcnFfaGFuZGxlcihndC0+ZW5naW5lX2NsYXNzW1JFTkRFUl9DTEFTU11bMF0sCisJCQkgICAgICAgZ3RfaWlyWzBdID4+IEdFTjhfUkNTX0lSUV9TSElGVCk7CisJCWNzX2lycV9oYW5kbGVyKGd0LT5lbmdpbmVfY2xhc3NbQ09QWV9FTkdJTkVfQ0xBU1NdWzBdLAorCQkJICAgICAgIGd0X2lpclswXSA+PiBHRU44X0JDU19JUlFfU0hJRlQpOworCX0KKworCWlmIChtYXN0ZXJfY3RsICYgKEdFTjhfR1RfVkNTMF9JUlEgfCBHRU44X0dUX1ZDUzFfSVJRKSkgeworCQljc19pcnFfaGFuZGxlcihndC0+ZW5naW5lX2NsYXNzW1ZJREVPX0RFQ09ERV9DTEFTU11bMF0sCisJCQkgICAgICAgZ3RfaWlyWzFdID4+IEdFTjhfVkNTMF9JUlFfU0hJRlQpOworCQljc19pcnFfaGFuZGxlcihndC0+ZW5naW5lX2NsYXNzW1ZJREVPX0RFQ09ERV9DTEFTU11bMV0sCisJCQkgICAgICAgZ3RfaWlyWzFdID4+IEdFTjhfVkNTMV9JUlFfU0hJRlQpOworCX0KKworCWlmIChtYXN0ZXJfY3RsICYgR0VOOF9HVF9WRUNTX0lSUSkgeworCQljc19pcnFfaGFuZGxlcihndC0+ZW5naW5lX2NsYXNzW1ZJREVPX0VOSEFOQ0VNRU5UX0NMQVNTXVswXSwKKwkJCSAgICAgICBndF9paXJbM10gPj4gR0VOOF9WRUNTX0lSUV9TSElGVCk7CisJfQorCisJaWYgKG1hc3Rlcl9jdGwgJiAoR0VOOF9HVF9QTV9JUlEgfCBHRU44X0dUX0dVQ19JUlEpKSB7CisJCWdlbjZfcnBzX2lycV9oYW5kbGVyKGd0LT5pOTE1LCBndF9paXJbMl0pOworCQlndWNfaXJxX2hhbmRsZXIoJmd0LT51Yy5ndWMsIGd0X2lpclsyXSA+PiAxNik7CisJfQorfQorCit2b2lkIGdlbjhfZ3RfaXJxX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKworCUdFTjhfSVJRX1JFU0VUX05EWCh1bmNvcmUsIEdULCAwKTsKKwlHRU44X0lSUV9SRVNFVF9ORFgodW5jb3JlLCBHVCwgMSk7CisJR0VOOF9JUlFfUkVTRVRfTkRYKHVuY29yZSwgR1QsIDIpOworCUdFTjhfSVJRX1JFU0VUX05EWCh1bmNvcmUsIEdULCAzKTsKK30KKwordm9pZCBnZW44X2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7CisKKwkvKiBUaGVzZSBhcmUgaW50ZXJydXB0cyB3ZSdsbCB0b2dnbGUgd2l0aCB0aGUgcmluZyBtYXNrIHJlZ2lzdGVyICovCisJdTMyIGd0X2ludGVycnVwdHNbXSA9IHsKKwkJKEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1JDU19JUlFfU0hJRlQgfAorCQkgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfUkNTX0lSUV9TSElGVCB8CisJCSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9CQ1NfSVJRX1NISUZUIHwKKwkJIEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X0JDU19JUlFfU0hJRlQpLAorCisJCShHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MwX0lSUV9TSElGVCB8CisJCSBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MwX0lSUV9TSElGVCB8CisJCSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCB8CisJCSBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCksCisKKwkJMCwKKworCQkoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19JUlFfU0hJRlQgfAorCQkgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19JUlFfU0hJRlQpCisJfTsKKworCWd0LT5wbV9pZXIgPSAweDA7CisJZ3QtPnBtX2ltciA9IH5ndC0+cG1faWVyOworCUdFTjhfSVJRX0lOSVRfTkRYKHVuY29yZSwgR1QsIDAsIH5ndF9pbnRlcnJ1cHRzWzBdLCBndF9pbnRlcnJ1cHRzWzBdKTsKKwlHRU44X0lSUV9JTklUX05EWCh1bmNvcmUsIEdULCAxLCB+Z3RfaW50ZXJydXB0c1sxXSwgZ3RfaW50ZXJydXB0c1sxXSk7CisJLyoKKwkgKiBSUFMgaW50ZXJydXB0cyB3aWxsIGdldCBlbmFibGVkL2Rpc2FibGVkIG9uIGRlbWFuZCB3aGVuIFJQUyBpdHNlbGYKKwkgKiBpcyBlbmFibGVkL2Rpc2FibGVkLiBTYW1lIHdpbCBiZSB0aGUgY2FzZSBmb3IgR3VDIGludGVycnVwdHMuCisJICovCisJR0VOOF9JUlFfSU5JVF9ORFgodW5jb3JlLCBHVCwgMiwgZ3QtPnBtX2ltciwgZ3QtPnBtX2llcik7CisJR0VOOF9JUlFfSU5JVF9ORFgodW5jb3JlLCBHVCwgMywgfmd0X2ludGVycnVwdHNbM10sIGd0X2ludGVycnVwdHNbM10pOworfQorCitzdGF0aWMgdm9pZCBnZW41X2d0X3VwZGF0ZV9pcnEoc3RydWN0IGludGVsX2d0ICpndCwKKwkJCSAgICAgICB1MzIgaW50ZXJydXB0X21hc2ssCisJCQkgICAgICAgdTMyIGVuYWJsZWRfaXJxX21hc2spCit7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZ3QtPmlycV9sb2NrKTsKKworCUdFTV9CVUdfT04oZW5hYmxlZF9pcnFfbWFzayAmIH5pbnRlcnJ1cHRfbWFzayk7CisKKwlndC0+Z3RfaW1yICY9IH5pbnRlcnJ1cHRfbWFzazsKKwlndC0+Z3RfaW1yIHw9ICh+ZW5hYmxlZF9pcnFfbWFzayAmIGludGVycnVwdF9tYXNrKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUoZ3QtPnVuY29yZSwgR1RJTVIsIGd0LT5ndF9pbXIpOworfQorCit2b2lkIGdlbjVfZ3RfZW5hYmxlX2lycShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCB1MzIgbWFzaykKK3sKKwlnZW41X2d0X3VwZGF0ZV9pcnEoZ3QsIG1hc2ssIG1hc2spOworCWludGVsX3VuY29yZV9wb3N0aW5nX3JlYWRfZncoZ3QtPnVuY29yZSwgR1RJTVIpOworfQorCit2b2lkIGdlbjVfZ3RfZGlzYWJsZV9pcnEoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIG1hc2spCit7CisJZ2VuNV9ndF91cGRhdGVfaXJxKGd0LCBtYXNrLCAwKTsKK30KKwordm9pZCBnZW41X2d0X2lycV9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7CisKKwlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIEdUKTsKKwlpZiAoSU5URUxfR0VOKGd0LT5pOTE1KSA+PSA2KQorCQlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIEdFTjZfUE0pOworfQorCit2b2lkIGdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKwl1MzIgcG1faXJxcyA9IDA7CisJdTMyIGd0X2lycXMgPSAwOworCisJZ3QtPmd0X2ltciA9IH4wOworCWlmIChIQVNfTDNfRFBGKGd0LT5pOTE1KSkgeworCQkvKiBMMyBwYXJpdHkgaW50ZXJydXB0IGlzIGFsd2F5cyB1bm1hc2tlZC4gKi8KKwkJZ3QtPmd0X2ltciA9IH5HVF9QQVJJVFlfRVJST1IoZ3QtPmk5MTUpOworCQlndF9pcnFzIHw9IEdUX1BBUklUWV9FUlJPUihndC0+aTkxNSk7CisJfQorCisJZ3RfaXJxcyB8PSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7CisJaWYgKElTX0dFTihndC0+aTkxNSwgNSkpCisJCWd0X2lycXMgfD0gSUxLX0JTRF9VU0VSX0lOVEVSUlVQVDsKKwllbHNlCisJCWd0X2lycXMgfD0gR1RfQkxUX1VTRVJfSU5URVJSVVBUIHwgR1RfQlNEX1VTRVJfSU5URVJSVVBUOworCisJR0VOM19JUlFfSU5JVCh1bmNvcmUsIEdULCBndC0+Z3RfaW1yLCBndF9pcnFzKTsKKworCWlmIChJTlRFTF9HRU4oZ3QtPmk5MTUpID49IDYpIHsKKwkJLyoKKwkJICogUlBTIGludGVycnVwdHMgd2lsbCBnZXQgZW5hYmxlZC9kaXNhYmxlZCBvbiBkZW1hbmQgd2hlbiBSUFMKKwkJICogaXRzZWxmIGlzIGVuYWJsZWQvZGlzYWJsZWQuCisJCSAqLworCQlpZiAoSEFTX0VOR0lORShndC0+aTkxNSwgVkVDUzApKSB7CisJCQlwbV9pcnFzIHw9IFBNX1ZFQk9YX1VTRVJfSU5URVJSVVBUOworCQkJZ3QtPnBtX2llciB8PSBQTV9WRUJPWF9VU0VSX0lOVEVSUlVQVDsKKwkJfQorCisJCWd0LT5wbV9pbXIgPSAweGZmZmZmZmZmOworCQlHRU4zX0lSUV9JTklUKHVuY29yZSwgR0VONl9QTSwgZ3QtPnBtX2ltciwgcG1faXJxcyk7CisJfQorfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfaXJxLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9pcnEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjM3NTkzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfaXJxLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgSU5URUxfR1RfSVJRX0gKKyNkZWZpbmUgSU5URUxfR1RfSVJRX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKK3N0cnVjdCBpbnRlbF9ndDsKKworI2RlZmluZSBHRU44X0dUX0lSUVMgKEdFTjhfR1RfUkNTX0lSUSB8IFwKKwkJICAgICAgR0VOOF9HVF9CQ1NfSVJRIHwgXAorCQkgICAgICBHRU44X0dUX1ZDUzBfSVJRIHwgXAorCQkgICAgICBHRU44X0dUX1ZDUzFfSVJRIHwgXAorCQkgICAgICBHRU44X0dUX1ZFQ1NfSVJRIHwgXAorCQkgICAgICBHRU44X0dUX1BNX0lSUSB8IFwKKwkJICAgICAgR0VOOF9HVF9HVUNfSVJRKQorCit2b2lkIGdlbjExX2d0X2lycV9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKK3ZvaWQgZ2VuMTFfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwordm9pZCBnZW4xMV9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBjb25zdCB1MzIgbWFzdGVyX2N0bCk7CisKK2Jvb2wgZ2VuMTFfZ3RfcmVzZXRfb25lX2lpcihzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkJICAgIGNvbnN0IHVuc2lnbmVkIGludCBiYW5rLAorCQkJICAgIGNvbnN0IHVuc2lnbmVkIGludCBiaXQpOworCit2b2lkIGdlbjVfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIGd0X2lpcik7CisKK3ZvaWQgZ2VuNV9ndF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGludGVsX2d0ICpndCk7Cit2b2lkIGdlbjVfZ3RfaXJxX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwordm9pZCBnZW41X2d0X2Rpc2FibGVfaXJxKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBtYXNrKTsKK3ZvaWQgZ2VuNV9ndF9lbmFibGVfaXJxKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBtYXNrKTsKKwordm9pZCBnZW42X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBndF9paXIpOworCit2b2lkIGdlbjhfZ3RfaXJxX2FjayhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCB1MzIgbWFzdGVyX2N0bCwgdTMyIGd0X2lpcls0XSk7Cit2b2lkIGdlbjhfZ3RfaXJxX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwordm9pZCBnZW44X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBtYXN0ZXJfY3RsLCB1MzIgZ3RfaWlyWzRdKTsKK3ZvaWQgZ2VuOF9ndF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGludGVsX2d0ICpndCk7CisKKyNlbmRpZiAvKiBJTlRFTF9HVF9JUlFfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtLmMKaW5kZXggOWY4ZjdmNS4uMTM2M2UwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbS5jCkBAIC01LDcgKzUsOSBAQAogICovCiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfcGFyYW1zLmgiCiAjaW5jbHVkZSAiaW50ZWxfZW5naW5lX3BtLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3QuaCIKICNpbmNsdWRlICJpbnRlbF9ndF9wbS5oIgogI2luY2x1ZGUgImludGVsX3BtLmgiCiAjaW5jbHVkZSAiaW50ZWxfd2FrZXJlZi5oIgpAQCAtMTUsMTAgKzE3LDEwIEBAIHN0YXRpYyB2b2lkIHBtX25vdGlmeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgaW50IHN0YXRlKQogCWJsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oJmk5MTUtPmd0LnBtX25vdGlmaWNhdGlvbnMsIHN0YXRlLCBpOTE1KTsKIH0KIAotc3RhdGljIGludCBpbnRlbF9ndF91bnBhcmsoc3RydWN0IGludGVsX3dha2VyZWYgKndmKQorc3RhdGljIGludCBfX2d0X3VucGFyayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPQotCQljb250YWluZXJfb2Yod2YsIHR5cGVvZigqaTkxNSksIGd0Lndha2VyZWYpOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBjb250YWluZXJfb2Yod2YsIHR5cGVvZigqZ3QpLCB3YWtlcmVmKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd0LT5pOTE1OwogCiAJR0VNX1RSQUNFKCJcbiIpOwogCkBAIC0zMyw4ICszNSw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ3RfdW5wYXJrKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKIAkgKiBXb3JrIGFyb3VuZCBpdCBieSBncmFiYmluZyBhIEdUIElSUSBwb3dlciBkb21haW4gd2hpbHN0IHRoZXJlIGlzIGFueQogCSAqIEdUIGFjdGl2aXR5LCBwcmV2ZW50aW5nIGFueSBEQyBzdGF0ZSB0cmFuc2l0aW9ucy4KIAkgKi8KLQlpOTE1LT5ndC5hd2FrZSA9IGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGk5MTUsIFBPV0VSX0RPTUFJTl9HVF9JUlEpOwotCUdFTV9CVUdfT04oIWk5MTUtPmd0LmF3YWtlKTsKKwlndC0+YXdha2UgPSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChpOTE1LCBQT1dFUl9ET01BSU5fR1RfSVJRKTsKKwlHRU1fQlVHX09OKCFndC0+YXdha2UpOwogCiAJaW50ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShpOTE1KTsKIApAQCAtNDQsMTkgKzQ2LDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ3RfdW5wYXJrKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKIAogCWk5MTVfcG11X2d0X3VucGFya2VkKGk5MTUpOwogCi0JaTkxNV9xdWV1ZV9oYW5nY2hlY2soaTkxNSk7CisJaW50ZWxfZ3RfcXVldWVfaGFuZ2NoZWNrKGd0KTsKIAogCXBtX25vdGlmeShpOTE1LCBJTlRFTF9HVF9VTlBBUkspOwogCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgaW50ZWxfZ3RfcG1fZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCWludGVsX3dha2VyZWZfZ2V0KCZpOTE1LT5ydW50aW1lX3BtLCAmaTkxNS0+Z3Qud2FrZXJlZiwgaW50ZWxfZ3RfdW5wYXJrKTsKLX0KLQotc3RhdGljIGludCBpbnRlbF9ndF9wYXJrKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKK3N0YXRpYyBpbnQgX19ndF9wYXJrKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZih3ZiwgdHlwZW9mKCppOTE1KSwgZ3Qud2FrZXJlZik7CkBAIC03MCwzNCArNjcsMzkgQEAgc3RhdGljIGludCBpbnRlbF9ndF9wYXJrKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKIAlpZiAoSU5URUxfR0VOKGk5MTUpID49IDYpCiAJCWdlbjZfcnBzX2lkbGUoaTkxNSk7CiAKKwkvKiBFdmVyeXRoaW5nIHN3aXRjaGVkIG9mZiwgZmx1c2ggYW55IHJlc2lkdWFsIGludGVycnVwdCBqdXN0IGluIGNhc2UgKi8KKwlpbnRlbF9zeW5jaHJvbml6ZV9pcnEoaTkxNSk7CisKIAlHRU1fQlVHX09OKCF3YWtlcmVmKTsKIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChpOTE1LCBQT1dFUl9ET01BSU5fR1RfSVJRLCB3YWtlcmVmKTsKIAogCXJldHVybiAwOwogfQogCi12b2lkIGludGVsX2d0X3BtX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfd2FrZXJlZl9vcHMgd2Zfb3BzID0geworCS5nZXQgPSBfX2d0X3VucGFyaywKKwkucHV0ID0gX19ndF9wYXJrLAorCS5mbGFncyA9IElOVEVMX1dBS0VSRUZfUFVUX0FTWU5DLAorfTsKKwordm9pZCBpbnRlbF9ndF9wbV9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7Ci0JaW50ZWxfd2FrZXJlZl9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sICZpOTE1LT5ndC53YWtlcmVmLCBpbnRlbF9ndF9wYXJrKTsKKwlpbnRlbF93YWtlcmVmX2luaXQoJmd0LT53YWtlcmVmLCAmZ3QtPmk5MTUtPnJ1bnRpbWVfcG0sICZ3Zl9vcHMpOworCisJQkxPQ0tJTkdfSU5JVF9OT1RJRklFUl9IRUFEKCZndC0+cG1fbm90aWZpY2F0aW9ucyk7CiB9CiAKLXZvaWQgaW50ZWxfZ3RfcG1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyBib29sIHJlc2V0X2VuZ2luZXMoc3RydWN0IGludGVsX2d0ICpndCkKIHsKLQlpbnRlbF93YWtlcmVmX2luaXQoJmk5MTUtPmd0Lndha2VyZWYpOwotCUJMT0NLSU5HX0lOSVRfTk9USUZJRVJfSEVBRCgmaTkxNS0+Z3QucG1fbm90aWZpY2F0aW9ucyk7Ci19Ci0KLXN0YXRpYyBib29sIHJlc2V0X2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0JaWYgKElOVEVMX0lORk8oaTkxNSktPmdwdV9yZXNldF9jbG9iYmVyc19kaXNwbGF5KQorCWlmIChJTlRFTF9JTkZPKGd0LT5pOTE1KS0+Z3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkpCiAJCXJldHVybiBmYWxzZTsKIAotCXJldHVybiBpbnRlbF9ncHVfcmVzZXQoaTkxNSwgQUxMX0VOR0lORVMpID09IDA7CisJcmV0dXJuIF9faW50ZWxfZ3RfcmVzZXQoZ3QsIEFMTF9FTkdJTkVTKSA9PSAwOwogfQogCiAvKioKICAqIGludGVsX2d0X3Nhbml0aXplOiBjYWxsZWQgYWZ0ZXIgdGhlIEdQVSBoYXMgbG9zdCBwb3dlcgotICogQGk5MTU6IHRoZSBpOTE1IGRldmljZQorICogQGd0OiB0aGUgaTkxNSBHVCBjb250YWluZXIKICAqIEBmb3JjZTogaWdub3JlIGEgZmFpbGVkIHJlc2V0IGFuZCBzYW5pdGl6ZSBlbmdpbmUgc3RhdGUgYW55d2F5CiAgKgogICogQW55dGltZSB3ZSByZXNldCB0aGUgR1BVLCBlaXRoZXIgd2l0aCBhbiBleHBsaWNpdCBHUFUgcmVzZXQgb3IgdGhyb3VnaCBhCkBAIC0xMDUsMjEgKzEwNywyMyBAQCBzdGF0aWMgYm9vbCByZXNldF9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogICogdG8gbWF0Y2guIE5vdGUgdGhhdCBjYWxsaW5nIGludGVsX2d0X3Nhbml0aXplKCkgaWYgdGhlIEdQVSBoYXMgbm90CiAgKiBiZWVuIHJlc2V0IHJlc3VsdHMgaW4gbXVjaCBjb25mdXNpb24hCiAgKi8KLXZvaWQgaW50ZWxfZ3Rfc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGJvb2wgZm9yY2UpCit2b2lkIGludGVsX2d0X3Nhbml0aXplKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGJvb2wgZm9yY2UpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCiAJR0VNX1RSQUNFKCJcbiIpOwogCi0JaWYgKCFyZXNldF9lbmdpbmVzKGk5MTUpICYmICFmb3JjZSkKKwlpbnRlbF91Y19zYW5pdGl6ZSgmZ3QtPnVjKTsKKworCWlmICghcmVzZXRfZW5naW5lcyhndCkgJiYgIWZvcmNlKQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkKLQkJaW50ZWxfZW5naW5lX3Jlc2V0KGVuZ2luZSwgZmFsc2UpOworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkKKwkJX19pbnRlbF9lbmdpbmVfcmVzZXQoZW5naW5lLCBmYWxzZSk7CiB9CiAKLWludCBpbnRlbF9ndF9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitpbnQgaW50ZWxfZ3RfcmVzdW1lKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwpAQCAtMTMxLDggKzEzNSw4IEBAIGludCBpbnRlbF9ndF9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJICogT25seSB0aGUga2VybmVsIGNvbnRleHRzIHNob3VsZCByZW1haW4gcGlubmVkIG92ZXIgc3VzcGVuZCwKIAkgKiBhbGxvd2luZyB1cyB0byBmaXh1cCB0aGUgdXNlciBjb250ZXh0cyBvbiB0aGVpciBmaXJzdCBwaW4uCiAJICovCi0JaW50ZWxfZ3RfcG1fZ2V0KGk5MTUpOwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJaW50ZWxfZ3RfcG1fZ2V0KGd0KTsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKIAkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCiAJCWludGVsX2VuZ2luZV9wbV9nZXQoZW5naW5lKTsKQEAgLTE0MSwyMiArMTQ1LDMwIEBAIGludCBpbnRlbF9ndF9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCWlmIChjZSkKIAkJCWNlLT5vcHMtPnJlc2V0KGNlKTsKIAotCQljZSA9IGVuZ2luZS0+cHJlZW1wdF9jb250ZXh0OwotCQlpZiAoY2UpCi0JCQljZS0+b3BzLT5yZXNldChjZSk7Ci0KIAkJZW5naW5lLT5zZXJpYWwrKzsgLyoga2VybmVsIGNvbnRleHQgbG9zdCAqLwogCQllcnIgPSBlbmdpbmUtPnJlc3VtZShlbmdpbmUpOwogCiAJCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKIAkJaWYgKGVycikgewotCQkJZGV2X2VycihpOTE1LT5kcm0uZGV2LAorCQkJZGV2X2VycihndC0+aTkxNS0+ZHJtLmRldiwKIAkJCQkiRmFpbGVkIHRvIHJlc3RhcnQgJXMgKCVkKVxuIiwKIAkJCQllbmdpbmUtPm5hbWUsIGVycik7CiAJCQlicmVhazsKIAkJfQogCX0KLQlpbnRlbF9ndF9wbV9wdXQoaTkxNSk7CisJaW50ZWxfZ3RfcG1fcHV0KGd0KTsKIAogCXJldHVybiBlcnI7CiB9CisKK3ZvaWQgaW50ZWxfZ3RfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJaW50ZWxfdWNfcnVudGltZV9zdXNwZW5kKCZndC0+dWMpOworfQorCitpbnQgaW50ZWxfZ3RfcnVudGltZV9yZXN1bWUoc3RydWN0IGludGVsX2d0ICpndCkKK3sKKwlpbnRlbF9ndF9pbml0X3N3aXp6bGluZyhndCk7CisKKwlyZXR1cm4gaW50ZWxfdWNfcnVudGltZV9yZXN1bWUoJmd0LT51Yyk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG0uaAppbmRleCA1M2YzNDJiLi5mYjM5ZDk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtLmgKQEAgLTksMTkgKzksNDQgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKLXN0cnVjdCBkcm1faTkxNV9wcml2YXRlOworI2luY2x1ZGUgImludGVsX2d0X3R5cGVzLmgiCisjaW5jbHVkZSAiaW50ZWxfd2FrZXJlZi5oIgogCiBlbnVtIHsKIAlJTlRFTF9HVF9VTlBBUkssCiAJSU5URUxfR1RfUEFSSywKIH07CiAKLXZvaWQgaW50ZWxfZ3RfcG1fZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZvaWQgaW50ZWxfZ3RfcG1fcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9ndF9wbV9pc19hd2FrZShjb25zdCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXJldHVybiBpbnRlbF93YWtlcmVmX2lzX2FjdGl2ZSgmZ3QtPndha2VyZWYpOworfQogCi12b2lkIGludGVsX2d0X3BtX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworc3RhdGljIGlubGluZSB2b2lkIGludGVsX2d0X3BtX2dldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCWludGVsX3dha2VyZWZfZ2V0KCZndC0+d2FrZXJlZik7Cit9CiAKLXZvaWQgaW50ZWxfZ3Rfc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGJvb2wgZm9yY2UpOwotaW50IGludGVsX2d0X3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3RfcG1fZ2V0X2lmX2F3YWtlKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJcmV0dXJuIGludGVsX3dha2VyZWZfZ2V0X2lmX2FjdGl2ZSgmZ3QtPndha2VyZWYpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZ3RfcG1fcHV0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJaW50ZWxfd2FrZXJlZl9wdXQoJmd0LT53YWtlcmVmKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgaW50ZWxfZ3RfcG1fd2FpdF9mb3JfaWRsZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXJldHVybiBpbnRlbF93YWtlcmVmX3dhaXRfZm9yX2lkbGUoJmd0LT53YWtlcmVmKTsKK30KKwordm9pZCBpbnRlbF9ndF9wbV9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndCAqZ3QpOworCit2b2lkIGludGVsX2d0X3Nhbml0aXplKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGJvb2wgZm9yY2UpOworaW50IGludGVsX2d0X3Jlc3VtZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKK3ZvaWQgaW50ZWxfZ3RfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOworaW50IGludGVsX2d0X3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwogCiAjZW5kaWYgLyogSU5URUxfR1RfUE1fSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG1faXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbV9pcnEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWJlODY2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG1faXJxLmMKQEAgLTAsMCArMSwxMDkgQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisgKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X3JlZy5oIgorI2luY2x1ZGUgImludGVsX2d0LmgiCisjaW5jbHVkZSAiaW50ZWxfZ3RfaXJxLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3RfcG1faXJxLmgiCisKK3N0YXRpYyB2b2lkIHdyaXRlX3BtX2ltcihzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKwl1MzIgbWFzayA9IGd0LT5wbV9pbXI7CisJaTkxNV9yZWdfdCByZWc7CisKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDExKSB7CisJCXJlZyA9IEdFTjExX0dQTV9XR0JPWFBFUkZfSU5UUl9NQVNLOworCQltYXNrIDw8PSAxNjsgLyogcG0gaXMgaW4gdXBwZXIgaGFsZiAqLworCX0gZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUpID49IDgpIHsKKwkJcmVnID0gR0VOOF9HVF9JTVIoMik7CisJfSBlbHNlIHsKKwkJcmVnID0gR0VONl9QTUlNUjsKKwl9CisKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCByZWcsIG1hc2spOworfQorCitzdGF0aWMgdm9pZCBnZW42X2d0X3BtX3VwZGF0ZV9pcnEoc3RydWN0IGludGVsX2d0ICpndCwKKwkJCQkgIHUzMiBpbnRlcnJ1cHRfbWFzaywKKwkJCQkgIHUzMiBlbmFibGVkX2lycV9tYXNrKQoreworCXUzMiBuZXdfdmFsOworCisJV0FSTl9PTihlbmFibGVkX2lycV9tYXNrICYgfmludGVycnVwdF9tYXNrKTsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmd0LT5pcnFfbG9jayk7CisKKwluZXdfdmFsID0gZ3QtPnBtX2ltcjsKKwluZXdfdmFsICY9IH5pbnRlcnJ1cHRfbWFzazsKKwluZXdfdmFsIHw9IH5lbmFibGVkX2lycV9tYXNrICYgaW50ZXJydXB0X21hc2s7CisKKwlpZiAobmV3X3ZhbCAhPSBndC0+cG1faW1yKSB7CisJCWd0LT5wbV9pbXIgPSBuZXdfdmFsOworCQl3cml0ZV9wbV9pbXIoZ3QpOworCX0KK30KKwordm9pZCBnZW42X2d0X3BtX3VubWFza19pcnEoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIG1hc2spCit7CisJZ2VuNl9ndF9wbV91cGRhdGVfaXJxKGd0LCBtYXNrLCBtYXNrKTsKK30KKwordm9pZCBnZW42X2d0X3BtX21hc2tfaXJxKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBtYXNrKQoreworCWdlbjZfZ3RfcG1fdXBkYXRlX2lycShndCwgbWFzaywgMCk7Cit9CisKK3ZvaWQgZ2VuNl9ndF9wbV9yZXNldF9paXIoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIHJlc2V0X21hc2spCit7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKwlpOTE1X3JlZ190IHJlZyA9IElOVEVMX0dFTihndC0+aTkxNSkgPj0gOCA/IEdFTjhfR1RfSUlSKDIpIDogR0VONl9QTUlJUjsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmd0LT5pcnFfbG9jayk7CisKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCByZWcsIHJlc2V0X21hc2spOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIHJlZywgcmVzZXRfbWFzayk7CisJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZCh1bmNvcmUsIHJlZyk7Cit9CisKK3N0YXRpYyB2b2lkIHdyaXRlX3BtX2llcihzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKwl1MzIgbWFzayA9IGd0LT5wbV9pZXI7CisJaTkxNV9yZWdfdCByZWc7CisKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDExKSB7CisJCXJlZyA9IEdFTjExX0dQTV9XR0JPWFBFUkZfSU5UUl9FTkFCTEU7CisJCW1hc2sgPDw9IDE2OyAvKiBwbSBpcyBpbiB1cHBlciBoYWxmICovCisJfSBlbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPj0gOCkgeworCQlyZWcgPSBHRU44X0dUX0lFUigyKTsKKwl9IGVsc2UgeworCQlyZWcgPSBHRU42X1BNSUVSOworCX0KKworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIHJlZywgbWFzayk7Cit9CisKK3ZvaWQgZ2VuNl9ndF9wbV9lbmFibGVfaXJxKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBlbmFibGVfbWFzaykKK3sKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZndC0+aXJxX2xvY2spOworCisJZ3QtPnBtX2llciB8PSBlbmFibGVfbWFzazsKKwl3cml0ZV9wbV9pZXIoZ3QpOworCWdlbjZfZ3RfcG1fdW5tYXNrX2lycShndCwgZW5hYmxlX21hc2spOworfQorCit2b2lkIGdlbjZfZ3RfcG1fZGlzYWJsZV9pcnEoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIGRpc2FibGVfbWFzaykKK3sKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZndC0+aXJxX2xvY2spOworCisJZ3QtPnBtX2llciAmPSB+ZGlzYWJsZV9tYXNrOworCWdlbjZfZ3RfcG1fbWFza19pcnEoZ3QsIGRpc2FibGVfbWFzayk7CisJd3JpdGVfcG1faWVyKGd0KTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtX2lycS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG1faXJxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI5ODE2YQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtX2lycS5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisgKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIElOVEVMX0dUX1BNX0lSUV9ICisjZGVmaW5lIElOVEVMX0dUX1BNX0lSUV9ICisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitzdHJ1Y3QgaW50ZWxfZ3Q7CisKK3ZvaWQgZ2VuNl9ndF9wbV91bm1hc2tfaXJxKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBtYXNrKTsKK3ZvaWQgZ2VuNl9ndF9wbV9tYXNrX2lycShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCB1MzIgbWFzayk7CisKK3ZvaWQgZ2VuNl9ndF9wbV9lbmFibGVfaXJxKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBlbmFibGVfbWFzayk7Cit2b2lkIGdlbjZfZ3RfcG1fZGlzYWJsZV9pcnEoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIGRpc2FibGVfbWFzayk7CisKK3ZvaWQgZ2VuNl9ndF9wbV9yZXNldF9paXIoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIHJlc2V0X21hc2spOworCisjZW5kaWYgLyogSU5URUxfR1RfUE1fSVJRX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMjk1YzEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oCkBAIC0wLDAgKzEsMTAyIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSU5URUxfR1RfVFlQRVNfXworI2RlZmluZSBfX0lOVEVMX0dUX1RZUEVTX18KKworI2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvbm90aWZpZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKyNpbmNsdWRlICJ1Yy9pbnRlbF91Yy5oIgorCisjaW5jbHVkZSAiaTkxNV92bWEuaCIKKyNpbmNsdWRlICJpbnRlbF9lbmdpbmVfdHlwZXMuaCIKKyNpbmNsdWRlICJpbnRlbF9yZXNldF90eXBlcy5oIgorI2luY2x1ZGUgImludGVsX3dha2VyZWYuaCIKKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CitzdHJ1Y3QgaTkxNV9nZ3R0Oworc3RydWN0IGludGVsX2VuZ2luZV9jczsKK3N0cnVjdCBpbnRlbF91bmNvcmU7CisKK3N0cnVjdCBpbnRlbF9oYW5nY2hlY2sgeworCS8qIEZvciBoYW5nY2hlY2sgdGltZXIgKi8KKyNkZWZpbmUgRFJNX0k5MTVfSEFOR0NIRUNLX1BFUklPRCAxNTAwIC8qIGluIG1zICovCisjZGVmaW5lIERSTV9JOTE1X0hBTkdDSEVDS19KSUZGSUVTIG1zZWNzX3RvX2ppZmZpZXMoRFJNX0k5MTVfSEFOR0NIRUNLX1BFUklPRCkKKworCXN0cnVjdCBkZWxheWVkX3dvcmsgd29yazsKK307CisKK3N0cnVjdCBpbnRlbF9ndCB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlOworCXN0cnVjdCBpOTE1X2dndHQgKmdndHQ7CisKKwlzdHJ1Y3QgaW50ZWxfdWMgdWM7CisKKwlzdHJ1Y3QgaW50ZWxfZ3RfdGltZWxpbmVzIHsKKwkJc3BpbmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0cyBhY3RpdmVfbGlzdCAqLworCQlzdHJ1Y3QgbGlzdF9oZWFkIGFjdGl2ZV9saXN0OworCisJCS8qIFBhY2sgbXVsdGlwbGUgdGltZWxpbmVzJyBzZXFub3MgaW50byB0aGUgc2FtZSBwYWdlICovCisJCXNwaW5sb2NrX3QgaHdzcF9sb2NrOworCQlzdHJ1Y3QgbGlzdF9oZWFkIGh3c3BfZnJlZV9saXN0OworCX0gdGltZWxpbmVzOworCisJc3RydWN0IGludGVsX3dha2VyZWYgd2FrZXJlZjsKKworCXN0cnVjdCBsaXN0X2hlYWQgY2xvc2VkX3ZtYTsKKwlzcGlubG9ja190IGNsb3NlZF9sb2NrOyAvKiBndWFyZHMgdGhlIGxpc3Qgb2YgY2xvc2VkX3ZtYSAqLworCisJc3RydWN0IGludGVsX2hhbmdjaGVjayBoYW5nY2hlY2s7CisJc3RydWN0IGludGVsX3Jlc2V0IHJlc2V0OworCisJLyoqCisJICogSXMgdGhlIEdQVSBjdXJyZW50bHkgY29uc2lkZXJlZCBpZGxlLCBvciBidXN5IGV4ZWN1dGluZworCSAqIHVzZXJzcGFjZSByZXF1ZXN0cz8gV2hpbHN0IGlkbGUsIHdlIGFsbG93IHJ1bnRpbWUgcG93ZXIKKwkgKiBtYW5hZ2VtZW50IHRvIHBvd2VyIGRvd24gdGhlIGhhcmR3YXJlIGFuZCBkaXNwbGF5IGNsb2Nrcy4KKwkgKiBJbiBvcmRlciB0byByZWR1Y2UgdGhlIGVmZmVjdCBvbiBwZXJmb3JtYW5jZSwgdGhlcmUKKwkgKiBpcyBhIHNsaWdodCBkZWxheSBiZWZvcmUgd2UgZG8gc28uCisJICovCisJaW50ZWxfd2FrZXJlZl90IGF3YWtlOworCisJc3RydWN0IGJsb2NraW5nX25vdGlmaWVyX2hlYWQgcG1fbm90aWZpY2F0aW9uczsKKworCWt0aW1lX3QgbGFzdF9pbml0X3RpbWU7CisKKwlzdHJ1Y3QgaTkxNV92bWEgKnNjcmF0Y2g7CisKKwlzcGlubG9ja190IGlycV9sb2NrOworCXUzMiBndF9pbXI7CisJdTMyIHBtX2llcjsKKwl1MzIgcG1faW1yOworCisJdTMyIHBtX2d1Y19ldmVudHM7CisKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmVbSTkxNV9OVU1fRU5HSU5FU107CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lX2NsYXNzW01BWF9FTkdJTkVfQ0xBU1MgKyAxXQorCQkJCQkgICAgW01BWF9FTkdJTkVfSU5TVEFOQ0UgKyAxXTsKK307CisKK2VudW0gaW50ZWxfZ3Rfc2NyYXRjaF9maWVsZCB7CisJLyogOCBieXRlcyAqLworCUlOVEVMX0dUX1NDUkFUQ0hfRklFTERfREVGQVVMVCA9IDAsCisKKwkvKiA4IGJ5dGVzICovCisJSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9DTEVBUl9TTE1fV0EgPSAxMjgsCisKKwkvKiA4IGJ5dGVzICovCisJSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9SRU5ERVJfRkxVU0ggPSAxMjgsCisKKwkvKiA4IGJ5dGVzICovCisJSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9DT0hFUkVOVEwzX1dBID0gMjU2LAorCit9OworCisjZW5kaWYgLyogX19JTlRFTF9HVF9UWVBFU19IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMKaW5kZXggNmJjZmE2NC4uMDVkMDQyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMKQEAgLTIyLDggKzIyLDEwIEBACiAgKgogICovCiAKLSNpbmNsdWRlICJpbnRlbF9yZXNldC5oIgogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZW5naW5lLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3QuaCIKKyNpbmNsdWRlICJpbnRlbF9yZXNldC5oIgogCiBzdHJ1Y3QgaGFuZ2NoZWNrIHsKIAl1NjQgYWN0aGQ7CkBAIC01Nyw5ICs1OSw2IEBAIHN0YXRpYyBib29sIHN1YnVuaXRzX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpbnQgc2xpY2U7CiAJaW50IHN1YnNsaWNlOwogCi0JaWYgKGVuZ2luZS0+aWQgIT0gUkNTMCkKLQkJcmV0dXJuIHRydWU7Ci0KIAlpbnRlbF9lbmdpbmVfZ2V0X2luc3Rkb25lKGVuZ2luZSwgJmluc3Rkb25lKTsKIAogCS8qIFRoZXJlIG1pZ2h0IGJlIHVuc3RhYmxlIHN1YnVuaXQgc3RhdGVzIGV2ZW4gd2hlbgpAQCAtMTAzLDcgKzEwMiw2IEBAIGhlYWRfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1NjQgYWN0aGQpCiBzdGF0aWMgZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlvbgogZW5naW5lX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTY0IGFjdGhkKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKIAllbnVtIGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9uIGhhOwogCXUzMiB0bXA7CiAKQEAgLTExMSw3ICsxMDksNyBAQCBlbmdpbmVfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1NjQgYWN0aGQpCiAJaWYgKGhhICE9IEVOR0lORV9ERUFEKQogCQlyZXR1cm4gaGE7CiAKLQlpZiAoSVNfR0VOKGRldl9wcml2LCAyKSkKKwlpZiAoSVNfR0VOKGVuZ2luZS0+aTkxNSwgMikpCiAJCXJldHVybiBFTkdJTkVfREVBRDsKIAogCS8qIElzIHRoZSBjaGlwIGhhbmdpbmcgb24gYSBXQUlUX0ZPUl9FVkVOVD8KQEAgLTEyMSw4ICsxMTksOCBAQCBlbmdpbmVfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1NjQgYWN0aGQpCiAJICovCiAJdG1wID0gRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX0NUTCk7CiAJaWYgKHRtcCAmIFJJTkdfV0FJVCkgewotCQlpOTE1X2hhbmRsZV9lcnJvcihkZXZfcHJpdiwgZW5naW5lLT5tYXNrLCAwLAotCQkJCSAgInN0dWNrIHdhaXQgb24gJXMiLCBlbmdpbmUtPm5hbWUpOworCQlpbnRlbF9ndF9oYW5kbGVfZXJyb3IoZW5naW5lLT5ndCwgZW5naW5lLT5tYXNrLCAwLAorCQkJCSAgICAgICJzdHVjayB3YWl0IG9uICVzIiwgZW5naW5lLT5uYW1lKTsKIAkJRU5HSU5FX1dSSVRFKGVuZ2luZSwgUklOR19DVEwsIHRtcCk7CiAJCXJldHVybiBFTkdJTkVfV0FJVF9LSUNLOwogCX0KQEAgLTIyMiw3ICsyMjAsNyBAQCBzdGF0aWMgdm9pZCBoYW5nY2hlY2tfYWNjdW11bGF0ZV9zYW1wbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJCSBJOTE1X0VOR0lORV9XRURHRURfVElNRU9VVCk7CiB9CiAKLXN0YXRpYyB2b2lkIGhhbmdjaGVja19kZWNsYXJlX2hhbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCitzdGF0aWMgdm9pZCBoYW5nY2hlY2tfZGVjbGFyZV9oYW5nKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCQkJICAgaW50ZWxfZW5naW5lX21hc2tfdCBodW5nLAogCQkJCSAgIGludGVsX2VuZ2luZV9tYXNrX3Qgc3R1Y2spCiB7CkBAIC0yMzgsMTIgKzIzNiwxMiBAQCBzdGF0aWMgdm9pZCBoYW5nY2hlY2tfZGVjbGFyZV9oYW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQlodW5nICY9IH5zdHVjazsKIAlsZW4gPSBzY25wcmludGYobXNnLCBzaXplb2YobXNnKSwKIAkJCSIlcyBvbiAiLCBzdHVjayA9PSBodW5nID8gIm5vIHByb2dyZXNzIiA6ICJoYW5nIik7Ci0JZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGk5MTUsIGh1bmcsIHRtcCkKKwlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QtPmk5MTUsIGh1bmcsIHRtcCkKIAkJbGVuICs9IHNjbnByaW50Zihtc2cgKyBsZW4sIHNpemVvZihtc2cpIC0gbGVuLAogCQkJCSAiJXMsICIsIGVuZ2luZS0+bmFtZSk7CiAJbXNnW2xlbi0yXSA9ICdcMCc7CiAKLQlyZXR1cm4gaTkxNV9oYW5kbGVfZXJyb3IoaTkxNSwgaHVuZywgSTkxNV9FUlJPUl9DQVBUVVJFLCAiJXMiLCBtc2cpOworCXJldHVybiBpbnRlbF9ndF9oYW5kbGVfZXJyb3IoZ3QsIGh1bmcsIEk5MTVfRVJST1JfQ0FQVFVSRSwgIiVzIiwgbXNnKTsKIH0KIAogLyoKQEAgLTI1NCwxMSArMjUyLDEwIEBAIHN0YXRpYyB2b2lkIGhhbmdjaGVja19kZWNsYXJlX2hhbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAgKiB3ZSBraWNrIHRoZSByaW5nLiBJZiB3ZSBzZWUgbm8gcHJvZ3Jlc3Mgb24gdGhyZWUgc3Vic2VxdWVudCBjYWxscwogICogd2UgYXNzdW1lIGNoaXAgaXMgd2VkZ2VkIGFuZCB0cnkgdG8gZml4IGl0IGJ5IHJlc2V0dGluZyB0aGUgY2hpcC4KICAqLwotc3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCitzdGF0aWMgdm9pZCBoYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KLQkJY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqZGV2X3ByaXYpLAotCQkJICAgICBncHVfZXJyb3IuaGFuZ2NoZWNrX3dvcmsud29yayk7CisJc3RydWN0IGludGVsX2d0ICpndCA9CisJCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmd0KSwgaGFuZ2NoZWNrLndvcmsud29yayk7CiAJaW50ZWxfZW5naW5lX21hc2tfdCBodW5nID0gMCwgc3R1Y2sgPSAwLCB3ZWRnZWQgPSAwOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKQEAgLTI2NywxMyArMjY0LDEzIEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2NoZWNrX2VsYXBzZWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWlmICghaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykKIAkJcmV0dXJuOwogCi0JaWYgKCFSRUFEX09OQ0UoZGV2X3ByaXYtPmd0LmF3YWtlKSkKKwlpZiAoIVJFQURfT05DRShndC0+YXdha2UpKQogCQlyZXR1cm47CiAKLQlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChkZXZfcHJpdikpCisJaWYgKGludGVsX2d0X2lzX3dlZGdlZChndCkpCiAJCXJldHVybjsKIAotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKCZndC0+aTkxNS0+cnVudGltZV9wbSk7CiAJaWYgKCF3YWtlcmVmKQogCQlyZXR1cm47CiAKQEAgLTI4MSw5ICsyNzgsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkgKiBwZXJpb2RpY2FsbHkgYXJtIHRoZSBtbWlvIGNoZWNrZXIgdG8gc2VlIGlmIHdlIGFyZSB0cmlnZ2VyaW5nCiAJICogYW55IGludmFsaWQgYWNjZXNzLgogCSAqLwotCWludGVsX3VuY29yZV9hcm1fdW5jbGFpbWVkX21taW9fZGV0ZWN0aW9uKCZkZXZfcHJpdi0+dW5jb3JlKTsKKwlpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlvbihndC0+dW5jb3JlKTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgewogCQlzdHJ1Y3QgaGFuZ2NoZWNrIGhjOwogCiAJCWludGVsX2VuZ2luZV9zaWduYWxfYnJlYWRjcnVtYnMoZW5naW5lKTsKQEAgLTMwNSw3ICszMDIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpZiAoR0VNX1NIT1dfREVCVUcoKSAmJiAoaHVuZyB8IHN0dWNrKSkgewogCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9kZWJ1Z19wcmludGVyKCJoYW5nY2hlY2siKTsKIAotCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CiAJCQlpZiAoaW50ZWxfZW5naW5lX2lzX2lkbGUoZW5naW5lKSkKIAkJCQljb250aW51ZTsKIApAQCAtMzE0LDIwICszMTEsMzcgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJfQogCiAJaWYgKHdlZGdlZCkgewotCQlkZXZfZXJyKGRldl9wcml2LT5kcm0uZGV2LAorCQlkZXZfZXJyKGd0LT5pOTE1LT5kcm0uZGV2LAogCQkJIkdQVSByZWNvdmVyeSB0aW1lZCBvdXQsIgogCQkJIiBjYW5jZWxsaW5nIGFsbCBpbi1mbGlnaHQgcmVuZGVyaW5nLlxuIik7CiAJCUdFTV9UUkFDRV9EVU1QKCk7Ci0JCWk5MTVfZ2VtX3NldF93ZWRnZWQoZGV2X3ByaXYpOworCQlpbnRlbF9ndF9zZXRfd2VkZ2VkKGd0KTsKIAl9CiAKIAlpZiAoaHVuZykKLQkJaGFuZ2NoZWNrX2RlY2xhcmVfaGFuZyhkZXZfcHJpdiwgaHVuZywgc3R1Y2spOworCQloYW5nY2hlY2tfZGVjbGFyZV9oYW5nKGd0LCBodW5nLCBzdHVjayk7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZndC0+aTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAKIAkvKiBSZXNldCB0aW1lciBpbiBjYXNlIEdQVSBoYW5ncyB3aXRob3V0IGFub3RoZXIgcmVxdWVzdCBiZWluZyBhZGRlZCAqLwotCWk5MTVfcXVldWVfaGFuZ2NoZWNrKGRldl9wcml2KTsKKwlpbnRlbF9ndF9xdWV1ZV9oYW5nY2hlY2soZ3QpOworfQorCit2b2lkIGludGVsX2d0X3F1ZXVlX2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXVuc2lnbmVkIGxvbmcgZGVsYXk7CisKKwlpZiAodW5saWtlbHkoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2spKQorCQlyZXR1cm47CisKKwkvKgorCSAqIERvbid0IGNvbnRpbnVhbGx5IGRlZmVyIHRoZSBoYW5nY2hlY2sgc28gdGhhdCBpdCBpcyBhbHdheXMgcnVuIGF0CisJICogbGVhc3Qgb25jZSBhZnRlciB3b3JrIGhhcyBiZWVuIHNjaGVkdWxlZCBvbiBhbnkgcmluZy4gT3RoZXJ3aXNlLAorCSAqIHdlIHdpbGwgaWdub3JlIGEgaHVuZyByaW5nIGlmIGEgc2Vjb25kIHJpbmcgaXMga2VwdCBidXN5LgorCSAqLworCisJZGVsYXkgPSByb3VuZF9qaWZmaWVzX3VwX3JlbGF0aXZlKERSTV9JOTE1X0hBTkdDSEVDS19KSUZGSUVTKTsKKwlxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2xvbmdfd3EsICZndC0+aGFuZ2NoZWNrLndvcmssIGRlbGF5KTsKIH0KIAogdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF9oYW5nY2hlY2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpAQCAtMzM2LDEwICszNTAsOSBAQCB2b2lkIGludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZW5naW5lLT5oYW5nY2hlY2suYWN0aW9uX3RpbWVzdGFtcCA9IGppZmZpZXM7CiB9CiAKLXZvaWQgaW50ZWxfaGFuZ2NoZWNrX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit2b2lkIGludGVsX2d0X2luaXRfaGFuZ2NoZWNrKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7Ci0JSU5JVF9ERUxBWUVEX1dPUksoJmk5MTUtPmdwdV9lcnJvci5oYW5nY2hlY2tfd29yaywKLQkJCSAgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZCk7CisJSU5JVF9ERUxBWUVEX1dPUksoJmd0LT5oYW5nY2hlY2sud29yaywgaGFuZ2NoZWNrX2VsYXBzZWQpOwogfQogCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCmluZGV4IDgyYjdhY2UuLmQ0MjU4NDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCkBAIC0xMzYsOSArMTM2LDEyIEBACiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmgiCisjaW5jbHVkZSAiaTkxNV9wZXJmLmgiCisjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogI2luY2x1ZGUgImk5MTVfdmdwdS5oIgogI2luY2x1ZGUgImludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImludGVsX2d0LmgiCisjaW5jbHVkZSAiaW50ZWxfZ3RfcG0uaCIKICNpbmNsdWRlICJpbnRlbF9scmNfcmVnLmgiCiAjaW5jbHVkZSAiaW50ZWxfbW9jcy5oIgogI2luY2x1ZGUgImludGVsX3Jlc2V0LmgiCkBAIC0xNjEsNiArMTY0LDE1IEBACiAjZGVmaW5lIEdFTjhfQ1RYX1NUQVRVU19DT01QTEVURURfTUFTSyBcCiAJIChHRU44X0NUWF9TVEFUVVNfQ09NUExFVEUgfCBHRU44X0NUWF9TVEFUVVNfUFJFRU1QVEVEKQogCisjZGVmaW5lIENUWF9ERVNDX0ZPUkNFX1JFU1RPUkUgQklUX1VMTCgyKQorCisjZGVmaW5lIEdFTjEyX0NUWF9TVEFUVVNfU1dJVENIRURfVE9fTkVXX1FVRVVFCSgweDEpIC8qIGxvd2VyIGNzYiBkd29yZCAqLworI2RlZmluZSBHRU4xMl9DVFhfU1dJVENIX0RFVEFJTChjc2JfZHcpCSgoY3NiX2R3KSAmIDB4RikgLyogdXBwZXIgY3NiIGR3b3JkICovCisjZGVmaW5lIEdFTjEyX0NTQl9TV19DVFhfSURfTUFTSwkJR0VOTUFTSygyNSwgMTUpCisjZGVmaW5lIEdFTjEyX0lETEVfQ1RYX0lECQkweDdGRgorI2RlZmluZSBHRU4xMl9DU0JfQ1RYX1ZBTElEKGNzYl9kdykgXAorCShGSUVMRF9HRVQoR0VOMTJfQ1NCX1NXX0NUWF9JRF9NQVNLLCBjc2JfZHcpICE9IEdFTjEyX0lETEVfQ1RYX0lEKQorCiAvKiBUeXBpY2FsIHNpemUgb2YgdGhlIGF2ZXJhZ2UgcmVxdWVzdCAoMiBwaXBlY29udHJvbHMgYW5kIGEgTUlfQkIpICovCiAjZGVmaW5lIEVYRUNMSVNUU19SRVFVRVNUX1NJWkUgNjQgLyogYnl0ZXMgKi8KICNkZWZpbmUgV0FfVEFJTF9EV09SRFMgMgpAQCAtMjE0LDEzICsyMjYsMzQgQEAgc3RhdGljIHN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAqdG9fdmlydHVhbF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiBjb250YWluZXJfb2YoZW5naW5lLCBzdHJ1Y3QgdmlydHVhbF9lbmdpbmUsIGJhc2UpOwogfQogCi1zdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKLQkJCQkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CitzdGF0aWMgaW50IF9fZXhlY2xpc3RzX2NvbnRleHRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAorCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKKwogc3RhdGljIHZvaWQgZXhlY2xpc3RzX2luaXRfcmVnX3N0YXRlKHUzMiAqcmVnX3N0YXRlLAogCQkJCSAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJCSAgICAgc3RydWN0IGludGVsX3JpbmcgKnJpbmcpOwogCitzdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9od3NfcHJlZW1wdF9hZGRyZXNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlyZXR1cm4gKGk5MTVfZ2d0dF9vZmZzZXQoZW5naW5lLT5zdGF0dXNfcGFnZS52bWEpICsKKwkJSTkxNV9HRU1fSFdTX1BSRUVNUFRfQUREUik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorcmluZ19zZXRfcGF1c2VkKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHN0YXRlKQoreworCS8qCisJICogV2UgaW5zcGVjdCBIV1NfUFJFRU1QVCB3aXRoIGEgc2VtYXBob3JlIGluc2lkZQorCSAqIGVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIuIElmIHRoZSBkd29yZCBpcyB0cnVlLAorCSAqIHRoZSByaW5nIGlzIHBhdXNlZCBhcyB0aGUgc2VtYXBob3JlIHdpbGwgYnVzeXdhaXQKKwkgKiB1bnRpbCB0aGUgZHdvcmQgaXMgZmFsc2UuCisJICovCisJZW5naW5lLT5zdGF0dXNfcGFnZS5hZGRyW0k5MTVfR0VNX0hXU19QUkVFTVBUXSA9IHN0YXRlOworCWlmIChzdGF0ZSkKKwkJd21iKCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGk5MTVfcHJpb2xpc3QgKnRvX3ByaW9saXN0KHN0cnVjdCByYl9ub2RlICpyYikKIHsKIAlyZXR1cm4gcmJfZW50cnkocmIsIHN0cnVjdCBpOTE1X3ByaW9saXN0LCBub2RlKTsKQEAgLTIzNiw2ICsyNjksMTcgQEAgc3RhdGljIGludCBlZmZlY3RpdmVfcHJpbyhjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAlpbnQgcHJpbyA9IHJxX3ByaW8ocnEpOwogCiAJLyoKKwkgKiBJZiB0aGlzIHJlcXVlc3QgaXMgc3BlY2lhbCBhbmQgbXVzdCBub3QgYmUgaW50ZXJydXB0ZWQgYXQgYW55CisJICogY29zdCwgc28gYmUgaXQuIE5vdGUgd2UgYXJlIG9ubHkgY2hlY2tpbmcgdGhlIG1vc3QgcmVjZW50IHJlcXVlc3QKKwkgKiBpbiB0aGUgY29udGV4dCBhbmQgc28gbWF5IGJlIG1hc2tpbmcgYW4gZWFybGllciB2aXAgcmVxdWVzdC4gSXQKKwkgKiBpcyBob3BlZCB0aGF0IHVuZGVyIHRoZSBjb25kaXRpb25zIHdoZXJlIG5vcHJlZW1wdCBpcyB1c2VkLCB0aGlzCisJICogd2lsbCBub3QgbWF0dGVyIChpLmUuIGFsbCByZXF1ZXN0cyB0byB0aGF0IGNvbnRleHQgd2lsbCBiZQorCSAqIG5vcHJlZW1wdCBmb3IgYXMgbG9uZyBhcyBkZXNpcmVkKS4KKwkgKi8KKwlpZiAoaTkxNV9yZXF1ZXN0X2hhc19ub3ByZWVtcHQocnEpKQorCQlwcmlvID0gSTkxNV9QUklPUklUWV9VTlBSRUVNUFRBQkxFOworCisJLyoKIAkgKiBPbiB1bndpbmRpbmcgdGhlIGFjdGl2ZSByZXF1ZXN0LCB3ZSBnaXZlIGl0IGEgcHJpb3JpdHkgYnVtcAogCSAqIGlmIGl0IGhhcyBjb21wbGV0ZWQgd2FpdGluZyBvbiBhbnkgc2VtYXBob3JlLiBJZiB3ZSBrbm93IHRoYXQKIAkgKiB0aGUgcmVxdWVzdCBoYXMgYWxyZWFkeSBzdGFydGVkLCB3ZSBjYW4gcHJldmVudCBhbiB1bndhbnRlZApAQCAtMjQ1LDYgKzI4OSw3IEBAIHN0YXRpYyBpbnQgZWZmZWN0aXZlX3ByaW8oY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJCXByaW8gfD0gSTkxNV9QUklPUklUWV9OT1NFTUFQSE9SRTsKIAogCS8qIFJlc3RyaWN0IG1lcmUgV0FJVCBib29zdHMgZnJvbSB0cmlnZ2VyaW5nIHByZWVtcHRpb24gKi8KKwlCVUlMRF9CVUdfT04oX19OT19QUkVFTVBUSU9OICYgfkk5MTVfUFJJT1JJVFlfTUFTSyk7IC8qIG9ubHkgaW50ZXJuYWwgKi8KIAlyZXR1cm4gcHJpbyB8IF9fTk9fUFJFRU1QVElPTjsKIH0KIApAQCAtMjcxLDEwICszMTYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbmVlZF9wcmVlbXB0KGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIHsKIAlpbnQgbGFzdF9wcmlvOwogCi0JaWYgKCFlbmdpbmUtPnByZWVtcHRfY29udGV4dCkKLQkJcmV0dXJuIGZhbHNlOwotCi0JaWYgKGk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKQorCWlmICghaW50ZWxfZW5naW5lX2hhc19zZW1hcGhvcmVzKGVuZ2luZSkpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCkBAIC0zMzgsOSArMzgwLDYgQEAgX19tYXliZV91bnVzZWQgc3RhdGljIGlubGluZSBib29sCiBhc3NlcnRfcHJpb3JpdHlfcXVldWUoY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcHJldiwKIAkJICAgICAgY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqbmV4dCkKIHsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzID0KLQkJJnByZXYtPmVuZ2luZS0+ZXhlY2xpc3RzOwotCiAJLyoKIAkgKiBXaXRob3V0IHByZWVtcHRpb24sIHRoZSBwcmV2IG1heSByZWZlciB0byB0aGUgc3RpbGwgYWN0aXZlIGVsZW1lbnQKIAkgKiB3aGljaCB3ZSByZWZ1c2UgdG8gbGV0IGdvLgpAQCAtMzQ4LDcgKzM4Nyw3IEBAIGFzc2VydF9wcmlvcml0eV9xdWV1ZShjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpwcmV2LAogCSAqIEV2ZW4gd2l0aCBwcmVlbXB0aW9uLCB0aGVyZSBhcmUgdGltZXMgd2hlbiB3ZSB0aGluayBpdCBpcyBiZXR0ZXIgbm90CiAJICogdG8gcHJlZW1wdCBhbmQgbGVhdmUgYW4gb3N0ZW5zaWJseSBsb3dlciBwcmlvcml0eSByZXF1ZXN0IGluIGZsaWdodC4KIAkgKi8KLQlpZiAocG9ydF9yZXF1ZXN0KGV4ZWNsaXN0cy0+cG9ydCkgPT0gcHJldikKKwlpZiAoaTkxNV9yZXF1ZXN0X2lzX2FjdGl2ZShwcmV2KSkKIAkJcmV0dXJuIHRydWU7CiAKIAlyZXR1cm4gcnFfcHJpbyhwcmV2KSA+PSBycV9wcmlvKG5leHQpOwpAQCAtMzg5LDEzICs0MjgsMTcgQEAgbHJjX2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJQlVJTERfQlVHX09OKE1BWF9DT05URVhUX0hXX0lEID4gKEJJVChHRU44X0NUWF9JRF9XSURUSCkpKTsKIAlCVUlMRF9CVUdfT04oR0VOMTFfTUFYX0NPTlRFWFRfSFdfSUQgPiAoQklUKEdFTjExX1NXX0NUWF9JRF9XSURUSCkpKTsKIAotCWRlc2MgPSBjdHgtPmRlc2NfdGVtcGxhdGU7CQkJCS8qIGJpdHMgIDAtMTEgKi8KLQlHRU1fQlVHX09OKGRlc2MgJiBHRU5NQVNLX1VMTCg2MywgMTIpKTsKKwlkZXNjID0gSU5URUxfTEVHQUNZXzMyQl9DT05URVhUOworCWlmIChpOTE1X3ZtX2lzXzRsdmwoY2UtPnZtKSkKKwkJZGVzYyA9IElOVEVMX0xFR0FDWV82NEJfQ09OVEVYVDsKKwlkZXNjIDw8PSBHRU44X0NUWF9BRERSRVNTSU5HX01PREVfU0hJRlQ7CisKKwlkZXNjIHw9IEdFTjhfQ1RYX1ZBTElEIHwgR0VOOF9DVFhfUFJJVklMRUdFOworCWlmIChJU19HRU4oZW5naW5lLT5pOTE1LCA4KSkKKwkJZGVzYyB8PSBHRU44X0NUWF9MM0xMQ19DT0hFUkVOVDsKIAogCWRlc2MgfD0gaTkxNV9nZ3R0X29mZnNldChjZS0+c3RhdGUpICsgTFJDX0hFQURFUl9QQUdFUyAqIFBBR0VfU0laRTsKIAkJCQkJCQkJLyogYml0cyAxMi0zMSAqLwotCUdFTV9CVUdfT04oZGVzYyAmIEdFTk1BU0tfVUxMKDYzLCAzMikpOwotCiAJLyoKIAkgKiBUaGUgZm9sbG93aW5nIDMyYml0cyBhcmUgY29waWVkIGludG8gdGhlIE9BIHJlcG9ydHMgKGR3b3JkIDIpLgogCSAqIENvbnNpZGVyIHVwZGF0aW5nIG9hX2dldF9yZW5kZXJfY3R4X2lkIGluIGk5MTVfcGVyZi5jIHdoZW4gY2hhbmdpbmcKQEAgLTQ0MiwxMyArNDg1LDExIEBAIF9fdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpvd25lcjsKIAogCQlpZiAoaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpCi0JCQlicmVhazsKKwkJCWNvbnRpbnVlOyAvKiBYWFggKi8KIAogCQlfX2k5MTVfcmVxdWVzdF91bnN1Ym1pdChycSk7CiAJCXVud2luZF93YV90YWlsKHJxKTsKIAotCQlHRU1fQlVHX09OKHJxLT5od19jb250ZXh0LT5pbmZsaWdodCk7Ci0KIAkJLyoKIAkJICogUHVzaCB0aGUgcmVxdWVzdCBiYWNrIGludG8gdGhlIHF1ZXVlIGZvciBsYXRlciByZXN1Ym1pc3Npb24uCiAJCSAqIElmIHRoaXMgcmVxdWVzdCBpcyBub3QgbmF0aXZlIHRvIHRoaXMgcGh5c2ljYWwgZW5naW5lIChpLmUuCkBAIC00NjgsNiArNTA5LDE5IEBAIF9fdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJbGlzdF9tb3ZlKCZycS0+c2NoZWQubGluaywgcGwpOwogCQkJYWN0aXZlID0gcnE7CiAJCX0gZWxzZSB7CisJCQkvKgorCQkJICogRGVjb3VwbGUgdGhlIHZpcnR1YWwgYnJlYWRjcnVtYiBiZWZvcmUgbW92aW5nIGl0CisJCQkgKiBiYWNrIHRvIHRoZSB2aXJ0dWFsIGVuZ2luZSAtLSB3ZSBkb24ndCB3YW50IHRoZQorCQkJICogcmVxdWVzdCB0byBjb21wbGV0ZSBpbiB0aGUgYmFja2dyb3VuZCBhbmQgdHJ5CisJCQkgKiBhbmQgY2FuY2VsIHRoZSBicmVhZGNydW1iIG9uIHRoZSB2aXJ0dWFsIGVuZ2luZQorCQkJICogKGluc3RlYWQgb2YgdGhlIG9sZCBlbmdpbmUgd2hlcmUgaXQgaXMgbGlua2VkKSEKKwkJCSAqLworCQkJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklULAorCQkJCSAgICAgJnJxLT5mZW5jZS5mbGFncykpIHsKKwkJCQlzcGluX2xvY2soJnJxLT5sb2NrKTsKKwkJCQlpOTE1X3JlcXVlc3RfY2FuY2VsX2JyZWFkY3J1bWIocnEpOworCQkJCXNwaW5fdW5sb2NrKCZycS0+bG9jayk7CisJCQl9CiAJCQlycS0+ZW5naW5lID0gb3duZXI7CiAJCQlvd25lci0+c3VibWl0X3JlcXVlc3QocnEpOwogCQkJYWN0aXZlID0gTlVMTDsKQEAgLTUwMCwzMiArNTU0LDQ1IEBAIGV4ZWNsaXN0c19jb250ZXh0X3N0YXR1c19jaGFuZ2Uoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHVuc2lnbmVkIGxvbmcgc3RhdHVzKQogCQkJCSAgIHN0YXR1cywgcnEpOwogfQogCi1pbmxpbmUgdm9pZAotZXhlY2xpc3RzX3VzZXJfYmVnaW4oc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cywKLQkJICAgICBjb25zdCBzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqCitfX2V4ZWNsaXN0c19zY2hlZHVsZV9pbihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKLQlleGVjbGlzdHNfc2V0X2FjdGl2ZV9vbmNlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9VU0VSKTsKLX0KKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lID0gcnEtPmVuZ2luZTsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqIGNvbnN0IGNlID0gcnEtPmh3X2NvbnRleHQ7CiAKLWlubGluZSB2b2lkCi1leGVjbGlzdHNfdXNlcl9lbmQoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykKLXsKLQlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9VU0VSKTsKLX0KKwlpbnRlbF9jb250ZXh0X2dldChjZSk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZAotZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfaW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCi17Ci0JR0VNX0JVR19PTihycS0+aHdfY29udGV4dC0+aW5mbGlnaHQpOwotCisJaW50ZWxfZ3RfcG1fZ2V0KGVuZ2luZS0+Z3QpOwogCWV4ZWNsaXN0c19jb250ZXh0X3N0YXR1c19jaGFuZ2UocnEsIElOVEVMX0NPTlRFWFRfU0NIRURVTEVfSU4pOwotCWludGVsX2VuZ2luZV9jb250ZXh0X2luKHJxLT5lbmdpbmUpOwotCXJxLT5od19jb250ZXh0LT5pbmZsaWdodCA9IHJxLT5lbmdpbmU7CisJaW50ZWxfZW5naW5lX2NvbnRleHRfaW4oZW5naW5lKTsKKworCXJldHVybiBlbmdpbmU7CiB9CiAKLXN0YXRpYyB2b2lkIGtpY2tfc2libGluZ3Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgorZXhlY2xpc3RzX3NjaGVkdWxlX2luKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBpbnQgaWR4KQogewotCXN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAqdmUgPSB0b192aXJ0dWFsX2VuZ2luZShycS0+aHdfY29udGV4dC0+ZW5naW5lKTsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqIGNvbnN0IGNlID0gcnEtPmh3X2NvbnRleHQ7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqb2xkOworCisJR0VNX0JVR19PTighaW50ZWxfZW5naW5lX3BtX2lzX2F3YWtlKHJxLT5lbmdpbmUpKTsKKwl0cmFjZV9pOTE1X3JlcXVlc3RfaW4ocnEsIGlkeCk7CisKKwlvbGQgPSBSRUFEX09OQ0UoY2UtPmluZmxpZ2h0KTsKKwlkbyB7CisJCWlmICghb2xkKSB7CisJCQlXUklURV9PTkNFKGNlLT5pbmZsaWdodCwgX19leGVjbGlzdHNfc2NoZWR1bGVfaW4ocnEpKTsKKwkJCWJyZWFrOworCQl9CisJfSB3aGlsZSAoIXRyeV9jbXB4Y2hnKCZjZS0+aW5mbGlnaHQsICZvbGQsIHB0cl9pbmMob2xkKSkpOworCisJR0VNX0JVR19PTihpbnRlbF9jb250ZXh0X2luZmxpZ2h0KGNlKSAhPSBycS0+ZW5naW5lKTsKKwlyZXR1cm4gaTkxNV9yZXF1ZXN0X2dldChycSk7Cit9CisKK3N0YXRpYyB2b2lkIGtpY2tfc2libGluZ3Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKK3sKKwlzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKnZlID0gY29udGFpbmVyX29mKGNlLCB0eXBlb2YoKnZlKSwgY29udGV4dCk7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqbmV4dCA9IFJFQURfT05DRSh2ZS0+cmVxdWVzdCk7CiAKIAlpZiAobmV4dCAmJiBuZXh0LT5leGVjdXRpb25fbWFzayAmIH5ycS0+ZXhlY3V0aW9uX21hc2spCkBAIC01MzMsMjkgKzYwMCw1MyBAQCBzdGF0aWMgdm9pZCBraWNrX3NpYmxpbmdzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKLWV4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxlX291dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdW5zaWduZWQgbG9uZyBzdGF0dXMpCitfX2V4ZWNsaXN0c19zY2hlZHVsZV9vdXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCisJCQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSkKIHsKLQlycS0+aHdfY29udGV4dC0+aW5mbGlnaHQgPSBOVUxMOwotCWludGVsX2VuZ2luZV9jb250ZXh0X291dChycS0+ZW5naW5lKTsKLQlleGVjbGlzdHNfY29udGV4dF9zdGF0dXNfY2hhbmdlKHJxLCBzdGF0dXMpOwotCXRyYWNlX2k5MTVfcmVxdWVzdF9vdXQocnEpOworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICogY29uc3QgY2UgPSBycS0+aHdfY29udGV4dDsKKworCWludGVsX2VuZ2luZV9jb250ZXh0X291dChlbmdpbmUpOworCWV4ZWNsaXN0c19jb250ZXh0X3N0YXR1c19jaGFuZ2UocnEsIElOVEVMX0NPTlRFWFRfU0NIRURVTEVfT1VUKTsKKwlpbnRlbF9ndF9wbV9wdXQoZW5naW5lLT5ndCk7CiAKIAkvKgotCSAqIElmIHRoaXMgaXMgcGFydCBvZiBhIHZpcnR1YWwgZW5naW5lLCBpdHMgbmV4dCByZXF1ZXN0IG1heSBoYXZlCi0JICogYmVlbiBibG9ja2VkIHdhaXRpbmcgZm9yIGFjY2VzcyB0byB0aGUgYWN0aXZlIGNvbnRleHQuIFdlIGhhdmUKLQkgKiB0byBraWNrIGFsbCB0aGUgc2libGluZ3MgYWdhaW4gaW4gY2FzZSB3ZSBuZWVkIHRvIHN3aXRjaCAoZS5nLgotCSAqIHRoZSBuZXh0IHJlcXVlc3QgaXMgbm90IHJ1bm5hYmxlIG9uIHRoaXMgZW5naW5lKS4gSG9wZWZ1bGx5LAotCSAqIHdlIHdpbGwgYWxyZWFkeSBoYXZlIHN1Ym1pdHRlZCB0aGUgbmV4dCByZXF1ZXN0IGJlZm9yZSB0aGUKLQkgKiB0YXNrbGV0IHJ1bnMgYW5kIGRvIG5vdCBuZWVkIHRvIHJlYnVpbGQgZWFjaCB2aXJ0dWFsIHRyZWUKLQkgKiBhbmQga2ljayBldmVyeW9uZSBhZ2Fpbi4KKwkgKiBJZiB0aGlzIGlzIHBhcnQgb2YgYSB2aXJ0dWFsIGVuZ2luZSwgaXRzIG5leHQgcmVxdWVzdCBtYXkKKwkgKiBoYXZlIGJlZW4gYmxvY2tlZCB3YWl0aW5nIGZvciBhY2Nlc3MgdG8gdGhlIGFjdGl2ZSBjb250ZXh0LgorCSAqIFdlIGhhdmUgdG8ga2ljayBhbGwgdGhlIHNpYmxpbmdzIGFnYWluIGluIGNhc2Ugd2UgbmVlZCB0bworCSAqIHN3aXRjaCAoZS5nLiB0aGUgbmV4dCByZXF1ZXN0IGlzIG5vdCBydW5uYWJsZSBvbiB0aGlzCisJICogZW5naW5lKS4gSG9wZWZ1bGx5LCB3ZSB3aWxsIGFscmVhZHkgaGF2ZSBzdWJtaXR0ZWQgdGhlIG5leHQKKwkgKiByZXF1ZXN0IGJlZm9yZSB0aGUgdGFza2xldCBydW5zIGFuZCBkbyBub3QgbmVlZCB0byByZWJ1aWxkCisJICogZWFjaCB2aXJ0dWFsIHRyZWUgYW5kIGtpY2sgZXZlcnlvbmUgYWdhaW4uCiAJICovCi0JaWYgKHJxLT5lbmdpbmUgIT0gcnEtPmh3X2NvbnRleHQtPmVuZ2luZSkKLQkJa2lja19zaWJsaW5ncyhycSk7CisJaWYgKGNlLT5lbmdpbmUgIT0gZW5naW5lKQorCQlraWNrX3NpYmxpbmdzKHJxLCBjZSk7CisKKwlpbnRlbF9jb250ZXh0X3B1dChjZSk7CiB9CiAKLXN0YXRpYyB1NjQgZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQorc3RhdGljIGlubGluZSB2b2lkCitleGVjbGlzdHNfc2NoZWR1bGVfb3V0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICogY29uc3QgY2UgPSBycS0+aHdfY29udGV4dDsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpjdXIsICpvbGQ7CisKKwl0cmFjZV9pOTE1X3JlcXVlc3Rfb3V0KHJxKTsKKwlHRU1fQlVHX09OKGludGVsX2NvbnRleHRfaW5mbGlnaHQoY2UpICE9IHJxLT5lbmdpbmUpOworCisJb2xkID0gUkVBRF9PTkNFKGNlLT5pbmZsaWdodCk7CisJZG8KKwkJY3VyID0gcHRyX3VubWFza19iaXRzKG9sZCwgMikgPyBwdHJfZGVjKG9sZCkgOiBOVUxMOworCXdoaWxlICghdHJ5X2NtcHhjaGcoJmNlLT5pbmZsaWdodCwgJm9sZCwgY3VyKSk7CisJaWYgKCFjdXIpCisJCV9fZXhlY2xpc3RzX3NjaGVkdWxlX291dChycSwgb2xkKTsKKworCWk5MTVfcmVxdWVzdF9wdXQocnEpOworfQorCitzdGF0aWMgdTY0IGV4ZWNsaXN0c191cGRhdGVfY29udGV4dChjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBycS0+aHdfY29udGV4dDsKKwl1NjQgZGVzYzsKIAogCWNlLT5scmNfcmVnX3N0YXRlW0NUWF9SSU5HX1RBSUwgKyAxXSA9CiAJCWludGVsX3Jpbmdfc2V0X3RhaWwocnEtPnJpbmcsIHJxLT50YWlsKTsKQEAgLTU3Niw3ICs2NjcsMTEgQEAgc3RhdGljIHU2NCBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJICogd21iKS4KIAkgKi8KIAltYigpOwotCXJldHVybiBjZS0+bHJjX2Rlc2M7CisKKwlkZXNjID0gY2UtPmxyY19kZXNjOworCWNlLT5scmNfZGVzYyAmPSB+Q1RYX0RFU0NfRk9SQ0VfUkVTVE9SRTsKKworCXJldHVybiBkZXNjOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVfZGVzYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzLCB1NjQgZGVzYywgdTMyIHBvcnQpCkBAIC01OTAsMTIgKzY4NSw2NSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVfZGVzYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzLCB1NjQgZGVzYwogCX0KIH0KIAorc3RhdGljIF9fbWF5YmVfdW51c2VkIHZvaWQKK3RyYWNlX3BvcnRzKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMsCisJICAgIGNvbnN0IGNoYXIgKm1zZywKKwkgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqIGNvbnN0ICpwb3J0cykKK3sKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQorCQljb250YWluZXJfb2YoZXhlY2xpc3RzLCB0eXBlb2YoKmVuZ2luZSksIGV4ZWNsaXN0cyk7CisKKwlHRU1fVFJBQ0UoIiVzOiAlcyB7ICVsbHg6JWxsZCVzLCAlbGx4OiVsbGQgfVxuIiwKKwkJICBlbmdpbmUtPm5hbWUsIG1zZywKKwkJICBwb3J0c1swXS0+ZmVuY2UuY29udGV4dCwKKwkJICBwb3J0c1swXS0+ZmVuY2Uuc2Vxbm8sCisJCSAgaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChwb3J0c1swXSkgPyAiISIgOgorCQkgIGk5MTVfcmVxdWVzdF9zdGFydGVkKHBvcnRzWzBdKSA/ICIqIiA6CisJCSAgIiIsCisJCSAgcG9ydHNbMV0gPyBwb3J0c1sxXS0+ZmVuY2UuY29udGV4dCA6IDAsCisJCSAgcG9ydHNbMV0gPyBwb3J0c1sxXS0+ZmVuY2Uuc2Vxbm8gOiAwKTsKK30KKworc3RhdGljIF9fbWF5YmVfdW51c2VkIGJvb2wKK2Fzc2VydF9wZW5kaW5nX3ZhbGlkKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMsCisJCSAgICAgY29uc3QgY2hhciAqbXNnKQoreworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKiBjb25zdCAqcG9ydCwgKnJxOworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IE5VTEw7CisKKwl0cmFjZV9wb3J0cyhleGVjbGlzdHMsIG1zZywgZXhlY2xpc3RzLT5wZW5kaW5nKTsKKworCWlmICghZXhlY2xpc3RzLT5wZW5kaW5nWzBdKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoZXhlY2xpc3RzLT5wZW5kaW5nW2V4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKV0pCisJCXJldHVybiBmYWxzZTsKKworCWZvciAocG9ydCA9IGV4ZWNsaXN0cy0+cGVuZGluZzsgKHJxID0gKnBvcnQpOyBwb3J0KyspIHsKKwkJaWYgKGNlID09IHJxLT5od19jb250ZXh0KQorCQkJcmV0dXJuIGZhbHNlOworCisJCWNlID0gcnEtPmh3X2NvbnRleHQ7CisJCWlmIChpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJxKSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChpOTE1X2FjdGl2ZV9pc19pZGxlKCZjZS0+YWN0aXZlKSkKKwkJCXJldHVybiBmYWxzZTsKKworCQlpZiAoIWk5MTVfdm1hX2lzX3Bpbm5lZChjZS0+c3RhdGUpKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiBjZTsKK30KKwogc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9wb3J0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKLQlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0cy0+cG9ydDsKIAl1bnNpZ25lZCBpbnQgbjsKIAorCUdFTV9CVUdfT04oIWFzc2VydF9wZW5kaW5nX3ZhbGlkKGV4ZWNsaXN0cywgInN1Ym1pdCIpKTsKKwogCS8qCiAJICogV2UgY2FuIHNraXAgYWNxdWlyaW5nIGludGVsX3J1bnRpbWVfcG1fZ2V0KCkgaGVyZSBhcyBpdCB3YXMgdGFrZW4KIAkgKiBvbiBvdXIgYmVoYWxmIGJ5IHRoZSByZXF1ZXN0IChzZWUgaTkxNV9nZW1fbWFya19idXN5KCkpIGFuZCBpdCB3aWxsCkBAIC02MDQsNyArNzUyLDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9wb3J0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICogdGhhdCBhbGwgRUxTUCBhcmUgZHJhaW5lZCBpLmUuIHdlIGhhdmUgcHJvY2Vzc2VkIHRoZSBDU0IsCiAJICogYmVmb3JlIGFsbG93aW5nIG91cnNlbHZlcyB0byBpZGxlIGFuZCBjYWxsaW5nIGludGVsX3J1bnRpbWVfcG1fcHV0KCkuCiAJICovCi0JR0VNX0JVR19PTighaW50ZWxfd2FrZXJlZl9hY3RpdmUoJmVuZ2luZS0+d2FrZXJlZikpOworCUdFTV9CVUdfT04oIWludGVsX2VuZ2luZV9wbV9pc19hd2FrZShlbmdpbmUpKTsKIAogCS8qCiAJICogRUxTUSBub3RlOiB0aGUgc3VibWl0IHF1ZXVlIGlzIG5vdCBjbGVhcmVkIGFmdGVyIGJlaW5nIHN1Ym1pdHRlZApAQCAtNjEzLDM4ICs3NjEsMTYgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9wb3J0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICogb2YgZWxzcSBlbnRyaWVzLCBrZWVwIHRoaXMgaW4gbWluZCBiZWZvcmUgY2hhbmdpbmcgdGhlIGxvb3AgYmVsb3cuCiAJICovCiAJZm9yIChuID0gZXhlY2xpc3RzX251bV9wb3J0cyhleGVjbGlzdHMpOyBuLS07ICkgewotCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKLQkJdW5zaWduZWQgaW50IGNvdW50OwotCQl1NjQgZGVzYzsKKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEgPSBleGVjbGlzdHMtPnBlbmRpbmdbbl07CiAKLQkJcnEgPSBwb3J0X3VucGFjaygmcG9ydFtuXSwgJmNvdW50KTsKLQkJaWYgKHJxKSB7Ci0JCQlHRU1fQlVHX09OKGNvdW50ID4gIW4pOwotCQkJaWYgKCFjb3VudCsrKQotCQkJCWV4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxlX2luKHJxKTsKLQkJCXBvcnRfc2V0KCZwb3J0W25dLCBwb3J0X3BhY2socnEsIGNvdW50KSk7Ci0JCQlkZXNjID0gZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0KHJxKTsKLQkJCUdFTV9ERUJVR19FWEVDKHBvcnRbbl0uY29udGV4dF9pZCA9IHVwcGVyXzMyX2JpdHMoZGVzYykpOwotCi0JCQlHRU1fVFJBQ0UoIiVzIGluWyVkXTogIGN0eD0lZC4lZCwgZmVuY2UgJWxseDolbGxkIChjdXJyZW50ICVkKSwgcHJpbz0lZFxuIiwKLQkJCQkgIGVuZ2luZS0+bmFtZSwgbiwKLQkJCQkgIHBvcnRbbl0uY29udGV4dF9pZCwgY291bnQsCi0JCQkJICBycS0+ZmVuY2UuY29udGV4dCwgcnEtPmZlbmNlLnNlcW5vLAotCQkJCSAgaHdzcF9zZXFubyhycSksCi0JCQkJICBycV9wcmlvKHJxKSk7Ci0JCX0gZWxzZSB7Ci0JCQlHRU1fQlVHX09OKCFuKTsKLQkJCWRlc2MgPSAwOwotCQl9Ci0KLQkJd3JpdGVfZGVzYyhleGVjbGlzdHMsIGRlc2MsIG4pOworCQl3cml0ZV9kZXNjKGV4ZWNsaXN0cywKKwkJCSAgIHJxID8gZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0KHJxKSA6IDAsCisJCQkgICBuKTsKIAl9CiAKIAkvKiB3ZSBuZWVkIHRvIG1hbnVhbGx5IGxvYWQgdGhlIHN1Ym1pdCBxdWV1ZSAqLwogCWlmIChleGVjbGlzdHMtPmN0cmxfcmVnKQogCQl3cml0ZWwoRUxfQ1RSTF9MT0FELCBleGVjbGlzdHMtPmN0cmxfcmVnKTsKLQotCWV4ZWNsaXN0c19jbGVhcl9hY3RpdmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX0hXQUNLKTsKIH0KIAogc3RhdGljIGJvb2wgY3R4X3NpbmdsZV9wb3J0X3N1Ym1pc3Npb24oY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQpAQCAtNjY4LDYgKzc5NCw3IEBAIHN0YXRpYyBib29sIGNhbl9tZXJnZV9jdHgoY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHQgKnByZXYsCiBzdGF0aWMgYm9vbCBjYW5fbWVyZ2VfcnEoY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcHJldiwKIAkJCSBjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpuZXh0KQogeworCUdFTV9CVUdfT04ocHJldiA9PSBuZXh0KTsKIAlHRU1fQlVHX09OKCFhc3NlcnRfcHJpb3JpdHlfcXVldWUocHJldiwgbmV4dCkpOwogCiAJaWYgKCFjYW5fbWVyZ2VfY3R4KHByZXYtPmh3X2NvbnRleHQsIG5leHQtPmh3X2NvbnRleHQpKQpAQCAtNjc2LDU4ICs4MDMsNiBAQCBzdGF0aWMgYm9vbCBjYW5fbWVyZ2VfcnEoY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcHJldiwKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgcG9ydF9hc3NpZ24oc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQotewotCUdFTV9CVUdfT04ocnEgPT0gcG9ydF9yZXF1ZXN0KHBvcnQpKTsKLQotCWlmIChwb3J0X2lzc2V0KHBvcnQpKQotCQlpOTE1X3JlcXVlc3RfcHV0KHBvcnRfcmVxdWVzdChwb3J0KSk7Ci0KLQlwb3J0X3NldChwb3J0LCBwb3J0X3BhY2soaTkxNV9yZXF1ZXN0X2dldChycSksIHBvcnRfY291bnQocG9ydCkpKTsKLX0KLQotc3RhdGljIHZvaWQgaW5qZWN0X3ByZWVtcHRfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKLQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBlbmdpbmUtPnByZWVtcHRfY29udGV4dDsKLQl1bnNpZ25lZCBpbnQgbjsKLQotCUdFTV9CVUdfT04oZXhlY2xpc3RzLT5wcmVlbXB0X2NvbXBsZXRlX3N0YXR1cyAhPQotCQkgICB1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYykpOwotCi0JLyoKLQkgKiBTd2l0Y2ggdG8gb3VyIGVtcHR5IHByZWVtcHQgY29udGV4dCBzbwotCSAqIHRoZSBzdGF0ZSBvZiB0aGUgR1BVIGlzIGtub3duIChpZGxlKS4KLQkgKi8KLQlHRU1fVFJBQ0UoIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwotCWZvciAobiA9IGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKTsgLS1uOyApCi0JCXdyaXRlX2Rlc2MoZXhlY2xpc3RzLCAwLCBuKTsKLQotCXdyaXRlX2Rlc2MoZXhlY2xpc3RzLCBjZS0+bHJjX2Rlc2MsIG4pOwotCi0JLyogd2UgbmVlZCB0byBtYW51YWxseSBsb2FkIHRoZSBzdWJtaXQgcXVldWUgKi8KLQlpZiAoZXhlY2xpc3RzLT5jdHJsX3JlZykKLQkJd3JpdGVsKEVMX0NUUkxfTE9BRCwgZXhlY2xpc3RzLT5jdHJsX3JlZyk7Ci0KLQlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSyk7Ci0JZXhlY2xpc3RzX3NldF9hY3RpdmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpOwotCi0JKHZvaWQpSTkxNV9TRUxGVEVTVF9PTkxZKGV4ZWNsaXN0cy0+cHJlZW1wdF9oYW5nLmNvdW50KyspOwotfQotCi1zdGF0aWMgdm9pZCBjb21wbGV0ZV9wcmVlbXB0X2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykKLXsKLQlHRU1fQlVHX09OKCFleGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKSk7Ci0KLQlpZiAoaW5qZWN0X3ByZWVtcHRfaGFuZyhleGVjbGlzdHMpKQotCQlyZXR1cm47Ci0KLQlleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsKLQlfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKGNvbnRhaW5lcl9vZihleGVjbGlzdHMsCi0JCQkJCQkgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MsCi0JCQkJCQkgIGV4ZWNsaXN0cykpOwotfQotCiBzdGF0aWMgdm9pZCB2aXJ0dWFsX3VwZGF0ZV9yZWdpc3Rlcl9vZmZzZXRzKHUzMiAqcmVncywKIAkJCQkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKQEAgLTc5Miw3ICs4NjcsNyBAQCBzdGF0aWMgYm9vbCB2aXJ0dWFsX21hdGNoZXMoY29uc3Qgc3RydWN0IHZpcnR1YWxfZW5naW5lICp2ZSwKIAkgKiB3ZSByZXVzZSB0aGUgcmVnaXN0ZXIgb2Zmc2V0cykuIFRoaXMgaXMgYSB2ZXJ5IHNtYWxsCiAJICogaHlzdGVyc2lzIG9uIHRoZSBncmVlZHkgc2VlbGN0aW9uIGFsZ29yaXRobS4KIAkgKi8KLQlpbmZsaWdodCA9IFJFQURfT05DRSh2ZS0+Y29udGV4dC5pbmZsaWdodCk7CisJaW5mbGlnaHQgPSBpbnRlbF9jb250ZXh0X2luZmxpZ2h0KCZ2ZS0+Y29udGV4dCk7CiAJaWYgKGluZmxpZ2h0ICYmIGluZmxpZ2h0ICE9IGVuZ2luZSkKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC04MTUsMTMgKzg5MCwxMjAgQEAgc3RhdGljIHZvaWQgdmlydHVhbF94ZmVyX2JyZWFkY3J1bWJzKHN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAqdmUsCiAJc3Bpbl91bmxvY2soJm9sZC0+YnJlYWRjcnVtYnMuaXJxX2xvY2spOwogfQogCitzdGF0aWMgc3RydWN0IGk5MTVfcmVxdWVzdCAqCitsYXN0X2FjdGl2ZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQoreworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKiBjb25zdCAqbGFzdCA9IGV4ZWNsaXN0cy0+YWN0aXZlOworCisJd2hpbGUgKCpsYXN0ICYmIGk5MTVfcmVxdWVzdF9jb21wbGV0ZWQoKmxhc3QpKQorCQlsYXN0Kys7CisKKwlyZXR1cm4gKmxhc3Q7Cit9CisKK3N0YXRpYyB2b2lkIGRlZmVyX3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBsaXN0X2hlYWQgKiBjb25zdCBwbCkKK3sKKwlMSVNUX0hFQUQobGlzdCk7CisKKwkvKgorCSAqIFdlIHdhbnQgdG8gbW92ZSB0aGUgaW50ZXJydXB0ZWQgcmVxdWVzdCB0byB0aGUgYmFjayBvZgorCSAqIHRoZSByb3VuZC1yb2JpbiBsaXN0IChpLmUuIGl0cyBwcmlvcml0eSBsZXZlbCksIGJ1dAorCSAqIGluIGRvaW5nIHNvLCB3ZSBtdXN0IHRoZW4gbW92ZSBhbGwgcmVxdWVzdHMgdGhhdCB3ZXJlIGluCisJICogZmxpZ2h0IGFuZCB3ZXJlIHdhaXRpbmcgZm9yIHRoZSBpbnRlcnJ1cHRlZCByZXF1ZXN0IHRvCisJICogYmUgcnVuIGFmdGVyIGl0IGFnYWluLgorCSAqLworCWRvIHsKKwkJc3RydWN0IGk5MTVfZGVwZW5kZW5jeSAqcDsKKworCQlHRU1fQlVHX09OKGk5MTVfcmVxdWVzdF9pc19hY3RpdmUocnEpKTsKKwkJbGlzdF9tb3ZlX3RhaWwoJnJxLT5zY2hlZC5saW5rLCBwbCk7CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShwLCAmcnEtPnNjaGVkLndhaXRlcnNfbGlzdCwgd2FpdF9saW5rKSB7CisJCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp3ID0KKwkJCQljb250YWluZXJfb2YocC0+d2FpdGVyLCB0eXBlb2YoKncpLCBzY2hlZCk7CisKKwkJCS8qIExlYXZlIHNlbWFwaG9yZXMgc3Bpbm5pbmcgb24gdGhlIG90aGVyIGVuZ2luZXMgKi8KKwkJCWlmICh3LT5lbmdpbmUgIT0gcnEtPmVuZ2luZSkKKwkJCQljb250aW51ZTsKKworCQkJLyogTm8gd2FpdGVyIHNob3VsZCBzdGFydCBiZWZvcmUgaXRzIHNpZ25hbGVyICovCisJCQlHRU1fQlVHX09OKGk5MTVfcmVxdWVzdF9zdGFydGVkKHcpICYmCisJCQkJICAgIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKTsKKworCQkJR0VNX0JVR19PTihpOTE1X3JlcXVlc3RfaXNfYWN0aXZlKHcpKTsKKwkJCWlmIChsaXN0X2VtcHR5KCZ3LT5zY2hlZC5saW5rKSkKKwkJCQljb250aW51ZTsgLyogTm90IHlldCBzdWJtaXR0ZWQ7IHVucmVhZHkgKi8KKworCQkJaWYgKHJxX3ByaW8odykgPCBycV9wcmlvKHJxKSkKKwkJCQljb250aW51ZTsKKworCQkJR0VNX0JVR19PTihycV9wcmlvKHcpID4gcnFfcHJpbyhycSkpOworCQkJbGlzdF9tb3ZlX3RhaWwoJnctPnNjaGVkLmxpbmssICZsaXN0KTsKKwkJfQorCisJCXJxID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZsaXN0LCB0eXBlb2YoKnJxKSwgc2NoZWQubGluayk7CisJfSB3aGlsZSAocnEpOworfQorCitzdGF0aWMgdm9pZCBkZWZlcl9hY3RpdmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCisJcnEgPSBfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKGVuZ2luZSk7CisJaWYgKCFycSkKKwkJcmV0dXJuOworCisJZGVmZXJfcmVxdWVzdChycSwgaTkxNV9zY2hlZF9sb29rdXBfcHJpb2xpc3QoZW5naW5lLCBycV9wcmlvKHJxKSkpOworfQorCitzdGF0aWMgYm9vbAorbmVlZF90aW1lc2xpY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlpbnQgaGludDsKKworCWlmICghaW50ZWxfZW5naW5lX2hhc19zZW1hcGhvcmVzKGVuZ2luZSkpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChsaXN0X2lzX2xhc3QoJnJxLT5zY2hlZC5saW5rLCAmZW5naW5lLT5hY3RpdmUucmVxdWVzdHMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwloaW50ID0gbWF4KHJxX3ByaW8obGlzdF9uZXh0X2VudHJ5KHJxLCBzY2hlZC5saW5rKSksCisJCSAgIGVuZ2luZS0+ZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5X2hpbnQpOworCisJcmV0dXJuIGhpbnQgPj0gZWZmZWN0aXZlX3ByaW8ocnEpOworfQorCitzdGF0aWMgaW50Citzd2l0Y2hfcHJpbyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCWlmIChsaXN0X2lzX2xhc3QoJnJxLT5zY2hlZC5saW5rLCAmZW5naW5lLT5hY3RpdmUucmVxdWVzdHMpKQorCQlyZXR1cm4gSU5UX01JTjsKKworCXJldHVybiBycV9wcmlvKGxpc3RfbmV4dF9lbnRyeShycSwgc2NoZWQubGluaykpOworfQorCitzdGF0aWMgYm9vbAorZW5hYmxlX3RpbWVzbGljZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQoreworCWNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxID0gKmV4ZWNsaXN0cy0+YWN0aXZlOworCisJaWYgKGk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gZXhlY2xpc3RzLT5zd2l0Y2hfcHJpb3JpdHlfaGludCA+PSBlZmZlY3RpdmVfcHJpbyhycSk7Cit9CisKK3N0YXRpYyB2b2lkIHJlY29yZF9wcmVlbXB0aW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMpCit7CisJKHZvaWQpSTkxNV9TRUxGVEVTVF9PTkxZKGV4ZWNsaXN0cy0+cHJlZW1wdF9oYW5nLmNvdW50KyspOworfQorCiBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7Ci0Jc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQgPSBleGVjbGlzdHMtPnBvcnQ7Ci0JY29uc3Qgc3RydWN0IGV4ZWNsaXN0X3BvcnQgKiBjb25zdCBsYXN0X3BvcnQgPQotCQkmZXhlY2xpc3RzLT5wb3J0W2V4ZWNsaXN0cy0+cG9ydF9tYXNrXTsKLQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpsYXN0ID0gcG9ydF9yZXF1ZXN0KHBvcnQpOworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKipwb3J0ID0gZXhlY2xpc3RzLT5wZW5kaW5nOworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKiogY29uc3QgbGFzdF9wb3J0ID0gcG9ydCArIGV4ZWNsaXN0cy0+cG9ydF9tYXNrOworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKmxhc3Q7CiAJc3RydWN0IHJiX25vZGUgKnJiOwogCWJvb2wgc3VibWl0ID0gZmFsc2U7CiAKQEAgLTg2Nyw2NSArMTA0OSwxMDAgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlicmVhazsKIAl9CiAKKwkvKgorCSAqIElmIHRoZSBxdWV1ZSBpcyBoaWdoZXIgcHJpb3JpdHkgdGhhbiB0aGUgbGFzdAorCSAqIHJlcXVlc3QgaW4gdGhlIGN1cnJlbnRseSBhY3RpdmUgY29udGV4dCwgc3VibWl0IGFmcmVzaC4KKwkgKiBXZSB3aWxsIHJlc3VibWl0IGFnYWluIGFmdGVyd2FyZHMgaW4gY2FzZSB3ZSBuZWVkIHRvIHNwbGl0CisJICogdGhlIGFjdGl2ZSBjb250ZXh0IHRvIGludGVyamVjdCB0aGUgcHJlZW1wdGlvbiByZXF1ZXN0LAorCSAqIGkuZS4gd2Ugd2lsbCByZXRyaWdnZXIgcHJlZW1wdGlvbiBmb2xsb3dpbmcgdGhlIGFjayBpbiBjYXNlCisJICogb2YgdHJvdWJsZS4KKwkgKi8KKwlsYXN0ID0gbGFzdF9hY3RpdmUoZXhlY2xpc3RzKTsKIAlpZiAobGFzdCkgewotCQkvKgotCQkgKiBEb24ndCByZXN1Ym1pdCBvciBzd2l0Y2ggdW50aWwgYWxsIG91dHN0YW5kaW5nCi0JCSAqIHByZWVtcHRpb25zIChsaXRlLXJlc3RvcmUpIGFyZSBzZWVuLiBUaGVuIHdlCi0JCSAqIGtub3cgdGhlIG5leHQgcHJlZW1wdGlvbiBzdGF0dXMgd2Ugc2VlIGNvcnJlc3BvbmRzCi0JCSAqIHRvIHRoaXMgRUxTUCB1cGRhdGUuCi0JCSAqLwotCQlHRU1fQlVHX09OKCFleGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywKLQkJCQkJCUVYRUNMSVNUU19BQ1RJVkVfVVNFUikpOwotCQlHRU1fQlVHX09OKCFwb3J0X2NvdW50KCZwb3J0WzBdKSk7Ci0KLQkJLyoKLQkJICogSWYgd2Ugd3JpdGUgdG8gRUxTUCBhIHNlY29uZCB0aW1lIGJlZm9yZSB0aGUgSFcgaGFzIGhhZAotCQkgKiBhIGNoYW5jZSB0byByZXNwb25kIHRvIHRoZSBwcmV2aW91cyB3cml0ZSwgd2UgY2FuIGNvbmZ1c2UKLQkJICogdGhlIEhXIGFuZCBoaXQgInVuZGVmaW5lZCBiZWhhdmlvdXIiLiBBZnRlciB3cml0aW5nIHRvIEVMU1AsCi0JCSAqIHdlIG11c3QgdGhlbiB3YWl0IHVudGlsIHdlIHNlZSBhIGNvbnRleHQtc3dpdGNoIGV2ZW50IGZyb20KLQkJICogdGhlIEhXIHRvIGluZGljYXRlIHRoYXQgaXQgaGFzIGhhZCBhIGNoYW5jZSB0byByZXNwb25kLgotCQkgKi8KLQkJaWYgKCFleGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSykpCi0JCQlyZXR1cm47Ci0KIAkJaWYgKG5lZWRfcHJlZW1wdChlbmdpbmUsIGxhc3QsIHJiKSkgewotCQkJaW5qZWN0X3ByZWVtcHRfY29udGV4dChlbmdpbmUpOwotCQkJcmV0dXJuOworCQkJR0VNX1RSQUNFKCIlczogcHJlZW1wdGluZyBsYXN0PSVsbHg6JWxsZCwgcHJpbz0lZCwgaGludD0lZFxuIiwKKwkJCQkgIGVuZ2luZS0+bmFtZSwKKwkJCQkgIGxhc3QtPmZlbmNlLmNvbnRleHQsCisJCQkJICBsYXN0LT5mZW5jZS5zZXFubywKKwkJCQkgIGxhc3QtPnNjaGVkLmF0dHIucHJpb3JpdHksCisJCQkJICBleGVjbGlzdHMtPnF1ZXVlX3ByaW9yaXR5X2hpbnQpOworCQkJcmVjb3JkX3ByZWVtcHRpb24oZXhlY2xpc3RzKTsKKworCQkJLyoKKwkJCSAqIERvbid0IGxldCB0aGUgUklOR19IRUFEIGFkdmFuY2UgcGFzdCB0aGUgYnJlYWRjcnVtYgorCQkJICogYXMgd2UgdW53aW5kIChhbmQgdW50aWwgd2UgcmVzdWJtaXQpIHNvIHRoYXQgd2UgZG8KKwkJCSAqIG5vdCBhY2NpZGVudGFsbHkgdGVsbCBpdCB0byBnbyBiYWNrd2FyZHMuCisJCQkgKi8KKwkJCXJpbmdfc2V0X3BhdXNlZChlbmdpbmUsIDEpOworCisJCQkvKgorCQkJICogTm90ZSB0aGF0IHdlIGhhdmUgbm90IHN0b3BwZWQgdGhlIEdQVSBhdCB0aGlzIHBvaW50LAorCQkJICogc28gd2UgYXJlIHVud2luZGluZyB0aGUgaW5jb21wbGV0ZSByZXF1ZXN0cyBhcyB0aGV5CisJCQkgKiByZW1haW4gaW5mbGlnaHQgYW5kIHNvIGJ5IHRoZSB0aW1lIHdlIGRvIGNvbXBsZXRlCisJCQkgKiB0aGUgcHJlZW1wdGlvbiwgc29tZSBvZiB0aGUgdW53b3VuZCByZXF1ZXN0cyBtYXkKKwkJCSAqIGNvbXBsZXRlIQorCQkJICovCisJCQlfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKGVuZ2luZSk7CisKKwkJCS8qCisJCQkgKiBJZiB3ZSBuZWVkIHRvIHJldHVybiB0byB0aGUgcHJlZW1wdGVkIGNvbnRleHQsIHdlCisJCQkgKiBuZWVkIHRvIHNraXAgdGhlIGxpdGUtcmVzdG9yZSBhbmQgZm9yY2UgaXQgdG8KKwkJCSAqIHJlbG9hZCB0aGUgUklOR19UQUlMLiBPdGhlcndpc2UsIHRoZSBIVyBoYXMgYQorCQkJICogdGVuZGVuY3kgdG8gaWdub3JlIHVzIHJld2luZGluZyB0aGUgVEFJTCB0byB0aGUKKwkJCSAqIGVuZCBvZiBhbiBlYXJsaWVyIHJlcXVlc3QuCisJCQkgKi8KKwkJCWxhc3QtPmh3X2NvbnRleHQtPmxyY19kZXNjIHw9IENUWF9ERVNDX0ZPUkNFX1JFU1RPUkU7CisJCQlsYXN0ID0gTlVMTDsKKwkJfSBlbHNlIGlmIChuZWVkX3RpbWVzbGljZShlbmdpbmUsIGxhc3QpICYmCisJCQkgICAhdGltZXJfcGVuZGluZygmZW5naW5lLT5leGVjbGlzdHMudGltZXIpKSB7CisJCQlHRU1fVFJBQ0UoIiVzOiBleHBpcmVkIGxhc3Q9JWxseDolbGxkLCBwcmlvPSVkLCBoaW50PSVkXG4iLAorCQkJCSAgZW5naW5lLT5uYW1lLAorCQkJCSAgbGFzdC0+ZmVuY2UuY29udGV4dCwKKwkJCQkgIGxhc3QtPmZlbmNlLnNlcW5vLAorCQkJCSAgbGFzdC0+c2NoZWQuYXR0ci5wcmlvcml0eSwKKwkJCQkgIGV4ZWNsaXN0cy0+cXVldWVfcHJpb3JpdHlfaGludCk7CisKKwkJCXJpbmdfc2V0X3BhdXNlZChlbmdpbmUsIDEpOworCQkJZGVmZXJfYWN0aXZlKGVuZ2luZSk7CisKKwkJCS8qCisJCQkgKiBVbmxpa2UgZm9yIHByZWVtcHRpb24sIGlmIHdlIHJld2luZCBhbmQgY29udGludWUKKwkJCSAqIGV4ZWN1dGluZyB0aGUgc2FtZSBjb250ZXh0IGFzIHByZXZpb3VzbHkgYWN0aXZlLAorCQkJICogdGhlIG9yZGVyIG9mIGV4ZWN1dGlvbiB3aWxsIHJlbWFpbiB0aGUgc2FtZSBhbmQKKwkJCSAqIHRoZSB0YWlsIHdpbGwgb25seSBhZHZhbmNlLiBXZSBkbyBub3QgbmVlZCB0bworCQkJICogZm9yY2UgYSBmdWxsIGNvbnRleHQgcmVzdG9yZSwgYXMgYSBsaXRlLXJlc3RvcmUKKwkJCSAqIGlzIHN1ZmZpY2llbnQgdG8gcmVzYW1wbGUgdGhlIG1vbm90b25pYyBUQUlMLgorCQkJICoKKwkJCSAqIElmIHdlIHN3aXRjaCB0byBhbnkgb3RoZXIgY29udGV4dCwgc2ltaWxhcmx5IHdlCisJCQkgKiB3aWxsIG5vdCByZXdpbmQgVEFJTCBvZiBjdXJyZW50IGNvbnRleHQsIGFuZAorCQkJICogbm9ybWFsIHNhdmUvcmVzdG9yZSB3aWxsIHByZXNlcnZlIHN0YXRlIGFuZCBhbGxvdworCQkJICogdXMgdG8gbGF0ZXIgY29udGludWUgZXhlY3V0aW5nIHRoZSBzYW1lIHJlcXVlc3QuCisJCQkgKi8KKwkJCWxhc3QgPSBOVUxMOworCQl9IGVsc2UgeworCQkJLyoKKwkJCSAqIE90aGVyd2lzZSBpZiB3ZSBhbHJlYWR5IGhhdmUgYSByZXF1ZXN0IHBlbmRpbmcKKwkJCSAqIGZvciBleGVjdXRpb24gYWZ0ZXIgdGhlIGN1cnJlbnQgb25lLCB3ZSBjYW4KKwkJCSAqIGp1c3Qgd2FpdCB1bnRpbCB0aGUgbmV4dCBDUyBldmVudCBiZWZvcmUKKwkJCSAqIHF1ZXVpbmcgbW9yZS4gSW4gZWl0aGVyIGNhc2Ugd2Ugd2lsbCBmb3JjZSBhCisJCQkgKiBsaXRlLXJlc3RvcmUgcHJlZW1wdGlvbiBldmVudCwgYnV0IGlmIHdlIHdhaXQKKwkJCSAqIHdlIGhvcGVmdWxseSBjb2FsZXNjZSBzZXZlcmFsIHVwZGF0ZXMgaW50byBhIHNpbmdsZQorCQkJICogc3VibWlzc2lvbi4KKwkJCSAqLworCQkJaWYgKCFsaXN0X2lzX2xhc3QoJmxhc3QtPnNjaGVkLmxpbmssCisJCQkJCSAgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzKSkKKwkJCQlyZXR1cm47CisKKwkJCS8qCisJCQkgKiBXYUlkbGVMaXRlUmVzdG9yZTpiZHcsc2tsCisJCQkgKiBBcHBseSB0aGUgd2EgTk9PUHMgdG8gcHJldmVudAorCQkJICogcmluZzpIRUFEID09IHJxOlRBSUwgYXMgd2UgcmVzdWJtaXQgdGhlCisJCQkgKiByZXF1ZXN0LiBTZWUgZ2VuOF9lbWl0X2ZpbmlfYnJlYWRjcnVtYigpIGZvcgorCQkJICogd2hlcmUgd2UgcHJlcGFyZSB0aGUgcGFkZGluZyBhZnRlciB0aGUKKwkJCSAqIGVuZCBvZiB0aGUgcmVxdWVzdC4KKwkJCSAqLworCQkJbGFzdC0+dGFpbCA9IGxhc3QtPndhX3RhaWw7CiAJCX0KLQotCQkvKgotCQkgKiBJbiB0aGVvcnksIHdlIGNvdWxkIGNvYWxlc2NlIG1vcmUgcmVxdWVzdHMgb250bwotCQkgKiB0aGUgc2Vjb25kIHBvcnQgKHRoZSBmaXJzdCBwb3J0IGlzIGFjdGl2ZSwgd2l0aAotCQkgKiBubyBwcmVlbXB0aW9ucyBwZW5kaW5nKS4gSG93ZXZlciwgdGhhdCBtZWFucyB3ZQotCQkgKiB0aGVuIGhhdmUgdG8gZGVhbCB3aXRoIHRoZSBwb3NzaWJsZSBsaXRlLXJlc3RvcmUKLQkJICogb2YgdGhlIHNlY29uZCBwb3J0IChhcyB3ZSBzdWJtaXQgdGhlIEVMU1AsIHRoZXJlCi0JCSAqIG1heSBiZSBhIGNvbnRleHQtc3dpdGNoKSBidXQgYWxzbyB3ZSBtYXkgY29tcGxldGUKLQkJICogdGhlIHJlc3VibWlzc2lvbiBiZWZvcmUgdGhlIGNvbnRleHQtc3dpdGNoLiBFcmdvLAotCQkgKiBjb2FsZXNjaW5nIG9udG8gdGhlIHNlY29uZCBwb3J0IHdpbGwgY2F1c2UgYQotCQkgKiBwcmVlbXB0aW9uIGV2ZW50LCBidXQgd2UgY2Fubm90IHByZWRpY3Qgd2hldGhlcgotCQkgKiB0aGF0IHdpbGwgYWZmZWN0IHBvcnRbMF0gb3IgcG9ydFsxXS4KLQkJICoKLQkJICogSWYgdGhlIHNlY29uZCBwb3J0IGlzIGFscmVhZHkgYWN0aXZlLCB3ZSBjYW4gd2FpdAotCQkgKiB1bnRpbCB0aGUgbmV4dCBjb250ZXh0LXN3aXRjaCBiZWZvcmUgY29udGVtcGxhdGluZwotCQkgKiBuZXcgcmVxdWVzdHMuIFRoZSBHUFUgd2lsbCBiZSBidXN5IGFuZCB3ZSBzaG91bGQgYmUKLQkJICogYWJsZSB0byByZXN1Ym1pdCB0aGUgbmV3IEVMU1AgYmVmb3JlIGl0IGlkbGVzLAotCQkgKiBhdm9pZGluZyBwaXBlbGluZSBidWJibGVzIChtb21lbnRhcnkgcGF1c2VzIHdoZXJlCi0JCSAqIHRoZSBkcml2ZXIgaXMgdW5hYmxlIHRvIGtlZXAgdXAgdGhlIHN1cHBseSBvZiBuZXcKLQkJICogd29yaykuIEhvd2V2ZXIsIHdlIGhhdmUgdG8gZG91YmxlIGNoZWNrIHRoYXQgdGhlCi0JCSAqIHByaW9yaXRpZXMgb2YgdGhlIHBvcnRzIGhhdmVuJ3QgYmVlbiBzd2l0Y2guCi0JCSAqLwotCQlpZiAocG9ydF9jb3VudCgmcG9ydFsxXSkpCi0JCQlyZXR1cm47Ci0KLQkJLyoKLQkJICogV2FJZGxlTGl0ZVJlc3RvcmU6YmR3LHNrbAotCQkgKiBBcHBseSB0aGUgd2EgTk9PUHMgdG8gcHJldmVudAotCQkgKiByaW5nOkhFQUQgPT0gcnE6VEFJTCBhcyB3ZSByZXN1Ym1pdCB0aGUKLQkJICogcmVxdWVzdC4gU2VlIGdlbjhfZW1pdF9maW5pX2JyZWFkY3J1bWIoKSBmb3IKLQkJICogd2hlcmUgd2UgcHJlcGFyZSB0aGUgcGFkZGluZyBhZnRlciB0aGUKLQkJICogZW5kIG9mIHRoZSByZXF1ZXN0LgotCQkgKi8KLQkJbGFzdC0+dGFpbCA9IGxhc3QtPndhX3RhaWw7CiAJfQogCiAJd2hpbGUgKHJiKSB7IC8qIFhYWCB2aXJ0dWFsIGlzIGFsd2F5cyB0YWtpbmcgcHJlY2VkZW5jZSAqLwpAQCAtOTU1LDkgKzExNzIsMjQgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJCWNvbnRpbnVlOwogCQkJfQogCisJCQlpZiAoaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpIHsKKwkJCQl2ZS0+cmVxdWVzdCA9IE5VTEw7CisJCQkJdmUtPmJhc2UuZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5X2hpbnQgPSBJTlRfTUlOOworCQkJCXJiX2VyYXNlX2NhY2hlZChyYiwgJmV4ZWNsaXN0cy0+dmlydHVhbCk7CisJCQkJUkJfQ0xFQVJfTk9ERShyYik7CisKKwkJCQlycS0+ZW5naW5lID0gZW5naW5lOworCQkJCV9faTkxNV9yZXF1ZXN0X3N1Ym1pdChycSk7CisKKwkJCQlzcGluX3VubG9jaygmdmUtPmJhc2UuYWN0aXZlLmxvY2spOworCisJCQkJcmIgPSByYl9maXJzdF9jYWNoZWQoJmV4ZWNsaXN0cy0+dmlydHVhbCk7CisJCQkJY29udGludWU7CisJCQl9CisKIAkJCWlmIChsYXN0ICYmICFjYW5fbWVyZ2VfcnEobGFzdCwgcnEpKSB7CiAJCQkJc3Bpbl91bmxvY2soJnZlLT5iYXNlLmFjdGl2ZS5sb2NrKTsKLQkJCQlyZXR1cm47IC8qIGxlYXZlIHRoaXMgcnEgZm9yIGFub3RoZXIgZW5naW5lICovCisJCQkJcmV0dXJuOyAvKiBsZWF2ZSB0aGlzIGZvciBhbm90aGVyICovCiAJCQl9CiAKIAkJCUdFTV9UUkFDRSgiJXM6IHZpcnR1YWwgcnE9JWxseDolbGxkJXMsIG5ldyBlbmdpbmU/ICVzXG4iLApAQCAtMTAwNiw5ICsxMjM4LDEwIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCX0KIAogCQkJX19pOTE1X3JlcXVlc3Rfc3VibWl0KHJxKTsKLQkJCXRyYWNlX2k5MTVfcmVxdWVzdF9pbihycSwgcG9ydF9pbmRleChwb3J0LCBleGVjbGlzdHMpKTsKLQkJCXN1Ym1pdCA9IHRydWU7Ci0JCQlsYXN0ID0gcnE7CisJCQlpZiAoIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKSB7CisJCQkJc3VibWl0ID0gdHJ1ZTsKKwkJCQlsYXN0ID0gcnE7CisJCQl9CiAJCX0KIAogCQlzcGluX3VubG9jaygmdmUtPmJhc2UuYWN0aXZlLmxvY2spOwpAQCAtMTAyMSw2ICsxMjU0LDkgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlpbnQgaTsKIAogCQlwcmlvbGlzdF9mb3JfZWFjaF9yZXF1ZXN0X2NvbnN1bWUocnEsIHJuLCBwLCBpKSB7CisJCQlpZiAoaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpCisJCQkJZ290byBza2lwOworCiAJCQkvKgogCQkJICogQ2FuIHdlIGNvbWJpbmUgdGhpcyByZXF1ZXN0IHdpdGggdGhlIGN1cnJlbnQgcG9ydD8KIAkJCSAqIEl0IGhhcyB0byBiZSB0aGUgc2FtZSBjb250ZXh0L3JpbmdidWZmZXIgYW5kIG5vdApAQCAtMTA2MCwxOSArMTI5NiwxNCBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCQkJICAgIGN0eF9zaW5nbGVfcG9ydF9zdWJtaXNzaW9uKHJxLT5od19jb250ZXh0KSkKIAkJCQkJZ290byBkb25lOwogCi0KLQkJCQlpZiAoc3VibWl0KQotCQkJCQlwb3J0X2Fzc2lnbihwb3J0LCBsYXN0KTsKKwkJCQkqcG9ydCA9IGV4ZWNsaXN0c19zY2hlZHVsZV9pbihsYXN0LCBwb3J0IC0gZXhlY2xpc3RzLT5wZW5kaW5nKTsKIAkJCQlwb3J0Kys7Ci0KLQkJCQlHRU1fQlVHX09OKHBvcnRfaXNzZXQocG9ydCkpOwogCQkJfQogCi0JCQlfX2k5MTVfcmVxdWVzdF9zdWJtaXQocnEpOwotCQkJdHJhY2VfaTkxNV9yZXF1ZXN0X2luKHJxLCBwb3J0X2luZGV4KHBvcnQsIGV4ZWNsaXN0cykpOwotCiAJCQlsYXN0ID0gcnE7CiAJCQlzdWJtaXQgPSB0cnVlOworc2tpcDoKKwkJCV9faTkxNV9yZXF1ZXN0X3N1Ym1pdChycSk7CiAJCX0KIAogCQlyYl9lcmFzZV9jYWNoZWQoJnAtPm5vZGUsICZleGVjbGlzdHMtPnF1ZXVlKTsKQEAgLTEwOTcsNTQgKzEzMjgsMzQgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCSAqIGludGVycnVwdCBmb3Igc2Vjb25kYXJ5IHBvcnRzKS4KIAkgKi8KIAlleGVjbGlzdHMtPnF1ZXVlX3ByaW9yaXR5X2hpbnQgPSBxdWV1ZV9wcmlvKGV4ZWNsaXN0cyk7CisJR0VNX1RSQUNFKCIlczogcXVldWVfcHJpb3JpdHlfaGludDolZCwgc3VibWl0OiVzXG4iLAorCQkgIGVuZ2luZS0+bmFtZSwgZXhlY2xpc3RzLT5xdWV1ZV9wcmlvcml0eV9oaW50LAorCQkgIHllc25vKHN1Ym1pdCkpOwogCiAJaWYgKHN1Ym1pdCkgewotCQlwb3J0X2Fzc2lnbihwb3J0LCBsYXN0KTsKKwkJKnBvcnQgPSBleGVjbGlzdHNfc2NoZWR1bGVfaW4obGFzdCwgcG9ydCAtIGV4ZWNsaXN0cy0+cGVuZGluZyk7CisJCW1lbXNldChwb3J0ICsgMSwgMCwgKGxhc3RfcG9ydCAtIHBvcnQpICogc2l6ZW9mKCpwb3J0KSk7CisJCWV4ZWNsaXN0cy0+c3dpdGNoX3ByaW9yaXR5X2hpbnQgPQorCQkJc3dpdGNoX3ByaW8oZW5naW5lLCAqZXhlY2xpc3RzLT5wZW5kaW5nKTsKIAkJZXhlY2xpc3RzX3N1Ym1pdF9wb3J0cyhlbmdpbmUpOworCX0gZWxzZSB7CisJCXJpbmdfc2V0X3BhdXNlZChlbmdpbmUsIDApOwogCX0KLQotCS8qIFdlIG11c3QgYWx3YXlzIGtlZXAgdGhlIGJlYXN0IGZlZCBpZiB3ZSBoYXZlIHdvcmsgcGlsZWQgdXAgKi8KLQlHRU1fQlVHX09OKHJiX2ZpcnN0X2NhY2hlZCgmZXhlY2xpc3RzLT5xdWV1ZSkgJiYKLQkJICAgIXBvcnRfaXNzZXQoZXhlY2xpc3RzLT5wb3J0KSk7Ci0KLQkvKiBSZS1ldmFsdWF0ZSB0aGUgZXhlY3V0aW5nIGNvbnRleHQgc2V0dXAgYWZ0ZXIgZWFjaCBwcmVlbXB0aXZlIGtpY2sgKi8KLQlpZiAobGFzdCkKLQkJZXhlY2xpc3RzX3VzZXJfYmVnaW4oZXhlY2xpc3RzLCBleGVjbGlzdHMtPnBvcnQpOwotCi0JLyogSWYgdGhlIGVuZ2luZSBpcyBub3cgaWRsZSwgc28gc2hvdWxkIGJlIHRoZSBmbGFnOyBhbmQgdmljZSB2ZXJzYS4gKi8KLQlHRU1fQlVHX09OKGV4ZWNsaXN0c19pc19hY3RpdmUoJmVuZ2luZS0+ZXhlY2xpc3RzLAotCQkJCSAgICAgICBFWEVDTElTVFNfQUNUSVZFX1VTRVIpID09Ci0JCSAgICFwb3J0X2lzc2V0KGVuZ2luZS0+ZXhlY2xpc3RzLnBvcnQpKTsKIH0KIAotdm9pZAotZXhlY2xpc3RzX2NhbmNlbF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzKQorc3RhdGljIHZvaWQKK2NhbmNlbF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzKQogewotCXN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZXhlY2xpc3RzLT5wb3J0OwotCXVuc2lnbmVkIGludCBudW1fcG9ydHMgPSBleGVjbGlzdHNfbnVtX3BvcnRzKGV4ZWNsaXN0cyk7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqIGNvbnN0ICpwb3J0LCAqcnE7CiAKLQl3aGlsZSAobnVtX3BvcnRzLS0gJiYgcG9ydF9pc3NldChwb3J0KSkgewotCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSA9IHBvcnRfcmVxdWVzdChwb3J0KTsKKwlmb3IgKHBvcnQgPSBleGVjbGlzdHMtPnBlbmRpbmc7IChycSA9ICpwb3J0KTsgcG9ydCsrKQorCQlleGVjbGlzdHNfc2NoZWR1bGVfb3V0KHJxKTsKKwltZW1zZXQoZXhlY2xpc3RzLT5wZW5kaW5nLCAwLCBzaXplb2YoZXhlY2xpc3RzLT5wZW5kaW5nKSk7CiAKLQkJR0VNX1RSQUNFKCIlczpwb3J0JXUgZmVuY2UgJWxseDolbGxkLCAoY3VycmVudCAlZClcbiIsCi0JCQkgIHJxLT5lbmdpbmUtPm5hbWUsCi0JCQkgICh1bnNpZ25lZCBpbnQpKHBvcnQgLSBleGVjbGlzdHMtPnBvcnQpLAotCQkJICBycS0+ZmVuY2UuY29udGV4dCwgcnEtPmZlbmNlLnNlcW5vLAotCQkJICBod3NwX3NlcW5vKHJxKSk7Ci0KLQkJR0VNX0JVR19PTighZXhlY2xpc3RzLT5hY3RpdmUpOwotCQlleGVjbGlzdHNfY29udGV4dF9zY2hlZHVsZV9vdXQocnEsCi0JCQkJCSAgICAgICBpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJxKSA/Ci0JCQkJCSAgICAgICBJTlRFTF9DT05URVhUX1NDSEVEVUxFX09VVCA6Ci0JCQkJCSAgICAgICBJTlRFTF9DT05URVhUX1NDSEVEVUxFX1BSRUVNUFRFRCk7Ci0KLQkJaTkxNV9yZXF1ZXN0X3B1dChycSk7Ci0KLQkJbWVtc2V0KHBvcnQsIDAsIHNpemVvZigqcG9ydCkpOwotCQlwb3J0Kys7Ci0JfQotCi0JZXhlY2xpc3RzX2NsZWFyX2FsbF9hY3RpdmUoZXhlY2xpc3RzKTsKKwlmb3IgKHBvcnQgPSBleGVjbGlzdHMtPmFjdGl2ZTsgKHJxID0gKnBvcnQpOyBwb3J0KyspCisJCWV4ZWNsaXN0c19zY2hlZHVsZV9vdXQocnEpOworCWV4ZWNsaXN0cy0+YWN0aXZlID0KKwkJbWVtc2V0KGV4ZWNsaXN0cy0+aW5mbGlnaHQsIDAsIHNpemVvZihleGVjbGlzdHMtPmluZmxpZ2h0KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZApAQCAtMTE2MCwxNSArMTM3MSwxMDAgQEAgcmVzZXRfaW5fcHJvZ3Jlc3MoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykKIAlyZXR1cm4gdW5saWtlbHkoIV9fdGFza2xldF9pc19lbmFibGVkKCZleGVjbGlzdHMtPnRhc2tsZXQpKTsKIH0KIAorZW51bSBjc2Jfc3RlcCB7CisJQ1NCX05PUCwKKwlDU0JfUFJPTU9URSwKKwlDU0JfUFJFRU1QVCwKKwlDU0JfQ09NUExFVEUsCit9OworCisvKgorICogU3RhcnRpbmcgd2l0aCBHZW4xMiwgdGhlIHN0YXR1cyBoYXMgYSBuZXcgZm9ybWF0OgorICoKKyAqICAgICBiaXQgIDA6ICAgICBzd2l0Y2hlZCB0byBuZXcgcXVldWUKKyAqICAgICBiaXQgIDE6ICAgICByZXNlcnZlZAorICogICAgIGJpdCAgMjogICAgIHNlbWFwaG9yZSB3YWl0IG1vZGUgKHBvbGwgb3Igc2lnbmFsKSwgb25seSB2YWxpZCB3aGVuCisgKiAgICAgICAgICAgICAgICAgc3dpdGNoIGRldGFpbCBpcyBzZXQgdG8gIndhaXQgb24gc2VtYXBob3JlIgorICogICAgIGJpdHMgMy01OiAgIGVuZ2luZSBjbGFzcworICogICAgIGJpdHMgNi0xMTogIGVuZ2luZSBpbnN0YW5jZQorICogICAgIGJpdHMgMTItMTQ6IHJlc2VydmVkCisgKiAgICAgYml0cyAxNS0yNTogc3cgY29udGV4dCBpZCBvZiB0aGUgbHJjIHRoZSBHVCBzd2l0Y2hlZCB0bworICogICAgIGJpdHMgMjYtMzE6IHN3IGNvdW50ZXIgb2YgdGhlIGxyYyB0aGUgR1Qgc3dpdGNoZWQgdG8KKyAqICAgICBiaXRzIDMyLTM1OiBjb250ZXh0IHN3aXRjaCBkZXRhaWwKKyAqICAgICAgICAgICAgICAgICAgLSAwOiBjdHggY29tcGxldGUKKyAqICAgICAgICAgICAgICAgICAgLSAxOiB3YWl0IG9uIHN5bmMgZmxpcAorICogICAgICAgICAgICAgICAgICAtIDI6IHdhaXQgb24gdmJsYW5rCisgKiAgICAgICAgICAgICAgICAgIC0gMzogd2FpdCBvbiBzY2FubGluZQorICogICAgICAgICAgICAgICAgICAtIDQ6IHdhaXQgb24gc2VtYXBob3JlCisgKiAgICAgICAgICAgICAgICAgIC0gNTogY29udGV4dCBwcmVlbXB0ZWQgKG5vdCBvbiBTRU1BUEhPUkVfV0FJVCBvcgorICogICAgICAgICAgICAgICAgICAgICAgIFdBSVRfRk9SX0VWRU5UKQorICogICAgIGJpdCAgMzY6ICAgIHJlc2VydmVkCisgKiAgICAgYml0cyAzNy00Mzogd2FpdCBkZXRhaWwgKGZvciBzd2l0Y2ggZGV0YWlsIDEgdG8gNCkKKyAqICAgICBiaXRzIDQ0LTQ2OiByZXNlcnZlZAorICogICAgIGJpdHMgNDctNTc6IHN3IGNvbnRleHQgaWQgb2YgdGhlIGxyYyB0aGUgR1Qgc3dpdGNoZWQgYXdheSBmcm9tCisgKiAgICAgYml0cyA1OC02Mzogc3cgY291bnRlciBvZiB0aGUgbHJjIHRoZSBHVCBzd2l0Y2hlZCBhd2F5IGZyb20KKyAqLworc3RhdGljIGlubGluZSBlbnVtIGNzYl9zdGVwCitnZW4xMl9jc2JfcGFyc2UoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cywgY29uc3QgdTMyICpjc2IpCit7CisJdTMyIGxvd2VyX2R3ID0gY3NiWzBdOworCXUzMiB1cHBlcl9kdyA9IGNzYlsxXTsKKwlib29sIGN0eF90b192YWxpZCA9IEdFTjEyX0NTQl9DVFhfVkFMSUQobG93ZXJfZHcpOworCWJvb2wgY3R4X2F3YXlfdmFsaWQgPSBHRU4xMl9DU0JfQ1RYX1ZBTElEKHVwcGVyX2R3KTsKKwlib29sIG5ld19xdWV1ZSA9IGxvd2VyX2R3ICYgR0VOMTJfQ1RYX1NUQVRVU19TV0lUQ0hFRF9UT19ORVdfUVVFVUU7CisKKwlpZiAoIWN0eF9hd2F5X3ZhbGlkICYmIGN0eF90b192YWxpZCkKKwkJcmV0dXJuIENTQl9QUk9NT1RFOworCisJLyoKKwkgKiBUaGUgY29udGV4dCBzd2l0Y2ggZGV0YWlsIGlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIDUgd2hlbiBhIHByZWVtcHRpb24KKwkgKiBvY2N1cnMsIHNvIHdlIGNhbid0IGp1c3QgY2hlY2sgZm9yIHRoYXQuIFRoZSBjaGVjayBiZWxvdyB3b3JrcyBmb3IKKwkgKiBhbGwgdGhlIGNhc2VzIHdlIGNhcmUgYWJvdXQsIGluY2x1ZGluZyBwcmVlbXB0aW9ucyBvZiBXQUlUCisJICogaW5zdHJ1Y3Rpb25zIGFuZCBsaXRlLXJlc3RvcmUuIFByZWVtcHQtdG8taWRsZSB2aWEgdGhlIENUUkwgcmVnaXN0ZXIKKwkgKiB3b3VsZCByZXF1aXJlIHNvbWUgZXh0cmEgaGFuZGxpbmcsIGJ1dCB3ZSBkb24ndCBzdXBwb3J0IHRoYXQuCisJICovCisJaWYgKG5ld19xdWV1ZSAmJiBjdHhfYXdheV92YWxpZCkKKwkJcmV0dXJuIENTQl9QUkVFTVBUOworCisJLyoKKwkgKiBzd2l0Y2ggZGV0YWlsID0gNSBpcyBjb3ZlcmVkIGJ5IHRoZSBjYXNlIGFib3ZlIGFuZCB3ZSBkbyBub3QgZXhwZWN0IGEKKwkgKiBjb250ZXh0IHN3aXRjaCBvbiBhbiB1bnN1Y2Nlc3NmdWwgd2FpdCBpbnN0cnVjdGlvbiBzaW5jZSB3ZSBhbHdheXMKKwkgKiB1c2UgcG9sbGluZyBtb2RlLgorCSAqLworCUdFTV9CVUdfT04oR0VOMTJfQ1RYX1NXSVRDSF9ERVRBSUwodXBwZXJfZHcpKTsKKworCWlmICgqZXhlY2xpc3RzLT5hY3RpdmUpIHsKKwkJR0VNX0JVR19PTighY3R4X2F3YXlfdmFsaWQpOworCQlyZXR1cm4gQ1NCX0NPTVBMRVRFOworCX0KKworCXJldHVybiBDU0JfTk9QOworfQorCitzdGF0aWMgaW5saW5lIGVudW0gY3NiX3N0ZXAKK2dlbjhfY3NiX3BhcnNlKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMsIGNvbnN0IHUzMiAqY3NiKQoreworCXVuc2lnbmVkIGludCBzdGF0dXMgPSAqY3NiOworCisJaWYgKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19JRExFX0FDVElWRSkKKwkJcmV0dXJuIENTQl9QUk9NT1RFOworCisJaWYgKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19QUkVFTVBURUQpCisJCXJldHVybiBDU0JfUFJFRU1QVDsKKworCWlmICgqZXhlY2xpc3RzLT5hY3RpdmUpCisJCXJldHVybiBDU0JfQ09NUExFVEU7CisKKwlyZXR1cm4gQ1NCX05PUDsKK30KKwogc3RhdGljIHZvaWQgcHJvY2Vzc19jc2Ioc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwotCXN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZXhlY2xpc3RzLT5wb3J0OwogCWNvbnN0IHUzMiAqIGNvbnN0IGJ1ZiA9IGV4ZWNsaXN0cy0+Y3NiX3N0YXR1czsKIAljb25zdCB1OCBudW1fZW50cmllcyA9IGV4ZWNsaXN0cy0+Y3NiX3NpemU7CiAJdTggaGVhZCwgdGFpbDsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+YWN0aXZlLmxvY2spOwogCUdFTV9CVUdfT04oVVNFU19HVUNfU1VCTUlTU0lPTihlbmdpbmUtPmk5MTUpKTsKIAogCS8qCkBAIC0xMTk4LDkgKzE0OTQsNyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJcm1iKCk7CiAKIAlkbyB7Ci0JCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwotCQl1bnNpZ25lZCBpbnQgc3RhdHVzOwotCQl1bnNpZ25lZCBpbnQgY291bnQ7CisJCWVudW0gY3NiX3N0ZXAgY3NiX3N0ZXA7CiAKIAkJaWYgKCsraGVhZCA9PSBudW1fZW50cmllcykKIAkJCWhlYWQgPSAwOwpAQCAtMTIyMyw2OCArMTUxNyw0MyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCSAqIHN0YXR1cyBub3RpZmllci4KIAkJICovCiAKLQkJR0VNX1RSQUNFKCIlcyBjc2JbJWRdOiBzdGF0dXM9MHglMDh4OjB4JTA4eCwgYWN0aXZlPTB4JXhcbiIsCisJCUdFTV9UUkFDRSgiJXMgY3NiWyVkXTogc3RhdHVzPTB4JTA4eDoweCUwOHhcbiIsCiAJCQkgIGVuZ2luZS0+bmFtZSwgaGVhZCwKLQkJCSAgYnVmWzIgKiBoZWFkICsgMF0sIGJ1ZlsyICogaGVhZCArIDFdLAotCQkJICBleGVjbGlzdHMtPmFjdGl2ZSk7CisJCQkgIGJ1ZlsyICogaGVhZCArIDBdLCBidWZbMiAqIGhlYWQgKyAxXSk7CiAKLQkJc3RhdHVzID0gYnVmWzIgKiBoZWFkXTsKLQkJaWYgKHN0YXR1cyAmIChHRU44X0NUWF9TVEFUVVNfSURMRV9BQ1RJVkUgfAotCQkJICAgICAgR0VOOF9DVFhfU1RBVFVTX1BSRUVNUFRFRCkpCi0JCQlleGVjbGlzdHNfc2V0X2FjdGl2ZShleGVjbGlzdHMsCi0JCQkJCSAgICAgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSyk7Ci0JCWlmIChzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQUNUSVZFX0lETEUpCi0JCQlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywKLQkJCQkJICAgICAgIEVYRUNMSVNUU19BQ1RJVkVfSFdBQ0spOworCQlpZiAoSU5URUxfR0VOKGVuZ2luZS0+aTkxNSkgPj0gMTIpCisJCQljc2Jfc3RlcCA9IGdlbjEyX2NzYl9wYXJzZShleGVjbGlzdHMsIGJ1ZiArIDIgKiBoZWFkKTsKKwkJZWxzZQorCQkJY3NiX3N0ZXAgPSBnZW44X2NzYl9wYXJzZShleGVjbGlzdHMsIGJ1ZiArIDIgKiBoZWFkKTsKIAotCQlpZiAoIShzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQ09NUExFVEVEX01BU0spKQotCQkJY29udGludWU7CisJCXN3aXRjaCAoY3NiX3N0ZXApIHsKKwkJY2FzZSBDU0JfUFJFRU1QVDogLyogY2FuY2VsIG9sZCBpbmZsaWdodCwgcHJlcGFyZSBmb3Igc3dpdGNoICovCisJCQl0cmFjZV9wb3J0cyhleGVjbGlzdHMsICJwcmVlbXB0ZWQiLCBleGVjbGlzdHMtPmFjdGl2ZSk7CiAKLQkJLyogV2Ugc2hvdWxkIG5ldmVyIGdldCBhIENPTVBMRVRFRCB8IElETEVfQUNUSVZFISAqLwotCQlHRU1fQlVHX09OKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19JRExFX0FDVElWRSk7CisJCQl3aGlsZSAoKmV4ZWNsaXN0cy0+YWN0aXZlKQorCQkJCWV4ZWNsaXN0c19zY2hlZHVsZV9vdXQoKmV4ZWNsaXN0cy0+YWN0aXZlKyspOwogCi0JCWlmIChzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQ09NUExFVEUgJiYKLQkJICAgIGJ1ZlsyKmhlYWQgKyAxXSA9PSBleGVjbGlzdHMtPnByZWVtcHRfY29tcGxldGVfc3RhdHVzKSB7Ci0JCQlHRU1fVFJBQ0UoIiVzIHByZWVtcHQtaWRsZVxuIiwgZW5naW5lLT5uYW1lKTsKLQkJCWNvbXBsZXRlX3ByZWVtcHRfY29udGV4dChleGVjbGlzdHMpOwotCQkJY29udGludWU7Ci0JCX0KKwkJCS8qIGZhbGx0aHJvdWdoICovCisJCWNhc2UgQ1NCX1BST01PVEU6IC8qIHN3aXRjaCBwZW5kaW5nIHRvIGluZmxpZ2h0ICovCisJCQlHRU1fQlVHX09OKCpleGVjbGlzdHMtPmFjdGl2ZSk7CisJCQlHRU1fQlVHX09OKCFhc3NlcnRfcGVuZGluZ192YWxpZChleGVjbGlzdHMsICJwcm9tb3RlIikpOworCQkJZXhlY2xpc3RzLT5hY3RpdmUgPQorCQkJCW1lbWNweShleGVjbGlzdHMtPmluZmxpZ2h0LAorCQkJCSAgICAgICBleGVjbGlzdHMtPnBlbmRpbmcsCisJCQkJICAgICAgIGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKSAqCisJCQkJICAgICAgIHNpemVvZigqZXhlY2xpc3RzLT5wZW5kaW5nKSk7CiAKLQkJaWYgKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19QUkVFTVBURUQgJiYKLQkJICAgIGV4ZWNsaXN0c19pc19hY3RpdmUoZXhlY2xpc3RzLAotCQkJCQlFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpKQotCQkJY29udGludWU7CisJCQlpZiAoZW5hYmxlX3RpbWVzbGljZShleGVjbGlzdHMpKQorCQkJCW1vZF90aW1lcigmZXhlY2xpc3RzLT50aW1lciwgamlmZmllcyArIDEpOwogCi0JCUdFTV9CVUdfT04oIWV4ZWNsaXN0c19pc19hY3RpdmUoZXhlY2xpc3RzLAotCQkJCQkJRVhFQ0xJU1RTX0FDVElWRV9VU0VSKSk7CisJCQlpZiAoIWluamVjdF9wcmVlbXB0X2hhbmcoZXhlY2xpc3RzKSkKKwkJCQlyaW5nX3NldF9wYXVzZWQoZW5naW5lLCAwKTsKIAotCQlycSA9IHBvcnRfdW5wYWNrKHBvcnQsICZjb3VudCk7Ci0JCUdFTV9UUkFDRSgiJXMgb3V0WzBdOiBjdHg9JWQuJWQsIGZlbmNlICVsbHg6JWxsZCAoY3VycmVudCAlZCksIHByaW89JWRcbiIsCi0JCQkgIGVuZ2luZS0+bmFtZSwKLQkJCSAgcG9ydC0+Y29udGV4dF9pZCwgY291bnQsCi0JCQkgIHJxID8gcnEtPmZlbmNlLmNvbnRleHQgOiAwLAotCQkJICBycSA/IHJxLT5mZW5jZS5zZXFubyA6IDAsCi0JCQkgIHJxID8gaHdzcF9zZXFubyhycSkgOiAwLAotCQkJICBycSA/IHJxX3ByaW8ocnEpIDogMCk7CisJCQlXUklURV9PTkNFKGV4ZWNsaXN0cy0+cGVuZGluZ1swXSwgTlVMTCk7CisJCQlicmVhazsKIAotCQkvKiBDaGVjayB0aGUgY29udGV4dC9kZXNjIGlkIGZvciB0aGlzIGV2ZW50IG1hdGNoZXMgKi8KLQkJR0VNX0RFQlVHX0JVR19PTihidWZbMiAqIGhlYWQgKyAxXSAhPSBwb3J0LT5jb250ZXh0X2lkKTsKLQotCQlHRU1fQlVHX09OKGNvdW50ID09IDApOwotCQlpZiAoLS1jb3VudCA9PSAwKSB7Ci0JCQkvKgotCQkJICogT24gdGhlIGZpbmFsIGV2ZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlCi0JCQkgKiBzdWJtaXNzaW9uIG9mIHRoaXMgY29udGV4dCwgd2UgZXhwZWN0IGVpdGhlcgotCQkJICogYW4gZWxlbWVudC1zd2l0Y2ggZXZlbnQgb3IgYSBjb21wbGV0aW9uCi0JCQkgKiBldmVudCAoYW5kIG9uIGNvbXBsZXRpb24sIHRoZSBhY3RpdmUtaWRsZQotCQkJICogbWFya2VyKS4gTm8gbW9yZSBwcmVlbXB0aW9ucywgbGl0ZS1yZXN0b3JlCi0JCQkgKiBvciBvdGhlcndpc2UuCi0JCQkgKi8KLQkJCUdFTV9CVUdfT04oc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX1BSRUVNUFRFRCk7Ci0JCQlHRU1fQlVHX09OKHBvcnRfaXNzZXQoJnBvcnRbMV0pICYmCi0JCQkJICAgIShzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfRUxFTUVOVF9TV0lUQ0gpKTsKLQkJCUdFTV9CVUdfT04oIXBvcnRfaXNzZXQoJnBvcnRbMV0pICYmCi0JCQkJICAgIShzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQUNUSVZFX0lETEUpKTsKKwkJY2FzZSBDU0JfQ09NUExFVEU6IC8qIHBvcnQwIGNvbXBsZXRlZCwgYWR2YW5jZWQgdG8gcG9ydDEgKi8KKwkJCXRyYWNlX3BvcnRzKGV4ZWNsaXN0cywgImNvbXBsZXRlZCIsIGV4ZWNsaXN0cy0+YWN0aXZlKTsKIAogCQkJLyoKIAkJCSAqIFdlIHJlbHkgb24gdGhlIGhhcmR3YXJlIGJlaW5nIHN0cm9uZ2x5CkBAIC0xMjkyLDIyICsxNTYxLDE2IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3NiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCSAqIGNvaGVyZW50ICh2aXNpYmxlIGZyb20gdGhlIENQVSkgYmVmb3JlIHRoZQogCQkJICogdXNlciBpbnRlcnJ1cHQgYW5kIENTQiBpcyBwcm9jZXNzZWQuCiAJCQkgKi8KLQkJCUdFTV9CVUdfT04oIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKTsKKwkJCUdFTV9CVUdfT04oIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQoKmV4ZWNsaXN0cy0+YWN0aXZlKSAmJgorCQkJCSAgICFyZXNldF9pbl9wcm9ncmVzcyhleGVjbGlzdHMpKTsKKwkJCWV4ZWNsaXN0c19zY2hlZHVsZV9vdXQoKmV4ZWNsaXN0cy0+YWN0aXZlKyspOwogCi0JCQlleGVjbGlzdHNfY29udGV4dF9zY2hlZHVsZV9vdXQocnEsCi0JCQkJCQkgICAgICAgSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9PVVQpOwotCQkJaTkxNV9yZXF1ZXN0X3B1dChycSk7CisJCQlHRU1fQlVHX09OKGV4ZWNsaXN0cy0+YWN0aXZlIC0gZXhlY2xpc3RzLT5pbmZsaWdodCA+CisJCQkJICAgZXhlY2xpc3RzX251bV9wb3J0cyhleGVjbGlzdHMpKTsKKwkJCWJyZWFrOwogCi0JCQlHRU1fVFJBQ0UoIiVzIGNvbXBsZXRlZCBjdHg9JWRcbiIsCi0JCQkJICBlbmdpbmUtPm5hbWUsIHBvcnQtPmNvbnRleHRfaWQpOwotCi0JCQlwb3J0ID0gZXhlY2xpc3RzX3BvcnRfY29tcGxldGUoZXhlY2xpc3RzLCBwb3J0KTsKLQkJCWlmIChwb3J0X2lzc2V0KHBvcnQpKQotCQkJCWV4ZWNsaXN0c191c2VyX2JlZ2luKGV4ZWNsaXN0cywgcG9ydCk7Ci0JCQllbHNlCi0JCQkJZXhlY2xpc3RzX3VzZXJfZW5kKGV4ZWNsaXN0cyk7Ci0JCX0gZWxzZSB7Ci0JCQlwb3J0X3NldChwb3J0LCBwb3J0X3BhY2socnEsIGNvdW50KSk7CisJCWNhc2UgQ1NCX05PUDoKKwkJCWJyZWFrOwogCQl9CiAJfSB3aGlsZSAoaGVhZCAhPSB0YWlsKTsKIApAQCAtMTMzMCw5ICsxNTkzLDcgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19jc2Ioc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogc3RhdGljIHZvaWQgX19leGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmNvbnN0IGVuZ2luZSkKIHsKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKLQotCXByb2Nlc3NfY3NiKGVuZ2luZSk7Ci0JaWYgKCFleGVjbGlzdHNfaXNfYWN0aXZlKCZlbmdpbmUtPmV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKSkKKwlpZiAoIWVuZ2luZS0+ZXhlY2xpc3RzLnBlbmRpbmdbMF0pCiAJCWV4ZWNsaXN0c19kZXF1ZXVlKGVuZ2luZSk7CiB9CiAKQEAgLTEzNDUsMTQgKzE2MDYsMjEgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JR0VNX1RSQUNFKCIlcyBhd2FrZT89JWQsIGFjdGl2ZT0leFxuIiwKLQkJICBlbmdpbmUtPm5hbWUsCi0JCSAgISFpbnRlbF93YWtlcmVmX2FjdGl2ZSgmZW5naW5lLT53YWtlcmVmKSwKLQkJICBlbmdpbmUtPmV4ZWNsaXN0cy5hY3RpdmUpOworCXByb2Nlc3NfY3NiKGVuZ2luZSk7CisJaWYgKCFSRUFEX09OQ0UoZW5naW5lLT5leGVjbGlzdHMucGVuZGluZ1swXSkpIHsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKKwkJX19leGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KGVuZ2luZSk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKKwl9Cit9CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwotCV9fZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldChlbmdpbmUpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKK3N0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0aW1lcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQorCQlmcm9tX3RpbWVyKGVuZ2luZSwgdGltZXIsIGV4ZWNsaXN0cy50aW1lcik7CisKKwkvKiBLaWNrIHRoZSB0YXNrbGV0IGZvciBzb21lIGludGVycnVwdCBjb2FsZXNjaW5nIGFuZCByZXNldCBoYW5kbGluZyAqLworCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOwogfQogCiBzdGF0aWMgdm9pZCBxdWV1ZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKQEAgLTEzNzYsMTIgKzE2NDQsMTYgQEAgc3RhdGljIHZvaWQgX19zdWJtaXRfcXVldWVfaW1tKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJdGFza2xldF9oaV9zY2hlZHVsZSgmZXhlY2xpc3RzLT50YXNrbGV0KTsKIH0KIAotc3RhdGljIHZvaWQgc3VibWl0X3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHByaW8pCitzdGF0aWMgdm9pZCBzdWJtaXRfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJIGNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewotCWlmIChwcmlvID4gZW5naW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHlfaGludCkgewotCQllbmdpbmUtPmV4ZWNsaXN0cy5xdWV1ZV9wcmlvcml0eV9oaW50ID0gcHJpbzsKLQkJX19zdWJtaXRfcXVldWVfaW1tKGVuZ2luZSk7Ci0JfQorCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CisKKwlpZiAocnFfcHJpbyhycSkgPD0gZXhlY2xpc3RzLT5xdWV1ZV9wcmlvcml0eV9oaW50KQorCQlyZXR1cm47CisKKwlleGVjbGlzdHMtPnF1ZXVlX3ByaW9yaXR5X2hpbnQgPSBycV9wcmlvKHJxKTsKKwlfX3N1Ym1pdF9xdWV1ZV9pbW0oZW5naW5lKTsKIH0KIAogc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCkBAIC0xMzk3LDcgKzE2NjksNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAlHRU1fQlVHX09OKFJCX0VNUFRZX1JPT1QoJmVuZ2luZS0+ZXhlY2xpc3RzLnF1ZXVlLnJiX3Jvb3QpKTsKIAlHRU1fQlVHX09OKGxpc3RfZW1wdHkoJnJlcXVlc3QtPnNjaGVkLmxpbmspKTsKIAotCXN1Ym1pdF9xdWV1ZShlbmdpbmUsIHJxX3ByaW8ocmVxdWVzdCkpOworCXN1Ym1pdF9xdWV1ZShlbmdpbmUsIHJlcXVlc3QpOwogCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogfQpAQCAtMTQwNSw5ICsxNjc3LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiBzdGF0aWMgdm9pZCBfX2V4ZWNsaXN0c19jb250ZXh0X2Zpbmkoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogewogCWludGVsX3JpbmdfcHV0KGNlLT5yaW5nKTsKLQotCUdFTV9CVUdfT04oaTkxNV9nZW1fb2JqZWN0X2lzX2FjdGl2ZShjZS0+c3RhdGUtPm9iaikpOwotCWk5MTVfZ2VtX29iamVjdF9wdXQoY2UtPnN0YXRlLT5vYmopOworCWk5MTVfdm1hX3B1dChjZS0+c3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29udGV4dF9kZXN0cm95KHN0cnVjdCBrcmVmICprcmVmKQpAQCAtMTQyMCwxMyArMTY5MCw0NSBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29udGV4dF9kZXN0cm95KHN0cnVjdCBrcmVmICprcmVmKQogCWlmIChjZS0+c3RhdGUpCiAJCV9fZXhlY2xpc3RzX2NvbnRleHRfZmluaShjZSk7CiAKKwlpbnRlbF9jb250ZXh0X2ZpbmkoY2UpOwogCWludGVsX2NvbnRleHRfZnJlZShjZSk7CiB9CiAKK3N0YXRpYyB2b2lkCitzZXRfcmVkem9uZSh2b2lkICp2YWRkciwgY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCWlmICghSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKSkKKwkJcmV0dXJuOworCisJdmFkZHIgKz0gTFJDX0hFQURFUl9QQUdFUyAqIFBBR0VfU0laRTsKKwl2YWRkciArPSBlbmdpbmUtPmNvbnRleHRfc2l6ZTsKKworCW1lbXNldCh2YWRkciwgUE9JU09OX0lOVVNFLCBJOTE1X0dUVF9QQUdFX1NJWkUpOworfQorCitzdGF0aWMgdm9pZAorY2hlY2tfcmVkem9uZShjb25zdCB2b2lkICp2YWRkciwgY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCWlmICghSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKSkKKwkJcmV0dXJuOworCisJdmFkZHIgKz0gTFJDX0hFQURFUl9QQUdFUyAqIFBBR0VfU0laRTsKKwl2YWRkciArPSBlbmdpbmUtPmNvbnRleHRfc2l6ZTsKKworCWlmIChtZW1jaHJfaW52KHZhZGRyLCBQT0lTT05fSU5VU0UsIEk5MTVfR1RUX1BBR0VfU0laRSkpCisJCWRldl9lcnJfb25jZShlbmdpbmUtPmk5MTUtPmRybS5kZXYsCisJCQkgICAgICIlcyBjb250ZXh0IHJlZHpvbmUgb3ZlcndyaXR0ZW4hXG4iLAorCQkJICAgICBlbmdpbmUtPm5hbWUpOworfQorCiBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CisJY2hlY2tfcmVkem9uZSgodm9pZCAqKWNlLT5scmNfcmVnX3N0YXRlIC0gTFJDX1NUQVRFX1BOICogUEFHRV9TSVpFLAorCQkgICAgICBjZS0+ZW5naW5lKTsKKwogCWk5MTVfZ2VtX2NvbnRleHRfdW5waW5faHdfaWQoY2UtPmdlbV9jb250ZXh0KTsKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5zdGF0ZS0+b2JqKTsKKwlpbnRlbF9yaW5nX3Jlc2V0KGNlLT5yaW5nLCBjZS0+cmluZy0+dGFpbCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xNDQ0LDkgKzE3NDYsMTIgQEAgX19leGVjbGlzdHNfdXBkYXRlX3JlZ19zdGF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJcmVnc1tDVFhfUklOR19UQUlMICsgMV0gPSByaW5nLT50YWlsOwogCiAJLyogUlBDUyAqLwotCWlmIChlbmdpbmUtPmNsYXNzID09IFJFTkRFUl9DTEFTUykKKwlpZiAoZW5naW5lLT5jbGFzcyA9PSBSRU5ERVJfQ0xBU1MpIHsKIAkJcmVnc1tDVFhfUl9QV1JfQ0xLX1NUQVRFICsgMV0gPQogCQkJaW50ZWxfc3NldV9tYWtlX3JwY3MoZW5naW5lLT5pOTE1LCAmY2UtPnNzZXUpOworCisJCWk5MTVfb2FfaW5pdF9yZWdfc3RhdGUoZW5naW5lLCBjZSwgcmVncyk7CisJfQogfQogCiBzdGF0aWMgaW50CkBAIC0xNDU2LDE5ICsxNzYxLDEyIEBAIF9fZXhlY2xpc3RzX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAl2b2lkICp2YWRkcjsKIAlpbnQgcmV0OwogCi0JR0VNX0JVR19PTighY2UtPmdlbV9jb250ZXh0LT52bSk7Ci0KLQlyZXQgPSBleGVjbGlzdHNfY29udGV4dF9kZWZlcnJlZF9hbGxvYyhjZSwgZW5naW5lKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycjsKIAlHRU1fQlVHX09OKCFjZS0+c3RhdGUpOwogCi0JcmV0ID0gaW50ZWxfY29udGV4dF9hY3RpdmVfYWNxdWlyZShjZSwKLQkJCQkJICAgZW5naW5lLT5pOTE1LT5nZ3R0LnBpbl9iaWFzIHwKLQkJCQkJICAgUElOX09GRlNFVF9CSUFTIHwKLQkJCQkJICAgUElOX0hJR0gpOworCXJldCA9IGludGVsX2NvbnRleHRfYWN0aXZlX2FjcXVpcmUoY2UpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyOworCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX3Bpbm5lZChjZS0+c3RhdGUpKTsKIAogCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoY2UtPnN0YXRlLT5vYmosCiAJCQkJCWk5MTVfY29oZXJlbnRfbWFwX3R5cGUoZW5naW5lLT5pOTE1KSB8CkBAIC0xNTAxLDYgKzE3OTksMTEgQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogCXJldHVybiBfX2V4ZWNsaXN0c19jb250ZXh0X3BpbihjZSwgY2UtPmVuZ2luZSk7CiB9CiAKK3N0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQoreworCXJldHVybiBfX2V4ZWNsaXN0c19jb250ZXh0X2FsbG9jKGNlLCBjZS0+ZW5naW5lKTsKK30KKwogc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NvbnRleHRfcmVzZXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogewogCS8qCkBAIC0xNTI0LDYgKzE4MjcsOCBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29udGV4dF9yZXNldChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfY29udGV4dF9vcHMgZXhlY2xpc3RzX2NvbnRleHRfb3BzID0geworCS5hbGxvYyA9IGV4ZWNsaXN0c19jb250ZXh0X2FsbG9jLAorCiAJLnBpbiA9IGV4ZWNsaXN0c19jb250ZXh0X3BpbiwKIAkudW5waW4gPSBleGVjbGlzdHNfY29udGV4dF91bnBpbiwKIApAQCAtMTU2OSw4ICsxODc0LDcgQEAgc3RhdGljIGludCBnZW44X2VtaXRfaW5pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogc3RhdGljIGludCBlbWl0X3BkcHMoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB7CiAJY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSA9IHJxLT5lbmdpbmU7Ci0Jc3RydWN0IGk5MTVfcHBndHQgKiBjb25zdCBwcGd0dCA9Ci0JCWk5MTVfdm1fdG9fcHBndHQocnEtPmdlbV9jb250ZXh0LT52bSk7CisJc3RydWN0IGk5MTVfcHBndHQgKiBjb25zdCBwcGd0dCA9IGk5MTVfdm1fdG9fcHBndHQocnEtPmh3X2NvbnRleHQtPnZtKTsKIAlpbnQgZXJyLCBpOwogCXUzMiAqY3M7CiAKQEAgLTE2NDMsNyArMTk0Nyw3IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX3JlcXVlc3RfYWxsb2Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAkgKi8KIAogCS8qIFVuY29uZGl0aW9uYWxseSBpbnZhbGlkYXRlIEdQVSBjYWNoZXMgYW5kIFRMQnMuICovCi0JaWYgKGk5MTVfdm1faXNfNGx2bChyZXF1ZXN0LT5nZW1fY29udGV4dC0+dm0pKQorCWlmIChpOTE1X3ZtX2lzXzRsdmwocmVxdWVzdC0+aHdfY29udGV4dC0+dm0pKQogCQlyZXQgPSByZXF1ZXN0LT5lbmdpbmUtPmVtaXRfZmx1c2gocmVxdWVzdCwgRU1JVF9JTlZBTElEQVRFKTsKIAllbHNlCiAJCXJldCA9IGVtaXRfcGRwcyhyZXF1ZXN0KTsKQEAgLTE2NzYsNyArMTk4MCw4IEBAIGdlbjhfZW1pdF9mbHVzaF9jb2hlcmVudGwzX3dhKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyICpiYXRjaCkKIAkvKiBOQiBubyBvbmUgZWxzZSBpcyBhbGxvd2VkIHRvIHNjcmliYmxlIG92ZXIgc2NyYXRjaCArIDI1NiEgKi8KIAkqYmF0Y2grKyA9IE1JX1NUT1JFX1JFR0lTVEVSX01FTV9HRU44IHwgTUlfU1JNX0xSTV9HTE9CQUxfR1RUOwogCSpiYXRjaCsrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoR0VOOF9MM1NRQ1JFRzQpOwotCSpiYXRjaCsrID0gaTkxNV9zY3JhdGNoX29mZnNldChlbmdpbmUtPmk5MTUpICsgMjU2OworCSpiYXRjaCsrID0gaW50ZWxfZ3Rfc2NyYXRjaF9vZmZzZXQoZW5naW5lLT5ndCwKKwkJCQkJICAgSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9DT0hFUkVOVEwzX1dBKTsKIAkqYmF0Y2grKyA9IDA7CiAKIAkqYmF0Y2grKyA9IE1JX0xPQURfUkVHSVNURVJfSU1NKDEpOwpAQCAtMTY5MCwxMiArMTk5NSwxOSBAQCBnZW44X2VtaXRfZmx1c2hfY29oZXJlbnRsM193YShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiAqYmF0Y2gpCiAKIAkqYmF0Y2grKyA9IE1JX0xPQURfUkVHSVNURVJfTUVNX0dFTjggfCBNSV9TUk1fTFJNX0dMT0JBTF9HVFQ7CiAJKmJhdGNoKysgPSBpOTE1X21taW9fcmVnX29mZnNldChHRU44X0wzU1FDUkVHNCk7Ci0JKmJhdGNoKysgPSBpOTE1X3NjcmF0Y2hfb2Zmc2V0KGVuZ2luZS0+aTkxNSkgKyAyNTY7CisJKmJhdGNoKysgPSBpbnRlbF9ndF9zY3JhdGNoX29mZnNldChlbmdpbmUtPmd0LAorCQkJCQkgICBJTlRFTF9HVF9TQ1JBVENIX0ZJRUxEX0NPSEVSRU5UTDNfV0EpOwogCSpiYXRjaCsrID0gMDsKIAogCXJldHVybiBiYXRjaDsKIH0KIAorc3RhdGljIHUzMiBzbG1fb2Zmc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlyZXR1cm4gaW50ZWxfZ3Rfc2NyYXRjaF9vZmZzZXQoZW5naW5lLT5ndCwKKwkJCQkgICAgICAgSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9DTEVBUl9TTE1fV0EpOworfQorCiAvKgogICogVHlwaWNhbGx5IHdlIG9ubHkgaGF2ZSBvbmUgaW5kaXJlY3RfY3R4IGFuZCBwZXJfY3R4IGJhdGNoIGJ1ZmZlciB3aGljaCBhcmUKICAqIGluaXRpYWxpemVkIGF0IHRoZSBiZWdpbm5pbmcgYW5kIHNoYXJlZCBhY3Jvc3MgYWxsIGNvbnRleHRzIGJ1dCB0aGlzIGZpZWxkCkBAIC0xNzI3LDggKzIwMzksNyBAQCBzdGF0aWMgdTMyICpnZW44X2luaXRfaW5kaXJlY3RjdHhfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgKmJhdGNoKQogCQkJCSAgICAgICBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkIgfAogCQkJCSAgICAgICBQSVBFX0NPTlRST0xfQ1NfU1RBTEwgfAogCQkJCSAgICAgICBQSVBFX0NPTlRST0xfUVdfV1JJVEUsCi0JCQkJICAgICAgIGk5MTVfc2NyYXRjaF9vZmZzZXQoZW5naW5lLT5pOTE1KSArCi0JCQkJICAgICAgIDIgKiBDQUNIRUxJTkVfQllURVMpOworCQkJCSAgICAgICBzbG1fb2Zmc2V0KGVuZ2luZSkpOwogCiAJKmJhdGNoKysgPSBNSV9BUkJfT05fT0ZGIHwgTUlfQVJCX0VOQUJMRTsKIApAQCAtMTg3NCw3ICsyMTg1LDcgQEAgc3RhdGljIGludCBscmNfc2V0dXBfd2FfY3R4KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBQVFJfRVJSKG9iaik7CiAKLQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosICZlbmdpbmUtPmk5MTUtPmdndHQudm0sIE5VTEwpOworCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgJmVuZ2luZS0+Z3QtPmdndHQtPnZtLCBOVUxMKTsKIAlpZiAoSVNfRVJSKHZtYSkpIHsKIAkJZXJyID0gUFRSX0VSUih2bWEpOwogCQlnb3RvIGVycjsKQEAgLTE5MTQsNiArMjIyNSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF93b3JrYXJvdW5kX2JiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJcmV0dXJuIDA7CiAKIAlzd2l0Y2ggKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpKSB7CisJY2FzZSAxMjoKIAljYXNlIDExOgogCQlyZXR1cm4gMDsKIAljYXNlIDEwOgpAQCAtMTk3MCwyMiArMjI4MiwyMyBAQCBzdGF0aWMgaW50IGludGVsX2luaXRfd29ya2Fyb3VuZF9iYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIHN0YXRpYyB2b2lkIGVuYWJsZV9leGVjbGlzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogeworCXUzMiBtb2RlOworCisJYXNzZXJ0X2ZvcmNld2FrZXNfYWN0aXZlKGVuZ2luZS0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKKwogCWludGVsX2VuZ2luZV9zZXRfaHdzcF93cml0ZW1hc2soZW5naW5lLCB+MHUpOyAvKiBIV1NUQU0gKi8KIAogCWlmIChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSA+PSAxMSkKLQkJRU5HSU5FX1dSSVRFKGVuZ2luZSwKLQkJCSAgICAgUklOR19NT0RFX0dFTjcsCi0JCQkgICAgIF9NQVNLRURfQklUX0VOQUJMRShHRU4xMV9HRlhfRElTQUJMRV9MRUdBQ1lfTU9ERSkpOworCQltb2RlID0gX01BU0tFRF9CSVRfRU5BQkxFKEdFTjExX0dGWF9ESVNBQkxFX0xFR0FDWV9NT0RFKTsKIAllbHNlCi0JCUVOR0lORV9XUklURShlbmdpbmUsCi0JCQkgICAgIFJJTkdfTU9ERV9HRU43LAotCQkJICAgICBfTUFTS0VEX0JJVF9FTkFCTEUoR0ZYX1JVTl9MSVNUX0VOQUJMRSkpOworCQltb2RlID0gX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9SVU5fTElTVF9FTkFCTEUpOworCUVOR0lORV9XUklURV9GVyhlbmdpbmUsIFJJTkdfTU9ERV9HRU43LCBtb2RlKTsKIAotCUVOR0lORV9XUklURShlbmdpbmUsIFJJTkdfTUlfTU9ERSwgX01BU0tFRF9CSVRfRElTQUJMRShTVE9QX1JJTkcpKTsKKwlFTkdJTkVfV1JJVEVfRlcoZW5naW5lLCBSSU5HX01JX01PREUsIF9NQVNLRURfQklUX0RJU0FCTEUoU1RPUF9SSU5HKSk7CiAKLQlFTkdJTkVfV1JJVEUoZW5naW5lLAotCQkgICAgIFJJTkdfSFdTX1BHQSwKLQkJICAgICBpOTE1X2dndHRfb2Zmc2V0KGVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKSk7CisJRU5HSU5FX1dSSVRFX0ZXKGVuZ2luZSwKKwkJCVJJTkdfSFdTX1BHQSwKKwkJCWk5MTVfZ2d0dF9vZmZzZXQoZW5naW5lLT5zdGF0dXNfcGFnZS52bWEpKTsKIAlFTkdJTkVfUE9TVElOR19SRUFEKGVuZ2luZSwgUklOR19IV1NfUEdBKTsKIH0KIApAQCAtMTk5Myw3ICsyMzA2LDcgQEAgc3RhdGljIGJvb2wgdW5leHBlY3RlZF9zdGFydGluZ19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJYm9vbCB1bmV4cGVjdGVkID0gZmFsc2U7CiAKLQlpZiAoRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX01JX01PREUpICYgU1RPUF9SSU5HKSB7CisJaWYgKEVOR0lORV9SRUFEX0ZXKGVuZ2luZSwgUklOR19NSV9NT0RFKSAmIFNUT1BfUklORykgewogCQlEUk1fREVCVUdfRFJJVkVSKCJTVE9QX1JJTkcgc3RpbGwgc2V0IGluIFJJTkdfTUlfTU9ERVxuIik7CiAJCXVuZXhwZWN0ZWQgPSB0cnVlOwogCX0KQEAgLTIwNDEsMzQgKzIzNTQsMzIgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Jlc2V0X3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCV9fdGFza2xldF9kaXNhYmxlX3N5bmNfb25jZSgmZXhlY2xpc3RzLT50YXNrbGV0KTsKIAlHRU1fQlVHX09OKCFyZXNldF9pbl9wcm9ncmVzcyhleGVjbGlzdHMpKTsKIAotCWludGVsX2VuZ2luZV9zdG9wX2NzKGVuZ2luZSk7Ci0KIAkvKiBBbmQgZmx1c2ggYW55IGN1cnJlbnQgZGlyZWN0IHN1Ym1pc3Npb24uICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CisKKwkvKgorCSAqIFdlIHN0b3AgZW5naW5lcywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGdldCBmYWlsZWQgcmVzZXQgYW5kIGEKKwkgKiBkZWFkIGdwdSAob24gZWxrKS4gQWxzbyBhcyBtb2Rlcm4gZ3B1IGFzIGtibCBjYW4gc3VmZmVyCisJICogZnJvbSBzeXN0ZW0gaGFuZyBpZiBiYXRjaGJ1ZmZlciBpcyBwcm9ncmVzc2luZyB3aGVuCisJICogdGhlIHJlc2V0IGlzIGlzc3VlZCwgcmVnYXJkbGVzcyBvZiBSRUFEWV9UT19SRVNFVCBhY2suCisJICogVGh1cyBhc3N1bWUgaXQgaXMgYmVzdCB0byBzdG9wIGVuZ2luZXMgb24gYWxsIGdlbnMKKwkgKiB3aGVyZSB3ZSBoYXZlIGEgZ3B1IHJlc2V0LgorCSAqCisJICogV2FLQkxWRUNTU2VtYXBob3JlV2FpdFBvbGw6a2JsIChvbiBBTExfRU5HSU5FUykKKwkgKgorCSAqIEZJWE1FOiBXYSBmb3IgbW9yZSBtb2Rlcm4gZ2VucyBuZWVkcyB0byBiZSB2YWxpZGF0ZWQKKwkgKi8KKwlpbnRlbF9lbmdpbmVfc3RvcF9jcyhlbmdpbmUpOwogfQogCi1zdGF0aWMgYm9vbCBscmNfcmVnc19vayhjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3N0YXRpYyB2b2lkIHJlc2V0X2NzYl9wb2ludGVycyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0JY29uc3Qgc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBycS0+cmluZzsKLQljb25zdCB1MzIgKnJlZ3MgPSBycS0+aHdfY29udGV4dC0+bHJjX3JlZ19zdGF0ZTsKLQotCS8qIFF1aWNrIHNwb3QgY2hlY2sgZm9yIHRoZSBjb21tb24gc2lnbnMgb2YgY29udGV4dCBjb3JydXB0aW9uICovCi0KLQlpZiAocmVnc1tDVFhfUklOR19CVUZGRVJfQ09OVFJPTCArIDFdICE9Ci0JICAgIChSSU5HX0NUTF9TSVpFKHJpbmctPnNpemUpIHwgUklOR19WQUxJRCkpCi0JCXJldHVybiBmYWxzZTsKLQotCWlmIChyZWdzW0NUWF9SSU5HX0JVRkZFUl9TVEFSVCArIDFdICE9IGk5MTVfZ2d0dF9vZmZzZXQocmluZy0+dm1hKSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlc2V0X2NzYl9wb2ludGVycyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQoteworCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwogCWNvbnN0IHVuc2lnbmVkIGludCByZXNldF92YWx1ZSA9IGV4ZWNsaXN0cy0+Y3NiX3NpemUgLSAxOwogCisJcmluZ19zZXRfcGF1c2VkKGVuZ2luZSwgMCk7CisKIAkvKgogCSAqIEFmdGVyIGEgcmVzZXQsIHRoZSBIVyBzdGFydHMgd3JpdGluZyBpbnRvIENTQiBlbnRyeSBbMF0uIFdlCiAJICogdGhlcmVmb3JlIGhhdmUgdG8gc2V0IG91ciBIRUFEIHBvaW50ZXIgYmFjayBvbmUgZW50cnkgc28gdGhhdApAQCAtMjA4OCwxNSArMjM5OSwxNSBAQCBzdGF0aWMgdm9pZCByZXNldF9jc2JfcG9pbnRlcnMoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykKIAogc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKmFjdGl2ZV9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewotCWNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKiBjb25zdCBsaXN0ID0gJnJxLT5lbmdpbmUtPmFjdGl2ZS5yZXF1ZXN0czsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqIGNvbnN0IGNvbnRleHQgPSBycS0+aHdfY29udGV4dDsKKwljb25zdCBzdHJ1Y3QgbGlzdF9oZWFkICogY29uc3QgbGlzdCA9ICZycS0+dGltZWxpbmUtPnJlcXVlc3RzOworCWNvbnN0IHN0cnVjdCBpbnRlbF9jb250ZXh0ICogY29uc3QgY2UgPSBycS0+aHdfY29udGV4dDsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICphY3RpdmUgPSBOVUxMOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeV9mcm9tX3JldmVyc2UocnEsIGxpc3QsIHNjaGVkLmxpbmspIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb21fcmV2ZXJzZShycSwgbGlzdCwgbGluaykgewogCQlpZiAoaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpCiAJCQlicmVhazsKIAotCQlpZiAocnEtPmh3X2NvbnRleHQgIT0gY29udGV4dCkKKwkJaWYgKHJxLT5od19jb250ZXh0ICE9IGNlKQogCQkJYnJlYWs7CiAKIAkJYWN0aXZlID0gcnE7CkBAIC0yMTE1LDMzICsyNDI2LDI3IEBAIHN0YXRpYyB2b2lkIF9fZXhlY2xpc3RzX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgYm9vbCBzdGFsbGVkKQogCXByb2Nlc3NfY3NiKGVuZ2luZSk7IC8qIGRyYWluIHByZWVtcHRpb24gZXZlbnRzICovCiAKIAkvKiBGb2xsb3dpbmcgdGhlIHJlc2V0LCB3ZSBuZWVkIHRvIHJlbG9hZCB0aGUgQ1NCIHJlYWQvd3JpdGUgcG9pbnRlcnMgKi8KLQlyZXNldF9jc2JfcG9pbnRlcnMoJmVuZ2luZS0+ZXhlY2xpc3RzKTsKKwlyZXNldF9jc2JfcG9pbnRlcnMoZW5naW5lKTsKIAogCS8qCiAJICogU2F2ZSB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb250ZXh0LCBldmVuIGlmIHdlIGNvbXBsZXRlZAogCSAqIGl0cyByZXF1ZXN0LCBpdCB3YXMgc3RpbGwgcnVubmluZyBhdCB0aGUgdGltZSBvZiB0aGUKIAkgKiByZXNldCBhbmQgd2lsbCBoYXZlIGJlZW4gY2xvYmJlcmVkLgogCSAqLwotCWlmICghcG9ydF9pc3NldChleGVjbGlzdHMtPnBvcnQpKQotCQlnb3RvIG91dF9jbGVhcjsKLQotCXJxID0gcG9ydF9yZXF1ZXN0KGV4ZWNsaXN0cy0+cG9ydCk7Ci0JY2UgPSBycS0+aHdfY29udGV4dDsKLQotCS8qCi0JICogQ2F0Y2ggdXAgd2l0aCBhbnkgbWlzc2VkIGNvbnRleHQtc3dpdGNoIGludGVycnVwdHMuCi0JICoKLQkgKiBJZGVhbGx5IHdlIHdvdWxkIGp1c3QgcmVhZCB0aGUgcmVtYWluaW5nIENTQiBlbnRyaWVzIG5vdyB0aGF0IHdlCi0JICoga25vdyB0aGUgZ3B1IGlzIGlkbGUuIEhvd2V2ZXIsIHRoZSBDU0IgcmVnaXN0ZXJzIGFyZSBzb21ldGltZXNeVwotCSAqIG9mdGVuIHRyYXNoZWQgYWNyb3NzIGEgR1BVIHJlc2V0ISBJbnN0ZWFkIHdlIGhhdmUgdG8gcmVseSBvbgotCSAqIGd1ZXNzaW5nIHRoZSBtaXNzZWQgY29udGV4dC1zd2l0Y2ggZXZlbnRzIGJ5IGxvb2tpbmcgYXQgd2hhdAotCSAqIHJlcXVlc3RzIHdlcmUgY29tcGxldGVkLgotCSAqLwotCWV4ZWNsaXN0c19jYW5jZWxfcG9ydF9yZXF1ZXN0cyhleGVjbGlzdHMpOwotCi0JcnEgPSBhY3RpdmVfcmVxdWVzdChycSk7CisJcnEgPSBleGVjbGlzdHNfYWN0aXZlKGV4ZWNsaXN0cyk7CiAJaWYgKCFycSkKKwkJZ290byB1bndpbmQ7CisKKwljZSA9IHJxLT5od19jb250ZXh0OworCUdFTV9CVUdfT04oaTkxNV9hY3RpdmVfaXNfaWRsZSgmY2UtPmFjdGl2ZSkpOworCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX3Bpbm5lZChjZS0+c3RhdGUpKTsKKwlycSA9IGFjdGl2ZV9yZXF1ZXN0KHJxKTsKKwlpZiAoIXJxKSB7CisJCWNlLT5yaW5nLT5oZWFkID0gY2UtPnJpbmctPnRhaWw7CiAJCWdvdG8gb3V0X3JlcGxheTsKKwl9CisKKwljZS0+cmluZy0+aGVhZCA9IGludGVsX3Jpbmdfd3JhcChjZS0+cmluZywgcnEtPmhlYWQpOwogCiAJLyoKIAkgKiBJZiB0aGlzIHJlcXVlc3QgaGFzbid0IHN0YXJ0ZWQgeWV0LCBlLmcuIGl0IGlzIHdhaXRpbmcgb24gYQpAQCAtMjE1NSw3ICsyNDYwLDcgQEAgc3RhdGljIHZvaWQgX19leGVjbGlzdHNfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBib29sIHN0YWxsZWQpCiAJICogT3RoZXJ3aXNlLCBpZiB3ZSBoYXZlIG5vdCBzdGFydGVkIHlldCwgdGhlIHJlcXVlc3Qgc2hvdWxkIHJlcGxheQogCSAqIHBlcmZlY3RseSBhbmQgd2UgZG8gbm90IG5lZWQgdG8gZmxhZyB0aGUgcmVzdWx0IGFzIGJlaW5nIGVycm9uZW91cy4KIAkgKi8KLQlpZiAoIWk5MTVfcmVxdWVzdF9zdGFydGVkKHJxKSAmJiBscmNfcmVnc19vayhycSkpCisJaWYgKCFpOTE1X3JlcXVlc3Rfc3RhcnRlZChycSkpCiAJCWdvdG8gb3V0X3JlcGxheTsKIAogCS8qCkBAIC0yMTY5LDggKzI0NzQsOCBAQCBzdGF0aWMgdm9pZCBfX2V4ZWNsaXN0c19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGJvb2wgc3RhbGxlZCkKIAkgKiBhbmQgaGF2ZSB0byBhdCBsZWFzdCByZXN0b3JlIHRoZSBSSU5HIHJlZ2lzdGVyIGluIHRoZSBjb250ZXh0CiAJICogaW1hZ2UgYmFjayB0byB0aGUgZXhwZWN0ZWQgdmFsdWVzIHRvIHNraXAgb3ZlciB0aGUgZ3VpbHR5IHJlcXVlc3QuCiAJICovCi0JaTkxNV9yZXNldF9yZXF1ZXN0KHJxLCBzdGFsbGVkKTsKLQlpZiAoIXN0YWxsZWQgJiYgbHJjX3JlZ3Nfb2socnEpKQorCV9faTkxNV9yZXF1ZXN0X3Jlc2V0KHJxLCBzdGFsbGVkKTsKKwlpZiAoIXN0YWxsZWQpCiAJCWdvdG8gb3V0X3JlcGxheTsKIAogCS8qCkBAIC0yMTkwLDE3ICsyNDk1LDE1IEBAIHN0YXRpYyB2b2lkIF9fZXhlY2xpc3RzX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgYm9vbCBzdGFsbGVkKQogCWV4ZWNsaXN0c19pbml0X3JlZ19zdGF0ZShyZWdzLCBjZSwgZW5naW5lLCBjZS0+cmluZyk7CiAKIG91dF9yZXBsYXk6Ci0JLyogUmVydW4gdGhlIHJlcXVlc3Q7IGl0cyBwYXlsb2FkIGhhcyBiZWVuIG5ldXRlcmVkIChpZiBndWlsdHkpLiAqLwotCWNlLT5yaW5nLT5oZWFkID0KLQkJcnEgPyBpbnRlbF9yaW5nX3dyYXAoY2UtPnJpbmcsIHJxLT5oZWFkKSA6IGNlLT5yaW5nLT50YWlsOworCUdFTV9UUkFDRSgiJXMgcmVwbGF5IHtoZWFkOiUwNHgsIHRhaWw6JTA0eFxuIiwKKwkJICBlbmdpbmUtPm5hbWUsIGNlLT5yaW5nLT5oZWFkLCBjZS0+cmluZy0+dGFpbCk7CiAJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UoY2UtPnJpbmcpOwogCV9fZXhlY2xpc3RzX3VwZGF0ZV9yZWdfc3RhdGUoY2UsIGVuZ2luZSk7CiAKK3Vud2luZDoKIAkvKiBQdXNoIGJhY2sgYW55IGluY29tcGxldGUgcmVxdWVzdHMgZm9yIHJlcGxheSBhZnRlciB0aGUgcmVzZXQuICovCisJY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsKIAlfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKGVuZ2luZSk7Ci0KLW91dF9jbGVhcjoKLQlleGVjbGlzdHNfY2xlYXJfYWxsX2FjdGl2ZShleGVjbGlzdHMpOwogfQogCiBzdGF0aWMgdm9pZCBleGVjbGlzdHNfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBib29sIHN0YWxsZWQpCkBAIC0yMjk2LDcgKzI1OTksNiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY2FuY2VsX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWV4ZWNsaXN0cy0+cXVldWVfcHJpb3JpdHlfaGludCA9IElOVF9NSU47CiAJZXhlY2xpc3RzLT5xdWV1ZSA9IFJCX1JPT1RfQ0FDSEVEOwotCUdFTV9CVUdfT04ocG9ydF9pc3NldChleGVjbGlzdHMtPnBvcnQpKTsKIAogCUdFTV9CVUdfT04oX190YXNrbGV0X2lzX2VuYWJsZWQoJmV4ZWNsaXN0cy0+dGFza2xldCkpOwogCWV4ZWNsaXN0cy0+dGFza2xldC5mdW5jID0gbm9wX3N1Ym1pc3Npb25fdGFza2xldDsKQEAgLTI0MzQsNyArMjczNiw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKIAl1MzIgc2NyYXRjaF9hZGRyID0KLQkJaTkxNV9zY3JhdGNoX29mZnNldChlbmdpbmUtPmk5MTUpICsgMiAqIENBQ0hFTElORV9CWVRFUzsKKwkJaW50ZWxfZ3Rfc2NyYXRjaF9vZmZzZXQoZW5naW5lLT5ndCwKKwkJCQkJSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9SRU5ERVJfRkxVU0gpOwogCWJvb2wgdmZfZmx1c2hfd2EgPSBmYWxzZSwgZGNfZmx1c2hfd2EgPSBmYWxzZTsKIAl1MzIgKmNzLCBmbGFncyA9IDA7CiAJaW50IGxlbjsKQEAgLTI0OTksNiArMjgwMiw2MyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBnZW4xMV9lbWl0X2ZsdXNoX3JlbmRlcihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAorCQkJCSAgIHUzMiBtb2RlKQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKKwljb25zdCB1MzIgc2NyYXRjaF9hZGRyID0KKwkJaW50ZWxfZ3Rfc2NyYXRjaF9vZmZzZXQoZW5naW5lLT5ndCwKKwkJCQkJSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9SRU5ERVJfRkxVU0gpOworCisJaWYgKG1vZGUgJiBFTUlUX0ZMVVNIKSB7CisJCXUzMiAqY3M7CisJCXUzMiBmbGFncyA9IDA7CisKKwkJZmxhZ3MgfD0gUElQRV9DT05UUk9MX0NTX1NUQUxMOworCisJCWZsYWdzIHw9IFBJUEVfQ09OVFJPTF9USUxFX0NBQ0hFX0ZMVVNIOworCQlmbGFncyB8PSBQSVBFX0NPTlRST0xfUkVOREVSX1RBUkdFVF9DQUNIRV9GTFVTSDsKKwkJZmxhZ3MgfD0gUElQRV9DT05UUk9MX0RFUFRIX0NBQ0hFX0ZMVVNIOworCQlmbGFncyB8PSBQSVBFX0NPTlRST0xfRENfRkxVU0hfRU5BQkxFOworCQlmbGFncyB8PSBQSVBFX0NPTlRST0xfRkxVU0hfRU5BQkxFOworCQlmbGFncyB8PSBQSVBFX0NPTlRST0xfUVdfV1JJVEU7CisJCWZsYWdzIHw9IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUX0lWQjsKKworCQljcyA9IGludGVsX3JpbmdfYmVnaW4ocmVxdWVzdCwgNik7CisJCWlmIChJU19FUlIoY3MpKQorCQkJcmV0dXJuIFBUUl9FUlIoY3MpOworCisJCWNzID0gZ2VuOF9lbWl0X3BpcGVfY29udHJvbChjcywgZmxhZ3MsIHNjcmF0Y2hfYWRkcik7CisJCWludGVsX3JpbmdfYWR2YW5jZShyZXF1ZXN0LCBjcyk7CisJfQorCisJaWYgKG1vZGUgJiBFTUlUX0lOVkFMSURBVEUpIHsKKwkJdTMyICpjczsKKwkJdTMyIGZsYWdzID0gMDsKKworCQlmbGFncyB8PSBQSVBFX0NPTlRST0xfQ1NfU1RBTEw7CisKKwkJZmxhZ3MgfD0gUElQRV9DT05UUk9MX0NPTU1BTkRfQ0FDSEVfSU5WQUxJREFURTsKKwkJZmxhZ3MgfD0gUElQRV9DT05UUk9MX1RMQl9JTlZBTElEQVRFOworCQlmbGFncyB8PSBQSVBFX0NPTlRST0xfSU5TVFJVQ1RJT05fQ0FDSEVfSU5WQUxJREFURTsKKwkJZmxhZ3MgfD0gUElQRV9DT05UUk9MX1RFWFRVUkVfQ0FDSEVfSU5WQUxJREFURTsKKwkJZmxhZ3MgfD0gUElQRV9DT05UUk9MX1ZGX0NBQ0hFX0lOVkFMSURBVEU7CisJCWZsYWdzIHw9IFBJUEVfQ09OVFJPTF9DT05TVF9DQUNIRV9JTlZBTElEQVRFOworCQlmbGFncyB8PSBQSVBFX0NPTlRST0xfU1RBVEVfQ0FDSEVfSU5WQUxJREFURTsKKwkJZmxhZ3MgfD0gUElQRV9DT05UUk9MX1FXX1dSSVRFOworCQlmbGFncyB8PSBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkI7CisKKwkJY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcXVlc3QsIDYpOworCQlpZiAoSVNfRVJSKGNzKSkKKwkJCXJldHVybiBQVFJfRVJSKGNzKTsKKworCQljcyA9IGdlbjhfZW1pdF9waXBlX2NvbnRyb2woY3MsIGZsYWdzLCBzY3JhdGNoX2FkZHIpOworCQlpbnRlbF9yaW5nX2FkdmFuY2UocmVxdWVzdCwgY3MpOworCX0KKworCXJldHVybiAwOworfQorCiAvKgogICogUmVzZXJ2ZSBzcGFjZSBmb3IgMiBOT09QcyBhdCB0aGUgZW5kIG9mIGVhY2ggcmVxdWVzdCB0byBiZQogICogdXNlZCBhcyBhIHdvcmthcm91bmQgZm9yIG5vdCBiZWluZyBhbGxvd2VkIHRvIGRvIGxpdGUKQEAgLTI1MTQsNiArMjg3NCwzNSBAQCBzdGF0aWMgdTMyICpnZW44X2VtaXRfd2FfdGFpbChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIgKmNzKQogCXJldHVybiBjczsKIH0KIAorc3RhdGljIHUzMiAqZW1pdF9wcmVlbXB0X2J1c3l3YWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCit7CisJKmNzKysgPSBNSV9TRU1BUEhPUkVfV0FJVCB8CisJCU1JX1NFTUFQSE9SRV9HTE9CQUxfR1RUIHwKKwkJTUlfU0VNQVBIT1JFX1BPTEwgfAorCQlNSV9TRU1BUEhPUkVfU0FEX0VRX1NERDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSBpbnRlbF9od3NfcHJlZW1wdF9hZGRyZXNzKHJlcXVlc3QtPmVuZ2luZSk7CisJKmNzKysgPSAwOworCisJcmV0dXJuIGNzOworfQorCitzdGF0aWMgX19hbHdheXNfaW5saW5lIHUzMioKK2dlbjhfZW1pdF9maW5pX2JyZWFkY3J1bWJfZm9vdGVyKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsCisJCQkJIHUzMiAqY3MpCit7CisJKmNzKysgPSBNSV9VU0VSX0lOVEVSUlVQVDsKKworCSpjcysrID0gTUlfQVJCX09OX09GRiB8IE1JX0FSQl9FTkFCTEU7CisJaWYgKGludGVsX2VuZ2luZV9oYXNfc2VtYXBob3JlcyhyZXF1ZXN0LT5lbmdpbmUpKQorCQljcyA9IGVtaXRfcHJlZW1wdF9idXN5d2FpdChyZXF1ZXN0LCBjcyk7CisKKwlyZXF1ZXN0LT50YWlsID0gaW50ZWxfcmluZ19vZmZzZXQocmVxdWVzdCwgY3MpOworCWFzc2VydF9yaW5nX3RhaWxfdmFsaWQocmVxdWVzdC0+cmluZywgcmVxdWVzdC0+dGFpbCk7CisKKwlyZXR1cm4gZ2VuOF9lbWl0X3dhX3RhaWwocmVxdWVzdCwgY3MpOworfQorCiBzdGF0aWMgdTMyICpnZW44X2VtaXRfZmluaV9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCiB7CiAJY3MgPSBnZW44X2VtaXRfZ2d0dF93cml0ZShjcywKQEAgLTI1MjEsNjAgKzI5MTAsNDYgQEAgc3RhdGljIHUzMiAqZ2VuOF9lbWl0X2ZpbmlfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIgKmNzKQogCQkJCSAgcmVxdWVzdC0+dGltZWxpbmUtPmh3c3Bfb2Zmc2V0LAogCQkJCSAgMCk7CiAKLQkqY3MrKyA9IE1JX1VTRVJfSU5URVJSVVBUOwotCSpjcysrID0gTUlfQVJCX09OX09GRiB8IE1JX0FSQl9FTkFCTEU7Ci0KLQlyZXF1ZXN0LT50YWlsID0gaW50ZWxfcmluZ19vZmZzZXQocmVxdWVzdCwgY3MpOwotCWFzc2VydF9yaW5nX3RhaWxfdmFsaWQocmVxdWVzdC0+cmluZywgcmVxdWVzdC0+dGFpbCk7Ci0KLQlyZXR1cm4gZ2VuOF9lbWl0X3dhX3RhaWwocmVxdWVzdCwgY3MpOworCXJldHVybiBnZW44X2VtaXRfZmluaV9icmVhZGNydW1iX2Zvb3RlcihyZXF1ZXN0LCBjcyk7CiB9CiAKIHN0YXRpYyB1MzIgKmdlbjhfZW1pdF9maW5pX2JyZWFkY3J1bWJfcmNzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCiB7Ci0JLyogWFhYIGZsdXNoK3dyaXRlK0NTX1NUQUxMIGFsbCBpbiBvbmUgdXBzZXRzIGdlbV9jb25jdXJyZW50X2JsdDprYmwgKi8KIAljcyA9IGdlbjhfZW1pdF9nZ3R0X3dyaXRlX3JjcyhjcywKIAkJCQkgICAgICByZXF1ZXN0LT5mZW5jZS5zZXFubywKIAkJCQkgICAgICByZXF1ZXN0LT50aW1lbGluZS0+aHdzcF9vZmZzZXQsCiAJCQkJICAgICAgUElQRV9DT05UUk9MX1JFTkRFUl9UQVJHRVRfQ0FDSEVfRkxVU0ggfAogCQkJCSAgICAgIFBJUEVfQ09OVFJPTF9ERVBUSF9DQUNIRV9GTFVTSCB8CiAJCQkJICAgICAgUElQRV9DT05UUk9MX0RDX0ZMVVNIX0VOQUJMRSk7CisKKwkvKiBYWFggZmx1c2grd3JpdGUrQ1NfU1RBTEwgYWxsIGluIG9uZSB1cHNldHMgZ2VtX2NvbmN1cnJlbnRfYmx0OmtibCAqLwogCWNzID0gZ2VuOF9lbWl0X3BpcGVfY29udHJvbChjcywKIAkJCQkgICAgUElQRV9DT05UUk9MX0ZMVVNIX0VOQUJMRSB8CiAJCQkJICAgIFBJUEVfQ09OVFJPTF9DU19TVEFMTCwKIAkJCQkgICAgMCk7CiAKLQkqY3MrKyA9IE1JX1VTRVJfSU5URVJSVVBUOwotCSpjcysrID0gTUlfQVJCX09OX09GRiB8IE1JX0FSQl9FTkFCTEU7Ci0KLQlyZXF1ZXN0LT50YWlsID0gaW50ZWxfcmluZ19vZmZzZXQocmVxdWVzdCwgY3MpOwotCWFzc2VydF9yaW5nX3RhaWxfdmFsaWQocmVxdWVzdC0+cmluZywgcmVxdWVzdC0+dGFpbCk7Ci0KLQlyZXR1cm4gZ2VuOF9lbWl0X3dhX3RhaWwocmVxdWVzdCwgY3MpOworCXJldHVybiBnZW44X2VtaXRfZmluaV9icmVhZGNydW1iX2Zvb3RlcihyZXF1ZXN0LCBjcyk7CiB9CiAKLXN0YXRpYyBpbnQgZ2VuOF9pbml0X3Jjc19jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQorc3RhdGljIHUzMiAqZ2VuMTFfZW1pdF9maW5pX2JyZWFkY3J1bWJfcmNzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsCisJCQkJCSAgIHUzMiAqY3MpCiB7Ci0JaW50IHJldDsKKwljcyA9IGdlbjhfZW1pdF9nZ3R0X3dyaXRlX3JjcyhjcywKKwkJCQkgICAgICByZXF1ZXN0LT5mZW5jZS5zZXFubywKKwkJCQkgICAgICByZXF1ZXN0LT50aW1lbGluZS0+aHdzcF9vZmZzZXQsCisJCQkJICAgICAgUElQRV9DT05UUk9MX0NTX1NUQUxMIHwKKwkJCQkgICAgICBQSVBFX0NPTlRST0xfVElMRV9DQUNIRV9GTFVTSCB8CisJCQkJICAgICAgUElQRV9DT05UUk9MX1JFTkRFUl9UQVJHRVRfQ0FDSEVfRkxVU0ggfAorCQkJCSAgICAgIFBJUEVfQ09OVFJPTF9ERVBUSF9DQUNIRV9GTFVTSCB8CisJCQkJICAgICAgUElQRV9DT05UUk9MX0RDX0ZMVVNIX0VOQUJMRSB8CisJCQkJICAgICAgUElQRV9DT05UUk9MX0ZMVVNIX0VOQUJMRSk7CiAKLQlyZXQgPSBpbnRlbF9lbmdpbmVfZW1pdF9jdHhfd2EocnEpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXQgPSBpbnRlbF9yY3NfY29udGV4dF9pbml0X21vY3MocnEpOwotCS8qCi0JICogRmFpbGluZyB0byBwcm9ncmFtIHRoZSBNT0NTIGlzIG5vbi1mYXRhbC5UaGUgc3lzdGVtIHdpbGwgbm90Ci0JICogcnVuIGF0IHBlYWsgcGVyZm9ybWFuY2UuIFNvIGdlbmVyYXRlIGFuIGVycm9yIGFuZCBjYXJyeSBvbi4KLQkgKi8KLQlpZiAocmV0KQotCQlEUk1fRVJST1IoIk1PQ1MgZmFpbGVkIHRvIHByb2dyYW06IGV4cGVjdCBwZXJmb3JtYW5jZSBpc3N1ZXMuXG4iKTsKLQotCXJldHVybiBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfZW1pdChycSk7CisJcmV0dXJuIGdlbjhfZW1pdF9maW5pX2JyZWFkY3J1bWJfZm9vdGVyKHJlcXVlc3QsIGNzKTsKIH0KIAogc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Bhcmsoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCWludGVsX2VuZ2luZV9wYXJrKGVuZ2luZSk7CisJZGVsX3RpbWVyKCZlbmdpbmUtPmV4ZWNsaXN0cy50aW1lcik7CiB9CiAKIHZvaWQgaW50ZWxfZXhlY2xpc3RzX3NldF9kZWZhdWx0X3N1Ym1pc3Npb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpAQCAtMjU5MiwxMSArMjk2NywxMSBAQCB2b2lkIGludGVsX2V4ZWNsaXN0c19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAllbmdpbmUtPnVucGFyayA9IE5VTEw7CiAKIAllbmdpbmUtPmZsYWdzIHw9IEk5MTVfRU5HSU5FX1NVUFBPUlRTX1NUQVRTOwotCWlmICghaW50ZWxfdmdwdV9hY3RpdmUoZW5naW5lLT5pOTE1KSkKKwlpZiAoIWludGVsX3ZncHVfYWN0aXZlKGVuZ2luZS0+aTkxNSkpIHsKIAkJZW5naW5lLT5mbGFncyB8PSBJOTE1X0VOR0lORV9IQVNfU0VNQVBIT1JFUzsKLQlpZiAoZW5naW5lLT5wcmVlbXB0X2NvbnRleHQgJiYKLQkgICAgSEFTX0xPR0lDQUxfUklOR19QUkVFTVBUSU9OKGVuZ2luZS0+aTkxNSkpCi0JCWVuZ2luZS0+ZmxhZ3MgfD0gSTkxNV9FTkdJTkVfSEFTX1BSRUVNUFRJT047CisJCWlmIChIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oZW5naW5lLT5pOTE1KSkKKwkJCWVuZ2luZS0+ZmxhZ3MgfD0gSTkxNV9FTkdJTkVfSEFTX1BSRUVNUFRJT047CisJfQogfQogCiBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCkBAIC0yNjY1LDIyICszMDQwLDMyIEBAIGxvZ2ljYWxfcmluZ19kZWZhdWx0X2lycXMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWVuZ2luZS0+aXJxX2tlZXBfbWFzayA9IEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBzaGlmdDsKIH0KIAorc3RhdGljIHZvaWQgcmNzX3N1Ym1pc3Npb25fb3ZlcnJpZGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXN3aXRjaCAoSU5URUxfR0VOKGVuZ2luZS0+aTkxNSkpIHsKKwljYXNlIDEyOgorCWNhc2UgMTE6CisJCWVuZ2luZS0+ZW1pdF9mbHVzaCA9IGdlbjExX2VtaXRfZmx1c2hfcmVuZGVyOworCQllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iID0gZ2VuMTFfZW1pdF9maW5pX2JyZWFkY3J1bWJfcmNzOworCQlicmVhazsKKwlkZWZhdWx0OgorCQllbmdpbmUtPmVtaXRfZmx1c2ggPSBnZW44X2VtaXRfZmx1c2hfcmVuZGVyOworCQllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iID0gZ2VuOF9lbWl0X2ZpbmlfYnJlYWRjcnVtYl9yY3M7CisJCWJyZWFrOworCX0KK30KKwogaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX3NldHVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQkvKiBJbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsuICovCi0JZW5naW5lLT5idWZmZXIgPSBOVUxMOwotCiAJdGFza2xldF9pbml0KCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0LAogCQkgICAgIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQsICh1bnNpZ25lZCBsb25nKWVuZ2luZSk7CisJdGltZXJfc2V0dXAoJmVuZ2luZS0+ZXhlY2xpc3RzLnRpbWVyLCBleGVjbGlzdHNfc3VibWlzc2lvbl90aW1lciwgMCk7CiAKIAlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3MoZW5naW5lKTsKIAlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKGVuZ2luZSk7CiAKLQlpZiAoZW5naW5lLT5jbGFzcyA9PSBSRU5ERVJfQ0xBU1MpIHsKLQkJZW5naW5lLT5pbml0X2NvbnRleHQgPSBnZW44X2luaXRfcmNzX2NvbnRleHQ7Ci0JCWVuZ2luZS0+ZW1pdF9mbHVzaCA9IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXI7Ci0JCWVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIgPSBnZW44X2VtaXRfZmluaV9icmVhZGNydW1iX3JjczsKLQl9CisJaWYgKGVuZ2luZS0+Y2xhc3MgPT0gUkVOREVSX0NMQVNTKQorCQlyY3Nfc3VibWlzc2lvbl9vdmVycmlkZShlbmdpbmUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yNjk3LDkgKzMwODIsNiBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWludGVsX2VuZ2luZV9pbml0X3dvcmthcm91bmRzKGVuZ2luZSk7Ci0JaW50ZWxfZW5naW5lX2luaXRfd2hpdGVsaXN0KGVuZ2luZSk7Ci0KIAlpZiAoaW50ZWxfaW5pdF93b3JrYXJvdW5kX2JiKGVuZ2luZSkpCiAJCS8qCiAJCSAqIFdlIGNvbnRpbnVlIGV2ZW4gaWYgd2UgZmFpbCB0byBpbml0aWFsaXplIFdBIGJhdGNoCkBAIC0yNzE4LDExICszMTAwLDYgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19FTFNQKGJhc2UpKTsKIAl9CiAKLQlleGVjbGlzdHMtPnByZWVtcHRfY29tcGxldGVfc3RhdHVzID0gfjB1OwotCWlmIChlbmdpbmUtPnByZWVtcHRfY29udGV4dCkKLQkJZXhlY2xpc3RzLT5wcmVlbXB0X2NvbXBsZXRlX3N0YXR1cyA9Ci0JCQl1cHBlcl8zMl9iaXRzKGVuZ2luZS0+cHJlZW1wdF9jb250ZXh0LT5scmNfZGVzYyk7Ci0KIAlleGVjbGlzdHMtPmNzYl9zdGF0dXMgPQogCQkmZW5naW5lLT5zdGF0dXNfcGFnZS5hZGRyW0k5MTVfSFdTX0NTQl9CVUYwX0lOREVYXTsKIApAQCAtMjczNCw3ICszMTExLDcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWVsc2UKIAkJZXhlY2xpc3RzLT5jc2Jfc2l6ZSA9IEdFTjExX0NTQl9FTlRSSUVTOwogCi0JcmVzZXRfY3NiX3BvaW50ZXJzKGV4ZWNsaXN0cyk7CisJcmVzZXRfY3NiX3BvaW50ZXJzKGVuZ2luZSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTI3NDcsNiArMzEyNCwxMCBAQCBzdGF0aWMgdTMyIGludGVsX2xyX2luZGlyZWN0X2N0eF9vZmZzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWRlZmF1bHQ6CiAJCU1JU1NJTkdfQ0FTRShJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSk7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgMTI6CisJCWluZGlyZWN0X2N0eF9vZmZzZXQgPQorCQkJR0VOMTJfQ1RYX1JDU19JTkRJUkVDVF9DVFhfT0ZGU0VUX0RFRkFVTFQ7CisJCWJyZWFrOwogCWNhc2UgMTE6CiAJCWluZGlyZWN0X2N0eF9vZmZzZXQgPQogCQkJR0VOMTFfQ1RYX1JDU19JTkRJUkVDVF9DVFhfT0ZGU0VUX0RFRkFVTFQ7CkBAIC0yNzczLDcgKzMxNTQsNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfaW5pdF9yZWdfc3RhdGUodTMyICpyZWdzLAogCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJCSAgICAgc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCiB7Ci0Jc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0ID0gaTkxNV92bV90b19wcGd0dChjZS0+Z2VtX2NvbnRleHQtPnZtKTsKKwlzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQgPSBpOTE1X3ZtX3RvX3BwZ3R0KGNlLT52bSk7CiAJYm9vbCByY3MgPSBlbmdpbmUtPmNsYXNzID09IFJFTkRFUl9DTEFTUzsKIAl1MzIgYmFzZSA9IGVuZ2luZS0+bW1pb19iYXNlOwogCkBAIC0yODY0LDggKzMyNDUsNiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfaW5pdF9yZWdfc3RhdGUodTMyICpyZWdzLAogCWlmIChyY3MpIHsKIAkJcmVnc1tDVFhfTFJJX0hFQURFUl8yXSA9IE1JX0xPQURfUkVHSVNURVJfSU1NKDEpOwogCQlDVFhfUkVHKHJlZ3MsIENUWF9SX1BXUl9DTEtfU1RBVEUsIEdFTjhfUl9QV1JfQ0xLX1NUQVRFLCAwKTsKLQotCQlpOTE1X29hX2luaXRfcmVnX3N0YXRlKGVuZ2luZSwgY2UsIHJlZ3MpOwogCX0KIAogCXJlZ3NbQ1RYX0VORF0gPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwpAQCAtMjg5MCw2ICszMjY5LDggQEAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCXJldHVybiByZXQ7CiAJfQogCisJc2V0X3JlZHpvbmUodmFkZHIsIGVuZ2luZSk7CisKIAlpZiAoZW5naW5lLT5kZWZhdWx0X3N0YXRlKSB7CiAJCS8qCiAJCSAqIFdlIG9ubHkgd2FudCB0byBjb3B5IG92ZXIgdGhlIHRlbXBsYXRlIGNvbnRleHQgc3RhdGU7CkBAIC0yOTE3LDExICszMjk4LDYgQEAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJaWYgKCFlbmdpbmUtPmRlZmF1bHRfc3RhdGUpCiAJCXJlZ3NbQ1RYX0NPTlRFWFRfQ09OVFJPTCArIDFdIHw9CiAJCQlfTUFTS0VEX0JJVF9FTkFCTEUoQ1RYX0NUUkxfRU5HSU5FX0NUWF9SRVNUT1JFX0lOSElCSVQpOwotCWlmIChjZS0+Z2VtX2NvbnRleHQgPT0gZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQgJiYKLQkgICAgSU5URUxfR0VOKGVuZ2luZS0+aTkxNSkgPCAxMSkKLQkJcmVnc1tDVFhfQ09OVEVYVF9DT05UUk9MICsgMV0gfD0KLQkJCV9NQVNLRURfQklUX0VOQUJMRShDVFhfQ1RSTF9FTkdJTkVfQ1RYX1JFU1RPUkVfSU5ISUJJVCB8Ci0JCQkJCSAgIENUWF9DVFJMX0VOR0lORV9DVFhfU0FWRV9JTkhJQklUKTsKIAogCXJldCA9IDA7CiBlcnJfdW5waW5fY3R4OgpAQCAtMjkzMiwyNyArMzMwOCwxNiBAQCBwb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgc3RydWN0IGk5MTVfdGltZWxpbmUgKmdldF90aW1lbGluZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQotewotCWlmIChjdHgtPnRpbWVsaW5lKQotCQlyZXR1cm4gaTkxNV90aW1lbGluZV9nZXQoY3R4LT50aW1lbGluZSk7Ci0JZWxzZQotCQlyZXR1cm4gaTkxNV90aW1lbGluZV9jcmVhdGUoY3R4LT5pOTE1LCBOVUxMKTsKLX0KLQotc3RhdGljIGludCBleGVjbGlzdHNfY29udGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCi0JCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitzdGF0aWMgaW50IF9fZXhlY2xpc3RzX2NvbnRleHRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAorCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCXUzMiBjb250ZXh0X3NpemU7Ci0Jc3RydWN0IGludGVsX3JpbmcgKnJpbmc7Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lOwogCWludCByZXQ7CiAKLQlpZiAoY2UtPnN0YXRlKQotCQlyZXR1cm4gMDsKLQorCUdFTV9CVUdfT04oY2UtPnN0YXRlKTsKIAljb250ZXh0X3NpemUgPSByb3VuZF91cChlbmdpbmUtPmNvbnRleHRfc2l6ZSwgSTkxNV9HVFRfUEFHRV9TSVpFKTsKIAogCS8qCkBAIC0yOTYwLDI3ICszMzI1LDMyIEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCSAqIGZvciBvdXIgb3duIHVzZSBhbmQgZm9yIHNoYXJpbmcgd2l0aCB0aGUgR3VDLgogCSAqLwogCWNvbnRleHRfc2l6ZSArPSBMUkNfSEVBREVSX1BBR0VTICogUEFHRV9TSVpFOworCWlmIChJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVR19HRU0pKQorCQljb250ZXh0X3NpemUgKz0gSTkxNV9HVFRfUEFHRV9TSVpFOyAvKiBmb3IgcmVkem9uZSAqLwogCiAJY3R4X29iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc2htZW0oZW5naW5lLT5pOTE1LCBjb250ZXh0X3NpemUpOwogCWlmIChJU19FUlIoY3R4X29iaikpCiAJCXJldHVybiBQVFJfRVJSKGN0eF9vYmopOwogCi0Jdm1hID0gaTkxNV92bWFfaW5zdGFuY2UoY3R4X29iaiwgJmVuZ2luZS0+aTkxNS0+Z2d0dC52bSwgTlVMTCk7CisJdm1hID0gaTkxNV92bWFfaW5zdGFuY2UoY3R4X29iaiwgJmVuZ2luZS0+Z3QtPmdndHQtPnZtLCBOVUxMKTsKIAlpZiAoSVNfRVJSKHZtYSkpIHsKIAkJcmV0ID0gUFRSX0VSUih2bWEpOwogCQlnb3RvIGVycm9yX2RlcmVmX29iajsKIAl9CiAKLQl0aW1lbGluZSA9IGdldF90aW1lbGluZShjZS0+Z2VtX2NvbnRleHQpOwotCWlmIChJU19FUlIodGltZWxpbmUpKSB7Ci0JCXJldCA9IFBUUl9FUlIodGltZWxpbmUpOwotCQlnb3RvIGVycm9yX2RlcmVmX29iajsKKwlpZiAoIWNlLT50aW1lbGluZSkgeworCQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsOworCisJCXRsID0gaW50ZWxfdGltZWxpbmVfY3JlYXRlKGVuZ2luZS0+Z3QsIE5VTEwpOworCQlpZiAoSVNfRVJSKHRsKSkgeworCQkJcmV0ID0gUFRSX0VSUih0bCk7CisJCQlnb3RvIGVycm9yX2RlcmVmX29iajsKKwkJfQorCisJCWNlLT50aW1lbGluZSA9IHRsOwogCX0KIAotCXJpbmcgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3JpbmcoZW5naW5lLAotCQkJCQl0aW1lbGluZSwKLQkJCQkJY2UtPmdlbV9jb250ZXh0LT5yaW5nX3NpemUpOwotCWk5MTVfdGltZWxpbmVfcHV0KHRpbWVsaW5lKTsKKwlyaW5nID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKGVuZ2luZSwgKHVuc2lnbmVkIGxvbmcpY2UtPnJpbmcpOwogCWlmIChJU19FUlIocmluZykpIHsKIAkJcmV0ID0gUFRSX0VSUihyaW5nKTsKIAkJZ290byBlcnJvcl9kZXJlZl9vYmo7CkBAIC0zMDM4LDYgKzM0MDgsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFsX2NvbnRleHRfZGVzdHJveShzdHJ1Y3Qga3JlZiAqa3JlZikKIAogCWlmICh2ZS0+Y29udGV4dC5zdGF0ZSkKIAkJX19leGVjbGlzdHNfY29udGV4dF9maW5pKCZ2ZS0+Y29udGV4dCk7CisJaW50ZWxfY29udGV4dF9maW5pKCZ2ZS0+Y29udGV4dCk7CiAKIAlrZnJlZSh2ZS0+Ym9uZHMpOwogCWtmcmVlKHZlKTsKQEAgLTMwOTAsNiArMzQ2MSw4IEBAIHN0YXRpYyB2b2lkIHZpcnR1YWxfY29udGV4dF9lbnRlcihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiAKIAlmb3IgKG4gPSAwOyBuIDwgdmUtPm51bV9zaWJsaW5nczsgbisrKQogCQlpbnRlbF9lbmdpbmVfcG1fZ2V0KHZlLT5zaWJsaW5nc1tuXSk7CisKKwlpbnRlbF90aW1lbGluZV9lbnRlcihjZS0+dGltZWxpbmUpOwogfQogCiBzdGF0aWMgdm9pZCB2aXJ0dWFsX2NvbnRleHRfZXhpdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCkBAIC0zMDk3LDYgKzM0NzAsOCBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFsX2NvbnRleHRfZXhpdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiAJc3RydWN0IHZpcnR1YWxfZW5naW5lICp2ZSA9IGNvbnRhaW5lcl9vZihjZSwgdHlwZW9mKCp2ZSksIGNvbnRleHQpOwogCXVuc2lnbmVkIGludCBuOwogCisJaW50ZWxfdGltZWxpbmVfZXhpdChjZS0+dGltZWxpbmUpOworCiAJZm9yIChuID0gMDsgbiA8IHZlLT5udW1fc2libGluZ3M7IG4rKykKIAkJaW50ZWxfZW5naW5lX3BtX3B1dCh2ZS0+c2libGluZ3Nbbl0pOwogfQpAQCAtMzI5MCwxMSArMzY2NSwxMSBAQCBpbnRlbF9leGVjbGlzdHNfY3JlYXRlX3ZpcnR1YWwoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAl2ZS0+YmFzZS5pOTE1ID0gY3R4LT5pOTE1OworCXZlLT5iYXNlLmd0ID0gc2libGluZ3NbMF0tPmd0OwogCXZlLT5iYXNlLmlkID0gLTE7CiAJdmUtPmJhc2UuY2xhc3MgPSBPVEhFUl9DTEFTUzsKIAl2ZS0+YmFzZS51YWJpX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRDsKIAl2ZS0+YmFzZS5pbnN0YW5jZSA9IEk5MTVfRU5HSU5FX0NMQVNTX0lOVkFMSURfVklSVFVBTDsKLQl2ZS0+YmFzZS5mbGFncyA9IEk5MTVfRU5HSU5FX0lTX1ZJUlRVQUw7CiAKIAkvKgogCSAqIFRoZSBkZWNpc2lvbiBvbiB3aGV0aGVyIHRvIHN1Ym1pdCBhIHJlcXVlc3QgdXNpbmcgc2VtYXBob3JlcwpAQCAtMzM5MSw4ICszNzY2LDE4IEBAIGludGVsX2V4ZWNsaXN0c19jcmVhdGVfdmlydHVhbChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQl2ZS0+YmFzZS5lbWl0X2ZpbmlfYnJlYWRjcnVtYiA9IHNpYmxpbmctPmVtaXRfZmluaV9icmVhZGNydW1iOwogCQl2ZS0+YmFzZS5lbWl0X2ZpbmlfYnJlYWRjcnVtYl9kdyA9CiAJCQlzaWJsaW5nLT5lbWl0X2ZpbmlfYnJlYWRjcnVtYl9kdzsKKworCQl2ZS0+YmFzZS5mbGFncyA9IHNpYmxpbmctPmZsYWdzOwogCX0KIAorCXZlLT5iYXNlLmZsYWdzIHw9IEk5MTVfRU5HSU5FX0lTX1ZJUlRVQUw7CisKKwllcnIgPSBfX2V4ZWNsaXN0c19jb250ZXh0X2FsbG9jKCZ2ZS0+Y29udGV4dCwgc2libGluZ3NbMF0pOworCWlmIChlcnIpCisJCWdvdG8gZXJyX3B1dDsKKworCV9fc2V0X2JpdChDT05URVhUX0FMTE9DX0JJVCwgJnZlLT5jb250ZXh0LmZsYWdzKTsKKwogCXJldHVybiAmdmUtPmNvbnRleHQ7CiAKIGVycl9wdXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmNfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmNfcmVnLmgKaW5kZXggNmJmMzQ3My4uYjhmMjBhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjX3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyY19yZWcuaApAQCAtNjQsNSArNjQsNiBAQAogI2RlZmluZSBHRU45X0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYX09GRlNFVF9ERUZBVUxUCTB4MjYKICNkZWZpbmUgR0VOMTBfQ1RYX1JDU19JTkRJUkVDVF9DVFhfT0ZGU0VUX0RFRkFVTFQJMHgxOQogI2RlZmluZSBHRU4xMV9DVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVRfREVGQVVMVAkweDFBCisjZGVmaW5lIEdFTjEyX0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYX09GRlNFVF9ERUZBVUxUCTB4RAogCiAjZW5kaWYgLyogX0lOVEVMX0xSQ19SRUdfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX21vY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX21vY3MuYwppbmRleCAxZjlkYjUwLi43Mjg3MDRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9tb2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAogI2luY2x1ZGUgImludGVsX2VuZ2luZS5oIgorI2luY2x1ZGUgImludGVsX2d0LmgiCiAjaW5jbHVkZSAiaW50ZWxfbW9jcy5oIgogI2luY2x1ZGUgImludGVsX2xyYy5oIgogCkBAIC02MSw2ICs2MiwxMCBAQCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSB7CiAjZGVmaW5lIEdFTjExX05VTV9NT0NTX0VOVFJJRVMJNjQgIC8qIDYzLTY0IGFyZSByZXNlcnZlZCwgYnV0IGNvbmZpZ3VyZWQuICovCiAKIC8qIChlKUxMQyBjYWNoaW5nIG9wdGlvbnMgKi8KKy8qCisgKiBOb3RlOiBMRV8wX1BBR0VUQUJMRSB3b3JrcyBvbmx5IHVwIHRvIEdlbjExOyBmb3IgbmV3ZXIgZ2VucyBpdCBtZWFucworICogdGhlIHNhbWUgYXMgTEVfVUMKKyAqLwogI2RlZmluZSBMRV8wX1BBR0VUQUJMRQkJX0xFX0NBQ0hFQUJJTElUWSgwKQogI2RlZmluZSBMRV8xX1VDCQkJX0xFX0NBQ0hFQUJJTElUWSgxKQogI2RlZmluZSBMRV8yX1dUCQkJX0xFX0NBQ0hFQUJJTElUWSgyKQpAQCAtOTksOCArMTA0LDkgQEAgc3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgewogICogb2YgYnNwZWMuCiAgKgogICogRW50cmllcyBub3QgcGFydCBvZiB0aGUgZm9sbG93aW5nIHRhYmxlcyBhcmUgdW5kZWZpbmVkIGFzIGZhciBhcwotICogdXNlcnNwYWNlIGlzIGNvbmNlcm5lZCBhbmQgc2hvdWxkbid0IGJlIHJlbGllZCB1cG9uLiAgRm9yIHRoZSB0aW1lCi0gKiBiZWluZyB0aGV5IHdpbGwgYmUgaW5pdGlhbGl6ZWQgdG8gUFRFLgorICogdXNlcnNwYWNlIGlzIGNvbmNlcm5lZCBhbmQgc2hvdWxkbid0IGJlIHJlbGllZCB1cG9uLiAgRm9yIEdlbiA8IDEyCisgKiB0aGV5IHdpbGwgYmUgaW5pdGlhbGl6ZWQgdG8gUFRFLiBHZW4gPj0gMTIgb253YXJkcyBkb24ndCBoYXZlIGEgc2V0dGluZyBmb3IKKyAqIFBURSBhbmQgd2lsbCBiZSBpbml0aWFsaXplZCB0byBhbiBpbnZhbGlkIHZhbHVlLgogICoKICAqIFRoZSBsYXN0IHR3byBlbnRyaWVzIGFyZSByZXNlcnZlZCBieSB0aGUgaGFyZHdhcmUuIEZvciBJQ0wrIHRoZXkKICAqIHNob3VsZCBiZSBpbml0aWFsaXplZCBhY2NvcmRpbmcgdG8gYnNwZWMgYW5kIG5ldmVyIHVzZWQsIGZvciBvbGRlcgpAQCAtMTM2LDE0ICsxNDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pOTE1X21vY3NfZW50cnkgYnJveHRvbl9tb2NzX3RhYmxlW10gPSB7CiB9OwogCiAjZGVmaW5lIEdFTjExX01PQ1NfRU5UUklFUyBcCi0JLyogQmFzZSAtIFVuY2FjaGVkIChEZXByZWNhdGVkKSAqLyBcCi0JTU9DU19FTlRSWShJOTE1X01PQ1NfVU5DQUNIRUQsIFwKLQkJICAgTEVfMV9VQyB8IExFX1RDXzFfTExDLCBcCi0JCSAgIEwzXzFfVUMpLCBcCi0JLyogQmFzZSAtIEwzICsgTGVDQzpQQVQgKERlcHJlY2F0ZWQpICovIFwKLQlNT0NTX0VOVFJZKEk5MTVfTU9DU19QVEUsIFwKLQkJICAgTEVfMF9QQUdFVEFCTEUgfCBMRV9UQ18xX0xMQywgXAotCQkgICBMM18zX1dCKSwgXAorCS8qIEVudHJpZXMgMCBhbmQgMSBhcmUgZGVmaW5lZCBwZXItcGxhdGZvcm0gKi8gXAogCS8qIEJhc2UgLSBMMyArIExMQyAqLyBcCiAJTU9DU19FTlRSWSgyLCBcCiAJCSAgIExFXzNfV0IgfCBMRV9UQ18xX0xMQyB8IExFX0xSVU0oMyksIFwKQEAgLTI0MSw0OSArMjQwLDg2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc19lbnRyeSBicm94dG9uX21vY3NfdGFibGVbXSA9IHsKIAkJICAgTEVfM19XQiB8IExFX1RDXzFfTExDIHwgTEVfTFJVTSgzKSwgXAogCQkgICBMM18xX1VDKQogCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pOTE1X21vY3NfZW50cnkgdGlnZXJsYWtlX21vY3NfdGFibGVbXSA9IHsKKwkvKiBCYXNlIC0gRXJyb3IgKFJlc2VydmVkIGZvciBOb24tVXNlKSAqLworCU1PQ1NfRU5UUlkoMCwgMHgwLCAweDApLAorCS8qIEJhc2UgLSBSZXNlcnZlZCAqLworCU1PQ1NfRU5UUlkoMSwgMHgwLCAweDApLAorCisJR0VOMTFfTU9DU19FTlRSSUVTLAorCisJLyogSW1wbGljaXRseSBlbmFibGUgTDEgLSBIREM6TDEgKyBMMyArIExMQyAqLworCU1PQ1NfRU5UUlkoNDgsCisJCSAgIExFXzNfV0IgfCBMRV9UQ18xX0xMQyB8IExFX0xSVU0oMyksCisJCSAgIEwzXzNfV0IpLAorCS8qIEltcGxpY2l0bHkgZW5hYmxlIEwxIC0gSERDOkwxICsgTDMgKi8KKwlNT0NTX0VOVFJZKDQ5LAorCQkgICBMRV8xX1VDIHwgTEVfVENfMV9MTEMsCisJCSAgIEwzXzNfV0IpLAorCS8qIEltcGxpY2l0bHkgZW5hYmxlIEwxIC0gSERDOkwxICsgTExDICovCisJTU9DU19FTlRSWSg1MCwKKwkJICAgTEVfM19XQiB8IExFX1RDXzFfTExDIHwgTEVfTFJVTSgzKSwKKwkJICAgTDNfMV9VQyksCisJLyogSW1wbGljaXRseSBlbmFibGUgTDEgLSBIREM6TDEgKi8KKwlNT0NTX0VOVFJZKDUxLAorCQkgICBMRV8xX1VDIHwgTEVfVENfMV9MTEMsCisJCSAgIEwzXzFfVUMpLAorCS8qIEhXIFNwZWNpYWwgQ2FzZSAoQ0NTKSAqLworCU1PQ1NfRU5UUlkoNjAsCisJCSAgIExFXzNfV0IgfCBMRV9UQ18xX0xMQyB8IExFX0xSVU0oMyksCisJCSAgIEwzXzFfVUMpLAorCS8qIEhXIFNwZWNpYWwgQ2FzZSAoRGlzcGxheWFibGUpICovCisJTU9DU19FTlRSWSg2MSwKKwkJICAgTEVfMV9VQyB8IExFX1RDXzFfTExDIHwgTEVfU0NGKDEpLAorCQkgICBMM18zX1dCKSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc19lbnRyeSBpY2VsYWtlX21vY3NfdGFibGVbXSA9IHsKKwkvKiBCYXNlIC0gVW5jYWNoZWQgKERlcHJlY2F0ZWQpICovCisJTU9DU19FTlRSWShJOTE1X01PQ1NfVU5DQUNIRUQsCisJCSAgIExFXzFfVUMgfCBMRV9UQ18xX0xMQywKKwkJICAgTDNfMV9VQyksCisJLyogQmFzZSAtIEwzICsgTGVDQzpQQVQgKERlcHJlY2F0ZWQpICovCisJTU9DU19FTlRSWShJOTE1X01PQ1NfUFRFLAorCQkgICBMRV8wX1BBR0VUQUJMRSB8IExFX1RDXzFfTExDLAorCQkgICBMM18zX1dCKSwKKwogCUdFTjExX01PQ1NfRU5UUklFUwogfTsKIAotLyoqCi0gKiBnZXRfbW9jc19zZXR0aW5ncygpCi0gKiBAZGV2X3ByaXY6CWk5MTUgZGV2aWNlLgotICogQHRhYmxlOiAgICAgIE91dHB1dCB0YWJsZSB0aGF0IHdpbGwgYmUgbWFkZSB0byBwb2ludCBhdCBhcHByb3ByaWF0ZQotICoJICAgICAgTU9DUyB2YWx1ZXMgZm9yIHRoZSBkZXZpY2UuCi0gKgotICogVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiB0aGUgdmFsdWVzIG9mIHRoZSBNT0NTIHRhYmxlIHRoYXQgbmVlZHMgdG8KLSAqIGJlIHByb2dyYW1tZWQgZm9yIHRoZSBwbGF0Zm9ybS4gSXQgd2lsbCByZXR1cm4gdGhlIHZhbHVlcyB0aGF0IG5lZWQKLSAqIHRvIGJlIHByb2dyYW1tZWQgYW5kIGlmIHRoZXkgbmVlZCB0byBiZSBwcm9ncmFtbWVkLgotICoKLSAqIFJldHVybjogdHJ1ZSBpZiB0aGVyZSBhcmUgYXBwbGljYWJsZSBNT0NTIHNldHRpbmdzIGZvciB0aGUgZGV2aWNlLgotICovCi1zdGF0aWMgYm9vbCBnZXRfbW9jc19zZXR0aW5ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCitzdGF0aWMgYm9vbCBnZXRfbW9jc19zZXR0aW5ncyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogCQkJICAgICAgc3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgKnRhYmxlKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CiAJYm9vbCByZXN1bHQgPSBmYWxzZTsKIAotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7CisJaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMikgeworCQl0YWJsZS0+c2l6ZSAgPSBBUlJBWV9TSVpFKHRpZ2VybGFrZV9tb2NzX3RhYmxlKTsKKwkJdGFibGUtPnRhYmxlID0gdGlnZXJsYWtlX21vY3NfdGFibGU7CisJCXRhYmxlLT5uX2VudHJpZXMgPSBHRU4xMV9OVU1fTU9DU19FTlRSSUVTOworCQlyZXN1bHQgPSB0cnVlOworCX0gZWxzZSBpZiAoSVNfR0VOKGk5MTUsIDExKSkgewogCQl0YWJsZS0+c2l6ZSAgPSBBUlJBWV9TSVpFKGljZWxha2VfbW9jc190YWJsZSk7CiAJCXRhYmxlLT50YWJsZSA9IGljZWxha2VfbW9jc190YWJsZTsKIAkJdGFibGUtPm5fZW50cmllcyA9IEdFTjExX05VTV9NT0NTX0VOVFJJRVM7CiAJCXJlc3VsdCA9IHRydWU7Ci0JfSBlbHNlIGlmIChJU19HRU45X0JDKGRldl9wcml2KSB8fCBJU19DQU5OT05MQUtFKGRldl9wcml2KSkgeworCX0gZWxzZSBpZiAoSVNfR0VOOV9CQyhpOTE1KSB8fCBJU19DQU5OT05MQUtFKGk5MTUpKSB7CiAJCXRhYmxlLT5zaXplICA9IEFSUkFZX1NJWkUoc2t5bGFrZV9tb2NzX3RhYmxlKTsKIAkJdGFibGUtPm5fZW50cmllcyA9IEdFTjlfTlVNX01PQ1NfRU5UUklFUzsKIAkJdGFibGUtPnRhYmxlID0gc2t5bGFrZV9tb2NzX3RhYmxlOwogCQlyZXN1bHQgPSB0cnVlOwotCX0gZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKKwl9IGVsc2UgaWYgKElTX0dFTjlfTFAoaTkxNSkpIHsKIAkJdGFibGUtPnNpemUgID0gQVJSQVlfU0laRShicm94dG9uX21vY3NfdGFibGUpOwogCQl0YWJsZS0+bl9lbnRyaWVzID0gR0VOOV9OVU1fTU9DU19FTlRSSUVTOwogCQl0YWJsZS0+dGFibGUgPSBicm94dG9uX21vY3NfdGFibGU7CiAJCXJlc3VsdCA9IHRydWU7CiAJfSBlbHNlIHsKLQkJV0FSTl9PTkNFKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSwKKwkJV0FSTl9PTkNFKElOVEVMX0dFTihpOTE1KSA+PSA5LAogCQkJICAiUGxhdGZvcm0gdGhhdCBzaG91bGQgaGF2ZSBhIE1PQ1MgdGFibGUgZG9lcyBub3QuXG4iKTsKIAl9CiAKIAkvKiBXYURpc2FibGVTa2lwQ2FjaGluZzpza2wsYnh0LGtibCxnbGsgKi8KLQlpZiAoSVNfR0VOKGRldl9wcml2LCA5KSkgeworCWlmIChJU19HRU4oaTkxNSwgOSkpIHsKIAkJaW50IGk7CiAKIAkJZm9yIChpID0gMDsgaSA8IHRhYmxlLT5zaXplOyBpKyspCkBAIC0zMzgsMTIgKzM3NCwyMCBAQCBzdGF0aWMgdTMyIGdldF9lbnRyeV9jb250cm9sKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSwKICAqLwogdm9pZCBpbnRlbF9tb2NzX2luaXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGVuZ2luZS0+Z3Q7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSB0YWJsZTsKIAl1bnNpZ25lZCBpbnQgaW5kZXg7CiAJdTMyIHVudXNlZF92YWx1ZTsKIAotCWlmICghZ2V0X21vY3Nfc2V0dGluZ3MoZGV2X3ByaXYsICZ0YWJsZSkpCisJLyogUGxhdGZvcm1zIHdpdGggZ2xvYmFsIE1PQ1MgZG8gbm90IG5lZWQgcGVyLWVuZ2luZSBpbml0aWFsaXphdGlvbi4gKi8KKwlpZiAoSEFTX0dMT0JBTF9NT0NTX1JFR0lTVEVSUyhndC0+aTkxNSkpCisJCXJldHVybjsKKworCS8qIENhbGxlZCB1bmRlciBhIGJsYW5rZXQgZm9yY2V3YWtlICovCisJYXNzZXJ0X2ZvcmNld2FrZXNfYWN0aXZlKHVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CisKKwlpZiAoIWdldF9tb2NzX3NldHRpbmdzKGd0LCAmdGFibGUpKQogCQlyZXR1cm47CiAKIAkvKiBTZXQgdW51c2VkIHZhbHVlcyB0byBQVEUgKi8KQEAgLTM1MiwyNCArMzk2LDQ4IEBAIHZvaWQgaW50ZWxfbW9jc19pbml0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgdGFibGUuc2l6ZTsgaW5kZXgrKykgewogCQl1MzIgdmFsdWUgPSBnZXRfZW50cnlfY29udHJvbCgmdGFibGUsIGluZGV4KTsKIAotCQlJOTE1X1dSSVRFKG1vY3NfcmVnaXN0ZXIoZW5naW5lLT5pZCwgaW5kZXgpLCB2YWx1ZSk7CisJCWludGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsCisJCQkJICAgICAgbW9jc19yZWdpc3RlcihlbmdpbmUtPmlkLCBpbmRleCksCisJCQkJICAgICAgdmFsdWUpOwogCX0KIAogCS8qIEFsbCByZW1haW5pbmcgZW50cmllcyBhcmUgYWxzbyB1bnVzZWQgKi8KIAlmb3IgKDsgaW5kZXggPCB0YWJsZS5uX2VudHJpZXM7IGluZGV4KyspCi0JCUk5MTVfV1JJVEUobW9jc19yZWdpc3RlcihlbmdpbmUtPmlkLCBpbmRleCksIHVudXNlZF92YWx1ZSk7CisJCWludGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsCisJCQkJICAgICAgbW9jc19yZWdpc3RlcihlbmdpbmUtPmlkLCBpbmRleCksCisJCQkJICAgICAgdW51c2VkX3ZhbHVlKTsKIH0KIAotLyoqCi0gKiBlbWl0X21vY3NfY29udHJvbF90YWJsZSgpIC0gZW1pdCB0aGUgbW9jcyBjb250cm9sIHRhYmxlCi0gKiBAcnE6CVJlcXVlc3QgdG8gc2V0IHVwIHRoZSBNT0NTIHRhYmxlIGZvci4KLSAqIEB0YWJsZToJVGhlIHZhbHVlcyB0byBwcm9ncmFtIGludG8gdGhlIGNvbnRyb2wgcmVncy4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBlbWl0cyBhIE1JX0xPQURfUkVHSVNURVJfSU1NIGNvbW1hbmQgZm9yIHRoZQotICogZ2l2ZW4gdGFibGUgc3RhcnRpbmcgYXQgdGhlIGdpdmVuIGFkZHJlc3MuCi0gKgotICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG90aGVyd2lzZSB0aGUgZXJyb3Igc3RhdHVzLgotICovCitzdGF0aWMgdm9pZCBpbnRlbF9tb2NzX2luaXRfZ2xvYmFsKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSB0YWJsZTsKKwl1bnNpZ25lZCBpbnQgaW5kZXg7CisKKwlHRU1fQlVHX09OKCFIQVNfR0xPQkFMX01PQ1NfUkVHSVNURVJTKGd0LT5pOTE1KSk7CisKKwlpZiAoIWdldF9tb2NzX3NldHRpbmdzKGd0LCAmdGFibGUpKQorCQlyZXR1cm47CisKKwlpZiAoR0VNX0RFQlVHX1dBUk5fT04odGFibGUuc2l6ZSA+IHRhYmxlLm5fZW50cmllcykpCisJCXJldHVybjsKKworCWZvciAoaW5kZXggPSAwOyBpbmRleCA8IHRhYmxlLnNpemU7IGluZGV4KyspCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCisJCQkJICAgR0VOMTJfR0xPQkFMX01PQ1MoaW5kZXgpLAorCQkJCSAgIHRhYmxlLnRhYmxlW2luZGV4XS5jb250cm9sX3ZhbHVlKTsKKworCS8qCisJICogT2ssIG5vdyBzZXQgdGhlIHVudXNlZCBlbnRyaWVzIHRvIHRoZSBpbnZhbGlkIGVudHJ5IChpbmRleCAwKS4gVGhlc2UKKwkgKiBlbnRyaWVzIGFyZSBvZmZpY2lhbGx5IHVuZGVmaW5lZCBhbmQgbm8gY29udHJhY3QgZm9yIHRoZSBjb250ZW50cyBhbmQKKwkgKiBzZXR0aW5ncyBpcyBnaXZlbiBmb3IgdGhlc2UgZW50cmllcy4KKwkgKi8KKwlmb3IgKDsgaW5kZXggPCB0YWJsZS5uX2VudHJpZXM7IGluZGV4KyspCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCisJCQkJICAgR0VOMTJfR0xPQkFMX01PQ1MoaW5kZXgpLAorCQkJCSAgIHRhYmxlLnRhYmxlWzBdLmNvbnRyb2xfdmFsdWUpOworfQorCiBzdGF0aWMgaW50IGVtaXRfbW9jc19jb250cm9sX3RhYmxlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSkKIHsKQEAgLTQyOSwxNyArNDk3LDYgQEAgc3RhdGljIGlubGluZSB1MzIgbDNjY19jb21iaW5lKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSwKIAlyZXR1cm4gbG93IHwgaGlnaCA8PCAxNjsKIH0KIAotLyoqCi0gKiBlbWl0X21vY3NfbDNjY190YWJsZSgpIC0gZW1pdCB0aGUgbW9jcyBjb250cm9sIHRhYmxlCi0gKiBAcnE6CVJlcXVlc3QgdG8gc2V0IHVwIHRoZSBNT0NTIHRhYmxlIGZvci4KLSAqIEB0YWJsZToJVGhlIHZhbHVlcyB0byBwcm9ncmFtIGludG8gdGhlIGNvbnRyb2wgcmVncy4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBlbWl0cyBhIE1JX0xPQURfUkVHSVNURVJfSU1NIGNvbW1hbmQgZm9yIHRoZQotICogZ2l2ZW4gdGFibGUgc3RhcnRpbmcgYXQgdGhlIGdpdmVuIGFkZHJlc3MuIFRoaXMgcmVnaXN0ZXIgc2V0IGlzCi0gKiBwcm9ncmFtbWVkIGluIHBhaXJzLgotICoKLSAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBvdGhlcndpc2UgdGhlIGVycm9yIHN0YXR1cy4KLSAqLwogc3RhdGljIGludCBlbWl0X21vY3NfbDNjY190YWJsZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIAkJCQljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUpCiB7CkBAIC00ODgsMjcgKzU0NSwxNCBAQCBzdGF0aWMgaW50IGVtaXRfbW9jc19sM2NjX3RhYmxlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCXJldHVybiAwOwogfQogCi0vKioKLSAqIGludGVsX21vY3NfaW5pdF9sM2NjX3RhYmxlKCkgLSBwcm9ncmFtIHRoZSBtb2NzIGNvbnRyb2wgdGFibGUKLSAqIEBkZXZfcHJpdjogICAgICBpOTE1IGRldmljZSBwcml2YXRlCi0gKgotICogVGhpcyBmdW5jdGlvbiBzaW1wbHkgcHJvZ3JhbXMgdGhlIG1vY3MgcmVnaXN0ZXJzIGZvciB0aGUgZ2l2ZW4gdGFibGUKLSAqIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBhZGRyZXNzLiBUaGlzIHJlZ2lzdGVyIHNldCBpcyAgcHJvZ3JhbW1lZCBpbiBwYWlycy4KLSAqCi0gKiBUaGVzZSByZWdpc3RlcnMgbWF5IGdldCBwcm9ncmFtbWVkIG1vcmUgdGhhbiBvbmNlLCBpdCBpcyBzaW1wbGVyIHRvCi0gKiByZS1wcm9ncmFtIDMyIHJlZ2lzdGVycyB0aGFuIG1haW50YWluIHRoZSBzdGF0ZSBvZiB3aGVuIHRoZXkgd2VyZSBwcm9ncmFtbWVkLgotICogV2UgYXJlIGFsd2F5cyByZXByb2dyYW1taW5nIHdpdGggdGhlIHNhbWUgdmFsdWVzIGFuZCB0aGlzIG9ubHkgb24gY29udGV4dAotICogc3RhcnQuCi0gKgotICogUmV0dXJuOiBOb3RoaW5nLgotICovCi12b2lkIGludGVsX21vY3NfaW5pdF9sM2NjX3RhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGludGVsX21vY3NfaW5pdF9sM2NjX3RhYmxlKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSB0YWJsZTsKIAl1bnNpZ25lZCBpbnQgaTsKIAl1MTYgdW51c2VkX3ZhbHVlOwogCi0JaWYgKCFnZXRfbW9jc19zZXR0aW5ncyhkZXZfcHJpdiwgJnRhYmxlKSkKKwlpZiAoIWdldF9tb2NzX3NldHRpbmdzKGd0LCAmdGFibGUpKQogCQlyZXR1cm47CiAKIAkvKiBTZXQgdW51c2VkIHZhbHVlcyB0byBQVEUgKi8KQEAgLTUxOCwyOCArNTYyLDMyIEBAIHZvaWQgaW50ZWxfbW9jc19pbml0X2wzY2NfdGFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQl1MTYgbG93ID0gZ2V0X2VudHJ5X2wzY2MoJnRhYmxlLCAyICogaSk7CiAJCXUxNiBoaWdoID0gZ2V0X2VudHJ5X2wzY2MoJnRhYmxlLCAyICogaSArIDEpOwogCi0JCUk5MTVfV1JJVEUoR0VOOV9MTkNGQ01PQ1MoaSksCi0JCQkgICBsM2NjX2NvbWJpbmUoJnRhYmxlLCBsb3csIGhpZ2gpKTsKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwKKwkJCQkgICBHRU45X0xOQ0ZDTU9DUyhpKSwKKwkJCQkgICBsM2NjX2NvbWJpbmUoJnRhYmxlLCBsb3csIGhpZ2gpKTsKIAl9CiAKIAkvKiBPZGQgdGFibGUgc2l6ZSAtIDEgbGVmdCBvdmVyICovCiAJaWYgKHRhYmxlLnNpemUgJiAweDAxKSB7CiAJCXUxNiBsb3cgPSBnZXRfZW50cnlfbDNjYygmdGFibGUsIDIgKiBpKTsKIAotCQlJOTE1X1dSSVRFKEdFTjlfTE5DRkNNT0NTKGkpLAotCQkJICAgbDNjY19jb21iaW5lKCZ0YWJsZSwgbG93LCB1bnVzZWRfdmFsdWUpKTsKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwKKwkJCQkgICBHRU45X0xOQ0ZDTU9DUyhpKSwKKwkJCQkgICBsM2NjX2NvbWJpbmUoJnRhYmxlLCBsb3csIHVudXNlZF92YWx1ZSkpOwogCQlpKys7CiAJfQogCiAJLyogQWxsIHJlbWFpbmluZyBlbnRyaWVzIGFyZSBhbHNvIHVudXNlZCAqLwogCWZvciAoOyBpIDwgdGFibGUubl9lbnRyaWVzIC8gMjsgaSsrKQotCQlJOTE1X1dSSVRFKEdFTjlfTE5DRkNNT0NTKGkpLAotCQkJICAgbDNjY19jb21iaW5lKCZ0YWJsZSwgdW51c2VkX3ZhbHVlLCB1bnVzZWRfdmFsdWUpKTsKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwKKwkJCQkgICBHRU45X0xOQ0ZDTU9DUyhpKSwKKwkJCQkgICBsM2NjX2NvbWJpbmUoJnRhYmxlLCB1bnVzZWRfdmFsdWUsCisJCQkJCQl1bnVzZWRfdmFsdWUpKTsKIH0KIAogLyoqCi0gKiBpbnRlbF9yY3NfY29udGV4dF9pbml0X21vY3MoKSAtIHByb2dyYW0gdGhlIE1PQ1MgcmVnaXN0ZXIuCi0gKiBAcnE6CVJlcXVlc3QgdG8gc2V0IHVwIHRoZSBNT0NTIHRhYmxlcyBmb3IuCisgKiBpbnRlbF9tb2NzX2VtaXQoKSAtIHByb2dyYW0gdGhlIE1PQ1MgcmVnaXN0ZXIuCisgKiBAcnE6CVJlcXVlc3QgdG8gdXNlIHRvIHNldCB1cCB0aGUgTU9DUyB0YWJsZXMuCiAgKgogICogVGhpcyBmdW5jdGlvbiB3aWxsIGVtaXQgYSBiYXRjaCBidWZmZXIgd2l0aCB0aGUgdmFsdWVzIHJlcXVpcmVkIGZvcgogICogcHJvZ3JhbW1pbmcgdGhlIE1PQ1MgcmVnaXN0ZXIgdmFsdWVzIGZvciBhbGwgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQKQEAgLTU1MywxMiArNjAxLDE2IEBAIHZvaWQgaW50ZWxfbW9jc19pbml0X2wzY2NfdGFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICoKICAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBvdGhlcndpc2UgdGhlIGVycm9yIHN0YXR1cy4KICAqLwotaW50IGludGVsX3Jjc19jb250ZXh0X2luaXRfbW9jcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK2ludCBpbnRlbF9tb2NzX2VtaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB7CiAJc3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgdDsKIAlpbnQgcmV0OwogCi0JaWYgKGdldF9tb2NzX3NldHRpbmdzKHJxLT5pOTE1LCAmdCkpIHsKKwlpZiAoSEFTX0dMT0JBTF9NT0NTX1JFR0lTVEVSUyhycS0+aTkxNSkgfHwKKwkgICAgcnEtPmVuZ2luZS0+Y2xhc3MgIT0gUkVOREVSX0NMQVNTKQorCQlyZXR1cm4gMDsKKworCWlmIChnZXRfbW9jc19zZXR0aW5ncyhycS0+ZW5naW5lLT5ndCwgJnQpKSB7CiAJCS8qIFByb2dyYW0gdGhlIFJDUyBjb250cm9sIHJlZ2lzdGVycyAqLwogCQlyZXQgPSBlbWl0X21vY3NfY29udHJvbF90YWJsZShycSwgJnQpOwogCQlpZiAocmV0KQpAQCAtNTcyLDMgKzYyNCwxMSBAQCBpbnQgaW50ZWxfcmNzX2NvbnRleHRfaW5pdF9tb2NzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogCiAJcmV0dXJuIDA7CiB9CisKK3ZvaWQgaW50ZWxfbW9jc19pbml0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJaW50ZWxfbW9jc19pbml0X2wzY2NfdGFibGUoZ3QpOworCisJaWYgKEhBU19HTE9CQUxfTU9DU19SRUdJU1RFUlMoZ3QtPmk5MTUpKQorCQlpbnRlbF9tb2NzX2luaXRfZ2xvYmFsKGd0KTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX21vY3MuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX21vY3MuaAppbmRleCAwOTEzNzA0Li4yYWU4MTZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9tb2NzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5oCkBAIC00OSwxMiArNDksMTMgQEAKICAqIGNvbnRleHQgaGFuZGxpbmcga2VlcCB0aGUgTU9DUyBpbiBzdGVwLgogICovCiAKLXN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogc3RydWN0IGk5MTVfcmVxdWVzdDsKIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3M7CitzdHJ1Y3QgaW50ZWxfZ3Q7CiAKLWludCBpbnRlbF9yY3NfY29udGV4dF9pbml0X21vY3Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpOwotdm9pZCBpbnRlbF9tb2NzX2luaXRfbDNjY190YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpbnRlbF9tb2NzX2luaXQoc3RydWN0IGludGVsX2d0ICpndCk7CiB2b2lkIGludGVsX21vY3NfaW5pdF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAoraW50IGludGVsX21vY3NfZW1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVuZGVyc3RhdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JlbmRlcnN0YXRlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQwNWY5YwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JlbmRlcnN0YXRlLmMKQEAgLTAsMCArMSwyMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAgTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+CisgKgorICovCisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImludGVsX3JlbmRlcnN0YXRlLmgiCisKK3N0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZSB7CisJY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqcm9kYXRhOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdTMyIGJhdGNoX29mZnNldDsKKwl1MzIgYmF0Y2hfc2l6ZTsKKwl1MzIgYXV4X29mZnNldDsKKwl1MzIgYXV4X3NpemU7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqCityZW5kZXJfc3RhdGVfZ2V0X3JvZGF0YShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJaWYgKGVuZ2luZS0+Y2xhc3MgIT0gUkVOREVSX0NMQVNTKQorCQlyZXR1cm4gTlVMTDsKKworCXN3aXRjaCAoSU5URUxfR0VOKGVuZ2luZS0+aTkxNSkpIHsKKwljYXNlIDY6CisJCXJldHVybiAmZ2VuNl9udWxsX3N0YXRlOworCWNhc2UgNzoKKwkJcmV0dXJuICZnZW43X251bGxfc3RhdGU7CisJY2FzZSA4OgorCQlyZXR1cm4gJmdlbjhfbnVsbF9zdGF0ZTsKKwljYXNlIDk6CisJCXJldHVybiAmZ2VuOV9udWxsX3N0YXRlOworCX0KKworCXJldHVybiBOVUxMOworfQorCisvKgorICogTWFjcm8gdG8gYWRkIGNvbW1hbmRzIHRvIGF1eGlsaWFyeSBiYXRjaC4KKyAqIFRoaXMgbWFjcm8gb25seSBjaGVja3MgZm9yIHBhZ2Ugb3ZlcmZsb3cgYmVmb3JlIGluc2VydGluZyB0aGUgY29tbWFuZHMsCisgKiB0aGlzIGlzIHN1ZmZpY2llbnQgYXMgdGhlIG51bGwgc3RhdGUgZ2VuZXJhdG9yIG1ha2VzIHRoZSBmaW5hbCBiYXRjaAorICogd2l0aCB0d28gcGFzc2VzIHRvIGJ1aWxkIGNvbW1hbmQgYW5kIHN0YXRlIHNlcGFyYXRlbHkuIEF0IHRoaXMgcG9pbnQKKyAqIHRoZSBzaXplIG9mIGJvdGggYXJlIGtub3duIGFuZCBpdCBjb21wYWN0cyB0aGVtIGJ5IHJlbG9jYXRpbmcgdGhlIHN0YXRlCisgKiByaWdodCBhZnRlciB0aGUgY29tbWFuZHMgdGFraW5nIGNhcmUgb2YgYWxpZ25tZW50IHNvIHdlIHNob3VsZCBzdWZmaWNpZW50CisgKiBzcGFjZSBiZWxvdyB0aGVtIGZvciBhZGRpbmcgbmV3IGNvbW1hbmRzLgorICovCisjZGVmaW5lIE9VVF9CQVRDSChiYXRjaCwgaSwgdmFsKQkJCQlcCisJZG8gewkJCQkJCQlcCisJCWlmICgoaSkgPj0gUEFHRV9TSVpFIC8gc2l6ZW9mKHUzMikpCQlcCisJCQlnb3RvIGVycjsJCQkJXAorCQkoYmF0Y2gpWyhpKSsrXSA9ICh2YWwpOwkJCQlcCisJfSB3aGlsZSgwKQorCitzdGF0aWMgaW50IHJlbmRlcl9zdGF0ZV9zZXR1cChzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGUgKnNvLAorCQkJICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqcm9kYXRhID0gc28tPnJvZGF0YTsKKwl1bnNpZ25lZCBpbnQgaSA9IDAsIHJlbG9jX2luZGV4ID0gMDsKKwl1bnNpZ25lZCBpbnQgbmVlZHNfY2xmbHVzaDsKKwl1MzIgKmQ7CisJaW50IHJldDsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9wcmVwYXJlX3dyaXRlKHNvLT5vYmosICZuZWVkc19jbGZsdXNoKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJZCA9IGttYXBfYXRvbWljKGk5MTVfZ2VtX29iamVjdF9nZXRfZGlydHlfcGFnZShzby0+b2JqLCAwKSk7CisKKwl3aGlsZSAoaSA8IHJvZGF0YS0+YmF0Y2hfaXRlbXMpIHsKKwkJdTMyIHMgPSByb2RhdGEtPmJhdGNoW2ldOworCisJCWlmIChpICogNCAgPT0gcm9kYXRhLT5yZWxvY1tyZWxvY19pbmRleF0pIHsKKwkJCXU2NCByID0gcyArIHNvLT52bWEtPm5vZGUuc3RhcnQ7CisJCQlzID0gbG93ZXJfMzJfYml0cyhyKTsKKwkJCWlmIChIQVNfNjRCSVRfUkVMT0MoaTkxNSkpIHsKKwkJCQlpZiAoaSArIDEgPj0gcm9kYXRhLT5iYXRjaF9pdGVtcyB8fAorCQkJCSAgICByb2RhdGEtPmJhdGNoW2kgKyAxXSAhPSAwKQorCQkJCQlnb3RvIGVycjsKKworCQkJCWRbaSsrXSA9IHM7CisJCQkJcyA9IHVwcGVyXzMyX2JpdHMocik7CisJCQl9CisKKwkJCXJlbG9jX2luZGV4Kys7CisJCX0KKworCQlkW2krK10gPSBzOworCX0KKworCWlmIChyb2RhdGEtPnJlbG9jW3JlbG9jX2luZGV4XSAhPSAtMSkgeworCQlEUk1fRVJST1IoIm9ubHkgJWQgcmVsb2NzIHJlc29sdmVkXG4iLCByZWxvY19pbmRleCk7CisJCWdvdG8gZXJyOworCX0KKworCXNvLT5iYXRjaF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHNvLT52bWEpOworCXNvLT5iYXRjaF9zaXplID0gcm9kYXRhLT5iYXRjaF9pdGVtcyAqIHNpemVvZih1MzIpOworCisJd2hpbGUgKGkgJSBDQUNIRUxJTkVfRFdPUkRTKQorCQlPVVRfQkFUQ0goZCwgaSwgTUlfTk9PUCk7CisKKwlzby0+YXV4X29mZnNldCA9IGkgKiBzaXplb2YodTMyKTsKKworCWlmIChIQVNfUE9PTEVEX0VVKGk5MTUpKSB7CisJCS8qCisJCSAqIFdlIGFsd2F5cyBwcm9ncmFtIDN4NiBwb29sIGNvbmZpZyBidXQgZGVwZW5kaW5nIHVwb24gd2hpY2gKKwkJICogc3Vic2xpY2UgaXMgZGlzYWJsZWQgSFcgZHJvcHMgZG93biB0byBhcHByb3ByaWF0ZSBjb25maWcKKwkJICogc2hvd24gYmVsb3cuCisJCSAqCisJCSAqIEluIHRoZSBiZWxvdyB0YWJsZSAyeDYgY29uZmlnIGFsd2F5cyByZWZlcnMgdG8KKwkJICogZnVzZWQtZG93biB2ZXJzaW9uLCBuYXRpdmUgMng2IGlzIG5vdCBhdmFpbGFibGUgYW5kIGNhbgorCQkgKiBiZSBpZ25vcmVkCisJCSAqCisJCSAqIFNObyAgc3Vic2xpY2VzIGNvbmZpZyAgICAgICAgICAgICAgICBldSBwb29sIGNvbmZpZ3VyYXRpb24KKwkJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJICogMSAgICAzIHN1YnNsaWNlcyBlbmFibGVkICgzeDYpICAtICAgIDB4MDA3NzcwMDAgICg5KzkpCisJCSAqIDIgICAgc3MwIGRpc2FibGVkICgyeDYpICAgICAgICAgLSAgICAweDAwNzc3MDAwICAoMys5KQorCQkgKiAzICAgIHNzMSBkaXNhYmxlZCAoMng2KSAgICAgICAgIC0gICAgMHgwMDc3MDAwMCAgKDYrNikKKwkJICogNCAgICBzczIgZGlzYWJsZWQgKDJ4NikgICAgICAgICAtICAgIDB4MDAwMDcwMDAgICg5KzMpCisJCSAqLworCQl1MzIgZXVfcG9vbF9jb25maWcgPSAweDAwNzc3MDAwOworCisJCU9VVF9CQVRDSChkLCBpLCBHRU45X01FRElBX1BPT0xfU1RBVEUpOworCQlPVVRfQkFUQ0goZCwgaSwgR0VOOV9NRURJQV9QT09MX0VOQUJMRSk7CisJCU9VVF9CQVRDSChkLCBpLCBldV9wb29sX2NvbmZpZyk7CisJCU9VVF9CQVRDSChkLCBpLCAwKTsKKwkJT1VUX0JBVENIKGQsIGksIDApOworCQlPVVRfQkFUQ0goZCwgaSwgMCk7CisJfQorCisJT1VUX0JBVENIKGQsIGksIE1JX0JBVENIX0JVRkZFUl9FTkQpOworCXNvLT5hdXhfc2l6ZSA9IGkgKiBzaXplb2YodTMyKSAtIHNvLT5hdXhfb2Zmc2V0OworCXNvLT5hdXhfb2Zmc2V0ICs9IHNvLT5iYXRjaF9vZmZzZXQ7CisJLyoKKwkgKiBTaW5jZSB3ZSBhcmUgc2VuZGluZyBsZW5ndGgsIHdlIG5lZWQgdG8gc3RyaWN0bHkgY29uZm9ybSB0bworCSAqIGFsbCByZXF1aXJlbWVudHMuIEZvciBHZW4yIHRoaXMgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDguCisJICovCisJc28tPmF1eF9zaXplID0gQUxJR04oc28tPmF1eF9zaXplLCA4KTsKKworCWlmIChuZWVkc19jbGZsdXNoKQorCQlkcm1fY2xmbHVzaF92aXJ0X3JhbmdlKGQsIGkgKiBzaXplb2YodTMyKSk7CisJa3VubWFwX2F0b21pYyhkKTsKKworCXJldCA9IDA7CitvdXQ6CisJaTkxNV9nZW1fb2JqZWN0X2ZpbmlzaF9hY2Nlc3Moc28tPm9iaik7CisJcmV0dXJuIHJldDsKKworZXJyOgorCWt1bm1hcF9hdG9taWMoZCk7CisJcmV0ID0gLUVJTlZBTDsKKwlnb3RvIG91dDsKK30KKworI3VuZGVmIE9VVF9CQVRDSAorCitpbnQgaW50ZWxfcmVuZGVyc3RhdGVfZW1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBycS0+ZW5naW5lOworCXN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZSBzbyA9IHt9OyAvKiBrZWVwIHRoZSBjb21waWxlciBoYXBweSAqLworCWludCBlcnI7CisKKwlzby5yb2RhdGEgPSByZW5kZXJfc3RhdGVfZ2V0X3JvZGF0YShlbmdpbmUpOworCWlmICghc28ucm9kYXRhKQorCQlyZXR1cm4gMDsKKworCWlmIChzby5yb2RhdGEtPmJhdGNoX2l0ZW1zICogNCA+IFBBR0VfU0laRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlzby5vYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGVuZ2luZS0+aTkxNSwgUEFHRV9TSVpFKTsKKwlpZiAoSVNfRVJSKHNvLm9iaikpCisJCXJldHVybiBQVFJfRVJSKHNvLm9iaik7CisKKwlzby52bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShzby5vYmosICZlbmdpbmUtPmd0LT5nZ3R0LT52bSwgTlVMTCk7CisJaWYgKElTX0VSUihzby52bWEpKSB7CisJCWVyciA9IFBUUl9FUlIoc28udm1hKTsKKwkJZ290byBlcnJfb2JqOworCX0KKworCWVyciA9IGk5MTVfdm1hX3Bpbihzby52bWEsIDAsIDAsIFBJTl9HTE9CQUwgfCBQSU5fSElHSCk7CisJaWYgKGVycikKKwkJZ290byBlcnJfdm1hOworCisJZXJyID0gcmVuZGVyX3N0YXRlX3NldHVwKCZzbywgcnEtPmk5MTUpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX3VucGluOworCisJZXJyID0gZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHJxLAorCQkJCSAgICBzby5iYXRjaF9vZmZzZXQsIHNvLmJhdGNoX3NpemUsCisJCQkJICAgIEk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl91bnBpbjsKKworCWlmIChzby5hdXhfc2l6ZSA+IDgpIHsKKwkJZXJyID0gZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHJxLAorCQkJCQkgICAgc28uYXV4X29mZnNldCwgc28uYXV4X3NpemUsCisJCQkJCSAgICBJOTE1X0RJU1BBVENIX1NFQ1VSRSk7CisJCWlmIChlcnIpCisJCQlnb3RvIGVycl91bnBpbjsKKwl9CisKKwlpOTE1X3ZtYV9sb2NrKHNvLnZtYSk7CisJZXJyID0gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgc28udm1hLT5vYmosIGZhbHNlKTsKKwlpZiAoZXJyID09IDApCisJCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHNvLnZtYSwgcnEsIDApOworCWk5MTVfdm1hX3VubG9jayhzby52bWEpOworZXJyX3VucGluOgorCWk5MTVfdm1hX3VucGluKHNvLnZtYSk7CitlcnJfdm1hOgorCWk5MTVfdm1hX2Nsb3NlKHNvLnZtYSk7CitlcnJfb2JqOgorCWk5MTVfZ2VtX29iamVjdF9wdXQoc28ub2JqKTsKKwlyZXR1cm4gZXJyOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVuZGVyc3RhdGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JlbmRlcnN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ1MDc5MQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JlbmRlcnN0YXRlLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX0lOVEVMX1JFTkRFUlNUQVRFX0hfCisjZGVmaW5lIF9JTlRFTF9SRU5ERVJTVEFURV9IXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworc3RydWN0IGk5MTVfcmVxdWVzdDsKKworc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSB7CisJY29uc3QgdTMyICpyZWxvYzsKKwljb25zdCB1MzIgKmJhdGNoOworCWNvbnN0IHUzMiBiYXRjaF9pdGVtczsKK307CisKKyNkZWZpbmUgUk9fUkVOREVSU1RBVEUoX2cpCQkJCQkJXAorCWNvbnN0IHN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuICMjIF9nICMjIF9udWxsX3N0YXRlID0geyBcCisJCS5yZWxvYyA9IGdlbiAjIyBfZyAjIyBfbnVsbF9zdGF0ZV9yZWxvY3MsCQlcCisJCS5iYXRjaCA9IGdlbiAjIyBfZyAjIyBfbnVsbF9zdGF0ZV9iYXRjaCwJCVwKKwkJLmJhdGNoX2l0ZW1zID0gc2l6ZW9mKGdlbiAjIyBfZyAjIyBfbnVsbF9zdGF0ZV9iYXRjaCkvNCwgXAorCX0KKworZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuNl9udWxsX3N0YXRlOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuN19udWxsX3N0YXRlOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuOF9udWxsX3N0YXRlOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuOV9udWxsX3N0YXRlOworCitpbnQgaW50ZWxfcmVuZGVyc3RhdGVfZW1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSk7CisKKyNlbmRpZiAvKiBfSU5URUxfUkVOREVSU1RBVEVfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCmluZGV4IDNmOTA3NzAuLmI5ZDg0ZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwpAQCAtNyw2ICs3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L3N0b3BfbWFjaGluZS5oPgogCisjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9vdmVybGF5LmgiCiAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY29udGV4dC5oIgpAQCAtMTUsMjYgKzE2LDE3IEBACiAjaW5jbHVkZSAiaTkxNV9ncHVfZXJyb3IuaCIKICNpbmNsdWRlICJpOTE1X2lycS5oIgogI2luY2x1ZGUgImludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImludGVsX2d0LmgiCiAjaW5jbHVkZSAiaW50ZWxfZ3RfcG0uaCIKICNpbmNsdWRlICJpbnRlbF9yZXNldC5oIgogCi0jaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCisjaW5jbHVkZSAidWMvaW50ZWxfZ3VjLmgiCiAKICNkZWZpbmUgUkVTRVRfTUFYX1JFVFJJRVMgMwogCiAvKiBYWFggSG93IHRvIGhhbmRsZSBjb25jdXJyZW50IEdHVFQgdXBkYXRlcyB1c2luZyB0aWxpbmcgcmVnaXN0ZXJzPyAqLwogI2RlZmluZSBSRVNFVF9VTkRFUl9TVE9QX01BQ0hJTkUgMAogCi1zdGF0aWMgdm9pZCBybXdfc2V0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwgaTkxNV9yZWdfdCByZWcsIHUzMiBzZXQpCi17Ci0JaW50ZWxfdW5jb3JlX3Jtdyh1bmNvcmUsIHJlZywgMCwgc2V0KTsKLX0KLQotc3RhdGljIHZvaWQgcm13X2NsZWFyKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwgaTkxNV9yZWdfdCByZWcsIHUzMiBjbHIpCi17Ci0JaW50ZWxfdW5jb3JlX3Jtdyh1bmNvcmUsIHJlZywgY2xyLCAwKTsKLX0KLQogc3RhdGljIHZvaWQgcm13X3NldF9mdyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsIGk5MTVfcmVnX3QgcmVnLCB1MzIgc2V0KQogewogCWludGVsX3VuY29yZV9ybXdfZncodW5jb3JlLCByZWcsIDAsIHNldCk7CkBAIC0xMjMsNyArMTE1LDcgQEAgc3RhdGljIHZvaWQgY29udGV4dF9tYXJrX2lubm9jZW50KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCiAJYXRvbWljX2luYygmY3R4LT5hY3RpdmVfY291bnQpOwogfQogCi12b2lkIGk5MTVfcmVzZXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgYm9vbCBndWlsdHkpCit2b2lkIF9faTkxNV9yZXF1ZXN0X3Jlc2V0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBib29sIGd1aWx0eSkKIHsKIAlHRU1fVFJBQ0UoIiVzIHJxPSVsbHg6JWxsZCwgZ3VpbHR5PyAlc1xuIiwKIAkJICBycS0+ZW5naW5lLT5uYW1lLApAQCAtMTQ0LDQ4ICsxMzYsNiBAQCB2b2lkIGk5MTVfcmVzZXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgYm9vbCBndWlsdHkpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBnZW4zX3N0b3BfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBlbmdpbmUtPnVuY29yZTsKLQljb25zdCB1MzIgYmFzZSA9IGVuZ2luZS0+bW1pb19iYXNlOwotCi0JR0VNX1RSQUNFKCIlc1xuIiwgZW5naW5lLT5uYW1lKTsKLQotCWlmIChpbnRlbF9lbmdpbmVfc3RvcF9jcyhlbmdpbmUpKQotCQlHRU1fVFJBQ0UoIiVzOiB0aW1lZCBvdXQgb24gU1RPUF9SSU5HXG4iLCBlbmdpbmUtPm5hbWUpOwotCi0JaW50ZWxfdW5jb3JlX3dyaXRlX2Z3KHVuY29yZSwKLQkJCSAgICAgIFJJTkdfSEVBRChiYXNlKSwKLQkJCSAgICAgIGludGVsX3VuY29yZV9yZWFkX2Z3KHVuY29yZSwgUklOR19UQUlMKGJhc2UpKSk7Ci0JaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZF9mdyh1bmNvcmUsIFJJTkdfSEVBRChiYXNlKSk7IC8qIHBhcmFub2lhICovCi0KLQlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLCBSSU5HX0hFQUQoYmFzZSksIDApOwotCWludGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsIFJJTkdfVEFJTChiYXNlKSwgMCk7Ci0JaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZF9mdyh1bmNvcmUsIFJJTkdfVEFJTChiYXNlKSk7Ci0KLQkvKiBUaGUgcmluZyBtdXN0IGJlIGVtcHR5IGJlZm9yZSBpdCBpcyBkaXNhYmxlZCAqLwotCWludGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsIFJJTkdfQ1RMKGJhc2UpLCAwKTsKLQotCS8qIENoZWNrIGFjdHMgYXMgYSBwb3N0ICovCi0JaWYgKGludGVsX3VuY29yZV9yZWFkX2Z3KHVuY29yZSwgUklOR19IRUFEKGJhc2UpKSkKLQkJR0VNX1RSQUNFKCIlczogcmluZyBoZWFkIFsleF0gbm90IHBhcmtlZFxuIiwKLQkJCSAgZW5naW5lLT5uYW1lLAotCQkJICBpbnRlbF91bmNvcmVfcmVhZF9mdyh1bmNvcmUsIFJJTkdfSEVBRChiYXNlKSkpOwotfQotCi1zdGF0aWMgdm9pZCBpOTE1X3N0b3BfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCSAgICAgIGludGVsX2VuZ2luZV9tYXNrX3QgZW5naW5lX21hc2spCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWludGVsX2VuZ2luZV9tYXNrX3QgdG1wOwotCi0JaWYgKElOVEVMX0dFTihpOTE1KSA8IDMpCi0JCXJldHVybjsKLQotCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBpOTE1LCBlbmdpbmVfbWFzaywgdG1wKQotCQlnZW4zX3N0b3BfZW5naW5lKGVuZ2luZSk7Ci19Ci0KIHN0YXRpYyBib29sIGk5MTVfaW5fcmVzZXQoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAJdTggZ2Ryc3Q7CkBAIC0xOTQsMTEgKzE0NCwxMSBAQCBzdGF0aWMgYm9vbCBpOTE1X2luX3Jlc2V0KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCXJldHVybiBnZHJzdCAmIEdSRE9NX1JFU0VUX1NUQVRVUzsKIH0KIAotc3RhdGljIGludCBpOTE1X2RvX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorc3RhdGljIGludCBpOTE1X2RvX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCQkgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaywKIAkJCSB1bnNpZ25lZCBpbnQgcmV0cnkpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBpOTE1LT5kcm0ucGRldjsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGd0LT5pOTE1LT5kcm0ucGRldjsKIAlpbnQgZXJyOwogCiAJLyogQXNzZXJ0IHJlc2V0IGZvciBhdCBsZWFzdCAyMCB1c2VjLCBhbmQgd2FpdCBmb3IgYWNrbm93bGVkZ2VtZW50LiAqLwpAQCAtMjIzLDIyICsxNzMsMjIgQEAgc3RhdGljIGJvb2wgZzR4X3Jlc2V0X2NvbXBsZXRlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCXJldHVybiAoZ2Ryc3QgJiBHUkRPTV9SRVNFVF9FTkFCTEUpID09IDA7CiB9CiAKLXN0YXRpYyBpbnQgZzMzX2RvX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorc3RhdGljIGludCBnMzNfZG9fcmVzZXQoc3RydWN0IGludGVsX2d0ICpndCwKIAkJCWludGVsX2VuZ2luZV9tYXNrX3QgZW5naW5lX21hc2ssCiAJCQl1bnNpZ25lZCBpbnQgcmV0cnkpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBpOTE1LT5kcm0ucGRldjsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGd0LT5pOTE1LT5kcm0ucGRldjsKIAogCXBjaV93cml0ZV9jb25maWdfYnl0ZShwZGV2LCBJOTE1X0dEUlNULCBHUkRPTV9SRVNFVF9FTkFCTEUpOwogCXJldHVybiB3YWl0X2Zvcl9hdG9taWMoZzR4X3Jlc2V0X2NvbXBsZXRlKHBkZXYpLCA1MCk7CiB9CiAKLXN0YXRpYyBpbnQgZzR4X2RvX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorc3RhdGljIGludCBnNHhfZG9fcmVzZXQoc3RydWN0IGludGVsX2d0ICpndCwKIAkJCWludGVsX2VuZ2luZV9tYXNrX3QgZW5naW5lX21hc2ssCiAJCQl1bnNpZ25lZCBpbnQgcmV0cnkpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBpOTE1LT5kcm0ucGRldjsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZ3QtPmk5MTUtPmRybS5wZGV2OworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7CiAJaW50IHJldDsKIAogCS8qIFdhVmNwQ2xrR2F0ZURpc2FibGVGb3JNZWRpYVJlc2V0OmN0ZyxlbGsgKi8KQEAgLTI3MCwxMSArMjIwLDExIEBAIHN0YXRpYyBpbnQgZzR4X2RvX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaXJvbmxha2VfZG9fcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCitzdGF0aWMgaW50IGlyb25sYWtlX2RvX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCQkgICAgIGludGVsX2VuZ2luZV9tYXNrX3QgZW5naW5lX21hc2ssCiAJCQkgICAgIHVuc2lnbmVkIGludCByZXRyeSkKIHsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7CiAJaW50IHJldDsKIAogCWludGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsIElMS19HRFNSLApAQCAtMzA2LDEwICsyNTYsOSBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2RvX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogfQogCiAvKiBSZXNldCB0aGUgaGFyZHdhcmUgZG9tYWlucyAoR0VOWF9HUkRPTV8qKSBzcGVjaWZpZWQgYnkgbWFzayAqLwotc3RhdGljIGludCBnZW42X2h3X2RvbWFpbl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQl1MzIgaHdfZG9tYWluX21hc2spCitzdGF0aWMgaW50IGdlbjZfaHdfZG9tYWluX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBod19kb21haW5fbWFzaykKIHsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7CiAJaW50IGVycjsKIAogCS8qCkBAIC0zMzEsNyArMjgwLDcgQEAgc3RhdGljIGludCBnZW42X2h3X2RvbWFpbl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgaW50IGdlbjZfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKK3N0YXRpYyBpbnQgZ2VuNl9yZXNldF9lbmdpbmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCQkgICAgICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrLAogCQkJICAgICAgdW5zaWduZWQgaW50IHJldHJ5KQogewpAQCAtMzUxLDEzICszMDAsMTMgQEAgc3RhdGljIGludCBnZW42X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCWludGVsX2VuZ2luZV9tYXNrX3QgdG1wOwogCiAJCWh3X21hc2sgPSAwOwotCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgaTkxNSwgZW5naW5lX21hc2ssIHRtcCkgeworCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QtPmk5MTUsIGVuZ2luZV9tYXNrLCB0bXApIHsKIAkJCUdFTV9CVUdfT04oZW5naW5lLT5pZCA+PSBBUlJBWV9TSVpFKGh3X2VuZ2luZV9tYXNrKSk7CiAJCQlod19tYXNrIHw9IGh3X2VuZ2luZV9tYXNrW2VuZ2luZS0+aWRdOwogCQl9CiAJfQogCi0JcmV0dXJuIGdlbjZfaHdfZG9tYWluX3Jlc2V0KGk5MTUsIGh3X21hc2spOworCXJldHVybiBnZW42X2h3X2RvbWFpbl9yZXNldChndCwgaHdfbWFzayk7CiB9CiAKIHN0YXRpYyB1MzIgZ2VuMTFfbG9ja19zZmMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpAQCAtNDU1LDcgKzQwNCw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX3VubG9ja19zZmMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJtd19jbGVhcl9mdyh1bmNvcmUsIHNmY19mb3JjZWRfbG9jaywgc2ZjX2ZvcmNlZF9sb2NrX2JpdCk7CiB9CiAKLXN0YXRpYyBpbnQgZ2VuMTFfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKK3N0YXRpYyBpbnQgZ2VuMTFfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogCQkJICAgICAgIGludGVsX2VuZ2luZV9tYXNrX3QgZW5naW5lX21hc2ssCiAJCQkgICAgICAgdW5zaWduZWQgaW50IHJldHJ5KQogewpAQCAtNDc4LDE3ICs0MjcsMTcgQEAgc3RhdGljIGludCBnZW4xMV9yZXNldF9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQlod19tYXNrID0gR0VOMTFfR1JET01fRlVMTDsKIAl9IGVsc2UgewogCQlod19tYXNrID0gMDsKLQkJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGk5MTUsIGVuZ2luZV9tYXNrLCB0bXApIHsKKwkJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGd0LT5pOTE1LCBlbmdpbmVfbWFzaywgdG1wKSB7CiAJCQlHRU1fQlVHX09OKGVuZ2luZS0+aWQgPj0gQVJSQVlfU0laRShod19lbmdpbmVfbWFzaykpOwogCQkJaHdfbWFzayB8PSBod19lbmdpbmVfbWFza1tlbmdpbmUtPmlkXTsKIAkJCWh3X21hc2sgfD0gZ2VuMTFfbG9ja19zZmMoZW5naW5lKTsKIAkJfQogCX0KIAotCXJldCA9IGdlbjZfaHdfZG9tYWluX3Jlc2V0KGk5MTUsIGh3X21hc2spOworCXJldCA9IGdlbjZfaHdfZG9tYWluX3Jlc2V0KGd0LCBod19tYXNrKTsKIAogCWlmIChlbmdpbmVfbWFzayAhPSBBTExfRU5HSU5FUykKLQkJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGk5MTUsIGVuZ2luZV9tYXNrLCB0bXApCisJCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBndC0+aTkxNSwgZW5naW5lX21hc2ssIHRtcCkKIAkJCWdlbjExX3VubG9ja19zZmMoZW5naW5lKTsKIAogCXJldHVybiByZXQ7CkBAIC01MzgsNyArNDg3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9lbmdpbmVfcmVzZXRfY2FuY2VsKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCSAgICAgIF9NQVNLRURfQklUX0RJU0FCTEUoUkVTRVRfQ1RMX1JFUVVFU1RfUkVTRVQpKTsKIH0KIAotc3RhdGljIGludCBnZW44X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCitzdGF0aWMgaW50IGdlbjhfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogCQkJICAgICAgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaywKIAkJCSAgICAgIHVuc2lnbmVkIGludCByZXRyeSkKIHsKQEAgLTU0Nyw3ICs0OTYsNyBAQCBzdGF0aWMgaW50IGdlbjhfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlpbnRlbF9lbmdpbmVfbWFza190IHRtcDsKIAlpbnQgcmV0OwogCi0JZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGk5MTUsIGVuZ2luZV9tYXNrLCB0bXApIHsKKwlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QtPmk5MTUsIGVuZ2luZV9tYXNrLCB0bXApIHsKIAkJcmV0ID0gZ2VuOF9lbmdpbmVfcmVzZXRfcHJlcGFyZShlbmdpbmUpOwogCQlpZiAocmV0ICYmICFyZXNldF9ub25fcmVhZHkpCiAJCQlnb3RvIHNraXBfcmVzZXQ7CkBAIC01NjMsMjMgKzUxMiwyMyBAQCBzdGF0aWMgaW50IGdlbjhfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJICogV2UgcmF0aGVyIHRha2UgY29udGV4dCBjb3JydXB0aW9uIGluc3RlYWQgb2YKIAkJICogZmFpbGVkIHJlc2V0IHdpdGggYSB3ZWRnZWQgZHJpdmVyL2dwdS4gQW5kCiAJCSAqIGFjdGl2ZSBiYiBleGVjdXRpb24gY2FzZSBzaG91bGQgYmUgY292ZXJlZCBieQotCQkgKiBpOTE1X3N0b3BfZW5naW5lcyB3ZSBoYXZlIGJlZm9yZSB0aGUgcmVzZXQuCisJCSAqIHN0b3BfZW5naW5lcygpIHdlIGhhdmUgYmVmb3JlIHRoZSByZXNldC4KIAkJICovCiAJfQogCi0JaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMSkKLQkJcmV0ID0gZ2VuMTFfcmVzZXRfZW5naW5lcyhpOTE1LCBlbmdpbmVfbWFzaywgcmV0cnkpOworCWlmIChJTlRFTF9HRU4oZ3QtPmk5MTUpID49IDExKQorCQlyZXQgPSBnZW4xMV9yZXNldF9lbmdpbmVzKGd0LCBlbmdpbmVfbWFzaywgcmV0cnkpOwogCWVsc2UKLQkJcmV0ID0gZ2VuNl9yZXNldF9lbmdpbmVzKGk5MTUsIGVuZ2luZV9tYXNrLCByZXRyeSk7CisJCXJldCA9IGdlbjZfcmVzZXRfZW5naW5lcyhndCwgZW5naW5lX21hc2ssIHJldHJ5KTsKIAogc2tpcF9yZXNldDoKLQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgaTkxNSwgZW5naW5lX21hc2ssIHRtcCkKKwlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QtPmk5MTUsIGVuZ2luZV9tYXNrLCB0bXApCiAJCWdlbjhfZW5naW5lX3Jlc2V0X2NhbmNlbChlbmdpbmUpOwogCiAJcmV0dXJuIHJldDsKIH0KIAotdHlwZWRlZiBpbnQgKCpyZXNldF9mdW5jKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqLAordHlwZWRlZiBpbnQgKCpyZXNldF9mdW5jKShzdHJ1Y3QgaW50ZWxfZ3QgKiwKIAkJCSAgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaywKIAkJCSAgdW5zaWduZWQgaW50IHJldHJ5KTsKIApAQCAtNjAxLDE1ICs1NTAsMTQgQEAgc3RhdGljIHJlc2V0X2Z1bmMgaW50ZWxfZ2V0X2dwdV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJcmV0dXJuIE5VTEw7CiB9CiAKLWludCBpbnRlbF9ncHVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCSAgICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrKQoraW50IF9faW50ZWxfZ3RfcmVzZXQoc3RydWN0IGludGVsX2d0ICpndCwgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaykKIHsKIAljb25zdCBpbnQgcmV0cmllcyA9IGVuZ2luZV9tYXNrID09IEFMTF9FTkdJTkVTID8gUkVTRVRfTUFYX1JFVFJJRVMgOiAxOwogCXJlc2V0X2Z1bmMgcmVzZXQ7CiAJaW50IHJldCA9IC1FVElNRURPVVQ7CiAJaW50IHJldHJ5OwogCi0JcmVzZXQgPSBpbnRlbF9nZXRfZ3B1X3Jlc2V0KGk5MTUpOworCXJlc2V0ID0gaW50ZWxfZ2V0X2dwdV9yZXNldChndC0+aTkxNSk7CiAJaWYgKCFyZXNldCkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKQEAgLTYxNywzMSArNTY1LDE0IEBAIGludCBpbnRlbF9ncHVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJICogSWYgdGhlIHBvd2VyIHdlbGwgc2xlZXBzIGR1cmluZyB0aGUgcmVzZXQsIHRoZSByZXNldAogCSAqIHJlcXVlc3QgbWF5IGJlIGRyb3BwZWQgYW5kIG5ldmVyIGNvbXBsZXRlcyAoY2F1c2luZyAtRUlPKS4KIAkgKi8KLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCgmaTkxNS0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKKwlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChndC0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKIAlmb3IgKHJldHJ5ID0gMDsgcmV0ID09IC1FVElNRURPVVQgJiYgcmV0cnkgPCByZXRyaWVzOyByZXRyeSsrKSB7Ci0JCS8qCi0JCSAqIFdlIHN0b3AgZW5naW5lcywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGdldCBmYWlsZWQgcmVzZXQgYW5kIGEKLQkJICogZGVhZCBncHUgKG9uIGVsaykuIEFsc28gYXMgbW9kZXJuIGdwdSBhcyBrYmwgY2FuIHN1ZmZlcgotCQkgKiBmcm9tIHN5c3RlbSBoYW5nIGlmIGJhdGNoYnVmZmVyIGlzIHByb2dyZXNzaW5nIHdoZW4KLQkJICogdGhlIHJlc2V0IGlzIGlzc3VlZCwgcmVnYXJkbGVzcyBvZiBSRUFEWV9UT19SRVNFVCBhY2suCi0JCSAqIFRodXMgYXNzdW1lIGl0IGlzIGJlc3QgdG8gc3RvcCBlbmdpbmVzIG9uIGFsbCBnZW5zCi0JCSAqIHdoZXJlIHdlIGhhdmUgYSBncHUgcmVzZXQuCi0JCSAqCi0JCSAqIFdhS0JMVkVDU1NlbWFwaG9yZVdhaXRQb2xsOmtibCAob24gQUxMX0VOR0lORVMpCi0JCSAqCi0JCSAqIFdhTWVkaWFSZXNldE1haW5SaW5nQ2xlYW51cDpjdGcsZWxrIChwcmVzdW1hYmx5KQotCQkgKgotCQkgKiBGSVhNRTogV2EgZm9yIG1vcmUgbW9kZXJuIGdlbnMgbmVlZHMgdG8gYmUgdmFsaWRhdGVkCi0JCSAqLwotCQlpZiAocmV0cnkpCi0JCQlpOTE1X3N0b3BfZW5naW5lcyhpOTE1LCBlbmdpbmVfbWFzayk7Ci0KIAkJR0VNX1RSQUNFKCJlbmdpbmVfbWFzaz0leFxuIiwgZW5naW5lX21hc2spOwogCQlwcmVlbXB0X2Rpc2FibGUoKTsKLQkJcmV0ID0gcmVzZXQoaTkxNSwgZW5naW5lX21hc2ssIHJldHJ5KTsKKwkJcmV0ID0gcmVzZXQoZ3QsIGVuZ2luZV9tYXNrLCByZXRyeSk7CiAJCXByZWVtcHRfZW5hYmxlKCk7CiAJfQotCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KCZpOTE1LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOworCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGd0LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTY1OSwxNyArNTkwLDE3IEBAIGJvb2wgaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlyZXR1cm4gSU5URUxfSU5GTyhpOTE1KS0+aGFzX3Jlc2V0X2VuZ2luZSAmJiBpOTE1X21vZHBhcmFtcy5yZXNldCA+PSAyOwogfQogCi1pbnQgaW50ZWxfcmVzZXRfZ3VjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoraW50IGludGVsX3Jlc2V0X2d1YyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCXUzMiBndWNfZG9tYWluID0KLQkJSU5URUxfR0VOKGk5MTUpID49IDExID8gR0VOMTFfR1JET01fR1VDIDogR0VOOV9HUkRPTV9HVUM7CisJCUlOVEVMX0dFTihndC0+aTkxNSkgPj0gMTEgPyBHRU4xMV9HUkRPTV9HVUMgOiBHRU45X0dSRE9NX0dVQzsKIAlpbnQgcmV0OwogCi0JR0VNX0JVR19PTighSEFTX0dVQyhpOTE1KSk7CisJR0VNX0JVR19PTighSEFTX0dUX1VDKGd0LT5pOTE1KSk7CiAKLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCgmaTkxNS0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKLQlyZXQgPSBnZW42X2h3X2RvbWFpbl9yZXNldChpOTE1LCBndWNfZG9tYWluKTsKLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCgmaTkxNS0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKKwlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChndC0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKKwlyZXQgPSBnZW42X2h3X2RvbWFpbl9yZXNldChndCwgZ3VjX2RvbWFpbik7CisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZ3QtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNjkxLDU2ICs2MjIsNTUgQEAgc3RhdGljIHZvaWQgcmVzZXRfcHJlcGFyZV9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWVuZ2luZS0+cmVzZXQucHJlcGFyZShlbmdpbmUpOwogfQogCi1zdGF0aWMgdm9pZCByZXZva2VfbW1hcHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgdm9pZCByZXZva2VfbW1hcHMoc3RydWN0IGludGVsX2d0ICpndCkKIHsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBpOTE1LT5nZ3R0Lm51bV9mZW5jZXM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBndC0+Z2d0dC0+bnVtX2ZlbmNlczsgaSsrKSB7CiAJCXN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlICpub2RlOwogCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAkJdTY0IHZtYV9vZmZzZXQ7CiAKLQkJdm1hID0gUkVBRF9PTkNFKGk5MTUtPmdndHQuZmVuY2VfcmVnc1tpXS52bWEpOworCQl2bWEgPSBSRUFEX09OQ0UoZ3QtPmdndHQtPmZlbmNlX3JlZ3NbaV0udm1hKTsKIAkJaWYgKCF2bWEpCiAJCQljb250aW51ZTsKIAogCQlpZiAoIWk5MTVfdm1hX2hhc191c2VyZmF1bHQodm1hKSkKIAkJCWNvbnRpbnVlOwogCi0JCUdFTV9CVUdfT04odm1hLT5mZW5jZSAhPSAmaTkxNS0+Z2d0dC5mZW5jZV9yZWdzW2ldKTsKKwkJR0VNX0JVR19PTih2bWEtPmZlbmNlICE9ICZndC0+Z2d0dC0+ZmVuY2VfcmVnc1tpXSk7CiAJCW5vZGUgPSAmdm1hLT5vYmotPmJhc2Uudm1hX25vZGU7CiAJCXZtYV9vZmZzZXQgPSB2bWEtPmdndHRfdmlldy5wYXJ0aWFsLm9mZnNldCA8PCBQQUdFX1NISUZUOwotCQl1bm1hcF9tYXBwaW5nX3JhbmdlKGk5MTUtPmRybS5hbm9uX2lub2RlLT5pX21hcHBpbmcsCisJCXVubWFwX21hcHBpbmdfcmFuZ2UoZ3QtPmk5MTUtPmRybS5hbm9uX2lub2RlLT5pX21hcHBpbmcsCiAJCQkJICAgIGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcihub2RlKSArIHZtYV9vZmZzZXQsCiAJCQkJICAgIHZtYS0+c2l6ZSwKIAkJCQkgICAgMSk7CiAJfQogfQogCi1zdGF0aWMgaW50ZWxfZW5naW5lX21hc2tfdCByZXNldF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorc3RhdGljIGludGVsX2VuZ2luZV9tYXNrX3QgcmVzZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnRlbF9lbmdpbmVfbWFza190IGF3YWtlID0gMDsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CiAJCWlmIChpbnRlbF9lbmdpbmVfcG1fZ2V0X2lmX2F3YWtlKGVuZ2luZSkpCiAJCQlhd2FrZSB8PSBlbmdpbmUtPm1hc2s7CiAJCXJlc2V0X3ByZXBhcmVfZW5naW5lKGVuZ2luZSk7CiAJfQogCi0JaW50ZWxfdWNfcmVzZXRfcHJlcGFyZShpOTE1KTsKKwlpbnRlbF91Y19yZXNldF9wcmVwYXJlKCZndC0+dWMpOwogCiAJcmV0dXJuIGF3YWtlOwogfQogCi1zdGF0aWMgdm9pZCBndF9yZXZva2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgdm9pZCBndF9yZXZva2Uoc3RydWN0IGludGVsX2d0ICpndCkKIHsKLQlyZXZva2VfbW1hcHMoaTkxNSk7CisJcmV2b2tlX21tYXBzKGd0KTsKIH0KIAotc3RhdGljIGludCBndF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJICAgIGludGVsX2VuZ2luZV9tYXNrX3Qgc3RhbGxlZF9tYXNrKQorc3RhdGljIGludCBndF9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBpbnRlbF9lbmdpbmVfbWFza190IHN0YWxsZWRfbWFzaykKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CkBAIC03NTAsMTQgKzY4MCwxNCBAQCBzdGF0aWMgaW50IGd0X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCSAqIEV2ZXJ5dGhpbmcgZGVwZW5kcyBvbiBoYXZpbmcgdGhlIEdUVCBydW5uaW5nLCBzbyB3ZSBuZWVkIHRvIHN0YXJ0CiAJICogdGhlcmUuCiAJICovCi0JZXJyID0gaTkxNV9nZ3R0X2VuYWJsZV9odyhpOTE1KTsKKwllcnIgPSBpOTE1X2dndHRfZW5hYmxlX2h3KGd0LT5pOTE1KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCi0JCWludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsIHN0YWxsZWRfbWFzayAmIGVuZ2luZS0+bWFzayk7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKQorCQlfX2ludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsIHN0YWxsZWRfbWFzayAmIGVuZ2luZS0+bWFzayk7CiAKLQlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhpOTE1KTsKKwlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhndC0+aTkxNSk7CiAKIAlyZXR1cm4gZXJyOwogfQpAQCAtNzcwLDEzICs3MDAsMTIgQEAgc3RhdGljIHZvaWQgcmVzZXRfZmluaXNoX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaW50ZWxfZW5naW5lX3NpZ25hbF9icmVhZGNydW1icyhlbmdpbmUpOwogfQogCi1zdGF0aWMgdm9pZCByZXNldF9maW5pc2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCQkgaW50ZWxfZW5naW5lX21hc2tfdCBhd2FrZSkKK3N0YXRpYyB2b2lkIHJlc2V0X2ZpbmlzaChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBpbnRlbF9lbmdpbmVfbWFza190IGF3YWtlKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CiAJCXJlc2V0X2ZpbmlzaF9lbmdpbmUoZW5naW5lKTsKIAkJaWYgKGF3YWtlICYgZW5naW5lLT5tYXNrKQogCQkJaW50ZWxfZW5naW5lX3BtX3B1dChlbmdpbmUpOwpAQCAtODAwLDIwICs3MjksMTkgQEAgc3RhdGljIHZvaWQgbm9wX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiAJaW50ZWxfZW5naW5lX3F1ZXVlX2JyZWFkY3J1bWJzKGVuZ2luZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9faTkxNV9nZW1fc2V0X3dlZGdlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB2b2lkIF9faW50ZWxfZ3Rfc2V0X3dlZGdlZChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IgPSAmaTkxNS0+Z3B1X2Vycm9yOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnRlbF9lbmdpbmVfbWFza190IGF3YWtlOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCi0JaWYgKHRlc3RfYml0KEk5MTVfV0VER0VELCAmZXJyb3ItPmZsYWdzKSkKKwlpZiAodGVzdF9iaXQoSTkxNV9XRURHRUQsICZndC0+cmVzZXQuZmxhZ3MpKQogCQlyZXR1cm47CiAKLQlpZiAoR0VNX1NIT1dfREVCVUcoKSAmJiAhaW50ZWxfZW5naW5lc19hcmVfaWRsZShpOTE1KSkgeworCWlmIChHRU1fU0hPV19ERUJVRygpICYmICFpbnRlbF9lbmdpbmVzX2FyZV9pZGxlKGd0KSkgewogCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9kZWJ1Z19wcmludGVyKF9fZnVuY19fKTsKIAotCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKQogCQkJaW50ZWxfZW5naW5lX2R1bXAoZW5naW5lLCAmcCwgIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwogCX0KIApAQCAtODI0LDE3ICs3NTIsMTQgQEAgc3RhdGljIHZvaWQgX19pOTE1X2dlbV9zZXRfd2VkZ2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCSAqIHJvbGxpbmcgdGhlIGdsb2JhbCBzZXFubyBmb3J3YXJkIChzaW5jZSB0aGlzIHdvdWxkIGNvbXBsZXRlIHJlcXVlc3RzCiAJICogZm9yIHdoaWNoIHdlIGhhdmVuJ3Qgc2V0IHRoZSBmZW5jZSBlcnJvciB0byBFSU8geWV0KS4KIAkgKi8KLQlhd2FrZSA9IHJlc2V0X3ByZXBhcmUoaTkxNSk7CisJYXdha2UgPSByZXNldF9wcmVwYXJlKGd0KTsKIAogCS8qIEV2ZW4gaWYgdGhlIEdQVSByZXNldCBmYWlscywgaXQgc2hvdWxkIHN0aWxsIHN0b3AgdGhlIGVuZ2luZXMgKi8KLQlpZiAoIUlOVEVMX0lORk8oaTkxNSktPmdwdV9yZXNldF9jbG9iYmVyc19kaXNwbGF5KQotCQlpbnRlbF9ncHVfcmVzZXQoaTkxNSwgQUxMX0VOR0lORVMpOworCWlmICghSU5URUxfSU5GTyhndC0+aTkxNSktPmdwdV9yZXNldF9jbG9iYmVyc19kaXNwbGF5KQorCQlfX2ludGVsX2d0X3Jlc2V0KGd0LCBBTExfRU5HSU5FUyk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkKIAkJZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9IG5vcF9zdWJtaXRfcmVxdWVzdDsKLQkJZW5naW5lLT5zY2hlZHVsZSA9IE5VTEw7Ci0JfQotCWk5MTUtPmNhcHMuc2NoZWR1bGVyID0gMDsKIAogCS8qCiAJICogTWFrZSBzdXJlIG5vIHJlcXVlc3QgY2FuIHNsaXAgdGhyb3VnaCB3aXRob3V0IGdldHRpbmcgY29tcGxldGVkIGJ5CkBAIC04NDIsMzcgKzc2NywzNyBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX3NldF93ZWRnZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJICogaW4gbm9wX3N1Ym1pdF9yZXF1ZXN0LgogCSAqLwogCXN5bmNocm9uaXplX3JjdV9leHBlZGl0ZWQoKTsKLQlzZXRfYml0KEk5MTVfV0VER0VELCAmZXJyb3ItPmZsYWdzKTsKKwlzZXRfYml0KEk5MTVfV0VER0VELCAmZ3QtPnJlc2V0LmZsYWdzKTsKIAogCS8qIE1hcmsgYWxsIGV4ZWN1dGluZyByZXF1ZXN0cyBhcyBza2lwcGVkICovCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKQogCQllbmdpbmUtPmNhbmNlbF9yZXF1ZXN0cyhlbmdpbmUpOwogCi0JcmVzZXRfZmluaXNoKGk5MTUsIGF3YWtlKTsKKwlyZXNldF9maW5pc2goZ3QsIGF3YWtlKTsKIAogCUdFTV9UUkFDRSgiZW5kXG4iKTsKIH0KIAotdm9pZCBpOTE1X2dlbV9zZXRfd2VkZ2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQordm9pZCBpbnRlbF9ndF9zZXRfd2VkZ2VkKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7Ci0Jc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJyb3I7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAKLQltdXRleF9sb2NrKCZlcnJvci0+d2VkZ2VfbXV0ZXgpOwotCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZikKLQkJX19pOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOwotCW11dGV4X3VubG9jaygmZXJyb3ItPndlZGdlX211dGV4KTsKKwltdXRleF9sb2NrKCZndC0+cmVzZXQubXV0ZXgpOworCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmZ3QtPmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCisJCV9faW50ZWxfZ3Rfc2V0X3dlZGdlZChndCk7CisJbXV0ZXhfdW5sb2NrKCZndC0+cmVzZXQubXV0ZXgpOwogfQogCi1zdGF0aWMgYm9vbCBfX2k5MTVfZ2VtX3Vuc2V0X3dlZGdlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyBib29sIF9faW50ZWxfZ3RfdW5zZXRfd2VkZ2VkKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7Ci0Jc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJyb3I7Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsOworCXN0cnVjdCBpbnRlbF9ndF90aW1lbGluZXMgKnRpbWVsaW5lcyA9ICZndC0+dGltZWxpbmVzOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCWlmICghdGVzdF9iaXQoSTkxNV9XRURHRUQsICZlcnJvci0+ZmxhZ3MpKQorCWlmICghdGVzdF9iaXQoSTkxNV9XRURHRUQsICZndC0+cmVzZXQuZmxhZ3MpKQogCQlyZXR1cm4gdHJ1ZTsKIAotCWlmICghaTkxNS0+Z3Quc2NyYXRjaCkgLyogTmV2ZXIgZnVsbCBpbml0aWFsaXNlZCwgcmVjb3ZlcnkgaW1wb3NzaWJsZSAqLworCWlmICghZ3QtPnNjcmF0Y2gpIC8qIE5ldmVyIGZ1bGwgaW5pdGlhbGlzZWQsIHJlY292ZXJ5IGltcG9zc2libGUgKi8KIAkJcmV0dXJuIGZhbHNlOwogCiAJR0VNX1RSQUNFKCJzdGFydFxuIik7CkBAIC04ODcsMTQgKzgxMiwxNiBAQCBzdGF0aWMgYm9vbCBfX2k5MTVfZ2VtX3Vuc2V0X3dlZGdlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkgKgogCSAqIE5vIG1vcmUgY2FuIGJlIHN1Ym1pdHRlZCB1bnRpbCB3ZSByZXNldCB0aGUgd2VkZ2VkIGJpdC4KIAkgKi8KLQltdXRleF9sb2NrKCZpOTE1LT5ndC50aW1lbGluZXMubXV0ZXgpOwotCWxpc3RfZm9yX2VhY2hfZW50cnkodGwsICZpOTE1LT5ndC50aW1lbGluZXMuYWN0aXZlX2xpc3QsIGxpbmspIHsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bCwgJnRpbWVsaW5lcy0+YWN0aXZlX2xpc3QsIGxpbmspIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAKIAkJcnEgPSBpOTE1X2FjdGl2ZV9yZXF1ZXN0X2dldF91bmxvY2tlZCgmdGwtPmxhc3RfcmVxdWVzdCk7CiAJCWlmICghcnEpCiAJCQljb250aW51ZTsKIAorCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKKwogCQkvKgogCQkgKiBBbGwgaW50ZXJuYWwgZGVwZW5kZW5jaWVzIChpOTE1X3JlcXVlc3RzKSB3aWxsIGhhdmUKIAkJICogYmVlbiBmbHVzaGVkIGJ5IHRoZSBzZXQtd2VkZ2UsIGJ1dCB3ZSBtYXkgYmUgc3R1Y2sgd2FpdGluZwpAQCAtOTA0LDEwICs4MzEsMTQgQEAgc3RhdGljIGJvb2wgX19pOTE1X2dlbV91bnNldF93ZWRnZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCSAqLwogCQlkbWFfZmVuY2VfZGVmYXVsdF93YWl0KCZycS0+ZmVuY2UsIGZhbHNlLCBNQVhfU0NIRURVTEVfVElNRU9VVCk7CiAJCWk5MTVfcmVxdWVzdF9wdXQocnEpOwotCX0KLQltdXRleF91bmxvY2soJmk5MTUtPmd0LnRpbWVsaW5lcy5tdXRleCk7CiAKLQlpbnRlbF9ndF9zYW5pdGl6ZShpOTE1LCBmYWxzZSk7CisJCS8qIFJlc3RhcnQgaXRlcmF0aW9uIGFmdGVyIGRyb3BpbmcgbG9jayAqLworCQlzcGluX2xvY2tfaXJxc2F2ZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7CisJCXRsID0gbGlzdF9lbnRyeSgmdGltZWxpbmVzLT5hY3RpdmVfbGlzdCwgdHlwZW9mKCp0bCksIGxpbmspOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKKworCWludGVsX2d0X3Nhbml0aXplKGd0LCBmYWxzZSk7CiAKIAkvKgogCSAqIFVuZG8gbm9wX3N1Ym1pdF9yZXF1ZXN0LiBXZSBwcmV2ZW50IGFsbCBuZXcgaTkxNSByZXF1ZXN0cyBmcm9tCkBAIC05MTgsNTMgKzg0OSw1MSBAQCBzdGF0aWMgYm9vbCBfX2k5MTVfZ2VtX3Vuc2V0X3dlZGdlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkgKiB0aGUgbm9wX3N1Ym1pdF9yZXF1ZXN0IG9uIHJlc2V0LCB3ZSBjYW4gZG8gdGhpcyBmcm9tIG5vcm1hbAogCSAqIGNvbnRleHQgYW5kIGRvIG5vdCByZXF1aXJlIHN0b3BfbWFjaGluZSgpLgogCSAqLwotCWludGVsX2VuZ2luZXNfcmVzZXRfZGVmYXVsdF9zdWJtaXNzaW9uKGk5MTUpOworCWludGVsX2VuZ2luZXNfcmVzZXRfZGVmYXVsdF9zdWJtaXNzaW9uKGd0KTsKIAogCUdFTV9UUkFDRSgiZW5kXG4iKTsKIAogCXNtcF9tYl9fYmVmb3JlX2F0b21pYygpOyAvKiBjb21wbGV0ZSB0YWtlb3ZlciBiZWZvcmUgZW5hYmxpbmcgZXhlY2J1ZiAqLwotCWNsZWFyX2JpdChJOTE1X1dFREdFRCwgJmk5MTUtPmdwdV9lcnJvci5mbGFncyk7CisJY2xlYXJfYml0KEk5MTVfV0VER0VELCAmZ3QtPnJlc2V0LmZsYWdzKTsKIAogCXJldHVybiB0cnVlOwogfQogCi1ib29sIGk5MTVfZ2VtX3Vuc2V0X3dlZGdlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK2Jvb2wgaW50ZWxfZ3RfdW5zZXRfd2VkZ2VkKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7Ci0Jc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJyb3I7CiAJYm9vbCByZXN1bHQ7CiAKLQltdXRleF9sb2NrKCZlcnJvci0+d2VkZ2VfbXV0ZXgpOwotCXJlc3VsdCA9IF9faTkxNV9nZW1fdW5zZXRfd2VkZ2VkKGk5MTUpOwotCW11dGV4X3VubG9jaygmZXJyb3ItPndlZGdlX211dGV4KTsKKwltdXRleF9sb2NrKCZndC0+cmVzZXQubXV0ZXgpOworCXJlc3VsdCA9IF9faW50ZWxfZ3RfdW5zZXRfd2VkZ2VkKGd0KTsKKwltdXRleF91bmxvY2soJmd0LT5yZXNldC5tdXRleCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW50IGRvX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkgICAgaW50ZWxfZW5naW5lX21hc2tfdCBzdGFsbGVkX21hc2spCitzdGF0aWMgaW50IGRvX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGludGVsX2VuZ2luZV9tYXNrX3Qgc3RhbGxlZF9tYXNrKQogewogCWludCBlcnIsIGk7CiAKLQlndF9yZXZva2UoaTkxNSk7CisJZ3RfcmV2b2tlKGd0KTsKIAotCWVyciA9IGludGVsX2dwdV9yZXNldChpOTE1LCBBTExfRU5HSU5FUyk7CisJZXJyID0gX19pbnRlbF9ndF9yZXNldChndCwgQUxMX0VOR0lORVMpOwogCWZvciAoaSA9IDA7IGVyciAmJiBpIDwgUkVTRVRfTUFYX1JFVFJJRVM7IGkrKykgewogCQltc2xlZXAoMTAgKiAoaSArIDEpKTsKLQkJZXJyID0gaW50ZWxfZ3B1X3Jlc2V0KGk5MTUsIEFMTF9FTkdJTkVTKTsKKwkJZXJyID0gX19pbnRlbF9ndF9yZXNldChndCwgQUxMX0VOR0lORVMpOwogCX0KIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JcmV0dXJuIGd0X3Jlc2V0KGk5MTUsIHN0YWxsZWRfbWFzayk7CisJcmV0dXJuIGd0X3Jlc2V0KGd0LCBzdGFsbGVkX21hc2spOwogfQogCi1zdGF0aWMgaW50IHJlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyBpbnQgcmVzdW1lKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCWludCByZXQ7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgewogCQlyZXQgPSBlbmdpbmUtPnJlc3VtZShlbmdpbmUpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKQEAgLTk3NCw4ICs5MDMsOCBAQCBzdGF0aWMgaW50IHJlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIH0KIAogLyoqCi0gKiBpOTE1X3Jlc2V0IC0gcmVzZXQgY2hpcCBhZnRlciBhIGhhbmcKLSAqIEBpOTE1OiAjZHJtX2k5MTVfcHJpdmF0ZSB0byByZXNldAorICogaW50ZWxfZ3RfcmVzZXQgLSByZXNldCBjaGlwIGFmdGVyIGEgaGFuZworICogQGd0OiAjaW50ZWxfZ3QgdG8gcmVzZXQKICAqIEBzdGFsbGVkX21hc2s6IG1hc2sgb2YgdGhlIHN0YWxsZWQgZW5naW5lcyB3aXRoIHRoZSBndWlsdHkgcmVxdWVzdHMKICAqIEByZWFzb246IHVzZXIgZXJyb3IgbWVzc2FnZSBmb3Igd2h5IHdlIGFyZSByZXNldHRpbmcKICAqCkBAIC05OTAsNTAgKzkxOSw1MCBAQCBzdGF0aWMgaW50IHJlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKICAqICAgLSByZS1pbml0IGludGVycnVwdCBzdGF0ZQogICogICAtIHJlLWluaXQgZGlzcGxheQogICovCi12b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCWludGVsX2VuZ2luZV9tYXNrX3Qgc3RhbGxlZF9tYXNrLAotCQljb25zdCBjaGFyICpyZWFzb24pCit2b2lkIGludGVsX2d0X3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsCisJCSAgICBpbnRlbF9lbmdpbmVfbWFza190IHN0YWxsZWRfbWFzaywKKwkJICAgIGNvbnN0IGNoYXIgKnJlYXNvbikKIHsKLQlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yID0gJmk5MTUtPmdwdV9lcnJvcjsKIAlpbnRlbF9lbmdpbmVfbWFza190IGF3YWtlOwogCWludCByZXQ7CiAKLQlHRU1fVFJBQ0UoImZsYWdzPSVseFxuIiwgZXJyb3ItPmZsYWdzKTsKKwlHRU1fVFJBQ0UoImZsYWdzPSVseFxuIiwgZ3QtPnJlc2V0LmZsYWdzKTsKIAogCW1pZ2h0X3NsZWVwKCk7Ci0JR0VNX0JVR19PTighdGVzdF9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAmZXJyb3ItPmZsYWdzKSk7Ci0JbXV0ZXhfbG9jaygmZXJyb3ItPndlZGdlX211dGV4KTsKKwlHRU1fQlVHX09OKCF0ZXN0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZndC0+cmVzZXQuZmxhZ3MpKTsKKwltdXRleF9sb2NrKCZndC0+cmVzZXQubXV0ZXgpOwogCiAJLyogQ2xlYXIgYW55IHByZXZpb3VzIGZhaWxlZCBhdHRlbXB0cyBhdCByZWNvdmVyeS4gVGltZSB0byB0cnkgYWdhaW4uICovCi0JaWYgKCFfX2k5MTVfZ2VtX3Vuc2V0X3dlZGdlZChpOTE1KSkKKwlpZiAoIV9faW50ZWxfZ3RfdW5zZXRfd2VkZ2VkKGd0KSkKIAkJZ290byB1bmxvY2s7CiAKIAlpZiAocmVhc29uKQotCQlkZXZfbm90aWNlKGk5MTUtPmRybS5kZXYsICJSZXNldHRpbmcgY2hpcCBmb3IgJXNcbiIsIHJlYXNvbik7Ci0JZXJyb3ItPnJlc2V0X2NvdW50Kys7CisJCWRldl9ub3RpY2UoZ3QtPmk5MTUtPmRybS5kZXYsCisJCQkgICAiUmVzZXR0aW5nIGNoaXAgZm9yICVzXG4iLCByZWFzb24pOworCWF0b21pY19pbmMoJmd0LT5pOTE1LT5ncHVfZXJyb3IucmVzZXRfY291bnQpOwogCi0JYXdha2UgPSByZXNldF9wcmVwYXJlKGk5MTUpOworCWF3YWtlID0gcmVzZXRfcHJlcGFyZShndCk7CiAKLQlpZiAoIWludGVsX2hhc19ncHVfcmVzZXQoaTkxNSkpIHsKKwlpZiAoIWludGVsX2hhc19ncHVfcmVzZXQoZ3QtPmk5MTUpKSB7CiAJCWlmIChpOTE1X21vZHBhcmFtcy5yZXNldCkKLQkJCWRldl9lcnIoaTkxNS0+ZHJtLmRldiwgIkdQVSByZXNldCBub3Qgc3VwcG9ydGVkXG4iKTsKKwkJCWRldl9lcnIoZ3QtPmk5MTUtPmRybS5kZXYsICJHUFUgcmVzZXQgbm90IHN1cHBvcnRlZFxuIik7CiAJCWVsc2UKIAkJCURSTV9ERUJVR19EUklWRVIoIkdQVSByZXNldCBkaXNhYmxlZFxuIik7CiAJCWdvdG8gZXJyb3I7CiAJfQogCi0JaWYgKElOVEVMX0lORk8oaTkxNSktPmdwdV9yZXNldF9jbG9iYmVyc19kaXNwbGF5KQotCQlpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGVfaW50ZXJydXB0cyhpOTE1KTsKKwlpZiAoSU5URUxfSU5GTyhndC0+aTkxNSktPmdwdV9yZXNldF9jbG9iYmVyc19kaXNwbGF5KQorCQlpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGVfaW50ZXJydXB0cyhndC0+aTkxNSk7CiAKLQlpZiAoZG9fcmVzZXQoaTkxNSwgc3RhbGxlZF9tYXNrKSkgewotCQlkZXZfZXJyKGk5MTUtPmRybS5kZXYsICJGYWlsZWQgdG8gcmVzZXQgY2hpcFxuIik7CisJaWYgKGRvX3Jlc2V0KGd0LCBzdGFsbGVkX21hc2spKSB7CisJCWRldl9lcnIoZ3QtPmk5MTUtPmRybS5kZXYsICJGYWlsZWQgdG8gcmVzZXQgY2hpcFxuIik7CiAJCWdvdG8gdGFpbnQ7CiAJfQogCi0JaWYgKElOVEVMX0lORk8oaTkxNSktPmdwdV9yZXNldF9jbG9iYmVyc19kaXNwbGF5KQotCQlpbnRlbF9ydW50aW1lX3BtX2VuYWJsZV9pbnRlcnJ1cHRzKGk5MTUpOworCWlmIChJTlRFTF9JTkZPKGd0LT5pOTE1KS0+Z3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkpCisJCWludGVsX3J1bnRpbWVfcG1fZW5hYmxlX2ludGVycnVwdHMoZ3QtPmk5MTUpOwogCi0JaW50ZWxfb3ZlcmxheV9yZXNldChpOTE1KTsKKwlpbnRlbF9vdmVybGF5X3Jlc2V0KGd0LT5pOTE1KTsKIAogCS8qCiAJICogTmV4dCB3ZSBuZWVkIHRvIHJlc3RvcmUgdGhlIGNvbnRleHQsIGJ1dCB3ZSBkb24ndCB1c2UgdGhvc2UKQEAgLTEwNDMsMjMgKzk3MiwyMyBAQCB2b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJICogd2FzIHJ1bm5pbmcgYXQgdGhlIHRpbWUgb2YgdGhlIHJlc2V0IChpLmUuIHdlIHdlcmVuJ3QgVlQKIAkgKiBzd2l0Y2hlZCBhd2F5KS4KIAkgKi8KLQlyZXQgPSBpOTE1X2dlbV9pbml0X2h3KGk5MTUpOworCXJldCA9IGk5MTVfZ2VtX2luaXRfaHcoZ3QtPmk5MTUpOwogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdGlhbGlzZSBIVyBmb2xsb3dpbmcgcmVzZXQgKCVkKVxuIiwKIAkJCSAgcmV0KTsKIAkJZ290byB0YWludDsKIAl9CiAKLQlyZXQgPSByZXN1bWUoaTkxNSk7CisJcmV0ID0gcmVzdW1lKGd0KTsKIAlpZiAocmV0KQogCQlnb3RvIHRhaW50OwogCi0JaTkxNV9xdWV1ZV9oYW5nY2hlY2soaTkxNSk7CisJaW50ZWxfZ3RfcXVldWVfaGFuZ2NoZWNrKGd0KTsKIAogZmluaXNoOgotCXJlc2V0X2ZpbmlzaChpOTE1LCBhd2FrZSk7CisJcmVzZXRfZmluaXNoKGd0LCBhd2FrZSk7CiB1bmxvY2s6Ci0JbXV0ZXhfdW5sb2NrKCZlcnJvci0+d2VkZ2VfbXV0ZXgpOworCW11dGV4X3VubG9jaygmZ3QtPnJlc2V0Lm11dGV4KTsKIAlyZXR1cm47CiAKIHRhaW50OgpAQCAtMTA3NywxOCArMTAwNiwxNyBAQCB2b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJICovCiAJYWRkX3RhaW50X2Zvcl9DSShUQUlOVF9XQVJOKTsKIGVycm9yOgotCV9faTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKKwlfX2ludGVsX2d0X3NldF93ZWRnZWQoZ3QpOwogCWdvdG8gZmluaXNoOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBpbnRlbF9ndF9yZXNldF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyBpbmxpbmUgaW50IGludGVsX2d0X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0JcmV0dXJuIGludGVsX2dwdV9yZXNldChpOTE1LCBlbmdpbmUtPm1hc2spOworCXJldHVybiBfX2ludGVsX2d0X3Jlc2V0KGVuZ2luZS0+Z3QsIGVuZ2luZS0+bWFzayk7CiB9CiAKIC8qKgotICogaTkxNV9yZXNldF9lbmdpbmUgLSByZXNldCBHUFUgZW5naW5lIHRvIHJlY292ZXIgZnJvbSBhIGhhbmcKKyAqIGludGVsX2VuZ2luZV9yZXNldCAtIHJlc2V0IEdQVSBlbmdpbmUgdG8gcmVjb3ZlciBmcm9tIGEgaGFuZwogICogQGVuZ2luZTogZW5naW5lIHRvIHJlc2V0CiAgKiBAbXNnOiByZWFzb24gZm9yIEdQVSByZXNldDsgb3IgTlVMTCBmb3Igbm8gZGV2X25vdGljZSgpCiAgKgpAQCAtMTEwMCwxMyArMTAyOCwxMyBAQCBzdGF0aWMgaW5saW5lIGludCBpbnRlbF9ndF9yZXNldF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAgKiAgLSByZXNldCBlbmdpbmUgKHdoaWNoIHdpbGwgZm9yY2UgdGhlIGVuZ2luZSB0byBpZGxlKQogICogIC0gcmUtaW5pdC9jb25maWd1cmUgZW5naW5lCiAgKi8KLWludCBpOTE1X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGNvbnN0IGNoYXIgKm1zZykKK2ludCBpbnRlbF9lbmdpbmVfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBjb25zdCBjaGFyICptc2cpCiB7Ci0Jc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvcjsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gZW5naW5lLT5ndDsKIAlpbnQgcmV0OwogCi0JR0VNX1RSQUNFKCIlcyBmbGFncz0lbHhcbiIsIGVuZ2luZS0+bmFtZSwgZXJyb3ItPmZsYWdzKTsKLQlHRU1fQlVHX09OKCF0ZXN0X2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGVuZ2luZS0+aWQsICZlcnJvci0+ZmxhZ3MpKTsKKwlHRU1fVFJBQ0UoIiVzIGZsYWdzPSVseFxuIiwgZW5naW5lLT5uYW1lLCBndC0+cmVzZXQuZmxhZ3MpOworCUdFTV9CVUdfT04oIXRlc3RfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgZW5naW5lLT5pZCwgJmd0LT5yZXNldC5mbGFncykpOwogCiAJaWYgKCFpbnRlbF9lbmdpbmVfcG1fZ2V0X2lmX2F3YWtlKGVuZ2luZSkpCiAJCXJldHVybiAwOwpAQCAtMTExNiwxNiArMTA0NCwxNiBAQCBpbnQgaTkxNV9yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBjb25zdCBjaGFyICptc2cpCiAJaWYgKG1zZykKIAkJZGV2X25vdGljZShlbmdpbmUtPmk5MTUtPmRybS5kZXYsCiAJCQkgICAiUmVzZXR0aW5nICVzIGZvciAlc1xuIiwgZW5naW5lLT5uYW1lLCBtc2cpOwotCWVycm9yLT5yZXNldF9lbmdpbmVfY291bnRbZW5naW5lLT5pZF0rKzsKKwlhdG9taWNfaW5jKCZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvci5yZXNldF9lbmdpbmVfY291bnRbZW5naW5lLT51YWJpX2NsYXNzXSk7CiAKLQlpZiAoIWVuZ2luZS0+aTkxNS0+Z3VjLmV4ZWNidWZfY2xpZW50KQotCQlyZXQgPSBpbnRlbF9ndF9yZXNldF9lbmdpbmUoZW5naW5lLT5pOTE1LCBlbmdpbmUpOworCWlmICghZW5naW5lLT5ndC0+dWMuZ3VjLmV4ZWNidWZfY2xpZW50KQorCQlyZXQgPSBpbnRlbF9ndF9yZXNldF9lbmdpbmUoZW5naW5lKTsKIAllbHNlCi0JCXJldCA9IGludGVsX2d1Y19yZXNldF9lbmdpbmUoJmVuZ2luZS0+aTkxNS0+Z3VjLCBlbmdpbmUpOworCQlyZXQgPSBpbnRlbF9ndWNfcmVzZXRfZW5naW5lKCZlbmdpbmUtPmd0LT51Yy5ndWMsIGVuZ2luZSk7CiAJaWYgKHJldCkgewogCQkvKiBJZiB3ZSBmYWlsIGhlcmUsIHdlIGV4cGVjdCB0byBmYWxsYmFjayB0byBhIGdsb2JhbCByZXNldCAqLwogCQlEUk1fREVCVUdfRFJJVkVSKCIlc0ZhaWxlZCB0byByZXNldCAlcywgcmV0PSVkXG4iLAotCQkJCSBlbmdpbmUtPmk5MTUtPmd1Yy5leGVjYnVmX2NsaWVudCA/ICJHdUMgIiA6ICIiLAorCQkJCSBlbmdpbmUtPmd0LT51Yy5ndWMuZXhlY2J1Zl9jbGllbnQgPyAiR3VDICIgOiAiIiwKIAkJCQkgZW5naW5lLT5uYW1lLCByZXQpOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xMTM1LDcgKzEwNjMsNyBAQCBpbnQgaTkxNV9yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBjb25zdCBjaGFyICptc2cpCiAJICogYWN0aXZlIHJlcXVlc3QgYW5kIGNhbiBkcm9wIGl0LCBhZGp1c3QgaGVhZCB0byBza2lwIHRoZSBvZmZlbmRpbmcKIAkgKiByZXF1ZXN0IHRvIHJlc3VtZSBleGVjdXRpbmcgcmVtYWluaW5nIHJlcXVlc3RzIGluIHRoZSBxdWV1ZS4KIAkgKi8KLQlpbnRlbF9lbmdpbmVfcmVzZXQoZW5naW5lLCB0cnVlKTsKKwlfX2ludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsIHRydWUpOwogCiAJLyoKIAkgKiBUaGUgZW5naW5lIGFuZCBpdHMgcmVnaXN0ZXJzIChhbmQgd29ya2Fyb3VuZHMgaW4gY2FzZSBvZiByZW5kZXIpCkBAIC0xMTUxLDE2ICsxMDc5LDE1IEBAIGludCBpOTE1X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGNvbnN0IGNoYXIgKm1zZykKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCSAgICAgIHUzMiBlbmdpbmVfbWFzaywKLQkJCSAgICAgIGNvbnN0IGNoYXIgKnJlYXNvbikKK3N0YXRpYyB2b2lkIGludGVsX2d0X3Jlc2V0X2dsb2JhbChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkJCSAgdTMyIGVuZ2luZV9tYXNrLAorCQkJCSAgY29uc3QgY2hhciAqcmVhc29uKQogewotCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IgPSAmaTkxNS0+Z3B1X2Vycm9yOwotCXN0cnVjdCBrb2JqZWN0ICprb2JqID0gJmk5MTUtPmRybS5wcmltYXJ5LT5rZGV2LT5rb2JqOworCXN0cnVjdCBrb2JqZWN0ICprb2JqID0gJmd0LT5pOTE1LT5kcm0ucHJpbWFyeS0+a2Rldi0+a29iajsKIAljaGFyICplcnJvcl9ldmVudFtdID0geyBJOTE1X0VSUk9SX1VFVkVOVCAiPTEiLCBOVUxMIH07CiAJY2hhciAqcmVzZXRfZXZlbnRbXSA9IHsgSTkxNV9SRVNFVF9VRVZFTlQgIj0xIiwgTlVMTCB9OwogCWNoYXIgKnJlc2V0X2RvbmVfZXZlbnRbXSA9IHsgSTkxNV9FUlJPUl9VRVZFTlQgIj0wIiwgTlVMTCB9OwotCXN0cnVjdCBpOTE1X3dlZGdlX21lIHc7CisJc3RydWN0IGludGVsX3dlZGdlX21lIHc7CiAKIAlrb2JqZWN0X3VldmVudF9lbnYoa29iaiwgS09CSl9DSEFOR0UsIGVycm9yX2V2ZW50KTsKIApAQCAtMTE2OCwxMzcgKzEwOTUsMjQgQEAgc3RhdGljIHZvaWQgaTkxNV9yZXNldF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJa29iamVjdF91ZXZlbnRfZW52KGtvYmosIEtPQkpfQ0hBTkdFLCByZXNldF9ldmVudCk7CiAKIAkvKiBVc2UgYSB3YXRjaGRvZyB0byBlbnN1cmUgdGhhdCBvdXIgcmVzZXQgY29tcGxldGVzICovCi0JaTkxNV93ZWRnZV9vbl90aW1lb3V0KCZ3LCBpOTE1LCA1ICogSFopIHsKLQkJaW50ZWxfcHJlcGFyZV9yZXNldChpOTE1KTsKKwlpbnRlbF93ZWRnZV9vbl90aW1lb3V0KCZ3LCBndCwgNSAqIEhaKSB7CisJCWludGVsX3ByZXBhcmVfcmVzZXQoZ3QtPmk5MTUpOwogCiAJCS8qIEZsdXNoIGV2ZXJ5b25lIHVzaW5nIGEgcmVzb3VyY2UgYWJvdXQgdG8gYmUgY2xvYmJlcmVkICovCi0JCXN5bmNocm9uaXplX3NyY3VfZXhwZWRpdGVkKCZlcnJvci0+cmVzZXRfYmFja29mZl9zcmN1KTsKKwkJc3luY2hyb25pemVfc3JjdV9leHBlZGl0ZWQoJmd0LT5yZXNldC5iYWNrb2ZmX3NyY3UpOwogCi0JCWk5MTVfcmVzZXQoaTkxNSwgZW5naW5lX21hc2ssIHJlYXNvbik7CisJCWludGVsX2d0X3Jlc2V0KGd0LCBlbmdpbmVfbWFzaywgcmVhc29uKTsKIAotCQlpbnRlbF9maW5pc2hfcmVzZXQoaTkxNSk7CisJCWludGVsX2ZpbmlzaF9yZXNldChndC0+aTkxNSk7CiAJfQogCi0JaWYgKCF0ZXN0X2JpdChJOTE1X1dFREdFRCwgJmVycm9yLT5mbGFncykpCisJaWYgKCF0ZXN0X2JpdChJOTE1X1dFREdFRCwgJmd0LT5yZXNldC5mbGFncykpCiAJCWtvYmplY3RfdWV2ZW50X2Vudihrb2JqLCBLT0JKX0NIQU5HRSwgcmVzZXRfZG9uZV9ldmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIGNsZWFyX3JlZ2lzdGVyKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwgaTkxNV9yZWdfdCByZWcpCi17Ci0JaW50ZWxfdW5jb3JlX3Jtdyh1bmNvcmUsIHJlZywgMCwgMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGdlbjhfY2xlYXJfZW5naW5lX2Vycm9yX3JlZ2lzdGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlHRU42X1JJTkdfRkFVTFRfUkVHX1JNVyhlbmdpbmUsIFJJTkdfRkFVTFRfVkFMSUQsIDApOwotCUdFTjZfUklOR19GQVVMVF9SRUdfUE9TVElOR19SRUFEKGVuZ2luZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNsZWFyX2Vycm9yX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQkgIGludGVsX2VuZ2luZV9tYXNrX3QgZW5naW5lX21hc2spCi17Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmk5MTUtPnVuY29yZTsKLQl1MzIgZWlyOwotCi0JaWYgKCFJU19HRU4oaTkxNSwgMikpCi0JCWNsZWFyX3JlZ2lzdGVyKHVuY29yZSwgUEdUQkxfRVIpOwotCi0JaWYgKElOVEVMX0dFTihpOTE1KSA8IDQpCi0JCWNsZWFyX3JlZ2lzdGVyKHVuY29yZSwgSVBFSVIoUkVOREVSX1JJTkdfQkFTRSkpOwotCWVsc2UKLQkJY2xlYXJfcmVnaXN0ZXIodW5jb3JlLCBJUEVJUl9JOTY1KTsKLQotCWNsZWFyX3JlZ2lzdGVyKHVuY29yZSwgRUlSKTsKLQllaXIgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEVJUik7Ci0JaWYgKGVpcikgewotCQkvKgotCQkgKiBzb21lIGVycm9ycyBtaWdodCBoYXZlIGJlY29tZSBzdHVjaywKLQkJICogbWFzayB0aGVtLgotCQkgKi8KLQkJRFJNX0RFQlVHX0RSSVZFUigiRUlSIHN0dWNrOiAweCUwOHgsIG1hc2tpbmdcbiIsIGVpcik7Ci0JCXJtd19zZXQodW5jb3JlLCBFTVIsIGVpcik7Ci0JCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjJfSUlSLAotCQkJCSAgIEk5MTVfTUFTVEVSX0VSUk9SX0lOVEVSUlVQVCk7Ci0JfQotCi0JaWYgKElOVEVMX0dFTihpOTE1KSA+PSA4KSB7Ci0JCXJtd19jbGVhcih1bmNvcmUsIEdFTjhfUklOR19GQVVMVF9SRUcsIFJJTkdfRkFVTFRfVkFMSUQpOwotCQlpbnRlbF91bmNvcmVfcG9zdGluZ19yZWFkKHVuY29yZSwgR0VOOF9SSU5HX0ZBVUxUX1JFRyk7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPj0gNikgewotCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwotCi0JCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBpOTE1LCBlbmdpbmVfbWFzaywgaWQpCi0JCQlnZW44X2NsZWFyX2VuZ2luZV9lcnJvcl9yZWdpc3RlcihlbmdpbmUpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgZ2VuNl9jaGVja19mYXVsdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQl1MzIgZmF1bHQ7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKLQkJZmF1bHQgPSBHRU42X1JJTkdfRkFVTFRfUkVHX1JFQUQoZW5naW5lKTsKLQkJaWYgKGZhdWx0ICYgUklOR19GQVVMVF9WQUxJRCkgewotCQkJRFJNX0RFQlVHX0RSSVZFUigiVW5leHBlY3RlZCBmYXVsdFxuIgotCQkJCQkgIlx0QWRkcjogMHglMDhseFxuIgotCQkJCQkgIlx0QWRkcmVzcyBzcGFjZTogJXNcbiIKLQkJCQkJICJcdFNvdXJjZSBJRDogJWRcbiIKLQkJCQkJICJcdFR5cGU6ICVkXG4iLAotCQkJCQkgZmF1bHQgJiBQQUdFX01BU0ssCi0JCQkJCSBmYXVsdCAmIFJJTkdfRkFVTFRfR1RUU0VMX01BU0sgPyAiR0dUVCIgOiAiUFBHVFQiLAotCQkJCQkgUklOR19GQVVMVF9TUkNJRChmYXVsdCksCi0JCQkJCSBSSU5HX0ZBVUxUX0ZBVUxUX1RZUEUoZmF1bHQpKTsKLQkJfQotCX0KLX0KLQotc3RhdGljIHZvaWQgZ2VuOF9jaGVja19mYXVsdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXUzMiBmYXVsdCA9IEk5MTVfUkVBRChHRU44X1JJTkdfRkFVTFRfUkVHKTsKLQotCWlmIChmYXVsdCAmIFJJTkdfRkFVTFRfVkFMSUQpIHsKLQkJdTMyIGZhdWx0X2RhdGEwLCBmYXVsdF9kYXRhMTsKLQkJdTY0IGZhdWx0X2FkZHI7Ci0KLQkJZmF1bHRfZGF0YTAgPSBJOTE1X1JFQUQoR0VOOF9GQVVMVF9UTEJfREFUQTApOwotCQlmYXVsdF9kYXRhMSA9IEk5MTVfUkVBRChHRU44X0ZBVUxUX1RMQl9EQVRBMSk7Ci0JCWZhdWx0X2FkZHIgPSAoKHU2NCkoZmF1bHRfZGF0YTEgJiBGQVVMVF9WQV9ISUdIX0JJVFMpIDw8IDQ0KSB8Ci0JCQkgICAgICgodTY0KWZhdWx0X2RhdGEwIDw8IDEyKTsKLQotCQlEUk1fREVCVUdfRFJJVkVSKCJVbmV4cGVjdGVkIGZhdWx0XG4iCi0JCQkJICJcdEFkZHI6IDB4JTA4eF8lMDh4XG4iCi0JCQkJICJcdEFkZHJlc3Mgc3BhY2U6ICVzXG4iCi0JCQkJICJcdEVuZ2luZSBJRDogJWRcbiIKLQkJCQkgIlx0U291cmNlIElEOiAlZFxuIgotCQkJCSAiXHRUeXBlOiAlZFxuIiwKLQkJCQkgdXBwZXJfMzJfYml0cyhmYXVsdF9hZGRyKSwKLQkJCQkgbG93ZXJfMzJfYml0cyhmYXVsdF9hZGRyKSwKLQkJCQkgZmF1bHRfZGF0YTEgJiBGQVVMVF9HVFRfU0VMID8gIkdHVFQiIDogIlBQR1RUIiwKLQkJCQkgR0VOOF9SSU5HX0ZBVUxUX0VOR0lORV9JRChmYXVsdCksCi0JCQkJIFJJTkdfRkFVTFRfU1JDSUQoZmF1bHQpLAotCQkJCSBSSU5HX0ZBVUxUX0ZBVUxUX1RZUEUoZmF1bHQpKTsKLQl9Ci19Ci0KLXZvaWQgaTkxNV9jaGVja19hbmRfY2xlYXJfZmF1bHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCS8qIEZyb20gR0VOOCBvbndhcmRzIHdlIG9ubHkgaGF2ZSBvbmUgJ0FsbCBFbmdpbmUgRmF1bHQgUmVnaXN0ZXInICovCi0JaWYgKElOVEVMX0dFTihpOTE1KSA+PSA4KQotCQlnZW44X2NoZWNrX2ZhdWx0cyhpOTE1KTsKLQllbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPj0gNikKLQkJZ2VuNl9jaGVja19mYXVsdHMoaTkxNSk7Ci0JZWxzZQotCQlyZXR1cm47Ci0KLQljbGVhcl9lcnJvcl9yZWdpc3RlcnMoaTkxNSwgQUxMX0VOR0lORVMpOwotfQotCiAvKioKLSAqIGk5MTVfaGFuZGxlX2Vycm9yIC0gaGFuZGxlIGEgZ3B1IGVycm9yCi0gKiBAaTkxNTogaTkxNSBkZXZpY2UgcHJpdmF0ZQorICogaW50ZWxfZ3RfaGFuZGxlX2Vycm9yIC0gaGFuZGxlIGEgZ3B1IGVycm9yCisgKiBAZ3Q6IHRoZSBpbnRlbF9ndAogICogQGVuZ2luZV9tYXNrOiBtYXNrIHJlcHJlc2VudGluZyBlbmdpbmVzIHRoYXQgYXJlIGh1bmcKICAqIEBmbGFnczogY29udHJvbCBmbGFncwogICogQGZtdDogRXJyb3IgbWVzc2FnZSBmb3JtYXQgc3RyaW5nCkBAIC0xMzA5LDEyICsxMTIzLDExIEBAIHZvaWQgaTkxNV9jaGVja19hbmRfY2xlYXJfZmF1bHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogICogc28gdXNlcnNwYWNlIGtub3dzIHNvbWV0aGluZyBiYWQgaGFwcGVuZWQgKHNob3VsZCB0cmlnZ2VyIGNvbGxlY3Rpb24KICAqIG9mIGEgcmluZyBkdW1wIGV0Yy4pLgogICovCi12b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkgICAgICAgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaywKLQkJICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCi0JCSAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLikKK3ZvaWQgaW50ZWxfZ3RfaGFuZGxlX2Vycm9yKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCisJCQkgICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrLAorCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncywKKwkJCSAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewotCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IgPSAmaTkxNS0+Z3B1X2Vycm9yOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAlpbnRlbF9lbmdpbmVfbWFza190IHRtcDsKQEAgLTEzMzgsMzMgKzExNTEsMzEgQEAgdm9pZCBpOTE1X2hhbmRsZV9lcnJvcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkgKiBpc24ndCB0aGUgY2FzZSBhdCBsZWFzdCB3aGVuIHdlIGdldCBoZXJlIGJ5IGRvaW5nIGEKIAkgKiBzaW11bGF0ZWQgcmVzZXQgdmlhIGRlYnVnZnMsIHNvIGdldCBhbiBSUE0gcmVmZXJlbmNlLgogCSAqLwotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZndC0+aTkxNS0+cnVudGltZV9wbSk7CiAKLQllbmdpbmVfbWFzayAmPSBJTlRFTF9JTkZPKGk5MTUpLT5lbmdpbmVfbWFzazsKKwllbmdpbmVfbWFzayAmPSBJTlRFTF9JTkZPKGd0LT5pOTE1KS0+ZW5naW5lX21hc2s7CiAKIAlpZiAoZmxhZ3MgJiBJOTE1X0VSUk9SX0NBUFRVUkUpIHsKLQkJaTkxNV9jYXB0dXJlX2Vycm9yX3N0YXRlKGk5MTUsIGVuZ2luZV9tYXNrLCBtc2cpOwotCQljbGVhcl9lcnJvcl9yZWdpc3RlcnMoaTkxNSwgZW5naW5lX21hc2spOworCQlpOTE1X2NhcHR1cmVfZXJyb3Jfc3RhdGUoZ3QtPmk5MTUsIGVuZ2luZV9tYXNrLCBtc2cpOworCQlpbnRlbF9ndF9jbGVhcl9lcnJvcl9yZWdpc3RlcnMoZ3QsIGVuZ2luZV9tYXNrKTsKIAl9CiAKIAkvKgogCSAqIFRyeSBlbmdpbmUgcmVzZXQgd2hlbiBhdmFpbGFibGUuIFdlIGZhbGwgYmFjayB0byBmdWxsIHJlc2V0IGlmCiAJICogc2luZ2xlIHJlc2V0IGZhaWxzLgogCSAqLwotCWlmIChpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGk5MTUpICYmICFfX2k5MTVfd2VkZ2VkKGVycm9yKSkgewotCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgaTkxNSwgZW5naW5lX21hc2ssIHRtcCkgeworCWlmIChpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGd0LT5pOTE1KSAmJiAhaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSkgeworCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QtPmk5MTUsIGVuZ2luZV9tYXNrLCB0bXApIHsKIAkJCUJVSUxEX0JVR19PTihJOTE1X1JFU0VUX01PREVTRVQgPj0gSTkxNV9SRVNFVF9FTkdJTkUpOwogCQkJaWYgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLAotCQkJCQkgICAgICZlcnJvci0+ZmxhZ3MpKQorCQkJCQkgICAgICZndC0+cmVzZXQuZmxhZ3MpKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAoaTkxNV9yZXNldF9lbmdpbmUoZW5naW5lLCBtc2cpID09IDApCisJCQlpZiAoaW50ZWxfZW5naW5lX3Jlc2V0KGVuZ2luZSwgbXNnKSA9PSAwKQogCQkJCWVuZ2luZV9tYXNrICY9IH5lbmdpbmUtPm1hc2s7CiAKLQkJCWNsZWFyX2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGVuZ2luZS0+aWQsCi0JCQkJICAmZXJyb3ItPmZsYWdzKTsKLQkJCXdha2VfdXBfYml0KCZlcnJvci0+ZmxhZ3MsCi0JCQkJICAgIEk5MTVfUkVTRVRfRU5HSU5FICsgZW5naW5lLT5pZCk7CisJCQljbGVhcl9hbmRfd2FrZV91cF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLAorCQkJCQkgICAgICAmZ3QtPnJlc2V0LmZsYWdzKTsKIAkJfQogCX0KIApAQCAtMTM3Miw5ICsxMTgzLDkgQEAgdm9pZCBpOTE1X2hhbmRsZV9lcnJvcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJZ290byBvdXQ7CiAKIAkvKiBGdWxsIHJlc2V0IG5lZWRzIHRoZSBtdXRleCwgc3RvcCBhbnkgb3RoZXIgdXNlciB0cnlpbmcgdG8gZG8gc28uICovCi0JaWYgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAmZXJyb3ItPmZsYWdzKSkgewotCQl3YWl0X2V2ZW50KGVycm9yLT5yZXNldF9xdWV1ZSwKLQkJCSAgICF0ZXN0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZlcnJvci0+ZmxhZ3MpKTsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZndC0+cmVzZXQuZmxhZ3MpKSB7CisJCXdhaXRfZXZlbnQoZ3QtPnJlc2V0LnF1ZXVlLAorCQkJICAgIXRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmd0LT5yZXNldC5mbGFncykpOwogCQlnb3RvIG91dDsgLyogcGlnZ3ktYmFjayBvbiB0aGUgb3RoZXIgcmVzZXQgKi8KIAl9CiAKQEAgLTEzODIsMTEzICsxMTkzLDExOSBAQCB2b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXN5bmNocm9uaXplX3JjdV9leHBlZGl0ZWQoKTsKIAogCS8qIFByZXZlbnQgYW55IG90aGVyIHJlc2V0LWVuZ2luZSBhdHRlbXB0LiAqLwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIHRtcCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCB0bXApIHsKIAkJd2hpbGUgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLAotCQkJCQkmZXJyb3ItPmZsYWdzKSkKLQkJCXdhaXRfb25fYml0KCZlcnJvci0+ZmxhZ3MsCisJCQkJCSZndC0+cmVzZXQuZmxhZ3MpKQorCQkJd2FpdF9vbl9iaXQoJmd0LT5yZXNldC5mbGFncywKIAkJCQkgICAgSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLAogCQkJCSAgICBUQVNLX1VOSU5URVJSVVBUSUJMRSk7CiAJfQogCi0JaTkxNV9yZXNldF9kZXZpY2UoaTkxNSwgZW5naW5lX21hc2ssIG1zZyk7CisJaW50ZWxfZ3RfcmVzZXRfZ2xvYmFsKGd0LCBlbmdpbmVfbWFzaywgbXNnKTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIHRtcCkgewotCQljbGVhcl9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLAotCQkJICAmZXJyb3ItPmZsYWdzKTsKLQl9Ci0KLQljbGVhcl9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAmZXJyb3ItPmZsYWdzKTsKLQl3YWtlX3VwX2FsbCgmZXJyb3ItPnJlc2V0X3F1ZXVlKTsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgdG1wKQorCQljbGVhcl9iaXRfdW5sb2NrKEk5MTVfUkVTRVRfRU5HSU5FICsgZW5naW5lLT5pZCwKKwkJCQkgJmd0LT5yZXNldC5mbGFncyk7CisJY2xlYXJfYml0X3VubG9jayhJOTE1X1JFU0VUX0JBQ0tPRkYsICZndC0+cmVzZXQuZmxhZ3MpOworCXNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7CisJd2FrZV91cF9hbGwoJmd0LT5yZXNldC5xdWV1ZSk7CiAKIG91dDoKLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmd0LT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIH0KIAotaW50IGk5MTVfcmVzZXRfdHJ5bG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK2ludCBpbnRlbF9ndF9yZXNldF90cnlsb2NrKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7Ci0Jc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJyb3I7CiAJaW50IHNyY3U7CiAKLQltaWdodF9sb2NrKCZlcnJvci0+cmVzZXRfYmFja29mZl9zcmN1KTsKKwltaWdodF9sb2NrKCZndC0+cmVzZXQuYmFja29mZl9zcmN1KTsKIAltaWdodF9zbGVlcCgpOwogCiAJcmN1X3JlYWRfbG9jaygpOwotCXdoaWxlICh0ZXN0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZlcnJvci0+ZmxhZ3MpKSB7CisJd2hpbGUgKHRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmd0LT5yZXNldC5mbGFncykpIHsKIAkJcmN1X3JlYWRfdW5sb2NrKCk7CiAKLQkJaWYgKHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShlcnJvci0+cmVzZXRfcXVldWUsCisJCWlmICh3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoZ3QtPnJlc2V0LnF1ZXVlLAogCQkJCQkgICAgICF0ZXN0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsCi0JCQkJCQkgICAgICAgJmVycm9yLT5mbGFncykpKQorCQkJCQkJICAgICAgICZndC0+cmVzZXQuZmxhZ3MpKSkKIAkJCXJldHVybiAtRUlOVFI7CiAKIAkJcmN1X3JlYWRfbG9jaygpOwogCX0KLQlzcmN1ID0gc3JjdV9yZWFkX2xvY2soJmVycm9yLT5yZXNldF9iYWNrb2ZmX3NyY3UpOworCXNyY3UgPSBzcmN1X3JlYWRfbG9jaygmZ3QtPnJlc2V0LmJhY2tvZmZfc3JjdSk7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlyZXR1cm4gc3JjdTsKIH0KIAotdm9pZCBpOTE1X3Jlc2V0X3VubG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgaW50IHRhZykKLV9fcmVsZWFzZXMoJmk5MTUtPmdwdV9lcnJvci5yZXNldF9iYWNrb2ZmX3NyY3UpCit2b2lkIGludGVsX2d0X3Jlc2V0X3VubG9jayhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBpbnQgdGFnKQorX19yZWxlYXNlcygmZ3QtPnJlc2V0LmJhY2tvZmZfc3JjdSkKIHsKLQlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yID0gJmk5MTUtPmdwdV9lcnJvcjsKLQotCXNyY3VfcmVhZF91bmxvY2soJmVycm9yLT5yZXNldF9iYWNrb2ZmX3NyY3UsIHRhZyk7CisJc3JjdV9yZWFkX3VubG9jaygmZ3QtPnJlc2V0LmJhY2tvZmZfc3JjdSwgdGFnKTsKIH0KIAotaW50IGk5MTVfdGVybWluYWxseV93ZWRnZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitpbnQgaW50ZWxfZ3RfdGVybWluYWxseV93ZWRnZWQoc3RydWN0IGludGVsX2d0ICpndCkKIHsKLQlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yID0gJmk5MTUtPmdwdV9lcnJvcjsKLQogCW1pZ2h0X3NsZWVwKCk7CiAKLQlpZiAoIV9faTkxNV93ZWRnZWQoZXJyb3IpKQorCWlmICghaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSkKIAkJcmV0dXJuIDA7CiAKIAkvKiBSZXNldCBzdGlsbCBpbiBwcm9ncmVzcz8gTWF5YmUgd2Ugd2lsbCByZWNvdmVyPyAqLwotCWlmICghdGVzdF9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAmZXJyb3ItPmZsYWdzKSkKKwlpZiAoIXRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmd0LT5yZXNldC5mbGFncykpCiAJCXJldHVybiAtRUlPOwogCiAJLyogWFhYIGludGVsX3Jlc2V0X2ZpbmlzaCgpIHN0aWxsIHRha2VzIHN0cnVjdF9tdXRleCEhISAqLwotCWlmIChtdXRleF9pc19sb2NrZWQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpKQorCWlmIChtdXRleF9pc19sb2NrZWQoJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KSkKIAkJcmV0dXJuIC1FQUdBSU47CiAKLQlpZiAod2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGVycm9yLT5yZXNldF9xdWV1ZSwKKwlpZiAod2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGd0LT5yZXNldC5xdWV1ZSwKIAkJCQkgICAgICF0ZXN0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsCi0JCQkJCSAgICAgICAmZXJyb3ItPmZsYWdzKSkpCisJCQkJCSAgICAgICAmZ3QtPnJlc2V0LmZsYWdzKSkpCiAJCXJldHVybiAtRUlOVFI7CiAKLQlyZXR1cm4gX19pOTE1X3dlZGdlZChlcnJvcikgPyAtRUlPIDogMDsKKwlyZXR1cm4gaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSA/IC1FSU8gOiAwOwogfQogCi1zdGF0aWMgdm9pZCBpOTE1X3dlZGdlX21lKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3ZvaWQgaW50ZWxfZ3RfaW5pdF9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCXN0cnVjdCBpOTE1X3dlZGdlX21lICp3ID0gY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqdyksIHdvcmsud29yayk7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmZ3QtPnJlc2V0LnF1ZXVlKTsKKwltdXRleF9pbml0KCZndC0+cmVzZXQubXV0ZXgpOworCWluaXRfc3JjdV9zdHJ1Y3QoJmd0LT5yZXNldC5iYWNrb2ZmX3NyY3UpOworfQogCi0JZGV2X2Vycih3LT5pOTE1LT5kcm0uZGV2LAordm9pZCBpbnRlbF9ndF9maW5pX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJY2xlYW51cF9zcmN1X3N0cnVjdCgmZ3QtPnJlc2V0LmJhY2tvZmZfc3JjdSk7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX3dlZGdlX21lKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgaW50ZWxfd2VkZ2VfbWUgKncgPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9mKCp3KSwgd29yay53b3JrKTsKKworCWRldl9lcnIody0+Z3QtPmk5MTUtPmRybS5kZXYsCiAJCSIlcyB0aW1lZCBvdXQsIGNhbmNlbGxpbmcgYWxsIGluLWZsaWdodCByZW5kZXJpbmcuXG4iLAogCQl3LT5uYW1lKTsKLQlpOTE1X2dlbV9zZXRfd2VkZ2VkKHctPmk5MTUpOworCWludGVsX2d0X3NldF93ZWRnZWQody0+Z3QpOwogfQogCi12b2lkIF9faTkxNV9pbml0X3dlZGdlKHN0cnVjdCBpOTE1X3dlZGdlX21lICp3LAotCQkgICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCSAgICAgICBsb25nIHRpbWVvdXQsCi0JCSAgICAgICBjb25zdCBjaGFyICpuYW1lKQordm9pZCBfX2ludGVsX2luaXRfd2VkZ2Uoc3RydWN0IGludGVsX3dlZGdlX21lICp3LAorCQkJc3RydWN0IGludGVsX2d0ICpndCwKKwkJCWxvbmcgdGltZW91dCwKKwkJCWNvbnN0IGNoYXIgKm5hbWUpCiB7Ci0Jdy0+aTkxNSA9IGk5MTU7CisJdy0+Z3QgPSBndDsKIAl3LT5uYW1lID0gbmFtZTsKIAotCUlOSVRfREVMQVlFRF9XT1JLX09OU1RBQ0soJnctPndvcmssIGk5MTVfd2VkZ2VfbWUpOworCUlOSVRfREVMQVlFRF9XT1JLX09OU1RBQ0soJnctPndvcmssIGludGVsX3dlZGdlX21lKTsKIAlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnctPndvcmssIHRpbWVvdXQpOwogfQogCi12b2lkIF9faTkxNV9maW5pX3dlZGdlKHN0cnVjdCBpOTE1X3dlZGdlX21lICp3KQordm9pZCBfX2ludGVsX2Zpbmlfd2VkZ2Uoc3RydWN0IGludGVsX3dlZGdlX21lICp3KQogewogCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmdy0+d29yayk7CiAJZGVzdHJveV9kZWxheWVkX3dvcmtfb25fc3RhY2soJnctPndvcmspOwotCXctPmk5MTUgPSBOVUxMOworCXctPmd0ID0gTlVMTDsKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmgKaW5kZXggNTgwZWJkYi4uMzdhOTg3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5oCkBAIC0xMSw1OCArMTEsNjcgQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NyY3UuaD4KIAotI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV90eXBlcy5oIgorI2luY2x1ZGUgImludGVsX2VuZ2luZV90eXBlcy5oIgorI2luY2x1ZGUgImludGVsX3Jlc2V0X3R5cGVzLmgiCiAKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogc3RydWN0IGk5MTVfcmVxdWVzdDsKIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3M7CitzdHJ1Y3QgaW50ZWxfZ3Q7CiBzdHJ1Y3QgaW50ZWxfZ3VjOwogCit2b2lkIGludGVsX2d0X2luaXRfcmVzZXQoc3RydWN0IGludGVsX2d0ICpndCk7Cit2b2lkIGludGVsX2d0X2ZpbmlfcmVzZXQoc3RydWN0IGludGVsX2d0ICpndCk7CisKIF9fcHJpbnRmKDQsIDUpCi12b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkgICAgICAgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaywKLQkJICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCi0JCSAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7Cit2b2lkIGludGVsX2d0X2hhbmRsZV9lcnJvcihzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkJICAgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaywKKwkJCSAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCisJCQkgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CiAjZGVmaW5lIEk5MTVfRVJST1JfQ0FQVFVSRSBCSVQoMCkKIAotdm9pZCBpOTE1X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwordm9pZCBpbnRlbF9ndF9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkgICAgaW50ZWxfZW5naW5lX21hc2tfdCBzdGFsbGVkX21hc2ssCisJCSAgICBjb25zdCBjaGFyICpyZWFzb24pOworaW50IGludGVsX2VuZ2luZV9yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCSAgICAgICBjb25zdCBjaGFyICpyZWFzb24pOwogCi12b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCWludGVsX2VuZ2luZV9tYXNrX3Qgc3RhbGxlZF9tYXNrLAotCQljb25zdCBjaGFyICpyZWFzb24pOwotaW50IGk5MTVfcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKLQkJICAgICAgY29uc3QgY2hhciAqcmVhc29uKTsKK3ZvaWQgX19pOTE1X3JlcXVlc3RfcmVzZXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGJvb2wgZ3VpbHR5KTsKIAotdm9pZCBpOTE1X3Jlc2V0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGJvb2wgZ3VpbHR5KTsKK2ludCBfX211c3RfY2hlY2sgaW50ZWxfZ3RfcmVzZXRfdHJ5bG9jayhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKK3ZvaWQgaW50ZWxfZ3RfcmVzZXRfdW5sb2NrKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGludCB0YWcpOwogCi1pbnQgX19tdXN0X2NoZWNrIGk5MTVfcmVzZXRfdHJ5bG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci12b2lkIGk5MTVfcmVzZXRfdW5sb2NrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpbnQgdGFnKTsKK3ZvaWQgaW50ZWxfZ3Rfc2V0X3dlZGdlZChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKK2Jvb2wgaW50ZWxfZ3RfdW5zZXRfd2VkZ2VkKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOworaW50IGludGVsX2d0X3Rlcm1pbmFsbHlfd2VkZ2VkKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwogCi1pbnQgaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CitpbnQgX19pbnRlbF9ndF9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrKTsKIAotYm9vbCBpbnRlbF9oYXNfZ3B1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLWJvb2wgaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CitpbnQgaW50ZWxfcmVzZXRfZ3VjKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwogCi1pbnQgaW50ZWxfZ3B1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkgICAgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzayk7Ci0KLWludCBpbnRlbF9yZXNldF9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotCi1zdHJ1Y3QgaTkxNV93ZWRnZV9tZSB7CitzdHJ1Y3QgaW50ZWxfd2VkZ2VfbWUgewogCXN0cnVjdCBkZWxheWVkX3dvcmsgd29yazsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0OwogCWNvbnN0IGNoYXIgKm5hbWU7CiB9OwogCi12b2lkIF9faTkxNV9pbml0X3dlZGdlKHN0cnVjdCBpOTE1X3dlZGdlX21lICp3LAotCQkgICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCSAgICAgICBsb25nIHRpbWVvdXQsCi0JCSAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKLXZvaWQgX19pOTE1X2Zpbmlfd2VkZ2Uoc3RydWN0IGk5MTVfd2VkZ2VfbWUgKncpOwordm9pZCBfX2ludGVsX2luaXRfd2VkZ2Uoc3RydWN0IGludGVsX3dlZGdlX21lICp3LAorCQkJc3RydWN0IGludGVsX2d0ICpndCwKKwkJCWxvbmcgdGltZW91dCwKKwkJCWNvbnN0IGNoYXIgKm5hbWUpOwordm9pZCBfX2ludGVsX2Zpbmlfd2VkZ2Uoc3RydWN0IGludGVsX3dlZGdlX21lICp3KTsKIAotI2RlZmluZSBpOTE1X3dlZGdlX29uX3RpbWVvdXQoVywgREVWLCBUSU1FT1VUKQkJCQlcCi0JZm9yIChfX2k5MTVfaW5pdF93ZWRnZSgoVyksIChERVYpLCAoVElNRU9VVCksIF9fZnVuY19fKTsJXAotCSAgICAgKFcpLT5pOTE1OwkJCQkJCQlcCi0JICAgICBfX2k5MTVfZmluaV93ZWRnZSgoVykpKQorI2RlZmluZSBpbnRlbF93ZWRnZV9vbl90aW1lb3V0KFcsIEdULCBUSU1FT1VUKQkJCQlcCisJZm9yIChfX2ludGVsX2luaXRfd2VkZ2UoKFcpLCAoR1QpLCAoVElNRU9VVCksIF9fZnVuY19fKTsJXAorCSAgICAgKFcpLT5ndDsJCQkJCQkJXAorCSAgICAgX19pbnRlbF9maW5pX3dlZGdlKChXKSkpCisKK3N0YXRpYyBpbmxpbmUgYm9vbCBfX2ludGVsX3Jlc2V0X2ZhaWxlZChjb25zdCBzdHJ1Y3QgaW50ZWxfcmVzZXQgKnJlc2V0KQoreworCXJldHVybiB1bmxpa2VseSh0ZXN0X2JpdChJOTE1X1dFREdFRCwgJnJlc2V0LT5mbGFncykpOworfQorCitib29sIGludGVsX2hhc19ncHVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworYm9vbCBpbnRlbF9oYXNfcmVzZXRfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIAogI2VuZGlmIC8qIEk5MTVfUkVTRVRfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXRfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0X3R5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE5NjgzNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0X3R5cGVzLmgKQEAgLTAsMCArMSw1MCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfX0lOVEVMX1JFU0VUX1RZUEVTX0hfCisjZGVmaW5lIF9fSU5URUxfUkVTRVRfVFlQRVNfSF8KKworI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NyY3UuaD4KKworc3RydWN0IGludGVsX3Jlc2V0IHsKKwkvKioKKwkgKiBmbGFnczogQ29udHJvbCB2YXJpb3VzIHN0YWdlcyBvZiB0aGUgR1BVIHJlc2V0CisJICoKKwkgKiAjSTkxNV9SRVNFVF9CQUNLT0ZGIC0gV2hlbiB3ZSBzdGFydCBhIGdsb2JhbCByZXNldCwgd2UgbmVlZCB0bworCSAqIHNlcmlhbGlzZSB3aXRoIGFueSBvdGhlciB1c2VycyBhdHRlbXB0aW5nIHRvIGRvIHRoZSBzYW1lLCBhbmQKKwkgKiBhbnkgZ2xvYmFsIHJlc291cmNlcyB0aGF0IG1heSBiZSBjbG9iYmVyIGJ5IHRoZSByZXNldCAoc3VjaCBhcworCSAqIEZFTkNFIHJlZ2lzdGVycykuCisJICoKKwkgKiAjSTkxNV9SRVNFVF9FTkdJTkVbbnVtX2VuZ2luZXNdIC0gU2luY2UgdGhlIGRyaXZlciBkb2Vzbid0IG5lZWQgdG8KKwkgKiBhY3F1aXJlIHRoZSBzdHJ1Y3RfbXV0ZXggdG8gcmVzZXQgYW4gZW5naW5lLCB3ZSBuZWVkIGFuIGV4cGxpY2l0CisJICogZmxhZyB0byBwcmV2ZW50IHR3byBjb25jdXJyZW50IHJlc2V0IGF0dGVtcHRzIGluIHRoZSBzYW1lIGVuZ2luZS4KKwkgKiBBcyB0aGUgbnVtYmVyIG9mIGVuZ2luZXMgY29udGludWVzIHRvIGdyb3csIGFsbG9jYXRlIHRoZSBmbGFncyBmcm9tCisJICogdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0cy4KKwkgKgorCSAqICNJOTE1X1dFREdFRCAtIElmIHJlc2V0IGZhaWxzIGFuZCB3ZSBjYW4gbm8gbG9uZ2VyIHVzZSB0aGUgR1BVLAorCSAqIHdlIHNldCB0aGUgI0k5MTVfV0VER0VEIGJpdC4gUHJpb3IgdG8gY29tbWFuZCBzdWJtaXNzaW9uLCBlLmcuCisJICogaTkxNV9yZXF1ZXN0X2FsbG9jKCksIHRoaXMgYml0IGlzIGNoZWNrZWQgYW5kIHRoZSBzZXF1ZW5jZQorCSAqIGFib3J0ZWQgKHdpdGggLUVJTyByZXBvcnRlZCB0byB1c2Vyc3BhY2UpIGlmIHNldC4KKwkgKi8KKwl1bnNpZ25lZCBsb25nIGZsYWdzOworI2RlZmluZSBJOTE1X1JFU0VUX0JBQ0tPRkYJMAorI2RlZmluZSBJOTE1X1JFU0VUX01PREVTRVQJMQorI2RlZmluZSBJOTE1X1JFU0VUX0VOR0lORQkyCisjZGVmaW5lIEk5MTVfV0VER0VECQkoQklUU19QRVJfTE9ORyAtIDEpCisKKwlzdHJ1Y3QgbXV0ZXggbXV0ZXg7IC8qIHNlcmlhbGlzZXMgd2VkZ2luZy91bndlZGdpbmcgKi8KKworCS8qKgorCSAqIFdhaXRxdWV1ZSB0byBzaWduYWwgd2hlbiB0aGUgcmVzZXQgaGFzIGNvbXBsZXRlZC4gVXNlZCBieSBjbGllbnRzCisJICogdGhhdCB3YWl0IGZvciBkZXZfcHJpdi0+bW0ud2VkZ2VkIHRvIHNldHRsZS4KKwkgKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCBxdWV1ZTsKKworCXN0cnVjdCBzcmN1X3N0cnVjdCBiYWNrb2ZmX3NyY3U7Cit9OworCisjZW5kaWYgLyogX0lOVEVMX1JFU0VUX1RZUEVTX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggMTIwMTBlNy4uNjAxYzE2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtMzQsOSArMzQsMTEgQEAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY29udGV4dC5oIgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpOTE1X2dlbV9yZW5kZXJfc3RhdGUuaCIKICNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfY29udGV4dC5oIgorI2luY2x1ZGUgImludGVsX2d0LmgiCisjaW5jbHVkZSAiaW50ZWxfZ3RfaXJxLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3RfcG1faXJxLmgiCiAjaW5jbHVkZSAiaW50ZWxfcmVzZXQuaCIKICNpbmNsdWRlICJpbnRlbF93b3JrYXJvdW5kcy5oIgogCkBAIC03NSw3ICs3Nyw4IEBAIGdlbjJfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiBtb2RlKQogCSpjcysrID0gY21kOwogCXdoaWxlIChudW1fc3RvcmVfZHctLSkgewogCQkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTSB8IE1JX01FTV9WSVJUVUFMOwotCQkqY3MrKyA9IGk5MTVfc2NyYXRjaF9vZmZzZXQocnEtPmk5MTUpOworCQkqY3MrKyA9IGludGVsX2d0X3NjcmF0Y2hfb2Zmc2V0KHJxLT5lbmdpbmUtPmd0LAorCQkJCQkJSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9ERUZBVUxUKTsKIAkJKmNzKysgPSAwOwogCX0KIAkqY3MrKyA9IE1JX0ZMVVNIIHwgTUlfTk9fV1JJVEVfRkxVU0g7CkBAIC0xNDgsNyArMTUxLDkgQEAgZ2VuNF9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIG1vZGUpCiAJICovCiAJaWYgKG1vZGUgJiBFTUlUX0lOVkFMSURBVEUpIHsKIAkJKmNzKysgPSBHRlhfT1BfUElQRV9DT05UUk9MKDQpIHwgUElQRV9DT05UUk9MX1FXX1dSSVRFOwotCQkqY3MrKyA9IGk5MTVfc2NyYXRjaF9vZmZzZXQocnEtPmk5MTUpIHwgUElQRV9DT05UUk9MX0dMT0JBTF9HVFQ7CisJCSpjcysrID0gaW50ZWxfZ3Rfc2NyYXRjaF9vZmZzZXQocnEtPmVuZ2luZS0+Z3QsCisJCQkJCQlJTlRFTF9HVF9TQ1JBVENIX0ZJRUxEX0RFRkFVTFQpIHwKKwkJCVBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUOwogCQkqY3MrKyA9IDA7CiAJCSpjcysrID0gMDsKIApAQCAtMTU2LDcgKzE2MSw5IEBAIGdlbjRfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiBtb2RlKQogCQkJKmNzKysgPSBNSV9GTFVTSDsKIAogCQkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRST0xfUVdfV1JJVEU7Ci0JCSpjcysrID0gaTkxNV9zY3JhdGNoX29mZnNldChycS0+aTkxNSkgfCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVDsKKwkJKmNzKysgPSBpbnRlbF9ndF9zY3JhdGNoX29mZnNldChycS0+ZW5naW5lLT5ndCwKKwkJCQkJCUlOVEVMX0dUX1NDUkFUQ0hfRklFTERfREVGQVVMVCkgfAorCQkJUElQRV9DT05UUk9MX0dMT0JBTF9HVFQ7CiAJCSpjcysrID0gMDsKIAkJKmNzKysgPSAwOwogCX0KQEAgLTIwOCw3ICsyMTUsOSBAQCBnZW40X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgbW9kZSkKIHN0YXRpYyBpbnQKIGdlbjZfZW1pdF9wb3N0X3N5bmNfbm9uemVyb19mbHVzaChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKLQl1MzIgc2NyYXRjaF9hZGRyID0gaTkxNV9zY3JhdGNoX29mZnNldChycS0+aTkxNSkgKyAyICogQ0FDSEVMSU5FX0JZVEVTOworCXUzMiBzY3JhdGNoX2FkZHIgPQorCQlpbnRlbF9ndF9zY3JhdGNoX29mZnNldChycS0+ZW5naW5lLT5ndCwKKwkJCQkJSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9SRU5ERVJfRkxVU0gpOwogCXUzMiAqY3M7CiAKIAljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDYpOwpAQCAtMjQxLDcgKzI1MCw5IEBAIGdlbjZfZW1pdF9wb3N0X3N5bmNfbm9uemVyb19mbHVzaChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHN0YXRpYyBpbnQKIGdlbjZfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiBtb2RlKQogewotCXUzMiBzY3JhdGNoX2FkZHIgPSBpOTE1X3NjcmF0Y2hfb2Zmc2V0KHJxLT5pOTE1KSArIDIgKiBDQUNIRUxJTkVfQllURVM7CisJdTMyIHNjcmF0Y2hfYWRkciA9CisJCWludGVsX2d0X3NjcmF0Y2hfb2Zmc2V0KHJxLT5lbmdpbmUtPmd0LAorCQkJCQlJTlRFTF9HVF9TQ1JBVENIX0ZJRUxEX1JFTkRFUl9GTFVTSCk7CiAJdTMyICpjcywgZmxhZ3MgPSAwOwogCWludCByZXQ7CiAKQEAgLTI5OSw3ICszMTAsOSBAQCBzdGF0aWMgdTMyICpnZW42X3Jjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCiAKIAkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCk7CiAJKmNzKysgPSBQSVBFX0NPTlRST0xfUVdfV1JJVEU7Ci0JKmNzKysgPSBpOTE1X3NjcmF0Y2hfb2Zmc2V0KHJxLT5pOTE1KSB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUOworCSpjcysrID0gaW50ZWxfZ3Rfc2NyYXRjaF9vZmZzZXQocnEtPmVuZ2luZS0+Z3QsCisJCQkJCUlOVEVMX0dUX1NDUkFUQ0hfRklFTERfREVGQVVMVCkgfAorCQlQSVBFX0NPTlRST0xfR0xPQkFMX0dUVDsKIAkqY3MrKyA9IDA7CiAKIAkvKiBGaW5hbGx5IHdlIGNhbiBmbHVzaCBhbmQgd2l0aCBpdCBlbWl0IHRoZSBicmVhZGNydW1iICovCkBAIC0zNDIsNyArMzU1LDkgQEAgZ2VuN19yZW5kZXJfcmluZ19jc19zdGFsbF93YShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHN0YXRpYyBpbnQKIGdlbjdfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiBtb2RlKQogewotCXUzMiBzY3JhdGNoX2FkZHIgPSBpOTE1X3NjcmF0Y2hfb2Zmc2V0KHJxLT5pOTE1KSArIDIgKiBDQUNIRUxJTkVfQllURVM7CisJdTMyIHNjcmF0Y2hfYWRkciA9CisJCWludGVsX2d0X3NjcmF0Y2hfb2Zmc2V0KHJxLT5lbmdpbmUtPmd0LAorCQkJCQlJTlRFTF9HVF9TQ1JBVENIX0ZJRUxEX1JFTkRFUl9GTFVTSCk7CiAJdTMyICpjcywgZmxhZ3MgPSAwOwogCiAJLyoKQEAgLTYyMyw3ICs2MzgsNyBAQCBzdGF0aWMgYm9vbCBzdG9wX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogc3RhdGljIGludCB4Y3NfcmVzdW1lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Ci0Jc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBlbmdpbmUtPmJ1ZmZlcjsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IGVuZ2luZS0+bGVnYWN5LnJpbmc7CiAJaW50IHJldCA9IDA7CiAKIAlHRU1fVFJBQ0UoIiVzOiByaW5nOntIRUFEOiUwNHgsIFRBSUw6JTA0eH1cbiIsCkBAIC02MzEsNiArNjQ2LDcgQEAgc3RhdGljIGludCB4Y3NfcmVzdW1lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGVuZ2luZS0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKIAorCS8qIFdhQ2xlYXJSaW5nQnVmSGVhZFJlZ0F0SW5pdDpjdGcsZWxrICovCiAJaWYgKCFzdG9wX3JpbmcoZW5naW5lKSkgewogCQkvKiBHNDUgcmluZyBpbml0aWFsaXphdGlvbiBvZnRlbiBmYWlscyB0byByZXNldCBoZWFkIHRvIHplcm8gKi8KIAkJRFJNX0RFQlVHX0RSSVZFUigiJXMgaGVhZCBub3QgcmVzZXQgdG8gemVybyAiCkBAIC02NjIsMTkgKzY3OCwxNiBAQCBzdGF0aWMgaW50IHhjc19yZXN1bWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWludGVsX2VuZ2luZV9yZXNldF9icmVhZGNydW1icyhlbmdpbmUpOwogCiAJLyogRW5mb3JjZSBvcmRlcmluZyBieSByZWFkaW5nIEhFQUQgcmVnaXN0ZXIgYmFjayAqLwotCUVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19IRUFEKTsKKwlFTkdJTkVfUE9TVElOR19SRUFEKGVuZ2luZSwgUklOR19IRUFEKTsKIAotCS8qIEluaXRpYWxpemUgdGhlIHJpbmcuIFRoaXMgbXVzdCBoYXBwZW4gX2FmdGVyXyB3ZSd2ZSBjbGVhcmVkIHRoZSByaW5nCisJLyoKKwkgKiBJbml0aWFsaXplIHRoZSByaW5nLiBUaGlzIG11c3QgaGFwcGVuIF9hZnRlcl8gd2UndmUgY2xlYXJlZCB0aGUgcmluZwogCSAqIHJlZ2lzdGVycyB3aXRoIHRoZSBhYm92ZSBzZXF1ZW5jZSAodGhlIHJlYWRiYWNrIG9mIHRoZSBIRUFEIHJlZ2lzdGVycwogCSAqIGFsc28gZW5mb3JjZXMgb3JkZXJpbmcpLCBvdGhlcndpc2UgdGhlIGh3IG1pZ2h0IGxvc2UgdGhlIG5ldyByaW5nCi0JICogcmVnaXN0ZXIgdmFsdWVzLiAqLworCSAqIHJlZ2lzdGVyIHZhbHVlcy4KKwkgKi8KIAlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX1NUQVJULCBpOTE1X2dndHRfb2Zmc2V0KHJpbmctPnZtYSkpOwogCi0JLyogV2FDbGVhclJpbmdCdWZIZWFkUmVnQXRJbml0OmN0ZyxlbGsgKi8KLQlpZiAoRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX0hFQUQpKQotCQlEUk1fREVCVUdfRFJJVkVSKCIlcyBpbml0aWFsaXphdGlvbiBmYWlsZWQgW2hlYWQ9JTA4eF0sIGZ1ZGdpbmdcbiIsCi0JCQkJIGVuZ2luZS0+bmFtZSwgRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX0hFQUQpKTsKLQogCS8qIENoZWNrIHRoYXQgdGhlIHJpbmcgb2Zmc2V0cyBwb2ludCB3aXRoaW4gdGhlIHJpbmchICovCiAJR0VNX0JVR19PTighaW50ZWxfcmluZ19vZmZzZXRfdmFsaWQocmluZywgcmluZy0+aGVhZCkpOwogCUdFTV9CVUdfT04oIWludGVsX3Jpbmdfb2Zmc2V0X3ZhbGlkKHJpbmcsIHJpbmctPnRhaWwpKTsKQEAgLTcyNSw3ICs3MzgsNDUgQEAgc3RhdGljIGludCB4Y3NfcmVzdW1lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogc3RhdGljIHZvaWQgcmVzZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0JaW50ZWxfZW5naW5lX3N0b3BfY3MoZW5naW5lKTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBlbmdpbmUtPnVuY29yZTsKKwljb25zdCB1MzIgYmFzZSA9IGVuZ2luZS0+bW1pb19iYXNlOworCisJLyoKKwkgKiBXZSBzdG9wIGVuZ2luZXMsIG90aGVyd2lzZSB3ZSBtaWdodCBnZXQgZmFpbGVkIHJlc2V0IGFuZCBhCisJICogZGVhZCBncHUgKG9uIGVsaykuIEFsc28gYXMgbW9kZXJuIGdwdSBhcyBrYmwgY2FuIHN1ZmZlcgorCSAqIGZyb20gc3lzdGVtIGhhbmcgaWYgYmF0Y2hidWZmZXIgaXMgcHJvZ3Jlc3Npbmcgd2hlbgorCSAqIHRoZSByZXNldCBpcyBpc3N1ZWQsIHJlZ2FyZGxlc3Mgb2YgUkVBRFlfVE9fUkVTRVQgYWNrLgorCSAqIFRodXMgYXNzdW1lIGl0IGlzIGJlc3QgdG8gc3RvcCBlbmdpbmVzIG9uIGFsbCBnZW5zCisJICogd2hlcmUgd2UgaGF2ZSBhIGdwdSByZXNldC4KKwkgKgorCSAqIFdhS0JMVkVDU1NlbWFwaG9yZVdhaXRQb2xsOmtibCAob24gQUxMX0VOR0lORVMpCisJICoKKwkgKiBXYU1lZGlhUmVzZXRNYWluUmluZ0NsZWFudXA6Y3RnLGVsayAocHJlc3VtYWJseSkKKwkgKgorCSAqIEZJWE1FOiBXYSBmb3IgbW9yZSBtb2Rlcm4gZ2VucyBuZWVkcyB0byBiZSB2YWxpZGF0ZWQKKwkgKi8KKwlHRU1fVFJBQ0UoIiVzXG4iLCBlbmdpbmUtPm5hbWUpOworCisJaWYgKGludGVsX2VuZ2luZV9zdG9wX2NzKGVuZ2luZSkpCisJCUdFTV9UUkFDRSgiJXM6IHRpbWVkIG91dCBvbiBTVE9QX1JJTkdcbiIsIGVuZ2luZS0+bmFtZSk7CisKKwlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLAorCQkJICAgICAgUklOR19IRUFEKGJhc2UpLAorCQkJICAgICAgaW50ZWxfdW5jb3JlX3JlYWRfZncodW5jb3JlLCBSSU5HX1RBSUwoYmFzZSkpKTsKKwlpbnRlbF91bmNvcmVfcG9zdGluZ19yZWFkX2Z3KHVuY29yZSwgUklOR19IRUFEKGJhc2UpKTsgLyogcGFyYW5vaWEgKi8KKworCWludGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsIFJJTkdfSEVBRChiYXNlKSwgMCk7CisJaW50ZWxfdW5jb3JlX3dyaXRlX2Z3KHVuY29yZSwgUklOR19UQUlMKGJhc2UpLCAwKTsKKwlpbnRlbF91bmNvcmVfcG9zdGluZ19yZWFkX2Z3KHVuY29yZSwgUklOR19UQUlMKGJhc2UpKTsKKworCS8qIFRoZSByaW5nIG11c3QgYmUgZW1wdHkgYmVmb3JlIGl0IGlzIGRpc2FibGVkICovCisJaW50ZWxfdW5jb3JlX3dyaXRlX2Z3KHVuY29yZSwgUklOR19DVEwoYmFzZSksIDApOworCisJLyogQ2hlY2sgYWN0cyBhcyBhIHBvc3QgKi8KKwlpZiAoaW50ZWxfdW5jb3JlX3JlYWRfZncodW5jb3JlLCBSSU5HX0hFQUQoYmFzZSkpKQorCQlHRU1fVFJBQ0UoIiVzOiByaW5nIGhlYWQgWyV4XSBub3QgcGFya2VkXG4iLAorCQkJICBlbmdpbmUtPm5hbWUsCisJCQkgIGludGVsX3VuY29yZV9yZWFkX2Z3KHVuY29yZSwgUklOR19IRUFEKGJhc2UpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlc2V0X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBib29sIHN0YWxsZWQpCkBAIC03ODEsMTQgKzgzMiwxNCBAQCBzdGF0aWMgdm9pZCByZXNldF9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgYm9vbCBzdGFsbGVkKQogCQkgKiBJZiB0aGUgcmVxdWVzdCB3YXMgaW5ub2NlbnQsIHdlIHRyeSB0byByZXBsYXkgdGhlIHJlcXVlc3QKIAkJICogd2l0aCB0aGUgcmVzdG9yZWQgY29udGV4dC4KIAkJICovCi0JCWk5MTVfcmVzZXRfcmVxdWVzdChycSwgc3RhbGxlZCk7CisJCV9faTkxNV9yZXF1ZXN0X3Jlc2V0KHJxLCBzdGFsbGVkKTsKIAotCQlHRU1fQlVHX09OKHJxLT5yaW5nICE9IGVuZ2luZS0+YnVmZmVyKTsKKwkJR0VNX0JVR19PTihycS0+cmluZyAhPSBlbmdpbmUtPmxlZ2FjeS5yaW5nKTsKIAkJaGVhZCA9IHJxLT5oZWFkOwogCX0gZWxzZSB7Ci0JCWhlYWQgPSBlbmdpbmUtPmJ1ZmZlci0+dGFpbDsKKwkJaGVhZCA9IGVuZ2luZS0+bGVnYWN5LnJpbmctPnRhaWw7CiAJfQotCWVuZ2luZS0+YnVmZmVyLT5oZWFkID0gaW50ZWxfcmluZ193cmFwKGVuZ2luZS0+YnVmZmVyLCBoZWFkKTsKKwllbmdpbmUtPmxlZ2FjeS5yaW5nLT5oZWFkID0gaW50ZWxfcmluZ193cmFwKGVuZ2luZS0+bGVnYWN5LnJpbmcsIGhlYWQpOwogCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogfQpAQCAtNzk3LDIxICs4NDgsNiBAQCBzdGF0aWMgdm9pZCByZXNldF9maW5pc2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogfQogCi1zdGF0aWMgaW50IGludGVsX3Jjc19jdHhfaW5pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKLXsKLQlpbnQgcmV0OwotCi0JcmV0ID0gaW50ZWxfZW5naW5lX2VtaXRfY3R4X3dhKHJxKTsKLQlpZiAocmV0ICE9IDApCi0JCXJldHVybiByZXQ7Ci0KLQlyZXQgPSBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfZW1pdChycSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgaW50IHJjc19yZXN1bWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKQEAgLTk0OCwxMyArOTg0LDEzIEBAIHN0YXRpYyB1MzIgKmdlbjVfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgKmNzKQogc3RhdGljIHZvaWQKIGdlbjVfaXJxX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0JZ2VuNV9lbmFibGVfZ3RfaXJxKGVuZ2luZS0+aTkxNSwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOworCWdlbjVfZ3RfZW5hYmxlX2lycShlbmdpbmUtPmd0LCBlbmdpbmUtPmlycV9lbmFibGVfbWFzayk7CiB9CiAKIHN0YXRpYyB2b2lkCiBnZW41X2lycV9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlnZW41X2Rpc2FibGVfZ3RfaXJxKGVuZ2luZS0+aTkxNSwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOworCWdlbjVfZ3RfZGlzYWJsZV9pcnEoZW5naW5lLT5ndCwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTAxNSwxNCArMTA1MSwxNCBAQCBnZW42X2lycV9lbmFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCS8qIEZsdXNoL2RlbGF5IHRvIGVuc3VyZSB0aGUgUklOR19JTVIgaXMgYWN0aXZlIGJlZm9yZSB0aGUgR1QgSU1SICovCiAJRU5HSU5FX1BPU1RJTkdfUkVBRChlbmdpbmUsIFJJTkdfSU1SKTsKIAotCWdlbjVfZW5hYmxlX2d0X2lycShlbmdpbmUtPmk5MTUsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKKwlnZW41X2d0X2VuYWJsZV9pcnEoZW5naW5lLT5ndCwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOwogfQogCiBzdGF0aWMgdm9pZAogZ2VuNl9pcnFfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJRU5HSU5FX1dSSVRFKGVuZ2luZSwgUklOR19JTVIsIH5lbmdpbmUtPmlycV9rZWVwX21hc2spOwotCWdlbjVfZGlzYWJsZV9ndF9pcnEoZW5naW5lLT5pOTE1LCBlbmdpbmUtPmlycV9lbmFibGVfbWFzayk7CisJZ2VuNV9ndF9kaXNhYmxlX2lycShlbmdpbmUtPmd0LCBlbmdpbmUtPmlycV9lbmFibGVfbWFzayk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xMDMzLDE0ICsxMDY5LDE0IEBAIGhzd192ZWJveF9pcnFfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkvKiBGbHVzaC9kZWxheSB0byBlbnN1cmUgdGhlIFJJTkdfSU1SIGlzIGFjdGl2ZSBiZWZvcmUgdGhlIEdUIElNUiAqLwogCUVOR0lORV9QT1NUSU5HX1JFQUQoZW5naW5lLCBSSU5HX0lNUik7CiAKLQlnZW42X3VubWFza19wbV9pcnEoZW5naW5lLT5pOTE1LCBlbmdpbmUtPmlycV9lbmFibGVfbWFzayk7CisJZ2VuNl9ndF9wbV91bm1hc2tfaXJxKGVuZ2luZS0+Z3QsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKIH0KIAogc3RhdGljIHZvaWQKIGhzd192ZWJveF9pcnFfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJRU5HSU5FX1dSSVRFKGVuZ2luZSwgUklOR19JTVIsIH4wKTsKLQlnZW42X21hc2tfcG1faXJxKGVuZ2luZS0+aTkxNSwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOworCWdlbjZfZ3RfcG1fbWFza19pcnEoZW5naW5lLT5ndCwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOwogfQogCiBzdGF0aWMgaW50CkBAIC0xMDcxLDkgKzExMDcsMTEgQEAgaTgzMF9lbWl0X2JiX3N0YXJ0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCQkgICB1NjQgb2Zmc2V0LCB1MzIgbGVuLAogCQkgICB1bnNpZ25lZCBpbnQgZGlzcGF0Y2hfZmxhZ3MpCiB7Ci0JdTMyICpjcywgY3Nfb2Zmc2V0ID0gaTkxNV9zY3JhdGNoX29mZnNldChycS0+aTkxNSk7CisJdTMyICpjcywgY3Nfb2Zmc2V0ID0KKwkJaW50ZWxfZ3Rfc2NyYXRjaF9vZmZzZXQocnEtPmVuZ2luZS0+Z3QsCisJCQkJCUlOVEVMX0dUX1NDUkFUQ0hfRklFTERfREVGQVVMVCk7CiAKLQlHRU1fQlVHX09OKHJxLT5pOTE1LT5ndC5zY3JhdGNoLT5zaXplIDwgSTgzMF9XQV9TSVpFKTsKKwlHRU1fQlVHX09OKHJxLT5lbmdpbmUtPmd0LT5zY3JhdGNoLT5zaXplIDwgSTgzMF9XQV9TSVpFKTsKIAogCWNzID0gaW50ZWxfcmluZ19iZWdpbihycSwgNik7CiAJaWYgKElTX0VSUihjcykpCkBAIC0xMTAwLDcgKzExMzgsNyBAQCBpODMwX2VtaXRfYmJfc3RhcnQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJCSAqIHN0YWJsZSBiYXRjaCBzY3JhdGNoIGJvIGFyZWEgKHNvIHRoYXQgdGhlIENTIG5ldmVyCiAJCSAqIHN0dW1ibGVzIG92ZXIgaXRzIHRsYiBpbnZhbGlkYXRpb24gYnVnKSAuLi4KIAkJICovCi0JCSpjcysrID0gU1JDX0NPUFlfQkxUX0NNRCB8IEJMVF9XUklURV9SR0JBOworCQkqY3MrKyA9IFNSQ19DT1BZX0JMVF9DTUQgfCBCTFRfV1JJVEVfUkdCQSB8ICg2IC0gMik7CiAJCSpjcysrID0gQkxUX0RFUFRIXzMyIHwgQkxUX1JPUF9TUkNfQ09QWSB8IDQwOTY7CiAJCSpjcysrID0gRElWX1JPVU5EX1VQKGxlbiwgNDA5NikgPDwgMTYgfCA0MDk2OwogCQkqY3MrKyA9IGNzX29mZnNldDsKQEAgLTExNTYsMTAgKzExOTQsNiBAQCBpbnQgaW50ZWxfcmluZ19waW4oc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCiAJaWYgKGF0b21pY19mZXRjaF9pbmMoJnJpbmctPnBpbl9jb3VudCkpCiAJCXJldHVybiAwOwogCi0JcmV0ID0gaTkxNV90aW1lbGluZV9waW4ocmluZy0+dGltZWxpbmUpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX3VucGluOwotCiAJZmxhZ3MgPSBQSU5fR0xPQkFMOwogCiAJLyogUmluZyB3cmFwYXJvdW5kIGF0IG9mZnNldCAwIHNvbWV0aW1lcyBoYW5ncy4gTm8gaWRlYSB3aHkuICovCkBAIC0xMTcyLDcgKzEyMDYsNyBAQCBpbnQgaW50ZWxfcmluZ19waW4oc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCiAKIAlyZXQgPSBpOTE1X3ZtYV9waW4odm1hLCAwLCAwLCBmbGFncyk7CiAJaWYgKHVubGlrZWx5KHJldCkpCi0JCWdvdG8gZXJyX3RpbWVsaW5lOworCQlnb3RvIGVycl91bnBpbjsKIAogCWlmIChpOTE1X3ZtYV9pc19tYXBfYW5kX2ZlbmNlYWJsZSh2bWEpKQogCQlhZGRyID0gKHZvaWQgX19mb3JjZSAqKWk5MTVfdm1hX3Bpbl9pb21hcCh2bWEpOwpAQCAtMTE4NCw3ICsxMjE4LDcgQEAgaW50IGludGVsX3JpbmdfcGluKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKQogCQlnb3RvIGVycl9yaW5nOwogCX0KIAotCXZtYS0+b2JqLT5waW5fZ2xvYmFsKys7CisJaTkxNV92bWFfbWFrZV91bnNocmlua2FibGUodm1hKTsKIAogCUdFTV9CVUdfT04ocmluZy0+dmFkZHIpOwogCXJpbmctPnZhZGRyID0gYWRkcjsKQEAgLTExOTMsOCArMTIyNyw2IEBAIGludCBpbnRlbF9yaW5nX3BpbihzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZykKIAogZXJyX3Jpbmc6CiAJaTkxNV92bWFfdW5waW4odm1hKTsKLWVycl90aW1lbGluZToKLQlpOTE1X3RpbWVsaW5lX3VucGluKHJpbmctPnRpbWVsaW5lKTsKIGVycl91bnBpbjoKIAlhdG9taWNfZGVjKCZyaW5nLT5waW5fY291bnQpOwogCXJldHVybiByZXQ7CkBAIC0xMjAyLDggKzEyMzQsNyBAQCBpbnQgaW50ZWxfcmluZ19waW4oc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCiAKIHZvaWQgaW50ZWxfcmluZ19yZXNldChzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZywgdTMyIHRhaWwpCiB7Ci0JR0VNX0JVR19PTighaW50ZWxfcmluZ19vZmZzZXRfdmFsaWQocmluZywgdGFpbCkpOwotCisJdGFpbCA9IGludGVsX3Jpbmdfd3JhcChyaW5nLCB0YWlsKTsKIAlyaW5nLT50YWlsID0gdGFpbDsKIAlyaW5nLT5oZWFkID0gdGFpbDsKIAlyaW5nLT5lbWl0ID0gdGFpbDsKQEAgLTEyMTIsMzcgKzEyNDMsMzcgQEAgdm9pZCBpbnRlbF9yaW5nX3Jlc2V0KHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nLCB1MzIgdGFpbCkKIAogdm9pZCBpbnRlbF9yaW5nX3VucGluKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKQogeworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hID0gcmluZy0+dm1hOworCiAJaWYgKCFhdG9taWNfZGVjX2FuZF90ZXN0KCZyaW5nLT5waW5fY291bnQpKQogCQlyZXR1cm47CiAKIAkvKiBEaXNjYXJkIGFueSB1bnVzZWQgYnl0ZXMgYmV5b25kIHRoYXQgc3VibWl0dGVkIHRvIGh3LiAqLwotCWludGVsX3JpbmdfcmVzZXQocmluZywgcmluZy0+dGFpbCk7CisJaW50ZWxfcmluZ19yZXNldChyaW5nLCByaW5nLT5lbWl0KTsKIAotCUdFTV9CVUdfT04oIXJpbmctPnZtYSk7Ci0JaWYgKGk5MTVfdm1hX2lzX21hcF9hbmRfZmVuY2VhYmxlKHJpbmctPnZtYSkpCi0JCWk5MTVfdm1hX3VucGluX2lvbWFwKHJpbmctPnZtYSk7CisJaTkxNV92bWFfdW5zZXRfZ2d0dF93cml0ZSh2bWEpOworCWlmIChpOTE1X3ZtYV9pc19tYXBfYW5kX2ZlbmNlYWJsZSh2bWEpKQorCQlpOTE1X3ZtYV91bnBpbl9pb21hcCh2bWEpOwogCWVsc2UKLQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChyaW5nLT52bWEtPm9iaik7CisJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAodm1hLT5vYmopOwogCiAJR0VNX0JVR19PTighcmluZy0+dmFkZHIpOwogCXJpbmctPnZhZGRyID0gTlVMTDsKIAotCXJpbmctPnZtYS0+b2JqLT5waW5fZ2xvYmFsLS07Ci0JaTkxNV92bWFfdW5waW4ocmluZy0+dm1hKTsKLQotCWk5MTVfdGltZWxpbmVfdW5waW4ocmluZy0+dGltZWxpbmUpOworCWk5MTVfdm1hX3VucGluKHZtYSk7CisJaTkxNV92bWFfbWFrZV9wdXJnZWFibGUodm1hKTsKIH0KIAotc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqCi1pbnRlbF9yaW5nX2NyZWF0ZV92bWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgc2l6ZSkKK3N0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKmNyZWF0ZV9yaW5nX3ZtYShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0LCBpbnQgc2l6ZSkKIHsKLQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9ICZkZXZfcHJpdi0+Z2d0dC52bTsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9ICZnZ3R0LT52bTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHZtLT5pOTE1OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAKLQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXZfcHJpdiwgc2l6ZSk7CisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oaTkxNSwgc2l6ZSk7CiAJaWYgKCFvYmopCi0JCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoZGV2X3ByaXYsIHNpemUpOworCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGk5MTUsIHNpemUpOwogCWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJuIEVSUl9DQVNUKG9iaik7CiAKQEAgLTEyNjUsMTAgKzEyOTYsOSBAQCBpbnRlbF9yaW5nX2NyZWF0ZV92bWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgc2l6ZSkKIH0KIAogc3RydWN0IGludGVsX3JpbmcgKgotaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKLQkJCSBzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUsCi0JCQkgaW50IHNpemUpCitpbnRlbF9lbmdpbmVfY3JlYXRlX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgc2l6ZSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKIAlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIApAQCAtMTI4MCw4ICsxMzEwLDYgQEAgaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlrcmVmX2luaXQoJnJpbmctPnJlZik7Ci0JSU5JVF9MSVNUX0hFQUQoJnJpbmctPnJlcXVlc3RfbGlzdCk7Ci0JcmluZy0+dGltZWxpbmUgPSBpOTE1X3RpbWVsaW5lX2dldCh0aW1lbGluZSk7CiAKIAlyaW5nLT5zaXplID0gc2l6ZTsKIAkvKiBXb3JrYXJvdW5kIGFuIGVycmF0dW0gb24gdGhlIGk4MzAgd2hpY2ggY2F1c2VzIGEgaGFuZyBpZgpAQCAtMTI4OSwxMiArMTMxNywxMiBAQCBpbnRlbF9lbmdpbmVfY3JlYXRlX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCSAqIG9mIHRoZSBidWZmZXIuCiAJICovCiAJcmluZy0+ZWZmZWN0aXZlX3NpemUgPSBzaXplOwotCWlmIChJU19JODMwKGVuZ2luZS0+aTkxNSkgfHwgSVNfSTg0NUcoZW5naW5lLT5pOTE1KSkKKwlpZiAoSVNfSTgzMChpOTE1KSB8fCBJU19JODQ1RyhpOTE1KSkKIAkJcmluZy0+ZWZmZWN0aXZlX3NpemUgLT0gMiAqIENBQ0hFTElORV9CWVRFUzsKIAogCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmcpOwogCi0Jdm1hID0gaW50ZWxfcmluZ19jcmVhdGVfdm1hKGVuZ2luZS0+aTkxNSwgc2l6ZSk7CisJdm1hID0gY3JlYXRlX3Jpbmdfdm1hKGVuZ2luZS0+Z3QtPmdndHQsIHNpemUpOwogCWlmIChJU19FUlIodm1hKSkgewogCQlrZnJlZShyaW5nKTsKIAkJcmV0dXJuIEVSUl9DQVNUKHZtYSk7CkBAIC0xMzExLDEzICsxMzM5LDExIEBAIHZvaWQgaW50ZWxfcmluZ19mcmVlKHN0cnVjdCBrcmVmICpyZWYpCiAJaTkxNV92bWFfY2xvc2UocmluZy0+dm1hKTsKIAlpOTE1X3ZtYV9wdXQocmluZy0+dm1hKTsKIAotCWk5MTVfdGltZWxpbmVfcHV0KHJpbmctPnRpbWVsaW5lKTsKIAlrZnJlZShyaW5nKTsKIH0KIAogc3RhdGljIHZvaWQgX19yaW5nX2NvbnRleHRfZmluaShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7Ci0JR0VNX0JVR19PTihpOTE1X2dlbV9vYmplY3RfaXNfYWN0aXZlKGNlLT5zdGF0ZS0+b2JqKSk7CiAJaTkxNV9nZW1fb2JqZWN0X3B1dChjZS0+c3RhdGUtPm9iaik7CiB9CiAKQEAgLTEzMzAsMzMgKzEzNTYsNDUgQEAgc3RhdGljIHZvaWQgcmluZ19jb250ZXh0X2Rlc3Ryb3koc3RydWN0IGtyZWYgKnJlZikKIAlpZiAoY2UtPnN0YXRlKQogCQlfX3JpbmdfY29udGV4dF9maW5pKGNlKTsKIAorCWludGVsX2NvbnRleHRfZmluaShjZSk7CiAJaW50ZWxfY29udGV4dF9mcmVlKGNlKTsKIH0KIAotc3RhdGljIGludCBfX2NvbnRleHRfcGluX3BwZ3R0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCitzdGF0aWMgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm1fYWxpYXMoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQoreworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOworCisJdm0gPSBjZS0+dm07CisJaWYgKGk5MTVfaXNfZ2d0dCh2bSkpCisJCXZtID0gJmk5MTVfdm1fdG9fZ2d0dCh2bSktPmFsaWFzLT52bTsKKworCXJldHVybiB2bTsKK30KKworc3RhdGljIGludCBfX2NvbnRleHRfcGluX3BwZ3R0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIHsKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKIAlpbnQgZXJyID0gMDsKIAotCXZtID0gY3R4LT52bSA/OiAmY3R4LT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm07CisJdm0gPSB2bV9hbGlhcyhjZSk7CiAJaWYgKHZtKQogCQllcnIgPSBnZW42X3BwZ3R0X3BpbihpOTE1X3ZtX3RvX3BwZ3R0KCh2bSkpKTsKIAogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyB2b2lkIF9fY29udGV4dF91bnBpbl9wcGd0dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQorc3RhdGljIHZvaWQgX19jb250ZXh0X3VucGluX3BwZ3R0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIHsKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKIAotCXZtID0gY3R4LT52bSA/OiAmY3R4LT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm07CisJdm0gPSB2bV9hbGlhcyhjZSk7CiAJaWYgKHZtKQogCQlnZW42X3BwZ3R0X3VucGluKGk5MTVfdm1fdG9fcHBndHQodm0pKTsKIH0KIAogc3RhdGljIHZvaWQgcmluZ19jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIHsKLQlfX2NvbnRleHRfdW5waW5fcHBndHQoY2UtPmdlbV9jb250ZXh0KTsKKwlfX2NvbnRleHRfdW5waW5fcHBndHQoY2UpOwogfQogCiBzdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKQEAgLTE0MTIsNyArMTQ1MCw3IEBAIGFsbG9jX2NvbnRleHRfdm1hKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChvYmopOwogCX0KIAotCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgJmk5MTUtPmdndHQudm0sIE5VTEwpOworCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgJmVuZ2luZS0+Z3QtPmdndHQtPnZtLCBOVUxMKTsKIAlpZiAoSVNfRVJSKHZtYSkpIHsKIAkJZXJyID0gUFRSX0VSUih2bWEpOwogCQlnb3RvIGVycl9vYmo7CkBAIC0xNDI3LDE2ICsxNDY1LDE3IEBAIGFsbG9jX2NvbnRleHRfdm1hKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCi1zdGF0aWMgaW50IHJpbmdfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQorc3RhdGljIGludCByaW5nX2NvbnRleHRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGNlLT5lbmdpbmU7Ci0JaW50IGVycjsKIAogCS8qIE9uZSByaW5nYnVmZmVyIHRvIHJ1bGUgdGhlbSBhbGwgKi8KLQlHRU1fQlVHX09OKCFlbmdpbmUtPmJ1ZmZlcik7Ci0JY2UtPnJpbmcgPSBlbmdpbmUtPmJ1ZmZlcjsKKwlHRU1fQlVHX09OKCFlbmdpbmUtPmxlZ2FjeS5yaW5nKTsKKwljZS0+cmluZyA9IGVuZ2luZS0+bGVnYWN5LnJpbmc7CisJY2UtPnRpbWVsaW5lID0gaW50ZWxfdGltZWxpbmVfZ2V0KGVuZ2luZS0+bGVnYWN5LnRpbWVsaW5lKTsKIAotCWlmICghY2UtPnN0YXRlICYmIGVuZ2luZS0+Y29udGV4dF9zaXplKSB7CisJR0VNX0JVR19PTihjZS0+c3RhdGUpOworCWlmIChlbmdpbmUtPmNvbnRleHRfc2l6ZSkgewogCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAogCQl2bWEgPSBhbGxvY19jb250ZXh0X3ZtYShlbmdpbmUpOwpAQCAtMTQ0NiwxMSArMTQ4NSwxOCBAQCBzdGF0aWMgaW50IHJpbmdfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogCQljZS0+c3RhdGUgPSB2bWE7CiAJfQogCi0JZXJyID0gaW50ZWxfY29udGV4dF9hY3RpdmVfYWNxdWlyZShjZSwgUElOX0hJR0gpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJpbmdfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQoreworCWludCBlcnI7CisKKwllcnIgPSBpbnRlbF9jb250ZXh0X2FjdGl2ZV9hY3F1aXJlKGNlKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JZXJyID0gX19jb250ZXh0X3Bpbl9wcGd0dChjZS0+Z2VtX2NvbnRleHQpOworCWVyciA9IF9fY29udGV4dF9waW5fcHBndHQoY2UpOwogCWlmIChlcnIpCiAJCWdvdG8gZXJyX2FjdGl2ZTsKIApAQCAtMTQ2Nyw2ICsxNTEzLDggQEAgc3RhdGljIHZvaWQgcmluZ19jb250ZXh0X3Jlc2V0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9jb250ZXh0X29wcyByaW5nX2NvbnRleHRfb3BzID0geworCS5hbGxvYyA9IHJpbmdfY29udGV4dF9hbGxvYywKKwogCS5waW4gPSByaW5nX2NvbnRleHRfcGluLAogCS51bnBpbiA9IHJpbmdfY29udGV4dF91bnBpbiwKIApAQCAtMTQ5Miw3ICsxNTQwLDcgQEAgc3RhdGljIGludCBsb2FkX3BkX2RpcihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgY29uc3Qgc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0KQogCiAJKmNzKysgPSBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKTsKIAkqY3MrKyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfUFBfRElSX0JBU0UoZW5naW5lLT5tbWlvX2Jhc2UpKTsKLQkqY3MrKyA9IHBwZ3R0LT5wZC0+YmFzZS5nZ3R0X29mZnNldCA8PCAxMDsKKwkqY3MrKyA9IHB4X2Jhc2UocHBndHQtPnBkKS0+Z2d0dF9vZmZzZXQgPDwgMTA7CiAKIAlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNzKTsKIApAQCAtMTUxMSw3ICsxNTU5LDggQEAgc3RhdGljIGludCBmbHVzaF9wZF9kaXIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJLyogU3RhbGwgdW50aWwgdGhlIHBhZ2UgdGFibGUgbG9hZCBpcyBjb21wbGV0ZSAqLwogCSpjcysrID0gTUlfU1RPUkVfUkVHSVNURVJfTUVNIHwgTUlfU1JNX0xSTV9HTE9CQUxfR1RUOwogCSpjcysrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19QUF9ESVJfQkFTRShlbmdpbmUtPm1taW9fYmFzZSkpOwotCSpjcysrID0gaTkxNV9zY3JhdGNoX29mZnNldChycS0+aTkxNSk7CisJKmNzKysgPSBpbnRlbF9ndF9zY3JhdGNoX29mZnNldChycS0+ZW5naW5lLT5ndCwKKwkJCQkJSU5URUxfR1RfU0NSQVRDSF9GSUVMRF9ERUZBVUxUKTsKIAkqY3MrKyA9IE1JX05PT1A7CiAKIAlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNzKTsKQEAgLTE2MjcsNyArMTY3Niw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1pX3NldF9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgZmxhZ3MpCiAJCQkvKiBJbnNlcnQgYSBkZWxheSBiZWZvcmUgdGhlIG5leHQgc3dpdGNoISAqLwogCQkJKmNzKysgPSBNSV9TVE9SRV9SRUdJU1RFUl9NRU0gfCBNSV9TUk1fTFJNX0dMT0JBTF9HVFQ7CiAJCQkqY3MrKyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KGxhc3RfcmVnKTsKLQkJCSpjcysrID0gaTkxNV9zY3JhdGNoX29mZnNldChycS0+aTkxNSk7CisJCQkqY3MrKyA9IGludGVsX2d0X3NjcmF0Y2hfb2Zmc2V0KHJxLT5lbmdpbmUtPmd0LAorCQkJCQkJCUlOVEVMX0dUX1NDUkFUQ0hfRklFTERfREVGQVVMVCk7CiAJCQkqY3MrKyA9IE1JX05PT1A7CiAJCX0KIAkJKmNzKysgPSBNSV9BUkJfT05fT0ZGIHwgTUlfQVJCX0VOQUJMRTsKQEAgLTE2NDAsNyArMTY5MCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1pX3NldF9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgZmxhZ3MpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcmVtYXBfbDMoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGludCBzbGljZSkKK3N0YXRpYyBpbnQgcmVtYXBfbDNfc2xpY2Uoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGludCBzbGljZSkKIHsKIAl1MzIgKmNzLCAqcmVtYXBfaW5mbyA9IHJxLT5pOTE1LT5sM19wYXJpdHkucmVtYXBfaW5mb1tzbGljZV07CiAJaW50IGk7CkBAIC0xNjY4LDE1ICsxNzE4LDM0IEBAIHN0YXRpYyBpbnQgcmVtYXBfbDMoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGludCBzbGljZSkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCByZW1hcF9sMyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0gcnEtPmdlbV9jb250ZXh0OworCWludCBpLCBlcnI7CisKKwlpZiAoIWN0eC0+cmVtYXBfc2xpY2UpCisJCXJldHVybiAwOworCisJZm9yIChpID0gMDsgaSA8IE1BWF9MM19TTElDRVM7IGkrKykgeworCQlpZiAoIShjdHgtPnJlbWFwX3NsaWNlICYgQklUKGkpKSkKKwkJCWNvbnRpbnVlOworCisJCWVyciA9IHJlbWFwX2wzX3NsaWNlKHJxLCBpKTsKKwkJaWYgKGVycikKKwkJCXJldHVybiBlcnI7CisJfQorCisJY3R4LT5yZW1hcF9zbGljZSA9IDA7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgc3dpdGNoX2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcnEtPmVuZ2luZTsKLQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0gcnEtPmdlbV9jb250ZXh0OwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0KLQkJY3R4LT52bSA/OiAmcnEtPmk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0LT52bTsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9IHZtX2FsaWFzKHJxLT5od19jb250ZXh0KTsKIAl1bnNpZ25lZCBpbnQgdW53aW5kX21tID0gMDsKIAl1MzIgaHdfZmxhZ3MgPSAwOwotCWludCByZXQsIGk7CisJaW50IHJldDsKIAogCUdFTV9CVUdfT04oSEFTX0VYRUNMSVNUUyhycS0+aTkxNSkpOwogCkBAIC0xNzIwLDcgKzE3ODksNyBAQCBzdGF0aWMgaW50IHN3aXRjaF9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogCQkgKiBhcyBub3RoaW5nIGFjdHVhbGx5IGV4ZWN1dGVzIHVzaW5nIHRoZSBrZXJuZWwgY29udGV4dDsgaXQKIAkJICogaXMgcHVyZWx5IHVzZWQgZm9yIGZsdXNoaW5nIHVzZXIgY29udGV4dHMuCiAJCSAqLwotCQlpZiAoaTkxNV9nZW1fY29udGV4dF9pc19rZXJuZWwoY3R4KSkKKwkJaWYgKGk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVsKHJxLT5nZW1fY29udGV4dCkpCiAJCQlod19mbGFncyA9IE1JX1JFU1RPUkVfSU5ISUJJVDsKIAogCQlyZXQgPSBtaV9zZXRfY29udGV4dChycSwgaHdfZmxhZ3MpOwpAQCAtMTc1NCwxOCArMTgyMyw5IEBAIHN0YXRpYyBpbnQgc3dpdGNoX2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJCQlnb3RvIGVycl9tbTsKIAl9CiAKLQlpZiAoY3R4LT5yZW1hcF9zbGljZSkgewotCQlmb3IgKGkgPSAwOyBpIDwgTUFYX0wzX1NMSUNFUzsgaSsrKSB7Ci0JCQlpZiAoIShjdHgtPnJlbWFwX3NsaWNlICYgQklUKGkpKSkKLQkJCQljb250aW51ZTsKLQotCQkJcmV0ID0gcmVtYXBfbDMocnEsIGkpOwotCQkJaWYgKHJldCkKLQkJCQlnb3RvIGVycl9tbTsKLQkJfQotCi0JCWN0eC0+cmVtYXBfc2xpY2UgPSAwOwotCX0KKwlyZXQgPSByZW1hcF9sMyhycSk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfbW07CiAKIAlyZXR1cm4gMDsKIApAQCAtMTgwMyw3ICsxODYzLDEwIEBAIHN0YXRpYyBpbnQgcmluZ19yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBub2lubGluZSBpbnQgd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGludGVsX3JpbmcgKnJpbmcsIHVuc2lnbmVkIGludCBieXRlcykKK3N0YXRpYyBub2lubGluZSBpbnQKK3dhaXRfZm9yX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nLAorCSAgICAgICBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsLAorCSAgICAgICB1bnNpZ25lZCBpbnQgYnl0ZXMpCiB7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqdGFyZ2V0OwogCWxvbmcgdGltZW91dDsKQEAgLTE4MTEsMTUgKzE4NzQsMTggQEAgc3RhdGljIG5vaW5saW5lIGludCB3YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZywgdW5zaWduZWQgaW50IGJ5dGVzKQogCWlmIChpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nKSA+PSBieXRlcykKIAkJcmV0dXJuIDA7CiAKLQlHRU1fQlVHX09OKGxpc3RfZW1wdHkoJnJpbmctPnJlcXVlc3RfbGlzdCkpOwotCWxpc3RfZm9yX2VhY2hfZW50cnkodGFyZ2V0LCAmcmluZy0+cmVxdWVzdF9saXN0LCByaW5nX2xpbmspIHsKKwlHRU1fQlVHX09OKGxpc3RfZW1wdHkoJnRsLT5yZXF1ZXN0cykpOworCWxpc3RfZm9yX2VhY2hfZW50cnkodGFyZ2V0LCAmdGwtPnJlcXVlc3RzLCBsaW5rKSB7CisJCWlmICh0YXJnZXQtPnJpbmcgIT0gcmluZykKKwkJCWNvbnRpbnVlOworCiAJCS8qIFdvdWxkIGNvbXBsZXRpb24gb2YgdGhpcyByZXF1ZXN0IGZyZWUgZW5vdWdoIHNwYWNlPyAqLwogCQlpZiAoYnl0ZXMgPD0gX19pbnRlbF9yaW5nX3NwYWNlKHRhcmdldC0+cG9zdGZpeCwKIAkJCQkJCXJpbmctPmVtaXQsIHJpbmctPnNpemUpKQogCQkJYnJlYWs7CiAJfQogCi0JaWYgKFdBUk5fT04oJnRhcmdldC0+cmluZ19saW5rID09ICZyaW5nLT5yZXF1ZXN0X2xpc3QpKQorCWlmIChHRU1fV0FSTl9PTigmdGFyZ2V0LT5saW5rID09ICZ0bC0+cmVxdWVzdHMpKQogCQlyZXR1cm4gLUVOT1NQQzsKIAogCXRpbWVvdXQgPSBpOTE1X3JlcXVlc3Rfd2FpdCh0YXJnZXQsCkBAIC0xODg2LDcgKzE5NTIsNyBAQCB1MzIgKmludGVsX3JpbmdfYmVnaW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHVuc2lnbmVkIGludCBudW1fZHdvcmRzKQogCQkgKi8KIAkJR0VNX0JVR19PTighcnEtPnJlc2VydmVkX3NwYWNlKTsKIAotCQlyZXQgPSB3YWl0X2Zvcl9zcGFjZShyaW5nLCB0b3RhbF9ieXRlcyk7CisJCXJldCA9IHdhaXRfZm9yX3NwYWNlKHJpbmcsIHJxLT50aW1lbGluZSwgdG90YWxfYnl0ZXMpOwogCQlpZiAodW5saWtlbHkocmV0KSkKIAkJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQpAQCAtMjA5MSw4ICsyMTU3LDExIEBAIHN0YXRpYyB2b2lkIHJpbmdfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAlpbnRlbF9lbmdpbmVfY2xlYW51cF9jb21tb24oZW5naW5lKTsKIAotCWludGVsX3JpbmdfdW5waW4oZW5naW5lLT5idWZmZXIpOwotCWludGVsX3JpbmdfcHV0KGVuZ2luZS0+YnVmZmVyKTsKKwlpbnRlbF9yaW5nX3VucGluKGVuZ2luZS0+bGVnYWN5LnJpbmcpOworCWludGVsX3JpbmdfcHV0KGVuZ2luZS0+bGVnYWN5LnJpbmcpOworCisJaW50ZWxfdGltZWxpbmVfdW5waW4oZW5naW5lLT5sZWdhY3kudGltZWxpbmUpOworCWludGVsX3RpbWVsaW5lX3B1dChlbmdpbmUtPmxlZ2FjeS50aW1lbGluZSk7CiAKIAlrZnJlZShlbmdpbmUpOwogfQpAQCAtMjE2NiwxMSArMjIzNSw5IEBAIHN0YXRpYyB2b2lkIHNldHVwX3JjcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7CiAKIAlpZiAoSU5URUxfR0VOKGk5MTUpID49IDcpIHsKLQkJZW5naW5lLT5pbml0X2NvbnRleHQgPSBpbnRlbF9yY3NfY3R4X2luaXQ7CiAJCWVuZ2luZS0+ZW1pdF9mbHVzaCA9IGdlbjdfcmVuZGVyX3JpbmdfZmx1c2g7CiAJCWVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIgPSBnZW43X3Jjc19lbWl0X2JyZWFkY3J1bWI7CiAJfSBlbHNlIGlmIChJU19HRU4oaTkxNSwgNikpIHsKLQkJZW5naW5lLT5pbml0X2NvbnRleHQgPSBpbnRlbF9yY3NfY3R4X2luaXQ7CiAJCWVuZ2luZS0+ZW1pdF9mbHVzaCA9IGdlbjZfcmVuZGVyX3JpbmdfZmx1c2g7CiAJCWVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIgPSBnZW42X3Jjc19lbWl0X2JyZWFkY3J1bWI7CiAJfSBlbHNlIGlmIChJU19HRU4oaTkxNSwgNSkpIHsKQEAgLTIyNjcsNDMgKzIzMzQsNTEgQEAgaW50IGludGVsX3Jpbmdfc3VibWlzc2lvbl9zZXR1cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIGludCBpbnRlbF9yaW5nX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmU7CiAJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7CiAJaW50IGVycjsKIAotCXRpbWVsaW5lID0gaTkxNV90aW1lbGluZV9jcmVhdGUoZW5naW5lLT5pOTE1LCBlbmdpbmUtPnN0YXR1c19wYWdlLnZtYSk7CisJdGltZWxpbmUgPSBpbnRlbF90aW1lbGluZV9jcmVhdGUoZW5naW5lLT5ndCwgZW5naW5lLT5zdGF0dXNfcGFnZS52bWEpOwogCWlmIChJU19FUlIodGltZWxpbmUpKSB7CiAJCWVyciA9IFBUUl9FUlIodGltZWxpbmUpOwogCQlnb3RvIGVycjsKIAl9CiAJR0VNX0JVR19PTih0aW1lbGluZS0+aGFzX2luaXRpYWxfYnJlYWRjcnVtYik7CiAKLQlyaW5nID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKGVuZ2luZSwgdGltZWxpbmUsIDMyICogUEFHRV9TSVpFKTsKLQlpOTE1X3RpbWVsaW5lX3B1dCh0aW1lbGluZSk7CisJZXJyID0gaW50ZWxfdGltZWxpbmVfcGluKHRpbWVsaW5lKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl90aW1lbGluZTsKKworCXJpbmcgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3JpbmcoZW5naW5lLCBTWl8xNkspOwogCWlmIChJU19FUlIocmluZykpIHsKIAkJZXJyID0gUFRSX0VSUihyaW5nKTsKLQkJZ290byBlcnI7CisJCWdvdG8gZXJyX3RpbWVsaW5lX3VucGluOwogCX0KIAogCWVyciA9IGludGVsX3JpbmdfcGluKHJpbmcpOwogCWlmIChlcnIpCiAJCWdvdG8gZXJyX3Jpbmc7CiAKLQlHRU1fQlVHX09OKGVuZ2luZS0+YnVmZmVyKTsKLQllbmdpbmUtPmJ1ZmZlciA9IHJpbmc7CisJR0VNX0JVR19PTihlbmdpbmUtPmxlZ2FjeS5yaW5nKTsKKwllbmdpbmUtPmxlZ2FjeS5yaW5nID0gcmluZzsKKwllbmdpbmUtPmxlZ2FjeS50aW1lbGluZSA9IHRpbWVsaW5lOwogCiAJZXJyID0gaW50ZWxfZW5naW5lX2luaXRfY29tbW9uKGVuZ2luZSk7CiAJaWYgKGVycikKLQkJZ290byBlcnJfdW5waW47CisJCWdvdG8gZXJyX3JpbmdfdW5waW47CiAKLQlHRU1fQlVHX09OKHJpbmctPnRpbWVsaW5lLT5od3NwX2dndHQgIT0gZW5naW5lLT5zdGF0dXNfcGFnZS52bWEpOworCUdFTV9CVUdfT04odGltZWxpbmUtPmh3c3BfZ2d0dCAhPSBlbmdpbmUtPnN0YXR1c19wYWdlLnZtYSk7CiAKIAlyZXR1cm4gMDsKIAotZXJyX3VucGluOgorZXJyX3JpbmdfdW5waW46CiAJaW50ZWxfcmluZ191bnBpbihyaW5nKTsKIGVycl9yaW5nOgogCWludGVsX3JpbmdfcHV0KHJpbmcpOworZXJyX3RpbWVsaW5lX3VucGluOgorCWludGVsX3RpbWVsaW5lX3VucGluKHRpbWVsaW5lKTsKK2Vycl90aW1lbGluZToKKwlpbnRlbF90aW1lbGluZV9wdXQodGltZWxpbmUpOwogZXJyOgogCWludGVsX2VuZ2luZV9jbGVhbnVwX2NvbW1vbihlbmdpbmUpOwogCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMKaW5kZXggYTA3NTZmMC4uNmJmMmQ4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuYwpAQCAtNDksNyArNDksNyBAQCB1MzIgaW50ZWxfc3NldV9tYWtlX3JwY3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJICogY2FzZXMgd2hpY2ggZGlzYWJsZSBzbGljZXMgZm9yIGZ1bmN0aW9uYWwsIGFwYXJ0IGZvciBwZXJmb3JtYW5jZQogCSAqIHJlYXNvbnMuIFNvIGluIHRoaXMgY2FzZSB3ZSBzZWxlY3QgYSBrbm93biBzdGFibGUgc3Vic2V0LgogCSAqLwotCWlmICghaTkxNS0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtKSB7CisJaWYgKCFpOTE1LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0pIHsKIAkJY3R4X3NzZXUgPSAqcmVxX3NzZXU7CiAJfSBlbHNlIHsKIAkJY3R4X3NzZXUgPSBpbnRlbF9zc2V1X2Zyb21fZGV2aWNlX2luZm8oc3NldSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2IwMWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmUuYwpAQCAtMCwwICsxLDU2MyBAQAorLyoKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxNi0yMDE4IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgImd0L2ludGVsX2d0X3R5cGVzLmgiCisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCisjaW5jbHVkZSAiaTkxNV9hY3RpdmUuaCIKKyNpbmNsdWRlICJpOTE1X3N5bmNtYXAuaCIKKyNpbmNsdWRlICJndC9pbnRlbF90aW1lbGluZS5oIgorCisjZGVmaW5lIHB0cl9zZXRfYml0KHB0ciwgYml0KSAoKHR5cGVvZihwdHIpKSgodW5zaWduZWQgbG9uZykocHRyKSB8IEJJVChiaXQpKSkKKyNkZWZpbmUgcHRyX3Rlc3RfYml0KHB0ciwgYml0KSAoKHVuc2lnbmVkIGxvbmcpKHB0cikgJiBCSVQoYml0KSkKKworc3RydWN0IGludGVsX3RpbWVsaW5lX2h3c3AgeworCXN0cnVjdCBpbnRlbF9ndCAqZ3Q7CisJc3RydWN0IGludGVsX2d0X3RpbWVsaW5lcyAqZ3RfdGltZWxpbmVzOworCXN0cnVjdCBsaXN0X2hlYWQgZnJlZV9saW5rOworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCXU2NCBmcmVlX2JpdG1hcDsKK307CisKK3N0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgeworCXN0cnVjdCBpOTE1X2FjdGl2ZSBhY3RpdmU7CisJc3RydWN0IGludGVsX3RpbWVsaW5lX2h3c3AgKmh3c3A7CisJdm9pZCAqdmFkZHI7CisjZGVmaW5lIENBQ0hFTElORV9CSVRTIDYKKyNkZWZpbmUgQ0FDSEVMSU5FX0ZSRUUgQ0FDSEVMSU5FX0JJVFMKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKl9faHdzcF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKworCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoaTkxNSwgUEFHRV9TSVpFKTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBFUlJfQ0FTVChvYmopOworCisJaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9jb2hlcmVuY3kob2JqLCBJOTE1X0NBQ0hFX0xMQyk7CisKKwl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosICZndC0+Z2d0dC0+dm0sIE5VTEwpOworCWlmIChJU19FUlIodm1hKSkKKwkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOworCisJcmV0dXJuIHZtYTsKK30KKworc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqCitod3NwX2FsbG9jKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmUsIHVuc2lnbmVkIGludCAqY2FjaGVsaW5lKQoreworCXN0cnVjdCBpbnRlbF9ndF90aW1lbGluZXMgKmd0ID0gJnRpbWVsaW5lLT5ndC0+dGltZWxpbmVzOworCXN0cnVjdCBpbnRlbF90aW1lbGluZV9od3NwICpod3NwOworCisJQlVJTERfQlVHX09OKEJJVFNfUEVSX1RZUEUodTY0KSAqIENBQ0hFTElORV9CWVRFUyA+IFBBR0VfU0laRSk7CisKKwlzcGluX2xvY2tfaXJxKCZndC0+aHdzcF9sb2NrKTsKKworCS8qIGh3c3BfZnJlZV9saXN0IG9ubHkgY29udGFpbnMgSFdTUCB0aGF0IGhhdmUgYXZhaWxhYmxlIGNhY2hlbGluZXMgKi8KKwlod3NwID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZndC0+aHdzcF9mcmVlX2xpc3QsCisJCQkJCXR5cGVvZigqaHdzcCksIGZyZWVfbGluayk7CisJaWYgKCFod3NwKSB7CisJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCisJCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmh3c3BfbG9jayk7CisKKwkJaHdzcCA9IGttYWxsb2Moc2l6ZW9mKCpod3NwKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghaHdzcCkKKwkJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJCXZtYSA9IF9faHdzcF9hbGxvYyh0aW1lbGluZS0+Z3QpOworCQlpZiAoSVNfRVJSKHZtYSkpIHsKKwkJCWtmcmVlKGh3c3ApOworCQkJcmV0dXJuIHZtYTsKKwkJfQorCisJCXZtYS0+cHJpdmF0ZSA9IGh3c3A7CisJCWh3c3AtPmd0ID0gdGltZWxpbmUtPmd0OworCQlod3NwLT52bWEgPSB2bWE7CisJCWh3c3AtPmZyZWVfYml0bWFwID0gfjB1bGw7CisJCWh3c3AtPmd0X3RpbWVsaW5lcyA9IGd0OworCisJCXNwaW5fbG9ja19pcnEoJmd0LT5od3NwX2xvY2spOworCQlsaXN0X2FkZCgmaHdzcC0+ZnJlZV9saW5rLCAmZ3QtPmh3c3BfZnJlZV9saXN0KTsKKwl9CisKKwlHRU1fQlVHX09OKCFod3NwLT5mcmVlX2JpdG1hcCk7CisJKmNhY2hlbGluZSA9IF9fZmZzNjQoaHdzcC0+ZnJlZV9iaXRtYXApOworCWh3c3AtPmZyZWVfYml0bWFwICY9IH5CSVRfVUxMKCpjYWNoZWxpbmUpOworCWlmICghaHdzcC0+ZnJlZV9iaXRtYXApCisJCWxpc3RfZGVsKCZod3NwLT5mcmVlX2xpbmspOworCisJc3Bpbl91bmxvY2tfaXJxKCZndC0+aHdzcF9sb2NrKTsKKworCUdFTV9CVUdfT04oaHdzcC0+dm1hLT5wcml2YXRlICE9IGh3c3ApOworCXJldHVybiBod3NwLT52bWE7Cit9CisKK3N0YXRpYyB2b2lkIF9faWRsZV9od3NwX2ZyZWUoc3RydWN0IGludGVsX3RpbWVsaW5lX2h3c3AgKmh3c3AsIGludCBjYWNoZWxpbmUpCit7CisJc3RydWN0IGludGVsX2d0X3RpbWVsaW5lcyAqZ3QgPSBod3NwLT5ndF90aW1lbGluZXM7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZndC0+aHdzcF9sb2NrLCBmbGFncyk7CisKKwkvKiBBcyBhIGNhY2hlbGluZSBiZWNvbWVzIGF2YWlsYWJsZSwgcHVibGlzaCB0aGUgSFdTUCBvbiB0aGUgZnJlZWxpc3QgKi8KKwlpZiAoIWh3c3AtPmZyZWVfYml0bWFwKQorCQlsaXN0X2FkZF90YWlsKCZod3NwLT5mcmVlX2xpbmssICZndC0+aHdzcF9mcmVlX2xpc3QpOworCisJR0VNX0JVR19PTihjYWNoZWxpbmUgPj0gQklUU19QRVJfVFlQRShod3NwLT5mcmVlX2JpdG1hcCkpOworCWh3c3AtPmZyZWVfYml0bWFwIHw9IEJJVF9VTEwoY2FjaGVsaW5lKTsKKworCS8qIEFuZCBpZiBubyBvbmUgaXMgbGVmdCB1c2luZyBpdCwgZ2l2ZSB0aGUgcGFnZSBiYWNrIHRvIHRoZSBzeXN0ZW0gKi8KKwlpZiAoaHdzcC0+ZnJlZV9iaXRtYXAgPT0gfjB1bGwpIHsKKwkJaTkxNV92bWFfcHV0KGh3c3AtPnZtYSk7CisJCWxpc3RfZGVsKCZod3NwLT5mcmVlX2xpbmspOworCQlrZnJlZShod3NwKTsKKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZndC0+aHdzcF9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIF9faWRsZV9jYWNoZWxpbmVfZnJlZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCkKK3sKKwlHRU1fQlVHX09OKCFpOTE1X2FjdGl2ZV9pc19pZGxlKCZjbC0+YWN0aXZlKSk7CisKKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNsLT5od3NwLT52bWEtPm9iaik7CisJaTkxNV92bWFfcHV0KGNsLT5od3NwLT52bWEpOworCV9faWRsZV9od3NwX2ZyZWUoY2wtPmh3c3AsIHB0cl91bm1hc2tfYml0cyhjbC0+dmFkZHIsIENBQ0hFTElORV9CSVRTKSk7CisKKwlpOTE1X2FjdGl2ZV9maW5pKCZjbC0+YWN0aXZlKTsKKwlrZnJlZShjbCk7Cit9CisKK3N0YXRpYyB2b2lkIF9fY2FjaGVsaW5lX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmFjdGl2ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCA9CisJCWNvbnRhaW5lcl9vZihhY3RpdmUsIHR5cGVvZigqY2wpLCBhY3RpdmUpOworCisJaTkxNV92bWFfdW5waW4oY2wtPmh3c3AtPnZtYSk7CisJaWYgKHB0cl90ZXN0X2JpdChjbC0+dmFkZHIsIENBQ0hFTElORV9GUkVFKSkKKwkJX19pZGxlX2NhY2hlbGluZV9mcmVlKGNsKTsKK30KKworc3RhdGljIGludCBfX2NhY2hlbGluZV9hY3RpdmUoc3RydWN0IGk5MTVfYWN0aXZlICphY3RpdmUpCit7CisJc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2wgPQorCQljb250YWluZXJfb2YoYWN0aXZlLCB0eXBlb2YoKmNsKSwgYWN0aXZlKTsKKworCV9faTkxNV92bWFfcGluKGNsLT5od3NwLT52bWEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqCitjYWNoZWxpbmVfYWxsb2Moc3RydWN0IGludGVsX3RpbWVsaW5lX2h3c3AgKmh3c3AsIHVuc2lnbmVkIGludCBjYWNoZWxpbmUpCit7CisJc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2w7CisJdm9pZCAqdmFkZHI7CisKKwlHRU1fQlVHX09OKGNhY2hlbGluZSA+PSBCSVQoQ0FDSEVMSU5FX0JJVFMpKTsKKworCWNsID0ga21hbGxvYyhzaXplb2YoKmNsKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjbCkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKGh3c3AtPnZtYS0+b2JqLCBJOTE1X01BUF9XQik7CisJaWYgKElTX0VSUih2YWRkcikpIHsKKwkJa2ZyZWUoY2wpOworCQlyZXR1cm4gRVJSX0NBU1QodmFkZHIpOworCX0KKworCWk5MTVfdm1hX2dldChod3NwLT52bWEpOworCWNsLT5od3NwID0gaHdzcDsKKwljbC0+dmFkZHIgPSBwYWdlX3BhY2tfYml0cyh2YWRkciwgY2FjaGVsaW5lKTsKKworCWk5MTVfYWN0aXZlX2luaXQoaHdzcC0+Z3QtPmk5MTUsICZjbC0+YWN0aXZlLAorCQkJIF9fY2FjaGVsaW5lX2FjdGl2ZSwgX19jYWNoZWxpbmVfcmV0aXJlKTsKKworCXJldHVybiBjbDsKK30KKworc3RhdGljIHZvaWQgY2FjaGVsaW5lX2FjcXVpcmUoc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2wpCit7CisJaWYgKGNsKQorCQlpOTE1X2FjdGl2ZV9hY3F1aXJlKCZjbC0+YWN0aXZlKTsKK30KKworc3RhdGljIHZvaWQgY2FjaGVsaW5lX3JlbGVhc2Uoc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2wpCit7CisJaWYgKGNsKQorCQlpOTE1X2FjdGl2ZV9yZWxlYXNlKCZjbC0+YWN0aXZlKTsKK30KKworc3RhdGljIHZvaWQgY2FjaGVsaW5lX2ZyZWUoc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2wpCit7CisJR0VNX0JVR19PTihwdHJfdGVzdF9iaXQoY2wtPnZhZGRyLCBDQUNIRUxJTkVfRlJFRSkpOworCWNsLT52YWRkciA9IHB0cl9zZXRfYml0KGNsLT52YWRkciwgQ0FDSEVMSU5FX0ZSRUUpOworCisJaWYgKGk5MTVfYWN0aXZlX2lzX2lkbGUoJmNsLT5hY3RpdmUpKQorCQlfX2lkbGVfY2FjaGVsaW5lX2ZyZWUoY2wpOworfQorCitpbnQgaW50ZWxfdGltZWxpbmVfaW5pdChzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lLAorCQkJc3RydWN0IGludGVsX2d0ICpndCwKKwkJCXN0cnVjdCBpOTE1X3ZtYSAqaHdzcCkKK3sKKwl2b2lkICp2YWRkcjsKKworCWtyZWZfaW5pdCgmdGltZWxpbmUtPmtyZWYpOworCWF0b21pY19zZXQoJnRpbWVsaW5lLT5waW5fY291bnQsIDApOworCisJdGltZWxpbmUtPmd0ID0gZ3Q7CisKKwl0aW1lbGluZS0+aGFzX2luaXRpYWxfYnJlYWRjcnVtYiA9ICFod3NwOworCXRpbWVsaW5lLT5od3NwX2NhY2hlbGluZSA9IE5VTEw7CisKKwlpZiAoIWh3c3ApIHsKKwkJc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2w7CisJCXVuc2lnbmVkIGludCBjYWNoZWxpbmU7CisKKwkJaHdzcCA9IGh3c3BfYWxsb2ModGltZWxpbmUsICZjYWNoZWxpbmUpOworCQlpZiAoSVNfRVJSKGh3c3ApKQorCQkJcmV0dXJuIFBUUl9FUlIoaHdzcCk7CisKKwkJY2wgPSBjYWNoZWxpbmVfYWxsb2MoaHdzcC0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsKKwkJaWYgKElTX0VSUihjbCkpIHsKKwkJCV9faWRsZV9od3NwX2ZyZWUoaHdzcC0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsKKwkJCXJldHVybiBQVFJfRVJSKGNsKTsKKwkJfQorCisJCXRpbWVsaW5lLT5od3NwX2NhY2hlbGluZSA9IGNsOworCQl0aW1lbGluZS0+aHdzcF9vZmZzZXQgPSBjYWNoZWxpbmUgKiBDQUNIRUxJTkVfQllURVM7CisKKwkJdmFkZHIgPSBwYWdlX21hc2tfYml0cyhjbC0+dmFkZHIpOworCX0gZWxzZSB7CisJCXRpbWVsaW5lLT5od3NwX29mZnNldCA9IEk5MTVfR0VNX0hXU19TRVFOT19BRERSOworCisJCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoaHdzcC0+b2JqLCBJOTE1X01BUF9XQik7CisJCWlmIChJU19FUlIodmFkZHIpKQorCQkJcmV0dXJuIFBUUl9FUlIodmFkZHIpOworCX0KKworCXRpbWVsaW5lLT5od3NwX3NlcW5vID0KKwkJbWVtc2V0KHZhZGRyICsgdGltZWxpbmUtPmh3c3Bfb2Zmc2V0LCAwLCBDQUNIRUxJTkVfQllURVMpOworCisJdGltZWxpbmUtPmh3c3BfZ2d0dCA9IGk5MTVfdm1hX2dldChod3NwKTsKKwlHRU1fQlVHX09OKHRpbWVsaW5lLT5od3NwX29mZnNldCA+PSBod3NwLT5zaXplKTsKKworCXRpbWVsaW5lLT5mZW5jZV9jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisKKwltdXRleF9pbml0KCZ0aW1lbGluZS0+bXV0ZXgpOworCisJSU5JVF9BQ1RJVkVfUkVRVUVTVCgmdGltZWxpbmUtPmxhc3RfcmVxdWVzdCwgJnRpbWVsaW5lLT5tdXRleCk7CisJSU5JVF9MSVNUX0hFQUQoJnRpbWVsaW5lLT5yZXF1ZXN0cyk7CisKKwlpOTE1X3N5bmNtYXBfaW5pdCgmdGltZWxpbmUtPnN5bmMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHRpbWVsaW5lc19pbml0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJc3RydWN0IGludGVsX2d0X3RpbWVsaW5lcyAqdGltZWxpbmVzID0gJmd0LT50aW1lbGluZXM7CisKKwlzcGluX2xvY2tfaW5pdCgmdGltZWxpbmVzLT5sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmdGltZWxpbmVzLT5hY3RpdmVfbGlzdCk7CisKKwlzcGluX2xvY2tfaW5pdCgmdGltZWxpbmVzLT5od3NwX2xvY2spOworCUlOSVRfTElTVF9IRUFEKCZ0aW1lbGluZXMtPmh3c3BfZnJlZV9saXN0KTsKK30KKwordm9pZCBpbnRlbF90aW1lbGluZXNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwl0aW1lbGluZXNfaW5pdCgmaTkxNS0+Z3QpOworfQorCit2b2lkIGludGVsX3RpbWVsaW5lX2Zpbmkoc3RydWN0IGludGVsX3RpbWVsaW5lICp0aW1lbGluZSkKK3sKKwlHRU1fQlVHX09OKGF0b21pY19yZWFkKCZ0aW1lbGluZS0+cGluX2NvdW50KSk7CisJR0VNX0JVR19PTighbGlzdF9lbXB0eSgmdGltZWxpbmUtPnJlcXVlc3RzKSk7CisKKwlpZiAodGltZWxpbmUtPmh3c3BfY2FjaGVsaW5lKQorCQljYWNoZWxpbmVfZnJlZSh0aW1lbGluZS0+aHdzcF9jYWNoZWxpbmUpOworCWVsc2UKKwkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCh0aW1lbGluZS0+aHdzcF9nZ3R0LT5vYmopOworCisJaTkxNV92bWFfcHV0KHRpbWVsaW5lLT5od3NwX2dndHQpOworfQorCitzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKgoraW50ZWxfdGltZWxpbmVfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHN0cnVjdCBpOTE1X3ZtYSAqZ2xvYmFsX2h3c3ApCit7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0aW1lbGluZTsKKwlpbnQgZXJyOworCisJdGltZWxpbmUgPSBremFsbG9jKHNpemVvZigqdGltZWxpbmUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXRpbWVsaW5lKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCWVyciA9IGludGVsX3RpbWVsaW5lX2luaXQodGltZWxpbmUsIGd0LCBnbG9iYWxfaHdzcCk7CisJaWYgKGVycikgeworCQlrZnJlZSh0aW1lbGluZSk7CisJCXJldHVybiBFUlJfUFRSKGVycik7CisJfQorCisJcmV0dXJuIHRpbWVsaW5lOworfQorCitpbnQgaW50ZWxfdGltZWxpbmVfcGluKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpCit7CisJaW50IGVycjsKKworCWlmIChhdG9taWNfYWRkX3VubGVzcygmdGwtPnBpbl9jb3VudCwgMSwgMCkpCisJCXJldHVybiAwOworCisJZXJyID0gaTkxNV92bWFfcGluKHRsLT5od3NwX2dndHQsIDAsIDAsIFBJTl9HTE9CQUwgfCBQSU5fSElHSCk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCXRsLT5od3NwX29mZnNldCA9CisJCWk5MTVfZ2d0dF9vZmZzZXQodGwtPmh3c3BfZ2d0dCkgKworCQlvZmZzZXRfaW5fcGFnZSh0bC0+aHdzcF9vZmZzZXQpOworCisJY2FjaGVsaW5lX2FjcXVpcmUodGwtPmh3c3BfY2FjaGVsaW5lKTsKKwlpZiAoYXRvbWljX2ZldGNoX2luYygmdGwtPnBpbl9jb3VudCkpIHsKKwkJY2FjaGVsaW5lX3JlbGVhc2UodGwtPmh3c3BfY2FjaGVsaW5lKTsKKwkJX19pOTE1X3ZtYV91bnBpbih0bC0+aHdzcF9nZ3R0KTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCBpbnRlbF90aW1lbGluZV9lbnRlcihzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsKQoreworCXN0cnVjdCBpbnRlbF9ndF90aW1lbGluZXMgKnRpbWVsaW5lcyA9ICZ0bC0+Z3QtPnRpbWVsaW5lczsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmdGwtPm11dGV4KTsKKworCUdFTV9CVUdfT04oIWF0b21pY19yZWFkKCZ0bC0+cGluX2NvdW50KSk7CisJaWYgKHRsLT5hY3RpdmVfY291bnQrKykKKwkJcmV0dXJuOworCUdFTV9CVUdfT04oIXRsLT5hY3RpdmVfY291bnQpOyAvKiBvdmVyZmxvdz8gKi8KKworCXNwaW5fbG9ja19pcnFzYXZlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKKwlsaXN0X2FkZCgmdGwtPmxpbmssICZ0aW1lbGluZXMtPmFjdGl2ZV9saXN0KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKK30KKwordm9pZCBpbnRlbF90aW1lbGluZV9leGl0KHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpCit7CisJc3RydWN0IGludGVsX2d0X3RpbWVsaW5lcyAqdGltZWxpbmVzID0gJnRsLT5ndC0+dGltZWxpbmVzOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ0bC0+bXV0ZXgpOworCisJR0VNX0JVR19PTighdGwtPmFjdGl2ZV9jb3VudCk7CisJaWYgKC0tdGwtPmFjdGl2ZV9jb3VudCkKKwkJcmV0dXJuOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnRpbWVsaW5lcy0+bG9jaywgZmxhZ3MpOworCWxpc3RfZGVsKCZ0bC0+bGluayk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7CisKKwkvKgorCSAqIFNpbmNlIHRoaXMgdGltZWxpbmUgaXMgaWRsZSwgYWxsIGJhcmllcnMgdXBvbiB3aGljaCB3ZSB3ZXJlIHdhaXRpbmcKKwkgKiBtdXN0IGFsc28gYmUgY29tcGxldGUgYW5kIHNvIHdlIGNhbiBkaXNjYXJkIHRoZSBsYXN0IHVzZWQgYmFycmllcnMKKwkgKiB3aXRob3V0IGxvc3Mgb2YgaW5mb3JtYXRpb24uCisJICovCisJaTkxNV9zeW5jbWFwX2ZyZWUoJnRsLT5zeW5jKTsKK30KKworc3RhdGljIHUzMiB0aW1lbGluZV9hZHZhbmNlKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpCit7CisJR0VNX0JVR19PTighYXRvbWljX3JlYWQoJnRsLT5waW5fY291bnQpKTsKKwlHRU1fQlVHX09OKHRsLT5zZXFubyAmIHRsLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iKTsKKworCXJldHVybiB0bC0+c2Vxbm8gKz0gMSArIHRsLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iOworfQorCitzdGF0aWMgdm9pZCB0aW1lbGluZV9yb2xsYmFjayhzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsKQoreworCXRsLT5zZXFubyAtPSAxICsgdGwtPmhhc19pbml0aWFsX2JyZWFkY3J1bWI7Cit9CisKK3N0YXRpYyBub2lubGluZSBpbnQKK19faW50ZWxfdGltZWxpbmVfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwsCisJCQkgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKKwkJCSAgIHUzMiAqc2Vxbm8pCit7CisJc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2w7CisJdW5zaWduZWQgaW50IGNhY2hlbGluZTsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwl2b2lkICp2YWRkcjsKKwlpbnQgZXJyOworCisJLyoKKwkgKiBJZiB0aGVyZSBpcyBhbiBvdXRzdGFuZGluZyBHUFUgcmVmZXJlbmNlIHRvIHRoaXMgY2FjaGVsaW5lLAorCSAqIHN1Y2ggYXMgaXQgYmVpbmcgc2FtcGxlZCBieSBhIEhXIHNlbWFwaG9yZSBvbiBhbm90aGVyIHRpbWVsaW5lLAorCSAqIHdlIGNhbm5vdCB3cmFwYXJvdW5kIG91ciBzZXFubyB2YWx1ZSAodGhlIEhXIHNlbWFwaG9yZSBkb2VzCisJICogYSBzdHJpY3QgZ3JlYXRlci10aGFuLW9yLWVxdWFscyBjb21wYXJlLCBub3QgaTkxNV9zZXFub19wYXNzZWQpLgorCSAqIFNvIGlmIHRoZSBjYWNoZWxpbmUgaXMgc3RpbGwgYnVzeSwgd2UgbXVzdCBkZXRhY2ggb3Vyc2VsdmVzCisJICogZnJvbSBpdCBhbmQgbGVhdmUgaXQgaW5mbGlnaHQgYWxvbmdzaWRlIGl0cyB1c2Vycy4KKwkgKgorCSAqIEhvd2V2ZXIsIGlmIG5vYm9keSBpcyB3YXRjaGluZyBhbmQgd2UgY2FuIGd1YXJhbnRlZSB0aGF0IG5vYm9keQorCSAqIHdpbGwsIHdlIGNvdWxkIHNpbXBseSByZXVzZSB0aGUgc2FtZSBjYWNoZWxpbmUuCisJICoKKwkgKiBpZiAoaTkxNV9hY3RpdmVfcmVxdWVzdF9pc19zaWduYWxlZCgmdGwtPmxhc3RfcmVxdWVzdCkgJiYKKwkgKiAgICAgaTkxNV9hY3RpdmVfaXNfc2lnbmFsZWQoJnRsLT5od3NwX2NhY2hlbGluZS0+YWN0aXZlKSkKKwkgKglyZXR1cm4gMDsKKwkgKgorCSAqIFRoYXQgc2VlbXMgdW5saWtlbHkgZm9yIGEgYnVzeSB0aW1lbGluZSB0aGF0IG5lZWRlZCB0byB3cmFwIGluCisJICogdGhlIGZpcnN0IHBsYWNlLCBzbyBqdXN0IHJlcGxhY2UgdGhlIGNhY2hlbGluZS4KKwkgKi8KKworCXZtYSA9IGh3c3BfYWxsb2ModGwsICZjYWNoZWxpbmUpOworCWlmIChJU19FUlIodm1hKSkgeworCQllcnIgPSBQVFJfRVJSKHZtYSk7CisJCWdvdG8gZXJyX3JvbGxiYWNrOworCX0KKworCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIFBJTl9HTE9CQUwgfCBQSU5fSElHSCk7CisJaWYgKGVycikgeworCQlfX2lkbGVfaHdzcF9mcmVlKHZtYS0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsKKwkJZ290byBlcnJfcm9sbGJhY2s7CisJfQorCisJY2wgPSBjYWNoZWxpbmVfYWxsb2Modm1hLT5wcml2YXRlLCBjYWNoZWxpbmUpOworCWlmIChJU19FUlIoY2wpKSB7CisJCWVyciA9IFBUUl9FUlIoY2wpOworCQlfX2lkbGVfaHdzcF9mcmVlKHZtYS0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsKKwkJZ290byBlcnJfdW5waW47CisJfQorCUdFTV9CVUdfT04oY2wtPmh3c3AtPnZtYSAhPSB2bWEpOworCisJLyoKKwkgKiBBdHRhY2ggdGhlIG9sZCBjYWNoZWxpbmUgdG8gdGhlIGN1cnJlbnQgcmVxdWVzdCwgc28gdGhhdCB3ZSBvbmx5CisJICogZnJlZSBpdCBhZnRlciB0aGUgY3VycmVudCByZXF1ZXN0IGlzIHJldGlyZWQsIHdoaWNoIGVuc3VyZXMgdGhhdAorCSAqIGFsbCB3cml0ZXMgaW50byB0aGUgY2FjaGVsaW5lIGZyb20gcHJldmlvdXMgcmVxdWVzdHMgYXJlIGNvbXBsZXRlLgorCSAqLworCWVyciA9IGk5MTVfYWN0aXZlX3JlZigmdGwtPmh3c3BfY2FjaGVsaW5lLT5hY3RpdmUsIHRsLCBycSk7CisJaWYgKGVycikKKwkJZ290byBlcnJfY2FjaGVsaW5lOworCisJY2FjaGVsaW5lX3JlbGVhc2UodGwtPmh3c3BfY2FjaGVsaW5lKTsgLyogb3duZXJzaGlwIG5vdyB4ZmVyZWQgdG8gcnEgKi8KKwljYWNoZWxpbmVfZnJlZSh0bC0+aHdzcF9jYWNoZWxpbmUpOworCisJaTkxNV92bWFfdW5waW4odGwtPmh3c3BfZ2d0dCk7IC8qIGJpbmRpbmcga2VwdCBhbGl2ZSBieSBvbGQgY2FjaGVsaW5lICovCisJaTkxNV92bWFfcHV0KHRsLT5od3NwX2dndHQpOworCisJdGwtPmh3c3BfZ2d0dCA9IGk5MTVfdm1hX2dldCh2bWEpOworCisJdmFkZHIgPSBwYWdlX21hc2tfYml0cyhjbC0+dmFkZHIpOworCXRsLT5od3NwX29mZnNldCA9IGNhY2hlbGluZSAqIENBQ0hFTElORV9CWVRFUzsKKwl0bC0+aHdzcF9zZXFubyA9CisJCW1lbXNldCh2YWRkciArIHRsLT5od3NwX29mZnNldCwgMCwgQ0FDSEVMSU5FX0JZVEVTKTsKKworCXRsLT5od3NwX29mZnNldCArPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7CisKKwljYWNoZWxpbmVfYWNxdWlyZShjbCk7CisJdGwtPmh3c3BfY2FjaGVsaW5lID0gY2w7CisKKwkqc2Vxbm8gPSB0aW1lbGluZV9hZHZhbmNlKHRsKTsKKwlHRU1fQlVHX09OKGk5MTVfc2Vxbm9fcGFzc2VkKCp0bC0+aHdzcF9zZXFubywgKnNlcW5vKSk7CisJcmV0dXJuIDA7CisKK2Vycl9jYWNoZWxpbmU6CisJY2FjaGVsaW5lX2ZyZWUoY2wpOworZXJyX3VucGluOgorCWk5MTVfdm1hX3VucGluKHZtYSk7CitlcnJfcm9sbGJhY2s6CisJdGltZWxpbmVfcm9sbGJhY2sodGwpOworCXJldHVybiBlcnI7Cit9CisKK2ludCBpbnRlbF90aW1lbGluZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwKKwkJCSAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCisJCQkgICAgIHUzMiAqc2Vxbm8pCit7CisJKnNlcW5vID0gdGltZWxpbmVfYWR2YW5jZSh0bCk7CisKKwkvKiBSZXBsYWNlIHRoZSBIV1NQIG9uIHdyYXBhcm91bmQgZm9yIEhXIHNlbWFwaG9yZXMgKi8KKwlpZiAodW5saWtlbHkoISpzZXFubyAmJiB0bC0+aHdzcF9jYWNoZWxpbmUpKQorCQlyZXR1cm4gX19pbnRlbF90aW1lbGluZV9nZXRfc2Vxbm8odGwsIHJxLCBzZXFubyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYWNoZWxpbmVfcmVmKHN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgKmNsLAorCQkJIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCXJldHVybiBpOTE1X2FjdGl2ZV9yZWYoJmNsLT5hY3RpdmUsIHJxLT50aW1lbGluZSwgcnEpOworfQorCitpbnQgaW50ZWxfdGltZWxpbmVfcmVhZF9od3NwKHN0cnVjdCBpOTE1X3JlcXVlc3QgKmZyb20sCisJCQkgICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnRvLAorCQkJICAgICB1MzIgKmh3c3ApCit7CisJc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2wgPSBmcm9tLT5od3NwX2NhY2hlbGluZTsKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsID0gZnJvbS0+dGltZWxpbmU7CisJaW50IGVycjsKKworCUdFTV9CVUdfT04odG8tPnRpbWVsaW5lID09IHRsKTsKKworCW11dGV4X2xvY2tfbmVzdGVkKCZ0bC0+bXV0ZXgsIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKKwllcnIgPSBpOTE1X3JlcXVlc3RfY29tcGxldGVkKGZyb20pOworCWlmICghZXJyKQorCQllcnIgPSBjYWNoZWxpbmVfcmVmKGNsLCB0byk7CisJaWYgKCFlcnIpIHsKKwkJaWYgKGxpa2VseShjbCA9PSB0bC0+aHdzcF9jYWNoZWxpbmUpKSB7CisJCQkqaHdzcCA9IHRsLT5od3NwX29mZnNldDsKKwkJfSBlbHNlIHsgLyogYWNyb3NzIGEgc2Vxbm8gd3JhcCwgcmVjb3ZlciB0aGUgb3JpZ2luYWwgb2Zmc2V0ICovCisJCQkqaHdzcCA9IGk5MTVfZ2d0dF9vZmZzZXQoY2wtPmh3c3AtPnZtYSkgKworCQkJCXB0cl91bm1hc2tfYml0cyhjbC0+dmFkZHIsIENBQ0hFTElORV9CSVRTKSAqCisJCQkJQ0FDSEVMSU5FX0JZVEVTOworCQl9CisJfQorCW11dGV4X3VubG9jaygmdGwtPm11dGV4KTsKKworCXJldHVybiBlcnI7Cit9CisKK3ZvaWQgaW50ZWxfdGltZWxpbmVfdW5waW4oc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCkKK3sKKwlHRU1fQlVHX09OKCFhdG9taWNfcmVhZCgmdGwtPnBpbl9jb3VudCkpOworCWlmICghYXRvbWljX2RlY19hbmRfdGVzdCgmdGwtPnBpbl9jb3VudCkpCisJCXJldHVybjsKKworCWNhY2hlbGluZV9yZWxlYXNlKHRsLT5od3NwX2NhY2hlbGluZSk7CisKKwlfX2k5MTVfdm1hX3VucGluKHRsLT5od3NwX2dndHQpOworfQorCit2b2lkIF9faW50ZWxfdGltZWxpbmVfZnJlZShzdHJ1Y3Qga3JlZiAqa3JlZikKK3sKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lID0KKwkJY29udGFpbmVyX29mKGtyZWYsIHR5cGVvZigqdGltZWxpbmUpLCBrcmVmKTsKKworCWludGVsX3RpbWVsaW5lX2ZpbmkodGltZWxpbmUpOworCWtmcmVlKHRpbWVsaW5lKTsKK30KKworc3RhdGljIHZvaWQgdGltZWxpbmVzX2Zpbmkoc3RydWN0IGludGVsX2d0ICpndCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3RfdGltZWxpbmVzICp0aW1lbGluZXMgPSAmZ3QtPnRpbWVsaW5lczsKKworCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJnRpbWVsaW5lcy0+YWN0aXZlX2xpc3QpKTsKKwlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZ0aW1lbGluZXMtPmh3c3BfZnJlZV9saXN0KSk7Cit9CisKK3ZvaWQgaW50ZWxfdGltZWxpbmVzX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJdGltZWxpbmVzX2ZpbmkoJmk5MTUtPmd0KTsKK30KKworI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQorI2luY2x1ZGUgImd0L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMiCisjaW5jbHVkZSAiZ3Qvc2VsZnRlc3RfdGltZWxpbmUuYyIKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVsaW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU4M2FmMQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVsaW5lLmgKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE2IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaWZuZGVmIEk5MTVfVElNRUxJTkVfSAorI2RlZmluZSBJOTE1X1RJTUVMSU5FX0gKKworI2luY2x1ZGUgPGxpbnV4L2xvY2tkZXAuaD4KKworI2luY2x1ZGUgImk5MTVfYWN0aXZlLmgiCisjaW5jbHVkZSAiaTkxNV9zeW5jbWFwLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfdGltZWxpbmVfdHlwZXMuaCIKKworaW50IGludGVsX3RpbWVsaW5lX2luaXQoc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwKKwkJCXN0cnVjdCBpbnRlbF9ndCAqZ3QsCisJCQlzdHJ1Y3QgaTkxNV92bWEgKmh3c3ApOwordm9pZCBpbnRlbF90aW1lbGluZV9maW5pKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpOworCitzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKgoraW50ZWxfdGltZWxpbmVfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHN0cnVjdCBpOTE1X3ZtYSAqZ2xvYmFsX2h3c3ApOworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF90aW1lbGluZSAqCitpbnRlbF90aW1lbGluZV9nZXQoc3RydWN0IGludGVsX3RpbWVsaW5lICp0aW1lbGluZSkKK3sKKwlrcmVmX2dldCgmdGltZWxpbmUtPmtyZWYpOworCXJldHVybiB0aW1lbGluZTsKK30KKwordm9pZCBfX2ludGVsX3RpbWVsaW5lX2ZyZWUoc3RydWN0IGtyZWYgKmtyZWYpOworc3RhdGljIGlubGluZSB2b2lkIGludGVsX3RpbWVsaW5lX3B1dChzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lKQoreworCWtyZWZfcHV0KCZ0aW1lbGluZS0+a3JlZiwgX19pbnRlbF90aW1lbGluZV9mcmVlKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgX19pbnRlbF90aW1lbGluZV9zeW5jX3NldChzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsLAorCQkJCQkgICAgdTY0IGNvbnRleHQsIHUzMiBzZXFubykKK3sKKwlyZXR1cm4gaTkxNV9zeW5jbWFwX3NldCgmdGwtPnN5bmMsIGNvbnRleHQsIHNlcW5vKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgaW50ZWxfdGltZWxpbmVfc3luY19zZXQoc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwKKwkJCQkJICBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlyZXR1cm4gX19pbnRlbF90aW1lbGluZV9zeW5jX3NldCh0bCwgZmVuY2UtPmNvbnRleHQsIGZlbmNlLT5zZXFubyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBfX2ludGVsX3RpbWVsaW5lX3N5bmNfaXNfbGF0ZXIoc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwKKwkJCQkJCSAgdTY0IGNvbnRleHQsIHUzMiBzZXFubykKK3sKKwlyZXR1cm4gaTkxNV9zeW5jbWFwX2lzX2xhdGVyKCZ0bC0+c3luYywgY29udGV4dCwgc2Vxbm8pOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdGltZWxpbmVfc3luY19pc19sYXRlcihzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsLAorCQkJCQkJY29uc3Qgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCit7CisJcmV0dXJuIF9faW50ZWxfdGltZWxpbmVfc3luY19pc19sYXRlcih0bCwgZmVuY2UtPmNvbnRleHQsIGZlbmNlLT5zZXFubyk7Cit9CisKK2ludCBpbnRlbF90aW1lbGluZV9waW4oc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCk7Cit2b2lkIGludGVsX3RpbWVsaW5lX2VudGVyKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpOworaW50IGludGVsX3RpbWVsaW5lX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsLAorCQkJICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKKwkJCSAgICAgdTMyICpzZXFubyk7Cit2b2lkIGludGVsX3RpbWVsaW5lX2V4aXQoc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCk7Cit2b2lkIGludGVsX3RpbWVsaW5lX3VucGluKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpOworCitpbnQgaW50ZWxfdGltZWxpbmVfcmVhZF9od3NwKHN0cnVjdCBpOTE1X3JlcXVlc3QgKmZyb20sCisJCQkgICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnVudGlsLAorCQkJICAgICB1MzIgKmh3c3Bfb2Zmc2V0KTsKKwordm9pZCBpbnRlbF90aW1lbGluZXNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cit2b2lkIGludGVsX3RpbWVsaW5lc19maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmVfdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjFiYWYyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmVfdHlwZXMuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE2IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfX0k5MTVfVElNRUxJTkVfVFlQRVNfSF9fCisjZGVmaW5lIF9fSTkxNV9USU1FTElORV9UWVBFU19IX18KKworI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9rcmVmLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjaW5jbHVkZSAiaTkxNV9hY3RpdmVfdHlwZXMuaCIKKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CitzdHJ1Y3QgaTkxNV92bWE7CitzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lOworc3RydWN0IGk5MTVfc3luY21hcDsKKworc3RydWN0IGludGVsX3RpbWVsaW5lIHsKKwl1NjQgZmVuY2VfY29udGV4dDsKKwl1MzIgc2Vxbm87CisKKwlzdHJ1Y3QgbXV0ZXggbXV0ZXg7IC8qIHByb3RlY3RzIHRoZSBmbG93IG9mIHJlcXVlc3RzICovCisKKwkvKgorCSAqIHBpbl9jb3VudCBhbmQgYWN0aXZlX2NvdW50IHRyYWNrIGVzc2VudGlhbGx5IHRoZSBzYW1lIHRoaW5nOgorCSAqIEhvdyBtYW55IHJlcXVlc3RzIGFyZSBpbiBmbGlnaHQgb3IgbWF5IGJlIHVuZGVyIGNvbnN0cnVjdGlvbi4KKwkgKgorCSAqIFdlIG5lZWQgdHdvIGRpc3RpbmN0IGNvdW50ZXJzIHNvIHRoYXQgd2UgY2FuIGFzc2lnbiBkaWZmZXJlbnQKKwkgKiBsaWZldGltZXMgdG8gdGhlIGV2ZW50cyBmb3IgZGlmZmVyZW50IHVzZS1jYXNlcy4gRm9yIGV4YW1wbGUsCisJICogd2Ugd2FudCB0byBwZXJtYW5lbnRseSBrZWVwIHRoZSB0aW1lbGluZSBwaW5uZWQgZm9yIHRoZSBrZXJuZWwKKwkgKiBjb250ZXh0IHNvIHRoYXQgd2UgY2FuIGlzc3VlIHJlcXVlc3RzIGF0IGFueSB0aW1lIHdpdGhvdXQgaGF2aW5nCisJICogdG8gYWNxdWlyZSBzcGFjZSBpbiB0aGUgR0dUVC4gSG93ZXZlciwgd2Ugd2FudCB0byBrZWVwIHRyYWNraW5nCisJICogdGhlIGFjdGl2aXR5ICh0byBiZSBhYmxlIHRvIGRldGVjdCB3aGVuIHdlIGJlY29tZSBpZGxlKSBhbG9uZyB0aGF0CisJICogcGVybWFuZW50bHkgcGlubmVkIHRpbWVsaW5lIGFuZCBzbyBlbmQgdXAgcmVxdWlyaW5nIHR3byBjb3VudGVycy4KKwkgKgorCSAqIE5vdGUgdGhhdCB0aGUgYWN0aXZlX2NvdW50IGlzIHByb3RlY3RlZCBieSB0aGUgaW50ZWxfdGltZWxpbmUubXV0ZXgsCisJICogYnV0IHRoZSBwaW5fY291bnQgaXMgcHJvdGVjdGVkIGJ5IGEgY29tYmluYXRpb24gb2Ygc2VyaWFsaXNhdGlvbgorCSAqIGZyb20gdGhlIGludGVsX2NvbnRleHQgY2FsbGVyIHBsdXMgaW50ZXJuYWwgYXRvbWljaXR5LgorCSAqLworCWF0b21pY190IHBpbl9jb3VudDsKKwl1bnNpZ25lZCBpbnQgYWN0aXZlX2NvdW50OworCisJY29uc3QgdTMyICpod3NwX3NlcW5vOworCXN0cnVjdCBpOTE1X3ZtYSAqaHdzcF9nZ3R0OworCXUzMiBod3NwX29mZnNldDsKKworCXN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgKmh3c3BfY2FjaGVsaW5lOworCisJYm9vbCBoYXNfaW5pdGlhbF9icmVhZGNydW1iOworCisJLyoqCisJICogTGlzdCBvZiBicmVhZGNydW1icyBhc3NvY2lhdGVkIHdpdGggR1BVIHJlcXVlc3RzIGN1cnJlbnRseQorCSAqIG91dHN0YW5kaW5nLgorCSAqLworCXN0cnVjdCBsaXN0X2hlYWQgcmVxdWVzdHM7CisKKwkvKiBDb250YWlucyBhbiBSQ1UgZ3VhcmRlZCBwb2ludGVyIHRvIHRoZSBsYXN0IHJlcXVlc3QuIE5vIHJlZmVyZW5jZSBpcworCSAqIGhlbGQgdG8gdGhlIHJlcXVlc3QsIHVzZXJzIG11c3QgY2FyZWZ1bGx5IGFjcXVpcmUgYSByZWZlcmVuY2UgdG8KKwkgKiB0aGUgcmVxdWVzdCB1c2luZyBpOTE1X2FjdGl2ZV9yZXF1ZXN0X2dldF9yZXF1ZXN0X3JjdSgpLCBvciBob2xkIHRoZQorCSAqIHN0cnVjdF9tdXRleC4KKwkgKi8KKwlzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCBsYXN0X3JlcXVlc3Q7CisKKwkvKioKKwkgKiBXZSB0cmFjayB0aGUgbW9zdCByZWNlbnQgc2Vxbm8gdGhhdCB3ZSB3YWl0IG9uIGluIGV2ZXJ5IGNvbnRleHQgc28KKwkgKiB0aGF0IHdlIG9ubHkgaGF2ZSB0byBlbWl0IGEgbmV3IGF3YWl0IGFuZCBkZXBlbmRlbmN5IG9uIGEgbW9yZQorCSAqIHJlY2VudCBzeW5jIHBvaW50LiBBcyB0aGUgY29udGV4dHMgbWF5IGJlIGV4ZWN1dGVkIG91dC1vZi1vcmRlciwgd2UKKwkgKiBoYXZlIHRvIHRyYWNrIGVhY2ggaW5kaXZpZHVhbGx5IGFuZCBjYW4gbm90IHJlbHkgb24gYW4gYWJzb2x1dGUKKwkgKiBnbG9iYWxfc2Vxbm8uIFdoZW4gd2Uga25vdyB0aGF0IGFsbCB0cmFja2VkIGZlbmNlcyBhcmUgY29tcGxldGVkCisJICogKGkuZS4gd2hlbiB0aGUgZHJpdmVyIGlzIGlkbGUpLCB3ZSBrbm93IHRoYXQgdGhlIHN5bmNtYXAgaXMKKwkgKiByZWR1bmRhbnQgYW5kIHdlIGNhbiBkaXNjYXJkIGl0IHdpdGhvdXQgbG9zcyBvZiBnZW5lcmFsaXR5LgorCSAqLworCXN0cnVjdCBpOTE1X3N5bmNtYXAgKnN5bmM7CisKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7CisJc3RydWN0IGludGVsX2d0ICpndDsKKworCXN0cnVjdCBrcmVmIGtyZWY7Cit9OworCisjZW5kaWYgLyogX19JOTE1X1RJTUVMSU5FX1RZUEVTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzLmMKaW5kZXggOTllODI0Mi4uNDU0ODFlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jCkBAIC02LDYgKzYsNyBAQAogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF9jb250ZXh0LmgiCisjaW5jbHVkZSAiaW50ZWxfZ3QuaCIKICNpbmNsdWRlICJpbnRlbF93b3JrYXJvdW5kcy5oIgogCiAvKioKQEAgLTQ5LDkgKzUwLDEwIEBACiAgKiAtIFB1YmxpYyBmdW5jdGlvbnMgdG8gaW5pdCBvciBhcHBseSB0aGUgZ2l2ZW4gd29ya2Fyb3VuZCB0eXBlLgogICovCiAKLXN0YXRpYyB2b2lkIHdhX2luaXRfc3RhcnQoc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsLCBjb25zdCBjaGFyICpuYW1lKQorc3RhdGljIHZvaWQgd2FfaW5pdF9zdGFydChzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwsIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmVuZ2luZV9uYW1lKQogewogCXdhbC0+bmFtZSA9IG5hbWU7CisJd2FsLT5lbmdpbmVfbmFtZSA9IGVuZ2luZV9uYW1lOwogfQogCiAjZGVmaW5lIFdBX0xJU1RfQ0hVTksgKDEgPDwgNCkKQEAgLTczLDggKzc1LDggQEAgc3RhdGljIHZvaWQgd2FfaW5pdF9maW5pc2goc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQogCWlmICghd2FsLT5jb3VudCkKIAkJcmV0dXJuOwogCi0JRFJNX0RFQlVHX0RSSVZFUigiSW5pdGlhbGl6ZWQgJXUgJXMgd29ya2Fyb3VuZHNcbiIsCi0JCQkgd2FsLT53YV9jb3VudCwgd2FsLT5uYW1lKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJJbml0aWFsaXplZCAldSAlcyB3b3JrYXJvdW5kcyBvbiAlc1xuIiwKKwkJCSB3YWwtPndhX2NvdW50LCB3YWwtPm5hbWUsIHdhbC0+ZW5naW5lX25hbWUpOwogfQogCiBzdGF0aWMgdm9pZCBfd2FfYWRkKHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCwgY29uc3Qgc3RydWN0IGk5MTVfd2EgKndhKQpAQCAtMTc1LDE5ICsxNzcsNiBAQCB3YV93cml0ZV9vcihzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwsIGk5MTVfcmVnX3QgcmVnLCB1MzIgdmFsKQogCXdhX3dyaXRlX21hc2tlZF9vcih3YWwsIHJlZywgdmFsLCB2YWwpOwogfQogCi1zdGF0aWMgdm9pZAotaWdub3JlX3dhX3dyaXRlX29yKHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCwgaTkxNV9yZWdfdCByZWcsIHUzMiBtYXNrLCB1MzIgdmFsKQotewotCXN0cnVjdCBpOTE1X3dhIHdhID0gewotCQkucmVnICA9IHJlZywKLQkJLm1hc2sgPSBtYXNrLAotCQkudmFsICA9IHZhbCwKLQkJLyogQm9ua2VycyBIVywgc2tpcCB2ZXJpZnlpbmcgKi8KLQl9OwotCi0JX3dhX2FkZCh3YWwsICZ3YSk7Ci19Ci0KICNkZWZpbmUgV0FfU0VUX0JJVF9NQVNLRUQoYWRkciwgbWFzaykgXAogCXdhX3dyaXRlX21hc2tlZF9vcih3YWwsIChhZGRyKSwgKG1hc2spLCBfTUFTS0VEX0JJVF9FTkFCTEUobWFzaykpCiAKQEAgLTUzMSwxMiArNTIwLDYgQEAgc3RhdGljIHZvaWQgaWNsX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJIGludGVsX3VuY29yZV9yZWFkKGVuZ2luZS0+dW5jb3JlLCBHRU44X0wzQ05UTFJFRykgfAogCQkgR0VOOF9FUlJERVRCQ1RSTCk7CiAKLQkvKiBXYURpc2FibGVCYW5rSGFuZ01vZGU6aWNsICovCi0Jd2Ffd3JpdGUod2FsLAotCQkgR0VOOF9MM0NOVExSRUcsCi0JCSBpbnRlbF91bmNvcmVfcmVhZChlbmdpbmUtPnVuY29yZSwgR0VOOF9MM0NOVExSRUcpIHwKLQkJIEdFTjhfRVJSREVUQkNUUkwpOwotCiAJLyogV2FfMTYwNDM3MDU4NTppY2wgKHByZS1wcm9kKQogCSAqIEZvcm1lcmx5IGtub3duIGFzIFdhUHVzaENvbnN0YW50RGVyZWZlcmVuY2VIb2xkRGlzYWJsZQogCSAqLwpAQCAtNTgxLDYgKzU2NCwxMSBAQCBzdGF0aWMgdm9pZCBpY2xfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJICBHRU4xMV9TQU1QTEVSX0VOQUJMRV9IRUFETEVTU19NU0cpOwogfQogCitzdGF0aWMgdm9pZCB0Z2xfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCSAgICAgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQoreworfQorCiBzdGF0aWMgdm9pZAogX19pbnRlbF9lbmdpbmVfaW5pdF9jdHhfd2Eoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJICAgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsLApAQCAtNTkxLDkgKzU3OSwxMSBAQCBfX2ludGVsX2VuZ2luZV9pbml0X2N0eF93YShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJaWYgKGVuZ2luZS0+Y2xhc3MgIT0gUkVOREVSX0NMQVNTKQogCQlyZXR1cm47CiAKLQl3YV9pbml0X3N0YXJ0KHdhbCwgbmFtZSk7CisJd2FfaW5pdF9zdGFydCh3YWwsIG5hbWUsIGVuZ2luZS0+bmFtZSk7CiAKLQlpZiAoSVNfR0VOKGk5MTUsIDExKSkKKwlpZiAoSVNfR0VOKGk5MTUsIDEyKSkKKwkJdGdsX2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSwgd2FsKTsKKwllbHNlIGlmIChJU19HRU4oaTkxNSwgMTEpKQogCQlpY2xfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2UgaWYgKElTX0NBTk5PTkxBS0UoaTkxNSkpCiAJCWNubF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CkBAIC03NjEsNyArNzUxLDEwIEBAIHN0YXRpYyB2b2lkCiB3YV9pbml0X21jcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQogewogCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhpOTE1KS0+c3NldTsKLQl1MzIgbWNyX3NsaWNlX3N1YnNsaWNlX21hc2s7CisJdW5zaWduZWQgaW50IHNsaWNlLCBzdWJzbGljZTsKKwl1MzIgbDNfZW4sIG1jciwgbWNyX21hc2s7CisKKwlHRU1fQlVHX09OKElOVEVMX0dFTihpOTE1KSA8IDEwKTsKIAogCS8qCiAJICogV2FQcm9ncmFtTWdzckZvckwzQmFua1NwZWNpZmljTW1pb1JlYWRzOiBjbmwsaWNsCkBAIC03NjksNDIgKzc2Miw3IEBAIHdhX2luaXRfbWNyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpCiAJICogdGhlIGNhc2UsIHdlIG1pZ2h0IG5lZWQgdG8gcHJvZ3JhbSBNQ1Igc2VsZWN0IHRvIGEgdmFsaWQgTDNCYW5rCiAJICogYnkgZGVmYXVsdCwgdG8gbWFrZSBzdXJlIHdlIGNvcnJlY3RseSByZWFkIGNlcnRhaW4gcmVnaXN0ZXJzCiAJICogbGF0ZXIgb24gKGluIHRoZSByYW5nZSAweEIxMDAgLSAweEIzRkYpLgotCSAqIFRoaXMgbWlnaHQgYmUgaW5jb21wYXRpYmxlIHdpdGgKLQkgKiBXYVByb2dyYW1NZ3NyRm9yQ29ycmVjdFNsaWNlU3BlY2lmaWNNbWlvUmVhZHMuCi0JICogRm9ydHVuYXRlbHksIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gaW4gcHJvZHVjdGlvbiBoYXJkd2FyZSwgc28KLQkgKiB3ZSBvbmx5IGFzc2VydCB0aGF0IHRoaXMgaXMgdGhlIGNhc2UgKGluc3RlYWQgb2YgaW1wbGVtZW50aW5nCi0JICogc29tZXRoaW5nIG1vcmUgY29tcGxleCB0aGF0IHJlcXVpcmVzIGNoZWNraW5nIHRoZSByYW5nZSBvZiBldmVyeQotCSAqIE1NSU8gcmVhZCkuCi0JICovCi0JaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMCAmJgotCSAgICBpc19wb3dlcl9vZl8yKHNzZXUtPnNsaWNlX21hc2spKSB7Ci0JCS8qCi0JCSAqIHJlYWQgRlVTRTMgZm9yIGVuYWJsZWQgTDMgQmFuayBJRHMsIGlmIEwzIEJhbmsgbWF0Y2hlcwotCQkgKiBlbmFibGVkIHN1YnNsaWNlLCBubyBuZWVkIHRvIHJlZGlyZWN0IE1DUiBwYWNrZXQKLQkJICovCi0JCXUzMiBzbGljZSA9IGZscyhzc2V1LT5zbGljZV9tYXNrKTsKLQkJdTMyIGZ1c2UzID0KLQkJCWludGVsX3VuY29yZV9yZWFkKCZpOTE1LT51bmNvcmUsIEdFTjEwX01JUlJPUl9GVVNFMyk7Ci0JCXU4IHNzX21hc2sgPSBzc2V1LT5zdWJzbGljZV9tYXNrW3NsaWNlXTsKLQotCQl1OCBlbmFibGVkX21hc2sgPSAoc3NfbWFzayB8IHNzX21hc2sgPj4KLQkJCQkgICBHRU4xMF9MM0JBTktfUEFJUl9DT1VOVCkgJiBHRU4xMF9MM0JBTktfTUFTSzsKLQkJdTggZGlzYWJsZWRfbWFzayA9IGZ1c2UzICYgR0VOMTBfTDNCQU5LX01BU0s7Ci0KLQkJLyoKLQkJICogUHJvZHVjdGlvbiBzaWxpY29uIHNob3VsZCBoYXZlIG1hdGNoZWQgTDNCYW5rIGFuZAotCQkgKiBzdWJzbGljZSBlbmFibGVkCi0JCSAqLwotCQlXQVJOX09OKChlbmFibGVkX21hc2sgJiBkaXNhYmxlZF9tYXNrKSAhPSBlbmFibGVkX21hc2spOwotCX0KLQotCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpCi0JCW1jcl9zbGljZV9zdWJzbGljZV9tYXNrID0gR0VOMTFfTUNSX1NMSUNFX01BU0sgfAotCQkJCQkgIEdFTjExX01DUl9TVUJTTElDRV9NQVNLOwotCWVsc2UKLQkJbWNyX3NsaWNlX3N1YnNsaWNlX21hc2sgPSBHRU44X01DUl9TTElDRV9NQVNLIHwKLQkJCQkJICBHRU44X01DUl9TVUJTTElDRV9NQVNLOwotCS8qCisJICoKIAkgKiBXYVByb2dyYW1NZ3NyRm9yQ29ycmVjdFNsaWNlU3BlY2lmaWNNbWlvUmVhZHM6Y25sLGljbAogCSAqIEJlZm9yZSBhbnkgTU1JTyByZWFkIGludG8gc2xpY2Uvc3Vic2xpY2Ugc3BlY2lmaWMgcmVnaXN0ZXJzLCBNQ1IKIAkgKiBwYWNrZXQgY29udHJvbCByZWdpc3RlciBuZWVkcyB0byBiZSBwcm9ncmFtbWVkIHRvIHBvaW50IHRvIGFueQpAQCAtODE0LDExICs3NzIsNTEgQEAgd2FfaW5pdF9tY3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIAkgKiBhcmUgY29uc2lzdGVudCBhY3Jvc3Mgcy9zcyBpbiBhbG1vc3QgYWxsIGNhc2VzLiBJbiB0aGUgcmFyZQogCSAqIG9jY2FzaW9ucywgc3VjaCBhcyBJTlNURE9ORSwgd2hlcmUgdGhpcyB2YWx1ZSBpcyBkZXBlbmRlbnQKIAkgKiBvbiBzL3NzIGNvbWJvLCB0aGUgcmVhZCBzaG91bGQgYmUgZG9uZSB3aXRoIHJlYWRfc3Vic2xpY2VfcmVnLgorCSAqCisJICogU2luY2UgR0VOOF9NQ1JfU0VMRUNUT1IgY29udGFpbnMgZHVhbC1wdXJwb3NlIGJpdHMgd2hpY2ggc2VsZWN0IGJvdGgKKwkgKiB0byB3aGljaCBzdWJzbGljZSwgb3IgdG8gd2hpY2ggTDMgYmFuaywgdGhlIHJlc3BlY3RpdmUgbW1pbyByZWFkcworCSAqIHdpbGwgZ28sIHdlIGhhdmUgdG8gZmluZCBhIGNvbW1vbiBpbmRleCB3aGljaCB3b3JrcyBmb3IgYm90aAorCSAqIGFjY2Vzc2VzLgorCSAqCisJICogQ2FzZSB3aGVyZSB3ZSBjYW5ub3QgZmluZCBhIGNvbW1vbiBpbmRleCBmb3J0dW5hdGVseSBzaG91bGQgbm90CisJICogaGFwcGVuIGluIHByb2R1Y3Rpb24gaGFyZHdhcmUsIHNvIHdlIG9ubHkgZW1pdCBhIHdhcm5pbmcgaW5zdGVhZCBvZgorCSAqIGltcGxlbWVudGluZyBzb21ldGhpbmcgbW9yZSBjb21wbGV4IHRoYXQgcmVxdWlyZXMgY2hlY2tpbmcgdGhlIHJhbmdlCisJICogb2YgZXZlcnkgTU1JTyByZWFkLgogCSAqLwotCXdhX3dyaXRlX21hc2tlZF9vcih3YWwsCi0JCQkgICBHRU44X01DUl9TRUxFQ1RPUiwKLQkJCSAgIG1jcl9zbGljZV9zdWJzbGljZV9tYXNrLAotCQkJICAgaW50ZWxfY2FsY3VsYXRlX21jcl9zX3NzX3NlbGVjdChpOTE1KSk7CisKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDEwICYmIGlzX3Bvd2VyX29mXzIoc3NldS0+c2xpY2VfbWFzaykpIHsKKwkJdTMyIGwzX2Z1c2UgPQorCQkJaW50ZWxfdW5jb3JlX3JlYWQoJmk5MTUtPnVuY29yZSwgR0VOMTBfTUlSUk9SX0ZVU0UzKSAmCisJCQlHRU4xMF9MM0JBTktfTUFTSzsKKworCQlEUk1fREVCVUdfRFJJVkVSKCJMMyBmdXNlID0gJXhcbiIsIGwzX2Z1c2UpOworCQlsM19lbiA9IH4obDNfZnVzZSA8PCBHRU4xMF9MM0JBTktfUEFJUl9DT1VOVCB8IGwzX2Z1c2UpOworCX0gZWxzZSB7CisJCWwzX2VuID0gfjA7CisJfQorCisJc2xpY2UgPSBmbHMoc3NldS0+c2xpY2VfbWFzaykgLSAxOworCUdFTV9CVUdfT04oc2xpY2UgPj0gQVJSQVlfU0laRShzc2V1LT5zdWJzbGljZV9tYXNrKSk7CisJc3Vic2xpY2UgPSBmbHMobDNfZW4gJiBzc2V1LT5zdWJzbGljZV9tYXNrW3NsaWNlXSk7CisJaWYgKCFzdWJzbGljZSkgeworCQlEUk1fV0FSTigiTm8gY29tbW9uIGluZGV4IGZvdW5kIGJldHdlZW4gc3Vic2xpY2UgbWFzayAleCBhbmQgTDMgYmFuayBtYXNrICV4IVxuIiwKKwkJCSBzc2V1LT5zdWJzbGljZV9tYXNrW3NsaWNlXSwgbDNfZW4pOworCQlzdWJzbGljZSA9IGZscyhsM19lbik7CisJCVdBUk5fT04oIXN1YnNsaWNlKTsKKwl9CisJc3Vic2xpY2UtLTsKKworCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpIHsKKwkJbWNyID0gR0VOMTFfTUNSX1NMSUNFKHNsaWNlKSB8IEdFTjExX01DUl9TVUJTTElDRShzdWJzbGljZSk7CisJCW1jcl9tYXNrID0gR0VOMTFfTUNSX1NMSUNFX01BU0sgfCBHRU4xMV9NQ1JfU1VCU0xJQ0VfTUFTSzsKKwl9IGVsc2UgeworCQltY3IgPSBHRU44X01DUl9TTElDRShzbGljZSkgfCBHRU44X01DUl9TVUJTTElDRShzdWJzbGljZSk7CisJCW1jcl9tYXNrID0gR0VOOF9NQ1JfU0xJQ0VfTUFTSyB8IEdFTjhfTUNSX1NVQlNMSUNFX01BU0s7CisJfQorCisJRFJNX0RFQlVHX0RSSVZFUigiTUNSIHNsaWNlL3N1YnNsaWNlID0gJXhcbiIsIG1jcik7CisKKwl3YV93cml0ZV9tYXNrZWRfb3Iod2FsLCBHRU44X01DUl9TRUxFQ1RPUiwgbWNyX21hc2ssIG1jcik7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC04OTUsOSArODkzLDE2IEBAIGljbF9ndF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpCiB9CiAKIHN0YXRpYyB2b2lkCit0Z2xfZ3Rfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQoreworfQorCitzdGF0aWMgdm9pZAogZ3RfaW5pdF93b3JrYXJvdW5kcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQogewotCWlmIChJU19HRU4oaTkxNSwgMTEpKQorCWlmIChJU19HRU4oaTkxNSwgMTIpKQorCQl0Z2xfZ3Rfd29ya2Fyb3VuZHNfaW5pdChpOTE1LCB3YWwpOworCWVsc2UgaWYgKElTX0dFTihpOTE1LCAxMSkpCiAJCWljbF9ndF93b3JrYXJvdW5kc19pbml0KGk5MTUsIHdhbCk7CiAJZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShpOTE1KSkKIAkJY25sX2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsKQEAgLTkyMSw3ICs5MjYsNyBAQCB2b2lkIGludGVsX2d0X2luaXRfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmk5MTUtPmd0X3dhX2xpc3Q7CiAKLQl3YV9pbml0X3N0YXJ0KHdhbCwgIkdUIik7CisJd2FfaW5pdF9zdGFydCh3YWwsICJHVCIsICJnbG9iYWwiKTsKIAlndF9pbml0X3dvcmthcm91bmRzKGk5MTUsIHdhbCk7CiAJd2FfaW5pdF9maW5pc2god2FsKTsKIH0KQEAgLTk4NSw5ICs5OTAsOSBAQCB3YV9saXN0X2FwcGx5KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwgY29uc3Qgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnVuY29yZS0+bG9jaywgZmxhZ3MpOwogfQogCi12b2lkIGludGVsX2d0X2FwcGx5X3dvcmthcm91bmRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQordm9pZCBpbnRlbF9ndF9hcHBseV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCXdhX2xpc3RfYXBwbHkoJmk5MTUtPnVuY29yZSwgJmk5MTUtPmd0X3dhX2xpc3QpOworCXdhX2xpc3RfYXBwbHkoZ3QtPnVuY29yZSwgJmd0LT5pOTE1LT5ndF93YV9saXN0KTsKIH0KIAogc3RhdGljIGJvb2wgd2FfbGlzdF92ZXJpZnkoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLApAQCAtMTAwNiwxMCArMTAxMSwyMyBAQCBzdGF0aWMgYm9vbCB3YV9saXN0X3ZlcmlmeShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAJcmV0dXJuIG9rOwogfQogCi1ib29sIGludGVsX2d0X3ZlcmlmeV93b3JrYXJvdW5kcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQkgY29uc3QgY2hhciAqZnJvbSkKK2Jvb2wgaW50ZWxfZ3RfdmVyaWZ5X3dvcmthcm91bmRzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGNvbnN0IGNoYXIgKmZyb20pCiB7Ci0JcmV0dXJuIHdhX2xpc3RfdmVyaWZ5KCZpOTE1LT51bmNvcmUsICZpOTE1LT5ndF93YV9saXN0LCBmcm9tKTsKKwlyZXR1cm4gd2FfbGlzdF92ZXJpZnkoZ3QtPnVuY29yZSwgJmd0LT5pOTE1LT5ndF93YV9saXN0LCBmcm9tKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzX25vbnByaXZfZmxhZ3NfdmFsaWQodTMyIGZsYWdzKQoreworCS8qIENoZWNrIG9ubHkgdmFsaWQgZmxhZyBiaXRzIGFyZSBzZXQgKi8KKwlpZiAoZmxhZ3MgJiB+UklOR19GT1JDRV9UT19OT05QUklWX01BU0tfVkFMSUQpCisJCXJldHVybiBmYWxzZTsKKworCS8qIE5COiBPbmx5IDMgb3V0IG9mIDQgZW51bSB2YWx1ZXMgYXJlIHZhbGlkIGZvciBhY2Nlc3MgZmllbGQgKi8KKwlpZiAoKGZsYWdzICYgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19NQVNLKSA9PQorCSAgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUNDRVNTX0lOVkFMSUQpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTAyMiw2ICsxMDQwLDkgQEAgd2hpdGVsaXN0X3JlZ19leHQoc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsLCBpOTE1X3JlZ190IHJlZywgdTMyIGZsYWdzKQogCWlmIChHRU1fREVCVUdfV0FSTl9PTih3YWwtPmNvdW50ID49IFJJTkdfTUFYX05PTlBSSVZfU0xPVFMpKQogCQlyZXR1cm47CiAKKwlpZiAoR0VNX0RFQlVHX1dBUk5fT04oIWlzX25vbnByaXZfZmxhZ3NfdmFsaWQoZmxhZ3MpKSkKKwkJcmV0dXJuOworCiAJd2EucmVnLnJlZyB8PSBmbGFnczsKIAlfd2FfYWRkKHdhbCwgJndhKTsKIH0KQEAgLTEwMjksNyArMTA1MCw3IEBAIHdoaXRlbGlzdF9yZWdfZXh0KHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCwgaTkxNV9yZWdfdCByZWcsIHUzMiBmbGFncykKIHN0YXRpYyB2b2lkCiB3aGl0ZWxpc3RfcmVnKHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCwgaTkxNV9yZWdfdCByZWcpCiB7Ci0Jd2hpdGVsaXN0X3JlZ19leHQod2FsLCByZWcsIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9SVyk7CisJd2hpdGVsaXN0X3JlZ19leHQod2FsLCByZWcsIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfUlcpOwogfQogCiBzdGF0aWMgdm9pZCBnZW45X3doaXRlbGlzdF9idWlsZChzdHJ1Y3QgaTkxNV93YV9saXN0ICp3KQpAQCAtMTExMCw3ICsxMTMxLDcgQEAgc3RhdGljIHZvaWQgY2ZsX3doaXRlbGlzdF9idWlsZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICogICAtIFBTX0RFUFRIX0NPVU5UX1VEVwogCSAqLwogCXdoaXRlbGlzdF9yZWdfZXh0KHcsIFBTX0lOVk9DQVRJT05fQ09VTlQsCi0JCQkgIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9SRCB8CisJCQkgIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfUkQgfAogCQkJICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkFOR0VfNCk7CiB9CiAKQEAgLTExNTAsMjAgKzExNzEsMjAgQEAgc3RhdGljIHZvaWQgaWNsX3doaXRlbGlzdF9idWlsZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCSAqICAgLSBQU19ERVBUSF9DT1VOVF9VRFcKIAkJICovCiAJCXdoaXRlbGlzdF9yZWdfZXh0KHcsIFBTX0lOVk9DQVRJT05fQ09VTlQsCi0JCQkJICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkQgfAorCQkJCSAgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19SRCB8CiAJCQkJICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkFOR0VfNCk7CiAJCWJyZWFrOwogCiAJY2FzZSBWSURFT19ERUNPREVfQ0xBU1M6CiAJCS8qIGh1Y1N0YXR1c1JlZ09mZnNldCAqLwogCQl3aGl0ZWxpc3RfcmVnX2V4dCh3LCBfTU1JTygweDIwMDAgKyBlbmdpbmUtPm1taW9fYmFzZSksCi0JCQkJICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkQpOworCQkJCSAgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19SRCk7CiAJCS8qIGh1Y1VLZXJuZWxIZHJJbmZvUmVnT2Zmc2V0ICovCiAJCXdoaXRlbGlzdF9yZWdfZXh0KHcsIF9NTUlPKDB4MjAxNCArIGVuZ2luZS0+bW1pb19iYXNlKSwKLQkJCQkgIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9SRCk7CisJCQkJICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUNDRVNTX1JEKTsKIAkJLyogaHVjU3RhdHVzMlJlZ09mZnNldCAqLwogCQl3aGl0ZWxpc3RfcmVnX2V4dCh3LCBfTU1JTygweDIzQjAgKyBlbmdpbmUtPm1taW9fYmFzZSksCi0JCQkJICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkQpOworCQkJCSAgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19SRCk7CiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKQEAgLTExNzEsMTQgKzExOTIsMjAgQEAgc3RhdGljIHZvaWQgaWNsX3doaXRlbGlzdF9idWlsZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJfQogfQogCitzdGF0aWMgdm9pZCB0Z2xfd2hpdGVsaXN0X2J1aWxkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKK30KKwogdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF93aGl0ZWxpc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1OwogCXN0cnVjdCBpOTE1X3dhX2xpc3QgKncgPSAmZW5naW5lLT53aGl0ZWxpc3Q7CiAKLQl3YV9pbml0X3N0YXJ0KHcsICJ3aGl0ZWxpc3QiKTsKKwl3YV9pbml0X3N0YXJ0KHcsICJ3aGl0ZWxpc3QiLCBlbmdpbmUtPm5hbWUpOwogCi0JaWYgKElTX0dFTihpOTE1LCAxMSkpCisJaWYgKElTX0dFTihpOTE1LCAxMikpCisJCXRnbF93aGl0ZWxpc3RfYnVpbGQoZW5naW5lKTsKKwllbHNlIGlmIChJU19HRU4oaTkxNSwgMTEpKQogCQlpY2xfd2hpdGVsaXN0X2J1aWxkKGVuZ2luZSk7CiAJZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShpOTE1KSkKIAkJY25sX3doaXRlbGlzdF9idWlsZChlbmdpbmUpOwpAQCAtMTIzNSwxMCArMTI2Miw5IEBAIHJjc19lbmdpbmVfd2FfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIAkJCSAgICAgXzNEX0NISUNLRU4zX0FBX0xJTkVfUVVBTElUWV9GSVhfRU5BQkxFKTsKIAogCQkvKiBXYVBpcGVsaW5lRmx1c2hDb2hlcmVudExpbmVzOmljbCAqLwotCQlpZ25vcmVfd2Ffd3JpdGVfb3Iod2FsLAotCQkJCSAgIEdFTjhfTDNTUUNSRUc0LAotCQkJCSAgIEdFTjhfTFFTQ19GTFVTSF9DT0hFUkVOVF9MSU5FUywKLQkJCQkgICBHRU44X0xRU0NfRkxVU0hfQ09IRVJFTlRfTElORVMpOworCQl3YV93cml0ZV9vcih3YWwsCisJCQkgICAgR0VOOF9MM1NRQ1JFRzQsCisJCQkgICAgR0VOOF9MUVNDX0ZMVVNIX0NPSEVSRU5UX0xJTkVTKTsKIAogCQkvKgogCQkgKiBXYV8xNDA1NTQzNjIyOmljbApAQCAtMTI2NSwxMCArMTI5MSw5IEBAIHJjc19lbmdpbmVfd2FfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIAkJICogV2FfMTQwNTczMzIxNjppY2wKIAkJICogRm9ybWVybHkga25vd24gYXMgV2FEaXNhYmxlQ2xlYW5FdmljdHMKIAkJICovCi0JCWlnbm9yZV93YV93cml0ZV9vcih3YWwsCi0JCQkJICAgR0VOOF9MM1NRQ1JFRzQsCi0JCQkJICAgR0VOMTFfTFFTQ19DTEVBTl9FVklDVF9ESVNBQkxFLAotCQkJCSAgIEdFTjExX0xRU0NfQ0xFQU5fRVZJQ1RfRElTQUJMRSk7CisJCXdhX3dyaXRlX29yKHdhbCwKKwkJCSAgICBHRU44X0wzU1FDUkVHNCwKKwkJCSAgICBHRU4xMV9MUVNDX0NMRUFOX0VWSUNUX0RJU0FCTEUpOwogCiAJCS8qIFdhRm9yd2FyZFByb2dyZXNzU29mdFJlc2V0OmljbCAqLwogCQl3YV93cml0ZV9vcih3YWwsCkBAIC0xMjg3LDYgKzEzMTIsMTIgQEAgcmNzX2VuZ2luZV93YV9pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQogCQl3YV93cml0ZV9vcih3YWwsCiAJCQkgICAgR0VON19TQVJDSEtNRCwKIAkJCSAgICBHRU43X0RJU0FCTEVfU0FNUExFUl9QUkVGRVRDSCk7CisKKwkJLyogV2FfMTQwOTE3ODA5MjppY2wgKi8KKwkJd2Ffd3JpdGVfbWFza2VkX29yKHdhbCwKKwkJCQkgICBHRU4xMV9TQ1JBVENIMiwKKwkJCQkgICBHRU4xMV9DT0hFUkVOVF9QQVJUSUFMX1dSSVRFX01FUkdFX0VOQUJMRSwKKwkJCQkgICAwKTsKIAl9CiAKIAlpZiAoSVNfR0VOX1JBTkdFKGk5MTUsIDksIDExKSkgewpAQCAtMTM1NSw3ICsxMzg2LDcgQEAgZW5naW5lX2luaXRfd29ya2Fyb3VuZHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwKIAlpZiAoSTkxNV9TRUxGVEVTVF9PTkxZKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpIDwgOCkpCiAJCXJldHVybjsKIAotCWlmIChlbmdpbmUtPmlkID09IFJDUzApCisJaWYgKGVuZ2luZS0+Y2xhc3MgPT0gUkVOREVSX0NMQVNTKQogCQlyY3NfZW5naW5lX3dhX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2UKIAkJeGNzX2VuZ2luZV93YV9pbml0KGVuZ2luZSwgd2FsKTsKQEAgLTEzNjUsMTAgKzEzOTYsMTAgQEAgdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmVuZ2luZS0+d2FfbGlzdDsKIAotCWlmIChHRU1fV0FSTl9PTihJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSA8IDgpKQorCWlmIChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSA8IDgpCiAJCXJldHVybjsKIAotCXdhX2luaXRfc3RhcnQod2FsLCBlbmdpbmUtPm5hbWUpOworCXdhX2luaXRfc3RhcnQod2FsLCAiZW5naW5lIiwgZW5naW5lLT5uYW1lKTsKIAllbmdpbmVfaW5pdF93b3JrYXJvdW5kcyhlbmdpbmUsIHdhbCk7CiAJd2FfaW5pdF9maW5pc2god2FsKTsKIH0KQEAgLTE0MTEsMjYgKzE0NDIsNTAgQEAgY3JlYXRlX3NjcmF0Y2goc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sIGludCBjb3VudCkKIAlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCitzdGF0aWMgYm9vbCBtY3JfcmFuZ2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHUzMiBvZmZzZXQpCit7CisJLyoKKwkgKiBSZWdpc3RlcnMgaW4gdGhpcyByYW5nZSBhcmUgYWZmZWN0ZWQgYnkgdGhlIE1DUiBzZWxlY3RvcgorCSAqIHdoaWNoIG9ubHkgY29udHJvbHMgQ1BVIGluaXRpYXRlZCBNTUlPLiBSb3V0aW5nIGRvZXMgbm90CisJICogd29yayBmb3IgQ1MgYWNjZXNzIHNvIHdlIGNhbm5vdCB2ZXJpZnkgdGhlbSBvbiB0aGlzIHBhdGguCisJICovCisJaWYgKElOVEVMX0dFTihpOTE1KSA+PSA4ICYmIChvZmZzZXQgPj0gMHhiMTAwICYmIG9mZnNldCA8PSAweGIzZmYpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGludAogd2FfbGlzdF9zcm0oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJICAgIGNvbnN0IHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCwKIAkgICAgc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBycS0+aTkxNTsKKwl1bnNpZ25lZCBpbnQgaSwgY291bnQgPSAwOwogCWNvbnN0IHN0cnVjdCBpOTE1X3dhICp3YTsKLQl1bnNpZ25lZCBpbnQgaTsKIAl1MzIgc3JtLCAqY3M7CiAKIAlzcm0gPSBNSV9TVE9SRV9SRUdJU1RFUl9NRU0gfCBNSV9TUk1fTFJNX0dMT0JBTF9HVFQ7Ci0JaWYgKElOVEVMX0dFTihycS0+aTkxNSkgPj0gOCkKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDgpCiAJCXNybSsrOwogCi0JY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJxLCA0ICogd2FsLT5jb3VudCk7CisJZm9yIChpID0gMCwgd2EgPSB3YWwtPmxpc3Q7IGkgPCB3YWwtPmNvdW50OyBpKyssIHdhKyspIHsKKwkJaWYgKCFtY3JfcmFuZ2UoaTkxNSwgaTkxNV9tbWlvX3JlZ19vZmZzZXQod2EtPnJlZykpKQorCQkJY291bnQrKzsKKwl9CisKKwljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDQgKiBjb3VudCk7CiAJaWYgKElTX0VSUihjcykpCiAJCXJldHVybiBQVFJfRVJSKGNzKTsKIAogCWZvciAoaSA9IDAsIHdhID0gd2FsLT5saXN0OyBpIDwgd2FsLT5jb3VudDsgaSsrLCB3YSsrKSB7CisJCXUzMiBvZmZzZXQgPSBpOTE1X21taW9fcmVnX29mZnNldCh3YS0+cmVnKTsKKworCQlpZiAobWNyX3JhbmdlKGk5MTUsIG9mZnNldCkpCisJCQljb250aW51ZTsKKwogCQkqY3MrKyA9IHNybTsKLQkJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldCh3YS0+cmVnKTsKKwkJKmNzKysgPSBvZmZzZXQ7CiAJCSpjcysrID0gaTkxNV9nZ3R0X29mZnNldCh2bWEpICsgc2l6ZW9mKHUzMikgKiBpOwogCQkqY3MrKyA9IDA7CiAJfQpAQCAtMTQ1Myw3ICsxNTA4LDcgQEAgc3RhdGljIGludCBlbmdpbmVfd2FfbGlzdF92ZXJpZnkoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCWlmICghd2FsLT5jb3VudCkKIAkJcmV0dXJuIDA7CiAKLQl2bWEgPSBjcmVhdGVfc2NyYXRjaCgmY2UtPmVuZ2luZS0+aTkxNS0+Z2d0dC52bSwgd2FsLT5jb3VudCk7CisJdm1hID0gY3JlYXRlX3NjcmF0Y2goJmNlLT5lbmdpbmUtPmd0LT5nZ3R0LT52bSwgd2FsLT5jb3VudCk7CiAJaWYgKElTX0VSUih2bWEpKQogCQlyZXR1cm4gUFRSX0VSUih2bWEpOwogCkBAIC0xNDgwLDkgKzE1MzUsMTMgQEAgc3RhdGljIGludCBlbmdpbmVfd2FfbGlzdF92ZXJpZnkoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCX0KIAogCWVyciA9IDA7Ci0JZm9yIChpID0gMCwgd2EgPSB3YWwtPmxpc3Q7IGkgPCB3YWwtPmNvdW50OyBpKyssIHdhKyspCisJZm9yIChpID0gMCwgd2EgPSB3YWwtPmxpc3Q7IGkgPCB3YWwtPmNvdW50OyBpKyssIHdhKyspIHsKKwkJaWYgKG1jcl9yYW5nZShycS0+aTkxNSwgaTkxNV9tbWlvX3JlZ19vZmZzZXQod2EtPnJlZykpKQorCQkJY29udGludWU7CisKIAkJaWYgKCF3YV92ZXJpZnkod2EsIHJlc3VsdHNbaV0sIHdhbC0+bmFtZSwgZnJvbSkpCiAJCQllcnIgPSAtRU5YSU87CisJfQogCiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCh2bWEtPm9iaik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5oCmluZGV4IDM3NjFhNmUuLjhjOWM3NjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMuaApAQCAtMTQsNiArMTQsNyBAQAogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CiBzdHJ1Y3QgaTkxNV9yZXF1ZXN0Owogc3RydWN0IGludGVsX2VuZ2luZV9jczsKK3N0cnVjdCBpbnRlbF9ndDsKIAogc3RhdGljIGlubGluZSB2b2lkIGludGVsX3dhX2xpc3RfZnJlZShzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpCiB7CkBAIC0yNSw5ICsyNiw4IEBAIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfY3R4X3dhKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiBpbnQgaW50ZWxfZW5naW5lX2VtaXRfY3R4X3dhKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKTsKIAogdm9pZCBpbnRlbF9ndF9pbml0X3dvcmthcm91bmRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZvaWQgaW50ZWxfZ3RfYXBwbHlfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotYm9vbCBpbnRlbF9ndF92ZXJpZnlfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCQkJIGNvbnN0IGNoYXIgKmZyb20pOwordm9pZCBpbnRlbF9ndF9hcHBseV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKK2Jvb2wgaW50ZWxfZ3RfdmVyaWZ5X3dvcmthcm91bmRzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGNvbnN0IGNoYXIgKmZyb20pOwogCiB2b2lkIGludGVsX2VuZ2luZV9pbml0X3doaXRlbGlzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogdm9pZCBpbnRlbF9lbmdpbmVfYXBwbHlfd2hpdGVsaXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kc190eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHNfdHlwZXMuaAppbmRleCA0MmFjMWZiLi5lMjdhYjFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kc190eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzX3R5cGVzLmgKQEAgLTIwLDYgKzIwLDcgQEAgc3RydWN0IGk5MTVfd2EgewogCiBzdHJ1Y3QgaTkxNV93YV9saXN0IHsKIAljb25zdCBjaGFyCSpuYW1lOworCWNvbnN0IGNoYXIJKmVuZ2luZV9uYW1lOwogCXN0cnVjdCBpOTE1X3dhCSpsaXN0OwogCXVuc2lnbmVkIGludAljb3VudDsKIAl1bnNpZ25lZCBpbnQJd2FfY291bnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9tb2NrX2VuZ2luZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19lbmdpbmUuYwppbmRleCA0ODZjNjk1Li41ZDQzY2JjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9tb2NrX2VuZ2luZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMKQEAgLTI3LDU5ICsyNyw0MCBAQAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfY29udGV4dC5oIgogI2luY2x1ZGUgImludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImludGVsX2VuZ2luZV9wb29sLmgiCiAKICNpbmNsdWRlICJtb2NrX2VuZ2luZS5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuaCIKIAotc3RydWN0IG1vY2tfcmluZyB7Ci0Jc3RydWN0IGludGVsX3JpbmcgYmFzZTsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSB0aW1lbGluZTsKLX07Ci0KLXN0YXRpYyB2b2lkIG1vY2tfdGltZWxpbmVfcGluKHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCkKK3N0YXRpYyB2b2lkIG1vY2tfdGltZWxpbmVfcGluKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpCiB7Ci0JdGwtPnBpbl9jb3VudCsrOworCWF0b21pY19pbmMoJnRsLT5waW5fY291bnQpOwogfQogCi1zdGF0aWMgdm9pZCBtb2NrX3RpbWVsaW5lX3VucGluKHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCkKK3N0YXRpYyB2b2lkIG1vY2tfdGltZWxpbmVfdW5waW4oc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCkKIHsKLQlHRU1fQlVHX09OKCF0bC0+cGluX2NvdW50KTsKLQl0bC0+cGluX2NvdW50LS07CisJR0VNX0JVR19PTighYXRvbWljX3JlYWQoJnRsLT5waW5fY291bnQpKTsKKwlhdG9taWNfZGVjKCZ0bC0+cGluX2NvdW50KTsKIH0KIAogc3RhdGljIHN0cnVjdCBpbnRlbF9yaW5nICptb2NrX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCWNvbnN0IHVuc2lnbmVkIGxvbmcgc3ogPSBQQUdFX1NJWkUgLyAyOwotCXN0cnVjdCBtb2NrX3JpbmcgKnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7CiAKIAlyaW5nID0ga3phbGxvYyhzaXplb2YoKnJpbmcpICsgc3osIEdGUF9LRVJORUwpOwogCWlmICghcmluZykKIAkJcmV0dXJuIE5VTEw7CiAKLQlpZiAoaTkxNV90aW1lbGluZV9pbml0KGVuZ2luZS0+aTkxNSwgJnJpbmctPnRpbWVsaW5lLCBOVUxMKSkgewotCQlrZnJlZShyaW5nKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQorCWtyZWZfaW5pdCgmcmluZy0+cmVmKTsKKwlyaW5nLT5zaXplID0gc3o7CisJcmluZy0+ZWZmZWN0aXZlX3NpemUgPSBzejsKKwlyaW5nLT52YWRkciA9ICh2b2lkICopKHJpbmcgKyAxKTsKKwlhdG9taWNfc2V0KCZyaW5nLT5waW5fY291bnQsIDEpOwogCi0Ja3JlZl9pbml0KCZyaW5nLT5iYXNlLnJlZik7Ci0JcmluZy0+YmFzZS5zaXplID0gc3o7Ci0JcmluZy0+YmFzZS5lZmZlY3RpdmVfc2l6ZSA9IHN6OwotCXJpbmctPmJhc2UudmFkZHIgPSAodm9pZCAqKShyaW5nICsgMSk7Ci0JcmluZy0+YmFzZS50aW1lbGluZSA9ICZyaW5nLT50aW1lbGluZTsKLQlhdG9taWNfc2V0KCZyaW5nLT5iYXNlLnBpbl9jb3VudCwgMSk7CisJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZyk7CiAKLQlJTklUX0xJU1RfSEVBRCgmcmluZy0+YmFzZS5yZXF1ZXN0X2xpc3QpOwotCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKCZyaW5nLT5iYXNlKTsKLQotCXJldHVybiAmcmluZy0+YmFzZTsKLX0KLQotc3RhdGljIHZvaWQgbW9ja19yaW5nX2ZyZWUoc3RydWN0IGludGVsX3JpbmcgKmJhc2UpCi17Ci0Jc3RydWN0IG1vY2tfcmluZyAqcmluZyA9IGNvbnRhaW5lcl9vZihiYXNlLCB0eXBlb2YoKnJpbmcpLCBiYXNlKTsKLQotCWk5MTVfdGltZWxpbmVfZmluaSgmcmluZy0+dGltZWxpbmUpOwotCWtmcmVlKHJpbmcpOworCXJldHVybiByaW5nOwogfQogCiBzdGF0aWMgc3RydWN0IGk5MTVfcmVxdWVzdCAqZmlyc3RfcmVxdWVzdChzdHJ1Y3QgbW9ja19lbmdpbmUgKmVuZ2luZSkKQEAgLTEzMCw3ICsxMTEsNiBAQCBzdGF0aWMgdm9pZCBod19kZWxheV9jb21wbGV0ZShzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAogc3RhdGljIHZvaWQgbW9ja19jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIHsKLQltb2NrX3RpbWVsaW5lX3VucGluKGNlLT5yaW5nLT50aW1lbGluZSk7CiB9CiAKIHN0YXRpYyB2b2lkIG1vY2tfY29udGV4dF9kZXN0cm95KHN0cnVjdCBrcmVmICpyZWYpCkBAIC0xMzksMzEgKzExOSw0MSBAQCBzdGF0aWMgdm9pZCBtb2NrX2NvbnRleHRfZGVzdHJveShzdHJ1Y3Qga3JlZiAqcmVmKQogCiAJR0VNX0JVR19PTihpbnRlbF9jb250ZXh0X2lzX3Bpbm5lZChjZSkpOwogCi0JaWYgKGNlLT5yaW5nKQotCQltb2NrX3JpbmdfZnJlZShjZS0+cmluZyk7CisJaWYgKHRlc3RfYml0KENPTlRFWFRfQUxMT0NfQklULCAmY2UtPmZsYWdzKSkgeworCQlrZnJlZShjZS0+cmluZyk7CisJCW1vY2tfdGltZWxpbmVfdW5waW4oY2UtPnRpbWVsaW5lKTsKKwl9CiAKKwlpbnRlbF9jb250ZXh0X2ZpbmkoY2UpOwogCWludGVsX2NvbnRleHRfZnJlZShjZSk7CiB9CiAKK3N0YXRpYyBpbnQgbW9ja19jb250ZXh0X2FsbG9jKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKK3sKKwljZS0+cmluZyA9IG1vY2tfcmluZyhjZS0+ZW5naW5lKTsKKwlpZiAoIWNlLT5yaW5nKQorCQlyZXR1cm4gLUVOT01FTTsKKworCUdFTV9CVUdfT04oY2UtPnRpbWVsaW5lKTsKKwljZS0+dGltZWxpbmUgPSBpbnRlbF90aW1lbGluZV9jcmVhdGUoY2UtPmVuZ2luZS0+Z3QsIE5VTEwpOworCWlmIChJU19FUlIoY2UtPnRpbWVsaW5lKSkgeworCQlrZnJlZShjZS0+ZW5naW5lKTsKKwkJcmV0dXJuIFBUUl9FUlIoY2UtPnRpbWVsaW5lKTsKKwl9CisKKwltb2NrX3RpbWVsaW5lX3BpbihjZS0+dGltZWxpbmUpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgbW9ja19jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7Ci0JaW50IHJldDsKLQotCWlmICghY2UtPnJpbmcpIHsKLQkJY2UtPnJpbmcgPSBtb2NrX3JpbmcoY2UtPmVuZ2luZSk7Ci0JCWlmICghY2UtPnJpbmcpCi0JCQlyZXR1cm4gLUVOT01FTTsKLQl9Ci0KLQlyZXQgPSBpbnRlbF9jb250ZXh0X2FjdGl2ZV9hY3F1aXJlKGNlLCBQSU5fSElHSCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCW1vY2tfdGltZWxpbmVfcGluKGNlLT5yaW5nLT50aW1lbGluZSk7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGludGVsX2NvbnRleHRfYWN0aXZlX2FjcXVpcmUoY2UpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHRfb3BzIG1vY2tfY29udGV4dF9vcHMgPSB7CisJLmFsbG9jID0gbW9ja19jb250ZXh0X2FsbG9jLAorCiAJLnBpbiA9IG1vY2tfY29udGV4dF9waW4sCiAJLnVucGluID0gbW9ja19jb250ZXh0X3VucGluLAogCkBAIC0yNTcsOSArMjQ3LDExIEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKm1vY2tfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCiAJLyogbWluaW1hbCBlbmdpbmUgc2V0dXAgZm9yIHJlcXVlc3RzICovCiAJZW5naW5lLT5iYXNlLmk5MTUgPSBpOTE1OworCWVuZ2luZS0+YmFzZS5ndCA9ICZpOTE1LT5ndDsKIAlzbnByaW50ZihlbmdpbmUtPmJhc2UubmFtZSwgc2l6ZW9mKGVuZ2luZS0+YmFzZS5uYW1lKSwgIiVzIiwgbmFtZSk7CiAJZW5naW5lLT5iYXNlLmlkID0gaWQ7CiAJZW5naW5lLT5iYXNlLm1hc2sgPSBCSVQoaWQpOworCWVuZ2luZS0+YmFzZS5pbnN0YW5jZSA9IGlkOwogCWVuZ2luZS0+YmFzZS5zdGF0dXNfcGFnZS5hZGRyID0gKHZvaWQgKikoZW5naW5lICsgMSk7CiAKIAllbmdpbmUtPmJhc2UuY29wcyA9ICZtb2NrX2NvbnRleHRfb3BzOwpAQCAtMjc4LDI5ICsyNzAsMjYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqbW9ja19lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJdGltZXJfc2V0dXAoJmVuZ2luZS0+aHdfZGVsYXksIGh3X2RlbGF5X2NvbXBsZXRlLCAwKTsKIAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5od19xdWV1ZSk7CiAKKwlpbnRlbF9lbmdpbmVfYWRkX3VzZXIoJmVuZ2luZS0+YmFzZSk7CisKIAlyZXR1cm4gJmVuZ2luZS0+YmFzZTsKIH0KIAogaW50IG1vY2tfZW5naW5lX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1OwotCWludCBlcnI7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCiAJaW50ZWxfZW5naW5lX2luaXRfYWN0aXZlKGVuZ2luZSwgRU5HSU5FX01PQ0spOwogCWludGVsX2VuZ2luZV9pbml0X2JyZWFkY3J1bWJzKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX2luaXRfZXhlY2xpc3RzKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX2luaXRfX3BtKGVuZ2luZSk7CisJaW50ZWxfZW5naW5lX3Bvb2xfaW5pdCgmZW5naW5lLT5wb29sKTsKIAotCWVuZ2luZS0+a2VybmVsX2NvbnRleHQgPQotCQlpOTE1X2dlbV9jb250ZXh0X2dldF9lbmdpbmUoaTkxNS0+a2VybmVsX2NvbnRleHQsIGVuZ2luZS0+aWQpOwotCWlmIChJU19FUlIoZW5naW5lLT5rZXJuZWxfY29udGV4dCkpCisJY2UgPSBjcmVhdGVfa2VybmVsX2NvbnRleHQoZW5naW5lKTsKKwlpZiAoSVNfRVJSKGNlKSkKIAkJZ290byBlcnJfYnJlYWRjcnVtYnM7CiAKLQllcnIgPSBpbnRlbF9jb250ZXh0X3BpbihlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKLQlpbnRlbF9jb250ZXh0X3B1dChlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9icmVhZGNydW1iczsKLQorCWVuZ2luZS0+a2VybmVsX2NvbnRleHQgPSBjZTsKIAlyZXR1cm4gMDsKIAogZXJyX2JyZWFkY3J1bWJzOgpAQCAtMzM0LDYgKzMyMyw3IEBAIHZvaWQgbW9ja19lbmdpbmVfZnJlZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJR0VNX0JVR19PTih0aW1lcl9wZW5kaW5nKCZtb2NrLT5od19kZWxheSkpOwogCiAJaW50ZWxfY29udGV4dF91bnBpbihlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKwlpbnRlbF9jb250ZXh0X3B1dChlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKIAogCWludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKGVuZ2luZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2NvbnRleHQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDFlYTI2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfY29udGV4dC5jCkBAIC0wLDAgKzEsNDU2IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCisjaW5jbHVkZSAiaW50ZWxfZW5naW5lX3BtLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3QuaCIKKworI2luY2x1ZGUgImdlbS9zZWxmdGVzdHMvbW9ja19jb250ZXh0LmgiCisjaW5jbHVkZSAic2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmgiCisjaW5jbHVkZSAic2VsZnRlc3RzL21vY2tfZHJtLmgiCisKK3N0YXRpYyBpbnQgcmVxdWVzdF9zeW5jKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCWxvbmcgdGltZW91dDsKKwlpbnQgZXJyID0gMDsKKworCWk5MTVfcmVxdWVzdF9nZXQocnEpOworCisJaTkxNV9yZXF1ZXN0X2FkZChycSk7CisJdGltZW91dCA9IGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWiAvIDEwKTsKKwlpZiAodGltZW91dCA8IDApIHsKKwkJZXJyID0gdGltZW91dDsKKwl9IGVsc2UgeworCQltdXRleF9sb2NrKCZycS0+dGltZWxpbmUtPm11dGV4KTsKKwkJaTkxNV9yZXF1ZXN0X3JldGlyZV91cHRvKHJxKTsKKwkJbXV0ZXhfdW5sb2NrKCZycS0+dGltZWxpbmUtPm11dGV4KTsKKwl9CisKKwlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgY29udGV4dF9zeW5jKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsID0gY2UtPnRpbWVsaW5lOworCWludCBlcnIgPSAwOworCisJbXV0ZXhfbG9jaygmdGwtPm11dGV4KTsKKwlkbyB7CisJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCQlsb25nIHRpbWVvdXQ7CisKKwkJcmN1X3JlYWRfbG9jaygpOworCQlycSA9IHJjdV9kZXJlZmVyZW5jZSh0bC0+bGFzdF9yZXF1ZXN0LnJlcXVlc3QpOworCQlpZiAocnEpCisJCQlycSA9IGk5MTVfcmVxdWVzdF9nZXRfcmN1KHJxKTsKKwkJcmN1X3JlYWRfdW5sb2NrKCk7CisJCWlmICghcnEpCisJCQlicmVhazsKKworCQl0aW1lb3V0ID0gaTkxNV9yZXF1ZXN0X3dhaXQocnEsIDAsIEhaIC8gMTApOworCQlpZiAodGltZW91dCA8IDApCisJCQllcnIgPSB0aW1lb3V0OworCQllbHNlCisJCQlpOTE1X3JlcXVlc3RfcmV0aXJlX3VwdG8ocnEpOworCisJCWk5MTVfcmVxdWVzdF9wdXQocnEpOworCX0gd2hpbGUgKCFlcnIpOworCW11dGV4X3VubG9jaygmdGwtPm11dGV4KTsKKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgX19saXZlX2NvbnRleHRfc2l6ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkgICAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmZpeG1lKQoreworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwl2b2lkICp2YWRkcjsKKwlpbnQgZXJyOworCisJY2UgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZShmaXhtZSwgZW5naW5lKTsKKwlpZiAoSVNfRVJSKGNlKSkKKwkJcmV0dXJuIFBUUl9FUlIoY2UpOworCisJZXJyID0gaW50ZWxfY29udGV4dF9waW4oY2UpOworCWlmIChlcnIpCisJCWdvdG8gZXJyOworCisJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChjZS0+c3RhdGUtPm9iaiwKKwkJCQkJaTkxNV9jb2hlcmVudF9tYXBfdHlwZShlbmdpbmUtPmk5MTUpKTsKKwlpZiAoSVNfRVJSKHZhZGRyKSkgeworCQllcnIgPSBQVFJfRVJSKHZhZGRyKTsKKwkJaW50ZWxfY29udGV4dF91bnBpbihjZSk7CisJCWdvdG8gZXJyOworCX0KKworCS8qCisJICogTm90ZSB0aGF0IGV4ZWNsaXN0cyBhbHNvIGFwcGxpZXMgYSByZWR6b25lIHdoaWNoIGl0IGNoZWNrcyBvbgorCSAqIGNvbnRleHQgdW5waW4gd2hlbiBkZWJ1Z2dpbmcuIFdlIGFyZSB1c2luZyB0aGUgc2FtZSBsb2NhdGlvbgorCSAqIGFuZCBzYW1lIHBvaXNvbiB2YWx1ZSBzbyB0aGF0IG91ciBjaGVja3Mgb3ZlcmxhcC4gRGVzcGl0ZSB0aGUKKwkgKiByZWR1bmRhbmN5LCB3ZSB3YW50IHRvIGtlZXAgdGhpcyBsaXR0bGUgc2VsZnRlc3Qgc28gdGhhdCB3ZQorCSAqIGdldCBjb3ZlcmFnZSBvZiBhbnkgYW5kIGFsbCBzdWJtaXNzaW9uIGJhY2tlbmRzLCBhbmQgd2UgY2FuCisJICogYWx3YXlzIGV4dGVuZCB0aGlzIHRlc3QgdG8gZW5zdXJlIHdlIHRyaWNrIHRoZSBIVyBpbnRvIGEKKwkgKiBjb21wcm9taXNpbmcgcG9zaXRpb24gd3J0IHRvIHRoZSB2YXJpb3VzIHNlY3Rpb25zIHRoYXQgbmVlZAorCSAqIHRvIGJlIHdyaXR0ZW4gaW50byB0aGUgY29udGV4dCBzdGF0ZS4KKwkgKgorCSAqIFRMRFI7IHRoaXMgb3ZlcmxhcHMgd2l0aCB0aGUgZXhlY2xpc3RzIHJlZHpvbmUuCisJICovCisJaWYgKEhBU19FWEVDTElTVFMoZW5naW5lLT5pOTE1KSkKKwkJdmFkZHIgKz0gTFJDX0hFQURFUl9QQUdFUyAqIFBBR0VfU0laRTsKKworCXZhZGRyICs9IGVuZ2luZS0+Y29udGV4dF9zaXplIC0gSTkxNV9HVFRfUEFHRV9TSVpFOworCW1lbXNldCh2YWRkciwgUE9JU09OX0lOVVNFLCBJOTE1X0dUVF9QQUdFX1NJWkUpOworCisJcnEgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZV9yZXF1ZXN0KGNlKTsKKwlpbnRlbF9jb250ZXh0X3VucGluKGNlKTsKKwlpZiAoSVNfRVJSKHJxKSkgeworCQllcnIgPSBQVFJfRVJSKHJxKTsKKwkJZ290byBlcnJfdW5waW47CisJfQorCisJZXJyID0gcmVxdWVzdF9zeW5jKHJxKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl91bnBpbjsKKworCS8qIEZvcmNlIHRoZSBjb250ZXh0IHN3aXRjaCAqLworCXJxID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZShlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKwlpZiAoSVNfRVJSKHJxKSkgeworCQllcnIgPSBQVFJfRVJSKHJxKTsKKwkJZ290byBlcnJfdW5waW47CisJfQorCWVyciA9IHJlcXVlc3Rfc3luYyhycSk7CisJaWYgKGVycikKKwkJZ290byBlcnJfdW5waW47CisKKwlpZiAobWVtY2hyX2ludih2YWRkciwgUE9JU09OX0lOVVNFLCBJOTE1X0dUVF9QQUdFX1NJWkUpKSB7CisJCXByX2VycigiJXMgY29udGV4dCBvdmVyd3JvdGUgdHJhaWxpbmcgcmVkLXpvbmUhIiwgZW5naW5lLT5uYW1lKTsKKwkJZXJyID0gLUVJTlZBTDsKKwl9CisKK2Vycl91bnBpbjoKKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5zdGF0ZS0+b2JqKTsKK2VycjoKKwlpbnRlbF9jb250ZXh0X3B1dChjZSk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBsaXZlX2NvbnRleHRfc2l6ZSh2b2lkICphcmcpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmZpeG1lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCWludCBlcnIgPSAwOworCisJLyoKKwkgKiBDaGVjayB0aGF0IG91ciBjb250ZXh0IHNpemVzIGFyZSBjb3JyZWN0IGJ5IHNlZWluZyBpZiB0aGUKKwkgKiBIVyB0cmllcyB0byB3cml0ZSBwYXN0IHRoZSBlbmQgb2Ygb25lLgorCSAqLworCisJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJZml4bWUgPSBrZXJuZWxfY29udGV4dChndC0+aTkxNSk7CisJaWYgKElTX0VSUihmaXhtZSkpIHsKKwkJZXJyID0gUFRSX0VSUihmaXhtZSk7CisJCWdvdG8gdW5sb2NrOworCX0KKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCQlzdHJ1Y3QgeworCQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnN0YXRlOworCQkJdm9pZCAqcGlubmVkOworCQl9IHNhdmVkOworCisJCWlmICghZW5naW5lLT5jb250ZXh0X3NpemUpCisJCQljb250aW51ZTsKKworCQlpbnRlbF9lbmdpbmVfcG1fZ2V0KGVuZ2luZSk7CisKKwkJLyoKKwkJICogSGlkZSB0aGUgb2xkIGRlZmF1bHQgc3RhdGUgLS0gd2UgbGllIGFib3V0IHRoZSBjb250ZXh0IHNpemUKKwkJICogYW5kIGdldCBjb25mdXNlZCB3aGVuIHRoZSBkZWZhdWx0IHN0YXRlIGlzIHNtYWxsZXIgdGhhbgorCQkgKiBleHBlY3RlZC4gRm9yIG91ciBkbyBub3RoaW5nIHJlcXVlc3QsIGluaGVyaXRpbmcgdGhlCisJCSAqIGFjdGl2ZSBzdGF0ZSBpcyBzdWZmaWNpZW50LCB3ZSBhcmUgb25seSBjaGVja2luZyB0aGF0IHdlCisJCSAqIGRvbid0IHVzZSBtb3JlIHRoYW4gd2UgcGxhbm5lZC4KKwkJICovCisJCXNhdmVkLnN0YXRlID0gZmV0Y2hfYW5kX3plcm8oJmVuZ2luZS0+ZGVmYXVsdF9zdGF0ZSk7CisJCXNhdmVkLnBpbm5lZCA9IGZldGNoX2FuZF96ZXJvKCZlbmdpbmUtPnBpbm5lZF9kZWZhdWx0X3N0YXRlKTsKKworCQkvKiBPdmVybGFwcyB3aXRoIHRoZSBleGVjbGlzdHMgcmVkem9uZSAqLworCQllbmdpbmUtPmNvbnRleHRfc2l6ZSArPSBJOTE1X0dUVF9QQUdFX1NJWkU7CisKKwkJZXJyID0gX19saXZlX2NvbnRleHRfc2l6ZShlbmdpbmUsIGZpeG1lKTsKKworCQllbmdpbmUtPmNvbnRleHRfc2l6ZSAtPSBJOTE1X0dUVF9QQUdFX1NJWkU7CisKKwkJZW5naW5lLT5waW5uZWRfZGVmYXVsdF9zdGF0ZSA9IHNhdmVkLnBpbm5lZDsKKwkJZW5naW5lLT5kZWZhdWx0X3N0YXRlID0gc2F2ZWQuc3RhdGU7CisKKwkJaW50ZWxfZW5naW5lX3BtX3B1dChlbmdpbmUpOworCisJCWlmIChlcnIpCisJCQlicmVhazsKKwl9CisKKwlrZXJuZWxfY29udGV4dF9jbG9zZShmaXhtZSk7Cit1bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBfX2xpdmVfYWN0aXZlX2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCSBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqZml4bWUpCit7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOworCWludCBwYXNzOworCWludCBlcnI7CisKKwkvKgorCSAqIFdlIGtlZXAgYWN0aXZlIGNvbnRleHRzIGFsaXZlIHVudGlsIGFmdGVyIGEgc3Vic2VxdWVudCBjb250ZXh0CisJICogc3dpdGNoIGFzIHRoZSBmaW5hbCB3cml0ZSBmcm9tIHRoZSBjb250ZXh0LXNhdmUgd2lsbCBiZSBhZnRlcgorCSAqIHdlIHJldGlyZSB0aGUgZmluYWwgcmVxdWVzdC4gV2UgdHJhY2sgd2hlbiB3ZSB1bnBpbiB0aGUgY29udGV4dCwKKwkgKiB1bmRlciB0aGUgcHJlc3VtcHRpb24gdGhhdCB0aGUgZmluYWwgcGluIGlzIGZyb20gdGhlIGxhc3QgcmVxdWVzdCwKKwkgKiBhbmQgaW5zdGVhZCBvZiBpbW1lZGlhdGVseSB1bnBpbm5pbmcgdGhlIGNvbnRleHQsIHdlIGFkZCBhIHRhc2sKKwkgKiB0byB1bnBpbiB0aGUgY29udGV4dCBmcm9tIHRoZSBuZXh0IGlkbGUtYmFycmllci4KKwkgKgorCSAqIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRleHQgaXMga2VwdCBhbGl2ZSB1bnRpbCBhCisJICogc3Vic2VxdWVudCBpZGxlLWJhcnJpZXIgKGVtaXR0ZWQgd2hlbiB0aGUgZW5naW5lIHdha2VyZWYgaGl0cyAwCisJICogd2l0aCBubyBtb3JlIG91dHN0YW5kaW5nIHJlcXVlc3RzKS4KKwkgKi8KKworCWlmIChpbnRlbF9lbmdpbmVfcG1faXNfYXdha2UoZW5naW5lKSkgeworCQlwcl9lcnIoIiVzIGlzIGF3YWtlIGJlZm9yZSBzdGFydGluZyAlcyFcbiIsCisJCSAgICAgICBlbmdpbmUtPm5hbWUsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJY2UgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZShmaXhtZSwgZW5naW5lKTsKKwlpZiAoSVNfRVJSKGNlKSkKKwkJcmV0dXJuIFBUUl9FUlIoY2UpOworCisJZm9yIChwYXNzID0gMDsgcGFzcyA8PSAyOyBwYXNzKyspIHsKKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisKKwkJcnEgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZV9yZXF1ZXN0KGNlKTsKKwkJaWYgKElTX0VSUihycSkpIHsKKwkJCWVyciA9IFBUUl9FUlIocnEpOworCQkJZ290byBlcnI7CisJCX0KKworCQllcnIgPSByZXF1ZXN0X3N5bmMocnEpOworCQlpZiAoZXJyKQorCQkJZ290byBlcnI7CisKKwkJLyogQ29udGV4dCB3aWxsIGJlIGtlcHQgYWN0aXZlIHVudGlsIGFmdGVyIGFuIGlkbGUtYmFycmllci4gKi8KKwkJaWYgKGk5MTVfYWN0aXZlX2lzX2lkbGUoJmNlLT5hY3RpdmUpKSB7CisJCQlwcl9lcnIoImNvbnRleHQgaXMgbm90IGFjdGl2ZTsgZXhwZWN0ZWQgaWRsZS1iYXJyaWVyICglcyBwYXNzICVkKVxuIiwKKwkJCSAgICAgICBlbmdpbmUtPm5hbWUsIHBhc3MpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJaWYgKCFpbnRlbF9lbmdpbmVfcG1faXNfYXdha2UoZW5naW5lKSkgeworCQkJcHJfZXJyKCIlcyBpcyBhc2xlZXAgYmVmb3JlIGlkbGUtYmFycmllclxuIiwKKwkJCSAgICAgICBlbmdpbmUtPm5hbWUpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyOworCQl9CisJfQorCisJLyogTm93IG1ha2Ugc3VyZSBvdXIgaWRsZS1iYXJyaWVycyBhcmUgZmx1c2hlZCAqLworCWVyciA9IGNvbnRleHRfc3luYyhlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycjsKKworCWlmICghaTkxNV9hY3RpdmVfaXNfaWRsZSgmY2UtPmFjdGl2ZSkpIHsKKwkJcHJfZXJyKCJjb250ZXh0IGlzIHN0aWxsIGFjdGl2ZSEiKTsKKwkJZXJyID0gLUVJTlZBTDsKKwl9CisKKwlpZiAoaW50ZWxfZW5naW5lX3BtX2lzX2F3YWtlKGVuZ2luZSkpIHsKKwkJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fZGVidWdfcHJpbnRlcihfX2Z1bmNfXyk7CisKKwkJaW50ZWxfZW5naW5lX2R1bXAoZW5naW5lLCAmcCwKKwkJCQkgICIlcyBpcyBzdGlsbCBhd2FrZSBhZnRlciBpZGxlLWJhcnJpZXJzXG4iLAorCQkJCSAgZW5naW5lLT5uYW1lKTsKKwkJR0VNX1RSQUNFX0RVTVAoKTsKKworCQllcnIgPSAtRUlOVkFMOworCQlnb3RvIGVycjsKKwl9CisKK2VycjoKKwlpbnRlbF9jb250ZXh0X3B1dChjZSk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBsaXZlX2FjdGl2ZV9jb250ZXh0KHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqZml4bWU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJc3RydWN0IGRybV9maWxlICpmaWxlOworCWludCBlcnIgPSAwOworCisJZmlsZSA9IG1vY2tfZmlsZShndC0+aTkxNSk7CisJaWYgKElTX0VSUihmaWxlKSkKKwkJcmV0dXJuIFBUUl9FUlIoZmlsZSk7CisKKwltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKKwlmaXhtZSA9IGxpdmVfY29udGV4dChndC0+aTkxNSwgZmlsZSk7CisJaWYgKElTX0VSUihmaXhtZSkpIHsKKwkJZXJyID0gUFRSX0VSUihmaXhtZSk7CisJCWdvdG8gdW5sb2NrOworCX0KKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCQllcnIgPSBfX2xpdmVfYWN0aXZlX2NvbnRleHQoZW5naW5lLCBmaXhtZSk7CisJCWlmIChlcnIpCisJCQlicmVhazsKKworCQllcnIgPSBpZ3RfZmx1c2hfdGVzdChndC0+aTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7CisJCWlmIChlcnIpCisJCQlicmVhazsKKwl9CisKK3VubG9jazoKKwltdXRleF91bmxvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwltb2NrX2ZpbGVfZnJlZShndC0+aTkxNSwgZmlsZSk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBfX3JlbW90ZV9zeW5jKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgc3RydWN0IGludGVsX2NvbnRleHQgKnJlbW90ZSkKK3sKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwlpbnQgZXJyOworCisJZXJyID0gaW50ZWxfY29udGV4dF9waW4ocmVtb3RlKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJcnEgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZV9yZXF1ZXN0KGNlKTsKKwlpZiAoSVNfRVJSKHJxKSkgeworCQllcnIgPSBQVFJfRVJSKHJxKTsKKwkJZ290byB1bnBpbjsKKwl9CisKKwllcnIgPSBpbnRlbF9jb250ZXh0X3ByZXBhcmVfcmVtb3RlX3JlcXVlc3QocmVtb3RlLCBycSk7CisJaWYgKGVycikgeworCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKKwkJZ290byB1bnBpbjsKKwl9CisKKwllcnIgPSByZXF1ZXN0X3N5bmMocnEpOworCit1bnBpbjoKKwlpbnRlbF9jb250ZXh0X3VucGluKHJlbW90ZSk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBfX2xpdmVfcmVtb3RlX2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCSBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqZml4bWUpCit7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmxvY2FsLCAqcmVtb3RlOworCWludCBwYXNzOworCWludCBlcnI7CisKKwkvKgorCSAqIENoZWNrIHRoYXQgb3VyIGlkbGUgYmFycmllcnMgZG8gbm90IGludGVyZmVyZSB3aXRoIG5vcm1hbAorCSAqIGFjdGl2aXR5IHRyYWNraW5nLiBJbiBwYXJ0aWN1bGFyLCBjaGVjayB0aGF0IG9wZXJhdGluZworCSAqIG9uIHRoZSBjb250ZXh0IGltYWdlIHJlbW90ZWx5IChpbnRlbF9jb250ZXh0X3ByZXBhcmVfcmVtb3RlX3JlcXVlc3QpLAorCSAqIHdoaWNoIGluc2VydHMgZm9yZWlnbiBmZW5jZXMgaW50byBpbnRlbF9jb250ZXh0LmFjdGl2ZSwgZG9lcyBub3QKKwkgKiBjbG9iYmVyIHRoZSBpZGxlLWJhcnJpZXIuCisJICovCisKKwlyZW1vdGUgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZShmaXhtZSwgZW5naW5lKTsKKwlpZiAoSVNfRVJSKHJlbW90ZSkpCisJCXJldHVybiBQVFJfRVJSKHJlbW90ZSk7CisKKwlsb2NhbCA9IGludGVsX2NvbnRleHRfY3JlYXRlKGZpeG1lLCBlbmdpbmUpOworCWlmIChJU19FUlIobG9jYWwpKSB7CisJCWVyciA9IFBUUl9FUlIobG9jYWwpOworCQlnb3RvIGVycl9yZW1vdGU7CisJfQorCisJZm9yIChwYXNzID0gMDsgcGFzcyA8PSAyOyBwYXNzKyspIHsKKwkJZXJyID0gX19yZW1vdGVfc3luYyhsb2NhbCwgcmVtb3RlKTsKKwkJaWYgKGVycikKKwkJCWJyZWFrOworCisJCWVyciA9IF9fcmVtb3RlX3N5bmMoZW5naW5lLT5rZXJuZWxfY29udGV4dCwgcmVtb3RlKTsKKwkJaWYgKGVycikKKwkJCWJyZWFrOworCisJCWlmIChpOTE1X2FjdGl2ZV9pc19pZGxlKCZyZW1vdGUtPmFjdGl2ZSkpIHsKKwkJCXByX2VycigicmVtb3RlIGNvbnRleHQgaXMgbm90IGFjdGl2ZTsgZXhwZWN0ZWQgaWRsZS1iYXJyaWVyICglcyBwYXNzICVkKVxuIiwKKwkJCSAgICAgICBlbmdpbmUtPm5hbWUsIHBhc3MpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaW50ZWxfY29udGV4dF9wdXQobG9jYWwpOworZXJyX3JlbW90ZToKKwlpbnRlbF9jb250ZXh0X3B1dChyZW1vdGUpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgbGl2ZV9yZW1vdGVfY29udGV4dCh2b2lkICphcmcpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmZpeG1lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZTsKKwlpbnQgZXJyID0gMDsKKworCWZpbGUgPSBtb2NrX2ZpbGUoZ3QtPmk5MTUpOworCWlmIChJU19FUlIoZmlsZSkpCisJCXJldHVybiBQVFJfRVJSKGZpbGUpOworCisJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJZml4bWUgPSBsaXZlX2NvbnRleHQoZ3QtPmk5MTUsIGZpbGUpOworCWlmIChJU19FUlIoZml4bWUpKSB7CisJCWVyciA9IFBUUl9FUlIoZml4bWUpOworCQlnb3RvIHVubG9jazsKKwl9CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwkJZXJyID0gX19saXZlX3JlbW90ZV9jb250ZXh0KGVuZ2luZSwgZml4bWUpOworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisKKwkJZXJyID0gaWd0X2ZsdXNoX3Rlc3QoZ3QtPmk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisJfQorCit1bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJbW9ja19maWxlX2ZyZWUoZ3QtPmk5MTUsIGZpbGUpOworCXJldHVybiBlcnI7Cit9CisKK2ludCBpbnRlbF9jb250ZXh0X2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CisJCVNVQlRFU1QobGl2ZV9jb250ZXh0X3NpemUpLAorCQlTVUJURVNUKGxpdmVfYWN0aXZlX2NvbnRleHQpLAorCQlTVUJURVNUKGxpdmVfcmVtb3RlX2NvbnRleHQpLAorCX07CisJc3RydWN0IGludGVsX2d0ICpndCA9ICZpOTE1LT5ndDsKKworCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZ3QpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBpbnRlbF9ndF9saXZlX3N1YnRlc3RzKHRlc3RzLCBndCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2VuZ2luZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NWIxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmUuYwpAQCAtMCwwICsxLDI4IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCisjaW5jbHVkZSAic2VsZnRlc3RfZW5naW5lLmgiCisKK2ludCBpbnRlbF9lbmdpbmVfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJc3RhdGljIGludCAoKiBjb25zdCB0ZXN0c1tdKShzdHJ1Y3QgaW50ZWxfZ3QgKikgPSB7CisJCWxpdmVfZW5naW5lX3BtX3NlbGZ0ZXN0cywKKwkJTlVMTCwKKwl9OworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmaTkxNS0+Z3Q7CisJdHlwZW9mKCp0ZXN0cykgKmZuOworCisJZm9yIChmbiA9IHRlc3RzOyAqZm47IGZuKyspIHsKKwkJaW50IGVycjsKKworCQllcnIgPSAoKmZuKShndCk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjMyZDA5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lLmgKQEAgLTAsMCArMSwxNCBAQAorLyoKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisgKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIFNFTEZURVNUX0VOR0lORV9ICisjZGVmaW5lIFNFTEZURVNUX0VOR0lORV9ICisKK3N0cnVjdCBpbnRlbF9ndDsKKworaW50IGxpdmVfZW5naW5lX3BtX3NlbGZ0ZXN0cyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2VuZ2luZV9jcy5jCmluZGV4IGNmYWE2YjI5Li4zODgwZjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfY3MuYwpAQCAtMTIsMTkgKzEyLDE4IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW1pb19iYXNlc19jaGVjayh2b2lkICphcmcpCiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbnRlbF9lbmdpbmVzKTsgaSsrKSB7CiAJCWNvbnN0IHN0cnVjdCBlbmdpbmVfaW5mbyAqaW5mbyA9ICZpbnRlbF9lbmdpbmVzW2ldOwotCQljaGFyIG5hbWVbSU5URUxfRU5HSU5FX0NTX01BWF9OQU1FXTsKIAkJdTggcHJldiA9IFU4X01BWDsKIAotCQlfX3NwcmludF9lbmdpbmVfbmFtZShuYW1lLCBpbmZvKTsKLQogCQlmb3IgKGogPSAwOyBqIDwgTUFYX01NSU9fQkFTRVM7IGorKykgewogCQkJdTggZ2VuID0gaW5mby0+bW1pb19iYXNlc1tqXS5nZW47CiAJCQl1MzIgYmFzZSA9IGluZm8tPm1taW9fYmFzZXNbal0uYmFzZTsKIAogCQkJaWYgKGdlbiA+PSBwcmV2KSB7Ci0JCQkJcHJfZXJyKCIlczogJXM6IG1taW8gYmFzZSBmb3IgZ2VuICV4ICIKLQkJCQkJImlzIGJlZm9yZSB0aGUgb25lIGZvciBnZW4gJXhcbiIsCi0JCQkJICAgICAgIF9fZnVuY19fLCBuYW1lLCBwcmV2LCBnZW4pOworCQkJCXByX2VycigiJXMoJXMsIGNsYXNzOiVkLCBpbnN0YW5jZTolZCk6IG1taW8gYmFzZSBmb3IgZ2VuICV4IGlzIGJlZm9yZSB0aGUgb25lIGZvciBnZW4gJXhcbiIsCisJCQkJICAgICAgIF9fZnVuY19fLAorCQkJCSAgICAgICBpbnRlbF9lbmdpbmVfY2xhc3NfcmVwcihpbmZvLT5jbGFzcyksCisJCQkJICAgICAgIGluZm8tPmNsYXNzLCBpbmZvLT5pbnN0YW5jZSwKKwkJCQkgICAgICAgcHJldiwgZ2VuKTsKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0KIApAQCAtMzIsMTcgKzMxLDIyIEBAIHN0YXRpYyBpbnQgaW50ZWxfbW1pb19iYXNlc19jaGVjayh2b2lkICphcmcpCiAJCQkJYnJlYWs7CiAKIAkJCWlmICghYmFzZSkgewotCQkJCXByX2VycigiJXM6ICVzOiBpbnZhbGlkIG1taW8gYmFzZSAoJXgpICIKLQkJCQkJImZvciBnZW4gJXggYXQgZW50cnkgJXVcbiIsCi0JCQkJICAgICAgIF9fZnVuY19fLCBuYW1lLCBiYXNlLCBnZW4sIGopOworCQkJCXByX2VycigiJXMoJXMsIGNsYXNzOiVkLCBpbnN0YW5jZTolZCk6IGludmFsaWQgbW1pbyBiYXNlICgleCkgZm9yIGdlbiAleCBhdCBlbnRyeSAldVxuIiwKKwkJCQkgICAgICAgX19mdW5jX18sCisJCQkJICAgICAgIGludGVsX2VuZ2luZV9jbGFzc19yZXByKGluZm8tPmNsYXNzKSwKKwkJCQkgICAgICAgaW5mby0+Y2xhc3MsIGluZm8tPmluc3RhbmNlLAorCQkJCSAgICAgICBiYXNlLCBnZW4sIGopOwogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJfQogCiAJCQlwcmV2ID0gZ2VuOwogCQl9CiAKLQkJcHJfaW5mbygiJXM6IG1pbiBnZW4gc3VwcG9ydGVkIGZvciAlcyA9ICVkXG4iLAotCQkJX19mdW5jX18sIG5hbWUsIHByZXYpOworCQlwcl9kZWJ1ZygiJXM6IG1pbiBnZW4gc3VwcG9ydGVkIGZvciAlcyVkIGlzICVkXG4iLAorCQkJIF9fZnVuY19fLAorCQkJIGludGVsX2VuZ2luZV9jbGFzc19yZXByKGluZm8tPmNsYXNzKSwKKwkJCSBpbmZvLT5pbnN0YW5jZSwKKwkJCSBwcmV2KTsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2VuZ2luZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX3BtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ExNDE5MwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2VuZ2luZV9wbS5jCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKKyNpbmNsdWRlICJzZWxmdGVzdF9lbmdpbmUuaCIKKyNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X2F0b21pYy5oIgorCitzdGF0aWMgaW50IGxpdmVfZW5naW5lX3BtKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKworCS8qCisJICogQ2hlY2sgd2UgY2FuIGNhbGwgaW50ZWxfZW5naW5lX3BtX3B1dCBmcm9tIGFueSBjb250ZXh0LiBObworCSAqIGZhaWx1cmVzIGFyZSByZXBvcnRlZCBkaXJlY3RseSwgYnV0IGlmIHdlIG1lc3MgdXAgbG9ja2RlcCBzaG91bGQKKwkgKiB0ZWxsIHVzLgorCSAqLworCWlmIChpbnRlbF9ndF9wbV93YWl0X2Zvcl9pZGxlKGd0KSkgeworCQlwcl9lcnIoIlVuYWJsZSB0byBmbHVzaCBHVCBwbSBiZWZvcmUgdGVzdFxuIik7CisJCXJldHVybiAtRUJVU1k7CisJfQorCisJR0VNX0JVR19PTihpbnRlbF9ndF9wbV9pc19hd2FrZShndCkpOworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCQljb25zdCB0eXBlb2YoKmlndF9hdG9taWNfcGhhc2VzKSAqcDsKKworCQlmb3IgKHAgPSBpZ3RfYXRvbWljX3BoYXNlczsgcC0+bmFtZTsgcCsrKSB7CisJCQkvKgorCQkJICogQWNxdWlzaXRpb24gaXMgYWx3YXlzIHN5bmNocm9ub3VzLCBleGNlcHQgaWYgd2UKKwkJCSAqIGtub3cgdGhhdCB0aGUgZW5naW5lIGlzIGFscmVhZHkgYXdha2UsIGluIHdoaWNoCisJCQkgKiBjYXNlIHdlIHNob3VsZCB1c2UgaW50ZWxfZW5naW5lX3BtX2dldF9pZl9hd2FrZSgpCisJCQkgKiB0byBhdG9taWNhbGx5IGdyYWIgdGhlIHdha2VyZWYuCisJCQkgKgorCQkJICogSW4gcHJhY3RpY2UsCisJCQkgKiAgICBpbnRlbF9lbmdpbmVfcG1fZ2V0KCk7CisJCQkgKiAgICBpbnRlbF9lbmdpbmVfcG1fcHV0KCk7CisJCQkgKiBvY2N1cnMgaW4gb25lIHRocmVhZCwgd2hpbGUgc2ltdWx0YW5lb3VzbHkKKwkJCSAqICAgIGludGVsX2VuZ2luZV9wbV9nZXRfaWZfYXdha2UoKTsKKwkJCSAqICAgIGludGVsX2VuZ2luZV9wbV9wdXQoKTsKKwkJCSAqIG9jY3VycyBmcm9tIGF0b21pYyBjb250ZXh0IGluIGFub3RoZXIuCisJCQkgKi8KKwkJCUdFTV9CVUdfT04oaW50ZWxfZW5naW5lX3BtX2lzX2F3YWtlKGVuZ2luZSkpOworCQkJaW50ZWxfZW5naW5lX3BtX2dldChlbmdpbmUpOworCisJCQlwLT5jcml0aWNhbF9zZWN0aW9uX2JlZ2luKCk7CisJCQlpZiAoIWludGVsX2VuZ2luZV9wbV9nZXRfaWZfYXdha2UoZW5naW5lKSkKKwkJCQlwcl9lcnIoImludGVsX2VuZ2luZV9wbV9nZXRfaWZfYXdha2UoJXMpIGZhaWxlZCB1bmRlciAlc1xuIiwKKwkJCQkgICAgICAgZW5naW5lLT5uYW1lLCBwLT5uYW1lKTsKKwkJCWVsc2UKKwkJCQlpbnRlbF9lbmdpbmVfcG1fcHV0KGVuZ2luZSk7CisJCQlpbnRlbF9lbmdpbmVfcG1fcHV0KGVuZ2luZSk7CisJCQlwLT5jcml0aWNhbF9zZWN0aW9uX2VuZCgpOworCisJCQkvKiBlbmdpbmUgd2FrZXJlZiBpcyBzeW5jIChpbnN0YW50KSAqLworCQkJaWYgKGludGVsX2VuZ2luZV9wbV9pc19hd2FrZShlbmdpbmUpKSB7CisJCQkJcHJfZXJyKCIlcyBpcyBzdGlsbCBhd2FrZSBhZnRlciBmbHVzaGluZyBwbVxuIiwKKwkJCQkgICAgICAgZW5naW5lLT5uYW1lKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCX0KKworCQkJLyogZ3Qgd2FrZXJlZiBpcyBhc3luYyAoZGVmZXJyZWQgdG8gd29ya3F1ZXVlKSAqLworCQkJaWYgKGludGVsX2d0X3BtX3dhaXRfZm9yX2lkbGUoZ3QpKSB7CisJCQkJcHJfZXJyKCJHVCBmYWlsZWQgdG8gaWRsZVxuIik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworaW50IGxpdmVfZW5naW5lX3BtX3NlbGZ0ZXN0cyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CisJCVNVQlRFU1QobGl2ZV9lbmdpbmVfcG0pLAorCX07CisKKwlyZXR1cm4gaW50ZWxfZ3RfbGl2ZV9zdWJ0ZXN0cyh0ZXN0cywgZ3QpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYwppbmRleCAxZWU0YzkyLi5hMDA5OGZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYwpAQCAtMjUsMTMgKzI1LDEzIEBACiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgogCiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaCIKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgogI2luY2x1ZGUgImludGVsX2VuZ2luZV9wbS5oIgogCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pOTE1X3JhbmRvbS5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3RfcmVzZXQuaCIKLSNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X3dlZGdlX21lLmgiCiAjaW5jbHVkZSAic2VsZnRlc3RzL2lndF9hdG9taWMuaCIKIAogI2luY2x1ZGUgInNlbGZ0ZXN0cy9tb2NrX2RybS5oIgpAQCAtNDIsNyArNDIsNyBAQAogI2RlZmluZSBJR1RfSURMRV9USU1FT1VUIDUwIC8qIG1zOyB0aW1lIHRvIHdhaXQgYWZ0ZXIgZmx1c2hpbmcgYmV0d2VlbiB0ZXN0cyAqLwogCiBzdHJ1Y3QgaGFuZyB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CisJc3RydWN0IGludGVsX2d0ICpndDsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaHdzOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKQEAgLTUwLDI3ICs1MCwyNyBAQCBzdHJ1Y3QgaGFuZyB7CiAJdTMyICpiYXRjaDsKIH07CiAKLXN0YXRpYyBpbnQgaGFuZ19pbml0KHN0cnVjdCBoYW5nICpoLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyBpbnQgaGFuZ19pbml0KHN0cnVjdCBoYW5nICpoLCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCXZvaWQgKnZhZGRyOwogCWludCBlcnI7CiAKIAltZW1zZXQoaCwgMCwgc2l6ZW9mKCpoKSk7Ci0JaC0+aTkxNSA9IGk5MTU7CisJaC0+Z3QgPSBndDsKIAotCWgtPmN0eCA9IGtlcm5lbF9jb250ZXh0KGk5MTUpOworCWgtPmN0eCA9IGtlcm5lbF9jb250ZXh0KGd0LT5pOTE1KTsKIAlpZiAoSVNfRVJSKGgtPmN0eCkpCiAJCXJldHVybiBQVFJfRVJSKGgtPmN0eCk7CiAKIAlHRU1fQlVHX09OKGk5MTVfZ2VtX2NvbnRleHRfaXNfYmFubmFibGUoaC0+Y3R4KSk7CiAKLQloLT5od3MgPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGk5MTUsIFBBR0VfU0laRSk7CisJaC0+aHdzID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChndC0+aTkxNSwgUEFHRV9TSVpFKTsKIAlpZiAoSVNfRVJSKGgtPmh3cykpIHsKIAkJZXJyID0gUFRSX0VSUihoLT5od3MpOwogCQlnb3RvIGVycl9jdHg7CiAJfQogCi0JaC0+b2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBQQUdFX1NJWkUpOworCWgtPm9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoZ3QtPmk5MTUsIFBBR0VfU0laRSk7CiAJaWYgKElTX0VSUihoLT5vYmopKSB7CiAJCWVyciA9IFBUUl9FUlIoaC0+b2JqKTsKIAkJZ290byBlcnJfaHdzOwpAQCAtODUsNyArODUsNyBAQCBzdGF0aWMgaW50IGhhbmdfaW5pdChzdHJ1Y3QgaGFuZyAqaCwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaC0+c2Vxbm8gPSBtZW1zZXQodmFkZHIsIDB4ZmYsIFBBR0VfU0laRSk7CiAKIAl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKGgtPm9iaiwKLQkJCQkJaTkxNV9jb2hlcmVudF9tYXBfdHlwZShpOTE1KSk7CisJCQkJCWk5MTVfY29oZXJlbnRfbWFwX3R5cGUoZ3QtPmk5MTUpKTsKIAlpZiAoSVNfRVJSKHZhZGRyKSkgewogCQllcnIgPSBQVFJfRVJSKHZhZGRyKTsKIAkJZ290byBlcnJfdW5waW5faHdzOwpAQCAtMTE4LDcgKzExOCwxMCBAQCBzdGF0aWMgaW50IG1vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCWludCBlcnI7CiAKIAlpOTE1X3ZtYV9sb2NrKHZtYSk7Ci0JZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCBycSwgZmxhZ3MpOworCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9vYmplY3QocnEsIHZtYS0+b2JqLAorCQkJCQlmbGFncyAmIEVYRUNfT0JKRUNUX1dSSVRFKTsKKwlpZiAoZXJyID09IDApCisJCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHZtYSwgcnEsIGZsYWdzKTsKIAlpOTE1X3ZtYV91bmxvY2sodm1hKTsKIAogCXJldHVybiBlcnI7CkBAIC0xMjcsMzYgKzEzMCwzMiBAQCBzdGF0aWMgaW50IG1vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgogaGFuZ19jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaGFuZyAqaCwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gaC0+aTkxNTsKLQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9IGgtPmN0eC0+dm0gPzogJmk5MTUtPmdndHQudm07CisJc3RydWN0IGludGVsX2d0ICpndCA9IGgtPmd0OworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gaC0+Y3R4LT52bSA/OiAmZW5naW5lLT5ndC0+Z2d0dC0+dm07CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSA9IE5VTEw7CiAJc3RydWN0IGk5MTVfdm1hICpod3MsICp2bWE7CiAJdW5zaWduZWQgaW50IGZsYWdzOworCXZvaWQgKnZhZGRyOwogCXUzMiAqYmF0Y2g7CiAJaW50IGVycjsKIAotCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfYWN0aXZlKGgtPm9iaikpIHsKLQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQkJdm9pZCAqdmFkZHI7CisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChndC0+aTkxNSwgUEFHRV9TSVpFKTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBFUlJfQ0FTVChvYmopOwogCi0JCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoaC0+aTkxNSwgUEFHRV9TSVpFKTsKLQkJaWYgKElTX0VSUihvYmopKQotCQkJcmV0dXJuIEVSUl9DQVNUKG9iaik7Ci0KLQkJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChvYmosCi0JCQkJCQlpOTE1X2NvaGVyZW50X21hcF90eXBlKGgtPmk5MTUpKTsKLQkJaWYgKElTX0VSUih2YWRkcikpIHsKLQkJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKLQkJCXJldHVybiBFUlJfQ0FTVCh2YWRkcik7Ci0JCX0KLQotCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGgtPm9iaik7Ci0JCWk5MTVfZ2VtX29iamVjdF9wdXQoaC0+b2JqKTsKLQotCQloLT5vYmogPSBvYmo7Ci0JCWgtPmJhdGNoID0gdmFkZHI7CisJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChvYmosIGk5MTVfY29oZXJlbnRfbWFwX3R5cGUoZ3QtPmk5MTUpKTsKKwlpZiAoSVNfRVJSKHZhZGRyKSkgeworCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJCXJldHVybiBFUlJfQ0FTVCh2YWRkcik7CiAJfQogCisJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChoLT5vYmopOworCWk5MTVfZ2VtX29iamVjdF9wdXQoaC0+b2JqKTsKKworCWgtPm9iaiA9IG9iajsKKwloLT5iYXRjaCA9IHZhZGRyOworCiAJdm1hID0gaTkxNV92bWFfaW5zdGFuY2UoaC0+b2JqLCB2bSwgTlVMTCk7CiAJaWYgKElTX0VSUih2bWEpKQogCQlyZXR1cm4gRVJSX0NBU1Qodm1hKTsKQEAgLTE4OCw3ICsxODcsNyBAQCBoYW5nX2NyZWF0ZV9yZXF1ZXN0KHN0cnVjdCBoYW5nICpoLCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWdvdG8gY2FuY2VsX3JxOwogCiAJYmF0Y2ggPSBoLT5iYXRjaDsKLQlpZiAoSU5URUxfR0VOKGk5MTUpID49IDgpIHsKKwlpZiAoSU5URUxfR0VOKGd0LT5pOTE1KSA+PSA4KSB7CiAJCSpiYXRjaCsrID0gTUlfU1RPUkVfRFdPUkRfSU1NX0dFTjQ7CiAJCSpiYXRjaCsrID0gbG93ZXJfMzJfYml0cyhod3NfYWRkcmVzcyhod3MsIHJxKSk7CiAJCSpiYXRjaCsrID0gdXBwZXJfMzJfYml0cyhod3NfYWRkcmVzcyhod3MsIHJxKSk7CkBAIC0yMDIsNyArMjAxLDcgQEAgaGFuZ19jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaGFuZyAqaCwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkqYmF0Y2grKyA9IE1JX0JBVENIX0JVRkZFUl9TVEFSVCB8IDEgPDwgOCB8IDE7CiAJCSpiYXRjaCsrID0gbG93ZXJfMzJfYml0cyh2bWEtPm5vZGUuc3RhcnQpOwogCQkqYmF0Y2grKyA9IHVwcGVyXzMyX2JpdHModm1hLT5ub2RlLnN0YXJ0KTsKLQl9IGVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSA2KSB7CisJfSBlbHNlIGlmIChJTlRFTF9HRU4oZ3QtPmk5MTUpID49IDYpIHsKIAkJKmJhdGNoKysgPSBNSV9TVE9SRV9EV09SRF9JTU1fR0VONDsKIAkJKmJhdGNoKysgPSAwOwogCQkqYmF0Y2grKyA9IGxvd2VyXzMyX2JpdHMoaHdzX2FkZHJlc3MoaHdzLCBycSkpOwpAQCAtMjE1LDcgKzIxNCw3IEBAIGhhbmdfY3JlYXRlX3JlcXVlc3Qoc3RydWN0IGhhbmcgKmgsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJKmJhdGNoKysgPSBNSV9BUkJfQ0hFQ0s7CiAJCSpiYXRjaCsrID0gTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIHwgMSA8PCA4OwogCQkqYmF0Y2grKyA9IGxvd2VyXzMyX2JpdHModm1hLT5ub2RlLnN0YXJ0KTsKLQl9IGVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSA0KSB7CisJfSBlbHNlIGlmIChJTlRFTF9HRU4oZ3QtPmk5MTUpID49IDQpIHsKIAkJKmJhdGNoKysgPSBNSV9TVE9SRV9EV09SRF9JTU1fR0VONCB8IE1JX1VTRV9HR1RUOwogCQkqYmF0Y2grKyA9IDA7CiAJCSpiYXRjaCsrID0gbG93ZXJfMzJfYml0cyhod3NfYWRkcmVzcyhod3MsIHJxKSk7CkBAIC0yNDIsNyArMjQxLDcgQEAgaGFuZ19jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaGFuZyAqaCwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkqYmF0Y2grKyA9IGxvd2VyXzMyX2JpdHModm1hLT5ub2RlLnN0YXJ0KTsKIAl9CiAJKmJhdGNoKysgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOyAvKiBub3QgcmVhY2hlZCAqLwotCWk5MTVfZ2VtX2NoaXBzZXRfZmx1c2goaC0+aTkxNSk7CisJaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChlbmdpbmUtPmd0KTsKIAogCWlmIChycS0+ZW5naW5lLT5lbWl0X2luaXRfYnJlYWRjcnVtYikgewogCQllcnIgPSBycS0+ZW5naW5lLT5lbWl0X2luaXRfYnJlYWRjcnVtYihycSk7CkBAIC0yNTEsNyArMjUwLDcgQEAgaGFuZ19jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaGFuZyAqaCwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCX0KIAogCWZsYWdzID0gMDsKLQlpZiAoSU5URUxfR0VOKHZtLT5pOTE1KSA8PSA1KQorCWlmIChJTlRFTF9HRU4oZ3QtPmk5MTUpIDw9IDUpCiAJCWZsYWdzIHw9IEk5MTVfRElTUEFUQ0hfU0VDVVJFOwogCiAJZXJyID0gcnEtPmVuZ2luZS0+ZW1pdF9iYl9zdGFydChycSwgdm1hLT5ub2RlLnN0YXJ0LCBQQUdFX1NJWkUsIGZsYWdzKTsKQEAgLTI3Niw3ICsyNzUsNyBAQCBzdGF0aWMgdTMyIGh3c19zZXFubyhjb25zdCBzdHJ1Y3QgaGFuZyAqaCwgY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiBzdGF0aWMgdm9pZCBoYW5nX2Zpbmkoc3RydWN0IGhhbmcgKmgpCiB7CiAJKmgtPmJhdGNoID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKLQlpOTE1X2dlbV9jaGlwc2V0X2ZsdXNoKGgtPmk5MTUpOworCWludGVsX2d0X2NoaXBzZXRfZmx1c2goaC0+Z3QpOwogCiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChoLT5vYmopOwogCWk5MTVfZ2VtX29iamVjdF9wdXQoaC0+b2JqKTsKQEAgLTI4Niw3ICsyODUsNyBAQCBzdGF0aWMgdm9pZCBoYW5nX2Zpbmkoc3RydWN0IGhhbmcgKmgpCiAKIAlrZXJuZWxfY29udGV4dF9jbG9zZShoLT5jdHgpOwogCi0JaWd0X2ZsdXNoX3Rlc3QoaC0+aTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7CisJaWd0X2ZsdXNoX3Rlc3QoaC0+Z3QtPmk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOwogfQogCiBzdGF0aWMgYm9vbCB3YWl0X3VudGlsX3J1bm5pbmcoc3RydWN0IGhhbmcgKmgsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQpAQCAtMzAxLDcgKzMwMCw3IEBAIHN0YXRpYyBib29sIHdhaXRfdW50aWxfcnVubmluZyhzdHJ1Y3QgaGFuZyAqaCwgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAKIHN0YXRpYyBpbnQgaWd0X2hhbmdfc2FuaXR5Y2hlY2sodm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBhcmc7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwpAQCAtMzEwLDEzICszMDksMTMgQEAgc3RhdGljIGludCBpZ3RfaGFuZ19zYW5pdHljaGVjayh2b2lkICphcmcpCiAKIAkvKiBCYXNpYyBjaGVjayB0aGF0IHdlIGNhbiBleGVjdXRlIG91ciBoYW5naW5nIGJhdGNoICovCiAKLQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQllcnIgPSBoYW5nX2luaXQoJmgsIGk5MTUpOworCW11dGV4X2xvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwllcnIgPSBoYW5nX2luaXQoJmgsIGd0KTsKIAlpZiAoZXJyKQogCQlnb3RvIHVubG9jazsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7Ci0JCXN0cnVjdCBpZ3Rfd2VkZ2VfbWUgdzsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwkJc3RydWN0IGludGVsX3dlZGdlX21lIHc7CiAJCWxvbmcgdGltZW91dDsKIAogCQlpZiAoIWludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQoZW5naW5lKSkKQEAgLTMzMywxNSArMzMyLDE1IEBAIHN0YXRpYyBpbnQgaWd0X2hhbmdfc2FuaXR5Y2hlY2sodm9pZCAqYXJnKQogCQlpOTE1X3JlcXVlc3RfZ2V0KHJxKTsKIAogCQkqaC5iYXRjaCA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7Ci0JCWk5MTVfZ2VtX2NoaXBzZXRfZmx1c2goaTkxNSk7CisJCWludGVsX2d0X2NoaXBzZXRfZmx1c2goZW5naW5lLT5ndCk7CiAKIAkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CiAKIAkJdGltZW91dCA9IDA7Ci0JCWlndF93ZWRnZV9vbl90aW1lb3V0KCZ3LCBpOTE1LCBIWiAvIDEwIC8qIDEwMG1zIHRpbWVvdXQqLykKKwkJaW50ZWxfd2VkZ2Vfb25fdGltZW91dCgmdywgZ3QsIEhaIC8gMTAgLyogMTAwbXMgKi8pCiAJCQl0aW1lb3V0ID0gaTkxNV9yZXF1ZXN0X3dhaXQocnEsIDAsCiAJCQkJCQkgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwotCQlpZiAoaTkxNV9yZXNldF9mYWlsZWQoaTkxNSkpCisJCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZ3QpKQogCQkJdGltZW91dCA9IC1FSU87CiAKIAkJaTkxNV9yZXF1ZXN0X3B1dChycSk7CkBAIC0zNTcsNyArMzU2LDcgQEAgc3RhdGljIGludCBpZ3RfaGFuZ19zYW5pdHljaGVjayh2b2lkICphcmcpCiBmaW5pOgogCWhhbmdfZmluaSgmaCk7CiB1bmxvY2s6Ci0JbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwltdXRleF91bmxvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlyZXR1cm4gZXJyOwogfQogCkBAIC0zNjgsMzcgKzM2NywzNyBAQCBzdGF0aWMgYm9vbCB3YWl0X2Zvcl9pZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogc3RhdGljIGludCBpZ3RfcmVzZXRfbm9wKHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOworCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZ2xvYmFsID0gJmd0LT5pOTE1LT5ncHVfZXJyb3I7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJdW5zaWduZWQgaW50IHJlc2V0X2NvdW50LCBjb3VudDsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGU7CiAJSUdUX1RJTUVPVVQoZW5kX3RpbWUpOwogCWludCBlcnIgPSAwOwogCiAJLyogQ2hlY2sgdGhhdCB3ZSBjYW4gcmVzZXQgZHVyaW5nIG5vbi11c2VyIHBvcnRpb25zIG9mIHJlcXVlc3RzICovCiAKLQlmaWxlID0gbW9ja19maWxlKGk5MTUpOworCWZpbGUgPSBtb2NrX2ZpbGUoZ3QtPmk5MTUpOwogCWlmIChJU19FUlIoZmlsZSkpCiAJCXJldHVybiBQVFJfRVJSKGZpbGUpOwogCi0JbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JY3R4ID0gbGl2ZV9jb250ZXh0KGk5MTUsIGZpbGUpOwotCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWN0eCA9IGxpdmVfY29udGV4dChndC0+aTkxNSwgZmlsZSk7CisJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJaWYgKElTX0VSUihjdHgpKSB7CiAJCWVyciA9IFBUUl9FUlIoY3R4KTsKIAkJZ290byBvdXQ7CiAJfQogCiAJaTkxNV9nZW1fY29udGV4dF9jbGVhcl9iYW5uYWJsZShjdHgpOwotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7Ci0JcmVzZXRfY291bnQgPSBpOTE1X3Jlc2V0X2NvdW50KCZpOTE1LT5ncHVfZXJyb3IpOworCXJlc2V0X2NvdW50ID0gaTkxNV9yZXNldF9jb3VudChnbG9iYWwpOwogCWNvdW50ID0gMDsKIAlkbyB7Ci0JCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgeworCQltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CiAJCQlpbnQgaTsKIAogCQkJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKQEAgLTQxMyw4MiArNDEyLDc4IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X25vcCh2b2lkICphcmcpCiAJCQkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CiAJCQl9CiAJCX0KLQkJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCQlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7Ci0JCWk5MTVfcmVzZXQoaTkxNSwgQUxMX0VOR0lORVMsIE5VTEwpOwotCQlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhpOTE1KTsKLQkJaWYgKGk5MTVfcmVzZXRfZmFpbGVkKGk5MTUpKSB7CisJCWlndF9nbG9iYWxfcmVzZXRfbG9jayhndCk7CisJCWludGVsX2d0X3Jlc2V0KGd0LCBBTExfRU5HSU5FUywgTlVMTCk7CisJCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGd0KTsKKworCQltdXRleF91bmxvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwkJaWYgKGludGVsX2d0X2lzX3dlZGdlZChndCkpIHsKIAkJCWVyciA9IC1FSU87CiAJCQlicmVhazsKIAkJfQogCi0JCWlmIChpOTE1X3Jlc2V0X2NvdW50KCZpOTE1LT5ncHVfZXJyb3IpICE9Ci0JCSAgICByZXNldF9jb3VudCArICsrY291bnQpIHsKKwkJaWYgKGk5MTVfcmVzZXRfY291bnQoZ2xvYmFsKSAhPSByZXNldF9jb3VudCArICsrY291bnQpIHsKIAkJCXByX2VycigiRnVsbCBHUFUgcmVzZXQgbm90IHJlY29yZGVkIVxuIik7CiAJCQllcnIgPSAtRUlOVkFMOwogCQkJYnJlYWs7CiAJCX0KIAotCQllcnIgPSBpZ3RfZmx1c2hfdGVzdChpOTE1LCAwKTsKKwkJZXJyID0gaWd0X2ZsdXNoX3Rlc3QoZ3QtPmk5MTUsIDApOwogCQlpZiAoZXJyKQogCQkJYnJlYWs7CiAJfSB3aGlsZSAodGltZV9iZWZvcmUoamlmZmllcywgZW5kX3RpbWUpKTsKIAlwcl9pbmZvKCIlczogJWQgcmVzZXRzXG4iLCBfX2Z1bmNfXywgY291bnQpOwogCi0JbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JZXJyID0gaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7Ci0JbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQotCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKKwltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJZXJyID0gaWd0X2ZsdXNoX3Rlc3QoZ3QtPmk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOworCW11dGV4X3VubG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiBvdXQ6Ci0JbW9ja19maWxlX2ZyZWUoaTkxNSwgZmlsZSk7Ci0JaWYgKGk5MTVfcmVzZXRfZmFpbGVkKGk5MTUpKQorCW1vY2tfZmlsZV9mcmVlKGd0LT5pOTE1LCBmaWxlKTsKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSkKIAkJZXJyID0gLUVJTzsKIAlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IGlndF9yZXNldF9ub3BfZW5naW5lKHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOworCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZ2xvYmFsID0gJmd0LT5pOTE1LT5ncHVfZXJyb3I7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0JaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJc3RydWN0IGRybV9maWxlICpmaWxlOwogCWludCBlcnIgPSAwOwogCiAJLyogQ2hlY2sgdGhhdCB3ZSBjYW4gZW5naW5lLXJlc2V0IGR1cmluZyBub24tdXNlciBwb3J0aW9ucyAqLwogCi0JaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGk5MTUpKQorCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShndC0+aTkxNSkpCiAJCXJldHVybiAwOwogCi0JZmlsZSA9IG1vY2tfZmlsZShpOTE1KTsKKwlmaWxlID0gbW9ja19maWxlKGd0LT5pOTE1KTsKIAlpZiAoSVNfRVJSKGZpbGUpKQogCQlyZXR1cm4gUFRSX0VSUihmaWxlKTsKIAotCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWN0eCA9IGxpdmVfY29udGV4dChpOTE1LCBmaWxlKTsKLQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X2xvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwljdHggPSBsaXZlX2NvbnRleHQoZ3QtPmk5MTUsIGZpbGUpOworCW11dGV4X3VubG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCWlmIChJU19FUlIoY3R4KSkgewogCQllcnIgPSBQVFJfRVJSKGN0eCk7CiAJCWdvdG8gb3V0OwogCX0KIAogCWk5MTVfZ2VtX2NvbnRleHRfY2xlYXJfYmFubmFibGUoY3R4KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CiAJCXVuc2lnbmVkIGludCByZXNldF9jb3VudCwgcmVzZXRfZW5naW5lX2NvdW50OwogCQl1bnNpZ25lZCBpbnQgY291bnQ7CiAJCUlHVF9USU1FT1VUKGVuZF90aW1lKTsKIAotCQlyZXNldF9jb3VudCA9IGk5MTVfcmVzZXRfY291bnQoJmk5MTUtPmdwdV9lcnJvcik7Ci0JCXJlc2V0X2VuZ2luZV9jb3VudCA9IGk5MTVfcmVzZXRfZW5naW5lX2NvdW50KCZpOTE1LT5ncHVfZXJyb3IsCi0JCQkJCQkJICAgICBlbmdpbmUpOworCQlyZXNldF9jb3VudCA9IGk5MTVfcmVzZXRfY291bnQoZ2xvYmFsKTsKKwkJcmVzZXRfZW5naW5lX2NvdW50ID0gaTkxNV9yZXNldF9lbmdpbmVfY291bnQoZ2xvYmFsLCBlbmdpbmUpOwogCQljb3VudCA9IDA7CiAKLQkJc2V0X2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsKKwkJc2V0X2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmZ3QtPnJlc2V0LmZsYWdzKTsKIAkJZG8gewogCQkJaW50IGk7CiAKQEAgLTQ5OSw3ICs0OTQsNyBAQCBzdGF0aWMgaW50IGlndF9yZXNldF9ub3BfZW5naW5lKHZvaWQgKmFyZykKIAkJCQlicmVhazsKIAkJCX0KIAotCQkJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCQltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJCQlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgewogCQkJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCkBAIC01MTEsMjEgKzUwNiwyMCBAQCBzdGF0aWMgaW50IGlndF9yZXNldF9ub3BfZW5naW5lKHZvaWQgKmFyZykKIAogCQkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwogCQkJfQotCQkJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQotCQkJZXJyID0gaTkxNV9yZXNldF9lbmdpbmUoZW5naW5lLCBOVUxMKTsKKwkJCWVyciA9IGludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsIE5VTEwpOworCQkJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJCQlpZiAoZXJyKSB7CiAJCQkJcHJfZXJyKCJpOTE1X3Jlc2V0X2VuZ2luZSBmYWlsZWRcbiIpOwogCQkJCWJyZWFrOwogCQkJfQogCi0JCQlpZiAoaTkxNV9yZXNldF9jb3VudCgmaTkxNS0+Z3B1X2Vycm9yKSAhPSByZXNldF9jb3VudCkgeworCQkJaWYgKGk5MTVfcmVzZXRfY291bnQoZ2xvYmFsKSAhPSByZXNldF9jb3VudCkgewogCQkJCXByX2VycigiRnVsbCBHUFUgcmVzZXQgcmVjb3JkZWQhIChlbmdpbmUgcmVzZXQgZXhwZWN0ZWQpXG4iKTsKIAkJCQllcnIgPSAtRUlOVkFMOwogCQkJCWJyZWFrOwogCQkJfQogCi0JCQlpZiAoaTkxNV9yZXNldF9lbmdpbmVfY291bnQoJmk5MTUtPmdwdV9lcnJvciwgZW5naW5lKSAhPQorCQkJaWYgKGk5MTVfcmVzZXRfZW5naW5lX2NvdW50KGdsb2JhbCwgZW5naW5lKSAhPQogCQkJICAgIHJlc2V0X2VuZ2luZV9jb3VudCArICsrY291bnQpIHsKIAkJCQlwcl9lcnIoIiVzIGVuZ2luZSByZXNldCBub3QgcmVjb3JkZWQhXG4iLAogCQkJCSAgICAgICBlbmdpbmUtPm5hbWUpOwpAQCAtNTMzLDMxICs1MjcsMzEgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfbm9wX2VuZ2luZSh2b2lkICphcmcpCiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0gd2hpbGUgKHRpbWVfYmVmb3JlKGppZmZpZXMsIGVuZF90aW1lKSk7Ci0JCWNsZWFyX2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsKKwkJY2xlYXJfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsICZndC0+cmVzZXQuZmxhZ3MpOwogCQlwcl9pbmZvKCIlcyglcyk6ICVkIHJlc2V0c1xuIiwgX19mdW5jX18sIGVuZ2luZS0+bmFtZSwgY291bnQpOwogCiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAotCQllcnIgPSBpZ3RfZmx1c2hfdGVzdChpOTE1LCAwKTsKKwkJZXJyID0gaWd0X2ZsdXNoX3Rlc3QoZ3QtPmk5MTUsIDApOwogCQlpZiAoZXJyKQogCQkJYnJlYWs7CiAJfQogCi0JbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JZXJyID0gaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7Ci0JbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJZXJyID0gaWd0X2ZsdXNoX3Rlc3QoZ3QtPmk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOworCW11dGV4X3VubG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogb3V0OgotCW1vY2tfZmlsZV9mcmVlKGk5MTUsIGZpbGUpOwotCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChpOTE1KSkKKwltb2NrX2ZpbGVfZnJlZShndC0+aTkxNSwgZmlsZSk7CisJaWYgKGludGVsX2d0X2lzX3dlZGdlZChndCkpCiAJCWVyciA9IC1FSU87CiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGJvb2wgYWN0aXZlKQorc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2d0ICpndCwgYm9vbCBhY3RpdmUpCiB7CisJc3RydWN0IGk5MTVfZ3B1X2Vycm9yICpnbG9iYWwgPSAmZ3QtPmk5MTUtPmdwdV9lcnJvcjsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJc3RydWN0IGhhbmcgaDsKQEAgLTU2NSwxOCArNTU5LDE4IEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBib29sIGFjdGl2ZSkKIAogCS8qIENoZWNrIHRoYXQgd2UgY2FuIGlzc3VlIGFuIGVuZ2luZSByZXNldCBvbiBhbiBpZGxlIGVuZ2luZSAobm8tb3ApICovCiAKLQlpZiAoIWludGVsX2hhc19yZXNldF9lbmdpbmUoaTkxNSkpCisJaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGd0LT5pOTE1KSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoYWN0aXZlKSB7Ci0JCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCQllcnIgPSBoYW5nX2luaXQoJmgsIGk5MTUpOwotCQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCQltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCWVyciA9IGhhbmdfaW5pdCgmaCwgZ3QpOworCQltdXRleF91bmxvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAJfQogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKIAkJdW5zaWduZWQgaW50IHJlc2V0X2NvdW50LCByZXNldF9lbmdpbmVfY291bnQ7CiAJCUlHVF9USU1FT1VUKGVuZF90aW1lKTsKIApAQCAtNTkwLDMwICs1ODQsMjkgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGJvb2wgYWN0aXZlKQogCQkJYnJlYWs7CiAJCX0KIAotCQlyZXNldF9jb3VudCA9IGk5MTVfcmVzZXRfY291bnQoJmk5MTUtPmdwdV9lcnJvcik7Ci0JCXJlc2V0X2VuZ2luZV9jb3VudCA9IGk5MTVfcmVzZXRfZW5naW5lX2NvdW50KCZpOTE1LT5ncHVfZXJyb3IsCi0JCQkJCQkJICAgICBlbmdpbmUpOworCQlyZXNldF9jb3VudCA9IGk5MTVfcmVzZXRfY291bnQoZ2xvYmFsKTsKKwkJcmVzZXRfZW5naW5lX2NvdW50ID0gaTkxNV9yZXNldF9lbmdpbmVfY291bnQoZ2xvYmFsLCBlbmdpbmUpOwogCiAJCWludGVsX2VuZ2luZV9wbV9nZXQoZW5naW5lKTsKLQkJc2V0X2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsKKwkJc2V0X2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmZ3QtPnJlc2V0LmZsYWdzKTsKIAkJZG8gewogCQkJaWYgKGFjdGl2ZSkgewogCQkJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCi0JCQkJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCQkJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCQkJCXJxID0gaGFuZ19jcmVhdGVfcmVxdWVzdCgmaCwgZW5naW5lKTsKIAkJCQlpZiAoSVNfRVJSKHJxKSkgewogCQkJCQllcnIgPSBQVFJfRVJSKHJxKTsKLQkJCQkJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwkJCQkJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJCQkJCWJyZWFrOwogCQkJCX0KIAogCQkJCWk5MTVfcmVxdWVzdF9nZXQocnEpOwogCQkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwotCQkJCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCQkJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAkJCQlpZiAoIXdhaXRfdW50aWxfcnVubmluZygmaCwgcnEpKSB7Ci0JCQkJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2luZm9fcHJpbnRlcihpOTE1LT5kcm0uZGV2KTsKKwkJCQkJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1faW5mb19wcmludGVyKGd0LT5pOTE1LT5kcm0uZGV2KTsKIAogCQkJCQlwcl9lcnIoIiVzOiBGYWlsZWQgdG8gc3RhcnQgcmVxdWVzdCAlbGx4LCBhdCAleFxuIiwKIAkJCQkJICAgICAgIF9fZnVuY19fLCBycS0+ZmVuY2Uuc2Vxbm8sIGh3c19zZXFubygmaCwgcnEpKTsKQEAgLTYyOCwxOSArNjIxLDE5IEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBib29sIGFjdGl2ZSkKIAkJCQlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKIAkJCX0KIAotCQkJZXJyID0gaTkxNV9yZXNldF9lbmdpbmUoZW5naW5lLCBOVUxMKTsKKwkJCWVyciA9IGludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsIE5VTEwpOwogCQkJaWYgKGVycikgewogCQkJCXByX2VycigiaTkxNV9yZXNldF9lbmdpbmUgZmFpbGVkXG4iKTsKIAkJCQlicmVhazsKIAkJCX0KIAotCQkJaWYgKGk5MTVfcmVzZXRfY291bnQoJmk5MTUtPmdwdV9lcnJvcikgIT0gcmVzZXRfY291bnQpIHsKKwkJCWlmIChpOTE1X3Jlc2V0X2NvdW50KGdsb2JhbCkgIT0gcmVzZXRfY291bnQpIHsKIAkJCQlwcl9lcnIoIkZ1bGwgR1BVIHJlc2V0IHJlY29yZGVkISAoZW5naW5lIHJlc2V0IGV4cGVjdGVkKVxuIik7CiAJCQkJZXJyID0gLUVJTlZBTDsKIAkJCQlicmVhazsKIAkJCX0KIAotCQkJaWYgKGk5MTVfcmVzZXRfZW5naW5lX2NvdW50KCZpOTE1LT5ncHVfZXJyb3IsIGVuZ2luZSkgIT0KKwkJCWlmIChpOTE1X3Jlc2V0X2VuZ2luZV9jb3VudChnbG9iYWwsIGVuZ2luZSkgIT0KIAkJCSAgICArK3Jlc2V0X2VuZ2luZV9jb3VudCkgewogCQkJCXByX2VycigiJXMgZW5naW5lIHJlc2V0IG5vdCByZWNvcmRlZCFcbiIsCiAJCQkJICAgICAgIGVuZ2luZS0+bmFtZSk7CkBAIC02NDgsMjQgKzY0MSwyNCBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgYm9vbCBhY3RpdmUpCiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0gd2hpbGUgKHRpbWVfYmVmb3JlKGppZmZpZXMsIGVuZF90aW1lKSk7Ci0JCWNsZWFyX2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsKKwkJY2xlYXJfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsICZndC0+cmVzZXQuZmxhZ3MpOwogCQlpbnRlbF9lbmdpbmVfcG1fcHV0KGVuZ2luZSk7CiAKIAkJaWYgKGVycikKIAkJCWJyZWFrOwogCi0JCWVyciA9IGlndF9mbHVzaF90ZXN0KGk5MTUsIDApOworCQllcnIgPSBpZ3RfZmx1c2hfdGVzdChndC0+aTkxNSwgMCk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAl9CiAKLQlpZiAoaTkxNV9yZXNldF9mYWlsZWQoaTkxNSkpCisJaWYgKGludGVsX2d0X2lzX3dlZGdlZChndCkpCiAJCWVyciA9IC1FSU87CiAKIAlpZiAoYWN0aXZlKSB7Ci0JCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCQltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJCWhhbmdfZmluaSgmaCk7Ci0JCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCW11dGV4X3VubG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCX0KIAogCXJldHVybiBlcnI7CkBAIC03MDcsNyArNzAwLDcgQEAgc3RhdGljIGludCBhY3RpdmVfcmVxdWVzdF9wdXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJCQkgIHJxLT5mZW5jZS5zZXFubyk7CiAJCUdFTV9UUkFDRV9EVU1QKCk7CiAKLQkJaTkxNV9nZW1fc2V0X3dlZGdlZChycS0+aTkxNSk7CisJCWludGVsX2d0X3NldF93ZWRnZWQocnEtPmVuZ2luZS0+Z3QpOwogCQllcnIgPSAtRUlPOwogCX0KIApAQCAtNzg0LDEwICs3NzcsMTEgQEAgc3RhdGljIGludCBhY3RpdmVfZW5naW5lKHZvaWQgKmRhdGEpCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCQkgICAgICAgY29uc3QgY2hhciAqdGVzdF9uYW1lLAogCQkJICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKIHsKKwlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmdsb2JhbCA9ICZndC0+aTkxNS0+Z3B1X2Vycm9yOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgKm90aGVyOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkLCB0bXA7CiAJc3RydWN0IGhhbmcgaDsKQEAgLTc5NywxMyArNzkxLDEzIEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkgKiB3aXRoIGFueSBvdGhlciBlbmdpbmUuCiAJICovCiAKLQlpZiAoIWludGVsX2hhc19yZXNldF9lbmdpbmUoaTkxNSkpCisJaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGd0LT5pOTE1KSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoZmxhZ3MgJiBURVNUX0FDVElWRSkgewotCQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQkJZXJyID0gaGFuZ19pbml0KCZoLCBpOTE1KTsKLQkJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwkJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCQllcnIgPSBoYW5nX2luaXQoJmgsIGd0KTsKKwkJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOwogCkBAIC04MTEsOSArODA1LDkgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJaC5jdHgtPnNjaGVkLnByaW9yaXR5ID0gMTAyNDsKIAl9CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgewogCQlzdHJ1Y3QgYWN0aXZlX2VuZ2luZSB0aHJlYWRzW0k5MTVfTlVNX0VOR0lORVNdID0ge307Ci0JCXVuc2lnbmVkIGxvbmcgZ2xvYmFsID0gaTkxNV9yZXNldF9jb3VudCgmaTkxNS0+Z3B1X2Vycm9yKTsKKwkJdW5zaWduZWQgbG9uZyBkZXZpY2UgPSBpOTE1X3Jlc2V0X2NvdW50KGdsb2JhbCk7CiAJCXVuc2lnbmVkIGxvbmcgY291bnQgPSAwLCByZXBvcnRlZDsKIAkJSUdUX1RJTUVPVVQoZW5kX3RpbWUpOwogCkBAIC04MjksMTIgKzgyMywxMSBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCX0KIAogCQltZW1zZXQodGhyZWFkcywgMCwgc2l6ZW9mKHRocmVhZHMpKTsKLQkJZm9yX2VhY2hfZW5naW5lKG90aGVyLCBpOTE1LCB0bXApIHsKKwkJZm9yX2VhY2hfZW5naW5lKG90aGVyLCBndC0+aTkxNSwgdG1wKSB7CiAJCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzazsKIAogCQkJdGhyZWFkc1t0bXBdLnJlc2V0cyA9Ci0JCQkJaTkxNV9yZXNldF9lbmdpbmVfY291bnQoJmk5MTUtPmdwdV9lcnJvciwKLQkJCQkJCQlvdGhlcik7CisJCQkJaTkxNV9yZXNldF9lbmdpbmVfY291bnQoZ2xvYmFsLCBvdGhlcik7CiAKIAkJCWlmICghKGZsYWdzICYgVEVTVF9PVEhFUlMpKQogCQkJCWNvbnRpbnVlOwpAQCAtODU3LDI1ICs4NTAsMjUgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQl9CiAKIAkJaW50ZWxfZW5naW5lX3BtX2dldChlbmdpbmUpOwotCQlzZXRfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOworCQlzZXRfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsICZndC0+cmVzZXQuZmxhZ3MpOwogCQlkbyB7CiAJCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSA9IE5VTEw7CiAKIAkJCWlmIChmbGFncyAmIFRFU1RfQUNUSVZFKSB7Ci0JCQkJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCQkJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCQkJCXJxID0gaGFuZ19jcmVhdGVfcmVxdWVzdCgmaCwgZW5naW5lKTsKIAkJCQlpZiAoSVNfRVJSKHJxKSkgewogCQkJCQllcnIgPSBQVFJfRVJSKHJxKTsKLQkJCQkJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwkJCQkJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJCQkJCWJyZWFrOwogCQkJCX0KIAogCQkJCWk5MTVfcmVxdWVzdF9nZXQocnEpOwogCQkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwotCQkJCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCQkJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAkJCQlpZiAoIXdhaXRfdW50aWxfcnVubmluZygmaCwgcnEpKSB7Ci0JCQkJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2luZm9fcHJpbnRlcihpOTE1LT5kcm0uZGV2KTsKKwkJCQkJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1faW5mb19wcmludGVyKGd0LT5pOTE1LT5kcm0uZGV2KTsKIAogCQkJCQlwcl9lcnIoIiVzOiBGYWlsZWQgdG8gc3RhcnQgcmVxdWVzdCAlbGx4LCBhdCAleFxuIiwKIAkJCQkJICAgICAgIF9fZnVuY19fLCBycS0+ZmVuY2Uuc2Vxbm8sIGh3c19zZXFubygmaCwgcnEpKTsKQEAgLTg4OCw3ICs4ODEsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJfQogCQkJfQogCi0JCQllcnIgPSBpOTE1X3Jlc2V0X2VuZ2luZShlbmdpbmUsIE5VTEwpOworCQkJZXJyID0gaW50ZWxfZW5naW5lX3Jlc2V0KGVuZ2luZSwgTlVMTCk7CiAJCQlpZiAoZXJyKSB7CiAJCQkJcHJfZXJyKCJpOTE1X3Jlc2V0X2VuZ2luZSglczolcyk6IGZhaWxlZCwgZXJyPSVkXG4iLAogCQkJCSAgICAgICBlbmdpbmUtPm5hbWUsIHRlc3RfbmFtZSwgZXJyKTsKQEAgLTkwMCw3ICs4OTMsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQlpZiAocnEpIHsKIAkJCQlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnEsIDAsIEhaIC8gNSkgPCAwKSB7CiAJCQkJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0KLQkJCQkJCWRybV9pbmZvX3ByaW50ZXIoaTkxNS0+ZHJtLmRldik7CisJCQkJCQlkcm1faW5mb19wcmludGVyKGd0LT5pOTE1LT5kcm0uZGV2KTsKIAogCQkJCQlwcl9lcnIoImk5MTVfcmVzZXRfZW5naW5lKCVzOiVzKToiCiAJCQkJCSAgICAgICAiIGZhaWxlZCB0byBjb21wbGV0ZSByZXF1ZXN0IGFmdGVyIHJlc2V0XG4iLApAQCAtOTEwLDcgKzkwMyw3IEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkJaTkxNV9yZXF1ZXN0X3B1dChycSk7CiAKIAkJCQkJR0VNX1RSQUNFX0RVTVAoKTsKLQkJCQkJaTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKKwkJCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZChndCk7CiAJCQkJCWVyciA9IC1FSU87CiAJCQkJCWJyZWFrOwogCQkJCX0KQEAgLTkyMCw3ICs5MTMsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAKIAkJCWlmICghKGZsYWdzICYgVEVTVF9TRUxGKSAmJiAhd2FpdF9mb3JfaWRsZShlbmdpbmUpKSB7CiAJCQkJc3RydWN0IGRybV9wcmludGVyIHAgPQotCQkJCQlkcm1faW5mb19wcmludGVyKGk5MTUtPmRybS5kZXYpOworCQkJCQlkcm1faW5mb19wcmludGVyKGd0LT5pOTE1LT5kcm0uZGV2KTsKIAogCQkJCXByX2VycigiaTkxNV9yZXNldF9lbmdpbmUoJXM6JXMpOiIKIAkJCQkgICAgICAgIiBmYWlsZWQgdG8gaWRsZSBhZnRlciByZXNldFxuIiwKQEAgLTkzMiwxMiArOTI1LDEyIEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQlicmVhazsKIAkJCX0KIAkJfSB3aGlsZSAodGltZV9iZWZvcmUoamlmZmllcywgZW5kX3RpbWUpKTsKLQkJY2xlYXJfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOworCQljbGVhcl9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBpZCwgJmd0LT5yZXNldC5mbGFncyk7CiAJCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKIAkJcHJfaW5mbygiaTkxNV9yZXNldF9lbmdpbmUoJXM6JXMpOiAlbHUgcmVzZXRzXG4iLAogCQkJZW5naW5lLT5uYW1lLCB0ZXN0X25hbWUsIGNvdW50KTsKIAotCQlyZXBvcnRlZCA9IGk5MTVfcmVzZXRfZW5naW5lX2NvdW50KCZpOTE1LT5ncHVfZXJyb3IsIGVuZ2luZSk7CisJCXJlcG9ydGVkID0gaTkxNV9yZXNldF9lbmdpbmVfY291bnQoZ2xvYmFsLCBlbmdpbmUpOwogCQlyZXBvcnRlZCAtPSB0aHJlYWRzW2VuZ2luZS0+aWRdLnJlc2V0czsKIAkJaWYgKHJlcG9ydGVkICE9IGNvdW50KSB7CiAJCQlwcl9lcnIoImk5MTVfcmVzZXRfZW5naW5lKCVzOiVzKTogcmVzZXQgJWx1IHRpbWVzLCBidXQgcmVwb3J0ZWQgJWx1XG4iLApAQCAtOTQ3LDcgKzk0MCw3IEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJfQogCiB1bndpbmQ6Ci0JCWZvcl9lYWNoX2VuZ2luZShvdGhlciwgaTkxNSwgdG1wKSB7CisJCWZvcl9lYWNoX2VuZ2luZShvdGhlciwgZ3QtPmk5MTUsIHRtcCkgewogCQkJaW50IHJldDsKIAogCQkJaWYgKCF0aHJlYWRzW3RtcF0udGFzaykKQEAgLTk2MiwyMiArOTU1LDIxIEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCX0KIAkJCXB1dF90YXNrX3N0cnVjdCh0aHJlYWRzW3RtcF0udGFzayk7CiAKLQkJCWlmIChvdGhlciAhPSBlbmdpbmUgJiYKKwkJCWlmIChvdGhlci0+dWFiaV9jbGFzcyAhPSBlbmdpbmUtPnVhYmlfY2xhc3MgJiYKIAkJCSAgICB0aHJlYWRzW3RtcF0ucmVzZXRzICE9Ci0JCQkgICAgaTkxNV9yZXNldF9lbmdpbmVfY291bnQoJmk5MTUtPmdwdV9lcnJvciwgb3RoZXIpKSB7CisJCQkgICAgaTkxNV9yZXNldF9lbmdpbmVfY291bnQoZ2xvYmFsLCBvdGhlcikpIHsKIAkJCQlwcl9lcnIoIklubm9jZW50IGVuZ2luZSAlcyB3YXMgcmVzZXQgKGNvdW50PSVsZClcbiIsCiAJCQkJICAgICAgIG90aGVyLT5uYW1lLAotCQkJCSAgICAgICBpOTE1X3Jlc2V0X2VuZ2luZV9jb3VudCgmaTkxNS0+Z3B1X2Vycm9yLAotCQkJCQkJCSAgICAgICBvdGhlcikgLQorCQkJCSAgICAgICBpOTE1X3Jlc2V0X2VuZ2luZV9jb3VudChnbG9iYWwsIG90aGVyKSAtCiAJCQkJICAgICAgIHRocmVhZHNbdG1wXS5yZXNldHMpOwogCQkJCWlmICghZXJyKQogCQkJCQllcnIgPSAtRUlOVkFMOwogCQkJfQogCQl9CiAKLQkJaWYgKGdsb2JhbCAhPSBpOTE1X3Jlc2V0X2NvdW50KCZpOTE1LT5ncHVfZXJyb3IpKSB7CisJCWlmIChkZXZpY2UgIT0gaTkxNV9yZXNldF9jb3VudChnbG9iYWwpKSB7CiAJCQlwcl9lcnIoIkdsb2JhbCByZXNldCAoY291bnQ9JWxkKSFcbiIsCi0JCQkgICAgICAgaTkxNV9yZXNldF9jb3VudCgmaTkxNS0+Z3B1X2Vycm9yKSAtIGdsb2JhbCk7CisJCQkgICAgICAgaTkxNV9yZXNldF9jb3VudChnbG9iYWwpIC0gZGV2aWNlKTsKIAkJCWlmICghZXJyKQogCQkJCWVyciA9IC1FSU5WQUw7CiAJCX0KQEAgLTk4NSwyMCArOTc3LDIwIEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJaWYgKGVycikKIAkJCWJyZWFrOwogCi0JCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCQllcnIgPSBpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKTsKLQkJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwkJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCQllcnIgPSBpZ3RfZmx1c2hfdGVzdChndC0+aTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7CisJCW11dGV4X3VubG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCQlpZiAoZXJyKQogCQkJYnJlYWs7CiAJfQogCi0JaWYgKGk5MTVfcmVzZXRfZmFpbGVkKGk5MTUpKQorCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZ3QpKQogCQllcnIgPSAtRUlPOwogCiAJaWYgKGZsYWdzICYgVEVTVF9BQ1RJVkUpIHsKLQkJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCW11dGV4X2xvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAkJaGFuZ19maW5pKCZoKTsKLQkJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwkJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJfQogCiAJcmV0dXJuIGVycjsKQEAgLTEwMjQsMTMgKzEwMTYsMTMgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfZW5naW5lcyh2b2lkICphcmcpCiAJCX0sCiAJCXsgfQogCX07Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGFyZzsKIAl0eXBlb2YoKnBoYXNlcykgKnA7CiAJaW50IGVycjsKIAogCWZvciAocCA9IHBoYXNlczsgcC0+bmFtZTsgcCsrKSB7CiAJCWlmIChwLT5mbGFncyAmIFRFU1RfUFJJT1JJVFkpIHsKLQkJCWlmICghKGk5MTUtPmNhcHMuc2NoZWR1bGVyICYgSTkxNV9TQ0hFRFVMRVJfQ0FQX1BSSU9SSVRZKSkKKwkJCWlmICghKGd0LT5pOTE1LT5jYXBzLnNjaGVkdWxlciAmIEk5MTVfU0NIRURVTEVSX0NBUF9QUklPUklUWSkpCiAJCQkJY29udGludWU7CiAJCX0KIApAQCAtMTA0MiwzOCArMTAzNCwzOSBAQCBzdGF0aWMgaW50IGlndF9yZXNldF9lbmdpbmVzKHZvaWQgKmFyZykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHUzMiBmYWtlX2hhbmdjaGVjayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCSAgaW50ZWxfZW5naW5lX21hc2tfdCBtYXNrKQorc3RhdGljIHUzMiBmYWtlX2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBpbnRlbF9lbmdpbmVfbWFza190IG1hc2spCiB7Ci0JdTMyIGNvdW50ID0gaTkxNV9yZXNldF9jb3VudCgmaTkxNS0+Z3B1X2Vycm9yKTsKKwl1MzIgY291bnQgPSBpOTE1X3Jlc2V0X2NvdW50KCZndC0+aTkxNS0+Z3B1X2Vycm9yKTsKIAotCWk5MTVfcmVzZXQoaTkxNSwgbWFzaywgTlVMTCk7CisJaW50ZWxfZ3RfcmVzZXQoZ3QsIG1hc2ssIE5VTEwpOwogCiAJcmV0dXJuIGNvdW50OwogfQogCiBzdGF0aWMgaW50IGlndF9yZXNldF93YWl0KHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOworCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZ2xvYmFsID0gJmd0LT5pOTE1LT5ncHVfZXJyb3I7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gZ3QtPmk5MTUtPmVuZ2luZVtSQ1MwXTsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKIAl1bnNpZ25lZCBpbnQgcmVzZXRfY291bnQ7CiAJc3RydWN0IGhhbmcgaDsKIAlsb25nIHRpbWVvdXQ7CiAJaW50IGVycjsKIAotCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChpOTE1LT5lbmdpbmVbUkNTMF0pKQorCWlmICghZW5naW5lIHx8ICFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCiAJCXJldHVybiAwOwogCiAJLyogQ2hlY2sgdGhhdCB3ZSBkZXRlY3QgYSBzdHVjayB3YWl0ZXIgYW5kIGlzc3VlIGEgcmVzZXQgKi8KIAotCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soZ3QpOwogCi0JbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JZXJyID0gaGFuZ19pbml0KCZoLCBpOTE1KTsKKwltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJZXJyID0gaGFuZ19pbml0KCZoLCBndCk7CiAJaWYgKGVycikKIAkJZ290byB1bmxvY2s7CiAKLQlycSA9IGhhbmdfY3JlYXRlX3JlcXVlc3QoJmgsIGk5MTUtPmVuZ2luZVtSQ1MwXSk7CisJcnEgPSBoYW5nX2NyZWF0ZV9yZXF1ZXN0KCZoLCBlbmdpbmUpOwogCWlmIChJU19FUlIocnEpKSB7CiAJCWVyciA9IFBUUl9FUlIocnEpOwogCQlnb3RvIGZpbmk7CkBAIC0xMDgzLDE5ICsxMDc2LDE5IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X3dhaXQodm9pZCAqYXJnKQogCWk5MTVfcmVxdWVzdF9hZGQocnEpOwogCiAJaWYgKCF3YWl0X3VudGlsX3J1bm5pbmcoJmgsIHJxKSkgewotCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIoaTkxNS0+ZHJtLmRldik7CisJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2luZm9fcHJpbnRlcihndC0+aTkxNS0+ZHJtLmRldik7CiAKIAkJcHJfZXJyKCIlczogRmFpbGVkIHRvIHN0YXJ0IHJlcXVlc3QgJWxseCwgYXQgJXhcbiIsCiAJCSAgICAgICBfX2Z1bmNfXywgcnEtPmZlbmNlLnNlcW5vLCBod3Nfc2Vxbm8oJmgsIHJxKSk7CiAJCWludGVsX2VuZ2luZV9kdW1wKHJxLT5lbmdpbmUsICZwLCAiJXNcbiIsIHJxLT5lbmdpbmUtPm5hbWUpOwogCi0JCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CisJCWludGVsX2d0X3NldF93ZWRnZWQoZ3QpOwogCiAJCWVyciA9IC1FSU87CiAJCWdvdG8gb3V0X3JxOwogCX0KIAotCXJlc2V0X2NvdW50ID0gZmFrZV9oYW5nY2hlY2soaTkxNSwgQUxMX0VOR0lORVMpOworCXJlc2V0X2NvdW50ID0gZmFrZV9oYW5nY2hlY2soZ3QsIEFMTF9FTkdJTkVTKTsKIAogCXRpbWVvdXQgPSBpOTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgMTApOwogCWlmICh0aW1lb3V0IDwgMCkgewpAQCAtMTEwNSw3ICsxMDk4LDcgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfd2FpdCh2b2lkICphcmcpCiAJCWdvdG8gb3V0X3JxOwogCX0KIAotCWlmIChpOTE1X3Jlc2V0X2NvdW50KCZpOTE1LT5ncHVfZXJyb3IpID09IHJlc2V0X2NvdW50KSB7CisJaWYgKGk5MTVfcmVzZXRfY291bnQoZ2xvYmFsKSA9PSByZXNldF9jb3VudCkgewogCQlwcl9lcnIoIk5vIEdQVSByZXNldCByZWNvcmRlZCFcbiIpOwogCQllcnIgPSAtRUlOVkFMOwogCQlnb3RvIG91dF9ycTsKQEAgLTExMTYsMTAgKzExMDksMTAgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfd2FpdCh2b2lkICphcmcpCiBmaW5pOgogCWhhbmdfZmluaSgmaCk7CiB1bmxvY2s6Ci0JbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhpOTE1KTsKKwltdXRleF91bmxvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhndCk7CiAKLQlpZiAoaTkxNV9yZXNldF9mYWlsZWQoaTkxNSkpCisJaWYgKGludGVsX2d0X2lzX3dlZGdlZChndCkpCiAJCXJldHVybiAtRUlPOwogCiAJcmV0dXJuIGVycjsKQEAgLTExNjQsNyArMTE1NywxNCBAQCBzdGF0aWMgaW50IGV2aWN0X2ZlbmNlKHZvaWQgKmRhdGEpCiAJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAKKwllcnIgPSBpOTE1X3ZtYV9waW4oYXJnLT52bWEsIDAsIDAsIFBJTl9HTE9CQUwgfCBQSU5fTUFQUEFCTEUpOworCWlmIChlcnIpIHsKKwkJcHJfZXJyKCJVbmFibGUgdG8gcGluIHZtYSBmb3IgWS10aWxlZCBmZW5jZTsgZXJyOiVkXG4iLCBlcnIpOworCQlnb3RvIG91dF91bmxvY2s7CisJfQorCiAJZXJyID0gaTkxNV92bWFfcGluX2ZlbmNlKGFyZy0+dm1hKTsKKwlpOTE1X3ZtYV91bnBpbihhcmctPnZtYSk7CiAJaWYgKGVycikgewogCQlwcl9lcnIoIlVuYWJsZSB0byBwaW4gWS10aWxlZCBmZW5jZTsgZXJyOiVkXG4iLCBlcnIpOwogCQlnb3RvIG91dF91bmxvY2s7CkBAIC0xMTc4LDExICsxMTc4LDEyIEBAIHN0YXRpYyBpbnQgZXZpY3RfZmVuY2Uodm9pZCAqZGF0YSkKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgaW50IF9faWd0X3Jlc2V0X2V2aWN0X3ZtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKK3N0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZXZpY3Rfdm1hKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCQkJIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJCSBpbnQgKCpmbikodm9pZCAqKSwKIAkJCQkgdW5zaWduZWQgaW50IGZsYWdzKQogeworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGd0LT5pOTE1LT5lbmdpbmVbUkNTMF07CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IE5VTEw7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CkBAIC0xMTkwLDE3ICsxMTkxLDE3IEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZXZpY3Rfdm1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXN0cnVjdCBoYW5nIGg7CiAJaW50IGVycjsKIAotCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChpOTE1LT5lbmdpbmVbUkNTMF0pKQorCWlmICghZW5naW5lIHx8ICFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCiAJCXJldHVybiAwOwogCiAJLyogQ2hlY2sgdGhhdCB3ZSBjYW4gcmVjb3ZlciBhbiB1bmJpbmQgc3R1Y2sgb24gYSBoYW5naW5nIHJlcXVlc3QgKi8KIAotCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWVyciA9IGhhbmdfaW5pdCgmaCwgaTkxNSk7CisJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWVyciA9IGhhbmdfaW5pdCgmaCwgZ3QpOwogCWlmIChlcnIpCiAJCWdvdG8gdW5sb2NrOwogCi0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBTWl8xTSk7CisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChndC0+aTkxNSwgU1pfMU0pOwogCWlmIChJU19FUlIob2JqKSkgewogCQllcnIgPSBQVFJfRVJSKG9iaik7CiAJCWdvdG8gZmluaTsKQEAgLTEyMjAsNyArMTIyMSw3IEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZXZpY3Rfdm1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQlnb3RvIG91dF9vYmo7CiAJfQogCi0JcnEgPSBoYW5nX2NyZWF0ZV9yZXF1ZXN0KCZoLCBpOTE1LT5lbmdpbmVbUkNTMF0pOworCXJxID0gaGFuZ19jcmVhdGVfcmVxdWVzdCgmaCwgZW5naW5lKTsKIAlpZiAoSVNfRVJSKHJxKSkgewogCQllcnIgPSBQVFJfRVJSKHJxKTsKIAkJZ290byBvdXRfb2JqOwpAQCAtMTI0Niw3ICsxMjQ3LDEwIEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZXZpY3Rfdm1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCX0KIAogCWk5MTVfdm1hX2xvY2soYXJnLnZtYSk7Ci0JZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUoYXJnLnZtYSwgcnEsIGZsYWdzKTsKKwllcnIgPSBpOTE1X3JlcXVlc3RfYXdhaXRfb2JqZWN0KHJxLCBhcmcudm1hLT5vYmosCisJCQkJCWZsYWdzICYgRVhFQ19PQkpFQ1RfV1JJVEUpOworCWlmIChlcnIgPT0gMCkKKwkJZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUoYXJnLnZtYSwgcnEsIGZsYWdzKTsKIAlpOTE1X3ZtYV91bmxvY2soYXJnLnZtYSk7CiAKIAlpZiAoZmxhZ3MgJiBFWEVDX09CSkVDVF9ORUVEU19GRU5DRSkKQEAgLTEyNTgsMTYgKzEyNjIsMTYgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9ldmljdF92bWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJaWYgKGVycikKIAkJZ290byBvdXRfcnE7CiAKLQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X3VubG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiAJaWYgKCF3YWl0X3VudGlsX3J1bm5pbmcoJmgsIHJxKSkgewotCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIoaTkxNS0+ZHJtLmRldik7CisJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2luZm9fcHJpbnRlcihndC0+aTkxNS0+ZHJtLmRldik7CiAKIAkJcHJfZXJyKCIlczogRmFpbGVkIHRvIHN0YXJ0IHJlcXVlc3QgJWxseCwgYXQgJXhcbiIsCiAJCSAgICAgICBfX2Z1bmNfXywgcnEtPmZlbmNlLnNlcW5vLCBod3Nfc2Vxbm8oJmgsIHJxKSk7CiAJCWludGVsX2VuZ2luZV9kdW1wKHJxLT5lbmdpbmUsICZwLCAiJXNcbiIsIHJxLT5lbmdpbmUtPm5hbWUpOwogCi0JCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CisJCWludGVsX2d0X3NldF93ZWRnZWQoZ3QpOwogCQlnb3RvIG91dF9yZXNldDsKIAl9CiAKQEAgLTEyODQsMzEgKzEyODgsMzEgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9ldmljdF92bWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJd2FpdF9mb3JfY29tcGxldGlvbigmYXJnLmNvbXBsZXRpb24pOwogCiAJaWYgKHdhaXRfZm9yKCFsaXN0X2VtcHR5KCZycS0+ZmVuY2UuY2JfbGlzdCksIDEwKSkgewotCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIoaTkxNS0+ZHJtLmRldik7CisJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2luZm9fcHJpbnRlcihndC0+aTkxNS0+ZHJtLmRldik7CiAKIAkJcHJfZXJyKCJpZ3QvZXZpY3Rfdm1hIGt0aHJlYWQgZGlkIG5vdCB3YWl0XG4iKTsKIAkJaW50ZWxfZW5naW5lX2R1bXAocnEtPmVuZ2luZSwgJnAsICIlc1xuIiwgcnEtPmVuZ2luZS0+bmFtZSk7CiAKLQkJaTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKKwkJaW50ZWxfZ3Rfc2V0X3dlZGdlZChndCk7CiAJCWdvdG8gb3V0X3Jlc2V0OwogCX0KIAogb3V0X3Jlc2V0OgotCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKLQlmYWtlX2hhbmdjaGVjayhycS0+aTkxNSwgcnEtPmVuZ2luZS0+bWFzayk7Ci0JaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF9sb2NrKGd0KTsKKwlmYWtlX2hhbmdjaGVjayhndCwgcnEtPmVuZ2luZS0+bWFzayk7CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soZ3QpOwogCiAJaWYgKHRzaykgewotCQlzdHJ1Y3QgaWd0X3dlZGdlX21lIHc7CisJCXN0cnVjdCBpbnRlbF93ZWRnZV9tZSB3OwogCiAJCS8qIFRoZSByZXNldCwgZXZlbiBpbmRpcmVjdGx5LCBzaG91bGQgdGFrZSBsZXNzIHRoYW4gMTBtcy4gKi8KLQkJaWd0X3dlZGdlX29uX3RpbWVvdXQoJncsIGk5MTUsIEhaIC8gMTAgLyogMTAwbXMgdGltZW91dCovKQorCQlpbnRlbF93ZWRnZV9vbl90aW1lb3V0KCZ3LCBndCwgSFogLyAxMCAvKiAxMDBtcyAqLykKIAkJCWVyciA9IGt0aHJlYWRfc3RvcCh0c2spOwogCiAJCXB1dF90YXNrX3N0cnVjdCh0c2spOwogCX0KIAotCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X2xvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIG91dF9ycToKIAlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKIG91dF9vYmo6CkBAIC0xMzE2LDkgKzEzMjAsOSBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2V2aWN0X3ZtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIGZpbmk6CiAJaGFuZ19maW5pKCZoKTsKIHVubG9jazoKLQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X3VubG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JaWYgKGk5MTVfcmVzZXRfZmFpbGVkKGk5MTUpKQorCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZ3QpKQogCQlyZXR1cm4gLUVJTzsKIAogCXJldHVybiBlcnI7CkBAIC0xMzI2LDI2ICsxMzMwLDI2IEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZXZpY3Rfdm1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCiBzdGF0aWMgaW50IGlndF9yZXNldF9ldmljdF9nZ3R0KHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOwogCi0JcmV0dXJuIF9faWd0X3Jlc2V0X2V2aWN0X3ZtYShpOTE1LCAmaTkxNS0+Z2d0dC52bSwKKwlyZXR1cm4gX19pZ3RfcmVzZXRfZXZpY3Rfdm1hKGd0LCAmZ3QtPmdndHQtPnZtLAogCQkJCSAgICAgZXZpY3Rfdm1hLCBFWEVDX09CSkVDVF9XUklURSk7CiB9CiAKIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X2V2aWN0X3BwZ3R0KHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJc3RydWN0IGRybV9maWxlICpmaWxlOwogCWludCBlcnI7CiAKLQlmaWxlID0gbW9ja19maWxlKGk5MTUpOworCWZpbGUgPSBtb2NrX2ZpbGUoZ3QtPmk5MTUpOwogCWlmIChJU19FUlIoZmlsZSkpCiAJCXJldHVybiBQVFJfRVJSKGZpbGUpOwogCi0JbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JY3R4ID0gbGl2ZV9jb250ZXh0KGk5MTUsIGZpbGUpOwotCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWN0eCA9IGxpdmVfY29udGV4dChndC0+aTkxNSwgZmlsZSk7CisJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJaWYgKElTX0VSUihjdHgpKSB7CiAJCWVyciA9IFBUUl9FUlIoY3R4KTsKIAkJZ290byBvdXQ7CkBAIC0xMzUzLDI5ICsxMzU3LDI5IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X2V2aWN0X3BwZ3R0KHZvaWQgKmFyZykKIAogCWVyciA9IDA7CiAJaWYgKGN0eC0+dm0pIC8qIGFsaWFzaW5nID09IGdsb2JhbCBndHQgbG9ja2luZywgY292ZXJlZCBhYm92ZSAqLwotCQllcnIgPSBfX2lndF9yZXNldF9ldmljdF92bWEoaTkxNSwgY3R4LT52bSwKKwkJZXJyID0gX19pZ3RfcmVzZXRfZXZpY3Rfdm1hKGd0LCBjdHgtPnZtLAogCQkJCQkgICAgZXZpY3Rfdm1hLCBFWEVDX09CSkVDVF9XUklURSk7CiAKIG91dDoKLQltb2NrX2ZpbGVfZnJlZShpOTE1LCBmaWxlKTsKKwltb2NrX2ZpbGVfZnJlZShndC0+aTkxNSwgZmlsZSk7CiAJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBpZ3RfcmVzZXRfZXZpY3RfZmVuY2Uodm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBhcmc7CiAKLQlyZXR1cm4gX19pZ3RfcmVzZXRfZXZpY3Rfdm1hKGk5MTUsICZpOTE1LT5nZ3R0LnZtLAorCXJldHVybiBfX2lndF9yZXNldF9ldmljdF92bWEoZ3QsICZndC0+Z2d0dC0+dm0sCiAJCQkJICAgICBldmljdF9mZW5jZSwgRVhFQ19PQkpFQ1RfTkVFRFNfRkVOQ0UpOwogfQogCi1zdGF0aWMgaW50IHdhaXRfZm9yX290aGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKK3N0YXRpYyBpbnQgd2FpdF9mb3Jfb3RoZXJzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpleGNsdWRlKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CiAJCWlmIChlbmdpbmUgPT0gZXhjbHVkZSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMzg4LDcgKzEzOTIsOCBAQCBzdGF0aWMgaW50IHdhaXRfZm9yX290aGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAogc3RhdGljIGludCBpZ3RfcmVzZXRfcXVldWUodm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBhcmc7CisJc3RydWN0IGk5MTVfZ3B1X2Vycm9yICpnbG9iYWwgPSAmZ3QtPmk5MTUtPmdwdV9lcnJvcjsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJc3RydWN0IGhhbmcgaDsKQEAgLTEzOTYsMTQgKzE0MDEsMTQgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfcXVldWUodm9pZCAqYXJnKQogCiAJLyogQ2hlY2sgdGhhdCB3ZSByZXBsYXkgcGVuZGluZyByZXF1ZXN0cyBmb2xsb3dpbmcgYSBoYW5nICovCiAKLQlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF9sb2NrKGd0KTsKIAotCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWVyciA9IGhhbmdfaW5pdCgmaCwgaTkxNSk7CisJbXV0ZXhfbG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWVyciA9IGhhbmdfaW5pdCgmaCwgZ3QpOwogCWlmIChlcnIpCiAJCWdvdG8gdW5sb2NrOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcHJldjsKIAkJSUdUX1RJTUVPVVQoZW5kX3RpbWUpOwogCQl1bnNpZ25lZCBpbnQgY291bnQ7CkBAIC0xNDQ0LDcgKzE0NDksNyBAQCBzdGF0aWMgaW50IGlndF9yZXNldF9xdWV1ZSh2b2lkICphcmcpCiAJCQkgKiAoaGFuZ2NoZWNrKSwgb3Igd2UgZm9jdXMgb24gcmVzZXR0aW5nIGp1c3Qgb25lCiAJCQkgKiBlbmdpbmUgYW5kIHNvIGF2b2lkIHJlcGVhdGVkbHkgcmVzZXR0aW5nIGlubm9jZW50cy4KIAkJCSAqLwotCQkJZXJyID0gd2FpdF9mb3Jfb3RoZXJzKGk5MTUsIGVuZ2luZSk7CisJCQllcnIgPSB3YWl0X2Zvcl9vdGhlcnMoZ3QsIGVuZ2luZSk7CiAJCQlpZiAoZXJyKSB7CiAJCQkJcHJfZXJyKCIlcyglcyk6IEZhaWxlZCB0byBpZGxlIG90aGVyIGluYWN0aXZlIGVuZ2luZXMgYWZ0ZXIgZGV2aWNlIHJlc2V0XG4iLAogCQkJCSAgICAgICBfX2Z1bmNfXywgZW5naW5lLT5uYW1lKTsKQEAgLTE0NTIsMTIgKzE0NTcsMTIgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfcXVldWUodm9pZCAqYXJnKQogCQkJCWk5MTVfcmVxdWVzdF9wdXQocHJldik7CiAKIAkJCQlHRU1fVFJBQ0VfRFVNUCgpOwotCQkJCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CisJCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZChndCk7CiAJCQkJZ290byBmaW5pOwogCQkJfQogCiAJCQlpZiAoIXdhaXRfdW50aWxfcnVubmluZygmaCwgcHJldikpIHsKLQkJCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIoaTkxNS0+ZHJtLmRldik7CisJCQkJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1faW5mb19wcmludGVyKGd0LT5pOTE1LT5kcm0uZGV2KTsKIAogCQkJCXByX2VycigiJXMoJXMpOiBGYWlsZWQgdG8gc3RhcnQgcmVxdWVzdCAlbGx4LCBhdCAleFxuIiwKIAkJCQkgICAgICAgX19mdW5jX18sIGVuZ2luZS0+bmFtZSwKQEAgLTE0NjgsMTMgKzE0NzMsMTMgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfcXVldWUodm9pZCAqYXJnKQogCQkJCWk5MTVfcmVxdWVzdF9wdXQocnEpOwogCQkJCWk5MTVfcmVxdWVzdF9wdXQocHJldik7CiAKLQkJCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCQkJCWludGVsX2d0X3NldF93ZWRnZWQoZ3QpOwogCiAJCQkJZXJyID0gLUVJTzsKIAkJCQlnb3RvIGZpbmk7CiAJCQl9CiAKLQkJCXJlc2V0X2NvdW50ID0gZmFrZV9oYW5nY2hlY2soaTkxNSwgQklUKGlkKSk7CisJCQlyZXNldF9jb3VudCA9IGZha2VfaGFuZ2NoZWNrKGd0LCBCSVQoaWQpKTsKIAogCQkJaWYgKHByZXYtPmZlbmNlLmVycm9yICE9IC1FSU8pIHsKIAkJCQlwcl9lcnIoIkdQVSByZXNldCBub3QgcmVjb3JkZWQgb24gaGFuZ2luZyByZXF1ZXN0IFtmZW5jZS5lcnJvcj0lZF0hXG4iLApAQCAtMTQ5NCw3ICsxNDk5LDcgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfcXVldWUodm9pZCAqYXJnKQogCQkJCWdvdG8gZmluaTsKIAkJCX0KIAotCQkJaWYgKGk5MTVfcmVzZXRfY291bnQoJmk5MTUtPmdwdV9lcnJvcikgPT0gcmVzZXRfY291bnQpIHsKKwkJCWlmIChpOTE1X3Jlc2V0X2NvdW50KGdsb2JhbCkgPT0gcmVzZXRfY291bnQpIHsKIAkJCQlwcl9lcnIoIk5vIEdQVSByZXNldCByZWNvcmRlZCFcbiIpOwogCQkJCWk5MTVfcmVxdWVzdF9wdXQocnEpOwogCQkJCWk5MTVfcmVxdWVzdF9wdXQocHJldik7CkBAIC0xNTA5LDExICsxNTE0LDExIEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X3F1ZXVlKHZvaWQgKmFyZykKIAkJcHJfaW5mbygiJXM6IENvbXBsZXRlZCAlZCByZXNldHNcbiIsIGVuZ2luZS0+bmFtZSwgY291bnQpOwogCiAJCSpoLmJhdGNoID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKLQkJaTkxNV9nZW1fY2hpcHNldF9mbHVzaChpOTE1KTsKKwkJaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChlbmdpbmUtPmd0KTsKIAogCQlpOTE1X3JlcXVlc3RfcHV0KHByZXYpOwogCi0JCWVyciA9IGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOworCQllcnIgPSBpZ3RfZmx1c2hfdGVzdChndC0+aTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAl9CkBAIC0xNTIxLDEwICsxNTI2LDEwIEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X3F1ZXVlKHZvaWQgKmFyZykKIGZpbmk6CiAJaGFuZ19maW5pKCZoKTsKIHVubG9jazoKLQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUpOworCW11dGV4X3VubG9jaygmZ3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGd0KTsKIAotCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChpOTE1KSkKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSkKIAkJcmV0dXJuIC1FSU87CiAKIAlyZXR1cm4gZXJyOwpAQCAtMTUzMiw4ICsxNTM3LDkgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfcXVldWUodm9pZCAqYXJnKQogCiBzdGF0aWMgaW50IGlndF9oYW5kbGVfZXJyb3Iodm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGk5MTUtPmVuZ2luZVtSQ1MwXTsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOworCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZ2xvYmFsID0gJmd0LT5pOTE1LT5ncHVfZXJyb3I7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gZ3QtPmk5MTUtPmVuZ2luZVtSQ1MwXTsKIAlzdHJ1Y3QgaGFuZyBoOwogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCXN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3I7CkBAIC0xNTQxLDE1ICsxNTQ3LDE1IEBAIHN0YXRpYyBpbnQgaWd0X2hhbmRsZV9lcnJvcih2b2lkICphcmcpCiAKIAkvKiBDaGVjayB0aGF0IHdlIGNhbiBpc3N1ZSBhIGdsb2JhbCBHUFUgYW5kIGVuZ2luZSByZXNldCAqLwogCi0JaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGk5MTUpKQorCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShndC0+aTkxNSkpCiAJCXJldHVybiAwOwogCiAJaWYgKCFlbmdpbmUgfHwgIWludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQoZW5naW5lKSkKIAkJcmV0dXJuIDA7CiAKLQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQllcnIgPSBoYW5nX2luaXQoJmgsIGk5MTUpOworCWVyciA9IGhhbmdfaW5pdCgmaCwgZ3QpOwogCWlmIChlcnIpCiAJCWdvdG8gZXJyX3VubG9jazsKIApAQCAtMTU2MywyOCArMTU2OSwyOCBAQCBzdGF0aWMgaW50IGlndF9oYW5kbGVfZXJyb3Iodm9pZCAqYXJnKQogCWk5MTVfcmVxdWVzdF9hZGQocnEpOwogCiAJaWYgKCF3YWl0X3VudGlsX3J1bm5pbmcoJmgsIHJxKSkgewotCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIoaTkxNS0+ZHJtLmRldik7CisJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2luZm9fcHJpbnRlcihndC0+aTkxNS0+ZHJtLmRldik7CiAKIAkJcHJfZXJyKCIlczogRmFpbGVkIHRvIHN0YXJ0IHJlcXVlc3QgJWxseCwgYXQgJXhcbiIsCiAJCSAgICAgICBfX2Z1bmNfXywgcnEtPmZlbmNlLnNlcW5vLCBod3Nfc2Vxbm8oJmgsIHJxKSk7CiAJCWludGVsX2VuZ2luZV9kdW1wKHJxLT5lbmdpbmUsICZwLCAiJXNcbiIsIHJxLT5lbmdpbmUtPm5hbWUpOwogCi0JCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CisJCWludGVsX2d0X3NldF93ZWRnZWQoZ3QpOwogCiAJCWVyciA9IC1FSU87CiAJCWdvdG8gZXJyX3JlcXVlc3Q7CiAJfQogCi0JbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwltdXRleF91bmxvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCS8qIFRlbXBvcmFyaWx5IGRpc2FibGUgZXJyb3IgY2FwdHVyZSAqLwotCWVycm9yID0geGNoZygmaTkxNS0+Z3B1X2Vycm9yLmZpcnN0X2Vycm9yLCAodm9pZCAqKS0xKTsKKwllcnJvciA9IHhjaGcoJmdsb2JhbC0+Zmlyc3RfZXJyb3IsICh2b2lkICopLTEpOwogCi0JaTkxNV9oYW5kbGVfZXJyb3IoaTkxNSwgZW5naW5lLT5tYXNrLCAwLCBOVUxMKTsKKwlpbnRlbF9ndF9oYW5kbGVfZXJyb3IoZ3QsIGVuZ2luZS0+bWFzaywgMCwgTlVMTCk7CiAKLQl4Y2hnKCZpOTE1LT5ncHVfZXJyb3IuZmlyc3RfZXJyb3IsIGVycm9yKTsKKwl4Y2hnKCZnbG9iYWwtPmZpcnN0X2Vycm9yLCBlcnJvcik7CiAKLQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlpZiAocnEtPmZlbmNlLmVycm9yICE9IC1FSU8pIHsKIAkJcHJfZXJyKCJHdWlsdHkgcmVxdWVzdCBub3QgaWRlbnRpZmllZCFcbiIpOwpAQCAtMTU5Nyw3ICsxNjAzLDcgQEAgc3RhdGljIGludCBpZ3RfaGFuZGxlX2Vycm9yKHZvaWQgKmFyZykKIGVycl9maW5pOgogCWhhbmdfZmluaSgmaCk7CiBlcnJfdW5sb2NrOgotCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtMTYxNCw3ICsxNjIwLDcgQEAgc3RhdGljIGludCBfX2lndF9hdG9taWNfcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAl0YXNrbGV0X2Rpc2FibGVfbm9zeW5jKHQpOwogCXAtPmNyaXRpY2FsX3NlY3Rpb25fYmVnaW4oKTsKIAotCWVyciA9IGk5MTVfcmVzZXRfZW5naW5lKGVuZ2luZSwgTlVMTCk7CisJZXJyID0gaW50ZWxfZW5naW5lX3Jlc2V0KGVuZ2luZSwgTlVMTCk7CiAKIAlwLT5jcml0aWNhbF9zZWN0aW9uX2VuZCgpOwogCXRhc2tsZXRfZW5hYmxlKHQpOwpAQCAtMTYyOSw3ICsxNjM1LDYgQEAgc3RhdGljIGludCBfX2lndF9hdG9taWNfcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIHN0YXRpYyBpbnQgaWd0X2F0b21pY19yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJCSAgIGNvbnN0IHN0cnVjdCBpZ3RfYXRvbWljX3NlY3Rpb24gKnApCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAJc3RydWN0IGhhbmcgaDsKIAlpbnQgZXJyOwpAQCAtMTYzOCw3ICsxNjQzLDcgQEAgc3RhdGljIGludCBpZ3RfYXRvbWljX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCWVyciA9IGhhbmdfaW5pdCgmaCwgaTkxNSk7CisJZXJyID0gaGFuZ19pbml0KCZoLCBlbmdpbmUtPmd0KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCkBAIC0xNjU3LDE2ICsxNjYyLDE2IEBAIHN0YXRpYyBpbnQgaWd0X2F0b21pY19yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQlwcl9lcnIoIiVzKCVzKTogRmFpbGVkIHRvIHN0YXJ0IHJlcXVlc3QgJWxseCwgYXQgJXhcbiIsCiAJCSAgICAgICBfX2Z1bmNfXywgZW5naW5lLT5uYW1lLAogCQkgICAgICAgcnEtPmZlbmNlLnNlcW5vLCBod3Nfc2Vxbm8oJmgsIHJxKSk7Ci0JCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CisJCWludGVsX2d0X3NldF93ZWRnZWQoZW5naW5lLT5ndCk7CiAJCWVyciA9IC1FSU87CiAJfQogCiAJaWYgKGVyciA9PSAwKSB7Ci0JCXN0cnVjdCBpZ3Rfd2VkZ2VfbWUgdzsKKwkJc3RydWN0IGludGVsX3dlZGdlX21lIHc7CiAKLQkJaWd0X3dlZGdlX29uX3RpbWVvdXQoJncsIGk5MTUsIEhaIC8gMjAgLyogNTBtcyB0aW1lb3V0Ki8pCisJCWludGVsX3dlZGdlX29uX3RpbWVvdXQoJncsIGVuZ2luZS0+Z3QsIEhaIC8gMjAgLyogNTBtcyAqLykKIAkJCWk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBNQVhfU0NIRURVTEVfVElNRU9VVCk7Ci0JCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChpOTE1KSkKKwkJaWYgKGludGVsX2d0X2lzX3dlZGdlZChlbmdpbmUtPmd0KSkKIAkJCWVyciA9IC1FSU87CiAJfQogCkBAIC0xNjc4LDMwICsxNjgzLDMwIEBAIHN0YXRpYyBpbnQgaWd0X2F0b21pY19yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiBzdGF0aWMgaW50IGlndF9yZXNldF9lbmdpbmVzX2F0b21pYyh2b2lkICphcmcpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGFyZzsKIAljb25zdCB0eXBlb2YoKmlndF9hdG9taWNfcGhhc2VzKSAqcDsKIAlpbnQgZXJyID0gMDsKIAogCS8qIENoZWNrIHRoYXQgdGhlIGVuZ2luZXMgcmVzZXRzIGFyZSB1c2FibGUgZnJvbSBhdG9taWMgY29udGV4dCAqLwogCi0JaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGk5MTUpKQorCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShndC0+aTkxNSkpCiAJCXJldHVybiAwOwogCi0JaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oaTkxNSkpCisJaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oZ3QtPmk5MTUpKQogCQlyZXR1cm4gMDsKIAotCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKLQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soZ3QpOworCW11dGV4X2xvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCS8qIEZsdXNoIGFueSByZXF1ZXN0cyBiZWZvcmUgd2UgZ2V0IHN0YXJ0ZWQgYW5kIGNoZWNrIGJhc2ljcyAqLwotCWlmICghaWd0X2ZvcmNlX3Jlc2V0KGk5MTUpKQorCWlmICghaWd0X2ZvcmNlX3Jlc2V0KGd0KSkKIAkJZ290byB1bmxvY2s7CiAKIAlmb3IgKHAgPSBpZ3RfYXRvbWljX3BoYXNlczsgcC0+bmFtZTsgcCsrKSB7CiAJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAkJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAKLQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CiAJCQllcnIgPSBpZ3RfYXRvbWljX3Jlc2V0X2VuZ2luZShlbmdpbmUsIHApOwogCQkJaWYgKGVycikKIAkJCQlnb3RvIG91dDsKQEAgLTE3MTAsMTEgKzE3MTUsMTEgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfZW5naW5lc19hdG9taWModm9pZCAqYXJnKQogCiBvdXQ6CiAJLyogQXMgd2UgcG9rZSBhcm91bmQgdGhlIGd1dHMsIGRvIGEgZnVsbCByZXNldCBiZWZvcmUgY29udGludWluZy4gKi8KLQlpZ3RfZm9yY2VfcmVzZXQoaTkxNSk7CisJaWd0X2ZvcmNlX3Jlc2V0KGd0KTsKIAogdW5sb2NrOgotCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soZ3QpOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTE3MzYsMjggKzE3NDEsMjkgQEAgaW50IGludGVsX2hhbmdjaGVja19saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJU1VCVEVTVChpZ3RfcmVzZXRfZXZpY3RfZmVuY2UpLAogCQlTVUJURVNUKGlndF9oYW5kbGVfZXJyb3IpLAogCX07CisJc3RydWN0IGludGVsX2d0ICpndCA9ICZpOTE1LT5ndDsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAlib29sIHNhdmVkX2hhbmdjaGVjazsKIAlpbnQgZXJyOwogCi0JaWYgKCFpbnRlbF9oYXNfZ3B1X3Jlc2V0KGk5MTUpKQorCWlmICghaW50ZWxfaGFzX2dwdV9yZXNldChndC0+aTkxNSkpCiAJCXJldHVybiAwOwogCi0JaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNSkpCisJaWYgKGludGVsX2d0X2lzX3dlZGdlZChndCkpCiAJCXJldHVybiAtRUlPOyAvKiB3ZSdyZSBsb25nIHBhc3QgaG9wZSBvZiBhIHN1Y2Nlc3NmdWwgcmVzZXQgKi8KIAotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZndC0+aTkxNS0+cnVudGltZV9wbSk7CiAJc2F2ZWRfaGFuZ2NoZWNrID0gZmV0Y2hfYW5kX3plcm8oJmk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2spOwotCWRyYWluX2RlbGF5ZWRfd29yaygmaTkxNS0+Z3B1X2Vycm9yLmhhbmdjaGVja193b3JrKTsgLyogZmx1c2ggcGFyYW0gKi8KKwlkcmFpbl9kZWxheWVkX3dvcmsoJmd0LT5oYW5nY2hlY2sud29yayk7IC8qIGZsdXNoIHBhcmFtICovCiAKLQllcnIgPSBpOTE1X3N1YnRlc3RzKHRlc3RzLCBpOTE1KTsKKwllcnIgPSBpbnRlbF9ndF9saXZlX3N1YnRlc3RzKHRlc3RzLCBndCk7CiAKLQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQlpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKTsKLQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X2xvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlpZ3RfZmx1c2hfdGVzdChndC0+aTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7CisJbXV0ZXhfdW5sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrID0gc2F2ZWRfaGFuZ2NoZWNrOwotCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZ3QtPmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCiAJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKaW5kZXggNDAxZThiNS4uZDc5MTE1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKQEAgLTIyLDkgKzIyLDkgQEAKIHN0YXRpYyBpbnQgbGl2ZV9zYW5pdHljaGVjayh2b2lkICphcmcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXN0cnVjdCBpOTE1X2dlbV9lbmdpbmVzX2l0ZXIgaXQ7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAJc3RydWN0IGlndF9zcGlubmVyIHNwaW47CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJaW50IGVyciA9IC1FTk9NRU07CkBAIC0zNSwxNyArMzUsMTcgQEAgc3RhdGljIGludCBsaXZlX3Nhbml0eWNoZWNrKHZvaWQgKmFyZykKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCi0JaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW4sIGk5MTUpKQorCWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluLCAmaTkxNS0+Z3QpKQogCQlnb3RvIGVycl91bmxvY2s7CiAKIAljdHggPSBrZXJuZWxfY29udGV4dChpOTE1KTsKIAlpZiAoIWN0eCkKIAkJZ290byBlcnJfc3BpbjsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZ2VtX2VuZ2luZShjZSwgaTkxNV9nZW1fY29udGV4dF9sb2NrX2VuZ2luZXMoY3R4KSwgaXQpIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAKLQkJcnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3BpbiwgY3R4LCBlbmdpbmUsIE1JX05PT1ApOworCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluLCBjZSwgTUlfTk9PUCk7CiAJCWlmIChJU19FUlIocnEpKSB7CiAJCQllcnIgPSBQVFJfRVJSKHJxKTsKIAkJCWdvdG8gZXJyX2N0eDsKQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIGludCBsaXZlX3Nhbml0eWNoZWNrKHZvaWQgKmFyZykKIAkJaWYgKCFpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcigmc3BpbiwgcnEpKSB7CiAJCQlHRU1fVFJBQ0UoInNwaW5uZXIgZmFpbGVkIHRvIHN0YXJ0XG4iKTsKIAkJCUdFTV9UUkFDRV9EVU1QKCk7Ci0JCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZCgmaTkxNS0+Z3QpOwogCQkJZXJyID0gLUVJTzsKIAkJCWdvdG8gZXJyX2N0eDsKIAkJfQpAQCAtNjksMTYgKzY5LDIzNiBAQCBzdGF0aWMgaW50IGxpdmVfc2FuaXR5Y2hlY2sodm9pZCAqYXJnKQogCiAJZXJyID0gMDsKIGVycl9jdHg6CisJaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOwogCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7CiBlcnJfc3BpbjoKIAlpZ3Rfc3Bpbm5lcl9maW5pKCZzcGluKTsKIGVycl91bmxvY2s6Ci0JaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludAorZW1pdF9zZW1hcGhvcmVfY2hhaW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBpbnQgaWR4KQoreworCXUzMiAqY3M7CisKKwljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDEwKTsKKwlpZiAoSVNfRVJSKGNzKSkKKwkJcmV0dXJuIFBUUl9FUlIoY3MpOworCisJKmNzKysgPSBNSV9BUkJfT05fT0ZGIHwgTUlfQVJCX0VOQUJMRTsKKworCSpjcysrID0gTUlfU0VNQVBIT1JFX1dBSVQgfAorCQlNSV9TRU1BUEhPUkVfR0xPQkFMX0dUVCB8CisJCU1JX1NFTUFQSE9SRV9QT0xMIHwKKwkJTUlfU0VNQVBIT1JFX1NBRF9ORVFfU0REOworCSpjcysrID0gMDsKKwkqY3MrKyA9IGk5MTVfZ2d0dF9vZmZzZXQodm1hKSArIDQgKiBpZHg7CisJKmNzKysgPSAwOworCisJaWYgKGlkeCA+IDApIHsKKwkJKmNzKysgPSBNSV9TVE9SRV9EV09SRF9JTU1fR0VONCB8IE1JX1VTRV9HR1RUOworCQkqY3MrKyA9IGk5MTVfZ2d0dF9vZmZzZXQodm1hKSArIDQgKiAoaWR4IC0gMSk7CisJCSpjcysrID0gMDsKKwkJKmNzKysgPSAxOworCX0gZWxzZSB7CisJCSpjcysrID0gTUlfTk9PUDsKKwkJKmNzKysgPSBNSV9OT09QOworCQkqY3MrKyA9IE1JX05PT1A7CisJCSpjcysrID0gTUlfTk9PUDsKKwl9CisKKwkqY3MrKyA9IE1JX0FSQl9PTl9PRkYgfCBNSV9BUkJfRElTQUJMRTsKKworCWludGVsX3JpbmdfYWR2YW5jZShycSwgY3MpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGk5MTVfcmVxdWVzdCAqCitzZW1hcGhvcmVfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgaW50IGlkeCkKK3sKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCWludCBlcnI7CisKKwljdHggPSBrZXJuZWxfY29udGV4dChlbmdpbmUtPmk5MTUpOworCWlmICghY3R4KQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCXJxID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4LCBlbmdpbmUpOworCWlmIChJU19FUlIocnEpKQorCQlnb3RvIG91dF9jdHg7CisKKwllcnIgPSBlbWl0X3NlbWFwaG9yZV9jaGFpbihycSwgdm1hLCBpZHgpOworCWk5MTVfcmVxdWVzdF9hZGQocnEpOworCWlmIChlcnIpCisJCXJxID0gRVJSX1BUUihlcnIpOworCitvdXRfY3R4OgorCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7CisJcmV0dXJuIHJxOworfQorCitzdGF0aWMgaW50CityZWxlYXNlX3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkgICAgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkgICAgICBpbnQgaWR4KQoreworCXN0cnVjdCBpOTE1X3NjaGVkX2F0dHIgYXR0ciA9IHsKKwkJLnByaW9yaXR5ID0gSTkxNV9VU0VSX1BSSU9SSVRZKEk5MTVfUFJJT1JJVFlfTUFYKSwKKwl9OworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCXUzMiAqY3M7CisKKwlycSA9IGk5MTVfcmVxdWVzdF9jcmVhdGUoZW5naW5lLT5rZXJuZWxfY29udGV4dCk7CisJaWYgKElTX0VSUihycSkpCisJCXJldHVybiBQVFJfRVJSKHJxKTsKKworCWNzID0gaW50ZWxfcmluZ19iZWdpbihycSwgNCk7CisJaWYgKElTX0VSUihjcykpIHsKKwkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CisJCXJldHVybiBQVFJfRVJSKGNzKTsKKwl9CisKKwkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTV9HRU40IHwgTUlfVVNFX0dHVFQ7CisJKmNzKysgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSkgKyA0ICogKGlkeCAtIDEpOworCSpjcysrID0gMDsKKwkqY3MrKyA9IDE7CisKKwlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNzKTsKKwlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKKworCWVuZ2luZS0+c2NoZWR1bGUocnEsICZhdHRyKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitzbGljZV9zZW1hcGhvcmVfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqb3V0ZXIsCisJCSAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAorCQkgICAgICBpbnQgY291bnQpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKmhlYWQ7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJaW50IGVyciwgaSwgbiA9IDA7CisKKwloZWFkID0gc2VtYXBob3JlX3F1ZXVlKG91dGVyLCB2bWEsIG4rKyk7CisJaWYgKElTX0VSUihoZWFkKSkKKwkJcmV0dXJuIFBUUl9FUlIoaGVhZCk7CisKKwlpOTE1X3JlcXVlc3RfZ2V0KGhlYWQpOworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIG91dGVyLT5pOTE1LCBpZCkgeworCQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworCQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisKKwkJCXJxID0gc2VtYXBob3JlX3F1ZXVlKGVuZ2luZSwgdm1hLCBuKyspOworCQkJaWYgKElTX0VSUihycSkpIHsKKwkJCQllcnIgPSBQVFJfRVJSKHJxKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKwkJfQorCX0KKworCWVyciA9IHJlbGVhc2VfcXVldWUob3V0ZXIsIHZtYSwgbik7CisJaWYgKGVycikKKwkJZ290byBvdXQ7CisKKwlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQoaGVhZCwKKwkJCSAgICAgIEk5MTVfV0FJVF9MT0NLRUQsCisJCQkgICAgICAyICogUlVOVElNRV9JTkZPKG91dGVyLT5pOTE1KS0+bnVtX2VuZ2luZXMgKiAoY291bnQgKyAyKSAqIChjb3VudCArIDMpKSA8IDApIHsKKwkJcHJfZXJyKCJGYWlsZWQgdG8gc2xpY2UgYWxvbmcgc2VtYXBob3JlIGNoYWluIG9mIGxlbmd0aCAoJWQsICVkKSFcbiIsCisJCSAgICAgICBjb3VudCwgbik7CisJCUdFTV9UUkFDRV9EVU1QKCk7CisJCWludGVsX2d0X3NldF93ZWRnZWQob3V0ZXItPmd0KTsKKwkJZXJyID0gLUVJTzsKKwl9CisKK291dDoKKwlpOTE1X3JlcXVlc3RfcHV0KGhlYWQpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgbGl2ZV90aW1lc2xpY2VfcHJlZW1wdCh2b2lkICphcmcpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwl2b2lkICp2YWRkcjsKKwlpbnQgZXJyID0gMDsKKwlpbnQgY291bnQ7CisKKwkvKgorCSAqIElmIGEgcmVxdWVzdCB0YWtlcyB0b28gbG9uZywgd2Ugd291bGQgbGlrZSB0byBnaXZlIG90aGVyIHVzZXJzCisJICogYSBmYWlyIGdvIG9uIHRoZSBHUFUuIEluIHBhcnRpY3VsYXIsIHVzZXJzIG1heSBjcmVhdGUgYmF0Y2hlcworCSAqIHRoYXQgd2FpdCB1cG9uIGV4dGVybmFsIGlucHV0LCB3aGVyZSB0aGF0IGlucHV0IG1heSBldmVuIGJlCisJICogc3VwcGxpZWQgYnkgYW5vdGhlciBHUFUgam9iLiBUbyBhdm9pZCBibG9ja2luZyBmb3JldmVyLCB3ZQorCSAqIG5lZWQgdG8gcHJlZW1wdCB0aGUgY3VycmVudCB0YXNrIGFuZCByZXBsYWNlIGl0IHdpdGggYW5vdGhlcgorCSAqIHJlYWR5IHRhc2suCisJICovCisKKwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOworCisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBQQUdFX1NJWkUpOworCWlmIChJU19FUlIob2JqKSkgeworCQllcnIgPSBQVFJfRVJSKG9iaik7CisJCWdvdG8gZXJyX3VubG9jazsKKwl9CisKKwl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosICZpOTE1LT5nZ3R0LnZtLCBOVUxMKTsKKwlpZiAoSVNfRVJSKHZtYSkpIHsKKwkJZXJyID0gUFRSX0VSUih2bWEpOworCQlnb3RvIGVycl9vYmo7CisJfQorCisJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChvYmosIEk5MTVfTUFQX1dDKTsKKwlpZiAoSVNfRVJSKHZhZGRyKSkgeworCQllcnIgPSBQVFJfRVJSKHZhZGRyKTsKKwkJZ290byBlcnJfb2JqOworCX0KKworCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIFBJTl9HTE9CQUwpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX21hcDsKKworCWZvcl9lYWNoX3ByaW1lX251bWJlcl9mcm9tKGNvdW50LCAxLCAxNikgeworCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCisJCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCQlpZiAoIWludGVsX2VuZ2luZV9oYXNfcHJlZW1wdGlvbihlbmdpbmUpKQorCQkJCWNvbnRpbnVlOworCisJCQltZW1zZXQodmFkZHIsIDAsIFBBR0VfU0laRSk7CisKKwkJCWVyciA9IHNsaWNlX3NlbWFwaG9yZV9xdWV1ZShlbmdpbmUsIHZtYSwgY291bnQpOworCQkJaWYgKGVycikKKwkJCQlnb3RvIGVycl9waW47CisKKwkJCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkgeworCQkJCWVyciA9IC1FSU87CisJCQkJZ290byBlcnJfcGluOworCQkJfQorCQl9CisJfQorCitlcnJfcGluOgorCWk5MTVfdm1hX3VucGluKHZtYSk7CitlcnJfbWFwOgorCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAob2JqKTsKK2Vycl9vYmo6CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOworZXJyX3VubG9jazoKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCXJldHVybiBlcnI7Cit9CisKIHN0YXRpYyBpbnQgbGl2ZV9idXN5d2FpdF9wcmVlbXB0KHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKQEAgLTEzOCw2ICszNTgsOSBAQCBzdGF0aWMgaW50IGxpdmVfYnVzeXdhaXRfcHJlZW1wdCh2b2lkICphcmcpCiAJCXN0cnVjdCBpZ3RfbGl2ZV90ZXN0IHQ7CiAJCXUzMiAqY3M7CiAKKwkJaWYgKCFpbnRlbF9lbmdpbmVfaGFzX3ByZWVtcHRpb24oZW5naW5lKSkKKwkJCWNvbnRpbnVlOworCiAJCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQogCQkJY29udGludWU7CiAKQEAgLTIyOSw3ICs0NTIsNyBAQCBzdGF0aWMgaW50IGxpdmVfYnVzeXdhaXRfcHJlZW1wdCh2b2lkICphcmcpCiAJCQlpbnRlbF9lbmdpbmVfZHVtcChlbmdpbmUsICZwLCAiJXNcbiIsIGVuZ2luZS0+bmFtZSk7CiAJCQlHRU1fVFJBQ0VfRFVNUCgpOwogCi0JCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZCgmaTkxNS0+Z3QpOwogCQkJZXJyID0gLUVJTzsKIAkJCWdvdG8gZXJyX3ZtYTsKIAkJfQpAQCAtMjUzLDEzICs0NzYsMjkgQEAgc3RhdGljIGludCBsaXZlX2J1c3l3YWl0X3ByZWVtcHQodm9pZCAqYXJnKQogZXJyX2N0eF9oaToKIAlrZXJuZWxfY29udGV4dF9jbG9zZShjdHhfaGkpOwogZXJyX3VubG9jazoKLQlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCi0JCWVyciA9IC1FSU87CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgorc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4sCisJCSAgICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAorCQkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkgICAgICAgdTMyIGFyYikKK3sKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisKKwljZSA9IGk5MTVfZ2VtX2NvbnRleHRfZ2V0X2VuZ2luZShjdHgsIGVuZ2luZS0+bGVnYWN5X2lkeCk7CisJaWYgKElTX0VSUihjZSkpCisJCXJldHVybiBFUlJfQ0FTVChjZSk7CisKKwlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KHNwaW4sIGNlLCBhcmIpOworCWludGVsX2NvbnRleHRfcHV0KGNlKTsKKwlyZXR1cm4gcnE7Cit9CisKIHN0YXRpYyBpbnQgbGl2ZV9wcmVlbXB0KHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKQEAgLTI3OSwxMCArNTE4LDEwIEBAIHN0YXRpYyBpbnQgbGl2ZV9wcmVlbXB0KHZvaWQgKmFyZykKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCi0JaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW5faGksIGk5MTUpKQorCWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluX2hpLCAmaTkxNS0+Z3QpKQogCQlnb3RvIGVycl91bmxvY2s7CiAKLQlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9sbywgaTkxNSkpCisJaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW5fbG8sICZpOTE1LT5ndCkpCiAJCWdvdG8gZXJyX3NwaW5faGk7CiAKIAljdHhfaGkgPSBrZXJuZWxfY29udGV4dChpOTE1KTsKQEAgLTMwOSw4ICs1NDgsOCBAQCBzdGF0aWMgaW50IGxpdmVfcHJlZW1wdCh2b2lkICphcmcpCiAJCQlnb3RvIGVycl9jdHhfbG87CiAJCX0KIAotCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluX2xvLCBjdHhfbG8sIGVuZ2luZSwKLQkJCQkJCU1JX0FSQl9DSEVDSyk7CisJCXJxID0gc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bpbl9sbywgY3R4X2xvLCBlbmdpbmUsCisJCQkJCSAgICBNSV9BUkJfQ0hFQ0spOwogCQlpZiAoSVNfRVJSKHJxKSkgewogCQkJZXJyID0gUFRSX0VSUihycSk7CiAJCQlnb3RvIGVycl9jdHhfbG87CkBAIC0zMjAsMTMgKzU1OSwxMyBAQCBzdGF0aWMgaW50IGxpdmVfcHJlZW1wdCh2b2lkICphcmcpCiAJCWlmICghaWd0X3dhaXRfZm9yX3NwaW5uZXIoJnNwaW5fbG8sIHJxKSkgewogCQkJR0VNX1RSQUNFKCJsbyBzcGlubmVyIGZhaWxlZCB0byBzdGFydFxuIik7CiAJCQlHRU1fVFJBQ0VfRFVNUCgpOwotCQkJaTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKKwkJCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAkJCWVyciA9IC1FSU87CiAJCQlnb3RvIGVycl9jdHhfbG87CiAJCX0KIAotCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluX2hpLCBjdHhfaGksIGVuZ2luZSwKLQkJCQkJCU1JX0FSQl9DSEVDSyk7CisJCXJxID0gc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bpbl9oaSwgY3R4X2hpLCBlbmdpbmUsCisJCQkJCSAgICBNSV9BUkJfQ0hFQ0spOwogCQlpZiAoSVNfRVJSKHJxKSkgewogCQkJaWd0X3NwaW5uZXJfZW5kKCZzcGluX2xvKTsKIAkJCWVyciA9IFBUUl9FUlIocnEpOwpAQCAtMzM3LDcgKzU3Niw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9wcmVlbXB0KHZvaWQgKmFyZykKIAkJaWYgKCFpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcigmc3Bpbl9oaSwgcnEpKSB7CiAJCQlHRU1fVFJBQ0UoImhpIHNwaW5uZXIgZmFpbGVkIHRvIHN0YXJ0XG4iKTsKIAkJCUdFTV9UUkFDRV9EVU1QKCk7Ci0JCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZCgmaTkxNS0+Z3QpOwogCQkJZXJyID0gLUVJTzsKIAkJCWdvdG8gZXJyX2N0eF9sbzsKIAkJfQpAQCAtMzYxLDcgKzYwMCw2IEBAIHN0YXRpYyBpbnQgbGl2ZV9wcmVlbXB0KHZvaWQgKmFyZykKIGVycl9zcGluX2hpOgogCWlndF9zcGlubmVyX2ZpbmkoJnNwaW5faGkpOwogZXJyX3VubG9jazoKLQlpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKTsKIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlyZXR1cm4gZXJyOwpAQCAtMzg0LDEwICs2MjIsMTAgQEAgc3RhdGljIGludCBsaXZlX2xhdGVfcHJlZW1wdCh2b2lkICphcmcpCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAotCWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluX2hpLCBpOTE1KSkKKwlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9oaSwgJmk5MTUtPmd0KSkKIAkJZ290byBlcnJfdW5sb2NrOwogCi0JaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW5fbG8sIGk5MTUpKQorCWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluX2xvLCAmaTkxNS0+Z3QpKQogCQlnb3RvIGVycl9zcGluX2hpOwogCiAJY3R4X2hpID0ga2VybmVsX2NvbnRleHQoaTkxNSk7CkBAIC0zOTgsNiArNjM2LDkgQEAgc3RhdGljIGludCBsaXZlX2xhdGVfcHJlZW1wdCh2b2lkICphcmcpCiAJaWYgKCFjdHhfbG8pCiAJCWdvdG8gZXJyX2N0eF9oaTsKIAorCS8qIE1ha2Ugc3VyZSBjdHhfbG8gc3RheXMgYmVmb3JlIGN0eF9oaSB1bnRpbCB3ZSB0cmlnZ2VyIHByZWVtcHRpb24uICovCisJY3R4X2xvLT5zY2hlZC5wcmlvcml0eSA9IEk5MTVfVVNFUl9QUklPUklUWSgxKTsKKwogCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CiAJCXN0cnVjdCBpZ3RfbGl2ZV90ZXN0IHQ7CiAJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwpAQCAtNDEwLDggKzY1MSw4IEBAIHN0YXRpYyBpbnQgbGl2ZV9sYXRlX3ByZWVtcHQodm9pZCAqYXJnKQogCQkJZ290byBlcnJfY3R4X2xvOwogCQl9CiAKLQkJcnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bpbl9sbywgY3R4X2xvLCBlbmdpbmUsCi0JCQkJCQlNSV9BUkJfQ0hFQ0spOworCQlycSA9IHNwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJnNwaW5fbG8sIGN0eF9sbywgZW5naW5lLAorCQkJCQkgICAgTUlfQVJCX0NIRUNLKTsKIAkJaWYgKElTX0VSUihycSkpIHsKIAkJCWVyciA9IFBUUl9FUlIocnEpOwogCQkJZ290byBlcnJfY3R4X2xvOwpAQCAtNDIzLDggKzY2NCw4IEBAIHN0YXRpYyBpbnQgbGl2ZV9sYXRlX3ByZWVtcHQodm9pZCAqYXJnKQogCQkJZ290byBlcnJfd2VkZ2VkOwogCQl9CiAKLQkJcnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bpbl9oaSwgY3R4X2hpLCBlbmdpbmUsCi0JCQkJCQlNSV9OT09QKTsKKwkJcnEgPSBzcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluX2hpLCBjdHhfaGksIGVuZ2luZSwKKwkJCQkJICAgIE1JX05PT1ApOwogCQlpZiAoSVNfRVJSKHJxKSkgewogCQkJaWd0X3NwaW5uZXJfZW5kKCZzcGluX2xvKTsKIAkJCWVyciA9IFBUUl9FUlIocnEpOwpAQCAtNDY1LDcgKzcwNiw2IEBAIHN0YXRpYyBpbnQgbGl2ZV9sYXRlX3ByZWVtcHQodm9pZCAqYXJnKQogZXJyX3NwaW5faGk6CiAJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbl9oaSk7CiBlcnJfdW5sb2NrOgotCWlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOwogCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCXJldHVybiBlcnI7CkBAIC00NzMsNyArNzEzLDcgQEAgc3RhdGljIGludCBsaXZlX2xhdGVfcHJlZW1wdCh2b2lkICphcmcpCiBlcnJfd2VkZ2VkOgogCWlndF9zcGlubmVyX2VuZCgmc3Bpbl9oaSk7CiAJaWd0X3NwaW5uZXJfZW5kKCZzcGluX2xvKTsKLQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAllcnIgPSAtRUlPOwogCWdvdG8gZXJyX2N0eF9sbzsKIH0KQEAgLTQ5MCw3ICs3MzAsNyBAQCBzdGF0aWMgaW50IHByZWVtcHRfY2xpZW50X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJaWYgKCFjLT5jdHgpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JaWYgKGlndF9zcGlubmVyX2luaXQoJmMtPnNwaW4sIGk5MTUpKQorCWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZjLT5zcGluLCAmaTkxNS0+Z3QpKQogCQlnb3RvIGVycl9jdHg7CiAKIAlyZXR1cm4gMDsKQEAgLTUwNiw2ICs3NDYsMTE0IEBAIHN0YXRpYyB2b2lkIHByZWVtcHRfY2xpZW50X2Zpbmkoc3RydWN0IHByZWVtcHRfY2xpZW50ICpjKQogCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGMtPmN0eCk7CiB9CiAKK3N0YXRpYyBpbnQgbGl2ZV9ub3ByZWVtcHQodm9pZCAqYXJnKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwlzdHJ1Y3QgcHJlZW1wdF9jbGllbnQgYSwgYjsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKKwlpbnQgZXJyID0gLUVOT01FTTsKKworCS8qCisJICogVmVyaWZ5IHRoYXQgd2UgY2FuIGRpc2FibGUgcHJlZW1wdGlvbiBmb3IgYW4gaW5kaXZpZHVhbCByZXF1ZXN0CisJICogdGhhdCBtYXkgYmUgYmVpbmcgb2JzZXJ2ZWQgYW5kIG5vdCB3YW50IHRvIGJlIGludGVycnVwdGVkLgorCSAqLworCisJaWYgKCFIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oaTkxNSkpCisJCXJldHVybiAwOworCisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKKworCWlmIChwcmVlbXB0X2NsaWVudF9pbml0KGk5MTUsICZhKSkKKwkJZ290byBlcnJfdW5sb2NrOworCWlmIChwcmVlbXB0X2NsaWVudF9pbml0KGk5MTUsICZiKSkKKwkJZ290byBlcnJfY2xpZW50X2E7CisJYi5jdHgtPnNjaGVkLnByaW9yaXR5ID0gSTkxNV9VU0VSX1BSSU9SSVRZKEk5MTVfUFJJT1JJVFlfTUFYKTsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxX2EsICpycV9iOworCisJCWlmICghaW50ZWxfZW5naW5lX2hhc19wcmVlbXB0aW9uKGVuZ2luZSkpCisJCQljb250aW51ZTsKKworCQllbmdpbmUtPmV4ZWNsaXN0cy5wcmVlbXB0X2hhbmcuY291bnQgPSAwOworCisJCXJxX2EgPSBzcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZhLnNwaW4sCisJCQkJCSAgICAgIGEuY3R4LCBlbmdpbmUsCisJCQkJCSAgICAgIE1JX0FSQl9DSEVDSyk7CisJCWlmIChJU19FUlIocnFfYSkpIHsKKwkJCWVyciA9IFBUUl9FUlIocnFfYSk7CisJCQlnb3RvIGVycl9jbGllbnRfYjsKKwkJfQorCisJCS8qIExvdyBwcmlvcml0eSBjbGllbnQsIGJ1dCB1bnByZWVtcHRhYmxlISAqLworCQlycV9hLT5mbGFncyB8PSBJOTE1X1JFUVVFU1RfTk9QUkVFTVBUOworCisJCWk5MTVfcmVxdWVzdF9hZGQocnFfYSk7CisJCWlmICghaWd0X3dhaXRfZm9yX3NwaW5uZXIoJmEuc3BpbiwgcnFfYSkpIHsKKwkJCXByX2VycigiRmlyc3QgY2xpZW50IGZhaWxlZCB0byBzdGFydFxuIik7CisJCQlnb3RvIGVycl93ZWRnZWQ7CisJCX0KKworCQlycV9iID0gc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmYi5zcGluLAorCQkJCQkgICAgICBiLmN0eCwgZW5naW5lLAorCQkJCQkgICAgICBNSV9BUkJfQ0hFQ0spOworCQlpZiAoSVNfRVJSKHJxX2IpKSB7CisJCQllcnIgPSBQVFJfRVJSKHJxX2IpOworCQkJZ290byBlcnJfY2xpZW50X2I7CisJCX0KKworCQlpOTE1X3JlcXVlc3RfYWRkKHJxX2IpOworCisJCS8qIEIgaXMgbXVjaCBtb3JlIGltcG9ydGFudCB0aGFuIEEhIChCdXQgQSBpcyB1bnByZWVtcHRhYmxlLikgKi8KKwkJR0VNX0JVR19PTihycV9wcmlvKHJxX2IpIDw9IHJxX3ByaW8ocnFfYSkpOworCisJCS8qIFdhaXQgbG9uZyBlbm91Z2ggZm9yIHByZWVtcHRpb24gYW5kIHRpbWVzbGljaW5nICovCisJCWlmIChpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcigmYi5zcGluLCBycV9iKSkgeworCQkJcHJfZXJyKCJTZWNvbmQgY2xpZW50IHN0YXJ0ZWQgdG9vIGVhcmx5IVxuIik7CisJCQlnb3RvIGVycl93ZWRnZWQ7CisJCX0KKworCQlpZ3Rfc3Bpbm5lcl9lbmQoJmEuc3Bpbik7CisKKwkJaWYgKCFpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcigmYi5zcGluLCBycV9iKSkgeworCQkJcHJfZXJyKCJTZWNvbmQgY2xpZW50IGZhaWxlZCB0byBzdGFydFxuIik7CisJCQlnb3RvIGVycl93ZWRnZWQ7CisJCX0KKworCQlpZ3Rfc3Bpbm5lcl9lbmQoJmIuc3Bpbik7CisKKwkJaWYgKGVuZ2luZS0+ZXhlY2xpc3RzLnByZWVtcHRfaGFuZy5jb3VudCkgeworCQkJcHJfZXJyKCJQcmVlbXB0aW9uIHJlY29yZGVkIHglZDsgc2hvdWxkIGhhdmUgYmVlbiBzdXBwcmVzc2VkIVxuIiwKKwkJCSAgICAgICBlbmdpbmUtPmV4ZWNsaXN0cy5wcmVlbXB0X2hhbmcuY291bnQpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyX3dlZGdlZDsKKwkJfQorCisJCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKKwkJCWdvdG8gZXJyX3dlZGdlZDsKKwl9CisKKwllcnIgPSAwOworZXJyX2NsaWVudF9iOgorCXByZWVtcHRfY2xpZW50X2ZpbmkoJmIpOworZXJyX2NsaWVudF9hOgorCXByZWVtcHRfY2xpZW50X2ZpbmkoJmEpOworZXJyX3VubG9jazoKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlyZXR1cm4gZXJyOworCitlcnJfd2VkZ2VkOgorCWlndF9zcGlubmVyX2VuZCgmYi5zcGluKTsKKwlpZ3Rfc3Bpbm5lcl9lbmQoJmEuc3Bpbik7CisJaW50ZWxfZ3Rfc2V0X3dlZGdlZCgmaTkxNS0+Z3QpOworCWVyciA9IC1FSU87CisJZ290byBlcnJfY2xpZW50X2I7Cit9CisKIHN0YXRpYyBpbnQgbGl2ZV9zdXBwcmVzc19zZWxmX3ByZWVtcHQodm9pZCAqYXJnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwpAQCAtNTMxLDYgKzg3OSw5IEBAIHN0YXRpYyBpbnQgbGl2ZV9zdXBwcmVzc19zZWxmX3ByZWVtcHQodm9pZCAqYXJnKQogCWlmIChVU0VTX0dVQ19TVUJNSVNTSU9OKGk5MTUpKQogCQlyZXR1cm4gMDsgLyogcHJlc3VtZSBibGFjayBibG94ICovCiAKKwlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoaTkxNSkpCisJCXJldHVybiAwOyAvKiBHVlQgZm9yY2VzIHNpbmdsZSBwb3J0ICYgcmVxdWVzdCBzdWJtaXNzaW9uICovCisKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCkBAIC01NDgsOSArODk5LDkgQEAgc3RhdGljIGludCBsaXZlX3N1cHByZXNzX3NlbGZfcHJlZW1wdCh2b2lkICphcmcpCiAKIAkJZW5naW5lLT5leGVjbGlzdHMucHJlZW1wdF9oYW5nLmNvdW50ID0gMDsKIAotCQlycV9hID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJmEuc3BpbiwKLQkJCQkJCSAgYS5jdHgsIGVuZ2luZSwKLQkJCQkJCSAgTUlfTk9PUCk7CisJCXJxX2EgPSBzcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZhLnNwaW4sCisJCQkJCSAgICAgIGEuY3R4LCBlbmdpbmUsCisJCQkJCSAgICAgIE1JX05PT1ApOwogCQlpZiAoSVNfRVJSKHJxX2EpKSB7CiAJCQllcnIgPSBQVFJfRVJSKHJxX2EpOwogCQkJZ290byBlcnJfY2xpZW50X2I7CkBAIC01NjIsMTAgKzkxMywxMiBAQCBzdGF0aWMgaW50IGxpdmVfc3VwcHJlc3Nfc2VsZl9wcmVlbXB0KHZvaWQgKmFyZykKIAkJCWdvdG8gZXJyX3dlZGdlZDsKIAkJfQogCisJCS8qIEtlZXAgcG9zdHBvbmluZyB0aGUgdGltZXIgdG8gYXZvaWQgcHJlbWF0dXJlIHNsaWNpbmcgKi8KKwkJbW9kX3RpbWVyKCZlbmdpbmUtPmV4ZWNsaXN0cy50aW1lciwgamlmZmllcyArIEhaKTsKIAkJZm9yIChkZXB0aCA9IDA7IGRlcHRoIDwgODsgZGVwdGgrKykgewotCQkJcnFfYiA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZiLnNwaW4sCi0JCQkJCQkJICBiLmN0eCwgZW5naW5lLAotCQkJCQkJCSAgTUlfTk9PUCk7CisJCQlycV9iID0gc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmYi5zcGluLAorCQkJCQkJICAgICAgYi5jdHgsIGVuZ2luZSwKKwkJCQkJCSAgICAgIE1JX05PT1ApOwogCQkJaWYgKElTX0VSUihycV9iKSkgewogCQkJCWVyciA9IFBUUl9FUlIocnFfYik7CiAJCQkJZ290byBlcnJfY2xpZW50X2I7CkBAIC01ODcsNyArOTQwLDggQEAgc3RhdGljIGludCBsaXZlX3N1cHByZXNzX3NlbGZfcHJlZW1wdCh2b2lkICphcmcpCiAJCWlndF9zcGlubmVyX2VuZCgmYS5zcGluKTsKIAogCQlpZiAoZW5naW5lLT5leGVjbGlzdHMucHJlZW1wdF9oYW5nLmNvdW50KSB7Ci0JCQlwcl9lcnIoIlByZWVtcHRpb24gcmVjb3JkZWQgeCVkLCBkZXB0aCAlZDsgc2hvdWxkIGhhdmUgYmVlbiBzdXBwcmVzc2VkIVxuIiwKKwkJCXByX2VycigiUHJlZW1wdGlvbiBvbiAlcyByZWNvcmRlZCB4JWQsIGRlcHRoICVkOyBzaG91bGQgaGF2ZSBiZWVuIHN1cHByZXNzZWQhXG4iLAorCQkJICAgICAgIGVuZ2luZS0+bmFtZSwKIAkJCSAgICAgICBlbmdpbmUtPmV4ZWNsaXN0cy5wcmVlbXB0X2hhbmcuY291bnQsCiAJCQkgICAgICAgZGVwdGgpOwogCQkJZXJyID0gLUVJTlZBTDsKQEAgLTYwNCw4ICs5NTgsNiBAQCBzdGF0aWMgaW50IGxpdmVfc3VwcHJlc3Nfc2VsZl9wcmVlbXB0KHZvaWQgKmFyZykKIGVycl9jbGllbnRfYToKIAlwcmVlbXB0X2NsaWVudF9maW5pKCZhKTsKIGVycl91bmxvY2s6Ci0JaWYgKGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpKQotCQllcnIgPSAtRUlPOwogCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCXJldHVybiBlcnI7CkBAIC02MTMsNyArOTY1LDcgQEAgc3RhdGljIGludCBsaXZlX3N1cHByZXNzX3NlbGZfcHJlZW1wdCh2b2lkICphcmcpCiBlcnJfd2VkZ2VkOgogCWlndF9zcGlubmVyX2VuZCgmYi5zcGluKTsKIAlpZ3Rfc3Bpbm5lcl9lbmQoJmEuc3Bpbik7Ci0JaTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKKwlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZpOTE1LT5ndCk7CiAJZXJyID0gLUVJTzsKIAlnb3RvIGVycl9jbGllbnRfYjsKIH0KQEAgLTY0Niw2ICs5OTgsMTAgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKmR1bW15X3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWk5MTVfc3dfZmVuY2VfaW5pdCgmcnEtPnN1Ym1pdCwgZHVtbXlfbm90aWZ5KTsKIAlzZXRfYml0KEk5MTVfRkVOQ0VfRkxBR19BQ1RJVkUsICZycS0+ZmVuY2UuZmxhZ3MpOwogCisJc3Bpbl9sb2NrX2luaXQoJnJxLT5sb2NrKTsKKwlycS0+ZmVuY2UubG9jayA9ICZycS0+bG9jazsKKwlJTklUX0xJU1RfSEVBRCgmcnEtPmZlbmNlLmNiX2xpc3QpOworCiAJcmV0dXJuIHJxOwogfQogCkBAIC03MTQsOSArMTA3MCw5IEBAIHN0YXRpYyBpbnQgbGl2ZV9zdXBwcmVzc193YWl0X3ByZWVtcHQodm9pZCAqYXJnKQogCQkJCWdvdG8gZXJyX2NsaWVudF8zOwogCiAJCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjbGllbnQpOyBpKyspIHsKLQkJCQlycVtpXSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZjbGllbnRbaV0uc3BpbiwKLQkJCQkJCQkJICAgY2xpZW50W2ldLmN0eCwgZW5naW5lLAotCQkJCQkJCQkgICBNSV9OT09QKTsKKwkJCQlycVtpXSA9IHNwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJmNsaWVudFtpXS5zcGluLAorCQkJCQkJCSAgICAgICBjbGllbnRbaV0uY3R4LCBlbmdpbmUsCisJCQkJCQkJICAgICAgIE1JX05PT1ApOwogCQkJCWlmIChJU19FUlIocnFbaV0pKSB7CiAJCQkJCWVyciA9IFBUUl9FUlIocnFbaV0pOwogCQkJCQlnb3RvIGVycl93ZWRnZWQ7CkBAIC03NzMsOCArMTEyOSw2IEBAIHN0YXRpYyBpbnQgbGl2ZV9zdXBwcmVzc193YWl0X3ByZWVtcHQodm9pZCAqYXJnKQogZXJyX2NsaWVudF8wOgogCXByZWVtcHRfY2xpZW50X2ZpbmkoJmNsaWVudFswXSk7CiBlcnJfdW5sb2NrOgotCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKLQkJZXJyID0gLUVJTzsKIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlyZXR1cm4gZXJyOwpAQCAtNzgyLDcgKzExMzYsNyBAQCBzdGF0aWMgaW50IGxpdmVfc3VwcHJlc3Nfd2FpdF9wcmVlbXB0KHZvaWQgKmFyZykKIGVycl93ZWRnZWQ6CiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY2xpZW50KTsgaSsrKQogCQlpZ3Rfc3Bpbm5lcl9lbmQoJmNsaWVudFtpXS5zcGluKTsKLQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAllcnIgPSAtRUlPOwogCWdvdG8gZXJyX2NsaWVudF8zOwogfQpAQCAtODI1LDkgKzExNzksOSBAQCBzdGF0aWMgaW50IGxpdmVfY2hhaW5fcHJlZW1wdCh2b2lkICphcmcpCiAJCWlmICghaW50ZWxfZW5naW5lX2hhc19wcmVlbXB0aW9uKGVuZ2luZSkpCiAJCQljb250aW51ZTsKIAotCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZsby5zcGluLAotCQkJCQkJbG8uY3R4LCBlbmdpbmUsCi0JCQkJCQlNSV9BUkJfQ0hFQ0spOworCQlycSA9IHNwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJmxvLnNwaW4sCisJCQkJCSAgICBsby5jdHgsIGVuZ2luZSwKKwkJCQkJICAgIE1JX0FSQl9DSEVDSyk7CiAJCWlmIChJU19FUlIocnEpKQogCQkJZ290byBlcnJfd2VkZ2VkOwogCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKQEAgLTg1MSwxOCArMTIwNSwxOCBAQCBzdGF0aWMgaW50IGxpdmVfY2hhaW5fcHJlZW1wdCh2b2lkICphcmcpCiAJCX0KIAogCQlmb3JfZWFjaF9wcmltZV9udW1iZXJfZnJvbShjb3VudCwgMSwgcmluZ19zaXplKSB7Ci0JCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZoaS5zcGluLAotCQkJCQkJCWhpLmN0eCwgZW5naW5lLAotCQkJCQkJCU1JX0FSQl9DSEVDSyk7CisJCQlycSA9IHNwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJmhpLnNwaW4sCisJCQkJCQkgICAgaGkuY3R4LCBlbmdpbmUsCisJCQkJCQkgICAgTUlfQVJCX0NIRUNLKTsKIAkJCWlmIChJU19FUlIocnEpKQogCQkJCWdvdG8gZXJyX3dlZGdlZDsKIAkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwogCQkJaWYgKCFpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcigmaGkuc3BpbiwgcnEpKQogCQkJCWdvdG8gZXJyX3dlZGdlZDsKIAotCQkJcnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmbG8uc3BpbiwKLQkJCQkJCQlsby5jdHgsIGVuZ2luZSwKLQkJCQkJCQlNSV9BUkJfQ0hFQ0spOworCQkJcnEgPSBzcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZsby5zcGluLAorCQkJCQkJICAgIGxvLmN0eCwgZW5naW5lLAorCQkJCQkJICAgIE1JX0FSQl9DSEVDSyk7CiAJCQlpZiAoSVNfRVJSKHJxKSkKIAkJCQlnb3RvIGVycl93ZWRnZWQ7CiAJCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKQEAgLTkyMSw4ICsxMjc1LDYgQEAgc3RhdGljIGludCBsaXZlX2NoYWluX3ByZWVtcHQodm9pZCAqYXJnKQogZXJyX2NsaWVudF9oaToKIAlwcmVlbXB0X2NsaWVudF9maW5pKCZoaSk7CiBlcnJfdW5sb2NrOgotCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKLQkJZXJyID0gLUVJTzsKIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlyZXR1cm4gZXJyOwpAQCAtOTMwLDcgKzEyODIsNyBAQCBzdGF0aWMgaW50IGxpdmVfY2hhaW5fcHJlZW1wdCh2b2lkICphcmcpCiBlcnJfd2VkZ2VkOgogCWlndF9zcGlubmVyX2VuZCgmaGkuc3Bpbik7CiAJaWd0X3NwaW5uZXJfZW5kKCZsby5zcGluKTsKLQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAllcnIgPSAtRUlPOwogCWdvdG8gZXJyX2NsaWVudF9sbzsKIH0KQEAgLTk1NCwxMCArMTMwNiwxMCBAQCBzdGF0aWMgaW50IGxpdmVfcHJlZW1wdF9oYW5nKHZvaWQgKmFyZykKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCi0JaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW5faGksIGk5MTUpKQorCWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluX2hpLCAmaTkxNS0+Z3QpKQogCQlnb3RvIGVycl91bmxvY2s7CiAKLQlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9sbywgaTkxNSkpCisJaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW5fbG8sICZpOTE1LT5ndCkpCiAJCWdvdG8gZXJyX3NwaW5faGk7CiAKIAljdHhfaGkgPSBrZXJuZWxfY29udGV4dChpOTE1KTsKQEAgLTk3OCw4ICsxMzMwLDggQEAgc3RhdGljIGludCBsaXZlX3ByZWVtcHRfaGFuZyh2b2lkICphcmcpCiAJCWlmICghaW50ZWxfZW5naW5lX2hhc19wcmVlbXB0aW9uKGVuZ2luZSkpCiAJCQljb250aW51ZTsKIAotCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluX2xvLCBjdHhfbG8sIGVuZ2luZSwKLQkJCQkJCU1JX0FSQl9DSEVDSyk7CisJCXJxID0gc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bpbl9sbywgY3R4X2xvLCBlbmdpbmUsCisJCQkJCSAgICBNSV9BUkJfQ0hFQ0spOwogCQlpZiAoSVNfRVJSKHJxKSkgewogCQkJZXJyID0gUFRSX0VSUihycSk7CiAJCQlnb3RvIGVycl9jdHhfbG87CkBAIC05ODksMTMgKzEzNDEsMTMgQEAgc3RhdGljIGludCBsaXZlX3ByZWVtcHRfaGFuZyh2b2lkICphcmcpCiAJCWlmICghaWd0X3dhaXRfZm9yX3NwaW5uZXIoJnNwaW5fbG8sIHJxKSkgewogCQkJR0VNX1RSQUNFKCJsbyBzcGlubmVyIGZhaWxlZCB0byBzdGFydFxuIik7CiAJCQlHRU1fVFJBQ0VfRFVNUCgpOwotCQkJaTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKKwkJCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAkJCWVyciA9IC1FSU87CiAJCQlnb3RvIGVycl9jdHhfbG87CiAJCX0KIAotCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluX2hpLCBjdHhfaGksIGVuZ2luZSwKLQkJCQkJCU1JX0FSQl9DSEVDSyk7CisJCXJxID0gc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bpbl9oaSwgY3R4X2hpLCBlbmdpbmUsCisJCQkJCSAgICBNSV9BUkJfQ0hFQ0spOwogCQlpZiAoSVNfRVJSKHJxKSkgewogCQkJaWd0X3NwaW5uZXJfZW5kKCZzcGluX2xvKTsKIAkJCWVyciA9IFBUUl9FUlIocnEpOwpAQCAtMTAxMSwyMSArMTM2MywyMSBAQCBzdGF0aWMgaW50IGxpdmVfcHJlZW1wdF9oYW5nKHZvaWQgKmFyZykKIAkJCQkJCSBIWiAvIDEwKSkgewogCQkJcHJfZXJyKCJQcmVlbXB0aW9uIGRpZCBub3Qgb2NjdXIgd2l0aGluIHRpbWVvdXQhIik7CiAJCQlHRU1fVFJBQ0VfRFVNUCgpOwotCQkJaTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKKwkJCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAkJCWVyciA9IC1FSU87CiAJCQlnb3RvIGVycl9jdHhfbG87CiAJCX0KIAotCQlzZXRfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOwotCQlpOTE1X3Jlc2V0X2VuZ2luZShlbmdpbmUsIE5VTEwpOwotCQljbGVhcl9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBpZCwgJmk5MTUtPmdwdV9lcnJvci5mbGFncyk7CisJCXNldF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBpZCwgJmk5MTUtPmd0LnJlc2V0LmZsYWdzKTsKKwkJaW50ZWxfZW5naW5lX3Jlc2V0KGVuZ2luZSwgTlVMTCk7CisJCWNsZWFyX2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmaTkxNS0+Z3QucmVzZXQuZmxhZ3MpOwogCiAJCWVuZ2luZS0+ZXhlY2xpc3RzLnByZWVtcHRfaGFuZy5pbmplY3RfaGFuZyA9IGZhbHNlOwogCiAJCWlmICghaWd0X3dhaXRfZm9yX3NwaW5uZXIoJnNwaW5faGksIHJxKSkgewogCQkJR0VNX1RSQUNFKCJoaSBzcGlubmVyIGZhaWxlZCB0byBzdGFydFxuIik7CiAJCQlHRU1fVFJBQ0VfRFVNUCgpOwotCQkJaTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKKwkJCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAkJCWVyciA9IC1FSU87CiAJCQlnb3RvIGVycl9jdHhfbG87CiAJCX0KQEAgLTEwNDgsNyArMTQwMCw2IEBAIHN0YXRpYyBpbnQgbGl2ZV9wcmVlbXB0X2hhbmcodm9pZCAqYXJnKQogZXJyX3NwaW5faGk6CiAJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbl9oaSk7CiBlcnJfdW5sb2NrOgotCWlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOwogCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCXJldHVybiBlcnI7CkBAIC0xMTA4LDExICsxNDU5LDEzIEBAIHN0YXRpYyBpbnQgc21va2Vfc3VibWl0KHN0cnVjdCBwcmVlbXB0X3Ntb2tlICpzbW9rZSwKIAogCWlmICh2bWEpIHsKIAkJaTkxNV92bWFfbG9jayh2bWEpOwotCQllcnIgPSBycS0+ZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHJxLAotCQkJCQkJdm1hLT5ub2RlLnN0YXJ0LAotCQkJCQkJUEFHRV9TSVpFLCAwKTsKKwkJZXJyID0gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgdm1hLT5vYmosIGZhbHNlKTsKIAkJaWYgKCFlcnIpCiAJCQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCAwKTsKKwkJaWYgKCFlcnIpCisJCQllcnIgPSBycS0+ZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHJxLAorCQkJCQkJCXZtYS0+bm9kZS5zdGFydCwKKwkJCQkJCQlQQUdFX1NJWkUsIDApOwogCQlpOTE1X3ZtYV91bmxvY2sodm1hKTsKIAl9CiAKQEAgLTE0MDYsNyArMTc1OSw3IEBAIHN0YXRpYyBpbnQgbm9wX3ZpcnR1YWxfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJCQkgIHJlcXVlc3RbbmNdLT5mZW5jZS5jb250ZXh0LAogCQkJCQkgIHJlcXVlc3RbbmNdLT5mZW5jZS5zZXFubyk7CiAJCQkJR0VNX1RSQUNFX0RVTVAoKTsKLQkJCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCQkJCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAkJCQlicmVhazsKIAkJCX0KIAkJfQpAQCAtMTQ0NCw2ICsxNzk3LDcgQEAgc3RhdGljIGludCBsaXZlX3ZpcnR1YWxfZW5naW5lKHZvaWQgKmFyZykKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpzaWJsaW5nc1tNQVhfRU5HSU5FX0lOU1RBTkNFICsgMV07CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmaTkxNS0+Z3Q7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJdW5zaWduZWQgaW50IGNsYXNzLCBpbnN0OwogCWludCBlcnIgPSAtRU5PREVWOwpAQCAtMTQ2NywxMCArMTgyMSwxMCBAQCBzdGF0aWMgaW50IGxpdmVfdmlydHVhbF9lbmdpbmUodm9pZCAqYXJnKQogCiAJCW5zaWJsaW5nID0gMDsKIAkJZm9yIChpbnN0ID0gMDsgaW5zdCA8PSBNQVhfRU5HSU5FX0lOU1RBTkNFOyBpbnN0KyspIHsKLQkJCWlmICghaTkxNS0+ZW5naW5lX2NsYXNzW2NsYXNzXVtpbnN0XSkKKwkJCWlmICghZ3QtPmVuZ2luZV9jbGFzc1tjbGFzc11baW5zdF0pCiAJCQkJY29udGludWU7CiAKLQkJCXNpYmxpbmdzW25zaWJsaW5nKytdID0gaTkxNS0+ZW5naW5lX2NsYXNzW2NsYXNzXVtpbnN0XTsKKwkJCXNpYmxpbmdzW25zaWJsaW5nKytdID0gZ3QtPmVuZ2luZV9jbGFzc1tjbGFzc11baW5zdF07CiAJCX0KIAkJaWYgKG5zaWJsaW5nIDwgMikKIAkJCWNvbnRpbnVlOwpAQCAtMTU1Myw3ICsxOTA3LDcgQEAgc3RhdGljIGludCBtYXNrX3ZpcnR1YWxfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJCSAgcmVxdWVzdFtuXS0+ZmVuY2UuY29udGV4dCwKIAkJCQkgIHJlcXVlc3Rbbl0tPmZlbmNlLnNlcW5vKTsKIAkJCUdFTV9UUkFDRV9EVU1QKCk7Ci0JCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZCgmaTkxNS0+Z3QpOwogCQkJZXJyID0gLUVJTzsKIAkJCWdvdG8gb3V0OwogCQl9CkBAIC0xNTkxLDYgKzE5NDUsNyBAQCBzdGF0aWMgaW50IGxpdmVfdmlydHVhbF9tYXNrKHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpzaWJsaW5nc1tNQVhfRU5HSU5FX0lOU1RBTkNFICsgMV07CisJc3RydWN0IGludGVsX2d0ICpndCA9ICZpOTE1LT5ndDsKIAl1bnNpZ25lZCBpbnQgY2xhc3MsIGluc3Q7CiAJaW50IGVyciA9IDA7CiAKQEAgLTE2MDQsMTAgKzE5NTksMTAgQEAgc3RhdGljIGludCBsaXZlX3ZpcnR1YWxfbWFzayh2b2lkICphcmcpCiAKIAkJbnNpYmxpbmcgPSAwOwogCQlmb3IgKGluc3QgPSAwOyBpbnN0IDw9IE1BWF9FTkdJTkVfSU5TVEFOQ0U7IGluc3QrKykgewotCQkJaWYgKCFpOTE1LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RdKQorCQkJaWYgKCFndC0+ZW5naW5lX2NsYXNzW2NsYXNzXVtpbnN0XSkKIAkJCQlicmVhazsKIAotCQkJc2libGluZ3NbbnNpYmxpbmcrK10gPSBpOTE1LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RdOworCQkJc2libGluZ3NbbnNpYmxpbmcrK10gPSBndC0+ZW5naW5lX2NsYXNzW2NsYXNzXVtpbnN0XTsKIAkJfQogCQlpZiAobnNpYmxpbmcgPCAyKQogCQkJY29udGludWU7CkBAIC0xNzY4LDYgKzIxMjMsNyBAQCBzdGF0aWMgaW50IGxpdmVfdmlydHVhbF9ib25kKHZvaWQgKmFyZykKIAl9OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpYmxpbmdzW01BWF9FTkdJTkVfSU5TVEFOQ0UgKyAxXTsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0OwogCXVuc2lnbmVkIGludCBjbGFzcywgaW5zdDsKIAlpbnQgZXJyID0gMDsKIApAQCAtMTc4MiwxMSArMjEzOCwxMSBAQCBzdGF0aWMgaW50IGxpdmVfdmlydHVhbF9ib25kKHZvaWQgKmFyZykKIAogCQluc2libGluZyA9IDA7CiAJCWZvciAoaW5zdCA9IDA7IGluc3QgPD0gTUFYX0VOR0lORV9JTlNUQU5DRTsgaW5zdCsrKSB7Ci0JCQlpZiAoIWk5MTUtPmVuZ2luZV9jbGFzc1tjbGFzc11baW5zdF0pCisJCQlpZiAoIWd0LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RdKQogCQkJCWJyZWFrOwogCiAJCQlHRU1fQlVHX09OKG5zaWJsaW5nID09IEFSUkFZX1NJWkUoc2libGluZ3MpKTsKLQkJCXNpYmxpbmdzW25zaWJsaW5nKytdID0gaTkxNS0+ZW5naW5lX2NsYXNzW2NsYXNzXVtpbnN0XTsKKwkJCXNpYmxpbmdzW25zaWJsaW5nKytdID0gZ3QtPmVuZ2luZV9jbGFzc1tjbGFzc11baW5zdF07CiAJCX0KIAkJaWYgKG5zaWJsaW5nIDwgMikKIAkJCWNvbnRpbnVlOwpAQCAtMTgxMiw5ICsyMTY4LDExIEBAIGludCBpbnRlbF9leGVjbGlzdHNfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKIAkJU1VCVEVTVChsaXZlX3Nhbml0eWNoZWNrKSwKKwkJU1VCVEVTVChsaXZlX3RpbWVzbGljZV9wcmVlbXB0KSwKIAkJU1VCVEVTVChsaXZlX2J1c3l3YWl0X3ByZWVtcHQpLAogCQlTVUJURVNUKGxpdmVfcHJlZW1wdCksCiAJCVNVQlRFU1QobGl2ZV9sYXRlX3ByZWVtcHQpLAorCQlTVUJURVNUKGxpdmVfbm9wcmVlbXB0KSwKIAkJU1VCVEVTVChsaXZlX3N1cHByZXNzX3NlbGZfcHJlZW1wdCksCiAJCVNVQlRFU1QobGl2ZV9zdXBwcmVzc193YWl0X3ByZWVtcHQpLAogCQlTVUJURVNUKGxpdmVfY2hhaW5fcHJlZW1wdCksCkBAIC0xODI4LDggKzIxODYsOCBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWlmICghSEFTX0VYRUNMSVNUUyhpOTE1KSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1KSkKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKCZpOTE1LT5ndCkpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIGk5MTUpOworCXJldHVybiBpOTE1X2xpdmVfc3VidGVzdHModGVzdHMsIGk5MTUpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3Jlc2V0LmMKaW5kZXggYjVjNTkwYy4uMDBhNGY2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jCkBAIC05LDI2ICs5LDI5IEBACiAKIHN0YXRpYyBpbnQgaWd0X2dsb2JhbF9yZXNldCh2b2lkICphcmcpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGFyZzsKIAl1bnNpZ25lZCBpbnQgcmVzZXRfY291bnQ7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJaW50IGVyciA9IDA7CiAKIAkvKiBDaGVjayB0aGF0IHdlIGNhbiBpc3N1ZSBhIGdsb2JhbCBHUFUgcmVzZXQgKi8KIAotCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soZ3QpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZ3QtPmk5MTUtPnJ1bnRpbWVfcG0pOwogCi0JcmVzZXRfY291bnQgPSBpOTE1X3Jlc2V0X2NvdW50KCZpOTE1LT5ncHVfZXJyb3IpOworCXJlc2V0X2NvdW50ID0gaTkxNV9yZXNldF9jb3VudCgmZ3QtPmk5MTUtPmdwdV9lcnJvcik7CiAKLQlpOTE1X3Jlc2V0KGk5MTUsIEFMTF9FTkdJTkVTLCBOVUxMKTsKKwlpbnRlbF9ndF9yZXNldChndCwgQUxMX0VOR0lORVMsIE5VTEwpOwogCi0JaWYgKGk5MTVfcmVzZXRfY291bnQoJmk5MTUtPmdwdV9lcnJvcikgPT0gcmVzZXRfY291bnQpIHsKKwlpZiAoaTkxNV9yZXNldF9jb3VudCgmZ3QtPmk5MTUtPmdwdV9lcnJvcikgPT0gcmVzZXRfY291bnQpIHsKIAkJcHJfZXJyKCJObyBHUFUgcmVzZXQgcmVjb3JkZWQhXG4iKTsKIAkJZXJyID0gLUVJTlZBTDsKIAl9CiAKLQlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhpOTE1KTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZ3QtPmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOworCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGd0KTsKIAotCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChpOTE1KSkKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSkKIAkJZXJyID0gLUVJTzsKIAogCXJldHVybiBlcnI7CkBAIC0zNiw2NCArMzksMTIzIEBAIHN0YXRpYyBpbnQgaWd0X2dsb2JhbF9yZXNldCh2b2lkICphcmcpCiAKIHN0YXRpYyBpbnQgaWd0X3dlZGdlZF9yZXNldCh2b2lkICphcmcpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGFyZzsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAogCS8qIENoZWNrIHRoYXQgd2UgY2FuIHJlY292ZXIgYSB3ZWRnZWQgZGV2aWNlIHdpdGggYSBHUFUgcmVzZXQgKi8KIAotCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOworCWlndF9nbG9iYWxfcmVzZXRfbG9jayhndCk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZndC0+aTkxNS0+cnVudGltZV9wbSk7CiAKLQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCWludGVsX2d0X3NldF93ZWRnZWQoZ3QpOwogCi0JR0VNX0JVR19PTighaTkxNV9yZXNldF9mYWlsZWQoaTkxNSkpOwotCWk5MTVfcmVzZXQoaTkxNSwgQUxMX0VOR0lORVMsIE5VTEwpOworCUdFTV9CVUdfT04oIWludGVsX2d0X2lzX3dlZGdlZChndCkpOworCWludGVsX2d0X3Jlc2V0KGd0LCBBTExfRU5HSU5FUywgTlVMTCk7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7Ci0JaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmd0LT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhndCk7CiAKLQlyZXR1cm4gaTkxNV9yZXNldF9mYWlsZWQoaTkxNSkgPyAtRUlPIDogMDsKKwlyZXR1cm4gaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSA/IC1FSU8gOiAwOwogfQogCiBzdGF0aWMgaW50IGlndF9hdG9taWNfcmVzZXQodm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBhcmc7CiAJY29uc3QgdHlwZW9mKCppZ3RfYXRvbWljX3BoYXNlcykgKnA7CiAJaW50IGVyciA9IDA7CiAKIAkvKiBDaGVjayB0aGF0IHRoZSByZXNldHMgYXJlIHVzYWJsZSBmcm9tIGF0b21pYyBjb250ZXh0ICovCiAKLQlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7Ci0JbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaW50ZWxfZ3RfcG1fZ2V0KGd0KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soZ3QpOwogCiAJLyogRmx1c2ggYW55IHJlcXVlc3RzIGJlZm9yZSB3ZSBnZXQgc3RhcnRlZCBhbmQgY2hlY2sgYmFzaWNzICovCi0JaWYgKCFpZ3RfZm9yY2VfcmVzZXQoaTkxNSkpCisJaWYgKCFpZ3RfZm9yY2VfcmVzZXQoZ3QpKQogCQlnb3RvIHVubG9jazsKIAogCWZvciAocCA9IGlndF9hdG9taWNfcGhhc2VzOyBwLT5uYW1lOyBwKyspIHsKIAkJaW50ZWxfZW5naW5lX21hc2tfdCBhd2FrZTsKIAotCQlHRU1fVFJBQ0UoImludGVsX2dwdV9yZXNldCB1bmRlciAlc1xuIiwgcC0+bmFtZSk7CisJCUdFTV9UUkFDRSgiX19pbnRlbF9ndF9yZXNldCB1bmRlciAlc1xuIiwgcC0+bmFtZSk7CiAKLQkJYXdha2UgPSByZXNldF9wcmVwYXJlKGk5MTUpOworCQlhd2FrZSA9IHJlc2V0X3ByZXBhcmUoZ3QpOwogCQlwLT5jcml0aWNhbF9zZWN0aW9uX2JlZ2luKCk7Ci0JCXJlc2V0X3ByZXBhcmUoaTkxNSk7Ci0JCWVyciA9IGludGVsX2dwdV9yZXNldChpOTE1LCBBTExfRU5HSU5FUyk7CisKKwkJZXJyID0gX19pbnRlbF9ndF9yZXNldChndCwgQUxMX0VOR0lORVMpOworCiAJCXAtPmNyaXRpY2FsX3NlY3Rpb25fZW5kKCk7Ci0JCXJlc2V0X2ZpbmlzaChpOTE1LCBhd2FrZSk7CisJCXJlc2V0X2ZpbmlzaChndCwgYXdha2UpOwogCiAJCWlmIChlcnIpIHsKLQkJCXByX2VycigiaW50ZWxfZ3B1X3Jlc2V0IGZhaWxlZCB1bmRlciAlc1xuIiwgcC0+bmFtZSk7CisJCQlwcl9lcnIoIl9faW50ZWxfZ3RfcmVzZXQgZmFpbGVkIHVuZGVyICVzXG4iLCBwLT5uYW1lKTsKIAkJCWJyZWFrOwogCQl9CiAJfQogCiAJLyogQXMgd2UgcG9rZSBhcm91bmQgdGhlIGd1dHMsIGRvIGEgZnVsbCByZXNldCBiZWZvcmUgY29udGludWluZy4gKi8KLQlpZ3RfZm9yY2VfcmVzZXQoaTkxNSk7CisJaWd0X2ZvcmNlX3Jlc2V0KGd0KTsKIAogdW5sb2NrOgotCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soZ3QpOworCWludGVsX2d0X3BtX3B1dChndCk7CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGlndF9hdG9taWNfZW5naW5lX3Jlc2V0KHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOworCWNvbnN0IHR5cGVvZigqaWd0X2F0b21pY19waGFzZXMpICpwOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlpbnQgZXJyID0gMDsKKworCS8qIENoZWNrIHRoYXQgdGhlIHJlc2V0cyBhcmUgdXNhYmxlIGZyb20gYXRvbWljIGNvbnRleHQgKi8KKworCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShndC0+aTkxNSkpCisJCXJldHVybiAwOworCisJaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oZ3QtPmk5MTUpKQorCQlyZXR1cm4gMDsKKworCWludGVsX2d0X3BtX2dldChndCk7CisJaWd0X2dsb2JhbF9yZXNldF9sb2NrKGd0KTsKKworCS8qIEZsdXNoIGFueSByZXF1ZXN0cyBiZWZvcmUgd2UgZ2V0IHN0YXJ0ZWQgYW5kIGNoZWNrIGJhc2ljcyAqLworCWlmICghaWd0X2ZvcmNlX3Jlc2V0KGd0KSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJCXRhc2tsZXRfZGlzYWJsZV9ub3N5bmMoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOworCQlpbnRlbF9lbmdpbmVfcG1fZ2V0KGVuZ2luZSk7CisKKwkJZm9yIChwID0gaWd0X2F0b21pY19waGFzZXM7IHAtPm5hbWU7IHArKykgeworCQkJR0VNX1RSQUNFKCJpbnRlbF9lbmdpbmVfcmVzZXQoJXMpIHVuZGVyICVzXG4iLAorCQkJCSAgZW5naW5lLT5uYW1lLCBwLT5uYW1lKTsKKworCQkJcC0+Y3JpdGljYWxfc2VjdGlvbl9iZWdpbigpOworCQkJZXJyID0gaW50ZWxfZW5naW5lX3Jlc2V0KGVuZ2luZSwgTlVMTCk7CisJCQlwLT5jcml0aWNhbF9zZWN0aW9uX2VuZCgpOworCisJCQlpZiAoZXJyKSB7CisJCQkJcHJfZXJyKCJpbnRlbF9lbmdpbmVfcmVzZXQoJXMpIGZhaWxlZCB1bmRlciAlc1xuIiwKKwkJCQkgICAgICAgZW5naW5lLT5uYW1lLCBwLT5uYW1lKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKKwkJdGFza2xldF9lbmFibGUoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisJfQorCisJLyogQXMgd2UgcG9rZSBhcm91bmQgdGhlIGd1dHMsIGRvIGEgZnVsbCByZXNldCBiZWZvcmUgY29udGludWluZy4gKi8KKwlpZ3RfZm9yY2VfcmVzZXQoZ3QpOworCitvdXRfdW5sb2NrOgorCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGd0KTsKKwlpbnRlbF9ndF9wbV9wdXQoZ3QpOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTEwNCwxOCArMTY2LDE1IEBAIGludCBpbnRlbF9yZXNldF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJU1VCVEVTVChpZ3RfZ2xvYmFsX3Jlc2V0KSwgLyogYXR0ZW1wdCB0byByZWNvdmVyIEdQVSBmaXJzdCAqLwogCQlTVUJURVNUKGlndF93ZWRnZWRfcmVzZXQpLAogCQlTVUJURVNUKGlndF9hdG9taWNfcmVzZXQpLAorCQlTVUJURVNUKGlndF9hdG9taWNfZW5naW5lX3Jlc2V0KSwKIAl9OwotCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwotCWludCBlcnIgPSAwOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmaTkxNS0+Z3Q7CiAKLQlpZiAoIWludGVsX2hhc19ncHVfcmVzZXQoaTkxNSkpCisJaWYgKCFpbnRlbF9oYXNfZ3B1X3Jlc2V0KGd0LT5pOTE1KSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1KSkKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSkKIAkJcmV0dXJuIC1FSU87IC8qIHdlJ3JlIGxvbmcgcGFzdCBob3BlIG9mIGEgc3VjY2Vzc2Z1bCByZXNldCAqLwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQotCQllcnIgPSBpOTE1X3N1YnRlc3RzKHRlc3RzLCBpOTE1KTsKLQotCXJldHVybiBlcnI7CisJcmV0dXJuIGludGVsX2d0X2xpdmVfc3VidGVzdHModGVzdHMsIGd0KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyMTQ4MTQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5jCkBAIC0wLDAgKzEsODQ2IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE3LTIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgvcHJpbWVfbnVtYmVycy5oPgorCisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3BtLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3QuaCIKKworI2luY2x1ZGUgIi4uL3NlbGZ0ZXN0cy9pOTE1X3JhbmRvbS5oIgorI2luY2x1ZGUgIi4uL2k5MTVfc2VsZnRlc3QuaCIKKworI2luY2x1ZGUgIi4uL3NlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5oIgorI2luY2x1ZGUgIi4uL3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuaCIKKyNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja190aW1lbGluZS5oIgorCitzdGF0aWMgc3RydWN0IHBhZ2UgKmh3c3BfcGFnZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB0bC0+aHdzcF9nZ3R0LT5vYmo7CisKKwlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3RfaGFzX3Bpbm5lZF9wYWdlcyhvYmopKTsKKwlyZXR1cm4gc2dfcGFnZShvYmotPm1tLnBhZ2VzLT5zZ2wpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBod3NwX2NhY2hlbGluZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsKQoreworCXVuc2lnbmVkIGxvbmcgYWRkcmVzcyA9ICh1bnNpZ25lZCBsb25nKXBhZ2VfYWRkcmVzcyhod3NwX3BhZ2UodGwpKTsKKworCXJldHVybiAoYWRkcmVzcyArIHRsLT5od3NwX29mZnNldCkgLyBDQUNIRUxJTkVfQllURVM7Cit9CisKKyNkZWZpbmUgQ0FDSEVMSU5FU19QRVJfUEFHRSAoUEFHRV9TSVpFIC8gQ0FDSEVMSU5FX0JZVEVTKQorCitzdHJ1Y3QgbW9ja19od3NwX2ZyZWVsaXN0IHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKKwlzdHJ1Y3QgcmFkaXhfdHJlZV9yb290IGNhY2hlbGluZXM7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICoqaGlzdG9yeTsKKwl1bnNpZ25lZCBsb25nIGNvdW50LCBtYXg7CisJc3RydWN0IHJuZF9zdGF0ZSBwcm5nOworfTsKKworZW51bSB7CisJU0hVRkZMRSA9IEJJVCgwKSwKK307CisKK3N0YXRpYyB2b2lkIF9fbW9ja19od3NwX3JlY29yZChzdHJ1Y3QgbW9ja19od3NwX2ZyZWVsaXN0ICpzdGF0ZSwKKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgaWR4LAorCQkJICAgICAgIHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpCit7CisJdGwgPSB4Y2hnKCZzdGF0ZS0+aGlzdG9yeVtpZHhdLCB0bCk7CisJaWYgKHRsKSB7CisJCXJhZGl4X3RyZWVfZGVsZXRlKCZzdGF0ZS0+Y2FjaGVsaW5lcywgaHdzcF9jYWNoZWxpbmUodGwpKTsKKwkJaW50ZWxfdGltZWxpbmVfcHV0KHRsKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19tb2NrX2h3c3BfdGltZWxpbmUoc3RydWN0IG1vY2tfaHdzcF9mcmVlbGlzdCAqc3RhdGUsCisJCQkJdW5zaWduZWQgaW50IGNvdW50LAorCQkJCXVuc2lnbmVkIGludCBmbGFncykKK3sKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsOworCXVuc2lnbmVkIGludCBpZHg7CisKKwl3aGlsZSAoY291bnQtLSkgeworCQl1bnNpZ25lZCBsb25nIGNhY2hlbGluZTsKKwkJaW50IGVycjsKKworCQl0bCA9IGludGVsX3RpbWVsaW5lX2NyZWF0ZSgmc3RhdGUtPmk5MTUtPmd0LCBOVUxMKTsKKwkJaWYgKElTX0VSUih0bCkpCisJCQlyZXR1cm4gUFRSX0VSUih0bCk7CisKKwkJY2FjaGVsaW5lID0gaHdzcF9jYWNoZWxpbmUodGwpOworCQllcnIgPSByYWRpeF90cmVlX2luc2VydCgmc3RhdGUtPmNhY2hlbGluZXMsIGNhY2hlbGluZSwgdGwpOworCQlpZiAoZXJyKSB7CisJCQlpZiAoZXJyID09IC1FRVhJU1QpIHsKKwkJCQlwcl9lcnIoIkhXU1AgY2FjaGVsaW5lICVsdSBhbHJlYWR5IHVzZWQ7IGR1cGxpY2F0ZSBhbGxvY2F0aW9uIVxuIiwKKwkJCQkgICAgICAgY2FjaGVsaW5lKTsKKwkJCX0KKwkJCWludGVsX3RpbWVsaW5lX3B1dCh0bCk7CisJCQlyZXR1cm4gZXJyOworCQl9CisKKwkJaWR4ID0gc3RhdGUtPmNvdW50KysgJSBzdGF0ZS0+bWF4OworCQlfX21vY2tfaHdzcF9yZWNvcmQoc3RhdGUsIGlkeCwgdGwpOworCX0KKworCWlmIChmbGFncyAmIFNIVUZGTEUpCisJCWk5MTVfcHJhbmRvbV9zaHVmZmxlKHN0YXRlLT5oaXN0b3J5LAorCQkJCSAgICAgc2l6ZW9mKCpzdGF0ZS0+aGlzdG9yeSksCisJCQkJICAgICBtaW4oc3RhdGUtPmNvdW50LCBzdGF0ZS0+bWF4KSwKKwkJCQkgICAgICZzdGF0ZS0+cHJuZyk7CisKKwljb3VudCA9IGk5MTVfcHJhbmRvbV91MzJfbWF4X3N0YXRlKG1pbihzdGF0ZS0+Y291bnQsIHN0YXRlLT5tYXgpLAorCQkJCQkgICAmc3RhdGUtPnBybmcpOworCXdoaWxlIChjb3VudC0tKSB7CisJCWlkeCA9IC0tc3RhdGUtPmNvdW50ICUgc3RhdGUtPm1heDsKKwkJX19tb2NrX2h3c3BfcmVjb3JkKHN0YXRlLCBpZHgsIE5VTEwpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG1vY2tfaHdzcF9mcmVlbGlzdCh2b2lkICphcmcpCit7CisJc3RydWN0IG1vY2tfaHdzcF9mcmVlbGlzdCBzdGF0ZTsKKwljb25zdCBzdHJ1Y3QgeworCQljb25zdCBjaGFyICpuYW1lOworCQl1bnNpZ25lZCBpbnQgZmxhZ3M7CisJfSBwaGFzZXNbXSA9IHsKKwkJeyAibGluZWFyIiwgMCB9LAorCQl7ICJzaHVmZmxlZCIsIFNIVUZGTEUgfSwKKwkJeyB9LAorCX0sICpwOworCXVuc2lnbmVkIGludCBuYTsKKwlpbnQgZXJyID0gMDsKKworCUlOSVRfUkFESVhfVFJFRSgmc3RhdGUuY2FjaGVsaW5lcywgR0ZQX0tFUk5FTCk7CisJc3RhdGUucHJuZyA9IEk5MTVfUk5EX1NUQVRFX0lOSVRJQUxJWkVSKGk5MTVfc2VsZnRlc3QucmFuZG9tX3NlZWQpOworCisJc3RhdGUuaTkxNSA9IG1vY2tfZ2VtX2RldmljZSgpOworCWlmICghc3RhdGUuaTkxNSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwkvKgorCSAqIENyZWF0ZSBhIGJ1bmNoIG9mIHRpbWVsaW5lcyBhbmQgY2hlY2sgdGhhdCB0aGVpciBIV1NQIGRvIG5vdCBvdmVybGFwLgorCSAqIEZyZWUgc29tZSwgYW5kIHRyeSBhZ2Fpbi4KKwkgKi8KKworCXN0YXRlLm1heCA9IFBBR0VfU0laRSAvIHNpemVvZigqc3RhdGUuaGlzdG9yeSk7CisJc3RhdGUuY291bnQgPSAwOworCXN0YXRlLmhpc3RvcnkgPSBrY2FsbG9jKHN0YXRlLm1heCwgc2l6ZW9mKCpzdGF0ZS5oaXN0b3J5KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzdGF0ZS5oaXN0b3J5KSB7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gZXJyX3B1dDsKKwl9CisKKwltdXRleF9sb2NrKCZzdGF0ZS5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlmb3IgKHAgPSBwaGFzZXM7IHAtPm5hbWU7IHArKykgeworCQlwcl9kZWJ1ZygiJXMoJXMpXG4iLCBfX2Z1bmNfXywgcC0+bmFtZSk7CisJCWZvcl9lYWNoX3ByaW1lX251bWJlcl9mcm9tKG5hLCAxLCAyICogQ0FDSEVMSU5FU19QRVJfUEFHRSkgeworCQkJZXJyID0gX19tb2NrX2h3c3BfdGltZWxpbmUoJnN0YXRlLCBuYSwgcC0+ZmxhZ3MpOworCQkJaWYgKGVycikKKwkJCQlnb3RvIG91dDsKKwkJfQorCX0KKworb3V0OgorCWZvciAobmEgPSAwOyBuYSA8IHN0YXRlLm1heDsgbmErKykKKwkJX19tb2NrX2h3c3BfcmVjb3JkKCZzdGF0ZSwgbmEsIE5VTEwpOworCW11dGV4X3VubG9jaygmc3RhdGUuaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJa2ZyZWUoc3RhdGUuaGlzdG9yeSk7CitlcnJfcHV0OgorCWRybV9kZXZfcHV0KCZzdGF0ZS5pOTE1LT5kcm0pOworCXJldHVybiBlcnI7Cit9CisKK3N0cnVjdCBfX2lndF9zeW5jIHsKKwljb25zdCBjaGFyICpuYW1lOworCXUzMiBzZXFubzsKKwlib29sIGV4cGVjdGVkOworCWJvb2wgc2V0OworfTsKKworc3RhdGljIGludCBfX2lndF9zeW5jKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwsCisJCSAgICAgIHU2NCBjdHgsCisJCSAgICAgIGNvbnN0IHN0cnVjdCBfX2lndF9zeW5jICpwLAorCQkgICAgICBjb25zdCBjaGFyICpuYW1lKQoreworCWludCByZXQ7CisKKwlpZiAoX19pbnRlbF90aW1lbGluZV9zeW5jX2lzX2xhdGVyKHRsLCBjdHgsIHAtPnNlcW5vKSAhPSBwLT5leHBlY3RlZCkgeworCQlwcl9lcnIoIiVzOiAlcyhjdHg9JWxsdSwgc2Vxbm89JXUpIGV4cGVjdGVkIHBhc3NlZCAlcyBidXQgZmFpbGVkXG4iLAorCQkgICAgICAgbmFtZSwgcC0+bmFtZSwgY3R4LCBwLT5zZXFubywgeWVzbm8ocC0+ZXhwZWN0ZWQpKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHAtPnNldCkgeworCQlyZXQgPSBfX2ludGVsX3RpbWVsaW5lX3N5bmNfc2V0KHRsLCBjdHgsIHAtPnNlcW5vKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaWd0X3N5bmModm9pZCAqYXJnKQoreworCWNvbnN0IHN0cnVjdCBfX2lndF9zeW5jIHBhc3NbXSA9IHsKKwkJeyAidW5zZXQiLCAwLCBmYWxzZSwgZmFsc2UgfSwKKwkJeyAibmV3IiwgMCwgZmFsc2UsIHRydWUgfSwKKwkJeyAiMGEiLCAwLCB0cnVlLCB0cnVlIH0sCisJCXsgIjFhIiwgMSwgZmFsc2UsIHRydWUgfSwKKwkJeyAiMWIiLCAxLCB0cnVlLCB0cnVlIH0sCisJCXsgIjBiIiwgMCwgdHJ1ZSwgZmFsc2UgfSwKKwkJeyAiMmEiLCAyLCBmYWxzZSwgdHJ1ZSB9LAorCQl7ICI0IiwgNCwgZmFsc2UsIHRydWUgfSwKKwkJeyAiSU5UX01BWCIsIElOVF9NQVgsIGZhbHNlLCB0cnVlIH0sCisJCXsgIklOVF9NQVgtMSIsIElOVF9NQVgtMSwgdHJ1ZSwgZmFsc2UgfSwKKwkJeyAiSU5UX01BWCsxIiwgKHUzMilJTlRfTUFYKzEsIGZhbHNlLCB0cnVlIH0sCisJCXsgIklOVF9NQVgiLCBJTlRfTUFYLCB0cnVlLCBmYWxzZSB9LAorCQl7ICJVSU5UX01BWCIsIFVJTlRfTUFYLCBmYWxzZSwgdHJ1ZSB9LAorCQl7ICJ3cmFwIiwgMCwgZmFsc2UsIHRydWUgfSwKKwkJeyAidW53cmFwIiwgVUlOVF9NQVgsIHRydWUsIGZhbHNlIH0sCisJCXt9LAorCX0sICpwOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSB0bDsKKwlpbnQgb3JkZXIsIG9mZnNldDsKKwlpbnQgcmV0ID0gLUVOT0RFVjsKKworCW1vY2tfdGltZWxpbmVfaW5pdCgmdGwsIDApOworCWZvciAocCA9IHBhc3M7IHAtPm5hbWU7IHArKykgeworCQlmb3IgKG9yZGVyID0gMTsgb3JkZXIgPCA2NDsgb3JkZXIrKykgeworCQkJZm9yIChvZmZzZXQgPSAtMTsgb2Zmc2V0IDw9IChvcmRlciA+IDEpOyBvZmZzZXQrKykgeworCQkJCXU2NCBjdHggPSBCSVRfVUxMKG9yZGVyKSArIG9mZnNldDsKKworCQkJCXJldCA9IF9faWd0X3N5bmMoJnRsLCBjdHgsIHAsICIxIik7CisJCQkJaWYgKHJldCkKKwkJCQkJZ290byBvdXQ7CisJCQl9CisJCX0KKwl9CisJbW9ja190aW1lbGluZV9maW5pKCZ0bCk7CisKKwltb2NrX3RpbWVsaW5lX2luaXQoJnRsLCAwKTsKKwlmb3IgKG9yZGVyID0gMTsgb3JkZXIgPCA2NDsgb3JkZXIrKykgeworCQlmb3IgKG9mZnNldCA9IC0xOyBvZmZzZXQgPD0gKG9yZGVyID4gMSk7IG9mZnNldCsrKSB7CisJCQl1NjQgY3R4ID0gQklUX1VMTChvcmRlcikgKyBvZmZzZXQ7CisKKwkJCWZvciAocCA9IHBhc3M7IHAtPm5hbWU7IHArKykgeworCQkJCXJldCA9IF9faWd0X3N5bmMoJnRsLCBjdHgsIHAsICIyIik7CisJCQkJaWYgKHJldCkKKwkJCQkJZ290byBvdXQ7CisJCQl9CisJCX0KKwl9CisKK291dDoKKwltb2NrX3RpbWVsaW5lX2ZpbmkoJnRsKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IHJhbmRvbV9lbmdpbmUoc3RydWN0IHJuZF9zdGF0ZSAqcm5kKQoreworCXJldHVybiBpOTE1X3ByYW5kb21fdTMyX21heF9zdGF0ZShJOTE1X05VTV9FTkdJTkVTLCBybmQpOworfQorCitzdGF0aWMgaW50IGJlbmNoX3N5bmModm9pZCAqYXJnKQoreworCXN0cnVjdCBybmRfc3RhdGUgcHJuZzsKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgdGw7CisJdW5zaWduZWQgbG9uZyBlbmRfdGltZSwgY291bnQ7CisJdTY0IHBybmczMl8xTTsKKwlrdGltZV90IGt0OworCWludCBvcmRlciwgbGFzdF9vcmRlcjsKKworCW1vY2tfdGltZWxpbmVfaW5pdCgmdGwsIDApOworCisJLyogTG9va3VwcyBmcm9tIGNhY2hlIGFyZSB2ZXJ5IGZhc3QgYW5kIHNvIHRoZSByYW5kb20gbnVtYmVyIGdlbmVyYXRpb24KKwkgKiBhbmQgdGhlIGxvb3AgaXRzZWxmIGJlY29tZXMgYSBzaWduaWZpY2FudCBmYWN0b3IgaW4gdGhlIHBlci1pdGVyYXRpb24KKwkgKiB0aW1pbmdzLiBXZSB0cnkgdG8gY29tcGVuc2F0ZSB0aGUgcmVzdWx0cyBieSBtZWFzdXJpbmcgdGhlIG92ZXJoZWFkCisJICogb2YgdGhlIHBybmcgYW5kIHN1YnRyYWN0IGl0IGZyb20gdGhlIHJlcG9ydGVkIHJlc3VsdHMuCisJICovCisJcHJhbmRvbV9zZWVkX3N0YXRlKCZwcm5nLCBpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9zZWVkKTsKKwljb3VudCA9IDA7CisJa3QgPSBrdGltZV9nZXQoKTsKKwllbmRfdGltZSA9IGppZmZpZXMgKyBIWi8xMDsKKwlkbyB7CisJCXUzMiB4OworCisJCS8qIE1ha2Ugc3VyZSB0aGUgY29tcGlsZXIgZG9lc24ndCBvcHRpbWlzZSBhd2F5IHRoZSBwcm5nIGNhbGwgKi8KKwkJV1JJVEVfT05DRSh4LCBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZykpOworCisJCWNvdW50Kys7CisJfSB3aGlsZSAoIXRpbWVfYWZ0ZXIoamlmZmllcywgZW5kX3RpbWUpKTsKKwlrdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwga3QpOworCXByX2RlYnVnKCIlczogJWx1IHJhbmRvbSBldmFsdWF0aW9ucywgJWxsdW5zL3BybmdcbiIsCisJCSBfX2Z1bmNfXywgY291bnQsIChsb25nIGxvbmcpZGl2NjRfdWwoa3RpbWVfdG9fbnMoa3QpLCBjb3VudCkpOworCXBybmczMl8xTSA9IGRpdjY0X3VsKGt0aW1lX3RvX25zKGt0KSA8PCAyMCwgY291bnQpOworCisJLyogQmVuY2htYXJrIChvbmx5KSBzZXR0aW5nIHJhbmRvbSBjb250ZXh0IGlkcyAqLworCXByYW5kb21fc2VlZF9zdGF0ZSgmcHJuZywgaTkxNV9zZWxmdGVzdC5yYW5kb21fc2VlZCk7CisJY291bnQgPSAwOworCWt0ID0ga3RpbWVfZ2V0KCk7CisJZW5kX3RpbWUgPSBqaWZmaWVzICsgSFovMTA7CisJZG8geworCQl1NjQgaWQgPSBpOTE1X3ByYW5kb21fdTY0X3N0YXRlKCZwcm5nKTsKKworCQlfX2ludGVsX3RpbWVsaW5lX3N5bmNfc2V0KCZ0bCwgaWQsIDApOworCQljb3VudCsrOworCX0gd2hpbGUgKCF0aW1lX2FmdGVyKGppZmZpZXMsIGVuZF90aW1lKSk7CisJa3QgPSBrdGltZV9zdWIoa3RpbWVfZ2V0KCksIGt0KTsKKwlrdCA9IGt0aW1lX3N1Yl9ucyhrdCwgKGNvdW50ICogcHJuZzMyXzFNICogMikgPj4gMjApOworCXByX2luZm8oIiVzOiAlbHUgcmFuZG9tIGluc2VydGlvbnMsICVsbHVucy9pbnNlcnRcbiIsCisJCV9fZnVuY19fLCBjb3VudCwgKGxvbmcgbG9uZylkaXY2NF91bChrdGltZV90b19ucyhrdCksIGNvdW50KSk7CisKKwkvKiBCZW5jaG1hcmsgbG9va2luZyB1cCB0aGUgZXhhY3Qgc2FtZSBjb250ZXh0IGlkcyBhcyB3ZSBqdXN0IHNldCAqLworCXByYW5kb21fc2VlZF9zdGF0ZSgmcHJuZywgaTkxNV9zZWxmdGVzdC5yYW5kb21fc2VlZCk7CisJZW5kX3RpbWUgPSBjb3VudDsKKwlrdCA9IGt0aW1lX2dldCgpOworCXdoaWxlIChlbmRfdGltZS0tKSB7CisJCXU2NCBpZCA9IGk5MTVfcHJhbmRvbV91NjRfc3RhdGUoJnBybmcpOworCisJCWlmICghX19pbnRlbF90aW1lbGluZV9zeW5jX2lzX2xhdGVyKCZ0bCwgaWQsIDApKSB7CisJCQltb2NrX3RpbWVsaW5lX2ZpbmkoJnRsKTsKKwkJCXByX2VycigiTG9va3VwIG9mICVsbHUgZmFpbGVkXG4iLCBpZCk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0KKwlrdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwga3QpOworCWt0ID0ga3RpbWVfc3ViX25zKGt0LCAoY291bnQgKiBwcm5nMzJfMU0gKiAyKSA+PiAyMCk7CisJcHJfaW5mbygiJXM6ICVsdSByYW5kb20gbG9va3VwcywgJWxsdW5zL2xvb2t1cFxuIiwKKwkJX19mdW5jX18sIGNvdW50LCAobG9uZyBsb25nKWRpdjY0X3VsKGt0aW1lX3RvX25zKGt0KSwgY291bnQpKTsKKworCW1vY2tfdGltZWxpbmVfZmluaSgmdGwpOworCWNvbmRfcmVzY2hlZCgpOworCisJbW9ja190aW1lbGluZV9pbml0KCZ0bCwgMCk7CisKKwkvKiBCZW5jaG1hcmsgc2V0dGluZyB0aGUgZmlyc3QgTiAoaW4gb3JkZXIpIGNvbnRleHRzICovCisJY291bnQgPSAwOworCWt0ID0ga3RpbWVfZ2V0KCk7CisJZW5kX3RpbWUgPSBqaWZmaWVzICsgSFovMTA7CisJZG8geworCQlfX2ludGVsX3RpbWVsaW5lX3N5bmNfc2V0KCZ0bCwgY291bnQrKywgMCk7CisJfSB3aGlsZSAoIXRpbWVfYWZ0ZXIoamlmZmllcywgZW5kX3RpbWUpKTsKKwlrdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwga3QpOworCXByX2luZm8oIiVzOiAlbHUgaW4tb3JkZXIgaW5zZXJ0aW9ucywgJWxsdW5zL2luc2VydFxuIiwKKwkJX19mdW5jX18sIGNvdW50LCAobG9uZyBsb25nKWRpdjY0X3VsKGt0aW1lX3RvX25zKGt0KSwgY291bnQpKTsKKworCS8qIEJlbmNobWFyayBsb29raW5nIHVwIHRoZSBleGFjdCBzYW1lIGNvbnRleHQgaWRzIGFzIHdlIGp1c3Qgc2V0ICovCisJZW5kX3RpbWUgPSBjb3VudDsKKwlrdCA9IGt0aW1lX2dldCgpOworCXdoaWxlIChlbmRfdGltZS0tKSB7CisJCWlmICghX19pbnRlbF90aW1lbGluZV9zeW5jX2lzX2xhdGVyKCZ0bCwgZW5kX3RpbWUsIDApKSB7CisJCQlwcl9lcnIoIkxvb2t1cCBvZiAlbHUgZmFpbGVkXG4iLCBlbmRfdGltZSk7CisJCQltb2NrX3RpbWVsaW5lX2ZpbmkoJnRsKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJfQorCWt0ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBrdCk7CisJcHJfaW5mbygiJXM6ICVsdSBpbi1vcmRlciBsb29rdXBzLCAlbGx1bnMvbG9va3VwXG4iLAorCQlfX2Z1bmNfXywgY291bnQsIChsb25nIGxvbmcpZGl2NjRfdWwoa3RpbWVfdG9fbnMoa3QpLCBjb3VudCkpOworCisJbW9ja190aW1lbGluZV9maW5pKCZ0bCk7CisJY29uZF9yZXNjaGVkKCk7CisKKwltb2NrX3RpbWVsaW5lX2luaXQoJnRsLCAwKTsKKworCS8qIEJlbmNobWFyayBzZWFyY2hpbmcgZm9yIGEgcmFuZG9tIGNvbnRleHQgaWQgYW5kIG1heWJlIGNoYW5naW5nIGl0ICovCisJcHJhbmRvbV9zZWVkX3N0YXRlKCZwcm5nLCBpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9zZWVkKTsKKwljb3VudCA9IDA7CisJa3QgPSBrdGltZV9nZXQoKTsKKwllbmRfdGltZSA9IGppZmZpZXMgKyBIWi8xMDsKKwlkbyB7CisJCXUzMiBpZCA9IHJhbmRvbV9lbmdpbmUoJnBybmcpOworCQl1MzIgc2Vxbm8gPSBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZyk7CisKKwkJaWYgKCFfX2ludGVsX3RpbWVsaW5lX3N5bmNfaXNfbGF0ZXIoJnRsLCBpZCwgc2Vxbm8pKQorCQkJX19pbnRlbF90aW1lbGluZV9zeW5jX3NldCgmdGwsIGlkLCBzZXFubyk7CisKKwkJY291bnQrKzsKKwl9IHdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmRfdGltZSkpOworCWt0ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBrdCk7CisJa3QgPSBrdGltZV9zdWJfbnMoa3QsIChjb3VudCAqIHBybmczMl8xTSAqIDIpID4+IDIwKTsKKwlwcl9pbmZvKCIlczogJWx1IHJlcGVhdGVkIGluc2VydC9sb29rdXBzLCAlbGx1bnMvb3BcbiIsCisJCV9fZnVuY19fLCBjb3VudCwgKGxvbmcgbG9uZylkaXY2NF91bChrdGltZV90b19ucyhrdCksIGNvdW50KSk7CisJbW9ja190aW1lbGluZV9maW5pKCZ0bCk7CisJY29uZF9yZXNjaGVkKCk7CisKKwkvKiBCZW5jaG1hcmsgc2VhcmNoaW5nIGZvciBhIGtub3duIGNvbnRleHQgaWQgYW5kIGNoYW5naW5nIHRoZSBzZXFubyAqLworCWZvciAobGFzdF9vcmRlciA9IDEsIG9yZGVyID0gMTsgb3JkZXIgPCAzMjsKKwkgICAgICh7IGludCB0bXAgPSBsYXN0X29yZGVyOyBsYXN0X29yZGVyID0gb3JkZXI7IG9yZGVyICs9IHRtcDsgfSkpIHsKKwkJdW5zaWduZWQgaW50IG1hc2sgPSBCSVQob3JkZXIpIC0gMTsKKworCQltb2NrX3RpbWVsaW5lX2luaXQoJnRsLCAwKTsKKworCQljb3VudCA9IDA7CisJCWt0ID0ga3RpbWVfZ2V0KCk7CisJCWVuZF90aW1lID0gamlmZmllcyArIEhaLzEwOworCQlkbyB7CisJCQkvKiBXaXRob3V0IGFzc3VtaW5nIHRvbyBtYW55IGRldGFpbHMgb2YgdGhlIHVuZGVybHlpbmcKKwkJCSAqIGltcGxlbWVudGF0aW9uLCB0cnkgdG8gaWRlbnRpZnkgaXRzIHBoYXNlLWNoYW5nZXMKKwkJCSAqIChpZiBhbnkpIQorCQkJICovCisJCQl1NjQgaWQgPSAodTY0KShjb3VudCAmIG1hc2spIDw8IG9yZGVyOworCisJCQlfX2ludGVsX3RpbWVsaW5lX3N5bmNfaXNfbGF0ZXIoJnRsLCBpZCwgMCk7CisJCQlfX2ludGVsX3RpbWVsaW5lX3N5bmNfc2V0KCZ0bCwgaWQsIDApOworCisJCQljb3VudCsrOworCQl9IHdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmRfdGltZSkpOworCQlrdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwga3QpOworCQlwcl9pbmZvKCIlczogJWx1IGN5Y2xpYy8lZCBpbnNlcnQvbG9va3VwcywgJWxsdW5zL29wXG4iLAorCQkJX19mdW5jX18sIGNvdW50LCBvcmRlciwKKwkJCShsb25nIGxvbmcpZGl2NjRfdWwoa3RpbWVfdG9fbnMoa3QpLCBjb3VudCkpOworCQltb2NrX3RpbWVsaW5lX2ZpbmkoJnRsKTsKKwkJY29uZF9yZXNjaGVkKCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludCBpbnRlbF90aW1lbGluZV9tb2NrX3NlbGZ0ZXN0cyh2b2lkKQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CisJCVNVQlRFU1QobW9ja19od3NwX2ZyZWVsaXN0KSwKKwkJU1VCVEVTVChpZ3Rfc3luYyksCisJCVNVQlRFU1QoYmVuY2hfc3luYyksCisJfTsKKworCXJldHVybiBpOTE1X3N1YnRlc3RzKHRlc3RzLCBOVUxMKTsKK30KKworc3RhdGljIGludCBlbWl0X2dndHRfc3RvcmVfZHcoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiBhZGRyLCB1MzIgdmFsdWUpCit7CisJdTMyICpjczsKKworCWNzID0gaW50ZWxfcmluZ19iZWdpbihycSwgNCk7CisJaWYgKElTX0VSUihjcykpCisJCXJldHVybiBQVFJfRVJSKGNzKTsKKworCWlmIChJTlRFTF9HRU4ocnEtPmk5MTUpID49IDgpIHsKKwkJKmNzKysgPSBNSV9TVE9SRV9EV09SRF9JTU1fR0VONCB8IE1JX1VTRV9HR1RUOworCQkqY3MrKyA9IGFkZHI7CisJCSpjcysrID0gMDsKKwkJKmNzKysgPSB2YWx1ZTsKKwl9IGVsc2UgaWYgKElOVEVMX0dFTihycS0+aTkxNSkgPj0gNCkgeworCQkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTV9HRU40IHwgTUlfVVNFX0dHVFQ7CisJCSpjcysrID0gMDsKKwkJKmNzKysgPSBhZGRyOworCQkqY3MrKyA9IHZhbHVlOworCX0gZWxzZSB7CisJCSpjcysrID0gTUlfU1RPUkVfRFdPUkRfSU1NIHwgTUlfTUVNX1ZJUlRVQUw7CisJCSpjcysrID0gYWRkcjsKKwkJKmNzKysgPSB2YWx1ZTsKKwkJKmNzKysgPSBNSV9OT09QOworCX0KKworCWludGVsX3JpbmdfYWR2YW5jZShycSwgY3MpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKK3RsX3dyaXRlKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIHZhbHVlKQoreworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCWludCBlcnI7CisKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ0bC0+Z3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOyAvKiBsYXp5IHJxIHJlZnMgKi8KKworCWVyciA9IGludGVsX3RpbWVsaW5lX3Bpbih0bCk7CisJaWYgKGVycikgeworCQlycSA9IEVSUl9QVFIoZXJyKTsKKwkJZ290byBvdXQ7CisJfQorCisJcnEgPSBpOTE1X3JlcXVlc3RfY3JlYXRlKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOworCWlmIChJU19FUlIocnEpKQorCQlnb3RvIG91dF91bnBpbjsKKworCWVyciA9IGVtaXRfZ2d0dF9zdG9yZV9kdyhycSwgdGwtPmh3c3Bfb2Zmc2V0LCB2YWx1ZSk7CisJaTkxNV9yZXF1ZXN0X2FkZChycSk7CisJaWYgKGVycikKKwkJcnEgPSBFUlJfUFRSKGVycik7CisKK291dF91bnBpbjoKKwlpbnRlbF90aW1lbGluZV91bnBpbih0bCk7CitvdXQ6CisJaWYgKElTX0VSUihycSkpCisJCXByX2VycigiRmFpbGVkIHRvIHdyaXRlIHRvIHRpbWVsaW5lIVxuIik7CisJcmV0dXJuIHJxOworfQorCitzdGF0aWMgc3RydWN0IGludGVsX3RpbWVsaW5lICoKK2NoZWNrZWRfaW50ZWxfdGltZWxpbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGw7CisKKwl0bCA9IGludGVsX3RpbWVsaW5lX2NyZWF0ZSgmaTkxNS0+Z3QsIE5VTEwpOworCWlmIChJU19FUlIodGwpKQorCQlyZXR1cm4gdGw7CisKKwlpZiAoKnRsLT5od3NwX3NlcW5vICE9IHRsLT5zZXFubykgeworCQlwcl9lcnIoIlRpbWVsaW5lIGNyZWF0ZWQgd2l0aCBpbmNvcnJlY3QgYnJlYWRjcnVtYiwgZm91bmQgJXgsIGV4cGVjdGVkICV4XG4iLAorCQkgICAgICAgKnRsLT5od3NwX3NlcW5vLCB0bC0+c2Vxbm8pOworCQlpbnRlbF90aW1lbGluZV9wdXQodGwpOworCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwl9CisKKwlyZXR1cm4gdGw7Cit9CisKK3N0YXRpYyBpbnQgbGl2ZV9od3NwX2VuZ2luZSh2b2lkICphcmcpCit7CisjZGVmaW5lIE5VTV9USU1FTElORVMgNDA5NgorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqKnRpbWVsaW5lczsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisJdW5zaWduZWQgbG9uZyBjb3VudCwgbjsKKwlpbnQgZXJyID0gMDsKKworCS8qCisJICogQ3JlYXRlIGEgYnVuY2ggb2YgdGltZWxpbmVzIGFuZCBjaGVjayB3ZSBjYW4gd3JpdGUKKwkgKiBpbmRlcGVuZGVudGx5IHRvIGVhY2ggb2YgdGhlaXIgYnJlYWRjcnVtYiBzbG90cy4KKwkgKi8KKworCXRpbWVsaW5lcyA9IGt2bWFsbG9jX2FycmF5KE5VTV9USU1FTElORVMgKiBJOTE1X05VTV9FTkdJTkVTLAorCQkJCSAgIHNpemVvZigqdGltZWxpbmVzKSwKKwkJCQkgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXRpbWVsaW5lcykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOworCisJY291bnQgPSAwOworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQorCQkJY29udGludWU7CisKKwkJZm9yIChuID0gMDsgbiA8IE5VTV9USU1FTElORVM7IG4rKykgeworCQkJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bDsKKwkJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCisJCQl0bCA9IGNoZWNrZWRfaW50ZWxfdGltZWxpbmVfY3JlYXRlKGk5MTUpOworCQkJaWYgKElTX0VSUih0bCkpIHsKKwkJCQllcnIgPSBQVFJfRVJSKHRsKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJcnEgPSB0bF93cml0ZSh0bCwgZW5naW5lLCBjb3VudCk7CisJCQlpZiAoSVNfRVJSKHJxKSkgeworCQkJCWludGVsX3RpbWVsaW5lX3B1dCh0bCk7CisJCQkJZXJyID0gUFRSX0VSUihycSk7CisJCQkJZ290byBvdXQ7CisJCQl9CisKKwkJCXRpbWVsaW5lc1tjb3VudCsrXSA9IHRsOworCQl9CisJfQorCitvdXQ6CisJaWYgKGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpKQorCQllcnIgPSAtRUlPOworCisJZm9yIChuID0gMDsgbiA8IGNvdW50OyBuKyspIHsKKwkJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCA9IHRpbWVsaW5lc1tuXTsKKworCQlpZiAoIWVyciAmJiAqdGwtPmh3c3Bfc2Vxbm8gIT0gbikgeworCQkJcHJfZXJyKCJJbnZhbGlkIHNlcW5vIHN0b3JlZCBpbiB0aW1lbGluZSAlbHUsIGZvdW5kIDB4JXhcbiIsCisJCQkgICAgICAgbiwgKnRsLT5od3NwX3NlcW5vKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCX0KKwkJaW50ZWxfdGltZWxpbmVfcHV0KHRsKTsKKwl9CisKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCWt2ZnJlZSh0aW1lbGluZXMpOworCisJcmV0dXJuIGVycjsKKyN1bmRlZiBOVU1fVElNRUxJTkVTCit9CisKK3N0YXRpYyBpbnQgbGl2ZV9od3NwX2FsdGVybmF0ZSh2b2lkICphcmcpCit7CisjZGVmaW5lIE5VTV9USU1FTElORVMgNDA5NgorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqKnRpbWVsaW5lczsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisJdW5zaWduZWQgbG9uZyBjb3VudCwgbjsKKwlpbnQgZXJyID0gMDsKKworCS8qCisJICogQ3JlYXRlIGEgYnVuY2ggb2YgdGltZWxpbmVzIGFuZCBjaGVjayB3ZSBjYW4gd3JpdGUKKwkgKiBpbmRlcGVuZGVudGx5IHRvIGVhY2ggb2YgdGhlaXIgYnJlYWRjcnVtYiBzbG90cyB3aXRoIGFkamFjZW50CisJICogZW5naW5lcy4KKwkgKi8KKworCXRpbWVsaW5lcyA9IGt2bWFsbG9jX2FycmF5KE5VTV9USU1FTElORVMgKiBJOTE1X05VTV9FTkdJTkVTLAorCQkJCSAgIHNpemVvZigqdGltZWxpbmVzKSwKKwkJCQkgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXRpbWVsaW5lcykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOworCisJY291bnQgPSAwOworCWZvciAobiA9IDA7IG4gPCBOVU1fVElNRUxJTkVTOyBuKyspIHsKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwkJCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGw7CisJCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKworCQkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCisJCQkJY29udGludWU7CisKKwkJCXRsID0gY2hlY2tlZF9pbnRlbF90aW1lbGluZV9jcmVhdGUoaTkxNSk7CisJCQlpZiAoSVNfRVJSKHRsKSkgeworCQkJCWVyciA9IFBUUl9FUlIodGwpOworCQkJCWdvdG8gb3V0OworCQkJfQorCisJCQlycSA9IHRsX3dyaXRlKHRsLCBlbmdpbmUsIGNvdW50KTsKKwkJCWlmIChJU19FUlIocnEpKSB7CisJCQkJaW50ZWxfdGltZWxpbmVfcHV0KHRsKTsKKwkJCQllcnIgPSBQVFJfRVJSKHJxKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJdGltZWxpbmVzW2NvdW50KytdID0gdGw7CisJCX0KKwl9CisKK291dDoKKwlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCisJCWVyciA9IC1FSU87CisKKwlmb3IgKG4gPSAwOyBuIDwgY291bnQ7IG4rKykgeworCQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsID0gdGltZWxpbmVzW25dOworCisJCWlmICghZXJyICYmICp0bC0+aHdzcF9zZXFubyAhPSBuKSB7CisJCQlwcl9lcnIoIkludmFsaWQgc2Vxbm8gc3RvcmVkIGluIHRpbWVsaW5lICVsdSwgZm91bmQgMHgleFxuIiwKKwkJCSAgICAgICBuLCAqdGwtPmh3c3Bfc2Vxbm8pOworCQkJZXJyID0gLUVJTlZBTDsKKwkJfQorCQlpbnRlbF90aW1lbGluZV9wdXQodGwpOworCX0KKworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJa3ZmcmVlKHRpbWVsaW5lcyk7CisKKwlyZXR1cm4gZXJyOworI3VuZGVmIE5VTV9USU1FTElORVMKK30KKworc3RhdGljIGludCBsaXZlX2h3c3Bfd3JhcCh2b2lkICphcmcpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGw7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisJaW50IGVyciA9IDA7CisKKwkvKgorCSAqIEFjcm9zcyBhIHNlcW5vIHdyYXAsIHdlIG5lZWQgdG8ga2VlcCB0aGUgb2xkIGNhY2hlbGluZSBhbGl2ZSBmb3IKKwkgKiBmb3JlaWduIEdQVSByZWZlcmVuY2VzLgorCSAqLworCisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKKworCXRsID0gaW50ZWxfdGltZWxpbmVfY3JlYXRlKCZpOTE1LT5ndCwgTlVMTCk7CisJaWYgKElTX0VSUih0bCkpIHsKKwkJZXJyID0gUFRSX0VSUih0bCk7CisJCWdvdG8gb3V0X3JwbTsKKwl9CisJaWYgKCF0bC0+aGFzX2luaXRpYWxfYnJlYWRjcnVtYiB8fCAhdGwtPmh3c3BfY2FjaGVsaW5lKQorCQlnb3RvIG91dF9mcmVlOworCisJZXJyID0gaW50ZWxfdGltZWxpbmVfcGluKHRsKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dF9mcmVlOworCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwkJY29uc3QgdTMyICpod3NwX3NlcW5vWzJdOworCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwkJdTMyIHNlcW5vWzJdOworCisJCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQorCQkJY29udGludWU7CisKKwkJcnEgPSBpOTE1X3JlcXVlc3RfY3JlYXRlKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOworCQlpZiAoSVNfRVJSKHJxKSkgeworCQkJZXJyID0gUFRSX0VSUihycSk7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCXRsLT5zZXFubyA9IC00dTsKKworCQltdXRleF9sb2NrX25lc3RlZCgmdGwtPm11dGV4LCBTSU5HTEVfREVQVEhfTkVTVElORyk7CisJCWVyciA9IGludGVsX3RpbWVsaW5lX2dldF9zZXFubyh0bCwgcnEsICZzZXFub1swXSk7CisJCW11dGV4X3VubG9jaygmdGwtPm11dGV4KTsKKwkJaWYgKGVycikgeworCQkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CisJCQlnb3RvIG91dDsKKwkJfQorCQlwcl9kZWJ1Zygic2Vxbm9bMF06JTA4eCwgaHdzcF9vZmZzZXQ6JTA4eFxuIiwKKwkJCSBzZXFub1swXSwgdGwtPmh3c3Bfb2Zmc2V0KTsKKworCQllcnIgPSBlbWl0X2dndHRfc3RvcmVfZHcocnEsIHRsLT5od3NwX29mZnNldCwgc2Vxbm9bMF0pOworCQlpZiAoZXJyKSB7CisJCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKKwkJCWdvdG8gb3V0OworCQl9CisJCWh3c3Bfc2Vxbm9bMF0gPSB0bC0+aHdzcF9zZXFubzsKKworCQltdXRleF9sb2NrX25lc3RlZCgmdGwtPm11dGV4LCBTSU5HTEVfREVQVEhfTkVTVElORyk7CisJCWVyciA9IGludGVsX3RpbWVsaW5lX2dldF9zZXFubyh0bCwgcnEsICZzZXFub1sxXSk7CisJCW11dGV4X3VubG9jaygmdGwtPm11dGV4KTsKKwkJaWYgKGVycikgeworCQkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CisJCQlnb3RvIG91dDsKKwkJfQorCQlwcl9kZWJ1Zygic2Vxbm9bMV06JTA4eCwgaHdzcF9vZmZzZXQ6JTA4eFxuIiwKKwkJCSBzZXFub1sxXSwgdGwtPmh3c3Bfb2Zmc2V0KTsKKworCQllcnIgPSBlbWl0X2dndHRfc3RvcmVfZHcocnEsIHRsLT5od3NwX29mZnNldCwgc2Vxbm9bMV0pOworCQlpZiAoZXJyKSB7CisJCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKKwkJCWdvdG8gb3V0OworCQl9CisJCWh3c3Bfc2Vxbm9bMV0gPSB0bC0+aHdzcF9zZXFubzsKKworCQkvKiBXaXRoIHdyYXAgc2hvdWxkIGNvbWUgYSBuZXcgaHdzcCAqLworCQlHRU1fQlVHX09OKHNlcW5vWzFdID49IHNlcW5vWzBdKTsKKwkJR0VNX0JVR19PTihod3NwX3NlcW5vWzBdID09IGh3c3Bfc2Vxbm9bMV0pOworCisJCWk5MTVfcmVxdWVzdF9hZGQocnEpOworCisJCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgSFogLyA1KSA8IDApIHsKKwkJCXByX2VycigiV2FpdCBmb3IgdGltZWxpbmUgd3JpdGVzIHRpbWVkIG91dCFcbiIpOworCQkJZXJyID0gLUVJTzsKKwkJCWdvdG8gb3V0OworCQl9CisKKwkJaWYgKCpod3NwX3NlcW5vWzBdICE9IHNlcW5vWzBdIHx8ICpod3NwX3NlcW5vWzFdICE9IHNlcW5vWzFdKSB7CisJCQlwcl9lcnIoIkJhZCB0aW1lbGluZSB2YWx1ZXM6IGZvdW5kICgleCwgJXgpLCBleHBlY3RlZCAoJXgsICV4KVxuIiwKKwkJCSAgICAgICAqaHdzcF9zZXFub1swXSwgKmh3c3Bfc2Vxbm9bMV0sCisJCQkgICAgICAgc2Vxbm9bMF0sIHNlcW5vWzFdKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUpOyAvKiByZWN5Y2xlIEhXU1AgKi8KKwl9CisKK291dDoKKwlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCisJCWVyciA9IC1FSU87CisKKwlpbnRlbF90aW1lbGluZV91bnBpbih0bCk7CitvdXRfZnJlZToKKwlpbnRlbF90aW1lbGluZV9wdXQodGwpOworb3V0X3JwbToKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgbGl2ZV9od3NwX3JlY3ljbGUodm9pZCAqYXJnKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKKwl1bnNpZ25lZCBsb25nIGNvdW50OworCWludCBlcnIgPSAwOworCisJLyoKKwkgKiBDaGVjayBzZXFubyB3cml0ZXMgaW50byBvbmUgdGltZWxpbmUgYXQgYSB0aW1lLiBXZSBleHBlY3QgdG8KKwkgKiByZWN5Y2xlIHRoZSBicmVhZGNydW1iIHNsb3QgYmV0d2VlbiBpdGVyYXRpb25zIGFuZCBuZWl0aGVyCisJICogd2FudCB0byBjb25mdXNlIG91cnNlbHZlcyBvciB0aGUgR1BVLgorCSAqLworCisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKKworCWNvdW50ID0gMDsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgeworCQlJR1RfVElNRU9VVChlbmRfdGltZSk7CisKKwkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCisJCQljb250aW51ZTsKKworCQlkbyB7CisJCQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsOworCQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisKKwkJCXRsID0gY2hlY2tlZF9pbnRlbF90aW1lbGluZV9jcmVhdGUoaTkxNSk7CisJCQlpZiAoSVNfRVJSKHRsKSkgeworCQkJCWVyciA9IFBUUl9FUlIodGwpOworCQkJCWdvdG8gb3V0OworCQkJfQorCisJCQlycSA9IHRsX3dyaXRlKHRsLCBlbmdpbmUsIGNvdW50KTsKKwkJCWlmIChJU19FUlIocnEpKSB7CisJCQkJaW50ZWxfdGltZWxpbmVfcHV0KHRsKTsKKwkJCQllcnIgPSBQVFJfRVJSKHJxKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWiAvIDUpIDwgMCkgeworCQkJCXByX2VycigiV2FpdCBmb3IgdGltZWxpbmUgd3JpdGVzIHRpbWVkIG91dCFcbiIpOworCQkJCWludGVsX3RpbWVsaW5lX3B1dCh0bCk7CisJCQkJZXJyID0gLUVJTzsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJaWYgKCp0bC0+aHdzcF9zZXFubyAhPSBjb3VudCkgeworCQkJCXByX2VycigiSW52YWxpZCBzZXFubyBzdG9yZWQgaW4gdGltZWxpbmUgJWx1LCBmb3VuZCAweCV4XG4iLAorCQkJCSAgICAgICBjb3VudCwgKnRsLT5od3NwX3NlcW5vKTsKKwkJCQllcnIgPSAtRUlOVkFMOworCQkJfQorCisJCQlpbnRlbF90aW1lbGluZV9wdXQodGwpOworCQkJY291bnQrKzsKKworCQkJaWYgKGVycikKKwkJCQlnb3RvIG91dDsKKwkJfSB3aGlsZSAoIV9faWd0X3RpbWVvdXQoZW5kX3RpbWUsIE5VTEwpKTsKKwl9CisKK291dDoKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCXJldHVybiBlcnI7Cit9CisKK2ludCBpbnRlbF90aW1lbGluZV9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0geworCQlTVUJURVNUKGxpdmVfaHdzcF9yZWN5Y2xlKSwKKwkJU1VCVEVTVChsaXZlX2h3c3BfZW5naW5lKSwKKwkJU1VCVEVTVChsaXZlX2h3c3BfYWx0ZXJuYXRlKSwKKwkJU1VCVEVTVChsaXZlX2h3c3Bfd3JhcCksCisJfTsKKworCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gaTkxNV9saXZlX3N1YnRlc3RzKHRlc3RzLCBpOTE1KTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jCmluZGV4IDQ0YmVjZDkuLmQwNmQ2OGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYwpAQCAtNSwxMyArNSwxNCBAQAogICovCiAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcG0uaCIKKyNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfdXNlci5oIgorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgogI2luY2x1ZGUgImludGVsX3Jlc2V0LmgiCiAKICNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QuaCIKICNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X3Jlc2V0LmgiCiAjaW5jbHVkZSAic2VsZnRlc3RzL2lndF9zcGlubmVyLmgiCi0jaW5jbHVkZSAic2VsZnRlc3RzL2lndF93ZWRnZV9tZS5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9tb2NrX2RybS5oIgogCiAjaW5jbHVkZSAiZ2VtL3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmgiCkBAIC0yNCwxMSArMjUsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHdvX3JlZ2lzdGVyIHsKIAl7IElOVEVMX0dFTUlOSUxBS0UsIDB4NzMxYyB9CiB9OwogCi0jZGVmaW5lIFJFRl9OQU1FX01BWCAoSU5URUxfRU5HSU5FX0NTX01BWF9OQU1FICsgOCkKIHN0cnVjdCB3YV9saXN0cyB7CiAJc3RydWN0IGk5MTVfd2FfbGlzdCBndF93YV9saXN0OwogCXN0cnVjdCB7Ci0JCWNoYXIgbmFtZVtSRUZfTkFNRV9NQVhdOwogCQlzdHJ1Y3QgaTkxNV93YV9saXN0IHdhX2xpc3Q7CiAJCXN0cnVjdCBpOTE1X3dhX2xpc3QgY3R4X3dhX2xpc3Q7CiAJfSBlbmdpbmVbSTkxNV9OVU1fRU5HSU5FU107CkBAIC00MiwyNSArNDEsMjAgQEAgcmVmZXJlbmNlX2xpc3RzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCB3YV9saXN0cyAqbGlzdHMpCiAKIAltZW1zZXQobGlzdHMsIDAsIHNpemVvZigqbGlzdHMpKTsKIAotCXdhX2luaXRfc3RhcnQoJmxpc3RzLT5ndF93YV9saXN0LCAiR1RfUkVGIik7CisJd2FfaW5pdF9zdGFydCgmbGlzdHMtPmd0X3dhX2xpc3QsICJHVF9SRUYiLCAiZ2xvYmFsIik7CiAJZ3RfaW5pdF93b3JrYXJvdW5kcyhpOTE1LCAmbGlzdHMtPmd0X3dhX2xpc3QpOwogCXdhX2luaXRfZmluaXNoKCZsaXN0cy0+Z3Rfd2FfbGlzdCk7CiAKIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewogCQlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmbGlzdHMtPmVuZ2luZVtpZF0ud2FfbGlzdDsKLQkJY2hhciAqbmFtZSA9IGxpc3RzLT5lbmdpbmVbaWRdLm5hbWU7CiAKLQkJc25wcmludGYobmFtZSwgUkVGX05BTUVfTUFYLCAiJXNfUkVGIiwgZW5naW5lLT5uYW1lKTsKLQotCQl3YV9pbml0X3N0YXJ0KHdhbCwgbmFtZSk7CisJCXdhX2luaXRfc3RhcnQod2FsLCAiUkVGIiwgZW5naW5lLT5uYW1lKTsKIAkJZW5naW5lX2luaXRfd29ya2Fyb3VuZHMoZW5naW5lLCB3YWwpOwogCQl3YV9pbml0X2ZpbmlzaCh3YWwpOwogCi0JCXNucHJpbnRmKG5hbWUsIFJFRl9OQU1FX01BWCwgIiVzX0NUWF9SRUYiLCBlbmdpbmUtPm5hbWUpOwotCiAJCV9faW50ZWxfZW5naW5lX2luaXRfY3R4X3dhKGVuZ2luZSwKIAkJCQkJICAgJmxpc3RzLT5lbmdpbmVbaWRdLmN0eF93YV9saXN0LAotCQkJCQkgICBuYW1lKTsKKwkJCQkJICAgIkNUWF9SRUYiKTsKIAl9CiB9CiAKQEAgLTEwMiw3ICs5Niw3IEBAIHJlYWRfbm9ucHJpdnMoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWk5MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAocmVzdWx0KTsKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKHJlc3VsdCk7CiAKLQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShyZXN1bHQsICZlbmdpbmUtPmk5MTUtPmdndHQudm0sIE5VTEwpOworCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKHJlc3VsdCwgJmVuZ2luZS0+Z3QtPmdndHQtPnZtLCBOVUxMKTsKIAlpZiAoSVNfRVJSKHZtYSkpIHsKIAkJZXJyID0gUFRSX0VSUih2bWEpOwogCQlnb3RvIGVycl9vYmo7CkBAIC0xMTksNyArMTEzLDkgQEAgcmVhZF9ub25wcml2cyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJfQogCiAJaTkxNV92bWFfbG9jayh2bWEpOwotCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHZtYSwgcnEsIEVYRUNfT0JKRUNUX1dSSVRFKTsKKwllcnIgPSBpOTE1X3JlcXVlc3RfYXdhaXRfb2JqZWN0KHJxLCB2bWEtPm9iaiwgdHJ1ZSk7CisJaWYgKGVyciA9PSAwKQorCQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCBFWEVDX09CSkVDVF9XUklURSk7CiAJaTkxNV92bWFfdW5sb2NrKHZtYSk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfcmVxOwpAQCAtMTg0LDcgKzE4MCw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfd2hpdGVsaXN0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnJlc3VsdHM7Ci0Jc3RydWN0IGlndF93ZWRnZV9tZSB3ZWRnZTsKKwlzdHJ1Y3QgaW50ZWxfd2VkZ2VfbWUgd2VkZ2U7CiAJdTMyICp2YWRkcjsKIAlpbnQgZXJyOwogCWludCBpOwpAQCAtMTk1LDEwICsxOTEsMTAgQEAgc3RhdGljIGludCBjaGVja193aGl0ZWxpc3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAogCWVyciA9IDA7CiAJaTkxNV9nZW1fb2JqZWN0X2xvY2socmVzdWx0cyk7Ci0JaWd0X3dlZGdlX29uX3RpbWVvdXQoJndlZGdlLCBjdHgtPmk5MTUsIEhaIC8gNSkgLyogYSBzYWZldHkgbmV0ISAqLworCWludGVsX3dlZGdlX29uX3RpbWVvdXQoJndlZGdlLCAmY3R4LT5pOTE1LT5ndCwgSFogLyA1KSAvKiBzYWZldHkgbmV0ISAqLwogCQllcnIgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2NwdV9kb21haW4ocmVzdWx0cywgZmFsc2UpOwogCWk5MTVfZ2VtX29iamVjdF91bmxvY2socmVzdWx0cyk7Ci0JaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoY3R4LT5pOTE1KSkKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKCZjdHgtPmk5MTUtPmd0KSkKIAkJZXJyID0gLUVJTzsKIAlpZiAoZXJyKQogCQlnb3RvIG91dF9wdXQ7CkBAIC0yMzEsMTMgKzIyNywxMyBAQCBzdGF0aWMgaW50IGNoZWNrX3doaXRlbGlzdChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCiBzdGF0aWMgaW50IGRvX2RldmljZV9yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0JaTkxNV9yZXNldChlbmdpbmUtPmk5MTUsIGVuZ2luZS0+bWFzaywgImxpdmVfd29ya2Fyb3VuZHMiKTsKKwlpbnRlbF9ndF9yZXNldChlbmdpbmUtPmd0LCBlbmdpbmUtPm1hc2ssICJsaXZlX3dvcmthcm91bmRzIik7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZG9fZW5naW5lX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlyZXR1cm4gaTkxNV9yZXNldF9lbmdpbmUoZW5naW5lLCAibGl2ZV93b3JrYXJvdW5kcyIpOworCXJldHVybiBpbnRlbF9lbmdpbmVfcmVzZXQoZW5naW5lLCAibGl2ZV93b3JrYXJvdW5kcyIpOwogfQogCiBzdGF0aWMgaW50CkBAIC0yNDUsNiArMjQxLDcgQEAgc3dpdGNoX3RvX3NjcmF0Y2hfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkgIHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3BpbikKIHsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAlpbnQgZXJyID0gMDsKQEAgLTI1NSwxMCArMjUyLDE0IEBAIHN3aXRjaF90b19zY3JhdGNoX2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiAJR0VNX0JVR19PTihpOTE1X2dlbV9jb250ZXh0X2lzX2Jhbm5hYmxlKGN0eCkpOwogCisJY2UgPSBpOTE1X2dlbV9jb250ZXh0X2dldF9lbmdpbmUoY3R4LCBlbmdpbmUtPmxlZ2FjeV9pZHgpOworCUdFTV9CVUdfT04oSVNfRVJSKGNlKSk7CisKIAlycSA9IEVSUl9QVFIoLUVOT0RFVik7CiAJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZlbmdpbmUtPmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCi0JCXJxID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3Qoc3BpbiwgY3R4LCBlbmdpbmUsIE1JX05PT1ApOworCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KHNwaW4sIGNlLCBNSV9OT09QKTsKIAorCWludGVsX2NvbnRleHRfcHV0KGNlKTsKIAlrZXJuZWxfY29udGV4dF9jbG9zZShjdHgpOwogCiAJaWYgKElTX0VSUihycSkpIHsKQEAgLTI4Niw2NCArMjg3LDY3IEBAIHN0YXRpYyBpbnQgY2hlY2tfd2hpdGVsaXN0X2Fjcm9zc19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkJCWNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7Ci0Jc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCAqdG1wOwogCXN0cnVjdCBpZ3Rfc3Bpbm5lciBzcGluOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCWludCBlcnI7CiAKLQlwcl9pbmZvKCJDaGVja2luZyAlZCB3aGl0ZWxpc3RlZCByZWdpc3RlcnMgKFJJTkdfTk9OUFJJVikgWyVzXVxuIiwKLQkJZW5naW5lLT53aGl0ZWxpc3QuY291bnQsIG5hbWUpOwotCi0JZXJyID0gaWd0X3NwaW5uZXJfaW5pdCgmc3BpbiwgaTkxNSk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKKwlwcl9pbmZvKCJDaGVja2luZyAlZCB3aGl0ZWxpc3RlZCByZWdpc3RlcnMgb24gJXMgKFJJTkdfTk9OUFJJVikgWyVzXVxuIiwKKwkJZW5naW5lLT53aGl0ZWxpc3QuY291bnQsIGVuZ2luZS0+bmFtZSwgbmFtZSk7CiAKIAljdHggPSBrZXJuZWxfY29udGV4dChpOTE1KTsKIAlpZiAoSVNfRVJSKGN0eCkpCiAJCXJldHVybiBQVFJfRVJSKGN0eCk7CiAKKwllcnIgPSBpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluLCBlbmdpbmUtPmd0KTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dF9jdHg7CisKIAllcnIgPSBjaGVja193aGl0ZWxpc3QoY3R4LCBlbmdpbmUpOwogCWlmIChlcnIpIHsKIAkJcHJfZXJyKCJJbnZhbGlkIHdoaXRlbGlzdCAqYmVmb3JlKiAlcyByZXNldCFcbiIsIG5hbWUpOwotCQlnb3RvIG91dDsKKwkJZ290byBvdXRfc3BpbjsKIAl9CiAKIAllcnIgPSBzd2l0Y2hfdG9fc2NyYXRjaF9jb250ZXh0KGVuZ2luZSwgJnNwaW4pOwogCWlmIChlcnIpCi0JCWdvdG8gb3V0OworCQlnb3RvIG91dF9zcGluOwogCiAJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQllcnIgPSByZXNldChlbmdpbmUpOwogCiAJaWd0X3NwaW5uZXJfZW5kKCZzcGluKTsKLQlpZ3Rfc3Bpbm5lcl9maW5pKCZzcGluKTsKIAogCWlmIChlcnIpIHsKIAkJcHJfZXJyKCIlcyByZXNldCBmYWlsZWRcbiIsIG5hbWUpOwotCQlnb3RvIG91dDsKKwkJZ290byBvdXRfc3BpbjsKIAl9CiAKIAllcnIgPSBjaGVja193aGl0ZWxpc3QoY3R4LCBlbmdpbmUpOwogCWlmIChlcnIpIHsKIAkJcHJfZXJyKCJXaGl0ZWxpc3Qgbm90IHByZXNlcnZlZCBpbiBjb250ZXh0IGFjcm9zcyAlcyByZXNldCFcbiIsCiAJCSAgICAgICBuYW1lKTsKLQkJZ290byBvdXQ7CisJCWdvdG8gb3V0X3NwaW47CiAJfQogCisJdG1wID0ga2VybmVsX2NvbnRleHQoaTkxNSk7CisJaWYgKElTX0VSUih0bXApKSB7CisJCWVyciA9IFBUUl9FUlIodG1wKTsKKwkJZ290byBvdXRfc3BpbjsKKwl9CiAJa2VybmVsX2NvbnRleHRfY2xvc2UoY3R4KTsKLQotCWN0eCA9IGtlcm5lbF9jb250ZXh0KGk5MTUpOwotCWlmIChJU19FUlIoY3R4KSkKLQkJcmV0dXJuIFBUUl9FUlIoY3R4KTsKKwljdHggPSB0bXA7CiAKIAllcnIgPSBjaGVja193aGl0ZWxpc3QoY3R4LCBlbmdpbmUpOwogCWlmIChlcnIpIHsKIAkJcHJfZXJyKCJJbnZhbGlkIHdoaXRlbGlzdCAqYWZ0ZXIqICVzIHJlc2V0IGluIGZyZXNoIGNvbnRleHQhXG4iLAogCQkgICAgICAgbmFtZSk7Ci0JCWdvdG8gb3V0OworCQlnb3RvIG91dF9zcGluOwogCX0KIAotb3V0Ogorb3V0X3NwaW46CisJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbik7CitvdXRfY3R4OgogCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7CiAJcmV0dXJuIGVycjsKIH0KQEAgLTM5Myw2ICszOTcsMTAgQEAgc3RhdGljIGJvb2wgd29fcmVnaXN0ZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgcmVnKQogCWVudW0gaW50ZWxfcGxhdGZvcm0gcGxhdGZvcm0gPSBJTlRFTF9JTkZPKGVuZ2luZS0+aTkxNSktPnBsYXRmb3JtOwogCWludCBpOwogCisJaWYgKChyZWcgJiBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUNDRVNTX01BU0spID09CisJICAgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUNDRVNTX1dSKQorCQlyZXR1cm4gdHJ1ZTsKKwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdvX3JlZ2lzdGVycyk7IGkrKykgewogCQlpZiAod29fcmVnaXN0ZXJzW2ldLnBsYXRmb3JtID09IHBsYXRmb3JtICYmCiAJCSAgICB3b19yZWdpc3RlcnNbaV0ucmVnID09IHJlZykKQEAgLTQwNCw3ICs0MTIsOCBAQCBzdGF0aWMgYm9vbCB3b19yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiByZWcpCiAKIHN0YXRpYyBib29sIHJvX3JlZ2lzdGVyKHUzMiByZWcpCiB7Ci0JaWYgKHJlZyAmIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9SRCkKKwlpZiAoKHJlZyAmIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfTUFTSykgPT0KKwkgICAgIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfUkQpCiAJCXJldHVybiB0cnVlOwogCiAJcmV0dXJuIGZhbHNlOwpAQCAtNDc2LDEyICs0ODUsMTIgQEAgc3RhdGljIGludCBjaGVja19kaXJ0eV93aGl0ZWxpc3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJdTMyIHNybSwgbHJtLCByc3ZkOwogCQl1MzIgZXhwZWN0OwogCQlpbnQgaWR4OworCQlib29sIHJvX3JlZzsKIAogCQlpZiAod29fcmVnaXN0ZXIoZW5naW5lLCByZWcpKQogCQkJY29udGludWU7CiAKLQkJaWYgKHJvX3JlZ2lzdGVyKHJlZykpCi0JCQljb250aW51ZTsKKwkJcm9fcmVnID0gcm9fcmVnaXN0ZXIocmVnKTsKIAogCQlzcm0gPSBNSV9TVE9SRV9SRUdJU1RFUl9NRU07CiAJCWxybSA9IE1JX0xPQURfUkVHSVNURVJfTUVNOwpAQCAtNTQyLDcgKzU1MSw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfZGlydHlfd2hpdGVsaXN0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAKIAkJaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX21hcChiYXRjaC0+b2JqKTsKIAkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChiYXRjaC0+b2JqKTsKLQkJaTkxNV9nZW1fY2hpcHNldF9mbHVzaChjdHgtPmk5MTUpOworCQlpbnRlbF9ndF9jaGlwc2V0X2ZsdXNoKGVuZ2luZS0+Z3QpOwogCiAJCXJxID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4LCBlbmdpbmUpOwogCQlpZiAoSVNfRVJSKHJxKSkgewpAQCAtNTcwLDcgKzU3OSw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfZGlydHlfd2hpdGVsaXN0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgSFogLyA1KSA8IDApIHsKIAkJCXByX2VycigiJXM6IEZ1dHppbmcgJXggdGltZWRvdXQ7IGNhbmNlbGxpbmcgdGVzdFxuIiwKIAkJCSAgICAgICBlbmdpbmUtPm5hbWUsIHJlZyk7Ci0JCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGN0eC0+aTkxNSk7CisJCQlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZjdHgtPmk5MTUtPmd0KTsKIAkJCWVyciA9IC1FSU87CiAJCQlnb3RvIG91dF9iYXRjaDsKIAkJfQpAQCAtNTgyLDI0ICs1OTEsMzUgQEAgc3RhdGljIGludCBjaGVja19kaXJ0eV93aGl0ZWxpc3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJfQogCiAJCUdFTV9CVUdfT04odmFsdWVzW0FSUkFZX1NJWkUodmFsdWVzKSAtIDFdICE9IDB4ZmZmZmZmZmYpOwotCQlyc3ZkID0gcmVzdWx0c1tBUlJBWV9TSVpFKHZhbHVlcyldOyAvKiBkZXRlY3Qgd3JpdGUgbWFza2luZyAqLwotCQlpZiAoIXJzdmQpIHsKLQkJCXByX2VycigiJXM6IFVuYWJsZSB0byB3cml0ZSB0byB3aGl0ZWxpc3RlZCByZWdpc3RlciAleFxuIiwKLQkJCSAgICAgICBlbmdpbmUtPm5hbWUsIHJlZyk7Ci0JCQllcnIgPSAtRUlOVkFMOwotCQkJZ290byBvdXRfdW5waW47CisJCWlmICghcm9fcmVnKSB7CisJCQkvKiBkZXRlY3Qgd3JpdGUgbWFza2luZyAqLworCQkJcnN2ZCA9IHJlc3VsdHNbQVJSQVlfU0laRSh2YWx1ZXMpXTsKKwkJCWlmICghcnN2ZCkgeworCQkJCXByX2VycigiJXM6IFVuYWJsZSB0byB3cml0ZSB0byB3aGl0ZWxpc3RlZCByZWdpc3RlciAleFxuIiwKKwkJCQkgICAgICAgZW5naW5lLT5uYW1lLCByZWcpOworCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJZ290byBvdXRfdW5waW47CisJCQl9CiAJCX0KIAogCQlleHBlY3QgPSByZXN1bHRzWzBdOwogCQlpZHggPSAxOwogCQlmb3IgKHYgPSAwOyB2IDwgQVJSQVlfU0laRSh2YWx1ZXMpOyB2KyspIHsKLQkJCWV4cGVjdCA9IHJlZ193cml0ZShleHBlY3QsIHZhbHVlc1t2XSwgcnN2ZCk7CisJCQlpZiAocm9fcmVnKQorCQkJCWV4cGVjdCA9IHJlc3VsdHNbMF07CisJCQllbHNlCisJCQkJZXhwZWN0ID0gcmVnX3dyaXRlKGV4cGVjdCwgdmFsdWVzW3ZdLCByc3ZkKTsKKwogCQkJaWYgKHJlc3VsdHNbaWR4XSAhPSBleHBlY3QpCiAJCQkJZXJyKys7CiAJCQlpZHgrKzsKIAkJfQogCQlmb3IgKHYgPSAwOyB2IDwgQVJSQVlfU0laRSh2YWx1ZXMpOyB2KyspIHsKLQkJCWV4cGVjdCA9IHJlZ193cml0ZShleHBlY3QsIH52YWx1ZXNbdl0sIHJzdmQpOworCQkJaWYgKHJvX3JlZykKKwkJCQlleHBlY3QgPSByZXN1bHRzWzBdOworCQkJZWxzZQorCQkJCWV4cGVjdCA9IHJlZ193cml0ZShleHBlY3QsIH52YWx1ZXNbdl0sIHJzdmQpOworCiAJCQlpZiAocmVzdWx0c1tpZHhdICE9IGV4cGVjdCkKIAkJCQllcnIrKzsKIAkJCWlkeCsrOwpAQCAtNjA4LDE1ICs2MjgsMjIgQEAgc3RhdGljIGludCBjaGVja19kaXJ0eV93aGl0ZWxpc3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJCXByX2VycigiJXM6ICVkIG1pc21hdGNoIGJldHdlZW4gdmFsdWVzIHdyaXR0ZW4gdG8gd2hpdGVsaXN0ZWQgcmVnaXN0ZXIgWyV4XSwgYW5kIHZhbHVlcyByZWFkIGJhY2shXG4iLAogCQkJICAgICAgIGVuZ2luZS0+bmFtZSwgZXJyLCByZWcpOwogCi0JCQlwcl9pbmZvKCIlczogV2hpdGVsaXN0ZWQgcmVnaXN0ZXI6ICV4LCBvcmlnaW5hbCB2YWx1ZSAlMDh4LCByc3ZkICUwOHhcbiIsCi0JCQkJZW5naW5lLT5uYW1lLCByZWcsIHJlc3VsdHNbMF0sIHJzdmQpOworCQkJaWYgKHJvX3JlZykKKwkJCQlwcl9pbmZvKCIlczogV2hpdGVsaXN0ZWQgcmVhZC1vbmx5IHJlZ2lzdGVyOiAleCwgb3JpZ2luYWwgdmFsdWUgJTA4eFxuIiwKKwkJCQkJZW5naW5lLT5uYW1lLCByZWcsIHJlc3VsdHNbMF0pOworCQkJZWxzZQorCQkJCXByX2luZm8oIiVzOiBXaGl0ZWxpc3RlZCByZWdpc3RlcjogJXgsIG9yaWdpbmFsIHZhbHVlICUwOHgsIHJzdmQgJTA4eFxuIiwKKwkJCQkJZW5naW5lLT5uYW1lLCByZWcsIHJlc3VsdHNbMF0sIHJzdmQpOwogCiAJCQlleHBlY3QgPSByZXN1bHRzWzBdOwogCQkJaWR4ID0gMTsKIAkJCWZvciAodiA9IDA7IHYgPCBBUlJBWV9TSVpFKHZhbHVlcyk7IHYrKykgewogCQkJCXUzMiB3ID0gdmFsdWVzW3ZdOwogCi0JCQkJZXhwZWN0ID0gcmVnX3dyaXRlKGV4cGVjdCwgdywgcnN2ZCk7CisJCQkJaWYgKHJvX3JlZykKKwkJCQkJZXhwZWN0ID0gcmVzdWx0c1swXTsKKwkJCQllbHNlCisJCQkJCWV4cGVjdCA9IHJlZ193cml0ZShleHBlY3QsIHcsIHJzdmQpOwogCQkJCXByX2luZm8oIldyb3RlICUwOHgsIHJlYWQgJTA4eCwgZXhwZWN0ICUwOHhcbiIsCiAJCQkJCXcsIHJlc3VsdHNbaWR4XSwgZXhwZWN0KTsKIAkJCQlpZHgrKzsKQEAgLTYyNCw3ICs2NTEsMTAgQEAgc3RhdGljIGludCBjaGVja19kaXJ0eV93aGl0ZWxpc3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJCWZvciAodiA9IDA7IHYgPCBBUlJBWV9TSVpFKHZhbHVlcyk7IHYrKykgewogCQkJCXUzMiB3ID0gfnZhbHVlc1t2XTsKIAotCQkJCWV4cGVjdCA9IHJlZ193cml0ZShleHBlY3QsIHcsIHJzdmQpOworCQkJCWlmIChyb19yZWcpCisJCQkJCWV4cGVjdCA9IHJlc3VsdHNbMF07CisJCQkJZWxzZQorCQkJCQlleHBlY3QgPSByZWdfd3JpdGUoZXhwZWN0LCB3LCByc3ZkKTsKIAkJCQlwcl9pbmZvKCJXcm90ZSAlMDh4LCByZWFkICUwOHgsIGV4cGVjdCAlMDh4XG4iLAogCQkJCQl3LCByZXN1bHRzW2lkeF0sIGV4cGVjdCk7CiAJCQkJaWR4Kys7CkBAIC03MDcsNyArNzM3LDcgQEAgc3RhdGljIGludCBsaXZlX3Jlc2V0X3doaXRlbGlzdCh2b2lkICphcmcpCiAJaWYgKCFlbmdpbmUgfHwgZW5naW5lLT53aGl0ZWxpc3QuY291bnQgPT0gMCkKIAkJcmV0dXJuIDA7CiAKLQlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF9sb2NrKCZpOTE1LT5ndCk7CiAKIAlpZiAoaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShpOTE1KSkgewogCQllcnIgPSBjaGVja193aGl0ZWxpc3RfYWNyb3NzX3Jlc2V0KGVuZ2luZSwKQEAgLTcyNiw3ICs3NTYsNyBAQCBzdGF0aWMgaW50IGxpdmVfcmVzZXRfd2hpdGVsaXN0KHZvaWQgKmFyZykKIAl9CiAKIG91dDoKLQlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhpOTE1KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jaygmaTkxNS0+Z3QpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTc1Niw4ICs3ODYsOCBAQCBzdGF0aWMgaW50IHJlYWRfd2hpdGVsaXN0ZWRfcmVnaXN0ZXJzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCXU2NCBvZmZzZXQgPSByZXN1bHRzLT5ub2RlLnN0YXJ0ICsgc2l6ZW9mKHUzMikgKiBpOwogCQl1MzIgcmVnID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoZW5naW5lLT53aGl0ZWxpc3QubGlzdFtpXS5yZWcpOwogCi0JCS8qIENsZWFyIFJEIG9ubHkgYW5kIFdSIG9ubHkgZmxhZ3MgKi8KLQkJcmVnICY9IH4oUklOR19GT1JDRV9UT19OT05QUklWX1JEIHwgUklOR19GT1JDRV9UT19OT05QUklWX1dSKTsKKwkJLyogQ2xlYXIgYWNjZXNzIHBlcm1pc3Npb24gZmllbGQgKi8KKwkJcmVnICY9IH5SSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUNDRVNTX01BU0s7CiAKIAkJKmNzKysgPSBzcm07CiAJCSpjcysrID0gcmVnOwpAQCAtODA2LDcgKzgzNiw3IEBAIHN0YXRpYyBpbnQgc2NydWJfd2hpdGVsaXN0ZWRfcmVnaXN0ZXJzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJKmNzKysgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwogCiAJaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX21hcChiYXRjaC0+b2JqKTsKLQlpOTE1X2dlbV9jaGlwc2V0X2ZsdXNoKGN0eC0+aTkxNSk7CisJaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChlbmdpbmUtPmd0KTsKIAogCXJxID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4LCBlbmdpbmUpOwogCWlmIChJU19FUlIocnEpKSB7CkBAIC05MjcsNyArOTU3LDggQEAgY2hlY2tfd2hpdGVsaXN0ZWRfcmVnaXN0ZXJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlmb3IgKGkgPSAwOyBpIDwgZW5naW5lLT53aGl0ZWxpc3QuY291bnQ7IGkrKykgewogCQljb25zdCBzdHJ1Y3QgaTkxNV93YSAqd2EgPSAmZW5naW5lLT53aGl0ZWxpc3QubGlzdFtpXTsKIAotCQlpZiAoaTkxNV9tbWlvX3JlZ19vZmZzZXQod2EtPnJlZykgJiBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkQpCisJCWlmIChpOTE1X21taW9fcmVnX29mZnNldCh3YS0+cmVnKSAmCisJCSAgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUNDRVNTX1JEKQogCQkJY29udGludWU7CiAKIAkJaWYgKCFmbihlbmdpbmUsIGFbaV0sIGJbaV0sIHdhLT5yZWcpKQpAQCAtMTA2MCw3ICsxMDkxLDcgQEAgdmVyaWZ5X3dhX2xpc3RzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsIHN0cnVjdCB3YV9saXN0cyAqbGlzdHMsCiAKIAlvayAmPSB3YV9saXN0X3ZlcmlmeSgmaTkxNS0+dW5jb3JlLCAmbGlzdHMtPmd0X3dhX2xpc3QsIHN0cik7CiAKLQlmb3JfZWFjaF9nZW1fZW5naW5lKGNlLCBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhjdHgpLCBpdCkgeworCWZvcl9lYWNoX2dlbV9lbmdpbmUoY2UsIGk5MTVfZ2VtX2NvbnRleHRfZW5naW5lcyhjdHgpLCBpdCkgewogCQllbnVtIGludGVsX2VuZ2luZV9pZCBpZCA9IGNlLT5lbmdpbmUtPmlkOwogCiAJCW9rICY9IGVuZ2luZV93YV9saXN0X3ZlcmlmeShjZSwKQEAgLTEwNzEsNyArMTEwMiw2IEBAIHZlcmlmeV93YV9saXN0cyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBzdHJ1Y3Qgd2FfbGlzdHMgKmxpc3RzLAogCQkJCQkgICAgJmxpc3RzLT5lbmdpbmVbaWRdLmN0eF93YV9saXN0LAogCQkJCQkgICAgc3RyKSA9PSAwOwogCX0KLQlpOTE1X2dlbV9jb250ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7CiAKIAlyZXR1cm4gb2s7CiB9CkBAIC0xMDkyLDkgKzExMjIsMTEgQEAgbGl2ZV9ncHVfcmVzZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCWlmIChJU19FUlIoY3R4KSkKIAkJcmV0dXJuIFBUUl9FUlIoY3R4KTsKIAorCWk5MTVfZ2VtX2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCk7CisKIAlwcl9pbmZvKCJWZXJpZnlpbmcgYWZ0ZXIgR1BVIHJlc2V0Li4uXG4iKTsKIAotCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soJmk5MTUtPmd0KTsKIAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJcmVmZXJlbmNlX2xpc3RzX2luaXQoaTkxNSwgJmxpc3RzKTsKQEAgLTExMDMsMTUgKzExMzUsMTYgQEAgbGl2ZV9ncHVfcmVzZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCWlmICghb2spCiAJCWdvdG8gb3V0OwogCi0JaTkxNV9yZXNldChpOTE1LCBBTExfRU5HSU5FUywgImxpdmVfd29ya2Fyb3VuZHMiKTsKKwlpbnRlbF9ndF9yZXNldCgmaTkxNS0+Z3QsIEFMTF9FTkdJTkVTLCAibGl2ZV93b3JrYXJvdW5kcyIpOwogCiAJb2sgPSB2ZXJpZnlfd2FfbGlzdHMoY3R4LCAmbGlzdHMsICJhZnRlciByZXNldCIpOwogCiBvdXQ6CisJaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOwogCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7CiAJcmVmZXJlbmNlX2xpc3RzX2ZpbmkoaTkxNSwgJmxpc3RzKTsKIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7Ci0JaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soJmk5MTUtPmd0KTsKIAogCXJldHVybiBvayA/IDAgOiAtRVNSQ0g7CiB9CkBAIC0xMTIwLDEwICsxMTUzLDEwIEBAIHN0YXRpYyBpbnQKIGxpdmVfZW5naW5lX3Jlc2V0X3dvcmthcm91bmRzKHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKIAlzdHJ1Y3QgaWd0X3NwaW5uZXIgc3BpbjsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAlzdHJ1Y3Qgd2FfbGlzdHMgbGlzdHM7CkBAIC0xMTM2LDEyICsxMTY5LDEzIEBAIGxpdmVfZW5naW5lX3Jlc2V0X3dvcmthcm91bmRzKHZvaWQgKmFyZykKIAlpZiAoSVNfRVJSKGN0eCkpCiAJCXJldHVybiBQVFJfRVJSKGN0eCk7CiAKLQlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF9sb2NrKCZpOTE1LT5ndCk7CiAJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCXJlZmVyZW5jZV9saXN0c19pbml0KGk5MTUsICZsaXN0cyk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgeworCWZvcl9lYWNoX2dlbV9lbmdpbmUoY2UsIGk5MTVfZ2VtX2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCksIGl0KSB7CisJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGNlLT5lbmdpbmU7CiAJCWJvb2wgb2s7CiAKIAkJcHJfaW5mbygiVmVyaWZ5aW5nIGFmdGVyICVzIHJlc2V0Li4uXG4iLCBlbmdpbmUtPm5hbWUpOwpAQCAtMTE1Miw3ICsxMTg2LDcgQEAgbGl2ZV9lbmdpbmVfcmVzZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCQkJZ290byBlcnI7CiAJCX0KIAotCQlpOTE1X3Jlc2V0X2VuZ2luZShlbmdpbmUsICJsaXZlX3dvcmthcm91bmRzIik7CisJCWludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsICJsaXZlX3dvcmthcm91bmRzIik7CiAKIAkJb2sgPSB2ZXJpZnlfd2FfbGlzdHMoY3R4LCAmbGlzdHMsICJhZnRlciBpZGxlIHJlc2V0Iik7CiAJCWlmICghb2spIHsKQEAgLTExNjAsMTEgKzExOTQsMTEgQEAgbGl2ZV9lbmdpbmVfcmVzZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCQkJZ290byBlcnI7CiAJCX0KIAotCQlyZXQgPSBpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluLCBpOTE1KTsKKwkJcmV0ID0gaWd0X3NwaW5uZXJfaW5pdCgmc3BpbiwgZW5naW5lLT5ndCk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycjsKIAotCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluLCBjdHgsIGVuZ2luZSwgTUlfTk9PUCk7CisJCXJxID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJnNwaW4sIGNlLCBNSV9OT09QKTsKIAkJaWYgKElTX0VSUihycSkpIHsKIAkJCXJldCA9IFBUUl9FUlIocnEpOwogCQkJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbik7CkBAIC0xMTgwLDcgKzEyMTQsNyBAQCBsaXZlX2VuZ2luZV9yZXNldF93b3JrYXJvdW5kcyh2b2lkICphcmcpCiAJCQlnb3RvIGVycjsKIAkJfQogCi0JCWk5MTVfcmVzZXRfZW5naW5lKGVuZ2luZSwgImxpdmVfd29ya2Fyb3VuZHMiKTsKKwkJaW50ZWxfZW5naW5lX3Jlc2V0KGVuZ2luZSwgImxpdmVfd29ya2Fyb3VuZHMiKTsKIAogCQlpZ3Rfc3Bpbm5lcl9lbmQoJnNwaW4pOwogCQlpZ3Rfc3Bpbm5lcl9maW5pKCZzcGluKTsKQEAgLTExOTEsMTEgKzEyMjUsMTEgQEAgbGl2ZV9lbmdpbmVfcmVzZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCQkJZ290byBlcnI7CiAJCX0KIAl9Ci0KIGVycjoKKwlpOTE1X2dlbV9jb250ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7CiAJcmVmZXJlbmNlX2xpc3RzX2ZpbmkoaTkxNSwgJmxpc3RzKTsKIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7Ci0JaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soJmk5MTUtPmd0KTsKIAlrZXJuZWxfY29udGV4dF9jbG9zZShjdHgpOwogCiAJaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7CkBAIC0xMjE0LDcgKzEyNDgsNyBAQCBpbnQgaW50ZWxfd29ya2Fyb3VuZHNfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJfTsKIAlpbnQgZXJyOwogCi0JaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNSkpCisJaWYgKGludGVsX2d0X2lzX3dlZGdlZCgmaTkxNS0+Z3QpKQogCQlyZXR1cm4gMDsKIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RzL21vY2tfdGltZWxpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk4MTcwZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxNy0yMDE4IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgIi4uL2ludGVsX3RpbWVsaW5lLmgiCisKKyNpbmNsdWRlICJtb2NrX3RpbWVsaW5lLmgiCisKK3ZvaWQgbW9ja190aW1lbGluZV9pbml0KHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmUsIHU2NCBjb250ZXh0KQoreworCXRpbWVsaW5lLT5ndCA9IE5VTEw7CisJdGltZWxpbmUtPmZlbmNlX2NvbnRleHQgPSBjb250ZXh0OworCisJbXV0ZXhfaW5pdCgmdGltZWxpbmUtPm11dGV4KTsKKworCUlOSVRfQUNUSVZFX1JFUVVFU1QoJnRpbWVsaW5lLT5sYXN0X3JlcXVlc3QsICZ0aW1lbGluZS0+bXV0ZXgpOworCUlOSVRfTElTVF9IRUFEKCZ0aW1lbGluZS0+cmVxdWVzdHMpOworCisJaTkxNV9zeW5jbWFwX2luaXQoJnRpbWVsaW5lLT5zeW5jKTsKKworCUlOSVRfTElTVF9IRUFEKCZ0aW1lbGluZS0+bGluayk7Cit9CisKK3ZvaWQgbW9ja190aW1lbGluZV9maW5pKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmUpCit7CisJaTkxNV9zeW5jbWFwX2ZyZWUoJnRpbWVsaW5lLT5zeW5jKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdHMvbW9ja190aW1lbGluZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4OWVmYzYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdHMvbW9ja190aW1lbGluZS5oCkBAIC0wLDAgKzEsMTUgQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisgKgorICogQ29weXJpZ2h0IMKpIDIwMTctMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19NT0NLX1RJTUVMSU5FX18KKyNkZWZpbmUgX19NT0NLX1RJTUVMSU5FX18KKworc3RydWN0IGludGVsX3RpbWVsaW5lOworCit2b2lkIG1vY2tfdGltZWxpbmVfaW5pdChzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lLCB1NjQgY29udGV4dCk7Cit2b2lkIG1vY2tfdGltZWxpbmVfZmluaShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lKTsKKworI2VuZGlmIC8qICFfX01PQ0tfVElNRUxJTkVfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWM5NGQ0MzQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9NYWtlZmlsZQpAQCAtMCwwICsxLDUgQEAKKyMgRm9yIGJ1aWxkaW5nIGluZGl2aWR1YWwgc3ViZGlyIGZpbGVzIG9uIHRoZSBjb21tYW5kIGxpbmUKK3N1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpLyQoc3JjKS8uLi8uLgorCisjIEV4dHJhIGhlYWRlciB0ZXN0cworaGVhZGVyLXRlc3QtcGF0dGVybi0kKENPTkZJR19EUk1fSTkxNV9XRVJST1IpIDo9ICouaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDljNzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmMKQEAgLTAsMCArMSw2MTkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCisjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3VjX2Fkcy5oIgorI2luY2x1ZGUgImludGVsX2d1Y19zdWJtaXNzaW9uLmgiCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKworc3RhdGljIHZvaWQgZ2VuOF9ndWNfcmFpc2VfaXJxKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gZ3VjX3RvX2d0KGd1Yyk7CisKKwlpbnRlbF91bmNvcmVfd3JpdGUoZ3QtPnVuY29yZSwgR1VDX1NFTkRfSU5URVJSVVBULCBHVUNfU0VORF9UUklHR0VSKTsKK30KKworc3RhdGljIHZvaWQgZ2VuMTFfZ3VjX3JhaXNlX2lycShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGd1Y190b19ndChndWMpOworCisJaW50ZWxfdW5jb3JlX3dyaXRlKGd0LT51bmNvcmUsIEdFTjExX0dVQ19IT1NUX0lOVEVSUlVQVCwgMCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaTkxNV9yZWdfdCBndWNfc2VuZF9yZWcoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgaSkKK3sKKwlHRU1fQlVHX09OKCFndWMtPnNlbmRfcmVncy5iYXNlKTsKKwlHRU1fQlVHX09OKCFndWMtPnNlbmRfcmVncy5jb3VudCk7CisJR0VNX0JVR19PTihpID49IGd1Yy0+c2VuZF9yZWdzLmNvdW50KTsKKworCXJldHVybiBfTU1JTyhndWMtPnNlbmRfcmVncy5iYXNlICsgNCAqIGkpOworfQorCit2b2lkIGludGVsX2d1Y19pbml0X3NlbmRfcmVncyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGd1Y190b19ndChndWMpOworCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWlucyA9IDA7CisJdW5zaWduZWQgaW50IGk7CisKKwlpZiAoSU5URUxfR0VOKGd0LT5pOTE1KSA+PSAxMSkgeworCQlndWMtPnNlbmRfcmVncy5iYXNlID0KKwkJCQlpOTE1X21taW9fcmVnX29mZnNldChHRU4xMV9TT0ZUX1NDUkFUQ0goMCkpOworCQlndWMtPnNlbmRfcmVncy5jb3VudCA9IEdFTjExX1NPRlRfU0NSQVRDSF9DT1VOVDsKKwl9IGVsc2UgeworCQlndWMtPnNlbmRfcmVncy5iYXNlID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoU09GVF9TQ1JBVENIKDApKTsKKwkJZ3VjLT5zZW5kX3JlZ3MuY291bnQgPSBHVUNfTUFYX01NSU9fTVNHX0xFTjsKKwkJQlVJTERfQlVHX09OKEdVQ19NQVhfTU1JT19NU0dfTEVOID4gU09GVF9TQ1JBVENIX0NPVU5UKTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgZ3VjLT5zZW5kX3JlZ3MuY291bnQ7IGkrKykgeworCQlmd19kb21haW5zIHw9IGludGVsX3VuY29yZV9mb3JjZXdha2VfZm9yX3JlZyhndC0+dW5jb3JlLAorCQkJCQlndWNfc2VuZF9yZWcoZ3VjLCBpKSwKKwkJCQkJRldfUkVHX1JFQUQgfCBGV19SRUdfV1JJVEUpOworCX0KKwlndWMtPnNlbmRfcmVncy5md19kb21haW5zID0gZndfZG9tYWluczsKK30KKwordm9pZCBpbnRlbF9ndWNfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9fZ3QoZ3VjKS0+aTkxNTsKKworCWludGVsX2d1Y19md19pbml0X2Vhcmx5KGd1Yyk7CisJaW50ZWxfZ3VjX2N0X2luaXRfZWFybHkoJmd1Yy0+Y3QpOworCWludGVsX2d1Y19sb2dfaW5pdF9lYXJseSgmZ3VjLT5sb2cpOworCWludGVsX2d1Y19zdWJtaXNzaW9uX2luaXRfZWFybHkoZ3VjKTsKKworCW11dGV4X2luaXQoJmd1Yy0+c2VuZF9tdXRleCk7CisJc3Bpbl9sb2NrX2luaXQoJmd1Yy0+aXJxX2xvY2spOworCWd1Yy0+c2VuZCA9IGludGVsX2d1Y19zZW5kX25vcDsKKwlndWMtPmhhbmRsZXIgPSBpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyX25vcDsKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDExKSB7CisJCWd1Yy0+bm90aWZ5ID0gZ2VuMTFfZ3VjX3JhaXNlX2lycTsKKwkJZ3VjLT5pbnRlcnJ1cHRzLnJlc2V0ID0gZ2VuMTFfcmVzZXRfZ3VjX2ludGVycnVwdHM7CisJCWd1Yy0+aW50ZXJydXB0cy5lbmFibGUgPSBnZW4xMV9lbmFibGVfZ3VjX2ludGVycnVwdHM7CisJCWd1Yy0+aW50ZXJydXB0cy5kaXNhYmxlID0gZ2VuMTFfZGlzYWJsZV9ndWNfaW50ZXJydXB0czsKKwl9IGVsc2UgeworCQlndWMtPm5vdGlmeSA9IGdlbjhfZ3VjX3JhaXNlX2lycTsKKwkJZ3VjLT5pbnRlcnJ1cHRzLnJlc2V0ID0gZ2VuOV9yZXNldF9ndWNfaW50ZXJydXB0czsKKwkJZ3VjLT5pbnRlcnJ1cHRzLmVuYWJsZSA9IGdlbjlfZW5hYmxlX2d1Y19pbnRlcnJ1cHRzOworCQlndWMtPmludGVycnVwdHMuZGlzYWJsZSA9IGdlbjlfZGlzYWJsZV9ndWNfaW50ZXJydXB0czsKKwl9Cit9CisKK3N0YXRpYyBpbnQgZ3VjX3NoYXJlZF9kYXRhX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdm9pZCAqdmFkZHI7CisKKwl2bWEgPSBpbnRlbF9ndWNfYWxsb2NhdGVfdm1hKGd1YywgUEFHRV9TSVpFKTsKKwlpZiAoSVNfRVJSKHZtYSkpCisJCXJldHVybiBQVFJfRVJSKHZtYSk7CisKKwl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHZtYS0+b2JqLCBJOTE1X01BUF9XQik7CisJaWYgKElTX0VSUih2YWRkcikpIHsKKwkJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJnZtYSwgMCk7CisJCXJldHVybiBQVFJfRVJSKHZhZGRyKTsKKwl9CisKKwlndWMtPnNoYXJlZF9kYXRhID0gdm1hOworCWd1Yy0+c2hhcmVkX2RhdGFfdmFkZHIgPSB2YWRkcjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBndWNfc2hhcmVkX2RhdGFfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmd1Yy0+c2hhcmVkX2RhdGEsIEk5MTVfVk1BX1JFTEVBU0VfTUFQKTsKK30KKworc3RhdGljIHUzMiBndWNfY3RsX2RlYnVnX2ZsYWdzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwl1MzIgbGV2ZWwgPSBpbnRlbF9ndWNfbG9nX2dldF9sZXZlbCgmZ3VjLT5sb2cpOworCXUzMiBmbGFncyA9IDA7CisKKwlpZiAoIUdVQ19MT0dfTEVWRUxfSVNfVkVSQk9TRShsZXZlbCkpCisJCWZsYWdzIHw9IEdVQ19MT0dfRElTQUJMRUQ7CisJZWxzZQorCQlmbGFncyB8PSBHVUNfTE9HX0xFVkVMX1RPX1ZFUkJPU0lUWShsZXZlbCkgPDwKKwkJCSBHVUNfTE9HX1ZFUkJPU0lUWV9TSElGVDsKKworCXJldHVybiBmbGFnczsKK30KKworc3RhdGljIHUzMiBndWNfY3RsX2ZlYXR1cmVfZmxhZ3Moc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXUzMiBmbGFncyA9IDA7CisKKwlpZiAoIWludGVsX2d1Y19pc19zdWJtaXNzaW9uX3N1cHBvcnRlZChndWMpKQorCQlmbGFncyB8PSBHVUNfQ1RMX0RJU0FCTEVfU0NIRURVTEVSOworCisJcmV0dXJuIGZsYWdzOworfQorCitzdGF0aWMgdTMyIGd1Y19jdGxfY3R4aW5mb19mbGFncyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJdTMyIGZsYWdzID0gMDsKKworCWlmIChpbnRlbF9ndWNfaXNfc3VibWlzc2lvbl9zdXBwb3J0ZWQoZ3VjKSkgeworCQl1MzIgY3R4bnVtLCBiYXNlOworCisJCWJhc2UgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBndWMtPnN0YWdlX2Rlc2NfcG9vbCk7CisJCWN0eG51bSA9IEdVQ19NQVhfU1RBR0VfREVTQ1JJUFRPUlMgLyAxNjsKKworCQliYXNlID4+PSBQQUdFX1NISUZUOworCQlmbGFncyB8PSAoYmFzZSA8PCBHVUNfQ1RMX0JBU0VfQUREUl9TSElGVCkgfAorCQkJKGN0eG51bSA8PCBHVUNfQ1RMX0NUWE5VTV9JTjE2X1NISUZUKTsKKwl9CisJcmV0dXJuIGZsYWdzOworfQorCitzdGF0aWMgdTMyIGd1Y19jdGxfbG9nX3BhcmFtc19mbGFncyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJdTMyIG9mZnNldCA9IGludGVsX2d1Y19nZ3R0X29mZnNldChndWMsIGd1Yy0+bG9nLnZtYSkgPj4gUEFHRV9TSElGVDsKKwl1MzIgZmxhZ3M7CisKKwkjaWYgKCgoQ1JBU0hfQlVGRkVSX1NJWkUpICUgU1pfMU0pID09IDApCisJI2RlZmluZSBVTklUIFNaXzFNCisJI2RlZmluZSBGTEFHIEdVQ19MT0dfQUxMT0NfSU5fTUVHQUJZVEUKKwkjZWxzZQorCSNkZWZpbmUgVU5JVCBTWl80SworCSNkZWZpbmUgRkxBRyAwCisJI2VuZGlmCisKKwlCVUlMRF9CVUdfT04oIUNSQVNIX0JVRkZFUl9TSVpFKTsKKwlCVUlMRF9CVUdfT04oIUlTX0FMSUdORUQoQ1JBU0hfQlVGRkVSX1NJWkUsIFVOSVQpKTsKKwlCVUlMRF9CVUdfT04oIURQQ19CVUZGRVJfU0laRSk7CisJQlVJTERfQlVHX09OKCFJU19BTElHTkVEKERQQ19CVUZGRVJfU0laRSwgVU5JVCkpOworCUJVSUxEX0JVR19PTighSVNSX0JVRkZFUl9TSVpFKTsKKwlCVUlMRF9CVUdfT04oIUlTX0FMSUdORUQoSVNSX0JVRkZFUl9TSVpFLCBVTklUKSk7CisKKwlCVUlMRF9CVUdfT04oKENSQVNIX0JVRkZFUl9TSVpFIC8gVU5JVCAtIDEpID4KKwkJCShHVUNfTE9HX0NSQVNIX01BU0sgPj4gR1VDX0xPR19DUkFTSF9TSElGVCkpOworCUJVSUxEX0JVR19PTigoRFBDX0JVRkZFUl9TSVpFIC8gVU5JVCAtIDEpID4KKwkJCShHVUNfTE9HX0RQQ19NQVNLID4+IEdVQ19MT0dfRFBDX1NISUZUKSk7CisJQlVJTERfQlVHX09OKChJU1JfQlVGRkVSX1NJWkUgLyBVTklUIC0gMSkgPgorCQkJKEdVQ19MT0dfSVNSX01BU0sgPj4gR1VDX0xPR19JU1JfU0hJRlQpKTsKKworCWZsYWdzID0gR1VDX0xPR19WQUxJRCB8CisJCUdVQ19MT0dfTk9USUZZX09OX0hBTEZfRlVMTCB8CisJCUZMQUcgfAorCQkoKENSQVNIX0JVRkZFUl9TSVpFIC8gVU5JVCAtIDEpIDw8IEdVQ19MT0dfQ1JBU0hfU0hJRlQpIHwKKwkJKChEUENfQlVGRkVSX1NJWkUgLyBVTklUIC0gMSkgPDwgR1VDX0xPR19EUENfU0hJRlQpIHwKKwkJKChJU1JfQlVGRkVSX1NJWkUgLyBVTklUIC0gMSkgPDwgR1VDX0xPR19JU1JfU0hJRlQpIHwKKwkJKG9mZnNldCA8PCBHVUNfTE9HX0JVRl9BRERSX1NISUZUKTsKKworCSN1bmRlZiBVTklUCisJI3VuZGVmIEZMQUcKKworCXJldHVybiBmbGFnczsKK30KKworc3RhdGljIHUzMiBndWNfY3RsX2Fkc19mbGFncyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJdTMyIGFkcyA9IGludGVsX2d1Y19nZ3R0X29mZnNldChndWMsIGd1Yy0+YWRzX3ZtYSkgPj4gUEFHRV9TSElGVDsKKwl1MzIgZmxhZ3MgPSBhZHMgPDwgR1VDX0FEU19BRERSX1NISUZUOworCisJcmV0dXJuIGZsYWdzOworfQorCisvKgorICogSW5pdGlhbGlzZSB0aGUgR3VDIHBhcmFtZXRlciBibG9jayBiZWZvcmUgc3RhcnRpbmcgdGhlIGZpcm13YXJlCisgKiB0cmFuc2Zlci4gVGhlc2UgcGFyYW1ldGVycyBhcmUgcmVhZCBieSB0aGUgZmlybXdhcmUgb24gc3RhcnR1cAorICogYW5kIGNhbm5vdCBiZSBjaGFuZ2VkIHRoZXJlYWZ0ZXIuCisgKi8KK3N0YXRpYyB2b2lkIGd1Y19pbml0X3BhcmFtcyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJdTMyICpwYXJhbXMgPSBndWMtPnBhcmFtczsKKwlpbnQgaTsKKworCUJVSUxEX0JVR19PTihzaXplb2YoZ3VjLT5wYXJhbXMpICE9IEdVQ19DVExfTUFYX0RXT1JEUyAqIHNpemVvZih1MzIpKTsKKworCXBhcmFtc1tHVUNfQ1RMX0NUWElORk9dID0gZ3VjX2N0bF9jdHhpbmZvX2ZsYWdzKGd1Yyk7CisJcGFyYW1zW0dVQ19DVExfTE9HX1BBUkFNU10gPSBndWNfY3RsX2xvZ19wYXJhbXNfZmxhZ3MoZ3VjKTsKKwlwYXJhbXNbR1VDX0NUTF9GRUFUVVJFXSA9IGd1Y19jdGxfZmVhdHVyZV9mbGFncyhndWMpOworCXBhcmFtc1tHVUNfQ1RMX0RFQlVHXSA9IGd1Y19jdGxfZGVidWdfZmxhZ3MoZ3VjKTsKKwlwYXJhbXNbR1VDX0NUTF9BRFNdID0gZ3VjX2N0bF9hZHNfZmxhZ3MoZ3VjKTsKKworCWZvciAoaSA9IDA7IGkgPCBHVUNfQ1RMX01BWF9EV09SRFM7IGkrKykKKwkJRFJNX0RFQlVHX0RSSVZFUigicGFyYW1bJTJkXSA9ICUjeFxuIiwgaSwgcGFyYW1zW2ldKTsKK30KKworLyoKKyAqIEluaXRpYWxpc2UgdGhlIEd1QyBwYXJhbWV0ZXIgYmxvY2sgYmVmb3JlIHN0YXJ0aW5nIHRoZSBmaXJtd2FyZQorICogdHJhbnNmZXIuIFRoZXNlIHBhcmFtZXRlcnMgYXJlIHJlYWQgYnkgdGhlIGZpcm13YXJlIG9uIHN0YXJ0dXAKKyAqIGFuZCBjYW5ub3QgYmUgY2hhbmdlZCB0aGVyZWFmdGVyLgorICovCit2b2lkIGludGVsX2d1Y193cml0ZV9wYXJhbXMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd1Y190b19ndChndWMpLT51bmNvcmU7CisJaW50IGk7CisKKwkvKgorCSAqIEFsbCBTT0ZUX1NDUkFUQ0ggcmVnaXN0ZXJzIGFyZSBpbiBGT1JDRVdBS0VfQkxJVFRFUiBkb21haW4gYW5kCisJICogdGhleSBhcmUgcG93ZXIgY29udGV4dCBzYXZlZCBzbyBpdCdzIG9rIHRvIHJlbGVhc2UgZm9yY2V3YWtlCisJICogd2hlbiB3ZSBhcmUgZG9uZSBoZXJlIGFuZCB0YWtlIGl0IGFnYWluIGF0IHhmZXIgdGltZS4KKwkgKi8KKwlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCh1bmNvcmUsIEZPUkNFV0FLRV9CTElUVEVSKTsKKworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIFNPRlRfU0NSQVRDSCgwKSwgMCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgR1VDX0NUTF9NQVhfRFdPUkRTOyBpKyspCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIFNPRlRfU0NSQVRDSCgxICsgaSksIGd1Yy0+cGFyYW1zW2ldKTsKKworCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KHVuY29yZSwgRk9SQ0VXQUtFX0JMSVRURVIpOworfQorCitpbnQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBndWNfdG9fZ3QoZ3VjKTsKKwlpbnQgcmV0OworCisJcmV0ID0gaW50ZWxfdWNfZndfaW5pdCgmZ3VjLT5mdyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfZmV0Y2g7CisKKwlyZXQgPSBndWNfc2hhcmVkX2RhdGFfY3JlYXRlKGd1Yyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfZnc7CisJR0VNX0JVR19PTighZ3VjLT5zaGFyZWRfZGF0YSk7CisKKwlyZXQgPSBpbnRlbF9ndWNfbG9nX2NyZWF0ZSgmZ3VjLT5sb2cpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3NoYXJlZDsKKworCXJldCA9IGludGVsX2d1Y19hZHNfY3JlYXRlKGd1Yyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfbG9nOworCUdFTV9CVUdfT04oIWd1Yy0+YWRzX3ZtYSk7CisKKwlyZXQgPSBpbnRlbF9ndWNfY3RfaW5pdCgmZ3VjLT5jdCk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfYWRzOworCisJaWYgKGludGVsX2d1Y19pc19zdWJtaXNzaW9uX3N1cHBvcnRlZChndWMpKSB7CisJCS8qCisJCSAqIFRoaXMgaXMgc3R1ZmYgd2UgbmVlZCB0byBoYXZlIGF2YWlsYWJsZSBhdCBmdyBsb2FkIHRpbWUKKwkJICogaWYgd2UgYXJlIHBsYW5uaW5nIHRvIGVuYWJsZSBzdWJtaXNzaW9uIGxhdGVyCisJCSAqLworCQlyZXQgPSBpbnRlbF9ndWNfc3VibWlzc2lvbl9pbml0KGd1Yyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl9jdDsKKwl9CisKKwkvKiBub3cgdGhhdCBldmVyeXRoaW5nIGlzIHBlcm1hLXBpbm5lZCwgaW5pdGlhbGl6ZSB0aGUgcGFyYW1ldGVycyAqLworCWd1Y19pbml0X3BhcmFtcyhndWMpOworCisJLyogV2UgbmVlZCB0byBub3RpZnkgdGhlIGd1YyB3aGVuZXZlciB3ZSBjaGFuZ2UgdGhlIEdHVFQgKi8KKwlpOTE1X2dndHRfZW5hYmxlX2d1YyhndC0+Z2d0dCk7CisKKwlyZXR1cm4gMDsKKworZXJyX2N0OgorCWludGVsX2d1Y19jdF9maW5pKCZndWMtPmN0KTsKK2Vycl9hZHM6CisJaW50ZWxfZ3VjX2Fkc19kZXN0cm95KGd1Yyk7CitlcnJfbG9nOgorCWludGVsX2d1Y19sb2dfZGVzdHJveSgmZ3VjLT5sb2cpOworZXJyX3NoYXJlZDoKKwlndWNfc2hhcmVkX2RhdGFfZGVzdHJveShndWMpOworZXJyX2Z3OgorCWludGVsX3VjX2Z3X2ZpbmkoJmd1Yy0+ZncpOworZXJyX2ZldGNoOgorCWludGVsX3VjX2Z3X2NsZWFudXBfZmV0Y2goJmd1Yy0+ZncpOworCURSTV9ERVZfREVCVUdfRFJJVkVSKGd0LT5pOTE1LT5kcm0uZGV2LCAiZmFpbGVkIHdpdGggJWRcbiIsIHJldCk7CisJcmV0dXJuIHJldDsKK30KKwordm9pZCBpbnRlbF9ndWNfZmluaShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGd1Y190b19ndChndWMpOworCisJaWYgKCFpbnRlbF91Y19md19pc19hdmFpbGFibGUoJmd1Yy0+ZncpKQorCQlyZXR1cm47CisKKwlpOTE1X2dndHRfZGlzYWJsZV9ndWMoZ3QtPmdndHQpOworCisJaWYgKGludGVsX2d1Y19pc19zdWJtaXNzaW9uX3N1cHBvcnRlZChndWMpKQorCQlpbnRlbF9ndWNfc3VibWlzc2lvbl9maW5pKGd1Yyk7CisKKwlpbnRlbF9ndWNfY3RfZmluaSgmZ3VjLT5jdCk7CisKKwlpbnRlbF9ndWNfYWRzX2Rlc3Ryb3koZ3VjKTsKKwlpbnRlbF9ndWNfbG9nX2Rlc3Ryb3koJmd1Yy0+bG9nKTsKKwlndWNfc2hhcmVkX2RhdGFfZGVzdHJveShndWMpOworCWludGVsX3VjX2Z3X2ZpbmkoJmd1Yy0+ZncpOworCWludGVsX3VjX2Z3X2NsZWFudXBfZmV0Y2goJmd1Yy0+ZncpOworfQorCitpbnQgaW50ZWxfZ3VjX3NlbmRfbm9wKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sCisJCSAgICAgICB1MzIgKnJlc3BvbnNlX2J1ZiwgdTMyIHJlc3BvbnNlX2J1Zl9zaXplKQoreworCVdBUk4oMSwgIlVuZXhwZWN0ZWQgc2VuZDogYWN0aW9uPSUjeFxuIiwgKmFjdGlvbik7CisJcmV0dXJuIC1FTk9ERVY7Cit9CisKK3ZvaWQgaW50ZWxfZ3VjX3RvX2hvc3RfZXZlbnRfaGFuZGxlcl9ub3Aoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCVdBUk4oMSwgIlVuZXhwZWN0ZWQgZXZlbnQ6IG5vIHN1aXRhYmxlIGhhbmRsZXJcbiIpOworfQorCisvKgorICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBNTUlPIGJhc2VkIGhvc3QgdG8gR3VDIGludGVyZmFjZS4KKyAqLworaW50IGludGVsX2d1Y19zZW5kX21taW8oc3RydWN0IGludGVsX2d1YyAqZ3VjLCBjb25zdCB1MzIgKmFjdGlvbiwgdTMyIGxlbiwKKwkJCXUzMiAqcmVzcG9uc2VfYnVmLCB1MzIgcmVzcG9uc2VfYnVmX3NpemUpCit7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3VjX3RvX2d0KGd1YyktPnVuY29yZTsKKwl1MzIgc3RhdHVzOworCWludCBpOworCWludCByZXQ7CisKKwlHRU1fQlVHX09OKCFsZW4pOworCUdFTV9CVUdfT04obGVuID4gZ3VjLT5zZW5kX3JlZ3MuY291bnQpOworCisJLyogV2UgZXhwZWN0IG9ubHkgYWN0aW9uIGNvZGUgKi8KKwlHRU1fQlVHX09OKCphY3Rpb24gJiB+SU5URUxfR1VDX01TR19DT0RFX01BU0spOworCisJLyogSWYgQ1QgaXMgYXZhaWxhYmxlLCB3ZSBleHBlY3QgdG8gdXNlIE1NSU8gb25seSBkdXJpbmcgaW5pdC9maW5pICovCisJR0VNX0JVR19PTigqYWN0aW9uICE9IElOVEVMX0dVQ19BQ1RJT05fUkVHSVNURVJfQ09NTUFORF9UUkFOU1BPUlRfQlVGRkVSICYmCisJCSAgICphY3Rpb24gIT0gSU5URUxfR1VDX0FDVElPTl9ERVJFR0lTVEVSX0NPTU1BTkRfVFJBTlNQT1JUX0JVRkZFUik7CisKKwltdXRleF9sb2NrKCZndWMtPnNlbmRfbXV0ZXgpOworCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KHVuY29yZSwgZ3VjLT5zZW5kX3JlZ3MuZndfZG9tYWlucyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIGd1Y19zZW5kX3JlZyhndWMsIGkpLCBhY3Rpb25baV0pOworCisJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZCh1bmNvcmUsIGd1Y19zZW5kX3JlZyhndWMsIGkgLSAxKSk7CisKKwlpbnRlbF9ndWNfbm90aWZ5KGd1Yyk7CisKKwkvKgorCSAqIE5vIEd1QyBjb21tYW5kIHNob3VsZCBldmVyIHRha2UgbG9uZ2VyIHRoYW4gMTBtcy4KKwkgKiBGYXN0IGNvbW1hbmRzIHNob3VsZCBzdGlsbCBjb21wbGV0ZSBpbiAxMHVzLgorCSAqLworCXJldCA9IF9faW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXJfZncodW5jb3JlLAorCQkJCQkgICBndWNfc2VuZF9yZWcoZ3VjLCAwKSwKKwkJCQkJICAgSU5URUxfR1VDX01TR19UWVBFX01BU0ssCisJCQkJCSAgIElOVEVMX0dVQ19NU0dfVFlQRV9SRVNQT05TRSA8PAorCQkJCQkgICBJTlRFTF9HVUNfTVNHX1RZUEVfU0hJRlQsCisJCQkJCSAgIDEwLCAxMCwgJnN0YXR1cyk7CisJLyogSWYgR3VDIGV4cGxpY2l0bHkgcmV0dXJuZWQgYW4gZXJyb3IsIGNvbnZlcnQgaXQgdG8gLUVJTyAqLworCWlmICghcmV0ICYmICFJTlRFTF9HVUNfTVNHX0lTX1JFU1BPTlNFX1NVQ0NFU1Moc3RhdHVzKSkKKwkJcmV0ID0gLUVJTzsKKworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJNTUlPOiBHdUMgYWN0aW9uICUjeCBmYWlsZWQgd2l0aCBlcnJvciAlZCAlI3hcbiIsCisJCQkgIGFjdGlvblswXSwgcmV0LCBzdGF0dXMpOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAocmVzcG9uc2VfYnVmKSB7CisJCWludCBjb3VudCA9IG1pbihyZXNwb25zZV9idWZfc2l6ZSwgZ3VjLT5zZW5kX3JlZ3MuY291bnQgLSAxKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKwkJCXJlc3BvbnNlX2J1ZltpXSA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwKKwkJCQkJCQkgICAgZ3VjX3NlbmRfcmVnKGd1YywgaSArIDEpKTsKKwl9CisKKwkvKiBVc2UgZGF0YSBmcm9tIHRoZSBHdUMgcmVzcG9uc2UgYXMgb3VyIHJldHVybiB2YWx1ZSAqLworCXJldCA9IElOVEVMX0dVQ19NU0dfVE9fREFUQShzdGF0dXMpOworCitvdXQ6CisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQodW5jb3JlLCBndWMtPnNlbmRfcmVncy5md19kb21haW5zKTsKKwltdXRleF91bmxvY2soJmd1Yy0+c2VuZF9tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQgaW50ZWxfZ3VjX3RvX2hvc3RfcHJvY2Vzc19yZWN2X21zZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCisJCQkJICAgICAgIGNvbnN0IHUzMiAqcGF5bG9hZCwgdTMyIGxlbikKK3sKKwl1MzIgbXNnOworCisJaWYgKHVubGlrZWx5KCFsZW4pKQorCQlyZXR1cm4gLUVQUk9UTzsKKworCS8qIE1ha2Ugc3VyZSB0byBoYW5kbGUgb25seSBlbmFibGVkIG1lc3NhZ2VzICovCisJbXNnID0gcGF5bG9hZFswXSAmIGd1Yy0+bXNnX2VuYWJsZWRfbWFzazsKKworCWlmIChtc2cgJiAoSU5URUxfR1VDX1JFQ1ZfTVNHX0ZMVVNIX0xPR19CVUZGRVIgfAorCQkgICBJTlRFTF9HVUNfUkVDVl9NU0dfQ1JBU0hfRFVNUF9QT1NURUQpKQorCQlpbnRlbF9ndWNfbG9nX2hhbmRsZV9mbHVzaF9ldmVudCgmZ3VjLT5sb2cpOworCisJcmV0dXJuIDA7Cit9CisKK2ludCBpbnRlbF9ndWNfc2FtcGxlX2ZvcmNld2FrZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2d0KGd1YyktPmk5MTU7CisJdTMyIGFjdGlvblsyXTsKKworCWFjdGlvblswXSA9IElOVEVMX0dVQ19BQ1RJT05fU0FNUExFX0ZPUkNFV0FLRTsKKwkvKiBXYVJzRGlzYWJsZUNvYXJzZVBvd2VyR2F0aW5nOnNrbCxjbmwgKi8KKwlpZiAoIUhBU19SQzYoZGV2X3ByaXYpIHx8IE5FRURTX1dhUnNEaXNhYmxlQ29hcnNlUG93ZXJHYXRpbmcoZGV2X3ByaXYpKQorCQlhY3Rpb25bMV0gPSAwOworCWVsc2UKKwkJLyogYml0IDAgYW5kIDEgYXJlIGZvciBSZW5kZXIgYW5kIE1lZGlhIGRvbWFpbiBzZXBhcmF0ZWx5ICovCisJCWFjdGlvblsxXSA9IEdVQ19GT1JDRVdBS0VfUkVOREVSIHwgR1VDX0ZPUkNFV0FLRV9NRURJQTsKKworCXJldHVybiBpbnRlbF9ndWNfc2VuZChndWMsIGFjdGlvbiwgQVJSQVlfU0laRShhY3Rpb24pKTsKK30KKworLyoqCisgKiBpbnRlbF9ndWNfYXV0aF9odWMoKSAtIFNlbmQgYWN0aW9uIHRvIEd1QyB0byBhdXRoZW50aWNhdGUgSHVDIHVjb2RlCisgKiBAZ3VjOiBpbnRlbF9ndWMgc3RydWN0dXJlCisgKiBAcnNhX29mZnNldDogcnNhIG9mZnNldCB3LnIudCBnZ3R0IGJhc2Ugb2YgaHVjIHZtYQorICoKKyAqIFRyaWdnZXJzIGEgSHVDIGZpcm13YXJlIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3QgdG8gdGhlIEd1QyB2aWEgaW50ZWxfZ3VjX3NlbmQKKyAqIElOVEVMX0dVQ19BQ1RJT05fQVVUSEVOVElDQVRFX0hVQyBpbnRlcmZhY2UuIFRoaXMgZnVuY3Rpb24gaXMgaW52b2tlZCBieQorICogaW50ZWxfaHVjX2F1dGgoKS4KKyAqCisgKiBSZXR1cm46CW5vbi16ZXJvIGNvZGUgb24gZXJyb3IKKyAqLworaW50IGludGVsX2d1Y19hdXRoX2h1YyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHUzMiByc2Ffb2Zmc2V0KQoreworCXUzMiBhY3Rpb25bXSA9IHsKKwkJSU5URUxfR1VDX0FDVElPTl9BVVRIRU5USUNBVEVfSFVDLAorCQlyc2Ffb2Zmc2V0CisJfTsKKworCXJldHVybiBpbnRlbF9ndWNfc2VuZChndWMsIGFjdGlvbiwgQVJSQVlfU0laRShhY3Rpb24pKTsKK30KKworLyoqCisgKiBpbnRlbF9ndWNfc3VzcGVuZCgpIC0gbm90aWZ5IEd1QyBlbnRlcmluZyBzdXNwZW5kIHN0YXRlCisgKiBAZ3VjOgl0aGUgZ3VjCisgKi8KK2ludCBpbnRlbF9ndWNfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3VjX3RvX2d0KGd1YyktPnVuY29yZTsKKwlpbnQgcmV0OworCXUzMiBzdGF0dXM7CisJdTMyIGFjdGlvbltdID0geworCQlJTlRFTF9HVUNfQUNUSU9OX0VOVEVSX1NfU1RBVEUsCisJCUdVQ19QT1dFUl9EMSwgLyogYW55IHZhbHVlIGdyZWF0ZXIgdGhhbiBHVUNfUE9XRVJfRDAgKi8KKwl9OworCisJLyoKKwkgKiBUaGUgRU5URVJfU19TVEFURSBhY3Rpb24gcXVldWVzIHRoZSBzYXZlL3Jlc3RvcmUgb3BlcmF0aW9uIGluIEd1QyBGVworCSAqIGFuZCB0aGVuIHJldHVybnMsIHNvIHdhaXRpbmcgb24gdGhlIEgyRyBpcyBub3QgZW5vdWdoIHRvIGd1YXJhbnRlZQorCSAqIEd1QyBpcyBkb25lLiBXaGVuIGFsbCB0aGUgcHJvY2Vzc2luZyBpcyBkb25lLCBHdUMgd3JpdGVzCisJICogSU5URUxfR1VDX1NMRUVQX1NUQVRFX1NVQ0NFU1MgdG8gc2NyYXRjaCByZWdpc3RlciAxNCwgc28gd2UgY2FuIHBvbGwKKwkgKiBvbiB0aGF0LiBOb3RlIHRoYXQgR3VDIGRvZXMgbm90IGVuc3VyZSB0aGF0IHRoZSB2YWx1ZSBpbiB0aGUgcmVnaXN0ZXIKKwkgKiBpcyBkaWZmZXJlbnQgZnJvbSBJTlRFTF9HVUNfU0xFRVBfU1RBVEVfU1VDQ0VTUyB3aGlsZSB0aGUgYWN0aW9uIGlzCisJICogaW4gcHJvZ3Jlc3Mgc28gd2UgbmVlZCB0byB0YWtlIGNhcmUgb2YgdGhhdCBvdXJzZWx2ZXMgYXMgd2VsbC4KKwkgKi8KKworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIFNPRlRfU0NSQVRDSCgxNCksCisJCQkgICBJTlRFTF9HVUNfU0xFRVBfU1RBVEVfSU5WQUxJRF9NQVNLKTsKKworCXJldCA9IGludGVsX2d1Y19zZW5kKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFjdGlvbikpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKHVuY29yZSwgU09GVF9TQ1JBVENIKDE0KSwKKwkJCQkJSU5URUxfR1VDX1NMRUVQX1NUQVRFX0lOVkFMSURfTUFTSywKKwkJCQkJMCwgMCwgMTAsICZzdGF0dXMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpZiAoc3RhdHVzICE9IElOVEVMX0dVQ19TTEVFUF9TVEFURV9TVUNDRVNTKSB7CisJCURSTV9FUlJPUigiR3VDIGZhaWxlZCB0byBjaGFuZ2Ugc2xlZXAgc3RhdGUuICIKKwkJCSAgImFjdGlvbj0weCV4LCBlcnI9JXVcbiIsCisJCQkgIGFjdGlvblswXSwgc3RhdHVzKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogaW50ZWxfZ3VjX3Jlc2V0X2VuZ2luZSgpIC0gYXNrIEd1QyB0byByZXNldCBhbiBlbmdpbmUKKyAqIEBndWM6CWludGVsX2d1YyBzdHJ1Y3R1cmUKKyAqIEBlbmdpbmU6CWVuZ2luZSB0byBiZSByZXNldAorICovCitpbnQgaW50ZWxfZ3VjX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCisJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJdTMyIGRhdGFbN107CisKKwlHRU1fQlVHX09OKCFndWMtPmV4ZWNidWZfY2xpZW50KTsKKworCWRhdGFbMF0gPSBJTlRFTF9HVUNfQUNUSU9OX1JFUVVFU1RfRU5HSU5FX1JFU0VUOworCWRhdGFbMV0gPSBlbmdpbmUtPmd1Y19pZDsKKwlkYXRhWzJdID0gMDsKKwlkYXRhWzNdID0gMDsKKwlkYXRhWzRdID0gMDsKKwlkYXRhWzVdID0gZ3VjLT5leGVjYnVmX2NsaWVudC0+c3RhZ2VfaWQ7CisJZGF0YVs2XSA9IGludGVsX2d1Y19nZ3R0X29mZnNldChndWMsIGd1Yy0+c2hhcmVkX2RhdGEpOworCisJcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1YywgZGF0YSwgQVJSQVlfU0laRShkYXRhKSk7Cit9CisKKy8qKgorICogaW50ZWxfZ3VjX3Jlc3VtZSgpIC0gbm90aWZ5IEd1QyByZXN1bWluZyBmcm9tIHN1c3BlbmQgc3RhdGUKKyAqIEBndWM6CXRoZSBndWMKKyAqLworaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXUzMiBhY3Rpb25bXSA9IHsKKwkJSU5URUxfR1VDX0FDVElPTl9FWElUX1NfU1RBVEUsCisJCUdVQ19QT1dFUl9EMCwKKwl9OworCisJcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFjdGlvbikpOworfQorCisvKioKKyAqIERPQzogR3VDIEFkZHJlc3MgU3BhY2UKKyAqCisgKiBUaGUgbGF5b3V0IG9mIEd1QyBhZGRyZXNzIHNwYWNlIGlzIHNob3duIGJlbG93OgorICoKKyAqIDo6CisgKgorICogICAgICs9PT09PT09PT09PT4gKz09PT09PT09PT09PT09PT09PT09KyA8PT0gRkZGRl9GRkZGCisgKiAgICAgXiAgICAgICAgICAgICB8ICAgICAgUmVzZXJ2ZWQgICAgICB8CisgKiAgICAgfCAgICAgICAgICAgICArPT09PT09PT09PT09PT09PT09PT0rIDw9PSBHVUNfR0dUVF9UT1AKKyAqICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICB8ICAgICAgICAgICAgIHwgICAgICAgIERSQU0gICAgICAgIHwKKyAqICAgIEd1QyAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwKKyAqICBBZGRyZXNzICAgICs9PT0+ICs9PT09PT09PT09PT09PT09PT09PSsgPD09IEd1QyBnZ3R0X3Bpbl9iaWFzCisgKiAgIFNwYWNlICAgICBeICAgICB8ICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgfCAgICAgICB8ICAgICB8ICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgfCAgICAgIEd1QyAgICB8ICAgICAgICBHdUMgICAgICAgICB8CisgKiAgICAgfCAgICAgV09QQ00gICB8ICAgICAgIFdPUENNICAgICAgICB8CisgKiAgICAgfCAgICAgIFNpemUgICB8ICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgfCAgICAgICB8ICAgICB8ICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgdiAgICAgICB2ICAgICB8ICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgKz09PT09PT0rPT09PiArPT09PT09PT09PT09PT09PT09PT0rIDw9PSAwMDAwXzAwMDAKKyAqCisgKiBUaGUgbG93ZXIgcGFydCBvZiBHdUMgQWRkcmVzcyBTcGFjZSBbMCwgZ2d0dF9waW5fYmlhcykgaXMgbWFwcGVkIHRvIEd1QyBXT1BDTQorICogd2hpbGUgdXBwZXIgcGFydCBvZiBHdUMgQWRkcmVzcyBTcGFjZSBbZ2d0dF9waW5fYmlhcywgR1VDX0dHVFRfVE9QKSBpcyBtYXBwZWQKKyAqIHRvIERSQU0uIFRoZSB2YWx1ZSBvZiB0aGUgR3VDIGdndHRfcGluX2JpYXMgaXMgdGhlIEd1QyBXT1BDTSBzaXplLgorICovCisKKy8qKgorICogaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYSgpIC0gQWxsb2NhdGUgYSBHR1RUIFZNQSBmb3IgR3VDIHVzYWdlCisgKiBAZ3VjOgl0aGUgZ3VjCisgKiBAc2l6ZToJc2l6ZSBvZiBhcmVhIHRvIGFsbG9jYXRlIChib3RoIHZpcnR1YWwgc3BhY2UgYW5kIG1lbW9yeSkKKyAqCisgKiBUaGlzIGlzIGEgd3JhcHBlciB0byBjcmVhdGUgYW4gb2JqZWN0IGZvciB1c2Ugd2l0aCB0aGUgR3VDLiBJbiBvcmRlciB0bworICogdXNlIGl0IGluc2lkZSB0aGUgR3VDLCBhbiBvYmplY3QgbmVlZHMgdG8gYmUgcGlubmVkIGxpZmV0aW1lLCBzbyB3ZSBhbGxvY2F0ZQorICogYm90aCBzb21lIGJhY2tpbmcgc3RvcmFnZSBhbmQgYSByYW5nZSBpbnNpZGUgdGhlIEdsb2JhbCBHVFQuIFdlIG11c3QgcGluCisgKiBpdCBpbiB0aGUgR0dUVCBzb21ld2hlcmUgb3RoZXIgdGhhbiB0aGFuIFswLCBHVUMgZ2d0dF9waW5fYmlhcykgYmVjYXVzZSB0aGF0CisgKiByYW5nZSBpcyByZXNlcnZlZCBpbnNpZGUgR3VDLgorICoKKyAqIFJldHVybjoJQSBpOTE1X3ZtYSBpZiBzdWNjZXNzZnVsLCBvdGhlcndpc2UgYW4gRVJSX1BUUi4KKyAqLworc3RydWN0IGk5MTVfdm1hICppbnRlbF9ndWNfYWxsb2NhdGVfdm1hKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHNpemUpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGd1Y190b19ndChndWMpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdTY0IGZsYWdzOworCWludCByZXQ7CisKKwlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3NobWVtKGd0LT5pOTE1LCBzaXplKTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBFUlJfQ0FTVChvYmopOworCisJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCAmZ3QtPmdndHQtPnZtLCBOVUxMKTsKKwlpZiAoSVNfRVJSKHZtYSkpCisJCWdvdG8gZXJyOworCisJZmxhZ3MgPSBQSU5fR0xPQkFMIHwgUElOX09GRlNFVF9CSUFTIHwgaTkxNV9nZ3R0X3Bpbl9iaWFzKHZtYSk7CisJcmV0ID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgZmxhZ3MpOworCWlmIChyZXQpIHsKKwkJdm1hID0gRVJSX1BUUihyZXQpOworCQlnb3RvIGVycjsKKwl9CisKKwlyZXR1cm4gaTkxNV92bWFfbWFrZV91bnNocmlua2FibGUodm1hKTsKKworZXJyOgorCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKwlyZXR1cm4gdm1hOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjJmMDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKQEAgLTAsMCArMSwyMDAgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfSU5URUxfR1VDX0hfCisjZGVmaW5lIF9JTlRFTF9HVUNfSF8KKworI2luY2x1ZGUgImludGVsX3VuY29yZS5oIgorI2luY2x1ZGUgImludGVsX2d1Y19mdy5oIgorI2luY2x1ZGUgImludGVsX2d1Y19md2lmLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3VjX2N0LmgiCisjaW5jbHVkZSAiaW50ZWxfZ3VjX2xvZy5oIgorI2luY2x1ZGUgImludGVsX2d1Y19yZWcuaCIKKyNpbmNsdWRlICJpbnRlbF91Y19mdy5oIgorI2luY2x1ZGUgImk5MTVfdXRpbHMuaCIKKyNpbmNsdWRlICJpOTE1X3ZtYS5oIgorCitzdHJ1Y3QgX19ndWNfYWRzX2Jsb2I7CisKKy8qCisgKiBUb3AgbGV2ZWwgc3RydWN0dXJlIG9mIEd1Qy4gSXQgaGFuZGxlcyBmaXJtd2FyZSBsb2FkaW5nIGFuZCBtYW5hZ2VzIGNsaWVudAorICogcG9vbCBhbmQgZG9vcmJlbGxzLiBpbnRlbF9ndWMgb3ducyBhIGludGVsX2d1Y19jbGllbnQgdG8gcmVwbGFjZSB0aGUgbGVnYWN5CisgKiBFeGVjTGlzdCBzdWJtaXNzaW9uLgorICovCitzdHJ1Y3QgaW50ZWxfZ3VjIHsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgZnc7CisJc3RydWN0IGludGVsX2d1Y19sb2cgbG9nOworCXN0cnVjdCBpbnRlbF9ndWNfY3QgY3Q7CisKKwkvKiBpbnRlbF9ndWNfcmVjdiBpbnRlcnJ1cHQgcmVsYXRlZCBzdGF0ZSAqLworCXNwaW5sb2NrX3QgaXJxX2xvY2s7CisJdW5zaWduZWQgaW50IG1zZ19lbmFibGVkX21hc2s7CisKKwlzdHJ1Y3QgeworCQlib29sIGVuYWJsZWQ7CisJCXZvaWQgKCpyZXNldCkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKKwkJdm9pZCAoKmVuYWJsZSkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKKwkJdm9pZCAoKmRpc2FibGUpKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CisJfSBpbnRlcnJ1cHRzOworCisJYm9vbCBzdWJtaXNzaW9uX3N1cHBvcnRlZDsKKworCXN0cnVjdCBpOTE1X3ZtYSAqYWRzX3ZtYTsKKwlzdHJ1Y3QgX19ndWNfYWRzX2Jsb2IgKmFkc19ibG9iOworCisJc3RydWN0IGk5MTVfdm1hICpzdGFnZV9kZXNjX3Bvb2w7CisJdm9pZCAqc3RhZ2VfZGVzY19wb29sX3ZhZGRyOworCXN0cnVjdCBpZGEgc3RhZ2VfaWRzOworCXN0cnVjdCBpOTE1X3ZtYSAqc2hhcmVkX2RhdGE7CisJdm9pZCAqc2hhcmVkX2RhdGFfdmFkZHI7CisKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqZXhlY2J1Zl9jbGllbnQ7CisKKwlERUNMQVJFX0JJVE1BUChkb29yYmVsbF9iaXRtYXAsIEdVQ19OVU1fRE9PUkJFTExTKTsKKwkvKiBDeWNsaWMgY291bnRlciBtb2QgcGFnZXNpemUJKi8KKwl1MzIgZGJfY2FjaGVsaW5lOworCisJLyogQ29udHJvbCBwYXJhbXMgZm9yIGZ3IGluaXRpYWxpemF0aW9uICovCisJdTMyIHBhcmFtc1tHVUNfQ1RMX01BWF9EV09SRFNdOworCisJLyogR3VDJ3MgRlcgc3BlY2lmaWMgcmVnaXN0ZXJzIHVzZWQgaW4gTU1JTyBzZW5kICovCisJc3RydWN0IHsKKwkJdTMyIGJhc2U7CisJCXVuc2lnbmVkIGludCBjb3VudDsKKwkJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zOworCX0gc2VuZF9yZWdzOworCisJLyogU3RvcmUgbXNnIChlLmcuIGxvZyBmbHVzaCkgdGhhdCB3ZSBzZWUgd2hpbGUgQ1RCcyBhcmUgZGlzYWJsZWQgKi8KKwl1MzIgbW1pb19tc2c7CisKKwkvKiBUbyBzZXJpYWxpemUgdGhlIGludGVsX2d1Y19zZW5kIGFjdGlvbnMgKi8KKwlzdHJ1Y3QgbXV0ZXggc2VuZF9tdXRleDsKKworCS8qIEd1QydzIEZXIHNwZWNpZmljIHNlbmQgZnVuY3Rpb24gKi8KKwlpbnQgKCpzZW5kKShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqZGF0YSwgdTMyIGxlbiwKKwkJICAgIHUzMiAqcmVzcG9uc2VfYnVmLCB1MzIgcmVzcG9uc2VfYnVmX3NpemUpOworCisJLyogR3VDJ3MgRlcgc3BlY2lmaWMgZXZlbnQgaGFuZGxlciBmdW5jdGlvbiAqLworCXZvaWQgKCpoYW5kbGVyKShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOworCisJLyogR3VDJ3MgRlcgc3BlY2lmaWMgbm90aWZ5IGZ1bmN0aW9uICovCisJdm9pZCAoKm5vdGlmeSkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK307CisKK3N0YXRpYworaW5saW5lIGludCBpbnRlbF9ndWNfc2VuZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9uLCB1MzIgbGVuKQoreworCXJldHVybiBndWMtPnNlbmQoZ3VjLCBhY3Rpb24sIGxlbiwgTlVMTCwgMCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitpbnRlbF9ndWNfc2VuZF9hbmRfcmVjZWl2ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9uLCB1MzIgbGVuLAorCQkJICAgdTMyICpyZXNwb25zZV9idWYsIHUzMiByZXNwb25zZV9idWZfc2l6ZSkKK3sKKwlyZXR1cm4gZ3VjLT5zZW5kKGd1YywgYWN0aW9uLCBsZW4sIHJlc3BvbnNlX2J1ZiwgcmVzcG9uc2VfYnVmX3NpemUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZ3VjX25vdGlmeShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJZ3VjLT5ub3RpZnkoZ3VjKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGludGVsX2d1Y190b19ob3N0X2V2ZW50X2hhbmRsZXIoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCWd1Yy0+aGFuZGxlcihndWMpOworfQorCisvKiBHdUMgYWRkcmVzc2VzIGFib3ZlIEdVQ19HR1RUX1RPUCBhbHNvIGRvbid0IG1hcCB0aHJvdWdoIHRoZSBHVFQgKi8KKyNkZWZpbmUgR1VDX0dHVFRfVE9QCTB4RkVFMDAwMDAKKworLyoqCisgKiBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoKSAtIEdldCBhbmQgdmFsaWRhdGUgdGhlIEdHVFQgb2Zmc2V0IG9mIEB2bWEKKyAqIEBndWM6IGludGVsX2d1YyBzdHJ1Y3R1cmUuCisgKiBAdm1hOiBpOTE1IGdyYXBoaWNzIHZpcnR1YWwgbWVtb3J5IGFyZWEuCisgKgorICogR3VDIGRvZXMgbm90IGFsbG93IGFueSBnZnggR0dUVCBhZGRyZXNzIHRoYXQgZmFsbHMgaW50byByYW5nZQorICogWzAsIGdndHQucGluX2JpYXMpLCB3aGljaCBpcyByZXNlcnZlZCBmb3IgQm9vdCBST00sIFNSQU0gYW5kIFdPUENNLgorICogQ3VycmVudGx5LCBpbiBvcmRlciB0byBleGNsdWRlIFswLCBnZ3R0LnBpbl9iaWFzKSBhZGRyZXNzIHNwYWNlIGZyb20KKyAqIEdHVFQsIGFsbCBnZnggb2JqZWN0cyB1c2VkIGJ5IEd1QyBhcmUgYWxsb2NhdGVkIHdpdGggaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYSgpCisgKiBhbmQgcGlubmVkIHdpdGggUElOX09GRlNFVF9CSUFTIGFsb25nIHdpdGggdGhlIHZhbHVlIG9mIGdndHQucGluX2JpYXMuCisgKgorICogUmV0dXJuOiBHR1RUIG9mZnNldCBvZiB0aGUgQHZtYS4KKyAqLworc3RhdGljIGlubGluZSB1MzIgaW50ZWxfZ3VjX2dndHRfb2Zmc2V0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKKwkJCQkJc3RydWN0IGk5MTVfdm1hICp2bWEpCit7CisJdTMyIG9mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQodm1hKTsKKworCUdFTV9CVUdfT04ob2Zmc2V0IDwgaTkxNV9nZ3R0X3Bpbl9iaWFzKHZtYSkpOworCUdFTV9CVUdfT04ocmFuZ2Vfb3ZlcmZsb3dzX3QodTY0LCBvZmZzZXQsIHZtYS0+c2l6ZSwgR1VDX0dHVFRfVE9QKSk7CisKKwlyZXR1cm4gb2Zmc2V0OworfQorCit2b2lkIGludGVsX2d1Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cit2b2lkIGludGVsX2d1Y19pbml0X3NlbmRfcmVncyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwordm9pZCBpbnRlbF9ndWNfd3JpdGVfcGFyYW1zKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CitpbnQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK3ZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK2ludCBpbnRlbF9ndWNfc2VuZF9ub3Aoc3RydWN0IGludGVsX2d1YyAqZ3VjLCBjb25zdCB1MzIgKmFjdGlvbiwgdTMyIGxlbiwKKwkJICAgICAgIHUzMiAqcmVzcG9uc2VfYnVmLCB1MzIgcmVzcG9uc2VfYnVmX3NpemUpOworaW50IGludGVsX2d1Y19zZW5kX21taW8oc3RydWN0IGludGVsX2d1YyAqZ3VjLCBjb25zdCB1MzIgKmFjdGlvbiwgdTMyIGxlbiwKKwkJCXUzMiAqcmVzcG9uc2VfYnVmLCB1MzIgcmVzcG9uc2VfYnVmX3NpemUpOwordm9pZCBpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cit2b2lkIGludGVsX2d1Y190b19ob3N0X2V2ZW50X2hhbmRsZXJfbm9wKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CitpbnQgaW50ZWxfZ3VjX3RvX2hvc3RfcHJvY2Vzc19yZWN2X21zZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCisJCQkJICAgICAgIGNvbnN0IHUzMiAqcGF5bG9hZCwgdTMyIGxlbik7CitpbnQgaW50ZWxfZ3VjX3NhbXBsZV9mb3JjZXdha2Uoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK2ludCBpbnRlbF9ndWNfYXV0aF9odWMoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgcnNhX29mZnNldCk7CitpbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK2ludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CitzdHJ1Y3QgaTkxNV92bWEgKmludGVsX2d1Y19hbGxvY2F0ZV92bWEoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgc2l6ZSk7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9ndWNfaXNfc3VwcG9ydGVkKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlyZXR1cm4gaW50ZWxfdWNfZndfaXNfc3VwcG9ydGVkKCZndWMtPmZ3KTsKK30KKworc3RhdGljIGlubGluZSBib29sIGludGVsX2d1Y19pc19lbmFibGVkKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlyZXR1cm4gaW50ZWxfdWNfZndfaXNfZW5hYmxlZCgmZ3VjLT5mdyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9ndWNfaXNfcnVubmluZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJcmV0dXJuIGludGVsX3VjX2Z3X2lzX3J1bm5pbmcoJmd1Yy0+ZncpOworfQorCitzdGF0aWMgaW5saW5lIGludCBpbnRlbF9ndWNfc2FuaXRpemUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCWludGVsX3VjX2Z3X3Nhbml0aXplKCZndWMtPmZ3KTsKKwlndWMtPm1taW9fbXNnID0gMDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3VjX2lzX3N1Ym1pc3Npb25fc3VwcG9ydGVkKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlyZXR1cm4gZ3VjLT5zdWJtaXNzaW9uX3N1cHBvcnRlZDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGludGVsX2d1Y19lbmFibGVfbXNnKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIG1hc2spCit7CisJc3Bpbl9sb2NrX2lycSgmZ3VjLT5pcnFfbG9jayk7CisJZ3VjLT5tc2dfZW5hYmxlZF9tYXNrIHw9IG1hc2s7CisJc3Bpbl91bmxvY2tfaXJxKCZndWMtPmlycV9sb2NrKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGludGVsX2d1Y19kaXNhYmxlX21zZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHUzMiBtYXNrKQoreworCXNwaW5fbG9ja19pcnEoJmd1Yy0+aXJxX2xvY2spOworCWd1Yy0+bXNnX2VuYWJsZWRfbWFzayAmPSB+bWFzazsKKwlzcGluX3VubG9ja19pcnEoJmd1Yy0+aXJxX2xvY2spOworfQorCitpbnQgaW50ZWxfZ3VjX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCisJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19hZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19hZHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTY2NzRiCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jCkBAIC0wLDAgKzEsMTg0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgorI2luY2x1ZGUgImludGVsX2d1Y19hZHMuaCIKKyNpbmNsdWRlICJpbnRlbF91Yy5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKKy8qCisgKiBUaGUgQWRkaXRpb25hbCBEYXRhIFN0cnVjdCAoQURTKSBoYXMgcG9pbnRlcnMgZm9yIGRpZmZlcmVudCBidWZmZXJzIHVzZWQgYnkKKyAqIHRoZSBHdUMuIE9uZSBzaW5nbGUgZ2VtIG9iamVjdCBjb250YWlucyB0aGUgQURTIHN0cnVjdCBpdHNlbGYgKGd1Y19hZHMpLCB0aGUKKyAqIHNjaGVkdWxpbmcgcG9saWNpZXMgKGd1Y19wb2xpY2llcyksIGEgc3RydWN0dXJlIGRlc2NyaWJpbmcgYSBjb2xsZWN0aW9uIG9mCisgKiByZWdpc3RlciBzZXRzIChndWNfbW1pb19yZWdfc3RhdGUpIGFuZCBzb21lIGV4dHJhIHBhZ2VzIGZvciB0aGUgR3VDIHRvIHNhdmUKKyAqIGl0cyBpbnRlcm5hbCBzdGF0ZSBmb3Igc2xlZXAuCisgKi8KKworc3RhdGljIHZvaWQgZ3VjX3BvbGljeV9pbml0KHN0cnVjdCBndWNfcG9saWN5ICpwb2xpY3kpCit7CisJcG9saWN5LT5leGVjdXRpb25fcXVhbnR1bSA9IFBPTElDWV9ERUZBVUxUX0VYRUNVVElPTl9RVUFOVFVNX1VTOworCXBvbGljeS0+cHJlZW1wdGlvbl90aW1lID0gUE9MSUNZX0RFRkFVTFRfUFJFRU1QVElPTl9USU1FX1VTOworCXBvbGljeS0+ZmF1bHRfdGltZSA9IFBPTElDWV9ERUZBVUxUX0ZBVUxUX1RJTUVfVVM7CisJcG9saWN5LT5wb2xpY3lfZmxhZ3MgPSAwOworfQorCitzdGF0aWMgdm9pZCBndWNfcG9saWNpZXNfaW5pdChzdHJ1Y3QgZ3VjX3BvbGljaWVzICpwb2xpY2llcykKK3sKKwlzdHJ1Y3QgZ3VjX3BvbGljeSAqcG9saWN5OworCXUzMiBwLCBpOworCisJcG9saWNpZXMtPmRwY19wcm9tb3RlX3RpbWUgPSBQT0xJQ1lfREVGQVVMVF9EUENfUFJPTU9URV9USU1FX1VTOworCXBvbGljaWVzLT5tYXhfbnVtX3dvcmtfaXRlbXMgPSBQT0xJQ1lfTUFYX05VTV9XSTsKKworCWZvciAocCA9IDA7IHAgPCBHVUNfQ0xJRU5UX1BSSU9SSVRZX05VTTsgcCsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCBHVUNfTUFYX0VOR0lORV9DTEFTU0VTOyBpKyspIHsKKwkJCXBvbGljeSA9ICZwb2xpY2llcy0+cG9saWN5W3BdW2ldOworCisJCQlndWNfcG9saWN5X2luaXQocG9saWN5KTsKKwkJfQorCX0KKworCXBvbGljaWVzLT5pc192YWxpZCA9IDE7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19jdF9wb29sX2VudHJpZXNfaW5pdChzdHJ1Y3QgZ3VjX2N0X3Bvb2xfZW50cnkgKnBvb2wsIHUzMiBudW0pCit7CisJbWVtc2V0KHBvb2wsIDAsIG51bSAqIHNpemVvZigqcG9vbCkpOworfQorCisvKgorICogVGhlIGZpcnN0IDgwIGR3b3JkcyBvZiB0aGUgcmVnaXN0ZXIgc3RhdGUgY29udGV4dCwgY29udGFpbmluZyB0aGUKKyAqIGV4ZWNsaXN0cyBhbmQgcHBndHQgcmVnaXN0ZXJzLgorICovCisjZGVmaW5lIExSX0hXX0NPTlRFWFRfU0laRQkoODAgKiBzaXplb2YodTMyKSkKKworLyogVGhlIGFkcyBvYmogaW5jbHVkZXMgdGhlIHN0cnVjdCBpdHNlbGYgYW5kIGJ1ZmZlcnMgcGFzc2VkIHRvIEd1QyAqLworc3RydWN0IF9fZ3VjX2Fkc19ibG9iIHsKKwlzdHJ1Y3QgZ3VjX2FkcyBhZHM7CisJc3RydWN0IGd1Y19wb2xpY2llcyBwb2xpY2llczsKKwlzdHJ1Y3QgZ3VjX21taW9fcmVnX3N0YXRlIHJlZ19zdGF0ZTsKKwlzdHJ1Y3QgZ3VjX2d0X3N5c3RlbV9pbmZvIHN5c3RlbV9pbmZvOworCXN0cnVjdCBndWNfY2xpZW50c19pbmZvIGNsaWVudHNfaW5mbzsKKwlzdHJ1Y3QgZ3VjX2N0X3Bvb2xfZW50cnkgY3RfcG9vbFtHVUNfQ1RfUE9PTF9TSVpFXTsKKwl1OCByZWdfc3RhdGVfYnVmZmVyW0dVQ19TM19TQVZFX1NQQUNFX1BBR0VTICogUEFHRV9TSVpFXTsKK30gX19wYWNrZWQ7CisKK3N0YXRpYyB2b2lkIF9fZ3VjX2Fkc19pbml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9fZ3QoZ3VjKS0+aTkxNTsKKwlzdHJ1Y3QgX19ndWNfYWRzX2Jsb2IgKmJsb2IgPSBndWMtPmFkc19ibG9iOworCWNvbnN0IHUzMiBza2lwcGVkX3NpemUgPSBMUkNfUFBIV1NQX1NaICogUEFHRV9TSVpFICsgTFJfSFdfQ09OVEVYVF9TSVpFOworCXUzMiBiYXNlOworCXU4IGVuZ2luZV9jbGFzczsKKworCS8qIEd1QyBzY2hlZHVsaW5nIHBvbGljaWVzICovCisJZ3VjX3BvbGljaWVzX2luaXQoJmJsb2ItPnBvbGljaWVzKTsKKworCS8qCisJICogR3VDIGV4cGVjdHMgYSBwZXItZW5naW5lLWNsYXNzIGNvbnRleHQgaW1hZ2UgYW5kIHNpemUKKwkgKiAobWludXMgaHdzcCBhbmQgcmluZyBjb250ZXh0KS4gVGhlIGNvbnRleHQgaW1hZ2Ugd2lsbCBiZQorCSAqIHVzZWQgdG8gcmVpbml0aWFsaXplIGVuZ2luZXMgYWZ0ZXIgYSByZXNldC4gSXQgbXVzdCBleGlzdAorCSAqIGFuZCBiZSBwaW5uZWQgaW4gdGhlIEdHVFQsIHNvIHRoYXQgdGhlIGFkZHJlc3Mgd29uJ3QgY2hhbmdlIGFmdGVyCisJICogd2UgaGF2ZSB0b2xkIEd1QyB3aGVyZSB0byBmaW5kIGl0LiBUaGUgY29udGV4dCBzaXplIHdpbGwgYmUgdXNlZAorCSAqIHRvIHZhbGlkYXRlIHRoYXQgdGhlIExSQyBiYXNlICsgc2l6ZSBmYWxsIHdpdGhpbiBhbGxvd2VkIEdHVFQuCisJICovCisJZm9yIChlbmdpbmVfY2xhc3MgPSAwOyBlbmdpbmVfY2xhc3MgPD0gTUFYX0VOR0lORV9DTEFTUzsgKytlbmdpbmVfY2xhc3MpIHsKKwkJaWYgKGVuZ2luZV9jbGFzcyA9PSBPVEhFUl9DTEFTUykKKwkJCWNvbnRpbnVlOworCQkvKgorCQkgKiBUT0RPOiBTZXQgY29udGV4dCBwb2ludGVyIHRvIGRlZmF1bHQgc3RhdGUgdG8gYWxsb3cKKwkJICogR3VDIHRvIHJlLWluaXQgZ3VpbHR5IGNvbnRleHRzIGFmdGVyIGludGVybmFsIHJlc2V0LgorCQkgKi8KKwkJYmxvYi0+YWRzLmdvbGRlbl9jb250ZXh0X2xyY2FbZW5naW5lX2NsYXNzXSA9IDA7CisJCWJsb2ItPmFkcy5lbmdfc3RhdGVfc2l6ZVtlbmdpbmVfY2xhc3NdID0KKwkJCWludGVsX2VuZ2luZV9jb250ZXh0X3NpemUoZGV2X3ByaXYsIGVuZ2luZV9jbGFzcykgLQorCQkJc2tpcHBlZF9zaXplOworCX0KKworCS8qIFN5c3RlbSBpbmZvICovCisJYmxvYi0+c3lzdGVtX2luZm8uc2xpY2VfZW5hYmxlZCA9IGh3ZWlnaHQ4KFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXUuc2xpY2VfbWFzayk7CisJYmxvYi0+c3lzdGVtX2luZm8ucmNzX2VuYWJsZWQgPSAxOworCWJsb2ItPnN5c3RlbV9pbmZvLmJjc19lbmFibGVkID0gMTsKKworCWJsb2ItPnN5c3RlbV9pbmZvLnZkYm94X2VuYWJsZV9tYXNrID0gVkRCT1hfTUFTSyhkZXZfcHJpdik7CisJYmxvYi0+c3lzdGVtX2luZm8udmVib3hfZW5hYmxlX21hc2sgPSBWRUJPWF9NQVNLKGRldl9wcml2KTsKKwlibG9iLT5zeXN0ZW1faW5mby52ZGJveF9zZmNfc3VwcG9ydF9tYXNrID0gUlVOVElNRV9JTkZPKGRldl9wcml2KS0+dmRib3hfc2ZjX2FjY2VzczsKKworCWJhc2UgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBndWMtPmFkc192bWEpOworCisJLyogQ2xpZW50cyBpbmZvICAqLworCWd1Y19jdF9wb29sX2VudHJpZXNfaW5pdChibG9iLT5jdF9wb29sLCBBUlJBWV9TSVpFKGJsb2ItPmN0X3Bvb2wpKTsKKworCWJsb2ItPmNsaWVudHNfaW5mby5jbGllbnRzX251bSA9IDE7CisJYmxvYi0+Y2xpZW50c19pbmZvLmN0X3Bvb2xfYWRkciA9IGJhc2UgKyBwdHJfb2Zmc2V0KGJsb2IsIGN0X3Bvb2wpOworCWJsb2ItPmNsaWVudHNfaW5mby5jdF9wb29sX2NvdW50ID0gQVJSQVlfU0laRShibG9iLT5jdF9wb29sKTsKKworCS8qIEFEUyAqLworCWJsb2ItPmFkcy5zY2hlZHVsZXJfcG9saWNpZXMgPSBiYXNlICsgcHRyX29mZnNldChibG9iLCBwb2xpY2llcyk7CisJYmxvYi0+YWRzLnJlZ19zdGF0ZV9idWZmZXIgPSBiYXNlICsgcHRyX29mZnNldChibG9iLCByZWdfc3RhdGVfYnVmZmVyKTsKKwlibG9iLT5hZHMucmVnX3N0YXRlX2FkZHIgPSBiYXNlICsgcHRyX29mZnNldChibG9iLCByZWdfc3RhdGUpOworCWJsb2ItPmFkcy5ndF9zeXN0ZW1faW5mbyA9IGJhc2UgKyBwdHJfb2Zmc2V0KGJsb2IsIHN5c3RlbV9pbmZvKTsKKwlibG9iLT5hZHMuY2xpZW50c19pbmZvID0gYmFzZSArIHB0cl9vZmZzZXQoYmxvYiwgY2xpZW50c19pbmZvKTsKKworCWk5MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAoZ3VjLT5hZHNfdm1hLT5vYmopOworfQorCisvKioKKyAqIGludGVsX2d1Y19hZHNfY3JlYXRlKCkgLSBhbGxvY2F0ZXMgYW5kIGluaXRpYWxpemVzIEd1QyBBRFMuCisgKiBAZ3VjOiBpbnRlbF9ndWMgc3RydWN0CisgKgorICogR3VDIG5lZWRzIG1lbW9yeSBibG9jayAoQWRkaXRpb25hbCBEYXRhIFN0cnVjdCksIHdoZXJlIGl0IHdpbGwgc3RvcmUKKyAqIHNvbWUgZGF0YS4gQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgc3VjaCBtZW1vcnkgYmxvY2sgZm9yIEd1QyB1c2UuCisgKi8KK2ludCBpbnRlbF9ndWNfYWRzX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJY29uc3QgdTMyIHNpemUgPSBQQUdFX0FMSUdOKHNpemVvZihzdHJ1Y3QgX19ndWNfYWRzX2Jsb2IpKTsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwl2b2lkICpibG9iOworCWludCByZXQ7CisKKwlHRU1fQlVHX09OKGd1Yy0+YWRzX3ZtYSk7CisKKwl2bWEgPSBpbnRlbF9ndWNfYWxsb2NhdGVfdm1hKGd1Yywgc2l6ZSk7CisJaWYgKElTX0VSUih2bWEpKQorCQlyZXR1cm4gUFRSX0VSUih2bWEpOworCisJYmxvYiA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHZtYS0+b2JqLCBJOTE1X01BUF9XQik7CisJaWYgKElTX0VSUihibG9iKSkgeworCQlyZXQgPSBQVFJfRVJSKGJsb2IpOworCQlnb3RvIGVycl92bWE7CisJfQorCisJZ3VjLT5hZHNfdm1hID0gdm1hOworCWd1Yy0+YWRzX2Jsb2IgPSBibG9iOworCisJX19ndWNfYWRzX2luaXQoZ3VjKTsKKworCXJldHVybiAwOworCitlcnJfdm1hOgorCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPmFkc192bWEsIDApOworCXJldHVybiByZXQ7Cit9CisKK3ZvaWQgaW50ZWxfZ3VjX2Fkc19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmZ3VjLT5hZHNfdm1hLCBJOTE1X1ZNQV9SRUxFQVNFX01BUCk7Cit9CisKKy8qKgorICogaW50ZWxfZ3VjX2Fkc19yZXNldCgpIC0gcHJlcGFyZXMgR3VDIEFkZGl0aW9uYWwgRGF0YSBTdHJ1Y3QgZm9yIHJldXNlCisgKiBAZ3VjOiBpbnRlbF9ndWMgc3RydWN0CisgKgorICogR3VDIHN0b3JlcyBzb21lIGRhdGEgaW4gQURTLCB3aGljaCBtaWdodCBiZSBzdGFsZSBhZnRlciBhIHJlc2V0LgorICogUmVpbml0aWFsaXplIHdob2xlIEFEUyBpbiBjYXNlIGFueSBwYXJ0IG9mIGl0IHdhcyBjb3JydXB0ZWQgZHVyaW5nCisgKiBwcmV2aW91cyBHdUMgcnVuLgorICovCit2b2lkIGludGVsX2d1Y19hZHNfcmVzZXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCWlmICghZ3VjLT5hZHNfdm1hKQorCQlyZXR1cm47CisJX19ndWNfYWRzX2luaXQoZ3VjKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19hZHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19hZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDBkM2FlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5oCkBAIC0wLDAgKzEsMTUgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfSU5URUxfR1VDX0FEU19IXworI2RlZmluZSBfSU5URUxfR1VDX0FEU19IXworCitzdHJ1Y3QgaW50ZWxfZ3VjOworCitpbnQgaW50ZWxfZ3VjX2Fkc19jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK3ZvaWQgaW50ZWxfZ3VjX2Fkc19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cit2b2lkIGludGVsX2d1Y19hZHNfcmVzZXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0OTExNTUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuYwpAQCAtMCwwICsxLDg5NyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE2LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9ndWNfY3QuaCIKKworI2lmZGVmIENPTkZJR19EUk1fSTkxNV9ERUJVR19HVUMKKyNkZWZpbmUgQ1RfREVCVUdfRFJJVkVSKC4uLikJRFJNX0RFQlVHX0RSSVZFUihfX1ZBX0FSR1NfXykKKyNlbHNlCisjZGVmaW5lIENUX0RFQlVHX0RSSVZFUiguLi4pCWRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCitzdHJ1Y3QgY3RfcmVxdWVzdCB7CisJc3RydWN0IGxpc3RfaGVhZCBsaW5rOworCXUzMiBmZW5jZTsKKwl1MzIgc3RhdHVzOworCXUzMiByZXNwb25zZV9sZW47CisJdTMyICpyZXNwb25zZV9idWY7Cit9OworCitzdHJ1Y3QgY3RfaW5jb21pbmdfcmVxdWVzdCB7CisJc3RydWN0IGxpc3RfaGVhZCBsaW5rOworCXUzMiBtc2dbXTsKK307CisKK2VudW0geyBDVEJfU0VORCA9IDAsIENUQl9SRUNWID0gMSB9OworCitlbnVtIHsgQ1RCX09XTkVSX0hPU1QgPSAwIH07CisKK3N0YXRpYyB2b2lkIGN0X2luY29taW5nX3JlcXVlc3Rfd29ya2VyX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3KTsKKworLyoqCisgKiBpbnRlbF9ndWNfY3RfaW5pdF9lYXJseSAtIEluaXRpYWxpemUgQ1Qgc3RhdGUgd2l0aG91dCByZXF1aXJpbmcgZGV2aWNlIGFjY2VzcworICogQGN0OiBwb2ludGVyIHRvIENUIHN0cnVjdAorICovCit2b2lkIGludGVsX2d1Y19jdF9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KQoreworCS8qIHdlJ3JlIHVzaW5nIHN0YXRpYyBjaGFubmVsIG93bmVycyAqLworCWN0LT5ob3N0X2NoYW5uZWwub3duZXIgPSBDVEJfT1dORVJfSE9TVDsKKworCXNwaW5fbG9ja19pbml0KCZjdC0+bG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJmN0LT5wZW5kaW5nX3JlcXVlc3RzKTsKKwlJTklUX0xJU1RfSEVBRCgmY3QtPmluY29taW5nX3JlcXVlc3RzKTsKKwlJTklUX1dPUksoJmN0LT53b3JrZXIsIGN0X2luY29taW5nX3JlcXVlc3Rfd29ya2VyX2Z1bmMpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9ndWMgKmN0X3RvX2d1YyhzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGN0LCBzdHJ1Y3QgaW50ZWxfZ3VjLCBjdCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqZ3VjX2N0X2J1ZmZlcl90eXBlX3RvX3N0cih1MzIgdHlwZSkKK3sKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIElOVEVMX0dVQ19DVF9CVUZGRVJfVFlQRV9TRU5EOgorCQlyZXR1cm4gIlNFTkQiOworCWNhc2UgSU5URUxfR1VDX0NUX0JVRkZFUl9UWVBFX1JFQ1Y6CisJCXJldHVybiAiUkVDViI7CisJZGVmYXVsdDoKKwkJcmV0dXJuICI8aW52YWxpZD4iOworCX0KK30KKworc3RhdGljIHZvaWQgZ3VjX2N0X2J1ZmZlcl9kZXNjX2luaXQoc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyAqZGVzYywKKwkJCQkgICAgdTMyIGNtZHNfYWRkciwgdTMyIHNpemUsIHUzMiBvd25lcikKK3sKKwlDVF9ERUJVR19EUklWRVIoIkNUOiBkZXNjICVwIGluaXQgYWRkcj0lI3ggc2l6ZT0ldSBvd25lcj0ldVxuIiwKKwkJCWRlc2MsIGNtZHNfYWRkciwgc2l6ZSwgb3duZXIpOworCW1lbXNldChkZXNjLCAwLCBzaXplb2YoKmRlc2MpKTsKKwlkZXNjLT5hZGRyID0gY21kc19hZGRyOworCWRlc2MtPnNpemUgPSBzaXplOworCWRlc2MtPm93bmVyID0gb3duZXI7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19jdF9idWZmZXJfZGVzY19yZXNldChzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjKQoreworCUNUX0RFQlVHX0RSSVZFUigiQ1Q6IGRlc2MgJXAgcmVzZXQgaGVhZD0ldSB0YWlsPSV1XG4iLAorCQkJZGVzYywgZGVzYy0+aGVhZCwgZGVzYy0+dGFpbCk7CisJZGVzYy0+aGVhZCA9IDA7CisJZGVzYy0+dGFpbCA9IDA7CisJZGVzYy0+aXNfaW5fZXJyb3IgPSAwOworfQorCitzdGF0aWMgaW50IGd1Y19hY3Rpb25fcmVnaXN0ZXJfY3RfYnVmZmVyKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKKwkJCQkJIHUzMiBkZXNjX2FkZHIsCisJCQkJCSB1MzIgdHlwZSkKK3sKKwl1MzIgYWN0aW9uW10gPSB7CisJCUlOVEVMX0dVQ19BQ1RJT05fUkVHSVNURVJfQ09NTUFORF9UUkFOU1BPUlRfQlVGRkVSLAorCQlkZXNjX2FkZHIsCisJCXNpemVvZihzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjKSwKKwkJdHlwZQorCX07CisJaW50IGVycjsKKworCS8qIENhbid0IHVzZSBnZW5lcmljIHNlbmQoKSwgQ1QgcmVnaXN0cmF0aW9uIG11c3QgZ28gb3ZlciBNTUlPICovCisJZXJyID0gaW50ZWxfZ3VjX3NlbmRfbW1pbyhndWMsIGFjdGlvbiwgQVJSQVlfU0laRShhY3Rpb24pLCBOVUxMLCAwKTsKKwlpZiAoZXJyKQorCQlEUk1fRVJST1IoIkNUOiByZWdpc3RlciAlcyBidWZmZXIgZmFpbGVkOyBlcnI9JWRcbiIsCisJCQkgIGd1Y19jdF9idWZmZXJfdHlwZV90b19zdHIodHlwZSksIGVycik7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBndWNfYWN0aW9uX2RlcmVnaXN0ZXJfY3RfYnVmZmVyKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKKwkJCQkJICAgdTMyIG93bmVyLAorCQkJCQkgICB1MzIgdHlwZSkKK3sKKwl1MzIgYWN0aW9uW10gPSB7CisJCUlOVEVMX0dVQ19BQ1RJT05fREVSRUdJU1RFUl9DT01NQU5EX1RSQU5TUE9SVF9CVUZGRVIsCisJCW93bmVyLAorCQl0eXBlCisJfTsKKwlpbnQgZXJyOworCisJLyogQ2FuJ3QgdXNlIGdlbmVyaWMgc2VuZCgpLCBDVCBkZXJlZ2lzdHJhdGlvbiBtdXN0IGdvIG92ZXIgTU1JTyAqLworCWVyciA9IGludGVsX2d1Y19zZW5kX21taW8oZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSwgTlVMTCwgMCk7CisJaWYgKGVycikKKwkJRFJNX0VSUk9SKCJDVDogZGVyZWdpc3RlciAlcyBidWZmZXIgZmFpbGVkOyBvd25lcj0lZCBlcnI9JWRcbiIsCisJCQkgIGd1Y19jdF9idWZmZXJfdHlwZV90b19zdHIodHlwZSksIG93bmVyLCBlcnIpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgY3RjaF9pbml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKKwkJICAgICBzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2NoYW5uZWwgKmN0Y2gpCit7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdm9pZCAqYmxvYjsKKwlpbnQgZXJyOworCWludCBpOworCisJR0VNX0JVR19PTihjdGNoLT52bWEpOworCisJLyogV2UgYWxsb2NhdGUgMSBwYWdlIHRvIGhvbGQgYm90aCBkZXNjcmlwdG9ycyBhbmQgYm90aCBidWZmZXJzLgorCSAqICAgICAgIF9fX19fX19fX19fLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisJICogICAgICB8ZGVzYyAoU0VORCl8ICAgICAgICAgICAgICAgICAgIDoKKwkgKiAgICAgIHxfX19fX19fX19fX3wgICAgICAgICAgICAgICAgICAgUEFHRS80CisJICogICAgICA6X19fX19fX19fX18uLi4uLi4uLi4uLi4uLi4uLi4uLjoKKwkgKiAgICAgIHxkZXNjIChSRUNWKXwgICAgICAgICAgICAgICAgICAgOgorCSAqICAgICAgfF9fX19fX19fX19ffCAgICAgICAgICAgICAgICAgICBQQUdFLzQKKwkgKiAgICAgIDpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fOgorCSAqICAgICAgfGNtZHMgKFNFTkQpICAgICAgICAgICAgICAgICAgICB8CisJICogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0UvNAorCSAqICAgICAgfF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX198CisJICogICAgICB8Y21kcyAoUkVDVikgICAgICAgICAgICAgICAgICAgIHwKKwkgKiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFHRS80CisJICogICAgICB8X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3wKKwkgKgorCSAqIEVhY2ggbWVzc2FnZSBjYW4gdXNlIGEgbWF4aW11bSBvZiAzMiBkd29yZHMgYW5kIHdlIGRvbid0IGV4cGVjdCB0bworCSAqIGhhdmUgbW9yZSB0aGFuIDEgaW4gZmxpZ2h0IGF0IGFueSB0aW1lLCBzbyB3ZSBoYXZlIGVub3VnaCBzcGFjZS4KKwkgKiBTb21lIGxvZ2ljIGZ1cnRoZXIgYWhlYWQgd2lsbCByZWx5IG9uIHRoZSBmYWN0IHRoYXQgdGhlcmUgaXMgb25seSAxCisJICogcGFnZSBhbmQgdGhhdCBpdCBpcyBhbHdheXMgbWFwcGVkLCBzbyBpZiB0aGUgc2l6ZSBpcyBjaGFuZ2VkIHRoZQorCSAqIG90aGVyIGNvZGUgd2lsbCBuZWVkIHVwZGF0aW5nIGFzIHdlbGwuCisJICovCisKKwkvKiBhbGxvY2F0ZSB2bWEgKi8KKwl2bWEgPSBpbnRlbF9ndWNfYWxsb2NhdGVfdm1hKGd1YywgUEFHRV9TSVpFKTsKKwlpZiAoSVNfRVJSKHZtYSkpIHsKKwkJZXJyID0gUFRSX0VSUih2bWEpOworCQlnb3RvIGVycl9vdXQ7CisJfQorCWN0Y2gtPnZtYSA9IHZtYTsKKworCS8qIG1hcCBmaXJzdCBwYWdlICovCisJYmxvYiA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHZtYS0+b2JqLCBJOTE1X01BUF9XQik7CisJaWYgKElTX0VSUihibG9iKSkgeworCQllcnIgPSBQVFJfRVJSKGJsb2IpOworCQlnb3RvIGVycl92bWE7CisJfQorCUNUX0RFQlVHX0RSSVZFUigiQ1Q6IHZtYSBiYXNlPSUjeFxuIiwKKwkJCWludGVsX2d1Y19nZ3R0X29mZnNldChndWMsIGN0Y2gtPnZtYSkpOworCisJLyogc3RvcmUgcG9pbnRlcnMgdG8gZGVzYyBhbmQgY21kcyAqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGN0Y2gtPmN0YnMpOyBpKyspIHsKKwkJR0VNX0JVR19PTigoaSAhPSBDVEJfU0VORCkgJiYgKGkgIT0gQ1RCX1JFQ1YpKTsKKwkJY3RjaC0+Y3Ric1tpXS5kZXNjID0gYmxvYiArIFBBR0VfU0laRS80ICogaTsKKwkJY3RjaC0+Y3Ric1tpXS5jbWRzID0gYmxvYiArIFBBR0VfU0laRS80ICogaSArIFBBR0VfU0laRS8yOworCX0KKworCXJldHVybiAwOworCitlcnJfdm1hOgorCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZjdGNoLT52bWEsIDApOworZXJyX291dDoKKwlDVF9ERUJVR19EUklWRVIoIkNUOiBjaGFubmVsICVkIGluaXRpYWxpemF0aW9uIGZhaWxlZDsgZXJyPSVkXG4iLAorCQkJY3RjaC0+b3duZXIsIGVycik7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHZvaWQgY3RjaF9maW5pKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKKwkJICAgICAgc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoKQoreworCUdFTV9CVUdfT04oY3RjaC0+ZW5hYmxlZCk7CisKKwlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmY3RjaC0+dm1hLCBJOTE1X1ZNQV9SRUxFQVNFX01BUCk7Cit9CisKK3N0YXRpYyBpbnQgY3RjaF9lbmFibGUoc3RydWN0IGludGVsX2d1YyAqZ3VjLAorCQkgICAgICAgc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoKQoreworCXUzMiBiYXNlOworCWludCBlcnI7CisJaW50IGk7CisKKwlHRU1fQlVHX09OKCFjdGNoLT52bWEpOworCisJR0VNX0JVR19PTihjdGNoLT5lbmFibGVkKTsKKworCS8qIHZtYSBzaG91bGQgYmUgYWxyZWFkeSBhbGxvY2F0ZWQgYW5kIG1hcCdlZCAqLworCWJhc2UgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBjdGNoLT52bWEpOworCisJLyogKHJlKWluaXRpYWxpemUgZGVzY3JpcHRvcnMKKwkgKiBjbWRzIGJ1ZmZlcnMgYXJlIGluIHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgYmxvYiBwYWdlCisJICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3RjaC0+Y3Ricyk7IGkrKykgeworCQlHRU1fQlVHX09OKChpICE9IENUQl9TRU5EKSAmJiAoaSAhPSBDVEJfUkVDVikpOworCQlndWNfY3RfYnVmZmVyX2Rlc2NfaW5pdChjdGNoLT5jdGJzW2ldLmRlc2MsCisJCQkJCWJhc2UgKyBQQUdFX1NJWkUvNCAqIGkgKyBQQUdFX1NJWkUvMiwKKwkJCQkJUEFHRV9TSVpFLzQsCisJCQkJCWN0Y2gtPm93bmVyKTsKKwl9CisKKwkvKiByZWdpc3RlciBidWZmZXJzLCBzdGFydGluZyB3aXJoIFJFQ1YgYnVmZmVyCisJICogZGVzY3JpcHRvcnMgYXJlIGluIGZpcnN0IGhhbGYgb2YgdGhlIGJsb2IKKwkgKi8KKwllcnIgPSBndWNfYWN0aW9uX3JlZ2lzdGVyX2N0X2J1ZmZlcihndWMsCisJCQkJCSAgICBiYXNlICsgUEFHRV9TSVpFLzQgKiBDVEJfUkVDViwKKwkJCQkJICAgIElOVEVMX0dVQ19DVF9CVUZGRVJfVFlQRV9SRUNWKTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byBlcnJfb3V0OworCisJZXJyID0gZ3VjX2FjdGlvbl9yZWdpc3Rlcl9jdF9idWZmZXIoZ3VjLAorCQkJCQkgICAgYmFzZSArIFBBR0VfU0laRS80ICogQ1RCX1NFTkQsCisJCQkJCSAgICBJTlRFTF9HVUNfQ1RfQlVGRkVSX1RZUEVfU0VORCk7CisJaWYgKHVubGlrZWx5KGVycikpCisJCWdvdG8gZXJyX2RlcmVnaXN0ZXI7CisKKwljdGNoLT5lbmFibGVkID0gdHJ1ZTsKKworCXJldHVybiAwOworCitlcnJfZGVyZWdpc3RlcjoKKwlndWNfYWN0aW9uX2RlcmVnaXN0ZXJfY3RfYnVmZmVyKGd1YywKKwkJCQkJY3RjaC0+b3duZXIsCisJCQkJCUlOVEVMX0dVQ19DVF9CVUZGRVJfVFlQRV9SRUNWKTsKK2Vycl9vdXQ6CisJRFJNX0VSUk9SKCJDVDogY2FuJ3Qgb3BlbiBjaGFubmVsICVkOyBlcnI9JWRcbiIsIGN0Y2gtPm93bmVyLCBlcnIpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB2b2lkIGN0Y2hfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCisJCQkgc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoKQoreworCUdFTV9CVUdfT04oIWN0Y2gtPmVuYWJsZWQpOworCisJY3RjaC0+ZW5hYmxlZCA9IGZhbHNlOworCisJZ3VjX2FjdGlvbl9kZXJlZ2lzdGVyX2N0X2J1ZmZlcihndWMsCisJCQkJCWN0Y2gtPm93bmVyLAorCQkJCQlJTlRFTF9HVUNfQ1RfQlVGRkVSX1RZUEVfU0VORCk7CisJZ3VjX2FjdGlvbl9kZXJlZ2lzdGVyX2N0X2J1ZmZlcihndWMsCisJCQkJCWN0Y2gtPm93bmVyLAorCQkJCQlJTlRFTF9HVUNfQ1RfQlVGRkVSX1RZUEVfUkVDVik7Cit9CisKK3N0YXRpYyB1MzIgY3RjaF9nZXRfbmV4dF9mZW5jZShzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2NoYW5uZWwgKmN0Y2gpCit7CisJLyogRm9yIG5vdyBpdCdzIHRyaXZpYWwgKi8KKwlyZXR1cm4gKytjdGNoLT5uZXh0X2ZlbmNlOworfQorCisvKioKKyAqIERPQzogQ1RCIEhvc3QgdG8gR3VDIHJlcXVlc3QKKyAqCisgKiBGb3JtYXQgb2YgdGhlIENUQiBIb3N0IHRvIEd1QyByZXF1ZXN0IG1lc3NhZ2UgaXMgYXMgZm9sbG93czo6CisgKgorICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKKyAqICAgICAgfCAgIG1zZ1swXSAgIHwgICBbMV0gICB8ICAgWzJdICAgfCAgIC4uLiAgIHwgIFtuLTFdICB8CisgKiAgICAgICstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgTUVTU0FHRSAgfCAgICAgICBNRVNTQUdFIFBBWUxPQUQgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgKyAgIEhFQURFUiAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgICAgICAgICAgICB8ICAgIDAgICAgfCAgICAxICAgIHwgICAuLi4gICB8ICAgIG4gICAgfAorICogICAgICArPT09PT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSsKKyAqICAgICAgfCAgbGVuID49IDEgIHwgIEZFTkNFICB8ICAgICByZXF1ZXN0IHNwZWNpZmljIGRhdGEgICB8CisgKiAgICAgICstLS0tLS0rLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICoKKyAqICAgICAgICAgICAgICAgICAgIF4tLS0tLS0tLS0tLS0tLS0tLWxlbi0tLS0tLS0tLS0tLS0tLS0tLS1eCisgKi8KKworc3RhdGljIGludCBjdGJfd3JpdGUoc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgKmN0YiwKKwkJICAgICBjb25zdCB1MzIgKmFjdGlvbiwKKwkJICAgICB1MzIgbGVuIC8qIGluIGR3b3JkcyAqLywKKwkJICAgICB1MzIgZmVuY2UsCisJCSAgICAgYm9vbCB3YW50X3Jlc3BvbnNlKQoreworCXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MgPSBjdGItPmRlc2M7CisJdTMyIGhlYWQgPSBkZXNjLT5oZWFkIC8gNDsJLyogaW4gZHdvcmRzICovCisJdTMyIHRhaWwgPSBkZXNjLT50YWlsIC8gNDsJLyogaW4gZHdvcmRzICovCisJdTMyIHNpemUgPSBkZXNjLT5zaXplIC8gNDsJLyogaW4gZHdvcmRzICovCisJdTMyIHVzZWQ7CQkJLyogaW4gZHdvcmRzICovCisJdTMyIGhlYWRlcjsKKwl1MzIgKmNtZHMgPSBjdGItPmNtZHM7CisJdW5zaWduZWQgaW50IGk7CisKKwlHRU1fQlVHX09OKGRlc2MtPnNpemUgJSA0KTsKKwlHRU1fQlVHX09OKGRlc2MtPmhlYWQgJSA0KTsKKwlHRU1fQlVHX09OKGRlc2MtPnRhaWwgJSA0KTsKKwlHRU1fQlVHX09OKHRhaWwgPj0gc2l6ZSk7CisKKwkvKgorCSAqIHRhaWwgPT0gaGVhZCBjb25kaXRpb24gaW5kaWNhdGVzIGVtcHR5LiBHdUMgRlcgZG9lcyBub3Qgc3VwcG9ydAorCSAqIHVzaW5nIHVwIHRoZSBlbnRpcmUgYnVmZmVyIHRvIGdldCB0YWlsID09IGhlYWQgbWVhbmluZyBmdWxsLgorCSAqLworCWlmICh0YWlsIDwgaGVhZCkKKwkJdXNlZCA9IChzaXplIC0gaGVhZCkgKyB0YWlsOworCWVsc2UKKwkJdXNlZCA9IHRhaWwgLSBoZWFkOworCisJLyogbWFrZSBzdXJlIHRoZXJlIGlzIGEgc3BhY2UgaW5jbHVkaW5nIGV4dHJhIGR3IGZvciB0aGUgZmVuY2UgKi8KKwlpZiAodW5saWtlbHkodXNlZCArIGxlbiArIDEgPj0gc2l6ZSkpCisJCXJldHVybiAtRU5PU1BDOworCisJLyoKKwkgKiBXcml0ZSB0aGUgbWVzc2FnZS4gVGhlIGZvcm1hdCBpcyB0aGUgZm9sbG93aW5nOgorCSAqIERXMDogaGVhZGVyIChpbmNsdWRpbmcgYWN0aW9uIGNvZGUpCisJICogRFcxOiBmZW5jZQorCSAqIERXMis6IGFjdGlvbiBkYXRhCisJICovCisJaGVhZGVyID0gKGxlbiA8PCBHVUNfQ1RfTVNHX0xFTl9TSElGVCkgfAorCQkgKEdVQ19DVF9NU0dfV1JJVEVfRkVOQ0VfVE9fREVTQykgfAorCQkgKHdhbnRfcmVzcG9uc2UgPyBHVUNfQ1RfTVNHX1NFTkRfU1RBVFVTIDogMCkgfAorCQkgKGFjdGlvblswXSA8PCBHVUNfQ1RfTVNHX0FDVElPTl9TSElGVCk7CisKKwlDVF9ERUJVR19EUklWRVIoIkNUOiB3cml0aW5nICUqcGggJSpwaCAlKnBoXG4iLAorCQkJNCwgJmhlYWRlciwgNCwgJmZlbmNlLAorCQkJNCAqIChsZW4gLSAxKSwgJmFjdGlvblsxXSk7CisKKwljbWRzW3RhaWxdID0gaGVhZGVyOworCXRhaWwgPSAodGFpbCArIDEpICUgc2l6ZTsKKworCWNtZHNbdGFpbF0gPSBmZW5jZTsKKwl0YWlsID0gKHRhaWwgKyAxKSAlIHNpemU7CisKKwlmb3IgKGkgPSAxOyBpIDwgbGVuOyBpKyspIHsKKwkJY21kc1t0YWlsXSA9IGFjdGlvbltpXTsKKwkJdGFpbCA9ICh0YWlsICsgMSkgJSBzaXplOworCX0KKworCS8qIG5vdyB1cGRhdGUgZGVzYyB0YWlsIChiYWNrIGluIGJ5dGVzKSAqLworCWRlc2MtPnRhaWwgPSB0YWlsICogNDsKKwlHRU1fQlVHX09OKGRlc2MtPnRhaWwgPiBkZXNjLT5zaXplKTsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIHdhaXRfZm9yX2N0Yl9kZXNjX3VwZGF0ZSAtIFdhaXQgZm9yIHRoZSBDVCBidWZmZXIgZGVzY3JpcHRvciB1cGRhdGUuCisgKiBAZGVzYzoJYnVmZmVyIGRlc2NyaXB0b3IKKyAqIEBmZW5jZToJcmVzcG9uc2UgZmVuY2UKKyAqIEBzdGF0dXM6CXBsYWNlaG9sZGVyIGZvciBzdGF0dXMKKyAqCisgKiBHdWMgd2lsbCB1cGRhdGUgQ1QgYnVmZmVyIGRlc2NyaXB0b3Igd2l0aCBuZXcgZmVuY2UgYW5kIHN0YXR1cworICogYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgY29tbWFuZCBpZGVudGlmaWVkIGJ5IHRoZSBmZW5jZS4gV2FpdCBmb3IKKyAqIHNwZWNpZmllZCBmZW5jZSBhbmQgdGhlbiByZWFkIGZyb20gdGhlIGRlc2NyaXB0b3Igc3RhdHVzIG9mIHRoZQorICogY29tbWFuZC4KKyAqCisgKiBSZXR1cm46CisgKiAqCTAgcmVzcG9uc2UgcmVjZWl2ZWQgKHN0YXR1cyBpcyB2YWxpZCkKKyAqICoJLUVUSU1FRE9VVCBubyByZXNwb25zZSB3aXRoaW4gaGFyZGNvZGVkIHRpbWVvdXQKKyAqICoJLUVQUk9UTyBubyByZXNwb25zZSwgQ1QgYnVmZmVyIGlzIGluIGVycm9yCisgKi8KK3N0YXRpYyBpbnQgd2FpdF9mb3JfY3RiX2Rlc2NfdXBkYXRlKHN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MsCisJCQkJICAgIHUzMiBmZW5jZSwKKwkJCQkgICAgdTMyICpzdGF0dXMpCit7CisJaW50IGVycjsKKworCS8qCisJICogRmFzdCBjb21tYW5kcyBzaG91bGQgY29tcGxldGUgaW4gbGVzcyB0aGFuIDEwdXMsIHNvIHNhbXBsZSBxdWlja2x5CisJICogdXAgdG8gdGhhdCBsZW5ndGggb2YgdGltZSwgdGhlbiBzd2l0Y2ggdG8gYSBzbG93ZXIgc2xlZXAtd2FpdCBsb29wLgorCSAqIE5vIEd1QyBjb21tYW5kIHNob3VsZCBldmVyIHRha2UgbG9uZ2VyIHRoYW4gMTBtcy4KKwkgKi8KKyNkZWZpbmUgZG9uZSAoUkVBRF9PTkNFKGRlc2MtPmZlbmNlKSA9PSBmZW5jZSkKKwllcnIgPSB3YWl0X2Zvcl91cyhkb25lLCAxMCk7CisJaWYgKGVycikKKwkJZXJyID0gd2FpdF9mb3IoZG9uZSwgMTApOworI3VuZGVmIGRvbmUKKworCWlmICh1bmxpa2VseShlcnIpKSB7CisJCURSTV9FUlJPUigiQ1Q6IGZlbmNlICV1IGZhaWxlZDsgcmVwb3J0ZWQgZmVuY2U9JXVcbiIsCisJCQkgIGZlbmNlLCBkZXNjLT5mZW5jZSk7CisKKwkJaWYgKFdBUk5fT04oZGVzYy0+aXNfaW5fZXJyb3IpKSB7CisJCQkvKiBTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHRoZSBtZXNzYWdpbmcsIHRyeSB0byByZXNldAorCQkJICogdGhlIGJ1ZmZlciBhbmQgaG9wZSBmb3IgdGhlIGJlc3QKKwkJCSAqLworCQkJZ3VjX2N0X2J1ZmZlcl9kZXNjX3Jlc2V0KGRlc2MpOworCQkJZXJyID0gLUVQUk9UTzsKKwkJfQorCX0KKworCSpzdGF0dXMgPSBkZXNjLT5zdGF0dXM7CisJcmV0dXJuIGVycjsKK30KKworLyoqCisgKiB3YWl0X2Zvcl9jdF9yZXF1ZXN0X3VwZGF0ZSAtIFdhaXQgZm9yIENUIHJlcXVlc3Qgc3RhdGUgdXBkYXRlLgorICogQHJlcToJcG9pbnRlciB0byBwZW5kaW5nIHJlcXVlc3QKKyAqIEBzdGF0dXM6CXBsYWNlaG9sZGVyIGZvciBzdGF0dXMKKyAqCisgKiBGb3IgZWFjaCBzZW50IHJlcXVlc3QsIEd1YyBzaGFsbCBzZW5kIGJhYyBDVCByZXNwb25zZSBtZXNzYWdlLgorICogT3VyIG1lc3NhZ2UgaGFuZGxlciB3aWxsIHVwZGF0ZSBzdGF0dXMgb2YgdHJhY2tlZCByZXF1ZXN0IG9uY2UKKyAqIHJlc3BvbnNlIG1lc3NhZ2Ugd2l0aCBnaXZlbiBmZW5jZSBpcyByZWNlaXZlZC4gV2FpdCBoZXJlIGFuZAorICogY2hlY2sgZm9yIHZhbGlkIHJlc3BvbnNlIHN0YXR1cyB2YWx1ZS4KKyAqCisgKiBSZXR1cm46CisgKiAqCTAgcmVzcG9uc2UgcmVjZWl2ZWQgKHN0YXR1cyBpcyB2YWxpZCkKKyAqICoJLUVUSU1FRE9VVCBubyByZXNwb25zZSB3aXRoaW4gaGFyZGNvZGVkIHRpbWVvdXQKKyAqLworc3RhdGljIGludCB3YWl0X2Zvcl9jdF9yZXF1ZXN0X3VwZGF0ZShzdHJ1Y3QgY3RfcmVxdWVzdCAqcmVxLCB1MzIgKnN0YXR1cykKK3sKKwlpbnQgZXJyOworCisJLyoKKwkgKiBGYXN0IGNvbW1hbmRzIHNob3VsZCBjb21wbGV0ZSBpbiBsZXNzIHRoYW4gMTB1cywgc28gc2FtcGxlIHF1aWNrbHkKKwkgKiB1cCB0byB0aGF0IGxlbmd0aCBvZiB0aW1lLCB0aGVuIHN3aXRjaCB0byBhIHNsb3dlciBzbGVlcC13YWl0IGxvb3AuCisJICogTm8gR3VDIGNvbW1hbmQgc2hvdWxkIGV2ZXIgdGFrZSBsb25nZXIgdGhhbiAxMG1zLgorCSAqLworI2RlZmluZSBkb25lIElOVEVMX0dVQ19NU0dfSVNfUkVTUE9OU0UoUkVBRF9PTkNFKHJlcS0+c3RhdHVzKSkKKwllcnIgPSB3YWl0X2Zvcl91cyhkb25lLCAxMCk7CisJaWYgKGVycikKKwkJZXJyID0gd2FpdF9mb3IoZG9uZSwgMTApOworI3VuZGVmIGRvbmUKKworCWlmICh1bmxpa2VseShlcnIpKQorCQlEUk1fRVJST1IoIkNUOiBmZW5jZSAldSBlcnIgJWRcbiIsIHJlcS0+ZmVuY2UsIGVycik7CisKKwkqc3RhdHVzID0gcmVxLT5zdGF0dXM7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBjdGNoX3NlbmQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCisJCSAgICAgc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoLAorCQkgICAgIGNvbnN0IHUzMiAqYWN0aW9uLAorCQkgICAgIHUzMiBsZW4sCisJCSAgICAgdTMyICpyZXNwb25zZV9idWYsCisJCSAgICAgdTMyIHJlc3BvbnNlX2J1Zl9zaXplLAorCQkgICAgIHUzMiAqc3RhdHVzKQoreworCXN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICpjdGIgPSAmY3RjaC0+Y3Ric1tDVEJfU0VORF07CisJc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyAqZGVzYyA9IGN0Yi0+ZGVzYzsKKwlzdHJ1Y3QgY3RfcmVxdWVzdCByZXF1ZXN0OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdTMyIGZlbmNlOworCWludCBlcnI7CisKKwlHRU1fQlVHX09OKCFjdGNoLT5lbmFibGVkKTsKKwlHRU1fQlVHX09OKCFsZW4pOworCUdFTV9CVUdfT04obGVuICYgfkdVQ19DVF9NU0dfTEVOX01BU0spOworCUdFTV9CVUdfT04oIXJlc3BvbnNlX2J1ZiAmJiByZXNwb25zZV9idWZfc2l6ZSk7CisKKwlmZW5jZSA9IGN0Y2hfZ2V0X25leHRfZmVuY2UoY3RjaCk7CisJcmVxdWVzdC5mZW5jZSA9IGZlbmNlOworCXJlcXVlc3Quc3RhdHVzID0gMDsKKwlyZXF1ZXN0LnJlc3BvbnNlX2xlbiA9IHJlc3BvbnNlX2J1Zl9zaXplOworCXJlcXVlc3QucmVzcG9uc2VfYnVmID0gcmVzcG9uc2VfYnVmOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmN0LT5sb2NrLCBmbGFncyk7CisJbGlzdF9hZGRfdGFpbCgmcmVxdWVzdC5saW5rLCAmY3QtPnBlbmRpbmdfcmVxdWVzdHMpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0LT5sb2NrLCBmbGFncyk7CisKKwllcnIgPSBjdGJfd3JpdGUoY3RiLCBhY3Rpb24sIGxlbiwgZmVuY2UsICEhcmVzcG9uc2VfYnVmKTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byB1bmxpbms7CisKKwlpbnRlbF9ndWNfbm90aWZ5KGN0X3RvX2d1YyhjdCkpOworCisJaWYgKHJlc3BvbnNlX2J1ZikKKwkJZXJyID0gd2FpdF9mb3JfY3RfcmVxdWVzdF91cGRhdGUoJnJlcXVlc3QsIHN0YXR1cyk7CisJZWxzZQorCQllcnIgPSB3YWl0X2Zvcl9jdGJfZGVzY191cGRhdGUoZGVzYywgZmVuY2UsIHN0YXR1cyk7CisJaWYgKHVubGlrZWx5KGVycikpCisJCWdvdG8gdW5saW5rOworCisJaWYgKCFJTlRFTF9HVUNfTVNHX0lTX1JFU1BPTlNFX1NVQ0NFU1MoKnN0YXR1cykpIHsKKwkJZXJyID0gLUVJTzsKKwkJZ290byB1bmxpbms7CisJfQorCisJaWYgKHJlc3BvbnNlX2J1ZikgeworCQkvKiBUaGVyZSBzaGFsbCBiZSBubyBkYXRhIGluIHRoZSBzdGF0dXMgKi8KKwkJV0FSTl9PTihJTlRFTF9HVUNfTVNHX1RPX0RBVEEocmVxdWVzdC5zdGF0dXMpKTsKKwkJLyogUmV0dXJuIGFjdHVhbCByZXNwb25zZSBsZW4gKi8KKwkJZXJyID0gcmVxdWVzdC5yZXNwb25zZV9sZW47CisJfSBlbHNlIHsKKwkJLyogVGhlcmUgc2hhbGwgYmUgbm8gcmVzcG9uc2UgcGF5bG9hZCAqLworCQlXQVJOX09OKHJlcXVlc3QucmVzcG9uc2VfbGVuKTsKKwkJLyogUmV0dXJuIGRhdGEgZGVjb2RlZCBmcm9tIHRoZSBzdGF0dXMgZHdvcmQgKi8KKwkJZXJyID0gSU5URUxfR1VDX01TR19UT19EQVRBKCpzdGF0dXMpOworCX0KKwordW5saW5rOgorCXNwaW5fbG9ja19pcnFzYXZlKCZjdC0+bG9jaywgZmxhZ3MpOworCWxpc3RfZGVsKCZyZXF1ZXN0LmxpbmspOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0LT5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gZXJyOworfQorCisvKgorICogQ29tbWFuZCBUcmFuc3BvcnQgKENUKSBidWZmZXIgYmFzZWQgR3VDIHNlbmQgZnVuY3Rpb24uCisgKi8KK2ludCBpbnRlbF9ndWNfc2VuZF9jdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9uLCB1MzIgbGVuLAorCQkgICAgICB1MzIgKnJlc3BvbnNlX2J1ZiwgdTMyIHJlc3BvbnNlX2J1Zl9zaXplKQoreworCXN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0ID0gJmd1Yy0+Y3Q7CisJc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7CisJdTMyIHN0YXR1cyA9IH4wOyAvKiB1bmRlZmluZWQgKi8KKwlpbnQgcmV0OworCisJbXV0ZXhfbG9jaygmZ3VjLT5zZW5kX211dGV4KTsKKworCXJldCA9IGN0Y2hfc2VuZChjdCwgY3RjaCwgYWN0aW9uLCBsZW4sIHJlc3BvbnNlX2J1ZiwgcmVzcG9uc2VfYnVmX3NpemUsCisJCQkmc3RhdHVzKTsKKwlpZiAodW5saWtlbHkocmV0IDwgMCkpIHsKKwkJRFJNX0VSUk9SKCJDVDogc2VuZCBhY3Rpb24gJSNYIGZhaWxlZDsgZXJyPSVkIHN0YXR1cz0lI1hcbiIsCisJCQkgIGFjdGlvblswXSwgcmV0LCBzdGF0dXMpOworCX0gZWxzZSBpZiAodW5saWtlbHkocmV0KSkgeworCQlDVF9ERUJVR19EUklWRVIoIkNUOiBzZW5kIGFjdGlvbiAlI3ggcmV0dXJuZWQgJWQgKCUjeClcbiIsCisJCQkJYWN0aW9uWzBdLCByZXQsIHJldCk7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZndWMtPnNlbmRfbXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGN0X2hlYWRlcl9nZXRfbGVuKHUzMiBoZWFkZXIpCit7CisJcmV0dXJuIChoZWFkZXIgPj4gR1VDX0NUX01TR19MRU5fU0hJRlQpICYgR1VDX0NUX01TR19MRU5fTUFTSzsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY3RfaGVhZGVyX2dldF9hY3Rpb24odTMyIGhlYWRlcikKK3sKKwlyZXR1cm4gKGhlYWRlciA+PiBHVUNfQ1RfTVNHX0FDVElPTl9TSElGVCkgJiBHVUNfQ1RfTVNHX0FDVElPTl9NQVNLOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgY3RfaGVhZGVyX2lzX3Jlc3BvbnNlKHUzMiBoZWFkZXIpCit7CisJcmV0dXJuICEhKGhlYWRlciAmIEdVQ19DVF9NU0dfSVNfUkVTUE9OU0UpOworfQorCitzdGF0aWMgaW50IGN0Yl9yZWFkKHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICpjdGIsIHUzMiAqZGF0YSkKK3sKKwlzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjID0gY3RiLT5kZXNjOworCXUzMiBoZWFkID0gZGVzYy0+aGVhZCAvIDQ7CS8qIGluIGR3b3JkcyAqLworCXUzMiB0YWlsID0gZGVzYy0+dGFpbCAvIDQ7CS8qIGluIGR3b3JkcyAqLworCXUzMiBzaXplID0gZGVzYy0+c2l6ZSAvIDQ7CS8qIGluIGR3b3JkcyAqLworCXUzMiAqY21kcyA9IGN0Yi0+Y21kczsKKwlzMzIgYXZhaWxhYmxlOwkJCS8qIGluIGR3b3JkcyAqLworCXVuc2lnbmVkIGludCBsZW47CisJdW5zaWduZWQgaW50IGk7CisKKwlHRU1fQlVHX09OKGRlc2MtPnNpemUgJSA0KTsKKwlHRU1fQlVHX09OKGRlc2MtPmhlYWQgJSA0KTsKKwlHRU1fQlVHX09OKGRlc2MtPnRhaWwgJSA0KTsKKwlHRU1fQlVHX09OKHRhaWwgPj0gc2l6ZSk7CisJR0VNX0JVR19PTihoZWFkID49IHNpemUpOworCisJLyogdGFpbCA9PSBoZWFkIGNvbmRpdGlvbiBpbmRpY2F0ZXMgZW1wdHkgKi8KKwlhdmFpbGFibGUgPSB0YWlsIC0gaGVhZDsKKwlpZiAodW5saWtlbHkoYXZhaWxhYmxlID09IDApKQorCQlyZXR1cm4gLUVOT0RBVEE7CisKKwkvKiBiZXdhcmUgb2YgYnVmZmVyIHdyYXAgY2FzZSAqLworCWlmICh1bmxpa2VseShhdmFpbGFibGUgPCAwKSkKKwkJYXZhaWxhYmxlICs9IHNpemU7CisJQ1RfREVCVUdfRFJJVkVSKCJDVDogYXZhaWxhYmxlICVkICgldToldSlcbiIsIGF2YWlsYWJsZSwgaGVhZCwgdGFpbCk7CisJR0VNX0JVR19PTihhdmFpbGFibGUgPCAwKTsKKworCWRhdGFbMF0gPSBjbWRzW2hlYWRdOworCWhlYWQgPSAoaGVhZCArIDEpICUgc2l6ZTsKKworCS8qIG1lc3NhZ2UgbGVuIHdpdGggaGVhZGVyICovCisJbGVuID0gY3RfaGVhZGVyX2dldF9sZW4oZGF0YVswXSkgKyAxOworCWlmICh1bmxpa2VseShsZW4gPiAodTMyKWF2YWlsYWJsZSkpIHsKKwkJRFJNX0VSUk9SKCJDVDogaW5jb21wbGV0ZSBtZXNzYWdlICUqcGggJSpwaCAlKnBoXG4iLAorCQkJICA0LCBkYXRhLAorCQkJICA0ICogKGhlYWQgKyBhdmFpbGFibGUgLSAxID4gc2l6ZSA/CisJCQkgICAgICAgc2l6ZSAtIGhlYWQgOiBhdmFpbGFibGUgLSAxKSwgJmNtZHNbaGVhZF0sCisJCQkgIDQgKiAoaGVhZCArIGF2YWlsYWJsZSAtIDEgPiBzaXplID8KKwkJCSAgICAgICBhdmFpbGFibGUgLSAxIC0gc2l6ZSArIGhlYWQgOiAwKSwgJmNtZHNbMF0pOworCQlyZXR1cm4gLUVQUk9UTzsKKwl9CisKKwlmb3IgKGkgPSAxOyBpIDwgbGVuOyBpKyspIHsKKwkJZGF0YVtpXSA9IGNtZHNbaGVhZF07CisJCWhlYWQgPSAoaGVhZCArIDEpICUgc2l6ZTsKKwl9CisJQ1RfREVCVUdfRFJJVkVSKCJDVDogcmVjZWl2ZWQgJSpwaFxuIiwgNCAqIGxlbiwgZGF0YSk7CisKKwlkZXNjLT5oZWFkID0gaGVhZCAqIDQ7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogRE9DOiBDVEIgR3VDIHRvIEhvc3QgcmVzcG9uc2UKKyAqCisgKiBGb3JtYXQgb2YgdGhlIENUQiBHdUMgdG8gSG9zdCByZXNwb25zZSBtZXNzYWdlIGlzIGFzIGZvbGxvd3M6OgorICoKKyAqICAgICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgbXNnWzBdICAgfCAgIFsxXSAgIHwgICBbMl0gICB8ICAgWzNdICAgfCAgIC4uLiAgIHwgIFtuLTFdICB8CisgKiAgICAgICstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKKyAqICAgICAgfCAgIE1FU1NBR0UgIHwgICAgICAgTUVTU0FHRSBQQVlMT0FEICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICArICAgSEVBREVSICAgKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgICAgICAgICAgICB8ICAgIDAgICAgfCAgICAxICAgIHwgICAgMiAgICB8ICAgLi4uICAgfCAgICBuICAgIHwKKyAqICAgICAgKz09PT09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09KworICogICAgICB8ICBsZW4gPj0gMiAgfCAgRkVOQ0UgIHwgIFNUQVRVUyB8ICAgcmVzcG9uc2Ugc3BlY2lmaWMgZGF0YSAgICB8CisgKiAgICAgICstLS0tLS0rLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKKyAqCisgKiAgICAgICAgICAgICAgICAgICBeLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1sZW4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLV4KKyAqLworCitzdGF0aWMgaW50IGN0X2hhbmRsZV9yZXNwb25zZShzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwgY29uc3QgdTMyICptc2cpCit7CisJdTMyIGhlYWRlciA9IG1zZ1swXTsKKwl1MzIgbGVuID0gY3RfaGVhZGVyX2dldF9sZW4oaGVhZGVyKTsKKwl1MzIgbXNnbGVuID0gbGVuICsgMTsgLyogdG90YWwgbWVzc2FnZSBsZW5ndGggaW5jbHVkaW5nIGhlYWRlciAqLworCXUzMiBmZW5jZTsKKwl1MzIgc3RhdHVzOworCXUzMiBkYXRhbGVuOworCXN0cnVjdCBjdF9yZXF1ZXN0ICpyZXE7CisJYm9vbCBmb3VuZCA9IGZhbHNlOworCisJR0VNX0JVR19PTighY3RfaGVhZGVyX2lzX3Jlc3BvbnNlKGhlYWRlcikpOworCUdFTV9CVUdfT04oIWluX2lycSgpKTsKKworCS8qIFJlc3BvbnNlIHBheWxvYWQgc2hhbGwgYXQgbGVhc3QgaW5jbHVkZSBmZW5jZSBhbmQgc3RhdHVzICovCisJaWYgKHVubGlrZWx5KGxlbiA8IDIpKSB7CisJCURSTV9FUlJPUigiQ1Q6IGNvcnJ1cHRlZCByZXNwb25zZSAlKnBoXG4iLCA0ICogbXNnbGVuLCBtc2cpOworCQlyZXR1cm4gLUVQUk9UTzsKKwl9CisKKwlmZW5jZSA9IG1zZ1sxXTsKKwlzdGF0dXMgPSBtc2dbMl07CisJZGF0YWxlbiA9IGxlbiAtIDI7CisKKwkvKiBGb3JtYXQgb2YgdGhlIHN0YXR1cyBmb2xsb3dzIFJFU1BPTlNFIG1lc3NhZ2UgKi8KKwlpZiAodW5saWtlbHkoIUlOVEVMX0dVQ19NU0dfSVNfUkVTUE9OU0Uoc3RhdHVzKSkpIHsKKwkJRFJNX0VSUk9SKCJDVDogY29ycnVwdGVkIHJlc3BvbnNlICUqcGhcbiIsIDQgKiBtc2dsZW4sIG1zZyk7CisJCXJldHVybiAtRVBST1RPOworCX0KKworCUNUX0RFQlVHX0RSSVZFUigiQ1Q6IHJlc3BvbnNlIGZlbmNlICV1IHN0YXR1cyAlI3hcbiIsIGZlbmNlLCBzdGF0dXMpOworCisJc3Bpbl9sb2NrKCZjdC0+bG9jayk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXEsICZjdC0+cGVuZGluZ19yZXF1ZXN0cywgbGluaykgeworCQlpZiAodW5saWtlbHkoZmVuY2UgIT0gcmVxLT5mZW5jZSkpIHsKKwkJCUNUX0RFQlVHX0RSSVZFUigiQ1Q6IHJlcXVlc3QgJXUgYXdhaXRzIHJlc3BvbnNlXG4iLAorCQkJCQlyZXEtPmZlbmNlKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICh1bmxpa2VseShkYXRhbGVuID4gcmVxLT5yZXNwb25zZV9sZW4pKSB7CisJCQlEUk1fRVJST1IoIkNUOiByZXNwb25zZSAldSB0b28gbG9uZyAlKnBoXG4iLAorCQkJCSAgcmVxLT5mZW5jZSwgNCAqIG1zZ2xlbiwgbXNnKTsKKwkJCWRhdGFsZW4gPSAwOworCQl9CisJCWlmIChkYXRhbGVuKQorCQkJbWVtY3B5KHJlcS0+cmVzcG9uc2VfYnVmLCBtc2cgKyAzLCA0ICogZGF0YWxlbik7CisJCXJlcS0+cmVzcG9uc2VfbGVuID0gZGF0YWxlbjsKKwkJV1JJVEVfT05DRShyZXEtPnN0YXR1cywgc3RhdHVzKTsKKwkJZm91bmQgPSB0cnVlOworCQlicmVhazsKKwl9CisJc3Bpbl91bmxvY2soJmN0LT5sb2NrKTsKKworCWlmICghZm91bmQpCisJCURSTV9FUlJPUigiQ1Q6IHVuc29saWNpdGVkIHJlc3BvbnNlICUqcGhcbiIsIDQgKiBtc2dsZW4sIG1zZyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGN0X3Byb2Nlc3NfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwKKwkJCSAgICAgICB1MzIgYWN0aW9uLCB1MzIgbGVuLCBjb25zdCB1MzIgKnBheWxvYWQpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gY3RfdG9fZ3VjKGN0KTsKKwlpbnQgcmV0OworCisJQ1RfREVCVUdfRFJJVkVSKCJDVDogcmVxdWVzdCAleCAlKnBoXG4iLCBhY3Rpb24sIDQgKiBsZW4sIHBheWxvYWQpOworCisJc3dpdGNoIChhY3Rpb24pIHsKKwljYXNlIElOVEVMX0dVQ19BQ1RJT05fREVGQVVMVDoKKwkJcmV0ID0gaW50ZWxfZ3VjX3RvX2hvc3RfcHJvY2Vzc19yZWN2X21zZyhndWMsIHBheWxvYWQsIGxlbik7CisJCWlmICh1bmxpa2VseShyZXQpKQorCQkJZ290byBmYWlsX3VuZXhwZWN0ZWQ7CisJCWJyZWFrOworCisJZGVmYXVsdDoKK2ZhaWxfdW5leHBlY3RlZDoKKwkJRFJNX0VSUk9SKCJDVDogdW5leHBlY3RlZCByZXF1ZXN0ICV4ICUqcGhcbiIsCisJCQkgIGFjdGlvbiwgNCAqIGxlbiwgcGF5bG9hZCk7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIGJvb2wgY3RfcHJvY2Vzc19pbmNvbWluZ19yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBjdF9pbmNvbWluZ19yZXF1ZXN0ICpyZXF1ZXN0OworCXUzMiBoZWFkZXI7CisJdTMyICpwYXlsb2FkOworCWJvb2wgZG9uZTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjdC0+bG9jaywgZmxhZ3MpOworCXJlcXVlc3QgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmN0LT5pbmNvbWluZ19yZXF1ZXN0cywKKwkJCQkJICAgc3RydWN0IGN0X2luY29taW5nX3JlcXVlc3QsIGxpbmspOworCWlmIChyZXF1ZXN0KQorCQlsaXN0X2RlbCgmcmVxdWVzdC0+bGluayk7CisJZG9uZSA9ICEhbGlzdF9lbXB0eSgmY3QtPmluY29taW5nX3JlcXVlc3RzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjdC0+bG9jaywgZmxhZ3MpOworCisJaWYgKCFyZXF1ZXN0KQorCQlyZXR1cm4gdHJ1ZTsKKworCWhlYWRlciA9IHJlcXVlc3QtPm1zZ1swXTsKKwlwYXlsb2FkID0gJnJlcXVlc3QtPm1zZ1sxXTsKKwljdF9wcm9jZXNzX3JlcXVlc3QoY3QsCisJCQkgICBjdF9oZWFkZXJfZ2V0X2FjdGlvbihoZWFkZXIpLAorCQkJICAgY3RfaGVhZGVyX2dldF9sZW4oaGVhZGVyKSwKKwkJCSAgIHBheWxvYWQpOworCisJa2ZyZWUocmVxdWVzdCk7CisJcmV0dXJuIGRvbmU7Cit9CisKK3N0YXRpYyB2b2lkIGN0X2luY29taW5nX3JlcXVlc3Rfd29ya2VyX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3KQoreworCXN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0ID0gY29udGFpbmVyX29mKHcsIHN0cnVjdCBpbnRlbF9ndWNfY3QsIHdvcmtlcik7CisJYm9vbCBkb25lOworCisJZG9uZSA9IGN0X3Byb2Nlc3NfaW5jb21pbmdfcmVxdWVzdHMoY3QpOworCWlmICghZG9uZSkKKwkJcXVldWVfd29yayhzeXN0ZW1fdW5ib3VuZF93cSwgJmN0LT53b3JrZXIpOworfQorCisvKioKKyAqIERPQzogQ1RCIEd1QyB0byBIb3N0IHJlcXVlc3QKKyAqCisgKiBGb3JtYXQgb2YgdGhlIENUQiBHdUMgdG8gSG9zdCByZXF1ZXN0IG1lc3NhZ2UgaXMgYXMgZm9sbG93czo6CisgKgorICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgICBtc2dbMF0gICB8ICAgWzFdICAgfCAgIFsyXSAgIHwgICBbM10gICB8ICAgLi4uICAgfCAgW24tMV0gIHwKKyAqICAgICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgTUVTU0FHRSAgfCAgICAgICBNRVNTQUdFIFBBWUxPQUQgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICsgICBIRUFERVIgICArLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKKyAqICAgICAgfCAgICAgICAgICAgIHwgICAgMCAgICB8ICAgIDEgICAgfCAgICAyICAgIHwgICAuLi4gICB8ICAgIG4gICAgfAorICogICAgICArPT09PT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rCisgKiAgICAgIHwgICAgIGxlbiAgICB8ICAgICAgICAgICAgcmVxdWVzdCBzcGVjaWZpYyBkYXRhICAgICAgICAgICAgICAgIHwKKyAqICAgICAgKy0tLS0tLSstLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICoKKyAqICAgICAgICAgICAgICAgICAgIF4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWxlbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXgorICovCisKK3N0YXRpYyBpbnQgY3RfaGFuZGxlX3JlcXVlc3Qoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsIGNvbnN0IHUzMiAqbXNnKQoreworCXUzMiBoZWFkZXIgPSBtc2dbMF07CisJdTMyIGxlbiA9IGN0X2hlYWRlcl9nZXRfbGVuKGhlYWRlcik7CisJdTMyIG1zZ2xlbiA9IGxlbiArIDE7IC8qIHRvdGFsIG1lc3NhZ2UgbGVuZ3RoIGluY2x1ZGluZyBoZWFkZXIgKi8KKwlzdHJ1Y3QgY3RfaW5jb21pbmdfcmVxdWVzdCAqcmVxdWVzdDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJR0VNX0JVR19PTihjdF9oZWFkZXJfaXNfcmVzcG9uc2UoaGVhZGVyKSk7CisKKwlyZXF1ZXN0ID0ga21hbGxvYyhzaXplb2YoKnJlcXVlc3QpICsgNCAqIG1zZ2xlbiwgR0ZQX0FUT01JQyk7CisJaWYgKHVubGlrZWx5KCFyZXF1ZXN0KSkgeworCQlEUk1fRVJST1IoIkNUOiBkcm9wcGluZyByZXF1ZXN0ICUqcGhcbiIsIDQgKiBtc2dsZW4sIG1zZyk7CisJCXJldHVybiAwOyAvKiBYWFg6IC1FTk9NRU0gPyAqLworCX0KKwltZW1jcHkocmVxdWVzdC0+bXNnLCBtc2csIDQgKiBtc2dsZW4pOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmN0LT5sb2NrLCBmbGFncyk7CisJbGlzdF9hZGRfdGFpbCgmcmVxdWVzdC0+bGluaywgJmN0LT5pbmNvbWluZ19yZXF1ZXN0cyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3QtPmxvY2ssIGZsYWdzKTsKKworCXF1ZXVlX3dvcmsoc3lzdGVtX3VuYm91bmRfd3EsICZjdC0+d29ya2VyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY3RfcHJvY2Vzc19ob3N0X2NoYW5uZWwoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpCit7CisJc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7CisJc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgKmN0YiA9ICZjdGNoLT5jdGJzW0NUQl9SRUNWXTsKKwl1MzIgbXNnW0dVQ19DVF9NU0dfTEVOX01BU0sgKyAxXTsgLyogb25lIGV4dHJhIGR3IGZvciB0aGUgaGVhZGVyICovCisJaW50IGVyciA9IDA7CisKKwlpZiAoIWN0Y2gtPmVuYWJsZWQpCisJCXJldHVybjsKKworCWRvIHsKKwkJZXJyID0gY3RiX3JlYWQoY3RiLCBtc2cpOworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisKKwkJaWYgKGN0X2hlYWRlcl9pc19yZXNwb25zZShtc2dbMF0pKQorCQkJZXJyID0gY3RfaGFuZGxlX3Jlc3BvbnNlKGN0LCBtc2cpOworCQllbHNlCisJCQllcnIgPSBjdF9oYW5kbGVfcmVxdWVzdChjdCwgbXNnKTsKKwl9IHdoaWxlICghZXJyKTsKKworCWlmIChHRU1fV0FSTl9PTihlcnIgPT0gLUVQUk9UTykpIHsKKwkJRFJNX0VSUk9SKCJDVDogY29ycnVwdGVkIG1lc3NhZ2UgZGV0ZWN0ZWQhXG4iKTsKKwkJY3RiLT5kZXNjLT5pc19pbl9lcnJvciA9IDE7CisJfQorfQorCisvKgorICogV2hlbiB3ZSdyZSBjb21tdW5pY2F0aW5nIHdpdGggdGhlIEd1QyBvdmVyIENULCBHdUMgdXNlcyBldmVudHMKKyAqIHRvIG5vdGlmeSB1cyBhYm91dCBuZXcgbWVzc2FnZXMgYmVpbmcgcG9zdGVkIG9uIHRoZSBSRUNWIGJ1ZmZlci4KKyAqLwordm9pZCBpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyX2N0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCA9ICZndWMtPmN0OworCisJY3RfcHJvY2Vzc19ob3N0X2NoYW5uZWwoY3QpOworfQorCisvKioKKyAqIGludGVsX2d1Y19jdF9pbml0IC0gSW5pdCBDVCBjb21tdW5pY2F0aW9uCisgKiBAY3Q6IHBvaW50ZXIgdG8gQ1Qgc3RydWN0CisgKgorICogQWxsb2NhdGUgbWVtb3J5IHJlcXVpcmVkIGZvciBjb21tdW5pY2F0aW9uIHZpYQorICogdGhlIENUIGNoYW5uZWwuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIGEgbmVnYXRpdmUgZXJybm8gY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgaW50ZWxfZ3VjX2N0X2luaXQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gY3RfdG9fZ3VjKGN0KTsKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2NoYW5uZWwgKmN0Y2ggPSAmY3QtPmhvc3RfY2hhbm5lbDsKKwlpbnQgZXJyOworCisJZXJyID0gY3RjaF9pbml0KGd1YywgY3RjaCk7CisJaWYgKHVubGlrZWx5KGVycikpIHsKKwkJRFJNX0VSUk9SKCJDVDogY2FuJ3Qgb3BlbiBjaGFubmVsICVkOyBlcnI9JWRcbiIsCisJCQkgIGN0Y2gtPm93bmVyLCBlcnIpOworCQlyZXR1cm4gZXJyOworCX0KKworCUdFTV9CVUdfT04oIWN0Y2gtPnZtYSk7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogaW50ZWxfZ3VjX2N0X2ZpbmkgLSBGaW5pIENUIGNvbW11bmljYXRpb24KKyAqIEBjdDogcG9pbnRlciB0byBDVCBzdHJ1Y3QKKyAqCisgKiBEZWFsbG9jYXRlIG1lbW9yeSByZXF1aXJlZCBmb3IgY29tbXVuaWNhdGlvbiB2aWEKKyAqIHRoZSBDVCBjaGFubmVsLgorICovCit2b2lkIGludGVsX2d1Y19jdF9maW5pKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KQoreworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGN0X3RvX2d1YyhjdCk7CisJc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7CisKKwljdGNoX2ZpbmkoZ3VjLCBjdGNoKTsKK30KKworLyoqCisgKiBpbnRlbF9ndWNfY3RfZW5hYmxlIC0gRW5hYmxlIGJ1ZmZlciBiYXNlZCBjb21tYW5kIHRyYW5zcG9ydC4KKyAqIEBjdDogcG9pbnRlciB0byBDVCBzdHJ1Y3QKKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgYSBuZWdhdGl2ZSBlcnJubyBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBpbnRlbF9ndWNfY3RfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KQoreworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGN0X3RvX2d1YyhjdCk7CisJc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7CisKKwlpZiAoY3RjaC0+ZW5hYmxlZCkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gY3RjaF9lbmFibGUoZ3VjLCBjdGNoKTsKK30KKworLyoqCisgKiBpbnRlbF9ndWNfY3RfZGlzYWJsZSAtIERpc2FibGUgYnVmZmVyIGJhc2VkIGNvbW1hbmQgdHJhbnNwb3J0LgorICogQGN0OiBwb2ludGVyIHRvIENUIHN0cnVjdAorICovCit2b2lkIGludGVsX2d1Y19jdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KQoreworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGN0X3RvX2d1YyhjdCk7CisJc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7CisKKwlpZiAoIWN0Y2gtPmVuYWJsZWQpCisJCXJldHVybjsKKworCWN0Y2hfZGlzYWJsZShndWMsIGN0Y2gpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzI0ZDgzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmgKQEAgLTAsMCArMSw5MyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE2LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9JTlRFTF9HVUNfQ1RfSF8KKyNkZWZpbmUgX0lOVEVMX0dVQ19DVF9IXworCisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KKworI2luY2x1ZGUgImludGVsX2d1Y19md2lmLmgiCisKK3N0cnVjdCBpOTE1X3ZtYTsKK3N0cnVjdCBpbnRlbF9ndWM7CisKKy8qKgorICogRE9DOiBDb21tYW5kIFRyYW5zcG9ydCAoQ1QpLgorICoKKyAqIEJ1ZmZlciBiYXNlZCBjb21tYW5kIHRyYW5zcG9ydCBpcyBhIHJlcGxhY2VtZW50IGZvciBNTUlPIGJhc2VkIG1lY2hhbmlzbS4KKyAqIEl0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gYm90aCBob3N0LTItZ3VjIGFuZCBndWMtdG8taG9zdCBjb21tdW5pY2F0aW9uLgorICovCisKKy8qKiBSZXByZXNlbnRzIHNpbmdsZSBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIuCisgKgorICogQSBzaW5nbGUgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyIGNvbnNpc3RzIG9mIHR3byBwYXJ0cywgdGhlIGhlYWRlcgorICogcmVjb3JkIChjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIgZGVzY3JpcHRvcikgYW5kIHRoZSBhY3R1YWwgYnVmZmVyIHdoaWNoCisgKiBob2xkcyB0aGUgY29tbWFuZHMuCisgKgorICogQGRlc2M6IHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBkZXNjcmlwdG9yCisgKiBAY21kczogcG9pbnRlciB0byB0aGUgY29tbWFuZHMgYnVmZmVyCisgKi8KK3N0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyIHsKKwlzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjOworCXUzMiAqY21kczsKK307CisKKy8qKiBSZXByZXNlbnRzIHBhaXIgb2YgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVycy4KKyAqCisgKiBCdWZmZXJzIGdvIGluIHBhaXJzIHRvIGFsbG93IGJpLWRpcmVjdGlvbmFsIGNvbW11bmljYXRpb24uCisgKiBUbyBzaW1wbGlmeSB0aGUgY29kZSB3ZSBwbGFjZSBib3RoIG9mIHRoZW0gaW4gdGhlIHNhbWUgdm1hLgorICogQnVmZmVycyBmcm9tIHRoZSBzYW1lIHBhaXIgbXVzdCBzaGFyZSB1bmlxdWUgb3duZXIgaWQuCisgKgorICogQHZtYTogcG9pbnRlciB0byB0aGUgdm1hIHdpdGggcGFpciBvZiBDVCBidWZmZXJzCisgKiBAY3RiczogYnVmZmVycyBmb3Igc2VuZGluZygwKSBhbmQgcmVjZWl2aW5nKDEpIGNvbW1hbmRzCisgKiBAb3duZXI6IHVuaXF1ZSBpZGVudGlmaWVyCisgKiBAbmV4dF9mZW5jZTogZmVuY2UgdG8gYmUgdXNlZCB3aXRoIG5leHQgc2VuZCBjb21tYW5kCisgKi8KK3N0cnVjdCBpbnRlbF9ndWNfY3RfY2hhbm5lbCB7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgY3Ric1syXTsKKwl1MzIgb3duZXI7CisJdTMyIG5leHRfZmVuY2U7CisJYm9vbCBlbmFibGVkOworfTsKKworLyoqIEhvbGRzIGFsbCBjb21tYW5kIHRyYW5zcG9ydCBjaGFubmVscy4KKyAqCisgKiBAaG9zdF9jaGFubmVsOiBtYWluIGNoYW5uZWwgdXNlZCBieSB0aGUgaG9zdAorICovCitzdHJ1Y3QgaW50ZWxfZ3VjX2N0IHsKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2NoYW5uZWwgaG9zdF9jaGFubmVsOworCS8qIG90aGVyIGNoYW5uZWxzIGFyZSB0YmQgKi8KKworCS8qKiBAbG9jazogcHJvdGVjdHMgcGVuZGluZyByZXF1ZXN0cyBsaXN0ICovCisJc3BpbmxvY2tfdCBsb2NrOworCisJLyoqIEBwZW5kaW5nX3JlcXVlc3RzOiBsaXN0IG9mIHJlcXVlc3RzIHdhaXRpbmcgZm9yIHJlc3BvbnNlICovCisJc3RydWN0IGxpc3RfaGVhZCBwZW5kaW5nX3JlcXVlc3RzOworCisJLyoqIEBpbmNvbWluZ19yZXF1ZXN0czogbGlzdCBvZiBpbmNvbWluZyByZXF1ZXN0cyAqLworCXN0cnVjdCBsaXN0X2hlYWQgaW5jb21pbmdfcmVxdWVzdHM7CisKKwkvKiogQHdvcmtlcjogd29ya2VyIGZvciBoYW5kbGluZyBpbmNvbWluZyByZXF1ZXN0cyAqLworCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrZXI7Cit9OworCit2b2lkIGludGVsX2d1Y19jdF9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KTsKK2ludCBpbnRlbF9ndWNfY3RfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCk7Cit2b2lkIGludGVsX2d1Y19jdF9maW5pKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KTsKK2ludCBpbnRlbF9ndWNfY3RfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KTsKK3ZvaWQgaW50ZWxfZ3VjX2N0X2Rpc2FibGUoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpOworCitzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZ3VjX2N0X3N0b3Aoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpCit7CisJY3QtPmhvc3RfY2hhbm5lbC5lbmFibGVkID0gZmFsc2U7Cit9CisKK2ludCBpbnRlbF9ndWNfc2VuZF9jdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9uLCB1MzIgbGVuLAorCQkgICAgICB1MzIgKnJlc3BvbnNlX2J1ZiwgdTMyIHJlc3BvbnNlX2J1Zl9zaXplKTsKK3ZvaWQgaW50ZWxfZ3VjX3RvX2hvc3RfZXZlbnRfaGFuZGxlcl9jdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOworCisjZW5kaWYgLyogX0lOVEVMX0dVQ19DVF9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Z3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZncuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTI4MjI0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Z3LmMKQEAgLTAsMCArMSwxNjYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0aG9yczoKKyAqICAgIFZpbml0IEF6YWQgPHZpbml0LmF6YWRAaW50ZWwuY29tPgorICogICAgQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0PgorICogICAgRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KKyAqICAgIEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgorICovCisKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgorI2luY2x1ZGUgImludGVsX2d1Y19mdy5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKKy8qKgorICogaW50ZWxfZ3VjX2Z3X2luaXRfZWFybHkoKSAtIGluaXRpYWxpemVzIEd1QyBmaXJtd2FyZSBzdHJ1Y3QKKyAqIEBndWM6IGludGVsX2d1YyBzdHJ1Y3QKKyAqCisgKiBPbiBwbGF0Zm9ybXMgd2l0aCBHdUMgc2VsZWN0cyBmaXJtd2FyZSBmb3IgdXBsb2FkaW5nCisgKi8KK3ZvaWQgaW50ZWxfZ3VjX2Z3X2luaXRfZWFybHkoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3RvX2d0KGd1YyktPmk5MTU7CisKKwlpbnRlbF91Y19md19pbml0X2Vhcmx5KCZndWMtPmZ3LCBJTlRFTF9VQ19GV19UWVBFX0dVQywgSEFTX0dUX1VDKGk5MTUpLAorCQkJICAgICAgIElOVEVMX0lORk8oaTkxNSktPnBsYXRmb3JtLCBJTlRFTF9SRVZJRChpOTE1KSk7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19wcmVwYXJlX3hmZXIoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQoreworCXUzMiBzaGltX2ZsYWdzID0gR1VDX0RJU0FCTEVfU1JBTV9JTklUX1RPX1pFUk9FUyB8CisJCQkgR1VDX0VOQUJMRV9SRUFEX0NBQ0hFX0xPR0lDIHwKKwkJCSBHVUNfRU5BQkxFX01JQV9DQUNISU5HIHwKKwkJCSBHVUNfRU5BQkxFX1JFQURfQ0FDSEVfRk9SX1NSQU1fREFUQSB8CisJCQkgR1VDX0VOQUJMRV9SRUFEX0NBQ0hFX0ZPUl9XT1BDTV9EQVRBIHwKKwkJCSBHVUNfRU5BQkxFX01JQV9DTE9DS19HQVRJTkc7CisKKwkvKiBNdXN0IHByb2dyYW0gdGhpcyByZWdpc3RlciBiZWZvcmUgbG9hZGluZyB0aGUgdWNvZGUgd2l0aCBETUEgKi8KKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHVUNfU0hJTV9DT05UUk9MLCBzaGltX2ZsYWdzKTsKKworCWlmIChJU19HRU45X0xQKHVuY29yZS0+aTkxNSkpCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjlMUF9HVF9QTV9DT05GSUcsIEdUX0RPT1JCRUxMX0VOQUJMRSk7CisJZWxzZQorCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU45X0dUX1BNX0NPTkZJRywgR1RfRE9PUkJFTExfRU5BQkxFKTsKKworCWlmIChJU19HRU4odW5jb3JlLT5pOTE1LCA5KSkgeworCQkvKiBET1AgQ2xvY2sgR2F0aW5nIEVuYWJsZSBmb3IgR3VDIGNsb2NrcyAqLworCQlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgR0VON19NSVNDQ1BDVEwsCisJCQkJIDAsIEdFTjhfRE9QX0NMT0NLX0dBVEVfR1VDX0VOQUJMRSk7CisKKwkJLyogYWxsb3dzIGZvciA1dXMgKGluIDEwbnMgdW5pdHMpIGJlZm9yZSBHVCBjYW4gZ28gdG8gUkM2ICovCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdVQ19BUkFUX0M2RElTLCAweDFGRik7CisJfQorfQorCisvKiBDb3B5IFJTQSBzaWduYXR1cmUgZnJvbSB0aGUgZncgaW1hZ2UgdG8gSFcgZm9yIHZlcmlmaWNhdGlvbiAqLworc3RhdGljIHZvaWQgZ3VjX3hmZXJfcnNhKHN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3LAorCQkJIHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKK3sKKwl1MzIgcnNhW1VPU19SU0FfU0NSQVRDSF9DT1VOVF07CisJc2l6ZV90IGNvcGllZDsKKwlpbnQgaTsKKworCWNvcGllZCA9IGludGVsX3VjX2Z3X2NvcHlfcnNhKGd1Y19mdywgcnNhLCBzaXplb2YocnNhKSk7CisJR0VNX0JVR19PTihjb3BpZWQgPCBzaXplb2YocnNhKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgVU9TX1JTQV9TQ1JBVENIX0NPVU5UOyBpKyspCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIFVPU19SU0FfU0NSQVRDSChpKSwgcnNhW2ldKTsKK30KKworLyoKKyAqIFJlYWQgdGhlIEd1QyBzdGF0dXMgcmVnaXN0ZXIgKEdVQ19TVEFUVVMpIGFuZCBzdG9yZSBpdCBpbiB0aGUKKyAqIHNwZWNpZmllZCBsb2NhdGlvbjsgdGhlbiByZXR1cm4gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlcgorICogdGhlIHZhbHVlIG1hdGNoZXMgZWl0aGVyIG9mIHR3byB2YWx1ZXMgcmVwcmVzZW50aW5nIGNvbXBsZXRpb24KKyAqIG9mIHRoZSBHdUMgYm9vdCBwcm9jZXNzLgorICoKKyAqIFRoaXMgaXMgdXNlZCBmb3IgcG9sbGluZyB0aGUgR3VDIHN0YXR1cyBpbiBhIHdhaXRfZm9yKCkKKyAqIGxvb3AgYmVsb3cuCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBndWNfcmVhZHkoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCB1MzIgKnN0YXR1cykKK3sKKwl1MzIgdmFsID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBHVUNfU1RBVFVTKTsKKwl1MzIgdWtfdmFsID0gdmFsICYgR1NfVUtFUk5FTF9NQVNLOworCisJKnN0YXR1cyA9IHZhbDsKKwlyZXR1cm4gKHVrX3ZhbCA9PSBHU19VS0VSTkVMX1JFQURZKSB8fAorCQkoKHZhbCAmIEdTX01JQV9DT1JFX1NUQVRFKSAmJiAodWtfdmFsID09IEdTX1VLRVJORUxfTEFQSUNfRE9ORSkpOworfQorCitzdGF0aWMgaW50IGd1Y193YWl0X3Vjb2RlKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKK3sKKwl1MzIgc3RhdHVzOworCWludCByZXQ7CisKKwkvKgorCSAqIFdhaXQgZm9yIHRoZSBHdUMgdG8gc3RhcnQgdXAuCisJICogTkI6IERvY3MgcmVjb21tZW5kIG5vdCB1c2luZyB0aGUgaW50ZXJydXB0IGZvciBjb21wbGV0aW9uLgorCSAqIE1lYXN1cmVtZW50cyBpbmRpY2F0ZSB0aGlzIHNob3VsZCB0YWtlIG5vIG1vcmUgdGhhbiAyMG1zLCBzbyBhCisJICogdGltZW91dCBoZXJlIGluZGljYXRlcyB0aGF0IHRoZSBHdUMgaGFzIGZhaWxlZCBhbmQgaXMgdW51c2FibGUuCisJICogKEhpZ2hlciBsZXZlbHMgb2YgdGhlIGRyaXZlciBtYXkgZGVjaWRlIHRvIHJlc2V0IHRoZSBHdUMgYW5kCisJICogYXR0ZW1wdCB0aGUgdWNvZGUgbG9hZCBhZ2FpbiBpZiB0aGlzIGhhcHBlbnMuKQorCSAqLworCXJldCA9IHdhaXRfZm9yKGd1Y19yZWFkeSh1bmNvcmUsICZzdGF0dXMpLCAxMDApOworCURSTV9ERUJVR19EUklWRVIoIkd1QyBzdGF0dXMgJSN4XG4iLCBzdGF0dXMpOworCisJaWYgKChzdGF0dXMgJiBHU19CT09UUk9NX01BU0spID09IEdTX0JPT1RST01fUlNBX0ZBSUxFRCkgeworCQlEUk1fRVJST1IoIkd1QyBmaXJtd2FyZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGZhaWxlZFxuIik7CisJCXJldCA9IC1FTk9FWEVDOworCX0KKworCWlmICgoc3RhdHVzICYgR1NfVUtFUk5FTF9NQVNLKSA9PSBHU19VS0VSTkVMX0VYQ0VQVElPTikgeworCQlEUk1fRVJST1IoIkd1QyBmaXJtd2FyZSBleGNlcHRpb24uIEVJUDogJSN4XG4iLAorCQkJICBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIFNPRlRfU0NSQVRDSCgxMykpKTsKKwkJcmV0ID0gLUVOWElPOworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qKgorICogaW50ZWxfZ3VjX2Z3X3VwbG9hZCgpIC0gbG9hZCBHdUMgdUNvZGUgdG8gZGV2aWNlCisgKiBAZ3VjOiBpbnRlbF9ndWMgc3RydWN0dXJlCisgKgorICogQ2FsbGVkIGZyb20gaW50ZWxfdWNfaW5pdF9odygpIGR1cmluZyBkcml2ZXIgbG9hZCwgcmVzdW1lIGZyb20gc2xlZXAgYW5kCisgKiBhZnRlciBhIEdQVSByZXNldC4KKyAqCisgKiBUaGUgZmlybXdhcmUgaW1hZ2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIGZldGNoZWQgaW50byBtZW1vcnksIHNvIG9ubHkKKyAqIGNoZWNrIHRoYXQgZmV0Y2ggc3VjY2VlZGVkLCBhbmQgdGhlbiB0cmFuc2ZlciB0aGUgaW1hZ2UgdG8gdGhlIGgvdy4KKyAqCisgKiBSZXR1cm46CW5vbi16ZXJvIGNvZGUgb24gZXJyb3IKKyAqLworaW50IGludGVsX2d1Y19md191cGxvYWQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBndWNfdG9fZ3QoZ3VjKTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3JlOworCWludCByZXQ7CisKKwlndWNfcHJlcGFyZV94ZmVyKHVuY29yZSk7CisKKwkvKgorCSAqIE5vdGUgdGhhdCBHdUMgbmVlZHMgdGhlIENTUyBoZWFkZXIgcGx1cyB1S2VybmVsIGNvZGUgdG8gYmUgY29waWVkCisJICogYnkgdGhlIERNQSBlbmdpbmUgaW4gb25lIG9wZXJhdGlvbiwgd2hlcmVhcyB0aGUgUlNBIHNpZ25hdHVyZSBpcworCSAqIGxvYWRlZCB2aWEgTU1JTy4KKwkgKi8KKwlndWNfeGZlcl9yc2EoJmd1Yy0+ZncsIHVuY29yZSk7CisKKwkvKgorCSAqIEN1cnJlbnQgdUNvZGUgZXhwZWN0cyB0aGUgY29kZSB0byBiZSBsb2FkZWQgYXQgOGs7IGxvY2F0aW9ucyBiZWxvdworCSAqIHRoaXMgYXJlIHVzZWQgZm9yIHRoZSBzdGFjay4KKwkgKi8KKwlyZXQgPSBpbnRlbF91Y19md191cGxvYWQoJmd1Yy0+ZncsIGd0LCAweDIwMDAsIFVPU19NT1ZFKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCXJldCA9IGd1Y193YWl0X3Vjb2RlKHVuY29yZSk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlpbnRlbF91Y19md19jaGFuZ2Vfc3RhdHVzKCZndWMtPmZ3LCBJTlRFTF9VQ19GSVJNV0FSRV9SVU5OSU5HKTsKKwlyZXR1cm4gMDsKKworb3V0OgorCWludGVsX3VjX2Z3X2NoYW5nZV9zdGF0dXMoJmd1Yy0+ZncsIElOVEVMX1VDX0ZJUk1XQVJFX0ZBSUwpOworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZncuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19mdy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1YWI2MzkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZncuaApAQCAtMCwwICsxLDE0IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTctMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX0lOVEVMX0dVQ19GV19IXworI2RlZmluZSBfSU5URUxfR1VDX0ZXX0hfCisKK3N0cnVjdCBpbnRlbF9ndWM7CisKK3ZvaWQgaW50ZWxfZ3VjX2Z3X2luaXRfZWFybHkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK2ludCBpbnRlbF9ndWNfZndfdXBsb2FkKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Z3aWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19md2lmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQzY2RkNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19md2lmLmgKQEAgLTAsMCArMSw2MDQgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfSU5URUxfR1VDX0ZXSUZfSAorI2RlZmluZSBfSU5URUxfR1VDX0ZXSUZfSAorCisjaW5jbHVkZSA8bGludXgvYml0cy5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2RlZmluZSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdICTAKKyNkZWZpbmUgR1VDX0NMSUVOVF9QUklPUklUWV9ISUdICTEKKyNkZWZpbmUgR1VDX0NMSUVOVF9QUklPUklUWV9LTURfTk9STUFMCTIKKyNkZWZpbmUgR1VDX0NMSUVOVF9QUklPUklUWV9OT1JNQUwJMworI2RlZmluZSBHVUNfQ0xJRU5UX1BSSU9SSVRZX05VTQkJNAorCisjZGVmaW5lIEdVQ19NQVhfU1RBR0VfREVTQ1JJUFRPUlMJMTAyNAorI2RlZmluZQlHVUNfSU5WQUxJRF9TVEFHRV9JRAkJR1VDX01BWF9TVEFHRV9ERVNDUklQVE9SUworCisjZGVmaW5lIEdVQ19SRU5ERVJfRU5HSU5FCQkwCisjZGVmaW5lIEdVQ19WSURFT19FTkdJTkUJCTEKKyNkZWZpbmUgR1VDX0JMSVRURVJfRU5HSU5FCQkyCisjZGVmaW5lIEdVQ19WSURFT0VOSEFOQ0VfRU5HSU5FCQkzCisjZGVmaW5lIEdVQ19WSURFT19FTkdJTkUyCQk0CisjZGVmaW5lIEdVQ19NQVhfRU5HSU5FU19OVU0JCShHVUNfVklERU9fRU5HSU5FMiArIDEpCisKKyNkZWZpbmUgR1VDX01BWF9FTkdJTkVfQ0xBU1NFUwkJNQorI2RlZmluZSBHVUNfTUFYX0lOU1RBTkNFU19QRVJfQ0xBU1MJMTYKKworI2RlZmluZSBHVUNfRE9PUkJFTExfSU5WQUxJRAkJMjU2CisKKyNkZWZpbmUgR1VDX0RCX1NJWkUJCQkoUEFHRV9TSVpFKQorI2RlZmluZSBHVUNfV1FfU0laRQkJCShQQUdFX1NJWkUgKiAyKQorCisvKiBXb3JrIHF1ZXVlIGl0ZW0gaGVhZGVyIGRlZmluaXRpb25zICovCisjZGVmaW5lIFdRX1NUQVRVU19BQ1RJVkUJCTEKKyNkZWZpbmUgV1FfU1RBVFVTX1NVU1BFTkRFRAkJMgorI2RlZmluZSBXUV9TVEFUVVNfQ01EX0VSUk9SCQkzCisjZGVmaW5lIFdRX1NUQVRVU19FTkdJTkVfSURfTk9UX1VTRUQJNAorI2RlZmluZSBXUV9TVEFUVVNfU1VTUEVOREVEX0ZST01fUkVTRVQJNQorI2RlZmluZSBXUV9UWVBFX1NISUZUCQkJMAorI2RlZmluZSAgIFdRX1RZUEVfQkFUQ0hfQlVGCQkoMHgxIDw8IFdRX1RZUEVfU0hJRlQpCisjZGVmaW5lICAgV1FfVFlQRV9QU0VVRE8JCSgweDIgPDwgV1FfVFlQRV9TSElGVCkKKyNkZWZpbmUgICBXUV9UWVBFX0lOT1JERVIJCSgweDMgPDwgV1FfVFlQRV9TSElGVCkKKyNkZWZpbmUgICBXUV9UWVBFX05PT1AJCQkoMHg0IDw8IFdRX1RZUEVfU0hJRlQpCisjZGVmaW5lIFdRX1RBUkdFVF9TSElGVAkJCTEwCisjZGVmaW5lIFdRX0xFTl9TSElGVAkJCTE2CisjZGVmaW5lIFdRX05PX1dDRkxVU0hfV0FJVAkJKDEgPDwgMjcpCisjZGVmaW5lIFdRX1BSRVNFTlRfV09SS0xPQUQJCSgxIDw8IDI4KQorCisjZGVmaW5lIFdRX1JJTkdfVEFJTF9TSElGVAkJMjAKKyNkZWZpbmUgV1FfUklOR19UQUlMX01BWAkJMHg3RkYJLyogMl4xMSBRV29yZHMgKi8KKyNkZWZpbmUgV1FfUklOR19UQUlMX01BU0sJCShXUV9SSU5HX1RBSUxfTUFYIDw8IFdRX1JJTkdfVEFJTF9TSElGVCkKKworI2RlZmluZSBHVUNfU1RBR0VfREVTQ19BVFRSX0FDVElWRQlCSVQoMCkKKyNkZWZpbmUgR1VDX1NUQUdFX0RFU0NfQVRUUl9QRU5ESU5HX0RCCUJJVCgxKQorI2RlZmluZSBHVUNfU1RBR0VfREVTQ19BVFRSX0tFUk5FTAlCSVQoMikKKyNkZWZpbmUgR1VDX1NUQUdFX0RFU0NfQVRUUl9QUkVFTVBUCUJJVCgzKQorI2RlZmluZSBHVUNfU1RBR0VfREVTQ19BVFRSX1JFU0VUCUJJVCg0KQorI2RlZmluZSBHVUNfU1RBR0VfREVTQ19BVFRSX1dRTE9DS0VECUJJVCg1KQorI2RlZmluZSBHVUNfU1RBR0VfREVTQ19BVFRSX1BDSAkJQklUKDYpCisjZGVmaW5lIEdVQ19TVEFHRV9ERVNDX0FUVFJfVEVSTUlOQVRFRAlCSVQoNykKKworLyogTmV3IEd1QyBjb250cm9sIGRhdGEgKi8KKyNkZWZpbmUgR1VDX0NUTF9DVFhJTkZPCQkJMAorI2RlZmluZSAgIEdVQ19DVExfQ1RYTlVNX0lOMTZfU0hJRlQJMAorI2RlZmluZSAgIEdVQ19DVExfQkFTRV9BRERSX1NISUZUCTEyCisKKyNkZWZpbmUgR1VDX0NUTF9MT0dfUEFSQU1TCQkxCisjZGVmaW5lICAgR1VDX0xPR19WQUxJRAkJCSgxIDw8IDApCisjZGVmaW5lICAgR1VDX0xPR19OT1RJRllfT05fSEFMRl9GVUxMCSgxIDw8IDEpCisjZGVmaW5lICAgR1VDX0xPR19BTExPQ19JTl9NRUdBQllURQkoMSA8PCAzKQorI2RlZmluZSAgIEdVQ19MT0dfQ1JBU0hfU0hJRlQJCTQKKyNkZWZpbmUgICBHVUNfTE9HX0NSQVNIX01BU0sJCSgweDMgPDwgR1VDX0xPR19DUkFTSF9TSElGVCkKKyNkZWZpbmUgICBHVUNfTE9HX0RQQ19TSElGVAkJNgorI2RlZmluZSAgIEdVQ19MT0dfRFBDX01BU0sJICAgICAgICAoMHg3IDw8IEdVQ19MT0dfRFBDX1NISUZUKQorI2RlZmluZSAgIEdVQ19MT0dfSVNSX1NISUZUCQk5CisjZGVmaW5lICAgR1VDX0xPR19JU1JfTUFTSwkgICAgICAgICgweDcgPDwgR1VDX0xPR19JU1JfU0hJRlQpCisjZGVmaW5lICAgR1VDX0xPR19CVUZfQUREUl9TSElGVAkxMgorCisjZGVmaW5lIEdVQ19DVExfV0EJCQkyCisjZGVmaW5lIEdVQ19DVExfRkVBVFVSRQkJCTMKKyNkZWZpbmUgICBHVUNfQ1RMX0RJU0FCTEVfU0NIRURVTEVSCSgxIDw8IDE0KQorCisjZGVmaW5lIEdVQ19DVExfREVCVUcJCQk0CisjZGVmaW5lICAgR1VDX0xPR19WRVJCT1NJVFlfU0hJRlQJMAorI2RlZmluZSAgIEdVQ19MT0dfVkVSQk9TSVRZX0xPVwkJKDAgPDwgR1VDX0xPR19WRVJCT1NJVFlfU0hJRlQpCisjZGVmaW5lICAgR1VDX0xPR19WRVJCT1NJVFlfTUVECQkoMSA8PCBHVUNfTE9HX1ZFUkJPU0lUWV9TSElGVCkKKyNkZWZpbmUgICBHVUNfTE9HX1ZFUkJPU0lUWV9ISUdICSgyIDw8IEdVQ19MT0dfVkVSQk9TSVRZX1NISUZUKQorI2RlZmluZSAgIEdVQ19MT0dfVkVSQk9TSVRZX1VMVFJBCSgzIDw8IEdVQ19MT0dfVkVSQk9TSVRZX1NISUZUKQorLyogVmVyYm9zaXR5IHJhbmdlLWNoZWNrIGxpbWl0cywgd2l0aG91dCB0aGUgc2hpZnQgKi8KKyNkZWZpbmUJICBHVUNfTE9HX1ZFUkJPU0lUWV9NSU4JCTAKKyNkZWZpbmUJICBHVUNfTE9HX1ZFUkJPU0lUWV9NQVgJCTMKKyNkZWZpbmUJICBHVUNfTE9HX1ZFUkJPU0lUWV9NQVNLCTB4MDAwMDAwMGYKKyNkZWZpbmUJICBHVUNfTE9HX0RFU1RJTkFUSU9OX01BU0sJKDMgPDwgNCkKKyNkZWZpbmUgICBHVUNfTE9HX0RJU0FCTEVECQkoMSA8PCA2KQorI2RlZmluZSAgIEdVQ19QUk9GSUxFX0VOQUJMRUQJCSgxIDw8IDcpCisKKyNkZWZpbmUgR1VDX0NUTF9BRFMJCQk1CisjZGVmaW5lICAgR1VDX0FEU19BRERSX1NISUZUCQkxCisjZGVmaW5lICAgR1VDX0FEU19BRERSX01BU0sJCSgweEZGRkZGIDw8IEdVQ19BRFNfQUREUl9TSElGVCkKKworI2RlZmluZSBHVUNfQ1RMX01BWF9EV09SRFMJCShTT0ZUX1NDUkFUQ0hfQ09VTlQgLSAyKSAvKiBbMS4uMTRdICovCisKKy8qIFdvcmsgaXRlbSBmb3Igc3VibWl0dGluZyB3b3JrbG9hZHMgaW50byB3b3JrIHF1ZXVlIG9mIEd1Qy4gKi8KK3N0cnVjdCBndWNfd3FfaXRlbSB7CisJdTMyIGhlYWRlcjsKKwl1MzIgY29udGV4dF9kZXNjOworCXUzMiBzdWJtaXRfZWxlbWVudF9pbmZvOworCXUzMiBmZW5jZV9pZDsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCBndWNfcHJvY2Vzc19kZXNjIHsKKwl1MzIgc3RhZ2VfaWQ7CisJdTY0IGRiX2Jhc2VfYWRkcjsKKwl1MzIgaGVhZDsKKwl1MzIgdGFpbDsKKwl1MzIgZXJyb3Jfb2Zmc2V0OworCXU2NCB3cV9iYXNlX2FkZHI7CisJdTMyIHdxX3NpemVfYnl0ZXM7CisJdTMyIHdxX3N0YXR1czsKKwl1MzIgZW5naW5lX3ByZXNlbmNlOworCXUzMiBwcmlvcml0eTsKKwl1MzIgcmVzZXJ2ZWRbMzBdOworfSBfX3BhY2tlZDsKKworLyogZW5naW5lIGlkIGFuZCBjb250ZXh0IGlkIGlzIHBhY2tlZCBpbnRvIGd1Y19leGVjbGlzdF9jb250ZXh0LmNvbnRleHRfaWQqLworI2RlZmluZSBHVUNfRUxDX0NUWElEX09GRlNFVAkJMAorI2RlZmluZSBHVUNfRUxDX0VOR0lORV9PRkZTRVQJCTI5CisKKy8qIFRoZSBleGVjbGlzdCBjb250ZXh0IGluY2x1ZGluZyBzb2Z0d2FyZSBhbmQgSFcgaW5mb3JtYXRpb24gKi8KK3N0cnVjdCBndWNfZXhlY2xpc3RfY29udGV4dCB7CisJdTMyIGNvbnRleHRfZGVzYzsKKwl1MzIgY29udGV4dF9pZDsKKwl1MzIgcmluZ19zdGF0dXM7CisJdTMyIHJpbmdfbHJjYTsKKwl1MzIgcmluZ19iZWdpbjsKKwl1MzIgcmluZ19lbmQ7CisJdTMyIHJpbmdfbmV4dF9mcmVlX2xvY2F0aW9uOworCXUzMiByaW5nX2N1cnJlbnRfdGFpbF9wb2ludGVyX3ZhbHVlOworCXU4IGVuZ2luZV9zdGF0ZV9zdWJtaXRfdmFsdWU7CisJdTggZW5naW5lX3N0YXRlX3dhaXRfdmFsdWU7CisJdTE2IHBhZ2VmYXVsdF9jb3VudDsKKwl1MTYgZW5naW5lX3N1Ym1pdF9xdWV1ZV9jb3VudDsKK30gX19wYWNrZWQ7CisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSBkZXNjcmliZXMgYSBzdGFnZSBzZXQgYXJyYW5nZWQgZm9yIGEgcGFydGljdWxhciBjb21tdW5pY2F0aW9uCisgKiBiZXR3ZWVuIHVLZXJuZWwgKEd1QykgYW5kIERyaXZlciAoS01EKS4gVGVjaG5pY2FsbHksIHRoaXMgaXMga25vd24gYXMgYQorICogIkd1QyBDb250ZXh0IGRlc2NyaXB0b3IiIGluIHRoZSBzcGVjcywgYnV0IHdlIHVzZSB0aGUgdGVybSAic3RhZ2UgZGVzY3JpcHRvciIKKyAqIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIGFsbCB0aGUgb3RoZXIgdGhpbmdzIGFscmVhZHkgbmFtZWQgImNvbnRleHQiIGluIHRoZQorICogZHJpdmVyLiBBIHN0YXRpYyBwb29sIG9mIHRoZXNlIGRlc2NyaXB0b3JzIGFyZSBzdG9yZWQgaW5zaWRlIGEgR0VNIG9iamVjdAorICogKHN0YWdlX2Rlc2NfcG9vbCkgd2hpY2ggaXMgaGVsZCBmb3IgdGhlIGVudGlyZSBsaWZldGltZSBvZiBvdXIgaW50ZXJhY3Rpb24KKyAqIHdpdGggdGhlIEd1QywgYmVpbmcgYWxsb2NhdGVkIGJlZm9yZSB0aGUgR3VDIGlzIGxvYWRlZCB3aXRoIGl0cyBmaXJtd2FyZS4KKyAqLworc3RydWN0IGd1Y19zdGFnZV9kZXNjIHsKKwl1MzIgc2NoZWRfY29tbW9uX2FyZWE7CisJdTMyIHN0YWdlX2lkOworCXUzMiBwYXNfaWQ7CisJdTggZW5naW5lc191c2VkOworCXU2NCBkYl90cmlnZ2VyX2NwdTsKKwl1MzIgZGJfdHJpZ2dlcl91azsKKwl1NjQgZGJfdHJpZ2dlcl9waHk7CisJdTE2IGRiX2lkOworCisJc3RydWN0IGd1Y19leGVjbGlzdF9jb250ZXh0IGxyY1tHVUNfTUFYX0VOR0lORVNfTlVNXTsKKworCXU4IGF0dHJpYnV0ZTsKKworCXUzMiBwcmlvcml0eTsKKworCXUzMiB3cV9zYW1wbGVkX3RhaWxfb2Zmc2V0OworCXUzMiB3cV90b3RhbF9zdWJtaXRfZW5xdWV1ZXM7CisKKwl1MzIgcHJvY2Vzc19kZXNjOworCXUzMiB3cV9hZGRyOworCXUzMiB3cV9zaXplOworCisJdTMyIGVuZ2luZV9wcmVzZW5jZTsKKworCXU4IGVuZ2luZV9zdXNwZW5kZWQ7CisKKwl1OCByZXNlcnZlZDBbM107CisJdTY0IHJlc2VydmVkMVsxXTsKKworCXU2NCBkZXNjX3ByaXZhdGU7Cit9IF9fcGFja2VkOworCisvKioKKyAqIERPQzogQ1RCIGJhc2VkIGNvbW11bmljYXRpb24KKyAqCisgKiBUaGUgQ1RCIChjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIpIGNvbW11bmljYXRpb24gYmV0d2VlbiBIb3N0IGFuZCBHdUMKKyAqIGlzIGJhc2VkIG9uIHUzMiBkYXRhIHN0cmVhbSB3cml0dGVuIHRvIHRoZSBzaGFyZWQgYnVmZmVyLiBPbmUgYnVmZmVyIGNhbgorICogYmUgdXNlZCB0byB0cmFuc21pdCBkYXRhIG9ubHkgaW4gb25lIGRpcmVjdGlvbiAob25lLWRpcmVjdGlvbmFsIGNoYW5uZWwpLgorICoKKyAqIEN1cnJlbnQgc3RhdHVzIG9mIHRoZSBlYWNoIGJ1ZmZlciBpcyBzdG9yZWQgaW4gdGhlIGJ1ZmZlciBkZXNjcmlwdG9yLgorICogQnVmZmVyIGRlc2NyaXB0b3IgaG9sZHMgdGFpbCBhbmQgaGVhZCBmaWVsZHMgdGhhdCByZXByZXNlbnRzIGFjdGl2ZSBkYXRhCisgKiBzdHJlYW0uIFRoZSB0YWlsIGZpZWxkIGlzIHVwZGF0ZWQgYnkgdGhlIGRhdGEgcHJvZHVjZXIgKHNlbmRlciksIGFuZCBoZWFkCisgKiBmaWVsZCBpcyB1cGRhdGVkIGJ5IHRoZSBkYXRhIGNvbnN1bWVyIChyZWNlaXZlcik6OgorICoKKyAqICAgICAgKy0tLS0tLS0tLS0tLSsKKyAqICAgICAgfCBERVNDUklQVE9SIHwgICAgICAgICAgKz09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PSs9PT09PT09PSsKKyAqICAgICAgKz09PT09PT09PT09PSsgICAgICAgICAgfCAgICAgICAgICAgICAgICAgfCBNRVNTQUdFKHMpIHwgICAgICAgIHwKKyAqICAgICAgfCBhZGRyZXNzICAgIHwtLS0tLS0tLS0+Kz09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PSs9PT09PT09PSsKKyAqICAgICAgKy0tLS0tLS0tLS0tLSsKKyAqICAgICAgfCBoZWFkICAgICAgIHwgICAgICAgICAgXi0tLS0taGVhZC0tLS0tLS0tXgorICogICAgICArLS0tLS0tLS0tLS0tKworICogICAgICB8IHRhaWwgICAgICAgfCAgICAgICAgICBeLS0tLS0tLS0tdGFpbC0tLS0tLS0tLS0tLS0tLS0tXgorICogICAgICArLS0tLS0tLS0tLS0tKworICogICAgICB8IHNpemUgICAgICAgfCAgICAgICAgICBeLS0tLS0tLS0tLS0tLS0tc2l6ZS0tLS0tLS0tLS0tLS0tLS0tLS0tXgorICogICAgICArLS0tLS0tLS0tLS0tKworICoKKyAqIEVhY2ggbWVzc2FnZSBpbiBkYXRhIHN0cmVhbSBzdGFydHMgd2l0aCB0aGUgc2luZ2xlIHUzMiB0cmVhdGVkIGFzIGEgaGVhZGVyLAorICogZm9sbG93ZWQgYnkgb3B0aW9uYWwgc2V0IG9mIHUzMiBkYXRhIHRoYXQgbWFrZXMgbWVzc2FnZSBzcGVjaWZpYyBwYXlsb2FkOjoKKyAqCisgKiAgICAgICstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgICAgICAgICBNRVNTQUdFICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgICBtc2dbMF0gICB8ICAgWzFdICAgfCAgIC4uLiAgIHwgIFtuLTFdICB8CisgKiAgICAgICstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgICBNRVNTQUdFICB8ICAgICAgIE1FU1NBR0UgUEFZTE9BRCAgICAgICB8CisgKiAgICAgICsgICBIRUFERVIgICArLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgICAgICAgICAgICB8ICAgIDAgICAgfCAgIC4uLiAgIHwgICAgbiAgICB8CisgKiAgICAgICs9PT09PT0rPT09PT0rPT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rCisgKiAgICAgIHwgMzE6MTZ8IGNvZGV8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8CisgKiAgICAgICstLS0tLS0rLS0tLS0rICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8CisgKiAgICAgIHwgIDE1OjV8ZmxhZ3N8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8CisgKiAgICAgICstLS0tLS0rLS0tLS0rICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8CisgKiAgICAgIHwgICA0OjB8ICBsZW58ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8CisgKiAgICAgICstLS0tLS0rLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKgorICogICAgICAgICAgICAgICAgICAgXi0tLS0tLS0tLS0tLS1sZW4tLS0tLS0tLS0tLS0tXgorICoKKyAqIFRoZSBtZXNzYWdlIGhlYWRlciBjb25zaXN0cyBvZjoKKyAqCisgKiAtICoqbGVuKiosIGluZGljYXRlcyBsZW5ndGggb2YgdGhlIG1lc3NhZ2UgcGF5bG9hZCAoaW4gdTMyKQorICogLSAqKmNvZGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2UgY29kZQorICogLSAqKmZsYWdzKiosIGhvbGRzIHZhcmlvdXMgYml0cyB0byBjb250cm9sIG1lc3NhZ2UgaGFuZGxpbmcKKyAqLworCisvKgorICogRGVzY3JpYmVzIHNpbmdsZSBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIuCisgKiBVc2VkIGJ5IGJvdGggZ3VjLW1hc3RlciBhbmQgY2xpZW50cy4KKyAqLworc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyB7CisJdTMyIGFkZHI7CQkvKiBnZnggYWRkcmVzcyAqLworCXU2NCBob3N0X3ByaXZhdGU7CS8qIGhvc3QgcHJpdmF0ZSBkYXRhICovCisJdTMyIHNpemU7CQkvKiBzaXplIGluIGJ5dGVzICovCisJdTMyIGhlYWQ7CQkvKiBvZmZzZXQgdXBkYXRlZCBieSBHdUMqLworCXUzMiB0YWlsOwkJLyogb2Zmc2V0IHVwZGF0ZWQgYnkgb3duZXIgKi8KKwl1MzIgaXNfaW5fZXJyb3I7CS8qIGVycm9yIGluZGljYXRvciAqLworCXUzMiBmZW5jZTsJCS8qIGZlbmNlIHVwZGF0ZWQgYnkgR3VDICovCisJdTMyIHN0YXR1czsJCS8qIHN0YXR1cyB1cGRhdGVkIGJ5IEd1QyAqLworCXUzMiBvd25lcjsJCS8qIGlkIG9mIHRoZSBjaGFubmVsIG93bmVyICovCisJdTMyIG93bmVyX3N1Yl9pZDsJLyogb3duZXItZGVmaW5lZCBmaWVsZCBmb3IgZXh0cmEgdHJhY2tpbmcgKi8KKwl1MzIgcmVzZXJ2ZWRbNV07Cit9IF9fcGFja2VkOworCisvKiBUeXBlIG9mIGNvbW1hbmQgdHJhbnNwb3J0IGJ1ZmZlciAqLworI2RlZmluZSBJTlRFTF9HVUNfQ1RfQlVGRkVSX1RZUEVfU0VORAkweDB1CisjZGVmaW5lIElOVEVMX0dVQ19DVF9CVUZGRVJfVFlQRV9SRUNWCTB4MXUKKworLyoKKyAqIERlZmluaXRpb24gb2YgdGhlIGNvbW1hbmQgdHJhbnNwb3J0IG1lc3NhZ2UgaGVhZGVyIChEVzApCisgKgorICogYml0WzQuLjBdCW1lc3NhZ2UgbGVuIChpbiBkd29yZHMpCisgKiBiaXRbNy4uNV0JcmVzZXJ2ZWQKKyAqIGJpdFs4XQlyZXNwb25zZSAoRzJIIG9ubHkpCisgKiBiaXRbOF0Jd3JpdGUgZmVuY2UgdG8gZGVzYyAoSDJHIG9ubHkpCisgKiBiaXRbOV0Jd3JpdGUgc3RhdHVzIHRvIEgyRyBidWZmIChIMkcgb25seSkKKyAqIGJpdFsxMF0Jc2VuZCBzdGF0dXMgYmFjayB2aWEgRzJIIChIMkcgb25seSkKKyAqIGJpdFsxNS4uMTFdCXJlc2VydmVkCisgKiBiaXRbMzEuLjE2XQlhY3Rpb24gY29kZQorICovCisjZGVmaW5lIEdVQ19DVF9NU0dfTEVOX1NISUZUCQkJMAorI2RlZmluZSBHVUNfQ1RfTVNHX0xFTl9NQVNLCQkJMHgxRgorI2RlZmluZSBHVUNfQ1RfTVNHX0lTX1JFU1BPTlNFCQkJKDEgPDwgOCkKKyNkZWZpbmUgR1VDX0NUX01TR19XUklURV9GRU5DRV9UT19ERVNDCQkoMSA8PCA4KQorI2RlZmluZSBHVUNfQ1RfTVNHX1dSSVRFX1NUQVRVU19UT19CVUZGCQkoMSA8PCA5KQorI2RlZmluZSBHVUNfQ1RfTVNHX1NFTkRfU1RBVFVTCQkJKDEgPDwgMTApCisjZGVmaW5lIEdVQ19DVF9NU0dfQUNUSU9OX1NISUZUCQkJMTYKKyNkZWZpbmUgR1VDX0NUX01TR19BQ1RJT05fTUFTSwkJCTB4RkZGRgorCisjZGVmaW5lIEdVQ19GT1JDRVdBS0VfUkVOREVSCSgxIDw8IDApCisjZGVmaW5lIEdVQ19GT1JDRVdBS0VfTUVESUEJKDEgPDwgMSkKKworI2RlZmluZSBHVUNfUE9XRVJfVU5TUEVDSUZJRUQJMAorI2RlZmluZSBHVUNfUE9XRVJfRDAJCTEKKyNkZWZpbmUgR1VDX1BPV0VSX0QxCQkyCisjZGVmaW5lIEdVQ19QT1dFUl9EMgkJMworI2RlZmluZSBHVUNfUE9XRVJfRDMJCTQKKworLyogU2NoZWR1bGluZyBwb2xpY3kgc2V0dGluZ3MgKi8KKworLyogUmVzZXQgZW5naW5lIHVwb24gcHJlZW1wdCBmYWlsdXJlICovCisjZGVmaW5lIFBPTElDWV9SRVNFVF9FTkdJTkUJCSgxPDwwKQorLyogUHJlZW1wdCB0byBpZGxlIG9uIHF1YW50dW0gZXhwaXJ5ICovCisjZGVmaW5lIFBPTElDWV9QUkVFTVBUX1RPX0lETEUJCSgxPDwxKQorCisjZGVmaW5lIFBPTElDWV9NQVhfTlVNX1dJIDE1CisjZGVmaW5lIFBPTElDWV9ERUZBVUxUX0RQQ19QUk9NT1RFX1RJTUVfVVMgNTAwMDAwCisjZGVmaW5lIFBPTElDWV9ERUZBVUxUX0VYRUNVVElPTl9RVUFOVFVNX1VTIDEwMDAwMDAKKyNkZWZpbmUgUE9MSUNZX0RFRkFVTFRfUFJFRU1QVElPTl9USU1FX1VTIDUwMDAwMAorI2RlZmluZSBQT0xJQ1lfREVGQVVMVF9GQVVMVF9USU1FX1VTIDI1MDAwMAorCitzdHJ1Y3QgZ3VjX3BvbGljeSB7CisJLyogVGltZSBmb3Igb25lIHdvcmtsb2FkIHRvIGV4ZWN1dGUuIChpbiBtaWNybyBzZWNvbmRzKSAqLworCXUzMiBleGVjdXRpb25fcXVhbnR1bTsKKwkvKiBUaW1lIHRvIHdhaXQgZm9yIGEgcHJlZW1wdGlvbiByZXF1ZXN0IHRvIGNvbXBsZXRlZCBiZWZvcmUgaXNzdWluZyBhCisJICogcmVzZXQuIChpbiBtaWNybyBzZWNvbmRzKS4gKi8KKwl1MzIgcHJlZW1wdGlvbl90aW1lOworCS8qIEhvdyBtdWNoIHRpbWUgdG8gYWxsb3cgdG8gcnVuIGFmdGVyIHRoZSBmaXJzdCBmYXVsdCBpcyBvYnNlcnZlZC4KKwkgKiBUaGVuIHByZWVtcHQgYWZ0ZXJ3YXJkcy4gKGluIG1pY3JvIHNlY29uZHMpICovCisJdTMyIGZhdWx0X3RpbWU7CisJdTMyIHBvbGljeV9mbGFnczsKKwl1MzIgcmVzZXJ2ZWRbOF07Cit9IF9fcGFja2VkOworCitzdHJ1Y3QgZ3VjX3BvbGljaWVzIHsKKwlzdHJ1Y3QgZ3VjX3BvbGljeSBwb2xpY3lbR1VDX0NMSUVOVF9QUklPUklUWV9OVU1dW0dVQ19NQVhfRU5HSU5FX0NMQVNTRVNdOworCXUzMiBzdWJtaXNzaW9uX3F1ZXVlX2RlcHRoW0dVQ19NQVhfRU5HSU5FX0NMQVNTRVNdOworCS8qIEluIG1pY3JvIHNlY29uZHMuIEhvdyBtdWNoIHRpbWUgdG8gYWxsb3cgYmVmb3JlIERQQyBwcm9jZXNzaW5nIGlzCisJICogY2FsbGVkIGJhY2sgdmlhIGludGVycnVwdCAodG8gcHJldmVudCBEUEMgcXVldWUgZHJhaW4gc3RhcnZpbmcpLgorCSAqIFR5cGljYWxseSAxMDAwcyBvZiBtaWNybyBzZWNvbmRzIChleGFtcGxlIG9ubHksIG5vdCBncmFudWxhcml0eSkuICovCisJdTMyIGRwY19wcm9tb3RlX3RpbWU7CisKKwkvKiBNdXN0IGJlIHNldCB0byB0YWtlIHRoZXNlIG5ldyB2YWx1ZXMuICovCisJdTMyIGlzX3ZhbGlkOworCisJLyogTWF4IG51bWJlciBvZiBXSXMgdG8gcHJvY2VzcyBwZXIgY2FsbC4gQSBsYXJnZSB2YWx1ZSBtYXkga2VlcCBDUworCSAqIGlkbGUuICovCisJdTMyIG1heF9udW1fd29ya19pdGVtczsKKworCXUzMiByZXNlcnZlZFs0XTsKK30gX19wYWNrZWQ7CisKKy8qIEd1QyBNTUlPIHJlZyBzdGF0ZSBzdHJ1Y3QgKi8KKworCisjZGVmaW5lIEdVQ19SRUdTRVRfTUFYX1JFR0lTVEVSUwk2NAorI2RlZmluZSBHVUNfUzNfU0FWRV9TUEFDRV9QQUdFUwkJMTAKKworc3RydWN0IGd1Y19tbWlvX3JlZyB7CisJdTMyIG9mZnNldDsKKwl1MzIgdmFsdWU7CisJdTMyIGZsYWdzOworI2RlZmluZSBHVUNfUkVHU0VUX01BU0tFRAkJKDEgPDwgMCkKK30gX19wYWNrZWQ7CisKK3N0cnVjdCBndWNfbW1pb19yZWdzZXQgeworCXN0cnVjdCBndWNfbW1pb19yZWcgcmVnaXN0ZXJzW0dVQ19SRUdTRVRfTUFYX1JFR0lTVEVSU107CisJdTMyIHZhbHVlc192YWxpZDsKKwl1MzIgbnVtYmVyX29mX3JlZ2lzdGVyczsKK30gX19wYWNrZWQ7CisKKy8qIEd1QyByZWdpc3RlciBzZXRzICovCitzdHJ1Y3QgZ3VjX21taW9fcmVnX3N0YXRlIHsKKwlzdHJ1Y3QgZ3VjX21taW9fcmVnc2V0IGVuZ2luZV9yZWdbR1VDX01BWF9FTkdJTkVfQ0xBU1NFU11bR1VDX01BWF9JTlNUQU5DRVNfUEVSX0NMQVNTXTsKKwl1MzIgcmVzZXJ2ZWRbOThdOworfSBfX3BhY2tlZDsKKworLyogSFcgaW5mbyAqLworc3RydWN0IGd1Y19ndF9zeXN0ZW1faW5mbyB7CisJdTMyIHNsaWNlX2VuYWJsZWQ7CisJdTMyIHJjc19lbmFibGVkOworCXUzMiByZXNlcnZlZDA7CisJdTMyIGJjc19lbmFibGVkOworCXUzMiB2ZGJveF9lbmFibGVfbWFzazsKKwl1MzIgdmRib3hfc2ZjX3N1cHBvcnRfbWFzazsKKwl1MzIgdmVib3hfZW5hYmxlX21hc2s7CisJdTMyIHJlc2VydmVkWzldOworfSBfX3BhY2tlZDsKKworLyogQ2xpZW50cyBpbmZvICovCitzdHJ1Y3QgZ3VjX2N0X3Bvb2xfZW50cnkgeworCXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgZGVzYzsKKwl1MzIgcmVzZXJ2ZWRbN107Cit9IF9fcGFja2VkOworCisjZGVmaW5lIEdVQ19DVF9QT09MX1NJWkUJMgorCitzdHJ1Y3QgZ3VjX2NsaWVudHNfaW5mbyB7CisJdTMyIGNsaWVudHNfbnVtOworCXUzMiByZXNlcnZlZDBbMTNdOworCXUzMiBjdF9wb29sX2FkZHI7CisJdTMyIGN0X3Bvb2xfY291bnQ7CisJdTMyIHJlc2VydmVkWzRdOworfSBfX3BhY2tlZDsKKworLyogR3VDIEFkZGl0aW9uYWwgRGF0YSBTdHJ1Y3QgKi8KK3N0cnVjdCBndWNfYWRzIHsKKwl1MzIgcmVnX3N0YXRlX2FkZHI7CisJdTMyIHJlZ19zdGF0ZV9idWZmZXI7CisJdTMyIHNjaGVkdWxlcl9wb2xpY2llczsKKwl1MzIgZ3Rfc3lzdGVtX2luZm87CisJdTMyIGNsaWVudHNfaW5mbzsKKwl1MzIgY29udHJvbF9kYXRhOworCXUzMiBnb2xkZW5fY29udGV4dF9scmNhW0dVQ19NQVhfRU5HSU5FX0NMQVNTRVNdOworCXUzMiBlbmdfc3RhdGVfc2l6ZVtHVUNfTUFYX0VOR0lORV9DTEFTU0VTXTsKKwl1MzIgcmVzZXJ2ZWRbMTZdOworfSBfX3BhY2tlZDsKKworLyogR3VDIGxvZ2dpbmcgc3RydWN0dXJlcyAqLworCitlbnVtIGd1Y19sb2dfYnVmZmVyX3R5cGUgeworCUdVQ19JU1JfTE9HX0JVRkZFUiwKKwlHVUNfRFBDX0xPR19CVUZGRVIsCisJR1VDX0NSQVNIX0RVTVBfTE9HX0JVRkZFUiwKKwlHVUNfTUFYX0xPR19CVUZGRVIKK307CisKKy8qKgorICogc3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0YXRlIC0gR3VDIGxvZyBidWZmZXIgc3RhdGUKKyAqCisgKiBCZWxvdyBzdGF0ZSBzdHJ1Y3R1cmUgaXMgdXNlZCBmb3IgY29vcmRpbmF0aW9uIG9mIHJldHJpZXZhbCBvZiBHdUMgZmlybXdhcmUKKyAqIGxvZ3MuIFNlcGFyYXRlIHN0YXRlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggbG9nIGJ1ZmZlciB0eXBlLgorICogcmVhZF9wdHIgcG9pbnRzIHRvIHRoZSBsb2NhdGlvbiB3aGVyZSBpOTE1IHJlYWQgbGFzdCBpbiBsb2cgYnVmZmVyIGFuZAorICogaXMgcmVhZCBvbmx5IGZvciBHdUMgZmlybXdhcmUuIHdyaXRlX3B0ciBpcyBpbmNyZW1lbnRlZCBieSBHdUMgd2l0aCBudW1iZXIKKyAqIG9mIGJ5dGVzIHdyaXR0ZW4gZm9yIGVhY2ggbG9nIGVudHJ5IGFuZCBpcyByZWFkIG9ubHkgZm9yIGk5MTUuCisgKiBXaGVuIGFueSB0eXBlIG9mIGxvZyBidWZmZXIgYmVjb21lcyBoYWxmIGZ1bGwsIEd1QyBzZW5kcyBhIGZsdXNoIGludGVycnVwdC4KKyAqIEd1QyBmaXJtd2FyZSBleHBlY3RzIHRoYXQgd2hpbGUgaXQgaXMgd3JpdGluZyB0byAybmQgaGFsZiBvZiB0aGUgYnVmZmVyLAorICogZmlyc3QgaGFsZiB3b3VsZCBnZXQgY29uc3VtZWQgYnkgSG9zdCBhbmQgdGhlbiBnZXQgYSBmbHVzaCBjb21wbGV0ZWQKKyAqIGFja25vd2xlZGdtZW50IGZyb20gSG9zdCwgc28gdGhhdCBpdCBkb2VzIG5vdCBlbmQgdXAgZG9pbmcgYW55IG92ZXJ3cml0ZQorICogY2F1c2luZyBsb3NzIG9mIGxvZ3MuIFNvIHdoZW4gYnVmZmVyIGdldHMgaGFsZiBmaWxsZWQgJiBpOTE1IGhhcyByZXF1ZXN0ZWQKKyAqIGZvciBpbnRlcnJ1cHQsIEd1QyB3aWxsIHNldCBmbHVzaF90b19maWxlIGZpZWxkLCBzZXQgdGhlIHNhbXBsZWRfd3JpdGVfcHRyCisgKiB0byB0aGUgdmFsdWUgb2Ygd3JpdGVfcHRyIGFuZCByYWlzZSB0aGUgaW50ZXJydXB0LgorICogT24gcmVjZWl2aW5nIHRoZSBpbnRlcnJ1cHQgaTkxNSBzaG91bGQgcmVhZCB0aGUgYnVmZmVyLCBjbGVhciBmbHVzaF90b19maWxlCisgKiBmaWVsZCBhbmQgYWxzbyB1cGRhdGUgcmVhZF9wdHIgd2l0aCB0aGUgdmFsdWUgb2Ygc2FtcGxlX3dyaXRlX3B0ciwgYmVmb3JlCisgKiBzZW5kaW5nIGFuIGFja25vd2xlZGdtZW50IHRvIEd1Qy4gbWFya2VyICYgdmVyc2lvbiBmaWVsZHMgYXJlIGZvciBpbnRlcm5hbAorICogdXNhZ2Ugb2YgR3VDIGFuZCBvcGFxdWUgdG8gaTkxNS4gYnVmZmVyX2Z1bGxfY250IGZpZWxkIGlzIGluY3JlbWVudGVkIGV2ZXJ5CisgKiB0aW1lIEd1QyBkZXRlY3RzIHRoZSBsb2cgYnVmZmVyIG92ZXJmbG93LgorICovCitzdHJ1Y3QgZ3VjX2xvZ19idWZmZXJfc3RhdGUgeworCXUzMiBtYXJrZXJbMl07CisJdTMyIHJlYWRfcHRyOworCXUzMiB3cml0ZV9wdHI7CisJdTMyIHNpemU7CisJdTMyIHNhbXBsZWRfd3JpdGVfcHRyOworCXVuaW9uIHsKKwkJc3RydWN0IHsKKwkJCXUzMiBmbHVzaF90b19maWxlOjE7CisJCQl1MzIgYnVmZmVyX2Z1bGxfY250OjQ7CisJCQl1MzIgcmVzZXJ2ZWQ6Mjc7CisJCX07CisJCXUzMiBmbGFnczsKKwl9OworCXUzMiB2ZXJzaW9uOworfSBfX3BhY2tlZDsKKworc3RydWN0IGd1Y19jdHhfcmVwb3J0IHsKKwl1MzIgcmVwb3J0X3JldHVybl9zdGF0dXM7CisJdTMyIHJlc2VydmVkMVs2NF07CisJdTMyIGFmZmVjdGVkX2NvdW50OworCXUzMiByZXNlcnZlZDJbMl07Cit9IF9fcGFja2VkOworCisvKiBHdUMgU2hhcmVkIENvbnRleHQgRGF0YSBTdHJ1Y3QgKi8KK3N0cnVjdCBndWNfc2hhcmVkX2N0eF9kYXRhIHsKKwl1MzIgYWRkcl9vZl9sYXN0X3ByZWVtcHRlZF9kYXRhX2xvdzsKKwl1MzIgYWRkcl9vZl9sYXN0X3ByZWVtcHRlZF9kYXRhX2hpZ2g7CisJdTMyIGFkZHJfb2ZfbGFzdF9wcmVlbXB0ZWRfZGF0YV9oaWdoX3RtcDsKKwl1MzIgcGFkZGluZzsKKwl1MzIgaXNfbWFwcGVkX3RvX3Byb3h5OworCXUzMiBwcm94eV9jdHhfaWQ7CisJdTMyIGVuZ2luZV9yZXNldF9jdHhfaWQ7CisJdTMyIG1lZGlhX3Jlc2V0X2NvdW50OworCXUzMiByZXNlcnZlZDFbOF07CisJdTMyIHVrX2xhc3RfY3R4X3N3aXRjaF9yZWFzb247CisJdTMyIHdhc19yZXNldDsKKwl1MzIgbHJjYV9ncHVfYWRkcjsKKwl1NjQgZXhlY2xpc3RfY3R4OworCXUzMiByZXNlcnZlZDJbNjZdOworCXN0cnVjdCBndWNfY3R4X3JlcG9ydCBwcmVlbXB0X2N0eF9yZXBvcnRbR1VDX01BWF9FTkdJTkVTX05VTV07Cit9IF9fcGFja2VkOworCisvKioKKyAqIERPQzogTU1JTyBiYXNlZCBjb21tdW5pY2F0aW9uCisgKgorICogVGhlIE1NSU8gYmFzZWQgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIEhvc3QgYW5kIEd1QyB1c2VzIHNvZnR3YXJlIHNjcmF0Y2gKKyAqIHJlZ2lzdGVycywgd2hlcmUgZmlyc3QgcmVnaXN0ZXIgaG9sZHMgZGF0YSB0cmVhdGVkIGFzIG1lc3NhZ2UgaGVhZGVyLAorICogYW5kIG90aGVyIHJlZ2lzdGVycyBhcmUgdXNlZCB0byBob2xkIG1lc3NhZ2UgcGF5bG9hZC4KKyAqCisgKiBGb3IgR2VuOSssIEd1QyB1c2VzIHNvZnR3YXJlIHNjcmF0Y2ggcmVnaXN0ZXJzIDB4QzE4MC0weEMxQjgsCisgKiBidXQgbm8gSDJHIGNvbW1hbmQgdGFrZXMgbW9yZSB0aGFuIDggcGFyYW1ldGVycyBhbmQgdGhlIEd1QyBGVworICogaXRzZWxmIHVzZXMgYW4gOC1lbGVtZW50IGFycmF5IHRvIHN0b3JlIHRoZSBIMkcgbWVzc2FnZS4KKyAqCisgKiAgICAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKKyAqICAgICAgfCAgTU1JT1swXSAgfCBNTUlPWzFdIHwgICAuLi4gICB8IE1NSU9bbl0gfAorICogICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgaGVhZGVyICAgIHwgICAgICBvcHRpb25hbCBwYXlsb2FkICAgICAgIHwKKyAqICAgICAgKz09PT09PSs9PT09Kz09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09KworICogICAgICB8IDMxOjI4fHR5cGV8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8CisgKiAgICAgICstLS0tLS0rLS0tLSsgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwKKyAqICAgICAgfCAyNzoxNnxkYXRhfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0rICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8CisgKiAgICAgIHwgIDE1OjB8Y29kZXwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwKKyAqICAgICAgKy0tLS0tLSstLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICoKKyAqIFRoZSBtZXNzYWdlIGhlYWRlciBjb25zaXN0cyBvZjoKKyAqCisgKiAtICoqdHlwZSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSB0eXBlCisgKiAtICoqY29kZSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSBjb2RlLCBpcyBzcGVjaWZpYyBmb3IgKip0eXBlKioKKyAqIC0gKipkYXRhKiosIGluZGljYXRlcyBtZXNzYWdlIGRhdGEsIG9wdGlvbmFsLCBkZXBlbmRzIG9uICoqY29kZSoqCisgKgorICogVGhlIGZvbGxvd2luZyBtZXNzYWdlICoqdHlwZXMqKiBhcmUgc3VwcG9ydGVkOgorICoKKyAqIC0gKipSRVFVRVNUKiosIGluZGljYXRlcyBIb3N0LXRvLUd1QyByZXF1ZXN0LCByZXF1ZXN0ZWQgR3VDIGFjdGlvbiBjb2RlCisgKiAgIG11c3QgYmUgcHJpb3ZpZGVkIGluICoqY29kZSoqIGZpZWxkLiBPcHRpb25hbCBhY3Rpb24gc3BlY2lmaWMgcGFyYW1ldGVycworICogICBjYW4gYmUgcHJvdmlkZWQgaW4gcmVtYWluaW5nIHBheWxvYWQgcmVnaXN0ZXJzIG9yICoqZGF0YSoqIGZpZWxkLgorICoKKyAqIC0gKipSRVNQT05TRSoqLCBpbmRpY2F0ZXMgR3VDLXRvLUhvc3QgcmVzcG9uc2UgZnJvbSBlYXJsaWVyIEd1QyByZXF1ZXN0LAorICogICBhY3Rpb24gcmVzcG9uc2Ugc3RhdHVzIHdpbGwgYmUgcHJvdmlkZWQgaW4gKipjb2RlKiogZmllbGQuIE9wdGlvbmFsCisgKiAgIHJlc3BvbnNlIGRhdGEgY2FuIGJlIHJldHVybmVkIGluIHJlbWFpbmluZyBwYXlsb2FkIHJlZ2lzdGVycyBvciAqKmRhdGEqKgorICogICBmaWVsZC4KKyAqLworCisjZGVmaW5lIEdVQ19NQVhfTU1JT19NU0dfTEVOCQk4CisKKyNkZWZpbmUgSU5URUxfR1VDX01TR19UWVBFX1NISUZUCTI4CisjZGVmaW5lIElOVEVMX0dVQ19NU0dfVFlQRV9NQVNLCQkoMHhGIDw8IElOVEVMX0dVQ19NU0dfVFlQRV9TSElGVCkKKyNkZWZpbmUgSU5URUxfR1VDX01TR19EQVRBX1NISUZUCTE2CisjZGVmaW5lIElOVEVMX0dVQ19NU0dfREFUQV9NQVNLCQkoMHhGRkYgPDwgSU5URUxfR1VDX01TR19EQVRBX1NISUZUKQorI2RlZmluZSBJTlRFTF9HVUNfTVNHX0NPREVfU0hJRlQJMAorI2RlZmluZSBJTlRFTF9HVUNfTVNHX0NPREVfTUFTSwkJKDB4RkZGRiA8PCBJTlRFTF9HVUNfTVNHX0NPREVfU0hJRlQpCisKKyNkZWZpbmUgX19JTlRFTF9HVUNfTVNHX0dFVChULCBtKSBcCisJKCgobSkgJiBJTlRFTF9HVUNfTVNHXyAjIyBUICMjIF9NQVNLKSA+PiBJTlRFTF9HVUNfTVNHXyAjIyBUICMjIF9TSElGVCkKKyNkZWZpbmUgSU5URUxfR1VDX01TR19UT19UWVBFKG0pCV9fSU5URUxfR1VDX01TR19HRVQoVFlQRSwgbSkKKyNkZWZpbmUgSU5URUxfR1VDX01TR19UT19EQVRBKG0pCV9fSU5URUxfR1VDX01TR19HRVQoREFUQSwgbSkKKyNkZWZpbmUgSU5URUxfR1VDX01TR19UT19DT0RFKG0pCV9fSU5URUxfR1VDX01TR19HRVQoQ09ERSwgbSkKKworZW51bSBpbnRlbF9ndWNfbXNnX3R5cGUgeworCUlOVEVMX0dVQ19NU0dfVFlQRV9SRVFVRVNUID0gMHgwLAorCUlOVEVMX0dVQ19NU0dfVFlQRV9SRVNQT05TRSA9IDB4RiwKK307CisKKyNkZWZpbmUgX19JTlRFTF9HVUNfTVNHX1RZUEVfSVMoVCwgbSkgXAorCShJTlRFTF9HVUNfTVNHX1RPX1RZUEUobSkgPT0gSU5URUxfR1VDX01TR19UWVBFXyAjIyBUKQorI2RlZmluZSBJTlRFTF9HVUNfTVNHX0lTX1JFUVVFU1QobSkJX19JTlRFTF9HVUNfTVNHX1RZUEVfSVMoUkVRVUVTVCwgbSkKKyNkZWZpbmUgSU5URUxfR1VDX01TR19JU19SRVNQT05TRShtKQlfX0lOVEVMX0dVQ19NU0dfVFlQRV9JUyhSRVNQT05TRSwgbSkKKworZW51bSBpbnRlbF9ndWNfYWN0aW9uIHsKKwlJTlRFTF9HVUNfQUNUSU9OX0RFRkFVTFQgPSAweDAsCisJSU5URUxfR1VDX0FDVElPTl9SRVFVRVNUX1BSRUVNUFRJT04gPSAweDIsCisJSU5URUxfR1VDX0FDVElPTl9SRVFVRVNUX0VOR0lORV9SRVNFVCA9IDB4MywKKwlJTlRFTF9HVUNfQUNUSU9OX0FMTE9DQVRFX0RPT1JCRUxMID0gMHgxMCwKKwlJTlRFTF9HVUNfQUNUSU9OX0RFQUxMT0NBVEVfRE9PUkJFTEwgPSAweDIwLAorCUlOVEVMX0dVQ19BQ1RJT05fTE9HX0JVRkZFUl9GSUxFX0ZMVVNIX0NPTVBMRVRFID0gMHgzMCwKKwlJTlRFTF9HVUNfQUNUSU9OX0ZPUkNFX0xPR19CVUZGRVJfRkxVU0ggPSAweDMwMiwKKwlJTlRFTF9HVUNfQUNUSU9OX0VOVEVSX1NfU1RBVEUgPSAweDUwMSwKKwlJTlRFTF9HVUNfQUNUSU9OX0VYSVRfU19TVEFURSA9IDB4NTAyLAorCUlOVEVMX0dVQ19BQ1RJT05fU0xQQ19SRVFVRVNUID0gMHgzMDAzLAorCUlOVEVMX0dVQ19BQ1RJT05fU0FNUExFX0ZPUkNFV0FLRSA9IDB4MzAwNSwKKwlJTlRFTF9HVUNfQUNUSU9OX0FVVEhFTlRJQ0FURV9IVUMgPSAweDQwMDAsCisJSU5URUxfR1VDX0FDVElPTl9SRUdJU1RFUl9DT01NQU5EX1RSQU5TUE9SVF9CVUZGRVIgPSAweDQ1MDUsCisJSU5URUxfR1VDX0FDVElPTl9ERVJFR0lTVEVSX0NPTU1BTkRfVFJBTlNQT1JUX0JVRkZFUiA9IDB4NDUwNiwKKwlJTlRFTF9HVUNfQUNUSU9OX1VLX0xPR19FTkFCTEVfTE9HR0lORyA9IDB4MEUwMDAsCisJSU5URUxfR1VDX0FDVElPTl9MSU1JVAorfTsKKworZW51bSBpbnRlbF9ndWNfcHJlZW1wdF9vcHRpb25zIHsKKwlJTlRFTF9HVUNfUFJFRU1QVF9PUFRJT05fRFJPUF9XT1JLX1EgPSAweDQsCisJSU5URUxfR1VDX1BSRUVNUFRfT1BUSU9OX0RST1BfU1VCTUlUX1EgPSAweDgsCit9OworCitlbnVtIGludGVsX2d1Y19yZXBvcnRfc3RhdHVzIHsKKwlJTlRFTF9HVUNfUkVQT1JUX1NUQVRVU19VTktOT1dOID0gMHgwLAorCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX0FDS0VEID0gMHgxLAorCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX0VSUk9SID0gMHgyLAorCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX0NPTVBMRVRFID0gMHg0LAorfTsKKworZW51bSBpbnRlbF9ndWNfc2xlZXBfc3RhdGVfc3RhdHVzIHsKKwlJTlRFTF9HVUNfU0xFRVBfU1RBVEVfU1VDQ0VTUyA9IDB4MSwKKwlJTlRFTF9HVUNfU0xFRVBfU1RBVEVfUFJFRU1QVF9UT19JRExFX0ZBSUxFRCA9IDB4MiwKKwlJTlRFTF9HVUNfU0xFRVBfU1RBVEVfRU5HSU5FX1JFU0VUX0ZBSUxFRCA9IDB4MworI2RlZmluZSBJTlRFTF9HVUNfU0xFRVBfU1RBVEVfSU5WQUxJRF9NQVNLIDB4ODAwMDAwMDAKK307CisKKyNkZWZpbmUgR1VDX0xPR19DT05UUk9MX0xPR0dJTkdfRU5BQkxFRAkoMSA8PCAwKQorI2RlZmluZSBHVUNfTE9HX0NPTlRST0xfVkVSQk9TSVRZX1NISUZUCTQKKyNkZWZpbmUgR1VDX0xPR19DT05UUk9MX1ZFUkJPU0lUWV9NQVNLCSgweEYgPDwgR1VDX0xPR19DT05UUk9MX1ZFUkJPU0lUWV9TSElGVCkKKyNkZWZpbmUgR1VDX0xPR19DT05UUk9MX0RFRkFVTFRfTE9HR0lORwkoMSA8PCA4KQorCitlbnVtIGludGVsX2d1Y19yZXNwb25zZV9zdGF0dXMgeworCUlOVEVMX0dVQ19SRVNQT05TRV9TVEFUVVNfU1VDQ0VTUyA9IDB4MCwKKwlJTlRFTF9HVUNfUkVTUE9OU0VfU1RBVFVTX0dFTkVSSUNfRkFJTCA9IDB4RjAwMCwKK307CisKKyNkZWZpbmUgSU5URUxfR1VDX01TR19JU19SRVNQT05TRV9TVUNDRVNTKG0pIFwKKwkgKHR5cGVjaGVjayh1MzIsIChtKSkgJiYgXAorCSAgKChtKSAmIChJTlRFTF9HVUNfTVNHX1RZUEVfTUFTSyB8IElOVEVMX0dVQ19NU0dfQ09ERV9NQVNLKSkgPT0gXAorCSAgKChJTlRFTF9HVUNfTVNHX1RZUEVfUkVTUE9OU0UgPDwgSU5URUxfR1VDX01TR19UWVBFX1NISUZUKSB8IFwKKwkgICAoSU5URUxfR1VDX1JFU1BPTlNFX1NUQVRVU19TVUNDRVNTIDw8IElOVEVMX0dVQ19NU0dfQ09ERV9TSElGVCkpKQorCisvKiBUaGlzIGFjdGlvbiB3aWxsIGJlIHByb2dyYW1tZWQgaW4gQzFCQyAtIFNPRlRfU0NSQVRDSF8xNV9SRUcgKi8KK2VudW0gaW50ZWxfZ3VjX3JlY3ZfbWVzc2FnZSB7CisJSU5URUxfR1VDX1JFQ1ZfTVNHX0NSQVNIX0RVTVBfUE9TVEVEID0gQklUKDEpLAorCUlOVEVMX0dVQ19SRUNWX01TR19GTFVTSF9MT0dfQlVGRkVSID0gQklUKDMpCit9OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjMzMjA2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZy5jCkBAIC0wLDAgKzEsNjQ2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9tZW1jcHkuaCIKKyNpbmNsdWRlICJpbnRlbF9ndWNfbG9nLmgiCisKK3N0YXRpYyB2b2lkIGd1Y19sb2dfY2FwdHVyZV9sb2dzKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOworCisvKioKKyAqIERPQzogR3VDIGZpcm13YXJlIGxvZworICoKKyAqIEZpcm13YXJlIGxvZyBpcyBlbmFibGVkIGJ5IHNldHRpbmcgaTkxNS5ndWNfbG9nX2xldmVsIHRvIHRoZSBwb3NpdGl2ZSBsZXZlbC4KKyAqIExvZyBkYXRhIGlzIHByaW50ZWQgb3V0IHZpYSByZWFkaW5nIGRlYnVnZnMgaTkxNV9ndWNfbG9nX2R1bXAuIFJlYWRpbmcgZnJvbQorICogaTkxNV9ndWNfbG9hZF9zdGF0dXMgd2lsbCBwcmludCBvdXQgZmlybXdhcmUgbG9hZGluZyBzdGF0dXMgYW5kIHNjcmF0Y2gKKyAqIHJlZ2lzdGVycyB2YWx1ZS4KKyAqLworCitzdGF0aWMgaW50IGd1Y19hY3Rpb25fZmx1c2hfbG9nX2NvbXBsZXRlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwl1MzIgYWN0aW9uW10gPSB7CisJCUlOVEVMX0dVQ19BQ1RJT05fTE9HX0JVRkZFUl9GSUxFX0ZMVVNIX0NPTVBMRVRFCisJfTsKKworCXJldHVybiBpbnRlbF9ndWNfc2VuZChndWMsIGFjdGlvbiwgQVJSQVlfU0laRShhY3Rpb24pKTsKK30KKworc3RhdGljIGludCBndWNfYWN0aW9uX2ZsdXNoX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJdTMyIGFjdGlvbltdID0geworCQlJTlRFTF9HVUNfQUNUSU9OX0ZPUkNFX0xPR19CVUZGRVJfRkxVU0gsCisJCTAKKwl9OworCisJcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFjdGlvbikpOworfQorCitzdGF0aWMgaW50IGd1Y19hY3Rpb25fY29udHJvbF9sb2coc3RydWN0IGludGVsX2d1YyAqZ3VjLCBib29sIGVuYWJsZSwKKwkJCQkgIGJvb2wgZGVmYXVsdF9sb2dnaW5nLCB1MzIgdmVyYm9zaXR5KQoreworCXUzMiBhY3Rpb25bXSA9IHsKKwkJSU5URUxfR1VDX0FDVElPTl9VS19MT0dfRU5BQkxFX0xPR0dJTkcsCisJCShlbmFibGUgPyBHVUNfTE9HX0NPTlRST0xfTE9HR0lOR19FTkFCTEVEIDogMCkgfAorCQkodmVyYm9zaXR5IDw8IEdVQ19MT0dfQ09OVFJPTF9WRVJCT1NJVFlfU0hJRlQpIHwKKwkJKGRlZmF1bHRfbG9nZ2luZyA/IEdVQ19MT0dfQ09OVFJPTF9ERUZBVUxUX0xPR0dJTkcgOiAwKQorCX07CisKKwlHRU1fQlVHX09OKHZlcmJvc2l0eSA+IEdVQ19MT0dfVkVSQk9TSVRZX01BWCk7CisKKwlyZXR1cm4gaW50ZWxfZ3VjX3NlbmQoZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2d1YyAqbG9nX3RvX2d1YyhzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQoreworCXJldHVybiBjb250YWluZXJfb2YobG9nLCBzdHJ1Y3QgaW50ZWxfZ3VjLCBsb2cpOworfQorCitzdGF0aWMgdm9pZCBndWNfbG9nX2VuYWJsZV9mbHVzaF9ldmVudHMoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKK3sKKwlpbnRlbF9ndWNfZW5hYmxlX21zZyhsb2dfdG9fZ3VjKGxvZyksCisJCQkgICAgIElOVEVMX0dVQ19SRUNWX01TR19GTFVTSF9MT0dfQlVGRkVSIHwKKwkJCSAgICAgSU5URUxfR1VDX1JFQ1ZfTVNHX0NSQVNIX0RVTVBfUE9TVEVEKTsKK30KKworc3RhdGljIHZvaWQgZ3VjX2xvZ19kaXNhYmxlX2ZsdXNoX2V2ZW50cyhzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQoreworCWludGVsX2d1Y19kaXNhYmxlX21zZyhsb2dfdG9fZ3VjKGxvZyksCisJCQkgICAgICBJTlRFTF9HVUNfUkVDVl9NU0dfRkxVU0hfTE9HX0JVRkZFUiB8CisJCQkgICAgICBJTlRFTF9HVUNfUkVDVl9NU0dfQ1JBU0hfRFVNUF9QT1NURUQpOworfQorCisvKgorICogU3ViIGJ1ZmZlciBzd2l0Y2ggY2FsbGJhY2suIENhbGxlZCB3aGVuZXZlciByZWxheSBoYXMgdG8gc3dpdGNoIHRvIGEgbmV3CisgKiBzdWIgYnVmZmVyLCByZWxheSBzdGF5cyBvbiB0aGUgc2FtZSBzdWIgYnVmZmVyIGlmIDAgaXMgcmV0dXJuZWQuCisgKi8KK3N0YXRpYyBpbnQgc3ViYnVmX3N0YXJ0X2NhbGxiYWNrKHN0cnVjdCByY2hhbl9idWYgKmJ1ZiwKKwkJCQkgdm9pZCAqc3ViYnVmLAorCQkJCSB2b2lkICpwcmV2X3N1YmJ1ZiwKKwkJCQkgc2l6ZV90IHByZXZfcGFkZGluZykKK3sKKwkvKgorCSAqIFVzZSBuby1vdmVyd3JpdGUgbW9kZSBieSBkZWZhdWx0LCB3aGVyZSByZWxheSB3aWxsIHN0b3AgYWNjZXB0aW5nCisJICogbmV3IGRhdGEgaWYgdGhlcmUgYXJlIG5vIGVtcHR5IHN1YiBidWZmZXJzIGxlZnQuCisJICogVGhlcmUgaXMgbm8gc3RyaWN0IHN5bmNocm9uaXphdGlvbiBlbmZvcmNlZCBieSByZWxheSBiZXR3ZWVuIENvbnN1bWVyCisJICogYW5kIFByb2R1Y2VyLiBJbiBvdmVyd3JpdGUgbW9kZSwgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSBvZiBnZXR0aW5nCisJICogaW5jb25zaXN0ZW50L2dhcmJsZWQgZGF0YSwgdGhlIHByb2R1Y2VyIGNvdWxkIGJlIHdyaXRpbmcgb24gdG8gdGhlCisJICogc2FtZSBzdWIgYnVmZmVyIGZyb20gd2hpY2ggQ29uc3VtZXIgaXMgcmVhZGluZy4gVGhpcyBjYW4ndCBiZSBhdm9pZGVkCisJICogdW5sZXNzIENvbnN1bWVyIGlzIGZhc3QgZW5vdWdoIGFuZCBjYW4gYWx3YXlzIHJ1biBpbiB0YW5kZW0gd2l0aAorCSAqIFByb2R1Y2VyLgorCSAqLworCWlmIChyZWxheV9idWZfZnVsbChidWYpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAxOworfQorCisvKgorICogZmlsZV9jcmVhdGUoKSBjYWxsYmFjay4gQ3JlYXRlcyByZWxheSBmaWxlIGluIGRlYnVnZnMuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpjcmVhdGVfYnVmX2ZpbGVfY2FsbGJhY2soY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJCSAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCisJCQkJCSAgICAgICB1bW9kZV90IG1vZGUsCisJCQkJCSAgICAgICBzdHJ1Y3QgcmNoYW5fYnVmICpidWYsCisJCQkJCSAgICAgICBpbnQgKmlzX2dsb2JhbCkKK3sKKwlzdHJ1Y3QgZGVudHJ5ICpidWZfZmlsZTsKKworCS8qCisJICogVGhpcyB0byBlbmFibGUgdGhlIHVzZSBvZiBhIHNpbmdsZSBidWZmZXIgZm9yIHRoZSByZWxheSBjaGFubmVsIGFuZAorCSAqIGNvcnJlc3BvbmRpbmdseSBoYXZlIGEgc2luZ2xlIGZpbGUgZXhwb3NlZCB0byBVc2VyLCB0aHJvdWdoIHdoaWNoCisJICogaXQgY2FuIGNvbGxlY3QgdGhlIGxvZ3MgaW4gb3JkZXIgd2l0aG91dCBhbnkgcG9zdC1wcm9jZXNzaW5nLgorCSAqIE5lZWQgdG8gc2V0ICdpc19nbG9iYWwnIGV2ZW4gaWYgcGFyZW50IGlzIE5VTEwgZm9yIGVhcmx5IGxvZ2dpbmcuCisJICovCisJKmlzX2dsb2JhbCA9IDE7CisKKwlpZiAoIXBhcmVudCkKKwkJcmV0dXJuIE5VTEw7CisKKwlidWZfZmlsZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoZmlsZW5hbWUsIG1vZGUsCisJCQkJICAgICAgIHBhcmVudCwgYnVmLCAmcmVsYXlfZmlsZV9vcGVyYXRpb25zKTsKKwlpZiAoSVNfRVJSKGJ1Zl9maWxlKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXR1cm4gYnVmX2ZpbGU7Cit9CisKKy8qCisgKiBmaWxlX3JlbW92ZSgpIGRlZmF1bHQgY2FsbGJhY2suIFJlbW92ZXMgcmVsYXkgZmlsZSBpbiBkZWJ1Z2ZzLgorICovCitzdGF0aWMgaW50IHJlbW92ZV9idWZfZmlsZV9jYWxsYmFjayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJZGVidWdmc19yZW1vdmUoZGVudHJ5KTsKKwlyZXR1cm4gMDsKK30KKworLyogcmVsYXkgY2hhbm5lbCBjYWxsYmFja3MgKi8KK3N0YXRpYyBzdHJ1Y3QgcmNoYW5fY2FsbGJhY2tzIHJlbGF5X2NhbGxiYWNrcyA9IHsKKwkuc3ViYnVmX3N0YXJ0ID0gc3ViYnVmX3N0YXJ0X2NhbGxiYWNrLAorCS5jcmVhdGVfYnVmX2ZpbGUgPSBjcmVhdGVfYnVmX2ZpbGVfY2FsbGJhY2ssCisJLnJlbW92ZV9idWZfZmlsZSA9IHJlbW92ZV9idWZfZmlsZV9jYWxsYmFjaywKK307CisKK3N0YXRpYyB2b2lkIGd1Y19tb3ZlX3RvX25leHRfYnVmKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCit7CisJLyoKKwkgKiBNYWtlIHN1cmUgdGhlIHVwZGF0ZXMgbWFkZSBpbiB0aGUgc3ViIGJ1ZmZlciBhcmUgdmlzaWJsZSB3aGVuCisJICogQ29uc3VtZXIgc2VlcyB0aGUgZm9sbG93aW5nIHVwZGF0ZSB0byBvZmZzZXQgaW5zaWRlIHRoZSBzdWIgYnVmZmVyLgorCSAqLworCXNtcF93bWIoKTsKKworCS8qIEFsbCBkYXRhIGhhcyBiZWVuIHdyaXR0ZW4sIHNvIG5vdyBtb3ZlIHRoZSBvZmZzZXQgb2Ygc3ViIGJ1ZmZlci4gKi8KKwlyZWxheV9yZXNlcnZlKGxvZy0+cmVsYXkuY2hhbm5lbCwgbG9nLT52bWEtPm9iai0+YmFzZS5zaXplKTsKKworCS8qIFN3aXRjaCB0byB0aGUgbmV4dCBzdWIgYnVmZmVyICovCisJcmVsYXlfZmx1c2gobG9nLT5yZWxheS5jaGFubmVsKTsKK30KKworc3RhdGljIHZvaWQgKmd1Y19nZXRfd3JpdGVfYnVmZmVyKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCit7CisJLyoKKwkgKiBKdXN0IGdldCB0aGUgYmFzZSBhZGRyZXNzIG9mIGEgbmV3IHN1YiBidWZmZXIgYW5kIGNvcHkgZGF0YSBpbnRvIGl0CisJICogb3Vyc2VsdmVzLiBOVUxMIHdpbGwgYmUgcmV0dXJuZWQgaW4gbm8tb3ZlcndyaXRlIG1vZGUsIGlmIGFsbCBzdWIKKwkgKiBidWZmZXJzIGFyZSBmdWxsLiBDb3VsZCBoYXZlIHVzZWQgdGhlIHJlbGF5X3dyaXRlKCkgdG8gaW5kaXJlY3RseQorCSAqIGNvcHkgdGhlIGRhdGEsIGJ1dCB0aGF0IHdvdWxkIGhhdmUgYmVlbiBiaXQgY29udm9sdXRlZCwgYXMgd2UgbmVlZCB0bworCSAqIHdyaXRlIHRvIG9ubHkgY2VydGFpbiBsb2NhdGlvbnMgaW5zaWRlIGEgc3ViIGJ1ZmZlciB3aGljaCBjYW5ub3QgYmUKKwkgKiBkb25lIHdpdGhvdXQgdXNpbmcgcmVsYXlfcmVzZXJ2ZSgpIGFsb25nIHdpdGggcmVsYXlfd3JpdGUoKS4gU28gaXRzCisJICogYmV0dGVyIHRvIHVzZSByZWxheV9yZXNlcnZlKCkgYWxvbmUuCisJICovCisJcmV0dXJuIHJlbGF5X3Jlc2VydmUobG9nLT5yZWxheS5jaGFubmVsLCAwKTsKK30KKworc3RhdGljIGJvb2wgZ3VjX2NoZWNrX2xvZ19idWZfb3ZlcmZsb3coc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZywKKwkJCQkgICAgICAgZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHR5cGUsCisJCQkJICAgICAgIHVuc2lnbmVkIGludCBmdWxsX2NudCkKK3sKKwl1bnNpZ25lZCBpbnQgcHJldl9mdWxsX2NudCA9IGxvZy0+c3RhdHNbdHlwZV0uc2FtcGxlZF9vdmVyZmxvdzsKKwlib29sIG92ZXJmbG93ID0gZmFsc2U7CisKKwlpZiAoZnVsbF9jbnQgIT0gcHJldl9mdWxsX2NudCkgeworCQlvdmVyZmxvdyA9IHRydWU7CisKKwkJbG9nLT5zdGF0c1t0eXBlXS5vdmVyZmxvdyA9IGZ1bGxfY250OworCQlsb2ctPnN0YXRzW3R5cGVdLnNhbXBsZWRfb3ZlcmZsb3cgKz0gZnVsbF9jbnQgLSBwcmV2X2Z1bGxfY250OworCisJCWlmIChmdWxsX2NudCA8IHByZXZfZnVsbF9jbnQpIHsKKwkJCS8qIGJ1ZmZlcl9mdWxsX2NudCBpcyBhIDQgYml0IGNvdW50ZXIgKi8KKwkJCWxvZy0+c3RhdHNbdHlwZV0uc2FtcGxlZF9vdmVyZmxvdyArPSAxNjsKKwkJfQorCisJCWRldl9ub3RpY2VfcmF0ZWxpbWl0ZWQoZ3VjX3RvX2d0KGxvZ190b19ndWMobG9nKSktPmk5MTUtPmRybS5kZXYsCisJCQkJICAgICAgICJHdUMgbG9nIGJ1ZmZlciBvdmVyZmxvd1xuIik7CisJfQorCisJcmV0dXJuIG92ZXJmbG93OworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGd1Y19nZXRfbG9nX2J1ZmZlcl9zaXplKGVudW0gZ3VjX2xvZ19idWZmZXJfdHlwZSB0eXBlKQoreworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgR1VDX0lTUl9MT0dfQlVGRkVSOgorCQlyZXR1cm4gSVNSX0JVRkZFUl9TSVpFOworCWNhc2UgR1VDX0RQQ19MT0dfQlVGRkVSOgorCQlyZXR1cm4gRFBDX0JVRkZFUl9TSVpFOworCWNhc2UgR1VDX0NSQVNIX0RVTVBfTE9HX0JVRkZFUjoKKwkJcmV0dXJuIENSQVNIX0JVRkZFUl9TSVpFOworCWRlZmF1bHQ6CisJCU1JU1NJTkdfQ0FTRSh0eXBlKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZ3VjX3JlYWRfdXBkYXRlX2xvZ19idWZmZXIoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKK3sKKwl1bnNpZ25lZCBpbnQgYnVmZmVyX3NpemUsIHJlYWRfb2Zmc2V0LCB3cml0ZV9vZmZzZXQsIGJ5dGVzX3RvX2NvcHksIGZ1bGxfY250OworCXN0cnVjdCBndWNfbG9nX2J1ZmZlcl9zdGF0ZSAqbG9nX2J1Zl9zdGF0ZSwgKmxvZ19idWZfc25hcHNob3Rfc3RhdGU7CisJc3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0YXRlIGxvZ19idWZfc3RhdGVfbG9jYWw7CisJZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHR5cGU7CisJdm9pZCAqc3JjX2RhdGEsICpkc3RfZGF0YTsKKwlib29sIG5ld19vdmVyZmxvdzsKKworCW11dGV4X2xvY2soJmxvZy0+cmVsYXkubG9jayk7CisKKwlpZiAoV0FSTl9PTighaW50ZWxfZ3VjX2xvZ19yZWxheV9lbmFibGVkKGxvZykpKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwkvKiBHZXQgdGhlIHBvaW50ZXIgdG8gc2hhcmVkIEd1QyBsb2cgYnVmZmVyICovCisJbG9nX2J1Zl9zdGF0ZSA9IHNyY19kYXRhID0gbG9nLT5yZWxheS5idWZfYWRkcjsKKworCS8qIEdldCB0aGUgcG9pbnRlciB0byBsb2NhbCBidWZmZXIgdG8gc3RvcmUgdGhlIGxvZ3MgKi8KKwlsb2dfYnVmX3NuYXBzaG90X3N0YXRlID0gZHN0X2RhdGEgPSBndWNfZ2V0X3dyaXRlX2J1ZmZlcihsb2cpOworCisJaWYgKHVubGlrZWx5KCFsb2dfYnVmX3NuYXBzaG90X3N0YXRlKSkgeworCQkvKgorCQkgKiBVc2VkIHJhdGUgbGltaXRlZCB0byBhdm9pZCBkZWx1Z2Ugb2YgbWVzc2FnZXMsIGxvZ3MgbWlnaHQgYmUKKwkJICogZ2V0dGluZyBjb25zdW1lZCBieSBVc2VyIGF0IGEgc2xvdyByYXRlLgorCQkgKi8KKwkJRFJNX0VSUk9SX1JBVEVMSU1JVEVEKCJubyBzdWItYnVmZmVyIHRvIGNhcHR1cmUgbG9nc1xuIik7CisJCWxvZy0+cmVsYXkuZnVsbF9jb3VudCsrOworCisJCWdvdG8gb3V0X3VubG9jazsKKwl9CisKKwkvKiBBY3R1YWwgbG9ncyBhcmUgcHJlc2VudCBmcm9tIHRoZSAybmQgcGFnZSAqLworCXNyY19kYXRhICs9IFBBR0VfU0laRTsKKwlkc3RfZGF0YSArPSBQQUdFX1NJWkU7CisKKwlmb3IgKHR5cGUgPSBHVUNfSVNSX0xPR19CVUZGRVI7IHR5cGUgPCBHVUNfTUFYX0xPR19CVUZGRVI7IHR5cGUrKykgeworCQkvKgorCQkgKiBNYWtlIGEgY29weSBvZiB0aGUgc3RhdGUgc3RydWN0dXJlLCBpbnNpZGUgR3VDIGxvZyBidWZmZXIKKwkJICogKHdoaWNoIGlzIHVuY2FjaGVkIG1hcHBlZCksIG9uIHRoZSBzdGFjayB0byBhdm9pZCByZWFkaW5nCisJCSAqIGZyb20gaXQgbXVsdGlwbGUgdGltZXMuCisJCSAqLworCQltZW1jcHkoJmxvZ19idWZfc3RhdGVfbG9jYWwsIGxvZ19idWZfc3RhdGUsCisJCSAgICAgICBzaXplb2Yoc3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0YXRlKSk7CisJCWJ1ZmZlcl9zaXplID0gZ3VjX2dldF9sb2dfYnVmZmVyX3NpemUodHlwZSk7CisJCXJlYWRfb2Zmc2V0ID0gbG9nX2J1Zl9zdGF0ZV9sb2NhbC5yZWFkX3B0cjsKKwkJd3JpdGVfb2Zmc2V0ID0gbG9nX2J1Zl9zdGF0ZV9sb2NhbC5zYW1wbGVkX3dyaXRlX3B0cjsKKwkJZnVsbF9jbnQgPSBsb2dfYnVmX3N0YXRlX2xvY2FsLmJ1ZmZlcl9mdWxsX2NudDsKKworCQkvKiBCb29ra2VlcGluZyBzdHVmZiAqLworCQlsb2ctPnN0YXRzW3R5cGVdLmZsdXNoICs9IGxvZ19idWZfc3RhdGVfbG9jYWwuZmx1c2hfdG9fZmlsZTsKKwkJbmV3X292ZXJmbG93ID0gZ3VjX2NoZWNrX2xvZ19idWZfb3ZlcmZsb3cobG9nLCB0eXBlLCBmdWxsX2NudCk7CisKKwkJLyogVXBkYXRlIHRoZSBzdGF0ZSBvZiBzaGFyZWQgbG9nIGJ1ZmZlciAqLworCQlsb2dfYnVmX3N0YXRlLT5yZWFkX3B0ciA9IHdyaXRlX29mZnNldDsKKwkJbG9nX2J1Zl9zdGF0ZS0+Zmx1c2hfdG9fZmlsZSA9IDA7CisJCWxvZ19idWZfc3RhdGUrKzsKKworCQkvKiBGaXJzdCBjb3B5IHRoZSBzdGF0ZSBzdHJ1Y3R1cmUgaW4gc25hcHNob3QgYnVmZmVyICovCisJCW1lbWNweShsb2dfYnVmX3NuYXBzaG90X3N0YXRlLCAmbG9nX2J1Zl9zdGF0ZV9sb2NhbCwKKwkJICAgICAgIHNpemVvZihzdHJ1Y3QgZ3VjX2xvZ19idWZmZXJfc3RhdGUpKTsKKworCQkvKgorCQkgKiBUaGUgd3JpdGUgcG9pbnRlciBjb3VsZCBoYXZlIGJlZW4gdXBkYXRlZCBieSBHdUMgZmlybXdhcmUsCisJCSAqIGFmdGVyIHNlbmRpbmcgdGhlIGZsdXNoIGludGVycnVwdCB0byBIb3N0LCBmb3IgY29uc2lzdGVuY3kKKwkJICogc2V0IHdyaXRlIHBvaW50ZXIgdmFsdWUgdG8gc2FtZSB2YWx1ZSBvZiBzYW1wbGVkX3dyaXRlX3B0cgorCQkgKiBpbiB0aGUgc25hcHNob3QgYnVmZmVyLgorCQkgKi8KKwkJbG9nX2J1Zl9zbmFwc2hvdF9zdGF0ZS0+d3JpdGVfcHRyID0gd3JpdGVfb2Zmc2V0OworCQlsb2dfYnVmX3NuYXBzaG90X3N0YXRlKys7CisKKwkJLyogTm93IGNvcHkgdGhlIGFjdHVhbCBsb2dzLiAqLworCQlpZiAodW5saWtlbHkobmV3X292ZXJmbG93KSkgeworCQkJLyogY29weSB0aGUgd2hvbGUgYnVmZmVyIGluIGNhc2Ugb2Ygb3ZlcmZsb3cgKi8KKwkJCXJlYWRfb2Zmc2V0ID0gMDsKKwkJCXdyaXRlX29mZnNldCA9IGJ1ZmZlcl9zaXplOworCQl9IGVsc2UgaWYgKHVubGlrZWx5KChyZWFkX29mZnNldCA+IGJ1ZmZlcl9zaXplKSB8fAorCQkJCSAgICAod3JpdGVfb2Zmc2V0ID4gYnVmZmVyX3NpemUpKSkgeworCQkJRFJNX0VSUk9SKCJpbnZhbGlkIGxvZyBidWZmZXIgc3RhdGVcbiIpOworCQkJLyogY29weSB3aG9sZSBidWZmZXIgYXMgb2Zmc2V0cyBhcmUgdW5yZWxpYWJsZSAqLworCQkJcmVhZF9vZmZzZXQgPSAwOworCQkJd3JpdGVfb2Zmc2V0ID0gYnVmZmVyX3NpemU7CisJCX0KKworCQkvKiBKdXN0IGNvcHkgdGhlIG5ld2x5IHdyaXR0ZW4gZGF0YSAqLworCQlpZiAocmVhZF9vZmZzZXQgPiB3cml0ZV9vZmZzZXQpIHsKKwkJCWk5MTVfbWVtY3B5X2Zyb21fd2MoZHN0X2RhdGEsIHNyY19kYXRhLCB3cml0ZV9vZmZzZXQpOworCQkJYnl0ZXNfdG9fY29weSA9IGJ1ZmZlcl9zaXplIC0gcmVhZF9vZmZzZXQ7CisJCX0gZWxzZSB7CisJCQlieXRlc190b19jb3B5ID0gd3JpdGVfb2Zmc2V0IC0gcmVhZF9vZmZzZXQ7CisJCX0KKwkJaTkxNV9tZW1jcHlfZnJvbV93Yyhkc3RfZGF0YSArIHJlYWRfb2Zmc2V0LAorCQkJCSAgICBzcmNfZGF0YSArIHJlYWRfb2Zmc2V0LCBieXRlc190b19jb3B5KTsKKworCQlzcmNfZGF0YSArPSBidWZmZXJfc2l6ZTsKKwkJZHN0X2RhdGEgKz0gYnVmZmVyX3NpemU7CisJfQorCisJZ3VjX21vdmVfdG9fbmV4dF9idWYobG9nKTsKKworb3V0X3VubG9jazoKKwltdXRleF91bmxvY2soJmxvZy0+cmVsYXkubG9jayk7Cit9CisKK3N0YXRpYyB2b2lkIGNhcHR1cmVfbG9nc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpbnRlbF9ndWNfbG9nLCByZWxheS5mbHVzaF93b3JrKTsKKworCWd1Y19sb2dfY2FwdHVyZV9sb2dzKGxvZyk7Cit9CisKK3N0YXRpYyBpbnQgZ3VjX2xvZ19tYXAoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKK3sKKwl2b2lkICp2YWRkcjsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmxvZy0+cmVsYXkubG9jayk7CisKKwlpZiAoIWxvZy0+dm1hKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCS8qCisJICogQ3JlYXRlIGEgV0MgKFVuY2FjaGVkIGZvciByZWFkKSB2bWFsbG9jIG1hcHBpbmcgb2YgbG9nCisJICogYnVmZmVyIHBhZ2VzLCBzbyB0aGF0IHdlIGNhbiBkaXJlY3RseSBnZXQgdGhlIGRhdGEKKwkgKiAodXAtdG8tZGF0ZSkgZnJvbSBtZW1vcnkuCisJICovCisJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChsb2ctPnZtYS0+b2JqLCBJOTE1X01BUF9XQyk7CisJaWYgKElTX0VSUih2YWRkcikpCisJCXJldHVybiBQVFJfRVJSKHZhZGRyKTsKKworCWxvZy0+cmVsYXkuYnVmX2FkZHIgPSB2YWRkcjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBndWNfbG9nX3VubWFwKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCit7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmbG9nLT5yZWxheS5sb2NrKTsKKworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAobG9nLT52bWEtPm9iaik7CisJbG9nLT5yZWxheS5idWZfYWRkciA9IE5VTEw7Cit9CisKK3ZvaWQgaW50ZWxfZ3VjX2xvZ19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCit7CisJbXV0ZXhfaW5pdCgmbG9nLT5yZWxheS5sb2NrKTsKKwlJTklUX1dPUksoJmxvZy0+cmVsYXkuZmx1c2hfd29yaywgY2FwdHVyZV9sb2dzX3dvcmspOworfQorCitzdGF0aWMgaW50IGd1Y19sb2dfcmVsYXlfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbG9nX3RvX2d1Yyhsb2cpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19ndChndWMpLT5pOTE1OworCXN0cnVjdCByY2hhbiAqZ3VjX2xvZ19yZWxheV9jaGFuOworCXNpemVfdCBuX3N1YmJ1ZnMsIHN1YmJ1Zl9zaXplOworCWludCByZXQ7CisKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZsb2ctPnJlbGF5LmxvY2spOworCUdFTV9CVUdfT04oIWxvZy0+dm1hKTsKKworCSAvKiBLZWVwIHRoZSBzaXplIG9mIHN1YiBidWZmZXJzIHNhbWUgYXMgc2hhcmVkIGxvZyBidWZmZXIgKi8KKwlzdWJidWZfc2l6ZSA9IGxvZy0+dm1hLT5zaXplOworCisJLyoKKwkgKiBTdG9yZSB1cCB0byA4IHNuYXBzaG90cywgd2hpY2ggaXMgbGFyZ2UgZW5vdWdoIHRvIGJ1ZmZlciBzdWZmaWNpZW50CisJICogYm9vdCB0aW1lIGxvZ3MgYW5kIHByb3ZpZGVzIGVub3VnaCBsZWV3YXkgdG8gVXNlciwgaW4gdGVybXMgb2YKKwkgKiBsYXRlbmN5LCBmb3IgY29uc3VtaW5nIHRoZSBsb2dzIGZyb20gcmVsYXkuIEFsc28gZG9lc24ndCB0YWtlCisJICogdXAgdG9vIG11Y2ggbWVtb3J5LgorCSAqLworCW5fc3ViYnVmcyA9IDg7CisKKwlndWNfbG9nX3JlbGF5X2NoYW4gPSByZWxheV9vcGVuKCJndWNfbG9nIiwKKwkJCQkJZGV2X3ByaXYtPmRybS5wcmltYXJ5LT5kZWJ1Z2ZzX3Jvb3QsCisJCQkJCXN1YmJ1Zl9zaXplLCBuX3N1YmJ1ZnMsCisJCQkJCSZyZWxheV9jYWxsYmFja3MsIGRldl9wcml2KTsKKwlpZiAoIWd1Y19sb2dfcmVsYXlfY2hhbikgeworCQlEUk1fRVJST1IoIkNvdWxkbid0IGNyZWF0ZSByZWxheSBjaGFuIGZvciBHdUMgbG9nZ2luZ1xuIik7CisKKwkJcmV0ID0gLUVOT01FTTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlHRU1fQlVHX09OKGd1Y19sb2dfcmVsYXlfY2hhbi0+c3ViYnVmX3NpemUgPCBzdWJidWZfc2l6ZSk7CisJbG9nLT5yZWxheS5jaGFubmVsID0gZ3VjX2xvZ19yZWxheV9jaGFuOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19sb2dfcmVsYXlfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQoreworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmxvZy0+cmVsYXkubG9jayk7CisKKwlyZWxheV9jbG9zZShsb2ctPnJlbGF5LmNoYW5uZWwpOworCWxvZy0+cmVsYXkuY2hhbm5lbCA9IE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19sb2dfY2FwdHVyZV9sb2dzKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbG9nX3RvX2d1Yyhsb2cpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19ndChndWMpLT5pOTE1OworCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOworCisJZ3VjX3JlYWRfdXBkYXRlX2xvZ19idWZmZXIobG9nKTsKKworCS8qCisJICogR2VuZXJhbGx5IGRldmljZSBpcyBleHBlY3RlZCB0byBiZSBhY3RpdmUgb25seSBhdCB0aGlzCisJICogdGltZSwgc28gZ2V0L3B1dCBzaG91bGQgYmUgcmVhbGx5IHF1aWNrLgorCSAqLworCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCisJCWd1Y19hY3Rpb25fZmx1c2hfbG9nX2NvbXBsZXRlKGd1Yyk7Cit9CisKK3N0YXRpYyB1MzIgX19nZXRfZGVmYXVsdF9sb2dfbGV2ZWwoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKK3sKKwkvKiBBIG5lZ2F0aXZlIHZhbHVlIG1lYW5zICJ1c2UgcGxhdGZvcm0vY29uZmlnIGRlZmF1bHQiICovCisJaWYgKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPCAwKSB7CisJCXJldHVybiAoSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUcpIHx8CisJCQlJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVR19HRU0pKSA/CisJCQlHVUNfTE9HX0xFVkVMX01BWCA6IEdVQ19MT0dfTEVWRUxfTk9OX1ZFUkJPU0U7CisJfQorCisJaWYgKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPiBHVUNfTE9HX0xFVkVMX01BWCkgeworCQlEUk1fV0FSTigiSW5jb21wYXRpYmxlIG9wdGlvbiBkZXRlY3RlZDogJXM9JWQsICVzIVxuIiwKKwkJCSAiZ3VjX2xvZ19sZXZlbCIsIGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwsCisJCQkgInZlcmJvc2l0eSB0b28gaGlnaCIpOworCQlyZXR1cm4gKElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHKSB8fAorCQkJSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKSkgPworCQkJR1VDX0xPR19MRVZFTF9NQVggOiBHVUNfTE9HX0xFVkVMX0RJU0FCTEVEOworCX0KKworCUdFTV9CVUdfT04oaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA8IEdVQ19MT0dfTEVWRUxfRElTQUJMRUQpOworCUdFTV9CVUdfT04oaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA+IEdVQ19MT0dfTEVWRUxfTUFYKTsKKwlyZXR1cm4gaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbDsKK30KKworaW50IGludGVsX2d1Y19sb2dfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbG9nX3RvX2d1Yyhsb2cpOworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCXUzMiBndWNfbG9nX3NpemU7CisJaW50IHJldDsKKworCUdFTV9CVUdfT04obG9nLT52bWEpOworCisJLyoKKwkgKiAgR3VDIExvZyBidWZmZXIgTGF5b3V0CisJICoKKwkgKiAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rIDAwQgorCSAqICB8ICAgIENyYXNoIGR1bXAgc3RhdGUgaGVhZGVyICAgIHwKKwkgKiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDMyQgorCSAqICB8ICAgICAgIERQQyBzdGF0ZSBoZWFkZXIgICAgICAgIHwKKwkgKiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDY0QgorCSAqICB8ICAgICAgIElTUiBzdGF0ZSBoZWFkZXIgICAgICAgIHwKKwkgKiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDk2QgorCSAqICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKwkgKiAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rIFBBR0VfU0laRSAoNEtCKQorCSAqICB8ICAgICAgICBDcmFzaCBEdW1wIGxvZ3MgICAgICAgIHwKKwkgKiAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rICsgQ1JBU0hfU0laRQorCSAqICB8ICAgICAgICAgICBEUEMgbG9ncyAgICAgICAgICAgIHwKKwkgKiAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rICsgRFBDX1NJWkUKKwkgKiAgfCAgICAgICAgICAgSVNSIGxvZ3MgICAgICAgICAgICB8CisJICogICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KyArIElTUl9TSVpFCisJICovCisJZ3VjX2xvZ19zaXplID0gUEFHRV9TSVpFICsgQ1JBU0hfQlVGRkVSX1NJWkUgKyBEUENfQlVGRkVSX1NJWkUgKworCQkJSVNSX0JVRkZFUl9TSVpFOworCisJdm1hID0gaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYShndWMsIGd1Y19sb2dfc2l6ZSk7CisJaWYgKElTX0VSUih2bWEpKSB7CisJCXJldCA9IFBUUl9FUlIodm1hKTsKKwkJZ290byBlcnI7CisJfQorCisJbG9nLT52bWEgPSB2bWE7CisKKwlsb2ctPmxldmVsID0gX19nZXRfZGVmYXVsdF9sb2dfbGV2ZWwobG9nKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJndWNfbG9nX2xldmVsPSVkICglcywgdmVyYm9zZTolcywgdmVyYm9zaXR5OiVkKVxuIiwKKwkJCSBsb2ctPmxldmVsLCBlbmFibGVkZGlzYWJsZWQobG9nLT5sZXZlbCksCisJCQkgeWVzbm8oR1VDX0xPR19MRVZFTF9JU19WRVJCT1NFKGxvZy0+bGV2ZWwpKSwKKwkJCSBHVUNfTE9HX0xFVkVMX1RPX1ZFUkJPU0lUWShsb2ctPmxldmVsKSk7CisKKwlyZXR1cm4gMDsKKworZXJyOgorCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIEd1QyBsb2cgYnVmZmVyLiAlZFxuIiwgcmV0KTsKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGludGVsX2d1Y19sb2dfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQoreworCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZsb2ctPnZtYSwgMCk7Cit9CisKK2ludCBpbnRlbF9ndWNfbG9nX3NldF9sZXZlbChzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nLCB1MzIgbGV2ZWwpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbG9nX3RvX2d1Yyhsb2cpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19ndChndWMpLT5pOTE1OworCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOworCWludCByZXQgPSAwOworCisJQlVJTERfQlVHX09OKEdVQ19MT0dfVkVSQk9TSVRZX01JTiAhPSAwKTsKKwlHRU1fQlVHX09OKCFsb2ctPnZtYSk7CisKKwkvKgorCSAqIEd1QyBpcyByZWNvZ25pemluZyBsb2cgbGV2ZWxzIHN0YXJ0aW5nIGZyb20gMCB0byBtYXgsIHdlJ3JlIHVzaW5nIDAKKwkgKiBhcyBpbmRpY2F0aW9uIHRoYXQgbG9nZ2luZyBzaG91bGQgYmUgZGlzYWJsZWQuCisJICovCisJaWYgKGxldmVsIDwgR1VDX0xPR19MRVZFTF9ESVNBQkxFRCB8fCBsZXZlbCA+IEdVQ19MT0dfTEVWRUxfTUFYKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKKworCWlmIChsb2ctPmxldmVsID09IGxldmVsKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKQorCQlyZXQgPSBndWNfYWN0aW9uX2NvbnRyb2xfbG9nKGd1YywKKwkJCQkJICAgICBHVUNfTE9HX0xFVkVMX0lTX1ZFUkJPU0UobGV2ZWwpLAorCQkJCQkgICAgIEdVQ19MT0dfTEVWRUxfSVNfRU5BQkxFRChsZXZlbCksCisJCQkJCSAgICAgR1VDX0xPR19MRVZFTF9UT19WRVJCT1NJVFkobGV2ZWwpKTsKKwlpZiAocmV0KSB7CisJCURSTV9ERUJVR19EUklWRVIoImd1Y19sb2dfY29udHJvbCBhY3Rpb24gZmFpbGVkICVkXG4iLCByZXQpOworCQlnb3RvIG91dF91bmxvY2s7CisJfQorCisJbG9nLT5sZXZlbCA9IGxldmVsOworCitvdXRfdW5sb2NrOgorCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KKworYm9vbCBpbnRlbF9ndWNfbG9nX3JlbGF5X2VuYWJsZWQoY29uc3Qgc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKK3sKKwlyZXR1cm4gbG9nLT5yZWxheS5idWZfYWRkcjsKK30KKworaW50IGludGVsX2d1Y19sb2dfcmVsYXlfb3BlbihzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQoreworCWludCByZXQ7CisKKwlpZiAoIWxvZy0+dm1hKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCW11dGV4X2xvY2soJmxvZy0+cmVsYXkubG9jayk7CisKKwlpZiAoaW50ZWxfZ3VjX2xvZ19yZWxheV9lbmFibGVkKGxvZykpIHsKKwkJcmV0ID0gLUVFWElTVDsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKworCS8qCisJICogV2UgcmVxdWlyZSBTU0UgNC4xIGZvciBmYXN0IHJlYWRzIGZyb20gdGhlIEd1QyBsb2cgYnVmZmVyIGFuZAorCSAqIGl0IHNob3VsZCBiZSBwcmVzZW50IG9uIHRoZSBjaGlwc2V0cyBzdXBwb3J0aW5nIEd1QyBiYXNlZAorCSAqIHN1Ym1pc3NzaW9ucy4KKwkgKi8KKwlpZiAoIWk5MTVfaGFzX21lbWNweV9mcm9tX3djKCkpIHsKKwkJcmV0ID0gLUVOWElPOworCQlnb3RvIG91dF91bmxvY2s7CisJfQorCisJcmV0ID0gZ3VjX2xvZ19yZWxheV9jcmVhdGUobG9nKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlyZXQgPSBndWNfbG9nX21hcChsb2cpOworCWlmIChyZXQpCisJCWdvdG8gb3V0X3JlbGF5OworCisJbXV0ZXhfdW5sb2NrKCZsb2ctPnJlbGF5LmxvY2spOworCisJZ3VjX2xvZ19lbmFibGVfZmx1c2hfZXZlbnRzKGxvZyk7CisKKwkvKgorCSAqIFdoZW4gR3VDIGlzIGxvZ2dpbmcgd2l0aG91dCB1cyByZWxheWluZyB0byB1c2Vyc3BhY2UsIHdlJ3JlIGlnbm9yaW5nCisJICogdGhlIGZsdXNoIG5vdGlmaWNhdGlvbi4gVGhpcyBtZWFucyB0aGF0IHdlIG5lZWQgdG8gdW5jb25kaXRpb25hbGx5CisJICogZmx1c2ggb24gcmVsYXkgZW5hYmxpbmcsIHNpbmNlIEd1QyBvbmx5IG5vdGlmaWVzIHVzIG9uY2UuCisJICovCisJcXVldWVfd29yayhzeXN0ZW1faGlnaHByaV93cSwgJmxvZy0+cmVsYXkuZmx1c2hfd29yayk7CisKKwlyZXR1cm4gMDsKKworb3V0X3JlbGF5OgorCWd1Y19sb2dfcmVsYXlfZGVzdHJveShsb2cpOworb3V0X3VubG9jazoKKwltdXRleF91bmxvY2soJmxvZy0+cmVsYXkubG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGludGVsX2d1Y19sb2dfcmVsYXlfZmx1c2goc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBsb2dfdG9fZ3VjKGxvZyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9fZ3QoZ3VjKS0+aTkxNTsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKKworCS8qCisJICogQmVmb3JlIGluaXRpYXRpbmcgdGhlIGZvcmNlZnVsIGZsdXNoLCB3YWl0IGZvciBhbnkgcGVuZGluZy9vbmdvaW5nCisJICogZmx1c2ggdG8gY29tcGxldGUgb3RoZXJ3aXNlIGZvcmNlZnVsIGZsdXNoIG1heSBub3QgYWN0dWFsbHkgaGFwcGVuLgorCSAqLworCWZsdXNoX3dvcmsoJmxvZy0+cmVsYXkuZmx1c2hfd29yayk7CisKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCisJCWd1Y19hY3Rpb25fZmx1c2hfbG9nKGd1Yyk7CisKKwkvKiBHdUMgd291bGQgaGF2ZSB1cGRhdGVkIGxvZyBidWZmZXIgYnkgbm93LCBzbyBjYXB0dXJlIGl0ICovCisJZ3VjX2xvZ19jYXB0dXJlX2xvZ3MobG9nKTsKK30KKwordm9pZCBpbnRlbF9ndWNfbG9nX3JlbGF5X2Nsb3NlKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbG9nX3RvX2d1Yyhsb2cpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3RvX2d0KGd1YyktPmk5MTU7CisKKwlndWNfbG9nX2Rpc2FibGVfZmx1c2hfZXZlbnRzKGxvZyk7CisJaW50ZWxfc3luY2hyb25pemVfaXJxKGk5MTUpOworCisJZmx1c2hfd29yaygmbG9nLT5yZWxheS5mbHVzaF93b3JrKTsKKworCW11dGV4X2xvY2soJmxvZy0+cmVsYXkubG9jayk7CisJR0VNX0JVR19PTighaW50ZWxfZ3VjX2xvZ19yZWxheV9lbmFibGVkKGxvZykpOworCWd1Y19sb2dfdW5tYXAobG9nKTsKKwlndWNfbG9nX3JlbGF5X2Rlc3Ryb3kobG9nKTsKKwltdXRleF91bmxvY2soJmxvZy0+cmVsYXkubG9jayk7Cit9CisKK3ZvaWQgaW50ZWxfZ3VjX2xvZ19oYW5kbGVfZmx1c2hfZXZlbnQoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKK3sKKwlxdWV1ZV93b3JrKHN5c3RlbV9oaWdocHJpX3dxLCAmbG9nLT5yZWxheS5mbHVzaF93b3JrKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Zjc2NDg3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZy5oCkBAIC0wLDAgKzEsODAgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfSU5URUxfR1VDX0xPR19IXworI2RlZmluZSBfSU5URUxfR1VDX0xPR19IXworCisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9yZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorCisjaW5jbHVkZSAiaW50ZWxfZ3VjX2Z3aWYuaCIKKyNpbmNsdWRlICJpOTE1X2dlbS5oIgorCitzdHJ1Y3QgaW50ZWxfZ3VjOworCisjaWZkZWYgQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dVQworI2RlZmluZSBDUkFTSF9CVUZGRVJfU0laRQlTWl8yTQorI2RlZmluZSBEUENfQlVGRkVSX1NJWkUJCVNaXzhNCisjZGVmaW5lIElTUl9CVUZGRVJfU0laRQkJU1pfOE0KKyNlbHNlCisjZGVmaW5lIENSQVNIX0JVRkZFUl9TSVpFCVNaXzhLCisjZGVmaW5lIERQQ19CVUZGRVJfU0laRQkJU1pfMzJLCisjZGVmaW5lIElTUl9CVUZGRVJfU0laRQkJU1pfMzJLCisjZW5kaWYKKworLyoKKyAqIFdoaWxlIHdlJ3JlIHVzaW5nIHBsYWluIGxvZyBsZXZlbCBpbiBpOTE1LCBHdUMgY29udHJvbHMgYXJlIG11Y2ggbW9yZS4uLgorICogImVsYWJvcmF0ZSI/IFdlIGhhdmUgYSBjb3VwbGUgb2YgYml0cyBmb3IgdmVyYm9zaXR5LCBzZXBhcmF0ZSBiaXQgZm9yIGFjdHVhbAorICogbG9nIGVuYWJsaW5nLCBhbmQgc2VwYXJhdGUgYml0IGZvciBkZWZhdWx0IGxvZ2dpbmcgLSB3aGljaCAiY29udmVuaWVudGx5IgorICogaWdub3JlcyB0aGUgZW5hYmxlIGJpdC4KKyAqLworI2RlZmluZSBHVUNfTE9HX0xFVkVMX0RJU0FCTEVECQkwCisjZGVmaW5lIEdVQ19MT0dfTEVWRUxfTk9OX1ZFUkJPU0UJMQorI2RlZmluZSBHVUNfTE9HX0xFVkVMX0lTX0VOQUJMRUQoeCkJKCh4KSA+IEdVQ19MT0dfTEVWRUxfRElTQUJMRUQpCisjZGVmaW5lIEdVQ19MT0dfTEVWRUxfSVNfVkVSQk9TRSh4KQkoKHgpID4gR1VDX0xPR19MRVZFTF9OT05fVkVSQk9TRSkKKyNkZWZpbmUgR1VDX0xPR19MRVZFTF9UT19WRVJCT1NJVFkoeCkgKHsJCVwKKwl0eXBlb2YoeCkgX3ggPSAoeCk7CQkJCVwKKwlHVUNfTE9HX0xFVkVMX0lTX1ZFUkJPU0UoX3gpID8gX3ggLSAyIDogMDsJXAorfSkKKyNkZWZpbmUgR1VDX1ZFUkJPU0lUWV9UT19MT0dfTEVWRUwoeCkJKCh4KSArIDIpCisjZGVmaW5lIEdVQ19MT0dfTEVWRUxfTUFYIEdVQ19WRVJCT1NJVFlfVE9fTE9HX0xFVkVMKEdVQ19MT0dfVkVSQk9TSVRZX01BWCkKKworc3RydWN0IGludGVsX2d1Y19sb2cgeworCXUzMiBsZXZlbDsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwlzdHJ1Y3QgeworCQl2b2lkICpidWZfYWRkcjsKKwkJc3RydWN0IHdvcmtfc3RydWN0IGZsdXNoX3dvcms7CisJCXN0cnVjdCByY2hhbiAqY2hhbm5lbDsKKwkJc3RydWN0IG11dGV4IGxvY2s7CisJCXUzMiBmdWxsX2NvdW50OworCX0gcmVsYXk7CisJLyogbG9nZ2luZyByZWxhdGVkIHN0YXRzICovCisJc3RydWN0IHsKKwkJdTMyIHNhbXBsZWRfb3ZlcmZsb3c7CisJCXUzMiBvdmVyZmxvdzsKKwkJdTMyIGZsdXNoOworCX0gc3RhdHNbR1VDX01BWF9MT0dfQlVGRkVSXTsKK307CisKK3ZvaWQgaW50ZWxfZ3VjX2xvZ19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOworaW50IGludGVsX2d1Y19sb2dfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOwordm9pZCBpbnRlbF9ndWNfbG9nX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZyk7CisKK2ludCBpbnRlbF9ndWNfbG9nX3NldF9sZXZlbChzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nLCB1MzIgbGV2ZWwpOworYm9vbCBpbnRlbF9ndWNfbG9nX3JlbGF5X2VuYWJsZWQoY29uc3Qgc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZyk7CitpbnQgaW50ZWxfZ3VjX2xvZ19yZWxheV9vcGVuKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOwordm9pZCBpbnRlbF9ndWNfbG9nX3JlbGF5X2ZsdXNoKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOwordm9pZCBpbnRlbF9ndWNfbG9nX3JlbGF5X2Nsb3NlKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOworCit2b2lkIGludGVsX2d1Y19sb2dfaGFuZGxlX2ZsdXNoX2V2ZW50KHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOworCitzdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9ndWNfbG9nX2dldF9sZXZlbChzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQoreworCXJldHVybiBsb2ctPmxldmVsOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19yZWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGYxOTRkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3JlZy5oCkBAIC0wLDAgKzEsMTQzIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX0lOVEVMX0dVQ19SRUdfSF8KKyNkZWZpbmUgX0lOVEVMX0dVQ19SRUdfSF8KKworI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2luY2x1ZGUgImk5MTVfcmVnLmgiCisKKy8qIERlZmluaXRpb25zIG9mIEd1QyBIL1cgcmVnaXN0ZXJzLCBiaXRzLCBldGMgKi8KKworI2RlZmluZSBHVUNfU1RBVFVTCQkJX01NSU8oMHhjMDAwKQorI2RlZmluZSAgIEdTX1JFU0VUX1NISUZUCQkwCisjZGVmaW5lICAgR1NfTUlBX0lOX1JFU0VUCQkgICgweDAxIDw8IEdTX1JFU0VUX1NISUZUKQorI2RlZmluZSAgIEdTX0JPT1RST01fU0hJRlQJCTEKKyNkZWZpbmUgICBHU19CT09UUk9NX01BU0sJCSAgKDB4N0YgPDwgR1NfQk9PVFJPTV9TSElGVCkKKyNkZWZpbmUgICBHU19CT09UUk9NX1JTQV9GQUlMRUQJCSAgKDB4NTAgPDwgR1NfQk9PVFJPTV9TSElGVCkKKyNkZWZpbmUgICBHU19CT09UUk9NX0pVTVBfUEFTU0VECSAgKDB4NzYgPDwgR1NfQk9PVFJPTV9TSElGVCkKKyNkZWZpbmUgICBHU19VS0VSTkVMX1NISUZUCQk4CisjZGVmaW5lICAgR1NfVUtFUk5FTF9NQVNLCQkgICgweEZGIDw8IEdTX1VLRVJORUxfU0hJRlQpCisjZGVmaW5lICAgR1NfVUtFUk5FTF9MQVBJQ19ET05FCQkgICgweDMwIDw8IEdTX1VLRVJORUxfU0hJRlQpCisjZGVmaW5lICAgR1NfVUtFUk5FTF9EUENfRVJST1IJCSAgKDB4NjAgPDwgR1NfVUtFUk5FTF9TSElGVCkKKyNkZWZpbmUgICBHU19VS0VSTkVMX0VYQ0VQVElPTgkJICAoMHg3MCA8PCBHU19VS0VSTkVMX1NISUZUKQorI2RlZmluZSAgIEdTX1VLRVJORUxfUkVBRFkJCSAgKDB4RjAgPDwgR1NfVUtFUk5FTF9TSElGVCkKKyNkZWZpbmUgICBHU19NSUFfU0hJRlQJCQkxNgorI2RlZmluZSAgIEdTX01JQV9NQVNLCQkJICAoMHgwNyA8PCBHU19NSUFfU0hJRlQpCisjZGVmaW5lICAgR1NfTUlBX0NPUkVfU1RBVEUJCSAgKDB4MDEgPDwgR1NfTUlBX1NISUZUKQorI2RlZmluZSAgIEdTX01JQV9IQUxUX1JFUVVFU1RFRAkJICAoMHgwMiA8PCBHU19NSUFfU0hJRlQpCisjZGVmaW5lICAgR1NfTUlBX0lTUl9FTlRSWQkJICAoMHgwNCA8PCBHU19NSUFfU0hJRlQpCisjZGVmaW5lICAgR1NfQVVUSF9TVEFUVVNfU0hJRlQJCTMwCisjZGVmaW5lICAgR1NfQVVUSF9TVEFUVVNfTUFTSwkJICAoMHgwMyA8PCBHU19BVVRIX1NUQVRVU19TSElGVCkKKyNkZWZpbmUgICBHU19BVVRIX1NUQVRVU19CQUQJCSAgKDB4MDEgPDwgR1NfQVVUSF9TVEFUVVNfU0hJRlQpCisjZGVmaW5lICAgR1NfQVVUSF9TVEFUVVNfR09PRAkJICAoMHgwMiA8PCBHU19BVVRIX1NUQVRVU19TSElGVCkKKworI2RlZmluZSBTT0ZUX1NDUkFUQ0gobikJCQlfTU1JTygweGMxODAgKyAobikgKiA0KQorI2RlZmluZSBTT0ZUX1NDUkFUQ0hfQ09VTlQJCTE2CisKKyNkZWZpbmUgR0VOMTFfU09GVF9TQ1JBVENIKG4pCQlfTU1JTygweDE5MDI0MCArIChuKSAqIDQpCisjZGVmaW5lIEdFTjExX1NPRlRfU0NSQVRDSF9DT1VOVAk0CisKKyNkZWZpbmUgVU9TX1JTQV9TQ1JBVENIKGkpCQlfTU1JTygweGMyMDAgKyAoaSkgKiA0KQorI2RlZmluZSBVT1NfUlNBX1NDUkFUQ0hfQ09VTlQJCTY0CisKKyNkZWZpbmUgRE1BX0FERFJfMF9MT1cJCQlfTU1JTygweGMzMDApCisjZGVmaW5lIERNQV9BRERSXzBfSElHSAkJCV9NTUlPKDB4YzMwNCkKKyNkZWZpbmUgRE1BX0FERFJfMV9MT1cJCQlfTU1JTygweGMzMDgpCisjZGVmaW5lIERNQV9BRERSXzFfSElHSAkJCV9NTUlPKDB4YzMwYykKKyNkZWZpbmUgICBETUFfQUREUkVTU19TUEFDRV9XT1BDTQkgICg3IDw8IDE2KQorI2RlZmluZSAgIERNQV9BRERSRVNTX1NQQUNFX0dUVAkJICAoOCA8PCAxNikKKyNkZWZpbmUgRE1BX0NPUFlfU0laRQkJCV9NTUlPKDB4YzMxMCkKKyNkZWZpbmUgRE1BX0NUUkwJCQlfTU1JTygweGMzMTQpCisjZGVmaW5lICAgSFVDX1VLRVJORUwJCQkgICgxPDw5KQorI2RlZmluZSAgIFVPU19NT1ZFCQkJICAoMTw8NCkKKyNkZWZpbmUgICBTVEFSVF9ETUEJCQkgICgxPDwwKQorI2RlZmluZSBETUFfR1VDX1dPUENNX09GRlNFVAkJX01NSU8oMHhjMzQwKQorI2RlZmluZSAgIEdVQ19XT1BDTV9PRkZTRVRfVkFMSUQJICAoMTw8MCkKKyNkZWZpbmUgICBIVUNfTE9BRElOR19BR0VOVF9WQ1IJCSAgKDA8PDEpCisjZGVmaW5lICAgSFVDX0xPQURJTkdfQUdFTlRfR1VDCQkgICgxPDwxKQorI2RlZmluZSAgIEdVQ19XT1BDTV9PRkZTRVRfU0hJRlQJMTQKKyNkZWZpbmUgICBHVUNfV09QQ01fT0ZGU0VUX01BU0sJCSAgKDB4M2ZmZmYgPDwgR1VDX1dPUENNX09GRlNFVF9TSElGVCkKKyNkZWZpbmUgR1VDX01BWF9JRExFX0NPVU5UCQlfTU1JTygweEMzRTQpCisKKyNkZWZpbmUgSFVDX1NUQVRVUzIgICAgICAgICAgICAgX01NSU8oMHhEM0IwKQorI2RlZmluZSAgIEhVQ19GV19WRVJJRklFRCAgICAgICAoMTw8NykKKworI2RlZmluZSBHRU4xMV9IVUNfS0VSTkVMX0xPQURfSU5GTwlfTU1JTygweEMxREMpCisjZGVmaW5lICAgSFVDX0xPQURfU1VDQ0VTU0ZVTAkJICAoMSA8PCAwKQorCisjZGVmaW5lIEdVQ19XT1BDTV9TSVpFCQkJX01NSU8oMHhjMDUwKQorI2RlZmluZSAgIEdVQ19XT1BDTV9TSVpFX0xPQ0tFRAkJICAoMTw8MCkKKyNkZWZpbmUgICBHVUNfV09QQ01fU0laRV9TSElGVAkJMTIKKyNkZWZpbmUgICBHVUNfV09QQ01fU0laRV9NQVNLCQkgICgweGZmZmZmIDw8IEdVQ19XT1BDTV9TSVpFX1NISUZUKQorCisjZGVmaW5lIEdFTjhfR1RfUE1fQ09ORklHCQlfTU1JTygweDEzODE0MCkKKyNkZWZpbmUgR0VOOUxQX0dUX1BNX0NPTkZJRwkJX01NSU8oMHgxMzgxNDApCisjZGVmaW5lIEdFTjlfR1RfUE1fQ09ORklHCQlfTU1JTygweDEzODE2YykKKyNkZWZpbmUgICBHVF9ET09SQkVMTF9FTkFCTEUJCSAgKDE8PDApCisKKyNkZWZpbmUgR0VOOF9HVENSCQkJX01NSU8oMHg0Mjc0KQorI2RlZmluZSAgIEdFTjhfR1RDUl9JTlZBTElEQVRFCQkgICgxPDwwKQorCisjZGVmaW5lIEdVQ19BUkFUX0M2RElTCQkJX01NSU8oMHhBMTc4KQorCisjZGVmaW5lIEdVQ19TSElNX0NPTlRST0wJCV9NTUlPKDB4YzA2NCkKKyNkZWZpbmUgICBHVUNfRElTQUJMRV9TUkFNX0lOSVRfVE9fWkVST0VTCSgxPDwwKQorI2RlZmluZSAgIEdVQ19FTkFCTEVfUkVBRF9DQUNIRV9MT0dJQwkJKDE8PDEpCisjZGVmaW5lICAgR1VDX0VOQUJMRV9NSUFfQ0FDSElORwkJKDE8PDIpCisjZGVmaW5lICAgR1VDX0dFTjEwX01TR0NIX0VOQUJMRQkJKDE8PDQpCisjZGVmaW5lICAgR1VDX0VOQUJMRV9SRUFEX0NBQ0hFX0ZPUl9TUkFNX0RBVEEJKDE8PDkpCisjZGVmaW5lICAgR1VDX0VOQUJMRV9SRUFEX0NBQ0hFX0ZPUl9XT1BDTV9EQVRBCSgxPDwxMCkKKyNkZWZpbmUgICBHVUNfRU5BQkxFX01JQV9DTE9DS19HQVRJTkcJCSgxPDwxNSkKKyNkZWZpbmUgICBHVUNfR0VOMTBfU0hJTV9XQ19FTkFCTEUJCSgxPDwyMSkKKworI2RlZmluZSBHVUNfU0VORF9JTlRFUlJVUFQJCV9NTUlPKDB4YzRjOCkKKyNkZWZpbmUgICBHVUNfU0VORF9UUklHR0VSCQkgICgxPDwwKQorI2RlZmluZSBHRU4xMV9HVUNfSE9TVF9JTlRFUlJVUFQJX01NSU8oMHgxOTAxZjApCisKKyNkZWZpbmUgR1VDX05VTV9ET09SQkVMTFMJCTI1NgorCisvKiBmb3JtYXQgb2YgdGhlIEhXLW1vbml0b3JlZCBkb29yYmVsbCBjYWNoZWxpbmUgKi8KK3N0cnVjdCBndWNfZG9vcmJlbGxfaW5mbyB7CisJdTMyIGRiX3N0YXR1czsKKyNkZWZpbmUgR1VDX0RPT1JCRUxMX0RJU0FCTEVECQkwCisjZGVmaW5lIEdVQ19ET09SQkVMTF9FTkFCTEVECQkxCisKKwl1MzIgY29va2llOworCXUzMiByZXNlcnZlZFsxNF07Cit9IF9fcGFja2VkOworCisjZGVmaW5lIEdFTjhfRFJCUkVHTCh4KQkJCV9NTUlPKDB4MTAwMCArICh4KSAqIDgpCisjZGVmaW5lICAgR0VOOF9EUkJfVkFMSUQJCSAgKDE8PDApCisjZGVmaW5lIEdFTjhfRFJCUkVHVSh4KQkJCV9NTUlPKDB4MTAwMCArICh4KSAqIDggKyA0KQorCisjZGVmaW5lIERFX0dVQ1JNUgkJCV9NTUlPKDB4NDQwNTQpCisKKyNkZWZpbmUgR1VDX0JDU19SQ1NfSUVSCQkJX01NSU8oMHhDNTUwKQorI2RlZmluZSBHVUNfVkNTMl9WQ1MxX0lFUgkJX01NSU8oMHhDNTU0KQorI2RlZmluZSBHVUNfV0RfVkVDU19JRVIJCQlfTU1JTygweEM1NTgpCisjZGVmaW5lIEdVQ19QTV9QMjRDX0lFUgkJCV9NTUlPKDB4QzU1QykKKworLyogR3VDIEludGVycnVwdCBWZWN0b3IgKi8KKyNkZWZpbmUgR1VDX0lOVFJfR1VDMkhPU1QJCUJJVCgxNSkKKyNkZWZpbmUgR1VDX0lOVFJfRVhFQ19FUlJPUgkJQklUKDE0KQorI2RlZmluZSBHVUNfSU5UUl9ESVNQTEFZX0VWRU5UCQlCSVQoMTMpCisjZGVmaW5lIEdVQ19JTlRSX1NFTV9TSUcJCUJJVCgxMikKKyNkZWZpbmUgR1VDX0lOVFJfSU9NTVUyR1VDCQlCSVQoMTEpCisjZGVmaW5lIEdVQ19JTlRSX0RPT1JCRUxMX1JBTkcJCUJJVCgxMCkKKyNkZWZpbmUgR1VDX0lOVFJfRE1BX0RPTkUJCUJJVCg5KQorI2RlZmluZSBHVUNfSU5UUl9GQVRBTF9FUlJPUgkJQklUKDgpCisjZGVmaW5lIEdVQ19JTlRSX05PVElGX0VSUk9SCQlCSVQoNykKKyNkZWZpbmUgR1VDX0lOVFJfU1dfSU5UXzYJCUJJVCg2KQorI2RlZmluZSBHVUNfSU5UUl9TV19JTlRfNQkJQklUKDUpCisjZGVmaW5lIEdVQ19JTlRSX1NXX0lOVF80CQlCSVQoNCkKKyNkZWZpbmUgR1VDX0lOVFJfU1dfSU5UXzMJCUJJVCgzKQorI2RlZmluZSBHVUNfSU5UUl9TV19JTlRfMgkJQklUKDIpCisjZGVmaW5lIEdVQ19JTlRSX1NXX0lOVF8xCQlCSVQoMSkKKyNkZWZpbmUgR1VDX0lOVFJfU1dfSU5UXzAJCUJJVCgwKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzMjVkM2QKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCkBAIC0wLDAgKzEsMTE4NCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NpcmNfYnVmLmg+CisKKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY29udGV4dC5oIgorCisjaW5jbHVkZSAiZ3QvaW50ZWxfY29udGV4dC5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3RfcG0uaCIKKyNpbmNsdWRlICJndC9pbnRlbF9scmNfcmVnLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaCIKKworI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgorCitlbnVtIHsKKwlHVUNfUFJFRU1QVF9OT05FID0gMCwKKwlHVUNfUFJFRU1QVF9JTlBST0dSRVNTLAorCUdVQ19QUkVFTVBUX0ZJTklTSEVELAorfTsKKyNkZWZpbmUgR1VDX1BSRUVNUFRfQlJFQURDUlVNQl9EV09SRFMJMHg4CisjZGVmaW5lIEdVQ19QUkVFTVBUX0JSRUFEQ1JVTUJfQllURVMJXAorCShzaXplb2YodTMyKSAqIEdVQ19QUkVFTVBUX0JSRUFEQ1JVTUJfRFdPUkRTKQorCisvKioKKyAqIERPQzogR3VDLWJhc2VkIGNvbW1hbmQgc3VibWlzc2lvbgorICoKKyAqIEd1QyBjbGllbnQ6CisgKiBBIGludGVsX2d1Y19jbGllbnQgcmVmZXJzIHRvIGEgc3VibWlzc2lvbiBwYXRoIHRocm91Z2ggR3VDLiBDdXJyZW50bHksIHRoZXJlCisgKiBpcyBvbmx5IG9uZSBjbGllbnQsIHdoaWNoIGlzIGNoYXJnZWQgd2l0aCBhbGwgc3VibWlzc2lvbnMgdG8gdGhlIEd1Qy4gVGhpcworICogc3RydWN0IGlzIHRoZSBvd25lciBvZiBhIGRvb3JiZWxsLCBhIHByb2Nlc3MgZGVzY3JpcHRvciBhbmQgYSB3b3JrcXVldWUgKGFsbAorICogb2YgdGhlbSBpbnNpZGUgYSBzaW5nbGUgZ2VtIG9iamVjdCB0aGF0IGNvbnRhaW5zIGFsbCByZXF1aXJlZCBwYWdlcyBmb3IgdGhlc2UKKyAqIGVsZW1lbnRzKS4KKyAqCisgKiBHdUMgc3RhZ2UgZGVzY3JpcHRvcjoKKyAqIER1cmluZyBpbml0aWFsaXphdGlvbiwgdGhlIGRyaXZlciBhbGxvY2F0ZXMgYSBzdGF0aWMgcG9vbCBvZiAxMDI0IHN1Y2gKKyAqIGRlc2NyaXB0b3JzLCBhbmQgc2hhcmVzIHRoZW0gd2l0aCB0aGUgR3VDLgorICogQ3VycmVudGx5LCB0aGVyZSBleGlzdHMgYSAxOjEgbWFwcGluZyBiZXR3ZWVuIGEgaW50ZWxfZ3VjX2NsaWVudCBhbmQgYQorICogZ3VjX3N0YWdlX2Rlc2MgKHZpYSB0aGUgY2xpZW50J3Mgc3RhZ2VfaWQpLCBzbyBlZmZlY3RpdmVseSBvbmx5IG9uZQorICogZ2V0cyB1c2VkLiBUaGlzIHN0YWdlIGRlc2NyaXB0b3IgbGV0cyB0aGUgR3VDIGtub3cgYWJvdXQgdGhlIGRvb3JiZWxsLAorICogd29ya3F1ZXVlIGFuZCBwcm9jZXNzIGRlc2NyaXB0b3IuIFRoZW9yZXRpY2FsbHksIGl0IGFsc28gbGV0cyB0aGUgR3VDCisgKiBrbm93IGFib3V0IG91ciBIVyBjb250ZXh0cyAoY29udGV4dCBJRCwgZXRjLi4uKSwgYnV0IHdlIGFjdHVhbGx5CisgKiBlbXBsb3kgYSBraW5kIG9mIHN1Ym1pc3Npb24gd2hlcmUgdGhlIEd1QyB1c2VzIHRoZSBMUkNBIHNlbnQgdmlhIHRoZSB3b3JrCisgKiBpdGVtIGluc3RlYWQgKHRoZSBzaW5nbGUgZ3VjX3N0YWdlX2Rlc2MgYXNzb2NpYXRlZCB0byBleGVjYnVmIGNsaWVudAorICogY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRlZmF1bHQga2VybmVsIGNvbnRleHQgb25seSwgYnV0IHRoaXMgaXMKKyAqIGVzc2VudGlhbGx5IHVudXNlZCkuIFRoaXMgaXMgY2FsbGVkIGEgInByb3h5IiBzdWJtaXNzaW9uLgorICoKKyAqIFRoZSBTY3JhdGNoIHJlZ2lzdGVyczoKKyAqIFRoZXJlIGFyZSAxNiBNTUlPLWJhc2VkIHJlZ2lzdGVycyBzdGFydCBmcm9tIDB4QzE4MC4gVGhlIGtlcm5lbCBkcml2ZXIgd3JpdGVzCisgKiBhIHZhbHVlIHRvIHRoZSBhY3Rpb24gcmVnaXN0ZXIgKFNPRlRfU0NSQVRDSF8wKSBhbG9uZyB3aXRoIGFueSBkYXRhLiBJdCB0aGVuCisgKiB0cmlnZ2VycyBhbiBpbnRlcnJ1cHQgb24gdGhlIEd1QyB2aWEgYW5vdGhlciByZWdpc3RlciB3cml0ZSAoMHhDNEM4KS4KKyAqIEZpcm13YXJlIHdyaXRlcyBhIHN1Y2Nlc3MvZmFpbCBjb2RlIGJhY2sgdG8gdGhlIGFjdGlvbiByZWdpc3RlciBhZnRlcgorICogcHJvY2Vzc2VzIHRoZSByZXF1ZXN0LiBUaGUga2VybmVsIGRyaXZlciBwb2xscyB3YWl0aW5nIGZvciB0aGlzIHVwZGF0ZSBhbmQKKyAqIHRoZW4gcHJvY2VlZHMuCisgKiBTZWUgaW50ZWxfZ3VjX3NlbmQoKQorICoKKyAqIERvb3JiZWxsczoKKyAqIERvb3JiZWxscyBhcmUgaW50ZXJydXB0cyB0byB1S2VybmVsLiBBIGRvb3JiZWxsIGlzIGEgc2luZ2xlIGNhY2hlIGxpbmUgKFFXKQorICogbWFwcGVkIGludG8gcHJvY2VzcyBzcGFjZS4KKyAqCisgKiBXb3JrIEl0ZW1zOgorICogVGhlcmUgYXJlIHNldmVyYWwgdHlwZXMgb2Ygd29yayBpdGVtcyB0aGF0IHRoZSBob3N0IG1heSBwbGFjZSBpbnRvIGEKKyAqIHdvcmtxdWV1ZSwgZWFjaCB3aXRoIGl0cyBvd24gcmVxdWlyZW1lbnRzIGFuZCBsaW1pdGF0aW9ucy4gQ3VycmVudGx5IG9ubHkKKyAqIFdRX1RZUEVfSU5PUkRFUiBpcyBuZWVkZWQgdG8gc3VwcG9ydCBsZWdhY3kgc3VibWlzc2lvbiB2aWEgR3VDLCB3aGljaAorICogcmVwcmVzZW50cyBpbi1vcmRlciBxdWV1ZS4gVGhlIGtlcm5lbCBkcml2ZXIgcGFja3MgcmluZyB0YWlsIHBvaW50ZXIgYW5kIGFuCisgKiBFTFNQIGNvbnRleHQgZGVzY3JpcHRvciBkd29yZCBpbnRvIFdvcmsgSXRlbS4KKyAqIFNlZSBndWNfYWRkX3JlcXVlc3QoKQorICoKKyAqLworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpOTE1X3ByaW9saXN0ICp0b19wcmlvbGlzdChzdHJ1Y3QgcmJfbm9kZSAqcmIpCit7CisJcmV0dXJuIHJiX2VudHJ5KHJiLCBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCwgbm9kZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc19oaWdoX3ByaW9yaXR5KHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJcmV0dXJuIChjbGllbnQtPnByaW9yaXR5ID09IEdVQ19DTElFTlRfUFJJT1JJVFlfS01EX0hJR0ggfHwKKwkJY2xpZW50LT5wcmlvcml0eSA9PSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0hJR0gpOworfQorCitzdGF0aWMgaW50IHJlc2VydmVfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKK3sKKwl1bnNpZ25lZCBsb25nIG9mZnNldDsKKwl1bnNpZ25lZCBsb25nIGVuZDsKKwl1MTYgaWQ7CisKKwlHRU1fQlVHX09OKGNsaWVudC0+ZG9vcmJlbGxfaWQgIT0gR1VDX0RPT1JCRUxMX0lOVkFMSUQpOworCisJLyoKKwkgKiBUaGUgYml0bWFwIHRyYWNrcyB3aGljaCBkb29yYmVsbCByZWdpc3RlcnMgYXJlIGN1cnJlbnRseSBpbiB1c2UuCisJICogSXQgaXMgc3BsaXQgaW50byB0d28gaGFsdmVzOyB0aGUgZmlyc3QgaGFsZiBpcyB1c2VkIGZvciBub3JtYWwKKwkgKiBwcmlvcml0eSBjb250ZXh0cywgdGhlIHNlY29uZCBoYWxmIGZvciBoaWdoLXByaW9yaXR5IG9uZXMuCisJICovCisJb2Zmc2V0ID0gMDsKKwllbmQgPSBHVUNfTlVNX0RPT1JCRUxMUyAvIDI7CisJaWYgKGlzX2hpZ2hfcHJpb3JpdHkoY2xpZW50KSkgeworCQlvZmZzZXQgPSBlbmQ7CisJCWVuZCArPSBvZmZzZXQ7CisJfQorCisJaWQgPSBmaW5kX25leHRfemVyb19iaXQoY2xpZW50LT5ndWMtPmRvb3JiZWxsX2JpdG1hcCwgZW5kLCBvZmZzZXQpOworCWlmIChpZCA9PSBlbmQpCisJCXJldHVybiAtRU5PU1BDOworCisJX19zZXRfYml0KGlkLCBjbGllbnQtPmd1Yy0+ZG9vcmJlbGxfYml0bWFwKTsKKwljbGllbnQtPmRvb3JiZWxsX2lkID0gaWQ7CisJRFJNX0RFQlVHX0RSSVZFUigiY2xpZW50ICV1IChoaWdoIHByaW89JXMpIHJlc2VydmVkIGRvb3JiZWxsOiAlZFxuIiwKKwkJCSBjbGllbnQtPnN0YWdlX2lkLCB5ZXNubyhpc19oaWdoX3ByaW9yaXR5KGNsaWVudCkpLAorCQkJIGlkKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGJvb2wgaGFzX2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJaWYgKGNsaWVudC0+ZG9vcmJlbGxfaWQgPT0gR1VDX0RPT1JCRUxMX0lOVkFMSUQpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0ZXN0X2JpdChjbGllbnQtPmRvb3JiZWxsX2lkLCBjbGllbnQtPmd1Yy0+ZG9vcmJlbGxfYml0bWFwKTsKK30KKworc3RhdGljIHZvaWQgdW5yZXNlcnZlX2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJR0VNX0JVR19PTighaGFzX2Rvb3JiZWxsKGNsaWVudCkpOworCisJX19jbGVhcl9iaXQoY2xpZW50LT5kb29yYmVsbF9pZCwgY2xpZW50LT5ndWMtPmRvb3JiZWxsX2JpdG1hcCk7CisJY2xpZW50LT5kb29yYmVsbF9pZCA9IEdVQ19ET09SQkVMTF9JTlZBTElEOworfQorCisvKgorICogVGVsbCB0aGUgR3VDIHRvIGFsbG9jYXRlIG9yIGRlYWxsb2NhdGUgYSBzcGVjaWZpYyBkb29yYmVsbAorICovCisKK3N0YXRpYyBpbnQgX19ndWNfYWxsb2NhdGVfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgc3RhZ2VfaWQpCit7CisJdTMyIGFjdGlvbltdID0geworCQlJTlRFTF9HVUNfQUNUSU9OX0FMTE9DQVRFX0RPT1JCRUxMLAorCQlzdGFnZV9pZAorCX07CisKKwlyZXR1cm4gaW50ZWxfZ3VjX3NlbmQoZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSk7Cit9CisKK3N0YXRpYyBpbnQgX19ndWNfZGVhbGxvY2F0ZV9kb29yYmVsbChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHUzMiBzdGFnZV9pZCkKK3sKKwl1MzIgYWN0aW9uW10gPSB7CisJCUlOVEVMX0dVQ19BQ1RJT05fREVBTExPQ0FURV9ET09SQkVMTCwKKwkJc3RhZ2VfaWQKKwl9OworCisJcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFjdGlvbikpOworfQorCitzdGF0aWMgc3RydWN0IGd1Y19zdGFnZV9kZXNjICpfX2dldF9zdGFnZV9kZXNjKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IGd1Y19zdGFnZV9kZXNjICpiYXNlID0gY2xpZW50LT5ndWMtPnN0YWdlX2Rlc2NfcG9vbF92YWRkcjsKKworCXJldHVybiAmYmFzZVtjbGllbnQtPnN0YWdlX2lkXTsKK30KKworLyoKKyAqIEluaXRpYWxpc2UsIHVwZGF0ZSwgb3IgY2xlYXIgZG9vcmJlbGwgZGF0YSBzaGFyZWQgd2l0aCB0aGUgR3VDCisgKgorICogVGhlc2UgZnVuY3Rpb25zIG1vZGlmeSBzaGFyZWQgZGF0YSBhbmQgc28gbmVlZCBhY2Nlc3MgdG8gdGhlIG1hcHBlZAorICogY2xpZW50IG9iamVjdCB3aGljaCBjb250YWlucyB0aGUgcGFnZSBiZWluZyB1c2VkIGZvciB0aGUgZG9vcmJlbGwKKyAqLworCitzdGF0aWMgdm9pZCBfX3VwZGF0ZV9kb29yYmVsbF9kZXNjKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQsIHUxNiBuZXdfaWQpCit7CisJc3RydWN0IGd1Y19zdGFnZV9kZXNjICpkZXNjOworCisJLyogVXBkYXRlIHRoZSBHdUMncyBpZGVhIG9mIHRoZSBkb29yYmVsbCBJRCAqLworCWRlc2MgPSBfX2dldF9zdGFnZV9kZXNjKGNsaWVudCk7CisJZGVzYy0+ZGJfaWQgPSBuZXdfaWQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZ3VjX2Rvb3JiZWxsX2luZm8gKl9fZ2V0X2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJcmV0dXJuIGNsaWVudC0+dmFkZHIgKyBjbGllbnQtPmRvb3JiZWxsX29mZnNldDsKK30KKworc3RhdGljIGJvb2wgX19kb29yYmVsbF92YWxpZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHUxNiBkYl9pZCkKK3sKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndWNfdG9fZ3QoZ3VjKS0+dW5jb3JlOworCisJR0VNX0JVR19PTihkYl9pZCA+PSBHVUNfTlVNX0RPT1JCRUxMUyk7CisJcmV0dXJuIGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgR0VOOF9EUkJSRUdMKGRiX2lkKSkgJiBHRU44X0RSQl9WQUxJRDsKK30KKworc3RhdGljIHZvaWQgX19pbml0X2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IGd1Y19kb29yYmVsbF9pbmZvICpkb29yYmVsbDsKKworCWRvb3JiZWxsID0gX19nZXRfZG9vcmJlbGwoY2xpZW50KTsKKwlkb29yYmVsbC0+ZGJfc3RhdHVzID0gR1VDX0RPT1JCRUxMX0VOQUJMRUQ7CisJZG9vcmJlbGwtPmNvb2tpZSA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIF9fZmluaV9kb29yYmVsbChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQoreworCXN0cnVjdCBndWNfZG9vcmJlbGxfaW5mbyAqZG9vcmJlbGw7CisJdTE2IGRiX2lkID0gY2xpZW50LT5kb29yYmVsbF9pZDsKKworCWRvb3JiZWxsID0gX19nZXRfZG9vcmJlbGwoY2xpZW50KTsKKwlkb29yYmVsbC0+ZGJfc3RhdHVzID0gR1VDX0RPT1JCRUxMX0RJU0FCTEVEOworCisJLyogRG9vcmJlbGwgcmVsZWFzZSBmbG93IHJlcXVpcmVzIHRoYXQgd2Ugd2FpdCBmb3IgR0VOOF9EUkJfVkFMSUQgYml0CisJICogdG8gZ28gdG8gemVybyBhZnRlciB1cGRhdGluZyBkYl9zdGF0dXMgYmVmb3JlIHdlIGNhbGwgdGhlIEd1QyB0bworCSAqIHJlbGVhc2UgdGhlIGRvb3JiZWxsCisJICovCisJaWYgKHdhaXRfZm9yX3VzKCFfX2Rvb3JiZWxsX3ZhbGlkKGNsaWVudC0+Z3VjLCBkYl9pZCksIDEwKSkKKwkJV0FSTl9PTkNFKHRydWUsICJEb29yYmVsbCBuZXZlciBiZWNhbWUgaW52YWxpZCBhZnRlciBkaXNhYmxlXG4iKTsKK30KKworc3RhdGljIGludCBjcmVhdGVfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKK3sKKwlpbnQgcmV0OworCisJaWYgKFdBUk5fT04oIWhhc19kb29yYmVsbChjbGllbnQpKSkKKwkJcmV0dXJuIC1FTk9ERVY7IC8qIGludGVybmFsIHNldHVwIGVycm9yLCBzaG91bGQgbmV2ZXIgaGFwcGVuICovCisKKwlfX3VwZGF0ZV9kb29yYmVsbF9kZXNjKGNsaWVudCwgY2xpZW50LT5kb29yYmVsbF9pZCk7CisJX19pbml0X2Rvb3JiZWxsKGNsaWVudCk7CisKKwlyZXQgPSBfX2d1Y19hbGxvY2F0ZV9kb29yYmVsbChjbGllbnQtPmd1YywgY2xpZW50LT5zdGFnZV9pZCk7CisJaWYgKHJldCkgeworCQlfX2ZpbmlfZG9vcmJlbGwoY2xpZW50KTsKKwkJX191cGRhdGVfZG9vcmJlbGxfZGVzYyhjbGllbnQsIEdVQ19ET09SQkVMTF9JTlZBTElEKTsKKwkJRFJNX0RFQlVHX0RSSVZFUigiQ291bGRuJ3QgY3JlYXRlIGNsaWVudCAldSBkb29yYmVsbDogJWRcbiIsCisJCQkJIGNsaWVudC0+c3RhZ2VfaWQsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGVzdHJveV9kb29yYmVsbChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQoreworCWludCByZXQ7CisKKwlHRU1fQlVHX09OKCFoYXNfZG9vcmJlbGwoY2xpZW50KSk7CisKKwlfX2ZpbmlfZG9vcmJlbGwoY2xpZW50KTsKKwlyZXQgPSBfX2d1Y19kZWFsbG9jYXRlX2Rvb3JiZWxsKGNsaWVudC0+Z3VjLCBjbGllbnQtPnN0YWdlX2lkKTsKKwlpZiAocmV0KQorCQlEUk1fRVJST1IoIkNvdWxkbid0IGRlc3Ryb3kgY2xpZW50ICV1IGRvb3JiZWxsOiAlZFxuIiwKKwkJCSAgY2xpZW50LT5zdGFnZV9pZCwgcmV0KTsKKworCV9fdXBkYXRlX2Rvb3JiZWxsX2Rlc2MoY2xpZW50LCBHVUNfRE9PUkJFTExfSU5WQUxJRCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3NlbGVjdF9jYWNoZWxpbmUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OworCisJLyogRG9vcmJlbGwgdXNlcyBhIHNpbmdsZSBjYWNoZSBsaW5lIHdpdGhpbiBhIHBhZ2UgKi8KKwlvZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShndWMtPmRiX2NhY2hlbGluZSk7CisKKwkvKiBNb3ZpbmcgdG8gbmV4dCBjYWNoZSBsaW5lIHRvIHJlZHVjZSBjb250ZW50aW9uICovCisJZ3VjLT5kYl9jYWNoZWxpbmUgKz0gY2FjaGVfbGluZV9zaXplKCk7CisKKwlEUk1fREVCVUdfRFJJVkVSKCJyZXNlcnZlZCBjYWNoZWxpbmUgMHglbHgsIG5leHQgMHgleCwgbGluZXNpemUgJXVcbiIsCisJCQkgb2Zmc2V0LCBndWMtPmRiX2NhY2hlbGluZSwgY2FjaGVfbGluZV9zaXplKCkpOworCXJldHVybiBvZmZzZXQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKgorX19nZXRfcHJvY2Vzc19kZXNjKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJcmV0dXJuIGNsaWVudC0+dmFkZHIgKyBjbGllbnQtPnByb2NfZGVzY19vZmZzZXQ7Cit9CisKKy8qCisgKiBJbml0aWFsaXNlIHRoZSBwcm9jZXNzIGRlc2NyaXB0b3Igc2hhcmVkIHdpdGggdGhlIEd1QyBmaXJtd2FyZS4KKyAqLworc3RhdGljIHZvaWQgZ3VjX3Byb2NfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKmRlc2M7CisKKwlkZXNjID0gbWVtc2V0KF9fZ2V0X3Byb2Nlc3NfZGVzYyhjbGllbnQpLCAwLCBzaXplb2YoKmRlc2MpKTsKKworCS8qCisJICogWFhYOiBwRG9vcmJlbGwgYW5kIFdRVkJhc2VBZGRyZXNzIGFyZSBwb2ludGVycyBpbiBwcm9jZXNzIGFkZHJlc3MKKwkgKiBzcGFjZSBmb3IgcmluZzMgY2xpZW50cyAoc2V0IHRoZW0gYXMgaW4gbW1hcF9pb2N0bCkgb3Iga2VybmVsCisJICogc3BhY2UgZm9yIGtlcm5lbCBjbGllbnRzIChtYXAgb24gZGVtYW5kIGluc3RlYWQ/IE1heSBtYWtlIGRlYnVnCisJICogZWFzaWVyIHRvIGhhdmUgaXQgbWFwcGVkKS4KKwkgKi8KKwlkZXNjLT53cV9iYXNlX2FkZHIgPSAwOworCWRlc2MtPmRiX2Jhc2VfYWRkciA9IDA7CisKKwlkZXNjLT5zdGFnZV9pZCA9IGNsaWVudC0+c3RhZ2VfaWQ7CisJZGVzYy0+d3Ffc2l6ZV9ieXRlcyA9IEdVQ19XUV9TSVpFOworCWRlc2MtPndxX3N0YXR1cyA9IFdRX1NUQVRVU19BQ1RJVkU7CisJZGVzYy0+cHJpb3JpdHkgPSBjbGllbnQtPnByaW9yaXR5OworfQorCitzdGF0aWMgdm9pZCBndWNfcHJvY19kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3QgZ3VjX3Byb2Nlc3NfZGVzYyAqZGVzYzsKKworCWRlc2MgPSBfX2dldF9wcm9jZXNzX2Rlc2MoY2xpZW50KTsKKwltZW1zZXQoZGVzYywgMCwgc2l6ZW9mKCpkZXNjKSk7Cit9CisKK3N0YXRpYyBpbnQgZ3VjX3N0YWdlX2Rlc2NfcG9vbF9jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCXZvaWQgKnZhZGRyOworCisJdm1hID0gaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYShndWMsCisJCQkJICAgICBQQUdFX0FMSUdOKHNpemVvZihzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MpICoKKwkJCQkgICAgIEdVQ19NQVhfU1RBR0VfREVTQ1JJUFRPUlMpKTsKKwlpZiAoSVNfRVJSKHZtYSkpCisJCXJldHVybiBQVFJfRVJSKHZtYSk7CisKKwl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHZtYS0+b2JqLCBJOTE1X01BUF9XQik7CisJaWYgKElTX0VSUih2YWRkcikpIHsKKwkJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJnZtYSwgMCk7CisJCXJldHVybiBQVFJfRVJSKHZhZGRyKTsKKwl9CisKKwlndWMtPnN0YWdlX2Rlc2NfcG9vbCA9IHZtYTsKKwlndWMtPnN0YWdlX2Rlc2NfcG9vbF92YWRkciA9IHZhZGRyOworCWlkYV9pbml0KCZndWMtPnN0YWdlX2lkcyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZ3VjX3N0YWdlX2Rlc2NfcG9vbF9kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlpZGFfZGVzdHJveSgmZ3VjLT5zdGFnZV9pZHMpOworCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPnN0YWdlX2Rlc2NfcG9vbCwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOworfQorCisvKgorICogSW5pdGlhbGlzZS9jbGVhciB0aGUgc3RhZ2UgZGVzY3JpcHRvciBzaGFyZWQgd2l0aCB0aGUgR3VDIGZpcm13YXJlLgorICoKKyAqIFRoaXMgZGVzY3JpcHRvciB0ZWxscyB0aGUgR3VDIHdoZXJlIChpbiBHR1RUIHNwYWNlKSB0byBmaW5kIHRoZSBpbXBvcnRhbnQKKyAqIGRhdGEgc3RydWN0dXJlcyByZWxhdGluZyB0byB0aGlzIGNsaWVudCAoZG9vcmJlbGwsIHByb2Nlc3MgZGVzY3JpcHRvciwKKyAqIHdyaXRlIHF1ZXVlLCBldGMpLgorICovCitzdGF0aWMgdm9pZCBndWNfc3RhZ2VfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gY2xpZW50LT5ndWM7CisJc3RydWN0IGd1Y19zdGFnZV9kZXNjICpkZXNjOworCXUzMiBnZnhfYWRkcjsKKworCWRlc2MgPSBfX2dldF9zdGFnZV9kZXNjKGNsaWVudCk7CisJbWVtc2V0KGRlc2MsIDAsIHNpemVvZigqZGVzYykpOworCisJZGVzYy0+YXR0cmlidXRlID0gR1VDX1NUQUdFX0RFU0NfQVRUUl9BQ1RJVkUgfAorCQkJICBHVUNfU1RBR0VfREVTQ19BVFRSX0tFUk5FTDsKKwlpZiAoaXNfaGlnaF9wcmlvcml0eShjbGllbnQpKQorCQlkZXNjLT5hdHRyaWJ1dGUgfD0gR1VDX1NUQUdFX0RFU0NfQVRUUl9QUkVFTVBUOworCWRlc2MtPnN0YWdlX2lkID0gY2xpZW50LT5zdGFnZV9pZDsKKwlkZXNjLT5wcmlvcml0eSA9IGNsaWVudC0+cHJpb3JpdHk7CisJZGVzYy0+ZGJfaWQgPSBjbGllbnQtPmRvb3JiZWxsX2lkOworCisJLyoKKwkgKiBUaGUgZG9vcmJlbGwsIHByb2Nlc3MgZGVzY3JpcHRvciwgYW5kIHdvcmtxdWV1ZSBhcmUgYWxsIHBhcnRzCisJICogb2YgdGhlIGNsaWVudCBvYmplY3QsIHdoaWNoIHRoZSBHdUMgd2lsbCByZWZlcmVuY2UgdmlhIHRoZSBHR1RUCisJICovCisJZ2Z4X2FkZHIgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBjbGllbnQtPnZtYSk7CisJZGVzYy0+ZGJfdHJpZ2dlcl9waHkgPSBzZ19kbWFfYWRkcmVzcyhjbGllbnQtPnZtYS0+cGFnZXMtPnNnbCkgKworCQkJCWNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0OworCWRlc2MtPmRiX3RyaWdnZXJfY3B1ID0gcHRyX3RvX3U2NChfX2dldF9kb29yYmVsbChjbGllbnQpKTsKKwlkZXNjLT5kYl90cmlnZ2VyX3VrID0gZ2Z4X2FkZHIgKyBjbGllbnQtPmRvb3JiZWxsX29mZnNldDsKKwlkZXNjLT5wcm9jZXNzX2Rlc2MgPSBnZnhfYWRkciArIGNsaWVudC0+cHJvY19kZXNjX29mZnNldDsKKwlkZXNjLT53cV9hZGRyID0gZ2Z4X2FkZHIgKyBHVUNfREJfU0laRTsKKwlkZXNjLT53cV9zaXplID0gR1VDX1dRX1NJWkU7CisKKwlkZXNjLT5kZXNjX3ByaXZhdGUgPSBwdHJfdG9fdTY0KGNsaWVudCk7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MgKmRlc2M7CisKKwlkZXNjID0gX19nZXRfc3RhZ2VfZGVzYyhjbGllbnQpOworCW1lbXNldChkZXNjLCAwLCBzaXplb2YoKmRlc2MpKTsKK30KKworLyogQ29uc3RydWN0IGEgV29yayBJdGVtIGFuZCBhcHBlbmQgaXQgdG8gdGhlIEd1QydzIFdvcmsgUXVldWUgKi8KK3N0YXRpYyB2b2lkIGd1Y193cV9pdGVtX2FwcGVuZChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50LAorCQkJICAgICAgIHUzMiB0YXJnZXRfZW5naW5lLCB1MzIgY29udGV4dF9kZXNjLAorCQkJICAgICAgIHUzMiByaW5nX3RhaWwsIHUzMiBmZW5jZV9pZCkKK3sKKwkvKiB3cWlfbGVuIGlzIGluIERXb3JkcywgYW5kIGRvZXMgbm90IGluY2x1ZGUgdGhlIG9uZS13b3JkIGhlYWRlciAqLworCWNvbnN0IHNpemVfdCB3cWlfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZ3VjX3dxX2l0ZW0pOworCWNvbnN0IHUzMiB3cWlfbGVuID0gd3FpX3NpemUgLyBzaXplb2YodTMyKSAtIDE7CisJc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKmRlc2MgPSBfX2dldF9wcm9jZXNzX2Rlc2MoY2xpZW50KTsKKwlzdHJ1Y3QgZ3VjX3dxX2l0ZW0gKndxaTsKKwl1MzIgd3Ffb2ZmOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmY2xpZW50LT53cV9sb2NrKTsKKworCS8qIEZvciBub3cgd29ya3F1ZXVlIGl0ZW0gaXMgNCBEV3M7IHdvcmtxdWV1ZSBidWZmZXIgaXMgMiBwYWdlcy4gU28gd2UKKwkgKiBzaG91bGQgbm90IGhhdmUgdGhlIGNhc2Ugd2hlcmUgc3RydWN0dXJlIHdxaSBpcyBhY3Jvc3MgcGFnZSwgbmVpdGhlcgorCSAqIHdyYXBwZWQgdG8gdGhlIGJlZ2lubmluZy4gVGhpcyBzaW1wbGlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbiBiZWxvdy4KKwkgKgorCSAqIFhYWDogaWYgbm90IHRoZSBjYXNlLCB3ZSBuZWVkIHNhdmUgZGF0YSB0byBhIHRlbXAgd3FpIGFuZCBjb3B5IGl0IHRvCisJICogd29ya3F1ZXVlIGJ1ZmZlciBkdyBieSBkdy4KKwkgKi8KKwlCVUlMRF9CVUdfT04od3FpX3NpemUgIT0gMTYpOworCisJLyogV2UgZXhwZWN0IHRoZSBXUSB0byBiZSBhY3RpdmUgaWYgd2UncmUgYXBwZW5kaW5nIGl0ZW1zIHRvIGl0ICovCisJR0VNX0JVR19PTihkZXNjLT53cV9zdGF0dXMgIT0gV1FfU1RBVFVTX0FDVElWRSk7CisKKwkvKiBGcmVlIHNwYWNlIGlzIGd1YXJhbnRlZWQuICovCisJd3Ffb2ZmID0gUkVBRF9PTkNFKGRlc2MtPnRhaWwpOworCUdFTV9CVUdfT04oQ0lSQ19TUEFDRSh3cV9vZmYsIFJFQURfT05DRShkZXNjLT5oZWFkKSwKKwkJCSAgICAgIEdVQ19XUV9TSVpFKSA8IHdxaV9zaXplKTsKKwlHRU1fQlVHX09OKHdxX29mZiAmICh3cWlfc2l6ZSAtIDEpKTsKKworCS8qIFdRIHN0YXJ0cyBmcm9tIHRoZSBwYWdlIGFmdGVyIGRvb3JiZWxsIC8gcHJvY2Vzc19kZXNjICovCisJd3FpID0gY2xpZW50LT52YWRkciArIHdxX29mZiArIEdVQ19EQl9TSVpFOworCisJaWYgKEk5MTVfU0VMRlRFU1RfT05MWShjbGllbnQtPnVzZV9ub3Bfd3FpKSkgeworCQl3cWktPmhlYWRlciA9IFdRX1RZUEVfTk9PUCB8ICh3cWlfbGVuIDw8IFdRX0xFTl9TSElGVCk7CisJfSBlbHNlIHsKKwkJLyogTm93IGZpbGwgaW4gdGhlIDQtd29yZCB3b3JrIHF1ZXVlIGl0ZW0gKi8KKwkJd3FpLT5oZWFkZXIgPSBXUV9UWVBFX0lOT1JERVIgfAorCQkJICAgICAgKHdxaV9sZW4gPDwgV1FfTEVOX1NISUZUKSB8CisJCQkgICAgICAodGFyZ2V0X2VuZ2luZSA8PCBXUV9UQVJHRVRfU0hJRlQpIHwKKwkJCSAgICAgIFdRX05PX1dDRkxVU0hfV0FJVDsKKwkJd3FpLT5jb250ZXh0X2Rlc2MgPSBjb250ZXh0X2Rlc2M7CisJCXdxaS0+c3VibWl0X2VsZW1lbnRfaW5mbyA9IHJpbmdfdGFpbCA8PCBXUV9SSU5HX1RBSUxfU0hJRlQ7CisJCUdFTV9CVUdfT04ocmluZ190YWlsID4gV1FfUklOR19UQUlMX01BWCk7CisJCXdxaS0+ZmVuY2VfaWQgPSBmZW5jZV9pZDsKKwl9CisKKwkvKiBNYWtlIHRoZSB1cGRhdGUgdmlzaWJsZSB0byBHdUMgKi8KKwlXUklURV9PTkNFKGRlc2MtPnRhaWwsICh3cV9vZmYgKyB3cWlfc2l6ZSkgJiAoR1VDX1dRX1NJWkUgLSAxKSk7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19yaW5nX2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IGd1Y19kb29yYmVsbF9pbmZvICpkYjsKKwl1MzIgY29va2llOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmY2xpZW50LT53cV9sb2NrKTsKKworCS8qIHBvaW50ZXIgb2YgY3VycmVudCBkb29yYmVsbCBjYWNoZWxpbmUgKi8KKwlkYiA9IF9fZ2V0X2Rvb3JiZWxsKGNsaWVudCk7CisKKwkvKgorCSAqIFdlJ3JlIG5vdCBleHBlY3RpbmcgdGhlIGRvb3JiZWxsIGNvb2tpZSB0byBjaGFuZ2UgYmVoaW5kIG91ciBiYWNrLAorCSAqIHdlIGFsc28gbmVlZCB0byB0cmVhdCAwIGFzIGEgcmVzZXJ2ZWQgdmFsdWUuCisJICovCisJY29va2llID0gUkVBRF9PTkNFKGRiLT5jb29raWUpOworCVdBUk5fT05fT05DRSh4Y2hnKCZkYi0+Y29va2llLCBjb29raWUgKyAxID86IGNvb2tpZSArIDIpICE9IGNvb2tpZSk7CisKKwkvKiBYWFg6IGRvb3JiZWxsIHdhcyBsb3N0IGFuZCBuZWVkIHRvIGFjcXVpcmUgaXQgYWdhaW4gKi8KKwlHRU1fQlVHX09OKGRiLT5kYl9zdGF0dXMgIT0gR1VDX0RPT1JCRUxMX0VOQUJMRUQpOworfQorCitzdGF0aWMgdm9pZCBndWNfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2d1YyAqZ3VjLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBycS0+ZW5naW5lOworCXUzMiBjdHhfZGVzYyA9IGxvd2VyXzMyX2JpdHMocnEtPmh3X2NvbnRleHQtPmxyY19kZXNjKTsKKwl1MzIgcmluZ190YWlsID0gaW50ZWxfcmluZ19zZXRfdGFpbChycS0+cmluZywgcnEtPnRhaWwpIC8gc2l6ZW9mKHU2NCk7CisKKwlndWNfd3FfaXRlbV9hcHBlbmQoY2xpZW50LCBlbmdpbmUtPmd1Y19pZCwgY3R4X2Rlc2MsCisJCQkgICByaW5nX3RhaWwsIHJxLT5mZW5jZS5zZXFubyk7CisJZ3VjX3JpbmdfZG9vcmJlbGwoY2xpZW50KTsKK30KKworLyoKKyAqIFdoZW4gd2UncmUgZG9pbmcgc3VibWlzc2lvbnMgdXNpbmcgcmVndWxhciBleGVjbGlzdHMgYmFja2VuZCwgd3JpdGluZyB0bworICogRUxTUCBmcm9tIENQVSBzaWRlIGlzIGVub3VnaCB0byBtYWtlIHN1cmUgdGhhdCB3cml0ZXMgdG8gcmluZ2J1ZmZlciBwYWdlcworICogcGlubmVkIGluIG1hcHBhYmxlIGFwZXJ0dXJlIHBvcnRpb24gb2YgR0dUVCBhcmUgdmlzaWJsZSB0byBjb21tYW5kIHN0cmVhbWVyLgorICogV3JpdGVzIGRvbmUgYnkgR3VDIG9uIG91ciBiZWhhbGYgYXJlIG5vdCBndWFyYW50ZWVpbmcgc3VjaCBvcmRlcmluZywKKyAqIHRoZXJlZm9yZSwgdG8gZW5zdXJlIHRoZSBmbHVzaCwgd2UncmUgaXNzdWluZyBhIFBPU1RJTkcgUkVBRC4KKyAqLworc3RhdGljIHZvaWQgZmx1c2hfZ2d0dF93cml0ZXMoc3RydWN0IGk5MTVfdm1hICp2bWEpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB2bWEtPnZtLT5pOTE1OworCisJaWYgKGk5MTVfdm1hX2lzX21hcF9hbmRfZmVuY2VhYmxlKHZtYSkpCisJCWludGVsX3VuY29yZV9wb3N0aW5nX3JlYWRfZncoJmk5MTUtPnVuY29yZSwgR1VDX1NUQVRVUyk7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19zdWJtaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkgICAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqKm91dCwKKwkJICAgICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKiplbmQpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmVuZ2luZS0+Z3QtPnVjLmd1YzsKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKKworCXNwaW5fbG9jaygmY2xpZW50LT53cV9sb2NrKTsKKworCWRvIHsKKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEgPSAqb3V0Kys7CisKKwkJZmx1c2hfZ2d0dF93cml0ZXMocnEtPnJpbmctPnZtYSk7CisJCWd1Y19hZGRfcmVxdWVzdChndWMsIHJxKTsKKwl9IHdoaWxlIChvdXQgIT0gZW5kKTsKKworCXNwaW5fdW5sb2NrKCZjbGllbnQtPndxX2xvY2spOworfQorCitzdGF0aWMgaW5saW5lIGludCBycV9wcmlvKGNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCXJldHVybiBycS0+c2NoZWQuYXR0ci5wcmlvcml0eSB8IF9fTk9fUFJFRU1QVElPTjsKK30KKworc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnNjaGVkdWxlX2luKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBpbnQgaWR4KQoreworCXRyYWNlX2k5MTVfcmVxdWVzdF9pbihycSwgaWR4KTsKKworCS8qCisJICogQ3VycmVudGx5IHdlIGFyZSBub3QgdHJhY2tpbmcgdGhlIHJxLT5jb250ZXh0IGJlaW5nIGluZmxpZ2h0CisJICogKGNlLT5pbmZsaWdodCA9IHJxLT5lbmdpbmUpLiBJdCBpcyBvbmx5IHVzZWQgYnkgdGhlIGV4ZWNsaXN0cworCSAqIGJhY2tlbmQgYXQgdGhlIG1vbWVudCwgYSBzaW1pbGFyIGNvdW50aW5nIHN0cmF0ZWd5IHdvdWxkIGJlCisJICogcmVxdWlyZWQgaWYgd2UgZ2VuZXJhbGlzZSB0aGUgaW5mbGlnaHQgdHJhY2tpbmcuCisJICovCisKKwlpbnRlbF9ndF9wbV9nZXQocnEtPmVuZ2luZS0+Z3QpOworCXJldHVybiBpOTE1X3JlcXVlc3RfZ2V0KHJxKTsKK30KKworc3RhdGljIHZvaWQgc2NoZWR1bGVfb3V0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCXRyYWNlX2k5MTVfcmVxdWVzdF9vdXQocnEpOworCisJaW50ZWxfZ3RfcG1fcHV0KHJxLT5lbmdpbmUtPmd0KTsKKwlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKK30KKworc3RhdGljIHZvaWQgX19ndWNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqKmZpcnN0ID0gZXhlY2xpc3RzLT5pbmZsaWdodDsKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoqIGNvbnN0IGxhc3RfcG9ydCA9IGZpcnN0ICsgZXhlY2xpc3RzLT5wb3J0X21hc2s7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqbGFzdCA9IGZpcnN0WzBdOworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKipwb3J0OworCWJvb2wgc3VibWl0ID0gZmFsc2U7CisJc3RydWN0IHJiX25vZGUgKnJiOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT5hY3RpdmUubG9jayk7CisKKwlpZiAobGFzdCkgeworCQlpZiAoKisrZmlyc3QpCisJCQlyZXR1cm47CisKKwkJbGFzdCA9IE5VTEw7CisJfQorCisJLyoKKwkgKiBXZSB3cml0ZSBkaXJlY3RseSBpbnRvIHRoZSBleGVjbGlzdHMtPmluZmxpZ2h0IHF1ZXVlIGFuZCBkb24ndCB1c2UKKwkgKiB0aGUgZXhlY2xpc3RzLT5wZW5kaW5nIHF1ZXVlLCBhcyB3ZSBkb24ndCBoYXZlIGEgZGlzdGluY3Qgc3dpdGNoCisJICogZXZlbnQuCisJICovCisJcG9ydCA9IGZpcnN0OworCXdoaWxlICgocmIgPSByYl9maXJzdF9jYWNoZWQoJmV4ZWNsaXN0cy0+cXVldWUpKSkgeworCQlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCA9IHRvX3ByaW9saXN0KHJiKTsKKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsICpybjsKKwkJaW50IGk7CisKKwkJcHJpb2xpc3RfZm9yX2VhY2hfcmVxdWVzdF9jb25zdW1lKHJxLCBybiwgcCwgaSkgeworCQkJaWYgKGxhc3QgJiYgcnEtPmh3X2NvbnRleHQgIT0gbGFzdC0+aHdfY29udGV4dCkgeworCQkJCWlmIChwb3J0ID09IGxhc3RfcG9ydCkKKwkJCQkJZ290byBkb25lOworCisJCQkJKnBvcnQgPSBzY2hlZHVsZV9pbihsYXN0LAorCQkJCQkJICAgIHBvcnQgLSBleGVjbGlzdHMtPmluZmxpZ2h0KTsKKwkJCQlwb3J0Kys7CisJCQl9CisKKwkJCWxpc3RfZGVsX2luaXQoJnJxLT5zY2hlZC5saW5rKTsKKwkJCV9faTkxNV9yZXF1ZXN0X3N1Ym1pdChycSk7CisJCQlzdWJtaXQgPSB0cnVlOworCQkJbGFzdCA9IHJxOworCQl9CisKKwkJcmJfZXJhc2VfY2FjaGVkKCZwLT5ub2RlLCAmZXhlY2xpc3RzLT5xdWV1ZSk7CisJCWk5MTVfcHJpb2xpc3RfZnJlZShwKTsKKwl9Citkb25lOgorCWV4ZWNsaXN0cy0+cXVldWVfcHJpb3JpdHlfaGludCA9CisJCXJiID8gdG9fcHJpb2xpc3QocmIpLT5wcmlvcml0eSA6IElOVF9NSU47CisJaWYgKHN1Ym1pdCkgeworCQkqcG9ydCA9IHNjaGVkdWxlX2luKGxhc3QsIHBvcnQgLSBleGVjbGlzdHMtPmluZmxpZ2h0KTsKKwkJKisrcG9ydCA9IE5VTEw7CisJCWd1Y19zdWJtaXQoZW5naW5lLCBmaXJzdCwgcG9ydCk7CisJfQorCWV4ZWNsaXN0cy0+YWN0aXZlID0gZXhlY2xpc3RzLT5pbmZsaWdodDsKK30KKworc3RhdGljIHZvaWQgZ3VjX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoqcG9ydCwgKnJxOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOworCisJZm9yIChwb3J0ID0gZXhlY2xpc3RzLT5pbmZsaWdodDsgKHJxID0gKnBvcnQpOyBwb3J0KyspIHsKKwkJaWYgKCFpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJxKSkKKwkJCWJyZWFrOworCisJCXNjaGVkdWxlX291dChycSk7CisJfQorCWlmIChwb3J0ICE9IGV4ZWNsaXN0cy0+aW5mbGlnaHQpIHsKKwkJaW50IGlkeCA9IHBvcnQgLSBleGVjbGlzdHMtPmluZmxpZ2h0OworCQlpbnQgcmVtID0gQVJSQVlfU0laRShleGVjbGlzdHMtPmluZmxpZ2h0KSAtIGlkeDsKKwkJbWVtbW92ZShleGVjbGlzdHMtPmluZmxpZ2h0LCBwb3J0LCByZW0gKiBzaXplb2YoKnBvcnQpKTsKKwl9CisKKwlfX2d1Y19kZXF1ZXVlKGVuZ2luZSk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKKworCUdFTV9UUkFDRSgiJXNcbiIsIGVuZ2luZS0+bmFtZSk7CisKKwkvKgorCSAqIFByZXZlbnQgcmVxdWVzdCBzdWJtaXNzaW9uIHRvIHRoZSBoYXJkd2FyZSB1bnRpbCB3ZSBoYXZlCisJICogY29tcGxldGVkIHRoZSByZXNldCBpbiBpOTE1X2dlbV9yZXNldF9maW5pc2goKS4gSWYgYSByZXF1ZXN0CisJICogaXMgY29tcGxldGVkIGJ5IG9uZSBlbmdpbmUsIGl0IG1heSB0aGVuIHF1ZXVlIGEgcmVxdWVzdAorCSAqIHRvIGEgc2Vjb25kIHZpYSBpdHMgZXhlY2xpc3RzLT50YXNrbGV0ICpqdXN0KiBhcyB3ZSBhcmUKKwkgKiBjYWxsaW5nIGVuZ2luZS0+aW5pdF9odygpIGFuZCBhbHNvIHdyaXRpbmcgdGhlIEVMU1AuCisJICogVHVybmluZyBvZmYgdGhlIGV4ZWNsaXN0cy0+dGFza2xldCB1bnRpbCB0aGUgcmVzZXQgaXMgb3ZlcgorCSAqIHByZXZlbnRzIHRoZSByYWNlLgorCSAqLworCV9fdGFza2xldF9kaXNhYmxlX3N5bmNfb25jZSgmZXhlY2xpc3RzLT50YXNrbGV0KTsKK30KKworc3RhdGljIHZvaWQKK2NhbmNlbF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzKQoreworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKiBjb25zdCAqcG9ydCwgKnJxOworCisJLyogTm90ZSB3ZSBhcmUgb25seSB1c2luZyB0aGUgaW5mbGlnaHQgYW5kIG5vdCB0aGUgcGVuZGluZyBxdWV1ZSAqLworCisJZm9yIChwb3J0ID0gZXhlY2xpc3RzLT5hY3RpdmU7IChycSA9ICpwb3J0KTsgcG9ydCsrKQorCQlzY2hlZHVsZV9vdXQocnEpOworCWV4ZWNsaXN0cy0+YWN0aXZlID0KKwkJbWVtc2V0KGV4ZWNsaXN0cy0+aW5mbGlnaHQsIDAsIHNpemVvZihleGVjbGlzdHMtPmluZmxpZ2h0KSk7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGJvb2wgc3RhbGxlZCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKKworCWNhbmNlbF9wb3J0X3JlcXVlc3RzKGV4ZWNsaXN0cyk7CisKKwkvKiBQdXNoIGJhY2sgYW55IGluY29tcGxldGUgcmVxdWVzdHMgZm9yIHJlcGxheSBhZnRlciB0aGUgcmVzZXQuICovCisJcnEgPSBleGVjbGlzdHNfdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoZXhlY2xpc3RzKTsKKwlpZiAoIXJxKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlpZiAoIWk5MTVfcmVxdWVzdF9zdGFydGVkKHJxKSkKKwkJc3RhbGxlZCA9IGZhbHNlOworCisJX19pOTE1X3JlcXVlc3RfcmVzZXQocnEsIHN0YWxsZWQpOworCWludGVsX2xyX2NvbnRleHRfcmVzZXQoZW5naW5lLCBycS0+aHdfY29udGV4dCwgcnEtPmhlYWQsIHN0YWxsZWQpOworCitvdXRfdW5sb2NrOgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgZ3VjX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsICpybjsKKwlzdHJ1Y3QgcmJfbm9kZSAqcmI7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCUdFTV9UUkFDRSgiJXNcbiIsIGVuZ2luZS0+bmFtZSk7CisKKwkvKgorCSAqIEJlZm9yZSB3ZSBjYWxsIGVuZ2luZS0+Y2FuY2VsX3JlcXVlc3RzKCksIHdlIHNob3VsZCBoYXZlIGV4Y2x1c2l2ZQorCSAqIGFjY2VzcyB0byB0aGUgc3VibWlzc2lvbiBzdGF0ZS4gVGhpcyBpcyBhcnJhbmdlZCBmb3IgdXMgYnkgdGhlCisJICogY2FsbGVyIGRpc2FibGluZyB0aGUgaW50ZXJydXB0IGdlbmVyYXRpb24sIHRoZSB0YXNrbGV0IGFuZCBvdGhlcgorCSAqIHRocmVhZHMgdGhhdCBtYXkgdGhlbiBhY2Nlc3MgdGhlIHNhbWUgc3RhdGUsIGdpdmluZyB1cyBhIGZyZWUgaGFuZAorCSAqIHRvIHJlc2V0IHN0YXRlLiBIb3dldmVyLCB3ZSBzdGlsbCBuZWVkIHRvIGxldCBsb2NrZGVwIGJlIGF3YXJlIHRoYXQKKwkgKiB3ZSBrbm93IHRoaXMgc3RhdGUgbWF5IGJlIGFjY2Vzc2VkIGluIGhhcmRpcnEgY29udGV4dCwgc28gd2UKKwkgKiBkaXNhYmxlIHRoZSBpcnEgYXJvdW5kIHRoaXMgbWFuaXB1bGF0aW9uIGFuZCB3ZSB3YW50IHRvIGtlZXAKKwkgKiB0aGUgc3BpbmxvY2sgZm9jdXNlZCBvbiBpdHMgZHV0aWVzIGFuZCBub3QgYWNjaWRlbnRhbGx5IGNvbmZsYXRlCisJICogY292ZXJhZ2UgdG8gdGhlIHN1Ym1pc3Npb24ncyBpcnEgc3RhdGUuIChTaW1pbGFybHksIGFsdGhvdWdoIHdlCisJICogc2hvdWxkbid0IG5lZWQgdG8gZGlzYWJsZSBpcnEgYXJvdW5kIHRoZSBtYW5pcHVsYXRpb24gb2YgdGhlCisJICogc3VibWlzc2lvbidzIGlycSBzdGF0ZSwgd2UgYWxzbyB3aXNoIHRvIHJlbWluZCBvdXJzZWx2ZXMgdGhhdAorCSAqIGl0IGlzIGlycSBzdGF0ZS4pCisJICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKKworCS8qIENhbmNlbCB0aGUgcmVxdWVzdHMgb24gdGhlIEhXIGFuZCBjbGVhciB0aGUgRUxTUCB0cmFja2VyLiAqLworCWNhbmNlbF9wb3J0X3JlcXVlc3RzKGV4ZWNsaXN0cyk7CisKKwkvKiBNYXJrIGFsbCBleGVjdXRpbmcgcmVxdWVzdHMgYXMgc2tpcHBlZC4gKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJxLCAmZW5naW5lLT5hY3RpdmUucmVxdWVzdHMsIHNjaGVkLmxpbmspIHsKKwkJaWYgKCFpOTE1X3JlcXVlc3Rfc2lnbmFsZWQocnEpKQorCQkJZG1hX2ZlbmNlX3NldF9lcnJvcigmcnEtPmZlbmNlLCAtRUlPKTsKKworCQlpOTE1X3JlcXVlc3RfbWFya19jb21wbGV0ZShycSk7CisJfQorCisJLyogRmx1c2ggdGhlIHF1ZXVlZCByZXF1ZXN0cyB0byB0aGUgdGltZWxpbmUgbGlzdCAoZm9yIHJldGlyaW5nKS4gKi8KKwl3aGlsZSAoKHJiID0gcmJfZmlyc3RfY2FjaGVkKCZleGVjbGlzdHMtPnF1ZXVlKSkpIHsKKwkJc3RydWN0IGk5MTVfcHJpb2xpc3QgKnAgPSB0b19wcmlvbGlzdChyYik7CisJCWludCBpOworCisJCXByaW9saXN0X2Zvcl9lYWNoX3JlcXVlc3RfY29uc3VtZShycSwgcm4sIHAsIGkpIHsKKwkJCWxpc3RfZGVsX2luaXQoJnJxLT5zY2hlZC5saW5rKTsKKwkJCV9faTkxNV9yZXF1ZXN0X3N1Ym1pdChycSk7CisJCQlkbWFfZmVuY2Vfc2V0X2Vycm9yKCZycS0+ZmVuY2UsIC1FSU8pOworCQkJaTkxNV9yZXF1ZXN0X21hcmtfY29tcGxldGUocnEpOworCQl9CisKKwkJcmJfZXJhc2VfY2FjaGVkKCZwLT5ub2RlLCAmZXhlY2xpc3RzLT5xdWV1ZSk7CisJCWk5MTVfcHJpb2xpc3RfZnJlZShwKTsKKwl9CisKKwkvKiBSZW1haW5pbmcgX3VucmVhZHlfIHJlcXVlc3RzIHdpbGwgYmUgbm9wJ2VkIHdoZW4gc3VibWl0dGVkICovCisKKwlleGVjbGlzdHMtPnF1ZXVlX3ByaW9yaXR5X2hpbnQgPSBJTlRfTUlOOworCWV4ZWNsaXN0cy0+cXVldWUgPSBSQl9ST09UX0NBQ0hFRDsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgZ3VjX3Jlc2V0X2ZpbmlzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CisKKwlpZiAoX190YXNrbGV0X2VuYWJsZSgmZXhlY2xpc3RzLT50YXNrbGV0KSkKKwkJLyogQW5kIGtpY2sgaW4gY2FzZSB3ZSBtaXNzZWQgYSBuZXcgcmVxdWVzdCBzdWJtaXNzaW9uLiAqLworCQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZleGVjbGlzdHMtPnRhc2tsZXQpOworCisJR0VNX1RSQUNFKCIlczogZGVwdGgtPiVkXG4iLCBlbmdpbmUtPm5hbWUsCisJCSAgYXRvbWljX3JlYWQoJmV4ZWNsaXN0cy0+dGFza2xldC5jb3VudCkpOworfQorCisvKgorICogRXZlcnl0aGluZyBiZWxvdyBoZXJlIGlzIGNvbmNlcm5lZCB3aXRoIHNldHVwICYgdGVhcmRvd24sIGFuZCBpcworICogdGhlcmVmb3JlIG5vdCBwYXJ0IG9mIHRoZSBzb21ld2hhdCB0aW1lLWNyaXRpY2FsIGJhdGNoLXN1Ym1pc3Npb24KKyAqIHBhdGggb2YgZ3VjX3N1Ym1pdCgpIGFib3ZlLgorICovCisKKy8qIENoZWNrIHRoYXQgYSBkb29yYmVsbCByZWdpc3RlciBpcyBpbiB0aGUgZXhwZWN0ZWQgc3RhdGUgKi8KK3N0YXRpYyBib29sIGRvb3JiZWxsX29rKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTE2IGRiX2lkKQoreworCWJvb2wgdmFsaWQ7CisKKwlHRU1fQlVHX09OKGRiX2lkID49IEdVQ19OVU1fRE9PUkJFTExTKTsKKworCXZhbGlkID0gX19kb29yYmVsbF92YWxpZChndWMsIGRiX2lkKTsKKworCWlmICh0ZXN0X2JpdChkYl9pZCwgZ3VjLT5kb29yYmVsbF9iaXRtYXApID09IHZhbGlkKQorCQlyZXR1cm4gdHJ1ZTsKKworCURSTV9ERUJVR19EUklWRVIoIkRvb3JiZWxsICV1IGhhcyB1bmV4cGVjdGVkIHN0YXRlOiB2YWxpZD0lc1xuIiwKKwkJCSBkYl9pZCwgeWVzbm8odmFsaWQpKTsKKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgZ3VjX3ZlcmlmeV9kb29yYmVsbHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCWJvb2wgZG9vcmJlbGxzX29rID0gdHJ1ZTsKKwl1MTYgZGJfaWQ7CisKKwlmb3IgKGRiX2lkID0gMDsgZGJfaWQgPCBHVUNfTlVNX0RPT1JCRUxMUzsgKytkYl9pZCkKKwkJaWYgKCFkb29yYmVsbF9vayhndWMsIGRiX2lkKSkKKwkJCWRvb3JiZWxsc19vayA9IGZhbHNlOworCisJcmV0dXJuIGRvb3JiZWxsc19vazsKK30KKworLyoqCisgKiBndWNfY2xpZW50X2FsbG9jKCkgLSBBbGxvY2F0ZSBhbiBpbnRlbF9ndWNfY2xpZW50CisgKiBAZ3VjOgl0aGUgaW50ZWxfZ3VjIHN0cnVjdHVyZQorICogQHByaW9yaXR5Oglmb3VyIGxldmVscyBwcmlvcml0eSBfQ1JJVElDQUwsIF9ISUdILCBfTk9STUFMIGFuZCBfTE9XCisgKgkJVGhlIGtlcm5lbCBjbGllbnQgdG8gcmVwbGFjZSBFeGVjTGlzdCBzdWJtaXNzaW9uIGlzIGNyZWF0ZWQgd2l0aAorICoJCU5PUk1BTCBwcmlvcml0eS4gUHJpb3JpdHkgb2YgYSBjbGllbnQgZm9yIHNjaGVkdWxlciBjYW4gYmUgSElHSCwKKyAqCQl3aGlsZSBhIHByZWVtcHRpb24gY29udGV4dCBjYW4gdXNlIENSSVRJQ0FMLgorICoKKyAqIFJldHVybjoJQW4gaW50ZWxfZ3VjX2NsaWVudCBvYmplY3QgaWYgc3VjY2VzcywgZWxzZSBOVUxMLgorICovCitzdGF0aWMgc3RydWN0IGludGVsX2d1Y19jbGllbnQgKgorZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHUzMiBwcmlvcml0eSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50OworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCXZvaWQgKnZhZGRyOworCWludCByZXQ7CisKKwljbGllbnQgPSBremFsbG9jKHNpemVvZigqY2xpZW50KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjbGllbnQpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJY2xpZW50LT5ndWMgPSBndWM7CisJY2xpZW50LT5wcmlvcml0eSA9IHByaW9yaXR5OworCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBHVUNfRE9PUkJFTExfSU5WQUxJRDsKKwlzcGluX2xvY2tfaW5pdCgmY2xpZW50LT53cV9sb2NrKTsKKworCXJldCA9IGlkYV9zaW1wbGVfZ2V0KCZndWMtPnN0YWdlX2lkcywgMCwgR1VDX01BWF9TVEFHRV9ERVNDUklQVE9SUywKKwkJCSAgICAgR0ZQX0tFUk5FTCk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gZXJyX2NsaWVudDsKKworCWNsaWVudC0+c3RhZ2VfaWQgPSByZXQ7CisKKwkvKiBUaGUgZmlyc3QgcGFnZSBpcyBkb29yYmVsbC9wcm9jX2Rlc2MuIFR3byBmb2xsb3dlZCBwYWdlcyBhcmUgd3EuICovCisJdm1hID0gaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYShndWMsIEdVQ19EQl9TSVpFICsgR1VDX1dRX1NJWkUpOworCWlmIChJU19FUlIodm1hKSkgeworCQlyZXQgPSBQVFJfRVJSKHZtYSk7CisJCWdvdG8gZXJyX2lkOworCX0KKworCS8qIFdlJ2xsIGtlZXAganVzdCB0aGUgZmlyc3QgKGRvb3JiZWxsL3Byb2MpIHBhZ2UgcGVybWFuZW50bHkga21hcCdkLiAqLworCWNsaWVudC0+dm1hID0gdm1hOworCisJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcCh2bWEtPm9iaiwgSTkxNV9NQVBfV0IpOworCWlmIChJU19FUlIodmFkZHIpKSB7CisJCXJldCA9IFBUUl9FUlIodmFkZHIpOworCQlnb3RvIGVycl92bWE7CisJfQorCWNsaWVudC0+dmFkZHIgPSB2YWRkcjsKKworCXJldCA9IHJlc2VydmVfZG9vcmJlbGwoY2xpZW50KTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl92YWRkcjsKKworCWNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0ID0gX19zZWxlY3RfY2FjaGVsaW5lKGd1Yyk7CisKKwkvKgorCSAqIFNpbmNlIHRoZSBkb29yYmVsbCBvbmx5IHJlcXVpcmVzIGEgc2luZ2xlIGNhY2hlbGluZSwgd2UgY2FuIHNhdmUKKwkgKiBzcGFjZSBieSBwdXR0aW5nIHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzIGRlc2NyaXB0b3IgaW4gdGhlIHNhbWUKKwkgKiBwYWdlLiBVc2UgdGhlIGhhbGYgb2YgdGhlIHBhZ2UgdGhhdCBkb2Vzbid0IGluY2x1ZGUgdGhlIGRvb3JiZWxsLgorCSAqLworCWlmIChjbGllbnQtPmRvb3JiZWxsX29mZnNldCA+PSAoR1VDX0RCX1NJWkUgLyAyKSkKKwkJY2xpZW50LT5wcm9jX2Rlc2Nfb2Zmc2V0ID0gMDsKKwllbHNlCisJCWNsaWVudC0+cHJvY19kZXNjX29mZnNldCA9IChHVUNfREJfU0laRSAvIDIpOworCisJRFJNX0RFQlVHX0RSSVZFUigibmV3IHByaW9yaXR5ICV1IGNsaWVudCAlcDogc3RhZ2VfaWQgJXVcbiIsCisJCQkgcHJpb3JpdHksIGNsaWVudCwgY2xpZW50LT5zdGFnZV9pZCk7CisJRFJNX0RFQlVHX0RSSVZFUigiZG9vcmJlbGwgaWQgJXUsIGNhY2hlbGluZSBvZmZzZXQgMHglbHhcbiIsCisJCQkgY2xpZW50LT5kb29yYmVsbF9pZCwgY2xpZW50LT5kb29yYmVsbF9vZmZzZXQpOworCisJcmV0dXJuIGNsaWVudDsKKworZXJyX3ZhZGRyOgorCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoY2xpZW50LT52bWEtPm9iaik7CitlcnJfdm1hOgorCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZjbGllbnQtPnZtYSwgMCk7CitlcnJfaWQ6CisJaWRhX3NpbXBsZV9yZW1vdmUoJmd1Yy0+c3RhZ2VfaWRzLCBjbGllbnQtPnN0YWdlX2lkKTsKK2Vycl9jbGllbnQ6CisJa2ZyZWUoY2xpZW50KTsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOworfQorCitzdGF0aWMgdm9pZCBndWNfY2xpZW50X2ZyZWUoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKK3sKKwl1bnJlc2VydmVfZG9vcmJlbGwoY2xpZW50KTsKKwlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmY2xpZW50LT52bWEsIEk5MTVfVk1BX1JFTEVBU0VfTUFQKTsKKwlpZGFfc2ltcGxlX3JlbW92ZSgmY2xpZW50LT5ndWMtPnN0YWdlX2lkcywgY2xpZW50LT5zdGFnZV9pZCk7CisJa2ZyZWUoY2xpZW50KTsKK30KKworc3RhdGljIGlubGluZSBib29sIGN0eF9zYXZlX3Jlc3RvcmVfZGlzYWJsZWQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQoreworCXUzMiBzciA9IGNlLT5scmNfcmVnX3N0YXRlW0NUWF9DT05URVhUX0NPTlRST0wgKyAxXTsKKworI2RlZmluZSBTUl9ESVNBQkxFRCBcCisJX01BU0tFRF9CSVRfRU5BQkxFKENUWF9DVFJMX0VOR0lORV9DVFhfUkVTVE9SRV9JTkhJQklUIHwgXAorCQkJICAgQ1RYX0NUUkxfRU5HSU5FX0NUWF9TQVZFX0lOSElCSVQpCisKKwlyZXR1cm4gKHNyICYgU1JfRElTQUJMRUQpID09IFNSX0RJU0FCTEVEOworCisjdW5kZWYgU1JfRElTQUJMRUQKK30KKworc3RhdGljIGludCBndWNfY2xpZW50c19jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQ7CisKKwlHRU1fQlVHX09OKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOworCisJY2xpZW50ID0gZ3VjX2NsaWVudF9hbGxvYyhndWMsIEdVQ19DTElFTlRfUFJJT1JJVFlfS01EX05PUk1BTCk7CisJaWYgKElTX0VSUihjbGllbnQpKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBHdUMgY2xpZW50IGZvciBzdWJtaXNzaW9uIVxuIik7CisJCXJldHVybiBQVFJfRVJSKGNsaWVudCk7CisJfQorCWd1Yy0+ZXhlY2J1Zl9jbGllbnQgPSBjbGllbnQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZ3VjX2NsaWVudHNfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudDsKKworCWNsaWVudCA9IGZldGNoX2FuZF96ZXJvKCZndWMtPmV4ZWNidWZfY2xpZW50KTsKKwlpZiAoY2xpZW50KQorCQlndWNfY2xpZW50X2ZyZWUoY2xpZW50KTsKK30KKworc3RhdGljIGludCBfX2d1Y19jbGllbnRfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJaW50IHJldDsKKworCWd1Y19wcm9jX2Rlc2NfaW5pdChjbGllbnQpOworCWd1Y19zdGFnZV9kZXNjX2luaXQoY2xpZW50KTsKKworCXJldCA9IGNyZWF0ZV9kb29yYmVsbChjbGllbnQpOworCWlmIChyZXQpCisJCWdvdG8gZmFpbDsKKworCXJldHVybiAwOworCitmYWlsOgorCWd1Y19zdGFnZV9kZXNjX2ZpbmkoY2xpZW50KTsKKwlndWNfcHJvY19kZXNjX2ZpbmkoY2xpZW50KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBfX2d1Y19jbGllbnRfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQoreworCS8qCisJICogQnkgdGhlIHRpbWUgd2UncmUgaGVyZSwgR3VDIG1heSBoYXZlIGFscmVhZHkgYmVlbiByZXNldC4gaWYgdGhhdCBpcworCSAqIHRoZSBjYXNlLCBpbnN0ZWFkIG9mIHRyeWluZyAoaW4gdmFpbikgdG8gY29tbXVuaWNhdGUgd2l0aCBpdCwgbGV0J3MKKwkgKiBqdXN0IGNsZWFudXAgdGhlIGRvb3JiZWxsIEhXIGFuZCBvdXIgaW50ZXJuYWwgc3RhdGUuCisJICovCisJaWYgKGludGVsX2d1Y19pc19ydW5uaW5nKGNsaWVudC0+Z3VjKSkKKwkJZGVzdHJveV9kb29yYmVsbChjbGllbnQpOworCWVsc2UKKwkJX19maW5pX2Rvb3JiZWxsKGNsaWVudCk7CisKKwlndWNfc3RhZ2VfZGVzY19maW5pKGNsaWVudCk7CisJZ3VjX3Byb2NfZGVzY19maW5pKGNsaWVudCk7Cit9CisKK3N0YXRpYyBpbnQgZ3VjX2NsaWVudHNfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlyZXR1cm4gX19ndWNfY2xpZW50X2VuYWJsZShndWMtPmV4ZWNidWZfY2xpZW50KTsKK30KKworc3RhdGljIHZvaWQgZ3VjX2NsaWVudHNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJaWYgKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpCisJCV9fZ3VjX2NsaWVudF9kaXNhYmxlKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOworfQorCisvKgorICogU2V0IHVwIHRoZSBtZW1vcnkgcmVzb3VyY2VzIHRvIGJlIHNoYXJlZCB3aXRoIHRoZSBHdUMgKHZpYSB0aGUgR0dUVCkKKyAqIGF0IGZpcm13YXJlIGxvYWRpbmcgdGltZS4KKyAqLworaW50IGludGVsX2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCWludCByZXQ7CisKKwlpZiAoZ3VjLT5zdGFnZV9kZXNjX3Bvb2wpCisJCXJldHVybiAwOworCisJcmV0ID0gZ3VjX3N0YWdlX2Rlc2NfcG9vbF9jcmVhdGUoZ3VjKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCS8qCisJICogS2VlcCBzdGF0aWMgYW5hbHlzZXJzIGhhcHB5LCBsZXQgdGhlbSBrbm93IHRoYXQgd2UgYWxsb2NhdGVkIHRoZQorCSAqIHZtYSBhZnRlciB0ZXN0aW5nIHRoYXQgaXQgZGlkbid0IGV4aXN0IGVhcmxpZXIuCisJICovCisJR0VNX0JVR19PTighZ3VjLT5zdGFnZV9kZXNjX3Bvb2wpOworCisJV0FSTl9PTighZ3VjX3ZlcmlmeV9kb29yYmVsbHMoZ3VjKSk7CisJcmV0ID0gZ3VjX2NsaWVudHNfY3JlYXRlKGd1Yyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfcG9vbDsKKworCXJldHVybiAwOworCitlcnJfcG9vbDoKKwlndWNfc3RhZ2VfZGVzY19wb29sX2Rlc3Ryb3koZ3VjKTsKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGludGVsX2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCWd1Y19jbGllbnRzX2Rlc3Ryb3koZ3VjKTsKKwlXQVJOX09OKCFndWNfdmVyaWZ5X2Rvb3JiZWxscyhndWMpKTsKKworCWlmIChndWMtPnN0YWdlX2Rlc2NfcG9vbCkKKwkJZ3VjX3N0YWdlX2Rlc2NfcG9vbF9kZXN0cm95KGd1Yyk7Cit9CisKK3N0YXRpYyB2b2lkIGd1Y19pbnRlcnJ1cHRzX2NhcHR1cmUoc3RydWN0IGludGVsX2d0ICpndCkKK3sKKwlzdHJ1Y3QgaW50ZWxfcnBzICpycHMgPSAmZ3QtPmk5MTUtPmd0X3BtLnJwczsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3JlOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlpbnQgaXJxczsKKworCS8qIHRlbGwgYWxsIGNvbW1hbmQgc3RyZWFtZXJzIHRvIGZvcndhcmQgaW50ZXJydXB0cyAoYnV0IG5vdCB2YmxhbmspCisJICogdG8gR3VDCisJICovCisJaXJxcyA9IF9NQVNLRURfQklUX0VOQUJMRShHRlhfSU5URVJSVVBUX1NURUVSSU5HKTsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCisJCUVOR0lORV9XUklURShlbmdpbmUsIFJJTkdfTU9ERV9HRU43LCBpcnFzKTsKKworCS8qIHJvdXRlIFVTRVJfSU5URVJSVVBUIHRvIEhvc3QsIGFsbCBvdGhlcnMgYXJlIHNlbnQgdG8gR3VDLiAqLworCWlycXMgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZUIHwKKwkgICAgICAgR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVDsKKwkvKiBUaGVzZSB0aHJlZSByZWdpc3RlcnMgaGF2ZSB0aGUgc2FtZSBiaXQgZGVmaW5pdGlvbnMgKi8KKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHVUNfQkNTX1JDU19JRVIsIH5pcnFzKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHVUNfVkNTMl9WQ1MxX0lFUiwgfmlycXMpOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdVQ19XRF9WRUNTX0lFUiwgfmlycXMpOworCisJLyoKKwkgKiBUaGUgUkVESVJFQ1RfVE9fR1VDIGJpdCBvZiB0aGUgUE1JTlRSTVNLIHJlZ2lzdGVyIGRpcmVjdHMgYWxsCisJICogKHVubWFza2VkKSBQTSBpbnRlcnJ1cHRzIHRvIHRoZSBHdUMuIEFsbCBvdGhlciBiaXRzIG9mIHRoaXMKKwkgKiByZWdpc3RlciAqZGlzYWJsZSogZ2VuZXJhdGlvbiBvZiBhIHNwZWNpZmljIGludGVycnVwdC4KKwkgKgorCSAqICdwbV9pbnRybXNrX21ieicgaW5kaWNhdGVzIGJpdHMgdGhhdCBhcmUgTk9UIHRvIGJlIHNldCB3aGVuCisJICogd3JpdGluZyB0byB0aGUgUE0gaW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIsIGkuZS4gaW50ZXJydXB0cworCSAqIHRoYXQgbXVzdCBub3QgYmUgZGlzYWJsZWQuCisJICoKKwkgKiBJZiB0aGUgR3VDIGlzIGhhbmRsaW5nIHRoZXNlIGludGVycnVwdHMsIHRoZW4gd2UgbXVzdCBub3QgbGV0CisJICogdGhlIFBNIGNvZGUgZGlzYWJsZSBBTlkgaW50ZXJydXB0IHRoYXQgdGhlIEd1QyBpcyBleHBlY3RpbmcuCisJICogU28gZm9yIGVhY2ggRU5BQkxFRCAoMCkgYml0IGluIHRoaXMgcmVnaXN0ZXIsIHdlIG11c3QgU0VUIHRoZQorCSAqIGJpdCBpbiBwbV9pbnRybXNrX21ieiBzbyB0aGF0IGl0J3MgbGVmdCBlbmFibGVkIGZvciB0aGUgR3VDLgorCSAqIEd1QyBuZWVkcyBBUkFUIGV4cGlyZWQgaW50ZXJydXB0IHVubWFza2VkIGhlbmNlIGl0IGlzIHNldCBpbgorCSAqIHBtX2ludHJtc2tfbWJ6LgorCSAqCisJICogSGVyZSB3ZSBDTEVBUiBSRURJUkVDVF9UT19HVUMgYml0IGluIHBtX2ludHJtc2tfbWJ6LCB3aGljaCB3aWxsCisJICogcmVzdWx0IGluIHRoZSByZWdpc3RlciBiaXQgYmVpbmcgbGVmdCBTRVQhCisJICovCisJcnBzLT5wbV9pbnRybXNrX21ieiB8PSBBUkFUX0VYUElSRURfSU5UUk1TSzsKKwlycHMtPnBtX2ludHJtc2tfbWJ6ICY9IH5HRU44X1BNSU5UUl9ESVNBQkxFX1JFRElSRUNUX1RPX0dVQzsKK30KKworc3RhdGljIHZvaWQgZ3VjX2ludGVycnVwdHNfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBpbnRlbF9ycHMgKnJwcyA9ICZndC0+aTkxNS0+Z3RfcG0ucnBzOworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCWludCBpcnFzOworCisJLyoKKwkgKiB0ZWxsIGFsbCBjb21tYW5kIHN0cmVhbWVycyBOT1QgdG8gZm9yd2FyZCBpbnRlcnJ1cHRzIG9yIHZibGFuaworCSAqIHRvIEd1Qy4KKwkgKi8KKwlpcnFzID0gX01BU0tFRF9GSUVMRChHRlhfRk9SV0FSRF9WQkxBTktfTUFTSywgR0ZYX0ZPUldBUkRfVkJMQU5LX05FVkVSKTsKKwlpcnFzIHw9IF9NQVNLRURfQklUX0RJU0FCTEUoR0ZYX0lOVEVSUlVQVF9TVEVFUklORyk7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKQorCQlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX01PREVfR0VONywgaXJxcyk7CisKKwkvKiByb3V0ZSBhbGwgR1QgaW50ZXJydXB0cyB0byB0aGUgaG9zdCAqLworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdVQ19CQ1NfUkNTX0lFUiwgMCk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR1VDX1ZDUzJfVkNTMV9JRVIsIDApOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdVQ19XRF9WRUNTX0lFUiwgMCk7CisKKwlycHMtPnBtX2ludHJtc2tfbWJ6IHw9IEdFTjhfUE1JTlRSX0RJU0FCTEVfUkVESVJFQ1RfVE9fR1VDOworCXJwcy0+cG1faW50cm1za19tYnogJj0gfkFSQVRfRVhQSVJFRF9JTlRSTVNLOworfQorCitzdGF0aWMgdm9pZCBndWNfc2V0X2RlZmF1bHRfc3VibWlzc2lvbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJLyoKKwkgKiBXZSBpbmhlcml0IGEgYnVuY2ggb2YgZnVuY3Rpb25zIGZyb20gZXhlY2xpc3RzIHRoYXQgd2UnZCBsaWtlCisJICogdG8ga2VlcCB1c2luZzoKKwkgKgorCSAqICAgIGVuZ2luZS0+c3VibWl0X3JlcXVlc3QgPSBleGVjbGlzdHNfc3VibWl0X3JlcXVlc3Q7CisJICogICAgZW5naW5lLT5jYW5jZWxfcmVxdWVzdHMgPSBleGVjbGlzdHNfY2FuY2VsX3JlcXVlc3RzOworCSAqICAgIGVuZ2luZS0+c2NoZWR1bGUgPSBleGVjbGlzdHNfc2NoZWR1bGU7CisJICoKKwkgKiBCdXQgd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgYWN0dWFsIHN1Ym1pc3Npb24gYmFja2VuZCBpbiBvcmRlcgorCSAqIHRvIHRhbGsgdG8gdGhlIEd1Qy4KKwkgKi8KKwlpbnRlbF9leGVjbGlzdHNfc2V0X2RlZmF1bHRfc3VibWlzc2lvbihlbmdpbmUpOworCisJZW5naW5lLT5leGVjbGlzdHMudGFza2xldC5mdW5jID0gZ3VjX3N1Ym1pc3Npb25fdGFza2xldDsKKworCS8qIGRvIG5vdCB1c2UgZXhlY2xpc3RzIHBhcmsvdW5wYXJrICovCisJZW5naW5lLT5wYXJrID0gZW5naW5lLT51bnBhcmsgPSBOVUxMOworCisJZW5naW5lLT5yZXNldC5wcmVwYXJlID0gZ3VjX3Jlc2V0X3ByZXBhcmU7CisJZW5naW5lLT5yZXNldC5yZXNldCA9IGd1Y19yZXNldDsKKwllbmdpbmUtPnJlc2V0LmZpbmlzaCA9IGd1Y19yZXNldF9maW5pc2g7CisKKwllbmdpbmUtPmNhbmNlbF9yZXF1ZXN0cyA9IGd1Y19jYW5jZWxfcmVxdWVzdHM7CisKKwllbmdpbmUtPmZsYWdzICY9IH5JOTE1X0VOR0lORV9TVVBQT1JUU19TVEFUUzsKKwllbmdpbmUtPmZsYWdzIHw9IEk5MTVfRU5HSU5FX05FRURTX0JSRUFEQ1JVTUJfVEFTS0xFVDsKKworCS8qCisJICogRm9yIHRoZSBicmVhZGNydW1iIGlycSB0byB3b3JrIHdlIG5lZWQgdGhlIGludGVycnVwdHMgdG8gc3RheQorCSAqIGVuYWJsZWQuIEhvd2V2ZXIsIG9uIGFsbCBwbGF0Zm9ybXMgb24gd2hpY2ggd2UnbGwgaGF2ZSBzdXBwb3J0IGZvcgorCSAqIEd1QyBzdWJtaXNzaW9uIHdlIGRvbid0IGFsbG93IGRpc2FibGluZyB0aGUgaW50ZXJydXB0cyBhdCBydW50aW1lLCBzbworCSAqIHdlJ3JlIGFsd2F5cyBzYWZlIHdpdGggdGhlIGN1cnJlbnQgZmxvdy4KKwkgKi8KKwlHRU1fQlVHX09OKGVuZ2luZS0+aXJxX2VuYWJsZSB8fCBlbmdpbmUtPmlycV9kaXNhYmxlKTsKK30KKworaW50IGludGVsX2d1Y19zdWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGd1Y190b19ndChndWMpOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlpbnQgZXJyOworCisJZXJyID0gaTkxNV9pbmplY3RfbG9hZF9lcnJvcihndC0+aTkxNSwgLUVOWElPKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJLyoKKwkgKiBXZSdyZSB1c2luZyBHdUMgd29yayBpdGVtcyBmb3Igc3VibWl0dGluZyB3b3JrIHRocm91Z2ggR3VDLiBTaW5jZQorCSAqIHdlJ3JlIGNvYWxlc2NpbmcgbXVsdGlwbGUgcmVxdWVzdHMgZnJvbSBhIHNpbmdsZSBjb250ZXh0IGludG8gYQorCSAqIHNpbmdsZSB3b3JrIGl0ZW0gcHJpb3IgdG8gYXNzaWduaW5nIGl0IHRvIGV4ZWNsaXN0X3BvcnQsIHdlIGNhbgorCSAqIG5ldmVyIGhhdmUgbW9yZSB3b3JrIGl0ZW1zIHRoYW4gdGhlIHRvdGFsIG51bWJlciBvZiBwb3J0cyAoZm9yIGFsbAorCSAqIGVuZ2luZXMpLiBUaGUgR3VDIGZpcm13YXJlIGlzIGNvbnRyb2xsaW5nIHRoZSBIRUFEIG9mIHdvcmsgcXVldWUsCisJICogYW5kIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCBpdCB3aWxsIHJlbW92ZSB0aGUgd29yayBpdGVtIGZyb20gdGhlCisJICogcXVldWUgYmVmb3JlIG91ciByZXF1ZXN0IGlzIGNvbXBsZXRlZC4KKwkgKi8KKwlCVUlMRF9CVUdfT04oQVJSQVlfU0laRShlbmdpbmUtPmV4ZWNsaXN0cy5pbmZsaWdodCkgKgorCQkgICAgIHNpemVvZihzdHJ1Y3QgZ3VjX3dxX2l0ZW0pICoKKwkJICAgICBJOTE1X05VTV9FTkdJTkVTID4gR1VDX1dRX1NJWkUpOworCisJR0VNX0JVR19PTighZ3VjLT5leGVjYnVmX2NsaWVudCk7CisKKwllcnIgPSBndWNfY2xpZW50c19lbmFibGUoZ3VjKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJLyogVGFrZSBvdmVyIGZyb20gbWFudWFsIGNvbnRyb2wgb2YgRUxTUCAoZXhlY2xpc3RzKSAqLworCWd1Y19pbnRlcnJ1cHRzX2NhcHR1cmUoZ3QpOworCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJCWVuZ2luZS0+c2V0X2RlZmF1bHRfc3VibWlzc2lvbiA9IGd1Y19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uOworCQllbmdpbmUtPnNldF9kZWZhdWx0X3N1Ym1pc3Npb24oZW5naW5lKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gZ3VjX3RvX2d0KGd1Yyk7CisKKwlHRU1fQlVHX09OKGd0LT5hd2FrZSk7IC8qIEdUIHNob3VsZCBiZSBwYXJrZWQgZmlyc3QgKi8KKworCWd1Y19pbnRlcnJ1cHRzX3JlbGVhc2UoZ3QpOworCWd1Y19jbGllbnRzX2Rpc2FibGUoZ3VjKTsKK30KKworc3RhdGljIGJvb2wgX19ndWNfc3VibWlzc2lvbl9zdXBwb3J0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwkvKiBYWFg6IEd1QyBzdWJtaXNzaW9uIGlzIHVuYXZhaWxhYmxlIGZvciBub3cgKi8KKwlyZXR1cm4gZmFsc2U7CisKKwlpZiAoIWludGVsX2d1Y19pc19zdXBwb3J0ZWQoZ3VjKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgJiBFTkFCTEVfR1VDX1NVQk1JU1NJT047Cit9CisKK3ZvaWQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25faW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJZ3VjLT5zdWJtaXNzaW9uX3N1cHBvcnRlZCA9IF9fZ3VjX3N1Ym1pc3Npb25fc3VwcG9ydChndWMpOworfQorCisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCisjaW5jbHVkZSAic2VsZnRlc3RfZ3VjLmMiCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ZDcxNjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfSU5URUxfR1VDX1NVQk1JU1NJT05fSF8KKyNkZWZpbmUgX0lOVEVMX0dVQ19TVUJNSVNTSU9OX0hfCisKKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorCisjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgiCisKKyNpbmNsdWRlICJpOTE1X2dlbS5oIgorI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSBwcmltYXJpbHkgZGVzY3JpYmVzIHRoZSBHRU0gb2JqZWN0IHNoYXJlZCB3aXRoIHRoZSBHdUMuCisgKiBUaGUgc3BlY3Mgc29tZXRpbWVzIHJlZmVyIHRvIHRoaXMgb2JqZWN0IGFzIGEgIkd1QyBjb250ZXh0IiwgYnV0IHdlIHVzZQorICogdGhlIHRlcm0gImNsaWVudCIgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggaGFyZHdhcmUgY29udGV4dHMuIFRoaXMKKyAqIEdFTSBvYmplY3QgaXMgaGVsZCBmb3IgdGhlIGVudGlyZSBsaWZldGltZSBvZiBvdXIgaW50ZXJhY3Rpb24gd2l0aAorICogdGhlIEd1QywgYmVpbmcgYWxsb2NhdGVkIGJlZm9yZSB0aGUgR3VDIGlzIGxvYWRlZCB3aXRoIGl0cyBmaXJtd2FyZS4KKyAqIEJlY2F1c2UgdGhlcmUncyBubyB3YXkgdG8gdXBkYXRlIHRoZSBhZGRyZXNzIHVzZWQgYnkgdGhlIEd1QyBhZnRlcgorICogaW5pdGlhbGlzYXRpb24sIHRoZSBzaGFyZWQgb2JqZWN0IG11c3Qgc3RheSBwaW5uZWQgaW50byB0aGUgR0dUVCBhcworICogbG9uZyBhcyB0aGUgR3VDIGlzIGluIHVzZS4gV2UgYWxzbyBrZWVwIHRoZSBmaXJzdCBwYWdlIChvbmx5KSBtYXBwZWQKKyAqIGludG8ga2VybmVsIGFkZHJlc3Mgc3BhY2UsIGFzIGl0IGluY2x1ZGVzIHNoYXJlZCBkYXRhIHRoYXQgbXVzdCBiZQorICogdXBkYXRlZCBvbiBldmVyeSByZXF1ZXN0IHN1Ym1pc3Npb24uCisgKgorICogVGhlIHNpbmdsZSBHRU0gb2JqZWN0IGRlc2NyaWJlZCBoZXJlIGlzIGFjdHVhbGx5IG1hZGUgdXAgb2Ygc2V2ZXJhbAorICogc2VwYXJhdGUgYXJlYXMsIGFzIGZhciBhcyB0aGUgR3VDIGlzIGNvbmNlcm5lZC4gVGhlIGZpcnN0IHBhZ2UgKGtlcHQKKyAqIGttYXAnZCkgaW5jbHVkZXMgdGhlICJwcm9jZXNzIGRlc2NyaXB0b3IiIHdoaWNoIGhvbGRzIHNlcXVlbmNlIGRhdGEgZm9yCisgKiB0aGUgZG9vcmJlbGwsIGFuZCBvbmUgY2FjaGVsaW5lIHdoaWNoIGFjdHVhbGx5ICppcyogdGhlIGRvb3JiZWxsOyBhCisgKiB3cml0ZSB0byB0aGlzIHdpbGwgInJpbmcgdGhlIGRvb3JiZWxsIiAoaS5lLiBzZW5kIGFuIGludGVycnVwdCB0byB0aGUKKyAqIEd1QykuIFRoZSBzdWJzZXF1ZW50ICBwYWdlcyBvZiB0aGUgY2xpZW50IG9iamVjdCBjb25zdGl0dXRlIHRoZSB3b3JrCisgKiBxdWV1ZSAoYSBjaXJjdWxhciBhcnJheSBvZiB3b3JrIGl0ZW1zKSwgYWdhaW4gZGVzY3JpYmVkIGluIHRoZSBwcm9jZXNzCisgKiBkZXNjcmlwdG9yLiBXb3JrIHF1ZXVlIHBhZ2VzIGFyZSBtYXBwZWQgbW9tZW50YXJpbHkgYXMgcmVxdWlyZWQuCisgKi8KK3N0cnVjdCBpbnRlbF9ndWNfY2xpZW50IHsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwl2b2lkICp2YWRkcjsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWM7CisKKwkvKiBiaXRtYXAgb2YgKGhvc3QpIGVuZ2luZSBpZHMgKi8KKwl1MzIgcHJpb3JpdHk7CisJdTMyIHN0YWdlX2lkOworCXUzMiBwcm9jX2Rlc2Nfb2Zmc2V0OworCisJdTE2IGRvb3JiZWxsX2lkOworCXVuc2lnbmVkIGxvbmcgZG9vcmJlbGxfb2Zmc2V0OworCisJLyogUHJvdGVjdHMgR3VDIGNsaWVudCdzIFdRIGFjY2VzcyAqLworCXNwaW5sb2NrX3Qgd3FfbG9jazsKKworCS8qIEZvciB0ZXN0aW5nIHB1cnBvc2VzLCB1c2Ugbm9wIFdRIGl0ZW1zIGluc3RlYWQgb2YgcmVhbCBvbmVzICovCisJSTkxNV9TRUxGVEVTVF9ERUNMQVJFKGJvb2wgdXNlX25vcF93cWkpOworfTsKKwordm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CitpbnQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOworaW50IGludGVsX2d1Y19zdWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwordm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cit2b2lkIGludGVsX2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK2ludCBpbnRlbF9ndWNfcHJlZW1wdF93b3JrX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwordm9pZCBpbnRlbF9ndWNfcHJlZW1wdF93b3JrX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Yy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NjI1YzkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWMuYwpAQCAtMCwwICsxLDE5MiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE2LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCisjaW5jbHVkZSAiaW50ZWxfaHVjLmgiCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKwordm9pZCBpbnRlbF9odWNfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBodWNfdG9fZ3QoaHVjKS0+aTkxNTsKKworCWludGVsX2h1Y19md19pbml0X2Vhcmx5KGh1Yyk7CisKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDExKSB7CisJCWh1Yy0+c3RhdHVzLnJlZyA9IEdFTjExX0hVQ19LRVJORUxfTE9BRF9JTkZPOworCQlodWMtPnN0YXR1cy5tYXNrID0gSFVDX0xPQURfU1VDQ0VTU0ZVTDsKKwkJaHVjLT5zdGF0dXMudmFsdWUgPSBIVUNfTE9BRF9TVUNDRVNTRlVMOworCX0gZWxzZSB7CisJCWh1Yy0+c3RhdHVzLnJlZyA9IEhVQ19TVEFUVVMyOworCQlodWMtPnN0YXR1cy5tYXNrID0gSFVDX0ZXX1ZFUklGSUVEOworCQlodWMtPnN0YXR1cy52YWx1ZSA9IEhVQ19GV19WRVJJRklFRDsKKwl9Cit9CisKK3N0YXRpYyBpbnQgaW50ZWxfaHVjX3JzYV9kYXRhX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGh1Y190b19ndChodWMpOworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZndC0+dWMuZ3VjOworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCXNpemVfdCBjb3BpZWQ7CisJdm9pZCAqdmFkZHI7CisJaW50IGVycjsKKworCWVyciA9IGk5MTVfaW5qZWN0X2xvYWRfZXJyb3IoZ3QtPmk5MTUsIC1FTlhJTyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCS8qCisJICogSHVDIGZpcm13YXJlIHdpbGwgc2l0IGFib3ZlIEdVQ19HR1RUX1RPUCBhbmQgd2lsbCBub3QgbWFwCisJICogdGhyb3VnaCBHVFQuIFVuZm9ydHVuYXRlbHksIHRoaXMgbWVhbnMgR3VDIGNhbm5vdCBwZXJmb3JtCisJICogdGhlIEh1QyBhdXRoLiBhcyB0aGUgcnNhIG9mZnNldCBub3cgZmFsbHMgd2l0aGluIHRoZSBHdUMKKwkgKiBpbmFjY2Vzc2libGUgcmFuZ2UuIFdlIHJlc29ydCB0byBwZXJtYS1waW5uaW5nIGFuIGFkZGl0aW9uYWwKKwkgKiB2bWEgd2l0aGluIHRoZSBhY2Nlc3NpYmxlIHJhbmdlIHRoYXQgb25seSBjb250YWlucyB0aGUgcnNhCisJICogc2lnbmF0dXJlLiBUaGUgR3VDIGNhbiB1c2UgdGhpcyBleHRyYSBwaW5uaW5nIHRvIHBlcmZvcm0KKwkgKiB0aGUgYXV0aGVudGljYXRpb24gc2luY2UgaXRzIEdHVFQgb2Zmc2V0IHdpbGwgYmUgR3VDCisJICogYWNjZXNzaWJsZS4KKwkgKi8KKwlHRU1fQlVHX09OKGh1Yy0+ZncucnNhX3NpemUgPiBQQUdFX1NJWkUpOworCXZtYSA9IGludGVsX2d1Y19hbGxvY2F0ZV92bWEoZ3VjLCBQQUdFX1NJWkUpOworCWlmIChJU19FUlIodm1hKSkKKwkJcmV0dXJuIFBUUl9FUlIodm1hKTsKKworCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAodm1hLT5vYmosIEk5MTVfTUFQX1dCKTsKKwlpZiAoSVNfRVJSKHZhZGRyKSkgeworCQlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmdm1hLCAwKTsKKwkJcmV0dXJuIFBUUl9FUlIodmFkZHIpOworCX0KKworCWNvcGllZCA9IGludGVsX3VjX2Z3X2NvcHlfcnNhKCZodWMtPmZ3LCB2YWRkciwgdm1hLT5zaXplKTsKKwlHRU1fQlVHX09OKGNvcGllZCA8IGh1Yy0+ZncucnNhX3NpemUpOworCisJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCh2bWEtPm9iaik7CisKKwlodWMtPnJzYV9kYXRhID0gdm1hOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2h1Y19yc2FfZGF0YV9kZXN0cm95KHN0cnVjdCBpbnRlbF9odWMgKmh1YykKK3sKKwlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmaHVjLT5yc2FfZGF0YSwgMCk7Cit9CisKK2ludCBpbnRlbF9odWNfaW5pdChzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBodWNfdG9fZ3QoaHVjKS0+aTkxNTsKKwlpbnQgZXJyOworCisJZXJyID0gaW50ZWxfdWNfZndfaW5pdCgmaHVjLT5mdyk7CisJaWYgKGVycikKKwkJZ290byBvdXQ7CisKKwkvKgorCSAqIEh1QyBmaXJtd2FyZSBpbWFnZSBpcyBvdXRzaWRlIEd1QyBhY2Nlc3NpYmxlIHJhbmdlLgorCSAqIENvcHkgdGhlIFJTQSBzaWduYXR1cmUgb3V0IG9mIHRoZSBpbWFnZSBpbnRvCisJICogYSBwZXJtYS1waW5uZWQgcmVnaW9uIHNldCBhc2lkZSBmb3IgaXQKKwkgKi8KKwllcnIgPSBpbnRlbF9odWNfcnNhX2RhdGFfY3JlYXRlKGh1Yyk7CisJaWYgKGVycikKKwkJZ290byBvdXRfZmluaTsKKworCXJldHVybiAwOworCitvdXRfZmluaToKKwlpbnRlbF91Y19md19maW5pKCZodWMtPmZ3KTsKK291dDoKKwlpbnRlbF91Y19md19jbGVhbnVwX2ZldGNoKCZodWMtPmZ3KTsKKwlEUk1fREVWX0RFQlVHX0RSSVZFUihpOTE1LT5kcm0uZGV2LCAiZmFpbGVkIHdpdGggJWRcbiIsIGVycik7CisJcmV0dXJuIGVycjsKK30KKwordm9pZCBpbnRlbF9odWNfZmluaShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCit7CisJaWYgKCFpbnRlbF91Y19md19pc19hdmFpbGFibGUoJmh1Yy0+ZncpKQorCQlyZXR1cm47CisKKwlpbnRlbF9odWNfcnNhX2RhdGFfZGVzdHJveShodWMpOworCWludGVsX3VjX2Z3X2ZpbmkoJmh1Yy0+ZncpOworfQorCisvKioKKyAqIGludGVsX2h1Y19hdXRoKCkgLSBBdXRoZW50aWNhdGUgSHVDIHVDb2RlCisgKiBAaHVjOiBpbnRlbF9odWMgc3RydWN0dXJlCisgKgorICogQ2FsbGVkIGFmdGVyIEh1QyBhbmQgR3VDIGZpcm13YXJlIGxvYWRpbmcgZHVyaW5nIGludGVsX3VjX2luaXRfaHcoKS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHBpbnMgSHVDIGZpcm13YXJlIGltYWdlIG9iamVjdCBpbnRvIEdHVFQuCisgKiBUaGVuIGl0IGludm9rZXMgR3VDIGFjdGlvbiB0byBhdXRoZW50aWNhdGUgcGFzc2luZyB0aGUgb2Zmc2V0IHRvIFJTQQorICogc2lnbmF0dXJlIHRocm91Z2ggaW50ZWxfZ3VjX2F1dGhfaHVjKCkuIEl0IHRoZW4gd2FpdHMgZm9yIDUwbXMgZm9yCisgKiBmaXJtd2FyZSB2ZXJpZmljYXRpb24gQUNLIGFuZCB1bnBpbnMgdGhlIG9iamVjdC4KKyAqLworaW50IGludGVsX2h1Y19hdXRoKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gaHVjX3RvX2d0KGh1Yyk7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmd0LT51Yy5ndWM7CisJaW50IHJldDsKKworCUdFTV9CVUdfT04oaW50ZWxfaHVjX2lzX2F1dGhlbnRpY2F0ZWQoaHVjKSk7CisKKwlpZiAoIWludGVsX3VjX2Z3X2lzX2xvYWRlZCgmaHVjLT5mdykpCisJCXJldHVybiAtRU5PRVhFQzsKKworCXJldCA9IGk5MTVfaW5qZWN0X2xvYWRfZXJyb3IoZ3QtPmk5MTUsIC1FTlhJTyk7CisJaWYgKHJldCkKKwkJZ290byBmYWlsOworCisJcmV0ID0gaW50ZWxfZ3VjX2F1dGhfaHVjKGd1YywKKwkJCQkgaW50ZWxfZ3VjX2dndHRfb2Zmc2V0KGd1YywgaHVjLT5yc2FfZGF0YSkpOworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJIdUM6IEd1QyBkaWQgbm90IGFjayBBdXRoIHJlcXVlc3QgJWRcbiIsIHJldCk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiBDaGVjayBhdXRoZW50aWNhdGlvbiBzdGF0dXMsIGl0IHNob3VsZCBiZSBkb25lIGJ5IG5vdyAqLworCXJldCA9IF9faW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZ3QtPnVuY29yZSwKKwkJCQkJaHVjLT5zdGF0dXMucmVnLAorCQkJCQlodWMtPnN0YXR1cy5tYXNrLAorCQkJCQlodWMtPnN0YXR1cy52YWx1ZSwKKwkJCQkJMiwgNTAsIE5VTEwpOworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJIdUM6IEZpcm13YXJlIG5vdCB2ZXJpZmllZCAlZFxuIiwgcmV0KTsKKwkJZ290byBmYWlsOworCX0KKworCWludGVsX3VjX2Z3X2NoYW5nZV9zdGF0dXMoJmh1Yy0+ZncsIElOVEVMX1VDX0ZJUk1XQVJFX1JVTk5JTkcpOworCXJldHVybiAwOworCitmYWlsOgorCWk5MTVfcHJvYmVfZXJyb3IoZ3QtPmk5MTUsICJIdUM6IEF1dGhlbnRpY2F0aW9uIGZhaWxlZCAlZFxuIiwgcmV0KTsKKwlpbnRlbF91Y19md19jaGFuZ2Vfc3RhdHVzKCZodWMtPmZ3LCBJTlRFTF9VQ19GSVJNV0FSRV9GQUlMKTsKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIGludGVsX2h1Y19jaGVja19zdGF0dXMoKSAtIGNoZWNrIEh1QyBzdGF0dXMKKyAqIEBodWM6IGludGVsX2h1YyBzdHJ1Y3R1cmUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlYWRzIHN0YXR1cyByZWdpc3RlciB0byB2ZXJpZnkgaWYgSHVDCisgKiBmaXJtd2FyZSB3YXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC4KKyAqCisgKiBSZXR1cm5zOiAxIGlmIEh1QyBmaXJtd2FyZSBpcyBsb2FkZWQgYW5kIHZlcmlmaWVkLAorICogMCBpZiBIdUMgZmlybXdhcmUgaXMgbm90IGxvYWRlZCBhbmQgLUVOT0RFViBpZiBIdUMKKyAqIGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgcGxhdGZvcm0uCisgKi8KK2ludCBpbnRlbF9odWNfY2hlY2tfc3RhdHVzKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gaHVjX3RvX2d0KGh1Yyk7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisJdTMyIHN0YXR1cyA9IDA7CisKKwlpZiAoIWludGVsX2h1Y19pc19zdXBwb3J0ZWQoaHVjKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmd0LT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQorCQlzdGF0dXMgPSBpbnRlbF91bmNvcmVfcmVhZChndC0+dW5jb3JlLCBodWMtPnN0YXR1cy5yZWcpOworCisJcmV0dXJuIChzdGF0dXMgJiBodWMtPnN0YXR1cy5tYXNrKSA9PSBodWMtPnN0YXR1cy52YWx1ZTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ0YzA1OQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Yy5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfSU5URUxfSFVDX0hfCisjZGVmaW5lIF9JTlRFTF9IVUNfSF8KKworI2luY2x1ZGUgImk5MTVfcmVnLmgiCisjaW5jbHVkZSAiaW50ZWxfdWNfZncuaCIKKyNpbmNsdWRlICJpbnRlbF9odWNfZncuaCIKKworc3RydWN0IGludGVsX2h1YyB7CisJLyogR2VuZXJpYyB1QyBmaXJtd2FyZSBtYW5hZ2VtZW50ICovCisJc3RydWN0IGludGVsX3VjX2Z3IGZ3OworCisJLyogSHVDLXNwZWNpZmljIGFkZGl0aW9ucyAqLworCXN0cnVjdCBpOTE1X3ZtYSAqcnNhX2RhdGE7CisKKwlzdHJ1Y3QgeworCQlpOTE1X3JlZ190IHJlZzsKKwkJdTMyIG1hc2s7CisJCXUzMiB2YWx1ZTsKKwl9IHN0YXR1czsKK307CisKK3ZvaWQgaW50ZWxfaHVjX2luaXRfZWFybHkoc3RydWN0IGludGVsX2h1YyAqaHVjKTsKK2ludCBpbnRlbF9odWNfaW5pdChzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOwordm9pZCBpbnRlbF9odWNfZmluaShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOworaW50IGludGVsX2h1Y19hdXRoKHN0cnVjdCBpbnRlbF9odWMgKmh1Yyk7CitpbnQgaW50ZWxfaHVjX2NoZWNrX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOworCitzdGF0aWMgaW5saW5lIGludCBpbnRlbF9odWNfc2FuaXRpemUoc3RydWN0IGludGVsX2h1YyAqaHVjKQoreworCWludGVsX3VjX2Z3X3Nhbml0aXplKCZodWMtPmZ3KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBib29sIGludGVsX2h1Y19pc19zdXBwb3J0ZWQoc3RydWN0IGludGVsX2h1YyAqaHVjKQoreworCXJldHVybiBpbnRlbF91Y19md19pc19zdXBwb3J0ZWQoJmh1Yy0+ZncpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfaHVjX2lzX2VuYWJsZWQoc3RydWN0IGludGVsX2h1YyAqaHVjKQoreworCXJldHVybiBpbnRlbF91Y19md19pc19lbmFibGVkKCZodWMtPmZ3KTsKK30KKworc3RhdGljIGlubGluZSBib29sIGludGVsX2h1Y19pc19hdXRoZW50aWNhdGVkKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKK3sKKwlyZXR1cm4gaW50ZWxfdWNfZndfaXNfcnVubmluZygmaHVjLT5mdyk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjX2Z3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWNfZncuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDYwMjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjX2Z3LmMKQEAgLTAsMCArMSw1OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKKyNpbmNsdWRlICJpbnRlbF9odWNfZncuaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCisvKioKKyAqIERPQzogSHVDIEZpcm13YXJlCisgKgorICogTW90aXZhdGlvbjoKKyAqIEdFTjkgaW50cm9kdWNlcyBhIG5ldyBkZWRpY2F0ZWQgZmlybXdhcmUgZm9yIHVzYWdlIGluIG1lZGlhIEhFVkMgKEhpZ2gKKyAqIEVmZmljaWVuY3kgVmlkZW8gQ29kaW5nKSBvcGVyYXRpb25zLiBVc2Vyc3BhY2UgY2FuIHVzZSB0aGUgZmlybXdhcmUKKyAqIGNhcGFiaWxpdGllcyBieSBhZGRpbmcgSHVDIHNwZWNpZmljIGNvbW1hbmRzIHRvIGJhdGNoIGJ1ZmZlcnMuCisgKgorICogSW1wbGVtZW50YXRpb246CisgKiBUaGUgc2FtZSBmaXJtd2FyZSBsb2FkZXIgaXMgdXNlZCBhcyB0aGUgR3VDLiBIb3dldmVyLCB0aGUgYWN0dWFsCisgKiBsb2FkaW5nIHRvIEhXIGlzIGRlZmVycmVkIHVudGlsIEdFTSBpbml0aWFsaXphdGlvbiBpcyBkb25lLgorICoKKyAqIE5vdGUgdGhhdCBIdUMgZmlybXdhcmUgbG9hZGluZyBtdXN0IGJlIGRvbmUgYmVmb3JlIEd1QyBsb2FkaW5nLgorICovCisKKy8qKgorICogaW50ZWxfaHVjX2Z3X2luaXRfZWFybHkoKSAtIGluaXRpYWxpemVzIEh1QyBmaXJtd2FyZSBzdHJ1Y3QKKyAqIEBodWM6IGludGVsX2h1YyBzdHJ1Y3QKKyAqCisgKiBPbiBwbGF0Zm9ybXMgd2l0aCBIdUMgc2VsZWN0cyBmaXJtd2FyZSBmb3IgdXBsb2FkaW5nCisgKi8KK3ZvaWQgaW50ZWxfaHVjX2Z3X2luaXRfZWFybHkoc3RydWN0IGludGVsX2h1YyAqaHVjKQoreworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBodWNfdG9fZ3QoaHVjKTsKKwlzdHJ1Y3QgaW50ZWxfdWMgKnVjID0gJmd0LT51YzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd0LT5pOTE1OworCisJaW50ZWxfdWNfZndfaW5pdF9lYXJseSgmaHVjLT5mdywgSU5URUxfVUNfRldfVFlQRV9IVUMsCisJCQkgICAgICAgaW50ZWxfdWNfdXNlc19ndWModWMpLAorCQkJICAgICAgIElOVEVMX0lORk8oaTkxNSktPnBsYXRmb3JtLCBJTlRFTF9SRVZJRChpOTE1KSk7Cit9CisKKy8qKgorICogaW50ZWxfaHVjX2Z3X3VwbG9hZCgpIC0gbG9hZCBIdUMgdUNvZGUgdG8gZGV2aWNlCisgKiBAaHVjOiBpbnRlbF9odWMgc3RydWN0dXJlCisgKgorICogQ2FsbGVkIGZyb20gaW50ZWxfdWNfaW5pdF9odygpIGR1cmluZyBkcml2ZXIgbG9hZCwgcmVzdW1lIGZyb20gc2xlZXAgYW5kCisgKiBhZnRlciBhIEdQVSByZXNldC4gTm90ZSB0aGF0IEh1QyBtdXN0IGJlIGxvYWRlZCBiZWZvcmUgR3VDLgorICoKKyAqIFRoZSBmaXJtd2FyZSBpbWFnZSBzaG91bGQgaGF2ZSBhbHJlYWR5IGJlZW4gZmV0Y2hlZCBpbnRvIG1lbW9yeSwgc28gb25seQorICogY2hlY2sgdGhhdCBmZXRjaCBzdWNjZWVkZWQsIGFuZCB0aGVuIHRyYW5zZmVyIHRoZSBpbWFnZSB0byB0aGUgaC93LgorICoKKyAqIFJldHVybjoJbm9uLXplcm8gY29kZSBvbiBlcnJvcgorICovCitpbnQgaW50ZWxfaHVjX2Z3X3VwbG9hZChzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCit7CisJLyogSFcgZG9lc24ndCBsb29rIGF0IGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yIEh1Qywgc28gc2V0IGl0IHRvIDAgKi8KKwlyZXR1cm4gaW50ZWxfdWNfZndfdXBsb2FkKCZodWMtPmZ3LCBodWNfdG9fZ3QoaHVjKSwgMCwgSFVDX1VLRVJORUwpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjX2Z3LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWNfZncuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzkxMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjX2Z3LmgKQEAgLTAsMCArMSwxNCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9JTlRFTF9IVUNfRldfSF8KKyNkZWZpbmUgX0lOVEVMX0hVQ19GV19IXworCitzdHJ1Y3QgaW50ZWxfaHVjOworCit2b2lkIGludGVsX2h1Y19md19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9odWMgKmh1Yyk7CitpbnQgaW50ZWxfaHVjX2Z3X3VwbG9hZChzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZWU3YWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jCkBAIC0wLDAgKzEsNjI3IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTYtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgorI2luY2x1ZGUgImd0L2ludGVsX3Jlc2V0LmgiCisjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3VjX2Fkcy5oIgorI2luY2x1ZGUgImludGVsX2d1Y19zdWJtaXNzaW9uLmgiCisjaW5jbHVkZSAiaW50ZWxfdWMuaCIKKworI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKKy8qIFJlc2V0IEd1QyBwcm92aWRpbmcgdXMgd2l0aCBmcmVzaCBzdGF0ZSBmb3IgYm90aCBHdUMgYW5kIEh1Qy4KKyAqLworc3RhdGljIGludCBfX2ludGVsX3VjX3Jlc2V0X2h3KHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IHVjX3RvX2d0KHVjKTsKKwlpbnQgcmV0OworCXUzMiBndWNfc3RhdHVzOworCisJcmV0ID0gaTkxNV9pbmplY3RfbG9hZF9lcnJvcihndC0+aTkxNSwgLUVOWElPKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gaW50ZWxfcmVzZXRfZ3VjKGd0KTsKKwlpZiAocmV0KSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlc2V0IEd1QywgcmV0ID0gJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJZ3VjX3N0YXR1cyA9IGludGVsX3VuY29yZV9yZWFkKGd0LT51bmNvcmUsIEdVQ19TVEFUVVMpOworCVdBUk4oIShndWNfc3RhdHVzICYgR1NfTUlBX0lOX1JFU0VUKSwKKwkgICAgICJHdUMgc3RhdHVzOiAweCV4LCBNSUEgY29yZSBleHBlY3RlZCB0byBiZSBpbiByZXNldFxuIiwKKwkgICAgIGd1Y19zdGF0dXMpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgX19jb25maXJtX29wdGlvbnMoc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHVjX3RvX2d0KHVjKS0+aTkxNTsKKworCURSTV9ERVZfREVCVUdfRFJJVkVSKGk5MTUtPmRybS5kZXYsCisJCQkgICAgICJlbmFibGVfZ3VjPSVkIChndWM6JXMgc3VibWlzc2lvbjolcyBodWM6JXMpXG4iLAorCQkJICAgICBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjLAorCQkJICAgICB5ZXNubyhpbnRlbF91Y191c2VzX2d1Yyh1YykpLAorCQkJICAgICB5ZXNubyhpbnRlbF91Y191c2VzX2d1Y19zdWJtaXNzaW9uKHVjKSksCisJCQkgICAgIHllc25vKGludGVsX3VjX3VzZXNfaHVjKHVjKSkpOworCisJaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgPT0gLTEpCisJCXJldHVybjsKKworCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjID09IDApIHsKKwkJR0VNX0JVR19PTihpbnRlbF91Y191c2VzX2d1Yyh1YykpOworCQlHRU1fQlVHX09OKGludGVsX3VjX3VzZXNfZ3VjX3N1Ym1pc3Npb24odWMpKTsKKwkJR0VNX0JVR19PTihpbnRlbF91Y191c2VzX2h1Yyh1YykpOworCQlyZXR1cm47CisJfQorCisJaWYgKCFpbnRlbF91Y19zdXBwb3J0c19ndWModWMpKQorCQlkZXZfaW5mbyhpOTE1LT5kcm0uZGV2LAorCQkJICJJbmNvbXBhdGlibGUgb3B0aW9uIGVuYWJsZV9ndWM9JWQgLSAlc1xuIiwKKwkJCSBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjLCAiR3VDIGlzIG5vdCBzdXBwb3J0ZWQhIik7CisKKwlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyAmIEVOQUJMRV9HVUNfTE9BRF9IVUMgJiYKKwkgICAgIWludGVsX3VjX3N1cHBvcnRzX2h1Yyh1YykpCisJCWRldl9pbmZvKGk5MTUtPmRybS5kZXYsCisJCQkgIkluY29tcGF0aWJsZSBvcHRpb24gZW5hYmxlX2d1Yz0lZCAtICVzXG4iLAorCQkJIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMsICJIdUMgaXMgbm90IHN1cHBvcnRlZCEiKTsKKworCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjICYgRU5BQkxFX0dVQ19TVUJNSVNTSU9OICYmCisJICAgICFpbnRlbF91Y19zdXBwb3J0c19ndWNfc3VibWlzc2lvbih1YykpCisJCWRldl9pbmZvKGk5MTUtPmRybS5kZXYsCisJCQkgIkluY29tcGF0aWJsZSBvcHRpb24gZW5hYmxlX2d1Yz0lZCAtICVzXG4iLAorCQkJIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMsICJHdUMgc3VibWlzc2lvbiBpcyBOL0EiKTsKKworCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjICYgfihFTkFCTEVfR1VDX1NVQk1JU1NJT04gfAorCQkJCQkgIEVOQUJMRV9HVUNfTE9BRF9IVUMpKQorCQlkZXZfaW5mbyhpOTE1LT5kcm0uZGV2LAorCQkJICJJbmNvbXBhdGlibGUgb3B0aW9uIGVuYWJsZV9ndWM9JWQgLSAlc1xuIiwKKwkJCSBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjLCAidW5kb2N1bWVudGVkIGZsYWciKTsKK30KKwordm9pZCBpbnRlbF91Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJaW50ZWxfZ3VjX2luaXRfZWFybHkoJnVjLT5ndWMpOworCWludGVsX2h1Y19pbml0X2Vhcmx5KCZ1Yy0+aHVjKTsKKworCV9fY29uZmlybV9vcHRpb25zKHVjKTsKK30KKwordm9pZCBpbnRlbF91Y19kcml2ZXJfbGF0ZV9yZWxlYXNlKHN0cnVjdCBpbnRlbF91YyAqdWMpCit7Cit9CisKKy8qKgorICogaW50ZWxfdWNfaW5pdF9tbWlvIC0gc2V0dXAgdUMgTU1JTyBhY2Nlc3MKKyAqIEB1YzogdGhlIGludGVsX3VjIHN0cnVjdHVyZQorICoKKyAqIFNldHVwIG1pbmltYWwgc3RhdGUgbmVjZXNzYXJ5IGZvciBNTUlPIGFjY2Vzc2VzIGxhdGVyIGluIHRoZQorICogaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuCisgKi8KK3ZvaWQgaW50ZWxfdWNfaW5pdF9tbWlvKHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJaW50ZWxfZ3VjX2luaXRfc2VuZF9yZWdzKCZ1Yy0+Z3VjKTsKK30KKworc3RhdGljIHZvaWQgX191Y19jYXB0dXJlX2xvYWRfZXJyX2xvZyhzdHJ1Y3QgaW50ZWxfdWMgKnVjKQoreworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZ1Yy0+Z3VjOworCisJaWYgKGd1Yy0+bG9nLnZtYSAmJiAhdWMtPmxvYWRfZXJyX2xvZykKKwkJdWMtPmxvYWRfZXJyX2xvZyA9IGk5MTVfZ2VtX29iamVjdF9nZXQoZ3VjLT5sb2cudm1hLT5vYmopOworfQorCitzdGF0aWMgdm9pZCBfX3VjX2ZyZWVfbG9hZF9lcnJfbG9nKHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmxvZyA9IGZldGNoX2FuZF96ZXJvKCZ1Yy0+bG9hZF9lcnJfbG9nKTsKKworCWlmIChsb2cpCisJCWk5MTVfZ2VtX29iamVjdF9wdXQobG9nKTsKK30KKworLyoKKyAqIEV2ZW50cyB0cmlnZ2VyZWQgd2hpbGUgQ1QgYnVmZmVycyBhcmUgZGlzYWJsZWQgYXJlIGxvZ2dlZCBpbiB0aGUgU0NSQVRDSF8xNQorICogcmVnaXN0ZXIgdXNpbmcgdGhlIHNhbWUgYml0cyB1c2VkIGluIHRoZSBDVCBtZXNzYWdlIHBheWxvYWQuIFNpbmNlIG91cgorICogY29tbXVuaWNhdGlvbiBjaGFubmVsIHdpdGggZ3VjIGlzIHR1cm5lZCBvZmYgYXQgdGhpcyBwb2ludCwgd2UgY2FuIHNhdmUgdGhlCisgKiBtZXNzYWdlIGFuZCBoYW5kbGUgaXQgYWZ0ZXIgd2UgdHVybiBpdCBiYWNrIG9uLgorICovCitzdGF0aWMgdm9pZCBndWNfY2xlYXJfbW1pb19tc2coc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCWludGVsX3VuY29yZV93cml0ZShndWNfdG9fZ3QoZ3VjKS0+dW5jb3JlLCBTT0ZUX1NDUkFUQ0goMTUpLCAwKTsKK30KKworc3RhdGljIHZvaWQgZ3VjX2dldF9tbWlvX21zZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJdTMyIHZhbDsKKworCXNwaW5fbG9ja19pcnEoJmd1Yy0+aXJxX2xvY2spOworCisJdmFsID0gaW50ZWxfdW5jb3JlX3JlYWQoZ3VjX3RvX2d0KGd1YyktPnVuY29yZSwgU09GVF9TQ1JBVENIKDE1KSk7CisJZ3VjLT5tbWlvX21zZyB8PSB2YWwgJiBndWMtPm1zZ19lbmFibGVkX21hc2s7CisKKwkvKgorCSAqIGNsZWFyIGFsbCBldmVudHMsIGluY2x1ZGluZyB0aGUgb25lcyB3ZSdyZSBub3QgY3VycmVudGx5IHNlcnZpY2luZywKKwkgKiB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgdHJ5IHRvIHByb2Nlc3MgYSBzdGFsZSBtZXNzYWdlIGlmIHdlIGVuYWJsZQorCSAqIGhhbmRsaW5nIG9mIG1vcmUgZXZlbnRzIGxhdGVyLgorCSAqLworCWd1Y19jbGVhcl9tbWlvX21zZyhndWMpOworCisJc3Bpbl91bmxvY2tfaXJxKCZndWMtPmlycV9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgZ3VjX2hhbmRsZV9tbWlvX21zZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9fZ3QoZ3VjKS0+aTkxNTsKKworCS8qIHdlIG5lZWQgY29tbXVuaWNhdGlvbiB0byBiZSBlbmFibGVkIHRvIHJlcGx5IHRvIEd1QyAqLworCUdFTV9CVUdfT04oZ3VjLT5oYW5kbGVyID09IGludGVsX2d1Y190b19ob3N0X2V2ZW50X2hhbmRsZXJfbm9wKTsKKworCWlmICghZ3VjLT5tbWlvX21zZykKKwkJcmV0dXJuOworCisJc3Bpbl9sb2NrX2lycSgmaTkxNS0+aXJxX2xvY2spOworCWludGVsX2d1Y190b19ob3N0X3Byb2Nlc3NfcmVjdl9tc2coZ3VjLCAmZ3VjLT5tbWlvX21zZywgMSk7CisJc3Bpbl91bmxvY2tfaXJxKCZpOTE1LT5pcnFfbG9jayk7CisKKwlndWMtPm1taW9fbXNnID0gMDsKK30KKworc3RhdGljIHZvaWQgZ3VjX3Jlc2V0X2ludGVycnVwdHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCWd1Yy0+aW50ZXJydXB0cy5yZXNldChndWMpOworfQorCitzdGF0aWMgdm9pZCBndWNfZW5hYmxlX2ludGVycnVwdHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCWd1Yy0+aW50ZXJydXB0cy5lbmFibGUoZ3VjKTsKK30KKworc3RhdGljIHZvaWQgZ3VjX2Rpc2FibGVfaW50ZXJydXB0cyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJZ3VjLT5pbnRlcnJ1cHRzLmRpc2FibGUoZ3VjKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGd1Y19jb21tdW5pY2F0aW9uX2VuYWJsZWQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXJldHVybiBndWMtPnNlbmQgIT0gaW50ZWxfZ3VjX3NlbmRfbm9wOworfQorCitzdGF0aWMgaW50IGd1Y19lbmFibGVfY29tbXVuaWNhdGlvbihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9fZ3QoZ3VjKS0+aTkxNTsKKwlpbnQgcmV0OworCisJR0VNX0JVR19PTihndWNfY29tbXVuaWNhdGlvbl9lbmFibGVkKGd1YykpOworCisJcmV0ID0gaTkxNV9pbmplY3RfbG9hZF9lcnJvcihpOTE1LCAtRU5YSU8pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBpbnRlbF9ndWNfY3RfZW5hYmxlKCZndWMtPmN0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJZ3VjLT5zZW5kID0gaW50ZWxfZ3VjX3NlbmRfY3Q7CisJZ3VjLT5oYW5kbGVyID0gaW50ZWxfZ3VjX3RvX2hvc3RfZXZlbnRfaGFuZGxlcl9jdDsKKworCS8qIGNoZWNrIGZvciBtbWlvIG1lc3NhZ2VzIHJlY2VpdmVkIGJlZm9yZS9kdXJpbmcgdGhlIENUIGVuYWJsZSAqLworCWd1Y19nZXRfbW1pb19tc2coZ3VjKTsKKwlndWNfaGFuZGxlX21taW9fbXNnKGd1Yyk7CisKKwlndWNfZW5hYmxlX2ludGVycnVwdHMoZ3VjKTsKKworCS8qIGNoZWNrIGZvciBDVCBtZXNzYWdlcyByZWNlaXZlZCBiZWZvcmUgd2UgZW5hYmxlZCBpbnRlcnJ1cHRzICovCisJc3Bpbl9sb2NrX2lycSgmaTkxNS0+aXJxX2xvY2spOworCWludGVsX2d1Y190b19ob3N0X2V2ZW50X2hhbmRsZXJfY3QoZ3VjKTsKKwlzcGluX3VubG9ja19pcnEoJmk5MTUtPmlycV9sb2NrKTsKKworCURSTV9JTkZPKCJHdUMgY29tbXVuaWNhdGlvbiBlbmFibGVkXG4iKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBndWNfc3RvcF9jb21tdW5pY2F0aW9uKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlpbnRlbF9ndWNfY3Rfc3RvcCgmZ3VjLT5jdCk7CisKKwlndWMtPnNlbmQgPSBpbnRlbF9ndWNfc2VuZF9ub3A7CisJZ3VjLT5oYW5kbGVyID0gaW50ZWxfZ3VjX3RvX2hvc3RfZXZlbnRfaGFuZGxlcl9ub3A7CisKKwlndWNfY2xlYXJfbW1pb19tc2coZ3VjKTsKK30KKworc3RhdGljIHZvaWQgZ3VjX2Rpc2FibGVfY29tbXVuaWNhdGlvbihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJLyoKKwkgKiBFdmVudHMgZ2VuZXJhdGVkIGR1cmluZyBvciBhZnRlciBDVCBkaXNhYmxlIGFyZSBsb2dnZWQgYnkgZ3VjIGluCisJICogdmlhIG1taW8uIE1ha2Ugc3VyZSB0aGUgcmVnaXN0ZXIgaXMgY2xlYXIgYmVmb3JlIGRpc2FibGluZyBDVCBzaW5jZQorCSAqIGFsbCBldmVudHMgd2UgY2FyZWQgYWJvdXQgaGF2ZSBhbHJlYWR5IGJlZW4gcHJvY2Vzc2VkIHZpYSBDVC4KKwkgKi8KKwlndWNfY2xlYXJfbW1pb19tc2coZ3VjKTsKKworCWd1Y19kaXNhYmxlX2ludGVycnVwdHMoZ3VjKTsKKworCWd1Yy0+c2VuZCA9IGludGVsX2d1Y19zZW5kX25vcDsKKwlndWMtPmhhbmRsZXIgPSBpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyX25vcDsKKworCWludGVsX2d1Y19jdF9kaXNhYmxlKCZndWMtPmN0KTsKKworCS8qCisJICogQ2hlY2sgZm9yIG1lc3NhZ2VzIHJlY2VpdmVkIGR1cmluZy9hZnRlciB0aGUgQ1QgZGlzYWJsZS4gV2UgZG8gbm90CisJICogZXhwZWN0IGFueSBtZXNzYWdlcyB0byBoYXZlIGFycml2ZWQgdmlhIENUIGJldHdlZW4gdGhlIGludGVycnVwdAorCSAqIGRpc2FibGUgYW5kIHRoZSBDVCBkaXNhYmxlIGJlY2F1c2UgR3VDIHNob3VsZCd2ZSBiZWVuIGlkbGUgdW50aWwgd2UKKwkgKiB0cmlnZ2VyZWQgdGhlIENUIGRpc2FibGUgcHJvdG9jb2wuCisJICovCisJZ3VjX2dldF9tbWlvX21zZyhndWMpOworCisJRFJNX0lORk8oIkd1QyBjb21tdW5pY2F0aW9uIGRpc2FibGVkXG4iKTsKK30KKwordm9pZCBpbnRlbF91Y19mZXRjaF9maXJtd2FyZXMoc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHVjX3RvX2d0KHVjKS0+aTkxNTsKKwlpbnQgZXJyOworCisJaWYgKCFpbnRlbF91Y191c2VzX2d1Yyh1YykpCisJCXJldHVybjsKKworCWVyciA9IGludGVsX3VjX2Z3X2ZldGNoKCZ1Yy0+Z3VjLmZ3LCBpOTE1KTsKKwlpZiAoZXJyKQorCQlyZXR1cm47CisKKwlpZiAoaW50ZWxfdWNfdXNlc19odWModWMpKQorCQlpbnRlbF91Y19md19mZXRjaCgmdWMtPmh1Yy5mdywgaTkxNSk7Cit9CisKK3ZvaWQgaW50ZWxfdWNfY2xlYW51cF9maXJtd2FyZXMoc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlpZiAoIWludGVsX3VjX3VzZXNfZ3VjKHVjKSkKKwkJcmV0dXJuOworCisJaWYgKGludGVsX3VjX3VzZXNfaHVjKHVjKSkKKwkJaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaCgmdWMtPmh1Yy5mdyk7CisKKwlpbnRlbF91Y19md19jbGVhbnVwX2ZldGNoKCZ1Yy0+Z3VjLmZ3KTsKK30KKwordm9pZCBpbnRlbF91Y19pbml0KHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJnVjLT5ndWM7CisJc3RydWN0IGludGVsX2h1YyAqaHVjID0gJnVjLT5odWM7CisJaW50IHJldDsKKworCWlmICghaW50ZWxfdWNfdXNlc19ndWModWMpKQorCQlyZXR1cm47CisKKwkvKiBYWFg6IEd1QyBzdWJtaXNzaW9uIGlzIHVuYXZhaWxhYmxlIGZvciBub3cgKi8KKwlHRU1fQlVHX09OKGludGVsX3VjX3N1cHBvcnRzX2d1Y19zdWJtaXNzaW9uKHVjKSk7CisKKwlyZXQgPSBpbnRlbF9ndWNfaW5pdChndWMpOworCWlmIChyZXQpIHsKKwkJaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaCgmaHVjLT5mdyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoaW50ZWxfdWNfdXNlc19odWModWMpKQorCQlpbnRlbF9odWNfaW5pdChodWMpOworfQorCit2b2lkIGludGVsX3VjX2Zpbmkoc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmdWMtPmd1YzsKKworCWlmICghaW50ZWxfdWNfdXNlc19ndWModWMpKQorCQlyZXR1cm47CisKKwlpZiAoaW50ZWxfdWNfdXNlc19odWModWMpKQorCQlpbnRlbF9odWNfZmluaSgmdWMtPmh1Yyk7CisKKwlpbnRlbF9ndWNfZmluaShndWMpOworCisJX191Y19mcmVlX2xvYWRfZXJyX2xvZyh1Yyk7Cit9CisKK3N0YXRpYyBpbnQgX191Y19zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfdWMgKnVjKQoreworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZ1Yy0+Z3VjOworCXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZ1Yy0+aHVjOworCisJR0VNX0JVR19PTighaW50ZWxfdWNfc3VwcG9ydHNfZ3VjKHVjKSk7CisKKwlpbnRlbF9odWNfc2FuaXRpemUoaHVjKTsKKwlpbnRlbF9ndWNfc2FuaXRpemUoZ3VjKTsKKworCXJldHVybiBfX2ludGVsX3VjX3Jlc2V0X2h3KHVjKTsKK30KKwordm9pZCBpbnRlbF91Y19zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfdWMgKnVjKQoreworCWlmICghaW50ZWxfdWNfc3VwcG9ydHNfZ3VjKHVjKSkKKwkJcmV0dXJuOworCisJX191Y19zYW5pdGl6ZSh1Yyk7Cit9CisKKy8qIEluaXRpYWxpemUgYW5kIHZlcmlmeSB0aGUgdUMgcmVncyByZWxhdGVkIHRvIHVDIHBvc2l0aW9uaW5nIGluIFdPUENNICovCitzdGF0aWMgaW50IHVjX2luaXRfd29wY20oc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gdWNfdG9fZ3QodWMpOworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7CisJdTMyIGJhc2UgPSBpbnRlbF93b3BjbV9ndWNfYmFzZSgmZ3QtPmk5MTUtPndvcGNtKTsKKwl1MzIgc2l6ZSA9IGludGVsX3dvcGNtX2d1Y19zaXplKCZndC0+aTkxNS0+d29wY20pOworCXUzMiBodWNfYWdlbnQgPSBpbnRlbF91Y191c2VzX2h1Yyh1YykgPyBIVUNfTE9BRElOR19BR0VOVF9HVUMgOiAwOworCXUzMiBtYXNrOworCWludCBlcnI7CisKKwlpZiAodW5saWtlbHkoIWJhc2UgfHwgIXNpemUpKSB7CisJCWk5MTVfcHJvYmVfZXJyb3IoZ3QtPmk5MTUsICJVbnN1Y2Nlc3NmdWwgV09QQ00gcGFydGl0aW9uaW5nXG4iKTsKKwkJcmV0dXJuIC1FMkJJRzsKKwl9CisKKwlHRU1fQlVHX09OKCFpbnRlbF91Y19zdXBwb3J0c19ndWModWMpKTsKKwlHRU1fQlVHX09OKCEoYmFzZSAmIEdVQ19XT1BDTV9PRkZTRVRfTUFTSykpOworCUdFTV9CVUdfT04oYmFzZSAmIH5HVUNfV09QQ01fT0ZGU0VUX01BU0spOworCUdFTV9CVUdfT04oIShzaXplICYgR1VDX1dPUENNX1NJWkVfTUFTSykpOworCUdFTV9CVUdfT04oc2l6ZSAmIH5HVUNfV09QQ01fU0laRV9NQVNLKTsKKworCWVyciA9IGk5MTVfaW5qZWN0X2xvYWRfZXJyb3IoZ3QtPmk5MTUsIC1FTlhJTyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCW1hc2sgPSBHVUNfV09QQ01fU0laRV9NQVNLIHwgR1VDX1dPUENNX1NJWkVfTE9DS0VEOworCWVyciA9IGludGVsX3VuY29yZV93cml0ZV9hbmRfdmVyaWZ5KHVuY29yZSwgR1VDX1dPUENNX1NJWkUsIHNpemUsIG1hc2ssCisJCQkJCSAgICBzaXplIHwgR1VDX1dPUENNX1NJWkVfTE9DS0VEKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9vdXQ7CisKKwltYXNrID0gR1VDX1dPUENNX09GRlNFVF9NQVNLIHwgR1VDX1dPUENNX09GRlNFVF9WQUxJRCB8IGh1Y19hZ2VudDsKKwllcnIgPSBpbnRlbF91bmNvcmVfd3JpdGVfYW5kX3ZlcmlmeSh1bmNvcmUsIERNQV9HVUNfV09QQ01fT0ZGU0VULAorCQkJCQkgICAgYmFzZSB8IGh1Y19hZ2VudCwgbWFzaywKKwkJCQkJICAgIGJhc2UgfCBodWNfYWdlbnQgfAorCQkJCQkgICAgR1VDX1dPUENNX09GRlNFVF9WQUxJRCk7CisJaWYgKGVycikKKwkJZ290byBlcnJfb3V0OworCisJcmV0dXJuIDA7CisKK2Vycl9vdXQ6CisJaTkxNV9wcm9iZV9lcnJvcihndC0+aTkxNSwgIkZhaWxlZCB0byBpbml0IHVDIFdPUENNIHJlZ2lzdGVycyFcbiIpOworCWk5MTVfcHJvYmVfZXJyb3IoZ3QtPmk5MTUsICIlcyglI3gpPSUjeFxuIiwgIkRNQV9HVUNfV09QQ01fT0ZGU0VUIiwKKwkJCSBpOTE1X21taW9fcmVnX29mZnNldChETUFfR1VDX1dPUENNX09GRlNFVCksCisJCQkgaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBETUFfR1VDX1dPUENNX09GRlNFVCkpOworCWk5MTVfcHJvYmVfZXJyb3IoZ3QtPmk5MTUsICIlcyglI3gpPSUjeFxuIiwgIkdVQ19XT1BDTV9TSVpFIiwKKwkJCSBpOTE1X21taW9fcmVnX29mZnNldChHVUNfV09QQ01fU0laRSksCisJCQkgaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBHVUNfV09QQ01fU0laRSkpOworCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGJvb2wgdWNfaXNfd29wY21fbG9ja2VkKHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IHVjX3RvX2d0KHVjKTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3JlOworCisJcmV0dXJuIChpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEdVQ19XT1BDTV9TSVpFKSAmIEdVQ19XT1BDTV9TSVpFX0xPQ0tFRCkgfHwKKwkgICAgICAgKGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgRE1BX0dVQ19XT1BDTV9PRkZTRVQpICYgR1VDX1dPUENNX09GRlNFVF9WQUxJRCk7Cit9CisKK2ludCBpbnRlbF91Y19pbml0X2h3KHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB1Y190b19ndCh1YyktPmk5MTU7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJnVjLT5ndWM7CisJc3RydWN0IGludGVsX2h1YyAqaHVjID0gJnVjLT5odWM7CisJaW50IHJldCwgYXR0ZW1wdHM7CisKKwlpZiAoIWludGVsX3VjX3N1cHBvcnRzX2d1Yyh1YykpCisJCXJldHVybiAwOworCisJLyoKKwkgKiBXZSBjYW4gc2lsZW50bHkgY29udGludWUgd2l0aG91dCBHdUMgb25seSBpZiBpdCB3YXMgbmV2ZXIgZW5hYmxlZAorCSAqIGJlZm9yZSBvbiB0aGlzIHN5c3RlbSBhZnRlciByZWJvb3QsIG90aGVyd2lzZSB3ZSByaXNrIEdQVSBoYW5ncy4KKwkgKiBUbyBjaGVjayBpZiBHdUMgd2FzIGxvYWRlZCBiZWZvcmUgd2UgbG9vayBhdCBXT1BDTSByZWdpc3RlcnMuCisJICovCisJaWYgKCFpbnRlbF91Y191c2VzX2d1Yyh1YykgJiYgIXVjX2lzX3dvcGNtX2xvY2tlZCh1YykpCisJCXJldHVybiAwOworCisJaWYgKCFpbnRlbF91Y19md19pc19hdmFpbGFibGUoJmd1Yy0+ZncpKSB7CisJCXJldCA9IHVjX2lzX3dvcGNtX2xvY2tlZCh1YykgfHwKKwkJICAgICAgaW50ZWxfdWNfZndfaXNfb3ZlcnJpZGRlbigmZ3VjLT5mdykgfHwKKwkJICAgICAgaW50ZWxfdWNfc3VwcG9ydHNfZ3VjX3N1Ym1pc3Npb24odWMpID8KKwkJICAgICAgaW50ZWxfdWNfZndfc3RhdHVzX3RvX2Vycm9yKGd1Yy0+Zncuc3RhdHVzKSA6IDA7CisJCWdvdG8gZXJyX291dDsKKwl9CisKKwlyZXQgPSB1Y19pbml0X3dvcGNtKHVjKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9vdXQ7CisKKwlndWNfcmVzZXRfaW50ZXJydXB0cyhndWMpOworCisJLyogV2FFbmFibGV1S2VybmVsSGVhZGVyVmFsaWRGaXg6c2tsICovCisJLyogV2FFbmFibGVHdUNCb290SGFzaENoZWNrTm90U2V0OnNrbCxieHQsa2JsICovCisJaWYgKElTX0dFTihpOTE1LCA5KSkKKwkJYXR0ZW1wdHMgPSAzOworCWVsc2UKKwkJYXR0ZW1wdHMgPSAxOworCisJd2hpbGUgKGF0dGVtcHRzLS0pIHsKKwkJLyoKKwkJICogQWx3YXlzIHJlc2V0IHRoZSBHdUMganVzdCBiZWZvcmUgKHJlKWxvYWRpbmcsIHNvCisJCSAqIHRoYXQgdGhlIHN0YXRlIGFuZCB0aW1pbmcgYXJlIGZhaXJseSBwcmVkaWN0YWJsZQorCQkgKi8KKwkJcmV0ID0gX191Y19zYW5pdGl6ZSh1Yyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl9vdXQ7CisKKwkJaW50ZWxfaHVjX2Z3X3VwbG9hZChodWMpOworCQlpbnRlbF9ndWNfYWRzX3Jlc2V0KGd1Yyk7CisJCWludGVsX2d1Y193cml0ZV9wYXJhbXMoZ3VjKTsKKwkJcmV0ID0gaW50ZWxfZ3VjX2Z3X3VwbG9hZChndWMpOworCQlpZiAocmV0ID09IDApCisJCQlicmVhazsKKworCQlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgbG9hZCBmYWlsZWQ6ICVkOyB3aWxsIHJlc2V0IGFuZCAiCisJCQkJICJyZXRyeSAlZCBtb3JlIHRpbWUocylcbiIsIHJldCwgYXR0ZW1wdHMpOworCX0KKworCS8qIERpZCB3ZSBzdWNjZWRlZCBvciBydW4gb3V0IG9mIHJldHJpZXM/ICovCisJaWYgKHJldCkKKwkJZ290byBlcnJfbG9nX2NhcHR1cmU7CisKKwlyZXQgPSBndWNfZW5hYmxlX2NvbW11bmljYXRpb24oZ3VjKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9sb2dfY2FwdHVyZTsKKworCWludGVsX2h1Y19hdXRoKGh1Yyk7CisKKwlyZXQgPSBpbnRlbF9ndWNfc2FtcGxlX2ZvcmNld2FrZShndWMpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX2NvbW11bmljYXRpb247CisKKwlpZiAoaW50ZWxfdWNfc3VwcG9ydHNfZ3VjX3N1Ym1pc3Npb24odWMpKSB7CisJCXJldCA9IGludGVsX2d1Y19zdWJtaXNzaW9uX2VuYWJsZShndWMpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJfY29tbXVuaWNhdGlvbjsKKwl9CisKKwlkZXZfaW5mbyhpOTE1LT5kcm0uZGV2LCAiJXMgZmlybXdhcmUgJXMgdmVyc2lvbiAldS4ldSAlczolc1xuIiwKKwkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcihJTlRFTF9VQ19GV19UWVBFX0dVQyksIGd1Yy0+ZncucGF0aCwKKwkJIGd1Yy0+ZncubWFqb3JfdmVyX2ZvdW5kLCBndWMtPmZ3Lm1pbm9yX3Zlcl9mb3VuZCwKKwkJICJzdWJtaXNzaW9uIiwKKwkJIGVuYWJsZWRkaXNhYmxlZChpbnRlbF91Y19zdXBwb3J0c19ndWNfc3VibWlzc2lvbih1YykpKTsKKworCWlmIChpbnRlbF91Y191c2VzX2h1Yyh1YykpIHsKKwkJZGV2X2luZm8oaTkxNS0+ZHJtLmRldiwgIiVzIGZpcm13YXJlICVzIHZlcnNpb24gJXUuJXUgJXM6JXNcbiIsCisJCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKElOVEVMX1VDX0ZXX1RZUEVfSFVDKSwKKwkJCSBodWMtPmZ3LnBhdGgsCisJCQkgaHVjLT5mdy5tYWpvcl92ZXJfZm91bmQsIGh1Yy0+ZncubWlub3JfdmVyX2ZvdW5kLAorCQkJICJhdXRoZW50aWNhdGVkIiwKKwkJCSB5ZXNubyhpbnRlbF9odWNfaXNfYXV0aGVudGljYXRlZChodWMpKSk7CisJfQorCisJcmV0dXJuIDA7CisKKwkvKgorCSAqIFdlJ3ZlIGZhaWxlZCB0byBsb2FkIHRoZSBmaXJtd2FyZSA6KAorCSAqLworZXJyX2NvbW11bmljYXRpb246CisJZ3VjX2Rpc2FibGVfY29tbXVuaWNhdGlvbihndWMpOworZXJyX2xvZ19jYXB0dXJlOgorCV9fdWNfY2FwdHVyZV9sb2FkX2Vycl9sb2codWMpOworZXJyX291dDoKKwlfX3VjX3Nhbml0aXplKHVjKTsKKworCWlmICghcmV0KSB7CisJCWRldl9ub3RpY2UoaTkxNS0+ZHJtLmRldiwgIkd1QyBpcyB1bmluaXRpYWxpemVkXG4iKTsKKwkJLyogV2Ugd2FudCB0byBydW4gd2l0aG91dCBHdUMgc3VibWlzc2lvbiAqLworCQlyZXR1cm4gMDsKKwl9CisKKwlpOTE1X3Byb2JlX2Vycm9yKGk5MTUsICJHdUMgaW5pdGlhbGl6YXRpb24gZmFpbGVkICVkXG4iLCByZXQpOworCisJLyogV2Ugd2FudCB0byBrZWVwIEtNUyBhbGl2ZSAqLworCXJldHVybiAtRUlPOworfQorCit2b2lkIGludGVsX3VjX2ZpbmlfaHcoc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmdWMtPmd1YzsKKworCWlmICghaW50ZWxfZ3VjX2lzX3J1bm5pbmcoZ3VjKSkKKwkJcmV0dXJuOworCisJaWYgKGludGVsX3VjX3N1cHBvcnRzX2d1Y19zdWJtaXNzaW9uKHVjKSkKKwkJaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShndWMpOworCisJZ3VjX2Rpc2FibGVfY29tbXVuaWNhdGlvbihndWMpOworCV9fdWNfc2FuaXRpemUodWMpOworfQorCisvKioKKyAqIGludGVsX3VjX3Jlc2V0X3ByZXBhcmUgLSBQcmVwYXJlIGZvciByZXNldAorICogQHVjOiB0aGUgaW50ZWxfdWMgc3RydWN0dXJlCisgKgorICogUHJlcGFyaW5nIGZvciBmdWxsIGdwdSByZXNldC4KKyAqLwordm9pZCBpbnRlbF91Y19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJnVjLT5ndWM7CisKKwlpZiAoIWludGVsX2d1Y19pc19ydW5uaW5nKGd1YykpCisJCXJldHVybjsKKworCWd1Y19zdG9wX2NvbW11bmljYXRpb24oZ3VjKTsKKwlfX3VjX3Nhbml0aXplKHVjKTsKK30KKwordm9pZCBpbnRlbF91Y19ydW50aW1lX3N1c3BlbmQoc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmdWMtPmd1YzsKKwlpbnQgZXJyOworCisJaWYgKCFpbnRlbF9ndWNfaXNfcnVubmluZyhndWMpKQorCQlyZXR1cm47CisKKwllcnIgPSBpbnRlbF9ndWNfc3VzcGVuZChndWMpOworCWlmIChlcnIpCisJCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBzdXNwZW5kIEd1QywgZXJyPSVkIiwgZXJyKTsKKworCWd1Y19kaXNhYmxlX2NvbW11bmljYXRpb24oZ3VjKTsKK30KKwordm9pZCBpbnRlbF91Y19zdXNwZW5kKHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJnVjLT5ndWM7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisKKwlpZiAoIWludGVsX2d1Y19pc19ydW5uaW5nKGd1YykpCisJCXJldHVybjsKKworCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmdWNfdG9fZ3QodWMpLT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQorCQlpbnRlbF91Y19ydW50aW1lX3N1c3BlbmQodWMpOworfQorCitzdGF0aWMgaW50IF9fdWNfcmVzdW1lKHN0cnVjdCBpbnRlbF91YyAqdWMsIGJvb2wgZW5hYmxlX2NvbW11bmljYXRpb24pCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJnVjLT5ndWM7CisJaW50IGVycjsKKworCWlmICghaW50ZWxfZ3VjX2lzX3J1bm5pbmcoZ3VjKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBNYWtlIHN1cmUgd2UgZW5hYmxlIGNvbW11bmljYXRpb24gaWYgYW5kIG9ubHkgaWYgaXQncyBkaXNhYmxlZCAqLworCUdFTV9CVUdfT04oZW5hYmxlX2NvbW11bmljYXRpb24gPT0gZ3VjX2NvbW11bmljYXRpb25fZW5hYmxlZChndWMpKTsKKworCWlmIChlbmFibGVfY29tbXVuaWNhdGlvbikKKwkJZ3VjX2VuYWJsZV9jb21tdW5pY2F0aW9uKGd1Yyk7CisKKwllcnIgPSBpbnRlbF9ndWNfcmVzdW1lKGd1Yyk7CisJaWYgKGVycikgeworCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gcmVzdW1lIEd1QywgZXJyPSVkIiwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworaW50IGludGVsX3VjX3Jlc3VtZShzdHJ1Y3QgaW50ZWxfdWMgKnVjKQoreworCS8qCisJICogV2hlbiBjb21pbmcgb3V0IG9mIFMzL1M0IHdlIHNhbml0aXplIGFuZCByZS1pbml0IHRoZSBIVywgc28KKwkgKiBjb21tdW5pY2F0aW9uIGlzIGFscmVhZHkgcmUtZW5hYmxlZCBhdCB0aGlzIHBvaW50LgorCSAqLworCXJldHVybiBfX3VjX3Jlc3VtZSh1YywgZmFsc2UpOworfQorCitpbnQgaW50ZWxfdWNfcnVudGltZV9yZXN1bWUoc3RydWN0IGludGVsX3VjICp1YykKK3sKKwkvKgorCSAqIER1cmluZyBydW50aW1lIHJlc3VtZSB3ZSBkb24ndCBzYW5pdGl6ZSwgc28gd2UgbmVlZCB0byByZS1pbml0CisJICogY29tbXVuaWNhdGlvbiBhcyB3ZWxsLgorCSAqLworCXJldHVybiBfX3VjX3Jlc3VtZSh1YywgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Mjc5OTVjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuaApAQCAtMCwwICsxLDY3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX0lOVEVMX1VDX0hfCisjZGVmaW5lIF9JTlRFTF9VQ19IXworCisjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCisjaW5jbHVkZSAiaW50ZWxfaHVjLmgiCisjaW5jbHVkZSAiaTkxNV9wYXJhbXMuaCIKKworc3RydWN0IGludGVsX3VjIHsKKwlzdHJ1Y3QgaW50ZWxfZ3VjIGd1YzsKKwlzdHJ1Y3QgaW50ZWxfaHVjIGh1YzsKKworCS8qIFNuYXBzaG90IG9mIEd1QyBsb2cgZnJvbSBsYXN0IGZhaWxlZCBsb2FkICovCisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmxvYWRfZXJyX2xvZzsKK307CisKK3ZvaWQgaW50ZWxfdWNfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfdWMgKnVjKTsKK3ZvaWQgaW50ZWxfdWNfZHJpdmVyX2xhdGVfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfdWMgKnVjKTsKK3ZvaWQgaW50ZWxfdWNfaW5pdF9tbWlvKHN0cnVjdCBpbnRlbF91YyAqdWMpOwordm9pZCBpbnRlbF91Y19mZXRjaF9maXJtd2FyZXMoc3RydWN0IGludGVsX3VjICp1Yyk7Cit2b2lkIGludGVsX3VjX2NsZWFudXBfZmlybXdhcmVzKHN0cnVjdCBpbnRlbF91YyAqdWMpOwordm9pZCBpbnRlbF91Y19zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfdWMgKnVjKTsKK3ZvaWQgaW50ZWxfdWNfaW5pdChzdHJ1Y3QgaW50ZWxfdWMgKnVjKTsKK2ludCBpbnRlbF91Y19pbml0X2h3KHN0cnVjdCBpbnRlbF91YyAqdWMpOwordm9pZCBpbnRlbF91Y19maW5pX2h3KHN0cnVjdCBpbnRlbF91YyAqdWMpOwordm9pZCBpbnRlbF91Y19maW5pKHN0cnVjdCBpbnRlbF91YyAqdWMpOwordm9pZCBpbnRlbF91Y19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF91YyAqdWMpOwordm9pZCBpbnRlbF91Y19zdXNwZW5kKHN0cnVjdCBpbnRlbF91YyAqdWMpOwordm9pZCBpbnRlbF91Y19ydW50aW1lX3N1c3BlbmQoc3RydWN0IGludGVsX3VjICp1Yyk7CitpbnQgaW50ZWxfdWNfcmVzdW1lKHN0cnVjdCBpbnRlbF91YyAqdWMpOworaW50IGludGVsX3VjX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBpbnRlbF91YyAqdWMpOworCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfc3VwcG9ydHNfZ3VjKHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJcmV0dXJuIGludGVsX2d1Y19pc19zdXBwb3J0ZWQoJnVjLT5ndWMpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfdXNlc19ndWMoc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlyZXR1cm4gaW50ZWxfZ3VjX2lzX2VuYWJsZWQoJnVjLT5ndWMpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfc3VwcG9ydHNfZ3VjX3N1Ym1pc3Npb24oc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlyZXR1cm4gaW50ZWxfZ3VjX2lzX3N1Ym1pc3Npb25fc3VwcG9ydGVkKCZ1Yy0+Z3VjKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGludGVsX3VjX3VzZXNfZ3VjX3N1Ym1pc3Npb24oc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlyZXR1cm4gaW50ZWxfZ3VjX2lzX3N1Ym1pc3Npb25fc3VwcG9ydGVkKCZ1Yy0+Z3VjKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGludGVsX3VjX3N1cHBvcnRzX2h1YyhzdHJ1Y3QgaW50ZWxfdWMgKnVjKQoreworCXJldHVybiBpbnRlbF91Y19zdXBwb3J0c19ndWModWMpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfdXNlc19odWMoc3RydWN0IGludGVsX3VjICp1YykKK3sKKwlyZXR1cm4gaW50ZWxfaHVjX2lzX2VuYWJsZWQoJnVjLT5odWMpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMjJiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5jCkBAIC0wLDAgKzEsNjE2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTYtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorCisjaW5jbHVkZSAiaW50ZWxfdWNfZncuaCIKKyNpbmNsdWRlICJpbnRlbF91Y19md19hYmkuaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCisjaWZkZWYgQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dVQworc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZ3QgKl9fdWNfZndfdG9fZ3Qoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykKK3sKKwlHRU1fQlVHX09OKHVjX2Z3LT5zdGF0dXMgPT0gSU5URUxfVUNfRklSTVdBUkVfVU5JTklUSUFMSVpFRCk7CisJaWYgKHVjX2Z3LT50eXBlID09IElOVEVMX1VDX0ZXX1RZUEVfR1VDKQorCQlyZXR1cm4gY29udGFpbmVyX29mKHVjX2Z3LCBzdHJ1Y3QgaW50ZWxfZ3QsIHVjLmd1Yy5mdyk7CisKKwlHRU1fQlVHX09OKHVjX2Z3LT50eXBlICE9IElOVEVMX1VDX0ZXX1RZUEVfSFVDKTsKKwlyZXR1cm4gY29udGFpbmVyX29mKHVjX2Z3LCBzdHJ1Y3QgaW50ZWxfZ3QsIHVjLmh1Yy5mdyk7Cit9CisKK3ZvaWQgaW50ZWxfdWNfZndfY2hhbmdlX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LAorCQkJICAgICAgIGVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHN0YXR1cykKK3sKKwl1Y19mdy0+X19zdGF0dXMgPSAgc3RhdHVzOworCURSTV9ERVZfREVCVUdfRFJJVkVSKF9fdWNfZndfdG9fZ3QodWNfZncpLT5pOTE1LT5kcm0uZGV2LAorCQkJICAgICAiJXMgZmlybXdhcmUgLT4gJXNcbiIsCisJCQkgICAgIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksCisJCQkgICAgIHN0YXR1cyA9PSBJTlRFTF9VQ19GSVJNV0FSRV9TRUxFQ1RFRCA/CisJCQkgICAgIHVjX2Z3LT5wYXRoIDogaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoc3RhdHVzKSk7Cit9CisjZW5kaWYKKworLyoKKyAqIExpc3Qgb2YgcmVxdWlyZWQgR3VDIGFuZCBIdUMgYmluYXJpZXMgcGVyLXBsYXRmb3JtLgorICogTXVzdCBiZSBvcmRlcmVkIGJhc2VkIG9uIHBsYXRmb3JtICsgcmV2aWQsIGZyb20gbmV3ZXIgdG8gb2xkZXIuCisgKi8KKyNkZWZpbmUgSU5URUxfVUNfRklSTVdBUkVfREVGUyhmd19kZWYsIGd1Y19kZWYsIGh1Y19kZWYpIFwKKwlmd19kZWYoSUNFTEFLRSwgICAgMCwgZ3VjX2RlZihpY2wsIDMzLCAwLCAwKSwgaHVjX2RlZihpY2wsICA4LCAgNCwgMzIzOCkpIFwKKwlmd19kZWYoQ09GRkVFTEFLRSwgMCwgZ3VjX2RlZihrYmwsIDMzLCAwLCAwKSwgaHVjX2RlZihrYmwsIDAyLCAwMCwgMTgxMCkpIFwKKwlmd19kZWYoR0VNSU5JTEFLRSwgMCwgZ3VjX2RlZihnbGssIDMzLCAwLCAwKSwgaHVjX2RlZihnbGssIDAzLCAwMSwgMjg5MykpIFwKKwlmd19kZWYoS0FCWUxBS0UsICAgMCwgZ3VjX2RlZihrYmwsIDMzLCAwLCAwKSwgaHVjX2RlZihrYmwsIDAyLCAwMCwgMTgxMCkpIFwKKwlmd19kZWYoQlJPWFRPTiwgICAgMCwgZ3VjX2RlZihieHQsIDMzLCAwLCAwKSwgaHVjX2RlZihieHQsIDAxLCAgOCwgMjg5MykpIFwKKwlmd19kZWYoU0tZTEFLRSwgICAgMCwgZ3VjX2RlZihza2wsIDMzLCAwLCAwKSwgaHVjX2RlZihza2wsIDAxLCAwNywgMTM5OCkpCisKKyNkZWZpbmUgX19NQUtFX1VDX0ZXX1BBVEgocHJlZml4XywgbmFtZV8sIHNlcGFyYXRvcl8sIG1ham9yXywgbWlub3JfLCBwYXRjaF8pIFwKKwkiaTkxNS8iIFwKKwlfX3N0cmluZ2lmeShwcmVmaXhfKSBuYW1lXyBcCisJX19zdHJpbmdpZnkobWFqb3JfKSBzZXBhcmF0b3JfIFwKKwlfX3N0cmluZ2lmeShtaW5vcl8pIHNlcGFyYXRvcl8gXAorCV9fc3RyaW5naWZ5KHBhdGNoXykgIi5iaW4iCisKKyNkZWZpbmUgTUFLRV9HVUNfRldfUEFUSChwcmVmaXhfLCBtYWpvcl8sIG1pbm9yXywgcGF0Y2hfKSBcCisJX19NQUtFX1VDX0ZXX1BBVEgocHJlZml4XywgIl9ndWNfIiwgIi4iLCBtYWpvcl8sIG1pbm9yXywgcGF0Y2hfKQorCisjZGVmaW5lIE1BS0VfSFVDX0ZXX1BBVEgocHJlZml4XywgbWFqb3JfLCBtaW5vcl8sIGJsZF9udW1fKSBcCisJX19NQUtFX1VDX0ZXX1BBVEgocHJlZml4XywgIl9odWNfdmVyIiwgIl8iLCBtYWpvcl8sIG1pbm9yXywgYmxkX251bV8pCisKKy8qIEFsbCBibG9icyBuZWVkIHRvIGJlIGRlY2xhcmVkIHZpYSBNT0RVTEVfRklSTVdBUkUoKSAqLworI2RlZmluZSBJTlRFTF9VQ19NT0RVTEVfRlcocGxhdGZvcm1fLCByZXZpZF8sIGd1Y18sIGh1Y18pIFwKKwlNT0RVTEVfRklSTVdBUkUoZ3VjXyk7IFwKKwlNT0RVTEVfRklSTVdBUkUoaHVjXyk7CisKK0lOVEVMX1VDX0ZJUk1XQVJFX0RFRlMoSU5URUxfVUNfTU9EVUxFX0ZXLCBNQUtFX0dVQ19GV19QQVRILCBNQUtFX0hVQ19GV19QQVRIKQorCisvKiBUaGUgYmVsb3cgc3RydWN0cyBhbmQgbWFjcm9zIGFyZSB1c2VkIHRvIGl0ZXJhdGUgYWNyb3NzIHRoZSBsaXN0IG9mIGJsb2JzICovCitzdHJ1Y3QgX19wYWNrZWQgdWNfZndfYmxvYiB7CisJdTggbWFqb3I7CisJdTggbWlub3I7CisJY29uc3QgY2hhciAqcGF0aDsKK307CisKKyNkZWZpbmUgVUNfRldfQkxPQihtYWpvcl8sIG1pbm9yXywgcGF0aF8pIFwKKwl7IC5tYWpvciA9IG1ham9yXywgLm1pbm9yID0gbWlub3JfLCAucGF0aCA9IHBhdGhfIH0KKworI2RlZmluZSBHVUNfRldfQkxPQihwcmVmaXhfLCBtYWpvcl8sIG1pbm9yXywgcGF0Y2hfKSBcCisJVUNfRldfQkxPQihtYWpvcl8sIG1pbm9yXywgXAorCQkgICBNQUtFX0dVQ19GV19QQVRIKHByZWZpeF8sIG1ham9yXywgbWlub3JfLCBwYXRjaF8pKQorCisjZGVmaW5lIEhVQ19GV19CTE9CKHByZWZpeF8sIG1ham9yXywgbWlub3JfLCBibGRfbnVtXykgXAorCVVDX0ZXX0JMT0IobWFqb3JfLCBtaW5vcl8sIFwKKwkJICAgTUFLRV9IVUNfRldfUEFUSChwcmVmaXhfLCBtYWpvcl8sIG1pbm9yXywgYmxkX251bV8pKQorCitzdHJ1Y3QgX19wYWNrZWQgdWNfZndfcGxhdGZvcm1fcmVxdWlyZW1lbnQgeworCWVudW0gaW50ZWxfcGxhdGZvcm0gcDsKKwl1OCByZXY7IC8qIGZpcnN0IHBsYXRmb3JtIHJldiB1c2luZyB0aGlzIEZXICovCisJY29uc3Qgc3RydWN0IHVjX2Z3X2Jsb2IgYmxvYnNbSU5URUxfVUNfRldfTlVNX1RZUEVTXTsKK307CisKKyNkZWZpbmUgTUFLRV9GV19MSVNUKHBsYXRmb3JtXywgcmV2aWRfLCBndWNfLCBodWNfKSBcCit7IFwKKwkucCA9IElOVEVMXyMjcGxhdGZvcm1fLCBcCisJLnJldiA9IHJldmlkXywgXAorCS5ibG9ic1tJTlRFTF9VQ19GV19UWVBFX0dVQ10gPSBndWNfLCBcCisJLmJsb2JzW0lOVEVMX1VDX0ZXX1RZUEVfSFVDXSA9IGh1Y18sIFwKK30sCisKK3N0YXRpYyB2b2lkCitfX3VjX2Z3X2F1dG9fc2VsZWN0KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIGVudW0gaW50ZWxfcGxhdGZvcm0gcCwgdTggcmV2KQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgdWNfZndfcGxhdGZvcm1fcmVxdWlyZW1lbnQgZndfYmxvYnNbXSA9IHsKKwkJSU5URUxfVUNfRklSTVdBUkVfREVGUyhNQUtFX0ZXX0xJU1QsIEdVQ19GV19CTE9CLCBIVUNfRldfQkxPQikKKwl9OworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZndfYmxvYnMpICYmIHAgPD0gZndfYmxvYnNbaV0ucDsgaSsrKSB7CisJCWlmIChwID09IGZ3X2Jsb2JzW2ldLnAgJiYgcmV2ID49IGZ3X2Jsb2JzW2ldLnJldikgeworCQkJY29uc3Qgc3RydWN0IHVjX2Z3X2Jsb2IgKmJsb2IgPQorCQkJCQkmZndfYmxvYnNbaV0uYmxvYnNbdWNfZnctPnR5cGVdOworCQkJdWNfZnctPnBhdGggPSBibG9iLT5wYXRoOworCQkJdWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBibG9iLT5tYWpvcjsKKwkJCXVjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gYmxvYi0+bWlub3I7CisJCQlicmVhazsKKwkJfQorCX0KKworCS8qIG1ha2Ugc3VyZSB0aGUgbGlzdCBpcyBvcmRlcmVkIGFzIGV4cGVjdGVkICovCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKSkgeworCQlmb3IgKGkgPSAxOyBpIDwgQVJSQVlfU0laRShmd19ibG9icyk7IGkrKykgeworCQkJaWYgKGZ3X2Jsb2JzW2ldLnAgPCBmd19ibG9ic1tpIC0gMV0ucCkKKwkJCQljb250aW51ZTsKKworCQkJaWYgKGZ3X2Jsb2JzW2ldLnAgPT0gZndfYmxvYnNbaSAtIDFdLnAgJiYKKwkJCSAgICBmd19ibG9ic1tpXS5yZXYgPCBmd19ibG9ic1tpIC0gMV0ucmV2KQorCQkJCWNvbnRpbnVlOworCisJCQlwcl9lcnIoImludmFsaWQgRlcgYmxvYiBvcmRlcjogJXMgciV1IGNvbWVzIGJlZm9yZSAlcyByJXVcbiIsCisJCQkgICAgICAgaW50ZWxfcGxhdGZvcm1fbmFtZShmd19ibG9ic1tpIC0gMV0ucCksCisJCQkgICAgICAgZndfYmxvYnNbaSAtIDFdLnJldiwKKwkJCSAgICAgICBpbnRlbF9wbGF0Zm9ybV9uYW1lKGZ3X2Jsb2JzW2ldLnApLAorCQkJICAgICAgIGZ3X2Jsb2JzW2ldLnJldik7CisKKwkJCXVjX2Z3LT5wYXRoID0gTlVMTDsKKwkJfQorCX0KKworCS8qIFdlIGRvbid0IHdhbnQgdG8gZW5hYmxlIEd1Qy9IdUMgb24gcHJlLUdlbjExIGJ5IGRlZmF1bHQgKi8KKwlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyA9PSAtMSAmJiBwIDwgSU5URUxfSUNFTEFLRSkKKwkJdWNfZnctPnBhdGggPSBOVUxMOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqX19vdmVycmlkZV9ndWNfZmlybXdhcmVfcGF0aCh2b2lkKQoreworCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjICYgKEVOQUJMRV9HVUNfU1VCTUlTU0lPTiB8CisJCQkJCSBFTkFCTEVfR1VDX0xPQURfSFVDKSkKKwkJcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmd1Y19maXJtd2FyZV9wYXRoOworCXJldHVybiAiIjsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKl9fb3ZlcnJpZGVfaHVjX2Zpcm13YXJlX3BhdGgodm9pZCkKK3sKKwlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyAmIEVOQUJMRV9HVUNfTE9BRF9IVUMpCisJCXJldHVybiBpOTE1X21vZHBhcmFtcy5odWNfZmlybXdhcmVfcGF0aDsKKwlyZXR1cm4gIiI7Cit9CisKK3N0YXRpYyB2b2lkIF9fdWNfZndfdXNlcl9vdmVycmlkZShzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQoreworCWNvbnN0IGNoYXIgKnBhdGggPSBOVUxMOworCisJc3dpdGNoICh1Y19mdy0+dHlwZSkgeworCWNhc2UgSU5URUxfVUNfRldfVFlQRV9HVUM6CisJCXBhdGggPSBfX292ZXJyaWRlX2d1Y19maXJtd2FyZV9wYXRoKCk7CisJCWJyZWFrOworCWNhc2UgSU5URUxfVUNfRldfVFlQRV9IVUM6CisJCXBhdGggPSBfX292ZXJyaWRlX2h1Y19maXJtd2FyZV9wYXRoKCk7CisJCWJyZWFrOworCX0KKworCWlmICh1bmxpa2VseShwYXRoKSkgeworCQl1Y19mdy0+cGF0aCA9IHBhdGg7CisJCXVjX2Z3LT51c2VyX292ZXJyaWRkZW4gPSB0cnVlOworCX0KK30KKworLyoqCisgKiBpbnRlbF91Y19md19pbml0X2Vhcmx5IC0gaW5pdGlhbGl6ZSB0aGUgdUMgb2JqZWN0IGFuZCBzZWxlY3QgdGhlIGZpcm13YXJlCisgKiBAdWNfZnc6IHVDIGZpcm13YXJlCisgKiBAdHlwZTogdHlwZSBvZiB1QworICogQHN1cHBvcnRlZDogaXMgdUMgc3VwcG9ydCBwb3NzaWJsZQorICogQHBsYXRmb3JtOiBwbGF0Zm9ybSBpZGVudGlmaWVyCisgKiBAcmV2OiBoYXJkd2FyZSByZXZpc2lvbgorICoKKyAqIEluaXRpYWxpemUgdGhlIHN0YXRlIG9mIG91ciB1QyBvYmplY3QgYW5kIHJlbGV2YW50IHRyYWNraW5nIGFuZCBzZWxlY3QgdGhlCisgKiBmaXJtd2FyZSB0byBmZXRjaCBhbmQgbG9hZC4KKyAqLwordm9pZCBpbnRlbF91Y19md19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsCisJCQkgICAgZW51bSBpbnRlbF91Y19md190eXBlIHR5cGUsIGJvb2wgc3VwcG9ydGVkLAorCQkJICAgIGVudW0gaW50ZWxfcGxhdGZvcm0gcGxhdGZvcm0sIHU4IHJldikKK3sKKwkvKgorCSAqIHdlIHVzZSBGSVJNV0FSRV9VTklOSVRJQUxJWkVEIHRvIGRldGVjdCBjaGVja3MgYWdhaW5zdCB1Y19mdy0+c3RhdHVzCisJICogYmVmb3JlIHdlJ3JlIGxvb2tlZCBhdCB0aGUgSFcgY2FwcyB0byBzZWUgaWYgd2UgaGF2ZSB1YyBzdXBwb3J0CisJICovCisJQlVJTERfQlVHX09OKElOVEVMX1VDX0ZJUk1XQVJFX1VOSU5JVElBTElaRUQpOworCUdFTV9CVUdfT04odWNfZnctPnN0YXR1cyk7CisJR0VNX0JVR19PTih1Y19mdy0+cGF0aCk7CisKKwl1Y19mdy0+dHlwZSA9IHR5cGU7CisKKwlpZiAoc3VwcG9ydGVkKSB7CisJCV9fdWNfZndfYXV0b19zZWxlY3QodWNfZncsIHBsYXRmb3JtLCByZXYpOworCQlfX3VjX2Z3X3VzZXJfb3ZlcnJpZGUodWNfZncpOworCX0KKworCWludGVsX3VjX2Z3X2NoYW5nZV9zdGF0dXModWNfZncsIHVjX2Z3LT5wYXRoID8gKnVjX2Z3LT5wYXRoID8KKwkJCQkgIElOVEVMX1VDX0ZJUk1XQVJFX1NFTEVDVEVEIDoKKwkJCQkgIElOVEVMX1VDX0ZJUk1XQVJFX0RJU0FCTEVEIDoKKwkJCQkgIElOVEVMX1VDX0ZJUk1XQVJFX05PVF9TVVBQT1JURUQpOworfQorCitzdGF0aWMgdm9pZCBfX2ZvcmNlX2Z3X2ZldGNoX2ZhaWx1cmVzKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsCisJCQkJICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkJICAgICAgaW50IGUpCit7CisJYm9vbCB1c2VyID0gZSA9PSAtRUlOVkFMOworCisJaWYgKGk5MTVfaW5qZWN0X2xvYWRfZXJyb3IoaTkxNSwgZSkpIHsKKwkJLyogbm9uLWV4aXN0aW5nIGJsb2IgKi8KKwkJdWNfZnctPnBhdGggPSAiPGludmFsaWQ+IjsKKwkJdWNfZnctPnVzZXJfb3ZlcnJpZGRlbiA9IHVzZXI7CisJfSBlbHNlIGlmIChpOTE1X2luamVjdF9sb2FkX2Vycm9yKGk5MTUsIGUpKSB7CisJCS8qIHJlcXVpcmUgbmV4dCBtYWpvciB2ZXJzaW9uICovCisJCXVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkICs9IDE7CisJCXVjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gMDsKKwkJdWNfZnctPnVzZXJfb3ZlcnJpZGRlbiA9IHVzZXI7CisJfSBlbHNlIGlmIChpOTE1X2luamVjdF9sb2FkX2Vycm9yKGk5MTUsIGUpKSB7CisJCS8qIHJlcXVpcmUgbmV4dCBtaW5vciB2ZXJzaW9uICovCisJCXVjX2Z3LT5taW5vcl92ZXJfd2FudGVkICs9IDE7CisJCXVjX2Z3LT51c2VyX292ZXJyaWRkZW4gPSB1c2VyOworCX0gZWxzZSBpZiAodWNfZnctPm1ham9yX3Zlcl93YW50ZWQgJiYgaTkxNV9pbmplY3RfbG9hZF9lcnJvcihpOTE1LCBlKSkgeworCQkvKiByZXF1aXJlIHByZXYgbWFqb3IgdmVyc2lvbiAqLworCQl1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCAtPSAxOworCQl1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCA9IDA7CisJCXVjX2Z3LT51c2VyX292ZXJyaWRkZW4gPSB1c2VyOworCX0gZWxzZSBpZiAodWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgJiYgaTkxNV9pbmplY3RfbG9hZF9lcnJvcihpOTE1LCBlKSkgeworCQkvKiByZXF1aXJlIHByZXYgbWlub3IgdmVyc2lvbiAtIGhleSwgdGhpcyBzaG91bGQgd29yayEgKi8KKwkJdWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgLT0gMTsKKwkJdWNfZnctPnVzZXJfb3ZlcnJpZGRlbiA9IHVzZXI7CisJfSBlbHNlIGlmICh1c2VyICYmIGk5MTVfaW5qZWN0X2xvYWRfZXJyb3IoaTkxNSwgZSkpIHsKKwkJLyogb2ZmaWNpYWxseSB1bnN1cHBvcnRlZCBwbGF0Zm9ybSAqLworCQl1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCA9IDA7CisJCXVjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gMDsKKwkJdWNfZnctPnVzZXJfb3ZlcnJpZGRlbiA9IHRydWU7CisJfQorfQorCisvKioKKyAqIGludGVsX3VjX2Z3X2ZldGNoIC0gZmV0Y2ggdUMgZmlybXdhcmUKKyAqIEB1Y19mdzogdUMgZmlybXdhcmUKKyAqIEBpOTE1OiBkZXZpY2UgcHJpdmF0ZQorICoKKyAqIEZldGNoIHVDIGZpcm13YXJlIGludG8gR0VNIG9iai4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgYSBuZWdhdGl2ZSBlcnJubyBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBpbnRlbF91Y19md19mZXRjaChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBpOTE1LT5kcm0uZGV2OworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdyA9IE5VTEw7CisJc3RydWN0IHVjX2Nzc19oZWFkZXIgKmNzczsKKwlzaXplX3Qgc2l6ZTsKKwlpbnQgZXJyOworCisJR0VNX0JVR19PTighaTkxNS0+d29wY20uc2l6ZSk7CisJR0VNX0JVR19PTighaW50ZWxfdWNfZndfaXNfZW5hYmxlZCh1Y19mdykpOworCisJZXJyID0gaTkxNV9pbmplY3RfbG9hZF9lcnJvcihpOTE1LCAtRU5YSU8pOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlfX2ZvcmNlX2Z3X2ZldGNoX2ZhaWx1cmVzKHVjX2Z3LCBpOTE1LCAtRUlOVkFMKTsKKwlfX2ZvcmNlX2Z3X2ZldGNoX2ZhaWx1cmVzKHVjX2Z3LCBpOTE1LCAtRVNUQUxFKTsKKworCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCB1Y19mdy0+cGF0aCwgZGV2KTsKKwlpZiAoZXJyKQorCQlnb3RvIGZhaWw7CisKKwkvKiBDaGVjayB0aGUgc2l6ZSBvZiB0aGUgYmxvYiBiZWZvcmUgZXhhbWluaW5nIGJ1ZmZlciBjb250ZW50cyAqLworCWlmICh1bmxpa2VseShmdy0+c2l6ZSA8IHNpemVvZihzdHJ1Y3QgdWNfY3NzX2hlYWRlcikpKSB7CisJCWRldl93YXJuKGRldiwgIiVzIGZpcm13YXJlICVzOiBpbnZhbGlkIHNpemU6ICV6dSA8ICV6dVxuIiwKKwkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLCB1Y19mdy0+cGF0aCwKKwkJCSBmdy0+c2l6ZSwgc2l6ZW9mKHN0cnVjdCB1Y19jc3NfaGVhZGVyKSk7CisJCWVyciA9IC1FTk9EQVRBOworCQlnb3RvIGZhaWw7CisJfQorCisJY3NzID0gKHN0cnVjdCB1Y19jc3NfaGVhZGVyICopZnctPmRhdGE7CisKKwkvKiBDaGVjayBpbnRlZ3JpdHkgb2Ygc2l6ZSB2YWx1ZXMgaW5zaWRlIENTUyBoZWFkZXIgKi8KKwlzaXplID0gKGNzcy0+aGVhZGVyX3NpemVfZHcgLSBjc3MtPmtleV9zaXplX2R3IC0gY3NzLT5tb2R1bHVzX3NpemVfZHcgLQorCQljc3MtPmV4cG9uZW50X3NpemVfZHcpICogc2l6ZW9mKHUzMik7CisJaWYgKHVubGlrZWx5KHNpemUgIT0gc2l6ZW9mKHN0cnVjdCB1Y19jc3NfaGVhZGVyKSkpIHsKKwkJZGV2X3dhcm4oZGV2LAorCQkJICIlcyBmaXJtd2FyZSAlczogdW5leHBlY3RlZCBoZWFkZXIgc2l6ZTogJXp1ICE9ICV6dVxuIiwKKwkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLCB1Y19mdy0+cGF0aCwKKwkJCSBmdy0+c2l6ZSwgc2l6ZW9mKHN0cnVjdCB1Y19jc3NfaGVhZGVyKSk7CisJCWVyciA9IC1FUFJPVE87CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiB1Q29kZSBzaXplIG11c3QgY2FsY3VsYXRlZCBmcm9tIG90aGVyIHNpemVzICovCisJdWNfZnctPnVjb2RlX3NpemUgPSAoY3NzLT5zaXplX2R3IC0gY3NzLT5oZWFkZXJfc2l6ZV9kdykgKiBzaXplb2YodTMyKTsKKworCS8qIG5vdyBSU0EgKi8KKwlpZiAodW5saWtlbHkoY3NzLT5rZXlfc2l6ZV9kdyAhPSBVT1NfUlNBX1NDUkFUQ0hfQ09VTlQpKSB7CisJCWRldl93YXJuKGRldiwgIiVzIGZpcm13YXJlICVzOiB1bmV4cGVjdGVkIGtleSBzaXplOiAldSAhPSAldVxuIiwKKwkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLCB1Y19mdy0+cGF0aCwKKwkJCSBjc3MtPmtleV9zaXplX2R3LCBVT1NfUlNBX1NDUkFUQ0hfQ09VTlQpOworCQllcnIgPSAtRVBST1RPOworCQlnb3RvIGZhaWw7CisJfQorCXVjX2Z3LT5yc2Ffc2l6ZSA9IGNzcy0+a2V5X3NpemVfZHcgKiBzaXplb2YodTMyKTsKKworCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFkZXIsIHVDb2RlIGFuZCBSU0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLworCXNpemUgPSBzaXplb2Yoc3RydWN0IHVjX2Nzc19oZWFkZXIpICsgdWNfZnctPnVjb2RlX3NpemUgKyB1Y19mdy0+cnNhX3NpemU7CisJaWYgKHVubGlrZWx5KGZ3LT5zaXplIDwgc2l6ZSkpIHsKKwkJZGV2X3dhcm4oZGV2LCAiJXMgZmlybXdhcmUgJXM6IGludmFsaWQgc2l6ZTogJXp1IDwgJXp1XG4iLAorCQkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksIHVjX2Z3LT5wYXRoLAorCQkJIGZ3LT5zaXplLCBzaXplKTsKKwkJZXJyID0gLUVOT0VYRUM7CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiBTYW5pdHkgY2hlY2sgd2hldGhlciB0aGlzIGZ3IGlzIG5vdCBsYXJnZXIgdGhhbiB3aG9sZSBXT1BDTSBtZW1vcnkgKi8KKwlzaXplID0gX19pbnRlbF91Y19md19nZXRfdXBsb2FkX3NpemUodWNfZncpOworCWlmICh1bmxpa2VseShzaXplID49IGk5MTUtPndvcGNtLnNpemUpKSB7CisJCWRldl93YXJuKGRldiwgIiVzIGZpcm13YXJlICVzOiBpbnZhbGlkIHNpemU6ICV6dSA+ICV6dVxuIiwKKwkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLCB1Y19mdy0+cGF0aCwKKwkJCSBzaXplLCAoc2l6ZV90KWk5MTUtPndvcGNtLnNpemUpOworCQllcnIgPSAtRTJCSUc7CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiBHZXQgdmVyc2lvbiBudW1iZXJzIGZyb20gdGhlIENTUyBoZWFkZXIgKi8KKwlzd2l0Y2ggKHVjX2Z3LT50eXBlKSB7CisJY2FzZSBJTlRFTF9VQ19GV19UWVBFX0dVQzoKKwkJdWNfZnctPm1ham9yX3Zlcl9mb3VuZCA9IEZJRUxEX0dFVChDU1NfU1dfVkVSU0lPTl9HVUNfTUFKT1IsCisJCQkJCQkgICBjc3MtPnN3X3ZlcnNpb24pOworCQl1Y19mdy0+bWlub3JfdmVyX2ZvdW5kID0gRklFTERfR0VUKENTU19TV19WRVJTSU9OX0dVQ19NSU5PUiwKKwkJCQkJCSAgIGNzcy0+c3dfdmVyc2lvbik7CisJCWJyZWFrOworCisJY2FzZSBJTlRFTF9VQ19GV19UWVBFX0hVQzoKKwkJdWNfZnctPm1ham9yX3Zlcl9mb3VuZCA9IEZJRUxEX0dFVChDU1NfU1dfVkVSU0lPTl9IVUNfTUFKT1IsCisJCQkJCQkgICBjc3MtPnN3X3ZlcnNpb24pOworCQl1Y19mdy0+bWlub3JfdmVyX2ZvdW5kID0gRklFTERfR0VUKENTU19TV19WRVJTSU9OX0hVQ19NSU5PUiwKKwkJCQkJCSAgIGNzcy0+c3dfdmVyc2lvbik7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJTUlTU0lOR19DQVNFKHVjX2Z3LT50eXBlKTsKKwkJYnJlYWs7CisJfQorCisJaWYgKHVjX2Z3LT5tYWpvcl92ZXJfZm91bmQgIT0gdWNfZnctPm1ham9yX3Zlcl93YW50ZWQgfHwKKwkgICAgdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCA8IHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKSB7CisJCWRldl9ub3RpY2UoZGV2LCAiJXMgZmlybXdhcmUgJXM6IHVuZXhwZWN0ZWQgdmVyc2lvbjogJXUuJXUgIT0gJXUuJXVcbiIsCisJCQkgICBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLCB1Y19mdy0+cGF0aCwKKwkJCSAgIHVjX2Z3LT5tYWpvcl92ZXJfZm91bmQsIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQsCisJCQkgICB1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCwgdWNfZnctPm1pbm9yX3Zlcl93YW50ZWQpOworCQlpZiAoIWludGVsX3VjX2Z3X2lzX292ZXJyaWRkZW4odWNfZncpKSB7CisJCQllcnIgPSAtRU5PRVhFQzsKKwkJCWdvdG8gZmFpbDsKKwkJfQorCX0KKworCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc2htZW1fZnJvbV9kYXRhKGk5MTUsIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7CisJaWYgKElTX0VSUihvYmopKSB7CisJCWVyciA9IFBUUl9FUlIob2JqKTsKKwkJZ290byBmYWlsOworCX0KKworCXVjX2Z3LT5vYmogPSBvYmo7CisJdWNfZnctPnNpemUgPSBmdy0+c2l6ZTsKKwlpbnRlbF91Y19md19jaGFuZ2Vfc3RhdHVzKHVjX2Z3LCBJTlRFTF9VQ19GSVJNV0FSRV9BVkFJTEFCTEUpOworCisJcmVsZWFzZV9maXJtd2FyZShmdyk7CisJcmV0dXJuIDA7CisKK2ZhaWw6CisJaW50ZWxfdWNfZndfY2hhbmdlX3N0YXR1cyh1Y19mdywgZXJyID09IC1FTk9FTlQgPworCQkJCSAgSU5URUxfVUNfRklSTVdBUkVfTUlTU0lORyA6CisJCQkJICBJTlRFTF9VQ19GSVJNV0FSRV9FUlJPUik7CisKKwlkZXZfbm90aWNlKGRldiwgIiVzIGZpcm13YXJlICVzOiBmZXRjaCBmYWlsZWQgd2l0aCBlcnJvciAlZFxuIiwKKwkJICAgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgdWNfZnctPnBhdGgsIGVycik7CisJZGV2X2luZm8oZGV2LCAiJXMgZmlybXdhcmUocykgY2FuIGJlIGRvd25sb2FkZWQgZnJvbSAlc1xuIiwKKwkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksIElOVEVMX1VDX0ZJUk1XQVJFX1VSTCk7CisKKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsJCS8qIE9LIGV2ZW4gaWYgZncgaXMgTlVMTCAqLworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB1MzIgdWNfZndfZ2d0dF9vZmZzZXQoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywgc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKK3sKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUgPSAmZ2d0dC0+dWNfZnc7CisKKwlHRU1fQlVHX09OKCFub2RlLT5hbGxvY2F0ZWQpOworCUdFTV9CVUdfT04odXBwZXJfMzJfYml0cyhub2RlLT5zdGFydCkpOworCUdFTV9CVUdfT04odXBwZXJfMzJfYml0cyhub2RlLT5zdGFydCArIG5vZGUtPnNpemUgLSAxKSk7CisKKwlyZXR1cm4gbG93ZXJfMzJfYml0cyhub2RlLT5zdGFydCk7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX3VjX2Z3X2dndHRfYmluZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LAorCQkJCSAgc3RydWN0IGludGVsX2d0ICpndCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdWNfZnctPm9iajsKKwlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gZ3QtPmdndHQ7CisJc3RydWN0IGk5MTVfdm1hIGR1bW15ID0geworCQkubm9kZS5zdGFydCA9IHVjX2Z3X2dndHRfb2Zmc2V0KHVjX2Z3LCBnZ3R0KSwKKwkJLm5vZGUuc2l6ZSA9IG9iai0+YmFzZS5zaXplLAorCQkucGFnZXMgPSBvYmotPm1tLnBhZ2VzLAorCQkudm0gPSAmZ2d0dC0+dm0sCisJfTsKKworCUdFTV9CVUdfT04oIWk5MTVfZ2VtX29iamVjdF9oYXNfcGlubmVkX3BhZ2VzKG9iaikpOworCUdFTV9CVUdfT04oZHVtbXkubm9kZS5zaXplID4gZ2d0dC0+dWNfZncuc2l6ZSk7CisKKwkvKiB1Y19mdy0+b2JqIGNhY2hlIGRvbWFpbnMgd2VyZSBub3QgY29udHJvbGxlZCBhY3Jvc3Mgc3VzcGVuZCAqLworCWRybV9jbGZsdXNoX3NnKGR1bW15LnBhZ2VzKTsKKworCWdndHQtPnZtLmluc2VydF9lbnRyaWVzKCZnZ3R0LT52bSwgJmR1bW15LCBJOTE1X0NBQ0hFX05PTkUsIDApOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF91Y19md19nZ3R0X3VuYmluZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LAorCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB1Y19mdy0+b2JqOworCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSBndC0+Z2d0dDsKKwl1NjQgc3RhcnQgPSB1Y19md19nZ3R0X29mZnNldCh1Y19mdywgZ2d0dCk7CisKKwlnZ3R0LT52bS5jbGVhcl9yYW5nZSgmZ2d0dC0+dm0sIHN0YXJ0LCBvYmotPmJhc2Uuc2l6ZSk7Cit9CisKK3N0YXRpYyBpbnQgdWNfZndfeGZlcihzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkgICAgICB1MzIgd29wY21fb2Zmc2V0LCB1MzIgZG1hX2ZsYWdzKQoreworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7CisJdTY0IG9mZnNldDsKKwlpbnQgcmV0OworCisJcmV0ID0gaTkxNV9pbmplY3RfbG9hZF9lcnJvcihndC0+aTkxNSwgLUVUSU1FRE9VVCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KHVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CisKKwkvKiBTZXQgdGhlIHNvdXJjZSBhZGRyZXNzIGZvciB0aGUgdUNvZGUgKi8KKwlvZmZzZXQgPSB1Y19md19nZ3R0X29mZnNldCh1Y19mdywgZ3QtPmdndHQpOworCUdFTV9CVUdfT04odXBwZXJfMzJfYml0cyhvZmZzZXQpICYgMHhGRkZGMDAwMCk7CisJaW50ZWxfdW5jb3JlX3dyaXRlX2Z3KHVuY29yZSwgRE1BX0FERFJfMF9MT1csIGxvd2VyXzMyX2JpdHMob2Zmc2V0KSk7CisJaW50ZWxfdW5jb3JlX3dyaXRlX2Z3KHVuY29yZSwgRE1BX0FERFJfMF9ISUdILCB1cHBlcl8zMl9iaXRzKG9mZnNldCkpOworCisJLyogU2V0IHRoZSBETUEgZGVzdGluYXRpb24gKi8KKwlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLCBETUFfQUREUl8xX0xPVywgd29wY21fb2Zmc2V0KTsKKwlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLCBETUFfQUREUl8xX0hJR0gsIERNQV9BRERSRVNTX1NQQUNFX1dPUENNKTsKKworCS8qCisJICogU2V0IHRoZSB0cmFuc2ZlciBzaXplLiBUaGUgaGVhZGVyIHBsdXMgdUNvZGUgd2lsbCBiZSBjb3BpZWQgdG8gV09QQ00KKwkgKiB2aWEgRE1BLCBleGNsdWRpbmcgYW55IG90aGVyIGNvbXBvbmVudHMKKwkgKi8KKwlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLCBETUFfQ09QWV9TSVpFLAorCQkJICAgICAgc2l6ZW9mKHN0cnVjdCB1Y19jc3NfaGVhZGVyKSArIHVjX2Z3LT51Y29kZV9zaXplKTsKKworCS8qIFN0YXJ0IHRoZSBETUEgKi8KKwlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLCBETUFfQ1RSTCwKKwkJCSAgICAgIF9NQVNLRURfQklUX0VOQUJMRShkbWFfZmxhZ3MgfCBTVEFSVF9ETUEpKTsKKworCS8qIFdhaXQgZm9yIERNQSB0byBmaW5pc2ggKi8KKwlyZXQgPSBpbnRlbF93YWl0X2Zvcl9yZWdpc3Rlcl9mdyh1bmNvcmUsIERNQV9DVFJMLCBTVEFSVF9ETUEsIDAsIDEwMCk7CisJaWYgKHJldCkKKwkJZGV2X2VycihndC0+aTkxNS0+ZHJtLmRldiwgIkRNQSBmb3IgJXMgZncgZmFpbGVkLCBETUFfQ1RSTD0ldVxuIiwKKwkJCWludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksCisJCQlpbnRlbF91bmNvcmVfcmVhZF9mdyh1bmNvcmUsIERNQV9DVFJMKSk7CisKKwkvKiBEaXNhYmxlIHRoZSBiaXRzIG9uY2UgRE1BIGlzIG92ZXIgKi8KKwlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLCBETUFfQ1RSTCwgX01BU0tFRF9CSVRfRElTQUJMRShkbWFfZmxhZ3MpKTsKKworCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KHVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIGludGVsX3VjX2Z3X3VwbG9hZCAtIGxvYWQgdUMgZmlybXdhcmUgdXNpbmcgY3VzdG9tIGxvYWRlcgorICogQHVjX2Z3OiB1QyBmaXJtd2FyZQorICogQGd0OiB0aGUgaW50ZWxfZ3Qgc3RydWN0dXJlCisgKiBAd29wY21fb2Zmc2V0OiBkZXN0aW5hdGlvbiBvZmZzZXQgaW4gd29wY20KKyAqIEBkbWFfZmxhZ3M6IGZsYWdzIGZvciBmbGFncyBmb3IgZG1hIGN0cmwKKyAqCisgKiBMb2FkcyB1QyBmaXJtd2FyZSBhbmQgdXBkYXRlcyBpbnRlcm5hbCBmbGFncy4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2Vzcywgbm9uLXplcm8gb24gZmFpbHVyZS4KKyAqLworaW50IGludGVsX3VjX2Z3X3VwbG9hZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkgICAgICAgdTMyIHdvcGNtX29mZnNldCwgdTMyIGRtYV9mbGFncykKK3sKKwlpbnQgZXJyOworCisJLyogbWFrZSBzdXJlIHRoZSBzdGF0dXMgd2FzIGNsZWFyZWQgdGhlIGxhc3QgdGltZSB3ZSByZXNldCB0aGUgdWMgKi8KKwlHRU1fQlVHX09OKGludGVsX3VjX2Z3X2lzX2xvYWRlZCh1Y19mdykpOworCisJZXJyID0gaTkxNV9pbmplY3RfbG9hZF9lcnJvcihndC0+aTkxNSwgLUVOT0VYRUMpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlpZiAoIWludGVsX3VjX2Z3X2lzX2F2YWlsYWJsZSh1Y19mdykpCisJCXJldHVybiAtRU5PRVhFQzsKKworCS8qIENhbGwgY3VzdG9tIGxvYWRlciAqLworCWludGVsX3VjX2Z3X2dndHRfYmluZCh1Y19mdywgZ3QpOworCWVyciA9IHVjX2Z3X3hmZXIodWNfZncsIGd0LCB3b3BjbV9vZmZzZXQsIGRtYV9mbGFncyk7CisJaW50ZWxfdWNfZndfZ2d0dF91bmJpbmQodWNfZncsIGd0KTsKKwlpZiAoZXJyKQorCQlnb3RvIGZhaWw7CisKKwlpbnRlbF91Y19md19jaGFuZ2Vfc3RhdHVzKHVjX2Z3LCBJTlRFTF9VQ19GSVJNV0FSRV9UUkFOU0ZFUlJFRCk7CisJcmV0dXJuIDA7CisKK2ZhaWw6CisJaTkxNV9wcm9iZV9lcnJvcihndC0+aTkxNSwgIkZhaWxlZCB0byBsb2FkICVzIGZpcm13YXJlICVzICglZClcbiIsCisJCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgdWNfZnctPnBhdGgsCisJCQkgZXJyKTsKKwlpbnRlbF91Y19md19jaGFuZ2Vfc3RhdHVzKHVjX2Z3LCBJTlRFTF9VQ19GSVJNV0FSRV9GQUlMKTsKKwlyZXR1cm4gZXJyOworfQorCitpbnQgaW50ZWxfdWNfZndfaW5pdChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQoreworCWludCBlcnI7CisKKwkvKiB0aGlzIHNob3VsZCBoYXBwZW4gYmVmb3JlIHRoZSBsb2FkISAqLworCUdFTV9CVUdfT04oaW50ZWxfdWNfZndfaXNfbG9hZGVkKHVjX2Z3KSk7CisKKwlpZiAoIWludGVsX3VjX2Z3X2lzX2F2YWlsYWJsZSh1Y19mdykpCisJCXJldHVybiAtRU5PRVhFQzsKKworCWVyciA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXModWNfZnctPm9iaik7CisJaWYgKGVycikgeworCQlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBwaW4tcGFnZXMgZXJyPSVkXG4iLAorCQkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLCBlcnIpOworCQlpbnRlbF91Y19md19jaGFuZ2Vfc3RhdHVzKHVjX2Z3LCBJTlRFTF9VQ19GSVJNV0FSRV9GQUlMKTsKKwl9CisKKwlyZXR1cm4gZXJyOworfQorCit2b2lkIGludGVsX3VjX2Z3X2Zpbmkoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykKK3sKKwlpZiAoIWludGVsX3VjX2Z3X2lzX2F2YWlsYWJsZSh1Y19mdykpCisJCXJldHVybjsKKworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyh1Y19mdy0+b2JqKTsKK30KKworLyoqCisgKiBpbnRlbF91Y19md19jbGVhbnVwX2ZldGNoIC0gY2xlYW51cCB1QyBmaXJtd2FyZQorICogQHVjX2Z3OiB1QyBmaXJtd2FyZQorICoKKyAqIENsZWFucyB1cCB1QyBmaXJtd2FyZSBieSByZWxlYXNpbmcgdGhlIGZpcm13YXJlIEdFTSBvYmouCisgKi8KK3ZvaWQgaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQoreworCWlmICghaW50ZWxfdWNfZndfaXNfYXZhaWxhYmxlKHVjX2Z3KSkKKwkJcmV0dXJuOworCisJaTkxNV9nZW1fb2JqZWN0X3B1dChmZXRjaF9hbmRfemVybygmdWNfZnctPm9iaikpOworCisJaW50ZWxfdWNfZndfY2hhbmdlX3N0YXR1cyh1Y19mdywgSU5URUxfVUNfRklSTVdBUkVfU0VMRUNURUQpOworfQorCisvKioKKyAqIGludGVsX3VjX2Z3X2NvcHlfcnNhIC0gY29weSBmdyBSU0EgdG8gYnVmZmVyCisgKgorICogQHVjX2Z3OiB1QyBmaXJtd2FyZQorICogQGRzdDogZHN0IGJ1ZmZlcgorICogQG1heF9sZW46IG1heCBudW1iZXIgb2YgYnl0ZXMgdG8gY29weQorICoKKyAqIFJldHVybjogbnVtYmVyIG9mIGNvcGllZCBieXRlcy4KKyAqLworc2l6ZV90IGludGVsX3VjX2Z3X2NvcHlfcnNhKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIHZvaWQgKmRzdCwgdTMyIG1heF9sZW4pCit7CisJc3RydWN0IHNnX3RhYmxlICpwYWdlcyA9IHVjX2Z3LT5vYmotPm1tLnBhZ2VzOworCXUzMiBzaXplID0gbWluX3QodTMyLCB1Y19mdy0+cnNhX3NpemUsIG1heF9sZW4pOworCXUzMiBvZmZzZXQgPSBzaXplb2Yoc3RydWN0IHVjX2Nzc19oZWFkZXIpICsgdWNfZnctPnVjb2RlX3NpemU7CisKKwlHRU1fQlVHX09OKCFpbnRlbF91Y19md19pc19hdmFpbGFibGUodWNfZncpKTsKKworCXJldHVybiBzZ19wY29weV90b19idWZmZXIocGFnZXMtPnNnbCwgcGFnZXMtPm5lbnRzLCBkc3QsIHNpemUsIG9mZnNldCk7Cit9CisKKy8qKgorICogaW50ZWxfdWNfZndfZHVtcCAtIGR1bXAgaW5mb3JtYXRpb24gYWJvdXQgdUMgZmlybXdhcmUKKyAqIEB1Y19mdzogdUMgZmlybXdhcmUKKyAqIEBwOiB0aGUgJmRybV9wcmludGVyCisgKgorICogUHJldHR5IHByaW50ZXIgZm9yIHVDIGZpcm13YXJlLgorICovCit2b2lkIGludGVsX3VjX2Z3X2R1bXAoY29uc3Qgc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywgc3RydWN0IGRybV9wcmludGVyICpwKQoreworCWRybV9wcmludGYocCwgIiVzIGZpcm13YXJlOiAlc1xuIiwKKwkJICAgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgdWNfZnctPnBhdGgpOworCWRybV9wcmludGYocCwgIlx0c3RhdHVzOiAlc1xuIiwKKwkJICAgaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIodWNfZnctPnN0YXR1cykpOworCWRybV9wcmludGYocCwgIlx0dmVyc2lvbjogd2FudGVkICV1LiV1LCBmb3VuZCAldS4ldVxuIiwKKwkJICAgdWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkLAorCQkgICB1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCB1Y19mdy0+bWlub3JfdmVyX2ZvdW5kKTsKKwlkcm1fcHJpbnRmKHAsICJcdHVDb2RlOiAldSBieXRlc1xuIiwgdWNfZnctPnVjb2RlX3NpemUpOworCWRybV9wcmludGYocCwgIlx0UlNBOiAldSBieXRlc1xuIiwgdWNfZnctPnJzYV9zaXplKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhMGE1OTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5oCkBAIC0wLDAgKzEsMjQxIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX0lOVEVMX1VDX0ZXX0hfCisjZGVmaW5lIF9JTlRFTF9VQ19GV19IXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlICJpbnRlbF91Y19md19hYmkuaCIKKyNpbmNsdWRlICJpbnRlbF9kZXZpY2VfaW5mby5oIgorI2luY2x1ZGUgImk5MTVfZ2VtLmgiCisKK3N0cnVjdCBkcm1fcHJpbnRlcjsKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworc3RydWN0IGludGVsX2d0OworCisvKiBIb21lIG9mIEd1QywgSHVDIGFuZCBETUMgZmlybXdhcmVzICovCisjZGVmaW5lIElOVEVMX1VDX0ZJUk1XQVJFX1VSTCAiaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZmlybXdhcmUvbGludXgtZmlybXdhcmUuZ2l0L3RyZWUvaTkxNSIKKworLyoKKyAqICstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgIFBIQVNFICAgIHwgICAgICAgICAgIEZJUk1XQVJFIFNUQVRVUyBUUkFOU0lUSU9OUyAgICAgICAgICAgICB8CisgKiArPT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKKyAqIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgVU5JTklUSUFMSVpFRCAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLSstICAgICAgICAgICAgICAgLyAgIHwgICBcICAgICAgICAgICAgICAgICAgICAgICAgIC0rCisgKiB8ICAgICAgICAgICAgfCAgIERJU0FCTEVEIDwtLS8gICAgfCAgICBcLS0+IE5PVF9TVVBQT1JURUQgICAgICAgIHwKKyAqIHwgaW5pdF9lYXJseSB8ICAgICAgICAgICAgICAgICAgICBWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIFNFTEVDVEVEICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tKy0gICAgICAgICAgICAgICAvICAgfCAgIFwgICAgICAgICAgICAgICAgICAgICAgICAgLSsKKyAqIHwgICAgICAgICAgICB8ICAgIE1JU1NJTkcgPC0tLyAgICB8ICAgIFwtLT4gRVJST1IgICAgICAgICAgICAgICAgfAorICogfCAgIGZldGNoICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiB8ICAgICAgICAgICAgfCAgICAgICAgLy0tLS0tLT4gQVZBSUxBQkxFIDwtLS08LS0tLS0tLS0tLS1cICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0rLSAgICAgICBcICAgICAgICAgLyAgICBcICAgICAgICBcICAgICAgICAgICBcICAgICAtKworICogfCAgICAgICAgICAgIHwgICAgICAgICBGQUlMIDwtLTwgICAgICBcLS0+IFRSQU5TRkVSUkVEICAgICBcICAgICB8CisgKiB8ICAgdXBsb2FkICAgfCAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIC8gICBcICAgICAgICAgIC8gICAgIHwKKyAqIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIFwtLS0tLS0tLS0vICAgICBcLS0+IFJVTk5JTkcgICAgfAorICogKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKi8KKworZW51bSBpbnRlbF91Y19md19zdGF0dXMgeworCUlOVEVMX1VDX0ZJUk1XQVJFX05PVF9TVVBQT1JURUQgPSAtMSwgLyogbm8gdWMgSFcgKi8KKwlJTlRFTF9VQ19GSVJNV0FSRV9VTklOSVRJQUxJWkVEID0gMCwgLyogdXNlZCB0byBjYXRjaCBjaGVja3MgZG9uZSB0b28gZWFybHkgKi8KKwlJTlRFTF9VQ19GSVJNV0FSRV9ESVNBQkxFRCwgLyogZGlzYWJsZWQgKi8KKwlJTlRFTF9VQ19GSVJNV0FSRV9TRUxFQ1RFRCwgLyogc2VsZWN0ZWQgdGhlIGJsb2Igd2Ugd2FudCB0byBsb2FkICovCisJSU5URUxfVUNfRklSTVdBUkVfTUlTU0lORywgLyogYmxvYiBub3QgZm91bmQgb24gdGhlIHN5c3RlbSAqLworCUlOVEVMX1VDX0ZJUk1XQVJFX0VSUk9SLCAvKiBpbnZhbGlkIGZvcm1hdCBvciB2ZXJzaW9uICovCisJSU5URUxfVUNfRklSTVdBUkVfQVZBSUxBQkxFLCAvKiBibG9iIGZvdW5kIGFuZCBjb3BpZWQgaW4gbWVtICovCisJSU5URUxfVUNfRklSTVdBUkVfRkFJTCwgLyogZmFpbGVkIHRvIHhmZXIgb3IgaW5pdC9hdXRoIHRoZSBmdyAqLworCUlOVEVMX1VDX0ZJUk1XQVJFX1RSQU5TRkVSUkVELCAvKiBkbWEgeGZlciBkb25lICovCisJSU5URUxfVUNfRklSTVdBUkVfUlVOTklORyAvKiBpbml0L2F1dGggZG9uZSAqLworfTsKKworZW51bSBpbnRlbF91Y19md190eXBlIHsKKwlJTlRFTF9VQ19GV19UWVBFX0dVQyA9IDAsCisJSU5URUxfVUNfRldfVFlQRV9IVUMKK307CisjZGVmaW5lIElOVEVMX1VDX0ZXX05VTV9UWVBFUyAyCisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSBlbmNhcHN1bGF0ZXMgYWxsIHRoZSBkYXRhIG5lZWRlZCBkdXJpbmcgdGhlIHByb2Nlc3MKKyAqIG9mIGZldGNoaW5nLCBjYWNoaW5nLCBhbmQgbG9hZGluZyB0aGUgZmlybXdhcmUgaW1hZ2UgaW50byB0aGUgdUMuCisgKi8KK3N0cnVjdCBpbnRlbF91Y19mdyB7CisJZW51bSBpbnRlbF91Y19md190eXBlIHR5cGU7CisJdW5pb24geworCQljb25zdCBlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXM7CisJCWVudW0gaW50ZWxfdWNfZndfc3RhdHVzIF9fc3RhdHVzOyAvKiBubyBhY2NpZGVudGFsIG92ZXJ3cml0ZXMgKi8KKwl9OworCWNvbnN0IGNoYXIgKnBhdGg7CisJYm9vbCB1c2VyX292ZXJyaWRkZW47CisJc2l6ZV90IHNpemU7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKworCS8qCisJICogVGhlIGZpcm13YXJlIGJ1aWxkIHByb2Nlc3Mgd2lsbCBnZW5lcmF0ZSBhIHZlcnNpb24gaGVhZGVyIGZpbGUgd2l0aCBtYWpvciBhbmQKKwkgKiBtaW5vciB2ZXJzaW9uIGRlZmluZWQuIFRoZSB2ZXJzaW9ucyBhcmUgYnVpbHQgaW50byBDU1MgaGVhZGVyIG9mIGZpcm13YXJlLgorCSAqIGk5MTUga2VybmVsIGRyaXZlciBzZXQgdGhlIG1pbmltYWwgZmlybXdhcmUgdmVyc2lvbiByZXF1aXJlZCBwZXIgcGxhdGZvcm0uCisJICovCisJdTE2IG1ham9yX3Zlcl93YW50ZWQ7CisJdTE2IG1pbm9yX3Zlcl93YW50ZWQ7CisJdTE2IG1ham9yX3Zlcl9mb3VuZDsKKwl1MTYgbWlub3JfdmVyX2ZvdW5kOworCisJdTMyIHJzYV9zaXplOworCXUzMiB1Y29kZV9zaXplOworfTsKKworI2lmZGVmIENPTkZJR19EUk1fSTkxNV9ERUJVR19HVUMKK3ZvaWQgaW50ZWxfdWNfZndfY2hhbmdlX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LAorCQkJICAgICAgIGVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHN0YXR1cyk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGludGVsX3VjX2Z3X2NoYW5nZV9zdGF0dXMoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywKKwkJCQkJICAgICBlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpCit7CisJdWNfZnctPl9fc3RhdHVzID0gc3RhdHVzOworfQorI2VuZGlmCisKK3N0YXRpYyBpbmxpbmUKK2NvbnN0IGNoYXIgKmludGVsX3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHN0YXR1cykKK3sKKwlzd2l0Y2ggKHN0YXR1cykgeworCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfTk9UX1NVUFBPUlRFRDoKKwkJcmV0dXJuICJOL0EiOworCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfVU5JTklUSUFMSVpFRDoKKwkJcmV0dXJuICJVTklOSVRJQUxJWkVEIjsKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX0RJU0FCTEVEOgorCQlyZXR1cm4gIkRJU0FCTEVEIjsKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX1NFTEVDVEVEOgorCQlyZXR1cm4gIlNFTEVDVEVEIjsKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX01JU1NJTkc6CisJCXJldHVybiAiTUlTU0lORyI7CisJY2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9FUlJPUjoKKwkJcmV0dXJuICJFUlJPUiI7CisJY2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9BVkFJTEFCTEU6CisJCXJldHVybiAiQVZBSUxBQkxFIjsKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX0ZBSUw6CisJCXJldHVybiAiRkFJTCI7CisJY2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9UUkFOU0ZFUlJFRDoKKwkJcmV0dXJuICJUUkFOU0ZFUlJFRCI7CisJY2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9SVU5OSU5HOgorCQlyZXR1cm4gIlJVTk5JTkciOworCX0KKwlyZXR1cm4gIjxpbnZhbGlkPiI7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGludGVsX3VjX2Z3X3N0YXR1c190b19lcnJvcihlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpCit7CisJc3dpdGNoIChzdGF0dXMpIHsKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX05PVF9TVVBQT1JURUQ6CisJCXJldHVybiAtRU5PREVWOworCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfVU5JTklUSUFMSVpFRDoKKwkJcmV0dXJuIC1FQUNDRVM7CisJY2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9ESVNBQkxFRDoKKwkJcmV0dXJuIC1FUEVSTTsKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX01JU1NJTkc6CisJCXJldHVybiAtRU5PRU5UOworCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfRVJST1I6CisJCXJldHVybiAtRU5PRVhFQzsKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX0ZBSUw6CisJCXJldHVybiAtRUlPOworCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfU0VMRUNURUQ6CisJCXJldHVybiAtRVNUQUxFOworCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfQVZBSUxBQkxFOgorCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfVFJBTlNGRVJSRUQ6CisJY2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9SVU5OSU5HOgorCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqaW50ZWxfdWNfZndfdHlwZV9yZXByKGVudW0gaW50ZWxfdWNfZndfdHlwZSB0eXBlKQoreworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgSU5URUxfVUNfRldfVFlQRV9HVUM6CisJCXJldHVybiAiR3VDIjsKKwljYXNlIElOVEVMX1VDX0ZXX1RZUEVfSFVDOgorCQlyZXR1cm4gIkh1QyI7CisJfQorCXJldHVybiAidUMiOworfQorCitzdGF0aWMgaW5saW5lIGVudW0gaW50ZWxfdWNfZndfc3RhdHVzCitfX2ludGVsX3VjX2Z3X3N0YXR1cyhzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQoreworCS8qIHNob3VsZG4ndCBjYWxsIHRoaXMgYmVmb3JlIGNoZWNraW5nIGh3L2Jsb2IgYXZhaWxhYmlsaXR5ICovCisJR0VNX0JVR19PTih1Y19mdy0+c3RhdHVzID09IElOVEVMX1VDX0ZJUk1XQVJFX1VOSU5JVElBTElaRUQpOworCXJldHVybiB1Y19mdy0+c3RhdHVzOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfZndfaXNfc3VwcG9ydGVkKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCit7CisJcmV0dXJuIF9faW50ZWxfdWNfZndfc3RhdHVzKHVjX2Z3KSAhPSBJTlRFTF9VQ19GSVJNV0FSRV9OT1RfU1VQUE9SVEVEOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfZndfaXNfZW5hYmxlZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQoreworCXJldHVybiBfX2ludGVsX3VjX2Z3X3N0YXR1cyh1Y19mdykgPiBJTlRFTF9VQ19GSVJNV0FSRV9ESVNBQkxFRDsKK30KKworc3RhdGljIGlubGluZSBib29sIGludGVsX3VjX2Z3X2lzX2F2YWlsYWJsZShzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQoreworCXJldHVybiBfX2ludGVsX3VjX2Z3X3N0YXR1cyh1Y19mdykgPj0gSU5URUxfVUNfRklSTVdBUkVfQVZBSUxBQkxFOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfZndfaXNfbG9hZGVkKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCit7CisJcmV0dXJuIF9faW50ZWxfdWNfZndfc3RhdHVzKHVjX2Z3KSA+PSBJTlRFTF9VQ19GSVJNV0FSRV9UUkFOU0ZFUlJFRDsKK30KKworc3RhdGljIGlubGluZSBib29sIGludGVsX3VjX2Z3X2lzX3J1bm5pbmcoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykKK3sKKwlyZXR1cm4gX19pbnRlbF91Y19md19zdGF0dXModWNfZncpID09IElOVEVMX1VDX0ZJUk1XQVJFX1JVTk5JTkc7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF91Y19md19pc19vdmVycmlkZGVuKGNvbnN0IHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCit7CisJcmV0dXJuIHVjX2Z3LT51c2VyX292ZXJyaWRkZW47Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF91Y19md19zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQoreworCWlmIChpbnRlbF91Y19md19pc19sb2FkZWQodWNfZncpKQorCQlpbnRlbF91Y19md19jaGFuZ2Vfc3RhdHVzKHVjX2Z3LCBJTlRFTF9VQ19GSVJNV0FSRV9BVkFJTEFCTEUpOworfQorCitzdGF0aWMgaW5saW5lIHUzMiBfX2ludGVsX3VjX2Z3X2dldF91cGxvYWRfc2l6ZShzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQoreworCXJldHVybiBzaXplb2Yoc3RydWN0IHVjX2Nzc19oZWFkZXIpICsgdWNfZnctPnVjb2RlX3NpemU7Cit9CisKKy8qKgorICogaW50ZWxfdWNfZndfZ2V0X3VwbG9hZF9zaXplKCkgLSBHZXQgc2l6ZSBvZiBmaXJtd2FyZSBuZWVkZWQgdG8gYmUgdXBsb2FkZWQuCisgKiBAdWNfZnc6IHVDIGZpcm13YXJlLgorICoKKyAqIEdldCB0aGUgc2l6ZSBvZiB0aGUgZmlybXdhcmUgYW5kIGhlYWRlciB0aGF0IHdpbGwgYmUgdXBsb2FkZWQgdG8gV09QQ00uCisgKgorICogUmV0dXJuOiBVcGxvYWQgZmlybXdhcmUgc2l6ZSwgb3IgemVybyBvbiBmaXJtd2FyZSBmZXRjaCBmYWlsdXJlLgorICovCitzdGF0aWMgaW5saW5lIHUzMiBpbnRlbF91Y19md19nZXRfdXBsb2FkX3NpemUoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykKK3sKKwlpZiAoIWludGVsX3VjX2Z3X2lzX2F2YWlsYWJsZSh1Y19mdykpCisJCXJldHVybiAwOworCisJcmV0dXJuIF9faW50ZWxfdWNfZndfZ2V0X3VwbG9hZF9zaXplKHVjX2Z3KTsKK30KKwordm9pZCBpbnRlbF91Y19md19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsCisJCQkgICAgZW51bSBpbnRlbF91Y19md190eXBlIHR5cGUsIGJvb2wgc3VwcG9ydGVkLAorCQkJICAgIGVudW0gaW50ZWxfcGxhdGZvcm0gcGxhdGZvcm0sIHU4IHJldik7CitpbnQgaW50ZWxfdWNfZndfZmV0Y2goc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwordm9pZCBpbnRlbF91Y19md19jbGVhbnVwX2ZldGNoKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpOworaW50IGludGVsX3VjX2Z3X3VwbG9hZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkgICAgICAgdTMyIHdvcGNtX29mZnNldCwgdTMyIGRtYV9mbGFncyk7CitpbnQgaW50ZWxfdWNfZndfaW5pdChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsKK3ZvaWQgaW50ZWxfdWNfZndfZmluaShzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsKK3NpemVfdCBpbnRlbF91Y19md19jb3B5X3JzYShzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LCB2b2lkICpkc3QsIHUzMiBtYXhfbGVuKTsKK3ZvaWQgaW50ZWxfdWNfZndfZHVtcChjb25zdCBzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3X2FiaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZndfYWJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU1OGU4YQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3X2FiaS5oCkBAIC0wLDAgKzEsODIgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX0lOVEVMX1VDX0ZXX0FCSV9ICisjZGVmaW5lIF9JTlRFTF9VQ19GV19BQklfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9idWlsZF9idWcuaD4KKworLyoqCisgKiBET0M6IEZpcm13YXJlIExheW91dAorICoKKyAqIFRoZSBHdUMvSHVDIGZpcm13YXJlIGxheW91dCBsb29rcyBsaWtlIHRoaXM6OgorICoKKyAqICAgICAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCisgKiAgICAgIHwgIEZpcm13YXJlIGJsb2IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICArPT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PSs9PT09PT09PT09PT0rPT09PT09PT09PT09Kz09PT09PT09PT09PSsKKyAqICAgICAgfCAgQ1NTIGhlYWRlciAgIHwgICAgIHVDb2RlICAgICB8ICBSU0Ega2V5ICAgfCAgbW9kdWx1cyAgIHwgIGV4cG9uZW50ICB8CisgKiAgICAgICs9PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09Kz09PT09PT09PT09PSs9PT09PT09PT09PT0rPT09PT09PT09PT09KworICogICAgICAgPC1oZWFkZXIgc2l6ZS0+ICAgICAgICAgICAgICAgICA8LS0taGVhZGVyIHNpemUgY29udGludWVkIC0tLS0tLS0tLS0tPgorICogICAgICAgPC0tLSBzaXplIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LWtleSBzaXplLT4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwtbW9kIHNpemUtPgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwtZXhwIHNpemUtPgorICoKKyAqIFRoZSBmaXJtd2FyZSBtYXkgb3IgbWF5IG5vdCBoYXZlIG1vZHVsdXMga2V5IGFuZCBleHBvbmVudCBkYXRhLiBUaGUgaGVhZGVyLAorICogdUNvZGUgYW5kIFJTQSBzaWduYXR1cmUgYXJlIG11c3QtaGF2ZSBjb21wb25lbnRzIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IGRyaXZlci4KKyAqIExlbmd0aCBvZiBlYWNoIGNvbXBvbmVudHMsIHdoaWNoIGlzIGFsbCBpbiBkd29yZHMsIGNhbiBiZSBmb3VuZCBpbiBoZWFkZXIuCisgKiBJbiB0aGUgY2FzZSB0aGF0IG1vZHVsdXMgYW5kIGV4cG9uZW50IGFyZSBub3QgcHJlc2VudCBpbiBmdywgYS5rLmEgdHJ1bmNhdGVkCisgKiBpbWFnZSwgdGhlIGxlbmd0aCB2YWx1ZSBzdGlsbCBhcHBlYXJzIGluIGhlYWRlci4KKyAqCisgKiBEcml2ZXIgd2lsbCBkbyBzb21lIGJhc2ljIGZ3IHNpemUgdmFsaWRhdGlvbiBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIHJ1bGVzOgorICoKKyAqIDEuIEhlYWRlciwgdUNvZGUgYW5kIFJTQSBhcmUgbXVzdC1oYXZlIGNvbXBvbmVudHMuCisgKiAyLiBBbGwgZmlybXdhcmUgY29tcG9uZW50cywgaWYgdGhleSBwcmVzZW50LCBhcmUgaW4gdGhlIHNlcXVlbmNlIGlsbHVzdHJhdGVkCisgKiAgICBpbiB0aGUgbGF5b3V0IHRhYmxlIGFib3ZlLgorICogMy4gTGVuZ3RoIGluZm8gb2YgZWFjaCBjb21wb25lbnQgY2FuIGJlIGZvdW5kIGluIGhlYWRlciwgaW4gZHdvcmRzLgorICogNC4gTW9kdWx1cyBhbmQgZXhwb25lbnQga2V5IGFyZSBub3QgcmVxdWlyZWQgYnkgZHJpdmVyLiBUaGV5IG1heSBub3QgYXBwZWFyCisgKiAgICBpbiBmdy4gU28gZHJpdmVyIHdpbGwgbG9hZCBhIHRydW5jYXRlZCBmaXJtd2FyZSBpbiB0aGlzIGNhc2UuCisgKgorICogVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIEd1QyBhbmQgSHVDIGZpcm13YXJlcyBpcyBob3cgdGhlIHZlcnNpb24KKyAqIGluZm9ybWF0aW9uIGlzIHNhdmVkLgorICovCisKK3N0cnVjdCB1Y19jc3NfaGVhZGVyIHsKKwl1MzIgbW9kdWxlX3R5cGU7CisJLyoKKwkgKiBoZWFkZXJfc2l6ZSBpbmNsdWRlcyBhbGwgbm9uLXVDb2RlIGJpdHMsIGluY2x1ZGluZyBjc3NfaGVhZGVyLCByc2EKKwkgKiBrZXksIG1vZHVsdXMga2V5IGFuZCBleHBvbmVudCBkYXRhLgorCSAqLworCXUzMiBoZWFkZXJfc2l6ZV9kdzsKKwl1MzIgaGVhZGVyX3ZlcnNpb247CisJdTMyIG1vZHVsZV9pZDsKKwl1MzIgbW9kdWxlX3ZlbmRvcjsKKwl1MzIgZGF0ZTsKKyNkZWZpbmUgQ1NTX0RBVEVfREFZCQkJKDB4RkYgPDwgMCkKKyNkZWZpbmUgQ1NTX0RBVEVfTU9OVEgJCQkoMHhGRiA8PCA4KQorI2RlZmluZSBDU1NfREFURV9ZRUFSCQkJKDB4RkZGRiA8PCAxNikKKwl1MzIgc2l6ZV9kdzsgLyogdUNvZGUgcGx1cyBoZWFkZXJfc2l6ZV9kdyAqLworCXUzMiBrZXlfc2l6ZV9kdzsKKwl1MzIgbW9kdWx1c19zaXplX2R3OworCXUzMiBleHBvbmVudF9zaXplX2R3OworCXUzMiB0aW1lOworI2RlZmluZSBDU1NfVElNRV9IT1VSCQkJKDB4RkYgPDwgMCkKKyNkZWZpbmUgQ1NTX0RBVEVfTUlOCQkJKDB4RkYgPDwgOCkKKyNkZWZpbmUgQ1NTX0RBVEVfU0VDCQkJKDB4RkZGRiA8PCAxNikKKwljaGFyIHVzZXJuYW1lWzhdOworCWNoYXIgYnVpbGRudW1iZXJbMTJdOworCXUzMiBzd192ZXJzaW9uOworI2RlZmluZSBDU1NfU1dfVkVSU0lPTl9HVUNfTUFKT1IJKDB4RkYgPDwgMTYpCisjZGVmaW5lIENTU19TV19WRVJTSU9OX0dVQ19NSU5PUgkoMHhGRiA8PCA4KQorI2RlZmluZSBDU1NfU1dfVkVSU0lPTl9HVUNfUEFUQ0gJKDB4RkYgPDwgMCkKKyNkZWZpbmUgQ1NTX1NXX1ZFUlNJT05fSFVDX01BSk9SCSgweEZGRkYgPDwgMTYpCisjZGVmaW5lIENTU19TV19WRVJTSU9OX0hVQ19NSU5PUgkoMHhGRkZGIDw8IDApCisJdTMyIHJlc2VydmVkWzE0XTsKKwl1MzIgaGVhZGVyX2luZm87Cit9IF9fcGFja2VkOworc3RhdGljX2Fzc2VydChzaXplb2Yoc3RydWN0IHVjX2Nzc19oZWFkZXIpID09IDEyOCk7CisKKyNlbmRpZiAvKiBfSU5URUxfVUNfRldfQUJJX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL3NlbGZ0ZXN0X2d1Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvc2VsZnRlc3RfZ3VjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJhMGVhZgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL3NlbGZ0ZXN0X2d1Yy5jCkBAIC0wLDAgKzEsMzE3IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTcgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9wbS5oIgorCisvKiBtYXggZG9vcmJlbGwgbnVtYmVyICsgbmVnYXRpdmUgdGVzdCBmb3IgZWFjaCBjbGllbnQgdHlwZSAqLworI2RlZmluZSBBVFRFTVBUUyAoR1VDX05VTV9ET09SQkVMTFMgKyBHVUNfQ0xJRU5UX1BSSU9SSVRZX05VTSkKKworc3RhdGljIHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnRzW0FUVEVNUFRTXTsKKworc3RhdGljIGJvb2wgYXZhaWxhYmxlX2RicyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHUzMiBwcmlvcml0eSkKK3sKKwl1bnNpZ25lZCBsb25nIG9mZnNldDsKKwl1bnNpZ25lZCBsb25nIGVuZDsKKwl1MTYgaWQ7CisKKwkvKiBmaXJzdCBoYWxmIGlzIHVzZWQgZm9yIG5vcm1hbCBwcmlvcml0eSwgc2Vjb25kIGhhbGYgZm9yIGhpZ2ggKi8KKwlvZmZzZXQgPSAwOworCWVuZCA9IEdVQ19OVU1fRE9PUkJFTExTIC8gMjsKKwlpZiAocHJpb3JpdHkgPD0gR1VDX0NMSUVOVF9QUklPUklUWV9ISUdIKSB7CisJCW9mZnNldCA9IGVuZDsKKwkJZW5kICs9IG9mZnNldDsKKwl9CisKKwlpZCA9IGZpbmRfbmV4dF96ZXJvX2JpdChndWMtPmRvb3JiZWxsX2JpdG1hcCwgZW5kLCBvZmZzZXQpOworCWlmIChpZCA8IGVuZCkKKwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBpbnQgY2hlY2tfYWxsX2Rvb3JiZWxscyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJdTE2IGRiX2lkOworCisJcHJfaW5mb19vbmNlKCJNYXggbnVtYmVyIG9mIGRvb3JiZWxsczogJWQiLCBHVUNfTlVNX0RPT1JCRUxMUyk7CisJZm9yIChkYl9pZCA9IDA7IGRiX2lkIDwgR1VDX05VTV9ET09SQkVMTFM7ICsrZGJfaWQpIHsKKwkJaWYgKCFkb29yYmVsbF9vayhndWMsIGRiX2lkKSkgeworCQkJcHJfZXJyKCJkb29yYmVsbCAlZCwgbm90IG9rXG4iLCBkYl9pZCk7CisJCQlyZXR1cm4gLUVJTzsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJpbmdfZG9vcmJlbGxfbm9wKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKmRlc2MgPSBfX2dldF9wcm9jZXNzX2Rlc2MoY2xpZW50KTsKKwlpbnQgZXJyOworCisJY2xpZW50LT51c2Vfbm9wX3dxaSA9IHRydWU7CisKKwlzcGluX2xvY2tfaXJxKCZjbGllbnQtPndxX2xvY2spOworCisJZ3VjX3dxX2l0ZW1fYXBwZW5kKGNsaWVudCwgMCwgMCwgMCwgMCk7CisJZ3VjX3JpbmdfZG9vcmJlbGwoY2xpZW50KTsKKworCXNwaW5fdW5sb2NrX2lycSgmY2xpZW50LT53cV9sb2NrKTsKKworCWNsaWVudC0+dXNlX25vcF93cWkgPSBmYWxzZTsKKworCS8qIGlmIHRoZXJlIGFyZSBubyBpc3N1ZXMgR3VDIHdpbGwgdXBkYXRlIHRoZSBXUSBoZWFkIGFuZCBrZWVwIHRoZQorCSAqIFdRIGluIGFjdGl2ZSBzdGF0dXMKKwkgKi8KKwllcnIgPSB3YWl0X2ZvcihSRUFEX09OQ0UoZGVzYy0+aGVhZCkgPT0gUkVBRF9PTkNFKGRlc2MtPnRhaWwpLCAxMCk7CisJaWYgKGVycikgeworCQlwcl9lcnIoImRvb3JiZWxsICV1IHJpbmcgZmFpbGVkIVxuIiwgY2xpZW50LT5kb29yYmVsbF9pZCk7CisJCXJldHVybiAtRUlPOworCX0KKworCWlmIChkZXNjLT53cV9zdGF0dXMgIT0gV1FfU1RBVFVTX0FDVElWRSkgeworCQlwcl9lcnIoImRvb3JiZWxsICV1IHJpbmcgcHV0IFdRIGluIGJhZCBzdGF0ZSAoJXUpIVxuIiwKKwkJICAgICAgIGNsaWVudC0+ZG9vcmJlbGxfaWQsIGRlc2MtPndxX3N0YXR1cyk7CisJCXJldHVybiAtRUlPOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogQmFzaWMgY2xpZW50IHNhbml0eSBjaGVjaywgaGFuZHkgdG8gdmFsaWRhdGUgY3JlYXRlX2NsaWVudHMuCisgKi8KK3N0YXRpYyBpbnQgdmFsaWRhdGVfY2xpZW50KHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQsIGludCBjbGllbnRfcHJpb3JpdHkpCit7CisJaWYgKGNsaWVudC0+cHJpb3JpdHkgIT0gY2xpZW50X3ByaW9yaXR5IHx8CisJICAgIGNsaWVudC0+ZG9vcmJlbGxfaWQgPT0gR1VDX0RPT1JCRUxMX0lOVkFMSUQpCisJCXJldHVybiAtRUlOVkFMOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBib29sIGNsaWVudF9kb29yYmVsbF9pbl9zeW5jKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCit7CisJcmV0dXJuICFjbGllbnQgfHwgZG9vcmJlbGxfb2soY2xpZW50LT5ndWMsIGNsaWVudC0+ZG9vcmJlbGxfaWQpOworfQorCisvKgorICogQ2hlY2sgdGhhdCB3ZSdyZSBhYmxlIHRvIHN5bmNocm9uaXplIGd1Y19jbGllbnRzIHdpdGggdGhlaXIgZG9vcmJlbGxzCisgKgorICogV2UncmUgY3JlYXRpbmcgY2xpZW50cyBhbmQgcmVzZXJ2aW5nIGRvb3JiZWxscyBvbmNlLCBhdCBtb2R1bGUgbG9hZC4gRHVyaW5nCisgKiBtb2R1bGUgbGlmZXRpbWUsIEd1QywgZG9vcmJlbGwgSFcsIGFuZCBpOTE1IHN0YXRlIG1heSBnbyBvdXQgb2Ygc3luYyBkdWUgdG8KKyAqIEd1QyBiZWluZyByZXNldC4gSW4gb3RoZXIgd29yZHMgLSBHdUMgY2xpZW50cyBhcmUgc3RpbGwgYXJvdW5kLCBidXQgdGhlCisgKiBzdGF0dXMgb2YgdGhlaXIgZG9vcmJlbGxzIG1heSBiZSBpbmNvcnJlY3QuIFRoaXMgaXMgdGhlIHJlYXNvbiBiZWhpbmQKKyAqIHZhbGlkYXRpbmcgdGhhdCB0aGUgZG9vcmJlbGxzIHN0YXR1cyBleHBlY3RlZCBieSB0aGUgZHJpdmVyIG1hdGNoZXMgd2hhdCB0aGUKKyAqIEd1Qy9IVyBoYXZlLgorICovCitzdGF0aWMgaW50IGlndF9ndWNfY2xpZW50cyh2b2lkICphcmdzKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGFyZ3M7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjOworCWludCBlcnIgPSAwOworCisJR0VNX0JVR19PTighSEFTX0dUX1VDKGRldl9wcml2KSk7CisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOworCisJZ3VjID0gJmRldl9wcml2LT5ndC51Yy5ndWM7CisJaWYgKCFndWMpIHsKKwkJcHJfZXJyKCJObyBndWMgb2JqZWN0IVxuIik7CisJCWVyciA9IC1FSU5WQUw7CisJCWdvdG8gdW5sb2NrOworCX0KKworCWVyciA9IGNoZWNrX2FsbF9kb29yYmVsbHMoZ3VjKTsKKwlpZiAoZXJyKQorCQlnb3RvIHVubG9jazsKKworCS8qCisJICogR2V0IHJpZCBvZiBjbGllbnRzIGNyZWF0ZWQgZHVyaW5nIGRyaXZlciBsb2FkIGJlY2F1c2UgdGhlIHRlc3Qgd2lsbAorCSAqIHJlY3JlYXRlIHRoZW0uCisJICovCisJZ3VjX2NsaWVudHNfZGlzYWJsZShndWMpOworCWd1Y19jbGllbnRzX2Rlc3Ryb3koZ3VjKTsKKwlpZiAoZ3VjLT5leGVjYnVmX2NsaWVudCkgeworCQlwcl9lcnIoImd1Y19jbGllbnRzX2Rlc3Ryb3kgbGllZCFcbiIpOworCQllcnIgPSAtRUlOVkFMOworCQlnb3RvIHVubG9jazsKKwl9CisKKwllcnIgPSBndWNfY2xpZW50c19jcmVhdGUoZ3VjKTsKKwlpZiAoZXJyKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGNyZWF0ZSBjbGllbnRzXG4iKTsKKwkJZ290byB1bmxvY2s7CisJfQorCUdFTV9CVUdfT04oIWd1Yy0+ZXhlY2J1Zl9jbGllbnQpOworCisJZXJyID0gdmFsaWRhdGVfY2xpZW50KGd1Yy0+ZXhlY2J1Zl9jbGllbnQsCisJCQkgICAgICBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9OT1JNQUwpOworCWlmIChlcnIpIHsKKwkJcHJfZXJyKCJleGVjYnVnIGNsaWVudCB2YWxpZGF0aW9uIGZhaWxlZFxuIik7CisJCWdvdG8gb3V0OworCX0KKworCS8qIHRoZSBjbGllbnQgc2hvdWxkIG5vdyBoYXZlIHJlc2VydmVkIGEgZG9vcmJlbGwgKi8KKwlpZiAoIWhhc19kb29yYmVsbChndWMtPmV4ZWNidWZfY2xpZW50KSkgeworCQlwcl9lcnIoImd1Y19jbGllbnRzX2NyZWF0ZSBkaWRuJ3QgcmVzZXJ2ZSBkb29yYmVsbHNcbiIpOworCQllcnIgPSAtRUlOVkFMOworCQlnb3RvIG91dDsKKwl9CisKKwkvKiBOb3cgZW5hYmxlIHRoZSBjbGllbnRzICovCisJZ3VjX2NsaWVudHNfZW5hYmxlKGd1Yyk7CisKKwkvKiBlYWNoIGNsaWVudCBzaG91bGQgbm93IGhhdmUgcmVjZWl2ZWQgYSBkb29yYmVsbCAqLworCWlmICghY2xpZW50X2Rvb3JiZWxsX2luX3N5bmMoZ3VjLT5leGVjYnVmX2NsaWVudCkpIHsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZG9vcmJlbGxzXG4iKTsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7CisJfQorCisJLyoKKwkgKiBCYXNpYyB0ZXN0IC0gYW4gYXR0ZW1wdCB0byByZWFsbG9jYXRlIGEgdmFsaWQgZG9vcmJlbGwgdG8gdGhlCisJICogY2xpZW50IGl0IGlzIGN1cnJlbnRseSBhc3NpZ25lZCBzaG91bGQgbm90IGNhdXNlIGEgZmFpbHVyZS4KKwkgKi8KKwllcnIgPSBjcmVhdGVfZG9vcmJlbGwoZ3VjLT5leGVjYnVmX2NsaWVudCk7CisKK291dDoKKwkvKgorCSAqIExlYXZlIGNsZWFuIHN0YXRlIGZvciBvdGhlciB0ZXN0LCBwbHVzIHRoZSBkcml2ZXIgYWx3YXlzIGRlc3Ryb3kgdGhlCisJICogY2xpZW50cyBkdXJpbmcgdW5sb2FkLgorCSAqLworCWd1Y19jbGllbnRzX2Rpc2FibGUoZ3VjKTsKKwlndWNfY2xpZW50c19kZXN0cm95KGd1Yyk7CisJZ3VjX2NsaWVudHNfY3JlYXRlKGd1Yyk7CisJZ3VjX2NsaWVudHNfZW5hYmxlKGd1Yyk7Cit1bmxvY2s6CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKKwlyZXR1cm4gZXJyOworfQorCisvKgorICogQ3JlYXRlIGFzIG1hbnkgY2xpZW50cyBhcyBudW1iZXIgb2YgZG9vcmJlbGxzLiBOb3RlIHRoYXQgdGhlcmUncyBhbHJlYWR5CisgKiBjbGllbnQocykvZG9vcmJlbGwocykgY3JlYXRlZCBkdXJpbmcgZHJpdmVyIGxvYWQsIGJ1dCB0aGlzIHRlc3QgY3JlYXRlcworICogaXRzIG93biBhbmQgZG8gbm90IGludGVyYWN0IHdpdGggdGhlIGV4aXN0aW5nIG9uZXMuCisgKi8KK3N0YXRpYyBpbnQgaWd0X2d1Y19kb29yYmVsbHModm9pZCAqYXJnKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGFyZzsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWM7CisJaW50IGksIGVyciA9IDA7CisJdTE2IGRiX2lkOworCisJR0VNX0JVR19PTighSEFTX0dUX1VDKGRldl9wcml2KSk7CisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOworCisJZ3VjID0gJmRldl9wcml2LT5ndC51Yy5ndWM7CisJaWYgKCFndWMpIHsKKwkJcHJfZXJyKCJObyBndWMgb2JqZWN0IVxuIik7CisJCWVyciA9IC1FSU5WQUw7CisJCWdvdG8gdW5sb2NrOworCX0KKworCWVyciA9IGNoZWNrX2FsbF9kb29yYmVsbHMoZ3VjKTsKKwlpZiAoZXJyKQorCQlnb3RvIHVubG9jazsKKworCWZvciAoaSA9IDA7IGkgPCBBVFRFTVBUUzsgaSsrKSB7CisJCWNsaWVudHNbaV0gPSBndWNfY2xpZW50X2FsbG9jKGd1YywgaSAlIEdVQ19DTElFTlRfUFJJT1JJVFlfTlVNKTsKKworCQlpZiAoIWNsaWVudHNbaV0pIHsKKwkJCXByX2VycigiWyVkXSBObyBndWMgY2xpZW50XG4iLCBpKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWlmIChJU19FUlIoY2xpZW50c1tpXSkpIHsKKwkJCWlmIChQVFJfRVJSKGNsaWVudHNbaV0pICE9IC1FTk9TUEMpIHsKKwkJCQlwcl9lcnIoIlslZF0gdW5leHBlY3RlZCBlcnJvclxuIiwgaSk7CisJCQkJZXJyID0gUFRSX0VSUihjbGllbnRzW2ldKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJaWYgKGF2YWlsYWJsZV9kYnMoZ3VjLCBpICUgR1VDX0NMSUVOVF9QUklPUklUWV9OVU0pKSB7CisJCQkJcHJfZXJyKCJbJWRdIG5vbi1kYiByZWxhdGVkIGFsbG9jIGZhaWxcbiIsIGkpOworCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJZ290byBvdXQ7CisJCQl9CisKKwkJCS8qIGV4cGVjdGVkLCByYW4gb3V0IG9mIGRicyBmb3IgdGhpcyBjbGllbnQgdHlwZSAqLworCQkJY29udGludWU7CisJCX0KKworCQkvKgorCQkgKiBUaGUgY2hlY2sgYmVsb3cgaXMgb25seSB2YWxpZCBiZWNhdXNlIHdlIGtlZXAgYSBkb29yYmVsbAorCQkgKiBhc3NpZ25lZCBkdXJpbmcgdGhlIHdob2xlIGxpZmUgb2YgdGhlIGNsaWVudC4KKwkJICovCisJCWlmIChjbGllbnRzW2ldLT5zdGFnZV9pZCA+PSBHVUNfTlVNX0RPT1JCRUxMUykgeworCQkJcHJfZXJyKCJbJWRdIG1vcmUgY2xpZW50cyB0aGFuIGRvb3JiZWxscyAoJWQgPj0gJWQpXG4iLAorCQkJICAgICAgIGksIGNsaWVudHNbaV0tPnN0YWdlX2lkLCBHVUNfTlVNX0RPT1JCRUxMUyk7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBvdXQ7CisJCX0KKworCQllcnIgPSB2YWxpZGF0ZV9jbGllbnQoY2xpZW50c1tpXSwgaSAlIEdVQ19DTElFTlRfUFJJT1JJVFlfTlVNKTsKKwkJaWYgKGVycikgeworCQkJcHJfZXJyKCJbJWRdIGNsaWVudF9hbGxvYyBzYW5pdHkgY2hlY2sgZmFpbGVkIVxuIiwgaSk7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBvdXQ7CisJCX0KKworCQlkYl9pZCA9IGNsaWVudHNbaV0tPmRvb3JiZWxsX2lkOworCisJCWVyciA9IF9fZ3VjX2NsaWVudF9lbmFibGUoY2xpZW50c1tpXSk7CisJCWlmIChlcnIpIHsKKwkJCXByX2VycigiWyVkXSBGYWlsZWQgdG8gY3JlYXRlIGEgZG9vcmJlbGxcbiIsIGkpOworCQkJZ290byBvdXQ7CisJCX0KKworCQkvKiBkb29yYmVsbCBpZCBzaG91bGRuJ3QgY2hhbmdlLCB3ZSBhcmUgaG9sZGluZyB0aGUgbXV0ZXggKi8KKwkJaWYgKGRiX2lkICE9IGNsaWVudHNbaV0tPmRvb3JiZWxsX2lkKSB7CisJCQlwcl9lcnIoIlslZF0gZG9vcmJlbGwgaWQgY2hhbmdlZCAoJWQgIT0gJWQpXG4iLAorCQkJICAgICAgIGksIGRiX2lkLCBjbGllbnRzW2ldLT5kb29yYmVsbF9pZCk7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBvdXQ7CisJCX0KKworCQllcnIgPSBjaGVja19hbGxfZG9vcmJlbGxzKGd1Yyk7CisJCWlmIChlcnIpCisJCQlnb3RvIG91dDsKKworCQllcnIgPSByaW5nX2Rvb3JiZWxsX25vcChjbGllbnRzW2ldKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0OworCX0KKworb3V0OgorCWZvciAoaSA9IDA7IGkgPCBBVFRFTVBUUzsgaSsrKQorCQlpZiAoIUlTX0VSUl9PUl9OVUxMKGNsaWVudHNbaV0pKSB7CisJCQlfX2d1Y19jbGllbnRfZGlzYWJsZShjbGllbnRzW2ldKTsKKwkJCWd1Y19jbGllbnRfZnJlZShjbGllbnRzW2ldKTsKKwkJfQordW5sb2NrOgorCWludGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZik7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CisJcmV0dXJuIGVycjsKK30KKworaW50IGludGVsX2d1Y19saXZlX3NlbGZ0ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0geworCQlTVUJURVNUKGlndF9ndWNfY2xpZW50cyksCisJCVNVQlRFU1QoaWd0X2d1Y19kb29yYmVsbHMpLAorCX07CisKKwlpZiAoIVVTRVNfR1VDX1NVQk1JU1NJT04oZGV2X3ByaXYpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBpOTE1X3N1YnRlc3RzKHRlc3RzLCBkZXZfcHJpdik7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvYXBlcnR1cmVfZ20uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9hcGVydHVyZV9nbS5jCmluZGV4IGMzZDE5ZDguLjVmZjI0MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9hcGVydHVyZV9nbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9hcGVydHVyZV9nbS5jCkBAIC0xNzIsMTQgKzE3MiwxNCBAQCBzdGF0aWMgdm9pZCBmcmVlX3ZncHVfZmVuY2Uoc3RydWN0IGludGVsX3ZncHUgKnZncHUpCiAKIAlpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCi0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X2xvY2soJmRldl9wcml2LT5nZ3R0LnZtLm11dGV4KTsKIAlfY2xlYXJfdmdwdV9mZW5jZSh2Z3B1KTsKIAlmb3IgKGkgPSAwOyBpIDwgdmdwdV9mZW5jZV9zeih2Z3B1KTsgaSsrKSB7CiAJCXJlZyA9IHZncHUtPmZlbmNlLnJlZ3NbaV07CiAJCWk5MTVfdW5yZXNlcnZlX2ZlbmNlKHJlZyk7CiAJCXZncHUtPmZlbmNlLnJlZ3NbaV0gPSBOVUxMOwogCX0KLQltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5nZ3R0LnZtLm11dGV4KTsKIAogCWludGVsX3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogfQpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBpbnQgYWxsb2NfdmdwdV9mZW5jZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAlpbnRlbF9ydW50aW1lX3BtX2dldChycG0pOwogCiAJLyogUmVxdWVzdCBmZW5jZXMgZnJvbSBob3N0ICovCi0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X2xvY2soJmRldl9wcml2LT5nZ3R0LnZtLm11dGV4KTsKIAogCWZvciAoaSA9IDA7IGkgPCB2Z3B1X2ZlbmNlX3N6KHZncHUpOyBpKyspIHsKIAkJcmVnID0gaTkxNV9yZXNlcnZlX2ZlbmNlKGRldl9wcml2KTsKQEAgLTIwNyw3ICsyMDcsNyBAQCBzdGF0aWMgaW50IGFsbG9jX3ZncHVfZmVuY2Uoc3RydWN0IGludGVsX3ZncHUgKnZncHUpCiAKIAlfY2xlYXJfdmdwdV9mZW5jZSh2Z3B1KTsKIAotCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmdndHQudm0ubXV0ZXgpOwogCWludGVsX3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZChycG0pOwogCXJldHVybiAwOwogb3V0X2ZyZWVfZmVuY2U6CkBAIC0yMjAsNyArMjIwLDcgQEAgc3RhdGljIGludCBhbGxvY192Z3B1X2ZlbmNlKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQogCQlpOTE1X3VucmVzZXJ2ZV9mZW5jZShyZWcpOwogCQl2Z3B1LT5mZW5jZS5yZWdzW2ldID0gTlVMTDsKIAl9Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+Z2d0dC52bS5tdXRleCk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVja2VkKHJwbSk7CiAJcmV0dXJuIC1FTk9TUEM7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvY21kX3BhcnNlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2NtZF9wYXJzZXIuYwppbmRleCBiMDlkYzMxLi5lNzUzYjFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvY21kX3BhcnNlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9jbWRfcGFyc2VyLmMKQEAgLTM3NCwyMSArMzc0LDM3IEBAIHR5cGVkZWYgaW50ICgqcGFyc2VyX2NtZF9oYW5kbGVyKShzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMpOwogI2RlZmluZSBBRERSX0ZJWF80KHgxLCB4MiwgeDMsIHg0KQkoQUREUl9GSVhfMSh4MSkgfCBBRERSX0ZJWF8zKHgyLCB4MywgeDQpKQogI2RlZmluZSBBRERSX0ZJWF81KHgxLCB4MiwgeDMsIHg0LCB4NSkgIChBRERSX0ZJWF8xKHgxKSB8IEFERFJfRklYXzQoeDIsIHgzLCB4NCwgeDUpKQogCisjZGVmaW5lIERXT1JEX0ZJRUxEKGR3b3JkLCBlbmQsIHN0YXJ0KSBcCisJRklFTERfR0VUKEdFTk1BU0soZW5kLCBzdGFydCksIGNtZF92YWwocywgZHdvcmQpKQorCisjZGVmaW5lIE9QX0xFTkdUSF9CSUFTIDIKKyNkZWZpbmUgQ01EX0xFTih2YWx1ZSkgICh2YWx1ZSArIE9QX0xFTkdUSF9CSUFTKQorCitzdGF0aWMgaW50IGd2dF9jaGVja192YWxpZF9jbWRfbGVuZ3RoKGludCBsZW4sIGludCB2YWxpZF9sZW4pCit7CisJaWYgKHZhbGlkX2xlbiAhPSBsZW4pIHsKKwkJZ3Z0X2VycigibGVuIGlzIG5vdCB2YWxpZDogIGxlbj0ldSAgdmFsaWRfbGVuPSV1XG4iLAorCQkJbGVuLCB2YWxpZF9sZW4pOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisJcmV0dXJuIDA7Cit9CisKIHN0cnVjdCBjbWRfaW5mbyB7CiAJY29uc3QgY2hhciAqbmFtZTsKIAl1MzIgb3Bjb2RlOwogCi0jZGVmaW5lIEZfTEVOX01BU0sJKDFVPDwwKQorI2RlZmluZSBGX0xFTl9NQVNLCTNVCiAjZGVmaW5lIEZfTEVOX0NPTlNUICAxVQogI2RlZmluZSBGX0xFTl9WQVIgICAgMFUKKy8qIHZhbHVlIGlzIGNvbnN0IGFsdGhvdWdoIExFTiBtYXliZSB2YXJpYWJsZSAqLworI2RlZmluZSBGX0xFTl9WQVJfRklYRUQgICAgKDE8PDEpCiAKIC8qCiAgKiBjb21tYW5kIGhhcyBpdHMgb3duIGlwIGFkdmFuY2UgbG9naWMKICAqIGUuZy4gTUlfQkFUQ0hfU1RBUlQsIE1JX0JBVENIX0VORAogICovCi0jZGVmaW5lIEZfSVBfQURWQU5DRV9DVVNUT00gKDE8PDEpCi0KLSNkZWZpbmUgRl9QT1NUX0hBTkRMRQkoMTw8MikKKyNkZWZpbmUgRl9JUF9BRFZBTkNFX0NVU1RPTSAoMTw8MikKIAl1MzIgZmxhZzsKIAogI2RlZmluZSBSX1JDUwlCSVQoUkNTMCkKQEAgLTQxOCw5ICs0MzQsMTIgQEAgc3RydWN0IGNtZF9pbmZvIHsKIAkgKiBmbGFnID09IEZfTEVOX1ZBUiA6IGxlbmd0aCBiaWFzIGJpdHMKIAkgKiBOb3RlOiBsZW5ndGggaXMgaW4gRFdvcmQKIAkgKi8KLQl1OCBsZW47CisJdTMyIGxlbjsKIAogCXBhcnNlcl9jbWRfaGFuZGxlciBoYW5kbGVyOworCisJLyogdmFsaWQgbGVuZ3RoIGluIERXb3JkICovCisJdTMyIHZhbGlkX2xlbjsKIH07CiAKIHN0cnVjdCBjbWRfZW50cnkgewpAQCAtOTQ0LDYgKzk2MywxOCBAQCBzdGF0aWMgaW50IGNtZF9oYW5kbGVyX2xyaShzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMpCiAJaW50IGksIHJldCA9IDA7CiAJaW50IGNtZF9sZW4gPSBjbWRfbGVuZ3RoKHMpOwogCXN0cnVjdCBpbnRlbF9ndnQgKmd2dCA9IHMtPnZncHUtPmd2dDsKKwl1MzIgdmFsaWRfbGVuID0gQ01EX0xFTigxKTsKKworCS8qCisJICogT2ZmaWNpYWwgaW50ZWwgZG9jcyBhcmUgc29tZXdoYXQgc2xvcHB5ICwgY2hlY2sgdGhlIGRlZmluaXRpb24gb2YKKwkgKiBNSV9MT0FEX1JFR0lTVEVSX0lNTS4KKwkgKi8KKwkjZGVmaW5lIE1BWF9WQUxJRF9MRU4gMTI3CisJaWYgKChjbWRfbGVuIDwgdmFsaWRfbGVuKSB8fCAoY21kX2xlbiA+IE1BWF9WQUxJRF9MRU4pKSB7CisJCWd2dF9lcnIoImxlbiBpcyBub3QgdmFsaWQ6ICBsZW49JXUgIHZhbGlkX2xlbj0ldVxuIiwKKwkJCWNtZF9sZW4sIHZhbGlkX2xlbik7CisJCXJldHVybiAtRUZBVUxUOworCX0KIAogCWZvciAoaSA9IDE7IGkgPCBjbWRfbGVuOyBpICs9IDIpIHsKIAkJaWYgKElTX0JST0FEV0VMTChndnQtPmRldl9wcml2KSAmJiBzLT5yaW5nX2lkICE9IFJDUzApIHsKQEAgLTEzNzUsNiArMTQwNiwxNSBAQCBzdGF0aWMgaW50IGNtZF9oYW5kbGVyX21pX2Rpc3BsYXlfZmxpcChzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMpCiAJaW50IHJldDsKIAlpbnQgaTsKIAlpbnQgbGVuID0gY21kX2xlbmd0aChzKTsKKwl1MzIgdmFsaWRfbGVuID0gQ01EX0xFTigxKTsKKworCS8qIEZsaXAgVHlwZSA9PSBTdGVyZW8gM0QgRmxpcCAqLworCWlmIChEV09SRF9GSUVMRCgyLCAxLCAwKSA9PSAyKQorCQl2YWxpZF9sZW4rKzsKKwlyZXQgPSBndnRfY2hlY2tfdmFsaWRfY21kX2xlbmd0aChjbWRfbGVuZ3RoKHMpLAorCQkJdmFsaWRfbGVuKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJcmV0ID0gZGVjb2RlX21pX2Rpc3BsYXlfZmxpcChzLCAmaW5mbyk7CiAJaWYgKHJldCkgewpAQCAtMTQ5NCwxMiArMTUzNCwyMSBAQCBzdGF0aWMgaW50IGNtZF9oYW5kbGVyX21pX3N0b3JlX2RhdGFfaW1tKHN0cnVjdCBwYXJzZXJfZXhlY19zdGF0ZSAqcykKIAlpbnQgb3Bfc2l6ZSA9IChjbWRfbGVuZ3RoKHMpIC0gMykgKiBzaXplb2YodTMyKTsKIAlpbnQgY29yZV9pZCA9IChjbWRfdmFsKHMsIDIpICYgKDEgPDwgMCkpID8gMSA6IDA7CiAJdW5zaWduZWQgbG9uZyBnbWEsIGdtYV9sb3csIGdtYV9oaWdoOworCXUzMiB2YWxpZF9sZW4gPSBDTURfTEVOKDIpOwogCWludCByZXQgPSAwOwogCiAJLyogY2hlY2sgcHBnZ3QgKi8KIAlpZiAoIShjbWRfdmFsKHMsIDApICYgKDEgPDwgMjIpKSkKIAkJcmV0dXJuIDA7CiAKKwkvKiBjaGVjayBpZiBRV09SRCAqLworCWlmIChEV09SRF9GSUVMRCgwLCAyMSwgMjEpKQorCQl2YWxpZF9sZW4rKzsKKwlyZXQgPSBndnRfY2hlY2tfdmFsaWRfY21kX2xlbmd0aChjbWRfbGVuZ3RoKHMpLAorCQkJdmFsaWRfbGVuKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJZ21hID0gY21kX3ZhbChzLCAyKSAmIEdFTk1BU0soMzEsIDIpOwogCiAJaWYgKGdtYWRyX2J5dGVzID09IDgpIHsKQEAgLTE1NDIsMTEgKzE1OTEsMjAgQEAgc3RhdGljIGludCBjbWRfaGFuZGxlcl9taV9vcF8yZihzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMpCiAJaW50IG9wX3NpemUgPSAoMSA8PCAoKGNtZF92YWwocywgMCkgJiBHRU5NQVNLKDIwLCAxOSkpID4+IDE5KSkgKgogCQkJc2l6ZW9mKHUzMik7CiAJdW5zaWduZWQgbG9uZyBnbWEsIGdtYV9oaWdoOworCXUzMiB2YWxpZF9sZW4gPSBDTURfTEVOKDEpOwogCWludCByZXQgPSAwOwogCiAJaWYgKCEoY21kX3ZhbChzLCAwKSAmICgxIDw8IDIyKSkpCiAJCXJldHVybiByZXQ7CiAKKwkvKiBjaGVjayBpZiBRV09SRCAqLworCWlmIChEV09SRF9GSUVMRCgwLCAyMCwgMTkpID09IDEpCisJCXZhbGlkX2xlbiArPSA4OworCXJldCA9IGd2dF9jaGVja192YWxpZF9jbWRfbGVuZ3RoKGNtZF9sZW5ndGgocyksCisJCQl2YWxpZF9sZW4pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAlnbWEgPSBjbWRfdmFsKHMsIDEpICYgR0VOTUFTSygzMSwgMik7CiAJaWYgKGdtYWRyX2J5dGVzID09IDgpIHsKIAkJZ21hX2hpZ2ggPSBjbWRfdmFsKHMsIDIpICYgR0VOTUFTSygxNSwgMCk7CkBAIC0xNTg0LDYgKzE2NDIsMTYgQEAgc3RhdGljIGludCBjbWRfaGFuZGxlcl9taV9mbHVzaF9kdyhzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMpCiAJYm9vbCBpbmRleF9tb2RlID0gZmFsc2U7CiAJaW50IHJldCA9IDA7CiAJdTMyIGh3c19wZ2EsIHZhbDsKKwl1MzIgdmFsaWRfbGVuID0gQ01EX0xFTigyKTsKKworCXJldCA9IGd2dF9jaGVja192YWxpZF9jbWRfbGVuZ3RoKGNtZF9sZW5ndGgocyksCisJCQl2YWxpZF9sZW4pOworCWlmIChyZXQpIHsKKwkJLyogQ2hlY2sgYWdhaW4gZm9yIFF3b3JkICovCisJCXJldCA9IGd2dF9jaGVja192YWxpZF9jbWRfbGVuZ3RoKGNtZF9sZW5ndGgocyksCisJCQkrK3ZhbGlkX2xlbik7CisJCXJldHVybiByZXQ7CisJfQogCiAJLyogQ2hlY2sgcG9zdC1zeW5jIGFuZCBwcGd0dCBiaXQgKi8KIAlpZiAoKChjbWRfdmFsKHMsIDApID4+IDE0KSAmIDB4MykgJiYgKGNtZF92YWwocywgMSkgJiAoMSA8PCAyKSkpIHsKQEAgLTE2NjEsNyArMTcyOSw5IEBAIHN0YXRpYyBpbnQgYmF0Y2hfYnVmZmVyX25lZWRzX3NjYW4oc3RydWN0IHBhcnNlcl9leGVjX3N0YXRlICpzKQogCXJldHVybiAxOwogfQogCi1zdGF0aWMgaW50IGZpbmRfYmJfc2l6ZShzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMsIHVuc2lnbmVkIGxvbmcgKmJiX3NpemUpCitzdGF0aWMgaW50IGZpbmRfYmJfc2l6ZShzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMsCisJCQl1bnNpZ25lZCBsb25nICpiYl9zaXplLAorCQkJdW5zaWduZWQgbG9uZyAqYmJfZW5kX2NtZF9vZmZzZXQpCiB7CiAJdW5zaWduZWQgbG9uZyBnbWEgPSAwOwogCWNvbnN0IHN0cnVjdCBjbWRfaW5mbyAqaW5mbzsKQEAgLTE2NzMsNiArMTc0Myw3IEBAIHN0YXRpYyBpbnQgZmluZF9iYl9zaXplKHN0cnVjdCBwYXJzZXJfZXhlY19zdGF0ZSAqcywgdW5zaWduZWQgbG9uZyAqYmJfc2l6ZSkKIAkJcy0+dmdwdS0+Z3R0LmdndHRfbW0gOiBzLT53b3JrbG9hZC0+c2hhZG93X21tOwogCiAJKmJiX3NpemUgPSAwOworCSpiYl9lbmRfY21kX29mZnNldCA9IDA7CiAKIAkvKiBnZXQgdGhlIHN0YXJ0IGdtIGFkZHJlc3Mgb2YgdGhlIGJhdGNoIGJ1ZmZlciAqLwogCWdtYSA9IGdldF9nbWFfYmJfZnJvbV9jbWQocywgMSk7CkBAIC0xNzA4LDYgKzE3NzksMTAgQEAgc3RhdGljIGludCBmaW5kX2JiX3NpemUoc3RydWN0IHBhcnNlcl9leGVjX3N0YXRlICpzLCB1bnNpZ25lZCBsb25nICpiYl9zaXplKQogCQkJCS8qIGNoYWluZWQgYmF0Y2ggYnVmZmVyICovCiAJCQkJYmJfZW5kID0gdHJ1ZTsKIAkJfQorCisJCWlmIChiYl9lbmQpCisJCQkqYmJfZW5kX2NtZF9vZmZzZXQgPSAqYmJfc2l6ZTsKKwogCQljbWRfbGVuID0gZ2V0X2NtZF9sZW5ndGgoaW5mbywgY21kKSA8PCAyOwogCQkqYmJfc2l6ZSArPSBjbWRfbGVuOwogCQlnbWEgKz0gY21kX2xlbjsKQEAgLTE3MTYsMTIgKzE3OTEsMzYgQEAgc3RhdGljIGludCBmaW5kX2JiX3NpemUoc3RydWN0IHBhcnNlcl9leGVjX3N0YXRlICpzLCB1bnNpZ25lZCBsb25nICpiYl9zaXplKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGF1ZGl0X2JiX2VuZChzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMsIHZvaWQgKnZhKQoreworCXN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1ID0gcy0+dmdwdTsKKwl1MzIgY21kID0gKih1MzIgKil2YTsKKwljb25zdCBzdHJ1Y3QgY21kX2luZm8gKmluZm87CisKKwlpbmZvID0gZ2V0X2NtZF9pbmZvKHMtPnZncHUtPmd2dCwgY21kLCBzLT5yaW5nX2lkKTsKKwlpZiAoaW5mbyA9PSBOVUxMKSB7CisJCWd2dF92Z3B1X2VycigidW5rbm93biBjbWQgMHgleCwgb3Bjb2RlPTB4JXgsIGFkZHJfdHlwZT0lcywgcmluZyAlZCwgd29ya2xvYWQ9JXBcbiIsCisJCQljbWQsIGdldF9vcGNvZGUoY21kLCBzLT5yaW5nX2lkKSwKKwkJCShzLT5idWZfYWRkcl90eXBlID09IFBQR1RUX0JVRkZFUikgPworCQkJInBwZ3R0IiA6ICJnZ3R0Iiwgcy0+cmluZ19pZCwgcy0+d29ya2xvYWQpOworCQlyZXR1cm4gLUVCQURSUUM7CisJfQorCisJaWYgKChpbmZvLT5vcGNvZGUgPT0gT1BfTUlfQkFUQ0hfQlVGRkVSX0VORCkgfHwKKwkgICAgKChpbmZvLT5vcGNvZGUgPT0gT1BfTUlfQkFUQ0hfQlVGRkVSX1NUQVJUKSAmJgorCSAgICAgKEJBVENIX0JVRkZFUl8yTkRfTEVWRUxfQklUKGNtZCkgPT0gMCkpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAtRUJBRFJRQzsKK30KKwogc3RhdGljIGludCBwZXJmb3JtX2JiX3NoYWRvdyhzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMpCiB7CiAJc3RydWN0IGludGVsX3ZncHUgKnZncHUgPSBzLT52Z3B1OwogCXN0cnVjdCBpbnRlbF92Z3B1X3NoYWRvd19iYiAqYmI7CiAJdW5zaWduZWQgbG9uZyBnbWEgPSAwOwogCXVuc2lnbmVkIGxvbmcgYmJfc2l6ZTsKKwl1bnNpZ25lZCBsb25nIGJiX2VuZF9jbWRfb2Zmc2V0OwogCWludCByZXQgPSAwOwogCXN0cnVjdCBpbnRlbF92Z3B1X21tICptbSA9IChzLT5idWZfYWRkcl90eXBlID09IEdUVF9CVUZGRVIpID8KIAkJcy0+dmdwdS0+Z3R0LmdndHRfbW0gOiBzLT53b3JrbG9hZC0+c2hhZG93X21tOwpAQCAtMTczMiw3ICsxODMxLDcgQEAgc3RhdGljIGludCBwZXJmb3JtX2JiX3NoYWRvdyhzdHJ1Y3QgcGFyc2VyX2V4ZWNfc3RhdGUgKnMpCiAJaWYgKGdtYSA9PSBJTlRFTF9HVlRfSU5WQUxJRF9BRERSKQogCQlyZXR1cm4gLUVGQVVMVDsKIAotCXJldCA9IGZpbmRfYmJfc2l6ZShzLCAmYmJfc2l6ZSk7CisJcmV0ID0gZmluZF9iYl9zaXplKHMsICZiYl9zaXplLCAmYmJfZW5kX2NtZF9vZmZzZXQpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTE3ODgsNiArMTg4NywxMCBAQCBzdGF0aWMgaW50IHBlcmZvcm1fYmJfc2hhZG93KHN0cnVjdCBwYXJzZXJfZXhlY19zdGF0ZSAqcykKIAkJZ290byBlcnJfdW5tYXA7CiAJfQogCisJcmV0ID0gYXVkaXRfYmJfZW5kKHMsIGJiLT52YSArIHN0YXJ0X29mZnNldCArIGJiX2VuZF9jbWRfb2Zmc2V0KTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl91bm1hcDsKKwogCUlOSVRfTElTVF9IRUFEKCZiYi0+bGlzdCk7CiAJbGlzdF9hZGQoJmJiLT5saXN0LCAmcy0+d29ya2xvYWQtPnNoYWRvd19iYik7CiAKQEAgLTE5MTIsMjEgKzIwMTUsMjQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbWRfaW5mbyBjbWRfaW5mb1tdID0gewogCXsiTUlfUlNfQ09OVEVYVCIsIE9QX01JX1JTX0NPTlRFWFQsIEZfTEVOX0NPTlNULCBSX1JDUywgRF9BTEwsIDAsIDEsCiAJCU5VTEx9LAogCi0JeyJNSV9ESVNQTEFZX0ZMSVAiLCBPUF9NSV9ESVNQTEFZX0ZMSVAsIEZfTEVOX1ZBUiB8IEZfUE9TVF9IQU5ETEUsCisJeyJNSV9ESVNQTEFZX0ZMSVAiLCBPUF9NSV9ESVNQTEFZX0ZMSVAsIEZfTEVOX1ZBUiwKIAkJUl9SQ1MgfCBSX0JDUywgRF9BTEwsIDAsIDgsIGNtZF9oYW5kbGVyX21pX2Rpc3BsYXlfZmxpcH0sCiAKLQl7Ik1JX1NFTUFQSE9SRV9NQk9YIiwgT1BfTUlfU0VNQVBIT1JFX01CT1gsIEZfTEVOX1ZBUiwgUl9BTEwsIERfQUxMLAotCQkwLCA4LCBOVUxMfSwKKwl7Ik1JX1NFTUFQSE9SRV9NQk9YIiwgT1BfTUlfU0VNQVBIT1JFX01CT1gsIEZfTEVOX1ZBUiB8IEZfTEVOX1ZBUl9GSVhFRCwKKwkJUl9BTEwsIERfQUxMLCAwLCA4LCBOVUxMLCBDTURfTEVOKDEpfSwKIAogCXsiTUlfTUFUSCIsIE9QX01JX01BVEgsIEZfTEVOX1ZBUiwgUl9BTEwsIERfQUxMLCAwLCA4LCBOVUxMfSwKIAotCXsiTUlfVVJCX0NMRUFSIiwgT1BfTUlfVVJCX0NMRUFSLCBGX0xFTl9WQVIsIFJfUkNTLCBEX0FMTCwgMCwgOCwgTlVMTH0sCisJeyJNSV9VUkJfQ0xFQVIiLCBPUF9NSV9VUkJfQ0xFQVIsIEZfTEVOX1ZBUiB8IEZfTEVOX1ZBUl9GSVhFRCwgUl9SQ1MsCisJCURfQUxMLCAwLCA4LCBOVUxMLCBDTURfTEVOKDApfSwKIAotCXsiTUlfU0VNQVBIT1JFX1NJR05BTCIsIE9QX01JX1NFTUFQSE9SRV9TSUdOQUwsIEZfTEVOX1ZBUiwgUl9BTEwsCi0JCURfQkRXX1BMVVMsIDAsIDgsIE5VTEx9LAorCXsiTUlfU0VNQVBIT1JFX1NJR05BTCIsIE9QX01JX1NFTUFQSE9SRV9TSUdOQUwsCisJCUZfTEVOX1ZBUiB8IEZfTEVOX1ZBUl9GSVhFRCwgUl9BTEwsIERfQkRXX1BMVVMsIDAsIDgsCisJCU5VTEwsIENNRF9MRU4oMCl9LAogCi0JeyJNSV9TRU1BUEhPUkVfV0FJVCIsIE9QX01JX1NFTUFQSE9SRV9XQUlULCBGX0xFTl9WQVIsIFJfQUxMLAotCQlEX0JEV19QTFVTLCBBRERSX0ZJWF8xKDIpLCA4LCBjbWRfaGFuZGxlcl9taV9zZW1hcGhvcmVfd2FpdH0sCisJeyJNSV9TRU1BUEhPUkVfV0FJVCIsIE9QX01JX1NFTUFQSE9SRV9XQUlULAorCQlGX0xFTl9WQVIgfCBGX0xFTl9WQVJfRklYRUQsIFJfQUxMLCBEX0JEV19QTFVTLCBBRERSX0ZJWF8xKDIpLAorCQk4LCBjbWRfaGFuZGxlcl9taV9zZW1hcGhvcmVfd2FpdCwgQ01EX0xFTigyKX0sCiAKIAl7Ik1JX1NUT1JFX0RBVEFfSU1NIiwgT1BfTUlfU1RPUkVfREFUQV9JTU0sIEZfTEVOX1ZBUiwgUl9BTEwsIERfQkRXX1BMVVMsCiAJCUFERFJfRklYXzEoMSksIDEwLCBjbWRfaGFuZGxlcl9taV9zdG9yZV9kYXRhX2ltbX0sCkBAIC0xOTQwLDggKzIwNDYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNtZF9pbmZvIGNtZF9pbmZvW10gPSB7CiAJeyJNSV9VUERBVEVfR1RUIiwgT1BfTUlfVVBEQVRFX0dUVCwgRl9MRU5fVkFSLCBSX0FMTCwgRF9CRFdfUExVUywgMCwgMTAsCiAJCWNtZF9oYW5kbGVyX21pX3VwZGF0ZV9ndHR9LAogCi0JeyJNSV9TVE9SRV9SRUdJU1RFUl9NRU0iLCBPUF9NSV9TVE9SRV9SRUdJU1RFUl9NRU0sIEZfTEVOX1ZBUiwgUl9BTEwsCi0JCURfQUxMLCBBRERSX0ZJWF8xKDIpLCA4LCBjbWRfaGFuZGxlcl9zcm19LAorCXsiTUlfU1RPUkVfUkVHSVNURVJfTUVNIiwgT1BfTUlfU1RPUkVfUkVHSVNURVJfTUVNLAorCQlGX0xFTl9WQVIgfCBGX0xFTl9WQVJfRklYRUQsIFJfQUxMLCBEX0FMTCwgQUREUl9GSVhfMSgyKSwgOCwKKwkJY21kX2hhbmRsZXJfc3JtLCBDTURfTEVOKDIpfSwKIAogCXsiTUlfRkxVU0hfRFciLCBPUF9NSV9GTFVTSF9EVywgRl9MRU5fVkFSLCBSX0FMTCwgRF9BTEwsIDAsIDYsCiAJCWNtZF9oYW5kbGVyX21pX2ZsdXNoX2R3fSwKQEAgLTE5NDksMjYgKzIwNTYsMzAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbWRfaW5mbyBjbWRfaW5mb1tdID0gewogCXsiTUlfQ0xGTFVTSCIsIE9QX01JX0NMRkxVU0gsIEZfTEVOX1ZBUiwgUl9BTEwsIERfQUxMLCBBRERSX0ZJWF8xKDEpLAogCQkxMCwgY21kX2hhbmRsZXJfbWlfY2xmbHVzaH0sCiAKLQl7Ik1JX1JFUE9SVF9QRVJGX0NPVU5UIiwgT1BfTUlfUkVQT1JUX1BFUkZfQ09VTlQsIEZfTEVOX1ZBUiwgUl9BTEwsCi0JCURfQUxMLCBBRERSX0ZJWF8xKDEpLCA2LCBjbWRfaGFuZGxlcl9taV9yZXBvcnRfcGVyZl9jb3VudH0sCisJeyJNSV9SRVBPUlRfUEVSRl9DT1VOVCIsIE9QX01JX1JFUE9SVF9QRVJGX0NPVU5ULAorCQlGX0xFTl9WQVIgfCBGX0xFTl9WQVJfRklYRUQsIFJfQUxMLCBEX0FMTCwgQUREUl9GSVhfMSgxKSwgNiwKKwkJY21kX2hhbmRsZXJfbWlfcmVwb3J0X3BlcmZfY291bnQsIENNRF9MRU4oMil9LAogCi0JeyJNSV9MT0FEX1JFR0lTVEVSX01FTSIsIE9QX01JX0xPQURfUkVHSVNURVJfTUVNLCBGX0xFTl9WQVIsIFJfQUxMLAotCQlEX0FMTCwgQUREUl9GSVhfMSgyKSwgOCwgY21kX2hhbmRsZXJfbHJtfSwKKwl7Ik1JX0xPQURfUkVHSVNURVJfTUVNIiwgT1BfTUlfTE9BRF9SRUdJU1RFUl9NRU0sCisJCUZfTEVOX1ZBUiB8IEZfTEVOX1ZBUl9GSVhFRCwgUl9BTEwsIERfQUxMLCBBRERSX0ZJWF8xKDIpLCA4LAorCQljbWRfaGFuZGxlcl9scm0sIENNRF9MRU4oMil9LAogCi0JeyJNSV9MT0FEX1JFR0lTVEVSX1JFRyIsIE9QX01JX0xPQURfUkVHSVNURVJfUkVHLCBGX0xFTl9WQVIsIFJfQUxMLAotCQlEX0FMTCwgMCwgOCwgY21kX2hhbmRsZXJfbHJyfSwKKwl7Ik1JX0xPQURfUkVHSVNURVJfUkVHIiwgT1BfTUlfTE9BRF9SRUdJU1RFUl9SRUcsCisJCUZfTEVOX1ZBUiB8IEZfTEVOX1ZBUl9GSVhFRCwgUl9BTEwsIERfQUxMLCAwLCA4LAorCQljbWRfaGFuZGxlcl9scnIsIENNRF9MRU4oMSl9LAogCi0JeyJNSV9SU19TVE9SRV9EQVRBX0lNTSIsIE9QX01JX1JTX1NUT1JFX0RBVEFfSU1NLCBGX0xFTl9WQVIsIFJfUkNTLAotCQlEX0FMTCwgMCwgOCwgTlVMTH0sCisJeyJNSV9SU19TVE9SRV9EQVRBX0lNTSIsIE9QX01JX1JTX1NUT1JFX0RBVEFfSU1NLAorCQlGX0xFTl9WQVIgfCBGX0xFTl9WQVJfRklYRUQsIFJfUkNTLCBEX0FMTCwgMCwKKwkJOCwgTlVMTCwgQ01EX0xFTigyKX0sCiAKLQl7Ik1JX0xPQURfVVJCX01FTSIsIE9QX01JX0xPQURfVVJCX01FTSwgRl9MRU5fVkFSLCBSX1JDUywgRF9BTEwsCi0JCUFERFJfRklYXzEoMiksIDgsIE5VTEx9LAorCXsiTUlfTE9BRF9VUkJfTUVNIiwgT1BfTUlfTE9BRF9VUkJfTUVNLCBGX0xFTl9WQVIgfCBGX0xFTl9WQVJfRklYRUQsCisJCVJfUkNTLCBEX0FMTCwgQUREUl9GSVhfMSgyKSwgOCwgTlVMTCwgQ01EX0xFTigyKX0sCiAKIAl7Ik1JX1NUT1JFX1VSTV9NRU0iLCBPUF9NSV9TVE9SRV9VUk1fTUVNLCBGX0xFTl9WQVIsIFJfUkNTLCBEX0FMTCwKIAkJQUREUl9GSVhfMSgyKSwgOCwgTlVMTH0sCiAKLQl7Ik1JX09QXzJFIiwgT1BfTUlfMkUsIEZfTEVOX1ZBUiwgUl9BTEwsIERfQkRXX1BMVVMsIEFERFJfRklYXzIoMSwgMiksCi0JCTgsIGNtZF9oYW5kbGVyX21pX29wXzJlfSwKKwl7Ik1JX09QXzJFIiwgT1BfTUlfMkUsIEZfTEVOX1ZBUiB8IEZfTEVOX1ZBUl9GSVhFRCwgUl9BTEwsIERfQkRXX1BMVVMsCisJCUFERFJfRklYXzIoMSwgMiksIDgsIGNtZF9oYW5kbGVyX21pX29wXzJlLCBDTURfTEVOKDMpfSwKIAogCXsiTUlfT1BfMkYiLCBPUF9NSV8yRiwgRl9MRU5fVkFSLCBSX0FMTCwgRF9CRFdfUExVUywgQUREUl9GSVhfMSgxKSwKIAkJOCwgY21kX2hhbmRsZXJfbWlfb3BfMmZ9LApAQCAtMTk3OCw4ICsyMDg5LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbWRfaW5mbyBjbWRfaW5mb1tdID0gewogCQljbWRfaGFuZGxlcl9taV9iYXRjaF9idWZmZXJfc3RhcnR9LAogCiAJeyJNSV9DT05ESVRJT05BTF9CQVRDSF9CVUZGRVJfRU5EIiwgT1BfTUlfQ09ORElUSU9OQUxfQkFUQ0hfQlVGRkVSX0VORCwKLQkJRl9MRU5fVkFSLCBSX0FMTCwgRF9BTEwsIEFERFJfRklYXzEoMiksIDgsCi0JCWNtZF9oYW5kbGVyX21pX2NvbmRpdGlvbmFsX2JhdGNoX2J1ZmZlcl9lbmR9LAorCQlGX0xFTl9WQVIgfCBGX0xFTl9WQVJfRklYRUQsIFJfQUxMLCBEX0FMTCwgQUREUl9GSVhfMSgyKSwgOCwKKwkJY21kX2hhbmRsZXJfbWlfY29uZGl0aW9uYWxfYmF0Y2hfYnVmZmVyX2VuZCwgQ01EX0xFTigyKX0sCiAKIAl7Ik1JX0xPQURfU0NBTl9MSU5FU19JTkNMIiwgT1BfTUlfTE9BRF9TQ0FOX0xJTkVTX0lOQ0wsIEZfTEVOX0NPTlNULAogCQlSX1JDUyB8IFJfQkNTLCBEX0FMTCwgMCwgMiwgTlVMTH0sCkBAIC0yNTY5LDYgKzI2ODAsMTMgQEAgc3RhdGljIGludCBjbWRfcGFyc2VyX2V4ZWMoc3RydWN0IHBhcnNlcl9leGVjX3N0YXRlICpzKQogCQkJICBjbWRfbGVuZ3RoKHMpLCBzLT5idWZfdHlwZSwgcy0+YnVmX2FkZHJfdHlwZSwKIAkJCSAgcy0+d29ya2xvYWQsIGluZm8tPm5hbWUpOwogCisJaWYgKChpbmZvLT5mbGFnICYgRl9MRU5fTUFTSykgPT0gRl9MRU5fVkFSX0ZJWEVEKSB7CisJCXJldCA9IGd2dF9jaGVja192YWxpZF9jbWRfbGVuZ3RoKGNtZF9sZW5ndGgocyksCisJCQlpbmZvLT52YWxpZF9sZW4pOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKIAlpZiAoaW5mby0+aGFuZGxlcikgewogCQlyZXQgPSBpbmZvLT5oYW5kbGVyKHMpOwogCQlpZiAocmV0IDwgMCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kZWJ1Z2ZzLmMKaW5kZXggMmZiN2I3My4uMjg1ZjYwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZGVidWdmcy5jCkBAIC0xODksMzYgKzE4OSwxOSBAQCBERUZJTkVfU0lNUExFX0FUVFJJQlVURSh2Z3B1X3NjYW5fbm9ucHJpdmJiX2ZvcHMsCiAvKioKICAqIGludGVsX2d2dF9kZWJ1Z2ZzX2FkZF92Z3B1IC0gcmVnaXN0ZXIgZGVidWdmcyBlbnRyaWVzIGZvciBhIHZHUFUKICAqIEB2Z3B1OiBhIHZHUFUKLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIGlmIGZhaWxlZC4KICAqLwotaW50IGludGVsX2d2dF9kZWJ1Z2ZzX2FkZF92Z3B1KHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQordm9pZCBpbnRlbF9ndnRfZGVidWdmc19hZGRfdmdwdShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIHsKLQlzdHJ1Y3QgZGVudHJ5ICplbnQ7CiAJY2hhciBuYW1lWzE2XSA9ICIiOwogCiAJc25wcmludGYobmFtZSwgMTYsICJ2Z3B1JWQiLCB2Z3B1LT5pZCk7CiAJdmdwdS0+ZGVidWdmcyA9IGRlYnVnZnNfY3JlYXRlX2RpcihuYW1lLCB2Z3B1LT5ndnQtPmRlYnVnZnNfcm9vdCk7Ci0JaWYgKCF2Z3B1LT5kZWJ1Z2ZzKQotCQlyZXR1cm4gLUVOT01FTTsKIAotCWVudCA9IGRlYnVnZnNfY3JlYXRlX2Jvb2woImFjdGl2ZSIsIDA0NDQsIHZncHUtPmRlYnVnZnMsCi0JCQkJICAmdmdwdS0+YWN0aXZlKTsKLQlpZiAoIWVudCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQllbnQgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJtbWlvX2RpZmYiLCAwNDQ0LCB2Z3B1LT5kZWJ1Z2ZzLAotCQkJCSAgdmdwdSwgJnZncHVfbW1pb19kaWZmX2ZvcHMpOwotCWlmICghZW50KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWVudCA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoInNjYW5fbm9ucHJpdmJiIiwgMDY0NCwgdmdwdS0+ZGVidWdmcywKLQkJCQkgdmdwdSwgJnZncHVfc2Nhbl9ub25wcml2YmJfZm9wcyk7Ci0JaWYgKCFlbnQpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JcmV0dXJuIDA7CisJZGVidWdmc19jcmVhdGVfYm9vbCgiYWN0aXZlIiwgMDQ0NCwgdmdwdS0+ZGVidWdmcywgJnZncHUtPmFjdGl2ZSk7CisJZGVidWdmc19jcmVhdGVfZmlsZSgibW1pb19kaWZmIiwgMDQ0NCwgdmdwdS0+ZGVidWdmcywgdmdwdSwKKwkJCSAgICAmdmdwdV9tbWlvX2RpZmZfZm9wcyk7CisJZGVidWdmc19jcmVhdGVfZmlsZSgic2Nhbl9ub25wcml2YmIiLCAwNjQ0LCB2Z3B1LT5kZWJ1Z2ZzLCB2Z3B1LAorCQkJICAgICZ2Z3B1X3NjYW5fbm9ucHJpdmJiX2ZvcHMpOwogfQogCiAvKioKQEAgLTIzNCwyNyArMjE3LDE1IEBAIHZvaWQgaW50ZWxfZ3Z0X2RlYnVnZnNfcmVtb3ZlX3ZncHUoc3RydWN0IGludGVsX3ZncHUgKnZncHUpCiAvKioKICAqIGludGVsX2d2dF9kZWJ1Z2ZzX2luaXQgLSByZWdpc3RlciBndnQgZGVidWdmcyByb290IGVudHJ5CiAgKiBAZ3Z0OiBHVlQgZGV2aWNlCi0gKgotICogUmV0dXJuczoKLSAqIHplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgaWYgZmFpbGVkLgogICovCi1pbnQgaW50ZWxfZ3Z0X2RlYnVnZnNfaW5pdChzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpCit2b2lkIGludGVsX2d2dF9kZWJ1Z2ZzX2luaXQoc3RydWN0IGludGVsX2d2dCAqZ3Z0KQogewogCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0gZ3Z0LT5kZXZfcHJpdi0+ZHJtLnByaW1hcnk7Ci0Jc3RydWN0IGRlbnRyeSAqZW50OwogCiAJZ3Z0LT5kZWJ1Z2ZzX3Jvb3QgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoImd2dCIsIG1pbm9yLT5kZWJ1Z2ZzX3Jvb3QpOwotCWlmICghZ3Z0LT5kZWJ1Z2ZzX3Jvb3QpIHsKLQkJZ3Z0X2VycigiQ2Fubm90IGNyZWF0ZSBkZWJ1Z2ZzIGRpclxuIik7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KIAotCWVudCA9IGRlYnVnZnNfY3JlYXRlX3Vsb25nKCJudW1fdHJhY2tlZF9tbWlvIiwgMDQ0NCwgZ3Z0LT5kZWJ1Z2ZzX3Jvb3QsCi0JCQkJICAgJmd2dC0+bW1pby5udW1fdHJhY2tlZF9tbWlvKTsKLQlpZiAoIWVudCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyZXR1cm4gMDsKKwlkZWJ1Z2ZzX2NyZWF0ZV91bG9uZygibnVtX3RyYWNrZWRfbW1pbyIsIDA0NDQsIGd2dC0+ZGVidWdmc19yb290LAorCQkJICAgICAmZ3Z0LT5tbWlvLm51bV90cmFja2VkX21taW8pOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kbWFidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kbWFidWYuYwppbmRleCA0MWM4ZWJjLi4xMzA0NGMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZG1hYnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2RtYWJ1Zi5jCkBAIC00OTEsNyArNDkxLDcgQEAgaW50IGludGVsX3ZncHVfZ2V0X2RtYWJ1ZihzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSwgdW5zaWduZWQgaW50IGRtYWJ1Zl9pZCkKIAogCW9iai0+Z3Z0X2luZm8gPSBkbWFidWZfb2JqLT5pbmZvOwogCi0JZG1hYnVmID0gaTkxNV9nZW1fcHJpbWVfZXhwb3J0KGRldiwgJm9iai0+YmFzZSwgRFJNX0NMT0VYRUMgfCBEUk1fUkRXUik7CisJZG1hYnVmID0gaTkxNV9nZW1fcHJpbWVfZXhwb3J0KCZvYmotPmJhc2UsIERSTV9DTE9FWEVDIHwgRFJNX1JEV1IpOwogCWlmIChJU19FUlIoZG1hYnVmKSkgewogCQlndnRfdmdwdV9lcnIoImV4cG9ydCBkbWEtYnVmIGZhaWxlZFxuIik7CiAJCXJldCA9IFBUUl9FUlIoZG1hYnVmKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndHQuaAppbmRleCA0MmQwMzk0Li44ODc4OTMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d0dC5oCkBAIC0yMDUsMTcgKzIwNSwxOCBAQCBzdHJ1Y3QgaW50ZWxfdmdwdV9ndHQgewogCXN0cnVjdCBpbnRlbF92Z3B1X3NjcmF0Y2hfcHQgc2NyYXRjaF9wdFtHVFRfVFlQRV9NQVhdOwogfTsKIAotZXh0ZXJuIGludCBpbnRlbF92Z3B1X2luaXRfZ3R0KHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KTsKLWV4dGVybiB2b2lkIGludGVsX3ZncHVfY2xlYW5fZ3R0KHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KTsKK2ludCBpbnRlbF92Z3B1X2luaXRfZ3R0KHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KTsKK3ZvaWQgaW50ZWxfdmdwdV9jbGVhbl9ndHQoc3RydWN0IGludGVsX3ZncHUgKnZncHUpOwogdm9pZCBpbnRlbF92Z3B1X3Jlc2V0X2dndHQoc3RydWN0IGludGVsX3ZncHUgKnZncHUsIGJvb2wgaW52YWxpZGF0ZV9vbGQpOwogdm9pZCBpbnRlbF92Z3B1X2ludmFsaWRhdGVfcHBndHQoc3RydWN0IGludGVsX3ZncHUgKnZncHUpOwogCi1leHRlcm4gaW50IGludGVsX2d2dF9pbml0X2d0dChzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpOworaW50IGludGVsX2d2dF9pbml0X2d0dChzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpOwogdm9pZCBpbnRlbF92Z3B1X3Jlc2V0X2d0dChzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSk7Ci1leHRlcm4gdm9pZCBpbnRlbF9ndnRfY2xlYW5fZ3R0KHN0cnVjdCBpbnRlbF9ndnQgKmd2dCk7Cit2b2lkIGludGVsX2d2dF9jbGVhbl9ndHQoc3RydWN0IGludGVsX2d2dCAqZ3Z0KTsKIAotZXh0ZXJuIHN0cnVjdCBpbnRlbF92Z3B1X21tICppbnRlbF9ndnRfZmluZF9wcGd0dF9tbShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSwKLQkJaW50IHBhZ2VfdGFibGVfbGV2ZWwsIHZvaWQgKnJvb3RfZW50cnkpOworc3RydWN0IGludGVsX3ZncHVfbW0gKmludGVsX2d2dF9maW5kX3BwZ3R0X21tKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LAorCQkJCQkgICAgICBpbnQgcGFnZV90YWJsZV9sZXZlbCwKKwkJCQkJICAgICAgdm9pZCAqcm9vdF9lbnRyeSk7CiAKIHN0cnVjdCBpbnRlbF92Z3B1X29vc19wYWdlIHsKIAlzdHJ1Y3QgaW50ZWxfdmdwdV9wcGd0dF9zcHQgKnNwdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYwppbmRleCA0M2Y0MjQyLi44ZjM3ZWVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCkBAIC0zNzUsOSArMzc1LDcgQEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJfQogCWd2dC0+aWRsZV92Z3B1ID0gdmdwdTsKIAotCXJldCA9IGludGVsX2d2dF9kZWJ1Z2ZzX2luaXQoZ3Z0KTsKLQlpZiAocmV0KQotCQlndnRfZXJyKCJkZWJ1Z2ZzIHJlZ2lzdHJhdGlvbiBmYWlsZWQsIGdvIG9uLlxuIik7CisJaW50ZWxfZ3Z0X2RlYnVnZnNfaW5pdChndnQpOwogCiAJZ3Z0X2RiZ19jb3JlKCJndnQgZGV2aWNlIGluaXRpYWxpemF0aW9uIGlzIGRvbmVcbiIpOwogCWRldl9wcml2LT5ndnQgPSBndnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmgKaW5kZXggN2ExZmU0NC4uYjQ3YzZhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaApAQCAtMzM0LDYgKzMzNCwxMCBAQCBzdHJ1Y3QgaW50ZWxfZ3Z0IHsKIAlzdHJ1Y3QgewogCQlzdHJ1Y3QgZW5naW5lX21taW8gKm1taW87CiAJCWludCBjdHhfbW1pb19jb3VudFtJOTE1X05VTV9FTkdJTkVTXTsKKwkJdTMyICp0bGJfbW1pb19vZmZzZXRfbGlzdDsKKwkJdTMyIHRsYl9tbWlvX29mZnNldF9saXN0X2NudDsKKwkJdTMyICptb2NzX21taW9fb2Zmc2V0X2xpc3Q7CisJCXUzMiBtb2NzX21taW9fb2Zmc2V0X2xpc3RfY250OwogCX0gZW5naW5lX21taW9fbGlzdDsKIAogCXN0cnVjdCBkZW50cnkgKmRlYnVnZnNfcm9vdDsKQEAgLTY4Miw5ICs2ODYsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZ3Z0X21taW9fc2V0X2luX2N0eCgKIAlndnQtPm1taW8ubW1pb19hdHRyaWJ1dGVbb2Zmc2V0ID4+IDJdIHw9IEZfSU5fQ1RYOwogfQogCi1pbnQgaW50ZWxfZ3Z0X2RlYnVnZnNfYWRkX3ZncHUoc3RydWN0IGludGVsX3ZncHUgKnZncHUpOwordm9pZCBpbnRlbF9ndnRfZGVidWdmc19hZGRfdmdwdShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSk7CiB2b2lkIGludGVsX2d2dF9kZWJ1Z2ZzX3JlbW92ZV92Z3B1KHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KTsKLWludCBpbnRlbF9ndnRfZGVidWdmc19pbml0KHN0cnVjdCBpbnRlbF9ndnQgKmd2dCk7Cit2b2lkIGludGVsX2d2dF9kZWJ1Z2ZzX2luaXQoc3RydWN0IGludGVsX2d2dCAqZ3Z0KTsKIHZvaWQgaW50ZWxfZ3Z0X2RlYnVnZnNfY2xlYW4oc3RydWN0IGludGVsX2d2dCAqZ3Z0KTsKIAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaW50ZXJydXB0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaW50ZXJydXB0LmMKaW5kZXggOTUxNjgxOC4uMTFhY2NkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2ludGVycnVwdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9pbnRlcnJ1cHQuYwpAQCAtNjcyLDcgKzY3Miw3IEBAIHZvaWQgaW50ZWxfZ3Z0X2NsZWFuX2lycShzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpCiAJaHJ0aW1lcl9jYW5jZWwoJmlycS0+dmJsYW5rX3RpbWVyLnRpbWVyKTsKIH0KIAotI2RlZmluZSBWQkxOQUtfVElNRVJfUEVSSU9EIDE2MDAwMDAwCisjZGVmaW5lIFZCTEFOS19USU1FUl9QRVJJT0QgMTYwMDAwMDAKIAogLyoqCiAgKiBpbnRlbF9ndnRfaW5pdF9pcnEgLSBpbml0aWFsaXplIEdWVC1nIElSUSBlbXVsYXRpb24gc3Vic3lzdGVtCkBAIC03MDQsNyArNzA0LDcgQEAgaW50IGludGVsX2d2dF9pbml0X2lycShzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpCiAKIAlocnRpbWVyX2luaXQoJnZibGFua190aW1lci0+dGltZXIsIENMT0NLX01PTk9UT05JQywgSFJUSU1FUl9NT0RFX0FCUyk7CiAJdmJsYW5rX3RpbWVyLT50aW1lci5mdW5jdGlvbiA9IHZibGFua190aW1lcl9mbjsKLQl2YmxhbmtfdGltZXItPnBlcmlvZCA9IFZCTE5BS19USU1FUl9QRVJJT0Q7CisJdmJsYW5rX3RpbWVyLT5wZXJpb2QgPSBWQkxBTktfVElNRVJfUEVSSU9EOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQva3ZtZ3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCmluZGV4IDIzYWEzZTUuLjM0M2Q3OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCkBAIC0xMzA2LDcgKzEzMDYsNiBAQCBzdGF0aWMgbG9uZyBpbnRlbF92Z3B1X2lvY3RsKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdW5zaWduZWQgaW50IGNtZCwKIAkJdW5zaWduZWQgaW50IGk7CiAJCWludCByZXQ7CiAJCXN0cnVjdCB2ZmlvX3JlZ2lvbl9pbmZvX2NhcF9zcGFyc2VfbW1hcCAqc3BhcnNlID0gTlVMTDsKLQkJc2l6ZV90IHNpemU7CiAJCWludCBucl9hcmVhcyA9IDE7CiAJCWludCBjYXBfdHlwZV9pZDsKIApAQCAtMTM0OSw5ICsxMzQ4LDggQEAgc3RhdGljIGxvbmcgaW50ZWxfdmdwdV9pb2N0bChzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHVuc2lnbmVkIGludCBjbWQsCiAJCQkJCVZGSU9fUkVHSU9OX0lORk9fRkxBR19XUklURTsKIAkJCWluZm8uc2l6ZSA9IGd2dF9hcGVydHVyZV9zeih2Z3B1LT5ndnQpOwogCi0JCQlzaXplID0gc2l6ZW9mKCpzcGFyc2UpICsKLQkJCQkJKG5yX2FyZWFzICogc2l6ZW9mKCpzcGFyc2UtPmFyZWFzKSk7Ci0JCQlzcGFyc2UgPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworCQkJc3BhcnNlID0ga3phbGxvYyhzdHJ1Y3Rfc2l6ZShzcGFyc2UsIGFyZWFzLCBucl9hcmVhcyksCisJCQkJCSBHRlBfS0VSTkVMKTsKIAkJCWlmICghc3BhcnNlKQogCQkJCXJldHVybiAtRU5PTUVNOwogCkBAIC0xNDE2LDkgKzE0MTQsOSBAQCBzdGF0aWMgbG9uZyBpbnRlbF92Z3B1X2lvY3RsKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdW5zaWduZWQgaW50IGNtZCwKIAkJCXN3aXRjaCAoY2FwX3R5cGVfaWQpIHsKIAkJCWNhc2UgVkZJT19SRUdJT05fSU5GT19DQVBfU1BBUlNFX01NQVA6CiAJCQkJcmV0ID0gdmZpb19pbmZvX2FkZF9jYXBhYmlsaXR5KCZjYXBzLAotCQkJCQkmc3BhcnNlLT5oZWFkZXIsIHNpemVvZigqc3BhcnNlKSArCi0JCQkJCShzcGFyc2UtPm5yX2FyZWFzICoKLQkJCQkJCXNpemVvZigqc3BhcnNlLT5hcmVhcykpKTsKKwkJCQkJJnNwYXJzZS0+aGVhZGVyLAorCQkJCQlzdHJ1Y3Rfc2l6ZShzcGFyc2UsIGFyZWFzLAorCQkJCQkJICAgIHNwYXJzZS0+bnJfYXJlYXMpKTsKIAkJCQlpZiAocmV0KSB7CiAJCQkJCWtmcmVlKHNwYXJzZSk7CiAJCQkJCXJldHVybiByZXQ7CkBAIC0xNzk4LDkgKzE3OTYsNiBAQCBzdGF0aWMgaW50IGt2bWd0X2d1ZXN0X2luaXQoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KQogCQkJCQkJImt2bWd0X25yX2NhY2hlX2VudHJpZXMiLAogCQkJCQkJMDQ0NCwgdmdwdS0+ZGVidWdmcywKIAkJCQkJCSZ2Z3B1LT52ZGV2Lm5yX2NhY2hlX2VudHJpZXMpOwotCWlmICghaW5mby0+ZGVidWdmc19jYWNoZV9lbnRyaWVzKQotCQlndnRfdmdwdV9lcnIoIkNhbm5vdCBjcmVhdGUga3ZtZ3QgZGVidWdmcyBlbnRyeVxuIik7Ci0KIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21taW9fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21taW9fY29udGV4dC5jCmluZGV4IDI5OTg5OTkuLjQyMDhlNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tbWlvX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvbW1pb19jb250ZXh0LmMKQEAgLTE0OCwxOSArMTQ4LDI3IEBAIHN0YXRpYyBzdHJ1Y3QgewogCXUzMiBsM2NjX3RhYmxlW0dFTjlfTU9DU19TSVpFIC8gMl07CiB9IGdlbjlfcmVuZGVyX21vY3M7CiAKK3N0YXRpYyB1MzIgZ2VuOV9tb2NzX21taW9fb2Zmc2V0X2xpc3RbXSA9IHsKKwlbUkNTMF0gID0gMHhjODAwLAorCVtWQ1MwXSAgPSAweGM5MDAsCisJW1ZDUzFdICA9IDB4Y2EwMCwKKwlbQkNTMF0gID0gMHhjYzAwLAorCVtWRUNTMF0gPSAweGNiMDAsCit9OworCiBzdGF0aWMgdm9pZCBsb2FkX3JlbmRlcl9tb2NzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKKwlzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQgPSBkZXZfcHJpdi0+Z3Z0OwogCWk5MTVfcmVnX3Qgb2Zmc2V0OwotCXUzMiByZWdzW10gPSB7Ci0JCVtSQ1MwXSAgPSAweGM4MDAsCi0JCVtWQ1MwXSAgPSAweGM5MDAsCi0JCVtWQ1MxXSAgPSAweGNhMDAsCi0JCVtCQ1MwXSAgPSAweGNjMDAsCi0JCVtWRUNTMF0gPSAweGNiMDAsCi0JfTsKKwl1MzIgY250ID0gZ3Z0LT5lbmdpbmVfbW1pb19saXN0Lm1vY3NfbW1pb19vZmZzZXRfbGlzdF9jbnQ7CisJdTMyICpyZWdzID0gZ3Z0LT5lbmdpbmVfbW1pb19saXN0Lm1vY3NfbW1pb19vZmZzZXRfbGlzdDsKIAlpbnQgcmluZ19pZCwgaTsKIAotCWZvciAocmluZ19pZCA9IDA7IHJpbmdfaWQgPCBBUlJBWV9TSVpFKHJlZ3MpOyByaW5nX2lkKyspIHsKKwkvKiBQbGF0Zm9ybSBkb2Vzbid0IGhhdmUgbW9jcyBtbWlvcy4gKi8KKwlpZiAoIXJlZ3MpCisJCXJldHVybjsKKworCWZvciAocmluZ19pZCA9IDA7IHJpbmdfaWQgPCBjbnQ7IHJpbmdfaWQrKykgewogCQlpZiAoIUhBU19FTkdJTkUoZGV2X3ByaXYsIHJpbmdfaWQpKQogCQkJY29udGludWU7CiAJCW9mZnNldC5yZWcgPSByZWdzW3JpbmdfaWRdOwpAQCAtMzI3LDIyICszMzUsMjggQEAgaW50IGludGVsX3ZncHVfcmVzdG9yZV9pbmhpYml0X2NvbnRleHQoc3RydWN0IGludGVsX3ZncHUgKnZncHUsCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIHUzMiBnZW44X3RsYl9tbWlvX29mZnNldF9saXN0W10gPSB7CisJW1JDUzBdICA9IDB4NDI2MCwKKwlbVkNTMF0gID0gMHg0MjY0LAorCVtWQ1MxXSAgPSAweDQyNjgsCisJW0JDUzBdICA9IDB4NDI2YywKKwlbVkVDUzBdID0gMHg0MjcwLAorfTsKKwogc3RhdGljIHZvaWQgaGFuZGxlX3RsYl9wZW5kaW5nX2V2ZW50KHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCBpbnQgcmluZ19pZCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2Z3B1LT5ndnQtPmRldl9wcml2OwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCXN0cnVjdCBpbnRlbF92Z3B1X3N1Ym1pc3Npb24gKnMgPSAmdmdwdS0+c3VibWlzc2lvbjsKKwl1MzIgKnJlZ3MgPSB2Z3B1LT5ndnQtPmVuZ2luZV9tbWlvX2xpc3QudGxiX21taW9fb2Zmc2V0X2xpc3Q7CisJdTMyIGNudCA9IHZncHUtPmd2dC0+ZW5naW5lX21taW9fbGlzdC50bGJfbW1pb19vZmZzZXRfbGlzdF9jbnQ7CiAJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmdzsKIAlpOTE1X3JlZ190IHJlZzsKLQl1MzIgcmVnc1tdID0gewotCQlbUkNTMF0gID0gMHg0MjYwLAotCQlbVkNTMF0gID0gMHg0MjY0LAotCQlbVkNTMV0gID0gMHg0MjY4LAotCQlbQkNTMF0gID0gMHg0MjZjLAotCQlbVkVDUzBdID0gMHg0MjcwLAotCX07CiAKLQlpZiAoV0FSTl9PTihyaW5nX2lkID49IEFSUkFZX1NJWkUocmVncykpKQorCWlmICghcmVncykKKwkJcmV0dXJuOworCisJaWYgKFdBUk5fT04ocmluZ19pZCA+PSBjbnQpKQogCQlyZXR1cm47CiAKIAlpZiAoIXRlc3RfYW5kX2NsZWFyX2JpdChyaW5nX2lkLCAodm9pZCAqKXMtPnRsYl9oYW5kbGVfcGVuZGluZykpCkBAIC01NjUsMTAgKzU3OSwxNyBAQCB2b2lkIGludGVsX2d2dF9pbml0X2VuZ2luZV9tbWlvX2NvbnRleHQoc3RydWN0IGludGVsX2d2dCAqZ3Z0KQogewogCXN0cnVjdCBlbmdpbmVfbW1pbyAqbW1pbzsKIAotCWlmIChJTlRFTF9HRU4oZ3Z0LT5kZXZfcHJpdikgPj0gOSkKKwlpZiAoSU5URUxfR0VOKGd2dC0+ZGV2X3ByaXYpID49IDkpIHsKIAkJZ3Z0LT5lbmdpbmVfbW1pb19saXN0Lm1taW8gPSBnZW45X2VuZ2luZV9tbWlvX2xpc3Q7Ci0JZWxzZQorCQlndnQtPmVuZ2luZV9tbWlvX2xpc3QudGxiX21taW9fb2Zmc2V0X2xpc3QgPSBnZW44X3RsYl9tbWlvX29mZnNldF9saXN0OworCQlndnQtPmVuZ2luZV9tbWlvX2xpc3QudGxiX21taW9fb2Zmc2V0X2xpc3RfY250ID0gQVJSQVlfU0laRShnZW44X3RsYl9tbWlvX29mZnNldF9saXN0KTsKKwkJZ3Z0LT5lbmdpbmVfbW1pb19saXN0Lm1vY3NfbW1pb19vZmZzZXRfbGlzdCA9IGdlbjlfbW9jc19tbWlvX29mZnNldF9saXN0OworCQlndnQtPmVuZ2luZV9tbWlvX2xpc3QubW9jc19tbWlvX29mZnNldF9saXN0X2NudCA9IEFSUkFZX1NJWkUoZ2VuOV9tb2NzX21taW9fb2Zmc2V0X2xpc3QpOworCX0gZWxzZSB7CiAJCWd2dC0+ZW5naW5lX21taW9fbGlzdC5tbWlvID0gZ2VuOF9lbmdpbmVfbW1pb19saXN0OworCQlndnQtPmVuZ2luZV9tbWlvX2xpc3QudGxiX21taW9fb2Zmc2V0X2xpc3QgPSBnZW44X3RsYl9tbWlvX29mZnNldF9saXN0OworCQlndnQtPmVuZ2luZV9tbWlvX2xpc3QudGxiX21taW9fb2Zmc2V0X2xpc3RfY250ID0gQVJSQVlfU0laRShnZW44X3RsYl9tbWlvX29mZnNldF9saXN0KTsKKwl9CiAKIAlmb3IgKG1taW8gPSBndnQtPmVuZ2luZV9tbWlvX2xpc3QubW1pbzsKIAkgICAgIGk5MTVfbW1pb19yZWdfdmFsaWQobW1pby0+cmVnKTsgbW1pbysrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMKaW5kZXggNzViYWZmNi4uNmM3OWQxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYwpAQCAtODQsOCArODQsOCBAQCBzdGF0aWMgdm9pZCBzcl9vYV9yZWdzKHN0cnVjdCBpbnRlbF92Z3B1X3dvcmtsb2FkICp3b3JrbG9hZCwKIAkJdTMyICpyZWdfc3RhdGUsIGJvb2wgc2F2ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB3b3JrbG9hZC0+dmdwdS0+Z3Z0LT5kZXZfcHJpdjsKLQl1MzIgY3R4X29hY3R4Y3RybCA9IGRldl9wcml2LT5wZXJmLm9hLmN0eF9vYWN0eGN0cmxfb2Zmc2V0OwotCXUzMiBjdHhfZmxleGV1MCA9IGRldl9wcml2LT5wZXJmLm9hLmN0eF9mbGV4ZXUwX29mZnNldDsKKwl1MzIgY3R4X29hY3R4Y3RybCA9IGRldl9wcml2LT5wZXJmLmN0eF9vYWN0eGN0cmxfb2Zmc2V0OworCXUzMiBjdHhfZmxleGV1MCA9IGRldl9wcml2LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNldDsKIAlpbnQgaSA9IDA7CiAJdTMyIGZsZXhfbW1pb1tdID0gewogCQlpOTE1X21taW9fcmVnX29mZnNldChFVV9QRVJGX0NOVEwwKSwKQEAgLTI5MSw5ICsyOTEsNiBAQCBzaGFkb3dfY29udGV4dF9kZXNjcmlwdG9yX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJICogVXBkYXRlIGJpdHMgMC0xMSBvZiB0aGUgY29udGV4dCBkZXNjcmlwdG9yIHdoaWNoIGluY2x1ZGVzIGZsYWdzCiAJICogbGlrZSBHRU44X0NUWF8qIGNhY2hlZCBpbiBkZXNjX3RlbXBsYXRlCiAJICovCi0JZGVzYyAmPSBVNjRfTUFYIDw8IDEyOwotCWRlc2MgfD0gY2UtPmdlbV9jb250ZXh0LT5kZXNjX3RlbXBsYXRlICYgKCgxVUxMIDw8IDEyKSAtIDEpOwotCiAJZGVzYyAmPSB+KDB4MyA8PCBHRU44X0NUWF9BRERSRVNTSU5HX01PREVfU0hJRlQpOwogCWRlc2MgfD0gd29ya2xvYWQtPmN0eF9kZXNjLmFkZHJlc3NpbmdfbW9kZSA8PAogCQlHRU44X0NUWF9BRERSRVNTSU5HX01PREVfU0hJRlQ7CkBAIC01NzEsNiArNTY4LDE2IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9zaGFkb3dfd2FfY3R4KHN0cnVjdCBpbnRlbF9zaGFkb3dfd2FfY3R4ICp3YV9jdHgpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHVwZGF0ZV92cmVnX2luX2N0eChzdHJ1Y3QgaW50ZWxfdmdwdV93b3JrbG9hZCAqd29ya2xvYWQpCit7CisJc3RydWN0IGludGVsX3ZncHUgKnZncHUgPSB3b3JrbG9hZC0+dmdwdTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2Z3B1LT5ndnQtPmRldl9wcml2OworCXUzMiByaW5nX2Jhc2U7CisKKwlyaW5nX2Jhc2UgPSBkZXZfcHJpdi0+ZW5naW5lW3dvcmtsb2FkLT5yaW5nX2lkXS0+bW1pb19iYXNlOworCXZncHVfdnJlZ190KHZncHUsIFJJTkdfU1RBUlQocmluZ19iYXNlKSkgPSB3b3JrbG9hZC0+cmJfc3RhcnQ7Cit9CisKIHN0YXRpYyB2b2lkIHJlbGVhc2Vfc2hhZG93X2JhdGNoX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfdmdwdV93b3JrbG9hZCAqd29ya2xvYWQpCiB7CiAJc3RydWN0IGludGVsX3ZncHUgKnZncHUgPSB3b3JrbG9hZC0+dmdwdTsKQEAgLTEwMTksNiArMTAyNiwxMyBAQCBzdGF0aWMgaW50IHdvcmtsb2FkX3RocmVhZCh2b2lkICpwcml2KQogCQlpZiAobmVlZF9mb3JjZV93YWtlKQogCQkJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoJmd2dC0+ZGV2X3ByaXYtPnVuY29yZSwKIAkJCQkJRk9SQ0VXQUtFX0FMTCk7CisJCS8qCisJCSAqIFVwZGF0ZSB0aGUgdlJlZyBvZiB0aGUgdkdQVSB3aGljaCBzdWJtaXR0ZWQgdGhpcworCQkgKiB3b3JrbG9hZC4gVGhlIHZHUFUgbWF5IHVzZSB0aGVzZSByZWdpc3RlcnMgZm9yIGNoZWNraW5nCisJCSAqIHRoZSBjb250ZXh0IHN0YXRlLiBUaGUgdmFsdWUgY29tZXMgZnJvbSBHUFUgY29tbWFuZHMKKwkJICogaW4gdGhpcyB3b3JrbG9hZC4KKwkJICovCisJCXVwZGF0ZV92cmVnX2luX2N0eCh3b3JrbG9hZCk7CiAKIAkJcmV0ID0gZGlzcGF0Y2hfd29ya2xvYWQod29ya2xvYWQpOwogCkBAIC0xMTU3LDcgKzExNzEsNyBAQCB2b2lkIGludGVsX3ZncHVfY2xlYW5fc3VibWlzc2lvbihzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAogCWludGVsX3ZncHVfc2VsZWN0X3N1Ym1pc3Npb25fb3BzKHZncHUsIEFMTF9FTkdJTkVTLCAwKTsKIAotCWk5MTVfY29udGV4dF9wcGd0dF9yb290X3Jlc3RvcmUocywgaTkxNV92bV90b19wcGd0dChzLT5zaGFkb3dbMF0tPmdlbV9jb250ZXh0LT52bSkpOworCWk5MTVfY29udGV4dF9wcGd0dF9yb290X3Jlc3RvcmUocywgaTkxNV92bV90b19wcGd0dChzLT5zaGFkb3dbMF0tPnZtKSk7CiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgdmdwdS0+Z3Z0LT5kZXZfcHJpdiwgaWQpCiAJCWludGVsX2NvbnRleHRfdW5waW4ocy0+c2hhZG93W2lkXSk7CiAKQEAgLTEyMTUsMzAgKzEyMjksNDMgQEAgaTkxNV9jb250ZXh0X3BwZ3R0X3Jvb3Rfc2F2ZShzdHJ1Y3QgaW50ZWxfdmdwdV9zdWJtaXNzaW9uICpzLAogICovCiBpbnQgaW50ZWxfdmdwdV9zZXR1cF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdmdwdS0+Z3Z0LT5kZXZfcHJpdjsKIAlzdHJ1Y3QgaW50ZWxfdmdwdV9zdWJtaXNzaW9uICpzID0gJnZncHUtPnN1Ym1pc3Npb247CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaTsKIAlpbnQgcmV0OwogCi0JY3R4ID0gaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfZ3Z0KCZ2Z3B1LT5ndnQtPmRldl9wcml2LT5kcm0pOwotCWlmIChJU19FUlIoY3R4KSkKLQkJcmV0dXJuIFBUUl9FUlIoY3R4KTsKKwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCWN0eCA9IGk5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2tlcm5lbChpOTE1LCBJOTE1X1BSSU9SSVRZX01BWCk7CisJaWYgKElTX0VSUihjdHgpKSB7CisJCXJldCA9IFBUUl9FUlIoY3R4KTsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKworCWk5MTVfZ2VtX2NvbnRleHRfc2V0X2ZvcmNlX3NpbmdsZV9zdWJtaXNzaW9uKGN0eCk7CiAKIAlpOTE1X2NvbnRleHRfcHBndHRfcm9vdF9zYXZlKHMsIGk5MTVfdm1fdG9fcHBndHQoY3R4LT52bSkpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgdmdwdS0+Z3Z0LT5kZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGkpIHsKIAkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCiAJCUlOSVRfTElTVF9IRUFEKCZzLT53b3JrbG9hZF9xX2hlYWRbaV0pOwogCQlzLT5zaGFkb3dbaV0gPSBFUlJfUFRSKC1FSU5WQUwpOwogCi0JCWNlID0gaTkxNV9nZW1fY29udGV4dF9nZXRfZW5naW5lKGN0eCwgaSk7CisJCWNlID0gaW50ZWxfY29udGV4dF9jcmVhdGUoY3R4LCBlbmdpbmUpOwogCQlpZiAoSVNfRVJSKGNlKSkgewogCQkJcmV0ID0gUFRSX0VSUihjZSk7CiAJCQlnb3RvIG91dF9zaGFkb3dfY3R4OwogCQl9CiAKKwkJaWYgKCFVU0VTX0dVQ19TVUJNSVNTSU9OKGk5MTUpKSB7IC8qIE1heCByaW5nIGJ1ZmZlciBzaXplICovCisJCQljb25zdCB1bnNpZ25lZCBpbnQgcmluZ19zaXplID0gNTEyICogU1pfNEs7CisKKwkJCWNlLT5yaW5nID0gX19pbnRlbF9jb250ZXh0X3Jpbmdfc2l6ZShyaW5nX3NpemUpOworCQl9CisKIAkJcmV0ID0gaW50ZWxfY29udGV4dF9waW4oY2UpOwogCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7CiAJCWlmIChyZXQpCkBAIC0xMjY1LDE3ICsxMjkyLDIxIEBAIGludCBpbnRlbF92Z3B1X3NldHVwX3N1Ym1pc3Npb24oc3RydWN0IGludGVsX3ZncHUgKnZncHUpCiAJYml0bWFwX3plcm8ocy0+dGxiX2hhbmRsZV9wZW5kaW5nLCBJOTE1X05VTV9FTkdJTkVTKTsKIAogCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGN0eCk7CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlyZXR1cm4gMDsKIAogb3V0X3NoYWRvd19jdHg6CiAJaTkxNV9jb250ZXh0X3BwZ3R0X3Jvb3RfcmVzdG9yZShzLCBpOTE1X3ZtX3RvX3BwZ3R0KGN0eC0+dm0pKTsKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCB2Z3B1LT5ndnQtPmRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaSkgewogCQlpZiAoSVNfRVJSKHMtPnNoYWRvd1tpXSkpCiAJCQlicmVhazsKIAogCQlpbnRlbF9jb250ZXh0X3VucGluKHMtPnNoYWRvd1tpXSk7CisJCWludGVsX2NvbnRleHRfcHV0KHMtPnNoYWRvd1tpXSk7CiAJfQogCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGN0eCk7CitvdXRfdW5sb2NrOgorCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTQyNCw5ICsxNDU1LDYgQEAgc3RhdGljIGludCBwcmVwYXJlX21tKHN0cnVjdCBpbnRlbF92Z3B1X3dvcmtsb2FkICp3b3JrbG9hZCkKICNkZWZpbmUgc2FtZV9jb250ZXh0KGEsIGIpICgoKGEpLT5jb250ZXh0X2lkID09IChiKS0+Y29udGV4dF9pZCkgJiYgXAogCQkoKGEpLT5scmNhID09IChiKS0+bHJjYSkpCiAKLSNkZWZpbmUgZ2V0X2xhc3Rfd29ya2xvYWQocSkgXAotCShsaXN0X2VtcHR5KHEpID8gTlVMTCA6IGNvbnRhaW5lcl9vZihxLT5wcmV2LCBcCi0Jc3RydWN0IGludGVsX3ZncHVfd29ya2xvYWQsIGxpc3QpKQogLyoqCiAgKiBpbnRlbF92Z3B1X2NyZWF0ZV93b3JrbG9hZCAtIGNyZWF0ZSBhIHZHUFUgd29ya2xvYWQKICAqIEB2Z3B1OiBhIHZHUFUKQEAgLTE0NDYsNyArMTQ3NCw3IEBAIGludGVsX3ZncHVfY3JlYXRlX3dvcmtsb2FkKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCBpbnQgcmluZ19pZCwKIHsKIAlzdHJ1Y3QgaW50ZWxfdmdwdV9zdWJtaXNzaW9uICpzID0gJnZncHUtPnN1Ym1pc3Npb247CiAJc3RydWN0IGxpc3RfaGVhZCAqcSA9IHdvcmtsb2FkX3FfaGVhZCh2Z3B1LCByaW5nX2lkKTsKLQlzdHJ1Y3QgaW50ZWxfdmdwdV93b3JrbG9hZCAqbGFzdF93b3JrbG9hZCA9IGdldF9sYXN0X3dvcmtsb2FkKHEpOworCXN0cnVjdCBpbnRlbF92Z3B1X3dvcmtsb2FkICpsYXN0X3dvcmtsb2FkID0gTlVMTDsKIAlzdHJ1Y3QgaW50ZWxfdmdwdV93b3JrbG9hZCAqd29ya2xvYWQgPSBOVUxMOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHZncHUtPmd2dC0+ZGV2X3ByaXY7CiAJdTY0IHJpbmdfY29udGV4dF9ncGE7CkBAIC0xNDcyLDE1ICsxNTAwLDIwIEBAIGludGVsX3ZncHVfY3JlYXRlX3dvcmtsb2FkKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCBpbnQgcmluZ19pZCwKIAloZWFkICY9IFJCX0hFQURfT0ZGX01BU0s7CiAJdGFpbCAmPSBSQl9UQUlMX09GRl9NQVNLOwogCi0JaWYgKGxhc3Rfd29ya2xvYWQgJiYgc2FtZV9jb250ZXh0KCZsYXN0X3dvcmtsb2FkLT5jdHhfZGVzYywgZGVzYykpIHsKLQkJZ3Z0X2RiZ19lbCgicmluZyBpZCAlZCBjdXIgd29ya2xvYWQgPT0gbGFzdFxuIiwgcmluZ19pZCk7Ci0JCWd2dF9kYmdfZWwoImN0eCBoZWFkICV4IHJlYWwgaGVhZCAlbHhcbiIsIGhlYWQsCi0JCQkJbGFzdF93b3JrbG9hZC0+cmJfdGFpbCk7Ci0JCS8qCi0JCSAqIGNhbm5vdCB1c2UgZ3Vlc3QgY29udGV4dCBoZWFkIHBvaW50ZXIgaGVyZSwKLQkJICogYXMgaXQgbWlnaHQgbm90IGJlIHVwZGF0ZWQgYXQgdGhpcyB0aW1lCi0JCSAqLwotCQloZWFkID0gbGFzdF93b3JrbG9hZC0+cmJfdGFpbDsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JldmVyc2UobGFzdF93b3JrbG9hZCwgcSwgbGlzdCkgeworCisJCWlmIChzYW1lX2NvbnRleHQoJmxhc3Rfd29ya2xvYWQtPmN0eF9kZXNjLCBkZXNjKSkgeworCQkJZ3Z0X2RiZ19lbCgicmluZyBpZCAlZCBjdXIgd29ya2xvYWQgPT0gbGFzdFxuIiwKKwkJCQkJcmluZ19pZCk7CisJCQlndnRfZGJnX2VsKCJjdHggaGVhZCAleCByZWFsIGhlYWQgJWx4XG4iLCBoZWFkLAorCQkJCQlsYXN0X3dvcmtsb2FkLT5yYl90YWlsKTsKKwkJCS8qCisJCQkgKiBjYW5ub3QgdXNlIGd1ZXN0IGNvbnRleHQgaGVhZCBwb2ludGVyIGhlcmUsCisJCQkgKiBhcyBpdCBtaWdodCBub3QgYmUgdXBkYXRlZCBhdCB0aGlzIHRpbWUKKwkJCSAqLworCQkJaGVhZCA9IGxhc3Rfd29ya2xvYWQtPnJiX3RhaWw7CisJCQlicmVhazsKKwkJfQogCX0KIAogCWd2dF9kYmdfZWwoInJpbmcgaWQgJWQgYmVnaW4gYSBuZXcgd29ya2xvYWRcbiIsIHJpbmdfaWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC92Z3B1LmMKaW5kZXggNDRjZTNjMi4uZDVhNmU0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvdmdwdS5jCkBAIC00MjAsOSArNDIwLDcgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF92Z3B1ICpfX2ludGVsX2d2dF9jcmVhdGVfdmdwdShzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQsCiAJaWYgKHJldCkKIAkJZ290byBvdXRfY2xlYW5fc3VibWlzc2lvbjsKIAotCXJldCA9IGludGVsX2d2dF9kZWJ1Z2ZzX2FkZF92Z3B1KHZncHUpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0X2NsZWFuX3NjaGVkX3BvbGljeTsKKwlpbnRlbF9ndnRfZGVidWdmc19hZGRfdmdwdSh2Z3B1KTsKIAogCXJldCA9IGludGVsX2d2dF9oeXBlcnZpc29yX3NldF9vcHJlZ2lvbih2Z3B1KTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMKaW5kZXggMjkzZTViYy4uNDhlMTZhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jCkBAIC00LDYgKzQsOCBAQAogICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KICAqLwogCisjaW5jbHVkZSA8bGludXgvZGVidWdvYmplY3RzLmg+CisKICNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfcG0uaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCkBAIC0zMSw0OSArMzMsMTQ5IEBAIHN0cnVjdCBhY3RpdmVfbm9kZSB7CiAJdTY0IHRpbWVsaW5lOwogfTsKIAotc3RhdGljIHZvaWQKLV9fYWN0aXZlX3Bhcmsoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhY3RpdmVfbm9kZSAqCitub2RlX2Zyb21fYWN0aXZlKHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUpCiB7Ci0Jc3RydWN0IGFjdGl2ZV9ub2RlICppdCwgKm47Ci0KLQlyYnRyZWVfcG9zdG9yZGVyX2Zvcl9lYWNoX2VudHJ5X3NhZmUoaXQsIG4sICZyZWYtPnRyZWUsIG5vZGUpIHsKLQkJR0VNX0JVR19PTihpOTE1X2FjdGl2ZV9yZXF1ZXN0X2lzc2V0KCZpdC0+YmFzZSkpOwotCQlrbWVtX2NhY2hlX2ZyZWUoZ2xvYmFsLnNsYWJfY2FjaGUsIGl0KTsKLQl9Ci0JcmVmLT50cmVlID0gUkJfUk9PVDsKKwlyZXR1cm4gY29udGFpbmVyX29mKGFjdGl2ZSwgc3RydWN0IGFjdGl2ZV9ub2RlLCBiYXNlKTsKIH0KIAorI2RlZmluZSB0YWtlX3ByZWFsbG9jYXRlZF9iYXJyaWVycyh4KSBsbGlzdF9kZWxfYWxsKCYoeCktPnByZWFsbG9jYXRlZF9iYXJyaWVycykKKworc3RhdGljIGlubGluZSBib29sIGlzX2JhcnJpZXIoY29uc3Qgc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSkKK3sKKwlyZXR1cm4gSVNfRVJSKHJjdV9hY2Nlc3NfcG9pbnRlcihhY3RpdmUtPnJlcXVlc3QpKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgbGxpc3Rfbm9kZSAqYmFycmllcl90b19sbChzdHJ1Y3QgYWN0aXZlX25vZGUgKm5vZGUpCit7CisJR0VNX0JVR19PTighaXNfYmFycmllcigmbm9kZS0+YmFzZSkpOworCXJldHVybiAoc3RydWN0IGxsaXN0X25vZGUgKikmbm9kZS0+YmFzZS5saW5rOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKgorX19iYXJyaWVyX3RvX2VuZ2luZShzdHJ1Y3QgYWN0aXZlX25vZGUgKm5vZGUpCit7CisJcmV0dXJuIChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopUkVBRF9PTkNFKG5vZGUtPmJhc2UubGluay5wcmV2KTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoKK2JhcnJpZXJfdG9fZW5naW5lKHN0cnVjdCBhY3RpdmVfbm9kZSAqbm9kZSkKK3sKKwlHRU1fQlVHX09OKCFpc19iYXJyaWVyKCZub2RlLT5iYXNlKSk7CisJcmV0dXJuIF9fYmFycmllcl90b19lbmdpbmUobm9kZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFjdGl2ZV9ub2RlICpiYXJyaWVyX2Zyb21fbGwoc3RydWN0IGxsaXN0X25vZGUgKngpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZigoc3RydWN0IGxpc3RfaGVhZCAqKXgsCisJCQkgICAgc3RydWN0IGFjdGl2ZV9ub2RlLCBiYXNlLmxpbmspOworfQorCisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKSAmJiBJU19FTkFCTEVEKENPTkZJR19ERUJVR19PQkpFQ1RTKQorCitzdGF0aWMgdm9pZCAqYWN0aXZlX2RlYnVnX2hpbnQodm9pZCAqYWRkcikKK3sKKwlzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiA9IGFkZHI7CisKKwlyZXR1cm4gKHZvaWQgKilyZWYtPmFjdGl2ZSA/OiAodm9pZCAqKXJlZi0+cmV0aXJlID86ICh2b2lkICopcmVmOworfQorCitzdGF0aWMgc3RydWN0IGRlYnVnX29ial9kZXNjciBhY3RpdmVfZGVidWdfZGVzYyA9IHsKKwkubmFtZSA9ICJpOTE1X2FjdGl2ZSIsCisJLmRlYnVnX2hpbnQgPSBhY3RpdmVfZGVidWdfaGludCwKK307CisKK3N0YXRpYyB2b2lkIGRlYnVnX2FjdGl2ZV9pbml0KHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQoreworCWRlYnVnX29iamVjdF9pbml0KHJlZiwgJmFjdGl2ZV9kZWJ1Z19kZXNjKTsKK30KKworc3RhdGljIHZvaWQgZGVidWdfYWN0aXZlX2FjdGl2YXRlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQoreworCWRlYnVnX29iamVjdF9hY3RpdmF0ZShyZWYsICZhY3RpdmVfZGVidWdfZGVzYyk7Cit9CisKK3N0YXRpYyB2b2lkIGRlYnVnX2FjdGl2ZV9kZWFjdGl2YXRlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQoreworCWRlYnVnX29iamVjdF9kZWFjdGl2YXRlKHJlZiwgJmFjdGl2ZV9kZWJ1Z19kZXNjKTsKK30KKworc3RhdGljIHZvaWQgZGVidWdfYWN0aXZlX2Zpbmkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCit7CisJZGVidWdfb2JqZWN0X2ZyZWUocmVmLCAmYWN0aXZlX2RlYnVnX2Rlc2MpOworfQorCitzdGF0aWMgdm9pZCBkZWJ1Z19hY3RpdmVfYXNzZXJ0KHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQoreworCWRlYnVnX29iamVjdF9hc3NlcnRfaW5pdChyZWYsICZhY3RpdmVfZGVidWdfZGVzYyk7Cit9CisKKyNlbHNlCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBkZWJ1Z19hY3RpdmVfaW5pdChzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgZGVidWdfYWN0aXZlX2FjdGl2YXRlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBkZWJ1Z19hY3RpdmVfZGVhY3RpdmF0ZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgZGVidWdfYWN0aXZlX2Zpbmkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpIHsgfQorc3RhdGljIGlubGluZSB2b2lkIGRlYnVnX2FjdGl2ZV9hc3NlcnQoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpIHsgfQorCisjZW5kaWYKKwogc3RhdGljIHZvaWQKIF9fYWN0aXZlX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikKIHsKLQlHRU1fQlVHX09OKCFyZWYtPmNvdW50KTsKLQlpZiAoLS1yZWYtPmNvdW50KQorCXN0cnVjdCBhY3RpdmVfbm9kZSAqaXQsICpuOworCXN0cnVjdCByYl9yb290IHJvb3Q7CisJYm9vbCByZXRpcmUgPSBmYWxzZTsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnJlZi0+bXV0ZXgpOworCisJLyogcmV0dXJuIHRoZSB1bnVzZWQgbm9kZXMgdG8gb3VyIHNsYWJjYWNoZSAtLSBmbHVzaGluZyB0aGUgYWxsb2NhdG9yICovCisJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJnJlZi0+Y291bnQpKSB7CisJCWRlYnVnX2FjdGl2ZV9kZWFjdGl2YXRlKHJlZik7CisJCXJvb3QgPSByZWYtPnRyZWU7CisJCXJlZi0+dHJlZSA9IFJCX1JPT1Q7CisJCXJlZi0+Y2FjaGUgPSBOVUxMOworCQlyZXRpcmUgPSB0cnVlOworCX0KKworCW11dGV4X3VubG9jaygmcmVmLT5tdXRleCk7CisJaWYgKCFyZXRpcmUpCiAJCXJldHVybjsKIAotCS8qIHJldHVybiB0aGUgdW51c2VkIG5vZGVzIHRvIG91ciBzbGFiY2FjaGUgKi8KLQlfX2FjdGl2ZV9wYXJrKHJlZik7CisJcmJ0cmVlX3Bvc3RvcmRlcl9mb3JfZWFjaF9lbnRyeV9zYWZlKGl0LCBuLCAmcm9vdCwgbm9kZSkgeworCQlHRU1fQlVHX09OKGk5MTVfYWN0aXZlX3JlcXVlc3RfaXNzZXQoJml0LT5iYXNlKSk7CisJCWttZW1fY2FjaGVfZnJlZShnbG9iYWwuc2xhYl9jYWNoZSwgaXQpOworCX0KIAotCXJlZi0+cmV0aXJlKHJlZik7CisJLyogQWZ0ZXIgdGhlIGZpbmFsIHJldGlyZSwgdGhlIGVudGlyZSBzdHJ1Y3QgbWF5IGJlIGZyZWVkICovCisJaWYgKHJlZi0+cmV0aXJlKQorCQlyZWYtPnJldGlyZShyZWYpOworfQorCitzdGF0aWMgdm9pZAorYWN0aXZlX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikKK3sKKwlHRU1fQlVHX09OKCFhdG9taWNfcmVhZCgmcmVmLT5jb3VudCkpOworCWlmIChhdG9taWNfYWRkX3VubGVzcygmcmVmLT5jb3VudCwgLTEsIDEpKQorCQlyZXR1cm47CisKKwkvKiBPbmUgYWN0aXZlIG1heSBiZSBmbHVzaGVkIGZyb20gaW5zaWRlIHRoZSBhY3F1aXJlIG9mIGFub3RoZXIgKi8KKwltdXRleF9sb2NrX25lc3RlZCgmcmVmLT5tdXRleCwgU0lOR0xFX0RFUFRIX05FU1RJTkcpOworCV9fYWN0aXZlX3JldGlyZShyZWYpOwogfQogCiBzdGF0aWMgdm9pZAogbm9kZV9yZXRpcmUoc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmJhc2UsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewotCV9fYWN0aXZlX3JldGlyZShjb250YWluZXJfb2YoYmFzZSwgc3RydWN0IGFjdGl2ZV9ub2RlLCBiYXNlKS0+cmVmKTsKLX0KLQotc3RhdGljIHZvaWQKLWxhc3RfcmV0aXJlKHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICpiYXNlLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKLXsKLQlfX2FjdGl2ZV9yZXRpcmUoY29udGFpbmVyX29mKGJhc2UsIHN0cnVjdCBpOTE1X2FjdGl2ZSwgbGFzdCkpOworCWFjdGl2ZV9yZXRpcmUobm9kZV9mcm9tX2FjdGl2ZShiYXNlKS0+cmVmKTsKIH0KIAogc3RhdGljIHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICoKLWFjdGl2ZV9pbnN0YW5jZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiwgdTY0IGlkeCkKK2FjdGl2ZV9pbnN0YW5jZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiwgc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCkKIHsKLQlzdHJ1Y3QgYWN0aXZlX25vZGUgKm5vZGU7CisJc3RydWN0IGFjdGl2ZV9ub2RlICpub2RlLCAqcHJlYWxsb2M7CiAJc3RydWN0IHJiX25vZGUgKipwLCAqcGFyZW50OwotCXN0cnVjdCBpOTE1X3JlcXVlc3QgKm9sZDsKKwl1NjQgaWR4ID0gdGwtPmZlbmNlX2NvbnRleHQ7CiAKIAkvKgogCSAqIFdlIHRyYWNrIHRoZSBtb3N0IHJlY2VudGx5IHVzZWQgdGltZWxpbmUgdG8gc2tpcCBhIHJidHJlZSBzZWFyY2gKQEAgLTgxLDIwICsxODMsMTggQEAgYWN0aXZlX2luc3RhbmNlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLCB1NjQgaWR4KQogCSAqIGF0IGFsbC4gV2UgY2FuIHJldXNlIHRoZSBsYXN0IHNsb3QgaWYgaXQgaXMgZW1wdHksIHRoYXQgaXMKIAkgKiBhZnRlciB0aGUgcHJldmlvdXMgYWN0aXZpdHkgaGFzIGJlZW4gcmV0aXJlZCwgb3IgaWYgaXQgbWF0Y2hlcyB0aGUKIAkgKiBjdXJyZW50IHRpbWVsaW5lLgotCSAqCi0JICogTm90ZSB0aGF0IHdlIGFsbG93IHRoZSB0aW1lbGluZSB0byBiZSBhY3RpdmUgc2ltdWx0YW5lb3VzbHkgaW4KLQkgKiB0aGUgcmJ0cmVlIGFuZCB0aGUgbGFzdCBjYWNoZS4gV2UgZG8gdGhpcyB0byBhdm9pZCBoYXZpbmcKLQkgKiB0byBzZWFyY2ggYW5kIHJlcGxhY2UgdGhlIHJidHJlZSBlbGVtZW50IGZvciBhIG5ldyB0aW1lbGluZSwgd2l0aAotCSAqIHRoZSBjb3N0IGJlaW5nIHRoYXQgd2UgbXVzdCBiZSBhd2FyZSB0aGF0IHRoZSByZWYgbWF5IGJlIHJldGlyZWQKLQkgKiB0d2ljZSBmb3IgdGhlIHNhbWUgdGltZWxpbmUgKGFzIHRoZSBvbGRlciByYnRyZWUgZWxlbWVudCB3aWxsIGJlCi0JICogcmV0aXJlZCBiZWZvcmUgdGhlIG5ldyByZXF1ZXN0IGFkZGVkIHRvIGxhc3QpLgogCSAqLwotCW9sZCA9IGk5MTVfYWN0aXZlX3JlcXVlc3RfcmF3KCZyZWYtPmxhc3QsIEJLTChyZWYpKTsKLQlpZiAoIW9sZCB8fCBvbGQtPmZlbmNlLmNvbnRleHQgPT0gaWR4KQotCQlnb3RvIG91dDsKKwlub2RlID0gUkVBRF9PTkNFKHJlZi0+Y2FjaGUpOworCWlmIChub2RlICYmIG5vZGUtPnRpbWVsaW5lID09IGlkeCkKKwkJcmV0dXJuICZub2RlLT5iYXNlOwogCi0JLyogTW92ZSB0aGUgY3VycmVudGx5IGFjdGl2ZSBmZW5jZSBpbnRvIHRoZSByYnRyZWUgKi8KLQlpZHggPSBvbGQtPmZlbmNlLmNvbnRleHQ7CisJLyogUHJlYWxsb2NhdGUgYSByZXBsYWNlbWVudCwganVzdCBpbiBjYXNlICovCisJcHJlYWxsb2MgPSBrbWVtX2NhY2hlX2FsbG9jKGdsb2JhbC5zbGFiX2NhY2hlLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByZWFsbG9jKQorCQlyZXR1cm4gTlVMTDsKKworCW11dGV4X2xvY2soJnJlZi0+bXV0ZXgpOworCUdFTV9CVUdfT04oaTkxNV9hY3RpdmVfaXNfaWRsZShyZWYpKTsKIAogCXBhcmVudCA9IE5VTEw7CiAJcCA9ICZyZWYtPnRyZWUucmJfbm9kZTsKQEAgLTEwMiw4ICsyMDIsMTAgQEAgYWN0aXZlX2luc3RhbmNlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLCB1NjQgaWR4KQogCQlwYXJlbnQgPSAqcDsKIAogCQlub2RlID0gcmJfZW50cnkocGFyZW50LCBzdHJ1Y3QgYWN0aXZlX25vZGUsIG5vZGUpOwotCQlpZiAobm9kZS0+dGltZWxpbmUgPT0gaWR4KQotCQkJZ290byByZXBsYWNlOworCQlpZiAobm9kZS0+dGltZWxpbmUgPT0gaWR4KSB7CisJCQlrbWVtX2NhY2hlX2ZyZWUoZ2xvYmFsLnNsYWJfY2FjaGUsIHByZWFsbG9jKTsKKwkJCWdvdG8gb3V0OworCQl9CiAKIAkJaWYgKG5vZGUtPnRpbWVsaW5lIDwgaWR4KQogCQkJcCA9ICZwYXJlbnQtPnJiX3JpZ2h0OwpAQCAtMTExLDExNyArMjEzLDIzMCBAQCBhY3RpdmVfaW5zdGFuY2Uoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYsIHU2NCBpZHgpCiAJCQlwID0gJnBhcmVudC0+cmJfbGVmdDsKIAl9CiAKLQlub2RlID0ga21lbV9jYWNoZV9hbGxvYyhnbG9iYWwuc2xhYl9jYWNoZSwgR0ZQX0tFUk5FTCk7Ci0KLQkvKiBrbWFsbG9jIG1heSByZXRpcmUgdGhlIHJlZi0+bGFzdCAodGhhbmtzIHNocmlua2VyKSEgKi8KLQlpZiAodW5saWtlbHkoIWk5MTVfYWN0aXZlX3JlcXVlc3RfcmF3KCZyZWYtPmxhc3QsIEJLTChyZWYpKSkpIHsKLQkJa21lbV9jYWNoZV9mcmVlKGdsb2JhbC5zbGFiX2NhY2hlLCBub2RlKTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JaWYgKHVubGlrZWx5KCFub2RlKSkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQlpOTE1X2FjdGl2ZV9yZXF1ZXN0X2luaXQoJm5vZGUtPmJhc2UsIE5VTEwsIG5vZGVfcmV0aXJlKTsKKwlub2RlID0gcHJlYWxsb2M7CisJaTkxNV9hY3RpdmVfcmVxdWVzdF9pbml0KCZub2RlLT5iYXNlLCAmdGwtPm11dGV4LCBOVUxMLCBub2RlX3JldGlyZSk7CiAJbm9kZS0+cmVmID0gcmVmOwogCW5vZGUtPnRpbWVsaW5lID0gaWR4OwogCiAJcmJfbGlua19ub2RlKCZub2RlLT5ub2RlLCBwYXJlbnQsIHApOwogCXJiX2luc2VydF9jb2xvcigmbm9kZS0+bm9kZSwgJnJlZi0+dHJlZSk7CiAKLXJlcGxhY2U6Ci0JLyoKLQkgKiBPdmVyd3JpdGUgdGhlIHByZXZpb3VzIGFjdGl2ZSBzbG90IGluIHRoZSByYnRyZWUgd2l0aCBsYXN0LAotCSAqIGxlYXZpbmcgbGFzdCB6ZXJvZWQuIElmIHRoZSBwcmV2aW91cyBzbG90IGlzIHN0aWxsIGFjdGl2ZSwKLQkgKiB3ZSBtdXN0IGJlIGNhcmVmdWwgYXMgd2Ugbm93IG9ubHkgZXhwZWN0IHRvIHJlY2VpdmUgb25lIHJldGlyZQotCSAqIGNhbGxiYWNrIG5vdCB0d28sIGFuZCBzbyBtdWNoIHVuZG8gdGhlIGFjdGl2ZSBjb3VudGluZyBmb3IgdGhlCi0JICogb3ZlcndyaXR0ZW4gc2xvdC4KLQkgKi8KLQlpZiAoaTkxNV9hY3RpdmVfcmVxdWVzdF9pc3NldCgmbm9kZS0+YmFzZSkpIHsKLQkJLyogUmV0aXJlIG91cnNlbHZlcyBmcm9tIHRoZSBvbGQgcnEtPmFjdGl2ZV9saXN0ICovCi0JCV9fbGlzdF9kZWxfZW50cnkoJm5vZGUtPmJhc2UubGluayk7Ci0JCXJlZi0+Y291bnQtLTsKLQkJR0VNX0JVR19PTighcmVmLT5jb3VudCk7Ci0JfQotCUdFTV9CVUdfT04obGlzdF9lbXB0eSgmcmVmLT5sYXN0LmxpbmspKTsKLQlsaXN0X3JlcGxhY2VfaW5pdCgmcmVmLT5sYXN0LmxpbmssICZub2RlLT5iYXNlLmxpbmspOwotCW5vZGUtPmJhc2UucmVxdWVzdCA9IGZldGNoX2FuZF96ZXJvKCZyZWYtPmxhc3QucmVxdWVzdCk7Ci0KIG91dDoKLQlyZXR1cm4gJnJlZi0+bGFzdDsKKwlyZWYtPmNhY2hlID0gbm9kZTsKKwltdXRleF91bmxvY2soJnJlZi0+bXV0ZXgpOworCisJQlVJTERfQlVHX09OKG9mZnNldG9mKHR5cGVvZigqbm9kZSksIGJhc2UpKTsKKwlyZXR1cm4gJm5vZGUtPmJhc2U7CiB9CiAKLXZvaWQgaTkxNV9hY3RpdmVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJICAgICAgc3RydWN0IGk5MTVfYWN0aXZlICpyZWYsCi0JCSAgICAgIHZvaWQgKCpyZXRpcmUpKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKSkKK3ZvaWQgX19pOTE1X2FjdGl2ZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJc3RydWN0IGk5MTVfYWN0aXZlICpyZWYsCisJCQlpbnQgKCphY3RpdmUpKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKSwKKwkJCXZvaWQgKCpyZXRpcmUpKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKSwKKwkJCXN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KQogeworCWRlYnVnX2FjdGl2ZV9pbml0KHJlZik7CisKIAlyZWYtPmk5MTUgPSBpOTE1OworCXJlZi0+ZmxhZ3MgPSAwOworCXJlZi0+YWN0aXZlID0gYWN0aXZlOwogCXJlZi0+cmV0aXJlID0gcmV0aXJlOwogCXJlZi0+dHJlZSA9IFJCX1JPT1Q7Ci0JaTkxNV9hY3RpdmVfcmVxdWVzdF9pbml0KCZyZWYtPmxhc3QsIE5VTEwsIGxhc3RfcmV0aXJlKTsKLQlpbml0X2xsaXN0X2hlYWQoJnJlZi0+YmFycmllcnMpOwotCXJlZi0+Y291bnQgPSAwOworCXJlZi0+Y2FjaGUgPSBOVUxMOworCWluaXRfbGxpc3RfaGVhZCgmcmVmLT5wcmVhbGxvY2F0ZWRfYmFycmllcnMpOworCWF0b21pY19zZXQoJnJlZi0+Y291bnQsIDApOworCV9fbXV0ZXhfaW5pdCgmcmVmLT5tdXRleCwgImk5MTVfYWN0aXZlIiwga2V5KTsKK30KKworc3RhdGljIGJvb2wgX19fX2FjdGl2ZV9kZWxfYmFycmllcihzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiwKKwkJCQkgICBzdHJ1Y3QgYWN0aXZlX25vZGUgKm5vZGUsCisJCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorCit7CisJc3RydWN0IGxsaXN0X25vZGUgKmhlYWQgPSBOVUxMLCAqdGFpbCA9IE5VTEw7CisJc3RydWN0IGxsaXN0X25vZGUgKnBvcywgKm5leHQ7CisKKwlHRU1fQlVHX09OKG5vZGUtPnRpbWVsaW5lICE9IGVuZ2luZS0+a2VybmVsX2NvbnRleHQtPnRpbWVsaW5lLT5mZW5jZV9jb250ZXh0KTsKKworCS8qCisJICogUmVidWlsZCB0aGUgbGxpc3QgZXhjbHVkaW5nIG91ciBub2RlLiBXZSBtYXkgcGVyZm9ybSB0aGlzCisJICogb3V0c2lkZSBvZiB0aGUga2VybmVsX2NvbnRleHQgdGltZWxpbmUgbXV0ZXggYW5kIHNvIHNvbWVvbmUKKwkgKiBlbHNlIG1heSBiZSBtYW5pcHVsYXRpbmcgdGhlIGVuZ2luZS0+YmFycmllcl90YXNrcywgaW4KKwkgKiB3aGljaCBjYXNlIGVpdGhlciB3ZSBvciB0aGV5IHdpbGwgYmUgdXBzZXQgOikKKwkgKgorCSAqIEEgc2Vjb25kIF9fYWN0aXZlX2RlbF9iYXJyaWVyKCkgd2lsbCByZXBvcnQgZmFpbHVyZSB0byBjbGFpbQorCSAqIHRoZSBhY3RpdmVfbm9kZSBhbmQgdGhlIGNhbGxlciB3aWxsIGp1c3Qgc2hydWcgYW5kIGtub3cgbm90IHRvCisJICogY2xhaW0gb3duZXJzaGlwIG9mIGl0cyBub2RlLgorCSAqCisJICogQSBjb25jdXJyZW50IGk5MTVfcmVxdWVzdF9hZGRfYWN0aXZlX2JhcnJpZXJzKCkgd2lsbCBtaXNzIGFkZGluZworCSAqIGFueSBvZiB0aGUgdGFza3MsIGJ1dCB3ZSB3aWxsIHRyeSBhZ2FpbiBvbiB0aGUgbmV4dCAtLSBhbmQgc2luY2UKKwkgKiB3ZSBhcmUgYWN0aXZlbHkgdXNpbmcgdGhlIGJhcnJpZXIsIHdlIGtub3cgdGhhdCB0aGVyZSB3aWxsIGJlCisJICogYXQgbGVhc3QgYW5vdGhlciBvcHBvcnR1bml0eSB3aGVuIHdlIGlkbGUuCisJICovCisJbGxpc3RfZm9yX2VhY2hfc2FmZShwb3MsIG5leHQsIGxsaXN0X2RlbF9hbGwoJmVuZ2luZS0+YmFycmllcl90YXNrcykpIHsKKwkJaWYgKG5vZGUgPT0gYmFycmllcl9mcm9tX2xsKHBvcykpIHsKKwkJCW5vZGUgPSBOVUxMOworCQkJY29udGludWU7CisJCX0KKworCQlwb3MtPm5leHQgPSBoZWFkOworCQloZWFkID0gcG9zOworCQlpZiAoIXRhaWwpCisJCQl0YWlsID0gcG9zOworCX0KKwlpZiAoaGVhZCkKKwkJbGxpc3RfYWRkX2JhdGNoKGhlYWQsIHRhaWwsICZlbmdpbmUtPmJhcnJpZXJfdGFza3MpOworCisJcmV0dXJuICFub2RlOworfQorCitzdGF0aWMgYm9vbAorX19hY3RpdmVfZGVsX2JhcnJpZXIoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYsIHN0cnVjdCBhY3RpdmVfbm9kZSAqbm9kZSkKK3sKKwlyZXR1cm4gX19fX2FjdGl2ZV9kZWxfYmFycmllcihyZWYsIG5vZGUsIGJhcnJpZXJfdG9fZW5naW5lKG5vZGUpKTsKIH0KIAogaW50IGk5MTVfYWN0aXZlX3JlZihzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiwKLQkJICAgIHU2NCB0aW1lbGluZSwKKwkJICAgIHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwsCiAJCSAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKIAlzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCAqYWN0aXZlOwotCWludCBlcnIgPSAwOworCWludCBlcnI7CisKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ0bC0+bXV0ZXgpOwogCiAJLyogUHJldmVudCByZWFwaW5nIGluIGNhc2Ugd2UgbWFsbG9jL3dhaXQgd2hpbGUgYnVpbGRpbmcgdGhlIHRyZWUgKi8KLQlpOTE1X2FjdGl2ZV9hY3F1aXJlKHJlZik7CisJZXJyID0gaTkxNV9hY3RpdmVfYWNxdWlyZShyZWYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CiAKLQlhY3RpdmUgPSBhY3RpdmVfaW5zdGFuY2UocmVmLCB0aW1lbGluZSk7Ci0JaWYgKElTX0VSUihhY3RpdmUpKSB7Ci0JCWVyciA9IFBUUl9FUlIoYWN0aXZlKTsKKwlhY3RpdmUgPSBhY3RpdmVfaW5zdGFuY2UocmVmLCB0bCk7CisJaWYgKCFhY3RpdmUpIHsKKwkJZXJyID0gLUVOT01FTTsKIAkJZ290byBvdXQ7CiAJfQogCi0JaWYgKCFpOTE1X2FjdGl2ZV9yZXF1ZXN0X2lzc2V0KGFjdGl2ZSkpCi0JCXJlZi0+Y291bnQrKzsKKwlpZiAoaXNfYmFycmllcihhY3RpdmUpKSB7IC8qIHByb3RvLW5vZGUgdXNlZCBieSBvdXIgaWRsZSBiYXJyaWVyICovCisJCS8qCisJCSAqIFRoaXMgcmVxdWVzdCBpcyBvbiB0aGUga2VybmVsX2NvbnRleHQgdGltZWxpbmUsIGFuZCBzbworCQkgKiB3ZSBjYW4gdXNlIGl0IHRvIHN1YnN0aXR1dGUgZm9yIHRoZSBwZW5kaW5nIGlkbGUtYmFycmVyCisJCSAqIHJlcXVlc3QgdGhhdCB3ZSB3YW50IHRvIGVtaXQgb24gdGhlIGtlcm5lbF9jb250ZXh0LgorCQkgKi8KKwkJX19hY3RpdmVfZGVsX2JhcnJpZXIocmVmLCBub2RlX2Zyb21fYWN0aXZlKGFjdGl2ZSkpOworCQlSQ1VfSU5JVF9QT0lOVEVSKGFjdGl2ZS0+cmVxdWVzdCwgTlVMTCk7CisJCUlOSVRfTElTVF9IRUFEKCZhY3RpdmUtPmxpbmspOworCX0gZWxzZSB7CisJCWlmICghaTkxNV9hY3RpdmVfcmVxdWVzdF9pc3NldChhY3RpdmUpKQorCQkJYXRvbWljX2luYygmcmVmLT5jb3VudCk7CisJfQorCUdFTV9CVUdfT04oIWF0b21pY19yZWFkKCZyZWYtPmNvdW50KSk7CiAJX19pOTE1X2FjdGl2ZV9yZXF1ZXN0X3NldChhY3RpdmUsIHJxKTsKIAotCUdFTV9CVUdfT04oIXJlZi0+Y291bnQpOwogb3V0OgogCWk5MTVfYWN0aXZlX3JlbGVhc2UocmVmKTsKIAlyZXR1cm4gZXJyOwogfQogCi1ib29sIGk5MTVfYWN0aXZlX2FjcXVpcmUoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCitpbnQgaTkxNV9hY3RpdmVfYWNxdWlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikKIHsKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKEJLTChyZWYpKTsKLQlyZXR1cm4gIXJlZi0+Y291bnQrKzsKKwlpbnQgZXJyOworCisJZGVidWdfYWN0aXZlX2Fzc2VydChyZWYpOworCWlmIChhdG9taWNfYWRkX3VubGVzcygmcmVmLT5jb3VudCwgMSwgMCkpCisJCXJldHVybiAwOworCisJZXJyID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZyZWYtPm11dGV4KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJaWYgKCFhdG9taWNfcmVhZCgmcmVmLT5jb3VudCkgJiYgcmVmLT5hY3RpdmUpCisJCWVyciA9IHJlZi0+YWN0aXZlKHJlZik7CisJaWYgKCFlcnIpIHsKKwkJZGVidWdfYWN0aXZlX2FjdGl2YXRlKHJlZik7CisJCWF0b21pY19pbmMoJnJlZi0+Y291bnQpOworCX0KKworCW11dGV4X3VubG9jaygmcmVmLT5tdXRleCk7CisKKwlyZXR1cm4gZXJyOwogfQogCiB2b2lkIGk5MTVfYWN0aXZlX3JlbGVhc2Uoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCiB7Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZChCS0wocmVmKSk7Ci0JX19hY3RpdmVfcmV0aXJlKHJlZik7CisJZGVidWdfYWN0aXZlX2Fzc2VydChyZWYpOworCWFjdGl2ZV9yZXRpcmUocmVmKTsKK30KKworc3RhdGljIHZvaWQgX19hY3RpdmVfdW5ncmFiKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQoreworCWNsZWFyX2FuZF93YWtlX3VwX2JpdChJOTE1X0FDVElWRV9HUkFCX0JJVCwgJnJlZi0+ZmxhZ3MpOworfQorCitib29sIGk5MTVfYWN0aXZlX3RyeWdyYWIoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCit7CisJZGVidWdfYWN0aXZlX2Fzc2VydChyZWYpOworCisJaWYgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9BQ1RJVkVfR1JBQl9CSVQsICZyZWYtPmZsYWdzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKCFhdG9taWNfYWRkX3VubGVzcygmcmVmLT5jb3VudCwgMSwgMCkpIHsKKwkJX19hY3RpdmVfdW5ncmFiKHJlZik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBpOTE1X2FjdGl2ZV91bmdyYWIoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCit7CisJR0VNX0JVR19PTighdGVzdF9iaXQoSTkxNV9BQ1RJVkVfR1JBQl9CSVQsICZyZWYtPmZsYWdzKSk7CisKKwlhY3RpdmVfcmV0aXJlKHJlZik7CisJX19hY3RpdmVfdW5ncmFiKHJlZik7CiB9CiAKIGludCBpOTE1X2FjdGl2ZV93YWl0KHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQogewogCXN0cnVjdCBhY3RpdmVfbm9kZSAqaXQsICpuOwotCWludCByZXQgPSAwOworCWludCBlcnI7CiAKLQlpZiAoaTkxNV9hY3RpdmVfYWNxdWlyZShyZWYpKQotCQlnb3RvIG91dF9yZWxlYXNlOworCW1pZ2h0X3NsZWVwKCk7CisJbWlnaHRfbG9jaygmcmVmLT5tdXRleCk7CiAKLQlyZXQgPSBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3JldGlyZSgmcmVmLT5sYXN0LCBCS0wocmVmKSk7Ci0JaWYgKHJldCkKLQkJZ290byBvdXRfcmVsZWFzZTsKKwlpZiAoaTkxNV9hY3RpdmVfaXNfaWRsZShyZWYpKQorCQlyZXR1cm4gMDsKKworCWVyciA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmcmVmLT5tdXRleCk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWlmICghYXRvbWljX2FkZF91bmxlc3MoJnJlZi0+Y291bnQsIDEsIDApKSB7CisJCW11dGV4X3VubG9jaygmcmVmLT5tdXRleCk7CisJCXJldHVybiAwOworCX0KIAogCXJidHJlZV9wb3N0b3JkZXJfZm9yX2VhY2hfZW50cnlfc2FmZShpdCwgbiwgJnJlZi0+dHJlZSwgbm9kZSkgewotCQlyZXQgPSBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3JldGlyZSgmaXQtPmJhc2UsIEJLTChyZWYpKTsKLQkJaWYgKHJldCkKKwkJaWYgKGlzX2JhcnJpZXIoJml0LT5iYXNlKSkgeyAvKiB1bmNvbm5lY3RlZCBpZGxlLWJhcnJpZXIgKi8KKwkJCWVyciA9IC1FQlVTWTsKKwkJCWJyZWFrOworCQl9CisKKwkJZXJyID0gaTkxNV9hY3RpdmVfcmVxdWVzdF9yZXRpcmUoJml0LT5iYXNlLCBCS0wocmVmKSk7CisJCWlmIChlcnIpCiAJCQlicmVhazsKIAl9CiAKLW91dF9yZWxlYXNlOgotCWk5MTVfYWN0aXZlX3JlbGVhc2UocmVmKTsKLQlyZXR1cm4gcmV0OworCV9fYWN0aXZlX3JldGlyZShyZWYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlpZiAod2FpdF9vbl9iaXQoJnJlZi0+ZmxhZ3MsIEk5MTVfQUNUSVZFX0dSQUJfQklULCBUQVNLX0tJTExBQkxFKSkKKwkJcmV0dXJuIC1FSU5UUjsKKworCWlmICghaTkxNV9hY3RpdmVfaXNfaWRsZShyZWYpKQorCQlyZXR1cm4gLUVCVVNZOworCisJcmV0dXJuIDA7CiB9CiAKIGludCBpOTE1X3JlcXVlc3RfYXdhaXRfYWN0aXZlX3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCkBAIC0yMzYsMjMgKzQ1MSwyNCBAQCBpbnQgaTkxNV9yZXF1ZXN0X2F3YWl0X2FjdGl2ZV9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogaW50IGk5MTVfcmVxdWVzdF9hd2FpdF9hY3RpdmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQogewogCXN0cnVjdCBhY3RpdmVfbm9kZSAqaXQsICpuOwotCWludCBlcnIgPSAwOworCWludCBlcnI7CisKKwlpZiAoUkJfRU1QVFlfUk9PVCgmcmVmLT50cmVlKSkKKwkJcmV0dXJuIDA7CiAKIAkvKiBhd2FpdCBhbGxvY2F0ZXMgYW5kIHNvIHdlIG5lZWQgdG8gYXZvaWQgaGl0dGluZyB0aGUgc2hyaW5rZXIgKi8KLQlpZiAoaTkxNV9hY3RpdmVfYWNxdWlyZShyZWYpKQotCQlnb3RvIG91dDsgLyogd2FzIGlkbGUgKi8KLQotCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9hY3RpdmVfcmVxdWVzdChycSwgJnJlZi0+bGFzdCk7CisJZXJyID0gaTkxNV9hY3RpdmVfYWNxdWlyZShyZWYpOwogCWlmIChlcnIpCi0JCWdvdG8gb3V0OworCQlyZXR1cm4gZXJyOwogCisJbXV0ZXhfbG9jaygmcmVmLT5tdXRleCk7CiAJcmJ0cmVlX3Bvc3RvcmRlcl9mb3JfZWFjaF9lbnRyeV9zYWZlKGl0LCBuLCAmcmVmLT50cmVlLCBub2RlKSB7CiAJCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9hY3RpdmVfcmVxdWVzdChycSwgJml0LT5iYXNlKTsKIAkJaWYgKGVycikKLQkJCWdvdG8gb3V0OworCQkJYnJlYWs7CiAJfQorCW11dGV4X3VubG9jaygmcmVmLT5tdXRleCk7CiAKLW91dDoKIAlpOTE1X2FjdGl2ZV9yZWxlYXNlKHJlZik7CiAJcmV0dXJuIGVycjsKIH0KQEAgLTI2MCw1MyArNDc2LDE3MCBAQCBpbnQgaTkxNV9yZXF1ZXN0X2F3YWl0X2FjdGl2ZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKQogdm9pZCBpOTE1X2FjdGl2ZV9maW5pKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQogewotCUdFTV9CVUdfT04oaTkxNV9hY3RpdmVfcmVxdWVzdF9pc3NldCgmcmVmLT5sYXN0KSk7CisJZGVidWdfYWN0aXZlX2ZpbmkocmVmKTsKIAlHRU1fQlVHX09OKCFSQl9FTVBUWV9ST09UKCZyZWYtPnRyZWUpKTsKLQlHRU1fQlVHX09OKHJlZi0+Y291bnQpOworCUdFTV9CVUdfT04oYXRvbWljX3JlYWQoJnJlZi0+Y291bnQpKTsKKwltdXRleF9kZXN0cm95KCZyZWYtPm11dGV4KTsKIH0KICNlbmRpZgogCitzdGF0aWMgaW5saW5lIGJvb2wgaXNfaWRsZV9iYXJyaWVyKHN0cnVjdCBhY3RpdmVfbm9kZSAqbm9kZSwgdTY0IGlkeCkKK3sKKwlyZXR1cm4gbm9kZS0+dGltZWxpbmUgPT0gaWR4ICYmICFpOTE1X2FjdGl2ZV9yZXF1ZXN0X2lzc2V0KCZub2RlLT5iYXNlKTsKK30KKworc3RhdGljIHN0cnVjdCBhY3RpdmVfbm9kZSAqcmV1c2VfaWRsZV9iYXJyaWVyKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLCB1NjQgaWR4KQoreworCXN0cnVjdCByYl9ub2RlICpwcmV2LCAqcDsKKworCWlmIChSQl9FTVBUWV9ST09UKCZyZWYtPnRyZWUpKQorCQlyZXR1cm4gTlVMTDsKKworCW11dGV4X2xvY2soJnJlZi0+bXV0ZXgpOworCUdFTV9CVUdfT04oaTkxNV9hY3RpdmVfaXNfaWRsZShyZWYpKTsKKworCS8qCisJICogVHJ5IHRvIHJldXNlIGFueSBleGlzdGluZyBiYXJyaWVyIG5vZGVzIGFscmVhZHkgYWxsb2NhdGVkIGZvciB0aGlzCisJICogaTkxNV9hY3RpdmUsIGR1ZSB0byBvdmVybGFwcGluZyBhY3RpdmUgcGhhc2VzIHRoZXJlIGlzIGxpa2VseSBhCisJICogbm9kZSBrZXB0IGFsaXZlIChhcyB3ZSByZXVzZSBiZWZvcmUgcGFya2luZykuIFdlIHByZWZlciB0byByZXVzZQorCSAqIGNvbXBsZXRlbHkgaWRsZSBiYXJyaWVycyAobGVzcyBoYXNzbGUgaW4gbWFuaXB1bGF0aW5nIHRoZSBsbGlzdHMpLAorCSAqIGJ1dCBvdGhlcndpc2UgYW55IHdpbGwgZG8uCisJICovCisJaWYgKHJlZi0+Y2FjaGUgJiYgaXNfaWRsZV9iYXJyaWVyKHJlZi0+Y2FjaGUsIGlkeCkpIHsKKwkJcCA9ICZyZWYtPmNhY2hlLT5ub2RlOworCQlnb3RvIG1hdGNoOworCX0KKworCXByZXYgPSBOVUxMOworCXAgPSByZWYtPnRyZWUucmJfbm9kZTsKKwl3aGlsZSAocCkgeworCQlzdHJ1Y3QgYWN0aXZlX25vZGUgKm5vZGUgPQorCQkJcmJfZW50cnkocCwgc3RydWN0IGFjdGl2ZV9ub2RlLCBub2RlKTsKKworCQlpZiAoaXNfaWRsZV9iYXJyaWVyKG5vZGUsIGlkeCkpCisJCQlnb3RvIG1hdGNoOworCisJCXByZXYgPSBwOworCQlpZiAobm9kZS0+dGltZWxpbmUgPCBpZHgpCisJCQlwID0gcC0+cmJfcmlnaHQ7CisJCWVsc2UKKwkJCXAgPSBwLT5yYl9sZWZ0OworCX0KKworCS8qCisJICogTm8gcXVpY2sgbWF0Y2gsIGJ1dCB3ZSBkaWQgZmluZCB0aGUgbGVmdG1vc3QgcmJfbm9kZSBmb3IgdGhlCisJICoga2VybmVsX2NvbnRleHQuIFdhbGsgdGhlIHJiX3RyZWUgaW4tb3JkZXIgdG8gc2VlIGlmIHRoZXJlIHdlcmUKKwkgKiBhbnkgaWRsZS1iYXJyaWVycyBvbiB0aGlzIHRpbWVsaW5lIHRoYXQgd2UgbWlzc2VkLCBvciBqdXN0IHVzZQorCSAqIHRoZSBmaXJzdCBwZW5kaW5nIGJhcnJpZXIuCisJICovCisJZm9yIChwID0gcHJldjsgcDsgcCA9IHJiX25leHQocCkpIHsKKwkJc3RydWN0IGFjdGl2ZV9ub2RlICpub2RlID0KKwkJCXJiX2VudHJ5KHAsIHN0cnVjdCBhY3RpdmVfbm9kZSwgbm9kZSk7CisJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKworCQlpZiAobm9kZS0+dGltZWxpbmUgPiBpZHgpCisJCQlicmVhazsKKworCQlpZiAobm9kZS0+dGltZWxpbmUgPCBpZHgpCisJCQljb250aW51ZTsKKworCQlpZiAoaXNfaWRsZV9iYXJyaWVyKG5vZGUsIGlkeCkpCisJCQlnb3RvIG1hdGNoOworCisJCS8qCisJCSAqIFRoZSBsaXN0IG9mIHBlbmRpbmcgYmFycmllcnMgaXMgcHJvdGVjdGVkIGJ5IHRoZQorCQkgKiBrZXJuZWxfY29udGV4dCB0aW1lbGluZSwgd2hpY2ggbm90YWJseSB3ZSBkbyBub3QgaG9sZAorCQkgKiBoZXJlLiBpOTE1X3JlcXVlc3RfYWRkX2FjdGl2ZV9iYXJyaWVycygpIG1heSBjb25zdW1lCisJCSAqIHRoZSBiYXJyaWVyIGJlZm9yZSB3ZSBjbGFpbSBpdCwgc28gd2UgaGF2ZSB0byBjaGVjaworCQkgKiBmb3Igc3VjY2Vzcy4KKwkJICovCisJCWVuZ2luZSA9IF9fYmFycmllcl90b19lbmdpbmUobm9kZSk7CisJCXNtcF9ybWIoKTsgLyogc2VyaWFsaXNlIHdpdGggYWRkX2FjdGl2ZV9iYXJyaWVycyAqLworCQlpZiAoaXNfYmFycmllcigmbm9kZS0+YmFzZSkgJiYKKwkJICAgIF9fX19hY3RpdmVfZGVsX2JhcnJpZXIocmVmLCBub2RlLCBlbmdpbmUpKQorCQkJZ290byBtYXRjaDsKKwl9CisKKwltdXRleF91bmxvY2soJnJlZi0+bXV0ZXgpOworCisJcmV0dXJuIE5VTEw7CisKK21hdGNoOgorCXJiX2VyYXNlKHAsICZyZWYtPnRyZWUpOyAvKiBIaWRlIGZyb20gd2FpdHMgYW5kIHNpYmxpbmcgYWxsb2NhdGlvbnMgKi8KKwlpZiAocCA9PSAmcmVmLT5jYWNoZS0+bm9kZSkKKwkJcmVmLT5jYWNoZSA9IE5VTEw7CisJbXV0ZXhfdW5sb2NrKCZyZWYtPm11dGV4KTsKKworCXJldHVybiByYl9lbnRyeShwLCBzdHJ1Y3QgYWN0aXZlX25vZGUsIG5vZGUpOworfQorCiBpbnQgaTkxNV9hY3RpdmVfYWNxdWlyZV9wcmVhbGxvY2F0ZV9iYXJyaWVyKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLAogCQkJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1OworCWludGVsX2VuZ2luZV9tYXNrX3QgdG1wLCBtYXNrID0gZW5naW5lLT5tYXNrOwogCXN0cnVjdCBsbGlzdF9ub2RlICpwb3MsICpuZXh0OwotCXVuc2lnbmVkIGxvbmcgdG1wOwogCWludCBlcnI7CiAKLQlHRU1fQlVHX09OKCFlbmdpbmUtPm1hc2spOwotCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBpOTE1LCBlbmdpbmUtPm1hc2ssIHRtcCkgewotCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqa2N0eCA9IGVuZ2luZS0+a2VybmVsX2NvbnRleHQ7CisJR0VNX0JVR19PTighbGxpc3RfZW1wdHkoJnJlZi0+cHJlYWxsb2NhdGVkX2JhcnJpZXJzKSk7CisKKwkvKgorCSAqIFByZWFsbG9jYXRlIGEgbm9kZSBmb3IgZWFjaCBwaHlzaWNhbCBlbmdpbmUgc3VwcG9ydGluZyB0aGUgdGFyZ2V0CisJICogZW5naW5lIChyZW1lbWJlciB2aXJ0dWFsIGVuZ2luZXMgaGF2ZSBtb3JlIHRoYW4gb25lIHNpYmxpbmcpLgorCSAqIFdlIGNhbiB0aGVuIHVzZSB0aGUgcHJlYWxsb2NhdGVkIG5vZGVzIGluCisJICogaTkxNV9hY3RpdmVfYWNxdWlyZV9iYXJyaWVyKCkKKwkgKi8KKwlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgaTkxNSwgbWFzaywgdG1wKSB7CisJCXU2NCBpZHggPSBlbmdpbmUtPmtlcm5lbF9jb250ZXh0LT50aW1lbGluZS0+ZmVuY2VfY29udGV4dDsKIAkJc3RydWN0IGFjdGl2ZV9ub2RlICpub2RlOwogCi0JCW5vZGUgPSBrbWVtX2NhY2hlX2FsbG9jKGdsb2JhbC5zbGFiX2NhY2hlLCBHRlBfS0VSTkVMKTsKLQkJaWYgKHVubGlrZWx5KCFub2RlKSkgewotCQkJZXJyID0gLUVOT01FTTsKLQkJCWdvdG8gdW53aW5kOworCQlub2RlID0gcmV1c2VfaWRsZV9iYXJyaWVyKHJlZiwgaWR4KTsKKwkJaWYgKCFub2RlKSB7CisJCQlub2RlID0ga21lbV9jYWNoZV9hbGxvYyhnbG9iYWwuc2xhYl9jYWNoZSwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoIW5vZGUpIHsKKwkJCQllcnIgPSBFTk9NRU07CisJCQkJZ290byB1bndpbmQ7CisJCQl9CisKKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVR19HRU0pCisJCQlub2RlLT5iYXNlLmxvY2sgPQorCQkJCSZlbmdpbmUtPmtlcm5lbF9jb250ZXh0LT50aW1lbGluZS0+bXV0ZXg7CisjZW5kaWYKKwkJCVJDVV9JTklUX1BPSU5URVIobm9kZS0+YmFzZS5yZXF1ZXN0LCBOVUxMKTsKKwkJCW5vZGUtPmJhc2UucmV0aXJlID0gbm9kZV9yZXRpcmU7CisJCQlub2RlLT50aW1lbGluZSA9IGlkeDsKKwkJCW5vZGUtPnJlZiA9IHJlZjsKIAkJfQogCi0JCWk5MTVfYWN0aXZlX3JlcXVlc3RfaW5pdCgmbm9kZS0+YmFzZSwKLQkJCQkJICh2b2lkICopZW5naW5lLCBub2RlX3JldGlyZSk7Ci0JCW5vZGUtPnRpbWVsaW5lID0ga2N0eC0+cmluZy0+dGltZWxpbmUtPmZlbmNlX2NvbnRleHQ7Ci0JCW5vZGUtPnJlZiA9IHJlZjsKLQkJcmVmLT5jb3VudCsrOworCQlpZiAoIWk5MTVfYWN0aXZlX3JlcXVlc3RfaXNzZXQoJm5vZGUtPmJhc2UpKSB7CisJCQkvKgorCQkJICogTWFyayB0aGlzIGFzIGJlaW5nICpvdXIqIHVuY29ubmVjdGVkIHByb3RvLW5vZGUuCisJCQkgKgorCQkJICogU2luY2UgdGhpcyBub2RlIGlzIG5vdCBpbiBhbnkgbGlzdCwgYW5kIHdlIGhhdmUKKwkJCSAqIGRlY291cGxlZCBpdCBmcm9tIHRoZSByYnRyZWUsIHdlIGNhbiByZXVzZSB0aGUKKwkJCSAqIHJlcXVlc3QgdG8gaW5kaWNhdGUgdGhpcyBpcyBhbiBpZGxlLWJhcnJpZXIgbm9kZQorCQkJICogYW5kIHRoZW4gd2UgY2FuIHVzZSB0aGUgcmJfbm9kZSBhbmQgbGlzdCBwb2ludGVycworCQkJICogZm9yIG91ciB0cmFja2luZyBvZiB0aGUgcGVuZGluZyBiYXJyaWVyLgorCQkJICovCisJCQlSQ1VfSU5JVF9QT0lOVEVSKG5vZGUtPmJhc2UucmVxdWVzdCwgRVJSX1BUUigtRUFHQUlOKSk7CisJCQlub2RlLT5iYXNlLmxpbmsucHJldiA9ICh2b2lkICopZW5naW5lOworCQkJYXRvbWljX2luYygmcmVmLT5jb3VudCk7CisJCX0KIAorCQlHRU1fQlVHX09OKGJhcnJpZXJfdG9fZW5naW5lKG5vZGUpICE9IGVuZ2luZSk7CisJCWxsaXN0X2FkZChiYXJyaWVyX3RvX2xsKG5vZGUpLCAmcmVmLT5wcmVhbGxvY2F0ZWRfYmFycmllcnMpOwogCQlpbnRlbF9lbmdpbmVfcG1fZ2V0KGVuZ2luZSk7Ci0JCWxsaXN0X2FkZCgoc3RydWN0IGxsaXN0X25vZGUgKikmbm9kZS0+YmFzZS5saW5rLAotCQkJICAmcmVmLT5iYXJyaWVycyk7CiAJfQogCiAJcmV0dXJuIDA7CiAKIHVud2luZDoKLQlsbGlzdF9mb3JfZWFjaF9zYWZlKHBvcywgbmV4dCwgbGxpc3RfZGVsX2FsbCgmcmVmLT5iYXJyaWVycykpIHsKLQkJc3RydWN0IGFjdGl2ZV9ub2RlICpub2RlOworCWxsaXN0X2Zvcl9lYWNoX3NhZmUocG9zLCBuZXh0LCB0YWtlX3ByZWFsbG9jYXRlZF9iYXJyaWVycyhyZWYpKSB7CisJCXN0cnVjdCBhY3RpdmVfbm9kZSAqbm9kZSA9IGJhcnJpZXJfZnJvbV9sbChwb3MpOwogCi0JCW5vZGUgPSBjb250YWluZXJfb2YoKHN0cnVjdCBsaXN0X2hlYWQgKilwb3MsCi0JCQkJICAgIHR5cGVvZigqbm9kZSksIGJhc2UubGluayk7Ci0JCWVuZ2luZSA9ICh2b2lkICopcmN1X2FjY2Vzc19wb2ludGVyKG5vZGUtPmJhc2UucmVxdWVzdCk7CisJCWF0b21pY19kZWMoJnJlZi0+Y291bnQpOworCQlpbnRlbF9lbmdpbmVfcG1fcHV0KGJhcnJpZXJfdG9fZW5naW5lKG5vZGUpKTsKIAotCQlpbnRlbF9lbmdpbmVfcG1fcHV0KGVuZ2luZSk7CiAJCWttZW1fY2FjaGVfZnJlZShnbG9iYWwuc2xhYl9jYWNoZSwgbm9kZSk7CiAJfQogCXJldHVybiBlcnI7CkBAIC0zMTYsMjYgKzY0OSwyOSBAQCB2b2lkIGk5MTVfYWN0aXZlX2FjcXVpcmVfYmFycmllcihzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikKIHsKIAlzdHJ1Y3QgbGxpc3Rfbm9kZSAqcG9zLCAqbmV4dDsKIAotCWk5MTVfYWN0aXZlX2FjcXVpcmUocmVmKTsKKwlHRU1fQlVHX09OKGk5MTVfYWN0aXZlX2lzX2lkbGUocmVmKSk7CiAKLQlsbGlzdF9mb3JfZWFjaF9zYWZlKHBvcywgbmV4dCwgbGxpc3RfZGVsX2FsbCgmcmVmLT5iYXJyaWVycykpIHsKLQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCQlzdHJ1Y3QgYWN0aXZlX25vZGUgKm5vZGU7CisJLyoKKwkgKiBUcmFuc2ZlciB0aGUgbGlzdCBvZiBwcmVhbGxvY2F0ZWQgYmFycmllcnMgaW50byB0aGUKKwkgKiBpOTE1X2FjdGl2ZSByYnRyZWUsIGJ1dCBvbmx5IGFzIHByb3RvLW5vZGVzLiBUaGV5IHdpbGwgYmUKKwkgKiBwb3B1bGF0ZWQgYnkgaTkxNV9yZXF1ZXN0X2FkZF9hY3RpdmVfYmFycmllcnMoKSB0byBwb2ludCB0byB0aGUKKwkgKiByZXF1ZXN0IHRoYXQgd2lsbCBldmVudHVhbGx5IHJlbGVhc2UgdGhlbS4KKwkgKi8KKwltdXRleF9sb2NrX25lc3RlZCgmcmVmLT5tdXRleCwgU0lOR0xFX0RFUFRIX05FU1RJTkcpOworCWxsaXN0X2Zvcl9lYWNoX3NhZmUocG9zLCBuZXh0LCB0YWtlX3ByZWFsbG9jYXRlZF9iYXJyaWVycyhyZWYpKSB7CisJCXN0cnVjdCBhY3RpdmVfbm9kZSAqbm9kZSA9IGJhcnJpZXJfZnJvbV9sbChwb3MpOworCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBiYXJyaWVyX3RvX2VuZ2luZShub2RlKTsKIAkJc3RydWN0IHJiX25vZGUgKipwLCAqcGFyZW50OwogCi0JCW5vZGUgPSBjb250YWluZXJfb2YoKHN0cnVjdCBsaXN0X2hlYWQgKilwb3MsCi0JCQkJICAgIHR5cGVvZigqbm9kZSksIGJhc2UubGluayk7Ci0KLQkJZW5naW5lID0gKHZvaWQgKilyY3VfYWNjZXNzX3BvaW50ZXIobm9kZS0+YmFzZS5yZXF1ZXN0KTsKLQkJUkNVX0lOSVRfUE9JTlRFUihub2RlLT5iYXNlLnJlcXVlc3QsIEVSUl9QVFIoLUVBR0FJTikpOwotCiAJCXBhcmVudCA9IE5VTEw7CiAJCXAgPSAmcmVmLT50cmVlLnJiX25vZGU7CiAJCXdoaWxlICgqcCkgeworCQkJc3RydWN0IGFjdGl2ZV9ub2RlICppdDsKKwogCQkJcGFyZW50ID0gKnA7Ci0JCQlpZiAocmJfZW50cnkocGFyZW50LAotCQkJCSAgICAgc3RydWN0IGFjdGl2ZV9ub2RlLAotCQkJCSAgICAgbm9kZSktPnRpbWVsaW5lIDwgbm9kZS0+dGltZWxpbmUpCisKKwkJCWl0ID0gcmJfZW50cnkocGFyZW50LCBzdHJ1Y3QgYWN0aXZlX25vZGUsIG5vZGUpOworCQkJaWYgKGl0LT50aW1lbGluZSA8IG5vZGUtPnRpbWVsaW5lKQogCQkJCXAgPSAmcGFyZW50LT5yYl9yaWdodDsKIAkJCWVsc2UKIAkJCQlwID0gJnBhcmVudC0+cmJfbGVmdDsKQEAgLTM0MywyMCArNjc5LDMwIEBAIHZvaWQgaTkxNV9hY3RpdmVfYWNxdWlyZV9iYXJyaWVyKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQogCQlyYl9saW5rX25vZGUoJm5vZGUtPm5vZGUsIHBhcmVudCwgcCk7CiAJCXJiX2luc2VydF9jb2xvcigmbm9kZS0+bm9kZSwgJnJlZi0+dHJlZSk7CiAKLQkJbGxpc3RfYWRkKChzdHJ1Y3QgbGxpc3Rfbm9kZSAqKSZub2RlLT5iYXNlLmxpbmssCi0JCQkgICZlbmdpbmUtPmJhcnJpZXJfdGFza3MpOworCQlsbGlzdF9hZGQoYmFycmllcl90b19sbChub2RlKSwgJmVuZ2luZS0+YmFycmllcl90YXNrcyk7CiAJCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKIAl9Ci0JaTkxNV9hY3RpdmVfcmVsZWFzZShyZWYpOworCW11dGV4X3VubG9jaygmcmVmLT5tdXRleCk7CiB9CiAKLXZvaWQgaTkxNV9yZXF1ZXN0X2FkZF9iYXJyaWVycyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3ZvaWQgaTkxNV9yZXF1ZXN0X2FkZF9hY3RpdmVfYmFycmllcnMoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcnEtPmVuZ2luZTsKIAlzdHJ1Y3QgbGxpc3Rfbm9kZSAqbm9kZSwgKm5leHQ7CiAKLQlsbGlzdF9mb3JfZWFjaF9zYWZlKG5vZGUsIG5leHQsIGxsaXN0X2RlbF9hbGwoJmVuZ2luZS0+YmFycmllcl90YXNrcykpCisJR0VNX0JVR19PTihpbnRlbF9lbmdpbmVfaXNfdmlydHVhbChlbmdpbmUpKTsKKwlHRU1fQlVHX09OKHJxLT50aW1lbGluZSAhPSBlbmdpbmUtPmtlcm5lbF9jb250ZXh0LT50aW1lbGluZSk7CisKKwkvKgorCSAqIEF0dGFjaCB0aGUgbGlzdCBvZiBwcm90by1mZW5jZXMgdG8gdGhlIGluLWZsaWdodCByZXF1ZXN0IHN1Y2gKKwkgKiB0aGF0IHRoZSBwYXJlbnQgaTkxNV9hY3RpdmUgd2lsbCBiZSByZWxlYXNlZCB3aGVuIHRoaXMgcmVxdWVzdAorCSAqIGlzIHJldGlyZWQuCisJICovCisJbGxpc3RfZm9yX2VhY2hfc2FmZShub2RlLCBuZXh0LCBsbGlzdF9kZWxfYWxsKCZlbmdpbmUtPmJhcnJpZXJfdGFza3MpKSB7CisJCVJDVV9JTklUX1BPSU5URVIoYmFycmllcl9mcm9tX2xsKG5vZGUpLT5iYXNlLnJlcXVlc3QsIHJxKTsKKwkJc21wX3dtYigpOyAvKiBzZXJpYWxpc2Ugd2l0aCByZXVzZV9pZGxlX2JhcnJpZXIgKi8KIAkJbGlzdF9hZGRfdGFpbCgoc3RydWN0IGxpc3RfaGVhZCAqKW5vZGUsICZycS0+YWN0aXZlX2xpc3QpOworCX0KIH0KIAogaW50IGk5MTVfYWN0aXZlX3JlcXVlc3Rfc2V0KHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUsCkBAIC0zNjQsNiArNzEwLDEwIEBAIGludCBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3NldChzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCAqYWN0aXZlLAogewogCWludCBlcnI7CiAKKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVR19HRU0pCisJbG9ja2RlcF9hc3NlcnRfaGVsZChhY3RpdmUtPmxvY2spOworI2VuZGlmCisKIAkvKiBNdXN0IG1haW50YWluIG9yZGVyaW5nIHdydCBwcmV2aW91cyBhY3RpdmUgcmVxdWVzdHMgKi8KIAllcnIgPSBpOTE1X3JlcXVlc3RfYXdhaXRfYWN0aXZlX3JlcXVlc3QocnEsIGFjdGl2ZSk7CiAJaWYgKGVycikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oCmluZGV4IGMxNGVlYmYuLmY5NTA1OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuaApAQCAtNTgsMTUgKzU4LDIwIEBAIHZvaWQgaTkxNV9hY3RpdmVfcmV0aXJlX25vb3Aoc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSwKICAqLwogc3RhdGljIGlubGluZSB2b2lkCiBpOTE1X2FjdGl2ZV9yZXF1ZXN0X2luaXQoc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSwKKwkJCSBzdHJ1Y3QgbXV0ZXggKmxvY2ssCiAJCQkgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJCQkgaTkxNV9hY3RpdmVfcmV0aXJlX2ZuIHJldGlyZSkKIHsKIAlSQ1VfSU5JVF9QT0lOVEVSKGFjdGl2ZS0+cmVxdWVzdCwgcnEpOwogCUlOSVRfTElTVF9IRUFEKCZhY3RpdmUtPmxpbmspOwogCWFjdGl2ZS0+cmV0aXJlID0gcmV0aXJlID86IGk5MTVfYWN0aXZlX3JldGlyZV9ub29wOworI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dFTSkKKwlhY3RpdmUtPmxvY2sgPSBsb2NrOworI2VuZGlmCiB9CiAKLSNkZWZpbmUgSU5JVF9BQ1RJVkVfUkVRVUVTVChuYW1lKSBpOTE1X2FjdGl2ZV9yZXF1ZXN0X2luaXQoKG5hbWUpLCBOVUxMLCBOVUxMKQorI2RlZmluZSBJTklUX0FDVElWRV9SRVFVRVNUKG5hbWUsIGxvY2spIFwKKwlpOTE1X2FjdGl2ZV9yZXF1ZXN0X2luaXQoKG5hbWUpLCAobG9jayksIE5VTEwsIE5VTEwpCiAKIC8qKgogICogaTkxNV9hY3RpdmVfcmVxdWVzdF9zZXQgLSB1cGRhdGVzIHRoZSB0cmFja2VyIHRvIHdhdGNoIHRoZSBjdXJyZW50IHJlcXVlc3QKQEAgLTgxLDYgKzg2LDkgQEAgc3RhdGljIGlubGluZSB2b2lkCiBfX2k5MTVfYWN0aXZlX3JlcXVlc3Rfc2V0KHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUsCiAJCQkgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiB7CisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKQorCWxvY2tkZXBfYXNzZXJ0X2hlbGQoYWN0aXZlLT5sb2NrKTsKKyNlbmRpZgogCWxpc3RfbW92ZSgmYWN0aXZlLT5saW5rLCAmcmVxdWVzdC0+YWN0aXZlX2xpc3QpOwogCXJjdV9hc3NpZ25fcG9pbnRlcihhY3RpdmUtPnJlcXVlc3QsIHJlcXVlc3QpOwogfQpAQCAtOTAsMjUgKzk4LDYgQEAgaTkxNV9hY3RpdmVfcmVxdWVzdF9zZXQoc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSwKIAkJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKTsKIAogLyoqCi0gKiBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3NldF9yZXRpcmVfZm4gLSB1cGRhdGVzIHRoZSByZXRpcmVtZW50IGNhbGxiYWNrCi0gKiBAYWN0aXZlIC0gdGhlIGFjdGl2ZSB0cmFja2VyCi0gKiBAZm4gLSB0aGUgcm91dGluZSBjYWxsZWQgd2hlbiB0aGUgcmVxdWVzdCBpcyByZXRpcmVkCi0gKiBAbXV0ZXggLSBzdHJ1Y3RfbXV0ZXggdXNlZCB0byBndWFyZCByZXRpcmVtZW50cwotICoKLSAqIGk5MTVfYWN0aXZlX3JlcXVlc3Rfc2V0X3JldGlyZV9mbigpIHVwZGF0ZXMgdGhlIGZ1bmN0aW9uIHBvaW50ZXIgdGhhdAotICogaXMgY2FsbGVkIHdoZW4gdGhlIGZpbmFsIHJlcXVlc3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBAYWN0aXZlIHRyYWNrZXIKLSAqIGlzIHJldGlyZWQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZAotaTkxNV9hY3RpdmVfcmVxdWVzdF9zZXRfcmV0aXJlX2ZuKHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUsCi0JCQkJICBpOTE1X2FjdGl2ZV9yZXRpcmVfZm4gZm4sCi0JCQkJICBzdHJ1Y3QgbXV0ZXggKm11dGV4KQotewotCWxvY2tkZXBfYXNzZXJ0X2hlbGQobXV0ZXgpOwotCWFjdGl2ZS0+cmV0aXJlID0gZm4gPzogaTkxNV9hY3RpdmVfcmV0aXJlX25vb3A7Ci19Ci0KLS8qKgogICogaTkxNV9hY3RpdmVfcmVxdWVzdF9yYXcgLSByZXR1cm4gdGhlIGFjdGl2ZSByZXF1ZXN0CiAgKiBAYWN0aXZlIC0gdGhlIGFjdGl2ZSB0cmFja2VyCiAgKgpAQCAtMzY5LDEyICszNTgsMTkgQEAgaTkxNV9hY3RpdmVfcmVxdWVzdF9yZXRpcmUoc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSwKICAqIHN5bmNocm9uaXNhdGlvbi4KICAqLwogCi12b2lkIGk5MTVfYWN0aXZlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCSAgICAgIHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLAotCQkgICAgICB2b2lkICgqcmV0aXJlKShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikpOwordm9pZCBfX2k5MTVfYWN0aXZlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQlzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiwKKwkJCWludCAoKmFjdGl2ZSkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpLAorCQkJdm9pZCAoKnJldGlyZSkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpLAorCQkJc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpOworI2RlZmluZSBpOTE1X2FjdGl2ZV9pbml0KGk5MTUsIHJlZiwgYWN0aXZlLCByZXRpcmUpIGRvIHsJCVwKKwlzdGF0aWMgc3RydWN0IGxvY2tfY2xhc3Nfa2V5IF9fa2V5OwkJCQlcCisJCQkJCQkJCQlcCisJX19pOTE1X2FjdGl2ZV9pbml0KGk5MTUsIHJlZiwgYWN0aXZlLCByZXRpcmUsICZfX2tleSk7CQlcCit9IHdoaWxlICgwKQogCiBpbnQgaTkxNV9hY3RpdmVfcmVmKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLAotCQkgICAgdTY0IHRpbWVsaW5lLAorCQkgICAgc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwKIAkJICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKTsKIAogaW50IGk5MTVfYWN0aXZlX3dhaXQoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpOwpAQCAtMzg0LDIwICszODAsMTcgQEAgaW50IGk5MTVfcmVxdWVzdF9hd2FpdF9hY3RpdmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiBpbnQgaTkxNV9yZXF1ZXN0X2F3YWl0X2FjdGl2ZV9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCQkJCSAgICAgIHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUpOwogCi1ib29sIGk5MTVfYWN0aXZlX2FjcXVpcmUoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9hY3RpdmVfY2FuY2VsKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQotewotCUdFTV9CVUdfT04ocmVmLT5jb3VudCAhPSAxKTsKLQlyZWYtPmNvdW50ID0gMDsKLX0KLQoraW50IGk5MTVfYWN0aXZlX2FjcXVpcmUoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpOwogdm9pZCBpOTE1X2FjdGl2ZV9yZWxlYXNlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKTsKK3ZvaWQgX19pOTE1X2FjdGl2ZV9yZWxlYXNlX25lc3RlZChzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiwgaW50IHN1YmNsYXNzKTsKKworYm9vbCBpOTE1X2FjdGl2ZV90cnlncmFiKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKTsKK3ZvaWQgaTkxNV9hY3RpdmVfdW5ncmFiKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKTsKIAogc3RhdGljIGlubGluZSBib29sCiBpOTE1X2FjdGl2ZV9pc19pZGxlKGNvbnN0IHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQogewotCXJldHVybiAhcmVmLT5jb3VudDsKKwlyZXR1cm4gIWF0b21pY19yZWFkKCZyZWYtPmNvdW50KTsKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dFTSkKQEAgLTQwOSw2ICs0MDIsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9hY3RpdmVfZmluaShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikgeyB9CiBpbnQgaTkxNV9hY3RpdmVfYWNxdWlyZV9wcmVhbGxvY2F0ZV9iYXJyaWVyKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLAogCQkJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHZvaWQgaTkxNV9hY3RpdmVfYWNxdWlyZV9iYXJyaWVyKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKTsKLXZvaWQgaTkxNV9yZXF1ZXN0X2FkZF9iYXJyaWVycyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSk7Cit2b2lkIGk5MTVfcmVxdWVzdF9hZGRfYWN0aXZlX2JhcnJpZXJzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKTsKIAogI2VuZGlmIC8qIF9JOTE1X0FDVElWRV9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmVfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlX3R5cGVzLmgKaW5kZXggYzAyNTk5MS4uMTg1NGU3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmVfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZV90eXBlcy5oCkBAIC03LDcgKzcsOSBAQAogI2lmbmRlZiBfSTkxNV9BQ1RJVkVfVFlQRVNfSF8KICNkZWZpbmUgX0k5MTVfQUNUSVZFX1RZUEVTX0hfCiAKKyNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KICNpbmNsdWRlIDxsaW51eC9sbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+CiAjaW5jbHVkZSA8bGludXgvcmN1cGRhdGUuaD4KIApAQCAtMjIsMTggKzI0LDQwIEBAIHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0IHsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0IF9fcmN1ICpyZXF1ZXN0OwogCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKIAlpOTE1X2FjdGl2ZV9yZXRpcmVfZm4gcmV0aXJlOworI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dFTSkKKwkvKgorCSAqIEluY29ycG9yZWFsIQorCSAqCisJICogVXBkYXRlcyB0byB0aGUgaTkxNV9hY3RpdmVfcmVxdWVzdCBtdXN0IGJlIHNlcmlhbGlzZWQgdW5kZXIgYSBsb2NrCisJICogdG8gZW5zdXJlIHRoYXQgdGhlIHRpbWVsaW5lIGlzIG9yZGVyZWQuIE5vcm1hbGx5LCB0aGlzIGlzIHRoZQorCSAqIHRpbWVsaW5lLT5tdXRleCwgYnV0IGFub3RoZXIgbXV0ZXggbWF5IGJlIHVzZWQgc28gbG9uZyBhcyBpdCBpcworCSAqIGRvbmUgc28gY29uc2lzdGVudGx5LgorCSAqCisJICogRm9yIGxvY2tkZXAgdHJhY2tpbmcgb2YgdGhlIGFib3ZlLCB3ZSBzdG9yZSB0aGUgbG9jayB3ZSBpbnRlbmQKKwkgKiB0byBhbHdheXMgdXNlIGZvciB1cGRhdGVzIG9mIHRoaXMgaTkxNV9hY3RpdmVfcmVxdWVzdCBkdXJpbmcKKwkgKiBjb25zdHJ1Y3Rpb24gYW5kIGFzc2VydCB0aGF0IGlzIGhlbGQgb24gZXZlcnkgdXBkYXRlLgorCSAqLworCXN0cnVjdCBtdXRleCAqbG9jazsKKyNlbmRpZgogfTsKIAorc3RydWN0IGFjdGl2ZV9ub2RlOworCiBzdHJ1Y3QgaTkxNV9hY3RpdmUgewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OwogCisJc3RydWN0IGFjdGl2ZV9ub2RlICpjYWNoZTsKIAlzdHJ1Y3QgcmJfcm9vdCB0cmVlOwotCXN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0IGxhc3Q7Ci0JdW5zaWduZWQgaW50IGNvdW50OworCXN0cnVjdCBtdXRleCBtdXRleDsKKwlhdG9taWNfdCBjb3VudDsKIAorCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisjZGVmaW5lIEk5MTVfQUNUSVZFX0dSQUJfQklUIDAKKworCWludCAoKmFjdGl2ZSkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpOwogCXZvaWQgKCpyZXRpcmUpKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKTsKIAotCXN0cnVjdCBsbGlzdF9oZWFkIGJhcnJpZXJzOworCXN0cnVjdCBsbGlzdF9oZWFkIHByZWFsbG9jYXRlZF9iYXJyaWVyczsKIH07CiAKICNlbmRpZiAvKiBfSTkxNV9BQ1RJVkVfVFlQRVNfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYnVkZHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYnVkZHkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTE4NzFkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9idWRkeS5jCkBAIC0wLDAgKzEsNDI4IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgva21lbWxlYWsuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisKKyNpbmNsdWRlICJpOTE1X2J1ZGR5LmgiCisKKyNpbmNsdWRlICJpOTE1X2dlbS5oIgorI2luY2x1ZGUgImk5MTVfZ2xvYmFscy5oIgorI2luY2x1ZGUgImk5MTVfdXRpbHMuaCIKKworc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF9ibG9jayB7CisJc3RydWN0IGk5MTVfZ2xvYmFsIGJhc2U7CisJc3RydWN0IGttZW1fY2FjaGUgKnNsYWJfYmxvY2tzOworfSBnbG9iYWw7CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2xvYmFsX2J1ZGR5X3Nocmluayh2b2lkKQoreworCWttZW1fY2FjaGVfc2hyaW5rKGdsb2JhbC5zbGFiX2Jsb2Nrcyk7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2xvYmFsX2J1ZGR5X2V4aXQodm9pZCkKK3sKKwlrbWVtX2NhY2hlX2Rlc3Ryb3koZ2xvYmFsLnNsYWJfYmxvY2tzKTsKK30KKworc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF9ibG9jayBnbG9iYWwgPSB7IHsKKwkuc2hyaW5rID0gaTkxNV9nbG9iYWxfYnVkZHlfc2hyaW5rLAorCS5leGl0ID0gaTkxNV9nbG9iYWxfYnVkZHlfZXhpdCwKK30gfTsKKworaW50IF9faW5pdCBpOTE1X2dsb2JhbF9idWRkeV9pbml0KHZvaWQpCit7CisJZ2xvYmFsLnNsYWJfYmxvY2tzID0gS01FTV9DQUNIRShpOTE1X2J1ZGR5X2Jsb2NrLCBTTEFCX0hXQ0FDSEVfQUxJR04pOworCWlmICghZ2xvYmFsLnNsYWJfYmxvY2tzKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmk5MTVfYmxvY2tfYWxsb2Moc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKnBhcmVudCwKKwkJCQkJCSB1bnNpZ25lZCBpbnQgb3JkZXIsCisJCQkJCQkgdTY0IG9mZnNldCkKK3sKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2s7CisKKwlibG9jayA9IGttZW1fY2FjaGVfemFsbG9jKGdsb2JhbC5zbGFiX2Jsb2NrcywgR0ZQX0tFUk5FTCk7CisJaWYgKCFibG9jaykKKwkJcmV0dXJuIE5VTEw7CisKKwlibG9jay0+aGVhZGVyID0gb2Zmc2V0OworCWJsb2NrLT5oZWFkZXIgfD0gb3JkZXI7CisJYmxvY2stPnBhcmVudCA9IHBhcmVudDsKKworCXJldHVybiBibG9jazsKK30KKworc3RhdGljIHZvaWQgaTkxNV9ibG9ja19mcmVlKHN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jaykKK3sKKwlrbWVtX2NhY2hlX2ZyZWUoZ2xvYmFsLnNsYWJfYmxvY2tzLCBibG9jayk7Cit9CisKK3N0YXRpYyB2b2lkIG1hcmtfYWxsb2NhdGVkKHN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jaykKK3sKKwlibG9jay0+aGVhZGVyICY9IH5JOTE1X0JVRERZX0hFQURFUl9TVEFURTsKKwlibG9jay0+aGVhZGVyIHw9IEk5MTVfQlVERFlfQUxMT0NBVEVEOworCisJbGlzdF9kZWwoJmJsb2NrLT5saW5rKTsKK30KKworc3RhdGljIHZvaWQgbWFya19mcmVlKHN0cnVjdCBpOTE1X2J1ZGR5X21tICptbSwKKwkJICAgICAgc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrKQoreworCWJsb2NrLT5oZWFkZXIgJj0gfkk5MTVfQlVERFlfSEVBREVSX1NUQVRFOworCWJsb2NrLT5oZWFkZXIgfD0gSTkxNV9CVUREWV9GUkVFOworCisJbGlzdF9hZGQoJmJsb2NrLT5saW5rLAorCQkgJm1tLT5mcmVlX2xpc3RbaTkxNV9idWRkeV9ibG9ja19vcmRlcihibG9jayldKTsKK30KKworc3RhdGljIHZvaWQgbWFya19zcGxpdChzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2spCit7CisJYmxvY2stPmhlYWRlciAmPSB+STkxNV9CVUREWV9IRUFERVJfU1RBVEU7CisJYmxvY2stPmhlYWRlciB8PSBJOTE1X0JVRERZX1NQTElUOworCisJbGlzdF9kZWwoJmJsb2NrLT5saW5rKTsKK30KKworaW50IGk5MTVfYnVkZHlfaW5pdChzdHJ1Y3QgaTkxNV9idWRkeV9tbSAqbW0sIHU2NCBzaXplLCB1NjQgY2h1bmtfc2l6ZSkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwl1NjQgb2Zmc2V0OworCisJaWYgKHNpemUgPCBjaHVua19zaXplKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjaHVua19zaXplIDwgUEFHRV9TSVpFKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICghaXNfcG93ZXJfb2ZfMihjaHVua19zaXplKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlzaXplID0gcm91bmRfZG93bihzaXplLCBjaHVua19zaXplKTsKKworCW1tLT5zaXplID0gc2l6ZTsKKwltbS0+Y2h1bmtfc2l6ZSA9IGNodW5rX3NpemU7CisJbW0tPm1heF9vcmRlciA9IGlsb2cyKHNpemUpIC0gaWxvZzIoY2h1bmtfc2l6ZSk7CisKKwlHRU1fQlVHX09OKG1tLT5tYXhfb3JkZXIgPiBJOTE1X0JVRERZX01BWF9PUkRFUik7CisKKwltbS0+ZnJlZV9saXN0ID0ga21hbGxvY19hcnJheShtbS0+bWF4X29yZGVyICsgMSwKKwkJCQkgICAgICBzaXplb2Yoc3RydWN0IGxpc3RfaGVhZCksCisJCQkJICAgICAgR0ZQX0tFUk5FTCk7CisJaWYgKCFtbS0+ZnJlZV9saXN0KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAoaSA9IDA7IGkgPD0gbW0tPm1heF9vcmRlcjsgKytpKQorCQlJTklUX0xJU1RfSEVBRCgmbW0tPmZyZWVfbGlzdFtpXSk7CisKKwltbS0+bl9yb290cyA9IGh3ZWlnaHQ2NChzaXplKTsKKworCW1tLT5yb290cyA9IGttYWxsb2NfYXJyYXkobW0tPm5fcm9vdHMsCisJCQkJICBzaXplb2Yoc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKiksCisJCQkJICBHRlBfS0VSTkVMKTsKKwlpZiAoIW1tLT5yb290cykKKwkJZ290byBvdXRfZnJlZV9saXN0OworCisJb2Zmc2V0ID0gMDsKKwlpID0gMDsKKworCS8qCisJICogU3BsaXQgaW50byBwb3dlci1vZi10d28gYmxvY2tzLCBpbiBjYXNlIHdlIGFyZSBnaXZlbiBhIHNpemUgdGhhdCBpcworCSAqIG5vdCBpdHNlbGYgYSBwb3dlci1vZi10d28uCisJICovCisJZG8geworCQlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqcm9vdDsKKwkJdW5zaWduZWQgaW50IG9yZGVyOworCQl1NjQgcm9vdF9zaXplOworCisJCXJvb3Rfc2l6ZSA9IHJvdW5kZG93bl9wb3dfb2ZfdHdvKHNpemUpOworCQlvcmRlciA9IGlsb2cyKHJvb3Rfc2l6ZSkgLSBpbG9nMihjaHVua19zaXplKTsKKworCQlyb290ID0gaTkxNV9ibG9ja19hbGxvYyhOVUxMLCBvcmRlciwgb2Zmc2V0KTsKKwkJaWYgKCFyb290KQorCQkJZ290byBvdXRfZnJlZV9yb290czsKKworCQltYXJrX2ZyZWUobW0sIHJvb3QpOworCisJCUdFTV9CVUdfT04oaSA+IG1tLT5tYXhfb3JkZXIpOworCQlHRU1fQlVHX09OKGk5MTVfYnVkZHlfYmxvY2tfc2l6ZShtbSwgcm9vdCkgPCBjaHVua19zaXplKTsKKworCQltbS0+cm9vdHNbaV0gPSByb290OworCisJCW9mZnNldCArPSByb290X3NpemU7CisJCXNpemUgLT0gcm9vdF9zaXplOworCQlpKys7CisJfSB3aGlsZSAoc2l6ZSk7CisKKwlyZXR1cm4gMDsKKworb3V0X2ZyZWVfcm9vdHM6CisJd2hpbGUgKGktLSkKKwkJaTkxNV9ibG9ja19mcmVlKG1tLT5yb290c1tpXSk7CisJa2ZyZWUobW0tPnJvb3RzKTsKK291dF9mcmVlX2xpc3Q6CisJa2ZyZWUobW0tPmZyZWVfbGlzdCk7CisJcmV0dXJuIC1FTk9NRU07Cit9CisKK3ZvaWQgaTkxNV9idWRkeV9maW5pKHN0cnVjdCBpOTE1X2J1ZGR5X21tICptbSkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBtbS0+bl9yb290czsgKytpKSB7CisJCUdFTV9XQVJOX09OKCFpOTE1X2J1ZGR5X2Jsb2NrX2lzX2ZyZWUobW0tPnJvb3RzW2ldKSk7CisJCWk5MTVfYmxvY2tfZnJlZShtbS0+cm9vdHNbaV0pOworCX0KKworCWtmcmVlKG1tLT5yb290cyk7CisJa2ZyZWUobW0tPmZyZWVfbGlzdCk7Cit9CisKK3N0YXRpYyBpbnQgc3BsaXRfYmxvY2soc3RydWN0IGk5MTVfYnVkZHlfbW0gKm1tLAorCQkgICAgICAgc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrKQoreworCXVuc2lnbmVkIGludCBibG9ja19vcmRlciA9IGk5MTVfYnVkZHlfYmxvY2tfb3JkZXIoYmxvY2spIC0gMTsKKwl1NjQgb2Zmc2V0ID0gaTkxNV9idWRkeV9ibG9ja19vZmZzZXQoYmxvY2spOworCisJR0VNX0JVR19PTighaTkxNV9idWRkeV9ibG9ja19pc19mcmVlKGJsb2NrKSk7CisJR0VNX0JVR19PTighaTkxNV9idWRkeV9ibG9ja19vcmRlcihibG9jaykpOworCisJYmxvY2stPmxlZnQgPSBpOTE1X2Jsb2NrX2FsbG9jKGJsb2NrLCBibG9ja19vcmRlciwgb2Zmc2V0KTsKKwlpZiAoIWJsb2NrLT5sZWZ0KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWJsb2NrLT5yaWdodCA9IGk5MTVfYmxvY2tfYWxsb2MoYmxvY2ssIGJsb2NrX29yZGVyLAorCQkJCQlvZmZzZXQgKyAobW0tPmNodW5rX3NpemUgPDwgYmxvY2tfb3JkZXIpKTsKKwlpZiAoIWJsb2NrLT5yaWdodCkgeworCQlpOTE1X2Jsb2NrX2ZyZWUoYmxvY2stPmxlZnQpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwltYXJrX2ZyZWUobW0sIGJsb2NrLT5sZWZ0KTsKKwltYXJrX2ZyZWUobW0sIGJsb2NrLT5yaWdodCk7CisKKwltYXJrX3NwbGl0KGJsb2NrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKgorZ2V0X2J1ZGR5KHN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jaykKK3sKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqcGFyZW50OworCisJcGFyZW50ID0gYmxvY2stPnBhcmVudDsKKwlpZiAoIXBhcmVudCkKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAocGFyZW50LT5sZWZ0ID09IGJsb2NrKQorCQlyZXR1cm4gcGFyZW50LT5yaWdodDsKKworCXJldHVybiBwYXJlbnQtPmxlZnQ7Cit9CisKK3N0YXRpYyB2b2lkIF9faTkxNV9idWRkeV9mcmVlKHN0cnVjdCBpOTE1X2J1ZGR5X21tICptbSwKKwkJCSAgICAgIHN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jaykKK3sKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqcGFyZW50OworCisJd2hpbGUgKChwYXJlbnQgPSBibG9jay0+cGFyZW50KSkgeworCQlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYnVkZHk7CisKKwkJYnVkZHkgPSBnZXRfYnVkZHkoYmxvY2spOworCisJCWlmICghaTkxNV9idWRkeV9ibG9ja19pc19mcmVlKGJ1ZGR5KSkKKwkJCWJyZWFrOworCisJCWxpc3RfZGVsKCZidWRkeS0+bGluayk7CisKKwkJaTkxNV9ibG9ja19mcmVlKGJsb2NrKTsKKwkJaTkxNV9ibG9ja19mcmVlKGJ1ZGR5KTsKKworCQlibG9jayA9IHBhcmVudDsKKwl9CisKKwltYXJrX2ZyZWUobW0sIGJsb2NrKTsKK30KKwordm9pZCBpOTE1X2J1ZGR5X2ZyZWUoc3RydWN0IGk5MTVfYnVkZHlfbW0gKm1tLAorCQkgICAgIHN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jaykKK3sKKwlHRU1fQlVHX09OKCFpOTE1X2J1ZGR5X2Jsb2NrX2lzX2FsbG9jYXRlZChibG9jaykpOworCV9faTkxNV9idWRkeV9mcmVlKG1tLCBibG9jayk7Cit9CisKK3ZvaWQgaTkxNV9idWRkeV9mcmVlX2xpc3Qoc3RydWN0IGk5MTVfYnVkZHlfbW0gKm1tLCBzdHJ1Y3QgbGlzdF9oZWFkICpvYmplY3RzKQoreworCXN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jaywgKm9uOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJsb2NrLCBvbiwgb2JqZWN0cywgbGluaykKKwkJaTkxNV9idWRkeV9mcmVlKG1tLCBibG9jayk7CisJSU5JVF9MSVNUX0hFQUQob2JqZWN0cyk7Cit9CisKKy8qCisgKiBBbGxvY2F0ZSBwb3dlci1vZi10d28gYmxvY2suIFRoZSBvcmRlciB2YWx1ZSBoZXJlIHRyYW5zbGF0ZXMgdG86CisgKgorICogICAwID0gMl4wICogbW0tPmNodW5rX3NpemUKKyAqICAgMSA9IDJeMSAqIG1tLT5jaHVua19zaXplCisgKiAgIDIgPSAyXjIgKiBtbS0+Y2h1bmtfc2l6ZQorICogICAuLi4KKyAqLworc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKgoraTkxNV9idWRkeV9hbGxvYyhzdHJ1Y3QgaTkxNV9idWRkeV9tbSAqbW0sIHVuc2lnbmVkIGludCBvcmRlcikKK3sKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2sgPSBOVUxMOworCXVuc2lnbmVkIGludCBpOworCWludCBlcnI7CisKKwlmb3IgKGkgPSBvcmRlcjsgaSA8PSBtbS0+bWF4X29yZGVyOyArK2kpIHsKKwkJYmxvY2sgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJm1tLT5mcmVlX2xpc3RbaV0sCisJCQkJCQkgc3RydWN0IGk5MTVfYnVkZHlfYmxvY2ssCisJCQkJCQkgbGluayk7CisJCWlmIChibG9jaykKKwkJCWJyZWFrOworCX0KKworCWlmICghYmxvY2spCisJCXJldHVybiBFUlJfUFRSKC1FTk9TUEMpOworCisJR0VNX0JVR19PTighaTkxNV9idWRkeV9ibG9ja19pc19mcmVlKGJsb2NrKSk7CisKKwl3aGlsZSAoaSAhPSBvcmRlcikgeworCQllcnIgPSBzcGxpdF9ibG9jayhtbSwgYmxvY2spOworCQlpZiAodW5saWtlbHkoZXJyKSkKKwkJCWdvdG8gb3V0X2ZyZWU7CisKKwkJLyogR28gbG93ICovCisJCWJsb2NrID0gYmxvY2stPmxlZnQ7CisJCWktLTsKKwl9CisKKwltYXJrX2FsbG9jYXRlZChibG9jayk7CisJa21lbWxlYWtfdXBkYXRlX3RyYWNlKGJsb2NrKTsKKwlyZXR1cm4gYmxvY2s7CisKK291dF9mcmVlOgorCV9faTkxNV9idWRkeV9mcmVlKG1tLCBibG9jayk7CisJcmV0dXJuIEVSUl9QVFIoZXJyKTsKK30KKworc3RhdGljIGlubGluZSBib29sIG92ZXJsYXBzKHU2NCBzMSwgdTY0IGUxLCB1NjQgczIsIHU2NCBlMikKK3sKKwlyZXR1cm4gczEgPD0gZTIgJiYgZTEgPj0gczI7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb250YWlucyh1NjQgczEsIHU2NCBlMSwgdTY0IHMyLCB1NjQgZTIpCit7CisJcmV0dXJuIHMxIDw9IHMyICYmIGUxID49IGUyOworfQorCisvKgorICogQWxsb2NhdGUgcmFuZ2UuIE5vdGUgdGhhdCBpdCdzIHNhZmUgdG8gY2hhaW4gdG9nZXRoZXIgbXVsdGlwbGUgYWxsb2NfcmFuZ2VzCisgKiB3aXRoIHRoZSBzYW1lIGJsb2NrcyBsaXN0LgorICoKKyAqIEludGVuZGVkIGZvciBwcmUtYWxsb2NhdGluZyBwb3J0aW9ucyBvZiB0aGUgYWRkcmVzcyBzcGFjZSwgZm9yIGV4YW1wbGUgdG8KKyAqIHJlc2VydmUgYSBibG9jayBmb3IgdGhlIGluaXRpYWwgZnJhbWVidWZmZXIgb3Igc2ltaWxhciwgaGVuY2UgdGhlIGV4cGVjdGF0aW9uCisgKiBoZXJlIGlzIHRoYXQgaTkxNV9idWRkeV9hbGxvYygpIGlzIHN0aWxsIHRoZSBtYWluIHZlaGljbGUgZm9yCisgKiBhbGxvY2F0aW9ucywgc28gaWYgdGhhdCdzIG5vdCB0aGUgY2FzZSB0aGVuIHRoZSBkcm1fbW0gcmFuZ2UgYWxsb2NhdG9yIGlzCisgKiBwcm9iYWJseSBhIG11Y2ggYmV0dGVyIGZpdCwgYW5kIHNvIHlvdSBzaG91bGQgcHJvYmFibHkgZ28gdXNlIHRoYXQgaW5zdGVhZC4KKyAqLworaW50IGk5MTVfYnVkZHlfYWxsb2NfcmFuZ2Uoc3RydWN0IGk5MTVfYnVkZHlfbW0gKm1tLAorCQkJICAgc3RydWN0IGxpc3RfaGVhZCAqYmxvY2tzLAorCQkJICAgdTY0IHN0YXJ0LCB1NjQgc2l6ZSkKK3sKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2s7CisJc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJ1ZGR5OworCUxJU1RfSEVBRChhbGxvY2F0ZWQpOworCUxJU1RfSEVBRChkZnMpOworCXU2NCBlbmQ7CisJaW50IGVycjsKKwlpbnQgaTsKKworCWlmIChzaXplIDwgbW0tPmNodW5rX3NpemUpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFJU19BTElHTkVEKHNpemUgfCBzdGFydCwgbW0tPmNodW5rX3NpemUpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChyYW5nZV9vdmVyZmxvd3Moc3RhcnQsIHNpemUsIG1tLT5zaXplKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlmb3IgKGkgPSAwOyBpIDwgbW0tPm5fcm9vdHM7ICsraSkKKwkJbGlzdF9hZGRfdGFpbCgmbW0tPnJvb3RzW2ldLT50bXBfbGluaywgJmRmcyk7CisKKwllbmQgPSBzdGFydCArIHNpemUgLSAxOworCisJZG8geworCQl1NjQgYmxvY2tfc3RhcnQ7CisJCXU2NCBibG9ja19lbmQ7CisKKwkJYmxvY2sgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmRmcywKKwkJCQkJCSBzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jaywKKwkJCQkJCSB0bXBfbGluayk7CisJCWlmICghYmxvY2spCisJCQlicmVhazsKKworCQlsaXN0X2RlbCgmYmxvY2stPnRtcF9saW5rKTsKKworCQlibG9ja19zdGFydCA9IGk5MTVfYnVkZHlfYmxvY2tfb2Zmc2V0KGJsb2NrKTsKKwkJYmxvY2tfZW5kID0gYmxvY2tfc3RhcnQgKyBpOTE1X2J1ZGR5X2Jsb2NrX3NpemUobW0sIGJsb2NrKSAtIDE7CisKKwkJaWYgKCFvdmVybGFwcyhzdGFydCwgZW5kLCBibG9ja19zdGFydCwgYmxvY2tfZW5kKSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChpOTE1X2J1ZGR5X2Jsb2NrX2lzX2FsbG9jYXRlZChibG9jaykpIHsKKwkJCWVyciA9IC1FTk9TUEM7CisJCQlnb3RvIGVycl9mcmVlOworCQl9CisKKwkJaWYgKGNvbnRhaW5zKHN0YXJ0LCBlbmQsIGJsb2NrX3N0YXJ0LCBibG9ja19lbmQpKSB7CisJCQlpZiAoIWk5MTVfYnVkZHlfYmxvY2tfaXNfZnJlZShibG9jaykpIHsKKwkJCQllcnIgPSAtRU5PU1BDOworCQkJCWdvdG8gZXJyX2ZyZWU7CisJCQl9CisKKwkJCW1hcmtfYWxsb2NhdGVkKGJsb2NrKTsKKwkJCWxpc3RfYWRkX3RhaWwoJmJsb2NrLT5saW5rLCAmYWxsb2NhdGVkKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKCFpOTE1X2J1ZGR5X2Jsb2NrX2lzX3NwbGl0KGJsb2NrKSkgeworCQkJZXJyID0gc3BsaXRfYmxvY2sobW0sIGJsb2NrKTsKKwkJCWlmICh1bmxpa2VseShlcnIpKQorCQkJCWdvdG8gZXJyX3VuZG87CisJCX0KKworCQlsaXN0X2FkZCgmYmxvY2stPnJpZ2h0LT50bXBfbGluaywgJmRmcyk7CisJCWxpc3RfYWRkKCZibG9jay0+bGVmdC0+dG1wX2xpbmssICZkZnMpOworCX0gd2hpbGUgKDEpOworCisJbGlzdF9zcGxpY2VfdGFpbCgmYWxsb2NhdGVkLCBibG9ja3MpOworCXJldHVybiAwOworCitlcnJfdW5kbzoKKwkvKgorCSAqIFdlIHJlYWxseSBkb24ndCB3YW50IHRvIGxlYXZlIGFyb3VuZCBhIGJ1bmNoIG9mIHNwbGl0IGJsb2Nrcywgc2luY2UKKwkgKiBiaWdnZXIgaXMgYmV0dGVyLCBzbyBtYWtlIHN1cmUgd2UgbWVyZ2UgZXZlcnl0aGluZyBiYWNrIGJlZm9yZSB3ZQorCSAqIGZyZWUgdGhlIGFsbG9jYXRlZCBibG9ja3MuCisJICovCisJYnVkZHkgPSBnZXRfYnVkZHkoYmxvY2spOworCWlmIChidWRkeSAmJgorCSAgICAoaTkxNV9idWRkeV9ibG9ja19pc19mcmVlKGJsb2NrKSAmJgorCSAgICAgaTkxNV9idWRkeV9ibG9ja19pc19mcmVlKGJ1ZGR5KSkpCisJCV9faTkxNV9idWRkeV9mcmVlKG1tLCBibG9jayk7CisKK2Vycl9mcmVlOgorCWk5MTVfYnVkZHlfZnJlZV9saXN0KG1tLCAmYWxsb2NhdGVkKTsKKwlyZXR1cm4gZXJyOworfQorCisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCisjaW5jbHVkZSAic2VsZnRlc3RzL2k5MTVfYnVkZHkuYyIKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9idWRkeS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9idWRkeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkNDFmMzUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2J1ZGR5LmgKQEAgLTAsMCArMSwxMjggQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19JOTE1X0JVRERZX0hfXworI2RlZmluZSBfX0k5MTVfQlVERFlfSF9fCisKKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKK3N0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrIHsKKyNkZWZpbmUgSTkxNV9CVUREWV9IRUFERVJfT0ZGU0VUIEdFTk1BU0tfVUxMKDYzLCAxMikKKyNkZWZpbmUgSTkxNV9CVUREWV9IRUFERVJfU1RBVEUgIEdFTk1BU0tfVUxMKDExLCAxMCkKKyNkZWZpbmUgICBJOTE1X0JVRERZX0FMTE9DQVRFRAkgICAoMSA8PCAxMCkKKyNkZWZpbmUgICBJOTE1X0JVRERZX0ZSRUUJICAgKDIgPDwgMTApCisjZGVmaW5lICAgSTkxNV9CVUREWV9TUExJVAkgICAoMyA8PCAxMCkKKyNkZWZpbmUgSTkxNV9CVUREWV9IRUFERVJfT1JERVIgIEdFTk1BU0tfVUxMKDksIDApCisJdTY0IGhlYWRlcjsKKworCXN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpsZWZ0OworCXN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpyaWdodDsKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqcGFyZW50OworCisJdm9pZCAqcHJpdmF0ZTsgLyogb3duZWQgYnkgY3JlYXRvciAqLworCisJLyoKKwkgKiBXaGlsZSB0aGUgYmxvY2sgaXMgYWxsb2NhdGVkIGJ5IHRoZSB1c2VyIHRocm91Z2ggaTkxNV9idWRkeV9hbGxvYyosCisJICogdGhlIHVzZXIgaGFzIG93bmVyc2hpcCBvZiB0aGUgbGluaywgZm9yIGV4YW1wbGUgdG8gbWFpbnRhaW4gd2l0aGluCisJICogYSBsaXN0LCBpZiBzbyBkZXNpcmVkLiBBcyBzb29uIGFzIHRoZSBibG9jayBpcyBmcmVlZCB3aXRoCisJICogaTkxNV9idWRkeV9mcmVlKiBvd25lcnNoaXAgaXMgZ2l2ZW4gYmFjayB0byB0aGUgbW0uCisJICovCisJc3RydWN0IGxpc3RfaGVhZCBsaW5rOworCXN0cnVjdCBsaXN0X2hlYWQgdG1wX2xpbms7Cit9OworCisjZGVmaW5lIEk5MTVfQlVERFlfTUFYX09SREVSICBJOTE1X0JVRERZX0hFQURFUl9PUkRFUgorCisvKgorICogQmluYXJ5IEJ1ZGR5IFN5c3RlbS4KKyAqCisgKiBMb2NraW5nIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSB1c2VyLCBhIHNpbXBsZSBtdXRleCBhcm91bmQKKyAqIGk5MTVfYnVkZHlfYWxsb2MqIGFuZCBpOTE1X2J1ZGR5X2ZyZWUqIHNob3VsZCBzdWZmaWNlLgorICovCitzdHJ1Y3QgaTkxNV9idWRkeV9tbSB7CisJLyogTWFpbnRhaW4gYSBmcmVlIGxpc3QgZm9yIGVhY2ggb3JkZXIuICovCisJc3RydWN0IGxpc3RfaGVhZCAqZnJlZV9saXN0OworCisJLyoKKwkgKiBNYWludGFpbiBleHBsaWNpdCBiaW5hcnkgdHJlZShzKSB0byB0cmFjayB0aGUgYWxsb2NhdGlvbiBvZiB0aGUKKwkgKiBhZGRyZXNzIHNwYWNlLiBUaGlzIGdpdmVzIHVzIGEgc2ltcGxlIHdheSBvZiBmaW5kaW5nIGEgYnVkZHkgYmxvY2sKKwkgKiBhbmQgcGVyZm9ybWluZyB0aGUgcG90ZW50aWFsbHkgcmVjdXJzaXZlIG1lcmdlIHN0ZXAgd2hlbiBmcmVlaW5nIGEKKwkgKiBibG9jay4gIE5vZGVzIGFyZSBlaXRoZXIgYWxsb2NhdGVkIG9yIGZyZWUsIGluIHdoaWNoIGNhc2UgdGhleSB3aWxsCisJICogYWxzbyBleGlzdCBvbiB0aGUgcmVzcGVjdGl2ZSBmcmVlIGxpc3QuCisJICovCisJc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKipyb290czsKKworCS8qCisJICogQW55dGhpbmcgZnJvbSBoZXJlIGlzIHB1YmxpYywgYW5kIHJlbWFpbnMgc3RhdGljIGZvciB0aGUgbGlmZXRpbWUgb2YKKwkgKiB0aGUgbW0uIEV2ZXJ5dGhpbmcgYWJvdmUgaXMgY29uc2lkZXJlZCBkby1ub3QtdG91Y2guCisJICovCisJdW5zaWduZWQgaW50IG5fcm9vdHM7CisJdW5zaWduZWQgaW50IG1heF9vcmRlcjsKKworCS8qIE11c3QgYmUgYXQgbGVhc3QgUEFHRV9TSVpFICovCisJdTY0IGNodW5rX3NpemU7CisJdTY0IHNpemU7Cit9OworCitzdGF0aWMgaW5saW5lIHU2NAoraTkxNV9idWRkeV9ibG9ja19vZmZzZXQoc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrKQoreworCXJldHVybiBibG9jay0+aGVhZGVyICYgSTkxNV9CVUREWV9IRUFERVJfT0ZGU0VUOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAoraTkxNV9idWRkeV9ibG9ja19vcmRlcihzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2spCit7CisJcmV0dXJuIGJsb2NrLT5oZWFkZXIgJiBJOTE1X0JVRERZX0hFQURFUl9PUkRFUjsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKK2k5MTVfYnVkZHlfYmxvY2tfc3RhdGUoc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrKQoreworCXJldHVybiBibG9jay0+aGVhZGVyICYgSTkxNV9CVUREWV9IRUFERVJfU1RBVEU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbAoraTkxNV9idWRkeV9ibG9ja19pc19hbGxvY2F0ZWQoc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrKQoreworCXJldHVybiBpOTE1X2J1ZGR5X2Jsb2NrX3N0YXRlKGJsb2NrKSA9PSBJOTE1X0JVRERZX0FMTE9DQVRFRDsKK30KKworc3RhdGljIGlubGluZSBib29sCitpOTE1X2J1ZGR5X2Jsb2NrX2lzX2ZyZWUoc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrKQoreworCXJldHVybiBpOTE1X2J1ZGR5X2Jsb2NrX3N0YXRlKGJsb2NrKSA9PSBJOTE1X0JVRERZX0ZSRUU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbAoraTkxNV9idWRkeV9ibG9ja19pc19zcGxpdChzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2spCit7CisJcmV0dXJuIGk5MTVfYnVkZHlfYmxvY2tfc3RhdGUoYmxvY2spID09IEk5MTVfQlVERFlfU1BMSVQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTY0CitpOTE1X2J1ZGR5X2Jsb2NrX3NpemUoc3RydWN0IGk5MTVfYnVkZHlfbW0gKm1tLAorCQkgICAgICBzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2spCit7CisJcmV0dXJuIG1tLT5jaHVua19zaXplIDw8IGk5MTVfYnVkZHlfYmxvY2tfb3JkZXIoYmxvY2spOworfQorCitpbnQgaTkxNV9idWRkeV9pbml0KHN0cnVjdCBpOTE1X2J1ZGR5X21tICptbSwgdTY0IHNpemUsIHU2NCBjaHVua19zaXplKTsKKwordm9pZCBpOTE1X2J1ZGR5X2Zpbmkoc3RydWN0IGk5MTVfYnVkZHlfbW0gKm1tKTsKKworc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKgoraTkxNV9idWRkeV9hbGxvYyhzdHJ1Y3QgaTkxNV9idWRkeV9tbSAqbW0sIHVuc2lnbmVkIGludCBvcmRlcik7CisKK2ludCBpOTE1X2J1ZGR5X2FsbG9jX3JhbmdlKHN0cnVjdCBpOTE1X2J1ZGR5X21tICptbSwKKwkJCSAgIHN0cnVjdCBsaXN0X2hlYWQgKmJsb2NrcywKKwkJCSAgIHU2NCBzdGFydCwgdTY0IHNpemUpOworCit2b2lkIGk5MTVfYnVkZHlfZnJlZShzdHJ1Y3QgaTkxNV9idWRkeV9tbSAqbW0sIHN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jayk7CisKK3ZvaWQgaTkxNV9idWRkeV9mcmVlX2xpc3Qoc3RydWN0IGk5MTVfYnVkZHlfbW0gKm1tLCBzdHJ1Y3QgbGlzdF9oZWFkICpvYmplY3RzKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jCmluZGV4IGEyOGJjZDIuLjI0NTU1MTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lLmgiCiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfbWVtY3B5LmgiCiAKIC8qKgogICogRE9DOiBiYXRjaCBidWZmZXIgY29tbWFuZCBwYXJzZXIKQEAgLTEzNTIsMTEgKzEzNTMsMTAgQEAgaW50IGludGVsX2VuZ2luZV9jbWRfcGFyc2VyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIGludCBpOTE1X2NtZF9wYXJzZXJfZ2V0X3ZlcnNpb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAlib29sIGFjdGl2ZSA9IGZhbHNlOwogCiAJLyogSWYgdGhlIGNvbW1hbmQgcGFyc2VyIGlzIG5vdCBlbmFibGVkLCByZXBvcnQgMCAtIHVuc3VwcG9ydGVkICovCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7CisJZm9yX2VhY2hfdWFiaV9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewogCQlpZiAoaW50ZWxfZW5naW5lX25lZWRzX2NtZF9wYXJzZXIoZW5naW5lKSkgewogCQkJYWN0aXZlID0gdHJ1ZTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCA2MmNmMzRkLi5iMGY1MTU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAKKyNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2RwLmgiCiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9mYmMuaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2hkY3AuaCIKQEAgLTM5LDEzICs0MCwxNCBAQAogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfcHNyLmgiCiAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY29udGV4dC5oIgorI2luY2x1ZGUgImd0L2ludGVsX2d0X3BtLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfcmVzZXQuaCIKKyNpbmNsdWRlICJndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oIgogCiAjaW5jbHVkZSAiaTkxNV9kZWJ1Z2ZzLmgiCiAjaW5jbHVkZSAiaTkxNV9pcnEuaCIKKyNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfY3NyLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaCIKICNpbmNsdWRlICJpbnRlbF9wbS5oIgogI2luY2x1ZGUgImludGVsX3NpZGViYW5kLmgiCiAKQEAgLTc1LDExICs3Nyw2IEBAIHN0YXRpYyBpbnQgaTkxNV9jYXBhYmlsaXRpZXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgY2hhciBnZXRfYWN0aXZlX2ZsYWcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKLXsKLQlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X2lzX2FjdGl2ZShvYmopID8gJyonIDogJyAnOwotfQotCiBzdGF0aWMgY2hhciBnZXRfcGluX2ZsYWcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlyZXR1cm4gb2JqLT5waW5fZ2xvYmFsID8gJ3AnIDogJyAnOwpAQCAtOTcsNyArOTQsNyBAQCBzdGF0aWMgY2hhciBnZXRfdGlsaW5nX2ZsYWcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAogc3RhdGljIGNoYXIgZ2V0X2dsb2JhbF9mbGFnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0JcmV0dXJuIG9iai0+dXNlcmZhdWx0X2NvdW50ID8gJ2cnIDogJyAnOworCXJldHVybiBSRUFEX09OQ0Uob2JqLT51c2VyZmF1bHRfY291bnQpID8gJ2cnIDogJyAnOwogfQogCiBzdGF0aWMgY2hhciBnZXRfcGluX21hcHBlZF9mbGFnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCkBAIC0xNDEsMTIgKzEzOCwxMCBAQCBkZXNjcmliZV9vYmooc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzOwogCWludCBwaW5fY291bnQgPSAwOwogCi0Jc2VxX3ByaW50ZihtLCAiJXBLOiAlYyVjJWMlYyVjICU4emRLaUIgJTAyeCAlMDJ4ICVzJXMlcyIsCisJc2VxX3ByaW50ZihtLCAiJXBLOiAlYyVjJWMlYyAlOHpkS2lCICUwMnggJTAyeCAlcyVzJXMiLAogCQkgICAmb2JqLT5iYXNlLAotCQkgICBnZXRfYWN0aXZlX2ZsYWcob2JqKSwKIAkJICAgZ2V0X3Bpbl9mbGFnKG9iaiksCiAJCSAgIGdldF90aWxpbmdfZmxhZyhvYmopLAogCQkgICBnZXRfZ2xvYmFsX2ZsYWcob2JqKSwKQEAgLTIxNiw5ICsyMTEsNyBAQCBkZXNjcmliZV9vYmooc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQkJfQogCQl9CiAJCWlmICh2bWEtPmZlbmNlKQotCQkJc2VxX3ByaW50ZihtLCAiICwgZmVuY2U6ICVkJXMiLAotCQkJCSAgIHZtYS0+ZmVuY2UtPmlkLAotCQkJCSAgIGk5MTVfYWN0aXZlX3JlcXVlc3RfaXNzZXQoJnZtYS0+bGFzdF9mZW5jZSkgPyAiKiIgOiAiIik7CisJCQlzZXFfcHJpbnRmKG0sICIgLCBmZW5jZTogJWQiLCB2bWEtPmZlbmNlLT5pZCk7CiAJCXNlcV9wdXRzKG0sICIpIik7CiAKIAkJc3Bpbl9sb2NrKCZvYmotPnZtYS5sb2NrKTsKQEAgLTIzNCwxNyArMjI3LDEyIEBAIGRlc2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJZW5naW5lID0gaTkxNV9nZW1fb2JqZWN0X2xhc3Rfd3JpdGVfZW5naW5lKG9iaik7CiAJaWYgKGVuZ2luZSkKIAkJc2VxX3ByaW50ZihtLCAiICglcykiLCBlbmdpbmUtPm5hbWUpOwotCi0JZnJvbnRidWZmZXJfYml0cyA9IGF0b21pY19yZWFkKCZvYmotPmZyb250YnVmZmVyX2JpdHMpOwotCWlmIChmcm9udGJ1ZmZlcl9iaXRzKQotCQlzZXFfcHJpbnRmKG0sICIgKGZyb250YnVmZmVyOiAweCUwM3gpIiwgZnJvbnRidWZmZXJfYml0cyk7CiB9CiAKIHN0cnVjdCBmaWxlX3N0YXRzIHsKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKIAl1bnNpZ25lZCBsb25nIGNvdW50OwogCXU2NCB0b3RhbCwgdW5ib3VuZDsKLQl1NjQgZ2xvYmFsLCBzaGFyZWQ7CiAJdTY0IGFjdGl2ZSwgaW5hY3RpdmU7CiAJdTY0IGNsb3NlZDsKIH07CkBAIC0yNTUsNzMgKzI0Myw2OCBAQCBzdGF0aWMgaW50IHBlcl9maWxlX3N0YXRzKGludCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkYXRhKQogCXN0cnVjdCBmaWxlX3N0YXRzICpzdGF0cyA9IGRhdGE7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCiAJc3RhdHMtPmNvdW50Kys7CiAJc3RhdHMtPnRvdGFsICs9IG9iai0+YmFzZS5zaXplOwogCWlmICghYXRvbWljX3JlYWQoJm9iai0+YmluZF9jb3VudCkpCiAJCXN0YXRzLT51bmJvdW5kICs9IG9iai0+YmFzZS5zaXplOwotCWlmIChvYmotPmJhc2UubmFtZSB8fCBvYmotPmJhc2UuZG1hX2J1ZikKLQkJc3RhdHMtPnNoYXJlZCArPSBvYmotPmJhc2Uuc2l6ZTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmb2JqLT52bWEubGlzdCwgb2JqX2xpbmspIHsKLQkJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpCi0JCQljb250aW51ZTsKLQotCQlpZiAoaTkxNV92bWFfaXNfZ2d0dCh2bWEpKSB7Ci0JCQlzdGF0cy0+Z2xvYmFsICs9IHZtYS0+bm9kZS5zaXplOwotCQl9IGVsc2UgewotCQkJaWYgKHZtYS0+dm0gIT0gc3RhdHMtPnZtKQorCXNwaW5fbG9jaygmb2JqLT52bWEubG9jayk7CisJaWYgKCFzdGF0cy0+dm0pIHsKKwkJZm9yX2VhY2hfZ2d0dF92bWEodm1hLCBvYmopIHsKKwkJCWlmICghZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpKQogCQkJCWNvbnRpbnVlOworCisJCQlpZiAoaTkxNV92bWFfaXNfYWN0aXZlKHZtYSkpCisJCQkJc3RhdHMtPmFjdGl2ZSArPSB2bWEtPm5vZGUuc2l6ZTsKKwkJCWVsc2UKKwkJCQlzdGF0cy0+aW5hY3RpdmUgKz0gdm1hLT5ub2RlLnNpemU7CisKKwkJCWlmIChpOTE1X3ZtYV9pc19jbG9zZWQodm1hKSkKKwkJCQlzdGF0cy0+Y2xvc2VkICs9IHZtYS0+bm9kZS5zaXplOwogCQl9CisJfSBlbHNlIHsKKwkJc3RydWN0IHJiX25vZGUgKnAgPSBvYmotPnZtYS50cmVlLnJiX25vZGU7CiAKLQkJaWYgKGk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKQotCQkJc3RhdHMtPmFjdGl2ZSArPSB2bWEtPm5vZGUuc2l6ZTsKLQkJZWxzZQotCQkJc3RhdHMtPmluYWN0aXZlICs9IHZtYS0+bm9kZS5zaXplOworCQl3aGlsZSAocCkgeworCQkJbG9uZyBjbXA7CiAKLQkJaWYgKGk5MTVfdm1hX2lzX2Nsb3NlZCh2bWEpKQotCQkJc3RhdHMtPmNsb3NlZCArPSB2bWEtPm5vZGUuc2l6ZTsKKwkJCXZtYSA9IHJiX2VudHJ5KHAsIHR5cGVvZigqdm1hKSwgb2JqX25vZGUpOworCQkJY21wID0gaTkxNV92bWFfY29tcGFyZSh2bWEsIHN0YXRzLT52bSwgTlVMTCk7CisJCQlpZiAoY21wID09IDApIHsKKwkJCQlpZiAoZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpKSB7CisJCQkJCWlmIChpOTE1X3ZtYV9pc19hY3RpdmUodm1hKSkKKwkJCQkJCXN0YXRzLT5hY3RpdmUgKz0gdm1hLT5ub2RlLnNpemU7CisJCQkJCWVsc2UKKwkJCQkJCXN0YXRzLT5pbmFjdGl2ZSArPSB2bWEtPm5vZGUuc2l6ZTsKKworCQkJCQlpZiAoaTkxNV92bWFfaXNfY2xvc2VkKHZtYSkpCisJCQkJCQlzdGF0cy0+Y2xvc2VkICs9IHZtYS0+bm9kZS5zaXplOworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChjbXAgPCAwKQorCQkJCXAgPSBwLT5yYl9yaWdodDsKKwkJCWVsc2UKKwkJCQlwID0gcC0+cmJfbGVmdDsKKwkJfQogCX0KKwlzcGluX3VubG9jaygmb2JqLT52bWEubG9jayk7CiAKIAlyZXR1cm4gMDsKIH0KIAogI2RlZmluZSBwcmludF9maWxlX3N0YXRzKG0sIG5hbWUsIHN0YXRzKSBkbyB7IFwKIAlpZiAoc3RhdHMuY291bnQpIFwKLQkJc2VxX3ByaW50ZihtLCAiJXM6ICVsdSBvYmplY3RzLCAlbGx1IGJ5dGVzICglbGx1IGFjdGl2ZSwgJWxsdSBpbmFjdGl2ZSwgJWxsdSBnbG9iYWwsICVsbHUgc2hhcmVkLCAlbGx1IHVuYm91bmQsICVsbHUgY2xvc2VkKVxuIiwgXAorCQlzZXFfcHJpbnRmKG0sICIlczogJWx1IG9iamVjdHMsICVsbHUgYnl0ZXMgKCVsbHUgYWN0aXZlLCAlbGx1IGluYWN0aXZlLCAlbGx1IHVuYm91bmQsICVsbHUgY2xvc2VkKVxuIiwgXAogCQkJICAgbmFtZSwgXAogCQkJICAgc3RhdHMuY291bnQsIFwKIAkJCSAgIHN0YXRzLnRvdGFsLCBcCiAJCQkgICBzdGF0cy5hY3RpdmUsIFwKIAkJCSAgIHN0YXRzLmluYWN0aXZlLCBcCi0JCQkgICBzdGF0cy5nbG9iYWwsIFwKLQkJCSAgIHN0YXRzLnNoYXJlZCwgXAogCQkJICAgc3RhdHMudW5ib3VuZCwgXAogCQkJICAgc3RhdHMuY2xvc2VkKTsgXAogfSB3aGlsZSAoMCkKIAotc3RhdGljIHZvaWQgcHJpbnRfYmF0Y2hfcG9vbF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCi0JCQkJICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCXN0cnVjdCBmaWxlX3N0YXRzIHN0YXRzID0ge307Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0JaW50IGo7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKLQkJZm9yIChqID0gMDsgaiA8IEFSUkFZX1NJWkUoZW5naW5lLT5iYXRjaF9wb29sLmNhY2hlX2xpc3QpOyBqKyspIHsKLQkJCWxpc3RfZm9yX2VhY2hfZW50cnkob2JqLAotCQkJCQkgICAgJmVuZ2luZS0+YmF0Y2hfcG9vbC5jYWNoZV9saXN0W2pdLAotCQkJCQkgICAgYmF0Y2hfcG9vbF9saW5rKQotCQkJCXBlcl9maWxlX3N0YXRzKDAsIG9iaiwgJnN0YXRzKTsKLQkJfQotCX0KLQotCXByaW50X2ZpbGVfc3RhdHMobSwgIltrXWJhdGNoIHBvb2wiLCBzdGF0cyk7Ci19Ci0KIHN0YXRpYyB2b2lkIHByaW50X2NvbnRleHRfc3RhdHMoc3RydWN0IHNlcV9maWxlICptLAogCQkJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewpAQCAtMzM0LDEwICszMTcsMTQgQEAgc3RhdGljIHZvaWQgcHJpbnRfY29udGV4dF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiAKIAkJZm9yX2VhY2hfZ2VtX2VuZ2luZShjZSwKIAkJCQkgICAgaTkxNV9nZW1fY29udGV4dF9sb2NrX2VuZ2luZXMoY3R4KSwgaXQpIHsKLQkJCWlmIChjZS0+c3RhdGUpCi0JCQkJcGVyX2ZpbGVfc3RhdHMoMCwgY2UtPnN0YXRlLT5vYmosICZrc3RhdHMpOwotCQkJaWYgKGNlLT5yaW5nKQorCQkJaW50ZWxfY29udGV4dF9sb2NrX3Bpbm5lZChjZSk7CisJCQlpZiAoaW50ZWxfY29udGV4dF9pc19waW5uZWQoY2UpKSB7CisJCQkJaWYgKGNlLT5zdGF0ZSkKKwkJCQkJcGVyX2ZpbGVfc3RhdHMoMCwKKwkJCQkJCSAgICAgICBjZS0+c3RhdGUtPm9iaiwgJmtzdGF0cyk7CiAJCQkJcGVyX2ZpbGVfc3RhdHMoMCwgY2UtPnJpbmctPnZtYS0+b2JqLCAma3N0YXRzKTsKKwkJCX0KKwkJCWludGVsX2NvbnRleHRfdW5sb2NrX3Bpbm5lZChjZSk7CiAJCX0KIAkJaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOwogCkBAIC0zNjksOCArMzU2LDkgQEAgc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7CiAJaW50IHJldDsKIAotCXNlcV9wcmludGYobSwgIiV1IHNocmlua2FibGUgb2JqZWN0cywgJWxsdSBieXRlc1xuIiwKKwlzZXFfcHJpbnRmKG0sICIldSBzaHJpbmthYmxlIFsldSBmcmVlXSBvYmplY3RzLCAlbGx1IGJ5dGVzXG4iLAogCQkgICBpOTE1LT5tbS5zaHJpbmtfY291bnQsCisJCSAgIGF0b21pY19yZWFkKCZpOTE1LT5tbS5mcmVlX2NvdW50KSwKIAkJICAgaTkxNS0+bW0uc2hyaW5rX21lbW9yeSk7CiAKIAlzZXFfcHV0YyhtLCAnXG4nKTsKQEAgLTM3OSw1OCArMzY3LDEyIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlwcmludF9iYXRjaF9wb29sX3N0YXRzKG0sIGk5MTUpOwogCXByaW50X2NvbnRleHRfc3RhdHMobSwgaTkxNSk7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQlpbnQgdG90YWwgPSAwOwotCWludCByZXQsIGo7Ci0KLQlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldi0+c3RydWN0X211dGV4KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7Ci0JCWZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKGVuZ2luZS0+YmF0Y2hfcG9vbC5jYWNoZV9saXN0KTsgaisrKSB7Ci0JCQlpbnQgY291bnQ7Ci0KLQkJCWNvdW50ID0gMDsKLQkJCWxpc3RfZm9yX2VhY2hfZW50cnkob2JqLAotCQkJCQkgICAgJmVuZ2luZS0+YmF0Y2hfcG9vbC5jYWNoZV9saXN0W2pdLAotCQkJCQkgICAgYmF0Y2hfcG9vbF9saW5rKQotCQkJCWNvdW50Kys7Ci0JCQlzZXFfcHJpbnRmKG0sICIlcyBjYWNoZVslZF06ICVkIG9iamVjdHNcbiIsCi0JCQkJICAgZW5naW5lLT5uYW1lLCBqLCBjb3VudCk7Ci0KLQkJCWxpc3RfZm9yX2VhY2hfZW50cnkob2JqLAotCQkJCQkgICAgJmVuZ2luZS0+YmF0Y2hfcG9vbC5jYWNoZV9saXN0W2pdLAotCQkJCQkgICAgYmF0Y2hfcG9vbF9saW5rKSB7Ci0JCQkJc2VxX3B1dHMobSwgIiAgICIpOwotCQkJCWRlc2NyaWJlX29iaihtLCBvYmopOwotCQkJCXNlcV9wdXRjKG0sICdcbicpOwotCQkJfQotCi0JCQl0b3RhbCArPSBjb3VudDsKLQkJfQotCX0KLQotCXNlcV9wcmludGYobSwgInRvdGFsOiAlZFxuIiwgdG90YWwpOwotCi0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQgZ2VuOF9kaXNwbGF5X2ludGVycnVwdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7CkBAIC00ODcsNyArNDI5LDYgQEAgc3RhdGljIGludCBpOTE1X2ludGVycnVwdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCWludCBpLCBwaXBlOwogCkBAIC02OTAsNyArNjMxLDcgQEAgc3RhdGljIGludCBpOTE1X2ludGVycnVwdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAkJCSAgIEk5MTVfUkVBRChHRU4xMV9HVU5JVF9DU01FX0lOVFJfTUFTSykpOwogCiAJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpIHsKLQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7CisJCWZvcl9lYWNoX3VhYmlfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJCXNlcV9wcmludGYobSwKIAkJCQkgICAiR3JhcGhpY3MgSW50ZXJydXB0IG1hc2sgKCVzKToJJTA4eFxuIiwKIAkJCQkgICBlbmdpbmUtPm5hbWUsIEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19JTVIpKTsKQEAgLTcxMSwxMCArNjUyLDExIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fZmVuY2VfcmVnc19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAogCXJjdV9yZWFkX2xvY2soKTsKIAlmb3IgKGkgPSAwOyBpIDwgaTkxNS0+Z2d0dC5udW1fZmVuY2VzOyBpKyspIHsKLQkJc3RydWN0IGk5MTVfdm1hICp2bWEgPSBpOTE1LT5nZ3R0LmZlbmNlX3JlZ3NbaV0udm1hOworCQlzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKnJlZyA9ICZpOTE1LT5nZ3R0LmZlbmNlX3JlZ3NbaV07CisJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hID0gcmVnLT52bWE7CiAKIAkJc2VxX3ByaW50ZihtLCAiRmVuY2UgJWQsIHBpbiBjb3VudCA9ICVkLCBvYmplY3QgPSAiLAotCQkJICAgaSwgaTkxNS0+Z2d0dC5mZW5jZV9yZWdzW2ldLnBpbl9jb3VudCk7CisJCQkgICBpLCBhdG9taWNfcmVhZCgmcmVnLT5waW5fY291bnQpKTsKIAkJaWYgKCF2bWEpCiAJCQlzZXFfcHV0cyhtLCAidW51c2VkIik7CiAJCWVsc2UKQEAgLTEwODAsMTcgKzEwMjIsMTYgQEAgc3RhdGljIHZvaWQgaTkxNV9pbnN0ZG9uZV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogc3RhdGljIGludCBpOTE1X2hhbmdjaGVja19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQl1NjQgYWN0aGRbSTkxNV9OVU1fRU5HSU5FU107Ci0Jc3RydWN0IGludGVsX2luc3Rkb25lIGluc3Rkb25lOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCi0Jc2VxX3ByaW50ZihtLCAiUmVzZXQgZmxhZ3M6ICVseFxuIiwgZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncyk7Ci0JaWYgKHRlc3RfYml0KEk5MTVfV0VER0VELCAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncykpCisJc2VxX3ByaW50ZihtLCAiUmVzZXQgZmxhZ3M6ICVseFxuIiwgZ3QtPnJlc2V0LmZsYWdzKTsKKwlpZiAodGVzdF9iaXQoSTkxNV9XRURHRUQsICZndC0+cmVzZXQuZmxhZ3MpKQogCQlzZXFfcHV0cyhtLCAiXHRXZWRnZWRcbiIpOwotCWlmICh0ZXN0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKSkKKwlpZiAodGVzdF9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAmZ3QtPnJlc2V0LmZsYWdzKSkKIAkJc2VxX3B1dHMobSwgIlx0RGV2aWNlIChnbG9iYWwpIHJlc2V0IGluIHByb2dyZXNzXG4iKTsKIAogCWlmICghaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykgewpAQCAtMTA5OCw0MiArMTAzOSwzNyBAQCBzdGF0aWMgaW50IGk5MTVfaGFuZ2NoZWNrX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCXJldHVybiAwOwogCX0KIAotCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpIHsKLQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQotCQkJYWN0aGRbaWRdID0gaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwotCi0JCWludGVsX2VuZ2luZV9nZXRfaW5zdGRvbmUoZGV2X3ByaXYtPmVuZ2luZVtSQ1MwXSwgJmluc3Rkb25lKTsKLQl9Ci0KLQlpZiAodGltZXJfcGVuZGluZygmZGV2X3ByaXYtPmdwdV9lcnJvci5oYW5nY2hlY2tfd29yay50aW1lcikpCisJaWYgKHRpbWVyX3BlbmRpbmcoJmd0LT5oYW5nY2hlY2sud29yay50aW1lcikpCiAJCXNlcV9wcmludGYobSwgIkhhbmdjaGVjayBhY3RpdmUsIHRpbWVyIGZpcmVzIGluICVkbXNcbiIsCi0JCQkgICBqaWZmaWVzX3RvX21zZWNzKGRldl9wcml2LT5ncHVfZXJyb3IuaGFuZ2NoZWNrX3dvcmsudGltZXIuZXhwaXJlcyAtCisJCQkgICBqaWZmaWVzX3RvX21zZWNzKGd0LT5oYW5nY2hlY2sud29yay50aW1lci5leHBpcmVzIC0KIAkJCQkJICAgIGppZmZpZXMpKTsKLQllbHNlIGlmIChkZWxheWVkX3dvcmtfcGVuZGluZygmZGV2X3ByaXYtPmdwdV9lcnJvci5oYW5nY2hlY2tfd29yaykpCisJZWxzZSBpZiAoZGVsYXllZF93b3JrX3BlbmRpbmcoJmd0LT5oYW5nY2hlY2sud29yaykpCiAJCXNlcV9wdXRzKG0sICJIYW5nY2hlY2sgYWN0aXZlLCB3b3JrIHBlbmRpbmdcbiIpOwogCWVsc2UKIAkJc2VxX3B1dHMobSwgIkhhbmdjaGVjayBpbmFjdGl2ZVxuIik7CiAKLQlzZXFfcHJpbnRmKG0sICJHVCBhY3RpdmU/ICVzXG4iLCB5ZXNubyhkZXZfcHJpdi0+Z3QuYXdha2UpKTsKKwlzZXFfcHJpbnRmKG0sICJHVCBhY3RpdmU/ICVzXG4iLCB5ZXNubyhndC0+YXdha2UpKTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewotCQlzZXFfcHJpbnRmKG0sICIlczogJWQgbXMgYWdvXG4iLAotCQkJICAgZW5naW5lLT5uYW1lLAotCQkJICAgamlmZmllc190b19tc2VjcyhqaWZmaWVzIC0KLQkJCQkJICAgIGVuZ2luZS0+aGFuZ2NoZWNrLmFjdGlvbl90aW1lc3RhbXApKTsKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpIHsKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwkJCXN0cnVjdCBpbnRlbF9pbnN0ZG9uZSBpbnN0ZG9uZTsKIAotCQlzZXFfcHJpbnRmKG0sICJcdEFDVEhEID0gMHglMDhsbHggW2N1cnJlbnQgMHglMDhsbHhdXG4iLAotCQkJICAgKGxvbmcgbG9uZyllbmdpbmUtPmhhbmdjaGVjay5hY3RoZCwKLQkJCSAgIChsb25nIGxvbmcpYWN0aGRbaWRdKTsKKwkJCXNlcV9wcmludGYobSwgIiVzOiAlZCBtcyBhZ29cbiIsCisJCQkJICAgZW5naW5lLT5uYW1lLAorCQkJCSAgIGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtCisJCQkJCQkgICAgZW5naW5lLT5oYW5nY2hlY2suYWN0aW9uX3RpbWVzdGFtcCkpOwogCi0JCWlmIChlbmdpbmUtPmlkID09IFJDUzApIHsKKwkJCXNlcV9wcmludGYobSwgIlx0QUNUSEQgPSAweCUwOGxseCBbY3VycmVudCAweCUwOGxseF1cbiIsCisJCQkJICAgKGxvbmcgbG9uZyllbmdpbmUtPmhhbmdjaGVjay5hY3RoZCwKKwkJCQkgICBpbnRlbF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSkpOworCisJCQlpbnRlbF9lbmdpbmVfZ2V0X2luc3Rkb25lKGVuZ2luZSwgJmluc3Rkb25lKTsKKwogCQkJc2VxX3B1dHMobSwgIlx0aW5zdGRvbmUgcmVhZCA9XG4iKTsKLQotCQkJaTkxNV9pbnN0ZG9uZV9pbmZvKGRldl9wcml2LCBtLCAmaW5zdGRvbmUpOworCQkJaTkxNV9pbnN0ZG9uZV9pbmZvKGk5MTUsIG0sICZpbnN0ZG9uZSk7CiAKIAkJCXNlcV9wdXRzKG0sICJcdGluc3Rkb25lIGFjY3UgPVxuIik7Ci0KLQkJCWk5MTVfaW5zdGRvbmVfaW5mbyhkZXZfcHJpdiwgbSwKKwkJCWk5MTVfaW5zdGRvbmVfaW5mbyhpOTE1LCBtLAogCQkJCQkgICAmZW5naW5lLT5oYW5nY2hlY2suaW5zdGRvbmUpOwogCQl9CiAJfQpAQCAtMTE0MSwyMyArMTA3Nyw2IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpOTE1X3Jlc2V0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwotCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IgPSAmZGV2X3ByaXYtPmdwdV9lcnJvcjsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0KLQlzZXFfcHJpbnRmKG0sICJmdWxsIGdwdSByZXNldCA9ICV1XG4iLCBpOTE1X3Jlc2V0X2NvdW50KGVycm9yKSk7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKLQkJc2VxX3ByaW50ZihtLCAiJXMgPSAldVxuIiwgZW5naW5lLT5uYW1lLAotCQkJICAgaTkxNV9yZXNldF9lbmdpbmVfY291bnQoZXJyb3IsIGVuZ2luZSkpOwotCX0KLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgaW50IGlyb25sYWtlX2RycGNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7CkBAIC0xMjI0LDcgKzExNDMsNyBAQCBzdGF0aWMgaW50IGk5MTVfZm9yY2V3YWtlX2RvbWFpbnMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXVuc2lnbmVkIGludCB0bXA7CiAKIAlzZXFfcHJpbnRmKG0sICJ1c2VyLmJ5cGFzc19jb3VudCA9ICV1XG4iLAotCQkgICB1bmNvcmUtPnVzZXJfZm9yY2V3YWtlLmNvdW50KTsKKwkJICAgdW5jb3JlLT51c2VyX2ZvcmNld2FrZV9jb3VudCk7CiAKIAlmb3JfZWFjaF9md19kb21haW4oZndfZG9tYWluLCB1bmNvcmUsIHRtcCkKIAkJc2VxX3ByaW50ZihtLCAiJXMud2FrZV9jb3VudCA9ICV1XG4iLApAQCAtMTUxNywzMCArMTQzNiw2IEBAIHN0YXRpYyBpbnQgaTkxNV9zcl9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9lbW9uX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQotCWlmICghSVNfR0VOKGk5MTUsIDUpKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZikgewotCQl1bnNpZ25lZCBsb25nIHRlbXAsIGNoaXBzZXQsIGdmeDsKLQotCQl0ZW1wID0gaTkxNV9tY2hfdmFsKGk5MTUpOwotCQljaGlwc2V0ID0gaTkxNV9jaGlwc2V0X3ZhbChpOTE1KTsKLQkJZ2Z4ID0gaTkxNV9nZnhfdmFsKGk5MTUpOwotCi0JCXNlcV9wcmludGYobSwgIkdNQ0ggdGVtcDogJWxkXG4iLCB0ZW1wKTsKLQkJc2VxX3ByaW50ZihtLCAiQ2hpcHNldCBwb3dlcjogJWxkXG4iLCBjaGlwc2V0KTsKLQkJc2VxX3ByaW50ZihtLCAiR0ZYIHBvd2VyOiAlbGRcbiIsIGdmeCk7Ci0JCXNlcV9wcmludGYobSwgIlRvdGFsIHBvd2VyOiAlbGRcbiIsIGNoaXBzZXQgKyBnZngpOwotCX0KLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgaW50IGk5MTVfcmluZ19mcmVxX3RhYmxlKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKQEAgLTE3MDYsMTIgKzE2MDEsMTUgQEAgc3RhdGljIGludCBpOTE1X2NvbnRleHRfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCiAJCWZvcl9lYWNoX2dlbV9lbmdpbmUoY2UsCiAJCQkJICAgIGk5MTVfZ2VtX2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCksIGl0KSB7Ci0JCQlzZXFfcHJpbnRmKG0sICIlczogIiwgY2UtPmVuZ2luZS0+bmFtZSk7Ci0JCQlpZiAoY2UtPnN0YXRlKQotCQkJCWRlc2NyaWJlX29iaihtLCBjZS0+c3RhdGUtPm9iaik7Ci0JCQlpZiAoY2UtPnJpbmcpCisJCQlpbnRlbF9jb250ZXh0X2xvY2tfcGlubmVkKGNlKTsKKwkJCWlmIChpbnRlbF9jb250ZXh0X2lzX3Bpbm5lZChjZSkpIHsKKwkJCQlzZXFfcHJpbnRmKG0sICIlczogIiwgY2UtPmVuZ2luZS0+bmFtZSk7CisJCQkJaWYgKGNlLT5zdGF0ZSkKKwkJCQkJZGVzY3JpYmVfb2JqKG0sIGNlLT5zdGF0ZS0+b2JqKTsKIAkJCQlkZXNjcmliZV9jdHhfcmluZyhtLCBjZS0+cmluZyk7Ci0JCQlzZXFfcHV0YyhtLCAnXG4nKTsKKwkJCQlzZXFfcHV0YyhtLCAnXG4nKTsKKwkJCX0KKwkJCWludGVsX2NvbnRleHRfdW5sb2NrX3Bpbm5lZChjZSk7CiAJCX0KIAkJaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOwogCkBAIC0xODk0LDExICsxNzkyLDExIEBAIHN0YXRpYyBpbnQgaTkxNV9odWNfbG9hZF9zdGF0dXNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJc3RydWN0IGRybV9wcmludGVyIHA7CiAKLQlpZiAoIUhBU19IVUMoZGV2X3ByaXYpKQorCWlmICghSEFTX0dUX1VDKGRldl9wcml2KSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Ci0JaW50ZWxfdWNfZndfZHVtcCgmZGV2X3ByaXYtPmh1Yy5mdywgJnApOworCWludGVsX3VjX2Z3X2R1bXAoJmRldl9wcml2LT5ndC51Yy5odWMuZncsICZwKTsKIAogCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCiAJCXNlcV9wcmludGYobSwgIlxuSHVDIHN0YXR1cyAweCUwOHg6XG4iLCBJOTE1X1JFQUQoSFVDX1NUQVRVUzIpKTsKQEAgLTE5MTIsMTEgKzE4MTAsMTEgQEAgc3RhdGljIGludCBpOTE1X2d1Y19sb2FkX3N0YXR1c19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAlzdHJ1Y3QgZHJtX3ByaW50ZXIgcDsKIAotCWlmICghSEFTX0dVQyhkZXZfcHJpdikpCisJaWYgKCFIQVNfR1RfVUMoZGV2X3ByaXYpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCXAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKLQlpbnRlbF91Y19md19kdW1wKCZkZXZfcHJpdi0+Z3VjLmZ3LCAmcCk7CisJaW50ZWxfdWNfZndfZHVtcCgmZGV2X3ByaXYtPmd0LnVjLmd1Yy5mdywgJnApOwogCiAJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikgewogCQl1MzIgdG1wID0gSTkxNV9SRUFEKEdVQ19TVEFUVVMpOwpAQCAtMTk1OSw3ICsxODU3LDcgQEAgc3RyaW5naWZ5X2d1Y19sb2dfdHlwZShlbnVtIGd1Y19sb2dfYnVmZmVyX3R5cGUgdHlwZSkKIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2xvZ19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAkJCSAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nID0gJmRldl9wcml2LT5ndWMubG9nOworCXN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cgPSAmZGV2X3ByaXYtPmd0LnVjLmd1Yy5sb2c7CiAJZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHR5cGU7CiAKIAlpZiAoIWludGVsX2d1Y19sb2dfcmVsYXlfZW5hYmxlZChsb2cpKSB7CkBAIC0xOTgwLDMyICsxODc4LDExIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2xvZ19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfZ3VjX2NsaWVudF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKLQkJCQkgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCSBzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQl1NjQgdG90ID0gMDsKLQotCXNlcV9wcmludGYobSwgIlx0UHJpb3JpdHkgJWQsIEd1QyBzdGFnZSBpbmRleDogJXUsIFBEIG9mZnNldCAweCV4XG4iLAotCQljbGllbnQtPnByaW9yaXR5LCBjbGllbnQtPnN0YWdlX2lkLCBjbGllbnQtPnByb2NfZGVzY19vZmZzZXQpOwotCXNlcV9wcmludGYobSwgIlx0RG9vcmJlbGwgaWQgJWQsIG9mZnNldDogMHglbHhcbiIsCi0JCWNsaWVudC0+ZG9vcmJlbGxfaWQsIGNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0KTsKLQotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewotCQl1NjQgc3VibWlzc2lvbnMgPSBjbGllbnQtPnN1Ym1pc3Npb25zW2lkXTsKLQkJdG90ICs9IHN1Ym1pc3Npb25zOwotCQlzZXFfcHJpbnRmKG0sICJcdFN1Ym1pc3Npb25zOiAlbGx1ICVzXG4iLAotCQkJCXN1Ym1pc3Npb25zLCBlbmdpbmUtPm5hbWUpOwotCX0KLQlzZXFfcHJpbnRmKG0sICJcdFRvdGFsOiAlbGx1XG4iLCB0b3QpOwotfQotCiBzdGF0aWMgaW50IGk5MTVfZ3VjX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd0LnVjLmd1YzsKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKIAogCWlmICghVVNFU19HVUMoZGV2X3ByaXYpKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTIwMjEsMTQgKzE4OTgsMTMgQEAgc3RhdGljIGludCBpOTE1X2d1Y19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlzZXFfcHJpbnRmKG0sICJcdCUqcGJcbiIsIEdVQ19OVU1fRE9PUkJFTExTLCBndWMtPmRvb3JiZWxsX2JpdG1hcCk7CiAJc2VxX3ByaW50ZihtLCAiRG9vcmJlbGwgbmV4dCBjYWNoZWxpbmU6IDB4JXhcbiIsIGd1Yy0+ZGJfY2FjaGVsaW5lKTsKIAotCXNlcV9wcmludGYobSwgIlxuR3VDIGV4ZWNidWYgY2xpZW50IEAgJXA6XG4iLCBndWMtPmV4ZWNidWZfY2xpZW50KTsKLQlpOTE1X2d1Y19jbGllbnRfaW5mbyhtLCBkZXZfcHJpdiwgZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0JaWYgKGd1Yy0+cHJlZW1wdF9jbGllbnQpIHsKLQkJc2VxX3ByaW50ZihtLCAiXG5HdUMgcHJlZW1wdCBjbGllbnQgQCAlcDpcbiIsCi0JCQkgICBndWMtPnByZWVtcHRfY2xpZW50KTsKLQkJaTkxNV9ndWNfY2xpZW50X2luZm8obSwgZGV2X3ByaXYsIGd1Yy0+cHJlZW1wdF9jbGllbnQpOwotCX0KLQorCXNlcV9wcmludGYobSwgIlxuR3VDIGV4ZWNidWYgY2xpZW50IEAgJXA6XG4iLCBjbGllbnQpOworCXNlcV9wcmludGYobSwgIlx0UHJpb3JpdHkgJWQsIEd1QyBzdGFnZSBpbmRleDogJXUsIFBEIG9mZnNldCAweCV4XG4iLAorCQkgICBjbGllbnQtPnByaW9yaXR5LAorCQkgICBjbGllbnQtPnN0YWdlX2lkLAorCQkgICBjbGllbnQtPnByb2NfZGVzY19vZmZzZXQpOworCXNlcV9wcmludGYobSwgIlx0RG9vcmJlbGwgaWQgJWQsIG9mZnNldDogMHglbHhcbiIsCisJCSAgIGNsaWVudC0+ZG9vcmJlbGxfaWQsIGNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0KTsKIAkvKiBBZGQgbW9yZSBhcyByZXF1aXJlZCAuLi4gKi8KIAogCXJldHVybiAwOwpAQCAtMjAzNywxMCArMTkxMyw4IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiBzdGF0aWMgaW50IGk5MTVfZ3VjX3N0YWdlX3Bvb2woc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd0LnVjLmd1YzsKIAlzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MgKmRlc2MgPSBndWMtPnN0YWdlX2Rlc2NfcG9vbF92YWRkcjsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKLQlpbnRlbF9lbmdpbmVfbWFza190IHRtcDsKIAlpbnQgaW5kZXg7CiAKIAlpZiAoIVVTRVNfR1VDX1NVQk1JU1NJT04oZGV2X3ByaXYpKQpAQCAtMjA2OSw3ICsxOTQzLDcgQEAgc3RhdGljIGludCBpOTE1X2d1Y19zdGFnZV9wb29sKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAkJCSAgIGRlc2MtPndxX2FkZHIsIGRlc2MtPndxX3NpemUpOwogCQlzZXFfcHV0YyhtLCAnXG4nKTsKIAotCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZGV2X3ByaXYsIGNsaWVudC0+ZW5naW5lcywgdG1wKSB7CisJCWZvcl9lYWNoX3VhYmlfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJCXUzMiBndWNfZW5naW5lX2lkID0gZW5naW5lLT5ndWNfaWQ7CiAJCQlzdHJ1Y3QgZ3VjX2V4ZWNsaXN0X2NvbnRleHQgKmxyYyA9CiAJCQkJCQkmZGVzYy0+bHJjW2d1Y19lbmdpbmVfaWRdOwpAQCAtMjA5NywxMyArMTk3MSwxMyBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2xvZ19kdW1wKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAl1MzIgKmxvZzsKIAlpbnQgaSA9IDA7CiAKLQlpZiAoIUhBU19HVUMoZGV2X3ByaXYpKQorCWlmICghSEFTX0dUX1VDKGRldl9wcml2KSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlpZiAoZHVtcF9sb2FkX2VycikKLQkJb2JqID0gZGV2X3ByaXYtPmd1Yy5sb2FkX2Vycl9sb2c7Ci0JZWxzZSBpZiAoZGV2X3ByaXYtPmd1Yy5sb2cudm1hKQotCQlvYmogPSBkZXZfcHJpdi0+Z3VjLmxvZy52bWEtPm9iajsKKwkJb2JqID0gZGV2X3ByaXYtPmd0LnVjLmxvYWRfZXJyX2xvZzsKKwllbHNlIGlmIChkZXZfcHJpdi0+Z3QudWMuZ3VjLmxvZy52bWEpCisJCW9iaiA9IGRldl9wcml2LT5ndC51Yy5ndWMubG9nLnZtYS0+b2JqOwogCiAJaWYgKCFvYmopCiAJCXJldHVybiAwOwpAQCAtMjEzNCw3ICsyMDA4LDcgQEAgc3RhdGljIGludCBpOTE1X2d1Y19sb2dfbGV2ZWxfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQogCWlmICghVVNFU19HVUMoZGV2X3ByaXYpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCSp2YWwgPSBpbnRlbF9ndWNfbG9nX2dldF9sZXZlbCgmZGV2X3ByaXYtPmd1Yy5sb2cpOworCSp2YWwgPSBpbnRlbF9ndWNfbG9nX2dldF9sZXZlbCgmZGV2X3ByaXYtPmd0LnVjLmd1Yy5sb2cpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMTQ2LDcgKzIwMjAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2xvZ19sZXZlbF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAlpZiAoIVVTRVNfR1VDKGRldl9wcml2KSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlyZXR1cm4gaW50ZWxfZ3VjX2xvZ19zZXRfbGV2ZWwoJmRldl9wcml2LT5ndWMubG9nLCB2YWwpOworCXJldHVybiBpbnRlbF9ndWNfbG9nX3NldF9sZXZlbCgmZGV2X3ByaXYtPmd0LnVjLmd1Yy5sb2csIHZhbCk7CiB9CiAKIERFRklORV9TSU1QTEVfQVRUUklCVVRFKGk5MTVfZ3VjX2xvZ19sZXZlbF9mb3BzLApAQCAtMjE1NSwxNCArMjAyOSwxNiBAQCBERUZJTkVfU0lNUExFX0FUVFJJQlVURShpOTE1X2d1Y19sb2dfbGV2ZWxfZm9wcywKIAogc3RhdGljIGludCBpOTE1X2d1Y19sb2dfcmVsYXlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBpbm9kZS0+aV9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gaW5vZGUtPmlfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3QudWMuZ3VjOworCXN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cgPSAmZ3VjLT5sb2c7CiAKLQlpZiAoIVVTRVNfR1VDKGRldl9wcml2KSkKKwlpZiAoIWludGVsX2d1Y19pc19ydW5uaW5nKGd1YykpCiAJCXJldHVybiAtRU5PREVWOwogCi0JZmlsZS0+cHJpdmF0ZV9kYXRhID0gJmRldl9wcml2LT5ndWMubG9nOworCWZpbGUtPnByaXZhdGVfZGF0YSA9IGxvZzsKIAotCXJldHVybiBpbnRlbF9ndWNfbG9nX3JlbGF5X29wZW4oJmRldl9wcml2LT5ndWMubG9nKTsKKwlyZXR1cm4gaW50ZWxfZ3VjX2xvZ19yZWxheV9vcGVuKGxvZyk7CiB9CiAKIHN0YXRpYyBzc2l6ZV90CkBAIC0yMTc0LDE2ICsyMDUwLDE1IEBAIGk5MTVfZ3VjX2xvZ19yZWxheV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwKIAlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nID0gZmlscC0+cHJpdmF0ZV9kYXRhOwogCiAJaW50ZWxfZ3VjX2xvZ19yZWxheV9mbHVzaChsb2cpOwotCiAJcmV0dXJuIGNudDsKIH0KIAogc3RhdGljIGludCBpOTE1X2d1Y19sb2dfcmVsYXlfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBpbm9kZS0+aV9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gaW5vZGUtPmlfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3QudWMuZ3VjOwogCi0JaW50ZWxfZ3VjX2xvZ19yZWxheV9jbG9zZSgmZGV2X3ByaXYtPmd1Yy5sb2cpOwotCisJaW50ZWxfZ3VjX2xvZ19yZWxheV9jbG9zZSgmZ3VjLT5sb2cpOwogCXJldHVybiAwOwogfQogCkBAIC0yNDg1LDcgKzIzNjAsOCBAQCBzdGF0aWMgaW50IGk5MTVfcG93ZXJfZG9tYWluX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAKIAkJZm9yX2VhY2hfcG93ZXJfZG9tYWluKHBvd2VyX2RvbWFpbiwgcG93ZXJfd2VsbC0+ZGVzYy0+ZG9tYWlucykKIAkJCXNlcV9wcmludGYobSwgIiAgJS0yM3MgJWRcbiIsCi0JCQkJIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihwb3dlcl9kb21haW4pLAorCQkJCSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZGV2X3ByaXYsCisJCQkJCQkJCXBvd2VyX2RvbWFpbiksCiAJCQkJIHBvd2VyX2RvbWFpbnMtPmRvbWFpbl91c2VfY291bnRbcG93ZXJfZG9tYWluXSk7CiAJfQogCkBAIC0yNDk5LDYgKzIzNzUsNyBAQCBzdGF0aWMgaW50IGk5MTVfZG1jX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCXN0cnVjdCBpbnRlbF9jc3IgKmNzcjsKKwlpOTE1X3JlZ190IGRjNV9yZWcsIGRjNl9yZWcgPSB7fTsKIAogCWlmICghSEFTX0NTUihkZXZfcHJpdikpCiAJCXJldHVybiAtRU5PREVWOwpAQCAtMjUxNiwxNSArMjM5MywxOSBAQCBzdGF0aWMgaW50IGk5MTVfZG1jX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJc2VxX3ByaW50ZihtLCAidmVyc2lvbjogJWQuJWRcbiIsIENTUl9WRVJTSU9OX01BSk9SKGNzci0+dmVyc2lvbiksCiAJCSAgIENTUl9WRVJTSU9OX01JTk9SKGNzci0+dmVyc2lvbikpOwogCi0JaWYgKFdBUk5fT04oSU5URUxfR0VOKGRldl9wcml2KSA+IDExKSkKLQkJZ290byBvdXQ7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKKwkJZGM1X3JlZyA9IFRHTF9ETUNfREVCVUdfREM1X0NPVU5UOworCQlkYzZfcmVnID0gVEdMX0RNQ19ERUJVR19EQzZfQ09VTlQ7CisJfSBlbHNlIHsKKwkJZGM1X3JlZyA9IElTX0JST1hUT04oZGV2X3ByaXYpID8gQlhUX0NTUl9EQzNfREM1X0NPVU5UIDoKKwkJCQkJCSBTS0xfQ1NSX0RDM19EQzVfQ09VTlQ7CisJCWlmICghSVNfR0VOOV9MUChkZXZfcHJpdikpCisJCQlkYzZfcmVnID0gU0tMX0NTUl9EQzVfREM2X0NPVU5UOworCX0KIAotCXNlcV9wcmludGYobSwgIkRDMyAtPiBEQzUgY291bnQ6ICVkXG4iLAotCQkgICBJOTE1X1JFQUQoSVNfQlJPWFRPTihkZXZfcHJpdikgPyBCWFRfQ1NSX0RDM19EQzVfQ09VTlQgOgotCQkJCQkJICAgIFNLTF9DU1JfREMzX0RDNV9DT1VOVCkpOwotCWlmICghSVNfR0VOOV9MUChkZXZfcHJpdikpCi0JCXNlcV9wcmludGYobSwgIkRDNSAtPiBEQzYgY291bnQ6ICVkXG4iLAotCQkJICAgSTkxNV9SRUFEKFNLTF9DU1JfREM1X0RDNl9DT1VOVCkpOworCXNlcV9wcmludGYobSwgIkRDMyAtPiBEQzUgY291bnQ6ICVkXG4iLCBJOTE1X1JFQUQoZGM1X3JlZykpOworCWlmIChkYzZfcmVnLnJlZykKKwkJc2VxX3ByaW50ZihtLCAiREM1IC0+IERDNiBjb3VudDogJWRcbiIsIEk5MTVfUkVBRChkYzZfcmVnKSk7CiAKIG91dDoKIAlzZXFfcHJpbnRmKG0sICJwcm9ncmFtIGJhc2U6IDB4JTA4eFxuIiwgSTkxNV9SRUFEKENTUl9QUk9HUkFNKDApKSk7CkBAIC0yNjAzLDYgKzI0ODQsMjUgQEAgc3RhdGljIHZvaWQgaW50ZWxfcGFuZWxfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwpCiAJaW50ZWxfc2VxX3ByaW50X21vZGUobSwgMiwgbW9kZSk7CiB9CiAKK3N0YXRpYyB2b2lkIGludGVsX2hkY3BfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCisJCQkgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQoreworCWJvb2wgaGRjcF9jYXAsIGhkY3AyX2NhcDsKKworCWhkY3BfY2FwID0gaW50ZWxfaGRjcF9jYXBhYmxlKGludGVsX2Nvbm5lY3Rvcik7CisJaGRjcDJfY2FwID0gaW50ZWxfaGRjcDJfY2FwYWJsZShpbnRlbF9jb25uZWN0b3IpOworCisJaWYgKGhkY3BfY2FwKQorCQlzZXFfcHV0cyhtLCAiSERDUDEuNCAiKTsKKwlpZiAoaGRjcDJfY2FwKQorCQlzZXFfcHV0cyhtLCAiSERDUDIuMiAiKTsKKworCWlmICghaGRjcF9jYXAgJiYgIWhkY3AyX2NhcCkKKwkJc2VxX3B1dHMobSwgIk5vbmUiKTsKKworCXNlcV9wdXRzKG0sICJcbiIpOworfQorCiBzdGF0aWMgdm9pZCBpbnRlbF9kcF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAkJCSAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQogewpAQCAtMjYxNiw2ICsyNTE2LDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2luZm8oc3RydWN0IHNlcV9maWxlICptLAogCiAJZHJtX2RwX2Rvd25zdHJlYW1fZGVidWcobSwgaW50ZWxfZHAtPmRwY2QsIGludGVsX2RwLT5kb3duc3RyZWFtX3BvcnRzLAogCQkJCSZpbnRlbF9kcC0+YXV4KTsKKwlpZiAoaW50ZWxfY29ubmVjdG9yLT5oZGNwLnNoaW0pIHsKKwkJc2VxX3B1dHMobSwgIlx0SERDUCB2ZXJzaW9uOiAiKTsKKwkJaW50ZWxfaGRjcF9pbmZvKG0sIGludGVsX2Nvbm5lY3Rvcik7CisJfQogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9kcF9tc3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCkBAIC0yNjM5LDYgKzI1NDMsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsKIAogCXNlcV9wcmludGYobSwgIlx0YXVkaW8gc3VwcG9ydDogJXNcbiIsIHllc25vKGludGVsX2hkbWktPmhhc19hdWRpbykpOworCWlmIChpbnRlbF9jb25uZWN0b3ItPmhkY3Auc2hpbSkgeworCQlzZXFfcHV0cyhtLCAiXHRIRENQIHZlcnNpb246ICIpOworCQlpbnRlbF9oZGNwX2luZm8obSwgaW50ZWxfY29ubmVjdG9yKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2x2ZHNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCkBAIC0yODc0LDcgKzI3ODIsNiBAQCBzdGF0aWMgaW50IGk5MTVfZW5naW5lX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAlzdHJ1Y3QgZHJtX3ByaW50ZXIgcDsKIAogCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwpAQCAtMjg4Niw3ICsyNzkzLDcgQEAgc3RhdGljIGludCBpOTE1X2VuZ2luZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQkgICBSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5jc190aW1lc3RhbXBfZnJlcXVlbmN5X2toeik7CiAKIAlwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQorCWZvcl9lYWNoX3VhYmlfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJCWludGVsX2VuZ2luZV9kdW1wKGVuZ2luZSwgJnAsICIlc1xuIiwgZW5naW5lLT5uYW1lKTsKIAogCWludGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZik7CkBAIC0yOTY2LDE0ICsyODczLDI3IEBAIHN0YXRpYyBpbnQgaTkxNV9zaGFyZWRfZHBsbHNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIHN0YXRpYyBpbnQgaTkxNV93YV9yZWdpc3RlcnMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Ci0JY29uc3Qgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmk5MTUtPmVuZ2luZVtSQ1MwXS0+Y3R4X3dhX2xpc3Q7Ci0Jc3RydWN0IGk5MTVfd2EgKndhOwotCXVuc2lnbmVkIGludCBpOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAotCXNlcV9wcmludGYobSwgIldvcmthcm91bmRzIGFwcGxpZWQ6ICV1XG4iLCB3YWwtPmNvdW50KTsKLQlmb3IgKGkgPSAwLCB3YSA9IHdhbC0+bGlzdDsgaSA8IHdhbC0+Y291bnQ7IGkrKywgd2ErKykKLQkJc2VxX3ByaW50ZihtLCAiMHglWDogMHglMDhYLCBtYXNrOiAweCUwOFhcbiIsCi0JCQkgICBpOTE1X21taW9fcmVnX29mZnNldCh3YS0+cmVnKSwgd2EtPnZhbCwgd2EtPm1hc2spOworCWZvcl9lYWNoX3VhYmlfZW5naW5lKGVuZ2luZSwgaTkxNSkgeworCQljb25zdCBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5jdHhfd2FfbGlzdDsKKwkJY29uc3Qgc3RydWN0IGk5MTVfd2EgKndhOworCQl1bnNpZ25lZCBpbnQgY291bnQ7CisKKwkJY291bnQgPSB3YWwtPmNvdW50OworCQlpZiAoIWNvdW50KQorCQkJY29udGludWU7CisKKwkJc2VxX3ByaW50ZihtLCAiJXM6IFdvcmthcm91bmRzIGFwcGxpZWQ6ICV1XG4iLAorCQkJICAgZW5naW5lLT5uYW1lLCBjb3VudCk7CisKKwkJZm9yICh3YSA9IHdhbC0+bGlzdDsgY291bnQtLTsgd2ErKykKKwkJCXNlcV9wcmludGYobSwgIjB4JVg6IDB4JTA4WCwgbWFzazogMHglMDhYXG4iLAorCQkJCSAgIGk5MTVfbW1pb19yZWdfb2Zmc2V0KHdhLT5yZWcpLAorCQkJCSAgIHdhLT52YWwsIHdhLT5tYXNrKTsKKworCQlzZXFfcHJpbnRmKG0sICJcbiIpOworCX0KIAogCXJldHVybiAwOwogfQpAQCAtMzYyMCw3ICszNTQwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaTkxNV9jdXJfd21fbGF0ZW5jeV9mb3BzID0gewogc3RhdGljIGludAogaTkxNV93ZWRnZWRfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQogewotCWludCByZXQgPSBpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGRhdGEpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZGF0YTsKKwlpbnQgcmV0ID0gaW50ZWxfZ3RfdGVybWluYWxseV93ZWRnZWQoJmk5MTUtPmd0KTsKIAogCXN3aXRjaCAocmV0KSB7CiAJY2FzZSAtRUlPOgpAQCAtMzY0MCwxMSArMzU2MSwxMSBAQCBpOTE1X3dlZGdlZF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGRhdGE7CiAKIAkvKiBGbHVzaCBhbnkgcHJldmlvdXMgcmVzZXQgYmVmb3JlIGFwcGx5aW5nIGZvciBhIG5ldyBvbmUgKi8KLQl3YWl0X2V2ZW50KGk5MTUtPmdwdV9lcnJvci5yZXNldF9xdWV1ZSwKLQkJICAgIXRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncykpOworCXdhaXRfZXZlbnQoaTkxNS0+Z3QucmVzZXQucXVldWUsCisJCSAgICF0ZXN0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZpOTE1LT5ndC5yZXNldC5mbGFncykpOwogCi0JaTkxNV9oYW5kbGVfZXJyb3IoaTkxNSwgdmFsLCBJOTE1X0VSUk9SX0NBUFRVUkUsCi0JCQkgICJNYW51YWxseSBzZXQgd2VkZ2VkIGVuZ2luZSBtYXNrID0gJWxseCIsIHZhbCk7CisJaW50ZWxfZ3RfaGFuZGxlX2Vycm9yKCZpOTE1LT5ndCwgdmFsLCBJOTE1X0VSUk9SX0NBUFRVUkUsCisJCQkgICAgICAiTWFudWFsbHkgc2V0IHdlZGdlZCBlbmdpbmUgbWFzayA9ICVsbHgiLCB2YWwpOwogCXJldHVybiAwOwogfQogCkBAIC0zNjg3LDggKzM2MDgsOSBAQCBpOTE1X2Ryb3BfY2FjaGVzX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQogCQkgIHZhbCwgdmFsICYgRFJPUF9BTEwpOwogCiAJaWYgKHZhbCAmIERST1BfUkVTRVRfQUNUSVZFICYmCi0JICAgIHdhaXRfZm9yKGludGVsX2VuZ2luZXNfYXJlX2lkbGUoaTkxNSksIEk5MTVfSURMRV9FTkdJTkVTX1RJTUVPVVQpKQotCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCSAgICB3YWl0X2ZvcihpbnRlbF9lbmdpbmVzX2FyZV9pZGxlKCZpOTE1LT5ndCksCisJCSAgICAgSTkxNV9JRExFX0VOR0lORVNfVElNRU9VVCkpCisJCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAogCS8qIE5vIG5lZWQgdG8gY2hlY2sgYW5kIHdhaXQgZm9yIGdwdSByZXNldHMsIG9ubHkgbGliZHJtIGF1dG8tcmVzdGFydHMKIAkgKiBvbiBpb2N0bHMgb24gLUVBR0FJTi4gKi8KQEAgLTM3MjEsMTAgKzM2NDMsMTMgQEAgaTkxNV9kcm9wX2NhY2hlc19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAkJCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUpOwogCiAJCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKKwkJaWYgKHJldCA9PSAwICYmIHZhbCAmIERST1BfSURMRSkKKwkJCXJldCA9IGludGVsX2d0X3BtX3dhaXRfZm9yX2lkbGUoJmk5MTUtPmd0KTsKIAl9CiAKLQlpZiAodmFsICYgRFJPUF9SRVNFVF9BQ1RJVkUgJiYgaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1KSkKLQkJaTkxNV9oYW5kbGVfZXJyb3IoaTkxNSwgQUxMX0VOR0lORVMsIDAsIE5VTEwpOworCWlmICh2YWwgJiBEUk9QX1JFU0VUX0FDVElWRSAmJiBpbnRlbF9ndF90ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3QpKQorCQlpbnRlbF9ndF9oYW5kbGVfZXJyb3IoJmk5MTUtPmd0LCBBTExfRU5HSU5FUywgMCwgTlVMTCk7CiAKIAlmc19yZWNsYWltX2FjcXVpcmUoR0ZQX0tFUk5FTCk7CiAJaWYgKHZhbCAmIERST1BfQk9VTkQpCkBAIC00MDg3LDkgKzQwMTIsOSBAQCBzdGF0aWMgaW50IGk5MTVfaHBkX3N0b3JtX2N0bF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAkvKiBTeW5jaHJvbml6ZSB3aXRoIGV2ZXJ5dGhpbmcgZmlyc3QgaW4gY2FzZSB0aGVyZSdzIGJlZW4gYW4gSFBECiAJICogc3Rvcm0sIGJ1dCB3ZSBoYXZlbid0IGZpbmlzaGVkIGhhbmRsaW5nIGl0IGluIHRoZSBrZXJuZWwgeWV0CiAJICovCi0Jc3luY2hyb25pemVfaXJxKGRldl9wcml2LT5kcm0uaXJxKTsKKwlpbnRlbF9zeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYpOwogCWZsdXNoX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmRpZ19wb3J0X3dvcmspOwotCWZsdXNoX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7CisJZmx1c2hfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwogCiAJc2VxX3ByaW50ZihtLCAiVGhyZXNob2xkOiAlZFxuIiwgaG90cGx1Zy0+aHBkX3N0b3JtX3RocmVzaG9sZCk7CiAJc2VxX3ByaW50ZihtLCAiRGV0ZWN0ZWQ6ICVzXG4iLApAQCAtNDM3MCw3ICs0Mjk1LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW5mb19saXN0IGk5MTVfZGVidWdmc19saXN0W10gPSB7CiAJeyJpOTE1X2dlbV9vYmplY3RzIiwgaTkxNV9nZW1fb2JqZWN0X2luZm8sIDB9LAogCXsiaTkxNV9nZW1fZmVuY2VfcmVncyIsIGk5MTVfZ2VtX2ZlbmNlX3JlZ3NfaW5mbywgMH0sCiAJeyJpOTE1X2dlbV9pbnRlcnJ1cHQiLCBpOTE1X2ludGVycnVwdF9pbmZvLCAwfSwKLQl7Imk5MTVfZ2VtX2JhdGNoX3Bvb2wiLCBpOTE1X2dlbV9iYXRjaF9wb29sX2luZm8sIDB9LAogCXsiaTkxNV9ndWNfaW5mbyIsIGk5MTVfZ3VjX2luZm8sIDB9LAogCXsiaTkxNV9ndWNfbG9hZF9zdGF0dXMiLCBpOTE1X2d1Y19sb2FkX3N0YXR1c19pbmZvLCAwfSwKIAl7Imk5MTVfZ3VjX2xvZ19kdW1wIiwgaTkxNV9ndWNfbG9nX2R1bXAsIDB9LApAQCAtNDM3OSw5ICs0MzAzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW5mb19saXN0IGk5MTVfZGVidWdmc19saXN0W10gPSB7CiAJeyJpOTE1X2h1Y19sb2FkX3N0YXR1cyIsIGk5MTVfaHVjX2xvYWRfc3RhdHVzX2luZm8sIDB9LAogCXsiaTkxNV9mcmVxdWVuY3lfaW5mbyIsIGk5MTVfZnJlcXVlbmN5X2luZm8sIDB9LAogCXsiaTkxNV9oYW5nY2hlY2tfaW5mbyIsIGk5MTVfaGFuZ2NoZWNrX2luZm8sIDB9LAotCXsiaTkxNV9yZXNldF9pbmZvIiwgaTkxNV9yZXNldF9pbmZvLCAwfSwKIAl7Imk5MTVfZHJwY19pbmZvIiwgaTkxNV9kcnBjX2luZm8sIDB9LAotCXsiaTkxNV9lbW9uX3N0YXR1cyIsIGk5MTVfZW1vbl9zdGF0dXMsIDB9LAogCXsiaTkxNV9yaW5nX2ZyZXFfdGFibGUiLCBpOTE1X3JpbmdfZnJlcV90YWJsZSwgMH0sCiAJeyJpOTE1X2Zyb250YnVmZmVyX3RyYWNraW5nIiwgaTkxNV9mcm9udGJ1ZmZlcl90cmFja2luZywgMH0sCiAJeyJpOTE1X2ZiY19zdGF0dXMiLCBpOTE1X2ZiY19zdGF0dXMsIDB9LApAQCAtNDU0Nyw3ICs0NDY5LDYgQEAgc3RhdGljIGludCBpOTE1X2hkY3Bfc2lua19jYXBhYmlsaXR5X3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBtLT5wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwotCWJvb2wgaGRjcF9jYXAsIGhkY3AyX2NhcDsKIAogCWlmIChjb25uZWN0b3ItPnN0YXR1cyAhPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKIAkJcmV0dXJuIC1FTk9ERVY7CkBAIC00NTU4LDE3ICs0NDc5LDcgQEAgc3RhdGljIGludCBpOTE1X2hkY3Bfc2lua19jYXBhYmlsaXR5X3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCiAJc2VxX3ByaW50ZihtLCAiJXM6JWQgSERDUCB2ZXJzaW9uOiAiLCBjb25uZWN0b3ItPm5hbWUsCiAJCSAgIGNvbm5lY3Rvci0+YmFzZS5pZCk7Ci0JaGRjcF9jYXAgPSBpbnRlbF9oZGNwX2NhcGFibGUoaW50ZWxfY29ubmVjdG9yKTsKLQloZGNwMl9jYXAgPSBpbnRlbF9oZGNwMl9jYXBhYmxlKGludGVsX2Nvbm5lY3Rvcik7Ci0KLQlpZiAoaGRjcF9jYXApCi0JCXNlcV9wdXRzKG0sICJIRENQMS40ICIpOwotCWlmIChoZGNwMl9jYXApCi0JCXNlcV9wdXRzKG0sICJIRENQMi4yICIpOwotCi0JaWYgKCFoZGNwX2NhcCAmJiAhaGRjcDJfY2FwKQotCQlzZXFfcHV0cyhtLCAiTm9uZSIpOwotCXNlcV9wdXRzKG0sICJcbiIpOworCWludGVsX2hkY3BfaW5mbyhtLCBpbnRlbF9jb25uZWN0b3IpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBiYWMxZWU5Li4wMjA2OTY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2F1ZGlvLmgiCiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9idy5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfY2RjbGsuaCIKKyNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2RwLmgiCiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9mYmRldi5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZ21idXMuaCIKQEAgLTYxLDQzNiArNjIsODUgQEAKIAogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9jb250ZXh0LmgiCiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2lvY3Rscy5oIgorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZ3RfcG0uaCIKLSNpbmNsdWRlICJndC9pbnRlbF9yZXNldC5oIgotI2luY2x1ZGUgImd0L2ludGVsX3dvcmthcm91bmRzLmgiCiAKICNpbmNsdWRlICJpOTE1X2RlYnVnZnMuaCIKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImk5MTVfaXJxLmgiCi0jaW5jbHVkZSAiaTkxNV9wbXUuaCIKKyNpbmNsdWRlICJpOTE1X21lbWNweS5oIgorI2luY2x1ZGUgImk5MTVfcGVyZi5oIgogI2luY2x1ZGUgImk5MTVfcXVlcnkuaCIKKyNpbmNsdWRlICJpOTE1X3N1c3BlbmQuaCIKKyNpbmNsdWRlICJpOTE1X3N5c2ZzLmgiCiAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogI2luY2x1ZGUgImk5MTVfdmdwdS5oIgogI2luY2x1ZGUgImludGVsX2Nzci5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1ZGUgImludGVsX3BtLmgiCi0jaW5jbHVkZSAiaW50ZWxfdWMuaCIKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlcjsKIAotI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHKQotc3RhdGljIHVuc2lnbmVkIGludCBpOTE1X2xvYWRfZmFpbF9jb3VudDsKK3N0cnVjdCB2bHZfczBpeF9zdGF0ZSB7CisJLyogR0FNICovCisJdTMyIHdyX3dhdGVybWFyazsKKwl1MzIgZ2Z4X3ByaW9fY3RybDsKKwl1MzIgYXJiX21vZGU7CisJdTMyIGdmeF9wZW5kX3RsYjA7CisJdTMyIGdmeF9wZW5kX3RsYjE7CisJdTMyIGxyYV9saW1pdHNbR0VON19MUkFfTElNSVRTX1JFR19OVU1dOworCXUzMiBtZWRpYV9tYXhfcmVxX2NvdW50OworCXUzMiBnZnhfbWF4X3JlcV9jb3VudDsKKwl1MzIgcmVuZGVyX2h3c3A7CisJdTMyIGVjb2NoazsKKwl1MzIgYnNkX2h3c3A7CisJdTMyIGJsdF9od3NwOworCXUzMiB0bGJfcmRfYWRkcjsKIAotYm9vbCBfX2k5MTVfaW5qZWN0X2xvYWRfZmFpbHVyZShjb25zdCBjaGFyICpmdW5jLCBpbnQgbGluZSkKLXsKLQlpZiAoaTkxNV9sb2FkX2ZhaWxfY291bnQgPj0gaTkxNV9tb2RwYXJhbXMuaW5qZWN0X2xvYWRfZmFpbHVyZSkKLQkJcmV0dXJuIGZhbHNlOworCS8qIE1CQyAqLworCXUzMiBnM2RjdGw7CisJdTMyIGdzY2tnY3RsOworCXUzMiBtYmN0bDsKIAotCWlmICgrK2k5MTVfbG9hZF9mYWlsX2NvdW50ID09IGk5MTVfbW9kcGFyYW1zLmluamVjdF9sb2FkX2ZhaWx1cmUpIHsKLQkJRFJNX0lORk8oIkluamVjdGluZyBmYWlsdXJlIGF0IGNoZWNrcG9pbnQgJXUgWyVzOiVkXVxuIiwKLQkJCSBpOTE1X21vZHBhcmFtcy5pbmplY3RfbG9hZF9mYWlsdXJlLCBmdW5jLCBsaW5lKTsKLQkJaTkxNV9tb2RwYXJhbXMuaW5qZWN0X2xvYWRfZmFpbHVyZSA9IDA7Ci0JCXJldHVybiB0cnVlOwotCX0KKwkvKiBHQ1AgKi8KKwl1MzIgdWNnY3RsMTsKKwl1MzIgdWNnY3RsMzsKKwl1MzIgcmNnY3RsMTsKKwl1MzIgcmNnY3RsMjsKKwl1MzIgcnN0Y3RsOworCXUzMiBtaXNjY3BjdGw7CiAKLQlyZXR1cm4gZmFsc2U7Ci19CisJLyogR1BNICovCisJdTMyIGdmeHBhdXNlOworCXUzMiBycGRldWh3dGM7CisJdTMyIHJwZGV1YzsKKwl1MzIgZWNvYnVzOworCXUzMiBwd3Jkd251cGN0bDsKKwl1MzIgcnBfZG93bl90aW1lb3V0OworCXUzMiBycF9kZXVjc3c7CisJdTMyIHJjdWJtYWJkdG1yOworCXUzMiByY2VkYXRhOworCXUzMiBzcGFyZTJnaDsKIAotYm9vbCBpOTE1X2Vycm9yX2luamVjdGVkKHZvaWQpCi17Ci0JcmV0dXJuIGk5MTVfbG9hZF9mYWlsX2NvdW50ICYmICFpOTE1X21vZHBhcmFtcy5pbmplY3RfbG9hZF9mYWlsdXJlOwotfQorCS8qIERpc3BsYXkgMSBDWiBkb21haW4gKi8KKwl1MzIgZ3RfaW1yOworCXUzMiBndF9pZXI7CisJdTMyIHBtX2ltcjsKKwl1MzIgcG1faWVyOworCXUzMiBndF9zY3JhdGNoW0dFTjdfR1RfU0NSQVRDSF9SRUdfTlVNXTsKIAotI2VuZGlmCisJLyogR1QgU0EgQ1ogZG9tYWluICovCisJdTMyIHRpbGVjdGw7CisJdTMyIGd0X2ZpZm9jdGw7CisJdTMyIGd0bGNfd2FrZV9jdHJsOworCXUzMiBndGxjX3N1cnZpdmU7CisJdTMyIHBtd2dpY3o7CiAKLSNkZWZpbmUgRkRPX0JVR19VUkwgImh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PURSSSIKLSNkZWZpbmUgRkRPX0JVR19NU0cgIlBsZWFzZSBmaWxlIGEgYnVnIGF0ICIgRkRPX0JVR19VUkwgIiBhZ2FpbnN0IERSTS9JbnRlbCAiIFwKLQkJICAgICJwcm92aWRpbmcgdGhlIGRtZXNnIGxvZyBieSBib290aW5nIHdpdGggZHJtLmRlYnVnPTB4ZiIKLQotdm9pZAotX19pOTE1X3ByaW50ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGNvbnN0IGNoYXIgKmxldmVsLAotCSAgICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotewotCXN0YXRpYyBib29sIHNob3duX2J1Z19vbmNlOwotCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSBkZXZfcHJpdi0+ZHJtLmRldjsKLQlib29sIGlzX2Vycm9yID0gbGV2ZWxbMV0gPD0gS0VSTl9FUlJbMV07Ci0JYm9vbCBpc19kZWJ1ZyA9IGxldmVsWzFdID09IEtFUk5fREVCVUdbMV07Ci0Jc3RydWN0IHZhX2Zvcm1hdCB2YWY7Ci0JdmFfbGlzdCBhcmdzOwotCi0JaWYgKGlzX2RlYnVnICYmICEoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikpCi0JCXJldHVybjsKLQotCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7Ci0KLQl2YWYuZm10ID0gZm10OwotCXZhZi52YSA9ICZhcmdzOwotCi0JaWYgKGlzX2Vycm9yKQotCQlkZXZfcHJpbnRrKGxldmVsLCBrZGV2LCAiJXBWIiwgJnZhZik7Ci0JZWxzZQotCQlkZXZfcHJpbnRrKGxldmVsLCBrZGV2LCAiWyIgRFJNX05BTUUgIjolcHNdICVwViIsCi0JCQkgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYpOwotCi0JdmFfZW5kKGFyZ3MpOwotCi0JaWYgKGlzX2Vycm9yICYmICFzaG93bl9idWdfb25jZSkgewotCQkvKgotCQkgKiBBc2sgdGhlIHVzZXIgdG8gZmlsZSBhIGJ1ZyByZXBvcnQgZm9yIHRoZSBlcnJvciwgZXhjZXB0Ci0JCSAqIGlmIHRoZXkgbWF5IGhhdmUgY2F1c2VkIHRoZSBidWcgYnkgZmlkZGxpbmcgd2l0aCB1bnNhZmUKLQkJICogbW9kdWxlIHBhcmFtZXRlcnMuCi0JCSAqLwotCQlpZiAoIXRlc3RfdGFpbnQoVEFJTlRfVVNFUikpCi0JCQlkZXZfbm90aWNlKGtkZXYsICIlcyIsIEZET19CVUdfTVNHKTsKLQkJc2hvd25fYnVnX29uY2UgPSB0cnVlOwotCX0KLX0KLQotLyogTWFwIFBDSCBkZXZpY2UgaWQgdG8gUENIIHR5cGUsIG9yIFBDSF9OT05FIGlmIHVua25vd24uICovCi1zdGF0aWMgZW51bSBpbnRlbF9wY2gKLWludGVsX3BjaF90eXBlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdW5zaWduZWQgc2hvcnQgaWQpCi17Ci0Jc3dpdGNoIChpZCkgewotCWNhc2UgSU5URUxfUENIX0lCWF9ERVZJQ0VfSURfVFlQRToKLQkJRFJNX0RFQlVHX0tNUygiRm91bmQgSWJleCBQZWFrIFBDSFxuIik7Ci0JCVdBUk5fT04oIUlTX0dFTihkZXZfcHJpdiwgNSkpOwotCQlyZXR1cm4gUENIX0lCWDsKLQljYXNlIElOVEVMX1BDSF9DUFRfREVWSUNFX0lEX1RZUEU6Ci0JCURSTV9ERUJVR19LTVMoIkZvdW5kIENvdWdhclBvaW50IFBDSFxuIik7Ci0JCVdBUk5fT04oIUlTX0dFTihkZXZfcHJpdiwgNikgJiYgIUlTX0lWWUJSSURHRShkZXZfcHJpdikpOwotCQlyZXR1cm4gUENIX0NQVDsKLQljYXNlIElOVEVMX1BDSF9QUFRfREVWSUNFX0lEX1RZUEU6Ci0JCURSTV9ERUJVR19LTVMoIkZvdW5kIFBhbnRoZXJQb2ludCBQQ0hcbiIpOwotCQlXQVJOX09OKCFJU19HRU4oZGV2X3ByaXYsIDYpICYmICFJU19JVllCUklER0UoZGV2X3ByaXYpKTsKLQkJLyogUGFudGhlclBvaW50IGlzIENQVCBjb21wYXRpYmxlICovCi0JCXJldHVybiBQQ0hfQ1BUOwotCWNhc2UgSU5URUxfUENIX0xQVF9ERVZJQ0VfSURfVFlQRToKLQkJRFJNX0RFQlVHX0tNUygiRm91bmQgTHlueFBvaW50IFBDSFxuIik7Ci0JCVdBUk5fT04oIUlTX0hBU1dFTEwoZGV2X3ByaXYpICYmICFJU19CUk9BRFdFTEwoZGV2X3ByaXYpKTsKLQkJV0FSTl9PTihJU19IU1dfVUxUKGRldl9wcml2KSB8fCBJU19CRFdfVUxUKGRldl9wcml2KSk7Ci0JCXJldHVybiBQQ0hfTFBUOwotCWNhc2UgSU5URUxfUENIX0xQVF9MUF9ERVZJQ0VfSURfVFlQRToKLQkJRFJNX0RFQlVHX0tNUygiRm91bmQgTHlueFBvaW50IExQIFBDSFxuIik7Ci0JCVdBUk5fT04oIUlTX0hBU1dFTEwoZGV2X3ByaXYpICYmICFJU19CUk9BRFdFTEwoZGV2X3ByaXYpKTsKLQkJV0FSTl9PTighSVNfSFNXX1VMVChkZXZfcHJpdikgJiYgIUlTX0JEV19VTFQoZGV2X3ByaXYpKTsKLQkJcmV0dXJuIFBDSF9MUFQ7Ci0JY2FzZSBJTlRFTF9QQ0hfV1BUX0RFVklDRV9JRF9UWVBFOgotCQlEUk1fREVCVUdfS01TKCJGb3VuZCBXaWxkY2F0UG9pbnQgUENIXG4iKTsKLQkJV0FSTl9PTighSVNfSEFTV0VMTChkZXZfcHJpdikgJiYgIUlTX0JST0FEV0VMTChkZXZfcHJpdikpOwotCQlXQVJOX09OKElTX0hTV19VTFQoZGV2X3ByaXYpIHx8IElTX0JEV19VTFQoZGV2X3ByaXYpKTsKLQkJLyogV2lsZGNhdFBvaW50IGlzIExQVCBjb21wYXRpYmxlICovCi0JCXJldHVybiBQQ0hfTFBUOwotCWNhc2UgSU5URUxfUENIX1dQVF9MUF9ERVZJQ0VfSURfVFlQRToKLQkJRFJNX0RFQlVHX0tNUygiRm91bmQgV2lsZGNhdFBvaW50IExQIFBDSFxuIik7Ci0JCVdBUk5fT04oIUlTX0hBU1dFTEwoZGV2X3ByaXYpICYmICFJU19CUk9BRFdFTEwoZGV2X3ByaXYpKTsKLQkJV0FSTl9PTighSVNfSFNXX1VMVChkZXZfcHJpdikgJiYgIUlTX0JEV19VTFQoZGV2X3ByaXYpKTsKLQkJLyogV2lsZGNhdFBvaW50IGlzIExQVCBjb21wYXRpYmxlICovCi0JCXJldHVybiBQQ0hfTFBUOwotCWNhc2UgSU5URUxfUENIX1NQVF9ERVZJQ0VfSURfVFlQRToKLQkJRFJNX0RFQlVHX0tNUygiRm91bmQgU3VucmlzZVBvaW50IFBDSFxuIik7Ci0JCVdBUk5fT04oIUlTX1NLWUxBS0UoZGV2X3ByaXYpICYmICFJU19LQUJZTEFLRShkZXZfcHJpdikpOwotCQlyZXR1cm4gUENIX1NQVDsKLQljYXNlIElOVEVMX1BDSF9TUFRfTFBfREVWSUNFX0lEX1RZUEU6Ci0JCURSTV9ERUJVR19LTVMoIkZvdW5kIFN1bnJpc2VQb2ludCBMUCBQQ0hcbiIpOwotCQlXQVJOX09OKCFJU19TS1lMQUtFKGRldl9wcml2KSAmJiAhSVNfS0FCWUxBS0UoZGV2X3ByaXYpKTsKLQkJcmV0dXJuIFBDSF9TUFQ7Ci0JY2FzZSBJTlRFTF9QQ0hfS0JQX0RFVklDRV9JRF9UWVBFOgotCQlEUk1fREVCVUdfS01TKCJGb3VuZCBLYWJ5IExha2UgUENIIChLQlApXG4iKTsKLQkJV0FSTl9PTighSVNfU0tZTEFLRShkZXZfcHJpdikgJiYgIUlTX0tBQllMQUtFKGRldl9wcml2KSAmJgotCQkJIUlTX0NPRkZFRUxBS0UoZGV2X3ByaXYpKTsKLQkJLyogS0JQIGlzIFNQVCBjb21wYXRpYmxlICovCi0JCXJldHVybiBQQ0hfU1BUOwotCWNhc2UgSU5URUxfUENIX0NOUF9ERVZJQ0VfSURfVFlQRToKLQkJRFJNX0RFQlVHX0tNUygiRm91bmQgQ2Fubm9uIExha2UgUENIIChDTlApXG4iKTsKLQkJV0FSTl9PTighSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgJiYgIUlTX0NPRkZFRUxBS0UoZGV2X3ByaXYpKTsKLQkJcmV0dXJuIFBDSF9DTlA7Ci0JY2FzZSBJTlRFTF9QQ0hfQ05QX0xQX0RFVklDRV9JRF9UWVBFOgotCQlEUk1fREVCVUdfS01TKCJGb3VuZCBDYW5ub24gTGFrZSBMUCBQQ0ggKENOUC1MUClcbiIpOwotCQlXQVJOX09OKCFJU19DQU5OT05MQUtFKGRldl9wcml2KSAmJiAhSVNfQ09GRkVFTEFLRShkZXZfcHJpdikpOwotCQlyZXR1cm4gUENIX0NOUDsKLQljYXNlIElOVEVMX1BDSF9DTVBfREVWSUNFX0lEX1RZUEU6Ci0JCURSTV9ERUJVR19LTVMoIkZvdW5kIENvbWV0IExha2UgUENIIChDTVApXG4iKTsKLQkJV0FSTl9PTighSVNfQ09GRkVFTEFLRShkZXZfcHJpdikpOwotCQkvKiBDb21ldFBvaW50IGlzIENOUCBDb21wYXRpYmxlICovCi0JCXJldHVybiBQQ0hfQ05QOwotCWNhc2UgSU5URUxfUENIX0lDUF9ERVZJQ0VfSURfVFlQRToKLQkJRFJNX0RFQlVHX0tNUygiRm91bmQgSWNlIExha2UgUENIXG4iKTsKLQkJV0FSTl9PTighSVNfSUNFTEFLRShkZXZfcHJpdikpOwotCQlyZXR1cm4gUENIX0lDUDsKLQljYXNlIElOVEVMX1BDSF9NQ0NfREVWSUNFX0lEX1RZUEU6Ci0JCURSTV9ERUJVR19LTVMoIkZvdW5kIE11bGUgQ3JlZWsgQ2FueW9uIFBDSFxuIik7Ci0JCVdBUk5fT04oIUlTX0VMS0hBUlRMQUtFKGRldl9wcml2KSk7Ci0JCXJldHVybiBQQ0hfTUNDOwotCWRlZmF1bHQ6Ci0JCXJldHVybiBQQ0hfTk9ORTsKLQl9Ci19Ci0KLXN0YXRpYyBib29sIGludGVsX2lzX3ZpcnRfcGNoKHVuc2lnbmVkIHNob3J0IGlkLAotCQkJICAgICAgdW5zaWduZWQgc2hvcnQgc3ZlbmRvciwgdW5zaWduZWQgc2hvcnQgc2RldmljZSkKLXsKLQlyZXR1cm4gKGlkID09IElOVEVMX1BDSF9QMlhfREVWSUNFX0lEX1RZUEUgfHwKLQkJaWQgPT0gSU5URUxfUENIX1AzWF9ERVZJQ0VfSURfVFlQRSB8fAotCQkoaWQgPT0gSU5URUxfUENIX1FFTVVfREVWSUNFX0lEX1RZUEUgJiYKLQkJIHN2ZW5kb3IgPT0gUENJX1NVQlZFTkRPUl9JRF9SRURIQVRfUVVNUkFORVQgJiYKLQkJIHNkZXZpY2UgPT0gUENJX1NVQkRFVklDRV9JRF9RRU1VKSk7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBzaG9ydAotaW50ZWxfdmlydF9kZXRlY3RfcGNoKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQl1bnNpZ25lZCBzaG9ydCBpZCA9IDA7Ci0KLQkvKgotCSAqIEluIGEgdmlydHVhbGl6ZWQgcGFzc3Rocm91Z2ggZW52aXJvbm1lbnQgd2UgY2FuIGJlIGluIGEKLQkgKiBzZXR1cCB3aGVyZSB0aGUgSVNBIGJyaWRnZSBpcyBub3QgYWJsZSB0byBiZSBwYXNzZWQgdGhyb3VnaC4KLQkgKiBJbiB0aGlzIGNhc2UsIGEgc291dGggYnJpZGdlIGNhbiBiZSBlbXVsYXRlZCBhbmQgd2UgaGF2ZSB0bwotCSAqIG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MgYXMgdG8gd2hpY2ggUENIIGlzIHJlYWxseSB0aGVyZS4KLQkgKi8KLQotCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikpCi0JCWlkID0gSU5URUxfUENIX01DQ19ERVZJQ0VfSURfVFlQRTsKLQllbHNlIGlmIChJU19JQ0VMQUtFKGRldl9wcml2KSkKLQkJaWQgPSBJTlRFTF9QQ0hfSUNQX0RFVklDRV9JRF9UWVBFOwotCWVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpIHx8IElTX0NPRkZFRUxBS0UoZGV2X3ByaXYpKQotCQlpZCA9IElOVEVMX1BDSF9DTlBfREVWSUNFX0lEX1RZUEU7Ci0JZWxzZSBpZiAoSVNfS0FCWUxBS0UoZGV2X3ByaXYpIHx8IElTX1NLWUxBS0UoZGV2X3ByaXYpKQotCQlpZCA9IElOVEVMX1BDSF9TUFRfREVWSUNFX0lEX1RZUEU7Ci0JZWxzZSBpZiAoSVNfSFNXX1VMVChkZXZfcHJpdikgfHwgSVNfQkRXX1VMVChkZXZfcHJpdikpCi0JCWlkID0gSU5URUxfUENIX0xQVF9MUF9ERVZJQ0VfSURfVFlQRTsKLQllbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQotCQlpZCA9IElOVEVMX1BDSF9MUFRfREVWSUNFX0lEX1RZUEU7Ci0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA2KSB8fCBJU19JVllCUklER0UoZGV2X3ByaXYpKQotCQlpZCA9IElOVEVMX1BDSF9DUFRfREVWSUNFX0lEX1RZUEU7Ci0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA1KSkKLQkJaWQgPSBJTlRFTF9QQ0hfSUJYX0RFVklDRV9JRF9UWVBFOwotCi0JaWYgKGlkKQotCQlEUk1fREVCVUdfS01TKCJBc3N1bWluZyBQQ0ggSUQgJTA0eFxuIiwgaWQpOwotCWVsc2UKLQkJRFJNX0RFQlVHX0tNUygiQXNzdW1pbmcgbm8gUENIXG4iKTsKLQotCXJldHVybiBpZDsKLX0KLQotc3RhdGljIHZvaWQgaW50ZWxfZGV0ZWN0X3BjaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0Jc3RydWN0IHBjaV9kZXYgKnBjaCA9IE5VTEw7Ci0KLQkvKgotCSAqIFRoZSByZWFzb24gdG8gcHJvYmUgSVNBIGJyaWRnZSBpbnN0ZWFkIG9mIERldjMxOkZ1bjAgaXMgdG8KLQkgKiBtYWtlIGdyYXBoaWNzIGRldmljZSBwYXNzdGhyb3VnaCB3b3JrIGVhc3kgZm9yIFZNTSwgdGhhdCBvbmx5Ci0JICogbmVlZCB0byBleHBvc2UgSVNBIGJyaWRnZSB0byBsZXQgZHJpdmVyIGtub3cgdGhlIHJlYWwgaGFyZHdhcmUKLQkgKiB1bmRlcm5lYXRoLiBUaGlzIGlzIGEgcmVxdWlyZW1lbnQgZnJvbSB2aXJ0dWFsaXphdGlvbiB0ZWFtLgotCSAqCi0JICogSW4gc29tZSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGUuZy4gWEVOKSwgdGhlcmUgaXMgaXJyZWxldmFudAotCSAqIElTQSBicmlkZ2UgaW4gdGhlIHN5c3RlbS4gVG8gd29yayByZWxpYWJseSwgd2Ugc2hvdWxkIHNjYW4gdHJob3VnaAotCSAqIGFsbCB0aGUgSVNBIGJyaWRnZSBkZXZpY2VzIGFuZCBjaGVjayBmb3IgdGhlIGZpcnN0IG1hdGNoLCBpbnN0ZWFkCi0JICogb2Ygb25seSBjaGVja2luZyB0aGUgZmlyc3Qgb25lLgotCSAqLwotCXdoaWxlICgocGNoID0gcGNpX2dldF9jbGFzcyhQQ0lfQ0xBU1NfQlJJREdFX0lTQSA8PCA4LCBwY2gpKSkgewotCQl1bnNpZ25lZCBzaG9ydCBpZDsKLQkJZW51bSBpbnRlbF9wY2ggcGNoX3R5cGU7Ci0KLQkJaWYgKHBjaC0+dmVuZG9yICE9IFBDSV9WRU5ET1JfSURfSU5URUwpCi0JCQljb250aW51ZTsKLQotCQlpZCA9IHBjaC0+ZGV2aWNlICYgSU5URUxfUENIX0RFVklDRV9JRF9NQVNLOwotCi0JCXBjaF90eXBlID0gaW50ZWxfcGNoX3R5cGUoZGV2X3ByaXYsIGlkKTsKLQkJaWYgKHBjaF90eXBlICE9IFBDSF9OT05FKSB7Ci0JCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBwY2hfdHlwZTsKLQkJCWRldl9wcml2LT5wY2hfaWQgPSBpZDsKLQkJCWJyZWFrOwotCQl9IGVsc2UgaWYgKGludGVsX2lzX3ZpcnRfcGNoKGlkLCBwY2gtPnN1YnN5c3RlbV92ZW5kb3IsCi0JCQkJCSBwY2gtPnN1YnN5c3RlbV9kZXZpY2UpKSB7Ci0JCQlpZCA9IGludGVsX3ZpcnRfZGV0ZWN0X3BjaChkZXZfcHJpdik7Ci0JCQlwY2hfdHlwZSA9IGludGVsX3BjaF90eXBlKGRldl9wcml2LCBpZCk7Ci0KLQkJCS8qIFNhbml0eSBjaGVjayB2aXJ0dWFsIFBDSCBpZCAqLwotCQkJaWYgKFdBUk5fT04oaWQgJiYgcGNoX3R5cGUgPT0gUENIX05PTkUpKQotCQkJCWlkID0gMDsKLQotCQkJZGV2X3ByaXYtPnBjaF90eXBlID0gcGNoX3R5cGU7Ci0JCQlkZXZfcHJpdi0+cGNoX2lkID0gaWQ7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCS8qCi0JICogVXNlIFBDSF9OT1AgKFBDSCBidXQgbm8gU291dGggRGlzcGxheSkgZm9yIFBDSCBwbGF0Zm9ybXMgd2l0aG91dAotCSAqIGRpc3BsYXkuCi0JICovCi0JaWYgKHBjaCAmJiAhSEFTX0RJU1BMQVkoZGV2X3ByaXYpKSB7Ci0JCURSTV9ERUJVR19LTVMoIkRpc3BsYXkgZGlzYWJsZWQsIHJldmVydGluZyB0byBOT1AgUENIXG4iKTsKLQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX05PUDsKLQkJZGV2X3ByaXYtPnBjaF9pZCA9IDA7Ci0JfQotCi0JaWYgKCFwY2gpCi0JCURSTV9ERUJVR19LTVMoIk5vIFBDSCBmb3VuZC5cbiIpOwotCi0JcGNpX2Rldl9wdXQocGNoKTsKLX0KLQotc3RhdGljIGludCBpOTE1X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2OwotCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7Ci0JZHJtX2k5MTVfZ2V0cGFyYW1fdCAqcGFyYW0gPSBkYXRhOwotCWludCB2YWx1ZTsKLQotCXN3aXRjaCAocGFyYW0tPnBhcmFtKSB7Ci0JY2FzZSBJOTE1X1BBUkFNX0lSUV9BQ1RJVkU6Ci0JY2FzZSBJOTE1X1BBUkFNX0FMTE9XX0JBVENIQlVGRkVSOgotCWNhc2UgSTkxNV9QQVJBTV9MQVNUX0RJU1BBVENIOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19DT05TVEFOVFM6Ci0JCS8qIFJlamVjdCBhbGwgb2xkIHVtcy9kcmkgcGFyYW1zLiAqLwotCQlyZXR1cm4gLUVOT0RFVjsKLQljYXNlIEk5MTVfUEFSQU1fQ0hJUFNFVF9JRDoKLQkJdmFsdWUgPSBwZGV2LT5kZXZpY2U7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9SRVZJU0lPTjoKLQkJdmFsdWUgPSBwZGV2LT5yZXZpc2lvbjsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX05VTV9GRU5DRVNfQVZBSUw6Ci0JCXZhbHVlID0gZGV2X3ByaXYtPmdndHQubnVtX2ZlbmNlczsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19PVkVSTEFZOgotCQl2YWx1ZSA9IGRldl9wcml2LT5vdmVybGF5ID8gMSA6IDA7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfQlNEOgotCQl2YWx1ZSA9ICEhZGV2X3ByaXYtPmVuZ2luZVtWQ1MwXTsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19CTFQ6Ci0JCXZhbHVlID0gISFkZXZfcHJpdi0+ZW5naW5lW0JDUzBdOwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFSQU1fSEFTX1ZFQk9YOgotCQl2YWx1ZSA9ICEhZGV2X3ByaXYtPmVuZ2luZVtWRUNTMF07Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfQlNEMjoKLQkJdmFsdWUgPSAhIWRldl9wcml2LT5lbmdpbmVbVkNTMV07Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfTExDOgotCQl2YWx1ZSA9IEhBU19MTEMoZGV2X3ByaXYpOwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFSQU1fSEFTX1dUOgotCQl2YWx1ZSA9IEhBU19XVChkZXZfcHJpdik7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfQUxJQVNJTkdfUFBHVFQ6Ci0JCXZhbHVlID0gSU5URUxfUFBHVFQoZGV2X3ByaXYpOwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFSQU1fSEFTX1NFTUFQSE9SRVM6Ci0JCXZhbHVlID0gISEoZGV2X3ByaXYtPmNhcHMuc2NoZWR1bGVyICYgSTkxNV9TQ0hFRFVMRVJfQ0FQX1NFTUFQSE9SRVMpOwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFSQU1fSEFTX1NFQ1VSRV9CQVRDSEVTOgotCQl2YWx1ZSA9IGNhcGFibGUoQ0FQX1NZU19BRE1JTik7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9DTURfUEFSU0VSX1ZFUlNJT046Ci0JCXZhbHVlID0gaTkxNV9jbWRfcGFyc2VyX2dldF92ZXJzaW9uKGRldl9wcml2KTsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX1NVQlNMSUNFX1RPVEFMOgotCQl2YWx1ZSA9IGludGVsX3NzZXVfc3Vic2xpY2VfdG90YWwoc3NldSk7Ci0JCWlmICghdmFsdWUpCi0JCQlyZXR1cm4gLUVOT0RFVjsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0VVX1RPVEFMOgotCQl2YWx1ZSA9IHNzZXUtPmV1X3RvdGFsOwotCQlpZiAoIXZhbHVlKQotCQkJcmV0dXJuIC1FTk9ERVY7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfR1BVX1JFU0VUOgotCQl2YWx1ZSA9IGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2sgJiYKLQkJCWludGVsX2hhc19ncHVfcmVzZXQoZGV2X3ByaXYpOwotCQlpZiAodmFsdWUgJiYgaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShkZXZfcHJpdikpCi0JCQl2YWx1ZSA9IDI7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfUkVTT1VSQ0VfU1RSRUFNRVI6Ci0JCXZhbHVlID0gMDsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19QT09MRURfRVU6Ci0JCXZhbHVlID0gSEFTX1BPT0xFRF9FVShkZXZfcHJpdik7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9NSU5fRVVfSU5fUE9PTDoKLQkJdmFsdWUgPSBzc2V1LT5taW5fZXVfaW5fcG9vbDsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0hVQ19TVEFUVVM6Ci0JCXZhbHVlID0gaW50ZWxfaHVjX2NoZWNrX3N0YXR1cygmZGV2X3ByaXYtPmh1Yyk7Ci0JCWlmICh2YWx1ZSA8IDApCi0JCQlyZXR1cm4gdmFsdWU7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9NTUFQX0dUVF9WRVJTSU9OOgotCQkvKiBUaG91Z2ggd2UndmUgc3RhcnRlZCBvdXIgbnVtYmVyaW5nIGZyb20gMSwgYW5kIHNvIGNsYXNzIGFsbAotCQkgKiBlYXJsaWVyIHZlcnNpb25zIGFzIDAsIGluIGVmZmVjdCB0aGVpciB2YWx1ZSBpcyB1bmRlZmluZWQgYXMKLQkJICogdGhlIGlvY3RsIHdpbGwgcmVwb3J0IEVJTlZBTCBmb3IgdGhlIHVua25vd24gcGFyYW0hCi0JCSAqLwotCQl2YWx1ZSA9IGk5MTVfZ2VtX21tYXBfZ3R0X3ZlcnNpb24oKTsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19TQ0hFRFVMRVI6Ci0JCXZhbHVlID0gZGV2X3ByaXYtPmNhcHMuc2NoZWR1bGVyOwotCQlicmVhazsKLQotCWNhc2UgSTkxNV9QQVJBTV9NTUFQX1ZFUlNJT046Ci0JCS8qIFJlbWVtYmVyIHRvIGJ1bXAgdGhpcyBpZiB0aGUgdmVyc2lvbiBjaGFuZ2VzISAqLwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfR0VNOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfUEFHRUZMSVBQSU5HOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ0JVRjI6IC8qIGRlcGVuZHMgb24gR0VNICovCi0JY2FzZSBJOTE1X1BBUkFNX0hBU19SRUxBWEVEX0ZFTkNJTkc6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19DT0hFUkVOVF9SSU5HUzoKLQljYXNlIEk5MTVfUEFSQU1fSEFTX1JFTEFYRURfREVMVEE6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19HRU43X1NPTF9SRVNFVDoKLQljYXNlIEk5MTVfUEFSQU1fSEFTX1dBSVRfVElNRU9VVDoKLQljYXNlIEk5MTVfUEFSQU1fSEFTX1BSSU1FX1ZNQVBfRkxVU0g6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19QSU5ORURfQkFUQ0hFUzoKLQljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfTk9fUkVMT0M6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0hBTkRMRV9MVVQ6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19DT0hFUkVOVF9QSFlTX0dUVDoKLQljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfU09GVFBJTjoKLQljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfQVNZTkM6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0ZFTkNFOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19DQVBUVVJFOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19CQVRDSF9GSVJTVDoKLQljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfRkVOQ0VfQVJSQVk6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX1NVQk1JVF9GRU5DRToKLQkJLyogRm9yIHRoZSB0aW1lIGJlaW5nIGFsbCBvZiB0aGVzZSBhcmUgYWx3YXlzIHRydWU7Ci0JCSAqIGlmIHNvbWUgc3VwcG9ydGVkIGhhcmR3YXJlIGRvZXMgbm90IGhhdmUgb25lIG9mIHRoZXNlCi0JCSAqIGZlYXR1cmVzIHRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgcHJvdmlkZWQgZnJvbQotCQkgKiBJTlRFTF9JTkZPKCksIGEgZmVhdHVyZSBtYWNybywgb3Igc2ltaWxhci4KLQkJICovCi0JCXZhbHVlID0gMTsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19DT05URVhUX0lTT0xBVElPTjoKLQkJdmFsdWUgPSBpbnRlbF9lbmdpbmVzX2hhc19jb250ZXh0X2lzb2xhdGlvbihkZXZfcHJpdik7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9TTElDRV9NQVNLOgotCQl2YWx1ZSA9IHNzZXUtPnNsaWNlX21hc2s7Ci0JCWlmICghdmFsdWUpCi0JCQlyZXR1cm4gLUVOT0RFVjsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX1NVQlNMSUNFX01BU0s6Ci0JCXZhbHVlID0gc3NldS0+c3Vic2xpY2VfbWFza1swXTsKLQkJaWYgKCF2YWx1ZSkKLQkJCXJldHVybiAtRU5PREVWOwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFSQU1fQ1NfVElNRVNUQU1QX0ZSRVFVRU5DWToKLQkJdmFsdWUgPSAxMDAwICogUlVOVElNRV9JTkZPKGRldl9wcml2KS0+Y3NfdGltZXN0YW1wX2ZyZXF1ZW5jeV9raHo7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9NTUFQX0dUVF9DT0hFUkVOVDoKLQkJdmFsdWUgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+aGFzX2NvaGVyZW50X2dndHQ7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCURSTV9ERUJVRygiVW5rbm93biBwYXJhbWV0ZXIgJWRcbiIsIHBhcmFtLT5wYXJhbSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChwdXRfdXNlcih2YWx1ZSwgcGFyYW0tPnZhbHVlKSkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlyZXR1cm4gMDsKLX0KKwkvKiBEaXNwbGF5IDIgQ1ogZG9tYWluICovCisJdTMyIGd1X2N0bDA7CisJdTMyIGd1X2N0bDE7CisJdTMyIHBjYnI7CisJdTMyIGNsb2NrX2dhdGVfZGlzMjsKK307CiAKIHN0YXRpYyBpbnQgaTkxNV9nZXRfYnJpZGdlX2RldihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CkBAIC02MzIsMzkgKzI4Miw0NSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGk5MTVfdmdhX3NldF9kZWNvZGUodm9pZCAqY29va2llLCBib29sIHN0YXRlKQogCQlyZXR1cm4gVkdBX1JTUkNfTk9STUFMX0lPIHwgVkdBX1JTUkNfTk9STUFMX01FTTsKIH0KIAotc3RhdGljIGludCBpOTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotc3RhdGljIGludCBpOTE1X3N1c3BlbmRfc3dpdGNoZXJvbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpOworc3RhdGljIGludCBpOTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3N0YXRpYyBpbnQgaTkxNV9zdXNwZW5kX3N3aXRjaGVyb28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkJICAgcG1fbWVzc2FnZV90IHN0YXRlKTsKIAogc3RhdGljIHZvaWQgaTkxNV9zd2l0Y2hlcm9vX3NldF9zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZW51bSB2Z2Ffc3dpdGNoZXJvb19zdGF0ZSBzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gcGRldl90b19pOTE1KHBkZXYpOwogCXBtX21lc3NhZ2VfdCBwbW0gPSB7IC5ldmVudCA9IFBNX0VWRU5UX1NVU1BFTkQgfTsKIAorCWlmICghaTkxNSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJEUk0gbm90IGluaXRpYWxpemVkLCBhYm9ydGluZyBzd2l0Y2guXG4iKTsKKwkJcmV0dXJuOworCX0KKwogCWlmIChzdGF0ZSA9PSBWR0FfU1dJVENIRVJPT19PTikgewogCQlwcl9pbmZvKCJzd2l0Y2hlZCBvblxuIik7Ci0JCWRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJNX1NXSVRDSF9QT1dFUl9DSEFOR0lORzsKKwkJaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9IERSTV9TV0lUQ0hfUE9XRVJfQ0hBTkdJTkc7CiAJCS8qIGk5MTUgcmVzdW1lIGhhbmRsZXIgZG9lc24ndCBzZXQgdG8gRDAgKi8KIAkJcGNpX3NldF9wb3dlcl9zdGF0ZShwZGV2LCBQQ0lfRDApOwotCQlpOTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKGRldik7Ci0JCWRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJNX1NXSVRDSF9QT1dFUl9PTjsKKwkJaTkxNV9yZXN1bWVfc3dpdGNoZXJvbyhpOTE1KTsKKwkJaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9IERSTV9TV0lUQ0hfUE9XRVJfT047CiAJfSBlbHNlIHsKIAkJcHJfaW5mbygic3dpdGNoZWQgb2ZmXG4iKTsKLQkJZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPSBEUk1fU1dJVENIX1BPV0VSX0NIQU5HSU5HOwotCQlpOTE1X3N1c3BlbmRfc3dpdGNoZXJvbyhkZXYsIHBtbSk7Ci0JCWRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJNX1NXSVRDSF9QT1dFUl9PRkY7CisJCWk5MTUtPmRybS5zd2l0Y2hfcG93ZXJfc3RhdGUgPSBEUk1fU1dJVENIX1BPV0VSX0NIQU5HSU5HOworCQlpOTE1X3N1c3BlbmRfc3dpdGNoZXJvbyhpOTE1LCBwbW0pOworCQlpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJNX1NXSVRDSF9QT1dFUl9PRkY7CiAJfQogfQogCiBzdGF0aWMgYm9vbCBpOTE1X3N3aXRjaGVyb29fY2FuX3N3aXRjaChzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gcGRldl90b19pOTE1KHBkZXYpOwogCiAJLyoKIAkgKiBGSVhNRTogb3Blbl9jb3VudCBpcyBwcm90ZWN0ZWQgYnkgZHJtX2dsb2JhbF9tdXRleCBidXQgdGhhdCB3b3VsZCBsZWFkIHRvCiAJICogbG9ja2luZyBpbnZlcnNpb24gd2l0aCB0aGUgZHJpdmVyIGxvYWQgcGF0aC4gQW5kIHRoZSBhY2Nlc3MgaGVyZSBpcwogCSAqIGNvbXBsZXRlbHkgcmFjeSBhbnl3YXkuIFNvIGRvbid0IGJvdGhlciB3aXRoIGxvY2tpbmcgZm9yIG5vdy4KIAkgKi8KLQlyZXR1cm4gZGV2LT5vcGVuX2NvdW50ID09IDA7CisJcmV0dXJuIGk5MTUgJiYgaTkxNS0+ZHJtLm9wZW5fY291bnQgPT0gMDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCB2Z2Ffc3dpdGNoZXJvb19jbGllbnRfb3BzIGk5MTVfc3dpdGNoZXJvb19vcHMgPSB7CkBAIC02NzMsMTMgKzMyOSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9vcHMgaTkxNV9zd2l0Y2hlcm9vX29wcyA9IHsKIAkuY2FuX3N3aXRjaCA9IGk5MTVfc3dpdGNoZXJvb19jYW5fc3dpdGNoLAogfTsKIAotc3RhdGljIGludCBpOTE1X2xvYWRfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IGk5MTVfZHJpdmVyX21vZGVzZXRfcHJvYmUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJaW50IHJldDsKIAotCWlmIChpOTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKKwlpZiAoaTkxNV9pbmplY3RfcHJvYmVfZmFpbHVyZShkZXZfcHJpdikpCiAJCXJldHVybiAtRU5PREVWOwogCiAJaWYgKEhBU19ESVNQTEFZKGRldl9wcml2KSkgewpAQCAtNzQ5LDE2ICs0MDUsMTYgQEAgc3RhdGljIGludCBpOTE1X2xvYWRfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIGNsZWFudXBfZ2VtOgogCWk5MTVfZ2VtX3N1c3BlbmQoZGV2X3ByaXYpOwotCWk5MTVfZ2VtX2ZpbmlfaHcoZGV2X3ByaXYpOwotCWk5MTVfZ2VtX2ZpbmkoZGV2X3ByaXYpOworCWk5MTVfZ2VtX2RyaXZlcl9yZW1vdmUoZGV2X3ByaXYpOworCWk5MTVfZ2VtX2RyaXZlcl9yZWxlYXNlKGRldl9wcml2KTsKIGNsZWFudXBfbW9kZXNldDoKLQlpbnRlbF9tb2Rlc2V0X2NsZWFudXAoZGV2KTsKKwlpbnRlbF9tb2Rlc2V0X2RyaXZlcl9yZW1vdmUoZGV2KTsKIGNsZWFudXBfaXJxOgotCWRybV9pcnFfdW5pbnN0YWxsKGRldik7CisJaW50ZWxfaXJxX3VuaW5zdGFsbChkZXZfcHJpdik7CiAJaW50ZWxfZ21idXNfdGVhcmRvd24oZGV2X3ByaXYpOwogY2xlYW51cF9jc3I6CiAJaW50ZWxfY3NyX3Vjb2RlX2ZpbmkoZGV2X3ByaXYpOwotCWludGVsX3Bvd2VyX2RvbWFpbnNfZmluaV9odyhkZXZfcHJpdik7CisJaW50ZWxfcG93ZXJfZG9tYWluc19kcml2ZXJfcmVtb3ZlKGRldl9wcml2KTsKIAl2Z2Ffc3dpdGNoZXJvb191bnJlZ2lzdGVyX2NsaWVudChwZGV2KTsKIGNsZWFudXBfdmdhX2NsaWVudDoKIAl2Z2FfY2xpZW50X3JlZ2lzdGVyKHBkZXYsIE5VTEwsIE5VTEwsIE5VTEwpOwpAQCAtODQwLDE1ICs0OTYsNiBAQCBzdGF0aWMgaW50IGk5MTVfd29ya3F1ZXVlc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gLUVOT01FTTsKIH0KIAotc3RhdGljIHZvaWQgaTkxNV9lbmdpbmVzX2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwotCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCi0JCWtmcmVlKGVuZ2luZSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGk5MTVfd29ya3F1ZXVlc19jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlkZXN0cm95X3dvcmtxdWV1ZShkZXZfcHJpdi0+aG90cGx1Zy5kcF93cSk7CkBAIC04ODEsOCArNTI4LDMxIEBAIHN0YXRpYyB2b2lkIGludGVsX2RldGVjdF9wcmVwcm9kdWN0aW9uX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAl9CiB9CiAKK3N0YXRpYyBpbnQgdmx2X2FsbG9jX3MwaXhfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJaWYgKCFJU19WQUxMRVlWSUVXKGk5MTUpKQorCQlyZXR1cm4gMDsKKworCS8qIHdlIHdyaXRlIGFsbCB0aGUgdmFsdWVzIGluIHRoZSBzdHJ1Y3QsIHNvIG5vIG5lZWQgdG8gemVybyBpdCBvdXQgKi8KKwlpOTE1LT52bHZfczBpeF9zdGF0ZSA9IGttYWxsb2Moc2l6ZW9mKCppOTE1LT52bHZfczBpeF9zdGF0ZSksCisJCQkJICAgICAgIEdGUF9LRVJORUwpOworCWlmICghaTkxNS0+dmx2X3MwaXhfc3RhdGUpCisJCXJldHVybiAtRU5PTUVNOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHZsdl9mcmVlX3MwaXhfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJaWYgKCFpOTE1LT52bHZfczBpeF9zdGF0ZSkKKwkJcmV0dXJuOworCisJa2ZyZWUoaTkxNS0+dmx2X3MwaXhfc3RhdGUpOworCWk5MTUtPnZsdl9zMGl4X3N0YXRlID0gTlVMTDsKK30KKwogLyoqCi0gKiBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5IC0gc2V0dXAgc3RhdGUgbm90IHJlcXVpcmluZyBkZXZpY2UgYWNjZXNzCisgKiBpOTE1X2RyaXZlcl9lYXJseV9wcm9iZSAtIHNldHVwIHN0YXRlIG5vdCByZXF1aXJpbmcgZGV2aWNlIGFjY2VzcwogICogQGRldl9wcml2OiBkZXZpY2UgcHJpdmF0ZQogICoKICAqIEluaXRpYWxpemUgZXZlcnl0aGluZyB0aGF0IGlzIGEgIlNXLW9ubHkiIHN0YXRlLCB0aGF0IGlzIHN0YXRlIG5vdApAQCAtODkxLDE2ICs1NjEsMTcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGV0ZWN0X3ByZXByb2R1Y3Rpb25faHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICogc3lzdGVtIG1lbW9yeSBhbGxvY2F0aW9uLCBzZXR0aW5nIHVwIGRldmljZSBzcGVjaWZpYyBhdHRyaWJ1dGVzIGFuZAogICogZnVuY3Rpb24gaG9va3Mgbm90IHJlcXVpcmluZyBhY2Nlc3NpbmcgdGhlIGRldmljZS4KICAqLwotc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyBpbnQgaTkxNV9kcml2ZXJfZWFybHlfcHJvYmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCWludCByZXQgPSAwOwogCi0JaWYgKGk5MTVfaW5qZWN0X2xvYWRfZmFpbHVyZSgpKQorCWlmIChpOTE1X2luamVjdF9wcm9iZV9mYWlsdXJlKGRldl9wcml2KSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlpbnRlbF9kZXZpY2VfaW5mb19zdWJwbGF0Zm9ybV9pbml0KGRldl9wcml2KTsKIAotCWludGVsX3VuY29yZV9pbml0X2Vhcmx5KCZkZXZfcHJpdi0+dW5jb3JlKTsKKwlpbnRlbF91bmNvcmVfbW1pb19kZWJ1Z19pbml0X2Vhcmx5KCZkZXZfcHJpdi0+bW1pb19kZWJ1Zyk7CisJaW50ZWxfdW5jb3JlX2luaXRfZWFybHkoJmRldl9wcml2LT51bmNvcmUsIGRldl9wcml2KTsKIAogCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+Z3B1X2Vycm9yLmxvY2spOwpAQCAtOTIwLDI0ICs1OTEsMjkgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCXJldCA9IGk5MTVfd29ya3F1ZXVlc19pbml0KGRldl9wcml2KTsKIAlpZiAocmV0IDwgMCkKLQkJZ290byBlcnJfZW5naW5lczsKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHZsdl9hbGxvY19zMGl4X3N0YXRlKGRldl9wcml2KTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBlcnJfd29ya3F1ZXVlczsKKworCWludGVsX3dvcGNtX2luaXRfZWFybHkoJmRldl9wcml2LT53b3BjbSk7CisKKwlpbnRlbF9ndF9pbml0X2Vhcmx5KCZkZXZfcHJpdi0+Z3QsIGRldl9wcml2KTsKIAogCXJldCA9IGk5MTVfZ2VtX2luaXRfZWFybHkoZGV2X3ByaXYpOwogCWlmIChyZXQgPCAwKQotCQlnb3RvIGVycl93b3JrcXVldWVzOworCQlnb3RvIGVycl9ndDsKIAogCS8qIFRoaXMgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBjYWxscyB0byBIQVNfUENIXyogKi8KIAlpbnRlbF9kZXRlY3RfcGNoKGRldl9wcml2KTsKIAotCWludGVsX3dvcGNtX2luaXRfZWFybHkoJmRldl9wcml2LT53b3BjbSk7Ci0JaW50ZWxfdWNfaW5pdF9lYXJseShkZXZfcHJpdik7CiAJaW50ZWxfcG1fc2V0dXAoZGV2X3ByaXYpOwogCWludGVsX2luaXRfZHBpbyhkZXZfcHJpdik7CiAJcmV0ID0gaW50ZWxfcG93ZXJfZG9tYWluc19pbml0KGRldl9wcml2KTsKIAlpZiAocmV0IDwgMCkKLQkJZ290byBlcnJfdWM7CisJCWdvdG8gZXJyX2dlbTsKIAlpbnRlbF9pcnFfaW5pdChkZXZfcHJpdik7Ci0JaW50ZWxfaGFuZ2NoZWNrX2luaXQoZGV2X3ByaXYpOwogCWludGVsX2luaXRfZGlzcGxheV9ob29rcyhkZXZfcHJpdik7CiAJaW50ZWxfaW5pdF9jbG9ja19nYXRpbmdfaG9va3MoZGV2X3ByaXYpOwogCWludGVsX2luaXRfYXVkaW9faG9va3MoZGV2X3ByaXYpOwpAQCAtOTQ3LDM1ICs2MjMsMzYgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCXJldHVybiAwOwogCi1lcnJfdWM6Ci0JaW50ZWxfdWNfY2xlYW51cF9lYXJseShkZXZfcHJpdik7CitlcnJfZ2VtOgogCWk5MTVfZ2VtX2NsZWFudXBfZWFybHkoZGV2X3ByaXYpOworZXJyX2d0OgorCWludGVsX2d0X2RyaXZlcl9sYXRlX3JlbGVhc2UoJmRldl9wcml2LT5ndCk7CisJdmx2X2ZyZWVfczBpeF9zdGF0ZShkZXZfcHJpdik7CiBlcnJfd29ya3F1ZXVlczoKIAlpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChkZXZfcHJpdik7Ci1lcnJfZW5naW5lczoKLQlpOTE1X2VuZ2luZXNfY2xlYW51cChkZXZfcHJpdik7CiAJcmV0dXJuIHJldDsKIH0KIAogLyoqCi0gKiBpOTE1X2RyaXZlcl9jbGVhbnVwX2Vhcmx5IC0gY2xlYW51cCB0aGUgc2V0dXAgZG9uZSBpbiBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5KCkKKyAqIGk5MTVfZHJpdmVyX2xhdGVfcmVsZWFzZSAtIGNsZWFudXAgdGhlIHNldHVwIGRvbmUgaW4KKyAqCQkJICAgICAgIGk5MTVfZHJpdmVyX2Vhcmx5X3Byb2JlKCkKICAqIEBkZXZfcHJpdjogZGV2aWNlIHByaXZhdGUKICAqLwotc3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfY2xlYW51cF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9sYXRlX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCWludGVsX2lycV9maW5pKGRldl9wcml2KTsKIAlpbnRlbF9wb3dlcl9kb21haW5zX2NsZWFudXAoZGV2X3ByaXYpOwotCWludGVsX3VjX2NsZWFudXBfZWFybHkoZGV2X3ByaXYpOwogCWk5MTVfZ2VtX2NsZWFudXBfZWFybHkoZGV2X3ByaXYpOworCWludGVsX2d0X2RyaXZlcl9sYXRlX3JlbGVhc2UoJmRldl9wcml2LT5ndCk7CisJdmx2X2ZyZWVfczBpeF9zdGF0ZShkZXZfcHJpdik7CiAJaTkxNV93b3JrcXVldWVzX2NsZWFudXAoZGV2X3ByaXYpOwotCWk5MTVfZW5naW5lc19jbGVhbnVwKGRldl9wcml2KTsKIAogCXBtX3Fvc19yZW1vdmVfcmVxdWVzdCgmZGV2X3ByaXYtPnNiX3Fvcyk7CiAJbXV0ZXhfZGVzdHJveSgmZGV2X3ByaXYtPnNiX2xvY2spOwogfQogCiAvKioKLSAqIGk5MTVfZHJpdmVyX2luaXRfbW1pbyAtIHNldHVwIGRldmljZSBNTUlPCisgKiBpOTE1X2RyaXZlcl9tbWlvX3Byb2JlIC0gc2V0dXAgZGV2aWNlIE1NSU8KICAqIEBkZXZfcHJpdjogZGV2aWNlIHByaXZhdGUKICAqCiAgKiBTZXR1cCBtaW5pbWFsIGRldmljZSBzdGF0ZSBuZWNlc3NhcnkgZm9yIE1NSU8gYWNjZXNzZXMgbGF0ZXIgaW4gdGhlCkBAIC05ODMsMTEgKzY2MCwxMSBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9jbGVhbnVwX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqIHNpZGUgZWZmZWN0cyBvciBleHBvc2luZyB0aGUgZHJpdmVyIHZpYSBrZXJuZWwgaW50ZXJuYWwgb3IgdXNlciBzcGFjZQogICogaW50ZXJmYWNlcy4KICAqLwotc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIGludCBpOTE1X2RyaXZlcl9tbWlvX3Byb2JlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlpbnQgcmV0OwogCi0JaWYgKGk5MTVfaW5qZWN0X2xvYWRfZmFpbHVyZSgpKQorCWlmIChpOTE1X2luamVjdF9wcm9iZV9mYWlsdXJlKGRldl9wcml2KSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlpZiAoaTkxNV9nZXRfYnJpZGdlX2RldihkZXZfcHJpdikpCkBAIC0xMDA0LDcgKzY4MSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCWludGVsX3VuY29yZV9wcnVuZV9tbWlvX2RvbWFpbnMoJmRldl9wcml2LT51bmNvcmUpOwogCi0JaW50ZWxfdWNfaW5pdF9tbWlvKGRldl9wcml2KTsKKwlpbnRlbF91Y19pbml0X21taW8oJmRldl9wcml2LT5ndC51Yyk7CiAKIAlyZXQgPSBpbnRlbF9lbmdpbmVzX2luaXRfbW1pbyhkZXZfcHJpdik7CiAJaWYgKHJldCkKQEAgLTEwMjQsMTEgKzcwMSwxMiBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB9CiAKIC8qKgotICogaTkxNV9kcml2ZXJfY2xlYW51cF9tbWlvIC0gY2xlYW51cCB0aGUgc2V0dXAgZG9uZSBpbiBpOTE1X2RyaXZlcl9pbml0X21taW8oKQorICogaTkxNV9kcml2ZXJfbW1pb19yZWxlYXNlIC0gY2xlYW51cCB0aGUgc2V0dXAgZG9uZSBpbiBpOTE1X2RyaXZlcl9tbWlvX3Byb2JlKCkKICAqIEBkZXZfcHJpdjogZGV2aWNlIHByaXZhdGUKICAqLwotc3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfY2xlYW51cF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX21taW9fcmVsZWFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CisJaW50ZWxfZW5naW5lc19jbGVhbnVwKGRldl9wcml2KTsKIAlpbnRlbF90ZWFyZG93bl9tY2hiYXIoZGV2X3ByaXYpOwogCWludGVsX3VuY29yZV9maW5pX21taW8oJmRldl9wcml2LT51bmNvcmUpOwogCXBjaV9kZXZfcHV0KGRldl9wcml2LT5icmlkZ2VfZGV2KTsKQEAgLTE1MTYsMjIgKzExOTQsMjMgQEAgc3RhdGljIHZvaWQgZWRyYW1fZGV0ZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZGV2X3ByaXYtPmVkcmFtX3NpemVfbWIgPQogCQkJZ2VuOV9lZHJhbV9zaXplX21iKGRldl9wcml2LCBlZHJhbV9jYXApOwogCi0JRFJNX0lORk8oIkZvdW5kICV1TUIgb2YgZURSQU1cbiIsIGRldl9wcml2LT5lZHJhbV9zaXplX21iKTsKKwlkZXZfaW5mbyhkZXZfcHJpdi0+ZHJtLmRldiwKKwkJICJGb3VuZCAldU1CIG9mIGVEUkFNXG4iLCBkZXZfcHJpdi0+ZWRyYW1fc2l6ZV9tYik7CiB9CiAKIC8qKgotICogaTkxNV9kcml2ZXJfaW5pdF9odyAtIHNldHVwIHN0YXRlIHJlcXVpcmluZyBkZXZpY2UgYWNjZXNzCisgKiBpOTE1X2RyaXZlcl9od19wcm9iZSAtIHNldHVwIHN0YXRlIHJlcXVpcmluZyBkZXZpY2UgYWNjZXNzCiAgKiBAZGV2X3ByaXY6IGRldmljZSBwcml2YXRlCiAgKgogICogU2V0dXAgc3RhdGUgdGhhdCByZXF1aXJlcyBhY2Nlc3NpbmcgdGhlIGRldmljZSwgYnV0IGRvZXNuJ3QgcmVxdWlyZQogICogZXhwb3NpbmcgdGhlIGRyaXZlciB2aWEga2VybmVsIGludGVybmFsIG9yIHVzZXJzcGFjZSBpbnRlcmZhY2VzLgogICovCi1zdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIGludCBpOTE1X2RyaXZlcl9od19wcm9iZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJaW50IHJldDsKIAotCWlmIChpOTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKKwlpZiAoaTkxNV9pbmplY3RfcHJvYmVfZmFpbHVyZShkZXZfcHJpdikpCiAJCXJldHVybiAtRU5PREVWOwogCiAJaW50ZWxfZGV2aWNlX2luZm9fcnVudGltZV9pbml0KGRldl9wcml2KTsKQEAgLTE1OTAsNiArMTI2OSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKHJldCkKIAkJZ290byBlcnJfZ2d0dDsKIAorCWludGVsX2d0X2luaXRfaHcoZGV2X3ByaXYpOworCiAJcmV0ID0gaTkxNV9nZ3R0X2VuYWJsZV9odyhkZXZfcHJpdik7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBlbmFibGUgR0dUVFxuIik7CkBAIC0xNjM1LDcgKzEzMTYsOCBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXBtX3Fvc19hZGRfcmVxdWVzdCgmZGV2X3ByaXYtPnBtX3FvcywgUE1fUU9TX0NQVV9ETUFfTEFURU5DWSwKIAkJCSAgIFBNX1FPU19ERUZBVUxUX1ZBTFVFKTsKIAotCWludGVsX3VuY29yZV9zYW5pdGl6ZShkZXZfcHJpdik7CisJLyogQklPUyBvZnRlbiBsZWF2ZXMgUkM2IGVuYWJsZWQsIGJ1dCBkaXNhYmxlIGl0IGZvciBodyBpbml0ICovCisJaW50ZWxfc2FuaXRpemVfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKIAogCWludGVsX2d0X2luaXRfd29ya2Fyb3VuZHMoZGV2X3ByaXYpOwogCkBAIC0xNjgzLDE3ICsxMzY1LDE3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXBjaV9kaXNhYmxlX21zaShwZGV2KTsKIAlwbV9xb3NfcmVtb3ZlX3JlcXVlc3QoJmRldl9wcml2LT5wbV9xb3MpOwogZXJyX2dndHQ6Ci0JaTkxNV9nZ3R0X2NsZWFudXBfaHcoZGV2X3ByaXYpOworCWk5MTVfZ2d0dF9kcml2ZXJfcmVsZWFzZShkZXZfcHJpdik7CiBlcnJfcGVyZjoKIAlpOTE1X3BlcmZfZmluaShkZXZfcHJpdik7CiAJcmV0dXJuIHJldDsKIH0KIAogLyoqCi0gKiBpOTE1X2RyaXZlcl9jbGVhbnVwX2h3IC0gY2xlYW51cCB0aGUgc2V0dXAgZG9uZSBpbiBpOTE1X2RyaXZlcl9pbml0X2h3KCkKKyAqIGk5MTVfZHJpdmVyX2h3X3JlbW92ZSAtIGNsZWFudXAgdGhlIHNldHVwIGRvbmUgaW4gaTkxNV9kcml2ZXJfaHdfcHJvYmUoKQogICogQGRldl9wcml2OiBkZXZpY2UgcHJpdmF0ZQogICovCi1zdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9jbGVhbnVwX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX2h3X3JlbW92ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAKQEAgLTE3MTYsNyArMTM5OCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07CiAKLQlpOTE1X2dlbV9zaHJpbmtlcl9yZWdpc3RlcihkZXZfcHJpdik7CisJaTkxNV9nZW1fZHJpdmVyX3JlZ2lzdGVyKGRldl9wcml2KTsKIAlpOTE1X3BtdV9yZWdpc3RlcihkZXZfcHJpdik7CiAKIAkvKgpAQCAtMTc5Niw3ICsxNDc4LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaTkxNV90ZWFyZG93bl9zeXNmcyhkZXZfcHJpdik7CiAJZHJtX2Rldl91bnBsdWcoJmRldl9wcml2LT5kcm0pOwogCi0JaTkxNV9nZW1fc2hyaW5rZXJfdW5yZWdpc3RlcihkZXZfcHJpdik7CisJaTkxNV9nZW1fZHJpdmVyX3VucmVnaXN0ZXIoZGV2X3ByaXYpOwogfQogCiBzdGF0aWMgdm9pZCBpOTE1X3dlbGNvbWVfbWVzc2FnZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtMTg0Myw5ICsxNTI1LDEwIEBAIGk5MTVfZHJpdmVyX2NyZWF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIAkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIAl9CiAKLQlpOTE1LT5kcm0ucGRldiA9IHBkZXY7CiAJaTkxNS0+ZHJtLmRldl9wcml2YXRlID0gaTkxNTsKLQlwY2lfc2V0X2RydmRhdGEocGRldiwgJmk5MTUtPmRybSk7CisKKwlpOTE1LT5kcm0ucGRldiA9IHBkZXY7CisJcGNpX3NldF9kcnZkYXRhKHBkZXYsIGk5MTUpOwogCiAJLyogU2V0dXAgdGhlIHdyaXRlLW9uY2UgImNvbnN0YW50IiBkZXZpY2UgaW5mbyAqLwogCWRldmljZV9pbmZvID0gbWt3cml0ZV9kZXZpY2VfaW5mbyhpOTE1KTsKQEAgLTE4NjksMTcgKzE1NTIsMTcgQEAgc3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIH0KIAogLyoqCi0gKiBpOTE1X2RyaXZlcl9sb2FkIC0gc2V0dXAgY2hpcCBhbmQgY3JlYXRlIGFuIGluaXRpYWwgY29uZmlnCisgKiBpOTE1X2RyaXZlcl9wcm9iZSAtIHNldHVwIGNoaXAgYW5kIGNyZWF0ZSBhbiBpbml0aWFsIGNvbmZpZwogICogQHBkZXY6IFBDSSBkZXZpY2UKICAqIEBlbnQ6IG1hdGNoaW5nIFBDSSBJRCBlbnRyeQogICoKLSAqIFRoZSBkcml2ZXIgbG9hZCByb3V0aW5lIGhhcyB0byBkbyBzZXZlcmFsIHRoaW5nczoKKyAqIFRoZSBkcml2ZXIgcHJvYmUgcm91dGluZSBoYXMgdG8gZG8gc2V2ZXJhbCB0aGluZ3M6CiAgKiAgIC0gZHJpdmUgb3V0cHV0IGRpc2NvdmVyeSB2aWEgaW50ZWxfbW9kZXNldF9pbml0KCkKICAqICAgLSBpbml0aWFsaXplIHRoZSBtZW1vcnkgbWFuYWdlcgogICogICAtIGFsbG9jYXRlIGluaXRpYWwgY29uZmlnIG1lbW9yeQogICogICAtIHNldHVwIHRoZSBEUk0gZnJhbWVidWZmZXIgd2l0aCB0aGUgYWxsb2NhdGVkIG1lbW9yeQogICovCi1pbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKK2ludCBpOTE1X2RyaXZlcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIHsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKm1hdGNoX2luZm8gPQogCQkoc3RydWN0IGludGVsX2RldmljZV9pbmZvICopZW50LT5kcml2ZXJfZGF0YTsKQEAgLTE4OTgsMjEgKzE1ODEsMjMgQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAJaWYgKHJldCkKIAkJZ290byBvdXRfZmluaTsKIAotCXJldCA9IGk5MTVfZHJpdmVyX2luaXRfZWFybHkoZGV2X3ByaXYpOworCXJldCA9IGk5MTVfZHJpdmVyX2Vhcmx5X3Byb2JlKGRldl9wcml2KTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBvdXRfcGNpX2Rpc2FibGU7CiAKIAlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAotCXJldCA9IGk5MTVfZHJpdmVyX2luaXRfbW1pbyhkZXZfcHJpdik7CisJaTkxNV9kZXRlY3RfdmdwdShkZXZfcHJpdik7CisKKwlyZXQgPSBpOTE1X2RyaXZlcl9tbWlvX3Byb2JlKGRldl9wcml2KTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBvdXRfcnVudGltZV9wbV9wdXQ7CiAKLQlyZXQgPSBpOTE1X2RyaXZlcl9pbml0X2h3KGRldl9wcml2KTsKKwlyZXQgPSBpOTE1X2RyaXZlcl9od19wcm9iZShkZXZfcHJpdik7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gb3V0X2NsZWFudXBfbW1pbzsKIAotCXJldCA9IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoJmRldl9wcml2LT5kcm0pOworCXJldCA9IGk5MTVfZHJpdmVyX21vZGVzZXRfcHJvYmUoJmRldl9wcml2LT5kcm0pOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIG91dF9jbGVhbnVwX2h3OwogCkBAIC0xOTI1LDY2ICsxNjEwLDY4IEBAIGludCBpOTE1X2RyaXZlcl9sb2FkKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogCXJldHVybiAwOwogCiBvdXRfY2xlYW51cF9odzoKLQlpOTE1X2RyaXZlcl9jbGVhbnVwX2h3KGRldl9wcml2KTsKLQlpOTE1X2dndHRfY2xlYW51cF9odyhkZXZfcHJpdik7CisJaTkxNV9kcml2ZXJfaHdfcmVtb3ZlKGRldl9wcml2KTsKKwlpOTE1X2dndHRfZHJpdmVyX3JlbGVhc2UoZGV2X3ByaXYpOworCisJLyogUGFyYW5vaWE6IG1ha2Ugc3VyZSB3ZSBoYXZlIGRpc2FibGVkIGV2ZXJ5dGhpbmcgYmVmb3JlIHdlIGV4aXQuICovCisJaW50ZWxfc2FuaXRpemVfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKIG91dF9jbGVhbnVwX21taW86Ci0JaTkxNV9kcml2ZXJfY2xlYW51cF9tbWlvKGRldl9wcml2KTsKKwlpOTE1X2RyaXZlcl9tbWlvX3JlbGVhc2UoZGV2X3ByaXYpOwogb3V0X3J1bnRpbWVfcG1fcHV0OgogCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKCZkZXZfcHJpdi0+cnVudGltZV9wbSk7Ci0JaTkxNV9kcml2ZXJfY2xlYW51cF9lYXJseShkZXZfcHJpdik7CisJaTkxNV9kcml2ZXJfbGF0ZV9yZWxlYXNlKGRldl9wcml2KTsKIG91dF9wY2lfZGlzYWJsZToKIAlwY2lfZGlzYWJsZV9kZXZpY2UocGRldik7CiBvdXRfZmluaToKLQlpOTE1X2xvYWRfZXJyb3IoZGV2X3ByaXYsICJEZXZpY2UgaW5pdGlhbGl6YXRpb24gZmFpbGVkICglZClcbiIsIHJldCk7CisJaTkxNV9wcm9iZV9lcnJvcihkZXZfcHJpdiwgIkRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKIAlpOTE1X2RyaXZlcl9kZXN0cm95KGRldl9wcml2KTsKIAlyZXR1cm4gcmV0OwogfQogCi12b2lkIGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQordm9pZCBpOTE1X2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2OworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gaTkxNS0+ZHJtLnBkZXY7CiAKLQlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKKwlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCi0JaTkxNV9kcml2ZXJfdW5yZWdpc3RlcihkZXZfcHJpdik7CisJaTkxNV9kcml2ZXJfdW5yZWdpc3RlcihpOTE1KTsKIAogCS8qCiAJICogQWZ0ZXIgdW5yZWdpc3RlcmluZyB0aGUgZGV2aWNlIHRvIHByZXZlbnQgYW55IG5ldyB1c2VycywgY2FuY2VsCiAJICogYWxsIGluLWZsaWdodCByZXF1ZXN0cyBzbyB0aGF0IHdlIGNhbiBxdWlja2x5IHVuYmluZCB0aGUgYWN0aXZlCiAJICogcmVzb3VyY2VzLgogCSAqLwotCWk5MTVfZ2VtX3NldF93ZWRnZWQoZGV2X3ByaXYpOworCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKIAogCS8qIEZsdXNoIGFueSBleHRlcm5hbCBjb2RlIHRoYXQgc3RpbGwgbWF5IGJlIHVuZGVyIHRoZSBSQ1UgbG9jayAqLwogCXN5bmNocm9uaXplX3JjdSgpOwogCi0JaTkxNV9nZW1fc3VzcGVuZChkZXZfcHJpdik7CisJaTkxNV9nZW1fc3VzcGVuZChpOTE1KTsKIAotCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRldik7CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oJmk5MTUtPmRybSk7CiAKLQlpbnRlbF9ndnRfY2xlYW51cChkZXZfcHJpdik7CisJaW50ZWxfZ3Z0X2RyaXZlcl9yZW1vdmUoaTkxNSk7CiAKLQlpbnRlbF9tb2Rlc2V0X2NsZWFudXAoZGV2KTsKKwlpbnRlbF9tb2Rlc2V0X2RyaXZlcl9yZW1vdmUoJmk5MTUtPmRybSk7CiAKLQlpbnRlbF9iaW9zX2NsZWFudXAoZGV2X3ByaXYpOworCWludGVsX2Jpb3NfZHJpdmVyX3JlbW92ZShpOTE1KTsKIAogCXZnYV9zd2l0Y2hlcm9vX3VucmVnaXN0ZXJfY2xpZW50KHBkZXYpOwogCXZnYV9jbGllbnRfcmVnaXN0ZXIocGRldiwgTlVMTCwgTlVMTCwgTlVMTCk7CiAKLQlpbnRlbF9jc3JfdWNvZGVfZmluaShkZXZfcHJpdik7CisJaW50ZWxfY3NyX3Vjb2RlX2ZpbmkoaTkxNSk7CiAKIAkvKiBGcmVlIGVycm9yIHN0YXRlIGFmdGVyIGludGVycnVwdHMgYXJlIGZ1bGx5IGRpc2FibGVkLiAqLwotCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZGV2X3ByaXYtPmdwdV9lcnJvci5oYW5nY2hlY2tfd29yayk7Ci0JaTkxNV9yZXNldF9lcnJvcl9zdGF0ZShkZXZfcHJpdik7CisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpOTE1LT5ndC5oYW5nY2hlY2sud29yayk7CisJaTkxNV9yZXNldF9lcnJvcl9zdGF0ZShpOTE1KTsKIAotCWk5MTVfZ2VtX2ZpbmlfaHcoZGV2X3ByaXYpOworCWk5MTVfZ2VtX2RyaXZlcl9yZW1vdmUoaTkxNSk7CiAKLQlpbnRlbF9wb3dlcl9kb21haW5zX2ZpbmlfaHcoZGV2X3ByaXYpOworCWludGVsX3Bvd2VyX2RvbWFpbnNfZHJpdmVyX3JlbW92ZShpOTE1KTsKIAotCWk5MTVfZHJpdmVyX2NsZWFudXBfaHcoZGV2X3ByaXYpOworCWk5MTVfZHJpdmVyX2h3X3JlbW92ZShpOTE1KTsKIAotCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CisJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoJmk5MTUtPnJ1bnRpbWVfcG0pOwogfQogCiBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0xOTk0LDE1ICsxNjgxLDE5IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhycG0pOwogCi0JaTkxNV9nZW1fZmluaShkZXZfcHJpdik7CisJaTkxNV9nZW1fZHJpdmVyX3JlbGVhc2UoZGV2X3ByaXYpOwogCi0JaTkxNV9nZ3R0X2NsZWFudXBfaHcoZGV2X3ByaXYpOwotCWk5MTVfZHJpdmVyX2NsZWFudXBfbW1pbyhkZXZfcHJpdik7CisJaTkxNV9nZ3R0X2RyaXZlcl9yZWxlYXNlKGRldl9wcml2KTsKKworCS8qIFBhcmFub2lhOiBtYWtlIHN1cmUgd2UgaGF2ZSBkaXNhYmxlZCBldmVyeXRoaW5nIGJlZm9yZSB3ZSBleGl0LiAqLworCWludGVsX3Nhbml0aXplX2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7CisKKwlpOTE1X2RyaXZlcl9tbWlvX3JlbGVhc2UoZGV2X3ByaXYpOwogCiAJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMocnBtKTsKLQlpbnRlbF9ydW50aW1lX3BtX2NsZWFudXAocnBtKTsKKwlpbnRlbF9ydW50aW1lX3BtX2RyaXZlcl9yZWxlYXNlKHJwbSk7CiAKLQlpOTE1X2RyaXZlcl9jbGVhbnVwX2Vhcmx5KGRldl9wcml2KTsKKwlpOTE1X2RyaXZlcl9sYXRlX3JlbGVhc2UoZGV2X3ByaXYpOwogCWk5MTVfZHJpdmVyX2Rlc3Ryb3koZGV2X3ByaXYpOwogfQogCkBAIC0yMDQ2LDYgKzE3MzcsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9wb3N0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCiAJa2ZyZWUoZmlsZV9wcml2KTsKKworCS8qIENhdGNoIHVwIHdpdGggYWxsIHRoZSBkZWZlcnJlZCBmcmVlcyBmcm9tICJ0aGlzIiBjbGllbnQgKi8KKwlpOTE1X2dlbV9mbHVzaF9mcmVlX29iamVjdHModG9faTkxNShkZXYpKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfc3VzcGVuZF9lbmNvZGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC0yMTUwLDcgKzE4NDQsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIGhpYmVybmF0aW9uKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0gJmRldl9wcml2LT5ydW50aW1lX3BtOwotCWludCByZXQ7CisJaW50IHJldCA9IDA7CiAKIAlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMocnBtKTsKIApAQCAtMjE2MSwxMiArMTg1NSw5IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fc3VzcGVuZF9sYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgaGliZXJuYXRpb24pCiAJaW50ZWxfcG93ZXJfZG9tYWluc19zdXNwZW5kKGRldl9wcml2LAogCQkJCSAgICBnZXRfc3VzcGVuZF9tb2RlKGRldl9wcml2LCBoaWJlcm5hdGlvbikpOwogCi0JcmV0ID0gMDsKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSB8fCBJU19HRU45X0xQKGRldl9wcml2KSkKLQkJYnh0X2VuYWJsZV9kYzkoZGV2X3ByaXYpOwotCWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCi0JCWhzd19lbmFibGVfcGM4KGRldl9wcml2KTsKLQllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3N1c3BlbmRfbGF0ZShkZXZfcHJpdik7CisKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCXJldCA9IHZsdl9zdXNwZW5kX2NvbXBsZXRlKGRldl9wcml2KTsKIAogCWlmIChyZXQpIHsKQEAgLTIxOTQsMzQgKzE4ODUsMjkgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBoaWJlcm5hdGlvbikKIAogb3V0OgogCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKHJwbSk7Ci0JaWYgKCFkZXZfcHJpdi0+dW5jb3JlLnVzZXJfZm9yY2V3YWtlLmNvdW50KQotCQlpbnRlbF9ydW50aW1lX3BtX2NsZWFudXAocnBtKTsKKwlpZiAoIWRldl9wcml2LT51bmNvcmUudXNlcl9mb3JjZXdha2VfY291bnQpCisJCWludGVsX3J1bnRpbWVfcG1fZHJpdmVyX3JlbGVhc2UocnBtKTsKIAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9zdXNwZW5kX3N3aXRjaGVyb28oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQorc3RhdGljIGludAoraTkxNV9zdXNwZW5kX3N3aXRjaGVyb28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKIAlpbnQgZXJyb3I7CiAKLQlpZiAoIWRldikgewotCQlEUk1fRVJST1IoImRldjogJXBcbiIsIGRldik7Ci0JCURSTV9FUlJPUigiRFJNIG5vdCBpbml0aWFsaXplZCwgYWJvcnRpbmcgc3VzcGVuZC5cbiIpOwotCQlyZXR1cm4gLUVOT0RFVjsKLQl9Ci0KIAlpZiAoV0FSTl9PTl9PTkNFKHN0YXRlLmV2ZW50ICE9IFBNX0VWRU5UX1NVU1BFTkQgJiYKIAkJCSBzdGF0ZS5ldmVudCAhPSBQTV9FVkVOVF9GUkVFWkUpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKIAkJcmV0dXJuIDA7CiAKLQllcnJvciA9IGk5MTVfZHJtX3N1c3BlbmQoZGV2KTsKKwllcnJvciA9IGk5MTVfZHJtX3N1c3BlbmQoJmk5MTUtPmRybSk7CiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKLQlyZXR1cm4gaTkxNV9kcm1fc3VzcGVuZF9sYXRlKGRldiwgZmFsc2UpOworCXJldHVybiBpOTE1X2RybV9zdXNwZW5kX2xhdGUoJmk5MTUtPmRybSwgZmFsc2UpOwogfQogCiBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAtMjM1NCw3NSArMjA0MCw2OCBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJaW50ZWxfdW5jb3JlX3Jlc3VtZV9lYXJseSgmZGV2X3ByaXYtPnVuY29yZSk7CiAKLQlpOTE1X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoZGV2X3ByaXYpOworCWludGVsX2d0X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoJmRldl9wcml2LT5ndCk7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSB8fCBJU19HRU45X0xQKGRldl9wcml2KSkgewotCQlnZW45X3Nhbml0aXplX2RjX3N0YXRlKGRldl9wcml2KTsKLQkJYnh0X2Rpc2FibGVfZGM5KGRldl9wcml2KTsKLQl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKLQkJaHN3X2Rpc2FibGVfcGM4KGRldl9wcml2KTsKLQl9CisJaW50ZWxfZGlzcGxheV9wb3dlcl9yZXN1bWVfZWFybHkoZGV2X3ByaXYpOwogCi0JaW50ZWxfdW5jb3JlX3Nhbml0aXplKGRldl9wcml2KTsKKwlpbnRlbF9zYW5pdGl6ZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwogCiAJaW50ZWxfcG93ZXJfZG9tYWluc19yZXN1bWUoZGV2X3ByaXYpOwogCi0JaW50ZWxfZ3Rfc2FuaXRpemUoZGV2X3ByaXYsIHRydWUpOworCWludGVsX2d0X3Nhbml0aXplKCZkZXZfcHJpdi0+Z3QsIHRydWUpOwogCiAJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9yZXN1bWVfc3dpdGNoZXJvbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIGludCBpOTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCWludCByZXQ7CiAKLQlpZiAoZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYpCisJaWYgKGk5MTUtPmRybS5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYpCiAJCXJldHVybiAwOwogCi0JcmV0ID0gaTkxNV9kcm1fcmVzdW1lX2Vhcmx5KGRldik7CisJcmV0ID0gaTkxNV9kcm1fcmVzdW1lX2Vhcmx5KCZpOTE1LT5kcm0pOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXR1cm4gaTkxNV9kcm1fcmVzdW1lKGRldik7CisJcmV0dXJuIGk5MTVfZHJtX3Jlc3VtZSgmaTkxNS0+ZHJtKTsKIH0KIAogc3RhdGljIGludCBpOTE1X3BtX3ByZXBhcmUoc3RydWN0IGRldmljZSAqa2RldikKIHsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoa2Rldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGtkZXZfdG9faTkxNShrZGV2KTsKIAotCWlmICghZGV2KSB7CisJaWYgKCFpOTE1KSB7CiAJCWRldl9lcnIoa2RldiwgIkRSTSBub3QgaW5pdGlhbGl6ZWQsIGFib3J0aW5nIHN1c3BlbmQuXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCi0JaWYgKGRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfT0ZGKQorCWlmIChpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfT0ZGKQogCQlyZXR1cm4gMDsKIAotCXJldHVybiBpOTE1X2RybV9wcmVwYXJlKGRldik7CisJcmV0dXJuIGk5MTVfZHJtX3ByZXBhcmUoJmk5MTUtPmRybSk7CiB9CiAKIHN0YXRpYyBpbnQgaTkxNV9wbV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBrZGV2X3RvX2k5MTUoa2Rldik7CiAKLQlpZiAoIWRldikgeworCWlmICghaTkxNSkgewogCQlkZXZfZXJyKGtkZXYsICJEUk0gbm90IGluaXRpYWxpemVkLCBhYm9ydGluZyBzdXNwZW5kLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAotCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gaTkxNV9kcm1fc3VzcGVuZChkZXYpOworCXJldHVybiBpOTE1X2RybV9zdXNwZW5kKCZpOTE1LT5kcm0pOwogfQogCiBzdGF0aWMgaW50IGk5MTVfcG1fc3VzcGVuZF9sYXRlKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZrZGV2X3RvX2k5MTUoa2RldiktPmRybTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGtkZXZfdG9faTkxNShrZGV2KTsKIAogCS8qCiAJICogV2UgaGF2ZSBhIHN1c3BlbmQgb3JkZXJpbmcgaXNzdWUgd2l0aCB0aGUgc25kLWhkYSBkcml2ZXIgYWxzbwpAQCAtMjQzMyw1NSArMjExMiw1NSBAQCBzdGF0aWMgaW50IGk5MTVfcG1fc3VzcGVuZF9sYXRlKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiAJICogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHNvbHZlZCB3aXRoIGEgc3BlY2lhbCBoZG1pIHNpbmsgZGV2aWNlIG9yCiAJICogc2ltaWxhciBzbyB0aGF0IHBvd2VyIGRvbWFpbnMgY2FuIGJlIGVtcGxveWVkLgogCSAqLwotCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gaTkxNV9kcm1fc3VzcGVuZF9sYXRlKGRldiwgZmFsc2UpOworCXJldHVybiBpOTE1X2RybV9zdXNwZW5kX2xhdGUoJmk5MTUtPmRybSwgZmFsc2UpOwogfQogCiBzdGF0aWMgaW50IGk5MTVfcG1fcG93ZXJvZmZfbGF0ZShzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAma2Rldl90b19pOTE1KGtkZXYpLT5kcm07CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBrZGV2X3RvX2k5MTUoa2Rldik7CiAKLQlpZiAoZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYpCisJaWYgKGk5MTUtPmRybS5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShkZXYsIHRydWUpOworCXJldHVybiBpOTE1X2RybV9zdXNwZW5kX2xhdGUoJmk5MTUtPmRybSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyBpbnQgaTkxNV9wbV9yZXN1bWVfZWFybHkoc3RydWN0IGRldmljZSAqa2RldikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmtkZXZfdG9faTkxNShrZGV2KS0+ZHJtOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0ga2Rldl90b19pOTE1KGtkZXYpOwogCi0JaWYgKGRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfT0ZGKQorCWlmIChpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfT0ZGKQogCQlyZXR1cm4gMDsKIAotCXJldHVybiBpOTE1X2RybV9yZXN1bWVfZWFybHkoZGV2KTsKKwlyZXR1cm4gaTkxNV9kcm1fcmVzdW1lX2Vhcmx5KCZpOTE1LT5kcm0pOwogfQogCiBzdGF0aWMgaW50IGk5MTVfcG1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZrZGV2X3RvX2k5MTUoa2RldiktPmRybTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGtkZXZfdG9faTkxNShrZGV2KTsKIAotCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gaTkxNV9kcm1fcmVzdW1lKGRldik7CisJcmV0dXJuIGk5MTVfZHJtX3Jlc3VtZSgmaTkxNS0+ZHJtKTsKIH0KIAogLyogZnJlZXplOiBiZWZvcmUgY3JlYXRpbmcgdGhlIGhpYmVybmF0aW9uX2ltYWdlICovCiBzdGF0aWMgaW50IGk5MTVfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZrZGV2X3RvX2k5MTUoa2RldiktPmRybTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGtkZXZfdG9faTkxNShrZGV2KTsKIAlpbnQgcmV0OwogCi0JaWYgKGRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlICE9IERSTV9TV0lUQ0hfUE9XRVJfT0ZGKSB7Ci0JCXJldCA9IGk5MTVfZHJtX3N1c3BlbmQoZGV2KTsKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENIX1BPV0VSX09GRikgeworCQlyZXQgPSBpOTE1X2RybV9zdXNwZW5kKCZpOTE1LT5kcm0pOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZXQgPSBpOTE1X2dlbV9mcmVlemUoa2Rldl90b19pOTE1KGtkZXYpKTsKKwlyZXQgPSBpOTE1X2dlbV9mcmVlemUoaTkxNSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjQ5MCwxNiArMjE2OSwxNiBAQCBzdGF0aWMgaW50IGk5MTVfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiAKIHN0YXRpYyBpbnQgaTkxNV9wbV9mcmVlemVfbGF0ZShzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAma2Rldl90b19pOTE1KGtkZXYpLT5kcm07CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBrZGV2X3RvX2k5MTUoa2Rldik7CiAJaW50IHJldDsKIAotCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENIX1BPV0VSX09GRikgewotCQlyZXQgPSBpOTE1X2RybV9zdXNwZW5kX2xhdGUoZGV2LCB0cnVlKTsKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENIX1BPV0VSX09GRikgeworCQlyZXQgPSBpOTE1X2RybV9zdXNwZW5kX2xhdGUoJmk5MTUtPmRybSwgdHJ1ZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldCA9IGk5MTVfZ2VtX2ZyZWV6ZV9sYXRlKGtkZXZfdG9faTkxNShrZGV2KSk7CisJcmV0ID0gaTkxNV9nZW1fZnJlZXplX2xhdGUoaTkxNSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjU1Niw5ICsyMjM1LDEyIEBAIHN0YXRpYyBpbnQgaTkxNV9wbV9yZXN0b3JlKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiAgKi8KIHN0YXRpYyB2b2lkIHZsdl9zYXZlX2d1bml0X3MwaXhfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCB2bHZfczBpeF9zdGF0ZSAqcyA9ICZkZXZfcHJpdi0+dmx2X3MwaXhfc3RhdGU7CisJc3RydWN0IHZsdl9zMGl4X3N0YXRlICpzID0gZGV2X3ByaXYtPnZsdl9zMGl4X3N0YXRlOwogCWludCBpOwogCisJaWYgKCFzKQorCQlyZXR1cm47CisKIAkvKiBHQU0gMHg0MDAwLTB4NDc3MCAqLwogCXMtPndyX3dhdGVybWFyawkJPSBJOTE1X1JFQUQoR0VON19XUl9XQVRFUk1BUkspOwogCXMtPmdmeF9wcmlvX2N0cmwJPSBJOTE1X1JFQUQoR0VON19HRlhfUFJJT19DVFJMKTsKQEAgLTI2MzcsMTAgKzIzMTksMTMgQEAgc3RhdGljIHZvaWQgdmx2X3NhdmVfZ3VuaXRfczBpeF9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyB2b2lkIHZsdl9yZXN0b3JlX2d1bml0X3MwaXhfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCB2bHZfczBpeF9zdGF0ZSAqcyA9ICZkZXZfcHJpdi0+dmx2X3MwaXhfc3RhdGU7CisJc3RydWN0IHZsdl9zMGl4X3N0YXRlICpzID0gZGV2X3ByaXYtPnZsdl9zMGl4X3N0YXRlOwogCXUzMiB2YWw7CiAJaW50IGk7CiAKKwlpZiAoIXMpCisJCXJldHVybjsKKwogCS8qIEdBTSAweDQwMDAtMHg0NzcwICovCiAJSTkxNV9XUklURShHRU43X1dSX1dBVEVSTUFSSywJcy0+d3Jfd2F0ZXJtYXJrKTsKIAlJOTE1X1dSSVRFKEdFTjdfR0ZYX1BSSU9fQ1RSTCwJcy0+Z2Z4X3ByaW9fY3RybCk7CkBAIC0yODQ5LDggKzI1MzQsNyBAQCBzdGF0aWMgaW50IHZsdl9zdXNwZW5kX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAoZXJyKQogCQlnb3RvIGVycjI7CiAKLQlpZiAoIUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQotCQl2bHZfc2F2ZV9ndW5pdF9zMGl4X3N0YXRlKGRldl9wcml2KTsKKwl2bHZfc2F2ZV9ndW5pdF9zMGl4X3N0YXRlKGRldl9wcml2KTsKIAogCWVyciA9IHZsdl9mb3JjZV9nZnhfY2xvY2soZGV2X3ByaXYsIGZhbHNlKTsKIAlpZiAoZXJyKQpAQCAtMjg4MCw4ICsyNTY0LDcgQEAgc3RhdGljIGludCB2bHZfcmVzdW1lX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqLwogCXJldCA9IHZsdl9mb3JjZV9nZnhfY2xvY2soZGV2X3ByaXYsIHRydWUpOwogCi0JaWYgKCFJU19DSEVSUllWSUVXKGRldl9wcml2KSkKLQkJdmx2X3Jlc3RvcmVfZ3VuaXRfczBpeF9zdGF0ZShkZXZfcHJpdik7CisJdmx2X3Jlc3RvcmVfZ3VuaXRfczBpeF9zdGF0ZShkZXZfcHJpdik7CiAKIAllcnIgPSB2bHZfYWxsb3dfZ3Rfd2FrZShkZXZfcHJpdiwgdHJ1ZSk7CiAJaWYgKCFyZXQpCkBAIC0yOTAxLDExICsyNTg0LDkgQEAgc3RhdGljIGludCB2bHZfcmVzdW1lX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihrZGV2KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoa2Rldik7CiAJc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSA9ICZkZXZfcHJpdi0+cnVudGltZV9wbTsKLQlpbnQgcmV0OworCWludCByZXQgPSAwOwogCiAJaWYgKFdBUk5fT05fT05DRSghKGRldl9wcml2LT5ndF9wbS5yYzYuZW5hYmxlZCAmJiBIQVNfUkM2KGRldl9wcml2KSkpKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTI5MjMsMjQgKzI2MDQsMTYgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqa2RldikKIAkgKi8KIAlpOTE1X2dlbV9ydW50aW1lX3N1c3BlbmQoZGV2X3ByaXYpOwogCi0JaW50ZWxfdWNfcnVudGltZV9zdXNwZW5kKGRldl9wcml2KTsKKwlpbnRlbF9ndF9ydW50aW1lX3N1c3BlbmQoJmRldl9wcml2LT5ndCk7CiAKIAlpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGVfaW50ZXJydXB0cyhkZXZfcHJpdik7CiAKIAlpbnRlbF91bmNvcmVfc3VzcGVuZCgmZGV2X3ByaXYtPnVuY29yZSk7CiAKLQlyZXQgPSAwOwotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCWljbF9kaXNwbGF5X2NvcmVfdW5pbml0KGRldl9wcml2KTsKLQkJYnh0X2VuYWJsZV9kYzkoZGV2X3ByaXYpOwotCX0gZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKLQkJYnh0X2Rpc3BsYXlfY29yZV91bmluaXQoZGV2X3ByaXYpOwotCQlieHRfZW5hYmxlX2RjOShkZXZfcHJpdik7Ci0JfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Ci0JCWhzd19lbmFibGVfcGM4KGRldl9wcml2KTsKLQl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CisJaW50ZWxfZGlzcGxheV9wb3dlcl9zdXNwZW5kKGRldl9wcml2KTsKKworCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJcmV0ID0gdmx2X3N1c3BlbmRfY29tcGxldGUoZGV2X3ByaXYpOwotCX0KIAogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJSdW50aW1lIHN1c3BlbmQgZmFpbGVkLCBkaXNhYmxpbmcgaXQgKCVkKVxuIiwgcmV0KTsKQEAgLTI5NDgsOSArMjYyMSw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiAKIAkJaW50ZWxfcnVudGltZV9wbV9lbmFibGVfaW50ZXJydXB0cyhkZXZfcHJpdik7CiAKLQkJaW50ZWxfdWNfcmVzdW1lKGRldl9wcml2KTsKKwkJaW50ZWxfZ3RfcnVudGltZV9yZXN1bWUoJmRldl9wcml2LT5ndCk7CiAKLQkJaTkxNV9nZW1faW5pdF9zd2l6emxpbmcoZGV2X3ByaXYpOwogCQlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhkZXZfcHJpdik7CiAKIAkJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMocnBtKTsKQEAgLTI5NTksNyArMjYzMSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiAJfQogCiAJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMocnBtKTsKLQlpbnRlbF9ydW50aW1lX3BtX2NsZWFudXAocnBtKTsKKwlpbnRlbF9ydW50aW1lX3BtX2RyaXZlcl9yZWxlYXNlKHJwbSk7CiAKIAlpZiAoaW50ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRlY3Rpb24oJmRldl9wcml2LT51bmNvcmUpKQogCQlEUk1fRVJST1IoIlVuY2xhaW1lZCBhY2Nlc3MgZGV0ZWN0ZWQgcHJpb3IgdG8gc3VzcGVuZGluZ1xuIik7CkBAIC0zMDAwLDkgKzI2NzIsNyBAQCBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICprZGV2KQogCiBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShrZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0gJmRldl9wcml2LT5ydW50aW1lX3BtOwogCWludCByZXQgPSAwOwogCkBAIC0zMDE5LDQwICsyNjg5LDIwIEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqa2RldikKIAlpZiAoaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKCZkZXZfcHJpdi0+dW5jb3JlKSkKIAkJRFJNX0RFQlVHX0RSSVZFUigiVW5jbGFpbWVkIGFjY2VzcyBkdXJpbmcgc3VzcGVuZCwgYmlvcz9cbiIpOwogCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKLQkJYnh0X2Rpc2FibGVfZGM5KGRldl9wcml2KTsKLQkJaWNsX2Rpc3BsYXlfY29yZV9pbml0KGRldl9wcml2LCB0cnVlKTsKLQkJaWYgKGRldl9wcml2LT5jc3IuZG1jX3BheWxvYWQpIHsKLQkJCWlmIChkZXZfcHJpdi0+Y3NyLmFsbG93ZWRfZGNfbWFzayAmCi0JCQkgICAgRENfU1RBVEVfRU5fVVBUT19EQzYpCi0JCQkJc2tsX2VuYWJsZV9kYzYoZGV2X3ByaXYpOwotCQkJZWxzZSBpZiAoZGV2X3ByaXYtPmNzci5hbGxvd2VkX2RjX21hc2sgJgotCQkJCSBEQ19TVEFURV9FTl9VUFRPX0RDNSkKLQkJCQlnZW45X2VuYWJsZV9kYzUoZGV2X3ByaXYpOwotCQl9Ci0JfSBlbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewotCQlieHRfZGlzYWJsZV9kYzkoZGV2X3ByaXYpOwotCQlieHRfZGlzcGxheV9jb3JlX2luaXQoZGV2X3ByaXYsIHRydWUpOwotCQlpZiAoZGV2X3ByaXYtPmNzci5kbWNfcGF5bG9hZCAmJgotCQkgICAgKGRldl9wcml2LT5jc3IuYWxsb3dlZF9kY19tYXNrICYgRENfU1RBVEVfRU5fVVBUT19EQzUpKQotCQkJZ2VuOV9lbmFibGVfZGM1KGRldl9wcml2KTsKLQl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKLQkJaHN3X2Rpc2FibGVfcGM4KGRldl9wcml2KTsKLQl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CisJaW50ZWxfZGlzcGxheV9wb3dlcl9yZXN1bWUoZGV2X3ByaXYpOworCisJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQlyZXQgPSB2bHZfcmVzdW1lX3ByZXBhcmUoZGV2X3ByaXYsIHRydWUpOwotCX0KIAogCWludGVsX3VuY29yZV9ydW50aW1lX3Jlc3VtZSgmZGV2X3ByaXYtPnVuY29yZSk7CiAKIAlpbnRlbF9ydW50aW1lX3BtX2VuYWJsZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsKIAotCWludGVsX3VjX3Jlc3VtZShkZXZfcHJpdik7Ci0KIAkvKgogCSAqIE5vIHBvaW50IG9mIHJvbGxpbmcgYmFjayB0aGluZ3MgaW4gY2FzZSBvZiBhbiBlcnJvciwgYXMgdGhlIGJlc3QKIAkgKiB3ZSBjYW4gZG8gaXMgdG8gaG9wZSB0aGF0IHRoaW5ncyB3aWxsIHN0aWxsIHdvcmsgKGFuZCBkaXNhYmxlIFJQTSkuCiAJICovCi0JaTkxNV9nZW1faW5pdF9zd2l6emxpbmcoZGV2X3ByaXYpOworCWludGVsX2d0X3J1bnRpbWVfcmVzdW1lKCZkZXZfcHJpdi0+Z3QpOwogCWk5MTVfZ2VtX3Jlc3RvcmVfZmVuY2VzKGRldl9wcml2KTsKIAogCS8qCkBAIC0zMTk0LDkgKzI4NDQsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGk5MTVfaW9jdGxzW10gPSB7CiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTSwgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bCwgRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fQ09OVEVYVF9TRVRQQVJBTSwgaTkxNV9nZW1fY29udGV4dF9zZXRwYXJhbV9pb2N0bCwgRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9QRVJGX09QRU4sIGk5MTVfcGVyZl9vcGVuX2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihJOTE1X1BFUkZfQUREX0NPTkZJRywgaTkxNV9wZXJmX2FkZF9jb25maWdfaW9jdGwsIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihJOTE1X1BFUkZfUkVNT1ZFX0NPTkZJRywgaTkxNV9wZXJmX3JlbW92ZV9jb25maWdfaW9jdGwsIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihJOTE1X1FVRVJZLCBpOTE1X3F1ZXJ5X2lvY3RsLCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9QRVJGX0FERF9DT05GSUcsIGk5MTVfcGVyZl9hZGRfY29uZmlnX2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihJOTE1X1BFUkZfUkVNT1ZFX0NPTkZJRywgaTkxNV9wZXJmX3JlbW92ZV9jb25maWdfaW9jdGwsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfUVVFUlksIGk5MTVfcXVlcnlfaW9jdGwsIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX1ZNX0NSRUFURSwgaTkxNV9nZW1fdm1fY3JlYXRlX2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihJOTE1X0dFTV9WTV9ERVNUUk9ZLCBpOTE1X2dlbV92bV9kZXN0cm95X2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwKIH07CkBAIC0zMjA2LDcgKzI4NTYsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewogCSAqIGRlYWwgd2l0aCB0aGVtIGZvciBJbnRlbCBoYXJkd2FyZS4KIAkgKi8KIAkuZHJpdmVyX2ZlYXR1cmVzID0KLQkgICAgRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSB8CisJICAgIERSSVZFUl9HRU0gfAogCSAgICBEUklWRVJfUkVOREVSIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDIHwgRFJJVkVSX1NZTkNPQkosCiAJLnJlbGVhc2UgPSBpOTE1X2RyaXZlcl9yZWxlYXNlLAogCS5vcGVuID0gaTkxNV9kcml2ZXJfb3BlbiwKQEAgLTMyMjIsNiArMjg3Miw5IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXIgPSB7CiAJLmdlbV9wcmltZV9leHBvcnQgPSBpOTE1X2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmltZV9pbXBvcnQgPSBpOTE1X2dlbV9wcmltZV9pbXBvcnQsCiAKKwkuZ2V0X3ZibGFua190aW1lc3RhbXAgPSBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0cG9zLAorCS5nZXRfc2Nhbm91dF9wb3NpdGlvbiA9IGk5MTVfZ2V0X2NydGNfc2Nhbm91dHBvcywKKwogCS5kdW1iX2NyZWF0ZSA9IGk5MTVfZ2VtX2R1bWJfY3JlYXRlLAogCS5kdW1iX21hcF9vZmZzZXQgPSBpOTE1X2dlbV9tbWFwX2d0dCwKIAkuaW9jdGxzID0gaTkxNV9pb2N0bHMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBmZTdhNmVjLi43NzIxNTRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTQzLDcgKzQzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tbV90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9xb3MuaD4KLSNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1yZXN2Lmg+CiAjaW5jbHVkZSA8bGludXgvc2htZW1fZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zdGFja2RlcG90Lmg+CiAKQEAgLTY4LDI4ICs2OCwzNSBAQAogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmgiCisjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9nbWJ1cy5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfb3ByZWdpb24uaCIKIAorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9jb250ZXh0X3R5cGVzLmgiCisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmgiCisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3N0b2xlbi5oIgorCiAjaW5jbHVkZSAiZ3QvaW50ZWxfbHJjLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3RfdHlwZXMuaCIKICNpbmNsdWRlICJndC9pbnRlbF93b3JrYXJvdW5kcy5oIgorI2luY2x1ZGUgImd0L3VjL2ludGVsX3VjLmgiCiAKICNpbmNsdWRlICJpbnRlbF9kZXZpY2VfaW5mby5oIgorI2luY2x1ZGUgImludGVsX3BjaC5oIgogI2luY2x1ZGUgImludGVsX3J1bnRpbWVfcG0uaCIKLSNpbmNsdWRlICJpbnRlbF91Yy5oIgogI2luY2x1ZGUgImludGVsX3VuY29yZS5oIgogI2luY2x1ZGUgImludGVsX3dha2VyZWYuaCIKICNpbmNsdWRlICJpbnRlbF93b3BjbS5oIgogCiAjaW5jbHVkZSAiaTkxNV9nZW0uaCIKLSNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY29udGV4dF90eXBlcy5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX2ZlbmNlX3JlZy5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX2d0dC5oIgogI2luY2x1ZGUgImk5MTVfZ3B1X2Vycm9yLmgiCiAjaW5jbHVkZSAiaTkxNV9yZXF1ZXN0LmgiCiAjaW5jbHVkZSAiaTkxNV9zY2hlZHVsZXIuaCIKLSNpbmNsdWRlICJpOTE1X3RpbWVsaW5lLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfdGltZWxpbmUuaCIKICNpbmNsdWRlICJpOTE1X3ZtYS5oIgorI2luY2x1ZGUgImk5MTVfaXJxLmgiCiAKICNpbmNsdWRlICJpbnRlbF9ndnQuaCIKIApAQCAtOTgsNDUgKzEwNSw4IEBACiAKICNkZWZpbmUgRFJJVkVSX05BTUUJCSJpOTE1IgogI2RlZmluZSBEUklWRVJfREVTQwkJIkludGVsIEdyYXBoaWNzIgotI2RlZmluZSBEUklWRVJfREFURQkJIjIwMTkwNjE5IgotI2RlZmluZSBEUklWRVJfVElNRVNUQU1QCTE1NjA5NDc1NDQKLQotLyogVXNlIEk5MTVfU1RBVEVfV0FSTih4KSBhbmQgSTkxNV9TVEFURV9XQVJOX09OKCkgKHJhdGhlciB0aGFuIFdBUk4oKSBhbmQKLSAqIFdBUk5fT04oKSkgZm9yIGh3IHN0YXRlIHNhbml0eSBjaGVja3MgdG8gY2hlY2sgZm9yIHVuZXhwZWN0ZWQgY29uZGl0aW9ucwotICogd2hpY2ggbWF5IG5vdCBuZWNlc3NhcmlseSBiZSBhIHVzZXIgdmlzaWJsZSBwcm9ibGVtLiAgVGhpcyB3aWxsIGVpdGhlcgotICogV0FSTigpIG9yIERSTV9FUlJPUigpIGRlcGVuZGluZyBvbiB0aGUgdmVyYm9zZV9jaGVja3MgbW9kdWxlcGFyYW0sIHRvCi0gKiBlbmFibGUgZGlzdHJvcyBhbmQgdXNlcnMgdG8gdGFpbG9yIHRoZWlyIHByZWZlcnJlZCBhbW91bnQgb2YgaTkxNSBhYnJ0Ci0gKiBzcGFtLgotICovCi0jZGVmaW5lIEk5MTVfU1RBVEVfV0FSTihjb25kaXRpb24sIGZvcm1hdC4uLikgKHsJCQlcCi0JaW50IF9fcmV0X3dhcm5fb24gPSAhIShjb25kaXRpb24pOwkJCQlcCi0JaWYgKHVubGlrZWx5KF9fcmV0X3dhcm5fb24pKQkJCQkJXAotCQlpZiAoIVdBUk4oaTkxNV9tb2RwYXJhbXMudmVyYm9zZV9zdGF0ZV9jaGVja3MsIGZvcm1hdCkpCVwKLQkJCURSTV9FUlJPUihmb3JtYXQpOwkJCQlcCi0JdW5saWtlbHkoX19yZXRfd2Fybl9vbik7CQkJCQlcCi19KQotCi0jZGVmaW5lIEk5MTVfU1RBVEVfV0FSTl9PTih4KQkJCQkJCVwKLQlJOTE1X1NUQVRFX1dBUk4oKHgpLCAiJXMiLCAiV0FSTl9PTigiIF9fc3RyaW5naWZ5KHgpICIpIikKLQotI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHKQotCi1ib29sIF9faTkxNV9pbmplY3RfbG9hZF9mYWlsdXJlKGNvbnN0IGNoYXIgKmZ1bmMsIGludCBsaW5lKTsKLSNkZWZpbmUgaTkxNV9pbmplY3RfbG9hZF9mYWlsdXJlKCkgXAotCV9faTkxNV9pbmplY3RfbG9hZF9mYWlsdXJlKF9fZnVuY19fLCBfX0xJTkVfXykKLQotYm9vbCBpOTE1X2Vycm9yX2luamVjdGVkKHZvaWQpOwotCi0jZWxzZQotCi0jZGVmaW5lIGk5MTVfaW5qZWN0X2xvYWRfZmFpbHVyZSgpIGZhbHNlCi0jZGVmaW5lIGk5MTVfZXJyb3JfaW5qZWN0ZWQoKSBmYWxzZQotCi0jZW5kaWYKLQotI2RlZmluZSBpOTE1X2xvYWRfZXJyb3IoaTkxNSwgZm10LCAuLi4pCQkJCQkgXAotCV9faTkxNV9wcmludGsoaTkxNSwgaTkxNV9lcnJvcl9pbmplY3RlZCgpID8gS0VSTl9ERUJVRyA6IEtFUk5fRVJSLCBcCi0JCSAgICAgIGZtdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgRFJJVkVSX0RBVEUJCSIyMDE5MDgyMiIKKyNkZWZpbmUgRFJJVkVSX1RJTUVTVEFNUAkxNTY2NDc3OTg4CiAKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0OwogCkBAIC0xNTIsNiArMTIyLDEwIEBAIGVudW0gaHBkX3BpbiB7CiAJSFBEX1BPUlRfRCwKIAlIUERfUE9SVF9FLAogCUhQRF9QT1JUX0YsCisJSFBEX1BPUlRfRywKKwlIUERfUE9SVF9ILAorCUhQRF9QT1JUX0ksCisKIAlIUERfTlVNX1BJTlMKIH07CiAKQEAgLTE2Miw3ICsxMzYsNyBAQCBlbnVtIGhwZF9waW4gewogI2RlZmluZSBIUERfU1RPUk1fREVGQVVMVF9USFJFU0hPTEQgNTAKIAogc3RydWN0IGk5MTVfaG90cGx1ZyB7Ci0Jc3RydWN0IHdvcmtfc3RydWN0IGhvdHBsdWdfd29yazsKKwlzdHJ1Y3QgZGVsYXllZF93b3JrIGhvdHBsdWdfd29yazsKIAogCXN0cnVjdCB7CiAJCXVuc2lnbmVkIGxvbmcgbGFzdF9qaWZmaWVzOwpAQCAtMTc0LDYgKzE0OCw3IEBAIHN0cnVjdCBpOTE1X2hvdHBsdWcgewogCQl9IHN0YXRlOwogCX0gc3RhdHNbSFBEX05VTV9QSU5TXTsKIAl1MzIgZXZlbnRfYml0czsKKwl1MzIgcmV0cnlfYml0czsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIHJlZW5hYmxlX3dvcms7CiAKIAl1MzIgbG9uZ19wb3J0X21hc2s7CkBAIC0yODYsMTQgKzI2MSwxNCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7CiAJCQkgIGVudW0gcGlwZSBwaXBlKTsKIAlpbnQgKCpnZXRfZmlmb19zaXplKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgIGVudW0gaTl4eF9wbGFuZV9pZCBpOXh4X3BsYW5lKTsKLQlpbnQgKCpjb21wdXRlX3BpcGVfd20pKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOwotCWludCAoKmNvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUpOworCWludCAoKmNvbXB1dGVfcGlwZV93bSkoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOworCWludCAoKmNvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiAJdm9pZCAoKmluaXRpYWxfd2F0ZXJtYXJrcykoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7CisJCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwogCXZvaWQgKCphdG9taWNfdXBkYXRlX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7CisJCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiAJdm9pZCAoKm9wdGltaXplX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKTsKKwkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwogCWludCAoKmNvbXB1dGVfZ2xvYmFsX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIAl2b2lkICgqdXBkYXRlX3dtKShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7CiAJaW50ICgqbW9kZXNldF9jYWxjX2NkY2xrKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSk7CkBAIC0zMDYsMTAgKzI4MSwxMCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7CiAJaW50ICgqY3J0Y19jb21wdXRlX2Nsb2NrKShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKIAl2b2lkICgqY3J0Y19lbmFibGUpKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKLQkJCSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKTsKKwkJCSAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpOwogCXZvaWQgKCpjcnRjX2Rpc2FibGUpKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKLQkJCSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSk7Ci0Jdm9pZCAoKnVwZGF0ZV9jcnRjcykoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKKwkJCSAgICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKTsKKwl2b2lkICgqdXBkYXRlX2NydGNzKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSk7CiAJdm9pZCAoKmF1ZGlvX2NvZGVjX2VuYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOwpAQCAtNTE5LDI0ICs0OTQsNiBAQCBzdHJ1Y3QgaTkxNV9wc3IgewogCXUxNiBzdV94X2dyYW51bGFyaXR5OwogfTsKIAotLyoKLSAqIFNvcnRlZCBieSBzb3V0aCBkaXNwbGF5IGVuZ2luZSBjb21wYXRpYmlsaXR5LgotICogSWYgdGhlIG5ldyBQQ0ggY29tZXMgd2l0aCBhIHNvdXRoIGRpc3BsYXkgZW5naW5lIHRoYXQgaXMgbm90Ci0gKiBpbmhlcml0ZWQgZnJvbSB0aGUgbGF0ZXN0IGl0ZW0sIHBsZWFzZSBkbyBub3QgYWRkIGl0IHRvIHRoZQotICogZW5kLiBJbnN0ZWFkLCBhZGQgaXQgcmlnaHQgYWZ0ZXIgaXRzICJwYXJlbnQiIFBDSC4KLSAqLwotZW51bSBpbnRlbF9wY2ggewotCVBDSF9OT1AgPSAtMSwJLyogUENIIHdpdGhvdXQgc291dGggZGlzcGxheSAqLwotCVBDSF9OT05FID0gMCwJLyogTm8gUENIIHByZXNlbnQgKi8KLQlQQ0hfSUJYLAkvKiBJYmV4cGVhayBQQ0ggKi8KLQlQQ0hfQ1BULAkvKiBDb3VnYXJwb2ludC9QYW50aGVycG9pbnQgUENIICovCi0JUENIX0xQVCwJLyogTHlueHBvaW50L1dpbGRjYXRwb2ludCBQQ0ggKi8KLQlQQ0hfU1BULCAgICAgICAgLyogU3VucmlzZXBvaW50L0thYnkgTGFrZSBQQ0ggKi8KLQlQQ0hfQ05QLCAgICAgICAgLyogQ2Fubm9uL0NvbWV0IExha2UgUENIICovCi0JUENIX0lDUCwJLyogSWNlIExha2UgUENIICovCi0JUENIX01DQywgICAgICAgIC8qIE11bGUgQ3JlZWsgQ2FueW9uIFBDSCAqLwotfTsKLQogI2RlZmluZSBRVUlSS19MVkRTX1NTQ19ESVNBQkxFICgxPDwxKQogI2RlZmluZSBRVUlSS19JTlZFUlRfQlJJR0hUTkVTUyAoMTw8MikKICNkZWZpbmUgUVVJUktfQkFDS0xJR0hUX1BSRVNFTlQgKDE8PDMpCkBAIC01NzAsNjcgKzUyNyw3IEBAIHN0cnVjdCBpOTE1X3N1c3BlbmRfc2F2ZWRfcmVnaXN0ZXJzIHsKIAl1MTYgc2F2ZUdDREdNQlVTOwogfTsKIAotc3RydWN0IHZsdl9zMGl4X3N0YXRlIHsKLQkvKiBHQU0gKi8KLQl1MzIgd3Jfd2F0ZXJtYXJrOwotCXUzMiBnZnhfcHJpb19jdHJsOwotCXUzMiBhcmJfbW9kZTsKLQl1MzIgZ2Z4X3BlbmRfdGxiMDsKLQl1MzIgZ2Z4X3BlbmRfdGxiMTsKLQl1MzIgbHJhX2xpbWl0c1tHRU43X0xSQV9MSU1JVFNfUkVHX05VTV07Ci0JdTMyIG1lZGlhX21heF9yZXFfY291bnQ7Ci0JdTMyIGdmeF9tYXhfcmVxX2NvdW50OwotCXUzMiByZW5kZXJfaHdzcDsKLQl1MzIgZWNvY2hrOwotCXUzMiBic2RfaHdzcDsKLQl1MzIgYmx0X2h3c3A7Ci0JdTMyIHRsYl9yZF9hZGRyOwotCi0JLyogTUJDICovCi0JdTMyIGczZGN0bDsKLQl1MzIgZ3Nja2djdGw7Ci0JdTMyIG1iY3RsOwotCi0JLyogR0NQICovCi0JdTMyIHVjZ2N0bDE7Ci0JdTMyIHVjZ2N0bDM7Ci0JdTMyIHJjZ2N0bDE7Ci0JdTMyIHJjZ2N0bDI7Ci0JdTMyIHJzdGN0bDsKLQl1MzIgbWlzY2NwY3RsOwotCi0JLyogR1BNICovCi0JdTMyIGdmeHBhdXNlOwotCXUzMiBycGRldWh3dGM7Ci0JdTMyIHJwZGV1YzsKLQl1MzIgZWNvYnVzOwotCXUzMiBwd3Jkd251cGN0bDsKLQl1MzIgcnBfZG93bl90aW1lb3V0OwotCXUzMiBycF9kZXVjc3c7Ci0JdTMyIHJjdWJtYWJkdG1yOwotCXUzMiByY2VkYXRhOwotCXUzMiBzcGFyZTJnaDsKLQotCS8qIERpc3BsYXkgMSBDWiBkb21haW4gKi8KLQl1MzIgZ3RfaW1yOwotCXUzMiBndF9pZXI7Ci0JdTMyIHBtX2ltcjsKLQl1MzIgcG1faWVyOwotCXUzMiBndF9zY3JhdGNoW0dFTjdfR1RfU0NSQVRDSF9SRUdfTlVNXTsKLQotCS8qIEdUIFNBIENaIGRvbWFpbiAqLwotCXUzMiB0aWxlY3RsOwotCXUzMiBndF9maWZvY3RsOwotCXUzMiBndGxjX3dha2VfY3RybDsKLQl1MzIgZ3RsY19zdXJ2aXZlOwotCXUzMiBwbXdnaWN6OwotCi0JLyogRGlzcGxheSAyIENaIGRvbWFpbiAqLwotCXUzMiBndV9jdGwwOwotCXUzMiBndV9jdGwxOwotCXUzMiBwY2JyOwotCXUzMiBjbG9ja19nYXRlX2RpczI7Ci19Oworc3RydWN0IHZsdl9zMGl4X3N0YXRlOwogCiBzdHJ1Y3QgaW50ZWxfcnBzX2VpIHsKIAlrdGltZV90IGt0aW1lOwpAQCAtNzY0LDcgKzY2MSw2IEBAIHN0cnVjdCBpOTE1X2dlbV9tbSB7CiAJICovCiAJc3RydWN0IGxsaXN0X2hlYWQgZnJlZV9saXN0OwogCXN0cnVjdCB3b3JrX3N0cnVjdCBmcmVlX3dvcms7Ci0Jc3BpbmxvY2tfdCBmcmVlX2xvY2s7CiAJLyoqCiAJICogQ291bnQgb2Ygb2JqZWN0cyBwZW5kaW5nIGRlc3RydWN0aW9ucy4gVXNlZCB0byBza2lwIG5lZWRsZXNzbHkKIAkgKiB3YWl0aW5nIG9uIGFuIFJDVSBiYXJyaWVyIGlmIG5vIG9iamVjdHMgYXJlIHdhaXRpbmcgdG8gYmUgZnJlZWQuCkBAIC03ODEsOSArNjc3LDYgQEAgc3RydWN0IGk5MTVfZ2VtX21tIHsKIAkgKi8KIAlzdHJ1Y3QgdmZzbW91bnQgKmdlbWZzOwogCi0JLyoqIFBQR1RUIHVzZWQgZm9yIGFsaWFzaW5nIHRoZSBQUEdUVCB3aXRoIHRoZSBHVFQgKi8KLQlzdHJ1Y3QgaTkxNV9wcGd0dCAqYWxpYXNpbmdfcHBndHQ7Ci0KIAlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgb29tX25vdGlmaWVyOwogCXN0cnVjdCBub3RpZmllcl9ibG9jayB2bWFwX25vdGlmaWVyOwogCXN0cnVjdCBzaHJpbmtlciBzaHJpbmtlcjsKQEAgLTc5NSwxMSArNjg4LDYgQEAgc3RydWN0IGk5MTVfZ2VtX21tIHsKIAkgKi8KIAlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqdXNlcnB0cl93cTsKIAotCXU2NCB1bm9yZGVyZWRfdGltZWxpbmU7Ci0KLQkvKiB0aGUgaW5kaWNhdG9yIGZvciBkaXNwYXRjaCB2aWRlbyBjb21tYW5kcyBvbiB0d28gQlNEIHJpbmdzICovCi0JYXRvbWljX3QgYnNkX2VuZ2luZV9kaXNwYXRjaF9pbmRleDsKLQogCS8qKiBCaXQgNiBzd2l6emxpbmcgcmVxdWlyZWQgZm9yIFggdGlsaW5nICovCiAJdTMyIGJpdF82X3N3aXp6bGVfeDsKIAkvKiogQml0IDYgc3dpenpsaW5nIHJlcXVpcmVkIGZvciBZIHRpbGluZyAqLwpAQCAtMTA3Myw2ICs5NjEsNyBAQCBzdHJ1Y3QgaTkxNV9mcm9udGJ1ZmZlcl90cmFja2luZyB7CiB9OwogCiBzdHJ1Y3QgaTkxNV92aXJ0dWFsX2dwdSB7CisJc3RydWN0IG11dGV4IGxvY2s7IC8qIHNlcmlhbGlzZXMgc2VuZGluZyBvZiBnMnZfbm90aWZ5IGNvbW1hbmQgcGt0cyAqLwogCWJvb2wgYWN0aXZlOwogCXUzMiBjYXBzOwogfTsKQEAgLTEyMzUsNiArMTEyNCw4NiBAQCBzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSB7CiAJICogQG9hX2NvbmZpZzogVGhlIE9BIGNvbmZpZ3VyYXRpb24gdXNlZCBieSB0aGUgc3RyZWFtLgogCSAqLwogCXN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnOworCisJLyoqCisJICogVGhlIE9BIGNvbnRleHQgc3BlY2lmaWMgaW5mb3JtYXRpb24uCisJICovCisJc3RydWN0IGludGVsX2NvbnRleHQgKnBpbm5lZF9jdHg7CisJdTMyIHNwZWNpZmljX2N0eF9pZDsKKwl1MzIgc3BlY2lmaWNfY3R4X2lkX21hc2s7CisKKwlzdHJ1Y3QgaHJ0aW1lciBwb2xsX2NoZWNrX3RpbWVyOworCXdhaXRfcXVldWVfaGVhZF90IHBvbGxfd3E7CisJYm9vbCBwb2xsaW47CisKKwlib29sIHBlcmlvZGljOworCWludCBwZXJpb2RfZXhwb25lbnQ7CisKKwkvKioKKwkgKiBTdGF0ZSBvZiB0aGUgT0EgYnVmZmVyLgorCSAqLworCXN0cnVjdCB7CisJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCQl1OCAqdmFkZHI7CisJCXUzMiBsYXN0X2N0eF9pZDsKKwkJaW50IGZvcm1hdDsKKwkJaW50IGZvcm1hdF9zaXplOworCQlpbnQgc2l6ZV9leHBvbmVudDsKKworCQkvKioKKwkJICogTG9ja3MgcmVhZHMgYW5kIHdyaXRlcyB0byBhbGwgaGVhZC90YWlsIHN0YXRlCisJCSAqCisJCSAqIENvbnNpZGVyOiB0aGUgaGVhZCBhbmQgdGFpbCBwb2ludGVyIHN0YXRlIG5lZWRzIHRvIGJlIHJlYWQKKwkJICogY29uc2lzdGVudGx5IGZyb20gYSBocnRpbWVyIGNhbGxiYWNrIChhdG9taWMgY29udGV4dCkgYW5kCisJCSAqIHJlYWQoKSBmb3AgKHVzZXIgY29udGV4dCkgd2l0aCB0YWlsIHBvaW50ZXIgdXBkYXRlcyBoYXBwZW5pbmcKKwkJICogaW4gYXRvbWljIGNvbnRleHQgYW5kIGhlYWQgdXBkYXRlcyBpbiB1c2VyIGNvbnRleHQgYW5kIHRoZQorCQkgKiAodW5saWtlbHkpIHBvc3NpYmlsaXR5IG9mIHJlYWQoKSBlcnJvcnMgbmVlZGluZyB0byByZXNldCBhbGwKKwkJICogaGVhZC90YWlsIHN0YXRlLgorCQkgKgorCQkgKiBOb3RlOiBDb250ZW50aW9uL3BlcmZvcm1hbmNlIGFyZW4ndCBjdXJyZW50bHkgYSBzaWduaWZpY2FudAorCQkgKiBjb25jZXJuIGhlcmUgY29uc2lkZXJpbmcgdGhlIHJlbGF0aXZlbHkgbG93IGZyZXF1ZW5jeSBvZgorCQkgKiBocnRpbWVyIGNhbGxiYWNrcyAoNW1zIHBlcmlvZCkgYW5kIHRoYXQgcmVhZHMgdHlwaWNhbGx5IG9ubHkKKwkJICogaGFwcGVuIGluIHJlc3BvbnNlIHRvIGEgaHJ0aW1lciBldmVudCBhbmQgbGlrZWx5IGNvbXBsZXRlCisJCSAqIGJlZm9yZSB0aGUgbmV4dCBjYWxsYmFjay4KKwkJICoKKwkJICogTm90ZTogVGhpcyBsb2NrIGlzIG5vdCBoZWxkICp3aGlsZSogcmVhZGluZyBhbmQgY29weWluZyBkYXRhCisJCSAqIHRvIHVzZXJzcGFjZSBzbyB0aGUgdmFsdWUgb2YgaGVhZCBvYnNlcnZlZCBpbiBodHJpbWVyCisJCSAqIGNhbGxiYWNrcyB3b24ndCByZXByZXNlbnQgYW55IHBhcnRpYWwgY29uc3VtcHRpb24gb2YgZGF0YS4KKwkJICovCisJCXNwaW5sb2NrX3QgcHRyX2xvY2s7CisKKwkJLyoqCisJCSAqIE9uZSAnYWdpbmcnIHRhaWwgcG9pbnRlciBhbmQgb25lICdhZ2VkJyB0YWlsIHBvaW50ZXIgcmVhZHkgdG8KKwkJICogdXNlZCBmb3IgcmVhZGluZy4KKwkJICoKKwkJICogSW5pdGlhbCB2YWx1ZXMgb2YgMHhmZmZmZmZmZiBhcmUgaW52YWxpZCBhbmQgaW1wbHkgdGhhdCBhbgorCQkgKiB1cGRhdGUgaXMgcmVxdWlyZWQgKGFuZCBzaG91bGQgYmUgaWdub3JlZCBieSBhbiBhdHRlbXB0ZWQKKwkJICogcmVhZCkKKwkJICovCisJCXN0cnVjdCB7CisJCQl1MzIgb2Zmc2V0OworCQl9IHRhaWxzWzJdOworCisJCS8qKgorCQkgKiBJbmRleCBmb3IgdGhlIGFnZWQgdGFpbCByZWFkeSB0byByZWFkKCkgZGF0YSB1cCB0by4KKwkJICovCisJCXVuc2lnbmVkIGludCBhZ2VkX3RhaWxfaWR4OworCisJCS8qKgorCQkgKiBBIG1vbm90b25pYyB0aW1lc3RhbXAgZm9yIHdoZW4gdGhlIGN1cnJlbnQgYWdpbmcgdGFpbCBwb2ludGVyCisJCSAqIHdhcyByZWFkOyB1c2VkIHRvIGRldGVybWluZSB3aGVuIGl0IGlzIG9sZCBlbm91Z2ggdG8gdHJ1c3QuCisJCSAqLworCQl1NjQgYWdpbmdfdGltZXN0YW1wOworCisJCS8qKgorCQkgKiBBbHRob3VnaCB3ZSBjYW4gYWx3YXlzIHJlYWQgYmFjayB0aGUgaGVhZCBwb2ludGVyIHJlZ2lzdGVyLAorCQkgKiB3ZSBwcmVmZXIgdG8gYXZvaWQgdHJ1c3RpbmcgdGhlIEhXIHN0YXRlLCBqdXN0IHRvIGF2b2lkIGFueQorCQkgKiByaXNrIHRoYXQgc29tZSBoYXJkd2FyZSBjb25kaXRpb24gY291bGQgKiBzb21laG93IGJ1bXAgdGhlCisJCSAqIGhlYWQgcG9pbnRlciB1bnByZWRpY3RhYmx5IGFuZCBjYXVzZSB1cyB0byBmb3J3YXJkIHRoZSB3cm9uZworCQkgKiBPQSBidWZmZXIgZGF0YSB0byB1c2Vyc3BhY2UuCisJCSAqLworCQl1MzIgaGVhZDsKKwl9IG9hX2J1ZmZlcjsKIH07CiAKIC8qKgpAQCAtMTI3Miw3ICsxMjQxLDcgQEAgc3RydWN0IGk5MTVfb2Ffb3BzIHsKIAkgKiBAZGlzYWJsZV9tZXRyaWNfc2V0OiBSZW1vdmUgc3lzdGVtIGNvbnN0cmFpbnRzIGFzc29jaWF0ZWQgd2l0aCB1c2luZwogCSAqIHRoZSBPQSB1bml0LgogCSAqLwotCXZvaWQgKCpkaXNhYmxlX21ldHJpY19zZXQpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisJdm9pZCAoKmRpc2FibGVfbWV0cmljX3NldCkoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSk7CiAKIAkvKioKIAkgKiBAb2FfZW5hYmxlOiBFbmFibGUgcGVyaW9kaWMgc2FtcGxpbmcKQEAgLTEzMDAsNyArMTI2OSw3IEBAIHN0cnVjdCBpOTE1X29hX29wcyB7CiAJICogaGFuZGxpbmcgdGhlIE9BIHVuaXQgdGFpbCBwb2ludGVyIHJhY2UgdGhhdCBhZmZlY3RzIG11bHRpcGxlCiAJICogZ2VuZXJhdGlvbnMuCiAJICovCi0JdTMyICgqb2FfaHdfdGFpbF9yZWFkKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCXUzMiAoKm9hX2h3X3RhaWxfcmVhZCkoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSk7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgewpAQCAtMTM0MCw2ICsxMzA5LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXJlc291cmNlX3NpemVfdCBzdG9sZW5fdXNhYmxlX3NpemU7CS8qIFRvdGFsIHNpemUgbWludXMgcmVzZXJ2ZWQgcmFuZ2VzICovCiAKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlIHVuY29yZTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlX21taW9fZGVidWcgbW1pb19kZWJ1ZzsKIAogCXN0cnVjdCBpOTE1X3ZpcnR1YWxfZ3B1IHZncHU7CiAKQEAgLTEzNDcsOSArMTMxNyw2IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAogCXN0cnVjdCBpbnRlbF93b3BjbSB3b3BjbTsKIAotCXN0cnVjdCBpbnRlbF9odWMgaHVjOwotCXN0cnVjdCBpbnRlbF9ndWMgZ3VjOwotCiAJc3RydWN0IGludGVsX2NzciBjc3I7CiAKIAlzdHJ1Y3QgaW50ZWxfZ21idXMgZ21idXNbR01CVVNfTlVNX1BJTlNdOwpAQCAtMTM3NCwxMyArMTM0MSwxMiBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJd2FpdF9xdWV1ZV9oZWFkX3QgZ21idXNfd2FpdF9xdWV1ZTsKIAogCXN0cnVjdCBwY2lfZGV2ICpicmlkZ2VfZGV2OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZVtJOTE1X05VTV9FTkdJTkVTXTsKKwogCS8qIENvbnRleHQgdXNlZCBpbnRlcm5hbGx5IHRvIGlkbGUgdGhlIEdQVSBhbmQgc2V0dXAgaW5pdGlhbCBzdGF0ZSAqLwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICprZXJuZWxfY29udGV4dDsKLQkvKiBDb250ZXh0IG9ubHkgdG8gYmUgdXNlZCBmb3IgaW5qZWN0aW5nIHByZWVtcHRpb24gY29tbWFuZHMgKi8KLQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqcHJlZW1wdF9jb250ZXh0OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZV9jbGFzc1tNQVhfRU5HSU5FX0NMQVNTICsgMV0KLQkJCQkJICAgIFtNQVhfRU5HSU5FX0lOU1RBTkNFICsgMV07CisKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmVbSTkxNV9OVU1fRU5HSU5FU107CisJc3RydWN0IHJiX3Jvb3QgdWFiaV9lbmdpbmVzOwogCiAJc3RydWN0IHJlc291cmNlIG1jaF9yZXM7CiAKQEAgLTE0MDEsMTEgKzEzNjcsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJCXUzMiBpcnFfbWFzazsKIAkJdTMyIGRlX2lycV9tYXNrW0k5MTVfTUFYX1BJUEVTXTsKIAl9OwotCXUzMiBndF9pcnFfbWFzazsKLQl1MzIgcG1faW1yOwotCXUzMiBwbV9pZXI7CiAJdTMyIHBtX3Jwc19ldmVudHM7Ci0JdTMyIHBtX2d1Y19ldmVudHM7CiAJdTMyIHBpcGVzdGF0X2lycV9tYXNrW0k5MTVfTUFYX1BJUEVTXTsKIAogCXN0cnVjdCBpOTE1X2hvdHBsdWcgaG90cGx1ZzsKQEAgLTE0MjIsOSArMTM4NCw2IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkvKiBiYWNrbGlnaHQgcmVnaXN0ZXJzIGFuZCBmaWVsZHMgaW4gc3RydWN0IGludGVsX3BhbmVsICovCiAJc3RydWN0IG11dGV4IGJhY2tsaWdodF9sb2NrOwogCi0JLyogTFZEUyBpbmZvICovCi0JYm9vbCBub19hdXhfaGFuZHNoYWtlOwotCiAJLyogcHJvdGVjdHMgcGFuZWwgcG93ZXIgc2VxdWVuY2VyIHN0YXRlICovCiAJc3RydWN0IG11dGV4IHBwc19tdXRleDsKIApAQCAtMTQ4OCw4ICsxNDQ3LDYgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCURFQ0xBUkVfSEFTSFRBQkxFKG1tX3N0cnVjdHMsIDcpOwogCXN0cnVjdCBtdXRleCBtbV9sb2NrOwogCi0Jc3RydWN0IGludGVsX3BwYXQgcHBhdDsKLQogCS8qIEtlcm5lbCBNb2Rlc2V0dGluZyAqLwogCiAJc3RydWN0IGludGVsX2NydGMgKnBsYW5lX3RvX2NydGNfbWFwcGluZ1tJOTE1X01BWF9QSVBFU107CkBAIC0xNTg2LDYgKzE1NDMsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAjZGVmaW5lIE1BWF9DT05URVhUX0hXX0lEICgxPDwyMSkgLyogZXhjbHVzaXZlICovCiAjZGVmaW5lIE1BWF9HVUNfQ09OVEVYVF9IV19JRCAoMSA8PCAyMCkgLyogZXhjbHVzaXZlICovCiAjZGVmaW5lIEdFTjExX01BWF9DT05URVhUX0hXX0lEICgxPDwxMSkgLyogZXhjbHVzaXZlICovCisvKiBpbiBHZW4xMiBJRCAweDdGRiBpcyByZXNlcnZlZCB0byBpbmRpY2F0ZSBpZGxlICovCisjZGVmaW5lIEdFTjEyX01BWF9DT05URVhUX0hXX0lECShHRU4xMV9NQVhfQ09OVEVYVF9IV19JRCAtIDEpCiAJCXN0cnVjdCBsaXN0X2hlYWQgaHdfaWRfbGlzdDsKIAl9IGNvbnRleHRzOwogCkBAIC0xNjA0LDcgKzE1NjMsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJdTMyIHN1c3BlbmRfY291bnQ7CiAJYm9vbCBwb3dlcl9kb21haW5zX3N1c3BlbmRlZDsKIAlzdHJ1Y3QgaTkxNV9zdXNwZW5kX3NhdmVkX3JlZ2lzdGVycyByZWdmaWxlOwotCXN0cnVjdCB2bHZfczBpeF9zdGF0ZSB2bHZfczBpeF9zdGF0ZTsKKwlzdHJ1Y3Qgdmx2X3MwaXhfc3RhdGUgKnZsdl9zMGl4X3N0YXRlOwogCiAJZW51bSB7CiAJCUk5MTVfU0FHVl9VTktOT1dOID0gMCwKQEAgLTE2NDUsNyArMTYwNCw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJLyoKIAkJICogU2hvdWxkIGJlIGhlbGQgYXJvdW5kIGF0b21pYyBXTSByZWdpc3RlciB3cml0aW5nOyBhbHNvCiAJCSAqIHByb3RlY3RzICogaW50ZWxfY3J0Yy0+d20uYWN0aXZlIGFuZAotCQkgKiBjc3RhdGUtPndtLm5lZWRfcG9zdHZibF91cGRhdGUuCisJCSAqIGNydGNfc3RhdGUtPndtLm5lZWRfcG9zdHZibF91cGRhdGUuCiAJCSAqLwogCQlzdHJ1Y3QgbXV0ZXggd21fbXV0ZXg7CiAKQEAgLTE3MDgsMTU1ICsxNjY3LDM5IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJc3RydWN0IG11dGV4IGxvY2s7CiAJCXN0cnVjdCBsaXN0X2hlYWQgc3RyZWFtczsKIAotCQlzdHJ1Y3QgewotCQkJLyoKLQkJCSAqIFRoZSBzdHJlYW0gY3VycmVudGx5IHVzaW5nIHRoZSBPQSB1bml0LiBJZiBhY2Nlc3NlZAotCQkJICogb3V0c2lkZSBhIHN5c2NhbGwgYXNzb2NpYXRlZCB0byBpdHMgZmlsZQotCQkJICogZGVzY3JpcHRvciwgeW91IG5lZWQgdG8gaG9sZAotCQkJICogZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXguCi0JCQkgKi8KLQkJCXN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpleGNsdXNpdmVfc3RyZWFtOworCQkvKgorCQkgKiBUaGUgc3RyZWFtIGN1cnJlbnRseSB1c2luZyB0aGUgT0EgdW5pdC4gSWYgYWNjZXNzZWQKKwkJICogb3V0c2lkZSBhIHN5c2NhbGwgYXNzb2NpYXRlZCB0byBpdHMgZmlsZQorCQkgKiBkZXNjcmlwdG9yLCB5b3UgbmVlZCB0byBob2xkCisJCSAqIGRldl9wcml2LT5kcm0uc3RydWN0X211dGV4LgorCQkgKi8KKwkJc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKmV4Y2x1c2l2ZV9zdHJlYW07CiAKLQkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpwaW5uZWRfY3R4OwotCQkJdTMyIHNwZWNpZmljX2N0eF9pZDsKLQkJCXUzMiBzcGVjaWZpY19jdHhfaWRfbWFzazsKKwkJLyoqCisJCSAqIEZvciByYXRlIGxpbWl0aW5nIGFueSBub3RpZmljYXRpb25zIG9mIHNwdXJpb3VzCisJCSAqIGludmFsaWQgT0EgcmVwb3J0cworCQkgKi8KKwkJc3RydWN0IHJhdGVsaW1pdF9zdGF0ZSBzcHVyaW91c19yZXBvcnRfcnM7CiAKLQkJCXN0cnVjdCBocnRpbWVyIHBvbGxfY2hlY2tfdGltZXI7Ci0JCQl3YWl0X3F1ZXVlX2hlYWRfdCBwb2xsX3dxOwotCQkJYm9vbCBwb2xsaW47CisJCXN0cnVjdCBpOTE1X29hX2NvbmZpZyB0ZXN0X2NvbmZpZzsKIAotCQkJLyoqCi0JCQkgKiBGb3IgcmF0ZSBsaW1pdGluZyBhbnkgbm90aWZpY2F0aW9ucyBvZiBzcHVyaW91cwotCQkJICogaW52YWxpZCBPQSByZXBvcnRzCi0JCQkgKi8KLQkJCXN0cnVjdCByYXRlbGltaXRfc3RhdGUgc3B1cmlvdXNfcmVwb3J0X3JzOworCQl1MzIgZ2VuN19sYXRjaGVkX29hc3RhdHVzMTsKKwkJdTMyIGN0eF9vYWN0eGN0cmxfb2Zmc2V0OworCQl1MzIgY3R4X2ZsZXhldTBfb2Zmc2V0OwogCi0JCQlib29sIHBlcmlvZGljOwotCQkJaW50IHBlcmlvZF9leHBvbmVudDsKKwkJLyoqCisJCSAqIFRoZSBSUFRfSUQvcmVhc29uIGZpZWxkIGZvciBHZW44KyBpbmNsdWRlcyBhIGJpdAorCQkgKiB0byBkZXRlcm1pbmUgaWYgdGhlIENUWCBJRCBpbiB0aGUgcmVwb3J0IGlzIHZhbGlkCisJCSAqIGJ1dCB0aGUgc3BlY2lmaWMgYml0IGRpZmZlcnMgYmV0d2VlbiBHZW4gOCBhbmQgOQorCQkgKi8KKwkJdTMyIGdlbjhfdmFsaWRfY3R4X2JpdDsKIAotCQkJc3RydWN0IGk5MTVfb2FfY29uZmlnIHRlc3RfY29uZmlnOwotCi0JCQlzdHJ1Y3QgewotCQkJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCQkJCXU4ICp2YWRkcjsKLQkJCQl1MzIgbGFzdF9jdHhfaWQ7Ci0JCQkJaW50IGZvcm1hdDsKLQkJCQlpbnQgZm9ybWF0X3NpemU7Ci0KLQkJCQkvKioKLQkJCQkgKiBMb2NrcyByZWFkcyBhbmQgd3JpdGVzIHRvIGFsbCBoZWFkL3RhaWwgc3RhdGUKLQkJCQkgKgotCQkJCSAqIENvbnNpZGVyOiB0aGUgaGVhZCBhbmQgdGFpbCBwb2ludGVyIHN0YXRlCi0JCQkJICogbmVlZHMgdG8gYmUgcmVhZCBjb25zaXN0ZW50bHkgZnJvbSBhIGhydGltZXIKLQkJCQkgKiBjYWxsYmFjayAoYXRvbWljIGNvbnRleHQpIGFuZCByZWFkKCkgZm9wCi0JCQkJICogKHVzZXIgY29udGV4dCkgd2l0aCB0YWlsIHBvaW50ZXIgdXBkYXRlcwotCQkJCSAqIGhhcHBlbmluZyBpbiBhdG9taWMgY29udGV4dCBhbmQgaGVhZCB1cGRhdGVzCi0JCQkJICogaW4gdXNlciBjb250ZXh0IGFuZCB0aGUgKHVubGlrZWx5KQotCQkJCSAqIHBvc3NpYmlsaXR5IG9mIHJlYWQoKSBlcnJvcnMgbmVlZGluZyB0bwotCQkJCSAqIHJlc2V0IGFsbCBoZWFkL3RhaWwgc3RhdGUuCi0JCQkJICoKLQkJCQkgKiBOb3RlOiBDb250ZW50aW9uIG9yIHBlcmZvcm1hbmNlIGFyZW4ndAotCQkJCSAqIGN1cnJlbnRseSBhIHNpZ25pZmljYW50IGNvbmNlcm4gaGVyZQotCQkJCSAqIGNvbnNpZGVyaW5nIHRoZSByZWxhdGl2ZWx5IGxvdyBmcmVxdWVuY3kgb2YKLQkJCQkgKiBocnRpbWVyIGNhbGxiYWNrcyAoNW1zIHBlcmlvZCkgYW5kIHRoYXQKLQkJCQkgKiByZWFkcyB0eXBpY2FsbHkgb25seSBoYXBwZW4gaW4gcmVzcG9uc2UgdG8gYQotCQkJCSAqIGhydGltZXIgZXZlbnQgYW5kIGxpa2VseSBjb21wbGV0ZSBiZWZvcmUgdGhlCi0JCQkJICogbmV4dCBjYWxsYmFjay4KLQkJCQkgKgotCQkJCSAqIE5vdGU6IFRoaXMgbG9jayBpcyBub3QgaGVsZCAqd2hpbGUqIHJlYWRpbmcKLQkJCQkgKiBhbmQgY29weWluZyBkYXRhIHRvIHVzZXJzcGFjZSBzbyB0aGUgdmFsdWUKLQkJCQkgKiBvZiBoZWFkIG9ic2VydmVkIGluIGh0cmltZXIgY2FsbGJhY2tzIHdvbid0Ci0JCQkJICogcmVwcmVzZW50IGFueSBwYXJ0aWFsIGNvbnN1bXB0aW9uIG9mIGRhdGEuCi0JCQkJICovCi0JCQkJc3BpbmxvY2tfdCBwdHJfbG9jazsKLQotCQkJCS8qKgotCQkJCSAqIE9uZSAnYWdpbmcnIHRhaWwgcG9pbnRlciBhbmQgb25lICdhZ2VkJwotCQkJCSAqIHRhaWwgcG9pbnRlciByZWFkeSB0byB1c2VkIGZvciByZWFkaW5nLgotCQkJCSAqCi0JCQkJICogSW5pdGlhbCB2YWx1ZXMgb2YgMHhmZmZmZmZmZiBhcmUgaW52YWxpZAotCQkJCSAqIGFuZCBpbXBseSB0aGF0IGFuIHVwZGF0ZSBpcyByZXF1aXJlZAotCQkJCSAqIChhbmQgc2hvdWxkIGJlIGlnbm9yZWQgYnkgYW4gYXR0ZW1wdGVkCi0JCQkJICogcmVhZCkKLQkJCQkgKi8KLQkJCQlzdHJ1Y3QgewotCQkJCQl1MzIgb2Zmc2V0OwotCQkJCX0gdGFpbHNbMl07Ci0KLQkJCQkvKioKLQkJCQkgKiBJbmRleCBmb3IgdGhlIGFnZWQgdGFpbCByZWFkeSB0byByZWFkKCkKLQkJCQkgKiBkYXRhIHVwIHRvLgotCQkJCSAqLwotCQkJCXVuc2lnbmVkIGludCBhZ2VkX3RhaWxfaWR4OwotCi0JCQkJLyoqCi0JCQkJICogQSBtb25vdG9uaWMgdGltZXN0YW1wIGZvciB3aGVuIHRoZSBjdXJyZW50Ci0JCQkJICogYWdpbmcgdGFpbCBwb2ludGVyIHdhcyByZWFkOyB1c2VkIHRvCi0JCQkJICogZGV0ZXJtaW5lIHdoZW4gaXQgaXMgb2xkIGVub3VnaCB0byB0cnVzdC4KLQkJCQkgKi8KLQkJCQl1NjQgYWdpbmdfdGltZXN0YW1wOwotCi0JCQkJLyoqCi0JCQkJICogQWx0aG91Z2ggd2UgY2FuIGFsd2F5cyByZWFkIGJhY2sgdGhlIGhlYWQKLQkJCQkgKiBwb2ludGVyIHJlZ2lzdGVyLCB3ZSBwcmVmZXIgdG8gYXZvaWQKLQkJCQkgKiB0cnVzdGluZyB0aGUgSFcgc3RhdGUsIGp1c3QgdG8gYXZvaWQgYW55Ci0JCQkJICogcmlzayB0aGF0IHNvbWUgaGFyZHdhcmUgY29uZGl0aW9uIGNvdWxkCi0JCQkJICogc29tZWhvdyBidW1wIHRoZSBoZWFkIHBvaW50ZXIgdW5wcmVkaWN0YWJseQotCQkJCSAqIGFuZCBjYXVzZSB1cyB0byBmb3J3YXJkIHRoZSB3cm9uZyBPQSBidWZmZXIKLQkJCQkgKiBkYXRhIHRvIHVzZXJzcGFjZS4KLQkJCQkgKi8KLQkJCQl1MzIgaGVhZDsKLQkJCX0gb2FfYnVmZmVyOwotCi0JCQl1MzIgZ2VuN19sYXRjaGVkX29hc3RhdHVzMTsKLQkJCXUzMiBjdHhfb2FjdHhjdHJsX29mZnNldDsKLQkJCXUzMiBjdHhfZmxleGV1MF9vZmZzZXQ7Ci0KLQkJCS8qKgotCQkJICogVGhlIFJQVF9JRC9yZWFzb24gZmllbGQgZm9yIEdlbjgrIGluY2x1ZGVzIGEgYml0Ci0JCQkgKiB0byBkZXRlcm1pbmUgaWYgdGhlIENUWCBJRCBpbiB0aGUgcmVwb3J0IGlzIHZhbGlkCi0JCQkgKiBidXQgdGhlIHNwZWNpZmljIGJpdCBkaWZmZXJzIGJldHdlZW4gR2VuIDggYW5kIDkKLQkJCSAqLwotCQkJdTMyIGdlbjhfdmFsaWRfY3R4X2JpdDsKLQotCQkJc3RydWN0IGk5MTVfb2Ffb3BzIG9wczsKLQkJCWNvbnN0IHN0cnVjdCBpOTE1X29hX2Zvcm1hdCAqb2FfZm9ybWF0czsKLQkJfSBvYTsKKwkJc3RydWN0IGk5MTVfb2Ffb3BzIG9wczsKKwkJY29uc3Qgc3RydWN0IGk5MTVfb2FfZm9ybWF0ICpvYV9mb3JtYXRzOwogCX0gcGVyZjsKIAogCS8qIEFic3RyYWN0IHRoZSBzdWJtaXNzaW9uIG1lY2hhbmlzbSAobGVnYWN5IHJpbmdidWZmZXIgb3IgZXhlY2xpc3RzKSBhd2F5ICovCi0Jc3RydWN0IHsKLQkJc3RydWN0IGk5MTVfZ3RfdGltZWxpbmVzIHsKLQkJCXN0cnVjdCBtdXRleCBtdXRleDsgLyogcHJvdGVjdHMgbGlzdCwgdGFpbnRlZCBieSBHUFUgKi8KLQkJCXN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX2xpc3Q7Ci0KLQkJCS8qIFBhY2sgbXVsdGlwbGUgdGltZWxpbmVzJyBzZXFub3MgaW50byB0aGUgc2FtZSBwYWdlICovCi0JCQlzcGlubG9ja190IGh3c3BfbG9jazsKLQkJCXN0cnVjdCBsaXN0X2hlYWQgaHdzcF9mcmVlX2xpc3Q7Ci0JCX0gdGltZWxpbmVzOwotCi0JCXN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX3JpbmdzOwotCi0JCXN0cnVjdCBpbnRlbF93YWtlcmVmIHdha2VyZWY7Ci0KLQkJc3RydWN0IGxpc3RfaGVhZCBjbG9zZWRfdm1hOwotCQlzcGlubG9ja190IGNsb3NlZF9sb2NrOyAvKiBndWFyZHMgdGhlIGxpc3Qgb2YgY2xvc2VkX3ZtYSAqLwotCi0JCS8qKgotCQkgKiBJcyB0aGUgR1BVIGN1cnJlbnRseSBjb25zaWRlcmVkIGlkbGUsIG9yIGJ1c3kgZXhlY3V0aW5nCi0JCSAqIHVzZXJzcGFjZSByZXF1ZXN0cz8gV2hpbHN0IGlkbGUsIHdlIGFsbG93IHJ1bnRpbWUgcG93ZXIKLQkJICogbWFuYWdlbWVudCB0byBwb3dlciBkb3duIHRoZSBoYXJkd2FyZSBhbmQgZGlzcGxheSBjbG9ja3MuCi0JCSAqIEluIG9yZGVyIHRvIHJlZHVjZSB0aGUgZWZmZWN0IG9uIHBlcmZvcm1hbmNlLCB0aGVyZQotCQkgKiBpcyBhIHNsaWdodCBkZWxheSBiZWZvcmUgd2UgZG8gc28uCi0JCSAqLwotCQlpbnRlbF93YWtlcmVmX3QgYXdha2U7Ci0KLQkJc3RydWN0IGJsb2NraW5nX25vdGlmaWVyX2hlYWQgcG1fbm90aWZpY2F0aW9uczsKLQotCQlrdGltZV90IGxhc3RfaW5pdF90aW1lOwotCi0JCXN0cnVjdCBpOTE1X3ZtYSAqc2NyYXRjaDsKLQl9IGd0OworCXN0cnVjdCBpbnRlbF9ndCBndDsKIAogCXN0cnVjdCB7CiAJCXN0cnVjdCBub3RpZmllcl9ibG9jayBwbV9ub3RpZmllcjsKQEAgLTE5MzMsMjcgKzE3NzYsMTIgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqdG9faTkxNShjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICprZGV2X3RvX2k5MTUoc3RydWN0IGRldmljZSAqa2RldikKIHsKLQlyZXR1cm4gdG9faTkxNShkZXZfZ2V0X2RydmRhdGEoa2RldikpOworCXJldHVybiBkZXZfZ2V0X2RydmRhdGEoa2Rldik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKndvcGNtX3RvX2k5MTUoc3RydWN0IGludGVsX3dvcGNtICp3b3BjbSkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKnBkZXZfdG9faTkxNShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLQlyZXR1cm4gY29udGFpbmVyX29mKHdvcGNtLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgd29wY20pOwotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpndWNfdG9faTkxNShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihndWMsIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCBndWMpOwotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpodWNfdG9faTkxNShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihodWMsIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCBodWMpOwotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICp1bmNvcmVfdG9faTkxNShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZih1bmNvcmUsIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCB1bmNvcmUpOworCXJldHVybiBwY2lfZ2V0X2RydmRhdGEocGRldik7CiB9CiAKIC8qIFNpbXBsZSBpdGVyYXRvciBvdmVyIGFsbCBpbml0aWFsaXNlZCBlbmdpbmVzICovCkBAIC0xOTcwLDEyICsxNzk4LDEzIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKnVuY29yZV90b19pOTE1KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yCiAJICAgICAoKGVuZ2luZV9fKSA9IChkZXZfcHJpdl9fKS0+ZW5naW5lW19fbWFza19uZXh0X2JpdCh0bXBfXyldKSwgMSA6IFwKIAkgICAgIDA7KQogCi1lbnVtIGhkbWlfZm9yY2VfYXVkaW8gewotCUhETUlfQVVESU9fT0ZGX0RWSSA9IC0yLAkvKiBubyBhdXggZGF0YSBmb3IgSERNSS1EVkkgY29udmVydGVyICovCi0JSERNSV9BVURJT19PRkYsCQkJLyogZm9yY2UgdHVybiBvZmYgSERNSSBhdWRpbyAqLwotCUhETUlfQVVESU9fQVVUTywJCS8qIHRydXN0IEVESUQgKi8KLQlIRE1JX0FVRElPX09OLAkJCS8qIGZvcmNlIHR1cm4gb24gSERNSSBhdWRpbyAqLwotfTsKKyNkZWZpbmUgcmJfdG9fdWFiaV9lbmdpbmUocmIpIFwKKwlyYl9lbnRyeV9zYWZlKHJiLCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzLCB1YWJpX25vZGUpCisKKyNkZWZpbmUgZm9yX2VhY2hfdWFiaV9lbmdpbmUoZW5naW5lX18sIGk5MTVfXykgXAorCWZvciAoKGVuZ2luZV9fKSA9IHJiX3RvX3VhYmlfZW5naW5lKHJiX2ZpcnN0KCYoaTkxNV9fKS0+dWFiaV9lbmdpbmVzKSk7XAorCSAgICAgKGVuZ2luZV9fKTsgXAorCSAgICAgKGVuZ2luZV9fKSA9IHJiX3RvX3VhYmlfZW5naW5lKHJiX25leHQoJihlbmdpbmVfXyktPnVhYmlfbm9kZSkpKQogCiAjZGVmaW5lIEk5MTVfR1RUX09GRlNFVF9OT05FICgodTMyKS0xKQogCkBAIC0yMTI3LDYgKzE5NTYsNyBAQCBJU19TVUJQTEFURk9STShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKICNkZWZpbmUgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikJSVNfUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX0NBTk5PTkxBS0UpCiAjZGVmaW5lIElTX0lDRUxBS0UoZGV2X3ByaXYpCUlTX1BMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9JQ0VMQUtFKQogI2RlZmluZSBJU19FTEtIQVJUTEFLRShkZXZfcHJpdikJSVNfUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX0VMS0hBUlRMQUtFKQorI2RlZmluZSBJU19USUdFUkxBS0UoZGV2X3ByaXYpCUlTX1BMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9USUdFUkxBS0UpCiAjZGVmaW5lIElTX0hTV19FQVJMWV9TRFYoZGV2X3ByaXYpIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBcCiAJCQkJICAgIChJTlRFTF9ERVZJRChkZXZfcHJpdikgJiAweEZGMDApID09IDB4MEMwMCkKICNkZWZpbmUgSVNfQkRXX1VMVChkZXZfcHJpdikgXApAQCAtMjMyMyw2MyArMjE1MywxNiBAQCBJU19TVUJQTEFURk9STShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAogI2RlZmluZSBIQVNfSVBDKGRldl9wcml2KQkJIChJTlRFTF9JTkZPKGRldl9wcml2KS0+ZGlzcGxheS5oYXNfaXBjKQogCi0vKgotICogRm9yIG5vdywgYW55dGhpbmcgd2l0aCBhIEd1QyByZXF1aXJlcyB1Q29kZSBsb2FkaW5nLCBhbmQgdGhlbiBzdXBwb3J0cwotICogY29tbWFuZCBzdWJtaXNzaW9uIG9uY2UgbG9hZGVkLiBCdXQgdGhlc2UgYXJlIGxvZ2ljYWxseSBpbmRlcGVuZGVudAotICogcHJvcGVydGllcywgc28gd2UgaGF2ZSBzZXBhcmF0ZSBtYWNyb3MgdG8gdGVzdCB0aGVtLgotICovCi0jZGVmaW5lIEhBU19HVUMoZGV2X3ByaXYpCShJTlRFTF9JTkZPKGRldl9wcml2KS0+aGFzX2d1YykKLSNkZWZpbmUgSEFTX0dVQ19VQ09ERShkZXZfcHJpdikJKEhBU19HVUMoZGV2X3ByaXYpKQotI2RlZmluZSBIQVNfR1VDX1NDSEVEKGRldl9wcml2KQkoSEFTX0dVQyhkZXZfcHJpdikpCisjZGVmaW5lIEhBU19HVF9VQyhkZXZfcHJpdikJKElOVEVMX0lORk8oZGV2X3ByaXYpLT5oYXNfZ3RfdWMpCiAKLS8qIEZvciBub3csIGFueXRoaW5nIHdpdGggYSBHdUMgaGFzIGFsc28gSHVDICovCi0jZGVmaW5lIEhBU19IVUMoZGV2X3ByaXYpCShIQVNfR1VDKGRldl9wcml2KSkKLSNkZWZpbmUgSEFTX0hVQ19VQ09ERShkZXZfcHJpdikJKEhBU19HVUMoZGV2X3ByaXYpKQotCi0vKiBIYXZpbmcgYSBHdUMgaXMgbm90IHRoZSBzYW1lIGFzIHVzaW5nIGEgR3VDICovCi0jZGVmaW5lIFVTRVNfR1VDKGRldl9wcml2KQkJaW50ZWxfdWNfaXNfdXNpbmdfZ3VjKGRldl9wcml2KQotI2RlZmluZSBVU0VTX0dVQ19TVUJNSVNTSU9OKGRldl9wcml2KQlpbnRlbF91Y19pc191c2luZ19ndWNfc3VibWlzc2lvbihkZXZfcHJpdikKLSNkZWZpbmUgVVNFU19IVUMoZGV2X3ByaXYpCQlpbnRlbF91Y19pc191c2luZ19odWMoZGV2X3ByaXYpCisvKiBIYXZpbmcgR3VDIGlzIG5vdCB0aGUgc2FtZSBhcyB1c2luZyBHdUMgKi8KKyNkZWZpbmUgVVNFU19HVUMoZGV2X3ByaXYpCQlpbnRlbF91Y191c2VzX2d1YygmKGRldl9wcml2KS0+Z3QudWMpCisjZGVmaW5lIFVTRVNfR1VDX1NVQk1JU1NJT04oZGV2X3ByaXYpCWludGVsX3VjX3VzZXNfZ3VjX3N1Ym1pc3Npb24oJihkZXZfcHJpdiktPmd0LnVjKQogCiAjZGVmaW5lIEhBU19QT09MRURfRVUoZGV2X3ByaXYpCShJTlRFTF9JTkZPKGRldl9wcml2KS0+aGFzX3Bvb2xlZF9ldSkKIAotI2RlZmluZSBJTlRFTF9QQ0hfREVWSUNFX0lEX01BU0sJCTB4ZmY4MAotI2RlZmluZSBJTlRFTF9QQ0hfSUJYX0RFVklDRV9JRF9UWVBFCQkweDNiMDAKLSNkZWZpbmUgSU5URUxfUENIX0NQVF9ERVZJQ0VfSURfVFlQRQkJMHgxYzAwCi0jZGVmaW5lIElOVEVMX1BDSF9QUFRfREVWSUNFX0lEX1RZUEUJCTB4MWUwMAotI2RlZmluZSBJTlRFTF9QQ0hfTFBUX0RFVklDRV9JRF9UWVBFCQkweDhjMDAKLSNkZWZpbmUgSU5URUxfUENIX0xQVF9MUF9ERVZJQ0VfSURfVFlQRQkJMHg5YzAwCi0jZGVmaW5lIElOVEVMX1BDSF9XUFRfREVWSUNFX0lEX1RZUEUJCTB4OGM4MAotI2RlZmluZSBJTlRFTF9QQ0hfV1BUX0xQX0RFVklDRV9JRF9UWVBFCQkweDljODAKLSNkZWZpbmUgSU5URUxfUENIX1NQVF9ERVZJQ0VfSURfVFlQRQkJMHhBMTAwCi0jZGVmaW5lIElOVEVMX1BDSF9TUFRfTFBfREVWSUNFX0lEX1RZUEUJCTB4OUQwMAotI2RlZmluZSBJTlRFTF9QQ0hfS0JQX0RFVklDRV9JRF9UWVBFCQkweEEyODAKLSNkZWZpbmUgSU5URUxfUENIX0NOUF9ERVZJQ0VfSURfVFlQRQkJMHhBMzAwCi0jZGVmaW5lIElOVEVMX1BDSF9DTlBfTFBfREVWSUNFX0lEX1RZUEUJCTB4OUQ4MAotI2RlZmluZSBJTlRFTF9QQ0hfQ01QX0RFVklDRV9JRF9UWVBFCQkweDAyODAKLSNkZWZpbmUgSU5URUxfUENIX0lDUF9ERVZJQ0VfSURfVFlQRQkJMHgzNDgwCi0jZGVmaW5lIElOVEVMX1BDSF9NQ0NfREVWSUNFX0lEX1RZUEUJCTB4NEIwMAotI2RlZmluZSBJTlRFTF9QQ0hfUDJYX0RFVklDRV9JRF9UWVBFCQkweDcxMDAKLSNkZWZpbmUgSU5URUxfUENIX1AzWF9ERVZJQ0VfSURfVFlQRQkJMHg3MDAwCi0jZGVmaW5lIElOVEVMX1BDSF9RRU1VX0RFVklDRV9JRF9UWVBFCQkweDI5MDAgLyogcWVtdSBxMzUgaGFzIDI5MTggKi8KKyNkZWZpbmUgSEFTX0dMT0JBTF9NT0NTX1JFR0lTVEVSUyhkZXZfcHJpdikJKElOVEVMX0lORk8oZGV2X3ByaXYpLT5oYXNfZ2xvYmFsX21vY3MpCiAKLSNkZWZpbmUgSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpICgoZGV2X3ByaXYpLT5wY2hfdHlwZSkKLSNkZWZpbmUgSU5URUxfUENIX0lEKGRldl9wcml2KSAoKGRldl9wcml2KS0+cGNoX2lkKQotI2RlZmluZSBIQVNfUENIX01DQyhkZXZfcHJpdikgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfTUNDKQotI2RlZmluZSBIQVNfUENIX0lDUChkZXZfcHJpdikgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfSUNQKQotI2RlZmluZSBIQVNfUENIX0NOUChkZXZfcHJpdikgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfQ05QKQotI2RlZmluZSBIQVNfUENIX1NQVChkZXZfcHJpdikgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfU1BUKQotI2RlZmluZSBIQVNfUENIX0xQVChkZXZfcHJpdikgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfTFBUKQotI2RlZmluZSBIQVNfUENIX0xQVF9MUChkZXZfcHJpdikgXAotCShJTlRFTF9QQ0hfSUQoZGV2X3ByaXYpID09IElOVEVMX1BDSF9MUFRfTFBfREVWSUNFX0lEX1RZUEUgfHwgXAotCSBJTlRFTF9QQ0hfSUQoZGV2X3ByaXYpID09IElOVEVMX1BDSF9XUFRfTFBfREVWSUNFX0lEX1RZUEUpCi0jZGVmaW5lIEhBU19QQ0hfTFBUX0goZGV2X3ByaXYpIFwKLQkoSU5URUxfUENIX0lEKGRldl9wcml2KSA9PSBJTlRFTF9QQ0hfTFBUX0RFVklDRV9JRF9UWVBFIHx8IFwKLQkgSU5URUxfUENIX0lEKGRldl9wcml2KSA9PSBJTlRFTF9QQ0hfV1BUX0RFVklDRV9JRF9UWVBFKQotI2RlZmluZSBIQVNfUENIX0NQVChkZXZfcHJpdikgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfQ1BUKQotI2RlZmluZSBIQVNfUENIX0lCWChkZXZfcHJpdikgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfSUJYKQotI2RlZmluZSBIQVNfUENIX05PUChkZXZfcHJpdikgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfTk9QKQotI2RlZmluZSBIQVNfUENIX1NQTElUKGRldl9wcml2KSAoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpICE9IFBDSF9OT05FKQogCiAjZGVmaW5lIEhBU19HTUNIKGRldl9wcml2KSAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmRpc3BsYXkuaGFzX2dtY2gpCiAKQEAgLTIzOTUsOCArMjE3OCw2IEBAIElTX1NVQlBMQVRGT1JNKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCiAjZGVmaW5lIEhBU19ESVNQTEFZKGRldl9wcml2KSAoSU5URUxfSU5GTyhkZXZfcHJpdiktPm51bV9waXBlcyA+IDApCiAKLSNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCi0KIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF92dGRfYWN0aXZlKHZvaWQpCiB7CiAjaWZkZWYgQ09ORklHX0lOVEVMX0lPTU1VCkBAIC0yNDE4LDQ4ICsyMTk5LDE5IEBAIGludGVsX2dndHRfdXBkYXRlX25lZWRzX3Z0ZF93YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB9CiAKIC8qIGk5MTVfZHJ2LmMgKi8KLXZvaWQgX19wcmludGYoMywgNCkKLV9faTkxNV9wcmludGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBjb25zdCBjaGFyICpsZXZlbCwKLQkgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7Ci0KLSNkZWZpbmUgaTkxNV9yZXBvcnRfZXJyb3IoZGV2X3ByaXYsIGZtdCwgLi4uKQkJCQkgICBcCi0JX19pOTE1X3ByaW50ayhkZXZfcHJpdiwgS0VSTl9FUlIsIGZtdCwgIyNfX1ZBX0FSR1NfXykKLQogI2lmZGVmIENPTkZJR19DT01QQVQKLWV4dGVybiBsb25nIGk5MTVfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBhcmcpOworbG9uZyBpOTE1X2NvbXBhdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwogI2Vsc2UKICNkZWZpbmUgaTkxNV9jb21wYXRfaW9jdGwgTlVMTAogI2VuZGlmCiBleHRlcm4gY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgaTkxNV9wbV9vcHM7CiAKLWV4dGVybiBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwKLQkJCSAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KTsKLWV4dGVybiB2b2lkIGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2ludCBpOTE1X2RyaXZlcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCk7Cit2b2lkIGk5MTVfZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiAKLWV4dGVybiB2b2lkIGludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwotZXh0ZXJuIHZvaWQgaW50ZWxfaGFuZ2NoZWNrX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiBpbnQgdmx2X2ZvcmNlX2dmeF9jbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgb24pOwogCi11MzIgaW50ZWxfY2FsY3VsYXRlX21jcl9zX3NzX3NlbGVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9xdWV1ZV9oYW5nY2hlY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXVuc2lnbmVkIGxvbmcgZGVsYXk7Ci0KLQlpZiAodW5saWtlbHkoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2spKQotCQlyZXR1cm47Ci0KLQkvKiBEb24ndCBjb250aW51YWxseSBkZWZlciB0aGUgaGFuZ2NoZWNrIHNvIHRoYXQgaXQgaXMgYWx3YXlzIHJ1biBhdAotCSAqIGxlYXN0IG9uY2UgYWZ0ZXIgd29yayBoYXMgYmVlbiBzY2hlZHVsZWQgb24gYW55IHJpbmcuIE90aGVyd2lzZSwKLQkgKiB3ZSB3aWxsIGlnbm9yZSBhIGh1bmcgcmluZyBpZiBhIHNlY29uZCByaW5nIGlzIGtlcHQgYnVzeS4KLQkgKi8KLQotCWRlbGF5ID0gcm91bmRfamlmZmllc191cF9yZWxhdGl2ZShEUk1fSTkxNV9IQU5HQ0hFQ0tfSklGRklFUyk7Ci0JcXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV9sb25nX3dxLAotCQkJICAgJmRldl9wcml2LT5ncHVfZXJyb3IuaGFuZ2NoZWNrX3dvcmssIGRlbGF5KTsKLX0KLQogc3RhdGljIGlubGluZSBib29sIGludGVsX2d2dF9hY3RpdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXJldHVybiBkZXZfcHJpdi0+Z3Z0OwpAQCAtMjQ3MCw2ICsyMjIyLDkgQEAgc3RhdGljIGlubGluZSBib29sIGludGVsX3ZncHVfYWN0aXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gZGV2X3ByaXYtPnZncHUuYWN0aXZlOwogfQogCitpbnQgaTkxNV9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCiAvKiBpOTE1X2dlbS5jICovCiBpbnQgaTkxNV9nZW1faW5pdF91c2VycHRyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGk5MTVfZ2VtX2NsZWFudXBfdXNlcnB0cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpAQCAtMjQ4MSwxOCArMjIzNiwxNyBAQCBpbnQgaTkxNV9nZW1fZnJlZXplX2xhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIAogc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0JaWYgKCFhdG9taWNfcmVhZCgmaTkxNS0+bW0uZnJlZV9jb3VudCkpCi0JCXJldHVybjsKLQotCS8qIEEgc2luZ2xlIHBhc3Mgc2hvdWxkIHN1ZmZpY2UgdG8gcmVsZWFzZSBhbGwgdGhlIGZyZWVkIG9iamVjdHMgKGFsb25nCisJLyoKKwkgKiBBIHNpbmdsZSBwYXNzIHNob3VsZCBzdWZmaWNlIHRvIHJlbGVhc2UgYWxsIHRoZSBmcmVlZCBvYmplY3RzIChhbG9uZwogCSAqIG1vc3QgY2FsbCBwYXRocykgLCBidXQgYmUgYSBsaXR0bGUgbW9yZSBwYXJhbm9pZCBpbiB0aGF0IGZyZWVpbmcKIAkgKiB0aGUgb2JqZWN0cyBkb2VzIHRha2UgYSBsaXR0bGUgYW1vdW50IG9mIHRpbWUsIGR1cmluZyB3aGljaCB0aGUgcmN1CiAJICogY2FsbGJhY2tzIGNvdWxkIGhhdmUgYWRkZWQgbmV3IG9iamVjdHMgaW50byB0aGUgZnJlZWQgbGlzdCwgYW5kCiAJICogYXJtZWQgdGhlIHdvcmsgYWdhaW4uCiAJICovCi0JZG8geworCXdoaWxlIChhdG9taWNfcmVhZCgmaTkxNS0+bW0uZnJlZV9jb3VudCkpIHsKKwkJZmx1c2hfd29yaygmaTkxNS0+bW0uZnJlZV93b3JrKTsKIAkJcmN1X2JhcnJpZXIoKTsKLQl9IHdoaWxlIChmbHVzaF93b3JrKCZpOTE1LT5tbS5mcmVlX3dvcmspKTsKKwl9CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9kcmFpbl93b3JrcXVldWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCkBAIC0yNTEwLDYgKzIyNjQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fZHJhaW5fd29ya3F1ZXVlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCSAqLwogCWludCBwYXNzID0gMzsKIAlkbyB7CisJCWZsdXNoX3dvcmtxdWV1ZShpOTE1LT53cSk7CiAJCXJjdV9iYXJyaWVyKCk7CiAJCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoaTkxNSk7CiAJfSB3aGlsZSAoLS1wYXNzKTsKQEAgLTI1MjMsNyArMjI3OCw5IEBAIGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJIHU2NCBhbGlnbm1lbnQsCiAJCQkgdTY0IGZsYWdzKTsKIAotaW50IGk5MTVfZ2VtX29iamVjdF91bmJpbmQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CitpbnQgaTkxNV9nZW1fb2JqZWN0X3VuYmluZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncyk7CisjZGVmaW5lIEk5MTVfR0VNX09CSkVDVF9VTkJJTkRfQUNUSVZFIEJJVCgwKQogCiB2b2lkIGk5MTVfZ2VtX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogCkBAIC0yNTQwLDQyICsyMjk3LDI2IEBAIGludCBpOTE1X2dlbV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgICAgdTMyIGhhbmRsZSwgdTY0ICpvZmZzZXQpOwogaW50IGk5MTVfZ2VtX21tYXBfZ3R0X3ZlcnNpb24odm9pZCk7CiAKLXZvaWQgaTkxNV9nZW1fdHJhY2tfZmIoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZCwKLQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpuZXcsCi0JCSAgICAgICB1bnNpZ25lZCBmcm9udGJ1ZmZlcl9iaXRzKTsKLQogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9zZXRfZ2xvYmFsX3NlcW5vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzZXFubyk7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBfX2k5MTVfd2VkZ2VkKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCi17Ci0JcmV0dXJuIHVubGlrZWx5KHRlc3RfYml0KEk5MTVfV0VER0VELCAmZXJyb3ItPmZsYWdzKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3Jlc2V0X2ZhaWxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlyZXR1cm4gX19pOTE1X3dlZGdlZCgmaTkxNS0+Z3B1X2Vycm9yKTsKLX0KLQogc3RhdGljIGlubGluZSB1MzIgaTkxNV9yZXNldF9jb3VudChzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQogewotCXJldHVybiBSRUFEX09OQ0UoZXJyb3ItPnJlc2V0X2NvdW50KTsKKwlyZXR1cm4gYXRvbWljX3JlYWQoJmVycm9yLT5yZXNldF9jb3VudCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTMyIGk5MTVfcmVzZXRfZW5naW5lX2NvdW50KHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IsCiAJCQkJCSAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXJldHVybiBSRUFEX09OQ0UoZXJyb3ItPnJlc2V0X2VuZ2luZV9jb3VudFtlbmdpbmUtPmlkXSk7CisJcmV0dXJuIGF0b21pY19yZWFkKCZlcnJvci0+cmVzZXRfZW5naW5lX2NvdW50W2VuZ2luZS0+dWFiaV9jbGFzc10pOwogfQogCi12b2lkIGk5MTVfZ2VtX3NldF93ZWRnZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLWJvb2wgaTkxNV9nZW1fdW5zZXRfd2VkZ2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci0KIHZvaWQgaTkxNV9nZW1faW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGk5MTVfZ2VtX2luaXRfc3dpenpsaW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGk5MTVfZ2VtX2ZpbmlfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaTkxNV9nZW1fZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpOTE1X2dlbV9kcml2ZXJfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwordm9pZCBpOTE1X2dlbV9kcml2ZXJfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cit2b2lkIGk5MTVfZ2VtX2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaTkxNV9nZW1fZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGludCBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgIHVuc2lnbmVkIGludCBmbGFncywgbG9uZyB0aW1lb3V0KTsKIHZvaWQgaTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpAQCAtMjU5Miw4ICsyMzMzLDcgQEAgaW50IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqaTkxNV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJc3RydWN0IGRtYV9idWYgKmRtYV9idWYpOwogCi1zdHJ1Y3QgZG1hX2J1ZiAqaTkxNV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqLCBpbnQgZmxhZ3MpOworc3RydWN0IGRtYV9idWYgKmk5MTVfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmosIGludCBmbGFncyk7CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKgogX19pOTE1X2dlbV9jb250ZXh0X2xvb2t1cF9yY3Uoc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2LCB1MzIgaWQpCkBAIC0yNjE1LDE2ICsyMzU1LDYgQEAgaTkxNV9nZW1fY29udGV4dF9sb29rdXAoc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2LCB1MzIgaWQpCiAJcmV0dXJuIGN0eDsKIH0KIAotaW50IGk5MTVfcGVyZl9vcGVuX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgc3RydWN0IGRybV9maWxlICpmaWxlKTsKLWludCBpOTE1X3BlcmZfYWRkX2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7Ci1pbnQgaTkxNV9wZXJmX3JlbW92ZV9jb25maWdfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7Ci12b2lkIGk5MTVfb2FfaW5pdF9yZWdfc3RhdGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAotCQkJICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKLQkJCSAgICB1MzIgKnJlZ19zdGF0ZSk7Ci0KIC8qIGk5MTVfZ2VtX2V2aWN0LmMgKi8KIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJCQkgIHU2NCBtaW5fc2l6ZSwgdTY0IGFsaWdubWVudCwKQEAgLTI2MzYsNTkgKzIzNjYsMTEgQEAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9ldmljdF9mb3Jfbm9kZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCQkJIHVuc2lnbmVkIGludCBmbGFncyk7CiBpbnQgaTkxNV9nZW1fZXZpY3Rfdm0oc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pOwogCi12b2lkIGk5MTVfZ2VtX2ZsdXNoX2dndHRfd3JpdGVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci0KLS8qIGJlbG9uZ3MgaW4gaTkxNV9nZW1fZ3R0LmggKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9jaGlwc2V0X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQl3bWIoKTsKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDYpCi0JCWludGVsX2d0dF9jaGlwc2V0X2ZsdXNoKCk7Ci19Ci0KLS8qIGk5MTVfZ2VtX3N0b2xlbi5jICovCi1pbnQgaTkxNV9nZW1fc3RvbGVuX2luc2VydF9ub2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUsIHU2NCBzaXplLAotCQkJCXVuc2lnbmVkIGFsaWdubWVudCk7Ci1pbnQgaTkxNV9nZW1fc3RvbGVuX2luc2VydF9ub2RlX2luX3JhbmdlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkJIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgdTY0IHNpemUsCi0JCQkJCSB1bnNpZ25lZCBhbGlnbm1lbnQsIHU2NCBzdGFydCwKLQkJCQkJIHU2NCBlbmQpOwotdm9pZCBpOTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCSBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUpOwotaW50IGk5MTVfZ2VtX2luaXRfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGk5MTVfZ2VtX2NsZWFudXBfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1zdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCi1pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSk7Ci1zdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCi1pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkJICAgICAgIHJlc291cmNlX3NpemVfdCBzdG9sZW5fb2Zmc2V0LAotCQkJCQkgICAgICAgcmVzb3VyY2Vfc2l6ZV90IGd0dF9vZmZzZXQsCi0JCQkJCSAgICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSk7Ci0KIC8qIGk5MTVfZ2VtX2ludGVybmFsLmMgKi8KIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCXBoeXNfYWRkcl90IHNpemUpOwogCi0vKiBpOTE1X2dlbV9zaHJpbmtlci5jICovCi11bnNpZ25lZCBsb25nIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LAotCQkJICAgICAgdW5zaWduZWQgbG9uZyAqbnJfc2Nhbm5lZCwKLQkJCSAgICAgIHVuc2lnbmVkIGZsYWdzKTsKLSNkZWZpbmUgSTkxNV9TSFJJTktfVU5CT1VORAlCSVQoMCkKLSNkZWZpbmUgSTkxNV9TSFJJTktfQk9VTkQJQklUKDEpCi0jZGVmaW5lIEk5MTVfU0hSSU5LX0FDVElWRQlCSVQoMikKLSNkZWZpbmUgSTkxNV9TSFJJTktfVk1BUFMJQklUKDMpCi0jZGVmaW5lIEk5MTVfU0hSSU5LX1dSSVRFQkFDSwlCSVQoNCkKLQotdW5zaWduZWQgbG9uZyBpOTE1X2dlbV9zaHJpbmtfYWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZvaWQgaTkxNV9nZW1fc2hyaW5rZXJfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotdm9pZCBpOTE1X2dlbV9zaHJpbmtlcl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZvaWQgaTkxNV9nZW1fc2hyaW5rZXJfdGFpbnRzX211dGV4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkJCSAgICBzdHJ1Y3QgbXV0ZXggKm11dGV4KTsKLQogLyogaTkxNV9nZW1fdGlsaW5nLmMgKi8KIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9vYmplY3RfbmVlZHNfYml0MTdfc3dpenpsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewpAQCAtMjcxNiwyMCArMjM5OCw2IEBAIGludCBpbnRlbF9lbmdpbmVfY21kX3BhcnNlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkgICAgdTMyIGJhdGNoX2xlbiwKIAkJCSAgICBib29sIGlzX21hc3Rlcik7CiAKLS8qIGk5MTVfcGVyZi5jICovCi1leHRlcm4gdm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotZXh0ZXJuIHZvaWQgaTkxNV9wZXJmX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLWV4dGVybiB2b2lkIGk5MTVfcGVyZl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotZXh0ZXJuIHZvaWQgaTkxNV9wZXJmX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQotLyogaTkxNV9zdXNwZW5kLmMgKi8KLWV4dGVybiBpbnQgaTkxNV9zYXZlX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1leHRlcm4gaW50IGk5MTVfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotCi0vKiBpOTE1X3N5c2ZzLmMgKi8KLXZvaWQgaTkxNV9zZXR1cF9zeXNmcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpOTE1X3RlYXJkb3duX3N5c2ZzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci0KIC8qIGludGVsX2RldmljZV9pbmZvLmMgKi8KIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RldmljZV9pbmZvICoKIG1rd3JpdGVfZGV2aWNlX2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtMjczNywyNSArMjQwNSw5IEBAIG1rd3JpdGVfZGV2aWNlX2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXJldHVybiAoc3RydWN0IGludGVsX2RldmljZV9pbmZvICopSU5URUxfSU5GTyhkZXZfcHJpdik7CiB9CiAKLS8qIG1vZGVzZXR0aW5nICovCi1leHRlcm4gdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIGludGVsX21vZGVzZXRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiBpbnQgaW50ZWxfbW9kZXNldF92Z2Ffc2V0X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgICAgYm9vbCBzdGF0ZSk7Ci1leHRlcm4gdm9pZCBpbnRlbF9kaXNwbGF5X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIGk5MTVfcmVkaXNhYmxlX3ZnYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotZXh0ZXJuIHZvaWQgaTkxNV9yZWRpc2FibGVfdmdhX3Bvd2VyX29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1leHRlcm4gdm9pZCBpbnRlbF9pbml0X3BjaF9yZWZjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQogaW50IGk5MTVfcmVnX3JlYWRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiAKLWV4dGVybiBzdHJ1Y3QgaW50ZWxfZGlzcGxheV9lcnJvcl9zdGF0ZSAqCi1pbnRlbF9kaXNwbGF5X2NhcHR1cmVfZXJyb3Jfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLWV4dGVybiB2b2lkIGludGVsX2Rpc3BsYXlfcHJpbnRfZXJyb3Jfc3RhdGUoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqZSwKLQkJCQkJICAgIHN0cnVjdCBpbnRlbF9kaXNwbGF5X2Vycm9yX3N0YXRlICplcnJvcik7Ci0KICNkZWZpbmUgX19JOTE1X1JFR19PUChvcF9fLCBkZXZfcHJpdl9fLCAuLi4pIFwKIAlpbnRlbF91bmNvcmVfIyNvcF9fKCYoZGV2X3ByaXZfXyktPnVuY29yZSwgX19WQV9BUkdTX18pCiAKQEAgLTI3OTMsMjkgKzI0NDUsMTkgQEAgZXh0ZXJuIHZvaWQgaW50ZWxfZGlzcGxheV9wcmludF9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICplLAogI2RlZmluZSBJOTE1X1JFQURfRlcocmVnX18pIF9fSTkxNV9SRUdfT1AocmVhZF9mdywgZGV2X3ByaXYsIChyZWdfXykpCiAjZGVmaW5lIEk5MTVfV1JJVEVfRlcocmVnX18sIHZhbF9fKSBfX0k5MTVfUkVHX09QKHdyaXRlX2Z3LCBkZXZfcHJpdiwgKHJlZ19fKSwgKHZhbF9fKSkKIAotLyogIkJyb2FkY2FzdCBSR0IiIHByb3BlcnR5ICovCi0jZGVmaW5lIElOVEVMX0JST0FEQ0FTVF9SR0JfQVVUTyAwCi0jZGVmaW5lIElOVEVMX0JST0FEQ0FTVF9SR0JfRlVMTCAxCi0jZGVmaW5lIElOVEVMX0JST0FEQ0FTVF9SR0JfTElNSVRFRCAyCisvKiByZWdpc3RlciB3YWl0IHdyYXBwZXJzIGZvciBkaXNwbGF5IHJlZ3MgKi8KKyNkZWZpbmUgaW50ZWxfZGVfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXZfLCByZWdfLCBtYXNrXywgdmFsdWVfLCB0aW1lb3V0XykgXAorCWludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCYoZGV2X3ByaXZfKS0+dW5jb3JlLCBcCisJCQkJKHJlZ18pLCAobWFza18pLCAodmFsdWVfKSwgKHRpbWVvdXRfKSkKIAotdm9pZCBpOTE1X21lbWNweV9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1ib29sIGk5MTVfbWVtY3B5X2Zyb21fd2Modm9pZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVkIGxvbmcgbGVuKTsKKyNkZWZpbmUgaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2XywgcmVnXywgbWFza18sIHRpbWVvdXRfKSAoewlcCisJdTMyIG1hc2tfXyA9IChtYXNrXyk7CQkJCQkJXAorCWludGVsX2RlX3dhaXRfZm9yX3JlZ2lzdGVyKChkZXZfcHJpdl8pLCAocmVnXyksCQkJXAorCQkJCSAgIG1hc2tfXywgbWFza19fLCAodGltZW91dF8pKTsgXAorfSkKIAotLyogVGhlIG1vdm50ZHFhIGluc3RydWN0aW9ucyB1c2VkIGZvciBtZW1jcHktZnJvbS13YyByZXF1aXJlIDE2LWJ5dGUgYWxpZ25tZW50LAotICogYXMgd2VsbCBhcyBTU0U0LjEgc3VwcG9ydC4gaTkxNV9tZW1jcHlfZnJvbV93YygpIHdpbGwgcmVwb3J0IGlmIGl0IGNhbm5vdAotICogcGVyZm9ybSB0aGUgb3BlcmF0aW9uLiBUbyBjaGVjayBiZWZvcmVoYW5kLCBwYXNzIGluIHRoZSBwYXJhbWV0ZXJzIHRvCi0gKiB0byBpOTE1X2Nhbl9tZW1jcHlfZnJvbV93YygpIC0gc2luY2Ugd2Ugb25seSBjYXJlIGFib3V0IHRoZSBsb3cgNCBiaXRzLAotICogeW91IG9ubHkgbmVlZCB0byBwYXNzIGluIHRoZSBtaW5vciBvZmZzZXRzLCBwYWdlLWFsaWduZWQgcG9pbnRlcnMgYXJlCi0gKiBhbHdheXMgdmFsaWQuCi0gKgotICogRm9yIGp1c3QgY2hlY2tpbmcgZm9yIFNTRTQuMSwgaW4gdGhlIGZvcmVrbm93bGVkZ2UgdGhhdCB0aGUgZnV0dXJlIHVzZQotICogd2lsbCBiZSBjb3JyZWN0bHkgYWxpZ25lZCwganVzdCB1c2UgaTkxNV9oYXNfbWVtY3B5X2Zyb21fd2MoKS4KLSAqLwotI2RlZmluZSBpOTE1X2Nhbl9tZW1jcHlfZnJvbV93Yyhkc3QsIHNyYywgbGVuKSBcCi0JaTkxNV9tZW1jcHlfZnJvbV93Yygodm9pZCAqKSgodW5zaWduZWQgbG9uZykoZHN0KSB8ICh1bnNpZ25lZCBsb25nKShzcmMpIHwgKGxlbikpLCBOVUxMLCAwKQotCi0jZGVmaW5lIGk5MTVfaGFzX21lbWNweV9mcm9tX3djKCkgXAotCWk5MTVfbWVtY3B5X2Zyb21fd2MoTlVMTCwgTlVMTCwgMCkKKyNkZWZpbmUgaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXZfLCByZWdfLCBtYXNrXywgdGltZW91dF8pIFwKKwlpbnRlbF9kZV93YWl0X2Zvcl9yZWdpc3RlcigoZGV2X3ByaXZfKSwgKHJlZ18pLCAobWFza18pLCAwLCAodGltZW91dF8pKQogCiAvKiBpOTE1X21tLmMgKi8KIGludCByZW1hcF9pb19tYXBwaW5nKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLApAQCAtMjgzMCwyNiArMjQ3MiwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBpbnRlbF9od3NfY3NiX3dyaXRlX2luZGV4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQlyZXR1cm4gSTkxNV9IV1NfQ1NCX1dSSVRFX0lOREVYOwogfQogCi1zdGF0aWMgaW5saW5lIHUzMiBpOTE1X3NjcmF0Y2hfb2Zmc2V0KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCXJldHVybiBpOTE1X2dndHRfb2Zmc2V0KGk5MTUtPmd0LnNjcmF0Y2gpOwotfQotCiBzdGF0aWMgaW5saW5lIGVudW0gaTkxNV9tYXBfdHlwZQogaTkxNV9jb2hlcmVudF9tYXBfdHlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlyZXR1cm4gSEFTX0xMQyhpOTE1KSA/IEk5MTVfTUFQX1dCIDogSTkxNV9NQVBfV0M7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhZGRfdGFpbnRfZm9yX0NJKHVuc2lnbmVkIGludCB0YWludCkKLXsKLQkvKgotCSAqIFRoZSBzeXN0ZW0gaXMgIm9rIiwganVzdCBhYm91dCBzdXJ2aXZpbmcgZm9yIHRoZSB1c2VyLCBidXQKLQkgKiBDSSByZXN1bHRzIGFyZSBub3cgdW5yZWxpYWJsZSBhcyB0aGUgSFcgaXMgdmVyeSBzdXNwZWN0LgotCSAqIENJIGNoZWNrcyB0aGUgdGFpbnQgc3RhdGUgYWZ0ZXIgZXZlcnkgdGVzdCBhbmQgd2lsbCByZWJvb3QKLQkgKiB0aGUgbWFjaGluZSBpZiB0aGUga2VybmVsIGlzIHRhaW50ZWQuCi0JICovCi0JYWRkX3RhaW50KHRhaW50LCBMT0NLREVQX1NUSUxMX09LKTsKLX0KLQogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ZpeGVkLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ZpeGVkLmgKaW5kZXggNjYyMTU5NS4uYTMyNzA5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9maXhlZC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZml4ZWQuaApAQCAtNiw2ICs2LDExIEBACiAjaWZuZGVmIF9JOTE1X0ZJWEVEX0hfCiAjZGVmaW5lIF9JOTE1X0ZJWEVEX0hfCiAKKyNpbmNsdWRlIDxsaW51eC9idWcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tYXRoNjQuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCiB0eXBlZGVmIHN0cnVjdCB7CiAJdTMyIHZhbDsKIH0gdWludF9maXhlZF8xNl8xNl90OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggOGE2NTlkMy4uOTVlN2M1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLWFycmF5Lmg+CiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2VydmF0aW9uLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KICNpbmNsdWRlIDxsaW51eC9zaG1lbV9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zdG9wX21hY2hpbmUuaD4KQEAgLTQ2LDkgKzQ2LDEyIEBACiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2lvY3Rscy5oIgogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9wbS5oIgogI2luY2x1ZGUgImdlbS9pOTE1X2dlbWZzLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lX3VzZXIuaCIKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgogI2luY2x1ZGUgImd0L2ludGVsX2d0X3BtLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfbW9jcy5oIgogI2luY2x1ZGUgImd0L2ludGVsX3Jlc2V0LmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfcmVuZGVyc3RhdGUuaCIKICNpbmNsdWRlICJndC9pbnRlbF93b3JrYXJvdW5kcy5oIgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKQEAgLTU2LDcgKzU5LDYgQEAKICNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaTkxNV92Z3B1LmgiCiAKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF9wbS5oIgogCiBzdGF0aWMgaW50CkBAIC0xMDAsNyArMTAyLDggQEAgaTkxNV9nZW1fZ2V0X2FwZXJ0dXJlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0dXJuIDA7CiB9CiAKLWludCBpOTE1X2dlbV9vYmplY3RfdW5iaW5kKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCitpbnQgaTkxNV9nZW1fb2JqZWN0X3VuYmluZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlMSVNUX0hFQUQoc3RpbGxfaW5fbGlzdCk7CkBAIC0xMTUsNyArMTE4LDEwIEBAIGludCBpOTE1X2dlbV9vYmplY3RfdW5iaW5kKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCWxpc3RfbW92ZV90YWlsKCZ2bWEtPm9ial9saW5rLCAmc3RpbGxfaW5fbGlzdCk7CiAJCXNwaW5fdW5sb2NrKCZvYmotPnZtYS5sb2NrKTsKIAotCQlyZXQgPSBpOTE1X3ZtYV91bmJpbmQodm1hKTsKKwkJcmV0ID0gLUVCVVNZOworCQlpZiAoZmxhZ3MgJiBJOTE1X0dFTV9PQkpFQ1RfVU5CSU5EX0FDVElWRSB8fAorCQkgICAgIWk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKQorCQkJcmV0ID0gaTkxNV92bWFfdW5iaW5kKHZtYSk7CiAKIAkJc3Bpbl9sb2NrKCZvYmotPnZtYS5sb2NrKTsKIAl9CkBAIC0xMzMsMTcgKzEzOSwxOSBAQCBpOTE1X2dlbV9waHlzX3B3cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCXZvaWQgKnZhZGRyID0gb2JqLT5waHlzX2hhbmRsZS0+dmFkZHIgKyBhcmdzLT5vZmZzZXQ7CiAJY2hhciBfX3VzZXIgKnVzZXJfZGF0YSA9IHU2NF90b191c2VyX3B0cihhcmdzLT5kYXRhX3B0cik7CiAKLQkvKiBXZSBtYW51YWxseSBjb250cm9sIHRoZSBkb21haW4gaGVyZSBhbmQgcHJldGVuZCB0aGF0IGl0CisJLyoKKwkgKiBXZSBtYW51YWxseSBjb250cm9sIHRoZSBkb21haW4gaGVyZSBhbmQgcHJldGVuZCB0aGF0IGl0CiAJICogcmVtYWlucyBjb2hlcmVudCBpLmUuIGluIHRoZSBHVFQgZG9tYWluLCBsaWtlIHNobWVtX3B3cml0ZS4KIAkgKi8KLQlpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShvYmosIE9SSUdJTl9DUFUpOworCWludGVsX2Zyb250YnVmZmVyX2ludmFsaWRhdGUob2JqLT5mcm9udGJ1ZmZlciwgT1JJR0lOX0NQVSk7CisKIAlpZiAoY29weV9mcm9tX3VzZXIodmFkZHIsIHVzZXJfZGF0YSwgYXJncy0+c2l6ZSkpCiAJCXJldHVybiAtRUZBVUxUOwogCiAJZHJtX2NsZmx1c2hfdmlydF9yYW5nZSh2YWRkciwgYXJncy0+c2l6ZSk7Ci0JaTkxNV9nZW1fY2hpcHNldF9mbHVzaCh0b19pOTE1KG9iai0+YmFzZS5kZXYpKTsKKwlpbnRlbF9ndF9jaGlwc2V0X2ZsdXNoKCZ0b19pOTE1KG9iai0+YmFzZS5kZXYpLT5ndCk7CiAKLQlpbnRlbF9mYl9vYmpfZmx1c2gob2JqLCBPUklHSU5fQ1BVKTsKKwlpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChvYmotPmZyb250YnVmZmVyLCBPUklHSU5fQ1BVKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjMyLDQ2ICsyNDAsNiBAQCBpOTE1X2dlbV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSAgICAgICAmYXJncy0+c2l6ZSwgJmFyZ3MtPmhhbmRsZSk7CiB9CiAKLXZvaWQgaTkxNV9nZW1fZmx1c2hfZ2d0dF93cml0ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwotCi0JLyoKLQkgKiBObyBhY3R1YWwgZmx1c2hpbmcgaXMgcmVxdWlyZWQgZm9yIHRoZSBHVFQgd3JpdGUgZG9tYWluIGZvciByZWFkcwotCSAqIGZyb20gdGhlIEdUVCBkb21haW4uIFdyaXRlcyB0byBpdCAiaW1tZWRpYXRlbHkiIGdvIHRvIG1haW4gbWVtb3J5Ci0JICogYXMgZmFyIGFzIHdlIGtub3csIHNvIHRoZXJlJ3Mgbm8gY2hpcHNldCBmbHVzaC4gSXQgYWxzbyBkb2Vzbid0Ci0JICogbGFuZCBpbiB0aGUgR1BVIHJlbmRlciBjYWNoZS4KLQkgKgotCSAqIEhvd2V2ZXIsIHdlIGRvIGhhdmUgdG8gZW5mb3JjZSB0aGUgb3JkZXIgc28gdGhhdCBhbGwgd3JpdGVzIHRocm91Z2gKLQkgKiB0aGUgR1RUIGxhbmQgYmVmb3JlIGFueSB3cml0ZXMgdG8gdGhlIGRldmljZSwgc3VjaCBhcyB1cGRhdGVzIHRvCi0JICogdGhlIEdBVFQgaXRzZWxmLgotCSAqCi0JICogV2UgYWxzbyBoYXZlIHRvIHdhaXQgYSBiaXQgZm9yIHRoZSB3cml0ZXMgdG8gbGFuZCBmcm9tIHRoZSBHVFQuCi0JICogQW4gdW5jYWNoZWQgcmVhZCAoaS5lLiBtbWlvKSBzZWVtcyB0byBiZSBpZGVhbCBmb3IgdGhlIHJvdW5kLXRyaXAKLQkgKiB0aW1pbmcuIFRoaXMgaXNzdWUgaGFzIG9ubHkgYmVlbiBvYnNlcnZlZCB3aGVuIHN3aXRjaGluZyBxdWlja2x5Ci0JICogYmV0d2VlbiBHVFQgd3JpdGVzIGFuZCBDUFUgcmVhZHMgZnJvbSBpbnNpZGUgdGhlIGtlcm5lbCBvbiByZWNlbnQgaHcsCi0JICogYW5kIGl0IGFwcGVhcnMgdG8gb25seSBhZmZlY3QgZGlzY3JldGUgR1RUIGJsb2NrcyAoaS5lLiBvbiBMTEMKLQkgKiBzeXN0ZW0gYWdlbnRzIHdlIGNhbm5vdCByZXByb2R1Y2UgdGhpcyBiZWhhdmlvdXIsIHVudGlsIENhbm5vbmxha2UKLQkgKiB0aGF0IHdhcyEpLgotCSAqLwotCi0Jd21iKCk7Ci0KLQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmhhc19jb2hlcmVudF9nZ3R0KQotCQlyZXR1cm47Ci0KLQlpOTE1X2dlbV9jaGlwc2V0X2ZsdXNoKGRldl9wcml2KTsKLQotCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpIHsKLQkJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Ci0KLQkJc3Bpbl9sb2NrX2lycSgmdW5jb3JlLT5sb2NrKTsKLQkJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZF9mdyh1bmNvcmUsCi0JCQkJCSAgICAgUklOR19IRUFEKFJFTkRFUl9SSU5HX0JBU0UpKTsKLQkJc3Bpbl91bmxvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwotCX0KLX0KLQogc3RhdGljIGludAogc2htZW1fcHJlYWQoc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBvZmZzZXQsIGludCBsZW4sIGNoYXIgX191c2VyICp1c2VyX2RhdGEsCiAJICAgIGJvb2wgbmVlZHNfY2xmbHVzaCkKQEAgLTM3NSwyMCArMzQzLDE2IEBAIGk5MTVfZ2VtX2d0dF9wcmVhZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlyZXR1cm4gcmV0OwogCiAJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKLQl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCBOVUxMLCAwLCAwLAotCQkJCSAgICAgICBQSU5fTUFQUEFCTEUgfAotCQkJCSAgICAgICBQSU5fTk9ORkFVTFQgfAotCQkJCSAgICAgICBQSU5fTk9OQkxPQ0spOworCXZtYSA9IEVSUl9QVFIoLUVOT0RFVik7CisJaWYgKCFpOTE1X2dlbV9vYmplY3RfaXNfdGlsZWQob2JqKSkKKwkJdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9iaiwgTlVMTCwgMCwgMCwKKwkJCQkJICAgICAgIFBJTl9NQVBQQUJMRSB8CisJCQkJCSAgICAgICBQSU5fTk9OQkxPQ0sgLyogTk9XQVJOICovIHwKKwkJCQkJICAgICAgIFBJTl9OT0VWSUNUKTsKIAlpZiAoIUlTX0VSUih2bWEpKSB7CiAJCW5vZGUuc3RhcnQgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7CiAJCW5vZGUuYWxsb2NhdGVkID0gZmFsc2U7Ci0JCXJldCA9IGk5MTVfdm1hX3B1dF9mZW5jZSh2bWEpOwotCQlpZiAocmV0KSB7Ci0JCQlpOTE1X3ZtYV91bnBpbih2bWEpOwotCQkJdm1hID0gRVJSX1BUUihyZXQpOwotCQl9Ci0JfQotCWlmIChJU19FUlIodm1hKSkgeworCX0gZWxzZSB7CiAJCXJldCA9IGluc2VydF9tYXBwYWJsZV9ub2RlKGdndHQsICZub2RlLCBQQUdFX1NJWkUpOwogCQlpZiAocmV0KQogCQkJZ290byBvdXRfdW5sb2NrOwpAQCAtNDMwLDExICszOTQsOSBAQCBpOTE1X2dlbV9ndHRfcHJlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJdW5zaWduZWQgcGFnZV9sZW5ndGggPSBQQUdFX1NJWkUgLSBwYWdlX29mZnNldDsKIAkJcGFnZV9sZW5ndGggPSByZW1haW4gPCBwYWdlX2xlbmd0aCA/IHJlbWFpbiA6IHBhZ2VfbGVuZ3RoOwogCQlpZiAobm9kZS5hbGxvY2F0ZWQpIHsKLQkJCXdtYigpOwogCQkJZ2d0dC0+dm0uaW5zZXJ0X3BhZ2UoJmdndHQtPnZtLAogCQkJCQkgICAgIGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Mob2JqLCBvZmZzZXQgPj4gUEFHRV9TSElGVCksCiAJCQkJCSAgICAgbm9kZS5zdGFydCwgSTkxNV9DQUNIRV9OT05FLCAwKTsKLQkJCXdtYigpOwogCQl9IGVsc2UgewogCQkJcGFnZV9iYXNlICs9IG9mZnNldCAmIFBBR0VfTUFTSzsKIAkJfQpAQCAtNDU0LDcgKzQxNiw2IEBAIGk5MTVfZ2VtX2d0dF9wcmVhZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogb3V0X3VucGluOgogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCWlmIChub2RlLmFsbG9jYXRlZCkgewotCQl3bWIoKTsKIAkJZ2d0dC0+dm0uY2xlYXJfcmFuZ2UoJmdndHQtPnZtLCBub2RlLnN0YXJ0LCBub2RlLnNpemUpOwogCQlyZW1vdmVfbWFwcGFibGVfbm9kZSgmbm9kZSk7CiAJfSBlbHNlIHsKQEAgLTU5MiwyMCArNTUzLDE2IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQocnBtKTsKIAl9CiAKLQl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCBOVUxMLCAwLCAwLAotCQkJCSAgICAgICBQSU5fTUFQUEFCTEUgfAotCQkJCSAgICAgICBQSU5fTk9ORkFVTFQgfAotCQkJCSAgICAgICBQSU5fTk9OQkxPQ0spOworCXZtYSA9IEVSUl9QVFIoLUVOT0RFVik7CisJaWYgKCFpOTE1X2dlbV9vYmplY3RfaXNfdGlsZWQob2JqKSkKKwkJdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9iaiwgTlVMTCwgMCwgMCwKKwkJCQkJICAgICAgIFBJTl9NQVBQQUJMRSB8CisJCQkJCSAgICAgICBQSU5fTk9OQkxPQ0sgLyogTk9XQVJOICovIHwKKwkJCQkJICAgICAgIFBJTl9OT0VWSUNUKTsKIAlpZiAoIUlTX0VSUih2bWEpKSB7CiAJCW5vZGUuc3RhcnQgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7CiAJCW5vZGUuYWxsb2NhdGVkID0gZmFsc2U7Ci0JCXJldCA9IGk5MTVfdm1hX3B1dF9mZW5jZSh2bWEpOwotCQlpZiAocmV0KSB7Ci0JCQlpOTE1X3ZtYV91bnBpbih2bWEpOwotCQkJdm1hID0gRVJSX1BUUihyZXQpOwotCQl9Ci0JfQotCWlmIChJU19FUlIodm1hKSkgeworCX0gZWxzZSB7CiAJCXJldCA9IGluc2VydF9tYXBwYWJsZV9ub2RlKGdndHQsICZub2RlLCBQQUdFX1NJWkUpOwogCQlpZiAocmV0KQogCQkJZ290byBvdXRfcnBtOwpAQCAtNjMxLDcgKzU4OCw3IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlnb3RvIG91dF91bnBpbjsKIAl9CiAKLQlpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShvYmosIE9SSUdJTl9DUFUpOworCWludGVsX2Zyb250YnVmZmVyX2ludmFsaWRhdGUob2JqLT5mcm9udGJ1ZmZlciwgT1JJR0lOX0NQVSk7CiAKIAl1c2VyX2RhdGEgPSB1NjRfdG9fdXNlcl9wdHIoYXJncy0+ZGF0YV9wdHIpOwogCW9mZnNldCA9IGFyZ3MtPm9mZnNldDsKQEAgLTY0OCw3ICs2MDUsOCBAQCBpOTE1X2dlbV9ndHRfcHdyaXRlX2Zhc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJdW5zaWduZWQgaW50IHBhZ2VfbGVuZ3RoID0gUEFHRV9TSVpFIC0gcGFnZV9vZmZzZXQ7CiAJCXBhZ2VfbGVuZ3RoID0gcmVtYWluIDwgcGFnZV9sZW5ndGggPyByZW1haW4gOiBwYWdlX2xlbmd0aDsKIAkJaWYgKG5vZGUuYWxsb2NhdGVkKSB7Ci0JCQl3bWIoKTsgLyogZmx1c2ggdGhlIHdyaXRlIGJlZm9yZSB3ZSBtb2RpZnkgdGhlIEdHVFQgKi8KKwkJCS8qIGZsdXNoIHRoZSB3cml0ZSBiZWZvcmUgd2UgbW9kaWZ5IHRoZSBHR1RUICovCisJCQlpbnRlbF9ndF9mbHVzaF9nZ3R0X3dyaXRlcyhnZ3R0LT52bS5ndCk7CiAJCQlnZ3R0LT52bS5pbnNlcnRfcGFnZSgmZ2d0dC0+dm0sCiAJCQkJCSAgICAgaTkxNV9nZW1fb2JqZWN0X2dldF9kbWFfYWRkcmVzcyhvYmosIG9mZnNldCA+PiBQQUdFX1NISUZUKSwKIAkJCQkJICAgICBub2RlLnN0YXJ0LCBJOTE1X0NBQ0hFX05PTkUsIDApOwpAQCAtNjcyLDEzICs2MzAsMTMgQEAgaTkxNV9nZW1fZ3R0X3B3cml0ZV9mYXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCXVzZXJfZGF0YSArPSBwYWdlX2xlbmd0aDsKIAkJb2Zmc2V0ICs9IHBhZ2VfbGVuZ3RoOwogCX0KLQlpbnRlbF9mYl9vYmpfZmx1c2gob2JqLCBPUklHSU5fQ1BVKTsKKwlpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChvYmotPmZyb250YnVmZmVyLCBPUklHSU5fQ1BVKTsKIAogCWk5MTVfZ2VtX29iamVjdF91bmxvY2tfZmVuY2Uob2JqLCBmZW5jZSk7CiBvdXRfdW5waW46CiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaW50ZWxfZ3RfZmx1c2hfZ2d0dF93cml0ZXMoZ2d0dC0+dm0uZ3QpOwogCWlmIChub2RlLmFsbG9jYXRlZCkgewotCQl3bWIoKTsKIAkJZ2d0dC0+dm0uY2xlYXJfcmFuZ2UoJmdndHQtPnZtLCBub2RlLnN0YXJ0LCBub2RlLnNpemUpOwogCQlyZW1vdmVfbWFwcGFibGVfbm9kZSgmbm9kZSk7CiAJfSBlbHNlIHsKQEAgLTc2NSw3ICs3MjMsNyBAQCBpOTE1X2dlbV9zaG1lbV9wd3JpdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJb2Zmc2V0ID0gMDsKIAl9CiAKLQlpbnRlbF9mYl9vYmpfZmx1c2gob2JqLCBPUklHSU5fQ1BVKTsKKwlpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChvYmotPmZyb250YnVmZmVyLCBPUklHSU5fQ1BVKTsKIAlpOTE1X2dlbV9vYmplY3RfdW5sb2NrX2ZlbmNlKG9iaiwgZmVuY2UpOwogCiAJcmV0dXJuIHJldDsKQEAgLTkyOSwzNSArODg3LDIzIEBAIHZvaWQgaTkxNV9nZW1fcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCX0KIH0KIAotc3RhdGljIGludCB3YWl0X2Zvcl9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCWlmICh3YWl0X2ZvcihpbnRlbF9lbmdpbmVzX2FyZV9pZGxlKGk5MTUpLCBJOTE1X0lETEVfRU5HSU5FU19USU1FT1VUKSkgewotCQlkZXZfZXJyKGk5MTUtPmRybS5kZXYsCi0JCQkiRmFpbGVkIHRvIGlkbGUgZW5naW5lcywgZGVjbGFyaW5nIHdlZGdlZCFcbiIpOwotCQlHRU1fVFJBQ0VfRFVNUCgpOwotCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGxvbmcKIHdhaXRfZm9yX3RpbWVsaW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJICAgdW5zaWduZWQgaW50IGZsYWdzLCBsb25nIHRpbWVvdXQpCisJCSAgIHVuc2lnbmVkIGludCB3YWl0LCBsb25nIHRpbWVvdXQpCiB7Ci0Jc3RydWN0IGk5MTVfZ3RfdGltZWxpbmVzICpndCA9ICZpOTE1LT5ndC50aW1lbGluZXM7Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsOworCXN0cnVjdCBpbnRlbF9ndF90aW1lbGluZXMgKnRpbWVsaW5lcyA9ICZpOTE1LT5ndC50aW1lbGluZXM7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JbXV0ZXhfbG9jaygmZ3QtPm11dGV4KTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRsLCAmZ3QtPmFjdGl2ZV9saXN0LCBsaW5rKSB7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnRpbWVsaW5lcy0+bG9jaywgZmxhZ3MpOworCWxpc3RfZm9yX2VhY2hfZW50cnkodGwsICZ0aW1lbGluZXMtPmFjdGl2ZV9saXN0LCBsaW5rKSB7CiAJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCiAJCXJxID0gaTkxNV9hY3RpdmVfcmVxdWVzdF9nZXRfdW5sb2NrZWQoJnRsLT5sYXN0X3JlcXVlc3QpOwogCQlpZiAoIXJxKQogCQkJY29udGludWU7CiAKLQkJbXV0ZXhfdW5sb2NrKCZndC0+bXV0ZXgpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKIAogCQkvKgogCQkgKiAiUmFjZS10by1pZGxlIi4KQEAgLTk2OCwxOSArOTE0LDE5IEBAIHdhaXRfZm9yX3RpbWVsaW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJICogd2FudCB0byBjb21wbGV0ZSBhcyBxdWlja2x5IGFzIHBvc3NpYmxlIHRvIGF2b2lkIHByb2xvbmdlZAogCQkgKiBzdGFsbHMsIHNvIGFsbG93IHRoZSBncHUgdG8gYm9vc3QgdG8gbWF4aW11bSBjbG9ja3MuCiAJCSAqLwotCQlpZiAoZmxhZ3MgJiBJOTE1X1dBSVRfRk9SX0lETEVfQk9PU1QpCisJCWlmICh3YWl0ICYgSTkxNV9XQUlUX0ZPUl9JRExFX0JPT1NUKQogCQkJZ2VuNl9ycHNfYm9vc3QocnEpOwogCi0JCXRpbWVvdXQgPSBpOTE1X3JlcXVlc3Rfd2FpdChycSwgZmxhZ3MsIHRpbWVvdXQpOworCQl0aW1lb3V0ID0gaTkxNV9yZXF1ZXN0X3dhaXQocnEsIHdhaXQsIHRpbWVvdXQpOwogCQlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKIAkJaWYgKHRpbWVvdXQgPCAwKQogCQkJcmV0dXJuIHRpbWVvdXQ7CiAKIAkJLyogcmVzdGFydCBhZnRlciByZWFjcXVpcmluZyB0aGUgbG9jayAqLwotCQltdXRleF9sb2NrKCZndC0+bXV0ZXgpOwotCQl0bCA9IGxpc3RfZW50cnkoJmd0LT5hY3RpdmVfbGlzdCwgdHlwZW9mKCp0bCksIGxpbmspOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7CisJCXRsID0gbGlzdF9lbnRyeSgmdGltZWxpbmVzLT5hY3RpdmVfbGlzdCwgdHlwZW9mKCp0bCksIGxpbmspOwogCX0KLQltdXRleF91bmxvY2soJmd0LT5tdXRleCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gdGltZW91dDsKIH0KQEAgLTk4OCwyOCArOTM0LDIxIEBAIHdhaXRfZm9yX3RpbWVsaW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIGludCBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJICAgdW5zaWduZWQgaW50IGZsYWdzLCBsb25nIHRpbWVvdXQpCiB7Ci0JR0VNX1RSQUNFKCJmbGFncz0leCAoJXMpLCB0aW1lb3V0PSVsZCVzLCBhd2FrZT89JXNcbiIsCi0JCSAgZmxhZ3MsIGZsYWdzICYgSTkxNV9XQUlUX0xPQ0tFRCA/ICJsb2NrZWQiIDogInVubG9ja2VkIiwKLQkJICB0aW1lb3V0LCB0aW1lb3V0ID09IE1BWF9TQ0hFRFVMRV9USU1FT1VUID8gIiAoZm9yZXZlcikiIDogIiIsCi0JCSAgeWVzbm8oaTkxNS0+Z3QuYXdha2UpKTsKLQogCS8qIElmIHRoZSBkZXZpY2UgaXMgYXNsZWVwLCB3ZSBoYXZlIG5vIHJlcXVlc3RzIG91dHN0YW5kaW5nICovCi0JaWYgKCFSRUFEX09OQ0UoaTkxNS0+Z3QuYXdha2UpKQorCWlmICghaW50ZWxfZ3RfcG1faXNfYXdha2UoJmk5MTUtPmd0KSkKIAkJcmV0dXJuIDA7CiAKKwlHRU1fVFJBQ0UoImZsYWdzPSV4ICglcyksIHRpbWVvdXQ9JWxkJXNcbiIsCisJCSAgZmxhZ3MsIGZsYWdzICYgSTkxNV9XQUlUX0xPQ0tFRCA/ICJsb2NrZWQiIDogInVubG9ja2VkIiwKKwkJICB0aW1lb3V0LCB0aW1lb3V0ID09IE1BWF9TQ0hFRFVMRV9USU1FT1VUID8gIiAoZm9yZXZlcikiIDogIiIpOworCiAJdGltZW91dCA9IHdhaXRfZm9yX3RpbWVsaW5lcyhpOTE1LCBmbGFncywgdGltZW91dCk7CiAJaWYgKHRpbWVvdXQgPCAwKQogCQlyZXR1cm4gdGltZW91dDsKIAogCWlmIChmbGFncyAmIEk5MTVfV0FJVF9MT0NLRUQpIHsKLQkJaW50IGVycjsKLQogCQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCQllcnIgPSB3YWl0X2Zvcl9lbmdpbmVzKGk5MTUpOwotCQlpZiAoZXJyKQotCQkJcmV0dXJuIGVycjsKLQogCQlpOTE1X3JldGlyZV9yZXF1ZXN0cyhpOTE1KTsKIAl9CiAKQEAgLTEwODgsNiArMTAyNywxNCBAQCBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCisJaWYgKHZtYS0+ZmVuY2UgJiYgIWk5MTVfZ2VtX29iamVjdF9pc190aWxlZChvYmopKSB7CisJCW11dGV4X2xvY2soJnZtYS0+dm0tPm11dGV4KTsKKwkJcmV0ID0gaTkxNV92bWFfcmV2b2tlX2ZlbmNlKHZtYSk7CisJCW11dGV4X3VubG9jaygmdm1hLT52bS0+bXV0ZXgpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwl9CisKIAlyZXQgPSBpOTE1X3ZtYV9waW4odm1hLCBzaXplLCBhbGlnbm1lbnQsIGZsYWdzIHwgUElOX0dMT0JBTCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKQEAgLTExODQsOCArMTEzMSw4IEBAIHZvaWQgaTkxNV9nZW1fc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJICogYmFjayB0byBkZWZhdWx0cywgcmVjb3ZlcmluZyBmcm9tIHdoYXRldmVyIHdlZGdlZCBzdGF0ZSB3ZSBsZWZ0IGl0CiAJICogaW4gYW5kIHNvIHdvcnRoIHRyeWluZyB0byB1c2UgdGhlIGRldmljZSBvbmNlIG1vcmUuCiAJICovCi0JaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNSkpCi0JCWk5MTVfZ2VtX3Vuc2V0X3dlZGdlZChpOTE1KTsKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKCZpOTE1LT5ndCkpCisJCWludGVsX2d0X3Vuc2V0X3dlZGdlZCgmaTkxNS0+Z3QpOwogCiAJLyoKIAkgKiBJZiB3ZSBpbmhlcml0IGNvbnRleHQgc3RhdGUgZnJvbSB0aGUgQklPUyBvciBlYXJsaWVyIG9jY3VwYW50cwpAQCAtMTE5NSw4MiArMTE0Miw3MiBAQCB2b2lkIGk5MTVfZ2VtX3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCSAqIGl0IG1heSBpbXBhY3QgdGhlIGRpc3BsYXkgYW5kIHdlIGFyZSB1bmNlcnRhaW4gYWJvdXQgdGhlIHN0YWJpbGl0eQogCSAqIG9mIHRoZSByZXNldCwgc28gdGhpcyBjb3VsZCBiZSBhcHBsaWVkIHRvIGV2ZW4gZWFybGllciBnZW4uCiAJICovCi0JaW50ZWxfZ3Rfc2FuaXRpemUoaTkxNSwgZmFsc2UpOworCWludGVsX2d0X3Nhbml0aXplKCZpOTE1LT5ndCwgZmFsc2UpOwogCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoJmk5MTUtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogfQogCi12b2lkIGk5MTVfZ2VtX2luaXRfc3dpenpsaW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGluaXRfdW51c2VkX3Jpbmcoc3RydWN0IGludGVsX2d0ICpndCwgdTMyIGJhc2UpCiB7Ci0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA1IHx8Ci0JICAgIGRldl9wcml2LT5tbS5iaXRfNl9zd2l6emxlX3ggPT0gSTkxNV9CSVRfNl9TV0laWkxFX05PTkUpCi0JCXJldHVybjsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3JlOwogCi0JSTkxNV9XUklURShESVNQX0FSQl9DVEwsIEk5MTVfUkVBRChESVNQX0FSQl9DVEwpIHwKLQkJCQkgRElTUF9USUxFX1NVUkZBQ0VfU1dJWlpMSU5HKTsKLQotCWlmIChJU19HRU4oZGV2X3ByaXYsIDUpKQotCQlyZXR1cm47Ci0KLQlJOTE1X1dSSVRFKFRJTEVDVEwsIEk5MTVfUkVBRChUSUxFQ1RMKSB8IFRJTEVDVExfU1daQ1RMKTsKLQlpZiAoSVNfR0VOKGRldl9wcml2LCA2KSkKLQkJSTkxNV9XUklURShBUkJfTU9ERSwgX01BU0tFRF9CSVRfRU5BQkxFKEFSQl9NT0RFX1NXSVpaTEVfU05CKSk7Ci0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA3KSkKLQkJSTkxNV9XUklURShBUkJfTU9ERSwgX01BU0tFRF9CSVRfRU5BQkxFKEFSQl9NT0RFX1NXSVpaTEVfSVZCKSk7Ci0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA4KSkKLQkJSTkxNV9XUklURShHQU1UQVJCTU9ERSwgX01BU0tFRF9CSVRfRU5BQkxFKEFSQl9NT0RFX1NXSVpaTEVfQkRXKSk7Ci0JZWxzZQotCQlCVUcoKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBSSU5HX0NUTChiYXNlKSwgMCk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgUklOR19IRUFEKGJhc2UpLCAwKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBSSU5HX1RBSUwoYmFzZSksIDApOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIFJJTkdfU1RBUlQoYmFzZSksIDApOwogfQogCi1zdGF0aWMgdm9pZCBpbml0X3VudXNlZF9yaW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGJhc2UpCitzdGF0aWMgdm9pZCBpbml0X3VudXNlZF9yaW5ncyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCUk5MTVfV1JJVEUoUklOR19DVEwoYmFzZSksIDApOwotCUk5MTVfV1JJVEUoUklOR19IRUFEKGJhc2UpLCAwKTsKLQlJOTE1X1dSSVRFKFJJTkdfVEFJTChiYXNlKSwgMCk7Ci0JSTkxNV9XUklURShSSU5HX1NUQVJUKGJhc2UpLCAwKTsKLX0KKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd0LT5pOTE1OwogCi1zdGF0aWMgdm9pZCBpbml0X3VudXNlZF9yaW5ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0JaWYgKElTX0k4MzAoZGV2X3ByaXYpKSB7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2X3ByaXYsIFBSQjFfQkFTRSk7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2X3ByaXYsIFNSQjBfQkFTRSk7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2X3ByaXYsIFNSQjFfQkFTRSk7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2X3ByaXYsIFNSQjJfQkFTRSk7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2X3ByaXYsIFNSQjNfQkFTRSk7Ci0JfSBlbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDIpKSB7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2X3ByaXYsIFNSQjBfQkFTRSk7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2X3ByaXYsIFNSQjFfQkFTRSk7Ci0JfSBlbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDMpKSB7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2X3ByaXYsIFBSQjFfQkFTRSk7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2X3ByaXYsIFBSQjJfQkFTRSk7CisJaWYgKElTX0k4MzAoaTkxNSkpIHsKKwkJaW5pdF91bnVzZWRfcmluZyhndCwgUFJCMV9CQVNFKTsKKwkJaW5pdF91bnVzZWRfcmluZyhndCwgU1JCMF9CQVNFKTsKKwkJaW5pdF91bnVzZWRfcmluZyhndCwgU1JCMV9CQVNFKTsKKwkJaW5pdF91bnVzZWRfcmluZyhndCwgU1JCMl9CQVNFKTsKKwkJaW5pdF91bnVzZWRfcmluZyhndCwgU1JCM19CQVNFKTsKKwl9IGVsc2UgaWYgKElTX0dFTihpOTE1LCAyKSkgeworCQlpbml0X3VudXNlZF9yaW5nKGd0LCBTUkIwX0JBU0UpOworCQlpbml0X3VudXNlZF9yaW5nKGd0LCBTUkIxX0JBU0UpOworCX0gZWxzZSBpZiAoSVNfR0VOKGk5MTUsIDMpKSB7CisJCWluaXRfdW51c2VkX3JpbmcoZ3QsIFBSQjFfQkFTRSk7CisJCWluaXRfdW51c2VkX3JpbmcoZ3QsIFBSQjJfQkFTRSk7CiAJfQogfQogCi1pbnQgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitpbnQgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmaTkxNS0+Z3Q7CiAJaW50IHJldDsKIAotCWRldl9wcml2LT5ndC5sYXN0X2luaXRfdGltZSA9IGt0aW1lX2dldCgpOworCUJVR19PTighaTkxNS0+a2VybmVsX2NvbnRleHQpOworCXJldCA9IGludGVsX2d0X3Rlcm1pbmFsbHlfd2VkZ2VkKGd0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJZ3QtPmxhc3RfaW5pdF90aW1lID0ga3RpbWVfZ2V0KCk7CiAKIAkvKiBEb3VibGUgbGF5ZXIgc2VjdXJpdHkgYmxhbmtldCwgc2VlIGk5MTVfZ2VtX2luaXQoKSAqLwotCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKKwlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCh1bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwogCi0JaWYgKEhBU19FRFJBTShkZXZfcHJpdikgJiYgSU5URUxfR0VOKGRldl9wcml2KSA8IDkpCi0JCUk5MTVfV1JJVEUoSFNXX0lESUNSLCBJOTE1X1JFQUQoSFNXX0lESUNSKSB8IElESUhBU0hNU0soMHhmKSk7CisJaWYgKEhBU19FRFJBTShpOTE1KSAmJiBJTlRFTF9HRU4oaTkxNSkgPCA5KQorCQlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgSFNXX0lESUNSLCAwLCBJRElIQVNITVNLKDB4ZikpOwogCi0JaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQotCQlJOTE1X1dSSVRFKE1JX1BSRURJQ0FURV9SRVNVTFRfMiwgSVNfSFNXX0dUMyhkZXZfcHJpdikgPwotCQkJICAgTE9XRVJfU0xJQ0VfRU5BQkxFRCA6IExPV0VSX1NMSUNFX0RJU0FCTEVEKTsKKwlpZiAoSVNfSEFTV0VMTChpOTE1KSkKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwKKwkJCQkgICBNSV9QUkVESUNBVEVfUkVTVUxUXzIsCisJCQkJICAgSVNfSFNXX0dUMyhpOTE1KSA/CisJCQkJICAgTE9XRVJfU0xJQ0VfRU5BQkxFRCA6IExPV0VSX1NMSUNFX0RJU0FCTEVEKTsKIAogCS8qIEFwcGx5IHRoZSBHVCB3b3JrYXJvdW5kcy4uLiAqLwotCWludGVsX2d0X2FwcGx5X3dvcmthcm91bmRzKGRldl9wcml2KTsKKwlpbnRlbF9ndF9hcHBseV93b3JrYXJvdW5kcyhndCk7CiAJLyogLi4uYW5kIGRldGVybWluZSB3aGV0aGVyIHRoZXkgYXJlIHN0aWNraW5nLiAqLwotCWludGVsX2d0X3ZlcmlmeV93b3JrYXJvdW5kcyhkZXZfcHJpdiwgImluaXQiKTsKKwlpbnRlbF9ndF92ZXJpZnlfd29ya2Fyb3VuZHMoZ3QsICJpbml0Iik7CiAKLQlpOTE1X2dlbV9pbml0X3N3aXp6bGluZyhkZXZfcHJpdik7CisJaW50ZWxfZ3RfaW5pdF9zd2l6emxpbmcoZ3QpOwogCiAJLyoKIAkgKiBBdCBsZWFzdCA4MzAgY2FuIGxlYXZlIHNvbWUgb2YgdGhlIHVudXNlZCByaW5ncwpAQCAtMTI3OCw0OSArMTIxNSwzMiBAQCBpbnQgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogd2lsbCBwcmV2ZW50IGMzIGVudHJ5LiBNYWtlcyBzdXJlIGFsbCB1bnVzZWQgcmluZ3MKIAkgKiBhcmUgdG90YWxseSBpZGxlLgogCSAqLwotCWluaXRfdW51c2VkX3JpbmdzKGRldl9wcml2KTsKKwlpbml0X3VudXNlZF9yaW5ncyhndCk7CiAKLQlCVUdfT04oIWRldl9wcml2LT5rZXJuZWxfY29udGV4dCk7Ci0JcmV0ID0gaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChkZXZfcHJpdik7Ci0JaWYgKHJldCkKLQkJZ290byBvdXQ7Ci0KLQlyZXQgPSBpOTE1X3BwZ3R0X2luaXRfaHcoZGV2X3ByaXYpOworCXJldCA9IGk5MTVfcHBndHRfaW5pdF9odyhndCk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoIkVuYWJsaW5nIFBQR1RUIGZhaWxlZCAoJWQpXG4iLCByZXQpOwogCQlnb3RvIG91dDsKIAl9CiAKLQlyZXQgPSBpbnRlbF93b3BjbV9pbml0X2h3KCZkZXZfcHJpdi0+d29wY20pOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJFbmFibGluZyBXT1BDTSBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKLQkJZ290byBvdXQ7Ci0JfQotCiAJLyogV2UgY2FuJ3QgZW5hYmxlIGNvbnRleHRzIHVudGlsIGFsbCBmaXJtd2FyZSBpcyBsb2FkZWQgKi8KLQlyZXQgPSBpbnRlbF91Y19pbml0X2h3KGRldl9wcml2KTsKKwlyZXQgPSBpbnRlbF91Y19pbml0X2h3KCZndC0+dWMpOwogCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJFbmFibGluZyB1YyBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKKwkJaTkxNV9wcm9iZV9lcnJvcihpOTE1LCAiRW5hYmxpbmcgdWMgZmFpbGVkICglZClcbiIsIHJldCk7CiAJCWdvdG8gb3V0OwogCX0KIAotCWludGVsX21vY3NfaW5pdF9sM2NjX3RhYmxlKGRldl9wcml2KTsKLQotCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKLQotCWludGVsX2VuZ2luZXNfc2V0X3NjaGVkdWxlcl9jYXBzKGRldl9wcml2KTsKLQlyZXR1cm4gMDsKKwlpbnRlbF9tb2NzX2luaXQoZ3QpOwogCiBvdXQ6Ci0JaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoJmRldl9wcml2LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOworCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KHVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBfX2ludGVsX2VuZ2luZXNfcmVjb3JkX2RlZmF1bHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogeworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3RzW0k5MTVfTlVNX0VOR0lORVNdID0ge307CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Ci0Jc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXMgKmU7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJaW50IGVyciA9IDA7CiAKQEAgLTEzMzMsNDYgKzEyNTMsNzIgQEAgc3RhdGljIGludCBfX2ludGVsX2VuZ2luZXNfcmVjb3JkX2RlZmF1bHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCSAqIGZyb20gdGhlIHNhbWUgZGVmYXVsdCBIVyB2YWx1ZXMuCiAJICovCiAKLQljdHggPSBpOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9rZXJuZWwoaTkxNSwgMCk7Ci0JaWYgKElTX0VSUihjdHgpKQotCQlyZXR1cm4gUFRSX0VSUihjdHgpOwotCi0JZSA9IGk5MTVfZ2VtX2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCk7Ci0KIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewotCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBlLT5lbmdpbmVzW2lkXTsKKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKIAorCQkvKiBXZSBtdXN0IGJlIGFibGUgdG8gc3dpdGNoIHRvIHNvbWV0aGluZyEgKi8KKwkJR0VNX0JVR19PTighZW5naW5lLT5rZXJuZWxfY29udGV4dCk7CisJCWVuZ2luZS0+c2VyaWFsKys7IC8qIGZvcmNlIHRoZSBrZXJuZWwgY29udGV4dCBzd2l0Y2ggKi8KKworCQljZSA9IGludGVsX2NvbnRleHRfY3JlYXRlKGk5MTUtPmtlcm5lbF9jb250ZXh0LCBlbmdpbmUpOworCQlpZiAoSVNfRVJSKGNlKSkgeworCQkJZXJyID0gUFRSX0VSUihjZSk7CisJCQlnb3RvIG91dDsKKwkJfQorCiAJCXJxID0gaW50ZWxfY29udGV4dF9jcmVhdGVfcmVxdWVzdChjZSk7CiAJCWlmIChJU19FUlIocnEpKSB7CiAJCQllcnIgPSBQVFJfRVJSKHJxKTsKLQkJCWdvdG8gZXJyX2FjdGl2ZTsKKwkJCWludGVsX2NvbnRleHRfcHV0KGNlKTsKKwkJCWdvdG8gb3V0OwogCQl9CiAKLQkJZXJyID0gMDsKLQkJaWYgKHJxLT5lbmdpbmUtPmluaXRfY29udGV4dCkKLQkJCWVyciA9IHJxLT5lbmdpbmUtPmluaXRfY29udGV4dChycSk7CisJCWVyciA9IGludGVsX2VuZ2luZV9lbWl0X2N0eF93YShycSk7CisJCWlmIChlcnIpCisJCQlnb3RvIGVycl9ycTsKIAorCQkvKgorCQkgKiBGYWlsaW5nIHRvIHByb2dyYW0gdGhlIE1PQ1MgaXMgbm9uLWZhdGFsLlRoZSBzeXN0ZW0gd2lsbCBub3QKKwkJICogcnVuIGF0IHBlYWsgcGVyZm9ybWFuY2UuIFNvIHdhcm4gdGhlIHVzZXIgYW5kIGNhcnJ5IG9uLgorCQkgKi8KKwkJZXJyID0gaW50ZWxfbW9jc19lbWl0KHJxKTsKKwkJaWYgKGVycikKKwkJCWRldl9ub3RpY2UoaTkxNS0+ZHJtLmRldiwKKwkJCQkgICAiRmFpbGVkIHRvIHByb2dyYW0gTU9DUyByZWdpc3RlcnM7IGV4cGVjdCBwZXJmb3JtYW5jZSBpc3N1ZXMuXG4iKTsKKworCQllcnIgPSBpbnRlbF9yZW5kZXJzdGF0ZV9lbWl0KHJxKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyX3JxOworCitlcnJfcnE6CisJCXJlcXVlc3RzW2lkXSA9IGk5MTVfcmVxdWVzdF9nZXQocnEpOwogCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKIAkJaWYgKGVycikKLQkJCWdvdG8gZXJyX2FjdGl2ZTsKKwkJCWdvdG8gb3V0OwogCX0KIAogCS8qIEZsdXNoIHRoZSBkZWZhdWx0IGNvbnRleHQgaW1hZ2UgdG8gbWVtb3J5LCBhbmQgZW5hYmxlIHBvd2Vyc2F2aW5nLiAqLwogCWlmICghaTkxNV9nZW1fbG9hZF9wb3dlcl9jb250ZXh0KGk5MTUpKSB7CiAJCWVyciA9IC1FSU87Ci0JCWdvdG8gZXJyX2FjdGl2ZTsKKwkJZ290byBvdXQ7CiAJfQogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKLQkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gZS0+ZW5naW5lc1tpZF07Ci0JCXN0cnVjdCBpOTE1X3ZtYSAqc3RhdGUgPSBjZS0+c3RhdGU7CisJZm9yIChpZCA9IDA7IGlkIDwgQVJSQVlfU0laRShyZXF1ZXN0cyk7IGlkKyspIHsKKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisJCXN0cnVjdCBpOTE1X3ZtYSAqc3RhdGU7CiAJCXZvaWQgKnZhZGRyOwogCi0JCWlmICghc3RhdGUpCisJCXJxID0gcmVxdWVzdHNbaWRdOworCQlpZiAoIXJxKQogCQkJY29udGludWU7CiAKLQkJR0VNX0JVR19PTihpbnRlbF9jb250ZXh0X2lzX3Bpbm5lZChjZSkpOworCQkvKiBXZSB3YW50IHRvIGJlIGFibGUgdG8gdW5iaW5kIHRoZSBzdGF0ZSBmcm9tIHRoZSBHR1RUICovCisJCUdFTV9CVUdfT04oaW50ZWxfY29udGV4dF9pc19waW5uZWQocnEtPmh3X2NvbnRleHQpKTsKKworCQlzdGF0ZSA9IHJxLT5od19jb250ZXh0LT5zdGF0ZTsKKwkJaWYgKCFzdGF0ZSkKKwkJCWNvbnRpbnVlOwogCiAJCS8qCiAJCSAqIEFzIHdlIHdpbGwgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgbG9naWNhbCBzdGF0ZSwgaXQgd2lsbApAQCAtMTM4NCw5OSArMTMzMCw2MCBAQCBzdGF0aWMgaW50IF9faW50ZWxfZW5naW5lc19yZWNvcmRfZGVmYXVsdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCSAqLwogCQllcnIgPSBpOTE1X3ZtYV91bmJpbmQoc3RhdGUpOwogCQlpZiAoZXJyKQotCQkJZ290byBlcnJfYWN0aXZlOworCQkJZ290byBvdXQ7CiAKIAkJaTkxNV9nZW1fb2JqZWN0X2xvY2soc3RhdGUtPm9iaik7CiAJCWVyciA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fY3B1X2RvbWFpbihzdGF0ZS0+b2JqLCBmYWxzZSk7CiAJCWk5MTVfZ2VtX29iamVjdF91bmxvY2soc3RhdGUtPm9iaik7CiAJCWlmIChlcnIpCi0JCQlnb3RvIGVycl9hY3RpdmU7CisJCQlnb3RvIG91dDsKIAotCQllbmdpbmUtPmRlZmF1bHRfc3RhdGUgPSBpOTE1X2dlbV9vYmplY3RfZ2V0KHN0YXRlLT5vYmopOwotCQlpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2NvaGVyZW5jeShlbmdpbmUtPmRlZmF1bHRfc3RhdGUsCi0JCQkJCQkgICAgSTkxNV9DQUNIRV9MTEMpOworCQlpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2NvaGVyZW5jeShzdGF0ZS0+b2JqLCBJOTE1X0NBQ0hFX0xMQyk7CiAKIAkJLyogQ2hlY2sgd2UgY2FuIGFjcXVpcmUgdGhlIGltYWdlIG9mIHRoZSBjb250ZXh0IHN0YXRlICovCi0JCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoZW5naW5lLT5kZWZhdWx0X3N0YXRlLAotCQkJCQkJSTkxNV9NQVBfRk9SQ0VfV0IpOworCQl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHN0YXRlLT5vYmosIEk5MTVfTUFQX0ZPUkNFX1dCKTsKIAkJaWYgKElTX0VSUih2YWRkcikpIHsKIAkJCWVyciA9IFBUUl9FUlIodmFkZHIpOwotCQkJZ290byBlcnJfYWN0aXZlOworCQkJZ290byBvdXQ7CiAJCX0KIAotCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGVuZ2luZS0+ZGVmYXVsdF9zdGF0ZSk7CisJCXJxLT5lbmdpbmUtPmRlZmF1bHRfc3RhdGUgPSBpOTE1X2dlbV9vYmplY3RfZ2V0KHN0YXRlLT5vYmopOworCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKHN0YXRlLT5vYmopOwogCX0KIAotCWlmIChJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVR19HRU0pKSB7Ci0JCXVuc2lnbmVkIGludCBmb3VuZCA9IGludGVsX2VuZ2luZXNfaGFzX2NvbnRleHRfaXNvbGF0aW9uKGk5MTUpOwotCi0JCS8qCi0JCSAqIE1ha2Ugc3VyZSB0aGF0IGNsYXNzZXMgd2l0aCBtdWx0aXBsZSBlbmdpbmUgaW5zdGFuY2VzIGFsbAotCQkgKiBzaGFyZSB0aGUgc2FtZSBiYXNpYyBjb25maWd1cmF0aW9uLgotCQkgKi8KLQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKLQkJCXVuc2lnbmVkIGludCBiaXQgPSBCSVQoZW5naW5lLT51YWJpX2NsYXNzKTsKLQkJCXVuc2lnbmVkIGludCBleHBlY3RlZCA9IGVuZ2luZS0+ZGVmYXVsdF9zdGF0ZSA/IGJpdCA6IDA7Ci0KLQkJCWlmICgoZm91bmQgJiBiaXQpICE9IGV4cGVjdGVkKSB7Ci0JCQkJRFJNX0VSUk9SKCJtaXNtYXRjaGluZyBkZWZhdWx0IGNvbnRleHQgc3RhdGUgZm9yIGNsYXNzICVkIG9uIGVuZ2luZSAlc1xuIiwKLQkJCQkJICBlbmdpbmUtPnVhYmlfY2xhc3MsIGVuZ2luZS0+bmFtZSk7Ci0JCQl9Ci0JCX0KLQl9Ci0KLW91dF9jdHg6Ci0JaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOwotCWk5MTVfZ2VtX2NvbnRleHRfc2V0X2Nsb3NlZChjdHgpOwotCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGN0eCk7Ci0JcmV0dXJuIGVycjsKLQotZXJyX2FjdGl2ZToKK291dDoKIAkvKgogCSAqIElmIHdlIGhhdmUgdG8gYWJhbmRvbiBub3csIHdlIGV4cGVjdCB0aGUgZW5naW5lcyB0byBiZSBpZGxlCiAJICogYW5kIHJlYWR5IHRvIGJlIHRvcm4tZG93bi4gVGhlIHF1aWNrZXN0IHdheSB3ZSBjYW4gYWNjb21wbGlzaAogCSAqIHRoaXMgaXMgYnkgZGVjbGFyaW5nIG91cnNlbHZlcyB3ZWRnZWQuCiAJICovCi0JaTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKLQlnb3RvIG91dF9jdHg7CisJaWYgKGVycikKKwkJaW50ZWxfZ3Rfc2V0X3dlZGdlZCgmaTkxNS0+Z3QpOworCisJZm9yIChpZCA9IDA7IGlkIDwgQVJSQVlfU0laRShyZXF1ZXN0cyk7IGlkKyspIHsKKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOworCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKworCQlycSA9IHJlcXVlc3RzW2lkXTsKKwkJaWYgKCFycSkKKwkJCWNvbnRpbnVlOworCisJCWNlID0gcnEtPmh3X2NvbnRleHQ7CisJCWk5MTVfcmVxdWVzdF9wdXQocnEpOworCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7CisJfQorCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBpbnQKIGk5MTVfZ2VtX2luaXRfc2NyYXRjaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IHNpemUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQlpbnQgcmV0OwotCi0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oaTkxNSwgc2l6ZSk7Ci0JaWYgKCFvYmopCi0JCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoaTkxNSwgc2l6ZSk7Ci0JaWYgKElTX0VSUihvYmopKSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHNjcmF0Y2ggcGFnZVxuIik7Ci0JCXJldHVybiBQVFJfRVJSKG9iaik7Ci0JfQotCi0Jdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCAmaTkxNS0+Z2d0dC52bSwgTlVMTCk7Ci0JaWYgKElTX0VSUih2bWEpKSB7Ci0JCXJldCA9IFBUUl9FUlIodm1hKTsKLQkJZ290byBlcnJfdW5yZWY7Ci0JfQotCi0JcmV0ID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgUElOX0dMT0JBTCB8IFBJTl9ISUdIKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl91bnJlZjsKLQotCWk5MTUtPmd0LnNjcmF0Y2ggPSB2bWE7Ci0JcmV0dXJuIDA7Ci0KLWVycl91bnJlZjoKLQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gaW50ZWxfZ3RfaW5pdF9zY3JhdGNoKCZpOTE1LT5ndCwgc2l6ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2Zpbmlfc2NyYXRjaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmaTkxNS0+Z3Quc2NyYXRjaCwgMCk7CisJaW50ZWxfZ3RfZmluaV9zY3JhdGNoKCZpOTE1LT5ndCk7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxfZW5naW5lc192ZXJpZnlfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCkBAIC0xNTA1LDIxICsxNDEyLDE0IEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJbWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdiktPnBhZ2Vfc2l6ZXMgPQogCQkJSTkxNV9HVFRfUEFHRV9TSVpFXzRLOwogCi0JZGV2X3ByaXYtPm1tLnVub3JkZXJlZF90aW1lbGluZSA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwotCi0JaTkxNV90aW1lbGluZXNfaW5pdChkZXZfcHJpdik7CisJaW50ZWxfdGltZWxpbmVzX2luaXQoZGV2X3ByaXYpOwogCiAJcmV0ID0gaTkxNV9nZW1faW5pdF91c2VycHRyKGRldl9wcml2KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JcmV0ID0gaW50ZWxfdWNfaW5pdF9taXNjKGRldl9wcml2KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcmV0ID0gaW50ZWxfd29wY21faW5pdCgmZGV2X3ByaXYtPndvcGNtKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl91Y19taXNjOworCWludGVsX3VjX2ZldGNoX2Zpcm13YXJlcygmZGV2X3ByaXYtPmd0LnVjKTsKKwlpbnRlbF93b3BjbV9pbml0KCZkZXZfcHJpdi0+d29wY20pOwogCiAJLyogVGhpcyBpcyBqdXN0IGEgc2VjdXJpdHkgYmxhbmtldCB0byBwbGFjYXRlIGRyYWdvbnMuCiAJICogT24gc29tZSBzeXN0ZW1zLCB3ZSB2ZXJ5IHNwb3JhZGljYWxseSBvYnNlcnZlIHRoYXQgdGhlIGZpcnN0IFRMQnMKQEAgLTE1MzAsNyArMTQzMCw3IEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoJmRldl9wcml2LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwogCi0JcmV0ID0gaTkxNV9nZW1faW5pdF9nZ3R0KGRldl9wcml2KTsKKwlyZXQgPSBpOTE1X2luaXRfZ2d0dChkZXZfcHJpdik7CiAJaWYgKHJldCkgewogCQlHRU1fQlVHX09OKHJldCA9PSAtRUlPKTsKIAkJZ290byBlcnJfdW5sb2NrOwpAQCAtMTU2MywxNiArMTQ2MywxNCBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlpbnRlbF9pbml0X2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7CiAKLQlyZXQgPSBpbnRlbF91Y19pbml0KGRldl9wcml2KTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9wbTsKKwlpbnRlbF91Y19pbml0KCZkZXZfcHJpdi0+Z3QudWMpOwogCiAJcmV0ID0gaTkxNV9nZW1faW5pdF9odyhkZXZfcHJpdik7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfdWNfaW5pdDsKIAogCS8qIE9ubHkgd2hlbiB0aGUgSFcgaXMgcmUtaW5pdGlhbGlzZWQsIGNhbiB3ZSByZXBsYXkgdGhlIHJlcXVlc3RzICovCi0JcmV0ID0gaW50ZWxfZ3RfcmVzdW1lKGRldl9wcml2KTsKKwlyZXQgPSBpbnRlbF9ndF9yZXN1bWUoJmRldl9wcml2LT5ndCk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfaW5pdF9odzsKIApAQCAtMTU5NSwxNSArMTQ5MywxMyBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKHJldCkKIAkJZ290byBlcnJfZ3Q7CiAKLQlpZiAoaTkxNV9pbmplY3RfbG9hZF9mYWlsdXJlKCkpIHsKLQkJcmV0ID0gLUVOT0RFVjsKKwlyZXQgPSBpOTE1X2luamVjdF9sb2FkX2Vycm9yKGRldl9wcml2LCAtRU5PREVWKTsKKwlpZiAocmV0KQogCQlnb3RvIGVycl9ndDsKLQl9CiAKLQlpZiAoaTkxNV9pbmplY3RfbG9hZF9mYWlsdXJlKCkpIHsKLQkJcmV0ID0gLUVJTzsKKwlyZXQgPSBpOTE1X2luamVjdF9sb2FkX2Vycm9yKGRldl9wcml2LCAtRUlPKTsKKwlpZiAocmV0KQogCQlnb3RvIGVycl9ndDsKLQl9CiAKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CkBAIC0xNjE5LDcgKzE1MTUsNyBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBlcnJfZ3Q6CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGRldl9wcml2KTsKKwlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZkZXZfcHJpdi0+Z3QpOwogCWk5MTVfZ2VtX3N1c3BlbmQoZGV2X3ByaXYpOwogCWk5MTVfZ2VtX3N1c3BlbmRfbGF0ZShkZXZfcHJpdik7CiAKQEAgLTE2MjcsMTEgKzE1MjMsMTAgQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogZXJyX2luaXRfaHc6Ci0JaW50ZWxfdWNfZmluaV9odyhkZXZfcHJpdik7CisJaW50ZWxfdWNfZmluaV9odygmZGV2X3ByaXYtPmd0LnVjKTsKIGVycl91Y19pbml0OgotCWludGVsX3VjX2ZpbmkoZGV2X3ByaXYpOwotZXJyX3BtOgogCWlmIChyZXQgIT0gLUVJTykgeworCQlpbnRlbF91Y19maW5pKCZkZXZfcHJpdi0+Z3QudWMpOwogCQlpbnRlbF9jbGVhbnVwX2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7CiAJCWludGVsX2VuZ2luZXNfY2xlYW51cChkZXZfcHJpdik7CiAJfQpAQCAtMTY0NSwyNiArMTU0MCwyNCBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoJmRldl9wcml2LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi1lcnJfdWNfbWlzYzoKLQlpbnRlbF91Y19maW5pX21pc2MoZGV2X3ByaXYpOwotCiAJaWYgKHJldCAhPSAtRUlPKSB7CisJCWludGVsX3VjX2NsZWFudXBfZmlybXdhcmVzKCZkZXZfcHJpdi0+Z3QudWMpOwogCQlpOTE1X2dlbV9jbGVhbnVwX3VzZXJwdHIoZGV2X3ByaXYpOwotCQlpOTE1X3RpbWVsaW5lc19maW5pKGRldl9wcml2KTsKKwkJaW50ZWxfdGltZWxpbmVzX2ZpbmkoZGV2X3ByaXYpOwogCX0KIAogCWlmIChyZXQgPT0gLUVJTykgewogCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAkJLyoKLQkJICogQWxsb3cgZW5naW5lIGluaXRpYWxpc2F0aW9uIHRvIGZhaWwgYnkgbWFya2luZyB0aGUgR1BVIGFzCi0JCSAqIHdlZGdlZC4gQnV0IHdlIG9ubHkgd2FudCB0byBkbyB0aGlzIHdoZXJlIHRoZSBHUFUgaXMgYW5ncnksCisJCSAqIEFsbG93IGVuZ2luZXMgb3IgdUMgaW5pdGlhbGlzYXRpb24gdG8gZmFpbCBieSBtYXJraW5nIHRoZSBHUFUKKwkJICogYXMgd2VkZ2VkLiBCdXQgd2Ugb25seSB3YW50IHRvIGRvIHRoaXMgd2hlbiB0aGUgR1BVIGlzIGFuZ3J5LAogCQkgKiBmb3IgYWxsIG90aGVyIGZhaWx1cmUsIHN1Y2ggYXMgYW4gYWxsb2NhdGlvbiBmYWlsdXJlLCBiYWlsLgogCQkgKi8KLQkJaWYgKCFpOTE1X3Jlc2V0X2ZhaWxlZChkZXZfcHJpdikpIHsKLQkJCWk5MTVfbG9hZF9lcnJvcihkZXZfcHJpdiwKLQkJCQkJIkZhaWxlZCB0byBpbml0aWFsaXplIEdQVSwgZGVjbGFyaW5nIGl0IHdlZGdlZCFcbiIpOwotCQkJaTkxNV9nZW1fc2V0X3dlZGdlZChkZXZfcHJpdik7CisJCWlmICghaW50ZWxfZ3RfaXNfd2VkZ2VkKCZkZXZfcHJpdi0+Z3QpKSB7CisJCQlpOTE1X3Byb2JlX2Vycm9yKGRldl9wcml2LAorCQkJCQkgIkZhaWxlZCB0byBpbml0aWFsaXplIEdQVSwgZGVjbGFyaW5nIGl0IHdlZGdlZCFcbiIpOworCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZCgmZGV2X3ByaXYtPmd0KTsKIAkJfQogCiAJCS8qIE1pbmltYWwgYmFzaWMgcmVjb3ZlcnkgZm9yIEtNUyAqLwpAQCAtMTY4MCw3ICsxNTczLDE5IEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gcmV0OwogfQogCi12b2lkIGk5MTVfZ2VtX2ZpbmlfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQordm9pZCBpOTE1X2dlbV9kcml2ZXJfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJaTkxNV9nZW1fZHJpdmVyX3JlZ2lzdGVyX19zaHJpbmtlcihpOTE1KTsKKworCWludGVsX2VuZ2luZXNfZHJpdmVyX3JlZ2lzdGVyKGk5MTUpOworfQorCit2b2lkIGk5MTVfZ2VtX2RyaXZlcl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWk5MTVfZ2VtX2RyaXZlcl91bnJlZ2lzdGVyX19zaHJpbmtlcihpOTE1KTsKK30KKwordm9pZCBpOTE1X2dlbV9kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlHRU1fQlVHX09OKGRldl9wcml2LT5ndC5hd2FrZSk7CiAKQEAgLTE2OTMsMTQgKzE1OTgsMTQgQEAgdm9pZCBpOTE1X2dlbV9maW5pX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpOTE1X2dlbV9kcmFpbl93b3JrcXVldWUoZGV2X3ByaXYpOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWludGVsX3VjX2ZpbmlfaHcoZGV2X3ByaXYpOwotCWludGVsX3VjX2ZpbmkoZGV2X3ByaXYpOworCWludGVsX3VjX2ZpbmlfaHcoJmRldl9wcml2LT5ndC51Yyk7CisJaW50ZWxfdWNfZmluaSgmZGV2X3ByaXYtPmd0LnVjKTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAogCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoZGV2X3ByaXYpOwogfQogCi12b2lkIGk5MTVfZ2VtX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQordm9pZCBpOTE1X2dlbV9kcml2ZXJfcmVsZWFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCWludGVsX2VuZ2luZXNfY2xlYW51cChkZXZfcHJpdik7CkBAIC0xNzEyLDkgKzE2MTcsOSBAQCB2b2lkIGk5MTVfZ2VtX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJaW50ZWxfY2xlYW51cF9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwogCi0JaW50ZWxfdWNfZmluaV9taXNjKGRldl9wcml2KTsKKwlpbnRlbF91Y19jbGVhbnVwX2Zpcm13YXJlcygmZGV2X3ByaXYtPmd0LnVjKTsKIAlpOTE1X2dlbV9jbGVhbnVwX3VzZXJwdHIoZGV2X3ByaXYpOwotCWk5MTVfdGltZWxpbmVzX2ZpbmkoZGV2X3ByaXYpOworCWludGVsX3RpbWVsaW5lc19maW5pKGRldl9wcml2KTsKIAogCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoZGV2X3ByaXYpOwogCkBAIC0xNzI5LDcgKzE2MzQsNiBAQCB2b2lkIGk5MTVfZ2VtX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2luaXRfX21tKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCXNwaW5fbG9ja19pbml0KCZpOTE1LT5tbS5vYmpfbG9jayk7Ci0Jc3Bpbl9sb2NrX2luaXQoJmk5MTUtPm1tLmZyZWVfbG9jayk7CiAKIAlpbml0X2xsaXN0X2hlYWQoJmk5MTUtPm1tLmZyZWVfbGlzdCk7CiAKQEAgLTE3NDMsMjIgKzE2NDcsOSBAQCBpbnQgaTkxNV9nZW1faW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaW50IGVycjsKIAotCWludGVsX2d0X3BtX2luaXQoZGV2X3ByaXYpOwotCi0JSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5ndC5hY3RpdmVfcmluZ3MpOwotCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+Z3QuY2xvc2VkX3ZtYSk7Ci0Jc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5ndC5jbG9zZWRfbG9jayk7Ci0KIAlpOTE1X2dlbV9pbml0X19tbShkZXZfcHJpdik7CiAJaTkxNV9nZW1faW5pdF9fcG0oZGV2X3ByaXYpOwogCi0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci53YWl0X3F1ZXVlKTsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X3F1ZXVlKTsKLQltdXRleF9pbml0KCZkZXZfcHJpdi0+Z3B1X2Vycm9yLndlZGdlX211dGV4KTsKLQlpbml0X3NyY3Vfc3RydWN0KCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X2JhY2tvZmZfc3JjdSk7Ci0KLQlhdG9taWNfc2V0KCZkZXZfcHJpdi0+bW0uYnNkX2VuZ2luZV9kaXNwYXRjaF9pbmRleCwgMCk7Ci0KIAlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPmZiX3RyYWNraW5nLmxvY2spOwogCiAJZXJyID0gaTkxNV9nZW1mc19pbml0KGRldl9wcml2KTsKQEAgLTE3NzUsOCArMTY2Niw2IEBAIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJR0VNX0JVR19PTihhdG9taWNfcmVhZCgmZGV2X3ByaXYtPm1tLmZyZWVfY291bnQpKTsKIAlXQVJOX09OKGRldl9wcml2LT5tbS5zaHJpbmtfY291bnQpOwogCi0JY2xlYW51cF9zcmN1X3N0cnVjdCgmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9iYWNrb2ZmX3NyY3UpOwotCiAJaTkxNV9nZW1mc19maW5pKGRldl9wcml2KTsKIH0KIApAQCAtMTg2OSwzOSArMTc1OCw2IEBAIGludCBpOTE1X2dlbV9vcGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiAJcmV0dXJuIHJldDsKIH0KIAotLyoqCi0gKiBpOTE1X2dlbV90cmFja19mYiAtIHVwZGF0ZSBmcm9udGJ1ZmZlciB0cmFja2luZwotICogQG9sZDogY3VycmVudCBHRU0gYnVmZmVyIGZvciB0aGUgZnJvbnRidWZmZXIgc2xvdHMKLSAqIEBuZXc6IG5ldyBHRU0gYnVmZmVyIGZvciB0aGUgZnJvbnRidWZmZXIgc2xvdHMKLSAqIEBmcm9udGJ1ZmZlcl9iaXRzOiBiaXRtYXNrIG9mIGZyb250YnVmZmVyIHNsb3RzCi0gKgotICogVGhpcyB1cGRhdGVzIHRoZSBmcm9udGJ1ZmZlciB0cmFja2luZyBiaXRzIEBmcm9udGJ1ZmZlcl9iaXRzIGJ5IGNsZWFyaW5nIHRoZW0KLSAqIGZyb20gQG9sZCBhbmQgc2V0dGluZyB0aGVtIGluIEBuZXcuIEJvdGggQG9sZCBhbmQgQG5ldyBjYW4gYmUgTlVMTC4KLSAqLwotdm9pZCBpOTE1X2dlbV90cmFja19mYihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkLAotCQkgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm5ldywKLQkJICAgICAgIHVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMpCi17Ci0JLyogQ29udHJvbCBvZiBpbmRpdmlkdWFsIGJpdHMgd2l0aGluIHRoZSBtYXNrIGFyZSBndWFyZGVkIGJ5Ci0JICogdGhlIG93bmluZyBwbGFuZS0+bXV0ZXgsIGkuZS4gd2UgY2FuIG5ldmVyIHNlZSBjb25jdXJyZW50Ci0JICogbWFuaXB1bGF0aW9uIG9mIGluZGl2aWR1YWwgYml0cy4gQnV0IHNpbmNlIHRoZSBiaXRmaWVsZCBhcyBhIHdob2xlCi0JICogaXMgdXBkYXRlZCB1c2luZyBSTVcsIHdlIG5lZWQgdG8gdXNlIGF0b21pY3MgaW4gb3JkZXIgdG8gdXBkYXRlCi0JICogdGhlIGJpdHMuCi0JICovCi0JQlVJTERfQlVHX09OKElOVEVMX0ZST05UQlVGRkVSX0JJVFNfUEVSX1BJUEUgKiBJOTE1X01BWF9QSVBFUyA+Ci0JCSAgICAgQklUU19QRVJfVFlQRShhdG9taWNfdCkpOwotCi0JaWYgKG9sZCkgewotCQlXQVJOX09OKCEoYXRvbWljX3JlYWQoJm9sZC0+ZnJvbnRidWZmZXJfYml0cykgJiBmcm9udGJ1ZmZlcl9iaXRzKSk7Ci0JCWF0b21pY19hbmRub3QoZnJvbnRidWZmZXJfYml0cywgJm9sZC0+ZnJvbnRidWZmZXJfYml0cyk7Ci0JfQotCi0JaWYgKG5ldykgewotCQlXQVJOX09OKGF0b21pY19yZWFkKCZuZXctPmZyb250YnVmZmVyX2JpdHMpICYgZnJvbnRidWZmZXJfYml0cyk7Ci0JCWF0b21pY19vcihmcm9udGJ1ZmZlcl9iaXRzLCAmbmV3LT5mcm9udGJ1ZmZlcl9iaXRzKTsKLQl9Ci19Ci0KICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMiCiAjaW5jbHVkZSAic2VsZnRlc3RzL2k5MTVfZ2VtLmMiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uaAppbmRleCBmZTgyZDM1Li4xNjdhN2I1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmgKQEAgLTI4LDYgKzI4LDggQEAKICNpbmNsdWRlIDxsaW51eC9idWcuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogCiAjaWZkZWYgQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dFTQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWEzZTRkLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYworKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE0LTIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqLwotCi0jaW5jbHVkZSAiaTkxNV9nZW1fYmF0Y2hfcG9vbC5oIgotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0KLS8qKgotICogRE9DOiBiYXRjaCBwb29sCi0gKgotICogSW4gb3JkZXIgdG8gc3VibWl0IGJhdGNoIGJ1ZmZlcnMgYXMgJ3NlY3VyZScsIHRoZSBzb2Z0d2FyZSBjb21tYW5kIHBhcnNlcgotICogbXVzdCBlbnN1cmUgdGhhdCBhIGJhdGNoIGJ1ZmZlciBjYW5ub3QgYmUgbW9kaWZpZWQgYWZ0ZXIgcGFyc2luZy4gSXQgZG9lcwotICogdGhpcyBieSBjb3B5aW5nIHRoZSB1c2VyIHByb3ZpZGVkIGJhdGNoIGJ1ZmZlciBjb250ZW50cyB0byBhIGtlcm5lbCBvd25lZAotICogYnVmZmVyIGZyb20gd2hpY2ggdGhlIGhhcmR3YXJlIHdpbGwgYWN0dWFsbHkgZXhlY3V0ZSwgYW5kIGJ5IGNhcmVmdWxseQotICogbWFuYWdpbmcgdGhlIGFkZHJlc3Mgc3BhY2UgYmluZGluZ3MgZm9yIHN1Y2ggYnVmZmVycy4KLSAqCi0gKiBUaGUgYmF0Y2ggcG9vbCBmcmFtZXdvcmsgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIHRoZSBkcml2ZXIgdG8gbWFuYWdlIGEKLSAqIHNldCBvZiBzY3JhdGNoIGJ1ZmZlcnMgdG8gdXNlIGZvciB0aGlzIHB1cnBvc2UuIFRoZSBmcmFtZXdvcmsgY2FuIGJlCi0gKiBleHRlbmRlZCB0byBzdXBwb3J0IG90aGVyIHVzZXMgY2FzZXMgc2hvdWxkIHRoZXkgYXJpc2UuCi0gKi8KLQotLyoqCi0gKiBpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoKSAtIGluaXRpYWxpemUgYSBiYXRjaCBidWZmZXIgcG9vbAotICogQHBvb2w6IHRoZSBiYXRjaCBidWZmZXIgcG9vbAotICogQGVuZ2luZTogdGhlIGFzc29jaWF0ZWQgcmVxdWVzdCBzdWJtaXNzaW9uIGVuZ2luZQotICovCi12b2lkIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdChzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hfcG9vbCAqcG9vbCwKLQkJCSAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlpbnQgbjsKLQotCXBvb2wtPmVuZ2luZSA9IGVuZ2luZTsKLQotCWZvciAobiA9IDA7IG4gPCBBUlJBWV9TSVpFKHBvb2wtPmNhY2hlX2xpc3QpOyBuKyspCi0JCUlOSVRfTElTVF9IRUFEKCZwb29sLT5jYWNoZV9saXN0W25dKTsKLX0KLQotLyoqCi0gKiBpOTE1X2dlbV9iYXRjaF9wb29sX2ZpbmkoKSAtIGNsZWFuIHVwIGEgYmF0Y2ggYnVmZmVyIHBvb2wKLSAqIEBwb29sOiB0aGUgcG9vbCB0byBjbGVhbiB1cAotICoKLSAqIE5vdGU6IENhbGxlcnMgbXVzdCBob2xkIHRoZSBzdHJ1Y3RfbXV0ZXguCi0gKi8KLXZvaWQgaTkxNV9nZW1fYmF0Y2hfcG9vbF9maW5pKHN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sICpwb29sKQotewotCWludCBuOwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmcG9vbC0+ZW5naW5lLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQotCWZvciAobiA9IDA7IG4gPCBBUlJBWV9TSVpFKHBvb2wtPmNhY2hlX2xpc3QpOyBuKyspIHsKLQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgKm5leHQ7Ci0KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG9iaiwgbmV4dCwKLQkJCQkJICZwb29sLT5jYWNoZV9saXN0W25dLAotCQkJCQkgYmF0Y2hfcG9vbF9saW5rKQotCQkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwotCi0JCUlOSVRfTElTVF9IRUFEKCZwb29sLT5jYWNoZV9saXN0W25dKTsKLQl9Ci19Ci0KLS8qKgotICogaTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoKSAtIGFsbG9jYXRlIGEgYnVmZmVyIGZyb20gdGhlIHBvb2wKLSAqIEBwb29sOiB0aGUgYmF0Y2ggYnVmZmVyIHBvb2wKLSAqIEBzaXplOiB0aGUgbWluaW11bSBkZXNpcmVkIHNpemUgb2YgdGhlIHJldHVybmVkIGJ1ZmZlcgotICoKLSAqIFJldHVybnMgYW4gaW5hY3RpdmUgYnVmZmVyIGZyb20gQHBvb2wgd2l0aCBhdCBsZWFzdCBAc2l6ZSBieXRlcywKLSAqIHdpdGggdGhlIHBhZ2VzIHBpbm5lZC4gVGhlIGNhbGxlciBtdXN0IGk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcygpCi0gKiBvbiB0aGUgcmV0dXJuZWQgb2JqZWN0LgotICoKLSAqIE5vdGU6IENhbGxlcnMgbXVzdCBob2xkIHRoZSBzdHJ1Y3RfbXV0ZXgKLSAqCi0gKiBSZXR1cm46IHRoZSBidWZmZXIgb2JqZWN0IG9yIGFuIGVycm9yIHBvaW50ZXIKLSAqLwotc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgotaTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wsCi0JCQlzaXplX3Qgc2l6ZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBsaXN0X2hlYWQgKmxpc3Q7Ci0JaW50IG4sIHJldDsKLQotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnBvb2wtPmVuZ2luZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0KLQkvKiBDb21wdXRlIGEgcG93ZXItb2YtdHdvIGJ1Y2tldCwgYnV0IHRocm93IGV2ZXJ5dGhpbmcgZ3JlYXRlciB0aGFuCi0JICogMTZLaUIgaW50byB0aGUgc2FtZSBidWNrZXQ6IGkuZS4gdGhlIHRoZSBidWNrZXRzIGhvbGQgb2JqZWN0cyBvZgotCSAqICgxIHBhZ2UsIDIgcGFnZXMsIDQgcGFnZXMsIDgrIHBhZ2VzKS4KLQkgKi8KLQluID0gZmxzKHNpemUgPj4gUEFHRV9TSElGVCkgLSAxOwotCWlmIChuID49IEFSUkFZX1NJWkUocG9vbC0+Y2FjaGVfbGlzdCkpCi0JCW4gPSBBUlJBWV9TSVpFKHBvb2wtPmNhY2hlX2xpc3QpIC0gMTsKLQlsaXN0ID0gJnBvb2wtPmNhY2hlX2xpc3Rbbl07Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwgbGlzdCwgYmF0Y2hfcG9vbF9saW5rKSB7Ci0JCS8qIFRoZSBiYXRjaGVzIGFyZSBzdHJpY3RseSBMUlUgb3JkZXJlZCAqLwotCQlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX2FjdGl2ZShvYmopKSB7Ci0JCQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2ID0gb2JqLT5iYXNlLnJlc3Y7Ci0KLQkJCWlmICghcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KHJlc3YsIHRydWUpKQotCQkJCWJyZWFrOwotCi0JCQlpOTE1X3JldGlyZV9yZXF1ZXN0cyhwb29sLT5lbmdpbmUtPmk5MTUpOwotCQkJR0VNX0JVR19PTihpOTE1X2dlbV9vYmplY3RfaXNfYWN0aXZlKG9iaikpOwotCi0JCQkvKgotCQkJICogVGhlIG9iamVjdCBpcyBub3cgaWRsZSwgY2xlYXIgdGhlIGFycmF5IG9mIHNoYXJlZAotCQkJICogZmVuY2VzIGJlZm9yZSB3ZSBhZGQgYSBuZXcgcmVxdWVzdC4gQWx0aG91Z2gsIHdlCi0JCQkgKiByZW1haW4gb24gdGhlIHNhbWUgZW5naW5lLCB3ZSBtYXkgYmUgb24gYSBkaWZmZXJlbnQKLQkJCSAqIHRpbWVsaW5lIGFuZCBzbyBtYXkgY29udGludWFsbHkgZ3JvdyB0aGUgYXJyYXksCi0JCQkgKiB0cmFwcGluZyBhIHJlZmVyZW5jZSB0byBhbGwgdGhlIG9sZCBmZW5jZXMsIHJhdGhlcgotCQkJICogdGhhbiByZXBsYWNlIHRoZSBleGlzdGluZyBmZW5jZS4KLQkJCSAqLwotCQkJaWYgKHJjdV9hY2Nlc3NfcG9pbnRlcihyZXN2LT5mZW5jZSkpIHsKLQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfbG9jayhyZXN2LCBOVUxMKTsKLQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UocmVzdiwgTlVMTCk7Ci0JCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhyZXN2KTsKLQkJCX0KLQkJfQotCi0JCUdFTV9CVUdfT04oIXJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShvYmotPmJhc2UucmVzdiwKLQkJCQkJCQkJIHRydWUpKTsKLQotCQlpZiAob2JqLT5iYXNlLnNpemUgPj0gc2l6ZSkKLQkJCWdvdG8gZm91bmQ7Ci0JfQotCi0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChwb29sLT5lbmdpbmUtPmk5MTUsIHNpemUpOwotCWlmIChJU19FUlIob2JqKSkKLQkJcmV0dXJuIG9iajsKLQotZm91bmQ6Ci0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOwotCWlmIChyZXQpCi0JCXJldHVybiBFUlJfUFRSKHJldCk7Ci0KLQlsaXN0X21vdmVfdGFpbCgmb2JqLT5iYXRjaF9wb29sX2xpbmssIGxpc3QpOwotCXJldHVybiBvYmo7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlZWVlZWEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKi8KLQotI2lmbmRlZiBJOTE1X0dFTV9CQVRDSF9QT09MX0gKLSNkZWZpbmUgSTkxNV9HRU1fQkFUQ0hfUE9PTF9ICi0KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotCi1zdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKLXN0cnVjdCBpbnRlbF9lbmdpbmVfY3M7Ci0KLXN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0Jc3RydWN0IGxpc3RfaGVhZCBjYWNoZV9saXN0WzRdOwotfTsKLQotdm9pZCBpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wsCi0JCQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwotdm9pZCBpOTE1X2dlbV9iYXRjaF9wb29sX2Zpbmkoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wpOwotc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgotaTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wsIHNpemVfdCBzaXplKTsKLQotI2VuZGlmIC8qIEk5MTVfR0VNX0JBVENIX1BPT0xfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKaW5kZXggYTU3ODNjNC4uNTJjODZjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogCiBJOTE1X1NFTEZURVNUX0RFQ0xBUkUoc3RhdGljIHN0cnVjdCBpZ3RfZXZpY3RfY3RsIHsKQEAgLTYyLDkgKzYxLDYgQEAgbWFya19mcmVlKHN0cnVjdCBkcm1fbW1fc2NhbiAqc2NhbiwKIAlpZiAoaTkxNV92bWFfaXNfcGlubmVkKHZtYSkpCiAJCXJldHVybiBmYWxzZTsKIAotCWlmIChmbGFncyAmIFBJTl9OT05GQVVMVCAmJiBpOTE1X3ZtYV9oYXNfdXNlcmZhdWx0KHZtYSkpCi0JCXJldHVybiBmYWxzZTsKLQogCWxpc3RfYWRkKCZ2bWEtPmV2aWN0X2xpbmssIHVud2luZCk7CiAJcmV0dXJuIGRybV9tbV9zY2FuX2FkZF9ibG9jayhzY2FuLCAmdm1hLT5ub2RlKTsKIH0KQEAgLTMzMSwxMSArMzI3LDYgQEAgaW50IGk5MTVfZ2VtX2V2aWN0X2Zvcl9ub2RlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJYnJlYWs7CiAJCX0KIAotCQlpZiAoZmxhZ3MgJiBQSU5fTk9ORkFVTFQgJiYgaTkxNV92bWFfaGFzX3VzZXJmYXVsdCh2bWEpKSB7Ci0JCQlyZXQgPSAtRU5PU1BDOwotCQkJYnJlYWs7Ci0JCX0KLQogCQkvKiBPdmVybGFwIG9mIG9iamVjdHMgaW4gdGhlIHNhbWUgYmF0Y2g/ICovCiAJCWlmIChpOTE1X3ZtYV9pc19waW5uZWQodm1hKSkgewogCQkJcmV0ID0gLUVOT1NQQzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmMKaW5kZXggMGJmNTNhYzEuLjYxNWE5ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5jCkBAIC0yMzAsMTYgKzIzMCwxNCBAQCBzdGF0aWMgaW50IGZlbmNlX3VwZGF0ZShzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmZlbmNlLAogCQkJIGk5MTVfZ2VtX29iamVjdF9nZXRfdGlsaW5nKHZtYS0+b2JqKSkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQlyZXQgPSBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3JldGlyZSgmdm1hLT5sYXN0X2ZlbmNlLAotCQkJCQkgICAgICZ2bWEtPm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CisJCXJldCA9IGk5MTVfYWN0aXZlX3dhaXQoJnZtYS0+YWN0aXZlKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQogCiAJb2xkID0geGNoZygmZmVuY2UtPnZtYSwgTlVMTCk7CiAJaWYgKG9sZCkgewotCQlyZXQgPSBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3JldGlyZSgmb2xkLT5sYXN0X2ZlbmNlLAotCQkJCQkgICAgICZvbGQtPm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CisJCXJldCA9IGk5MTVfYWN0aXZlX3dhaXQoJm9sZC0+YWN0aXZlKTsKIAkJaWYgKHJldCkgewogCQkJZmVuY2UtPnZtYSA9IG9sZDsKIAkJCXJldHVybiByZXQ7CkBAIC0yODksNyArMjg3LDcgQEAgc3RhdGljIGludCBmZW5jZV91cGRhdGUoc3RydWN0IGk5MTVfZmVuY2VfcmVnICpmZW5jZSwKIH0KIAogLyoqCi0gKiBpOTE1X3ZtYV9wdXRfZmVuY2UgLSBmb3JjZS1yZW1vdmUgZmVuY2UgZm9yIGEgVk1BCisgKiBpOTE1X3ZtYV9yZXZva2VfZmVuY2UgLSBmb3JjZS1yZW1vdmUgZmVuY2UgZm9yIGEgVk1BCiAgKiBAdm1hOiB2bWEgdG8gbWFwIGxpbmVhcmx5IChub3QgdGhyb3VnaCBhIGZlbmNlIHJlZykKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGZvcmNlLXJlbW92ZXMgYW55IGZlbmNlIGZyb20gdGhlIGdpdmVuIG9iamVjdCwgd2hpY2ggaXMgdXNlZnVsCkBAIC0yOTksMTQgKzI5NywxNSBAQCBzdGF0aWMgaW50IGZlbmNlX3VwZGF0ZShzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmZlbmNlLAogICoKICAqIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgogICovCi1pbnQgaTkxNV92bWFfcHV0X2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQoraW50IGk5MTVfdm1hX3Jldm9rZV9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHsKIAlzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmZlbmNlID0gdm1hLT5mZW5jZTsKIAorCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnZtYS0+dm0tPm11dGV4KTsKIAlpZiAoIWZlbmNlKQogCQlyZXR1cm4gMDsKIAotCWlmIChmZW5jZS0+cGluX2NvdW50KQorCWlmIChhdG9taWNfcmVhZCgmZmVuY2UtPnBpbl9jb3VudCkpCiAJCXJldHVybiAtRUJVU1k7CiAKIAlyZXR1cm4gZmVuY2VfdXBkYXRlKGZlbmNlLCBOVUxMKTsKQEAgLTMxOSw3ICszMTgsNyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZmVuY2VfcmVnICpmZW5jZV9maW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWxpc3RfZm9yX2VhY2hfZW50cnkoZmVuY2UsICZpOTE1LT5nZ3R0LmZlbmNlX2xpc3QsIGxpbmspIHsKIAkJR0VNX0JVR19PTihmZW5jZS0+dm1hICYmIGZlbmNlLT52bWEtPmZlbmNlICE9IGZlbmNlKTsKIAotCQlpZiAoZmVuY2UtPnBpbl9jb3VudCkKKwkJaWYgKGF0b21pY19yZWFkKCZmZW5jZS0+cGluX2NvdW50KSkKIAkJCWNvbnRpbnVlOwogCiAJCXJldHVybiBmZW5jZTsKQEAgLTMzMiw2ICszMzEsNDggQEAgc3RhdGljIHN0cnVjdCBpOTE1X2ZlbmNlX3JlZyAqZmVuY2VfZmluZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlyZXR1cm4gRVJSX1BUUigtRURFQURMSyk7CiB9CiAKK3N0YXRpYyBpbnQgX19pOTE1X3ZtYV9waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCit7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IGk5MTVfdm1fdG9fZ2d0dCh2bWEtPnZtKTsKKwlzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmZlbmNlOworCXN0cnVjdCBpOTE1X3ZtYSAqc2V0ID0gaTkxNV9nZW1fb2JqZWN0X2lzX3RpbGVkKHZtYS0+b2JqKSA/IHZtYSA6IE5VTEw7CisJaW50IGVycjsKKworCS8qIEp1c3QgdXBkYXRlIG91ciBwbGFjZSBpbiB0aGUgTFJVIGlmIG91ciBmZW5jZSBpcyBnZXR0aW5nIHJldXNlZC4gKi8KKwlpZiAodm1hLT5mZW5jZSkgeworCQlmZW5jZSA9IHZtYS0+ZmVuY2U7CisJCUdFTV9CVUdfT04oZmVuY2UtPnZtYSAhPSB2bWEpOworCQlhdG9taWNfaW5jKCZmZW5jZS0+cGluX2NvdW50KTsKKwkJaWYgKCFmZW5jZS0+ZGlydHkpIHsKKwkJCWxpc3RfbW92ZV90YWlsKCZmZW5jZS0+bGluaywgJmdndHQtPmZlbmNlX2xpc3QpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9IGVsc2UgaWYgKHNldCkgeworCQlmZW5jZSA9IGZlbmNlX2ZpbmQodm1hLT52bS0+aTkxNSk7CisJCWlmIChJU19FUlIoZmVuY2UpKQorCQkJcmV0dXJuIFBUUl9FUlIoZmVuY2UpOworCisJCUdFTV9CVUdfT04oYXRvbWljX3JlYWQoJmZlbmNlLT5waW5fY291bnQpKTsKKwkJYXRvbWljX2luYygmZmVuY2UtPnBpbl9jb3VudCk7CisJfSBlbHNlIHsKKwkJcmV0dXJuIDA7CisJfQorCisJZXJyID0gZmVuY2VfdXBkYXRlKGZlbmNlLCBzZXQpOworCWlmIChlcnIpCisJCWdvdG8gb3V0X3VucGluOworCisJR0VNX0JVR19PTihmZW5jZS0+dm1hICE9IHNldCk7CisJR0VNX0JVR19PTih2bWEtPmZlbmNlICE9IChzZXQgPyBmZW5jZSA6IE5VTEwpKTsKKworCWlmIChzZXQpCisJCXJldHVybiAwOworCitvdXRfdW5waW46CisJYXRvbWljX2RlYygmZmVuY2UtPnBpbl9jb3VudCk7CisJcmV0dXJuIGVycjsKK30KKwogLyoqCiAgKiBpOTE1X3ZtYV9waW5fZmVuY2UgLSBzZXQgdXAgZmVuY2luZyBmb3IgYSB2bWEKICAqIEB2bWE6IHZtYSB0byBtYXAgdGhyb3VnaCBhIGZlbmNlIHJlZwpAQCAtMzUyLDggKzM5Myw2IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmZlbmNlX2ZpbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAgKi8KIGludCBpOTE1X3ZtYV9waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0Jc3RydWN0IGk5MTVfZmVuY2VfcmVnICpmZW5jZTsKLQlzdHJ1Y3QgaTkxNV92bWEgKnNldCA9IGk5MTVfZ2VtX29iamVjdF9pc190aWxlZCh2bWEtPm9iaikgPyB2bWEgOiBOVUxMOwogCWludCBlcnI7CiAKIAkvKgpAQCAtMzYxLDM5ICs0MDAsMTYgQEAgaW50IGk5MTVfdm1hX3Bpbl9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAkgKiBtdXN0IGtlZXAgdGhlIGRldmljZSBhd2FrZSB3aGlsc3QgdXNpbmcgdGhlIGZlbmNlLgogCSAqLwogCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZCgmdm1hLT52bS0+aTkxNS0+cnVudGltZV9wbSk7CisJR0VNX0JVR19PTighaTkxNV92bWFfaXNfcGlubmVkKHZtYSkpOworCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX2dndHQodm1hKSk7CiAKLQkvKiBKdXN0IHVwZGF0ZSBvdXIgcGxhY2UgaW4gdGhlIExSVSBpZiBvdXIgZmVuY2UgaXMgZ2V0dGluZyByZXVzZWQuICovCi0JaWYgKHZtYS0+ZmVuY2UpIHsKLQkJZmVuY2UgPSB2bWEtPmZlbmNlOwotCQlHRU1fQlVHX09OKGZlbmNlLT52bWEgIT0gdm1hKTsKLQkJZmVuY2UtPnBpbl9jb3VudCsrOwotCQlpZiAoIWZlbmNlLT5kaXJ0eSkgewotCQkJbGlzdF9tb3ZlX3RhaWwoJmZlbmNlLT5saW5rLAotCQkJCSAgICAgICAmZmVuY2UtPmk5MTUtPmdndHQuZmVuY2VfbGlzdCk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCX0gZWxzZSBpZiAoc2V0KSB7Ci0JCWZlbmNlID0gZmVuY2VfZmluZCh2bWEtPnZtLT5pOTE1KTsKLQkJaWYgKElTX0VSUihmZW5jZSkpCi0JCQlyZXR1cm4gUFRSX0VSUihmZW5jZSk7Ci0KLQkJR0VNX0JVR19PTihmZW5jZS0+cGluX2NvdW50KTsKLQkJZmVuY2UtPnBpbl9jb3VudCsrOwotCX0gZWxzZQotCQlyZXR1cm4gMDsKLQotCWVyciA9IGZlbmNlX3VwZGF0ZShmZW5jZSwgc2V0KTsKKwllcnIgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJnZtYS0+dm0tPm11dGV4KTsKIAlpZiAoZXJyKQotCQlnb3RvIG91dF91bnBpbjsKKwkJcmV0dXJuIGVycjsKIAotCUdFTV9CVUdfT04oZmVuY2UtPnZtYSAhPSBzZXQpOwotCUdFTV9CVUdfT04odm1hLT5mZW5jZSAhPSAoc2V0ID8gZmVuY2UgOiBOVUxMKSk7CisJZXJyID0gX19pOTE1X3ZtYV9waW5fZmVuY2Uodm1hKTsKKwltdXRleF91bmxvY2soJnZtYS0+dm0tPm11dGV4KTsKIAotCWlmIChzZXQpCi0JCXJldHVybiAwOwotCi1vdXRfdW5waW46Ci0JZmVuY2UtPnBpbl9jb3VudC0tOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTQwNiwxNiArNDIyLDE3IEBAIGludCBpOTE1X3ZtYV9waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAgKi8KIHN0cnVjdCBpOTE1X2ZlbmNlX3JlZyAqaTkxNV9yZXNlcnZlX2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogeworCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmaTkxNS0+Z2d0dDsKIAlzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmZlbmNlOwogCWludCBjb3VudDsKIAlpbnQgcmV0OwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZ2d0dC0+dm0ubXV0ZXgpOwogCiAJLyogS2VlcCBhdCBsZWFzdCBvbmUgZmVuY2UgYXZhaWxhYmxlIGZvciB0aGUgZGlzcGxheSBlbmdpbmUuICovCiAJY291bnQgPSAwOwotCWxpc3RfZm9yX2VhY2hfZW50cnkoZmVuY2UsICZpOTE1LT5nZ3R0LmZlbmNlX2xpc3QsIGxpbmspCi0JCWNvdW50ICs9ICFmZW5jZS0+cGluX2NvdW50OworCWxpc3RfZm9yX2VhY2hfZW50cnkoZmVuY2UsICZnZ3R0LT5mZW5jZV9saXN0LCBsaW5rKQorCQljb3VudCArPSAhYXRvbWljX3JlYWQoJmZlbmNlLT5waW5fY291bnQpOwogCWlmIChjb3VudCA8PSAxKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PU1BDKTsKIApAQCAtNDMxLDYgKzQ0OCw3IEBAIHN0cnVjdCBpOTE1X2ZlbmNlX3JlZyAqaTkxNV9yZXNlcnZlX2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCX0KIAogCWxpc3RfZGVsKCZmZW5jZS0+bGluayk7CisKIAlyZXR1cm4gZmVuY2U7CiB9CiAKQEAgLTQ0Miw5ICs0NjAsMTEgQEAgc3RydWN0IGk5MTVfZmVuY2VfcmVnICppOTE1X3Jlc2VydmVfZmVuY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAgKi8KIHZvaWQgaTkxNV91bnJlc2VydmVfZmVuY2Uoc3RydWN0IGk5MTVfZmVuY2VfcmVnICpmZW5jZSkKIHsKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZmZW5jZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZmZW5jZS0+aTkxNS0+Z2d0dDsKIAotCWxpc3RfYWRkKCZmZW5jZS0+bGluaywgJmZlbmNlLT5pOTE1LT5nZ3R0LmZlbmNlX2xpc3QpOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmdndHQtPnZtLm11dGV4KTsKKworCWxpc3RfYWRkKCZmZW5jZS0+bGluaywgJmdndHQtPmZlbmNlX2xpc3QpOwogfQogCiAvKioKQEAgLTgzNCwzICs4NTQsMzUgQEAgdm9pZCBpOTE1X2dndHRfaW5pdF9mZW5jZXMoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIAogCWk5MTVfZ2VtX3Jlc3RvcmVfZmVuY2VzKGk5MTUpOwogfQorCit2b2lkIGludGVsX2d0X2luaXRfc3dpenpsaW5nKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3JlOworCisJaWYgKElOVEVMX0dFTihpOTE1KSA8IDUgfHwKKwkgICAgaTkxNS0+bW0uYml0XzZfc3dpenpsZV94ID09IEk5MTVfQklUXzZfU1dJWlpMRV9OT05FKQorCQlyZXR1cm47CisKKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgRElTUF9BUkJfQ1RMLCAwLCBESVNQX1RJTEVfU1VSRkFDRV9TV0laWkxJTkcpOworCisJaWYgKElTX0dFTihpOTE1LCA1KSkKKwkJcmV0dXJuOworCisJaW50ZWxfdW5jb3JlX3Jtdyh1bmNvcmUsIFRJTEVDVEwsIDAsIFRJTEVDVExfU1daQ1RMKTsKKworCWlmIChJU19HRU4oaTkxNSwgNikpCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCisJCQkJICAgQVJCX01PREUsCisJCQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEFSQl9NT0RFX1NXSVpaTEVfU05CKSk7CisJZWxzZSBpZiAoSVNfR0VOKGk5MTUsIDcpKQorCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAorCQkJCSAgIEFSQl9NT0RFLAorCQkJCSAgIF9NQVNLRURfQklUX0VOQUJMRShBUkJfTU9ERV9TV0laWkxFX0lWQikpOworCWVsc2UgaWYgKElTX0dFTihpOTE1LCA4KSkKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwKKwkJCQkgICBHQU1UQVJCTU9ERSwKKwkJCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUoQVJCX01PREVfU1dJWlpMRV9CRFcpKTsKKwllbHNlCisJCU1JU1NJTkdfQ0FTRShJTlRFTF9HRU4oaTkxNSkpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuaAppbmRleCBkMmRhOTg4Li45OTg2NmZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuaApAQCAtMzIsNiArMzIsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogc3RydWN0IGk5MTVfZ2d0dDsKIHN0cnVjdCBpOTE1X3ZtYTsKK3N0cnVjdCBpbnRlbF9ndDsKIHN0cnVjdCBzZ190YWJsZTsKIAogI2RlZmluZSBJOTY1X0ZFTkNFX1BBR0UgNDA5NlVMCkBAIC00MCw3ICs0MSw3IEBAIHN0cnVjdCBpOTE1X2ZlbmNlX3JlZyB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCWludCBwaW5fY291bnQ7CisJYXRvbWljX3QgcGluX2NvdW50OwogCWludCBpZDsKIAkvKioKIAkgKiBXaGV0aGVyIHRoZSB0aWxpbmcgcGFyYW1ldGVycyBmb3IgdGhlIGN1cnJlbnRseQpAQCAtNjYsNCArNjcsNiBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF9zYXZlX2JpdF8xN19zd2l6emxlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAKIHZvaWQgaTkxNV9nZ3R0X2luaXRfZmVuY2VzKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpOwogCit2b2lkIGludGVsX2d0X2luaXRfc3dpenpsaW5nKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggNzAxNWE5Ny4uYjFhN2E4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTMyLDE5ICszMiwyNiBAQAogI2luY2x1ZGUgPGxpbnV4L3N0b3BfbWFjaGluZS5oPgogCiAjaW5jbHVkZSA8YXNtL3NldF9tZW1vcnkuaD4KKyNpbmNsdWRlIDxhc20vc21wLmg+CiAKICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KIAogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuaCIKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X3NjYXR0ZXJsaXN0LmgiCiAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogI2luY2x1ZGUgImk5MTVfdmdwdS5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgogCiAjZGVmaW5lIEk5MTVfR0ZQX0FMTE9XX0ZBSUwgKEdGUF9LRVJORUwgfCBfX0dGUF9SRVRSWV9NQVlGQUlMIHwgX19HRlBfTk9XQVJOKQogCisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfVFJBQ0VfR1RUKQorI2RlZmluZSBEQkcoLi4uKSB0cmFjZV9wcmludGsoX19WQV9BUkdTX18pCisjZWxzZQorI2RlZmluZSBEQkcoLi4uKQorI2VuZGlmCisKIC8qKgogICogRE9DOiBHbG9iYWwgR1RUIHZpZXdzCiAgKgpAQCAtMTA2LDEyICsxMTMsMTQgQEAKICAqCiAgKi8KIAorI2RlZmluZSBhc19wZCh4KSBjb250YWluZXJfb2YoKHgpLCB0eXBlb2Yoc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkpLCBwdCkKKwogc3RhdGljIGludAogaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXMoc3RydWN0IGk5MTVfdm1hICp2bWEpOwogCi1zdGF0aWMgdm9pZCBnZW42X2dndHRfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB2b2lkIGdlbjZfZ2d0dF9pbnZhbGlkYXRlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiB7Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmk5MTUtPnVuY29yZTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBnZ3R0LT52bS5ndC0+dW5jb3JlOwogCiAJLyoKIAkgKiBOb3RlIHRoYXQgYXMgYW4gdW5jYWNoZWQgbW1pbyB3cml0ZSwgdGhpcyB3aWxsIGZsdXNoIHRoZQpAQCAtMTIwLDI0ICsxMjksMTkgQEAgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaW50ZWxfdW5jb3JlX3dyaXRlX2Z3KHVuY29yZSwgR0ZYX0ZMU0hfQ05UTF9HRU42LCBHRlhfRkxTSF9DTlRMX0VOKTsKIH0KIAotc3RhdGljIHZvaWQgZ3VjX2dndHRfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB2b2lkIGd1Y19nZ3R0X2ludmFsaWRhdGUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIHsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGdndHQtPnZtLmd0LT51bmNvcmU7CiAKLQlnZW42X2dndHRfaW52YWxpZGF0ZShpOTE1KTsKKwlnZW42X2dndHRfaW52YWxpZGF0ZShnZ3R0KTsKIAlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLCBHRU44X0dUQ1IsIEdFTjhfR1RDUl9JTlZBTElEQVRFKTsKIH0KIAotc3RhdGljIHZvaWQgZ21jaF9nZ3R0X2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgdm9pZCBnbWNoX2dndHRfaW52YWxpZGF0ZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogewogCWludGVsX2d0dF9jaGlwc2V0X2ZsdXNoKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dndHRfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlpOTE1LT5nZ3R0LmludmFsaWRhdGUoaTkxNSk7Ci19Ci0KIHN0YXRpYyBpbnQgcHBndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQkgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKIAkJCSAgdTMyIHVudXNlZCkKQEAgLTIxNSwxMCArMjE5LDEwIEBAIHN0YXRpYyB1NjQgZ2VuOF9wdGVfZW5jb2RlKGRtYV9hZGRyX3QgYWRkciwKIAlyZXR1cm4gcHRlOwogfQogCi1zdGF0aWMgZ2VuOF9wZGVfdCBnZW44X3BkZV9lbmNvZGUoY29uc3QgZG1hX2FkZHJfdCBhZGRyLAotCQkJCSAgY29uc3QgZW51bSBpOTE1X2NhY2hlX2xldmVsIGxldmVsKQorc3RhdGljIHU2NCBnZW44X3BkZV9lbmNvZGUoY29uc3QgZG1hX2FkZHJfdCBhZGRyLAorCQkJICAgY29uc3QgZW51bSBpOTE1X2NhY2hlX2xldmVsIGxldmVsKQogewotCWdlbjhfcGRlX3QgcGRlID0gX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1JXOworCXU2NCBwZGUgPSBfUEFHRV9QUkVTRU5UIHwgX1BBR0VfUlc7CiAJcGRlIHw9IGFkZHI7CiAJaWYgKGxldmVsICE9IEk5MTVfQ0FDSEVfTk9ORSkKIAkJcGRlIHw9IFBQQVRfQ0FDSEVEX1BERTsKQEAgLTIyNyw5ICsyMzEsNiBAQCBzdGF0aWMgZ2VuOF9wZGVfdCBnZW44X3BkZV9lbmNvZGUoY29uc3QgZG1hX2FkZHJfdCBhZGRyLAogCXJldHVybiBwZGU7CiB9CiAKLSNkZWZpbmUgZ2VuOF9wZHBlX2VuY29kZSBnZW44X3BkZV9lbmNvZGUKLSNkZWZpbmUgZ2VuOF9wbWw0ZV9lbmNvZGUgZ2VuOF9wZGVfZW5jb2RlCi0KIHN0YXRpYyB1NjQgc25iX3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAogCQkJICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwsCiAJCQkgIHUzMiBmbGFncykKQEAgLTQ4Miw5ICs0ODMsNjkgQEAgc3RhdGljIHZvaWQgdm1fZnJlZV9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAlzcGluX3VubG9jaygmdm0tPmZyZWVfcGFnZXMubG9jayk7CiB9CiAKK3N0YXRpYyB2b2lkIGk5MTVfYWRkcmVzc19zcGFjZV9maW5pKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQoreworCXNwaW5fbG9jaygmdm0tPmZyZWVfcGFnZXMubG9jayk7CisJaWYgKHBhZ2V2ZWNfY291bnQoJnZtLT5mcmVlX3BhZ2VzLnB2ZWMpKQorCQl2bV9mcmVlX3BhZ2VzX3JlbGVhc2Uodm0sIHRydWUpOworCUdFTV9CVUdfT04ocGFnZXZlY19jb3VudCgmdm0tPmZyZWVfcGFnZXMucHZlYykpOworCXNwaW5fdW5sb2NrKCZ2bS0+ZnJlZV9wYWdlcy5sb2NrKTsKKworCWRybV9tbV90YWtlZG93bigmdm0tPm1tKTsKKworCW11dGV4X2Rlc3Ryb3koJnZtLT5tdXRleCk7Cit9CisKK3N0YXRpYyB2b2lkIHBwZ3R0X2Rlc3Ryb3lfdm1hKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQoreworCXN0cnVjdCBsaXN0X2hlYWQgKnBoYXNlc1tdID0geworCQkmdm0tPmJvdW5kX2xpc3QsCisJCSZ2bS0+dW5ib3VuZF9saXN0LAorCQlOVUxMLAorCX0sICoqcGhhc2U7CisKKwltdXRleF9sb2NrKCZ2bS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJZm9yIChwaGFzZSA9IHBoYXNlczsgKnBoYXNlOyBwaGFzZSsrKSB7CisJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAqdm47CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZtYSwgdm4sICpwaGFzZSwgdm1fbGluaykKKwkJCWk5MTVfdm1hX2Rlc3Ryb3kodm1hKTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZ2bS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faTkxNV92bV9yZWxlYXNlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9CisJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlLCByY3Uud29yayk7CisKKwlwcGd0dF9kZXN0cm95X3ZtYSh2bSk7CisKKwlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZ2bS0+Ym91bmRfbGlzdCkpOworCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJnZtLT51bmJvdW5kX2xpc3QpKTsKKworCXZtLT5jbGVhbnVwKHZtKTsKKwlpOTE1X2FkZHJlc3Nfc3BhY2VfZmluaSh2bSk7CisKKwlrZnJlZSh2bSk7Cit9CisKK3ZvaWQgaTkxNV92bV9yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQoreworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0KKwkJY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UsIHJlZik7CisKKwlHRU1fQlVHX09OKGk5MTVfaXNfZ2d0dCh2bSkpOworCXRyYWNlX2k5MTVfcHBndHRfcmVsZWFzZSh2bSk7CisKKwl2bS0+Y2xvc2VkID0gdHJ1ZTsKKwlxdWV1ZV9yY3Vfd29yayh2bS0+aTkxNS0+d3EsICZ2bS0+cmN1KTsKK30KKwogc3RhdGljIHZvaWQgaTkxNV9hZGRyZXNzX3NwYWNlX2luaXQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sIGludCBzdWJjbGFzcykKIHsKIAlrcmVmX2luaXQoJnZtLT5yZWYpOworCUlOSVRfUkNVX1dPUksoJnZtLT5yY3UsIF9faTkxNV92bV9yZWxlYXNlKTsKIAogCS8qCiAJICogVGhlIHZtLT5tdXRleCBtdXN0IGJlIHJlY2xhaW0gc2FmZSAoZm9yIHVzZSBpbiB0aGUgc2hyaW5rZXIpLgpAQCAtNTA1LDE5ICs1NjYsNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgaW50IHN1YmNsYXNzKQogCUlOSVRfTElTVF9IRUFEKCZ2bS0+Ym91bmRfbGlzdCk7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfYWRkcmVzc19zcGFjZV9maW5pKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQotewotCXNwaW5fbG9jaygmdm0tPmZyZWVfcGFnZXMubG9jayk7Ci0JaWYgKHBhZ2V2ZWNfY291bnQoJnZtLT5mcmVlX3BhZ2VzLnB2ZWMpKQotCQl2bV9mcmVlX3BhZ2VzX3JlbGVhc2Uodm0sIHRydWUpOwotCUdFTV9CVUdfT04ocGFnZXZlY19jb3VudCgmdm0tPmZyZWVfcGFnZXMucHZlYykpOwotCXNwaW5fdW5sb2NrKCZ2bS0+ZnJlZV9wYWdlcy5sb2NrKTsKLQotCWRybV9tbV90YWtlZG93bigmdm0tPm1tKTsKLQotCW11dGV4X2Rlc3Ryb3koJnZtLT5tdXRleCk7Ci19Ci0KIHN0YXRpYyBpbnQgX19zZXR1cF9wYWdlX2RtYShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCSAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCwKIAkJCSAgICBnZnBfdCBnZnApCkBAIC01NTQsMjggKzYwMiwxNyBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwX3BhZ2VfZG1hKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiAjZGVmaW5lIGttYXBfYXRvbWljX3B4KHB4KSBrbWFwX2F0b21pYyhweF9iYXNlKHB4KS0+cGFnZSkKIAotI2RlZmluZSBzZXR1cF9weCh2bSwgcHgpIHNldHVwX3BhZ2VfZG1hKCh2bSksIHB4X2Jhc2UocHgpKQotI2RlZmluZSBjbGVhbnVwX3B4KHZtLCBweCkgY2xlYW51cF9wYWdlX2RtYSgodm0pLCBweF9iYXNlKHB4KSkKLSNkZWZpbmUgZmlsbF9weCh2bSwgcHgsIHYpIGZpbGxfcGFnZV9kbWEoKHZtKSwgcHhfYmFzZShweCksICh2KSkKLSNkZWZpbmUgZmlsbDMyX3B4KHZtLCBweCwgdikgZmlsbF9wYWdlX2RtYV8zMigodm0pLCBweF9iYXNlKHB4KSwgKHYpKQotCi1zdGF0aWMgdm9pZCBmaWxsX3BhZ2VfZG1hKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJICBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCwKLQkJCSAgY29uc3QgdTY0IHZhbCkKK3N0YXRpYyB2b2lkCitmaWxsX3BhZ2VfZG1hKGNvbnN0IHN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwLCBjb25zdCB1NjQgdmFsLCB1bnNpZ25lZCBpbnQgY291bnQpCiB7Ci0JdTY0ICogY29uc3QgdmFkZHIgPSBrbWFwX2F0b21pYyhwLT5wYWdlKTsKLQotCW1lbXNldDY0KHZhZGRyLCB2YWwsIFBBR0VfU0laRSAvIHNpemVvZih2YWwpKTsKLQotCWt1bm1hcF9hdG9taWModmFkZHIpOworCWt1bm1hcF9hdG9taWMobWVtc2V0NjQoa21hcF9hdG9taWMocC0+cGFnZSksIHZhbCwgY291bnQpKTsKIH0KIAotc3RhdGljIHZvaWQgZmlsbF9wYWdlX2RtYV8zMihzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJCSAgICAgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnAsCi0JCQkgICAgIGNvbnN0IHUzMiB2KQotewotCWZpbGxfcGFnZV9kbWEodm0sIHAsICh1NjQpdiA8PCAzMiB8IHYpOwotfQorI2RlZmluZSBmaWxsX3B4KHB4LCB2KSBmaWxsX3BhZ2VfZG1hKHB4X2Jhc2UocHgpLCAodiksIFBBR0VfU0laRSAvIHNpemVvZih1NjQpKQorI2RlZmluZSBmaWxsMzJfcHgocHgsIHYpIGRvIHsJCQkJCQlcCisJdTY0IHZfXyA9IGxvd2VyXzMyX2JpdHModik7CQkJCQlcCisJZmlsbF9weCgocHgpLCB2X18gPDwgMzIgfCB2X18pOwkJCQkJXAorfSB3aGlsZSAoMCkKIAogc3RhdGljIGludAogc2V0dXBfc2NyYXRjaF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBnZnBfdCBnZnApCkBAIC02MDIsNyArNjM5LDcgQEAgc2V0dXBfc2NyYXRjaF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBnZnBfdCBnZnApCiAJZ2ZwIHw9IF9fR0ZQX1pFUk8gfCBfX0dGUF9SRVRSWV9NQVlGQUlMOwogCiAJZG8gewotCQlpbnQgb3JkZXIgPSBnZXRfb3JkZXIoc2l6ZSk7CisJCXVuc2lnbmVkIGludCBvcmRlciA9IGdldF9vcmRlcihzaXplKTsKIAkJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJCWRtYV9hZGRyX3QgYWRkcjsKIApAQCAtNjIxLDggKzY1OCw4IEBAIHNldHVwX3NjcmF0Y2hfcGFnZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgZ2ZwX3QgZ2ZwKQogCQlpZiAodW5saWtlbHkoIUlTX0FMSUdORUQoYWRkciwgc2l6ZSkpKQogCQkJZ290byB1bm1hcF9wYWdlOwogCi0JCXZtLT5zY3JhdGNoX3BhZ2UucGFnZSA9IHBhZ2U7Ci0JCXZtLT5zY3JhdGNoX3BhZ2UuZGFkZHIgPSBhZGRyOworCQl2bS0+c2NyYXRjaFswXS5iYXNlLnBhZ2UgPSBwYWdlOworCQl2bS0+c2NyYXRjaFswXS5iYXNlLmRhZGRyID0gYWRkcjsKIAkJdm0tPnNjcmF0Y2hfb3JkZXIgPSBvcmRlcjsKIAkJcmV0dXJuIDA7CiAKQEAgLTY0MSwxNCArNjc4LDMwIEBAIHNldHVwX3NjcmF0Y2hfcGFnZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgZ2ZwX3QgZ2ZwKQogCiBzdGF0aWMgdm9pZCBjbGVhbnVwX3NjcmF0Y2hfcGFnZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIHsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCA9ICZ2bS0+c2NyYXRjaF9wYWdlOwotCWludCBvcmRlciA9IHZtLT5zY3JhdGNoX29yZGVyOworCXN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwID0gcHhfYmFzZSgmdm0tPnNjcmF0Y2hbMF0pOworCXVuc2lnbmVkIGludCBvcmRlciA9IHZtLT5zY3JhdGNoX29yZGVyOwogCiAJZG1hX3VubWFwX3BhZ2Uodm0tPmRtYSwgcC0+ZGFkZHIsIEJJVChvcmRlcikgPDwgUEFHRV9TSElGVCwKIAkJICAgICAgIFBDSV9ETUFfQklESVJFQ1RJT05BTCk7CiAJX19mcmVlX3BhZ2VzKHAtPnBhZ2UsIG9yZGVyKTsKIH0KIAorc3RhdGljIHZvaWQgZnJlZV9zY3JhdGNoKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQoreworCWludCBpOworCisJaWYgKCFweF9kbWEoJnZtLT5zY3JhdGNoWzBdKSkgLyogc2V0IHRvIDAgb24gY2xvbmVzICovCisJCXJldHVybjsKKworCWZvciAoaSA9IDE7IGkgPD0gdm0tPnRvcDsgaSsrKSB7CisJCWlmICghcHhfZG1hKCZ2bS0+c2NyYXRjaFtpXSkpCisJCQlicmVhazsKKwkJY2xlYW51cF9wYWdlX2RtYSh2bSwgcHhfYmFzZSgmdm0tPnNjcmF0Y2hbaV0pKTsKKwl9CisKKwljbGVhbnVwX3NjcmF0Y2hfcGFnZSh2bSk7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICphbGxvY19wdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIHsKIAlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdDsKQEAgLTY1Nyw1MCArNzEwLDI0IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICphbGxvY19wdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIAlpZiAodW5saWtlbHkoIXB0KSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlpZiAodW5saWtlbHkoc2V0dXBfcHgodm0sIHB0KSkpIHsKKwlpZiAodW5saWtlbHkoc2V0dXBfcGFnZV9kbWEodm0sICZwdC0+YmFzZSkpKSB7CiAJCWtmcmVlKHB0KTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAJfQogCiAJYXRvbWljX3NldCgmcHQtPnVzZWQsIDApOwotCiAJcmV0dXJuIHB0OwogfQogCi1zdGF0aWMgdm9pZCBmcmVlX3B0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdCkKLXsKLQljbGVhbnVwX3B4KHZtLCBwdCk7Ci0Ja2ZyZWUocHQpOwotfQotCi1zdGF0aWMgdm9pZCBnZW44X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0JCQkgICAgICAgc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQpCi17Ci0JZmlsbF9weCh2bSwgcHQsIHZtLT5zY3JhdGNoX3B0ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGdlbjZfaW5pdGlhbGl6ZV9wdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJCSAgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdCkKLXsKLQlmaWxsMzJfcHgodm0sIHB0LCB2bS0+c2NyYXRjaF9wdGUpOwotfQotCi1zdGF0aWMgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKl9fYWxsb2NfcGQodm9pZCkKK3N0YXRpYyBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqX19hbGxvY19wZChzaXplX3Qgc3opCiB7CiAJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkOwogCi0JcGQgPSBrbWFsbG9jKHNpemVvZigqcGQpLCBJOTE1X0dGUF9BTExPV19GQUlMKTsKLQorCXBkID0ga3phbGxvYyhzeiwgSTkxNV9HRlBfQUxMT1dfRkFJTCk7CiAJaWYgKHVubGlrZWx5KCFwZCkpCiAJCXJldHVybiBOVUxMOwogCi0JbWVtc2V0KCZwZC0+YmFzZSwgMCwgc2l6ZW9mKHBkLT5iYXNlKSk7Ci0JYXRvbWljX3NldCgmcGQtPnVzZWQsIDApOwogCXNwaW5fbG9ja19pbml0KCZwZC0+bG9jayk7Ci0KLQkvKiBmb3Igc2FmZXR5ICovCi0JcGQtPmVudHJ5WzBdID0gTlVMTDsKLQogCXJldHVybiBwZDsKIH0KIApAQCAtNzA4LDExICs3MzUsMTEgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICphbGxvY19wZChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIHsKIAlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQ7CiAKLQlwZCA9IF9fYWxsb2NfcGQoKTsKKwlwZCA9IF9fYWxsb2NfcGQoc2l6ZW9mKCpwZCkpOwogCWlmICh1bmxpa2VseSghcGQpKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCWlmICh1bmxpa2VseShzZXR1cF9weCh2bSwgcGQpKSkgeworCWlmICh1bmxpa2VseShzZXR1cF9wYWdlX2RtYSh2bSwgcHhfYmFzZShwZCkpKSkgewogCQlrZnJlZShwZCk7CiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCX0KQEAgLTcyMCwzNiArNzQ3LDczIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqYWxsb2NfcGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCiAJcmV0dXJuIHBkOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgcGRfaGFzX3BoeXNfcGFnZShjb25zdCBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBkKQorc3RhdGljIHZvaWQgZnJlZV9wZChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnBkKQogewotCXJldHVybiBwZC0+YmFzZS5wYWdlOwotfQotCi1zdGF0aWMgdm9pZCBmcmVlX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkKQotewotCWlmIChsaWtlbHkocGRfaGFzX3BoeXNfcGFnZShwZCkpKQotCQljbGVhbnVwX3B4KHZtLCBwZCk7Ci0KKwljbGVhbnVwX3BhZ2VfZG1hKHZtLCBwZCk7CiAJa2ZyZWUocGQpOwogfQogCi1zdGF0aWMgdm9pZCBpbml0X3BkX3dpdGhfcGFnZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJCSAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcGQsCi0JCQkgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdCkKKyNkZWZpbmUgZnJlZV9weCh2bSwgcHgpIGZyZWVfcGQodm0sIHB4X2Jhc2UocHgpKQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3dyaXRlX2RtYV9lbnRyeShzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqIGNvbnN0IHBkbWEsCisJCWNvbnN0IHVuc2lnbmVkIHNob3J0IGlkeCwKKwkJY29uc3QgdTY0IGVuY29kZWRfZW50cnkpCiB7Ci0JZmlsbF9weCh2bSwgcGQsIGdlbjhfcGRlX2VuY29kZShweF9kbWEocHQpLCBJOTE1X0NBQ0hFX0xMQykpOwotCW1lbXNldF9wKHBkLT5lbnRyeSwgcHQsIDUxMik7CisJdTY0ICogY29uc3QgdmFkZHIgPSBrbWFwX2F0b21pYyhwZG1hLT5wYWdlKTsKKworCXZhZGRyW2lkeF0gPSBlbmNvZGVkX2VudHJ5OworCWt1bm1hcF9hdG9taWModmFkZHIpOwogfQogCi1zdGF0aWMgdm9pZCBpbml0X3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBwZCwKLQkJICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgdG8pCitzdGF0aWMgaW5saW5lIHZvaWQKK19fc2V0X3BkX2VudHJ5KHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcGQsCisJICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IGlkeCwKKwkgICAgICAgc3RydWN0IGk5MTVfcGFnZV9kbWEgKiBjb25zdCB0bywKKwkgICAgICAgdTY0ICgqZW5jb2RlKShjb25zdCBkbWFfYWRkcl90LCBjb25zdCBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwpKQogewotCUdFTV9ERUJVR19CVUdfT04oIXBkX2hhc19waHlzX3BhZ2UocGQpKTsKKwkvKiBFYWNoIHRocmVhZCBwcmUtcGlucyB0aGUgcGQsIGFuZCB3ZSBtYXkgaGF2ZSBhIHRocmVhZCBwZXIgcGRlLiAqLworCUdFTV9CVUdfT04oYXRvbWljX3JlYWQocHhfdXNlZChwZCkpID4gMiAqIEFSUkFZX1NJWkUocGQtPmVudHJ5KSk7CiAKLQlmaWxsX3B4KHZtLCBwZCwgZ2VuOF9wZHBlX2VuY29kZShweF9kbWEodG8pLCBJOTE1X0NBQ0hFX0xMQykpOwotCW1lbXNldF9wKHBkLT5lbnRyeSwgdG8sIDUxMik7CisJYXRvbWljX2luYyhweF91c2VkKHBkKSk7CisJcGQtPmVudHJ5W2lkeF0gPSB0bzsKKwl3cml0ZV9kbWFfZW50cnkocHhfYmFzZShwZCksIGlkeCwgZW5jb2RlKHRvLT5kYWRkciwgSTkxNV9DQUNIRV9MTEMpKTsKK30KKworI2RlZmluZSBzZXRfcGRfZW50cnkocGQsIGlkeCwgdG8pIFwKKwlfX3NldF9wZF9lbnRyeSgocGQpLCAoaWR4KSwgcHhfYmFzZSh0byksIGdlbjhfcGRlX2VuY29kZSkKKworc3RhdGljIGlubGluZSB2b2lkCitjbGVhcl9wZF9lbnRyeShzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBkLAorCSAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBpZHgsCisJICAgICAgIGNvbnN0IHN0cnVjdCBpOTE1X3BhZ2Vfc2NyYXRjaCAqIGNvbnN0IHNjcmF0Y2gpCit7CisJR0VNX0JVR19PTihhdG9taWNfcmVhZChweF91c2VkKHBkKSkgPT0gMCk7CisKKwl3cml0ZV9kbWFfZW50cnkocHhfYmFzZShwZCksIGlkeCwgc2NyYXRjaC0+ZW5jb2RlKTsKKwlwZC0+ZW50cnlbaWR4XSA9IE5VTEw7CisJYXRvbWljX2RlYyhweF91c2VkKHBkKSk7Cit9CisKK3N0YXRpYyBib29sCityZWxlYXNlX3BkX2VudHJ5KHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcGQsCisJCSBjb25zdCB1bnNpZ25lZCBzaG9ydCBpZHgsCisJCSBzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICogY29uc3QgcHQsCisJCSBjb25zdCBzdHJ1Y3QgaTkxNV9wYWdlX3NjcmF0Y2ggKiBjb25zdCBzY3JhdGNoKQoreworCWJvb2wgZnJlZSA9IGZhbHNlOworCisJaWYgKGF0b21pY19hZGRfdW5sZXNzKCZwdC0+dXNlZCwgLTEsIDEpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlzcGluX2xvY2soJnBkLT5sb2NrKTsKKwlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmcHQtPnVzZWQpKSB7CisJCWNsZWFyX3BkX2VudHJ5KHBkLCBpZHgsIHNjcmF0Y2gpOworCQlmcmVlID0gdHJ1ZTsKKwl9CisJc3Bpbl91bmxvY2soJnBkLT5sb2NrKTsKKworCXJldHVybiBmcmVlOwogfQogCiAvKgpAQCAtNzYzLDE2NSArODI3LDMzMSBAQCBzdGF0aWMgdm9pZCBtYXJrX3RsYnNfZGlydHkoc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0KQogCXBwZ3R0LT5wZF9kaXJ0eV9lbmdpbmVzID0gQUxMX0VOR0lORVM7CiB9CiAKLS8qIFJlbW92ZXMgZW50cmllcyBmcm9tIGEgc2luZ2xlIHBhZ2UgdGFibGUsIHJlbGVhc2luZyBpdCBpZiBpdCdzIGVtcHR5LgotICogQ2FsbGVyIGNhbiB1c2UgdGhlIHJldHVybiB2YWx1ZSB0byB1cGRhdGUgaGlnaGVyLWxldmVsIGVudHJpZXMuCi0gKi8KLXN0YXRpYyBib29sIGdlbjhfcHBndHRfY2xlYXJfcHQoY29uc3Qgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0JCQkJc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQsCi0JCQkJdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoKQorc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9ub3RpZnlfdmd0KHN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCwgYm9vbCBjcmVhdGUpCiB7Ci0JdW5zaWduZWQgaW50IG51bV9lbnRyaWVzID0gZ2VuOF9wdGVfY291bnQoc3RhcnQsIGxlbmd0aCk7Ci0JZ2VuOF9wdGVfdCAqdmFkZHI7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcHBndHQtPnZtLmk5MTU7CisJZW51bSB2Z3RfZzJ2X3R5cGUgbXNnOworCWludCBpOwogCi0JdmFkZHIgPSBrbWFwX2F0b21pY19weChwdCk7Ci0JbWVtc2V0NjQodmFkZHIgKyBnZW44X3B0ZV9pbmRleChzdGFydCksIHZtLT5zY3JhdGNoX3B0ZSwgbnVtX2VudHJpZXMpOwotCWt1bm1hcF9hdG9taWModmFkZHIpOworCWlmIChjcmVhdGUpCisJCWF0b21pY19pbmMocHhfdXNlZChwcGd0dC0+cGQpKTsgLyogbmV2ZXIgcmVtb3ZlICovCisJZWxzZQorCQlhdG9taWNfZGVjKHB4X3VzZWQocHBndHQtPnBkKSk7CiAKLQlHRU1fQlVHX09OKG51bV9lbnRyaWVzID4gYXRvbWljX3JlYWQoJnB0LT51c2VkKSk7Ci0JcmV0dXJuICFhdG9taWNfc3ViX3JldHVybihudW1fZW50cmllcywgJnB0LT51c2VkKTsKLX0KKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+dmdwdS5sb2NrKTsKIAotc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9zZXRfcGRlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCwKLQkJCSAgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdCwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgcGRlKQotewotCWdlbjhfcGRlX3QgKnZhZGRyOworCWlmIChpOTE1X3ZtX2lzXzRsdmwoJnBwZ3R0LT52bSkpIHsKKwkJY29uc3QgdTY0IGRhZGRyID0gcHhfZG1hKHBwZ3R0LT5wZCk7CiAKLQl2YWRkciA9IGttYXBfYXRvbWljX3B4KHBkKTsKLQl2YWRkcltwZGVdID0gZ2VuOF9wZGVfZW5jb2RlKHB4X2RtYShwdCksIEk5MTVfQ0FDSEVfTExDKTsKLQlrdW5tYXBfYXRvbWljKHZhZGRyKTsKLX0KKwkJSTkxNV9XUklURSh2Z3RpZl9yZWcocGRwWzBdLmxvKSwgbG93ZXJfMzJfYml0cyhkYWRkcikpOworCQlJOTE1X1dSSVRFKHZndGlmX3JlZyhwZHBbMF0uaGkpLCB1cHBlcl8zMl9iaXRzKGRhZGRyKSk7CiAKLXN0YXRpYyBib29sIGdlbjhfcHBndHRfY2xlYXJfcGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0JCQkJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAotCQkJCXU2NCBzdGFydCwgdTY0IGxlbmd0aCkKLXsKLQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdDsKLQl1MzIgcGRlOworCQltc2cgPSAoY3JlYXRlID8gVkdUX0cyVl9QUEdUVF9MNF9QQUdFX1RBQkxFX0NSRUFURSA6CisJCQkJVkdUX0cyVl9QUEdUVF9MNF9QQUdFX1RBQkxFX0RFU1RST1kpOworCX0gZWxzZSB7CisJCWZvciAoaSA9IDA7IGkgPCBHRU44XzNMVkxfUERQRVM7IGkrKykgeworCQkJY29uc3QgdTY0IGRhZGRyID0gaTkxNV9wYWdlX2Rpcl9kbWFfYWRkcihwcGd0dCwgaSk7CiAKLQlnZW44X2Zvcl9lYWNoX3BkZShwdCwgcGQsIHN0YXJ0LCBsZW5ndGgsIHBkZSkgewotCQlib29sIGZyZWUgPSBmYWxzZTsKLQotCQlHRU1fQlVHX09OKHB0ID09IHZtLT5zY3JhdGNoX3B0KTsKLQotCQlpZiAoIWdlbjhfcHBndHRfY2xlYXJfcHQodm0sIHB0LCBzdGFydCwgbGVuZ3RoKSkKLQkJCWNvbnRpbnVlOwotCi0JCXNwaW5fbG9jaygmcGQtPmxvY2spOwotCQlpZiAoIWF0b21pY19yZWFkKCZwdC0+dXNlZCkpIHsKLQkJCWdlbjhfcHBndHRfc2V0X3BkZSh2bSwgcGQsIHZtLT5zY3JhdGNoX3B0LCBwZGUpOwotCQkJcGQtPmVudHJ5W3BkZV0gPSB2bS0+c2NyYXRjaF9wdDsKLQotCQkJR0VNX0JVR19PTighYXRvbWljX3JlYWQoJnBkLT51c2VkKSk7Ci0JCQlhdG9taWNfZGVjKCZwZC0+dXNlZCk7Ci0JCQlmcmVlID0gdHJ1ZTsKKwkJCUk5MTVfV1JJVEUodmd0aWZfcmVnKHBkcFtpXS5sbyksIGxvd2VyXzMyX2JpdHMoZGFkZHIpKTsKKwkJCUk5MTVfV1JJVEUodmd0aWZfcmVnKHBkcFtpXS5oaSksIHVwcGVyXzMyX2JpdHMoZGFkZHIpKTsKIAkJfQotCQlzcGluX3VubG9jaygmcGQtPmxvY2spOwotCQlpZiAoZnJlZSkKLQkJCWZyZWVfcHQodm0sIHB0KTsKKworCQltc2cgPSAoY3JlYXRlID8gVkdUX0cyVl9QUEdUVF9MM19QQUdFX1RBQkxFX0NSRUFURSA6CisJCQkJVkdUX0cyVl9QUEdUVF9MM19QQUdFX1RBQkxFX0RFU1RST1kpOwogCX0KIAotCXJldHVybiAhYXRvbWljX3JlYWQoJnBkLT51c2VkKTsKKwkvKiBnMnZfbm90aWZ5IGF0b21pY2FsbHkgKHZpYSBodiB0cmFwKSBjb25zdW1lcyB0aGUgbWVzc2FnZSBwYWNrZXQuICovCisJSTkxNV9XUklURSh2Z3RpZl9yZWcoZzJ2X25vdGlmeSksIG1zZyk7CisKKwltdXRleF91bmxvY2soJmRldl9wcml2LT52Z3B1LmxvY2spOwogfQogCi1zdGF0aWMgdm9pZCBnZW44X3BwZ3R0X3NldF9wZHBlKHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZHAsCi0JCQkJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAotCQkJCXVuc2lnbmVkIGludCBwZHBlKQorLyogSW5kZXggc2hpZnRzIGludG8gdGhlIHBhZ2V0YWJsZSBhcmUgb2Zmc2V0IGJ5IEdFTjhfUFRFX1NISUZUIFsxMl0gKi8KKyNkZWZpbmUgR0VOOF9QQUdFX1NJWkUgKFNaXzRLKSAvKiBwYWdlIGFuZCBwYWdlLWRpcmVjdG9yeSBzaXplcyBhcmUgdGhlIHNhbWUgKi8KKyNkZWZpbmUgR0VOOF9QVEVfU0hJRlQgKGlsb2cyKEdFTjhfUEFHRV9TSVpFKSkKKyNkZWZpbmUgR0VOOF9QREVTIChHRU44X1BBR0VfU0laRSAvIHNpemVvZih1NjQpKQorI2RlZmluZSBnZW44X3BkX3NoaWZ0KGx2bCkgKChsdmwpICogaWxvZzIoR0VOOF9QREVTKSkKKyNkZWZpbmUgZ2VuOF9wZF9pbmRleChpLCBsdmwpIGk5MTVfcGRlX2luZGV4KChpKSwgZ2VuOF9wZF9zaGlmdChsdmwpKQorI2RlZmluZSBfX2dlbjhfcHRlX3NoaWZ0KGx2bCkgKEdFTjhfUFRFX1NISUZUICsgZ2VuOF9wZF9zaGlmdChsdmwpKQorI2RlZmluZSBfX2dlbjhfcHRlX2luZGV4KGEsIGx2bCkgaTkxNV9wZGVfaW5kZXgoKGEpLCBfX2dlbjhfcHRlX3NoaWZ0KGx2bCkpCisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50CitnZW44X3BkX3JhbmdlKHU2NCBzdGFydCwgdTY0IGVuZCwgaW50IGx2bCwgdW5zaWduZWQgaW50ICppZHgpCiB7Ci0JZ2VuOF9wcGd0dF9wZHBlX3QgKnZhZGRyOworCWNvbnN0IGludCBzaGlmdCA9IGdlbjhfcGRfc2hpZnQobHZsKTsKKwljb25zdCB1NjQgbWFzayA9IH4wdWxsIDw8IGdlbjhfcGRfc2hpZnQobHZsICsgMSk7CiAKLQlpZiAoIXBkX2hhc19waHlzX3BhZ2UocGRwKSkKLQkJcmV0dXJuOworCUdFTV9CVUdfT04oc3RhcnQgPj0gZW5kKTsKKwllbmQgKz0gfm1hc2sgPj4gZ2VuOF9wZF9zaGlmdCgxKTsKIAotCXZhZGRyID0ga21hcF9hdG9taWNfcHgocGRwKTsKLQl2YWRkcltwZHBlXSA9IGdlbjhfcGRwZV9lbmNvZGUocHhfZG1hKHBkKSwgSTkxNV9DQUNIRV9MTEMpOwotCWt1bm1hcF9hdG9taWModmFkZHIpOworCSppZHggPSBpOTE1X3BkZV9pbmRleChzdGFydCwgc2hpZnQpOworCWlmICgoc3RhcnQgXiBlbmQpICYgbWFzaykKKwkJcmV0dXJuIEdFTjhfUERFUyAtICppZHg7CisJZWxzZQorCQlyZXR1cm4gaTkxNV9wZGVfaW5kZXgoZW5kLCBzaGlmdCkgLSAqaWR4OwogfQogCi0vKiBSZW1vdmVzIGVudHJpZXMgZnJvbSBhIHNpbmdsZSBwYWdlIGRpciBwb2ludGVyLCByZWxlYXNpbmcgaXQgaWYgaXQncyBlbXB0eS4KLSAqIENhbGxlciBjYW4gdXNlIHRoZSByZXR1cm4gdmFsdWUgdG8gdXBkYXRlIGhpZ2hlci1sZXZlbCBlbnRyaWVzCi0gKi8KLXN0YXRpYyBib29sIGdlbjhfcHBndHRfY2xlYXJfcGRwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJCSBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBkcCwKLQkJCQkgdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoKQorc3RhdGljIGlubGluZSBib29sIGdlbjhfcGRfY29udGFpbnModTY0IHN0YXJ0LCB1NjQgZW5kLCBpbnQgbHZsKQogewotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKLQl1bnNpZ25lZCBpbnQgcGRwZTsKKwljb25zdCB1NjQgbWFzayA9IH4wdWxsIDw8IGdlbjhfcGRfc2hpZnQobHZsICsgMSk7CiAKLQlnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwgc3RhcnQsIGxlbmd0aCwgcGRwZSkgewotCQlib29sIGZyZWUgPSBmYWxzZTsKKwlHRU1fQlVHX09OKHN0YXJ0ID49IGVuZCk7CisJcmV0dXJuIChzdGFydCBeIGVuZCkgJiBtYXNrICYmIChzdGFydCAmIH5tYXNrKSA9PSAwOworfQogCi0JCUdFTV9CVUdfT04ocGQgPT0gdm0tPnNjcmF0Y2hfcGQpOworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZ2VuOF9wdF9jb3VudCh1NjQgc3RhcnQsIHU2NCBlbmQpCit7CisJR0VNX0JVR19PTihzdGFydCA+PSBlbmQpOworCWlmICgoc3RhcnQgXiBlbmQpID4+IGdlbjhfcGRfc2hpZnQoMSkpCisJCXJldHVybiBHRU44X1BERVMgLSAoc3RhcnQgJiAoR0VOOF9QREVTIC0gMSkpOworCWVsc2UKKwkJcmV0dXJuIGVuZCAtIHN0YXJ0OworfQogCi0JCWlmICghZ2VuOF9wcGd0dF9jbGVhcl9wZCh2bSwgcGQsIHN0YXJ0LCBsZW5ndGgpKQotCQkJY29udGludWU7CitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBnZW44X3BkX3RvcF9jb3VudChjb25zdCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKK3sKKwl1bnNpZ25lZCBpbnQgc2hpZnQgPSBfX2dlbjhfcHRlX3NoaWZ0KHZtLT50b3ApOworCXJldHVybiAodm0tPnRvdGFsICsgKDF1bGwgPDwgc2hpZnQpIC0gMSkgPj4gc2hpZnQ7Cit9CiAKLQkJc3Bpbl9sb2NrKCZwZHAtPmxvY2spOwotCQlpZiAoIWF0b21pY19yZWFkKCZwZC0+dXNlZCkpIHsKLQkJCWdlbjhfcHBndHRfc2V0X3BkcGUocGRwLCB2bS0+c2NyYXRjaF9wZCwgcGRwZSk7Ci0JCQlwZHAtPmVudHJ5W3BkcGVdID0gdm0tPnNjcmF0Y2hfcGQ7CitzdGF0aWMgaW5saW5lIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICoKK2dlbjhfcGRwX2Zvcl9wYWdlX2luZGV4KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKiBjb25zdCB2bSwgY29uc3QgdTY0IGlkeCkKK3sKKwlzdHJ1Y3QgaTkxNV9wcGd0dCAqIGNvbnN0IHBwZ3R0ID0gaTkxNV92bV90b19wcGd0dCh2bSk7CiAKLQkJCUdFTV9CVUdfT04oIWF0b21pY19yZWFkKCZwZHAtPnVzZWQpKTsKLQkJCWF0b21pY19kZWMoJnBkcC0+dXNlZCk7Ci0JCQlmcmVlID0gdHJ1ZTsKLQkJfQotCQlzcGluX3VubG9jaygmcGRwLT5sb2NrKTsKLQkJaWYgKGZyZWUpCi0JCQlmcmVlX3BkKHZtLCBwZCk7CisJaWYgKHZtLT50b3AgPT0gMikKKwkJcmV0dXJuIHBwZ3R0LT5wZDsKKwllbHNlCisJCXJldHVybiBpOTE1X3BkX2VudHJ5KHBwZ3R0LT5wZCwgZ2VuOF9wZF9pbmRleChpZHgsIHZtLT50b3ApKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqCitnZW44X3BkcF9mb3JfcGFnZV9hZGRyZXNzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKiBjb25zdCB2bSwgY29uc3QgdTY0IGFkZHIpCit7CisJcmV0dXJuIGdlbjhfcGRwX2Zvcl9wYWdlX2luZGV4KHZtLCBhZGRyID4+IEdFTjhfUFRFX1NISUZUKTsKK30KKworc3RhdGljIHZvaWQgX19nZW44X3BwZ3R0X2NsZWFudXAoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCisJCQkJIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCwKKwkJCQkgaW50IGNvdW50LCBpbnQgbHZsKQoreworCWlmIChsdmwpIHsKKwkJdm9pZCAqKnBkZSA9IHBkLT5lbnRyeTsKKworCQlkbyB7CisJCQlpZiAoISpwZGUpCisJCQkJY29udGludWU7CisKKwkJCV9fZ2VuOF9wcGd0dF9jbGVhbnVwKHZtLCAqcGRlLCBHRU44X1BERVMsIGx2bCAtIDEpOworCQl9IHdoaWxlIChwZGUrKywgLS1jb3VudCk7CiAJfQogCi0JcmV0dXJuICFhdG9taWNfcmVhZCgmcGRwLT51c2VkKTsKKwlmcmVlX3B4KHZtLCBwZCk7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYXJfM2x2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJCQkgIHU2NCBzdGFydCwgdTY0IGxlbmd0aCkKLXsKLQlnZW44X3BwZ3R0X2NsZWFyX3BkcCh2bSwgaTkxNV92bV90b19wcGd0dCh2bSktPnBkLCBzdGFydCwgbGVuZ3RoKTsKLX0KLQotc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9zZXRfcG1sNGUoc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBtbDQsCi0JCQkJIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZHAsCi0JCQkJIHVuc2lnbmVkIGludCBwbWw0ZSkKLXsKLQlnZW44X3BwZ3R0X3BtbDRlX3QgKnZhZGRyOwotCi0JdmFkZHIgPSBrbWFwX2F0b21pY19weChwbWw0KTsKLQl2YWRkcltwbWw0ZV0gPSBnZW44X3BtbDRlX2VuY29kZShweF9kbWEocGRwKSwgSTkxNV9DQUNIRV9MTEMpOwotCWt1bm1hcF9hdG9taWModmFkZHIpOwotfQotCi0vKiBSZW1vdmVzIGVudHJpZXMgZnJvbSBhIHNpbmdsZSBwbWw0LgotICogVGhpcyBpcyB0aGUgdG9wLWxldmVsIHN0cnVjdHVyZSBpbiA0LWxldmVsIHBhZ2UgdGFibGVzIHVzZWQgb24gZ2VuOCsuCi0gKiBFbXB0eSBlbnRyaWVzIGFyZSBhbHdheXMgc2NyYXRjaCBwbWw0ZS4KLSAqLwotc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcl80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJCSAgdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoKQorc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhbnVwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogewogCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCA9IGk5MTVfdm1fdG9fcHBndHQodm0pOwotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcG1sNCA9IHBwZ3R0LT5wZDsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwOwotCXVuc2lnbmVkIGludCBwbWw0ZTsKIAotCUdFTV9CVUdfT04oIWk5MTVfdm1faXNfNGx2bCh2bSkpOworCWlmIChpbnRlbF92Z3B1X2FjdGl2ZSh2bS0+aTkxNSkpCisJCWdlbjhfcHBndHRfbm90aWZ5X3ZndChwcGd0dCwgZmFsc2UpOwogCi0JZ2VuOF9mb3JfZWFjaF9wbWw0ZShwZHAsIHBtbDQsIHN0YXJ0LCBsZW5ndGgsIHBtbDRlKSB7Ci0JCWJvb2wgZnJlZSA9IGZhbHNlOwotCQlHRU1fQlVHX09OKHBkcCA9PSB2bS0+c2NyYXRjaF9wZHApOworCV9fZ2VuOF9wcGd0dF9jbGVhbnVwKHZtLCBwcGd0dC0+cGQsIGdlbjhfcGRfdG9wX2NvdW50KHZtKSwgdm0tPnRvcCk7CisJZnJlZV9zY3JhdGNoKHZtKTsKK30KIAotCQlpZiAoIWdlbjhfcHBndHRfY2xlYXJfcGRwKHZtLCBwZHAsIHN0YXJ0LCBsZW5ndGgpKQorc3RhdGljIHU2NCBfX2dlbjhfcHBndHRfY2xlYXIoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqIGNvbnN0IHZtLAorCQkJICAgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBwZCwKKwkJCSAgICAgIHU2NCBzdGFydCwgY29uc3QgdTY0IGVuZCwgaW50IGx2bCkKK3sKKwljb25zdCBzdHJ1Y3QgaTkxNV9wYWdlX3NjcmF0Y2ggKiBjb25zdCBzY3JhdGNoID0gJnZtLT5zY3JhdGNoW2x2bF07CisJdW5zaWduZWQgaW50IGlkeCwgbGVuOworCisJR0VNX0JVR19PTihlbmQgPiB2bS0+dG90YWwgPj4gR0VOOF9QVEVfU0hJRlQpOworCisJbGVuID0gZ2VuOF9wZF9yYW5nZShzdGFydCwgZW5kLCBsdmwtLSwgJmlkeCk7CisJREJHKCIlcyglcCk6eyBsdmw6JWQsIHN0YXJ0OiVsbHgsIGVuZDolbGx4LCBpZHg6JWQsIGxlbjolZCwgdXNlZDolZCB9XG4iLAorCSAgICBfX2Z1bmNfXywgdm0sIGx2bCArIDEsIHN0YXJ0LCBlbmQsCisJICAgIGlkeCwgbGVuLCBhdG9taWNfcmVhZChweF91c2VkKHBkKSkpOworCUdFTV9CVUdfT04oIWxlbiB8fCBsZW4gPj0gYXRvbWljX3JlYWQocHhfdXNlZChwZCkpKTsKKworCWRvIHsKKwkJc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQgPSBwZC0+ZW50cnlbaWR4XTsKKworCQlpZiAoYXRvbWljX2ZldGNoX2luYygmcHQtPnVzZWQpID4+IGdlbjhfcGRfc2hpZnQoMSkgJiYKKwkJICAgIGdlbjhfcGRfY29udGFpbnMoc3RhcnQsIGVuZCwgbHZsKSkgeworCQkJREJHKCIlcyglcCk6eyBsdmw6JWQsIGlkeDolZCwgc3RhcnQ6JWxseCwgZW5kOiVsbHggfSByZW1vdmluZyBwZFxuIiwKKwkJCSAgICBfX2Z1bmNfXywgdm0sIGx2bCArIDEsIGlkeCwgc3RhcnQsIGVuZCk7CisJCQljbGVhcl9wZF9lbnRyeShwZCwgaWR4LCBzY3JhdGNoKTsKKwkJCV9fZ2VuOF9wcGd0dF9jbGVhbnVwKHZtLCBhc19wZChwdCksIEk5MTVfUERFUywgbHZsKTsKKwkJCXN0YXJ0ICs9ICh1NjQpSTkxNV9QREVTIDw8IGdlbjhfcGRfc2hpZnQobHZsKTsKIAkJCWNvbnRpbnVlOwotCi0JCXNwaW5fbG9jaygmcG1sNC0+bG9jayk7Ci0JCWlmICghYXRvbWljX3JlYWQoJnBkcC0+dXNlZCkpIHsKLQkJCWdlbjhfcHBndHRfc2V0X3BtbDRlKHBtbDQsIHZtLT5zY3JhdGNoX3BkcCwgcG1sNGUpOwotCQkJcG1sNC0+ZW50cnlbcG1sNGVdID0gdm0tPnNjcmF0Y2hfcGRwOwotCQkJZnJlZSA9IHRydWU7CiAJCX0KLQkJc3Bpbl91bmxvY2soJnBtbDQtPmxvY2spOwotCQlpZiAoZnJlZSkKLQkJCWZyZWVfcGQodm0sIHBkcCk7Ci0JfQorCisJCWlmIChsdmwpIHsKKwkJCXN0YXJ0ID0gX19nZW44X3BwZ3R0X2NsZWFyKHZtLCBhc19wZChwdCksCisJCQkJCQkgICBzdGFydCwgZW5kLCBsdmwpOworCQl9IGVsc2UgeworCQkJdW5zaWduZWQgaW50IGNvdW50OworCQkJdTY0ICp2YWRkcjsKKworCQkJY291bnQgPSBnZW44X3B0X2NvdW50KHN0YXJ0LCBlbmQpOworCQkJREJHKCIlcyglcCk6eyBsdmw6JWQsIHN0YXJ0OiVsbHgsIGVuZDolbGx4LCBpZHg6JWQsIGxlbjolZCwgdXNlZDolZCB9IHJlbW92aW5nIHB0ZVxuIiwKKwkJCSAgICBfX2Z1bmNfXywgdm0sIGx2bCwgc3RhcnQsIGVuZCwKKwkJCSAgICBnZW44X3BkX2luZGV4KHN0YXJ0LCAwKSwgY291bnQsCisJCQkgICAgYXRvbWljX3JlYWQoJnB0LT51c2VkKSk7CisJCQlHRU1fQlVHX09OKCFjb3VudCB8fCBjb3VudCA+PSBhdG9taWNfcmVhZCgmcHQtPnVzZWQpKTsKKworCQkJdmFkZHIgPSBrbWFwX2F0b21pY19weChwdCk7CisJCQltZW1zZXQ2NCh2YWRkciArIGdlbjhfcGRfaW5kZXgoc3RhcnQsIDApLAorCQkJCSB2bS0+c2NyYXRjaFswXS5lbmNvZGUsCisJCQkJIGNvdW50KTsKKwkJCWt1bm1hcF9hdG9taWModmFkZHIpOworCisJCQlhdG9taWNfc3ViKGNvdW50LCAmcHQtPnVzZWQpOworCQkJc3RhcnQgKz0gY291bnQ7CisJCX0KKworCQlpZiAocmVsZWFzZV9wZF9lbnRyeShwZCwgaWR4LCBwdCwgc2NyYXRjaCkpCisJCQlmcmVlX3B4KHZtLCBwdCk7CisJfSB3aGlsZSAoaWR4KyssIC0tbGVuKTsKKworCXJldHVybiBzdGFydDsKK30KKworc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcihzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKKwkJCSAgICAgdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoKQoreworCUdFTV9CVUdfT04oIUlTX0FMSUdORUQoc3RhcnQsIEJJVF9VTEwoR0VOOF9QVEVfU0hJRlQpKSk7CisJR0VNX0JVR19PTighSVNfQUxJR05FRChsZW5ndGgsIEJJVF9VTEwoR0VOOF9QVEVfU0hJRlQpKSk7CisJR0VNX0JVR19PTihyYW5nZV9vdmVyZmxvd3Moc3RhcnQsIGxlbmd0aCwgdm0tPnRvdGFsKSk7CisKKwlzdGFydCA+Pj0gR0VOOF9QVEVfU0hJRlQ7CisJbGVuZ3RoID4+PSBHRU44X1BURV9TSElGVDsKKwlHRU1fQlVHX09OKGxlbmd0aCA9PSAwKTsKKworCV9fZ2VuOF9wcGd0dF9jbGVhcih2bSwgaTkxNV92bV90b19wcGd0dCh2bSktPnBkLAorCQkJICAgc3RhcnQsIHN0YXJ0ICsgbGVuZ3RoLCB2bS0+dG9wKTsKK30KKworc3RhdGljIGludCBfX2dlbjhfcHBndHRfYWxsb2Moc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqIGNvbnN0IHZtLAorCQkJICAgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBwZCwKKwkJCSAgICAgIHU2NCAqIGNvbnN0IHN0YXJ0LCBjb25zdCB1NjQgZW5kLCBpbnQgbHZsKQoreworCWNvbnN0IHN0cnVjdCBpOTE1X3BhZ2Vfc2NyYXRjaCAqIGNvbnN0IHNjcmF0Y2ggPSAmdm0tPnNjcmF0Y2hbbHZsXTsKKwlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICphbGxvYyA9IE5VTEw7CisJdW5zaWduZWQgaW50IGlkeCwgbGVuOworCWludCByZXQgPSAwOworCisJR0VNX0JVR19PTihlbmQgPiB2bS0+dG90YWwgPj4gR0VOOF9QVEVfU0hJRlQpOworCisJbGVuID0gZ2VuOF9wZF9yYW5nZSgqc3RhcnQsIGVuZCwgbHZsLS0sICZpZHgpOworCURCRygiJXMoJXApOnsgbHZsOiVkLCBzdGFydDolbGx4LCBlbmQ6JWxseCwgaWR4OiVkLCBsZW46JWQsIHVzZWQ6JWQgfVxuIiwKKwkgICAgX19mdW5jX18sIHZtLCBsdmwgKyAxLCAqc3RhcnQsIGVuZCwKKwkgICAgaWR4LCBsZW4sIGF0b21pY19yZWFkKHB4X3VzZWQocGQpKSk7CisJR0VNX0JVR19PTighbGVuIHx8IChpZHggKyBsZW4gLSAxKSA+PiBnZW44X3BkX3NoaWZ0KDEpKTsKKworCXNwaW5fbG9jaygmcGQtPmxvY2spOworCUdFTV9CVUdfT04oIWF0b21pY19yZWFkKHB4X3VzZWQocGQpKSk7IC8qIE11c3QgYmUgcGlubmVkISAqLworCWRvIHsKKwkJc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQgPSBwZC0+ZW50cnlbaWR4XTsKKworCQlpZiAoIXB0KSB7CisJCQlzcGluX3VubG9jaygmcGQtPmxvY2spOworCisJCQlEQkcoIiVzKCVwKTp7IGx2bDolZCwgaWR4OiVkIH0gYWxsb2NhdGluZyBuZXcgdHJlZVxuIiwKKwkJCSAgICBfX2Z1bmNfXywgdm0sIGx2bCArIDEsIGlkeCk7CisKKwkJCXB0ID0gZmV0Y2hfYW5kX3plcm8oJmFsbG9jKTsKKwkJCWlmIChsdmwpIHsKKwkJCQlpZiAoIXB0KSB7CisJCQkJCXB0ID0gJmFsbG9jX3BkKHZtKS0+cHQ7CisJCQkJCWlmIChJU19FUlIocHQpKSB7CisJCQkJCQlyZXQgPSBQVFJfRVJSKHB0KTsKKwkJCQkJCWdvdG8gb3V0OworCQkJCQl9CisJCQkJfQorCisJCQkJZmlsbF9weChwdCwgdm0tPnNjcmF0Y2hbbHZsXS5lbmNvZGUpOworCQkJfSBlbHNlIHsKKwkJCQlpZiAoIXB0KSB7CisJCQkJCXB0ID0gYWxsb2NfcHQodm0pOworCQkJCQlpZiAoSVNfRVJSKHB0KSkgeworCQkJCQkJcmV0ID0gUFRSX0VSUihwdCk7CisJCQkJCQlnb3RvIG91dDsKKwkJCQkJfQorCQkJCX0KKworCQkJCWlmIChpbnRlbF92Z3B1X2FjdGl2ZSh2bS0+aTkxNSkgfHwKKwkJCQkgICAgZ2VuOF9wdF9jb3VudCgqc3RhcnQsIGVuZCkgPCBJOTE1X1BERVMpCisJCQkJCWZpbGxfcHgocHQsIHZtLT5zY3JhdGNoW2x2bF0uZW5jb2RlKTsKKwkJCX0KKworCQkJc3Bpbl9sb2NrKCZwZC0+bG9jayk7CisJCQlpZiAobGlrZWx5KCFwZC0+ZW50cnlbaWR4XSkpCisJCQkJc2V0X3BkX2VudHJ5KHBkLCBpZHgsIHB0KTsKKwkJCWVsc2UKKwkJCQlhbGxvYyA9IHB0LCBwdCA9IHBkLT5lbnRyeVtpZHhdOworCQl9CisKKwkJaWYgKGx2bCkgeworCQkJYXRvbWljX2luYygmcHQtPnVzZWQpOworCQkJc3Bpbl91bmxvY2soJnBkLT5sb2NrKTsKKworCQkJcmV0ID0gX19nZW44X3BwZ3R0X2FsbG9jKHZtLCBhc19wZChwdCksCisJCQkJCQkgc3RhcnQsIGVuZCwgbHZsKTsKKwkJCWlmICh1bmxpa2VseShyZXQpKSB7CisJCQkJaWYgKHJlbGVhc2VfcGRfZW50cnkocGQsIGlkeCwgcHQsIHNjcmF0Y2gpKQorCQkJCQlmcmVlX3B4KHZtLCBwdCk7CisJCQkJZ290byBvdXQ7CisJCQl9CisKKwkJCXNwaW5fbG9jaygmcGQtPmxvY2spOworCQkJYXRvbWljX2RlYygmcHQtPnVzZWQpOworCQkJR0VNX0JVR19PTighYXRvbWljX3JlYWQoJnB0LT51c2VkKSk7CisJCX0gZWxzZSB7CisJCQl1bnNpZ25lZCBpbnQgY291bnQgPSBnZW44X3B0X2NvdW50KCpzdGFydCwgZW5kKTsKKworCQkJREJHKCIlcyglcCk6eyBsdmw6JWQsIHN0YXJ0OiVsbHgsIGVuZDolbGx4LCBpZHg6JWQsIGxlbjolZCwgdXNlZDolZCB9IGluc2VydGluZyBwdGVcbiIsCisJCQkgICAgX19mdW5jX18sIHZtLCBsdmwsICpzdGFydCwgZW5kLAorCQkJICAgIGdlbjhfcGRfaW5kZXgoKnN0YXJ0LCAwKSwgY291bnQsCisJCQkgICAgYXRvbWljX3JlYWQoJnB0LT51c2VkKSk7CisKKwkJCWF0b21pY19hZGQoY291bnQsICZwdC0+dXNlZCk7CisJCQkvKiBBbGwgb3RoZXIgcGRlcyBtYXkgYmUgc2ltdWx0YW5lb3VzbHkgcmVtb3ZlZCAqLworCQkJR0VNX0JVR19PTihhdG9taWNfcmVhZCgmcHQtPnVzZWQpID4gMiAqIEk5MTVfUERFUyk7CisJCQkqc3RhcnQgKz0gY291bnQ7CisJCX0KKwl9IHdoaWxlIChpZHgrKywgLS1sZW4pOworCXNwaW5fdW5sb2NrKCZwZC0+bG9jayk7CitvdXQ6CisJaWYgKGFsbG9jKQorCQlmcmVlX3B4KHZtLCBhbGxvYyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBnZW44X3BwZ3R0X2FsbG9jKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAorCQkJICAgIHU2NCBzdGFydCwgdTY0IGxlbmd0aCkKK3sKKwl1NjQgZnJvbTsKKwlpbnQgZXJyOworCisJR0VNX0JVR19PTighSVNfQUxJR05FRChzdGFydCwgQklUX1VMTChHRU44X1BURV9TSElGVCkpKTsKKwlHRU1fQlVHX09OKCFJU19BTElHTkVEKGxlbmd0aCwgQklUX1VMTChHRU44X1BURV9TSElGVCkpKTsKKwlHRU1fQlVHX09OKHJhbmdlX292ZXJmbG93cyhzdGFydCwgbGVuZ3RoLCB2bS0+dG90YWwpKTsKKworCXN0YXJ0ID4+PSBHRU44X1BURV9TSElGVDsKKwlsZW5ndGggPj49IEdFTjhfUFRFX1NISUZUOworCUdFTV9CVUdfT04obGVuZ3RoID09IDApOworCWZyb20gPSBzdGFydDsKKworCWVyciA9IF9fZ2VuOF9wcGd0dF9hbGxvYyh2bSwgaTkxNV92bV90b19wcGd0dCh2bSktPnBkLAorCQkJCSAmc3RhcnQsIHN0YXJ0ICsgbGVuZ3RoLCB2bS0+dG9wKTsKKwlpZiAodW5saWtlbHkoZXJyICYmIGZyb20gIT0gc3RhcnQpKQorCQlfX2dlbjhfcHBndHRfY2xlYXIodm0sIGk5MTVfdm1fdG9fcHBndHQodm0pLT5wZCwKKwkJCQkgICBmcm9tLCBzdGFydCwgdm0tPnRvcCk7CisKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBzZ3RfZG1hIHsKQEAgLTkzMyw0NyArMTE2MywyOCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBzZ3RfZG1hIHsKIAlyZXR1cm4gKHN0cnVjdCBzZ3RfZG1hKSB7IHNnLCBhZGRyLCBhZGRyICsgc2ctPmxlbmd0aCB9OwogfQogCi1zdHJ1Y3QgZ2VuOF9pbnNlcnRfcHRlIHsKLQl1MTYgcG1sNGU7Ci0JdTE2IHBkcGU7Ci0JdTE2IHBkZTsKLQl1MTYgcHRlOwotfTsKLQotc3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgZ2VuOF9pbnNlcnRfcHRlIGdlbjhfaW5zZXJ0X3B0ZSh1NjQgc3RhcnQpCi17Ci0JcmV0dXJuIChzdHJ1Y3QgZ2VuOF9pbnNlcnRfcHRlKSB7Ci0JCSBnZW44X3BtbDRlX2luZGV4KHN0YXJ0KSwKLQkJIGdlbjhfcGRwZV9pbmRleChzdGFydCksCi0JCSBnZW44X3BkZV9pbmRleChzdGFydCksCi0JCSBnZW44X3B0ZV9pbmRleChzdGFydCksCi0JfTsKLX0KLQotc3RhdGljIF9fYWx3YXlzX2lubGluZSBib29sCi1nZW44X3BwZ3R0X2luc2VydF9wdGVfZW50cmllcyhzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQsCi0JCQkgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwLAotCQkJICAgICAgc3RydWN0IHNndF9kbWEgKml0ZXIsCi0JCQkgICAgICBzdHJ1Y3QgZ2VuOF9pbnNlcnRfcHRlICppZHgsCi0JCQkgICAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCi0JCQkgICAgICB1MzIgZmxhZ3MpCitzdGF0aWMgX19hbHdheXNfaW5saW5lIHU2NAorZ2VuOF9wcGd0dF9pbnNlcnRfcHRlKHN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCwKKwkJICAgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkcCwKKwkJICAgICAgc3RydWN0IHNndF9kbWEgKml0ZXIsCisJCSAgICAgIHU2NCBpZHgsCisJCSAgICAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKKwkJICAgICAgdTMyIGZsYWdzKQogewogCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKIAljb25zdCBnZW44X3B0ZV90IHB0ZV9lbmNvZGUgPSBnZW44X3B0ZV9lbmNvZGUoMCwgY2FjaGVfbGV2ZWwsIGZsYWdzKTsKIAlnZW44X3B0ZV90ICp2YWRkcjsKLQlib29sIHJldDsKIAotCUdFTV9CVUdfT04oaWR4LT5wZHBlID49IGk5MTVfcGRwZXNfcGVyX3BkcCgmcHBndHQtPnZtKSk7Ci0JcGQgPSBpOTE1X3BkX2VudHJ5KHBkcCwgaWR4LT5wZHBlKTsKLQl2YWRkciA9IGttYXBfYXRvbWljX3B4KGk5MTVfcHRfZW50cnkocGQsIGlkeC0+cGRlKSk7CisJcGQgPSBpOTE1X3BkX2VudHJ5KHBkcCwgZ2VuOF9wZF9pbmRleChpZHgsIDIpKTsKKwl2YWRkciA9IGttYXBfYXRvbWljX3B4KGk5MTVfcHRfZW50cnkocGQsIGdlbjhfcGRfaW5kZXgoaWR4LCAxKSkpOwogCWRvIHsKLQkJdmFkZHJbaWR4LT5wdGVdID0gcHRlX2VuY29kZSB8IGl0ZXItPmRtYTsKKwkJdmFkZHJbZ2VuOF9wZF9pbmRleChpZHgsIDApXSA9IHB0ZV9lbmNvZGUgfCBpdGVyLT5kbWE7CiAKIAkJaXRlci0+ZG1hICs9IEk5MTVfR1RUX1BBR0VfU0laRTsKIAkJaWYgKGl0ZXItPmRtYSA+PSBpdGVyLT5tYXgpIHsKIAkJCWl0ZXItPnNnID0gX19zZ19uZXh0KGl0ZXItPnNnKTsKIAkJCWlmICghaXRlci0+c2cpIHsKLQkJCQlyZXQgPSBmYWxzZTsKKwkJCQlpZHggPSAwOwogCQkJCWJyZWFrOwogCQkJfQogCkBAIC05ODEsOTEgKzExOTIsNjggQEAgZ2VuOF9wcGd0dF9pbnNlcnRfcHRlX2VudHJpZXMoc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0LAogCQkJaXRlci0+bWF4ID0gaXRlci0+ZG1hICsgaXRlci0+c2ctPmxlbmd0aDsKIAkJfQogCi0JCWlmICgrK2lkeC0+cHRlID09IEdFTjhfUFRFUykgewotCQkJaWR4LT5wdGUgPSAwOwotCi0JCQlpZiAoKytpZHgtPnBkZSA9PSBJOTE1X1BERVMpIHsKLQkJCQlpZHgtPnBkZSA9IDA7Ci0KKwkJaWYgKGdlbjhfcGRfaW5kZXgoKytpZHgsIDApID09IDApIHsKKwkJCWlmIChnZW44X3BkX2luZGV4KGlkeCwgMSkgPT0gMCkgewogCQkJCS8qIExpbWl0ZWQgYnkgc2cgbGVuZ3RoIGZvciAzbHZsICovCi0JCQkJaWYgKCsraWR4LT5wZHBlID09IEdFTjhfUE1MNEVTX1BFUl9QTUw0KSB7Ci0JCQkJCWlkeC0+cGRwZSA9IDA7Ci0JCQkJCXJldCA9IHRydWU7CisJCQkJaWYgKGdlbjhfcGRfaW5kZXgoaWR4LCAyKSA9PSAwKQogCQkJCQlicmVhazsKLQkJCQl9CiAKLQkJCQlHRU1fQlVHX09OKGlkeC0+cGRwZSA+PSBpOTE1X3BkcGVzX3Blcl9wZHAoJnBwZ3R0LT52bSkpOwotCQkJCXBkID0gcGRwLT5lbnRyeVtpZHgtPnBkcGVdOworCQkJCXBkID0gcGRwLT5lbnRyeVtnZW44X3BkX2luZGV4KGlkeCwgMildOwogCQkJfQogCiAJCQlrdW5tYXBfYXRvbWljKHZhZGRyKTsKLQkJCXZhZGRyID0ga21hcF9hdG9taWNfcHgoaTkxNV9wdF9lbnRyeShwZCwgaWR4LT5wZGUpKTsKKwkJCXZhZGRyID0ga21hcF9hdG9taWNfcHgoaTkxNV9wdF9lbnRyeShwZCwgZ2VuOF9wZF9pbmRleChpZHgsIDEpKSk7CiAJCX0KIAl9IHdoaWxlICgxKTsKIAlrdW5tYXBfYXRvbWljKHZhZGRyKTsKIAotCXJldHVybiByZXQ7CisJcmV0dXJuIGlkeDsKIH0KIAotc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9pbnNlcnRfM2x2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJCQkgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKK3N0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0X2h1Z2Uoc3RydWN0IGk5MTVfdm1hICp2bWEsCisJCQkJICAgc3RydWN0IHNndF9kbWEgKml0ZXIsCiAJCQkJICAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAogCQkJCSAgIHUzMiBmbGFncykKIHsKLQlzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQgPSBpOTE1X3ZtX3RvX3BwZ3R0KHZtKTsKLQlzdHJ1Y3Qgc2d0X2RtYSBpdGVyID0gc2d0X2RtYSh2bWEpOwotCXN0cnVjdCBnZW44X2luc2VydF9wdGUgaWR4ID0gZ2VuOF9pbnNlcnRfcHRlKHZtYS0+bm9kZS5zdGFydCk7Ci0KLQlnZW44X3BwZ3R0X2luc2VydF9wdGVfZW50cmllcyhwcGd0dCwgcHBndHQtPnBkLCAmaXRlciwgJmlkeCwKLQkJCQkgICAgICBjYWNoZV9sZXZlbCwgZmxhZ3MpOwotCi0Jdm1hLT5wYWdlX3NpemVzLmd0dCA9IEk5MTVfR1RUX1BBR0VfU0laRTsKLX0KLQotc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9pbnNlcnRfaHVnZV9lbnRyaWVzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAotCQkJCQkgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcG1sNCwKLQkJCQkJICAgc3RydWN0IHNndF9kbWEgKml0ZXIsCi0JCQkJCSAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKLQkJCQkJICAgdTMyIGZsYWdzKQotewogCWNvbnN0IGdlbjhfcHRlX3QgcHRlX2VuY29kZSA9IGdlbjhfcHRlX2VuY29kZSgwLCBjYWNoZV9sZXZlbCwgZmxhZ3MpOwogCXU2NCBzdGFydCA9IHZtYS0+bm9kZS5zdGFydDsKIAlkbWFfYWRkcl90IHJlbSA9IGl0ZXItPnNnLT5sZW5ndGg7CiAKKwlHRU1fQlVHX09OKCFpOTE1X3ZtX2lzXzRsdmwodm1hLT52bSkpOworCiAJZG8gewotCQlzdHJ1Y3QgZ2VuOF9pbnNlcnRfcHRlIGlkeCA9IGdlbjhfaW5zZXJ0X3B0ZShzdGFydCk7Ci0JCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZHAgPQotCQkJaTkxNV9wZHBfZW50cnkocG1sNCwgaWR4LnBtbDRlKTsKLQkJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkID0gaTkxNV9wZF9lbnRyeShwZHAsIGlkeC5wZHBlKTsKLQkJdW5zaWduZWQgaW50IHBhZ2Vfc2l6ZTsKLQkJYm9vbCBtYXliZV82NEsgPSBmYWxzZTsKKwkJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBwZHAgPQorCQkJZ2VuOF9wZHBfZm9yX3BhZ2VfYWRkcmVzcyh2bWEtPnZtLCBzdGFydCk7CisJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcGQgPQorCQkJaTkxNV9wZF9lbnRyeShwZHAsIF9fZ2VuOF9wdGVfaW5kZXgoc3RhcnQsIDIpKTsKIAkJZ2VuOF9wdGVfdCBlbmNvZGUgPSBwdGVfZW5jb2RlOworCQl1bnNpZ25lZCBpbnQgbWF5YmVfNjRLID0gLTE7CisJCXVuc2lnbmVkIGludCBwYWdlX3NpemU7CiAJCWdlbjhfcHRlX3QgKnZhZGRyOwotCQl1MTYgaW5kZXgsIG1heDsKKwkJdTE2IGluZGV4OwogCiAJCWlmICh2bWEtPnBhZ2Vfc2l6ZXMuc2cgJiBJOTE1X0dUVF9QQUdFX1NJWkVfMk0gJiYKIAkJICAgIElTX0FMSUdORUQoaXRlci0+ZG1hLCBJOTE1X0dUVF9QQUdFX1NJWkVfMk0pICYmCi0JCSAgICByZW0gPj0gSTkxNV9HVFRfUEFHRV9TSVpFXzJNICYmICFpZHgucHRlKSB7Ci0JCQlpbmRleCA9IGlkeC5wZGU7Ci0JCQltYXggPSBJOTE1X1BERVM7Ci0JCQlwYWdlX3NpemUgPSBJOTE1X0dUVF9QQUdFX1NJWkVfMk07Ci0KKwkJICAgIHJlbSA+PSBJOTE1X0dUVF9QQUdFX1NJWkVfMk0gJiYKKwkJICAgICFfX2dlbjhfcHRlX2luZGV4KHN0YXJ0LCAwKSkgeworCQkJaW5kZXggPSBfX2dlbjhfcHRlX2luZGV4KHN0YXJ0LCAxKTsKIAkJCWVuY29kZSB8PSBHRU44X1BERV9QU18yTTsKKwkJCXBhZ2Vfc2l6ZSA9IEk5MTVfR1RUX1BBR0VfU0laRV8yTTsKIAogCQkJdmFkZHIgPSBrbWFwX2F0b21pY19weChwZCk7CiAJCX0gZWxzZSB7Ci0JCQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdCA9IGk5MTVfcHRfZW50cnkocGQsIGlkeC5wZGUpOworCQkJc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQgPQorCQkJCWk5MTVfcHRfZW50cnkocGQsIF9fZ2VuOF9wdGVfaW5kZXgoc3RhcnQsIDEpKTsKIAotCQkJaW5kZXggPSBpZHgucHRlOwotCQkJbWF4ID0gR0VOOF9QVEVTOworCQkJaW5kZXggPSBfX2dlbjhfcHRlX2luZGV4KHN0YXJ0LCAwKTsKIAkJCXBhZ2Vfc2l6ZSA9IEk5MTVfR1RUX1BBR0VfU0laRTsKIAogCQkJaWYgKCFpbmRleCAmJgogCQkJICAgIHZtYS0+cGFnZV9zaXplcy5zZyAmIEk5MTVfR1RUX1BBR0VfU0laRV82NEsgJiYKIAkJCSAgICBJU19BTElHTkVEKGl0ZXItPmRtYSwgSTkxNV9HVFRfUEFHRV9TSVpFXzY0SykgJiYKIAkJCSAgICAoSVNfQUxJR05FRChyZW0sIEk5MTVfR1RUX1BBR0VfU0laRV82NEspIHx8Ci0JCQkgICAgIHJlbSA+PSAobWF4IC0gaW5kZXgpICogSTkxNV9HVFRfUEFHRV9TSVpFKSkKLQkJCQltYXliZV82NEsgPSB0cnVlOworCQkJICAgICByZW0gPj0gKEk5MTVfUERFUyAtIGluZGV4KSAqIEk5MTVfR1RUX1BBR0VfU0laRSkpCisJCQkJbWF5YmVfNjRLID0gX19nZW44X3B0ZV9pbmRleChzdGFydCwgMSk7CiAKIAkJCXZhZGRyID0ga21hcF9hdG9taWNfcHgocHQpOwogCQl9CkBAIC0xMDg2LDE2ICsxMjc0LDE2IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0X2h1Z2VfZW50cmllcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAkJCQlpdGVyLT5kbWEgPSBzZ19kbWFfYWRkcmVzcyhpdGVyLT5zZyk7CiAJCQkJaXRlci0+bWF4ID0gaXRlci0+ZG1hICsgcmVtOwogCi0JCQkJaWYgKG1heWJlXzY0SyAmJiBpbmRleCA8IG1heCAmJgorCQkJCWlmIChtYXliZV82NEsgIT0gLTEgJiYgaW5kZXggPCBJOTE1X1BERVMgJiYKIAkJCQkgICAgIShJU19BTElHTkVEKGl0ZXItPmRtYSwgSTkxNV9HVFRfUEFHRV9TSVpFXzY0SykgJiYKIAkJCQkgICAgICAoSVNfQUxJR05FRChyZW0sIEk5MTVfR1RUX1BBR0VfU0laRV82NEspIHx8Ci0JCQkJICAgICAgIHJlbSA+PSAobWF4IC0gaW5kZXgpICogSTkxNV9HVFRfUEFHRV9TSVpFKSkpCi0JCQkJCW1heWJlXzY0SyA9IGZhbHNlOworCQkJCSAgICAgICByZW0gPj0gKEk5MTVfUERFUyAtIGluZGV4KSAqIEk5MTVfR1RUX1BBR0VfU0laRSkpKQorCQkJCQltYXliZV82NEsgPSAtMTsKIAogCQkJCWlmICh1bmxpa2VseSghSVNfQUxJR05FRChpdGVyLT5kbWEsIHBhZ2Vfc2l6ZSkpKQogCQkJCQlicmVhazsKIAkJCX0KLQkJfSB3aGlsZSAocmVtID49IHBhZ2Vfc2l6ZSAmJiBpbmRleCA8IG1heCk7CisJCX0gd2hpbGUgKHJlbSA+PSBwYWdlX3NpemUgJiYgaW5kZXggPCBJOTE1X1BERVMpOwogCiAJCWt1bm1hcF9hdG9taWModmFkZHIpOwogCkBAIC0xMTA1LDE0ICsxMjkzLDE0IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0X2h1Z2VfZW50cmllcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAkJICogaXQgYW5kIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBzZyB0YWJsZSBhbmQgd2UgaGF2ZQogCQkgKiBlbm91Z2ggcGFkZGluZy4KIAkJICovCi0JCWlmIChtYXliZV82NEsgJiYKLQkJICAgIChpbmRleCA9PSBtYXggfHwKKwkJaWYgKG1heWJlXzY0SyAhPSAtMSAmJgorCQkgICAgKGluZGV4ID09IEk5MTVfUERFUyB8fAogCQkgICAgIChpOTE1X3ZtX2hhc19zY3JhdGNoXzY0Syh2bWEtPnZtKSAmJgogCQkgICAgICAhaXRlci0+c2cgJiYgSVNfQUxJR05FRCh2bWEtPm5vZGUuc3RhcnQgKwogCQkJCQkgICAgICB2bWEtPm5vZGUuc2l6ZSwKIAkJCQkJICAgICAgSTkxNV9HVFRfUEFHRV9TSVpFXzJNKSkpKSB7CiAJCQl2YWRkciA9IGttYXBfYXRvbWljX3B4KHBkKTsKLQkJCXZhZGRyW2lkeC5wZGVdIHw9IEdFTjhfUERFX0lQU182NEs7CisJCQl2YWRkclttYXliZV82NEtdIHw9IEdFTjhfUERFX0lQU182NEs7CiAJCQlrdW5tYXBfYXRvbWljKHZhZGRyKTsKIAkJCXBhZ2Vfc2l6ZSA9IEk5MTVfR1RUX1BBR0VfU0laRV82NEs7CiAKQEAgLTExMjgsOSArMTMxNiw4IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0X2h1Z2VfZW50cmllcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAkJCWlmIChJOTE1X1NFTEZURVNUX09OTFkodm1hLT52bS0+c2NydWJfNjRLKSkgewogCQkJCXUxNiBpOwogCi0JCQkJZW5jb2RlID0gdm1hLT52bS0+c2NyYXRjaF9wdGU7Ci0JCQkJdmFkZHIgPSBrbWFwX2F0b21pY19weChpOTE1X3B0X2VudHJ5KHBkLAotCQkJCQkJCQkgICAgIGlkeC5wZGUpKTsKKwkJCQllbmNvZGUgPSB2bWEtPnZtLT5zY3JhdGNoWzBdLmVuY29kZTsKKwkJCQl2YWRkciA9IGttYXBfYXRvbWljX3B4KGk5MTVfcHRfZW50cnkocGQsIG1heWJlXzY0SykpOwogCiAJCQkJZm9yIChpID0gMTsgaSA8IGluZGV4OyBpICs9IDE2KQogCQkJCQltZW1zZXQ2NCh2YWRkciArIGksIGVuY29kZSwgMTUpOwpAQCAtMTE0Myw0NSArMTMzMCwzNSBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2luc2VydF9odWdlX2VudHJpZXMoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJfSB3aGlsZSAoaXRlci0+c2cpOwogfQogCi1zdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2luc2VydF80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJCSAgIHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAotCQkJCSAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKLQkJCQkgICB1MzIgZmxhZ3MpCitzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2luc2VydChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKKwkJCSAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAorCQkJICAgICAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAorCQkJICAgICAgdTMyIGZsYWdzKQogewotCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCA9IGk5MTVfdm1fdG9fcHBndHQodm0pOworCXN0cnVjdCBpOTE1X3BwZ3R0ICogY29uc3QgcHBndHQgPSBpOTE1X3ZtX3RvX3BwZ3R0KHZtKTsKIAlzdHJ1Y3Qgc2d0X2RtYSBpdGVyID0gc2d0X2RtYSh2bWEpOwotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcG1sNCA9IHBwZ3R0LT5wZDsKIAogCWlmICh2bWEtPnBhZ2Vfc2l6ZXMuc2cgPiBJOTE1X0dUVF9QQUdFX1NJWkUpIHsKLQkJZ2VuOF9wcGd0dF9pbnNlcnRfaHVnZV9lbnRyaWVzKHZtYSwgcG1sNCwgJml0ZXIsIGNhY2hlX2xldmVsLAotCQkJCQkgICAgICAgZmxhZ3MpOwotCX0gZWxzZSB7Ci0JCXN0cnVjdCBnZW44X2luc2VydF9wdGUgaWR4ID0gZ2VuOF9pbnNlcnRfcHRlKHZtYS0+bm9kZS5zdGFydCk7CisJCWdlbjhfcHBndHRfaW5zZXJ0X2h1Z2Uodm1hLCAmaXRlciwgY2FjaGVfbGV2ZWwsIGZsYWdzKTsKKwl9IGVsc2UgIHsKKwkJdTY0IGlkeCA9IHZtYS0+bm9kZS5zdGFydCA+PiBHRU44X1BURV9TSElGVDsKIAotCQl3aGlsZSAoZ2VuOF9wcGd0dF9pbnNlcnRfcHRlX2VudHJpZXMocHBndHQsCi0JCQkJCQkgICAgIGk5MTVfcGRwX2VudHJ5KHBtbDQsIGlkeC5wbWw0ZSsrKSwKLQkJCQkJCSAgICAgJml0ZXIsICZpZHgsIGNhY2hlX2xldmVsLAotCQkJCQkJICAgICBmbGFncykpCi0JCQlHRU1fQlVHX09OKGlkeC5wbWw0ZSA+PSBHRU44X1BNTDRFU19QRVJfUE1MNCk7CisJCWRvIHsKKwkJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcGRwID0KKwkJCQlnZW44X3BkcF9mb3JfcGFnZV9pbmRleCh2bSwgaWR4KTsKKworCQkJaWR4ID0gZ2VuOF9wcGd0dF9pbnNlcnRfcHRlKHBwZ3R0LCBwZHAsICZpdGVyLCBpZHgsCisJCQkJCQkgICAgY2FjaGVfbGV2ZWwsIGZsYWdzKTsKKwkJfSB3aGlsZSAoaWR4KTsKIAogCQl2bWEtPnBhZ2Vfc2l6ZXMuZ3R0ID0gSTkxNV9HVFRfUEFHRV9TSVpFOwogCX0KIH0KIAotc3RhdGljIHZvaWQgZ2VuOF9mcmVlX3BhZ2VfdGFibGVzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJCSAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IEk5MTVfUERFUzsgaSsrKSB7Ci0JCWlmIChwZC0+ZW50cnlbaV0gIT0gdm0tPnNjcmF0Y2hfcHQpCi0JCQlmcmVlX3B0KHZtLCBwZC0+ZW50cnlbaV0pOwotCX0KLX0KLQogc3RhdGljIGludCBnZW44X2luaXRfc2NyYXRjaChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIHsKIAlpbnQgcmV0OworCWludCBpOwogCiAJLyoKIAkgKiBJZiBldmVyeWJvZHkgYWdyZWVzIHRvIG5vdCB0byB3cml0ZSBpbnRvIHRoZSBzY3JhdGNoIHBhZ2UsCkBAIC0xMTk1LDEwICsxMzcyLDggQEAgc3RhdGljIGludCBnZW44X2luaXRfc2NyYXRjaChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIAkJR0VNX0JVR19PTighY2xvbmUtPmhhc19yZWFkX29ubHkpOwogCiAJCXZtLT5zY3JhdGNoX29yZGVyID0gY2xvbmUtPnNjcmF0Y2hfb3JkZXI7Ci0JCXZtLT5zY3JhdGNoX3B0ZSA9IGNsb25lLT5zY3JhdGNoX3B0ZTsKLQkJdm0tPnNjcmF0Y2hfcHQgID0gY2xvbmUtPnNjcmF0Y2hfcHQ7Ci0JCXZtLT5zY3JhdGNoX3BkICA9IGNsb25lLT5zY3JhdGNoX3BkOwotCQl2bS0+c2NyYXRjaF9wZHAgPSBjbG9uZS0+c2NyYXRjaF9wZHA7CisJCW1lbWNweSh2bS0+c2NyYXRjaCwgY2xvbmUtPnNjcmF0Y2gsIHNpemVvZih2bS0+c2NyYXRjaCkpOworCQlweF9kbWEoJnZtLT5zY3JhdGNoWzBdKSA9IDA7IC8qIG5vIHhmZXIgb2Ygb3duZXJzaGlwICovCiAJCXJldHVybiAwOwogCX0KIApAQCAtMTIwNiwzNjcgKzEzODEsNTYgQEAgc3RhdGljIGludCBnZW44X2luaXRfc2NyYXRjaChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0Jdm0tPnNjcmF0Y2hfcHRlID0KLQkJZ2VuOF9wdGVfZW5jb2RlKHZtLT5zY3JhdGNoX3BhZ2UuZGFkZHIsCi0JCQkJSTkxNV9DQUNIRV9MTEMsCi0JCQkJdm0tPmhhc19yZWFkX29ubHkpOworCXZtLT5zY3JhdGNoWzBdLmVuY29kZSA9CisJCWdlbjhfcHRlX2VuY29kZShweF9kbWEoJnZtLT5zY3JhdGNoWzBdKSwKKwkJCQlJOTE1X0NBQ0hFX0xMQywgdm0tPmhhc19yZWFkX29ubHkpOwogCi0Jdm0tPnNjcmF0Y2hfcHQgPSBhbGxvY19wdCh2bSk7Ci0JaWYgKElTX0VSUih2bS0+c2NyYXRjaF9wdCkpIHsKLQkJcmV0ID0gUFRSX0VSUih2bS0+c2NyYXRjaF9wdCk7Ci0JCWdvdG8gZnJlZV9zY3JhdGNoX3BhZ2U7CisJZm9yIChpID0gMTsgaSA8PSB2bS0+dG9wOyBpKyspIHsKKwkJaWYgKHVubGlrZWx5KHNldHVwX3BhZ2VfZG1hKHZtLCBweF9iYXNlKCZ2bS0+c2NyYXRjaFtpXSkpKSkKKwkJCWdvdG8gZnJlZV9zY3JhdGNoOworCisJCWZpbGxfcHgoJnZtLT5zY3JhdGNoW2ldLCB2bS0+c2NyYXRjaFtpIC0gMV0uZW5jb2RlKTsKKwkJdm0tPnNjcmF0Y2hbaV0uZW5jb2RlID0KKwkJCWdlbjhfcGRlX2VuY29kZShweF9kbWEoJnZtLT5zY3JhdGNoW2ldKSwKKwkJCQkJSTkxNV9DQUNIRV9MTEMpOwogCX0KIAotCXZtLT5zY3JhdGNoX3BkID0gYWxsb2NfcGQodm0pOwotCWlmIChJU19FUlIodm0tPnNjcmF0Y2hfcGQpKSB7Ci0JCXJldCA9IFBUUl9FUlIodm0tPnNjcmF0Y2hfcGQpOwotCQlnb3RvIGZyZWVfcHQ7Ci0JfQotCi0JaWYgKGk5MTVfdm1faXNfNGx2bCh2bSkpIHsKLQkJdm0tPnNjcmF0Y2hfcGRwID0gYWxsb2NfcGQodm0pOwotCQlpZiAoSVNfRVJSKHZtLT5zY3JhdGNoX3BkcCkpIHsKLQkJCXJldCA9IFBUUl9FUlIodm0tPnNjcmF0Y2hfcGRwKTsKLQkJCWdvdG8gZnJlZV9wZDsKLQkJfQotCX0KLQotCWdlbjhfaW5pdGlhbGl6ZV9wdCh2bSwgdm0tPnNjcmF0Y2hfcHQpOwotCWluaXRfcGRfd2l0aF9wYWdlKHZtLCB2bS0+c2NyYXRjaF9wZCwgdm0tPnNjcmF0Y2hfcHQpOwotCWlmIChpOTE1X3ZtX2lzXzRsdmwodm0pKQotCQlpbml0X3BkKHZtLCB2bS0+c2NyYXRjaF9wZHAsIHZtLT5zY3JhdGNoX3BkKTsKLQogCXJldHVybiAwOwogCi1mcmVlX3BkOgotCWZyZWVfcGQodm0sIHZtLT5zY3JhdGNoX3BkKTsKLWZyZWVfcHQ6Ci0JZnJlZV9wdCh2bSwgdm0tPnNjcmF0Y2hfcHQpOwotZnJlZV9zY3JhdGNoX3BhZ2U6Ci0JY2xlYW51cF9zY3JhdGNoX3BhZ2Uodm0pOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBnZW44X3BwZ3R0X25vdGlmeV92Z3Qoc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0LCBib29sIGNyZWF0ZSkKLXsKLQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9ICZwcGd0dC0+dm07Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdm0tPmk5MTU7Ci0JZW51bSB2Z3RfZzJ2X3R5cGUgbXNnOwotCWludCBpOwotCi0JaWYgKGk5MTVfdm1faXNfNGx2bCh2bSkpIHsKLQkJY29uc3QgdTY0IGRhZGRyID0gcHhfZG1hKHBwZ3R0LT5wZCk7Ci0KLQkJSTkxNV9XUklURSh2Z3RpZl9yZWcocGRwWzBdLmxvKSwgbG93ZXJfMzJfYml0cyhkYWRkcikpOwotCQlJOTE1X1dSSVRFKHZndGlmX3JlZyhwZHBbMF0uaGkpLCB1cHBlcl8zMl9iaXRzKGRhZGRyKSk7Ci0KLQkJbXNnID0gKGNyZWF0ZSA/IFZHVF9HMlZfUFBHVFRfTDRfUEFHRV9UQUJMRV9DUkVBVEUgOgotCQkJCVZHVF9HMlZfUFBHVFRfTDRfUEFHRV9UQUJMRV9ERVNUUk9ZKTsKLQl9IGVsc2UgewotCQlmb3IgKGkgPSAwOyBpIDwgR0VOOF8zTFZMX1BEUEVTOyBpKyspIHsKLQkJCWNvbnN0IHU2NCBkYWRkciA9IGk5MTVfcGFnZV9kaXJfZG1hX2FkZHIocHBndHQsIGkpOwotCi0JCQlJOTE1X1dSSVRFKHZndGlmX3JlZyhwZHBbaV0ubG8pLCBsb3dlcl8zMl9iaXRzKGRhZGRyKSk7Ci0JCQlJOTE1X1dSSVRFKHZndGlmX3JlZyhwZHBbaV0uaGkpLCB1cHBlcl8zMl9iaXRzKGRhZGRyKSk7Ci0JCX0KLQotCQltc2cgPSAoY3JlYXRlID8gVkdUX0cyVl9QUEdUVF9MM19QQUdFX1RBQkxFX0NSRUFURSA6Ci0JCQkJVkdUX0cyVl9QUEdUVF9MM19QQUdFX1RBQkxFX0RFU1RST1kpOwotCX0KLQotCUk5MTVfV1JJVEUodmd0aWZfcmVnKGcydl9ub3RpZnkpLCBtc2cpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGdlbjhfZnJlZV9zY3JhdGNoKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQotewotCWlmICghdm0tPnNjcmF0Y2hfcGFnZS5kYWRkcikKLQkJcmV0dXJuOwotCi0JaWYgKGk5MTVfdm1faXNfNGx2bCh2bSkpCi0JCWZyZWVfcGQodm0sIHZtLT5zY3JhdGNoX3BkcCk7Ci0JZnJlZV9wZCh2bSwgdm0tPnNjcmF0Y2hfcGQpOwotCWZyZWVfcHQodm0sIHZtLT5zY3JhdGNoX3B0KTsKLQljbGVhbnVwX3NjcmF0Y2hfcGFnZSh2bSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYW51cF8zbHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJCSAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwKQotewotCWNvbnN0IHVuc2lnbmVkIGludCBwZHBlcyA9IGk5MTVfcGRwZXNfcGVyX3BkcCh2bSk7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgcGRwZXM7IGkrKykgewotCQlpZiAocGRwLT5lbnRyeVtpXSA9PSB2bS0+c2NyYXRjaF9wZCkKLQkJCWNvbnRpbnVlOwotCi0JCWdlbjhfZnJlZV9wYWdlX3RhYmxlcyh2bSwgcGRwLT5lbnRyeVtpXSk7Ci0JCWZyZWVfcGQodm0sIHBkcC0+ZW50cnlbaV0pOwotCX0KLQotCWZyZWVfcGQodm0sIHBkcCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYW51cF80bHZsKHN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCkKLXsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBtbDQgPSBwcGd0dC0+cGQ7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgR0VOOF9QTUw0RVNfUEVSX1BNTDQ7IGkrKykgewotCQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwID0gaTkxNV9wZHBfZW50cnkocG1sNCwgaSk7Ci0KLQkJaWYgKHBkcCA9PSBwcGd0dC0+dm0uc2NyYXRjaF9wZHApCi0JCQljb250aW51ZTsKLQotCQlnZW44X3BwZ3R0X2NsZWFudXBfM2x2bCgmcHBndHQtPnZtLCBwZHApOwotCX0KLQotCWZyZWVfcGQoJnBwZ3R0LT52bSwgcG1sNCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYW51cChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHZtLT5pOTE1OwotCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCA9IGk5MTVfdm1fdG9fcHBndHQodm0pOwotCi0JaWYgKGludGVsX3ZncHVfYWN0aXZlKGk5MTUpKQotCQlnZW44X3BwZ3R0X25vdGlmeV92Z3QocHBndHQsIGZhbHNlKTsKLQotCWlmIChpOTE1X3ZtX2lzXzRsdmwodm0pKQotCQlnZW44X3BwZ3R0X2NsZWFudXBfNGx2bChwcGd0dCk7Ci0JZWxzZQotCQlnZW44X3BwZ3R0X2NsZWFudXBfM2x2bCgmcHBndHQtPnZtLCBwcGd0dC0+cGQpOwotCi0JZ2VuOF9mcmVlX3NjcmF0Y2godm0pOwotfQotCi1zdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0JCQkgICAgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAotCQkJICAgICAgIHU2NCBzdGFydCwgdTY0IGxlbmd0aCkKLXsKLQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdCwgKmFsbG9jID0gTlVMTDsKLQl1NjQgZnJvbSA9IHN0YXJ0OwotCXVuc2lnbmVkIGludCBwZGU7Ci0JaW50IHJldCA9IDA7Ci0KLQlzcGluX2xvY2soJnBkLT5sb2NrKTsKLQlnZW44X2Zvcl9lYWNoX3BkZShwdCwgcGQsIHN0YXJ0LCBsZW5ndGgsIHBkZSkgewotCQljb25zdCBpbnQgY291bnQgPSBnZW44X3B0ZV9jb3VudChzdGFydCwgbGVuZ3RoKTsKLQotCQlpZiAocHQgPT0gdm0tPnNjcmF0Y2hfcHQpIHsKLQkJCXNwaW5fdW5sb2NrKCZwZC0+bG9jayk7Ci0KLQkJCXB0ID0gZmV0Y2hfYW5kX3plcm8oJmFsbG9jKTsKLQkJCWlmICghcHQpCi0JCQkJcHQgPSBhbGxvY19wdCh2bSk7Ci0JCQlpZiAoSVNfRVJSKHB0KSkgewotCQkJCXJldCA9IFBUUl9FUlIocHQpOwotCQkJCWdvdG8gdW53aW5kOwotCQkJfQotCi0JCQlpZiAoY291bnQgPCBHRU44X1BURVMgfHwgaW50ZWxfdmdwdV9hY3RpdmUodm0tPmk5MTUpKQotCQkJCWdlbjhfaW5pdGlhbGl6ZV9wdCh2bSwgcHQpOwotCi0JCQlzcGluX2xvY2soJnBkLT5sb2NrKTsKLQkJCWlmIChwZC0+ZW50cnlbcGRlXSA9PSB2bS0+c2NyYXRjaF9wdCkgewotCQkJCWdlbjhfcHBndHRfc2V0X3BkZSh2bSwgcGQsIHB0LCBwZGUpOwotCQkJCXBkLT5lbnRyeVtwZGVdID0gcHQ7Ci0JCQkJYXRvbWljX2luYygmcGQtPnVzZWQpOwotCQkJfSBlbHNlIHsKLQkJCQlhbGxvYyA9IHB0OwotCQkJCXB0ID0gcGQtPmVudHJ5W3BkZV07Ci0JCQl9Ci0JCX0KLQotCQlhdG9taWNfYWRkKGNvdW50LCAmcHQtPnVzZWQpOwotCX0KLQlzcGluX3VubG9jaygmcGQtPmxvY2spOwotCWdvdG8gb3V0OwotCi11bndpbmQ6Ci0JZ2VuOF9wcGd0dF9jbGVhcl9wZCh2bSwgcGQsIGZyb20sIHN0YXJ0IC0gZnJvbSk7Ci1vdXQ6Ci0JaWYgKGFsbG9jKQotCQlmcmVlX3B0KHZtLCBhbGxvYyk7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBnZW44X3BwZ3R0X2FsbG9jX3BkcChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJCQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwLAotCQkJCXU2NCBzdGFydCwgdTY0IGxlbmd0aCkKLXsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQsICphbGxvYyA9IE5VTEw7Ci0JdTY0IGZyb20gPSBzdGFydDsKLQl1bnNpZ25lZCBpbnQgcGRwZTsKLQlpbnQgcmV0ID0gMDsKLQotCXNwaW5fbG9jaygmcGRwLT5sb2NrKTsKLQlnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwgc3RhcnQsIGxlbmd0aCwgcGRwZSkgewotCQlpZiAocGQgPT0gdm0tPnNjcmF0Y2hfcGQpIHsKLQkJCXNwaW5fdW5sb2NrKCZwZHAtPmxvY2spOwotCi0JCQlwZCA9IGZldGNoX2FuZF96ZXJvKCZhbGxvYyk7Ci0JCQlpZiAoIXBkKQotCQkJCXBkID0gYWxsb2NfcGQodm0pOwotCQkJaWYgKElTX0VSUihwZCkpIHsKLQkJCQlyZXQgPSBQVFJfRVJSKHBkKTsKLQkJCQlnb3RvIHVud2luZDsKLQkJCX0KLQotCQkJaW5pdF9wZF93aXRoX3BhZ2Uodm0sIHBkLCB2bS0+c2NyYXRjaF9wdCk7Ci0KLQkJCXNwaW5fbG9jaygmcGRwLT5sb2NrKTsKLQkJCWlmIChwZHAtPmVudHJ5W3BkcGVdID09IHZtLT5zY3JhdGNoX3BkKSB7Ci0JCQkJZ2VuOF9wcGd0dF9zZXRfcGRwZShwZHAsIHBkLCBwZHBlKTsKLQkJCQlwZHAtPmVudHJ5W3BkcGVdID0gcGQ7Ci0JCQkJYXRvbWljX2luYygmcGRwLT51c2VkKTsKLQkJCX0gZWxzZSB7Ci0JCQkJYWxsb2MgPSBwZDsKLQkJCQlwZCA9IHBkcC0+ZW50cnlbcGRwZV07Ci0JCQl9Ci0JCX0KLQkJYXRvbWljX2luYygmcGQtPnVzZWQpOwotCQlzcGluX3VubG9jaygmcGRwLT5sb2NrKTsKLQotCQlyZXQgPSBnZW44X3BwZ3R0X2FsbG9jX3BkKHZtLCBwZCwgc3RhcnQsIGxlbmd0aCk7Ci0JCWlmICh1bmxpa2VseShyZXQpKQotCQkJZ290byB1bndpbmRfcGQ7Ci0KLQkJc3Bpbl9sb2NrKCZwZHAtPmxvY2spOwotCQlhdG9taWNfZGVjKCZwZC0+dXNlZCk7Ci0JfQotCXNwaW5fdW5sb2NrKCZwZHAtPmxvY2spOwotCWdvdG8gb3V0OwotCi11bndpbmRfcGQ6Ci0Jc3Bpbl9sb2NrKCZwZHAtPmxvY2spOwotCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZwZC0+dXNlZCkpIHsKLQkJZ2VuOF9wcGd0dF9zZXRfcGRwZShwZHAsIHZtLT5zY3JhdGNoX3BkLCBwZHBlKTsKLQkJcGRwLT5lbnRyeVtwZHBlXSA9IHZtLT5zY3JhdGNoX3BkOwotCQlHRU1fQlVHX09OKCFhdG9taWNfcmVhZCgmcGRwLT51c2VkKSk7Ci0JCWF0b21pY19kZWMoJnBkcC0+dXNlZCk7Ci0JCUdFTV9CVUdfT04oYWxsb2MpOwotCQlhbGxvYyA9IHBkOyAvKiBkZWZlciB0aGUgZnJlZSB0byBhZnRlciB0aGUgbG9jayAqLwotCX0KLQlzcGluX3VubG9jaygmcGRwLT5sb2NrKTsKLXVud2luZDoKLQlnZW44X3BwZ3R0X2NsZWFyX3BkcCh2bSwgcGRwLCBmcm9tLCBzdGFydCAtIGZyb20pOwotb3V0OgotCWlmIChhbGxvYykKLQkJZnJlZV9wZCh2bSwgYWxsb2MpOwotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY18zbHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJCSB1NjQgc3RhcnQsIHU2NCBsZW5ndGgpCi17Ci0JcmV0dXJuIGdlbjhfcHBndHRfYWxsb2NfcGRwKHZtLAotCQkJCSAgICBpOTE1X3ZtX3RvX3BwZ3R0KHZtKS0+cGQsIHN0YXJ0LCBsZW5ndGgpOwotfQotCi1zdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfNGx2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJCQkgdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoKQotewotCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCA9IGk5MTVfdm1fdG9fcHBndHQodm0pOwotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcG1sNCA9IHBwZ3R0LT5wZDsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwLCAqYWxsb2MgPSBOVUxMOwotCXU2NCBmcm9tID0gc3RhcnQ7Ci0JaW50IHJldCA9IDA7Ci0JdTMyIHBtbDRlOwotCi0Jc3Bpbl9sb2NrKCZwbWw0LT5sb2NrKTsKLQlnZW44X2Zvcl9lYWNoX3BtbDRlKHBkcCwgcG1sNCwgc3RhcnQsIGxlbmd0aCwgcG1sNGUpIHsKLQkJaWYgKHBkcCA9PSB2bS0+c2NyYXRjaF9wZHApIHsKLQkJCXNwaW5fdW5sb2NrKCZwbWw0LT5sb2NrKTsKLQotCQkJcGRwID0gZmV0Y2hfYW5kX3plcm8oJmFsbG9jKTsKLQkJCWlmICghcGRwKQotCQkJCXBkcCA9IGFsbG9jX3BkKHZtKTsKLQkJCWlmIChJU19FUlIocGRwKSkgewotCQkJCXJldCA9IFBUUl9FUlIocGRwKTsKLQkJCQlnb3RvIHVud2luZDsKLQkJCX0KLQotCQkJaW5pdF9wZCh2bSwgcGRwLCB2bS0+c2NyYXRjaF9wZCk7Ci0KLQkJCXNwaW5fbG9jaygmcG1sNC0+bG9jayk7Ci0JCQlpZiAocG1sNC0+ZW50cnlbcG1sNGVdID09IHZtLT5zY3JhdGNoX3BkcCkgewotCQkJCWdlbjhfcHBndHRfc2V0X3BtbDRlKHBtbDQsIHBkcCwgcG1sNGUpOwotCQkJCXBtbDQtPmVudHJ5W3BtbDRlXSA9IHBkcDsKLQkJCX0gZWxzZSB7Ci0JCQkJYWxsb2MgPSBwZHA7Ci0JCQkJcGRwID0gcG1sNC0+ZW50cnlbcG1sNGVdOwotCQkJfQotCQl9Ci0JCWF0b21pY19pbmMoJnBkcC0+dXNlZCk7Ci0JCXNwaW5fdW5sb2NrKCZwbWw0LT5sb2NrKTsKLQotCQlyZXQgPSBnZW44X3BwZ3R0X2FsbG9jX3BkcCh2bSwgcGRwLCBzdGFydCwgbGVuZ3RoKTsKLQkJaWYgKHVubGlrZWx5KHJldCkpCi0JCQlnb3RvIHVud2luZF9wZHA7Ci0KLQkJc3Bpbl9sb2NrKCZwbWw0LT5sb2NrKTsKLQkJYXRvbWljX2RlYygmcGRwLT51c2VkKTsKLQl9Ci0Jc3Bpbl91bmxvY2soJnBtbDQtPmxvY2spOwotCWdvdG8gb3V0OwotCi11bndpbmRfcGRwOgotCXNwaW5fbG9jaygmcG1sNC0+bG9jayk7Ci0JaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJnBkcC0+dXNlZCkpIHsKLQkJZ2VuOF9wcGd0dF9zZXRfcG1sNGUocG1sNCwgdm0tPnNjcmF0Y2hfcGRwLCBwbWw0ZSk7Ci0JCXBtbDQtPmVudHJ5W3BtbDRlXSA9IHZtLT5zY3JhdGNoX3BkcDsKLQkJR0VNX0JVR19PTihhbGxvYyk7Ci0JCWFsbG9jID0gcGRwOyAvKiBkZWZlciB0aGUgZnJlZSB1bnRpbCBhZnRlciB0aGUgbG9jayAqLwotCX0KLQlzcGluX3VubG9jaygmcG1sNC0+bG9jayk7Ci11bndpbmQ6Ci0JZ2VuOF9wcGd0dF9jbGVhcl80bHZsKHZtLCBmcm9tLCBzdGFydCAtIGZyb20pOwotb3V0OgotCWlmIChhbGxvYykKLQkJZnJlZV9wZCh2bSwgYWxsb2MpOwotCXJldHVybiByZXQ7CitmcmVlX3NjcmF0Y2g6CisJZnJlZV9zY3JhdGNoKHZtKTsKKwlyZXR1cm4gLUVOT01FTTsKIH0KIAogc3RhdGljIGludCBnZW44X3ByZWFsbG9jYXRlX3RvcF9sZXZlbF9wZHAoc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0KQogewogCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gJnBwZ3R0LT52bTsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwID0gcHBndHQtPnBkOwotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKLQl1NjQgc3RhcnQgPSAwLCBsZW5ndGggPSBwcGd0dC0+dm0udG90YWw7Ci0JdTY0IGZyb20gPSBzdGFydDsKLQl1bnNpZ25lZCBpbnQgcGRwZTsKKwlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQgPSBwcGd0dC0+cGQ7CisJdW5zaWduZWQgaW50IGlkeDsKIAotCWdlbjhfZm9yX2VhY2hfcGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3RoLCBwZHBlKSB7Ci0JCXBkID0gYWxsb2NfcGQodm0pOwotCQlpZiAoSVNfRVJSKHBkKSkKLQkJCWdvdG8gdW53aW5kOworCUdFTV9CVUdfT04odm0tPnRvcCAhPSAyKTsKKwlHRU1fQlVHX09OKGdlbjhfcGRfdG9wX2NvdW50KHZtKSAhPSBHRU44XzNMVkxfUERQRVMpOwogCi0JCWluaXRfcGRfd2l0aF9wYWdlKHZtLCBwZCwgdm0tPnNjcmF0Y2hfcHQpOwotCQlnZW44X3BwZ3R0X3NldF9wZHBlKHBkcCwgcGQsIHBkcGUpOworCWZvciAoaWR4ID0gMDsgaWR4IDwgR0VOOF8zTFZMX1BEUEVTOyBpZHgrKykgeworCQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRlOwogCi0JCWF0b21pY19pbmMoJnBkcC0+dXNlZCk7CisJCXBkZSA9IGFsbG9jX3BkKHZtKTsKKwkJaWYgKElTX0VSUihwZGUpKQorCQkJcmV0dXJuIFBUUl9FUlIocGRlKTsKKworCQlmaWxsX3B4KHBkZSwgdm0tPnNjcmF0Y2hbMV0uZW5jb2RlKTsKKwkJc2V0X3BkX2VudHJ5KHBkLCBpZHgsIHBkZSk7CisJCWF0b21pY19pbmMocHhfdXNlZChwZGUpKTsgLyoga2VlcCBwaW5uZWQgKi8KIAl9CiAKLQlhdG9taWNfaW5jKCZwZHAtPnVzZWQpOyAvKiBuZXZlciByZW1vdmUgKi8KLQogCXJldHVybiAwOwotCi11bndpbmQ6Ci0Jc3RhcnQgLT0gZnJvbTsKLQlnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwgZnJvbSwgc3RhcnQsIHBkcGUpIHsKLQkJZ2VuOF9wcGd0dF9zZXRfcGRwZShwZHAsIHZtLT5zY3JhdGNoX3BkLCBwZHBlKTsKLQkJZnJlZV9wZCh2bSwgcGQpOwotCX0KLQlhdG9taWNfc2V0KCZwZHAtPnVzZWQsIDApOwotCXJldHVybiAtRU5PTUVNOwogfQogCi1zdGF0aWMgdm9pZCBwcGd0dF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkgICAgICAgc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0KQorc3RhdGljIHZvaWQgcHBndHRfaW5pdChzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQsIHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKKworCXBwZ3R0LT52bS5ndCA9IGd0OwogCXBwZ3R0LT52bS5pOTE1ID0gaTkxNTsKIAlwcGd0dC0+dm0uZG1hID0gJmk5MTUtPmRybS5wZGV2LT5kZXY7CiAJcHBndHQtPnZtLnRvdGFsID0gQklUX1VMTChJTlRFTF9JTkZPKGk5MTUpLT5wcGd0dF9zaXplKTsKQEAgLTE1NzksNiArMTQ0MywyOCBAQCBzdGF0aWMgdm9pZCBwcGd0dF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXBwZ3R0LT52bS52bWFfb3BzLmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqCitnZW44X2FsbG9jX3RvcF9wZChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKK3sKKwljb25zdCB1bnNpZ25lZCBpbnQgY291bnQgPSBnZW44X3BkX3RvcF9jb3VudCh2bSk7CisJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkOworCisJR0VNX0JVR19PTihjb3VudCA+IEFSUkFZX1NJWkUocGQtPmVudHJ5KSk7CisKKwlwZCA9IF9fYWxsb2NfcGQob2Zmc2V0b2YodHlwZW9mKCpwZCksIGVudHJ5W2NvdW50XSkpOworCWlmICh1bmxpa2VseSghcGQpKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCWlmICh1bmxpa2VseShzZXR1cF9wYWdlX2RtYSh2bSwgcHhfYmFzZShwZCkpKSkgeworCQlrZnJlZShwZCk7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCX0KKworCWZpbGxfcGFnZV9kbWEocHhfYmFzZShwZCksIHZtLT5zY3JhdGNoW3ZtLT50b3BdLmVuY29kZSwgY291bnQpOworCWF0b21pY19pbmMocHhfdXNlZChwZCkpOyAvKiBtYXJrIGFzIHBpbm5lZCAqLworCXJldHVybiBwZDsKK30KKwogLyoKICAqIEdFTjggbGVnYWN5IHBwZ3R0IHByb2dyYW1taW5nIGlzIGFjY29tcGxpc2hlZCB0aHJvdWdoIGEgbWF4IDQgUERQIHJlZ2lzdGVycwogICogd2l0aCBhIG5ldCBlZmZlY3QgcmVzZW1ibGluZyBhIDItbGV2ZWwgcGFnZSB0YWJsZSBpbiBub3JtYWwgeDg2IHRlcm1zLiBFYWNoCkBAIC0xNTk1LDcgKzE0ODEsOCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcHBndHQgKmdlbjhfcHBndHRfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWlmICghcHBndHQpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JcHBndHRfaW5pdChpOTE1LCBwcGd0dCk7CisJcHBndHRfaW5pdChwcGd0dCwgJmk5MTUtPmd0KTsKKwlwcGd0dC0+dm0udG9wID0gaTkxNV92bV9pc180bHZsKCZwcGd0dC0+dm0pID8gMyA6IDI7CiAKIAkvKgogCSAqIEZyb20gYmR3LCB0aGVyZSBpcyBodyBzdXBwb3J0IGZvciByZWFkLW9ubHkgcGFnZXMgaW4gdGhlIFBQR1RULgpAQCAtMTYxNSw0MSArMTUwMiwyNCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcHBndHQgKmdlbjhfcHBndHRfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWlmIChlcnIpCiAJCWdvdG8gZXJyX2ZyZWU7CiAKLQlwcGd0dC0+cGQgPSBfX2FsbG9jX3BkKCk7Ci0JaWYgKCFwcGd0dC0+cGQpIHsKLQkJZXJyID0gLUVOT01FTTsKKwlwcGd0dC0+cGQgPSBnZW44X2FsbG9jX3RvcF9wZCgmcHBndHQtPnZtKTsKKwlpZiAoSVNfRVJSKHBwZ3R0LT5wZCkpIHsKKwkJZXJyID0gUFRSX0VSUihwcGd0dC0+cGQpOwogCQlnb3RvIGVycl9mcmVlX3NjcmF0Y2g7CiAJfQogCi0JaWYgKGk5MTVfdm1faXNfNGx2bCgmcHBndHQtPnZtKSkgewotCQllcnIgPSBzZXR1cF9weCgmcHBndHQtPnZtLCBwcGd0dC0+cGQpOwotCQlpZiAoZXJyKQotCQkJZ290byBlcnJfZnJlZV9wZHA7Ci0KLQkJaW5pdF9wZCgmcHBndHQtPnZtLCBwcGd0dC0+cGQsIHBwZ3R0LT52bS5zY3JhdGNoX3BkcCk7Ci0KLQkJcHBndHQtPnZtLmFsbG9jYXRlX3ZhX3JhbmdlID0gZ2VuOF9wcGd0dF9hbGxvY180bHZsOwotCQlwcGd0dC0+dm0uaW5zZXJ0X2VudHJpZXMgPSBnZW44X3BwZ3R0X2luc2VydF80bHZsOwotCQlwcGd0dC0+dm0uY2xlYXJfcmFuZ2UgPSBnZW44X3BwZ3R0X2NsZWFyXzRsdmw7Ci0JfSBlbHNlIHsKLQkJLyoKLQkJICogV2UgZG9uJ3QgbmVlZCB0byBzZXR1cCBkbWEgZm9yIHRvcCBsZXZlbCBwZHAsIG9ubHkKLQkJICogZm9yIGVudHJpZXMuIFNvIHBvaW50IGVudHJpZXMgdG8gc2NyYXRjaC4KLQkJICovCi0JCW1lbXNldF9wKHBwZ3R0LT5wZC0+ZW50cnksIHBwZ3R0LT52bS5zY3JhdGNoX3BkLAotCQkJIEdFTjhfM0xWTF9QRFBFUyk7Ci0KKwlpZiAoIWk5MTVfdm1faXNfNGx2bCgmcHBndHQtPnZtKSkgewogCQlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoaTkxNSkpIHsKIAkJCWVyciA9IGdlbjhfcHJlYWxsb2NhdGVfdG9wX2xldmVsX3BkcChwcGd0dCk7CiAJCQlpZiAoZXJyKQotCQkJCWdvdG8gZXJyX2ZyZWVfcGRwOworCQkJCWdvdG8gZXJyX2ZyZWVfcGQ7CiAJCX0KLQotCQlwcGd0dC0+dm0uYWxsb2NhdGVfdmFfcmFuZ2UgPSBnZW44X3BwZ3R0X2FsbG9jXzNsdmw7Ci0JCXBwZ3R0LT52bS5pbnNlcnRfZW50cmllcyA9IGdlbjhfcHBndHRfaW5zZXJ0XzNsdmw7Ci0JCXBwZ3R0LT52bS5jbGVhcl9yYW5nZSA9IGdlbjhfcHBndHRfY2xlYXJfM2x2bDsKIAl9CiAKKwlwcGd0dC0+dm0uaW5zZXJ0X2VudHJpZXMgPSBnZW44X3BwZ3R0X2luc2VydDsKKwlwcGd0dC0+dm0uYWxsb2NhdGVfdmFfcmFuZ2UgPSBnZW44X3BwZ3R0X2FsbG9jOworCXBwZ3R0LT52bS5jbGVhcl9yYW5nZSA9IGdlbjhfcHBndHRfY2xlYXI7CisKIAlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoaTkxNSkpCiAJCWdlbjhfcHBndHRfbm90aWZ5X3ZndChwcGd0dCwgdHJ1ZSk7CiAKQEAgLTE2NTcsMTAgKzE1MjcsMTEgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3BwZ3R0ICpnZW44X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCXJldHVybiBwcGd0dDsKIAotZXJyX2ZyZWVfcGRwOgotCWZyZWVfcGQoJnBwZ3R0LT52bSwgcHBndHQtPnBkKTsKK2Vycl9mcmVlX3BkOgorCV9fZ2VuOF9wcGd0dF9jbGVhbnVwKCZwcGd0dC0+dm0sIHBwZ3R0LT5wZCwKKwkJCSAgICAgZ2VuOF9wZF90b3BfY291bnQoJnBwZ3R0LT52bSksIHBwZ3R0LT52bS50b3ApOwogZXJyX2ZyZWVfc2NyYXRjaDoKLQlnZW44X2ZyZWVfc2NyYXRjaCgmcHBndHQtPnZtKTsKKwlmcmVlX3NjcmF0Y2goJnBwZ3R0LT52bSk7CiBlcnJfZnJlZToKIAlrZnJlZShwcGd0dCk7CiAJcmV0dXJuIEVSUl9QVFIoZXJyKTsKQEAgLTE2NzYsMjUgKzE1NDcsMjYgQEAgc3RhdGljIGlubGluZSB2b2lkIGdlbjZfd3JpdGVfcGRlKGNvbnN0IHN0cnVjdCBnZW42X3BwZ3R0ICpwcGd0dCwKIAkJICBwcGd0dC0+cGRfYWRkciArIHBkZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjdfcHBndHRfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjdfcHBndHRfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3JlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQl1MzIgZWNvY2hrLCBlY29iaXRzOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCXUzMiBlY29jaGs7CiAKLQllY29iaXRzID0gSTkxNV9SRUFEKEdBQ19FQ09fQklUUyk7Ci0JSTkxNV9XUklURShHQUNfRUNPX0JJVFMsIGVjb2JpdHMgfCBFQ09CSVRTX1BQR1RUX0NBQ0hFNjRCKTsKKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgR0FDX0VDT19CSVRTLCAwLCBFQ09CSVRTX1BQR1RUX0NBQ0hFNjRCKTsKIAotCWVjb2NoayA9IEk5MTVfUkVBRChHQU1fRUNPQ0hLKTsKLQlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKKwllY29jaGsgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEdBTV9FQ09DSEspOworCWlmIChJU19IQVNXRUxMKGk5MTUpKSB7CiAJCWVjb2NoayB8PSBFQ09DSEtfUFBHVFRfV0JfSFNXOwogCX0gZWxzZSB7CiAJCWVjb2NoayB8PSBFQ09DSEtfUFBHVFRfTExDX0lWQjsKIAkJZWNvY2hrICY9IH5FQ09DSEtfUFBHVFRfR0ZEVF9JVkI7CiAJfQotCUk5MTVfV1JJVEUoR0FNX0VDT0NISywgZWNvY2hrKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHQU1fRUNPQ0hLLCBlY29jaGspOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKIAkJLyogR0ZYX01PREUgaXMgcGVyLXJpbmcgb24gZ2VuNysgKi8KIAkJRU5HSU5FX1dSSVRFKGVuZ2luZSwKIAkJCSAgICAgUklOR19NT0RFX0dFTjcsCkBAIC0xNzAyLDIyICsxNTc0LDI5IEBAIHN0YXRpYyB2b2lkIGdlbjdfcHBndHRfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjZfcHBndHRfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjZfcHBndHRfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7Ci0JdTMyIGVjb2NoaywgZ2FiX2N0bCwgZWNvYml0czsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3JlOwogCi0JZWNvYml0cyA9IEk5MTVfUkVBRChHQUNfRUNPX0JJVFMpOwotCUk5MTVfV1JJVEUoR0FDX0VDT19CSVRTLCBlY29iaXRzIHwgRUNPQklUU19TTkJfQklUIHwKLQkJICAgRUNPQklUU19QUEdUVF9DQUNIRTY0Qik7CisJaW50ZWxfdW5jb3JlX3Jtdyh1bmNvcmUsCisJCQkgR0FDX0VDT19CSVRTLAorCQkJIDAsCisJCQkgRUNPQklUU19TTkJfQklUIHwgRUNPQklUU19QUEdUVF9DQUNIRTY0Qik7CiAKLQlnYWJfY3RsID0gSTkxNV9SRUFEKEdBQl9DVEwpOwotCUk5MTVfV1JJVEUoR0FCX0NUTCwgZ2FiX2N0bCB8IEdBQl9DVExfQ09OVF9BRlRFUl9QQUdFRkFVTFQpOworCWludGVsX3VuY29yZV9ybXcodW5jb3JlLAorCQkJIEdBQl9DVEwsCisJCQkgMCwKKwkJCSBHQUJfQ1RMX0NPTlRfQUZURVJfUEFHRUZBVUxUKTsKIAotCWVjb2NoayA9IEk5MTVfUkVBRChHQU1fRUNPQ0hLKTsKLQlJOTE1X1dSSVRFKEdBTV9FQ09DSEssIGVjb2NoayB8IEVDT0NIS19TTkJfQklUIHwgRUNPQ0hLX1BQR1RUX0NBQ0hFNjRCKTsKKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwKKwkJCSBHQU1fRUNPQ0hLLAorCQkJIDAsCisJCQkgRUNPQ0hLX1NOQl9CSVQgfCBFQ09DSEtfUFBHVFRfQ0FDSEU2NEIpOwogCi0JaWYgKEhBU19QUEdUVChkZXZfcHJpdikpIC8qIG1heSBiZSBkaXNhYmxlZCBmb3IgVlQtZCAqLwotCQlJOTE1X1dSSVRFKEdGWF9NT0RFLCBfTUFTS0VEX0JJVF9FTkFCTEUoR0ZYX1BQR1RUX0VOQUJMRSkpOworCWlmIChIQVNfUFBHVFQodW5jb3JlLT5pOTE1KSkgLyogbWF5IGJlIGRpc2FibGVkIGZvciBWVC1kICovCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCisJCQkJICAgR0ZYX01PREUsCisJCQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9QUEdUVF9FTkFCTEUpKTsKIH0KIAogLyogUFBHVFQgc3VwcG9ydCBmb3IgU2FuZHliZHJpZ2UvR2VuNiBhbmQgbGF0ZXIgKi8KQEAgLTE3MjYsNyArMTYwNSw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiB7CiAJc3RydWN0IGdlbjZfcHBndHQgKiBjb25zdCBwcGd0dCA9IHRvX2dlbjZfcHBndHQoaTkxNV92bV90b19wcGd0dCh2bSkpOwogCWNvbnN0IHVuc2lnbmVkIGludCBmaXJzdF9lbnRyeSA9IHN0YXJ0IC8gSTkxNV9HVFRfUEFHRV9TSVpFOwotCWNvbnN0IGdlbjZfcHRlX3Qgc2NyYXRjaF9wdGUgPSB2bS0+c2NyYXRjaF9wdGU7CisJY29uc3QgZ2VuNl9wdGVfdCBzY3JhdGNoX3B0ZSA9IHZtLT5zY3JhdGNoWzBdLmVuY29kZTsKIAl1bnNpZ25lZCBpbnQgcGRlID0gZmlyc3RfZW50cnkgLyBHRU42X1BURVM7CiAJdW5zaWduZWQgaW50IHB0ZSA9IGZpcnN0X2VudHJ5ICUgR0VONl9QVEVTOwogCXVuc2lnbmVkIGludCBudW1fZW50cmllcyA9IGxlbmd0aCAvIEk5MTVfR1RUX1BBR0VfU0laRTsKQEAgLTE3MzcsNyArMTYxNiw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCWNvbnN0IHVuc2lnbmVkIGludCBjb3VudCA9IG1pbihudW1fZW50cmllcywgR0VONl9QVEVTIC0gcHRlKTsKIAkJZ2VuNl9wdGVfdCAqdmFkZHI7CiAKLQkJR0VNX0JVR19PTihwdCA9PSB2bS0+c2NyYXRjaF9wdCk7CisJCUdFTV9CVUdfT04ocHhfYmFzZShwdCkgPT0gcHhfYmFzZSgmdm0tPnNjcmF0Y2hbMV0pKTsKIAogCQludW1fZW50cmllcyAtPSBjb3VudDsKIApAQCAtMTc3NCw3ICsxNjUzLDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9wcGd0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlzdHJ1Y3Qgc2d0X2RtYSBpdGVyID0gc2d0X2RtYSh2bWEpOwogCWdlbjZfcHRlX3QgKnZhZGRyOwogCi0JR0VNX0JVR19PTihpOTE1X3B0X2VudHJ5KHBkLCBhY3RfcHQpID09IHZtLT5zY3JhdGNoX3B0KTsKKwlHRU1fQlVHX09OKHBkLT5lbnRyeVthY3RfcHRdID09ICZ2bS0+c2NyYXRjaFsxXSk7CiAKIAl2YWRkciA9IGttYXBfYXRvbWljX3B4KGk5MTVfcHRfZW50cnkocGQsIGFjdF9wdCkpOwogCWRvIHsKQEAgLTE4MTksNyArMTY5OCw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlnZW42X2Zvcl9lYWNoX3BkZShwdCwgcGQsIHN0YXJ0LCBsZW5ndGgsIHBkZSkgewogCQljb25zdCB1bnNpZ25lZCBpbnQgY291bnQgPSBnZW42X3B0ZV9jb3VudChzdGFydCwgbGVuZ3RoKTsKIAotCQlpZiAocHQgPT0gdm0tPnNjcmF0Y2hfcHQpIHsKKwkJaWYgKHB4X2Jhc2UocHQpID09IHB4X2Jhc2UoJnZtLT5zY3JhdGNoWzFdKSkgewogCQkJc3Bpbl91bmxvY2soJnBkLT5sb2NrKTsKIAogCQkJcHQgPSBmZXRjaF9hbmRfemVybygmYWxsb2MpOwpAQCAtMTgzMCwxMCArMTcwOSwxMCBAQCBzdGF0aWMgaW50IGdlbjZfYWxsb2NfdmFfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCQkJZ290byB1bndpbmRfb3V0OwogCQkJfQogCi0JCQlnZW42X2luaXRpYWxpemVfcHQodm0sIHB0KTsKKwkJCWZpbGwzMl9weChwdCwgdm0tPnNjcmF0Y2hbMF0uZW5jb2RlKTsKIAogCQkJc3Bpbl9sb2NrKCZwZC0+bG9jayk7Ci0JCQlpZiAocGQtPmVudHJ5W3BkZV0gPT0gdm0tPnNjcmF0Y2hfcHQpIHsKKwkJCWlmIChwZC0+ZW50cnlbcGRlXSA9PSAmdm0tPnNjcmF0Y2hbMV0pIHsKIAkJCQlwZC0+ZW50cnlbcGRlXSA9IHB0OwogCQkJCWlmIChpOTE1X3ZtYV9pc19ib3VuZChwcGd0dC0+dm1hLAogCQkJCQkJICAgICAgSTkxNV9WTUFfR0xPQkFMX0JJTkQpKSB7CkBAIC0xODUyLDcgKzE3MzEsNyBAQCBzdGF0aWMgaW50IGdlbjZfYWxsb2NfdmFfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAKIAlpZiAoZmx1c2gpIHsKIAkJbWFya190bGJzX2RpcnR5KCZwcGd0dC0+YmFzZSk7Ci0JCWdlbjZfZ2d0dF9pbnZhbGlkYXRlKHZtLT5pOTE1KTsKKwkJZ2VuNl9nZ3R0X2ludmFsaWRhdGUodm0tPmd0LT5nZ3R0KTsKIAl9CiAKIAlnb3RvIG91dDsKQEAgLTE4NjEsNyArMTc0MCw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlnZW42X3BwZ3R0X2NsZWFyX3JhbmdlKHZtLCBmcm9tLCBzdGFydCAtIGZyb20pOwogb3V0OgogCWlmIChhbGxvYykKLQkJZnJlZV9wdCh2bSwgYWxsb2MpOworCQlmcmVlX3B4KHZtLCBhbGxvYyk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoJnZtLT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTg3MCwxMDggKzE3NDksNTIgQEAgc3RhdGljIGludCBnZW42X3BwZ3R0X2luaXRfc2NyYXRjaChzdHJ1Y3QgZ2VuNl9wcGd0dCAqcHBndHQpCiB7CiAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqIGNvbnN0IHZtID0gJnBwZ3R0LT5iYXNlLnZtOwogCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcGQgPSBwcGd0dC0+YmFzZS5wZDsKLQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICp1bnVzZWQ7Ci0JdTMyIHBkZTsKIAlpbnQgcmV0OwogCiAJcmV0ID0gc2V0dXBfc2NyYXRjaF9wYWdlKHZtLCBfX0dGUF9ISUdITUVNKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0Jdm0tPnNjcmF0Y2hfcHRlID0gdm0tPnB0ZV9lbmNvZGUodm0tPnNjcmF0Y2hfcGFnZS5kYWRkciwKLQkJCQkJIEk5MTVfQ0FDSEVfTk9ORSwKLQkJCQkJIFBURV9SRUFEX09OTFkpOworCXZtLT5zY3JhdGNoWzBdLmVuY29kZSA9CisJCXZtLT5wdGVfZW5jb2RlKHB4X2RtYSgmdm0tPnNjcmF0Y2hbMF0pLAorCQkJICAgICAgIEk5MTVfQ0FDSEVfTk9ORSwgUFRFX1JFQURfT05MWSk7CiAKLQl2bS0+c2NyYXRjaF9wdCA9IGFsbG9jX3B0KHZtKTsKLQlpZiAoSVNfRVJSKHZtLT5zY3JhdGNoX3B0KSkgeworCWlmICh1bmxpa2VseShzZXR1cF9wYWdlX2RtYSh2bSwgcHhfYmFzZSgmdm0tPnNjcmF0Y2hbMV0pKSkpIHsKIAkJY2xlYW51cF9zY3JhdGNoX3BhZ2Uodm0pOwotCQlyZXR1cm4gUFRSX0VSUih2bS0+c2NyYXRjaF9wdCk7CisJCXJldHVybiAtRU5PTUVNOwogCX0KIAotCWdlbjZfaW5pdGlhbGl6ZV9wdCh2bSwgdm0tPnNjcmF0Y2hfcHQpOwotCi0JZ2VuNl9mb3JfYWxsX3BkZXModW51c2VkLCBwZCwgcGRlKQotCQlwZC0+ZW50cnlbcGRlXSA9IHZtLT5zY3JhdGNoX3B0OworCWZpbGwzMl9weCgmdm0tPnNjcmF0Y2hbMV0sIHZtLT5zY3JhdGNoWzBdLmVuY29kZSk7CisJbWVtc2V0X3AocGQtPmVudHJ5LCAmdm0tPnNjcmF0Y2hbMV0sIEk5MTVfUERFUyk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZ2VuNl9wcGd0dF9mcmVlX3NjcmF0Y2goc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCi17Ci0JZnJlZV9wdCh2bSwgdm0tPnNjcmF0Y2hfcHQpOwotCWNsZWFudXBfc2NyYXRjaF9wYWdlKHZtKTsKLX0KLQogc3RhdGljIHZvaWQgZ2VuNl9wcGd0dF9mcmVlX3BkKHN0cnVjdCBnZW42X3BwZ3R0ICpwcGd0dCkKIHsKIAlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBkID0gcHBndHQtPmJhc2UucGQ7CisJc3RydWN0IGk5MTVfcGFnZV9kbWEgKiBjb25zdCBzY3JhdGNoID0KKwkJcHhfYmFzZSgmcHBndHQtPmJhc2Uudm0uc2NyYXRjaFsxXSk7CiAJc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQ7CiAJdTMyIHBkZTsKIAogCWdlbjZfZm9yX2FsbF9wZGVzKHB0LCBwZCwgcGRlKQotCQlpZiAocHQgIT0gcHBndHQtPmJhc2Uudm0uc2NyYXRjaF9wdCkKLQkJCWZyZWVfcHQoJnBwZ3R0LT5iYXNlLnZtLCBwdCk7CisJCWlmIChweF9iYXNlKHB0KSAhPSBzY3JhdGNoKQorCQkJZnJlZV9weCgmcHBndHQtPmJhc2Uudm0sIHB0KTsKIH0KIAotc3RydWN0IGdlbjZfcHBndHRfY2xlYW51cF93b3JrIHsKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgYmFzZTsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLX07Ci0KLXN0YXRpYyB2b2lkIGdlbjZfcHBndHRfY2xlYW51cF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd3JrKQotewotCXN0cnVjdCBnZW42X3BwZ3R0X2NsZWFudXBfd29yayAqd29yayA9Ci0JCWNvbnRhaW5lcl9vZih3cmssIHR5cGVvZigqd29yayksIGJhc2UpOwotCS8qIFNpZGUgbm90ZSwgdm1hLT52bSBpcyB0aGUgR0dUVCBub3QgdGhlIHBwZ3R0IHdlIGp1c3QgZGVzdHJveWVkISAqLwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gd29yay0+dm1hLT52bS0+aTkxNTsKLQotCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWk5MTVfdm1hX2Rlc3Ryb3kod29yay0+dm1hKTsKLQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCi0Ja2ZyZWUod29yayk7Ci19Ci0KLXN0YXRpYyBpbnQgbm9wX3NldF9wYWdlcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKLXsKLQlyZXR1cm4gLUVOT0RFVjsKLX0KLQotc3RhdGljIHZvaWQgbm9wX2NsZWFyX3BhZ2VzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQotewotfQotCi1zdGF0aWMgaW50IG5vcF9iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAotCQkgICAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAotCQkgICAgdTMyIHVudXNlZCkKLXsKLQlyZXR1cm4gLUVOT0RFVjsKLX0KLQotc3RhdGljIHZvaWQgbm9wX3VuYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKLXsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3ZtYV9vcHMgbm9wX3ZtYV9vcHMgPSB7Ci0JLnNldF9wYWdlcyA9IG5vcF9zZXRfcGFnZXMsCi0JLmNsZWFyX3BhZ2VzID0gbm9wX2NsZWFyX3BhZ2VzLAotCS5iaW5kX3ZtYSA9IG5vcF9iaW5kLAotCS51bmJpbmRfdm1hID0gbm9wX3VuYmluZCwKLX07Ci0KIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfY2xlYW51cChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIHsKIAlzdHJ1Y3QgZ2VuNl9wcGd0dCAqcHBndHQgPSB0b19nZW42X3BwZ3R0KGk5MTVfdm1fdG9fcHBndHQodm0pKTsKLQlzdHJ1Y3QgZ2VuNl9wcGd0dF9jbGVhbnVwX3dvcmsgKndvcmsgPSBwcGd0dC0+d29yazsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHZtLT5pOTE1OwogCiAJLyogRklYTUUgcmVtb3ZlIHRoZSBzdHJ1Y3RfbXV0ZXggdG8gYnJpbmcgdGhlIGxvY2tpbmcgdW5kZXIgY29udHJvbCAqLwotCUlOSVRfV09SSygmd29yay0+YmFzZSwgZ2VuNl9wcGd0dF9jbGVhbnVwX3dvcmspOwotCXdvcmstPnZtYSA9IHBwZ3R0LT52bWE7Ci0Jd29yay0+dm1hLT5vcHMgPSAmbm9wX3ZtYV9vcHM7Ci0Jc2NoZWR1bGVfd29yaygmd29yay0+YmFzZSk7CisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaTkxNV92bWFfZGVzdHJveShwcGd0dC0+dm1hKTsKKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiAJZ2VuNl9wcGd0dF9mcmVlX3BkKHBwZ3R0KTsKLQlnZW42X3BwZ3R0X2ZyZWVfc2NyYXRjaCh2bSk7CisJZnJlZV9zY3JhdGNoKHZtKTsKIAlrZnJlZShwcGd0dC0+YmFzZS5wZCk7CiB9CiAKQEAgLTE5OTgsMTQgKzE4MjEsMTQgQEAgc3RhdGljIGludCBwZF92bWFfYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdDsKIAl1bnNpZ25lZCBpbnQgcGRlOwogCi0JcHBndHQtPmJhc2UucGQtPmJhc2UuZ2d0dF9vZmZzZXQgPSBnZ3R0X29mZnNldCAqIHNpemVvZihnZW42X3B0ZV90KTsKKwlweF9iYXNlKHBwZ3R0LT5iYXNlLnBkKS0+Z2d0dF9vZmZzZXQgPSBnZ3R0X29mZnNldCAqIHNpemVvZihnZW42X3B0ZV90KTsKIAlwcGd0dC0+cGRfYWRkciA9IChnZW42X3B0ZV90IF9faW9tZW0gKilnZ3R0LT5nc20gKyBnZ3R0X29mZnNldDsKIAogCWdlbjZfZm9yX2FsbF9wZGVzKHB0LCBwcGd0dC0+YmFzZS5wZCwgcGRlKQogCQlnZW42X3dyaXRlX3BkZShwcGd0dCwgcGRlLCBwdCk7CiAKIAltYXJrX3RsYnNfZGlydHkoJnBwZ3R0LT5iYXNlKTsKLQlnZW42X2dndHRfaW52YWxpZGF0ZShwcGd0dC0+YmFzZS52bS5pOTE1KTsKKwlnZW42X2dndHRfaW52YWxpZGF0ZShnZ3R0KTsKIAogCXJldHVybiAwOwogfQpAQCAtMjAxNCw3ICsxODM3LDggQEAgc3RhdGljIHZvaWQgcGRfdm1hX3VuYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHsKIAlzdHJ1Y3QgZ2VuNl9wcGd0dCAqcHBndHQgPSB2bWEtPnByaXZhdGU7CiAJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBwZCA9IHBwZ3R0LT5iYXNlLnBkOwotCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKiBjb25zdCBzY3JhdGNoX3B0ID0gcHBndHQtPmJhc2Uudm0uc2NyYXRjaF9wdDsKKwlzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqIGNvbnN0IHNjcmF0Y2ggPQorCQlweF9iYXNlKCZwcGd0dC0+YmFzZS52bS5zY3JhdGNoWzFdKTsKIAlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdDsKIAl1bnNpZ25lZCBpbnQgcGRlOwogCkBAIC0yMDIzLDExICsxODQ3LDExIEBAIHN0YXRpYyB2b2lkIHBkX3ZtYV91bmJpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAKIAkvKiBGcmVlIGFsbCBubyBsb25nZXIgdXNlZCBwYWdlIHRhYmxlcyAqLwogCWdlbjZfZm9yX2FsbF9wZGVzKHB0LCBwcGd0dC0+YmFzZS5wZCwgcGRlKSB7Ci0JCWlmIChhdG9taWNfcmVhZCgmcHQtPnVzZWQpIHx8IHB0ID09IHNjcmF0Y2hfcHQpCisJCWlmIChweF9iYXNlKHB0KSA9PSBzY3JhdGNoIHx8IGF0b21pY19yZWFkKCZwdC0+dXNlZCkpCiAJCQljb250aW51ZTsKIAotCQlmcmVlX3B0KCZwcGd0dC0+YmFzZS52bSwgcHQpOwotCQlwZC0+ZW50cnlbcGRlXSA9IHNjcmF0Y2hfcHQ7CisJCWZyZWVfcHgoJnBwZ3R0LT5iYXNlLnZtLCBwdCk7CisJCXBkLT5lbnRyeVtwZGVdID0gc2NyYXRjaDsKIAl9CiAKIAlwcGd0dC0+c2Nhbl9mb3JfdW51c2VkX3B0ID0gZmFsc2U7CkBAIC0yMDQzLDcgKzE4NjcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfdm1hX29wcyBwZF92bWFfb3BzID0gewogc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqcGRfdm1hX2NyZWF0ZShzdHJ1Y3QgZ2VuNl9wcGd0dCAqcHBndHQsIGludCBzaXplKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gcHBndHQtPmJhc2Uudm0uaTkxNTsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmk5MTUtPmdndHQ7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IHBwZ3R0LT5iYXNlLnZtLmd0LT5nZ3R0OwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCiAJR0VNX0JVR19PTighSVNfQUxJR05FRChzaXplLCBJOTE1X0dUVF9QQUdFX1NJWkUpKTsKQEAgLTIwNTMsOCArMTg3Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKnBkX3ZtYV9jcmVhdGUoc3RydWN0IGdlbjZfcHBndHQgKnBwZ3R0LCBpbnQgc2l6ZSkKIAlpZiAoIXZtYSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlpOTE1X2FjdGl2ZV9pbml0KGk5MTUsICZ2bWEtPmFjdGl2ZSwgTlVMTCk7Ci0JSU5JVF9BQ1RJVkVfUkVRVUVTVCgmdm1hLT5sYXN0X2ZlbmNlKTsKKwlpOTE1X2FjdGl2ZV9pbml0KGk5MTUsICZ2bWEtPmFjdGl2ZSwgTlVMTCwgTlVMTCk7CiAKIAl2bWEtPnZtID0gJmdndHQtPnZtOwogCXZtYS0+b3BzID0gJnBkX3ZtYV9vcHM7CkBAIC0yMTQxLDcgKzE5NjQsOCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcHBndHQgKmdlbjZfcHBndHRfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWlmICghcHBndHQpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JcHBndHRfaW5pdChpOTE1LCAmcHBndHQtPmJhc2UpOworCXBwZ3R0X2luaXQoJnBwZ3R0LT5iYXNlLCAmaTkxNS0+Z3QpOworCXBwZ3R0LT5iYXNlLnZtLnRvcCA9IDE7CiAKIAlwcGd0dC0+YmFzZS52bS5hbGxvY2F0ZV92YV9yYW5nZSA9IGdlbjZfYWxsb2NfdmFfcmFuZ2U7CiAJcHBndHQtPmJhc2Uudm0uY2xlYXJfcmFuZ2UgPSBnZW42X3BwZ3R0X2NsZWFyX3JhbmdlOwpAQCAtMjE1MCwxNiArMTk3NCwxMCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcHBndHQgKmdlbjZfcHBndHRfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiAJcHBndHQtPmJhc2Uudm0ucHRlX2VuY29kZSA9IGdndHQtPnZtLnB0ZV9lbmNvZGU7CiAKLQlwcGd0dC0+d29yayA9IGttYWxsb2Moc2l6ZW9mKCpwcGd0dC0+d29yayksIEdGUF9LRVJORUwpOwotCWlmICghcHBndHQtPndvcmspIHsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBlcnJfZnJlZTsKLQl9Ci0KLQlwcGd0dC0+YmFzZS5wZCA9IF9fYWxsb2NfcGQoKTsKKwlwcGd0dC0+YmFzZS5wZCA9IF9fYWxsb2NfcGQoc2l6ZW9mKCpwcGd0dC0+YmFzZS5wZCkpOwogCWlmICghcHBndHQtPmJhc2UucGQpIHsKIAkJZXJyID0gLUVOT01FTTsKLQkJZ290byBlcnJfd29yazsKKwkJZ290byBlcnJfZnJlZTsKIAl9CiAKIAllcnIgPSBnZW42X3BwZ3R0X2luaXRfc2NyYXRjaChwcGd0dCk7CkBAIC0yMTc1LDMxICsxOTkzLDQwIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wcGd0dCAqZ2VuNl9wcGd0dF9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcmV0dXJuICZwcGd0dC0+YmFzZTsKIAogZXJyX3NjcmF0Y2g6Ci0JZ2VuNl9wcGd0dF9mcmVlX3NjcmF0Y2goJnBwZ3R0LT5iYXNlLnZtKTsKKwlmcmVlX3NjcmF0Y2goJnBwZ3R0LT5iYXNlLnZtKTsKIGVycl9wZDoKIAlrZnJlZShwcGd0dC0+YmFzZS5wZCk7Ci1lcnJfd29yazoKLQlrZnJlZShwcGd0dC0+d29yayk7CiBlcnJfZnJlZToKIAlrZnJlZShwcGd0dCk7CiAJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIH0KIAotc3RhdGljIHZvaWQgZ3R0X3dyaXRlX3dvcmthcm91bmRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGd0dF93cml0ZV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKwogCS8qIFRoaXMgZnVuY3Rpb24gaXMgZm9yIGd0dCByZWxhdGVkIHdvcmthcm91bmRzLiBUaGlzIGZ1bmN0aW9uIGlzCiAJICogY2FsbGVkIG9uIGRyaXZlciBsb2FkIGFuZCBhZnRlciBhIEdQVSByZXNldCwgc28geW91IGNhbiBwbGFjZQogCSAqIHdvcmthcm91bmRzIGhlcmUgZXZlbiBpZiB0aGV5IGdldCBvdmVyd3JpdHRlbiBieSBHUFUgcmVzZXQuCiAJICovCiAJLyogV2FJbmNyZWFzZURlZmF1bHRUTEJFbnRyaWVzOmNodixiZHcsc2tsLGJ4dCxrYmwsZ2xrLGNmbCxjbmwsaWNsICovCi0JaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpCi0JCUk5MTVfV1JJVEUoR0VOOF9MM19MUkFfMV9HUEdQVSwgR0VOOF9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0JEVyk7Ci0JZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCi0JCUk5MTVfV1JJVEUoR0VOOF9MM19MUkFfMV9HUEdQVSwgR0VOOF9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0NIVik7Ci0JZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCi0JCUk5MTVfV1JJVEUoR0VOOF9MM19MUkFfMV9HUEdQVSwgR0VOOV9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0JYVCk7Ci0JZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQotCQlJOTE1X1dSSVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdFTjlfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9TS0wpOworCWlmIChJU19CUk9BRFdFTEwoaTkxNSkpCisJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCisJCQkJICAgR0VOOF9MM19MUkFfMV9HUEdQVSwKKwkJCQkgICBHRU44X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfQkRXKTsKKwllbHNlIGlmIChJU19DSEVSUllWSUVXKGk5MTUpKQorCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAorCQkJCSAgIEdFTjhfTDNfTFJBXzFfR1BHUFUsCisJCQkJICAgR0VOOF9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0NIVik7CisJZWxzZSBpZiAoSVNfR0VOOV9MUChpOTE1KSkKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwKKwkJCQkgICBHRU44X0wzX0xSQV8xX0dQR1BVLAorCQkJCSAgIEdFTjlfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9CWFQpOworCWVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSA5KQorCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAorCQkJCSAgIEdFTjhfTDNfTFJBXzFfR1BHUFUsCisJCQkJICAgR0VOOV9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX1NLTCk7CiAKIAkvKgogCSAqIFRvIHN1cHBvcnQgNjRLIFBURXMgd2UgbmVlZCB0byBmaXJzdCBlbmFibGUgdGhlIHVzZSBvZiB0aGUKQEAgLTIyMTIsMjEgKzIwMzksNDUgQEAgc3RhdGljIHZvaWQgZ3R0X3dyaXRlX3dvcmthcm91bmRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiAzMksgcGFnZXMsIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgaGF2ZSBhbnkgc3VwcG9ydCBmb3IgaXQgaW4gb3VyCiAJICogZHJpdmVyLgogCSAqLwotCWlmIChIQVNfUEFHRV9TSVpFUyhkZXZfcHJpdiwgSTkxNV9HVFRfUEFHRV9TSVpFXzY0SykgJiYKLQkgICAgSU5URUxfR0VOKGRldl9wcml2KSA8PSAxMCkKLQkJSTkxNV9XUklURShHRU44X0dBTVdfRUNPX0RFVl9SV19JQSwKLQkJCSAgIEk5MTVfUkVBRChHRU44X0dBTVdfRUNPX0RFVl9SV19JQSkgfAotCQkJICAgR0FNV19FQ09fRU5BQkxFXzY0S19JUFNfRklFTEQpOworCWlmIChIQVNfUEFHRV9TSVpFUyhpOTE1LCBJOTE1X0dUVF9QQUdFX1NJWkVfNjRLKSAmJgorCSAgICBJTlRFTF9HRU4oaTkxNSkgPD0gMTApCisJCWludGVsX3VuY29yZV9ybXcodW5jb3JlLAorCQkJCSBHRU44X0dBTVdfRUNPX0RFVl9SV19JQSwKKwkJCQkgMCwKKwkJCQkgR0FNV19FQ09fRU5BQkxFXzY0S19JUFNfRklFTEQpOworCisJaWYgKElTX0dFTl9SQU5HRShpOTE1LCA4LCAxMSkpIHsKKwkJYm9vbCBjYW5fdXNlX2d0dF9jYWNoZSA9IHRydWU7CisKKwkJLyoKKwkJICogQWNjb3JkaW5nIHRvIHRoZSBCU3BlYyBpZiB3ZSB1c2UgMk0vMUcgcGFnZXMgdGhlbiB3ZSBhbHNvCisJCSAqIG5lZWQgdG8gZGlzYWJsZSB0aGUgR1RUIGNhY2hlLiBBdCBsZWFzdCBvbiBCRFcgd2UgY2FuIHNlZQorCQkgKiB2aXN1YWwgY29ycnVwdGlvbiB3aGVuIHVzaW5nIDJNIHBhZ2VzLCBhbmQgbm90IGRpc2FibGluZyB0aGUKKwkJICogR1RUIGNhY2hlLgorCQkgKi8KKwkJaWYgKEhBU19QQUdFX1NJWkVTKGk5MTUsIEk5MTVfR1RUX1BBR0VfU0laRV8yTSkpCisJCQljYW5fdXNlX2d0dF9jYWNoZSA9IGZhbHNlOworCisJCS8qIFdhR3R0Q2FjaGluZ09mZkJ5RGVmYXVsdCAqLworCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAorCQkJCSAgIEhTV19HVFRfQ0FDSEVfRU4sCisJCQkJICAgY2FuX3VzZV9ndHRfY2FjaGUgPyBHVFRfQ0FDSEVfRU5fQUxMIDogMCk7CisJCVdBUk5fT05fT05DRShjYW5fdXNlX2d0dF9jYWNoZSAmJgorCQkJICAgICBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsCisJCQkJCSAgICAgICBIU1dfR1RUX0NBQ0hFX0VOKSA9PSAwKTsKKwl9CiB9CiAKLWludCBpOTE1X3BwZ3R0X2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoraW50IGk5MTVfcHBndHRfaW5pdF9odyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCWd0dF93cml0ZV93b3JrYXJvdW5kcyhkZXZfcHJpdik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKIAotCWlmIChJU19HRU4oZGV2X3ByaXYsIDYpKQotCQlnZW42X3BwZ3R0X2VuYWJsZShkZXZfcHJpdik7Ci0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA3KSkKLQkJZ2VuN19wcGd0dF9lbmFibGUoZGV2X3ByaXYpOworCWd0dF93cml0ZV93b3JrYXJvdW5kcyhndCk7CisKKwlpZiAoSVNfR0VOKGk5MTUsIDYpKQorCQlnZW42X3BwZ3R0X2VuYWJsZShndCk7CisJZWxzZSBpZiAoSVNfR0VOKGk5MTUsIDcpKQorCQlnZW43X3BwZ3R0X2VuYWJsZShndCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIyNTQsNDIgKzIxMDUsNiBAQCBpOTE1X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlyZXR1cm4gcHBndHQ7CiB9CiAKLXN0YXRpYyB2b2lkIHBwZ3R0X2Rlc3Ryb3lfdm1hKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQotewotCXN0cnVjdCBsaXN0X2hlYWQgKnBoYXNlc1tdID0gewotCQkmdm0tPmJvdW5kX2xpc3QsCi0JCSZ2bS0+dW5ib3VuZF9saXN0LAotCQlOVUxMLAotCX0sICoqcGhhc2U7Ci0KLQl2bS0+Y2xvc2VkID0gdHJ1ZTsKLQlmb3IgKHBoYXNlID0gcGhhc2VzOyAqcGhhc2U7IHBoYXNlKyspIHsKLQkJc3RydWN0IGk5MTVfdm1hICp2bWEsICp2bjsKLQotCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2biwgKnBoYXNlLCB2bV9saW5rKQotCQkJaTkxNV92bWFfZGVzdHJveSh2bWEpOwotCX0KLX0KLQotdm9pZCBpOTE1X3ZtX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCi17Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPQotCQljb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSwgcmVmKTsKLQotCUdFTV9CVUdfT04oaTkxNV9pc19nZ3R0KHZtKSk7Ci0JdHJhY2VfaTkxNV9wcGd0dF9yZWxlYXNlKHZtKTsKLQotCXBwZ3R0X2Rlc3Ryb3lfdm1hKHZtKTsKLQotCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJnZtLT5ib3VuZF9saXN0KSk7Ci0JR0VNX0JVR19PTighbGlzdF9lbXB0eSgmdm0tPnVuYm91bmRfbGlzdCkpOwotCi0Jdm0tPmNsZWFudXAodm0pOwotCWk5MTVfYWRkcmVzc19zcGFjZV9maW5pKHZtKTsKLQotCWtmcmVlKHZtKTsKLX0KLQogLyogQ2VydGFpbiBHZW41IGNoaXBzZXRzIHJlcXVpcmUgcmVxdWlyZSBpZGxpbmcgdGhlIEdQVSBiZWZvcmUKICAqIHVubWFwcGluZyBhbnl0aGluZyBmcm9tIHRoZSBHVFQgd2hlbiBWVC1kIGlzIGVuYWJsZWQuCiAgKi8KQEAgLTIzMDEsMjEgKzIxMTYsMjYgQEAgc3RhdGljIGJvb2wgbmVlZHNfaWRsZV9tYXBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gSVNfR0VOKGRldl9wcml2LCA1KSAmJiBJU19NT0JJTEUoZGV2X3ByaXYpICYmIGludGVsX3Z0ZF9hY3RpdmUoKTsKIH0KIAotdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2d0dF9tYXBwaW5ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBnZ3R0X3N1c3BlbmRfbWFwcGluZ3Moc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIHsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ2d0dC0+dm0uaTkxNTsKIAogCS8qIERvbid0IGJvdGhlciBtZXNzaW5nIHdpdGggZmF1bHRzIHByZSBHRU42IGFzIHdlIGhhdmUgbGl0dGxlCiAJICogZG9jdW1lbnRhdGlvbiBzdXBwb3J0aW5nIHRoYXQgaXQncyBhIGdvb2QgaWRlYS4KIAkgKi8KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDYpCisJaWYgKElOVEVMX0dFTihpOTE1KSA8IDYpCiAJCXJldHVybjsKIAotCWk5MTVfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhkZXZfcHJpdik7CisJaW50ZWxfZ3RfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhnZ3R0LT52bS5ndCk7CiAKIAlnZ3R0LT52bS5jbGVhcl9yYW5nZSgmZ2d0dC0+dm0sIDAsIGdndHQtPnZtLnRvdGFsKTsKIAotCWk5MTVfZ2d0dF9pbnZhbGlkYXRlKGRldl9wcml2KTsKKwlnZ3R0LT5pbnZhbGlkYXRlKGdndHQpOworfQorCit2b2lkIGk5MTVfZ2VtX3N1c3BlbmRfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWdndHRfc3VzcGVuZF9tYXBwaW5ncygmaTkxNS0+Z2d0dCk7CiB9CiAKIGludCBpOTE1X2dlbV9ndHRfcHJlcGFyZV9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApAQCAtMjM2MSw3ICsyMTgxLDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9nZ3R0X2luc2VydF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiAJZ2VuOF9zZXRfcHRlKHB0ZSwgZ2VuOF9wdGVfZW5jb2RlKGFkZHIsIGxldmVsLCAwKSk7CiAKLQlnZ3R0LT5pbnZhbGlkYXRlKHZtLT5pOTE1KTsKKwlnZ3R0LT5pbnZhbGlkYXRlKGdndHQpOwogfQogCiBzdGF0aWMgdm9pZCBnZW44X2dndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCkBAIC0yMzg5LDcgKzIyMDksNyBAQCBzdGF0aWMgdm9pZCBnZW44X2dndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJICogV2Ugd2FudCB0byBmbHVzaCB0aGUgVExCcyBvbmx5IGFmdGVyIHdlJ3JlIGNlcnRhaW4gYWxsIHRoZSBQVEUKIAkgKiB1cGRhdGVzIGhhdmUgZmluaXNoZWQuCiAJICovCi0JZ2d0dC0+aW52YWxpZGF0ZSh2bS0+aTkxNSk7CisJZ2d0dC0+aW52YWxpZGF0ZShnZ3R0KTsKIH0KIAogc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2luc2VydF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLApAQCAtMjQwNCw3ICsyMjI0LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2luc2VydF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiAJaW93cml0ZTMyKHZtLT5wdGVfZW5jb2RlKGFkZHIsIGxldmVsLCBmbGFncyksIHB0ZSk7CiAKLQlnZ3R0LT5pbnZhbGlkYXRlKHZtLT5pOTE1KTsKKwlnZ3R0LT5pbnZhbGlkYXRlKGdndHQpOwogfQogCiAvKgpAQCAtMjQzMCw3ICsyMjUwLDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2luc2VydF9lbnRyaWVzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCSAqIFdlIHdhbnQgdG8gZmx1c2ggdGhlIFRMQnMgb25seSBhZnRlciB3ZSdyZSBjZXJ0YWluIGFsbCB0aGUgUFRFCiAJICogdXBkYXRlcyBoYXZlIGZpbmlzaGVkLgogCSAqLwotCWdndHQtPmludmFsaWRhdGUodm0tPmk5MTUpOworCWdndHQtPmludmFsaWRhdGUoZ2d0dCk7CiB9CiAKIHN0YXRpYyB2b2lkIG5vcF9jbGVhcl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKQEAgLTI0NDQsNyArMjI2NCw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfZ2d0dF9jbGVhcl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKIAl1bnNpZ25lZCBmaXJzdF9lbnRyeSA9IHN0YXJ0IC8gSTkxNV9HVFRfUEFHRV9TSVpFOwogCXVuc2lnbmVkIG51bV9lbnRyaWVzID0gbGVuZ3RoIC8gSTkxNV9HVFRfUEFHRV9TSVpFOwotCWNvbnN0IGdlbjhfcHRlX3Qgc2NyYXRjaF9wdGUgPSB2bS0+c2NyYXRjaF9wdGU7CisJY29uc3QgZ2VuOF9wdGVfdCBzY3JhdGNoX3B0ZSA9IHZtLT5zY3JhdGNoWzBdLmVuY29kZTsKIAlnZW44X3B0ZV90IF9faW9tZW0gKmd0dF9iYXNlID0KIAkJKGdlbjhfcHRlX3QgX19pb21lbSAqKWdndHQtPmdzbSArIGZpcnN0X2VudHJ5OwogCWNvbnN0IGludCBtYXhfZW50cmllcyA9IGdndHRfdG90YWxfZW50cmllcyhnZ3R0KSAtIGZpcnN0X2VudHJ5OwpAQCAtMjU2OSw4ICsyMzg5LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkgZmlyc3RfZW50cnksIG51bV9lbnRyaWVzLCBtYXhfZW50cmllcykpCiAJCW51bV9lbnRyaWVzID0gbWF4X2VudHJpZXM7CiAKLQlzY3JhdGNoX3B0ZSA9IHZtLT5zY3JhdGNoX3B0ZTsKLQorCXNjcmF0Y2hfcHRlID0gdm0tPnNjcmF0Y2hbMF0uZW5jb2RlOwogCWZvciAoaSA9IDA7IGkgPCBudW1fZW50cmllczsgaSsrKQogCQlpb3dyaXRlMzIoc2NyYXRjaF9wdGUsICZndHRfYmFzZVtpXSk7CiB9CkBAIC0yNjU3LDE4ICsyNDc2LDE4IEBAIHN0YXRpYyBpbnQgYWxpYXNpbmdfZ3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCQlwdGVfZmxhZ3MgfD0gUFRFX1JFQURfT05MWTsKIAogCWlmIChmbGFncyAmIEk5MTVfVk1BX0xPQ0FMX0JJTkQpIHsKLQkJc3RydWN0IGk5MTVfcHBndHQgKmFwcGd0dCA9IGk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0OworCQlzdHJ1Y3QgaTkxNV9wcGd0dCAqYWxpYXMgPSBpOTE1X3ZtX3RvX2dndHQodm1hLT52bSktPmFsaWFzOwogCiAJCWlmICghKHZtYS0+ZmxhZ3MgJiBJOTE1X1ZNQV9MT0NBTF9CSU5EKSkgewotCQkJcmV0ID0gYXBwZ3R0LT52bS5hbGxvY2F0ZV92YV9yYW5nZSgmYXBwZ3R0LT52bSwKLQkJCQkJCQkgICB2bWEtPm5vZGUuc3RhcnQsCi0JCQkJCQkJICAgdm1hLT5zaXplKTsKKwkJCXJldCA9IGFsaWFzLT52bS5hbGxvY2F0ZV92YV9yYW5nZSgmYWxpYXMtPnZtLAorCQkJCQkJCSAgdm1hLT5ub2RlLnN0YXJ0LAorCQkJCQkJCSAgdm1hLT5zaXplKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQogCi0JCWFwcGd0dC0+dm0uaW5zZXJ0X2VudHJpZXMoJmFwcGd0dC0+dm0sIHZtYSwgY2FjaGVfbGV2ZWwsCi0JCQkJCSAgcHRlX2ZsYWdzKTsKKwkJYWxpYXMtPnZtLmluc2VydF9lbnRyaWVzKCZhbGlhcy0+dm0sIHZtYSwKKwkJCQkJIGNhY2hlX2xldmVsLCBwdGVfZmxhZ3MpOwogCX0KIAogCWlmIChmbGFncyAmIEk5MTVfVk1BX0dMT0JBTF9CSU5EKSB7CkBAIC0yNjk2LDcgKzI1MTUsOCBAQCBzdGF0aWMgdm9pZCBhbGlhc2luZ19ndHRfdW5iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAl9CiAKIAlpZiAodm1hLT5mbGFncyAmIEk5MTVfVk1BX0xPQ0FMX0JJTkQpIHsKLQkJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPSAmaTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtOworCQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9CisJCQkmaTkxNV92bV90b19nZ3R0KHZtYS0+dm0pLT5hbGlhcy0+dm07CiAKIAkJdm0tPmNsZWFyX3JhbmdlKHZtLCB2bWEtPm5vZGUuc3RhcnQsIHZtYS0+c2l6ZSk7CiAJfQpAQCAtMjc1MywxMyArMjU3MywxMiBAQCBzdGF0aWMgdm9pZCBpOTE1X2d0dF9jb2xvcl9hZGp1c3QoY29uc3Qgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLAogCQkqZW5kIC09IEk5MTVfR1RUX1BBR0VfU0laRTsKIH0KIAotc3RhdGljIGludCBpbml0X2FsaWFzaW5nX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorc3RhdGljIGludCBpbml0X2FsaWFzaW5nX3BwZ3R0KHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiB7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZpOTE1LT5nZ3R0OwogCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dDsKIAlpbnQgZXJyOwogCi0JcHBndHQgPSBpOTE1X3BwZ3R0X2NyZWF0ZShpOTE1KTsKKwlwcGd0dCA9IGk5MTVfcHBndHRfY3JlYXRlKGdndHQtPnZtLmk5MTUpOwogCWlmIChJU19FUlIocHBndHQpKQogCQlyZXR1cm4gUFRSX0VSUihwcGd0dCk7CiAKQEAgLTI3NzgsNyArMjU5Nyw3IEBAIHN0YXRpYyBpbnQgaW5pdF9hbGlhc2luZ19wcGd0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpZiAoZXJyKQogCQlnb3RvIGVycl9wcGd0dDsKIAotCWk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0ID0gcHBndHQ7CisJZ2d0dC0+YWxpYXMgPSBwcGd0dDsKIAogCUdFTV9CVUdfT04oZ2d0dC0+dm0udm1hX29wcy5iaW5kX3ZtYSAhPSBnZ3R0X2JpbmRfdm1hKTsKIAlnZ3R0LT52bS52bWFfb3BzLmJpbmRfdm1hID0gYWxpYXNpbmdfZ3R0X2JpbmRfdm1hOwpAQCAtMjc5MywxOSArMjYxMiwyNCBAQCBzdGF0aWMgaW50IGluaXRfYWxpYXNpbmdfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHZvaWQgZmluaV9hbGlhc2luZ19wcGd0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB2b2lkIGZpbmlfYWxpYXNpbmdfcHBndHQoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIHsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmk5MTUtPmdndHQ7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBnZ3R0LT52bS5pOTE1OwogCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dDsKIAotCXBwZ3R0ID0gZmV0Y2hfYW5kX3plcm8oJmk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0KTsKKwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCXBwZ3R0ID0gZmV0Y2hfYW5kX3plcm8oJmdndHQtPmFsaWFzKTsKIAlpZiAoIXBwZ3R0KQotCQlyZXR1cm47CisJCWdvdG8gb3V0OwogCiAJaTkxNV92bV9wdXQoJnBwZ3R0LT52bSk7CiAKIAlnZ3R0LT52bS52bWFfb3BzLmJpbmRfdm1hICAgPSBnZ3R0X2JpbmRfdm1hOwogCWdndHQtPnZtLnZtYV9vcHMudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsKKworb3V0OgorCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiB9CiAKIHN0YXRpYyBpbnQgZ2d0dF9yZXNlcnZlX2d1Y190b3Aoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKQEAgLTI4MzQsNyArMjY1OCwxMyBAQCBzdGF0aWMgdm9pZCBnZ3R0X3JlbGVhc2VfZ3VjX3RvcChzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCQlkcm1fbW1fcmVtb3ZlX25vZGUoJmdndHQtPnVjX2Z3KTsKIH0KIAotaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBjbGVhbnVwX2luaXRfZ2d0dChzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQoreworCWdndHRfcmVsZWFzZV9ndWNfdG9wKGdndHQpOworCWRybV9tbV9yZW1vdmVfbm9kZSgmZ2d0dC0+ZXJyb3JfY2FwdHVyZSk7Cit9CisKK3N0YXRpYyBpbnQgaW5pdF9nZ3R0KHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiB7CiAJLyogTGV0IEdFTSBNYW5hZ2UgYWxsIG9mIHRoZSBhcGVydHVyZS4KIAkgKgpAQCAtMjg0NSw3ICsyNjc1LDYgQEAgaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogYXBlcnR1cmUuICBPbmUgcGFnZSBzaG91bGQgYmUgZW5vdWdoIHRvIGtlZXAgYW55IHByZWZldGNoaW5nIGluc2lkZQogCSAqIG9mIHRoZSBhcGVydHVyZS4KIAkgKi8KLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwogCXVuc2lnbmVkIGxvbmcgaG9sZV9zdGFydCwgaG9sZV9lbmQ7CiAJc3RydWN0IGRybV9tbV9ub2RlICplbnRyeTsKIAlpbnQgcmV0OwpAQCAtMjg1Nyw5ICsyNjg2LDkgQEAgaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogd2h5LgogCSAqLwogCWdndHQtPnBpbl9iaWFzID0gbWF4X3QodTMyLCBJOTE1X0dUVF9QQUdFX1NJWkUsCi0JCQkgICAgICAgaW50ZWxfd29wY21fZ3VjX3NpemUoJmRldl9wcml2LT53b3BjbSkpOworCQkJICAgICAgIGludGVsX3dvcGNtX2d1Y19zaXplKCZnZ3R0LT52bS5pOTE1LT53b3BjbSkpOwogCi0JcmV0ID0gaW50ZWxfdmd0X2JhbGxvb24oZGV2X3ByaXYpOworCXJldCA9IGludGVsX3ZndF9iYWxsb29uKGdndHQpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTI4NzgsNyArMjcwNyw3IEBAIGludCBpOTE1X2dlbV9pbml0X2dndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqLwogCXJldCA9IGdndHRfcmVzZXJ2ZV9ndWNfdG9wKGdndHQpOwogCWlmIChyZXQpCi0JCWdvdG8gZXJyX3Jlc2VydmU7CisJCWdvdG8gZXJyOwogCiAJLyogQ2xlYXIgYW55IG5vbi1wcmVhbGxvY2F0ZWQgYmxvY2tzICovCiAJZHJtX21tX2Zvcl9lYWNoX2hvbGUoZW50cnksICZnZ3R0LT52bS5tbSwgaG9sZV9zdGFydCwgaG9sZV9lbmQpIHsKQEAgLTI4OTEsMzUgKzI3MjAsNDEgQEAgaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJLyogQW5kIGZpbmFsbHkgY2xlYXIgdGhlIHJlc2VydmVkIGd1YXJkIHBhZ2UgKi8KIAlnZ3R0LT52bS5jbGVhcl9yYW5nZSgmZ2d0dC0+dm0sIGdndHQtPnZtLnRvdGFsIC0gUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwogCi0JaWYgKElOVEVMX1BQR1RUKGRldl9wcml2KSA9PSBJTlRFTF9QUEdUVF9BTElBU0lORykgewotCQlyZXQgPSBpbml0X2FsaWFzaW5nX3BwZ3R0KGRldl9wcml2KTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gZXJyX2FwcGd0dDsKLQl9Ci0KIAlyZXR1cm4gMDsKIAotZXJyX2FwcGd0dDoKLQlnZ3R0X3JlbGVhc2VfZ3VjX3RvcChnZ3R0KTsKLWVycl9yZXNlcnZlOgotCWRybV9tbV9yZW1vdmVfbm9kZSgmZ2d0dC0+ZXJyb3JfY2FwdHVyZSk7CitlcnI6CisJY2xlYW51cF9pbml0X2dndHQoZ2d0dCk7CiAJcmV0dXJuIHJldDsKIH0KIAotLyoqCi0gKiBpOTE1X2dndHRfY2xlYW51cF9odyAtIENsZWFuIHVwIEdHVFQgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24KLSAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UKLSAqLwotdm9pZCBpOTE1X2dndHRfY2xlYW51cF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitpbnQgaTkxNV9pbml0X2dndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKKwlpbnQgcmV0OworCisJcmV0ID0gaW5pdF9nZ3R0KCZpOTE1LT5nZ3R0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJaWYgKElOVEVMX1BQR1RUKGk5MTUpID09IElOVEVMX1BQR1RUX0FMSUFTSU5HKSB7CisJCXJldCA9IGluaXRfYWxpYXNpbmdfcHBndHQoJmk5MTUtPmdndHQpOworCQlpZiAocmV0KQorCQkJY2xlYW51cF9pbml0X2dndHQoJmk5MTUtPmdndHQpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBnZ3R0X2NsZWFudXBfaHcoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGdndHQtPnZtLmk5MTU7CiAJc3RydWN0IGk5MTVfdm1hICp2bWEsICp2bjsKLQlzdHJ1Y3QgcGFnZXZlYyAqcHZlYzsKIAogCWdndHQtPnZtLmNsb3NlZCA9IHRydWU7CiAKLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JZmluaV9hbGlhc2luZ19wcGd0dChkZXZfcHJpdik7CisJcmN1X2JhcnJpZXIoKTsgLyogZmx1c2ggdGhlIFJDVSdlZF9faTkxNV92bV9yZWxlYXNlICovCisJZmx1c2hfd29ya3F1ZXVlKGk5MTUtPndxKTsKKworCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZtYSwgdm4sICZnZ3R0LT52bS5ib3VuZF9saXN0LCB2bV9saW5rKQogCQlXQVJOX09OKGk5MTVfdm1hX3VuYmluZCh2bWEpKTsKQEAgLTI5MzAsMjQgKzI3NjUsMzcgQEAgdm9pZCBpOTE1X2dndHRfY2xlYW51cF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZ2d0dF9yZWxlYXNlX2d1Y190b3AoZ2d0dCk7CiAKIAlpZiAoZHJtX21tX2luaXRpYWxpemVkKCZnZ3R0LT52bS5tbSkpIHsKLQkJaW50ZWxfdmd0X2RlYmFsbG9vbihkZXZfcHJpdik7CisJCWludGVsX3ZndF9kZWJhbGxvb24oZ2d0dCk7CiAJCWk5MTVfYWRkcmVzc19zcGFjZV9maW5pKCZnZ3R0LT52bSk7CiAJfQogCiAJZ2d0dC0+dm0uY2xlYW51cCgmZ2d0dC0+dm0pOwogCi0JcHZlYyA9ICZkZXZfcHJpdi0+bW0ud2Nfc3Rhc2gucHZlYzsKKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJYXJjaF9waHlzX3djX2RlbChnZ3R0LT5tdHJyKTsKKwlpb19tYXBwaW5nX2ZpbmkoJmdndHQtPmlvbWFwKTsKK30KKworLyoqCisgKiBpOTE1X2dndHRfZHJpdmVyX3JlbGVhc2UgLSBDbGVhbiB1cCBHR1RUIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uCisgKiBAaTkxNTogaTkxNSBkZXZpY2UKKyAqLwordm9pZCBpOTE1X2dndHRfZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJc3RydWN0IHBhZ2V2ZWMgKnB2ZWM7CisKKwlmaW5pX2FsaWFzaW5nX3BwZ3R0KCZpOTE1LT5nZ3R0KTsKKworCWdndHRfY2xlYW51cF9odygmaTkxNS0+Z2d0dCk7CisKKwlwdmVjID0gJmk5MTUtPm1tLndjX3N0YXNoLnB2ZWM7CiAJaWYgKHB2ZWMtPm5yKSB7CiAJCXNldF9wYWdlc19hcnJheV93YihwdmVjLT5wYWdlcywgcHZlYy0+bnIpOwogCQlfX3BhZ2V2ZWNfcmVsZWFzZShwdmVjKTsKIAl9CiAKLQltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKLQotCWFyY2hfcGh5c193Y19kZWwoZ2d0dC0+bXRycik7Ci0JaW9fbWFwcGluZ19maW5pKCZnZ3R0LT5pb21hcCk7Ci0KLQlpOTE1X2dlbV9jbGVhbnVwX3N0b2xlbihkZXZfcHJpdik7CisJaTkxNV9nZW1fY2xlYW51cF9zdG9sZW4oaTkxNSk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ2VuNl9nZXRfdG90YWxfZ3R0X3NpemUodTE2IHNuYl9nbWNoX2N0bCkKQEAgLTMwMTgsMjQzICsyODY2LDYxIEBAIHN0YXRpYyBpbnQgZ2d0dF9wcm9iZV9jb21tb24oc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCwgdTY0IHNpemUpCiAJCXJldHVybiByZXQ7CiAJfQogCi0JZ2d0dC0+dm0uc2NyYXRjaF9wdGUgPQotCQlnZ3R0LT52bS5wdGVfZW5jb2RlKGdndHQtPnZtLnNjcmF0Y2hfcGFnZS5kYWRkciwKKwlnZ3R0LT52bS5zY3JhdGNoWzBdLmVuY29kZSA9CisJCWdndHQtPnZtLnB0ZV9lbmNvZGUocHhfZG1hKCZnZ3R0LT52bS5zY3JhdGNoWzBdKSwKIAkJCQkgICAgSTkxNV9DQUNIRV9OT05FLCAwKTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGludGVsX3BwYXRfZW50cnkgKgotX19hbGxvY19wcGF0X2VudHJ5KHN0cnVjdCBpbnRlbF9wcGF0ICpwcGF0LCB1bnNpZ25lZCBpbnQgaW5kZXgsIHU4IHZhbHVlKQorc3RhdGljIHZvaWQgdGdsX3NldHVwX3ByaXZhdGVfcHBhdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGludGVsX3BwYXRfZW50cnkgKmVudHJ5ID0gJnBwYXQtPmVudHJpZXNbaW5kZXhdOwotCi0JR0VNX0JVR19PTihpbmRleCA+PSBwcGF0LT5tYXhfZW50cmllcyk7Ci0JR0VNX0JVR19PTih0ZXN0X2JpdChpbmRleCwgcHBhdC0+dXNlZCkpOwotCi0JZW50cnktPnBwYXQgPSBwcGF0OwotCWVudHJ5LT52YWx1ZSA9IHZhbHVlOwotCWtyZWZfaW5pdCgmZW50cnktPnJlZik7Ci0Jc2V0X2JpdChpbmRleCwgcHBhdC0+dXNlZCk7Ci0Jc2V0X2JpdChpbmRleCwgcHBhdC0+ZGlydHkpOwotCi0JcmV0dXJuIGVudHJ5OworCS8qIFRHTCBkb2Vzbid0IHN1cHBvcnQgTExDIG9yIEFHRSBzZXR0aW5ncyAqLworCUk5MTVfV1JJVEUoR0VOMTJfUEFUX0lOREVYKDApLCBHRU44X1BQQVRfV0IpOworCUk5MTVfV1JJVEUoR0VOMTJfUEFUX0lOREVYKDEpLCBHRU44X1BQQVRfV0MpOworCUk5MTVfV1JJVEUoR0VOMTJfUEFUX0lOREVYKDIpLCBHRU44X1BQQVRfV1QpOworCUk5MTVfV1JJVEUoR0VOMTJfUEFUX0lOREVYKDMpLCBHRU44X1BQQVRfVUMpOworCUk5MTVfV1JJVEUoR0VOMTJfUEFUX0lOREVYKDQpLCBHRU44X1BQQVRfV0IpOworCUk5MTVfV1JJVEUoR0VOMTJfUEFUX0lOREVYKDUpLCBHRU44X1BQQVRfV0IpOworCUk5MTVfV1JJVEUoR0VOMTJfUEFUX0lOREVYKDYpLCBHRU44X1BQQVRfV0IpOworCUk5MTVfV1JJVEUoR0VOMTJfUEFUX0lOREVYKDcpLCBHRU44X1BQQVRfV0IpOwogfQogCi1zdGF0aWMgdm9pZCBfX2ZyZWVfcHBhdF9lbnRyeShzdHJ1Y3QgaW50ZWxfcHBhdF9lbnRyeSAqZW50cnkpCitzdGF0aWMgdm9pZCBjbmxfc2V0dXBfcHJpdmF0ZV9wcGF0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgaW50ZWxfcHBhdCAqcHBhdCA9IGVudHJ5LT5wcGF0OwotCXVuc2lnbmVkIGludCBpbmRleCA9IGVudHJ5IC0gcHBhdC0+ZW50cmllczsKLQotCUdFTV9CVUdfT04oaW5kZXggPj0gcHBhdC0+bWF4X2VudHJpZXMpOwotCUdFTV9CVUdfT04oIXRlc3RfYml0KGluZGV4LCBwcGF0LT51c2VkKSk7Ci0KLQllbnRyeS0+dmFsdWUgPSBwcGF0LT5jbGVhcl92YWx1ZTsKLQljbGVhcl9iaXQoaW5kZXgsIHBwYXQtPnVzZWQpOwotCXNldF9iaXQoaW5kZXgsIHBwYXQtPmRpcnR5KTsKLX0KLQotLyoqCi0gKiBpbnRlbF9wcGF0X2dldCAtIGdldCBhIHVzYWJsZSBQUEFUIGVudHJ5Ci0gKiBAaTkxNTogaTkxNSBkZXZpY2UgaW5zdGFuY2UKLSAqIEB2YWx1ZTogdGhlIFBQQVQgdmFsdWUgcmVxdWlyZWQgYnkgdGhlIGNhbGxlcgotICoKLSAqIFRoZSBmdW5jdGlvbiB0cmllcyB0byBzZWFyY2ggaWYgdGhlcmUgaXMgYW4gZXhpc3RpbmcgUFBBVCBlbnRyeSB3aGljaAotICogbWF0Y2hlcyB3aXRoIHRoZSByZXF1aXJlZCB2YWx1ZS4gSWYgcGVyZmVjdGx5IG1hdGNoZWQsIHRoZSBleGlzdGluZyBQUEFUCi0gKiBlbnRyeSB3aWxsIGJlIHVzZWQuIElmIG9ubHkgcGFydGlhbGx5IG1hdGNoZWQsIGl0IHdpbGwgdHJ5IHRvIGNoZWNrIGlmCi0gKiB0aGVyZSBpcyBhbnkgYXZhaWxhYmxlIFBQQVQgaW5kZXguIElmIHllcywgaXQgd2lsbCBhbGxvY2F0ZSBhIG5ldyBQUEFUCi0gKiBpbmRleCBmb3IgdGhlIHJlcXVpcmVkIGVudHJ5IGFuZCB1cGRhdGUgdGhlIEhXLiBJZiBub3QsIHRoZSBwYXJ0aWFsbHkKLSAqIG1hdGNoZWQgZW50cnkgd2lsbCBiZSB1c2VkLgotICovCi1jb25zdCBzdHJ1Y3QgaW50ZWxfcHBhdF9lbnRyeSAqCi1pbnRlbF9wcGF0X2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTggdmFsdWUpCi17Ci0Jc3RydWN0IGludGVsX3BwYXQgKnBwYXQgPSAmaTkxNS0+cHBhdDsKLQlzdHJ1Y3QgaW50ZWxfcHBhdF9lbnRyeSAqZW50cnkgPSBOVUxMOwotCXVuc2lnbmVkIGludCBzY2FubmVkLCBiZXN0X3Njb3JlOwotCWludCBpOwotCi0JR0VNX0JVR19PTighcHBhdC0+bWF4X2VudHJpZXMpOwotCi0Jc2Nhbm5lZCA9IGJlc3Rfc2NvcmUgPSAwOwotCWZvcl9lYWNoX3NldF9iaXQoaSwgcHBhdC0+dXNlZCwgcHBhdC0+bWF4X2VudHJpZXMpIHsKLQkJdW5zaWduZWQgaW50IHNjb3JlOwotCi0JCXNjb3JlID0gcHBhdC0+bWF0Y2gocHBhdC0+ZW50cmllc1tpXS52YWx1ZSwgdmFsdWUpOwotCQlpZiAoc2NvcmUgPiBiZXN0X3Njb3JlKSB7Ci0JCQllbnRyeSA9ICZwcGF0LT5lbnRyaWVzW2ldOwotCQkJaWYgKHNjb3JlID09IElOVEVMX1BQQVRfUEVSRkVDVF9NQVRDSCkgewotCQkJCWtyZWZfZ2V0KCZlbnRyeS0+cmVmKTsKLQkJCQlyZXR1cm4gZW50cnk7Ci0JCQl9Ci0JCQliZXN0X3Njb3JlID0gc2NvcmU7Ci0JCX0KLQkJc2Nhbm5lZCsrOwotCX0KLQotCWlmIChzY2FubmVkID09IHBwYXQtPm1heF9lbnRyaWVzKSB7Ci0JCWlmICghZW50cnkpCi0JCQlyZXR1cm4gRVJSX1BUUigtRU5PU1BDKTsKLQotCQlrcmVmX2dldCgmZW50cnktPnJlZik7Ci0JCXJldHVybiBlbnRyeTsKLQl9Ci0KLQlpID0gZmluZF9maXJzdF96ZXJvX2JpdChwcGF0LT51c2VkLCBwcGF0LT5tYXhfZW50cmllcyk7Ci0JZW50cnkgPSBfX2FsbG9jX3BwYXRfZW50cnkocHBhdCwgaSwgdmFsdWUpOwotCXBwYXQtPnVwZGF0ZV9odyhpOTE1KTsKLQlyZXR1cm4gZW50cnk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlbGVhc2VfcHBhdChzdHJ1Y3Qga3JlZiAqa3JlZikKLXsKLQlzdHJ1Y3QgaW50ZWxfcHBhdF9lbnRyeSAqZW50cnkgPQotCQljb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGludGVsX3BwYXRfZW50cnksIHJlZik7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbnRyeS0+cHBhdC0+aTkxNTsKLQotCV9fZnJlZV9wcGF0X2VudHJ5KGVudHJ5KTsKLQllbnRyeS0+cHBhdC0+dXBkYXRlX2h3KGk5MTUpOwotfQotCi0vKioKLSAqIGludGVsX3BwYXRfcHV0IC0gcHV0IGJhY2sgdGhlIFBQQVQgZW50cnkgZ290IGZyb20gaW50ZWxfcHBhdF9nZXQoKQotICogQGVudHJ5OiBhbiBpbnRlbCBQUEFUIGVudHJ5Ci0gKgotICogUHV0IGJhY2sgdGhlIFBQQVQgZW50cnkgZ290IGZyb20gaW50ZWxfcHBhdF9nZXQoKS4gSWYgdGhlIFBQQVQgaW5kZXggb2YgdGhlCi0gKiBlbnRyeSBpcyBkeW5hbWljYWxseSBhbGxvY2F0ZWQsIGl0cyByZWZlcmVuY2UgY291bnQgd2lsbCBiZSBkZWNyZWFzZWQuIE9uY2UKLSAqIHRoZSByZWZlcmVuY2UgY291bnQgYmVjb21lcyBpbnRvIHplcm8sIHRoZSBQUEFUIGluZGV4IGJlY29tZXMgZnJlZSBhZ2Fpbi4KLSAqLwotdm9pZCBpbnRlbF9wcGF0X3B1dChjb25zdCBzdHJ1Y3QgaW50ZWxfcHBhdF9lbnRyeSAqZW50cnkpCi17Ci0Jc3RydWN0IGludGVsX3BwYXQgKnBwYXQgPSBlbnRyeS0+cHBhdDsKLQl1bnNpZ25lZCBpbnQgaW5kZXggPSBlbnRyeSAtIHBwYXQtPmVudHJpZXM7Ci0KLQlHRU1fQlVHX09OKCFwcGF0LT5tYXhfZW50cmllcyk7Ci0KLQlrcmVmX3B1dCgmcHBhdC0+ZW50cmllc1tpbmRleF0ucmVmLCByZWxlYXNlX3BwYXQpOwotfQotCi1zdGF0aWMgdm9pZCBjbmxfcHJpdmF0ZV9wYXRfdXBkYXRlX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlzdHJ1Y3QgaW50ZWxfcHBhdCAqcHBhdCA9ICZkZXZfcHJpdi0+cHBhdDsKLQlpbnQgaTsKLQotCWZvcl9lYWNoX3NldF9iaXQoaSwgcHBhdC0+ZGlydHksIHBwYXQtPm1heF9lbnRyaWVzKSB7Ci0JCUk5MTVfV1JJVEUoR0VOMTBfUEFUX0lOREVYKGkpLCBwcGF0LT5lbnRyaWVzW2ldLnZhbHVlKTsKLQkJY2xlYXJfYml0KGksIHBwYXQtPmRpcnR5KTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIGJkd19wcml2YXRlX3BhdF91cGRhdGVfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cnVjdCBpbnRlbF9wcGF0ICpwcGF0ID0gJmRldl9wcml2LT5wcGF0OwotCXU2NCBwYXQgPSAwOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IHBwYXQtPm1heF9lbnRyaWVzOyBpKyspCi0JCXBhdCB8PSBHRU44X1BQQVQoaSwgcHBhdC0+ZW50cmllc1tpXS52YWx1ZSk7Ci0KLQliaXRtYXBfY2xlYXIocHBhdC0+ZGlydHksIDAsIHBwYXQtPm1heF9lbnRyaWVzKTsKLQotCUk5MTVfV1JJVEUoR0VOOF9QUklWQVRFX1BBVF9MTywgbG93ZXJfMzJfYml0cyhwYXQpKTsKLQlJOTE1X1dSSVRFKEdFTjhfUFJJVkFURV9QQVRfSEksIHVwcGVyXzMyX2JpdHMocGF0KSk7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgYmR3X3ByaXZhdGVfcGF0X21hdGNoKHU4IHNyYywgdTggZHN0KQotewotCXVuc2lnbmVkIGludCBzY29yZSA9IDA7Ci0JZW51bSB7Ci0JCUFHRV9NQVRDSCA9IEJJVCgwKSwKLQkJVENfTUFUQ0ggPSBCSVQoMSksCi0JCUNBX01BVENIID0gQklUKDIpLAotCX07Ci0KLQkvKiBDYWNoZSBhdHRyaWJ1dGUgaGFzIHRvIGJlIG1hdGNoZWQuICovCi0JaWYgKEdFTjhfUFBBVF9HRVRfQ0Eoc3JjKSAhPSBHRU44X1BQQVRfR0VUX0NBKGRzdCkpCi0JCXJldHVybiAwOwotCi0Jc2NvcmUgfD0gQ0FfTUFUQ0g7Ci0KLQlpZiAoR0VOOF9QUEFUX0dFVF9UQyhzcmMpID09IEdFTjhfUFBBVF9HRVRfVEMoZHN0KSkKLQkJc2NvcmUgfD0gVENfTUFUQ0g7Ci0KLQlpZiAoR0VOOF9QUEFUX0dFVF9BR0Uoc3JjKSA9PSBHRU44X1BQQVRfR0VUX0FHRShkc3QpKQotCQlzY29yZSB8PSBBR0VfTUFUQ0g7Ci0KLQlpZiAoc2NvcmUgPT0gKEFHRV9NQVRDSCB8IFRDX01BVENIIHwgQ0FfTUFUQ0gpKQotCQlyZXR1cm4gSU5URUxfUFBBVF9QRVJGRUNUX01BVENIOwotCi0JcmV0dXJuIHNjb3JlOwotfQotCi1zdGF0aWMgdW5zaWduZWQgaW50IGNodl9wcml2YXRlX3BhdF9tYXRjaCh1OCBzcmMsIHU4IGRzdCkKLXsKLQlyZXR1cm4gKENIVl9QUEFUX0dFVF9TTk9PUChzcmMpID09IENIVl9QUEFUX0dFVF9TTk9PUChkc3QpKSA/Ci0JCUlOVEVMX1BQQVRfUEVSRkVDVF9NQVRDSCA6IDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGNubF9zZXR1cF9wcml2YXRlX3BwYXQoc3RydWN0IGludGVsX3BwYXQgKnBwYXQpCi17Ci0JcHBhdC0+bWF4X2VudHJpZXMgPSA4OwotCXBwYXQtPnVwZGF0ZV9odyA9IGNubF9wcml2YXRlX3BhdF91cGRhdGVfaHc7Ci0JcHBhdC0+bWF0Y2ggPSBiZHdfcHJpdmF0ZV9wYXRfbWF0Y2g7Ci0JcHBhdC0+Y2xlYXJfdmFsdWUgPSBHRU44X1BQQVRfV0IgfCBHRU44X1BQQVRfTExDRUxMQyB8IEdFTjhfUFBBVF9BR0UoMyk7Ci0KLQlfX2FsbG9jX3BwYXRfZW50cnkocHBhdCwgMCwgR0VOOF9QUEFUX1dCIHwgR0VOOF9QUEFUX0xMQyk7Ci0JX19hbGxvY19wcGF0X2VudHJ5KHBwYXQsIDEsIEdFTjhfUFBBVF9XQyB8IEdFTjhfUFBBVF9MTENFTExDKTsKLQlfX2FsbG9jX3BwYXRfZW50cnkocHBhdCwgMiwgR0VOOF9QUEFUX1dUIHwgR0VOOF9QUEFUX0xMQ0VMTEMpOwotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCAzLCBHRU44X1BQQVRfVUMpOwotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCA0LCBHRU44X1BQQVRfV0IgfCBHRU44X1BQQVRfTExDRUxMQyB8IEdFTjhfUFBBVF9BR0UoMCkpOwotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCA1LCBHRU44X1BQQVRfV0IgfCBHRU44X1BQQVRfTExDRUxMQyB8IEdFTjhfUFBBVF9BR0UoMSkpOwotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCA2LCBHRU44X1BQQVRfV0IgfCBHRU44X1BQQVRfTExDRUxMQyB8IEdFTjhfUFBBVF9BR0UoMikpOwotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCA3LCBHRU44X1BQQVRfV0IgfCBHRU44X1BQQVRfTExDRUxMQyB8IEdFTjhfUFBBVF9BR0UoMykpOworCUk5MTVfV1JJVEUoR0VOMTBfUEFUX0lOREVYKDApLCBHRU44X1BQQVRfV0IgfCBHRU44X1BQQVRfTExDKTsKKwlJOTE1X1dSSVRFKEdFTjEwX1BBVF9JTkRFWCgxKSwgR0VOOF9QUEFUX1dDIHwgR0VOOF9QUEFUX0xMQ0VMTEMpOworCUk5MTVfV1JJVEUoR0VOMTBfUEFUX0lOREVYKDIpLCBHRU44X1BQQVRfV1QgfCBHRU44X1BQQVRfTExDRUxMQyk7CisJSTkxNV9XUklURShHRU4xMF9QQVRfSU5ERVgoMyksIEdFTjhfUFBBVF9VQyk7CisJSTkxNV9XUklURShHRU4xMF9QQVRfSU5ERVgoNCksIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9QUEFUX0FHRSgwKSk7CisJSTkxNV9XUklURShHRU4xMF9QQVRfSU5ERVgoNSksIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9QUEFUX0FHRSgxKSk7CisJSTkxNV9XUklURShHRU4xMF9QQVRfSU5ERVgoNiksIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9QUEFUX0FHRSgyKSk7CisJSTkxNV9XUklURShHRU4xMF9QQVRfSU5ERVgoNyksIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9QUEFUX0FHRSgzKSk7CiB9CiAKIC8qIFRoZSBHR1RUIGFuZCBQUEdUVCBuZWVkIGEgcHJpdmF0ZSBQUEFUIHNldHVwIGluIG9yZGVyIHRvIGhhbmRsZSBjYWNoZWFiaWxpdHkKICAqIGJpdHMuIFdoZW4gdXNpbmcgYWR2YW5jZWQgY29udGV4dHMgZWFjaCBjb250ZXh0IHN0b3JlcyBpdHMgb3duIFBBVCwgYnV0CiAgKiB3cml0aW5nIHRoaXMgZGF0YSBzaG91bGRuJ3QgYmUgaGFybWZ1bCBldmVuIGluIHRob3NlIGNhc2VzLiAqLwotc3RhdGljIHZvaWQgYmR3X3NldHVwX3ByaXZhdGVfcHBhdChzdHJ1Y3QgaW50ZWxfcHBhdCAqcHBhdCkKK3N0YXRpYyB2b2lkIGJkd19zZXR1cF9wcml2YXRlX3BwYXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXBwYXQtPm1heF9lbnRyaWVzID0gODsKLQlwcGF0LT51cGRhdGVfaHcgPSBiZHdfcHJpdmF0ZV9wYXRfdXBkYXRlX2h3OwotCXBwYXQtPm1hdGNoID0gYmR3X3ByaXZhdGVfcGF0X21hdGNoOwotCXBwYXQtPmNsZWFyX3ZhbHVlID0gR0VOOF9QUEFUX1dCIHwgR0VOOF9QUEFUX0xMQ0VMTEMgfCBHRU44X1BQQVRfQUdFKDMpOworCXU2NCBwYXQ7CiAKLQlpZiAoIUhBU19QUEdUVChwcGF0LT5pOTE1KSkgewotCQkvKiBTcGVjOiAiRm9yIEdHVFQsIHRoZXJlIGlzIE5PIHBhdF9zZWxbMjowXSBmcm9tIHRoZSBlbnRyeSwKLQkJICogc28gUlRMIHdpbGwgYWx3YXlzIHVzZSB0aGUgdmFsdWUgY29ycmVzcG9uZGluZyB0bwotCQkgKiBwYXRfc2VsID0gMDAwIi4KLQkJICogU28gbGV0J3MgZGlzYWJsZSBjYWNoZSBmb3IgR0dUVCB0byBhdm9pZCBzY3JlZW4gY29ycnVwdGlvbnMuCi0JCSAqIE1PQ1Mgc3RpbGwgY2FuIGJlIHVzZWQgdGhvdWdoLgotCQkgKiAtIFN5c3RlbSBhZ2VudCBnZ3R0IHdyaXRlcyAoaS5lLiBjcHUgZ3R0IG1tYXBzKSBhbHJlYWR5IHdvcmsKLQkJICogYmVmb3JlIHRoaXMgcGF0Y2gsIGkuZS4gdGhlIHNhbWUgdW5jYWNoZWQgKyBzbm9vcGluZyBhY2Nlc3MKLQkJICogbGlrZSBvbiBnZW42Lzcgc2VlbXMgdG8gYmUgaW4gZWZmZWN0LgotCQkgKiAtIFNvIHRoaXMganVzdCBmaXhlcyBibGl0dGVyL3JlbmRlciBhY2Nlc3MuIEFnYWluIGl0IGxvb2tzCi0JCSAqIGxpa2UgaXQncyBub3QganVzdCB1bmNhY2hlZCBhY2Nlc3MsIGJ1dCB1bmNhY2hlZCArIHNub29waW5nLgotCQkgKiBTbyB3ZSBjYW4gc3RpbGwgaG9sZCBvbnRvIGFsbCBvdXIgYXNzdW1wdGlvbnMgd3J0IGNwdQotCQkgKiBjbGZsdXNoaW5nIG9uIExMQyBtYWNoaW5lcy4KLQkJICovCi0JCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCAwLCBHRU44X1BQQVRfVUMpOwotCQlyZXR1cm47Ci0JfQorCXBhdCA9IEdFTjhfUFBBVCgwLCBHRU44X1BQQVRfV0IgfCBHRU44X1BQQVRfTExDKSB8CS8qIGZvciBub3JtYWwgb2JqZWN0cywgbm8gZUxMQyAqLworCSAgICAgIEdFTjhfUFBBVCgxLCBHRU44X1BQQVRfV0MgfCBHRU44X1BQQVRfTExDRUxMQykgfAkvKiBmb3Igc29tZXRoaW5nIHBvaW50aW5nIHRvIHB0ZXM/ICovCisJICAgICAgR0VOOF9QUEFUKDIsIEdFTjhfUFBBVF9XVCB8IEdFTjhfUFBBVF9MTENFTExDKSB8CS8qIGZvciBzY2Fub3V0IHdpdGggZUxMQyAqLworCSAgICAgIEdFTjhfUFBBVCgzLCBHRU44X1BQQVRfVUMpIHwJCQkvKiBVbmNhY2hlZCBvYmplY3RzLCBtb3N0bHkgZm9yIHNjYW5vdXQgKi8KKwkgICAgICBHRU44X1BQQVQoNCwgR0VOOF9QUEFUX1dCIHwgR0VOOF9QUEFUX0xMQ0VMTEMgfCBHRU44X1BQQVRfQUdFKDApKSB8CisJICAgICAgR0VOOF9QUEFUKDUsIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9QUEFUX0FHRSgxKSkgfAorCSAgICAgIEdFTjhfUFBBVCg2LCBHRU44X1BQQVRfV0IgfCBHRU44X1BQQVRfTExDRUxMQyB8IEdFTjhfUFBBVF9BR0UoMikpIHwKKwkgICAgICBHRU44X1BQQVQoNywgR0VOOF9QUEFUX1dCIHwgR0VOOF9QUEFUX0xMQ0VMTEMgfCBHRU44X1BQQVRfQUdFKDMpKTsKIAotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCAwLCBHRU44X1BQQVRfV0IgfCBHRU44X1BQQVRfTExDKTsgICAgICAvKiBmb3Igbm9ybWFsIG9iamVjdHMsIG5vIGVMTEMgKi8KLQlfX2FsbG9jX3BwYXRfZW50cnkocHBhdCwgMSwgR0VOOF9QUEFUX1dDIHwgR0VOOF9QUEFUX0xMQ0VMTEMpOyAgLyogZm9yIHNvbWV0aGluZyBwb2ludGluZyB0byBwdGVzPyAqLwotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCAyLCBHRU44X1BQQVRfV1QgfCBHRU44X1BQQVRfTExDRUxMQyk7ICAvKiBmb3Igc2Nhbm91dCB3aXRoIGVMTEMgKi8KLQlfX2FsbG9jX3BwYXRfZW50cnkocHBhdCwgMywgR0VOOF9QUEFUX1VDKTsgICAgICAgICAgICAgICAgICAgICAgLyogVW5jYWNoZWQgb2JqZWN0cywgbW9zdGx5IGZvciBzY2Fub3V0ICovCi0JX19hbGxvY19wcGF0X2VudHJ5KHBwYXQsIDQsIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9QUEFUX0FHRSgwKSk7Ci0JX19hbGxvY19wcGF0X2VudHJ5KHBwYXQsIDUsIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9QUEFUX0FHRSgxKSk7Ci0JX19hbGxvY19wcGF0X2VudHJ5KHBwYXQsIDYsIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9QUEFUX0FHRSgyKSk7Ci0JX19hbGxvY19wcGF0X2VudHJ5KHBwYXQsIDcsIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9QUEFUX0FHRSgzKSk7CisJSTkxNV9XUklURShHRU44X1BSSVZBVEVfUEFUX0xPLCBsb3dlcl8zMl9iaXRzKHBhdCkpOworCUk5MTVfV1JJVEUoR0VOOF9QUklWQVRFX1BBVF9ISSwgdXBwZXJfMzJfYml0cyhwYXQpKTsKIH0KIAotc3RhdGljIHZvaWQgY2h2X3NldHVwX3ByaXZhdGVfcHBhdChzdHJ1Y3QgaW50ZWxfcHBhdCAqcHBhdCkKK3N0YXRpYyB2b2lkIGNodl9zZXR1cF9wcml2YXRlX3BwYXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXBwYXQtPm1heF9lbnRyaWVzID0gODsKLQlwcGF0LT51cGRhdGVfaHcgPSBiZHdfcHJpdmF0ZV9wYXRfdXBkYXRlX2h3OwotCXBwYXQtPm1hdGNoID0gY2h2X3ByaXZhdGVfcGF0X21hdGNoOwotCXBwYXQtPmNsZWFyX3ZhbHVlID0gQ0hWX1BQQVRfU05PT1A7CisJdTY0IHBhdDsKIAogCS8qCiAJICogTWFwIFdCIG9uIEJEVyB0byBzbm9vcGVkIG9uIENIVi4KQEAgLTMyNzUsMTQgKzI5NDEsMTcgQEAgc3RhdGljIHZvaWQgY2h2X3NldHVwX3ByaXZhdGVfcHBhdChzdHJ1Y3QgaW50ZWxfcHBhdCAqcHBhdCkKIAkgKiBpbiBvcmRlciB0byBrZWVwIHRoZSBnbG9iYWwgc3RhdHVzIHBhZ2Ugd29ya2luZy4KIAkgKi8KIAotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCAwLCBDSFZfUFBBVF9TTk9PUCk7Ci0JX19hbGxvY19wcGF0X2VudHJ5KHBwYXQsIDEsIDApOwotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCAyLCAwKTsKLQlfX2FsbG9jX3BwYXRfZW50cnkocHBhdCwgMywgMCk7Ci0JX19hbGxvY19wcGF0X2VudHJ5KHBwYXQsIDQsIENIVl9QUEFUX1NOT09QKTsKLQlfX2FsbG9jX3BwYXRfZW50cnkocHBhdCwgNSwgQ0hWX1BQQVRfU05PT1ApOwotCV9fYWxsb2NfcHBhdF9lbnRyeShwcGF0LCA2LCBDSFZfUFBBVF9TTk9PUCk7Ci0JX19hbGxvY19wcGF0X2VudHJ5KHBwYXQsIDcsIENIVl9QUEFUX1NOT09QKTsKKwlwYXQgPSBHRU44X1BQQVQoMCwgQ0hWX1BQQVRfU05PT1ApIHwKKwkgICAgICBHRU44X1BQQVQoMSwgMCkgfAorCSAgICAgIEdFTjhfUFBBVCgyLCAwKSB8CisJICAgICAgR0VOOF9QUEFUKDMsIDApIHwKKwkgICAgICBHRU44X1BQQVQoNCwgQ0hWX1BQQVRfU05PT1ApIHwKKwkgICAgICBHRU44X1BQQVQoNSwgQ0hWX1BQQVRfU05PT1ApIHwKKwkgICAgICBHRU44X1BQQVQoNiwgQ0hWX1BQQVRfU05PT1ApIHwKKwkgICAgICBHRU44X1BQQVQoNywgQ0hWX1BQQVRfU05PT1ApOworCisJSTkxNV9XUklURShHRU44X1BSSVZBVEVfUEFUX0xPLCBsb3dlcl8zMl9iaXRzKHBhdCkpOworCUk5MTVfV1JJVEUoR0VOOF9QUklWQVRFX1BBVF9ISSwgdXBwZXJfMzJfYml0cyhwYXQpKTsKIH0KIAogc3RhdGljIHZvaWQgZ2VuNl9nbWNoX3JlbW92ZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKQEAgLTMyOTUsMjcgKzI5NjQsMTYgQEAgc3RhdGljIHZvaWQgZ2VuNl9nbWNoX3JlbW92ZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIAogc3RhdGljIHZvaWQgc2V0dXBfcHJpdmF0ZV9wYXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBpbnRlbF9wcGF0ICpwcGF0ID0gJmRldl9wcml2LT5wcGF0OwotCWludCBpOworCUdFTV9CVUdfT04oSU5URUxfR0VOKGRldl9wcml2KSA8IDgpOwogCi0JcHBhdC0+aTkxNSA9IGRldl9wcml2OwotCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTApCi0JCWNubF9zZXR1cF9wcml2YXRlX3BwYXQocHBhdCk7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpCisJCXRnbF9zZXR1cF9wcml2YXRlX3BwYXQoZGV2X3ByaXYpOworCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTApCisJCWNubF9zZXR1cF9wcml2YXRlX3BwYXQoZGV2X3ByaXYpOwogCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpIHx8IElTX0dFTjlfTFAoZGV2X3ByaXYpKQotCQljaHZfc2V0dXBfcHJpdmF0ZV9wcGF0KHBwYXQpOworCQljaHZfc2V0dXBfcHJpdmF0ZV9wcGF0KGRldl9wcml2KTsKIAllbHNlCi0JCWJkd19zZXR1cF9wcml2YXRlX3BwYXQocHBhdCk7Ci0KLQlHRU1fQlVHX09OKHBwYXQtPm1heF9lbnRyaWVzID4gSU5URUxfTUFYX1BQQVRfRU5UUklFUyk7Ci0KLQlmb3JfZWFjaF9jbGVhcl9iaXQoaSwgcHBhdC0+dXNlZCwgcHBhdC0+bWF4X2VudHJpZXMpIHsKLQkJcHBhdC0+ZW50cmllc1tpXS52YWx1ZSA9IHBwYXQtPmNsZWFyX3ZhbHVlOwotCQlwcGF0LT5lbnRyaWVzW2ldLnBwYXQgPSBwcGF0OwotCQlzZXRfYml0KGksIHBwYXQtPmRpcnR5KTsKLQl9Ci0KLQlwcGF0LT51cGRhdGVfaHcoZGV2X3ByaXYpOworCQliZHdfc2V0dXBfcHJpdmF0ZV9wcGF0KGRldl9wcml2KTsKIH0KIAogc3RhdGljIGludCBnZW44X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKQEAgLTMzNjAsMTEgKzMwMTgsNiBAQCBzdGF0aWMgaW50IGdlbjhfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCQlnZ3R0LT52bS5pbnNlcnRfcGFnZSAgICA9IGJ4dF92dGRfZ2d0dF9pbnNlcnRfcGFnZV9fQktMOwogCQlpZiAoZ2d0dC0+dm0uY2xlYXJfcmFuZ2UgIT0gbm9wX2NsZWFyX3JhbmdlKQogCQkJZ2d0dC0+dm0uY2xlYXJfcmFuZ2UgPSBieHRfdnRkX2dndHRfY2xlYXJfcmFuZ2VfX0JLTDsKLQotCQkvKiBQcmV2ZW50IHJlY3Vyc2l2ZWx5IGNhbGxpbmcgc3RvcF9tYWNoaW5lKCkgYW5kIGRlYWRsb2Nrcy4gKi8KLQkJZGV2X2luZm8oZGV2X3ByaXYtPmRybS5kZXYsCi0JCQkgIkRpc2FibGluZyBlcnJvciBjYXB0dXJlIGZvciBWVC1kIHdvcmthcm91bmRcbiIpOwotCQlpOTE1X2Rpc2FibGVfZXJyb3Jfc3RhdGUoZGV2X3ByaXYsIC1FTk9ERVYpOwogCX0KIAogCWdndHQtPmludmFsaWRhdGUgPSBnZW42X2dndHRfaW52YWxpZGF0ZTsKQEAgLTM0NzcsMjYgKzMxMzAsMjQgQEAgc3RhdGljIGludCBpOTE1X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIAlnZ3R0LT52bS52bWFfb3BzLmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7CiAKIAlpZiAodW5saWtlbHkoZ2d0dC0+ZG9faWRsZV9tYXBzKSkKLQkJRFJNX0lORk8oImFwcGx5aW5nIElyb25sYWtlIHF1aXJrcyBmb3IgaW50ZWxfaW9tbXVcbiIpOworCQlkZXZfbm90aWNlKGRldl9wcml2LT5kcm0uZGV2LAorCQkJICAgIkFwcGx5aW5nIElyb25sYWtlIHF1aXJrcyBmb3IgaW50ZWxfaW9tbXVcbiIpOwogCiAJcmV0dXJuIDA7CiB9CiAKLS8qKgotICogaTkxNV9nZ3R0X3Byb2JlX2h3IC0gUHJvYmUgR0dUVCBoYXJkd2FyZSBsb2NhdGlvbgotICogQGRldl9wcml2OiBpOTE1IGRldmljZQotICovCi1pbnQgaTkxNV9nZ3R0X3Byb2JlX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyBpbnQgZ2d0dF9wcm9iZV9odyhzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0LCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKIAlpbnQgcmV0OwogCi0JZ2d0dC0+dm0uaTkxNSA9IGRldl9wcml2OwotCWdndHQtPnZtLmRtYSA9ICZkZXZfcHJpdi0+ZHJtLnBkZXYtPmRldjsKKwlnZ3R0LT52bS5ndCA9IGd0OworCWdndHQtPnZtLmk5MTUgPSBpOTE1OworCWdndHQtPnZtLmRtYSA9ICZpOTE1LT5kcm0ucGRldi0+ZGV2OwogCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPD0gNSkKKwlpZiAoSU5URUxfR0VOKGk5MTUpIDw9IDUpCiAJCXJldCA9IGk5MTVfZ21jaF9wcm9iZShnZ3R0KTsKLQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOCkKKwllbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPCA4KQogCQlyZXQgPSBnZW42X2dtY2hfcHJvYmUoZ2d0dCk7CiAJZWxzZQogCQlyZXQgPSBnZW44X2dtY2hfcHJvYmUoZ2d0dCk7CkBAIC0zNTI0LDE5ICszMTc1LDY5IEBAIGludCBpOTE1X2dndHRfcHJvYmVfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCURSTV9ERUJVR19EUklWRVIoIkdNQURSIHNpemUgPSAlbGx1TVxuIiwgKHU2NClnZ3R0LT5tYXBwYWJsZV9lbmQgPj4gMjApOwogCURSTV9ERUJVR19EUklWRVIoIkRTTSBzaXplID0gJWxsdU1cbiIsCiAJCQkgKHU2NClyZXNvdXJjZV9zaXplKCZpbnRlbF9ncmFwaGljc19zdG9sZW5fcmVzKSA+PiAyMCk7Ci0JaWYgKGludGVsX3Z0ZF9hY3RpdmUoKSkKLQkJRFJNX0lORk8oIlZULWQgYWN0aXZlIGZvciBnZnggYWNjZXNzXG4iKTsKIAogCXJldHVybiAwOwogfQogCiAvKioKKyAqIGk5MTVfZ2d0dF9wcm9iZV9odyAtIFByb2JlIEdHVFQgaGFyZHdhcmUgbG9jYXRpb24KKyAqIEBpOTE1OiBpOTE1IGRldmljZQorICovCitpbnQgaTkxNV9nZ3R0X3Byb2JlX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWludCByZXQ7CisKKwlyZXQgPSBnZ3R0X3Byb2JlX2h3KCZpOTE1LT5nZ3R0LCAmaTkxNS0+Z3QpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpZiAoaW50ZWxfdnRkX2FjdGl2ZSgpKQorCQlkZXZfaW5mbyhpOTE1LT5kcm0uZGV2LCAiVlQtZCBhY3RpdmUgZm9yIGdmeCBhY2Nlc3NcbiIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZ2d0dF9pbml0X2h3KHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBnZ3R0LT52bS5pOTE1OworCWludCByZXQgPSAwOworCisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKKwlpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdCgmZ2d0dC0+dm0sIFZNX0NMQVNTX0dHVFQpOworCisJZ2d0dC0+dm0uaXNfZ2d0dCA9IHRydWU7CisKKwkvKiBPbmx5IFZMViBzdXBwb3J0cyByZWFkLW9ubHkgR0dUVCBtYXBwaW5ncyAqLworCWdndHQtPnZtLmhhc19yZWFkX29ubHkgPSBJU19WQUxMRVlWSUVXKGk5MTUpOworCisJaWYgKCFIQVNfTExDKGk5MTUpICYmICFIQVNfUFBHVFQoaTkxNSkpCisJCWdndHQtPnZtLm1tLmNvbG9yX2FkanVzdCA9IGk5MTVfZ3R0X2NvbG9yX2FkanVzdDsKKworCWlmICghaW9fbWFwcGluZ19pbml0X3djKCZnZ3R0LT5pb21hcCwKKwkJCQlnZ3R0LT5nbWFkci5zdGFydCwKKwkJCQlnZ3R0LT5tYXBwYWJsZV9lbmQpKSB7CisJCWdndHQtPnZtLmNsZWFudXAoJmdndHQtPnZtKTsKKwkJcmV0ID0gLUVJTzsKKwkJZ290byBvdXQ7CisJfQorCisJZ2d0dC0+bXRyciA9IGFyY2hfcGh5c193Y19hZGQoZ2d0dC0+Z21hZHIuc3RhcnQsIGdndHQtPm1hcHBhYmxlX2VuZCk7CisKKwlpOTE1X2dndHRfaW5pdF9mZW5jZXMoZ2d0dCk7CisKK291dDoKKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KKworLyoqCiAgKiBpOTE1X2dndHRfaW5pdF9odyAtIEluaXRpYWxpemUgR0dUVCBoYXJkd2FyZQogICogQGRldl9wcml2OiBpOTE1IGRldmljZQogICovCiBpbnQgaTkxNV9nZ3R0X2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7CiAJaW50IHJldDsKIAogCXN0YXNoX2luaXQoJmRldl9wcml2LT5tbS53Y19zdGFzaCk7CkBAIC0zNTQ2LDI4ICszMjQ3LDkgQEAgaW50IGk5MTVfZ2d0dF9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYmF0Y2ggYnVmZmVyLCBhY3Jvc3MgdGhlIHBhZ2UgYm91bmRhcnksCiAJICogYW5kIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBHVFQgaWYgd2UgZG8gbm90IHByb3ZpZGUgYSBndWFyZC4KIAkgKi8KLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JaTkxNV9hZGRyZXNzX3NwYWNlX2luaXQoJmdndHQtPnZtLCBWTV9DTEFTU19HR1RUKTsKLQotCWdndHQtPnZtLmlzX2dndHQgPSB0cnVlOwotCi0JLyogT25seSBWTFYgc3VwcG9ydHMgcmVhZC1vbmx5IEdHVFQgbWFwcGluZ3MgKi8KLQlnZ3R0LT52bS5oYXNfcmVhZF9vbmx5ID0gSVNfVkFMTEVZVklFVyhkZXZfcHJpdik7Ci0KLQlpZiAoIUhBU19MTEMoZGV2X3ByaXYpICYmICFIQVNfUFBHVFQoZGV2X3ByaXYpKQotCQlnZ3R0LT52bS5tbS5jb2xvcl9hZGp1c3QgPSBpOTE1X2d0dF9jb2xvcl9hZGp1c3Q7Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0KLQlpZiAoIWlvX21hcHBpbmdfaW5pdF93YygmZGV2X3ByaXYtPmdndHQuaW9tYXAsCi0JCQkJZGV2X3ByaXYtPmdndHQuZ21hZHIuc3RhcnQsCi0JCQkJZGV2X3ByaXYtPmdndHQubWFwcGFibGVfZW5kKSkgewotCQlyZXQgPSAtRUlPOwotCQlnb3RvIG91dF9ndHRfY2xlYW51cDsKLQl9Ci0KLQlnZ3R0LT5tdHJyID0gYXJjaF9waHlzX3djX2FkZChnZ3R0LT5nbWFkci5zdGFydCwgZ2d0dC0+bWFwcGFibGVfZW5kKTsKLQotCWk5MTVfZ2d0dF9pbml0X2ZlbmNlcyhnZ3R0KTsKKwlyZXQgPSBnZ3R0X2luaXRfaHcoJmRldl9wcml2LT5nZ3R0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJLyoKIAkgKiBJbml0aWFsaXNlIHN0b2xlbiBlYXJseSBzbyB0aGF0IHdlIG1heSByZXNlcnZlIHByZWFsbG9jYXRlZApAQCAtMzU4MCw3ICszMjYyLDcgQEAgaW50IGk5MTVfZ2d0dF9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gMDsKIAogb3V0X2d0dF9jbGVhbnVwOgotCWdndHQtPnZtLmNsZWFudXAoJmdndHQtPnZtKTsKKwlkZXZfcHJpdi0+Z2d0dC52bS5jbGVhbnVwKCZkZXZfcHJpdi0+Z2d0dC52bSk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMzU5MiwzNSArMzI3NCwzNSBAQCBpbnQgaTkxNV9nZ3R0X2VuYWJsZV9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgaTkxNV9nZ3R0X2VuYWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit2b2lkIGk5MTVfZ2d0dF9lbmFibGVfZ3VjKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiB7Ci0JR0VNX0JVR19PTihpOTE1LT5nZ3R0LmludmFsaWRhdGUgIT0gZ2VuNl9nZ3R0X2ludmFsaWRhdGUpOworCUdFTV9CVUdfT04oZ2d0dC0+aW52YWxpZGF0ZSAhPSBnZW42X2dndHRfaW52YWxpZGF0ZSk7CiAKLQlpOTE1LT5nZ3R0LmludmFsaWRhdGUgPSBndWNfZ2d0dF9pbnZhbGlkYXRlOworCWdndHQtPmludmFsaWRhdGUgPSBndWNfZ2d0dF9pbnZhbGlkYXRlOwogCi0JaTkxNV9nZ3R0X2ludmFsaWRhdGUoaTkxNSk7CisJZ2d0dC0+aW52YWxpZGF0ZShnZ3R0KTsKIH0KIAotdm9pZCBpOTE1X2dndHRfZGlzYWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit2b2lkIGk5MTVfZ2d0dF9kaXNhYmxlX2d1YyhzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogewogCS8qIFhYWCBUZW1wb3JhcnkgcGFyZG9uIGZvciBlcnJvciB1bmxvYWQgKi8KLQlpZiAoaTkxNS0+Z2d0dC5pbnZhbGlkYXRlID09IGdlbjZfZ2d0dF9pbnZhbGlkYXRlKQorCWlmIChnZ3R0LT5pbnZhbGlkYXRlID09IGdlbjZfZ2d0dF9pbnZhbGlkYXRlKQogCQlyZXR1cm47CiAKIAkvKiBXZSBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgaTkxNV9nZ3R0X2VuYWJsZV9ndWMoKSAqLwotCUdFTV9CVUdfT04oaTkxNS0+Z2d0dC5pbnZhbGlkYXRlICE9IGd1Y19nZ3R0X2ludmFsaWRhdGUpOworCUdFTV9CVUdfT04oZ2d0dC0+aW52YWxpZGF0ZSAhPSBndWNfZ2d0dF9pbnZhbGlkYXRlKTsKIAotCWk5MTUtPmdndHQuaW52YWxpZGF0ZSA9IGdlbjZfZ2d0dF9pbnZhbGlkYXRlOworCWdndHQtPmludmFsaWRhdGUgPSBnZW42X2dndHRfaW52YWxpZGF0ZTsKIAotCWk5MTVfZ2d0dF9pbnZhbGlkYXRlKGk5MTUpOworCWdndHQtPmludmFsaWRhdGUoZ2d0dCk7CiB9CiAKLXZvaWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRfbWFwcGluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgZ2d0dF9yZXN0b3JlX21hcHBpbmdzKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiB7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgKnZuOworCWJvb2wgZmx1c2ggPSBmYWxzZTsKIAotCWk5MTVfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhkZXZfcHJpdik7CisJaW50ZWxfZ3RfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhnZ3R0LT52bS5ndCk7CiAKIAltdXRleF9sb2NrKCZnZ3R0LT52bS5tdXRleCk7CiAKQEAgLTM2NDMsMTAgKzMzMjUsOSBAQCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJV0FSTl9PTihpOTE1X3ZtYV9iaW5kKHZtYSwKIAkJCQkgICAgICBvYmogPyBvYmotPmNhY2hlX2xldmVsIDogMCwKIAkJCQkgICAgICBQSU5fVVBEQVRFKSk7Ci0JCWlmIChvYmopIHsKLQkJCWk5MTVfZ2VtX29iamVjdF9sb2NrKG9iaik7Ci0JCQlXQVJOX09OKGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIGZhbHNlKSk7Ci0JCQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7CisJCWlmIChvYmopIHsgLyogb25seSB1c2VkIGR1cmluZyByZXN1bWUgPT4gZXhjbHVzaXZlIGFjY2VzcyAqLworCQkJZmx1c2ggfD0gZmV0Y2hfYW5kX3plcm8oJm9iai0+d3JpdGVfZG9tYWluKTsKKwkJCW9iai0+cmVhZF9kb21haW5zIHw9IEk5MTVfR0VNX0RPTUFJTl9HVFQ7CiAJCX0KIAogbG9jazoKQEAgLTM2NTQsMTcgKzMzMzUsMjAgQEAgdm9pZCBpOTE1X2dlbV9yZXN0b3JlX2d0dF9tYXBwaW5ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJfQogCiAJZ2d0dC0+dm0uY2xvc2VkID0gZmFsc2U7Ci0JaTkxNV9nZ3R0X2ludmFsaWRhdGUoZGV2X3ByaXYpOworCWdndHQtPmludmFsaWRhdGUoZ2d0dCk7CiAKIAltdXRleF91bmxvY2soJmdndHQtPnZtLm11dGV4KTsKIAotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKLQkJc3RydWN0IGludGVsX3BwYXQgKnBwYXQgPSAmZGV2X3ByaXYtPnBwYXQ7CisJaWYgKGZsdXNoKQorCQl3YmludmRfb25fYWxsX2NwdXMoKTsKK30KIAotCQliaXRtYXBfc2V0KHBwYXQtPmRpcnR5LCAwLCBwcGF0LT5tYXhfZW50cmllcyk7Ci0JCWRldl9wcml2LT5wcGF0LnVwZGF0ZV9odyhkZXZfcHJpdik7Ci0JCXJldHVybjsKLQl9Cit2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWdndHRfcmVzdG9yZV9tYXBwaW5ncygmaTkxNS0+Z2d0dCk7CisKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDgpCisJCXNldHVwX3ByaXZhdGVfcGF0KGk5MTUpOwogfQogCiBzdGF0aWMgc3RydWN0IHNjYXR0ZXJsaXN0ICoKQEAgLTM5NTMsNyArMzYzNyw3IEBAIGludCBpOTE1X2dlbV9ndHRfcmVzZXJ2ZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlHRU1fQlVHX09OKCFJU19BTElHTkVEKHNpemUsIEk5MTVfR1RUX1BBR0VfU0laRSkpOwogCUdFTV9CVUdfT04oIUlTX0FMSUdORUQob2Zmc2V0LCBJOTE1X0dUVF9NSU5fQUxJR05NRU5UKSk7CiAJR0VNX0JVR19PTihyYW5nZV9vdmVyZmxvd3Mob2Zmc2V0LCBzaXplLCB2bS0+dG90YWwpKTsKLQlHRU1fQlVHX09OKHZtID09ICZ2bS0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtKTsKKwlHRU1fQlVHX09OKHZtID09ICZ2bS0+aTkxNS0+Z2d0dC5hbGlhcy0+dm0pOwogCUdFTV9CVUdfT04oZHJtX21tX25vZGVfYWxsb2NhdGVkKG5vZGUpKTsKIAogCW5vZGUtPnNpemUgPSBzaXplOwpAQCAtNDA1MCw3ICszNzM0LDcgQEAgaW50IGk5MTVfZ2VtX2d0dF9pbnNlcnQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJR0VNX0JVR19PTihzdGFydCA+PSBlbmQpOwogCUdFTV9CVUdfT04oc3RhcnQgPiAwICAmJiAhSVNfQUxJR05FRChzdGFydCwgSTkxNV9HVFRfUEFHRV9TSVpFKSk7CiAJR0VNX0JVR19PTihlbmQgPCBVNjRfTUFYICYmICFJU19BTElHTkVEKGVuZCwgSTkxNV9HVFRfUEFHRV9TSVpFKSk7Ci0JR0VNX0JVR19PTih2bSA9PSAmdm0tPmk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0LT52bSk7CisJR0VNX0JVR19PTih2bSA9PSAmdm0tPmk5MTUtPmdndHQuYWxpYXMtPnZtKTsKIAlHRU1fQlVHX09OKGRybV9tbV9ub2RlX2FsbG9jYXRlZChub2RlKSk7CiAKIAlpZiAodW5saWtlbHkocmFuZ2Vfb3ZlcmZsb3dzKHN0YXJ0LCBzaXplLCBlbmQpKSkKQEAgLTQwOTMsNyArMzc3Nyw4IEBAIGludCBpOTE1X2dlbV9ndHRfaW5zZXJ0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCWlmIChmbGFncyAmIFBJTl9OT0VWSUNUKQogCQlyZXR1cm4gLUVOT1NQQzsKIAotCS8qIE5vIGZyZWUgc3BhY2UsIHBpY2sgYSBzbG90IGF0IHJhbmRvbS4KKwkvKgorCSAqIE5vIGZyZWUgc3BhY2UsIHBpY2sgYSBzbG90IGF0IHJhbmRvbS4KIAkgKgogCSAqIFRoZXJlIGlzIGEgcGF0aG9sb2dpY2FsIGNhc2UgaGVyZSB1c2luZyBhIEdUVCBzaGFyZWQgYmV0d2VlbgogCSAqIG1tYXAgYW5kIEdQVSAoaS5lLiBnZ3R0L2FsaWFzaW5nX3BwZ3R0IGJ1dCBub3QgZnVsbC1wcGd0dCk6CkBAIC00MTIxLDYgKzM4MDYsOSBAQCBpbnQgaTkxNV9nZW1fZ3R0X2luc2VydChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlpZiAoZXJyICE9IC1FTk9TUEMpCiAJCXJldHVybiBlcnI7CiAKKwlpZiAoZmxhZ3MgJiBQSU5fTk9TRUFSQ0gpCisJCXJldHVybiAtRU5PU1BDOworCiAJLyogUmFuZG9tbHkgc2VsZWN0ZWQgcGxhY2VtZW50IGlzIHBpbm5lZCwgZG8gYSBzZWFyY2ggKi8KIAllcnIgPSBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcodm0sIHNpemUsIGFsaWdubWVudCwgY29sb3IsCiAJCQkJICAgICAgIHN0YXJ0LCBlbmQsIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKaW5kZXggODEyNzE3Y2MuLmI5N2E0N2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCkBAIC0zNSwxNSArMzUsMTkgQEAKICNkZWZpbmUgX19JOTE1X0dFTV9HVFRfSF9fCiAKICNpbmNsdWRlIDxsaW51eC9pby1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgva3JlZi5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvcGFnZXZlYy5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgogCiAjaW5jbHVkZSAiZ3QvaW50ZWxfcmVzZXQuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9mZW5jZV9yZWcuaCIKICNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKICNpbmNsdWRlICJpOTE1X3NjYXR0ZXJsaXN0LmgiCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgotI2luY2x1ZGUgImk5MTVfdGltZWxpbmUuaCIKKyNpbmNsdWRlICJndC9pbnRlbF90aW1lbGluZS5oIgogCiAjZGVmaW5lIEk5MTVfR1RUX1BBR0VfU0laRV80SwlCSVRfVUxMKDEyKQogI2RlZmluZSBJOTE1X0dUVF9QQUdFX1NJWkVfNjRLCUJJVF9VTEwoMTYpCkBAIC02NCwxMiArNjgsMTAgQEAKIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGU7CiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKIHN0cnVjdCBpOTE1X3ZtYTsKK3N0cnVjdCBpbnRlbF9ndDsKIAogdHlwZWRlZiB1MzIgZ2VuNl9wdGVfdDsKIHR5cGVkZWYgdTY0IGdlbjhfcHRlX3Q7Ci10eXBlZGVmIHU2NCBnZW44X3BkZV90OwotdHlwZWRlZiB1NjQgZ2VuOF9wcGd0dF9wZHBlX3Q7Ci10eXBlZGVmIHU2NCBnZW44X3BwZ3R0X3BtbDRlX3Q7CiAKICNkZWZpbmUgZ2d0dF90b3RhbF9lbnRyaWVzKGdndHQpICgoZ2d0dCktPnZtLnRvdGFsID4+IFBBR0VfU0hJRlQpCiAKQEAgLTExMywzMCArMTE1LDE4IEBAIHR5cGVkZWYgdTY0IGdlbjhfcHBndHRfcG1sNGVfdDsKICNkZWZpbmUgSFNXX0dUVF9BRERSX0VOQ09ERShhZGRyKQkoKGFkZHIpIHwgKCgoYWRkcikgPj4gMjgpICYgMHg3ZjApKQogI2RlZmluZSBIU1dfUFRFX0FERFJfRU5DT0RFKGFkZHIpCUhTV19HVFRfQUREUl9FTkNPREUoYWRkcikKIAotLyogR0VOOCAzMmIgc3R5bGUgYWRkcmVzcyBpcyBkZWZpbmVkIGFzIGEgMyBsZXZlbCBwYWdlIHRhYmxlOgorLyoKKyAqIEdFTjggMzJiIHN0eWxlIGFkZHJlc3MgaXMgZGVmaW5lZCBhcyBhIDMgbGV2ZWwgcGFnZSB0YWJsZToKICAqIDMxOjMwIHwgMjk6MjEgfCAyMDoxMiB8ICAxMTowCiAgKiBQRFBFICB8ICBQREUgIHwgIFBURSAgfCBvZmZzZXQKICAqIFRoZSBkaWZmZXJlbmNlIGFzIGNvbXBhcmVkIHRvIG5vcm1hbCB4ODYgMyBsZXZlbCBwYWdlIHRhYmxlIGlzIHRoZSBQRFBFcyBhcmUKICAqIHByb2dyYW1tZWQgdmlhIHJlZ2lzdGVyLgotICovCi0jZGVmaW5lIEdFTjhfM0xWTF9QRFBFUwkJCTQKLSNkZWZpbmUgR0VOOF9QREVfU0hJRlQJCQkyMQotI2RlZmluZSBHRU44X1BERV9NQVNLCQkJMHgxZmYKLSNkZWZpbmUgR0VOOF9QVEVfU0hJRlQJCQkxMgotI2RlZmluZSBHRU44X1BURV9NQVNLCQkJMHgxZmYKLSNkZWZpbmUgR0VOOF9QVEVTCQkJSTkxNV9QVEVTKHNpemVvZihnZW44X3B0ZV90KSkKLQotLyogR0VOOCA0OGIgc3R5bGUgYWRkcmVzcyBpcyBkZWZpbmVkIGFzIGEgNCBsZXZlbCBwYWdlIHRhYmxlOgorICoKKyAqIEdFTjggNDhiIHN0eWxlIGFkZHJlc3MgaXMgZGVmaW5lZCBhcyBhIDQgbGV2ZWwgcGFnZSB0YWJsZToKICAqIDQ3OjM5IHwgMzg6MzAgfCAyOToyMSB8IDIwOjEyIHwgIDExOjAKICAqIFBNTDRFIHwgUERQRSAgfCAgUERFICB8ICBQVEUgIHwgb2Zmc2V0CiAgKi8KLSNkZWZpbmUgR0VOOF9QTUw0RVNfUEVSX1BNTDQJCTUxMgotI2RlZmluZSBHRU44X1BNTDRFX1NISUZUCQkzOQotI2RlZmluZSBHRU44X1BNTDRFX01BU0sJCQkoR0VOOF9QTUw0RVNfUEVSX1BNTDQgLSAxKQotI2RlZmluZSBHRU44X1BEUEVfU0hJRlQJCQkzMAotLyogTkI6IEdFTjhfUERQRV9NQVNLIGlzIHVudHJ1ZSBmb3IgMzJiIHBsYXRmb3JtcywgYnV0IGl0IGhhcyBubyBpbXBhY3Qgb24gMzJiIHBhZ2UKLSAqIHRhYmxlcyAqLwotI2RlZmluZSBHRU44X1BEUEVfTUFTSwkJCTB4MWZmCisjZGVmaW5lIEdFTjhfM0xWTF9QRFBFUwkJCTQKIAogI2RlZmluZSBQUEFUX1VOQ0FDSEVECQkJKF9QQUdFX1BXVCB8IF9QQUdFX1BDRCkKICNkZWZpbmUgUFBBVF9DQUNIRURfUERFCQkJMCAvKiBXQiBMTEMgKi8KQEAgLTE1NSwxMSArMTQ1LDYgQEAgdHlwZWRlZiB1NjQgZ2VuOF9wcGd0dF9wbWw0ZV90OwogI2RlZmluZSBHRU44X1BQQVRfRUxMQ19PVkVSUklERQkJKDA8PDIpCiAjZGVmaW5lIEdFTjhfUFBBVChpLCB4KQkJCSgodTY0KSh4KSA8PCAoKGkpICogOCkpCiAKLSNkZWZpbmUgR0VOOF9QUEFUX0dFVF9DQSh4KSAoKHgpICYgMykKLSNkZWZpbmUgR0VOOF9QUEFUX0dFVF9UQyh4KSAoKHgpICYgKDMgPDwgMikpCi0jZGVmaW5lIEdFTjhfUFBBVF9HRVRfQUdFKHgpICgoeCkgJiAoMyA8PCA0KSkKLSNkZWZpbmUgQ0hWX1BQQVRfR0VUX1NOT09QKHgpICgoeCkgJiAoMSA8PCA2KSkKLQogI2RlZmluZSBHRU44X1BERV9JUFNfNjRLIEJJVCgxMSkKICNkZWZpbmUgR0VOOF9QREVfUFNfMk0gICBCSVQoNykKIApAQCAtMjQzLDggKzIyOCwxMCBAQCBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSB7CiAJfTsKIH07CiAKLSNkZWZpbmUgcHhfYmFzZShweCkgKCYocHgpLT5iYXNlKQotI2RlZmluZSBweF9kbWEocHgpIChweF9iYXNlKHB4KS0+ZGFkZHIpCitzdHJ1Y3QgaTkxNV9wYWdlX3NjcmF0Y2ggeworCXN0cnVjdCBpOTE1X3BhZ2VfZG1hIGJhc2U7CisJdTY0IGVuY29kZTsKK307CiAKIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgewogCXN0cnVjdCBpOTE1X3BhZ2VfZG1hIGJhc2U7CkBAIC0yNTIsMTIgKzIzOSwzMiBAQCBzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlIHsKIH07CiAKIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5IHsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RtYSBiYXNlOwotCWF0b21pY190IHVzZWQ7CisJc3RydWN0IGk5MTVfcGFnZV90YWJsZSBwdDsKIAlzcGlubG9ja190IGxvY2s7CiAJdm9pZCAqZW50cnlbNTEyXTsKIH07CiAKKyNkZWZpbmUgX19weF9jaG9vc2VfZXhwcih4LCB0eXBlLCBleHByLCBvdGhlcikgXAorCV9fYnVpbHRpbl9jaG9vc2VfZXhwciggXAorCV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKHgpLCB0eXBlKSB8fCBcCisJX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoeCksIGNvbnN0IHR5cGUpLCBcCisJKHsgdHlwZSBfX3ggPSAodHlwZSkoeCk7IGV4cHI7IH0pLCBcCisJb3RoZXIpCisKKyNkZWZpbmUgcHhfYmFzZShweCkgXAorCV9fcHhfY2hvb3NlX2V4cHIocHgsIHN0cnVjdCBpOTE1X3BhZ2VfZG1hICosIF9feCwgXAorCV9fcHhfY2hvb3NlX2V4cHIocHgsIHN0cnVjdCBpOTE1X3BhZ2Vfc2NyYXRjaCAqLCAmX194LT5iYXNlLCBcCisJX19weF9jaG9vc2VfZXhwcihweCwgc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqLCAmX194LT5iYXNlLCBcCisJX19weF9jaG9vc2VfZXhwcihweCwgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiwgJl9feC0+cHQuYmFzZSwgXAorCSh2b2lkKTApKSkpCisjZGVmaW5lIHB4X2RtYShweCkgKHB4X2Jhc2UocHgpLT5kYWRkcikKKworI2RlZmluZSBweF9wdChweCkgXAorCV9fcHhfY2hvb3NlX2V4cHIocHgsIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKiwgX194LCBcCisJX19weF9jaG9vc2VfZXhwcihweCwgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiwgJl9feC0+cHQsIFwKKwkodm9pZCkwKSkKKyNkZWZpbmUgcHhfdXNlZChweCkgKCZweF9wdChweCktPnVzZWQpCisKIHN0cnVjdCBpOTE1X3ZtYV9vcHMgewogCS8qIE1hcCBhbiBvYmplY3QgaW50byBhbiBhZGRyZXNzIHNwYWNlIHdpdGggdGhlIGdpdmVuIGNhY2hlIGZsYWdzLiAqLwogCWludCAoKmJpbmRfdm1hKShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKQEAgLTI4MCw4ICsyODcsMTAgQEAgc3RydWN0IHBhZ2VzdGFzaCB7CiAKIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgewogCXN0cnVjdCBrcmVmIHJlZjsKKwlzdHJ1Y3QgcmN1X3dvcmsgcmN1OwogCiAJc3RydWN0IGRybV9tbSBtbTsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OwogCXN0cnVjdCBkZXZpY2UgKmRtYTsKIAkvKiBFdmVyeSBhZGRyZXNzIHNwYWNlIGJlbG9uZ3MgdG8gYSBzdHJ1Y3QgZmlsZSAtIGV4Y2VwdCBmb3IgdGhlIGdsb2JhbApAQCAtMzAyLDEyICszMTEsOSBAQCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlIHsKICNkZWZpbmUgVk1fQ0xBU1NfR0dUVCAwCiAjZGVmaW5lIFZNX0NMQVNTX1BQR1RUIDEKIAotCXU2NCBzY3JhdGNoX3B0ZTsKLQlpbnQgc2NyYXRjaF9vcmRlcjsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RtYSBzY3JhdGNoX3BhZ2U7Ci0Jc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqc2NyYXRjaF9wdDsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqc2NyYXRjaF9wZDsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqc2NyYXRjaF9wZHA7IC8qIEdFTjgrICYgNDhiIFBQR1RUICovCisJc3RydWN0IGk5MTVfcGFnZV9zY3JhdGNoIHNjcmF0Y2hbNF07CisJdW5zaWduZWQgaW50IHNjcmF0Y2hfb3JkZXI7CisJdW5zaWduZWQgaW50IHRvcDsKIAogCS8qKgogCSAqIExpc3Qgb2Ygdm1hIGN1cnJlbnRseSBib3VuZC4KQEAgLTM4Niw3ICszOTIsMTAgQEAgc3RydWN0IGk5MTVfZ2d0dCB7CiAKIAkvKiogIkdyYXBoaWNzIFN0b2xlbiBNZW1vcnkiIGhvbGRzIHRoZSBnbG9iYWwgUFRFcyAqLwogCXZvaWQgX19pb21lbSAqZ3NtOwotCXZvaWQgKCppbnZhbGlkYXRlKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCXZvaWQgKCppbnZhbGlkYXRlKShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KTsKKworCS8qKiBQUEdUVCB1c2VkIGZvciBhbGlhc2luZyB0aGUgUFBHVFQgd2l0aCB0aGUgR1RUICovCisJc3RydWN0IGk5MTVfcHBndHQgKmFsaWFzOwogCiAJYm9vbCBkb19pZGxlX21hcHM7CiAKQEAgLTQyNSw4ICs0MzQsNiBAQCBzdHJ1Y3QgZ2VuNl9wcGd0dCB7CiAKIAl1bnNpZ25lZCBpbnQgcGluX2NvdW50OwogCWJvb2wgc2Nhbl9mb3JfdW51c2VkX3B0OwotCi0Jc3RydWN0IGdlbjZfcHBndHRfY2xlYW51cF93b3JrICp3b3JrOwogfTsKIAogI2RlZmluZSBfX3RvX2dlbjZfcHBndHQoYmFzZSkgY29udGFpbmVyX29mKGJhc2UsIHN0cnVjdCBnZW42X3BwZ3R0LCBiYXNlKQpAQCAtNTA2LDE1ICs1MTMsNiBAQCBzdGF0aWMgaW5saW5lIHUzMiBnZW42X3BkZV9pbmRleCh1MzIgYWRkcikKIAlyZXR1cm4gaTkxNV9wZGVfaW5kZXgoYWRkciwgR0VONl9QREVfU0hJRlQpOwogfQogCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAotaTkxNV9wZHBlc19wZXJfcGRwKGNvbnN0IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQotewotCWlmIChpOTE1X3ZtX2lzXzRsdmwodm0pKQotCQlyZXR1cm4gR0VOOF9QTUw0RVNfUEVSX1BNTDQ7Ci0KLQlyZXR1cm4gR0VOOF8zTFZMX1BEUEVTOwotfQotCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKgogaTkxNV9wdF9lbnRyeShjb25zdCBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBkLAogCSAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IG4pCkBAIC01MjksNzMgKzUyNywxMiBAQCBpOTE1X3BkX2VudHJ5KGNvbnN0IHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcGRwLAogCXJldHVybiBwZHAtPmVudHJ5W25dOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICoKLWk5MTVfcGRwX2VudHJ5KGNvbnN0IHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcG1sNCwKLQkgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgbikKLXsKLQlyZXR1cm4gcG1sNC0+ZW50cnlbbl07Ci19Ci0KLS8qIEVxdWl2YWxlbnQgdG8gdGhlIGdlbjYgdmVyc2lvbiwgRm9yIGVhY2ggcGRlIGl0ZXJhdGVzIG92ZXIgZXZlcnkgcGRlCi0gKiBiZXR3ZWVuIGZyb20gc3RhcnQgdW50aWwgc3RhcnQgKyBsZW5ndGguIE9uIGdlbjgrIGl0IHNpbXBseSBpdGVyYXRlcwotICogb3ZlciBldmVyeSBwYWdlIGRpcmVjdG9yeSBlbnRyeSBpbiBhIHBhZ2UgZGlyZWN0b3J5LgotICovCi0jZGVmaW5lIGdlbjhfZm9yX2VhY2hfcGRlKHB0LCBwZCwgc3RhcnQsIGxlbmd0aCwgaXRlcikJCQlcCi0JZm9yIChpdGVyID0gZ2VuOF9wZGVfaW5kZXgoc3RhcnQpOwkJCQlcCi0JICAgICBsZW5ndGggPiAwICYmIGl0ZXIgPCBJOTE1X1BERVMgJiYJCQkJXAotCQkgICAgIChwdCA9IGk5MTVfcHRfZW50cnkocGQsIGl0ZXIpLCB0cnVlKTsJCVwKLQkgICAgICh7IHU2NCB0ZW1wID0gQUxJR04oc3RhcnQrMSwgMSA8PCBHRU44X1BERV9TSElGVCk7CQlcCi0JCSAgICB0ZW1wID0gbWluKHRlbXAgLSBzdGFydCwgbGVuZ3RoKTsJCQlcCi0JCSAgICBzdGFydCArPSB0ZW1wLCBsZW5ndGggLT0gdGVtcDsgfSksICsraXRlcikKLQotI2RlZmluZSBnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwgc3RhcnQsIGxlbmd0aCwgaXRlcikJCVwKLQlmb3IgKGl0ZXIgPSBnZW44X3BkcGVfaW5kZXgoc3RhcnQpOwkJCQlcCi0JICAgICBsZW5ndGggPiAwICYmIGl0ZXIgPCBpOTE1X3BkcGVzX3Blcl9wZHAodm0pICYmCQlcCi0JCSAgICAgKHBkID0gaTkxNV9wZF9lbnRyeShwZHAsIGl0ZXIpLCB0cnVlKTsJCVwKLQkgICAgICh7IHU2NCB0ZW1wID0gQUxJR04oc3RhcnQrMSwgMSA8PCBHRU44X1BEUEVfU0hJRlQpOwlcCi0JCSAgICB0ZW1wID0gbWluKHRlbXAgLSBzdGFydCwgbGVuZ3RoKTsJCQlcCi0JCSAgICBzdGFydCArPSB0ZW1wLCBsZW5ndGggLT0gdGVtcDsgfSksICsraXRlcikKLQotI2RlZmluZSBnZW44X2Zvcl9lYWNoX3BtbDRlKHBkcCwgcG1sNCwgc3RhcnQsIGxlbmd0aCwgaXRlcikJCVwKLQlmb3IgKGl0ZXIgPSBnZW44X3BtbDRlX2luZGV4KHN0YXJ0KTsJCQkJXAotCSAgICAgbGVuZ3RoID4gMCAmJiBpdGVyIDwgR0VOOF9QTUw0RVNfUEVSX1BNTDQgJiYJCVwKLQkJICAgICAocGRwID0gaTkxNV9wZHBfZW50cnkocG1sNCwgaXRlciksIHRydWUpOwkJXAotCSAgICAgKHsgdTY0IHRlbXAgPSBBTElHTihzdGFydCsxLCAxVUxMIDw8IEdFTjhfUE1MNEVfU0hJRlQpOwlcCi0JCSAgICB0ZW1wID0gbWluKHRlbXAgLSBzdGFydCwgbGVuZ3RoKTsJCQlcCi0JCSAgICBzdGFydCArPSB0ZW1wLCBsZW5ndGggLT0gdGVtcDsgfSksICsraXRlcikKLQotc3RhdGljIGlubGluZSB1MzIgZ2VuOF9wdGVfaW5kZXgodTY0IGFkZHJlc3MpCi17Ci0JcmV0dXJuIGk5MTVfcHRlX2luZGV4KGFkZHJlc3MsIEdFTjhfUERFX1NISUZUKTsKLX0KLQotc3RhdGljIGlubGluZSB1MzIgZ2VuOF9wZGVfaW5kZXgodTY0IGFkZHJlc3MpCi17Ci0JcmV0dXJuIGk5MTVfcGRlX2luZGV4KGFkZHJlc3MsIEdFTjhfUERFX1NISUZUKTsKLX0KLQotc3RhdGljIGlubGluZSB1MzIgZ2VuOF9wZHBlX2luZGV4KHU2NCBhZGRyZXNzKQotewotCXJldHVybiAoYWRkcmVzcyA+PiBHRU44X1BEUEVfU0hJRlQpICYgR0VOOF9QRFBFX01BU0s7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdTMyIGdlbjhfcG1sNGVfaW5kZXgodTY0IGFkZHJlc3MpCi17Ci0JcmV0dXJuIChhZGRyZXNzID4+IEdFTjhfUE1MNEVfU0hJRlQpICYgR0VOOF9QTUw0RV9NQVNLOwotfQotCi1zdGF0aWMgaW5saW5lIHU2NCBnZW44X3B0ZV9jb3VudCh1NjQgYWRkcmVzcywgdTY0IGxlbmd0aCkKLXsKLQlyZXR1cm4gaTkxNV9wdGVfY291bnQoYWRkcmVzcywgbGVuZ3RoLCBHRU44X1BERV9TSElGVCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgZG1hX2FkZHJfdAogaTkxNV9wYWdlX2Rpcl9kbWFfYWRkcihjb25zdCBzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQsIGNvbnN0IHVuc2lnbmVkIGludCBuKQogewotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKKwlzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcHQgPSBwcGd0dC0+cGQtPmVudHJ5W25dOwogCi0JcGQgPSBpOTE1X3BkcF9lbnRyeShwcGd0dC0+cGQsIG4pOwotCXJldHVybiBweF9kbWEocGQpOworCXJldHVybiBweF9kbWEocHQgPzogcHhfYmFzZSgmcHBndHQtPnZtLnNjcmF0Y2hbcHBndHQtPnZtLnRvcF0pKTsKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV9nZ3R0ICoKQEAgLTYxNCw0NiArNTUxLDE1IEBAIGk5MTVfdm1fdG9fcHBndHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCiAJcmV0dXJuIGNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfcHBndHQsIHZtKTsKIH0KIAotI2RlZmluZSBJTlRFTF9NQVhfUFBBVF9FTlRSSUVTIDgKLSNkZWZpbmUgSU5URUxfUFBBVF9QRVJGRUNUX01BVENIICh+MFUpCi0KLXN0cnVjdCBpbnRlbF9wcGF0OwotCi1zdHJ1Y3QgaW50ZWxfcHBhdF9lbnRyeSB7Ci0Jc3RydWN0IGludGVsX3BwYXQgKnBwYXQ7Ci0Jc3RydWN0IGtyZWYgcmVmOwotCXU4IHZhbHVlOwotfTsKLQotc3RydWN0IGludGVsX3BwYXQgewotCXN0cnVjdCBpbnRlbF9wcGF0X2VudHJ5IGVudHJpZXNbSU5URUxfTUFYX1BQQVRfRU5UUklFU107Ci0JREVDTEFSRV9CSVRNQVAodXNlZCwgSU5URUxfTUFYX1BQQVRfRU5UUklFUyk7Ci0JREVDTEFSRV9CSVRNQVAoZGlydHksIElOVEVMX01BWF9QUEFUX0VOVFJJRVMpOwotCXVuc2lnbmVkIGludCBtYXhfZW50cmllczsKLQl1OCBjbGVhcl92YWx1ZTsKLQkvKgotCSAqIFJldHVybiBhIHNjb3JlIHRvIHNob3cgaG93IHR3byBQUEFUIHZhbHVlcyBtYXRjaCwKLQkgKiBhIElOVEVMX1BQQVRfUEVSRkVDVF9NQVRDSCBpbmRpY2F0ZXMgYSBwZXJmZWN0IG1hdGNoCi0JICovCi0JdW5zaWduZWQgaW50ICgqbWF0Y2gpKHU4IHNyYywgdTggZHN0KTsKLQl2b2lkICgqdXBkYXRlX2h3KShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci0KLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKLX07Ci0KLWNvbnN0IHN0cnVjdCBpbnRlbF9wcGF0X2VudHJ5ICoKLWludGVsX3BwYXRfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1OCB2YWx1ZSk7Ci12b2lkIGludGVsX3BwYXRfcHV0KGNvbnN0IHN0cnVjdCBpbnRlbF9wcGF0X2VudHJ5ICplbnRyeSk7Ci0KIGludCBpOTE1X2dndHRfcHJvYmVfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGludCBpOTE1X2dndHRfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IGk5MTVfZ2d0dF9lbmFibGVfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaTkxNV9nZ3R0X2VuYWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotdm9pZCBpOTE1X2dndHRfZGlzYWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpOTE1X2dndHRfY2xlYW51cF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpOTE1X2dndHRfZW5hYmxlX2d1YyhzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KTsKK3ZvaWQgaTkxNV9nZ3R0X2Rpc2FibGVfZ3VjKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpOworaW50IGk5MTVfaW5pdF9nZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGk5MTVfZ2d0dF9kcml2ZXJfcmVsZWFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogCi1pbnQgaTkxNV9wcGd0dF9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CitpbnQgaTkxNV9wcGd0dF9pbml0X2h3KHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwogCiBzdHJ1Y3QgaTkxNV9wcGd0dCAqaTkxNV9wcGd0dF9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIApAQCAtNjk0LDkgKzYwMCw5IEBAIGludCBpOTE1X2dlbV9ndHRfaW5zZXJ0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJdTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogCiAvKiBGbGFncyB1c2VkIGJ5IHBpbi9iaW5kJmZyaWVuZHMuICovCi0jZGVmaW5lIFBJTl9OT05CTE9DSwkJQklUX1VMTCgwKQotI2RlZmluZSBQSU5fTk9ORkFVTFQJCUJJVF9VTEwoMSkKLSNkZWZpbmUgUElOX05PRVZJQ1QJCUJJVF9VTEwoMikKKyNkZWZpbmUgUElOX05PRVZJQ1QJCUJJVF9VTEwoMCkKKyNkZWZpbmUgUElOX05PU0VBUkNICQlCSVRfVUxMKDEpCisjZGVmaW5lIFBJTl9OT05CTE9DSwkJQklUX1VMTCgyKQogI2RlZmluZSBQSU5fTUFQUEFCTEUJCUJJVF9VTEwoMykKICNkZWZpbmUgUElOX1pPTkVfNEcJCUJJVF9VTEwoNCkKICNkZWZpbmUgUElOX0hJR0gJCUJJVF9VTEwoNSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlZTAzMjAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwotICogSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqIEF1dGhvcnM6Ci0gKiAgICBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmgiCi0jaW5jbHVkZSAiaW50ZWxfcmVuZGVyc3RhdGUuaCIKLQotc3RydWN0IGludGVsX3JlbmRlcl9zdGF0ZSB7Ci0JY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqcm9kYXRhOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0JdTMyIGJhdGNoX29mZnNldDsKLQl1MzIgYmF0Y2hfc2l6ZTsKLQl1MzIgYXV4X29mZnNldDsKLQl1MzIgYXV4X3NpemU7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqCi1yZW5kZXJfc3RhdGVfZ2V0X3JvZGF0YShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0JaWYgKGVuZ2luZS0+aWQgIT0gUkNTMCkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlzd2l0Y2ggKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpKSB7Ci0JY2FzZSA2OgotCQlyZXR1cm4gJmdlbjZfbnVsbF9zdGF0ZTsKLQljYXNlIDc6Ci0JCXJldHVybiAmZ2VuN19udWxsX3N0YXRlOwotCWNhc2UgODoKLQkJcmV0dXJuICZnZW44X251bGxfc3RhdGU7Ci0JY2FzZSA5OgotCQlyZXR1cm4gJmdlbjlfbnVsbF9zdGF0ZTsKLQl9Ci0KLQlyZXR1cm4gTlVMTDsKLX0KLQotLyoKLSAqIE1hY3JvIHRvIGFkZCBjb21tYW5kcyB0byBhdXhpbGlhcnkgYmF0Y2guCi0gKiBUaGlzIG1hY3JvIG9ubHkgY2hlY2tzIGZvciBwYWdlIG92ZXJmbG93IGJlZm9yZSBpbnNlcnRpbmcgdGhlIGNvbW1hbmRzLAotICogdGhpcyBpcyBzdWZmaWNpZW50IGFzIHRoZSBudWxsIHN0YXRlIGdlbmVyYXRvciBtYWtlcyB0aGUgZmluYWwgYmF0Y2gKLSAqIHdpdGggdHdvIHBhc3NlcyB0byBidWlsZCBjb21tYW5kIGFuZCBzdGF0ZSBzZXBhcmF0ZWx5LiBBdCB0aGlzIHBvaW50Ci0gKiB0aGUgc2l6ZSBvZiBib3RoIGFyZSBrbm93biBhbmQgaXQgY29tcGFjdHMgdGhlbSBieSByZWxvY2F0aW5nIHRoZSBzdGF0ZQotICogcmlnaHQgYWZ0ZXIgdGhlIGNvbW1hbmRzIHRha2luZyBjYXJlIG9mIGFsaWdubWVudCBzbyB3ZSBzaG91bGQgc3VmZmljaWVudAotICogc3BhY2UgYmVsb3cgdGhlbSBmb3IgYWRkaW5nIG5ldyBjb21tYW5kcy4KLSAqLwotI2RlZmluZSBPVVRfQkFUQ0goYmF0Y2gsIGksIHZhbCkJCQkJXAotCWRvIHsJCQkJCQkJXAotCQlpZiAoKGkpID49IFBBR0VfU0laRSAvIHNpemVvZih1MzIpKQkJXAotCQkJZ290byBlcnI7CQkJCVwKLQkJKGJhdGNoKVsoaSkrK10gPSAodmFsKTsJCQkJXAotCX0gd2hpbGUoMCkKLQotc3RhdGljIGludCByZW5kZXJfc3RhdGVfc2V0dXAoc3RydWN0IGludGVsX3JlbmRlcl9zdGF0ZSAqc28sCi0JCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhICpyb2RhdGEgPSBzby0+cm9kYXRhOwotCXVuc2lnbmVkIGludCBpID0gMCwgcmVsb2NfaW5kZXggPSAwOwotCXVuc2lnbmVkIGludCBuZWVkc19jbGZsdXNoOwotCXUzMiAqZDsKLQlpbnQgcmV0OwotCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3ByZXBhcmVfd3JpdGUoc28tPm9iaiwgJm5lZWRzX2NsZmx1c2gpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlkID0ga21hcF9hdG9taWMoaTkxNV9nZW1fb2JqZWN0X2dldF9kaXJ0eV9wYWdlKHNvLT5vYmosIDApKTsKLQotCXdoaWxlIChpIDwgcm9kYXRhLT5iYXRjaF9pdGVtcykgewotCQl1MzIgcyA9IHJvZGF0YS0+YmF0Y2hbaV07Ci0KLQkJaWYgKGkgKiA0ICA9PSByb2RhdGEtPnJlbG9jW3JlbG9jX2luZGV4XSkgewotCQkJdTY0IHIgPSBzICsgc28tPnZtYS0+bm9kZS5zdGFydDsKLQkJCXMgPSBsb3dlcl8zMl9iaXRzKHIpOwotCQkJaWYgKEhBU182NEJJVF9SRUxPQyhpOTE1KSkgewotCQkJCWlmIChpICsgMSA+PSByb2RhdGEtPmJhdGNoX2l0ZW1zIHx8Ci0JCQkJICAgIHJvZGF0YS0+YmF0Y2hbaSArIDFdICE9IDApCi0JCQkJCWdvdG8gZXJyOwotCi0JCQkJZFtpKytdID0gczsKLQkJCQlzID0gdXBwZXJfMzJfYml0cyhyKTsKLQkJCX0KLQotCQkJcmVsb2NfaW5kZXgrKzsKLQkJfQotCi0JCWRbaSsrXSA9IHM7Ci0JfQotCi0JaWYgKHJvZGF0YS0+cmVsb2NbcmVsb2NfaW5kZXhdICE9IC0xKSB7Ci0JCURSTV9FUlJPUigib25seSAlZCByZWxvY3MgcmVzb2x2ZWRcbiIsIHJlbG9jX2luZGV4KTsKLQkJZ290byBlcnI7Ci0JfQotCi0Jc28tPmJhdGNoX29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoc28tPnZtYSk7Ci0Jc28tPmJhdGNoX3NpemUgPSByb2RhdGEtPmJhdGNoX2l0ZW1zICogc2l6ZW9mKHUzMik7Ci0KLQl3aGlsZSAoaSAlIENBQ0hFTElORV9EV09SRFMpCi0JCU9VVF9CQVRDSChkLCBpLCBNSV9OT09QKTsKLQotCXNvLT5hdXhfb2Zmc2V0ID0gaSAqIHNpemVvZih1MzIpOwotCi0JaWYgKEhBU19QT09MRURfRVUoaTkxNSkpIHsKLQkJLyoKLQkJICogV2UgYWx3YXlzIHByb2dyYW0gM3g2IHBvb2wgY29uZmlnIGJ1dCBkZXBlbmRpbmcgdXBvbiB3aGljaAotCQkgKiBzdWJzbGljZSBpcyBkaXNhYmxlZCBIVyBkcm9wcyBkb3duIHRvIGFwcHJvcHJpYXRlIGNvbmZpZwotCQkgKiBzaG93biBiZWxvdy4KLQkJICoKLQkJICogSW4gdGhlIGJlbG93IHRhYmxlIDJ4NiBjb25maWcgYWx3YXlzIHJlZmVycyB0bwotCQkgKiBmdXNlZC1kb3duIHZlcnNpb24sIG5hdGl2ZSAyeDYgaXMgbm90IGF2YWlsYWJsZSBhbmQgY2FuCi0JCSAqIGJlIGlnbm9yZWQKLQkJICoKLQkJICogU05vICBzdWJzbGljZXMgY29uZmlnICAgICAgICAgICAgICAgIGV1IHBvb2wgY29uZmlndXJhdGlvbgotCQkgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCQkgKiAxICAgIDMgc3Vic2xpY2VzIGVuYWJsZWQgKDN4NikgIC0gICAgMHgwMDc3NzAwMCAgKDkrOSkKLQkJICogMiAgICBzczAgZGlzYWJsZWQgKDJ4NikgICAgICAgICAtICAgIDB4MDA3NzcwMDAgICgzKzkpCi0JCSAqIDMgICAgc3MxIGRpc2FibGVkICgyeDYpICAgICAgICAgLSAgICAweDAwNzcwMDAwICAoNis2KQotCQkgKiA0ICAgIHNzMiBkaXNhYmxlZCAoMng2KSAgICAgICAgIC0gICAgMHgwMDAwNzAwMCAgKDkrMykKLQkJICovCi0JCXUzMiBldV9wb29sX2NvbmZpZyA9IDB4MDA3NzcwMDA7Ci0KLQkJT1VUX0JBVENIKGQsIGksIEdFTjlfTUVESUFfUE9PTF9TVEFURSk7Ci0JCU9VVF9CQVRDSChkLCBpLCBHRU45X01FRElBX1BPT0xfRU5BQkxFKTsKLQkJT1VUX0JBVENIKGQsIGksIGV1X3Bvb2xfY29uZmlnKTsKLQkJT1VUX0JBVENIKGQsIGksIDApOwotCQlPVVRfQkFUQ0goZCwgaSwgMCk7Ci0JCU9VVF9CQVRDSChkLCBpLCAwKTsKLQl9Ci0KLQlPVVRfQkFUQ0goZCwgaSwgTUlfQkFUQ0hfQlVGRkVSX0VORCk7Ci0Jc28tPmF1eF9zaXplID0gaSAqIHNpemVvZih1MzIpIC0gc28tPmF1eF9vZmZzZXQ7Ci0Jc28tPmF1eF9vZmZzZXQgKz0gc28tPmJhdGNoX29mZnNldDsKLQkvKgotCSAqIFNpbmNlIHdlIGFyZSBzZW5kaW5nIGxlbmd0aCwgd2UgbmVlZCB0byBzdHJpY3RseSBjb25mb3JtIHRvCi0JICogYWxsIHJlcXVpcmVtZW50cy4gRm9yIEdlbjIgdGhpcyBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgOC4KLQkgKi8KLQlzby0+YXV4X3NpemUgPSBBTElHTihzby0+YXV4X3NpemUsIDgpOwotCi0JaWYgKG5lZWRzX2NsZmx1c2gpCi0JCWRybV9jbGZsdXNoX3ZpcnRfcmFuZ2UoZCwgaSAqIHNpemVvZih1MzIpKTsKLQlrdW5tYXBfYXRvbWljKGQpOwotCi0JcmV0ID0gMDsKLW91dDoKLQlpOTE1X2dlbV9vYmplY3RfZmluaXNoX2FjY2Vzcyhzby0+b2JqKTsKLQlyZXR1cm4gcmV0OwotCi1lcnI6Ci0Ja3VubWFwX2F0b21pYyhkKTsKLQlyZXQgPSAtRUlOVkFMOwotCWdvdG8gb3V0OwotfQotCi0jdW5kZWYgT1VUX0JBVENICi0KLWludCBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfZW1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBycS0+ZW5naW5lOwotCXN0cnVjdCBpbnRlbF9yZW5kZXJfc3RhdGUgc28gPSB7fTsgLyoga2VlcCB0aGUgY29tcGlsZXIgaGFwcHkgKi8KLQlpbnQgZXJyOwotCi0Jc28ucm9kYXRhID0gcmVuZGVyX3N0YXRlX2dldF9yb2RhdGEoZW5naW5lKTsKLQlpZiAoIXNvLnJvZGF0YSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoc28ucm9kYXRhLT5iYXRjaF9pdGVtcyAqIDQgPiBQQUdFX1NJWkUpCi0JCXJldHVybiAtRUlOVkFMOwotCi0Jc28ub2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChlbmdpbmUtPmk5MTUsIFBBR0VfU0laRSk7Ci0JaWYgKElTX0VSUihzby5vYmopKQotCQlyZXR1cm4gUFRSX0VSUihzby5vYmopOwotCi0Jc28udm1hID0gaTkxNV92bWFfaW5zdGFuY2Uoc28ub2JqLCAmZW5naW5lLT5pOTE1LT5nZ3R0LnZtLCBOVUxMKTsKLQlpZiAoSVNfRVJSKHNvLnZtYSkpIHsKLQkJZXJyID0gUFRSX0VSUihzby52bWEpOwotCQlnb3RvIGVycl9vYmo7Ci0JfQotCi0JZXJyID0gaTkxNV92bWFfcGluKHNvLnZtYSwgMCwgMCwgUElOX0dMT0JBTCB8IFBJTl9ISUdIKTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl92bWE7Ci0KLQllcnIgPSByZW5kZXJfc3RhdGVfc2V0dXAoJnNvLCBycS0+aTkxNSk7Ci0JaWYgKGVycikKLQkJZ290byBlcnJfdW5waW47Ci0KLQllcnIgPSBlbmdpbmUtPmVtaXRfYmJfc3RhcnQocnEsCi0JCQkJICAgIHNvLmJhdGNoX29mZnNldCwgc28uYmF0Y2hfc2l6ZSwKLQkJCQkgICAgSTkxNV9ESVNQQVRDSF9TRUNVUkUpOwotCWlmIChlcnIpCi0JCWdvdG8gZXJyX3VucGluOwotCi0JaWYgKHNvLmF1eF9zaXplID4gOCkgewotCQllcnIgPSBlbmdpbmUtPmVtaXRfYmJfc3RhcnQocnEsCi0JCQkJCSAgICBzby5hdXhfb2Zmc2V0LCBzby5hdXhfc2l6ZSwKLQkJCQkJICAgIEk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKLQkJaWYgKGVycikKLQkJCWdvdG8gZXJyX3VucGluOwotCX0KLQotCWk5MTVfdm1hX2xvY2soc28udm1hKTsKLQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShzby52bWEsIHJxLCAwKTsKLQlpOTE1X3ZtYV91bmxvY2soc28udm1hKTsKLWVycl91bnBpbjoKLQlpOTE1X3ZtYV91bnBpbihzby52bWEpOwotZXJyX3ZtYToKLQlpOTE1X3ZtYV9jbG9zZShzby52bWEpOwotZXJyX29iajoKLQlpOTE1X2dlbV9vYmplY3RfcHV0KHNvLm9iaik7Ci0JcmV0dXJuIGVycjsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMmNkYTguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IMKpIDIwMTQgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCi0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKi8KLQotI2lmbmRlZiBfSTkxNV9HRU1fUkVOREVSX1NUQVRFX0hfCi0jZGVmaW5lIF9JOTE1X0dFTV9SRU5ERVJfU1RBVEVfSF8KLQotc3RydWN0IGk5MTVfcmVxdWVzdDsKLQotaW50IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9lbWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKTsKLQotI2VuZGlmIC8qIF9JOTE1X0dFTV9SRU5ERVJfU1RBVEVfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2V0cGFyYW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2V0cGFyYW0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDkxMDEzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZXRwYXJhbS5jCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICovCisKKyNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfdXNlci5oIgorCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKworaW50IGk5MTVfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShkZXYpOworCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhpOTE1KS0+c3NldTsKKwlkcm1faTkxNV9nZXRwYXJhbV90ICpwYXJhbSA9IGRhdGE7CisJaW50IHZhbHVlOworCisJc3dpdGNoIChwYXJhbS0+cGFyYW0pIHsKKwljYXNlIEk5MTVfUEFSQU1fSVJRX0FDVElWRToKKwljYXNlIEk5MTVfUEFSQU1fQUxMT1dfQkFUQ0hCVUZGRVI6CisJY2FzZSBJOTE1X1BBUkFNX0xBU1RfRElTUEFUQ0g6CisJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0NPTlNUQU5UUzoKKwkJLyogUmVqZWN0IGFsbCBvbGQgdW1zL2RyaSBwYXJhbXMuICovCisJCXJldHVybiAtRU5PREVWOworCWNhc2UgSTkxNV9QQVJBTV9DSElQU0VUX0lEOgorCQl2YWx1ZSA9IGk5MTUtPmRybS5wZGV2LT5kZXZpY2U7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9SRVZJU0lPTjoKKwkJdmFsdWUgPSBpOTE1LT5kcm0ucGRldi0+cmV2aXNpb247CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9OVU1fRkVOQ0VTX0FWQUlMOgorCQl2YWx1ZSA9IGk5MTUtPmdndHQubnVtX2ZlbmNlczsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19PVkVSTEFZOgorCQl2YWx1ZSA9ICEhaTkxNS0+b3ZlcmxheTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19CU0Q6CisJCXZhbHVlID0gISFpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoaTkxNSwKKwkJCQkJCSAgIEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPLCAwKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19CTFQ6CisJCXZhbHVlID0gISFpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoaTkxNSwKKwkJCQkJCSAgIEk5MTVfRU5HSU5FX0NMQVNTX0NPUFksIDApOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX1ZFQk9YOgorCQl2YWx1ZSA9ICEhaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKGk5MTUsCisJCQkJCQkgICBJOTE1X0VOR0lORV9DTEFTU19WSURFT19FTkhBTkNFLCAwKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19CU0QyOgorCQl2YWx1ZSA9ICEhaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKGk5MTUsCisJCQkJCQkgICBJOTE1X0VOR0lORV9DTEFTU19WSURFTywgMSk7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9IQVNfTExDOgorCQl2YWx1ZSA9IEhBU19MTEMoaTkxNSk7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9IQVNfV1Q6CisJCXZhbHVlID0gSEFTX1dUKGk5MTUpOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0FMSUFTSU5HX1BQR1RUOgorCQl2YWx1ZSA9IElOVEVMX1BQR1RUKGk5MTUpOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX1NFTUFQSE9SRVM6CisJCXZhbHVlID0gISEoaTkxNS0+Y2Fwcy5zY2hlZHVsZXIgJiBJOTE1X1NDSEVEVUxFUl9DQVBfU0VNQVBIT1JFUyk7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9IQVNfU0VDVVJFX0JBVENIRVM6CisJCXZhbHVlID0gY2FwYWJsZShDQVBfU1lTX0FETUlOKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0NNRF9QQVJTRVJfVkVSU0lPTjoKKwkJdmFsdWUgPSBpOTE1X2NtZF9wYXJzZXJfZ2V0X3ZlcnNpb24oaTkxNSk7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9TVUJTTElDRV9UT1RBTDoKKwkJdmFsdWUgPSBpbnRlbF9zc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpOworCQlpZiAoIXZhbHVlKQorCQkJcmV0dXJuIC1FTk9ERVY7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9FVV9UT1RBTDoKKwkJdmFsdWUgPSBzc2V1LT5ldV90b3RhbDsKKwkJaWYgKCF2YWx1ZSkKKwkJCXJldHVybiAtRU5PREVWOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0dQVV9SRVNFVDoKKwkJdmFsdWUgPSBpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrICYmCisJCQlpbnRlbF9oYXNfZ3B1X3Jlc2V0KGk5MTUpOworCQlpZiAodmFsdWUgJiYgaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShpOTE1KSkKKwkJCXZhbHVlID0gMjsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19SRVNPVVJDRV9TVFJFQU1FUjoKKwkJdmFsdWUgPSAwOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX1BPT0xFRF9FVToKKwkJdmFsdWUgPSBIQVNfUE9PTEVEX0VVKGk5MTUpOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fTUlOX0VVX0lOX1BPT0w6CisJCXZhbHVlID0gc3NldS0+bWluX2V1X2luX3Bvb2w7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9IVUNfU1RBVFVTOgorCQl2YWx1ZSA9IGludGVsX2h1Y19jaGVja19zdGF0dXMoJmk5MTUtPmd0LnVjLmh1Yyk7CisJCWlmICh2YWx1ZSA8IDApCisJCQlyZXR1cm4gdmFsdWU7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9NTUFQX0dUVF9WRVJTSU9OOgorCQkvKiBUaG91Z2ggd2UndmUgc3RhcnRlZCBvdXIgbnVtYmVyaW5nIGZyb20gMSwgYW5kIHNvIGNsYXNzIGFsbAorCQkgKiBlYXJsaWVyIHZlcnNpb25zIGFzIDAsIGluIGVmZmVjdCB0aGVpciB2YWx1ZSBpcyB1bmRlZmluZWQgYXMKKwkJICogdGhlIGlvY3RsIHdpbGwgcmVwb3J0IEVJTlZBTCBmb3IgdGhlIHVua25vd24gcGFyYW0hCisJCSAqLworCQl2YWx1ZSA9IGk5MTVfZ2VtX21tYXBfZ3R0X3ZlcnNpb24oKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19TQ0hFRFVMRVI6CisJCXZhbHVlID0gaTkxNS0+Y2Fwcy5zY2hlZHVsZXI7CisJCWJyZWFrOworCisJY2FzZSBJOTE1X1BBUkFNX01NQVBfVkVSU0lPTjoKKwkJLyogUmVtZW1iZXIgdG8gYnVtcCB0aGlzIGlmIHRoZSB2ZXJzaW9uIGNoYW5nZXMhICovCisJY2FzZSBJOTE1X1BBUkFNX0hBU19HRU06CisJY2FzZSBJOTE1X1BBUkFNX0hBU19QQUdFRkxJUFBJTkc6CisJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDQlVGMjogLyogZGVwZW5kcyBvbiBHRU0gKi8KKwljYXNlIEk5MTVfUEFSQU1fSEFTX1JFTEFYRURfRkVOQ0lORzoKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0NPSEVSRU5UX1JJTkdTOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfUkVMQVhFRF9ERUxUQToKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0dFTjdfU09MX1JFU0VUOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfV0FJVF9USU1FT1VUOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfUFJJTUVfVk1BUF9GTFVTSDoKKwljYXNlIEk5MTVfUEFSQU1fSEFTX1BJTk5FRF9CQVRDSEVTOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19OT19SRUxPQzoKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfSEFORExFX0xVVDoKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0NPSEVSRU5UX1BIWVNfR1RUOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19TT0ZUUElOOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19BU1lOQzoKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfRkVOQ0U6CisJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0NBUFRVUkU6CisJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0JBVENIX0ZJUlNUOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19GRU5DRV9BUlJBWToKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfU1VCTUlUX0ZFTkNFOgorCQkvKiBGb3IgdGhlIHRpbWUgYmVpbmcgYWxsIG9mIHRoZXNlIGFyZSBhbHdheXMgdHJ1ZTsKKwkJICogaWYgc29tZSBzdXBwb3J0ZWQgaGFyZHdhcmUgZG9lcyBub3QgaGF2ZSBvbmUgb2YgdGhlc2UKKwkJICogZmVhdHVyZXMgdGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBwcm92aWRlZCBmcm9tCisJCSAqIElOVEVMX0lORk8oKSwgYSBmZWF0dXJlIG1hY3JvLCBvciBzaW1pbGFyLgorCQkgKi8KKwkJdmFsdWUgPSAxOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0NPTlRFWFRfSVNPTEFUSU9OOgorCQl2YWx1ZSA9IGludGVsX2VuZ2luZXNfaGFzX2NvbnRleHRfaXNvbGF0aW9uKGk5MTUpOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fU0xJQ0VfTUFTSzoKKwkJdmFsdWUgPSBzc2V1LT5zbGljZV9tYXNrOworCQlpZiAoIXZhbHVlKQorCQkJcmV0dXJuIC1FTk9ERVY7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9TVUJTTElDRV9NQVNLOgorCQl2YWx1ZSA9IHNzZXUtPnN1YnNsaWNlX21hc2tbMF07CisJCWlmICghdmFsdWUpCisJCQlyZXR1cm4gLUVOT0RFVjsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0NTX1RJTUVTVEFNUF9GUkVRVUVOQ1k6CisJCXZhbHVlID0gMTAwMCAqIFJVTlRJTUVfSU5GTyhpOTE1KS0+Y3NfdGltZXN0YW1wX2ZyZXF1ZW5jeV9raHo7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9NTUFQX0dUVF9DT0hFUkVOVDoKKwkJdmFsdWUgPSBJTlRFTF9JTkZPKGk5MTUpLT5oYXNfY29oZXJlbnRfZ2d0dDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJRFJNX0RFQlVHKCJVbmtub3duIHBhcmFtZXRlciAlZFxuIiwgcGFyYW0tPnBhcmFtKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHB1dF91c2VyKHZhbHVlLCBwYXJhbS0+dmFsdWUpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nbG9iYWxzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuYwppbmRleCAyZDVmY2JhLi5iZTEyN2NkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuYwpAQCAtNjIsNiArNjIsNyBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfZ2xvYmFsc19jbGVhbnVwKHZvaWQpCiAKIHN0YXRpYyBfX2luaXRjb25zdCBpbnQgKCogY29uc3QgaW5pdGZuW10pKHZvaWQpID0gewogCWk5MTVfZ2xvYmFsX2FjdGl2ZV9pbml0LAorCWk5MTVfZ2xvYmFsX2J1ZGR5X2luaXQsCiAJaTkxNV9nbG9iYWxfY29udGV4dF9pbml0LAogCWk5MTVfZ2xvYmFsX2dlbV9jb250ZXh0X2luaXQsCiAJaTkxNV9nbG9iYWxfb2JqZWN0c19pbml0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nbG9iYWxzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuaAppbmRleCAwNGMxY2UxLi5iMmY1Y2Q5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuaApAQCAtNyw2ICs3LDggQEAKICNpZm5kZWYgX0k5MTVfR0xPQkFMU19IXwogI2RlZmluZSBfSTkxNV9HTE9CQUxTX0hfCiAKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCiB0eXBlZGVmIHZvaWQgKCppOTE1X2dsb2JhbF9mdW5jX3QpKHZvaWQpOwogCiBzdHJ1Y3QgaTkxNV9nbG9iYWwgewpAQCAtMjUsNiArMjcsNyBAQCB2b2lkIGk5MTVfZ2xvYmFsc19leGl0KHZvaWQpOwogCiAvKiBjb25zdHJ1Y3RvcnMgKi8KIGludCBpOTE1X2dsb2JhbF9hY3RpdmVfaW5pdCh2b2lkKTsKK2ludCBpOTE1X2dsb2JhbF9idWRkeV9pbml0KHZvaWQpOwogaW50IGk5MTVfZ2xvYmFsX2NvbnRleHRfaW5pdCh2b2lkKTsKIGludCBpOTE1X2dsb2JhbF9nZW1fY29udGV4dF9pbml0KHZvaWQpOwogaW50IGk5MTVfZ2xvYmFsX29iamVjdHNfaW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCmluZGV4IDhiYzc2ZmMuLmUyODRiZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVkZSA8bGludXgvYXNjaWk4NS5oPgogI2luY2x1ZGUgPGxpbnV4L25taS5oPgorI2luY2x1ZGUgPGxpbnV4L3BhZ2V2ZWMuaD4KICNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgotI2luY2x1ZGUgPGxpbnV4L3N0b3BfbWFjaGluZS5oPgogI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KICNpbmNsdWRlIDxsaW51eC96bGliLmg+CiAKQEAgLTQzLDQ5ICs0MywxMiBAQAogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dwdV9lcnJvci5oIgorI2luY2x1ZGUgImk5MTVfbWVtY3B5LmgiCiAjaW5jbHVkZSAiaTkxNV9zY2F0dGVybGlzdC5oIgogI2luY2x1ZGUgImludGVsX2Nzci5oIgogCi1zdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKgotZW5naW5lX2xvb2t1cChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IGlkKQotewotCWlmIChpZCA+PSBJOTE1X05VTV9FTkdJTkVTKQotCQlyZXR1cm4gTlVMTDsKLQotCXJldHVybiBpOTE1LT5lbmdpbmVbaWRdOwotfQotCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKgotX19lbmdpbmVfbmFtZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0JcmV0dXJuIGVuZ2luZSA/IGVuZ2luZS0+bmFtZSA6ICIiOwotfQotCi1zdGF0aWMgY29uc3QgY2hhciAqCi1lbmdpbmVfbmFtZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IGlkKQotewotCXJldHVybiBfX2VuZ2luZV9uYW1lKGVuZ2luZV9sb29rdXAoaTkxNSwgaWQpKTsKLX0KLQotc3RhdGljIGNvbnN0IGNoYXIgKnRpbGluZ19mbGFnKGludCB0aWxpbmcpCi17Ci0Jc3dpdGNoICh0aWxpbmcpIHsKLQlkZWZhdWx0OgotCWNhc2UgSTkxNV9USUxJTkdfTk9ORTogcmV0dXJuICIiOwotCWNhc2UgSTkxNV9USUxJTkdfWDogcmV0dXJuICIgWCI7Ci0JY2FzZSBJOTE1X1RJTElOR19ZOiByZXR1cm4gIiBZIjsKLQl9Ci19Ci0KLXN0YXRpYyBjb25zdCBjaGFyICpkaXJ0eV9mbGFnKGludCBkaXJ0eSkKLXsKLQlyZXR1cm4gZGlydHkgPyAiIGRpcnR5IiA6ICIiOwotfQotCi1zdGF0aWMgY29uc3QgY2hhciAqcHVyZ2VhYmxlX2ZsYWcoaW50IHB1cmdlYWJsZSkKLXsKLQlyZXR1cm4gcHVyZ2VhYmxlID8gIiBwdXJnZWFibGUiIDogIiI7Ci19CisjZGVmaW5lIEFMTE9XX0ZBSUwgKEdGUF9LRVJORUwgfCBfX0dGUF9SRVRSWV9NQVlGQUlMIHwgX19HRlBfTk9XQVJOKQorI2RlZmluZSBBVE9NSUNfTUFZRkFJTCAoR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTikKIAogc3RhdGljIHZvaWQgX19zZ19zZXRfYnVmKHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCiAJCQkgdm9pZCAqYWRkciwgdW5zaWduZWQgaW50IGxlbiwgbG9mZl90IGl0KQpAQCAtMTE0LDcgKzc3LDcgQEAgc3RhdGljIGJvb2wgX19pOTE1X2Vycm9yX2dyb3coc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqZSwgc2l6ZV90IGxlbikKIAlpZiAoZS0+Y3VyID09IGUtPmVuZCkgewogCQlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbDsKIAotCQlzZ2wgPSAodHlwZW9mKHNnbCkpX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwpOworCQlzZ2wgPSAodHlwZW9mKHNnbCkpX19nZXRfZnJlZV9wYWdlKEFMTE9XX0ZBSUwpOwogCQlpZiAoIXNnbCkgewogCQkJZS0+ZXJyID0gLUVOT01FTTsKIAkJCXJldHVybiBmYWxzZTsKQEAgLTEzNCw3ICs5Nyw3IEBAIHN0YXRpYyBib29sIF9faTkxNV9lcnJvcl9ncm93KHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKmUsIHNpemVfdCBsZW4pCiAJfQogCiAJZS0+c2l6ZSA9IEFMSUdOKGxlbiArIDEsIFNaXzY0Syk7Ci0JZS0+YnVmID0ga21hbGxvYyhlLT5zaXplLCBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOIHwgX19HRlBfTk9SRVRSWSk7CisJZS0+YnVmID0ga21hbGxvYyhlLT5zaXplLCBBTExPV19GQUlMKTsKIAlpZiAoIWUtPmJ1ZikgewogCQllLT5zaXplID0gUEFHRV9BTElHTihsZW4gKyAxKTsKIAkJZS0+YnVmID0ga21hbGxvYyhlLT5zaXplLCBHRlBfS0VSTkVMKTsKQEAgLTIxMSw0NyArMTc0LDExNSBAQCBpOTE1X2Vycm9yX3ByaW50ZXIoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqZSkKIAlyZXR1cm4gcDsKIH0KIAorLyogc2luZ2xlIHRocmVhZGVkIHBhZ2UgYWxsb2NhdG9yIHdpdGggYSByZXNlcnZlZCBzdGFzaCBmb3IgZW1lcmdlbmNpZXMgKi8KK3N0YXRpYyB2b2lkIHBvb2xfZmluaShzdHJ1Y3QgcGFnZXZlYyAqcHYpCit7CisJcGFnZXZlY19yZWxlYXNlKHB2KTsKK30KKworc3RhdGljIGludCBwb29sX3JlZmlsbChzdHJ1Y3QgcGFnZXZlYyAqcHYsIGdmcF90IGdmcCkKK3sKKwl3aGlsZSAocGFnZXZlY19zcGFjZShwdikpIHsKKwkJc3RydWN0IHBhZ2UgKnA7CisKKwkJcCA9IGFsbG9jX3BhZ2UoZ2ZwKTsKKwkJaWYgKCFwKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJcGFnZXZlY19hZGQocHYsIHApOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBvb2xfaW5pdChzdHJ1Y3QgcGFnZXZlYyAqcHYsIGdmcF90IGdmcCkKK3sKKwlpbnQgZXJyOworCisJcGFnZXZlY19pbml0KHB2KTsKKworCWVyciA9IHBvb2xfcmVmaWxsKHB2LCBnZnApOworCWlmIChlcnIpCisJCXBvb2xfZmluaShwdik7CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgdm9pZCAqcG9vbF9hbGxvYyhzdHJ1Y3QgcGFnZXZlYyAqcHYsIGdmcF90IGdmcCkKK3sKKwlzdHJ1Y3QgcGFnZSAqcDsKKworCXAgPSBhbGxvY19wYWdlKGdmcCk7CisJaWYgKCFwICYmIHBhZ2V2ZWNfY291bnQocHYpKQorCQlwID0gcHYtPnBhZ2VzWy0tcHYtPm5yXTsKKworCXJldHVybiBwID8gcGFnZV9hZGRyZXNzKHApIDogTlVMTDsKK30KKworc3RhdGljIHZvaWQgcG9vbF9mcmVlKHN0cnVjdCBwYWdldmVjICpwdiwgdm9pZCAqYWRkcikKK3sKKwlzdHJ1Y3QgcGFnZSAqcCA9IHZpcnRfdG9fcGFnZShhZGRyKTsKKworCWlmIChwYWdldmVjX3NwYWNlKHB2KSkKKwkJcGFnZXZlY19hZGQocHYsIHApOworCWVsc2UKKwkJX19mcmVlX3BhZ2UocCk7Cit9CisKICNpZmRlZiBDT05GSUdfRFJNX0k5MTVfQ09NUFJFU1NfRVJST1IKIAogc3RydWN0IGNvbXByZXNzIHsKKwlzdHJ1Y3QgcGFnZXZlYyBwb29sOwogCXN0cnVjdCB6X3N0cmVhbV9zIHpzdHJlYW07CiAJdm9pZCAqdG1wOwogfTsKIAogc3RhdGljIGJvb2wgY29tcHJlc3NfaW5pdChzdHJ1Y3QgY29tcHJlc3MgKmMpCiB7Ci0Jc3RydWN0IHpfc3RyZWFtX3MgKnpzdHJlYW0gPSBtZW1zZXQoJmMtPnpzdHJlYW0sIDAsIHNpemVvZihjLT56c3RyZWFtKSk7CisJc3RydWN0IHpfc3RyZWFtX3MgKnpzdHJlYW0gPSAmYy0+enN0cmVhbTsKKworCWlmIChwb29sX2luaXQoJmMtPnBvb2wsIEFMTE9XX0ZBSUwpKQorCQlyZXR1cm4gZmFsc2U7CiAKIAl6c3RyZWFtLT53b3Jrc3BhY2UgPQogCQlrbWFsbG9jKHpsaWJfZGVmbGF0ZV93b3Jrc3BhY2VzaXplKE1BWF9XQklUUywgTUFYX01FTV9MRVZFTCksCi0JCQlHRlBfQVRPTUlDIHwgX19HRlBfTk9XQVJOKTsKLQlpZiAoIXpzdHJlYW0tPndvcmtzcGFjZSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JaWYgKHpsaWJfZGVmbGF0ZUluaXQoenN0cmVhbSwgWl9ERUZBVUxUX0NPTVBSRVNTSU9OKSAhPSBaX09LKSB7Ci0JCWtmcmVlKHpzdHJlYW0tPndvcmtzcGFjZSk7CisJCQlBTExPV19GQUlMKTsKKwlpZiAoIXpzdHJlYW0tPndvcmtzcGFjZSkgeworCQlwb29sX2ZpbmkoJmMtPnBvb2wpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJYy0+dG1wID0gTlVMTDsKIAlpZiAoaTkxNV9oYXNfbWVtY3B5X2Zyb21fd2MoKSkKLQkJYy0+dG1wID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTik7CisJCWMtPnRtcCA9IHBvb2xfYWxsb2MoJmMtPnBvb2wsIEFMTE9XX0ZBSUwpOwogCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkICpjb21wcmVzc19uZXh0X3BhZ2Uoc3RydWN0IGRybV9pOTE1X2Vycm9yX29iamVjdCAqZHN0KQorc3RhdGljIGJvb2wgY29tcHJlc3Nfc3RhcnQoc3RydWN0IGNvbXByZXNzICpjKQogewotCXVuc2lnbmVkIGxvbmcgcGFnZTsKKwlzdHJ1Y3Qgel9zdHJlYW1fcyAqenN0cmVhbSA9ICZjLT56c3RyZWFtOworCXZvaWQgKndvcmtzcGFjZSA9IHpzdHJlYW0tPndvcmtzcGFjZTsKKworCW1lbXNldCh6c3RyZWFtLCAwLCBzaXplb2YoKnpzdHJlYW0pKTsKKwl6c3RyZWFtLT53b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CisKKwlyZXR1cm4gemxpYl9kZWZsYXRlSW5pdCh6c3RyZWFtLCBaX0RFRkFVTFRfQ09NUFJFU1NJT04pID09IFpfT0s7Cit9CisKK3N0YXRpYyB2b2lkICpjb21wcmVzc19uZXh0X3BhZ2Uoc3RydWN0IGNvbXByZXNzICpjLAorCQkJCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKmRzdCkKK3sKKwl2b2lkICpwYWdlOwogCiAJaWYgKGRzdC0+cGFnZV9jb3VudCA+PSBkc3QtPm51bV9wYWdlcykKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT1NQQyk7CiAKLQlwYWdlID0gX19nZXRfZnJlZV9wYWdlKEdGUF9BVE9NSUMgfCBfX0dGUF9OT1dBUk4pOworCXBhZ2UgPSBwb29sX2FsbG9jKCZjLT5wb29sLCBBTExPV19GQUlMKTsKIAlpZiAoIXBhZ2UpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JcmV0dXJuIGRzdC0+cGFnZXNbZHN0LT5wYWdlX2NvdW50KytdID0gKHZvaWQgKilwYWdlOworCXJldHVybiBkc3QtPnBhZ2VzW2RzdC0+cGFnZV9jb3VudCsrXSA9IHBhZ2U7CiB9CiAKIHN0YXRpYyBpbnQgY29tcHJlc3NfcGFnZShzdHJ1Y3QgY29tcHJlc3MgKmMsCkBAIC0yNjcsNyArMjk4LDcgQEAgc3RhdGljIGludCBjb21wcmVzc19wYWdlKHN0cnVjdCBjb21wcmVzcyAqYywKIAogCWRvIHsKIAkJaWYgKHpzdHJlYW0tPmF2YWlsX291dCA9PSAwKSB7Ci0JCQl6c3RyZWFtLT5uZXh0X291dCA9IGNvbXByZXNzX25leHRfcGFnZShkc3QpOworCQkJenN0cmVhbS0+bmV4dF9vdXQgPSBjb21wcmVzc19uZXh0X3BhZ2UoYywgZHN0KTsKIAkJCWlmIChJU19FUlIoenN0cmVhbS0+bmV4dF9vdXQpKQogCQkJCXJldHVybiBQVFJfRVJSKHpzdHJlYW0tPm5leHRfb3V0KTsKIApAQCAtMjc2LDggKzMwNyw2IEBAIHN0YXRpYyBpbnQgY29tcHJlc3NfcGFnZShzdHJ1Y3QgY29tcHJlc3MgKmMsCiAKIAkJaWYgKHpsaWJfZGVmbGF0ZSh6c3RyZWFtLCBaX05PX0ZMVVNIKSAhPSBaX09LKQogCQkJcmV0dXJuIC1FSU87Ci0KLQkJdG91Y2hfbm1pX3dhdGNoZG9nKCk7CiAJfSB3aGlsZSAoenN0cmVhbS0+YXZhaWxfaW4pOwogCiAJLyogRmFsbGJhY2sgdG8gdW5jb21wcmVzc2VkIGlmIHdlIGluY3JlYXNlIHNpemU/ICovCkBAIC0yOTUsNyArMzI0LDcgQEAgc3RhdGljIGludCBjb21wcmVzc19mbHVzaChzdHJ1Y3QgY29tcHJlc3MgKmMsCiAJZG8gewogCQlzd2l0Y2ggKHpsaWJfZGVmbGF0ZSh6c3RyZWFtLCBaX0ZJTklTSCkpIHsKIAkJY2FzZSBaX09LOiAvKiBtb3JlIHNwYWNlIHJlcXVlc3RlZCAqLwotCQkJenN0cmVhbS0+bmV4dF9vdXQgPSBjb21wcmVzc19uZXh0X3BhZ2UoZHN0KTsKKwkJCXpzdHJlYW0tPm5leHRfb3V0ID0gY29tcHJlc3NfbmV4dF9wYWdlKGMsIGRzdCk7CiAJCQlpZiAoSVNfRVJSKHpzdHJlYW0tPm5leHRfb3V0KSkKIAkJCQlyZXR1cm4gUFRSX0VSUih6c3RyZWFtLT5uZXh0X291dCk7CiAKQEAgLTMxNiwxNSArMzQ1LDE3IEBAIHN0YXRpYyBpbnQgY29tcHJlc3NfZmx1c2goc3RydWN0IGNvbXByZXNzICpjLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBjb21wcmVzc19maW5pKHN0cnVjdCBjb21wcmVzcyAqYywKLQkJCSAgc3RydWN0IGRybV9pOTE1X2Vycm9yX29iamVjdCAqZHN0KQorc3RhdGljIHZvaWQgY29tcHJlc3NfZmluaXNoKHN0cnVjdCBjb21wcmVzcyAqYykKIHsKLQlzdHJ1Y3Qgel9zdHJlYW1fcyAqenN0cmVhbSA9ICZjLT56c3RyZWFtOworCXpsaWJfZGVmbGF0ZUVuZCgmYy0+enN0cmVhbSk7Cit9CiAKLQl6bGliX2RlZmxhdGVFbmQoenN0cmVhbSk7Ci0Ja2ZyZWUoenN0cmVhbS0+d29ya3NwYWNlKTsKK3N0YXRpYyB2b2lkIGNvbXByZXNzX2Zpbmkoc3RydWN0IGNvbXByZXNzICpjKQoreworCWtmcmVlKGMtPnpzdHJlYW0ud29ya3NwYWNlKTsKIAlpZiAoYy0+dG1wKQotCQlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpYy0+dG1wKTsKKwkJcG9vbF9mcmVlKCZjLT5wb29sLCBjLT50bXApOworCXBvb2xfZmluaSgmYy0+cG9vbCk7CiB9CiAKIHN0YXRpYyB2b2lkIGVycl9jb21wcmVzc2lvbl9tYXJrZXIoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSkKQEAgLTMzNSwxMCArMzY2LDE2IEBAIHN0YXRpYyB2b2lkIGVycl9jb21wcmVzc2lvbl9tYXJrZXIoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSkKICNlbHNlCiAKIHN0cnVjdCBjb21wcmVzcyB7CisJc3RydWN0IHBhZ2V2ZWMgcG9vbDsKIH07CiAKIHN0YXRpYyBib29sIGNvbXByZXNzX2luaXQoc3RydWN0IGNvbXByZXNzICpjKQogeworCXJldHVybiBwb29sX2luaXQoJmMtPnBvb2wsIEFMTE9XX0ZBSUwpID09IDA7Cit9CisKK3N0YXRpYyBib29sIGNvbXByZXNzX3N0YXJ0KHN0cnVjdCBjb21wcmVzcyAqYykKK3sKIAlyZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMzQ2LDE0ICszODMsMTIgQEAgc3RhdGljIGludCBjb21wcmVzc19wYWdlKHN0cnVjdCBjb21wcmVzcyAqYywKIAkJCSB2b2lkICpzcmMsCiAJCQkgc3RydWN0IGRybV9pOTE1X2Vycm9yX29iamVjdCAqZHN0KQogewotCXVuc2lnbmVkIGxvbmcgcGFnZTsKIAl2b2lkICpwdHI7CiAKLQlwYWdlID0gX19nZXRfZnJlZV9wYWdlKEdGUF9BVE9NSUMgfCBfX0dGUF9OT1dBUk4pOwotCWlmICghcGFnZSkKKwlwdHIgPSBwb29sX2FsbG9jKCZjLT5wb29sLCBBTExPV19GQUlMKTsKKwlpZiAoIXB0cikKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlwdHIgPSAodm9pZCAqKXBhZ2U7CiAJaWYgKCFpOTE1X21lbWNweV9mcm9tX3djKHB0ciwgc3JjLCBQQUdFX1NJWkUpKQogCQltZW1jcHkocHRyLCBzcmMsIFBBR0VfU0laRSk7CiAJZHN0LT5wYWdlc1tkc3QtPnBhZ2VfY291bnQrK10gPSBwdHI7CkBAIC0zNjcsMTEgKzQwMiwxNSBAQCBzdGF0aWMgaW50IGNvbXByZXNzX2ZsdXNoKHN0cnVjdCBjb21wcmVzcyAqYywKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgY29tcHJlc3NfZmluaShzdHJ1Y3QgY29tcHJlc3MgKmMsCi0JCQkgIHN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKmRzdCkKK3N0YXRpYyB2b2lkIGNvbXByZXNzX2ZpbmlzaChzdHJ1Y3QgY29tcHJlc3MgKmMpCiB7CiB9CiAKK3N0YXRpYyB2b2lkIGNvbXByZXNzX2Zpbmkoc3RydWN0IGNvbXByZXNzICpjKQoreworCXBvb2xfZmluaSgmYy0+cG9vbCk7Cit9CisKIHN0YXRpYyB2b2lkIGVycl9jb21wcmVzc2lvbl9tYXJrZXIoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSkKIHsKIAllcnJfcHV0cyhtLCAifiIpOwpAQCAtMzc5LDM2ICs0MTgsNiBAQCBzdGF0aWMgdm9pZCBlcnJfY29tcHJlc3Npb25fbWFya2VyKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0pCiAKICNlbmRpZgogCi1zdGF0aWMgdm9pZCBwcmludF9lcnJvcl9idWZmZXJzKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCi0JCQkJY29uc3QgY2hhciAqbmFtZSwKLQkJCQlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfYnVmZmVyICplcnIsCi0JCQkJaW50IGNvdW50KQotewotCWVycl9wcmludGYobSwgIiVzIFslZF06XG4iLCBuYW1lLCBjb3VudCk7Ci0KLQl3aGlsZSAoY291bnQtLSkgewotCQllcnJfcHJpbnRmKG0sICIgICAgJTA4eF8lMDh4ICU4dSAlMDJ4ICUwMngiLAotCQkJICAgdXBwZXJfMzJfYml0cyhlcnItPmd0dF9vZmZzZXQpLAotCQkJICAgbG93ZXJfMzJfYml0cyhlcnItPmd0dF9vZmZzZXQpLAotCQkJICAgZXJyLT5zaXplLAotCQkJICAgZXJyLT5yZWFkX2RvbWFpbnMsCi0JCQkgICBlcnItPndyaXRlX2RvbWFpbik7Ci0JCWVycl9wdXRzKG0sIHRpbGluZ19mbGFnKGVyci0+dGlsaW5nKSk7Ci0JCWVycl9wdXRzKG0sIGRpcnR5X2ZsYWcoZXJyLT5kaXJ0eSkpOwotCQllcnJfcHV0cyhtLCBwdXJnZWFibGVfZmxhZyhlcnItPnB1cmdlYWJsZSkpOwotCQllcnJfcHV0cyhtLCBlcnItPnVzZXJwdHIgPyAiIHVzZXJwdHIiIDogIiIpOwotCQllcnJfcHV0cyhtLCBpOTE1X2NhY2hlX2xldmVsX3N0cihtLT5pOTE1LCBlcnItPmNhY2hlX2xldmVsKSk7Ci0KLQkJaWYgKGVyci0+bmFtZSkKLQkJCWVycl9wcmludGYobSwgIiAobmFtZTogJWQpIiwgZXJyLT5uYW1lKTsKLQkJaWYgKGVyci0+ZmVuY2VfcmVnICE9IEk5MTVfRkVOQ0VfUkVHX05PTkUpCi0JCQllcnJfcHJpbnRmKG0sICIgKGZlbmNlOiAlZCkiLCBlcnItPmZlbmNlX3JlZyk7Ci0KLQkJZXJyX3B1dHMobSwgIlxuIik7Ci0JCWVycisrOwotCX0KLX0KLQogc3RhdGljIHZvaWQgZXJyb3JfcHJpbnRfaW5zdGRvbmUoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAkJCQkgY29uc3Qgc3RydWN0IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWUpCiB7CkBAIC00MTgsNyArNDI3LDcgQEAgc3RhdGljIHZvaWQgZXJyb3JfcHJpbnRfaW5zdGRvbmUoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAllcnJfcHJpbnRmKG0sICIgIElOU1RET05FOiAweCUwOHhcbiIsCiAJCSAgIGVlLT5pbnN0ZG9uZS5pbnN0ZG9uZSk7CiAKLQlpZiAoZWUtPmVuZ2luZV9pZCAhPSBSQ1MwIHx8IElOVEVMX0dFTihtLT5pOTE1KSA8PSAzKQorCWlmIChlZS0+ZW5naW5lLT5jbGFzcyAhPSBSRU5ERVJfQ0xBU1MgfHwgSU5URUxfR0VOKG0tPmk5MTUpIDw9IDMpCiAJCXJldHVybjsKIAogCWVycl9wcmludGYobSwgIiAgU0NfSU5TVERPTkU6IDB4JTA4eFxuIiwKQEAgLTQ3Miw4ICs0ODEsNyBAQCBzdGF0aWMgdm9pZCBlcnJvcl9wcmludF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIHsKIAlpbnQgbjsKIAotCWVycl9wcmludGYobSwgIiVzIGNvbW1hbmQgc3RyZWFtOlxuIiwKLQkJICAgZW5naW5lX25hbWUobS0+aTkxNSwgZWUtPmVuZ2luZV9pZCkpOworCWVycl9wcmludGYobSwgIiVzIGNvbW1hbmQgc3RyZWFtOlxuIiwgZWUtPmVuZ2luZS0+bmFtZSk7CiAJZXJyX3ByaW50ZihtLCAiICBJRExFPzogJXNcbiIsIHllc25vKGVlLT5pZGxlKSk7CiAJZXJyX3ByaW50ZihtLCAiICBTVEFSVDogMHglMDh4XG4iLCBlZS0+c3RhcnQpOwogCWVycl9wcmludGYobSwgIiAgSEVBRDogIDB4JTA4eCBbMHglMDh4XVxuIiwgZWUtPmhlYWQsIGVlLT5ycV9oZWFkKTsKQEAgLTU0OSw5ICs1NTcsOSBAQCB2b2lkIGk5MTVfZXJyb3JfcHJpbnRmKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKmUsIGNvbnN0IGNoYXIgKmYsIC4uLikKIH0KIAogc3RhdGljIHZvaWQgcHJpbnRfZXJyb3Jfb2JqKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCi0JCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCSAgICBjb25zdCBjaGFyICpuYW1lLAotCQkJICAgIHN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKm9iaikKKwkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfb2JqZWN0ICpvYmopCiB7CiAJY2hhciBvdXRbQVNDSUk4NV9CVUZTWl07CiAJaW50IHBhZ2U7CkBAIC02MjAsNyArNjI4LDcgQEAgc3RhdGljIHZvaWQgZXJyX3ByaW50X3VjKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJY29uc3Qgc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvciA9CiAJCWNvbnRhaW5lcl9vZihlcnJvcl91YywgdHlwZW9mKCplcnJvciksIHVjKTsKIAotCWlmICghZXJyb3ItPmRldmljZV9pbmZvLmhhc19ndWMpCisJaWYgKCFlcnJvci0+ZGV2aWNlX2luZm8uaGFzX2d0X3VjKQogCQlyZXR1cm47CiAKIAlpbnRlbF91Y19md19kdW1wKCZlcnJvcl91Yy0+Z3VjX2Z3LCAmcCk7CkBAIC02NDgsNyArNjU2LDcgQEAgc3RhdGljIHZvaWQgZXJyX2ZyZWVfc2dsKHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsKQogc3RhdGljIHZvaWQgX19lcnJfcHJpbnRfdG9fc2dsKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJCQkgICAgICAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfb2JqZWN0ICpvYmo7CisJY29uc3Qgc3RydWN0IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWU7CiAJc3RydWN0IHRpbWVzcGVjNjQgdHM7CiAJaW50IGksIGo7CiAKQEAgLTY1Nyw2ICs2NjUsNyBAQCBzdGF0aWMgdm9pZCBfX2Vycl9wcmludF90b19zZ2woc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAllcnJfcHJpbnRmKG0sICJLZXJuZWw6ICVzICVzXG4iLAogCQkgICBpbml0X3V0c25hbWUoKS0+cmVsZWFzZSwKIAkJICAgaW5pdF91dHNuYW1lKCktPm1hY2hpbmUpOworCWVycl9wcmludGYobSwgIkRyaXZlcjogJXNcbiIsIERSSVZFUl9EQVRFKTsKIAl0cyA9IGt0aW1lX3RvX3RpbWVzcGVjNjQoZXJyb3ItPnRpbWUpOwogCWVycl9wcmludGYobSwgIlRpbWU6ICVsbGQgcyAlbGQgdXNcbiIsCiAJCSAgIChzNjQpdHMudHZfc2VjLCB0cy50dl9uc2VjIC8gTlNFQ19QRVJfVVNFQyk7CkBAIC02NzIsMTUgKzY4MSwxMiBAQCBzdGF0aWMgdm9pZCBfX2Vycl9wcmludF90b19zZ2woc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAkJICAgamlmZmllc190b19tc2VjcyhqaWZmaWVzIC0gZXJyb3ItPmNhcHR1cmUpLAogCQkgICBqaWZmaWVzX3RvX21zZWNzKGVycm9yLT5jYXB0dXJlIC0gZXJyb3ItPmVwb2NoKSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShlcnJvci0+ZW5naW5lKTsgaSsrKSB7Ci0JCWlmICghZXJyb3ItPmVuZ2luZVtpXS5jb250ZXh0LnBpZCkKLQkJCWNvbnRpbnVlOwotCisJZm9yIChlZSA9IGVycm9yLT5lbmdpbmU7IGVlOyBlZSA9IGVlLT5uZXh0KQogCQllcnJfcHJpbnRmKG0sICJBY3RpdmUgcHJvY2VzcyAob24gcmluZyAlcyk6ICVzIFslZF1cbiIsCi0JCQkgICBlbmdpbmVfbmFtZShtLT5pOTE1LCBpKSwKLQkJCSAgIGVycm9yLT5lbmdpbmVbaV0uY29udGV4dC5jb21tLAotCQkJICAgZXJyb3ItPmVuZ2luZVtpXS5jb250ZXh0LnBpZCk7Ci0JfQorCQkJICAgZWUtPmVuZ2luZS0+bmFtZSwKKwkJCSAgIGVlLT5jb250ZXh0LmNvbW0sCisJCQkgICBlZS0+Y29udGV4dC5waWQpOworCiAJZXJyX3ByaW50ZihtLCAiUmVzZXQgY291bnQ6ICV1XG4iLCBlcnJvci0+cmVzZXRfY291bnQpOwogCWVycl9wcmludGYobSwgIlN1c3BlbmQgY291bnQ6ICV1XG4iLCBlcnJvci0+c3VzcGVuZF9jb3VudCk7CiAJZXJyX3ByaW50ZihtLCAiUGxhdGZvcm06ICVzXG4iLCBpbnRlbF9wbGF0Zm9ybV9uYW1lKGVycm9yLT5kZXZpY2VfaW5mby5wbGF0Zm9ybSkpOwpAQCAtNzE2LDU3ICs3MjIsMjcgQEAgc3RhdGljIHZvaWQgX19lcnJfcHJpbnRfdG9fc2dsKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJZm9yIChpID0gMDsgaSA8IGVycm9yLT5uZmVuY2U7IGkrKykKIAkJZXJyX3ByaW50ZihtLCAiICBmZW5jZVslZF0gPSAlMDhsbHhcbiIsIGksIGVycm9yLT5mZW5jZVtpXSk7CiAKLQlpZiAoSU5URUxfR0VOKG0tPmk5MTUpID49IDYpIHsKKwlpZiAoSVNfR0VOX1JBTkdFKG0tPmk5MTUsIDYsIDExKSkgewogCQllcnJfcHJpbnRmKG0sICJFUlJPUjogMHglMDh4XG4iLCBlcnJvci0+ZXJyb3IpOwotCi0JCWlmIChJTlRFTF9HRU4obS0+aTkxNSkgPj0gOCkKLQkJCWVycl9wcmludGYobSwgIkZBVUxUX1RMQl9EQVRBOiAweCUwOHggMHglMDh4XG4iLAotCQkJCSAgIGVycm9yLT5mYXVsdF9kYXRhMSwgZXJyb3ItPmZhdWx0X2RhdGEwKTsKLQogCQllcnJfcHJpbnRmKG0sICJET05FX1JFRzogMHglMDh4XG4iLCBlcnJvci0+ZG9uZV9yZWcpOwogCX0KIAorCWlmIChJTlRFTF9HRU4obS0+aTkxNSkgPj0gOCkKKwkJZXJyX3ByaW50ZihtLCAiRkFVTFRfVExCX0RBVEE6IDB4JTA4eCAweCUwOHhcbiIsCisJCQkgICBlcnJvci0+ZmF1bHRfZGF0YTEsIGVycm9yLT5mYXVsdF9kYXRhMCk7CisKIAlpZiAoSVNfR0VOKG0tPmk5MTUsIDcpKQogCQllcnJfcHJpbnRmKG0sICJFUlJfSU5UOiAweCUwOHhcbiIsIGVycm9yLT5lcnJfaW50KTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGVycm9yLT5lbmdpbmUpOyBpKyspIHsKLQkJaWYgKGVycm9yLT5lbmdpbmVbaV0uZW5naW5lX2lkICE9IC0xKQotCQkJZXJyb3JfcHJpbnRfZW5naW5lKG0sICZlcnJvci0+ZW5naW5lW2ldLCBlcnJvci0+ZXBvY2gpOwotCX0KKwlmb3IgKGVlID0gZXJyb3ItPmVuZ2luZTsgZWU7IGVlID0gZWUtPm5leHQpCisJCWVycm9yX3ByaW50X2VuZ2luZShtLCBlZSwgZXJyb3ItPmVwb2NoKTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGVycm9yLT5hY3RpdmVfdm0pOyBpKyspIHsKLQkJY2hhciBidWZbMTI4XTsKLQkJaW50IGxlbiwgZmlyc3QgPSAxOwotCi0JCWlmICghZXJyb3ItPmFjdGl2ZV92bVtpXSkKLQkJCWJyZWFrOwotCi0JCWxlbiA9IHNjbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiQWN0aXZlICgiKTsKLQkJZm9yIChqID0gMDsgaiA8IEFSUkFZX1NJWkUoZXJyb3ItPmVuZ2luZSk7IGorKykgewotCQkJaWYgKGVycm9yLT5lbmdpbmVbal0udm0gIT0gZXJyb3ItPmFjdGl2ZV92bVtpXSkKLQkJCQljb250aW51ZTsKLQotCQkJbGVuICs9IHNjbnByaW50ZihidWYgKyBsZW4sIHNpemVvZihidWYpLCAiJXMlcyIsCi0JCQkJCSBmaXJzdCA/ICIiIDogIiwgIiwKLQkJCQkJIG0tPmk5MTUtPmVuZ2luZVtqXS0+bmFtZSk7Ci0JCQlmaXJzdCA9IDA7Ci0JCX0KLQkJc2NucHJpbnRmKGJ1ZiArIGxlbiwgc2l6ZW9mKGJ1ZiksICIpIik7Ci0JCXByaW50X2Vycm9yX2J1ZmZlcnMobSwgYnVmLAotCQkJCSAgICBlcnJvci0+YWN0aXZlX2JvW2ldLAotCQkJCSAgICBlcnJvci0+YWN0aXZlX2JvX2NvdW50W2ldKTsKLQl9Ci0KLQlwcmludF9lcnJvcl9idWZmZXJzKG0sICJQaW5uZWQgKGdsb2JhbCkiLAotCQkJICAgIGVycm9yLT5waW5uZWRfYm8sCi0JCQkgICAgZXJyb3ItPnBpbm5lZF9ib19jb3VudCk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShlcnJvci0+ZW5naW5lKTsgaSsrKSB7Ci0JCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9lcnJvcl9lbmdpbmUgKmVlID0gJmVycm9yLT5lbmdpbmVbaV07CisJZm9yIChlZSA9IGVycm9yLT5lbmdpbmU7IGVlOyBlZSA9IGVlLT5uZXh0KSB7CisJCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKm9iajsKIAogCQlvYmogPSBlZS0+YmF0Y2hidWZmZXI7CiAJCWlmIChvYmopIHsKLQkJCWVycl9wdXRzKG0sIG0tPmk5MTUtPmVuZ2luZVtpXS0+bmFtZSk7CisJCQllcnJfcHV0cyhtLCBlZS0+ZW5naW5lLT5uYW1lKTsKIAkJCWlmIChlZS0+Y29udGV4dC5waWQpCiAJCQkJZXJyX3ByaW50ZihtLCAiIChzdWJtaXR0ZWQgYnkgJXMgWyVkXSkiLAogCQkJCQkgICBlZS0+Y29udGV4dC5jb21tLApAQCAtNzc0LDE2ICs3NTAsMTUgQEAgc3RhdGljIHZvaWQgX19lcnJfcHJpbnRfdG9fc2dsKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJCQllcnJfcHJpbnRmKG0sICIgLS0tIGd0dF9vZmZzZXQgPSAweCUwOHggJTA4eFxuIiwKIAkJCQkgICB1cHBlcl8zMl9iaXRzKG9iai0+Z3R0X29mZnNldCksCiAJCQkJICAgbG93ZXJfMzJfYml0cyhvYmotPmd0dF9vZmZzZXQpKTsKLQkJCXByaW50X2Vycm9yX29iaihtLCBtLT5pOTE1LT5lbmdpbmVbaV0sIE5VTEwsIG9iaik7CisJCQlwcmludF9lcnJvcl9vYmoobSwgZWUtPmVuZ2luZSwgTlVMTCwgb2JqKTsKIAkJfQogCiAJCWZvciAoaiA9IDA7IGogPCBlZS0+dXNlcl9ib19jb3VudDsgaisrKQotCQkJcHJpbnRfZXJyb3Jfb2JqKG0sIG0tPmk5MTUtPmVuZ2luZVtpXSwKLQkJCQkJInVzZXIiLCBlZS0+dXNlcl9ib1tqXSk7CisJCQlwcmludF9lcnJvcl9vYmoobSwgZWUtPmVuZ2luZSwgInVzZXIiLCBlZS0+dXNlcl9ib1tqXSk7CiAKIAkJaWYgKGVlLT5udW1fcmVxdWVzdHMpIHsKIAkJCWVycl9wcmludGYobSwgIiVzIC0tLSAlZCByZXF1ZXN0c1xuIiwKLQkJCQkgICBtLT5pOTE1LT5lbmdpbmVbaV0tPm5hbWUsCisJCQkJICAgZWUtPmVuZ2luZS0+bmFtZSwKIAkJCQkgICBlZS0+bnVtX3JlcXVlc3RzKTsKIAkJCWZvciAoaiA9IDA7IGogPCBlZS0+bnVtX3JlcXVlc3RzOyBqKyspCiAJCQkJZXJyb3JfcHJpbnRfcmVxdWVzdChtLCAiICIsCkBAIC03OTEsMjIgKzc2NiwxMyBAQCBzdGF0aWMgdm9pZCBfX2Vycl9wcmludF90b19zZ2woc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAkJCQkJCSAgICBlcnJvci0+ZXBvY2gpOwogCQl9CiAKLQkJcHJpbnRfZXJyb3Jfb2JqKG0sIG0tPmk5MTUtPmVuZ2luZVtpXSwKLQkJCQkicmluZ2J1ZmZlciIsIGVlLT5yaW5nYnVmZmVyKTsKLQotCQlwcmludF9lcnJvcl9vYmoobSwgbS0+aTkxNS0+ZW5naW5lW2ldLAotCQkJCSJIVyBTdGF0dXMiLCBlZS0+aHdzX3BhZ2UpOwotCi0JCXByaW50X2Vycm9yX29iaihtLCBtLT5pOTE1LT5lbmdpbmVbaV0sCi0JCQkJIkhXIGNvbnRleHQiLCBlZS0+Y3R4KTsKLQotCQlwcmludF9lcnJvcl9vYmoobSwgbS0+aTkxNS0+ZW5naW5lW2ldLAotCQkJCSJXQSBjb250ZXh0IiwgZWUtPndhX2N0eCk7Ci0KLQkJcHJpbnRfZXJyb3Jfb2JqKG0sIG0tPmk5MTUtPmVuZ2luZVtpXSwKKwkJcHJpbnRfZXJyb3Jfb2JqKG0sIGVlLT5lbmdpbmUsICJyaW5nYnVmZmVyIiwgZWUtPnJpbmdidWZmZXIpOworCQlwcmludF9lcnJvcl9vYmoobSwgZWUtPmVuZ2luZSwgIkhXIFN0YXR1cyIsIGVlLT5od3NfcGFnZSk7CisJCXByaW50X2Vycm9yX29iaihtLCBlZS0+ZW5naW5lLCAiSFcgY29udGV4dCIsIGVlLT5jdHgpOworCQlwcmludF9lcnJvcl9vYmoobSwgZWUtPmVuZ2luZSwgIldBIGNvbnRleHQiLCBlZS0+d2FfY3R4KTsKKwkJcHJpbnRfZXJyb3Jfb2JqKG0sIGVlLT5lbmdpbmUsCiAJCQkJIldBIGJhdGNoYnVmZmVyIiwgZWUtPndhX2JhdGNoYnVmZmVyKTsKLQotCQlwcmludF9lcnJvcl9vYmoobSwgbS0+aTkxNS0+ZW5naW5lW2ldLAorCQlwcmludF9lcnJvcl9vYmoobSwgZWUtPmVuZ2luZSwKIAkJCQkiTlVMTCBjb250ZXh0IiwgZWUtPmRlZmF1bHRfc3RhdGUpOwogCX0KIApAQCAtOTU1LDEzICs5MjEsMTUgQEAgdm9pZCBfX2k5MTVfZ3B1X3N0YXRlX2ZyZWUoc3RydWN0IGtyZWYgKmVycm9yX3JlZikKIHsKIAlzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yID0KIAkJY29udGFpbmVyX29mKGVycm9yX3JlZiwgdHlwZW9mKCplcnJvciksIHJlZik7Ci0JbG9uZyBpLCBqOworCWxvbmcgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGVycm9yLT5lbmdpbmUpOyBpKyspIHsKLQkJc3RydWN0IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWUgPSAmZXJyb3ItPmVuZ2luZVtpXTsKKwl3aGlsZSAoZXJyb3ItPmVuZ2luZSkgeworCQlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfZW5naW5lICplZSA9IGVycm9yLT5lbmdpbmU7CiAKLQkJZm9yIChqID0gMDsgaiA8IGVlLT51c2VyX2JvX2NvdW50OyBqKyspCi0JCQlpOTE1X2Vycm9yX29iamVjdF9mcmVlKGVlLT51c2VyX2JvW2pdKTsKKwkJZXJyb3ItPmVuZ2luZSA9IGVlLT5uZXh0OworCisJCWZvciAoaSA9IDA7IGkgPCBlZS0+dXNlcl9ib19jb3VudDsgaSsrKQorCQkJaTkxNV9lcnJvcl9vYmplY3RfZnJlZShlZS0+dXNlcl9ib1tpXSk7CiAJCWtmcmVlKGVlLT51c2VyX2JvKTsKIAogCQlpOTE1X2Vycm9yX29iamVjdF9mcmVlKGVlLT5iYXRjaGJ1ZmZlcik7CkBAIC05NzIsMTIgKzk0MCw5IEBAIHZvaWQgX19pOTE1X2dwdV9zdGF0ZV9mcmVlKHN0cnVjdCBrcmVmICplcnJvcl9yZWYpCiAJCWk5MTVfZXJyb3Jfb2JqZWN0X2ZyZWUoZWUtPndhX2N0eCk7CiAKIAkJa2ZyZWUoZWUtPnJlcXVlc3RzKTsKKwkJa2ZyZWUoZWUpOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGVycm9yLT5hY3RpdmVfYm8pOyBpKyspCi0JCWtmcmVlKGVycm9yLT5hY3RpdmVfYm9baV0pOwotCWtmcmVlKGVycm9yLT5waW5uZWRfYm8pOwotCiAJa2ZyZWUoZXJyb3ItPm92ZXJsYXkpOwogCWtmcmVlKGVycm9yLT5kaXNwbGF5KTsKIApAQCAtOTkwLDEwOCArOTU1LDYzIEBAIHZvaWQgX19pOTE1X2dwdV9zdGF0ZV9mcmVlKHN0cnVjdCBrcmVmICplcnJvcl9yZWYpCiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfb2JqZWN0ICoKIGk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKKwkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJCSBzdHJ1Y3QgY29tcHJlc3MgKmNvbXByZXNzKQogewogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmaTkxNS0+Z2d0dDsKIAljb25zdCB1NjQgc2xvdCA9IGdndHQtPmVycm9yX2NhcHR1cmUuc3RhcnQ7CiAJc3RydWN0IGRybV9pOTE1X2Vycm9yX29iamVjdCAqZHN0OwotCXN0cnVjdCBjb21wcmVzcyBjb21wcmVzczsKIAl1bnNpZ25lZCBsb25nIG51bV9wYWdlczsKIAlzdHJ1Y3Qgc2d0X2l0ZXIgaXRlcjsKIAlkbWFfYWRkcl90IGRtYTsKIAlpbnQgcmV0OwogCisJbWlnaHRfc2xlZXAoKTsKKwogCWlmICghdm1hIHx8ICF2bWEtPnBhZ2VzKQogCQlyZXR1cm4gTlVMTDsKIAogCW51bV9wYWdlcyA9IG1pbl90KHU2NCwgdm1hLT5zaXplLCB2bWEtPm9iai0+YmFzZS5zaXplKSA+PiBQQUdFX1NISUZUOwogCW51bV9wYWdlcyA9IERJVl9ST1VORF9VUCgxMCAqIG51bV9wYWdlcywgOCk7IC8qIHdvcnN0Y2FzZSB6bGliIGdyb3d0aCAqLwotCWRzdCA9IGttYWxsb2Moc2l6ZW9mKCpkc3QpICsgbnVtX3BhZ2VzICogc2l6ZW9mKHUzMiAqKSwKLQkJICAgICAgR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTik7CisJZHN0ID0ga21hbGxvYyhzaXplb2YoKmRzdCkgKyBudW1fcGFnZXMgKiBzaXplb2YodTMyICopLCBBTExPV19GQUlMKTsKIAlpZiAoIWRzdCkKIAkJcmV0dXJuIE5VTEw7CiAKKwlpZiAoIWNvbXByZXNzX3N0YXJ0KGNvbXByZXNzKSkgeworCQlrZnJlZShkc3QpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKIAlkc3QtPmd0dF9vZmZzZXQgPSB2bWEtPm5vZGUuc3RhcnQ7CiAJZHN0LT5ndHRfc2l6ZSA9IHZtYS0+bm9kZS5zaXplOwogCWRzdC0+bnVtX3BhZ2VzID0gbnVtX3BhZ2VzOwogCWRzdC0+cGFnZV9jb3VudCA9IDA7CiAJZHN0LT51bnVzZWQgPSAwOwogCi0JaWYgKCFjb21wcmVzc19pbml0KCZjb21wcmVzcykpIHsKLQkJa2ZyZWUoZHN0KTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCiAJcmV0ID0gLUVJTlZBTDsKIAlmb3JfZWFjaF9zZ3RfZG1hKGRtYSwgaXRlciwgdm1hLT5wYWdlcykgewogCQl2b2lkIF9faW9tZW0gKnM7CiAKIAkJZ2d0dC0+dm0uaW5zZXJ0X3BhZ2UoJmdndHQtPnZtLCBkbWEsIHNsb3QsIEk5MTVfQ0FDSEVfTk9ORSwgMCk7CiAKLQkJcyA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193YygmZ2d0dC0+aW9tYXAsIHNsb3QpOwotCQlyZXQgPSBjb21wcmVzc19wYWdlKCZjb21wcmVzcywgKHZvaWQgIF9fZm9yY2UgKilzLCBkc3QpOwotCQlpb19tYXBwaW5nX3VubWFwX2F0b21pYyhzKTsKKwkJcyA9IGlvX21hcHBpbmdfbWFwX3djKCZnZ3R0LT5pb21hcCwgc2xvdCwgUEFHRV9TSVpFKTsKKwkJcmV0ID0gY29tcHJlc3NfcGFnZShjb21wcmVzcywgKHZvaWQgIF9fZm9yY2UgKilzLCBkc3QpOworCQlpb19tYXBwaW5nX3VubWFwKHMpOwogCQlpZiAocmV0KQogCQkJYnJlYWs7CiAJfQogCi0JaWYgKHJldCB8fCBjb21wcmVzc19mbHVzaCgmY29tcHJlc3MsIGRzdCkpIHsKKwlpZiAocmV0IHx8IGNvbXByZXNzX2ZsdXNoKGNvbXByZXNzLCBkc3QpKSB7CiAJCXdoaWxlIChkc3QtPnBhZ2VfY291bnQtLSkKLQkJCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylkc3QtPnBhZ2VzW2RzdC0+cGFnZV9jb3VudF0pOworCQkJcG9vbF9mcmVlKCZjb21wcmVzcy0+cG9vbCwgZHN0LT5wYWdlc1tkc3QtPnBhZ2VfY291bnRdKTsKIAkJa2ZyZWUoZHN0KTsKIAkJZHN0ID0gTlVMTDsKIAl9CisJY29tcHJlc3NfZmluaXNoKGNvbXByZXNzKTsKIAotCWNvbXByZXNzX2ZpbmkoJmNvbXByZXNzLCBkc3QpOwogCXJldHVybiBkc3Q7CiB9CiAKLXN0YXRpYyB2b2lkIGNhcHR1cmVfYm8oc3RydWN0IGRybV9pOTE1X2Vycm9yX2J1ZmZlciAqZXJyLAotCQkgICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEpCi17Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwotCi0JZXJyLT5zaXplID0gb2JqLT5iYXNlLnNpemU7Ci0JZXJyLT5uYW1lID0gb2JqLT5iYXNlLm5hbWU7Ci0KLQllcnItPmd0dF9vZmZzZXQgPSB2bWEtPm5vZGUuc3RhcnQ7Ci0JZXJyLT5yZWFkX2RvbWFpbnMgPSBvYmotPnJlYWRfZG9tYWluczsKLQllcnItPndyaXRlX2RvbWFpbiA9IG9iai0+d3JpdGVfZG9tYWluOwotCWVyci0+ZmVuY2VfcmVnID0gdm1hLT5mZW5jZSA/IHZtYS0+ZmVuY2UtPmlkIDogLTE7Ci0JZXJyLT50aWxpbmcgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3RpbGluZyhvYmopOwotCWVyci0+ZGlydHkgPSBvYmotPm1tLmRpcnR5OwotCWVyci0+cHVyZ2VhYmxlID0gb2JqLT5tbS5tYWR2ICE9IEk5MTVfTUFEVl9XSUxMTkVFRDsKLQllcnItPnVzZXJwdHIgPSBvYmotPnVzZXJwdHIubW0gIT0gTlVMTDsKLQllcnItPmNhY2hlX2xldmVsID0gb2JqLT5jYWNoZV9sZXZlbDsKLX0KLQotc3RhdGljIHUzMiBjYXB0dXJlX2Vycm9yX2JvKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIgKmVyciwKLQkJCSAgICBpbnQgY291bnQsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCi0JCQkgICAgdW5zaWduZWQgaW50IGZsYWdzKQotI2RlZmluZSBBQ1RJVkVfT05MWSBCSVQoMCkKLSNkZWZpbmUgUElOTkVEX09OTFkgQklUKDEpCi17Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0JaW50IGkgPSAwOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsIGhlYWQsIHZtX2xpbmspIHsKLQkJaWYgKCF2bWEtPm9iaikKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChmbGFncyAmIEFDVElWRV9PTkxZICYmICFpOTE1X3ZtYV9pc19hY3RpdmUodm1hKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChmbGFncyAmIFBJTk5FRF9PTkxZICYmICFpOTE1X3ZtYV9pc19waW5uZWQodm1hKSkKLQkJCWNvbnRpbnVlOwotCi0JCWNhcHR1cmVfYm8oZXJyKyssIHZtYSk7Ci0JCWlmICgrK2kgPT0gY291bnQpCi0JCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4gaTsKLX0KLQogLyoKICAqIEdlbmVyYXRlIGEgc2VtaS11bmlxdWUgZXJyb3IgY29kZS4gVGhlIGNvZGUgaXMgbm90IG1lYW50IHRvIGhhdmUgbWVhbmluZywgVGhlCiAgKiBjb2RlJ3Mgb25seSBwdXJwb3NlIGlzIHRvIHRyeSB0byBwcmV2ZW50IGZhbHNlIGR1cGxpY2F0ZWQgYnVnIHJlcG9ydHMgYnkKQEAgLTExMDIsMjMgKzEwMjIsMTcgQEAgc3RhdGljIHUzMiBjYXB0dXJlX2Vycm9yX2JvKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIgKmVyciwKICAqCiAgKiBJdCdzIG9ubHkgYSBzbWFsbCBzdGVwIGJldHRlciB0aGFuIGEgcmFuZG9tIG51bWJlciBpbiBpdHMgY3VycmVudCBmb3JtLgogICovCi1zdGF0aWMgdTMyIGk5MTVfZXJyb3JfZ2VuZXJhdGVfY29kZShzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yLAotCQkJCSAgICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrKQorc3RhdGljIHUzMiBpOTE1X2Vycm9yX2dlbmVyYXRlX2NvZGUoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKIHsKKwljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfZW5naW5lICplZSA9IGVycm9yLT5lbmdpbmU7CisKIAkvKgogCSAqIElQRUhSIHdvdWxkIGJlIGFuIGlkZWFsIHdheSB0byBkZXRlY3QgZXJyb3JzLCBhcyBpdCdzIHRoZSBncm9zcwogCSAqIG1lYXN1cmUgb2YgInRoZSBjb21tYW5kIHRoYXQgaHVuZy4iIEhvd2V2ZXIsIGhhcyBzb21lIHZlcnkgY29tbW9uCiAJICogc3luY2hyb25pemF0aW9uIGNvbW1hbmRzIHdoaWNoIGFsbW9zdCBhbHdheXMgYXBwZWFyIGluIHRoZSBjYXNlCiAJICogc3RyaWN0bHkgYSBjbGllbnQgYnVnLiBVc2UgaW5zdGRvbmUgdG8gZGlmZmVyZW50aWF0ZSB0aG9zZSBzb21lLgogCSAqLwotCWlmIChlbmdpbmVfbWFzaykgewotCQlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfZW5naW5lICplZSA9Ci0JCQkmZXJyb3ItPmVuZ2luZVtmZnMoZW5naW5lX21hc2spXTsKLQotCQlyZXR1cm4gZWUtPmlwZWhyIF4gZWUtPmluc3Rkb25lLmluc3Rkb25lOwotCX0KLQotCXJldHVybiAwOworCXJldHVybiBlZSA/IGVlLT5pcGVociBeIGVlLT5pbnN0ZG9uZS5pbnN0ZG9uZSA6IDA7CiB9CiAKIHN0YXRpYyB2b2lkIGdlbV9yZWNvcmRfZmVuY2VzKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCkBAIC0xMTUzLDcgKzEwNjcsMTAgQEAgc3RhdGljIHZvaWQgZXJyb3JfcmVjb3JkX2VuZ2luZV9yZWdpc3RlcnMoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvciwKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpIHsKIAkJZWUtPnJjX3BzbWkgPSBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfUFNNSV9DVEwpOwotCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQorCisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKQorCQkJZWUtPmZhdWx0X3JlZyA9IEk5MTVfUkVBRChHRU4xMl9SSU5HX0ZBVUxUX1JFRyk7CisJCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKIAkJCWVlLT5mYXVsdF9yZWcgPSBJOTE1X1JFQUQoR0VOOF9SSU5HX0ZBVUxUX1JFRyk7CiAJCWVsc2UKIAkJCWVlLT5mYXVsdF9yZWcgPSBHRU42X1JJTkdfRkFVTFRfUkVHX1JFQUQoZW5naW5lKTsKQEAgLTEyNDksMTAgKzExNjYsMTAgQEAgc3RhdGljIHZvaWQgZXJyb3JfcmVjb3JkX2VuZ2luZV9yZWdpc3RlcnMoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvciwKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIHJlY29yZF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsCitzdGF0aWMgdm9pZCByZWNvcmRfcmVxdWVzdChjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAogCQkJICAgc3RydWN0IGRybV9pOTE1X2Vycm9yX3JlcXVlc3QgKmVycSkKIHsKLQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0gcmVxdWVzdC0+Z2VtX2NvbnRleHQ7CisJY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IHJlcXVlc3QtPmdlbV9jb250ZXh0OwogCiAJZXJxLT5mbGFncyA9IHJlcXVlc3QtPmZlbmNlLmZsYWdzOwogCWVycS0+Y29udGV4dCA9IHJlcXVlc3QtPmZlbmNlLmNvbnRleHQ7CkBAIC0xMjgyLDcgKzExOTksNyBAQCBzdGF0aWMgdm9pZCBlbmdpbmVfcmVjb3JkX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpZiAoIWNvdW50KQogCQlyZXR1cm47CiAKLQllZS0+cmVxdWVzdHMgPSBrY2FsbG9jKGNvdW50LCBzaXplb2YoKmVlLT5yZXF1ZXN0cyksIEdGUF9BVE9NSUMpOworCWVlLT5yZXF1ZXN0cyA9IGtjYWxsb2MoY291bnQsIHNpemVvZigqZWUtPnJlcXVlc3RzKSwgQVRPTUlDX01BWUZBSUwpOwogCWlmICghZWUtPnJlcXVlc3RzKQogCQlyZXR1cm47CiAKQEAgLTEzMTYsMjcgKzEyMzMsMjQgQEAgc3RhdGljIHZvaWQgZW5naW5lX3JlY29yZF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJZWUtPm51bV9yZXF1ZXN0cyA9IGNvdW50OwogfQogCi1zdGF0aWMgdm9pZCBlcnJvcl9yZWNvcmRfZW5naW5lX2V4ZWNsaXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCitzdGF0aWMgdm9pZCBlcnJvcl9yZWNvcmRfZW5naW5lX2V4ZWNsaXN0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkJCSAgc3RydWN0IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWUpCiB7CiAJY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7Ci0JdW5zaWduZWQgaW50IG47CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqIGNvbnN0ICpwb3J0ID0gZXhlY2xpc3RzLT5hY3RpdmU7CisJdW5zaWduZWQgaW50IG4gPSAwOwogCi0JZm9yIChuID0gMDsgbiA8IGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKTsgbisrKSB7Ci0JCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxID0gcG9ydF9yZXF1ZXN0KCZleGVjbGlzdHMtPnBvcnRbbl0pOwotCi0JCWlmICghcnEpCi0JCQlicmVhazsKLQotCQlyZWNvcmRfcmVxdWVzdChycSwgJmVlLT5leGVjbGlzdFtuXSk7Ci0JfQorCXdoaWxlICgqcG9ydCkKKwkJcmVjb3JkX3JlcXVlc3QoKnBvcnQrKywgJmVlLT5leGVjbGlzdFtuKytdKTsKIAogCWVlLT5udW1fcG9ydHMgPSBuOwogfQogCi1zdGF0aWMgdm9pZCByZWNvcmRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfY29udGV4dCAqZSwKLQkJCSAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCitzdGF0aWMgYm9vbCByZWNvcmRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfY29udGV4dCAqZSwKKwkJCSAgIGNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogeworCWNvbnN0IHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHggPSBycS0+Z2VtX2NvbnRleHQ7CisKIAlpZiAoY3R4LT5waWQpIHsKIAkJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwogCkBAIC0xMzUzLDEwICsxMjY3LDQ2IEBAIHN0YXRpYyB2b2lkIHJlY29yZF9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9lcnJvcl9jb250ZXh0ICplLAogCWUtPnNjaGVkX2F0dHIgPSBjdHgtPnNjaGVkOwogCWUtPmd1aWx0eSA9IGF0b21pY19yZWFkKCZjdHgtPmd1aWx0eV9jb3VudCk7CiAJZS0+YWN0aXZlID0gYXRvbWljX3JlYWQoJmN0eC0+YWN0aXZlX2NvdW50KTsKKworCXJldHVybiBpOTE1X2dlbV9jb250ZXh0X25vX2Vycm9yX2NhcHR1cmUoY3R4KTsKIH0KIAotc3RhdGljIHZvaWQgcmVxdWVzdF9yZWNvcmRfdXNlcl9ibyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAotCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9lcnJvcl9lbmdpbmUgKmVlKQorc3RydWN0IGNhcHR1cmVfdm1hIHsKKwlzdHJ1Y3QgY2FwdHVyZV92bWEgKm5leHQ7CisJdm9pZCAqKnNsb3Q7Cit9OworCitzdGF0aWMgc3RydWN0IGNhcHR1cmVfdm1hICoKK2NhcHR1cmVfdm1hKHN0cnVjdCBjYXB0dXJlX3ZtYSAqbmV4dCwKKwkgICAgc3RydWN0IGk5MTVfdm1hICp2bWEsCisJICAgIHN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKipvdXQpCit7CisJc3RydWN0IGNhcHR1cmVfdm1hICpjOworCisJKm91dCA9IE5VTEw7CisJaWYgKCF2bWEpCisJCXJldHVybiBuZXh0OworCisJYyA9IGttYWxsb2Moc2l6ZW9mKCpjKSwgQVRPTUlDX01BWUZBSUwpOworCWlmICghYykKKwkJcmV0dXJuIG5leHQ7CisKKwlpZiAoIWk5MTVfYWN0aXZlX3RyeWdyYWIoJnZtYS0+YWN0aXZlKSkgeworCQlrZnJlZShjKTsKKwkJcmV0dXJuIG5leHQ7CisJfQorCisJYy0+c2xvdCA9ICh2b2lkICoqKW91dDsKKwkqYy0+c2xvdCA9IGk5MTVfdm1hX2dldCh2bWEpOworCisJYy0+bmV4dCA9IG5leHQ7CisJcmV0dXJuIGM7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2FwdHVyZV92bWEgKgorcmVxdWVzdF9yZWNvcmRfdXNlcl9ibyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAorCQkgICAgICAgc3RydWN0IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWUsCisJCSAgICAgICBzdHJ1Y3QgY2FwdHVyZV92bWEgKmNhcHR1cmUpCiB7CiAJc3RydWN0IGk5MTVfY2FwdHVyZV9saXN0ICpjOwogCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKipibzsKQEAgLTEzNjYsMzMgKzEzMTYsMzQgQEAgc3RhdGljIHZvaWQgcmVxdWVzdF9yZWNvcmRfdXNlcl9ibyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAogCWZvciAoYyA9IHJlcXVlc3QtPmNhcHR1cmVfbGlzdDsgYzsgYyA9IGMtPm5leHQpCiAJCW1heCsrOwogCWlmICghbWF4KQotCQlyZXR1cm47CisJCXJldHVybiBjYXB0dXJlOwogCi0JYm8gPSBrbWFsbG9jX2FycmF5KG1heCwgc2l6ZW9mKCpibyksIEdGUF9BVE9NSUMpOworCWJvID0ga21hbGxvY19hcnJheShtYXgsIHNpemVvZigqYm8pLCBBVE9NSUNfTUFZRkFJTCk7CiAJaWYgKCFibykgewogCQkvKiBJZiB3ZSBjYW4ndCBjYXB0dXJlIGV2ZXJ5dGhpbmcsIHRyeSB0byBjYXB0dXJlIHNvbWV0aGluZy4gKi8KIAkJbWF4ID0gbWluX3QobG9uZywgbWF4LCBQQUdFX1NJWkUgLyBzaXplb2YoKmJvKSk7Ci0JCWJvID0ga21hbGxvY19hcnJheShtYXgsIHNpemVvZigqYm8pLCBHRlBfQVRPTUlDKTsKKwkJYm8gPSBrbWFsbG9jX2FycmF5KG1heCwgc2l6ZW9mKCpibyksIEFUT01JQ19NQVlGQUlMKTsKIAl9CiAJaWYgKCFibykKLQkJcmV0dXJuOworCQlyZXR1cm4gY2FwdHVyZTsKIAogCWNvdW50ID0gMDsKIAlmb3IgKGMgPSByZXF1ZXN0LT5jYXB0dXJlX2xpc3Q7IGM7IGMgPSBjLT5uZXh0KSB7Ci0JCWJvW2NvdW50XSA9IGk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShyZXF1ZXN0LT5pOTE1LCBjLT52bWEpOwotCQlpZiAoIWJvW2NvdW50XSkKLQkJCWJyZWFrOworCQljYXB0dXJlID0gY2FwdHVyZV92bWEoY2FwdHVyZSwgYy0+dm1hLCAmYm9bY291bnRdKTsKIAkJaWYgKCsrY291bnQgPT0gbWF4KQogCQkJYnJlYWs7CiAJfQogCiAJZWUtPnVzZXJfYm8gPSBibzsKIAllZS0+dXNlcl9ib19jb3VudCA9IGNvdW50OworCisJcmV0dXJuIGNhcHR1cmU7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfb2JqZWN0ICoKIGNhcHR1cmVfb2JqZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKKwkgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkgICAgICAgc3RydWN0IGNvbXByZXNzICpjb21wcmVzcykKIHsKIAlpZiAob2JqICYmIGk5MTVfZ2VtX29iamVjdF9oYXNfcGFnZXMob2JqKSkgewogCQlzdHJ1Y3QgaTkxNV92bWEgZmFrZSA9IHsKQEAgLTE0MDIsMTgwICsxMzUzLDE0MCBAQCBjYXB0dXJlX29iamVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkub2JqID0gb2JqLAogCQl9OwogCi0JCXJldHVybiBpOTE1X2Vycm9yX29iamVjdF9jcmVhdGUoZGV2X3ByaXYsICZmYWtlKTsKKwkJcmV0dXJuIGk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwgJmZha2UsIGNvbXByZXNzKTsKIAl9IGVsc2UgewogCQlyZXR1cm4gTlVMTDsKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGdlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKK3N0YXRpYyB2b2lkCitnZW1fcmVjb3JkX3JpbmdzKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IsIHN0cnVjdCBjb21wcmVzcyAqY29tcHJlc3MpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlcnJvci0+aTkxNTsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmk5MTUtPmdndHQ7Ci0JaW50IGk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9lbmdpbmUgKmVlOwogCi0JZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykgewotCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBpOTE1LT5lbmdpbmVbaV07Ci0JCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9lbmdpbmUgKmVlID0gJmVycm9yLT5lbmdpbmVbaV07CisJZWUgPSBremFsbG9jKHNpemVvZigqZWUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWVlKQorCQlyZXR1cm47CisKKwlmb3JfZWFjaF91YWJpX2VuZ2luZShlbmdpbmUsIGk5MTUpIHsKKwkJc3RydWN0IGNhcHR1cmVfdm1hICpjYXB0dXJlID0gTlVMTDsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdDsKIAkJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCQllZS0+ZW5naW5lX2lkID0gLTE7CisJCS8qIFJlZmlsbCBvdXIgcGFnZSBwb29sIGJlZm9yZSBlbnRlcmluZyBhdG9taWMgc2VjdGlvbiAqLworCQlwb29sX3JlZmlsbCgmY29tcHJlc3MtPnBvb2wsIEFMTE9XX0ZBSUwpOwogCi0JCWlmICghZW5naW5lKQorCQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOworCQlyZXF1ZXN0ID0gaW50ZWxfZW5naW5lX2ZpbmRfYWN0aXZlX3JlcXVlc3QoZW5naW5lKTsKKwkJaWYgKCFyZXF1ZXN0KSB7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAJCQljb250aW51ZTsKKwkJfQogCi0JCWVlLT5lbmdpbmVfaWQgPSBpOworCQllcnJvci0+c2ltdWxhdGVkIHw9IHJlY29yZF9jb250ZXh0KCZlZS0+Y29udGV4dCwgcmVxdWVzdCk7CisKKwkJLyoKKwkJICogV2UgbmVlZCB0byBjb3B5IHRoZXNlIHRvIGFuIGFub255bW91cyBidWZmZXIKKwkJICogYXMgdGhlIHNpbXBsZXN0IG1ldGhvZCB0byBhdm9pZCBiZWluZyBvdmVyd3JpdHRlbgorCQkgKiBieSB1c2Vyc3BhY2UuCisJCSAqLworCQljYXB0dXJlID0gY2FwdHVyZV92bWEoY2FwdHVyZSwKKwkJCQkgICAgICByZXF1ZXN0LT5iYXRjaCwKKwkJCQkgICAgICAmZWUtPmJhdGNoYnVmZmVyKTsKKworCQlpZiAoSEFTX0JST0tFTl9DU19UTEIoaTkxNSkpCisJCQljYXB0dXJlID0gY2FwdHVyZV92bWEoY2FwdHVyZSwKKwkJCQkJICAgICAgZW5naW5lLT5ndC0+c2NyYXRjaCwKKwkJCQkJICAgICAgJmVlLT53YV9iYXRjaGJ1ZmZlcik7CisKKwkJY2FwdHVyZSA9IHJlcXVlc3RfcmVjb3JkX3VzZXJfYm8ocmVxdWVzdCwgZWUsIGNhcHR1cmUpOworCisJCWNhcHR1cmUgPSBjYXB0dXJlX3ZtYShjYXB0dXJlLAorCQkJCSAgICAgIHJlcXVlc3QtPmh3X2NvbnRleHQtPnN0YXRlLAorCQkJCSAgICAgICZlZS0+Y3R4KTsKKworCQljYXB0dXJlID0gY2FwdHVyZV92bWEoY2FwdHVyZSwKKwkJCQkgICAgICByZXF1ZXN0LT5yaW5nLT52bWEsCisJCQkJICAgICAgJmVlLT5yaW5nYnVmZmVyKTsKKworCQllZS0+Y3B1X3JpbmdfaGVhZCA9IHJlcXVlc3QtPnJpbmctPmhlYWQ7CisJCWVlLT5jcHVfcmluZ190YWlsID0gcmVxdWVzdC0+cmluZy0+dGFpbDsKKworCQllZS0+cnFfaGVhZCA9IHJlcXVlc3QtPmhlYWQ7CisJCWVlLT5ycV9wb3N0ID0gcmVxdWVzdC0+cG9zdGZpeDsKKwkJZWUtPnJxX3RhaWwgPSByZXF1ZXN0LT50YWlsOworCisJCWVuZ2luZV9yZWNvcmRfcmVxdWVzdHMoZW5naW5lLCByZXF1ZXN0LCBlZSk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAogCQllcnJvcl9yZWNvcmRfZW5naW5lX3JlZ2lzdGVycyhlcnJvciwgZW5naW5lLCBlZSk7CiAJCWVycm9yX3JlY29yZF9lbmdpbmVfZXhlY2xpc3RzKGVuZ2luZSwgZWUpOwogCi0JCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Ci0JCXJlcXVlc3QgPSBpbnRlbF9lbmdpbmVfZmluZF9hY3RpdmVfcmVxdWVzdChlbmdpbmUpOwotCQlpZiAocmVxdWVzdCkgewotCQkJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IHJlcXVlc3QtPmdlbV9jb250ZXh0OwotCQkJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOworCQl3aGlsZSAoY2FwdHVyZSkgeworCQkJc3RydWN0IGNhcHR1cmVfdm1hICp0aGlzID0gY2FwdHVyZTsKKwkJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hID0gKnRoaXMtPnNsb3Q7CiAKLQkJCWVlLT52bSA9IGN0eC0+dm0gPzogJmdndHQtPnZtOworCQkJKnRoaXMtPnNsb3QgPQorCQkJCWk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShpOTE1LCB2bWEsIGNvbXByZXNzKTsKIAotCQkJcmVjb3JkX2NvbnRleHQoJmVlLT5jb250ZXh0LCBjdHgpOworCQkJaTkxNV9hY3RpdmVfdW5ncmFiKCZ2bWEtPmFjdGl2ZSk7CisJCQlpOTE1X3ZtYV9wdXQodm1hKTsKIAotCQkJLyogV2UgbmVlZCB0byBjb3B5IHRoZXNlIHRvIGFuIGFub255bW91cyBidWZmZXIKLQkJCSAqIGFzIHRoZSBzaW1wbGVzdCBtZXRob2QgdG8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4KLQkJCSAqIGJ5IHVzZXJzcGFjZS4KLQkJCSAqLwotCQkJZWUtPmJhdGNoYnVmZmVyID0KLQkJCQlpOTE1X2Vycm9yX29iamVjdF9jcmVhdGUoaTkxNSwgcmVxdWVzdC0+YmF0Y2gpOwotCi0JCQlpZiAoSEFTX0JST0tFTl9DU19UTEIoaTkxNSkpCi0JCQkJZWUtPndhX2JhdGNoYnVmZmVyID0KLQkJCQkJaTkxNV9lcnJvcl9vYmplY3RfY3JlYXRlKGk5MTUsCi0JCQkJCQkJCSBpOTE1LT5ndC5zY3JhdGNoKTsKLQkJCXJlcXVlc3RfcmVjb3JkX3VzZXJfYm8ocmVxdWVzdCwgZWUpOwotCi0JCQllZS0+Y3R4ID0KLQkJCQlpOTE1X2Vycm9yX29iamVjdF9jcmVhdGUoaTkxNSwKLQkJCQkJCQkgcmVxdWVzdC0+aHdfY29udGV4dC0+c3RhdGUpOwotCi0JCQllcnJvci0+c2ltdWxhdGVkIHw9Ci0JCQkJaTkxNV9nZW1fY29udGV4dF9ub19lcnJvcl9jYXB0dXJlKGN0eCk7Ci0KLQkJCWVlLT5ycV9oZWFkID0gcmVxdWVzdC0+aGVhZDsKLQkJCWVlLT5ycV9wb3N0ID0gcmVxdWVzdC0+cG9zdGZpeDsKLQkJCWVlLT5ycV90YWlsID0gcmVxdWVzdC0+dGFpbDsKLQotCQkJZWUtPmNwdV9yaW5nX2hlYWQgPSByaW5nLT5oZWFkOwotCQkJZWUtPmNwdV9yaW5nX3RhaWwgPSByaW5nLT50YWlsOwotCQkJZWUtPnJpbmdidWZmZXIgPQotCQkJCWk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShpOTE1LCByaW5nLT52bWEpOwotCi0JCQllbmdpbmVfcmVjb3JkX3JlcXVlc3RzKGVuZ2luZSwgcmVxdWVzdCwgZWUpOworCQkJY2FwdHVyZSA9IHRoaXMtPm5leHQ7CisJCQlrZnJlZSh0aGlzKTsKIAkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAKIAkJZWUtPmh3c19wYWdlID0KIAkJCWk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShpOTE1LAotCQkJCQkJIGVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKTsKKwkJCQkJCSBlbmdpbmUtPnN0YXR1c19wYWdlLnZtYSwKKwkJCQkJCSBjb21wcmVzcyk7CiAKLQkJZWUtPndhX2N0eCA9IGk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShpOTE1LCBlbmdpbmUtPndhX2N0eC52bWEpOworCQllZS0+d2FfY3R4ID0KKwkJCWk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShpOTE1LAorCQkJCQkJIGVuZ2luZS0+d2FfY3R4LnZtYSwKKwkJCQkJCSBjb21wcmVzcyk7CiAKLQkJZWUtPmRlZmF1bHRfc3RhdGUgPSBjYXB0dXJlX29iamVjdChpOTE1LCBlbmdpbmUtPmRlZmF1bHRfc3RhdGUpOworCQllZS0+ZGVmYXVsdF9zdGF0ZSA9CisJCQljYXB0dXJlX29iamVjdChpOTE1LCBlbmdpbmUtPmRlZmF1bHRfc3RhdGUsIGNvbXByZXNzKTsKKworCQllZS0+ZW5naW5lID0gZW5naW5lOworCisJCWVlLT5uZXh0ID0gZXJyb3ItPmVuZ2luZTsKKwkJZXJyb3ItPmVuZ2luZSA9IGVlOworCisJCWVlID0ga3phbGxvYyhzaXplb2YoKmVlKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghZWUpCisJCQlyZXR1cm47CiAJfQorCisJa2ZyZWUoZWUpOwogfQogCi1zdGF0aWMgdm9pZCBnZW1fY2FwdHVyZV92bShzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yLAotCQkJICAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0JCQkgICBpbnQgaWR4KQotewotCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIgKmFjdGl2ZV9ibzsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQlpbnQgY291bnQ7Ci0KLQljb3VudCA9IDA7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZ2bS0+Ym91bmRfbGlzdCwgdm1fbGluaykKLQkJaWYgKGk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKQotCQkJY291bnQrKzsKLQotCWFjdGl2ZV9ibyA9IE5VTEw7Ci0JaWYgKGNvdW50KQotCQlhY3RpdmVfYm8gPSBrY2FsbG9jKGNvdW50LCBzaXplb2YoKmFjdGl2ZV9ibyksIEdGUF9BVE9NSUMpOwotCWlmIChhY3RpdmVfYm8pCi0JCWNvdW50ID0gY2FwdHVyZV9lcnJvcl9ibyhhY3RpdmVfYm8sCi0JCQkJCSBjb3VudCwgJnZtLT5ib3VuZF9saXN0LAotCQkJCQkgQUNUSVZFX09OTFkpOwotCWVsc2UKLQkJY291bnQgPSAwOwotCi0JZXJyb3ItPmFjdGl2ZV92bVtpZHhdID0gdm07Ci0JZXJyb3ItPmFjdGl2ZV9ib1tpZHhdID0gYWN0aXZlX2JvOwotCWVycm9yLT5hY3RpdmVfYm9fY291bnRbaWR4XSA9IGNvdW50OwotfQotCi1zdGF0aWMgdm9pZCBjYXB0dXJlX2FjdGl2ZV9idWZmZXJzKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCi17Ci0JaW50IGNudCA9IDAsIGksIGo7Ci0KLQlCVUlMRF9CVUdfT04oQVJSQVlfU0laRShlcnJvci0+ZW5naW5lKSA+IEFSUkFZX1NJWkUoZXJyb3ItPmFjdGl2ZV9ibykpOwotCUJVSUxEX0JVR19PTihBUlJBWV9TSVpFKGVycm9yLT5hY3RpdmVfYm8pICE9IEFSUkFZX1NJWkUoZXJyb3ItPmFjdGl2ZV92bSkpOwotCUJVSUxEX0JVR19PTihBUlJBWV9TSVpFKGVycm9yLT5hY3RpdmVfYm8pICE9IEFSUkFZX1NJWkUoZXJyb3ItPmFjdGl2ZV9ib19jb3VudCkpOwotCi0JLyogU2NhbiBlYWNoIGVuZ2luZSBsb29raW5nIGZvciB1bmlxdWUgYWN0aXZlIGNvbnRleHRzL3ZtICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZXJyb3ItPmVuZ2luZSk7IGkrKykgewotCQlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfZW5naW5lICplZSA9ICZlcnJvci0+ZW5naW5lW2ldOwotCQlib29sIGZvdW5kOwotCi0JCWlmICghZWUtPnZtKQotCQkJY29udGludWU7Ci0KLQkJZm91bmQgPSBmYWxzZTsKLQkJZm9yIChqID0gMDsgaiA8IGkgJiYgIWZvdW5kOyBqKyspCi0JCQlmb3VuZCA9IGVycm9yLT5lbmdpbmVbal0udm0gPT0gZWUtPnZtOwotCQlpZiAoIWZvdW5kKQotCQkJZ2VtX2NhcHR1cmVfdm0oZXJyb3IsIGVlLT52bSwgY250KyspOwotCX0KLX0KLQotc3RhdGljIHZvaWQgY2FwdHVyZV9waW5uZWRfYnVmZmVycyhzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yKQotewotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gJmVycm9yLT5pOTE1LT5nZ3R0LnZtOwotCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIgKmJvOwotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCWludCBjb3VudDsKLQotCWNvdW50ID0gMDsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJnZtLT5ib3VuZF9saXN0LCB2bV9saW5rKQotCQljb3VudCsrOwotCi0JYm8gPSBOVUxMOwotCWlmIChjb3VudCkKLQkJYm8gPSBrY2FsbG9jKGNvdW50LCBzaXplb2YoKmJvKSwgR0ZQX0FUT01JQyk7Ci0JaWYgKCFibykKLQkJcmV0dXJuOwotCi0JZXJyb3ItPnBpbm5lZF9ib19jb3VudCA9Ci0JCWNhcHR1cmVfZXJyb3JfYm8oYm8sIGNvdW50LCAmdm0tPmJvdW5kX2xpc3QsIFBJTk5FRF9PTkxZKTsKLQllcnJvci0+cGlubmVkX2JvID0gYm87Ci19Ci0KLXN0YXRpYyB2b2lkIGNhcHR1cmVfdWNfc3RhdGUoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKK3N0YXRpYyB2b2lkCitjYXB0dXJlX3VjX3N0YXRlKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IsIHN0cnVjdCBjb21wcmVzcyAqY29tcHJlc3MpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlcnJvci0+aTkxNTsKIAlzdHJ1Y3QgaTkxNV9lcnJvcl91YyAqZXJyb3JfdWMgPSAmZXJyb3ItPnVjOworCXN0cnVjdCBpbnRlbF91YyAqdWMgPSAmaTkxNS0+Z3QudWM7CiAKIAkvKiBDYXB0dXJpbmcgdUMgc3RhdGUgd29uJ3QgYmUgdXNlZnVsIGlmIHRoZXJlIGlzIG5vIEd1QyAqLwotCWlmICghZXJyb3ItPmRldmljZV9pbmZvLmhhc19ndWMpCisJaWYgKCFlcnJvci0+ZGV2aWNlX2luZm8uaGFzX2d0X3VjKQogCQlyZXR1cm47CiAKLQllcnJvcl91Yy0+Z3VjX2Z3ID0gaTkxNS0+Z3VjLmZ3OwotCWVycm9yX3VjLT5odWNfZncgPSBpOTE1LT5odWMuZnc7CisJbWVtY3B5KCZlcnJvcl91Yy0+Z3VjX2Z3LCAmdWMtPmd1Yy5mdywgc2l6ZW9mKHVjLT5ndWMuZncpKTsKKwltZW1jcHkoJmVycm9yX3VjLT5odWNfZncsICZ1Yy0+aHVjLmZ3LCBzaXplb2YodWMtPmh1Yy5mdykpOwogCiAJLyogTm9uLWRlZmF1bHQgZmlybXdhcmUgcGF0aHMgd2lsbCBiZSBzcGVjaWZpZWQgYnkgdGhlIG1vZHBhcmFtLgogCSAqIEFzIG1vZHBhcmFtcyBhcmUgZ2VuZXJhbGx5IGFjY2VzaWJsZSBmcm9tIHRoZSB1c2Vyc3BhY2UgbWFrZQogCSAqIGV4cGxpY2l0IGNvcGllcyBvZiB0aGUgZmlybXdhcmUgcGF0aHMuCiAJICovCi0JZXJyb3JfdWMtPmd1Y19mdy5wYXRoID0ga3N0cmR1cChpOTE1LT5ndWMuZncucGF0aCwgR0ZQX0FUT01JQyk7Ci0JZXJyb3JfdWMtPmh1Y19mdy5wYXRoID0ga3N0cmR1cChpOTE1LT5odWMuZncucGF0aCwgR0ZQX0FUT01JQyk7Ci0JZXJyb3JfdWMtPmd1Y19sb2cgPSBpOTE1X2Vycm9yX29iamVjdF9jcmVhdGUoaTkxNSwgaTkxNS0+Z3VjLmxvZy52bWEpOworCWVycm9yX3VjLT5ndWNfZncucGF0aCA9IGtzdHJkdXAodWMtPmd1Yy5mdy5wYXRoLCBBTExPV19GQUlMKTsKKwllcnJvcl91Yy0+aHVjX2Z3LnBhdGggPSBrc3RyZHVwKHVjLT5odWMuZncucGF0aCwgQUxMT1dfRkFJTCk7CisJZXJyb3JfdWMtPmd1Y19sb2cgPSBpOTE1X2Vycm9yX29iamVjdF9jcmVhdGUoaTkxNSwKKwkJCQkJCSAgICAgdWMtPmd1Yy5sb2cudm1hLAorCQkJCQkJICAgICBjb21wcmVzcyk7CiB9CiAKIC8qIENhcHR1cmUgYWxsIHJlZ2lzdGVycyB3aGljaCBkb24ndCBmaXQgaW50byBhbm90aGVyIGNhdGVnb3J5LiAqLwpAQCAtMTYwMyw3ICsxNTE0LDEyIEBAIHN0YXRpYyB2b2lkIGNhcHR1cmVfcmVnX3N0YXRlKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCiAJaWYgKElTX0dFTihpOTE1LCA3KSkKIAkJZXJyb3ItPmVycl9pbnQgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEdFTjdfRVJSX0lOVCk7CiAKLQlpZiAoSU5URUxfR0VOKGk5MTUpID49IDgpIHsKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDEyKSB7CisJCWVycm9yLT5mYXVsdF9kYXRhMCA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwKKwkJCQkJCSAgICAgICBHRU4xMl9GQVVMVF9UTEJfREFUQTApOworCQllcnJvci0+ZmF1bHRfZGF0YTEgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsCisJCQkJCQkgICAgICAgR0VOMTJfRkFVTFRfVExCX0RBVEExKTsKKwl9IGVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSA4KSB7CiAJCWVycm9yLT5mYXVsdF9kYXRhMCA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwKIAkJCQkJCSAgICAgICBHRU44X0ZBVUxUX1RMQl9EQVRBMCk7CiAJCWVycm9yLT5mYXVsdF9kYXRhMSA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwKQEAgLTE2MjIsOCArMTUzOCwxMCBAQCBzdGF0aWMgdm9pZCBjYXB0dXJlX3JlZ19zdGF0ZShzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yKQogCiAJaWYgKElOVEVMX0dFTihpOTE1KSA+PSA2KSB7CiAJCWVycm9yLT5kZXJybXIgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIERFUlJNUik7Ci0JCWVycm9yLT5lcnJvciA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgRVJST1JfR0VONik7Ci0JCWVycm9yLT5kb25lX3JlZyA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgRE9ORV9SRUcpOworCQlpZiAoSU5URUxfR0VOKGk5MTUpIDwgMTIpIHsKKwkJCWVycm9yLT5lcnJvciA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgRVJST1JfR0VONik7CisJCQllcnJvci0+ZG9uZV9yZWcgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIERPTkVfUkVHKTsKKwkJfQogCX0KIAogCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gNSkKQEAgLTE2NzksMjQgKzE1OTcsMTggQEAgZXJyb3JfbXNnKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IsCiAJICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZXMsIGNvbnN0IGNoYXIgKm1zZykKIHsKIAlpbnQgbGVuOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZXJyb3ItPmVuZ2luZSk7IGkrKykKLQkJaWYgKCFlcnJvci0+ZW5naW5lW2ldLmNvbnRleHQucGlkKQotCQkJZW5naW5lcyAmPSB+QklUKGkpOwogCiAJbGVuID0gc2NucHJpbnRmKGVycm9yLT5lcnJvcl9tc2csIHNpemVvZihlcnJvci0+ZXJyb3JfbXNnKSwKIAkJCSJHUFUgSEFORzogZWNvZGUgJWQ6JXg6MHglMDh4IiwKIAkJCUlOVEVMX0dFTihlcnJvci0+aTkxNSksIGVuZ2luZXMsCi0JCQlpOTE1X2Vycm9yX2dlbmVyYXRlX2NvZGUoZXJyb3IsIGVuZ2luZXMpKTsKLQlpZiAoZW5naW5lcykgeworCQkJaTkxNV9lcnJvcl9nZW5lcmF0ZV9jb2RlKGVycm9yKSk7CisJaWYgKGVycm9yLT5lbmdpbmUpIHsKIAkJLyogSnVzdCBzaG93IHRoZSBmaXJzdCBleGVjdXRpbmcgcHJvY2VzcywgbW9yZSBpcyBjb25mdXNpbmcgKi8KLQkJaSA9IF9fZmZzKGVuZ2luZXMpOwogCQlsZW4gKz0gc2NucHJpbnRmKGVycm9yLT5lcnJvcl9tc2cgKyBsZW4sCiAJCQkJIHNpemVvZihlcnJvci0+ZXJyb3JfbXNnKSAtIGxlbiwKIAkJCQkgIiwgaW4gJXMgWyVkXSIsCi0JCQkJIGVycm9yLT5lbmdpbmVbaV0uY29udGV4dC5jb21tLAotCQkJCSBlcnJvci0+ZW5naW5lW2ldLmNvbnRleHQucGlkKTsKKwkJCQkgZXJyb3ItPmVuZ2luZS0+Y29udGV4dC5jb21tLAorCQkJCSBlcnJvci0+ZW5naW5lLT5jb250ZXh0LnBpZCk7CiAJfQogCWlmIChtc2cpCiAJCWxlbiArPSBzY25wcmludGYoZXJyb3ItPmVycm9yX21zZyArIGxlbiwKQEAgLTE3MzcsMTIgKzE2NDksMTAgQEAgc3RhdGljIHZvaWQgY2FwdHVyZV9wYXJhbXMoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgY2FwdHVyZV9maW5kX2Vwb2NoKGNvbnN0IHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCiB7CisJY29uc3Qgc3RydWN0IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWU7CiAJdW5zaWduZWQgbG9uZyBlcG9jaCA9IGVycm9yLT5jYXB0dXJlOwotCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZXJyb3ItPmVuZ2luZSk7IGkrKykgewotCQljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfZW5naW5lICplZSA9ICZlcnJvci0+ZW5naW5lW2ldOwotCisJZm9yIChlZSA9IGVycm9yLT5lbmdpbmU7IGVlOyBlZSA9IGVlLT5uZXh0KSB7CiAJCWlmIChlZS0+aGFuZ2NoZWNrX3RpbWVzdGFtcCAmJgogCQkgICAgdGltZV9iZWZvcmUoZWUtPmhhbmdjaGVja190aW1lc3RhbXAsIGVwb2NoKSkKIAkJCWVwb2NoID0gZWUtPmhhbmdjaGVja190aW1lc3RhbXA7CkBAIC0xNzU5LDU2ICsxNjY5LDUzIEBAIHN0YXRpYyB2b2lkIGNhcHR1cmVfZmluaXNoKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCiAJZ2d0dC0+dm0uY2xlYXJfcmFuZ2UoJmdndHQtPnZtLCBzbG90LCBQQUdFX1NJWkUpOwogfQogCi1zdGF0aWMgaW50IGNhcHR1cmUodm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yID0gZGF0YTsKLQotCWVycm9yLT50aW1lID0ga3RpbWVfZ2V0X3JlYWwoKTsKLQllcnJvci0+Ym9vdHRpbWUgPSBrdGltZV9nZXRfYm9vdHRpbWUoKTsKLQllcnJvci0+dXB0aW1lID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLAotCQkJCSAgZXJyb3ItPmk5MTUtPmd0Lmxhc3RfaW5pdF90aW1lKTsKLQllcnJvci0+Y2FwdHVyZSA9IGppZmZpZXM7Ci0KLQljYXB0dXJlX3BhcmFtcyhlcnJvcik7Ci0JY2FwdHVyZV9nZW5fc3RhdGUoZXJyb3IpOwotCWNhcHR1cmVfdWNfc3RhdGUoZXJyb3IpOwotCWNhcHR1cmVfcmVnX3N0YXRlKGVycm9yKTsKLQlnZW1fcmVjb3JkX2ZlbmNlcyhlcnJvcik7Ci0JZ2VtX3JlY29yZF9yaW5ncyhlcnJvcik7Ci0JY2FwdHVyZV9hY3RpdmVfYnVmZmVycyhlcnJvcik7Ci0JY2FwdHVyZV9waW5uZWRfYnVmZmVycyhlcnJvcik7Ci0KLQllcnJvci0+b3ZlcmxheSA9IGludGVsX292ZXJsYXlfY2FwdHVyZV9lcnJvcl9zdGF0ZShlcnJvci0+aTkxNSk7Ci0JZXJyb3ItPmRpc3BsYXkgPSBpbnRlbF9kaXNwbGF5X2NhcHR1cmVfZXJyb3Jfc3RhdGUoZXJyb3ItPmk5MTUpOwotCi0JZXJyb3ItPmVwb2NoID0gY2FwdHVyZV9maW5kX2Vwb2NoKGVycm9yKTsKLQotCWNhcHR1cmVfZmluaXNoKGVycm9yKTsKLQlyZXR1cm4gMDsKLX0KLQogI2RlZmluZSBEQVlfQVNfU0VDT05EUyh4KSAoMjQgKiA2MCAqIDYwICogKHgpKQogCiBzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKgogaTkxNV9jYXB0dXJlX2dwdV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yOworCXN0cnVjdCBjb21wcmVzcyBjb21wcmVzczsKIAogCS8qIENoZWNrIGlmIEdQVSBjYXB0dXJlIGhhcyBiZWVuIGRpc2FibGVkICovCiAJZXJyb3IgPSBSRUFEX09OQ0UoaTkxNS0+Z3B1X2Vycm9yLmZpcnN0X2Vycm9yKTsKIAlpZiAoSVNfRVJSKGVycm9yKSkKIAkJcmV0dXJuIGVycm9yOwogCi0JZXJyb3IgPSBremFsbG9jKHNpemVvZigqZXJyb3IpLCBHRlBfQVRPTUlDKTsKKwllcnJvciA9IGt6YWxsb2Moc2l6ZW9mKCplcnJvciksIEFMTE9XX0ZBSUwpOwogCWlmICghZXJyb3IpIHsKIAkJaTkxNV9kaXNhYmxlX2Vycm9yX3N0YXRlKGk5MTUsIC1FTk9NRU0pOwogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAl9CiAKKwlpZiAoIWNvbXByZXNzX2luaXQoJmNvbXByZXNzKSkgeworCQlrZnJlZShlcnJvcik7CisJCWk5MTVfZGlzYWJsZV9lcnJvcl9zdGF0ZShpOTE1LCAtRU5PTUVNKTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJfQorCiAJa3JlZl9pbml0KCZlcnJvci0+cmVmKTsKIAllcnJvci0+aTkxNSA9IGk5MTU7CiAKLQlzdG9wX21hY2hpbmUoY2FwdHVyZSwgZXJyb3IsIE5VTEwpOworCWVycm9yLT50aW1lID0ga3RpbWVfZ2V0X3JlYWwoKTsKKwllcnJvci0+Ym9vdHRpbWUgPSBrdGltZV9nZXRfYm9vdHRpbWUoKTsKKwllcnJvci0+dXB0aW1lID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBpOTE1LT5ndC5sYXN0X2luaXRfdGltZSk7CisJZXJyb3ItPmNhcHR1cmUgPSBqaWZmaWVzOworCisJY2FwdHVyZV9wYXJhbXMoZXJyb3IpOworCWNhcHR1cmVfZ2VuX3N0YXRlKGVycm9yKTsKKwljYXB0dXJlX3VjX3N0YXRlKGVycm9yLCAmY29tcHJlc3MpOworCWNhcHR1cmVfcmVnX3N0YXRlKGVycm9yKTsKKwlnZW1fcmVjb3JkX2ZlbmNlcyhlcnJvcik7CisJZ2VtX3JlY29yZF9yaW5ncyhlcnJvciwgJmNvbXByZXNzKTsKKworCWVycm9yLT5vdmVybGF5ID0gaW50ZWxfb3ZlcmxheV9jYXB0dXJlX2Vycm9yX3N0YXRlKGk5MTUpOworCWVycm9yLT5kaXNwbGF5ID0gaW50ZWxfZGlzcGxheV9jYXB0dXJlX2Vycm9yX3N0YXRlKGk5MTUpOworCisJZXJyb3ItPmVwb2NoID0gY2FwdHVyZV9maW5kX2Vwb2NoKGVycm9yKTsKKworCWNhcHR1cmVfZmluaXNoKGVycm9yKTsKKwljb21wcmVzc19maW5pKCZjb21wcmVzcyk7CiAKIAlyZXR1cm4gZXJyb3I7CiB9CkBAIC0xODU4LDE1ICsxNzY1LDE0IEBAIHZvaWQgaTkxNV9jYXB0dXJlX2Vycm9yX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQlyZXR1cm47CiAJfQogCi0JaWYgKCF3YXJuZWQgJiYKKwlpZiAoIXhjaGcoJndhcm5lZCwgdHJ1ZSkgJiYKIAkgICAga3RpbWVfZ2V0X3JlYWxfc2Vjb25kcygpIC0gRFJJVkVSX1RJTUVTVEFNUCA8IERBWV9BU19TRUNPTkRTKDE4MCkpIHsKLQkJRFJNX0lORk8oIkdQVSBoYW5ncyBjYW4gaW5kaWNhdGUgYSBidWcgYW55d2hlcmUgaW4gdGhlIGVudGlyZSBnZnggc3RhY2ssIGluY2x1ZGluZyB1c2Vyc3BhY2UuXG4iKTsKLQkJRFJNX0lORk8oIlBsZWFzZSBmaWxlIGEgX25ld18gYnVnIHJlcG9ydCBvbiBidWdzLmZyZWVkZXNrdG9wLm9yZyBhZ2FpbnN0IERSSSAtPiBEUk0vSW50ZWxcbiIpOwotCQlEUk1fSU5GTygiZHJtL2k5MTUgZGV2ZWxvcGVycyBjYW4gdGhlbiByZWFzc2lnbiB0byB0aGUgcmlnaHQgY29tcG9uZW50IGlmIGl0J3Mgbm90IGEga2VybmVsIGlzc3VlLlxuIik7Ci0JCURSTV9JTkZPKCJUaGUgZ3B1IGNyYXNoIGR1bXAgaXMgcmVxdWlyZWQgdG8gYW5hbHl6ZSBncHUgaGFuZ3MsIHNvIHBsZWFzZSBhbHdheXMgYXR0YWNoIGl0LlxuIik7Ci0JCURSTV9JTkZPKCJHUFUgY3Jhc2ggZHVtcCBzYXZlZCB0byAvc3lzL2NsYXNzL2RybS9jYXJkJWQvZXJyb3JcbiIsCi0JCQkgaTkxNS0+ZHJtLnByaW1hcnktPmluZGV4KTsKLQkJd2FybmVkID0gdHJ1ZTsKKwkJcHJfaW5mbygiR1BVIGhhbmdzIGNhbiBpbmRpY2F0ZSBhIGJ1ZyBhbnl3aGVyZSBpbiB0aGUgZW50aXJlIGdmeCBzdGFjaywgaW5jbHVkaW5nIHVzZXJzcGFjZS5cbiIpOworCQlwcl9pbmZvKCJQbGVhc2UgZmlsZSBhIF9uZXdfIGJ1ZyByZXBvcnQgb24gYnVncy5mcmVlZGVza3RvcC5vcmcgYWdhaW5zdCBEUkkgLT4gRFJNL0ludGVsXG4iKTsKKwkJcHJfaW5mbygiZHJtL2k5MTUgZGV2ZWxvcGVycyBjYW4gdGhlbiByZWFzc2lnbiB0byB0aGUgcmlnaHQgY29tcG9uZW50IGlmIGl0J3Mgbm90IGEga2VybmVsIGlzc3VlLlxuIik7CisJCXByX2luZm8oIlRoZSBHUFUgY3Jhc2ggZHVtcCBpcyByZXF1aXJlZCB0byBhbmFseXplIEdQVSBoYW5ncywgc28gcGxlYXNlIGFsd2F5cyBhdHRhY2ggaXQuXG4iKTsKKwkJcHJfaW5mbygiR1BVIGNyYXNoIGR1bXAgc2F2ZWQgdG8gL3N5cy9jbGFzcy9kcm0vY2FyZCVkL2Vycm9yXG4iLAorCQkJaTkxNS0+ZHJtLnByaW1hcnktPmluZGV4KTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oCmluZGV4IDJlY2QwYzZhLi5kZjlmNTc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgKQEAgLTcsNiArNyw3IEBACiAjaWZuZGVmIF9JOTE1X0dQVV9FUlJPUl9IXwogI2RlZmluZSBfSTkxNV9HUFVfRVJST1JfSF8KIAorI2luY2x1ZGUgPGxpbnV4L2F0b21pYy5oPgogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9rdGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CkBAIC0xNCw5ICsxNSw5IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgogCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lLmgiCisjaW5jbHVkZSAiZ3QvdWMvaW50ZWxfdWNfZncuaCIKIAogI2luY2x1ZGUgImludGVsX2RldmljZV9pbmZvLmgiCi0jaW5jbHVkZSAiaW50ZWxfdWNfZncuaCIKIAogI2luY2x1ZGUgImk5MTVfZ2VtLmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fZ3R0LmgiCkBAIC04MCwxMSArODEsMTEgQEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsKIAlzdHJ1Y3QgaW50ZWxfZGlzcGxheV9lcnJvcl9zdGF0ZSAqZGlzcGxheTsKIAogCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9lbmdpbmUgewotCQlpbnQgZW5naW5lX2lkOworCQljb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisKIAkJLyogU29mdHdhcmUgdHJhY2tlZCBzdGF0ZSAqLwogCQlib29sIGlkbGU7CiAJCXVuc2lnbmVkIGxvbmcgaGFuZ2NoZWNrX3RpbWVzdGFtcDsKLQkJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07CiAJCWludCBudW1fcmVxdWVzdHM7CiAJCXUzMiByZXNldF9jb3VudDsKIApAQCAtMTU4LDM0ICsxNTksMTQgQEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsKIAkJCQl1MzIgcHBfZGlyX2Jhc2U7CiAJCQl9OwogCQl9IHZtX2luZm87Ci0JfSBlbmdpbmVbSTkxNV9OVU1fRU5HSU5FU107CiAKLQlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfYnVmZmVyIHsKLQkJdTMyIHNpemU7Ci0JCXUzMiBuYW1lOwotCQl1NjQgZ3R0X29mZnNldDsKLQkJdTMyIHJlYWRfZG9tYWluczsKLQkJdTMyIHdyaXRlX2RvbWFpbjsKLQkJczMyIGZlbmNlX3JlZzpJOTE1X01BWF9OVU1fRkVOQ0VfQklUUzsKLQkJdTMyIHRpbGluZzoyOwotCQl1MzIgZGlydHk6MTsKLQkJdTMyIHB1cmdlYWJsZToxOwotCQl1MzIgdXNlcnB0cjoxOwotCQl1MzIgY2FjaGVfbGV2ZWw6MzsKLQl9ICphY3RpdmVfYm9bSTkxNV9OVU1fRU5HSU5FU10sICpwaW5uZWRfYm87Ci0JdTMyIGFjdGl2ZV9ib19jb3VudFtJOTE1X05VTV9FTkdJTkVTXSwgcGlubmVkX2JvX2NvdW50OwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmFjdGl2ZV92bVtJOTE1X05VTV9FTkdJTkVTXTsKKwkJc3RydWN0IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqbmV4dDsKKwl9ICplbmdpbmU7CiAKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCwgKmZpdDsKIH07CiAKIHN0cnVjdCBpOTE1X2dwdV9lcnJvciB7Ci0JLyogRm9yIGhhbmdjaGVjayB0aW1lciAqLwotI2RlZmluZSBEUk1fSTkxNV9IQU5HQ0hFQ0tfUEVSSU9EIDE1MDAgLyogaW4gbXMgKi8KLSNkZWZpbmUgRFJNX0k5MTVfSEFOR0NIRUNLX0pJRkZJRVMgbXNlY3NfdG9famlmZmllcyhEUk1fSTkxNV9IQU5HQ0hFQ0tfUEVSSU9EKQotCi0Jc3RydWN0IGRlbGF5ZWRfd29yayBoYW5nY2hlY2tfd29yazsKLQogCS8qIEZvciByZXNldCBhbmQgZXJyb3Jfc3RhdGUgaGFuZGxpbmcuICovCiAJc3BpbmxvY2tfdCBsb2NrOwogCS8qIFByb3RlY3RlZCBieSB0aGUgYWJvdmUgZGV2LT5ncHVfZXJyb3IubG9jay4gKi8KQEAgLTE5Myw1MiArMTc0LDExIEBAIHN0cnVjdCBpOTE1X2dwdV9lcnJvciB7CiAKIAlhdG9taWNfdCBwZW5kaW5nX2ZiX3BpbjsKIAotCS8qKgotCSAqIGZsYWdzOiBDb250cm9sIHZhcmlvdXMgc3RhZ2VzIG9mIHRoZSBHUFUgcmVzZXQKLQkgKgotCSAqICNJOTE1X1JFU0VUX0JBQ0tPRkYgLSBXaGVuIHdlIHN0YXJ0IGEgZ2xvYmFsIHJlc2V0LCB3ZSBuZWVkIHRvCi0JICogc2VyaWFsaXNlIHdpdGggYW55IG90aGVyIHVzZXJzIGF0dGVtcHRpbmcgdG8gZG8gdGhlIHNhbWUsIGFuZAotCSAqIGFueSBnbG9iYWwgcmVzb3VyY2VzIHRoYXQgbWF5IGJlIGNsb2JiZXIgYnkgdGhlIHJlc2V0IChzdWNoIGFzCi0JICogRkVOQ0UgcmVnaXN0ZXJzKS4KLQkgKgotCSAqICNJOTE1X1JFU0VUX0VOR0lORVtudW1fZW5naW5lc10gLSBTaW5jZSB0aGUgZHJpdmVyIGRvZXNuJ3QgbmVlZCB0bwotCSAqIGFjcXVpcmUgdGhlIHN0cnVjdF9tdXRleCB0byByZXNldCBhbiBlbmdpbmUsIHdlIG5lZWQgYW4gZXhwbGljaXQKLQkgKiBmbGFnIHRvIHByZXZlbnQgdHdvIGNvbmN1cnJlbnQgcmVzZXQgYXR0ZW1wdHMgaW4gdGhlIHNhbWUgZW5naW5lLgotCSAqIEFzIHRoZSBudW1iZXIgb2YgZW5naW5lcyBjb250aW51ZXMgdG8gZ3JvdywgYWxsb2NhdGUgdGhlIGZsYWdzIGZyb20KLQkgKiB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXRzLgotCSAqCi0JICogI0k5MTVfV0VER0VEIC0gSWYgcmVzZXQgZmFpbHMgYW5kIHdlIGNhbiBubyBsb25nZXIgdXNlIHRoZSBHUFUsCi0JICogd2Ugc2V0IHRoZSAjSTkxNV9XRURHRUQgYml0LiBQcmlvciB0byBjb21tYW5kIHN1Ym1pc3Npb24sIGUuZy4KLQkgKiBpOTE1X3JlcXVlc3RfYWxsb2MoKSwgdGhpcyBiaXQgaXMgY2hlY2tlZCBhbmQgdGhlIHNlcXVlbmNlCi0JICogYWJvcnRlZCAod2l0aCAtRUlPIHJlcG9ydGVkIHRvIHVzZXJzcGFjZSkgaWYgc2V0LgotCSAqLwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0jZGVmaW5lIEk5MTVfUkVTRVRfQkFDS09GRgkwCi0jZGVmaW5lIEk5MTVfUkVTRVRfTU9ERVNFVAkxCi0jZGVmaW5lIEk5MTVfUkVTRVRfRU5HSU5FCTIKLSNkZWZpbmUgSTkxNV9XRURHRUQJCShCSVRTX1BFUl9MT05HIC0gMSkKLQogCS8qKiBOdW1iZXIgb2YgdGltZXMgdGhlIGRldmljZSBoYXMgYmVlbiByZXNldCAoZ2xvYmFsKSAqLwotCXUzMiByZXNldF9jb3VudDsKKwlhdG9taWNfdCByZXNldF9jb3VudDsKIAogCS8qKiBOdW1iZXIgb2YgdGltZXMgYW4gZW5naW5lIGhhcyBiZWVuIHJlc2V0ICovCi0JdTMyIHJlc2V0X2VuZ2luZV9jb3VudFtJOTE1X05VTV9FTkdJTkVTXTsKLQotCXN0cnVjdCBtdXRleCB3ZWRnZV9tdXRleDsgLyogc2VyaWFsaXNlcyB3ZWRnaW5nL3Vud2VkZ2luZyAqLwotCi0JLyoqCi0JICogV2FpdHF1ZXVlIHRvIHNpZ25hbCB3aGVuIGEgaGFuZyBpcyBkZXRlY3RlZC4gVXNlZCB0byBmb3Igd2FpdGVycwotCSAqIHRvIHJlbGVhc2UgdGhlIHN0cnVjdF9tdXRleCBmb3IgdGhlIHJlc2V0IHRvIHByb2NlZGUuCi0JICovCi0Jd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdF9xdWV1ZTsKLQotCS8qKgotCSAqIFdhaXRxdWV1ZSB0byBzaWduYWwgd2hlbiB0aGUgcmVzZXQgaGFzIGNvbXBsZXRlZC4gVXNlZCBieSBjbGllbnRzCi0JICogdGhhdCB3YWl0IGZvciBkZXZfcHJpdi0+bW0ud2VkZ2VkIHRvIHNldHRsZS4KLQkgKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCByZXNldF9xdWV1ZTsKLQotCXN0cnVjdCBzcmN1X3N0cnVjdCByZXNldF9iYWNrb2ZmX3NyY3U7CisJYXRvbWljX3QgcmVzZXRfZW5naW5lX2NvdW50W0k5MTVfTlVNX0VOR0lORVNdOwogfTsKIAogc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCBiMmUyN2I1Li4zN2UzZGQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTM3LDE1ICszNywxOSBAQAogI2luY2x1ZGUgPGRybS9kcm1faXJxLmg+CiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAKKyNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2ZpZm9fdW5kZXJydW4uaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2hvdHBsdWcuaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2xwZV9hdWRpby5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfcHNyLmgiCiAKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgorI2luY2x1ZGUgImd0L2ludGVsX2d0X2lycS5oIgorI2luY2x1ZGUgImd0L2ludGVsX2d0X3BtX2lycS5oIgorCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2lycS5oIgogI2luY2x1ZGUgImk5MTVfdHJhY2UuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF9wbS5oIgogCiAvKioKQEAgLTU2LDYgKzYwLDggQEAKICAqIGFuZCByZWxhdGVkIGZpbGVzLCBidXQgdGhhdCB3aWxsIGJlIGRlc2NyaWJlZCBpbiBzZXBhcmF0ZSBjaGFwdGVycy4KICAqLwogCit0eXBlZGVmIGJvb2wgKCpsb25nX3B1bHNlX2RldGVjdF9mdW5jKShlbnVtIGhwZF9waW4gcGluLCB1MzIgdmFsKTsKKwogc3RhdGljIGNvbnN0IHUzMiBocGRfaWxrW0hQRF9OVU1fUElOU10gPSB7CiAJW0hQRF9QT1JUX0FdID0gREVfRFBfQV9IT1RQTFVHLAogfTsKQEAgLTEzMyw2ICsxMzksMTUgQEAgc3RhdGljIGNvbnN0IHUzMiBocGRfZ2VuMTFbSFBEX05VTV9QSU5TXSA9IHsKIAlbSFBEX1BPUlRfRl0gPSBHRU4xMV9UQzRfSE9UUExVRyB8IEdFTjExX1RCVDRfSE9UUExVRwogfTsKIAorc3RhdGljIGNvbnN0IHUzMiBocGRfZ2VuMTJbSFBEX05VTV9QSU5TXSA9IHsKKwlbSFBEX1BPUlRfRF0gPSBHRU4xMV9UQzFfSE9UUExVRyB8IEdFTjExX1RCVDFfSE9UUExVRywKKwlbSFBEX1BPUlRfRV0gPSBHRU4xMV9UQzJfSE9UUExVRyB8IEdFTjExX1RCVDJfSE9UUExVRywKKwlbSFBEX1BPUlRfRl0gPSBHRU4xMV9UQzNfSE9UUExVRyB8IEdFTjExX1RCVDNfSE9UUExVRywKKwlbSFBEX1BPUlRfR10gPSBHRU4xMV9UQzRfSE9UUExVRyB8IEdFTjExX1RCVDRfSE9UUExVRywKKwlbSFBEX1BPUlRfSF0gPSBHRU4xMl9UQzVfSE9UUExVRyB8IEdFTjEyX1RCVDVfSE9UUExVRywKKwlbSFBEX1BPUlRfSV0gPSBHRU4xMl9UQzZfSE9UUExVRyB8IEdFTjEyX1RCVDZfSE9UUExVRworfTsKKwogc3RhdGljIGNvbnN0IHUzMiBocGRfaWNwW0hQRF9OVU1fUElOU10gPSB7CiAJW0hQRF9QT1JUX0FdID0gU0RFX0RESUFfSE9UUExVR19JQ1AsCiAJW0hQRF9QT1JUX0JdID0gU0RFX0RESUJfSE9UUExVR19JQ1AsCkBAIC0xNDgsOCArMTYzLDIwIEBAIHN0YXRpYyBjb25zdCB1MzIgaHBkX21jY1tIUERfTlVNX1BJTlNdID0gewogCVtIUERfUE9SVF9DXSA9IFNERV9UQzFfSE9UUExVR19JQ1AKIH07CiAKLXN0YXRpYyB2b2lkIGdlbjNfaXJxX3Jlc2V0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwgaTkxNV9yZWdfdCBpbXIsCi0JCQkgICBpOTE1X3JlZ190IGlpciwgaTkxNV9yZWdfdCBpZXIpCitzdGF0aWMgY29uc3QgdTMyIGhwZF90Z3BbSFBEX05VTV9QSU5TXSA9IHsKKwlbSFBEX1BPUlRfQV0gPSBTREVfRERJQV9IT1RQTFVHX0lDUCwKKwlbSFBEX1BPUlRfQl0gPSBTREVfRERJQl9IT1RQTFVHX0lDUCwKKwlbSFBEX1BPUlRfQ10gPSBTREVfRERJQ19IT1RQTFVHX1RHUCwKKwlbSFBEX1BPUlRfRF0gPSBTREVfVEMxX0hPVFBMVUdfSUNQLAorCVtIUERfUE9SVF9FXSA9IFNERV9UQzJfSE9UUExVR19JQ1AsCisJW0hQRF9QT1JUX0ZdID0gU0RFX1RDM19IT1RQTFVHX0lDUCwKKwlbSFBEX1BPUlRfR10gPSBTREVfVEM0X0hPVFBMVUdfSUNQLAorCVtIUERfUE9SVF9IXSA9IFNERV9UQzVfSE9UUExVR19UR1AsCisJW0hQRF9QT1JUX0ldID0gU0RFX1RDNl9IT1RQTFVHX1RHUCwKK307CisKK3ZvaWQgZ2VuM19pcnFfcmVzZXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IGltciwKKwkJICAgIGk5MTVfcmVnX3QgaWlyLCBpOTE1X3JlZ190IGllcikKIHsKIAlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBpbXIsIDB4ZmZmZmZmZmYpOwogCWludGVsX3VuY29yZV9wb3N0aW5nX3JlYWQodW5jb3JlLCBpbXIpOwpAQCAtMTYzLDcgKzE5MCw3IEBAIHN0YXRpYyB2b2lkIGdlbjNfaXJxX3Jlc2V0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwgaTkxNV9yZWdfdCBpbXIsCiAJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZCh1bmNvcmUsIGlpcik7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjJfaXJxX3Jlc2V0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKK3ZvaWQgZ2VuMl9pcnFfcmVzZXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogewogCWludGVsX3VuY29yZV93cml0ZTE2KHVuY29yZSwgR0VOMl9JTVIsIDB4ZmZmZik7CiAJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZDE2KHVuY29yZSwgR0VOMl9JTVIpOwpAQCAtMTc3LDE5ICsyMDQsNiBAQCBzdGF0aWMgdm9pZCBnZW4yX2lycV9yZXNldChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiAJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZDE2KHVuY29yZSwgR0VOMl9JSVIpOwogfQogCi0jZGVmaW5lIEdFTjhfSVJRX1JFU0VUX05EWCh1bmNvcmUsIHR5cGUsIHdoaWNoKSBcCi0oeyBcCi0JdW5zaWduZWQgaW50IHdoaWNoXyA9IHdoaWNoOyBcCi0JZ2VuM19pcnFfcmVzZXQoKHVuY29yZSksIEdFTjhfIyN0eXBlIyNfSU1SKHdoaWNoXyksIFwKLQkJICAgICAgIEdFTjhfIyN0eXBlIyNfSUlSKHdoaWNoXyksIEdFTjhfIyN0eXBlIyNfSUVSKHdoaWNoXykpOyBcCi19KQotCi0jZGVmaW5lIEdFTjNfSVJRX1JFU0VUKHVuY29yZSwgdHlwZSkgXAotCWdlbjNfaXJxX3Jlc2V0KCh1bmNvcmUpLCB0eXBlIyNJTVIsIHR5cGUjI0lJUiwgdHlwZSMjSUVSKQotCi0jZGVmaW5lIEdFTjJfSVJRX1JFU0VUKHVuY29yZSkgXAotCWdlbjJfaXJxX3Jlc2V0KHVuY29yZSkKLQogLyoKICAqIFdlIHNob3VsZCBjbGVhciBJTVIgYXQgcHJlaW5zdGFsbC91bmluc3RhbGwsIGFuZCBqdXN0IGNoZWNrIGF0IHBvc3RpbnN0YWxsLgogICovCkBAIC0yMjMsMTAgKzIzNywxMCBAQCBzdGF0aWMgdm9pZCBnZW4yX2Fzc2VydF9paXJfaXNfemVybyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiAJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZDE2KHVuY29yZSwgR0VOMl9JSVIpOwogfQogCi1zdGF0aWMgdm9pZCBnZW4zX2lycV9pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKLQkJCSAgaTkxNV9yZWdfdCBpbXIsIHUzMiBpbXJfdmFsLAotCQkJICBpOTE1X3JlZ190IGllciwgdTMyIGllcl92YWwsCi0JCQkgIGk5MTVfcmVnX3QgaWlyKQordm9pZCBnZW4zX2lycV9pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKKwkJICAgaTkxNV9yZWdfdCBpbXIsIHUzMiBpbXJfdmFsLAorCQkgICBpOTE1X3JlZ190IGllciwgdTMyIGllcl92YWwsCisJCSAgIGk5MTVfcmVnX3QgaWlyKQogewogCWdlbjNfYXNzZXJ0X2lpcl9pc196ZXJvKHVuY29yZSwgaWlyKTsKIApAQCAtMjM1LDggKzI0OSw4IEBAIHN0YXRpYyB2b2lkIGdlbjNfaXJxX2luaXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAogCWludGVsX3VuY29yZV9wb3N0aW5nX3JlYWQodW5jb3JlLCBpbXIpOwogfQogCi1zdGF0aWMgdm9pZCBnZW4yX2lycV9pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKLQkJCSAgdTMyIGltcl92YWwsIHUzMiBpZXJfdmFsKQordm9pZCBnZW4yX2lycV9pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKKwkJICAgdTMyIGltcl92YWwsIHUzMiBpZXJfdmFsKQogewogCWdlbjJfYXNzZXJ0X2lpcl9pc196ZXJvKHVuY29yZSk7CiAKQEAgLTI0NSwyNyArMjU5LDYgQEAgc3RhdGljIHZvaWQgZ2VuMl9pcnFfaW5pdChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZDE2KHVuY29yZSwgR0VOMl9JTVIpOwogfQogCi0jZGVmaW5lIEdFTjhfSVJRX0lOSVRfTkRYKHVuY29yZSwgdHlwZSwgd2hpY2gsIGltcl92YWwsIGllcl92YWwpIFwKLSh7IFwKLQl1bnNpZ25lZCBpbnQgd2hpY2hfID0gd2hpY2g7IFwKLQlnZW4zX2lycV9pbml0KCh1bmNvcmUpLCBcCi0JCSAgICAgIEdFTjhfIyN0eXBlIyNfSU1SKHdoaWNoXyksIGltcl92YWwsIFwKLQkJICAgICAgR0VOOF8jI3R5cGUjI19JRVIod2hpY2hfKSwgaWVyX3ZhbCwgXAotCQkgICAgICBHRU44XyMjdHlwZSMjX0lJUih3aGljaF8pKTsgXAotfSkKLQotI2RlZmluZSBHRU4zX0lSUV9JTklUKHVuY29yZSwgdHlwZSwgaW1yX3ZhbCwgaWVyX3ZhbCkgXAotCWdlbjNfaXJxX2luaXQoKHVuY29yZSksIFwKLQkJICAgICAgdHlwZSMjSU1SLCBpbXJfdmFsLCBcCi0JCSAgICAgIHR5cGUjI0lFUiwgaWVyX3ZhbCwgXAotCQkgICAgICB0eXBlIyNJSVIpCi0KLSNkZWZpbmUgR0VOMl9JUlFfSU5JVCh1bmNvcmUsIGltcl92YWwsIGllcl92YWwpIFwKLQlnZW4yX2lycV9pbml0KCh1bmNvcmUpLCBpbXJfdmFsLCBpZXJfdmFsKQotCi1zdGF0aWMgdm9pZCBnZW42X3Jwc19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwbV9paXIpOwotc3RhdGljIHZvaWQgZ2VuOV9ndWNfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcG1faWlyKTsKLQogLyogRm9yIGRpc3BsYXkgaG90cGx1ZyBpbnRlcnJ1cHQgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZAogaTkxNV9ob3RwbHVnX2ludGVycnVwdF91cGRhdGVfbG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTMwNCw0MSArMjk3LDYgQEAgdm9pZCBpOTE1X2hvdHBsdWdfaW50ZXJydXB0X3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogfQogCi1zdGF0aWMgdTMyCi1nZW4xMV9ndF9lbmdpbmVfaWRlbnRpdHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1LAotCQkJIGNvbnN0IHVuc2lnbmVkIGludCBiYW5rLCBjb25zdCB1bnNpZ25lZCBpbnQgYml0KTsKLQotc3RhdGljIGJvb2wgZ2VuMTFfcmVzZXRfb25lX2lpcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCi0JCQkJY29uc3QgdW5zaWduZWQgaW50IGJhbmssCi0JCQkJY29uc3QgdW5zaWduZWQgaW50IGJpdCkKLXsKLQl2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzID0gaTkxNS0+dW5jb3JlLnJlZ3M7Ci0JdTMyIGR3OwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+aXJxX2xvY2spOwotCi0JZHcgPSByYXdfcmVnX3JlYWQocmVncywgR0VOMTFfR1RfSU5UUl9EVyhiYW5rKSk7Ci0JaWYgKGR3ICYgQklUKGJpdCkpIHsKLQkJLyoKLQkJICogQWNjb3JkaW5nIHRvIHRoZSBCU3BlYywgRFdfSUlSIGJpdHMgY2Fubm90IGJlIGNsZWFyZWQgd2l0aG91dAotCQkgKiBmaXJzdCBzZXJ2aWNpbmcgdGhlIFNlbGVjdG9yICYgU2hhcmVkIElJUiByZWdpc3RlcnMuCi0JCSAqLwotCQlnZW4xMV9ndF9lbmdpbmVfaWRlbnRpdHkoaTkxNSwgYmFuaywgYml0KTsKLQotCQkvKgotCQkgKiBXZSBsb2NrZWQgR1QgSU5UIERXIGJ5IHJlYWRpbmcgaXQuIElmIHdlIHdhbnQgdG8gKHRyeQotCQkgKiB0bykgcmVjb3ZlciBmcm9tIHRoaXMgc3VjY2VzZnVsbHksIHdlIG5lZWQgdG8gY2xlYXIKLQkJICogb3VyIGJpdCwgb3RoZXJ3aXNlIHdlIGFyZSBsb2NraW5nIHRoZSByZWdpc3RlciBmb3IKLQkJICogZXZlcnlib2R5LgotCQkgKi8KLQkJcmF3X3JlZ193cml0ZShyZWdzLCBHRU4xMV9HVF9JTlRSX0RXKGJhbmspLCBCSVQoYml0KSk7Ci0KLQkJcmV0dXJuIHRydWU7Ci0JfQotCi0JcmV0dXJuIGZhbHNlOwotfQotCiAvKioKICAqIGlsa191cGRhdGVfZGlzcGxheV9pcnEgLSB1cGRhdGUgREVJTVIKICAqIEBkZXZfcHJpdjogZHJpdmVyIHByaXZhdGUKQEAgLTM2OSwzOSArMzI3LDYgQEAgdm9pZCBpbGtfdXBkYXRlX2Rpc3BsYXlfaXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl9CiB9CiAKLS8qKgotICogaWxrX3VwZGF0ZV9ndF9pcnEgLSB1cGRhdGUgR1RJTVIKLSAqIEBkZXZfcHJpdjogZHJpdmVyIHByaXZhdGUKLSAqIEBpbnRlcnJ1cHRfbWFzazogbWFzayBvZiBpbnRlcnJ1cHQgYml0cyB0byB1cGRhdGUKLSAqIEBlbmFibGVkX2lycV9tYXNrOiBtYXNrIG9mIGludGVycnVwdCBiaXRzIHRvIGVuYWJsZQotICovCi1zdGF0aWMgdm9pZCBpbGtfdXBkYXRlX2d0X2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICAgICB1MzIgaW50ZXJydXB0X21hc2ssCi0JCQkgICAgICB1MzIgZW5hYmxlZF9pcnFfbWFzaykKLXsKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+aXJxX2xvY2spOwotCi0JV0FSTl9PTihlbmFibGVkX2lycV9tYXNrICYgfmludGVycnVwdF9tYXNrKTsKLQotCWlmIChXQVJOX09OKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKSkKLQkJcmV0dXJuOwotCi0JZGV2X3ByaXYtPmd0X2lycV9tYXNrICY9IH5pbnRlcnJ1cHRfbWFzazsKLQlkZXZfcHJpdi0+Z3RfaXJxX21hc2sgfD0gKH5lbmFibGVkX2lycV9tYXNrICYgaW50ZXJydXB0X21hc2spOwotCUk5MTVfV1JJVEUoR1RJTVIsIGRldl9wcml2LT5ndF9pcnFfbWFzayk7Ci19Ci0KLXZvaWQgZ2VuNV9lbmFibGVfZ3RfaXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIG1hc2spCi17Ci0JaWxrX3VwZGF0ZV9ndF9pcnEoZGV2X3ByaXYsIG1hc2ssIG1hc2spOwotCWludGVsX3VuY29yZV9wb3N0aW5nX3JlYWRfZncoJmRldl9wcml2LT51bmNvcmUsIEdUSU1SKTsKLX0KLQotdm9pZCBnZW41X2Rpc2FibGVfZ3RfaXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIG1hc2spCi17Ci0JaWxrX3VwZGF0ZV9ndF9pcnEoZGV2X3ByaXYsIG1hc2ssIDApOwotfQotCiBzdGF0aWMgaTkxNV9yZWdfdCBnZW42X3BtX2lpcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJV0FSTl9PTl9PTkNFKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpOwpAQCAtNDA5LDE3OCArMzM0LDc0IEBAIHN0YXRpYyBpOTE1X3JlZ190IGdlbjZfcG1faWlyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gSU5URUxfR0VOKGRldl9wcml2KSA+PSA4ID8gR0VOOF9HVF9JSVIoMikgOiBHRU42X1BNSUlSOwogfQogCi1zdGF0aWMgdm9pZCB3cml0ZV9wbV9pbXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWk5MTVfcmVnX3QgcmVnOwotCXUzMiBtYXNrID0gZGV2X3ByaXYtPnBtX2ltcjsKLQotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCXJlZyA9IEdFTjExX0dQTV9XR0JPWFBFUkZfSU5UUl9NQVNLOwotCQkvKiBwbSBpcyBpbiB1cHBlciBoYWxmICovCi0JCW1hc2sgPSBtYXNrIDw8IDE2OwotCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KSB7Ci0JCXJlZyA9IEdFTjhfR1RfSU1SKDIpOwotCX0gZWxzZSB7Ci0JCXJlZyA9IEdFTjZfUE1JTVI7Ci0JfQotCi0JSTkxNV9XUklURShyZWcsIG1hc2spOwotCVBPU1RJTkdfUkVBRChyZWcpOwotfQotCi1zdGF0aWMgdm9pZCB3cml0ZV9wbV9pZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWk5MTVfcmVnX3QgcmVnOwotCXUzMiBtYXNrID0gZGV2X3ByaXYtPnBtX2llcjsKLQotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCXJlZyA9IEdFTjExX0dQTV9XR0JPWFBFUkZfSU5UUl9FTkFCTEU7Ci0JCS8qIHBtIGlzIGluIHVwcGVyIGhhbGYgKi8KLQkJbWFzayA9IG1hc2sgPDwgMTY7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKLQkJcmVnID0gR0VOOF9HVF9JRVIoMik7Ci0JfSBlbHNlIHsKLQkJcmVnID0gR0VONl9QTUlFUjsKLQl9Ci0KLQlJOTE1X1dSSVRFKHJlZywgbWFzayk7Ci19Ci0KLS8qKgotICogc25iX3VwZGF0ZV9wbV9pcnEgLSB1cGRhdGUgR0VONl9QTUlNUgotICogQGRldl9wcml2OiBkcml2ZXIgcHJpdmF0ZQotICogQGludGVycnVwdF9tYXNrOiBtYXNrIG9mIGludGVycnVwdCBiaXRzIHRvIHVwZGF0ZQotICogQGVuYWJsZWRfaXJxX21hc2s6IG1hc2sgb2YgaW50ZXJydXB0IGJpdHMgdG8gZW5hYmxlCi0gKi8KLXN0YXRpYyB2b2lkIHNuYl91cGRhdGVfcG1faXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgICAgIHUzMiBpbnRlcnJ1cHRfbWFzaywKLQkJCSAgICAgIHUzMiBlbmFibGVkX2lycV9tYXNrKQotewotCXUzMiBuZXdfdmFsOwotCi0JV0FSTl9PTihlbmFibGVkX2lycV9tYXNrICYgfmludGVycnVwdF9tYXNrKTsKLQotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnFfbG9jayk7Ci0KLQluZXdfdmFsID0gZGV2X3ByaXYtPnBtX2ltcjsKLQluZXdfdmFsICY9IH5pbnRlcnJ1cHRfbWFzazsKLQluZXdfdmFsIHw9ICh+ZW5hYmxlZF9pcnFfbWFzayAmIGludGVycnVwdF9tYXNrKTsKLQotCWlmIChuZXdfdmFsICE9IGRldl9wcml2LT5wbV9pbXIpIHsKLQkJZGV2X3ByaXYtPnBtX2ltciA9IG5ld192YWw7Ci0JCXdyaXRlX3BtX2ltcihkZXZfcHJpdik7Ci0JfQotfQotCi12b2lkIGdlbjZfdW5tYXNrX3BtX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYXNrKQotewotCWlmIChXQVJOX09OKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKSkKLQkJcmV0dXJuOwotCi0Jc25iX3VwZGF0ZV9wbV9pcnEoZGV2X3ByaXYsIG1hc2ssIG1hc2spOwotfQotCi1zdGF0aWMgdm9pZCBfX2dlbjZfbWFza19wbV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzaykKLXsKLQlzbmJfdXBkYXRlX3BtX2lycShkZXZfcHJpdiwgbWFzaywgMCk7Ci19Ci0KLXZvaWQgZ2VuNl9tYXNrX3BtX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYXNrKQotewotCWlmIChXQVJOX09OKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKSkKLQkJcmV0dXJuOwotCi0JX19nZW42X21hc2tfcG1faXJxKGRldl9wcml2LCBtYXNrKTsKLX0KLQotc3RhdGljIHZvaWQgZ2VuNl9yZXNldF9wbV9paXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVzZXRfbWFzaykKLXsKLQlpOTE1X3JlZ190IHJlZyA9IGdlbjZfcG1faWlyKGRldl9wcml2KTsKLQotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnFfbG9jayk7Ci0KLQlJOTE1X1dSSVRFKHJlZywgcmVzZXRfbWFzayk7Ci0JSTkxNV9XUklURShyZWcsIHJlc2V0X21hc2spOwotCVBPU1RJTkdfUkVBRChyZWcpOwotfQotCi1zdGF0aWMgdm9pZCBnZW42X2VuYWJsZV9wbV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgZW5hYmxlX21hc2spCi17Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKLQotCWRldl9wcml2LT5wbV9pZXIgfD0gZW5hYmxlX21hc2s7Ci0Jd3JpdGVfcG1faWVyKGRldl9wcml2KTsKLQlnZW42X3VubWFza19wbV9pcnEoZGV2X3ByaXYsIGVuYWJsZV9tYXNrKTsKLQkvKiB1bm1hc2tfcG1faXJxIHByb3ZpZGVzIGFuIGltcGxpY2l0IGJhcnJpZXIgKFBPU1RJTkdfUkVBRCkgKi8KLX0KLQotc3RhdGljIHZvaWQgZ2VuNl9kaXNhYmxlX3BtX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBkaXNhYmxlX21hc2spCi17Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKLQotCWRldl9wcml2LT5wbV9pZXIgJj0gfmRpc2FibGVfbWFzazsKLQlfX2dlbjZfbWFza19wbV9pcnEoZGV2X3ByaXYsIGRpc2FibGVfbWFzayk7Ci0Jd3JpdGVfcG1faWVyKGRldl9wcml2KTsKLQkvKiB0aG91Z2ggYSBiYXJyaWVyIGlzIG1pc3NpbmcgaGVyZSwgYnV0IGRvbid0IHJlYWxseSBuZWVkIGEgb25lICovCi19Ci0KIHZvaWQgZ2VuMTFfcmVzZXRfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3RydWN0IGludGVsX2d0ICpndCA9ICZkZXZfcHJpdi0+Z3Q7CiAKLQl3aGlsZSAoZ2VuMTFfcmVzZXRfb25lX2lpcihkZXZfcHJpdiwgMCwgR0VOMTFfR1RQTSkpCisJc3Bpbl9sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKKworCXdoaWxlIChnZW4xMV9ndF9yZXNldF9vbmVfaWlyKGd0LCAwLCBHRU4xMV9HVFBNKSkKIAkJOwogCiAJZGV2X3ByaXYtPmd0X3BtLnJwcy5wbV9paXIgPSAwOwogCi0Jc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKIH0KIAogdm9pZCBnZW42X3Jlc2V0X3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwotCWdlbjZfcmVzZXRfcG1faWlyKGRldl9wcml2LCBHRU42X1BNX1JQU19FVkVOVFMpOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmZGV2X3ByaXYtPmd0OworCisJc3Bpbl9sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKKwlnZW42X2d0X3BtX3Jlc2V0X2lpcihndCwgR0VONl9QTV9SUFNfRVZFTlRTKTsKIAlkZXZfcHJpdi0+Z3RfcG0ucnBzLnBtX2lpciA9IDA7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKIH0KIAogdm9pZCBnZW42X2VuYWJsZV9ycHNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CisJc3RydWN0IGludGVsX2d0ICpndCA9ICZkZXZfcHJpdi0+Z3Q7CiAJc3RydWN0IGludGVsX3JwcyAqcnBzID0gJmRldl9wcml2LT5ndF9wbS5ycHM7CiAKIAlpZiAoUkVBRF9PTkNFKHJwcy0+aW50ZXJydXB0c19lbmFibGVkKSkKIAkJcmV0dXJuOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZndC0+aXJxX2xvY2spOwogCVdBUk5fT05fT05DRShycHMtPnBtX2lpcik7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKLQkJV0FSTl9PTl9PTkNFKGdlbjExX3Jlc2V0X29uZV9paXIoZGV2X3ByaXYsIDAsIEdFTjExX0dUUE0pKTsKKwkJV0FSTl9PTl9PTkNFKGdlbjExX2d0X3Jlc2V0X29uZV9paXIoZ3QsIDAsIEdFTjExX0dUUE0pKTsKIAllbHNlCiAJCVdBUk5fT05fT05DRShJOTE1X1JFQUQoZ2VuNl9wbV9paXIoZGV2X3ByaXYpKSAmIGRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsKIAogCXJwcy0+aW50ZXJydXB0c19lbmFibGVkID0gdHJ1ZTsKLQlnZW42X2VuYWJsZV9wbV9pcnEoZGV2X3ByaXYsIGRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsKKwlnZW42X2d0X3BtX2VuYWJsZV9pcnEoZ3QsIGRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsKIAotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmd0LT5pcnFfbG9jayk7Cit9CisKK3UzMiBnZW42X3Nhbml0aXplX3Jwc19wbV9tYXNrKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1MzIgbWFzaykKK3sKKwlyZXR1cm4gbWFzayAmIH5pOTE1LT5ndF9wbS5ycHMucG1faW50cm1za19tYno7CiB9CiAKIHZvaWQgZ2VuNl9kaXNhYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfcnBzICpycHMgPSAmZGV2X3ByaXYtPmd0X3BtLnJwczsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gJmRldl9wcml2LT5ndDsKIAogCWlmICghUkVBRF9PTkNFKHJwcy0+aW50ZXJydXB0c19lbmFibGVkKSkKIAkJcmV0dXJuOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZndC0+aXJxX2xvY2spOwogCXJwcy0+aW50ZXJydXB0c19lbmFibGVkID0gZmFsc2U7CiAKIAlJOTE1X1dSSVRFKEdFTjZfUE1JTlRSTVNLLCBnZW42X3Nhbml0aXplX3Jwc19wbV9tYXNrKGRldl9wcml2LCB+MHUpKTsKIAotCWdlbjZfZGlzYWJsZV9wbV9pcnEoZGV2X3ByaXYsIEdFTjZfUE1fUlBTX0VWRU5UUyk7CisJZ2VuNl9ndF9wbV9kaXNhYmxlX2lycShndCwgR0VONl9QTV9SUFNfRVZFTlRTKTsKIAotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKLQlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRybS5pcnEpOworCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKKwlpbnRlbF9zeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYpOwogCiAJLyogTm93IHRoYXQgd2Ugd2lsbCBub3QgYmUgZ2VuZXJhdGluZyBhbnkgbW9yZSB3b3JrLCBmbHVzaCBhbnkKIAkgKiBvdXRzdGFuZGluZyB0YXNrcy4gQXMgd2UgYXJlIGNhbGxlZCBvbiB0aGUgUlBTIGlkbGUgcGF0aCwKQEAgLTU5NCw3OCArNDE1LDkwIEBAIHZvaWQgZ2VuNl9kaXNhYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZ2VuNl9yZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7CiB9CiAKLXZvaWQgZ2VuOV9yZXNldF9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit2b2lkIGdlbjlfcmVzZXRfZ3VjX2ludGVycnVwdHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogewotCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBndWNfdG9fZ3QoZ3VjKTsKIAotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Ci0JZ2VuNl9yZXNldF9wbV9paXIoZGV2X3ByaXYsIGRldl9wcml2LT5wbV9ndWNfZXZlbnRzKTsKLQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKCZndC0+aTkxNS0+cnVudGltZV9wbSk7CisKKwlzcGluX2xvY2tfaXJxKCZndC0+aXJxX2xvY2spOworCWdlbjZfZ3RfcG1fcmVzZXRfaWlyKGd0LCBndC0+cG1fZ3VjX2V2ZW50cyk7CisJc3Bpbl91bmxvY2tfaXJxKCZndC0+aXJxX2xvY2spOwogfQogCi12b2lkIGdlbjlfZW5hYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3ZvaWQgZ2VuOV9lbmFibGVfZ3VjX2ludGVycnVwdHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogewotCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBndWNfdG9fZ3QoZ3VjKTsKIAotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Ci0JaWYgKCFkZXZfcHJpdi0+Z3VjLmludGVycnVwdHMuZW5hYmxlZCkgewotCQlXQVJOX09OX09OQ0UoSTkxNV9SRUFEKGdlbjZfcG1faWlyKGRldl9wcml2KSkgJgotCQkJCSAgICAgICBkZXZfcHJpdi0+cG1fZ3VjX2V2ZW50cyk7Ci0JCWRldl9wcml2LT5ndWMuaW50ZXJydXB0cy5lbmFibGVkID0gdHJ1ZTsKLQkJZ2VuNl9lbmFibGVfcG1faXJxKGRldl9wcml2LCBkZXZfcHJpdi0+cG1fZ3VjX2V2ZW50cyk7CisJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKCZndC0+aTkxNS0+cnVudGltZV9wbSk7CisKKwlzcGluX2xvY2tfaXJxKCZndC0+aXJxX2xvY2spOworCWlmICghZ3VjLT5pbnRlcnJ1cHRzLmVuYWJsZWQpIHsKKwkJV0FSTl9PTl9PTkNFKGludGVsX3VuY29yZV9yZWFkKGd0LT51bmNvcmUsCisJCQkJCSAgICAgICBnZW42X3BtX2lpcihndC0+aTkxNSkpICYKKwkJCSAgICAgZ3QtPnBtX2d1Y19ldmVudHMpOworCQlndWMtPmludGVycnVwdHMuZW5hYmxlZCA9IHRydWU7CisJCWdlbjZfZ3RfcG1fZW5hYmxlX2lycShndCwgZ3QtPnBtX2d1Y19ldmVudHMpOwogCX0KLQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZndC0+aXJxX2xvY2spOwogfQogCi12b2lkIGdlbjlfZGlzYWJsZV9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit2b2lkIGdlbjlfZGlzYWJsZV9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiB7Ci0JYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGd1Y190b19ndChndWMpOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKLQlkZXZfcHJpdi0+Z3VjLmludGVycnVwdHMuZW5hYmxlZCA9IGZhbHNlOworCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZCgmZ3QtPmk5MTUtPnJ1bnRpbWVfcG0pOwogCi0JZ2VuNl9kaXNhYmxlX3BtX2lycShkZXZfcHJpdiwgZGV2X3ByaXYtPnBtX2d1Y19ldmVudHMpOworCXNwaW5fbG9ja19pcnEoJmd0LT5pcnFfbG9jayk7CisJZ3VjLT5pbnRlcnJ1cHRzLmVuYWJsZWQgPSBmYWxzZTsKIAotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKLQlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRybS5pcnEpOworCWdlbjZfZ3RfcG1fZGlzYWJsZV9pcnEoZ3QsIGd0LT5wbV9ndWNfZXZlbnRzKTsKIAotCWdlbjlfcmVzZXRfZ3VjX2ludGVycnVwdHMoZGV2X3ByaXYpOworCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKKwlpbnRlbF9zeW5jaHJvbml6ZV9pcnEoZ3QtPmk5MTUpOworCisJZ2VuOV9yZXNldF9ndWNfaW50ZXJydXB0cyhndWMpOwogfQogCi12b2lkIGdlbjExX3Jlc2V0X2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQordm9pZCBnZW4xMV9yZXNldF9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiB7Ci0Jc3Bpbl9sb2NrX2lycSgmaTkxNS0+aXJxX2xvY2spOwotCWdlbjExX3Jlc2V0X29uZV9paXIoaTkxNSwgMCwgR0VOMTFfR1VDKTsKLQlzcGluX3VubG9ja19pcnEoJmk5MTUtPmlycV9sb2NrKTsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gZ3VjX3RvX2d0KGd1Yyk7CisKKwlzcGluX2xvY2tfaXJxKCZndC0+aXJxX2xvY2spOworCWdlbjExX2d0X3Jlc2V0X29uZV9paXIoZ3QsIDAsIEdFTjExX0dVQyk7CisJc3Bpbl91bmxvY2tfaXJxKCZndC0+aXJxX2xvY2spOwogfQogCi12b2lkIGdlbjExX2VuYWJsZV9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit2b2lkIGdlbjExX2VuYWJsZV9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiB7Ci0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKLQlpZiAoIWRldl9wcml2LT5ndWMuaW50ZXJydXB0cy5lbmFibGVkKSB7Ci0JCXUzMiBldmVudHMgPSBSRUdfRklFTERfUFJFUChFTkdJTkUxX01BU0ssCi0JCQkJCSAgICBHRU4xMV9HVUNfSU5UUl9HVUMySE9TVCk7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGd1Y190b19ndChndWMpOwogCi0JCVdBUk5fT05fT05DRShnZW4xMV9yZXNldF9vbmVfaWlyKGRldl9wcml2LCAwLCBHRU4xMV9HVUMpKTsKLQkJSTkxNV9XUklURShHRU4xMV9HVUNfU0dfSU5UUl9FTkFCTEUsIGV2ZW50cyk7Ci0JCUk5MTVfV1JJVEUoR0VOMTFfR1VDX1NHX0lOVFJfTUFTSywgfmV2ZW50cyk7Ci0JCWRldl9wcml2LT5ndWMuaW50ZXJydXB0cy5lbmFibGVkID0gdHJ1ZTsKKwlzcGluX2xvY2tfaXJxKCZndC0+aXJxX2xvY2spOworCWlmICghZ3VjLT5pbnRlcnJ1cHRzLmVuYWJsZWQpIHsKKwkJdTMyIGV2ZW50cyA9IFJFR19GSUVMRF9QUkVQKEVOR0lORTFfTUFTSywgR1VDX0lOVFJfR1VDMkhPU1QpOworCisJCVdBUk5fT05fT05DRShnZW4xMV9ndF9yZXNldF9vbmVfaWlyKGd0LCAwLCBHRU4xMV9HVUMpKTsKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKGd0LT51bmNvcmUsIEdFTjExX0dVQ19TR19JTlRSX0VOQUJMRSwgZXZlbnRzKTsKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKGd0LT51bmNvcmUsIEdFTjExX0dVQ19TR19JTlRSX01BU0ssIH5ldmVudHMpOworCQlndWMtPmludGVycnVwdHMuZW5hYmxlZCA9IHRydWU7CiAJfQotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmd0LT5pcnFfbG9jayk7CiB9CiAKLXZvaWQgZ2VuMTFfZGlzYWJsZV9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit2b2lkIGdlbjExX2Rpc2FibGVfZ3VjX2ludGVycnVwdHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogewotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Ci0JZGV2X3ByaXYtPmd1Yy5pbnRlcnJ1cHRzLmVuYWJsZWQgPSBmYWxzZTsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gZ3VjX3RvX2d0KGd1Yyk7CiAKLQlJOTE1X1dSSVRFKEdFTjExX0dVQ19TR19JTlRSX01BU0ssIH4wKTsKLQlJOTE1X1dSSVRFKEdFTjExX0dVQ19TR19JTlRSX0VOQUJMRSwgMCk7CisJc3Bpbl9sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKKwlndWMtPmludGVycnVwdHMuZW5hYmxlZCA9IGZhbHNlOwogCi0Jc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwotCXN5bmNocm9uaXplX2lycShkZXZfcHJpdi0+ZHJtLmlycSk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKGd0LT51bmNvcmUsIEdFTjExX0dVQ19TR19JTlRSX01BU0ssIH4wKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUoZ3QtPnVuY29yZSwgR0VOMTFfR1VDX1NHX0lOVFJfRU5BQkxFLCAwKTsKIAotCWdlbjExX3Jlc2V0X2d1Y19pbnRlcnJ1cHRzKGRldl9wcml2KTsKKwlzcGluX3VubG9ja19pcnEoJmd0LT5pcnFfbG9jayk7CisJaW50ZWxfc3luY2hyb25pemVfaXJxKGd0LT5pOTE1KTsKKworCWdlbjExX3Jlc2V0X2d1Y19pbnRlcnJ1cHRzKGd1Yyk7CiB9CiAKIC8qKgpAQCAtOTI0LDExICs3NTcsMTIgQEAgc3RhdGljIHZvaWQgaTkxNV9lbmFibGVfYXNsZV9waXBlc3RhdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAvKiBDYWxsZWQgZnJvbSBkcm0gZ2VuZXJpYyBjb2RlLCBwYXNzZWQgYSAnY3J0YycsIHdoaWNoCiAgKiB3ZSB1c2UgYXMgYSBwaXBlIGluZGV4CiAgKi8KLXN0YXRpYyB1MzIgaTkxNV9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCit1MzIgaTkxNV9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2LT52YmxhbmtbcGlwZV07CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOworCXN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZkZXZfcHJpdi0+ZHJtLnZibGFua1tkcm1fY3J0Y19pbmRleChjcnRjKV07CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmdmJsYW5rLT5od21vZGU7CisJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlOwogCWk5MTVfcmVnX3QgaGlnaF9mcmFtZSwgbG93X2ZyYW1lOwogCXUzMiBoaWdoMSwgaGlnaDIsIGxvdywgcGl4ZWwsIHZibF9zdGFydCwgaHN5bmNfc3RhcnQsIGh0b3RhbDsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwpAQCAtOTg5LDkgKzgyMywxMCBAQCBzdGF0aWMgdTMyIGk5MTVfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCXJldHVybiAoKChoaWdoMSA8PCA4KSB8IGxvdykgKyAocGl4ZWwgPj0gdmJsX3N0YXJ0KSkgJiAweGZmZmZmZjsKIH0KIAotc3RhdGljIHUzMiBnNHhfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQordTMyIGc0eF9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CisJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlOwogCiAJcmV0dXJuIEk5MTVfUkVBRChQSVBFX0ZSTUNPVU5UX0c0WChwaXBlKSk7CiB9CkBAIC0xMTA3LDEwICs5NDIsMTAgQEAgc3RhdGljIGludCBfX2ludGVsX2dldF9jcnRjX3NjYW5saW5lKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCXJldHVybiAocG9zaXRpb24gKyBjcnRjLT5zY2FubGluZV9vZmZzZXQpICUgdnRvdGFsOwogfQogCi1zdGF0aWMgYm9vbCBpOTE1X2dldF9jcnRjX3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCi0JCQkJICAgICBib29sIGluX3ZibGFua19pcnEsIGludCAqdnBvcywgaW50ICpocG9zLAotCQkJCSAgICAga3RpbWVfdCAqc3RpbWUsIGt0aW1lX3QgKmV0aW1lLAotCQkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCitib29sIGk5MTVfZ2V0X2NydGNfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKKwkJCSAgICAgIGJvb2wgaW5fdmJsYW5rX2lycSwgaW50ICp2cG9zLCBpbnQgKmhwb3MsCisJCQkgICAgICBrdGltZV90ICpzdGltZSwga3RpbWVfdCAqZXRpbWUsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZfcHJpdiwKQEAgLTEzMzUsMTcgKzExNzAsMTggQEAgc3RhdGljIHZvaWQgZ2VuNl9wbV9ycHNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCBndF9wbS5ycHMud29yayk7CisJc3RydWN0IGludGVsX2d0ICpndCA9ICZkZXZfcHJpdi0+Z3Q7CiAJc3RydWN0IGludGVsX3JwcyAqcnBzID0gJmRldl9wcml2LT5ndF9wbS5ycHM7CiAJYm9vbCBjbGllbnRfYm9vc3QgPSBmYWxzZTsKIAlpbnQgbmV3X2RlbGF5LCBhZGosIG1pbiwgbWF4OwogCXUzMiBwbV9paXIgPSAwOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZndC0+aXJxX2xvY2spOwogCWlmIChycHMtPmludGVycnVwdHNfZW5hYmxlZCkgewogCQlwbV9paXIgPSBmZXRjaF9hbmRfemVybygmcnBzLT5wbV9paXIpOwogCQljbGllbnRfYm9vc3QgPSBhdG9taWNfcmVhZCgmcnBzLT5udW1fd2FpdGVycyk7CiAJfQotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmd0LT5pcnFfbG9jayk7CiAKIAkvKiBNYWtlIHN1cmUgd2UgZGlkbid0IHF1ZXVlIGFueXRoaW5nIHdlJ3JlIG5vdCBnb2luZyB0byBwcm9jZXNzLiAqLwogCVdBUk5fT04ocG1faWlyICYgfmRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsKQEAgLTE0MjIsMTAgKzEyNTgsMTAgQEAgc3RhdGljIHZvaWQgZ2VuNl9wbV9ycHNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIG91dDoKIAkvKiBNYWtlIHN1cmUgbm90IHRvIGNvcnJ1cHQgUE1JTVIgc3RhdGUgdXNlZCBieSByaW5nYnVmZmVyIG9uIEdFTjYgKi8KLQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fbG9ja19pcnEoJmd0LT5pcnFfbG9jayk7CiAJaWYgKHJwcy0+aW50ZXJydXB0c19lbmFibGVkKQotCQlnZW42X3VubWFza19wbV9pcnEoZGV2X3ByaXYsIGRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsKLQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJCWdlbjZfZ3RfcG1fdW5tYXNrX2lycShndCwgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpOworCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKIH0KIAogCkBAIC0xNDQyLDYgKzEyNzgsNyBAQCBzdGF0aWMgdm9pZCBpdnlicmlkZ2VfcGFyaXR5X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmRldl9wcml2KSwgbDNfcGFyaXR5LmVycm9yX3dvcmspOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmZGV2X3ByaXYtPmd0OwogCXUzMiBlcnJvcl9zdGF0dXMsIHJvdywgYmFuaywgc3ViYmFuazsKIAljaGFyICpwYXJpdHlfZXZlbnRbNl07CiAJdTMyIG1pc2NjcGN0bDsKQEAgLTE1MDMsMTQ0ICsxMzQwLDEzIEBAIHN0YXRpYyB2b2lkIGl2eWJyaWRnZV9wYXJpdHlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIG91dDoKIAlXQVJOX09OKGRldl9wcml2LT5sM19wYXJpdHkud2hpY2hfc2xpY2UpOwotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Ci0JZ2VuNV9lbmFibGVfZ3RfaXJxKGRldl9wcml2LCBHVF9QQVJJVFlfRVJST1IoZGV2X3ByaXYpKTsKLQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKKwlnZW41X2d0X2VuYWJsZV9pcnEoZ3QsIEdUX1BBUklUWV9FUlJPUihkZXZfcHJpdikpOworCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKIAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogfQogCi1zdGF0aWMgdm9pZCBpdnlicmlkZ2VfcGFyaXR5X2Vycm9yX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkJICAgICAgIHUzMiBpaXIpCi17Ci0JaWYgKCFIQVNfTDNfRFBGKGRldl9wcml2KSkKLQkJcmV0dXJuOwotCi0Jc3Bpbl9sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwotCWdlbjVfZGlzYWJsZV9ndF9pcnEoZGV2X3ByaXYsIEdUX1BBUklUWV9FUlJPUihkZXZfcHJpdikpOwotCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwotCi0JaWlyICY9IEdUX1BBUklUWV9FUlJPUihkZXZfcHJpdik7Ci0JaWYgKGlpciAmIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUX1MxKQotCQlkZXZfcHJpdi0+bDNfcGFyaXR5LndoaWNoX3NsaWNlIHw9IDEgPDwgMTsKLQotCWlmIChpaXIgJiBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVCkKLQkJZGV2X3ByaXYtPmwzX3Bhcml0eS53aGljaF9zbGljZSB8PSAxIDw8IDA7Ci0KLQlxdWV1ZV93b3JrKGRldl9wcml2LT53cSwgJmRldl9wcml2LT5sM19wYXJpdHkuZXJyb3Jfd29yayk7Ci19Ci0KLXN0YXRpYyB2b2lkIGlsa19ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICAgICAgdTMyIGd0X2lpcikKLXsKLQlpZiAoZ3RfaWlyICYgR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUKQotCQlpbnRlbF9lbmdpbmVfYnJlYWRjcnVtYnNfaXJxKGRldl9wcml2LT5lbmdpbmVbUkNTMF0pOwotCWlmIChndF9paXIgJiBJTEtfQlNEX1VTRVJfSU5URVJSVVBUKQotCQlpbnRlbF9lbmdpbmVfYnJlYWRjcnVtYnNfaXJxKGRldl9wcml2LT5lbmdpbmVbVkNTMF0pOwotfQotCi1zdGF0aWMgdm9pZCBzbmJfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICAgICAgIHUzMiBndF9paXIpCi17Ci0JaWYgKGd0X2lpciAmIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCkKLQkJaW50ZWxfZW5naW5lX2JyZWFkY3J1bWJzX2lycShkZXZfcHJpdi0+ZW5naW5lW1JDUzBdKTsKLQlpZiAoZ3RfaWlyICYgR1RfQlNEX1VTRVJfSU5URVJSVVBUKQotCQlpbnRlbF9lbmdpbmVfYnJlYWRjcnVtYnNfaXJxKGRldl9wcml2LT5lbmdpbmVbVkNTMF0pOwotCWlmIChndF9paXIgJiBHVF9CTFRfVVNFUl9JTlRFUlJVUFQpCi0JCWludGVsX2VuZ2luZV9icmVhZGNydW1ic19pcnEoZGV2X3ByaXYtPmVuZ2luZVtCQ1MwXSk7Ci0KLQlpZiAoZ3RfaWlyICYgKEdUX0JMVF9DU19FUlJPUl9JTlRFUlJVUFQgfAotCQkgICAgICBHVF9CU0RfQ1NfRVJST1JfSU5URVJSVVBUIHwKLQkJICAgICAgR1RfUkVOREVSX0NTX01BU1RFUl9FUlJPUl9JTlRFUlJVUFQpKQotCQlEUk1fREVCVUcoIkNvbW1hbmQgcGFyc2VyIGVycm9yLCBndF9paXIgMHglMDh4XG4iLCBndF9paXIpOwotCi0JaWYgKGd0X2lpciAmIEdUX1BBUklUWV9FUlJPUihkZXZfcHJpdikpCi0JCWl2eWJyaWRnZV9wYXJpdHlfZXJyb3JfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGd0X2lpcik7Ci19Ci0KLXN0YXRpYyB2b2lkCi1nZW44X2NzX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIGlpcikKLXsKLQlib29sIHRhc2tsZXQgPSBmYWxzZTsKLQotCWlmIChpaXIgJiBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQpCi0JCXRhc2tsZXQgPSB0cnVlOwotCi0JaWYgKGlpciAmIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCkgewotCQlpbnRlbF9lbmdpbmVfYnJlYWRjcnVtYnNfaXJxKGVuZ2luZSk7Ci0JCXRhc2tsZXQgfD0gaW50ZWxfZW5naW5lX25lZWRzX2JyZWFkY3J1bWJfdGFza2xldChlbmdpbmUpOwotCX0KLQotCWlmICh0YXNrbGV0KQotCQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0KTsKLX0KLQotc3RhdGljIHZvaWQgZ2VuOF9ndF9pcnFfYWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkJICAgIHUzMiBtYXN0ZXJfY3RsLCB1MzIgZ3RfaWlyWzRdKQotewotCXZvaWQgX19pb21lbSAqIGNvbnN0IHJlZ3MgPSBpOTE1LT51bmNvcmUucmVnczsKLQotI2RlZmluZSBHRU44X0dUX0lSUVMgKEdFTjhfR1RfUkNTX0lSUSB8IFwKLQkJICAgICAgR0VOOF9HVF9CQ1NfSVJRIHwgXAotCQkgICAgICBHRU44X0dUX1ZDUzBfSVJRIHwgXAotCQkgICAgICBHRU44X0dUX1ZDUzFfSVJRIHwgXAotCQkgICAgICBHRU44X0dUX1ZFQ1NfSVJRIHwgXAotCQkgICAgICBHRU44X0dUX1BNX0lSUSB8IFwKLQkJICAgICAgR0VOOF9HVF9HVUNfSVJRKQotCi0JaWYgKG1hc3Rlcl9jdGwgJiAoR0VOOF9HVF9SQ1NfSVJRIHwgR0VOOF9HVF9CQ1NfSVJRKSkgewotCQlndF9paXJbMF0gPSByYXdfcmVnX3JlYWQocmVncywgR0VOOF9HVF9JSVIoMCkpOwotCQlpZiAobGlrZWx5KGd0X2lpclswXSkpCi0JCQlyYXdfcmVnX3dyaXRlKHJlZ3MsIEdFTjhfR1RfSUlSKDApLCBndF9paXJbMF0pOwotCX0KLQotCWlmIChtYXN0ZXJfY3RsICYgKEdFTjhfR1RfVkNTMF9JUlEgfCBHRU44X0dUX1ZDUzFfSVJRKSkgewotCQlndF9paXJbMV0gPSByYXdfcmVnX3JlYWQocmVncywgR0VOOF9HVF9JSVIoMSkpOwotCQlpZiAobGlrZWx5KGd0X2lpclsxXSkpCi0JCQlyYXdfcmVnX3dyaXRlKHJlZ3MsIEdFTjhfR1RfSUlSKDEpLCBndF9paXJbMV0pOwotCX0KLQotCWlmIChtYXN0ZXJfY3RsICYgKEdFTjhfR1RfUE1fSVJRIHwgR0VOOF9HVF9HVUNfSVJRKSkgewotCQlndF9paXJbMl0gPSByYXdfcmVnX3JlYWQocmVncywgR0VOOF9HVF9JSVIoMikpOwotCQlpZiAobGlrZWx5KGd0X2lpclsyXSkpCi0JCQlyYXdfcmVnX3dyaXRlKHJlZ3MsIEdFTjhfR1RfSUlSKDIpLCBndF9paXJbMl0pOwotCX0KLQotCWlmIChtYXN0ZXJfY3RsICYgR0VOOF9HVF9WRUNTX0lSUSkgewotCQlndF9paXJbM10gPSByYXdfcmVnX3JlYWQocmVncywgR0VOOF9HVF9JSVIoMykpOwotCQlpZiAobGlrZWx5KGd0X2lpclszXSkpCi0JCQlyYXdfcmVnX3dyaXRlKHJlZ3MsIEdFTjhfR1RfSUlSKDMpLCBndF9paXJbM10pOwotCX0KLX0KLQotc3RhdGljIHZvaWQgZ2VuOF9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQl1MzIgbWFzdGVyX2N0bCwgdTMyIGd0X2lpcls0XSkKLXsKLQlpZiAobWFzdGVyX2N0bCAmIChHRU44X0dUX1JDU19JUlEgfCBHRU44X0dUX0JDU19JUlEpKSB7Ci0JCWdlbjhfY3NfaXJxX2hhbmRsZXIoaTkxNS0+ZW5naW5lW1JDUzBdLAotCQkJCSAgICBndF9paXJbMF0gPj4gR0VOOF9SQ1NfSVJRX1NISUZUKTsKLQkJZ2VuOF9jc19pcnFfaGFuZGxlcihpOTE1LT5lbmdpbmVbQkNTMF0sCi0JCQkJICAgIGd0X2lpclswXSA+PiBHRU44X0JDU19JUlFfU0hJRlQpOwotCX0KLQotCWlmIChtYXN0ZXJfY3RsICYgKEdFTjhfR1RfVkNTMF9JUlEgfCBHRU44X0dUX1ZDUzFfSVJRKSkgewotCQlnZW44X2NzX2lycV9oYW5kbGVyKGk5MTUtPmVuZ2luZVtWQ1MwXSwKLQkJCQkgICAgZ3RfaWlyWzFdID4+IEdFTjhfVkNTMF9JUlFfU0hJRlQpOwotCQlnZW44X2NzX2lycV9oYW5kbGVyKGk5MTUtPmVuZ2luZVtWQ1MxXSwKLQkJCQkgICAgZ3RfaWlyWzFdID4+IEdFTjhfVkNTMV9JUlFfU0hJRlQpOwotCX0KLQotCWlmIChtYXN0ZXJfY3RsICYgR0VOOF9HVF9WRUNTX0lSUSkgewotCQlnZW44X2NzX2lycV9oYW5kbGVyKGk5MTUtPmVuZ2luZVtWRUNTMF0sCi0JCQkJICAgIGd0X2lpclszXSA+PiBHRU44X1ZFQ1NfSVJRX1NISUZUKTsKLQl9Ci0KLQlpZiAobWFzdGVyX2N0bCAmIChHRU44X0dUX1BNX0lSUSB8IEdFTjhfR1RfR1VDX0lSUSkpIHsKLQkJZ2VuNl9ycHNfaXJxX2hhbmRsZXIoaTkxNSwgZ3RfaWlyWzJdKTsKLQkJZ2VuOV9ndWNfaXJxX2hhbmRsZXIoaTkxNSwgZ3RfaWlyWzJdKTsKLQl9Ci19Ci0KIHN0YXRpYyBib29sIGdlbjExX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdChlbnVtIGhwZF9waW4gcGluLCB1MzIgdmFsKQogewogCXN3aXRjaCAocGluKSB7CkBAIC0xNjU3LDYgKzEzNjMsMjYgQEAgc3RhdGljIGJvb2wgZ2VuMTFfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KGVudW0gaHBkX3BpbiBwaW4sIHUzMiB2YWwpCiAJfQogfQogCitzdGF0aWMgYm9vbCBnZW4xMl9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBocGRfcGluIHBpbiwgdTMyIHZhbCkKK3sKKwlzd2l0Y2ggKHBpbikgeworCWNhc2UgSFBEX1BPUlRfRDoKKwkJcmV0dXJuIHZhbCAmIEdFTjExX0hPVFBMVUdfQ1RMX0xPTkdfREVURUNUKFBPUlRfVEMxKTsKKwljYXNlIEhQRF9QT1JUX0U6CisJCXJldHVybiB2YWwgJiBHRU4xMV9IT1RQTFVHX0NUTF9MT05HX0RFVEVDVChQT1JUX1RDMik7CisJY2FzZSBIUERfUE9SVF9GOgorCQlyZXR1cm4gdmFsICYgR0VOMTFfSE9UUExVR19DVExfTE9OR19ERVRFQ1QoUE9SVF9UQzMpOworCWNhc2UgSFBEX1BPUlRfRzoKKwkJcmV0dXJuIHZhbCAmIEdFTjExX0hPVFBMVUdfQ1RMX0xPTkdfREVURUNUKFBPUlRfVEM0KTsKKwljYXNlIEhQRF9QT1JUX0g6CisJCXJldHVybiB2YWwgJiBHRU4xMV9IT1RQTFVHX0NUTF9MT05HX0RFVEVDVChQT1JUX1RDNSk7CisJY2FzZSBIUERfUE9SVF9JOgorCQlyZXR1cm4gdmFsICYgR0VOMTFfSE9UUExVR19DVExfTE9OR19ERVRFQ1QoUE9SVF9UQzYpOworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKIHN0YXRpYyBib29sIGJ4dF9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBocGRfcGluIHBpbiwgdTMyIHZhbCkKIHsKIAlzd2l0Y2ggKHBpbikgewpAQCAtMTY3OCw2ICsxNDA0LDggQEAgc3RhdGljIGJvb2wgaWNwX2RkaV9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBocGRfcGluIHBpbiwgdTMyIHZhbCkKIAkJcmV0dXJuIHZhbCAmIElDUF9ERElBX0hQRF9MT05HX0RFVEVDVDsKIAljYXNlIEhQRF9QT1JUX0I6CiAJCXJldHVybiB2YWwgJiBJQ1BfRERJQl9IUERfTE9OR19ERVRFQ1Q7CisJY2FzZSBIUERfUE9SVF9DOgorCQlyZXR1cm4gdmFsICYgVEdQX0RESUNfSFBEX0xPTkdfREVURUNUOwogCWRlZmF1bHQ6CiAJCXJldHVybiBmYWxzZTsKIAl9CkBAIC0xNjk5LDYgKzE0MjcsNDAgQEAgc3RhdGljIGJvb2wgaWNwX3RjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdChlbnVtIGhwZF9waW4gcGluLCB1MzIgdmFsKQogCX0KIH0KIAorc3RhdGljIGJvb2wgdGdwX2RkaV9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBocGRfcGluIHBpbiwgdTMyIHZhbCkKK3sKKwlzd2l0Y2ggKHBpbikgeworCWNhc2UgSFBEX1BPUlRfQToKKwkJcmV0dXJuIHZhbCAmIElDUF9ERElBX0hQRF9MT05HX0RFVEVDVDsKKwljYXNlIEhQRF9QT1JUX0I6CisJCXJldHVybiB2YWwgJiBJQ1BfRERJQl9IUERfTE9OR19ERVRFQ1Q7CisJY2FzZSBIUERfUE9SVF9DOgorCQlyZXR1cm4gdmFsICYgVEdQX0RESUNfSFBEX0xPTkdfREVURUNUOworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKK3N0YXRpYyBib29sIHRncF90Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBocGRfcGluIHBpbiwgdTMyIHZhbCkKK3sKKwlzd2l0Y2ggKHBpbikgeworCWNhc2UgSFBEX1BPUlRfRDoKKwkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzEpOworCWNhc2UgSFBEX1BPUlRfRToKKwkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzIpOworCWNhc2UgSFBEX1BPUlRfRjoKKwkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzMpOworCWNhc2UgSFBEX1BPUlRfRzoKKwkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzQpOworCWNhc2UgSFBEX1BPUlRfSDoKKwkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzUpOworCWNhc2UgSFBEX1BPUlRfSToKKwkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzYpOworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKIHN0YXRpYyBib29sIHNwdF9wb3J0X2hvdHBsdWcyX2xvbmdfZGV0ZWN0KGVudW0gaHBkX3BpbiBwaW4sIHUzMiB2YWwpCiB7CiAJc3dpdGNoIChwaW4pIHsKQEAgLTE3NzgsNiArMTU0MCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2dldF9ocGRfcGlucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJZW51bSBocGRfcGluIHBpbjsKIAorCUJVSUxEX0JVR19PTihCSVRTX1BFUl9UWVBFKCpwaW5fbWFzaykgPCBIUERfTlVNX1BJTlMpOworCiAJZm9yX2VhY2hfaHBkX3BpbihwaW4pIHsKIAkJaWYgKChocGRbcGluXSAmIGhvdHBsdWdfdHJpZ2dlcikgPT0gMCkKIAkJCWNvbnRpbnVlOwpAQCAtMTg5MSwxNyArMTY1NSwxOCBAQCBzdGF0aWMgdm9pZCBpOXh4X3BpcGVfY3JjX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIC8qIFRoZSBSUFMgZXZlbnRzIG5lZWQgZm9yY2V3YWtlLCBzbyB3ZSBhZGQgdGhlbSB0byBhIHdvcmsgcXVldWUgYW5kIG1hc2sgdGhlaXIKICAqIElNUiBiaXRzIHVudGlsIHRoZSB3b3JrIGlzIGRvbmUuIE90aGVyIGludGVycnVwdHMgY2FuIGJlIHByb2Nlc3NlZCB3aXRob3V0CiAgKiB0aGUgd29yayBxdWV1ZS4gKi8KLXN0YXRpYyB2b2lkIGdlbjExX3Jwc19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTMyIHBtX2lpcikKK3ZvaWQgZ2VuMTFfcnBzX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBwbV9paXIpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKIAlzdHJ1Y3QgaW50ZWxfcnBzICpycHMgPSAmaTkxNS0+Z3RfcG0ucnBzOwogCWNvbnN0IHUzMiBldmVudHMgPSBpOTE1LT5wbV9ycHNfZXZlbnRzICYgcG1faWlyOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+aXJxX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmd0LT5pcnFfbG9jayk7CiAKIAlpZiAodW5saWtlbHkoIWV2ZW50cykpCiAJCXJldHVybjsKIAotCWdlbjZfbWFza19wbV9pcnEoaTkxNSwgZXZlbnRzKTsKKwlnZW42X2d0X3BtX21hc2tfaXJxKGd0LCBldmVudHMpOwogCiAJaWYgKCFycHMtPmludGVycnVwdHNfZW5hYmxlZCkKIAkJcmV0dXJuOwpAQCAtMTkxMCwxOCArMTY3NSwxOSBAQCBzdGF0aWMgdm9pZCBnZW4xMV9ycHNfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHUzMiBwbV9paXIpCiAJc2NoZWR1bGVfd29yaygmcnBzLT53b3JrKTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuNl9ycHNfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcG1faWlyKQordm9pZCBnZW42X3Jwc19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwbV9paXIpCiB7CiAJc3RydWN0IGludGVsX3JwcyAqcnBzID0gJmRldl9wcml2LT5ndF9wbS5ycHM7CisJc3RydWN0IGludGVsX2d0ICpndCA9ICZkZXZfcHJpdi0+Z3Q7CiAKIAlpZiAocG1faWlyICYgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpIHsKLQkJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwotCQlnZW42X21hc2tfcG1faXJxKGRldl9wcml2LCBwbV9paXIgJiBkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyk7CisJCXNwaW5fbG9jaygmZ3QtPmlycV9sb2NrKTsKKwkJZ2VuNl9ndF9wbV9tYXNrX2lycShndCwgcG1faWlyICYgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpOwogCQlpZiAocnBzLT5pbnRlcnJ1cHRzX2VuYWJsZWQpIHsKIAkJCXJwcy0+cG1faWlyIHw9IHBtX2lpciAmIGRldl9wcml2LT5wbV9ycHNfZXZlbnRzOwogCQkJc2NoZWR1bGVfd29yaygmcnBzLT53b3JrKTsKIAkJfQotCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwkJc3Bpbl91bmxvY2soJmd0LT5pcnFfbG9jayk7CiAJfQogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKQEAgLTE5MzQsMTggKzE3MDAsNiBAQCBzdGF0aWMgdm9pZCBnZW42X3Jwc19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwbV9paXIpCiAJCURSTV9ERUJVRygiQ29tbWFuZCBwYXJzZXIgZXJyb3IsIHBtX2lpciAweCUwOHhcbiIsIHBtX2lpcik7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjlfZ3VjX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGd0X2lpcikKLXsKLQlpZiAoZ3RfaWlyICYgR0VOOV9HVUNfVE9fSE9TVF9JTlRfRVZFTlQpCi0JCWludGVsX2d1Y190b19ob3N0X2V2ZW50X2hhbmRsZXIoJmRldl9wcml2LT5ndWMpOwotfQotCi1zdGF0aWMgdm9pZCBnZW4xMV9ndWNfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHUxNiBpaXIpCi17Ci0JaWYgKGlpciAmIEdFTjExX0dVQ19JTlRSX0dVQzJIT1NUKQotCQlpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyKCZpOTE1LT5ndWMpOwotfQotCiBzdGF0aWMgdm9pZCBpOXh4X3BpcGVzdGF0X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJZW51bSBwaXBlIHBpcGU7CkBAIC0yMTg1LDggKzE5MzksNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIHN0YXRpYyBpcnFyZXR1cm5fdCB2YWxsZXl2aWV3X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYXJnOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBhcmc7CiAJaXJxcmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7CiAKIAlpZiAoIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpCkBAIC0yMjU0LDcgKzIwMDcsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdmFsbGV5dmlld19pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJCUk5MTVfV1JJVEUoVkxWX01BU1RFUl9JRVIsIE1BU1RFUl9JTlRFUlJVUFRfRU5BQkxFKTsKIAogCQlpZiAoZ3RfaWlyKQotCQkJc25iX2d0X2lycV9oYW5kbGVyKGRldl9wcml2LCBndF9paXIpOworCQkJZ2VuNl9ndF9pcnFfaGFuZGxlcigmZGV2X3ByaXYtPmd0LCBndF9paXIpOwogCQlpZiAocG1faWlyKQogCQkJZ2VuNl9ycHNfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIHBtX2lpcik7CiAKQEAgLTIyNzEsOCArMjAyNCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB2YWxsZXl2aWV3X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAogc3RhdGljIGlycXJldHVybl90IGNoZXJyeXZpZXdfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBhcmc7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGFyZzsKIAlpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTsKIAogCWlmICghaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSkKQEAgLTIzMTMsNyArMjA2NSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBjaGVycnl2aWV3X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAkJaWVyID0gSTkxNV9SRUFEKFZMVl9JRVIpOwogCQlJOTE1X1dSSVRFKFZMVl9JRVIsIDApOwogCi0JCWdlbjhfZ3RfaXJxX2FjayhkZXZfcHJpdiwgbWFzdGVyX2N0bCwgZ3RfaWlyKTsKKwkJZ2VuOF9ndF9pcnFfYWNrKCZkZXZfcHJpdi0+Z3QsIG1hc3Rlcl9jdGwsIGd0X2lpcik7CiAKIAkJaWYgKGlpciAmIEk5MTVfRElTUExBWV9QT1JUX0lOVEVSUlVQVCkKIAkJCWhvdHBsdWdfc3RhdHVzID0gaTl4eF9ocGRfaXJxX2FjayhkZXZfcHJpdik7CkBAIC0yMzM3LDcgKzIwODksNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgY2hlcnJ5dmlld19pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJCUk5MTVfV1JJVEUoVkxWX0lFUiwgaWVyKTsKIAkJSTkxNV9XUklURShHRU44X01BU1RFUl9JUlEsIEdFTjhfTUFTVEVSX0lSUV9DT05UUk9MKTsKIAotCQlnZW44X2d0X2lycV9oYW5kbGVyKGRldl9wcml2LCBtYXN0ZXJfY3RsLCBndF9paXIpOworCQlnZW44X2d0X2lycV9oYW5kbGVyKCZkZXZfcHJpdi0+Z3QsIG1hc3Rlcl9jdGwsIGd0X2lpcik7CiAKIAkJaWYgKGhvdHBsdWdfc3RhdHVzKQogCQkJaTl4eF9ocGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdfc3RhdHVzKTsKQEAgLTI1MDcsMTAgKzIyNTksMTggQEAgc3RhdGljIHZvaWQgY3B0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCiBzdGF0aWMgdm9pZCBpY3BfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lpciwKIAkJCSAgICBjb25zdCB1MzIgKnBpbnMpCiB7Ci0JdTMyIGRkaV9ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX0RESV9NQVNLX0lDUDsKLQl1MzIgdGNfaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9UQ19NQVNLX0lDUDsKKwl1MzIgZGRpX2hvdHBsdWdfdHJpZ2dlcjsKKwl1MzIgdGNfaG90cGx1Z190cmlnZ2VyOwogCXUzMiBwaW5fbWFzayA9IDAsIGxvbmdfbWFzayA9IDA7CiAKKwlpZiAoSEFTX1BDSF9NQ0MoZGV2X3ByaXYpKSB7CisJCWRkaV9ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX0RESV9NQVNLX1RHUDsKKwkJdGNfaG90cGx1Z190cmlnZ2VyID0gMDsKKwl9IGVsc2UgeworCQlkZGlfaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9ERElfTUFTS19JQ1A7CisJCXRjX2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfVENfTUFTS19JQ1A7CisJfQorCiAJaWYgKGRkaV9ob3RwbHVnX3RyaWdnZXIpIHsKIAkJdTMyIGRpZ19ob3RwbHVnX3JlZzsKIApAQCAtMjU0Miw2ICsyMzAyLDQzIEBAIHN0YXRpYyB2b2lkIGljcF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwY2hfaWlyLAogCQlnbWJ1c19pcnFfaGFuZGxlcihkZXZfcHJpdik7CiB9CiAKK3N0YXRpYyB2b2lkIHRncF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwY2hfaWlyKQoreworCXUzMiBkZGlfaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9ERElfTUFTS19UR1A7CisJdTMyIHRjX2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfVENfTUFTS19UR1A7CisJdTMyIHBpbl9tYXNrID0gMCwgbG9uZ19tYXNrID0gMDsKKworCWlmIChkZGlfaG90cGx1Z190cmlnZ2VyKSB7CisJCXUzMiBkaWdfaG90cGx1Z19yZWc7CisKKwkJZGlnX2hvdHBsdWdfcmVnID0gSTkxNV9SRUFEKFNIT1RQTFVHX0NUTF9EREkpOworCQlJOTE1X1dSSVRFKFNIT1RQTFVHX0NUTF9EREksIGRpZ19ob3RwbHVnX3JlZyk7CisKKwkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCisJCQkJICAgZGRpX2hvdHBsdWdfdHJpZ2dlciwKKwkJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZF90Z3AsCisJCQkJICAgdGdwX2RkaV9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOworCX0KKworCWlmICh0Y19ob3RwbHVnX3RyaWdnZXIpIHsKKwkJdTMyIGRpZ19ob3RwbHVnX3JlZzsKKworCQlkaWdfaG90cGx1Z19yZWcgPSBJOTE1X1JFQUQoU0hPVFBMVUdfQ1RMX1RDKTsKKwkJSTkxNV9XUklURShTSE9UUExVR19DVExfVEMsIGRpZ19ob3RwbHVnX3JlZyk7CisKKwkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCisJCQkJICAgdGNfaG90cGx1Z190cmlnZ2VyLAorCQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX3RncCwKKwkJCQkgICB0Z3BfdGNfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKKwl9CisKKwlpZiAocGluX21hc2spCisJCWludGVsX2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgcGluX21hc2ssIGxvbmdfbWFzayk7CisKKwlpZiAocGNoX2lpciAmIFNERV9HTUJVU19JQ1ApCisJCWdtYnVzX2lycV9oYW5kbGVyKGRldl9wcml2KTsKK30KKwogc3RhdGljIHZvaWQgc3B0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCiB7CiAJdTMyIGhvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfSE9UUExVR19NQVNLX1NQVCAmCkBAIC0yNjkxLDggKzI0ODgsNyBAQCBzdGF0aWMgdm9pZCBpdmJfZGlzcGxheV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKi8KIHN0YXRpYyBpcnFyZXR1cm5fdCBpcm9ubGFrZV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGFyZzsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gYXJnOwogCXUzMiBkZV9paXIsIGd0X2lpciwgZGVfaWVyLCBzZGVfaWVyID0gMDsKIAlpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTsKIApAQCAtMjcyMyw5ICsyNTE5LDkgQEAgc3RhdGljIGlycXJldHVybl90IGlyb25sYWtlX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAkJSTkxNV9XUklURShHVElJUiwgZ3RfaWlyKTsKIAkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpCi0JCQlzbmJfZ3RfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGd0X2lpcik7CisJCQlnZW42X2d0X2lycV9oYW5kbGVyKCZkZXZfcHJpdi0+Z3QsIGd0X2lpcik7CiAJCWVsc2UKLQkJCWlsa19ndF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgZ3RfaWlyKTsKKwkJCWdlbjVfZ3RfaXJxX2hhbmRsZXIoJmRldl9wcml2LT5ndCwgZ3RfaWlyKTsKIAl9CiAKIAlkZV9paXIgPSBJOTE1X1JFQUQoREVJSVIpOwpAQCAtMjc3OCw2ICsyNTc0LDE2IEBAIHN0YXRpYyB2b2lkIGdlbjExX2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBpaXIpCiAJdTMyIHBpbl9tYXNrID0gMCwgbG9uZ19tYXNrID0gMDsKIAl1MzIgdHJpZ2dlcl90YyA9IGlpciAmIEdFTjExX0RFX1RDX0hPVFBMVUdfTUFTSzsKIAl1MzIgdHJpZ2dlcl90YnQgPSBpaXIgJiBHRU4xMV9ERV9UQlRfSE9UUExVR19NQVNLOworCWxvbmdfcHVsc2VfZGV0ZWN0X2Z1bmMgbG9uZ19wdWxzZV9kZXRlY3Q7CisJY29uc3QgdTMyICpocGQ7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgeworCQlsb25nX3B1bHNlX2RldGVjdCA9IGdlbjEyX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdDsKKwkJaHBkID0gaHBkX2dlbjEyOworCX0gZWxzZSB7CisJCWxvbmdfcHVsc2VfZGV0ZWN0ID0gZ2VuMTFfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0OworCQlocGQgPSBocGRfZ2VuMTE7CisJfQogCiAJaWYgKHRyaWdnZXJfdGMpIHsKIAkJdTMyIGRpZ19ob3RwbHVnX3JlZzsKQEAgLTI3ODYsOCArMjU5Miw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBpaXIpCiAJCUk5MTVfV1JJVEUoR0VOMTFfVENfSE9UUExVR19DVEwsIGRpZ19ob3RwbHVnX3JlZyk7CiAKIAkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssIHRyaWdnZXJfdGMsCi0JCQkJICAgZGlnX2hvdHBsdWdfcmVnLCBocGRfZ2VuMTEsCi0JCQkJICAgZ2VuMTFfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKKwkJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZCwgbG9uZ19wdWxzZV9kZXRlY3QpOwogCX0KIAogCWlmICh0cmlnZ2VyX3RidCkgewpAQCAtMjc5Nyw4ICsyNjAyLDcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGlpcikKIAkJSTkxNV9XUklURShHRU4xMV9UQlRfSE9UUExVR19DVEwsIGRpZ19ob3RwbHVnX3JlZyk7CiAKIAkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssIHRyaWdnZXJfdGJ0LAotCQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX2dlbjExLAotCQkJCSAgIGdlbjExX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7CisJCQkJICAgZGlnX2hvdHBsdWdfcmVnLCBocGQsIGxvbmdfcHVsc2VfZGV0ZWN0KTsKIAl9CiAKIAlpZiAocGluX21hc2spCkBAIC0yODA5LDIzICsyNjEzLDU5IEBAIHN0YXRpYyB2b2lkIGdlbjExX2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBpaXIpCiAKIHN0YXRpYyB1MzIgZ2VuOF9kZV9wb3J0X2F1eF9tYXNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQl1MzIgbWFzayA9IEdFTjhfQVVYX0NIQU5ORUxfQTsKKwl1MzIgbWFzazsKIAorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKQorCQkvKiBUT0RPOiBBZGQgQVVYIGVudHJpZXMgZm9yIFVTQkMgKi8KKwkJcmV0dXJuIFRHTF9ERV9QT1JUX0FVWF9ERElBIHwKKwkJCVRHTF9ERV9QT1JUX0FVWF9ERElCIHwKKwkJCVRHTF9ERV9QT1JUX0FVWF9ERElDOworCisJbWFzayA9IEdFTjhfQVVYX0NIQU5ORUxfQTsKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQogCQltYXNrIHw9IEdFTjlfQVVYX0NIQU5ORUxfQiB8CiAJCQlHRU45X0FVWF9DSEFOTkVMX0MgfAogCQkJR0VOOV9BVVhfQ0hBTk5FTF9EOwogCi0JaWYgKElTX0NOTF9XSVRIX1BPUlRfRihkZXZfcHJpdikpCisJaWYgKElTX0NOTF9XSVRIX1BPUlRfRihkZXZfcHJpdikgfHwgSVNfR0VOKGRldl9wcml2LCAxMSkpCiAJCW1hc2sgfD0gQ05MX0FVWF9DSEFOTkVMX0Y7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKLQkJbWFzayB8PSBJQ0xfQVVYX0NIQU5ORUxfRSB8Ci0JCQlDTkxfQVVYX0NIQU5ORUxfRjsKKwlpZiAoSVNfR0VOKGRldl9wcml2LCAxMSkpCisJCW1hc2sgfD0gSUNMX0FVWF9DSEFOTkVMX0U7CiAKIAlyZXR1cm4gbWFzazsKIH0KIAorc3RhdGljIHUzMiBnZW44X2RlX3BpcGVfZmF1bHRfbWFzayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKKwkJcmV0dXJuIEdFTjlfREVfUElQRV9JUlFfRkFVTFRfRVJST1JTOworCWVsc2UKKwkJcmV0dXJuIEdFTjhfREVfUElQRV9JUlFfRkFVTFRfRVJST1JTOworfQorCitzdGF0aWMgdm9pZAorZ2VuOF9kZV9taXNjX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGlpcikKK3sKKwlib29sIGZvdW5kID0gZmFsc2U7CisKKwlpZiAoaWlyICYgR0VOOF9ERV9NSVNDX0dTRSkgeworCQlpbnRlbF9vcHJlZ2lvbl9hc2xlX2ludHIoZGV2X3ByaXYpOworCQlmb3VuZCA9IHRydWU7CisJfQorCisJaWYgKGlpciAmIEdFTjhfREVfRURQX1BTUikgeworCQl1MzIgcHNyX2lpciA9IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7CisKKwkJaW50ZWxfcHNyX2lycV9oYW5kbGVyKGRldl9wcml2LCBwc3JfaWlyKTsKKwkJSTkxNV9XUklURShFRFBfUFNSX0lJUiwgcHNyX2lpcik7CisJCWZvdW5kID0gdHJ1ZTsKKwl9CisKKwlpZiAoIWZvdW5kKQorCQlEUk1fRVJST1IoIlVuZXhwZWN0ZWQgREUgTWlzYyBpbnRlcnJ1cHRcbiIpOworfQorCiBzdGF0aWMgaXJxcmV0dXJuX3QKIGdlbjhfZGVfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzdGVyX2N0bCkKIHsKQEAgLTI4MzYsMjkgKzI2NzYsMTIgQEAgZ2VuOF9kZV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYXN0ZXJfY3RsKQogCWlmIChtYXN0ZXJfY3RsICYgR0VOOF9ERV9NSVNDX0lSUSkgewogCQlpaXIgPSBJOTE1X1JFQUQoR0VOOF9ERV9NSVNDX0lJUik7CiAJCWlmIChpaXIpIHsKLQkJCWJvb2wgZm91bmQgPSBmYWxzZTsKLQogCQkJSTkxNV9XUklURShHRU44X0RFX01JU0NfSUlSLCBpaXIpOwogCQkJcmV0ID0gSVJRX0hBTkRMRUQ7Ci0KLQkJCWlmIChpaXIgJiBHRU44X0RFX01JU0NfR1NFKSB7Ci0JCQkJaW50ZWxfb3ByZWdpb25fYXNsZV9pbnRyKGRldl9wcml2KTsKLQkJCQlmb3VuZCA9IHRydWU7Ci0JCQl9Ci0KLQkJCWlmIChpaXIgJiBHRU44X0RFX0VEUF9QU1IpIHsKLQkJCQl1MzIgcHNyX2lpciA9IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7Ci0KLQkJCQlpbnRlbF9wc3JfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIHBzcl9paXIpOwotCQkJCUk5MTVfV1JJVEUoRURQX1BTUl9JSVIsIHBzcl9paXIpOwotCQkJCWZvdW5kID0gdHJ1ZTsKLQkJCX0KLQotCQkJaWYgKCFmb3VuZCkKLQkJCQlEUk1fRVJST1IoIlVuZXhwZWN0ZWQgREUgTWlzYyBpbnRlcnJ1cHRcbiIpOwotCQl9Ci0JCWVsc2UKKwkJCWdlbjhfZGVfbWlzY19pcnFfaGFuZGxlcihkZXZfcHJpdiwgaWlyKTsKKwkJfSBlbHNlIHsKIAkJCURSTV9FUlJPUigiVGhlIG1hc3RlciBjb250cm9sIGludGVycnVwdCBsaWVkIChERSBNSVNDKSFcbiIpOworCQl9CiAJfQogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYgKG1hc3Rlcl9jdGwgJiBHRU4xMV9ERV9IUERfSVJRKSkgewpAQCAtMjkzOCwxMiArMjc2MSw3IEBAIGdlbjhfZGVfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzdGVyX2N0bCkKIAkJaWYgKGlpciAmIEdFTjhfUElQRV9GSUZPX1VOREVSUlVOKQogCQkJaW50ZWxfY3B1X2ZpZm9fdW5kZXJydW5faXJxX2hhbmRsZXIoZGV2X3ByaXYsIHBpcGUpOwogCi0JCWZhdWx0X2Vycm9ycyA9IGlpcjsKLQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKLQkJCWZhdWx0X2Vycm9ycyAmPSBHRU45X0RFX1BJUEVfSVJRX0ZBVUxUX0VSUk9SUzsKLQkJZWxzZQotCQkJZmF1bHRfZXJyb3JzICY9IEdFTjhfREVfUElQRV9JUlFfRkFVTFRfRVJST1JTOwotCisJCWZhdWx0X2Vycm9ycyA9IGlpciAmIGdlbjhfZGVfcGlwZV9mYXVsdF9tYXNrKGRldl9wcml2KTsKIAkJaWYgKGZhdWx0X2Vycm9ycykKIAkJCURSTV9FUlJPUigiRmF1bHQgZXJyb3JzIG9uIHBpcGUgJWM6IDB4JTA4eFxuIiwKIAkJCQkgIHBpcGVfbmFtZShwaXBlKSwKQEAgLTI5NjIsNyArMjc4MCw5IEBAIGdlbjhfZGVfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzdGVyX2N0bCkKIAkJCUk5MTVfV1JJVEUoU0RFSUlSLCBpaXIpOwogCQkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKLQkJCWlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX01DQykKKwkJCWlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX1RHUCkKKwkJCQl0Z3BfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGlpcik7CisJCQllbHNlIGlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX01DQykKIAkJCQlpY3BfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGlpciwgaHBkX21jYyk7CiAJCQllbHNlIGlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX0lDUCkKIAkJCQlpY3BfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGlpciwgaHBkX2ljcCk7CkBAIC0zMDAyLDcgKzI4MjIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2VuOF9tYXN0ZXJfaW50cl9lbmFibGUodm9pZCBfX2lvbWVtICogY29uc3QgcmVncykKIAogc3RhdGljIGlycXJldHVybl90IGdlbjhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoYXJnKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBhcmc7CiAJdm9pZCBfX2lvbWVtICogY29uc3QgcmVncyA9IGRldl9wcml2LT51bmNvcmUucmVnczsKIAl1MzIgbWFzdGVyX2N0bDsKIAl1MzIgZ3RfaWlyWzRdOwpAQCAtMzAxNyw3ICsyODM3LDcgQEAgc3RhdGljIGlycXJldHVybl90IGdlbjhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCX0KIAogCS8qIEZpbmQsIGNsZWFyLCB0aGVuIHByb2Nlc3MgZWFjaCBzb3VyY2Ugb2YgaW50ZXJydXB0ICovCi0JZ2VuOF9ndF9pcnFfYWNrKGRldl9wcml2LCBtYXN0ZXJfY3RsLCBndF9paXIpOworCWdlbjhfZ3RfaXJxX2FjaygmZGV2X3ByaXYtPmd0LCBtYXN0ZXJfY3RsLCBndF9paXIpOwogCiAJLyogSVJRcyBhcmUgc3luY2VkIGR1cmluZyBydW50aW1lX3N1c3BlbmQsIHdlIGRvbid0IHJlcXVpcmUgYSB3YWtlcmVmICovCiAJaWYgKG1hc3Rlcl9jdGwgJiB+R0VOOF9HVF9JUlFTKSB7CkBAIC0zMDI4LDE0MCArMjg0OCwxNSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAKIAlnZW44X21hc3Rlcl9pbnRyX2VuYWJsZShyZWdzKTsKIAotCWdlbjhfZ3RfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIG1hc3Rlcl9jdGwsIGd0X2lpcik7CisJZ2VuOF9ndF9pcnFfaGFuZGxlcigmZGV2X3ByaXYtPmd0LCBtYXN0ZXJfY3RsLCBndF9paXIpOwogCiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQogCiBzdGF0aWMgdTMyCi1nZW4xMV9ndF9lbmdpbmVfaWRlbnRpdHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1LAotCQkJIGNvbnN0IHVuc2lnbmVkIGludCBiYW5rLCBjb25zdCB1bnNpZ25lZCBpbnQgYml0KQorZ2VuMTFfZ3VfbWlzY19pcnFfYWNrKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGNvbnN0IHUzMiBtYXN0ZXJfY3RsKQogewotCXZvaWQgX19pb21lbSAqIGNvbnN0IHJlZ3MgPSBpOTE1LT51bmNvcmUucmVnczsKLQl1MzIgdGltZW91dF90czsKLQl1MzIgaWRlbnQ7Ci0KLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5pcnFfbG9jayk7Ci0KLQlyYXdfcmVnX3dyaXRlKHJlZ3MsIEdFTjExX0lJUl9SRUdfU0VMRUNUT1IoYmFuayksIEJJVChiaXQpKTsKLQotCS8qCi0JICogTkI6IFNwZWNzIGRvIG5vdCBzcGVjaWZ5IGhvdyBsb25nIHRvIHNwaW4gd2FpdCwKLQkgKiBzbyB3ZSBkbyB+MTAwdXMgYXMgYW4gZWR1Y2F0ZWQgZ3Vlc3MuCi0JICovCi0JdGltZW91dF90cyA9IChsb2NhbF9jbG9jaygpID4+IDEwKSArIDEwMDsKLQlkbyB7Ci0JCWlkZW50ID0gcmF3X3JlZ19yZWFkKHJlZ3MsIEdFTjExX0lOVFJfSURFTlRJVFlfUkVHKGJhbmspKTsKLQl9IHdoaWxlICghKGlkZW50ICYgR0VOMTFfSU5UUl9EQVRBX1ZBTElEKSAmJgotCQkgIXRpbWVfYWZ0ZXIzMihsb2NhbF9jbG9jaygpID4+IDEwLCB0aW1lb3V0X3RzKSk7Ci0KLQlpZiAodW5saWtlbHkoIShpZGVudCAmIEdFTjExX0lOVFJfREFUQV9WQUxJRCkpKSB7Ci0JCURSTV9FUlJPUigiSU5UUl9JREVOVElUWV9SRUcldToldSAweCUwOHggbm90IHZhbGlkIVxuIiwKLQkJCSAgYmFuaywgYml0LCBpZGVudCk7Ci0JCXJldHVybiAwOwotCX0KLQotCXJhd19yZWdfd3JpdGUocmVncywgR0VOMTFfSU5UUl9JREVOVElUWV9SRUcoYmFuayksCi0JCSAgICAgIEdFTjExX0lOVFJfREFUQV9WQUxJRCk7Ci0KLQlyZXR1cm4gaWRlbnQ7Ci19Ci0KLXN0YXRpYyB2b2lkCi1nZW4xMV9vdGhlcl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCi0JCQljb25zdCB1OCBpbnN0YW5jZSwgY29uc3QgdTE2IGlpcikKLXsKLQlpZiAoaW5zdGFuY2UgPT0gT1RIRVJfR1VDX0lOU1RBTkNFKQotCQlyZXR1cm4gZ2VuMTFfZ3VjX2lycV9oYW5kbGVyKGk5MTUsIGlpcik7Ci0KLQlpZiAoaW5zdGFuY2UgPT0gT1RIRVJfR1RQTV9JTlNUQU5DRSkKLQkJcmV0dXJuIGdlbjExX3Jwc19pcnFfaGFuZGxlcihpOTE1LCBpaXIpOwotCi0JV0FSTl9PTkNFKDEsICJ1bmhhbmRsZWQgb3RoZXIgaW50ZXJydXB0IGluc3RhbmNlPTB4JXgsIGlpcj0weCV4XG4iLAotCQkgIGluc3RhbmNlLCBpaXIpOwotfQotCi1zdGF0aWMgdm9pZAotZ2VuMTFfZW5naW5lX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICogY29uc3QgaTkxNSwKLQkJCSBjb25zdCB1OCBjbGFzcywgY29uc3QgdTggaW5zdGFuY2UsIGNvbnN0IHUxNiBpaXIpCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCi0JaWYgKGluc3RhbmNlIDw9IE1BWF9FTkdJTkVfSU5TVEFOQ0UpCi0JCWVuZ2luZSA9IGk5MTUtPmVuZ2luZV9jbGFzc1tjbGFzc11baW5zdGFuY2VdOwotCWVsc2UKLQkJZW5naW5lID0gTlVMTDsKLQotCWlmIChsaWtlbHkoZW5naW5lKSkKLQkJcmV0dXJuIGdlbjhfY3NfaXJxX2hhbmRsZXIoZW5naW5lLCBpaXIpOwotCi0JV0FSTl9PTkNFKDEsICJ1bmhhbmRsZWQgZW5naW5lIGludGVycnVwdCBjbGFzcz0weCV4LCBpbnN0YW5jZT0weCV4XG4iLAotCQkgIGNsYXNzLCBpbnN0YW5jZSk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1nZW4xMV9ndF9pZGVudGl0eV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICogY29uc3QgaTkxNSwKLQkJCSAgY29uc3QgdTMyIGlkZW50aXR5KQotewotCWNvbnN0IHU4IGNsYXNzID0gR0VOMTFfSU5UUl9FTkdJTkVfQ0xBU1MoaWRlbnRpdHkpOwotCWNvbnN0IHU4IGluc3RhbmNlID0gR0VOMTFfSU5UUl9FTkdJTkVfSU5TVEFOQ0UoaWRlbnRpdHkpOwotCWNvbnN0IHUxNiBpbnRyID0gR0VOMTFfSU5UUl9FTkdJTkVfSU5UUihpZGVudGl0eSk7Ci0KLQlpZiAodW5saWtlbHkoIWludHIpKQotCQlyZXR1cm47Ci0KLQlpZiAoY2xhc3MgPD0gQ09QWV9FTkdJTkVfQ0xBU1MpCi0JCXJldHVybiBnZW4xMV9lbmdpbmVfaXJxX2hhbmRsZXIoaTkxNSwgY2xhc3MsIGluc3RhbmNlLCBpbnRyKTsKLQotCWlmIChjbGFzcyA9PSBPVEhFUl9DTEFTUykKLQkJcmV0dXJuIGdlbjExX290aGVyX2lycV9oYW5kbGVyKGk5MTUsIGluc3RhbmNlLCBpbnRyKTsKLQotCVdBUk5fT05DRSgxLCAidW5rbm93biBpbnRlcnJ1cHQgY2xhc3M9MHgleCwgaW5zdGFuY2U9MHgleCwgaW50cj0weCV4XG4iLAotCQkgIGNsYXNzLCBpbnN0YW5jZSwgaW50cik7Ci19Ci0KLXN0YXRpYyB2b2lkCi1nZW4xMV9ndF9iYW5rX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1LAotCQkgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgYmFuaykKLXsKLQl2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzID0gaTkxNS0+dW5jb3JlLnJlZ3M7Ci0JdW5zaWduZWQgbG9uZyBpbnRyX2R3OwotCXVuc2lnbmVkIGludCBiaXQ7Ci0KLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5pcnFfbG9jayk7Ci0KLQlpbnRyX2R3ID0gcmF3X3JlZ19yZWFkKHJlZ3MsIEdFTjExX0dUX0lOVFJfRFcoYmFuaykpOwotCi0JZm9yX2VhY2hfc2V0X2JpdChiaXQsICZpbnRyX2R3LCAzMikgewotCQljb25zdCB1MzIgaWRlbnQgPSBnZW4xMV9ndF9lbmdpbmVfaWRlbnRpdHkoaTkxNSwgYmFuaywgYml0KTsKLQotCQlnZW4xMV9ndF9pZGVudGl0eV9oYW5kbGVyKGk5MTUsIGlkZW50KTsKLQl9Ci0KLQkvKiBDbGVhciBtdXN0IGJlIGFmdGVyIHNoYXJlZCBoYXMgYmVlbiBzZXJ2ZWQgZm9yIGVuZ2luZSAqLwotCXJhd19yZWdfd3JpdGUocmVncywgR0VOMTFfR1RfSU5UUl9EVyhiYW5rKSwgaW50cl9kdyk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1nZW4xMV9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCi0JCSAgICAgY29uc3QgdTMyIG1hc3Rlcl9jdGwpCi17Ci0JdW5zaWduZWQgaW50IGJhbms7Ci0KLQlzcGluX2xvY2soJmk5MTUtPmlycV9sb2NrKTsKLQotCWZvciAoYmFuayA9IDA7IGJhbmsgPCAyOyBiYW5rKyspIHsKLQkJaWYgKG1hc3Rlcl9jdGwgJiBHRU4xMV9HVF9EV19JUlEoYmFuaykpCi0JCQlnZW4xMV9ndF9iYW5rX2hhbmRsZXIoaTkxNSwgYmFuayk7Ci0JfQotCi0Jc3Bpbl91bmxvY2soJmk5MTUtPmlycV9sb2NrKTsKLX0KLQotc3RhdGljIHUzMgotZ2VuMTFfZ3VfbWlzY19pcnFfYWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3QgdTMyIG1hc3Rlcl9jdGwpCi17Ci0Jdm9pZCBfX2lvbWVtICogY29uc3QgcmVncyA9IGRldl9wcml2LT51bmNvcmUucmVnczsKKwl2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzID0gZ3QtPnVuY29yZS0+cmVnczsKIAl1MzIgaWlyOwogCiAJaWYgKCEobWFzdGVyX2N0bCAmIEdFTjExX0dVX01JU0NfSVJRKSkKQEAgLTMxNzUsMTAgKzI4NzAsMTAgQEAgZ2VuMTFfZ3VfbWlzY19pcnFfYWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3QgdTMyIG1hc3Rlcl9jdGwpCiB9CiAKIHN0YXRpYyB2b2lkCi1nZW4xMV9ndV9taXNjX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3QgdTMyIGlpcikKK2dlbjExX2d1X21pc2NfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2d0ICpndCwgY29uc3QgdTMyIGlpcikKIHsKIAlpZiAoaWlyICYgR0VOMTFfR1VfTUlTQ19HU0UpCi0JCWludGVsX29wcmVnaW9uX2FzbGVfaW50cihkZXZfcHJpdik7CisJCWludGVsX29wcmVnaW9uX2FzbGVfaW50cihndC0+aTkxNSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTMyIGdlbjExX21hc3Rlcl9pbnRyX2Rpc2FibGUodm9pZCBfX2lvbWVtICogY29uc3QgcmVncykKQEAgLTMyMDEsOCArMjg5Niw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZW4xMV9tYXN0ZXJfaW50cl9lbmFibGUodm9pZCBfX2lvbWVtICogY29uc3QgcmVncykKIAogc3RhdGljIGlycXJldHVybl90IGdlbjExX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUgPSB0b19pOTE1KGFyZyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1ID0gYXJnOwogCXZvaWQgX19pb21lbSAqIGNvbnN0IHJlZ3MgPSBpOTE1LT51bmNvcmUucmVnczsKKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0OwogCXUzMiBtYXN0ZXJfY3RsOwogCXUzMiBndV9taXNjX2lpcjsKIApAQCAtMzIxNiw3ICsyOTEyLDcgQEAgc3RhdGljIGlycXJldHVybl90IGdlbjExX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAl9CiAKIAkvKiBGaW5kLCBjbGVhciwgdGhlbiBwcm9jZXNzIGVhY2ggc291cmNlIG9mIGludGVycnVwdC4gKi8KLQlnZW4xMV9ndF9pcnFfaGFuZGxlcihpOTE1LCBtYXN0ZXJfY3RsKTsKKwlnZW4xMV9ndF9pcnFfaGFuZGxlcihndCwgbWFzdGVyX2N0bCk7CiAKIAkvKiBJUlFzIGFyZSBzeW5jZWQgZHVyaW5nIHJ1bnRpbWVfc3VzcGVuZCwgd2UgZG9uJ3QgcmVxdWlyZSBhIHdha2VyZWYgKi8KIAlpZiAobWFzdGVyX2N0bCAmIEdFTjExX0RJU1BMQVlfSVJRKSB7CkBAIC0zMjMxLDExICsyOTI3LDExIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnZW4xMV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKCZpOTE1LT5ydW50aW1lX3BtKTsKIAl9CiAKLQlndV9taXNjX2lpciA9IGdlbjExX2d1X21pc2NfaXJxX2FjayhpOTE1LCBtYXN0ZXJfY3RsKTsKKwlndV9taXNjX2lpciA9IGdlbjExX2d1X21pc2NfaXJxX2FjayhndCwgbWFzdGVyX2N0bCk7CiAKIAlnZW4xMV9tYXN0ZXJfaW50cl9lbmFibGUocmVncyk7CiAKLQlnZW4xMV9ndV9taXNjX2lycV9oYW5kbGVyKGk5MTUsIGd1X21pc2NfaWlyKTsKKwlnZW4xMV9ndV9taXNjX2lycV9oYW5kbGVyKGd0LCBndV9taXNjX2lpcik7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CkBAIC0zMjQzLDkgKzI5MzksMTAgQEAgc3RhdGljIGlycXJldHVybl90IGdlbjExX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIC8qIENhbGxlZCBmcm9tIGRybSBnZW5lcmljIGNvZGUsIHBhc3NlZCAnY3J0Yycgd2hpY2gKICAqIHdlIHVzZSBhcyBhIHBpcGUgaW5kZXgKICAqLwotc3RhdGljIGludCBpOHh4X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCitpbnQgaTh4eF9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwpAQCAtMzI1NSwxOSArMjk1MiwyMCBAQCBzdGF0aWMgaW50IGk4eHhfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpOTQ1Z21fZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKK2ludCBpOTQ1Z21fZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAogCWlmIChkZXZfcHJpdi0+aTk0NWdtX3ZibGFuay5lbmFibGVkKysgPT0gMCkKIAkJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPmk5NDVnbV92Ymxhbmsud29yayk7CiAKLQlyZXR1cm4gaTh4eF9lbmFibGVfdmJsYW5rKGRldiwgcGlwZSk7CisJcmV0dXJuIGk4eHhfZW5hYmxlX3ZibGFuayhjcnRjKTsKIH0KIAotc3RhdGljIGludCBpOTY1X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCitpbnQgaTk2NV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwpAQCAtMzI3OCw5ICsyOTc2LDEwIEBAIHN0YXRpYyBpbnQgaTk2NV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGlyb25sYWtlX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCitpbnQgaWxrX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CisJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlOwogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CiAJdTMyIGJpdCA9IElOVEVMX0dFTihkZXZfcHJpdikgPj0gNyA/CiAJCURFX1BJUEVfVkJMQU5LX0lWQihwaXBlKSA6IERFX1BJUEVfVkJMQU5LKHBpcGUpOwpAQCAtMzI5MywxNCArMjk5MiwxNSBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiAJICogUFNSIGlzIGFjdGl2ZSBhcyBubyBmcmFtZXMgYXJlIGdlbmVyYXRlZC4KIAkgKi8KIAlpZiAoSEFTX1BTUihkZXZfcHJpdikpCi0JCWRybV92YmxhbmtfcmVzdG9yZShkZXYsIHBpcGUpOworCQlkcm1fY3J0Y192YmxhbmtfcmVzdG9yZShjcnRjKTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdlbjhfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKK2ludCBiZHdfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7CiAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKQEAgLTMzMTEsNyArMzAxMSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCSAqIFBTUiBpcyBhY3RpdmUgYXMgbm8gZnJhbWVzIGFyZSBnZW5lcmF0ZWQsIHNvIGNoZWNrIG9ubHkgZm9yIFBTUi4KIAkgKi8KIAlpZiAoSEFTX1BTUihkZXZfcHJpdikpCi0JCWRybV92YmxhbmtfcmVzdG9yZShkZXYsIHBpcGUpOworCQlkcm1fY3J0Y192YmxhbmtfcmVzdG9yZShjcnRjKTsKIAogCXJldHVybiAwOwogfQpAQCAtMzMxOSw5ICszMDE5LDEwIEBAIHN0YXRpYyBpbnQgZ2VuOF9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogLyogQ2FsbGVkIGZyb20gZHJtIGdlbmVyaWMgY29kZSwgcGFzc2VkICdjcnRjJyB3aGljaAogICogd2UgdXNlIGFzIGEgcGlwZSBpbmRleAogICovCi1zdGF0aWMgdm9pZCBpOHh4X2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQordm9pZCBpOHh4X2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwpAQCAtMzMyOSwxOSArMzAzMCwyMCBAQCBzdGF0aWMgdm9pZCBpOHh4X2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCBpOTQ1Z21fZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCit2b2lkIGk5NDVnbV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAotCWk4eHhfZGlzYWJsZV92YmxhbmsoZGV2LCBwaXBlKTsKKwlpOHh4X2Rpc2FibGVfdmJsYW5rKGNydGMpOwogCiAJaWYgKC0tZGV2X3ByaXYtPmk5NDVnbV92YmxhbmsuZW5hYmxlZCA9PSAwKQogCQlzY2hlZHVsZV93b3JrKCZkZXZfcHJpdi0+aTk0NWdtX3ZibGFuay53b3JrKTsKIH0KIAotc3RhdGljIHZvaWQgaTk2NV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKK3ZvaWQgaTk2NV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7CiAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKQEAgLTMzNTAsOSArMzA1MiwxMCBAQCBzdGF0aWMgdm9pZCBpOTY1X2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCBpcm9ubGFrZV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKK3ZvaWQgaWxrX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwogCXUzMiBiaXQgPSBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDcgPwogCQlERV9QSVBFX1ZCTEFOS19JVkIocGlwZSkgOiBERV9QSVBFX1ZCTEFOSyhwaXBlKTsKQEAgLTMzNjIsOSArMzA2NSwxMCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuOF9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKK3ZvaWQgYmR3X2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwpAQCAtMzQ0NywxMCArMzE1MSw4IEBAIHN0YXRpYyB2b2lkIGlieF9pcnFfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICoKICAqIFRoaXMgZnVuY3Rpb24gbmVlZHMgdG8gYmUgY2FsbGVkIGJlZm9yZSBpbnRlcnJ1cHRzIGFyZSBlbmFibGVkLgogICovCi1zdGF0aWMgdm9pZCBpYnhfaXJxX3ByZV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgaWJ4X2lycV9wcmVfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQogCWlmIChIQVNfUENIX05PUChkZXZfcHJpdikpCiAJCXJldHVybjsKIApAQCAtMzQ1OSwyNiArMzE2MSwxNyBAQCBzdGF0aWMgdm9pZCBpYnhfaXJxX3ByZV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCVBPU1RJTkdfUkVBRChTREVJRVIpOwogfQogCi1zdGF0aWMgdm9pZCBnZW41X2d0X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Ci0KLQlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIEdUKTsKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KQotCQlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIEdFTjZfUE0pOwotfQotCiBzdGF0aWMgdm9pZCB2bHZfZGlzcGxheV9pcnFfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCiAJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQotCQlJOTE1X1dSSVRFKERQSU5WR1RULCBEUElOVkdUVF9TVEFUVVNfTUFTS19DSFYpOworCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBEUElOVkdUVCwgRFBJTlZHVFRfU1RBVFVTX01BU0tfQ0hWKTsKIAllbHNlCi0JCUk5MTVfV1JJVEUoRFBJTlZHVFQsIERQSU5WR1RUX1NUQVRVU19NQVNLKTsKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRFBJTlZHVFQsIERQSU5WR1RUX1NUQVRVU19NQVNLKTsKIAogCWk5MTVfaG90cGx1Z19pbnRlcnJ1cHRfdXBkYXRlX2xvY2tlZChkZXZfcHJpdiwgMHhmZmZmZmZmZiwgMCk7Ci0JSTkxNV9XUklURShQT1JUX0hPVFBMVUdfU1RBVCwgSTkxNV9SRUFEKFBPUlRfSE9UUExVR19TVEFUKSk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgUE9SVF9IT1RQTFVHX1NUQVQsIEk5MTVfUkVBRChQT1JUX0hPVFBMVUdfU1RBVCkpOwogCiAJaTl4eF9waXBlc3RhdF9pcnFfcmVzZXQoZGV2X3ByaXYpOwogCkBAIC0zNTE5LDMzICszMjEyLDMwIEBAIHN0YXRpYyB2b2lkIHZsdl9kaXNwbGF5X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIC8qIGRybV9kbWEuaCBob29rcwogKi8KLXN0YXRpYyB2b2lkIGlyb25sYWtlX2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgaXJvbmxha2VfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7CiAKIAlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIERFKTsKIAlpZiAoSVNfR0VOKGRldl9wcml2LCA3KSkKLQkJSTkxNV9XUklURShHRU43X0VSUl9JTlQsIDB4ZmZmZmZmZmYpOworCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU43X0VSUl9JTlQsIDB4ZmZmZmZmZmYpOwogCiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Ci0JCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIDB4ZmZmZmZmZmYpOwotCQlJOTE1X1dSSVRFKEVEUF9QU1JfSUlSLCAweGZmZmZmZmZmKTsKKwkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRURQX1BTUl9JTVIsIDB4ZmZmZmZmZmYpOworCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBFRFBfUFNSX0lJUiwgMHhmZmZmZmZmZik7CiAJfQogCi0JZ2VuNV9ndF9pcnFfcmVzZXQoZGV2X3ByaXYpOworCWdlbjVfZ3RfaXJxX3Jlc2V0KCZkZXZfcHJpdi0+Z3QpOwogCiAJaWJ4X2lycV9yZXNldChkZXZfcHJpdik7CiB9CiAKLXN0YXRpYyB2b2lkIHZhbGxleXZpZXdfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCiAJSTkxNV9XUklURShWTFZfTUFTVEVSX0lFUiwgMCk7CiAJUE9TVElOR19SRUFEKFZMVl9NQVNURVJfSUVSKTsKIAotCWdlbjVfZ3RfaXJxX3Jlc2V0KGRldl9wcml2KTsKKwlnZW41X2d0X2lycV9yZXNldCgmZGV2X3ByaXYtPmd0KTsKIAogCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAJaWYgKGRldl9wcml2LT5kaXNwbGF5X2lycXNfZW5hYmxlZCkKQEAgLTM1NTMsMjggKzMyNDMsMTcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjhfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKLQotCUdFTjhfSVJRX1JFU0VUX05EWCh1bmNvcmUsIEdULCAwKTsKLQlHRU44X0lSUV9SRVNFVF9ORFgodW5jb3JlLCBHVCwgMSk7Ci0JR0VOOF9JUlFfUkVTRVRfTkRYKHVuY29yZSwgR1QsIDIpOwotCUdFTjhfSVJRX1JFU0VUX05EWCh1bmNvcmUsIEdULCAzKTsKLX0KLQotc3RhdGljIHZvaWQgZ2VuOF9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7CiAJaW50IHBpcGU7CiAKIAlnZW44X21hc3Rlcl9pbnRyX2Rpc2FibGUoZGV2X3ByaXYtPnVuY29yZS5yZWdzKTsKIAotCWdlbjhfZ3RfaXJxX3Jlc2V0KGRldl9wcml2KTsKKwlnZW44X2d0X2lycV9yZXNldCgmZGV2X3ByaXYtPmd0KTsKIAotCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIDB4ZmZmZmZmZmYpOwotCUk5MTVfV1JJVEUoRURQX1BTUl9JSVIsIDB4ZmZmZmZmZmYpOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEVEUF9QU1JfSU1SLCAweGZmZmZmZmZmKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBFRFBfUFNSX0lJUiwgMHhmZmZmZmZmZik7CiAKIAlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQogCQlpZiAoaW50ZWxfZGlzcGxheV9wb3dlcl9pc19lbmFibGVkKGRldl9wcml2LApAQCAtMzU4OSwzOSArMzI2OCwxOSBAQCBzdGF0aWMgdm9pZCBnZW44X2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlpYnhfaXJxX3Jlc2V0KGRldl9wcml2KTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuMTFfZ3RfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjExX2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JLyogRGlzYWJsZSBSQ1MsIEJDUywgVkNTIGFuZCBWRUNTIGNsYXNzIGVuZ2luZXMuICovCi0JSTkxNV9XUklURShHRU4xMV9SRU5ERVJfQ09QWV9JTlRSX0VOQUJMRSwgMCk7Ci0JSTkxNV9XUklURShHRU4xMV9WQ1NfVkVDU19JTlRSX0VOQUJMRSwJICAwKTsKLQotCS8qIFJlc3RvcmUgbWFza3MgaXJxcyBvbiBSQ1MsIEJDUywgVkNTIGFuZCBWRUNTIGVuZ2luZXMuICovCi0JSTkxNV9XUklURShHRU4xMV9SQ1MwX1JTVkRfSU5UUl9NQVNLLAl+MCk7Ci0JSTkxNV9XUklURShHRU4xMV9CQ1NfUlNWRF9JTlRSX01BU0ssCX4wKTsKLQlJOTE1X1dSSVRFKEdFTjExX1ZDUzBfVkNTMV9JTlRSX01BU0ssCX4wKTsKLQlJOTE1X1dSSVRFKEdFTjExX1ZDUzJfVkNTM19JTlRSX01BU0ssCX4wKTsKLQlJOTE1X1dSSVRFKEdFTjExX1ZFQ1MwX1ZFQ1MxX0lOVFJfTUFTSywJfjApOwotCi0JSTkxNV9XUklURShHRU4xMV9HUE1fV0dCT1hQRVJGX0lOVFJfRU5BQkxFLCAwKTsKLQlJOTE1X1dSSVRFKEdFTjExX0dQTV9XR0JPWFBFUkZfSU5UUl9NQVNLLCAgfjApOwotCUk5MTVfV1JJVEUoR0VOMTFfR1VDX1NHX0lOVFJfRU5BQkxFLCAwKTsKLQlJOTE1X1dSSVRFKEdFTjExX0dVQ19TR19JTlRSX01BU0ssICB+MCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGdlbjExX2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7CiAJaW50IHBpcGU7CiAKIAlnZW4xMV9tYXN0ZXJfaW50cl9kaXNhYmxlKGRldl9wcml2LT51bmNvcmUucmVncyk7CiAKLQlnZW4xMV9ndF9pcnFfcmVzZXQoZGV2X3ByaXYpOworCWdlbjExX2d0X2lycV9yZXNldCgmZGV2X3ByaXYtPmd0KTsKIAotCUk5MTVfV1JJVEUoR0VOMTFfRElTUExBWV9JTlRfQ1RMLCAwKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU4xMV9ESVNQTEFZX0lOVF9DVEwsIDApOwogCi0JSTkxNV9XUklURShFRFBfUFNSX0lNUiwgMHhmZmZmZmZmZik7Ci0JSTkxNV9XUklURShFRFBfUFNSX0lJUiwgMHhmZmZmZmZmZik7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRURQX1BTUl9JTVIsIDB4ZmZmZmZmZmYpOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEVEUF9QU1JfSUlSLCAweGZmZmZmZmZmKTsKIAogCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCiAJCWlmIChpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2X3ByaXYsCkBAIC0zNjgwLDE4ICszMzM5LDE3IEBAIHZvaWQgZ2VuOF9pcnFfcG93ZXJfd2VsbF9wcmVfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCiAJLyogbWFrZSBzdXJlIHdlJ3JlIGRvbmUgcHJvY2Vzc2luZyBkaXNwbGF5IGlycXMgKi8KLQlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRybS5pcnEpOworCWludGVsX3N5bmNocm9uaXplX2lycShkZXZfcHJpdik7CiB9CiAKLXN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCiAJSTkxNV9XUklURShHRU44X01BU1RFUl9JUlEsIDApOwogCVBPU1RJTkdfUkVBRChHRU44X01BU1RFUl9JUlEpOwogCi0JZ2VuOF9ndF9pcnFfcmVzZXQoZGV2X3ByaXYpOworCWdlbjhfZ3RfaXJxX3Jlc2V0KCZkZXZfcHJpdi0+Z3QpOwogCiAJR0VOM19JUlFfUkVTRVQodW5jb3JlLCBHRU44X1BDVV8pOwogCkBAIC0zNzU2LDIxICszNDE0LDIxIEBAIHN0YXRpYyB2b2lkIGlieF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpYnhfaHBkX2RldGVjdGlvbl9zZXR1cChkZXZfcHJpdik7CiB9CiAKLXN0YXRpYyB2b2lkIGljcF9ocGRfZGV0ZWN0aW9uX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGljcF9ocGRfZGV0ZWN0aW9uX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgdTMyIGRkaV9ob3RwbHVnX2VuYWJsZV9tYXNrLAorCQkJCSAgICB1MzIgdGNfaG90cGx1Z19lbmFibGVfbWFzaykKIHsKIAl1MzIgaG90cGx1ZzsKIAogCWhvdHBsdWcgPSBJOTE1X1JFQUQoU0hPVFBMVUdfQ1RMX0RESSk7Ci0JaG90cGx1ZyB8PSBJQ1BfRERJQV9IUERfRU5BQkxFIHwKLQkJICAgSUNQX0RESUJfSFBEX0VOQUJMRTsKKwlob3RwbHVnIHw9IGRkaV9ob3RwbHVnX2VuYWJsZV9tYXNrOwogCUk5MTVfV1JJVEUoU0hPVFBMVUdfQ1RMX0RESSwgaG90cGx1Zyk7CiAKLQlob3RwbHVnID0gSTkxNV9SRUFEKFNIT1RQTFVHX0NUTF9UQyk7Ci0JaG90cGx1ZyB8PSBJQ1BfVENfSFBEX0VOQUJMRShQT1JUX1RDMSkgfAotCQkgICBJQ1BfVENfSFBEX0VOQUJMRShQT1JUX1RDMikgfAotCQkgICBJQ1BfVENfSFBEX0VOQUJMRShQT1JUX1RDMykgfAotCQkgICBJQ1BfVENfSFBEX0VOQUJMRShQT1JUX1RDNCk7Ci0JSTkxNV9XUklURShTSE9UUExVR19DVExfVEMsIGhvdHBsdWcpOworCWlmICh0Y19ob3RwbHVnX2VuYWJsZV9tYXNrKSB7CisJCWhvdHBsdWcgPSBJOTE1X1JFQUQoU0hPVFBMVUdfQ1RMX1RDKTsKKwkJaG90cGx1ZyB8PSB0Y19ob3RwbHVnX2VuYWJsZV9tYXNrOworCQlJOTE1X1dSSVRFKFNIT1RQTFVHX0NUTF9UQywgaG90cGx1Zyk7CisJfQogfQogCiBzdGF0aWMgdm9pZCBpY3BfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC0zNzgyLDcgKzM0NDAsMzMgQEAgc3RhdGljIHZvaWQgaWNwX2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJaWJ4X2Rpc3BsYXlfaW50ZXJydXB0X3VwZGF0ZShkZXZfcHJpdiwgaG90cGx1Z19pcnFzLCBlbmFibGVkX2lycXMpOwogCi0JaWNwX2hwZF9kZXRlY3Rpb25fc2V0dXAoZGV2X3ByaXYpOworCWljcF9ocGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2LCBJQ1BfRERJX0hQRF9FTkFCTEVfTUFTSywKKwkJCQlJQ1BfVENfSFBEX0VOQUJMRV9NQVNLKTsKK30KKworc3RhdGljIHZvaWQgbWNjX2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXUzMiBob3RwbHVnX2lycXMsIGVuYWJsZWRfaXJxczsKKworCWhvdHBsdWdfaXJxcyA9IFNERV9ERElfTUFTS19UR1A7CisJZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgaHBkX21jYyk7CisKKwlpYnhfZGlzcGxheV9pbnRlcnJ1cHRfdXBkYXRlKGRldl9wcml2LCBob3RwbHVnX2lycXMsIGVuYWJsZWRfaXJxcyk7CisKKwlpY3BfaHBkX2RldGVjdGlvbl9zZXR1cChkZXZfcHJpdiwgVEdQX0RESV9IUERfRU5BQkxFX01BU0ssIDApOworfQorCitzdGF0aWMgdm9pZCB0Z3BfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJdTMyIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzOworCisJaG90cGx1Z19pcnFzID0gU0RFX0RESV9NQVNLX1RHUCB8IFNERV9UQ19NQVNLX1RHUDsKKwllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBocGRfdGdwKTsKKworCWlieF9kaXNwbGF5X2ludGVycnVwdF91cGRhdGUoZGV2X3ByaXYsIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzKTsKKworCWljcF9ocGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2LCBUR1BfRERJX0hQRF9FTkFCTEVfTUFTSywKKwkJCQlUR1BfVENfSFBEX0VOQUJMRV9NQVNLKTsKIH0KIAogc3RhdGljIHZvaWQgZ2VuMTFfaHBkX2RldGVjdGlvbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC0zODA3LDkgKzM0OTEsMTEgQEAgc3RhdGljIHZvaWQgZ2VuMTFfaHBkX2RldGVjdGlvbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBnZW4xMV9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAl1MzIgaG90cGx1Z19pcnFzLCBlbmFibGVkX2lycXM7CisJY29uc3QgdTMyICpocGQ7CiAJdTMyIHZhbDsKIAotCWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGhwZF9nZW4xMSk7CisJaHBkID0gSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMiA/IGhwZF9nZW4xMiA6IGhwZF9nZW4xMTsKKwllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBocGQpOwogCWhvdHBsdWdfaXJxcyA9IEdFTjExX0RFX1RDX0hPVFBMVUdfTUFTSyB8IEdFTjExX0RFX1RCVF9IT1RQTFVHX01BU0s7CiAKIAl2YWwgPSBJOTE1X1JFQUQoR0VOMTFfREVfSFBEX0lNUik7CkBAIC0zODE5LDcgKzM1MDUsOSBAQCBzdGF0aWMgdm9pZCBnZW4xMV9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCWdlbjExX2hwZF9kZXRlY3Rpb25fc2V0dXAoZGV2X3ByaXYpOwogCi0JaWYgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA+PSBQQ0hfSUNQKQorCWlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX1RHUCkKKwkJdGdwX2hwZF9pcnFfc2V0dXAoZGV2X3ByaXYpOworCWVsc2UgaWYgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA+PSBQQ0hfSUNQKQogCQlpY3BfaHBkX2lycV9zZXR1cChkZXZfcHJpdik7CiB9CiAKQEAgLTM5NTAsOSArMzYzOCw4IEBAIHN0YXRpYyB2b2lkIGJ4dF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlfX2J4dF9ocGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2LCBlbmFibGVkX2lycXMpOwogfQogCi1zdGF0aWMgdm9pZCBpYnhfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBpYnhfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJdTMyIG1hc2s7CiAKIAlpZiAoSEFTX1BDSF9OT1AoZGV2X3ByaXYpKQpAQCAtMzk3NSw0OCArMzY2Miw4IEBAIHN0YXRpYyB2b2lkIGlieF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJc3B0X2hwZF9kZXRlY3Rpb25fc2V0dXAoZGV2X3ByaXYpOwogfQogCi1zdGF0aWMgdm9pZCBnZW41X2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Ci0JdTMyIHBtX2lycXMsIGd0X2lycXM7Ci0KLQlwbV9pcnFzID0gZ3RfaXJxcyA9IDA7Ci0KLQlkZXZfcHJpdi0+Z3RfaXJxX21hc2sgPSB+MDsKLQlpZiAoSEFTX0wzX0RQRihkZXZfcHJpdikpIHsKLQkJLyogTDMgcGFyaXR5IGludGVycnVwdCBpcyBhbHdheXMgdW5tYXNrZWQuICovCi0JCWRldl9wcml2LT5ndF9pcnFfbWFzayA9IH5HVF9QQVJJVFlfRVJST1IoZGV2X3ByaXYpOwotCQlndF9pcnFzIHw9IEdUX1BBUklUWV9FUlJPUihkZXZfcHJpdik7Ci0JfQotCi0JZ3RfaXJxcyB8PSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7Ci0JaWYgKElTX0dFTihkZXZfcHJpdiwgNSkpIHsKLQkJZ3RfaXJxcyB8PSBJTEtfQlNEX1VTRVJfSU5URVJSVVBUOwotCX0gZWxzZSB7Ci0JCWd0X2lycXMgfD0gR1RfQkxUX1VTRVJfSU5URVJSVVBUIHwgR1RfQlNEX1VTRVJfSU5URVJSVVBUOwotCX0KLQotCUdFTjNfSVJRX0lOSVQodW5jb3JlLCBHVCwgZGV2X3ByaXYtPmd0X2lycV9tYXNrLCBndF9pcnFzKTsKLQotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpIHsKLQkJLyoKLQkJICogUlBTIGludGVycnVwdHMgd2lsbCBnZXQgZW5hYmxlZC9kaXNhYmxlZCBvbiBkZW1hbmQgd2hlbiBSUFMKLQkJICogaXRzZWxmIGlzIGVuYWJsZWQvZGlzYWJsZWQuCi0JCSAqLwotCQlpZiAoSEFTX0VOR0lORShkZXZfcHJpdiwgVkVDUzApKSB7Ci0JCQlwbV9pcnFzIHw9IFBNX1ZFQk9YX1VTRVJfSU5URVJSVVBUOwotCQkJZGV2X3ByaXYtPnBtX2llciB8PSBQTV9WRUJPWF9VU0VSX0lOVEVSUlVQVDsKLQkJfQotCi0JCWRldl9wcml2LT5wbV9pbXIgPSAweGZmZmZmZmZmOwotCQlHRU4zX0lSUV9JTklUKHVuY29yZSwgR0VONl9QTSwgZGV2X3ByaXYtPnBtX2ltciwgcG1faXJxcyk7Ci0JfQotfQotCi1zdGF0aWMgaW50IGlyb25sYWtlX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKIAl1MzIgZGlzcGxheV9tYXNrLCBleHRyYV9tYXNrOwogCkBAIC00MDQzLDE2ICszNjkwLDE2IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlkZXZfcHJpdi0+aXJxX21hc2sgPSB+ZGlzcGxheV9tYXNrOwogCi0JaWJ4X2lycV9wcmVfcG9zdGluc3RhbGwoZGV2KTsKKwlpYnhfaXJxX3ByZV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CiAKIAlHRU4zX0lSUV9JTklUKHVuY29yZSwgREUsIGRldl9wcml2LT5pcnFfbWFzaywKIAkJICAgICAgZGlzcGxheV9tYXNrIHwgZXh0cmFfbWFzayk7CiAKLQlnZW41X2d0X2lycV9wb3N0aW5zdGFsbChkZXYpOworCWdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxsKCZkZXZfcHJpdi0+Z3QpOwogCiAJaWxrX2hwZF9kZXRlY3Rpb25fc2V0dXAoZGV2X3ByaXYpOwogCi0JaWJ4X2lycV9wb3N0aW5zdGFsbChkZXYpOworCWlieF9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOwogCiAJaWYgKElTX0lST05MQUtFX00oZGV2X3ByaXYpKSB7CiAJCS8qIEVuYWJsZSBQQ1UgZXZlbnQgaW50ZXJydXB0cwpAQCAtNDA2NCw4ICszNzExLDYgQEAgc3RhdGljIGludCBpcm9ubGFrZV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJaWxrX2VuYWJsZV9kaXNwbGF5X2lycShkZXZfcHJpdiwgREVfUENVX0VWRU5UKTsKIAkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCX0KLQotCXJldHVybiAwOwogfQogCiB2b2lkIHZhbGxleXZpZXdfZW5hYmxlX2Rpc3BsYXlfaXJxcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC00MDk3LDExICszNzQyLDkgQEAgdm9pZCB2YWxsZXl2aWV3X2Rpc2FibGVfZGlzcGxheV9pcnFzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIH0KIAogCi1zdGF0aWMgaW50IHZhbGxleXZpZXdfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCi0JZ2VuNV9ndF9pcnFfcG9zdGluc3RhbGwoZGV2KTsKKwlnZW41X2d0X2lycV9wb3N0aW5zdGFsbCgmZGV2X3ByaXYtPmd0KTsKIAogCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAJaWYgKGRldl9wcml2LT5kaXNwbGF5X2lycXNfZW5hYmxlZCkKQEAgLTQxMTAsNDIgKzM3NTMsNiBAQCBzdGF0aWMgaW50IHZhbGxleXZpZXdfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlJOTE1X1dSSVRFKFZMVl9NQVNURVJfSUVSLCBNQVNURVJfSU5URVJSVVBUX0VOQUJMRSk7CiAJUE9TVElOR19SRUFEKFZMVl9NQVNURVJfSUVSKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBnZW44X2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Ci0KLQkvKiBUaGVzZSBhcmUgaW50ZXJydXB0cyB3ZSdsbCB0b2dnbGUgd2l0aCB0aGUgcmluZyBtYXNrIHJlZ2lzdGVyICovCi0JdTMyIGd0X2ludGVycnVwdHNbXSA9IHsKLQkJKEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1JDU19JUlFfU0hJRlQgfAotCQkgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfUkNTX0lSUV9TSElGVCB8Ci0JCSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9CQ1NfSVJRX1NISUZUIHwKLQkJIEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X0JDU19JUlFfU0hJRlQpLAotCi0JCShHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MwX0lSUV9TSElGVCB8Ci0JCSBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MwX0lSUV9TSElGVCB8Ci0JCSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCB8Ci0JCSBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCksCi0KLQkJMCwKLQotCQkoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19JUlFfU0hJRlQgfAotCQkgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19JUlFfU0hJRlQpCi0JfTsKLQotCWRldl9wcml2LT5wbV9pZXIgPSAweDA7Ci0JZGV2X3ByaXYtPnBtX2ltciA9IH5kZXZfcHJpdi0+cG1faWVyOwotCUdFTjhfSVJRX0lOSVRfTkRYKHVuY29yZSwgR1QsIDAsIH5ndF9pbnRlcnJ1cHRzWzBdLCBndF9pbnRlcnJ1cHRzWzBdKTsKLQlHRU44X0lSUV9JTklUX05EWCh1bmNvcmUsIEdULCAxLCB+Z3RfaW50ZXJydXB0c1sxXSwgZ3RfaW50ZXJydXB0c1sxXSk7Ci0JLyoKLQkgKiBSUFMgaW50ZXJydXB0cyB3aWxsIGdldCBlbmFibGVkL2Rpc2FibGVkIG9uIGRlbWFuZCB3aGVuIFJQUyBpdHNlbGYKLQkgKiBpcyBlbmFibGVkL2Rpc2FibGVkLiBTYW1lIHdpbCBiZSB0aGUgY2FzZSBmb3IgR3VDIGludGVycnVwdHMuCi0JICovCi0JR0VOOF9JUlFfSU5JVF9ORFgodW5jb3JlLCBHVCwgMiwgZGV2X3ByaXYtPnBtX2ltciwgZGV2X3ByaXYtPnBtX2llcik7Ci0JR0VOOF9JUlFfSU5JVF9ORFgodW5jb3JlLCBHVCwgMywgfmd0X2ludGVycnVwdHNbM10sIGd0X2ludGVycnVwdHNbM10pOwogfQogCiBzdGF0aWMgdm9pZCBnZW44X2RlX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC00MjE4LDU4ICszODI1LDIyIEBAIHN0YXRpYyB2b2lkIGdlbjhfZGVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAl9CiB9CiAKLXN0YXRpYyBpbnQgZ2VuOF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIGdlbjhfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0KIAlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCi0JCWlieF9pcnFfcHJlX3Bvc3RpbnN0YWxsKGRldik7CisJCWlieF9pcnFfcHJlX3Bvc3RpbnN0YWxsKGRldl9wcml2KTsKIAotCWdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxsKGRldl9wcml2KTsKKwlnZW44X2d0X2lycV9wb3N0aW5zdGFsbCgmZGV2X3ByaXYtPmd0KTsKIAlnZW44X2RlX2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CiAKIAlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCi0JCWlieF9pcnFfcG9zdGluc3RhbGwoZGV2KTsKKwkJaWJ4X2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CiAKIAlnZW44X21hc3Rlcl9pbnRyX2VuYWJsZShkZXZfcHJpdi0+dW5jb3JlLnJlZ3MpOwotCi0JcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjExX2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBpY3BfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQljb25zdCB1MzIgaXJxcyA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCB8IEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVDsKLQotCUJVSUxEX0JVR19PTihpcnFzICYgMHhmZmZmMDAwMCk7Ci0KLQkvKiBFbmFibGUgUkNTLCBCQ1MsIFZDUyBhbmQgVkVDUyBjbGFzcyBpbnRlcnJ1cHRzLiAqLwotCUk5MTVfV1JJVEUoR0VOMTFfUkVOREVSX0NPUFlfSU5UUl9FTkFCTEUsIGlycXMgPDwgMTYgfCBpcnFzKTsKLQlJOTE1X1dSSVRFKEdFTjExX1ZDU19WRUNTX0lOVFJfRU5BQkxFLAkgIGlycXMgPDwgMTYgfCBpcnFzKTsKLQotCS8qIFVubWFzayBpcnFzIG9uIFJDUywgQkNTLCBWQ1MgYW5kIFZFQ1MgZW5naW5lcy4gKi8KLQlJOTE1X1dSSVRFKEdFTjExX1JDUzBfUlNWRF9JTlRSX01BU0ssCX4oaXJxcyA8PCAxNikpOwotCUk5MTVfV1JJVEUoR0VOMTFfQkNTX1JTVkRfSU5UUl9NQVNLLAl+KGlycXMgPDwgMTYpKTsKLQlJOTE1X1dSSVRFKEdFTjExX1ZDUzBfVkNTMV9JTlRSX01BU0ssCX4oaXJxcyB8IGlycXMgPDwgMTYpKTsKLQlJOTE1X1dSSVRFKEdFTjExX1ZDUzJfVkNTM19JTlRSX01BU0ssCX4oaXJxcyB8IGlycXMgPDwgMTYpKTsKLQlJOTE1X1dSSVRFKEdFTjExX1ZFQ1MwX1ZFQ1MxX0lOVFJfTUFTSywJfihpcnFzIHwgaXJxcyA8PCAxNikpOwotCi0JLyoKLQkgKiBSUFMgaW50ZXJydXB0cyB3aWxsIGdldCBlbmFibGVkL2Rpc2FibGVkIG9uIGRlbWFuZCB3aGVuIFJQUyBpdHNlbGYKLQkgKiBpcyBlbmFibGVkL2Rpc2FibGVkLgotCSAqLwotCWRldl9wcml2LT5wbV9pZXIgPSAweDA7Ci0JZGV2X3ByaXYtPnBtX2ltciA9IH5kZXZfcHJpdi0+cG1faWVyOwotCUk5MTVfV1JJVEUoR0VOMTFfR1BNX1dHQk9YUEVSRl9JTlRSX0VOQUJMRSwgMCk7Ci0JSTkxNV9XUklURShHRU4xMV9HUE1fV0dCT1hQRVJGX0lOVFJfTUFTSywgIH4wKTsKLQotCS8qIFNhbWUgdGhpbmcgZm9yIEd1QyBpbnRlcnJ1cHRzICovCi0JSTkxNV9XUklURShHRU4xMV9HVUNfU0dfSU5UUl9FTkFCTEUsIDApOwotCUk5MTVfV1JJVEUoR0VOMTFfR1VDX1NHX0lOVFJfTUFTSywgIH4wKTsKLX0KLQotc3RhdGljIHZvaWQgaWNwX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAl1MzIgbWFzayA9IFNERV9HTUJVU19JQ1A7CiAKIAlXQVJOX09OKEk5MTVfUkVBRChTREVJRVIpICE9IDApOwpAQCAtNDI3OSwzNiArMzg1MCwzOCBAQCBzdGF0aWMgdm9pZCBpY3BfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZ2VuM19hc3NlcnRfaWlyX2lzX3plcm8oJmRldl9wcml2LT51bmNvcmUsIFNERUlJUik7CiAJSTkxNV9XUklURShTREVJTVIsIH5tYXNrKTsKIAotCWljcF9ocGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2KTsKKwlpZiAoSEFTX1BDSF9UR1AoZGV2X3ByaXYpKQorCQlpY3BfaHBkX2RldGVjdGlvbl9zZXR1cChkZXZfcHJpdiwgVEdQX0RESV9IUERfRU5BQkxFX01BU0ssCisJCQkJCVRHUF9UQ19IUERfRU5BQkxFX01BU0spOworCWVsc2UgaWYgKEhBU19QQ0hfTUNDKGRldl9wcml2KSkKKwkJaWNwX2hwZF9kZXRlY3Rpb25fc2V0dXAoZGV2X3ByaXYsIFRHUF9ERElfSFBEX0VOQUJMRV9NQVNLLCAwKTsKKwllbHNlCisJCWljcF9ocGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2LCBJQ1BfRERJX0hQRF9FTkFCTEVfTUFTSywKKwkJCQkJSUNQX1RDX0hQRF9FTkFCTEVfTUFTSyk7CiB9CiAKLXN0YXRpYyBpbnQgZ2VuMTFfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBnZW4xMV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7CiAJdTMyIGd1X21pc2NfbWFza2VkID0gR0VOMTFfR1VfTUlTQ19HU0U7CiAKIAlpZiAoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpID49IFBDSF9JQ1ApCi0JCWljcF9pcnFfcG9zdGluc3RhbGwoZGV2KTsKKwkJaWNwX2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CiAKLQlnZW4xMV9ndF9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOworCWdlbjExX2d0X2lycV9wb3N0aW5zdGFsbCgmZGV2X3ByaXYtPmd0KTsKIAlnZW44X2RlX2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CiAKIAlHRU4zX0lSUV9JTklUKHVuY29yZSwgR0VOMTFfR1VfTUlTQ18sIH5ndV9taXNjX21hc2tlZCwgZ3VfbWlzY19tYXNrZWQpOwogCiAJSTkxNV9XUklURShHRU4xMV9ESVNQTEFZX0lOVF9DVEwsIEdFTjExX0RJU1BMQVlfSVJRX0VOQUJMRSk7CiAKLQlnZW4xMV9tYXN0ZXJfaW50cl9lbmFibGUoZGV2X3ByaXYtPnVuY29yZS5yZWdzKTsKKwlnZW4xMV9tYXN0ZXJfaW50cl9lbmFibGUodW5jb3JlLT5yZWdzKTsKIAlQT1NUSU5HX1JFQUQoR0VOMTFfR0ZYX01TVFJfSVJRKTsKLQotCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNoZXJyeXZpZXdfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCi0JZ2VuOF9ndF9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOworCWdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxsKCZkZXZfcHJpdi0+Z3QpOwogCiAJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXlfaXJxc19lbmFibGVkKQpAQCAtNDMxNywxMyArMzg5MCwxMCBAQCBzdGF0aWMgaW50IGNoZXJyeXZpZXdfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlJOTE1X1dSSVRFKEdFTjhfTUFTVEVSX0lSUSwgR0VOOF9NQVNURVJfSVJRX0NPTlRST0wpOwogCVBPU1RJTkdfUkVBRChHRU44X01BU1RFUl9JUlEpOwotCi0JcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGk4eHhfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBpOHh4X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCiAJaTl4eF9waXBlc3RhdF9pcnFfcmVzZXQoZGV2X3ByaXYpOwpAQCAtNDMzMSw5ICszOTAxLDggQEAgc3RhdGljIHZvaWQgaTh4eF9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlHRU4yX0lSUV9SRVNFVCh1bmNvcmUpOwogfQogCi1zdGF0aWMgaW50IGk4eHhfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBpOHh4X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCXUxNiBlbmFibGVfbWFzazsKIApAQCAtNDM2Miw4ICszOTMxLDYgQEAgc3RhdGljIGludCBpOHh4X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWk5MTVfZW5hYmxlX3BpcGVzdGF0KGRldl9wcml2LCBQSVBFX0EsIFBJUEVfQ1JDX0RPTkVfSU5URVJSVVBUX1NUQVRVUyk7CiAJaTkxNV9lbmFibGVfcGlwZXN0YXQoZGV2X3ByaXYsIFBJUEVfQiwgUElQRV9DUkNfRE9ORV9JTlRFUlJVUFRfU1RBVFVTKTsKIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Ci0KLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgaTh4eF9lcnJvcl9pcnFfYWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LApAQCAtNDQ0NCw4ICs0MDExLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9lcnJvcl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBpOHh4X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYXJnOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBhcmc7CiAJaXJxcmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7CiAKIAlpZiAoIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpCkBAIC00NDg4LDkgKzQwNTQsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaTh4eF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgaTkxNV9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIGk5MTVfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7CiAKIAlpZiAoSTkxNV9IQVNfSE9UUExVRyhkZXZfcHJpdikpIHsKQEAgLTQ1MDMsOSArNDA2OCw4IEBAIHN0YXRpYyB2b2lkIGk5MTVfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJR0VOM19JUlFfUkVTRVQodW5jb3JlLCBHRU4yXyk7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIGk5MTVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7CiAJdTMyIGVuYWJsZV9tYXNrOwogCkBAIC00NTQzLDE0ICs0MTA3LDExIEBAIHN0YXRpYyBpbnQgaTkxNV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAKIAlpOTE1X2VuYWJsZV9hc2xlX3BpcGVzdGF0KGRldl9wcml2KTsKLQotCXJldHVybiAwOwogfQogCiBzdGF0aWMgaXJxcmV0dXJuX3QgaTkxNV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGFyZzsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gYXJnOwogCWlycXJldHVybl90IHJldCA9IElSUV9OT05FOwogCiAJaWYgKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKQpAQCAtNDYwMSw5ICs0MTYyLDggQEAgc3RhdGljIGlycXJldHVybl90IGk5MTVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGk5NjVfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBpOTY1X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCiAJaTkxNV9ob3RwbHVnX2ludGVycnVwdF91cGRhdGUoZGV2X3ByaXYsIDB4ZmZmZmZmZmYsIDApOwpAQCAtNDYxNCw5ICs0MTc0LDggQEAgc3RhdGljIHZvaWQgaTk2NV9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIEdFTjJfKTsKIH0KIAotc3RhdGljIGludCBpOTY1X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgaTk2NV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKIAl1MzIgZW5hYmxlX21hc2s7CiAJdTMyIGVycm9yX21hc2s7CkBAIC00NjY2LDggKzQyMjUsNiBAQCBzdGF0aWMgaW50IGk5NjVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCiAJaTkxNV9lbmFibGVfYXNsZV9waXBlc3RhdChkZXZfcHJpdik7Ci0KLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgaTkxNV9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTQ2OTcsOCArNDI1NCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBpOTY1X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYXJnOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBhcmc7CiAJaXJxcmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7CiAKIAlpZiAoIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpCkBAIC00Nzc1LDggKzQzMzEsOSBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0wzX1NMSUNFUzsgKytpKQogCQlkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm9baV0gPSBOVUxMOwogCi0JaWYgKEhBU19HVUNfU0NIRUQoZGV2X3ByaXYpICYmIElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSkKLQkJZGV2X3ByaXYtPnBtX2d1Y19ldmVudHMgPSBHRU45X0dVQ19UT19IT1NUX0lOVF9FVkVOVDsKKwkvKiBwcmUtZ2VuMTEgdGhlIGd1YyBpcnFzIGJpdHMgYXJlIGluIHRoZSB1cHBlciAxNiBiaXRzIG9mIHRoZSBwbSByZWcgKi8KKwlpZiAoSEFTX0dUX1VDKGRldl9wcml2KSAmJiBJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpCisJCWRldl9wcml2LT5ndC5wbV9ndWNfZXZlbnRzID0gR1VDX0lOVFJfR1VDMkhPU1QgPDwgMTY7CiAKIAkvKiBMZXQncyB0cmFjayB0aGUgZW5hYmxlZCBycHMgZXZlbnRzICovCiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKQpAQCAtNDgwNSwxMSArNDM2Miw2IEBAIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCiAJCXJwcy0+cG1faW50cm1za19tYnogfD0gR0VOOF9QTUlOVFJfRElTQUJMRV9SRURJUkVDVF9UT19HVUM7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA1IHx8IElTX0c0WChkZXZfcHJpdikpCi0JCWRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2NvdW50ZXIgPSBnNHhfZ2V0X3ZibGFua19jb3VudGVyOwotCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMykKLQkJZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRlciA9IGk5MTVfZ2V0X3ZibGFua19jb3VudGVyOwotCiAJZGV2LT52YmxhbmtfZGlzYWJsZV9pbW1lZGlhdGUgPSB0cnVlOwogCiAJLyogTW9zdCBwbGF0Zm9ybXMgdHJlYXQgdGhlIGRpc3BsYXkgaXJxIGJsb2NrIGFzIGFuIGFsd2F5cy1vbgpAQCAtNDgzMSw4NiArNDM4MywyMSBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKi8KIAlkZXZfcHJpdi0+aG90cGx1Zy5ocGRfc2hvcnRfc3Rvcm1fZW5hYmxlZCA9ICFIQVNfRFBfTVNUKGRldl9wcml2KTsKIAotCWRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX3RpbWVzdGFtcCA9IGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3M7Ci0JZGV2LT5kcml2ZXItPmdldF9zY2Fub3V0X3Bvc2l0aW9uID0gaTkxNV9nZXRfY3J0Y19zY2Fub3V0cG9zOwotCi0JaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGNoZXJyeXZpZXdfaXJxX2hhbmRsZXI7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCA9IGNoZXJyeXZpZXdfaXJxX3Jlc2V0OwotCQlkZXYtPmRyaXZlci0+aXJxX3Bvc3RpbnN0YWxsID0gY2hlcnJ5dmlld19pcnFfcG9zdGluc3RhbGw7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gY2hlcnJ5dmlld19pcnFfcmVzZXQ7Ci0JCWRldi0+ZHJpdmVyLT5lbmFibGVfdmJsYW5rID0gaTk2NV9lbmFibGVfdmJsYW5rOwotCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBpOTY1X2Rpc2FibGVfdmJsYW5rOwotCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gaTkxNV9ocGRfaXJxX3NldHVwOwotCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpIHsKLQkJZGV2LT5kcml2ZXItPmlycV9oYW5kbGVyID0gdmFsbGV5dmlld19pcnFfaGFuZGxlcjsKLQkJZGV2LT5kcml2ZXItPmlycV9wcmVpbnN0YWxsID0gdmFsbGV5dmlld19pcnFfcmVzZXQ7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSB2YWxsZXl2aWV3X2lycV9wb3N0aW5zdGFsbDsKLQkJZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSB2YWxsZXl2aWV3X2lycV9yZXNldDsKLQkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBpOTY1X2VuYWJsZV92Ymxhbms7Ci0JCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IGk5NjVfZGlzYWJsZV92Ymxhbms7Ci0JCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBpOTE1X2hwZF9pcnFfc2V0dXA7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGdlbjExX2lycV9oYW5kbGVyOwotCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBnZW4xMV9pcnFfcmVzZXQ7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBnZW4xMV9pcnFfcG9zdGluc3RhbGw7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gZ2VuMTFfaXJxX3Jlc2V0OwotCQlkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGdlbjhfZW5hYmxlX3ZibGFuazsKLQkJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gZ2VuOF9kaXNhYmxlX3ZibGFuazsKLQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGdlbjExX2hwZF9pcnFfc2V0dXA7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKLQkJZGV2LT5kcml2ZXItPmlycV9oYW5kbGVyID0gZ2VuOF9pcnFfaGFuZGxlcjsKLQkJZGV2LT5kcml2ZXItPmlycV9wcmVpbnN0YWxsID0gZ2VuOF9pcnFfcmVzZXQ7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBnZW44X2lycV9wb3N0aW5zdGFsbDsKLQkJZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSBnZW44X2lycV9yZXNldDsKLQkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBnZW44X2VuYWJsZV92Ymxhbms7Ci0JCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IGdlbjhfZGlzYWJsZV92Ymxhbms7Ci0JCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKKwlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKSB7CisJCWlmIChJOTE1X0hBU19IT1RQTFVHKGRldl9wcml2KSkKKwkJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBpOTE1X2hwZF9pcnFfc2V0dXA7CisJfSBlbHNlIHsKKwkJaWYgKEhBU19QQ0hfTUNDKGRldl9wcml2KSkKKwkJCS8qIEVITCBkb2Vzbid0IG5lZWQgbW9zdCBvZiBnZW4xMV9ocGRfaXJxX3NldHVwICovCisJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gbWNjX2hwZF9pcnFfc2V0dXA7CisJCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCisJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gZ2VuMTFfaHBkX2lycV9zZXR1cDsKKwkJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gYnh0X2hwZF9pcnFfc2V0dXA7CiAJCWVsc2UgaWYgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA+PSBQQ0hfU1BUKQogCQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IHNwdF9ocGRfaXJxX3NldHVwOwogCQllbHNlCiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gaWxrX2hwZF9pcnFfc2V0dXA7Ci0JfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewotCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBpcm9ubGFrZV9pcnFfaGFuZGxlcjsKLQkJZGV2LT5kcml2ZXItPmlycV9wcmVpbnN0YWxsID0gaXJvbmxha2VfaXJxX3Jlc2V0OwotCQlkZXYtPmRyaXZlci0+aXJxX3Bvc3RpbnN0YWxsID0gaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsOwotCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5zdGFsbCA9IGlyb25sYWtlX2lycV9yZXNldDsKLQkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBpcm9ubGFrZV9lbmFibGVfdmJsYW5rOwotCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBpcm9ubGFrZV9kaXNhYmxlX3ZibGFuazsKLQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGlsa19ocGRfaXJxX3NldHVwOwotCX0gZWxzZSB7Ci0JCWlmIChJU19HRU4oZGV2X3ByaXYsIDIpKSB7Ci0JCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBpOHh4X2lycV9yZXNldDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBpOHh4X2lycV9wb3N0aW5zdGFsbDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGk4eHhfaXJxX2hhbmRsZXI7Ci0JCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5zdGFsbCA9IGk4eHhfaXJxX3Jlc2V0OwotCQkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBpOHh4X2VuYWJsZV92Ymxhbms7Ci0JCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBpOHh4X2Rpc2FibGVfdmJsYW5rOwotCQl9IGVsc2UgaWYgKElTX0k5NDVHTShkZXZfcHJpdikpIHsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCA9IGk5MTVfaXJxX3Jlc2V0OwotCQkJZGV2LT5kcml2ZXItPmlycV9wb3N0aW5zdGFsbCA9IGk5MTVfaXJxX3Bvc3RpbnN0YWxsOwotCQkJZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSBpOTE1X2lycV9yZXNldDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGk5MTVfaXJxX2hhbmRsZXI7Ci0JCQlkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGk5NDVnbV9lbmFibGVfdmJsYW5rOwotCQkJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gaTk0NWdtX2Rpc2FibGVfdmJsYW5rOwotCQl9IGVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgMykpIHsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCA9IGk5MTVfaXJxX3Jlc2V0OwotCQkJZGV2LT5kcml2ZXItPmlycV9wb3N0aW5zdGFsbCA9IGk5MTVfaXJxX3Bvc3RpbnN0YWxsOwotCQkJZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSBpOTE1X2lycV9yZXNldDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGk5MTVfaXJxX2hhbmRsZXI7Ci0JCQlkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGk4eHhfZW5hYmxlX3ZibGFuazsKLQkJCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IGk4eHhfZGlzYWJsZV92Ymxhbms7Ci0JCX0gZWxzZSB7Ci0JCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBpOTY1X2lycV9yZXNldDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBpOTY1X2lycV9wb3N0aW5zdGFsbDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gaTk2NV9pcnFfcmVzZXQ7Ci0JCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBpOTY1X2lycV9oYW5kbGVyOwotCQkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBpOTY1X2VuYWJsZV92Ymxhbms7Ci0JCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBpOTY1X2Rpc2FibGVfdmJsYW5rOwotCQl9Ci0JCWlmIChJOTE1X0hBU19IT1RQTFVHKGRldl9wcml2KSkKLQkJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBpOTE1X2hwZF9pcnFfc2V0dXA7CiAJfQogfQogCkBAIC00OTMxLDYgKzQ0MTgsNzUgQEAgdm9pZCBpbnRlbF9pcnFfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJa2ZyZWUoaTkxNS0+bDNfcGFyaXR5LnJlbWFwX2luZm9baV0pOwogfQogCitzdGF0aWMgaXJxX2hhbmRsZXJfdCBpbnRlbF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgeworCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCisJCQlyZXR1cm4gY2hlcnJ5dmlld19pcnFfaGFuZGxlcjsKKwkJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCisJCQlyZXR1cm4gdmFsbGV5dmlld19pcnFfaGFuZGxlcjsKKwkJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA0KSkKKwkJCXJldHVybiBpOTY1X2lycV9oYW5kbGVyOworCQllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDMpKQorCQkJcmV0dXJuIGk5MTVfaXJxX2hhbmRsZXI7CisJCWVsc2UKKwkJCXJldHVybiBpOHh4X2lycV9oYW5kbGVyOworCX0gZWxzZSB7CisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQorCQkJcmV0dXJuIGdlbjExX2lycV9oYW5kbGVyOworCQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCisJCQlyZXR1cm4gZ2VuOF9pcnFfaGFuZGxlcjsKKwkJZWxzZQorCQkJcmV0dXJuIGlyb25sYWtlX2lycV9oYW5kbGVyOworCX0KK30KKworc3RhdGljIHZvaWQgaW50ZWxfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKSB7CisJCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKKwkJCWNoZXJyeXZpZXdfaXJxX3Jlc2V0KGRldl9wcml2KTsKKwkJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCisJCQl2YWxsZXl2aWV3X2lycV9yZXNldChkZXZfcHJpdik7CisJCWVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgNCkpCisJCQlpOTY1X2lycV9yZXNldChkZXZfcHJpdik7CisJCWVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgMykpCisJCQlpOTE1X2lycV9yZXNldChkZXZfcHJpdik7CisJCWVsc2UKKwkJCWk4eHhfaXJxX3Jlc2V0KGRldl9wcml2KTsKKwl9IGVsc2UgeworCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKKwkJCWdlbjExX2lycV9yZXNldChkZXZfcHJpdik7CisJCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKKwkJCWdlbjhfaXJxX3Jlc2V0KGRldl9wcml2KTsKKwkJZWxzZQorCQkJaXJvbmxha2VfaXJxX3Jlc2V0KGRldl9wcml2KTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgeworCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCisJCQljaGVycnl2aWV3X2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CisJCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKQorCQkJdmFsbGV5dmlld19pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOworCQllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDQpKQorCQkJaTk2NV9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOworCQllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDMpKQorCQkJaTkxNV9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOworCQllbHNlCisJCQlpOHh4X2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CisJfSBlbHNlIHsKKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCisJCQlnZW4xMV9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOworCQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCisJCQlnZW44X2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CisJCWVsc2UKKwkJCWlyb25sYWtlX2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CisJfQorfQorCiAvKioKICAqIGludGVsX2lycV9pbnN0YWxsIC0gZW5hYmxlcyB0aGUgaGFyZHdhcmUgaW50ZXJydXB0CiAgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCkBAIC00OTQ0LDYgKzQ1MDAsOSBAQCB2b2lkIGludGVsX2lycV9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogICovCiBpbnQgaW50ZWxfaXJxX2luc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogeworCWludCBpcnEgPSBkZXZfcHJpdi0+ZHJtLnBkZXYtPmlycTsKKwlpbnQgcmV0OworCiAJLyoKIAkgKiBXZSBlbmFibGUgc29tZSBpbnRlcnJ1cHQgc291cmNlcyBpbiBvdXIgcG9zdGluc3RhbGwgaG9va3MsIHNvIG1hcmsKIAkgKiBpbnRlcnJ1cHRzIGFzIGVuYWJsZWQgX2JlZm9yZV8gYWN0dWFsbHkgZW5hYmxpbmcgdGhlbSB0byBhdm9pZApAQCAtNDk1MSw3ICs0NTEwLDIwIEBAIGludCBpbnRlbF9pcnFfaW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICovCiAJZGV2X3ByaXYtPnJ1bnRpbWVfcG0uaXJxc19lbmFibGVkID0gdHJ1ZTsKIAotCXJldHVybiBkcm1faXJxX2luc3RhbGwoJmRldl9wcml2LT5kcm0sIGRldl9wcml2LT5kcm0ucGRldi0+aXJxKTsKKwlkZXZfcHJpdi0+ZHJtLmlycV9lbmFibGVkID0gdHJ1ZTsKKworCWludGVsX2lycV9yZXNldChkZXZfcHJpdik7CisKKwlyZXQgPSByZXF1ZXN0X2lycShpcnEsIGludGVsX2lycV9oYW5kbGVyKGRldl9wcml2KSwKKwkJCSAgSVJRRl9TSEFSRUQsIERSSVZFUl9OQU1FLCBkZXZfcHJpdik7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X3ByaXYtPmRybS5pcnFfZW5hYmxlZCA9IGZhbHNlOworCQlyZXR1cm4gcmV0OworCX0KKworCWludGVsX2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CisKKwlyZXR1cm4gcmV0OwogfQogCiAvKioKQEAgLTQ5NjMsNyArNDUzNSwyMyBAQCBpbnQgaW50ZWxfaXJxX2luc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2b2lkIGludGVsX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCWRybV9pcnFfdW5pbnN0YWxsKCZkZXZfcHJpdi0+ZHJtKTsKKwlpbnQgaXJxID0gZGV2X3ByaXYtPmRybS5wZGV2LT5pcnE7CisKKwkvKgorCSAqIEZJWE1FIHdlIGNhbiBnZXQgY2FsbGVkIHR3aWNlIGR1cmluZyBkcml2ZXIgbG9hZAorCSAqIGVycm9yIGhhbmRsaW5nIGR1ZSB0byBpbnRlbF9tb2Rlc2V0X2NsZWFudXAoKQorCSAqIGNhbGxpbmcgdXMgb3V0IG9mIHNlcXVlbmNlLiBXb3VsZCBiZSBuaWNlIGlmCisJICogaXQgZGlkbid0IGRvIHRoYXQuLi4KKwkgKi8KKwlpZiAoIWRldl9wcml2LT5kcm0uaXJxX2VuYWJsZWQpCisJCXJldHVybjsKKworCWRldl9wcml2LT5kcm0uaXJxX2VuYWJsZWQgPSBmYWxzZTsKKworCWludGVsX2lycV9yZXNldChkZXZfcHJpdik7CisKKwlmcmVlX2lycShpcnEsIGRldl9wcml2KTsKKwogCWludGVsX2hwZF9jYW5jZWxfd29yayhkZXZfcHJpdik7CiAJZGV2X3ByaXYtPnJ1bnRpbWVfcG0uaXJxc19lbmFibGVkID0gZmFsc2U7CiB9CkBAIC00OTc3LDkgKzQ1NjUsOSBAQCB2b2lkIGludGVsX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2b2lkIGludGVsX3J1bnRpbWVfcG1fZGlzYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlkZXZfcHJpdi0+ZHJtLmRyaXZlci0+aXJxX3VuaW5zdGFsbCgmZGV2X3ByaXYtPmRybSk7CisJaW50ZWxfaXJxX3Jlc2V0KGRldl9wcml2KTsKIAlkZXZfcHJpdi0+cnVudGltZV9wbS5pcnFzX2VuYWJsZWQgPSBmYWxzZTsKLQlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRybS5pcnEpOworCWludGVsX3N5bmNocm9uaXplX2lycShkZXZfcHJpdik7CiB9CiAKIC8qKgpAQCAtNDk5Miw2ICs0NTgwLDIwIEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9kaXNhYmxlX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogdm9pZCBpbnRlbF9ydW50aW1lX3BtX2VuYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlkZXZfcHJpdi0+cnVudGltZV9wbS5pcnFzX2VuYWJsZWQgPSB0cnVlOwotCWRldl9wcml2LT5kcm0uZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCgmZGV2X3ByaXYtPmRybSk7Ci0JZGV2X3ByaXYtPmRybS5kcml2ZXItPmlycV9wb3N0aW5zdGFsbCgmZGV2X3ByaXYtPmRybSk7CisJaW50ZWxfaXJxX3Jlc2V0KGRldl9wcml2KTsKKwlpbnRlbF9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOworfQorCitib29sIGludGVsX2lycXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJLyoKKwkgKiBXZSBvbmx5IHVzZSBkcm1faXJxX3VuaW5zdGFsbCgpIGF0IHVubG9hZCBhbmQgVlQgc3dpdGNoLCBzbworCSAqIHRoaXMgaXMgdGhlIG9ubHkgdGhpbmcgd2UgbmVlZCB0byBjaGVjay4KKwkgKi8KKwlyZXR1cm4gZGV2X3ByaXYtPnJ1bnRpbWVfcG0uaXJxc19lbmFibGVkOworfQorCit2b2lkIGludGVsX3N5bmNocm9uaXplX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzeW5jaHJvbml6ZV9pcnEoaTkxNS0+ZHJtLnBkZXYtPmlycSk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuaAppbmRleCBjYjI1ZGQyLi44ZTdlNjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmgKQEAgLTYsMTUgKzYsMjcgQEAKICNpZm5kZWYgX19JOTE1X0lSUV9IX18KICNkZWZpbmUgX19JOTE1X0lSUV9IX18KIAorI2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kaXNwbGF5LmgiCisjaW5jbHVkZSAiaTkxNV9yZWcuaCIKIAorc3RydWN0IGRybV9jcnRjOworc3RydWN0IGRybV9kZXZpY2U7CitzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZTsKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogc3RydWN0IGludGVsX2NydGM7CitzdHJ1Y3QgaW50ZWxfY3J0YzsKK3N0cnVjdCBpbnRlbF9ndDsKK3N0cnVjdCBpbnRlbF9ndWM7CitzdHJ1Y3QgaW50ZWxfdW5jb3JlOwogCi1leHRlcm4gdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotZXh0ZXJuIHZvaWQgaW50ZWxfaXJxX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgZ2VuMTFfcnBzX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHUzMiBwbV9paXIpOwordm9pZCBnZW42X3Jwc19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwbV9paXIpOworCit2b2lkIGludGVsX2lycV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGludGVsX2lycV9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBpbnQgaW50ZWxfaXJxX2luc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogCkBAIC03Nyw0MSArODksODkgQEAgaWJ4X2Rpc2FibGVfZGlzcGxheV9pbnRlcnJ1cHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYml0cykKIAogdm9pZCBnZW41X2VuYWJsZV9ndF9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzayk7CiB2b2lkIGdlbjVfZGlzYWJsZV9ndF9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzayk7Ci12b2lkIGdlbjZfbWFza19wbV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzayk7Ci12b2lkIGdlbjZfdW5tYXNrX3BtX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYXNrKTsKIHZvaWQgZ2VuMTFfcmVzZXRfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgZ2VuNl9yZXNldF9ycHNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBnZW42X2VuYWJsZV9ycHNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBnZW42X2Rpc2FibGVfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgZ2VuNl9ycHNfcmVzZXRfZWkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQotc3RhdGljIGlubGluZSB1MzIgZ2VuNl9zYW5pdGl6ZV9ycHNfcG1fbWFzayhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQkJICAgIHUzMiBtYXNrKQotewotCXJldHVybiBtYXNrICYgfmk5MTUtPmd0X3BtLnJwcy5wbV9pbnRybXNrX21iejsKLX0KK3UzMiBnZW42X3Nhbml0aXplX3Jwc19wbV9tYXNrKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1MzIgbWFzayk7CiAKIHZvaWQgaW50ZWxfcnVudGltZV9wbV9kaXNhYmxlX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfcnVudGltZV9wbV9lbmFibGVfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotc3RhdGljIGlubGluZSBib29sIGludGVsX2lycXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0JLyoKLQkgKiBXZSBvbmx5IHVzZSBkcm1faXJxX3VuaW5zdGFsbCgpIGF0IHVubG9hZCBhbmQgVlQgc3dpdGNoLCBzbwotCSAqIHRoaXMgaXMgdGhlIG9ubHkgdGhpbmcgd2UgbmVlZCB0byBjaGVjay4KLQkgKi8KLQlyZXR1cm4gZGV2X3ByaXYtPnJ1bnRpbWVfcG0uaXJxc19lbmFibGVkOwotfQorYm9vbCBpbnRlbF9pcnFzX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaW50ZWxfc3luY2hyb25pemVfaXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIAogaW50IGludGVsX2dldF9jcnRjX3NjYW5saW5lKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKIHZvaWQgZ2VuOF9pcnFfcG93ZXJfd2VsbF9wb3N0X2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICB1OCBwaXBlX21hc2spOwogdm9pZCBnZW44X2lycV9wb3dlcl93ZWxsX3ByZV9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgIHU4IHBpcGVfbWFzayk7Ci12b2lkIGdlbjlfcmVzZXRfZ3VjX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgZ2VuOV9lbmFibGVfZ3VjX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgZ2VuOV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGdlbjExX3Jlc2V0X2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZvaWQgZ2VuMTFfZW5hYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZvaWQgZ2VuMTFfZGlzYWJsZV9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cit2b2lkIGdlbjlfcmVzZXRfZ3VjX2ludGVycnVwdHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK3ZvaWQgZ2VuOV9lbmFibGVfZ3VjX2ludGVycnVwdHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK3ZvaWQgZ2VuOV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cit2b2lkIGdlbjExX3Jlc2V0X2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cit2b2lkIGdlbjExX2VuYWJsZV9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwordm9pZCBnZW4xMV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CisKK2Jvb2wgaTkxNV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAorCQkJICAgICAgYm9vbCBpbl92YmxhbmtfaXJxLCBpbnQgKnZwb3MsIGludCAqaHBvcywKKwkJCSAgICAgIGt0aW1lX3QgKnN0aW1lLCBrdGltZV90ICpldGltZSwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKKwordTMyIGk5MTVfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cit1MzIgZzR4X2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOworCitpbnQgaTh4eF9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CitpbnQgaTk0NWdtX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKK2ludCBpOTY1X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKK2ludCBpbGtfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOworaW50IGJkd19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cit2b2lkIGk4eHhfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKK3ZvaWQgaTk0NWdtX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cit2b2lkIGk5NjVfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKK3ZvaWQgaWxrX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cit2b2lkIGJkd19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOworCit2b2lkIGdlbjJfaXJxX3Jlc2V0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSk7Cit2b2lkIGdlbjNfaXJxX3Jlc2V0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwgaTkxNV9yZWdfdCBpbXIsCisJCSAgICBpOTE1X3JlZ190IGlpciwgaTkxNV9yZWdfdCBpZXIpOworCit2b2lkIGdlbjJfaXJxX2luaXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAorCQkgICB1MzIgaW1yX3ZhbCwgdTMyIGllcl92YWwpOwordm9pZCBnZW4zX2lycV9pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKKwkJICAgaTkxNV9yZWdfdCBpbXIsIHUzMiBpbXJfdmFsLAorCQkgICBpOTE1X3JlZ190IGllciwgdTMyIGllcl92YWwsCisJCSAgIGk5MTVfcmVnX3QgaWlyKTsKKworI2RlZmluZSBHRU44X0lSUV9SRVNFVF9ORFgodW5jb3JlLCB0eXBlLCB3aGljaCkgXAorKHsgXAorCXVuc2lnbmVkIGludCB3aGljaF8gPSB3aGljaDsgXAorCWdlbjNfaXJxX3Jlc2V0KCh1bmNvcmUpLCBHRU44XyMjdHlwZSMjX0lNUih3aGljaF8pLCBcCisJCSAgICAgICBHRU44XyMjdHlwZSMjX0lJUih3aGljaF8pLCBHRU44XyMjdHlwZSMjX0lFUih3aGljaF8pKTsgXAorfSkKKworI2RlZmluZSBHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIHR5cGUpIFwKKwlnZW4zX2lycV9yZXNldCgodW5jb3JlKSwgdHlwZSMjSU1SLCB0eXBlIyNJSVIsIHR5cGUjI0lFUikKKworI2RlZmluZSBHRU4yX0lSUV9SRVNFVCh1bmNvcmUpIFwKKwlnZW4yX2lycV9yZXNldCh1bmNvcmUpCisKKyNkZWZpbmUgR0VOOF9JUlFfSU5JVF9ORFgodW5jb3JlLCB0eXBlLCB3aGljaCwgaW1yX3ZhbCwgaWVyX3ZhbCkgXAorKHsgXAorCXVuc2lnbmVkIGludCB3aGljaF8gPSB3aGljaDsgXAorCWdlbjNfaXJxX2luaXQoKHVuY29yZSksIFwKKwkJICAgICAgR0VOOF8jI3R5cGUjI19JTVIod2hpY2hfKSwgaW1yX3ZhbCwgXAorCQkgICAgICBHRU44XyMjdHlwZSMjX0lFUih3aGljaF8pLCBpZXJfdmFsLCBcCisJCSAgICAgIEdFTjhfIyN0eXBlIyNfSUlSKHdoaWNoXykpOyBcCit9KQorCisjZGVmaW5lIEdFTjNfSVJRX0lOSVQodW5jb3JlLCB0eXBlLCBpbXJfdmFsLCBpZXJfdmFsKSBcCisJZ2VuM19pcnFfaW5pdCgodW5jb3JlKSwgXAorCQkgICAgICB0eXBlIyNJTVIsIGltcl92YWwsIFwKKwkJICAgICAgdHlwZSMjSUVSLCBpZXJfdmFsLCBcCisJCSAgICAgIHR5cGUjI0lJUikKKworI2RlZmluZSBHRU4yX0lSUV9JTklUKHVuY29yZSwgaW1yX3ZhbCwgaWVyX3ZhbCkgXAorCWdlbjJfaXJxX2luaXQoKHVuY29yZSksIGltcl92YWwsIGllcl92YWwpCiAKICNlbmRpZiAvKiBfX0k5MTVfSVJRX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9tZW1jcHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfbWVtY3B5LmMKaW5kZXggNzlmOGVjNy4uMDdiMDRiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9tZW1jcHkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21lbWNweS5jCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8YXNtL2ZwdS9hcGkuaD4KIAotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9tZW1jcHkuaCIKIAogc3RhdGljIERFRklORV9TVEFUSUNfS0VZX0ZBTFNFKGhhc19tb3ZudGRxYSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfbWVtY3B5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21lbWNweS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3MGQ4NGIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21lbWNweS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19JOTE1X01FTUNQWV9IX18KKyNkZWZpbmUgX19JOTE1X01FTUNQWV9IX18KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworCit2b2lkIGk5MTVfbWVtY3B5X2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworYm9vbCBpOTE1X21lbWNweV9mcm9tX3djKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLCB1bnNpZ25lZCBsb25nIGxlbik7CisKKy8qIFRoZSBtb3ZudGRxYSBpbnN0cnVjdGlvbnMgdXNlZCBmb3IgbWVtY3B5LWZyb20td2MgcmVxdWlyZSAxNi1ieXRlIGFsaWdubWVudCwKKyAqIGFzIHdlbGwgYXMgU1NFNC4xIHN1cHBvcnQuIGk5MTVfbWVtY3B5X2Zyb21fd2MoKSB3aWxsIHJlcG9ydCBpZiBpdCBjYW5ub3QKKyAqIHBlcmZvcm0gdGhlIG9wZXJhdGlvbi4gVG8gY2hlY2sgYmVmb3JlaGFuZCwgcGFzcyBpbiB0aGUgcGFyYW1ldGVycyB0bworICogdG8gaTkxNV9jYW5fbWVtY3B5X2Zyb21fd2MoKSAtIHNpbmNlIHdlIG9ubHkgY2FyZSBhYm91dCB0aGUgbG93IDQgYml0cywKKyAqIHlvdSBvbmx5IG5lZWQgdG8gcGFzcyBpbiB0aGUgbWlub3Igb2Zmc2V0cywgcGFnZS1hbGlnbmVkIHBvaW50ZXJzIGFyZQorICogYWx3YXlzIHZhbGlkLgorICoKKyAqIEZvciBqdXN0IGNoZWNraW5nIGZvciBTU0U0LjEsIGluIHRoZSBmb3Jla25vd2xlZGdlIHRoYXQgdGhlIGZ1dHVyZSB1c2UKKyAqIHdpbGwgYmUgY29ycmVjdGx5IGFsaWduZWQsIGp1c3QgdXNlIGk5MTVfaGFzX21lbWNweV9mcm9tX3djKCkuCisgKi8KKyNkZWZpbmUgaTkxNV9jYW5fbWVtY3B5X2Zyb21fd2MoZHN0LCBzcmMsIGxlbikgXAorCWk5MTVfbWVtY3B5X2Zyb21fd2MoKHZvaWQgKikoKHVuc2lnbmVkIGxvbmcpKGRzdCkgfCAodW5zaWduZWQgbG9uZykoc3JjKSB8IChsZW4pKSwgTlVMTCwgMCkKKworI2RlZmluZSBpOTE1X2hhc19tZW1jcHlfZnJvbV93YygpIFwKKwlpOTE1X21lbWNweV9mcm9tX3djKE5VTEwsIE5VTEwsIDApCisKKyNlbmRpZiAvKiBfX0k5MTVfTUVNQ1BZX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9tbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9tbS5jCmluZGV4IGMyM2JiMjkuLjMxODU2MmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfbW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21tLmMKQEAgLTYzLDkgKzYzLDggQEAgaW50IHJlbWFwX2lvX21hcHBpbmcoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJc3RydWN0IHJlbWFwX3BmbiByOwogCWludCBlcnI7CiAKLQlHRU1fQlVHX09OKCh2bWEtPnZtX2ZsYWdzICYKLQkJICAgIChWTV9JTyB8IFZNX1BGTk1BUCB8IFZNX0RPTlRFWFBBTkQgfCBWTV9ET05URFVNUCkpICE9Ci0JCSAgIChWTV9JTyB8IFZNX1BGTk1BUCB8IFZNX0RPTlRFWFBBTkQgfCBWTV9ET05URFVNUCkpOworI2RlZmluZSBFWFBFQ1RFRF9GTEFHUyAoVk1fUEZOTUFQIHwgVk1fRE9OVEVYUEFORCB8IFZNX0RPTlREVU1QKQorCUdFTV9CVUdfT04oKHZtYS0+dm1fZmxhZ3MgJiBFWFBFQ1RFRF9GTEFHUykgIT0gRVhQRUNURURfRkxBR1MpOwogCiAJLyogV2UgcmVseSBvbiBwcmV2YWxpZGF0aW9uIG9mIHRoZSBpby1tYXBwaW5nIHRvIHNraXAgdHJhY2tfcGZuKCkuICovCiAJci5tbSA9IHZtYS0+dm1fbW07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Jkdy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9iZHcuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFjZGI5NC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Jkdy5jCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgotCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpOTE1X29hX2Jkdy5oIgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAotCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAotCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZmNyB9LAotCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAotCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAotCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAotCXsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAotCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAotCXsgX01NSU8oMHgyN2E4KSwgMHgwMDEwMDAwMSB9LAotCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDBhMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxOThiMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwNzhiMDA2NiB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxMThiMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgyNThiMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgyMTg1MDAwOCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwZDgzNDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg0NDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgwNDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg0ZjgwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzMTgwMDAwMCB9LAotCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAotfTsKLQotc3RhdGljIHNzaXplX3QKLXNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQotewotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwotfQotCi12b2lkCi1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19iZHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKLQkJImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5MDQ0ZSIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5MDQ0ZSI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9iZHcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYmR3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlNjY3ZjEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9iZHcuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCi0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKLSAqLwotCi0jaWZuZGVmIF9fSTkxNV9PQV9CRFdfSF9fCi0jZGVmaW5lIF9fSTkxNV9PQV9CRFdfSF9fCi0KLWV4dGVybiB2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2JkdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYnh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2J4dC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDQxOTVjLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYnh0LmMKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Ci0KLSNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImk5MTVfb2FfYnh0LmgiCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCi0JeyBfTU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCi0JeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCi0JeyBfTU1JTygweDI3ODQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCi0JeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCi0JeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCi0JeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCi0JeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCi0JeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCi0JeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCi0JeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDE5ODAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDA3ODAwMDYzIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDExODAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDIzODEwMDA4IH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFkOTUwNDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDBmOTIyMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCi19OwotCi1zdGF0aWMgc3NpemVfdAotc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCi17Ci0JcmV0dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Ci19Ci0KLXZvaWQKLWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2J4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAotCQkiNWVlNzJmNWMtMDkyZi00MjFlLThiNzAtMjI1ZjdjM2U5NjEyIiwKLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNWVlNzJmNWMtMDkyZi00MjFlLThiNzAtMjI1ZjdjM2U5NjEyIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2J4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9ieHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc5ZTkyYy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2J4dC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQotICovCi0KLSNpZm5kZWYgX19JOTE1X09BX0JYVF9IX18KLSNkZWZpbmUgX19JOTE1X09BX0JYVF9IX18KLQotZXh0ZXJuIHZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfYnh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2ZsZ3QyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNjBkNTEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDIuYworKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCi0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KLQotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaTkxNV9vYV9jZmxndDIuaCIKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLQl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKLQl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKLQl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKLQl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKLQl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKLQl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKLQl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKLQl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKLQl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKLQl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKLQl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKLQl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKLQl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0gewotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLQl7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MTAwMTMgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MTAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MDdlNTQwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKLX07Ci0KLXN0YXRpYyBzc2l6ZV90Ci1zaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKLXsKLQlyZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKLX0KLQotdm9pZAotaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY2ZsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCi0JCSI3NGZiNDkwMi1kM2QzLTQyMzctOWU5MC1jYmRjNjhkMGE0NDYiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI3NGZiNDkwMi1kM2QzLTQyMzctOWU5MC1jYmRjNjhkMGE0NDYiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2ZsZ3QyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0Mi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDYwMjU1Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2ZsZ3QyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2lmbmRlZiBfX0k5MTVfT0FfQ0ZMR1QyX0hfXwotI2RlZmluZSBfX0k5MTVfT0FfQ0ZMR1QyX0hfXwotCi1leHRlcm4gdm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jZmxndDIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0My5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTkyYzM4ZS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0My5jCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgotCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpOTE1X29hX2NmbGd0My5oIgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAotCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAotCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZmNyB9LAotCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAotCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAotCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAotCXsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAotCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAotCXsgX01NSU8oMHgyN2E4KSwgMHgwMDEwMDAwMSB9LAotCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgxMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgxMDAxMyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgxMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgxMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkzMDA0MCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwN2U1NDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAotfTsKLQotc3RhdGljIHNzaXplX3QKLXNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQotewotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwotfQotCi12b2lkCi1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jZmxndDMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKLQkJIjU3N2U4ZTJjLTNmYTAtNDg3NS04NzQzLTM1MzhkNTg1ZTNiMCIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjU3N2U4ZTJjLTNmYTAtNDg3NS04NzQzLTM1MzhkNTg1ZTNiMCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2ZsZ3QzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2OTdmNDAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDMuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCi0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKLSAqLwotCi0jaWZuZGVmIF9fSTkxNV9PQV9DRkxHVDNfSF9fCi0jZGVmaW5lIF9fSTkxNV9PQV9DRkxHVDNfSF9fCi0KLWV4dGVybiB2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NmbGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2h2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MWVjODg5Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2h2LmMKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Ci0KLSNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImk5MTVfb2FfY2h2LmgiCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCi0JeyBfTU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCi0JeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCi0JeyBfTU1JTygweDI3ODQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCi0JeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCi0JeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCi0JeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCi0JeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCi0JeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCi0JeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCi0JeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweDk4NDApLCAweDAwMDAwMGEwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDU5ODAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDU5ODAwMDAxIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDMzOGIwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDI1OGIwMDY2IH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDA1OGIwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDAzOGIwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDAzODQ0MDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDQ3ODAwMDgwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDU3ODAwMDAwIH0sCi0JeyBfTU1JTygweDE4MjNhNCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4NTk4MDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKLX07Ci0KLXN0YXRpYyBzc2l6ZV90Ci1zaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKLXsKLQlyZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKLX0KLQotdm9pZAotaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY2h2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCi0JCSI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2h2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nodi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTg2ZWFlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2h2LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2lmbmRlZiBfX0k5MTVfT0FfQ0hWX0hfXwotI2RlZmluZSBfX0k5MTVfT0FfQ0hWX0hfXwotCi1leHRlcm4gdm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jaHYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NubC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jbmwuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWMyM2Q4OC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NubC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCi0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KLQotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaTkxNV9vYV9jbmwuaCIKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLQl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKLQl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZmYgfSwKLQl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKLQl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZmZmYgfSwKLQl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKLQl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZmZmYgfSwKLQl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKLQl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKLQl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKLQl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKLQl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKLQl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKLQl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKLQl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKLQl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKLQl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0gewotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLQl7IF9NTUlPKDB4ZDA0KSwgMHgwMDAwMDIwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxNzA2MDAwMCB9LAotCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxMzAzNDAwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwNzA2MDA2NiB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwNTA2MDAwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwZjA4MDA0MCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwNzA5MTAwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwZjA0MTAwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZDAwNDAwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzNTAwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg0OTAwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzZDAwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzMTAwMDAwMCB9LAotfTsKLQotc3RhdGljIHNzaXplX3QKLXNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQotewotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwotfQotCi12b2lkCi1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jbmwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKLQkJImRiNDFlZGQ0LWQ4ZTctNDczMC1hZDExLWI5YTJkNjgzMzUwMyIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImRiNDFlZGQ0LWQ4ZTctNDczMC1hZDExLWI5YTJkNjgzMzUwMyI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jbmwuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY25sLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4MzBhNDA2Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY25sLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2lmbmRlZiBfX0k5MTVfT0FfQ05MX0hfXwotI2RlZmluZSBfX0k5MTVfT0FfQ05MX0hfXwotCi1leHRlcm4gdm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jbmwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2dsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9nbGsuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJkZGE2Ni4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2dsay5jCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgotCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpOTE1X29hX2dsay5oIgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAotCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAotCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZmNyB9LAotCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAotCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAotCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAotCXsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAotCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAotCXsgX01NSU8oMHgyN2E4KSwgMHgwMDEwMDAwMSB9LAotCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgwMDA2MyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgyMzgxMDAwOCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZDk1MDQwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwZjkyMjAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg0NzkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAotfTsKLQotc3RhdGljIHNzaXplX3QKLXNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQotewotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwotfQotCi12b2lkCi1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19nbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKLQkJImRkM2ZkNzg5LWU3ODMtNDIwNC04Y2QwLWI2NzFiYmNjYjBjZiIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImRkM2ZkNzg5LWU3ODMtNDIwNC04Y2QwLWI2NzFiYmNjYjBjZiI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9nbGsuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfZ2xrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2ZGVkZjkuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9nbGsuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCi0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKLSAqLwotCi0jaWZuZGVmIF9fSTkxNV9PQV9HTEtfSF9fCi0jZGVmaW5lIF9fSTkxNV9PQV9HTEtfSF9fCi0KLWV4dGVybiB2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2dsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaHN3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzY1MjZmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaHN3LmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgotCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpOTE1X29hX2hzdy5oIgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfcmVuZGVyX2Jhc2ljW10gPSB7Ci0JeyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTQpLCAweDAwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3JlbmRlcl9iYXNpY1tdID0gewotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3JlbmRlcl9iYXNpY1tdID0gewotCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAotCXsgX01NSU8oMHgyNTNhNCksIDB4MDE2MDAwMDAgfSwKLQl7IF9NTUlPKDB4MjU0NDApLCAweDAwMTAwMDAwIH0sCi0JeyBfTU1JTygweDI1MTI4KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNjkxYyksIDB4MDAwMDA4MDAgfSwKLQl7IF9NTUlPKDB4MjZhYTApLCAweDAxNTAwMDAwIH0sCi0JeyBfTU1JTygweDI2YjljKSwgMHgwMDAwNjAwMCB9LAotCXsgX01NSU8oMHgyNzkxYyksIDB4MDAwMDA4MDAgfSwKLQl7IF9NTUlPKDB4MjdhYTApLCAweDAxNTAwMDAwIH0sCi0JeyBfTU1JTygweDI3YjljKSwgMHgwMDAwNjAwMCB9LAotCXsgX01NSU8oMHgyNjQxYyksIDB4MDAwMDA0MDAgfSwKLQl7IF9NTUlPKDB4MjUzODApLCAweDAwMDAwMDEwIH0sCi0JeyBfTU1JTygweDI1MzhjKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNTM4NCksIDB4MDgwMGFhYWEgfSwKLQl7IF9NTUlPKDB4MjU0MDApLCAweDAwMDAwMDA0IH0sCi0JeyBfTU1JTygweDI1NDBjKSwgMHgwNjAyOTAwMCB9LAotCXsgX01NSU8oMHgyNTQxMCksIDB4MDAwMDAwMDIgfSwKLQl7IF9NTUlPKDB4MjU0MDQpLCAweDVjMzBmZmZmIH0sCi0JeyBfTU1JTygweDI1MTAwKSwgMHgwMDAwMDAxNiB9LAotCXsgX01NSU8oMHgyNTExMCksIDB4MDAwMDA0MDAgfSwKLQl7IF9NTUlPKDB4MjUxMDQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI2ODA0KSwgMHgwMDAwMTIxMSB9LAotCXsgX01NSU8oMHgyNjg4NCksIDB4MDAwMDAxMDAgfSwKLQl7IF9NTUlPKDB4MjY5MDApLCAweDAwMDAwMDAyIH0sCi0JeyBfTU1JTygweDI2OTA4KSwgMHgwMDcwMDAwMCB9LAotCXsgX01NSU8oMHgyNjkwNCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjY5ODQpLCAweDAwMDAxMDIyIH0sCi0JeyBfTU1JTygweDI2YTA0KSwgMHgwMDAwMDAxMSB9LAotCXsgX01NSU8oMHgyNmE4MCksIDB4MDAwMDAwMDYgfSwKLQl7IF9NTUlPKDB4MjZhODgpLCAweDAwMDAwYzAyIH0sCi0JeyBfTU1JTygweDI2YTg0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNmIwNCksIDB4MDAwMDEwMDAgfSwKLQl7IF9NTUlPKDB4MjZiODApLCAweDAwMDAwMDAyIH0sCi0JeyBfTU1JTygweDI2YjhjKSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHgyNmI4NCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc4MDQpLCAweDAwMDA0ODQ0IH0sCi0JeyBfTU1JTygweDI3ODg0KSwgMHgwMDAwMDQwMCB9LAotCXsgX01NSU8oMHgyNzkwMCksIDB4MDAwMDAwMDIgfSwKLQl7IF9NTUlPKDB4Mjc5MDgpLCAweDBlMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3OTA0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzk4NCksIDB4MDAwMDQwODggfSwKLQl7IF9NTUlPKDB4MjdhMDQpLCAweDAwMDAwMDQ0IH0sCi0JeyBfTU1JTygweDI3YTgwKSwgMHgwMDAwMDAwNiB9LAotCXsgX01NSU8oMHgyN2E4OCksIDB4MDAwMTgwNDAgfSwKLQl7IF9NTUlPKDB4MjdhODQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3YjA0KSwgMHgwMDAwNDAwMCB9LAotCXsgX01NSU8oMHgyN2I4MCksIDB4MDAwMDAwMDIgfSwKLQl7IF9NTUlPKDB4MjdiOGMpLCAweDAwMDAwMGUwIH0sCi0JeyBfTU1JTygweDI3Yjg0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNjEwNCksIDB4MDAwMDIyMjIgfSwKLQl7IF9NTUlPKDB4MjYxODQpLCAweDBjMDA2NjY2IH0sCi0JeyBfTU1JTygweDI2Mjg0KSwgMHgwNDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNjMwNCksIDB4MDQwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjY0MDApLCAweDAwMDAwMDAyIH0sCi0JeyBfTU1JTygweDI2NDEwKSwgMHgwMDAwMDBhMCB9LAotCXsgX01NSU8oMHgyNjQwNCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjU0MjApLCAweDA0MTA4MDIwIH0sCi0JeyBfTU1JTygweDI1NDI0KSwgMHgxMjg0YTQyMCB9LAotCXsgX01NSU8oMHgyNTQxYyksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjU0MjgpLCAweDAwMDQyMDQ5IH0sCi19OwotCi1zdGF0aWMgc3NpemVfdAotc2hvd19yZW5kZXJfYmFzaWNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKLXsKLQlyZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKLX0KLQotdm9pZAotaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaHN3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCi0JCSI0MDNkODgzMi0xYTI3LTRhYTYtYTY0ZS1mNTM4OWNlN2IyMTIiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ19yZW5kZXJfYmFzaWM7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3JlbmRlcl9iYXNpYyk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfcmVuZGVyX2Jhc2ljOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWMpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3JlbmRlcl9iYXNpYyk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI0MDNkODgzMi0xYTI3LTRhYTYtYTY0ZS1mNTM4OWNlN2IyMTIiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfcmVuZGVyX2Jhc2ljX2lkOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9oc3cuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaHN3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkMGM4NzAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9oc3cuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCi0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKLSAqLwotCi0jaWZuZGVmIF9fSTkxNV9PQV9IU1dfSF9fCi0jZGVmaW5lIF9fSTkxNV9PQV9IU1dfSF9fCi0KLWV4dGVybiB2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2hzdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaWNsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2ljbC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYWE1MTQyLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaWNsLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Ci0KLSNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImk5MTVfb2FfaWNsLmgiCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCi0JeyBfTU1JTygweDI3NzQpLCAweDAwMDBmZmZmIH0sCi0JeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCi0JeyBfTU1JTygweDI3N2MpLCAweDAwMDBmZmZmIH0sCi0JeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCi0JeyBfTU1JTygweDI3ODQpLCAweDAwMDBmZmZmIH0sCi0JeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCi0JeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCi0JeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCi0JeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCi0JeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCi0JeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCi0JeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCi0JeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweGQwNCksIDB4MDAwMDAyMDAgfSwKLQl7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4NCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTAwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MjIwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTYwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MjQwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTgwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWEwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTIwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTQwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTAwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MjIwNjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4NCksIDB4MDAwMDAwMDMgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTYxMzAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MjQwMDAwMDEgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MGUxMzAwNTYgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTAxMzAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWExMzAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4NTQxZjAwMDEgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTgxZjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4NGMxZjAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MzAxZjAwMDAgfSwKLX07Ci0KLXN0YXRpYyBzc2l6ZV90Ci1zaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKLXsKLQlyZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKLX0KLQotdm9pZAotaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaWNsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCi0JCSJhMjkxNjY1ZS0yNDRiLTRiNzYtOWI5YS0wMWRlOWQzYzgwNjgiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICJhMjkxNjY1ZS0yNDRiLTRiNzYtOWI5YS0wMWRlOWQzYzgwNjgiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaWNsLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2ljbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNGVhYTk3Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaWNsLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2lmbmRlZiBfX0k5MTVfT0FfSUNMX0hfXwotI2RlZmluZSBfX0k5MTVfT0FfSUNMX0hfXwotCi1leHRlcm4gdm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19pY2woc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0Mi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9rYmxndDIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY4ZTQ5YS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0Mi5jCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgotCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpOTE1X29hX2tibGd0Mi5oIgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAotCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAotCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZmNyB9LAotCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAotCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAotCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAotCXsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAotCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAotCXsgX01NSU8oMHgyN2E4KSwgMHgwMDEwMDAwMSB9LAotCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgxMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgxMDAxMyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgxMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgxMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkzMDA0MCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwN2U1NDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAotfTsKLQotc3RhdGljIHNzaXplX3QKLXNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQotewotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwotfQotCi12b2lkCi1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19rYmxndDIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKLQkJImJhYTNjN2U0LTUyYjYtNGI4NS04MDFlLTQ2NWE5NGI3NDZkZCIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImJhYTNjN2U0LTUyYjYtNGI4NS04MDFlLTQ2NWE5NGI3NDZkZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9rYmxndDIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3QyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1NTM5OGEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9rYmxndDIuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCi0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKLSAqLwotCi0jaWZuZGVmIF9fSTkxNV9PQV9LQkxHVDJfSF9fCi0jZGVmaW5lIF9fSTkxNV9PQV9LQkxHVDJfSF9fCi0KLWV4dGVybiB2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2tibGd0MihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3QzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmZhNTUzLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3QzLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Ci0KLSNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImk5MTVfb2Ffa2JsZ3QzLmgiCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCi0JeyBfTU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCi0JeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCi0JeyBfTU1JTygweDI3ODQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCi0JeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCi0JeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCi0JeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCi0JeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCi0JeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCi0JeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCi0JeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDExODEwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDA3ODEwMDEzIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFmODEwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFkODEwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFiOTMwMDQwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDA3ZTU0MDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDExOTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCi19OwotCi1zdGF0aWMgc3NpemVfdAotc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCi17Ci0JcmV0dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Ci19Ci0KLXZvaWQKLWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2tibGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAotCQkiZjE3OTJmMzItNmRiMi00YjUwLWI0YjItNTU3MTI4ZjE2ODhkIiwKLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiZjE3OTJmMzItNmRiMi00YjUwLWI0YjItNTU3MTI4ZjE2ODhkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9rYmxndDMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RkZDM0OC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQotICovCi0KLSNpZm5kZWYgX19JOTE1X09BX0tCTEdUM19IX18KLSNkZWZpbmUgX19JOTE1X09BX0tCTEdUM19IX18KLQotZXh0ZXJuIHZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfa2JsZ3QzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjZTZlZTguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDIuYworKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCi0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KLQotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaTkxNV9vYV9za2xndDIuaCIKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLQl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKLQl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKLQl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKLQl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKLQl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKLQl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKLQl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKLQl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKLQl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKLQl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKLQl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKLQl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKLQl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKLQl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKLQl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0gewotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLQl7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MTAwMTYgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MTAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MDdlNTQwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKLQl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKLX07Ci0KLXN0YXRpYyBzc2l6ZV90Ci1zaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKLXsKLQlyZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKLX0KLQotdm9pZAotaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCi0JCSIxNjUxOTQ5Zi0wYWMwLTRjYjEtYTA2Zi1kYWZkNzRhNDA3ZDEiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICIxNjUxOTQ5Zi0wYWMwLTRjYjEtYTA2Zi1kYWZkNzRhNDA3ZDEiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0Mi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTYyNTYwLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2lmbmRlZiBfX0k5MTVfT0FfU0tMR1QyX0hfXwotI2RlZmluZSBfX0k5MTVfT0FfU0tMR1QyX0hfXwotCi1leHRlcm4gdm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19za2xndDIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0My5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDg2Y2EyNi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0My5jCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgotCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpOTE1X29hX3NrbGd0My5oIgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAotCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAotCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAotCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAotCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAotCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZmNyB9LAotCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAotCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAotCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAotCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAotCXsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAotCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAotCXsgX01NSU8oMHgyN2E4KSwgMHgwMDEwMDAwMSB9LAotCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0gewotCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgxMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgxMDAxMyB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgxMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgxMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkzMDA0MCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgwN2U1NDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAotCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAotfTsKLQotc3RhdGljIHNzaXplX3QKLXNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQotewotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwotfQotCi12b2lkCi1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19za2xndDMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKLQkJIjJiOTg1ODAzLWQzYzktNDYyOS04YTRmLTYzNGJmZWNiYTBlOCIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjJiOTg1ODAzLWQzYzktNDYyOS04YTRmLTYzNGJmZWNiYTBlOCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1MGJlYjAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDMuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCi0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKLSAqLwotCi0jaWZuZGVmIF9fSTkxNV9PQV9TS0xHVDNfSF9fCi0jZGVmaW5lIF9fSTkxNV9PQV9TS0xHVDNfSF9fCi0KLWV4dGVybiB2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX3NrbGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3Q0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjkxYTZlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3Q0LmMKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAotICogRE8gTk9UIEVESVQgbWFudWFsbHkhCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Ci0KLSNpbmNsdWRlICJpOTE1X2Rydi5oIgotI2luY2x1ZGUgImk5MTVfb2Ffc2tsZ3Q0LmgiCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCi0JeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCi0JeyBfTU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCi0JeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCi0JeyBfTU1JTygweDI3ODQpLCAweDAwMDAwMDAwIH0sCi0JeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCi0JeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCi0JeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCi0JeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCi0JeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCi0JeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCi0JeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCi0JeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCi0JeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7Ci0JeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDExODEwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDA3ODEwMDEzIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFmODEwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFkODEwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFiOTMwMDQwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDA3ZTU0MDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDExOTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwMDAwIH0sCi0JeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCi19OwotCi1zdGF0aWMgc3NpemVfdAotc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCi17Ci0JcmV0dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Ci19Ci0KLXZvaWQKLWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX3NrbGd0NChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAotCQkiODgyZmE0MzMtMWY0YS00YTY3LWE5NjItYzc0MTg4OGZlNWY1IiwKLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Ci0KLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiODgyZmE0MzMtMWY0YS00YTY3LWE5NjItYzc0MTg4OGZlNWY1IjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKLQotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwotCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRjZjg0OS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQotICovCi0KLSNpZm5kZWYgX19JOTE1X09BX1NLTEdUNF9IX18KLSNkZWZpbmUgX19JOTE1X09BX1NLTEdUNF9IX18KLQotZXh0ZXJuIHZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3Q0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKaW5kZXggNWIwNzc2Ni4uMjk2NDUyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCkBAIC0xNjksOCArMTY5LDkgQEAgaTkxNV9wYXJhbV9uYW1lZF91bnNhZmUoaW5qZWN0X2xvYWRfZmFpbHVyZSwgdWludCwgMDQwMCwKIAkiRm9yY2UgYW4gZXJyb3IgYWZ0ZXIgYSBudW1iZXIgb2YgZmFpbHVyZSBjaGVjayBwb2ludHMgKDA6ZGlzYWJsZWQgKGRlZmF1bHQpLCBOOmZvcmNlIGZhaWx1cmUgYXQgdGhlIE50aCBmYWlsdXJlIGNoZWNrIHBvaW50KSIpOwogI2VuZGlmCiAKLWk5MTVfcGFyYW1fbmFtZWQoZW5hYmxlX2RwY2RfYmFja2xpZ2h0LCBib29sLCAwNjAwLAotCSJFbmFibGUgc3VwcG9ydCBmb3IgRFBDRCBiYWNrbGlnaHQgY29udHJvbCAoZGVmYXVsdDpmYWxzZSkiKTsKK2k5MTVfcGFyYW1fbmFtZWQoZW5hYmxlX2RwY2RfYmFja2xpZ2h0LCBpbnQsIDA2MDAsCisJIkVuYWJsZSBzdXBwb3J0IGZvciBEUENEIGJhY2tsaWdodCBjb250cm9sIgorCSIoLTE9dXNlIHBlci1WQlQgTEZQIGJhY2tsaWdodCB0eXBlIHNldHRpbmcsIDA9ZGlzYWJsZWQgW2RlZmF1bHRdLCAxPWVuYWJsZWQpIik7CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9HVlQpCiBpOTE1X3BhcmFtX25hbWVkKGVuYWJsZV9ndnQsIGJvb2wsIDA0MDAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaAppbmRleCBhNDc3MGNlLi5kMjlhZGUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKQEAgLTY0LDYgKzY0LDcgQEAgc3RydWN0IGRybV9wcmludGVyOwogCXBhcmFtKGludCwgcmVzZXQsIDIpIFwKIAlwYXJhbSh1bnNpZ25lZCBpbnQsIGluamVjdF9sb2FkX2ZhaWx1cmUsIDApIFwKIAlwYXJhbShpbnQsIGZhc3Rib290LCAtMSkgXAorCXBhcmFtKGludCwgZW5hYmxlX2RwY2RfYmFja2xpZ2h0LCAwKSBcCiAJcGFyYW0oY2hhciAqLCBmb3JjZV9wcm9iZSwgQ09ORklHX0RSTV9JOTE1X0ZPUkNFX1BST0JFKSBcCiAJLyogbGVhdmUgYm9vbHMgYXQgdGhlIGVuZCB0byBub3QgY3JlYXRlIGhvbGVzICovIFwKIAlwYXJhbShib29sLCBhbHBoYV9zdXBwb3J0LCBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9BTFBIQV9TVVBQT1JUKSkgXApAQCAtNzYsNyArNzcsNiBAQCBzdHJ1Y3QgZHJtX3ByaW50ZXI7CiAJcGFyYW0oYm9vbCwgdmVyYm9zZV9zdGF0ZV9jaGVja3MsIHRydWUpIFwKIAlwYXJhbShib29sLCBudWNsZWFyX3BhZ2VmbGlwLCBmYWxzZSkgXAogCXBhcmFtKGJvb2wsIGVuYWJsZV9kcF9tc3QsIHRydWUpIFwKLQlwYXJhbShib29sLCBlbmFibGVfZHBjZF9iYWNrbGlnaHQsIGZhbHNlKSBcCiAJcGFyYW0oYm9vbCwgZW5hYmxlX2d2dCwgZmFsc2UpCiAKICNkZWZpbmUgTUVNQkVSKFQsIG1lbWJlciwgLi4uKSBUIG1lbWJlcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCmluZGV4IDZjOWY0NmYuLjE5NzRlNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwpAQCAtNTIyLDggKzUyMiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaGFzd2VsbF9ndDNfaW5mbyA9IHsKICNkZWZpbmUgR0VOOF9GRUFUVVJFUyBcCiAJRzc1X0ZFQVRVUkVTLCBcCiAJR0VOKDgpLCBcCi0JLnBhZ2Vfc2l6ZXMgPSBJOTE1X0dUVF9QQUdFX1NJWkVfNEsgfCBcCi0JCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV8yTSwgXAogCS5oYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzID0gMSwgXAogCS5wcGd0dF90eXBlID0gSU5URUxfUFBHVFRfRlVMTCwgXAogCS5wcGd0dF9zaXplID0gNDgsIFwKQEAgLTU4Niw4ICs1ODQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2NoZXJyeXZpZXdfaW5mbyA9IHsKIAogI2RlZmluZSBHRU45X0RFRkFVTFRfUEFHRV9TSVpFUyBcCiAJLnBhZ2Vfc2l6ZXMgPSBJOTE1X0dUVF9QQUdFX1NJWkVfNEsgfCBcCi0JCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV82NEsgfCBcCi0JCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV8yTQorCQkgICAgICBJOTE1X0dUVF9QQUdFX1NJWkVfNjRLCiAKICNkZWZpbmUgR0VOOV9GRUFUVVJFUyBcCiAJR0VOOF9GRUFUVVJFUywgXApAQCAtNTk1LDcgKzU5Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfY2hlcnJ5dmlld19pbmZvID0gewogCUdFTjlfREVGQVVMVF9QQUdFX1NJWkVTLCBcCiAJLmhhc19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbiA9IDEsIFwKIAkuZGlzcGxheS5oYXNfY3NyID0gMSwgXAotCS5oYXNfZ3VjID0gMSwgXAorCS5oYXNfZ3RfdWMgPSAxLCBcCiAJLmRpc3BsYXkuaGFzX2lwYyA9IDEsIFwKIAkuZGRiX3NpemUgPSA4OTYKIApAQCAtNjQ3LDcgKzY0NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfc2t5bGFrZV9ndDRfaW5mbyA9IHsKIAkuZGlzcGxheS5oYXNfZHBfbXN0ID0gMSwgXAogCS5oYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzID0gMSwgXAogCS5oYXNfbG9naWNhbF9yaW5nX3ByZWVtcHRpb24gPSAxLCBcCi0JLmhhc19ndWMgPSAxLCBcCisJLmhhc19ndF91YyA9IDEsIFwKIAkucHBndHRfdHlwZSA9IElOVEVMX1BQR1RUX0ZVTEwsIFwKIAkucHBndHRfc2l6ZSA9IDQ4LCBcCiAJLmhhc19yZXNldF9lbmdpbmUgPSAxLCBcCkBAIC03MjcsOCArNzI0LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfY2Fubm9ubGFrZV9pbmZvID0gewogCS5ndCA9IDIsCiB9OwogCisjZGVmaW5lIEdFTjExX0RFRkFVTFRfUEFHRV9TSVpFUyBcCisJLnBhZ2Vfc2l6ZXMgPSBJOTE1X0dUVF9QQUdFX1NJWkVfNEsgfCBcCisJCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV82NEsgfCBcCisJCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV8yTQorCiAjZGVmaW5lIEdFTjExX0ZFQVRVUkVTIFwKIAlHRU4xMF9GRUFUVVJFUywgXAorCUdFTjExX0RFRkFVTFRfUEFHRV9TSVpFUywgXAogCS5waXBlX29mZnNldHMgPSB7IFwKIAkJW1RSQU5TQ09ERVJfQV0gPSBQSVBFX0FfT0ZGU0VULCBcCiAJCVtUUkFOU0NPREVSX0JdID0gUElQRV9CX09GRlNFVCwgXApAQCAtNzYxLDEwICs3NjQsNDEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9lbGtoYXJ0bGFrZV9pbmZvID0gewogCUdFTjExX0ZFQVRVUkVTLAogCVBMQVRGT1JNKElOVEVMX0VMS0hBUlRMQUtFKSwKIAkucmVxdWlyZV9mb3JjZV9wcm9iZSA9IDEsCi0JLmVuZ2luZV9tYXNrID0gQklUKFJDUzApIHwgQklUKEJDUzApIHwgQklUKFZDUzApLAorCS5lbmdpbmVfbWFzayA9IEJJVChSQ1MwKSB8IEJJVChCQ1MwKSB8IEJJVChWQ1MwKSB8IEJJVChWRUNTMCksCiAJLnBwZ3R0X3NpemUgPSAzNiwKIH07CiAKKyNkZWZpbmUgR0VOMTJfRkVBVFVSRVMgXAorCUdFTjExX0ZFQVRVUkVTLCBcCisJR0VOKDEyKSwgXAorCS5waXBlX29mZnNldHMgPSB7IFwKKwkJW1RSQU5TQ09ERVJfQV0gPSBQSVBFX0FfT0ZGU0VULCBcCisJCVtUUkFOU0NPREVSX0JdID0gUElQRV9CX09GRlNFVCwgXAorCQlbVFJBTlNDT0RFUl9DXSA9IFBJUEVfQ19PRkZTRVQsIFwKKwkJW1RSQU5TQ09ERVJfRF0gPSBQSVBFX0RfT0ZGU0VULCBcCisJCVtUUkFOU0NPREVSX0RTSV8wXSA9IFBJUEVfRFNJMF9PRkZTRVQsIFwKKwkJW1RSQU5TQ09ERVJfRFNJXzFdID0gUElQRV9EU0kxX09GRlNFVCwgXAorCX0sIFwKKwkudHJhbnNfb2Zmc2V0cyA9IHsgXAorCQlbVFJBTlNDT0RFUl9BXSA9IFRSQU5TQ09ERVJfQV9PRkZTRVQsIFwKKwkJW1RSQU5TQ09ERVJfQl0gPSBUUkFOU0NPREVSX0JfT0ZGU0VULCBcCisJCVtUUkFOU0NPREVSX0NdID0gVFJBTlNDT0RFUl9DX09GRlNFVCwgXAorCQlbVFJBTlNDT0RFUl9EXSA9IFRSQU5TQ09ERVJfRF9PRkZTRVQsIFwKKwkJW1RSQU5TQ09ERVJfRFNJXzBdID0gVFJBTlNDT0RFUl9EU0kwX09GRlNFVCwgXAorCQlbVFJBTlNDT0RFUl9EU0lfMV0gPSBUUkFOU0NPREVSX0RTSTFfT0ZGU0VULCBcCisJfSwgXAorCS5oYXNfZ2xvYmFsX21vY3MgPSAxCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfdGlnZXJsYWtlXzEyX2luZm8gPSB7CisJR0VOMTJfRkVBVFVSRVMsCisJUExBVEZPUk0oSU5URUxfVElHRVJMQUtFKSwKKwkubnVtX3BpcGVzID0gNCwKKwkucmVxdWlyZV9mb3JjZV9wcm9iZSA9IDEsCisJLmRpc3BsYXkuaGFzX21vZHVsYXJfZmlhID0gMSwKKwkuZW5naW5lX21hc2sgPQorCQlCSVQoUkNTMCkgfCBCSVQoQkNTMCkgfCBCSVQoVkVDUzApIHwgQklUKFZDUzApIHwgQklUKFZDUzIpLAorfTsKKwogI3VuZGVmIEdFTgogI3VuZGVmIFBMQVRGT1JNCiAKQEAgLTgzNiwyMiArODcwLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lpZGxpc3RbXSA9IHsKIAlJTlRFTF9DTkxfSURTKCZpbnRlbF9jYW5ub25sYWtlX2luZm8pLAogCUlOVEVMX0lDTF8xMV9JRFMoJmludGVsX2ljZWxha2VfMTFfaW5mbyksCiAJSU5URUxfRUhMX0lEUygmaW50ZWxfZWxraGFydGxha2VfaW5mbyksCisJSU5URUxfVEdMXzEyX0lEUygmaW50ZWxfdGlnZXJsYWtlXzEyX2luZm8pLAogCXswLCAwLCAwfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBwY2lpZGxpc3QpOwogCiBzdGF0aWMgdm9pZCBpOTE1X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKIAotCWRldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQlpZiAoIWRldikgLyogZHJpdmVyIGxvYWQgYWJvcnRlZCwgbm90aGluZyB0byBjbGVhbnVwICovCisJaTkxNSA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlpZiAoIWk5MTUpIC8qIGRyaXZlciBsb2FkIGFib3J0ZWQsIG5vdGhpbmcgdG8gY2xlYW51cCAqLwogCQlyZXR1cm47CiAKLQlpOTE1X2RyaXZlcl91bmxvYWQoZGV2KTsKLQlkcm1fZGV2X3B1dChkZXYpOwotCisJaTkxNV9kcml2ZXJfcmVtb3ZlKGk5MTUpOwogCXBjaV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKworCWRybV9kZXZfcHV0KCZpOTE1LT5kcm0pOwogfQogCiAvKiBpcyBkZXZpY2VfaWQgcHJlc2VudCBpbiBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpZHMgKi8KQEAgLTkyMywxMSArOTU4LDExIEBAIHN0YXRpYyBpbnQgaTkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAJaWYgKHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9wcm9iZV9kZWZlcihwZGV2KSkKIAkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CiAKLQllcnIgPSBpOTE1X2RyaXZlcl9sb2FkKHBkZXYsIGVudCk7CisJZXJyID0gaTkxNV9kcml2ZXJfcHJvYmUocGRldiwgZW50KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JaWYgKGk5MTVfaW5qZWN0X2xvYWRfZmFpbHVyZSgpKSB7CisJaWYgKGk5MTVfaW5qZWN0X3Byb2JlX2ZhaWx1cmUocGNpX2dldF9kcnZkYXRhKHBkZXYpKSkgewogCQlpOTE1X3BjaV9yZW1vdmUocGRldik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKaW5kZXggNTE0MDAxNy4uZTQyYjg2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKQEAgLTIwMCwyMCArMjAwLDIxIEBACiAjaW5jbHVkZSAiZ3QvaW50ZWxfbHJjX3JlZy5oIgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpOTE1X29hX2hzdy5oIgotI2luY2x1ZGUgImk5MTVfb2FfYmR3LmgiCi0jaW5jbHVkZSAiaTkxNV9vYV9jaHYuaCIKLSNpbmNsdWRlICJpOTE1X29hX3NrbGd0Mi5oIgotI2luY2x1ZGUgImk5MTVfb2Ffc2tsZ3QzLmgiCi0jaW5jbHVkZSAiaTkxNV9vYV9za2xndDQuaCIKLSNpbmNsdWRlICJpOTE1X29hX2J4dC5oIgotI2luY2x1ZGUgImk5MTVfb2Ffa2JsZ3QyLmgiCi0jaW5jbHVkZSAiaTkxNV9vYV9rYmxndDMuaCIKLSNpbmNsdWRlICJpOTE1X29hX2dsay5oIgotI2luY2x1ZGUgImk5MTVfb2FfY2ZsZ3QyLmgiCi0jaW5jbHVkZSAiaTkxNV9vYV9jZmxndDMuaCIKLSNpbmNsdWRlICJpOTE1X29hX2NubC5oIgotI2luY2x1ZGUgImk5MTVfb2FfaWNsLmgiCisjaW5jbHVkZSAiaTkxNV9wZXJmLmgiCisjaW5jbHVkZSAib2EvaTkxNV9vYV9oc3cuaCIKKyNpbmNsdWRlICJvYS9pOTE1X29hX2Jkdy5oIgorI2luY2x1ZGUgIm9hL2k5MTVfb2FfY2h2LmgiCisjaW5jbHVkZSAib2EvaTkxNV9vYV9za2xndDIuaCIKKyNpbmNsdWRlICJvYS9pOTE1X29hX3NrbGd0My5oIgorI2luY2x1ZGUgIm9hL2k5MTVfb2Ffc2tsZ3Q0LmgiCisjaW5jbHVkZSAib2EvaTkxNV9vYV9ieHQuaCIKKyNpbmNsdWRlICJvYS9pOTE1X29hX2tibGd0Mi5oIgorI2luY2x1ZGUgIm9hL2k5MTVfb2Ffa2JsZ3QzLmgiCisjaW5jbHVkZSAib2EvaTkxNV9vYV9nbGsuaCIKKyNpbmNsdWRlICJvYS9pOTE1X29hX2NmbGd0Mi5oIgorI2luY2x1ZGUgIm9hL2k5MTVfb2FfY2ZsZ3QzLmgiCisjaW5jbHVkZSAib2EvaTkxNV9vYV9jbmwuaCIKKyNpbmNsdWRlICJvYS9pOTE1X29hX2ljbC5oIgogCiAvKiBIVyByZXF1aXJlcyB0aGlzIHRvIGJlIGEgcG93ZXIgb2YgdHdvLCBiZXR3ZWVuIDEyOGsgYW5kIDE2TSwgdGhvdWdoIGRyaXZlcgogICogaXMgY3VycmVudGx5IGdlbmVyYWxseSBkZXNpZ25lZCBhc3N1bWluZyB0aGUgbGFyZ2VzdCAxNk0gc2l6ZSBpcyB1c2VkIHN1Y2gKQEAgLTM2NCw2ICszNjUsOCBAQCBzdHJ1Y3QgcGVyZl9vcGVuX3Byb3BlcnRpZXMgewogCWludCBvYV9wZXJpb2RfZXhwb25lbnQ7CiB9OwogCitzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgb2FfcG9sbF9jaGVja190aW1lcl9jYihzdHJ1Y3QgaHJ0aW1lciAqaHJ0aW1lcik7CisKIHN0YXRpYyB2b2lkIGZyZWVfb2FfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgIHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnKQogewpAQCAtMzkyLDggKzM5NSw4IEBAIHN0YXRpYyBpbnQgZ2V0X29hX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaW50IHJldDsKIAogCWlmIChtZXRyaWNzX3NldCA9PSAxKSB7Ci0JCSpvdXRfY29uZmlnID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnOwotCQlhdG9taWNfaW5jKCZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5yZWZfY291bnQpOworCQkqb3V0X2NvbmZpZyA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZzsKKwkJYXRvbWljX2luYygmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcucmVmX2NvdW50KTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC00MTIsMTMgKzQxNSwxNiBAQCBzdGF0aWMgaW50IGdldF9vYV9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB1MzIgZ2VuOF9vYV9od190YWlsX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHUzMiBnZW44X29hX2h3X3RhaWxfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CisKIAlyZXR1cm4gSTkxNV9SRUFEKEdFTjhfT0FUQUlMUFRSKSAmIEdFTjhfT0FUQUlMUFRSX01BU0s7CiB9CiAKLXN0YXRpYyB1MzIgZ2VuN19vYV9od190YWlsX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHUzMiBnZW43X29hX2h3X3RhaWxfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAJdTMyIG9hc3RhdHVzMSA9IEk5MTVfUkVBRChHRU43X09BU1RBVFVTMSk7CiAKIAlyZXR1cm4gb2FzdGF0dXMxICYgR0VON19PQVNUQVRVUzFfVEFJTF9NQVNLOwpAQCAtNDI2LDcgKzQzMiw3IEBAIHN0YXRpYyB1MzIgZ2VuN19vYV9od190YWlsX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAvKioKICAqIG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZCAtIGNoZWNrIGZvciBkYXRhIGFuZCB1cGRhdGUgdGFpbCBwdHIgc3RhdGUKLSAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UgaW5zdGFuY2UKKyAqIEBzdHJlYW06IGk5MTUgc3RyZWFtIGluc3RhbmNlCiAgKgogICogVGhpcyBpcyBlaXRoZXIgY2FsbGVkIHZpYSBmb3BzIChmb3IgYmxvY2tpbmcgcmVhZHMgaW4gdXNlciBjdHgpIG9yIHRoZSBwb2xsCiAgKiBjaGVjayBocnRpbWVyIChhdG9taWMgY3R4KSB0byBjaGVjayB0aGUgT0EgYnVmZmVyIHRhaWwgcG9pbnRlciBhbmQgY2hlY2sKQEAgLTQ0OCw5ICs0NTQsMTAgQEAgc3RhdGljIHUzMiBnZW43X29hX2h3X3RhaWxfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAgKgogICogUmV0dXJuczogJXRydWUgaWYgdGhlIE9BIGJ1ZmZlciBjb250YWlucyBkYXRhLCBlbHNlICVmYWxzZQogICovCi1zdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7Ci0JaW50IHJlcG9ydF9zaXplID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdF9zaXplOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CisJaW50IHJlcG9ydF9zaXplID0gc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0X3NpemU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1bnNpZ25lZCBpbnQgYWdlZF9pZHg7CiAJdTMyIGhlYWQsIGh3X3RhaWwsIGFnZWRfdGFpbCwgYWdpbmdfdGFpbDsKQEAgLTQ2MCwxOSArNDY3LDE5IEBAIHN0YXRpYyBib29sIG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogY291bGQgcmVzdWx0IGluIGFuIE9BIGJ1ZmZlciByZXNldCB3aGljaCBtaWdodCByZXNldCB0aGUgaGVhZCwKIAkgKiB0YWlsc1tdIGFuZCBhZ2VkX3RhaWwgc3RhdGUuCiAJICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCiAJLyogTkI6IFRoZSBoZWFkIHdlIG9ic2VydmUgaGVyZSBtaWdodCBlZmZlY3RpdmVseSBiZSBhIGxpdHRsZSBvdXQgb2YKIAkgKiBkYXRlIChiZXR3ZWVuIGhlYWQgYW5kIHRhaWxzW2FnZWRfaWR4XS5vZmZzZXQgaWYgdGhlcmUgaXMgY3VycmVudGx5CiAJICogYSByZWFkKCkgaW4gcHJvZ3Jlc3MuCiAJICovCi0JaGVhZCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5oZWFkOworCWhlYWQgPSBzdHJlYW0tPm9hX2J1ZmZlci5oZWFkOwogCi0JYWdlZF9pZHggPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuYWdlZF90YWlsX2lkeDsKLQlhZ2VkX3RhaWwgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFpbHNbYWdlZF9pZHhdLm9mZnNldDsKLQlhZ2luZ190YWlsID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zmc2V0OworCWFnZWRfaWR4ID0gc3RyZWFtLT5vYV9idWZmZXIuYWdlZF90YWlsX2lkeDsKKwlhZ2VkX3RhaWwgPSBzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1thZ2VkX2lkeF0ub2Zmc2V0OworCWFnaW5nX3RhaWwgPSBzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhdLm9mZnNldDsKIAotCWh3X3RhaWwgPSBkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfaHdfdGFpbF9yZWFkKGRldl9wcml2KTsKKwlod190YWlsID0gZGV2X3ByaXYtPnBlcmYub3BzLm9hX2h3X3RhaWxfcmVhZChzdHJlYW0pOwogCiAJLyogVGhlIHRhaWwgcG9pbnRlciBpbmNyZWFzZXMgaW4gNjQgYnl0ZSBpbmNyZW1lbnRzLAogCSAqIG5vdCBpbiByZXBvcnRfc2l6ZSBzdGVwcy4uLgpAQCAtNDkyLDE2ICs0OTksMTYgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBhdmFpbGFibGUpIHdpdGhvdXQgbmVlZGluZyB0byB3YWl0IGZvciBhIGxhdGVyIGhydGltZXIgY2FsbGJhY2suCiAJICovCiAJaWYgKGFnaW5nX3RhaWwgIT0gSU5WQUxJRF9UQUlMX1BUUiAmJgotCSAgICAoKG5vdyAtIGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2luZ190aW1lc3RhbXApID4KKwkgICAgKChub3cgLSBzdHJlYW0tPm9hX2J1ZmZlci5hZ2luZ190aW1lc3RhbXApID4KIAkgICAgIE9BX1RBSUxfTUFSR0lOX05TRUMpKSB7CiAKIAkJYWdlZF9pZHggXj0gMTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnZWRfdGFpbF9pZHggPSBhZ2VkX2lkeDsKKwkJc3RyZWFtLT5vYV9idWZmZXIuYWdlZF90YWlsX2lkeCA9IGFnZWRfaWR4OwogCiAJCWFnZWRfdGFpbCA9IGFnaW5nX3RhaWw7CiAKIAkJLyogTWFyayB0aGF0IHdlIG5lZWQgYSBuZXcgcG9pbnRlciB0byBzdGFydCBhZ2luZy4uLiAqLwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFpbHNbIWFnZWRfaWR4XS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOworCQlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7CiAJCWFnaW5nX3RhaWwgPSBJTlZBTElEX1RBSUxfUFRSOwogCX0KIApAQCAtNTE2LDcgKzUyMyw3IEBAIHN0YXRpYyBib29sIG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKGFnaW5nX3RhaWwgPT0gSU5WQUxJRF9UQUlMX1BUUiAmJgogCSAgICAoYWdlZF90YWlsID09IElOVkFMSURfVEFJTF9QVFIgfHwKIAkgICAgIE9BX1RBS0VOKGh3X3RhaWwsIGFnZWRfdGFpbCkgPj0gcmVwb3J0X3NpemUpKSB7Ci0JCXN0cnVjdCBpOTE1X3ZtYSAqdm1hID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZtYTsKKwkJc3RydWN0IGk5MTVfdm1hICp2bWEgPSBzdHJlYW0tPm9hX2J1ZmZlci52bWE7CiAJCXUzMiBndHRfb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldCh2bWEpOwogCiAJCS8qIEJlIHBhcmFub2lkIGFuZCBkbyBhIGJvdW5kcyBjaGVjayBvbiB0aGUgcG9pbnRlciByZWFkIGJhY2sKQEAgLTUyNSwxNiArNTMyLDE2IEBAIHN0YXRpYyBib29sIG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCSAqLwogCQlpZiAoaHdfdGFpbCA+PSBndHRfb2Zmc2V0ICYmCiAJCSAgICBod190YWlsIDwgKGd0dF9vZmZzZXQgKyBPQV9CVUZGRVJfU0laRSkpIHsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhdLm9mZnNldCA9CisJCQlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhdLm9mZnNldCA9CiAJCQkJYWdpbmdfdGFpbCA9IGh3X3RhaWw7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuYWdpbmdfdGltZXN0YW1wID0gbm93OworCQkJc3RyZWFtLT5vYV9idWZmZXIuYWdpbmdfdGltZXN0YW1wID0gbm93OwogCQl9IGVsc2UgewogCQkJRFJNX0VSUk9SKCJJZ25vcmluZyBzcHVyaW91cyBvdXQgb2YgcmFuZ2UgT0EgYnVmZmVyIHRhaWwgcG9pbnRlciA9ICV1XG4iLAogCQkJCSAgaHdfdGFpbCk7CiAJCX0KIAl9CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCiAJcmV0dXJuIGFnZWRfdGFpbCA9PSBJTlZBTElEX1RBSUxfUFRSID8KIAkJZmFsc2UgOiBPQV9UQUtFTihhZ2VkX3RhaWwsIGhlYWQpID49IHJlcG9ydF9zaXplOwpAQCAtNTk3LDggKzYwNCw3IEBAIHN0YXRpYyBpbnQgYXBwZW5kX29hX3NhbXBsZShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkJICAgIHNpemVfdCAqb2Zmc2V0LAogCQkJICAgIGNvbnN0IHU4ICpyZXBvcnQpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKLQlpbnQgcmVwb3J0X3NpemUgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0X3NpemU7CisJaW50IHJlcG9ydF9zaXplID0gc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0X3NpemU7CiAJc3RydWN0IGRybV9pOTE1X3BlcmZfcmVjb3JkX2hlYWRlciBoZWFkZXI7CiAJdTMyIHNhbXBsZV9mbGFncyA9IHN0cmVhbS0+c2FtcGxlX2ZsYWdzOwogCkBAIC02NTAsOSArNjU2LDkgQEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCQkJICBzaXplX3QgKm9mZnNldCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwotCWludCByZXBvcnRfc2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKLQl1OCAqb2FfYnVmX2Jhc2UgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHI7Ci0JdTMyIGd0dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52bWEpOworCWludCByZXBvcnRfc2l6ZSA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9zaXplOworCXU4ICpvYV9idWZfYmFzZSA9IHN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyOworCXUzMiBndHRfb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldChzdHJlYW0tPm9hX2J1ZmZlci52bWEpOwogCXUzMiBtYXNrID0gKE9BX0JVRkZFUl9TSVpFIC0gMSk7CiAJc2l6ZV90IHN0YXJ0X29mZnNldCA9ICpvZmZzZXQ7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTY2NCwxMyArNjcwLDEzIEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCWlmIChXQVJOX09OKCFzdHJlYW0tPmVuYWJsZWQpKQogCQlyZXR1cm4gLUVJTzsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKIAotCWhlYWQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuaGVhZDsKLQlhZ2VkX3RhaWxfaWR4ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7Ci0JdGFpbCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1thZ2VkX3RhaWxfaWR4XS5vZmZzZXQ7CisJaGVhZCA9IHN0cmVhbS0+b2FfYnVmZmVyLmhlYWQ7CisJYWdlZF90YWlsX2lkeCA9IHN0cmVhbS0+b2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7CisJdGFpbCA9IHN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzW2FnZWRfdGFpbF9pZHhdLm9mZnNldDsKIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAkvKgogCSAqIEFuIGludmFsaWQgdGFpbCBwb2ludGVyIGhlcmUgbWVhbnMgd2UncmUgc3RpbGwgd2FpdGluZyBmb3IgdGhlIHBvbGwKQEAgLTczNCwxMiArNzQwLDEyIEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQlyZWFzb24gPSAoKHJlcG9ydDMyWzBdID4+IE9BUkVQT1JUX1JFQVNPTl9TSElGVCkgJgogCQkJICBPQVJFUE9SVF9SRUFTT05fTUFTSyk7CiAJCWlmIChyZWFzb24gPT0gMCkgewotCQkJaWYgKF9fcmF0ZWxpbWl0KCZkZXZfcHJpdi0+cGVyZi5vYS5zcHVyaW91c19yZXBvcnRfcnMpKQorCQkJaWYgKF9fcmF0ZWxpbWl0KCZkZXZfcHJpdi0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMpKQogCQkJCURSTV9OT1RFKCJTa2lwcGluZyBzcHVyaW91cywgaW52YWxpZCBPQSByZXBvcnRcbiIpOwogCQkJY29udGludWU7CiAJCX0KIAotCQljdHhfaWQgPSByZXBvcnQzMlsyXSAmIGRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZF9tYXNrOworCQljdHhfaWQgPSByZXBvcnQzMlsyXSAmIHN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkX21hc2s7CiAKIAkJLyoKIAkJICogU3F1YXNoIHdoYXRldmVyIGlzIGluIHRoZSBDVFhfSUQgZmllbGQgaWYgaXQncyBtYXJrZWQgYXMKQEAgLTc0OSw3ICs3NTUsNyBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJICogTm90ZTogdGhhdCB3ZSBkb24ndCBjbGVhciB0aGUgdmFsaWRfY3R4X2JpdCBzbyB1c2Vyc3BhY2UgY2FuCiAJCSAqIHVuZGVyc3RhbmQgdGhhdCB0aGUgSUQgaGFzIGJlZW4gc3F1YXNoZWQgYnkgdGhlIGtlcm5lbC4KIAkJICovCi0JCWlmICghKHJlcG9ydDMyWzBdICYgZGV2X3ByaXYtPnBlcmYub2EuZ2VuOF92YWxpZF9jdHhfYml0KSkKKwkJaWYgKCEocmVwb3J0MzJbMF0gJiBkZXZfcHJpdi0+cGVyZi5nZW44X3ZhbGlkX2N0eF9iaXQpKQogCQkJY3R4X2lkID0gcmVwb3J0MzJbMl0gPSBJTlZBTElEX0NUWF9JRDsKIAogCQkvKgpAQCAtNzgzLDE4ICs3ODksMTcgQEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCSAqIHN3aXRjaGVzIHNpbmNlIGl0J3Mgbm90LXVuY29tbW9uIGZvciBwZXJpb2RpYyBzYW1wbGVzIHRvCiAJCSAqIGlkZW50aWZ5IGEgc3dpdGNoIGJlZm9yZSBhbnkgJ2NvbnRleHQgc3dpdGNoJyByZXBvcnQuCiAJCSAqLwotCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0tPmN0eCB8fAotCQkgICAgZGV2X3ByaXYtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkID09IGN0eF9pZCB8fAotCQkgICAgKGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5sYXN0X2N0eF9pZCA9PQotCQkgICAgIGRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCkgfHwKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5leGNsdXNpdmVfc3RyZWFtLT5jdHggfHwKKwkJICAgIHN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkID09IGN0eF9pZCB8fAorCQkgICAgc3RyZWFtLT5vYV9idWZmZXIubGFzdF9jdHhfaWQgPT0gc3RyZWFtLT5zcGVjaWZpY19jdHhfaWQgfHwKIAkJICAgIHJlYXNvbiAmIE9BUkVQT1JUX1JFQVNPTl9DVFhfU1dJVENIKSB7CiAKIAkJCS8qCiAJCQkgKiBXaGlsZSBmaWx0ZXJpbmcgZm9yIGEgc2luZ2xlIGNvbnRleHQgd2UgYXZvaWQKIAkJCSAqIGxlYWtpbmcgdGhlIElEcyBvZiBvdGhlciBjb250ZXh0cy4KIAkJCSAqLwotCQkJaWYgKGRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0tPmN0eCAmJgotCQkJICAgIGRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCAhPSBjdHhfaWQpIHsKKwkJCWlmIChkZXZfcHJpdi0+cGVyZi5leGNsdXNpdmVfc3RyZWFtLT5jdHggJiYKKwkJCSAgICBzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCAhPSBjdHhfaWQpIHsKIAkJCQlyZXBvcnQzMlsyXSA9IElOVkFMSURfQ1RYX0lEOwogCQkJfQogCkBAIC04MDMsNyArODA4LDcgQEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCQlpZiAocmV0KQogCQkJCWJyZWFrOwogCi0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIubGFzdF9jdHhfaWQgPSBjdHhfaWQ7CisJCQlzdHJlYW0tPm9hX2J1ZmZlci5sYXN0X2N0eF9pZCA9IGN0eF9pZDsKIAkJfQogCiAJCS8qCkBAIC04MTcsNyArODIyLDcgQEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJfQogCiAJaWYgKHN0YXJ0X29mZnNldCAhPSAqb2Zmc2V0KSB7Ci0JCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAkJLyoKIAkJICogV2UgcmVtb3ZlZCB0aGUgZ3R0X29mZnNldCBmb3IgdGhlIGNvcHkgbG9vcCBhYm92ZSwgaW5kZXhpbmcKQEAgLTgyNiw5ICs4MzEsOSBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJaGVhZCArPSBndHRfb2Zmc2V0OwogCiAJCUk5MTVfV1JJVEUoR0VOOF9PQUhFQURQVFIsIGhlYWQgJiBHRU44X09BSEVBRFBUUl9NQVNLKTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmhlYWQgPSBoZWFkOworCQlzdHJlYW0tPm9hX2J1ZmZlci5oZWFkID0gaGVhZDsKIAotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtODYzLDcgKzg2OCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9vYV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJdTMyIG9hc3RhdHVzOwogCWludCByZXQ7CiAKLQlpZiAoV0FSTl9PTighZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyKSkKKwlpZiAoV0FSTl9PTighc3RyZWFtLT5vYV9idWZmZXIudmFkZHIpKQogCQlyZXR1cm4gLUVJTzsKIAogCW9hc3RhdHVzID0gSTkxNV9SRUFEKEdFTjhfT0FTVEFUVVMpOwpAQCAtODg5LDEwICs4OTQsMTAgQEAgc3RhdGljIGludCBnZW44X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCXJldHVybiByZXQ7CiAKIAkJRFJNX0RFQlVHKCJPQSBidWZmZXIgb3ZlcmZsb3cgKGV4cG9uZW50ID0gJWQpOiBmb3JjZSByZXN0YXJ0XG4iLAotCQkJICBkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RfZXhwb25lbnQpOworCQkJICBzdHJlYW0tPnBlcmlvZF9leHBvbmVudCk7CiAKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2Rpc2FibGUoc3RyZWFtKTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2VuYWJsZShzdHJlYW0pOworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlzYWJsZShzdHJlYW0pOworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZW5hYmxlKHN0cmVhbSk7CiAKIAkJLyoKIAkJICogTm90ZTogLm9hX2VuYWJsZSgpIGlzIGV4cGVjdGVkIHRvIHJlLWluaXQgdGhlIG9hYnVmZmVyIGFuZApAQCAtOTM5LDkgKzk0NCw5IEBAIHN0YXRpYyBpbnQgZ2VuN19hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkJCSAgc2l6ZV90ICpvZmZzZXQpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKLQlpbnQgcmVwb3J0X3NpemUgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0X3NpemU7Ci0JdTggKm9hX2J1Zl9iYXNlID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyOwotCXUzMiBndHRfb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hKTsKKwlpbnQgcmVwb3J0X3NpemUgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKKwl1OCAqb2FfYnVmX2Jhc2UgPSBzdHJlYW0tPm9hX2J1ZmZlci52YWRkcjsKKwl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZmZXIudm1hKTsKIAl1MzIgbWFzayA9IChPQV9CVUZGRVJfU0laRSAtIDEpOwogCXNpemVfdCBzdGFydF9vZmZzZXQgPSAqb2Zmc2V0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC05NTMsMTMgKzk1OCwxMyBAQCBzdGF0aWMgaW50IGdlbjdfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAlpZiAoV0FSTl9PTighc3RyZWFtLT5lbmFibGVkKSkKIAkJcmV0dXJuIC1FSU87CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKLQloZWFkID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmhlYWQ7Ci0JYWdlZF90YWlsX2lkeCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4OwotCXRhaWwgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFpbHNbYWdlZF90YWlsX2lkeF0ub2Zmc2V0OworCWhlYWQgPSBzdHJlYW0tPm9hX2J1ZmZlci5oZWFkOworCWFnZWRfdGFpbF9pZHggPSBzdHJlYW0tPm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4OworCXRhaWwgPSBzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1thZ2VkX3RhaWxfaWR4XS5vZmZzZXQ7CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCiAJLyogQW4gaW52YWxpZCB0YWlsIHBvaW50ZXIgaGVyZSBtZWFucyB3ZSdyZSBzdGlsbCB3YWl0aW5nIGZvciB0aGUgcG9sbAogCSAqIGhydGltZXIgY2FsbGJhY2sgdG8gZ2l2ZSB1cyBhIHBvaW50ZXIKQEAgLTEwMTIsNyArMTAxNyw3IEBAIHN0YXRpYyBpbnQgZ2VuN19hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkgKiBjb3B5aW5nIGl0IHRvIHVzZXJzcGFjZS4uLgogCQkgKi8KIAkJaWYgKHJlcG9ydDMyWzBdID09IDApIHsKLQkJCWlmIChfX3JhdGVsaW1pdCgmZGV2X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzKSkKKwkJCWlmIChfX3JhdGVsaW1pdCgmZGV2X3ByaXYtPnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzKSkKIAkJCQlEUk1fTk9URSgiU2tpcHBpbmcgc3B1cmlvdXMsIGludmFsaWQgT0EgcmVwb3J0XG4iKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0xMDMxLDcgKzEwMzYsNyBAQCBzdGF0aWMgaW50IGdlbjdfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAl9CiAKIAlpZiAoc3RhcnRfb2Zmc2V0ICE9ICpvZmZzZXQpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKIAogCQkvKiBXZSByZW1vdmVkIHRoZSBndHRfb2Zmc2V0IGZvciB0aGUgY29weSBsb29wIGFib3ZlLCBpbmRleGluZwogCQkgKiByZWxhdGl2ZSB0byBvYV9idWZfYmFzZSBzbyBwdXQgYmFjayBoZXJlLi4uCkBAIC0xMDQxLDkgKzEwNDYsOSBAQCBzdGF0aWMgaW50IGdlbjdfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJSTkxNV9XUklURShHRU43X09BU1RBVFVTMiwKIAkJCSAgICgoaGVhZCAmIEdFTjdfT0FTVEFUVVMyX0hFQURfTUFTSykgfAogCQkJICAgIEdFTjdfT0FTVEFUVVMyX01FTV9TRUxFQ1RfR0dUVCkpOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuaGVhZCA9IGhlYWQ7CisJCXN0cmVhbS0+b2FfYnVmZmVyLmhlYWQgPSBoZWFkOwogCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC0xMDc0LDcgKzEwNzksNyBAQCBzdGF0aWMgaW50IGdlbjdfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCXUzMiBvYXN0YXR1czE7CiAJaW50IHJldDsKIAotCWlmIChXQVJOX09OKCFkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIpKQorCWlmIChXQVJOX09OKCFzdHJlYW0tPm9hX2J1ZmZlci52YWRkcikpCiAJCXJldHVybiAtRUlPOwogCiAJb2FzdGF0dXMxID0gSTkxNV9SRUFEKEdFTjdfT0FTVEFUVVMxKTsKQEAgLTEwODQsNyArMTA4OSw3IEBAIHN0YXRpYyBpbnQgZ2VuN19vYV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJICogbWF5IGJlIHVwZGF0ZWQgYXN5bmNocm9ub3VzbHkpIHNvIHdlIGlnbm9yZSBzdGF0dXMgYml0cwogCSAqIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gcmVwb3J0ZWQgdG8gdXNlcnNwYWNlLgogCSAqLwotCW9hc3RhdHVzMSAmPSB+ZGV2X3ByaXYtPnBlcmYub2EuZ2VuN19sYXRjaGVkX29hc3RhdHVzMTsKKwlvYXN0YXR1czEgJj0gfmRldl9wcml2LT5wZXJmLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czE7CiAKIAkvKiBXZSB0cmVhdCBPQUJVRkZFUl9PVkVSRkxPVyBhcyBhIHNpZ25pZmljYW50IGVycm9yOgogCSAqCkBAIC0xMTEzLDEwICsxMTE4LDEwIEBAIHN0YXRpYyBpbnQgZ2VuN19vYV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCQlyZXR1cm4gcmV0OwogCiAJCURSTV9ERUJVRygiT0EgYnVmZmVyIG92ZXJmbG93IChleHBvbmVudCA9ICVkKTogZm9yY2UgcmVzdGFydFxuIiwKLQkJCSAgZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kX2V4cG9uZW50KTsKKwkJCSAgc3RyZWFtLT5wZXJpb2RfZXhwb25lbnQpOwogCi0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9kaXNhYmxlKHN0cmVhbSk7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9lbmFibGUoc3RyZWFtKTsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2Rpc2FibGUoc3RyZWFtKTsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2VuYWJsZShzdHJlYW0pOwogCiAJCW9hc3RhdHVzMSA9IEk5MTVfUkVBRChHRU43X09BU1RBVFVTMSk7CiAJfQpAQCAtMTEyNiw3ICsxMTMxLDcgQEAgc3RhdGljIGludCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCQkgICAgICAgRFJNX0k5MTVfUEVSRl9SRUNPUkRfT0FfUkVQT1JUX0xPU1QpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKLQkJZGV2X3ByaXYtPnBlcmYub2EuZ2VuN19sYXRjaGVkX29hc3RhdHVzMSB8PQorCQlkZXZfcHJpdi0+cGVyZi5nZW43X2xhdGNoZWRfb2FzdGF0dXMxIHw9CiAJCQlHRU43X09BU1RBVFVTMV9SRVBPUlRfTE9TVDsKIAl9CiAKQEAgLTExNDksMTQgKzExNTQsMTIgQEAgc3RhdGljIGludCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKICAqLwogc3RhdGljIGludCBpOTE1X29hX3dhaXRfdW5sb2NrZWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwotCiAJLyogV2Ugd291bGQgd2FpdCBpbmRlZmluaXRlbHkgaWYgcGVyaW9kaWMgc2FtcGxpbmcgaXMgbm90IGVuYWJsZWQgKi8KLQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLnBlcmlvZGljKQorCWlmICghc3RyZWFtLT5wZXJpb2RpYykKIAkJcmV0dXJuIC1FSU87CiAKLQlyZXR1cm4gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGRldl9wcml2LT5wZXJmLm9hLnBvbGxfd3EsCi0JCQkJCW9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChkZXZfcHJpdikpOworCXJldHVybiB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoc3RyZWFtLT5wb2xsX3dxLAorCQkJCQlvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3RyZWFtKSk7CiB9CiAKIC8qKgpAQCAtMTE3Myw5ICsxMTc2LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9vYV9wb2xsX3dhaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCSAgICAgIHN0cnVjdCBmaWxlICpmaWxlLAogCQkJICAgICAgcG9sbF90YWJsZSAqd2FpdCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwotCi0JcG9sbF93YWl0KGZpbGUsICZkZXZfcHJpdi0+cGVyZi5vYS5wb2xsX3dxLCB3YWl0KTsKKwlwb2xsX3dhaXQoZmlsZSwgJnN0cmVhbS0+cG9sbF93cSwgd2FpdCk7CiB9CiAKIC8qKgpAQCAtMTE5NywxMyArMTE5OCwxNCBAQCBzdGF0aWMgaW50IGk5MTVfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAKLQlyZXR1cm4gZGV2X3ByaXYtPnBlcmYub2Eub3BzLnJlYWQoc3RyZWFtLCBidWYsIGNvdW50LCBvZmZzZXQpOworCXJldHVybiBkZXZfcHJpdi0+cGVyZi5vcHMucmVhZChzdHJlYW0sIGJ1ZiwgY291bnQsIG9mZnNldCk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqb2FfcGluX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCQkJCSAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQorc3RhdGljIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpvYV9waW5fY29udGV4dChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogewogCXN0cnVjdCBpOTE1X2dlbV9lbmdpbmVzX2l0ZXIgaXQ7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBzdHJlYW0tPmRldl9wcml2OworCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHggPSBzdHJlYW0tPmN0eDsKIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAJaW50IGVycjsKIApAQCAtMTIyMSw3ICsxMjIzLDcgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpvYV9waW5fY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJICovCiAJCWVyciA9IGludGVsX2NvbnRleHRfcGluKGNlKTsKIAkJaWYgKGVyciA9PSAwKSB7Ci0JCQlpOTE1LT5wZXJmLm9hLnBpbm5lZF9jdHggPSBjZTsKKwkJCXN0cmVhbS0+cGlubmVkX2N0eCA9IGNlOwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0xMjMxLDcgKzEyMzMsNyBAQCBzdGF0aWMgc3RydWN0IGludGVsX2NvbnRleHQgKm9hX3Bpbl9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWlmIChlcnIpCiAJCXJldHVybiBFUlJfUFRSKGVycik7CiAKLQlyZXR1cm4gaTkxNS0+cGVyZi5vYS5waW5uZWRfY3R4OworCXJldHVybiBzdHJlYW0tPnBpbm5lZF9jdHg7CiB9CiAKIC8qKgpAQCAtMTI0OSw3ICsxMjUxLDcgQEAgc3RhdGljIGludCBvYV9nZXRfcmVuZGVyX2N0eF9pZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAKLQljZSA9IG9hX3Bpbl9jb250ZXh0KGk5MTUsIHN0cmVhbS0+Y3R4KTsKKwljZSA9IG9hX3Bpbl9jb250ZXh0KHN0cmVhbSk7CiAJaWYgKElTX0VSUihjZSkpCiAJCXJldHVybiBQVFJfRVJSKGNlKTsKIApAQCAtMTI1OSw4ICsxMjYxLDggQEAgc3RhdGljIGludCBvYV9nZXRfcmVuZGVyX2N0eF9pZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogCQkgKiBPbiBIYXN3ZWxsIHdlIGRvbid0IGRvIGFueSBwb3N0IHByb2Nlc3Npbmcgb2YgdGhlIHJlcG9ydHMKIAkJICogYW5kIGRvbid0IG5lZWQgdG8gdXNlIHRoZSBtYXNrLgogCQkgKi8KLQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQgPSBpOTE1X2dndHRfb2Zmc2V0KGNlLT5zdGF0ZSk7Ci0JCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkX21hc2sgPSAwOworCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCA9IGk5MTVfZ2d0dF9vZmZzZXQoY2UtPnN0YXRlKTsKKwkJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzayA9IDA7CiAJCWJyZWFrOwogCX0KIApAQCAtMTI3OCwzMyArMTI4MCwzMyBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJCQkgKiBkcm9wcGVkIGJ5IEd1Qy4gVGhleSB3b24ndCBiZSBwYXJ0IG9mIHRoZSBjb250ZXh0CiAJCQkgKiBJRCBpbiB0aGUgT0EgcmVwb3J0cywgc28gc3F1YXNoIHRob3NlIGxvd2VyIGJpdHMuCiAJCQkgKi8KLQkJCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkID0KKwkJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkID0KIAkJCQlsb3dlcl8zMl9iaXRzKGNlLT5scmNfZGVzYykgPj4gMTI7CiAKIAkJCS8qCiAJCQkgKiBHdUMgdXNlcyB0aGUgdG9wIGJpdCB0byBzaWduYWwgcHJveHkgc3VibWlzc2lvbiwgc28KIAkJCSAqIGlnbm9yZSB0aGF0IGJpdC4KIAkJCSAqLwotCQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzayA9CisJCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9tYXNrID0KIAkJCQkoMVUgPDwgKEdFTjhfQ1RYX0lEX1dJRFRIIC0gMSkpIC0gMTsKIAkJfSBlbHNlIHsKLQkJCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkX21hc2sgPQorCQkJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzayA9CiAJCQkJKDFVIDw8IEdFTjhfQ1RYX0lEX1dJRFRIKSAtIDE7Ci0JCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCA9CisJCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCA9CiAJCQkJdXBwZXJfMzJfYml0cyhjZS0+bHJjX2Rlc2MpOwotCQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQgJj0KLQkJCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZF9tYXNrOworCQkJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWQgJj0KKwkJCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9tYXNrOwogCQl9CiAJCWJyZWFrOwogCiAJY2FzZSAxMTogewotCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZF9tYXNrID0KKwkJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzayA9CiAJCQkoKDFVIDw8IEdFTjExX1NXX0NUWF9JRF9XSURUSCkgLSAxKSA8PCAoR0VOMTFfU1dfQ1RYX0lEX1NISUZUIC0gMzIpIHwKIAkJCSgoMVUgPDwgR0VOMTFfRU5HSU5FX0lOU1RBTkNFX1dJRFRIKSAtIDEpIDw8IChHRU4xMV9FTkdJTkVfSU5TVEFOQ0VfU0hJRlQgLSAzMikgfAogCQkJKCgxIDw8IEdFTjExX0VOR0lORV9DTEFTU19XSURUSCkgLSAxKSA8PCAoR0VOMTFfRU5HSU5FX0NMQVNTX1NISUZUIC0gMzIpOwotCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCA9IHVwcGVyXzMyX2JpdHMoY2UtPmxyY19kZXNjKTsKLQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQgJj0KLQkJCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkX21hc2s7CisJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkID0gdXBwZXJfMzJfYml0cyhjZS0+bHJjX2Rlc2MpOworCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCAmPQorCQkJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzazsKIAkJYnJlYWs7CiAJfQogCkBAIC0xMzEzLDggKzEzMTUsOCBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJfQogCiAJRFJNX0RFQlVHX0RSSVZFUigiZmlsdGVyaW5nIG9uIGN0eF9pZD0weCV4IGN0eF9pZF9tYXNrPTB4JXhcbiIsCi0JCQkgaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQsCi0JCQkgaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzayk7CisJCQkgc3RyZWFtLT5zcGVjaWZpY19jdHhfaWQsCisJCQkgc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzayk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEzMzEsMTAgKzEzMzMsMTAgQEAgc3RhdGljIHZvaWQgb2FfcHV0X3JlbmRlcl9jdHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCA9IElOVkFMSURfQ1RYX0lEOwotCWRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZF9tYXNrID0gMDsKKwlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCA9IElOVkFMSURfQ1RYX0lEOworCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkX21hc2sgPSAwOwogCi0JY2UgPSBmZXRjaF9hbmRfemVybygmZGV2X3ByaXYtPnBlcmYub2EucGlubmVkX2N0eCk7CisJY2UgPSBmZXRjaF9hbmRfemVybygmc3RyZWFtLT5waW5uZWRfY3R4KTsKIAlpZiAoY2UpIHsKIAkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCQlpbnRlbF9jb250ZXh0X3VucGluKGNlKTsKQEAgLTEzNDMsMzQgKzEzNDUsMzYgQEAgc3RhdGljIHZvaWQgb2FfcHV0X3JlbmRlcl9jdHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIH0KIAogc3RhdGljIHZvaWQKLWZyZWVfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorZnJlZV9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHN0cmVhbS0+ZGV2X3ByaXY7CisKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZpOTE1LT5wZXJmLm9hLm9hX2J1ZmZlci52bWEsCisJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJnN0cmVhbS0+b2FfYnVmZmVyLnZtYSwKIAkJCQkgICBJOTE1X1ZNQV9SRUxFQVNFX01BUCk7CiAKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JaTkxNS0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIgPSBOVUxMOworCXN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyID0gTlVMTDsKIH0KIAogc3RhdGljIHZvaWQgaTkxNV9vYV9zdHJlYW1fZGVzdHJveShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAKLQlCVUdfT04oc3RyZWFtICE9IGRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0pOworCUJVR19PTihzdHJlYW0gIT0gZGV2X3ByaXYtPnBlcmYuZXhjbHVzaXZlX3N0cmVhbSk7CiAKIAkvKgogCSAqIFVuc2V0IGV4Y2x1c2l2ZV9zdHJlYW0gZmlyc3QsIGl0IHdpbGwgYmUgY2hlY2tlZCB3aGlsZSBkaXNhYmxpbmcKIAkgKiB0aGUgbWV0cmljIHNldCBvbiBnZW44Ky4KIAkgKi8KIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JZGV2X3ByaXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSA9IE5VTEw7Ci0JZGV2X3ByaXYtPnBlcmYub2Eub3BzLmRpc2FibGVfbWV0cmljX3NldChkZXZfcHJpdik7CisJZGV2X3ByaXYtPnBlcmYuZXhjbHVzaXZlX3N0cmVhbSA9IE5VTEw7CisJZGV2X3ByaXYtPnBlcmYub3BzLmRpc2FibGVfbWV0cmljX3NldChzdHJlYW0pOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JZnJlZV9vYV9idWZmZXIoZGV2X3ByaXYpOworCWZyZWVfb2FfYnVmZmVyKHN0cmVhbSk7CiAKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCBzdHJlYW0tPndha2VyZWYpOwpAQCAtMTM4MCw0MSArMTM4NCw0MiBAQCBzdGF0aWMgdm9pZCBpOTE1X29hX3N0cmVhbV9kZXN0cm95KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAKIAlwdXRfb2FfY29uZmlnKGRldl9wcml2LCBzdHJlYW0tPm9hX2NvbmZpZyk7CiAKLQlpZiAoZGV2X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCkgeworCWlmIChkZXZfcHJpdi0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMubWlzc2VkKSB7CiAJCURSTV9OT1RFKCIlZCBzcHVyaW91cyBPQSByZXBvcnQgbm90aWNlcyBzdXBwcmVzc2VkIGR1ZSB0byByYXRlbGltaXRpbmdcbiIsCi0JCQkgZGV2X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCk7CisJCQkgZGV2X3ByaXYtPnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCk7CiAJfQogfQogCi1zdGF0aWMgdm9pZCBnZW43X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjdfaW5pdF9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKLQl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZtYSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZmZXIudm1hKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCiAJLyogUHJlLURldkJEVzogT0FCVUZGRVIgbXVzdCBiZSBzZXQgd2l0aCBjb3VudGVycyBvZmYsCiAJICogYmVmb3JlIE9BU1RBVFVTMSwgYnV0IGFmdGVyIE9BU1RBVFVTMgogCSAqLwogCUk5MTVfV1JJVEUoR0VON19PQVNUQVRVUzIsCiAJCSAgIGd0dF9vZmZzZXQgfCBHRU43X09BU1RBVFVTMl9NRU1fU0VMRUNUX0dHVFQpOyAvKiBoZWFkICovCi0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmhlYWQgPSBndHRfb2Zmc2V0OworCXN0cmVhbS0+b2FfYnVmZmVyLmhlYWQgPSBndHRfb2Zmc2V0OwogCiAJSTkxNV9XUklURShHRU43X09BQlVGRkVSLCBndHRfb2Zmc2V0KTsKIAogCUk5MTVfV1JJVEUoR0VON19PQVNUQVRVUzEsIGd0dF9vZmZzZXQgfCBPQUJVRkZFUl9TSVpFXzE2TSk7IC8qIHRhaWwgKi8KIAogCS8qIE1hcmsgdGhhdCB3ZSBuZWVkIHVwZGF0ZWQgdGFpbCBwb2ludGVycyB0byByZWFkIGZyb20uLi4gKi8KLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFpbHNbMF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFpbHNbMV0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKKwlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1swXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOworCXN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWzFdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCiAJLyogT24gSGFzd2VsbCB3ZSBoYXZlIHRvIHRyYWNrIHdoaWNoIE9BU1RBVFVTMSBmbGFncyB3ZSd2ZQogCSAqIGFscmVhZHkgc2VlbiBzaW5jZSB0aGV5IGNhbid0IGJlIGNsZWFyZWQgd2hpbGUgcGVyaW9kaWMKIAkgKiBzYW1wbGluZyBpcyBlbmFibGVkLgogCSAqLwotCWRldl9wcml2LT5wZXJmLm9hLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czEgPSAwOworCWRldl9wcml2LT5wZXJmLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czEgPSAwOwogCiAJLyogTkI6IGFsdGhvdWdoIHRoZSBPQSBidWZmZXIgd2lsbCBpbml0aWFsbHkgYmUgYWxsb2NhdGVkCiAJICogemVyb2VkIHZpYSBzaG1mcyAoYW5kIHNvIHRoaXMgbWVtc2V0IGlzIHJlZHVuZGFudCB3aGVuCkBAIC0xNDI3LDI0ICsxNDMyLDI1IEBAIHN0YXRpYyB2b2lkIGdlbjdfaW5pdF9vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIHRoZSBhc3N1bXB0aW9uIHRoYXQgbmV3IHJlcG9ydHMgYXJlIGJlaW5nIHdyaXR0ZW4gdG8gemVyb2VkCiAJICogbWVtb3J5Li4uCiAJICovCi0JbWVtc2V0KGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkciwgMCwgT0FfQlVGRkVSX1NJWkUpOworCW1lbXNldChzdHJlYW0tPm9hX2J1ZmZlci52YWRkciwgMCwgT0FfQlVGRkVSX1NJWkUpOwogCiAJLyogTWF5YmUgbWFrZSAtPnBvbGxpbiBwZXItc3RyZWFtIHN0YXRlIGlmIHdlIHN1cHBvcnQgbXVsdGlwbGUKIAkgKiBjb25jdXJyZW50IHN0cmVhbXMgaW4gdGhlIGZ1dHVyZS4KIAkgKi8KLQlkZXZfcHJpdi0+cGVyZi5vYS5wb2xsaW4gPSBmYWxzZTsKKwlzdHJlYW0tPnBvbGxpbiA9IGZhbHNlOwogfQogCi1zdGF0aWMgdm9pZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjhfaW5pdF9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKLQl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZtYSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZmZXIudm1hKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCiAJSTkxNV9XUklURShHRU44X09BU1RBVFVTLCAwKTsKIAlJOTE1X1dSSVRFKEdFTjhfT0FIRUFEUFRSLCBndHRfb2Zmc2V0KTsKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuaGVhZCA9IGd0dF9vZmZzZXQ7CisJc3RyZWFtLT5vYV9idWZmZXIuaGVhZCA9IGd0dF9vZmZzZXQ7CiAKIAlJOTE1X1dSSVRFKEdFTjhfT0FCVUZGRVJfVURXLCAwKTsKIApAQCAtMTQ2MSwxNyArMTQ2NywxNyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlJOTE1X1dSSVRFKEdFTjhfT0FUQUlMUFRSLCBndHRfb2Zmc2V0ICYgR0VOOF9PQVRBSUxQVFJfTUFTSyk7CiAKIAkvKiBNYXJrIHRoYXQgd2UgbmVlZCB1cGRhdGVkIHRhaWwgcG9pbnRlcnMgdG8gcmVhZCBmcm9tLi4uICovCi0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWzBdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7Ci0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWzFdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7CisJc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbMF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKKwlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1sxXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOwogCiAJLyoKIAkgKiBSZXNldCBzdGF0ZSB1c2VkIHRvIHJlY29nbmlzZSBjb250ZXh0IHN3aXRjaGVzLCBhZmZlY3Rpbmcgd2hpY2gKIAkgKiByZXBvcnRzIHdlIHdpbGwgZm9yd2FyZCB0byB1c2Vyc3BhY2Ugd2hpbGUgZmlsdGVyaW5nIGZvciBhIHNpbmdsZQogCSAqIGNvbnRleHQuCiAJICovCi0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmxhc3RfY3R4X2lkID0gSU5WQUxJRF9DVFhfSUQ7CisJc3RyZWFtLT5vYV9idWZmZXIubGFzdF9jdHhfaWQgPSBJTlZBTElEX0NUWF9JRDsKIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAkvKgogCSAqIE5COiBhbHRob3VnaCB0aGUgT0EgYnVmZmVyIHdpbGwgaW5pdGlhbGx5IGJlIGFsbG9jYXRlZApAQCAtMTQ4NSwyMiArMTQ5MSwyMyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiB0aGUgYXNzdW1wdGlvbiB0aGF0IG5ldyByZXBvcnRzIGFyZSBiZWluZyB3cml0dGVuIHRvIHplcm9lZAogCSAqIG1lbW9yeS4uLgogCSAqLwotCW1lbXNldChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIsIDAsIE9BX0JVRkZFUl9TSVpFKTsKKwltZW1zZXQoc3RyZWFtLT5vYV9idWZmZXIudmFkZHIsIDAsIE9BX0JVRkZFUl9TSVpFKTsKIAogCS8qCiAJICogTWF5YmUgbWFrZSAtPnBvbGxpbiBwZXItc3RyZWFtIHN0YXRlIGlmIHdlIHN1cHBvcnQgbXVsdGlwbGUKIAkgKiBjb25jdXJyZW50IHN0cmVhbXMgaW4gdGhlIGZ1dHVyZS4KIAkgKi8KLQlkZXZfcHJpdi0+cGVyZi5vYS5wb2xsaW4gPSBmYWxzZTsKKwlzdHJlYW0tPnBvbGxpbiA9IGZhbHNlOwogfQogCi1zdGF0aWMgaW50IGFsbG9jX29hX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgaW50IGFsbG9jX29hX2J1ZmZlcihzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpibzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCWludCByZXQ7CiAKLQlpZiAoV0FSTl9PTihkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hKSkKKwlpZiAoV0FSTl9PTihzdHJlYW0tPm9hX2J1ZmZlci52bWEpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXZfcHJpdi0+ZHJtKTsKQEAgLTE1MjUsMTggKzE1MzIsMTggQEAgc3RhdGljIGludCBhbGxvY19vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXQgPSBQVFJfRVJSKHZtYSk7CiAJCWdvdG8gZXJyX3VucmVmOwogCX0KLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hID0gdm1hOworCXN0cmVhbS0+b2FfYnVmZmVyLnZtYSA9IHZtYTsKIAotCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkciA9CisJc3RyZWFtLT5vYV9idWZmZXIudmFkZHIgPQogCQlpOTE1X2dlbV9vYmplY3RfcGluX21hcChibywgSTkxNV9NQVBfV0IpOwotCWlmIChJU19FUlIoZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyKSkgewotCQlyZXQgPSBQVFJfRVJSKGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkcik7CisJaWYgKElTX0VSUihzdHJlYW0tPm9hX2J1ZmZlci52YWRkcikpIHsKKwkJcmV0ID0gUFRSX0VSUihzdHJlYW0tPm9hX2J1ZmZlci52YWRkcik7CiAJCWdvdG8gZXJyX3VucGluOwogCX0KIAogCURSTV9ERUJVR19EUklWRVIoIk9BIEJ1ZmZlciBpbml0aWFsaXplZCwgZ3R0IG9mZnNldCA9IDB4JXgsIHZhZGRyID0gJXBcbiIsCi0JCQkgaTkxNV9nZ3R0X29mZnNldChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hKSwKLQkJCSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIpOworCQkJIGk5MTVfZ2d0dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZmZXIudm1hKSwKKwkJCSBzdHJlYW0tPm9hX2J1ZmZlci52YWRkcik7CiAKIAlnb3RvIHVubG9jazsKIApAQCAtMTU0Niw4ICsxNTUzLDggQEAgc3RhdGljIGludCBhbGxvY19vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogZXJyX3VucmVmOgogCWk5MTVfZ2VtX29iamVjdF9wdXQoYm8pOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyID0gTlVMTDsKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hID0gTlVMTDsKKwlzdHJlYW0tPm9hX2J1ZmZlci52YWRkciA9IE5VTEw7CisJc3RyZWFtLT5vYV9idWZmZXIudm1hID0gTlVMTDsKIAogdW5sb2NrOgogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpAQCAtMTYyMyw4ICsxNjMwLDEwIEBAIHN0YXRpYyBpbnQgaHN3X2VuYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGhzd19kaXNhYmxlX21ldHJpY19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgaHN3X2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CisKIAlJOTE1X1dSSVRFKEdFTjZfVUNHQ1RMMSwgKEk5MTVfUkVBRChHRU42X1VDR0NUTDEpICYKIAkJCQkgIH5HRU42X0NTVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUpKTsKIAlJOTE1X1dSSVRFKEdFTjdfTUlTQ0NQQ1RMLCAoSTkxNV9SRUFEKEdFTjdfTUlTQ0NQQ1RMKSB8CkBAIC0xNjM0LDYgKzE2NDMsMjcgQEAgc3RhdGljIHZvaWQgaHN3X2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQkJICAgICAgfkdUX05PQV9FTkFCTEUpKTsKIH0KIAorc3RhdGljIHUzMiBvYV9jb25maWdfZmxleF9yZWcoY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcsCisJCQkgICAgICBpOTE1X3JlZ190IHJlZykKK3sKKwl1MzIgbW1pbyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJlZyk7CisJaW50IGk7CisKKwkvKgorCSAqIFRoaXMgYXJiaXRyYXJ5IGRlZmF1bHQgd2lsbCBzZWxlY3QgdGhlICdFVSBGUFUwIFBpcGVsaW5lCisJICogQWN0aXZlJyBldmVudC4gSW4gdGhlIGZ1dHVyZSBpdCdzIGFudGljaXBhdGVkIHRoYXQgdGhlcmUKKwkgKiB3aWxsIGJlIGFuIGV4cGxpY2l0ICdObyBFdmVudCcgd2UgY2FuIHNlbGVjdCwgYnV0IG5vdCB5ZXQuLi4KKwkgKi8KKwlpZiAoIW9hX2NvbmZpZykKKwkJcmV0dXJuIDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgb2FfY29uZmlnLT5mbGV4X3JlZ3NfbGVuOyBpKyspIHsKKwkJaWYgKGk5MTVfbW1pb19yZWdfb2Zmc2V0KG9hX2NvbmZpZy0+ZmxleF9yZWdzW2ldLmFkZHIpID09IG1taW8pCisJCQlyZXR1cm4gb2FfY29uZmlnLT5mbGV4X3JlZ3NbaV0udmFsdWU7CisJfQorCisJcmV0dXJuIDA7Cit9CiAvKgogICogTkI6IEl0IG11c3QgYWx3YXlzIHJlbWFpbiBwb2ludGVyIHNhZmUgdG8gcnVuIHRoaXMgZXZlbiBpZiB0aGUgT0EgdW5pdAogICogaGFzIGJlZW4gZGlzYWJsZWQuCkBAIC0xNjQyLDEzICsxNjcyLDE0IEBAIHN0YXRpYyB2b2lkIGhzd19kaXNhYmxlX21ldHJpY19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICogaW4gdGhlIGNhc2UgdGhhdCB0aGUgT0EgdW5pdCBoYXMgYmVlbiBkaXNhYmxlZC4KICAqLwogc3RhdGljIHZvaWQKLWdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCitnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCQkgICAgICAgdTMyICpyZWdfc3RhdGUsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBjZS0+Z2VtX2NvbnRleHQtPmk5MTU7Ci0JdTMyIGN0eF9vYWN0eGN0cmwgPSBpOTE1LT5wZXJmLm9hLmN0eF9vYWN0eGN0cmxfb2Zmc2V0OwotCXUzMiBjdHhfZmxleGV1MCA9IGk5MTUtPnBlcmYub2EuY3R4X2ZsZXhldTBfb2Zmc2V0OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gY2UtPmVuZ2luZS0+aTkxNTsKKwl1MzIgY3R4X29hY3R4Y3RybCA9IGk5MTUtPnBlcmYuY3R4X29hY3R4Y3RybF9vZmZzZXQ7CisJdTMyIGN0eF9mbGV4ZXUwID0gaTkxNS0+cGVyZi5jdHhfZmxleGV1MF9vZmZzZXQ7CiAJLyogVGhlIE1NSU8gb2Zmc2V0cyBmb3IgRmxleCBFVSByZWdpc3RlcnMgYXJlbid0IGNvbnRpZ3VvdXMgKi8KIAlpOTE1X3JlZ190IGZsZXhfcmVnc1tdID0gewogCQlFVV9QRVJGX0NOVEwwLApAQCAtMTY2MiwzMyArMTY5MywxMyBAQCBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCWludCBpOwogCiAJQ1RYX1JFRyhyZWdfc3RhdGUsIGN0eF9vYWN0eGN0cmwsIEdFTjhfT0FDVFhDT05UUk9MLAotCQkoaTkxNS0+cGVyZi5vYS5wZXJpb2RfZXhwb25lbnQgPDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJRlQpIHwKLQkJKGk5MTUtPnBlcmYub2EucGVyaW9kaWMgPyBHRU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKKwkJKHN0cmVhbS0+cGVyaW9kX2V4cG9uZW50IDw8IEdFTjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8CisJCShzdHJlYW0tPnBlcmlvZGljID8gR0VOOF9PQV9USU1FUl9FTkFCTEUgOiAwKSB8CiAJCUdFTjhfT0FfQ09VTlRFUl9SRVNVTUUpOwogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmxleF9yZWdzKTsgaSsrKSB7Ci0JCXUzMiBzdGF0ZV9vZmZzZXQgPSBjdHhfZmxleGV1MCArIGkgKiAyOwotCQl1MzIgbW1pbyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KGZsZXhfcmVnc1tpXSk7Ci0KLQkJLyoKLQkJICogVGhpcyBhcmJpdHJhcnkgZGVmYXVsdCB3aWxsIHNlbGVjdCB0aGUgJ0VVIEZQVTAgUGlwZWxpbmUKLQkJICogQWN0aXZlJyBldmVudC4gSW4gdGhlIGZ1dHVyZSBpdCdzIGFudGljaXBhdGVkIHRoYXQgdGhlcmUKLQkJICogd2lsbCBiZSBhbiBleHBsaWNpdCAnTm8gRXZlbnQnIHdlIGNhbiBzZWxlY3QsIGJ1dCBub3QgeWV0Li4uCi0JCSAqLwotCQl1MzIgdmFsdWUgPSAwOwotCi0JCWlmIChvYV9jb25maWcpIHsKLQkJCXUzMiBqOwotCi0JCQlmb3IgKGogPSAwOyBqIDwgb2FfY29uZmlnLT5mbGV4X3JlZ3NfbGVuOyBqKyspIHsKLQkJCQlpZiAoaTkxNV9tbWlvX3JlZ19vZmZzZXQob2FfY29uZmlnLT5mbGV4X3JlZ3Nbal0uYWRkcikgPT0gbW1pbykgewotCQkJCQl2YWx1ZSA9IG9hX2NvbmZpZy0+ZmxleF9yZWdzW2pdLnZhbHVlOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQl9Ci0JCX0KLQotCQlDVFhfUkVHKHJlZ19zdGF0ZSwgc3RhdGVfb2Zmc2V0LCBmbGV4X3JlZ3NbaV0sIHZhbHVlKTsKKwkJQ1RYX1JFRyhyZWdfc3RhdGUsIGN0eF9mbGV4ZXUwICsgaSAqIDIsIGZsZXhfcmVnc1tpXSwKKwkJCW9hX2NvbmZpZ19mbGV4X3JlZyhvYV9jb25maWcsIGZsZXhfcmVnc1tpXSkpOwogCX0KIAogCUNUWF9SRUcocmVnX3N0YXRlLApAQCAtMTY5Niw2ICsxNzA3LDEzMSBAQCBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCQlpbnRlbF9zc2V1X21ha2VfcnBjcyhpOTE1LCAmY2UtPnNzZXUpKTsKIH0KIAorc3RydWN0IGZsZXggeworCWk5MTVfcmVnX3QgcmVnOworCXUzMiBvZmZzZXQ7CisJdTMyIHZhbHVlOworfTsKKworc3RhdGljIGludAorZ2VuOF9zdG9yZV9mbGV4KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAorCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCWNvbnN0IHN0cnVjdCBmbGV4ICpmbGV4LCB1bnNpZ25lZCBpbnQgY291bnQpCit7CisJdTMyIG9mZnNldDsKKwl1MzIgKmNzOworCisJY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJxLCA0ICogY291bnQpOworCWlmIChJU19FUlIoY3MpKQorCQlyZXR1cm4gUFRSX0VSUihjcyk7CisKKwlvZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KGNlLT5zdGF0ZSkgKyBMUkNfU1RBVEVfUE4gKiBQQUdFX1NJWkU7CisJZG8geworCQkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTV9HRU40IHwgTUlfVVNFX0dHVFQ7CisJCSpjcysrID0gb2Zmc2V0ICsgKGZsZXgtPm9mZnNldCArIDEpICogc2l6ZW9mKHUzMik7CisJCSpjcysrID0gMDsKKwkJKmNzKysgPSBmbGV4LT52YWx1ZTsKKwl9IHdoaWxlIChmbGV4KyssIC0tY291bnQpOworCisJaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBjcyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorZ2VuOF9sb2FkX2ZsZXgoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCisJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKKwkgICAgICAgY29uc3Qgc3RydWN0IGZsZXggKmZsZXgsIHVuc2lnbmVkIGludCBjb3VudCkKK3sKKwl1MzIgKmNzOworCisJR0VNX0JVR19PTighY291bnQgfHwgY291bnQgPiA2Myk7CisKKwljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDIgKiBjb3VudCArIDIpOworCWlmIChJU19FUlIoY3MpKQorCQlyZXR1cm4gUFRSX0VSUihjcyk7CisKKwkqY3MrKyA9IE1JX0xPQURfUkVHSVNURVJfSU1NKGNvdW50KTsKKwlkbyB7CisJCSpjcysrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoZmxleC0+cmVnKTsKKwkJKmNzKysgPSBmbGV4LT52YWx1ZTsKKwl9IHdoaWxlIChmbGV4KyssIC0tY291bnQpOworCSpjcysrID0gTUlfTk9PUDsKKworCWludGVsX3JpbmdfYWR2YW5jZShycSwgY3MpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZ2VuOF9tb2RpZnlfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGZsZXggKmZsZXgsIHVuc2lnbmVkIGludCBjb3VudCkKK3sKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwlpbnQgZXJyOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmY2UtPnBpbl9tdXRleCk7CisKKwlycSA9IGk5MTVfcmVxdWVzdF9jcmVhdGUoY2UtPmVuZ2luZS0+a2VybmVsX2NvbnRleHQpOworCWlmIChJU19FUlIocnEpKQorCQlyZXR1cm4gUFRSX0VSUihycSk7CisKKwkvKiBTZXJpYWxpc2Ugd2l0aCB0aGUgcmVtb3RlIGNvbnRleHQgKi8KKwllcnIgPSBpbnRlbF9jb250ZXh0X3ByZXBhcmVfcmVtb3RlX3JlcXVlc3QoY2UsIHJxKTsKKwlpZiAoZXJyID09IDApCisJCWVyciA9IGdlbjhfc3RvcmVfZmxleChycSwgY2UsIGZsZXgsIGNvdW50KTsKKworCWk5MTVfcmVxdWVzdF9hZGQocnEpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgZ2VuOF9tb2RpZnlfc2VsZihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCQkgICAgY29uc3Qgc3RydWN0IGZsZXggKmZsZXgsIHVuc2lnbmVkIGludCBjb3VudCkKK3sKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwlpbnQgZXJyOworCisJcnEgPSBpOTE1X3JlcXVlc3RfY3JlYXRlKGNlKTsKKwlpZiAoSVNfRVJSKHJxKSkKKwkJcmV0dXJuIFBUUl9FUlIocnEpOworCisJZXJyID0gZ2VuOF9sb2FkX2ZsZXgocnEsIGNlLCBmbGV4LCBjb3VudCk7CisKKwlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGdlbjhfY29uZmlndXJlX2NvbnRleHQoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJCQkgIHN0cnVjdCBmbGV4ICpmbGV4LCB1bnNpZ25lZCBpbnQgY291bnQpCit7CisJc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CisJaW50IGVyciA9IDA7CisKKwlmb3JfZWFjaF9nZW1fZW5naW5lKGNlLCBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhjdHgpLCBpdCkgeworCQlHRU1fQlVHX09OKGNlID09IGNlLT5lbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKworCQlpZiAoY2UtPmVuZ2luZS0+Y2xhc3MgIT0gUkVOREVSX0NMQVNTKQorCQkJY29udGludWU7CisKKwkJZXJyID0gaW50ZWxfY29udGV4dF9sb2NrX3Bpbm5lZChjZSk7CisJCWlmIChlcnIpCisJCQlicmVhazsKKworCQlmbGV4LT52YWx1ZSA9IGludGVsX3NzZXVfbWFrZV9ycGNzKGN0eC0+aTkxNSwgJmNlLT5zc2V1KTsKKworCQkvKiBPdGhlcndpc2UgT0Egc2V0dGluZ3Mgd2lsbCBiZSBzZXQgdXBvbiBmaXJzdCB1c2UgKi8KKwkJaWYgKGludGVsX2NvbnRleHRfaXNfcGlubmVkKGNlKSkKKwkJCWVyciA9IGdlbjhfbW9kaWZ5X2NvbnRleHQoY2UsIGZsZXgsIGNvdW50KTsKKworCQlpbnRlbF9jb250ZXh0X3VubG9ja19waW5uZWQoY2UpOworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisJfQorCWk5MTVfZ2VtX2NvbnRleHRfdW5sb2NrX2VuZ2luZXMoY3R4KTsKKworCXJldHVybiBlcnI7Cit9CisKIC8qCiAgKiBNYW5hZ2VzIHVwZGF0aW5nIHRoZSBwZXItY29udGV4dCBhc3BlY3RzIG9mIHRoZSBPQSBzdHJlYW0KICAqIGNvbmZpZ3VyYXRpb24gYWNyb3NzIGFsbCBjb250ZXh0cy4KQEAgLTE3MjAsMTUgKzE4NTYsNDIgQEAgZ2VuOF91cGRhdGVfcmVnX3N0YXRlX3VubG9ja2VkKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKICAqCiAgKiBOb3RlOiBpdCdzIG9ubHkgdGhlIFJDUy9SZW5kZXIgY29udGV4dCB0aGF0IGhhcyBhbnkgT0Egc3RhdGUuCiAgKi8KLXN0YXRpYyBpbnQgZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKK3N0YXRpYyBpbnQgZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnKQogewotCXVuc2lnbmVkIGludCBtYXBfdHlwZSA9IGk5MTVfY29oZXJlbnRfbWFwX3R5cGUoZGV2X3ByaXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwkvKiBUaGUgTU1JTyBvZmZzZXRzIGZvciBGbGV4IEVVIHJlZ2lzdGVycyBhcmVuJ3QgY29udGlndW91cyAqLworCWNvbnN0IHUzMiBjdHhfZmxleGV1MCA9IGk5MTUtPnBlcmYuY3R4X2ZsZXhldTBfb2Zmc2V0OworI2RlZmluZSBjdHhfZmxleGV1TihOKSAoY3R4X2ZsZXhldTAgKyAyICogKE4pKQorCXN0cnVjdCBmbGV4IHJlZ3NbXSA9IHsKKwkJeworCQkJR0VOOF9SX1BXUl9DTEtfU1RBVEUsCisJCQlDVFhfUl9QV1JfQ0xLX1NUQVRFLAorCQl9LAorCQl7CisJCQlHRU44X09BQ1RYQ09OVFJPTCwKKwkJCWk5MTUtPnBlcmYuY3R4X29hY3R4Y3RybF9vZmZzZXQsCisJCQkoKHN0cmVhbS0+cGVyaW9kX2V4cG9uZW50IDw8IEdFTjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8CisJCQkgKHN0cmVhbS0+cGVyaW9kaWMgPyBHRU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKKwkJCSBHRU44X09BX0NPVU5URVJfUkVTVU1FKQorCQl9LAorCQl7IEVVX1BFUkZfQ05UTDAsIGN0eF9mbGV4ZXVOKDApIH0sCisJCXsgRVVfUEVSRl9DTlRMMSwgY3R4X2ZsZXhldU4oMSkgfSwKKwkJeyBFVV9QRVJGX0NOVEwyLCBjdHhfZmxleGV1TigyKSB9LAorCQl7IEVVX1BFUkZfQ05UTDMsIGN0eF9mbGV4ZXVOKDMpIH0sCisJCXsgRVVfUEVSRl9DTlRMNCwgY3R4X2ZsZXhldU4oNCkgfSwKKwkJeyBFVV9QRVJGX0NOVEw1LCBjdHhfZmxleGV1Tig1KSB9LAorCQl7IEVVX1BFUkZfQ05UTDYsIGN0eF9mbGV4ZXVOKDYpIH0sCisJfTsKKyN1bmRlZiBjdHhfZmxleGV1TgorCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwotCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwotCWludCByZXQ7CisJaW50IGk7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CisJZm9yIChpID0gMjsgaSA8IEFSUkFZX1NJWkUocmVncyk7IGkrKykKKwkJcmVnc1tpXS52YWx1ZSA9IG9hX2NvbmZpZ19mbGV4X3JlZyhvYV9jb25maWcsIHJlZ3NbaV0ucmVnKTsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiAJLyoKIAkgKiBUaGUgT0EgcmVnaXN0ZXIgY29uZmlnIGlzIHNldHVwIHRocm91Z2ggdGhlIGNvbnRleHQgaW1hZ2UuIFRoaXMgaW1hZ2UKQEAgLTE3NDAsNTggKzE5MDMsNDEgQEAgc3RhdGljIGludCBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqIHRoaXMgbWlnaHQgbGVhdmUgc21hbGwgaW50ZXJ2YWwgb2YgdGltZSB3aGVyZSB0aGUgT0EgdW5pdCBpcwogCSAqIGNvbmZpZ3VyZWQgYXQgYW4gaW52YWxpZCBzYW1wbGluZyBwZXJpb2QuCiAJICoKLQkgKiBTbyBmYXIgdGhlIGJlc3Qgd2F5IHRvIHdvcmsgYXJvdW5kIHRoaXMgaXNzdWUgc2VlbXMgdG8gYmUgZHJhaW5pbmcKLQkgKiB0aGUgR1BVIGZyb20gYW55IHN1Ym1pdHRlZCB3b3JrLgorCSAqIE5vdGUgdGhhdCBzaW5jZSB3ZSBlbWl0IGFsbCByZXF1ZXN0cyBmcm9tIGEgc2luZ2xlIHJpbmcsIHRoZXJlCisJICogaXMgc3RpbGwgYW4gaW1wbGljaXQgZ2xvYmFsIGJhcnJpZXIgaGVyZSB0aGF0IG1heSBjYXVzZSBhIGhpZ2gKKwkgKiBwcmlvcml0eSBjb250ZXh0IHRvIHdhaXQgZm9yIGFuIG90aGVyd2lzZSBpbmRlcGVuZGVudCBsb3cgcHJpb3JpdHkKKwkgKiBjb250ZXh0LiBDb250ZXh0cyBpZGxlIGF0IHRoZSB0aW1lIG9mIHJlY29uZmlndXJhdGlvbiBhcmUgbm90CisJICogdHJhcHBlZCBiZWhpbmQgdGhlIGJhcnJpZXIuCiAJICovCi0JcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShkZXZfcHJpdiwKLQkJCQkgICAgIEk5MTVfV0FJVF9MT0NLRUQsCi0JCQkJICAgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0eCwgJmk5MTUtPmNvbnRleHRzLmxpc3QsIGxpbmspIHsKKwkJaW50IGVycjsKIAotCS8qIFVwZGF0ZSBhbGwgY29udGV4dHMgbm93IHRoYXQgd2UndmUgc3RhbGxlZCB0aGUgc3VibWlzc2lvbi4gKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0eCwgJmRldl9wcml2LT5jb250ZXh0cy5saXN0LCBsaW5rKSB7Ci0JCXN0cnVjdCBpOTE1X2dlbV9lbmdpbmVzX2l0ZXIgaXQ7Ci0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKKwkJaWYgKGN0eCA9PSBpOTE1LT5rZXJuZWxfY29udGV4dCkKKwkJCWNvbnRpbnVlOwogCi0JCWZvcl9lYWNoX2dlbV9lbmdpbmUoY2UsCi0JCQkJICAgIGk5MTVfZ2VtX2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCksCi0JCQkJICAgIGl0KSB7Ci0JCQl1MzIgKnJlZ3M7Ci0KLQkJCWlmIChjZS0+ZW5naW5lLT5jbGFzcyAhPSBSRU5ERVJfQ0xBU1MpCi0JCQkJY29udGludWU7Ci0KLQkJCS8qIE9BIHNldHRpbmdzIHdpbGwgYmUgc2V0IHVwb24gZmlyc3QgdXNlICovCi0JCQlpZiAoIWNlLT5zdGF0ZSkKLQkJCQljb250aW51ZTsKLQotCQkJcmVncyA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKGNlLT5zdGF0ZS0+b2JqLAotCQkJCQkJICAgICAgIG1hcF90eXBlKTsKLQkJCWlmIChJU19FUlIocmVncykpIHsKLQkJCQlpOTE1X2dlbV9jb250ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7Ci0JCQkJcmV0dXJuIFBUUl9FUlIocmVncyk7Ci0JCQl9Ci0KLQkJCWNlLT5zdGF0ZS0+b2JqLT5tbS5kaXJ0eSA9IHRydWU7Ci0JCQlyZWdzICs9IExSQ19TVEFURV9QTiAqIFBBR0VfU0laRSAvIHNpemVvZigqcmVncyk7Ci0KLQkJCWdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChjZSwgcmVncywgb2FfY29uZmlnKTsKLQotCQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChjZS0+c3RhdGUtPm9iaik7Ci0JCX0KLQkJaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOworCQllcnIgPSBnZW44X2NvbmZpZ3VyZV9jb250ZXh0KGN0eCwgcmVncywgQVJSQVlfU0laRShyZWdzKSk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gZXJyOwogCX0KIAogCS8qCi0JICogQXBwbHkgdGhlIGNvbmZpZ3VyYXRpb24gYnkgZG9pbmcgb25lIGNvbnRleHQgcmVzdG9yZSBvZiB0aGUgZWRpdGVkCi0JICogY29udGV4dCBpbWFnZS4KKwkgKiBBZnRlciB1cGRhdGluZyBhbGwgb3RoZXIgY29udGV4dHMsIHdlIG5lZWQgdG8gbW9kaWZ5IG91cnNlbHZlcy4KKwkgKiBJZiB3ZSBkb24ndCBtb2RpZnkgdGhlIGtlcm5lbF9jb250ZXh0LCB3ZSBkbyBub3QgZ2V0IGV2ZW50cyB3aGlsZQorCSAqIGlkbGUuCiAJICovCi0JcnEgPSBpOTE1X3JlcXVlc3RfY3JlYXRlKGRldl9wcml2LT5lbmdpbmVbUkNTMF0tPmtlcm5lbF9jb250ZXh0KTsKLQlpZiAoSVNfRVJSKHJxKSkKLQkJcmV0dXJuIFBUUl9FUlIocnEpOworCWZvcl9lYWNoX3VhYmlfZW5naW5lKGVuZ2luZSwgaTkxNSkgeworCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBlbmdpbmUtPmtlcm5lbF9jb250ZXh0OworCQlpbnQgZXJyOwogCi0JaTkxNV9yZXF1ZXN0X2FkZChycSk7CisJCWlmIChlbmdpbmUtPmNsYXNzICE9IFJFTkRFUl9DTEFTUykKKwkJCWNvbnRpbnVlOworCisJCXJlZ3NbMF0udmFsdWUgPSBpbnRlbF9zc2V1X21ha2VfcnBjcyhpOTE1LCAmY2UtPnNzZXUpOworCisJCWVyciA9IGdlbjhfbW9kaWZ5X3NlbGYoY2UsIHJlZ3MsIEFSUkFZX1NJWkUocmVncykpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE4MzYsNyArMTk4Miw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbmFibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogCSAqIHRvIG1ha2Ugc3VyZSBhbGwgc2xpY2VzL3N1YnNsaWNlcyBhcmUgT04gYmVmb3JlIHdyaXRpbmcgdG8gTk9BCiAJICogcmVnaXN0ZXJzLgogCSAqLwotCXJldCA9IGdlbjhfY29uZmlndXJlX2FsbF9jb250ZXh0cyhkZXZfcHJpdiwgb2FfY29uZmlnKTsKKwlyZXQgPSBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RyZWFtLCBvYV9jb25maWcpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTE4NDksMTkgKzE5OTUsMjMgQEAgc3RhdGljIGludCBnZW44X2VuYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjhfZGlzYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjhfZGlzYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwogCS8qIFJlc2V0IGFsbCBjb250ZXh0cycgc2xpY2VzL3N1YnNsaWNlcyBjb25maWd1cmF0aW9ucy4gKi8KLQlnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoZGV2X3ByaXYsIE5VTEwpOworCWdlbjhfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJlYW0sIE5VTEwpOwogCiAJSTkxNV9XUklURShHRFRfQ0hJQ0tFTl9CSVRTLCAoSTkxNV9SRUFEKEdEVF9DSElDS0VOX0JJVFMpICYKIAkJCQkgICAgICB+R1RfTk9BX0VOQUJMRSkpOwogfQogCi1zdGF0aWMgdm9pZCBnZW4xMF9kaXNhYmxlX21ldHJpY19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgZ2VuMTBfZGlzYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwogCS8qIFJlc2V0IGFsbCBjb250ZXh0cycgc2xpY2VzL3N1YnNsaWNlcyBjb25maWd1cmF0aW9ucy4gKi8KLQlnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoZGV2X3ByaXYsIE5VTEwpOworCWdlbjhfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJlYW0sIE5VTEwpOwogCiAJLyogTWFrZSBzdXJlIHdlIGRpc2FibGUgbm9hIHRvIHNhdmUgcG93ZXIuICovCiAJSTkxNV9XUklURShSUE1fQ09ORklHMSwKQEAgLTE4NzIsMTAgKzIwMjIsMTAgQEAgc3RhdGljIHZvaWQgZ2VuN19vYV9lbmFibGUoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHggPSBzdHJlYW0tPmN0eDsKLQl1MzIgY3R4X2lkID0gZGV2X3ByaXYtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkOwotCWJvb2wgcGVyaW9kaWMgPSBkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RpYzsKLQl1MzIgcGVyaW9kX2V4cG9uZW50ID0gZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kX2V4cG9uZW50OwotCXUzMiByZXBvcnRfZm9ybWF0ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdDsKKwl1MzIgY3R4X2lkID0gc3RyZWFtLT5zcGVjaWZpY19jdHhfaWQ7CisJYm9vbCBwZXJpb2RpYyA9IHN0cmVhbS0+cGVyaW9kaWM7CisJdTMyIHBlcmlvZF9leHBvbmVudCA9IHN0cmVhbS0+cGVyaW9kX2V4cG9uZW50OworCXUzMiByZXBvcnRfZm9ybWF0ID0gc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0OwogCiAJLyoKIAkgKiBSZXNldCBidWYgcG9pbnRlcnMgc28gd2UgZG9uJ3QgZm9yd2FyZCByZXBvcnRzIGZyb20gYmVmb3JlIG5vdy4KQEAgLTE4ODYsNyArMjAzNiw3IEBAIHN0YXRpYyB2b2lkIGdlbjdfb2FfZW5hYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJICogb24gdGhlIGFzc3VtcHRpb24gdGhhdCBjZXJ0YWluIGZpZWxkcyBhcmUgd3JpdHRlbiB0byB6ZXJvZWQKIAkgKiBtZW1vcnkgd2hpY2ggdGhpcyBoZWxwcyBtYWludGFpbnMuCiAJICovCi0JZ2VuN19pbml0X29hX2J1ZmZlcihkZXZfcHJpdik7CisJZ2VuN19pbml0X29hX2J1ZmZlcihzdHJlYW0pOwogCiAJSTkxNV9XUklURShHRU43X09BQ09OVFJPTCwKIAkJICAgKGN0eF9pZCAmIEdFTjdfT0FDT05UUk9MX0NUWF9NQVNLKSB8CkBAIC0xOTAxLDcgKzIwNTEsNyBAQCBzdGF0aWMgdm9pZCBnZW43X29hX2VuYWJsZShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogc3RhdGljIHZvaWQgZ2VuOF9vYV9lbmFibGUoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwotCXUzMiByZXBvcnRfZm9ybWF0ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdDsKKwl1MzIgcmVwb3J0X2Zvcm1hdCA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdDsKIAogCS8qCiAJICogUmVzZXQgYnVmIHBvaW50ZXJzIHNvIHdlIGRvbid0IGZvcndhcmQgcmVwb3J0cyBmcm9tIGJlZm9yZSBub3cuCkBAIC0xOTEyLDcgKzIwNjIsNyBAQCBzdGF0aWMgdm9pZCBnZW44X29hX2VuYWJsZShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogCSAqIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgY2VydGFpbiBmaWVsZHMgYXJlIHdyaXR0ZW4gdG8gemVyb2VkCiAJICogbWVtb3J5IHdoaWNoIHRoaXMgaGVscHMgbWFpbnRhaW5zLgogCSAqLwotCWdlbjhfaW5pdF9vYV9idWZmZXIoZGV2X3ByaXYpOworCWdlbjhfaW5pdF9vYV9idWZmZXIoc3RyZWFtKTsKIAogCS8qCiAJICogTm90ZTogd2UgZG9uJ3QgcmVseSBvbiB0aGUgaGFyZHdhcmUgdG8gcGVyZm9ybSBzaW5nbGUgY29udGV4dApAQCAtMTkzNywxMCArMjA4NywxMCBAQCBzdGF0aWMgdm9pZCBpOTE1X29hX3N0cmVhbV9lbmFibGUoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCi0JZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2VuYWJsZShzdHJlYW0pOworCWRldl9wcml2LT5wZXJmLm9wcy5vYV9lbmFibGUoc3RyZWFtKTsKIAotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RpYykKLQkJaHJ0aW1lcl9zdGFydCgmZGV2X3ByaXYtPnBlcmYub2EucG9sbF9jaGVja190aW1lciwKKwlpZiAoc3RyZWFtLT5wZXJpb2RpYykKKwkJaHJ0aW1lcl9zdGFydCgmc3RyZWFtLT5wb2xsX2NoZWNrX3RpbWVyLAogCQkJICAgICAgbnNfdG9fa3RpbWUoUE9MTF9QRVJJT0QpLAogCQkJICAgICAgSFJUSU1FUl9NT0RFX1JFTF9QSU5ORUQpOwogfQpAQCAtMTk3OSwxMCArMjEyOSwxMCBAQCBzdGF0aWMgdm9pZCBpOTE1X29hX3N0cmVhbV9kaXNhYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAotCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9kaXNhYmxlKHN0cmVhbSk7CisJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2Rpc2FibGUoc3RyZWFtKTsKIAotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RpYykKLQkJaHJ0aW1lcl9jYW5jZWwoJmRldl9wcml2LT5wZXJmLm9hLnBvbGxfY2hlY2tfdGltZXIpOworCWlmIChzdHJlYW0tPnBlcmlvZGljKQorCQlocnRpbWVyX2NhbmNlbCgmc3RyZWFtLT5wb2xsX2NoZWNrX3RpbWVyKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtX29wcyBpOTE1X29hX3N0cmVhbV9vcHMgPSB7CkBAIC0yMDM0LDcgKzIxODQsNyBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZW5hYmxlX21ldHJpY19zZXQpIHsKKwlpZiAoIWRldl9wcml2LT5wZXJmLm9wcy5lbmFibGVfbWV0cmljX3NldCkgewogCQlEUk1fREVCVUcoIk9BIHVuaXQgbm90IHN1cHBvcnRlZFxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KQEAgLTIwNDMsNyArMjE5Myw3IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9zdHJlYW1faW5pdChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCSAqIGNvdW50ZXIgcmVwb3J0cyBhbmQgbWFyc2hhbCB0byB0aGUgYXBwcm9wcmlhdGUgY2xpZW50CiAJICogd2UgY3VycmVudGx5IG9ubHkgYWxsb3cgZXhjbHVzaXZlIGFjY2VzcwogCSAqLwotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtKSB7CisJaWYgKGRldl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0pIHsKIAkJRFJNX0RFQlVHKCJPQSB1bml0IGFscmVhZHkgaW4gdXNlXG4iKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CkBAIC0yMDUzLDQzICsyMjAzLDIzIEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9zdHJlYW1faW5pdChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQkvKiBXZSBzZXQgdXAgc29tZSByYXRlbGltaXQgc3RhdGUgdG8gcG90ZW50aWFsbHkgdGhyb3R0bGUgYW55IF9OT1RFUwotCSAqIGFib3V0IHNwdXJpb3VzLCBpbnZhbGlkIE9BIHJlcG9ydHMgd2hpY2ggd2UgZG9uJ3QgZm9yd2FyZCB0bwotCSAqIHVzZXJzcGFjZS4KLQkgKgotCSAqIFRoZSBpbml0aWFsaXphdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGggb3BlbmluZyB0aGUgc3RyZWFtIChub3QgZHJpdmVyCi0JICogaW5pdCkgY29uc2lkZXJpbmcgd2UgcHJpbnQgYSBfTk9URSBhYm91dCBhbnkgdGhyb3R0bGluZyB3aGVuIGNsb3NpbmcKLQkgKiB0aGUgc3RyZWFtIGluc3RlYWQgb2Ygd2FpdGluZyB1bnRpbCBkcml2ZXIgX2Zpbmkgd2hpY2ggbm8gb25lIHdvdWxkCi0JICogZXZlciBzZWUuCi0JICoKLQkgKiBVc2luZyB0aGUgc2FtZSBsaW1pdGluZyBmYWN0b3JzIGFzIHByaW50a19yYXRlbGltaXQoKQotCSAqLwotCXJhdGVsaW1pdF9zdGF0ZV9pbml0KCZkZXZfcHJpdi0+cGVyZi5vYS5zcHVyaW91c19yZXBvcnRfcnMsCi0JCQkgICAgIDUgKiBIWiwgMTApOwotCS8qIFNpbmNlIHdlIHVzZSBhIERSTV9OT1RFIGZvciBzcHVyaW91cyByZXBvcnRzIGl0IHdvdWxkIGJlCi0JICogaW5jb25zaXN0ZW50IHRvIGxldCBfX3JhdGVsaW1pdCgpIGF1dG9tYXRpY2FsbHkgcHJpbnQgYSB3YXJuaW5nIGZvcgotCSAqIHRocm90dGxpbmcuCi0JICovCi0JcmF0ZWxpbWl0X3NldF9mbGFncygmZGV2X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzLAotCQkJICAgIFJBVEVMSU1JVF9NU0dfT05fUkVMRUFTRSk7Ci0KIAlzdHJlYW0tPnNhbXBsZV9zaXplID0gc2l6ZW9mKHN0cnVjdCBkcm1faTkxNV9wZXJmX3JlY29yZF9oZWFkZXIpOwogCi0JZm9ybWF0X3NpemUgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9mb3JtYXRzW3Byb3BzLT5vYV9mb3JtYXRdLnNpemU7CisJZm9ybWF0X3NpemUgPSBkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzW3Byb3BzLT5vYV9mb3JtYXRdLnNpemU7CiAKIAlzdHJlYW0tPnNhbXBsZV9mbGFncyB8PSBTQU1QTEVfT0FfUkVQT1JUOwogCXN0cmVhbS0+c2FtcGxlX3NpemUgKz0gZm9ybWF0X3NpemU7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0X3NpemUgPSBmb3JtYXRfc2l6ZTsKLQlpZiAoV0FSTl9PTihkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0X3NpemUgPT0gMCkpCisJc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0X3NpemUgPSBmb3JtYXRfc2l6ZTsKKwlpZiAoV0FSTl9PTihzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXRfc2l6ZSA9PSAwKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0ID0KLQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfZm9ybWF0c1twcm9wcy0+b2FfZm9ybWF0XS5mb3JtYXQ7CisJc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0ID0KKwkJZGV2X3ByaXYtPnBlcmYub2FfZm9ybWF0c1twcm9wcy0+b2FfZm9ybWF0XS5mb3JtYXQ7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RpYyA9IHByb3BzLT5vYV9wZXJpb2RpYzsKLQlpZiAoZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWMpCi0JCWRldl9wcml2LT5wZXJmLm9hLnBlcmlvZF9leHBvbmVudCA9IHByb3BzLT5vYV9wZXJpb2RfZXhwb25lbnQ7CisJc3RyZWFtLT5wZXJpb2RpYyA9IHByb3BzLT5vYV9wZXJpb2RpYzsKKwlpZiAoc3RyZWFtLT5wZXJpb2RpYykKKwkJc3RyZWFtLT5wZXJpb2RfZXhwb25lbnQgPSBwcm9wcy0+b2FfcGVyaW9kX2V4cG9uZW50OwogCiAJaWYgKHN0cmVhbS0+Y3R4KSB7CiAJCXJldCA9IG9hX2dldF9yZW5kZXJfY3R4X2lkKHN0cmVhbSk7CkBAIC0yMTIwLDcgKzIyNTAsNyBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAlzdHJlYW0tPndha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKIAotCXJldCA9IGFsbG9jX29hX2J1ZmZlcihkZXZfcHJpdik7CisJcmV0ID0gYWxsb2Nfb2FfYnVmZmVyKHN0cmVhbSk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfb2FfYnVmX2FsbG9jOwogCkBAIC0yMTI5LDkgKzIyNTksOSBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJZ290byBlcnJfbG9jazsKIAogCXN0cmVhbS0+b3BzID0gJmk5MTVfb2Ffc3RyZWFtX29wczsKLQlkZXZfcHJpdi0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtID0gc3RyZWFtOworCWRldl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0gPSBzdHJlYW07CiAKLQlyZXQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZW5hYmxlX21ldHJpY19zZXQoc3RyZWFtKTsKKwlyZXQgPSBkZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQoc3RyZWFtKTsKIAlpZiAocmV0KSB7CiAJCURSTV9ERUJVRygiVW5hYmxlIHRvIGVuYWJsZSBtZXRyaWMgc2V0XG4iKTsKIAkJZ290byBlcnJfZW5hYmxlOwpAQCAtMjEzOSwxNSArMjI2OSwyMSBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCisJaHJ0aW1lcl9pbml0KCZzdHJlYW0tPnBvbGxfY2hlY2tfdGltZXIsCisJCSAgICAgQ0xPQ0tfTU9OT1RPTklDLCBIUlRJTUVSX01PREVfUkVMKTsKKwlzdHJlYW0tPnBvbGxfY2hlY2tfdGltZXIuZnVuY3Rpb24gPSBvYV9wb2xsX2NoZWNrX3RpbWVyX2NiOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnN0cmVhbS0+cG9sbF93cSk7CisJc3Bpbl9sb2NrX2luaXQoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrKTsKKwogCXJldHVybiAwOwogCiBlcnJfZW5hYmxlOgotCWRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0gPSBOVUxMOwotCWRldl9wcml2LT5wZXJmLm9hLm9wcy5kaXNhYmxlX21ldHJpY19zZXQoZGV2X3ByaXYpOworCWRldl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0gPSBOVUxMOworCWRldl9wcml2LT5wZXJmLm9wcy5kaXNhYmxlX21ldHJpY19zZXQoc3RyZWFtKTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAogZXJyX2xvY2s6Ci0JZnJlZV9vYV9idWZmZXIoZGV2X3ByaXYpOworCWZyZWVfb2FfYnVmZmVyKHN0cmVhbSk7CiAKIGVycl9vYV9idWZfYWxsb2M6CiAJcHV0X29hX2NvbmZpZyhkZXZfcHJpdiwgc3RyZWFtLT5vYV9jb25maWcpOwpAQCAtMjE3MSw5ICsyMzA3LDkgQEAgdm9pZCBpOTE1X29hX2luaXRfcmVnX3N0YXRlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpZiAoZW5naW5lLT5jbGFzcyAhPSBSRU5ERVJfQ0xBU1MpCiAJCXJldHVybjsKIAotCXN0cmVhbSA9IGVuZ2luZS0+aTkxNS0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtOworCXN0cmVhbSA9IGVuZ2luZS0+aTkxNS0+cGVyZi5leGNsdXNpdmVfc3RyZWFtOwogCWlmIChzdHJlYW0pCi0JCWdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChjZSwgcmVncywgc3RyZWFtLT5vYV9jb25maWcpOworCQlnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RyZWFtLCBjZSwgcmVncywgc3RyZWFtLT5vYV9jb25maWcpOwogfQogCiAvKioKQEAgLTIyODksNyArMjQyNSw3IEBAIHN0YXRpYyBzc2l6ZV90IGk5MTVfcGVyZl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLAogCQkvKiBNYXliZSBtYWtlIC0+cG9sbGluIHBlci1zdHJlYW0gc3RhdGUgaWYgd2Ugc3VwcG9ydCBtdWx0aXBsZQogCQkgKiBjb25jdXJyZW50IHN0cmVhbXMgaW4gdGhlIGZ1dHVyZS4KIAkJICovCi0JCWRldl9wcml2LT5wZXJmLm9hLnBvbGxpbiA9IGZhbHNlOworCQlzdHJlYW0tPnBvbGxpbiA9IGZhbHNlOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC0yMjk3LDEzICsyNDMzLDEyIEBAIHN0YXRpYyBzc2l6ZV90IGk5MTVfcGVyZl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLAogCiBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgb2FfcG9sbF9jaGVja190aW1lcl9jYihzdHJ1Y3QgaHJ0aW1lciAqaHJ0aW1lcikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQotCQljb250YWluZXJfb2YoaHJ0aW1lciwgdHlwZW9mKCpkZXZfcHJpdiksCi0JCQkgICAgIHBlcmYub2EucG9sbF9jaGVja190aW1lcik7CisJc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSA9CisJCWNvbnRhaW5lcl9vZihocnRpbWVyLCB0eXBlb2YoKnN0cmVhbSksIHBvbGxfY2hlY2tfdGltZXIpOwogCi0JaWYgKG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChkZXZfcHJpdikpIHsKLQkJZGV2X3ByaXYtPnBlcmYub2EucG9sbGluID0gdHJ1ZTsKLQkJd2FrZV91cCgmZGV2X3ByaXYtPnBlcmYub2EucG9sbF93cSk7CisJaWYgKG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJlYW0pKSB7CisJCXN0cmVhbS0+cG9sbGluID0gdHJ1ZTsKKwkJd2FrZV91cCgmc3RyZWFtLT5wb2xsX3dxKTsKIAl9CiAKIAlocnRpbWVyX2ZvcndhcmRfbm93KGhydGltZXIsIG5zX3RvX2t0aW1lKFBPTExfUEVSSU9EKSk7CkBAIC0yMzQyLDcgKzI0NzcsNyBAQCBzdGF0aWMgX19wb2xsX3QgaTkxNV9wZXJmX3BvbGxfbG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKiB0aGUgaHJ0aW1lci9vYV9wb2xsX2NoZWNrX3RpbWVyX2NiIHRvIG5vdGlmeSB1cyB3aGVuIHRoZXJlIGFyZQogCSAqIHNhbXBsZXMgdG8gcmVhZC4KIAkgKi8KLQlpZiAoZGV2X3ByaXYtPnBlcmYub2EucG9sbGluKQorCWlmIChzdHJlYW0tPnBvbGxpbikKIAkJZXZlbnRzIHw9IEVQT0xMSU47CiAKIAlyZXR1cm4gZXZlbnRzOwpAQCAtMjc2OCw3ICsyOTAzLDcgQEAgc3RhdGljIGludCByZWFkX3Byb3BlcnRpZXNfdW5sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkgIHZhbHVlKTsKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0KLQkJCWlmICghZGV2X3ByaXYtPnBlcmYub2Eub2FfZm9ybWF0c1t2YWx1ZV0uc2l6ZSkgeworCQkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzW3ZhbHVlXS5zaXplKSB7CiAJCQkJRFJNX0RFQlVHKCJVbnN1cHBvcnRlZCBPQSByZXBvcnQgZm9ybWF0ICVsbHVcbiIsCiAJCQkJCSAgdmFsdWUpOwogCQkJCXJldHVybiAtRUlOVkFMOwpAQCAtMjkxMiw3ICszMDQ3LDcgQEAgdm9pZCBpOTE1X3BlcmZfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmICghZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqKQogCQlnb3RvIGV4aXQ7CiAKLQlzeXNmc19hdHRyX2luaXQoJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyKTsKKwlzeXNmc19hdHRyX2luaXQoJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7CiAJCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2ljbChkZXZfcHJpdik7CkBAIC0yOTQ3LDE1ICszMDgyLDE1IEBAIHZvaWQgaTkxNV9wZXJmX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaHN3KGRldl9wcml2KTsKIH0KIAotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9PSAwKQorCWlmIChkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9PSAwKQogCQlnb3RvIHN5c2ZzX2Vycm9yOwogCiAJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwKLQkJCQkgJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYyk7CisJCQkJICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMpOwogCWlmIChyZXQpCiAJCWdvdG8gc3lzZnNfZXJyb3I7CiAKLQlhdG9taWNfc2V0KCZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5yZWZfY291bnQsIDEpOworCWF0b21pY19zZXQoJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnJlZl9jb3VudCwgMSk7CiAKIAlnb3RvIGV4aXQ7CiAKQEAgLTI5ODIsNyArMzExNyw3IEBAIHZvaWQgaTkxNV9wZXJmX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXR1cm47CiAKIAlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLAotCQkJICAgJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYyk7CisJCQkgICAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljKTsKIAogCWtvYmplY3RfcHV0KGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaik7CiAJZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqID0gTlVMTDsKQEAgLTMyMjcsNyArMzM2Miw3IEBAIGludCBpOTE1X3BlcmZfYWRkX2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCW9hX2NvbmZpZy0+bXV4X3JlZ3NfbGVuID0gYXJncy0+bl9tdXhfcmVnczsKIAlvYV9jb25maWctPm11eF9yZWdzID0KIAkJYWxsb2Nfb2FfcmVncyhkZXZfcHJpdiwKLQkJCSAgICAgIGRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9tdXhfcmVnLAorCQkJICAgICAgZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX211eF9yZWcsCiAJCQkgICAgICB1NjRfdG9fdXNlcl9wdHIoYXJncy0+bXV4X3JlZ3NfcHRyKSwKIAkJCSAgICAgIGFyZ3MtPm5fbXV4X3JlZ3MpOwogCkBAIC0zMjQwLDcgKzMzNzUsNyBAQCBpbnQgaTkxNV9wZXJmX2FkZF9jb25maWdfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlvYV9jb25maWctPmJfY291bnRlcl9yZWdzX2xlbiA9IGFyZ3MtPm5fYm9vbGVhbl9yZWdzOwogCW9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3MgPQogCQlhbGxvY19vYV9yZWdzKGRldl9wcml2LAotCQkJICAgICAgZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcsCisJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZywKIAkJCSAgICAgIHU2NF90b191c2VyX3B0cihhcmdzLT5ib29sZWFuX3JlZ3NfcHRyKSwKIAkJCSAgICAgIGFyZ3MtPm5fYm9vbGVhbl9yZWdzKTsKIApAQCAtMzI1OSw3ICszMzk0LDcgQEAgaW50IGk5MTVfcGVyZl9hZGRfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCW9hX2NvbmZpZy0+ZmxleF9yZWdzX2xlbiA9IGFyZ3MtPm5fZmxleF9yZWdzOwogCQlvYV9jb25maWctPmZsZXhfcmVncyA9CiAJCQlhbGxvY19vYV9yZWdzKGRldl9wcml2LAotCQkJCSAgICAgIGRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9mbGV4X3JlZywKKwkJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfZmxleF9yZWcsCiAJCQkJICAgICAgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmZsZXhfcmVnc19wdHIpLAogCQkJCSAgICAgIGFyZ3MtPm5fZmxleF9yZWdzKTsKIApAQCAtMzQyNiwyMCArMzU2MSwyMCBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZSBkZXZfcm9vdFtdID0gewogdm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9iX2NvdW50ZXJfcmVnID0KKwkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQogCQkJZ2VuN19pc192YWxpZF9iX2NvdW50ZXJfYWRkcjsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX211eF9yZWcgPQorCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CiAJCQloc3dfaXNfdmFsaWRfbXV4X2FkZHI7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9mbGV4X3JlZyA9IE5VTEw7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5lbmFibGVfbWV0cmljX3NldCA9IGhzd19lbmFibGVfbWV0cmljX3NldDsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmRpc2FibGVfbWV0cmljX3NldCA9IGhzd19kaXNhYmxlX21ldHJpY19zZXQ7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9lbmFibGUgPSBnZW43X29hX2VuYWJsZTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2Rpc2FibGUgPSBnZW43X29hX2Rpc2FibGU7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5yZWFkID0gZ2VuN19vYV9yZWFkOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfaHdfdGFpbF9yZWFkID0KKwkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnID0gTlVMTDsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLmVuYWJsZV9tZXRyaWNfc2V0ID0gaHN3X2VuYWJsZV9tZXRyaWNfc2V0OworCQlkZXZfcHJpdi0+cGVyZi5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0ID0gaHN3X2Rpc2FibGVfbWV0cmljX3NldDsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2VuYWJsZSA9IGdlbjdfb2FfZW5hYmxlOworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlzYWJsZSA9IGdlbjdfb2FfZGlzYWJsZTsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLnJlYWQgPSBnZW43X29hX3JlYWQ7CisJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9od190YWlsX3JlYWQgPQogCQkJZ2VuN19vYV9od190YWlsX3JlYWQ7CiAKLQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfZm9ybWF0cyA9IGhzd19vYV9mb3JtYXRzOworCQlkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzID0gaHN3X29hX2Zvcm1hdHM7CiAJfSBlbHNlIGlmIChIQVNfTE9HSUNBTF9SSU5HX0NPTlRFWFRTKGRldl9wcml2KSkgewogCQkvKiBOb3RlOiB0aGF0IGFsdGhvdWdoIHdlIGNvdWxkIHRoZW9yZXRpY2FsbHkgYWxzbyBzdXBwb3J0IHRoZQogCQkgKiBsZWdhY3kgcmluZ2J1ZmZlciBtb2RlIG9uIEJEVyAoYW5kIGVhcmxpZXIgaXRlcmF0aW9ucyBvZgpAQCAtMzQ0Nyw3MSArMzU4Miw2NSBAQCB2b2lkIGk5MTVfcGVyZl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJICogd29ydGggdGhlIGNvbXBsZXhpdHkgdG8gbWFpbnRhaW4gbm93IHRoYXQgQkRXKyBlbmFibGUKIAkJICogZXhlY2xpc3QgbW9kZSBieSBkZWZhdWx0LgogCQkgKi8KLQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfZm9ybWF0cyA9IGdlbjhfcGx1c19vYV9mb3JtYXRzOworCQlkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzID0gZ2VuOF9wbHVzX29hX2Zvcm1hdHM7CiAKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2VuYWJsZSA9IGdlbjhfb2FfZW5hYmxlOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZGlzYWJsZSA9IGdlbjhfb2FfZGlzYWJsZTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLnJlYWQgPSBnZW44X29hX3JlYWQ7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9od190YWlsX3JlYWQgPSBnZW44X29hX2h3X3RhaWxfcmVhZDsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2VuYWJsZSA9IGdlbjhfb2FfZW5hYmxlOworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlzYWJsZSA9IGdlbjhfb2FfZGlzYWJsZTsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLnJlYWQgPSBnZW44X29hX3JlYWQ7CisJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9od190YWlsX3JlYWQgPSBnZW44X29hX2h3X3RhaWxfcmVhZDsKIAogCQlpZiAoSVNfR0VOX1JBTkdFKGRldl9wcml2LCA4LCA5KSkgewotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQorCQkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQogCQkJCWdlbjdfaXNfdmFsaWRfYl9jb3VudGVyX2FkZHI7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CiAJCQkJZ2VuOF9pc192YWxpZF9tdXhfYWRkcjsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9mbGV4X3JlZyA9CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfZmxleF9yZWcgPQogCQkJCWdlbjhfaXNfdmFsaWRfZmxleF9hZGRyOwogCiAJCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CisJCQkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX211eF9yZWcgPQogCQkJCQljaHZfaXNfdmFsaWRfbXV4X2FkZHI7CiAJCQl9CiAKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5lbmFibGVfbWV0cmljX3NldCA9IGdlbjhfZW5hYmxlX21ldHJpY19zZXQ7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0ID0gZ2VuOF9kaXNhYmxlX21ldHJpY19zZXQ7CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQgPSBnZW44X2VuYWJsZV9tZXRyaWNfc2V0OworCQkJZGV2X3ByaXYtPnBlcmYub3BzLmRpc2FibGVfbWV0cmljX3NldCA9IGdlbjhfZGlzYWJsZV9tZXRyaWNfc2V0OwogCiAJCQlpZiAoSVNfR0VOKGRldl9wcml2LCA4KSkgewotCQkJCWRldl9wcml2LT5wZXJmLm9hLmN0eF9vYWN0eGN0cmxfb2Zmc2V0ID0gMHgxMjA7Ci0JCQkJZGV2X3ByaXYtPnBlcmYub2EuY3R4X2ZsZXhldTBfb2Zmc2V0ID0gMHgyY2U7CisJCQkJZGV2X3ByaXYtPnBlcmYuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEyMDsKKwkJCQlkZXZfcHJpdi0+cGVyZi5jdHhfZmxleGV1MF9vZmZzZXQgPSAweDJjZTsKIAotCQkJCWRldl9wcml2LT5wZXJmLm9hLmdlbjhfdmFsaWRfY3R4X2JpdCA9ICgxPDwyNSk7CisJCQkJZGV2X3ByaXYtPnBlcmYuZ2VuOF92YWxpZF9jdHhfYml0ID0gQklUKDI1KTsKIAkJCX0gZWxzZSB7Ci0JCQkJZGV2X3ByaXYtPnBlcmYub2EuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEyODsKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5jdHhfZmxleGV1MF9vZmZzZXQgPSAweDNkZTsKKwkJCQlkZXZfcHJpdi0+cGVyZi5jdHhfb2FjdHhjdHJsX29mZnNldCA9IDB4MTI4OworCQkJCWRldl9wcml2LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4M2RlOwogCi0JCQkJZGV2X3ByaXYtPnBlcmYub2EuZ2VuOF92YWxpZF9jdHhfYml0ID0gKDE8PDE2KTsKKwkJCQlkZXZfcHJpdi0+cGVyZi5nZW44X3ZhbGlkX2N0eF9iaXQgPSBCSVQoMTYpOwogCQkJfQogCQl9IGVsc2UgaWYgKElTX0dFTl9SQU5HRShkZXZfcHJpdiwgMTAsIDExKSkgewotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQorCQkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQogCQkJCWdlbjdfaXNfdmFsaWRfYl9jb3VudGVyX2FkZHI7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CiAJCQkJZ2VuMTBfaXNfdmFsaWRfbXV4X2FkZHI7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfZmxleF9yZWcgPQorCQkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnID0KIAkJCQlnZW44X2lzX3ZhbGlkX2ZsZXhfYWRkcjsKIAotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9tZXRyaWNfc2V0ID0gZ2VuOF9lbmFibGVfbWV0cmljX3NldDsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5kaXNhYmxlX21ldHJpY19zZXQgPSBnZW4xMF9kaXNhYmxlX21ldHJpY19zZXQ7CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQgPSBnZW44X2VuYWJsZV9tZXRyaWNfc2V0OworCQkJZGV2X3ByaXYtPnBlcmYub3BzLmRpc2FibGVfbWV0cmljX3NldCA9IGdlbjEwX2Rpc2FibGVfbWV0cmljX3NldDsKIAogCQkJaWYgKElTX0dFTihkZXZfcHJpdiwgMTApKSB7Ci0JCQkJZGV2X3ByaXYtPnBlcmYub2EuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEyODsKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5jdHhfZmxleGV1MF9vZmZzZXQgPSAweDNkZTsKKwkJCQlkZXZfcHJpdi0+cGVyZi5jdHhfb2FjdHhjdHJsX29mZnNldCA9IDB4MTI4OworCQkJCWRldl9wcml2LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4M2RlOwogCQkJfSBlbHNlIHsKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5jdHhfb2FjdHhjdHJsX29mZnNldCA9IDB4MTI0OwotCQkJCWRldl9wcml2LT5wZXJmLm9hLmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4NzhlOworCQkJCWRldl9wcml2LT5wZXJmLmN0eF9vYWN0eGN0cmxfb2Zmc2V0ID0gMHgxMjQ7CisJCQkJZGV2X3ByaXYtPnBlcmYuY3R4X2ZsZXhldTBfb2Zmc2V0ID0gMHg3OGU7CiAJCQl9Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5nZW44X3ZhbGlkX2N0eF9iaXQgPSAoMTw8MTYpOworCQkJZGV2X3ByaXYtPnBlcmYuZ2VuOF92YWxpZF9jdHhfYml0ID0gQklUKDE2KTsKIAkJfQogCX0KIAotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZW5hYmxlX21ldHJpY19zZXQpIHsKLQkJaHJ0aW1lcl9pbml0KCZkZXZfcHJpdi0+cGVyZi5vYS5wb2xsX2NoZWNrX3RpbWVyLAotCQkJCUNMT0NLX01PTk9UT05JQywgSFJUSU1FUl9NT0RFX1JFTCk7Ci0JCWRldl9wcml2LT5wZXJmLm9hLnBvbGxfY2hlY2tfdGltZXIuZnVuY3Rpb24gPSBvYV9wb2xsX2NoZWNrX3RpbWVyX2NiOwotCQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXZfcHJpdi0+cGVyZi5vYS5wb2xsX3dxKTsKLQorCWlmIChkZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQpIHsKIAkJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5wZXJmLnN0cmVhbXMpOwogCQltdXRleF9pbml0KCZkZXZfcHJpdi0+cGVyZi5sb2NrKTsKLQkJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jayk7CiAKIAkJb2Ffc2FtcGxlX3JhdGVfaGFyZF9saW1pdCA9IDEwMDAgKgogCQkJKFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6IC8gMik7CkBAIC0zNTIwLDYgKzM2NDksMjUgQEAgdm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCW11dGV4X2luaXQoJmRldl9wcml2LT5wZXJmLm1ldHJpY3NfbG9jayk7CiAJCWlkcl9pbml0KCZkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2lkcik7CiAKKwkJLyogV2Ugc2V0IHVwIHNvbWUgcmF0ZWxpbWl0IHN0YXRlIHRvIHBvdGVudGlhbGx5IHRocm90dGxlIGFueQorCQkgKiBfTk9URVMgYWJvdXQgc3B1cmlvdXMsIGludmFsaWQgT0EgcmVwb3J0cyB3aGljaCB3ZSBkb24ndAorCQkgKiBmb3J3YXJkIHRvIHVzZXJzcGFjZS4KKwkJICoKKwkJICogV2UgcHJpbnQgYSBfTk9URSBhYm91dCBhbnkgdGhyb3R0bGluZyB3aGVuIGNsb3NpbmcgdGhlCisJCSAqIHN0cmVhbSBpbnN0ZWFkIG9mIHdhaXRpbmcgdW50aWwgZHJpdmVyIF9maW5pIHdoaWNoIG5vIG9uZQorCQkgKiB3b3VsZCBldmVyIHNlZS4KKwkJICoKKwkJICogVXNpbmcgdGhlIHNhbWUgbGltaXRpbmcgZmFjdG9ycyBhcyBwcmludGtfcmF0ZWxpbWl0KCkKKwkJICovCisJCXJhdGVsaW1pdF9zdGF0ZV9pbml0KCZkZXZfcHJpdi0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMsCisJCQkJICAgICA1ICogSFosIDEwKTsKKwkJLyogU2luY2Ugd2UgdXNlIGEgRFJNX05PVEUgZm9yIHNwdXJpb3VzIHJlcG9ydHMgaXQgd291bGQgYmUKKwkJICogaW5jb25zaXN0ZW50IHRvIGxldCBfX3JhdGVsaW1pdCgpIGF1dG9tYXRpY2FsbHkgcHJpbnQgYQorCQkgKiB3YXJuaW5nIGZvciB0aHJvdHRsaW5nLgorCQkgKi8KKwkJcmF0ZWxpbWl0X3NldF9mbGFncygmZGV2X3ByaXYtPnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzLAorCQkJCSAgICBSQVRFTElNSVRfTVNHX09OX1JFTEVBU0UpOworCiAJCWRldl9wcml2LT5wZXJmLmluaXRpYWxpemVkID0gdHJ1ZTsKIAl9CiB9CkBAIC0zNTQ4LDcgKzM2OTYsNyBAQCB2b2lkIGk5MTVfcGVyZl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCXVucmVnaXN0ZXJfc3lzY3RsX3RhYmxlKGRldl9wcml2LT5wZXJmLnN5c2N0bF9oZWFkZXIpOwogCi0JbWVtc2V0KCZkZXZfcHJpdi0+cGVyZi5vYS5vcHMsIDAsIHNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS5vcHMpKTsKKwltZW1zZXQoJmRldl9wcml2LT5wZXJmLm9wcywgMCwgc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9wcykpOwogCiAJZGV2X3ByaXYtPnBlcmYuaW5pdGlhbGl6ZWQgPSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQxMmIxNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19JOTE1X1BFUkZfSF9fCisjZGVmaW5lIF9fSTkxNV9QRVJGX0hfXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworc3RydWN0IGRybV9kZXZpY2U7CitzdHJ1Y3QgZHJtX2ZpbGU7CitzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKK3N0cnVjdCBpbnRlbF9jb250ZXh0Oworc3RydWN0IGludGVsX2VuZ2luZV9jczsKKwordm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cit2b2lkIGk5MTVfcGVyZl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaTkxNV9wZXJmX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaTkxNV9wZXJmX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworCitpbnQgaTkxNV9wZXJmX29wZW5faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOworaW50IGk5MTVfcGVyZl9hZGRfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlKTsKK2ludCBpOTE1X3BlcmZfcmVtb3ZlX2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlKTsKK3ZvaWQgaTkxNV9vYV9pbml0X3JlZ19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAorCQkJICAgIHUzMiAqcmVnX3N0YXRlKTsKKworI2VuZGlmIC8qIF9fSTkxNV9QRVJGX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcG11LmMKaW5kZXggOGZlNDZlZS4uOGUyNTFlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5jCkBAIC04LDYgKzgsOSBAQAogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KIAogI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZS5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV91c2VyLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3RfcG0uaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9wbXUuaCIKQEAgLTc0LDggKzc3LDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBldmVudF9lbmFibGVkX2JpdChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJcmV0dXJuIGNvbmZpZ19lbmFibGVkX2JpdChldmVudC0+YXR0ci5jb25maWcpOwogfQogCi1zdGF0aWMgYm9vbCBwbXVfbmVlZHNfdGltZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGJvb2wgZ3B1X2FjdGl2ZSkKK3N0YXRpYyBib29sIHBtdV9uZWVkc190aW1lcihzdHJ1Y3QgaTkxNV9wbXUgKnBtdSwgYm9vbCBncHVfYWN0aXZlKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gY29udGFpbmVyX29mKHBtdSwgdHlwZW9mKCppOTE1KSwgcG11KTsKIAl1NjQgZW5hYmxlOwogCiAJLyoKQEAgLTgzLDcgKzg3LDcgQEAgc3RhdGljIGJvb2wgcG11X25lZWRzX3RpbWVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBib29sIGdwdV9hY3RpdmUpCiAJICoKIAkgKiBXZSBzdGFydCB3aXRoIGEgYml0bWFzayBvZiBhbGwgY3VycmVudGx5IGVuYWJsZWQgZXZlbnRzLgogCSAqLwotCWVuYWJsZSA9IGk5MTUtPnBtdS5lbmFibGU7CisJZW5hYmxlID0gcG11LT5lbmFibGU7CiAKIAkvKgogCSAqIE1hc2sgb3V0IGFsbCB0aGUgb25lcyB3aGljaCBkbyBub3QgbmVlZCB0aGUgdGltZXIsIG9yIGluCkBAIC0xMDIsMTAgKzEwNiw4IEBAIHN0YXRpYyBib29sIHBtdV9uZWVkc190aW1lcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgYm9vbCBncHVfYWN0aXZlKQogCS8qCiAJICogQWxzbyB0aGVyZSBpcyBzb2Z0d2FyZSBidXN5bmVzcyB0cmFja2luZyBhdmFpbGFibGUgd2UgZG8gbm90CiAJICogbmVlZCB0aGUgdGltZXIgZm9yIEk5MTVfU0FNUExFX0JVU1kgY291bnRlci4KLQkgKgotCSAqIFVzZSBSQ1MgYXMgcHJveHkgZm9yIGFsbCBlbmdpbmVzLgogCSAqLwotCWVsc2UgaWYgKGludGVsX2VuZ2luZV9zdXBwb3J0c19zdGF0cyhpOTE1LT5lbmdpbmVbUkNTMF0pKQorCWVsc2UgaWYgKGk5MTUtPmNhcHMuc2NoZWR1bGVyICYgSTkxNV9TQ0hFRFVMRVJfQ0FQX0VOR0lORV9CVVNZX1NUQVRTKQogCQllbmFibGUgJj0gfkJJVChJOTE1X1NBTVBMRV9CVVNZKTsKIAogCS8qCkBAIC0xMTYsMjQgKzExOCwyNiBAQCBzdGF0aWMgYm9vbCBwbXVfbmVlZHNfdGltZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGJvb2wgZ3B1X2FjdGl2ZSkKIAogdm9pZCBpOTE1X3BtdV9ndF9wYXJrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0JaWYgKCFpOTE1LT5wbXUuYmFzZS5ldmVudF9pbml0KQorCXN0cnVjdCBpOTE1X3BtdSAqcG11ID0gJmk5MTUtPnBtdTsKKworCWlmICghcG11LT5iYXNlLmV2ZW50X2luaXQpCiAJCXJldHVybjsKIAotCXNwaW5fbG9ja19pcnEoJmk5MTUtPnBtdS5sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZwbXUtPmxvY2spOwogCS8qCiAJICogU2lnbmFsIHNhbXBsaW5nIHRpbWVyIHRvIHN0b3AgaWYgb25seSBlbmdpbmUgZXZlbnRzIGFyZSBlbmFibGVkIGFuZAogCSAqIEdQVSB3ZW50IGlkbGUuCiAJICovCi0JaTkxNS0+cG11LnRpbWVyX2VuYWJsZWQgPSBwbXVfbmVlZHNfdGltZXIoaTkxNSwgZmFsc2UpOwotCXNwaW5fdW5sb2NrX2lycSgmaTkxNS0+cG11LmxvY2spOworCXBtdS0+dGltZXJfZW5hYmxlZCA9IHBtdV9uZWVkc190aW1lcihwbXUsIGZhbHNlKTsKKwlzcGluX3VubG9ja19pcnEoJnBtdS0+bG9jayk7CiB9CiAKLXN0YXRpYyB2b2lkIF9faTkxNV9wbXVfbWF5YmVfc3RhcnRfdGltZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgdm9pZCBfX2k5MTVfcG11X21heWJlX3N0YXJ0X3RpbWVyKHN0cnVjdCBpOTE1X3BtdSAqcG11KQogewotCWlmICghaTkxNS0+cG11LnRpbWVyX2VuYWJsZWQgJiYgcG11X25lZWRzX3RpbWVyKGk5MTUsIHRydWUpKSB7Ci0JCWk5MTUtPnBtdS50aW1lcl9lbmFibGVkID0gdHJ1ZTsKLQkJaTkxNS0+cG11LnRpbWVyX2xhc3QgPSBrdGltZV9nZXQoKTsKLQkJaHJ0aW1lcl9zdGFydF9yYW5nZV9ucygmaTkxNS0+cG11LnRpbWVyLAorCWlmICghcG11LT50aW1lcl9lbmFibGVkICYmIHBtdV9uZWVkc190aW1lcihwbXUsIHRydWUpKSB7CisJCXBtdS0+dGltZXJfZW5hYmxlZCA9IHRydWU7CisJCXBtdS0+dGltZXJfbGFzdCA9IGt0aW1lX2dldCgpOworCQlocnRpbWVyX3N0YXJ0X3JhbmdlX25zKCZwbXUtPnRpbWVyLAogCQkJCSAgICAgICBuc190b19rdGltZShQRVJJT0QpLCAwLAogCQkJCSAgICAgICBIUlRJTUVSX01PREVfUkVMX1BJTk5FRCk7CiAJfQpAQCAtMTQxLDE1ICsxNDUsMTcgQEAgc3RhdGljIHZvaWQgX19pOTE1X3BtdV9tYXliZV9zdGFydF90aW1lcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogdm9pZCBpOTE1X3BtdV9ndF91bnBhcmtlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlpZiAoIWk5MTUtPnBtdS5iYXNlLmV2ZW50X2luaXQpCisJc3RydWN0IGk5MTVfcG11ICpwbXUgPSAmaTkxNS0+cG11OworCisJaWYgKCFwbXUtPmJhc2UuZXZlbnRfaW5pdCkKIAkJcmV0dXJuOwogCi0Jc3Bpbl9sb2NrX2lycSgmaTkxNS0+cG11LmxvY2spOworCXNwaW5fbG9ja19pcnEoJnBtdS0+bG9jayk7CiAJLyoKIAkgKiBSZS1lbmFibGUgc2FtcGxpbmcgdGltZXIgd2hlbiBHUFUgZ29lcyBhY3RpdmUuCiAJICovCi0JX19pOTE1X3BtdV9tYXliZV9zdGFydF90aW1lcihpOTE1KTsKLQlzcGluX3VubG9ja19pcnEoJmk5MTUtPnBtdS5sb2NrKTsKKwlfX2k5MTVfcG11X21heWJlX3N0YXJ0X3RpbWVyKHBtdSk7CisJc3Bpbl91bmxvY2tfaXJxKCZwbXUtPmxvY2spOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTU5LDMyICsxNjUsMzAgQEAgYWRkX3NhbXBsZShzdHJ1Y3QgaTkxNV9wbXVfc2FtcGxlICpzYW1wbGUsIHUzMiB2YWwpCiB9CiAKIHN0YXRpYyB2b2lkCi1lbmdpbmVzX3NhbXBsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHVuc2lnbmVkIGludCBwZXJpb2RfbnMpCitlbmdpbmVzX3NhbXBsZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCB1bnNpZ25lZCBpbnQgcGVyaW9kX25zKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwotCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlpZiAoKGRldl9wcml2LT5wbXUuZW5hYmxlICYgRU5HSU5FX1NBTVBMRV9NQVNLKSA9PSAwKQorCWlmICgoaTkxNS0+cG11LmVuYWJsZSAmIEVOR0lORV9TQU1QTEVfTUFTSykgPT0gMCkKIAkJcmV0dXJuOwogCi0Jd2FrZXJlZiA9IDA7Ci0JaWYgKFJFQURfT05DRShkZXZfcHJpdi0+Z3QuYXdha2UpKQotCQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKCZkZXZfcHJpdi0+cnVudGltZV9wbSk7Ci0JaWYgKCF3YWtlcmVmKQotCQlyZXR1cm47Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBmbGFncyk7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKIAkJc3RydWN0IGludGVsX2VuZ2luZV9wbXUgKnBtdSA9ICZlbmdpbmUtPnBtdTsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKIAkJYm9vbCBidXN5OwogCQl1MzIgdmFsOwogCi0JCXZhbCA9IEk5MTVfUkVBRF9GVyhSSU5HX0NUTChlbmdpbmUtPm1taW9fYmFzZSkpOwotCQlpZiAodmFsID09IDApIC8qIHBvd2Vyd2VsbCBvZmYgPT4gZW5naW5lIGlkbGUgKi8KKwkJaWYgKCFpbnRlbF9lbmdpbmVfcG1fZ2V0X2lmX2F3YWtlKGVuZ2luZSkpCiAJCQljb250aW51ZTsKIAorCQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT51bmNvcmUtPmxvY2ssIGZsYWdzKTsKKworCQl2YWwgPSBFTkdJTkVfUkVBRF9GVyhlbmdpbmUsIFJJTkdfQ1RMKTsKKwkJaWYgKHZhbCA9PSAwKSAvKiBwb3dlcndlbGwgb2ZmID0+IGVuZ2luZSBpZGxlICovCisJCQlnb3RvIHNraXA7CisKIAkJaWYgKHZhbCAmIFJJTkdfV0FJVCkKIAkJCWFkZF9zYW1wbGUoJnBtdS0+c2FtcGxlW0k5MTVfU0FNUExFX1dBSVRdLCBwZXJpb2RfbnMpOwogCQlpZiAodmFsICYgUklOR19XQUlUX1NFTUFQSE9SRSkKQEAgLTE5OSwxNSArMjAzLDE2IEBAIGVuZ2luZXNfc2FtcGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdW5zaWduZWQgaW50IHBlcmlvZF9ucykKIAkJICovCiAJCWJ1c3kgPSB2YWwgJiAoUklOR19XQUlUX1NFTUFQSE9SRSB8IFJJTkdfV0FJVCk7CiAJCWlmICghYnVzeSkgewotCQkJdmFsID0gSTkxNV9SRUFEX0ZXKFJJTkdfTUlfTU9ERShlbmdpbmUtPm1taW9fYmFzZSkpOworCQkJdmFsID0gRU5HSU5FX1JFQURfRlcoZW5naW5lLCBSSU5HX01JX01PREUpOwogCQkJYnVzeSA9ICEodmFsICYgTU9ERV9JRExFKTsKIAkJfQogCQlpZiAoYnVzeSkKIAkJCWFkZF9zYW1wbGUoJnBtdS0+c2FtcGxlW0k5MTVfU0FNUExFX0JVU1ldLCBwZXJpb2RfbnMpOwotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGZsYWdzKTsKIAotCWludGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZik7Citza2lwOgorCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnVuY29yZS0+bG9jaywgZmxhZ3MpOworCQlpbnRlbF9lbmdpbmVfcG1fcHV0KGVuZ2luZSk7CisJfQogfQogCiBzdGF0aWMgdm9pZApAQCAtMjE3LDM0ICsyMjIsMzAgQEAgYWRkX3NhbXBsZV9tdWx0KHN0cnVjdCBpOTE1X3BtdV9zYW1wbGUgKnNhbXBsZSwgdTMyIHZhbCwgdTMyIG11bCkKIH0KIAogc3RhdGljIHZvaWQKLWZyZXF1ZW5jeV9zYW1wbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1bnNpZ25lZCBpbnQgcGVyaW9kX25zKQorZnJlcXVlbmN5X3NhbXBsZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCB1bnNpZ25lZCBpbnQgcGVyaW9kX25zKQogewotCWlmIChkZXZfcHJpdi0+cG11LmVuYWJsZSAmCi0JICAgIGNvbmZpZ19lbmFibGVkX21hc2soSTkxNV9QTVVfQUNUVUFMX0ZSRVFVRU5DWSkpIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd0LT5pOTE1OworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7CisJc3RydWN0IGk5MTVfcG11ICpwbXUgPSAmaTkxNS0+cG11OworCisJaWYgKHBtdS0+ZW5hYmxlICYgY29uZmlnX2VuYWJsZWRfbWFzayhJOTE1X1BNVV9BQ1RVQUxfRlJFUVVFTkNZKSkgewogCQl1MzIgdmFsOwogCi0JCXZhbCA9IGRldl9wcml2LT5ndF9wbS5ycHMuY3VyX2ZyZXE7Ci0JCWlmIChkZXZfcHJpdi0+Z3QuYXdha2UpIHsKLQkJCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwotCi0JCQl3aXRoX2ludGVsX3J1bnRpbWVfcG1faWZfaW5fdXNlKCZkZXZfcHJpdi0+cnVudGltZV9wbSwKLQkJCQkJCQl3YWtlcmVmKSB7Ci0JCQkJdmFsID0gaW50ZWxfdW5jb3JlX3JlYWRfbm90cmFjZSgmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkJCQkJR0VONl9SUFNUQVQxKTsKLQkJCQl2YWwgPSBpbnRlbF9nZXRfY2FnZihkZXZfcHJpdiwgdmFsKTsKLQkJCX0KKwkJdmFsID0gaTkxNS0+Z3RfcG0ucnBzLmN1cl9mcmVxOworCQlpZiAoaW50ZWxfZ3RfcG1fZ2V0X2lmX2F3YWtlKGd0KSkgeworCQkJdmFsID0gaW50ZWxfdW5jb3JlX3JlYWRfbm90cmFjZSh1bmNvcmUsIEdFTjZfUlBTVEFUMSk7CisJCQl2YWwgPSBpbnRlbF9nZXRfY2FnZihpOTE1LCB2YWwpOworCQkJaW50ZWxfZ3RfcG1fcHV0KGd0KTsKIAkJfQogCi0JCWFkZF9zYW1wbGVfbXVsdCgmZGV2X3ByaXYtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9GUkVRX0FDVF0sCi0JCQkJaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIHZhbCksCisJCWFkZF9zYW1wbGVfbXVsdCgmcG11LT5zYW1wbGVbX19JOTE1X1NBTVBMRV9GUkVRX0FDVF0sCisJCQkJaW50ZWxfZ3B1X2ZyZXEoaTkxNSwgdmFsKSwKIAkJCQlwZXJpb2RfbnMgLyAxMDAwKTsKIAl9CiAKLQlpZiAoZGV2X3ByaXYtPnBtdS5lbmFibGUgJgotCSAgICBjb25maWdfZW5hYmxlZF9tYXNrKEk5MTVfUE1VX1JFUVVFU1RFRF9GUkVRVUVOQ1kpKSB7Ci0JCWFkZF9zYW1wbGVfbXVsdCgmZGV2X3ByaXYtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9GUkVRX1JFUV0sCi0JCQkJaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsCi0JCQkJCSAgICAgICBkZXZfcHJpdi0+Z3RfcG0ucnBzLmN1cl9mcmVxKSwKKwlpZiAocG11LT5lbmFibGUgJiBjb25maWdfZW5hYmxlZF9tYXNrKEk5MTVfUE1VX1JFUVVFU1RFRF9GUkVRVUVOQ1kpKSB7CisJCWFkZF9zYW1wbGVfbXVsdCgmcG11LT5zYW1wbGVbX19JOTE1X1NBTVBMRV9GUkVRX1JFUV0sCisJCQkJaW50ZWxfZ3B1X2ZyZXEoaTkxNSwgaTkxNS0+Z3RfcG0ucnBzLmN1cl9mcmVxKSwKIAkJCQlwZXJpb2RfbnMgLyAxMDAwKTsKIAl9CiB9CkBAIC0yNTMsMTUgKzI1NCwxNyBAQCBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgaTkxNV9zYW1wbGUoc3RydWN0IGhydGltZXIgKmhydGltZXIpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPQogCQljb250YWluZXJfb2YoaHJ0aW1lciwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIHBtdS50aW1lcik7CisJc3RydWN0IGk5MTVfcG11ICpwbXUgPSAmaTkxNS0+cG11OworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmaTkxNS0+Z3Q7CiAJdW5zaWduZWQgaW50IHBlcmlvZF9uczsKIAlrdGltZV90IG5vdzsKIAotCWlmICghUkVBRF9PTkNFKGk5MTUtPnBtdS50aW1lcl9lbmFibGVkKSkKKwlpZiAoIVJFQURfT05DRShwbXUtPnRpbWVyX2VuYWJsZWQpKQogCQlyZXR1cm4gSFJUSU1FUl9OT1JFU1RBUlQ7CiAKIAlub3cgPSBrdGltZV9nZXQoKTsKLQlwZXJpb2RfbnMgPSBrdGltZV90b19ucyhrdGltZV9zdWIobm93LCBpOTE1LT5wbXUudGltZXJfbGFzdCkpOwotCWk5MTUtPnBtdS50aW1lcl9sYXN0ID0gbm93OworCXBlcmlvZF9ucyA9IGt0aW1lX3RvX25zKGt0aW1lX3N1Yihub3csIHBtdS0+dGltZXJfbGFzdCkpOworCXBtdS0+dGltZXJfbGFzdCA9IG5vdzsKIAogCS8qCiAJICogU3RyaWN0bHkgc3BlYWtpbmcgdGhlIHBhc3NlZCBpbiBwZXJpb2QgbWF5IG5vdCBiZSAxMDAlIGFjY3VyYXRlIGZvcgpAQCAtMjY5LDggKzI3Miw4IEBAIHN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBpOTE1X3NhbXBsZShzdHJ1Y3QgaHJ0aW1lciAqaHJ0aW1lcikKIAkgKiBncmFiYmluZyB0aGUgZm9yY2V3YWtlLiBIb3dldmVyIHRoZSBwb3RlbnRpYWwgZXJyb3IgZnJvbSB0aW1lciBjYWxsLQogCSAqIGJhY2sgZGVsYXkgZ3JlYXRseSBkb21pbmF0ZXMgdGhpcyBzbyB3ZSBrZWVwIGl0IHNpbXBsZS4KIAkgKi8KLQllbmdpbmVzX3NhbXBsZShpOTE1LCBwZXJpb2RfbnMpOwotCWZyZXF1ZW5jeV9zYW1wbGUoaTkxNSwgcGVyaW9kX25zKTsKKwllbmdpbmVzX3NhbXBsZShndCwgcGVyaW9kX25zKTsKKwlmcmVxdWVuY3lfc2FtcGxlKGd0LCBwZXJpb2RfbnMpOwogCiAJaHJ0aW1lcl9mb3J3YXJkKGhydGltZXIsIG5vdywgbnNfdG9fa3RpbWUoUEVSSU9EKSk7CiAKQEAgLTQyMyw4ICs0MjYsOSBAQCBzdGF0aWMgaW50IGk5MTVfcG11X2V2ZW50X2luaXQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdTY0IF9fZ2V0X3JjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB1NjQgX19nZXRfcmM2KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKIAl1NjQgdmFsOwogCiAJdmFsID0gaW50ZWxfcmM2X3Jlc2lkZW5jeV9ucyhpOTE1LApAQCAtNDQxLDE3ICs0NDUsMTkgQEAgc3RhdGljIHU2NCBfX2dldF9yYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcmV0dXJuIHZhbDsKIH0KIAotc3RhdGljIHU2NCBnZXRfcmM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorc3RhdGljIHU2NCBnZXRfcmM2KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfUE0pCisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKIAlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07CisJc3RydWN0IGk5MTVfcG11ICpwbXUgPSAmaTkxNS0+cG11OwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdTY0IHZhbDsKIAogCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UocnBtKTsKIAlpZiAod2FrZXJlZikgewotCQl2YWwgPSBfX2dldF9yYzYoaTkxNSk7CisJCXZhbCA9IF9fZ2V0X3JjNihndCk7CiAJCWludGVsX3J1bnRpbWVfcG1fcHV0KHJwbSwgd2FrZXJlZik7CiAKIAkJLyoKQEAgLTQ2MCwxNiArNDY2LDE2IEBAIHN0YXRpYyB1NjQgZ2V0X3JjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJICogcHJldmlvdXNseS4KIAkJICovCiAKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmk5MTUtPnBtdS5sb2NrLCBmbGFncyk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZwbXUtPmxvY2ssIGZsYWdzKTsKIAotCQlpZiAodmFsID49IGk5MTUtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZfRVNUSU1BVEVEXS5jdXIpIHsKLQkJCWk5MTUtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZfRVNUSU1BVEVEXS5jdXIgPSAwOwotCQkJaTkxNS0+cG11LnNhbXBsZVtfX0k5MTVfU0FNUExFX1JDNl0uY3VyID0gdmFsOworCQlpZiAodmFsID49IHBtdS0+c2FtcGxlW19fSTkxNV9TQU1QTEVfUkM2X0VTVElNQVRFRF0uY3VyKSB7CisJCQlwbXUtPnNhbXBsZVtfX0k5MTVfU0FNUExFX1JDNl9FU1RJTUFURURdLmN1ciA9IDA7CisJCQlwbXUtPnNhbXBsZVtfX0k5MTVfU0FNUExFX1JDNl0uY3VyID0gdmFsOwogCQl9IGVsc2UgewotCQkJdmFsID0gaTkxNS0+cG11LnNhbXBsZVtfX0k5MTVfU0FNUExFX1JDNl9FU1RJTUFURURdLmN1cjsKKwkJCXZhbCA9IHBtdS0+c2FtcGxlW19fSTkxNV9TQU1QTEVfUkM2X0VTVElNQVRFRF0uY3VyOwogCQl9CiAKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTkxNS0+cG11LmxvY2ssIGZsYWdzKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG11LT5sb2NrLCBmbGFncyk7CiAJfSBlbHNlIHsKIAkJc3RydWN0IGRldmljZSAqa2RldiA9IHJwbS0+a2RldjsKIApAQCAtNDgwLDcgKzQ4Niw3IEBAIHN0YXRpYyB1NjQgZ2V0X3JjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJICogb24gdG9wIG9mIHRoZSBsYXN0IGtub3duIHJlYWwgdmFsdWUsIGFzIHRoZSBhcHByb3hpbWF0ZWQgUkM2CiAJCSAqIGNvdW50ZXIgdmFsdWUuCiAJCSAqLwotCQlzcGluX2xvY2tfaXJxc2F2ZSgmaTkxNS0+cG11LmxvY2ssIGZsYWdzKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnBtdS0+bG9jaywgZmxhZ3MpOwogCiAJCS8qCiAJCSAqIEFmdGVyIHRoZSBhYm92ZSBicmFuY2ggaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlIGZhaWxlZApAQCAtNDk2LDI1ICs1MDIsMjUgQEAgc3RhdGljIHU2NCBnZXRfcmM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQlpZiAocG1fcnVudGltZV9zdGF0dXNfc3VzcGVuZGVkKGtkZXYpKSB7CiAJCQl2YWwgPSBwbV9ydW50aW1lX3N1c3BlbmRlZF90aW1lKGtkZXYpOwogCi0JCQlpZiAoIWk5MTUtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZfRVNUSU1BVEVEXS5jdXIpCi0JCQkJaTkxNS0+cG11LnN1c3BlbmRlZF90aW1lX2xhc3QgPSB2YWw7CisJCQlpZiAoIXBtdS0+c2FtcGxlW19fSTkxNV9TQU1QTEVfUkM2X0VTVElNQVRFRF0uY3VyKQorCQkJCXBtdS0+c3VzcGVuZGVkX3RpbWVfbGFzdCA9IHZhbDsKIAotCQkJdmFsIC09IGk5MTUtPnBtdS5zdXNwZW5kZWRfdGltZV9sYXN0OwotCQkJdmFsICs9IGk5MTUtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZdLmN1cjsKKwkJCXZhbCAtPSBwbXUtPnN1c3BlbmRlZF90aW1lX2xhc3Q7CisJCQl2YWwgKz0gcG11LT5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZdLmN1cjsKIAotCQkJaTkxNS0+cG11LnNhbXBsZVtfX0k5MTVfU0FNUExFX1JDNl9FU1RJTUFURURdLmN1ciA9IHZhbDsKLQkJfSBlbHNlIGlmIChpOTE1LT5wbXUuc2FtcGxlW19fSTkxNV9TQU1QTEVfUkM2X0VTVElNQVRFRF0uY3VyKSB7Ci0JCQl2YWwgPSBpOTE1LT5wbXUuc2FtcGxlW19fSTkxNV9TQU1QTEVfUkM2X0VTVElNQVRFRF0uY3VyOworCQkJcG11LT5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZfRVNUSU1BVEVEXS5jdXIgPSB2YWw7CisJCX0gZWxzZSBpZiAocG11LT5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZfRVNUSU1BVEVEXS5jdXIpIHsKKwkJCXZhbCA9IHBtdS0+c2FtcGxlW19fSTkxNV9TQU1QTEVfUkM2X0VTVElNQVRFRF0uY3VyOwogCQl9IGVsc2UgewotCQkJdmFsID0gaTkxNS0+cG11LnNhbXBsZVtfX0k5MTVfU0FNUExFX1JDNl0uY3VyOworCQkJdmFsID0gcG11LT5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZdLmN1cjsKIAkJfQogCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk5MTUtPnBtdS5sb2NrLCBmbGFncyk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBtdS0+bG9jaywgZmxhZ3MpOwogCX0KIAogCXJldHVybiB2YWw7CiAjZWxzZQotCXJldHVybiBfX2dldF9yYzYoaTkxNSk7CisJcmV0dXJuIF9fZ2V0X3JjNihndCk7CiAjZW5kaWYKIH0KIApAQCAtNTIyLDYgKzUyOCw3IEBAIHN0YXRpYyB1NjQgX19pOTE1X3BtdV9ldmVudF9yZWFkKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZihldmVudC0+cG11LCB0eXBlb2YoKmk5MTUpLCBwbXUuYmFzZSk7CisJc3RydWN0IGk5MTVfcG11ICpwbXUgPSAmaTkxNS0+cG11OwogCXU2NCB2YWwgPSAwOwogCiAJaWYgKGlzX2VuZ2luZV9ldmVudChldmVudCkpIHsKQEAgLTU0NCwxOSArNTUxLDE5IEBAIHN0YXRpYyB1NjQgX19pOTE1X3BtdV9ldmVudF9yZWFkKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAkJc3dpdGNoIChldmVudC0+YXR0ci5jb25maWcpIHsKIAkJY2FzZSBJOTE1X1BNVV9BQ1RVQUxfRlJFUVVFTkNZOgogCQkJdmFsID0KLQkJCSAgIGRpdl91NjQoaTkxNS0+cG11LnNhbXBsZVtfX0k5MTVfU0FNUExFX0ZSRVFfQUNUXS5jdXIsCisJCQkgICBkaXZfdTY0KHBtdS0+c2FtcGxlW19fSTkxNV9TQU1QTEVfRlJFUV9BQ1RdLmN1ciwKIAkJCQkgICBVU0VDX1BFUl9TRUMgLyogdG8gTUh6ICovKTsKIAkJCWJyZWFrOwogCQljYXNlIEk5MTVfUE1VX1JFUVVFU1RFRF9GUkVRVUVOQ1k6CiAJCQl2YWwgPQotCQkJICAgZGl2X3U2NChpOTE1LT5wbXUuc2FtcGxlW19fSTkxNV9TQU1QTEVfRlJFUV9SRVFdLmN1ciwKKwkJCSAgIGRpdl91NjQocG11LT5zYW1wbGVbX19JOTE1X1NBTVBMRV9GUkVRX1JFUV0uY3VyLAogCQkJCSAgIFVTRUNfUEVSX1NFQyAvKiB0byBNSHogKi8pOwogCQkJYnJlYWs7CiAJCWNhc2UgSTkxNV9QTVVfSU5URVJSVVBUUzoKIAkJCXZhbCA9IGNvdW50X2ludGVycnVwdHMoaTkxNSk7CiAJCQlicmVhazsKIAkJY2FzZSBJOTE1X1BNVV9SQzZfUkVTSURFTkNZOgotCQkJdmFsID0gZ2V0X3JjNihpOTE1KTsKKwkJCXZhbCA9IGdldF9yYzYoJmk5MTUtPmd0KTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtNTg0LDI0ICs1OTEsMjUgQEAgc3RhdGljIHZvaWQgaTkxNV9wbXVfZW5hYmxlKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZihldmVudC0+cG11LCB0eXBlb2YoKmk5MTUpLCBwbXUuYmFzZSk7CiAJdW5zaWduZWQgaW50IGJpdCA9IGV2ZW50X2VuYWJsZWRfYml0KGV2ZW50KTsKKwlzdHJ1Y3QgaTkxNV9wbXUgKnBtdSA9ICZpOTE1LT5wbXU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZpOTE1LT5wbXUubG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZwbXUtPmxvY2ssIGZsYWdzKTsKIAogCS8qCiAJICogVXBkYXRlIHRoZSBiaXRtYXNrIG9mIGVuYWJsZWQgZXZlbnRzIGFuZCBpbmNyZW1lbnQKIAkgKiB0aGUgZXZlbnQgcmVmZXJlbmNlIGNvdW50ZXIuCiAJICovCi0JQlVJTERfQlVHX09OKEFSUkFZX1NJWkUoaTkxNS0+cG11LmVuYWJsZV9jb3VudCkgIT0gSTkxNV9QTVVfTUFTS19CSVRTKTsKLQlHRU1fQlVHX09OKGJpdCA+PSBBUlJBWV9TSVpFKGk5MTUtPnBtdS5lbmFibGVfY291bnQpKTsKLQlHRU1fQlVHX09OKGk5MTUtPnBtdS5lbmFibGVfY291bnRbYml0XSA9PSB+MCk7Ci0JaTkxNS0+cG11LmVuYWJsZSB8PSBCSVRfVUxMKGJpdCk7Ci0JaTkxNS0+cG11LmVuYWJsZV9jb3VudFtiaXRdKys7CisJQlVJTERfQlVHX09OKEFSUkFZX1NJWkUocG11LT5lbmFibGVfY291bnQpICE9IEk5MTVfUE1VX01BU0tfQklUUyk7CisJR0VNX0JVR19PTihiaXQgPj0gQVJSQVlfU0laRShwbXUtPmVuYWJsZV9jb3VudCkpOworCUdFTV9CVUdfT04ocG11LT5lbmFibGVfY291bnRbYml0XSA9PSB+MCk7CisJcG11LT5lbmFibGUgfD0gQklUX1VMTChiaXQpOworCXBtdS0+ZW5hYmxlX2NvdW50W2JpdF0rKzsKIAogCS8qCiAJICogU3RhcnQgdGhlIHNhbXBsaW5nIHRpbWVyIGlmIG5lZWRlZCBhbmQgbm90IGFscmVhZHkgZW5hYmxlZC4KIAkgKi8KLQlfX2k5MTVfcG11X21heWJlX3N0YXJ0X3RpbWVyKGk5MTUpOworCV9faTkxNV9wbXVfbWF5YmVfc3RhcnRfdGltZXIocG11KTsKIAogCS8qCiAJICogRm9yIHBlci1lbmdpbmUgZXZlbnRzIHRoZSBiaXRtYXNrIGFuZCByZWZlcmVuY2UgY291bnRpbmcKQEAgLTYyNyw3ICs2MzUsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3BtdV9lbmFibGUoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCQllbmdpbmUtPnBtdS5lbmFibGVfY291bnRbc2FtcGxlXSsrOwogCX0KIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk5MTUtPnBtdS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG11LT5sb2NrLCBmbGFncyk7CiAKIAkvKgogCSAqIFN0b3JlIHRoZSBjdXJyZW50IGNvdW50ZXIgdmFsdWUgc28gd2UgY2FuIHJlcG9ydCB0aGUgY29ycmVjdCBkZWx0YQpAQCAtNjQyLDkgKzY1MCwxMCBAQCBzdGF0aWMgdm9pZCBpOTE1X3BtdV9kaXNhYmxlKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZihldmVudC0+cG11LCB0eXBlb2YoKmk5MTUpLCBwbXUuYmFzZSk7CiAJdW5zaWduZWQgaW50IGJpdCA9IGV2ZW50X2VuYWJsZWRfYml0KGV2ZW50KTsKKwlzdHJ1Y3QgaTkxNV9wbXUgKnBtdSA9ICZpOTE1LT5wbXU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZpOTE1LT5wbXUubG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZwbXUtPmxvY2ssIGZsYWdzKTsKIAogCWlmIChpc19lbmdpbmVfZXZlbnQoZXZlbnQpKSB7CiAJCXU4IHNhbXBsZSA9IGVuZ2luZV9ldmVudF9zYW1wbGUoZXZlbnQpOwpAQCAtNjY2LDE4ICs2NzUsMTggQEAgc3RhdGljIHZvaWQgaTkxNV9wbXVfZGlzYWJsZShzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJCQllbmdpbmUtPnBtdS5lbmFibGUgJj0gfkJJVChzYW1wbGUpOwogCX0KIAotCUdFTV9CVUdfT04oYml0ID49IEFSUkFZX1NJWkUoaTkxNS0+cG11LmVuYWJsZV9jb3VudCkpOwotCUdFTV9CVUdfT04oaTkxNS0+cG11LmVuYWJsZV9jb3VudFtiaXRdID09IDApOworCUdFTV9CVUdfT04oYml0ID49IEFSUkFZX1NJWkUocG11LT5lbmFibGVfY291bnQpKTsKKwlHRU1fQlVHX09OKHBtdS0+ZW5hYmxlX2NvdW50W2JpdF0gPT0gMCk7CiAJLyoKIAkgKiBEZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBhbmQgY2xlYXIgdGhlIGVuYWJsZWQKIAkgKiBiaXRtYXNrIHdoZW4gdGhlIGxhc3QgbGlzdGVuZXIgb24gYW4gZXZlbnQgZ29lcyBhd2F5LgogCSAqLwotCWlmICgtLWk5MTUtPnBtdS5lbmFibGVfY291bnRbYml0XSA9PSAwKSB7Ci0JCWk5MTUtPnBtdS5lbmFibGUgJj0gfkJJVF9VTEwoYml0KTsKLQkJaTkxNS0+cG11LnRpbWVyX2VuYWJsZWQgJj0gcG11X25lZWRzX3RpbWVyKGk5MTUsIHRydWUpOworCWlmICgtLXBtdS0+ZW5hYmxlX2NvdW50W2JpdF0gPT0gMCkgeworCQlwbXUtPmVuYWJsZSAmPSB+QklUX1VMTChiaXQpOworCQlwbXUtPnRpbWVyX2VuYWJsZWQgJj0gcG11X25lZWRzX3RpbWVyKHBtdSwgdHJ1ZSk7CiAJfQogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTkxNS0+cG11LmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwbXUtPmxvY2ssIGZsYWdzKTsKIH0KIAogc3RhdGljIHZvaWQgaTkxNV9wbXVfZXZlbnRfc3RhcnQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50LCBpbnQgZmxhZ3MpCkBAIC04MjYsOCArODM1LDkgQEAgYWRkX3BtdV9hdHRyKHN0cnVjdCBwZXJmX3BtdV9ldmVudHNfYXR0ciAqYXR0ciwgY29uc3QgY2hhciAqbmFtZSwKIH0KIAogc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKioKLWNyZWF0ZV9ldmVudF9hdHRyaWJ1dGVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorY3JlYXRlX2V2ZW50X2F0dHJpYnV0ZXMoc3RydWN0IGk5MTVfcG11ICpwbXUpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBjb250YWluZXJfb2YocG11LCB0eXBlb2YoKmk5MTUpLCBwbXUpOwogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCQl1NjQgY29uZmlnOwogCQljb25zdCBjaGFyICpuYW1lOwpAQCAtODUxLDcgKzg2MSw2IEBAIGNyZWF0ZV9ldmVudF9hdHRyaWJ1dGVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCXN0cnVjdCBpOTE1X2V4dF9hdHRyaWJ1dGUgKmk5MTVfYXR0ciA9IE5VTEwsICppOTE1X2l0ZXI7CiAJc3RydWN0IGF0dHJpYnV0ZSAqKmF0dHIgPSBOVUxMLCAqKmF0dHJfaXRlcjsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJdW5zaWduZWQgaW50IGk7CiAKIAkvKiBDb3VudCBob3cgbWFueSBjb3VudGVycyB3ZSB3aWxsIGJlIGV4cG9zaW5nLiAqLwpAQCAtODYwLDcgKzg2OSw3IEBAIGNyZWF0ZV9ldmVudF9hdHRyaWJ1dGVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQkJY291bnQrKzsKIAl9CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgeworCWZvcl9lYWNoX3VhYmlfZW5naW5lKGVuZ2luZSwgaTkxNSkgewogCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShlbmdpbmVfZXZlbnRzKTsgaSsrKSB7CiAJCQlpZiAoIWVuZ2luZV9ldmVudF9zdGF0dXMoZW5naW5lLAogCQkJCQkJIGVuZ2luZV9ldmVudHNbaV0uc2FtcGxlKSkKQEAgLTkxMSw3ICs5MjAsNyBAQCBjcmVhdGVfZXZlbnRfYXR0cmlidXRlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAl9CiAKIAkvKiBJbml0aWFsaXplIHN1cHBvcnRlZCBlbmdpbmUgY291bnRlcnMuICovCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwlmb3JfZWFjaF91YWJpX2VuZ2luZShlbmdpbmUsIGk5MTUpIHsKIAkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZW5naW5lX2V2ZW50cyk7IGkrKykgewogCQkJY2hhciAqc3RyOwogCkBAIC05MjgsNyArOTM3LDcgQEAgY3JlYXRlX2V2ZW50X2F0dHJpYnV0ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCQlpOTE1X2l0ZXIgPQogCQkJCWFkZF9pOTE1X2F0dHIoaTkxNV9pdGVyLCBzdHIsCiAJCQkJCSAgICAgIF9fSTkxNV9QTVVfRU5HSU5FKGVuZ2luZS0+dWFiaV9jbGFzcywKLQkJCQkJCQkJZW5naW5lLT5pbnN0YW5jZSwKKwkJCQkJCQkJZW5naW5lLT51YWJpX2luc3RhbmNlLAogCQkJCQkJCQllbmdpbmVfZXZlbnRzW2ldLnNhbXBsZSkpOwogCiAJCQlzdHIgPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIiVzLSVzLnVuaXQiLApAQCAtOTQxLDggKzk1MCw4IEBAIGNyZWF0ZV9ldmVudF9hdHRyaWJ1dGVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQl9CiAJfQogCi0JaTkxNS0+cG11Lmk5MTVfYXR0ciA9IGk5MTVfYXR0cjsKLQlpOTE1LT5wbXUucG11X2F0dHIgPSBwbXVfYXR0cjsKKwlwbXUtPmk5MTVfYXR0ciA9IGk5MTVfYXR0cjsKKwlwbXUtPnBtdV9hdHRyID0gcG11X2F0dHI7CiAKIAlyZXR1cm4gYXR0cjsKIApAQCAtOTU4LDcgKzk2Nyw3IEBAIGVycjo7CiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIGZyZWVfZXZlbnRfYXR0cmlidXRlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB2b2lkIGZyZWVfZXZlbnRfYXR0cmlidXRlcyhzdHJ1Y3QgaTkxNV9wbXUgKnBtdSkKIHsKIAlzdHJ1Y3QgYXR0cmlidXRlICoqYXR0cl9pdGVyID0gaTkxNV9wbXVfZXZlbnRzX2F0dHJfZ3JvdXAuYXR0cnM7CiAKQEAgLTk2NiwxMiArOTc1LDEyIEBAIHN0YXRpYyB2b2lkIGZyZWVfZXZlbnRfYXR0cmlidXRlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJa2ZyZWUoKCphdHRyX2l0ZXIpLT5uYW1lKTsKIAogCWtmcmVlKGk5MTVfcG11X2V2ZW50c19hdHRyX2dyb3VwLmF0dHJzKTsKLQlrZnJlZShpOTE1LT5wbXUuaTkxNV9hdHRyKTsKLQlrZnJlZShpOTE1LT5wbXUucG11X2F0dHIpOworCWtmcmVlKHBtdS0+aTkxNV9hdHRyKTsKKwlrZnJlZShwbXUtPnBtdV9hdHRyKTsKIAogCWk5MTVfcG11X2V2ZW50c19hdHRyX2dyb3VwLmF0dHJzID0gTlVMTDsKLQlpOTE1LT5wbXUuaTkxNV9hdHRyID0gTlVMTDsKLQlpOTE1LT5wbXUucG11X2F0dHIgPSBOVUxMOworCXBtdS0+aTkxNV9hdHRyID0gTlVMTDsKKwlwbXUtPnBtdV9hdHRyID0gTlVMTDsKIH0KIAogc3RhdGljIGludCBpOTE1X3BtdV9jcHVfb25saW5lKHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBobGlzdF9ub2RlICpub2RlKQpAQCAtMTAwOCw3ICsxMDE3LDcgQEAgc3RhdGljIGludCBpOTE1X3BtdV9jcHVfb2ZmbGluZSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZSkKIAogc3RhdGljIGVudW0gY3B1aHBfc3RhdGUgY3B1aHBfc2xvdCA9IENQVUhQX0lOVkFMSUQ7CiAKLXN0YXRpYyBpbnQgaTkxNV9wbXVfcmVnaXN0ZXJfY3B1aHBfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgaW50IGk5MTVfcG11X3JlZ2lzdGVyX2NwdWhwX3N0YXRlKHN0cnVjdCBpOTE1X3BtdSAqcG11KQogewogCWVudW0gY3B1aHBfc3RhdGUgc2xvdDsKIAlpbnQgcmV0OwpAQCAtMTAyMSw3ICsxMDMwLDcgQEAgc3RhdGljIGludCBpOTE1X3BtdV9yZWdpc3Rlcl9jcHVocF9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJcmV0dXJuIHJldDsKIAogCXNsb3QgPSByZXQ7Ci0JcmV0ID0gY3B1aHBfc3RhdGVfYWRkX2luc3RhbmNlKHNsb3QsICZpOTE1LT5wbXUubm9kZSk7CisJcmV0ID0gY3B1aHBfc3RhdGVfYWRkX2luc3RhbmNlKHNsb3QsICZwbXUtPm5vZGUpOwogCWlmIChyZXQpIHsKIAkJY3B1aHBfcmVtb3ZlX211bHRpX3N0YXRlKHNsb3QpOwogCQlyZXR1cm4gcmV0OwpAQCAtMTAzMSw3MiArMTA0MCw3NSBAQCBzdGF0aWMgaW50IGk5MTVfcG11X3JlZ2lzdGVyX2NwdWhwX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBpOTE1X3BtdV91bnJlZ2lzdGVyX2NwdWhwX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorc3RhdGljIHZvaWQgaTkxNV9wbXVfdW5yZWdpc3Rlcl9jcHVocF9zdGF0ZShzdHJ1Y3QgaTkxNV9wbXUgKnBtdSkKIHsKIAlXQVJOX09OKGNwdWhwX3Nsb3QgPT0gQ1BVSFBfSU5WQUxJRCk7Ci0JV0FSTl9PTihjcHVocF9zdGF0ZV9yZW1vdmVfaW5zdGFuY2UoY3B1aHBfc2xvdCwgJmk5MTUtPnBtdS5ub2RlKSk7CisJV0FSTl9PTihjcHVocF9zdGF0ZV9yZW1vdmVfaW5zdGFuY2UoY3B1aHBfc2xvdCwgJnBtdS0+bm9kZSkpOwogCWNwdWhwX3JlbW92ZV9tdWx0aV9zdGF0ZShjcHVocF9zbG90KTsKIH0KIAogdm9pZCBpOTE1X3BtdV9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKKwlzdHJ1Y3QgaTkxNV9wbXUgKnBtdSA9ICZpOTE1LT5wbXU7CiAJaW50IHJldDsKIAogCWlmIChJTlRFTF9HRU4oaTkxNSkgPD0gMikgewotCQlEUk1fSU5GTygiUE1VIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgR1BVLiIpOworCQlkZXZfaW5mbyhpOTE1LT5kcm0uZGV2LCAiUE1VIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgR1BVLiIpOwogCQlyZXR1cm47CiAJfQogCi0JaTkxNV9wbXVfZXZlbnRzX2F0dHJfZ3JvdXAuYXR0cnMgPSBjcmVhdGVfZXZlbnRfYXR0cmlidXRlcyhpOTE1KTsKKwlpOTE1X3BtdV9ldmVudHNfYXR0cl9ncm91cC5hdHRycyA9IGNyZWF0ZV9ldmVudF9hdHRyaWJ1dGVzKHBtdSk7CiAJaWYgKCFpOTE1X3BtdV9ldmVudHNfYXR0cl9ncm91cC5hdHRycykgewogCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGVycjsKIAl9CiAKLQlpOTE1LT5wbXUuYmFzZS5hdHRyX2dyb3Vwcwk9IGk5MTVfcG11X2F0dHJfZ3JvdXBzOwotCWk5MTUtPnBtdS5iYXNlLnRhc2tfY3R4X25yCT0gcGVyZl9pbnZhbGlkX2NvbnRleHQ7Ci0JaTkxNS0+cG11LmJhc2UuZXZlbnRfaW5pdAk9IGk5MTVfcG11X2V2ZW50X2luaXQ7Ci0JaTkxNS0+cG11LmJhc2UuYWRkCQk9IGk5MTVfcG11X2V2ZW50X2FkZDsKLQlpOTE1LT5wbXUuYmFzZS5kZWwJCT0gaTkxNV9wbXVfZXZlbnRfZGVsOwotCWk5MTUtPnBtdS5iYXNlLnN0YXJ0CQk9IGk5MTVfcG11X2V2ZW50X3N0YXJ0OwotCWk5MTUtPnBtdS5iYXNlLnN0b3AJCT0gaTkxNV9wbXVfZXZlbnRfc3RvcDsKLQlpOTE1LT5wbXUuYmFzZS5yZWFkCQk9IGk5MTVfcG11X2V2ZW50X3JlYWQ7Ci0JaTkxNS0+cG11LmJhc2UuZXZlbnRfaWR4CT0gaTkxNV9wbXVfZXZlbnRfZXZlbnRfaWR4OworCXBtdS0+YmFzZS5hdHRyX2dyb3Vwcwk9IGk5MTVfcG11X2F0dHJfZ3JvdXBzOworCXBtdS0+YmFzZS50YXNrX2N0eF9ucgk9IHBlcmZfaW52YWxpZF9jb250ZXh0OworCXBtdS0+YmFzZS5ldmVudF9pbml0CT0gaTkxNV9wbXVfZXZlbnRfaW5pdDsKKwlwbXUtPmJhc2UuYWRkCQk9IGk5MTVfcG11X2V2ZW50X2FkZDsKKwlwbXUtPmJhc2UuZGVsCQk9IGk5MTVfcG11X2V2ZW50X2RlbDsKKwlwbXUtPmJhc2Uuc3RhcnQJCT0gaTkxNV9wbXVfZXZlbnRfc3RhcnQ7CisJcG11LT5iYXNlLnN0b3AJCT0gaTkxNV9wbXVfZXZlbnRfc3RvcDsKKwlwbXUtPmJhc2UucmVhZAkJPSBpOTE1X3BtdV9ldmVudF9yZWFkOworCXBtdS0+YmFzZS5ldmVudF9pZHgJPSBpOTE1X3BtdV9ldmVudF9ldmVudF9pZHg7CiAKLQlzcGluX2xvY2tfaW5pdCgmaTkxNS0+cG11LmxvY2spOwotCWhydGltZXJfaW5pdCgmaTkxNS0+cG11LnRpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOwotCWk5MTUtPnBtdS50aW1lci5mdW5jdGlvbiA9IGk5MTVfc2FtcGxlOworCXNwaW5fbG9ja19pbml0KCZwbXUtPmxvY2spOworCWhydGltZXJfaW5pdCgmcG11LT50aW1lciwgQ0xPQ0tfTU9OT1RPTklDLCBIUlRJTUVSX01PREVfUkVMKTsKKwlwbXUtPnRpbWVyLmZ1bmN0aW9uID0gaTkxNV9zYW1wbGU7CiAKLQlyZXQgPSBwZXJmX3BtdV9yZWdpc3RlcigmaTkxNS0+cG11LmJhc2UsICJpOTE1IiwgLTEpOworCXJldCA9IHBlcmZfcG11X3JlZ2lzdGVyKCZwbXUtPmJhc2UsICJpOTE1IiwgLTEpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyOwogCi0JcmV0ID0gaTkxNV9wbXVfcmVnaXN0ZXJfY3B1aHBfc3RhdGUoaTkxNSk7CisJcmV0ID0gaTkxNV9wbXVfcmVnaXN0ZXJfY3B1aHBfc3RhdGUocG11KTsKIAlpZiAocmV0KQogCQlnb3RvIGVycl91bnJlZzsKIAogCXJldHVybjsKIAogZXJyX3VucmVnOgotCXBlcmZfcG11X3VucmVnaXN0ZXIoJmk5MTUtPnBtdS5iYXNlKTsKKwlwZXJmX3BtdV91bnJlZ2lzdGVyKCZwbXUtPmJhc2UpOwogZXJyOgotCWk5MTUtPnBtdS5iYXNlLmV2ZW50X2luaXQgPSBOVUxMOwotCWZyZWVfZXZlbnRfYXR0cmlidXRlcyhpOTE1KTsKKwlwbXUtPmJhc2UuZXZlbnRfaW5pdCA9IE5VTEw7CisJZnJlZV9ldmVudF9hdHRyaWJ1dGVzKHBtdSk7CiAJRFJNX05PVEUoIkZhaWxlZCB0byByZWdpc3RlciBQTVUhIChlcnI9JWQpXG4iLCByZXQpOwogfQogCiB2b2lkIGk5MTVfcG11X3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0JaWYgKCFpOTE1LT5wbXUuYmFzZS5ldmVudF9pbml0KQorCXN0cnVjdCBpOTE1X3BtdSAqcG11ID0gJmk5MTUtPnBtdTsKKworCWlmICghcG11LT5iYXNlLmV2ZW50X2luaXQpCiAJCXJldHVybjsKIAotCVdBUk5fT04oaTkxNS0+cG11LmVuYWJsZSk7CisJV0FSTl9PTihwbXUtPmVuYWJsZSk7CiAKLQlocnRpbWVyX2NhbmNlbCgmaTkxNS0+cG11LnRpbWVyKTsKKwlocnRpbWVyX2NhbmNlbCgmcG11LT50aW1lcik7CiAKLQlpOTE1X3BtdV91bnJlZ2lzdGVyX2NwdWhwX3N0YXRlKGk5MTUpOworCWk5MTVfcG11X3VucmVnaXN0ZXJfY3B1aHBfc3RhdGUocG11KTsKIAotCXBlcmZfcG11X3VucmVnaXN0ZXIoJmk5MTUtPnBtdS5iYXNlKTsKLQlpOTE1LT5wbXUuYmFzZS5ldmVudF9pbml0ID0gTlVMTDsKLQlmcmVlX2V2ZW50X2F0dHJpYnV0ZXMoaTkxNSk7CisJcGVyZl9wbXVfdW5yZWdpc3RlcigmcG11LT5iYXNlKTsKKwlwbXUtPmJhc2UuZXZlbnRfaW5pdCA9IE5VTEw7CisJZnJlZV9ldmVudF9hdHRyaWJ1dGVzKHBtdSk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ByaW9saXN0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ByaW9saXN0X3R5cGVzLmgKaW5kZXggNDk3MDlkZS4uMjEwMzdhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wcmlvbGlzdF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHJpb2xpc3RfdHlwZXMuaApAQCAtMTYsOCArMTYsNiBAQCBlbnVtIHsKIAlJOTE1X1BSSU9SSVRZX01JTiA9IEk5MTVfQ09OVEVYVF9NSU5fVVNFUl9QUklPUklUWSAtIDEsCiAJSTkxNV9QUklPUklUWV9OT1JNQUwgPSBJOTE1X0NPTlRFWFRfREVGQVVMVF9QUklPUklUWSwKIAlJOTE1X1BSSU9SSVRZX01BWCA9IEk5MTVfQ09OVEVYVF9NQVhfVVNFUl9QUklPUklUWSArIDEsCi0KLQlJOTE1X1BSSU9SSVRZX0lOVkFMSUQgPSBJTlRfTUlOCiB9OwogCiAjZGVmaW5lIEk5MTVfVVNFUl9QUklPUklUWV9TSElGVCAyCkBAIC0yOSw2ICsyNywxOSBAQCBlbnVtIHsKICNkZWZpbmUgSTkxNV9QUklPUklUWV9XQUlUCQkoKHU4KUJJVCgwKSkKICNkZWZpbmUgSTkxNV9QUklPUklUWV9OT1NFTUFQSE9SRQkoKHU4KUJJVCgxKSkKIAorLyogU21hbGxlc3QgcHJpb3JpdHkgdmFsdWUgdGhhdCBjYW5ub3QgYmUgYnVtcGVkLiAqLworI2RlZmluZSBJOTE1X1BSSU9SSVRZX0lOVkFMSUQgKElOVF9NSU4gfCAodTgpSTkxNV9QUklPUklUWV9NQVNLKQorCisvKgorICogUmVxdWVzdHMgY29udGFpbmluZyBwZXJmb3JtYW5jZSBxdWVyaWVzIG11c3Qgbm90IGJlIHByZWVtcHRlZCBieQorICogYW5vdGhlciBjb250ZXh0LiBUaGV5IGdldCBzY2hlZHVsZWQgd2l0aCB0aGVpciBkZWZhdWx0IHByaW9yaXR5IGFuZAorICogb25jZSB0aGV5IHJlYWNoIHRoZSBleGVjbGlzdCBwb3J0cyB3ZSBlbnN1cmUgdGhhdCB0aGV5IHN0aWNrIG9uIHRoZQorICogSFcgdW50aWwgZmluaXNoZWQgYnkgcHJldGVuZGluZyB0aGF0IHRoZXkgaGF2ZSBtYXhpbXVtIHByaW9yaXR5LAorICogaS5lLiBub3RoaW5nIGNhbiBoYXZlIGhpZ2hlciBwcmlvcml0eSBhbmQgZm9yY2UgdXMgdG8gdXN1cnAgdGhlCisgKiBhY3RpdmUgcmVxdWVzdC4KKyAqLworI2RlZmluZSBJOTE1X1BSSU9SSVRZX1VOUFJFRU1QVEFCTEUgSU5UX01BWAorCiAjZGVmaW5lIF9fTk9fUFJFRU1QVElPTiAoSTkxNV9QUklPUklUWV9XQUlUKQogCiBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3B2aW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaAppbmRleCA5NjllNTE0Li42ODNlOTdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3B2aW5mby5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZvLmgKQEAgLTI0LDYgKzI0LDggQEAKICNpZm5kZWYgX0k5MTVfUFZJTkZPX0hfCiAjZGVmaW5lIF9JOTE1X1BWSU5GT19IXwogCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKwogLyogVGhlIE1NSU8gb2Zmc2V0IG9mIHRoZSBzaGFyZWQgaW5mbyBiZXR3ZWVuIGd1ZXN0IGFuZCBob3N0IGVtdWxhdG9yICovCiAjZGVmaW5lIFZHVF9QVklORk9fUEFHRQkweDc4MDAwCiAjZGVmaW5lIFZHVF9QVklORk9fU0laRQkweDEwMDAKQEAgLTExMCw4ICsxMTIsOSBAQCBzdHJ1Y3Qgdmd0X2lmIHsKIAl1MzIgIHJzdjdbMHgyMDAgLSAyNF07ICAgIC8qIHBhZCB0byBvbmUgcGFnZSAqLwogfSBfX3BhY2tlZDsKIAotI2RlZmluZSB2Z3RpZl9yZWcoeCkgXAotCV9NTUlPKChWR1RfUFZJTkZPX1BBR0UgKyBvZmZzZXRvZihzdHJ1Y3Qgdmd0X2lmLCB4KSkpCisjZGVmaW5lIHZndGlmX29mZnNldCh4KSAob2Zmc2V0b2Yoc3RydWN0IHZndF9pZiwgeCkpCisKKyNkZWZpbmUgdmd0aWZfcmVnKHgpIF9NTUlPKFZHVF9QVklORk9fUEFHRSArIHZndGlmX29mZnNldCh4KSkKIAogLyogdkdQVSBkaXNwbGF5IHN0YXR1cyB0byBiZSB1c2VkIGJ5IHRoZSBob3N0IHNpZGUgKi8KICNkZWZpbmUgVkdUX0RSVl9ESVNQTEFZX05PVF9SRUFEWSAwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKaW5kZXggN2I3MDE2MS4uYWQ5MjQwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYwpAQCAtMTA1LDcgKzEwNSw2IEBAIHF1ZXJ5X2VuZ2luZV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9lbmdpbmVfaW5mbyBxdWVyeTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZW5naW5lX2luZm8gaW5mbyA9IHsgfTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJaW50IGxlbiwgcmV0OwogCiAJaWYgKHF1ZXJ5X2l0ZW0tPmZsYWdzKQpAQCAtMTI1LDkgKzEyNCw5IEBAIHF1ZXJ5X2VuZ2luZV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCiAJaW5mb19wdHIgPSAmcXVlcnlfcHRyLT5lbmdpbmVzWzBdOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwlmb3JfZWFjaF91YWJpX2VuZ2luZShlbmdpbmUsIGk5MTUpIHsKIAkJaW5mby5lbmdpbmUuZW5naW5lX2NsYXNzID0gZW5naW5lLT51YWJpX2NsYXNzOwotCQlpbmZvLmVuZ2luZS5lbmdpbmVfaW5zdGFuY2UgPSBlbmdpbmUtPmluc3RhbmNlOworCQlpbmZvLmVuZ2luZS5lbmdpbmVfaW5zdGFuY2UgPSBlbmdpbmUtPnVhYmlfaW5zdGFuY2U7CiAJCWluZm8uY2FwYWJpbGl0aWVzID0gZW5naW5lLT51YWJpX2NhcGFiaWxpdGllczsKIAogCQlpZiAoX19jb3B5X3RvX3VzZXIoaW5mb19wdHIsICZpbmZvLCBzaXplb2YoaW5mbykpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggZDY0ODNiNS4uMmFiZDE5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC0yNDIsNiArMjQyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfbW1pb19yZWdfdmFsaWQoaTkxNV9yZWdfdCByZWcpCiAjZGVmaW5lIF9NTUlPX1BJUEUzKHBpcGUsIGEsIGIsIGMpCV9NTUlPKF9QSUNLKHBpcGUsIGEsIGIsIGMpKQogI2RlZmluZSBfTU1JT19QT1JUMyhwaXBlLCBhLCBiLCBjKQlfTU1JTyhfUElDSyhwaXBlLCBhLCBiLCBjKSkKICNkZWZpbmUgX01NSU9fUEhZMyhwaHksIGEsIGIsIGMpCV9NTUlPKF9QSFkzKHBoeSwgYSwgYiwgYykpCisjZGVmaW5lIF9NTUlPX1BMTDMocGxsLCBhLCBiLCBjKQlfTU1JTyhfUElDSyhwbGwsIGEsIGIsIGMpKQogCiAvKgogICogRGV2aWNlIGluZm8gb2Zmc2V0IGFycmF5IGJhc2VkIGhlbHBlcnMgZm9yIGdyb3VwcyBvZiByZWdpc3RlcnMgd2l0aCB1bmV2ZW5seQpAQCAtMjUwLDkgKzI1MSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9tbWlvX3JlZ192YWxpZChpOTE1X3JlZ190IHJlZykKICNkZWZpbmUgX01NSU9fUElQRTIocGlwZSwgcmVnKQkJX01NSU8oSU5URUxfSU5GTyhkZXZfcHJpdiktPnBpcGVfb2Zmc2V0c1twaXBlXSAtIFwKIAkJCQkJICAgICAgSU5URUxfSU5GTyhkZXZfcHJpdiktPnBpcGVfb2Zmc2V0c1tQSVBFX0FdICsgKHJlZykgKyBcCiAJCQkJCSAgICAgIERJU1BMQVlfTU1JT19CQVNFKGRldl9wcml2KSkKLSNkZWZpbmUgX01NSU9fVFJBTlMyKHBpcGUsIHJlZykJCV9NTUlPKElOVEVMX0lORk8oZGV2X3ByaXYpLT50cmFuc19vZmZzZXRzWyhwaXBlKV0gLSBcCi0JCQkJCSAgICAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT50cmFuc19vZmZzZXRzW1RSQU5TQ09ERVJfQV0gKyAocmVnKSArIFwKLQkJCQkJICAgICAgRElTUExBWV9NTUlPX0JBU0UoZGV2X3ByaXYpKQorI2RlZmluZSBfVFJBTlMyKHRyYW4sIHJlZykJCShJTlRFTF9JTkZPKGRldl9wcml2KS0+dHJhbnNfb2Zmc2V0c1sodHJhbildIC0gXAorCQkJCQkgSU5URUxfSU5GTyhkZXZfcHJpdiktPnRyYW5zX29mZnNldHNbVFJBTlNDT0RFUl9BXSArIChyZWcpICsgXAorCQkJCQkgRElTUExBWV9NTUlPX0JBU0UoZGV2X3ByaXYpKQorI2RlZmluZSBfTU1JT19UUkFOUzIodHJhbiwgcmVnKQkJX01NSU8oX1RSQU5TMih0cmFuLCByZWcpKQogI2RlZmluZSBfQ1VSU09SMihwaXBlLCByZWcpCQlfTU1JTyhJTlRFTF9JTkZPKGRldl9wcml2KS0+Y3Vyc29yX29mZnNldHNbKHBpcGUpXSAtIFwKIAkJCQkJICAgICAgSU5URUxfSU5GTyhkZXZfcHJpdiktPmN1cnNvcl9vZmZzZXRzW1BJUEVfQV0gKyAocmVnKSArIFwKIAkJCQkJICAgICAgRElTUExBWV9NTUlPX0JBU0UoZGV2X3ByaXYpKQpAQCAtMjcwLDMwICsyNzIsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9tbWlvX3JlZ192YWxpZChpOTE1X3JlZ190IHJlZykKICNkZWZpbmUgX01BU0tFRF9CSVRfRU5BQkxFKGEpCSh7IHR5cGVvZihhKSBfYSA9IChhKTsgX01BU0tFRF9GSUVMRChfYSwgX2EpOyB9KQogI2RlZmluZSBfTUFTS0VEX0JJVF9ESVNBQkxFKGEpCShfTUFTS0VEX0ZJRUxEKChhKSwgMCkpCiAKLS8qIEVuZ2luZSBJRCAqLwotCi0jZGVmaW5lIFJDUzBfSFcJCTAKLSNkZWZpbmUgVkNTMF9IVwkJMQotI2RlZmluZSBCQ1MwX0hXCQkyCi0jZGVmaW5lIFZFQ1MwX0hXCTMKLSNkZWZpbmUgVkNTMV9IVwkJNAotI2RlZmluZSBWQ1MyX0hXCQk2Ci0jZGVmaW5lIFZDUzNfSFcJCTcKLSNkZWZpbmUgVkVDUzFfSFcJMTIKLQotLyogRW5naW5lIGNsYXNzICovCi0KLSNkZWZpbmUgUkVOREVSX0NMQVNTCQkwCi0jZGVmaW5lIFZJREVPX0RFQ09ERV9DTEFTUwkxCi0jZGVmaW5lIFZJREVPX0VOSEFOQ0VNRU5UX0NMQVNTCTIKLSNkZWZpbmUgQ09QWV9FTkdJTkVfQ0xBU1MJMwotI2RlZmluZSBPVEhFUl9DTEFTUwkJNAotI2RlZmluZSBNQVhfRU5HSU5FX0NMQVNTCTQKLQotI2RlZmluZSBPVEhFUl9HVUNfSU5TVEFOQ0UJMAotI2RlZmluZSBPVEhFUl9HVFBNX0lOU1RBTkNFCTEKLSNkZWZpbmUgTUFYX0VOR0lORV9JTlNUQU5DRSAgICAzCi0KIC8qIFBDSSBjb25maWcgc3BhY2UgKi8KIAogI2RlZmluZSBNQ0hCQVJfSTkxNSAweDQ0CkBAIC0xMTYxLDI3ICsxMTM5LDYgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfbW1pb19yZWdfdmFsaWQoaTkxNV9yZWdfdCByZWcpCiAjZGVmaW5lIFBVTklUX1JFR19JU1BTU1BNMAkJCTB4MzkKICNkZWZpbmUgUFVOSVRfUkVHX0lTUFNTUE0xCQkJMHgzYQogCi0vKgotICogaTkxNV9wb3dlcl93ZWxsX2lkOgotICoKLSAqIElEcyB1c2VkIHRvIGxvb2sgdXAgcG93ZXIgd2VsbHMuIFBvd2VyIHdlbGxzIGFjY2Vzc2VkIGRpcmVjdGx5IGJ5cGFzc2luZwotICogdGhlIHBvd2VyIGRvbWFpbnMgZnJhbWV3b3JrIG11c3QgYmUgYXNzaWduZWQgYSB1bmlxdWUgSUQuIFRoZSByZXN0IG9mIHBvd2VyCi0gKiB3ZWxscyBtdXN0IGJlIGFzc2lnbmVkIERJU1BfUFdfSURfTk9ORS4KLSAqLwotZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewotCURJU1BfUFdfSURfTk9ORSwKLQotCVZMVl9ESVNQX1BXX0RJU1AyRCwKLQlCWFRfRElTUF9QV19EUElPX0NNTl9BLAotCVZMVl9ESVNQX1BXX0RQSU9fQ01OX0JDLAotCUdMS19ESVNQX1BXX0RQSU9fQ01OX0MsCi0JQ0hWX0RJU1BfUFdfRFBJT19DTU5fRCwKLQlIU1dfRElTUF9QV19HTE9CQUwsCi0JU0tMX0RJU1BfUFdfTUlTQ19JTywKLQlTS0xfRElTUF9QV18xLAotCVNLTF9ESVNQX1BXXzIsCi19OwotCiAjZGVmaW5lIFBVTklUX1JFR19QV1JHVF9DVFJMCQkJMHg2MAogI2RlZmluZSBQVU5JVF9SRUdfUFdSR1RfU1RBVFVTCQkJMHg2MQogI2RlZmluZSAgIFBVTklUX1BXUkdUX01BU0socHdfaWR4KQkJKDMgPDwgKChwd19pZHgpICogMikpCkBAIC0xNzkzLDE5ICsxNzUwLDIxIEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKICAqLwogI2RlZmluZSBfSUNMX0NPTUJPUEhZX0EJCQkweDE2MjAwMAogI2RlZmluZSBfSUNMX0NPTUJPUEhZX0IJCQkweDZDMDAwCi0jZGVmaW5lIF9JQ0xfQ09NQk9QSFkocG9ydCkJCV9QSUNLKHBvcnQsIF9JQ0xfQ09NQk9QSFlfQSwgXAotCQkJCQkgICAgICBfSUNMX0NPTUJPUEhZX0IpCisjZGVmaW5lIF9FSExfQ09NQk9QSFlfQwkJCTB4MTYwMDAwCisjZGVmaW5lIF9JQ0xfQ09NQk9QSFkocGh5KQkJX1BJQ0socGh5LCBfSUNMX0NPTUJPUEhZX0EsIFwKKwkJCQkJICAgICAgX0lDTF9DT01CT1BIWV9CLCBcCisJCQkJCSAgICAgIF9FSExfQ09NQk9QSFlfQykKIAogLyogQ05ML0lDTCBQb3J0IENMX0RXIHJlZ2lzdGVycyAqLwotI2RlZmluZSBfSUNMX1BPUlRfQ0xfRFcoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAorI2RlZmluZSBfSUNMX1BPUlRfQ0xfRFcoZHcsIHBoeSkJKF9JQ0xfQ09NQk9QSFkocGh5KSArIFwKIAkJCQkJIDQgKiAoZHcpKQogCiAjZGVmaW5lIENOTF9QT1JUX0NMMUNNX0RXNQkJX01NSU8oMHgxNjIwMTQpCi0jZGVmaW5lIElDTF9QT1JUX0NMX0RXNShwb3J0KQkJX01NSU8oX0lDTF9QT1JUX0NMX0RXKDUsIHBvcnQpKQorI2RlZmluZSBJQ0xfUE9SVF9DTF9EVzUocGh5KQkJX01NSU8oX0lDTF9QT1JUX0NMX0RXKDUsIHBoeSkpCiAjZGVmaW5lICAgQ0xfUE9XRVJfRE9XTl9FTkFCTEUJCSgxIDw8IDQpCiAjZGVmaW5lICAgU1VTX0NMT0NLX0NPTkZJRwkJKDMgPDwgMCkKIAotI2RlZmluZSBJQ0xfUE9SVF9DTF9EVzEwKHBvcnQpCQlfTU1JTyhfSUNMX1BPUlRfQ0xfRFcoMTAsIHBvcnQpKQorI2RlZmluZSBJQ0xfUE9SVF9DTF9EVzEwKHBoeSkJCV9NTUlPKF9JQ0xfUE9SVF9DTF9EVygxMCwgcGh5KSkKICNkZWZpbmUgIFBHX1NFUV9ERUxBWV9PVkVSUklERV9NQVNLCSgzIDw8IDI1KQogI2RlZmluZSAgUEdfU0VRX0RFTEFZX09WRVJSSURFX1NISUZUCTI1CiAjZGVmaW5lICBQR19TRVFfREVMQVlfT1ZFUlJJREVfRU5BQkxFCSgxIDw8IDI0KQpAQCAtMTgyMCwyMyArMTc3OSwyMyBAQCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7CiAjZGVmaW5lICBQV1JfRE9XTl9MTl9NQVNLCQkoMHhmIDw8IDQpCiAjZGVmaW5lICBQV1JfRE9XTl9MTl9TSElGVAkJNAogCi0jZGVmaW5lIElDTF9QT1JUX0NMX0RXMTIocG9ydCkJCV9NTUlPKF9JQ0xfUE9SVF9DTF9EVygxMiwgcG9ydCkpCisjZGVmaW5lIElDTF9QT1JUX0NMX0RXMTIocGh5KQkJX01NSU8oX0lDTF9QT1JUX0NMX0RXKDEyLCBwaHkpKQogI2RlZmluZSAgIElDTF9MQU5FX0VOQUJMRV9BVVgJCSgxIDw8IDApCiAKIC8qIENOTC9JQ0wgUG9ydCBDT01QX0RXIHJlZ2lzdGVycyAqLwogI2RlZmluZSBfSUNMX1BPUlRfQ09NUAkJCTB4MTAwCi0jZGVmaW5lIF9JQ0xfUE9SVF9DT01QX0RXKGR3LCBwb3J0KQkoX0lDTF9DT01CT1BIWShwb3J0KSArIFwKKyNkZWZpbmUgX0lDTF9QT1JUX0NPTVBfRFcoZHcsIHBoeSkJKF9JQ0xfQ09NQk9QSFkocGh5KSArIFwKIAkJCQkJIF9JQ0xfUE9SVF9DT01QICsgNCAqIChkdykpCiAKICNkZWZpbmUgQ05MX1BPUlRfQ09NUF9EVzAJCV9NTUlPKDB4MTYyMTAwKQotI2RlZmluZSBJQ0xfUE9SVF9DT01QX0RXMChwb3J0KQkJX01NSU8oX0lDTF9QT1JUX0NPTVBfRFcoMCwgcG9ydCkpCisjZGVmaW5lIElDTF9QT1JUX0NPTVBfRFcwKHBoeSkJCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDAsIHBoeSkpCiAjZGVmaW5lICAgQ09NUF9JTklUCQkJKDEgPDwgMzEpCiAKICNkZWZpbmUgQ05MX1BPUlRfQ09NUF9EVzEJCV9NTUlPKDB4MTYyMTA0KQotI2RlZmluZSBJQ0xfUE9SVF9DT01QX0RXMShwb3J0KQkJX01NSU8oX0lDTF9QT1JUX0NPTVBfRFcoMSwgcG9ydCkpCisjZGVmaW5lIElDTF9QT1JUX0NPTVBfRFcxKHBoeSkJCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDEsIHBoeSkpCiAKICNkZWZpbmUgQ05MX1BPUlRfQ09NUF9EVzMJCV9NTUlPKDB4MTYyMTBjKQotI2RlZmluZSBJQ0xfUE9SVF9DT01QX0RXMyhwb3J0KQkJX01NSU8oX0lDTF9QT1JUX0NPTVBfRFcoMywgcG9ydCkpCisjZGVmaW5lIElDTF9QT1JUX0NPTVBfRFczKHBoeSkJCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDMsIHBoeSkpCiAjZGVmaW5lICAgUFJPQ0VTU19JTkZPX0RPVF8wCQkoMCA8PCAyNikKICNkZWZpbmUgICBQUk9DRVNTX0lORk9fRE9UXzEJCSgxIDw8IDI2KQogI2RlZmluZSAgIFBST0NFU1NfSU5GT19ET1RfNAkJKDIgPDwgMjYpCkBAIC0xODQ4LDE0ICsxODA3LDE0IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKICNkZWZpbmUgICBWT0xUQUdFX0lORk9fTUFTSwkJKDMgPDwgMjQpCiAjZGVmaW5lICAgVk9MVEFHRV9JTkZPX1NISUZUCQkyNAogCi0jZGVmaW5lIElDTF9QT1JUX0NPTVBfRFc4KHBvcnQpCQlfTU1JTyhfSUNMX1BPUlRfQ09NUF9EVyg4LCBwb3J0KSkKKyNkZWZpbmUgSUNMX1BPUlRfQ09NUF9EVzgocGh5KQkJX01NSU8oX0lDTF9QT1JUX0NPTVBfRFcoOCwgcGh5KSkKICNkZWZpbmUgICBJUkVGR0VOCQkJKDEgPDwgMjQpCiAKICNkZWZpbmUgQ05MX1BPUlRfQ09NUF9EVzkJCV9NTUlPKDB4MTYyMTI0KQotI2RlZmluZSBJQ0xfUE9SVF9DT01QX0RXOShwb3J0KQkJX01NSU8oX0lDTF9QT1JUX0NPTVBfRFcoOSwgcG9ydCkpCisjZGVmaW5lIElDTF9QT1JUX0NPTVBfRFc5KHBoeSkJCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDksIHBoeSkpCiAKICNkZWZpbmUgQ05MX1BPUlRfQ09NUF9EVzEwCQlfTU1JTygweDE2MjEyOCkKLSNkZWZpbmUgSUNMX1BPUlRfQ09NUF9EVzEwKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDEwLCBwb3J0KSkKKyNkZWZpbmUgSUNMX1BPUlRfQ09NUF9EVzEwKHBoeSkJCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDEwLCBwaHkpKQogCiAvKiBDTkwvSUNMIFBvcnQgUENTIHJlZ2lzdGVycyAqLwogI2RlZmluZSBfQ05MX1BPUlRfUENTX0RXMV9HUlBfQUUJMHgxNjIzMDQKQEAgLTE4NjgsMTQgKzE4MjcsMTQgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewogI2RlZmluZSBfQ05MX1BPUlRfUENTX0RXMV9MTjBfQwkJMHgxNjJDMDQKICNkZWZpbmUgX0NOTF9QT1JUX1BDU19EVzFfTE4wX0QJCTB4MTYyRTA0CiAjZGVmaW5lIF9DTkxfUE9SVF9QQ1NfRFcxX0xOMF9GCQkweDE2MjgwNAotI2RlZmluZSBDTkxfUE9SVF9QQ1NfRFcxX0dSUChwb3J0KQlfTU1JTyhfUElDSyhwb3J0LCBcCisjZGVmaW5lIENOTF9QT1JUX1BDU19EVzFfR1JQKHBoeSkJX01NSU8oX1BJQ0socGh5LCBcCiAJCQkJCQkgICAgX0NOTF9QT1JUX1BDU19EVzFfR1JQX0FFLCBcCiAJCQkJCQkgICAgX0NOTF9QT1JUX1BDU19EVzFfR1JQX0IsIFwKIAkJCQkJCSAgICBfQ05MX1BPUlRfUENTX0RXMV9HUlBfQywgXAogCQkJCQkJICAgIF9DTkxfUE9SVF9QQ1NfRFcxX0dSUF9ELCBcCiAJCQkJCQkgICAgX0NOTF9QT1JUX1BDU19EVzFfR1JQX0FFLCBcCiAJCQkJCQkgICAgX0NOTF9QT1JUX1BDU19EVzFfR1JQX0YpKQotI2RlZmluZSBDTkxfUE9SVF9QQ1NfRFcxX0xOMChwb3J0KQlfTU1JTyhfUElDSyhwb3J0LCBcCisjZGVmaW5lIENOTF9QT1JUX1BDU19EVzFfTE4wKHBoeSkJX01NSU8oX1BJQ0socGh5LCBcCiAJCQkJCQkgICAgX0NOTF9QT1JUX1BDU19EVzFfTE4wX0FFLCBcCiAJCQkJCQkgICAgX0NOTF9QT1JUX1BDU19EVzFfTE4wX0IsIFwKIAkJCQkJCSAgICBfQ05MX1BPUlRfUENTX0RXMV9MTjBfQywgXApAQCAtMTg4NiwxNiArMTg0NSwxOCBAQCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7CiAjZGVmaW5lIF9JQ0xfUE9SVF9QQ1NfQVVYCQkweDMwMAogI2RlZmluZSBfSUNMX1BPUlRfUENTX0dSUAkJMHg2MDAKICNkZWZpbmUgX0lDTF9QT1JUX1BDU19MTihsbikJCSgweDgwMCArIChsbikgKiAweDEwMCkKLSNkZWZpbmUgX0lDTF9QT1JUX1BDU19EV19BVVgoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAorI2RlZmluZSBfSUNMX1BPUlRfUENTX0RXX0FVWChkdywgcGh5KQkoX0lDTF9DT01CT1BIWShwaHkpICsgXAogCQkJCQkgX0lDTF9QT1JUX1BDU19BVVggKyA0ICogKGR3KSkKLSNkZWZpbmUgX0lDTF9QT1JUX1BDU19EV19HUlAoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAorI2RlZmluZSBfSUNMX1BPUlRfUENTX0RXX0dSUChkdywgcGh5KQkoX0lDTF9DT01CT1BIWShwaHkpICsgXAogCQkJCQkgX0lDTF9QT1JUX1BDU19HUlAgKyA0ICogKGR3KSkKLSNkZWZpbmUgX0lDTF9QT1JUX1BDU19EV19MTihkdywgbG4sIHBvcnQpIChfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAorI2RlZmluZSBfSUNMX1BPUlRfUENTX0RXX0xOKGR3LCBsbiwgcGh5KSAoX0lDTF9DT01CT1BIWShwaHkpICsgXAogCQkJCQkgIF9JQ0xfUE9SVF9QQ1NfTE4obG4pICsgNCAqIChkdykpCi0jZGVmaW5lIElDTF9QT1JUX1BDU19EVzFfQVVYKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9QQ1NfRFdfQVVYKDEsIHBvcnQpKQotI2RlZmluZSBJQ0xfUE9SVF9QQ1NfRFcxX0dSUChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfUENTX0RXX0dSUCgxLCBwb3J0KSkKLSNkZWZpbmUgSUNMX1BPUlRfUENTX0RXMV9MTjAocG9ydCkJX01NSU8oX0lDTF9QT1JUX1BDU19EV19MTigxLCAwLCBwb3J0KSkKKyNkZWZpbmUgSUNMX1BPUlRfUENTX0RXMV9BVVgocGh5KQlfTU1JTyhfSUNMX1BPUlRfUENTX0RXX0FVWCgxLCBwaHkpKQorI2RlZmluZSBJQ0xfUE9SVF9QQ1NfRFcxX0dSUChwaHkpCV9NTUlPKF9JQ0xfUE9SVF9QQ1NfRFdfR1JQKDEsIHBoeSkpCisjZGVmaW5lIElDTF9QT1JUX1BDU19EVzFfTE4wKHBoeSkJX01NSU8oX0lDTF9QT1JUX1BDU19EV19MTigxLCAwLCBwaHkpKQogI2RlZmluZSAgIENPTU1PTl9LRUVQRVJfRU4JCSgxIDw8IDI2KQorI2RlZmluZSAgIExBVEVOQ1lfT1BUSU1fTUFTSwkJKDB4MyA8PCAyKQorI2RlZmluZSAgIExBVEVOQ1lfT1BUSU1fVkFMKHgpCQkoKHgpIDw8IDIpCiAKIC8qIENOTC9JQ0wgUG9ydCBUWCByZWdpc3RlcnMgKi8KICNkZWZpbmUgX0NOTF9QT1JUX1RYX0FFX0dSUF9PRkZTRVQJCTB4MTYyMzQwCkBAIC0xOTI5LDE4ICsxODkwLDE4IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKICNkZWZpbmUgX0lDTF9QT1JUX1RYX0dSUAkJMHg2ODAKICNkZWZpbmUgX0lDTF9QT1JUX1RYX0xOKGxuKQkJKDB4ODgwICsgKGxuKSAqIDB4MTAwKQogCi0jZGVmaW5lIF9JQ0xfUE9SVF9UWF9EV19BVVgoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAorI2RlZmluZSBfSUNMX1BPUlRfVFhfRFdfQVVYKGR3LCBwaHkpCShfSUNMX0NPTUJPUEhZKHBoeSkgKyBcCiAJCQkJCSBfSUNMX1BPUlRfVFhfQVVYICsgNCAqIChkdykpCi0jZGVmaW5lIF9JQ0xfUE9SVF9UWF9EV19HUlAoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAorI2RlZmluZSBfSUNMX1BPUlRfVFhfRFdfR1JQKGR3LCBwaHkpCShfSUNMX0NPTUJPUEhZKHBoeSkgKyBcCiAJCQkJCSBfSUNMX1BPUlRfVFhfR1JQICsgNCAqIChkdykpCi0jZGVmaW5lIF9JQ0xfUE9SVF9UWF9EV19MTihkdywgbG4sIHBvcnQpIChfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAorI2RlZmluZSBfSUNMX1BPUlRfVFhfRFdfTE4oZHcsIGxuLCBwaHkpIChfSUNMX0NPTUJPUEhZKHBoeSkgKyBcCiAJCQkJCSAgX0lDTF9QT1JUX1RYX0xOKGxuKSArIDQgKiAoZHcpKQogCiAjZGVmaW5lIENOTF9QT1JUX1RYX0RXMl9HUlAocG9ydCkJX01NSU8oX0NOTF9QT1JUX1RYX0RXX0dSUCgyLCBwb3J0KSkKICNkZWZpbmUgQ05MX1BPUlRfVFhfRFcyX0xOMChwb3J0KQlfTU1JTyhfQ05MX1BPUlRfVFhfRFdfTE4wKDIsIHBvcnQpKQotI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzJfQVVYKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19BVVgoMiwgcG9ydCkpCi0jZGVmaW5lIElDTF9QT1JUX1RYX0RXMl9HUlAocG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0dSUCgyLCBwb3J0KSkKLSNkZWZpbmUgSUNMX1BPUlRfVFhfRFcyX0xOMChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfTE4oMiwgMCwgcG9ydCkpCisjZGVmaW5lIElDTF9QT1JUX1RYX0RXMl9BVVgocGh5KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfQVVYKDIsIHBoeSkpCisjZGVmaW5lIElDTF9QT1JUX1RYX0RXMl9HUlAocGh5KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfR1JQKDIsIHBoeSkpCisjZGVmaW5lIElDTF9QT1JUX1RYX0RXMl9MTjAocGh5KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfTE4oMiwgMCwgcGh5KSkKICNkZWZpbmUgICBTV0lOR19TRUxfVVBQRVIoeCkJCSgoKHgpID4+IDMpIDw8IDE1KQogI2RlZmluZSAgIFNXSU5HX1NFTF9VUFBFUl9NQVNLCQkoMSA8PCAxNSkKICNkZWZpbmUgICBTV0lOR19TRUxfTE9XRVIoeCkJCSgoKHgpICYgMHg3KSA8PCAxMSkKQEAgLTE5NTcsMTAgKzE5MTgsMTAgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewogI2RlZmluZSBDTkxfUE9SVF9UWF9EVzRfTE4obG4sIHBvcnQpICAgX01NSU8oX0NOTF9QT1JUX1RYX0RXX0xOMCg0LCAocG9ydCkpICsgXAogCQkJCQkgICAoKGxuKSAqIChfQ05MX1BPUlRfVFhfRFc0X0xOMV9BRSAtIFwKIAkJCQkJCSAgICBfQ05MX1BPUlRfVFhfRFc0X0xOMF9BRSkpKQotI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzRfQVVYKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19BVVgoNCwgcG9ydCkpCi0jZGVmaW5lIElDTF9QT1JUX1RYX0RXNF9HUlAocG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0dSUCg0LCBwb3J0KSkKLSNkZWZpbmUgSUNMX1BPUlRfVFhfRFc0X0xOMChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfTE4oNCwgMCwgcG9ydCkpCi0jZGVmaW5lIElDTF9QT1JUX1RYX0RXNF9MTihsbiwgcG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0xOKDQsIGxuLCBwb3J0KSkKKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc0X0FVWChwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19BVVgoNCwgcGh5KSkKKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc0X0dSUChwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19HUlAoNCwgcGh5KSkKKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc0X0xOMChwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19MTig0LCAwLCBwaHkpKQorI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzRfTE4obG4sIHBoeSkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0xOKDQsIGxuLCBwaHkpKQogI2RlZmluZSAgIExPQURHRU5fU0VMRUNUCQkoMSA8PCAzMSkKICNkZWZpbmUgICBQT1NUX0NVUlNPUl8xKHgpCQkoKHgpIDw8IDEyKQogI2RlZmluZSAgIFBPU1RfQ1VSU09SXzFfTUFTSwkJKDB4M0YgPDwgMTIpCkBAIC0xOTcxLDkgKzE5MzIsOSBAQCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7CiAKICNkZWZpbmUgQ05MX1BPUlRfVFhfRFc1X0dSUChwb3J0KQlfTU1JTyhfQ05MX1BPUlRfVFhfRFdfR1JQKDUsIHBvcnQpKQogI2RlZmluZSBDTkxfUE9SVF9UWF9EVzVfTE4wKHBvcnQpCV9NTUlPKF9DTkxfUE9SVF9UWF9EV19MTjAoNSwgcG9ydCkpCi0jZGVmaW5lIElDTF9QT1JUX1RYX0RXNV9BVVgocG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0FVWCg1LCBwb3J0KSkKLSNkZWZpbmUgSUNMX1BPUlRfVFhfRFc1X0dSUChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfR1JQKDUsIHBvcnQpKQotI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzVfTE4wKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19MTig1LCAwLCBwb3J0KSkKKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc1X0FVWChwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19BVVgoNSwgcGh5KSkKKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc1X0dSUChwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19HUlAoNSwgcGh5KSkKKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc1X0xOMChwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19MTig1LCAwLCBwaHkpKQogI2RlZmluZSAgIFRYX1RSQUlOSU5HX0VOCQkoMSA8PCAzMSkKICNkZWZpbmUgICBUQVAyX0RJU0FCTEUJCQkoMSA8PCAzMCkKICNkZWZpbmUgICBUQVAzX0RJU0FCTEUJCQkoMSA8PCAyOSkKQEAgLTE5ODQsMTMgKzE5NDUsMTcgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewogCiAjZGVmaW5lIENOTF9QT1JUX1RYX0RXN19HUlAocG9ydCkJX01NSU8oX0NOTF9QT1JUX1RYX0RXX0dSUCg3LCAocG9ydCkpKQogI2RlZmluZSBDTkxfUE9SVF9UWF9EVzdfTE4wKHBvcnQpCV9NTUlPKF9DTkxfUE9SVF9UWF9EV19MTjAoNywgKHBvcnQpKSkKLSNkZWZpbmUgSUNMX1BPUlRfVFhfRFc3X0FVWChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfQVVYKDcsIHBvcnQpKQotI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzdfR1JQKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19HUlAoNywgcG9ydCkpCi0jZGVmaW5lIElDTF9QT1JUX1RYX0RXN19MTjAocG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0xOKDcsIDAsIHBvcnQpKQotI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzdfTE4obG4sIHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19MTig3LCBsbiwgcG9ydCkpCisjZGVmaW5lIElDTF9QT1JUX1RYX0RXN19BVVgocGh5KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfQVVYKDcsIHBoeSkpCisjZGVmaW5lIElDTF9QT1JUX1RYX0RXN19HUlAocGh5KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfR1JQKDcsIHBoeSkpCisjZGVmaW5lIElDTF9QT1JUX1RYX0RXN19MTjAocGh5KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfTE4oNywgMCwgcGh5KSkKKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc3X0xOKGxuLCBwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19MTig3LCBsbiwgcGh5KSkKICNkZWZpbmUgICBOX1NDQUxBUih4KQkJCSgoeCkgPDwgMjQpCiAjZGVmaW5lICAgTl9TQ0FMQVJfTUFTSwkJCSgweDdGIDw8IDI0KQogCisjZGVmaW5lIF9JQ0xfRFBIWV9DSEtOX1JFRwkJCTB4MTk0CisjZGVmaW5lIElDTF9EUEhZX0NIS04ocG9ydCkJCQlfTU1JTyhfSUNMX0NPTUJPUEhZKHBvcnQpICsgX0lDTF9EUEhZX0NIS05fUkVHKQorI2RlZmluZSAgIElDTF9EUEhZX0NIS05fQUZFX09WRVJfUFBJX1NUUkFQCVJFR19CSVQoNykKKwogI2RlZmluZSBNR19QSFlfUE9SVF9MTihsbiwgcG9ydCwgbG4wcDEsIGxuMHAyLCBsbjFwMSkgXAogCV9NTUlPKF9QT1JUKChwb3J0KSAtIFBPUlRfQywgbG4wcDEsIGxuMHAyKSArIChsbikgKiAoKGxuMXAxKSAtIChsbjBwMSkpKQogCkBAIC0yMTk1LDkgKzIxNjAsMTMgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewogI2RlZmluZSAgIERXNl9PTERPX0RZTl9QV1JfRE9XTl9FTgkoMSA8PCAyOCkKIAogI2RlZmluZSBGSUExX0JBU0UJCQkweDE2MzAwMAorI2RlZmluZSBGSUEyX0JBU0UJCQkweDE2RTAwMAorI2RlZmluZSBGSUEzX0JBU0UJCQkweDE2RjAwMAorI2RlZmluZSBfRklBKGZpYSkJCQlfUElDSygoZmlhKSwgRklBMV9CQVNFLCBGSUEyX0JBU0UsIEZJQTNfQkFTRSkKKyNkZWZpbmUgX01NSU9fRklBKGZpYSwgb2ZmKQkJX01NSU8oX0ZJQShmaWEpICsgKG9mZikpCiAKIC8qIElDTCBQSFkgREZMRVggcmVnaXN0ZXJzICovCi0jZGVmaW5lIFBPUlRfVFhfREZMRVhEUE1MRTEJCV9NTUlPKEZJQTFfQkFTRSArIDB4MDA4QzApCisjZGVmaW5lIFBPUlRfVFhfREZMRVhEUE1MRTEoZmlhKQlfTU1JT19GSUEoKGZpYSksICAweDAwOEMwKQogI2RlZmluZSAgIERGTEVYRFBNTEUxX0RQTUxFVENfTUFTSyh0Y19wb3J0KQkoMHhmIDw8ICg0ICogKHRjX3BvcnQpKSkKICNkZWZpbmUgICBERkxFWERQTUxFMV9EUE1MRVRDX01MMCh0Y19wb3J0KQkoMSA8PCAoNCAqICh0Y19wb3J0KSkpCiAjZGVmaW5lICAgREZMRVhEUE1MRTFfRFBNTEVUQ19NTDFfMCh0Y19wb3J0KQkoMyA8PCAoNCAqICh0Y19wb3J0KSkpCkBAIC0yNDc3LDYgKzI0NDYsNyBAQCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7CiAjZGVmaW5lIFJFTkRFUl9IV1NfUEdBX0dFTjcJX01NSU8oMHgwNDA4MCkKICNkZWZpbmUgUklOR19GQVVMVF9SRUcoZW5naW5lKQlfTU1JTygweDQwOTQgKyAweDEwMCAqIChlbmdpbmUpLT5od19pZCkKICNkZWZpbmUgR0VOOF9SSU5HX0ZBVUxUX1JFRwlfTU1JTygweDQwOTQpCisjZGVmaW5lIEdFTjEyX1JJTkdfRkFVTFRfUkVHCV9NTUlPKDB4Y2VjNCkKICNkZWZpbmUgICBHRU44X1JJTkdfRkFVTFRfRU5HSU5FX0lEKHgpCSgoKHgpID4+IDEyKSAmIDB4NykKICNkZWZpbmUgICBSSU5HX0ZBVUxUX0dUVFNFTF9NQVNLICgxIDw8IDExKQogI2RlZmluZSAgIFJJTkdfRkFVTFRfU1JDSUQoeCkJKCgoeCkgPj4gMykgJiAweGZmKQpAQCAtMjQ4Niw2ICsyNDU2LDcgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewogI2RlZmluZSBHRU44X1BSSVZBVEVfUEFUX0xPCV9NTUlPKDB4NDBlMCkKICNkZWZpbmUgR0VOOF9QUklWQVRFX1BBVF9ISQlfTU1JTygweDQwZTAgKyA0KQogI2RlZmluZSBHRU4xMF9QQVRfSU5ERVgoaW5kZXgpCV9NTUlPKDB4NDBlMCArIChpbmRleCkgKiA0KQorI2RlZmluZSBHRU4xMl9QQVRfSU5ERVgoaW5kZXgpCV9NTUlPKDB4NDgwMCArIChpbmRleCkgKiA0KQogI2RlZmluZSBCU0RfSFdTX1BHQV9HRU43CV9NTUlPKDB4MDQxODApCiAjZGVmaW5lIEJMVF9IV1NfUEdBX0dFTjcJX01NSU8oMHgwNDI4MCkKICNkZWZpbmUgVkVCT1hfSFdTX1BHQV9HRU43CV9NTUlPKDB4MDQzODApCkBAIC0yNTEzLDEzICsyNDg0LDE5IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKICNkZWZpbmUgICBSSU5HX1dBSVRfU0VNQVBIT1JFCSgxIDw8IDEwKSAvKiBnZW42KyAqLwogCiAjZGVmaW5lIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVihiYXNlLCBpKSBfTU1JTygoKGJhc2UpICsgMHg0RDApICsgKGkpICogNCkKLSNkZWZpbmUgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUlcJCSgwIDw8IDI4KSAgICAvKiBDRkwrICYgR2VuMTErICovCi0jZGVmaW5lICAgUklOR19GT1JDRV9UT19OT05QUklWX1JECQkoMSA8PCAyOCkKLSNkZWZpbmUgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfV1IJCSgyIDw8IDI4KQorI2RlZmluZSAgIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfUlcJKDAgPDwgMjgpICAgIC8qIENGTCsgJiBHZW4xMSsgKi8KKyNkZWZpbmUgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUNDRVNTX1JECSgxIDw8IDI4KQorI2RlZmluZSAgIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfV1IJKDIgPDwgMjgpCisjZGVmaW5lICAgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19JTlZBTElECSgzIDw8IDI4KQorI2RlZmluZSAgIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfTUFTSwkoMyA8PCAyOCkKICNkZWZpbmUgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkFOR0VfMQkJKDAgPDwgMCkgICAgIC8qIENGTCsgJiBHZW4xMSsgKi8KICNkZWZpbmUgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkFOR0VfNAkJKDEgPDwgMCkKICNkZWZpbmUgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkFOR0VfMTYJKDIgPDwgMCkKICNkZWZpbmUgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkFOR0VfNjQJKDMgPDwgMCkKKyNkZWZpbmUgICBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkFOR0VfTUFTSwkoMyA8PCAwKQorI2RlZmluZSAgIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9NQVNLX1ZBTElECVwKKwkJCQkJKFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9SQU5HRV9NQVNLIFwKKwkJCQkJfCBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUNDRVNTX01BU0spCiAjZGVmaW5lICAgUklOR19NQVhfTk9OUFJJVl9TTE9UUyAgMTIKIAogI2RlZmluZSBHRU43X1RMQl9SRF9BRERSCV9NTUlPKDB4NDcwMCkKQEAgLTI2MTQsNiArMjU5MSw4IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKIAogI2RlZmluZSBHRU44X0ZBVUxUX1RMQl9EQVRBMAkJX01NSU8oMHg0YjEwKQogI2RlZmluZSBHRU44X0ZBVUxUX1RMQl9EQVRBMQkJX01NSU8oMHg0YjE0KQorI2RlZmluZSBHRU4xMl9GQVVMVF9UTEJfREFUQTAJCV9NTUlPKDB4Y2ViOCkKKyNkZWZpbmUgR0VOMTJfRkFVTFRfVExCX0RBVEExCQlfTU1JTygweGNlYmMpCiAjZGVmaW5lICAgRkFVTFRfVkFfSElHSF9CSVRTCQkoMHhmIDw8IDApCiAjZGVmaW5lICAgRkFVTFRfR1RUX1NFTAkJCSgxIDw8IDQpCiAKQEAgLTMyMjksMjUgKzMyMDgsNyBAQCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7CiAjZGVmaW5lICAgR01CVVNfUkFURV8xTUhaCSgzIDw8IDgpIC8qIHJlc2VydmVkIG9uIFBpbmV2aWV3ICovCiAjZGVmaW5lICAgR01CVVNfSE9MRF9FWFQJKDEgPDwgNykgLyogMzAwbnMgaG9sZCB0aW1lLCByc3ZkIG9uIFBpbmV2aWV3ICovCiAjZGVmaW5lICAgR01CVVNfQllURV9DTlRfT1ZFUlJJREUgKDEgPDwgNikKLSNkZWZpbmUgICBHTUJVU19QSU5fRElTQUJMRUQJMAotI2RlZmluZSAgIEdNQlVTX1BJTl9TU0MJCTEKLSNkZWZpbmUgICBHTUJVU19QSU5fVkdBRERDCTIKLSNkZWZpbmUgICBHTUJVU19QSU5fUEFORUwJMwotI2RlZmluZSAgIEdNQlVTX1BJTl9EUERfQ0hWCTMgLyogSERNSURfQ0hWICovCi0jZGVmaW5lICAgR01CVVNfUElOX0RQQwkJNCAvKiBIRE1JQyAqLwotI2RlZmluZSAgIEdNQlVTX1BJTl9EUEIJCTUgLyogU0RWTywgSERNSUIgKi8KLSNkZWZpbmUgICBHTUJVU19QSU5fRFBECQk2IC8qIEhETUlEICovCi0jZGVmaW5lICAgR01CVVNfUElOX1JFU0VSVkVECTcgLyogNyByZXNlcnZlZCAqLwotI2RlZmluZSAgIEdNQlVTX1BJTl8xX0JYVAkxIC8qIEJYVCsgKGF0b20pIGFuZCBDTlArIChiaWcgY29yZSkgKi8KLSNkZWZpbmUgICBHTUJVU19QSU5fMl9CWFQJMgotI2RlZmluZSAgIEdNQlVTX1BJTl8zX0JYVAkzCi0jZGVmaW5lICAgR01CVVNfUElOXzRfQ05QCTQKLSNkZWZpbmUgICBHTUJVU19QSU5fOV9UQzFfSUNQCTkKLSNkZWZpbmUgICBHTUJVU19QSU5fMTBfVEMyX0lDUAkxMAotI2RlZmluZSAgIEdNQlVTX1BJTl8xMV9UQzNfSUNQCTExCi0jZGVmaW5lICAgR01CVVNfUElOXzEyX1RDNF9JQ1AJMTIKIAotI2RlZmluZSAgIEdNQlVTX05VTV9QSU5TCTEzIC8qIGluY2x1ZGluZyAwICovCiAjZGVmaW5lIEdNQlVTMQkJCV9NTUlPKGRldl9wcml2LT5ncGlvX21taW9fYmFzZSArIDB4NTEwNCkgLyogY29tbWFuZC9zdGF0dXMgKi8KICNkZWZpbmUgICBHTUJVU19TV19DTFJfSU5UCSgxIDw8IDMxKQogI2RlZmluZSAgIEdNQlVTX1NXX1JEWQkJKDEgPDwgMzApCkBAIC00MjA5LDYgKzQxNzAsNyBAQCBlbnVtIHsKICNkZWZpbmUgVFJBTlNDT0RFUl9CX09GRlNFVCAweDYxMDAwCiAjZGVmaW5lIFRSQU5TQ09ERVJfQ19PRkZTRVQgMHg2MjAwMAogI2RlZmluZSBDSFZfVFJBTlNDT0RFUl9DX09GRlNFVCAweDYzMDAwCisjZGVmaW5lIFRSQU5TQ09ERVJfRF9PRkZTRVQgMHg2MzAwMAogI2RlZmluZSBUUkFOU0NPREVSX0VEUF9PRkZTRVQgMHg2ZjAwMAogI2RlZmluZSBUUkFOU0NPREVSX0RTSTBfT0ZGU0VUCTB4NmIwMDAKICNkZWZpbmUgVFJBTlNDT0RFUl9EU0kxX09GRlNFVAkweDZiODAwCkBAIC01NzU1LDYgKzU3MTcsNyBAQCBlbnVtIHsKICNkZWZpbmUgUElQRV9BX09GRlNFVAkJMHg3MDAwMAogI2RlZmluZSBQSVBFX0JfT0ZGU0VUCQkweDcxMDAwCiAjZGVmaW5lIFBJUEVfQ19PRkZTRVQJCTB4NzIwMDAKKyNkZWZpbmUgUElQRV9EX09GRlNFVAkJMHg3MzAwMAogI2RlZmluZSBDSFZfUElQRV9DX09GRlNFVAkweDc0MDAwCiAvKgogICogVGhlcmUncyBhY3R1YWxseSBubyBwaXBlIEVEUC4gU29tZSBwaXBlIHJlZ2lzdGVycyBoYXZlCkBAIC02Mjg0LDYgKzYyNDcsNyBAQCBlbnVtIHsKICNkZWZpbmUgX0RTUEFUSUxFT0ZGCQkJCTB4NzAxQTQgLyogOTY1KyBvbmx5ICovCiAjZGVmaW5lIF9EU1BBT0ZGU0VUCQkJCTB4NzAxQTQgLyogSFNXICovCiAjZGVmaW5lIF9EU1BBU1VSRkxJVkUJCQkJMHg3MDFBQworI2RlZmluZSBfRFNQQUdBTUMJCQkJMHg3MDFFMAogCiAjZGVmaW5lIERTUENOVFIocGxhbmUpCQlfTU1JT19QSVBFMihwbGFuZSwgX0RTUEFDTlRSKQogI2RlZmluZSBEU1BBRERSKHBsYW5lKQkJX01NSU9fUElQRTIocGxhbmUsIF9EU1BBQUREUikKQEAgLTYyOTUsNiArNjI1OSw3IEBAIGVudW0gewogI2RlZmluZSBEU1BMSU5PRkYocGxhbmUpCURTUEFERFIocGxhbmUpCiAjZGVmaW5lIERTUE9GRlNFVChwbGFuZSkJX01NSU9fUElQRTIocGxhbmUsIF9EU1BBT0ZGU0VUKQogI2RlZmluZSBEU1BTVVJGTElWRShwbGFuZSkJX01NSU9fUElQRTIocGxhbmUsIF9EU1BBU1VSRkxJVkUpCisjZGVmaW5lIERTUEdBTUMocGxhbmUsIGkpCV9NTUlPKF9QSVBFMihwbGFuZSwgX0RTUEFHQU1DKSArICg1IC0gKGkpKSAqIDQpIC8qIHBsYW5lIEMgb25seSwgNiB4IHUwLjggKi8KIAogLyogQ0hWIHBpcGUgQiBibGVuZGVyIGFuZCBwcmltYXJ5IHBsYW5lICovCiAjZGVmaW5lIF9DSFZfQkxFTkRfQQkJMHg2MGEwMApAQCAtNjM5Nyw2ICs2MzYyLDcgQEAgZW51bSB7CiAjZGVmaW5lIF9EVlNBS0VZTUFYVkFMCQkweDcyMWEwCiAjZGVmaW5lIF9EVlNBVElMRU9GRgkJMHg3MjFhNAogI2RlZmluZSBfRFZTQVNVUkZMSVZFCQkweDcyMWFjCisjZGVmaW5lIF9EVlNBR0FNQ19HNFgJCTB4NzIxZTAgLyogZzR4ICovCiAjZGVmaW5lIF9EVlNBU0NBTEUJCTB4NzIyMDQKICNkZWZpbmUgICBEVlNfU0NBTEVfRU5BQkxFCSgxIDw8IDMxKQogI2RlZmluZSAgIERWU19GSUxURVJfTUFTSwkoMyA8PCAyOSkKQEAgLTY0MDUsNyArNjM3MSw4IEBAIGVudW0gewogI2RlZmluZSAgIERWU19GSUxURVJfU09GVEVOSU5HCSgyIDw8IDI5KQogI2RlZmluZSAgIERWU19WRVJUSUNBTF9PRkZTRVRfSEFMRiAoMSA8PCAyOCkgLyogbXVzdCBiZSBlbmFibGVkIGJlbG93ICovCiAjZGVmaW5lICAgRFZTX1ZFUlRJQ0FMX09GRlNFVF9FTkFCTEUgKDEgPDwgMjcpCi0jZGVmaW5lIF9EVlNBR0FNQwkJMHg3MjMwMAorI2RlZmluZSBfRFZTQUdBTUNfSUxLCQkweDcyMzAwIC8qIGlsay9zbmIgKi8KKyNkZWZpbmUgX0RWU0FHQU1DTUFYX0lMSwkweDcyMzQwIC8qIGlsay9zbmIgKi8KIAogI2RlZmluZSBfRFZTQkNOVFIJCTB4NzMxODAKICNkZWZpbmUgX0RWU0JMSU5PRkYJCTB4NzMxODQKQEAgLTY0MTgsOCArNjM4NSwxMCBAQCBlbnVtIHsKICNkZWZpbmUgX0RWU0JLRVlNQVhWQUwJCTB4NzMxYTAKICNkZWZpbmUgX0RWU0JUSUxFT0ZGCQkweDczMWE0CiAjZGVmaW5lIF9EVlNCU1VSRkxJVkUJCTB4NzMxYWMKKyNkZWZpbmUgX0RWU0JHQU1DX0c0WAkJMHg3MzFlMCAvKiBnNHggKi8KICNkZWZpbmUgX0RWU0JTQ0FMRQkJMHg3MzIwNAotI2RlZmluZSBfRFZTQkdBTUMJCTB4NzMzMDAKKyNkZWZpbmUgX0RWU0JHQU1DX0lMSwkJMHg3MzMwMCAvKiBpbGsvc25iICovCisjZGVmaW5lIF9EVlNCR0FNQ01BWF9JTEsJMHg3MzM0MCAvKiBpbGsvc25iICovCiAKICNkZWZpbmUgRFZTQ05UUihwaXBlKSBfTU1JT19QSVBFKHBpcGUsIF9EVlNBQ05UUiwgX0RWU0JDTlRSKQogI2RlZmluZSBEVlNMSU5PRkYocGlwZSkgX01NSU9fUElQRShwaXBlLCBfRFZTQUxJTk9GRiwgX0RWU0JMSU5PRkYpCkBAIC02NDMzLDYgKzY0MDIsOSBAQCBlbnVtIHsKICNkZWZpbmUgRFZTS0VZVkFMKHBpcGUpIF9NTUlPX1BJUEUocGlwZSwgX0RWU0FLRVlWQUwsIF9EVlNCS0VZVkFMKQogI2RlZmluZSBEVlNLRVlNU0socGlwZSkgX01NSU9fUElQRShwaXBlLCBfRFZTQUtFWU1TSywgX0RWU0JLRVlNU0spCiAjZGVmaW5lIERWU1NVUkZMSVZFKHBpcGUpIF9NTUlPX1BJUEUocGlwZSwgX0RWU0FTVVJGTElWRSwgX0RWU0JTVVJGTElWRSkKKyNkZWZpbmUgRFZTR0FNQ19HNFgocGlwZSwgaSkgX01NSU8oX1BJUEUocGlwZSwgX0RWU0FHQU1DX0c0WCwgX0RWU0JHQU1DX0c0WCkgKyAoNSAtIChpKSkgKiA0KSAvKiA2IHggdTAuOCAqLworI2RlZmluZSBEVlNHQU1DX0lMSyhwaXBlLCBpKSBfTU1JTyhfUElQRShwaXBlLCBfRFZTQUdBTUNfSUxLLCBfRFZTQkdBTUNfSUxLKSArIChpKSAqIDQpIC8qIDE2IHggdTAuMTAgKi8KKyNkZWZpbmUgRFZTR0FNQ01BWF9JTEsocGlwZSwgaSkgX01NSU8oX1BJUEUocGlwZSwgX0RWU0FHQU1DTUFYX0lMSywgX0RWU0JHQU1DTUFYX0lMSykgKyAoaSkgKiA0KSAvKiAzIHggdTEuMTAgKi8KIAogI2RlZmluZSBfU1BSQV9DVEwJCTB4NzAyODAKICNkZWZpbmUgICBTUFJJVEVfRU5BQkxFCQkJKDEgPDwgMzEpCkBAIC02NDU3LDcgKzY0MjksNyBAQCBlbnVtIHsKICNkZWZpbmUgICBTUFJJVEVfWVVWX09SREVSX1ZZVVkJCSgzIDw8IDE2KQogI2RlZmluZSAgIFNQUklURV9ST1RBVEVfMTgwCQkoMSA8PCAxNSkKICNkZWZpbmUgICBTUFJJVEVfVFJJQ0tMRV9GRUVEX0RJU0FCTEUJKDEgPDwgMTQpCi0jZGVmaW5lICAgU1BSSVRFX0lOVF9HQU1NQV9FTkFCTEUJKDEgPDwgMTMpCisjZGVmaW5lICAgU1BSSVRFX0lOVF9HQU1NQV9ESVNBQkxFCSgxIDw8IDEzKQogI2RlZmluZSAgIFNQUklURV9USUxFRAkJCSgxIDw8IDEwKQogI2RlZmluZSAgIFNQUklURV9ERVNUX0tFWQkJKDEgPDwgMikKICNkZWZpbmUgX1NQUkFfTElOT0ZGCQkweDcwMjg0CkBAIC02NDgwLDYgKzY0NTIsOCBAQCBlbnVtIHsKICNkZWZpbmUgICBTUFJJVEVfVkVSVElDQUxfT0ZGU0VUX0hBTEYJKDEgPDwgMjgpIC8qIG11c3QgYmUgZW5hYmxlZCBiZWxvdyAqLwogI2RlZmluZSAgIFNQUklURV9WRVJUSUNBTF9PRkZTRVRfRU5BQkxFCSgxIDw8IDI3KQogI2RlZmluZSBfU1BSQV9HQU1DCQkweDcwNDAwCisjZGVmaW5lIF9TUFJBX0dBTUMxNgkJMHg3MDQ0MAorI2RlZmluZSBfU1BSQV9HQU1DMTcJCTB4NzA0NGMKIAogI2RlZmluZSBfU1BSQl9DVEwJCTB4NzEyODAKICNkZWZpbmUgX1NQUkJfTElOT0ZGCQkweDcxMjg0CkBAIC02NDk1LDYgKzY0NjksOCBAQCBlbnVtIHsKICNkZWZpbmUgX1NQUkJfU1VSRkxJVkUJCTB4NzEyYWMKICNkZWZpbmUgX1NQUkJfU0NBTEUJCTB4NzEzMDQKICNkZWZpbmUgX1NQUkJfR0FNQwkJMHg3MTQwMAorI2RlZmluZSBfU1BSQl9HQU1DMTYJCTB4NzE0NDAKKyNkZWZpbmUgX1NQUkJfR0FNQzE3CQkweDcxNDRjCiAKICNkZWZpbmUgU1BSQ1RMKHBpcGUpIF9NTUlPX1BJUEUocGlwZSwgX1NQUkFfQ1RMLCBfU1BSQl9DVEwpCiAjZGVmaW5lIFNQUkxJTk9GRihwaXBlKSBfTU1JT19QSVBFKHBpcGUsIF9TUFJBX0xJTk9GRiwgX1NQUkJfTElOT0ZGKQpAQCAtNjUwOCw3ICs2NDg0LDkgQEAgZW51bSB7CiAjZGVmaW5lIFNQUlRJTEVPRkYocGlwZSkgX01NSU9fUElQRShwaXBlLCBfU1BSQV9USUxFT0ZGLCBfU1BSQl9USUxFT0ZGKQogI2RlZmluZSBTUFJPRkZTRVQocGlwZSkgX01NSU9fUElQRShwaXBlLCBfU1BSQV9PRkZTRVQsIF9TUFJCX09GRlNFVCkKICNkZWZpbmUgU1BSU0NBTEUocGlwZSkgX01NSU9fUElQRShwaXBlLCBfU1BSQV9TQ0FMRSwgX1NQUkJfU0NBTEUpCi0jZGVmaW5lIFNQUkdBTUMocGlwZSkgX01NSU9fUElQRShwaXBlLCBfU1BSQV9HQU1DLCBfU1BSQl9HQU1DKQorI2RlZmluZSBTUFJHQU1DKHBpcGUsIGkpIF9NTUlPKF9QSVBFKHBpcGUsIF9TUFJBX0dBTUMsIF9TUFJCX0dBTUMpICsgKGkpICogNCkgLyogMTYgeCB1MC4xMCAqLworI2RlZmluZSBTUFJHQU1DMTYocGlwZSwgaSkgX01NSU8oX1BJUEUocGlwZSwgX1NQUkFfR0FNQzE2LCBfU1BSQl9HQU1DMTYpICsgKGkpICogNCkgLyogMyB4IHUxLjEwICovCisjZGVmaW5lIFNQUkdBTUMxNyhwaXBlLCBpKSBfTU1JTyhfUElQRShwaXBlLCBfU1BSQV9HQU1DMTcsIF9TUFJCX0dBTUMxNykgKyAoaSkgKiA0KSAvKiAzIHggdTIuMTAgKi8KICNkZWZpbmUgU1BSU1VSRkxJVkUocGlwZSkgX01NSU9fUElQRShwaXBlLCBfU1BSQV9TVVJGTElWRSwgX1NQUkJfU1VSRkxJVkUpCiAKICNkZWZpbmUgX1NQQUNOVFIJCShWTFZfRElTUExBWV9CQVNFICsgMHg3MjE4MCkKQEAgLTY1NTEsNyArNjUyOSw3IEBAIGVudW0gewogI2RlZmluZSBfU1BBQ0xSQzEJCShWTFZfRElTUExBWV9CQVNFICsgMHg3MjFkNCkKICNkZWZpbmUgICBTUF9TSF9TSU4oeCkJCQkoKCh4KSAmIDB4N2ZmKSA8PCAxNikgLyogczQuNyAqLwogI2RlZmluZSAgIFNQX1NIX0NPUyh4KQkJCSh4KSAvKiB1My43ICovCi0jZGVmaW5lIF9TUEFHQU1DCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NzIxZjQpCisjZGVmaW5lIF9TUEFHQU1DCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NzIxZTApCiAKICNkZWZpbmUgX1NQQkNOVFIJCShWTFZfRElTUExBWV9CQVNFICsgMHg3MjI4MCkKICNkZWZpbmUgX1NQQkxJTk9GRgkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDcyMjg0KQpAQCAtNjU2NiwxMCArNjU0NCwxMiBAQCBlbnVtIHsKICNkZWZpbmUgX1NQQkNPTlNUQUxQSEEJCShWTFZfRElTUExBWV9CQVNFICsgMHg3MjJhOCkKICNkZWZpbmUgX1NQQkNMUkMwCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NzIyZDApCiAjZGVmaW5lIF9TUEJDTFJDMQkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDcyMmQ0KQotI2RlZmluZSBfU1BCR0FNQwkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDcyMmY0KQorI2RlZmluZSBfU1BCR0FNQwkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDcyMmUwKQogCisjZGVmaW5lIF9WTFZfU1BSKHBpcGUsIHBsYW5lX2lkLCByZWdfYSwgcmVnX2IpIFwKKwlfUElQRSgocGlwZSkgKiAyICsgKHBsYW5lX2lkKSAtIFBMQU5FX1NQUklURTAsIChyZWdfYSksIChyZWdfYikpCiAjZGVmaW5lIF9NTUlPX1ZMVl9TUFIocGlwZSwgcGxhbmVfaWQsIHJlZ19hLCByZWdfYikgXAotCV9NTUlPX1BJUEUoKHBpcGUpICogMiArIChwbGFuZV9pZCkgLSBQTEFORV9TUFJJVEUwLCAocmVnX2EpLCAocmVnX2IpKQorCV9NTUlPKF9WTFZfU1BSKChwaXBlKSwgKHBsYW5lX2lkKSwgKHJlZ19hKSwgKHJlZ19iKSkpCiAKICNkZWZpbmUgU1BDTlRSKHBpcGUsIHBsYW5lX2lkKQkJX01NSU9fVkxWX1NQUigocGlwZSksIChwbGFuZV9pZCksIF9TUEFDTlRSLCBfU1BCQ05UUikKICNkZWZpbmUgU1BMSU5PRkYocGlwZSwgcGxhbmVfaWQpCV9NTUlPX1ZMVl9TUFIoKHBpcGUpLCAocGxhbmVfaWQpLCBfU1BBTElOT0ZGLCBfU1BCTElOT0ZGKQpAQCAtNjU4NCw3ICs2NTY0LDcgQEAgZW51bSB7CiAjZGVmaW5lIFNQQ09OU1RBTFBIQShwaXBlLCBwbGFuZV9pZCkJX01NSU9fVkxWX1NQUigocGlwZSksIChwbGFuZV9pZCksIF9TUEFDT05TVEFMUEhBLCBfU1BCQ09OU1RBTFBIQSkKICNkZWZpbmUgU1BDTFJDMChwaXBlLCBwbGFuZV9pZCkJCV9NTUlPX1ZMVl9TUFIoKHBpcGUpLCAocGxhbmVfaWQpLCBfU1BBQ0xSQzAsIF9TUEJDTFJDMCkKICNkZWZpbmUgU1BDTFJDMShwaXBlLCBwbGFuZV9pZCkJCV9NTUlPX1ZMVl9TUFIoKHBpcGUpLCAocGxhbmVfaWQpLCBfU1BBQ0xSQzEsIF9TUEJDTFJDMSkKLSNkZWZpbmUgU1BHQU1DKHBpcGUsIHBsYW5lX2lkKQkJX01NSU9fVkxWX1NQUigocGlwZSksIChwbGFuZV9pZCksIF9TUEFHQU1DLCBfU1BCR0FNQykKKyNkZWZpbmUgU1BHQU1DKHBpcGUsIHBsYW5lX2lkLCBpKQlfTU1JTyhfVkxWX1NQUigocGlwZSksIChwbGFuZV9pZCksIF9TUEFHQU1DLCBfU1BCR0FNQykgKyAoNSAtIChpKSkgKiA0KSAvKiA2IHggdTAuMTAgKi8KIAogLyoKICAqIENIViBwaXBlIEIgc3ByaXRlIENTQwpAQCAtNzIyOCw2ICs3MjA4LDggQEAgZW51bSB7CiAjZGVmaW5lIFNLTF9DU1JfREMzX0RDNV9DT1VOVAlfTU1JTygweDgwMDMwKQogI2RlZmluZSBTS0xfQ1NSX0RDNV9EQzZfQ09VTlQJX01NSU8oMHg4MDAyQykKICNkZWZpbmUgQlhUX0NTUl9EQzNfREM1X0NPVU5UCV9NTUlPKDB4ODAwMzgpCisjZGVmaW5lIFRHTF9ETUNfREVCVUdfREM1X0NPVU5UCV9NTUlPKDB4MTAxMDg0KQorI2RlZmluZSBUR0xfRE1DX0RFQlVHX0RDNl9DT1VOVAlfTU1JTygweDEwMTA4OCkKIAogLyogaW50ZXJydXB0cyAqLwogI2RlZmluZSBERV9NQVNURVJfSVJRX0NPTlRST0wgICAoMSA8PCAzMSkKQEAgLTczMTcsMTYgKzcyOTksNiBAQCBlbnVtIHsKICNkZWZpbmUgR0VOOF9HVF9JSVIod2hpY2gpIF9NTUlPKDB4NDQzMDggKyAoMHgxMCAqICh3aGljaCkpKQogI2RlZmluZSBHRU44X0dUX0lFUih3aGljaCkgX01NSU8oMHg0NDMwYyArICgweDEwICogKHdoaWNoKSkpCiAKLSNkZWZpbmUgR0VOOV9HVUNfVE9fSE9TVF9JTlRfRVZFTlQJKDEgPDwgMzEpCi0jZGVmaW5lIEdFTjlfR1VDX0VYRUNfRVJST1JfRVZFTlQJKDEgPDwgMzApCi0jZGVmaW5lIEdFTjlfR1VDX0RJU1BMQVlfRVZFTlQJCSgxIDw8IDI5KQotI2RlZmluZSBHRU45X0dVQ19TRU1BX1NJR05BTF9FVkVOVAkoMSA8PCAyOCkKLSNkZWZpbmUgR0VOOV9HVUNfSU9NTVVfTVNHX0VWRU5UCSgxIDw8IDI3KQotI2RlZmluZSBHRU45X0dVQ19EQl9SSU5HX0VWRU5UCQkoMSA8PCAyNikKLSNkZWZpbmUgR0VOOV9HVUNfRE1BX0RPTkVfRVZFTlQJCSgxIDw8IDI1KQotI2RlZmluZSBHRU45X0dVQ19GQVRBTF9FUlJPUl9FVkVOVAkoMSA8PCAyNCkKLSNkZWZpbmUgR0VOOV9HVUNfTk9USUZJQ0FUSU9OX0VWRU5UCSgxIDw8IDIzKQotCiAjZGVmaW5lIEdFTjhfUkNTX0lSUV9TSElGVCAwCiAjZGVmaW5lIEdFTjhfQkNTX0lSUV9TSElGVCAxNgogI2RlZmluZSBHRU44X1ZDUzBfSVJRX1NISUZUIDAgIC8qIE5COiBWQ1MxIGluIGJzcGVjISAqLwpAQCAtNzM4OCw2ICs3MzYwLDkgQEAgZW51bSB7CiAjZGVmaW5lICBHRU44X1BPUlRfRFBfQV9IT1RQTFVHCQkoMSA8PCAzKQogI2RlZmluZSAgQlhUX0RFX1BPUlRfR01CVVMJCSgxIDw8IDEpCiAjZGVmaW5lICBHRU44X0FVWF9DSEFOTkVMX0EJCSgxIDw8IDApCisjZGVmaW5lICBUR0xfREVfUE9SVF9BVVhfRERJQwkJKDEgPDwgMikKKyNkZWZpbmUgIFRHTF9ERV9QT1JUX0FVWF9ERElCCQkoMSA8PCAxKQorI2RlZmluZSAgVEdMX0RFX1BPUlRfQVVYX0RESUEJCSgxIDw8IDApCiAKICNkZWZpbmUgR0VOOF9ERV9NSVNDX0lTUiBfTU1JTygweDQ0NDYwKQogI2RlZmluZSBHRU44X0RFX01JU0NfSU1SIF9NTUlPKDB4NDQ0NjQpCkBAIC03NDMxLDIxICs3NDA2LDI5IEBAIGVudW0gewogI2RlZmluZSBHRU4xMV9ERV9IUERfSU1SCQlfTU1JTygweDQ0NDc0KQogI2RlZmluZSBHRU4xMV9ERV9IUERfSUlSCQlfTU1JTygweDQ0NDc4KQogI2RlZmluZSBHRU4xMV9ERV9IUERfSUVSCQlfTU1JTygweDQ0NDdjKQorI2RlZmluZSAgR0VOMTJfVEM2X0hPVFBMVUcJCQkoMSA8PCAyMSkKKyNkZWZpbmUgIEdFTjEyX1RDNV9IT1RQTFVHCQkJKDEgPDwgMjApCiAjZGVmaW5lICBHRU4xMV9UQzRfSE9UUExVRwkJCSgxIDw8IDE5KQogI2RlZmluZSAgR0VOMTFfVEMzX0hPVFBMVUcJCQkoMSA8PCAxOCkKICNkZWZpbmUgIEdFTjExX1RDMl9IT1RQTFVHCQkJKDEgPDwgMTcpCiAjZGVmaW5lICBHRU4xMV9UQzFfSE9UUExVRwkJCSgxIDw8IDE2KQogI2RlZmluZSAgR0VOMTFfVENfSE9UUExVRyh0Y19wb3J0KQkJKDEgPDwgKCh0Y19wb3J0KSArIDE2KSkKLSNkZWZpbmUgIEdFTjExX0RFX1RDX0hPVFBMVUdfTUFTSwkJKEdFTjExX1RDNF9IT1RQTFVHIHwgXAorI2RlZmluZSAgR0VOMTFfREVfVENfSE9UUExVR19NQVNLCQkoR0VOMTJfVEM2X0hPVFBMVUcgfCBcCisJCQkJCQkgR0VOMTJfVEM1X0hPVFBMVUcgfCBcCisJCQkJCQkgR0VOMTFfVEM0X0hPVFBMVUcgfCBcCiAJCQkJCQkgR0VOMTFfVEMzX0hPVFBMVUcgfCBcCiAJCQkJCQkgR0VOMTFfVEMyX0hPVFBMVUcgfCBcCiAJCQkJCQkgR0VOMTFfVEMxX0hPVFBMVUcpCisjZGVmaW5lICBHRU4xMl9UQlQ2X0hPVFBMVUcJCQkoMSA8PCA1KQorI2RlZmluZSAgR0VOMTJfVEJUNV9IT1RQTFVHCQkJKDEgPDwgNCkKICNkZWZpbmUgIEdFTjExX1RCVDRfSE9UUExVRwkJCSgxIDw8IDMpCiAjZGVmaW5lICBHRU4xMV9UQlQzX0hPVFBMVUcJCQkoMSA8PCAyKQogI2RlZmluZSAgR0VOMTFfVEJUMl9IT1RQTFVHCQkJKDEgPDwgMSkKICNkZWZpbmUgIEdFTjExX1RCVDFfSE9UUExVRwkJCSgxIDw8IDApCiAjZGVmaW5lICBHRU4xMV9UQlRfSE9UUExVRyh0Y19wb3J0KQkJKDEgPDwgKHRjX3BvcnQpKQotI2RlZmluZSAgR0VOMTFfREVfVEJUX0hPVFBMVUdfTUFTSwkJKEdFTjExX1RCVDRfSE9UUExVRyB8IFwKKyNkZWZpbmUgIEdFTjExX0RFX1RCVF9IT1RQTFVHX01BU0sJCShHRU4xMl9UQlQ2X0hPVFBMVUcgfCBcCisJCQkJCQkgR0VOMTJfVEJUNV9IT1RQTFVHIHwgXAorCQkJCQkJIEdFTjExX1RCVDRfSE9UUExVRyB8IFwKIAkJCQkJCSBHRU4xMV9UQlQzX0hPVFBMVUcgfCBcCiAJCQkJCQkgR0VOMTFfVEJUMl9IT1RQTFVHIHwgXAogCQkJCQkJIEdFTjExX1RCVDFfSE9UUExVRykKQEAgLTc0NzksNiArNzQ2Miw5IEBAIGVudW0gewogI2RlZmluZSAgR0VOMTFfSU5UUl9FTkdJTkVfQ0xBU1MoeCkJKCgoeCkgJiBHRU5NQVNLKDE4LCAxNikpID4+IDE2KQogI2RlZmluZSAgR0VOMTFfSU5UUl9FTkdJTkVfSU5TVEFOQ0UoeCkJKCgoeCkgJiBHRU5NQVNLKDI1LCAyMCkpID4+IDIwKQogI2RlZmluZSAgR0VOMTFfSU5UUl9FTkdJTkVfSU5UUih4KQkoKHgpICYgMHhmZmZmKQorLyogaXJxIGluc3RhbmNlcyBmb3IgT1RIRVJfQ0xBU1MgKi8KKyNkZWZpbmUgT1RIRVJfR1VDX0lOU1RBTkNFCTAKKyNkZWZpbmUgT1RIRVJfR1RQTV9JTlNUQU5DRQkxCiAKICNkZWZpbmUgR0VOMTFfSU5UUl9JREVOVElUWV9SRUcoeCkJX01NSU8oMHgxOTAwNjAgKyAoKHgpICogNCkpCiAKQEAgLTc2MDYsNiArNzU5Miw3IEBAIGVudW0gewogI2RlZmluZSBTS0xfREZTTV9QSVBFX0FfRElTQUJMRQkJKDEgPDwgMzApCiAjZGVmaW5lIFNLTF9ERlNNX1BJUEVfQl9ESVNBQkxFCQkoMSA8PCAyMSkKICNkZWZpbmUgU0tMX0RGU01fUElQRV9DX0RJU0FCTEUJCSgxIDw8IDI4KQorI2RlZmluZSBUR0xfREZTTV9QSVBFX0RfRElTQUJMRQkJKDEgPDwgMjIpCiAKICNkZWZpbmUgU0tMX0RTU00JCQkJX01NSU8oMHg1MTAwNCkKICNkZWZpbmUgQ05MX0RTU01fQ0RDTEtfUExMX1JFRkNMS18yNE1IegkJKDEgPDwgMzEpCkBAIC03NjkwLDYgKzc2NzcsOSBAQCBlbnVtIHsKICNkZWZpbmUgR0VON19MM1NRQ1JFRzQJCQkJX01NSU8oMHhiMDM0KQogI2RlZmluZSAgTDNTUV9VUkJfUkVBRF9DQU1fTUFUQ0hfRElTQUJMRQkoMSA8PCAyNykKIAorI2RlZmluZSBHRU4xMV9TQ1JBVENIMgkJCQkJX01NSU8oMHhiMTQwKQorI2RlZmluZSAgR0VOMTFfQ09IRVJFTlRfUEFSVElBTF9XUklURV9NRVJHRV9FTkFCTEUJKDEgPDwgMTkpCisKICNkZWZpbmUgR0VOOF9MM1NRQ1JFRzQJCQkJX01NSU8oMHhiMTE4KQogI2RlZmluZSAgR0VOMTFfTFFTQ19DTEVBTl9FVklDVF9ESVNBQkxFCQkoMSA8PCA2KQogI2RlZmluZSAgR0VOOF9MUVNDX1JPX1BFUkZfRElTCQkJKDEgPDwgMjcpCkBAIC03ODI3LDEyICs3ODE3LDE1IEBAIGVudW0gewogCQkJCSBTREVfRkRJX1JYQl9DUFQgfCBcCiAJCQkJIFNERV9GRElfUlhBX0NQVCkKIAotLyogc291dGggZGlzcGxheSBlbmdpbmUgaW50ZXJydXB0OiBJQ1AgKi8KKy8qIHNvdXRoIGRpc3BsYXkgZW5naW5lIGludGVycnVwdDogSUNQL1RHUCAqLworI2RlZmluZSBTREVfVEM2X0hPVFBMVUdfVEdQCQkoMSA8PCAyOSkKKyNkZWZpbmUgU0RFX1RDNV9IT1RQTFVHX1RHUAkJKDEgPDwgMjgpCiAjZGVmaW5lIFNERV9UQzRfSE9UUExVR19JQ1AJCSgxIDw8IDI3KQogI2RlZmluZSBTREVfVEMzX0hPVFBMVUdfSUNQCQkoMSA8PCAyNikKICNkZWZpbmUgU0RFX1RDMl9IT1RQTFVHX0lDUAkJKDEgPDwgMjUpCiAjZGVmaW5lIFNERV9UQzFfSE9UUExVR19JQ1AJCSgxIDw8IDI0KQogI2RlZmluZSBTREVfR01CVVNfSUNQCQkJKDEgPDwgMjMpCisjZGVmaW5lIFNERV9ERElDX0hPVFBMVUdfVEdQCQkoMSA8PCAxOCkKICNkZWZpbmUgU0RFX0RESUJfSE9UUExVR19JQ1AJCSgxIDw8IDE3KQogI2RlZmluZSBTREVfRERJQV9IT1RQTFVHX0lDUAkJKDEgPDwgMTYpCiAjZGVmaW5lIFNERV9UQ19IT1RQTFVHX0lDUCh0Y19wb3J0KQkoMSA8PCAoKHRjX3BvcnQpICsgMjQpKQpAQCAtNzg0Myw2ICs3ODM2LDExIEBAIGVudW0gewogCQkJCQkgU0RFX1RDM19IT1RQTFVHX0lDUCB8CVwKIAkJCQkJIFNERV9UQzJfSE9UUExVR19JQ1AgfAlcCiAJCQkJCSBTREVfVEMxX0hPVFBMVUdfSUNQKQorI2RlZmluZSBTREVfRERJX01BU0tfVEdQCQkoU0RFX0RESUNfSE9UUExVR19UR1AgfCBcCisJCQkJCSBTREVfRERJX01BU0tfSUNQKQorI2RlZmluZSBTREVfVENfTUFTS19UR1AJCQkoU0RFX1RDNl9IT1RQTFVHX1RHUCB8CVwKKwkJCQkJIFNERV9UQzVfSE9UUExVR19UR1AgfAlcCisJCQkJCSBTREVfVENfTUFTS19JQ1ApCiAKICNkZWZpbmUgU0RFSVNSICBfTU1JTygweGM0MDAwKQogI2RlZmluZSBTREVJTVIgIF9NTUlPKDB4YzQwMDQpCkBAIC03OTEwLDYgKzc5MDgsMTIgQEAgZW51bSB7CiAgKi8KIAogI2RlZmluZSBTSE9UUExVR19DVExfRERJCQkJX01NSU8oMHhjNDAzMCkKKyNkZWZpbmUgICBUR1BfRERJQ19IUERfRU5BQkxFCQkJKDEgPDwgMTEpCisjZGVmaW5lICAgVEdQX0RESUNfSFBEX1NUQVRVU19NQVNLCQkoMyA8PCA4KQorI2RlZmluZSAgIFRHUF9ERElDX0hQRF9OT19ERVRFQ1QJCSgwIDw8IDgpCisjZGVmaW5lICAgVEdQX0RESUNfSFBEX1NIT1JUX0RFVEVDVAkJKDEgPDwgOCkKKyNkZWZpbmUgICBUR1BfRERJQ19IUERfTE9OR19ERVRFQ1QJCSgyIDw8IDgpCisjZGVmaW5lICAgVEdQX0RESUNfSFBEX1NIT1JUX0xPTkdfREVURUNUCSgzIDw8IDgpCiAjZGVmaW5lICAgSUNQX0RESUJfSFBEX0VOQUJMRQkJCSgxIDw8IDcpCiAjZGVmaW5lICAgSUNQX0RESUJfSFBEX1NUQVRVU19NQVNLCQkoMyA8PCA0KQogI2RlZmluZSAgIElDUF9ERElCX0hQRF9OT19ERVRFQ1QJCSgwIDw8IDQpCkBAIC04MDMzLDYgKzgwMzcsMTggQEAgZW51bSB7CiAjZGVmaW5lICAgSUNQX1RDX0hQRF9MT05HX0RFVEVDVCh0Y19wb3J0KQkoMiA8PCAodGNfcG9ydCkgKiA0KQogI2RlZmluZSAgIElDUF9UQ19IUERfU0hPUlRfREVURUNUKHRjX3BvcnQpCSgxIDw8ICh0Y19wb3J0KSAqIDQpCiAKKyNkZWZpbmUgSUNQX0RESV9IUERfRU5BQkxFX01BU0sJCShJQ1BfRERJQl9IUERfRU5BQkxFIHwJXAorCQkJCQkgSUNQX0RESUFfSFBEX0VOQUJMRSkKKyNkZWZpbmUgSUNQX1RDX0hQRF9FTkFCTEVfTUFTSwkJKElDUF9UQ19IUERfRU5BQkxFKFBPUlRfVEM0KSB8IFwKKwkJCQkJIElDUF9UQ19IUERfRU5BQkxFKFBPUlRfVEMzKSB8IFwKKwkJCQkJIElDUF9UQ19IUERfRU5BQkxFKFBPUlRfVEMyKSB8IFwKKwkJCQkJIElDUF9UQ19IUERfRU5BQkxFKFBPUlRfVEMxKSkKKyNkZWZpbmUgVEdQX0RESV9IUERfRU5BQkxFX01BU0sJCShUR1BfRERJQ19IUERfRU5BQkxFIHwJXAorCQkJCQkgSUNQX0RESV9IUERfRU5BQkxFX01BU0spCisjZGVmaW5lIFRHUF9UQ19IUERfRU5BQkxFX01BU0sJCShJQ1BfVENfSFBEX0VOQUJMRShQT1JUX1RDNikgfCBcCisJCQkJCSBJQ1BfVENfSFBEX0VOQUJMRShQT1JUX1RDNSkgfCBcCisJCQkJCSBJQ1BfVENfSFBEX0VOQUJMRV9NQVNLKQorCiAjZGVmaW5lIF9QQ0hfRFBMTF9BICAgICAgICAgICAgICAweGM2MDE0CiAjZGVmaW5lIF9QQ0hfRFBMTF9CICAgICAgICAgICAgICAweGM2MDE4CiAjZGVmaW5lIFBDSF9EUExMKHBsbCkgX01NSU8oKHBsbCkgPT0gMCA/IF9QQ0hfRFBMTF9BIDogX1BDSF9EUExMX0IpCkBAIC05MTE5LDcgKzkxMzUsOCBAQCBlbnVtIHsKICNkZWZpbmUgICBHTEtfUFdfQ1RMX0lEWF9ERElfQQkJCTEKICNkZWZpbmUgICBTS0xfUFdfQ1RMX0lEWF9NSVNDX0lPCQkwCiAKLS8qIElDTCAtIHBvd2VyIHdlbGxzICovCisvKiBJQ0wvVEdMIC0gcG93ZXIgd2VsbHMgKi8KKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9QV181CQkJNAogI2RlZmluZSAgIElDTF9QV19DVExfSURYX1BXXzQJCQkzCiAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfUFdfMwkJCTIKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9QV18yCQkJMQpAQCAtOTEyOCwxMyArOTE0NSwyNSBAQCBlbnVtIHsKICNkZWZpbmUgSUNMX1BXUl9XRUxMX0NUTF9BVVgxCQkJX01NSU8oMHg0NTQ0MCkKICNkZWZpbmUgSUNMX1BXUl9XRUxMX0NUTF9BVVgyCQkJX01NSU8oMHg0NTQ0NCkKICNkZWZpbmUgSUNMX1BXUl9XRUxMX0NUTF9BVVg0CQkJX01NSU8oMHg0NTQ0QykKKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEJUNgkJMTQKKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEJUNQkJMTMKKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEJUNAkJMTIKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfVEJUNAkJMTEKKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEJUMwkJMTEKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfVEJUMwkJMTAKKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEJUMgkJMTAKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfVEJUMgkJOQorI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0FVWF9UQlQxCQk5CiAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfQVVYX1RCVDEJCTgKKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEM2CQk4CisjZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RDNQkJNworI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0FVWF9UQzQJCTYKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfRgkJCTUKKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEMzCQk1CiAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfQVVYX0UJCQk0CisjZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RDMgkJNAogI2RlZmluZSAgIElDTF9QV19DVExfSURYX0FVWF9ECQkJMworI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0FVWF9UQzEJCTMKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfQwkJCTIKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfQgkJCTEKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfQQkJCTAKQEAgLTkxNDIsOSArOTE3MSwxNSBAQCBlbnVtIHsKICNkZWZpbmUgSUNMX1BXUl9XRUxMX0NUTF9EREkxCQkJX01NSU8oMHg0NTQ1MCkKICNkZWZpbmUgSUNMX1BXUl9XRUxMX0NUTF9EREkyCQkJX01NSU8oMHg0NTQ1NCkKICNkZWZpbmUgSUNMX1BXUl9XRUxMX0NUTF9EREk0CQkJX01NSU8oMHg0NTQ1QykKKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9ERElfVEM2CQk4CisjZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfRERJX1RDNQkJNworI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0RESV9UQzQJCTYKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9ERElfRgkJCTUKKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9ERElfVEMzCQk1CiAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfRERJX0UJCQk0CisjZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfRERJX1RDMgkJNAogI2RlZmluZSAgIElDTF9QV19DVExfSURYX0RESV9ECQkJMworI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0RESV9UQzEJCTMKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9ERElfQwkJCTIKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9ERElfQgkJCTEKICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9ERElfQQkJCTAKQEAgLTkxOTcsOSArOTIzMiwxMSBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKICNkZWZpbmUgX0lDTF9BVVhfUkVHX0lEWChwd19pZHgpCSgocHdfaWR4KSAtIElDTF9QV19DVExfSURYX0FVWF9BKQogI2RlZmluZSBfSUNMX0FVWF9BTkFPVlJEMV9BCQkweDE2MjM5OAogI2RlZmluZSBfSUNMX0FVWF9BTkFPVlJEMV9CCQkweDZDMzk4CisjZGVmaW5lIF9UR0xfQVVYX0FOQU9WUkQxX0MJCTB4MTYwMzk4CiAjZGVmaW5lIElDTF9BVVhfQU5BT1ZSRDEocHdfaWR4KQlfTU1JTyhfUElDSyhfSUNMX0FVWF9SRUdfSURYKHB3X2lkeCksIFwKIAkJCQkJCSAgICBfSUNMX0FVWF9BTkFPVlJEMV9BLCBcCi0JCQkJCQkgICAgX0lDTF9BVVhfQU5BT1ZSRDFfQikpCisJCQkJCQkgICAgX0lDTF9BVVhfQU5BT1ZSRDFfQiwgXAorCQkJCQkJICAgIF9UR0xfQVVYX0FOQU9WUkQxX0MpKQogI2RlZmluZSAgIElDTF9BVVhfQU5BT1ZSRDFfTERPX0JZUEFTUwkoMSA8PCA3KQogI2RlZmluZSAgIElDTF9BVVhfQU5BT1ZSRDFfRU5BQkxFCSgxIDw8IDApCiAKQEAgLTkzMjEsNiArOTM1OCw3IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewogI2RlZmluZSBfVFJBTlNfRERJX0ZVTkNfQ1RMX0EJCTB4NjA0MDAKICNkZWZpbmUgX1RSQU5TX0RESV9GVU5DX0NUTF9CCQkweDYxNDAwCiAjZGVmaW5lIF9UUkFOU19ERElfRlVOQ19DVExfQwkJMHg2MjQwMAorI2RlZmluZSBfVFJBTlNfRERJX0ZVTkNfQ1RMX0QJCTB4NjM0MDAKICNkZWZpbmUgX1RSQU5TX0RESV9GVU5DX0NUTF9FRFAJCTB4NkY0MDAKICNkZWZpbmUgX1RSQU5TX0RESV9GVU5DX0NUTF9EU0kwCTB4NmI0MDAKICNkZWZpbmUgX1RSQU5TX0RESV9GVU5DX0NUTF9EU0kxCTB4NmJjMDAKQEAgLTkzMjgsMTAgKzkzNjYsMTQgQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7CiAKICNkZWZpbmUgIFRSQU5TX0RESV9GVU5DX0VOQUJMRQkJKDEgPDwgMzEpCiAvKiBUaG9zZSBiaXRzIGFyZSBpZ25vcmVkIGJ5IHBpcGUgRURQIHNpbmNlIGl0IGNhbiBvbmx5IGNvbm5lY3QgdG8gRERJIEEgKi8KLSNkZWZpbmUgIFRSQU5TX0RESV9QT1JUX01BU0sJCSg3IDw8IDI4KQogI2RlZmluZSAgVFJBTlNfRERJX1BPUlRfU0hJRlQJCTI4Ci0jZGVmaW5lICBUUkFOU19ERElfU0VMRUNUX1BPUlQoeCkJKCh4KSA8PCAyOCkKLSNkZWZpbmUgIFRSQU5TX0RESV9QT1JUX05PTkUJCSgwIDw8IDI4KQorI2RlZmluZSAgVEdMX1RSQU5TX0RESV9QT1JUX1NISUZUCTI3CisjZGVmaW5lICBUUkFOU19ERElfUE9SVF9NQVNLCQkoNyA8PCBUUkFOU19ERElfUE9SVF9TSElGVCkKKyNkZWZpbmUgIFRHTF9UUkFOU19ERElfUE9SVF9NQVNLCSgweGYgPDwgVEdMX1RSQU5TX0RESV9QT1JUX1NISUZUKQorI2RlZmluZSAgVFJBTlNfRERJX1NFTEVDVF9QT1JUKHgpCSgoeCkgPDwgVFJBTlNfRERJX1BPUlRfU0hJRlQpCisjZGVmaW5lICBUR0xfVFJBTlNfRERJX1NFTEVDVF9QT1JUKHgpCSgoKHgpICsgMSkgPDwgVEdMX1RSQU5TX0RESV9QT1JUX1NISUZUKQorI2RlZmluZSAgVFJBTlNfRERJX0ZVTkNfQ1RMX1ZBTF9UT19QT1JUKHZhbCkJICgoKHZhbCkgJiBUUkFOU19ERElfUE9SVF9NQVNLKSA+PiBUUkFOU19ERElfUE9SVF9TSElGVCkKKyNkZWZpbmUgIFRHTF9UUkFOU19ERElfRlVOQ19DVExfVkFMX1RPX1BPUlQodmFsKSAoKCgodmFsKSAmIFRHTF9UUkFOU19ERElfUE9SVF9NQVNLKSA+PiBUR0xfVFJBTlNfRERJX1BPUlRfU0hJRlQpIC0gMSkKICNkZWZpbmUgIFRSQU5TX0RESV9NT0RFX1NFTEVDVF9NQVNLCSg3IDw8IDI0KQogI2RlZmluZSAgVFJBTlNfRERJX01PREVfU0VMRUNUX0hETUkJKDAgPDwgMjQpCiAjZGVmaW5lICBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFZJCSgxIDw8IDI0KQpAQCAtOTU0MSw2ICs5NTgzLDkgQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7CiAvKiBGb3IgZWFjaCB0cmFuc2NvZGVyLCB3ZSBuZWVkIHRvIHNlbGVjdCB0aGUgY29ycmVzcG9uZGluZyBwb3J0IGNsb2NrICovCiAjZGVmaW5lICBUUkFOU19DTEtfU0VMX0RJU0FCTEVECQkoMHgwIDw8IDI5KQogI2RlZmluZSAgVFJBTlNfQ0xLX1NFTF9QT1JUKHgpCQkoKCh4KSArIDEpIDw8IDI5KQorI2RlZmluZSAgVEdMX1RSQU5TX0NMS19TRUxfRElTQUJMRUQJKDB4MCA8PCAyOCkKKyNkZWZpbmUgIFRHTF9UUkFOU19DTEtfU0VMX1BPUlQoeCkJKCgoeCkgKyAxKSA8PCAyOCkKKwogCiAjZGVmaW5lIENEQ0xLX0ZSRVEJCQlfTU1JTygweDQ2MjAwKQogCkBAIC05NjcyLDE3ICs5NzE3LDIyIEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewogICogQ05MIENsb2NrcwogICovCiAjZGVmaW5lIERQQ0xLQV9DRkdDUjAJCQkJX01NSU8oMHg2QzIwMCkKLSNkZWZpbmUgRFBDTEtBX0NGR0NSMF9JQ0wJCQlfTU1JTygweDE2NDI4MCkKICNkZWZpbmUgIERQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYocG9ydCkJKDEgPDwgKChwb3J0KSA9PSAgUE9SVF9GID8gMjMgOiBcCiAJCQkJCQkgICAgICAocG9ydCkgKyAxMCkpCi0jZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0KSAgICgxIDw8ICgocG9ydCkgKyAxMCkpCi0jZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9UQ19DTEtfT0ZGKHRjX3BvcnQpICgxIDw8ICgodGNfcG9ydCkgPT0gUE9SVF9UQzQgPyBcCi0JCQkJCQkgICAgICAyMSA6ICh0Y19wb3J0KSArIDEyKSkKICNkZWZpbmUgIERQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfU0hJRlQocG9ydCkJKChwb3J0KSA9PSBQT1JUX0YgPyAyMSA6IFwKIAkJCQkJCShwb3J0KSAqIDIpCiAjZGVmaW5lICBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01BU0socG9ydCkJKDMgPDwgRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChwb3J0KSkKICNkZWZpbmUgIERQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUwocGxsLCBwb3J0KQkoKHBsbCkgPDwgRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChwb3J0KSkKIAorI2RlZmluZSBJQ0xfRFBDTEtBX0NGR0NSMAkJCV9NTUlPKDB4MTY0MjgwKQorI2RlZmluZSAgSUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYocGh5KQkoMSA8PCBfUElDSyhwaHksIDEwLCAxMSwgMjQpKQorI2RlZmluZSAgSUNMX0RQQ0xLQV9DRkdDUjBfVENfQ0xLX09GRih0Y19wb3J0KQkoMSA8PCAoKHRjX3BvcnQpIDwgUE9SVF9UQzQgPyBcCisJCQkJCQkgICAgICAgKHRjX3BvcnQpICsgMTIgOiBcCisJCQkJCQkgICAgICAgKHRjX3BvcnQpIC0gUE9SVF9UQzQgKyAyMSkpCisjZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChwaHkpCSgocGh5KSAqIDIpCisjZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBoeSkJKDMgPDwgSUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfU0hJRlQocGh5KSkKKyNkZWZpbmUgIElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMKHBsbCwgcGh5KQkoKHBsbCkgPDwgSUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfU0hJRlQocGh5KSkKKwogLyogQ05MIFBMTCAqLwogI2RlZmluZSBEUExMMF9FTkFCTEUJCTB4NDYwMTAKICNkZWZpbmUgRFBMTDFfRU5BQkxFCQkweDQ2MDE0CkBAIC05ODg3LDYgKzk5MzcsNyBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKICNkZWZpbmUgIERQTExfQ0ZHQ1IxX1BESVZfNwkJKDggPDwgMikKICNkZWZpbmUgIERQTExfQ0ZHQ1IxX0NFTlRSQUxfRlJFUQkoMyA8PCAwKQogI2RlZmluZSAgRFBMTF9DRkdDUjFfQ0VOVFJBTF9GUkVRXzg0MDAJKDMgPDwgMCkKKyNkZWZpbmUgIFRHTF9EUExMX0NGR0NSMV9DRlNFTE9WUkRfTk9STUFMX1hUQUwJKDAgPDwgMCkKICNkZWZpbmUgQ05MX0RQTExfQ0ZHQ1IxKHBsbCkJCV9NTUlPX1BMTChwbGwsIF9DTkxfRFBMTDBfQ0ZHQ1IxLCBfQ05MX0RQTEwxX0NGR0NSMSkKIAogI2RlZmluZSBfSUNMX0RQTEwwX0NGR0NSMAkJMHgxNjQwMDAKQEAgLTk4OTksNiArOTk1MCwyMiBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKICNkZWZpbmUgSUNMX0RQTExfQ0ZHQ1IxKHBsbCkJCV9NTUlPX1BMTChwbGwsIF9JQ0xfRFBMTDBfQ0ZHQ1IxLCBcCiAJCQkJCQkgIF9JQ0xfRFBMTDFfQ0ZHQ1IxKQogCisjZGVmaW5lIF9UR0xfRFBMTDBfQ0ZHQ1IwCQkweDE2NDI4NAorI2RlZmluZSBfVEdMX0RQTEwxX0NGR0NSMAkJMHgxNjQyOEMKKy8qIFRPRE86IGFkZCBEUExMNCAqLworI2RlZmluZSBfVEdMX1RCVFBMTF9DRkdDUjAJCTB4MTY0MjlDCisjZGVmaW5lIFRHTF9EUExMX0NGR0NSMChwbGwpCQlfTU1JT19QTEwzKHBsbCwgX1RHTF9EUExMMF9DRkdDUjAsIFwKKwkJCQkJCSAgX1RHTF9EUExMMV9DRkdDUjAsIFwKKwkJCQkJCSAgX1RHTF9UQlRQTExfQ0ZHQ1IwKQorCisjZGVmaW5lIF9UR0xfRFBMTDBfQ0ZHQ1IxCQkweDE2NDI4OAorI2RlZmluZSBfVEdMX0RQTEwxX0NGR0NSMQkJMHgxNjQyOTAKKy8qIFRPRE86IGFkZCBEUExMNCAqLworI2RlZmluZSBfVEdMX1RCVFBMTF9DRkdDUjEJCTB4MTY0MkEwCisjZGVmaW5lIFRHTF9EUExMX0NGR0NSMShwbGwpCQlfTU1JT19QTEwzKHBsbCwgX1RHTF9EUExMMF9DRkdDUjEsIFwKKwkJCQkJCSAgIF9UR0xfRFBMTDFfQ0ZHQ1IxLCBcCisJCQkJCQkgICBfVEdMX1RCVFBMTF9DRkdDUjEpCisKIC8qIEJYVCBkaXNwbGF5IGVuZ2luZSBQTEwgKi8KICNkZWZpbmUgQlhUX0RFX1BMTF9DVEwJCQlfTU1JTygweDZkMDAwKQogI2RlZmluZSAgIEJYVF9ERV9QTExfUkFUSU8oeCkJCSh4KQkvKiB7NjAsNjUsMTAwfSAqIDE5LjJNSHogKi8KQEAgLTEwODk2LDYgKzEwOTYzLDcgQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7CiAjZGVmaW5lICBDQUxJQlJBVElPTl9ESVNBQkxFRAkJKDB4MCA8PCA0KQogI2RlZmluZSAgQ0FMSUJSQVRJT05fRU5BQkxFRF9JTklUSUFMX09OTFkJKDB4MiA8PCA0KQogI2RlZmluZSAgQ0FMSUJSQVRJT05fRU5BQkxFRF9JTklUSUFMX1BFUklPRElDCSgweDMgPDwgNCkKKyNkZWZpbmUgIEJMQU5LSU5HX1BBQ0tFVF9FTkFCTEUJCSgxIDw8IDIpCiAjZGVmaW5lICBTM0RfT1JJRU5UQVRJT05fTEFORFNDQVBFCSgxIDw8IDEpCiAjZGVmaW5lICBFT1RQX0RJU0FCTEVECQkJKDEgPDwgMCkKIApAQCAtMTExMzAsNiArMTExOTgsOCBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKICNkZWZpbmUgICBQTUZMVVNIX0dBUEwzVU5CTE9DSwkJKDEgPDwgMjEpCiAjZGVmaW5lICAgUE1GTFVTSERPTkVfTE5FQkxLCQkoMSA8PCAyMikKIAorI2RlZmluZSBHRU4xMl9HTE9CQUxfTU9DUyhpKQlfTU1JTygweDQwMDAgKyAoaSkgKiA0KSAvKiBHbG9iYWwgTU9DUyByZWdzICovCisKIC8qIGdhbXQgcmVncyAqLwogI2RlZmluZSBHRU44X0wzX0xSQV8xX0dQR1BVIF9NTUlPKDB4NGRkNCkKICNkZWZpbmUgICBHRU44X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfQkRXICAweDY3RjE0MjdGIC8qIG1heC9taW4gZm9yIExSQTEvMiAqLwpAQCAtMTExNDUsNiArMTEyMTUsNyBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKICNkZWZpbmUgX0lDTF9QSFlfTUlTQ19CCQkweDY0QzA0CiAjZGVmaW5lIElDTF9QSFlfTUlTQyhwb3J0KQlfTU1JT19QT1JUKHBvcnQsIF9JQ0xfUEhZX01JU0NfQSwgXAogCQkJCQkJIF9JQ0xfUEhZX01JU0NfQikKKyNkZWZpbmUgIElDTF9QSFlfTUlTQ19NVVhfRERJRAkJCSgxIDw8IDI4KQogI2RlZmluZSAgSUNMX1BIWV9NSVNDX0RFX0lPX0NPTVBfUFdSX0RPV04JKDEgPDwgMjMpCiAKIC8qIEljZWxha2UgRGlzcGxheSBTdHJlYW0gQ29tcHJlc3Npb24gUmVnaXN0ZXJzICovCkBAIC0xMTQ1NCwxNyArMTE1MjUsMTggQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7CiAJCQkJCQlfSUNMX0RTQzFfUkNfQlVGX1RIUkVTSF8xX1VEV19QQiwgXAogCQkJCQkJX0lDTF9EU0MxX1JDX0JVRl9USFJFU0hfMV9VRFdfUEMpCiAKLSNkZWZpbmUgUE9SVF9UWF9ERkxFWERQU1AJCQlfTU1JTyhGSUExX0JBU0UgKyAweDAwOEEwKQorI2RlZmluZSBQT1JUX1RYX0RGTEVYRFBTUChmaWEpCQkJX01NSU9fRklBKChmaWEpLCAweDAwOEEwKQorI2RlZmluZSAgIE1PRFVMQVJfRklBX01BU0sJCQkoMSA8PCA0KQogI2RlZmluZSAgIFRDX0xJVkVfU1RBVEVfVEJUKHRjX3BvcnQpCQkoMSA8PCAoKHRjX3BvcnQpICogOCArIDYpKQogI2RlZmluZSAgIFRDX0xJVkVfU1RBVEVfVEModGNfcG9ydCkJCSgxIDw8ICgodGNfcG9ydCkgKiA4ICsgNSkpCiAjZGVmaW5lICAgRFBfTEFORV9BU1NJR05NRU5UX1NISUZUKHRjX3BvcnQpCSgodGNfcG9ydCkgKiA4KQogI2RlZmluZSAgIERQX0xBTkVfQVNTSUdOTUVOVF9NQVNLKHRjX3BvcnQpCSgweGYgPDwgKCh0Y19wb3J0KSAqIDgpKQogI2RlZmluZSAgIERQX0xBTkVfQVNTSUdOTUVOVCh0Y19wb3J0LCB4KQkoKHgpIDw8ICgodGNfcG9ydCkgKiA4KSkKIAotI2RlZmluZSBQT1JUX1RYX0RGTEVYRFBQTVMJCQkJX01NSU8oRklBMV9CQVNFICsgMHgwMDg5MCkKKyNkZWZpbmUgUE9SVF9UWF9ERkxFWERQUE1TKGZpYSkJCQlfTU1JT19GSUEoKGZpYSksIDB4MDA4OTApCiAjZGVmaW5lICAgRFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCh0Y19wb3J0KQkJKDEgPDwgKHRjX3BvcnQpKQogCi0jZGVmaW5lIFBPUlRfVFhfREZMRVhEUENTU1MJCQlfTU1JTyhGSUExX0JBU0UgKyAweDAwODk0KQorI2RlZmluZSBQT1JUX1RYX0RGTEVYRFBDU1NTKGZpYSkJCV9NTUlPX0ZJQSgoZmlhKSwgMHgwMDg5NCkKICNkZWZpbmUgICBEUF9QSFlfTU9ERV9TVEFUVVNfTk9UX1NBRkUodGNfcG9ydCkJCSgxIDw8ICh0Y19wb3J0KSkKIAogI2VuZGlmIC8qIF9JOTE1X1JFR19IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwppbmRleCBhMTk1YTkyLi5hNTM3NzdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgImk5MTVfYWN0aXZlLmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dsb2JhbHMuaCIKKyNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfcG0uaCIKIAogc3RydWN0IGV4ZWN1dGVfY2IgewpAQCAtMTE5LDE3MiArMTIwLDYgQEAgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgaTkxNV9mZW5jZV9vcHMgPSB7CiAJLnJlbGVhc2UgPSBpOTE1X2ZlbmNlX3JlbGVhc2UsCiB9OwogCi1zdGF0aWMgaW5saW5lIHZvaWQKLWk5MTVfcmVxdWVzdF9yZW1vdmVfZnJvbV9jbGllbnQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXY7Ci0KLQlmaWxlX3ByaXYgPSByZXF1ZXN0LT5maWxlX3ByaXY7Ci0JaWYgKCFmaWxlX3ByaXYpCi0JCXJldHVybjsKLQotCXNwaW5fbG9jaygmZmlsZV9wcml2LT5tbS5sb2NrKTsKLQlpZiAocmVxdWVzdC0+ZmlsZV9wcml2KSB7Ci0JCWxpc3RfZGVsKCZyZXF1ZXN0LT5jbGllbnRfbGluayk7Ci0JCXJlcXVlc3QtPmZpbGVfcHJpdiA9IE5VTEw7Ci0JfQotCXNwaW5fdW5sb2NrKCZmaWxlX3ByaXYtPm1tLmxvY2spOwotfQotCi1zdGF0aWMgdm9pZCBhZHZhbmNlX3Jpbmcoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKLXsKLQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcXVlc3QtPnJpbmc7Ci0JdW5zaWduZWQgaW50IHRhaWw7Ci0KLQkvKgotCSAqIFdlIGtub3cgdGhlIEdQVSBtdXN0IGhhdmUgcmVhZCB0aGUgcmVxdWVzdCB0byBoYXZlCi0JICogc2VudCB1cyB0aGUgc2Vxbm8gKyBpbnRlcnJ1cHQsIHNvIHVzZSB0aGUgcG9zaXRpb24KLQkgKiBvZiB0YWlsIG9mIHRoZSByZXF1ZXN0IHRvIHVwZGF0ZSB0aGUgbGFzdCBrbm93biBwb3NpdGlvbgotCSAqIG9mIHRoZSBHUFUgaGVhZC4KLQkgKgotCSAqIE5vdGUgdGhpcyByZXF1aXJlcyB0aGF0IHdlIGFyZSBhbHdheXMgY2FsbGVkIGluIHJlcXVlc3QKLQkgKiBjb21wbGV0aW9uIG9yZGVyLgotCSAqLwotCUdFTV9CVUdfT04oIWxpc3RfaXNfZmlyc3QoJnJlcXVlc3QtPnJpbmdfbGluaywgJnJpbmctPnJlcXVlc3RfbGlzdCkpOwotCWlmIChsaXN0X2lzX2xhc3QoJnJlcXVlc3QtPnJpbmdfbGluaywgJnJpbmctPnJlcXVlc3RfbGlzdCkpIHsKLQkJLyoKLQkJICogV2UgbWF5IHJhY2UgaGVyZSB3aXRoIGV4ZWNsaXN0cyByZXN1Ym1pdHRpbmcgdGhpcyByZXF1ZXN0Ci0JCSAqIGFzIHdlIHJldGlyZSBpdC4gVGhlIHJlc3VibWlzc2lvbiB3aWxsIG1vdmUgdGhlIHJpbmctPnRhaWwKLQkJICogZm9yd2FyZHMgKHRvIHJlcXVlc3QtPndhX3RhaWwpLiBXZSBlaXRoZXIgcmVhZCB0aGUKLQkJICogY3VycmVudCB2YWx1ZSB0aGF0IHdhcyB3cml0dGVuIHRvIGh3LCBvciB0aGUgdmFsdWUgdGhhdAotCQkgKiBpcyBqdXN0IGFib3V0IHRvIGJlLiBFaXRoZXIgd29ya3MsIGlmIHdlIG1pc3MgdGhlIGxhc3QgdHdvCi0JCSAqIG5vb3BzIC0gdGhleSBhcmUgc2FmZSB0byBiZSByZXBsYXllZCBvbiBhIHJlc2V0LgotCQkgKi8KLQkJdGFpbCA9IFJFQURfT05DRShyZXF1ZXN0LT50YWlsKTsKLQkJbGlzdF9kZWwoJnJpbmctPmFjdGl2ZV9saW5rKTsKLQl9IGVsc2UgewotCQl0YWlsID0gcmVxdWVzdC0+cG9zdGZpeDsKLQl9Ci0JbGlzdF9kZWxfaW5pdCgmcmVxdWVzdC0+cmluZ19saW5rKTsKLQotCXJpbmctPmhlYWQgPSB0YWlsOwotfQotCi1zdGF0aWMgdm9pZCBmcmVlX2NhcHR1cmVfbGlzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQotewotCXN0cnVjdCBpOTE1X2NhcHR1cmVfbGlzdCAqY2FwdHVyZTsKLQotCWNhcHR1cmUgPSByZXF1ZXN0LT5jYXB0dXJlX2xpc3Q7Ci0Jd2hpbGUgKGNhcHR1cmUpIHsKLQkJc3RydWN0IGk5MTVfY2FwdHVyZV9saXN0ICpuZXh0ID0gY2FwdHVyZS0+bmV4dDsKLQotCQlrZnJlZShjYXB0dXJlKTsKLQkJY2FwdHVyZSA9IG5leHQ7Ci0JfQotfQotCi1zdGF0aWMgYm9vbCBpOTE1X3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQotewotCXN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUsICpuZXh0OwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmcnEtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWlmICghaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpCi0JCXJldHVybiBmYWxzZTsKLQotCUdFTV9UUkFDRSgiJXMgZmVuY2UgJWxseDolbGxkLCBjdXJyZW50ICVkXG4iLAotCQkgIHJxLT5lbmdpbmUtPm5hbWUsCi0JCSAgcnEtPmZlbmNlLmNvbnRleHQsIHJxLT5mZW5jZS5zZXFubywKLQkJICBod3NwX3NlcW5vKHJxKSk7Ci0KLQlHRU1fQlVHX09OKCFpOTE1X3N3X2ZlbmNlX3NpZ25hbGVkKCZycS0+c3VibWl0KSk7Ci0JdHJhY2VfaTkxNV9yZXF1ZXN0X3JldGlyZShycSk7Ci0KLQlhZHZhbmNlX3JpbmcocnEpOwotCi0JLyoKLQkgKiBXYWxrIHRocm91Z2ggdGhlIGFjdGl2ZSBsaXN0LCBjYWxsaW5nIHJldGlyZSBvbiBlYWNoLiBUaGlzIGFsbG93cwotCSAqIG9iamVjdHMgdG8gdHJhY2sgdGhlaXIgR1BVIGFjdGl2aXR5IGFuZCBtYXJrIHRoZW1zZWx2ZXMgYXMgaWRsZQotCSAqIHdoZW4gdGhlaXIgKmxhc3QqIGFjdGl2ZSByZXF1ZXN0IGlzIGNvbXBsZXRlZCAodXBkYXRpbmcgc3RhdGUKLQkgKiB0cmFja2luZyBsaXN0cyBmb3IgZXZpY3Rpb24sIGFjdGl2ZSByZWZlcmVuY2VzIGZvciBHRU0sIGV0YykuCi0JICoKLQkgKiBBcyB0aGUgLT5yZXRpcmUoKSBtYXkgZnJlZSB0aGUgbm9kZSwgd2UgZGVjb3VwbGUgaXQgZmlyc3QgYW5kCi0JICogcGFzcyBhbG9uZyB0aGUgYXV4aWxpYXJ5IGluZm9ybWF0aW9uICh0byBhdm9pZCBkZXJlZmVyZW5jaW5nCi0JICogdGhlIG5vZGUgYWZ0ZXIgdGhlIGNhbGxiYWNrKS4KLQkgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYWN0aXZlLCBuZXh0LCAmcnEtPmFjdGl2ZV9saXN0LCBsaW5rKSB7Ci0JCS8qCi0JCSAqIEluIG1pY3JvYmVuY2htYXJrcyBvciBmb2N1c2luZyB1cG9uIHRpbWUgaW5zaWRlIHRoZSBrZXJuZWwsCi0JCSAqIHdlIG1heSBzcGVuZCBhbiBpbm9yZGluYXRlIGFtb3VudCBvZiB0aW1lIHNpbXBseSBoYW5kbGluZwotCQkgKiB0aGUgcmV0aXJlbWVudCBvZiByZXF1ZXN0cyBhbmQgcHJvY2Vzc2luZyB0aGVpciBjYWxsYmFja3MuCi0JCSAqIE9mIHdoaWNoLCB0aGlzIGxvb3AgaXRzZWxmIGlzIHBhcnRpY3VsYXJseSBob3QgZHVlIHRvIHRoZQotCQkgKiBjYWNoZSBtaXNzZXMgd2hlbiBqdW1waW5nIGFyb3VuZCB0aGUgbGlzdCBvZgotCQkgKiBpOTE1X2FjdGl2ZV9yZXF1ZXN0LiAgU28gd2UgdHJ5IHRvIGtlZXAgdGhpcyBsb29wIGFzCi0JCSAqIHN0cmVhbWxpbmVkIGFzIHBvc3NpYmxlIGFuZCBhbHNvIHByZWZldGNoIHRoZSBuZXh0Ci0JCSAqIGk5MTVfYWN0aXZlX3JlcXVlc3QgdG8gdHJ5IGFuZCBoaWRlIHRoZSBsaWtlbHkgY2FjaGUgbWlzcy4KLQkJICovCi0JCXByZWZldGNodyhuZXh0KTsKLQotCQlJTklUX0xJU1RfSEVBRCgmYWN0aXZlLT5saW5rKTsKLQkJUkNVX0lOSVRfUE9JTlRFUihhY3RpdmUtPnJlcXVlc3QsIE5VTEwpOwotCi0JCWFjdGl2ZS0+cmV0aXJlKGFjdGl2ZSwgcnEpOwotCX0KLQotCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0KLQlzcGluX2xvY2soJnJxLT5lbmdpbmUtPmFjdGl2ZS5sb2NrKTsKLQlsaXN0X2RlbCgmcnEtPnNjaGVkLmxpbmspOwotCXNwaW5fdW5sb2NrKCZycS0+ZW5naW5lLT5hY3RpdmUubG9jayk7Ci0KLQlzcGluX2xvY2soJnJxLT5sb2NrKTsKLQlpOTE1X3JlcXVlc3RfbWFya19jb21wbGV0ZShycSk7Ci0JaWYgKCFpOTE1X3JlcXVlc3Rfc2lnbmFsZWQocnEpKQotCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZCgmcnEtPmZlbmNlKTsKLQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQsICZycS0+ZmVuY2UuZmxhZ3MpKQotCQlpOTE1X3JlcXVlc3RfY2FuY2VsX2JyZWFkY3J1bWIocnEpOwotCWlmIChycS0+d2FpdGJvb3N0KSB7Ci0JCUdFTV9CVUdfT04oIWF0b21pY19yZWFkKCZycS0+aTkxNS0+Z3RfcG0ucnBzLm51bV93YWl0ZXJzKSk7Ci0JCWF0b21pY19kZWMoJnJxLT5pOTE1LT5ndF9wbS5ycHMubnVtX3dhaXRlcnMpOwotCX0KLQlzcGluX3VubG9jaygmcnEtPmxvY2spOwotCi0JbG9jYWxfaXJxX2VuYWJsZSgpOwotCi0JaW50ZWxfY29udGV4dF9leGl0KHJxLT5od19jb250ZXh0KTsKLQlpbnRlbF9jb250ZXh0X3VucGluKHJxLT5od19jb250ZXh0KTsKLQotCWk5MTVfcmVxdWVzdF9yZW1vdmVfZnJvbV9jbGllbnQocnEpOwotCWxpc3RfZGVsKCZycS0+bGluayk7Ci0KLQlmcmVlX2NhcHR1cmVfbGlzdChycSk7Ci0JaTkxNV9zY2hlZF9ub2RlX2ZpbmkoJnJxLT5zY2hlZCk7Ci0JaTkxNV9yZXF1ZXN0X3B1dChycSk7Ci0KLQlyZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBpOTE1X3JlcXVlc3RfcmV0aXJlX3VwdG8oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCi17Ci0Jc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBycS0+cmluZzsKLQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bXA7Ci0KLQlHRU1fVFJBQ0UoIiVzIGZlbmNlICVsbHg6JWxsZCwgY3VycmVudCAlZFxuIiwKLQkJICBycS0+ZW5naW5lLT5uYW1lLAotCQkgIHJxLT5mZW5jZS5jb250ZXh0LCBycS0+ZmVuY2Uuc2Vxbm8sCi0JCSAgaHdzcF9zZXFubyhycSkpOwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmcnEtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCUdFTV9CVUdfT04oIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKTsKLQotCWlmIChsaXN0X2VtcHR5KCZycS0+cmluZ19saW5rKSkKLQkJcmV0dXJuOwotCi0JZG8gewotCQl0bXAgPSBsaXN0X2ZpcnN0X2VudHJ5KCZyaW5nLT5yZXF1ZXN0X2xpc3QsCi0JCQkJICAgICAgIHR5cGVvZigqdG1wKSwgcmluZ19saW5rKTsKLQl9IHdoaWxlIChpOTE1X3JlcXVlc3RfcmV0aXJlKHRtcCkgJiYgdG1wICE9IHJxKTsKLX0KLQogc3RhdGljIHZvaWQgaXJxX2V4ZWN1dGVfY2Ioc3RydWN0IGlycV93b3JrICp3cmspCiB7CiAJc3RydWN0IGV4ZWN1dGVfY2IgKmNiID0gY29udGFpbmVyX29mKHdyaywgdHlwZW9mKCpjYiksIHdvcmspOwpAQCAtMzI5LDYgKzE2NCwxNTUgQEAgc3RhdGljIHZvaWQgX19ub3RpZnlfZXhlY3V0ZV9jYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAlJTklUX0xJU1RfSEVBRCgmcnEtPmV4ZWN1dGVfY2IpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQKK3JlbW92ZV9mcm9tX2NsaWVudChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQoreworCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdjsKKworCWZpbGVfcHJpdiA9IFJFQURfT05DRShyZXF1ZXN0LT5maWxlX3ByaXYpOworCWlmICghZmlsZV9wcml2KQorCQlyZXR1cm47CisKKwlzcGluX2xvY2soJmZpbGVfcHJpdi0+bW0ubG9jayk7CisJaWYgKHJlcXVlc3QtPmZpbGVfcHJpdikgeworCQlsaXN0X2RlbCgmcmVxdWVzdC0+Y2xpZW50X2xpbmspOworCQlyZXF1ZXN0LT5maWxlX3ByaXYgPSBOVUxMOworCX0KKwlzcGluX3VubG9jaygmZmlsZV9wcml2LT5tbS5sb2NrKTsKK30KKworc3RhdGljIHZvaWQgZnJlZV9jYXB0dXJlX2xpc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKK3sKKwlzdHJ1Y3QgaTkxNV9jYXB0dXJlX2xpc3QgKmNhcHR1cmU7CisKKwljYXB0dXJlID0gcmVxdWVzdC0+Y2FwdHVyZV9saXN0OworCXdoaWxlIChjYXB0dXJlKSB7CisJCXN0cnVjdCBpOTE1X2NhcHR1cmVfbGlzdCAqbmV4dCA9IGNhcHR1cmUtPm5leHQ7CisKKwkJa2ZyZWUoY2FwdHVyZSk7CisJCWNhcHR1cmUgPSBuZXh0OworCX0KK30KKworc3RhdGljIGJvb2wgaTkxNV9yZXF1ZXN0X3JldGlyZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCAqYWN0aXZlLCAqbmV4dDsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnJxLT50aW1lbGluZS0+bXV0ZXgpOworCWlmICghaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpCisJCXJldHVybiBmYWxzZTsKKworCUdFTV9UUkFDRSgiJXMgZmVuY2UgJWxseDolbGxkLCBjdXJyZW50ICVkXG4iLAorCQkgIHJxLT5lbmdpbmUtPm5hbWUsCisJCSAgcnEtPmZlbmNlLmNvbnRleHQsIHJxLT5mZW5jZS5zZXFubywKKwkJICBod3NwX3NlcW5vKHJxKSk7CisKKwlHRU1fQlVHX09OKCFpOTE1X3N3X2ZlbmNlX3NpZ25hbGVkKCZycS0+c3VibWl0KSk7CisJdHJhY2VfaTkxNV9yZXF1ZXN0X3JldGlyZShycSk7CisKKwkvKgorCSAqIFdlIGtub3cgdGhlIEdQVSBtdXN0IGhhdmUgcmVhZCB0aGUgcmVxdWVzdCB0byBoYXZlCisJICogc2VudCB1cyB0aGUgc2Vxbm8gKyBpbnRlcnJ1cHQsIHNvIHVzZSB0aGUgcG9zaXRpb24KKwkgKiBvZiB0YWlsIG9mIHRoZSByZXF1ZXN0IHRvIHVwZGF0ZSB0aGUgbGFzdCBrbm93biBwb3NpdGlvbgorCSAqIG9mIHRoZSBHUFUgaGVhZC4KKwkgKgorCSAqIE5vdGUgdGhpcyByZXF1aXJlcyB0aGF0IHdlIGFyZSBhbHdheXMgY2FsbGVkIGluIHJlcXVlc3QKKwkgKiBjb21wbGV0aW9uIG9yZGVyLgorCSAqLworCUdFTV9CVUdfT04oIWxpc3RfaXNfZmlyc3QoJnJxLT5saW5rLCAmcnEtPnRpbWVsaW5lLT5yZXF1ZXN0cykpOworCXJxLT5yaW5nLT5oZWFkID0gcnEtPnBvc3RmaXg7CisKKwkvKgorCSAqIFdhbGsgdGhyb3VnaCB0aGUgYWN0aXZlIGxpc3QsIGNhbGxpbmcgcmV0aXJlIG9uIGVhY2guIFRoaXMgYWxsb3dzCisJICogb2JqZWN0cyB0byB0cmFjayB0aGVpciBHUFUgYWN0aXZpdHkgYW5kIG1hcmsgdGhlbXNlbHZlcyBhcyBpZGxlCisJICogd2hlbiB0aGVpciAqbGFzdCogYWN0aXZlIHJlcXVlc3QgaXMgY29tcGxldGVkICh1cGRhdGluZyBzdGF0ZQorCSAqIHRyYWNraW5nIGxpc3RzIGZvciBldmljdGlvbiwgYWN0aXZlIHJlZmVyZW5jZXMgZm9yIEdFTSwgZXRjKS4KKwkgKgorCSAqIEFzIHRoZSAtPnJldGlyZSgpIG1heSBmcmVlIHRoZSBub2RlLCB3ZSBkZWNvdXBsZSBpdCBmaXJzdCBhbmQKKwkgKiBwYXNzIGFsb25nIHRoZSBhdXhpbGlhcnkgaW5mb3JtYXRpb24gKHRvIGF2b2lkIGRlcmVmZXJlbmNpbmcKKwkgKiB0aGUgbm9kZSBhZnRlciB0aGUgY2FsbGJhY2spLgorCSAqLworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShhY3RpdmUsIG5leHQsICZycS0+YWN0aXZlX2xpc3QsIGxpbmspIHsKKwkJLyoKKwkJICogSW4gbWljcm9iZW5jaG1hcmtzIG9yIGZvY3VzaW5nIHVwb24gdGltZSBpbnNpZGUgdGhlIGtlcm5lbCwKKwkJICogd2UgbWF5IHNwZW5kIGFuIGlub3JkaW5hdGUgYW1vdW50IG9mIHRpbWUgc2ltcGx5IGhhbmRsaW5nCisJCSAqIHRoZSByZXRpcmVtZW50IG9mIHJlcXVlc3RzIGFuZCBwcm9jZXNzaW5nIHRoZWlyIGNhbGxiYWNrcy4KKwkJICogT2Ygd2hpY2gsIHRoaXMgbG9vcCBpdHNlbGYgaXMgcGFydGljdWxhcmx5IGhvdCBkdWUgdG8gdGhlCisJCSAqIGNhY2hlIG1pc3NlcyB3aGVuIGp1bXBpbmcgYXJvdW5kIHRoZSBsaXN0IG9mCisJCSAqIGk5MTVfYWN0aXZlX3JlcXVlc3QuICBTbyB3ZSB0cnkgdG8ga2VlcCB0aGlzIGxvb3AgYXMKKwkJICogc3RyZWFtbGluZWQgYXMgcG9zc2libGUgYW5kIGFsc28gcHJlZmV0Y2ggdGhlIG5leHQKKwkJICogaTkxNV9hY3RpdmVfcmVxdWVzdCB0byB0cnkgYW5kIGhpZGUgdGhlIGxpa2VseSBjYWNoZSBtaXNzLgorCQkgKi8KKwkJcHJlZmV0Y2h3KG5leHQpOworCisJCUlOSVRfTElTVF9IRUFEKCZhY3RpdmUtPmxpbmspOworCQlSQ1VfSU5JVF9QT0lOVEVSKGFjdGl2ZS0+cmVxdWVzdCwgTlVMTCk7CisKKwkJYWN0aXZlLT5yZXRpcmUoYWN0aXZlLCBycSk7CisJfQorCisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKworCS8qCisJICogV2Ugb25seSBsb29zZWx5IHRyYWNrIGluZmxpZ2h0IHJlcXVlc3RzIGFjcm9zcyBwcmVlbXB0aW9uLAorCSAqIGFuZCBzbyB3ZSBtYXkgZmluZCBvdXJzZWx2ZXMgYXR0ZW1wdGluZyB0byByZXRpcmUgYSBfY29tcGxldGVkXworCSAqIHJlcXVlc3QgdGhhdCB3ZSBoYXZlIHJlbW92ZWQgZnJvbSB0aGUgSFcgYW5kIHB1dCBiYWNrIG9uIGEgcnVuCisJICogcXVldWUuCisJICovCisJc3Bpbl9sb2NrKCZycS0+ZW5naW5lLT5hY3RpdmUubG9jayk7CisJbGlzdF9kZWwoJnJxLT5zY2hlZC5saW5rKTsKKwlzcGluX3VubG9jaygmcnEtPmVuZ2luZS0+YWN0aXZlLmxvY2spOworCisJc3Bpbl9sb2NrKCZycS0+bG9jayk7CisJaTkxNV9yZXF1ZXN0X21hcmtfY29tcGxldGUocnEpOworCWlmICghaTkxNV9yZXF1ZXN0X3NpZ25hbGVkKHJxKSkKKwkJZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoJnJxLT5mZW5jZSk7CisJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklULCAmcnEtPmZlbmNlLmZsYWdzKSkKKwkJaTkxNV9yZXF1ZXN0X2NhbmNlbF9icmVhZGNydW1iKHJxKTsKKwlpZiAoaTkxNV9yZXF1ZXN0X2hhc193YWl0Ym9vc3QocnEpKSB7CisJCUdFTV9CVUdfT04oIWF0b21pY19yZWFkKCZycS0+aTkxNS0+Z3RfcG0ucnBzLm51bV93YWl0ZXJzKSk7CisJCWF0b21pY19kZWMoJnJxLT5pOTE1LT5ndF9wbS5ycHMubnVtX3dhaXRlcnMpOworCX0KKwlpZiAoIXRlc3RfYml0KEk5MTVfRkVOQ0VfRkxBR19BQ1RJVkUsICZycS0+ZmVuY2UuZmxhZ3MpKSB7CisJCXNldF9iaXQoSTkxNV9GRU5DRV9GTEFHX0FDVElWRSwgJnJxLT5mZW5jZS5mbGFncyk7CisJCV9fbm90aWZ5X2V4ZWN1dGVfY2IocnEpOworCX0KKwlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZycS0+ZXhlY3V0ZV9jYikpOworCXNwaW5fdW5sb2NrKCZycS0+bG9jayk7CisKKwlsb2NhbF9pcnFfZW5hYmxlKCk7CisKKwlyZW1vdmVfZnJvbV9jbGllbnQocnEpOworCWxpc3RfZGVsKCZycS0+bGluayk7CisKKwlpbnRlbF9jb250ZXh0X2V4aXQocnEtPmh3X2NvbnRleHQpOworCWludGVsX2NvbnRleHRfdW5waW4ocnEtPmh3X2NvbnRleHQpOworCisJZnJlZV9jYXB0dXJlX2xpc3QocnEpOworCWk5MTVfc2NoZWRfbm9kZV9maW5pKCZycS0+c2NoZWQpOworCWk5MTVfcmVxdWVzdF9wdXQocnEpOworCisJcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgaTkxNV9yZXF1ZXN0X3JldGlyZV91cHRvKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqIGNvbnN0IHRsID0gcnEtPnRpbWVsaW5lOworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnRtcDsKKworCUdFTV9UUkFDRSgiJXMgZmVuY2UgJWxseDolbGxkLCBjdXJyZW50ICVkXG4iLAorCQkgIHJxLT5lbmdpbmUtPm5hbWUsCisJCSAgcnEtPmZlbmNlLmNvbnRleHQsIHJxLT5mZW5jZS5zZXFubywKKwkJICBod3NwX3NlcW5vKHJxKSk7CisKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ0bC0+bXV0ZXgpOworCUdFTV9CVUdfT04oIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKTsKKworCWRvIHsKKwkJdG1wID0gbGlzdF9maXJzdF9lbnRyeSgmdGwtPnJlcXVlc3RzLCB0eXBlb2YoKnRtcCksIGxpbmspOworCX0gd2hpbGUgKGk5MTVfcmVxdWVzdF9yZXRpcmUodG1wKSAmJiB0bXAgIT0gcnEpOworfQorCiBzdGF0aWMgaW50CiBfX2k5MTVfcmVxdWVzdF9hd2FpdF9leGVjdXRpb24oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJCQkgICAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqc2lnbmFsLApAQCAtNTEyLDYgKzQ5NiwxMCBAQCBzdWJtaXRfbm90aWZ5KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwgZW51bSBpOTE1X3N3X2ZlbmNlX25vdGlmeSBzdGF0ZSkKIAlzd2l0Y2ggKHN0YXRlKSB7CiAJY2FzZSBGRU5DRV9DT01QTEVURToKIAkJdHJhY2VfaTkxNV9yZXF1ZXN0X3N1Ym1pdChyZXF1ZXN0KTsKKworCQlpZiAodW5saWtlbHkoZmVuY2UtPmVycm9yKSkKKwkJCWk5MTVfcmVxdWVzdF9za2lwKHJlcXVlc3QsIGZlbmNlLT5lcnJvcik7CisKIAkJLyoKIAkJICogV2UgbmVlZCB0byBzZXJpYWxpemUgdXNlIG9mIHRoZSBzdWJtaXRfcmVxdWVzdCgpIGNhbGxiYWNrCiAJCSAqIHdpdGggaXRzIGhvdHBsdWdnaW5nIHBlcmZvcm1lZCBkdXJpbmcgYW4gZW1lcmdlbmN5CkBAIC01NTIsMjkgKzU0MCwyOCBAQCBzZW1hcGhvcmVfbm90aWZ5KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwgZW51bSBpOTE1X3N3X2ZlbmNlX25vdGlmeSBzdGF0ZSkKIAlyZXR1cm4gTk9USUZZX0RPTkU7CiB9CiAKLXN0YXRpYyB2b2lkIHJpbmdfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKQorc3RhdGljIHZvaWQgcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpCiB7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsICpybjsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShycSwgcm4sICZyaW5nLT5yZXF1ZXN0X2xpc3QsIHJpbmdfbGluaykKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocnEsIHJuLCAmdGwtPnJlcXVlc3RzLCBsaW5rKQogCQlpZiAoIWk5MTVfcmVxdWVzdF9yZXRpcmUocnEpKQogCQkJYnJlYWs7CiB9CiAKIHN0YXRpYyBub2lubGluZSBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKLXJlcXVlc3RfYWxsb2Nfc2xvdyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIGdmcF90IGdmcCkKK3JlcXVlc3RfYWxsb2Nfc2xvdyhzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsLCBnZnBfdCBnZnApCiB7Ci0Jc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBjZS0+cmluZzsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKIAotCWlmIChsaXN0X2VtcHR5KCZyaW5nLT5yZXF1ZXN0X2xpc3QpKQorCWlmIChsaXN0X2VtcHR5KCZ0bC0+cmVxdWVzdHMpKQogCQlnb3RvIG91dDsKIAogCWlmICghZ2ZwZmxhZ3NfYWxsb3dfYmxvY2tpbmcoZ2ZwKSkKIAkJZ290byBvdXQ7CiAKIAkvKiBNb3ZlIG91ciBvbGRlc3QgcmVxdWVzdCB0byB0aGUgc2xhYi1jYWNoZSAoaWYgbm90IGluIHVzZSEpICovCi0JcnEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZyaW5nLT5yZXF1ZXN0X2xpc3QsIHR5cGVvZigqcnEpLCByaW5nX2xpbmspOworCXJxID0gbGlzdF9maXJzdF9lbnRyeSgmdGwtPnJlcXVlc3RzLCB0eXBlb2YoKnJxKSwgbGluayk7CiAJaTkxNV9yZXF1ZXN0X3JldGlyZShycSk7CiAKIAlycSA9IGttZW1fY2FjaGVfYWxsb2MoZ2xvYmFsLnNsYWJfcmVxdWVzdHMsCkBAIC01ODMsMTEgKzU3MCwxMSBAQCByZXF1ZXN0X2FsbG9jX3Nsb3coc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCBnZnBfdCBnZnApCiAJCXJldHVybiBycTsKIAogCS8qIFJhdGVsaW1pdCBvdXJzZWx2ZXMgdG8gcHJldmVudCBvb20gZnJvbSBtYWxpY2lvdXMgY2xpZW50cyAqLwotCXJxID0gbGlzdF9sYXN0X2VudHJ5KCZyaW5nLT5yZXF1ZXN0X2xpc3QsIHR5cGVvZigqcnEpLCByaW5nX2xpbmspOworCXJxID0gbGlzdF9sYXN0X2VudHJ5KCZ0bC0+cmVxdWVzdHMsIHR5cGVvZigqcnEpLCBsaW5rKTsKIAljb25kX3N5bmNocm9uaXplX3JjdShycS0+cmN1c3RhdGUpOwogCiAJLyogUmV0aXJlIG91ciBvbGQgcmVxdWVzdHMgaW4gdGhlIGhvcGUgdGhhdCB3ZSBmcmVlIHNvbWUgKi8KLQlyaW5nX3JldGlyZV9yZXF1ZXN0cyhyaW5nKTsKKwlyZXRpcmVfcmVxdWVzdHModGwpOwogCiBvdXQ6CiAJcmV0dXJuIGttZW1fY2FjaGVfYWxsb2MoZ2xvYmFsLnNsYWJfcmVxdWVzdHMsIGdmcCk7CkBAIC01OTYsNyArNTgzLDcgQEAgcmVxdWVzdF9hbGxvY19zbG93KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgZ2ZwX3QgZ2ZwKQogc3RydWN0IGk5MTVfcmVxdWVzdCAqCiBfX2k5MTVfcmVxdWVzdF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCBnZnBfdCBnZnApCiB7Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsID0gY2UtPnJpbmctPnRpbWVsaW5lOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwgPSBjZS0+dGltZWxpbmU7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAJdTMyIHNlcW5vOwogCWludCByZXQ7CkBAIC02MzgsMTQgKzYyNSwxNCBAQCBfX2k5MTVfcmVxdWVzdF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCBnZnBfdCBnZnApCiAJcnEgPSBrbWVtX2NhY2hlX2FsbG9jKGdsb2JhbC5zbGFiX3JlcXVlc3RzLAogCQkJICAgICAgZ2ZwIHwgX19HRlBfUkVUUllfTUFZRkFJTCB8IF9fR0ZQX05PV0FSTik7CiAJaWYgKHVubGlrZWx5KCFycSkpIHsKLQkJcnEgPSByZXF1ZXN0X2FsbG9jX3Nsb3coY2UsIGdmcCk7CisJCXJxID0gcmVxdWVzdF9hbGxvY19zbG93KHRsLCBnZnApOwogCQlpZiAoIXJxKSB7CiAJCQlyZXQgPSAtRU5PTUVNOwogCQkJZ290byBlcnJfdW5yZXNlcnZlOwogCQl9CiAJfQogCi0JcmV0ID0gaTkxNV90aW1lbGluZV9nZXRfc2Vxbm8odGwsIHJxLCAmc2Vxbm8pOworCXJldCA9IGludGVsX3RpbWVsaW5lX2dldF9zZXFubyh0bCwgcnEsICZzZXFubyk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfZnJlZTsKIApAQCAtNjczLDcgKzY2MCw3IEBAIF9faTkxNV9yZXF1ZXN0X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIGdmcF90IGdmcCkKIAlycS0+ZmlsZV9wcml2ID0gTlVMTDsKIAlycS0+YmF0Y2ggPSBOVUxMOwogCXJxLT5jYXB0dXJlX2xpc3QgPSBOVUxMOwotCXJxLT53YWl0Ym9vc3QgPSBmYWxzZTsKKwlycS0+ZmxhZ3MgPSAwOwogCXJxLT5leGVjdXRpb25fbWFzayA9IEFMTF9FTkdJTkVTOwogCiAJSU5JVF9MSVNUX0hFQUQoJnJxLT5hY3RpdmVfbGlzdCk7CkBAIC03MzAsMTUgKzcxNywxNSBAQCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKIGk5MTVfcmVxdWVzdF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogewogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwotCWludCBlcnI7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bDsKIAotCWVyciA9IGludGVsX2NvbnRleHRfdGltZWxpbmVfbG9jayhjZSk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKKwl0bCA9IGludGVsX2NvbnRleHRfdGltZWxpbmVfbG9jayhjZSk7CisJaWYgKElTX0VSUih0bCkpCisJCXJldHVybiBFUlJfQ0FTVCh0bCk7CiAKIAkvKiBNb3ZlIG91ciBvbGRlc3QgcmVxdWVzdCB0byB0aGUgc2xhYi1jYWNoZSAoaWYgbm90IGluIHVzZSEpICovCi0JcnEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZjZS0+cmluZy0+cmVxdWVzdF9saXN0LCB0eXBlb2YoKnJxKSwgcmluZ19saW5rKTsKLQlpZiAoIWxpc3RfaXNfbGFzdCgmcnEtPnJpbmdfbGluaywgJmNlLT5yaW5nLT5yZXF1ZXN0X2xpc3QpKQorCXJxID0gbGlzdF9maXJzdF9lbnRyeSgmdGwtPnJlcXVlc3RzLCB0eXBlb2YoKnJxKSwgbGluayk7CisJaWYgKCFsaXN0X2lzX2xhc3QoJnJxLT5saW5rLCAmdGwtPnJlcXVlc3RzKSkKIAkJaTkxNV9yZXF1ZXN0X3JldGlyZShycSk7CiAKIAlpbnRlbF9jb250ZXh0X2VudGVyKGNlKTsKQEAgLTc0OCwyMyArNzM1LDIzIEBAIGk5MTVfcmVxdWVzdF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogCQlnb3RvIGVycl91bmxvY2s7CiAKIAkvKiBDaGVjayB0aGF0IHdlIGRvIG5vdCBpbnRlcnJ1cHQgb3Vyc2VsdmVzIHdpdGggYSBuZXcgcmVxdWVzdCAqLwotCXJxLT5jb29raWUgPSBsb2NrZGVwX3Bpbl9sb2NrKCZjZS0+cmluZy0+dGltZWxpbmUtPm11dGV4KTsKKwlycS0+Y29va2llID0gbG9ja2RlcF9waW5fbG9jaygmdGwtPm11dGV4KTsKIAogCXJldHVybiBycTsKIAogZXJyX3VubG9jazoKLQlpbnRlbF9jb250ZXh0X3RpbWVsaW5lX3VubG9jayhjZSk7CisJaW50ZWxfY29udGV4dF90aW1lbGluZV91bmxvY2sodGwpOwogCXJldHVybiBycTsKIH0KIAogc3RhdGljIGludAogaTkxNV9yZXF1ZXN0X2F3YWl0X3N0YXJ0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpzaWduYWwpCiB7Ci0JaWYgKGxpc3RfaXNfZmlyc3QoJnNpZ25hbC0+cmluZ19saW5rLCAmc2lnbmFsLT5yaW5nLT5yZXF1ZXN0X2xpc3QpKQorCWlmIChsaXN0X2lzX2ZpcnN0KCZzaWduYWwtPmxpbmssICZzaWduYWwtPnRpbWVsaW5lLT5yZXF1ZXN0cykpCiAJCXJldHVybiAwOwogCi0Jc2lnbmFsID0gbGlzdF9wcmV2X2VudHJ5KHNpZ25hbCwgcmluZ19saW5rKTsKLQlpZiAoaTkxNV90aW1lbGluZV9zeW5jX2lzX2xhdGVyKHJxLT50aW1lbGluZSwgJnNpZ25hbC0+ZmVuY2UpKQorCXNpZ25hbCA9IGxpc3RfcHJldl9lbnRyeShzaWduYWwsIGxpbmspOworCWlmIChpbnRlbF90aW1lbGluZV9zeW5jX2lzX2xhdGVyKHJxLT50aW1lbGluZSwgJnNpZ25hbC0+ZmVuY2UpKQogCQlyZXR1cm4gMDsKIAogCXJldHVybiBpOTE1X3N3X2ZlbmNlX2F3YWl0X2RtYV9mZW5jZSgmcnEtPnN1Ym1pdCwKQEAgLTgxOCw3ICs4MDUsNyBAQCBlbWl0X3NlbWFwaG9yZV93YWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnRvLAogCQlyZXR1cm4gZXJyOwogCiAJLyogV2UgbmVlZCB0byBwaW4gdGhlIHNpZ25hbGVyJ3MgSFdTUCB1bnRpbCB3ZSBhcmUgZmluaXNoZWQgcmVhZGluZy4gKi8KLQllcnIgPSBpOTE1X3RpbWVsaW5lX3JlYWRfaHdzcChmcm9tLCB0bywgJmh3c3Bfb2Zmc2V0KTsKKwllcnIgPSBpbnRlbF90aW1lbGluZV9yZWFkX2h3c3AoZnJvbSwgdG8sICZod3NwX29mZnNldCk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIApAQCAtOTI4LDggKzkxNSw4IEBAIGk5MTVfcmVxdWVzdF9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogCQkJY29udGludWU7CiAKIAkJLyogU3F1YXNoIHJlcGVhdGVkIHdhaXRzIHRvIHRoZSBzYW1lIHRpbWVsaW5lcyAqLwotCQlpZiAoZmVuY2UtPmNvbnRleHQgIT0gcnEtPmk5MTUtPm1tLnVub3JkZXJlZF90aW1lbGluZSAmJgotCQkgICAgaTkxNV90aW1lbGluZV9zeW5jX2lzX2xhdGVyKHJxLT50aW1lbGluZSwgZmVuY2UpKQorCQlpZiAoZmVuY2UtPmNvbnRleHQgJiYKKwkJICAgIGludGVsX3RpbWVsaW5lX3N5bmNfaXNfbGF0ZXIocnEtPnRpbWVsaW5lLCBmZW5jZSkpCiAJCQljb250aW51ZTsKIAogCQlpZiAoZG1hX2ZlbmNlX2lzX2k5MTUoZmVuY2UpKQpAQCAtOTQyLDggKzkyOSw4IEBAIGk5MTVfcmVxdWVzdF9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogCQkJcmV0dXJuIHJldDsKIAogCQkvKiBSZWNvcmQgdGhlIGxhdGVzdCBmZW5jZSB1c2VkIGFnYWluc3QgZWFjaCB0aW1lbGluZSAqLwotCQlpZiAoZmVuY2UtPmNvbnRleHQgIT0gcnEtPmk5MTUtPm1tLnVub3JkZXJlZF90aW1lbGluZSkKLQkJCWk5MTVfdGltZWxpbmVfc3luY19zZXQocnEtPnRpbWVsaW5lLCBmZW5jZSk7CisJCWlmIChmZW5jZS0+Y29udGV4dCkKKwkJCWludGVsX3RpbWVsaW5lX3N5bmNfc2V0KHJxLT50aW1lbGluZSwgZmVuY2UpOwogCX0gd2hpbGUgKC0tbmNoaWxkKTsKIAogCXJldHVybiAwOwpAQCAtMTAyNyw3ICsxMDE0LDcgQEAgaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bywKIAkJc3RydWN0IGRtYV9mZW5jZSAqKnNoYXJlZDsKIAkJdW5zaWduZWQgaW50IGNvdW50LCBpOwogCi0JCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShvYmotPmJhc2UucmVzdiwKKwkJcmV0ID0gZG1hX3Jlc3ZfZ2V0X2ZlbmNlc19yY3Uob2JqLT5iYXNlLnJlc3YsCiAJCQkJCQkJJmV4Y2wsICZjb3VudCwgJnNoYXJlZCk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwpAQCAtMTA0NCw3ICsxMDMxLDcgQEAgaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bywKIAkJCWRtYV9mZW5jZV9wdXQoc2hhcmVkW2ldKTsKIAkJa2ZyZWUoc2hhcmVkKTsKIAl9IGVsc2UgewotCQlleGNsID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShvYmotPmJhc2UucmVzdik7CisJCWV4Y2wgPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3Uob2JqLT5iYXNlLnJlc3YpOwogCX0KIAogCWlmIChleGNsKSB7CkBAIC0xMDY1LDYgKzEwNTIsOSBAQCB2b2lkIGk5MTVfcmVxdWVzdF9za2lwKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBpbnQgZXJyb3IpCiAJR0VNX0JVR19PTighSVNfRVJSX1ZBTFVFKChsb25nKWVycm9yKSk7CiAJZG1hX2ZlbmNlX3NldF9lcnJvcigmcnEtPmZlbmNlLCBlcnJvcik7CiAKKwlpZiAocnEtPmluZml4ID09IHJxLT5wb3N0Zml4KQorCQlyZXR1cm47CisKIAkvKgogCSAqIEFzIHRoaXMgcmVxdWVzdCBsaWtlbHkgZGVwZW5kcyBvbiBzdGF0ZSBmcm9tIHRoZSBsb3N0CiAJICogY29udGV4dCwgY2xlYXIgb3V0IGFsbCB0aGUgdXNlciBvcGVyYXRpb25zIGxlYXZpbmcgdGhlCkBAIC0xMDc2LDEyICsxMDY2LDEzIEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3NraXAoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGludCBlcnJvcikKIAkJaGVhZCA9IDA7CiAJfQogCW1lbXNldCh2YWRkciArIGhlYWQsIDAsIHJxLT5wb3N0Zml4IC0gaGVhZCk7CisJcnEtPmluZml4ID0gcnEtPnBvc3RmaXg7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKIF9faTkxNV9yZXF1ZXN0X2FkZF90b190aW1lbGluZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUgPSBycS0+dGltZWxpbmU7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0aW1lbGluZSA9IHJxLT50aW1lbGluZTsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpwcmV2OwogCiAJLyoKQEAgLTExMDQsNyArMTA5NSw4IEBAIF9faTkxNV9yZXF1ZXN0X2FkZF90b190aW1lbGluZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAkgKiBwcmVjbHVkZXMgb3B0aW1pc2luZyB0byB1c2Ugc2VtYXBob3JlcyBzZXJpYWxpc2F0aW9uIG9mIGEgc2luZ2xlCiAJICogdGltZWxpbmUgYWNyb3NzIGVuZ2luZXMuCiAJICovCi0JcHJldiA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQodGltZWxpbmUtPmxhc3RfcmVxdWVzdC5yZXF1ZXN0LCAxKTsKKwlwcmV2ID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZCh0aW1lbGluZS0+bGFzdF9yZXF1ZXN0LnJlcXVlc3QsCisJCQkJCSBsb2NrZGVwX2lzX2hlbGQoJnRpbWVsaW5lLT5tdXRleCkpOwogCWlmIChwcmV2ICYmICFpOTE1X3JlcXVlc3RfY29tcGxldGVkKHByZXYpKSB7CiAJCWlmIChpc19wb3dlcl9vZl8yKHByZXYtPmVuZ2luZS0+bWFzayB8IHJxLT5lbmdpbmUtPm1hc2spKQogCQkJaTkxNV9zd19mZW5jZV9hd2FpdF9zd19mZW5jZSgmcnEtPnN1Ym1pdCwKQEAgLTExNDMsNyArMTEzNSw2IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgKl9faTkxNV9yZXF1ZXN0X2NvbW1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBycS0+ZW5naW5lOwogCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcnEtPnJpbmc7Ci0Jc3RydWN0IGk5MTVfcmVxdWVzdCAqcHJldjsKIAl1MzIgKmNzOwogCiAJR0VNX1RSQUNFKCIlcyBmZW5jZSAlbGx4OiVsbGRcbiIsCkBAIC0xMTU2LDYgKzExNDcsNyBAQCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpfX2k5MTVfcmVxdWVzdF9jb21taXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJICovCiAJR0VNX0JVR19PTihycS0+cmVzZXJ2ZWRfc3BhY2UgPiByaW5nLT5zcGFjZSk7CiAJcnEtPnJlc2VydmVkX3NwYWNlID0gMDsKKwlycS0+ZW1pdHRlZF9qaWZmaWVzID0gamlmZmllczsKIAogCS8qCiAJICogUmVjb3JkIHRoZSBwb3NpdGlvbiBvZiB0aGUgc3RhcnQgb2YgdGhlIGJyZWFkY3J1bWIgc28gdGhhdApAQCAtMTE2NywxMyArMTE1OSwxMiBAQCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpfX2k5MTVfcmVxdWVzdF9jb21taXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJR0VNX0JVR19PTihJU19FUlIoY3MpKTsKIAlycS0+cG9zdGZpeCA9IGludGVsX3Jpbmdfb2Zmc2V0KHJxLCBjcyk7CiAKLQlwcmV2ID0gX19pOTE1X3JlcXVlc3RfYWRkX3RvX3RpbWVsaW5lKHJxKTsKKwlyZXR1cm4gX19pOTE1X3JlcXVlc3RfYWRkX3RvX3RpbWVsaW5lKHJxKTsKK30KIAotCWxpc3RfYWRkX3RhaWwoJnJxLT5yaW5nX2xpbmssICZyaW5nLT5yZXF1ZXN0X2xpc3QpOwotCWlmIChsaXN0X2lzX2ZpcnN0KCZycS0+cmluZ19saW5rLCAmcmluZy0+cmVxdWVzdF9saXN0KSkKLQkJbGlzdF9hZGQoJnJpbmctPmFjdGl2ZV9saW5rLCAmcnEtPmk5MTUtPmd0LmFjdGl2ZV9yaW5ncyk7Ci0JcnEtPmVtaXR0ZWRfamlmZmllcyA9IGppZmZpZXM7Ci0KK3ZvaWQgX19pOTE1X3JlcXVlc3RfcXVldWUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCisJCQkgIGNvbnN0IHN0cnVjdCBpOTE1X3NjaGVkX2F0dHIgKmF0dHIpCit7CiAJLyoKIAkgKiBMZXQgdGhlIGJhY2tlbmQga25vdyBhIG5ldyByZXF1ZXN0IGhhcyBhcnJpdmVkIHRoYXQgbWF5IG5lZWQKIAkgKiB0byBhZGp1c3QgdGhlIGV4aXN0aW5nIGV4ZWN1dGlvbiBzY2hlZHVsZSBkdWUgdG8gYSBoaWdoIHByaW9yaXR5CkBAIC0xMTg1LDU3ICsxMTc2LDU0IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgKl9faTkxNV9yZXF1ZXN0X2NvbW1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAkgKiBkZWNpZGUgd2hldGhlciB0byBwcmVlbXB0IHRoZSBlbnRpcmUgY2hhaW4gc28gdGhhdCBpdCBpcyByZWFkeSB0bwogCSAqIHJ1biBhdCB0aGUgZWFybGllc3QgcG9zc2libGUgY29udmVuaWVuY2UuCiAJICovCi0JbG9jYWxfYmhfZGlzYWJsZSgpOwogCWk5MTVfc3dfZmVuY2VfY29tbWl0KCZycS0+c2VtYXBob3JlKTsKLQlyY3VfcmVhZF9sb2NrKCk7IC8qIFJDVSBzZXJpYWxpc2F0aW9uIGZvciBzZXQtd2VkZ2VkIHByb3RlY3Rpb24gKi8KLQlpZiAoZW5naW5lLT5zY2hlZHVsZSkgewotCQlzdHJ1Y3QgaTkxNV9zY2hlZF9hdHRyIGF0dHIgPSBycS0+Z2VtX2NvbnRleHQtPnNjaGVkOwotCi0JCS8qCi0JCSAqIEJvb3N0IGFjdHVhbCB3b3JrbG9hZHMgcGFzdCBzZW1hcGhvcmVzIQotCQkgKgotCQkgKiBXaXRoIHNlbWFwaG9yZXMgd2Ugc3BpbiBvbiBvbmUgZW5naW5lIHdhaXRpbmcgZm9yIGFub3RoZXIsCi0JCSAqIHNpbXBseSB0byByZWR1Y2UgdGhlIGxhdGVuY3kgb2Ygc3RhcnRpbmcgb3VyIHdvcmsgd2hlbgotCQkgKiB0aGUgc2lnbmFsZXIgY29tcGxldGVzLiBIb3dldmVyLCBpZiB0aGVyZSBpcyBhbnkgb3RoZXIKLQkJICogd29yayB0aGF0IHdlIGNvdWxkIGJlIGRvaW5nIG9uIHRoaXMgZW5naW5lIGluc3RlYWQsIHRoYXQKLQkJICogaXMgYmV0dGVyIHV0aWxpc2F0aW9uIGFuZCB3aWxsIHJlZHVjZSB0aGUgb3ZlcmFsbCBkdXJhdGlvbgotCQkgKiBvZiB0aGUgY3VycmVudCB3b3JrLiBUbyBhdm9pZCBQSSBib29zdGluZyBhIHNlbWFwaG9yZQotCQkgKiBmYXIgaW4gdGhlIGRpc3RhbmNlIHBhc3Qgb3ZlciB1c2VmdWwgd29yaywgd2Uga2VlcCBhIGhpc3RvcnkKLQkJICogb2YgYW55IHNlbWFwaG9yZSB1c2UgYWxvbmcgb3VyIGRlcGVuZGVuY3kgY2hhaW4uCi0JCSAqLwotCQlpZiAoIShycS0+c2NoZWQuZmxhZ3MgJiBJOTE1X1NDSEVEX0hBU19TRU1BUEhPUkVfQ0hBSU4pKQotCQkJYXR0ci5wcmlvcml0eSB8PSBJOTE1X1BSSU9SSVRZX05PU0VNQVBIT1JFOwotCi0JCS8qCi0JCSAqIEJvb3N0IHByaW9yaXRpZXMgdG8gbmV3IGNsaWVudHMgKG5ldyByZXF1ZXN0IGZsb3dzKS4KLQkJICoKLQkJICogQWxsb3cgaW50ZXJhY3RpdmUvc3luY2hyb25vdXMgY2xpZW50cyB0byBqdW1wIGFoZWFkIG9mCi0JCSAqIHRoZSBidWxrIGNsaWVudHMuIChGUV9DT0RFTCkKLQkJICovCi0JCWlmIChsaXN0X2VtcHR5KCZycS0+c2NoZWQuc2lnbmFsZXJzX2xpc3QpKQotCQkJYXR0ci5wcmlvcml0eSB8PSBJOTE1X1BSSU9SSVRZX1dBSVQ7Ci0KLQkJZW5naW5lLT5zY2hlZHVsZShycSwgJmF0dHIpOwotCX0KLQlyY3VfcmVhZF91bmxvY2soKTsKKwlpZiAoYXR0ciAmJiBycS0+ZW5naW5lLT5zY2hlZHVsZSkKKwkJcnEtPmVuZ2luZS0+c2NoZWR1bGUocnEsIGF0dHIpOwogCWk5MTVfc3dfZmVuY2VfY29tbWl0KCZycS0+c3VibWl0KTsKLQlsb2NhbF9iaF9lbmFibGUoKTsgLyogS2ljayB0aGUgZXhlY2xpc3RzIHRhc2tsZXQgaWYganVzdCBzY2hlZHVsZWQgKi8KLQotCXJldHVybiBwcmV2OwogfQogCiB2b2lkIGk5MTVfcmVxdWVzdF9hZGQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB7CisJc3RydWN0IGk5MTVfc2NoZWRfYXR0ciBhdHRyID0gcnEtPmdlbV9jb250ZXh0LT5zY2hlZDsKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKiBjb25zdCB0bCA9IHJxLT50aW1lbGluZTsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpwcmV2OwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmcnEtPnRpbWVsaW5lLT5tdXRleCk7Ci0JbG9ja2RlcF91bnBpbl9sb2NrKCZycS0+dGltZWxpbmUtPm11dGV4LCBycS0+Y29va2llKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ0bC0+bXV0ZXgpOworCWxvY2tkZXBfdW5waW5fbG9jaygmdGwtPm11dGV4LCBycS0+Y29va2llKTsKIAogCXRyYWNlX2k5MTVfcmVxdWVzdF9hZGQocnEpOwogCiAJcHJldiA9IF9faTkxNV9yZXF1ZXN0X2NvbW1pdChycSk7CiAKIAkvKgorCSAqIEJvb3N0IGFjdHVhbCB3b3JrbG9hZHMgcGFzdCBzZW1hcGhvcmVzIQorCSAqCisJICogV2l0aCBzZW1hcGhvcmVzIHdlIHNwaW4gb24gb25lIGVuZ2luZSB3YWl0aW5nIGZvciBhbm90aGVyLAorCSAqIHNpbXBseSB0byByZWR1Y2UgdGhlIGxhdGVuY3kgb2Ygc3RhcnRpbmcgb3VyIHdvcmsgd2hlbgorCSAqIHRoZSBzaWduYWxlciBjb21wbGV0ZXMuIEhvd2V2ZXIsIGlmIHRoZXJlIGlzIGFueSBvdGhlcgorCSAqIHdvcmsgdGhhdCB3ZSBjb3VsZCBiZSBkb2luZyBvbiB0aGlzIGVuZ2luZSBpbnN0ZWFkLCB0aGF0CisJICogaXMgYmV0dGVyIHV0aWxpc2F0aW9uIGFuZCB3aWxsIHJlZHVjZSB0aGUgb3ZlcmFsbCBkdXJhdGlvbgorCSAqIG9mIHRoZSBjdXJyZW50IHdvcmsuIFRvIGF2b2lkIFBJIGJvb3N0aW5nIGEgc2VtYXBob3JlCisJICogZmFyIGluIHRoZSBkaXN0YW5jZSBwYXN0IG92ZXIgdXNlZnVsIHdvcmssIHdlIGtlZXAgYSBoaXN0b3J5CisJICogb2YgYW55IHNlbWFwaG9yZSB1c2UgYWxvbmcgb3VyIGRlcGVuZGVuY3kgY2hhaW4uCisJICovCisJaWYgKCEocnEtPnNjaGVkLmZsYWdzICYgSTkxNV9TQ0hFRF9IQVNfU0VNQVBIT1JFX0NIQUlOKSkKKwkJYXR0ci5wcmlvcml0eSB8PSBJOTE1X1BSSU9SSVRZX05PU0VNQVBIT1JFOworCisJLyoKKwkgKiBCb29zdCBwcmlvcml0aWVzIHRvIG5ldyBjbGllbnRzIChuZXcgcmVxdWVzdCBmbG93cykuCisJICoKKwkgKiBBbGxvdyBpbnRlcmFjdGl2ZS9zeW5jaHJvbm91cyBjbGllbnRzIHRvIGp1bXAgYWhlYWQgb2YKKwkgKiB0aGUgYnVsayBjbGllbnRzLiAoRlFfQ09ERUwpCisJICovCisJaWYgKGxpc3RfZW1wdHkoJnJxLT5zY2hlZC5zaWduYWxlcnNfbGlzdCkpCisJCWF0dHIucHJpb3JpdHkgfD0gSTkxNV9QUklPUklUWV9XQUlUOworCisJbG9jYWxfYmhfZGlzYWJsZSgpOworCV9faTkxNV9yZXF1ZXN0X3F1ZXVlKHJxLCAmYXR0cik7CisJbG9jYWxfYmhfZW5hYmxlKCk7IC8qIEtpY2sgdGhlIGV4ZWNsaXN0cyB0YXNrbGV0IGlmIGp1c3Qgc2NoZWR1bGVkICovCisKKwkvKgogCSAqIEluIHR5cGljYWwgc2NlbmFyaW9zLCB3ZSBkbyBub3QgZXhwZWN0IHRoZSBwcmV2aW91cyByZXF1ZXN0IG9uCiAJICogdGhlIHRpbWVsaW5lIHRvIGJlIHN0aWxsIHRyYWNrZWQgYnkgdGltZWxpbmUtPmxhc3RfcmVxdWVzdCBpZiBpdAogCSAqIGhhcyBiZWVuIGNvbXBsZXRlZC4gSWYgdGhlIGNvbXBsZXRlZCByZXF1ZXN0IGlzIHN0aWxsIGhlcmUsIHRoYXQKQEAgLTEyNTIsMTAgKzEyNDAsMTAgQEAgdm9pZCBpOTE1X3JlcXVlc3RfYWRkKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogCSAqIHdvcmsgb24gYmVoYWxmIG9mIG90aGVycyAtLSBidXQgaW5zdGVhZCB3ZSBzaG91bGQgYmVuZWZpdCBmcm9tCiAJICogaW1wcm92ZWQgcmVzb3VyY2UgbWFuYWdlbWVudC4gKFdlbGwsIHRoYXQncyB0aGUgdGhlb3J5IGF0IGxlYXN0LikKIAkgKi8KLQlpZiAocHJldiAmJiBpOTE1X3JlcXVlc3RfY29tcGxldGVkKHByZXYpKQorCWlmIChwcmV2ICYmIGk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocHJldikgJiYgcHJldi0+dGltZWxpbmUgPT0gdGwpCiAJCWk5MTVfcmVxdWVzdF9yZXRpcmVfdXB0byhwcmV2KTsKIAotCW11dGV4X3VubG9jaygmcnEtPnRpbWVsaW5lLT5tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZ0bC0+bXV0ZXgpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb2NhbF9jbG9ja191cyh1bnNpZ25lZCBpbnQgKmNwdSkKQEAgLTEzOTAsOCArMTM3OCw3IEBAIGxvbmcgaTkxNV9yZXF1ZXN0X3dhaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJICogc2VyaWFsaXNlIHdhaXQvcmVzZXQgd2l0aCBhbiBleHBsaWNpdCBsb2NrLCB3ZSBkbyB3YW50CiAJICogbG9ja2RlcCB0byBkZXRlY3QgcG90ZW50aWFsIGRlcGVuZGVuY3kgY3ljbGVzLgogCSAqLwotCW11dGV4X2FjcXVpcmUoJnJxLT5pOTE1LT5ncHVfZXJyb3Iud2VkZ2VfbXV0ZXguZGVwX21hcCwKLQkJICAgICAgMCwgMCwgX1RISVNfSVBfKTsKKwltdXRleF9hY3F1aXJlKCZycS0+ZW5naW5lLT5ndC0+cmVzZXQubXV0ZXguZGVwX21hcCwgMCwgMCwgX1RISVNfSVBfKTsKIAogCS8qCiAJICogT3B0aW1pc3RpYyBzcGluIGJlZm9yZSB0b3VjaGluZyBJUlFzLgpAQCAtMTQ0Nyw4ICsxNDM0LDEwIEBAIGxvbmcgaTkxNV9yZXF1ZXN0X3dhaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJZm9yICg7OykgewogCQlzZXRfY3VycmVudF9zdGF0ZShzdGF0ZSk7CiAKLQkJaWYgKGk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKQorCQlpZiAoaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpIHsKKwkJCWRtYV9mZW5jZV9zaWduYWwoJnJxLT5mZW5jZSk7CiAJCQlicmVhazsKKwkJfQogCiAJCWlmIChzaWduYWxfcGVuZGluZ19zdGF0ZShzdGF0ZSwgY3VycmVudCkpIHsKIAkJCXRpbWVvdXQgPSAtRVJFU1RBUlRTWVM7CkBAIC0xNDY3LDI1ICsxNDU2LDUxIEBAIGxvbmcgaTkxNV9yZXF1ZXN0X3dhaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJZG1hX2ZlbmNlX3JlbW92ZV9jYWxsYmFjaygmcnEtPmZlbmNlLCAmd2FpdC5jYik7CiAKIG91dDoKLQltdXRleF9yZWxlYXNlKCZycS0+aTkxNS0+Z3B1X2Vycm9yLndlZGdlX211dGV4LmRlcF9tYXAsIDAsIF9USElTX0lQXyk7CisJbXV0ZXhfcmVsZWFzZSgmcnEtPmVuZ2luZS0+Z3QtPnJlc2V0Lm11dGV4LmRlcF9tYXAsIDAsIF9USElTX0lQXyk7CiAJdHJhY2VfaTkxNV9yZXF1ZXN0X3dhaXRfZW5kKHJxKTsKIAlyZXR1cm4gdGltZW91dDsKIH0KIAogYm9vbCBpOTE1X3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZywgKnRtcDsKKwlzdHJ1Y3QgaW50ZWxfZ3RfdGltZWxpbmVzICp0aW1lbGluZXMgPSAmaTkxNS0+Z3QudGltZWxpbmVzOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwsICp0bjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCUxJU1RfSEVBRChmcmVlKTsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCXNwaW5fbG9ja19pcnFzYXZlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodGwsIHRuLCAmdGltZWxpbmVzLT5hY3RpdmVfbGlzdCwgbGluaykgeworCQlpZiAoIW11dGV4X3RyeWxvY2soJnRsLT5tdXRleCkpCisJCQljb250aW51ZTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyaW5nLCB0bXAsCi0JCQkJICZpOTE1LT5ndC5hY3RpdmVfcmluZ3MsIGFjdGl2ZV9saW5rKSB7Ci0JCWludGVsX3JpbmdfZ2V0KHJpbmcpOyAvKiBsYXN0IHJxIGhvbGRzIHJlZmVyZW5jZSEgKi8KLQkJcmluZ19yZXRpcmVfcmVxdWVzdHMocmluZyk7Ci0JCWludGVsX3JpbmdfcHV0KHJpbmcpOworCQlpbnRlbF90aW1lbGluZV9nZXQodGwpOworCQlHRU1fQlVHX09OKCF0bC0+YWN0aXZlX2NvdW50KTsKKwkJdGwtPmFjdGl2ZV9jb3VudCsrOyAvKiBwaW4gdGhlIGxpc3QgZWxlbWVudCAqLworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKKworCQlyZXRpcmVfcmVxdWVzdHModGwpOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKKworCQkvKiBSZXN1bWUgaXRlcmF0aW9uIGFmdGVyIGRyb3BwaW5nIGxvY2sgKi8KKwkJbGlzdF9zYWZlX3Jlc2V0X25leHQodGwsIHRuLCBsaW5rKTsKKwkJaWYgKCEtLXRsLT5hY3RpdmVfY291bnQpCisJCQlsaXN0X2RlbCgmdGwtPmxpbmspOworCisJCW11dGV4X3VubG9jaygmdGwtPm11dGV4KTsKKworCQkvKiBEZWZlciB0aGUgZmluYWwgcmVsZWFzZSB0byBhZnRlciB0aGUgc3BpbmxvY2sgKi8KKwkJaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgmdGwtPmtyZWYucmVmY291bnQpKSB7CisJCQlHRU1fQlVHX09OKHRsLT5hY3RpdmVfY291bnQpOworCQkJbGlzdF9hZGQoJnRsLT5saW5rLCAmZnJlZSk7CisJCX0KIAl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7CiAKLQlyZXR1cm4gIWxpc3RfZW1wdHkoJmk5MTUtPmd0LmFjdGl2ZV9yaW5ncyk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHRsLCB0biwgJmZyZWUsIGxpbmspCisJCV9faW50ZWxfdGltZWxpbmVfZnJlZSgmdGwtPmtyZWYpOworCisJcmV0dXJuICFsaXN0X2VtcHR5KCZ0aW1lbGluZXMtPmFjdGl2ZV9saXN0KTsKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAppbmRleCBlZGJiZGZlLi44YWM2ZTEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxpbnV4L2xvY2tkZXAuaD4KIAorI2luY2x1ZGUgImd0L2ludGVsX2NvbnRleHRfdHlwZXMuaCIKICNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfdHlwZXMuaCIKIAogI2luY2x1ZGUgImk5MTVfZ2VtLmgiCkBAIC00MCw4ICs0MSw4IEBACiBzdHJ1Y3QgZHJtX2ZpbGU7CiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKIHN0cnVjdCBpOTE1X3JlcXVlc3Q7Ci1zdHJ1Y3QgaTkxNV90aW1lbGluZTsKLXN0cnVjdCBpOTE1X3RpbWVsaW5lX2NhY2hlbGluZTsKK3N0cnVjdCBpbnRlbF90aW1lbGluZTsKK3N0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmU7CiAKIHN0cnVjdCBpOTE1X2NhcHR1cmVfbGlzdCB7CiAJc3RydWN0IGk5MTVfY2FwdHVyZV9saXN0ICpuZXh0OwpAQCAtMTEyLDcgKzExMyw3IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqaHdfY29udGV4dDsKIAlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmU7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0aW1lbGluZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHNpZ25hbF9saW5rOwogCiAJLyoKQEAgLTE3NSw3ICsxNzYsNyBAQCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0IHsKIAkgKiBpbnNpZGUgdGhlIHRpbWVsaW5lJ3MgSFdTUCB2bWEsIGJ1dCBpdCBpcyBvbmx5IHZhbGlkIHdoaWxlIHRoaXMKIAkgKiByZXF1ZXN0IGhhcyBub3QgY29tcGxldGVkIGFuZCBndWFyZGVkIGJ5IHRoZSB0aW1lbGluZSBtdXRleC4KIAkgKi8KLQlzdHJ1Y3QgaTkxNV90aW1lbGluZV9jYWNoZWxpbmUgKmh3c3BfY2FjaGVsaW5lOworCXN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgKmh3c3BfY2FjaGVsaW5lOwogCiAJLyoqIFBvc2l0aW9uIGluIHRoZSByaW5nIG9mIHRoZSBzdGFydCBvZiB0aGUgcmVxdWVzdCAqLwogCXUzMiBoZWFkOwpAQCAtMjE1LDE0ICsyMTYsMTMgQEAgc3RydWN0IGk5MTVfcmVxdWVzdCB7CiAJLyoqIFRpbWUgYXQgd2hpY2ggdGhpcyByZXF1ZXN0IHdhcyBlbWl0dGVkLCBpbiBqaWZmaWVzLiAqLwogCXVuc2lnbmVkIGxvbmcgZW1pdHRlZF9qaWZmaWVzOwogCi0JYm9vbCB3YWl0Ym9vc3Q7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKyNkZWZpbmUgSTkxNV9SRVFVRVNUX1dBSVRCT09TVCBCSVQoMCkKKyNkZWZpbmUgSTkxNV9SRVFVRVNUX05PUFJFRU1QVCBCSVQoMSkKIAogCS8qKiB0aW1lbGluZS0+cmVxdWVzdCBlbnRyeSBmb3IgdGhpcyByZXF1ZXN0ICovCiAJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwogCi0JLyoqIHJpbmctPnJlcXVlc3RfbGlzdCBlbnRyeSBmb3IgdGhpcyByZXF1ZXN0ICovCi0Jc3RydWN0IGxpc3RfaGVhZCByaW5nX2xpbms7Ci0KIAlzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXY7CiAJLyoqIGZpbGVfcHJpdiBsaXN0IGVudHJ5IGZvciB0aGlzIHJlcXVlc3QgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGNsaWVudF9saW5rOwpAQCAtMjQ4LDYgKzI0OCw4IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgKiBfX211c3RfY2hlY2sKIGk5MTVfcmVxdWVzdF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKTsKIAogc3RydWN0IGk5MTVfcmVxdWVzdCAqX19pOTE1X3JlcXVlc3RfY29tbWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpOwordm9pZCBfX2k5MTVfcmVxdWVzdF9xdWV1ZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKKwkJCSAgY29uc3Qgc3RydWN0IGk5MTVfc2NoZWRfYXR0ciAqYXR0cik7CiAKIHZvaWQgaTkxNV9yZXF1ZXN0X3JldGlyZV91cHRvKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKTsKIApAQCAtNDI5LDYgKzQzMSwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9yZXF1ZXN0X21hcmtfY29tcGxldGUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJcnEtPmh3c3Bfc2Vxbm8gPSAodTMyICopJnJxLT5mZW5jZS5zZXFubzsgLyogZGVjb3VwbGUgZnJvbSBIV1NQICovCiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3JlcXVlc3RfaGFzX3dhaXRib29zdChjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlyZXR1cm4gcnEtPmZsYWdzICYgSTkxNV9SRVFVRVNUX1dBSVRCT09TVDsKK30KKworc3RhdGljIGlubGluZSBib29sIGk5MTVfcmVxdWVzdF9oYXNfbm9wcmVlbXB0KGNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCS8qIFByZWVtcHRpb24gc2hvdWxkIG9ubHkgYmUgZGlzYWJsZWQgdmVyeSByYXJlbHkgKi8KKwlyZXR1cm4gdW5saWtlbHkocnEtPmZsYWdzICYgSTkxNV9SRVFVRVNUX05PUFJFRU1QVCk7Cit9CisKIGJvb2wgaTkxNV9yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogCiAjZW5kaWYgLyogSTkxNV9SRVFVRVNUX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCmluZGV4IDJlOWIzOGIuLjdiODRlYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwpAQCAtMTc5LDggKzE3OSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHJxX3ByaW8oY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAKIHN0YXRpYyB2b2lkIGtpY2tfc3VibWlzc2lvbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBwcmlvKQogewotCWNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKmluZmxpZ2h0ID0KLQkJcG9ydF9yZXF1ZXN0KGVuZ2luZS0+ZXhlY2xpc3RzLnBvcnQpOworCWNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKmluZmxpZ2h0ID0gKmVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZTsKIAogCS8qCiAJICogSWYgd2UgYXJlIGFscmVhZHkgdGhlIGN1cnJlbnRseSBleGVjdXRpbmcgY29udGV4dCwgZG9uJ3QKQEAgLTM1MCw4ICszNDksNyBAQCB2b2lkIGk5MTVfc2NoZWR1bGVfYnVtcF9wcmlvcml0eShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdW5zaWduZWQgaW50IGJ1bXApCiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCUdFTV9CVUdfT04oYnVtcCAmIH5JOTE1X1BSSU9SSVRZX01BU0spOwotCi0JaWYgKFJFQURfT05DRShycS0+c2NoZWQuYXR0ci5wcmlvcml0eSkgPT0gSTkxNV9QUklPUklUWV9JTlZBTElEKQorCWlmIChSRUFEX09OQ0UocnEtPnNjaGVkLmF0dHIucHJpb3JpdHkpICYgYnVtcCkKIAkJcmV0dXJuOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkdWxlX2xvY2ssIGZsYWdzKTsKQEAgLTM5NSw2ICszOTMsNyBAQCBib29sIF9faTkxNV9zY2hlZF9ub2RlX2FkZF9kZXBlbmRlbmN5KHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUsCiAJCWxpc3RfYWRkKCZkZXAtPndhaXRfbGluaywgJnNpZ25hbC0+d2FpdGVyc19saXN0KTsKIAkJbGlzdF9hZGQoJmRlcC0+c2lnbmFsX2xpbmssICZub2RlLT5zaWduYWxlcnNfbGlzdCk7CiAJCWRlcC0+c2lnbmFsZXIgPSBzaWduYWw7CisJCWRlcC0+d2FpdGVyID0gbm9kZTsKIAkJZGVwLT5mbGFncyA9IGZsYWdzOwogCiAJCS8qIEtlZXAgdHJhY2sgb2Ygd2hldGhlciBhbnlvbmUgb24gdGhpcyBjaGFpbiBoYXMgYSBzZW1hcGhvcmUgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlcl90eXBlcy5oCmluZGV4IDNlMzA5NjMuLmFhZDgxYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXJfdHlwZXMuaApAQCAtNjIsNiArNjIsNyBAQCBzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlIHsKIAogc3RydWN0IGk5MTVfZGVwZW5kZW5jeSB7CiAJc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqc2lnbmFsZXI7CisJc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqd2FpdGVyOwogCXN0cnVjdCBsaXN0X2hlYWQgc2lnbmFsX2xpbms7CiAJc3RydWN0IGxpc3RfaGVhZCB3YWl0X2xpbms7CiAJc3RydWN0IGxpc3RfaGVhZCBkZnNfbGluazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2VsZnRlc3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2VsZnRlc3QuaAppbmRleCAyMDdlMjFiLi40ZDg4MjA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NlbGZ0ZXN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zZWxmdGVzdC5oCkBAIC0yNCw2ICsyNCw4IEBACiAjaWZuZGVmIF9fSTkxNV9TRUxGVEVTVF9IX18KICNkZWZpbmUgX19JOTE1X1NFTEZURVNUX0hfXwogCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKwogc3RydWN0IHBjaV9kZXY7CiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKIApAQCAtNjYsMTIgKzY4LDM3IEBAIHN0cnVjdCBpOTE1X3N1YnRlc3QgewogCWNvbnN0IGNoYXIgKm5hbWU7CiB9OwogCitpbnQgX19pOTE1X25vcF9zZXR1cCh2b2lkICpkYXRhKTsKK2ludCBfX2k5MTVfbm9wX3RlYXJkb3duKGludCBlcnIsIHZvaWQgKmRhdGEpOworCitpbnQgX19pOTE1X2xpdmVfc2V0dXAodm9pZCAqZGF0YSk7CitpbnQgX19pOTE1X2xpdmVfdGVhcmRvd24oaW50IGVyciwgdm9pZCAqZGF0YSk7CisKK2ludCBfX2ludGVsX2d0X2xpdmVfc2V0dXAodm9pZCAqZGF0YSk7CitpbnQgX19pbnRlbF9ndF9saXZlX3RlYXJkb3duKGludCBlcnIsIHZvaWQgKmRhdGEpOworCiBpbnQgX19pOTE1X3N1YnRlc3RzKGNvbnN0IGNoYXIgKmNhbGxlciwKKwkJICAgIGludCAoKnNldHVwKSh2b2lkICpkYXRhKSwKKwkJICAgIGludCAoKnRlYXJkb3duKShpbnQgZXJyLCB2b2lkICpkYXRhKSwKIAkJICAgIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgKnN0LAogCQkgICAgdW5zaWduZWQgaW50IGNvdW50LAogCQkgICAgdm9pZCAqZGF0YSk7CiAjZGVmaW5lIGk5MTVfc3VidGVzdHMoVCwgZGF0YSkgXAotCV9faTkxNV9zdWJ0ZXN0cyhfX2Z1bmNfXywgVCwgQVJSQVlfU0laRShUKSwgZGF0YSkKKwlfX2k5MTVfc3VidGVzdHMoX19mdW5jX18sIFwKKwkJCV9faTkxNV9ub3Bfc2V0dXAsIF9faTkxNV9ub3BfdGVhcmRvd24sIFwKKwkJCVQsIEFSUkFZX1NJWkUoVCksIGRhdGEpCisjZGVmaW5lIGk5MTVfbGl2ZV9zdWJ0ZXN0cyhULCBkYXRhKSAoeyBcCisJdHlwZWNoZWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICosIGRhdGEpOyBcCisJX19pOTE1X3N1YnRlc3RzKF9fZnVuY19fLCBcCisJCQlfX2k5MTVfbGl2ZV9zZXR1cCwgX19pOTE1X2xpdmVfdGVhcmRvd24sIFwKKwkJCVQsIEFSUkFZX1NJWkUoVCksIGRhdGEpOyBcCit9KQorI2RlZmluZSBpbnRlbF9ndF9saXZlX3N1YnRlc3RzKFQsIGRhdGEpICh7IFwKKwl0eXBlY2hlY2soc3RydWN0IGludGVsX2d0ICosIGRhdGEpOyBcCisJX19pOTE1X3N1YnRlc3RzKF9fZnVuY19fLCBcCisJCQlfX2ludGVsX2d0X2xpdmVfc2V0dXAsIF9faW50ZWxfZ3RfbGl2ZV90ZWFyZG93biwgXAorCQkJVCwgQVJSQVlfU0laRShUKSwgZGF0YSk7IFwKK30pCiAKICNkZWZpbmUgU1VCVEVTVCh4KSB7IHgsICN4IH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5kLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N1c3BlbmQuYwppbmRleCBhMDhkN2QxLi44NTA4YTAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N1c3BlbmQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N1c3BlbmQuYwpAQCAtMjksOCArMjksOSBAQAogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZmJjLmgiCiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9nbWJ1cy5oIgogCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X3JlZy5oIgotI2luY2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImk5MTVfc3VzcGVuZC5oIgogCiBzdGF0aWMgdm9pZCBpOTE1X3NhdmVfZGlzcGxheShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N1c3BlbmQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3VzcGVuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhMzZmYjQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N1c3BlbmQuaApAQCAtMCwwICsxLDE0IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSTkxNV9TVVNQRU5EX0hfXworI2RlZmluZSBfX0k5MTVfU1VTUEVORF9IX18KKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKK2ludCBpOTE1X3NhdmVfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworaW50IGk5MTVfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CisKKyNlbmRpZiAvKiBfX0k5MTVfU1VTUEVORF9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYwppbmRleCA1Mzg3YWFmLi42YTg4ZGIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jCkBAIC03LDcgKzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KICNpbmNsdWRlIDxsaW51eC9pcnFfd29yay5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2VydmF0aW9uLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KIAogI2luY2x1ZGUgImk5MTVfc3dfZmVuY2UuaCIKICNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCkBAIC0xNTcsOCArMTU3LDExIEBAIHN0YXRpYyB2b2lkIF9faTkxNV9zd19mZW5jZV93YWtlX3VwX2FsbChzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCiAJCUxJU1RfSEVBRChleHRyYSk7CiAKIAkJZG8gewotCQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBvcywgbmV4dCwgJngtPmhlYWQsIGVudHJ5KQotCQkJCXBvcy0+ZnVuYyhwb3MsIFRBU0tfTk9STUFMLCAwLCAmZXh0cmEpOworCQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBvcywgbmV4dCwgJngtPmhlYWQsIGVudHJ5KSB7CisJCQkJcG9zLT5mdW5jKHBvcywKKwkJCQkJICBUQVNLX05PUk1BTCwgZmVuY2UtPmVycm9yLAorCQkJCQkgICZleHRyYSk7CisJCQl9CiAKIAkJCWlmIChsaXN0X2VtcHR5KCZleHRyYSkpCiAJCQkJYnJlYWs7CkBAIC0yMTksNiArMjIyLDggQEAgdm9pZCBfX2k5MTVfc3dfZmVuY2VfaW5pdChzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCiAKIAlfX2luaXRfd2FpdHF1ZXVlX2hlYWQoJmZlbmNlLT53YWl0LCBuYW1lLCBrZXkpOwogCWF0b21pY19zZXQoJmZlbmNlLT5wZW5kaW5nLCAxKTsKKwlmZW5jZS0+ZXJyb3IgPSAwOworCiAJZmVuY2UtPmZsYWdzID0gKHVuc2lnbmVkIGxvbmcpZm47CiB9CiAKQEAgLTIzMCw2ICsyMzUsOCBAQCB2b2lkIGk5MTVfc3dfZmVuY2VfY29tbWl0KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSkKIAogc3RhdGljIGludCBpOTE1X3N3X2ZlbmNlX3dha2Uod2FpdF9xdWV1ZV9lbnRyeV90ICp3cSwgdW5zaWduZWQgbW9kZSwgaW50IGZsYWdzLCB2b2lkICprZXkpCiB7CisJaTkxNV9zd19mZW5jZV9zZXRfZXJyb3Jfb25jZSh3cS0+cHJpdmF0ZSwgZmxhZ3MpOworCiAJbGlzdF9kZWwoJndxLT5lbnRyeSk7CiAJX19pOTE1X3N3X2ZlbmNlX2NvbXBsZXRlKHdxLT5wcml2YXRlLCBrZXkpOwogCkBAIC0zMDIsOCArMzA5LDEwIEBAIHN0YXRpYyBpbnQgX19pOTE1X3N3X2ZlbmNlX2F3YWl0X3N3X2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIAlkZWJ1Z19mZW5jZV9hc3NlcnQoZmVuY2UpOwogCW1pZ2h0X3NsZWVwX2lmKGdmcGZsYWdzX2FsbG93X2Jsb2NraW5nKGdmcCkpOwogCi0JaWYgKGk5MTVfc3dfZmVuY2VfZG9uZShzaWduYWxlcikpCisJaWYgKGk5MTVfc3dfZmVuY2VfZG9uZShzaWduYWxlcikpIHsKKwkJaTkxNV9zd19mZW5jZV9zZXRfZXJyb3Jfb25jZShmZW5jZSwgc2lnbmFsZXItPmVycm9yKTsKIAkJcmV0dXJuIDA7CisJfQogCiAJZGVidWdfZmVuY2VfYXNzZXJ0KHNpZ25hbGVyKTsKIApAQCAtMzE5LDYgKzMyOCw3IEBAIHN0YXRpYyBpbnQgX19pOTE1X3N3X2ZlbmNlX2F3YWl0X3N3X2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIAkJCQlyZXR1cm4gLUVOT01FTTsKIAogCQkJaTkxNV9zd19mZW5jZV93YWl0KHNpZ25hbGVyKTsKKwkJCWk5MTVfc3dfZmVuY2Vfc2V0X2Vycm9yX29uY2UoZmVuY2UsIHNpZ25hbGVyLT5lcnJvcik7CiAJCQlyZXR1cm4gMDsKIAkJfQogCkBAIC0zMzcsNyArMzQ3LDcgQEAgc3RhdGljIGludCBfX2k5MTVfc3dfZmVuY2VfYXdhaXRfc3dfZmVuY2Uoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQlfX2FkZF93YWl0X3F1ZXVlX2VudHJ5X3RhaWwoJnNpZ25hbGVyLT53YWl0LCB3cSk7CiAJCXBlbmRpbmcgPSAxOwogCX0gZWxzZSB7Ci0JCWk5MTVfc3dfZmVuY2Vfd2FrZSh3cSwgMCwgMCwgTlVMTCk7CisJCWk5MTVfc3dfZmVuY2Vfd2FrZSh3cSwgMCwgc2lnbmFsZXItPmVycm9yLCBOVUxMKTsKIAkJcGVuZGluZyA9IDA7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNpZ25hbGVyLT53YWl0LmxvY2ssIGZsYWdzKTsKQEAgLTM3Miw2ICszODIsNyBAQCBzdGF0aWMgdm9pZCBkbWFfaTkxNV9zd19mZW5jZV93YWtlKHN0cnVjdCBkbWFfZmVuY2UgKmRtYSwKIHsKIAlzdHJ1Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgKmNiID0gY29udGFpbmVyX29mKGRhdGEsIHR5cGVvZigqY2IpLCBiYXNlKTsKIAorCWk5MTVfc3dfZmVuY2Vfc2V0X2Vycm9yX29uY2UoY2ItPmZlbmNlLCBkbWEtPmVycm9yKTsKIAlpOTE1X3N3X2ZlbmNlX2NvbXBsZXRlKGNiLT5mZW5jZSk7CiAJa2ZyZWUoY2IpOwogfQpAQCAtMzkxLDYgKzQwMiw3IEBAIHN0YXRpYyB2b2lkIHRpbWVyX2k5MTVfc3dfZmVuY2Vfd2FrZShzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAkJICBjYi0+ZG1hLT5zZXFubywKIAkJICBpOTE1X3N3X2ZlbmNlX2RlYnVnX2hpbnQoZmVuY2UpKTsKIAorCWk5MTVfc3dfZmVuY2Vfc2V0X2Vycm9yX29uY2UoZmVuY2UsIC1FVElNRURPVVQpOwogCWk5MTVfc3dfZmVuY2VfY29tcGxldGUoZmVuY2UpOwogfQogCkBAIC00ODAsNiArNDkyLDcgQEAgc3RhdGljIHZvaWQgX19kbWFfaTkxNV9zd19mZW5jZV93YWtlKHN0cnVjdCBkbWFfZmVuY2UgKmRtYSwKIHsKIAlzdHJ1Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgKmNiID0gY29udGFpbmVyX29mKGRhdGEsIHR5cGVvZigqY2IpLCBiYXNlKTsKIAorCWk5MTVfc3dfZmVuY2Vfc2V0X2Vycm9yX29uY2UoY2ItPmZlbmNlLCBkbWEtPmVycm9yKTsKIAlpOTE1X3N3X2ZlbmNlX2NvbXBsZXRlKGNiLT5mZW5jZSk7CiB9CiAKQEAgLTUwMSw3ICs1MTQsNyBAQCBpbnQgX19pOTE1X3N3X2ZlbmNlX2F3YWl0X2RtYV9mZW5jZShzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCiAJaWYgKHJldCA9PSAwKSB7CiAJCXJldCA9IDE7CiAJfSBlbHNlIHsKLQkJaTkxNV9zd19mZW5jZV9jb21wbGV0ZShmZW5jZSk7CisJCV9fZG1hX2k5MTVfc3dfZmVuY2Vfd2FrZShkbWEsICZjYi0+YmFzZSk7CiAJCWlmIChyZXQgPT0gLUVOT0VOVCkgLyogZmVuY2UgYWxyZWFkeSBzaWduYWxlZCAqLwogCQkJcmV0ID0gMDsKIAl9CkBAIC01MTAsNyArNTIzLDcgQEAgaW50IF9faTkxNV9zd19mZW5jZV9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogfQogCiBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9yZXNlcnZhdGlvbihzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCi0JCQkJICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCQkJICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKIAkJCQkgICAgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKmV4Y2x1ZGUsCiAJCQkJICAgIGJvb2wgd3JpdGUsCiAJCQkJICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCwKQEAgLTUyNiw3ICs1MzksNyBAQCBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9yZXNlcnZhdGlvbihzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCiAJCXN0cnVjdCBkbWFfZmVuY2UgKipzaGFyZWQ7CiAJCXVuc2lnbmVkIGludCBjb3VudCwgaTsKIAotCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2ZlbmNlc19yY3UocmVzdiwKKwkJcmV0ID0gZG1hX3Jlc3ZfZ2V0X2ZlbmNlc19yY3UocmVzdiwKIAkJCQkJCQkmZXhjbCwgJmNvdW50LCAmc2hhcmVkKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CkBAIC01NTEsNyArNTY0LDcgQEAgaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2YXRpb24oc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQkJZG1hX2ZlbmNlX3B1dChzaGFyZWRbaV0pOwogCQlrZnJlZShzaGFyZWQpOwogCX0gZWxzZSB7Ci0JCWV4Y2wgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KHJlc3YpOworCQlleGNsID0gZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KHJlc3YpOwogCX0KIAogCWlmIChyZXQgPj0gMCAmJiBleGNsICYmIGV4Y2wtPm9wcyAhPSBleGNsdWRlKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKaW5kZXggOWNiNWMzYi4uYWI3ZDU4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuaApAQCAtMTYsMTIgKzE2LDEzIEBACiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogCiBzdHJ1Y3QgY29tcGxldGlvbjsKLXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3Q7CitzdHJ1Y3QgZG1hX3Jlc3Y7CiAKIHN0cnVjdCBpOTE1X3N3X2ZlbmNlIHsKIAl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJYXRvbWljX3QgcGVuZGluZzsKKwlpbnQgZXJyb3I7CiB9OwogCiAjZGVmaW5lIEk5MTVfU1dfRkVOQ0VfQ0hFQ0tFRF9CSVQJMCAvKiB1c2VkIGludGVybmFsbHkgZm9yIERBRyBjaGVja2luZyAqLwpAQCAtODIsNyArODMsNyBAQCBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQkJCSAgZ2ZwX3QgZ2ZwKTsKIAogaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2YXRpb24oc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAotCQkJCSAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAorCQkJCSAgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzICpleGNsdWRlLAogCQkJCSAgICBib29sIHdyaXRlLAogCQkJCSAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQsCkBAIC0xMDYsNCArMTA3LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X3N3X2ZlbmNlX3dhaXQoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlKQogCXdhaXRfZXZlbnQoZmVuY2UtPndhaXQsIGk5MTVfc3dfZmVuY2VfZG9uZShmZW5jZSkpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQKK2k5MTVfc3dfZmVuY2Vfc2V0X2Vycm9yX29uY2Uoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLCBpbnQgZXJyb3IpCit7CisJY21weGNoZygmZmVuY2UtPmVycm9yLCAwLCBlcnJvcik7Cit9CisKICNlbmRpZiAvKiBfSTkxNV9TV19GRU5DRV9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZV93b3JrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlX3dvcmsuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzU1MmNkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZV93b3JrLmMKQEAgLTAsMCArMSw5NSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiaTkxNV9zd19mZW5jZV93b3JrLmgiCisKK3N0YXRpYyB2b2lkIGZlbmNlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBkbWFfZmVuY2Vfd29yayAqZiA9IGNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmYpLCB3b3JrKTsKKwlpbnQgZXJyOworCisJZXJyID0gZi0+b3BzLT53b3JrKGYpOworCWlmIChlcnIpCisJCWRtYV9mZW5jZV9zZXRfZXJyb3IoJmYtPmRtYSwgZXJyKTsKKwlkbWFfZmVuY2Vfc2lnbmFsKCZmLT5kbWEpOworCWRtYV9mZW5jZV9wdXQoJmYtPmRtYSk7Cit9CisKK3N0YXRpYyBpbnQgX19pOTE1X3N3X2ZlbmNlX2NhbGwKK2ZlbmNlX25vdGlmeShzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsIGVudW0gaTkxNV9zd19mZW5jZV9ub3RpZnkgc3RhdGUpCit7CisJc3RydWN0IGRtYV9mZW5jZV93b3JrICpmID0gY29udGFpbmVyX29mKGZlbmNlLCB0eXBlb2YoKmYpLCBjaGFpbik7CisKKwlzd2l0Y2ggKHN0YXRlKSB7CisJY2FzZSBGRU5DRV9DT01QTEVURToKKwkJaWYgKGZlbmNlLT5lcnJvcikKKwkJCWRtYV9mZW5jZV9zZXRfZXJyb3IoJmYtPmRtYSwgZmVuY2UtPmVycm9yKTsKKworCQlpZiAoIWYtPmRtYS5lcnJvcikgeworCQkJZG1hX2ZlbmNlX2dldCgmZi0+ZG1hKTsKKwkJCXF1ZXVlX3dvcmsoc3lzdGVtX3VuYm91bmRfd3EsICZmLT53b3JrKTsKKwkJfSBlbHNlIHsKKwkJCWRtYV9mZW5jZV9zaWduYWwoJmYtPmRtYSk7CisJCX0KKwkJYnJlYWs7CisKKwljYXNlIEZFTkNFX0ZSRUU6CisJCWRtYV9mZW5jZV9wdXQoJmYtPmRtYSk7CisJCWJyZWFrOworCX0KKworCXJldHVybiBOT1RJRllfRE9ORTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmdldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlyZXR1cm4gImRtYS1mZW5jZSI7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpnZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlzdHJ1Y3QgZG1hX2ZlbmNlX3dvcmsgKmYgPSBjb250YWluZXJfb2YoZmVuY2UsIHR5cGVvZigqZiksIGRtYSk7CisKKwlyZXR1cm4gZi0+b3BzLT5uYW1lID86ICJ3b3JrIjsKK30KKworc3RhdGljIHZvaWQgZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlzdHJ1Y3QgZG1hX2ZlbmNlX3dvcmsgKmYgPSBjb250YWluZXJfb2YoZmVuY2UsIHR5cGVvZigqZiksIGRtYSk7CisKKwlpZiAoZi0+b3BzLT5yZWxlYXNlKQorCQlmLT5vcHMtPnJlbGVhc2UoZik7CisKKwlpOTE1X3N3X2ZlbmNlX2ZpbmkoJmYtPmNoYWluKTsKKworCUJVSUxEX0JVR19PTihvZmZzZXRvZih0eXBlb2YoKmYpLCBkbWEpKTsKKwlkbWFfZmVuY2VfZnJlZSgmZi0+ZG1hKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGZlbmNlX29wcyA9IHsKKwkuZ2V0X2RyaXZlcl9uYW1lID0gZ2V0X2RyaXZlcl9uYW1lLAorCS5nZXRfdGltZWxpbmVfbmFtZSA9IGdldF90aW1lbGluZV9uYW1lLAorCS5yZWxlYXNlID0gZmVuY2VfcmVsZWFzZSwKK307CisKK3ZvaWQgZG1hX2ZlbmNlX3dvcmtfaW5pdChzdHJ1Y3QgZG1hX2ZlbmNlX3dvcmsgKmYsCisJCQkgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV93b3JrX29wcyAqb3BzKQoreworCXNwaW5fbG9ja19pbml0KCZmLT5sb2NrKTsKKwlkbWFfZmVuY2VfaW5pdCgmZi0+ZG1hLCAmZmVuY2Vfb3BzLCAmZi0+bG9jaywgMCwgMCk7CisJaTkxNV9zd19mZW5jZV9pbml0KCZmLT5jaGFpbiwgZmVuY2Vfbm90aWZ5KTsKKwlJTklUX1dPUksoJmYtPndvcmssIGZlbmNlX3dvcmspOworCisJZi0+b3BzID0gb3BzOworfQorCitpbnQgZG1hX2ZlbmNlX3dvcmtfY2hhaW4oc3RydWN0IGRtYV9mZW5jZV93b3JrICpmLCBzdHJ1Y3QgZG1hX2ZlbmNlICpzaWduYWwpCit7CisJaWYgKCFzaWduYWwpCisJCXJldHVybiAwOworCisJcmV0dXJuIF9faTkxNV9zd19mZW5jZV9hd2FpdF9kbWFfZmVuY2UoJmYtPmNoYWluLCBzaWduYWwsICZmLT5jYik7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlX3dvcmsuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2Vfd29yay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhMjJiMjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlX3dvcmsuaApAQCAtMCwwICsxLDQ0IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgSTkxNV9TV19GRU5DRV9XT1JLX0gKKyNkZWZpbmUgSTkxNV9TV19GRU5DRV9XT1JLX0gKKworI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CisKKyNpbmNsdWRlICJpOTE1X3N3X2ZlbmNlLmgiCisKK3N0cnVjdCBkbWFfZmVuY2Vfd29yazsKKworc3RydWN0IGRtYV9mZW5jZV93b3JrX29wcyB7CisJY29uc3QgY2hhciAqbmFtZTsKKwlpbnQgKCp3b3JrKShzdHJ1Y3QgZG1hX2ZlbmNlX3dvcmsgKmYpOworCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgZG1hX2ZlbmNlX3dvcmsgKmYpOworfTsKKworc3RydWN0IGRtYV9mZW5jZV93b3JrIHsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGRtYTsKKwlzcGlubG9ja190IGxvY2s7CisKKwlzdHJ1Y3QgaTkxNV9zd19mZW5jZSBjaGFpbjsKKwlzdHJ1Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgY2I7CisKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKKwljb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX3dvcmtfb3BzICpvcHM7Cit9OworCit2b2lkIGRtYV9mZW5jZV93b3JrX2luaXQoc3RydWN0IGRtYV9mZW5jZV93b3JrICpmLAorCQkJIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfd29ya19vcHMgKm9wcyk7CitpbnQgZG1hX2ZlbmNlX3dvcmtfY2hhaW4oc3RydWN0IGRtYV9mZW5jZV93b3JrICpmLCBzdHJ1Y3QgZG1hX2ZlbmNlICpzaWduYWwpOworCitzdGF0aWMgaW5saW5lIHZvaWQgZG1hX2ZlbmNlX3dvcmtfY29tbWl0KHN0cnVjdCBkbWFfZmVuY2Vfd29yayAqZikKK3sKKwlpOTE1X3N3X2ZlbmNlX2NvbW1pdCgmZi0+Y2hhaW4pOworfQorCisjZW5kaWYgLyogSTkxNV9TV19GRU5DRV9XT1JLX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwppbmRleCBlY2FjMWMzLi5kOGEzYjE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9zeXNmcy5oIgogI2luY2x1ZGUgImludGVsX3BtLmgiCiAjaW5jbHVkZSAiaW50ZWxfc2lkZWJhbmQuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxYWZkNDMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmgKQEAgLTAsMCArMSwxNCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfX0k5MTVfU1lTRlNfSF9fCisjZGVmaW5lIF9fSTkxNV9TWVNGU19IX18KKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKK3ZvaWQgaTkxNV9zZXR1cF9zeXNmcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cit2b2lkIGk5MTVfdGVhcmRvd25fc3lzZnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworCisjZW5kaWYgLyogX19JOTE1X1NZU0ZTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzExY2U5Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdGltZWxpbmUuYworKysgL2Rldi9udWxsCkBAIC0xLDU3OSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE2LTIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqLwotCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLQotI2luY2x1ZGUgImk5MTVfYWN0aXZlLmgiCi0jaW5jbHVkZSAiaTkxNV9zeW5jbWFwLmgiCi0jaW5jbHVkZSAiaTkxNV90aW1lbGluZS5oIgotCi0jZGVmaW5lIHB0cl9zZXRfYml0KHB0ciwgYml0KSAoKHR5cGVvZihwdHIpKSgodW5zaWduZWQgbG9uZykocHRyKSB8IEJJVChiaXQpKSkKLSNkZWZpbmUgcHRyX3Rlc3RfYml0KHB0ciwgYml0KSAoKHVuc2lnbmVkIGxvbmcpKHB0cikgJiBCSVQoYml0KSkKLQotc3RydWN0IGk5MTVfdGltZWxpbmVfaHdzcCB7Ci0Jc3RydWN0IGk5MTVfZ3RfdGltZWxpbmVzICpndDsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGZyZWVfbGluazsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQl1NjQgZnJlZV9iaXRtYXA7Ci19OwotCi1zdHJ1Y3QgaTkxNV90aW1lbGluZV9jYWNoZWxpbmUgewotCXN0cnVjdCBpOTE1X2FjdGl2ZSBhY3RpdmU7Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmVfaHdzcCAqaHdzcDsKLQl2b2lkICp2YWRkcjsKLSNkZWZpbmUgQ0FDSEVMSU5FX0JJVFMgNgotI2RlZmluZSBDQUNIRUxJTkVfRlJFRSBDQUNIRUxJTkVfQklUUwotfTsKLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqCi1od3NwX3RvX2k5MTUoc3RydWN0IGk5MTVfdGltZWxpbmVfaHdzcCAqaHdzcCkKLXsKLQlyZXR1cm4gY29udGFpbmVyX29mKGh3c3AtPmd0LCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgZ3QudGltZWxpbmVzKTsKLX0KLQotc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqX19od3NwX2FsbG9jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0KLQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGk5MTUsIFBBR0VfU0laRSk7Ci0JaWYgKElTX0VSUihvYmopKQotCQlyZXR1cm4gRVJSX0NBU1Qob2JqKTsKLQotCWk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5KG9iaiwgSTkxNV9DQUNIRV9MTEMpOwotCi0Jdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCAmaTkxNS0+Z2d0dC52bSwgTlVMTCk7Ci0JaWYgKElTX0VSUih2bWEpKQotCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7Ci0KLQlyZXR1cm4gdm1hOwotfQotCi1zdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKLWh3c3BfYWxsb2Moc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lLCB1bnNpZ25lZCBpbnQgKmNhY2hlbGluZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRpbWVsaW5lLT5pOTE1OwotCXN0cnVjdCBpOTE1X2d0X3RpbWVsaW5lcyAqZ3QgPSAmaTkxNS0+Z3QudGltZWxpbmVzOwotCXN0cnVjdCBpOTE1X3RpbWVsaW5lX2h3c3AgKmh3c3A7Ci0KLQlCVUlMRF9CVUdfT04oQklUU19QRVJfVFlQRSh1NjQpICogQ0FDSEVMSU5FX0JZVEVTID4gUEFHRV9TSVpFKTsKLQotCXNwaW5fbG9ja19pcnEoJmd0LT5od3NwX2xvY2spOwotCi0JLyogaHdzcF9mcmVlX2xpc3Qgb25seSBjb250YWlucyBIV1NQIHRoYXQgaGF2ZSBhdmFpbGFibGUgY2FjaGVsaW5lcyAqLwotCWh3c3AgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmd0LT5od3NwX2ZyZWVfbGlzdCwKLQkJCQkJdHlwZW9mKCpod3NwKSwgZnJlZV9saW5rKTsKLQlpZiAoIWh3c3ApIHsKLQkJc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0KLQkJc3Bpbl91bmxvY2tfaXJxKCZndC0+aHdzcF9sb2NrKTsKLQotCQlod3NwID0ga21hbGxvYyhzaXplb2YoKmh3c3ApLCBHRlBfS0VSTkVMKTsKLQkJaWYgKCFod3NwKQotCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQkJdm1hID0gX19od3NwX2FsbG9jKGk5MTUpOwotCQlpZiAoSVNfRVJSKHZtYSkpIHsKLQkJCWtmcmVlKGh3c3ApOwotCQkJcmV0dXJuIHZtYTsKLQkJfQotCi0JCXZtYS0+cHJpdmF0ZSA9IGh3c3A7Ci0JCWh3c3AtPnZtYSA9IHZtYTsKLQkJaHdzcC0+ZnJlZV9iaXRtYXAgPSB+MHVsbDsKLQkJaHdzcC0+Z3QgPSBndDsKLQotCQlzcGluX2xvY2tfaXJxKCZndC0+aHdzcF9sb2NrKTsKLQkJbGlzdF9hZGQoJmh3c3AtPmZyZWVfbGluaywgJmd0LT5od3NwX2ZyZWVfbGlzdCk7Ci0JfQotCi0JR0VNX0JVR19PTighaHdzcC0+ZnJlZV9iaXRtYXApOwotCSpjYWNoZWxpbmUgPSBfX2ZmczY0KGh3c3AtPmZyZWVfYml0bWFwKTsKLQlod3NwLT5mcmVlX2JpdG1hcCAmPSB+QklUX1VMTCgqY2FjaGVsaW5lKTsKLQlpZiAoIWh3c3AtPmZyZWVfYml0bWFwKQotCQlsaXN0X2RlbCgmaHdzcC0+ZnJlZV9saW5rKTsKLQotCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmh3c3BfbG9jayk7Ci0KLQlHRU1fQlVHX09OKGh3c3AtPnZtYS0+cHJpdmF0ZSAhPSBod3NwKTsKLQlyZXR1cm4gaHdzcC0+dm1hOwotfQotCi1zdGF0aWMgdm9pZCBfX2lkbGVfaHdzcF9mcmVlKHN0cnVjdCBpOTE1X3RpbWVsaW5lX2h3c3AgKmh3c3AsIGludCBjYWNoZWxpbmUpCi17Ci0Jc3RydWN0IGk5MTVfZ3RfdGltZWxpbmVzICpndCA9IGh3c3AtPmd0OwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZ3QtPmh3c3BfbG9jaywgZmxhZ3MpOwotCi0JLyogQXMgYSBjYWNoZWxpbmUgYmVjb21lcyBhdmFpbGFibGUsIHB1Ymxpc2ggdGhlIEhXU1Agb24gdGhlIGZyZWVsaXN0ICovCi0JaWYgKCFod3NwLT5mcmVlX2JpdG1hcCkKLQkJbGlzdF9hZGRfdGFpbCgmaHdzcC0+ZnJlZV9saW5rLCAmZ3QtPmh3c3BfZnJlZV9saXN0KTsKLQotCUdFTV9CVUdfT04oY2FjaGVsaW5lID49IEJJVFNfUEVSX1RZUEUoaHdzcC0+ZnJlZV9iaXRtYXApKTsKLQlod3NwLT5mcmVlX2JpdG1hcCB8PSBCSVRfVUxMKGNhY2hlbGluZSk7Ci0KLQkvKiBBbmQgaWYgbm8gb25lIGlzIGxlZnQgdXNpbmcgaXQsIGdpdmUgdGhlIHBhZ2UgYmFjayB0byB0aGUgc3lzdGVtICovCi0JaWYgKGh3c3AtPmZyZWVfYml0bWFwID09IH4wdWxsKSB7Ci0JCWk5MTVfdm1hX3B1dChod3NwLT52bWEpOwotCQlsaXN0X2RlbCgmaHdzcC0+ZnJlZV9saW5rKTsKLQkJa2ZyZWUoaHdzcCk7Ci0JfQotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ3QtPmh3c3BfbG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgdm9pZCBfX2lkbGVfY2FjaGVsaW5lX2ZyZWUoc3RydWN0IGk5MTVfdGltZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlHRU1fQlVHX09OKCFpOTE1X2FjdGl2ZV9pc19pZGxlKCZjbC0+YWN0aXZlKSk7Ci0KLQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNsLT5od3NwLT52bWEtPm9iaik7Ci0JaTkxNV92bWFfcHV0KGNsLT5od3NwLT52bWEpOwotCV9faWRsZV9od3NwX2ZyZWUoY2wtPmh3c3AsIHB0cl91bm1hc2tfYml0cyhjbC0+dmFkZHIsIENBQ0hFTElORV9CSVRTKSk7Ci0KLQlpOTE1X2FjdGl2ZV9maW5pKCZjbC0+YWN0aXZlKTsKLQlrZnJlZShjbCk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY2FjaGVsaW5lX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmFjdGl2ZSkKLXsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZV9jYWNoZWxpbmUgKmNsID0KLQkJY29udGFpbmVyX29mKGFjdGl2ZSwgdHlwZW9mKCpjbCksIGFjdGl2ZSk7Ci0KLQlpOTE1X3ZtYV91bnBpbihjbC0+aHdzcC0+dm1hKTsKLQlpZiAocHRyX3Rlc3RfYml0KGNsLT52YWRkciwgQ0FDSEVMSU5FX0ZSRUUpKQotCQlfX2lkbGVfY2FjaGVsaW5lX2ZyZWUoY2wpOwotfQotCi1zdGF0aWMgc3RydWN0IGk5MTVfdGltZWxpbmVfY2FjaGVsaW5lICoKLWNhY2hlbGluZV9hbGxvYyhzdHJ1Y3QgaTkxNV90aW1lbGluZV9od3NwICpod3NwLCB1bnNpZ25lZCBpbnQgY2FjaGVsaW5lKQotewotCXN0cnVjdCBpOTE1X3RpbWVsaW5lX2NhY2hlbGluZSAqY2w7Ci0Jdm9pZCAqdmFkZHI7Ci0KLQlHRU1fQlVHX09OKGNhY2hlbGluZSA+PSBCSVQoQ0FDSEVMSU5FX0JJVFMpKTsKLQotCWNsID0ga21hbGxvYyhzaXplb2YoKmNsKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFjbCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKGh3c3AtPnZtYS0+b2JqLCBJOTE1X01BUF9XQik7Ci0JaWYgKElTX0VSUih2YWRkcikpIHsKLQkJa2ZyZWUoY2wpOwotCQlyZXR1cm4gRVJSX0NBU1QodmFkZHIpOwotCX0KLQotCWk5MTVfdm1hX2dldChod3NwLT52bWEpOwotCWNsLT5od3NwID0gaHdzcDsKLQljbC0+dmFkZHIgPSBwYWdlX3BhY2tfYml0cyh2YWRkciwgY2FjaGVsaW5lKTsKLQotCWk5MTVfYWN0aXZlX2luaXQoaHdzcF90b19pOTE1KGh3c3ApLCAmY2wtPmFjdGl2ZSwgX19jYWNoZWxpbmVfcmV0aXJlKTsKLQotCXJldHVybiBjbDsKLX0KLQotc3RhdGljIHZvaWQgY2FjaGVsaW5lX2FjcXVpcmUoc3RydWN0IGk5MTVfdGltZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlpZiAoY2wgJiYgaTkxNV9hY3RpdmVfYWNxdWlyZSgmY2wtPmFjdGl2ZSkpCi0JCV9faTkxNV92bWFfcGluKGNsLT5od3NwLT52bWEpOwotfQotCi1zdGF0aWMgdm9pZCBjYWNoZWxpbmVfcmVsZWFzZShzdHJ1Y3QgaTkxNV90aW1lbGluZV9jYWNoZWxpbmUgKmNsKQotewotCWlmIChjbCkKLQkJaTkxNV9hY3RpdmVfcmVsZWFzZSgmY2wtPmFjdGl2ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNhY2hlbGluZV9mcmVlKHN0cnVjdCBpOTE1X3RpbWVsaW5lX2NhY2hlbGluZSAqY2wpCi17Ci0JR0VNX0JVR19PTihwdHJfdGVzdF9iaXQoY2wtPnZhZGRyLCBDQUNIRUxJTkVfRlJFRSkpOwotCWNsLT52YWRkciA9IHB0cl9zZXRfYml0KGNsLT52YWRkciwgQ0FDSEVMSU5FX0ZSRUUpOwotCi0JaWYgKGk5MTVfYWN0aXZlX2lzX2lkbGUoJmNsLT5hY3RpdmUpKQotCQlfX2lkbGVfY2FjaGVsaW5lX2ZyZWUoY2wpOwotfQotCi1pbnQgaTkxNV90aW1lbGluZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkgICAgICAgc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lLAotCQkgICAgICAgc3RydWN0IGk5MTVfdm1hICpod3NwKQotewotCXZvaWQgKnZhZGRyOwotCi0JLyoKLQkgKiBJZGVhbGx5IHdlIHdhbnQgYSBzZXQgb2YgZW5naW5lcyBvbiBhIHNpbmdsZSBsZWFmIGFzIHdlIGV4cGVjdAotCSAqIHRvIG1vc3RseSBiZSB0cmFja2luZyBzeW5jaHJvbmlzYXRpb24gYmV0d2VlbiBlbmdpbmVzLiBJdCBpcyBub3QKLQkgKiBhIGh1Z2UgaXNzdWUgaWYgdGhpcyBpcyBub3QgdGhlIGNhc2UsIGJ1dCB3ZSBtYXkgd2FudCB0byBtaXRpZ2F0ZQotCSAqIGFueSBwYWdlIGNyb3NzaW5nIHBlbmFsdGllcyBpZiB0aGV5IGJlY29tZSBhbiBpc3N1ZS4KLQkgKgotCSAqIENhbGxlZCBkdXJpbmcgZWFybHlfaW5pdCBiZWZvcmUgd2Uga25vdyBob3cgbWFueSBlbmdpbmVzIHRoZXJlIGFyZS4KLQkgKi8KLQlCVUlMRF9CVUdfT04oS1NZTkNNQVAgPCBJOTE1X05VTV9FTkdJTkVTKTsKLQotCXRpbWVsaW5lLT5pOTE1ID0gaTkxNTsKLQl0aW1lbGluZS0+cGluX2NvdW50ID0gMDsKLQl0aW1lbGluZS0+aGFzX2luaXRpYWxfYnJlYWRjcnVtYiA9ICFod3NwOwotCXRpbWVsaW5lLT5od3NwX2NhY2hlbGluZSA9IE5VTEw7Ci0KLQlpZiAoIWh3c3ApIHsKLQkJc3RydWN0IGk5MTVfdGltZWxpbmVfY2FjaGVsaW5lICpjbDsKLQkJdW5zaWduZWQgaW50IGNhY2hlbGluZTsKLQotCQlod3NwID0gaHdzcF9hbGxvYyh0aW1lbGluZSwgJmNhY2hlbGluZSk7Ci0JCWlmIChJU19FUlIoaHdzcCkpCi0JCQlyZXR1cm4gUFRSX0VSUihod3NwKTsKLQotCQljbCA9IGNhY2hlbGluZV9hbGxvYyhod3NwLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCQlpZiAoSVNfRVJSKGNsKSkgewotCQkJX19pZGxlX2h3c3BfZnJlZShod3NwLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCQkJcmV0dXJuIFBUUl9FUlIoY2wpOwotCQl9Ci0KLQkJdGltZWxpbmUtPmh3c3BfY2FjaGVsaW5lID0gY2w7Ci0JCXRpbWVsaW5lLT5od3NwX29mZnNldCA9IGNhY2hlbGluZSAqIENBQ0hFTElORV9CWVRFUzsKLQotCQl2YWRkciA9IHBhZ2VfbWFza19iaXRzKGNsLT52YWRkcik7Ci0JfSBlbHNlIHsKLQkJdGltZWxpbmUtPmh3c3Bfb2Zmc2V0ID0gSTkxNV9HRU1fSFdTX1NFUU5PX0FERFI7Ci0KLQkJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChod3NwLT5vYmosIEk5MTVfTUFQX1dCKTsKLQkJaWYgKElTX0VSUih2YWRkcikpCi0JCQlyZXR1cm4gUFRSX0VSUih2YWRkcik7Ci0JfQotCi0JdGltZWxpbmUtPmh3c3Bfc2Vxbm8gPQotCQltZW1zZXQodmFkZHIgKyB0aW1lbGluZS0+aHdzcF9vZmZzZXQsIDAsIENBQ0hFTElORV9CWVRFUyk7Ci0KLQl0aW1lbGluZS0+aHdzcF9nZ3R0ID0gaTkxNV92bWFfZ2V0KGh3c3ApOwotCUdFTV9CVUdfT04odGltZWxpbmUtPmh3c3Bfb2Zmc2V0ID49IGh3c3AtPnNpemUpOwotCi0JdGltZWxpbmUtPmZlbmNlX2NvbnRleHQgPSBkbWFfZmVuY2VfY29udGV4dF9hbGxvYygxKTsKLQotCW11dGV4X2luaXQoJnRpbWVsaW5lLT5tdXRleCk7Ci0KLQlJTklUX0FDVElWRV9SRVFVRVNUKCZ0aW1lbGluZS0+bGFzdF9yZXF1ZXN0KTsKLQlJTklUX0xJU1RfSEVBRCgmdGltZWxpbmUtPnJlcXVlc3RzKTsKLQotCWk5MTVfc3luY21hcF9pbml0KCZ0aW1lbGluZS0+c3luYyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotdm9pZCBpOTE1X3RpbWVsaW5lc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCXN0cnVjdCBpOTE1X2d0X3RpbWVsaW5lcyAqZ3QgPSAmaTkxNS0+Z3QudGltZWxpbmVzOwotCi0JbXV0ZXhfaW5pdCgmZ3QtPm11dGV4KTsKLQlJTklUX0xJU1RfSEVBRCgmZ3QtPmFjdGl2ZV9saXN0KTsKLQotCXNwaW5fbG9ja19pbml0KCZndC0+aHdzcF9sb2NrKTsKLQlJTklUX0xJU1RfSEVBRCgmZ3QtPmh3c3BfZnJlZV9saXN0KTsKLQotCS8qIHZpYSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKCkgKi8KLQlpOTE1X2dlbV9zaHJpbmtlcl90YWludHNfbXV0ZXgoaTkxNSwgJmd0LT5tdXRleCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHRpbWVsaW5lX2FkZF90b19hY3RpdmUoc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsKQotewotCXN0cnVjdCBpOTE1X2d0X3RpbWVsaW5lcyAqZ3QgPSAmdGwtPmk5MTUtPmd0LnRpbWVsaW5lczsKLQotCW11dGV4X2xvY2soJmd0LT5tdXRleCk7Ci0JbGlzdF9hZGQoJnRsLT5saW5rLCAmZ3QtPmFjdGl2ZV9saXN0KTsKLQltdXRleF91bmxvY2soJmd0LT5tdXRleCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHRpbWVsaW5lX3JlbW92ZV9mcm9tX2FjdGl2ZShzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwpCi17Ci0Jc3RydWN0IGk5MTVfZ3RfdGltZWxpbmVzICpndCA9ICZ0bC0+aTkxNS0+Z3QudGltZWxpbmVzOwotCi0JbXV0ZXhfbG9jaygmZ3QtPm11dGV4KTsKLQlsaXN0X2RlbCgmdGwtPmxpbmspOwotCW11dGV4X3VubG9jaygmZ3QtPm11dGV4KTsKLX0KLQotLyoqCi0gKiBpOTE1X3RpbWVsaW5lc19wYXJrIC0gY2FsbGVkIHdoZW4gdGhlIGRyaXZlciBpZGxlcwotICogQGk5MTU6IHRoZSBkcm1faTkxNV9wcml2YXRlIGRldmljZQotICoKLSAqIFdoZW4gdGhlIGRyaXZlciBpcyBjb21wbGV0ZWx5IGlkbGUsIHdlIGtub3cgdGhhdCBhbGwgb2Ygb3VyIHN5bmMgcG9pbnRzCi0gKiBoYXZlIGJlZW4gc2lnbmFsZWQgYW5kIG91ciB0cmFja2luZyBpcyB0aGVuIGVudGlyZWx5IHJlZHVuZGFudC4gQW55IHJlcXVlc3QKLSAqIHRvIHdhaXQgdXBvbiBhbiBvbGRlciBzeW5jIHBvaW50IHdpbGwgYmUgY29tcGxldGVkIGluc3RhbnRseSBhcyB3ZSBrbm93Ci0gKiB0aGUgZmVuY2UgaXMgc2lnbmFsZWQgYW5kIHRoZXJlZm9yZSB3ZSB3aWxsIG5vdCBldmVuIGxvb2sgdGhlbSB1cCBpbiB0aGUKLSAqIHN5bmMgcG9pbnQgbWFwLgotICovCi12b2lkIGk5MTVfdGltZWxpbmVzX3Bhcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGk5MTVfZ3RfdGltZWxpbmVzICpndCA9ICZpOTE1LT5ndC50aW1lbGluZXM7Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lOwotCi0JbXV0ZXhfbG9jaygmZ3QtPm11dGV4KTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRpbWVsaW5lLCAmZ3QtPmFjdGl2ZV9saXN0LCBsaW5rKSB7Ci0JCS8qCi0JCSAqIEFsbCBrbm93biBmZW5jZXMgYXJlIGNvbXBsZXRlZCBzbyB3ZSBjYW4gc2NyYXAKLQkJICogdGhlIGN1cnJlbnQgc3luYyBwb2ludCB0cmFja2luZyBhbmQgc3RhcnQgYWZyZXNoLAotCQkgKiBhbnkgYXR0ZW1wdCB0byB3YWl0IHVwb24gYSBwcmV2aW91cyBzeW5jIHBvaW50Ci0JCSAqIHdpbGwgYmUgc2tpcHBlZCBhcyB0aGUgZmVuY2Ugd2FzIHNpZ25hbGVkLgotCQkgKi8KLQkJaTkxNV9zeW5jbWFwX2ZyZWUoJnRpbWVsaW5lLT5zeW5jKTsKLQl9Ci0JbXV0ZXhfdW5sb2NrKCZndC0+bXV0ZXgpOwotfQotCi12b2lkIGk5MTVfdGltZWxpbmVfZmluaShzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUpCi17Ci0JR0VNX0JVR19PTih0aW1lbGluZS0+cGluX2NvdW50KTsKLQlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZ0aW1lbGluZS0+cmVxdWVzdHMpKTsKLQotCWk5MTVfc3luY21hcF9mcmVlKCZ0aW1lbGluZS0+c3luYyk7Ci0KLQlpZiAodGltZWxpbmUtPmh3c3BfY2FjaGVsaW5lKQotCQljYWNoZWxpbmVfZnJlZSh0aW1lbGluZS0+aHdzcF9jYWNoZWxpbmUpOwotCWVsc2UKLQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCh0aW1lbGluZS0+aHdzcF9nZ3R0LT5vYmopOwotCi0JaTkxNV92bWFfcHV0KHRpbWVsaW5lLT5od3NwX2dndHQpOwotfQotCi1zdHJ1Y3QgaTkxNV90aW1lbGluZSAqCi1pOTE1X3RpbWVsaW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJICAgICBzdHJ1Y3QgaTkxNV92bWEgKmdsb2JhbF9od3NwKQotewotCXN0cnVjdCBpOTE1X3RpbWVsaW5lICp0aW1lbGluZTsKLQlpbnQgZXJyOwotCi0JdGltZWxpbmUgPSBremFsbG9jKHNpemVvZigqdGltZWxpbmUpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXRpbWVsaW5lKQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQotCWVyciA9IGk5MTVfdGltZWxpbmVfaW5pdChpOTE1LCB0aW1lbGluZSwgZ2xvYmFsX2h3c3ApOwotCWlmIChlcnIpIHsKLQkJa2ZyZWUodGltZWxpbmUpOwotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwotCX0KLQotCWtyZWZfaW5pdCgmdGltZWxpbmUtPmtyZWYpOwotCi0JcmV0dXJuIHRpbWVsaW5lOwotfQotCi1pbnQgaTkxNV90aW1lbGluZV9waW4oc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsKQotewotCWludCBlcnI7Ci0KLQlpZiAodGwtPnBpbl9jb3VudCsrKQotCQlyZXR1cm4gMDsKLQlHRU1fQlVHX09OKCF0bC0+cGluX2NvdW50KTsKLQotCWVyciA9IGk5MTVfdm1hX3Bpbih0bC0+aHdzcF9nZ3R0LCAwLCAwLCBQSU5fR0xPQkFMIHwgUElOX0hJR0gpOwotCWlmIChlcnIpCi0JCWdvdG8gdW5waW47Ci0KLQl0bC0+aHdzcF9vZmZzZXQgPQotCQlpOTE1X2dndHRfb2Zmc2V0KHRsLT5od3NwX2dndHQpICsKLQkJb2Zmc2V0X2luX3BhZ2UodGwtPmh3c3Bfb2Zmc2V0KTsKLQotCWNhY2hlbGluZV9hY3F1aXJlKHRsLT5od3NwX2NhY2hlbGluZSk7Ci0JdGltZWxpbmVfYWRkX3RvX2FjdGl2ZSh0bCk7Ci0KLQlyZXR1cm4gMDsKLQotdW5waW46Ci0JdGwtPnBpbl9jb3VudCA9IDA7Ci0JcmV0dXJuIGVycjsKLX0KLQotc3RhdGljIHUzMiB0aW1lbGluZV9hZHZhbmNlKHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCkKLXsKLQlHRU1fQlVHX09OKCF0bC0+cGluX2NvdW50KTsKLQlHRU1fQlVHX09OKHRsLT5zZXFubyAmIHRsLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iKTsKLQotCXJldHVybiB0bC0+c2Vxbm8gKz0gMSArIHRsLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iOwotfQotCi1zdGF0aWMgdm9pZCB0aW1lbGluZV9yb2xsYmFjayhzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwpCi17Ci0JdGwtPnNlcW5vIC09IDEgKyB0bC0+aGFzX2luaXRpYWxfYnJlYWRjcnVtYjsKLX0KLQotc3RhdGljIG5vaW5saW5lIGludAotX19pOTE1X3RpbWVsaW5lX2dldF9zZXFubyhzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwsCi0JCQkgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAotCQkJICB1MzIgKnNlcW5vKQotewotCXN0cnVjdCBpOTE1X3RpbWVsaW5lX2NhY2hlbGluZSAqY2w7Ci0JdW5zaWduZWQgaW50IGNhY2hlbGluZTsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQl2b2lkICp2YWRkcjsKLQlpbnQgZXJyOwotCi0JLyoKLQkgKiBJZiB0aGVyZSBpcyBhbiBvdXRzdGFuZGluZyBHUFUgcmVmZXJlbmNlIHRvIHRoaXMgY2FjaGVsaW5lLAotCSAqIHN1Y2ggYXMgaXQgYmVpbmcgc2FtcGxlZCBieSBhIEhXIHNlbWFwaG9yZSBvbiBhbm90aGVyIHRpbWVsaW5lLAotCSAqIHdlIGNhbm5vdCB3cmFwYXJvdW5kIG91ciBzZXFubyB2YWx1ZSAodGhlIEhXIHNlbWFwaG9yZSBkb2VzCi0JICogYSBzdHJpY3QgZ3JlYXRlci10aGFuLW9yLWVxdWFscyBjb21wYXJlLCBub3QgaTkxNV9zZXFub19wYXNzZWQpLgotCSAqIFNvIGlmIHRoZSBjYWNoZWxpbmUgaXMgc3RpbGwgYnVzeSwgd2UgbXVzdCBkZXRhY2ggb3Vyc2VsdmVzCi0JICogZnJvbSBpdCBhbmQgbGVhdmUgaXQgaW5mbGlnaHQgYWxvbmdzaWRlIGl0cyB1c2Vycy4KLQkgKgotCSAqIEhvd2V2ZXIsIGlmIG5vYm9keSBpcyB3YXRjaGluZyBhbmQgd2UgY2FuIGd1YXJhbnRlZSB0aGF0IG5vYm9keQotCSAqIHdpbGwsIHdlIGNvdWxkIHNpbXBseSByZXVzZSB0aGUgc2FtZSBjYWNoZWxpbmUuCi0JICoKLQkgKiBpZiAoaTkxNV9hY3RpdmVfcmVxdWVzdF9pc19zaWduYWxlZCgmdGwtPmxhc3RfcmVxdWVzdCkgJiYKLQkgKiAgICAgaTkxNV9hY3RpdmVfaXNfc2lnbmFsZWQoJnRsLT5od3NwX2NhY2hlbGluZS0+YWN0aXZlKSkKLQkgKglyZXR1cm4gMDsKLQkgKgotCSAqIFRoYXQgc2VlbXMgdW5saWtlbHkgZm9yIGEgYnVzeSB0aW1lbGluZSB0aGF0IG5lZWRlZCB0byB3cmFwIGluCi0JICogdGhlIGZpcnN0IHBsYWNlLCBzbyBqdXN0IHJlcGxhY2UgdGhlIGNhY2hlbGluZS4KLQkgKi8KLQotCXZtYSA9IGh3c3BfYWxsb2ModGwsICZjYWNoZWxpbmUpOwotCWlmIChJU19FUlIodm1hKSkgewotCQllcnIgPSBQVFJfRVJSKHZtYSk7Ci0JCWdvdG8gZXJyX3JvbGxiYWNrOwotCX0KLQotCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIFBJTl9HTE9CQUwgfCBQSU5fSElHSCk7Ci0JaWYgKGVycikgewotCQlfX2lkbGVfaHdzcF9mcmVlKHZtYS0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsKLQkJZ290byBlcnJfcm9sbGJhY2s7Ci0JfQotCi0JY2wgPSBjYWNoZWxpbmVfYWxsb2Modm1hLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCWlmIChJU19FUlIoY2wpKSB7Ci0JCWVyciA9IFBUUl9FUlIoY2wpOwotCQlfX2lkbGVfaHdzcF9mcmVlKHZtYS0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsKLQkJZ290byBlcnJfdW5waW47Ci0JfQotCUdFTV9CVUdfT04oY2wtPmh3c3AtPnZtYSAhPSB2bWEpOwotCi0JLyoKLQkgKiBBdHRhY2ggdGhlIG9sZCBjYWNoZWxpbmUgdG8gdGhlIGN1cnJlbnQgcmVxdWVzdCwgc28gdGhhdCB3ZSBvbmx5Ci0JICogZnJlZSBpdCBhZnRlciB0aGUgY3VycmVudCByZXF1ZXN0IGlzIHJldGlyZWQsIHdoaWNoIGVuc3VyZXMgdGhhdAotCSAqIGFsbCB3cml0ZXMgaW50byB0aGUgY2FjaGVsaW5lIGZyb20gcHJldmlvdXMgcmVxdWVzdHMgYXJlIGNvbXBsZXRlLgotCSAqLwotCWVyciA9IGk5MTVfYWN0aXZlX3JlZigmdGwtPmh3c3BfY2FjaGVsaW5lLT5hY3RpdmUsCi0JCQkgICAgICB0bC0+ZmVuY2VfY29udGV4dCwgcnEpOwotCWlmIChlcnIpCi0JCWdvdG8gZXJyX2NhY2hlbGluZTsKLQotCWNhY2hlbGluZV9yZWxlYXNlKHRsLT5od3NwX2NhY2hlbGluZSk7IC8qIG93bmVyc2hpcCBub3cgeGZlcmVkIHRvIHJxICovCi0JY2FjaGVsaW5lX2ZyZWUodGwtPmh3c3BfY2FjaGVsaW5lKTsKLQotCWk5MTVfdm1hX3VucGluKHRsLT5od3NwX2dndHQpOyAvKiBiaW5kaW5nIGtlcHQgYWxpdmUgYnkgb2xkIGNhY2hlbGluZSAqLwotCWk5MTVfdm1hX3B1dCh0bC0+aHdzcF9nZ3R0KTsKLQotCXRsLT5od3NwX2dndHQgPSBpOTE1X3ZtYV9nZXQodm1hKTsKLQotCXZhZGRyID0gcGFnZV9tYXNrX2JpdHMoY2wtPnZhZGRyKTsKLQl0bC0+aHdzcF9vZmZzZXQgPSBjYWNoZWxpbmUgKiBDQUNIRUxJTkVfQllURVM7Ci0JdGwtPmh3c3Bfc2Vxbm8gPQotCQltZW1zZXQodmFkZHIgKyB0bC0+aHdzcF9vZmZzZXQsIDAsIENBQ0hFTElORV9CWVRFUyk7Ci0KLQl0bC0+aHdzcF9vZmZzZXQgKz0gaTkxNV9nZ3R0X29mZnNldCh2bWEpOwotCi0JY2FjaGVsaW5lX2FjcXVpcmUoY2wpOwotCXRsLT5od3NwX2NhY2hlbGluZSA9IGNsOwotCi0JKnNlcW5vID0gdGltZWxpbmVfYWR2YW5jZSh0bCk7Ci0JR0VNX0JVR19PTihpOTE1X3NlcW5vX3Bhc3NlZCgqdGwtPmh3c3Bfc2Vxbm8sICpzZXFubykpOwotCXJldHVybiAwOwotCi1lcnJfY2FjaGVsaW5lOgotCWNhY2hlbGluZV9mcmVlKGNsKTsKLWVycl91bnBpbjoKLQlpOTE1X3ZtYV91bnBpbih2bWEpOwotZXJyX3JvbGxiYWNrOgotCXRpbWVsaW5lX3JvbGxiYWNrKHRsKTsKLQlyZXR1cm4gZXJyOwotfQotCi1pbnQgaTkxNV90aW1lbGluZV9nZXRfc2Vxbm8oc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsLAotCQkJICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAotCQkJICAgIHUzMiAqc2Vxbm8pCi17Ci0JKnNlcW5vID0gdGltZWxpbmVfYWR2YW5jZSh0bCk7Ci0KLQkvKiBSZXBsYWNlIHRoZSBIV1NQIG9uIHdyYXBhcm91bmQgZm9yIEhXIHNlbWFwaG9yZXMgKi8KLQlpZiAodW5saWtlbHkoISpzZXFubyAmJiB0bC0+aHdzcF9jYWNoZWxpbmUpKQotCQlyZXR1cm4gX19pOTE1X3RpbWVsaW5lX2dldF9zZXFubyh0bCwgcnEsIHNlcW5vKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGNhY2hlbGluZV9yZWYoc3RydWN0IGk5MTVfdGltZWxpbmVfY2FjaGVsaW5lICpjbCwKLQkJCSBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKLXsKLQlyZXR1cm4gaTkxNV9hY3RpdmVfcmVmKCZjbC0+YWN0aXZlLCBycS0+ZmVuY2UuY29udGV4dCwgcnEpOwotfQotCi1pbnQgaTkxNV90aW1lbGluZV9yZWFkX2h3c3Aoc3RydWN0IGk5MTVfcmVxdWVzdCAqZnJvbSwKLQkJCSAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bywKLQkJCSAgICB1MzIgKmh3c3ApCi17Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmVfY2FjaGVsaW5lICpjbCA9IGZyb20tPmh3c3BfY2FjaGVsaW5lOwotCXN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCA9IGZyb20tPnRpbWVsaW5lOwotCWludCBlcnI7Ci0KLQlHRU1fQlVHX09OKHRvLT50aW1lbGluZSA9PSB0bCk7Ci0KLQltdXRleF9sb2NrX25lc3RlZCgmdGwtPm11dGV4LCBTSU5HTEVfREVQVEhfTkVTVElORyk7Ci0JZXJyID0gaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChmcm9tKTsKLQlpZiAoIWVycikKLQkJZXJyID0gY2FjaGVsaW5lX3JlZihjbCwgdG8pOwotCWlmICghZXJyKSB7Ci0JCWlmIChsaWtlbHkoY2wgPT0gdGwtPmh3c3BfY2FjaGVsaW5lKSkgewotCQkJKmh3c3AgPSB0bC0+aHdzcF9vZmZzZXQ7Ci0JCX0gZWxzZSB7IC8qIGFjcm9zcyBhIHNlcW5vIHdyYXAsIHJlY292ZXIgdGhlIG9yaWdpbmFsIG9mZnNldCAqLwotCQkJKmh3c3AgPSBpOTE1X2dndHRfb2Zmc2V0KGNsLT5od3NwLT52bWEpICsKLQkJCQlwdHJfdW5tYXNrX2JpdHMoY2wtPnZhZGRyLCBDQUNIRUxJTkVfQklUUykgKgotCQkJCUNBQ0hFTElORV9CWVRFUzsKLQkJfQotCX0KLQltdXRleF91bmxvY2soJnRsLT5tdXRleCk7Ci0KLQlyZXR1cm4gZXJyOwotfQotCi12b2lkIGk5MTVfdGltZWxpbmVfdW5waW4oc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsKQotewotCUdFTV9CVUdfT04oIXRsLT5waW5fY291bnQpOwotCWlmICgtLXRsLT5waW5fY291bnQpCi0JCXJldHVybjsKLQotCXRpbWVsaW5lX3JlbW92ZV9mcm9tX2FjdGl2ZSh0bCk7Ci0JY2FjaGVsaW5lX3JlbGVhc2UodGwtPmh3c3BfY2FjaGVsaW5lKTsKLQotCS8qCi0JICogU2luY2UgdGhpcyB0aW1lbGluZSBpcyBpZGxlLCBhbGwgYmFyaWVycyB1cG9uIHdoaWNoIHdlIHdlcmUgd2FpdGluZwotCSAqIG11c3QgYWxzbyBiZSBjb21wbGV0ZSBhbmQgc28gd2UgY2FuIGRpc2NhcmQgdGhlIGxhc3QgdXNlZCBiYXJyaWVycwotCSAqIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4KLQkgKi8KLQlpOTE1X3N5bmNtYXBfZnJlZSgmdGwtPnN5bmMpOwotCi0JX19pOTE1X3ZtYV91bnBpbih0bC0+aHdzcF9nZ3R0KTsKLX0KLQotdm9pZCBfX2k5MTVfdGltZWxpbmVfZnJlZShzdHJ1Y3Qga3JlZiAqa3JlZikKLXsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUgPQotCQljb250YWluZXJfb2Yoa3JlZiwgdHlwZW9mKCp0aW1lbGluZSksIGtyZWYpOwotCi0JaTkxNV90aW1lbGluZV9maW5pKHRpbWVsaW5lKTsKLQlrZnJlZSh0aW1lbGluZSk7Ci19Ci0KLXZvaWQgaTkxNV90aW1lbGluZXNfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlzdHJ1Y3QgaTkxNV9ndF90aW1lbGluZXMgKmd0ID0gJmk5MTUtPmd0LnRpbWVsaW5lczsKLQotCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJmd0LT5hY3RpdmVfbGlzdCkpOwotCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJmd0LT5od3NwX2ZyZWVfbGlzdCkpOwotCi0JbXV0ZXhfZGVzdHJveSgmZ3QtPm11dGV4KTsKLX0KLQotI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQotI2luY2x1ZGUgInNlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMiCi0jaW5jbHVkZSAic2VsZnRlc3RzL2k5MTVfdGltZWxpbmUuYyIKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNmU1ZTVhLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdGltZWxpbmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2lmbmRlZiBJOTE1X1RJTUVMSU5FX0gKLSNkZWZpbmUgSTkxNV9USU1FTElORV9ICi0KLSNpbmNsdWRlIDxsaW51eC9sb2NrZGVwLmg+Ci0KLSNpbmNsdWRlICJpOTE1X2FjdGl2ZS5oIgotI2luY2x1ZGUgImk5MTVfc3luY21hcC5oIgotI2luY2x1ZGUgImk5MTVfdGltZWxpbmVfdHlwZXMuaCIKLQotaW50IGk5MTVfdGltZWxpbmVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJICAgICAgIHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCwKLQkJICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqaHdzcCk7Ci12b2lkIGk5MTVfdGltZWxpbmVfZmluaShzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwpOwotCi1zdHJ1Y3QgaTkxNV90aW1lbGluZSAqCi1pOTE1X3RpbWVsaW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJICAgICBzdHJ1Y3QgaTkxNV92bWEgKmdsb2JhbF9od3NwKTsKLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV90aW1lbGluZSAqCi1pOTE1X3RpbWVsaW5lX2dldChzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUpCi17Ci0Ja3JlZl9nZXQoJnRpbWVsaW5lLT5rcmVmKTsKLQlyZXR1cm4gdGltZWxpbmU7Ci19Ci0KLXZvaWQgX19pOTE1X3RpbWVsaW5lX2ZyZWUoc3RydWN0IGtyZWYgKmtyZWYpOwotc3RhdGljIGlubGluZSB2b2lkIGk5MTVfdGltZWxpbmVfcHV0KHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0aW1lbGluZSkKLXsKLQlrcmVmX3B1dCgmdGltZWxpbmUtPmtyZWYsIF9faTkxNV90aW1lbGluZV9mcmVlKTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgX19pOTE1X3RpbWVsaW5lX3N5bmNfc2V0KHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCwKLQkJCQkJICAgdTY0IGNvbnRleHQsIHUzMiBzZXFubykKLXsKLQlyZXR1cm4gaTkxNV9zeW5jbWFwX3NldCgmdGwtPnN5bmMsIGNvbnRleHQsIHNlcW5vKTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgaTkxNV90aW1lbGluZV9zeW5jX3NldChzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwsCi0JCQkJCSBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKLXsKLQlyZXR1cm4gX19pOTE1X3RpbWVsaW5lX3N5bmNfc2V0KHRsLCBmZW5jZS0+Y29udGV4dCwgZmVuY2UtPnNlcW5vKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIF9faTkxNV90aW1lbGluZV9zeW5jX2lzX2xhdGVyKHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCwKLQkJCQkJCSB1NjQgY29udGV4dCwgdTMyIHNlcW5vKQotewotCXJldHVybiBpOTE1X3N5bmNtYXBfaXNfbGF0ZXIoJnRsLT5zeW5jLCBjb250ZXh0LCBzZXFubyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3RpbWVsaW5lX3N5bmNfaXNfbGF0ZXIoc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsLAotCQkJCQkgICAgICAgY29uc3Qgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCi17Ci0JcmV0dXJuIF9faTkxNV90aW1lbGluZV9zeW5jX2lzX2xhdGVyKHRsLCBmZW5jZS0+Y29udGV4dCwgZmVuY2UtPnNlcW5vKTsKLX0KLQotaW50IGk5MTVfdGltZWxpbmVfcGluKHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCk7Ci1pbnQgaTkxNV90aW1lbGluZV9nZXRfc2Vxbm8oc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsLAotCQkJICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAotCQkJICAgIHUzMiAqc2Vxbm8pOwotdm9pZCBpOTE1X3RpbWVsaW5lX3VucGluKHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCk7Ci0KLWludCBpOTE1X3RpbWVsaW5lX3JlYWRfaHdzcChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpmcm9tLAotCQkJICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnVudGlsLAotCQkJICAgIHUzMiAqaHdzcF9vZmZzZXQpOwotCi12b2lkIGk5MTVfdGltZWxpbmVzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotdm9pZCBpOTE1X3RpbWVsaW5lc19wYXJrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZvaWQgaTkxNV90aW1lbGluZXNfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZV90eXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmY2U1Y2I0Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdGltZWxpbmVfdHlwZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KLSAqLwotCi0jaWZuZGVmIF9fSTkxNV9USU1FTElORV9UWVBFU19IX18KLSNkZWZpbmUgX19JOTE1X1RJTUVMSU5FX1RZUEVTX0hfXwotCi0jaW5jbHVkZSA8bGludXgvbGlzdC5oPgotI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0KLSNpbmNsdWRlICJpOTE1X2FjdGl2ZV90eXBlcy5oIgotCi1zdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKLXN0cnVjdCBpOTE1X3ZtYTsKLXN0cnVjdCBpOTE1X3RpbWVsaW5lX2NhY2hlbGluZTsKLXN0cnVjdCBpOTE1X3N5bmNtYXA7Ci0KLXN0cnVjdCBpOTE1X3RpbWVsaW5lIHsKLQl1NjQgZmVuY2VfY29udGV4dDsKLQl1MzIgc2Vxbm87Ci0KLQlzdHJ1Y3QgbXV0ZXggbXV0ZXg7IC8qIHByb3RlY3RzIHRoZSBmbG93IG9mIHJlcXVlc3RzICovCi0KLQl1bnNpZ25lZCBpbnQgcGluX2NvdW50OwotCWNvbnN0IHUzMiAqaHdzcF9zZXFubzsKLQlzdHJ1Y3QgaTkxNV92bWEgKmh3c3BfZ2d0dDsKLQl1MzIgaHdzcF9vZmZzZXQ7Ci0KLQlzdHJ1Y3QgaTkxNV90aW1lbGluZV9jYWNoZWxpbmUgKmh3c3BfY2FjaGVsaW5lOwotCi0JYm9vbCBoYXNfaW5pdGlhbF9icmVhZGNydW1iOwotCi0JLyoqCi0JICogTGlzdCBvZiBicmVhZGNydW1icyBhc3NvY2lhdGVkIHdpdGggR1BVIHJlcXVlc3RzIGN1cnJlbnRseQotCSAqIG91dHN0YW5kaW5nLgotCSAqLwotCXN0cnVjdCBsaXN0X2hlYWQgcmVxdWVzdHM7Ci0KLQkvKiBDb250YWlucyBhbiBSQ1UgZ3VhcmRlZCBwb2ludGVyIHRvIHRoZSBsYXN0IHJlcXVlc3QuIE5vIHJlZmVyZW5jZSBpcwotCSAqIGhlbGQgdG8gdGhlIHJlcXVlc3QsIHVzZXJzIG11c3QgY2FyZWZ1bGx5IGFjcXVpcmUgYSByZWZlcmVuY2UgdG8KLQkgKiB0aGUgcmVxdWVzdCB1c2luZyBpOTE1X2FjdGl2ZV9yZXF1ZXN0X2dldF9yZXF1ZXN0X3JjdSgpLCBvciBob2xkIHRoZQotCSAqIHN0cnVjdF9tdXRleC4KLQkgKi8KLQlzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCBsYXN0X3JlcXVlc3Q7Ci0KLQkvKioKLQkgKiBXZSB0cmFjayB0aGUgbW9zdCByZWNlbnQgc2Vxbm8gdGhhdCB3ZSB3YWl0IG9uIGluIGV2ZXJ5IGNvbnRleHQgc28KLQkgKiB0aGF0IHdlIG9ubHkgaGF2ZSB0byBlbWl0IGEgbmV3IGF3YWl0IGFuZCBkZXBlbmRlbmN5IG9uIGEgbW9yZQotCSAqIHJlY2VudCBzeW5jIHBvaW50LiBBcyB0aGUgY29udGV4dHMgbWF5IGJlIGV4ZWN1dGVkIG91dC1vZi1vcmRlciwgd2UKLQkgKiBoYXZlIHRvIHRyYWNrIGVhY2ggaW5kaXZpZHVhbGx5IGFuZCBjYW4gbm90IHJlbHkgb24gYW4gYWJzb2x1dGUKLQkgKiBnbG9iYWxfc2Vxbm8uIFdoZW4gd2Uga25vdyB0aGF0IGFsbCB0cmFja2VkIGZlbmNlcyBhcmUgY29tcGxldGVkCi0JICogKGkuZS4gd2hlbiB0aGUgZHJpdmVyIGlzIGlkbGUpLCB3ZSBrbm93IHRoYXQgdGhlIHN5bmNtYXAgaXMKLQkgKiByZWR1bmRhbnQgYW5kIHdlIGNhbiBkaXNjYXJkIGl0IHdpdGhvdXQgbG9zcyBvZiBnZW5lcmFsaXR5LgotCSAqLwotCXN0cnVjdCBpOTE1X3N5bmNtYXAgKnN5bmM7Ci0KLQlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Ci0KLQlzdHJ1Y3Qga3JlZiBrcmVmOwotfTsKLQotI2VuZGlmIC8qIF9fSTkxNV9USU1FTElORV9UWVBFU19IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAppbmRleCBjY2U0MjZiLi4yNGYyOTQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCkBAIC04LDExICs4LDExIEBACiAKICNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogCisjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lLmgiCiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImk5MTVfaXJxLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAKICN1bmRlZiBUUkFDRV9TWVNURU0KICNkZWZpbmUgVFJBQ0VfU1lTVEVNIGk5MTUKQEAgLTI5MywxNiArMjkzLDE2IEBAIFRSQUNFX0VWRU5UKGludGVsX3VwZGF0ZV9wbGFuZSwKIAogCSAgICBUUF9TVFJVQ1RfX2VudHJ5KAogCQkJICAgICBfX2ZpZWxkKGVudW0gcGlwZSwgcGlwZSkKLQkJCSAgICAgX19maWVsZChjb25zdCBjaGFyICosIG5hbWUpCiAJCQkgICAgIF9fZmllbGQodTMyLCBmcmFtZSkKIAkJCSAgICAgX19maWVsZCh1MzIsIHNjYW5saW5lKQogCQkJICAgICBfX2FycmF5KGludCwgc3JjLCA0KQogCQkJICAgICBfX2FycmF5KGludCwgZHN0LCA0KQorCQkJICAgICBfX3N0cmluZyhuYW1lLCBwbGFuZS0+bmFtZSkKIAkJCSAgICAgKSwKIAogCSAgICBUUF9mYXN0X2Fzc2lnbigKKwkJCSAgIF9fYXNzaWduX3N0cihuYW1lLCBwbGFuZS0+bmFtZSk7CiAJCQkgICBfX2VudHJ5LT5waXBlID0gY3J0Yy0+cGlwZTsKLQkJCSAgIF9fZW50cnktPm5hbWUgPSBwbGFuZS0+bmFtZTsKIAkJCSAgIF9fZW50cnktPmZyYW1lID0gaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoY3J0Yyk7CiAJCQkgICBfX2VudHJ5LT5zY2FubGluZSA9IGludGVsX2dldF9jcnRjX3NjYW5saW5lKGNydGMpOwogCQkJICAgbWVtY3B5KF9fZW50cnktPnNyYywgJnBsYW5lLT5zdGF0ZS0+c3JjLCBzaXplb2YoX19lbnRyeS0+c3JjKSk7CkBAIC0zMTAsNyArMzEwLDcgQEAgVFJBQ0VfRVZFTlQoaW50ZWxfdXBkYXRlX3BsYW5lLAogCQkJICAgKSwKIAogCSAgICBUUF9wcmludGsoInBpcGUgJWMsIHBsYW5lICVzLCBmcmFtZT0ldSwgc2NhbmxpbmU9JXUsICIgRFJNX1JFQ1RfRlBfRk1UICIgLT4gIiBEUk1fUkVDVF9GTVQsCi0JCSAgICAgIHBpcGVfbmFtZShfX2VudHJ5LT5waXBlKSwgX19lbnRyeS0+bmFtZSwKKwkJICAgICAgcGlwZV9uYW1lKF9fZW50cnktPnBpcGUpLCBfX2dldF9zdHIobmFtZSksCiAJCSAgICAgIF9fZW50cnktPmZyYW1lLCBfX2VudHJ5LT5zY2FubGluZSwKIAkJICAgICAgRFJNX1JFQ1RfRlBfQVJHKChjb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKilfX2VudHJ5LT5zcmMpLAogCQkgICAgICBEUk1fUkVDVF9BUkcoKGNvbnN0IHN0cnVjdCBkcm1fcmVjdCAqKV9fZW50cnktPmRzdCkpCkBAIC0zMjIsMjAgKzMyMiwyMCBAQCBUUkFDRV9FVkVOVChpbnRlbF9kaXNhYmxlX3BsYW5lLAogCiAJICAgIFRQX1NUUlVDVF9fZW50cnkoCiAJCQkgICAgIF9fZmllbGQoZW51bSBwaXBlLCBwaXBlKQotCQkJICAgICBfX2ZpZWxkKGNvbnN0IGNoYXIgKiwgbmFtZSkKIAkJCSAgICAgX19maWVsZCh1MzIsIGZyYW1lKQogCQkJICAgICBfX2ZpZWxkKHUzMiwgc2NhbmxpbmUpCisJCQkgICAgIF9fc3RyaW5nKG5hbWUsIHBsYW5lLT5uYW1lKQogCQkJICAgICApLAogCiAJICAgIFRQX2Zhc3RfYXNzaWduKAorCQkJICAgX19hc3NpZ25fc3RyKG5hbWUsIHBsYW5lLT5uYW1lKTsKIAkJCSAgIF9fZW50cnktPnBpcGUgPSBjcnRjLT5waXBlOwotCQkJICAgX19lbnRyeS0+bmFtZSA9IHBsYW5lLT5uYW1lOwogCQkJICAgX19lbnRyeS0+ZnJhbWUgPSBpbnRlbF9jcnRjX2dldF92YmxhbmtfY291bnRlcihjcnRjKTsKIAkJCSAgIF9fZW50cnktPnNjYW5saW5lID0gaW50ZWxfZ2V0X2NydGNfc2NhbmxpbmUoY3J0Yyk7CiAJCQkgICApLAogCiAJICAgIFRQX3ByaW50aygicGlwZSAlYywgcGxhbmUgJXMsIGZyYW1lPSV1LCBzY2FubGluZT0ldSIsCi0JCSAgICAgIHBpcGVfbmFtZShfX2VudHJ5LT5waXBlKSwgX19lbnRyeS0+bmFtZSwKKwkJICAgICAgcGlwZV9uYW1lKF9fZW50cnktPnBpcGUpLCBfX2dldF9zdHIobmFtZSksCiAJCSAgICAgIF9fZW50cnktPmZyYW1lLCBfX2VudHJ5LT5zY2FubGluZSkKICk7CiAKQEAgLTY3Nyw3ICs2NzcsNyBAQCBUUkFDRV9FVkVOVChpOTE1X3JlcXVlc3RfcXVldWUsCiAJCQkgICBfX2VudHJ5LT5kZXYgPSBycS0+aTkxNS0+ZHJtLnByaW1hcnktPmluZGV4OwogCQkJICAgX19lbnRyeS0+aHdfaWQgPSBycS0+Z2VtX2NvbnRleHQtPmh3X2lkOwogCQkJICAgX19lbnRyeS0+Y2xhc3MgPSBycS0+ZW5naW5lLT51YWJpX2NsYXNzOwotCQkJICAgX19lbnRyeS0+aW5zdGFuY2UgPSBycS0+ZW5naW5lLT5pbnN0YW5jZTsKKwkJCSAgIF9fZW50cnktPmluc3RhbmNlID0gcnEtPmVuZ2luZS0+dWFiaV9pbnN0YW5jZTsKIAkJCSAgIF9fZW50cnktPmN0eCA9IHJxLT5mZW5jZS5jb250ZXh0OwogCQkJICAgX19lbnRyeS0+c2Vxbm8gPSBycS0+ZmVuY2Uuc2Vxbm87CiAJCQkgICBfX2VudHJ5LT5mbGFncyA9IGZsYWdzOwpAQCAtNzA2LDcgKzcwNiw3IEBAIERFQ0xBUkVfRVZFTlRfQ0xBU1MoaTkxNV9yZXF1ZXN0LAogCQkJICAgX19lbnRyeS0+ZGV2ID0gcnEtPmk5MTUtPmRybS5wcmltYXJ5LT5pbmRleDsKIAkJCSAgIF9fZW50cnktPmh3X2lkID0gcnEtPmdlbV9jb250ZXh0LT5od19pZDsKIAkJCSAgIF9fZW50cnktPmNsYXNzID0gcnEtPmVuZ2luZS0+dWFiaV9jbGFzczsKLQkJCSAgIF9fZW50cnktPmluc3RhbmNlID0gcnEtPmVuZ2luZS0+aW5zdGFuY2U7CisJCQkgICBfX2VudHJ5LT5pbnN0YW5jZSA9IHJxLT5lbmdpbmUtPnVhYmlfaW5zdGFuY2U7CiAJCQkgICBfX2VudHJ5LT5jdHggPSBycS0+ZmVuY2UuY29udGV4dDsKIAkJCSAgIF9fZW50cnktPnNlcW5vID0gcnEtPmZlbmNlLnNlcW5vOwogCQkJICAgKSwKQEAgLTc1MSw3ICs3NTEsNyBAQCBUUkFDRV9FVkVOVChpOTE1X3JlcXVlc3RfaW4sCiAJCQkgICBfX2VudHJ5LT5kZXYgPSBycS0+aTkxNS0+ZHJtLnByaW1hcnktPmluZGV4OwogCQkJICAgX19lbnRyeS0+aHdfaWQgPSBycS0+Z2VtX2NvbnRleHQtPmh3X2lkOwogCQkJICAgX19lbnRyeS0+Y2xhc3MgPSBycS0+ZW5naW5lLT51YWJpX2NsYXNzOwotCQkJICAgX19lbnRyeS0+aW5zdGFuY2UgPSBycS0+ZW5naW5lLT5pbnN0YW5jZTsKKwkJCSAgIF9fZW50cnktPmluc3RhbmNlID0gcnEtPmVuZ2luZS0+dWFiaV9pbnN0YW5jZTsKIAkJCSAgIF9fZW50cnktPmN0eCA9IHJxLT5mZW5jZS5jb250ZXh0OwogCQkJICAgX19lbnRyeS0+c2Vxbm8gPSBycS0+ZmVuY2Uuc2Vxbm87CiAJCQkgICBfX2VudHJ5LT5wcmlvID0gcnEtPnNjaGVkLmF0dHIucHJpb3JpdHk7CkBAIC03ODIsNyArNzgyLDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9yZXF1ZXN0X291dCwKIAkJCSAgIF9fZW50cnktPmRldiA9IHJxLT5pOTE1LT5kcm0ucHJpbWFyeS0+aW5kZXg7CiAJCQkgICBfX2VudHJ5LT5od19pZCA9IHJxLT5nZW1fY29udGV4dC0+aHdfaWQ7CiAJCQkgICBfX2VudHJ5LT5jbGFzcyA9IHJxLT5lbmdpbmUtPnVhYmlfY2xhc3M7Ci0JCQkgICBfX2VudHJ5LT5pbnN0YW5jZSA9IHJxLT5lbmdpbmUtPmluc3RhbmNlOworCQkJICAgX19lbnRyeS0+aW5zdGFuY2UgPSBycS0+ZW5naW5lLT51YWJpX2luc3RhbmNlOwogCQkJICAgX19lbnRyeS0+Y3R4ID0gcnEtPmZlbmNlLmNvbnRleHQ7CiAJCQkgICBfX2VudHJ5LT5zZXFubyA9IHJxLT5mZW5jZS5zZXFubzsKIAkJCSAgIF9fZW50cnktPmNvbXBsZXRlZCA9IGk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpOwpAQCAtODQ3LDcgKzg0Nyw3IEBAIFRSQUNFX0VWRU5UKGk5MTVfcmVxdWVzdF93YWl0X2JlZ2luLAogCQkJICAgX19lbnRyeS0+ZGV2ID0gcnEtPmk5MTUtPmRybS5wcmltYXJ5LT5pbmRleDsKIAkJCSAgIF9fZW50cnktPmh3X2lkID0gcnEtPmdlbV9jb250ZXh0LT5od19pZDsKIAkJCSAgIF9fZW50cnktPmNsYXNzID0gcnEtPmVuZ2luZS0+dWFiaV9jbGFzczsKLQkJCSAgIF9fZW50cnktPmluc3RhbmNlID0gcnEtPmVuZ2luZS0+aW5zdGFuY2U7CisJCQkgICBfX2VudHJ5LT5pbnN0YW5jZSA9IHJxLT5lbmdpbmUtPnVhYmlfaW5zdGFuY2U7CiAJCQkgICBfX2VudHJ5LT5jdHggPSBycS0+ZmVuY2UuY29udGV4dDsKIAkJCSAgIF9fZW50cnktPnNlcW5vID0gcnEtPmZlbmNlLnNlcW5vOwogCQkJICAgX19lbnRyeS0+ZmxhZ3MgPSBmbGFnczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmFjZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91dGlscy5jCkBAIC0wLDAgKzEsNzggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X3V0aWxzLmgiCisKKyNkZWZpbmUgRkRPX0JVR19VUkwgImh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PURSSSIKKyNkZWZpbmUgRkRPX0JVR19NU0cgIlBsZWFzZSBmaWxlIGEgYnVnIGF0ICIgRkRPX0JVR19VUkwgIiBhZ2FpbnN0IERSTS9JbnRlbCAiIFwKKwkJICAgICJwcm92aWRpbmcgdGhlIGRtZXNnIGxvZyBieSBib290aW5nIHdpdGggZHJtLmRlYnVnPTB4ZiIKKwordm9pZAorX19pOTE1X3ByaW50ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGNvbnN0IGNoYXIgKmxldmVsLAorCSAgICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCXN0YXRpYyBib29sIHNob3duX2J1Z19vbmNlOworCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSBkZXZfcHJpdi0+ZHJtLmRldjsKKwlib29sIGlzX2Vycm9yID0gbGV2ZWxbMV0gPD0gS0VSTl9FUlJbMV07CisJYm9vbCBpc19kZWJ1ZyA9IGxldmVsWzFdID09IEtFUk5fREVCVUdbMV07CisJc3RydWN0IHZhX2Zvcm1hdCB2YWY7CisJdmFfbGlzdCBhcmdzOworCisJaWYgKGlzX2RlYnVnICYmICEoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikpCisJCXJldHVybjsKKworCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7CisKKwl2YWYuZm10ID0gZm10OworCXZhZi52YSA9ICZhcmdzOworCisJaWYgKGlzX2Vycm9yKQorCQlkZXZfcHJpbnRrKGxldmVsLCBrZGV2LCAiJXBWIiwgJnZhZik7CisJZWxzZQorCQlkZXZfcHJpbnRrKGxldmVsLCBrZGV2LCAiWyIgRFJNX05BTUUgIjolcHNdICVwViIsCisJCQkgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYpOworCisJdmFfZW5kKGFyZ3MpOworCisJaWYgKGlzX2Vycm9yICYmICFzaG93bl9idWdfb25jZSkgeworCQkvKgorCQkgKiBBc2sgdGhlIHVzZXIgdG8gZmlsZSBhIGJ1ZyByZXBvcnQgZm9yIHRoZSBlcnJvciwgZXhjZXB0CisJCSAqIGlmIHRoZXkgbWF5IGhhdmUgY2F1c2VkIHRoZSBidWcgYnkgZmlkZGxpbmcgd2l0aCB1bnNhZmUKKwkJICogbW9kdWxlIHBhcmFtZXRlcnMuCisJCSAqLworCQlpZiAoIXRlc3RfdGFpbnQoVEFJTlRfVVNFUikpCisJCQlkZXZfbm90aWNlKGtkZXYsICIlcyIsIEZET19CVUdfTVNHKTsKKwkJc2hvd25fYnVnX29uY2UgPSB0cnVlOworCX0KK30KKworI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHKQorc3RhdGljIHVuc2lnbmVkIGludCBpOTE1X3Byb2JlX2ZhaWxfY291bnQ7CisKK2ludCBfX2k5MTVfaW5qZWN0X2xvYWRfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCBlcnIsCisJCQkgICAgIGNvbnN0IGNoYXIgKmZ1bmMsIGludCBsaW5lKQoreworCWlmIChpOTE1X3Byb2JlX2ZhaWxfY291bnQgPj0gaTkxNV9tb2RwYXJhbXMuaW5qZWN0X2xvYWRfZmFpbHVyZSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoKytpOTE1X3Byb2JlX2ZhaWxfY291bnQgPCBpOTE1X21vZHBhcmFtcy5pbmplY3RfbG9hZF9mYWlsdXJlKQorCQlyZXR1cm4gMDsKKworCV9faTkxNV9wcmludGsoaTkxNSwgS0VSTl9JTkZPLAorCQkgICAgICAiSW5qZWN0aW5nIGZhaWx1cmUgJWQgYXQgY2hlY2twb2ludCAldSBbJXM6JWRdXG4iLAorCQkgICAgICBlcnIsIGk5MTVfbW9kcGFyYW1zLmluamVjdF9sb2FkX2ZhaWx1cmUsIGZ1bmMsIGxpbmUpOworCWk5MTVfbW9kcGFyYW1zLmluamVjdF9sb2FkX2ZhaWx1cmUgPSAwOworCXJldHVybiBlcnI7Cit9CisKK2Jvb2wgaTkxNV9lcnJvcl9pbmplY3RlZCh2b2lkKQoreworCXJldHVybiBpOTE1X3Byb2JlX2ZhaWxfY291bnQgJiYgIWk5MTVfbW9kcGFyYW1zLmluamVjdF9sb2FkX2ZhaWx1cmU7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91dGlscy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91dGlscy5oCmluZGV4IDI5ODcyMTkuLjU2MmY3NTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3V0aWxzLmgKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogCitzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKKwogI3VuZGVmIFdBUk5fT04KIC8qIE1hbnkgZ2NjIHNlZW0gdG8gbm8gc2VlIHRocm91Z2ggdGhpcyBhbmQgZmFsbCBvdmVyIDooICovCiAjaWYgMApAQCAtNDksNiArNTEsMzQgQEAKICNkZWZpbmUgTUlTU0lOR19DQVNFKHgpIFdBUk4oMSwgIk1pc3NpbmcgY2FzZSAoJXMgPT0gJWxkKVxuIiwgXAogCQkJICAgICBfX3N0cmluZ2lmeSh4KSwgKGxvbmcpKHgpKQogCit2b2lkIF9fcHJpbnRmKDMsIDQpCitfX2k5MTVfcHJpbnRrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3QgY2hhciAqbGV2ZWwsCisJICAgICAgY29uc3QgY2hhciAqZm10LCAuLi4pOworCisjZGVmaW5lIGk5MTVfcmVwb3J0X2Vycm9yKGRldl9wcml2LCBmbXQsIC4uLikJCQkJICAgXAorCV9faTkxNV9wcmludGsoZGV2X3ByaXYsIEtFUk5fRVJSLCBmbXQsICMjX19WQV9BUkdTX18pCisKKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVRykKKworaW50IF9faTkxNV9pbmplY3RfbG9hZF9lcnJvcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgaW50IGVyciwKKwkJCSAgICAgY29uc3QgY2hhciAqZnVuYywgaW50IGxpbmUpOworI2RlZmluZSBpOTE1X2luamVjdF9sb2FkX2Vycm9yKF9pOTE1LCBfZXJyKSBcCisJX19pOTE1X2luamVjdF9sb2FkX2Vycm9yKChfaTkxNSksIChfZXJyKSwgX19mdW5jX18sIF9fTElORV9fKQorYm9vbCBpOTE1X2Vycm9yX2luamVjdGVkKHZvaWQpOworCisjZWxzZQorCisjZGVmaW5lIGk5MTVfaW5qZWN0X2xvYWRfZXJyb3IoX2k5MTUsIF9lcnIpIDAKKyNkZWZpbmUgaTkxNV9lcnJvcl9pbmplY3RlZCgpIGZhbHNlCisKKyNlbmRpZgorCisjZGVmaW5lIGk5MTVfaW5qZWN0X3Byb2JlX2ZhaWx1cmUoaTkxNSkgaTkxNV9pbmplY3RfbG9hZF9lcnJvcigoaTkxNSksIC1FTk9ERVYpCisKKyNkZWZpbmUgaTkxNV9wcm9iZV9lcnJvcihpOTE1LCBmbXQsIC4uLikJCQkJICAgXAorCV9faTkxNV9wcmludGsoaTkxNSwgaTkxNV9lcnJvcl9pbmplY3RlZCgpID8gS0VSTl9ERUJVRyA6IEtFUk5fRVJSLCBcCisJCSAgICAgIGZtdCwgIyNfX1ZBX0FSR1NfXykKKwogI2lmIGRlZmluZWQoR0NDX1ZFUlNJT04pICYmIEdDQ19WRVJTSU9OID49IDcwMDAwCiAjZGVmaW5lIGFkZF9vdmVyZmxvd3NfdChULCBBLCBCKSBcCiAJX19idWlsdGluX2FkZF9vdmVyZmxvd19wKChBKSwgKEIpLCAoVCkwKQpAQCAtMTMxLDYgKzE2MSwxNiBAQCBfX2NoZWNrX3N0cnVjdF9zaXplKHNpemVfdCBiYXNlLCBzaXplX3QgYXJyLCBzaXplX3QgY291bnQsIHNpemVfdCAqc2l6ZSkKIAkoKHR5cGVvZihwdHIpKSgodW5zaWduZWQgbG9uZykocHRyKSB8IF9fYml0cykpOwkJCVwKIH0pCiAKKyNkZWZpbmUgcHRyX2RlYyhwdHIpICh7CQkJCQkJCVwKKwl1bnNpZ25lZCBsb25nIF9fdiA9ICh1bnNpZ25lZCBsb25nKShwdHIpOwkJCVwKKwkodHlwZW9mKHB0cikpKF9fdiAtIDEpOwkJCQkJCVwKK30pCisKKyNkZWZpbmUgcHRyX2luYyhwdHIpICh7CQkJCQkJCVwKKwl1bnNpZ25lZCBsb25nIF9fdiA9ICh1bnNpZ25lZCBsb25nKShwdHIpOwkJCVwKKwkodHlwZW9mKHB0cikpKF9fdiArIDEpOwkJCQkJCVwKK30pCisKICNkZWZpbmUgcGFnZV9tYXNrX2JpdHMocHRyKSBwdHJfbWFza19iaXRzKHB0ciwgUEFHRV9TSElGVCkKICNkZWZpbmUgcGFnZV91bm1hc2tfYml0cyhwdHIpIHB0cl91bm1hc2tfYml0cyhwdHIsIFBBR0VfU0hJRlQpCiAjZGVmaW5lIHBhZ2VfcGFja19iaXRzKHB0ciwgYml0cykgcHRyX3BhY2tfYml0cyhwdHIsIGJpdHMsIFBBR0VfU0hJRlQpCkBAIC0zNzAsNCArNDEwLDE1IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqZW5hYmxlZGRpc2FibGVkKGJvb2wgdikKIAlyZXR1cm4gdiA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCI7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRfdGFpbnRfZm9yX0NJKHVuc2lnbmVkIGludCB0YWludCkKK3sKKwkvKgorCSAqIFRoZSBzeXN0ZW0gaXMgIm9rIiwganVzdCBhYm91dCBzdXJ2aXZpbmcgZm9yIHRoZSB1c2VyLCBidXQKKwkgKiBDSSByZXN1bHRzIGFyZSBub3cgdW5yZWxpYWJsZSBhcyB0aGUgSFcgaXMgdmVyeSBzdXNwZWN0LgorCSAqIENJIGNoZWNrcyB0aGUgdGFpbnQgc3RhdGUgYWZ0ZXIgZXZlcnkgdGVzdCBhbmQgd2lsbCByZWJvb3QKKwkgKiB0aGUgbWFjaGluZSBpZiB0aGUga2VybmVsIGlzIHRhaW50ZWQuCisJICovCisJYWRkX3RhaW50KHRhaW50LCBMT0NLREVQX1NUSUxMX09LKTsKK30KKwogI2VuZGlmIC8qICFfX0k5MTVfVVRJTFNfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwppbmRleCA3MjQ2MjdhLi45NjhiZTI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwpAQCAtMjEsNyArMjEsNiBAQAogICogU09GVFdBUkUuCiAgKi8KIAotI2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1ZGUgImk5MTVfdmdwdS5oIgogCiAvKioKQEAgLTUyLDM0ICs1MSw1NCBAQAogICovCiAKIC8qKgotICogaTkxNV9jaGVja192Z3B1IC0gZGV0ZWN0IHZpcnR1YWwgR1BVCisgKiBpOTE1X2RldGVjdF92Z3B1IC0gZGV0ZWN0IHZpcnR1YWwgR1BVCiAgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIHByaXZhdGUKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhdCB0aGUgaW5pdGlhbGl6YXRpb24gc3RhZ2UsIHRvIGRldGVjdCB3aGV0aGVyCiAgKiBydW5uaW5nIG9uIGEgdkdQVS4KICAqLwotdm9pZCBpOTE1X2NoZWNrX3ZncHUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQordm9pZCBpOTE1X2RldGVjdF92Z3B1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAl1NjQgbWFnaWM7CiAJdTE2IHZlcnNpb25fbWFqb3I7CisJdm9pZCBfX2lvbWVtICpzaGFyZWRfYXJlYTsKIAogCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IHZndF9pZikgIT0gVkdUX1BWSU5GT19TSVpFKTsKIAotCW1hZ2ljID0gX19yYXdfdW5jb3JlX3JlYWQ2NCh1bmNvcmUsIHZndGlmX3JlZyhtYWdpYykpOwotCWlmIChtYWdpYyAhPSBWR1RfTUFHSUMpCisJLyoKKwkgKiBUaGlzIGlzIGNhbGxlZCBiZWZvcmUgd2Ugc2V0dXAgdGhlIG1haW4gTU1JTyBCQVIgbWFwcGluZ3MgdXNlZCB2aWEKKwkgKiB0aGUgdW5jb3JlIHN0cnVjdHVyZSwgc28gd2UgbmVlZCB0byBhY2Nlc3MgdGhlIEJBUiBkaXJlY3RseS4gU2luY2UKKwkgKiB3ZSBkbyBub3Qgc3VwcG9ydCBWR1Qgb24gb2xkZXIgZ2VucywgcmV0dXJuIGVhcmx5IHNvIHdlIGRvbid0IGhhdmUKKwkgKiB0byBjb25zaWRlciBkaWZmZXJlbnRseSBudW1iZXJlZCBvciBzaXplZCBNTUlPIGJhcnMKKwkgKi8KKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDYpCiAJCXJldHVybjsKIAotCXZlcnNpb25fbWFqb3IgPSBfX3Jhd191bmNvcmVfcmVhZDE2KHVuY29yZSwgdmd0aWZfcmVnKHZlcnNpb25fbWFqb3IpKTsKLQlpZiAodmVyc2lvbl9tYWpvciA8IFZHVF9WRVJTSU9OX01BSk9SKSB7Ci0JCURSTV9JTkZPKCJWR1QgaW50ZXJmYWNlIHZlcnNpb24gbWlzbWF0Y2ghXG4iKTsKKwlzaGFyZWRfYXJlYSA9IHBjaV9pb21hcF9yYW5nZShwZGV2LCAwLCBWR1RfUFZJTkZPX1BBR0UsIFZHVF9QVklORk9fU0laRSk7CisJaWYgKCFzaGFyZWRfYXJlYSkgeworCQlEUk1fRVJST1IoImZhaWxlZCB0byBtYXAgTU1JTyBiYXIgdG8gY2hlY2sgZm9yIFZHVFxuIik7CiAJCXJldHVybjsKIAl9CiAKLQlkZXZfcHJpdi0+dmdwdS5jYXBzID0gX19yYXdfdW5jb3JlX3JlYWQzMih1bmNvcmUsIHZndGlmX3JlZyh2Z3RfY2FwcykpOworCW1hZ2ljID0gcmVhZHEoc2hhcmVkX2FyZWEgKyB2Z3RpZl9vZmZzZXQobWFnaWMpKTsKKwlpZiAobWFnaWMgIT0gVkdUX01BR0lDKQorCQlnb3RvIG91dDsKKworCXZlcnNpb25fbWFqb3IgPSByZWFkdyhzaGFyZWRfYXJlYSArIHZndGlmX29mZnNldCh2ZXJzaW9uX21ham9yKSk7CisJaWYgKHZlcnNpb25fbWFqb3IgPCBWR1RfVkVSU0lPTl9NQUpPUikgeworCQlEUk1fSU5GTygiVkdUIGludGVyZmFjZSB2ZXJzaW9uIG1pc21hdGNoIVxuIik7CisJCWdvdG8gb3V0OworCX0KKworCWRldl9wcml2LT52Z3B1LmNhcHMgPSByZWFkbChzaGFyZWRfYXJlYSArIHZndGlmX29mZnNldCh2Z3RfY2FwcykpOwogCiAJZGV2X3ByaXYtPnZncHUuYWN0aXZlID0gdHJ1ZTsKKwltdXRleF9pbml0KCZkZXZfcHJpdi0+dmdwdS5sb2NrKTsKIAlEUk1fSU5GTygiVmlydHVhbCBHUFUgZm9yIEludGVsIEdWVC1nIGRldGVjdGVkLlxuIik7CisKK291dDoKKwlwY2lfaW91bm1hcChwZGV2LCBzaGFyZWRfYXJlYSk7CiB9CiAKIGJvb2wgaW50ZWxfdmdwdV9oYXNfZnVsbF9wcGd0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC0xMTUsMjIgKzEzNCwyMiBAQCBzdGF0aWMgdm9pZCB2Z3RfZGViYWxsb29uX3NwYWNlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQsCiAKIC8qKgogICogaW50ZWxfdmd0X2RlYmFsbG9vbiAtIGRlYmFsbG9vbiByZXNlcnZlZCBncmFwaGljcyBhZGRyZXNzIHRydW5rcwotICogQGRldl9wcml2OiBpOTE1IGRldmljZSBwcml2YXRlIGRhdGEKKyAqIEBnZ3R0OiB0aGUgZ2xvYmFsIEdHVFQgZnJvbSB3aGljaCB3ZSByZXNlcnZlZCBlYXJsaWVyCiAgKgogICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gZGVhbGxvY2F0ZSB0aGUgYmFsbG9vbmVkLW91dCBncmFwaGljIG1lbW9yeSwgd2hlbgogICogZHJpdmVyIGlzIHVubG9hZGVkIG9yIHdoZW4gYmFsbG9vbmluZyBmYWlscy4KICAqLwotdm9pZCBpbnRlbF92Z3RfZGViYWxsb29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3ZvaWQgaW50ZWxfdmd0X2RlYmFsbG9vbihzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogewogCWludCBpOwogCi0JaWYgKCFpbnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdikpCisJaWYgKCFpbnRlbF92Z3B1X2FjdGl2ZShnZ3R0LT52bS5pOTE1KSkKIAkJcmV0dXJuOwogCiAJRFJNX0RFQlVHKCJWR1QgZGViYWxsb29uLlxuIik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQotCQl2Z3RfZGViYWxsb29uX3NwYWNlKCZkZXZfcHJpdi0+Z2d0dCwgJmJsX2luZm8uc3BhY2VbaV0pOworCQl2Z3RfZGViYWxsb29uX3NwYWNlKGdndHQsICZibF9pbmZvLnNwYWNlW2ldKTsKIH0KIAogc3RhdGljIGludCB2Z3RfYmFsbG9vbl9zcGFjZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0LApAQCAtMTU2LDcgKzE3NSw3IEBAIHN0YXRpYyBpbnQgdmd0X2JhbGxvb25fc3BhY2Uoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCwKIAogLyoqCiAgKiBpbnRlbF92Z3RfYmFsbG9vbiAtIGJhbGxvb24gb3V0IHJlc2VydmVkIGdyYXBoaWNzIGFkZHJlc3MgdHJ1bmtzCi0gKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIHByaXZhdGUgZGF0YQorICogQGdndHQ6IHRoZSBnbG9iYWwgR0dUVCBmcm9tIHdoaWNoIHRvIHJlc2VydmUKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhdCB0aGUgaW5pdGlhbGl6YXRpb24gc3RhZ2UsIHRvIGJhbGxvb24gb3V0IHRoZQogICogZ3JhcGhpYyBhZGRyZXNzIHNwYWNlIGFsbG9jYXRlZCB0byBvdGhlciB2R1BVcywgYnkgbWFya2luZyB0aGVzZSBzcGFjZXMgYXMKQEAgLTE5OCwyMiArMjE3LDI2IEBAIHN0YXRpYyBpbnQgdmd0X2JhbGxvb25fc3BhY2Uoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCwKICAqIFJldHVybnM6CiAgKiB6ZXJvIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIGlmIGNvbmZpZ3VyYXRpb24gaW52YWxpZCBvciBiYWxsb29uaW5nIGZhaWxlZAogICovCi1pbnQgaW50ZWxfdmd0X2JhbGxvb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoraW50IGludGVsX3ZndF9iYWxsb29uKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiB7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZ2d0dC0+dm0uaTkxNS0+dW5jb3JlOwogCXVuc2lnbmVkIGxvbmcgZ2d0dF9lbmQgPSBnZ3R0LT52bS50b3RhbDsKIAogCXVuc2lnbmVkIGxvbmcgbWFwcGFibGVfYmFzZSwgbWFwcGFibGVfc2l6ZSwgbWFwcGFibGVfZW5kOwogCXVuc2lnbmVkIGxvbmcgdW5tYXBwYWJsZV9iYXNlLCB1bm1hcHBhYmxlX3NpemUsIHVubWFwcGFibGVfZW5kOwogCWludCByZXQ7CiAKLQlpZiAoIWludGVsX3ZncHVfYWN0aXZlKGRldl9wcml2KSkKKwlpZiAoIWludGVsX3ZncHVfYWN0aXZlKGdndHQtPnZtLmk5MTUpKQogCQlyZXR1cm4gMDsKIAotCW1hcHBhYmxlX2Jhc2UgPSBJOTE1X1JFQUQodmd0aWZfcmVnKGF2YWlsX3JzLm1hcHBhYmxlX2dtYWRyLmJhc2UpKTsKLQltYXBwYWJsZV9zaXplID0gSTkxNV9SRUFEKHZndGlmX3JlZyhhdmFpbF9ycy5tYXBwYWJsZV9nbWFkci5zaXplKSk7Ci0JdW5tYXBwYWJsZV9iYXNlID0gSTkxNV9SRUFEKHZndGlmX3JlZyhhdmFpbF9ycy5ub25tYXBwYWJsZV9nbWFkci5iYXNlKSk7Ci0JdW5tYXBwYWJsZV9zaXplID0gSTkxNV9SRUFEKHZndGlmX3JlZyhhdmFpbF9ycy5ub25tYXBwYWJsZV9nbWFkci5zaXplKSk7CisJbWFwcGFibGVfYmFzZSA9CisJICBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIHZndGlmX3JlZyhhdmFpbF9ycy5tYXBwYWJsZV9nbWFkci5iYXNlKSk7CisJbWFwcGFibGVfc2l6ZSA9CisJICBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIHZndGlmX3JlZyhhdmFpbF9ycy5tYXBwYWJsZV9nbWFkci5zaXplKSk7CisJdW5tYXBwYWJsZV9iYXNlID0KKwkgIGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgdmd0aWZfcmVnKGF2YWlsX3JzLm5vbm1hcHBhYmxlX2dtYWRyLmJhc2UpKTsKKwl1bm1hcHBhYmxlX3NpemUgPQorCSAgaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCB2Z3RpZl9yZWcoYXZhaWxfcnMubm9ubWFwcGFibGVfZ21hZHIuc2l6ZSkpOwogCiAJbWFwcGFibGVfZW5kID0gbWFwcGFibGVfYmFzZSArIG1hcHBhYmxlX3NpemU7CiAJdW5tYXBwYWJsZV9lbmQgPSB1bm1hcHBhYmxlX2Jhc2UgKyB1bm1hcHBhYmxlX3NpemU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oCmluZGV4IGViZTFiN2IuLjhiMzY2M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oCkBAIC0yNCw5ICsyNCwxMCBAQAogI2lmbmRlZiBfSTkxNV9WR1BVX0hfCiAjZGVmaW5lIF9JOTE1X1ZHUFVfSF8KIAorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9wdmluZm8uaCIKIAotdm9pZCBpOTE1X2NoZWNrX3ZncHUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaTkxNV9kZXRlY3RfdmdwdShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogCiBib29sIGludGVsX3ZncHVfaGFzX2Z1bGxfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIApAQCAtNDIsNyArNDMsNyBAQCBpbnRlbF92Z3B1X2hhc19odWdlX2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIGRldl9wcml2LT52Z3B1LmNhcHMgJiBWR1RfQ0FQU19IVUdFX0dUVDsKIH0KIAotaW50IGludGVsX3ZndF9iYWxsb29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX3ZndF9kZWJhbGxvb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK2ludCBpbnRlbF92Z3RfYmFsbG9vbihzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KTsKK3ZvaWQgaW50ZWxfdmd0X2RlYmFsbG9vbihzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KTsKIAogI2VuZGlmIC8qIF9JOTE1X1ZHUFVfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCmluZGV4IGE1NzcyOWIuLmUwZTY3N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwpAQCAtMjIsMTQgKzIyLDE3IEBACiAgKgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9zY2hlZC9tbS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmgiCiAKICNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmUuaCIKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dsb2JhbHMuaCIKKyNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaTkxNV92bWEuaCIKIAogc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF92bWEgewpAQCAtNzcsNDMgKzgwLDE5IEBAIHN0YXRpYyB2b2lkIHZtYV9wcmludF9hbGxvY2F0b3Ioc3RydWN0IGk5MTVfdm1hICp2bWEsIGNvbnN0IGNoYXIgKnJlYXNvbikKIAogI2VuZGlmCiAKLXN0YXRpYyB2b2lkIG9ial9idW1wX21ydShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV92bWEgKmFjdGl2ZV90b192bWEoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihyZWYsIHR5cGVvZihzdHJ1Y3QgaTkxNV92bWEpLCBhY3RpdmUpOworfQogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmk5MTUtPm1tLm9ial9sb2NrLCBmbGFncyk7Ci0JbGlzdF9tb3ZlX3RhaWwoJm9iai0+bW0ubGluaywgJmk5MTUtPm1tLnNocmlua19saXN0KTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpOTE1LT5tbS5vYmpfbG9jaywgZmxhZ3MpOwotCi0Jb2JqLT5tbS5kaXJ0eSA9IHRydWU7IC8qIGJlIHBhcmFub2lkICAqLworc3RhdGljIGludCBfX2k5MTVfdm1hX2FjdGl2ZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikKK3sKKwlyZXR1cm4gaTkxNV92bWFfdHJ5Z2V0KGFjdGl2ZV90b192bWEocmVmKSkgPyAwIDogLUVOT0VOVDsKIH0KIAogc3RhdGljIHZvaWQgX19pOTE1X3ZtYV9yZXRpcmUoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCiB7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWEgPSBjb250YWluZXJfb2YocmVmLCB0eXBlb2YoKnZtYSksIGFjdGl2ZSk7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwotCi0JR0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0X2lzX2FjdGl2ZShvYmopKTsKLQlpZiAoLS1vYmotPmFjdGl2ZV9jb3VudCkKLQkJcmV0dXJuOwotCi0JLyogUHJ1bmUgdGhlIHNoYXJlZCBmZW5jZSBhcnJheXMgaWZmIGNvbXBsZXRlbHkgaWRsZSAoaW5jLiBleHRlcm5hbCkgKi8KLQlpZiAocmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2sob2JqLT5iYXNlLnJlc3YpKSB7Ci0JCWlmIChyZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxlZF9yY3Uob2JqLT5iYXNlLnJlc3YsIHRydWUpKQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKG9iai0+YmFzZS5yZXN2LCBOVUxMKTsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhvYmotPmJhc2UucmVzdik7Ci0JfQotCi0JLyoKLQkgKiBCdW1wIG91ciBwbGFjZSBvbiB0aGUgYm91bmQgbGlzdCB0byBrZWVwIGl0IHJvdWdobHkgaW4gTFJVIG9yZGVyCi0JICogc28gdGhhdCB3ZSBkb24ndCBzdGVhbCBmcm9tIHJlY2VudGx5IHVzZWQgYnV0IGluYWN0aXZlIG9iamVjdHMKLQkgKiAodW5sZXNzIHdlIGFyZSBmb3JjZWQgdG8gb2ZjISkKLQkgKi8KLQlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3Nocmlua2FibGUob2JqKSkKLQkJb2JqX2J1bXBfbXJ1KG9iaik7Ci0KLQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7IC8qIGFuZCBkcm9wIHRoZSBhY3RpdmUgcmVmZXJlbmNlICovCisJaTkxNV92bWFfcHV0KGFjdGl2ZV90b192bWEocmVmKSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKgpAQCAtMTI1LDcgKzEwNCw3IEBAIHZtYV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlzdHJ1Y3QgcmJfbm9kZSAqcmIsICoqcDsKIAogCS8qIFRoZSBhbGlhc2luZ19wcGd0dCBzaG91bGQgbmV2ZXIgYmUgdXNlZCBkaXJlY3RseSEgKi8KLQlHRU1fQlVHX09OKHZtID09ICZ2bS0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtKTsKKwlHRU1fQlVHX09OKHZtID09ICZ2bS0+aTkxNS0+Z2d0dC5hbGlhcy0+dm0pOwogCiAJdm1hID0gaTkxNV92bWFfYWxsb2MoKTsKIAlpZiAodm1hID09IE5VTEwpCkBAIC0xMzgsOCArMTE3LDE1IEBAIHZtYV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAl2bWEtPnNpemUgPSBvYmotPmJhc2Uuc2l6ZTsKIAl2bWEtPmRpc3BsYXlfYWxpZ25tZW50ID0gSTkxNV9HVFRfTUlOX0FMSUdOTUVOVDsKIAotCWk5MTVfYWN0aXZlX2luaXQodm0tPmk5MTUsICZ2bWEtPmFjdGl2ZSwgX19pOTE1X3ZtYV9yZXRpcmUpOwotCUlOSVRfQUNUSVZFX1JFUVVFU1QoJnZtYS0+bGFzdF9mZW5jZSk7CisJaTkxNV9hY3RpdmVfaW5pdCh2bS0+aTkxNSwgJnZtYS0+YWN0aXZlLAorCQkJIF9faTkxNV92bWFfYWN0aXZlLCBfX2k5MTVfdm1hX3JldGlyZSk7CisKKwkvKiBEZWNsYXJlIG91cnNlbHZlcyBzYWZlIGZvciB1c2UgaW5zaWRlIHNocmlua2VycyAqLworCWlmIChJU19FTkFCTEVEKENPTkZJR19MT0NLREVQKSkgeworCQlmc19yZWNsYWltX2FjcXVpcmUoR0ZQX0tFUk5FTCk7CisJCW1pZ2h0X2xvY2soJnZtYS0+YWN0aXZlLm11dGV4KTsKKwkJZnNfcmVjbGFpbV9yZWxlYXNlKEdGUF9LRVJORUwpOworCX0KIAogCUlOSVRfTElTVF9IRUFEKCZ2bWEtPmNsb3NlZF9saW5rKTsKIApAQCAtNDA4LDcgKzM5NCw3IEBAIHZvaWQgaTkxNV92bWFfZmx1c2hfd3JpdGVzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCWlmICghaTkxNV92bWFfaGFzX2dndHRfd3JpdGUodm1hKSkKIAkJcmV0dXJuOwogCi0JaTkxNV9nZW1fZmx1c2hfZ2d0dF93cml0ZXModm1hLT52bS0+aTkxNSk7CisJaW50ZWxfZ3RfZmx1c2hfZ2d0dF93cml0ZXModm1hLT52bS0+Z3QpOwogCiAJaTkxNV92bWFfdW5zZXRfZ2d0dF93cml0ZSh2bWEpOwogfQpAQCAtODE0LDggKzgwMCw2IEBAIHN0YXRpYyB2b2lkIF9faTkxNV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAlHRU1fQlVHX09OKHZtYS0+bm9kZS5hbGxvY2F0ZWQpOwogCUdFTV9CVUdfT04odm1hLT5mZW5jZSk7CiAKLQlHRU1fQlVHX09OKGk5MTVfYWN0aXZlX3JlcXVlc3RfaXNzZXQoJnZtYS0+bGFzdF9mZW5jZSkpOwotCiAJbXV0ZXhfbG9jaygmdm1hLT52bS0+bXV0ZXgpOwogCWxpc3RfZGVsKCZ2bWEtPnZtX2xpbmspOwogCW11dGV4X3VubG9jaygmdm1hLT52bS0+bXV0ZXgpOwpAQCAtODgwLDcgKzg2NCw3IEBAIHZvaWQgaTkxNV92bWFfcmV2b2tlX21tYXAoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJc3RydWN0IGRybV92bWFfb2Zmc2V0X25vZGUgKm5vZGUgPSAmdm1hLT5vYmotPmJhc2Uudm1hX25vZGU7CiAJdTY0IHZtYV9vZmZzZXQ7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bWEtPnZtLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bWEtPnZtLT5tdXRleCk7CiAKIAlpZiAoIWk5MTVfdm1hX2hhc191c2VyZmF1bHQodm1hKSkKIAkJcmV0dXJuOwpAQCAtODk5LDI4ICs4ODMsMTIgQEAgdm9pZCBpOTE1X3ZtYV9yZXZva2VfbW1hcChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAkJbGlzdF9kZWwoJnZtYS0+b2JqLT51c2VyZmF1bHRfbGluayk7CiB9CiAKLXN0YXRpYyB2b2lkIGV4cG9ydF9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKLQkJCSBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKLQkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IHZtYS0+cmVzdjsKLQotCS8qCi0JICogSWdub3JlIGVycm9ycyBmcm9tIGZhaWxpbmcgdG8gYWxsb2NhdGUgdGhlIG5ldyBmZW5jZSwgd2UgY2FuJ3QKLQkgKiBoYW5kbGUgYW4gZXJyb3IgcmlnaHQgbm93LiBXb3JzdCBjYXNlIHNob3VsZCBiZSBtaXNzZWQKLQkgKiBzeW5jaHJvbmlzYXRpb24gbGVhZGluZyB0byByZW5kZXJpbmcgY29ycnVwdGlvbi4KLQkgKi8KLQlpZiAoZmxhZ3MgJiBFWEVDX09CSkVDVF9XUklURSkKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHJlc3YsICZycS0+ZmVuY2UpOwotCWVsc2UgaWYgKHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChyZXN2LCAxKSA9PSAwKQotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShyZXN2LCAmcnEtPmZlbmNlKTsKLX0KLQogaW50IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCQkJICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCQkJICAgIHVuc2lnbmVkIGludCBmbGFncykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5vYmo7CisJaW50IGVycjsKIAogCWFzc2VydF92bWFfaGVsZCh2bWEpOwogCWFzc2VydF9vYmplY3RfaGVsZChvYmopOwpAQCAtOTM0LDMzICs5MDIsMzEgQEAgaW50IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCSAqIGFkZCB0aGUgYWN0aXZlIHJlZmVyZW5jZSBmaXJzdCBhbmQgcXVldWUgZm9yIGl0IHRvIGJlIGRyb3BwZWQKIAkgKiAqbGFzdCouCiAJICovCi0JaWYgKCF2bWEtPmFjdGl2ZS5jb3VudCAmJiAhb2JqLT5hY3RpdmVfY291bnQrKykKLQkJaTkxNV9nZW1fb2JqZWN0X2dldChvYmopOyAvKiBvbmNlIG1vcmUgZm9yIHRoZSBhY3RpdmUgcmVmICovCisJZXJyID0gaTkxNV9hY3RpdmVfcmVmKCZ2bWEtPmFjdGl2ZSwgcnEtPnRpbWVsaW5lLCBycSk7CisJaWYgKHVubGlrZWx5KGVycikpCisJCXJldHVybiBlcnI7CiAKLQlpZiAodW5saWtlbHkoaTkxNV9hY3RpdmVfcmVmKCZ2bWEtPmFjdGl2ZSwgcnEtPmZlbmNlLmNvbnRleHQsIHJxKSkpIHsKLQkJaWYgKCF2bWEtPmFjdGl2ZS5jb3VudCAmJiAhLS1vYmotPmFjdGl2ZV9jb3VudCkKLQkJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQotCi0JR0VNX0JVR19PTighaTkxNV92bWFfaXNfYWN0aXZlKHZtYSkpOwotCUdFTV9CVUdfT04oIW9iai0+YWN0aXZlX2NvdW50KTsKLQotCW9iai0+d3JpdGVfZG9tYWluID0gMDsKIAlpZiAoZmxhZ3MgJiBFWEVDX09CSkVDVF9XUklURSkgeworCQlpZiAoaW50ZWxfZnJvbnRidWZmZXJfaW52YWxpZGF0ZShvYmotPmZyb250YnVmZmVyLCBPUklHSU5fQ1MpKQorCQkJaTkxNV9hY3RpdmVfcmVmKCZvYmotPmZyb250YnVmZmVyLT53cml0ZSwKKwkJCQkJcnEtPnRpbWVsaW5lLAorCQkJCQlycSk7CisKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2Uodm1hLT5yZXN2LCAmcnEtPmZlbmNlKTsKIAkJb2JqLT53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fUkVOREVSOwotCi0JCWlmIChpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShvYmosIE9SSUdJTl9DUykpCi0JCQlfX2k5MTVfYWN0aXZlX3JlcXVlc3Rfc2V0KCZvYmotPmZyb250YnVmZmVyX3dyaXRlLCBycSk7Ci0KIAkJb2JqLT5yZWFkX2RvbWFpbnMgPSAwOworCX0gZWxzZSB7CisJCWVyciA9IGRtYV9yZXN2X3Jlc2VydmVfc2hhcmVkKHZtYS0+cmVzdiwgMSk7CisJCWlmICh1bmxpa2VseShlcnIpKQorCQkJcmV0dXJuIGVycjsKKworCQlkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNlKHZtYS0+cmVzdiwgJnJxLT5mZW5jZSk7CisJCW9iai0+d3JpdGVfZG9tYWluID0gMDsKIAl9CiAJb2JqLT5yZWFkX2RvbWFpbnMgfD0gSTkxNV9HRU1fR1BVX0RPTUFJTlM7CisJb2JqLT5tbS5kaXJ0eSA9IHRydWU7CiAKLQlpZiAoZmxhZ3MgJiBFWEVDX09CSkVDVF9ORUVEU19GRU5DRSkKLQkJX19pOTE1X2FjdGl2ZV9yZXF1ZXN0X3NldCgmdm1hLT5sYXN0X2ZlbmNlLCBycSk7Ci0KLQlleHBvcnRfZmVuY2Uodm1hLCBycSwgZmxhZ3MpOworCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtOTkwLDE0ICs5NTYsNyBAQCBpbnQgaTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCQkgKiBiZWZvcmUgd2UgYXJlIGZpbmlzaGVkKS4KIAkJICovCiAJCV9faTkxNV92bWFfcGluKHZtYSk7Ci0KIAkJcmV0ID0gaTkxNV9hY3RpdmVfd2FpdCgmdm1hLT5hY3RpdmUpOwotCQlpZiAocmV0KQotCQkJZ290byB1bnBpbjsKLQotCQlyZXQgPSBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3JldGlyZSgmdm1hLT5sYXN0X2ZlbmNlLAotCQkJCQkgICAgICAmdm1hLT52bS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci11bnBpbjoKIAkJX19pOTE1X3ZtYV91bnBpbih2bWEpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKQEAgLTEwMjMsMTIgKzk4MiwxNiBAQCBpbnQgaTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCQlHRU1fQlVHX09OKGk5MTVfdm1hX2hhc19nZ3R0X3dyaXRlKHZtYSkpOwogCiAJCS8qIHJlbGVhc2UgdGhlIGZlbmNlIHJlZyBfYWZ0ZXJfIGZsdXNoaW5nICovCi0JCXJldCA9IGk5MTVfdm1hX3B1dF9mZW5jZSh2bWEpOworCQltdXRleF9sb2NrKCZ2bWEtPnZtLT5tdXRleCk7CisJCXJldCA9IGk5MTVfdm1hX3Jldm9rZV9mZW5jZSh2bWEpOworCQltdXRleF91bmxvY2soJnZtYS0+dm0tPm11dGV4KTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKIAkJLyogRm9yY2UgYSBwYWdlZmF1bHQgZm9yIGRvbWFpbiB0cmFja2luZyBvbiBuZXh0IHVzZXIgYWNjZXNzICovCisJCW11dGV4X2xvY2soJnZtYS0+dm0tPm11dGV4KTsKIAkJaTkxNV92bWFfcmV2b2tlX21tYXAodm1hKTsKKwkJbXV0ZXhfdW5sb2NrKCZ2bWEtPnZtLT5tdXRleCk7CiAKIAkJX19pOTE1X3ZtYV9pb3VubWFwKHZtYSk7CiAJCXZtYS0+ZmxhZ3MgJj0gfkk5MTVfVk1BX0NBTl9GRU5DRTsKQEAgLTEwNDcsNiArMTAxMCwyMiBAQCBpbnQgaTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCXJldHVybiAwOwogfQogCitzdHJ1Y3QgaTkxNV92bWEgKmk5MTVfdm1hX21ha2VfdW5zaHJpbmthYmxlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQoreworCWk5MTVfZ2VtX29iamVjdF9tYWtlX3Vuc2hyaW5rYWJsZSh2bWEtPm9iaik7CisJcmV0dXJuIHZtYTsKK30KKwordm9pZCBpOTE1X3ZtYV9tYWtlX3Nocmlua2FibGUoc3RydWN0IGk5MTVfdm1hICp2bWEpCit7CisJaTkxNV9nZW1fb2JqZWN0X21ha2Vfc2hyaW5rYWJsZSh2bWEtPm9iaik7Cit9CisKK3ZvaWQgaTkxNV92bWFfbWFrZV9wdXJnZWFibGUoc3RydWN0IGk5MTVfdm1hICp2bWEpCit7CisJaTkxNV9nZW1fb2JqZWN0X21ha2VfcHVyZ2VhYmxlKHZtYS0+b2JqKTsKK30KKwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pOTE1X3ZtYS5jIgogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAppbmRleCA0Yjc2OWRiLi44ODlmYzdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKQEAgLTU1LDcgKzU1LDcgQEAgc3RydWN0IGk5MTVfdm1hIHsKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKIAljb25zdCBzdHJ1Y3QgaTkxNV92bWFfb3BzICpvcHM7CiAJc3RydWN0IGk5MTVfZmVuY2VfcmVnICpmZW5jZTsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OyAvKiogQWxpYXMgb2Ygb2JqLT5yZXN2ICovCisJc3RydWN0IGRtYV9yZXN2ICpyZXN2OyAvKiogQWxpYXMgb2Ygb2JqLT5yZXN2ICovCiAJc3RydWN0IHNnX3RhYmxlICpwYWdlczsKIAl2b2lkIF9faW9tZW0gKmlvbWFwOwogCXZvaWQgKnByaXZhdGU7IC8qIG93bmVkIGJ5IGNyZWF0b3IgKi8KQEAgLTExMSw3ICsxMTEsNiBAQCBzdHJ1Y3QgaTkxNV92bWEgewogI2RlZmluZSBJOTE1X1ZNQV9HR1RUX1dSSVRFCUJJVCgxNCkKIAogCXN0cnVjdCBpOTE1X2FjdGl2ZSBhY3RpdmU7Ci0Jc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgbGFzdF9mZW5jZTsKIAogCS8qKgogCSAqIFN1cHBvcnQgZGlmZmVyZW50IEdHVFQgdmlld3MgaW50byB0aGUgc2FtZSBvYmplY3QuCkBAIC0yMzIsNiArMjMxLDE0IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGk5MTVfdm1hICppOTE1X3ZtYV9nZXQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJcmV0dXJuIHZtYTsKIH0KIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV92bWEgKmk5MTVfdm1hX3RyeWdldChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sKKwlpZiAobGlrZWx5KGtyZWZfZ2V0X3VubGVzc196ZXJvKCZ2bWEtPm9iai0+YmFzZS5yZWZjb3VudCkpKQorCQlyZXR1cm4gdm1hOworCisJcmV0dXJuIE5VTEw7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X3ZtYV9wdXQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7CiAJaTkxNV9nZW1fb2JqZWN0X3B1dCh2bWEtPm9iaik7CkBAIC0yOTksMTYgKzMwNiwxNiBAQCB2b2lkIGk5MTVfdm1hX2Nsb3NlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKIHZvaWQgaTkxNV92bWFfcmVvcGVuKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKIHZvaWQgaTkxNV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7CiAKLSNkZWZpbmUgYXNzZXJ0X3ZtYV9oZWxkKHZtYSkgcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKCh2bWEpLT5yZXN2KQorI2RlZmluZSBhc3NlcnRfdm1hX2hlbGQodm1hKSBkbWFfcmVzdl9hc3NlcnRfaGVsZCgodm1hKS0+cmVzdikKIAogc3RhdGljIGlubGluZSB2b2lkIGk5MTVfdm1hX2xvY2soc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0JcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2sodm1hLT5yZXN2LCBOVUxMKTsKKwlkbWFfcmVzdl9sb2NrKHZtYS0+cmVzdiwgTlVMTCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X3ZtYV91bmxvY2soc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0JcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayh2bWEtPnJlc3YpOworCWRtYV9yZXN2X3VubG9jayh2bWEtPnJlc3YpOwogfQogCiBpbnQgX19pOTE1X3ZtYV9kb19waW4oc3RydWN0IGk5MTVfdm1hICp2bWEsCkBAIC00MTQsMTMgKzQyMSwxMyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICppOTE1X3ZtYV9maXJzdF9wYWdlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogICoKICAqIFRydWUgaWYgdGhlIHZtYSBoYXMgYSBmZW5jZSwgZmFsc2Ugb3RoZXJ3aXNlLgogICovCi1pbnQgaTkxNV92bWFfcGluX2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKLWludCBfX211c3RfY2hlY2sgaTkxNV92bWFfcHV0X2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKK2ludCBfX211c3RfY2hlY2sgaTkxNV92bWFfcGluX2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKK2ludCBfX211c3RfY2hlY2sgaTkxNV92bWFfcmV2b2tlX2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKIAogc3RhdGljIGlubGluZSB2b2lkIF9faTkxNV92bWFfdW5waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0JR0VNX0JVR19PTih2bWEtPmZlbmNlLT5waW5fY291bnQgPD0gMCk7Ci0Jdm1hLT5mZW5jZS0+cGluX2NvdW50LS07CisJR0VNX0JVR19PTihhdG9taWNfcmVhZCgmdm1hLT5mZW5jZS0+cGluX2NvdW50KSA8PSAwKTsKKwlhdG9taWNfZGVjKCZ2bWEtPmZlbmNlLT5waW5fY291bnQpOwogfQogCiAvKioKQEAgLTQ1OSw0ICs0NjYsOCBAQCB2b2lkIGk5MTVfdm1hX3BhcmtlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiBzdHJ1Y3QgaTkxNV92bWEgKmk5MTVfdm1hX2FsbG9jKHZvaWQpOwogdm9pZCBpOTE1X3ZtYV9mcmVlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKIAorc3RydWN0IGk5MTVfdm1hICppOTE1X3ZtYV9tYWtlX3Vuc2hyaW5rYWJsZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7Cit2b2lkIGk5MTVfdm1hX21ha2Vfc2hyaW5rYWJsZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7Cit2b2lkIGk5MTVfdm1hX21ha2VfcHVyZ2VhYmxlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jCmluZGV4IDZlZjc0NTMuLjU0NjU3N2UzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYwpAQCAtMzksNiArMzksMTEgQEAKIAogI2RlZmluZSBHRU4xMl9DU1JfTUFYX0ZXX1NJWkUJCUlDTF9DU1JfTUFYX0ZXX1NJWkUKIAorI2RlZmluZSBUR0xfQ1NSX1BBVEgJCQkiaTkxNS90Z2xfZG1jX3ZlcjJfMDQuYmluIgorI2RlZmluZSBUR0xfQ1NSX1ZFUlNJT05fUkVRVUlSRUQJQ1NSX1ZFUlNJT04oMiwgNCkKKyNkZWZpbmUgVEdMX0NTUl9NQVhfRldfU0laRQkJMHg2MDAwCitNT0RVTEVfRklSTVdBUkUoVEdMX0NTUl9QQVRIKTsKKwogI2RlZmluZSBJQ0xfQ1NSX1BBVEgJCQkiaTkxNS9pY2xfZG1jX3ZlcjFfMDcuYmluIgogI2RlZmluZSBJQ0xfQ1NSX1ZFUlNJT05fUkVRVUlSRUQJQ1NSX1ZFUlNJT04oMSwgNykKICNkZWZpbmUgSUNMX0NTUl9NQVhfRldfU0laRQkJMHg2MDAwCkBAIC02NzQsNiArNjc5LDggQEAgdm9pZCBpbnRlbF9jc3JfdWNvZGVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaW50ZWxfY3NyX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKSB7CisJCWNzci0+ZndfcGF0aCA9IFRHTF9DU1JfUEFUSDsKKwkJY3NyLT5yZXF1aXJlZF92ZXJzaW9uID0gVEdMX0NTUl9WRVJTSU9OX1JFUVVJUkVEOwogCQkvKiBBbGxvdyB0byBsb2FkIGZ3IHZpYSBwYXJhbWV0ZXIgdXNpbmcgdGhlIGxhc3Qga25vd24gc2l6ZSAqLwogCQljc3ItPm1heF9md19zaXplID0gR0VOMTJfQ1NSX01BWF9GV19TSVpFOwogCX0gZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCAxMSkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCmluZGV4IDcxMzVkOGQuLmQwZWQ0NGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwpAQCAtNTgsNiArNTgsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBsYXRmb3JtX25hbWVzW10gPSB7CiAJUExBVEZPUk1fTkFNRShDQU5OT05MQUtFKSwKIAlQTEFURk9STV9OQU1FKElDRUxBS0UpLAogCVBMQVRGT1JNX05BTUUoRUxLSEFSVExBS0UpLAorCVBMQVRGT1JNX05BTUUoVElHRVJMQUtFKSwKIH07CiAjdW5kZWYgUExBVEZPUk1fTkFNRQogCkBAIC03MTUsNyArNzE2LDcgQEAgc3RhdGljIHUzMiByZWFkX3RpbWVzdGFtcF9mcmVxdWVuY3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQl9CiAKIAkJcmV0dXJuIGZyZXE7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDw9IDExKSB7CisJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDw9IDEyKSB7CiAJCXUzMiBjdGNfcmVnID0gSTkxNV9SRUFEKENUQ19NT0RFKTsKIAkJdTMyIGZyZXEgPSAwOwogCkBAIC05MjksMzUgKzkzMCwyOCBAQCB2b2lkIGludGVsX2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCX0KIAl9IGVsc2UgaWYgKEhBU19ESVNQTEFZKGRldl9wcml2KSAmJiBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKIAkJdTMyIGRmc20gPSBJOTE1X1JFQUQoU0tMX0RGU00pOwotCQl1OCBkaXNhYmxlZF9tYXNrID0gMDsKLQkJYm9vbCBpbnZhbGlkOwotCQlpbnQgbnVtX2JpdHM7CisJCXU4IGVuYWJsZWRfbWFzayA9IEJJVChpbmZvLT5udW1fcGlwZXMpIC0gMTsKIAogCQlpZiAoZGZzbSAmIFNLTF9ERlNNX1BJUEVfQV9ESVNBQkxFKQotCQkJZGlzYWJsZWRfbWFzayB8PSBCSVQoUElQRV9BKTsKKwkJCWVuYWJsZWRfbWFzayAmPSB+QklUKFBJUEVfQSk7CiAJCWlmIChkZnNtICYgU0tMX0RGU01fUElQRV9CX0RJU0FCTEUpCi0JCQlkaXNhYmxlZF9tYXNrIHw9IEJJVChQSVBFX0IpOworCQkJZW5hYmxlZF9tYXNrICY9IH5CSVQoUElQRV9CKTsKIAkJaWYgKGRmc20gJiBTS0xfREZTTV9QSVBFX0NfRElTQUJMRSkKLQkJCWRpc2FibGVkX21hc2sgfD0gQklUKFBJUEVfQyk7CisJCQllbmFibGVkX21hc2sgJj0gfkJJVChQSVBFX0MpOworCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMiAmJgorCQkgICAgKGRmc20gJiBUR0xfREZTTV9QSVBFX0RfRElTQUJMRSkpCisJCQllbmFibGVkX21hc2sgJj0gfkJJVChQSVBFX0QpOwogCi0JCW51bV9iaXRzID0gaHdlaWdodDgoZGlzYWJsZWRfbWFzayk7Ci0KLQkJc3dpdGNoIChkaXNhYmxlZF9tYXNrKSB7Ci0JCWNhc2UgQklUKFBJUEVfQSk6Ci0JCWNhc2UgQklUKFBJUEVfQik6Ci0JCWNhc2UgQklUKFBJUEVfQSkgfCBCSVQoUElQRV9CKToKLQkJY2FzZSBCSVQoUElQRV9BKSB8IEJJVChQSVBFX0MpOgotCQkJaW52YWxpZCA9IHRydWU7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCWludmFsaWQgPSBmYWxzZTsKLQkJfQotCi0JCWlmIChudW1fYml0cyA+IGluZm8tPm51bV9waXBlcyB8fCBpbnZhbGlkKQotCQkJRFJNX0VSUk9SKCJpbnZhbGlkIHBpcGUgZnVzZSBjb25maWd1cmF0aW9uOiAweCV4XG4iLAotCQkJCSAgZGlzYWJsZWRfbWFzayk7CisJCS8qCisJCSAqIEF0IGxlYXN0IG9uZSBwaXBlIHNob3VsZCBiZSBlbmFibGVkIGFuZCBpZiB0aGVyZSBhcmUKKwkJICogZGlzYWJsZWQgcGlwZXMsIHRoZXkgc2hvdWxkIGJlIHRoZSBsYXN0IG9uZXMsIHdpdGggbm8gaG9sZXMKKwkJICogaW4gdGhlIG1hc2suCisJCSAqLworCQlpZiAoZW5hYmxlZF9tYXNrID09IDAgfHwgIWlzX3Bvd2VyX29mXzIoZW5hYmxlZF9tYXNrICsgMSkpCisJCQlEUk1fRVJST1IoImludmFsaWQgcGlwZSBmdXNlIGNvbmZpZ3VyYXRpb246IGVuYWJsZWRfbWFzaz0weCV4XG4iLAorCQkJCSAgZW5hYmxlZF9tYXNrKTsKIAkJZWxzZQotCQkJaW5mby0+bnVtX3BpcGVzIC09IG51bV9iaXRzOworCQkJaW5mby0+bnVtX3BpcGVzID0gaHdlaWdodDgoZW5hYmxlZF9tYXNrKTsKIAl9CiAKIAkvKiBJbml0aWFsaXplIHNsaWNlL3N1YnNsaWNlL0VVIGluZm8gKi8KQEAgLTEwMjgsOCArMTAyMiw5IEBAIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9faW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJLyoKIAkJICogSW4gR2VuMTEsIG9ubHkgZXZlbiBudW1iZXJlZCBsb2dpY2FsIFZEQk9YZXMgYXJlCiAJCSAqIGhvb2tlZCB1cCB0byBhbiBTRkMgKFNjYWxlciAmIEZvcm1hdCBDb252ZXJ0ZXIpIHVuaXQuCisJCSAqIEluIFRHTCBlYWNoIFZEQk9YIGhhcyBhY2Nlc3MgdG8gYW4gU0ZDLgogCQkgKi8KLQkJaWYgKGxvZ2ljYWxfdmRib3grKyAlIDIgPT0gMCkKKwkJaWYgKElTX1RJR0VSTEFLRShkZXZfcHJpdikgfHwgbG9naWNhbF92ZGJveCsrICUgMiA9PSAwKQogCQkJUlVOVElNRV9JTkZPKGRldl9wcml2KS0+dmRib3hfc2ZjX2FjY2VzcyB8PSBCSVQoaSk7CiAJfQogCURSTV9ERUJVR19EUklWRVIoInZkYm94IGVuYWJsZTogJTA0eCwgaW5zdGFuY2VzOiAlMDRseFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCmluZGV4IGRkYWZjODEuLjkyZTBjMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaApAQCAtNzgsNiArNzgsOCBAQCBlbnVtIGludGVsX3BsYXRmb3JtIHsKIAkvKiBnZW4xMSAqLwogCUlOVEVMX0lDRUxBS0UsCiAJSU5URUxfRUxLSEFSVExBS0UsCisJLyogZ2VuMTIgKi8KKwlJTlRFTF9USUdFUkxBS0UsCiAJSU5URUxfTUFYX1BMQVRGT1JNUwogfTsKIApAQCAtMTEwLDcgKzExMiw4IEBAIGVudW0gaW50ZWxfcHBndHRfdHlwZSB7CiAJZnVuYyhncHVfcmVzZXRfY2xvYmJlcnNfZGlzcGxheSk7IFwKIAlmdW5jKGhhc19yZXNldF9lbmdpbmUpOyBcCiAJZnVuYyhoYXNfZnBnYV9kYmcpOyBcCi0JZnVuYyhoYXNfZ3VjKTsgXAorCWZ1bmMoaGFzX2dsb2JhbF9tb2NzKTsgXAorCWZ1bmMoaGFzX2d0X3VjKTsgXAogCWZ1bmMoaGFzX2wzX2RwZik7IFwKIAlmdW5jKGhhc19sbGMpOyBcCiAJZnVuYyhoYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzKTsgXApAQCAtMTM2LDYgKzEzOSw3IEBAIGVudW0gaW50ZWxfcHBndHRfdHlwZSB7CiAJZnVuYyhoYXNfZ21jaCk7IFwKIAlmdW5jKGhhc19ob3RwbHVnKTsgXAogCWZ1bmMoaGFzX2lwYyk7IFwKKwlmdW5jKGhhc19tb2R1bGFyX2ZpYSk7IFwKIAlmdW5jKGhhc19vdmVybGF5KTsgXAogCWZ1bmMoaGFzX3Bzcik7IFwKIAlmdW5jKG92ZXJsYXlfbmVlZHNfcGh5c2ljYWwpOyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTE5Nzk4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTYxNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDA2IERhdmUgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgotICogQ29weXJpZ2h0IChjKSAyMDA3LTIwMDggSW50ZWwgQ29ycG9yYXRpb24KLSAqICAgSmVzc2UgQmFybmVzIDxqZXNzZS5iYXJuZXNAaW50ZWwuY29tPgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotI2lmbmRlZiBfX0lOVEVMX0RSVl9IX18KLSNkZWZpbmUgX19JTlRFTF9EUlZfSF9fCi0KLSNpbmNsdWRlIDxsaW51eC9hc3luYy5oPgotI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkL2Nsb2NrLmg+Ci0KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgotI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgotI2luY2x1ZGUgPGRybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZHBfbXN0X2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgotI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgotI2luY2x1ZGUgPGRybS9pOTE1X21laV9oZGNwX2ludGVyZmFjZS5oPgotI2luY2x1ZGUgPG1lZGlhL2NlYy1ub3RpZmllci5oPgotCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLQotc3RydWN0IGRybV9wcmludGVyOwotCi0vKgotICogRGlzcGxheSByZWxhdGVkIHN0dWZmCi0gKi8KLQotLyogdGhlc2UgYXJlIG91dHB1dHMgZnJvbSB0aGUgY2hpcCAtIGludGVncmF0ZWQgb25seQotICAgZXh0ZXJuYWwgY2hpcHMgYXJlIHZpYSBEVk8gb3IgU0RWTyBvdXRwdXQgKi8KLWVudW0gaW50ZWxfb3V0cHV0X3R5cGUgewotCUlOVEVMX09VVFBVVF9VTlVTRUQgPSAwLAotCUlOVEVMX09VVFBVVF9BTkFMT0cgPSAxLAotCUlOVEVMX09VVFBVVF9EVk8gPSAyLAotCUlOVEVMX09VVFBVVF9TRFZPID0gMywKLQlJTlRFTF9PVVRQVVRfTFZEUyA9IDQsCi0JSU5URUxfT1VUUFVUX1RWT1VUID0gNSwKLQlJTlRFTF9PVVRQVVRfSERNSSA9IDYsCi0JSU5URUxfT1VUUFVUX0RQID0gNywKLQlJTlRFTF9PVVRQVVRfRURQID0gOCwKLQlJTlRFTF9PVVRQVVRfRFNJID0gOSwKLQlJTlRFTF9PVVRQVVRfRERJID0gMTAsCi0JSU5URUxfT1VUUFVUX0RQX01TVCA9IDExLAotfTsKLQotc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyIHsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGJhc2U7Ci0Jc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gcm90X2luZm87Ci0KLQkvKiBmb3IgZWFjaCBwbGFuZSBpbiB0aGUgbm9ybWFsIEdUVCB2aWV3ICovCi0Jc3RydWN0IHsKLQkJdW5zaWduZWQgaW50IHgsIHk7Ci0JfSBub3JtYWxbMl07Ci0JLyogZm9yIGVhY2ggcGxhbmUgaW4gdGhlIHJvdGF0ZWQgR1RUIHZpZXcgKi8KLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBpbnQgeCwgeTsKLQkJdW5zaWduZWQgaW50IHBpdGNoOyAvKiBwaXhlbHMgKi8KLQl9IHJvdGF0ZWRbMl07Ci19OwotCi1zdHJ1Y3QgaW50ZWxfZmJkZXYgewotCXN0cnVjdCBkcm1fZmJfaGVscGVyIGhlbHBlcjsKLQlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmZiOwotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXVuc2lnbmVkIGxvbmcgdm1hX2ZsYWdzOwotCWFzeW5jX2Nvb2tpZV90IGNvb2tpZTsKLQlpbnQgcHJlZmVycmVkX2JwcDsKLQotCS8qIFdoZXRoZXIgb3Igbm90IGZiZGV2IGhwZCBwcm9jZXNzaW5nIGlzIHRlbXBvcmFyaWx5IHN1c3BlbmRlZCAqLwotCWJvb2wgaHBkX3N1c3BlbmRlZCA6IDE7Ci0JLyogU2V0IHdoZW4gYSBob3RwbHVnIHdhcyByZWNlaXZlZCB3aGlsZSBIUEQgcHJvY2Vzc2luZyB3YXMKLQkgKiBzdXNwZW5kZWQKLQkgKi8KLQlib29sIGhwZF93YWl0aW5nIDogMTsKLQotCS8qIFByb3RlY3RzIGhwZF9zdXNwZW5kZWQgKi8KLQlzdHJ1Y3QgbXV0ZXggaHBkX2xvY2s7Ci19OwotCi1zdHJ1Y3QgaW50ZWxfZW5jb2RlciB7Ci0Jc3RydWN0IGRybV9lbmNvZGVyIGJhc2U7Ci0KLQllbnVtIGludGVsX291dHB1dF90eXBlIHR5cGU7Ci0JZW51bSBwb3J0IHBvcnQ7Ci0JdW5zaWduZWQgaW50IGNsb25lYWJsZTsKLQlib29sICgqaG90cGx1Zykoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwotCWVudW0gaW50ZWxfb3V0cHV0X3R5cGUgKCpjb21wdXRlX291dHB1dF90eXBlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAotCQkJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKLQkJCQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwotCWludCAoKmNvbXB1dGVfY29uZmlnKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAotCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKLQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwotCXZvaWQgKCpwcmVfcGxsX2VuYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwKLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAotCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwotCXZvaWQgKCpwcmVfZW5hYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAotCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKLQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwotCXZvaWQgKCplbmFibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCi0JCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAotCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Ci0Jdm9pZCAoKmRpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCi0JCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAotCQkJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Ci0Jdm9pZCAoKnBvc3RfZGlzYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwKLQkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKLQkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Ci0Jdm9pZCAoKnBvc3RfcGxsX2Rpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCi0JCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCi0JCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwotCXZvaWQgKCp1cGRhdGVfcGlwZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwKLQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAotCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwotCS8qIFJlYWQgb3V0IHRoZSBjdXJyZW50IGh3IHN0YXRlIG9mIHRoaXMgY29ubmVjdG9yLCByZXR1cm5pbmcgdHJ1ZSBpZgotCSAqIHRoZSBlbmNvZGVyIGlzIGFjdGl2ZS4gSWYgdGhlIGVuY29kZXIgaXMgZW5hYmxlZCBpdCBhbHNvIHNldCB0aGUgcGlwZQotCSAqIGl0IGlzIGNvbm5lY3RlZCB0byBpbiB0aGUgcGlwZSBwYXJhbWV0ZXIuICovCi0JYm9vbCAoKmdldF9od19zdGF0ZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwgZW51bSBwaXBlICpwaXBlKTsKLQkvKiBSZWNvbnN0cnVjdHMgdGhlIGVxdWl2YWxlbnQgbW9kZSBmbGFncyBmb3IgdGhlIGN1cnJlbnQgaGFyZHdhcmUKLQkgKiBzdGF0ZS4gVGhpcyBtdXN0IGJlIGNhbGxlZCBfYWZ0ZXJfIGRpc3BsYXktPmdldF9waXBlX2NvbmZpZyBoYXMKLQkgKiBwcmUtZmlsbGVkIHRoZSBwaXBlIGNvbmZpZy4gTm90ZSB0aGF0IGludGVsX2VuY29kZXItPmJhc2UuY3J0YyBtdXN0Ci0JICogYmUgc2V0IGNvcnJlY3RseSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLiAqLwotCXZvaWQgKCpnZXRfY29uZmlnKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAotCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKLQkvKgotCSAqIEFjcXVpcmVzIHRoZSBwb3dlciBkb21haW5zIG5lZWRlZCBmb3IgYW4gYWN0aXZlIGVuY29kZXIgZHVyaW5nCi0JICogaGFyZHdhcmUgc3RhdGUgcmVhZG91dC4KLQkgKi8KLQl2b2lkICgqZ2V0X3Bvd2VyX2RvbWFpbnMpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwotCS8qCi0JICogQ2FsbGVkIGR1cmluZyBzeXN0ZW0gc3VzcGVuZCBhZnRlciBhbGwgcGVuZGluZyByZXF1ZXN0cyBmb3IgdGhlCi0JICogZW5jb2RlciBhcmUgZmx1c2hlZCAoZm9yIGV4YW1wbGUgZm9yIERQIEFVWCB0cmFuc2FjdGlvbnMpIGFuZAotCSAqIGRldmljZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZC4KLQkgKi8KLQl2b2lkICgqc3VzcGVuZCkoc3RydWN0IGludGVsX2VuY29kZXIgKik7Ci0JaW50IGNydGNfbWFzazsKLQllbnVtIGhwZF9waW4gaHBkX3BpbjsKLQllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKLQkvKiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGF1ZGlvIGNvbXBvbmVudDsgcHJvdGVjdGVkIGJ5IGF2X211dGV4ICovCi0JY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3IgKmF1ZGlvX2Nvbm5lY3RvcjsKLX07Ci0KLXN0cnVjdCBpbnRlbF9wYW5lbCB7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGU7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRvd25jbG9ja19tb2RlOwotCi0JLyogYmFja2xpZ2h0ICovCi0Jc3RydWN0IHsKLQkJYm9vbCBwcmVzZW50OwotCQl1MzIgbGV2ZWw7Ci0JCXUzMiBtaW47Ci0JCXUzMiBtYXg7Ci0JCWJvb2wgZW5hYmxlZDsKLQkJYm9vbCBjb21iaW5hdGlvbl9tb2RlOwkvKiBnZW4gMi80IG9ubHkgKi8KLQkJYm9vbCBhY3RpdmVfbG93X3B3bTsKLQkJYm9vbCBhbHRlcm5hdGVfcHdtX2luY3JlbWVudDsJLyogbHB0KyAqLwotCi0JCS8qIFBXTSBjaGlwICovCi0JCWJvb2wgdXRpbF9waW5fYWN0aXZlX2xvdzsJLyogYnh0KyAqLwotCQl1OCBjb250cm9sbGVyOwkJLyogYnh0KyBvbmx5ICovCi0JCXN0cnVjdCBwd21fZGV2aWNlICpwd207Ci0KLQkJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmRldmljZTsKLQotCQkvKiBDb25uZWN0b3IgYW5kIHBsYXRmb3JtIHNwZWNpZmljIGJhY2tsaWdodCBmdW5jdGlvbnMgKi8KLQkJaW50ICgqc2V0dXApKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHBpcGUpOwotCQl1MzIgKCpnZXQpKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Ci0JCXZvaWQgKCpzZXQpKGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLCB1MzIgbGV2ZWwpOwotCQl2b2lkICgqZGlzYWJsZSkoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOwotCQl2b2lkICgqZW5hYmxlKShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Ci0JCXUzMiAoKmh6X3RvX3B3bSkoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgaHopOwotCQl2b2lkICgqcG93ZXIpKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKiwgYm9vbCBlbmFibGUpOwotCX0gYmFja2xpZ2h0OwotfTsKLQotc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydDsKLQotZW51bSBjaGVja19saW5rX3Jlc3BvbnNlIHsKLQlIRENQX0xJTktfUFJPVEVDVEVECT0gMCwKLQlIRENQX1RPUE9MT0dZX0NIQU5HRSwKLQlIRENQX0xJTktfSU5URUdSSVRZX0ZBSUxVUkUsCi0JSERDUF9SRUFVVEhfUkVRVUVTVAotfTsKLQotLyoKLSAqIFRoaXMgc3RydWN0dXJlIHNlcnZlcyBhcyBhIHRyYW5zbGF0aW9uIGxheWVyIGJldHdlZW4gdGhlIGdlbmVyaWMgSERDUCBjb2RlCi0gKiBhbmQgdGhlIGJ1cy1zcGVjaWZpYyBjb2RlLiBXaGF0IHRoYXQgbWVhbnMgaXMgdGhhdCBIRENQIG92ZXIgSERNSSBkaWZmZXJzCi0gKiBmcm9tIEhEQ1Agb3ZlciBEUCwgc28gdG8gYWNjb3VudCBmb3IgdGhlc2UgZGlmZmVyZW5jZXMsIHdlIG5lZWQgdG8KLSAqIGNvbW11bmljYXRlIHdpdGggdGhlIHJlY2VpdmVyIHRocm91Z2ggdGhpcyBzaGltLgotICoKLSAqIEZvciBjb21wbGV0ZW5lc3MsIHRoZSAyIGJ1c2VzIGRpZmZlciBpbiB0aGUgZm9sbG93aW5nIHdheXM6Ci0gKgktIERQIEFVWCB2cy4gRERDCi0gKgkJSERDUCByZWdpc3RlcnMgb24gdGhlIHJlY2VpdmVyIGFyZSBzZXQgdmlhIERQIEFVWCBmb3IgRFAsIGFuZAotICoJCXRoZXkgYXJlIHNldCB2aWEgRERDIGZvciBIRE1JLgotICoJLSBSZWNlaXZlciByZWdpc3RlciBvZmZzZXRzCi0gKgkJVGhlIG9mZnNldHMgb2YgdGhlIHJlZ2lzdGVycyBhcmUgZGlmZmVyZW50IGZvciBEUCB2cy4gSERNSQotICoJLSBSZWNlaXZlciByZWdpc3RlciBtYXNrcy9vZmZzZXRzCi0gKgkJRm9yIGluc3RhbmNlLCB0aGUgcmVhZHkgYml0IGZvciB0aGUgS1NWIGZpZm8gaXMgaW4gYSBkaWZmZXJlbnQKLSAqCQlwbGFjZSBvbiBEUCB2cyBIRE1JCi0gKgktIFJlY2VpdmVyIHJlZ2lzdGVyIG5hbWVzCi0gKgkJU2VyaW91c2x5LiBJbiB0aGUgRFAgc3BlYywgdGhlIDE2LWJpdCByZWdpc3RlciBjb250YWluaW5nCi0gKgkJZG93bnN0cmVhbSBpbmZvcm1hdGlvbiBpcyBjYWxsZWQgQklORk8sIG9uIEhETUkgaXQncyBjYWxsZWQKLSAqCQlCU1RBVFVTLiBUbyBjb25mdXNlIG1hdHRlcnMgZnVydGhlciwgRFAgaGFzIGEgQlNUQVRVUyByZWdpc3RlcgotICoJCXdpdGggYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBkZWZpbml0aW9uLgotICoJLSBLU1YgRklGTwotICoJCU9uIEhETUksIHRoZSBrc3YgZmlmbyBpcyByZWFkIGFsbCBhdCBvbmNlLCB3aGVyZWFzIG9uIERQIGl0IG11c3QKLSAqCQliZSByZWFkIDMga2V5cyBhdCBhIHRpbWUKLSAqCS0gQWtzdiBvdXRwdXQKLSAqCQlTaW5jZSBBa3N2IGlzIGhpZGRlbiBpbiBoYXJkd2FyZSwgdGhlcmUncyBkaWZmZXJlbnQgcHJvY2VkdXJlcwotICoJCXRvIHNlbmQgaXQgb3ZlciBEUCBBVVggdnMgRERDCi0gKi8KLXN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gewotCS8qIE91dHB1dHMgdGhlIHRyYW5zbWl0dGVyJ3MgQW4gYW5kIEFrc3YgdmFsdWVzIHRvIHRoZSByZWNlaXZlci4gKi8KLQlpbnQgKCp3cml0ZV9hbl9ha3N2KShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgdTggKmFuKTsKLQotCS8qIFJlYWRzIHRoZSByZWNlaXZlcidzIGtleSBzZWxlY3Rpb24gdmVjdG9yICovCi0JaW50ICgqcmVhZF9ia3N2KShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgdTggKmJrc3YpOwotCi0JLyoKLQkgKiBSZWFkcyBCSU5GTyBmcm9tIERQIHJlY2VpdmVycyBhbmQgQlNUQVRVUyBmcm9tIEhETUkgcmVjZWl2ZXJzLiBUaGUKLQkgKiBkZWZpbml0aW9ucyBhcmUgdGhlIHNhbWUgaW4gdGhlIHJlc3BlY3RpdmUgc3BlY3MsIGJ1dCB0aGUgbmFtZXMgYXJlCi0JICogZGlmZmVyZW50LiBDYWxsIGl0IEJTVEFUVVMgc2luY2UgdGhhdCdzIHRoZSBuYW1lIHRoZSBIRE1JIHNwZWMKLQkgKiB1c2VzIGFuZCBpdCB3YXMgdGhlcmUgZmlyc3QuCi0JICovCi0JaW50ICgqcmVhZF9ic3RhdHVzKShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKLQkJCSAgICB1OCAqYnN0YXR1cyk7Ci0KLQkvKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSByZXBlYXRlciBpcyBwcmVzZW50IGRvd25zdHJlYW0gKi8KLQlpbnQgKCpyZXBlYXRlcl9wcmVzZW50KShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKLQkJCQlib29sICpyZXBlYXRlcl9wcmVzZW50KTsKLQotCS8qIFJlYWRzIHRoZSByZWNlaXZlcidzIFJpJyB2YWx1ZSAqLwotCWludCAoKnJlYWRfcmlfcHJpbWUpKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LCB1OCAqcmkpOwotCi0JLyogRGV0ZXJtaW5lcyBpZiB0aGUgcmVjZWl2ZXIncyBLU1YgRklGTyBpcyByZWFkeSBmb3IgY29uc3VtcHRpb24gKi8KLQlpbnQgKCpyZWFkX2tzdl9yZWFkeSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCi0JCQkgICAgICBib29sICprc3ZfcmVhZHkpOwotCi0JLyogUmVhZHMgdGhlIGtzdiBmaWZvIGZvciBudW1fZG93bnN0cmVhbSBkZXZpY2VzICovCi0JaW50ICgqcmVhZF9rc3ZfZmlmbykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCi0JCQkgICAgIGludCBudW1fZG93bnN0cmVhbSwgdTggKmtzdl9maWZvKTsKLQotCS8qIFJlYWRzIGEgMzItYml0IHBhcnQgb2YgVicgZnJvbSB0aGUgcmVjZWl2ZXIgKi8KLQlpbnQgKCpyZWFkX3ZfcHJpbWVfcGFydCkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCi0JCQkJIGludCBpLCB1MzIgKnBhcnQpOwotCi0JLyogRW5hYmxlcyBIRENQIHNpZ25hbGxpbmcgb24gdGhlIHBvcnQgKi8KLQlpbnQgKCp0b2dnbGVfc2lnbmFsbGluZykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCi0JCQkJIGJvb2wgZW5hYmxlKTsKLQotCS8qIEVuc3VyZXMgdGhlIGxpbmsgaXMgc3RpbGwgcHJvdGVjdGVkICovCi0JYm9vbCAoKmNoZWNrX2xpbmspKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KTsKLQotCS8qIERldGVjdHMgcGFuZWwncyBoZGNwIGNhcGFiaWxpdHkuIFRoaXMgaXMgb3B0aW9uYWwgZm9yIEhETUkuICovCi0JaW50ICgqaGRjcF9jYXBhYmxlKShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKLQkJCSAgICBib29sICpoZGNwX2NhcGFibGUpOwotCi0JLyogSERDUCBhZGFwdGF0aW9uKERQL0hETUkpIHJlcXVpcmVkIG9uIHRoZSBwb3J0ICovCi0JZW51bSBoZGNwX3dpcmVkX3Byb3RvY29sIHByb3RvY29sOwotCi0JLyogRGV0ZWN0cyB3aGV0aGVyIHNpbmsgaXMgSERDUDIuMiBjYXBhYmxlICovCi0JaW50ICgqaGRjcF8yXzJfY2FwYWJsZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCi0JCQkJYm9vbCAqY2FwYWJsZSk7Ci0KLQkvKiBXcml0ZSBIRENQMi4yIG1lc3NhZ2VzICovCi0JaW50ICgqd3JpdGVfMl8yX21zZykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCi0JCQkgICAgIHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpOwotCi0JLyogUmVhZCBIRENQMi4yIG1lc3NhZ2VzICovCi0JaW50ICgqcmVhZF8yXzJfbXNnKShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKLQkJCSAgICB1OCBtc2dfaWQsIHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpOwotCi0JLyoKLQkgKiBJbXBsZW1lbnRhdGlvbiBvZiBEUCBIRENQMi4yIEVycmF0YSBmb3IgdGhlIGNvbW11bmljYXRpb24gb2Ygc3RyZWFtCi0JICogdHlwZSB0byBSZWNlaXZlcnMuIEluIERQIEhEQ1AyLjIgU3RyZWFtIHR5cGUgaXMgb25lIG9mIHRoZSBpbnB1dCB0bwotCSAqIHRoZSBIRENQMi4yIENpcGhlciBmb3IgRW4vRGUtQ3J5cHRpb24uIE5vdCBhcHBsaWNhYmxlIGZvciBIRE1JLgotCSAqLwotCWludCAoKmNvbmZpZ19zdHJlYW1fdHlwZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCi0JCQkJICBib29sIGlzX3JlcGVhdGVyLCB1OCB0eXBlKTsKLQotCS8qIEhEQ1AyLjIgTGluayBJbnRlZ3JpdHkgQ2hlY2sgKi8KLQlpbnQgKCpjaGVja18yXzJfbGluaykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOwotfTsKLQotc3RydWN0IGludGVsX2hkY3AgewotCWNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gKnNoaW07Ci0JLyogTXV0ZXggZm9yIGhkY3Agc3RhdGUgb2YgdGhlIGNvbm5lY3RvciAqLwotCXN0cnVjdCBtdXRleCBtdXRleDsKLQl1NjQgdmFsdWU7Ci0Jc3RydWN0IGRlbGF5ZWRfd29yayBjaGVja193b3JrOwotCXN0cnVjdCB3b3JrX3N0cnVjdCBwcm9wX3dvcms7Ci0KLQkvKiBIRENQMS40IEVuY3J5cHRpb24gc3RhdHVzICovCi0JYm9vbCBoZGNwX2VuY3J5cHRlZDsKLQotCS8qIEhEQ1AyLjIgcmVsYXRlZCBkZWZpbml0aW9ucyAqLwotCS8qIEZsYWcgaW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBjb25uZWN0b3Igc3VwcG9ydHMgSERDUDIuMiBvciBub3QuICovCi0JYm9vbCBoZGNwMl9zdXBwb3J0ZWQ7Ci0KLQkvKiBIRENQMi4yIEVuY3J5cHRpb24gc3RhdHVzICovCi0JYm9vbCBoZGNwMl9lbmNyeXB0ZWQ7Ci0KLQkvKgotCSAqIENvbnRlbnQgU3RyZWFtIFR5cGUgZGVmaW5lZCBieSBjb250ZW50IG93bmVyLiBUWVBFMCgweDApIGNvbnRlbnQgY2FuCi0JICogZmxvdyBpbiB0aGUgbGluayBwcm90ZWN0ZWQgYnkgSERDUDIuMiBvciBIRENQMS40LCB3aGVyZSBhcyBUWVBFMSgweDEpCi0JICogY29udGVudCBjYW4gZmxvdyBvbmx5IHRocm91Z2ggYSBsaW5rIHByb3RlY3RlZCBieSBIRENQMi4yLgotCSAqLwotCXU4IGNvbnRlbnRfdHlwZTsKLQlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgcG9ydF9kYXRhOwotCi0JYm9vbCBpc19wYWlyZWQ7Ci0JYm9vbCBpc19yZXBlYXRlcjsKLQotCS8qCi0JICogQ291bnQgb2YgUmVjZWl2ZXJJRF9MaXN0IHJlY2VpdmVkLiBJbml0aWFsaXplZCB0byAwIGF0IEFLRV9JTklULgotCSAqIEluY3JlbWVudGVkIGFmdGVyIHByb2Nlc3NpbmcgdGhlIFJlcGVhdGVyQXV0aF9TZW5kX1JlY2VpdmVySURfTGlzdC4KLQkgKiBXaGVuIGl0IHJvbGxzIG92ZXIgcmUtYXV0aCBoYXMgdG8gYmUgdHJpZ2dlcmVkLgotCSAqLwotCXUzMiBzZXFfbnVtX3Y7Ci0KLQkvKgotCSAqIENvdW50IG9mIFJlcGVhdGVyQXV0aF9TdHJlYW1fTWFuYWdlIG1zZyBwcm9wYWdhdGVkLgotCSAqIEluaXRpYWxpemVkIHRvIDAgb24gQUtFX0lOSVQuIEluY3JlbWVudGVkIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwKLQkgKiB0cmFuc21pc3Npb24gb2YgUmVwZWF0ZXJBdXRoX1N0cmVhbV9NYW5hZ2UgbWVzc2FnZS4gV2hlbiBpdCByb2xscwotCSAqIG92ZXIgcmUtQXV0aCBoYXMgdG8gYmUgdHJpZ2dlcmVkLgotCSAqLwotCXUzMiBzZXFfbnVtX207Ci0KLQkvKgotCSAqIFdvcmsgcXVldWUgdG8gc2lnbmFsIHRoZSBDUF9JUlEuIFVzZWQgZm9yIHRoZSB3YWl0ZXJzIHRvIHJlYWQgdGhlCi0JICogYXZhaWxhYmxlIGluZm9ybWF0aW9uIGZyb20gSERDUCBEUCBzaW5rLgotCSAqLwotCXdhaXRfcXVldWVfaGVhZF90IGNwX2lycV9xdWV1ZTsKLQlhdG9taWNfdCBjcF9pcnFfY291bnQ7Ci0JaW50IGNwX2lycV9jb3VudF9jYWNoZWQ7Ci19OwotCi1zdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBiYXNlOwotCS8qCi0JICogVGhlIGZpeGVkIGVuY29kZXIgdGhpcyBjb25uZWN0b3IgaXMgY29ubmVjdGVkIHRvLgotCSAqLwotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwotCi0JLyogQUNQSSBkZXZpY2UgaWQgZm9yIEFDUEkgYW5kIGRyaXZlciBjb29wZXJhdGlvbiAqLwotCXUzMiBhY3BpX2RldmljZV9pZDsKLQotCS8qIFJlYWRzIG91dCB0aGUgY3VycmVudCBodywgcmV0dXJuaW5nIHRydWUgaWYgdGhlIGNvbm5lY3RvciBpcyBlbmFibGVkCi0JICogYW5kIGFjdGl2ZSAoaS5lLiBkcG1zIE9OIHN0YXRlKS4gKi8KLQlib29sICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICopOwotCi0JLyogUGFuZWwgaW5mbyBmb3IgZURQIGFuZCBMVkRTICovCi0Jc3RydWN0IGludGVsX3BhbmVsIHBhbmVsOwotCi0JLyogQ2FjaGVkIEVESUQgZm9yIGVEUCBhbmQgTFZEUy4gTWF5IGhvbGQgRVJSX1BUUiBmb3IgaW52YWxpZCBFRElELiAqLwotCXN0cnVjdCBlZGlkICplZGlkOwotCXN0cnVjdCBlZGlkICpkZXRlY3RfZWRpZDsKLQotCS8qIHNpbmNlIFBPTEwgYW5kIEhQRCBjb25uZWN0b3JzIG1heSB1c2UgdGhlIHNhbWUgSFBEIGxpbmUga2VlcCB0aGUgbmF0aXZlCi0JICAgc3RhdGUgb2YgY29ubmVjdG9yLT5wb2xsZWQgaW4gY2FzZSBob3RwbHVnIHN0b3JtIGRldGVjdGlvbiBjaGFuZ2VzIGl0ICovCi0JdTggcG9sbGVkOwotCi0Jdm9pZCAqcG9ydDsgLyogc3RvcmUgdGhpcyBvcGFxdWUgYXMgaXRzIGlsbGVnYWwgdG8gZGVyZWZlcmVuY2UgaXQgKi8KLQotCXN0cnVjdCBpbnRlbF9kcCAqbXN0X3BvcnQ7Ci0KLQkvKiBXb3JrIHN0cnVjdCB0byBzY2hlZHVsZSBhIHVldmVudCBvbiBsaW5rIHRyYWluIGZhaWx1cmUgKi8KLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgbW9kZXNldF9yZXRyeV93b3JrOwotCi0Jc3RydWN0IGludGVsX2hkY3AgaGRjcDsKLX07Ci0KLXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgYmFzZTsKLQotCWVudW0gaGRtaV9mb3JjZV9hdWRpbyBmb3JjZV9hdWRpbzsKLQlpbnQgYnJvYWRjYXN0X3JnYjsKLX07Ci0KLSNkZWZpbmUgdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSwgYmFzZSkKLQotc3RydWN0IGRwbGwgewotCS8qIGdpdmVuIHZhbHVlcyAqLwotCWludCBuOwotCWludCBtMSwgbTI7Ci0JaW50IHAxLCBwMjsKLQkvKiBkZXJpdmVkIHZhbHVlcyAqLwotCWludAlkb3Q7Ci0JaW50CXZjbzsKLQlpbnQJbTsKLQlpbnQJcDsKLX07Ci0KLXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgewotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIGJhc2U7Ci0KLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQotCXN0cnVjdCB7Ci0JCS8qCi0JCSAqIExvZ2ljYWwgc3RhdGUgb2YgY2RjbGsgKHVzZWQgZm9yIGFsbCBzY2FsaW5nLCB3YXRlcm1hcmssCi0JCSAqIGV0Yy4gY2FsY3VsYXRpb25zIGFuZCBjaGVja3MpLiBUaGlzIGlzIGNvbXB1dGVkIGFzIGlmIGFsbAotCQkgKiBlbmFibGVkIGNydGNzIHdlcmUgYWN0aXZlLgotCQkgKi8KLQkJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGxvZ2ljYWw7Ci0KLQkJLyoKLQkJICogQWN0dWFsIHN0YXRlIG9mIGNkY2xrLCBjYW4gYmUgZGlmZmVyZW50IGZyb20gdGhlIGxvZ2ljYWwKLQkJICogc3RhdGUgb25seSB3aGVuIGFsbCBjcnRjJ3MgYXJlIERQTVMgb2ZmLgotCQkgKi8KLQkJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGFjdHVhbDsKLQotCQlpbnQgZm9yY2VfbWluX2NkY2xrOwotCQlib29sIGZvcmNlX21pbl9jZGNsa19jaGFuZ2VkOwotCQkvKiBwaXBlIHRvIHdoaWNoIGNkMnggdXBkYXRlIGlzIHN5bmNocm9uaXplZCAqLwotCQllbnVtIHBpcGUgcGlwZTsKLQl9IGNkY2xrOwotCi0JYm9vbCBkcGxsX3NldCwgbW9kZXNldDsKLQotCS8qCi0JICogRG9lcyB0aGlzIHRyYW5zYWN0aW9uIGNoYW5nZSB0aGUgcGlwZXMgdGhhdCBhcmUgYWN0aXZlPyAgVGhpcyBtYXNrCi0JICogdHJhY2tzIHdoaWNoIENSVEMncyBoYXZlIGNoYW5nZWQgdGhlaXIgYWN0aXZlIHN0YXRlIGF0IHRoZSBlbmQgb2YKLQkgKiB0aGUgdHJhbnNhY3Rpb24gKG5vdCBjb3VudGluZyB0aGUgdGVtcG9yYXJ5IGRpc2FibGUgZHVyaW5nIG1vZGVzZXRzKS4KLQkgKiBUaGlzIG1hc2sgc2hvdWxkIG9ubHkgYmUgbm9uLXplcm8gd2hlbiBpbnRlbF9zdGF0ZS0+bW9kZXNldCBpcyB0cnVlLAotCSAqIGJ1dCB0aGUgY29udmVyc2UgaXMgbm90IG5lY2Vzc2FyaWx5IHRydWU7IHNpbXBseSBjaGFuZ2luZyBhIG1vZGUgbWF5Ci0JICogbm90IGZsaXAgdGhlIGZpbmFsIGFjdGl2ZSBzdGF0dXMgb2YgYW55IENSVEMncwotCSAqLwotCXVuc2lnbmVkIGludCBhY3RpdmVfcGlwZV9jaGFuZ2VzOwotCi0JdW5zaWduZWQgaW50IGFjdGl2ZV9jcnRjczsKLQkvKiBtaW5pbXVtIGFjY2VwdGFibGUgY2RjbGsgZm9yIGVhY2ggcGlwZSAqLwotCWludCBtaW5fY2RjbGtbSTkxNV9NQVhfUElQRVNdOwotCS8qIG1pbmltdW0gYWNjZXB0YWJsZSB2b2x0YWdlIGxldmVsIGZvciBlYWNoIHBpcGUgKi8KLQl1OCBtaW5fdm9sdGFnZV9sZXZlbFtJOTE1X01BWF9QSVBFU107Ci0KLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgc2hhcmVkX2RwbGxbSTkxNV9OVU1fUExMU107Ci0KLQkvKgotCSAqIEN1cnJlbnQgd2F0ZXJtYXJrcyBjYW4ndCBiZSB0cnVzdGVkIGR1cmluZyBoYXJkd2FyZSByZWFkb3V0LCBzbwotCSAqIGRvbid0IGJvdGhlciBjYWxjdWxhdGluZyBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrcy4KLQkgKi8KLQlib29sIHNraXBfaW50ZXJtZWRpYXRlX3dtOwotCi0JYm9vbCBycHNfaW50ZXJhY3RpdmU7Ci0KLQkvKiBHZW45KyBvbmx5ICovCi0Jc3RydWN0IHNrbF9kZGJfdmFsdWVzIHdtX3Jlc3VsdHM7Ci0KLQlzdHJ1Y3QgaTkxNV9zd19mZW5jZSBjb21taXRfcmVhZHk7Ci0KLQlzdHJ1Y3QgbGxpc3Rfbm9kZSBmcmVlZDsKLX07Ci0KLXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7Ci0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSBiYXNlOwotCXN0cnVjdCBpOTE1X2dndHRfdmlldyB2aWV3OwotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0jZGVmaW5lIFBMQU5FX0hBU19GRU5DRSBCSVQoMCkKLQotCXN0cnVjdCB7Ci0JCXUzMiBvZmZzZXQ7Ci0JCS8qCi0JCSAqIFBsYW5lIHN0cmlkZSBpbjoKLQkJICogYnl0ZXMgZm9yIDAvMTgwIGRlZ3JlZSByb3RhdGlvbgotCQkgKiBwaXhlbHMgZm9yIDkwLzI3MCBkZWdyZWUgcm90YXRpb24KLQkJICovCi0JCXUzMiBzdHJpZGU7Ci0JCWludCB4LCB5OwotCX0gY29sb3JfcGxhbmVbMl07Ci0KLQkvKiBwbGFuZSBjb250cm9sIHJlZ2lzdGVyICovCi0JdTMyIGN0bDsKLQotCS8qIHBsYW5lIGNvbG9yIGNvbnRyb2wgcmVnaXN0ZXIgKi8KLQl1MzIgY29sb3JfY3RsOwotCi0JLyoKLQkgKiBzY2FsZXJfaWQKLQkgKiAgICA9IC0xIDogbm90IHVzaW5nIGEgc2NhbGVyCi0JICogICAgPj0gIDAgOiB1c2luZyBhIHNjYWxlcnMKLQkgKgotCSAqIHBsYW5lIHJlcXVpcmluZyBhIHNjYWxlcjoKLQkgKiAgIC0gRHVyaW5nIGNoZWNrX3BsYW5lLCBpdHMgYml0IGlzIHNldCBpbgotCSAqICAgICBjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyX3VzZXJzIGJ5IGNhbGxpbmcgaGVscGVyIGZ1bmN0aW9uCi0JICogICAgIHVwZGF0ZV9zY2FsZXJfcGxhbmUuCi0JICogICAtIHNjYWxlcl9pZCBpbmRpY2F0ZXMgdGhlIHNjYWxlciBpdCBnb3QgYXNzaWduZWQuCi0JICoKLQkgKiBwbGFuZSBkb2Vzbid0IHJlcXVpcmUgYSBzY2FsZXI6Ci0JICogICAtIHRoaXMgY2FuIGhhcHBlbiB3aGVuIHNjYWxpbmcgaXMgbm8gbW9yZSByZXF1aXJlZCBvciBwbGFuZSBzaW1wbHkKLQkgKiAgICAgZ290IGRpc2FibGVkLgotCSAqICAgLSBEdXJpbmcgY2hlY2tfcGxhbmUsIGNvcnJlc3BvbmRpbmcgYml0IGlzIHJlc2V0IGluCi0JICogICAgIGNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJfdXNlcnMgYnkgY2FsbGluZyBoZWxwZXIgZnVuY3Rpb24KLQkgKiAgICAgdXBkYXRlX3NjYWxlcl9wbGFuZS4KLQkgKi8KLQlpbnQgc2NhbGVyX2lkOwotCi0JLyoKLQkgKiBsaW5rZWRfcGxhbmU6Ci0JICoKLQkgKiBJQ0wgcGxhbmFyIGZvcm1hdHMgcmVxdWlyZSAyIHBsYW5lcyB0aGF0IGFyZSB1cGRhdGVkIGFzIHBhaXJzLgotCSAqIFRoaXMgbWVtYmVyIGlzIHVzZWQgdG8gbWFrZSBzdXJlIHRoZSBvdGhlciBwbGFuZSBpcyBhbHNvIHVwZGF0ZWQKLQkgKiB3aGVuIHJlcXVpcmVkLCBhbmQgZm9yIHVwZGF0ZV9zbGF2ZSgpIHRvIGZpbmQgdGhlIGNvcnJlY3QKLQkgKiBwbGFuZV9zdGF0ZSB0byBwYXNzIGFzIGFyZ3VtZW50LgotCSAqLwotCXN0cnVjdCBpbnRlbF9wbGFuZSAqbGlua2VkX3BsYW5lOwotCi0JLyoKLQkgKiBzbGF2ZToKLQkgKiBJZiBzZXQgZG9uJ3QgdXBkYXRlIHVzZSB0aGUgbGlua2VkIHBsYW5lJ3Mgc3RhdGUgZm9yIHVwZGF0aW5nCi0JICogdGhpcyBwbGFuZSBkdXJpbmcgYXRvbWljIGNvbW1pdCB3aXRoIHRoZSB1cGRhdGVfc2xhdmUoKSBjYWxsYmFjay4KLQkgKgotCSAqIEl0J3MgYWxzbyB1c2VkIGJ5IHRoZSB3YXRlcm1hcmsgY29kZSB0byBpZ25vcmUgd20gY2FsY3VsYXRpb25zIG9uCi0JICogdGhpcyBwbGFuZS4gVGhleSdyZSBjYWxjdWxhdGVkIGJ5IHRoZSBsaW5rZWQgcGxhbmUncyB3bSBjb2RlLgotCSAqLwotCXUzMiBzbGF2ZTsKLQotCXN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5IGNrZXk7Ci19OwotCi1zdHJ1Y3QgaW50ZWxfaW5pdGlhbF9wbGFuZV9jb25maWcgewotCXN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqZmI7Ci0JdW5zaWduZWQgaW50IHRpbGluZzsKLQlpbnQgc2l6ZTsKLQl1MzIgYmFzZTsKLQl1OCByb3RhdGlvbjsKLX07Ci0KLXN0cnVjdCBpbnRlbF9zY2FsZXIgewotCWludCBpbl91c2U7Ci0JdTMyIG1vZGU7Ci19OwotCi1zdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgewotI2RlZmluZSBTS0xfTlVNX1NDQUxFUlMgMgotCXN0cnVjdCBpbnRlbF9zY2FsZXIgc2NhbGVyc1tTS0xfTlVNX1NDQUxFUlNdOwotCi0JLyoKLQkgKiBzY2FsZXJfdXNlcnM6IGtlZXBzIHRyYWNrIG9mIHVzZXJzIHJlcXVlc3Rpbmcgc2NhbGVycyBvbiB0aGlzIGNydGMuCi0JICoKLQkgKiAgICAgSWYgYSBiaXQgaXMgc2V0LCBhIHVzZXIgaXMgdXNpbmcgYSBzY2FsZXIuCi0JICogICAgIEhlcmUgdXNlciBjYW4gYmUgYSBwbGFuZSBvciBjcnRjIGFzIGRlZmluZWQgYmVsb3c6Ci0JICogICAgICAgYml0cyAwLTMwIC0gcGxhbmUgKGJpdCBwb3NpdGlvbiBpcyBpbmRleCBmcm9tIGRybV9wbGFuZV9pbmRleCkKLQkgKiAgICAgICBiaXQgMzEgICAgLSBjcnRjCi0JICoKLQkgKiBJbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IGluZGV4IHRvIGNvdmVyIHBsYW5lcyBhbmQgY3J0YywgdXNpbmcKLQkgKiBleGlzdGluZyBkcm1fcGxhbmVfaW5kZXggZm9yIHBsYW5lcyB3aGljaCBpcyB3ZWxsIGxlc3MgdGhhbiAzMQotCSAqIHBsYW5lcyBhbmQgYml0IDMxIGZvciBjcnRjLiBUaGlzIHNob3VsZCBiZSBmaW5lIHRvIGNvdmVyIGFsbAotCSAqIG91ciBwbGF0Zm9ybXMuCi0JICoKLQkgKiBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycyB3aWxsIHNldHVwIGF2YWlsYWJsZSBzY2FsZXJzIHRvIHVzZXJzCi0JICogcmVxdWVzdGluZyBzY2FsZXJzLiBJdCB3aWxsIGdyYWNlZnVsbHkgZmFpbCBpZiByZXF1ZXN0IGV4Y2VlZHMKLQkgKiBhdmlsYWJpbGl0eS4KLQkgKi8KLSNkZWZpbmUgU0tMX0NSVENfSU5ERVggMzEKLQl1bnNpZ25lZCBzY2FsZXJfdXNlcnM7Ci0KLQkvKiBzY2FsZXIgdXNlZCBieSBjcnRjIGZvciBwYW5lbCBmaXR0aW5nIHB1cnBvc2UgKi8KLQlpbnQgc2NhbGVyX2lkOwotfTsKLQotLyogZHJtX21vZGUtPnByaXZhdGVfZmxhZ3MgKi8KLSNkZWZpbmUgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEICgxPDwwKQotLyogRmxhZyB0byBnZXQgc2NhbmxpbmUgdXNpbmcgZnJhbWUgdGltZSBzdGFtcHMgKi8KLSNkZWZpbmUgSTkxNV9NT0RFX0ZMQUdfR0VUX1NDQU5MSU5FX0ZST01fVElNRVNUQU1QICgxPDwxKQotLyogRmxhZyB0byB1c2UgdGhlIHNjYW5saW5lIGNvdW50ZXIgaW5zdGVhZCBvZiB0aGUgcGl4ZWwgY291bnRlciAqLwotI2RlZmluZSBJOTE1X01PREVfRkxBR19VU0VfU0NBTkxJTkVfQ09VTlRFUiAoMTw8MikKLQotc3RydWN0IGludGVsX3BpcGVfd20gewotCXN0cnVjdCBpbnRlbF93bV9sZXZlbCB3bVs1XTsKLQl1MzIgbGluZXRpbWU7Ci0JYm9vbCBmYmNfd21fZW5hYmxlZDsKLQlib29sIHBpcGVfZW5hYmxlZDsKLQlib29sIHNwcml0ZXNfZW5hYmxlZDsKLQlib29sIHNwcml0ZXNfc2NhbGVkOwotfTsKLQotc3RydWN0IHNrbF9wbGFuZV93bSB7Ci0Jc3RydWN0IHNrbF93bV9sZXZlbCB3bVs4XTsKLQlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHV2X3dtWzhdOwotCXN0cnVjdCBza2xfd21fbGV2ZWwgdHJhbnNfd207Ci0JYm9vbCBpc19wbGFuYXI7Ci19OwotCi1zdHJ1Y3Qgc2tsX3BpcGVfd20gewotCXN0cnVjdCBza2xfcGxhbmVfd20gcGxhbmVzW0k5MTVfTUFYX1BMQU5FU107Ci0JdTMyIGxpbmV0aW1lOwotfTsKLQotZW51bSB2bHZfd21fbGV2ZWwgewotCVZMVl9XTV9MRVZFTF9QTTIsCi0JVkxWX1dNX0xFVkVMX1BNNSwKLQlWTFZfV01fTEVWRUxfRERSX0RWRlMsCi0JTlVNX1ZMVl9XTV9MRVZFTFMsCi19OwotCi1zdHJ1Y3Qgdmx2X3dtX3N0YXRlIHsKLQlzdHJ1Y3QgZzR4X3BpcGVfd20gd21bTlVNX1ZMVl9XTV9MRVZFTFNdOwotCXN0cnVjdCBnNHhfc3Jfd20gc3JbTlVNX1ZMVl9XTV9MRVZFTFNdOwotCXU4IG51bV9sZXZlbHM7Ci0JYm9vbCBjeHNyOwotfTsKLQotc3RydWN0IHZsdl9maWZvX3N0YXRlIHsKLQl1MTYgcGxhbmVbSTkxNV9NQVhfUExBTkVTXTsKLX07Ci0KLWVudW0gZzR4X3dtX2xldmVsIHsKLQlHNFhfV01fTEVWRUxfTk9STUFMLAotCUc0WF9XTV9MRVZFTF9TUiwKLQlHNFhfV01fTEVWRUxfSFBMTCwKLQlOVU1fRzRYX1dNX0xFVkVMUywKLX07Ci0KLXN0cnVjdCBnNHhfd21fc3RhdGUgewotCXN0cnVjdCBnNHhfcGlwZV93bSB3bTsKLQlzdHJ1Y3QgZzR4X3NyX3dtIHNyOwotCXN0cnVjdCBnNHhfc3Jfd20gaHBsbDsKLQlib29sIGN4c3I7Ci0JYm9vbCBocGxsX2VuOwotCWJvb2wgZmJjX2VuOwotfTsKLQotc3RydWN0IGludGVsX2NydGNfd21fc3RhdGUgewotCXVuaW9uIHsKLQkJc3RydWN0IHsKLQkJCS8qCi0JCQkgKiBJbnRlcm1lZGlhdGUgd2F0ZXJtYXJrczsgdGhlc2UgY2FuIGJlCi0JCQkgKiBwcm9ncmFtbWVkIGltbWVkaWF0ZWx5IHNpbmNlIHRoZXkgc2F0aXNmeQotCQkJICogYm90aCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHdlJ3JlCi0JCQkgKiBzd2l0Y2hpbmcgYXdheSBmcm9tIGFuZCB0aGUgbmV3Ci0JCQkgKiBjb25maWd1cmF0aW9uIHdlJ3JlIHN3aXRjaGluZyB0by4KLQkJCSAqLwotCQkJc3RydWN0IGludGVsX3BpcGVfd20gaW50ZXJtZWRpYXRlOwotCi0JCQkvKgotCQkJICogT3B0aW1hbCB3YXRlcm1hcmtzLCBwcm9ncmFtbWVkIHBvc3QtdmJsYW5rCi0JCQkgKiB3aGVuIHRoaXMgc3RhdGUgaXMgY29tbWl0dGVkLgotCQkJICovCi0JCQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBvcHRpbWFsOwotCQl9IGlsazsKLQotCQlzdHJ1Y3QgewotCQkJLyogZ2VuOSsgb25seSBuZWVkcyAxLXN0ZXAgd20gcHJvZ3JhbW1pbmcgKi8KLQkJCXN0cnVjdCBza2xfcGlwZV93bSBvcHRpbWFsOwotCQkJc3RydWN0IHNrbF9kZGJfZW50cnkgZGRiOwotCQkJc3RydWN0IHNrbF9kZGJfZW50cnkgcGxhbmVfZGRiX3lbSTkxNV9NQVhfUExBTkVTXTsKLQkJCXN0cnVjdCBza2xfZGRiX2VudHJ5IHBsYW5lX2RkYl91dltJOTE1X01BWF9QTEFORVNdOwotCQl9IHNrbDsKLQotCQlzdHJ1Y3QgewotCQkJLyogInJhdyIgd2F0ZXJtYXJrcyAobm90IGludmVydGVkKSAqLwotCQkJc3RydWN0IGc0eF9waXBlX3dtIHJhd1tOVU1fVkxWX1dNX0xFVkVMU107Ci0JCQkvKiBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrcyAoaW52ZXJ0ZWQpICovCi0JCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlIGludGVybWVkaWF0ZTsKLQkJCS8qIG9wdGltYWwgd2F0ZXJtYXJrcyAoaW52ZXJ0ZWQpICovCi0JCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlIG9wdGltYWw7Ci0JCQkvKiBkaXNwbGF5IEZJRk8gc3BsaXQgKi8KLQkJCXN0cnVjdCB2bHZfZmlmb19zdGF0ZSBmaWZvX3N0YXRlOwotCQl9IHZsdjsKLQotCQlzdHJ1Y3QgewotCQkJLyogInJhdyIgd2F0ZXJtYXJrcyAqLwotCQkJc3RydWN0IGc0eF9waXBlX3dtIHJhd1tOVU1fRzRYX1dNX0xFVkVMU107Ci0JCQkvKiBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrcyAqLwotCQkJc3RydWN0IGc0eF93bV9zdGF0ZSBpbnRlcm1lZGlhdGU7Ci0JCQkvKiBvcHRpbWFsIHdhdGVybWFya3MgKi8KLQkJCXN0cnVjdCBnNHhfd21fc3RhdGUgb3B0aW1hbDsKLQkJfSBnNHg7Ci0JfTsKLQotCS8qCi0JICogUGxhdGZvcm1zIHdpdGggdHdvLXN0ZXAgd2F0ZXJtYXJrIHByb2dyYW1taW5nIHdpbGwgbmVlZCB0bwotCSAqIHVwZGF0ZSB3YXRlcm1hcmsgcHJvZ3JhbW1pbmcgcG9zdC12YmxhbmsgdG8gc3dpdGNoIGZyb20gdGhlCi0JICogc2FmZSBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrcyB0byB0aGUgb3B0aW1hbCBmaW5hbAotCSAqIHdhdGVybWFya3MuCi0JICovCi0JYm9vbCBuZWVkX3Bvc3R2YmxfdXBkYXRlOwotfTsKLQotZW51bSBpbnRlbF9vdXRwdXRfZm9ybWF0IHsKLQlJTlRFTF9PVVRQVVRfRk9STUFUX0lOVkFMSUQsCi0JSU5URUxfT1VUUFVUX0ZPUk1BVF9SR0IsCi0JSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMCwKLQlJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDQ0LAotfTsKLQotc3RydWN0IGludGVsX2NydGNfc3RhdGUgewotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBiYXNlOwotCi0JLyoqCi0JICogcXVpcmtzIC0gYml0ZmllbGQgd2l0aCBodyBzdGF0ZSByZWFkb3V0IHF1aXJrcwotCSAqCi0JICogRm9yIHZhcmlvdXMgcmVhc29ucyB0aGUgaHcgc3RhdGUgcmVhZG91dCBjb2RlIG1pZ2h0IG5vdCBiZSBhYmxlIHRvCi0JICogY29tcGxldGVseSBmYWl0aGZ1bGx5IHJlYWQgb3V0IHRoZSBjdXJyZW50IHN0YXRlLiBUaGVzZSBjYXNlcyBhcmUKLQkgKiB0cmFja2VkIHdpdGggcXVpcmsgZmxhZ3Mgc28gdGhhdCBmYXN0Ym9vdCBhbmQgc3RhdGUgY2hlY2tlciBjYW4gYWN0Ci0JICogYWNjb3JkaW5nbHkuCi0JICovCi0jZGVmaW5lIFBJUEVfQ09ORklHX1FVSVJLX01PREVfU1lOQ19GTEFHUwkoMTw8MCkgLyogdW5yZWxpYWJsZSBzeW5jIG1vZGUuZmxhZ3MgKi8KLQl1bnNpZ25lZCBsb25nIHF1aXJrczsKLQotCXVuc2lnbmVkIGZiX2JpdHM7IC8qIGZyYW1lYnVmZmVycyB0byBmbGlwICovCi0JYm9vbCB1cGRhdGVfcGlwZTsgLyogY2FuIGEgZmFzdCBtb2Rlc2V0IGJlIHBlcmZvcm1lZD8gKi8KLQlib29sIGRpc2FibGVfY3hzcjsKLQlib29sIHVwZGF0ZV93bV9wcmUsIHVwZGF0ZV93bV9wb3N0OyAvKiB3YXRlcm1hcmtzIGFyZSB1cGRhdGVkICovCi0JYm9vbCBmYl9jaGFuZ2VkOyAvKiBmYiBvbiBhbnkgb2YgdGhlIHBsYW5lcyBpcyBjaGFuZ2VkICovCi0JYm9vbCBmaWZvX2NoYW5nZWQ7IC8qIEZJRk8gc3BsaXQgaXMgY2hhbmdlZCAqLwotCi0JLyogUGlwZSBzb3VyY2Ugc2l6ZSAoaWUuIHBhbmVsIGZpdHRlciBpbnB1dCBzaXplKQotCSAqIEFsbCBwbGFuZXMgd2lsbCBiZSBwb3NpdGlvbmVkIGluc2lkZSB0aGlzIHNwYWNlLAotCSAqIGFuZCBnZXQgY2xpcHBlZCBhdCB0aGUgZWRnZXMuICovCi0JaW50IHBpcGVfc3JjX3csIHBpcGVfc3JjX2g7Ci0KLQkvKgotCSAqIFBpcGUgcGl4ZWwgcmF0ZSwgYWRqdXN0ZWQgZm9yCi0JICogcGFuZWwgZml0dGVyL3BpcGUgc2NhbGVyIGRvd25zY2FsaW5nLgotCSAqLwotCXVuc2lnbmVkIGludCBwaXhlbF9yYXRlOwotCi0JLyogV2hldGhlciB0byBzZXQgdXAgdGhlIFBDSC9GREkuIE5vdGUgdGhhdCB3ZSBuZXZlciBhbGxvdyBzaGFyaW5nCi0JICogYmV0d2VlbiBwY2ggZW5jb2RlcnMgYW5kIGNwdSBlbmNvZGVycy4gKi8KLQlib29sIGhhc19wY2hfZW5jb2RlcjsKLQotCS8qIEFyZSB3ZSBzZW5kaW5nIGluZm9mcmFtZXMgb24gdGhlIGF0dGFjaGVkIHBvcnQgKi8KLQlib29sIGhhc19pbmZvZnJhbWU7Ci0KLQkvKiBDUFUgVHJhbnNjb2RlciBmb3IgdGhlIHBpcGUuIEN1cnJlbnRseSB0aGlzIGNhbiBvbmx5IGRpZmZlciBmcm9tIHRoZQotCSAqIHBpcGUgb24gSGFzd2VsbCBhbmQgbGF0ZXIgKHdoZXJlIHdlIGhhdmUgYSBzcGVjaWFsIGVEUCB0cmFuc2NvZGVyKQotCSAqIGFuZCBCcm94dG9uICh3aGVyZSB3ZSBoYXZlIHNwZWNpYWwgRFNJIHRyYW5zY29kZXJzKS4gKi8KLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXI7Ci0KLQkvKgotCSAqIFVzZSByZWR1Y2VkL2xpbWl0ZWQvYnJvYWRjYXN0IHJiZyByYW5nZSwgY29tcHJlc3NpbmcgZnJvbSB0aGUgZnVsbAotCSAqIHJhbmdlIGZlZCBpbnRvIHRoZSBjcnRjcy4KLQkgKi8KLQlib29sIGxpbWl0ZWRfY29sb3JfcmFuZ2U7Ci0KLQkvKiBCaXRtYXNrIG9mIGVuY29kZXIgdHlwZXMgKGVudW0gaW50ZWxfb3V0cHV0X3R5cGUpCi0JICogZHJpdmVuIGJ5IHRoZSBwaXBlLgotCSAqLwotCXVuc2lnbmVkIGludCBvdXRwdXRfdHlwZXM7Ci0KLQkvKiBXaGV0aGVyIHdlIHNob3VsZCBzZW5kIE5VTEwgaW5mb2ZyYW1lcy4gUmVxdWlyZWQgZm9yIGF1ZGlvLiAqLwotCWJvb2wgaGFzX2hkbWlfc2luazsKLQotCS8qIEF1ZGlvIGVuYWJsZWQgb24gdGhpcyBwaXBlLiBPbmx5IHZhbGlkIGlmIGVpdGhlciBoYXNfaGRtaV9zaW5rIG9yCi0JICogaGFzX2RwX2VuY29kZXIgaXMgc2V0LiAqLwotCWJvb2wgaGFzX2F1ZGlvOwotCi0JLyoKLQkgKiBFbmFibGUgZGl0aGVyaW5nLCB1c2VkIHdoZW4gdGhlIHNlbGVjdGVkIHBpcGUgYnBwIGRvZXNuJ3QgbWF0Y2ggdGhlCi0JICogcGxhbmUgYnBwLgotCSAqLwotCWJvb2wgZGl0aGVyOwotCi0JLyoKLQkgKiBEaXRoZXIgZ2V0cyBlbmFibGVkIGZvciAxOGJwcCB3aGljaCBjYXVzZXMgQ1JDIG1pc21hdGNoIGVycm9ycyBmb3IKLQkgKiBjb21wbGlhbmNlIHZpZGVvIHBhdHRlcm4gdGVzdHMuCi0JICogRGlzYWJsZSBkaXRoZXIgb25seSBpZiBpdCBpcyBhIGNvbXBsaWFuY2UgdGVzdCByZXF1ZXN0IGZvcgotCSAqIDE4YnBwLgotCSAqLwotCWJvb2wgZGl0aGVyX2ZvcmNlX2Rpc2FibGU7Ci0KLQkvKiBDb250cm9scyBmb3IgdGhlIGNsb2NrIGNvbXB1dGF0aW9uLCB0byBvdmVycmlkZSB2YXJpb3VzIHN0YWdlcy4gKi8KLQlib29sIGNsb2NrX3NldDsKLQotCS8qIFNEVk8gVFYgaGFzIGEgYnVuY2ggb2Ygc3BlY2lhbCBjYXNlLiBUbyBtYWtlIG11bHRpZnVuY3Rpb24gZW5jb2RlcnMKLQkgKiB3b3JrIGNvcnJlY3RseSwgd2UgbmVlZCB0byB0cmFjayB0aGlzIGF0IHJ1bnRpbWUuKi8KLQlib29sIHNkdm9fdHZfY2xvY2s7Ci0KLQkvKgotCSAqIGNydGMgYmFuZHdpZHRoIGxpbWl0LCBkb24ndCBpbmNyZWFzZSBwaXBlIGJwcCBvciBjbG9jayBpZiBub3QgcmVhbGx5Ci0JICogcmVxdWlyZWQuIFRoaXMgaXMgc2V0IGluIHRoZSAybmQgbG9vcCBvZiBjYWxsaW5nIGVuY29kZXIncwotCSAqIC0+Y29tcHV0ZV9jb25maWcgaWYgdGhlIGZpcnN0IHBpY2sgZG9lc24ndCB3b3JrIG91dC4KLQkgKi8KLQlib29sIGJ3X2NvbnN0cmFpbmVkOwotCi0JLyogU2V0dGluZ3MgZm9yIHRoZSBpbnRlbCBkcGxsIHVzZWQgb24gcHJldHR5IG11Y2ggZXZlcnl0aGluZyBidXQKLQkgKiBoYXN3ZWxsLiAqLwotCXN0cnVjdCBkcGxsIGRwbGw7Ci0KLQkvKiBTZWxlY3RlZCBkcGxsIHdoZW4gc2hhcmVkIG9yIE5VTEwuICovCi0Jc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpzaGFyZWRfZHBsbDsKLQotCS8qIEFjdHVhbCByZWdpc3RlciBzdGF0ZSBvZiB0aGUgZHBsbCwgZm9yIHNoYXJlZCBkcGxsIGNyb3NzLWNoZWNraW5nLiAqLwotCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIGRwbGxfaHdfc3RhdGU7Ci0KLQkvKiBEU0kgUExMIHJlZ2lzdGVycyAqLwotCXN0cnVjdCB7Ci0JCXUzMiBjdHJsLCBkaXY7Ci0JfSBkc2lfcGxsOwotCi0JaW50IHBpcGVfYnBwOwotCXN0cnVjdCBpbnRlbF9saW5rX21fbiBkcF9tX247Ci0KLQkvKiBtMl9uMiBmb3IgZURQIGRvd25jbG9jayAqLwotCXN0cnVjdCBpbnRlbF9saW5rX21fbiBkcF9tMl9uMjsKLQlib29sIGhhc19kcnJzOwotCi0JYm9vbCBoYXNfcHNyOwotCWJvb2wgaGFzX3BzcjI7Ci0KLQkvKgotCSAqIEZyZXF1ZW5jZSB0aGUgZHBsbCBmb3IgdGhlIHBvcnQgc2hvdWxkIHJ1biBhdC4gRGlmZmVycyBmcm9tIHRoZQotCSAqIGFkanVzdGVkIGRvdGNsb2NrIGUuZy4gZm9yIERQIG9yIDEwLzEyYnBjIGhkbWkgbW9kZS4gVGhpcyBpcyBhbHNvCi0JICogYWxyZWFkeSBtdWx0aXBsaWVkIGJ5IHBpeGVsX211bHRpcGxpZXIuCi0JICovCi0JaW50IHBvcnRfY2xvY2s7Ci0KLQkvKiBVc2VkIGJ5IFNEVk8gKGFuZCBpZiB3ZSBldmVyIGZpeCBpdCwgSERNSSkuICovCi0JdW5zaWduZWQgcGl4ZWxfbXVsdGlwbGllcjsKLQotCXU4IGxhbmVfY291bnQ7Ci0KLQkvKgotCSAqIFVzZWQgYnkgcGxhdGZvcm1zIGhhdmluZyBEUC9IRE1JIFBIWSB3aXRoIHByb2dyYW1tYWJsZSBsYW5lCi0JICogbGF0ZW5jeSBvcHRpbWl6YXRpb24uCi0JICovCi0JdTggbGFuZV9sYXRfb3B0aW1fbWFzazsKLQotCS8qIG1pbmltdW0gYWNjZXB0YWJsZSB2b2x0YWdlIGxldmVsICovCi0JdTggbWluX3ZvbHRhZ2VfbGV2ZWw7Ci0KLQkvKiBQYW5lbCBmaXR0ZXIgY29udHJvbHMgZm9yIGdlbjItZ2VuNCArIFZMViAqLwotCXN0cnVjdCB7Ci0JCXUzMiBjb250cm9sOwotCQl1MzIgcGdtX3JhdGlvczsKLQkJdTMyIGx2ZHNfYm9yZGVyX2JpdHM7Ci0JfSBnbWNoX3BmaXQ7Ci0KLQkvKiBQYW5lbCBmaXR0ZXIgcGxhY2VtZW50IGFuZCBzaXplIGZvciBJcm9ubGFrZSsgKi8KLQlzdHJ1Y3QgewotCQl1MzIgcG9zOwotCQl1MzIgc2l6ZTsKLQkJYm9vbCBlbmFibGVkOwotCQlib29sIGZvcmNlX3RocnU7Ci0JfSBwY2hfcGZpdDsKLQotCS8qIEZESSBjb25maWd1cmF0aW9uLCBvbmx5IHZhbGlkIGlmIGhhc19wY2hfZW5jb2RlciBpcyBzZXQuICovCi0JaW50IGZkaV9sYW5lczsKLQlzdHJ1Y3QgaW50ZWxfbGlua19tX24gZmRpX21fbjsKLQotCWJvb2wgaXBzX2VuYWJsZWQ7Ci0KLQlib29sIGNyY19lbmFibGVkOwotCi0JYm9vbCBlbmFibGVfZmJjOwotCi0JYm9vbCBkb3VibGVfd2lkZTsKLQotCWludCBwYm47Ci0KLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgc2NhbGVyX3N0YXRlOwotCi0JLyogdy9hIGZvciB3YWl0aW5nIDIgdmJsYW5rcyBkdXJpbmcgY3J0YyBlbmFibGUgKi8KLQllbnVtIHBpcGUgaHN3X3dvcmthcm91bmRfcGlwZTsKLQotCS8qIElWQiBzcHJpdGUgc2NhbGluZyB3L2EgKFdhQ3hTUkRpc2FibGVkRm9yU3ByaXRlU2NhbGluZzppdmIpICovCi0JYm9vbCBkaXNhYmxlX2xwX3dtOwotCi0Jc3RydWN0IGludGVsX2NydGNfd21fc3RhdGUgd207Ci0KLQl1MzIgZGF0YV9yYXRlW0k5MTVfTUFYX1BMQU5FU107Ci0KLQkvKiBHYW1tYSBtb2RlIHByb2dyYW1tZWQgb24gdGhlIHBpcGUgKi8KLQl1MzIgZ2FtbWFfbW9kZTsKLQotCXVuaW9uIHsKLQkJLyogQ1NDIG1vZGUgcHJvZ3JhbW1lZCBvbiB0aGUgcGlwZSAqLwotCQl1MzIgY3NjX21vZGU7Ci0KLQkJLyogQ0hWIENHTSBtb2RlICovCi0JCXUzMiBjZ21fbW9kZTsKLQl9OwotCi0JLyogYml0bWFzayBvZiB2aXNpYmxlIHBsYW5lcyAoZW51bSBwbGFuZV9pZCkgKi8KLQl1OCBhY3RpdmVfcGxhbmVzOwotCXU4IG52MTJfcGxhbmVzOwotCXU4IGM4X3BsYW5lczsKLQotCS8qIGJpdG1hc2sgb2YgcGxhbmVzIHRoYXQgd2lsbCBiZSB1cGRhdGVkIGR1cmluZyB0aGUgY29tbWl0ICovCi0JdTggdXBkYXRlX3BsYW5lczsKLQotCXN0cnVjdCB7Ci0JCXUzMiBlbmFibGU7Ci0JCXUzMiBnY3A7Ci0JCXVuaW9uIGhkbWlfaW5mb2ZyYW1lIGF2aTsKLQkJdW5pb24gaGRtaV9pbmZvZnJhbWUgc3BkOwotCQl1bmlvbiBoZG1pX2luZm9mcmFtZSBoZG1pOwotCQl1bmlvbiBoZG1pX2luZm9mcmFtZSBkcm07Ci0JfSBpbmZvZnJhbWVzOwotCi0JLyogSERNSSBzY3JhbWJsaW5nIHN0YXR1cyAqLwotCWJvb2wgaGRtaV9zY3JhbWJsaW5nOwotCi0JLyogSERNSSBIaWdoIFRNRFMgY2hhciByYXRlIHJhdGlvICovCi0JYm9vbCBoZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbzsKLQotCS8qIE91dHB1dCBmb3JtYXQgUkdCL1lDQkNSIGV0YyAqLwotCWVudW0gaW50ZWxfb3V0cHV0X2Zvcm1hdCBvdXRwdXRfZm9ybWF0OwotCi0JLyogT3V0cHV0IGRvd24gc2NhbGluZyBpcyBkb25lIGluIExTUENPTiBkZXZpY2UgKi8KLQlib29sIGxzcGNvbl9kb3duc2FtcGxpbmc7Ci0KLQkvKiBlbmFibGUgcGlwZSBnYW1tYT8gKi8KLQlib29sIGdhbW1hX2VuYWJsZTsKLQotCS8qIGVuYWJsZSBwaXBlIGNzYz8gKi8KLQlib29sIGNzY19lbmFibGU7Ci0KLQkvKiBEaXNwbGF5IFN0cmVhbSBjb21wcmVzc2lvbiBzdGF0ZSAqLwotCXN0cnVjdCB7Ci0JCWJvb2wgY29tcHJlc3Npb25fZW5hYmxlOwotCQlib29sIGRzY19zcGxpdDsKLQkJdTE2IGNvbXByZXNzZWRfYnBwOwotCQl1OCBzbGljZV9jb3VudDsKLQl9IGRzY19wYXJhbXM7Ci0Jc3RydWN0IGRybV9kc2NfY29uZmlnIGRwX2RzY19jZmc7Ci0KLQkvKiBGb3J3YXJkIEVycm9yIGNvcnJlY3Rpb24gU3RhdGUgKi8KLQlib29sIGZlY19lbmFibGU7Ci19OwotCi1zdHJ1Y3QgaW50ZWxfY3J0YyB7Ci0Jc3RydWN0IGRybV9jcnRjIGJhc2U7Ci0JZW51bSBwaXBlIHBpcGU7Ci0JLyoKLQkgKiBXaGV0aGVyIHRoZSBjcnRjIGFuZCB0aGUgY29ubmVjdGVkIG91dHB1dCBwaXBlbGluZSBpcyBhY3RpdmUuIEltcGxpZXMKLQkgKiB0aGF0IGNydGMtPmVuYWJsZWQgaXMgc2V0LCBpLmUuIHRoZSBjdXJyZW50IG1vZGUgY29uZmlndXJhdGlvbiBoYXMKLQkgKiBzb21lIG91dHB1dHMgY29ubmVjdGVkIHRvIHRoaXMgY3J0Yy4KLQkgKi8KLQlib29sIGFjdGl2ZTsKLQl1OCBwbGFuZV9pZHNfbWFzazsKLQl1bnNpZ25lZCBsb25nIGxvbmcgZW5hYmxlZF9wb3dlcl9kb21haW5zOwotCXN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5OwotCi0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNvbmZpZzsKLQotCS8qIEFjY2VzcyB0byB0aGVzZSBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGRldl9wcml2LT5pcnFfbG9jay4gKi8KLQlib29sIGNwdV9maWZvX3VuZGVycnVuX2Rpc2FibGVkOwotCWJvb2wgcGNoX2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQ7Ci0KLQkvKiBwZXItcGlwZSB3YXRlcm1hcmsgc3RhdGUgKi8KLQlzdHJ1Y3QgewotCQkvKiB3YXRlcm1hcmtzIGN1cnJlbnRseSBiZWluZyB1c2VkICAqLwotCQl1bmlvbiB7Ci0JCQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBpbGs7Ci0JCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlIHZsdjsKLQkJCXN0cnVjdCBnNHhfd21fc3RhdGUgZzR4OwotCQl9IGFjdGl2ZTsKLQl9IHdtOwotCi0JaW50IHNjYW5saW5lX29mZnNldDsKLQotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIHN0YXJ0X3ZibF9jb3VudDsKLQkJa3RpbWVfdCBzdGFydF92YmxfdGltZTsKLQkJaW50IG1pbl92YmwsIG1heF92Ymw7Ci0JCWludCBzY2FubGluZV9zdGFydDsKLQl9IGRlYnVnOwotCi0JLyogc2NhbGVycyBhdmFpbGFibGUgb24gdGhpcyBjcnRjICovCi0JaW50IG51bV9zY2FsZXJzOwotfTsKLQotc3RydWN0IGludGVsX3BsYW5lIHsKLQlzdHJ1Y3QgZHJtX3BsYW5lIGJhc2U7Ci0JZW51bSBpOXh4X3BsYW5lX2lkIGk5eHhfcGxhbmU7Ci0JZW51bSBwbGFuZV9pZCBpZDsKLQllbnVtIHBpcGUgcGlwZTsKLQlib29sIGhhc19mYmM7Ci0JYm9vbCBoYXNfY2NzOwotCXUzMiBmcm9udGJ1ZmZlcl9iaXQ7Ci0KLQlzdHJ1Y3QgewotCQl1MzIgYmFzZSwgY250bCwgc2l6ZTsKLQl9IGN1cnNvcjsKLQotCS8qCi0JICogTk9URTogRG8gbm90IHBsYWNlIG5ldyBwbGFuZSBzdGF0ZSBmaWVsZHMgaGVyZSAoZS5nLiwgd2hlbiBhZGRpbmcKLQkgKiBuZXcgcGxhbmUgcHJvcGVydGllcykuICBOZXcgcnVudGltZSBzdGF0ZSBzaG91bGQgbm93IGJlIHBsYWNlZCBpbgotCSAqIHRoZSBpbnRlbF9wbGFuZV9zdGF0ZSBzdHJ1Y3R1cmUgYW5kIGFjY2Vzc2VkIHZpYSBwbGFuZV9zdGF0ZS4KLQkgKi8KLQotCXVuc2lnbmVkIGludCAoKm1heF9zdHJpZGUpKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCi0JCQkJICAgdTMyIHBpeGVsX2Zvcm1hdCwgdTY0IG1vZGlmaWVyLAotCQkJCSAgIHVuc2lnbmVkIGludCByb3RhdGlvbik7Ci0Jdm9pZCAoKnVwZGF0ZV9wbGFuZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKLQkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwotCXZvaWQgKCp1cGRhdGVfc2xhdmUpKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCi0JCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKLQl2b2lkICgqZGlzYWJsZV9wbGFuZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKLQlib29sICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLCBlbnVtIHBpcGUgKnBpcGUpOwotCWludCAoKmNoZWNrX3BsYW5lKShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJCSAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwotfTsKLQotc3RydWN0IGludGVsX3dhdGVybWFya19wYXJhbXMgewotCXUxNiBmaWZvX3NpemU7Ci0JdTE2IG1heF93bTsKLQl1OCBkZWZhdWx0X3dtOwotCXU4IGd1YXJkX3NpemU7Ci0JdTggY2FjaGVsaW5lX3NpemU7Ci19OwotCi1zdHJ1Y3QgY3hzcl9sYXRlbmN5IHsKLQlib29sIGlzX2Rlc2t0b3AgOiAxOwotCWJvb2wgaXNfZGRyMyA6IDE7Ci0JdTE2IGZzYl9mcmVxOwotCXUxNiBtZW1fZnJlcTsKLQl1MTYgZGlzcGxheV9zcjsKLQl1MTYgZGlzcGxheV9ocGxsX2Rpc2FibGU7Ci0JdTE2IGN1cnNvcl9zcjsKLQl1MTYgY3Vyc29yX2hwbGxfZGlzYWJsZTsKLX07Ci0KLSNkZWZpbmUgdG9faW50ZWxfYXRvbWljX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlLCBiYXNlKQotI2RlZmluZSB0b19pbnRlbF9jcnRjKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfY3J0YywgYmFzZSkKLSNkZWZpbmUgdG9faW50ZWxfY3J0Y19zdGF0ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGJhc2UpCi0jZGVmaW5lIHRvX2ludGVsX2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2Nvbm5lY3RvciwgYmFzZSkKLSNkZWZpbmUgdG9faW50ZWxfZW5jb2Rlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2VuY29kZXIsIGJhc2UpCi0jZGVmaW5lIHRvX2ludGVsX2ZyYW1lYnVmZmVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIsIGJhc2UpCi0jZGVmaW5lIHRvX2ludGVsX3BsYW5lKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfcGxhbmUsIGJhc2UpCi0jZGVmaW5lIHRvX2ludGVsX3BsYW5lX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUsIGJhc2UpCi0jZGVmaW5lIGludGVsX2ZiX29iaih4KSAoKHgpID8gdG9faW50ZWxfYm8oKHgpLT5vYmpbMF0pIDogTlVMTCkKLQotc3RydWN0IGludGVsX2hkbWkgewotCWk5MTVfcmVnX3QgaGRtaV9yZWc7Ci0JaW50IGRkY19idXM7Ci0Jc3RydWN0IHsKLQkJZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgdHlwZTsKLQkJaW50IG1heF90bWRzX2Nsb2NrOwotCX0gZHBfZHVhbF9tb2RlOwotCWJvb2wgaGFzX2hkbWlfc2luazsKLQlib29sIGhhc19hdWRpbzsKLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICphdHRhY2hlZF9jb25uZWN0b3I7Ci0Jc3RydWN0IGNlY19ub3RpZmllciAqY2VjX25vdGlmaWVyOwotfTsKLQotc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyOwotI2RlZmluZSBEUF9NQVhfRE9XTlNUUkVBTV9QT1JUUwkJMHgxMAotCi0vKgotICogZW51bSBsaW5rX21fbl9zZXQ6Ci0gKglXaGVuIHBsYXRmb3JtIHByb3ZpZGVzIHR3byBzZXQgb2YgTV9OIHJlZ2lzdGVycyBmb3IgZHAsIHdlIGNhbgotICoJcHJvZ3JhbSB0aGVtIGFuZCBzd2l0Y2ggYmV0d2VlbiB0aGVtIGluY2FzZSBvZiBEUlJTLgotICoJQnV0IFdoZW4gb25seSBvbmUgc3VjaCByZWdpc3RlciBpcyBwcm92aWRlZCwgd2UgaGF2ZSB0byBwcm9ncmFtIHRoZQotICoJcmVxdWlyZWQgZGl2aWRlciB2YWx1ZSBvbiB0aGF0IHJlZ2lzdGVycyBpdHNlbGYgYmFzZWQgb24gdGhlIERSUlMgc3RhdGUuCi0gKgotICogTTFfTjEJOiBQcm9ncmFtIGRwX21fbiBvbiBNMV9OMSByZWdpc3RlcnMKLSAqCQkJICBkcF9tMl9uMiBvbiBNMl9OMiByZWdpc3RlcnMgKElmIHN1cHBvcnRlZCkKLSAqCi0gKiBNMl9OMgk6IFByb2dyYW0gZHBfbTJfbjIgb24gTTFfTjEgcmVnaXN0ZXJzCi0gKgkJCSAgTTJfTjIgcmVnaXN0ZXJzIGFyZSBub3Qgc3VwcG9ydGVkCi0gKi8KLQotZW51bSBsaW5rX21fbl9zZXQgewotCS8qIFNldHMgdGhlIG0xX24xIGFuZCBtMl9uMiAqLwotCU0xX04xID0gMCwKLQlNMl9OMgotfTsKLQotc3RydWN0IGludGVsX2RwX2NvbXBsaWFuY2VfZGF0YSB7Ci0JdW5zaWduZWQgbG9uZyBlZGlkOwotCXU4IHZpZGVvX3BhdHRlcm47Ci0JdTE2IGhkaXNwbGF5LCB2ZGlzcGxheTsKLQl1OCBicGM7Ci19OwotCi1zdHJ1Y3QgaW50ZWxfZHBfY29tcGxpYW5jZSB7Ci0JdW5zaWduZWQgbG9uZyB0ZXN0X3R5cGU7Ci0Jc3RydWN0IGludGVsX2RwX2NvbXBsaWFuY2VfZGF0YSB0ZXN0X2RhdGE7Ci0JYm9vbCB0ZXN0X2FjdGl2ZTsKLQlpbnQgdGVzdF9saW5rX3JhdGU7Ci0JdTggdGVzdF9sYW5lX2NvdW50OwotfTsKLQotc3RydWN0IGludGVsX2RwIHsKLQlpOTE1X3JlZ190IG91dHB1dF9yZWc7Ci0JdTMyIERQOwotCWludCBsaW5rX3JhdGU7Ci0JdTggbGFuZV9jb3VudDsKLQl1OCBzaW5rX2NvdW50OwotCWJvb2wgbGlua19tc3Q7Ci0JYm9vbCBsaW5rX3RyYWluZWQ7Ci0JYm9vbCBoYXNfYXVkaW87Ci0JYm9vbCByZXNldF9saW5rX3BhcmFtczsKLQl1OCBkcGNkW0RQX1JFQ0VJVkVSX0NBUF9TSVpFXTsKLQl1OCBwc3JfZHBjZFtFRFBfUFNSX1JFQ0VJVkVSX0NBUF9TSVpFXTsKLQl1OCBkb3duc3RyZWFtX3BvcnRzW0RQX01BWF9ET1dOU1RSRUFNX1BPUlRTXTsKLQl1OCBlZHBfZHBjZFtFRFBfRElTUExBWV9DVExfQ0FQX1NJWkVdOwotCXU4IGRzY19kcGNkW0RQX0RTQ19SRUNFSVZFUl9DQVBfU0laRV07Ci0JdTggZmVjX2NhcGFibGU7Ci0JLyogc291cmNlIHJhdGVzICovCi0JaW50IG51bV9zb3VyY2VfcmF0ZXM7Ci0JY29uc3QgaW50ICpzb3VyY2VfcmF0ZXM7Ci0JLyogc2luayByYXRlcyBhcyByZXBvcnRlZCBieSBEUF9NQVhfTElOS19SQVRFL0RQX1NVUFBPUlRFRF9MSU5LX1JBVEVTICovCi0JaW50IG51bV9zaW5rX3JhdGVzOwotCWludCBzaW5rX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdOwotCWJvb2wgdXNlX3JhdGVfc2VsZWN0OwotCS8qIGludGVyc2VjdGlvbiBvZiBzb3VyY2UgYW5kIHNpbmsgcmF0ZXMgKi8KLQlpbnQgbnVtX2NvbW1vbl9yYXRlczsKLQlpbnQgY29tbW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdOwotCS8qIE1heCBsYW5lIGNvdW50IGZvciB0aGUgY3VycmVudCBsaW5rICovCi0JaW50IG1heF9saW5rX2xhbmVfY291bnQ7Ci0JLyogTWF4IHJhdGUgZm9yIHRoZSBjdXJyZW50IGxpbmsgKi8KLQlpbnQgbWF4X2xpbmtfcmF0ZTsKLQkvKiBzaW5rIG9yIGJyYW5jaCBkZXNjcmlwdG9yICovCi0Jc3RydWN0IGRybV9kcF9kZXNjIGRlc2M7Ci0Jc3RydWN0IGRybV9kcF9hdXggYXV4OwotCXU4IHRyYWluX3NldFs0XTsKLQlpbnQgcGFuZWxfcG93ZXJfdXBfZGVsYXk7Ci0JaW50IHBhbmVsX3Bvd2VyX2Rvd25fZGVsYXk7Ci0JaW50IHBhbmVsX3Bvd2VyX2N5Y2xlX2RlbGF5OwotCWludCBiYWNrbGlnaHRfb25fZGVsYXk7Ci0JaW50IGJhY2tsaWdodF9vZmZfZGVsYXk7Ci0Jc3RydWN0IGRlbGF5ZWRfd29yayBwYW5lbF92ZGRfd29yazsKLQlib29sIHdhbnRfcGFuZWxfdmRkOwotCXVuc2lnbmVkIGxvbmcgbGFzdF9wb3dlcl9vbjsKLQl1bnNpZ25lZCBsb25nIGxhc3RfYmFja2xpZ2h0X29mZjsKLQlrdGltZV90IHBhbmVsX3Bvd2VyX29mZl90aW1lOwotCi0Jc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGVkcF9ub3RpZmllcjsKLQotCS8qCi0JICogUGlwZSB3aG9zZSBwb3dlciBzZXF1ZW5jZXIgaXMgY3VycmVudGx5IGxvY2tlZCBpbnRvCi0JICogdGhpcyBwb3J0LiBPbmx5IHJlbGV2YW50IG9uIFZMVi9DSFYuCi0JICovCi0JZW51bSBwaXBlIHBwc19waXBlOwotCS8qCi0JICogUGlwZSBjdXJyZW50bHkgZHJpdmluZyB0aGUgcG9ydC4gVXNlZCBmb3IgcHJldmVudGluZwotCSAqIHRoZSB1c2Ugb2YgdGhlIFBQUyBmb3IgYW55IHBpcGUgY3VycmVudHJseSBkcml2aW5nCi0JICogZXh0ZXJuYWwgRFAgYXMgdGhhdCB3aWxsIG1lc3MgdGhpbmdzIHVwIG9uIFZMVi4KLQkgKi8KLQllbnVtIHBpcGUgYWN0aXZlX3BpcGU7Ci0JLyoKLQkgKiBTZXQgaWYgdGhlIHNlcXVlbmNlciBtYXkgYmUgcmVzZXQgZHVlIHRvIGEgcG93ZXIgdHJhbnNpdGlvbiwKLQkgKiByZXF1aXJpbmcgYSByZWluaXRpYWxpemF0aW9uLiBPbmx5IHJlbGV2YW50IG9uIEJYVC4KLQkgKi8KLQlib29sIHBwc19yZXNldDsKLQlzdHJ1Y3QgZWRwX3Bvd2VyX3NlcSBwcHNfZGVsYXlzOwotCi0JYm9vbCBjYW5fbXN0OyAvKiB0aGlzIHBvcnQgc3VwcG9ydHMgbXN0ICovCi0JYm9vbCBpc19tc3Q7Ci0JaW50IGFjdGl2ZV9tc3RfbGlua3M7Ci0JLyogY29ubmVjdG9yIGRpcmVjdGx5IGF0dGFjaGVkIC0gd29uJ3QgYmUgdXNlIGZvciBtb2Rlc2V0IGluIG1zdCB3b3JsZCAqLwotCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmF0dGFjaGVkX2Nvbm5lY3RvcjsKLQotCS8qIG1zdCBjb25uZWN0b3IgbGlzdCAqLwotCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqbXN0X2VuY29kZXJzW0k5MTVfTUFYX1BJUEVTXTsKLQlzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgbXN0X21ncjsKLQotCXUzMiAoKmdldF9hdXhfY2xvY2tfZGl2aWRlcikoc3RydWN0IGludGVsX2RwICpkcCwgaW50IGluZGV4KTsKLQkvKgotCSAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsdWUgd2UgaGF2ZSB0byBwcm9ncmFtIHRoZSBBVVhfQ1RMCi0JICogcmVnaXN0ZXIgd2l0aCB0byBraWNrIG9mZiBhbiBBVVggdHJhbnNhY3Rpb24uCi0JICovCi0JdTMyICgqZ2V0X2F1eF9zZW5kX2N0bCkoc3RydWN0IGludGVsX2RwICpkcCwgaW50IHNlbmRfYnl0ZXMsCi0JCQkJdTMyIGF1eF9jbG9ja19kaXZpZGVyKTsKLQotCWk5MTVfcmVnX3QgKCphdXhfY2hfY3RsX3JlZykoc3RydWN0IGludGVsX2RwICpkcCk7Ci0JaTkxNV9yZWdfdCAoKmF1eF9jaF9kYXRhX3JlZykoc3RydWN0IGludGVsX2RwICpkcCwgaW50IGluZGV4KTsKLQotCS8qIFRoaXMgaXMgY2FsbGVkIGJlZm9yZSBhIGxpbmsgdHJhaW5pbmcgaXMgc3RhcnRlcmQgKi8KLQl2b2lkICgqcHJlcGFyZV9saW5rX3JldHJhaW4pKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwotCi0JLyogRGlzcGxheXBvcnQgY29tcGxpYW5jZSB0ZXN0aW5nICovCi0Jc3RydWN0IGludGVsX2RwX2NvbXBsaWFuY2UgY29tcGxpYW5jZTsKLQotCS8qIERpc3BsYXkgc3RyZWFtIGNvbXByZXNzaW9uIHRlc3RpbmcgKi8KLQlib29sIGZvcmNlX2RzY19lbjsKLX07Ci0KLWVudW0gbHNwY29uX3ZlbmRvciB7Ci0JTFNQQ09OX1ZFTkRPUl9NQ0EsCi0JTFNQQ09OX1ZFTkRPUl9QQVJBREUKLX07Ci0KLXN0cnVjdCBpbnRlbF9sc3Bjb24gewotCWJvb2wgYWN0aXZlOwotCWVudW0gZHJtX2xzcGNvbl9tb2RlIG1vZGU7Ci0JZW51bSBsc3Bjb25fdmVuZG9yIHZlbmRvcjsKLX07Ci0KLXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgewotCXN0cnVjdCBpbnRlbF9lbmNvZGVyIGJhc2U7Ci0JdTMyIHNhdmVkX3BvcnRfYml0czsKLQlzdHJ1Y3QgaW50ZWxfZHAgZHA7Ci0Jc3RydWN0IGludGVsX2hkbWkgaGRtaTsKLQlzdHJ1Y3QgaW50ZWxfbHNwY29uIGxzcGNvbjsKLQllbnVtIGlycXJldHVybiAoKmhwZF9wdWxzZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqLCBib29sKTsKLQlib29sIHJlbGVhc2VfY2wyX292ZXJyaWRlOwotCXU4IG1heF9sYW5lczsKLQkvKiBVc2VkIGZvciBEUCBhbmQgSUNMKyBUeXBlQy9EUCBhbmQgVHlwZUMvSERNSSBwb3J0cy4gKi8KLQllbnVtIGF1eF9jaCBhdXhfY2g7Ci0JZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkZGlfaW9fcG93ZXJfZG9tYWluOwotCWJvb2wgdGNfbGVnYWN5X3BvcnQ6MTsKLQllbnVtIHRjX3BvcnRfdHlwZSB0Y190eXBlOwotCi0Jdm9pZCAoKndyaXRlX2luZm9mcmFtZSkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkJdW5zaWduZWQgaW50IHR5cGUsCi0JCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKTsKLQl2b2lkICgqcmVhZF9pbmZvZnJhbWUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJICAgICAgIHVuc2lnbmVkIGludCB0eXBlLAotCQkJICAgICAgIHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbik7Ci0Jdm9pZCAoKnNldF9pbmZvZnJhbWVzKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCSAgICAgICBib29sIGVuYWJsZSwKLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Ci0JdTMyICgqaW5mb2ZyYW1lc19lbmFibGVkKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Ci19OwotCi1zdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgewotCXN0cnVjdCBpbnRlbF9lbmNvZGVyIGJhc2U7Ci0JZW51bSBwaXBlIHBpcGU7Ci0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqcHJpbWFyeTsKLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Ci19OwotCi1zdGF0aWMgaW5saW5lIGVudW0gZHBpb19jaGFubmVsCi12bHZfZHBvcnRfdG9fY2hhbm5lbChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCkKLXsKLQlzd2l0Y2ggKGRwb3J0LT5iYXNlLnBvcnQpIHsKLQljYXNlIFBPUlRfQjoKLQljYXNlIFBPUlRfRDoKLQkJcmV0dXJuIERQSU9fQ0gwOwotCWNhc2UgUE9SVF9DOgotCQlyZXR1cm4gRFBJT19DSDE7Ci0JZGVmYXVsdDoKLQkJQlVHKCk7Ci0JfQotfQotCi1zdGF0aWMgaW5saW5lIGVudW0gZHBpb19waHkKLXZsdl9kcG9ydF90b19waHkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQpCi17Ci0Jc3dpdGNoIChkcG9ydC0+YmFzZS5wb3J0KSB7Ci0JY2FzZSBQT1JUX0I6Ci0JY2FzZSBQT1JUX0M6Ci0JCXJldHVybiBEUElPX1BIWTA7Ci0JY2FzZSBQT1JUX0Q6Ci0JCXJldHVybiBEUElPX1BIWTE7Ci0JZGVmYXVsdDoKLQkJQlVHKCk7Ci0JfQotfQotCi1zdGF0aWMgaW5saW5lIGVudW0gZHBpb19jaGFubmVsCi12bHZfcGlwZV90b19jaGFubmVsKGVudW0gcGlwZSBwaXBlKQotewotCXN3aXRjaCAocGlwZSkgewotCWNhc2UgUElQRV9BOgotCWNhc2UgUElQRV9DOgotCQlyZXR1cm4gRFBJT19DSDA7Ci0JY2FzZSBQSVBFX0I6Ci0JCXJldHVybiBEUElPX0NIMTsKLQlkZWZhdWx0OgotCQlCVUcoKTsKLQl9Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2NydGMgKgotaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKLXsKLQlyZXR1cm4gZGV2X3ByaXYtPnBpcGVfdG9fY3J0Y19tYXBwaW5nW3BpcGVdOwotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9jcnRjICoKLWludGVsX2dldF9jcnRjX2Zvcl9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gaTl4eF9wbGFuZV9pZCBwbGFuZSkKLXsKLQlyZXR1cm4gZGV2X3ByaXYtPnBsYW5lX3RvX2NydGNfbWFwcGluZ1twbGFuZV07Ci19Ci0KLXN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlIHsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcmVzdG9yZV9zdGF0ZTsKLX07Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2VuY29kZXIgKgotaW50ZWxfYXR0YWNoZWRfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQotewotCXJldHVybiB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKS0+ZW5jb2RlcjsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGludGVsX2VuY29kZXJfaXNfZGlnX3BvcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCi17Ci0Jc3dpdGNoIChlbmNvZGVyLT50eXBlKSB7Ci0JY2FzZSBJTlRFTF9PVVRQVVRfRERJOgotCWNhc2UgSU5URUxfT1VUUFVUX0RQOgotCWNhc2UgSU5URUxfT1VUUFVUX0VEUDoKLQljYXNlIElOVEVMX09VVFBVVF9IRE1JOgotCQlyZXR1cm4gdHJ1ZTsKLQlkZWZhdWx0OgotCQlyZXR1cm4gZmFsc2U7Ci0JfQotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKgotZW5jX3RvX2RpZ19wb3J0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9IHRvX2ludGVsX2VuY29kZXIoZW5jb2Rlcik7Ci0KLQlpZiAoaW50ZWxfZW5jb2Rlcl9pc19kaWdfcG9ydChpbnRlbF9lbmNvZGVyKSkKLQkJcmV0dXJuIGNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0LAotCQkJCSAgICBiYXNlLmJhc2UpOwotCWVsc2UKLQkJcmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqCi1jb25uX3RvX2RpZ19wb3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlyZXR1cm4gZW5jX3RvX2RpZ19wb3J0KCZpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKCZjb25uZWN0b3ItPmJhc2UpLT5iYXNlKTsKLX0KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKgotZW5jX3RvX21zdChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIsIGJhc2UuYmFzZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RwICplbmNfdG9faW50ZWxfZHAoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQotewotCXJldHVybiAmZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpLT5kcDsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGludGVsX2VuY29kZXJfaXNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCi17Ci0Jc3dpdGNoIChlbmNvZGVyLT50eXBlKSB7Ci0JY2FzZSBJTlRFTF9PVVRQVVRfRFA6Ci0JY2FzZSBJTlRFTF9PVVRQVVRfRURQOgotCQlyZXR1cm4gdHJ1ZTsKLQljYXNlIElOVEVMX09VVFBVVF9EREk6Ci0JCS8qIFNraXAgcHVyZSBIRE1JL0RWSSBEREkgZW5jb2RlcnMgKi8KLQkJcmV0dXJuIGk5MTVfbW1pb19yZWdfdmFsaWQoZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKS0+b3V0cHV0X3JlZyk7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIGZhbHNlOwotCX0KLX0KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfbHNwY29uICoKLWVuY190b19pbnRlbF9sc3Bjb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQotewotCXJldHVybiAmZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpLT5sc3Bjb247Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqCi1kcF90b19kaWdfcG9ydChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQotewotCXJldHVybiBjb250YWluZXJfb2YoaW50ZWxfZHAsIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQsIGRwKTsKLX0KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfbHNwY29uICoKLWRwX3RvX2xzcGNvbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQotewotCXJldHVybiAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5sc3Bjb247Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKgotZHBfdG9faTkxNShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQotewotCXJldHVybiB0b19pOTE1KGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZS5iYXNlLmRldik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqCi1oZG1pX3RvX2RpZ19wb3J0KHN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pKQotewotCXJldHVybiBjb250YWluZXJfb2YoaW50ZWxfaGRtaSwgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCwgaGRtaSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICoKLWludGVsX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJIHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCi17Ci0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcmV0ID0KLQkJZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoJnN0YXRlLT5iYXNlLCAmcGxhbmUtPmJhc2UpOwotCi0JaWYgKElTX0VSUihyZXQpKQotCQlyZXR1cm4gRVJSX0NBU1QocmV0KTsKLQotCXJldHVybiB0b19pbnRlbF9wbGFuZV9zdGF0ZShyZXQpOwotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqCi1pbnRlbF9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKLQkJCQkgc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKLXsKLQlyZXR1cm4gdG9faW50ZWxfcGxhbmVfc3RhdGUoZHJtX2F0b21pY19nZXRfb2xkX3BsYW5lX3N0YXRlKCZzdGF0ZS0+YmFzZSwKLQkJCQkJCQkJICAgJnBsYW5lLT5iYXNlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICoKLWludGVsX2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJCSBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQotewotCXJldHVybiB0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoJnN0YXRlLT5iYXNlLAotCQkJCQkJCQkgICAmcGxhbmUtPmJhc2UpKTsKLX0KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqCi1pbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQotewotCXJldHVybiB0b19pbnRlbF9jcnRjX3N0YXRlKGRybV9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKCZzdGF0ZS0+YmFzZSwKLQkJCQkJCQkJICZjcnRjLT5iYXNlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKgotaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKLQkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKLXsKLQlyZXR1cm4gdG9faW50ZWxfY3J0Y19zdGF0ZShkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZSgmc3RhdGUtPmJhc2UsCi0JCQkJCQkJCSAmY3J0Yy0+YmFzZSkpOwotfQotCi0vKiBpbnRlbF9kaXNwbGF5LmMgKi8KLXZvaWQgaW50ZWxfcGxhbmVfZGVzdHJveShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7Ci12b2lkIGk4MzBfZW5hYmxlX3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSk7Ci12b2lkIGk4MzBfZGlzYWJsZV9waXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpOwotZW51bSBwaXBlIGludGVsX2NydGNfcGNoX3RyYW5zY29kZXIoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwotaW50IHZsdl9nZXRfaHBsbF92Y28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLWludCB2bHZfZ2V0X2Nja19jbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIHUzMiByZWcsIGludCByZWZfZnJlcSk7Ci1pbnQgdmx2X2dldF9jY2tfY2xvY2tfaHBsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICBjb25zdCBjaGFyICpuYW1lLCB1MzIgcmVnKTsKLXZvaWQgbHB0X2Rpc2FibGVfcGNoX3RyYW5zY29kZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgbHB0X2Rpc2FibGVfaWNsa2lwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX2luaXRfZGlzcGxheV9ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdW5zaWduZWQgaW50IGludGVsX2ZiX3h5X3RvX2xpbmVhcihpbnQgeCwgaW50IHksCi0JCQkJICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSwKLQkJCQkgICBpbnQgcGxhbmUpOwotdW5zaWduZWQgaW50IGludGVsX2ZiX2FsaWduX2hlaWdodChjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKLQkJCQkgICBpbnQgY29sb3JfcGxhbmUsIHVuc2lnbmVkIGludCBoZWlnaHQpOwotdm9pZCBpbnRlbF9hZGRfZmJfb2Zmc2V0cyhpbnQgKngsIGludCAqeSwKLQkJCSAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSwgaW50IHBsYW5lKTsKLXVuc2lnbmVkIGludCBpbnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvKTsKLXVuc2lnbmVkIGludCBpbnRlbF9yZW1hcHBlZF9pbmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JlbWFwcGVkX2luZm8gKnJlbV9pbmZvKTsKLWJvb2wgaW50ZWxfaGFzX3BlbmRpbmdfZmJfdW5waW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLWludCBpbnRlbF9kaXNwbGF5X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci12b2lkIGludGVsX3Bwc191bmxvY2tfcmVnc193YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpbnRlbF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKLXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICoKLWludGVsX2VuY29kZXJfY3VycmVudF9tb2RlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKLWJvb2wgaW50ZWxfcG9ydF9pc19jb21ib3BoeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KTsKLWJvb2wgaW50ZWxfcG9ydF9pc190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KTsKLWVudW0gdGNfcG9ydCBpbnRlbF9wb3J0X3RvX3RjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgICAgIGVudW0gcG9ydCBwb3J0KTsKLWludCBpbnRlbF9nZXRfcGlwZV9mcm9tX2NydGNfaWRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1lbnVtIHRyYW5zY29kZXIgaW50ZWxfcGlwZV90b19jcHVfdHJhbnNjb2RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJCSAgICAgZW51bSBwaXBlIHBpcGUpOwotc3RhdGljIGlubGluZSBib29sCi1pbnRlbF9jcnRjX2hhc190eXBlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkgICAgZW51bSBpbnRlbF9vdXRwdXRfdHlwZSB0eXBlKQotewotCXJldHVybiBjcnRjX3N0YXRlLT5vdXRwdXRfdHlwZXMgJiAoMSA8PCB0eXBlKTsKLX0KLXN0YXRpYyBpbmxpbmUgYm9vbAotaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKLXsKLQlyZXR1cm4gY3J0Y19zdGF0ZS0+b3V0cHV0X3R5cGVzICYKLQkJKCgxIDw8IElOVEVMX09VVFBVVF9EUCkgfAotCQkgKDEgPDwgSU5URUxfT1VUUFVUX0RQX01TVCkgfAotCQkgKDEgPDwgSU5URUxfT1VUUFVUX0VEUCkpOwotfQotc3RhdGljIGlubGluZSB2b2lkCi1pbnRlbF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKLXsKLQlkcm1fd2FpdF9vbmVfdmJsYW5rKCZkZXZfcHJpdi0+ZHJtLCBwaXBlKTsKLX0KLXN0YXRpYyBpbmxpbmUgdm9pZAotaW50ZWxfd2FpdF9mb3JfdmJsYW5rX2lmX2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBwaXBlKQotewotCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIHBpcGUpOwotCi0JaWYgKGNydGMtPmFjdGl2ZSkKLQkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBwaXBlKTsKLX0KLQotdTMyIGludGVsX2NydGNfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKLQotaW50IGlyb25sYWtlX2dldF9sYW5lc19yZXF1aXJlZChpbnQgdGFyZ2V0X2Nsb2NrLCBpbnQgbGlua19idywgaW50IGJwcCk7Ci12b2lkIHZsdl93YWl0X3BvcnRfcmVhZHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0LAotCQkJIHVuc2lnbmVkIGludCBleHBlY3RlZF9tYXNrKTsKLWludCBpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAotCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAotCQkJICAgICAgIHN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlICpvbGQsCi0JCQkgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwotdm9pZCBpbnRlbF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKLQkJCQkgICAgc3RydWN0IGludGVsX2xvYWRfZGV0ZWN0X3BpcGUgKm9sZCwKLQkJCQkgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwotc3RydWN0IGk5MTVfdm1hICoKLWludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAotCQkJICAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LAotCQkJICAgYm9vbCB1c2VzX2ZlbmNlLAotCQkJICAgdW5zaWduZWQgbG9uZyAqb3V0X2ZsYWdzKTsKLXZvaWQgaW50ZWxfdW5waW5fZmJfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKLXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKgotaW50ZWxfZnJhbWVidWZmZXJfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCQkgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kKTsKLWludCBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQkJICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3N0YXRlKTsKLXZvaWQgaW50ZWxfY2xlYW51cF9wbGFuZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpOwotCi12b2lkIGFzc2VydF9wY2hfdHJhbnNjb2Rlcl9kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgIGVudW0gcGlwZSBwaXBlKTsKLQotaW50IHZsdl9mb3JjZV9wbGxfb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwKLQkJICAgICBjb25zdCBzdHJ1Y3QgZHBsbCAqZHBsbCk7Ci12b2lkIHZsdl9mb3JjZV9wbGxfb2ZmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpOwotaW50IGxwdF9nZXRfaWNsa2lwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1ib29sIGludGVsX2Z1enp5X2Nsb2NrX2NoZWNrKGludCBjbG9jazEsIGludCBjbG9jazIpOwotCi0vKiBtb2Rlc2V0dGluZyBhc3NlcnRzICovCi12b2lkIGFzc2VydF9wYW5lbF91bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICBlbnVtIHBpcGUgcGlwZSk7Ci12b2lkIGFzc2VydF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQllbnVtIHBpcGUgcGlwZSwgYm9vbCBzdGF0ZSk7Ci0jZGVmaW5lIGFzc2VydF9wbGxfZW5hYmxlZChkLCBwKSBhc3NlcnRfcGxsKGQsIHAsIHRydWUpCi0jZGVmaW5lIGFzc2VydF9wbGxfZGlzYWJsZWQoZCwgcCkgYXNzZXJ0X3BsbChkLCBwLCBmYWxzZSkKLXZvaWQgYXNzZXJ0X2RzaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHN0YXRlKTsKLSNkZWZpbmUgYXNzZXJ0X2RzaV9wbGxfZW5hYmxlZChkKSBhc3NlcnRfZHNpX3BsbChkLCB0cnVlKQotI2RlZmluZSBhc3NlcnRfZHNpX3BsbF9kaXNhYmxlZChkKSBhc3NlcnRfZHNpX3BsbChkLCBmYWxzZSkKLXZvaWQgYXNzZXJ0X2ZkaV9yeF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkgICAgICAgZW51bSBwaXBlIHBpcGUsIGJvb2wgc3RhdGUpOwotI2RlZmluZSBhc3NlcnRfZmRpX3J4X3BsbF9lbmFibGVkKGQsIHApIGFzc2VydF9mZGlfcnhfcGxsKGQsIHAsIHRydWUpCi0jZGVmaW5lIGFzc2VydF9mZGlfcnhfcGxsX2Rpc2FibGVkKGQsIHApIGFzc2VydF9mZGlfcnhfcGxsKGQsIHAsIGZhbHNlKQotdm9pZCBhc3NlcnRfcGlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlLCBib29sIHN0YXRlKTsKLSNkZWZpbmUgYXNzZXJ0X3BpcGVfZW5hYmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCB0cnVlKQotI2RlZmluZSBhc3NlcnRfcGlwZV9kaXNhYmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCBmYWxzZSkKLXZvaWQgaW50ZWxfcHJlcGFyZV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpbnRlbF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfZHBfZ2V0X21fbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKLQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKLXZvaWQgaW50ZWxfZHBfc2V0X21fbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJICAgICAgZW51bSBsaW5rX21fbl9zZXQgbV9uKTsKLXZvaWQgaW50ZWxfZHBfeWNiY3JfNDIwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAotCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKLWludCBpbnRlbF9kb3RjbG9ja19jYWxjdWxhdGUoaW50IGxpbmtfZnJlcSwgY29uc3Qgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24pOwotYm9vbCBieHRfZmluZF9iZXN0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQlzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jayk7Ci1pbnQgY2h2X2NhbGNfZHBsbF9wYXJhbXMoaW50IHJlZmNsaywgc3RydWN0IGRwbGwgKnBsbF9jbG9jayk7Ci0KLWJvb2wgaW50ZWxfY3J0Y19hY3RpdmUoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwotYm9vbCBoc3dfY3J0Y19zdGF0ZV9pcHNfY2FwYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Ci12b2lkIGhzd19lbmFibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKLXZvaWQgaHN3X2Rpc2FibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKLWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gaW50ZWxfcG9ydF90b19wb3dlcl9kb21haW4oZW51bSBwb3J0IHBvcnQpOwotZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgotaW50ZWxfYXV4X3Bvd2VyX2RvbWFpbihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Ci12b2lkIGludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKLQkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKLXZvaWQgaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKLQkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKLQotdTE2IHNrbF9zY2FsZXJfY2FsY19waGFzZShpbnQgc3ViLCBpbnQgc2NhbGUsIGJvb2wgY2hyb21hX2NlbnRlcik7Ci1pbnQgc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Ci1pbnQgc2tsX21heF9zY2FsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJICB1MzIgcGl4ZWxfZm9ybWF0KTsKLQotc3RhdGljIGlubGluZSB1MzIgaW50ZWxfcGxhbmVfZ2d0dF9vZmZzZXQoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKLXsKLQlyZXR1cm4gaTkxNV9nZ3R0X29mZnNldChzdGF0ZS0+dm1hKTsKLX0KLQotdTMyIGdsa19wbGFuZV9jb2xvcl9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKLXUzMiBnbGtfcGxhbmVfY29sb3JfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwotdTMyIHNrbF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCSAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Ci11MzIgc2tsX3BsYW5lX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKLXUzMiBza2xfcGxhbmVfc3RyaWRlKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCi0JCSAgICAgaW50IHBsYW5lKTsKLWludCBza2xfY2hlY2tfcGxhbmVfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKLWludCBpOXh4X2NoZWNrX3BsYW5lX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Ci1pbnQgc2tsX2Zvcm1hdF90b19mb3VyY2MoaW50IGZvcm1hdCwgYm9vbCByZ2Jfb3JkZXIsIGJvb2wgYWxwaGEpOwotdW5zaWduZWQgaW50IGk5eHhfcGxhbmVfbWF4X3N0cmlkZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAotCQkJCSAgIHUzMiBwaXhlbF9mb3JtYXQsIHU2NCBtb2RpZmllciwKLQkJCQkgICB1bnNpZ25lZCBpbnQgcm90YXRpb24pOwotaW50IGJkd19nZXRfcGlwZW1pc2NfYnBwKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKLQotI2VuZGlmIC8qIF9fSU5URUxfRFJWX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQwYTZlZi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuYworKysgL2Rldi9udWxsCkBAIC0xLDY4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxNyBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImludGVsX2d1Yy5oIgotI2luY2x1ZGUgImludGVsX2d1Y19hZHMuaCIKLSNpbmNsdWRlICJpbnRlbF9ndWNfc3VibWlzc2lvbi5oIgotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0KLXN0YXRpYyB2b2lkIGdlbjhfZ3VjX3JhaXNlX2lycShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQotCUk5MTVfV1JJVEUoR1VDX1NFTkRfSU5URVJSVVBULCBHVUNfU0VORF9UUklHR0VSKTsKLX0KLQotc3RhdGljIHZvaWQgZ2VuMTFfZ3VjX3JhaXNlX2lycShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQotCUk5MTVfV1JJVEUoR0VOMTFfR1VDX0hPU1RfSU5URVJSVVBULCAwKTsKLX0KLQotc3RhdGljIGlubGluZSBpOTE1X3JlZ190IGd1Y19zZW5kX3JlZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHUzMiBpKQotewotCUdFTV9CVUdfT04oIWd1Yy0+c2VuZF9yZWdzLmJhc2UpOwotCUdFTV9CVUdfT04oIWd1Yy0+c2VuZF9yZWdzLmNvdW50KTsKLQlHRU1fQlVHX09OKGkgPj0gZ3VjLT5zZW5kX3JlZ3MuY291bnQpOwotCi0JcmV0dXJuIF9NTUlPKGd1Yy0+c2VuZF9yZWdzLmJhc2UgKyA0ICogaSk7Ci19Ci0KLXZvaWQgaW50ZWxfZ3VjX2luaXRfc2VuZF9yZWdzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwotCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWlucyA9IDA7Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewotCQlndWMtPnNlbmRfcmVncy5iYXNlID0KLQkJCQlpOTE1X21taW9fcmVnX29mZnNldChHRU4xMV9TT0ZUX1NDUkFUQ0goMCkpOwotCQlndWMtPnNlbmRfcmVncy5jb3VudCA9IEdFTjExX1NPRlRfU0NSQVRDSF9DT1VOVDsKLQl9IGVsc2UgewotCQlndWMtPnNlbmRfcmVncy5iYXNlID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoU09GVF9TQ1JBVENIKDApKTsKLQkJZ3VjLT5zZW5kX3JlZ3MuY291bnQgPSBHVUNfTUFYX01NSU9fTVNHX0xFTjsKLQkJQlVJTERfQlVHX09OKEdVQ19NQVhfTU1JT19NU0dfTEVOID4gU09GVF9TQ1JBVENIX0NPVU5UKTsKLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZ3VjLT5zZW5kX3JlZ3MuY291bnQ7IGkrKykgewotCQlmd19kb21haW5zIHw9IGludGVsX3VuY29yZV9mb3JjZXdha2VfZm9yX3JlZygmZGV2X3ByaXYtPnVuY29yZSwKLQkJCQkJZ3VjX3NlbmRfcmVnKGd1YywgaSksCi0JCQkJCUZXX1JFR19SRUFEIHwgRldfUkVHX1dSSVRFKTsKLQl9Ci0JZ3VjLT5zZW5kX3JlZ3MuZndfZG9tYWlucyA9IGZ3X2RvbWFpbnM7Ci19Ci0KLXZvaWQgaW50ZWxfZ3VjX2luaXRfZWFybHkoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQotCWludGVsX2d1Y19md19pbml0X2Vhcmx5KGd1Yyk7Ci0JaW50ZWxfZ3VjX2N0X2luaXRfZWFybHkoJmd1Yy0+Y3QpOwotCWludGVsX2d1Y19sb2dfaW5pdF9lYXJseSgmZ3VjLT5sb2cpOwotCi0JbXV0ZXhfaW5pdCgmZ3VjLT5zZW5kX211dGV4KTsKLQlzcGluX2xvY2tfaW5pdCgmZ3VjLT5pcnFfbG9jayk7Ci0JZ3VjLT5zZW5kID0gaW50ZWxfZ3VjX3NlbmRfbm9wOwotCWd1Yy0+aGFuZGxlciA9IGludGVsX2d1Y190b19ob3N0X2V2ZW50X2hhbmRsZXJfbm9wOwotCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpIHsKLQkJZ3VjLT5ub3RpZnkgPSBnZW4xMV9ndWNfcmFpc2VfaXJxOwotCQlndWMtPmludGVycnVwdHMucmVzZXQgPSBnZW4xMV9yZXNldF9ndWNfaW50ZXJydXB0czsKLQkJZ3VjLT5pbnRlcnJ1cHRzLmVuYWJsZSA9IGdlbjExX2VuYWJsZV9ndWNfaW50ZXJydXB0czsKLQkJZ3VjLT5pbnRlcnJ1cHRzLmRpc2FibGUgPSBnZW4xMV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzOwotCX0gZWxzZSB7Ci0JCWd1Yy0+bm90aWZ5ID0gZ2VuOF9ndWNfcmFpc2VfaXJxOwotCQlndWMtPmludGVycnVwdHMucmVzZXQgPSBnZW45X3Jlc2V0X2d1Y19pbnRlcnJ1cHRzOwotCQlndWMtPmludGVycnVwdHMuZW5hYmxlID0gZ2VuOV9lbmFibGVfZ3VjX2ludGVycnVwdHM7Ci0JCWd1Yy0+aW50ZXJydXB0cy5kaXNhYmxlID0gZ2VuOV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzOwotCX0KLX0KLQotc3RhdGljIGludCBndWNfaW5pdF93cShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQotCS8qCi0JICogR3VDIGxvZyBidWZmZXIgZmx1c2ggd29yayBpdGVtIGhhcyB0byBkbyByZWdpc3RlciBhY2Nlc3MgdG8KLQkgKiBzZW5kIHRoZSBhY2sgdG8gR3VDIGFuZCB0aGlzIHdvcmsgaXRlbSwgaWYgbm90IHN5bmNlZCBiZWZvcmUKLQkgKiBzdXNwZW5kLCBjYW4gcG90ZW50aWFsbHkgZ2V0IGV4ZWN1dGVkIGFmdGVyIHRoZSBHRlggZGV2aWNlIGlzCi0JICogc3VzcGVuZGVkLgotCSAqIEJ5IG1hcmtpbmcgdGhlIFdRIGFzIGZyZWV6YWJsZSwgd2UgZG9uJ3QgaGF2ZSB0byBib3RoZXIgYWJvdXQKLQkgKiBmbHVzaGluZyBvZiB0aGlzIHdvcmsgaXRlbSBmcm9tIHRoZSBzdXNwZW5kIGhvb2tzLCB0aGUgcGVuZGluZwotCSAqIHdvcmsgaXRlbSBpZiBhbnkgd2lsbCBiZSBlaXRoZXIgZXhlY3V0ZWQgYmVmb3JlIHRoZSBzdXNwZW5kCi0JICogb3Igc2NoZWR1bGVkIGxhdGVyIG9uIHJlc3VtZS4gVGhpcyB3YXkgdGhlIGhhbmRsaW5nIG9mIHdvcmsKLQkgKiBpdGVtIGNhbiBiZSBrZXB0IHNhbWUgYmV0d2VlbiBzeXN0ZW0gc3VzcGVuZCAmIHJwbSBzdXNwZW5kLgotCSAqLwotCWd1Yy0+bG9nLnJlbGF5LmZsdXNoX3dxID0KLQkJYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoImk5MTUtZ3VjX2xvZyIsCi0JCQkJCVdRX0hJR0hQUkkgfCBXUV9GUkVFWkFCTEUpOwotCWlmICghZ3VjLT5sb2cucmVsYXkuZmx1c2hfd3EpIHsKLQkJRFJNX0VSUk9SKCJDb3VsZG4ndCBhbGxvY2F0ZSB3b3JrcXVldWUgZm9yIEd1QyBsb2dcbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKLQl9Ci0KLQkvKgotCSAqIEV2ZW4gdGhvdWdoIGJvdGggc2VuZGluZyBHdUMgYWN0aW9uLCBhbmQgYWRkaW5nIGEgbmV3IHdvcmtpdGVtIHRvCi0JICogR3VDIHdvcmtxdWV1ZSBhcmUgc2VyaWFsaXplZCAoZWFjaCB3aXRoIGl0cyBvd24gbG9ja2luZyksIHNpbmNlCi0JICogd2UncmUgdXNpbmcgbXV0bGlwbGUgZW5naW5lcywgaXQncyBwb3NzaWJsZSB0aGF0IHdlJ3JlIGdvaW5nIHRvCi0JICogaXNzdWUgYSBwcmVlbXB0IHJlcXVlc3Qgd2l0aCB0d28gKG9yIG1vcmUgLSBlYWNoIGZvciBkaWZmZXJlbnQKLQkgKiBlbmdpbmUpIHdvcmtpdGVtcyBpbiBHdUMgcXVldWUuIEluIHRoaXMgc2l0dWF0aW9uLCBHdUMgbWF5IHN1Ym1pdAotCSAqIGFsbCBvZiB0aGVtLCB3aGljaCB3aWxsIG1ha2UgdXMgdmVyeSBjb25mdXNlZC4KLQkgKiBPdXIgcHJlZW1wdGlvbiBjb250ZXh0cyBtYXkgZXZlbiBhbHJlYWR5IGJlIGNvbXBsZXRlIC0gYmVmb3JlIHdlCi0JICogZXZlbiBoYWQgdGhlIGNoYW5jZSB0byBzZW50IHRoZSBwcmVlbXB0IGFjdGlvbiB0byBHdUMhLiBSYXRoZXIKLQkgKiB0aGFuIGludHJvZHVjaW5nIHlldCBhbm90aGVyIGxvY2ssIHdlIGNhbiBqdXN0IHVzZSBvcmRlcmVkIHdvcmtxdWV1ZQotCSAqIHRvIG1ha2Ugc3VyZSB3ZSdyZSBhbHdheXMgc2VuZGluZyBhIHNpbmdsZSBwcmVlbXB0aW9uIHJlcXVlc3Qgd2l0aCBhCi0JICogc2luZ2xlIHdvcmtpdGVtLgotCSAqLwotCWlmIChIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oZGV2X3ByaXYpICYmCi0JICAgIFVTRVNfR1VDX1NVQk1JU1NJT04oZGV2X3ByaXYpKSB7Ci0JCWd1Yy0+cHJlZW1wdF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJpOTE1LWd1Y19wcmVlbXB0IiwKLQkJCQkJCQkgIFdRX0hJR0hQUkkpOwotCQlpZiAoIWd1Yy0+cHJlZW1wdF93cSkgewotCQkJZGVzdHJveV93b3JrcXVldWUoZ3VjLT5sb2cucmVsYXkuZmx1c2hfd3EpOwotCQkJRFJNX0VSUk9SKCJDb3VsZG4ndCBhbGxvY2F0ZSB3b3JrcXVldWUgZm9yIEd1QyAiCi0JCQkJICAicHJlZW1wdGlvblxuIik7Ci0JCQlyZXR1cm4gLUVOT01FTTsKLQkJfQotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBndWNfZmluaV93cShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0Jc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwotCi0Jd3EgPSBmZXRjaF9hbmRfemVybygmZ3VjLT5wcmVlbXB0X3dxKTsKLQlpZiAod3EpCi0JCWRlc3Ryb3lfd29ya3F1ZXVlKHdxKTsKLQotCXdxID0gZmV0Y2hfYW5kX3plcm8oJmd1Yy0+bG9nLnJlbGF5LmZsdXNoX3dxKTsKLQlpZiAod3EpCi0JCWRlc3Ryb3lfd29ya3F1ZXVlKHdxKTsKLX0KLQotaW50IGludGVsX2d1Y19pbml0X21pc2Moc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQlpbnQgcmV0OwotCi0JcmV0ID0gZ3VjX2luaXRfd3EoZ3VjKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JaW50ZWxfdWNfZndfZmV0Y2goaTkxNSwgJmd1Yy0+ZncpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXZvaWQgaW50ZWxfZ3VjX2ZpbmlfbWlzYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0JaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaCgmZ3VjLT5mdyk7Ci0JZ3VjX2Zpbmlfd3EoZ3VjKTsKLX0KLQotc3RhdGljIGludCBndWNfc2hhcmVkX2RhdGFfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQl2b2lkICp2YWRkcjsKLQotCXZtYSA9IGludGVsX2d1Y19hbGxvY2F0ZV92bWEoZ3VjLCBQQUdFX1NJWkUpOwotCWlmIChJU19FUlIodm1hKSkKLQkJcmV0dXJuIFBUUl9FUlIodm1hKTsKLQotCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAodm1hLT5vYmosIEk5MTVfTUFQX1dCKTsKLQlpZiAoSVNfRVJSKHZhZGRyKSkgewotCQlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmdm1hLCAwKTsKLQkJcmV0dXJuIFBUUl9FUlIodmFkZHIpOwotCX0KLQotCWd1Yy0+c2hhcmVkX2RhdGEgPSB2bWE7Ci0JZ3VjLT5zaGFyZWRfZGF0YV92YWRkciA9IHZhZGRyOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19zaGFyZWRfZGF0YV9kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmZ3VjLT5zaGFyZWRfZGF0YSwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwotfQotCi1pbnQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0JaW50IHJldDsKLQotCXJldCA9IGludGVsX3VjX2Z3X2luaXQoJmd1Yy0+ZncpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2ZldGNoOwotCi0JcmV0ID0gZ3VjX3NoYXJlZF9kYXRhX2NyZWF0ZShndWMpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2Z3OwotCUdFTV9CVUdfT04oIWd1Yy0+c2hhcmVkX2RhdGEpOwotCi0JcmV0ID0gaW50ZWxfZ3VjX2xvZ19jcmVhdGUoJmd1Yy0+bG9nKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9zaGFyZWQ7Ci0KLQlyZXQgPSBpbnRlbF9ndWNfYWRzX2NyZWF0ZShndWMpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2xvZzsKLQlHRU1fQlVHX09OKCFndWMtPmFkc192bWEpOwotCi0JcmV0ID0gaW50ZWxfZ3VjX2N0X2luaXQoJmd1Yy0+Y3QpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2FkczsKLQotCS8qIFdlIG5lZWQgdG8gbm90aWZ5IHRoZSBndWMgd2hlbmV2ZXIgd2UgY2hhbmdlIHRoZSBHR1RUICovCi0JaTkxNV9nZ3R0X2VuYWJsZV9ndWMoZGV2X3ByaXYpOwotCi0JcmV0dXJuIDA7Ci0KLWVycl9hZHM6Ci0JaW50ZWxfZ3VjX2Fkc19kZXN0cm95KGd1Yyk7Ci1lcnJfbG9nOgotCWludGVsX2d1Y19sb2dfZGVzdHJveSgmZ3VjLT5sb2cpOwotZXJyX3NoYXJlZDoKLQlndWNfc2hhcmVkX2RhdGFfZGVzdHJveShndWMpOwotZXJyX2Z3OgotCWludGVsX3VjX2Z3X2ZpbmkoJmd1Yy0+ZncpOwotZXJyX2ZldGNoOgotCWludGVsX3VjX2Z3X2NsZWFudXBfZmV0Y2goJmd1Yy0+ZncpOwotCXJldHVybiByZXQ7Ci19Ci0KLXZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0KLQlpOTE1X2dndHRfZGlzYWJsZV9ndWMoZGV2X3ByaXYpOwotCi0JaW50ZWxfZ3VjX2N0X2ZpbmkoJmd1Yy0+Y3QpOwotCi0JaW50ZWxfZ3VjX2Fkc19kZXN0cm95KGd1Yyk7Ci0JaW50ZWxfZ3VjX2xvZ19kZXN0cm95KCZndWMtPmxvZyk7Ci0JZ3VjX3NoYXJlZF9kYXRhX2Rlc3Ryb3koZ3VjKTsKLQlpbnRlbF91Y19md19maW5pKCZndWMtPmZ3KTsKLQlpbnRlbF91Y19md19jbGVhbnVwX2ZldGNoKCZndWMtPmZ3KTsKLX0KLQotc3RhdGljIHUzMiBndWNfY3RsX2RlYnVnX2ZsYWdzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQl1MzIgbGV2ZWwgPSBpbnRlbF9ndWNfbG9nX2dldF9sZXZlbCgmZ3VjLT5sb2cpOwotCXUzMiBmbGFncyA9IDA7Ci0KLQlpZiAoIUdVQ19MT0dfTEVWRUxfSVNfVkVSQk9TRShsZXZlbCkpCi0JCWZsYWdzIHw9IEdVQ19MT0dfRElTQUJMRUQ7Ci0JZWxzZQotCQlmbGFncyB8PSBHVUNfTE9HX0xFVkVMX1RPX1ZFUkJPU0lUWShsZXZlbCkgPDwKLQkJCSBHVUNfTE9HX1ZFUkJPU0lUWV9TSElGVDsKLQotCXJldHVybiBmbGFnczsKLX0KLQotc3RhdGljIHUzMiBndWNfY3RsX2ZlYXR1cmVfZmxhZ3Moc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXUzMiBmbGFncyA9IDA7Ci0KLQlpZiAoIVVTRVNfR1VDX1NVQk1JU1NJT04oZ3VjX3RvX2k5MTUoZ3VjKSkpCi0JCWZsYWdzIHw9IEdVQ19DVExfRElTQUJMRV9TQ0hFRFVMRVI7Ci0KLQlyZXR1cm4gZmxhZ3M7Ci19Ci0KLXN0YXRpYyB1MzIgZ3VjX2N0bF9jdHhpbmZvX2ZsYWdzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQl1MzIgZmxhZ3MgPSAwOwotCi0JaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oZ3VjX3RvX2k5MTUoZ3VjKSkpIHsKLQkJdTMyIGN0eG51bSwgYmFzZTsKLQotCQliYXNlID0gaW50ZWxfZ3VjX2dndHRfb2Zmc2V0KGd1YywgZ3VjLT5zdGFnZV9kZXNjX3Bvb2wpOwotCQljdHhudW0gPSBHVUNfTUFYX1NUQUdFX0RFU0NSSVBUT1JTIC8gMTY7Ci0KLQkJYmFzZSA+Pj0gUEFHRV9TSElGVDsKLQkJZmxhZ3MgfD0gKGJhc2UgPDwgR1VDX0NUTF9CQVNFX0FERFJfU0hJRlQpIHwKLQkJCShjdHhudW0gPDwgR1VDX0NUTF9DVFhOVU1fSU4xNl9TSElGVCk7Ci0JfQotCXJldHVybiBmbGFnczsKLX0KLQotc3RhdGljIHUzMiBndWNfY3RsX2xvZ19wYXJhbXNfZmxhZ3Moc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXUzMiBvZmZzZXQgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBndWMtPmxvZy52bWEpID4+IFBBR0VfU0hJRlQ7Ci0JdTMyIGZsYWdzOwotCi0JI2lmICgoKENSQVNIX0JVRkZFUl9TSVpFKSAlIFNaXzFNKSA9PSAwKQotCSNkZWZpbmUgVU5JVCBTWl8xTQotCSNkZWZpbmUgRkxBRyBHVUNfTE9HX0FMTE9DX0lOX01FR0FCWVRFCi0JI2Vsc2UKLQkjZGVmaW5lIFVOSVQgU1pfNEsKLQkjZGVmaW5lIEZMQUcgMAotCSNlbmRpZgotCi0JQlVJTERfQlVHX09OKCFDUkFTSF9CVUZGRVJfU0laRSk7Ci0JQlVJTERfQlVHX09OKCFJU19BTElHTkVEKENSQVNIX0JVRkZFUl9TSVpFLCBVTklUKSk7Ci0JQlVJTERfQlVHX09OKCFEUENfQlVGRkVSX1NJWkUpOwotCUJVSUxEX0JVR19PTighSVNfQUxJR05FRChEUENfQlVGRkVSX1NJWkUsIFVOSVQpKTsKLQlCVUlMRF9CVUdfT04oIUlTUl9CVUZGRVJfU0laRSk7Ci0JQlVJTERfQlVHX09OKCFJU19BTElHTkVEKElTUl9CVUZGRVJfU0laRSwgVU5JVCkpOwotCi0JQlVJTERfQlVHX09OKChDUkFTSF9CVUZGRVJfU0laRSAvIFVOSVQgLSAxKSA+Ci0JCQkoR1VDX0xPR19DUkFTSF9NQVNLID4+IEdVQ19MT0dfQ1JBU0hfU0hJRlQpKTsKLQlCVUlMRF9CVUdfT04oKERQQ19CVUZGRVJfU0laRSAvIFVOSVQgLSAxKSA+Ci0JCQkoR1VDX0xPR19EUENfTUFTSyA+PiBHVUNfTE9HX0RQQ19TSElGVCkpOwotCUJVSUxEX0JVR19PTigoSVNSX0JVRkZFUl9TSVpFIC8gVU5JVCAtIDEpID4KLQkJCShHVUNfTE9HX0lTUl9NQVNLID4+IEdVQ19MT0dfSVNSX1NISUZUKSk7Ci0KLQlmbGFncyA9IEdVQ19MT0dfVkFMSUQgfAotCQlHVUNfTE9HX05PVElGWV9PTl9IQUxGX0ZVTEwgfAotCQlGTEFHIHwKLQkJKChDUkFTSF9CVUZGRVJfU0laRSAvIFVOSVQgLSAxKSA8PCBHVUNfTE9HX0NSQVNIX1NISUZUKSB8Ci0JCSgoRFBDX0JVRkZFUl9TSVpFIC8gVU5JVCAtIDEpIDw8IEdVQ19MT0dfRFBDX1NISUZUKSB8Ci0JCSgoSVNSX0JVRkZFUl9TSVpFIC8gVU5JVCAtIDEpIDw8IEdVQ19MT0dfSVNSX1NISUZUKSB8Ci0JCShvZmZzZXQgPDwgR1VDX0xPR19CVUZfQUREUl9TSElGVCk7Ci0KLQkjdW5kZWYgVU5JVAotCSN1bmRlZiBGTEFHCi0KLQlyZXR1cm4gZmxhZ3M7Ci19Ci0KLXN0YXRpYyB1MzIgZ3VjX2N0bF9hZHNfZmxhZ3Moc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXUzMiBhZHMgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBndWMtPmFkc192bWEpID4+IFBBR0VfU0hJRlQ7Ci0JdTMyIGZsYWdzID0gYWRzIDw8IEdVQ19BRFNfQUREUl9TSElGVDsKLQotCXJldHVybiBmbGFnczsKLX0KLQotLyoKLSAqIEluaXRpYWxpc2UgdGhlIEd1QyBwYXJhbWV0ZXIgYmxvY2sgYmVmb3JlIHN0YXJ0aW5nIHRoZSBmaXJtd2FyZQotICogdHJhbnNmZXIuIFRoZXNlIHBhcmFtZXRlcnMgYXJlIHJlYWQgYnkgdGhlIGZpcm13YXJlIG9uIHN0YXJ0dXAKLSAqIGFuZCBjYW5ub3QgYmUgY2hhbmdlZCB0aGVyZWFmdGVyLgotICovCi12b2lkIGludGVsX2d1Y19pbml0X3BhcmFtcyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQl1MzIgcGFyYW1zW0dVQ19DVExfTUFYX0RXT1JEU107Ci0JaW50IGk7Ci0KLQltZW1zZXQocGFyYW1zLCAwLCBzaXplb2YocGFyYW1zKSk7Ci0KLQlwYXJhbXNbR1VDX0NUTF9DVFhJTkZPXSA9IGd1Y19jdGxfY3R4aW5mb19mbGFncyhndWMpOwotCXBhcmFtc1tHVUNfQ1RMX0xPR19QQVJBTVNdID0gZ3VjX2N0bF9sb2dfcGFyYW1zX2ZsYWdzKGd1Yyk7Ci0JcGFyYW1zW0dVQ19DVExfRkVBVFVSRV0gPSBndWNfY3RsX2ZlYXR1cmVfZmxhZ3MoZ3VjKTsKLQlwYXJhbXNbR1VDX0NUTF9ERUJVR10gPSBndWNfY3RsX2RlYnVnX2ZsYWdzKGd1Yyk7Ci0JcGFyYW1zW0dVQ19DVExfQURTXSA9IGd1Y19jdGxfYWRzX2ZsYWdzKGd1Yyk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgR1VDX0NUTF9NQVhfRFdPUkRTOyBpKyspCi0JCURSTV9ERUJVR19EUklWRVIoInBhcmFtWyUyZF0gPSAlI3hcbiIsIGksIHBhcmFtc1tpXSk7Ci0KLQkvKgotCSAqIEFsbCBTT0ZUX1NDUkFUQ0ggcmVnaXN0ZXJzIGFyZSBpbiBGT1JDRVdBS0VfQkxJVFRFUiBkb21haW4gYW5kCi0JICogdGhleSBhcmUgcG93ZXIgY29udGV4dCBzYXZlZCBzbyBpdCdzIG9rIHRvIHJlbGVhc2UgZm9yY2V3YWtlCi0JICogd2hlbiB3ZSBhcmUgZG9uZSBoZXJlIGFuZCB0YWtlIGl0IGFnYWluIGF0IHhmZXIgdGltZS4KLQkgKi8KLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0JMSVRURVIpOwotCi0JSTkxNV9XUklURShTT0ZUX1NDUkFUQ0goMCksIDApOwotCi0JZm9yIChpID0gMDsgaSA8IEdVQ19DVExfTUFYX0RXT1JEUzsgaSsrKQotCQlJOTE1X1dSSVRFKFNPRlRfU0NSQVRDSCgxICsgaSksIHBhcmFtc1tpXSk7Ci0KLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0JMSVRURVIpOwotfQotCi1pbnQgaW50ZWxfZ3VjX3NlbmRfbm9wKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sCi0JCSAgICAgICB1MzIgKnJlc3BvbnNlX2J1ZiwgdTMyIHJlc3BvbnNlX2J1Zl9zaXplKQotewotCVdBUk4oMSwgIlVuZXhwZWN0ZWQgc2VuZDogYWN0aW9uPSUjeFxuIiwgKmFjdGlvbik7Ci0JcmV0dXJuIC1FTk9ERVY7Ci19Ci0KLXZvaWQgaW50ZWxfZ3VjX3RvX2hvc3RfZXZlbnRfaGFuZGxlcl9ub3Aoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCVdBUk4oMSwgIlVuZXhwZWN0ZWQgZXZlbnQ6IG5vIHN1aXRhYmxlIGhhbmRsZXJcbiIpOwotfQotCi0vKgotICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBNTUlPIGJhc2VkIGhvc3QgdG8gR3VDIGludGVyZmFjZS4KLSAqLwotaW50IGludGVsX2d1Y19zZW5kX21taW8oc3RydWN0IGludGVsX2d1YyAqZ3VjLCBjb25zdCB1MzIgKmFjdGlvbiwgdTMyIGxlbiwKLQkJCXUzMiAqcmVzcG9uc2VfYnVmLCB1MzIgcmVzcG9uc2VfYnVmX3NpemUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKLQl1MzIgc3RhdHVzOwotCWludCBpOwotCWludCByZXQ7Ci0KLQlHRU1fQlVHX09OKCFsZW4pOwotCUdFTV9CVUdfT04obGVuID4gZ3VjLT5zZW5kX3JlZ3MuY291bnQpOwotCi0JLyogV2UgZXhwZWN0IG9ubHkgYWN0aW9uIGNvZGUgKi8KLQlHRU1fQlVHX09OKCphY3Rpb24gJiB+SU5URUxfR1VDX01TR19DT0RFX01BU0spOwotCi0JLyogSWYgQ1QgaXMgYXZhaWxhYmxlLCB3ZSBleHBlY3QgdG8gdXNlIE1NSU8gb25seSBkdXJpbmcgaW5pdC9maW5pICovCi0JR0VNX0JVR19PTigqYWN0aW9uICE9IElOVEVMX0dVQ19BQ1RJT05fUkVHSVNURVJfQ09NTUFORF9UUkFOU1BPUlRfQlVGRkVSICYmCi0JCSAgICphY3Rpb24gIT0gSU5URUxfR1VDX0FDVElPTl9ERVJFR0lTVEVSX0NPTU1BTkRfVFJBTlNQT1JUX0JVRkZFUik7Ci0KLQltdXRleF9sb2NrKCZndWMtPnNlbmRfbXV0ZXgpOwotCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KHVuY29yZSwgZ3VjLT5zZW5kX3JlZ3MuZndfZG9tYWlucyk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCi0JCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIGd1Y19zZW5kX3JlZyhndWMsIGkpLCBhY3Rpb25baV0pOwotCi0JaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZCh1bmNvcmUsIGd1Y19zZW5kX3JlZyhndWMsIGkgLSAxKSk7Ci0KLQlpbnRlbF9ndWNfbm90aWZ5KGd1Yyk7Ci0KLQkvKgotCSAqIE5vIEd1QyBjb21tYW5kIHNob3VsZCBldmVyIHRha2UgbG9uZ2VyIHRoYW4gMTBtcy4KLQkgKiBGYXN0IGNvbW1hbmRzIHNob3VsZCBzdGlsbCBjb21wbGV0ZSBpbiAxMHVzLgotCSAqLwotCXJldCA9IF9faW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXJfZncodW5jb3JlLAotCQkJCQkgICBndWNfc2VuZF9yZWcoZ3VjLCAwKSwKLQkJCQkJICAgSU5URUxfR1VDX01TR19UWVBFX01BU0ssCi0JCQkJCSAgIElOVEVMX0dVQ19NU0dfVFlQRV9SRVNQT05TRSA8PAotCQkJCQkgICBJTlRFTF9HVUNfTVNHX1RZUEVfU0hJRlQsCi0JCQkJCSAgIDEwLCAxMCwgJnN0YXR1cyk7Ci0JLyogSWYgR3VDIGV4cGxpY2l0bHkgcmV0dXJuZWQgYW4gZXJyb3IsIGNvbnZlcnQgaXQgdG8gLUVJTyAqLwotCWlmICghcmV0ICYmICFJTlRFTF9HVUNfTVNHX0lTX1JFU1BPTlNFX1NVQ0NFU1Moc3RhdHVzKSkKLQkJcmV0ID0gLUVJTzsKLQotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJNTUlPOiBHdUMgYWN0aW9uICUjeCBmYWlsZWQgd2l0aCBlcnJvciAlZCAlI3hcbiIsCi0JCQkgIGFjdGlvblswXSwgcmV0LCBzdGF0dXMpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQlpZiAocmVzcG9uc2VfYnVmKSB7Ci0JCWludCBjb3VudCA9IG1pbihyZXNwb25zZV9idWZfc2l6ZSwgZ3VjLT5zZW5kX3JlZ3MuY291bnQgLSAxKTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKLQkJCXJlc3BvbnNlX2J1ZltpXSA9IEk5MTVfUkVBRChndWNfc2VuZF9yZWcoZ3VjLCBpICsgMSkpOwotCX0KLQotCS8qIFVzZSBkYXRhIGZyb20gdGhlIEd1QyByZXNwb25zZSBhcyBvdXIgcmV0dXJuIHZhbHVlICovCi0JcmV0ID0gSU5URUxfR1VDX01TR19UT19EQVRBKHN0YXR1cyk7Ci0KLW91dDoKLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCh1bmNvcmUsIGd1Yy0+c2VuZF9yZWdzLmZ3X2RvbWFpbnMpOwotCW11dGV4X3VubG9jaygmZ3VjLT5zZW5kX211dGV4KTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLWludCBpbnRlbF9ndWNfdG9faG9zdF9wcm9jZXNzX3JlY3ZfbXNnKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKLQkJCQkgICAgICAgY29uc3QgdTMyICpwYXlsb2FkLCB1MzIgbGVuKQotewotCXUzMiBtc2c7Ci0KLQlpZiAodW5saWtlbHkoIWxlbikpCi0JCXJldHVybiAtRVBST1RPOwotCi0JLyogTWFrZSBzdXJlIHRvIGhhbmRsZSBvbmx5IGVuYWJsZWQgbWVzc2FnZXMgKi8KLQltc2cgPSBwYXlsb2FkWzBdICYgZ3VjLT5tc2dfZW5hYmxlZF9tYXNrOwotCi0JaWYgKG1zZyAmIChJTlRFTF9HVUNfUkVDVl9NU0dfRkxVU0hfTE9HX0JVRkZFUiB8Ci0JCSAgIElOVEVMX0dVQ19SRUNWX01TR19DUkFTSF9EVU1QX1BPU1RFRCkpCi0JCWludGVsX2d1Y19sb2dfaGFuZGxlX2ZsdXNoX2V2ZW50KCZndWMtPmxvZyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotaW50IGludGVsX2d1Y19zYW1wbGVfZm9yY2V3YWtlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwotCXUzMiBhY3Rpb25bMl07Ci0KLQlhY3Rpb25bMF0gPSBJTlRFTF9HVUNfQUNUSU9OX1NBTVBMRV9GT1JDRVdBS0U7Ci0JLyogV2FSc0Rpc2FibGVDb2Fyc2VQb3dlckdhdGluZzpza2wsY25sICovCi0JaWYgKCFIQVNfUkM2KGRldl9wcml2KSB8fCBORUVEU19XYVJzRGlzYWJsZUNvYXJzZVBvd2VyR2F0aW5nKGRldl9wcml2KSkKLQkJYWN0aW9uWzFdID0gMDsKLQllbHNlCi0JCS8qIGJpdCAwIGFuZCAxIGFyZSBmb3IgUmVuZGVyIGFuZCBNZWRpYSBkb21haW4gc2VwYXJhdGVseSAqLwotCQlhY3Rpb25bMV0gPSBHVUNfRk9SQ0VXQUtFX1JFTkRFUiB8IEdVQ19GT1JDRVdBS0VfTUVESUE7Ci0KLQlyZXR1cm4gaW50ZWxfZ3VjX3NlbmQoZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSk7Ci19Ci0KLS8qKgotICogaW50ZWxfZ3VjX2F1dGhfaHVjKCkgLSBTZW5kIGFjdGlvbiB0byBHdUMgdG8gYXV0aGVudGljYXRlIEh1QyB1Y29kZQotICogQGd1YzogaW50ZWxfZ3VjIHN0cnVjdHVyZQotICogQHJzYV9vZmZzZXQ6IHJzYSBvZmZzZXQgdy5yLnQgZ2d0dCBiYXNlIG9mIGh1YyB2bWEKLSAqCi0gKiBUcmlnZ2VycyBhIEh1QyBmaXJtd2FyZSBhdXRoZW50aWNhdGlvbiByZXF1ZXN0IHRvIHRoZSBHdUMgdmlhIGludGVsX2d1Y19zZW5kCi0gKiBJTlRFTF9HVUNfQUNUSU9OX0FVVEhFTlRJQ0FURV9IVUMgaW50ZXJmYWNlLiBUaGlzIGZ1bmN0aW9uIGlzIGludm9rZWQgYnkKLSAqIGludGVsX2h1Y19hdXRoKCkuCi0gKgotICogUmV0dXJuOglub24temVybyBjb2RlIG9uIGVycm9yCi0gKi8KLWludCBpbnRlbF9ndWNfYXV0aF9odWMoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgcnNhX29mZnNldCkKLXsKLQl1MzIgYWN0aW9uW10gPSB7Ci0JCUlOVEVMX0dVQ19BQ1RJT05fQVVUSEVOVElDQVRFX0hVQywKLQkJcnNhX29mZnNldAotCX07Ci0KLQlyZXR1cm4gaW50ZWxfZ3VjX3NlbmQoZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSk7Ci19Ci0KLS8qKgotICogaW50ZWxfZ3VjX3N1c3BlbmQoKSAtIG5vdGlmeSBHdUMgZW50ZXJpbmcgc3VzcGVuZCBzdGF0ZQotICogQGd1YzoJdGhlIGd1YwotICovCi1pbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0JaW50IHJldDsKLQl1MzIgc3RhdHVzOwotCXUzMiBhY3Rpb25bXSA9IHsKLQkJSU5URUxfR1VDX0FDVElPTl9FTlRFUl9TX1NUQVRFLAotCQlHVUNfUE9XRVJfRDEsIC8qIGFueSB2YWx1ZSBncmVhdGVyIHRoYW4gR1VDX1BPV0VSX0QwICovCi0JfTsKLQotCS8qCi0JICogVGhlIEVOVEVSX1NfU1RBVEUgYWN0aW9uIHF1ZXVlcyB0aGUgc2F2ZS9yZXN0b3JlIG9wZXJhdGlvbiBpbiBHdUMgRlcKLQkgKiBhbmQgdGhlbiByZXR1cm5zLCBzbyB3YWl0aW5nIG9uIHRoZSBIMkcgaXMgbm90IGVub3VnaCB0byBndWFyYW50ZWUKLQkgKiBHdUMgaXMgZG9uZS4gV2hlbiBhbGwgdGhlIHByb2Nlc3NpbmcgaXMgZG9uZSwgR3VDIHdyaXRlcwotCSAqIElOVEVMX0dVQ19TTEVFUF9TVEFURV9TVUNDRVNTIHRvIHNjcmF0Y2ggcmVnaXN0ZXIgMTQsIHNvIHdlIGNhbiBwb2xsCi0JICogb24gdGhhdC4gTm90ZSB0aGF0IEd1QyBkb2VzIG5vdCBlbnN1cmUgdGhhdCB0aGUgdmFsdWUgaW4gdGhlIHJlZ2lzdGVyCi0JICogaXMgZGlmZmVyZW50IGZyb20gSU5URUxfR1VDX1NMRUVQX1NUQVRFX1NVQ0NFU1Mgd2hpbGUgdGhlIGFjdGlvbiBpcwotCSAqIGluIHByb2dyZXNzIHNvIHdlIG5lZWQgdG8gdGFrZSBjYXJlIG9mIHRoYXQgb3Vyc2VsdmVzIGFzIHdlbGwuCi0JICovCi0KLQlJOTE1X1dSSVRFKFNPRlRfU0NSQVRDSCgxNCksIElOVEVMX0dVQ19TTEVFUF9TVEFURV9JTlZBTElEX01BU0spOwotCi0JcmV0ID0gaW50ZWxfZ3VjX3NlbmQoZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXJldCA9IF9faW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsIFNPRlRfU0NSQVRDSCgxNCksCi0JCQkJCUlOVEVMX0dVQ19TTEVFUF9TVEFURV9JTlZBTElEX01BU0ssCi0JCQkJCTAsIDAsIDEwLCAmc3RhdHVzKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JaWYgKHN0YXR1cyAhPSBJTlRFTF9HVUNfU0xFRVBfU1RBVEVfU1VDQ0VTUykgewotCQlEUk1fRVJST1IoIkd1QyBmYWlsZWQgdG8gY2hhbmdlIHNsZWVwIHN0YXRlLiAiCi0JCQkgICJhY3Rpb249MHgleCwgZXJyPSV1XG4iLAotCQkJICBhY3Rpb25bMF0sIHN0YXR1cyk7Ci0JCXJldHVybiAtRUlPOwotCX0KLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIGludGVsX2d1Y19yZXNldF9lbmdpbmUoKSAtIGFzayBHdUMgdG8gcmVzZXQgYW4gZW5naW5lCi0gKiBAZ3VjOglpbnRlbF9ndWMgc3RydWN0dXJlCi0gKiBAZW5naW5lOgllbmdpbmUgdG8gYmUgcmVzZXQKLSAqLwotaW50IGludGVsX2d1Y19yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2d1YyAqZ3VjLAotCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotewotCXUzMiBkYXRhWzddOwotCi0JR0VNX0JVR19PTighZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0KLQlkYXRhWzBdID0gSU5URUxfR1VDX0FDVElPTl9SRVFVRVNUX0VOR0lORV9SRVNFVDsKLQlkYXRhWzFdID0gZW5naW5lLT5ndWNfaWQ7Ci0JZGF0YVsyXSA9IDA7Ci0JZGF0YVszXSA9IDA7Ci0JZGF0YVs0XSA9IDA7Ci0JZGF0YVs1XSA9IGd1Yy0+ZXhlY2J1Zl9jbGllbnQtPnN0YWdlX2lkOwotCWRhdGFbNl0gPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBndWMtPnNoYXJlZF9kYXRhKTsKLQotCXJldHVybiBpbnRlbF9ndWNfc2VuZChndWMsIGRhdGEsIEFSUkFZX1NJWkUoZGF0YSkpOwotfQotCi0vKioKLSAqIGludGVsX2d1Y19yZXN1bWUoKSAtIG5vdGlmeSBHdUMgcmVzdW1pbmcgZnJvbSBzdXNwZW5kIHN0YXRlCi0gKiBAZ3VjOgl0aGUgZ3VjCi0gKi8KLWludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQl1MzIgYWN0aW9uW10gPSB7Ci0JCUlOVEVMX0dVQ19BQ1RJT05fRVhJVF9TX1NUQVRFLAotCQlHVUNfUE9XRVJfRDAsCi0JfTsKLQotCXJldHVybiBpbnRlbF9ndWNfc2VuZChndWMsIGFjdGlvbiwgQVJSQVlfU0laRShhY3Rpb24pKTsKLX0KLQotLyoqCi0gKiBET0M6IEd1QyBBZGRyZXNzIFNwYWNlCi0gKgotICogVGhlIGxheW91dCBvZiBHdUMgYWRkcmVzcyBzcGFjZSBpcyBzaG93biBiZWxvdzoKLSAqCi0gKiA6OgotICoKLSAqICAgICArPT09PT09PT09PT0+ICs9PT09PT09PT09PT09PT09PT09PSsgPD09IEZGRkZfRkZGRgotICogICAgIF4gICAgICAgICAgICAgfCAgICAgIFJlc2VydmVkICAgICAgfAotICogICAgIHwgICAgICAgICAgICAgKz09PT09PT09PT09PT09PT09PT09KyA8PT0gR1VDX0dHVFRfVE9QCi0gKiAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8Ci0gKiAgICAgfCAgICAgICAgICAgICB8ICAgICAgICBEUkFNICAgICAgICB8Ci0gKiAgICBHdUMgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8Ci0gKiAgQWRkcmVzcyAgICArPT09PiArPT09PT09PT09PT09PT09PT09PT0rIDw9PSBHdUMgZ2d0dF9waW5fYmlhcwotICogICBTcGFjZSAgICAgXiAgICAgfCAgICAgICAgICAgICAgICAgICAgfAotICogICAgIHwgICAgICAgfCAgICAgfCAgICAgICAgICAgICAgICAgICAgfAotICogICAgIHwgICAgICBHdUMgICAgfCAgICAgICAgR3VDICAgICAgICAgfAotICogICAgIHwgICAgIFdPUENNICAgfCAgICAgICBXT1BDTSAgICAgICAgfAotICogICAgIHwgICAgICBTaXplICAgfCAgICAgICAgICAgICAgICAgICAgfAotICogICAgIHwgICAgICAgfCAgICAgfCAgICAgICAgICAgICAgICAgICAgfAotICogICAgIHYgICAgICAgdiAgICAgfCAgICAgICAgICAgICAgICAgICAgfAotICogICAgICs9PT09PT09Kz09PT4gKz09PT09PT09PT09PT09PT09PT09KyA8PT0gMDAwMF8wMDAwCi0gKgotICogVGhlIGxvd2VyIHBhcnQgb2YgR3VDIEFkZHJlc3MgU3BhY2UgWzAsIGdndHRfcGluX2JpYXMpIGlzIG1hcHBlZCB0byBHdUMgV09QQ00KLSAqIHdoaWxlIHVwcGVyIHBhcnQgb2YgR3VDIEFkZHJlc3MgU3BhY2UgW2dndHRfcGluX2JpYXMsIEdVQ19HR1RUX1RPUCkgaXMgbWFwcGVkCi0gKiB0byBEUkFNLiBUaGUgdmFsdWUgb2YgdGhlIEd1QyBnZ3R0X3Bpbl9iaWFzIGlzIHRoZSBHdUMgV09QQ00gc2l6ZS4KLSAqLwotCi0vKioKLSAqIGludGVsX2d1Y19hbGxvY2F0ZV92bWEoKSAtIEFsbG9jYXRlIGEgR0dUVCBWTUEgZm9yIEd1QyB1c2FnZQotICogQGd1YzoJdGhlIGd1YwotICogQHNpemU6CXNpemUgb2YgYXJlYSB0byBhbGxvY2F0ZSAoYm90aCB2aXJ0dWFsIHNwYWNlIGFuZCBtZW1vcnkpCi0gKgotICogVGhpcyBpcyBhIHdyYXBwZXIgdG8gY3JlYXRlIGFuIG9iamVjdCBmb3IgdXNlIHdpdGggdGhlIEd1Qy4gSW4gb3JkZXIgdG8KLSAqIHVzZSBpdCBpbnNpZGUgdGhlIEd1QywgYW4gb2JqZWN0IG5lZWRzIHRvIGJlIHBpbm5lZCBsaWZldGltZSwgc28gd2UgYWxsb2NhdGUKLSAqIGJvdGggc29tZSBiYWNraW5nIHN0b3JhZ2UgYW5kIGEgcmFuZ2UgaW5zaWRlIHRoZSBHbG9iYWwgR1RULiBXZSBtdXN0IHBpbgotICogaXQgaW4gdGhlIEdHVFQgc29tZXdoZXJlIG90aGVyIHRoYW4gdGhhbiBbMCwgR1VDIGdndHRfcGluX2JpYXMpIGJlY2F1c2UgdGhhdAotICogcmFuZ2UgaXMgcmVzZXJ2ZWQgaW5zaWRlIEd1Qy4KLSAqCi0gKiBSZXR1cm46CUEgaTkxNV92bWEgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNlIGFuIEVSUl9QVFIuCi0gKi8KLXN0cnVjdCBpOTE1X3ZtYSAqaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHUzMiBzaXplKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQl1NjQgZmxhZ3M7Ci0JaW50IHJldDsKLQotCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc2htZW0oZGV2X3ByaXYsIHNpemUpOwotCWlmIChJU19FUlIob2JqKSkKLQkJcmV0dXJuIEVSUl9DQVNUKG9iaik7Ci0KLQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosICZkZXZfcHJpdi0+Z2d0dC52bSwgTlVMTCk7Ci0JaWYgKElTX0VSUih2bWEpKQotCQlnb3RvIGVycjsKLQotCWZsYWdzID0gUElOX0dMT0JBTCB8IFBJTl9PRkZTRVRfQklBUyB8IGk5MTVfZ2d0dF9waW5fYmlhcyh2bWEpOwotCXJldCA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIGZsYWdzKTsKLQlpZiAocmV0KSB7Ci0JCXZtYSA9IEVSUl9QVFIocmV0KTsKLQkJZ290byBlcnI7Ci0JfQotCi0JcmV0dXJuIHZtYTsKLQotZXJyOgotCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKLQlyZXR1cm4gdm1hOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhjOTA2YS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDIwNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxNyBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2lmbmRlZiBfSU5URUxfR1VDX0hfCi0jZGVmaW5lIF9JTlRFTF9HVUNfSF8KLQotI2luY2x1ZGUgImludGVsX3VuY29yZS5oIgotI2luY2x1ZGUgImludGVsX2d1Y19mdy5oIgotI2luY2x1ZGUgImludGVsX2d1Y19md2lmLmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3VjX2N0LmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3VjX2xvZy5oIgotI2luY2x1ZGUgImludGVsX2d1Y19yZWcuaCIKLSNpbmNsdWRlICJpbnRlbF91Y19mdy5oIgotI2luY2x1ZGUgImk5MTVfdXRpbHMuaCIKLSNpbmNsdWRlICJpOTE1X3ZtYS5oIgotCi1zdHJ1Y3QgZ3VjX3ByZWVtcHRfd29yayB7Ci0Jc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotfTsKLQotLyoKLSAqIFRvcCBsZXZlbCBzdHJ1Y3R1cmUgb2YgR3VDLiBJdCBoYW5kbGVzIGZpcm13YXJlIGxvYWRpbmcgYW5kIG1hbmFnZXMgY2xpZW50Ci0gKiBwb29sIGFuZCBkb29yYmVsbHMuIGludGVsX2d1YyBvd25zIGEgaW50ZWxfZ3VjX2NsaWVudCB0byByZXBsYWNlIHRoZSBsZWdhY3kKLSAqIEV4ZWNMaXN0IHN1Ym1pc3Npb24uCi0gKi8KLXN0cnVjdCBpbnRlbF9ndWMgewotCXN0cnVjdCBpbnRlbF91Y19mdyBmdzsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyBsb2c7Ci0Jc3RydWN0IGludGVsX2d1Y19jdCBjdDsKLQotCS8qIExvZyBzbmFwc2hvdCBpZiBHdUMgZXJyb3JzIGR1cmluZyBsb2FkICovCi0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmxvYWRfZXJyX2xvZzsKLQotCS8qIGludGVsX2d1Y19yZWN2IGludGVycnVwdCByZWxhdGVkIHN0YXRlICovCi0Jc3BpbmxvY2tfdCBpcnFfbG9jazsKLQl1bnNpZ25lZCBpbnQgbXNnX2VuYWJsZWRfbWFzazsKLQotCXN0cnVjdCB7Ci0JCWJvb2wgZW5hYmxlZDsKLQkJdm9pZCAoKnJlc2V0KShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci0JCXZvaWQgKCplbmFibGUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLQkJdm9pZCAoKmRpc2FibGUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLQl9IGludGVycnVwdHM7Ci0KLQlzdHJ1Y3QgaTkxNV92bWEgKmFkc192bWE7Ci0Jc3RydWN0IGk5MTVfdm1hICpzdGFnZV9kZXNjX3Bvb2w7Ci0Jdm9pZCAqc3RhZ2VfZGVzY19wb29sX3ZhZGRyOwotCXN0cnVjdCBpZGEgc3RhZ2VfaWRzOwotCXN0cnVjdCBpOTE1X3ZtYSAqc2hhcmVkX2RhdGE7Ci0Jdm9pZCAqc2hhcmVkX2RhdGFfdmFkZHI7Ci0KLQlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqZXhlY2J1Zl9jbGllbnQ7Ci0Jc3RydWN0IGludGVsX2d1Y19jbGllbnQgKnByZWVtcHRfY2xpZW50OwotCi0Jc3RydWN0IGd1Y19wcmVlbXB0X3dvcmsgcHJlZW1wdF93b3JrW0k5MTVfTlVNX0VOR0lORVNdOwotCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpwcmVlbXB0X3dxOwotCi0JREVDTEFSRV9CSVRNQVAoZG9vcmJlbGxfYml0bWFwLCBHVUNfTlVNX0RPT1JCRUxMUyk7Ci0JLyogQ3ljbGljIGNvdW50ZXIgbW9kIHBhZ2VzaXplCSovCi0JdTMyIGRiX2NhY2hlbGluZTsKLQotCS8qIEd1QydzIEZXIHNwZWNpZmljIHJlZ2lzdGVycyB1c2VkIGluIE1NSU8gc2VuZCAqLwotCXN0cnVjdCB7Ci0JCXUzMiBiYXNlOwotCQl1bnNpZ25lZCBpbnQgY291bnQ7Ci0JCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluczsKLQl9IHNlbmRfcmVnczsKLQotCS8qIFRvIHNlcmlhbGl6ZSB0aGUgaW50ZWxfZ3VjX3NlbmQgYWN0aW9ucyAqLwotCXN0cnVjdCBtdXRleCBzZW5kX211dGV4OwotCi0JLyogR3VDJ3MgRlcgc3BlY2lmaWMgc2VuZCBmdW5jdGlvbiAqLwotCWludCAoKnNlbmQpKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICpkYXRhLCB1MzIgbGVuLAotCQkgICAgdTMyICpyZXNwb25zZV9idWYsIHUzMiByZXNwb25zZV9idWZfc2l6ZSk7Ci0KLQkvKiBHdUMncyBGVyBzcGVjaWZpYyBldmVudCBoYW5kbGVyIGZ1bmN0aW9uICovCi0Jdm9pZCAoKmhhbmRsZXIpKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci0KLQkvKiBHdUMncyBGVyBzcGVjaWZpYyBub3RpZnkgZnVuY3Rpb24gKi8KLQl2b2lkICgqbm90aWZ5KShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotfTsKLQotc3RhdGljCi1pbmxpbmUgaW50IGludGVsX2d1Y19zZW5kKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4pCi17Ci0JcmV0dXJuIGd1Yy0+c2VuZChndWMsIGFjdGlvbiwgbGVuLCBOVUxMLCAwKTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQKLWludGVsX2d1Y19zZW5kX2FuZF9yZWNlaXZlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sCi0JCQkgICB1MzIgKnJlc3BvbnNlX2J1ZiwgdTMyIHJlc3BvbnNlX2J1Zl9zaXplKQotewotCXJldHVybiBndWMtPnNlbmQoZ3VjLCBhY3Rpb24sIGxlbiwgcmVzcG9uc2VfYnVmLCByZXNwb25zZV9idWZfc2l6ZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9ndWNfbm90aWZ5KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlndWMtPm5vdGlmeShndWMpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZ3VjX3RvX2hvc3RfZXZlbnRfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0JZ3VjLT5oYW5kbGVyKGd1Yyk7Ci19Ci0KLS8qIEd1QyBhZGRyZXNzZXMgYWJvdmUgR1VDX0dHVFRfVE9QIGFsc28gZG9uJ3QgbWFwIHRocm91Z2ggdGhlIEdUVCAqLwotI2RlZmluZSBHVUNfR0dUVF9UT1AJMHhGRUUwMDAwMAotCi0vKioKLSAqIGludGVsX2d1Y19nZ3R0X29mZnNldCgpIC0gR2V0IGFuZCB2YWxpZGF0ZSB0aGUgR0dUVCBvZmZzZXQgb2YgQHZtYQotICogQGd1YzogaW50ZWxfZ3VjIHN0cnVjdHVyZS4KLSAqIEB2bWE6IGk5MTUgZ3JhcGhpY3MgdmlydHVhbCBtZW1vcnkgYXJlYS4KLSAqCi0gKiBHdUMgZG9lcyBub3QgYWxsb3cgYW55IGdmeCBHR1RUIGFkZHJlc3MgdGhhdCBmYWxscyBpbnRvIHJhbmdlCi0gKiBbMCwgZ2d0dC5waW5fYmlhcyksIHdoaWNoIGlzIHJlc2VydmVkIGZvciBCb290IFJPTSwgU1JBTSBhbmQgV09QQ00uCi0gKiBDdXJyZW50bHksIGluIG9yZGVyIHRvIGV4Y2x1ZGUgWzAsIGdndHQucGluX2JpYXMpIGFkZHJlc3Mgc3BhY2UgZnJvbQotICogR0dUVCwgYWxsIGdmeCBvYmplY3RzIHVzZWQgYnkgR3VDIGFyZSBhbGxvY2F0ZWQgd2l0aCBpbnRlbF9ndWNfYWxsb2NhdGVfdm1hKCkKLSAqIGFuZCBwaW5uZWQgd2l0aCBQSU5fT0ZGU0VUX0JJQVMgYWxvbmcgd2l0aCB0aGUgdmFsdWUgb2YgZ2d0dC5waW5fYmlhcy4KLSAqCi0gKiBSZXR1cm46IEdHVFQgb2Zmc2V0IG9mIHRoZSBAdm1hLgotICovCi1zdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoc3RydWN0IGludGVsX2d1YyAqZ3VjLAotCQkJCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKLXsKLQl1MzIgb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldCh2bWEpOwotCi0JR0VNX0JVR19PTihvZmZzZXQgPCBpOTE1X2dndHRfcGluX2JpYXModm1hKSk7Ci0JR0VNX0JVR19PTihyYW5nZV9vdmVyZmxvd3NfdCh1NjQsIG9mZnNldCwgdm1hLT5zaXplLCBHVUNfR0dUVF9UT1ApKTsKLQotCXJldHVybiBvZmZzZXQ7Ci19Ci0KLXZvaWQgaW50ZWxfZ3VjX2luaXRfZWFybHkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKLXZvaWQgaW50ZWxfZ3VjX2luaXRfc2VuZF9yZWdzKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci12b2lkIGludGVsX2d1Y19pbml0X3BhcmFtcyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotaW50IGludGVsX2d1Y19pbml0X21pc2Moc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKLWludCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotdm9pZCBpbnRlbF9ndWNfZmluaShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotdm9pZCBpbnRlbF9ndWNfZmluaV9taXNjKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci1pbnQgaW50ZWxfZ3VjX3NlbmRfbm9wKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sCi0JCSAgICAgICB1MzIgKnJlc3BvbnNlX2J1ZiwgdTMyIHJlc3BvbnNlX2J1Zl9zaXplKTsKLWludCBpbnRlbF9ndWNfc2VuZF9tbWlvKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sCi0JCQl1MzIgKnJlc3BvbnNlX2J1ZiwgdTMyIHJlc3BvbnNlX2J1Zl9zaXplKTsKLXZvaWQgaW50ZWxfZ3VjX3RvX2hvc3RfZXZlbnRfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotdm9pZCBpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyX25vcChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotaW50IGludGVsX2d1Y190b19ob3N0X3Byb2Nlc3NfcmVjdl9tc2coc3RydWN0IGludGVsX2d1YyAqZ3VjLAotCQkJCSAgICAgICBjb25zdCB1MzIgKnBheWxvYWQsIHUzMiBsZW4pOwotaW50IGludGVsX2d1Y19zYW1wbGVfZm9yY2V3YWtlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci1pbnQgaW50ZWxfZ3VjX2F1dGhfaHVjKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHJzYV9vZmZzZXQpOwotaW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci1pbnQgaW50ZWxfZ3VjX3Jlc3VtZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotc3RydWN0IGk5MTVfdm1hICppbnRlbF9ndWNfYWxsb2NhdGVfdm1hKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHNpemUpOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3VjX2lzX2xvYWRlZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0JcmV0dXJuIGludGVsX3VjX2Z3X2lzX2xvYWRlZCgmZ3VjLT5mdyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGludGVsX2d1Y19zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0JaW50ZWxfdWNfZndfc2FuaXRpemUoJmd1Yy0+ZncpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZ3VjX2VuYWJsZV9tc2coc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgbWFzaykKLXsKLQlzcGluX2xvY2tfaXJxKCZndWMtPmlycV9sb2NrKTsKLQlndWMtPm1zZ19lbmFibGVkX21hc2sgfD0gbWFzazsKLQlzcGluX3VubG9ja19pcnEoJmd1Yy0+aXJxX2xvY2spOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZ3VjX2Rpc2FibGVfbXNnKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIG1hc2spCi17Ci0Jc3Bpbl9sb2NrX2lycSgmZ3VjLT5pcnFfbG9jayk7Ci0JZ3VjLT5tc2dfZW5hYmxlZF9tYXNrICY9IH5tYXNrOwotCXNwaW5fdW5sb2NrX2lycSgmZ3VjLT5pcnFfbG9jayk7Ci19Ci0KLWludCBpbnRlbF9ndWNfcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKLQkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Fkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Fkcy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2I2OWZjLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19hZHMuYworKysgL2Rldi9udWxsCkBAIC0xLDIwMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxNyBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImludGVsX2d1Y19hZHMuaCIKLSNpbmNsdWRlICJpbnRlbF91Yy5oIgotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0KLS8qCi0gKiBUaGUgQWRkaXRpb25hbCBEYXRhIFN0cnVjdCAoQURTKSBoYXMgcG9pbnRlcnMgZm9yIGRpZmZlcmVudCBidWZmZXJzIHVzZWQgYnkKLSAqIHRoZSBHdUMuIE9uZSBzaW5nbGUgZ2VtIG9iamVjdCBjb250YWlucyB0aGUgQURTIHN0cnVjdCBpdHNlbGYgKGd1Y19hZHMpLCB0aGUKLSAqIHNjaGVkdWxpbmcgcG9saWNpZXMgKGd1Y19wb2xpY2llcyksIGEgc3RydWN0dXJlIGRlc2NyaWJpbmcgYSBjb2xsZWN0aW9uIG9mCi0gKiByZWdpc3RlciBzZXRzIChndWNfbW1pb19yZWdfc3RhdGUpIGFuZCBzb21lIGV4dHJhIHBhZ2VzIGZvciB0aGUgR3VDIHRvIHNhdmUKLSAqIGl0cyBpbnRlcm5hbCBzdGF0ZSBmb3Igc2xlZXAuCi0gKi8KLQotc3RhdGljIHZvaWQgZ3VjX3BvbGljeV9pbml0KHN0cnVjdCBndWNfcG9saWN5ICpwb2xpY3kpCi17Ci0JcG9saWN5LT5leGVjdXRpb25fcXVhbnR1bSA9IFBPTElDWV9ERUZBVUxUX0VYRUNVVElPTl9RVUFOVFVNX1VTOwotCXBvbGljeS0+cHJlZW1wdGlvbl90aW1lID0gUE9MSUNZX0RFRkFVTFRfUFJFRU1QVElPTl9USU1FX1VTOwotCXBvbGljeS0+ZmF1bHRfdGltZSA9IFBPTElDWV9ERUZBVUxUX0ZBVUxUX1RJTUVfVVM7Ci0JcG9saWN5LT5wb2xpY3lfZmxhZ3MgPSAwOwotfQotCi1zdGF0aWMgdm9pZCBndWNfcG9saWNpZXNfaW5pdChzdHJ1Y3QgZ3VjX3BvbGljaWVzICpwb2xpY2llcykKLXsKLQlzdHJ1Y3QgZ3VjX3BvbGljeSAqcG9saWN5OwotCXUzMiBwLCBpOwotCi0JcG9saWNpZXMtPmRwY19wcm9tb3RlX3RpbWUgPSBQT0xJQ1lfREVGQVVMVF9EUENfUFJPTU9URV9USU1FX1VTOwotCXBvbGljaWVzLT5tYXhfbnVtX3dvcmtfaXRlbXMgPSBQT0xJQ1lfTUFYX05VTV9XSTsKLQotCWZvciAocCA9IDA7IHAgPCBHVUNfQ0xJRU5UX1BSSU9SSVRZX05VTTsgcCsrKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBHVUNfTUFYX0VOR0lORV9DTEFTU0VTOyBpKyspIHsKLQkJCXBvbGljeSA9ICZwb2xpY2llcy0+cG9saWN5W3BdW2ldOwotCi0JCQlndWNfcG9saWN5X2luaXQocG9saWN5KTsKLQkJfQotCX0KLQotCXBvbGljaWVzLT5pc192YWxpZCA9IDE7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19jdF9wb29sX2VudHJpZXNfaW5pdChzdHJ1Y3QgZ3VjX2N0X3Bvb2xfZW50cnkgKnBvb2wsIHUzMiBudW0pCi17Ci0JbWVtc2V0KHBvb2wsIDAsIG51bSAqIHNpemVvZigqcG9vbCkpOwotfQotCi0vKgotICogVGhlIGZpcnN0IDgwIGR3b3JkcyBvZiB0aGUgcmVnaXN0ZXIgc3RhdGUgY29udGV4dCwgY29udGFpbmluZyB0aGUKLSAqIGV4ZWNsaXN0cyBhbmQgcHBndHQgcmVnaXN0ZXJzLgotICovCi0jZGVmaW5lIExSX0hXX0NPTlRFWFRfU0laRQkoODAgKiBzaXplb2YodTMyKSkKLQotLyogVGhlIGFkcyBvYmogaW5jbHVkZXMgdGhlIHN0cnVjdCBpdHNlbGYgYW5kIGJ1ZmZlcnMgcGFzc2VkIHRvIEd1QyAqLwotc3RydWN0IF9fZ3VjX2Fkc19ibG9iIHsKLQlzdHJ1Y3QgZ3VjX2FkcyBhZHM7Ci0Jc3RydWN0IGd1Y19wb2xpY2llcyBwb2xpY2llczsKLQlzdHJ1Y3QgZ3VjX21taW9fcmVnX3N0YXRlIHJlZ19zdGF0ZTsKLQlzdHJ1Y3QgZ3VjX2d0X3N5c3RlbV9pbmZvIHN5c3RlbV9pbmZvOwotCXN0cnVjdCBndWNfY2xpZW50c19pbmZvIGNsaWVudHNfaW5mbzsKLQlzdHJ1Y3QgZ3VjX2N0X3Bvb2xfZW50cnkgY3RfcG9vbFtHVUNfQ1RfUE9PTF9TSVpFXTsKLQl1OCByZWdfc3RhdGVfYnVmZmVyW0dVQ19TM19TQVZFX1NQQUNFX1BBR0VTICogUEFHRV9TSVpFXTsKLX0gX19wYWNrZWQ7Ci0KLXN0YXRpYyBpbnQgX19ndWNfYWRzX2luaXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0Jc3RydWN0IF9fZ3VjX2Fkc19ibG9iICpibG9iOwotCWNvbnN0IHUzMiBza2lwcGVkX3NpemUgPSBMUkNfUFBIV1NQX1NaICogUEFHRV9TSVpFICsgTFJfSFdfQ09OVEVYVF9TSVpFOwotCXUzMiBiYXNlOwotCXU4IGVuZ2luZV9jbGFzczsKLQotCWJsb2IgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChndWMtPmFkc192bWEtPm9iaiwgSTkxNV9NQVBfV0IpOwotCWlmIChJU19FUlIoYmxvYikpCi0JCXJldHVybiBQVFJfRVJSKGJsb2IpOwotCi0JLyogR3VDIHNjaGVkdWxpbmcgcG9saWNpZXMgKi8KLQlndWNfcG9saWNpZXNfaW5pdCgmYmxvYi0+cG9saWNpZXMpOwotCi0JLyoKLQkgKiBHdUMgZXhwZWN0cyBhIHBlci1lbmdpbmUtY2xhc3MgY29udGV4dCBpbWFnZSBhbmQgc2l6ZQotCSAqIChtaW51cyBod3NwIGFuZCByaW5nIGNvbnRleHQpLiBUaGUgY29udGV4dCBpbWFnZSB3aWxsIGJlCi0JICogdXNlZCB0byByZWluaXRpYWxpemUgZW5naW5lcyBhZnRlciBhIHJlc2V0LiBJdCBtdXN0IGV4aXN0Ci0JICogYW5kIGJlIHBpbm5lZCBpbiB0aGUgR0dUVCwgc28gdGhhdCB0aGUgYWRkcmVzcyB3b24ndCBjaGFuZ2UgYWZ0ZXIKLQkgKiB3ZSBoYXZlIHRvbGQgR3VDIHdoZXJlIHRvIGZpbmQgaXQuIFRoZSBjb250ZXh0IHNpemUgd2lsbCBiZSB1c2VkCi0JICogdG8gdmFsaWRhdGUgdGhhdCB0aGUgTFJDIGJhc2UgKyBzaXplIGZhbGwgd2l0aGluIGFsbG93ZWQgR0dUVC4KLQkgKi8KLQlmb3IgKGVuZ2luZV9jbGFzcyA9IDA7IGVuZ2luZV9jbGFzcyA8PSBNQVhfRU5HSU5FX0NMQVNTOyArK2VuZ2luZV9jbGFzcykgewotCQlpZiAoZW5naW5lX2NsYXNzID09IE9USEVSX0NMQVNTKQotCQkJY29udGludWU7Ci0JCS8qCi0JCSAqIFRPRE86IFNldCBjb250ZXh0IHBvaW50ZXIgdG8gZGVmYXVsdCBzdGF0ZSB0byBhbGxvdwotCQkgKiBHdUMgdG8gcmUtaW5pdCBndWlsdHkgY29udGV4dHMgYWZ0ZXIgaW50ZXJuYWwgcmVzZXQuCi0JCSAqLwotCQlibG9iLT5hZHMuZ29sZGVuX2NvbnRleHRfbHJjYVtlbmdpbmVfY2xhc3NdID0gMDsKLQkJYmxvYi0+YWRzLmVuZ19zdGF0ZV9zaXplW2VuZ2luZV9jbGFzc10gPQotCQkJaW50ZWxfZW5naW5lX2NvbnRleHRfc2l6ZShkZXZfcHJpdiwgZW5naW5lX2NsYXNzKSAtCi0JCQlza2lwcGVkX3NpemU7Ci0JfQotCi0JLyogU3lzdGVtIGluZm8gKi8KLQlibG9iLT5zeXN0ZW1faW5mby5zbGljZV9lbmFibGVkID0gaHdlaWdodDgoUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5zbGljZV9tYXNrKTsKLQlibG9iLT5zeXN0ZW1faW5mby5yY3NfZW5hYmxlZCA9IDE7Ci0JYmxvYi0+c3lzdGVtX2luZm8uYmNzX2VuYWJsZWQgPSAxOwotCi0JYmxvYi0+c3lzdGVtX2luZm8udmRib3hfZW5hYmxlX21hc2sgPSBWREJPWF9NQVNLKGRldl9wcml2KTsKLQlibG9iLT5zeXN0ZW1faW5mby52ZWJveF9lbmFibGVfbWFzayA9IFZFQk9YX01BU0soZGV2X3ByaXYpOwotCWJsb2ItPnN5c3RlbV9pbmZvLnZkYm94X3NmY19zdXBwb3J0X21hc2sgPSBSVU5USU1FX0lORk8oZGV2X3ByaXYpLT52ZGJveF9zZmNfYWNjZXNzOwotCi0JYmFzZSA9IGludGVsX2d1Y19nZ3R0X29mZnNldChndWMsIGd1Yy0+YWRzX3ZtYSk7Ci0KLQkvKiBDbGllbnRzIGluZm8gICovCi0JZ3VjX2N0X3Bvb2xfZW50cmllc19pbml0KGJsb2ItPmN0X3Bvb2wsIEFSUkFZX1NJWkUoYmxvYi0+Y3RfcG9vbCkpOwotCi0JYmxvYi0+Y2xpZW50c19pbmZvLmNsaWVudHNfbnVtID0gMTsKLQlibG9iLT5jbGllbnRzX2luZm8uY3RfcG9vbF9hZGRyID0gYmFzZSArIHB0cl9vZmZzZXQoYmxvYiwgY3RfcG9vbCk7Ci0JYmxvYi0+Y2xpZW50c19pbmZvLmN0X3Bvb2xfY291bnQgPSBBUlJBWV9TSVpFKGJsb2ItPmN0X3Bvb2wpOwotCi0JLyogQURTICovCi0JYmxvYi0+YWRzLnNjaGVkdWxlcl9wb2xpY2llcyA9IGJhc2UgKyBwdHJfb2Zmc2V0KGJsb2IsIHBvbGljaWVzKTsKLQlibG9iLT5hZHMucmVnX3N0YXRlX2J1ZmZlciA9IGJhc2UgKyBwdHJfb2Zmc2V0KGJsb2IsIHJlZ19zdGF0ZV9idWZmZXIpOwotCWJsb2ItPmFkcy5yZWdfc3RhdGVfYWRkciA9IGJhc2UgKyBwdHJfb2Zmc2V0KGJsb2IsIHJlZ19zdGF0ZSk7Ci0JYmxvYi0+YWRzLmd0X3N5c3RlbV9pbmZvID0gYmFzZSArIHB0cl9vZmZzZXQoYmxvYiwgc3lzdGVtX2luZm8pOwotCWJsb2ItPmFkcy5jbGllbnRzX2luZm8gPSBiYXNlICsgcHRyX29mZnNldChibG9iLCBjbGllbnRzX2luZm8pOwotCi0JaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChndWMtPmFkc192bWEtPm9iaik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBpbnRlbF9ndWNfYWRzX2NyZWF0ZSgpIC0gYWxsb2NhdGVzIGFuZCBpbml0aWFsaXplcyBHdUMgQURTLgotICogQGd1YzogaW50ZWxfZ3VjIHN0cnVjdAotICoKLSAqIEd1QyBuZWVkcyBtZW1vcnkgYmxvY2sgKEFkZGl0aW9uYWwgRGF0YSBTdHJ1Y3QpLCB3aGVyZSBpdCB3aWxsIHN0b3JlCi0gKiBzb21lIGRhdGEuIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIHN1Y2ggbWVtb3J5IGJsb2NrIGZvciBHdUMgdXNlLgotICovCi1pbnQgaW50ZWxfZ3VjX2Fkc19jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCWNvbnN0IHUzMiBzaXplID0gUEFHRV9BTElHTihzaXplb2Yoc3RydWN0IF9fZ3VjX2Fkc19ibG9iKSk7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0JaW50IHJldDsKLQotCUdFTV9CVUdfT04oZ3VjLT5hZHNfdm1hKTsKLQotCXZtYSA9IGludGVsX2d1Y19hbGxvY2F0ZV92bWEoZ3VjLCBzaXplKTsKLQlpZiAoSVNfRVJSKHZtYSkpCi0JCXJldHVybiBQVFJfRVJSKHZtYSk7Ci0KLQlndWMtPmFkc192bWEgPSB2bWE7Ci0KLQlyZXQgPSBfX2d1Y19hZHNfaW5pdChndWMpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX3ZtYTsKLQotCXJldHVybiAwOwotCi1lcnJfdm1hOgotCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPmFkc192bWEsIDApOwotCXJldHVybiByZXQ7Ci19Ci0KLXZvaWQgaW50ZWxfZ3VjX2Fkc19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmZ3VjLT5hZHNfdm1hLCAwKTsKLX0KLQotLyoqCi0gKiBpbnRlbF9ndWNfYWRzX3Jlc2V0KCkgLSBwcmVwYXJlcyBHdUMgQWRkaXRpb25hbCBEYXRhIFN0cnVjdCBmb3IgcmV1c2UKLSAqIEBndWM6IGludGVsX2d1YyBzdHJ1Y3QKLSAqCi0gKiBHdUMgc3RvcmVzIHNvbWUgZGF0YSBpbiBBRFMsIHdoaWNoIG1pZ2h0IGJlIHN0YWxlIGFmdGVyIGEgcmVzZXQuCi0gKiBSZWluaXRpYWxpemUgd2hvbGUgQURTIGluIGNhc2UgYW55IHBhcnQgb2YgaXQgd2FzIGNvcnJ1cHRlZCBkdXJpbmcKLSAqIHByZXZpb3VzIEd1QyBydW4uCi0gKi8KLXZvaWQgaW50ZWxfZ3VjX2Fkc19yZXNldChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0JaWYgKCFndWMtPmFkc192bWEpCi0JCXJldHVybjsKLQlfX2d1Y19hZHNfaW5pdChndWMpOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Fkcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Fkcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjQwZjljLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19hZHMuaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE3IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwotICogSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqLwotCi0jaWZuZGVmIF9JTlRFTF9HVUNfQURTX0hfCi0jZGVmaW5lIF9JTlRFTF9HVUNfQURTX0hfCi0KLXN0cnVjdCBpbnRlbF9ndWM7Ci0KLWludCBpbnRlbF9ndWNfYWRzX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotdm9pZCBpbnRlbF9ndWNfYWRzX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKLXZvaWQgaW50ZWxfZ3VjX2Fkc19yZXNldChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19jdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2N0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MjE4MDkuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2N0LmMKKysrIC9kZXYvbnVsbApAQCAtMSw5MjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE2LTIwMTcgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCi0gKiBJTiBUSEUgU09GVFdBUkUuCi0gKi8KLQotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3VjX2N0LmgiCi0KLSNpZmRlZiBDT05GSUdfRFJNX0k5MTVfREVCVUdfR1VDCi0jZGVmaW5lIENUX0RFQlVHX0RSSVZFUiguLi4pCURSTV9ERUJVR19EUklWRVIoX19WQV9BUkdTX18pCi0jZWxzZQotI2RlZmluZSBDVF9ERUJVR19EUklWRVIoLi4uKQlkbyB7IH0gd2hpbGUgKDApCi0jZW5kaWYKLQotc3RydWN0IGN0X3JlcXVlc3QgewotCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKLQl1MzIgZmVuY2U7Ci0JdTMyIHN0YXR1czsKLQl1MzIgcmVzcG9uc2VfbGVuOwotCXUzMiAqcmVzcG9uc2VfYnVmOwotfTsKLQotc3RydWN0IGN0X2luY29taW5nX3JlcXVlc3QgewotCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKLQl1MzIgbXNnW107Ci19OwotCi1lbnVtIHsgQ1RCX1NFTkQgPSAwLCBDVEJfUkVDViA9IDEgfTsKLQotZW51bSB7IENUQl9PV05FUl9IT1NUID0gMCB9OwotCi1zdGF0aWMgdm9pZCBjdF9pbmNvbWluZ19yZXF1ZXN0X3dvcmtlcl9mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7Ci0KLS8qKgotICogaW50ZWxfZ3VjX2N0X2luaXRfZWFybHkgLSBJbml0aWFsaXplIENUIHN0YXRlIHdpdGhvdXQgcmVxdWlyaW5nIGRldmljZSBhY2Nlc3MKLSAqIEBjdDogcG9pbnRlciB0byBDVCBzdHJ1Y3QKLSAqLwotdm9pZCBpbnRlbF9ndWNfY3RfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCkKLXsKLQkvKiB3ZSdyZSB1c2luZyBzdGF0aWMgY2hhbm5lbCBvd25lcnMgKi8KLQljdC0+aG9zdF9jaGFubmVsLm93bmVyID0gQ1RCX09XTkVSX0hPU1Q7Ci0KLQlzcGluX2xvY2tfaW5pdCgmY3QtPmxvY2spOwotCUlOSVRfTElTVF9IRUFEKCZjdC0+cGVuZGluZ19yZXF1ZXN0cyk7Ci0JSU5JVF9MSVNUX0hFQUQoJmN0LT5pbmNvbWluZ19yZXF1ZXN0cyk7Ci0JSU5JVF9XT1JLKCZjdC0+d29ya2VyLCBjdF9pbmNvbWluZ19yZXF1ZXN0X3dvcmtlcl9mdW5jKTsKLX0KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZ3VjICpjdF90b19ndWMoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihjdCwgc3RydWN0IGludGVsX2d1YywgY3QpOwotfQotCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmd1Y19jdF9idWZmZXJfdHlwZV90b19zdHIodTMyIHR5cGUpCi17Ci0Jc3dpdGNoICh0eXBlKSB7Ci0JY2FzZSBJTlRFTF9HVUNfQ1RfQlVGRkVSX1RZUEVfU0VORDoKLQkJcmV0dXJuICJTRU5EIjsKLQljYXNlIElOVEVMX0dVQ19DVF9CVUZGRVJfVFlQRV9SRUNWOgotCQlyZXR1cm4gIlJFQ1YiOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAiPGludmFsaWQ+IjsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19jdF9idWZmZXJfZGVzY19pbml0KHN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MsCi0JCQkJICAgIHUzMiBjbWRzX2FkZHIsIHUzMiBzaXplLCB1MzIgb3duZXIpCi17Ci0JQ1RfREVCVUdfRFJJVkVSKCJDVDogZGVzYyAlcCBpbml0IGFkZHI9JSN4IHNpemU9JXUgb3duZXI9JXVcbiIsCi0JCQlkZXNjLCBjbWRzX2FkZHIsIHNpemUsIG93bmVyKTsKLQltZW1zZXQoZGVzYywgMCwgc2l6ZW9mKCpkZXNjKSk7Ci0JZGVzYy0+YWRkciA9IGNtZHNfYWRkcjsKLQlkZXNjLT5zaXplID0gc2l6ZTsKLQlkZXNjLT5vd25lciA9IG93bmVyOwotfQotCi1zdGF0aWMgdm9pZCBndWNfY3RfYnVmZmVyX2Rlc2NfcmVzZXQoc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyAqZGVzYykKLXsKLQlDVF9ERUJVR19EUklWRVIoIkNUOiBkZXNjICVwIHJlc2V0IGhlYWQ9JXUgdGFpbD0ldVxuIiwKLQkJCWRlc2MsIGRlc2MtPmhlYWQsIGRlc2MtPnRhaWwpOwotCWRlc2MtPmhlYWQgPSAwOwotCWRlc2MtPnRhaWwgPSAwOwotCWRlc2MtPmlzX2luX2Vycm9yID0gMDsKLX0KLQotc3RhdGljIGludCBndWNfYWN0aW9uX3JlZ2lzdGVyX2N0X2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCi0JCQkJCSB1MzIgZGVzY19hZGRyLAotCQkJCQkgdTMyIHR5cGUpCi17Ci0JdTMyIGFjdGlvbltdID0gewotCQlJTlRFTF9HVUNfQUNUSU9OX1JFR0lTVEVSX0NPTU1BTkRfVFJBTlNQT1JUX0JVRkZFUiwKLQkJZGVzY19hZGRyLAotCQlzaXplb2Yoc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyksCi0JCXR5cGUKLQl9OwotCWludCBlcnI7Ci0KLQkvKiBDYW4ndCB1c2UgZ2VuZXJpYyBzZW5kKCksIENUIHJlZ2lzdHJhdGlvbiBtdXN0IGdvIG92ZXIgTU1JTyAqLwotCWVyciA9IGludGVsX2d1Y19zZW5kX21taW8oZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSwgTlVMTCwgMCk7Ci0JaWYgKGVycikKLQkJRFJNX0VSUk9SKCJDVDogcmVnaXN0ZXIgJXMgYnVmZmVyIGZhaWxlZDsgZXJyPSVkXG4iLAotCQkJICBndWNfY3RfYnVmZmVyX3R5cGVfdG9fc3RyKHR5cGUpLCBlcnIpOwotCXJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyBpbnQgZ3VjX2FjdGlvbl9kZXJlZ2lzdGVyX2N0X2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCi0JCQkJCSAgIHUzMiBvd25lciwKLQkJCQkJICAgdTMyIHR5cGUpCi17Ci0JdTMyIGFjdGlvbltdID0gewotCQlJTlRFTF9HVUNfQUNUSU9OX0RFUkVHSVNURVJfQ09NTUFORF9UUkFOU1BPUlRfQlVGRkVSLAotCQlvd25lciwKLQkJdHlwZQotCX07Ci0JaW50IGVycjsKLQotCS8qIENhbid0IHVzZSBnZW5lcmljIHNlbmQoKSwgQ1QgZGVyZWdpc3RyYXRpb24gbXVzdCBnbyBvdmVyIE1NSU8gKi8KLQllcnIgPSBpbnRlbF9ndWNfc2VuZF9tbWlvKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFjdGlvbiksIE5VTEwsIDApOwotCWlmIChlcnIpCi0JCURSTV9FUlJPUigiQ1Q6IGRlcmVnaXN0ZXIgJXMgYnVmZmVyIGZhaWxlZDsgb3duZXI9JWQgZXJyPSVkXG4iLAotCQkJICBndWNfY3RfYnVmZmVyX3R5cGVfdG9fc3RyKHR5cGUpLCBvd25lciwgZXJyKTsKLQlyZXR1cm4gZXJyOwotfQotCi1zdGF0aWMgaW50IGN0Y2hfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCi0JCSAgICAgc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoKQotewotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXZvaWQgKmJsb2I7Ci0JaW50IGVycjsKLQlpbnQgaTsKLQotCUdFTV9CVUdfT04oY3RjaC0+dm1hKTsKLQotCS8qIFdlIGFsbG9jYXRlIDEgcGFnZSB0byBob2xkIGJvdGggZGVzY3JpcHRvcnMgYW5kIGJvdGggYnVmZmVycy4KLQkgKiAgICAgICBfX19fX19fX19fXy4uLi4uLi4uLi4uLi4uLi4uLi4uLgotCSAqICAgICAgfGRlc2MgKFNFTkQpfCAgICAgICAgICAgICAgICAgICA6Ci0JICogICAgICB8X19fX19fX19fX198ICAgICAgICAgICAgICAgICAgIFBBR0UvNAotCSAqICAgICAgOl9fX19fX19fX19fLi4uLi4uLi4uLi4uLi4uLi4uLi46Ci0JICogICAgICB8ZGVzYyAoUkVDVil8ICAgICAgICAgICAgICAgICAgIDoKLQkgKiAgICAgIHxfX19fX19fX19fX3wgICAgICAgICAgICAgICAgICAgUEFHRS80Ci0JICogICAgICA6X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzoKLQkgKiAgICAgIHxjbWRzIChTRU5EKSAgICAgICAgICAgICAgICAgICAgfAotCSAqICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFLzQKLQkgKiAgICAgIHxfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19ffAotCSAqICAgICAgfGNtZHMgKFJFQ1YpICAgICAgICAgICAgICAgICAgICB8Ci0JICogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0UvNAotCSAqICAgICAgfF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX198Ci0JICoKLQkgKiBFYWNoIG1lc3NhZ2UgY2FuIHVzZSBhIG1heGltdW0gb2YgMzIgZHdvcmRzIGFuZCB3ZSBkb24ndCBleHBlY3QgdG8KLQkgKiBoYXZlIG1vcmUgdGhhbiAxIGluIGZsaWdodCBhdCBhbnkgdGltZSwgc28gd2UgaGF2ZSBlbm91Z2ggc3BhY2UuCi0JICogU29tZSBsb2dpYyBmdXJ0aGVyIGFoZWFkIHdpbGwgcmVseSBvbiB0aGUgZmFjdCB0aGF0IHRoZXJlIGlzIG9ubHkgMQotCSAqIHBhZ2UgYW5kIHRoYXQgaXQgaXMgYWx3YXlzIG1hcHBlZCwgc28gaWYgdGhlIHNpemUgaXMgY2hhbmdlZCB0aGUKLQkgKiBvdGhlciBjb2RlIHdpbGwgbmVlZCB1cGRhdGluZyBhcyB3ZWxsLgotCSAqLwotCi0JLyogYWxsb2NhdGUgdm1hICovCi0Jdm1hID0gaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYShndWMsIFBBR0VfU0laRSk7Ci0JaWYgKElTX0VSUih2bWEpKSB7Ci0JCWVyciA9IFBUUl9FUlIodm1hKTsKLQkJZ290byBlcnJfb3V0OwotCX0KLQljdGNoLT52bWEgPSB2bWE7Ci0KLQkvKiBtYXAgZmlyc3QgcGFnZSAqLwotCWJsb2IgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcCh2bWEtPm9iaiwgSTkxNV9NQVBfV0IpOwotCWlmIChJU19FUlIoYmxvYikpIHsKLQkJZXJyID0gUFRSX0VSUihibG9iKTsKLQkJZ290byBlcnJfdm1hOwotCX0KLQlDVF9ERUJVR19EUklWRVIoIkNUOiB2bWEgYmFzZT0lI3hcbiIsCi0JCQlpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBjdGNoLT52bWEpKTsKLQotCS8qIHN0b3JlIHBvaW50ZXJzIHRvIGRlc2MgYW5kIGNtZHMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdGNoLT5jdGJzKTsgaSsrKSB7Ci0JCUdFTV9CVUdfT04oKGkgIT0gQ1RCX1NFTkQpICYmIChpICE9IENUQl9SRUNWKSk7Ci0JCWN0Y2gtPmN0YnNbaV0uZGVzYyA9IGJsb2IgKyBQQUdFX1NJWkUvNCAqIGk7Ci0JCWN0Y2gtPmN0YnNbaV0uY21kcyA9IGJsb2IgKyBQQUdFX1NJWkUvNCAqIGkgKyBQQUdFX1NJWkUvMjsKLQl9Ci0KLQlyZXR1cm4gMDsKLQotZXJyX3ZtYToKLQlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmY3RjaC0+dm1hLCAwKTsKLWVycl9vdXQ6Ci0JQ1RfREVCVUdfRFJJVkVSKCJDVDogY2hhbm5lbCAlZCBpbml0aWFsaXphdGlvbiBmYWlsZWQ7IGVycj0lZFxuIiwKLQkJCWN0Y2gtPm93bmVyLCBlcnIpOwotCXJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyB2b2lkIGN0Y2hfZmluaShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCi0JCSAgICAgIHN0cnVjdCBpbnRlbF9ndWNfY3RfY2hhbm5lbCAqY3RjaCkKLXsKLQlHRU1fQlVHX09OKGN0Y2gtPmVuYWJsZWQpOwotCi0JaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmN0Y2gtPnZtYSwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwotfQotCi1zdGF0aWMgaW50IGN0Y2hfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKLQkJICAgICAgIHN0cnVjdCBpbnRlbF9ndWNfY3RfY2hhbm5lbCAqY3RjaCkKLXsKLQl1MzIgYmFzZTsKLQlpbnQgZXJyOwotCWludCBpOwotCi0JR0VNX0JVR19PTighY3RjaC0+dm1hKTsKLQotCUdFTV9CVUdfT04oY3RjaC0+ZW5hYmxlZCk7Ci0KLQkvKiB2bWEgc2hvdWxkIGJlIGFscmVhZHkgYWxsb2NhdGVkIGFuZCBtYXAnZWQgKi8KLQliYXNlID0gaW50ZWxfZ3VjX2dndHRfb2Zmc2V0KGd1YywgY3RjaC0+dm1hKTsKLQotCS8qIChyZSlpbml0aWFsaXplIGRlc2NyaXB0b3JzCi0JICogY21kcyBidWZmZXJzIGFyZSBpbiB0aGUgc2Vjb25kIGhhbGYgb2YgdGhlIGJsb2IgcGFnZQotCSAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGN0Y2gtPmN0YnMpOyBpKyspIHsKLQkJR0VNX0JVR19PTigoaSAhPSBDVEJfU0VORCkgJiYgKGkgIT0gQ1RCX1JFQ1YpKTsKLQkJZ3VjX2N0X2J1ZmZlcl9kZXNjX2luaXQoY3RjaC0+Y3Ric1tpXS5kZXNjLAotCQkJCQliYXNlICsgUEFHRV9TSVpFLzQgKiBpICsgUEFHRV9TSVpFLzIsCi0JCQkJCVBBR0VfU0laRS80LAotCQkJCQljdGNoLT5vd25lcik7Ci0JfQotCi0JLyogcmVnaXN0ZXIgYnVmZmVycywgc3RhcnRpbmcgd2lyaCBSRUNWIGJ1ZmZlcgotCSAqIGRlc2NyaXB0b3JzIGFyZSBpbiBmaXJzdCBoYWxmIG9mIHRoZSBibG9iCi0JICovCi0JZXJyID0gZ3VjX2FjdGlvbl9yZWdpc3Rlcl9jdF9idWZmZXIoZ3VjLAotCQkJCQkgICAgYmFzZSArIFBBR0VfU0laRS80ICogQ1RCX1JFQ1YsCi0JCQkJCSAgICBJTlRFTF9HVUNfQ1RfQlVGRkVSX1RZUEVfUkVDVik7Ci0JaWYgKHVubGlrZWx5KGVycikpCi0JCWdvdG8gZXJyX291dDsKLQotCWVyciA9IGd1Y19hY3Rpb25fcmVnaXN0ZXJfY3RfYnVmZmVyKGd1YywKLQkJCQkJICAgIGJhc2UgKyBQQUdFX1NJWkUvNCAqIENUQl9TRU5ELAotCQkJCQkgICAgSU5URUxfR1VDX0NUX0JVRkZFUl9UWVBFX1NFTkQpOwotCWlmICh1bmxpa2VseShlcnIpKQotCQlnb3RvIGVycl9kZXJlZ2lzdGVyOwotCi0JY3RjaC0+ZW5hYmxlZCA9IHRydWU7Ci0KLQlyZXR1cm4gMDsKLQotZXJyX2RlcmVnaXN0ZXI6Ci0JZ3VjX2FjdGlvbl9kZXJlZ2lzdGVyX2N0X2J1ZmZlcihndWMsCi0JCQkJCWN0Y2gtPm93bmVyLAotCQkJCQlJTlRFTF9HVUNfQ1RfQlVGRkVSX1RZUEVfUkVDVik7Ci1lcnJfb3V0OgotCURSTV9FUlJPUigiQ1Q6IGNhbid0IG9wZW4gY2hhbm5lbCAlZDsgZXJyPSVkXG4iLCBjdGNoLT5vd25lciwgZXJyKTsKLQlyZXR1cm4gZXJyOwotfQotCi1zdGF0aWMgdm9pZCBjdGNoX2Rpc2FibGUoc3RydWN0IGludGVsX2d1YyAqZ3VjLAotCQkJIHN0cnVjdCBpbnRlbF9ndWNfY3RfY2hhbm5lbCAqY3RjaCkKLXsKLQlHRU1fQlVHX09OKCFjdGNoLT5lbmFibGVkKTsKLQotCWN0Y2gtPmVuYWJsZWQgPSBmYWxzZTsKLQotCWd1Y19hY3Rpb25fZGVyZWdpc3Rlcl9jdF9idWZmZXIoZ3VjLAotCQkJCQljdGNoLT5vd25lciwKLQkJCQkJSU5URUxfR1VDX0NUX0JVRkZFUl9UWVBFX1NFTkQpOwotCWd1Y19hY3Rpb25fZGVyZWdpc3Rlcl9jdF9idWZmZXIoZ3VjLAotCQkJCQljdGNoLT5vd25lciwKLQkJCQkJSU5URUxfR1VDX0NUX0JVRkZFUl9UWVBFX1JFQ1YpOwotfQotCi1zdGF0aWMgdTMyIGN0Y2hfZ2V0X25leHRfZmVuY2Uoc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoKQotewotCS8qIEZvciBub3cgaXQncyB0cml2aWFsICovCi0JcmV0dXJuICsrY3RjaC0+bmV4dF9mZW5jZTsKLX0KLQotLyoqCi0gKiBET0M6IENUQiBIb3N0IHRvIEd1QyByZXF1ZXN0Ci0gKgotICogRm9ybWF0IG9mIHRoZSBDVEIgSG9zdCB0byBHdUMgcmVxdWVzdCBtZXNzYWdlIGlzIGFzIGZvbGxvd3M6OgotICoKLSAqICAgICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCi0gKiAgICAgIHwgICBtc2dbMF0gICB8ICAgWzFdICAgfCAgIFsyXSAgIHwgICAuLi4gICB8ICBbbi0xXSAgfAotICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgIE1FU1NBR0UgIHwgICAgICAgTUVTU0FHRSBQQVlMT0FEICAgICAgICAgICAgICAgICB8Ci0gKiAgICAgICsgICBIRUFERVIgICArLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8ICAgICAgICAgICAgfCAgICAwICAgIHwgICAgMSAgICB8ICAgLi4uICAgfCAgICBuICAgIHwKLSAqICAgICAgKz09PT09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rCi0gKiAgICAgIHwgIGxlbiA+PSAxICB8ICBGRU5DRSAgfCAgICAgcmVxdWVzdCBzcGVjaWZpYyBkYXRhICAgfAotICogICAgICArLS0tLS0tKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqCi0gKiAgICAgICAgICAgICAgICAgICBeLS0tLS0tLS0tLS0tLS0tLS1sZW4tLS0tLS0tLS0tLS0tLS0tLS0tXgotICovCi0KLXN0YXRpYyBpbnQgY3RiX3dyaXRlKHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICpjdGIsCi0JCSAgICAgY29uc3QgdTMyICphY3Rpb24sCi0JCSAgICAgdTMyIGxlbiAvKiBpbiBkd29yZHMgKi8sCi0JCSAgICAgdTMyIGZlbmNlLAotCQkgICAgIGJvb2wgd2FudF9yZXNwb25zZSkKLXsKLQlzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjID0gY3RiLT5kZXNjOwotCXUzMiBoZWFkID0gZGVzYy0+aGVhZCAvIDQ7CS8qIGluIGR3b3JkcyAqLwotCXUzMiB0YWlsID0gZGVzYy0+dGFpbCAvIDQ7CS8qIGluIGR3b3JkcyAqLwotCXUzMiBzaXplID0gZGVzYy0+c2l6ZSAvIDQ7CS8qIGluIGR3b3JkcyAqLwotCXUzMiB1c2VkOwkJCS8qIGluIGR3b3JkcyAqLwotCXUzMiBoZWFkZXI7Ci0JdTMyICpjbWRzID0gY3RiLT5jbWRzOwotCXVuc2lnbmVkIGludCBpOwotCi0JR0VNX0JVR19PTihkZXNjLT5zaXplICUgNCk7Ci0JR0VNX0JVR19PTihkZXNjLT5oZWFkICUgNCk7Ci0JR0VNX0JVR19PTihkZXNjLT50YWlsICUgNCk7Ci0JR0VNX0JVR19PTih0YWlsID49IHNpemUpOwotCi0JLyoKLQkgKiB0YWlsID09IGhlYWQgY29uZGl0aW9uIGluZGljYXRlcyBlbXB0eS4gR3VDIEZXIGRvZXMgbm90IHN1cHBvcnQKLQkgKiB1c2luZyB1cCB0aGUgZW50aXJlIGJ1ZmZlciB0byBnZXQgdGFpbCA9PSBoZWFkIG1lYW5pbmcgZnVsbC4KLQkgKi8KLQlpZiAodGFpbCA8IGhlYWQpCi0JCXVzZWQgPSAoc2l6ZSAtIGhlYWQpICsgdGFpbDsKLQllbHNlCi0JCXVzZWQgPSB0YWlsIC0gaGVhZDsKLQotCS8qIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHNwYWNlIGluY2x1ZGluZyBleHRyYSBkdyBmb3IgdGhlIGZlbmNlICovCi0JaWYgKHVubGlrZWx5KHVzZWQgKyBsZW4gKyAxID49IHNpemUpKQotCQlyZXR1cm4gLUVOT1NQQzsKLQotCS8qCi0JICogV3JpdGUgdGhlIG1lc3NhZ2UuIFRoZSBmb3JtYXQgaXMgdGhlIGZvbGxvd2luZzoKLQkgKiBEVzA6IGhlYWRlciAoaW5jbHVkaW5nIGFjdGlvbiBjb2RlKQotCSAqIERXMTogZmVuY2UKLQkgKiBEVzIrOiBhY3Rpb24gZGF0YQotCSAqLwotCWhlYWRlciA9IChsZW4gPDwgR1VDX0NUX01TR19MRU5fU0hJRlQpIHwKLQkJIChHVUNfQ1RfTVNHX1dSSVRFX0ZFTkNFX1RPX0RFU0MpIHwKLQkJICh3YW50X3Jlc3BvbnNlID8gR1VDX0NUX01TR19TRU5EX1NUQVRVUyA6IDApIHwKLQkJIChhY3Rpb25bMF0gPDwgR1VDX0NUX01TR19BQ1RJT05fU0hJRlQpOwotCi0JQ1RfREVCVUdfRFJJVkVSKCJDVDogd3JpdGluZyAlKnBoICUqcGggJSpwaFxuIiwKLQkJCTQsICZoZWFkZXIsIDQsICZmZW5jZSwKLQkJCTQgKiAobGVuIC0gMSksICZhY3Rpb25bMV0pOwotCi0JY21kc1t0YWlsXSA9IGhlYWRlcjsKLQl0YWlsID0gKHRhaWwgKyAxKSAlIHNpemU7Ci0KLQljbWRzW3RhaWxdID0gZmVuY2U7Ci0JdGFpbCA9ICh0YWlsICsgMSkgJSBzaXplOwotCi0JZm9yIChpID0gMTsgaSA8IGxlbjsgaSsrKSB7Ci0JCWNtZHNbdGFpbF0gPSBhY3Rpb25baV07Ci0JCXRhaWwgPSAodGFpbCArIDEpICUgc2l6ZTsKLQl9Ci0KLQkvKiBub3cgdXBkYXRlIGRlc2MgdGFpbCAoYmFjayBpbiBieXRlcykgKi8KLQlkZXNjLT50YWlsID0gdGFpbCAqIDQ7Ci0JR0VNX0JVR19PTihkZXNjLT50YWlsID4gZGVzYy0+c2l6ZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiB3YWl0X2Zvcl9jdGJfZGVzY191cGRhdGUgLSBXYWl0IGZvciB0aGUgQ1QgYnVmZmVyIGRlc2NyaXB0b3IgdXBkYXRlLgotICogQGRlc2M6CWJ1ZmZlciBkZXNjcmlwdG9yCi0gKiBAZmVuY2U6CXJlc3BvbnNlIGZlbmNlCi0gKiBAc3RhdHVzOglwbGFjZWhvbGRlciBmb3Igc3RhdHVzCi0gKgotICogR3VjIHdpbGwgdXBkYXRlIENUIGJ1ZmZlciBkZXNjcmlwdG9yIHdpdGggbmV3IGZlbmNlIGFuZCBzdGF0dXMKLSAqIGFmdGVyIHByb2Nlc3NpbmcgdGhlIGNvbW1hbmQgaWRlbnRpZmllZCBieSB0aGUgZmVuY2UuIFdhaXQgZm9yCi0gKiBzcGVjaWZpZWQgZmVuY2UgYW5kIHRoZW4gcmVhZCBmcm9tIHRoZSBkZXNjcmlwdG9yIHN0YXR1cyBvZiB0aGUKLSAqIGNvbW1hbmQuCi0gKgotICogUmV0dXJuOgotICogKgkwIHJlc3BvbnNlIHJlY2VpdmVkIChzdGF0dXMgaXMgdmFsaWQpCi0gKiAqCS1FVElNRURPVVQgbm8gcmVzcG9uc2Ugd2l0aGluIGhhcmRjb2RlZCB0aW1lb3V0Ci0gKiAqCS1FUFJPVE8gbm8gcmVzcG9uc2UsIENUIGJ1ZmZlciBpcyBpbiBlcnJvcgotICovCi1zdGF0aWMgaW50IHdhaXRfZm9yX2N0Yl9kZXNjX3VwZGF0ZShzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjLAotCQkJCSAgICB1MzIgZmVuY2UsCi0JCQkJICAgIHUzMiAqc3RhdHVzKQotewotCWludCBlcnI7Ci0KLQkvKgotCSAqIEZhc3QgY29tbWFuZHMgc2hvdWxkIGNvbXBsZXRlIGluIGxlc3MgdGhhbiAxMHVzLCBzbyBzYW1wbGUgcXVpY2tseQotCSAqIHVwIHRvIHRoYXQgbGVuZ3RoIG9mIHRpbWUsIHRoZW4gc3dpdGNoIHRvIGEgc2xvd2VyIHNsZWVwLXdhaXQgbG9vcC4KLQkgKiBObyBHdUMgY29tbWFuZCBzaG91bGQgZXZlciB0YWtlIGxvbmdlciB0aGFuIDEwbXMuCi0JICovCi0jZGVmaW5lIGRvbmUgKFJFQURfT05DRShkZXNjLT5mZW5jZSkgPT0gZmVuY2UpCi0JZXJyID0gd2FpdF9mb3JfdXMoZG9uZSwgMTApOwotCWlmIChlcnIpCi0JCWVyciA9IHdhaXRfZm9yKGRvbmUsIDEwKTsKLSN1bmRlZiBkb25lCi0KLQlpZiAodW5saWtlbHkoZXJyKSkgewotCQlEUk1fRVJST1IoIkNUOiBmZW5jZSAldSBmYWlsZWQ7IHJlcG9ydGVkIGZlbmNlPSV1XG4iLAotCQkJICBmZW5jZSwgZGVzYy0+ZmVuY2UpOwotCi0JCWlmIChXQVJOX09OKGRlc2MtPmlzX2luX2Vycm9yKSkgewotCQkJLyogU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB0aGUgbWVzc2FnaW5nLCB0cnkgdG8gcmVzZXQKLQkJCSAqIHRoZSBidWZmZXIgYW5kIGhvcGUgZm9yIHRoZSBiZXN0Ci0JCQkgKi8KLQkJCWd1Y19jdF9idWZmZXJfZGVzY19yZXNldChkZXNjKTsKLQkJCWVyciA9IC1FUFJPVE87Ci0JCX0KLQl9Ci0KLQkqc3RhdHVzID0gZGVzYy0+c3RhdHVzOwotCXJldHVybiBlcnI7Ci19Ci0KLS8qKgotICogd2FpdF9mb3JfY3RfcmVxdWVzdF91cGRhdGUgLSBXYWl0IGZvciBDVCByZXF1ZXN0IHN0YXRlIHVwZGF0ZS4KLSAqIEByZXE6CXBvaW50ZXIgdG8gcGVuZGluZyByZXF1ZXN0Ci0gKiBAc3RhdHVzOglwbGFjZWhvbGRlciBmb3Igc3RhdHVzCi0gKgotICogRm9yIGVhY2ggc2VudCByZXF1ZXN0LCBHdWMgc2hhbGwgc2VuZCBiYWMgQ1QgcmVzcG9uc2UgbWVzc2FnZS4KLSAqIE91ciBtZXNzYWdlIGhhbmRsZXIgd2lsbCB1cGRhdGUgc3RhdHVzIG9mIHRyYWNrZWQgcmVxdWVzdCBvbmNlCi0gKiByZXNwb25zZSBtZXNzYWdlIHdpdGggZ2l2ZW4gZmVuY2UgaXMgcmVjZWl2ZWQuIFdhaXQgaGVyZSBhbmQKLSAqIGNoZWNrIGZvciB2YWxpZCByZXNwb25zZSBzdGF0dXMgdmFsdWUuCi0gKgotICogUmV0dXJuOgotICogKgkwIHJlc3BvbnNlIHJlY2VpdmVkIChzdGF0dXMgaXMgdmFsaWQpCi0gKiAqCS1FVElNRURPVVQgbm8gcmVzcG9uc2Ugd2l0aGluIGhhcmRjb2RlZCB0aW1lb3V0Ci0gKi8KLXN0YXRpYyBpbnQgd2FpdF9mb3JfY3RfcmVxdWVzdF91cGRhdGUoc3RydWN0IGN0X3JlcXVlc3QgKnJlcSwgdTMyICpzdGF0dXMpCi17Ci0JaW50IGVycjsKLQotCS8qCi0JICogRmFzdCBjb21tYW5kcyBzaG91bGQgY29tcGxldGUgaW4gbGVzcyB0aGFuIDEwdXMsIHNvIHNhbXBsZSBxdWlja2x5Ci0JICogdXAgdG8gdGhhdCBsZW5ndGggb2YgdGltZSwgdGhlbiBzd2l0Y2ggdG8gYSBzbG93ZXIgc2xlZXAtd2FpdCBsb29wLgotCSAqIE5vIEd1QyBjb21tYW5kIHNob3VsZCBldmVyIHRha2UgbG9uZ2VyIHRoYW4gMTBtcy4KLQkgKi8KLSNkZWZpbmUgZG9uZSBJTlRFTF9HVUNfTVNHX0lTX1JFU1BPTlNFKFJFQURfT05DRShyZXEtPnN0YXR1cykpCi0JZXJyID0gd2FpdF9mb3JfdXMoZG9uZSwgMTApOwotCWlmIChlcnIpCi0JCWVyciA9IHdhaXRfZm9yKGRvbmUsIDEwKTsKLSN1bmRlZiBkb25lCi0KLQlpZiAodW5saWtlbHkoZXJyKSkKLQkJRFJNX0VSUk9SKCJDVDogZmVuY2UgJXUgZXJyICVkXG4iLCByZXEtPmZlbmNlLCBlcnIpOwotCi0JKnN0YXR1cyA9IHJlcS0+c3RhdHVzOwotCXJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyBpbnQgY3RjaF9zZW5kKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LAotCQkgICAgIHN0cnVjdCBpbnRlbF9ndWNfY3RfY2hhbm5lbCAqY3RjaCwKLQkJICAgICBjb25zdCB1MzIgKmFjdGlvbiwKLQkJICAgICB1MzIgbGVuLAotCQkgICAgIHUzMiAqcmVzcG9uc2VfYnVmLAotCQkgICAgIHUzMiByZXNwb25zZV9idWZfc2l6ZSwKLQkJICAgICB1MzIgKnN0YXR1cykKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2J1ZmZlciAqY3RiID0gJmN0Y2gtPmN0YnNbQ1RCX1NFTkRdOwotCXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MgPSBjdGItPmRlc2M7Ci0Jc3RydWN0IGN0X3JlcXVlc3QgcmVxdWVzdDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXUzMiBmZW5jZTsKLQlpbnQgZXJyOwotCi0JR0VNX0JVR19PTighY3RjaC0+ZW5hYmxlZCk7Ci0JR0VNX0JVR19PTighbGVuKTsKLQlHRU1fQlVHX09OKGxlbiAmIH5HVUNfQ1RfTVNHX0xFTl9NQVNLKTsKLQlHRU1fQlVHX09OKCFyZXNwb25zZV9idWYgJiYgcmVzcG9uc2VfYnVmX3NpemUpOwotCi0JZmVuY2UgPSBjdGNoX2dldF9uZXh0X2ZlbmNlKGN0Y2gpOwotCXJlcXVlc3QuZmVuY2UgPSBmZW5jZTsKLQlyZXF1ZXN0LnN0YXR1cyA9IDA7Ci0JcmVxdWVzdC5yZXNwb25zZV9sZW4gPSByZXNwb25zZV9idWZfc2l6ZTsKLQlyZXF1ZXN0LnJlc3BvbnNlX2J1ZiA9IHJlc3BvbnNlX2J1ZjsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjdC0+bG9jaywgZmxhZ3MpOwotCWxpc3RfYWRkX3RhaWwoJnJlcXVlc3QubGluaywgJmN0LT5wZW5kaW5nX3JlcXVlc3RzKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjdC0+bG9jaywgZmxhZ3MpOwotCi0JZXJyID0gY3RiX3dyaXRlKGN0YiwgYWN0aW9uLCBsZW4sIGZlbmNlLCAhIXJlc3BvbnNlX2J1Zik7Ci0JaWYgKHVubGlrZWx5KGVycikpCi0JCWdvdG8gdW5saW5rOwotCi0JaW50ZWxfZ3VjX25vdGlmeShjdF90b19ndWMoY3QpKTsKLQotCWlmIChyZXNwb25zZV9idWYpCi0JCWVyciA9IHdhaXRfZm9yX2N0X3JlcXVlc3RfdXBkYXRlKCZyZXF1ZXN0LCBzdGF0dXMpOwotCWVsc2UKLQkJZXJyID0gd2FpdF9mb3JfY3RiX2Rlc2NfdXBkYXRlKGRlc2MsIGZlbmNlLCBzdGF0dXMpOwotCWlmICh1bmxpa2VseShlcnIpKQotCQlnb3RvIHVubGluazsKLQotCWlmICghSU5URUxfR1VDX01TR19JU19SRVNQT05TRV9TVUNDRVNTKCpzdGF0dXMpKSB7Ci0JCWVyciA9IC1FSU87Ci0JCWdvdG8gdW5saW5rOwotCX0KLQotCWlmIChyZXNwb25zZV9idWYpIHsKLQkJLyogVGhlcmUgc2hhbGwgYmUgbm8gZGF0YSBpbiB0aGUgc3RhdHVzICovCi0JCVdBUk5fT04oSU5URUxfR1VDX01TR19UT19EQVRBKHJlcXVlc3Quc3RhdHVzKSk7Ci0JCS8qIFJldHVybiBhY3R1YWwgcmVzcG9uc2UgbGVuICovCi0JCWVyciA9IHJlcXVlc3QucmVzcG9uc2VfbGVuOwotCX0gZWxzZSB7Ci0JCS8qIFRoZXJlIHNoYWxsIGJlIG5vIHJlc3BvbnNlIHBheWxvYWQgKi8KLQkJV0FSTl9PTihyZXF1ZXN0LnJlc3BvbnNlX2xlbik7Ci0JCS8qIFJldHVybiBkYXRhIGRlY29kZWQgZnJvbSB0aGUgc3RhdHVzIGR3b3JkICovCi0JCWVyciA9IElOVEVMX0dVQ19NU0dfVE9fREFUQSgqc3RhdHVzKTsKLQl9Ci0KLXVubGluazoKLQlzcGluX2xvY2tfaXJxc2F2ZSgmY3QtPmxvY2ssIGZsYWdzKTsKLQlsaXN0X2RlbCgmcmVxdWVzdC5saW5rKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjdC0+bG9jaywgZmxhZ3MpOwotCi0JcmV0dXJuIGVycjsKLX0KLQotLyoKLSAqIENvbW1hbmQgVHJhbnNwb3J0IChDVCkgYnVmZmVyIGJhc2VkIEd1QyBzZW5kIGZ1bmN0aW9uLgotICovCi1zdGF0aWMgaW50IGludGVsX2d1Y19zZW5kX2N0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sCi0JCQkgICAgIHUzMiAqcmVzcG9uc2VfYnVmLCB1MzIgcmVzcG9uc2VfYnVmX3NpemUpCi17Ci0Jc3RydWN0IGludGVsX2d1Y19jdCAqY3QgPSAmZ3VjLT5jdDsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2NoYW5uZWwgKmN0Y2ggPSAmY3QtPmhvc3RfY2hhbm5lbDsKLQl1MzIgc3RhdHVzID0gfjA7IC8qIHVuZGVmaW5lZCAqLwotCWludCByZXQ7Ci0KLQltdXRleF9sb2NrKCZndWMtPnNlbmRfbXV0ZXgpOwotCi0JcmV0ID0gY3RjaF9zZW5kKGN0LCBjdGNoLCBhY3Rpb24sIGxlbiwgcmVzcG9uc2VfYnVmLCByZXNwb25zZV9idWZfc2l6ZSwKLQkJCSZzdGF0dXMpOwotCWlmICh1bmxpa2VseShyZXQgPCAwKSkgewotCQlEUk1fRVJST1IoIkNUOiBzZW5kIGFjdGlvbiAlI1ggZmFpbGVkOyBlcnI9JWQgc3RhdHVzPSUjWFxuIiwKLQkJCSAgYWN0aW9uWzBdLCByZXQsIHN0YXR1cyk7Ci0JfSBlbHNlIGlmICh1bmxpa2VseShyZXQpKSB7Ci0JCUNUX0RFQlVHX0RSSVZFUigiQ1Q6IHNlbmQgYWN0aW9uICUjeCByZXR1cm5lZCAlZCAoJSN4KVxuIiwKLQkJCQlhY3Rpb25bMF0sIHJldCwgcmV0KTsKLQl9Ci0KLQltdXRleF91bmxvY2soJmd1Yy0+c2VuZF9tdXRleCk7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY3RfaGVhZGVyX2dldF9sZW4odTMyIGhlYWRlcikKLXsKLQlyZXR1cm4gKGhlYWRlciA+PiBHVUNfQ1RfTVNHX0xFTl9TSElGVCkgJiBHVUNfQ1RfTVNHX0xFTl9NQVNLOwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjdF9oZWFkZXJfZ2V0X2FjdGlvbih1MzIgaGVhZGVyKQotewotCXJldHVybiAoaGVhZGVyID4+IEdVQ19DVF9NU0dfQUNUSU9OX1NISUZUKSAmIEdVQ19DVF9NU0dfQUNUSU9OX01BU0s7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBjdF9oZWFkZXJfaXNfcmVzcG9uc2UodTMyIGhlYWRlcikKLXsKLQlyZXR1cm4gISEoaGVhZGVyICYgR1VDX0NUX01TR19JU19SRVNQT05TRSk7Ci19Ci0KLXN0YXRpYyBpbnQgY3RiX3JlYWQoc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgKmN0YiwgdTMyICpkYXRhKQotewotCXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MgPSBjdGItPmRlc2M7Ci0JdTMyIGhlYWQgPSBkZXNjLT5oZWFkIC8gNDsJLyogaW4gZHdvcmRzICovCi0JdTMyIHRhaWwgPSBkZXNjLT50YWlsIC8gNDsJLyogaW4gZHdvcmRzICovCi0JdTMyIHNpemUgPSBkZXNjLT5zaXplIC8gNDsJLyogaW4gZHdvcmRzICovCi0JdTMyICpjbWRzID0gY3RiLT5jbWRzOwotCXMzMiBhdmFpbGFibGU7CQkJLyogaW4gZHdvcmRzICovCi0JdW5zaWduZWQgaW50IGxlbjsKLQl1bnNpZ25lZCBpbnQgaTsKLQotCUdFTV9CVUdfT04oZGVzYy0+c2l6ZSAlIDQpOwotCUdFTV9CVUdfT04oZGVzYy0+aGVhZCAlIDQpOwotCUdFTV9CVUdfT04oZGVzYy0+dGFpbCAlIDQpOwotCUdFTV9CVUdfT04odGFpbCA+PSBzaXplKTsKLQlHRU1fQlVHX09OKGhlYWQgPj0gc2l6ZSk7Ci0KLQkvKiB0YWlsID09IGhlYWQgY29uZGl0aW9uIGluZGljYXRlcyBlbXB0eSAqLwotCWF2YWlsYWJsZSA9IHRhaWwgLSBoZWFkOwotCWlmICh1bmxpa2VseShhdmFpbGFibGUgPT0gMCkpCi0JCXJldHVybiAtRU5PREFUQTsKLQotCS8qIGJld2FyZSBvZiBidWZmZXIgd3JhcCBjYXNlICovCi0JaWYgKHVubGlrZWx5KGF2YWlsYWJsZSA8IDApKQotCQlhdmFpbGFibGUgKz0gc2l6ZTsKLQlDVF9ERUJVR19EUklWRVIoIkNUOiBhdmFpbGFibGUgJWQgKCV1OiV1KVxuIiwgYXZhaWxhYmxlLCBoZWFkLCB0YWlsKTsKLQlHRU1fQlVHX09OKGF2YWlsYWJsZSA8IDApOwotCi0JZGF0YVswXSA9IGNtZHNbaGVhZF07Ci0JaGVhZCA9IChoZWFkICsgMSkgJSBzaXplOwotCi0JLyogbWVzc2FnZSBsZW4gd2l0aCBoZWFkZXIgKi8KLQlsZW4gPSBjdF9oZWFkZXJfZ2V0X2xlbihkYXRhWzBdKSArIDE7Ci0JaWYgKHVubGlrZWx5KGxlbiA+ICh1MzIpYXZhaWxhYmxlKSkgewotCQlEUk1fRVJST1IoIkNUOiBpbmNvbXBsZXRlIG1lc3NhZ2UgJSpwaCAlKnBoICUqcGhcbiIsCi0JCQkgIDQsIGRhdGEsCi0JCQkgIDQgKiAoaGVhZCArIGF2YWlsYWJsZSAtIDEgPiBzaXplID8KLQkJCSAgICAgICBzaXplIC0gaGVhZCA6IGF2YWlsYWJsZSAtIDEpLCAmY21kc1toZWFkXSwKLQkJCSAgNCAqIChoZWFkICsgYXZhaWxhYmxlIC0gMSA+IHNpemUgPwotCQkJICAgICAgIGF2YWlsYWJsZSAtIDEgLSBzaXplICsgaGVhZCA6IDApLCAmY21kc1swXSk7Ci0JCXJldHVybiAtRVBST1RPOwotCX0KLQotCWZvciAoaSA9IDE7IGkgPCBsZW47IGkrKykgewotCQlkYXRhW2ldID0gY21kc1toZWFkXTsKLQkJaGVhZCA9IChoZWFkICsgMSkgJSBzaXplOwotCX0KLQlDVF9ERUJVR19EUklWRVIoIkNUOiByZWNlaXZlZCAlKnBoXG4iLCA0ICogbGVuLCBkYXRhKTsKLQotCWRlc2MtPmhlYWQgPSBoZWFkICogNDsKLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBET0M6IENUQiBHdUMgdG8gSG9zdCByZXNwb25zZQotICoKLSAqIEZvcm1hdCBvZiB0aGUgQ1RCIEd1QyB0byBIb3N0IHJlc3BvbnNlIG1lc3NhZ2UgaXMgYXMgZm9sbG93czo6Ci0gKgotICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCi0gKiAgICAgIHwgICBtc2dbMF0gICB8ICAgWzFdICAgfCAgIFsyXSAgIHwgICBbM10gICB8ICAgLi4uICAgfCAgW24tMV0gIHwKLSAqICAgICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8ICAgTUVTU0FHRSAgfCAgICAgICBNRVNTQUdFIFBBWUxPQUQgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gKiAgICAgICsgICBIRUFERVIgICArLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgICAgICAgICAgIHwgICAgMCAgICB8ICAgIDEgICAgfCAgICAyICAgIHwgICAuLi4gICB8ICAgIG4gICAgfAotICogICAgICArPT09PT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rCi0gKiAgICAgIHwgIGxlbiA+PSAyICB8ICBGRU5DRSAgfCAgU1RBVFVTIHwgICByZXNwb25zZSBzcGVjaWZpYyBkYXRhICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICoKLSAqICAgICAgICAgICAgICAgICAgIF4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWxlbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXgotICovCi0KLXN0YXRpYyBpbnQgY3RfaGFuZGxlX3Jlc3BvbnNlKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LCBjb25zdCB1MzIgKm1zZykKLXsKLQl1MzIgaGVhZGVyID0gbXNnWzBdOwotCXUzMiBsZW4gPSBjdF9oZWFkZXJfZ2V0X2xlbihoZWFkZXIpOwotCXUzMiBtc2dsZW4gPSBsZW4gKyAxOyAvKiB0b3RhbCBtZXNzYWdlIGxlbmd0aCBpbmNsdWRpbmcgaGVhZGVyICovCi0JdTMyIGZlbmNlOwotCXUzMiBzdGF0dXM7Ci0JdTMyIGRhdGFsZW47Ci0Jc3RydWN0IGN0X3JlcXVlc3QgKnJlcTsKLQlib29sIGZvdW5kID0gZmFsc2U7Ci0KLQlHRU1fQlVHX09OKCFjdF9oZWFkZXJfaXNfcmVzcG9uc2UoaGVhZGVyKSk7Ci0JR0VNX0JVR19PTighaW5faXJxKCkpOwotCi0JLyogUmVzcG9uc2UgcGF5bG9hZCBzaGFsbCBhdCBsZWFzdCBpbmNsdWRlIGZlbmNlIGFuZCBzdGF0dXMgKi8KLQlpZiAodW5saWtlbHkobGVuIDwgMikpIHsKLQkJRFJNX0VSUk9SKCJDVDogY29ycnVwdGVkIHJlc3BvbnNlICUqcGhcbiIsIDQgKiBtc2dsZW4sIG1zZyk7Ci0JCXJldHVybiAtRVBST1RPOwotCX0KLQotCWZlbmNlID0gbXNnWzFdOwotCXN0YXR1cyA9IG1zZ1syXTsKLQlkYXRhbGVuID0gbGVuIC0gMjsKLQotCS8qIEZvcm1hdCBvZiB0aGUgc3RhdHVzIGZvbGxvd3MgUkVTUE9OU0UgbWVzc2FnZSAqLwotCWlmICh1bmxpa2VseSghSU5URUxfR1VDX01TR19JU19SRVNQT05TRShzdGF0dXMpKSkgewotCQlEUk1fRVJST1IoIkNUOiBjb3JydXB0ZWQgcmVzcG9uc2UgJSpwaFxuIiwgNCAqIG1zZ2xlbiwgbXNnKTsKLQkJcmV0dXJuIC1FUFJPVE87Ci0JfQotCi0JQ1RfREVCVUdfRFJJVkVSKCJDVDogcmVzcG9uc2UgZmVuY2UgJXUgc3RhdHVzICUjeFxuIiwgZmVuY2UsIHN0YXR1cyk7Ci0KLQlzcGluX2xvY2soJmN0LT5sb2NrKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcSwgJmN0LT5wZW5kaW5nX3JlcXVlc3RzLCBsaW5rKSB7Ci0JCWlmICh1bmxpa2VseShmZW5jZSAhPSByZXEtPmZlbmNlKSkgewotCQkJQ1RfREVCVUdfRFJJVkVSKCJDVDogcmVxdWVzdCAldSBhd2FpdHMgcmVzcG9uc2VcbiIsCi0JCQkJCXJlcS0+ZmVuY2UpOwotCQkJY29udGludWU7Ci0JCX0KLQkJaWYgKHVubGlrZWx5KGRhdGFsZW4gPiByZXEtPnJlc3BvbnNlX2xlbikpIHsKLQkJCURSTV9FUlJPUigiQ1Q6IHJlc3BvbnNlICV1IHRvbyBsb25nICUqcGhcbiIsCi0JCQkJICByZXEtPmZlbmNlLCA0ICogbXNnbGVuLCBtc2cpOwotCQkJZGF0YWxlbiA9IDA7Ci0JCX0KLQkJaWYgKGRhdGFsZW4pCi0JCQltZW1jcHkocmVxLT5yZXNwb25zZV9idWYsIG1zZyArIDMsIDQgKiBkYXRhbGVuKTsKLQkJcmVxLT5yZXNwb25zZV9sZW4gPSBkYXRhbGVuOwotCQlXUklURV9PTkNFKHJlcS0+c3RhdHVzLCBzdGF0dXMpOwotCQlmb3VuZCA9IHRydWU7Ci0JCWJyZWFrOwotCX0KLQlzcGluX3VubG9jaygmY3QtPmxvY2spOwotCi0JaWYgKCFmb3VuZCkKLQkJRFJNX0VSUk9SKCJDVDogdW5zb2xpY2l0ZWQgcmVzcG9uc2UgJSpwaFxuIiwgNCAqIG1zZ2xlbiwgbXNnKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgY3RfcHJvY2Vzc19yZXF1ZXN0KHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LAotCQkJICAgICAgIHUzMiBhY3Rpb24sIHUzMiBsZW4sIGNvbnN0IHUzMiAqcGF5bG9hZCkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBjdF90b19ndWMoY3QpOwotCWludCByZXQ7Ci0KLQlDVF9ERUJVR19EUklWRVIoIkNUOiByZXF1ZXN0ICV4ICUqcGhcbiIsIGFjdGlvbiwgNCAqIGxlbiwgcGF5bG9hZCk7Ci0KLQlzd2l0Y2ggKGFjdGlvbikgewotCWNhc2UgSU5URUxfR1VDX0FDVElPTl9ERUZBVUxUOgotCQlyZXQgPSBpbnRlbF9ndWNfdG9faG9zdF9wcm9jZXNzX3JlY3ZfbXNnKGd1YywgcGF5bG9hZCwgbGVuKTsKLQkJaWYgKHVubGlrZWx5KHJldCkpCi0JCQlnb3RvIGZhaWxfdW5leHBlY3RlZDsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotZmFpbF91bmV4cGVjdGVkOgotCQlEUk1fRVJST1IoIkNUOiB1bmV4cGVjdGVkIHJlcXVlc3QgJXggJSpwaFxuIiwKLQkJCSAgYWN0aW9uLCA0ICogbGVuLCBwYXlsb2FkKTsKLQkJYnJlYWs7Ci0JfQotfQotCi1zdGF0aWMgYm9vbCBjdF9wcm9jZXNzX2luY29taW5nX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IGN0X2luY29taW5nX3JlcXVlc3QgKnJlcXVlc3Q7Ci0JdTMyIGhlYWRlcjsKLQl1MzIgKnBheWxvYWQ7Ci0JYm9vbCBkb25lOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmN0LT5sb2NrLCBmbGFncyk7Ci0JcmVxdWVzdCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmY3QtPmluY29taW5nX3JlcXVlc3RzLAotCQkJCQkgICBzdHJ1Y3QgY3RfaW5jb21pbmdfcmVxdWVzdCwgbGluayk7Ci0JaWYgKHJlcXVlc3QpCi0JCWxpc3RfZGVsKCZyZXF1ZXN0LT5saW5rKTsKLQlkb25lID0gISFsaXN0X2VtcHR5KCZjdC0+aW5jb21pbmdfcmVxdWVzdHMpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0LT5sb2NrLCBmbGFncyk7Ci0KLQlpZiAoIXJlcXVlc3QpCi0JCXJldHVybiB0cnVlOwotCi0JaGVhZGVyID0gcmVxdWVzdC0+bXNnWzBdOwotCXBheWxvYWQgPSAmcmVxdWVzdC0+bXNnWzFdOwotCWN0X3Byb2Nlc3NfcmVxdWVzdChjdCwKLQkJCSAgIGN0X2hlYWRlcl9nZXRfYWN0aW9uKGhlYWRlciksCi0JCQkgICBjdF9oZWFkZXJfZ2V0X2xlbihoZWFkZXIpLAotCQkJICAgcGF5bG9hZCk7Ci0KLQlrZnJlZShyZXF1ZXN0KTsKLQlyZXR1cm4gZG9uZTsKLX0KLQotc3RhdGljIHZvaWQgY3RfaW5jb21pbmdfcmVxdWVzdF93b3JrZXJfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpCi17Ci0Jc3RydWN0IGludGVsX2d1Y19jdCAqY3QgPSBjb250YWluZXJfb2Yodywgc3RydWN0IGludGVsX2d1Y19jdCwgd29ya2VyKTsKLQlib29sIGRvbmU7Ci0KLQlkb25lID0gY3RfcHJvY2Vzc19pbmNvbWluZ19yZXF1ZXN0cyhjdCk7Ci0JaWYgKCFkb25lKQotCQlxdWV1ZV93b3JrKHN5c3RlbV91bmJvdW5kX3dxLCAmY3QtPndvcmtlcik7Ci19Ci0KLS8qKgotICogRE9DOiBDVEIgR3VDIHRvIEhvc3QgcmVxdWVzdAotICoKLSAqIEZvcm1hdCBvZiB0aGUgQ1RCIEd1QyB0byBIb3N0IHJlcXVlc3QgbWVzc2FnZSBpcyBhcyBmb2xsb3dzOjoKLSAqCi0gKiAgICAgICstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgIG1zZ1swXSAgIHwgICBbMV0gICB8ICAgWzJdICAgfCAgIFszXSAgIHwgICAuLi4gICB8ICBbbi0xXSAgfAotICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCi0gKiAgICAgIHwgICBNRVNTQUdFICB8ICAgICAgIE1FU1NBR0UgUEFZTE9BRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAqICAgICAgKyAgIEhFQURFUiAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8ICAgICAgICAgICAgfCAgICAwICAgIHwgICAgMSAgICB8ICAgIDIgICAgfCAgIC4uLiAgIHwgICAgbiAgICB8Ci0gKiAgICAgICs9PT09PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSsKLSAqICAgICAgfCAgICAgbGVuICAgIHwgICAgICAgICAgICByZXF1ZXN0IHNwZWNpZmljIGRhdGEgICAgICAgICAgICAgICAgfAotICogICAgICArLS0tLS0tKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCi0gKgotICogICAgICAgICAgICAgICAgICAgXi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tbGVuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1eCi0gKi8KLQotc3RhdGljIGludCBjdF9oYW5kbGVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwgY29uc3QgdTMyICptc2cpCi17Ci0JdTMyIGhlYWRlciA9IG1zZ1swXTsKLQl1MzIgbGVuID0gY3RfaGVhZGVyX2dldF9sZW4oaGVhZGVyKTsKLQl1MzIgbXNnbGVuID0gbGVuICsgMTsgLyogdG90YWwgbWVzc2FnZSBsZW5ndGggaW5jbHVkaW5nIGhlYWRlciAqLwotCXN0cnVjdCBjdF9pbmNvbWluZ19yZXF1ZXN0ICpyZXF1ZXN0OwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlHRU1fQlVHX09OKGN0X2hlYWRlcl9pc19yZXNwb25zZShoZWFkZXIpKTsKLQotCXJlcXVlc3QgPSBrbWFsbG9jKHNpemVvZigqcmVxdWVzdCkgKyA0ICogbXNnbGVuLCBHRlBfQVRPTUlDKTsKLQlpZiAodW5saWtlbHkoIXJlcXVlc3QpKSB7Ci0JCURSTV9FUlJPUigiQ1Q6IGRyb3BwaW5nIHJlcXVlc3QgJSpwaFxuIiwgNCAqIG1zZ2xlbiwgbXNnKTsKLQkJcmV0dXJuIDA7IC8qIFhYWDogLUVOT01FTSA/ICovCi0JfQotCW1lbWNweShyZXF1ZXN0LT5tc2csIG1zZywgNCAqIG1zZ2xlbik7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY3QtPmxvY2ssIGZsYWdzKTsKLQlsaXN0X2FkZF90YWlsKCZyZXF1ZXN0LT5saW5rLCAmY3QtPmluY29taW5nX3JlcXVlc3RzKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjdC0+bG9jaywgZmxhZ3MpOwotCi0JcXVldWVfd29yayhzeXN0ZW1fdW5ib3VuZF93cSwgJmN0LT53b3JrZXIpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBjdF9wcm9jZXNzX2hvc3RfY2hhbm5lbChzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2NoYW5uZWwgKmN0Y2ggPSAmY3QtPmhvc3RfY2hhbm5lbDsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2J1ZmZlciAqY3RiID0gJmN0Y2gtPmN0YnNbQ1RCX1JFQ1ZdOwotCXUzMiBtc2dbR1VDX0NUX01TR19MRU5fTUFTSyArIDFdOyAvKiBvbmUgZXh0cmEgZHcgZm9yIHRoZSBoZWFkZXIgKi8KLQlpbnQgZXJyID0gMDsKLQotCWlmICghY3RjaC0+ZW5hYmxlZCkKLQkJcmV0dXJuOwotCi0JZG8gewotCQllcnIgPSBjdGJfcmVhZChjdGIsIG1zZyk7Ci0JCWlmIChlcnIpCi0JCQlicmVhazsKLQotCQlpZiAoY3RfaGVhZGVyX2lzX3Jlc3BvbnNlKG1zZ1swXSkpCi0JCQllcnIgPSBjdF9oYW5kbGVfcmVzcG9uc2UoY3QsIG1zZyk7Ci0JCWVsc2UKLQkJCWVyciA9IGN0X2hhbmRsZV9yZXF1ZXN0KGN0LCBtc2cpOwotCX0gd2hpbGUgKCFlcnIpOwotCi0JaWYgKEdFTV9XQVJOX09OKGVyciA9PSAtRVBST1RPKSkgewotCQlEUk1fRVJST1IoIkNUOiBjb3JydXB0ZWQgbWVzc2FnZSBkZXRlY3RlZCFcbiIpOwotCQljdGItPmRlc2MtPmlzX2luX2Vycm9yID0gMTsKLQl9Ci19Ci0KLS8qCi0gKiBXaGVuIHdlJ3JlIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgR3VDIG92ZXIgQ1QsIEd1QyB1c2VzIGV2ZW50cwotICogdG8gbm90aWZ5IHVzIGFib3V0IG5ldyBtZXNzYWdlcyBiZWluZyBwb3N0ZWQgb24gdGhlIFJFQ1YgYnVmZmVyLgotICovCi1zdGF0aWMgdm9pZCBpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyX2N0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCA9ICZndWMtPmN0OwotCi0JY3RfcHJvY2Vzc19ob3N0X2NoYW5uZWwoY3QpOwotfQotCi0vKioKLSAqIGludGVsX2d1Y19jdF9pbml0IC0gSW5pdCBDVCBjb21tdW5pY2F0aW9uCi0gKiBAY3Q6IHBvaW50ZXIgdG8gQ1Qgc3RydWN0Ci0gKgotICogQWxsb2NhdGUgbWVtb3J5IHJlcXVpcmVkIGZvciBjb21tdW5pY2F0aW9uIHZpYQotICogdGhlIENUIGNoYW5uZWwuCi0gKgotICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIGEgbmVnYXRpdmUgZXJybm8gY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgaW50ZWxfZ3VjX2N0X2luaXQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gY3RfdG9fZ3VjKGN0KTsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2NoYW5uZWwgKmN0Y2ggPSAmY3QtPmhvc3RfY2hhbm5lbDsKLQlpbnQgZXJyOwotCi0JZXJyID0gY3RjaF9pbml0KGd1YywgY3RjaCk7Ci0JaWYgKHVubGlrZWx5KGVycikpIHsKLQkJRFJNX0VSUk9SKCJDVDogY2FuJ3Qgb3BlbiBjaGFubmVsICVkOyBlcnI9JWRcbiIsCi0JCQkgIGN0Y2gtPm93bmVyLCBlcnIpOwotCQlyZXR1cm4gZXJyOwotCX0KLQotCUdFTV9CVUdfT04oIWN0Y2gtPnZtYSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qKgotICogaW50ZWxfZ3VjX2N0X2ZpbmkgLSBGaW5pIENUIGNvbW11bmljYXRpb24KLSAqIEBjdDogcG9pbnRlciB0byBDVCBzdHJ1Y3QKLSAqCi0gKiBEZWFsbG9jYXRlIG1lbW9yeSByZXF1aXJlZCBmb3IgY29tbXVuaWNhdGlvbiB2aWEKLSAqIHRoZSBDVCBjaGFubmVsLgotICovCi12b2lkIGludGVsX2d1Y19jdF9maW5pKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KQotewotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGN0X3RvX2d1YyhjdCk7Ci0Jc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7Ci0KLQljdGNoX2ZpbmkoZ3VjLCBjdGNoKTsKLX0KLQotLyoqCi0gKiBpbnRlbF9ndWNfY3RfZW5hYmxlIC0gRW5hYmxlIGJ1ZmZlciBiYXNlZCBjb21tYW5kIHRyYW5zcG9ydC4KLSAqIEBjdDogcG9pbnRlciB0byBDVCBzdHJ1Y3QKLSAqCi0gKiBSZXR1cm46IDAgb24gc3VjY2VzcywgYSBuZWdhdGl2ZSBlcnJubyBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBpbnRlbF9ndWNfY3RfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KQotewotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGN0X3RvX2d1YyhjdCk7Ci0Jc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7Ci0JaW50IGVycjsKLQotCWlmIChjdGNoLT5lbmFibGVkKQotCQlyZXR1cm4gMDsKLQotCWVyciA9IGN0Y2hfZW5hYmxlKGd1YywgY3RjaCk7Ci0JaWYgKHVubGlrZWx5KGVycikpCi0JCXJldHVybiBlcnI7Ci0KLQkvKiBTd2l0Y2ggaW50byBjbWQgdHJhbnNwb3J0IGJ1ZmZlciBiYXNlZCBzZW5kKCkgKi8KLQlndWMtPnNlbmQgPSBpbnRlbF9ndWNfc2VuZF9jdDsKLQlndWMtPmhhbmRsZXIgPSBpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyX2N0OwotCURSTV9JTkZPKCJDVDogJXNcbiIsIGVuYWJsZWRkaXNhYmxlZCh0cnVlKSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qKgotICogaW50ZWxfZ3VjX2N0X2Rpc2FibGUgLSBEaXNhYmxlIGJ1ZmZlciBiYXNlZCBjb21tYW5kIHRyYW5zcG9ydC4KLSAqIEBjdDogcG9pbnRlciB0byBDVCBzdHJ1Y3QKLSAqLwotdm9pZCBpbnRlbF9ndWNfY3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBjdF90b19ndWMoY3QpOwotCXN0cnVjdCBpbnRlbF9ndWNfY3RfY2hhbm5lbCAqY3RjaCA9ICZjdC0+aG9zdF9jaGFubmVsOwotCi0JaWYgKCFjdGNoLT5lbmFibGVkKQotCQlyZXR1cm47Ci0KLQljdGNoX2Rpc2FibGUoZ3VjLCBjdGNoKTsKLQotCS8qIERpc2FibGUgc2VuZCAqLwotCWd1Yy0+c2VuZCA9IGludGVsX2d1Y19zZW5kX25vcDsKLQlndWMtPmhhbmRsZXIgPSBpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyX25vcDsKLQlEUk1fSU5GTygiQ1Q6ICVzXG4iLCBlbmFibGVkZGlzYWJsZWQoZmFsc2UpKTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19jdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2N0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxYmE1OTMuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2N0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE2LTIwMTcgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCi0gKiBJTiBUSEUgU09GVFdBUkUuCi0gKi8KLQotI2lmbmRlZiBfSU5URUxfR1VDX0NUX0hfCi0jZGVmaW5lIF9JTlRFTF9HVUNfQ1RfSF8KLQotc3RydWN0IGludGVsX2d1YzsKLXN0cnVjdCBpOTE1X3ZtYTsKLQotI2luY2x1ZGUgImludGVsX2d1Y19md2lmLmgiCi0KLS8qKgotICogRE9DOiBDb21tYW5kIFRyYW5zcG9ydCAoQ1QpLgotICoKLSAqIEJ1ZmZlciBiYXNlZCBjb21tYW5kIHRyYW5zcG9ydCBpcyBhIHJlcGxhY2VtZW50IGZvciBNTUlPIGJhc2VkIG1lY2hhbmlzbS4KLSAqIEl0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gYm90aCBob3N0LTItZ3VjIGFuZCBndWMtdG8taG9zdCBjb21tdW5pY2F0aW9uLgotICovCi0KLS8qKiBSZXByZXNlbnRzIHNpbmdsZSBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIuCi0gKgotICogQSBzaW5nbGUgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyIGNvbnNpc3RzIG9mIHR3byBwYXJ0cywgdGhlIGhlYWRlcgotICogcmVjb3JkIChjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIgZGVzY3JpcHRvcikgYW5kIHRoZSBhY3R1YWwgYnVmZmVyIHdoaWNoCi0gKiBob2xkcyB0aGUgY29tbWFuZHMuCi0gKgotICogQGRlc2M6IHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBkZXNjcmlwdG9yCi0gKiBAY21kczogcG9pbnRlciB0byB0aGUgY29tbWFuZHMgYnVmZmVyCi0gKi8KLXN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyIHsKLQlzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjOwotCXUzMiAqY21kczsKLX07Ci0KLS8qKiBSZXByZXNlbnRzIHBhaXIgb2YgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVycy4KLSAqCi0gKiBCdWZmZXJzIGdvIGluIHBhaXJzIHRvIGFsbG93IGJpLWRpcmVjdGlvbmFsIGNvbW11bmljYXRpb24uCi0gKiBUbyBzaW1wbGlmeSB0aGUgY29kZSB3ZSBwbGFjZSBib3RoIG9mIHRoZW0gaW4gdGhlIHNhbWUgdm1hLgotICogQnVmZmVycyBmcm9tIHRoZSBzYW1lIHBhaXIgbXVzdCBzaGFyZSB1bmlxdWUgb3duZXIgaWQuCi0gKgotICogQHZtYTogcG9pbnRlciB0byB0aGUgdm1hIHdpdGggcGFpciBvZiBDVCBidWZmZXJzCi0gKiBAY3RiczogYnVmZmVycyBmb3Igc2VuZGluZygwKSBhbmQgcmVjZWl2aW5nKDEpIGNvbW1hbmRzCi0gKiBAb3duZXI6IHVuaXF1ZSBpZGVudGlmaWVyCi0gKiBAbmV4dF9mZW5jZTogZmVuY2UgdG8gYmUgdXNlZCB3aXRoIG5leHQgc2VuZCBjb21tYW5kCi0gKi8KLXN0cnVjdCBpbnRlbF9ndWNfY3RfY2hhbm5lbCB7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0Jc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgY3Ric1syXTsKLQl1MzIgb3duZXI7Ci0JdTMyIG5leHRfZmVuY2U7Ci0JYm9vbCBlbmFibGVkOwotfTsKLQotLyoqIEhvbGRzIGFsbCBjb21tYW5kIHRyYW5zcG9ydCBjaGFubmVscy4KLSAqCi0gKiBAaG9zdF9jaGFubmVsOiBtYWluIGNoYW5uZWwgdXNlZCBieSB0aGUgaG9zdAotICovCi1zdHJ1Y3QgaW50ZWxfZ3VjX2N0IHsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2NoYW5uZWwgaG9zdF9jaGFubmVsOwotCS8qIG90aGVyIGNoYW5uZWxzIGFyZSB0YmQgKi8KLQotCS8qKiBAbG9jazogcHJvdGVjdHMgcGVuZGluZyByZXF1ZXN0cyBsaXN0ICovCi0Jc3BpbmxvY2tfdCBsb2NrOwotCi0JLyoqIEBwZW5kaW5nX3JlcXVlc3RzOiBsaXN0IG9mIHJlcXVlc3RzIHdhaXRpbmcgZm9yIHJlc3BvbnNlICovCi0Jc3RydWN0IGxpc3RfaGVhZCBwZW5kaW5nX3JlcXVlc3RzOwotCi0JLyoqIEBpbmNvbWluZ19yZXF1ZXN0czogbGlzdCBvZiBpbmNvbWluZyByZXF1ZXN0cyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgaW5jb21pbmdfcmVxdWVzdHM7Ci0KLQkvKiogQHdvcmtlcjogd29ya2VyIGZvciBoYW5kbGluZyBpbmNvbWluZyByZXF1ZXN0cyAqLwotCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrZXI7Ci19OwotCi12b2lkIGludGVsX2d1Y19jdF9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KTsKLWludCBpbnRlbF9ndWNfY3RfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCk7Ci12b2lkIGludGVsX2d1Y19jdF9maW5pKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KTsKLWludCBpbnRlbF9ndWNfY3RfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KTsKLXZvaWQgaW50ZWxfZ3VjX2N0X2Rpc2FibGUoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZ3VjX2N0X3N0b3Aoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpCi17Ci0JY3QtPmhvc3RfY2hhbm5lbC5lbmFibGVkID0gZmFsc2U7Ci19Ci0KLSNlbmRpZiAvKiBfSU5URUxfR1VDX0NUX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZncuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19mdy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MmNkYWZkLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19mdy5jCisrKyAvZGV2L251bGwKQEAgLTEsMzA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKiBBdXRob3JzOgotICogICAgVmluaXQgQXphZCA8dmluaXQuYXphZEBpbnRlbC5jb20+Ci0gKiAgICBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Ci0gKiAgICBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgotICogICAgQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Ci0gKi8KLQotI2luY2x1ZGUgImludGVsX2d1Y19mdy5oIgotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0KLSNkZWZpbmUgX19NQUtFX0dVQ19GV19QQVRIKEtFWSkgXAotCSJpOTE1LyIgXAotCV9fc3RyaW5naWZ5KEtFWSMjX0dVQ19GV19QUkVGSVgpICJfZ3VjXyIgXAotCV9fc3RyaW5naWZ5KEtFWSMjX0dVQ19GV19NQUpPUikgIi4iIFwKLQlfX3N0cmluZ2lmeShLRVkjI19HVUNfRldfTUlOT1IpICIuIiBcCi0JX19zdHJpbmdpZnkoS0VZIyNfR1VDX0ZXX1BBVENIKSAiLmJpbiIKLQotI2RlZmluZSBTS0xfR1VDX0ZXX1BSRUZJWCBza2wKLSNkZWZpbmUgU0tMX0dVQ19GV19NQUpPUiAzMgotI2RlZmluZSBTS0xfR1VDX0ZXX01JTk9SIDAKLSNkZWZpbmUgU0tMX0dVQ19GV19QQVRDSCAzCi0jZGVmaW5lIFNLTF9HVUNfRklSTVdBUkVfUEFUSCBfX01BS0VfR1VDX0ZXX1BBVEgoU0tMKQotTU9EVUxFX0ZJUk1XQVJFKFNLTF9HVUNfRklSTVdBUkVfUEFUSCk7Ci0KLSNkZWZpbmUgQlhUX0dVQ19GV19QUkVGSVggYnh0Ci0jZGVmaW5lIEJYVF9HVUNfRldfTUFKT1IgMzIKLSNkZWZpbmUgQlhUX0dVQ19GV19NSU5PUiAwCi0jZGVmaW5lIEJYVF9HVUNfRldfUEFUQ0ggMwotI2RlZmluZSBCWFRfR1VDX0ZJUk1XQVJFX1BBVEggX19NQUtFX0dVQ19GV19QQVRIKEJYVCkKLU1PRFVMRV9GSVJNV0FSRShCWFRfR1VDX0ZJUk1XQVJFX1BBVEgpOwotCi0jZGVmaW5lIEtCTF9HVUNfRldfUFJFRklYIGtibAotI2RlZmluZSBLQkxfR1VDX0ZXX01BSk9SIDMyCi0jZGVmaW5lIEtCTF9HVUNfRldfTUlOT1IgMAotI2RlZmluZSBLQkxfR1VDX0ZXX1BBVENIIDMKLSNkZWZpbmUgS0JMX0dVQ19GSVJNV0FSRV9QQVRIIF9fTUFLRV9HVUNfRldfUEFUSChLQkwpCi1NT0RVTEVfRklSTVdBUkUoS0JMX0dVQ19GSVJNV0FSRV9QQVRIKTsKLQotI2RlZmluZSBHTEtfR1VDX0ZXX1BSRUZJWCBnbGsKLSNkZWZpbmUgR0xLX0dVQ19GV19NQUpPUiAzMgotI2RlZmluZSBHTEtfR1VDX0ZXX01JTk9SIDAKLSNkZWZpbmUgR0xLX0dVQ19GV19QQVRDSCAzCi0jZGVmaW5lIEdMS19HVUNfRklSTVdBUkVfUEFUSCBfX01BS0VfR1VDX0ZXX1BBVEgoR0xLKQotTU9EVUxFX0ZJUk1XQVJFKEdMS19HVUNfRklSTVdBUkVfUEFUSCk7Ci0KLSNkZWZpbmUgSUNMX0dVQ19GV19QUkVGSVggaWNsCi0jZGVmaW5lIElDTF9HVUNfRldfTUFKT1IgMzIKLSNkZWZpbmUgSUNMX0dVQ19GV19NSU5PUiAwCi0jZGVmaW5lIElDTF9HVUNfRldfUEFUQ0ggMwotI2RlZmluZSBJQ0xfR1VDX0ZJUk1XQVJFX1BBVEggX19NQUtFX0dVQ19GV19QQVRIKElDTCkKLU1PRFVMRV9GSVJNV0FSRShJQ0xfR1VDX0ZJUk1XQVJFX1BBVEgpOwotCi1zdGF0aWMgdm9pZCBndWNfZndfc2VsZWN0KHN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3KQotewotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGNvbnRhaW5lcl9vZihndWNfZncsIHN0cnVjdCBpbnRlbF9ndWMsIGZ3KTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd1Y190b19pOTE1KGd1Yyk7Ci0KLQlHRU1fQlVHX09OKGd1Y19mdy0+dHlwZSAhPSBJTlRFTF9VQ19GV19UWVBFX0dVQyk7Ci0KLQlpZiAoIUhBU19HVUMoaTkxNSkpCi0JCXJldHVybjsKLQotCWlmIChpOTE1X21vZHBhcmFtcy5ndWNfZmlybXdhcmVfcGF0aCkgewotCQlndWNfZnctPnBhdGggPSBpOTE1X21vZHBhcmFtcy5ndWNfZmlybXdhcmVfcGF0aDsKLQkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gMDsKLQkJZ3VjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gMDsKLQl9IGVsc2UgaWYgKElTX0lDRUxBS0UoaTkxNSkpIHsKLQkJZ3VjX2Z3LT5wYXRoID0gSUNMX0dVQ19GSVJNV0FSRV9QQVRIOwotCQlndWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBJQ0xfR1VDX0ZXX01BSk9SOwotCQlndWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSBJQ0xfR1VDX0ZXX01JTk9SOwotCX0gZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShpOTE1KSkgewotCQlndWNfZnctPnBhdGggPSBHTEtfR1VDX0ZJUk1XQVJFX1BBVEg7Ci0JCWd1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCA9IEdMS19HVUNfRldfTUFKT1I7Ci0JCWd1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCA9IEdMS19HVUNfRldfTUlOT1I7Ci0JfSBlbHNlIGlmIChJU19LQUJZTEFLRShpOTE1KSB8fCBJU19DT0ZGRUVMQUtFKGk5MTUpKSB7Ci0JCWd1Y19mdy0+cGF0aCA9IEtCTF9HVUNfRklSTVdBUkVfUEFUSDsKLQkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gS0JMX0dVQ19GV19NQUpPUjsKLQkJZ3VjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gS0JMX0dVQ19GV19NSU5PUjsKLQl9IGVsc2UgaWYgKElTX0JST1hUT04oaTkxNSkpIHsKLQkJZ3VjX2Z3LT5wYXRoID0gQlhUX0dVQ19GSVJNV0FSRV9QQVRIOwotCQlndWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBCWFRfR1VDX0ZXX01BSk9SOwotCQlndWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSBCWFRfR1VDX0ZXX01JTk9SOwotCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShpOTE1KSkgewotCQlndWNfZnctPnBhdGggPSBTS0xfR1VDX0ZJUk1XQVJFX1BBVEg7Ci0JCWd1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCA9IFNLTF9HVUNfRldfTUFKT1I7Ci0JCWd1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCA9IFNLTF9HVUNfRldfTUlOT1I7Ci0JfQotfQotCi0vKioKLSAqIGludGVsX2d1Y19md19pbml0X2Vhcmx5KCkgLSBpbml0aWFsaXplcyBHdUMgZmlybXdhcmUgc3RydWN0Ci0gKiBAZ3VjOiBpbnRlbF9ndWMgc3RydWN0Ci0gKgotICogT24gcGxhdGZvcm1zIHdpdGggR3VDIHNlbGVjdHMgZmlybXdhcmUgZm9yIHVwbG9hZGluZwotICovCi12b2lkIGludGVsX2d1Y19md19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZndWMtPmZ3OwotCi0JaW50ZWxfdWNfZndfaW5pdF9lYXJseShndWNfZncsIElOVEVMX1VDX0ZXX1RZUEVfR1VDKTsKLQlndWNfZndfc2VsZWN0KGd1Y19mdyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19wcmVwYXJlX3hmZXIoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0KLQkvKiBNdXN0IHByb2dyYW0gdGhpcyByZWdpc3RlciBiZWZvcmUgbG9hZGluZyB0aGUgdWNvZGUgd2l0aCBETUEgKi8KLQlJOTE1X1dSSVRFKEdVQ19TSElNX0NPTlRST0wsIEdVQ19ESVNBQkxFX1NSQU1fSU5JVF9UT19aRVJPRVMgfAotCQkJCSAgICAgR1VDX0VOQUJMRV9SRUFEX0NBQ0hFX0xPR0lDIHwKLQkJCQkgICAgIEdVQ19FTkFCTEVfTUlBX0NBQ0hJTkcgfAotCQkJCSAgICAgR1VDX0VOQUJMRV9SRUFEX0NBQ0hFX0ZPUl9TUkFNX0RBVEEgfAotCQkJCSAgICAgR1VDX0VOQUJMRV9SRUFEX0NBQ0hFX0ZPUl9XT1BDTV9EQVRBIHwKLQkJCQkgICAgIEdVQ19FTkFCTEVfTUlBX0NMT0NLX0dBVElORyk7Ci0KLQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCi0JCUk5MTVfV1JJVEUoR0VOOUxQX0dUX1BNX0NPTkZJRywgR1RfRE9PUkJFTExfRU5BQkxFKTsKLQllbHNlCi0JCUk5MTVfV1JJVEUoR0VOOV9HVF9QTV9DT05GSUcsIEdUX0RPT1JCRUxMX0VOQUJMRSk7Ci0KLQlpZiAoSVNfR0VOKGRldl9wcml2LCA5KSkgewotCQkvKiBET1AgQ2xvY2sgR2F0aW5nIEVuYWJsZSBmb3IgR3VDIGNsb2NrcyAqLwotCQlJOTE1X1dSSVRFKEdFTjdfTUlTQ0NQQ1RMLCAoR0VOOF9ET1BfQ0xPQ0tfR0FURV9HVUNfRU5BQkxFIHwKLQkJCQkJICAgIEk5MTVfUkVBRChHRU43X01JU0NDUENUTCkpKTsKLQotCQkvKiBhbGxvd3MgZm9yIDV1cyAoaW4gMTBucyB1bml0cykgYmVmb3JlIEdUIGNhbiBnbyB0byBSQzYgKi8KLQkJSTkxNV9XUklURShHVUNfQVJBVF9DNkRJUywgMHgxRkYpOwotCX0KLX0KLQotLyogQ29weSBSU0Egc2lnbmF0dXJlIGZyb20gdGhlIGZ3IGltYWdlIHRvIEhXIGZvciB2ZXJpZmljYXRpb24gKi8KLXN0YXRpYyB2b2lkIGd1Y194ZmVyX3JzYShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQlzdHJ1Y3QgaW50ZWxfdWNfZncgKmZ3ID0gJmd1Yy0+Znc7Ci0Jc3RydWN0IHNnX3RhYmxlICpwYWdlcyA9IGZ3LT5vYmotPm1tLnBhZ2VzOwotCXUzMiByc2FbVU9TX1JTQV9TQ1JBVENIX0NPVU5UXTsKLQlpbnQgaTsKLQotCXNnX3Bjb3B5X3RvX2J1ZmZlcihwYWdlcy0+c2dsLCBwYWdlcy0+bmVudHMsCi0JCQkgICByc2EsIHNpemVvZihyc2EpLCBmdy0+cnNhX29mZnNldCk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgVU9TX1JTQV9TQ1JBVENIX0NPVU5UOyBpKyspCi0JCUk5MTVfV1JJVEUoVU9TX1JTQV9TQ1JBVENIKGkpLCByc2FbaV0pOwotfQotCi1zdGF0aWMgYm9vbCBndWNfeGZlcl9jb21wbGV0ZWQoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgKnN0YXR1cykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwotCi0JLyogRGlkIHdlIGNvbXBsZXRlIHRoZSB4ZmVyPyAqLwotCSpzdGF0dXMgPSBJOTE1X1JFQUQoRE1BX0NUUkwpOwotCXJldHVybiAhKCpzdGF0dXMgJiBTVEFSVF9ETUEpOwotfQotCi0vKgotICogUmVhZCB0aGUgR3VDIHN0YXR1cyByZWdpc3RlciAoR1VDX1NUQVRVUykgYW5kIHN0b3JlIGl0IGluIHRoZQotICogc3BlY2lmaWVkIGxvY2F0aW9uOyB0aGVuIHJldHVybiBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyCi0gKiB0aGUgdmFsdWUgbWF0Y2hlcyBlaXRoZXIgb2YgdHdvIHZhbHVlcyByZXByZXNlbnRpbmcgY29tcGxldGlvbgotICogb2YgdGhlIEd1QyBib290IHByb2Nlc3MuCi0gKgotICogVGhpcyBpcyB1c2VkIGZvciBwb2xsaW5nIHRoZSBHdUMgc3RhdHVzIGluIGEgd2FpdF9mb3IoKQotICogbG9vcCBiZWxvdy4KLSAqLwotc3RhdGljIGlubGluZSBib29sIGd1Y19yZWFkeShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHUzMiAqc3RhdHVzKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0JdTMyIHZhbCA9IEk5MTVfUkVBRChHVUNfU1RBVFVTKTsKLQl1MzIgdWtfdmFsID0gdmFsICYgR1NfVUtFUk5FTF9NQVNLOwotCi0JKnN0YXR1cyA9IHZhbDsKLQlyZXR1cm4gKHVrX3ZhbCA9PSBHU19VS0VSTkVMX1JFQURZKSB8fAotCQkoKHZhbCAmIEdTX01JQV9DT1JFX1NUQVRFKSAmJiAodWtfdmFsID09IEdTX1VLRVJORUxfTEFQSUNfRE9ORSkpOwotfQotCi1zdGF0aWMgaW50IGd1Y193YWl0X3Vjb2RlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQl1MzIgc3RhdHVzOwotCWludCByZXQ7Ci0KLQkvKgotCSAqIFdhaXQgZm9yIHRoZSBHdUMgdG8gc3RhcnQgdXAuCi0JICogTkI6IERvY3MgcmVjb21tZW5kIG5vdCB1c2luZyB0aGUgaW50ZXJydXB0IGZvciBjb21wbGV0aW9uLgotCSAqIE1lYXN1cmVtZW50cyBpbmRpY2F0ZSB0aGlzIHNob3VsZCB0YWtlIG5vIG1vcmUgdGhhbiAyMG1zLCBzbyBhCi0JICogdGltZW91dCBoZXJlIGluZGljYXRlcyB0aGF0IHRoZSBHdUMgaGFzIGZhaWxlZCBhbmQgaXMgdW51c2FibGUuCi0JICogKEhpZ2hlciBsZXZlbHMgb2YgdGhlIGRyaXZlciBtYXkgZGVjaWRlIHRvIHJlc2V0IHRoZSBHdUMgYW5kCi0JICogYXR0ZW1wdCB0aGUgdWNvZGUgbG9hZCBhZ2FpbiBpZiB0aGlzIGhhcHBlbnMuKQotCSAqLwotCXJldCA9IHdhaXRfZm9yKGd1Y19yZWFkeShndWMsICZzdGF0dXMpLCAxMDApOwotCURSTV9ERUJVR19EUklWRVIoIkd1QyBzdGF0dXMgJSN4XG4iLCBzdGF0dXMpOwotCi0JaWYgKChzdGF0dXMgJiBHU19CT09UUk9NX01BU0spID09IEdTX0JPT1RST01fUlNBX0ZBSUxFRCkgewotCQlEUk1fRVJST1IoIkd1QyBmaXJtd2FyZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGZhaWxlZFxuIik7Ci0JCXJldCA9IC1FTk9FWEVDOwotCX0KLQotCWlmIChyZXQgPT0gMCAmJiAhZ3VjX3hmZXJfY29tcGxldGVkKGd1YywgJnN0YXR1cykpIHsKLQkJRFJNX0VSUk9SKCJHdUMgaXMgcmVhZHksIGJ1dCB0aGUgeGZlciAlMDh4IGlzIGluY29tcGxldGVcbiIsCi0JCQkgIHN0YXR1cyk7Ci0JCXJldCA9IC1FTlhJTzsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCi0vKgotICogVHJhbnNmZXIgdGhlIGZpcm13YXJlIGltYWdlIHRvIFJBTSBmb3IgZXhlY3V0aW9uIGJ5IHRoZSBtaWNyb2NvbnRyb2xsZXIuCi0gKgotICogQXJjaGl0ZWN0dXJhbGx5LCB0aGUgRE1BIGVuZ2luZSBpcyBiaWRpcmVjdGlvbmFsLCBhbmQgY2FuIHBvdGVudGlhbGx5IGV2ZW4KLSAqIHRyYW5zZmVyIGJldHdlZW4gR1RUIGxvY2F0aW9ucy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGxlZnQgb3V0IG9mIHRoZSBBUEkKLSAqIGZvciBub3cgYXMgdGhlcmUgaXMgbm8gbmVlZCBmb3IgaXQuCi0gKi8KLXN0YXRpYyBpbnQgZ3VjX3hmZXJfdWNvZGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0Jc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZ3VjLT5mdzsKLQl1bnNpZ25lZCBsb25nIG9mZnNldDsKLQotCS8qCi0JICogVGhlIGhlYWRlciBwbHVzIHVDb2RlIHdpbGwgYmUgY29waWVkIHRvIFdPUENNIHZpYSBETUEsIGV4Y2x1ZGluZyBhbnkKLQkgKiBvdGhlciBjb21wb25lbnRzCi0JICovCi0JSTkxNV9XUklURShETUFfQ09QWV9TSVpFLCBndWNfZnctPmhlYWRlcl9zaXplICsgZ3VjX2Z3LT51Y29kZV9zaXplKTsKLQotCS8qIFNldCB0aGUgc291cmNlIGFkZHJlc3MgZm9yIHRoZSBuZXcgYmxvYiAqLwotCW9mZnNldCA9IGludGVsX3VjX2Z3X2dndHRfb2Zmc2V0KGd1Y19mdykgKyBndWNfZnctPmhlYWRlcl9vZmZzZXQ7Ci0JSTkxNV9XUklURShETUFfQUREUl8wX0xPVywgbG93ZXJfMzJfYml0cyhvZmZzZXQpKTsKLQlJOTE1X1dSSVRFKERNQV9BRERSXzBfSElHSCwgdXBwZXJfMzJfYml0cyhvZmZzZXQpICYgMHhGRkZGKTsKLQotCS8qCi0JICogU2V0IHRoZSBETUEgZGVzdGluYXRpb24uIEN1cnJlbnQgdUNvZGUgZXhwZWN0cyB0aGUgY29kZSB0byBiZQotCSAqIGxvYWRlZCBhdCA4azsgbG9jYXRpb25zIGJlbG93IHRoaXMgYXJlIHVzZWQgZm9yIHRoZSBzdGFjay4KLQkgKi8KLQlJOTE1X1dSSVRFKERNQV9BRERSXzFfTE9XLCAweDIwMDApOwotCUk5MTVfV1JJVEUoRE1BX0FERFJfMV9ISUdILCBETUFfQUREUkVTU19TUEFDRV9XT1BDTSk7Ci0KLQkvKiBGaW5hbGx5IHN0YXJ0IHRoZSBETUEgKi8KLQlJOTE1X1dSSVRFKERNQV9DVFJMLCBfTUFTS0VEX0JJVF9FTkFCTEUoVU9TX01PVkUgfCBTVEFSVF9ETUEpKTsKLQotCXJldHVybiBndWNfd2FpdF91Y29kZShndWMpOwotfQotLyoKLSAqIExvYWQgdGhlIEd1QyBmaXJtd2FyZSBibG9iIGludG8gdGhlIE1pbnV0ZUlBLgotICovCi1zdGF0aWMgaW50IGd1Y19md194ZmVyKHN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3KQotewotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGNvbnRhaW5lcl9vZihndWNfZncsIHN0cnVjdCBpbnRlbF9ndWMsIGZ3KTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwotCWludCByZXQ7Ci0KLQlHRU1fQlVHX09OKGd1Y19mdy0+dHlwZSAhPSBJTlRFTF9VQ19GV19UWVBFX0dVQyk7Ci0KLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7Ci0KLQlndWNfcHJlcGFyZV94ZmVyKGd1Yyk7Ci0KLQkvKgotCSAqIE5vdGUgdGhhdCBHdUMgbmVlZHMgdGhlIENTUyBoZWFkZXIgcGx1cyB1S2VybmVsIGNvZGUgdG8gYmUgY29waWVkCi0JICogYnkgdGhlIERNQSBlbmdpbmUgaW4gb25lIG9wZXJhdGlvbiwgd2hlcmVhcyB0aGUgUlNBIHNpZ25hdHVyZSBpcwotCSAqIGxvYWRlZCB2aWEgTU1JTy4KLQkgKi8KLQlndWNfeGZlcl9yc2EoZ3VjKTsKLQotCXJldCA9IGd1Y194ZmVyX3Vjb2RlKGd1Yyk7Ci0KLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi0vKioKLSAqIGludGVsX2d1Y19md191cGxvYWQoKSAtIGxvYWQgR3VDIHVDb2RlIHRvIGRldmljZQotICogQGd1YzogaW50ZWxfZ3VjIHN0cnVjdHVyZQotICoKLSAqIENhbGxlZCBmcm9tIGludGVsX3VjX2luaXRfaHcoKSBkdXJpbmcgZHJpdmVyIGxvYWQsIHJlc3VtZSBmcm9tIHNsZWVwIGFuZAotICogYWZ0ZXIgYSBHUFUgcmVzZXQuCi0gKgotICogVGhlIGZpcm13YXJlIGltYWdlIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBmZXRjaGVkIGludG8gbWVtb3J5LCBzbyBvbmx5Ci0gKiBjaGVjayB0aGF0IGZldGNoIHN1Y2NlZWRlZCwgYW5kIHRoZW4gdHJhbnNmZXIgdGhlIGltYWdlIHRvIHRoZSBoL3cuCi0gKgotICogUmV0dXJuOglub24temVybyBjb2RlIG9uIGVycm9yCi0gKi8KLWludCBpbnRlbF9ndWNfZndfdXBsb2FkKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlyZXR1cm4gaW50ZWxfdWNfZndfdXBsb2FkKCZndWMtPmZ3LCBndWNfZndfeGZlcik7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZncuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWM1ZDNkLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE3IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwotICogSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqLwotCi0jaWZuZGVmIF9JTlRFTF9HVUNfRldfSF8KLSNkZWZpbmUgX0lOVEVMX0dVQ19GV19IXwotCi1zdHJ1Y3QgaW50ZWxfZ3VjOwotCi12b2lkIGludGVsX2d1Y19md19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci1pbnQgaW50ZWxfZ3VjX2Z3X3VwbG9hZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTVmM2JjLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwotICogSU4gVEhFIFNPRlRXQVJFLgotICovCi0jaWZuZGVmIF9JTlRFTF9HVUNfRldJRl9ICi0jZGVmaW5lIF9JTlRFTF9HVUNfRldJRl9ICi0KLSNkZWZpbmUgR1VDX0NMSUVOVF9QUklPUklUWV9LTURfSElHSAkwCi0jZGVmaW5lIEdVQ19DTElFTlRfUFJJT1JJVFlfSElHSAkxCi0jZGVmaW5lIEdVQ19DTElFTlRfUFJJT1JJVFlfS01EX05PUk1BTAkyCi0jZGVmaW5lIEdVQ19DTElFTlRfUFJJT1JJVFlfTk9STUFMCTMKLSNkZWZpbmUgR1VDX0NMSUVOVF9QUklPUklUWV9OVU0JCTQKLQotI2RlZmluZSBHVUNfTUFYX1NUQUdFX0RFU0NSSVBUT1JTCTEwMjQKLSNkZWZpbmUJR1VDX0lOVkFMSURfU1RBR0VfSUQJCUdVQ19NQVhfU1RBR0VfREVTQ1JJUFRPUlMKLQotI2RlZmluZSBHVUNfUkVOREVSX0VOR0lORQkJMAotI2RlZmluZSBHVUNfVklERU9fRU5HSU5FCQkxCi0jZGVmaW5lIEdVQ19CTElUVEVSX0VOR0lORQkJMgotI2RlZmluZSBHVUNfVklERU9FTkhBTkNFX0VOR0lORQkJMwotI2RlZmluZSBHVUNfVklERU9fRU5HSU5FMgkJNAotI2RlZmluZSBHVUNfTUFYX0VOR0lORVNfTlVNCQkoR1VDX1ZJREVPX0VOR0lORTIgKyAxKQotCi0vKgotICogWFhYOiBCZXdhcmUgdGhhdCBHZW45IGZpcm13YXJlIDMyLnggdXNlcyB3cm9uZyBkZWZpbml0aW9uIGZvcgotICogR1VDX01BWF9JTlNUQU5DRVNfUEVSX0NMQVNTICgxKSBidXQgdGhpcyBpcyBoYXJtbGVzcyBmb3IgdXMgbm93Ci0gKiBhcyB3ZSBhcmUgbm90IGVuYWJsaW5nIEd1QyBzdWJtaXNzaW9uIG1vZGUgd2hlcmUgdGhpcyB3aWxsIGJlIHVzZWQKLSAqLwotI2RlZmluZSBHVUNfTUFYX0VOR0lORV9DTEFTU0VTCQk1Ci0jZGVmaW5lIEdVQ19NQVhfSU5TVEFOQ0VTX1BFUl9DTEFTUwk0Ci0KLSNkZWZpbmUgR1VDX0RPT1JCRUxMX0lOVkFMSUQJCTI1NgotCi0jZGVmaW5lIEdVQ19EQl9TSVpFCQkJKFBBR0VfU0laRSkKLSNkZWZpbmUgR1VDX1dRX1NJWkUJCQkoUEFHRV9TSVpFICogMikKLQotLyogV29yayBxdWV1ZSBpdGVtIGhlYWRlciBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBXUV9TVEFUVVNfQUNUSVZFCQkxCi0jZGVmaW5lIFdRX1NUQVRVU19TVVNQRU5ERUQJCTIKLSNkZWZpbmUgV1FfU1RBVFVTX0NNRF9FUlJPUgkJMwotI2RlZmluZSBXUV9TVEFUVVNfRU5HSU5FX0lEX05PVF9VU0VECTQKLSNkZWZpbmUgV1FfU1RBVFVTX1NVU1BFTkRFRF9GUk9NX1JFU0VUCTUKLSNkZWZpbmUgV1FfVFlQRV9TSElGVAkJCTAKLSNkZWZpbmUgICBXUV9UWVBFX0JBVENIX0JVRgkJKDB4MSA8PCBXUV9UWVBFX1NISUZUKQotI2RlZmluZSAgIFdRX1RZUEVfUFNFVURPCQkoMHgyIDw8IFdRX1RZUEVfU0hJRlQpCi0jZGVmaW5lICAgV1FfVFlQRV9JTk9SREVSCQkoMHgzIDw8IFdRX1RZUEVfU0hJRlQpCi0jZGVmaW5lICAgV1FfVFlQRV9OT09QCQkJKDB4NCA8PCBXUV9UWVBFX1NISUZUKQotI2RlZmluZSBXUV9UQVJHRVRfU0hJRlQJCQkxMAotI2RlZmluZSBXUV9MRU5fU0hJRlQJCQkxNgotI2RlZmluZSBXUV9OT19XQ0ZMVVNIX1dBSVQJCSgxIDw8IDI3KQotI2RlZmluZSBXUV9QUkVTRU5UX1dPUktMT0FECQkoMSA8PCAyOCkKLQotI2RlZmluZSBXUV9SSU5HX1RBSUxfU0hJRlQJCTIwCi0jZGVmaW5lIFdRX1JJTkdfVEFJTF9NQVgJCTB4N0ZGCS8qIDJeMTEgUVdvcmRzICovCi0jZGVmaW5lIFdRX1JJTkdfVEFJTF9NQVNLCQkoV1FfUklOR19UQUlMX01BWCA8PCBXUV9SSU5HX1RBSUxfU0hJRlQpCi0KLSNkZWZpbmUgR1VDX1NUQUdFX0RFU0NfQVRUUl9BQ1RJVkUJQklUKDApCi0jZGVmaW5lIEdVQ19TVEFHRV9ERVNDX0FUVFJfUEVORElOR19EQglCSVQoMSkKLSNkZWZpbmUgR1VDX1NUQUdFX0RFU0NfQVRUUl9LRVJORUwJQklUKDIpCi0jZGVmaW5lIEdVQ19TVEFHRV9ERVNDX0FUVFJfUFJFRU1QVAlCSVQoMykKLSNkZWZpbmUgR1VDX1NUQUdFX0RFU0NfQVRUUl9SRVNFVAlCSVQoNCkKLSNkZWZpbmUgR1VDX1NUQUdFX0RFU0NfQVRUUl9XUUxPQ0tFRAlCSVQoNSkKLSNkZWZpbmUgR1VDX1NUQUdFX0RFU0NfQVRUUl9QQ0gJCUJJVCg2KQotI2RlZmluZSBHVUNfU1RBR0VfREVTQ19BVFRSX1RFUk1JTkFURUQJQklUKDcpCi0KLS8qIE5ldyBHdUMgY29udHJvbCBkYXRhICovCi0jZGVmaW5lIEdVQ19DVExfQ1RYSU5GTwkJCTAKLSNkZWZpbmUgICBHVUNfQ1RMX0NUWE5VTV9JTjE2X1NISUZUCTAKLSNkZWZpbmUgICBHVUNfQ1RMX0JBU0VfQUREUl9TSElGVAkxMgotCi0jZGVmaW5lIEdVQ19DVExfTE9HX1BBUkFNUwkJMQotI2RlZmluZSAgIEdVQ19MT0dfVkFMSUQJCQkoMSA8PCAwKQotI2RlZmluZSAgIEdVQ19MT0dfTk9USUZZX09OX0hBTEZfRlVMTAkoMSA8PCAxKQotI2RlZmluZSAgIEdVQ19MT0dfQUxMT0NfSU5fTUVHQUJZVEUJKDEgPDwgMykKLSNkZWZpbmUgICBHVUNfTE9HX0NSQVNIX1NISUZUCQk0Ci0jZGVmaW5lICAgR1VDX0xPR19DUkFTSF9NQVNLCQkoMHgzIDw8IEdVQ19MT0dfQ1JBU0hfU0hJRlQpCi0jZGVmaW5lICAgR1VDX0xPR19EUENfU0hJRlQJCTYKLSNkZWZpbmUgICBHVUNfTE9HX0RQQ19NQVNLCSAgICAgICAgKDB4NyA8PCBHVUNfTE9HX0RQQ19TSElGVCkKLSNkZWZpbmUgICBHVUNfTE9HX0lTUl9TSElGVAkJOQotI2RlZmluZSAgIEdVQ19MT0dfSVNSX01BU0sJICAgICAgICAoMHg3IDw8IEdVQ19MT0dfSVNSX1NISUZUKQotI2RlZmluZSAgIEdVQ19MT0dfQlVGX0FERFJfU0hJRlQJMTIKLQotI2RlZmluZSBHVUNfQ1RMX1dBCQkJMgotI2RlZmluZSBHVUNfQ1RMX0ZFQVRVUkUJCQkzCi0jZGVmaW5lICAgR1VDX0NUTF9ESVNBQkxFX1NDSEVEVUxFUgkoMSA8PCAxNCkKLQotI2RlZmluZSBHVUNfQ1RMX0RFQlVHCQkJNAotI2RlZmluZSAgIEdVQ19MT0dfVkVSQk9TSVRZX1NISUZUCTAKLSNkZWZpbmUgICBHVUNfTE9HX1ZFUkJPU0lUWV9MT1cJCSgwIDw8IEdVQ19MT0dfVkVSQk9TSVRZX1NISUZUKQotI2RlZmluZSAgIEdVQ19MT0dfVkVSQk9TSVRZX01FRAkJKDEgPDwgR1VDX0xPR19WRVJCT1NJVFlfU0hJRlQpCi0jZGVmaW5lICAgR1VDX0xPR19WRVJCT1NJVFlfSElHSAkoMiA8PCBHVUNfTE9HX1ZFUkJPU0lUWV9TSElGVCkKLSNkZWZpbmUgICBHVUNfTE9HX1ZFUkJPU0lUWV9VTFRSQQkoMyA8PCBHVUNfTE9HX1ZFUkJPU0lUWV9TSElGVCkKLS8qIFZlcmJvc2l0eSByYW5nZS1jaGVjayBsaW1pdHMsIHdpdGhvdXQgdGhlIHNoaWZ0ICovCi0jZGVmaW5lCSAgR1VDX0xPR19WRVJCT1NJVFlfTUlOCQkwCi0jZGVmaW5lCSAgR1VDX0xPR19WRVJCT1NJVFlfTUFYCQkzCi0jZGVmaW5lCSAgR1VDX0xPR19WRVJCT1NJVFlfTUFTSwkweDAwMDAwMDBmCi0jZGVmaW5lCSAgR1VDX0xPR19ERVNUSU5BVElPTl9NQVNLCSgzIDw8IDQpCi0jZGVmaW5lICAgR1VDX0xPR19ESVNBQkxFRAkJKDEgPDwgNikKLSNkZWZpbmUgICBHVUNfUFJPRklMRV9FTkFCTEVECQkoMSA8PCA3KQotCi0jZGVmaW5lIEdVQ19DVExfQURTCQkJNQotI2RlZmluZSAgIEdVQ19BRFNfQUREUl9TSElGVAkJMQotI2RlZmluZSAgIEdVQ19BRFNfQUREUl9NQVNLCQkoMHhGRkZGRiA8PCBHVUNfQURTX0FERFJfU0hJRlQpCi0KLSNkZWZpbmUgR1VDX0NUTF9NQVhfRFdPUkRTCQkoU09GVF9TQ1JBVENIX0NPVU5UIC0gMikgLyogWzEuLjE0XSAqLwotCi0vKioKLSAqIERPQzogR3VDIEZpcm13YXJlIExheW91dAotICoKLSAqIFRoZSBHdUMgZmlybXdhcmUgbGF5b3V0IGxvb2tzIGxpa2UgdGhpczoKLSAqCi0gKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gKiAgICAgfCAgICAgICAgIHVjX2Nzc19oZWFkZXIgICAgICAgICB8Ci0gKiAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gKiAgICAgfCBjb250YWlucyBtYWpvci9taW5vciB2ZXJzaW9uICB8Ci0gKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gKiAgICAgfCAgICAgICAgICAgICB1Q29kZSAgICAgICAgICAgICB8Ci0gKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gKiAgICAgfCAgICAgICAgIFJTQSBzaWduYXR1cmUgICAgICAgICB8Ci0gKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gKiAgICAgfCAgICAgICAgICBtb2R1bHVzIGtleSAgICAgICAgICB8Ci0gKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gKiAgICAgfCAgICAgICAgICBleHBvbmVudCB2YWwgICAgICAgICB8Ci0gKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gKgotICogVGhlIGZpcm13YXJlIG1heSBvciBtYXkgbm90IGhhdmUgbW9kdWx1cyBrZXkgYW5kIGV4cG9uZW50IGRhdGEuIFRoZSBoZWFkZXIsCi0gKiB1Q29kZSBhbmQgUlNBIHNpZ25hdHVyZSBhcmUgbXVzdC1oYXZlIGNvbXBvbmVudHMgdGhhdCB3aWxsIGJlIHVzZWQgYnkgZHJpdmVyLgotICogTGVuZ3RoIG9mIGVhY2ggY29tcG9uZW50cywgd2hpY2ggaXMgYWxsIGluIGR3b3JkcywgY2FuIGJlIGZvdW5kIGluIGhlYWRlci4KLSAqIEluIHRoZSBjYXNlIHRoYXQgbW9kdWx1cyBhbmQgZXhwb25lbnQgYXJlIG5vdCBwcmVzZW50IGluIGZ3LCBhLmsuYSB0cnVuY2F0ZWQKLSAqIGltYWdlLCB0aGUgbGVuZ3RoIHZhbHVlIHN0aWxsIGFwcGVhcnMgaW4gaGVhZGVyLgotICoKLSAqIERyaXZlciB3aWxsIGRvIHNvbWUgYmFzaWMgZncgc2l6ZSB2YWxpZGF0aW9uIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcnVsZXM6Ci0gKgotICogMS4gSGVhZGVyLCB1Q29kZSBhbmQgUlNBIGFyZSBtdXN0LWhhdmUgY29tcG9uZW50cy4KLSAqIDIuIEFsbCBmaXJtd2FyZSBjb21wb25lbnRzLCBpZiB0aGV5IHByZXNlbnQsIGFyZSBpbiB0aGUgc2VxdWVuY2UgaWxsdXN0cmF0ZWQKLSAqICAgIGluIHRoZSBsYXlvdXQgdGFibGUgYWJvdmUuCi0gKiAzLiBMZW5ndGggaW5mbyBvZiBlYWNoIGNvbXBvbmVudCBjYW4gYmUgZm91bmQgaW4gaGVhZGVyLCBpbiBkd29yZHMuCi0gKiA0LiBNb2R1bHVzIGFuZCBleHBvbmVudCBrZXkgYXJlIG5vdCByZXF1aXJlZCBieSBkcml2ZXIuIFRoZXkgbWF5IG5vdCBhcHBlYXIKLSAqICAgIGluIGZ3LiBTbyBkcml2ZXIgd2lsbCBsb2FkIGEgdHJ1bmNhdGVkIGZpcm13YXJlIGluIHRoaXMgY2FzZS4KLSAqCi0gKiBIdUMgZmlybXdhcmUgbGF5b3V0IGlzIHNhbWUgYXMgR3VDIGZpcm13YXJlLgotICogT25seSBIdUMgdmVyc2lvbiBpbmZvcm1hdGlvbiBpcyBzYXZlZCBpbiBhIGRpZmZlcmVudCB3YXkuCi0gKi8KLQotc3RydWN0IHVjX2Nzc19oZWFkZXIgewotCXUzMiBtb2R1bGVfdHlwZTsKLQkvKiBoZWFkZXJfc2l6ZSBpbmNsdWRlcyBhbGwgbm9uLXVDb2RlIGJpdHMsIGluY2x1ZGluZyBjc3NfaGVhZGVyLCByc2EKLQkgKiBrZXksIG1vZHVsdXMga2V5IGFuZCBleHBvbmVudCBkYXRhLiAqLwotCXUzMiBoZWFkZXJfc2l6ZV9kdzsKLQl1MzIgaGVhZGVyX3ZlcnNpb247Ci0JdTMyIG1vZHVsZV9pZDsKLQl1MzIgbW9kdWxlX3ZlbmRvcjsKLQl1MzIgZGF0ZTsKLSNkZWZpbmUgQ1NTX0RBVEVfREFZCQkJKDB4RkYgPDwgMCkKLSNkZWZpbmUgQ1NTX0RBVEVfTU9OVEgJCQkoMHhGRiA8PCA4KQotI2RlZmluZSBDU1NfREFURV9ZRUFSCQkJKDB4RkZGRiA8PCAxNikKLQl1MzIgc2l6ZV9kdzsgLyogdUNvZGUgcGx1cyBoZWFkZXJfc2l6ZV9kdyAqLwotCXUzMiBrZXlfc2l6ZV9kdzsKLQl1MzIgbW9kdWx1c19zaXplX2R3OwotCXUzMiBleHBvbmVudF9zaXplX2R3OwotCXUzMiB0aW1lOwotI2RlZmluZSBDU1NfVElNRV9IT1VSCQkJKDB4RkYgPDwgMCkKLSNkZWZpbmUgQ1NTX0RBVEVfTUlOCQkJKDB4RkYgPDwgOCkKLSNkZWZpbmUgQ1NTX0RBVEVfU0VDCQkJKDB4RkZGRiA8PCAxNikKLQljaGFyIHVzZXJuYW1lWzhdOwotCWNoYXIgYnVpbGRudW1iZXJbMTJdOwotCXUzMiBzd192ZXJzaW9uOwotI2RlZmluZSBDU1NfU1dfVkVSU0lPTl9HVUNfTUFKT1IJKDB4RkYgPDwgMTYpCi0jZGVmaW5lIENTU19TV19WRVJTSU9OX0dVQ19NSU5PUgkoMHhGRiA8PCA4KQotI2RlZmluZSBDU1NfU1dfVkVSU0lPTl9HVUNfUEFUQ0gJKDB4RkYgPDwgMCkKLSNkZWZpbmUgQ1NTX1NXX1ZFUlNJT05fSFVDX01BSk9SCSgweEZGRkYgPDwgMTYpCi0jZGVmaW5lIENTU19TV19WRVJTSU9OX0hVQ19NSU5PUgkoMHhGRkZGIDw8IDApCi0JdTMyIHJlc2VydmVkWzE0XTsKLQl1MzIgaGVhZGVyX2luZm87Ci19IF9fcGFja2VkOwotCi0vKiBXb3JrIGl0ZW0gZm9yIHN1Ym1pdHRpbmcgd29ya2xvYWRzIGludG8gd29yayBxdWV1ZSBvZiBHdUMuICovCi1zdHJ1Y3QgZ3VjX3dxX2l0ZW0gewotCXUzMiBoZWFkZXI7Ci0JdTMyIGNvbnRleHRfZGVzYzsKLQl1MzIgc3VibWl0X2VsZW1lbnRfaW5mbzsKLQl1MzIgZmVuY2VfaWQ7Ci19IF9fcGFja2VkOwotCi1zdHJ1Y3QgZ3VjX3Byb2Nlc3NfZGVzYyB7Ci0JdTMyIHN0YWdlX2lkOwotCXU2NCBkYl9iYXNlX2FkZHI7Ci0JdTMyIGhlYWQ7Ci0JdTMyIHRhaWw7Ci0JdTMyIGVycm9yX29mZnNldDsKLQl1NjQgd3FfYmFzZV9hZGRyOwotCXUzMiB3cV9zaXplX2J5dGVzOwotCXUzMiB3cV9zdGF0dXM7Ci0JdTMyIGVuZ2luZV9wcmVzZW5jZTsKLQl1MzIgcHJpb3JpdHk7Ci0JdTMyIHJlc2VydmVkWzMwXTsKLX0gX19wYWNrZWQ7Ci0KLS8qIGVuZ2luZSBpZCBhbmQgY29udGV4dCBpZCBpcyBwYWNrZWQgaW50byBndWNfZXhlY2xpc3RfY29udGV4dC5jb250ZXh0X2lkKi8KLSNkZWZpbmUgR1VDX0VMQ19DVFhJRF9PRkZTRVQJCTAKLSNkZWZpbmUgR1VDX0VMQ19FTkdJTkVfT0ZGU0VUCQkyOQotCi0vKiBUaGUgZXhlY2xpc3QgY29udGV4dCBpbmNsdWRpbmcgc29mdHdhcmUgYW5kIEhXIGluZm9ybWF0aW9uICovCi1zdHJ1Y3QgZ3VjX2V4ZWNsaXN0X2NvbnRleHQgewotCXUzMiBjb250ZXh0X2Rlc2M7Ci0JdTMyIGNvbnRleHRfaWQ7Ci0JdTMyIHJpbmdfc3RhdHVzOwotCXUzMiByaW5nX2xyY2E7Ci0JdTMyIHJpbmdfYmVnaW47Ci0JdTMyIHJpbmdfZW5kOwotCXUzMiByaW5nX25leHRfZnJlZV9sb2NhdGlvbjsKLQl1MzIgcmluZ19jdXJyZW50X3RhaWxfcG9pbnRlcl92YWx1ZTsKLQl1OCBlbmdpbmVfc3RhdGVfc3VibWl0X3ZhbHVlOwotCXU4IGVuZ2luZV9zdGF0ZV93YWl0X3ZhbHVlOwotCXUxNiBwYWdlZmF1bHRfY291bnQ7Ci0JdTE2IGVuZ2luZV9zdWJtaXRfcXVldWVfY291bnQ7Ci19IF9fcGFja2VkOwotCi0vKgotICogVGhpcyBzdHJ1Y3R1cmUgZGVzY3JpYmVzIGEgc3RhZ2Ugc2V0IGFycmFuZ2VkIGZvciBhIHBhcnRpY3VsYXIgY29tbXVuaWNhdGlvbgotICogYmV0d2VlbiB1S2VybmVsIChHdUMpIGFuZCBEcml2ZXIgKEtNRCkuIFRlY2huaWNhbGx5LCB0aGlzIGlzIGtub3duIGFzIGEKLSAqICJHdUMgQ29udGV4dCBkZXNjcmlwdG9yIiBpbiB0aGUgc3BlY3MsIGJ1dCB3ZSB1c2UgdGhlIHRlcm0gInN0YWdlIGRlc2NyaXB0b3IiCi0gKiB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBhbGwgdGhlIG90aGVyIHRoaW5ncyBhbHJlYWR5IG5hbWVkICJjb250ZXh0IiBpbiB0aGUKLSAqIGRyaXZlci4gQSBzdGF0aWMgcG9vbCBvZiB0aGVzZSBkZXNjcmlwdG9ycyBhcmUgc3RvcmVkIGluc2lkZSBhIEdFTSBvYmplY3QKLSAqIChzdGFnZV9kZXNjX3Bvb2wpIHdoaWNoIGlzIGhlbGQgZm9yIHRoZSBlbnRpcmUgbGlmZXRpbWUgb2Ygb3VyIGludGVyYWN0aW9uCi0gKiB3aXRoIHRoZSBHdUMsIGJlaW5nIGFsbG9jYXRlZCBiZWZvcmUgdGhlIEd1QyBpcyBsb2FkZWQgd2l0aCBpdHMgZmlybXdhcmUuCi0gKi8KLXN0cnVjdCBndWNfc3RhZ2VfZGVzYyB7Ci0JdTMyIHNjaGVkX2NvbW1vbl9hcmVhOwotCXUzMiBzdGFnZV9pZDsKLQl1MzIgcGFzX2lkOwotCXU4IGVuZ2luZXNfdXNlZDsKLQl1NjQgZGJfdHJpZ2dlcl9jcHU7Ci0JdTMyIGRiX3RyaWdnZXJfdWs7Ci0JdTY0IGRiX3RyaWdnZXJfcGh5OwotCXUxNiBkYl9pZDsKLQotCXN0cnVjdCBndWNfZXhlY2xpc3RfY29udGV4dCBscmNbR1VDX01BWF9FTkdJTkVTX05VTV07Ci0KLQl1OCBhdHRyaWJ1dGU7Ci0KLQl1MzIgcHJpb3JpdHk7Ci0KLQl1MzIgd3Ffc2FtcGxlZF90YWlsX29mZnNldDsKLQl1MzIgd3FfdG90YWxfc3VibWl0X2VucXVldWVzOwotCi0JdTMyIHByb2Nlc3NfZGVzYzsKLQl1MzIgd3FfYWRkcjsKLQl1MzIgd3Ffc2l6ZTsKLQotCXUzMiBlbmdpbmVfcHJlc2VuY2U7Ci0KLQl1OCBlbmdpbmVfc3VzcGVuZGVkOwotCi0JdTggcmVzZXJ2ZWQwWzNdOwotCXU2NCByZXNlcnZlZDFbMV07Ci0KLQl1NjQgZGVzY19wcml2YXRlOwotfSBfX3BhY2tlZDsKLQotLyoqCi0gKiBET0M6IENUQiBiYXNlZCBjb21tdW5pY2F0aW9uCi0gKgotICogVGhlIENUQiAoY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyKSBjb21tdW5pY2F0aW9uIGJldHdlZW4gSG9zdCBhbmQgR3VDCi0gKiBpcyBiYXNlZCBvbiB1MzIgZGF0YSBzdHJlYW0gd3JpdHRlbiB0byB0aGUgc2hhcmVkIGJ1ZmZlci4gT25lIGJ1ZmZlciBjYW4KLSAqIGJlIHVzZWQgdG8gdHJhbnNtaXQgZGF0YSBvbmx5IGluIG9uZSBkaXJlY3Rpb24gKG9uZS1kaXJlY3Rpb25hbCBjaGFubmVsKS4KLSAqCi0gKiBDdXJyZW50IHN0YXR1cyBvZiB0aGUgZWFjaCBidWZmZXIgaXMgc3RvcmVkIGluIHRoZSBidWZmZXIgZGVzY3JpcHRvci4KLSAqIEJ1ZmZlciBkZXNjcmlwdG9yIGhvbGRzIHRhaWwgYW5kIGhlYWQgZmllbGRzIHRoYXQgcmVwcmVzZW50cyBhY3RpdmUgZGF0YQotICogc3RyZWFtLiBUaGUgdGFpbCBmaWVsZCBpcyB1cGRhdGVkIGJ5IHRoZSBkYXRhIHByb2R1Y2VyIChzZW5kZXIpLCBhbmQgaGVhZAotICogZmllbGQgaXMgdXBkYXRlZCBieSB0aGUgZGF0YSBjb25zdW1lciAocmVjZWl2ZXIpOjoKLSAqCi0gKiAgICAgICstLS0tLS0tLS0tLS0rCi0gKiAgICAgIHwgREVTQ1JJUFRPUiB8ICAgICAgICAgICs9PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT0rPT09PT09PT0rCi0gKiAgICAgICs9PT09PT09PT09PT0rICAgICAgICAgIHwgICAgICAgICAgICAgICAgIHwgTUVTU0FHRShzKSB8ICAgICAgICB8Ci0gKiAgICAgIHwgYWRkcmVzcyAgICB8LS0tLS0tLS0tPis9PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT0rPT09PT09PT0rCi0gKiAgICAgICstLS0tLS0tLS0tLS0rCi0gKiAgICAgIHwgaGVhZCAgICAgICB8ICAgICAgICAgIF4tLS0tLWhlYWQtLS0tLS0tLV4KLSAqICAgICAgKy0tLS0tLS0tLS0tLSsKLSAqICAgICAgfCB0YWlsICAgICAgIHwgICAgICAgICAgXi0tLS0tLS0tLXRhaWwtLS0tLS0tLS0tLS0tLS0tLV4KLSAqICAgICAgKy0tLS0tLS0tLS0tLSsKLSAqICAgICAgfCBzaXplICAgICAgIHwgICAgICAgICAgXi0tLS0tLS0tLS0tLS0tLXNpemUtLS0tLS0tLS0tLS0tLS0tLS0tLV4KLSAqICAgICAgKy0tLS0tLS0tLS0tLSsKLSAqCi0gKiBFYWNoIG1lc3NhZ2UgaW4gZGF0YSBzdHJlYW0gc3RhcnRzIHdpdGggdGhlIHNpbmdsZSB1MzIgdHJlYXRlZCBhcyBhIGhlYWRlciwKLSAqIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIHNldCBvZiB1MzIgZGF0YSB0aGF0IG1ha2VzIG1lc3NhZ2Ugc3BlY2lmaWMgcGF5bG9hZDo6Ci0gKgotICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8ICAgICAgICAgTUVTU0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgfAotICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8ICAgbXNnWzBdICAgfCAgIFsxXSAgIHwgICAuLi4gICB8ICBbbi0xXSAgfAotICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8ICAgTUVTU0FHRSAgfCAgICAgICBNRVNTQUdFIFBBWUxPQUQgICAgICAgfAotICogICAgICArICAgSEVBREVSICAgKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8ICAgICAgICAgICAgfCAgICAwICAgIHwgICAuLi4gICB8ICAgIG4gICAgfAotICogICAgICArPT09PT09Kz09PT09Kz09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09KwotICogICAgICB8IDMxOjE2fCBjb2RlfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAgICArLS0tLS0tKy0tLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAgICB8ICAxNTo1fGZsYWdzfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAgICArLS0tLS0tKy0tLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAgICB8ICAgNDowfCAgbGVufCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAgICArLS0tLS0tKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICoKLSAqICAgICAgICAgICAgICAgICAgIF4tLS0tLS0tLS0tLS0tbGVuLS0tLS0tLS0tLS0tLV4KLSAqCi0gKiBUaGUgbWVzc2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6Ci0gKgotICogLSAqKmxlbioqLCBpbmRpY2F0ZXMgbGVuZ3RoIG9mIHRoZSBtZXNzYWdlIHBheWxvYWQgKGluIHUzMikKLSAqIC0gKipjb2RlKiosIGluZGljYXRlcyBtZXNzYWdlIGNvZGUKLSAqIC0gKipmbGFncyoqLCBob2xkcyB2YXJpb3VzIGJpdHMgdG8gY29udHJvbCBtZXNzYWdlIGhhbmRsaW5nCi0gKi8KLQotLyoKLSAqIERlc2NyaWJlcyBzaW5nbGUgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyLgotICogVXNlZCBieSBib3RoIGd1Yy1tYXN0ZXIgYW5kIGNsaWVudHMuCi0gKi8KLXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgewotCXUzMiBhZGRyOwkJLyogZ2Z4IGFkZHJlc3MgKi8KLQl1NjQgaG9zdF9wcml2YXRlOwkvKiBob3N0IHByaXZhdGUgZGF0YSAqLwotCXUzMiBzaXplOwkJLyogc2l6ZSBpbiBieXRlcyAqLwotCXUzMiBoZWFkOwkJLyogb2Zmc2V0IHVwZGF0ZWQgYnkgR3VDKi8KLQl1MzIgdGFpbDsJCS8qIG9mZnNldCB1cGRhdGVkIGJ5IG93bmVyICovCi0JdTMyIGlzX2luX2Vycm9yOwkvKiBlcnJvciBpbmRpY2F0b3IgKi8KLQl1MzIgZmVuY2U7CQkvKiBmZW5jZSB1cGRhdGVkIGJ5IEd1QyAqLwotCXUzMiBzdGF0dXM7CQkvKiBzdGF0dXMgdXBkYXRlZCBieSBHdUMgKi8KLQl1MzIgb3duZXI7CQkvKiBpZCBvZiB0aGUgY2hhbm5lbCBvd25lciAqLwotCXUzMiBvd25lcl9zdWJfaWQ7CS8qIG93bmVyLWRlZmluZWQgZmllbGQgZm9yIGV4dHJhIHRyYWNraW5nICovCi0JdTMyIHJlc2VydmVkWzVdOwotfSBfX3BhY2tlZDsKLQotLyogVHlwZSBvZiBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIgKi8KLSNkZWZpbmUgSU5URUxfR1VDX0NUX0JVRkZFUl9UWVBFX1NFTkQJMHgwdQotI2RlZmluZSBJTlRFTF9HVUNfQ1RfQlVGRkVSX1RZUEVfUkVDVgkweDF1Ci0KLS8qCi0gKiBEZWZpbml0aW9uIG9mIHRoZSBjb21tYW5kIHRyYW5zcG9ydCBtZXNzYWdlIGhlYWRlciAoRFcwKQotICoKLSAqIGJpdFs0Li4wXQltZXNzYWdlIGxlbiAoaW4gZHdvcmRzKQotICogYml0WzcuLjVdCXJlc2VydmVkCi0gKiBiaXRbOF0JcmVzcG9uc2UgKEcySCBvbmx5KQotICogYml0WzhdCXdyaXRlIGZlbmNlIHRvIGRlc2MgKEgyRyBvbmx5KQotICogYml0WzldCXdyaXRlIHN0YXR1cyB0byBIMkcgYnVmZiAoSDJHIG9ubHkpCi0gKiBiaXRbMTBdCXNlbmQgc3RhdHVzIGJhY2sgdmlhIEcySCAoSDJHIG9ubHkpCi0gKiBiaXRbMTUuLjExXQlyZXNlcnZlZAotICogYml0WzMxLi4xNl0JYWN0aW9uIGNvZGUKLSAqLwotI2RlZmluZSBHVUNfQ1RfTVNHX0xFTl9TSElGVAkJCTAKLSNkZWZpbmUgR1VDX0NUX01TR19MRU5fTUFTSwkJCTB4MUYKLSNkZWZpbmUgR1VDX0NUX01TR19JU19SRVNQT05TRQkJCSgxIDw8IDgpCi0jZGVmaW5lIEdVQ19DVF9NU0dfV1JJVEVfRkVOQ0VfVE9fREVTQwkJKDEgPDwgOCkKLSNkZWZpbmUgR1VDX0NUX01TR19XUklURV9TVEFUVVNfVE9fQlVGRgkJKDEgPDwgOSkKLSNkZWZpbmUgR1VDX0NUX01TR19TRU5EX1NUQVRVUwkJCSgxIDw8IDEwKQotI2RlZmluZSBHVUNfQ1RfTVNHX0FDVElPTl9TSElGVAkJCTE2Ci0jZGVmaW5lIEdVQ19DVF9NU0dfQUNUSU9OX01BU0sJCQkweEZGRkYKLQotI2RlZmluZSBHVUNfRk9SQ0VXQUtFX1JFTkRFUgkoMSA8PCAwKQotI2RlZmluZSBHVUNfRk9SQ0VXQUtFX01FRElBCSgxIDw8IDEpCi0KLSNkZWZpbmUgR1VDX1BPV0VSX1VOU1BFQ0lGSUVECTAKLSNkZWZpbmUgR1VDX1BPV0VSX0QwCQkxCi0jZGVmaW5lIEdVQ19QT1dFUl9EMQkJMgotI2RlZmluZSBHVUNfUE9XRVJfRDIJCTMKLSNkZWZpbmUgR1VDX1BPV0VSX0QzCQk0Ci0KLS8qIFNjaGVkdWxpbmcgcG9saWN5IHNldHRpbmdzICovCi0KLS8qIFJlc2V0IGVuZ2luZSB1cG9uIHByZWVtcHQgZmFpbHVyZSAqLwotI2RlZmluZSBQT0xJQ1lfUkVTRVRfRU5HSU5FCQkoMTw8MCkKLS8qIFByZWVtcHQgdG8gaWRsZSBvbiBxdWFudHVtIGV4cGlyeSAqLwotI2RlZmluZSBQT0xJQ1lfUFJFRU1QVF9UT19JRExFCQkoMTw8MSkKLQotI2RlZmluZSBQT0xJQ1lfTUFYX05VTV9XSSAxNQotI2RlZmluZSBQT0xJQ1lfREVGQVVMVF9EUENfUFJPTU9URV9USU1FX1VTIDUwMDAwMAotI2RlZmluZSBQT0xJQ1lfREVGQVVMVF9FWEVDVVRJT05fUVVBTlRVTV9VUyAxMDAwMDAwCi0jZGVmaW5lIFBPTElDWV9ERUZBVUxUX1BSRUVNUFRJT05fVElNRV9VUyA1MDAwMDAKLSNkZWZpbmUgUE9MSUNZX0RFRkFVTFRfRkFVTFRfVElNRV9VUyAyNTAwMDAKLQotc3RydWN0IGd1Y19wb2xpY3kgewotCS8qIFRpbWUgZm9yIG9uZSB3b3JrbG9hZCB0byBleGVjdXRlLiAoaW4gbWljcm8gc2Vjb25kcykgKi8KLQl1MzIgZXhlY3V0aW9uX3F1YW50dW07Ci0JLyogVGltZSB0byB3YWl0IGZvciBhIHByZWVtcHRpb24gcmVxdWVzdCB0byBjb21wbGV0ZWQgYmVmb3JlIGlzc3VpbmcgYQotCSAqIHJlc2V0LiAoaW4gbWljcm8gc2Vjb25kcykuICovCi0JdTMyIHByZWVtcHRpb25fdGltZTsKLQkvKiBIb3cgbXVjaCB0aW1lIHRvIGFsbG93IHRvIHJ1biBhZnRlciB0aGUgZmlyc3QgZmF1bHQgaXMgb2JzZXJ2ZWQuCi0JICogVGhlbiBwcmVlbXB0IGFmdGVyd2FyZHMuIChpbiBtaWNybyBzZWNvbmRzKSAqLwotCXUzMiBmYXVsdF90aW1lOwotCXUzMiBwb2xpY3lfZmxhZ3M7Ci0JdTMyIHJlc2VydmVkWzhdOwotfSBfX3BhY2tlZDsKLQotc3RydWN0IGd1Y19wb2xpY2llcyB7Ci0Jc3RydWN0IGd1Y19wb2xpY3kgcG9saWN5W0dVQ19DTElFTlRfUFJJT1JJVFlfTlVNXVtHVUNfTUFYX0VOR0lORV9DTEFTU0VTXTsKLQl1MzIgc3VibWlzc2lvbl9xdWV1ZV9kZXB0aFtHVUNfTUFYX0VOR0lORV9DTEFTU0VTXTsKLQkvKiBJbiBtaWNybyBzZWNvbmRzLiBIb3cgbXVjaCB0aW1lIHRvIGFsbG93IGJlZm9yZSBEUEMgcHJvY2Vzc2luZyBpcwotCSAqIGNhbGxlZCBiYWNrIHZpYSBpbnRlcnJ1cHQgKHRvIHByZXZlbnQgRFBDIHF1ZXVlIGRyYWluIHN0YXJ2aW5nKS4KLQkgKiBUeXBpY2FsbHkgMTAwMHMgb2YgbWljcm8gc2Vjb25kcyAoZXhhbXBsZSBvbmx5LCBub3QgZ3JhbnVsYXJpdHkpLiAqLwotCXUzMiBkcGNfcHJvbW90ZV90aW1lOwotCi0JLyogTXVzdCBiZSBzZXQgdG8gdGFrZSB0aGVzZSBuZXcgdmFsdWVzLiAqLwotCXUzMiBpc192YWxpZDsKLQotCS8qIE1heCBudW1iZXIgb2YgV0lzIHRvIHByb2Nlc3MgcGVyIGNhbGwuIEEgbGFyZ2UgdmFsdWUgbWF5IGtlZXAgQ1MKLQkgKiBpZGxlLiAqLwotCXUzMiBtYXhfbnVtX3dvcmtfaXRlbXM7Ci0KLQl1MzIgcmVzZXJ2ZWRbNF07Ci19IF9fcGFja2VkOwotCi0vKiBHdUMgTU1JTyByZWcgc3RhdGUgc3RydWN0ICovCi0KLQotI2RlZmluZSBHVUNfUkVHU0VUX01BWF9SRUdJU1RFUlMJNjQKLSNkZWZpbmUgR1VDX1MzX1NBVkVfU1BBQ0VfUEFHRVMJCTEwCi0KLXN0cnVjdCBndWNfbW1pb19yZWcgewotCXUzMiBvZmZzZXQ7Ci0JdTMyIHZhbHVlOwotCXUzMiBmbGFnczsKLSNkZWZpbmUgR1VDX1JFR1NFVF9NQVNLRUQJCSgxIDw8IDApCi19IF9fcGFja2VkOwotCi1zdHJ1Y3QgZ3VjX21taW9fcmVnc2V0IHsKLQlzdHJ1Y3QgZ3VjX21taW9fcmVnIHJlZ2lzdGVyc1tHVUNfUkVHU0VUX01BWF9SRUdJU1RFUlNdOwotCXUzMiB2YWx1ZXNfdmFsaWQ7Ci0JdTMyIG51bWJlcl9vZl9yZWdpc3RlcnM7Ci19IF9fcGFja2VkOwotCi0vKiBHdUMgcmVnaXN0ZXIgc2V0cyAqLwotc3RydWN0IGd1Y19tbWlvX3JlZ19zdGF0ZSB7Ci0Jc3RydWN0IGd1Y19tbWlvX3JlZ3NldCBlbmdpbmVfcmVnW0dVQ19NQVhfRU5HSU5FX0NMQVNTRVNdW0dVQ19NQVhfSU5TVEFOQ0VTX1BFUl9DTEFTU107Ci0JdTMyIHJlc2VydmVkWzk4XTsKLX0gX19wYWNrZWQ7Ci0KLS8qIEhXIGluZm8gKi8KLXN0cnVjdCBndWNfZ3Rfc3lzdGVtX2luZm8gewotCXUzMiBzbGljZV9lbmFibGVkOwotCXUzMiByY3NfZW5hYmxlZDsKLQl1MzIgcmVzZXJ2ZWQwOwotCXUzMiBiY3NfZW5hYmxlZDsKLQl1MzIgdmRib3hfZW5hYmxlX21hc2s7Ci0JdTMyIHZkYm94X3NmY19zdXBwb3J0X21hc2s7Ci0JdTMyIHZlYm94X2VuYWJsZV9tYXNrOwotCXUzMiByZXNlcnZlZFs5XTsKLX0gX19wYWNrZWQ7Ci0KLS8qIENsaWVudHMgaW5mbyAqLwotc3RydWN0IGd1Y19jdF9wb29sX2VudHJ5IHsKLQlzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjIGRlc2M7Ci0JdTMyIHJlc2VydmVkWzddOwotfSBfX3BhY2tlZDsKLQotI2RlZmluZSBHVUNfQ1RfUE9PTF9TSVpFCTIKLQotc3RydWN0IGd1Y19jbGllbnRzX2luZm8gewotCXUzMiBjbGllbnRzX251bTsKLQl1MzIgcmVzZXJ2ZWQwWzEzXTsKLQl1MzIgY3RfcG9vbF9hZGRyOwotCXUzMiBjdF9wb29sX2NvdW50OwotCXUzMiByZXNlcnZlZFs0XTsKLX0gX19wYWNrZWQ7Ci0KLS8qIEd1QyBBZGRpdGlvbmFsIERhdGEgU3RydWN0ICovCi1zdHJ1Y3QgZ3VjX2FkcyB7Ci0JdTMyIHJlZ19zdGF0ZV9hZGRyOwotCXUzMiByZWdfc3RhdGVfYnVmZmVyOwotCXUzMiBzY2hlZHVsZXJfcG9saWNpZXM7Ci0JdTMyIGd0X3N5c3RlbV9pbmZvOwotCXUzMiBjbGllbnRzX2luZm87Ci0JdTMyIGNvbnRyb2xfZGF0YTsKLQl1MzIgZ29sZGVuX2NvbnRleHRfbHJjYVtHVUNfTUFYX0VOR0lORV9DTEFTU0VTXTsKLQl1MzIgZW5nX3N0YXRlX3NpemVbR1VDX01BWF9FTkdJTkVfQ0xBU1NFU107Ci0JdTMyIHJlc2VydmVkWzE2XTsKLX0gX19wYWNrZWQ7Ci0KLS8qIEd1QyBsb2dnaW5nIHN0cnVjdHVyZXMgKi8KLQotZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHsKLQlHVUNfSVNSX0xPR19CVUZGRVIsCi0JR1VDX0RQQ19MT0dfQlVGRkVSLAotCUdVQ19DUkFTSF9EVU1QX0xPR19CVUZGRVIsCi0JR1VDX01BWF9MT0dfQlVGRkVSCi19OwotCi0vKioKLSAqIHN0cnVjdCBndWNfbG9nX2J1ZmZlcl9zdGF0ZSAtIEd1QyBsb2cgYnVmZmVyIHN0YXRlCi0gKgotICogQmVsb3cgc3RhdGUgc3RydWN0dXJlIGlzIHVzZWQgZm9yIGNvb3JkaW5hdGlvbiBvZiByZXRyaWV2YWwgb2YgR3VDIGZpcm13YXJlCi0gKiBsb2dzLiBTZXBhcmF0ZSBzdGF0ZSBpcyBtYWludGFpbmVkIGZvciBlYWNoIGxvZyBidWZmZXIgdHlwZS4KLSAqIHJlYWRfcHRyIHBvaW50cyB0byB0aGUgbG9jYXRpb24gd2hlcmUgaTkxNSByZWFkIGxhc3QgaW4gbG9nIGJ1ZmZlciBhbmQKLSAqIGlzIHJlYWQgb25seSBmb3IgR3VDIGZpcm13YXJlLiB3cml0ZV9wdHIgaXMgaW5jcmVtZW50ZWQgYnkgR3VDIHdpdGggbnVtYmVyCi0gKiBvZiBieXRlcyB3cml0dGVuIGZvciBlYWNoIGxvZyBlbnRyeSBhbmQgaXMgcmVhZCBvbmx5IGZvciBpOTE1LgotICogV2hlbiBhbnkgdHlwZSBvZiBsb2cgYnVmZmVyIGJlY29tZXMgaGFsZiBmdWxsLCBHdUMgc2VuZHMgYSBmbHVzaCBpbnRlcnJ1cHQuCi0gKiBHdUMgZmlybXdhcmUgZXhwZWN0cyB0aGF0IHdoaWxlIGl0IGlzIHdyaXRpbmcgdG8gMm5kIGhhbGYgb2YgdGhlIGJ1ZmZlciwKLSAqIGZpcnN0IGhhbGYgd291bGQgZ2V0IGNvbnN1bWVkIGJ5IEhvc3QgYW5kIHRoZW4gZ2V0IGEgZmx1c2ggY29tcGxldGVkCi0gKiBhY2tub3dsZWRnbWVudCBmcm9tIEhvc3QsIHNvIHRoYXQgaXQgZG9lcyBub3QgZW5kIHVwIGRvaW5nIGFueSBvdmVyd3JpdGUKLSAqIGNhdXNpbmcgbG9zcyBvZiBsb2dzLiBTbyB3aGVuIGJ1ZmZlciBnZXRzIGhhbGYgZmlsbGVkICYgaTkxNSBoYXMgcmVxdWVzdGVkCi0gKiBmb3IgaW50ZXJydXB0LCBHdUMgd2lsbCBzZXQgZmx1c2hfdG9fZmlsZSBmaWVsZCwgc2V0IHRoZSBzYW1wbGVkX3dyaXRlX3B0cgotICogdG8gdGhlIHZhbHVlIG9mIHdyaXRlX3B0ciBhbmQgcmFpc2UgdGhlIGludGVycnVwdC4KLSAqIE9uIHJlY2VpdmluZyB0aGUgaW50ZXJydXB0IGk5MTUgc2hvdWxkIHJlYWQgdGhlIGJ1ZmZlciwgY2xlYXIgZmx1c2hfdG9fZmlsZQotICogZmllbGQgYW5kIGFsc28gdXBkYXRlIHJlYWRfcHRyIHdpdGggdGhlIHZhbHVlIG9mIHNhbXBsZV93cml0ZV9wdHIsIGJlZm9yZQotICogc2VuZGluZyBhbiBhY2tub3dsZWRnbWVudCB0byBHdUMuIG1hcmtlciAmIHZlcnNpb24gZmllbGRzIGFyZSBmb3IgaW50ZXJuYWwKLSAqIHVzYWdlIG9mIEd1QyBhbmQgb3BhcXVlIHRvIGk5MTUuIGJ1ZmZlcl9mdWxsX2NudCBmaWVsZCBpcyBpbmNyZW1lbnRlZCBldmVyeQotICogdGltZSBHdUMgZGV0ZWN0cyB0aGUgbG9nIGJ1ZmZlciBvdmVyZmxvdy4KLSAqLwotc3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0YXRlIHsKLQl1MzIgbWFya2VyWzJdOwotCXUzMiByZWFkX3B0cjsKLQl1MzIgd3JpdGVfcHRyOwotCXUzMiBzaXplOwotCXUzMiBzYW1wbGVkX3dyaXRlX3B0cjsKLQl1bmlvbiB7Ci0JCXN0cnVjdCB7Ci0JCQl1MzIgZmx1c2hfdG9fZmlsZToxOwotCQkJdTMyIGJ1ZmZlcl9mdWxsX2NudDo0OwotCQkJdTMyIHJlc2VydmVkOjI3OwotCQl9OwotCQl1MzIgZmxhZ3M7Ci0JfTsKLQl1MzIgdmVyc2lvbjsKLX0gX19wYWNrZWQ7Ci0KLXN0cnVjdCBndWNfY3R4X3JlcG9ydCB7Ci0JdTMyIHJlcG9ydF9yZXR1cm5fc3RhdHVzOwotCXUzMiByZXNlcnZlZDFbNjRdOwotCXUzMiBhZmZlY3RlZF9jb3VudDsKLQl1MzIgcmVzZXJ2ZWQyWzJdOwotfSBfX3BhY2tlZDsKLQotLyogR3VDIFNoYXJlZCBDb250ZXh0IERhdGEgU3RydWN0ICovCi1zdHJ1Y3QgZ3VjX3NoYXJlZF9jdHhfZGF0YSB7Ci0JdTMyIGFkZHJfb2ZfbGFzdF9wcmVlbXB0ZWRfZGF0YV9sb3c7Ci0JdTMyIGFkZHJfb2ZfbGFzdF9wcmVlbXB0ZWRfZGF0YV9oaWdoOwotCXUzMiBhZGRyX29mX2xhc3RfcHJlZW1wdGVkX2RhdGFfaGlnaF90bXA7Ci0JdTMyIHBhZGRpbmc7Ci0JdTMyIGlzX21hcHBlZF90b19wcm94eTsKLQl1MzIgcHJveHlfY3R4X2lkOwotCXUzMiBlbmdpbmVfcmVzZXRfY3R4X2lkOwotCXUzMiBtZWRpYV9yZXNldF9jb3VudDsKLQl1MzIgcmVzZXJ2ZWQxWzhdOwotCXUzMiB1a19sYXN0X2N0eF9zd2l0Y2hfcmVhc29uOwotCXUzMiB3YXNfcmVzZXQ7Ci0JdTMyIGxyY2FfZ3B1X2FkZHI7Ci0JdTY0IGV4ZWNsaXN0X2N0eDsKLQl1MzIgcmVzZXJ2ZWQyWzY2XTsKLQlzdHJ1Y3QgZ3VjX2N0eF9yZXBvcnQgcHJlZW1wdF9jdHhfcmVwb3J0W0dVQ19NQVhfRU5HSU5FU19OVU1dOwotfSBfX3BhY2tlZDsKLQotLyoqCi0gKiBET0M6IE1NSU8gYmFzZWQgY29tbXVuaWNhdGlvbgotICoKLSAqIFRoZSBNTUlPIGJhc2VkIGNvbW11bmljYXRpb24gYmV0d2VlbiBIb3N0IGFuZCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoCi0gKiByZWdpc3RlcnMsIHdoZXJlIGZpcnN0IHJlZ2lzdGVyIGhvbGRzIGRhdGEgdHJlYXRlZCBhcyBtZXNzYWdlIGhlYWRlciwKLSAqIGFuZCBvdGhlciByZWdpc3RlcnMgYXJlIHVzZWQgdG8gaG9sZCBtZXNzYWdlIHBheWxvYWQuCi0gKgotICogRm9yIEdlbjkrLCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoIHJlZ2lzdGVycyAweEMxODAtMHhDMUI4LAotICogYnV0IG5vIEgyRyBjb21tYW5kIHRha2VzIG1vcmUgdGhhbiA4IHBhcmFtZXRlcnMgYW5kIHRoZSBHdUMgRlcKLSAqIGl0c2VsZiB1c2VzIGFuIDgtZWxlbWVudCBhcnJheSB0byBzdG9yZSB0aGUgSDJHIG1lc3NhZ2UuCi0gKgotICogICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCi0gKiAgICAgIHwgIE1NSU9bMF0gIHwgTU1JT1sxXSB8ICAgLi4uICAgfCBNTUlPW25dIHwKLSAqICAgICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8IGhlYWRlciAgICB8ICAgICAgb3B0aW9uYWwgcGF5bG9hZCAgICAgICB8Ci0gKiAgICAgICs9PT09PT0rPT09PSs9PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSsKLSAqICAgICAgfCAzMToyOHx0eXBlfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAgICArLS0tLS0tKy0tLS0rICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8Ci0gKiAgICAgIHwgMjc6MTZ8ZGF0YXwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAgICB8ICAxNTowfGNvZGV8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8Ci0gKiAgICAgICstLS0tLS0rLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqCi0gKiBUaGUgbWVzc2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6Ci0gKgotICogLSAqKnR5cGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2UgdHlwZQotICogLSAqKmNvZGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2UgY29kZSwgaXMgc3BlY2lmaWMgZm9yICoqdHlwZSoqCi0gKiAtICoqZGF0YSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSBkYXRhLCBvcHRpb25hbCwgZGVwZW5kcyBvbiAqKmNvZGUqKgotICoKLSAqIFRoZSBmb2xsb3dpbmcgbWVzc2FnZSAqKnR5cGVzKiogYXJlIHN1cHBvcnRlZDoKLSAqCi0gKiAtICoqUkVRVUVTVCoqLCBpbmRpY2F0ZXMgSG9zdC10by1HdUMgcmVxdWVzdCwgcmVxdWVzdGVkIEd1QyBhY3Rpb24gY29kZQotICogICBtdXN0IGJlIHByaW92aWRlZCBpbiAqKmNvZGUqKiBmaWVsZC4gT3B0aW9uYWwgYWN0aW9uIHNwZWNpZmljIHBhcmFtZXRlcnMKLSAqICAgY2FuIGJlIHByb3ZpZGVkIGluIHJlbWFpbmluZyBwYXlsb2FkIHJlZ2lzdGVycyBvciAqKmRhdGEqKiBmaWVsZC4KLSAqCi0gKiAtICoqUkVTUE9OU0UqKiwgaW5kaWNhdGVzIEd1Qy10by1Ib3N0IHJlc3BvbnNlIGZyb20gZWFybGllciBHdUMgcmVxdWVzdCwKLSAqICAgYWN0aW9uIHJlc3BvbnNlIHN0YXR1cyB3aWxsIGJlIHByb3ZpZGVkIGluICoqY29kZSoqIGZpZWxkLiBPcHRpb25hbAotICogICByZXNwb25zZSBkYXRhIGNhbiBiZSByZXR1cm5lZCBpbiByZW1haW5pbmcgcGF5bG9hZCByZWdpc3RlcnMgb3IgKipkYXRhKioKLSAqICAgZmllbGQuCi0gKi8KLQotI2RlZmluZSBHVUNfTUFYX01NSU9fTVNHX0xFTgkJOAotCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfVFlQRV9TSElGVAkyOAotI2RlZmluZSBJTlRFTF9HVUNfTVNHX1RZUEVfTUFTSwkJKDB4RiA8PCBJTlRFTF9HVUNfTVNHX1RZUEVfU0hJRlQpCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfREFUQV9TSElGVAkxNgotI2RlZmluZSBJTlRFTF9HVUNfTVNHX0RBVEFfTUFTSwkJKDB4RkZGIDw8IElOVEVMX0dVQ19NU0dfREFUQV9TSElGVCkKLSNkZWZpbmUgSU5URUxfR1VDX01TR19DT0RFX1NISUZUCTAKLSNkZWZpbmUgSU5URUxfR1VDX01TR19DT0RFX01BU0sJCSgweEZGRkYgPDwgSU5URUxfR1VDX01TR19DT0RFX1NISUZUKQotCi0jZGVmaW5lIF9fSU5URUxfR1VDX01TR19HRVQoVCwgbSkgXAotCSgoKG0pICYgSU5URUxfR1VDX01TR18gIyMgVCAjIyBfTUFTSykgPj4gSU5URUxfR1VDX01TR18gIyMgVCAjIyBfU0hJRlQpCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fVFlQRShtKQlfX0lOVEVMX0dVQ19NU0dfR0VUKFRZUEUsIG0pCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fREFUQShtKQlfX0lOVEVMX0dVQ19NU0dfR0VUKERBVEEsIG0pCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fQ09ERShtKQlfX0lOVEVMX0dVQ19NU0dfR0VUKENPREUsIG0pCi0KLWVudW0gaW50ZWxfZ3VjX21zZ190eXBlIHsKLQlJTlRFTF9HVUNfTVNHX1RZUEVfUkVRVUVTVCA9IDB4MCwKLQlJTlRFTF9HVUNfTVNHX1RZUEVfUkVTUE9OU0UgPSAweEYsCi19OwotCi0jZGVmaW5lIF9fSU5URUxfR1VDX01TR19UWVBFX0lTKFQsIG0pIFwKLQkoSU5URUxfR1VDX01TR19UT19UWVBFKG0pID09IElOVEVMX0dVQ19NU0dfVFlQRV8gIyMgVCkKLSNkZWZpbmUgSU5URUxfR1VDX01TR19JU19SRVFVRVNUKG0pCV9fSU5URUxfR1VDX01TR19UWVBFX0lTKFJFUVVFU1QsIG0pCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfSVNfUkVTUE9OU0UobSkJX19JTlRFTF9HVUNfTVNHX1RZUEVfSVMoUkVTUE9OU0UsIG0pCi0KLWVudW0gaW50ZWxfZ3VjX2FjdGlvbiB7Ci0JSU5URUxfR1VDX0FDVElPTl9ERUZBVUxUID0gMHgwLAotCUlOVEVMX0dVQ19BQ1RJT05fUkVRVUVTVF9QUkVFTVBUSU9OID0gMHgyLAotCUlOVEVMX0dVQ19BQ1RJT05fUkVRVUVTVF9FTkdJTkVfUkVTRVQgPSAweDMsCi0JSU5URUxfR1VDX0FDVElPTl9BTExPQ0FURV9ET09SQkVMTCA9IDB4MTAsCi0JSU5URUxfR1VDX0FDVElPTl9ERUFMTE9DQVRFX0RPT1JCRUxMID0gMHgyMCwKLQlJTlRFTF9HVUNfQUNUSU9OX0xPR19CVUZGRVJfRklMRV9GTFVTSF9DT01QTEVURSA9IDB4MzAsCi0JSU5URUxfR1VDX0FDVElPTl9GT1JDRV9MT0dfQlVGRkVSX0ZMVVNIID0gMHgzMDIsCi0JSU5URUxfR1VDX0FDVElPTl9FTlRFUl9TX1NUQVRFID0gMHg1MDEsCi0JSU5URUxfR1VDX0FDVElPTl9FWElUX1NfU1RBVEUgPSAweDUwMiwKLQlJTlRFTF9HVUNfQUNUSU9OX1NMUENfUkVRVUVTVCA9IDB4MzAwMywKLQlJTlRFTF9HVUNfQUNUSU9OX1NBTVBMRV9GT1JDRVdBS0UgPSAweDMwMDUsCi0JSU5URUxfR1VDX0FDVElPTl9BVVRIRU5USUNBVEVfSFVDID0gMHg0MDAwLAotCUlOVEVMX0dVQ19BQ1RJT05fUkVHSVNURVJfQ09NTUFORF9UUkFOU1BPUlRfQlVGRkVSID0gMHg0NTA1LAotCUlOVEVMX0dVQ19BQ1RJT05fREVSRUdJU1RFUl9DT01NQU5EX1RSQU5TUE9SVF9CVUZGRVIgPSAweDQ1MDYsCi0JSU5URUxfR1VDX0FDVElPTl9VS19MT0dfRU5BQkxFX0xPR0dJTkcgPSAweDBFMDAwLAotCUlOVEVMX0dVQ19BQ1RJT05fTElNSVQKLX07Ci0KLWVudW0gaW50ZWxfZ3VjX3ByZWVtcHRfb3B0aW9ucyB7Ci0JSU5URUxfR1VDX1BSRUVNUFRfT1BUSU9OX0RST1BfV09SS19RID0gMHg0LAotCUlOVEVMX0dVQ19QUkVFTVBUX09QVElPTl9EUk9QX1NVQk1JVF9RID0gMHg4LAotfTsKLQotZW51bSBpbnRlbF9ndWNfcmVwb3J0X3N0YXR1cyB7Ci0JSU5URUxfR1VDX1JFUE9SVF9TVEFUVVNfVU5LTk9XTiA9IDB4MCwKLQlJTlRFTF9HVUNfUkVQT1JUX1NUQVRVU19BQ0tFRCA9IDB4MSwKLQlJTlRFTF9HVUNfUkVQT1JUX1NUQVRVU19FUlJPUiA9IDB4MiwKLQlJTlRFTF9HVUNfUkVQT1JUX1NUQVRVU19DT01QTEVURSA9IDB4NCwKLX07Ci0KLWVudW0gaW50ZWxfZ3VjX3NsZWVwX3N0YXRlX3N0YXR1cyB7Ci0JSU5URUxfR1VDX1NMRUVQX1NUQVRFX1NVQ0NFU1MgPSAweDEsCi0JSU5URUxfR1VDX1NMRUVQX1NUQVRFX1BSRUVNUFRfVE9fSURMRV9GQUlMRUQgPSAweDIsCi0JSU5URUxfR1VDX1NMRUVQX1NUQVRFX0VOR0lORV9SRVNFVF9GQUlMRUQgPSAweDMKLSNkZWZpbmUgSU5URUxfR1VDX1NMRUVQX1NUQVRFX0lOVkFMSURfTUFTSyAweDgwMDAwMDAwCi19OwotCi0jZGVmaW5lIEdVQ19MT0dfQ09OVFJPTF9MT0dHSU5HX0VOQUJMRUQJKDEgPDwgMCkKLSNkZWZpbmUgR1VDX0xPR19DT05UUk9MX1ZFUkJPU0lUWV9TSElGVAk0Ci0jZGVmaW5lIEdVQ19MT0dfQ09OVFJPTF9WRVJCT1NJVFlfTUFTSwkoMHhGIDw8IEdVQ19MT0dfQ09OVFJPTF9WRVJCT1NJVFlfU0hJRlQpCi0jZGVmaW5lIEdVQ19MT0dfQ09OVFJPTF9ERUZBVUxUX0xPR0dJTkcJKDEgPDwgOCkKLQotZW51bSBpbnRlbF9ndWNfcmVzcG9uc2Vfc3RhdHVzIHsKLQlJTlRFTF9HVUNfUkVTUE9OU0VfU1RBVFVTX1NVQ0NFU1MgPSAweDAsCi0JSU5URUxfR1VDX1JFU1BPTlNFX1NUQVRVU19HRU5FUklDX0ZBSUwgPSAweEYwMDAsCi19OwotCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfSVNfUkVTUE9OU0VfU1VDQ0VTUyhtKSBcCi0JICh0eXBlY2hlY2sodTMyLCAobSkpICYmIFwKLQkgICgobSkgJiAoSU5URUxfR1VDX01TR19UWVBFX01BU0sgfCBJTlRFTF9HVUNfTVNHX0NPREVfTUFTSykpID09IFwKLQkgICgoSU5URUxfR1VDX01TR19UWVBFX1JFU1BPTlNFIDw8IElOVEVMX0dVQ19NU0dfVFlQRV9TSElGVCkgfCBcCi0JICAgKElOVEVMX0dVQ19SRVNQT05TRV9TVEFUVVNfU1VDQ0VTUyA8PCBJTlRFTF9HVUNfTVNHX0NPREVfU0hJRlQpKSkKLQotLyogVGhpcyBhY3Rpb24gd2lsbCBiZSBwcm9ncmFtbWVkIGluIEMxQkMgLSBTT0ZUX1NDUkFUQ0hfMTVfUkVHICovCi1lbnVtIGludGVsX2d1Y19yZWN2X21lc3NhZ2UgewotCUlOVEVMX0dVQ19SRUNWX01TR19DUkFTSF9EVU1QX1BPU1RFRCA9IEJJVCgxKSwKLQlJTlRFTF9HVUNfUkVDVl9NU0dfRkxVU0hfTE9HX0JVRkZFUiA9IEJJVCgzKQotfTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9nLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzYjgzZWMuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvZy5jCisrKyAvZGV2L251bGwKQEAgLTEsNjMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE3IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwotICogSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgotCi0jaW5jbHVkZSAiaW50ZWxfZ3VjX2xvZy5oIgotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0KLXN0YXRpYyB2b2lkIGd1Y19sb2dfY2FwdHVyZV9sb2dzKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOwotCi0vKioKLSAqIERPQzogR3VDIGZpcm13YXJlIGxvZwotICoKLSAqIEZpcm13YXJlIGxvZyBpcyBlbmFibGVkIGJ5IHNldHRpbmcgaTkxNS5ndWNfbG9nX2xldmVsIHRvIHRoZSBwb3NpdGl2ZSBsZXZlbC4KLSAqIExvZyBkYXRhIGlzIHByaW50ZWQgb3V0IHZpYSByZWFkaW5nIGRlYnVnZnMgaTkxNV9ndWNfbG9nX2R1bXAuIFJlYWRpbmcgZnJvbQotICogaTkxNV9ndWNfbG9hZF9zdGF0dXMgd2lsbCBwcmludCBvdXQgZmlybXdhcmUgbG9hZGluZyBzdGF0dXMgYW5kIHNjcmF0Y2gKLSAqIHJlZ2lzdGVycyB2YWx1ZS4KLSAqLwotCi1zdGF0aWMgaW50IGd1Y19hY3Rpb25fZmx1c2hfbG9nX2NvbXBsZXRlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQl1MzIgYWN0aW9uW10gPSB7Ci0JCUlOVEVMX0dVQ19BQ1RJT05fTE9HX0JVRkZFUl9GSUxFX0ZMVVNIX0NPTVBMRVRFCi0JfTsKLQotCXJldHVybiBpbnRlbF9ndWNfc2VuZChndWMsIGFjdGlvbiwgQVJSQVlfU0laRShhY3Rpb24pKTsKLX0KLQotc3RhdGljIGludCBndWNfYWN0aW9uX2ZsdXNoX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0JdTMyIGFjdGlvbltdID0gewotCQlJTlRFTF9HVUNfQUNUSU9OX0ZPUkNFX0xPR19CVUZGRVJfRkxVU0gsCi0JCTAKLQl9OwotCi0JcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFjdGlvbikpOwotfQotCi1zdGF0aWMgaW50IGd1Y19hY3Rpb25fY29udHJvbF9sb2coc3RydWN0IGludGVsX2d1YyAqZ3VjLCBib29sIGVuYWJsZSwKLQkJCQkgIGJvb2wgZGVmYXVsdF9sb2dnaW5nLCB1MzIgdmVyYm9zaXR5KQotewotCXUzMiBhY3Rpb25bXSA9IHsKLQkJSU5URUxfR1VDX0FDVElPTl9VS19MT0dfRU5BQkxFX0xPR0dJTkcsCi0JCShlbmFibGUgPyBHVUNfTE9HX0NPTlRST0xfTE9HR0lOR19FTkFCTEVEIDogMCkgfAotCQkodmVyYm9zaXR5IDw8IEdVQ19MT0dfQ09OVFJPTF9WRVJCT1NJVFlfU0hJRlQpIHwKLQkJKGRlZmF1bHRfbG9nZ2luZyA/IEdVQ19MT0dfQ09OVFJPTF9ERUZBVUxUX0xPR0dJTkcgOiAwKQotCX07Ci0KLQlHRU1fQlVHX09OKHZlcmJvc2l0eSA+IEdVQ19MT0dfVkVSQk9TSVRZX01BWCk7Ci0KLQlyZXR1cm4gaW50ZWxfZ3VjX3NlbmQoZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2d1YyAqbG9nX3RvX2d1YyhzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQotewotCXJldHVybiBjb250YWluZXJfb2YobG9nLCBzdHJ1Y3QgaW50ZWxfZ3VjLCBsb2cpOwotfQotCi1zdGF0aWMgdm9pZCBndWNfbG9nX2VuYWJsZV9mbHVzaF9ldmVudHMoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKLXsKLQlpbnRlbF9ndWNfZW5hYmxlX21zZyhsb2dfdG9fZ3VjKGxvZyksCi0JCQkgICAgIElOVEVMX0dVQ19SRUNWX01TR19GTFVTSF9MT0dfQlVGRkVSIHwKLQkJCSAgICAgSU5URUxfR1VDX1JFQ1ZfTVNHX0NSQVNIX0RVTVBfUE9TVEVEKTsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX2xvZ19kaXNhYmxlX2ZsdXNoX2V2ZW50cyhzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQotewotCWludGVsX2d1Y19kaXNhYmxlX21zZyhsb2dfdG9fZ3VjKGxvZyksCi0JCQkgICAgICBJTlRFTF9HVUNfUkVDVl9NU0dfRkxVU0hfTE9HX0JVRkZFUiB8Ci0JCQkgICAgICBJTlRFTF9HVUNfUkVDVl9NU0dfQ1JBU0hfRFVNUF9QT1NURUQpOwotfQotCi0vKgotICogU3ViIGJ1ZmZlciBzd2l0Y2ggY2FsbGJhY2suIENhbGxlZCB3aGVuZXZlciByZWxheSBoYXMgdG8gc3dpdGNoIHRvIGEgbmV3Ci0gKiBzdWIgYnVmZmVyLCByZWxheSBzdGF5cyBvbiB0aGUgc2FtZSBzdWIgYnVmZmVyIGlmIDAgaXMgcmV0dXJuZWQuCi0gKi8KLXN0YXRpYyBpbnQgc3ViYnVmX3N0YXJ0X2NhbGxiYWNrKHN0cnVjdCByY2hhbl9idWYgKmJ1ZiwKLQkJCQkgdm9pZCAqc3ViYnVmLAotCQkJCSB2b2lkICpwcmV2X3N1YmJ1ZiwKLQkJCQkgc2l6ZV90IHByZXZfcGFkZGluZykKLXsKLQkvKgotCSAqIFVzZSBuby1vdmVyd3JpdGUgbW9kZSBieSBkZWZhdWx0LCB3aGVyZSByZWxheSB3aWxsIHN0b3AgYWNjZXB0aW5nCi0JICogbmV3IGRhdGEgaWYgdGhlcmUgYXJlIG5vIGVtcHR5IHN1YiBidWZmZXJzIGxlZnQuCi0JICogVGhlcmUgaXMgbm8gc3RyaWN0IHN5bmNocm9uaXphdGlvbiBlbmZvcmNlZCBieSByZWxheSBiZXR3ZWVuIENvbnN1bWVyCi0JICogYW5kIFByb2R1Y2VyLiBJbiBvdmVyd3JpdGUgbW9kZSwgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSBvZiBnZXR0aW5nCi0JICogaW5jb25zaXN0ZW50L2dhcmJsZWQgZGF0YSwgdGhlIHByb2R1Y2VyIGNvdWxkIGJlIHdyaXRpbmcgb24gdG8gdGhlCi0JICogc2FtZSBzdWIgYnVmZmVyIGZyb20gd2hpY2ggQ29uc3VtZXIgaXMgcmVhZGluZy4gVGhpcyBjYW4ndCBiZSBhdm9pZGVkCi0JICogdW5sZXNzIENvbnN1bWVyIGlzIGZhc3QgZW5vdWdoIGFuZCBjYW4gYWx3YXlzIHJ1biBpbiB0YW5kZW0gd2l0aAotCSAqIFByb2R1Y2VyLgotCSAqLwotCWlmIChyZWxheV9idWZfZnVsbChidWYpKQotCQlyZXR1cm4gMDsKLQotCXJldHVybiAxOwotfQotCi0vKgotICogZmlsZV9jcmVhdGUoKSBjYWxsYmFjay4gQ3JlYXRlcyByZWxheSBmaWxlIGluIGRlYnVnZnMuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpjcmVhdGVfYnVmX2ZpbGVfY2FsbGJhY2soY29uc3QgY2hhciAqZmlsZW5hbWUsCi0JCQkJCSAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCi0JCQkJCSAgICAgICB1bW9kZV90IG1vZGUsCi0JCQkJCSAgICAgICBzdHJ1Y3QgcmNoYW5fYnVmICpidWYsCi0JCQkJCSAgICAgICBpbnQgKmlzX2dsb2JhbCkKLXsKLQlzdHJ1Y3QgZGVudHJ5ICpidWZfZmlsZTsKLQotCS8qCi0JICogVGhpcyB0byBlbmFibGUgdGhlIHVzZSBvZiBhIHNpbmdsZSBidWZmZXIgZm9yIHRoZSByZWxheSBjaGFubmVsIGFuZAotCSAqIGNvcnJlc3BvbmRpbmdseSBoYXZlIGEgc2luZ2xlIGZpbGUgZXhwb3NlZCB0byBVc2VyLCB0aHJvdWdoIHdoaWNoCi0JICogaXQgY2FuIGNvbGxlY3QgdGhlIGxvZ3MgaW4gb3JkZXIgd2l0aG91dCBhbnkgcG9zdC1wcm9jZXNzaW5nLgotCSAqIE5lZWQgdG8gc2V0ICdpc19nbG9iYWwnIGV2ZW4gaWYgcGFyZW50IGlzIE5VTEwgZm9yIGVhcmx5IGxvZ2dpbmcuCi0JICovCi0JKmlzX2dsb2JhbCA9IDE7Ci0KLQlpZiAoIXBhcmVudCkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlidWZfZmlsZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoZmlsZW5hbWUsIG1vZGUsCi0JCQkJICAgICAgIHBhcmVudCwgYnVmLCAmcmVsYXlfZmlsZV9vcGVyYXRpb25zKTsKLQlpZiAoSVNfRVJSKGJ1Zl9maWxlKSkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlyZXR1cm4gYnVmX2ZpbGU7Ci19Ci0KLS8qCi0gKiBmaWxlX3JlbW92ZSgpIGRlZmF1bHQgY2FsbGJhY2suIFJlbW92ZXMgcmVsYXkgZmlsZSBpbiBkZWJ1Z2ZzLgotICovCi1zdGF0aWMgaW50IHJlbW92ZV9idWZfZmlsZV9jYWxsYmFjayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCi17Ci0JZGVidWdmc19yZW1vdmUoZGVudHJ5KTsKLQlyZXR1cm4gMDsKLX0KLQotLyogcmVsYXkgY2hhbm5lbCBjYWxsYmFja3MgKi8KLXN0YXRpYyBzdHJ1Y3QgcmNoYW5fY2FsbGJhY2tzIHJlbGF5X2NhbGxiYWNrcyA9IHsKLQkuc3ViYnVmX3N0YXJ0ID0gc3ViYnVmX3N0YXJ0X2NhbGxiYWNrLAotCS5jcmVhdGVfYnVmX2ZpbGUgPSBjcmVhdGVfYnVmX2ZpbGVfY2FsbGJhY2ssCi0JLnJlbW92ZV9idWZfZmlsZSA9IHJlbW92ZV9idWZfZmlsZV9jYWxsYmFjaywKLX07Ci0KLXN0YXRpYyB2b2lkIGd1Y19tb3ZlX3RvX25leHRfYnVmKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCi17Ci0JLyoKLQkgKiBNYWtlIHN1cmUgdGhlIHVwZGF0ZXMgbWFkZSBpbiB0aGUgc3ViIGJ1ZmZlciBhcmUgdmlzaWJsZSB3aGVuCi0JICogQ29uc3VtZXIgc2VlcyB0aGUgZm9sbG93aW5nIHVwZGF0ZSB0byBvZmZzZXQgaW5zaWRlIHRoZSBzdWIgYnVmZmVyLgotCSAqLwotCXNtcF93bWIoKTsKLQotCS8qIEFsbCBkYXRhIGhhcyBiZWVuIHdyaXR0ZW4sIHNvIG5vdyBtb3ZlIHRoZSBvZmZzZXQgb2Ygc3ViIGJ1ZmZlci4gKi8KLQlyZWxheV9yZXNlcnZlKGxvZy0+cmVsYXkuY2hhbm5lbCwgbG9nLT52bWEtPm9iai0+YmFzZS5zaXplKTsKLQotCS8qIFN3aXRjaCB0byB0aGUgbmV4dCBzdWIgYnVmZmVyICovCi0JcmVsYXlfZmx1c2gobG9nLT5yZWxheS5jaGFubmVsKTsKLX0KLQotc3RhdGljIHZvaWQgKmd1Y19nZXRfd3JpdGVfYnVmZmVyKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCi17Ci0JLyoKLQkgKiBKdXN0IGdldCB0aGUgYmFzZSBhZGRyZXNzIG9mIGEgbmV3IHN1YiBidWZmZXIgYW5kIGNvcHkgZGF0YSBpbnRvIGl0Ci0JICogb3Vyc2VsdmVzLiBOVUxMIHdpbGwgYmUgcmV0dXJuZWQgaW4gbm8tb3ZlcndyaXRlIG1vZGUsIGlmIGFsbCBzdWIKLQkgKiBidWZmZXJzIGFyZSBmdWxsLiBDb3VsZCBoYXZlIHVzZWQgdGhlIHJlbGF5X3dyaXRlKCkgdG8gaW5kaXJlY3RseQotCSAqIGNvcHkgdGhlIGRhdGEsIGJ1dCB0aGF0IHdvdWxkIGhhdmUgYmVlbiBiaXQgY29udm9sdXRlZCwgYXMgd2UgbmVlZCB0bwotCSAqIHdyaXRlIHRvIG9ubHkgY2VydGFpbiBsb2NhdGlvbnMgaW5zaWRlIGEgc3ViIGJ1ZmZlciB3aGljaCBjYW5ub3QgYmUKLQkgKiBkb25lIHdpdGhvdXQgdXNpbmcgcmVsYXlfcmVzZXJ2ZSgpIGFsb25nIHdpdGggcmVsYXlfd3JpdGUoKS4gU28gaXRzCi0JICogYmV0dGVyIHRvIHVzZSByZWxheV9yZXNlcnZlKCkgYWxvbmUuCi0JICovCi0JcmV0dXJuIHJlbGF5X3Jlc2VydmUobG9nLT5yZWxheS5jaGFubmVsLCAwKTsKLX0KLQotc3RhdGljIGJvb2wgZ3VjX2NoZWNrX2xvZ19idWZfb3ZlcmZsb3coc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZywKLQkJCQkgICAgICAgZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHR5cGUsCi0JCQkJICAgICAgIHVuc2lnbmVkIGludCBmdWxsX2NudCkKLXsKLQl1bnNpZ25lZCBpbnQgcHJldl9mdWxsX2NudCA9IGxvZy0+c3RhdHNbdHlwZV0uc2FtcGxlZF9vdmVyZmxvdzsKLQlib29sIG92ZXJmbG93ID0gZmFsc2U7Ci0KLQlpZiAoZnVsbF9jbnQgIT0gcHJldl9mdWxsX2NudCkgewotCQlvdmVyZmxvdyA9IHRydWU7Ci0KLQkJbG9nLT5zdGF0c1t0eXBlXS5vdmVyZmxvdyA9IGZ1bGxfY250OwotCQlsb2ctPnN0YXRzW3R5cGVdLnNhbXBsZWRfb3ZlcmZsb3cgKz0gZnVsbF9jbnQgLSBwcmV2X2Z1bGxfY250OwotCi0JCWlmIChmdWxsX2NudCA8IHByZXZfZnVsbF9jbnQpIHsKLQkJCS8qIGJ1ZmZlcl9mdWxsX2NudCBpcyBhIDQgYml0IGNvdW50ZXIgKi8KLQkJCWxvZy0+c3RhdHNbdHlwZV0uc2FtcGxlZF9vdmVyZmxvdyArPSAxNjsKLQkJfQotCi0JCWRldl9ub3RpY2VfcmF0ZWxpbWl0ZWQoZ3VjX3RvX2k5MTUobG9nX3RvX2d1Yyhsb2cpKS0+ZHJtLmRldiwKLQkJCQkgICAgICAgIkd1QyBsb2cgYnVmZmVyIG92ZXJmbG93XG4iKTsKLQl9Ci0KLQlyZXR1cm4gb3ZlcmZsb3c7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgZ3VjX2dldF9sb2dfYnVmZmVyX3NpemUoZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHR5cGUpCi17Ci0Jc3dpdGNoICh0eXBlKSB7Ci0JY2FzZSBHVUNfSVNSX0xPR19CVUZGRVI6Ci0JCXJldHVybiBJU1JfQlVGRkVSX1NJWkU7Ci0JY2FzZSBHVUNfRFBDX0xPR19CVUZGRVI6Ci0JCXJldHVybiBEUENfQlVGRkVSX1NJWkU7Ci0JY2FzZSBHVUNfQ1JBU0hfRFVNUF9MT0dfQlVGRkVSOgotCQlyZXR1cm4gQ1JBU0hfQlVGRkVSX1NJWkU7Ci0JZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKHR5cGUpOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBndWNfcmVhZF91cGRhdGVfbG9nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQotewotCXVuc2lnbmVkIGludCBidWZmZXJfc2l6ZSwgcmVhZF9vZmZzZXQsIHdyaXRlX29mZnNldCwgYnl0ZXNfdG9fY29weSwgZnVsbF9jbnQ7Ci0Jc3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0YXRlICpsb2dfYnVmX3N0YXRlLCAqbG9nX2J1Zl9zbmFwc2hvdF9zdGF0ZTsKLQlzdHJ1Y3QgZ3VjX2xvZ19idWZmZXJfc3RhdGUgbG9nX2J1Zl9zdGF0ZV9sb2NhbDsKLQllbnVtIGd1Y19sb2dfYnVmZmVyX3R5cGUgdHlwZTsKLQl2b2lkICpzcmNfZGF0YSwgKmRzdF9kYXRhOwotCWJvb2wgbmV3X292ZXJmbG93OwotCi0JbXV0ZXhfbG9jaygmbG9nLT5yZWxheS5sb2NrKTsKLQotCWlmIChXQVJOX09OKCFpbnRlbF9ndWNfbG9nX3JlbGF5X2VuYWJsZWQobG9nKSkpCi0JCWdvdG8gb3V0X3VubG9jazsKLQotCS8qIEdldCB0aGUgcG9pbnRlciB0byBzaGFyZWQgR3VDIGxvZyBidWZmZXIgKi8KLQlsb2dfYnVmX3N0YXRlID0gc3JjX2RhdGEgPSBsb2ctPnJlbGF5LmJ1Zl9hZGRyOwotCi0JLyogR2V0IHRoZSBwb2ludGVyIHRvIGxvY2FsIGJ1ZmZlciB0byBzdG9yZSB0aGUgbG9ncyAqLwotCWxvZ19idWZfc25hcHNob3Rfc3RhdGUgPSBkc3RfZGF0YSA9IGd1Y19nZXRfd3JpdGVfYnVmZmVyKGxvZyk7Ci0KLQlpZiAodW5saWtlbHkoIWxvZ19idWZfc25hcHNob3Rfc3RhdGUpKSB7Ci0JCS8qCi0JCSAqIFVzZWQgcmF0ZSBsaW1pdGVkIHRvIGF2b2lkIGRlbHVnZSBvZiBtZXNzYWdlcywgbG9ncyBtaWdodCBiZQotCQkgKiBnZXR0aW5nIGNvbnN1bWVkIGJ5IFVzZXIgYXQgYSBzbG93IHJhdGUuCi0JCSAqLwotCQlEUk1fRVJST1JfUkFURUxJTUlURUQoIm5vIHN1Yi1idWZmZXIgdG8gY2FwdHVyZSBsb2dzXG4iKTsKLQkJbG9nLT5yZWxheS5mdWxsX2NvdW50Kys7Ci0KLQkJZ290byBvdXRfdW5sb2NrOwotCX0KLQotCS8qIEFjdHVhbCBsb2dzIGFyZSBwcmVzZW50IGZyb20gdGhlIDJuZCBwYWdlICovCi0Jc3JjX2RhdGEgKz0gUEFHRV9TSVpFOwotCWRzdF9kYXRhICs9IFBBR0VfU0laRTsKLQotCWZvciAodHlwZSA9IEdVQ19JU1JfTE9HX0JVRkZFUjsgdHlwZSA8IEdVQ19NQVhfTE9HX0JVRkZFUjsgdHlwZSsrKSB7Ci0JCS8qCi0JCSAqIE1ha2UgYSBjb3B5IG9mIHRoZSBzdGF0ZSBzdHJ1Y3R1cmUsIGluc2lkZSBHdUMgbG9nIGJ1ZmZlcgotCQkgKiAod2hpY2ggaXMgdW5jYWNoZWQgbWFwcGVkKSwgb24gdGhlIHN0YWNrIHRvIGF2b2lkIHJlYWRpbmcKLQkJICogZnJvbSBpdCBtdWx0aXBsZSB0aW1lcy4KLQkJICovCi0JCW1lbWNweSgmbG9nX2J1Zl9zdGF0ZV9sb2NhbCwgbG9nX2J1Zl9zdGF0ZSwKLQkJICAgICAgIHNpemVvZihzdHJ1Y3QgZ3VjX2xvZ19idWZmZXJfc3RhdGUpKTsKLQkJYnVmZmVyX3NpemUgPSBndWNfZ2V0X2xvZ19idWZmZXJfc2l6ZSh0eXBlKTsKLQkJcmVhZF9vZmZzZXQgPSBsb2dfYnVmX3N0YXRlX2xvY2FsLnJlYWRfcHRyOwotCQl3cml0ZV9vZmZzZXQgPSBsb2dfYnVmX3N0YXRlX2xvY2FsLnNhbXBsZWRfd3JpdGVfcHRyOwotCQlmdWxsX2NudCA9IGxvZ19idWZfc3RhdGVfbG9jYWwuYnVmZmVyX2Z1bGxfY250OwotCi0JCS8qIEJvb2trZWVwaW5nIHN0dWZmICovCi0JCWxvZy0+c3RhdHNbdHlwZV0uZmx1c2ggKz0gbG9nX2J1Zl9zdGF0ZV9sb2NhbC5mbHVzaF90b19maWxlOwotCQluZXdfb3ZlcmZsb3cgPSBndWNfY2hlY2tfbG9nX2J1Zl9vdmVyZmxvdyhsb2csIHR5cGUsIGZ1bGxfY250KTsKLQotCQkvKiBVcGRhdGUgdGhlIHN0YXRlIG9mIHNoYXJlZCBsb2cgYnVmZmVyICovCi0JCWxvZ19idWZfc3RhdGUtPnJlYWRfcHRyID0gd3JpdGVfb2Zmc2V0OwotCQlsb2dfYnVmX3N0YXRlLT5mbHVzaF90b19maWxlID0gMDsKLQkJbG9nX2J1Zl9zdGF0ZSsrOwotCi0JCS8qIEZpcnN0IGNvcHkgdGhlIHN0YXRlIHN0cnVjdHVyZSBpbiBzbmFwc2hvdCBidWZmZXIgKi8KLQkJbWVtY3B5KGxvZ19idWZfc25hcHNob3Rfc3RhdGUsICZsb2dfYnVmX3N0YXRlX2xvY2FsLAotCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBndWNfbG9nX2J1ZmZlcl9zdGF0ZSkpOwotCi0JCS8qCi0JCSAqIFRoZSB3cml0ZSBwb2ludGVyIGNvdWxkIGhhdmUgYmVlbiB1cGRhdGVkIGJ5IEd1QyBmaXJtd2FyZSwKLQkJICogYWZ0ZXIgc2VuZGluZyB0aGUgZmx1c2ggaW50ZXJydXB0IHRvIEhvc3QsIGZvciBjb25zaXN0ZW5jeQotCQkgKiBzZXQgd3JpdGUgcG9pbnRlciB2YWx1ZSB0byBzYW1lIHZhbHVlIG9mIHNhbXBsZWRfd3JpdGVfcHRyCi0JCSAqIGluIHRoZSBzbmFwc2hvdCBidWZmZXIuCi0JCSAqLwotCQlsb2dfYnVmX3NuYXBzaG90X3N0YXRlLT53cml0ZV9wdHIgPSB3cml0ZV9vZmZzZXQ7Ci0JCWxvZ19idWZfc25hcHNob3Rfc3RhdGUrKzsKLQotCQkvKiBOb3cgY29weSB0aGUgYWN0dWFsIGxvZ3MuICovCi0JCWlmICh1bmxpa2VseShuZXdfb3ZlcmZsb3cpKSB7Ci0JCQkvKiBjb3B5IHRoZSB3aG9sZSBidWZmZXIgaW4gY2FzZSBvZiBvdmVyZmxvdyAqLwotCQkJcmVhZF9vZmZzZXQgPSAwOwotCQkJd3JpdGVfb2Zmc2V0ID0gYnVmZmVyX3NpemU7Ci0JCX0gZWxzZSBpZiAodW5saWtlbHkoKHJlYWRfb2Zmc2V0ID4gYnVmZmVyX3NpemUpIHx8Ci0JCQkJICAgICh3cml0ZV9vZmZzZXQgPiBidWZmZXJfc2l6ZSkpKSB7Ci0JCQlEUk1fRVJST1IoImludmFsaWQgbG9nIGJ1ZmZlciBzdGF0ZVxuIik7Ci0JCQkvKiBjb3B5IHdob2xlIGJ1ZmZlciBhcyBvZmZzZXRzIGFyZSB1bnJlbGlhYmxlICovCi0JCQlyZWFkX29mZnNldCA9IDA7Ci0JCQl3cml0ZV9vZmZzZXQgPSBidWZmZXJfc2l6ZTsKLQkJfQotCi0JCS8qIEp1c3QgY29weSB0aGUgbmV3bHkgd3JpdHRlbiBkYXRhICovCi0JCWlmIChyZWFkX29mZnNldCA+IHdyaXRlX29mZnNldCkgewotCQkJaTkxNV9tZW1jcHlfZnJvbV93Yyhkc3RfZGF0YSwgc3JjX2RhdGEsIHdyaXRlX29mZnNldCk7Ci0JCQlieXRlc190b19jb3B5ID0gYnVmZmVyX3NpemUgLSByZWFkX29mZnNldDsKLQkJfSBlbHNlIHsKLQkJCWJ5dGVzX3RvX2NvcHkgPSB3cml0ZV9vZmZzZXQgLSByZWFkX29mZnNldDsKLQkJfQotCQlpOTE1X21lbWNweV9mcm9tX3djKGRzdF9kYXRhICsgcmVhZF9vZmZzZXQsCi0JCQkJICAgIHNyY19kYXRhICsgcmVhZF9vZmZzZXQsIGJ5dGVzX3RvX2NvcHkpOwotCi0JCXNyY19kYXRhICs9IGJ1ZmZlcl9zaXplOwotCQlkc3RfZGF0YSArPSBidWZmZXJfc2l6ZTsKLQl9Ci0KLQlndWNfbW92ZV90b19uZXh0X2J1Zihsb2cpOwotCi1vdXRfdW5sb2NrOgotCW11dGV4X3VubG9jaygmbG9nLT5yZWxheS5sb2NrKTsKLX0KLQotc3RhdGljIHZvaWQgY2FwdHVyZV9sb2dzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQotewotCXN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cgPQotCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGludGVsX2d1Y19sb2csIHJlbGF5LmZsdXNoX3dvcmspOwotCi0JZ3VjX2xvZ19jYXB0dXJlX2xvZ3MobG9nKTsKLX0KLQotc3RhdGljIGludCBndWNfbG9nX21hcChzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQotewotCXZvaWQgKnZhZGRyOwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmbG9nLT5yZWxheS5sb2NrKTsKLQotCWlmICghbG9nLT52bWEpCi0JCXJldHVybiAtRU5PREVWOwotCi0JLyoKLQkgKiBDcmVhdGUgYSBXQyAoVW5jYWNoZWQgZm9yIHJlYWQpIHZtYWxsb2MgbWFwcGluZyBvZiBsb2cKLQkgKiBidWZmZXIgcGFnZXMsIHNvIHRoYXQgd2UgY2FuIGRpcmVjdGx5IGdldCB0aGUgZGF0YQotCSAqICh1cC10by1kYXRlKSBmcm9tIG1lbW9yeS4KLQkgKi8KLQl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKGxvZy0+dm1hLT5vYmosIEk5MTVfTUFQX1dDKTsKLQlpZiAoSVNfRVJSKHZhZGRyKSkKLQkJcmV0dXJuIFBUUl9FUlIodmFkZHIpOwotCi0JbG9nLT5yZWxheS5idWZfYWRkciA9IHZhZGRyOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19sb2dfdW5tYXAoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKLXsKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZsb2ctPnJlbGF5LmxvY2spOwotCi0JaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChsb2ctPnZtYS0+b2JqKTsKLQlsb2ctPnJlbGF5LmJ1Zl9hZGRyID0gTlVMTDsKLX0KLQotdm9pZCBpbnRlbF9ndWNfbG9nX2luaXRfZWFybHkoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKLXsKLQltdXRleF9pbml0KCZsb2ctPnJlbGF5LmxvY2spOwotCUlOSVRfV09SSygmbG9nLT5yZWxheS5mbHVzaF93b3JrLCBjYXB0dXJlX2xvZ3Nfd29yayk7Ci19Ci0KLXN0YXRpYyBpbnQgZ3VjX2xvZ19yZWxheV9jcmVhdGUoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBsb2dfdG9fZ3VjKGxvZyk7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQlzdHJ1Y3QgcmNoYW4gKmd1Y19sb2dfcmVsYXlfY2hhbjsKLQlzaXplX3Qgbl9zdWJidWZzLCBzdWJidWZfc2l6ZTsKLQlpbnQgcmV0OwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmbG9nLT5yZWxheS5sb2NrKTsKLQotCSAvKiBLZWVwIHRoZSBzaXplIG9mIHN1YiBidWZmZXJzIHNhbWUgYXMgc2hhcmVkIGxvZyBidWZmZXIgKi8KLQlzdWJidWZfc2l6ZSA9IGxvZy0+dm1hLT5zaXplOwotCi0JLyoKLQkgKiBTdG9yZSB1cCB0byA4IHNuYXBzaG90cywgd2hpY2ggaXMgbGFyZ2UgZW5vdWdoIHRvIGJ1ZmZlciBzdWZmaWNpZW50Ci0JICogYm9vdCB0aW1lIGxvZ3MgYW5kIHByb3ZpZGVzIGVub3VnaCBsZWV3YXkgdG8gVXNlciwgaW4gdGVybXMgb2YKLQkgKiBsYXRlbmN5LCBmb3IgY29uc3VtaW5nIHRoZSBsb2dzIGZyb20gcmVsYXkuIEFsc28gZG9lc24ndCB0YWtlCi0JICogdXAgdG9vIG11Y2ggbWVtb3J5LgotCSAqLwotCW5fc3ViYnVmcyA9IDg7Ci0KLQlndWNfbG9nX3JlbGF5X2NoYW4gPSByZWxheV9vcGVuKCJndWNfbG9nIiwKLQkJCQkJZGV2X3ByaXYtPmRybS5wcmltYXJ5LT5kZWJ1Z2ZzX3Jvb3QsCi0JCQkJCXN1YmJ1Zl9zaXplLCBuX3N1YmJ1ZnMsCi0JCQkJCSZyZWxheV9jYWxsYmFja3MsIGRldl9wcml2KTsKLQlpZiAoIWd1Y19sb2dfcmVsYXlfY2hhbikgewotCQlEUk1fRVJST1IoIkNvdWxkbid0IGNyZWF0ZSByZWxheSBjaGFuIGZvciBHdUMgbG9nZ2luZ1xuIik7Ci0KLQkJcmV0ID0gLUVOT01FTTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlHRU1fQlVHX09OKGd1Y19sb2dfcmVsYXlfY2hhbi0+c3ViYnVmX3NpemUgPCBzdWJidWZfc2l6ZSk7Ci0JbG9nLT5yZWxheS5jaGFubmVsID0gZ3VjX2xvZ19yZWxheV9jaGFuOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19sb2dfcmVsYXlfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQotewotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmxvZy0+cmVsYXkubG9jayk7Ci0KLQlyZWxheV9jbG9zZShsb2ctPnJlbGF5LmNoYW5uZWwpOwotCWxvZy0+cmVsYXkuY2hhbm5lbCA9IE5VTEw7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19sb2dfY2FwdHVyZV9sb2dzKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbG9nX3RvX2d1Yyhsb2cpOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0JaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Ci0KLQlndWNfcmVhZF91cGRhdGVfbG9nX2J1ZmZlcihsb2cpOwotCi0JLyoKLQkgKiBHZW5lcmFsbHkgZGV2aWNlIGlzIGV4cGVjdGVkIHRvIGJlIGFjdGl2ZSBvbmx5IGF0IHRoaXMKLQkgKiB0aW1lLCBzbyBnZXQvcHV0IHNob3VsZCBiZSByZWFsbHkgcXVpY2suCi0JICovCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikKLQkJZ3VjX2FjdGlvbl9mbHVzaF9sb2dfY29tcGxldGUoZ3VjKTsKLX0KLQotaW50IGludGVsX2d1Y19sb2dfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbG9nX3RvX2d1Yyhsb2cpOwotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXUzMiBndWNfbG9nX3NpemU7Ci0JaW50IHJldDsKLQotCUdFTV9CVUdfT04obG9nLT52bWEpOwotCi0JLyoKLQkgKiAgR3VDIExvZyBidWZmZXIgTGF5b3V0Ci0JICoKLQkgKiAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rIDAwQgotCSAqICB8ICAgIENyYXNoIGR1bXAgc3RhdGUgaGVhZGVyICAgIHwKLQkgKiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDMyQgotCSAqICB8ICAgICAgIERQQyBzdGF0ZSBoZWFkZXIgICAgICAgIHwKLQkgKiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDY0QgotCSAqICB8ICAgICAgIElTUiBzdGF0ZSBoZWFkZXIgICAgICAgIHwKLQkgKiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDk2QgotCSAqICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQkgKiAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rIFBBR0VfU0laRSAoNEtCKQotCSAqICB8ICAgICAgICBDcmFzaCBEdW1wIGxvZ3MgICAgICAgIHwKLQkgKiAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rICsgQ1JBU0hfU0laRQotCSAqICB8ICAgICAgICAgICBEUEMgbG9ncyAgICAgICAgICAgIHwKLQkgKiAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rICsgRFBDX1NJWkUKLQkgKiAgfCAgICAgICAgICAgSVNSIGxvZ3MgICAgICAgICAgICB8Ci0JICogICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KyArIElTUl9TSVpFCi0JICovCi0JZ3VjX2xvZ19zaXplID0gUEFHRV9TSVpFICsgQ1JBU0hfQlVGRkVSX1NJWkUgKyBEUENfQlVGRkVSX1NJWkUgKwotCQkJSVNSX0JVRkZFUl9TSVpFOwotCi0Jdm1hID0gaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYShndWMsIGd1Y19sb2dfc2l6ZSk7Ci0JaWYgKElTX0VSUih2bWEpKSB7Ci0JCXJldCA9IFBUUl9FUlIodm1hKTsKLQkJZ290byBlcnI7Ci0JfQotCi0JbG9nLT52bWEgPSB2bWE7Ci0KLQlsb2ctPmxldmVsID0gaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbDsKLQotCXJldHVybiAwOwotCi1lcnI6Ci0JRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgR3VDIGxvZyBidWZmZXIuICVkXG4iLCByZXQpOwotCXJldHVybiByZXQ7Ci19Ci0KLXZvaWQgaW50ZWxfZ3VjX2xvZ19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCi17Ci0JaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmxvZy0+dm1hLCAwKTsKLX0KLQotaW50IGludGVsX2d1Y19sb2dfc2V0X2xldmVsKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2csIHUzMiBsZXZlbCkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBsb2dfdG9fZ3VjKGxvZyk7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQlpbnQgcmV0ID0gMDsKLQotCUJVSUxEX0JVR19PTihHVUNfTE9HX1ZFUkJPU0lUWV9NSU4gIT0gMCk7Ci0JR0VNX0JVR19PTighbG9nLT52bWEpOwotCi0JLyoKLQkgKiBHdUMgaXMgcmVjb2duaXppbmcgbG9nIGxldmVscyBzdGFydGluZyBmcm9tIDAgdG8gbWF4LCB3ZSdyZSB1c2luZyAwCi0JICogYXMgaW5kaWNhdGlvbiB0aGF0IGxvZ2dpbmcgc2hvdWxkIGJlIGRpc2FibGVkLgotCSAqLwotCWlmIChsZXZlbCA8IEdVQ19MT0dfTEVWRUxfRElTQUJMRUQgfHwgbGV2ZWwgPiBHVUNfTE9HX0xFVkVMX01BWCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0KLQlpZiAobG9nLT5sZXZlbCA9PSBsZXZlbCkKLQkJZ290byBvdXRfdW5sb2NrOwotCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikKLQkJcmV0ID0gZ3VjX2FjdGlvbl9jb250cm9sX2xvZyhndWMsCi0JCQkJCSAgICAgR1VDX0xPR19MRVZFTF9JU19WRVJCT1NFKGxldmVsKSwKLQkJCQkJICAgICBHVUNfTE9HX0xFVkVMX0lTX0VOQUJMRUQobGV2ZWwpLAotCQkJCQkgICAgIEdVQ19MT0dfTEVWRUxfVE9fVkVSQk9TSVRZKGxldmVsKSk7Ci0JaWYgKHJldCkgewotCQlEUk1fREVCVUdfRFJJVkVSKCJndWNfbG9nX2NvbnRyb2wgYWN0aW9uIGZhaWxlZCAlZFxuIiwgcmV0KTsKLQkJZ290byBvdXRfdW5sb2NrOwotCX0KLQotCWxvZy0+bGV2ZWwgPSBsZXZlbDsKLQotb3V0X3VubG9jazoKLQltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLWJvb2wgaW50ZWxfZ3VjX2xvZ19yZWxheV9lbmFibGVkKGNvbnN0IHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCi17Ci0JcmV0dXJuIGxvZy0+cmVsYXkuYnVmX2FkZHI7Ci19Ci0KLWludCBpbnRlbF9ndWNfbG9nX3JlbGF5X29wZW4oc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKLXsKLQlpbnQgcmV0OwotCi0JbXV0ZXhfbG9jaygmbG9nLT5yZWxheS5sb2NrKTsKLQotCWlmIChpbnRlbF9ndWNfbG9nX3JlbGF5X2VuYWJsZWQobG9nKSkgewotCQlyZXQgPSAtRUVYSVNUOwotCQlnb3RvIG91dF91bmxvY2s7Ci0JfQotCi0JLyoKLQkgKiBXZSByZXF1aXJlIFNTRSA0LjEgZm9yIGZhc3QgcmVhZHMgZnJvbSB0aGUgR3VDIGxvZyBidWZmZXIgYW5kCi0JICogaXQgc2hvdWxkIGJlIHByZXNlbnQgb24gdGhlIGNoaXBzZXRzIHN1cHBvcnRpbmcgR3VDIGJhc2VkCi0JICogc3VibWlzc3Npb25zLgotCSAqLwotCWlmICghaTkxNV9oYXNfbWVtY3B5X2Zyb21fd2MoKSkgewotCQlyZXQgPSAtRU5YSU87Ci0JCWdvdG8gb3V0X3VubG9jazsKLQl9Ci0KLQlyZXQgPSBndWNfbG9nX3JlbGF5X2NyZWF0ZShsb2cpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0X3VubG9jazsKLQotCXJldCA9IGd1Y19sb2dfbWFwKGxvZyk7Ci0JaWYgKHJldCkKLQkJZ290byBvdXRfcmVsYXk7Ci0KLQltdXRleF91bmxvY2soJmxvZy0+cmVsYXkubG9jayk7Ci0KLQlndWNfbG9nX2VuYWJsZV9mbHVzaF9ldmVudHMobG9nKTsKLQotCS8qCi0JICogV2hlbiBHdUMgaXMgbG9nZ2luZyB3aXRob3V0IHVzIHJlbGF5aW5nIHRvIHVzZXJzcGFjZSwgd2UncmUgaWdub3JpbmcKLQkgKiB0aGUgZmx1c2ggbm90aWZpY2F0aW9uLiBUaGlzIG1lYW5zIHRoYXQgd2UgbmVlZCB0byB1bmNvbmRpdGlvbmFsbHkKLQkgKiBmbHVzaCBvbiByZWxheSBlbmFibGluZywgc2luY2UgR3VDIG9ubHkgbm90aWZpZXMgdXMgb25jZS4KLQkgKi8KLQlxdWV1ZV93b3JrKGxvZy0+cmVsYXkuZmx1c2hfd3EsICZsb2ctPnJlbGF5LmZsdXNoX3dvcmspOwotCi0JcmV0dXJuIDA7Ci0KLW91dF9yZWxheToKLQlndWNfbG9nX3JlbGF5X2Rlc3Ryb3kobG9nKTsKLW91dF91bmxvY2s6Ci0JbXV0ZXhfdW5sb2NrKCZsb2ctPnJlbGF5LmxvY2spOwotCi0JcmV0dXJuIHJldDsKLX0KLQotdm9pZCBpbnRlbF9ndWNfbG9nX3JlbGF5X2ZsdXNoKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbG9nX3RvX2d1Yyhsb2cpOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQotCS8qCi0JICogQmVmb3JlIGluaXRpYXRpbmcgdGhlIGZvcmNlZnVsIGZsdXNoLCB3YWl0IGZvciBhbnkgcGVuZGluZy9vbmdvaW5nCi0JICogZmx1c2ggdG8gY29tcGxldGUgb3RoZXJ3aXNlIGZvcmNlZnVsIGZsdXNoIG1heSBub3QgYWN0dWFsbHkgaGFwcGVuLgotCSAqLwotCWZsdXNoX3dvcmsoJmxvZy0+cmVsYXkuZmx1c2hfd29yayk7Ci0KLQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCi0JCWd1Y19hY3Rpb25fZmx1c2hfbG9nKGd1Yyk7Ci0KLQkvKiBHdUMgd291bGQgaGF2ZSB1cGRhdGVkIGxvZyBidWZmZXIgYnkgbm93LCBzbyBjYXB0dXJlIGl0ICovCi0JZ3VjX2xvZ19jYXB0dXJlX2xvZ3MobG9nKTsKLX0KLQotdm9pZCBpbnRlbF9ndWNfbG9nX3JlbGF5X2Nsb3NlKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbG9nX3RvX2d1Yyhsb2cpOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQotCWd1Y19sb2dfZGlzYWJsZV9mbHVzaF9ldmVudHMobG9nKTsKLQlzeW5jaHJvbml6ZV9pcnEoaTkxNS0+ZHJtLmlycSk7Ci0KLQlmbHVzaF93b3JrKCZsb2ctPnJlbGF5LmZsdXNoX3dvcmspOwotCi0JbXV0ZXhfbG9jaygmbG9nLT5yZWxheS5sb2NrKTsKLQlHRU1fQlVHX09OKCFpbnRlbF9ndWNfbG9nX3JlbGF5X2VuYWJsZWQobG9nKSk7Ci0JZ3VjX2xvZ191bm1hcChsb2cpOwotCWd1Y19sb2dfcmVsYXlfZGVzdHJveShsb2cpOwotCW11dGV4X3VubG9jaygmbG9nLT5yZWxheS5sb2NrKTsKLX0KLQotdm9pZCBpbnRlbF9ndWNfbG9nX2hhbmRsZV9mbHVzaF9ldmVudChzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQotewotCXF1ZXVlX3dvcmsobG9nLT5yZWxheS5mbHVzaF93cSwgJmxvZy0+cmVsYXkuZmx1c2hfd29yayk7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9nLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9nLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiYzc2M2YuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvZy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE3IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwotICogSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqLwotCi0jaWZuZGVmIF9JTlRFTF9HVUNfTE9HX0hfCi0jZGVmaW5lIF9JTlRFTF9HVUNfTE9HX0hfCi0KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgotI2luY2x1ZGUgPGxpbnV4L3JlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+Ci0KLSNpbmNsdWRlICJpbnRlbF9ndWNfZndpZi5oIgotI2luY2x1ZGUgImk5MTVfZ2VtLmgiCi0KLXN0cnVjdCBpbnRlbF9ndWM7Ci0KLSNpZmRlZiBDT05GSUdfRFJNX0k5MTVfREVCVUdfR1VDCi0jZGVmaW5lIENSQVNIX0JVRkZFUl9TSVpFCVNaXzJNCi0jZGVmaW5lIERQQ19CVUZGRVJfU0laRQkJU1pfOE0KLSNkZWZpbmUgSVNSX0JVRkZFUl9TSVpFCQlTWl84TQotI2Vsc2UKLSNkZWZpbmUgQ1JBU0hfQlVGRkVSX1NJWkUJU1pfOEsKLSNkZWZpbmUgRFBDX0JVRkZFUl9TSVpFCQlTWl8zMksKLSNkZWZpbmUgSVNSX0JVRkZFUl9TSVpFCQlTWl8zMksKLSNlbmRpZgotCi0vKgotICogV2hpbGUgd2UncmUgdXNpbmcgcGxhaW4gbG9nIGxldmVsIGluIGk5MTUsIEd1QyBjb250cm9scyBhcmUgbXVjaCBtb3JlLi4uCi0gKiAiZWxhYm9yYXRlIj8gV2UgaGF2ZSBhIGNvdXBsZSBvZiBiaXRzIGZvciB2ZXJib3NpdHksIHNlcGFyYXRlIGJpdCBmb3IgYWN0dWFsCi0gKiBsb2cgZW5hYmxpbmcsIGFuZCBzZXBhcmF0ZSBiaXQgZm9yIGRlZmF1bHQgbG9nZ2luZyAtIHdoaWNoICJjb252ZW5pZW50bHkiCi0gKiBpZ25vcmVzIHRoZSBlbmFibGUgYml0LgotICovCi0jZGVmaW5lIEdVQ19MT0dfTEVWRUxfRElTQUJMRUQJCTAKLSNkZWZpbmUgR1VDX0xPR19MRVZFTF9OT05fVkVSQk9TRQkxCi0jZGVmaW5lIEdVQ19MT0dfTEVWRUxfSVNfRU5BQkxFRCh4KQkoKHgpID4gR1VDX0xPR19MRVZFTF9ESVNBQkxFRCkKLSNkZWZpbmUgR1VDX0xPR19MRVZFTF9JU19WRVJCT1NFKHgpCSgoeCkgPiBHVUNfTE9HX0xFVkVMX05PTl9WRVJCT1NFKQotI2RlZmluZSBHVUNfTE9HX0xFVkVMX1RPX1ZFUkJPU0lUWSh4KSAoewkJXAotCXR5cGVvZih4KSBfeCA9ICh4KTsJCQkJXAotCUdVQ19MT0dfTEVWRUxfSVNfVkVSQk9TRShfeCkgPyBfeCAtIDIgOiAwOwlcCi19KQotI2RlZmluZSBHVUNfVkVSQk9TSVRZX1RPX0xPR19MRVZFTCh4KQkoKHgpICsgMikKLSNkZWZpbmUgR1VDX0xPR19MRVZFTF9NQVggR1VDX1ZFUkJPU0lUWV9UT19MT0dfTEVWRUwoR1VDX0xPR19WRVJCT1NJVFlfTUFYKQotCi1zdHJ1Y3QgaW50ZWxfZ3VjX2xvZyB7Ci0JdTMyIGxldmVsOwotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXN0cnVjdCB7Ci0JCXZvaWQgKmJ1Zl9hZGRyOwotCQlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqZmx1c2hfd3E7Ci0JCXN0cnVjdCB3b3JrX3N0cnVjdCBmbHVzaF93b3JrOwotCQlzdHJ1Y3QgcmNoYW4gKmNoYW5uZWw7Ci0JCXN0cnVjdCBtdXRleCBsb2NrOwotCQl1MzIgZnVsbF9jb3VudDsKLQl9IHJlbGF5OwotCS8qIGxvZ2dpbmcgcmVsYXRlZCBzdGF0cyAqLwotCXN0cnVjdCB7Ci0JCXUzMiBzYW1wbGVkX292ZXJmbG93OwotCQl1MzIgb3ZlcmZsb3c7Ci0JCXUzMiBmbHVzaDsKLQl9IHN0YXRzW0dVQ19NQVhfTE9HX0JVRkZFUl07Ci19OwotCi12b2lkIGludGVsX2d1Y19sb2dfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKTsKLWludCBpbnRlbF9ndWNfbG9nX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKTsKLXZvaWQgaW50ZWxfZ3VjX2xvZ19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOwotCi1pbnQgaW50ZWxfZ3VjX2xvZ19zZXRfbGV2ZWwoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZywgdTMyIGxldmVsKTsKLWJvb2wgaW50ZWxfZ3VjX2xvZ19yZWxheV9lbmFibGVkKGNvbnN0IHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOwotaW50IGludGVsX2d1Y19sb2dfcmVsYXlfb3BlbihzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKTsKLXZvaWQgaW50ZWxfZ3VjX2xvZ19yZWxheV9mbHVzaChzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKTsKLXZvaWQgaW50ZWxfZ3VjX2xvZ19yZWxheV9jbG9zZShzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKTsKLQotdm9pZCBpbnRlbF9ndWNfbG9nX2hhbmRsZV9mbHVzaF9ldmVudChzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKTsKLQotc3RhdGljIGlubGluZSB1MzIgaW50ZWxfZ3VjX2xvZ19nZXRfbGV2ZWwoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKLXsKLQlyZXR1cm4gbG9nLT5sZXZlbDsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfcmVnLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMTRmOGIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3JlZy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLSNpZm5kZWYgX0lOVEVMX0dVQ19SRUdfSF8KLSNkZWZpbmUgX0lOVEVMX0dVQ19SRUdfSF8KLQotLyogRGVmaW5pdGlvbnMgb2YgR3VDIEgvVyByZWdpc3RlcnMsIGJpdHMsIGV0YyAqLwotCi0jZGVmaW5lIEdVQ19TVEFUVVMJCQlfTU1JTygweGMwMDApCi0jZGVmaW5lICAgR1NfUkVTRVRfU0hJRlQJCTAKLSNkZWZpbmUgICBHU19NSUFfSU5fUkVTRVQJCSAgKDB4MDEgPDwgR1NfUkVTRVRfU0hJRlQpCi0jZGVmaW5lICAgR1NfQk9PVFJPTV9TSElGVAkJMQotI2RlZmluZSAgIEdTX0JPT1RST01fTUFTSwkJICAoMHg3RiA8PCBHU19CT09UUk9NX1NISUZUKQotI2RlZmluZSAgIEdTX0JPT1RST01fUlNBX0ZBSUxFRAkJICAoMHg1MCA8PCBHU19CT09UUk9NX1NISUZUKQotI2RlZmluZSAgIEdTX0JPT1RST01fSlVNUF9QQVNTRUQJICAoMHg3NiA8PCBHU19CT09UUk9NX1NISUZUKQotI2RlZmluZSAgIEdTX1VLRVJORUxfU0hJRlQJCTgKLSNkZWZpbmUgICBHU19VS0VSTkVMX01BU0sJCSAgKDB4RkYgPDwgR1NfVUtFUk5FTF9TSElGVCkKLSNkZWZpbmUgICBHU19VS0VSTkVMX0xBUElDX0RPTkUJCSAgKDB4MzAgPDwgR1NfVUtFUk5FTF9TSElGVCkKLSNkZWZpbmUgICBHU19VS0VSTkVMX0RQQ19FUlJPUgkJICAoMHg2MCA8PCBHU19VS0VSTkVMX1NISUZUKQotI2RlZmluZSAgIEdTX1VLRVJORUxfUkVBRFkJCSAgKDB4RjAgPDwgR1NfVUtFUk5FTF9TSElGVCkKLSNkZWZpbmUgICBHU19NSUFfU0hJRlQJCQkxNgotI2RlZmluZSAgIEdTX01JQV9NQVNLCQkJICAoMHgwNyA8PCBHU19NSUFfU0hJRlQpCi0jZGVmaW5lICAgR1NfTUlBX0NPUkVfU1RBVEUJCSAgKDB4MDEgPDwgR1NfTUlBX1NISUZUKQotI2RlZmluZSAgIEdTX01JQV9IQUxUX1JFUVVFU1RFRAkJICAoMHgwMiA8PCBHU19NSUFfU0hJRlQpCi0jZGVmaW5lICAgR1NfTUlBX0lTUl9FTlRSWQkJICAoMHgwNCA8PCBHU19NSUFfU0hJRlQpCi0jZGVmaW5lICAgR1NfQVVUSF9TVEFUVVNfU0hJRlQJCTMwCi0jZGVmaW5lICAgR1NfQVVUSF9TVEFUVVNfTUFTSwkJICAoMHgwMyA8PCBHU19BVVRIX1NUQVRVU19TSElGVCkKLSNkZWZpbmUgICBHU19BVVRIX1NUQVRVU19CQUQJCSAgKDB4MDEgPDwgR1NfQVVUSF9TVEFUVVNfU0hJRlQpCi0jZGVmaW5lICAgR1NfQVVUSF9TVEFUVVNfR09PRAkJICAoMHgwMiA8PCBHU19BVVRIX1NUQVRVU19TSElGVCkKLQotI2RlZmluZSBTT0ZUX1NDUkFUQ0gobikJCQlfTU1JTygweGMxODAgKyAobikgKiA0KQotI2RlZmluZSBTT0ZUX1NDUkFUQ0hfQ09VTlQJCTE2Ci0KLSNkZWZpbmUgR0VOMTFfU09GVF9TQ1JBVENIKG4pCQlfTU1JTygweDE5MDI0MCArIChuKSAqIDQpCi0jZGVmaW5lIEdFTjExX1NPRlRfU0NSQVRDSF9DT1VOVAk0Ci0KLSNkZWZpbmUgVU9TX1JTQV9TQ1JBVENIKGkpCQlfTU1JTygweGMyMDAgKyAoaSkgKiA0KQotI2RlZmluZSBVT1NfUlNBX1NDUkFUQ0hfQ09VTlQJCTY0Ci0KLSNkZWZpbmUgRE1BX0FERFJfMF9MT1cJCQlfTU1JTygweGMzMDApCi0jZGVmaW5lIERNQV9BRERSXzBfSElHSAkJCV9NTUlPKDB4YzMwNCkKLSNkZWZpbmUgRE1BX0FERFJfMV9MT1cJCQlfTU1JTygweGMzMDgpCi0jZGVmaW5lIERNQV9BRERSXzFfSElHSAkJCV9NTUlPKDB4YzMwYykKLSNkZWZpbmUgICBETUFfQUREUkVTU19TUEFDRV9XT1BDTQkgICg3IDw8IDE2KQotI2RlZmluZSAgIERNQV9BRERSRVNTX1NQQUNFX0dUVAkJICAoOCA8PCAxNikKLSNkZWZpbmUgRE1BX0NPUFlfU0laRQkJCV9NTUlPKDB4YzMxMCkKLSNkZWZpbmUgRE1BX0NUUkwJCQlfTU1JTygweGMzMTQpCi0jZGVmaW5lICAgSFVDX1VLRVJORUwJCQkgICgxPDw5KQotI2RlZmluZSAgIFVPU19NT1ZFCQkJICAoMTw8NCkKLSNkZWZpbmUgICBTVEFSVF9ETUEJCQkgICgxPDwwKQotI2RlZmluZSBETUFfR1VDX1dPUENNX09GRlNFVAkJX01NSU8oMHhjMzQwKQotI2RlZmluZSAgIEdVQ19XT1BDTV9PRkZTRVRfVkFMSUQJICAoMTw8MCkKLSNkZWZpbmUgICBIVUNfTE9BRElOR19BR0VOVF9WQ1IJCSAgKDA8PDEpCi0jZGVmaW5lICAgSFVDX0xPQURJTkdfQUdFTlRfR1VDCQkgICgxPDwxKQotI2RlZmluZSAgIEdVQ19XT1BDTV9PRkZTRVRfU0hJRlQJMTQKLSNkZWZpbmUgICBHVUNfV09QQ01fT0ZGU0VUX01BU0sJCSAgKDB4M2ZmZmYgPDwgR1VDX1dPUENNX09GRlNFVF9TSElGVCkKLSNkZWZpbmUgR1VDX01BWF9JRExFX0NPVU5UCQlfTU1JTygweEMzRTQpCi0KLSNkZWZpbmUgSFVDX1NUQVRVUzIgICAgICAgICAgICAgX01NSU8oMHhEM0IwKQotI2RlZmluZSAgIEhVQ19GV19WRVJJRklFRCAgICAgICAoMTw8NykKLQotI2RlZmluZSBHRU4xMV9IVUNfS0VSTkVMX0xPQURfSU5GTwlfTU1JTygweEMxREMpCi0jZGVmaW5lICAgSFVDX0xPQURfU1VDQ0VTU0ZVTAkJICAoMSA8PCAwKQotCi0jZGVmaW5lIEdVQ19XT1BDTV9TSVpFCQkJX01NSU8oMHhjMDUwKQotI2RlZmluZSAgIEdVQ19XT1BDTV9TSVpFX0xPQ0tFRAkJICAoMTw8MCkKLSNkZWZpbmUgICBHVUNfV09QQ01fU0laRV9TSElGVAkJMTIKLSNkZWZpbmUgICBHVUNfV09QQ01fU0laRV9NQVNLCQkgICgweGZmZmZmIDw8IEdVQ19XT1BDTV9TSVpFX1NISUZUKQotCi0jZGVmaW5lIEdFTjhfR1RfUE1fQ09ORklHCQlfTU1JTygweDEzODE0MCkKLSNkZWZpbmUgR0VOOUxQX0dUX1BNX0NPTkZJRwkJX01NSU8oMHgxMzgxNDApCi0jZGVmaW5lIEdFTjlfR1RfUE1fQ09ORklHCQlfTU1JTygweDEzODE2YykKLSNkZWZpbmUgICBHVF9ET09SQkVMTF9FTkFCTEUJCSAgKDE8PDApCi0KLSNkZWZpbmUgR0VOOF9HVENSCQkJX01NSU8oMHg0Mjc0KQotI2RlZmluZSAgIEdFTjhfR1RDUl9JTlZBTElEQVRFCQkgICgxPDwwKQotCi0jZGVmaW5lIEdVQ19BUkFUX0M2RElTCQkJX01NSU8oMHhBMTc4KQotCi0jZGVmaW5lIEdVQ19TSElNX0NPTlRST0wJCV9NTUlPKDB4YzA2NCkKLSNkZWZpbmUgICBHVUNfRElTQUJMRV9TUkFNX0lOSVRfVE9fWkVST0VTCSgxPDwwKQotI2RlZmluZSAgIEdVQ19FTkFCTEVfUkVBRF9DQUNIRV9MT0dJQwkJKDE8PDEpCi0jZGVmaW5lICAgR1VDX0VOQUJMRV9NSUFfQ0FDSElORwkJKDE8PDIpCi0jZGVmaW5lICAgR1VDX0dFTjEwX01TR0NIX0VOQUJMRQkJKDE8PDQpCi0jZGVmaW5lICAgR1VDX0VOQUJMRV9SRUFEX0NBQ0hFX0ZPUl9TUkFNX0RBVEEJKDE8PDkpCi0jZGVmaW5lICAgR1VDX0VOQUJMRV9SRUFEX0NBQ0hFX0ZPUl9XT1BDTV9EQVRBCSgxPDwxMCkKLSNkZWZpbmUgICBHVUNfRU5BQkxFX01JQV9DTE9DS19HQVRJTkcJCSgxPDwxNSkKLSNkZWZpbmUgICBHVUNfR0VOMTBfU0hJTV9XQ19FTkFCTEUJCSgxPDwyMSkKLQotI2RlZmluZSBHVUNfU0VORF9JTlRFUlJVUFQJCV9NTUlPKDB4YzRjOCkKLSNkZWZpbmUgICBHVUNfU0VORF9UUklHR0VSCQkgICgxPDwwKQotI2RlZmluZSBHRU4xMV9HVUNfSE9TVF9JTlRFUlJVUFQJX01NSU8oMHgxOTAxZjApCi0KLSNkZWZpbmUgR1VDX05VTV9ET09SQkVMTFMJCTI1NgotCi0vKiBmb3JtYXQgb2YgdGhlIEhXLW1vbml0b3JlZCBkb29yYmVsbCBjYWNoZWxpbmUgKi8KLXN0cnVjdCBndWNfZG9vcmJlbGxfaW5mbyB7Ci0JdTMyIGRiX3N0YXR1czsKLSNkZWZpbmUgR1VDX0RPT1JCRUxMX0RJU0FCTEVECQkwCi0jZGVmaW5lIEdVQ19ET09SQkVMTF9FTkFCTEVECQkxCi0KLQl1MzIgY29va2llOwotCXUzMiByZXNlcnZlZFsxNF07Ci19IF9fcGFja2VkOwotCi0jZGVmaW5lIEdFTjhfRFJCUkVHTCh4KQkJCV9NTUlPKDB4MTAwMCArICh4KSAqIDgpCi0jZGVmaW5lICAgR0VOOF9EUkJfVkFMSUQJCSAgKDE8PDApCi0jZGVmaW5lIEdFTjhfRFJCUkVHVSh4KQkJCV9NTUlPKDB4MTAwMCArICh4KSAqIDggKyA0KQotCi0jZGVmaW5lIERFX0dVQ1JNUgkJCV9NTUlPKDB4NDQwNTQpCi0KLSNkZWZpbmUgR1VDX0JDU19SQ1NfSUVSCQkJX01NSU8oMHhDNTUwKQotI2RlZmluZSBHVUNfVkNTMl9WQ1MxX0lFUgkJX01NSU8oMHhDNTU0KQotI2RlZmluZSBHVUNfV0RfVkVDU19JRVIJCQlfTU1JTygweEM1NTgpCi0jZGVmaW5lIEdVQ19QTV9QMjRDX0lFUgkJCV9NTUlPKDB4QzU1QykKLQotLyogR3VDIEludGVycnVwdCBWZWN0b3IgKi8KLSNkZWZpbmUgR0VOMTFfR1VDX0lOVFJfR1VDMkhPU1QJCSgxIDw8IDE1KQotI2RlZmluZSBHRU4xMV9HVUNfSU5UUl9FWEVDX0VSUk9SCSgxIDw8IDE0KQotI2RlZmluZSBHRU4xMV9HVUNfSU5UUl9ESVNQTEFZX0VWRU5UCSgxIDw8IDEzKQotI2RlZmluZSBHRU4xMV9HVUNfSU5UUl9TRU1fU0lHCQkoMSA8PCAxMikKLSNkZWZpbmUgR0VOMTFfR1VDX0lOVFJfSU9NTVUyR1VDCSgxIDw8IDExKQotI2RlZmluZSBHRU4xMV9HVUNfSU5UUl9ET09SQkVMTF9SQU5HCSgxIDw8IDEwKQotI2RlZmluZSBHRU4xMV9HVUNfSU5UUl9ETUFfRE9ORQkJKDEgPDwgIDkpCi0jZGVmaW5lIEdFTjExX0dVQ19JTlRSX0ZBVEFMX0VSUk9SCSgxIDw8ICA4KQotI2RlZmluZSBHRU4xMV9HVUNfSU5UUl9OT1RJRl9FUlJPUgkoMSA8PCAgNykKLSNkZWZpbmUgR0VOMTFfR1VDX0lOVFJfU1dfSU5UXzYJCSgxIDw8ICA2KQotI2RlZmluZSBHRU4xMV9HVUNfSU5UUl9TV19JTlRfNQkJKDEgPDwgIDUpCi0jZGVmaW5lIEdFTjExX0dVQ19JTlRSX1NXX0lOVF80CQkoMSA8PCAgNCkKLSNkZWZpbmUgR0VOMTFfR1VDX0lOVFJfU1dfSU5UXzMJCSgxIDw8ICAzKQotI2RlZmluZSBHRU4xMV9HVUNfSU5UUl9TV19JTlRfMgkJKDEgPDwgIDIpCi0jZGVmaW5lIEdFTjExX0dVQ19JTlRSX1NXX0lOVF8xCQkoMSA8PCAgMSkKLSNkZWZpbmUgR0VOMTFfR1VDX0lOVFJfU1dfSU5UXzAJCSgxIDw8ICAwKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjUzMWViLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2NpcmNfYnVmLmg+Ci0KLSNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfcG0uaCIKLSNpbmNsdWRlICJndC9pbnRlbF9scmNfcmVnLmgiCi0jaW5jbHVkZSAiZ3QvaW50ZWxfY29udGV4dC5oIgotI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9jb250ZXh0LmgiCi0KLSNpbmNsdWRlICJpbnRlbF9ndWNfc3VibWlzc2lvbi5oIgotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0KLSNkZWZpbmUgR1VDX1BSRUVNUFRfRklOSVNIRUQJCTB4MQotI2RlZmluZSBHVUNfUFJFRU1QVF9CUkVBRENSVU1CX0RXT1JEUwkweDgKLSNkZWZpbmUgR1VDX1BSRUVNUFRfQlJFQURDUlVNQl9CWVRFUwlcCi0JKHNpemVvZih1MzIpICogR1VDX1BSRUVNUFRfQlJFQURDUlVNQl9EV09SRFMpCi0KLS8qKgotICogRE9DOiBHdUMtYmFzZWQgY29tbWFuZCBzdWJtaXNzaW9uCi0gKgotICogR3VDIGNsaWVudDoKLSAqIEEgaW50ZWxfZ3VjX2NsaWVudCByZWZlcnMgdG8gYSBzdWJtaXNzaW9uIHBhdGggdGhyb3VnaCBHdUMuIEN1cnJlbnRseSwgdGhlcmUKLSAqIGFyZSB0d28gY2xpZW50cy4gT25lIG9mIHRoZW0gKHRoZSBleGVjYnVmX2NsaWVudCkgaXMgY2hhcmdlZCB3aXRoIGFsbAotICogc3VibWlzc2lvbnMgdG8gdGhlIEd1QywgdGhlIG90aGVyIG9uZSAocHJlZW1wdF9jbGllbnQpIGlzIHJlc3BvbnNpYmxlIGZvcgotICogcHJlZW1wdGluZyB0aGUgZXhlY2J1Zl9jbGllbnQuIFRoaXMgc3RydWN0IGlzIHRoZSBvd25lciBvZiBhIGRvb3JiZWxsLCBhCi0gKiBwcm9jZXNzIGRlc2NyaXB0b3IgYW5kIGEgd29ya3F1ZXVlIChhbGwgb2YgdGhlbSBpbnNpZGUgYSBzaW5nbGUgZ2VtIG9iamVjdAotICogdGhhdCBjb250YWlucyBhbGwgcmVxdWlyZWQgcGFnZXMgZm9yIHRoZXNlIGVsZW1lbnRzKS4KLSAqCi0gKiBHdUMgc3RhZ2UgZGVzY3JpcHRvcjoKLSAqIER1cmluZyBpbml0aWFsaXphdGlvbiwgdGhlIGRyaXZlciBhbGxvY2F0ZXMgYSBzdGF0aWMgcG9vbCBvZiAxMDI0IHN1Y2gKLSAqIGRlc2NyaXB0b3JzLCBhbmQgc2hhcmVzIHRoZW0gd2l0aCB0aGUgR3VDLgotICogQ3VycmVudGx5LCB0aGVyZSBleGlzdHMgYSAxOjEgbWFwcGluZyBiZXR3ZWVuIGEgaW50ZWxfZ3VjX2NsaWVudCBhbmQgYQotICogZ3VjX3N0YWdlX2Rlc2MgKHZpYSB0aGUgY2xpZW50J3Mgc3RhZ2VfaWQpLCBzbyBlZmZlY3RpdmVseSBvbmx5IG9uZQotICogZ2V0cyB1c2VkLiBUaGlzIHN0YWdlIGRlc2NyaXB0b3IgbGV0cyB0aGUgR3VDIGtub3cgYWJvdXQgdGhlIGRvb3JiZWxsLAotICogd29ya3F1ZXVlIGFuZCBwcm9jZXNzIGRlc2NyaXB0b3IuIFRoZW9yZXRpY2FsbHksIGl0IGFsc28gbGV0cyB0aGUgR3VDCi0gKiBrbm93IGFib3V0IG91ciBIVyBjb250ZXh0cyAoY29udGV4dCBJRCwgZXRjLi4uKSwgYnV0IHdlIGFjdHVhbGx5Ci0gKiBlbXBsb3kgYSBraW5kIG9mIHN1Ym1pc3Npb24gd2hlcmUgdGhlIEd1QyB1c2VzIHRoZSBMUkNBIHNlbnQgdmlhIHRoZSB3b3JrCi0gKiBpdGVtIGluc3RlYWQgKHRoZSBzaW5nbGUgZ3VjX3N0YWdlX2Rlc2MgYXNzb2NpYXRlZCB0byBleGVjYnVmIGNsaWVudAotICogY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRlZmF1bHQga2VybmVsIGNvbnRleHQgb25seSwgYnV0IHRoaXMgaXMKLSAqIGVzc2VudGlhbGx5IHVudXNlZCkuIFRoaXMgaXMgY2FsbGVkIGEgInByb3h5IiBzdWJtaXNzaW9uLgotICoKLSAqIFRoZSBTY3JhdGNoIHJlZ2lzdGVyczoKLSAqIFRoZXJlIGFyZSAxNiBNTUlPLWJhc2VkIHJlZ2lzdGVycyBzdGFydCBmcm9tIDB4QzE4MC4gVGhlIGtlcm5lbCBkcml2ZXIgd3JpdGVzCi0gKiBhIHZhbHVlIHRvIHRoZSBhY3Rpb24gcmVnaXN0ZXIgKFNPRlRfU0NSQVRDSF8wKSBhbG9uZyB3aXRoIGFueSBkYXRhLiBJdCB0aGVuCi0gKiB0cmlnZ2VycyBhbiBpbnRlcnJ1cHQgb24gdGhlIEd1QyB2aWEgYW5vdGhlciByZWdpc3RlciB3cml0ZSAoMHhDNEM4KS4KLSAqIEZpcm13YXJlIHdyaXRlcyBhIHN1Y2Nlc3MvZmFpbCBjb2RlIGJhY2sgdG8gdGhlIGFjdGlvbiByZWdpc3RlciBhZnRlcgotICogcHJvY2Vzc2VzIHRoZSByZXF1ZXN0LiBUaGUga2VybmVsIGRyaXZlciBwb2xscyB3YWl0aW5nIGZvciB0aGlzIHVwZGF0ZSBhbmQKLSAqIHRoZW4gcHJvY2VlZHMuCi0gKiBTZWUgaW50ZWxfZ3VjX3NlbmQoKQotICoKLSAqIERvb3JiZWxsczoKLSAqIERvb3JiZWxscyBhcmUgaW50ZXJydXB0cyB0byB1S2VybmVsLiBBIGRvb3JiZWxsIGlzIGEgc2luZ2xlIGNhY2hlIGxpbmUgKFFXKQotICogbWFwcGVkIGludG8gcHJvY2VzcyBzcGFjZS4KLSAqCi0gKiBXb3JrIEl0ZW1zOgotICogVGhlcmUgYXJlIHNldmVyYWwgdHlwZXMgb2Ygd29yayBpdGVtcyB0aGF0IHRoZSBob3N0IG1heSBwbGFjZSBpbnRvIGEKLSAqIHdvcmtxdWV1ZSwgZWFjaCB3aXRoIGl0cyBvd24gcmVxdWlyZW1lbnRzIGFuZCBsaW1pdGF0aW9ucy4gQ3VycmVudGx5IG9ubHkKLSAqIFdRX1RZUEVfSU5PUkRFUiBpcyBuZWVkZWQgdG8gc3VwcG9ydCBsZWdhY3kgc3VibWlzc2lvbiB2aWEgR3VDLCB3aGljaAotICogcmVwcmVzZW50cyBpbi1vcmRlciBxdWV1ZS4gVGhlIGtlcm5lbCBkcml2ZXIgcGFja3MgcmluZyB0YWlsIHBvaW50ZXIgYW5kIGFuCi0gKiBFTFNQIGNvbnRleHQgZGVzY3JpcHRvciBkd29yZCBpbnRvIFdvcmsgSXRlbS4KLSAqIFNlZSBndWNfYWRkX3JlcXVlc3QoKQotICoKLSAqLwotCi1zdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9od3NfcHJlZW1wdF9kb25lX2FkZHJlc3Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotewotCXJldHVybiAoaTkxNV9nZ3R0X29mZnNldChlbmdpbmUtPnN0YXR1c19wYWdlLnZtYSkgKwotCQlJOTE1X0dFTV9IV1NfUFJFRU1QVF9BRERSKTsKLX0KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqdG9fcHJpb2xpc3Qoc3RydWN0IHJiX25vZGUgKnJiKQotewotCXJldHVybiByYl9lbnRyeShyYiwgc3RydWN0IGk5MTVfcHJpb2xpc3QsIG5vZGUpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNfaGlnaF9wcmlvcml0eShzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCXJldHVybiAoY2xpZW50LT5wcmlvcml0eSA9PSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdIIHx8Ci0JCWNsaWVudC0+cHJpb3JpdHkgPT0gR1VDX0NMSUVOVF9QUklPUklUWV9ISUdIKTsKLX0KLQotc3RhdGljIGludCByZXNlcnZlX2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCi17Ci0JdW5zaWduZWQgbG9uZyBvZmZzZXQ7Ci0JdW5zaWduZWQgbG9uZyBlbmQ7Ci0JdTE2IGlkOwotCi0JR0VNX0JVR19PTihjbGllbnQtPmRvb3JiZWxsX2lkICE9IEdVQ19ET09SQkVMTF9JTlZBTElEKTsKLQotCS8qCi0JICogVGhlIGJpdG1hcCB0cmFja3Mgd2hpY2ggZG9vcmJlbGwgcmVnaXN0ZXJzIGFyZSBjdXJyZW50bHkgaW4gdXNlLgotCSAqIEl0IGlzIHNwbGl0IGludG8gdHdvIGhhbHZlczsgdGhlIGZpcnN0IGhhbGYgaXMgdXNlZCBmb3Igbm9ybWFsCi0JICogcHJpb3JpdHkgY29udGV4dHMsIHRoZSBzZWNvbmQgaGFsZiBmb3IgaGlnaC1wcmlvcml0eSBvbmVzLgotCSAqLwotCW9mZnNldCA9IDA7Ci0JZW5kID0gR1VDX05VTV9ET09SQkVMTFMgLyAyOwotCWlmIChpc19oaWdoX3ByaW9yaXR5KGNsaWVudCkpIHsKLQkJb2Zmc2V0ID0gZW5kOwotCQllbmQgKz0gb2Zmc2V0OwotCX0KLQotCWlkID0gZmluZF9uZXh0X3plcm9fYml0KGNsaWVudC0+Z3VjLT5kb29yYmVsbF9iaXRtYXAsIGVuZCwgb2Zmc2V0KTsKLQlpZiAoaWQgPT0gZW5kKQotCQlyZXR1cm4gLUVOT1NQQzsKLQotCV9fc2V0X2JpdChpZCwgY2xpZW50LT5ndWMtPmRvb3JiZWxsX2JpdG1hcCk7Ci0JY2xpZW50LT5kb29yYmVsbF9pZCA9IGlkOwotCURSTV9ERUJVR19EUklWRVIoImNsaWVudCAldSAoaGlnaCBwcmlvPSVzKSByZXNlcnZlZCBkb29yYmVsbDogJWRcbiIsCi0JCQkgY2xpZW50LT5zdGFnZV9pZCwgeWVzbm8oaXNfaGlnaF9wcmlvcml0eShjbGllbnQpKSwKLQkJCSBpZCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBib29sIGhhc19kb29yYmVsbChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCWlmIChjbGllbnQtPmRvb3JiZWxsX2lkID09IEdVQ19ET09SQkVMTF9JTlZBTElEKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlyZXR1cm4gdGVzdF9iaXQoY2xpZW50LT5kb29yYmVsbF9pZCwgY2xpZW50LT5ndWMtPmRvb3JiZWxsX2JpdG1hcCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHVucmVzZXJ2ZV9kb29yYmVsbChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCUdFTV9CVUdfT04oIWhhc19kb29yYmVsbChjbGllbnQpKTsKLQotCV9fY2xlYXJfYml0KGNsaWVudC0+ZG9vcmJlbGxfaWQsIGNsaWVudC0+Z3VjLT5kb29yYmVsbF9iaXRtYXApOwotCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBHVUNfRE9PUkJFTExfSU5WQUxJRDsKLX0KLQotLyoKLSAqIFRlbGwgdGhlIEd1QyB0byBhbGxvY2F0ZSBvciBkZWFsbG9jYXRlIGEgc3BlY2lmaWMgZG9vcmJlbGwKLSAqLwotCi1zdGF0aWMgaW50IF9fZ3VjX2FsbG9jYXRlX2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHN0YWdlX2lkKQotewotCXUzMiBhY3Rpb25bXSA9IHsKLQkJSU5URUxfR1VDX0FDVElPTl9BTExPQ0FURV9ET09SQkVMTCwKLQkJc3RhZ2VfaWQKLQl9OwotCi0JcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFjdGlvbikpOwotfQotCi1zdGF0aWMgaW50IF9fZ3VjX2RlYWxsb2NhdGVfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgc3RhZ2VfaWQpCi17Ci0JdTMyIGFjdGlvbltdID0gewotCQlJTlRFTF9HVUNfQUNUSU9OX0RFQUxMT0NBVEVfRE9PUkJFTEwsCi0JCXN0YWdlX2lkCi0JfTsKLQotCXJldHVybiBpbnRlbF9ndWNfc2VuZChndWMsIGFjdGlvbiwgQVJSQVlfU0laRShhY3Rpb24pKTsKLX0KLQotc3RhdGljIHN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqX19nZXRfc3RhZ2VfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqYmFzZSA9IGNsaWVudC0+Z3VjLT5zdGFnZV9kZXNjX3Bvb2xfdmFkZHI7Ci0KLQlyZXR1cm4gJmJhc2VbY2xpZW50LT5zdGFnZV9pZF07Ci19Ci0KLS8qCi0gKiBJbml0aWFsaXNlLCB1cGRhdGUsIG9yIGNsZWFyIGRvb3JiZWxsIGRhdGEgc2hhcmVkIHdpdGggdGhlIEd1QwotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBtb2RpZnkgc2hhcmVkIGRhdGEgYW5kIHNvIG5lZWQgYWNjZXNzIHRvIHRoZSBtYXBwZWQKLSAqIGNsaWVudCBvYmplY3Qgd2hpY2ggY29udGFpbnMgdGhlIHBhZ2UgYmVpbmcgdXNlZCBmb3IgdGhlIGRvb3JiZWxsCi0gKi8KLQotc3RhdGljIHZvaWQgX191cGRhdGVfZG9vcmJlbGxfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50LCB1MTYgbmV3X2lkKQotewotCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqZGVzYzsKLQotCS8qIFVwZGF0ZSB0aGUgR3VDJ3MgaWRlYSBvZiB0aGUgZG9vcmJlbGwgSUQgKi8KLQlkZXNjID0gX19nZXRfc3RhZ2VfZGVzYyhjbGllbnQpOwotCWRlc2MtPmRiX2lkID0gbmV3X2lkOwotfQotCi1zdGF0aWMgc3RydWN0IGd1Y19kb29yYmVsbF9pbmZvICpfX2dldF9kb29yYmVsbChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCXJldHVybiBjbGllbnQtPnZhZGRyICsgY2xpZW50LT5kb29yYmVsbF9vZmZzZXQ7Ci19Ci0KLXN0YXRpYyBib29sIF9fZG9vcmJlbGxfdmFsaWQoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MTYgZGJfaWQpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQotCUdFTV9CVUdfT04oZGJfaWQgPj0gR1VDX05VTV9ET09SQkVMTFMpOwotCXJldHVybiBJOTE1X1JFQUQoR0VOOF9EUkJSRUdMKGRiX2lkKSkgJiBHRU44X0RSQl9WQUxJRDsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0X2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCi17Ci0Jc3RydWN0IGd1Y19kb29yYmVsbF9pbmZvICpkb29yYmVsbDsKLQotCWRvb3JiZWxsID0gX19nZXRfZG9vcmJlbGwoY2xpZW50KTsKLQlkb29yYmVsbC0+ZGJfc3RhdHVzID0gR1VDX0RPT1JCRUxMX0VOQUJMRUQ7Ci0JZG9vcmJlbGwtPmNvb2tpZSA9IDA7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZmluaV9kb29yYmVsbChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCXN0cnVjdCBndWNfZG9vcmJlbGxfaW5mbyAqZG9vcmJlbGw7Ci0JdTE2IGRiX2lkID0gY2xpZW50LT5kb29yYmVsbF9pZDsKLQotCWRvb3JiZWxsID0gX19nZXRfZG9vcmJlbGwoY2xpZW50KTsKLQlkb29yYmVsbC0+ZGJfc3RhdHVzID0gR1VDX0RPT1JCRUxMX0RJU0FCTEVEOwotCi0JLyogRG9vcmJlbGwgcmVsZWFzZSBmbG93IHJlcXVpcmVzIHRoYXQgd2Ugd2FpdCBmb3IgR0VOOF9EUkJfVkFMSUQgYml0Ci0JICogdG8gZ28gdG8gemVybyBhZnRlciB1cGRhdGluZyBkYl9zdGF0dXMgYmVmb3JlIHdlIGNhbGwgdGhlIEd1QyB0bwotCSAqIHJlbGVhc2UgdGhlIGRvb3JiZWxsCi0JICovCi0JaWYgKHdhaXRfZm9yX3VzKCFfX2Rvb3JiZWxsX3ZhbGlkKGNsaWVudC0+Z3VjLCBkYl9pZCksIDEwKSkKLQkJV0FSTl9PTkNFKHRydWUsICJEb29yYmVsbCBuZXZlciBiZWNhbWUgaW52YWxpZCBhZnRlciBkaXNhYmxlXG4iKTsKLX0KLQotc3RhdGljIGludCBjcmVhdGVfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKLXsKLQlpbnQgcmV0OwotCi0JaWYgKFdBUk5fT04oIWhhc19kb29yYmVsbChjbGllbnQpKSkKLQkJcmV0dXJuIC1FTk9ERVY7IC8qIGludGVybmFsIHNldHVwIGVycm9yLCBzaG91bGQgbmV2ZXIgaGFwcGVuICovCi0KLQlfX3VwZGF0ZV9kb29yYmVsbF9kZXNjKGNsaWVudCwgY2xpZW50LT5kb29yYmVsbF9pZCk7Ci0JX19pbml0X2Rvb3JiZWxsKGNsaWVudCk7Ci0KLQlyZXQgPSBfX2d1Y19hbGxvY2F0ZV9kb29yYmVsbChjbGllbnQtPmd1YywgY2xpZW50LT5zdGFnZV9pZCk7Ci0JaWYgKHJldCkgewotCQlfX2ZpbmlfZG9vcmJlbGwoY2xpZW50KTsKLQkJX191cGRhdGVfZG9vcmJlbGxfZGVzYyhjbGllbnQsIEdVQ19ET09SQkVMTF9JTlZBTElEKTsKLQkJRFJNX0RFQlVHX0RSSVZFUigiQ291bGRuJ3QgY3JlYXRlIGNsaWVudCAldSBkb29yYmVsbDogJWRcbiIsCi0JCQkJIGNsaWVudC0+c3RhZ2VfaWQsIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZGVzdHJveV9kb29yYmVsbChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCWludCByZXQ7Ci0KLQlHRU1fQlVHX09OKCFoYXNfZG9vcmJlbGwoY2xpZW50KSk7Ci0KLQlfX2ZpbmlfZG9vcmJlbGwoY2xpZW50KTsKLQlyZXQgPSBfX2d1Y19kZWFsbG9jYXRlX2Rvb3JiZWxsKGNsaWVudC0+Z3VjLCBjbGllbnQtPnN0YWdlX2lkKTsKLQlpZiAocmV0KQotCQlEUk1fRVJST1IoIkNvdWxkbid0IGRlc3Ryb3kgY2xpZW50ICV1IGRvb3JiZWxsOiAlZFxuIiwKLQkJCSAgY2xpZW50LT5zdGFnZV9pZCwgcmV0KTsKLQotCV9fdXBkYXRlX2Rvb3JiZWxsX2Rlc2MoY2xpZW50LCBHVUNfRE9PUkJFTExfSU5WQUxJRCk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBfX3NlbGVjdF9jYWNoZWxpbmUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OwotCi0JLyogRG9vcmJlbGwgdXNlcyBhIHNpbmdsZSBjYWNoZSBsaW5lIHdpdGhpbiBhIHBhZ2UgKi8KLQlvZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShndWMtPmRiX2NhY2hlbGluZSk7Ci0KLQkvKiBNb3ZpbmcgdG8gbmV4dCBjYWNoZSBsaW5lIHRvIHJlZHVjZSBjb250ZW50aW9uICovCi0JZ3VjLT5kYl9jYWNoZWxpbmUgKz0gY2FjaGVfbGluZV9zaXplKCk7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJyZXNlcnZlZCBjYWNoZWxpbmUgMHglbHgsIG5leHQgMHgleCwgbGluZXNpemUgJXVcbiIsCi0JCQkgb2Zmc2V0LCBndWMtPmRiX2NhY2hlbGluZSwgY2FjaGVfbGluZV9zaXplKCkpOwotCXJldHVybiBvZmZzZXQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKgotX19nZXRfcHJvY2Vzc19kZXNjKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCi17Ci0JcmV0dXJuIGNsaWVudC0+dmFkZHIgKyBjbGllbnQtPnByb2NfZGVzY19vZmZzZXQ7Ci19Ci0KLS8qCi0gKiBJbml0aWFsaXNlIHRoZSBwcm9jZXNzIGRlc2NyaXB0b3Igc2hhcmVkIHdpdGggdGhlIEd1QyBmaXJtd2FyZS4KLSAqLwotc3RhdGljIHZvaWQgZ3VjX3Byb2NfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCi17Ci0Jc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKmRlc2M7Ci0KLQlkZXNjID0gbWVtc2V0KF9fZ2V0X3Byb2Nlc3NfZGVzYyhjbGllbnQpLCAwLCBzaXplb2YoKmRlc2MpKTsKLQotCS8qCi0JICogWFhYOiBwRG9vcmJlbGwgYW5kIFdRVkJhc2VBZGRyZXNzIGFyZSBwb2ludGVycyBpbiBwcm9jZXNzIGFkZHJlc3MKLQkgKiBzcGFjZSBmb3IgcmluZzMgY2xpZW50cyAoc2V0IHRoZW0gYXMgaW4gbW1hcF9pb2N0bCkgb3Iga2VybmVsCi0JICogc3BhY2UgZm9yIGtlcm5lbCBjbGllbnRzIChtYXAgb24gZGVtYW5kIGluc3RlYWQ/IE1heSBtYWtlIGRlYnVnCi0JICogZWFzaWVyIHRvIGhhdmUgaXQgbWFwcGVkKS4KLQkgKi8KLQlkZXNjLT53cV9iYXNlX2FkZHIgPSAwOwotCWRlc2MtPmRiX2Jhc2VfYWRkciA9IDA7Ci0KLQlkZXNjLT5zdGFnZV9pZCA9IGNsaWVudC0+c3RhZ2VfaWQ7Ci0JZGVzYy0+d3Ffc2l6ZV9ieXRlcyA9IEdVQ19XUV9TSVpFOwotCWRlc2MtPndxX3N0YXR1cyA9IFdRX1NUQVRVU19BQ1RJVkU7Ci0JZGVzYy0+cHJpb3JpdHkgPSBjbGllbnQtPnByaW9yaXR5OwotfQotCi1zdGF0aWMgdm9pZCBndWNfcHJvY19kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKLXsKLQlzdHJ1Y3QgZ3VjX3Byb2Nlc3NfZGVzYyAqZGVzYzsKLQotCWRlc2MgPSBfX2dldF9wcm9jZXNzX2Rlc2MoY2xpZW50KTsKLQltZW1zZXQoZGVzYywgMCwgc2l6ZW9mKCpkZXNjKSk7Ci19Ci0KLXN0YXRpYyBpbnQgZ3VjX3N0YWdlX2Rlc2NfcG9vbF9jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXZvaWQgKnZhZGRyOwotCi0Jdm1hID0gaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYShndWMsCi0JCQkJICAgICBQQUdFX0FMSUdOKHNpemVvZihzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MpICoKLQkJCQkgICAgIEdVQ19NQVhfU1RBR0VfREVTQ1JJUFRPUlMpKTsKLQlpZiAoSVNfRVJSKHZtYSkpCi0JCXJldHVybiBQVFJfRVJSKHZtYSk7Ci0KLQl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHZtYS0+b2JqLCBJOTE1X01BUF9XQik7Ci0JaWYgKElTX0VSUih2YWRkcikpIHsKLQkJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJnZtYSwgMCk7Ci0JCXJldHVybiBQVFJfRVJSKHZhZGRyKTsKLQl9Ci0KLQlndWMtPnN0YWdlX2Rlc2NfcG9vbCA9IHZtYTsKLQlndWMtPnN0YWdlX2Rlc2NfcG9vbF92YWRkciA9IHZhZGRyOwotCWlkYV9pbml0KCZndWMtPnN0YWdlX2lkcyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX3N0YWdlX2Rlc2NfcG9vbF9kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlpZGFfZGVzdHJveSgmZ3VjLT5zdGFnZV9pZHMpOwotCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPnN0YWdlX2Rlc2NfcG9vbCwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwotfQotCi0vKgotICogSW5pdGlhbGlzZS9jbGVhciB0aGUgc3RhZ2UgZGVzY3JpcHRvciBzaGFyZWQgd2l0aCB0aGUgR3VDIGZpcm13YXJlLgotICoKLSAqIFRoaXMgZGVzY3JpcHRvciB0ZWxscyB0aGUgR3VDIHdoZXJlIChpbiBHR1RUIHNwYWNlKSB0byBmaW5kIHRoZSBpbXBvcnRhbnQKLSAqIGRhdGEgc3RydWN0dXJlcyByZWxhdGluZyB0byB0aGlzIGNsaWVudCAoZG9vcmJlbGwsIHByb2Nlc3MgZGVzY3JpcHRvciwKLSAqIHdyaXRlIHF1ZXVlLCBldGMpLgotICovCi1zdGF0aWMgdm9pZCBndWNfc3RhZ2VfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gY2xpZW50LT5ndWM7Ci0Jc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IGNsaWVudC0+b3duZXI7Ci0Jc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKLQlzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MgKmRlc2M7Ci0Jc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwotCXUzMiBnZnhfYWRkcjsKLQotCWRlc2MgPSBfX2dldF9zdGFnZV9kZXNjKGNsaWVudCk7Ci0JbWVtc2V0KGRlc2MsIDAsIHNpemVvZigqZGVzYykpOwotCi0JZGVzYy0+YXR0cmlidXRlID0gR1VDX1NUQUdFX0RFU0NfQVRUUl9BQ1RJVkUgfAotCQkJICBHVUNfU1RBR0VfREVTQ19BVFRSX0tFUk5FTDsKLQlpZiAoaXNfaGlnaF9wcmlvcml0eShjbGllbnQpKQotCQlkZXNjLT5hdHRyaWJ1dGUgfD0gR1VDX1NUQUdFX0RFU0NfQVRUUl9QUkVFTVBUOwotCWRlc2MtPnN0YWdlX2lkID0gY2xpZW50LT5zdGFnZV9pZDsKLQlkZXNjLT5wcmlvcml0eSA9IGNsaWVudC0+cHJpb3JpdHk7Ci0JZGVzYy0+ZGJfaWQgPSBjbGllbnQtPmRvb3JiZWxsX2lkOwotCi0JZm9yX2VhY2hfZ2VtX2VuZ2luZShjZSwgaTkxNV9nZW1fY29udGV4dF9sb2NrX2VuZ2luZXMoY3R4KSwgaXQpIHsKLQkJc3RydWN0IGd1Y19leGVjbGlzdF9jb250ZXh0ICpscmM7Ci0KLQkJaWYgKCEoY2UtPmVuZ2luZS0+bWFzayAmIGNsaWVudC0+ZW5naW5lcykpCi0JCQljb250aW51ZTsKLQotCQkvKiBUT0RPOiBXZSBoYXZlIGEgZGVzaWduIGlzc3VlIHRvIGJlIHNvbHZlZCBoZXJlLiBPbmx5IHdoZW4gd2UKLQkJICogcmVjZWl2ZSB0aGUgZmlyc3QgYmF0Y2gsIHdlIGtub3cgd2hpY2ggZW5naW5lIGlzIHVzZWQgYnkgdGhlCi0JCSAqIHVzZXIuIEJ1dCBoZXJlIEd1QyBleHBlY3RzIHRoZSBscmMgYW5kIHJpbmcgdG8gYmUgcGlubmVkLiBJdAotCQkgKiBpcyBub3QgYW4gaXNzdWUgZm9yIGRlZmF1bHQgY29udGV4dCwgd2hpY2ggaXMgdGhlIG9ubHkgb25lCi0JCSAqIGZvciBub3cgd2hvIG93bnMgYSBHdUMgY2xpZW50LiBCdXQgZm9yIGZ1dHVyZSBvd25lciBvZiBHdUMKLQkJICogY2xpZW50LCBuZWVkIHRvIG1ha2Ugc3VyZSBscmMgaXMgcGlubmVkIHByaW9yIHRvIGVudGVyIGhlcmUuCi0JCSAqLwotCQlpZiAoIWNlLT5zdGF0ZSkKLQkJCWJyZWFrOwkvKiBYWFg6IGNvbnRpbnVlPyAqLwotCi0JCS8qCi0JCSAqIFhYWDogV2hlbiB0aGlzIGlzIGEgR1VDX1NUQUdFX0RFU0NfQVRUUl9LRVJORUwgY2xpZW50IChwcm94eQotCQkgKiBzdWJtaXNzaW9uIG9yLCBpbiBvdGhlciB3b3Jkcywgbm90IHVzaW5nIGEgZGlyZWN0IHN1Ym1pc3Npb24KLQkJICogbW9kZWwpIHRoZSBLTUQncyBMUkNBIGlzIG5vdCB1c2VkIGZvciBhbnkgd29yayBzdWJtaXNzaW9uLgotCQkgKiBJbnN0ZWFkLCB0aGUgR3VDIHVzZXMgdGhlIExSQ0Egb2YgdGhlIHVzZXIgbW9kZSBjb250ZXh0IChzZWUKLQkJICogZ3VjX2FkZF9yZXF1ZXN0IGJlbG93KS4KLQkJICovCi0JCWxyYyA9ICZkZXNjLT5scmNbY2UtPmVuZ2luZS0+Z3VjX2lkXTsKLQkJbHJjLT5jb250ZXh0X2Rlc2MgPSBsb3dlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7Ci0KLQkJLyogVGhlIHN0YXRlIHBhZ2UgaXMgYWZ0ZXIgUFBIV1NQICovCi0JCWxyYy0+cmluZ19scmNhID0gaW50ZWxfZ3VjX2dndHRfb2Zmc2V0KGd1YywgY2UtPnN0YXRlKSArCi0JCQkJIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKLQotCQkvKiBYWFg6IEluIGRpcmVjdCBzdWJtaXNzaW9uLCB0aGUgR3VDIHdhbnRzIHRoZSBIVyBjb250ZXh0IGlkCi0JCSAqIGhlcmUuIEluIHByb3h5IHN1Ym1pc3Npb24sIGl0IHdhbnRzIHRoZSBzdGFnZSBpZAotCQkgKi8KLQkJbHJjLT5jb250ZXh0X2lkID0gKGNsaWVudC0+c3RhZ2VfaWQgPDwgR1VDX0VMQ19DVFhJRF9PRkZTRVQpIHwKLQkJCQkoY2UtPmVuZ2luZS0+Z3VjX2lkIDw8IEdVQ19FTENfRU5HSU5FX09GRlNFVCk7Ci0KLQkJbHJjLT5yaW5nX2JlZ2luID0gaW50ZWxfZ3VjX2dndHRfb2Zmc2V0KGd1YywgY2UtPnJpbmctPnZtYSk7Ci0JCWxyYy0+cmluZ19lbmQgPSBscmMtPnJpbmdfYmVnaW4gKyBjZS0+cmluZy0+c2l6ZSAtIDE7Ci0JCWxyYy0+cmluZ19uZXh0X2ZyZWVfbG9jYXRpb24gPSBscmMtPnJpbmdfYmVnaW47Ci0JCWxyYy0+cmluZ19jdXJyZW50X3RhaWxfcG9pbnRlcl92YWx1ZSA9IDA7Ci0KLQkJZGVzYy0+ZW5naW5lc191c2VkIHw9IEJJVChjZS0+ZW5naW5lLT5ndWNfaWQpOwotCX0KLQlpOTE1X2dlbV9jb250ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJIb3N0IGVuZ2luZXMgMHgleCA9PiBHdUMgZW5naW5lcyB1c2VkIDB4JXhcbiIsCi0JCQkgY2xpZW50LT5lbmdpbmVzLCBkZXNjLT5lbmdpbmVzX3VzZWQpOwotCVdBUk5fT04oZGVzYy0+ZW5naW5lc191c2VkID09IDApOwotCi0JLyoKLQkgKiBUaGUgZG9vcmJlbGwsIHByb2Nlc3MgZGVzY3JpcHRvciwgYW5kIHdvcmtxdWV1ZSBhcmUgYWxsIHBhcnRzCi0JICogb2YgdGhlIGNsaWVudCBvYmplY3QsIHdoaWNoIHRoZSBHdUMgd2lsbCByZWZlcmVuY2UgdmlhIHRoZSBHR1RUCi0JICovCi0JZ2Z4X2FkZHIgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBjbGllbnQtPnZtYSk7Ci0JZGVzYy0+ZGJfdHJpZ2dlcl9waHkgPSBzZ19kbWFfYWRkcmVzcyhjbGllbnQtPnZtYS0+cGFnZXMtPnNnbCkgKwotCQkJCWNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0OwotCWRlc2MtPmRiX3RyaWdnZXJfY3B1ID0gcHRyX3RvX3U2NChfX2dldF9kb29yYmVsbChjbGllbnQpKTsKLQlkZXNjLT5kYl90cmlnZ2VyX3VrID0gZ2Z4X2FkZHIgKyBjbGllbnQtPmRvb3JiZWxsX29mZnNldDsKLQlkZXNjLT5wcm9jZXNzX2Rlc2MgPSBnZnhfYWRkciArIGNsaWVudC0+cHJvY19kZXNjX29mZnNldDsKLQlkZXNjLT53cV9hZGRyID0gZ2Z4X2FkZHIgKyBHVUNfREJfU0laRTsKLQlkZXNjLT53cV9zaXplID0gR1VDX1dRX1NJWkU7Ci0KLQlkZXNjLT5kZXNjX3ByaXZhdGUgPSBwdHJfdG9fdTY0KGNsaWVudCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKLXsKLQlzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MgKmRlc2M7Ci0KLQlkZXNjID0gX19nZXRfc3RhZ2VfZGVzYyhjbGllbnQpOwotCW1lbXNldChkZXNjLCAwLCBzaXplb2YoKmRlc2MpKTsKLX0KLQotLyogQ29uc3RydWN0IGEgV29yayBJdGVtIGFuZCBhcHBlbmQgaXQgdG8gdGhlIEd1QydzIFdvcmsgUXVldWUgKi8KLXN0YXRpYyB2b2lkIGd1Y193cV9pdGVtX2FwcGVuZChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50LAotCQkJICAgICAgIHUzMiB0YXJnZXRfZW5naW5lLCB1MzIgY29udGV4dF9kZXNjLAotCQkJICAgICAgIHUzMiByaW5nX3RhaWwsIHUzMiBmZW5jZV9pZCkKLXsKLQkvKiB3cWlfbGVuIGlzIGluIERXb3JkcywgYW5kIGRvZXMgbm90IGluY2x1ZGUgdGhlIG9uZS13b3JkIGhlYWRlciAqLwotCWNvbnN0IHNpemVfdCB3cWlfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZ3VjX3dxX2l0ZW0pOwotCWNvbnN0IHUzMiB3cWlfbGVuID0gd3FpX3NpemUgLyBzaXplb2YodTMyKSAtIDE7Ci0Jc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKmRlc2MgPSBfX2dldF9wcm9jZXNzX2Rlc2MoY2xpZW50KTsKLQlzdHJ1Y3QgZ3VjX3dxX2l0ZW0gKndxaTsKLQl1MzIgd3Ffb2ZmOwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmY2xpZW50LT53cV9sb2NrKTsKLQotCS8qIEZvciBub3cgd29ya3F1ZXVlIGl0ZW0gaXMgNCBEV3M7IHdvcmtxdWV1ZSBidWZmZXIgaXMgMiBwYWdlcy4gU28gd2UKLQkgKiBzaG91bGQgbm90IGhhdmUgdGhlIGNhc2Ugd2hlcmUgc3RydWN0dXJlIHdxaSBpcyBhY3Jvc3MgcGFnZSwgbmVpdGhlcgotCSAqIHdyYXBwZWQgdG8gdGhlIGJlZ2lubmluZy4gVGhpcyBzaW1wbGlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbiBiZWxvdy4KLQkgKgotCSAqIFhYWDogaWYgbm90IHRoZSBjYXNlLCB3ZSBuZWVkIHNhdmUgZGF0YSB0byBhIHRlbXAgd3FpIGFuZCBjb3B5IGl0IHRvCi0JICogd29ya3F1ZXVlIGJ1ZmZlciBkdyBieSBkdy4KLQkgKi8KLQlCVUlMRF9CVUdfT04od3FpX3NpemUgIT0gMTYpOwotCi0JLyogV2UgZXhwZWN0IHRoZSBXUSB0byBiZSBhY3RpdmUgaWYgd2UncmUgYXBwZW5kaW5nIGl0ZW1zIHRvIGl0ICovCi0JR0VNX0JVR19PTihkZXNjLT53cV9zdGF0dXMgIT0gV1FfU1RBVFVTX0FDVElWRSk7Ci0KLQkvKiBGcmVlIHNwYWNlIGlzIGd1YXJhbnRlZWQuICovCi0Jd3Ffb2ZmID0gUkVBRF9PTkNFKGRlc2MtPnRhaWwpOwotCUdFTV9CVUdfT04oQ0lSQ19TUEFDRSh3cV9vZmYsIFJFQURfT05DRShkZXNjLT5oZWFkKSwKLQkJCSAgICAgIEdVQ19XUV9TSVpFKSA8IHdxaV9zaXplKTsKLQlHRU1fQlVHX09OKHdxX29mZiAmICh3cWlfc2l6ZSAtIDEpKTsKLQotCS8qIFdRIHN0YXJ0cyBmcm9tIHRoZSBwYWdlIGFmdGVyIGRvb3JiZWxsIC8gcHJvY2Vzc19kZXNjICovCi0Jd3FpID0gY2xpZW50LT52YWRkciArIHdxX29mZiArIEdVQ19EQl9TSVpFOwotCi0JaWYgKEk5MTVfU0VMRlRFU1RfT05MWShjbGllbnQtPnVzZV9ub3Bfd3FpKSkgewotCQl3cWktPmhlYWRlciA9IFdRX1RZUEVfTk9PUCB8ICh3cWlfbGVuIDw8IFdRX0xFTl9TSElGVCk7Ci0JfSBlbHNlIHsKLQkJLyogTm93IGZpbGwgaW4gdGhlIDQtd29yZCB3b3JrIHF1ZXVlIGl0ZW0gKi8KLQkJd3FpLT5oZWFkZXIgPSBXUV9UWVBFX0lOT1JERVIgfAotCQkJICAgICAgKHdxaV9sZW4gPDwgV1FfTEVOX1NISUZUKSB8Ci0JCQkgICAgICAodGFyZ2V0X2VuZ2luZSA8PCBXUV9UQVJHRVRfU0hJRlQpIHwKLQkJCSAgICAgIFdRX05PX1dDRkxVU0hfV0FJVDsKLQkJd3FpLT5jb250ZXh0X2Rlc2MgPSBjb250ZXh0X2Rlc2M7Ci0JCXdxaS0+c3VibWl0X2VsZW1lbnRfaW5mbyA9IHJpbmdfdGFpbCA8PCBXUV9SSU5HX1RBSUxfU0hJRlQ7Ci0JCUdFTV9CVUdfT04ocmluZ190YWlsID4gV1FfUklOR19UQUlMX01BWCk7Ci0JCXdxaS0+ZmVuY2VfaWQgPSBmZW5jZV9pZDsKLQl9Ci0KLQkvKiBNYWtlIHRoZSB1cGRhdGUgdmlzaWJsZSB0byBHdUMgKi8KLQlXUklURV9PTkNFKGRlc2MtPnRhaWwsICh3cV9vZmYgKyB3cWlfc2l6ZSkgJiAoR1VDX1dRX1NJWkUgLSAxKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19yaW5nX2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCi17Ci0Jc3RydWN0IGd1Y19kb29yYmVsbF9pbmZvICpkYjsKLQl1MzIgY29va2llOwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmY2xpZW50LT53cV9sb2NrKTsKLQotCS8qIHBvaW50ZXIgb2YgY3VycmVudCBkb29yYmVsbCBjYWNoZWxpbmUgKi8KLQlkYiA9IF9fZ2V0X2Rvb3JiZWxsKGNsaWVudCk7Ci0KLQkvKgotCSAqIFdlJ3JlIG5vdCBleHBlY3RpbmcgdGhlIGRvb3JiZWxsIGNvb2tpZSB0byBjaGFuZ2UgYmVoaW5kIG91ciBiYWNrLAotCSAqIHdlIGFsc28gbmVlZCB0byB0cmVhdCAwIGFzIGEgcmVzZXJ2ZWQgdmFsdWUuCi0JICovCi0JY29va2llID0gUkVBRF9PTkNFKGRiLT5jb29raWUpOwotCVdBUk5fT05fT05DRSh4Y2hnKCZkYi0+Y29va2llLCBjb29raWUgKyAxID86IGNvb2tpZSArIDIpICE9IGNvb2tpZSk7Ci0KLQkvKiBYWFg6IGRvb3JiZWxsIHdhcyBsb3N0IGFuZCBuZWVkIHRvIGFjcXVpcmUgaXQgYWdhaW4gKi8KLQlHRU1fQlVHX09OKGRiLT5kYl9zdGF0dXMgIT0gR1VDX0RPT1JCRUxMX0VOQUJMRUQpOwotfQotCi1zdGF0aWMgdm9pZCBndWNfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2d1YyAqZ3VjLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBycS0+ZW5naW5lOwotCXUzMiBjdHhfZGVzYyA9IGxvd2VyXzMyX2JpdHMocnEtPmh3X2NvbnRleHQtPmxyY19kZXNjKTsKLQl1MzIgcmluZ190YWlsID0gaW50ZWxfcmluZ19zZXRfdGFpbChycS0+cmluZywgcnEtPnRhaWwpIC8gc2l6ZW9mKHU2NCk7Ci0KLQlzcGluX2xvY2soJmNsaWVudC0+d3FfbG9jayk7Ci0KLQlndWNfd3FfaXRlbV9hcHBlbmQoY2xpZW50LCBlbmdpbmUtPmd1Y19pZCwgY3R4X2Rlc2MsCi0JCQkgICByaW5nX3RhaWwsIHJxLT5mZW5jZS5zZXFubyk7Ci0JZ3VjX3JpbmdfZG9vcmJlbGwoY2xpZW50KTsKLQotCWNsaWVudC0+c3VibWlzc2lvbnNbZW5naW5lLT5pZF0gKz0gMTsKLQotCXNwaW5fdW5sb2NrKCZjbGllbnQtPndxX2xvY2spOwotfQotCi0vKgotICogV2hlbiB3ZSdyZSBkb2luZyBzdWJtaXNzaW9ucyB1c2luZyByZWd1bGFyIGV4ZWNsaXN0cyBiYWNrZW5kLCB3cml0aW5nIHRvCi0gKiBFTFNQIGZyb20gQ1BVIHNpZGUgaXMgZW5vdWdoIHRvIG1ha2Ugc3VyZSB0aGF0IHdyaXRlcyB0byByaW5nYnVmZmVyIHBhZ2VzCi0gKiBwaW5uZWQgaW4gbWFwcGFibGUgYXBlcnR1cmUgcG9ydGlvbiBvZiBHR1RUIGFyZSB2aXNpYmxlIHRvIGNvbW1hbmQgc3RyZWFtZXIuCi0gKiBXcml0ZXMgZG9uZSBieSBHdUMgb24gb3VyIGJlaGFsZiBhcmUgbm90IGd1YXJhbnRlZWluZyBzdWNoIG9yZGVyaW5nLAotICogdGhlcmVmb3JlLCB0byBlbnN1cmUgdGhlIGZsdXNoLCB3ZSdyZSBpc3N1aW5nIGEgUE9TVElORyBSRUFELgotICovCi1zdGF0aWMgdm9pZCBmbHVzaF9nZ3R0X3dyaXRlcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHZtYS0+dm0tPmk5MTU7Ci0KLQlpZiAoaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUodm1hKSkKLQkJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZF9mdygmaTkxNS0+dW5jb3JlLCBHVUNfU1RBVFVTKTsKLX0KLQotc3RhdGljIHZvaWQgaW5qZWN0X3ByZWVtcHRfY29udGV4dChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCi17Ci0Jc3RydWN0IGd1Y19wcmVlbXB0X3dvcmsgKnByZWVtcHRfd29yayA9Ci0JCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKnByZWVtcHRfd29yayksIHdvcmspOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHByZWVtcHRfd29yay0+ZW5naW5lOwotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGNvbnRhaW5lcl9vZihwcmVlbXB0X3dvcmssIHR5cGVvZigqZ3VjKSwKLQkJCQkJICAgICBwcmVlbXB0X3dvcmtbZW5naW5lLT5pZF0pOwotCXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQgPSBndWMtPnByZWVtcHRfY2xpZW50OwotCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqc3RhZ2VfZGVzYyA9IF9fZ2V0X3N0YWdlX2Rlc2MoY2xpZW50KTsKLQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBlbmdpbmUtPnByZWVtcHRfY29udGV4dDsKLQl1MzIgZGF0YVs3XTsKLQotCWlmICghY2UtPnJpbmctPmVtaXQpIHsgLyogcmVjcmVhdGUgdXBvbiBsb2FkL3Jlc3VtZSAqLwotCQl1MzIgYWRkciA9IGludGVsX2h3c19wcmVlbXB0X2RvbmVfYWRkcmVzcyhlbmdpbmUpOwotCQl1MzIgKmNzOwotCi0JCWNzID0gY2UtPnJpbmctPnZhZGRyOwotCQlpZiAoZW5naW5lLT5jbGFzcyA9PSBSRU5ERVJfQ0xBU1MpIHsKLQkJCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGVfcmNzKGNzLAotCQkJCQkJICAgICAgR1VDX1BSRUVNUFRfRklOSVNIRUQsCi0JCQkJCQkgICAgICBhZGRyLAotCQkJCQkJICAgICAgUElQRV9DT05UUk9MX0NTX1NUQUxMKTsKLQkJfSBlbHNlIHsKLQkJCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGUoY3MsCi0JCQkJCQkgIEdVQ19QUkVFTVBUX0ZJTklTSEVELAotCQkJCQkJICBhZGRyLAotCQkJCQkJICAwKTsKLQkJCSpjcysrID0gTUlfTk9PUDsKLQkJCSpjcysrID0gTUlfTk9PUDsKLQkJfQotCQkqY3MrKyA9IE1JX1VTRVJfSU5URVJSVVBUOwotCQkqY3MrKyA9IE1JX05PT1A7Ci0KLQkJY2UtPnJpbmctPmVtaXQgPSBHVUNfUFJFRU1QVF9CUkVBRENSVU1CX0JZVEVTOwotCQlHRU1fQlVHX09OKCh2b2lkICopY3MgLSBjZS0+cmluZy0+dmFkZHIgIT0gY2UtPnJpbmctPmVtaXQpOwotCi0JCWZsdXNoX2dndHRfd3JpdGVzKGNlLT5yaW5nLT52bWEpOwotCX0KLQotCXNwaW5fbG9ja19pcnEoJmNsaWVudC0+d3FfbG9jayk7Ci0JZ3VjX3dxX2l0ZW1fYXBwZW5kKGNsaWVudCwgZW5naW5lLT5ndWNfaWQsIGxvd2VyXzMyX2JpdHMoY2UtPmxyY19kZXNjKSwKLQkJCSAgIEdVQ19QUkVFTVBUX0JSRUFEQ1JVTUJfQllURVMgLyBzaXplb2YodTY0KSwgMCk7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZjbGllbnQtPndxX2xvY2spOwotCi0JLyoKLQkgKiBJZiBHdUMgZmlybXdhcmUgcGVyZm9ybXMgYW4gZW5naW5lIHJlc2V0IHdoaWxlIHRoYXQgZW5naW5lIGhhZAotCSAqIGEgcHJlZW1wdGlvbiBwZW5kaW5nLCBpdCB3aWxsIHNldCB0aGUgdGVybWluYXRlZCBhdHRyaWJ1dGUgYml0Ci0JICogb24gb3VyIHByZWVtcHRpb24gc3RhZ2UgZGVzY3JpcHRvci4gR3VDIGZpcm13YXJlIHJldGFpbnMgYWxsCi0JICogcGVuZGluZyB3b3JrIGl0ZW1zIGZvciBhIGhpZ2gtcHJpb3JpdHkgR3VDIGNsaWVudCwgdW5saWtlIHRoZQotCSAqIG5vcm1hbC1wcmlvcml0eSBHdUMgY2xpZW50IHdoZXJlIHdvcmsgaXRlbXMgYXJlIGRyb3BwZWQuIEl0Ci0JICogd2FudHMgdG8gbWFrZSBzdXJlIHRoZSBwcmVlbXB0LXRvLWlkbGUgd29yayBkb2Vzbid0IHJ1biB3aGVuCi0JICogc2NoZWR1bGluZyByZXN1bWVzLCBhbmQgdXNlcyB0aGlzIGJpdCB0byBpbmZvcm0gaXRzIHNjaGVkdWxlcgotCSAqIGFuZCBwcmVzdW1hYmx5IHVzIGFzIHdlbGwuIE91ciBqb2IgaXMgdG8gY2xlYXIgaXQgZm9yIHRoZSBuZXh0Ci0JICogcHJlZW1wdGlvbiBhZnRlciByZXNldCwgb3RoZXJ3aXNlIHRoYXQgYW5kIGZ1dHVyZSBwcmVlbXB0aW9ucwotCSAqIHdpbGwgbmV2ZXIgY29tcGxldGUuIFdlJ2xsIGp1c3QgY2xlYXIgaXQgZXZlcnkgdGltZS4KLQkgKi8KLQlzdGFnZV9kZXNjLT5hdHRyaWJ1dGUgJj0gfkdVQ19TVEFHRV9ERVNDX0FUVFJfVEVSTUlOQVRFRDsKLQotCWRhdGFbMF0gPSBJTlRFTF9HVUNfQUNUSU9OX1JFUVVFU1RfUFJFRU1QVElPTjsKLQlkYXRhWzFdID0gY2xpZW50LT5zdGFnZV9pZDsKLQlkYXRhWzJdID0gSU5URUxfR1VDX1BSRUVNUFRfT1BUSU9OX0RST1BfV09SS19RIHwKLQkJICBJTlRFTF9HVUNfUFJFRU1QVF9PUFRJT05fRFJPUF9TVUJNSVRfUTsKLQlkYXRhWzNdID0gZW5naW5lLT5ndWNfaWQ7Ci0JZGF0YVs0XSA9IGd1Yy0+ZXhlY2J1Zl9jbGllbnQtPnByaW9yaXR5OwotCWRhdGFbNV0gPSBndWMtPmV4ZWNidWZfY2xpZW50LT5zdGFnZV9pZDsKLQlkYXRhWzZdID0gaW50ZWxfZ3VjX2dndHRfb2Zmc2V0KGd1YywgZ3VjLT5zaGFyZWRfZGF0YSk7Ci0KLQlpZiAoV0FSTl9PTihpbnRlbF9ndWNfc2VuZChndWMsIGRhdGEsIEFSUkFZX1NJWkUoZGF0YSkpKSkgewotCQlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKCZlbmdpbmUtPmV4ZWNsaXN0cywKLQkJCQkgICAgICAgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKTsKLQkJdGFza2xldF9zY2hlZHVsZSgmZW5naW5lLT5leGVjbGlzdHMudGFza2xldCk7Ci0JfQotCi0JKHZvaWQpSTkxNV9TRUxGVEVTVF9PTkxZKGVuZ2luZS0+ZXhlY2xpc3RzLnByZWVtcHRfaGFuZy5jb3VudCsrKTsKLX0KLQotLyoKLSAqIFdlJ3JlIHVzaW5nIHVzZXIgaW50ZXJydXB0IGFuZCBIV1NQIHZhbHVlIHRvIG1hcmsgdGhhdCBwcmVlbXB0aW9uIGhhcwotICogZmluaXNoZWQgYW5kIEdQVSBpcyBpZGxlLiBOb3JtYWxseSwgd2UgY291bGQgdW53aW5kIGFuZCBjb250aW51ZSBzaW1pbGFyIHRvCi0gKiBleGVjbGlzdHMgc3VibWlzc2lvbiBwYXRoLiBVbmZvcnR1bmF0ZWx5LCB3aXRoIEd1QyB3ZSBhbHNvIG5lZWQgdG8gd2FpdCBmb3IKLSAqIGl0IHRvIGZpbmlzaCBpdHMgb3duIHBvc3Rwcm9jZXNzaW5nLCBiZWZvcmUgYXR0ZW1wdGluZyB0byBzdWJtaXQuIE90aGVyd2lzZQotICogR3VDIG1heSBzaWxlbnRseSBpZ25vcmUgb3VyIHN1Ym1pc3Npb25zLCBhbmQgdGh1cyB3ZSByaXNrIGxvc2luZyByZXF1ZXN0IGF0Ci0gKiBiZXN0LCBleGVjdXRpbmcgb3V0LW9mLW9yZGVyIGFuZCBjYXVzaW5nIGtlcm5lbCBwYW5pYyBhdCB3b3JzdC4KLSAqLwotI2RlZmluZSBHVUNfUFJFRU1QVF9QT1NUUFJPQ0VTU19ERUxBWV9NUyAxMAotc3RhdGljIHZvaWQgd2FpdF9mb3JfZ3VjX3ByZWVtcHRfcmVwb3J0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZW5naW5lLT5pOTE1LT5ndWM7Ci0Jc3RydWN0IGd1Y19zaGFyZWRfY3R4X2RhdGEgKmRhdGEgPSBndWMtPnNoYXJlZF9kYXRhX3ZhZGRyOwotCXN0cnVjdCBndWNfY3R4X3JlcG9ydCAqcmVwb3J0ID0KLQkJJmRhdGEtPnByZWVtcHRfY3R4X3JlcG9ydFtlbmdpbmUtPmd1Y19pZF07Ci0KLQlpZiAod2FpdF9mb3JfYXRvbWljKHJlcG9ydC0+cmVwb3J0X3JldHVybl9zdGF0dXMgPT0KLQkJCSAgICBJTlRFTF9HVUNfUkVQT1JUX1NUQVRVU19DT01QTEVURSwKLQkJCSAgICBHVUNfUFJFRU1QVF9QT1NUUFJPQ0VTU19ERUxBWV9NUykpCi0JCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIEd1QyBwcmVlbXB0aW9uIHJlcG9ydFxuIik7Ci0JLyoKLQkgKiBHdUMgaXMgZXhwZWN0aW5nIHRoYXQgd2UncmUgYWxzbyBnb2luZyB0byBjbGVhciB0aGUgYWZmZWN0ZWQgY29udGV4dAotCSAqIGNvdW50ZXIsIGxldCdzIGFsc28gcmVzZXQgdGhlIHJldHVybiBzdGF0dXMgdG8gbm90IGRlcGVuZCBvbiBHdUMKLQkgKiByZXNldHRpbmcgaXQgYWZ0ZXIgcmVjaWV2aW5nIGFub3RoZXIgcHJlZW1wdCBhY3Rpb24KLQkgKi8KLQlyZXBvcnQtPmFmZmVjdGVkX2NvdW50ID0gMDsKLQlyZXBvcnQtPnJlcG9ydF9yZXR1cm5fc3RhdHVzID0gSU5URUxfR1VDX1JFUE9SVF9TVEFUVVNfVU5LTk9XTjsKLX0KLQotc3RhdGljIHZvaWQgY29tcGxldGVfcHJlZW1wdF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwotCi0JR0VNX0JVR19PTighZXhlY2xpc3RzX2lzX2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkpOwotCi0JaWYgKGluamVjdF9wcmVlbXB0X2hhbmcoZXhlY2xpc3RzKSkKLQkJcmV0dXJuOwotCi0JZXhlY2xpc3RzX2NhbmNlbF9wb3J0X3JlcXVlc3RzKGV4ZWNsaXN0cyk7Ci0JZXhlY2xpc3RzX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKGV4ZWNsaXN0cyk7Ci0KLQl3YWl0X2Zvcl9ndWNfcHJlZW1wdF9yZXBvcnQoZW5naW5lKTsKLQlpbnRlbF93cml0ZV9zdGF0dXNfcGFnZShlbmdpbmUsIEk5MTVfR0VNX0hXU19QUkVFTVBULCAwKTsKLX0KLQotLyoqCi0gKiBndWNfc3VibWl0KCkgLSBTdWJtaXQgY29tbWFuZHMgdGhyb3VnaCBHdUMKLSAqIEBlbmdpbmU6IGVuZ2luZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbW1hbmRzCi0gKgotICogVGhlIG9ubHkgZXJyb3IgaGVyZSBhcmlzZXMgaWYgdGhlIGRvb3JiZWxsIGhhcmR3YXJlIGlzbid0IGZ1bmN0aW9uaW5nCi0gKiBhcyBleHBlY3RlZCwgd2hpY2ggcmVhbGx5IHNob3Vsbid0IGhhcHBlbi4KLSAqLwotc3RhdGljIHZvaWQgZ3VjX3N1Ym1pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmVuZ2luZS0+aTkxNS0+Z3VjOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwotCXN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZXhlY2xpc3RzLT5wb3J0OwotCXVuc2lnbmVkIGludCBuOwotCi0JZm9yIChuID0gMDsgbiA8IGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKTsgbisrKSB7Ci0JCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwotCQl1bnNpZ25lZCBpbnQgY291bnQ7Ci0KLQkJcnEgPSBwb3J0X3VucGFjaygmcG9ydFtuXSwgJmNvdW50KTsKLQkJaWYgKHJxICYmIGNvdW50ID09IDApIHsKLQkJCXBvcnRfc2V0KCZwb3J0W25dLCBwb3J0X3BhY2socnEsICsrY291bnQpKTsKLQotCQkJZmx1c2hfZ2d0dF93cml0ZXMocnEtPnJpbmctPnZtYSk7Ci0KLQkJCWd1Y19hZGRfcmVxdWVzdChndWMsIHJxKTsKLQkJfQotCX0KLX0KLQotc3RhdGljIHZvaWQgcG9ydF9hc3NpZ24oc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQotewotCUdFTV9CVUdfT04ocG9ydF9pc3NldChwb3J0KSk7Ci0KLQlwb3J0X3NldChwb3J0LCBpOTE1X3JlcXVlc3RfZ2V0KHJxKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHJxX3ByaW8oY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCi17Ci0JcmV0dXJuIHJxLT5zY2hlZC5hdHRyLnByaW9yaXR5OwotfQotCi1zdGF0aWMgaW5saW5lIGludCBwb3J0X3ByaW8oY29uc3Qgc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQpCi17Ci0JcmV0dXJuIHJxX3ByaW8ocG9ydF9yZXF1ZXN0KHBvcnQpKSB8IF9fTk9fUFJFRU1QVElPTjsKLX0KLQotc3RhdGljIGJvb2wgX19ndWNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7Ci0Jc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQgPSBleGVjbGlzdHMtPnBvcnQ7Ci0Jc3RydWN0IGk5MTVfcmVxdWVzdCAqbGFzdCA9IE5VTEw7Ci0JY29uc3Qgc3RydWN0IGV4ZWNsaXN0X3BvcnQgKiBjb25zdCBsYXN0X3BvcnQgPQotCQkmZXhlY2xpc3RzLT5wb3J0W2V4ZWNsaXN0cy0+cG9ydF9tYXNrXTsKLQlib29sIHN1Ym1pdCA9IGZhbHNlOwotCXN0cnVjdCByYl9ub2RlICpyYjsKLQotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+YWN0aXZlLmxvY2spOwotCi0JaWYgKHBvcnRfaXNzZXQocG9ydCkpIHsKLQkJaWYgKGludGVsX2VuZ2luZV9oYXNfcHJlZW1wdGlvbihlbmdpbmUpKSB7Ci0JCQlzdHJ1Y3QgZ3VjX3ByZWVtcHRfd29yayAqcHJlZW1wdF93b3JrID0KLQkJCQkmZW5naW5lLT5pOTE1LT5ndWMucHJlZW1wdF93b3JrW2VuZ2luZS0+aWRdOwotCQkJaW50IHByaW8gPSBleGVjbGlzdHMtPnF1ZXVlX3ByaW9yaXR5X2hpbnQ7Ci0KLQkJCWlmIChpOTE1X3NjaGVkdWxlcl9uZWVkX3ByZWVtcHQocHJpbywKLQkJCQkJCQlwb3J0X3ByaW8ocG9ydCkpKSB7Ci0JCQkJZXhlY2xpc3RzX3NldF9hY3RpdmUoZXhlY2xpc3RzLAotCQkJCQkJICAgICBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpOwotCQkJCXF1ZXVlX3dvcmsoZW5naW5lLT5pOTE1LT5ndWMucHJlZW1wdF93cSwKLQkJCQkJICAgJnByZWVtcHRfd29yay0+d29yayk7Ci0JCQkJcmV0dXJuIGZhbHNlOwotCQkJfQotCQl9Ci0KLQkJcG9ydCsrOwotCQlpZiAocG9ydF9pc3NldChwb3J0KSkKLQkJCXJldHVybiBmYWxzZTsKLQl9Ci0JR0VNX0JVR19PTihwb3J0X2lzc2V0KHBvcnQpKTsKLQotCXdoaWxlICgocmIgPSByYl9maXJzdF9jYWNoZWQoJmV4ZWNsaXN0cy0+cXVldWUpKSkgewotCQlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCA9IHRvX3ByaW9saXN0KHJiKTsKLQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsICpybjsKLQkJaW50IGk7Ci0KLQkJcHJpb2xpc3RfZm9yX2VhY2hfcmVxdWVzdF9jb25zdW1lKHJxLCBybiwgcCwgaSkgewotCQkJaWYgKGxhc3QgJiYgcnEtPmh3X2NvbnRleHQgIT0gbGFzdC0+aHdfY29udGV4dCkgewotCQkJCWlmIChwb3J0ID09IGxhc3RfcG9ydCkKLQkJCQkJZ290byBkb25lOwotCi0JCQkJaWYgKHN1Ym1pdCkKLQkJCQkJcG9ydF9hc3NpZ24ocG9ydCwgbGFzdCk7Ci0JCQkJcG9ydCsrOwotCQkJfQotCi0JCQlsaXN0X2RlbF9pbml0KCZycS0+c2NoZWQubGluayk7Ci0KLQkJCV9faTkxNV9yZXF1ZXN0X3N1Ym1pdChycSk7Ci0JCQl0cmFjZV9pOTE1X3JlcXVlc3RfaW4ocnEsIHBvcnRfaW5kZXgocG9ydCwgZXhlY2xpc3RzKSk7Ci0KLQkJCWxhc3QgPSBycTsKLQkJCXN1Ym1pdCA9IHRydWU7Ci0JCX0KLQotCQlyYl9lcmFzZV9jYWNoZWQoJnAtPm5vZGUsICZleGVjbGlzdHMtPnF1ZXVlKTsKLQkJaTkxNV9wcmlvbGlzdF9mcmVlKHApOwotCX0KLWRvbmU6Ci0JZXhlY2xpc3RzLT5xdWV1ZV9wcmlvcml0eV9oaW50ID0KLQkJcmIgPyB0b19wcmlvbGlzdChyYiktPnByaW9yaXR5IDogSU5UX01JTjsKLQlpZiAoc3VibWl0KQotCQlwb3J0X2Fzc2lnbihwb3J0LCBsYXN0KTsKLQlpZiAobGFzdCkKLQkJZXhlY2xpc3RzX3VzZXJfYmVnaW4oZXhlY2xpc3RzLCBleGVjbGlzdHMtPnBvcnQpOwotCi0JLyogV2UgbXVzdCBhbHdheXMga2VlcCB0aGUgYmVhc3QgZmVkIGlmIHdlIGhhdmUgd29yayBwaWxlZCB1cCAqLwotCUdFTV9CVUdfT04ocG9ydF9pc3NldChleGVjbGlzdHMtPnBvcnQpICYmCi0JCSAgICFleGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9VU0VSKSk7Ci0JR0VNX0JVR19PTihyYl9maXJzdF9jYWNoZWQoJmV4ZWNsaXN0cy0+cXVldWUpICYmCi0JCSAgICFwb3J0X2lzc2V0KGV4ZWNsaXN0cy0+cG9ydCkpOwotCi0JcmV0dXJuIHN1Ym1pdDsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotewotCWlmIChfX2d1Y19kZXF1ZXVlKGVuZ2luZSkpCi0JCWd1Y19zdWJtaXQoZW5naW5lKTsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKLQlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0cy0+cG9ydDsKLQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKLQotCXJxID0gcG9ydF9yZXF1ZXN0KHBvcnQpOwotCXdoaWxlIChycSAmJiBpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJxKSkgewotCQl0cmFjZV9pOTE1X3JlcXVlc3Rfb3V0KHJxKTsKLQkJaTkxNV9yZXF1ZXN0X3B1dChycSk7Ci0KLQkJcG9ydCA9IGV4ZWNsaXN0c19wb3J0X2NvbXBsZXRlKGV4ZWNsaXN0cywgcG9ydCk7Ci0JCWlmIChwb3J0X2lzc2V0KHBvcnQpKSB7Ci0JCQlleGVjbGlzdHNfdXNlcl9iZWdpbihleGVjbGlzdHMsIHBvcnQpOwotCQkJcnEgPSBwb3J0X3JlcXVlc3QocG9ydCk7Ci0JCX0gZWxzZSB7Ci0JCQlleGVjbGlzdHNfdXNlcl9lbmQoZXhlY2xpc3RzKTsKLQkJCXJxID0gTlVMTDsKLQkJfQotCX0KLQotCWlmIChleGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKSAmJgotCSAgICBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX1BSRUVNUFQpID09Ci0JICAgIEdVQ19QUkVFTVBUX0ZJTklTSEVEKQotCQljb21wbGV0ZV9wcmVlbXB0X2NvbnRleHQoZW5naW5lKTsKLQotCWlmICghZXhlY2xpc3RzX2lzX2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkpCi0JCWd1Y19kZXF1ZXVlKGVuZ2luZSk7Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKLQotCUdFTV9UUkFDRSgiJXNcbiIsIGVuZ2luZS0+bmFtZSk7Ci0KLQkvKgotCSAqIFByZXZlbnQgcmVxdWVzdCBzdWJtaXNzaW9uIHRvIHRoZSBoYXJkd2FyZSB1bnRpbCB3ZSBoYXZlCi0JICogY29tcGxldGVkIHRoZSByZXNldCBpbiBpOTE1X2dlbV9yZXNldF9maW5pc2goKS4gSWYgYSByZXF1ZXN0Ci0JICogaXMgY29tcGxldGVkIGJ5IG9uZSBlbmdpbmUsIGl0IG1heSB0aGVuIHF1ZXVlIGEgcmVxdWVzdAotCSAqIHRvIGEgc2Vjb25kIHZpYSBpdHMgZXhlY2xpc3RzLT50YXNrbGV0ICpqdXN0KiBhcyB3ZSBhcmUKLQkgKiBjYWxsaW5nIGVuZ2luZS0+aW5pdF9odygpIGFuZCBhbHNvIHdyaXRpbmcgdGhlIEVMU1AuCi0JICogVHVybmluZyBvZmYgdGhlIGV4ZWNsaXN0cy0+dGFza2xldCB1bnRpbCB0aGUgcmVzZXQgaXMgb3ZlcgotCSAqIHByZXZlbnRzIHRoZSByYWNlLgotCSAqLwotCV9fdGFza2xldF9kaXNhYmxlX3N5bmNfb25jZSgmZXhlY2xpc3RzLT50YXNrbGV0KTsKLQotCS8qCi0JICogV2UncmUgdXNpbmcgd29ya2VyIHRvIHF1ZXVlIHByZWVtcHRpb24gcmVxdWVzdHMgZnJvbSB0aGUgdGFza2xldCBpbgotCSAqIEd1QyBzdWJtaXNzaW9uIG1vZGUuCi0JICogRXZlbiB0aG91Z2ggdGFza2xldCB3YXMgZGlzYWJsZWQsIHdlIG1heSBzdGlsbCBoYXZlIGEgd29ya2VyIHF1ZXVlZC4KLQkgKiBMZXQncyBtYWtlIHN1cmUgdGhhdCBhbGwgd29ya2VycyBzY2hlZHVsZWQgYmVmb3JlIGRpc2FibGluZyB0aGUKLQkgKiB0YXNrbGV0IGFyZSBjb21wbGV0ZWQgYmVmb3JlIGNvbnRpbnVpbmcgd2l0aCB0aGUgcmVzZXQuCi0JICovCi0JaWYgKGVuZ2luZS0+aTkxNS0+Z3VjLnByZWVtcHRfd3EpCi0JCWZsdXNoX3dvcmtxdWV1ZShlbmdpbmUtPmk5MTUtPmd1Yy5wcmVlbXB0X3dxKTsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgYm9vbCBzdGFsbGVkKQotewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwotCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwotCi0JZXhlY2xpc3RzX2NhbmNlbF9wb3J0X3JlcXVlc3RzKGV4ZWNsaXN0cyk7Ci0KLQkvKiBQdXNoIGJhY2sgYW55IGluY29tcGxldGUgcmVxdWVzdHMgZm9yIHJlcGxheSBhZnRlciB0aGUgcmVzZXQuICovCi0JcnEgPSBleGVjbGlzdHNfdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoZXhlY2xpc3RzKTsKLQlpZiAoIXJxKQotCQlnb3RvIG91dF91bmxvY2s7Ci0KLQlpZiAoIWk5MTVfcmVxdWVzdF9zdGFydGVkKHJxKSkKLQkJc3RhbGxlZCA9IGZhbHNlOwotCi0JaTkxNV9yZXNldF9yZXF1ZXN0KHJxLCBzdGFsbGVkKTsKLQlpbnRlbF9scl9jb250ZXh0X3Jlc2V0KGVuZ2luZSwgcnEtPmh3X2NvbnRleHQsIHJxLT5oZWFkLCBzdGFsbGVkKTsKLQotb3V0X3VubG9jazoKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwotCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCAqcm47Ci0Jc3RydWN0IHJiX25vZGUgKnJiOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlHRU1fVFJBQ0UoIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwotCi0JLyoKLQkgKiBCZWZvcmUgd2UgY2FsbCBlbmdpbmUtPmNhbmNlbF9yZXF1ZXN0cygpLCB3ZSBzaG91bGQgaGF2ZSBleGNsdXNpdmUKLQkgKiBhY2Nlc3MgdG8gdGhlIHN1Ym1pc3Npb24gc3RhdGUuIFRoaXMgaXMgYXJyYW5nZWQgZm9yIHVzIGJ5IHRoZQotCSAqIGNhbGxlciBkaXNhYmxpbmcgdGhlIGludGVycnVwdCBnZW5lcmF0aW9uLCB0aGUgdGFza2xldCBhbmQgb3RoZXIKLQkgKiB0aHJlYWRzIHRoYXQgbWF5IHRoZW4gYWNjZXNzIHRoZSBzYW1lIHN0YXRlLCBnaXZpbmcgdXMgYSBmcmVlIGhhbmQKLQkgKiB0byByZXNldCBzdGF0ZS4gSG93ZXZlciwgd2Ugc3RpbGwgbmVlZCB0byBsZXQgbG9ja2RlcCBiZSBhd2FyZSB0aGF0Ci0JICogd2Uga25vdyB0aGlzIHN0YXRlIG1heSBiZSBhY2Nlc3NlZCBpbiBoYXJkaXJxIGNvbnRleHQsIHNvIHdlCi0JICogZGlzYWJsZSB0aGUgaXJxIGFyb3VuZCB0aGlzIG1hbmlwdWxhdGlvbiBhbmQgd2Ugd2FudCB0byBrZWVwCi0JICogdGhlIHNwaW5sb2NrIGZvY3VzZWQgb24gaXRzIGR1dGllcyBhbmQgbm90IGFjY2lkZW50YWxseSBjb25mbGF0ZQotCSAqIGNvdmVyYWdlIHRvIHRoZSBzdWJtaXNzaW9uJ3MgaXJxIHN0YXRlLiAoU2ltaWxhcmx5LCBhbHRob3VnaCB3ZQotCSAqIHNob3VsZG4ndCBuZWVkIHRvIGRpc2FibGUgaXJxIGFyb3VuZCB0aGUgbWFuaXB1bGF0aW9uIG9mIHRoZQotCSAqIHN1Ym1pc3Npb24ncyBpcnEgc3RhdGUsIHdlIGFsc28gd2lzaCB0byByZW1pbmQgb3Vyc2VsdmVzIHRoYXQKLQkgKiBpdCBpcyBpcnEgc3RhdGUuKQotCSAqLwotCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Ci0KLQkvKiBDYW5jZWwgdGhlIHJlcXVlc3RzIG9uIHRoZSBIVyBhbmQgY2xlYXIgdGhlIEVMU1AgdHJhY2tlci4gKi8KLQlleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsKLQotCS8qIE1hcmsgYWxsIGV4ZWN1dGluZyByZXF1ZXN0cyBhcyBza2lwcGVkLiAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkocnEsICZlbmdpbmUtPmFjdGl2ZS5yZXF1ZXN0cywgc2NoZWQubGluaykgewotCQlpZiAoIWk5MTVfcmVxdWVzdF9zaWduYWxlZChycSkpCi0JCQlkbWFfZmVuY2Vfc2V0X2Vycm9yKCZycS0+ZmVuY2UsIC1FSU8pOwotCi0JCWk5MTVfcmVxdWVzdF9tYXJrX2NvbXBsZXRlKHJxKTsKLQl9Ci0KLQkvKiBGbHVzaCB0aGUgcXVldWVkIHJlcXVlc3RzIHRvIHRoZSB0aW1lbGluZSBsaXN0IChmb3IgcmV0aXJpbmcpLiAqLwotCXdoaWxlICgocmIgPSByYl9maXJzdF9jYWNoZWQoJmV4ZWNsaXN0cy0+cXVldWUpKSkgewotCQlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCA9IHRvX3ByaW9saXN0KHJiKTsKLQkJaW50IGk7Ci0KLQkJcHJpb2xpc3RfZm9yX2VhY2hfcmVxdWVzdF9jb25zdW1lKHJxLCBybiwgcCwgaSkgewotCQkJbGlzdF9kZWxfaW5pdCgmcnEtPnNjaGVkLmxpbmspOwotCQkJX19pOTE1X3JlcXVlc3Rfc3VibWl0KHJxKTsKLQkJCWRtYV9mZW5jZV9zZXRfZXJyb3IoJnJxLT5mZW5jZSwgLUVJTyk7Ci0JCQlpOTE1X3JlcXVlc3RfbWFya19jb21wbGV0ZShycSk7Ci0JCX0KLQotCQlyYl9lcmFzZV9jYWNoZWQoJnAtPm5vZGUsICZleGVjbGlzdHMtPnF1ZXVlKTsKLQkJaTkxNV9wcmlvbGlzdF9mcmVlKHApOwotCX0KLQotCS8qIFJlbWFpbmluZyBfdW5yZWFkeV8gcmVxdWVzdHMgd2lsbCBiZSBub3AnZWQgd2hlbiBzdWJtaXR0ZWQgKi8KLQotCWV4ZWNsaXN0cy0+cXVldWVfcHJpb3JpdHlfaGludCA9IElOVF9NSU47Ci0JZXhlY2xpc3RzLT5xdWV1ZSA9IFJCX1JPT1RfQ0FDSEVEOwotCUdFTV9CVUdfT04ocG9ydF9pc3NldChleGVjbGlzdHMtPnBvcnQpKTsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX3Jlc2V0X2ZpbmlzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7Ci0KLQlpZiAoX190YXNrbGV0X2VuYWJsZSgmZXhlY2xpc3RzLT50YXNrbGV0KSkKLQkJLyogQW5kIGtpY2sgaW4gY2FzZSB3ZSBtaXNzZWQgYSBuZXcgcmVxdWVzdCBzdWJtaXNzaW9uLiAqLwotCQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZleGVjbGlzdHMtPnRhc2tsZXQpOwotCi0JR0VNX1RSQUNFKCIlczogZGVwdGgtPiVkXG4iLCBlbmdpbmUtPm5hbWUsCi0JCSAgYXRvbWljX3JlYWQoJmV4ZWNsaXN0cy0+dGFza2xldC5jb3VudCkpOwotfQotCi0vKgotICogRXZlcnl0aGluZyBiZWxvdyBoZXJlIGlzIGNvbmNlcm5lZCB3aXRoIHNldHVwICYgdGVhcmRvd24sIGFuZCBpcwotICogdGhlcmVmb3JlIG5vdCBwYXJ0IG9mIHRoZSBzb21ld2hhdCB0aW1lLWNyaXRpY2FsIGJhdGNoLXN1Ym1pc3Npb24KLSAqIHBhdGggb2YgZ3VjX3N1Ym1pdCgpIGFib3ZlLgotICovCi0KLS8qIENoZWNrIHRoYXQgYSBkb29yYmVsbCByZWdpc3RlciBpcyBpbiB0aGUgZXhwZWN0ZWQgc3RhdGUgKi8KLXN0YXRpYyBib29sIGRvb3JiZWxsX29rKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTE2IGRiX2lkKQotewotCWJvb2wgdmFsaWQ7Ci0KLQlHRU1fQlVHX09OKGRiX2lkID49IEdVQ19OVU1fRE9PUkJFTExTKTsKLQotCXZhbGlkID0gX19kb29yYmVsbF92YWxpZChndWMsIGRiX2lkKTsKLQotCWlmICh0ZXN0X2JpdChkYl9pZCwgZ3VjLT5kb29yYmVsbF9iaXRtYXApID09IHZhbGlkKQotCQlyZXR1cm4gdHJ1ZTsKLQotCURSTV9ERUJVR19EUklWRVIoIkRvb3JiZWxsICV1IGhhcyB1bmV4cGVjdGVkIHN0YXRlOiB2YWxpZD0lc1xuIiwKLQkJCSBkYl9pZCwgeWVzbm8odmFsaWQpKTsKLQotCXJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIGJvb2wgZ3VjX3ZlcmlmeV9kb29yYmVsbHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCWJvb2wgZG9vcmJlbGxzX29rID0gdHJ1ZTsKLQl1MTYgZGJfaWQ7Ci0KLQlmb3IgKGRiX2lkID0gMDsgZGJfaWQgPCBHVUNfTlVNX0RPT1JCRUxMUzsgKytkYl9pZCkKLQkJaWYgKCFkb29yYmVsbF9vayhndWMsIGRiX2lkKSkKLQkJCWRvb3JiZWxsc19vayA9IGZhbHNlOwotCi0JcmV0dXJuIGRvb3JiZWxsc19vazsKLX0KLQotLyoqCi0gKiBndWNfY2xpZW50X2FsbG9jKCkgLSBBbGxvY2F0ZSBhbiBpbnRlbF9ndWNfY2xpZW50Ci0gKiBAZGV2X3ByaXY6CWRyaXZlciBwcml2YXRlIGRhdGEgc3RydWN0dXJlCi0gKiBAZW5naW5lczoJVGhlIHNldCBvZiBlbmdpbmVzIHRvIGVuYWJsZSBmb3IgdGhpcyBjbGllbnQKLSAqIEBwcmlvcml0eToJZm91ciBsZXZlbHMgcHJpb3JpdHkgX0NSSVRJQ0FMLCBfSElHSCwgX05PUk1BTCBhbmQgX0xPVwotICoJCVRoZSBrZXJuZWwgY2xpZW50IHRvIHJlcGxhY2UgRXhlY0xpc3Qgc3VibWlzc2lvbiBpcyBjcmVhdGVkIHdpdGgKLSAqCQlOT1JNQUwgcHJpb3JpdHkuIFByaW9yaXR5IG9mIGEgY2xpZW50IGZvciBzY2hlZHVsZXIgY2FuIGJlIEhJR0gsCi0gKgkJd2hpbGUgYSBwcmVlbXB0aW9uIGNvbnRleHQgY2FuIHVzZSBDUklUSUNBTC4KLSAqIEBjdHg6CXRoZSBjb250ZXh0IHRoYXQgb3ducyB0aGUgY2xpZW50ICh3ZSB1c2UgdGhlIGRlZmF1bHQgcmVuZGVyCi0gKgkJY29udGV4dCkKLSAqCi0gKiBSZXR1cm46CUFuIGludGVsX2d1Y19jbGllbnQgb2JqZWN0IGlmIHN1Y2Nlc3MsIGVsc2UgTlVMTC4KLSAqLwotc3RhdGljIHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICoKLWd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkgdTMyIGVuZ2luZXMsCi0JCSB1MzIgcHJpb3JpdHksCi0JCSBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQotewotCXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQ7Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0Jdm9pZCAqdmFkZHI7Ci0JaW50IHJldDsKLQotCWNsaWVudCA9IGt6YWxsb2Moc2l6ZW9mKCpjbGllbnQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWNsaWVudCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQljbGllbnQtPmd1YyA9IGd1YzsKLQljbGllbnQtPm93bmVyID0gY3R4OwotCWNsaWVudC0+ZW5naW5lcyA9IGVuZ2luZXM7Ci0JY2xpZW50LT5wcmlvcml0eSA9IHByaW9yaXR5OwotCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBHVUNfRE9PUkJFTExfSU5WQUxJRDsKLQlzcGluX2xvY2tfaW5pdCgmY2xpZW50LT53cV9sb2NrKTsKLQotCXJldCA9IGlkYV9zaW1wbGVfZ2V0KCZndWMtPnN0YWdlX2lkcywgMCwgR1VDX01BWF9TVEFHRV9ERVNDUklQVE9SUywKLQkJCSAgICAgR0ZQX0tFUk5FTCk7Ci0JaWYgKHJldCA8IDApCi0JCWdvdG8gZXJyX2NsaWVudDsKLQotCWNsaWVudC0+c3RhZ2VfaWQgPSByZXQ7Ci0KLQkvKiBUaGUgZmlyc3QgcGFnZSBpcyBkb29yYmVsbC9wcm9jX2Rlc2MuIFR3byBmb2xsb3dlZCBwYWdlcyBhcmUgd3EuICovCi0Jdm1hID0gaW50ZWxfZ3VjX2FsbG9jYXRlX3ZtYShndWMsIEdVQ19EQl9TSVpFICsgR1VDX1dRX1NJWkUpOwotCWlmIChJU19FUlIodm1hKSkgewotCQlyZXQgPSBQVFJfRVJSKHZtYSk7Ci0JCWdvdG8gZXJyX2lkOwotCX0KLQotCS8qIFdlJ2xsIGtlZXAganVzdCB0aGUgZmlyc3QgKGRvb3JiZWxsL3Byb2MpIHBhZ2UgcGVybWFuZW50bHkga21hcCdkLiAqLwotCWNsaWVudC0+dm1hID0gdm1hOwotCi0JdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcCh2bWEtPm9iaiwgSTkxNV9NQVBfV0IpOwotCWlmIChJU19FUlIodmFkZHIpKSB7Ci0JCXJldCA9IFBUUl9FUlIodmFkZHIpOwotCQlnb3RvIGVycl92bWE7Ci0JfQotCWNsaWVudC0+dmFkZHIgPSB2YWRkcjsKLQotCXJldCA9IHJlc2VydmVfZG9vcmJlbGwoY2xpZW50KTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl92YWRkcjsKLQotCWNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0ID0gX19zZWxlY3RfY2FjaGVsaW5lKGd1Yyk7Ci0KLQkvKgotCSAqIFNpbmNlIHRoZSBkb29yYmVsbCBvbmx5IHJlcXVpcmVzIGEgc2luZ2xlIGNhY2hlbGluZSwgd2UgY2FuIHNhdmUKLQkgKiBzcGFjZSBieSBwdXR0aW5nIHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzIGRlc2NyaXB0b3IgaW4gdGhlIHNhbWUKLQkgKiBwYWdlLiBVc2UgdGhlIGhhbGYgb2YgdGhlIHBhZ2UgdGhhdCBkb2Vzbid0IGluY2x1ZGUgdGhlIGRvb3JiZWxsLgotCSAqLwotCWlmIChjbGllbnQtPmRvb3JiZWxsX29mZnNldCA+PSAoR1VDX0RCX1NJWkUgLyAyKSkKLQkJY2xpZW50LT5wcm9jX2Rlc2Nfb2Zmc2V0ID0gMDsKLQllbHNlCi0JCWNsaWVudC0+cHJvY19kZXNjX29mZnNldCA9IChHVUNfREJfU0laRSAvIDIpOwotCi0JRFJNX0RFQlVHX0RSSVZFUigibmV3IHByaW9yaXR5ICV1IGNsaWVudCAlcCBmb3IgZW5naW5lKHMpIDB4JXg6IHN0YWdlX2lkICV1XG4iLAotCQkJIHByaW9yaXR5LCBjbGllbnQsIGNsaWVudC0+ZW5naW5lcywgY2xpZW50LT5zdGFnZV9pZCk7Ci0JRFJNX0RFQlVHX0RSSVZFUigiZG9vcmJlbGwgaWQgJXUsIGNhY2hlbGluZSBvZmZzZXQgMHglbHhcbiIsCi0JCQkgY2xpZW50LT5kb29yYmVsbF9pZCwgY2xpZW50LT5kb29yYmVsbF9vZmZzZXQpOwotCi0JcmV0dXJuIGNsaWVudDsKLQotZXJyX3ZhZGRyOgotCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoY2xpZW50LT52bWEtPm9iaik7Ci1lcnJfdm1hOgotCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZjbGllbnQtPnZtYSwgMCk7Ci1lcnJfaWQ6Ci0JaWRhX3NpbXBsZV9yZW1vdmUoJmd1Yy0+c3RhZ2VfaWRzLCBjbGllbnQtPnN0YWdlX2lkKTsKLWVycl9jbGllbnQ6Ci0Ja2ZyZWUoY2xpZW50KTsKLQlyZXR1cm4gRVJSX1BUUihyZXQpOwotfQotCi1zdGF0aWMgdm9pZCBndWNfY2xpZW50X2ZyZWUoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKLXsKLQl1bnJlc2VydmVfZG9vcmJlbGwoY2xpZW50KTsKLQlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmY2xpZW50LT52bWEsIEk5MTVfVk1BX1JFTEVBU0VfTUFQKTsKLQlpZGFfc2ltcGxlX3JlbW92ZSgmY2xpZW50LT5ndWMtPnN0YWdlX2lkcywgY2xpZW50LT5zdGFnZV9pZCk7Ci0Ja2ZyZWUoY2xpZW50KTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGN0eF9zYXZlX3Jlc3RvcmVfZGlzYWJsZWQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQotewotCXUzMiBzciA9IGNlLT5scmNfcmVnX3N0YXRlW0NUWF9DT05URVhUX0NPTlRST0wgKyAxXTsKLQotI2RlZmluZSBTUl9ESVNBQkxFRCBcCi0JX01BU0tFRF9CSVRfRU5BQkxFKENUWF9DVFJMX0VOR0lORV9DVFhfUkVTVE9SRV9JTkhJQklUIHwgXAotCQkJICAgQ1RYX0NUUkxfRU5HSU5FX0NUWF9TQVZFX0lOSElCSVQpCi0KLQlyZXR1cm4gKHNyICYgU1JfRElTQUJMRUQpID09IFNSX0RJU0FCTEVEOwotCi0jdW5kZWYgU1JfRElTQUJMRUQKLX0KLQotc3RhdGljIGludCBndWNfY2xpZW50c19jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Ci0Jc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudDsKLQotCUdFTV9CVUdfT04oZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0JR0VNX0JVR19PTihndWMtPnByZWVtcHRfY2xpZW50KTsKLQotCWNsaWVudCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2X3ByaXYsCi0JCQkJICBJTlRFTF9JTkZPKGRldl9wcml2KS0+ZW5naW5lX21hc2ssCi0JCQkJICBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9OT1JNQUwsCi0JCQkJICBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQpOwotCWlmIChJU19FUlIoY2xpZW50KSkgewotCQlEUk1fRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgR3VDIGNsaWVudCBmb3Igc3VibWlzc2lvbiFcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihjbGllbnQpOwotCX0KLQlndWMtPmV4ZWNidWZfY2xpZW50ID0gY2xpZW50OwotCi0JaWYgKGRldl9wcml2LT5wcmVlbXB0X2NvbnRleHQpIHsKLQkJY2xpZW50ID0gZ3VjX2NsaWVudF9hbGxvYyhkZXZfcHJpdiwKLQkJCQkJICBJTlRFTF9JTkZPKGRldl9wcml2KS0+ZW5naW5lX21hc2ssCi0JCQkJCSAgR1VDX0NMSUVOVF9QUklPUklUWV9LTURfSElHSCwKLQkJCQkJICBkZXZfcHJpdi0+cHJlZW1wdF9jb250ZXh0KTsKLQkJaWYgKElTX0VSUihjbGllbnQpKSB7Ci0JCQlEUk1fRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgR3VDIGNsaWVudCBmb3IgcHJlZW1wdGlvbiFcbiIpOwotCQkJZ3VjX2NsaWVudF9mcmVlKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwotCQkJZ3VjLT5leGVjYnVmX2NsaWVudCA9IE5VTEw7Ci0JCQlyZXR1cm4gUFRSX0VSUihjbGllbnQpOwotCQl9Ci0JCWd1Yy0+cHJlZW1wdF9jbGllbnQgPSBjbGllbnQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19jbGllbnRzX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQ7Ci0KLQljbGllbnQgPSBmZXRjaF9hbmRfemVybygmZ3VjLT5wcmVlbXB0X2NsaWVudCk7Ci0JaWYgKGNsaWVudCkKLQkJZ3VjX2NsaWVudF9mcmVlKGNsaWVudCk7Ci0KLQljbGllbnQgPSBmZXRjaF9hbmRfemVybygmZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0JaWYgKGNsaWVudCkKLQkJZ3VjX2NsaWVudF9mcmVlKGNsaWVudCk7Ci19Ci0KLXN0YXRpYyBpbnQgX19ndWNfY2xpZW50X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCWludCByZXQ7Ci0KLQlndWNfcHJvY19kZXNjX2luaXQoY2xpZW50KTsKLQlndWNfc3RhZ2VfZGVzY19pbml0KGNsaWVudCk7Ci0KLQlyZXQgPSBjcmVhdGVfZG9vcmJlbGwoY2xpZW50KTsKLQlpZiAocmV0KQotCQlnb3RvIGZhaWw7Ci0KLQlyZXR1cm4gMDsKLQotZmFpbDoKLQlndWNfc3RhZ2VfZGVzY19maW5pKGNsaWVudCk7Ci0JZ3VjX3Byb2NfZGVzY19maW5pKGNsaWVudCk7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHZvaWQgX19ndWNfY2xpZW50X2Rpc2FibGUoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKLXsKLQkvKgotCSAqIEJ5IHRoZSB0aW1lIHdlJ3JlIGhlcmUsIEd1QyBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVzZXQuIGlmIHRoYXQgaXMKLQkgKiB0aGUgY2FzZSwgaW5zdGVhZCBvZiB0cnlpbmcgKGluIHZhaW4pIHRvIGNvbW11bmljYXRlIHdpdGggaXQsIGxldCdzCi0JICoganVzdCBjbGVhbnVwIHRoZSBkb29yYmVsbCBIVyBhbmQgb3VyIGludGVybmFsIHN0YXRlLgotCSAqLwotCWlmIChpbnRlbF9ndWNfaXNfbG9hZGVkKGNsaWVudC0+Z3VjKSkKLQkJZGVzdHJveV9kb29yYmVsbChjbGllbnQpOwotCWVsc2UKLQkJX19maW5pX2Rvb3JiZWxsKGNsaWVudCk7Ci0KLQlndWNfc3RhZ2VfZGVzY19maW5pKGNsaWVudCk7Ci0JZ3VjX3Byb2NfZGVzY19maW5pKGNsaWVudCk7Ci19Ci0KLXN0YXRpYyBpbnQgZ3VjX2NsaWVudHNfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlpbnQgcmV0OwotCi0JcmV0ID0gX19ndWNfY2xpZW50X2VuYWJsZShndWMtPmV4ZWNidWZfY2xpZW50KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JaWYgKGd1Yy0+cHJlZW1wdF9jbGllbnQpIHsKLQkJcmV0ID0gX19ndWNfY2xpZW50X2VuYWJsZShndWMtPnByZWVtcHRfY2xpZW50KTsKLQkJaWYgKHJldCkgewotCQkJX19ndWNfY2xpZW50X2Rpc2FibGUoZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19jbGllbnRzX2Rpc2FibGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCWlmIChndWMtPnByZWVtcHRfY2xpZW50KQotCQlfX2d1Y19jbGllbnRfZGlzYWJsZShndWMtPnByZWVtcHRfY2xpZW50KTsKLQotCWlmIChndWMtPmV4ZWNidWZfY2xpZW50KQotCQlfX2d1Y19jbGllbnRfZGlzYWJsZShndWMtPmV4ZWNidWZfY2xpZW50KTsKLX0KLQotLyoKLSAqIFNldCB1cCB0aGUgbWVtb3J5IHJlc291cmNlcyB0byBiZSBzaGFyZWQgd2l0aCB0aGUgR3VDICh2aWEgdGhlIEdHVFQpCi0gKiBhdCBmaXJtd2FyZSBsb2FkaW5nIHRpbWUuCi0gKi8KLWludCBpbnRlbF9ndWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQlpbnQgcmV0OwotCi0JaWYgKGd1Yy0+c3RhZ2VfZGVzY19wb29sKQotCQlyZXR1cm4gMDsKLQotCXJldCA9IGd1Y19zdGFnZV9kZXNjX3Bvb2xfY3JlYXRlKGd1Yyk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQkvKgotCSAqIEtlZXAgc3RhdGljIGFuYWx5c2VycyBoYXBweSwgbGV0IHRoZW0ga25vdyB0aGF0IHdlIGFsbG9jYXRlZCB0aGUKLQkgKiB2bWEgYWZ0ZXIgdGVzdGluZyB0aGF0IGl0IGRpZG4ndCBleGlzdCBlYXJsaWVyLgotCSAqLwotCUdFTV9CVUdfT04oIWd1Yy0+c3RhZ2VfZGVzY19wb29sKTsKLQotCVdBUk5fT04oIWd1Y192ZXJpZnlfZG9vcmJlbGxzKGd1YykpOwotCXJldCA9IGd1Y19jbGllbnRzX2NyZWF0ZShndWMpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX3Bvb2w7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKLQkJZ3VjLT5wcmVlbXB0X3dvcmtbaWRdLmVuZ2luZSA9IGVuZ2luZTsKLQkJSU5JVF9XT1JLKCZndWMtPnByZWVtcHRfd29ya1tpZF0ud29yaywgaW5qZWN0X3ByZWVtcHRfY29udGV4dCk7Ci0JfQotCi0JcmV0dXJuIDA7Ci0KLWVycl9wb29sOgotCWd1Y19zdGFnZV9kZXNjX3Bvb2xfZGVzdHJveShndWMpOwotCXJldHVybiByZXQ7Ci19Ci0KLXZvaWQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZmluaShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpCi0JCWNhbmNlbF93b3JrX3N5bmMoJmd1Yy0+cHJlZW1wdF93b3JrW2lkXS53b3JrKTsKLQotCWd1Y19jbGllbnRzX2Rlc3Ryb3koZ3VjKTsKLQlXQVJOX09OKCFndWNfdmVyaWZ5X2Rvb3JiZWxscyhndWMpKTsKLQotCWlmIChndWMtPnN0YWdlX2Rlc2NfcG9vbCkKLQkJZ3VjX3N0YWdlX2Rlc2NfcG9vbF9kZXN0cm95KGd1Yyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19pbnRlcnJ1cHRzX2NhcHR1cmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cnVjdCBpbnRlbF9ycHMgKnJwcyA9ICZkZXZfcHJpdi0+Z3RfcG0ucnBzOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQlpbnQgaXJxczsKLQotCS8qIHRlbGwgYWxsIGNvbW1hbmQgc3RyZWFtZXJzIHRvIGZvcndhcmQgaW50ZXJydXB0cyAoYnV0IG5vdCB2YmxhbmspCi0JICogdG8gR3VDCi0JICovCi0JaXJxcyA9IF9NQVNLRURfQklUX0VOQUJMRShHRlhfSU5URVJSVVBUX1NURUVSSU5HKTsKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpCi0JCUVOR0lORV9XUklURShlbmdpbmUsIFJJTkdfTU9ERV9HRU43LCBpcnFzKTsKLQotCS8qIHJvdXRlIFVTRVJfSU5URVJSVVBUIHRvIEhvc3QsIGFsbCBvdGhlcnMgYXJlIHNlbnQgdG8gR3VDLiAqLwotCWlycXMgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZUIHwKLQkgICAgICAgR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVDsKLQkvKiBUaGVzZSB0aHJlZSByZWdpc3RlcnMgaGF2ZSB0aGUgc2FtZSBiaXQgZGVmaW5pdGlvbnMgKi8KLQlJOTE1X1dSSVRFKEdVQ19CQ1NfUkNTX0lFUiwgfmlycXMpOwotCUk5MTVfV1JJVEUoR1VDX1ZDUzJfVkNTMV9JRVIsIH5pcnFzKTsKLQlJOTE1X1dSSVRFKEdVQ19XRF9WRUNTX0lFUiwgfmlycXMpOwotCi0JLyoKLQkgKiBUaGUgUkVESVJFQ1RfVE9fR1VDIGJpdCBvZiB0aGUgUE1JTlRSTVNLIHJlZ2lzdGVyIGRpcmVjdHMgYWxsCi0JICogKHVubWFza2VkKSBQTSBpbnRlcnJ1cHRzIHRvIHRoZSBHdUMuIEFsbCBvdGhlciBiaXRzIG9mIHRoaXMKLQkgKiByZWdpc3RlciAqZGlzYWJsZSogZ2VuZXJhdGlvbiBvZiBhIHNwZWNpZmljIGludGVycnVwdC4KLQkgKgotCSAqICdwbV9pbnRybXNrX21ieicgaW5kaWNhdGVzIGJpdHMgdGhhdCBhcmUgTk9UIHRvIGJlIHNldCB3aGVuCi0JICogd3JpdGluZyB0byB0aGUgUE0gaW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIsIGkuZS4gaW50ZXJydXB0cwotCSAqIHRoYXQgbXVzdCBub3QgYmUgZGlzYWJsZWQuCi0JICoKLQkgKiBJZiB0aGUgR3VDIGlzIGhhbmRsaW5nIHRoZXNlIGludGVycnVwdHMsIHRoZW4gd2UgbXVzdCBub3QgbGV0Ci0JICogdGhlIFBNIGNvZGUgZGlzYWJsZSBBTlkgaW50ZXJydXB0IHRoYXQgdGhlIEd1QyBpcyBleHBlY3RpbmcuCi0JICogU28gZm9yIGVhY2ggRU5BQkxFRCAoMCkgYml0IGluIHRoaXMgcmVnaXN0ZXIsIHdlIG11c3QgU0VUIHRoZQotCSAqIGJpdCBpbiBwbV9pbnRybXNrX21ieiBzbyB0aGF0IGl0J3MgbGVmdCBlbmFibGVkIGZvciB0aGUgR3VDLgotCSAqIEd1QyBuZWVkcyBBUkFUIGV4cGlyZWQgaW50ZXJydXB0IHVubWFza2VkIGhlbmNlIGl0IGlzIHNldCBpbgotCSAqIHBtX2ludHJtc2tfbWJ6LgotCSAqCi0JICogSGVyZSB3ZSBDTEVBUiBSRURJUkVDVF9UT19HVUMgYml0IGluIHBtX2ludHJtc2tfbWJ6LCB3aGljaCB3aWxsCi0JICogcmVzdWx0IGluIHRoZSByZWdpc3RlciBiaXQgYmVpbmcgbGVmdCBTRVQhCi0JICovCi0JcnBzLT5wbV9pbnRybXNrX21ieiB8PSBBUkFUX0VYUElSRURfSU5UUk1TSzsKLQlycHMtPnBtX2ludHJtc2tfbWJ6ICY9IH5HRU44X1BNSU5UUl9ESVNBQkxFX1JFRElSRUNUX1RPX0dVQzsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX2ludGVycnVwdHNfcmVsZWFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0Jc3RydWN0IGludGVsX3JwcyAqcnBzID0gJmRldl9wcml2LT5ndF9wbS5ycHM7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwotCWludCBpcnFzOwotCi0JLyoKLQkgKiB0ZWxsIGFsbCBjb21tYW5kIHN0cmVhbWVycyBOT1QgdG8gZm9yd2FyZCBpbnRlcnJ1cHRzIG9yIHZibGFuawotCSAqIHRvIEd1Qy4KLQkgKi8KLQlpcnFzID0gX01BU0tFRF9GSUVMRChHRlhfRk9SV0FSRF9WQkxBTktfTUFTSywgR0ZYX0ZPUldBUkRfVkJMQU5LX05FVkVSKTsKLQlpcnFzIHw9IF9NQVNLRURfQklUX0RJU0FCTEUoR0ZYX0lOVEVSUlVQVF9TVEVFUklORyk7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQotCQlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX01PREVfR0VONywgaXJxcyk7Ci0KLQkvKiByb3V0ZSBhbGwgR1QgaW50ZXJydXB0cyB0byB0aGUgaG9zdCAqLwotCUk5MTVfV1JJVEUoR1VDX0JDU19SQ1NfSUVSLCAwKTsKLQlJOTE1X1dSSVRFKEdVQ19WQ1MyX1ZDUzFfSUVSLCAwKTsKLQlJOTE1X1dSSVRFKEdVQ19XRF9WRUNTX0lFUiwgMCk7Ci0KLQlycHMtPnBtX2ludHJtc2tfbWJ6IHw9IEdFTjhfUE1JTlRSX0RJU0FCTEVfUkVESVJFQ1RfVE9fR1VDOwotCXJwcy0+cG1faW50cm1za19tYnogJj0gfkFSQVRfRVhQSVJFRF9JTlRSTVNLOwotfQotCi1zdGF0aWMgdm9pZCBndWNfc3VibWlzc2lvbl9wYXJrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlpbnRlbF9lbmdpbmVfcGFyayhlbmdpbmUpOwotCWludGVsX2VuZ2luZV91bnBpbl9icmVhZGNydW1ic19pcnEoZW5naW5lKTsKLQllbmdpbmUtPmZsYWdzICY9IH5JOTE1X0VOR0lORV9ORUVEU19CUkVBRENSVU1CX1RBU0tMRVQ7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19zdWJtaXNzaW9uX3VucGFyayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0JZW5naW5lLT5mbGFncyB8PSBJOTE1X0VOR0lORV9ORUVEU19CUkVBRENSVU1CX1RBU0tMRVQ7Ci0JaW50ZWxfZW5naW5lX3Bpbl9icmVhZGNydW1ic19pcnEoZW5naW5lKTsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX3NldF9kZWZhdWx0X3N1Ym1pc3Npb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotewotCS8qCi0JICogV2UgaW5oZXJpdCBhIGJ1bmNoIG9mIGZ1bmN0aW9ucyBmcm9tIGV4ZWNsaXN0cyB0aGF0IHdlJ2QgbGlrZQotCSAqIHRvIGtlZXAgdXNpbmc6Ci0JICoKLQkgKiAgICBlbmdpbmUtPnN1Ym1pdF9yZXF1ZXN0ID0gZXhlY2xpc3RzX3N1Ym1pdF9yZXF1ZXN0OwotCSAqICAgIGVuZ2luZS0+Y2FuY2VsX3JlcXVlc3RzID0gZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0czsKLQkgKiAgICBlbmdpbmUtPnNjaGVkdWxlID0gZXhlY2xpc3RzX3NjaGVkdWxlOwotCSAqCi0JICogQnV0IHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIGFjdHVhbCBzdWJtaXNzaW9uIGJhY2tlbmQgaW4gb3JkZXIKLQkgKiB0byB0YWxrIHRvIHRoZSBHdUMuCi0JICovCi0JaW50ZWxfZXhlY2xpc3RzX3NldF9kZWZhdWx0X3N1Ym1pc3Npb24oZW5naW5lKTsKLQotCWVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQuZnVuYyA9IGd1Y19zdWJtaXNzaW9uX3Rhc2tsZXQ7Ci0KLQllbmdpbmUtPnBhcmsgPSBndWNfc3VibWlzc2lvbl9wYXJrOwotCWVuZ2luZS0+dW5wYXJrID0gZ3VjX3N1Ym1pc3Npb25fdW5wYXJrOwotCi0JZW5naW5lLT5yZXNldC5wcmVwYXJlID0gZ3VjX3Jlc2V0X3ByZXBhcmU7Ci0JZW5naW5lLT5yZXNldC5yZXNldCA9IGd1Y19yZXNldDsKLQllbmdpbmUtPnJlc2V0LmZpbmlzaCA9IGd1Y19yZXNldF9maW5pc2g7Ci0KLQllbmdpbmUtPmNhbmNlbF9yZXF1ZXN0cyA9IGd1Y19jYW5jZWxfcmVxdWVzdHM7Ci0KLQllbmdpbmUtPmZsYWdzICY9IH5JOTE1X0VOR0lORV9TVVBQT1JUU19TVEFUUzsKLX0KLQotaW50IGludGVsX2d1Y19zdWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0JaW50IGVycjsKLQotCS8qCi0JICogV2UncmUgdXNpbmcgR3VDIHdvcmsgaXRlbXMgZm9yIHN1Ym1pdHRpbmcgd29yayB0aHJvdWdoIEd1Qy4gU2luY2UKLQkgKiB3ZSdyZSBjb2FsZXNjaW5nIG11bHRpcGxlIHJlcXVlc3RzIGZyb20gYSBzaW5nbGUgY29udGV4dCBpbnRvIGEKLQkgKiBzaW5nbGUgd29yayBpdGVtIHByaW9yIHRvIGFzc2lnbmluZyBpdCB0byBleGVjbGlzdF9wb3J0LCB3ZSBjYW4KLQkgKiBuZXZlciBoYXZlIG1vcmUgd29yayBpdGVtcyB0aGFuIHRoZSB0b3RhbCBudW1iZXIgb2YgcG9ydHMgKGZvciBhbGwKLQkgKiBlbmdpbmVzKS4gVGhlIEd1QyBmaXJtd2FyZSBpcyBjb250cm9sbGluZyB0aGUgSEVBRCBvZiB3b3JrIHF1ZXVlLAotCSAqIGFuZCBpdCBpcyBndWFyYW50ZWVkIHRoYXQgaXQgd2lsbCByZW1vdmUgdGhlIHdvcmsgaXRlbSBmcm9tIHRoZQotCSAqIHF1ZXVlIGJlZm9yZSBvdXIgcmVxdWVzdCBpcyBjb21wbGV0ZWQuCi0JICovCi0JQlVJTERfQlVHX09OKEFSUkFZX1NJWkUoZW5naW5lLT5leGVjbGlzdHMucG9ydCkgKgotCQkgICAgIHNpemVvZihzdHJ1Y3QgZ3VjX3dxX2l0ZW0pICoKLQkJICAgICBJOTE1X05VTV9FTkdJTkVTID4gR1VDX1dRX1NJWkUpOwotCi0JR0VNX0JVR19PTighZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0KLQllcnIgPSBndWNfY2xpZW50c19lbmFibGUoZ3VjKTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOwotCi0JLyogVGFrZSBvdmVyIGZyb20gbWFudWFsIGNvbnRyb2wgb2YgRUxTUCAoZXhlY2xpc3RzKSAqLwotCWd1Y19pbnRlcnJ1cHRzX2NhcHR1cmUoZGV2X3ByaXYpOwotCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7Ci0JCWVuZ2luZS0+c2V0X2RlZmF1bHRfc3VibWlzc2lvbiA9IGd1Y19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uOwotCQllbmdpbmUtPnNldF9kZWZhdWx0X3N1Ym1pc3Npb24oZW5naW5lKTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotdm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwotCi0JR0VNX0JVR19PTihkZXZfcHJpdi0+Z3QuYXdha2UpOyAvKiBHVCBzaG91bGQgYmUgcGFya2VkIGZpcnN0ICovCi0KLQlndWNfaW50ZXJydXB0c19yZWxlYXNlKGRldl9wcml2KTsKLQlndWNfY2xpZW50c19kaXNhYmxlKGd1Yyk7Ci19Ci0KLSNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKLSNpbmNsdWRlICJzZWxmdGVzdHMvaW50ZWxfZ3VjLmMiCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDgyM2E1Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxNyBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2lmbmRlZiBfSU5URUxfR1VDX1NVQk1JU1NJT05fSF8KLSNkZWZpbmUgX0lOVEVMX0dVQ19TVUJNSVNTSU9OX0hfCi0KLSNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgotCi0jaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgiCi0KLSNpbmNsdWRlICJpOTE1X2dlbS5oIgotI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKLQotc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Ci0KLS8qCi0gKiBUaGlzIHN0cnVjdHVyZSBwcmltYXJpbHkgZGVzY3JpYmVzIHRoZSBHRU0gb2JqZWN0IHNoYXJlZCB3aXRoIHRoZSBHdUMuCi0gKiBUaGUgc3BlY3Mgc29tZXRpbWVzIHJlZmVyIHRvIHRoaXMgb2JqZWN0IGFzIGEgIkd1QyBjb250ZXh0IiwgYnV0IHdlIHVzZQotICogdGhlIHRlcm0gImNsaWVudCIgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggaGFyZHdhcmUgY29udGV4dHMuIFRoaXMKLSAqIEdFTSBvYmplY3QgaXMgaGVsZCBmb3IgdGhlIGVudGlyZSBsaWZldGltZSBvZiBvdXIgaW50ZXJhY3Rpb24gd2l0aAotICogdGhlIEd1QywgYmVpbmcgYWxsb2NhdGVkIGJlZm9yZSB0aGUgR3VDIGlzIGxvYWRlZCB3aXRoIGl0cyBmaXJtd2FyZS4KLSAqIEJlY2F1c2UgdGhlcmUncyBubyB3YXkgdG8gdXBkYXRlIHRoZSBhZGRyZXNzIHVzZWQgYnkgdGhlIEd1QyBhZnRlcgotICogaW5pdGlhbGlzYXRpb24sIHRoZSBzaGFyZWQgb2JqZWN0IG11c3Qgc3RheSBwaW5uZWQgaW50byB0aGUgR0dUVCBhcwotICogbG9uZyBhcyB0aGUgR3VDIGlzIGluIHVzZS4gV2UgYWxzbyBrZWVwIHRoZSBmaXJzdCBwYWdlIChvbmx5KSBtYXBwZWQKLSAqIGludG8ga2VybmVsIGFkZHJlc3Mgc3BhY2UsIGFzIGl0IGluY2x1ZGVzIHNoYXJlZCBkYXRhIHRoYXQgbXVzdCBiZQotICogdXBkYXRlZCBvbiBldmVyeSByZXF1ZXN0IHN1Ym1pc3Npb24uCi0gKgotICogVGhlIHNpbmdsZSBHRU0gb2JqZWN0IGRlc2NyaWJlZCBoZXJlIGlzIGFjdHVhbGx5IG1hZGUgdXAgb2Ygc2V2ZXJhbAotICogc2VwYXJhdGUgYXJlYXMsIGFzIGZhciBhcyB0aGUgR3VDIGlzIGNvbmNlcm5lZC4gVGhlIGZpcnN0IHBhZ2UgKGtlcHQKLSAqIGttYXAnZCkgaW5jbHVkZXMgdGhlICJwcm9jZXNzIGRlc2NyaXB0b3IiIHdoaWNoIGhvbGRzIHNlcXVlbmNlIGRhdGEgZm9yCi0gKiB0aGUgZG9vcmJlbGwsIGFuZCBvbmUgY2FjaGVsaW5lIHdoaWNoIGFjdHVhbGx5ICppcyogdGhlIGRvb3JiZWxsOyBhCi0gKiB3cml0ZSB0byB0aGlzIHdpbGwgInJpbmcgdGhlIGRvb3JiZWxsIiAoaS5lLiBzZW5kIGFuIGludGVycnVwdCB0byB0aGUKLSAqIEd1QykuIFRoZSBzdWJzZXF1ZW50ICBwYWdlcyBvZiB0aGUgY2xpZW50IG9iamVjdCBjb25zdGl0dXRlIHRoZSB3b3JrCi0gKiBxdWV1ZSAoYSBjaXJjdWxhciBhcnJheSBvZiB3b3JrIGl0ZW1zKSwgYWdhaW4gZGVzY3JpYmVkIGluIHRoZSBwcm9jZXNzCi0gKiBkZXNjcmlwdG9yLiBXb3JrIHF1ZXVlIHBhZ2VzIGFyZSBtYXBwZWQgbW9tZW50YXJpbHkgYXMgcmVxdWlyZWQuCi0gKi8KLXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50IHsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQl2b2lkICp2YWRkcjsKLQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqb3duZXI7Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjOwotCi0JLyogYml0bWFwIG9mIChob3N0KSBlbmdpbmUgaWRzICovCi0JdTMyIGVuZ2luZXM7Ci0JdTMyIHByaW9yaXR5OwotCXUzMiBzdGFnZV9pZDsKLQl1MzIgcHJvY19kZXNjX29mZnNldDsKLQotCXUxNiBkb29yYmVsbF9pZDsKLQl1bnNpZ25lZCBsb25nIGRvb3JiZWxsX29mZnNldDsKLQotCS8qIFByb3RlY3RzIEd1QyBjbGllbnQncyBXUSBhY2Nlc3MgKi8KLQlzcGlubG9ja190IHdxX2xvY2s7Ci0JLyogUGVyLWVuZ2luZSBjb3VudHMgb2YgR3VDIHN1Ym1pc3Npb25zICovCi0JdTY0IHN1Ym1pc3Npb25zW0k5MTVfTlVNX0VOR0lORVNdOwotCi0JLyogRm9yIHRlc3RpbmcgcHVycG9zZXMsIHVzZSBub3AgV1EgaXRlbXMgaW5zdGVhZCBvZiByZWFsIG9uZXMgKi8KLQlJOTE1X1NFTEZURVNUX0RFQ0xBUkUoYm9vbCB1c2Vfbm9wX3dxaSk7Ci19OwotCi1pbnQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotaW50IGludGVsX2d1Y19zdWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotdm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci12b2lkIGludGVsX2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKLWludCBpbnRlbF9ndWNfcHJlZW1wdF93b3JrX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotdm9pZCBpbnRlbF9ndWNfcHJlZW1wdF93b3JrX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCmluZGV4IDFkN2QyNmUuLjJiNmMwMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCkBAIC05NSw3ICs5NSw3IEBAIGludCBpbnRlbF9ndnRfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaW50IHJldDsKIAotCWlmIChpOTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKKwlpZiAoaTkxNV9pbmplY3RfcHJvYmVfZmFpbHVyZShkZXZfcHJpdikpCiAJCXJldHVybiAtRU5PREVWOwogCiAJaWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3Z0KSB7CkBAIC0xMjIsMTMgKzEyMiwxNCBAQCBpbnQgaW50ZWxfZ3Z0X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogfQogCiAvKioKLSAqIGludGVsX2d2dF9jbGVhbnVwIC0gY2xlYW51cCBHVlQgY29tcG9uZW50cyB3aGVuIGk5MTUgZHJpdmVyIGlzIHVubG9hZGluZworICogaW50ZWxfZ3Z0X2RyaXZlcl9yZW1vdmUgLSBjbGVhbnVwIEdWVCBjb21wb25lbnRzIHdoZW4gaTkxNSBkcml2ZXIgaXMKKyAqCQkJICAgICB1bmJpbmRpbmcKICAqIEBkZXZfcHJpdjogZHJtIGk5MTUgcHJpdmF0ZSAqCiAgKgogICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYXQgdGhlIGk5MTUgZHJpdmVyIHVubG9hZGluZyBzdGFnZSwgdG8gc2h1dGRvd24KICAqIEdWVCBjb21wb25lbnRzIGFuZCByZWxlYXNlIHRoZSByZWxhdGVkIHJlc291cmNlcy4KICAqLwotdm9pZCBpbnRlbF9ndnRfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit2b2lkIGludGVsX2d2dF9kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlpZiAoIWludGVsX2d2dF9hY3RpdmUoZGV2X3ByaXYpKQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5oCmluZGV4IDYxYjI0NjQuLjUwMmZhZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5oCkBAIC0yNCwxMSArMjQsMTEgQEAKICNpZm5kZWYgX0lOVEVMX0dWVF9IXwogI2RlZmluZSBfSU5URUxfR1ZUX0hfCiAKLXN0cnVjdCBpbnRlbF9ndnQ7CitzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKIAogI2lmZGVmIENPTkZJR19EUk1fSTkxNV9HVlQKIGludCBpbnRlbF9ndnRfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpbnRlbF9ndnRfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpbnRlbF9ndnRfZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IGludGVsX2d2dF9pbml0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9ndnRfY2xlYW5fZGV2aWNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBpbnQgaW50ZWxfZ3Z0X2luaXRfaG9zdCh2b2lkKTsKQEAgLTM4LDcgKzM4LDggQEAgc3RhdGljIGlubGluZSBpbnQgaW50ZWxfZ3Z0X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXJldHVybiAwOwogfQotc3RhdGljIGlubGluZSB2b2lkIGludGVsX2d2dF9jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKKworc3RhdGljIGlubGluZSB2b2lkIGludGVsX2d2dF9kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmI2ZjY5My4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuYworKysgL2Rldi9udWxsCkBAIC0xLDE4MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IMKpIDIwMTYtMjAxNyBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0KLSNpbmNsdWRlICJpbnRlbF9odWMuaCIKLSNpbmNsdWRlICJpOTE1X2Rydi5oIgotCi12b2lkIGludGVsX2h1Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9odWMgKmh1YykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGh1Y190b19pOTE1KGh1Yyk7Ci0KLQlpbnRlbF9odWNfZndfaW5pdF9lYXJseShodWMpOwotCi0JaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMSkgewotCQlodWMtPnN0YXR1cy5yZWcgPSBHRU4xMV9IVUNfS0VSTkVMX0xPQURfSU5GTzsKLQkJaHVjLT5zdGF0dXMubWFzayA9IEhVQ19MT0FEX1NVQ0NFU1NGVUw7Ci0JCWh1Yy0+c3RhdHVzLnZhbHVlID0gSFVDX0xPQURfU1VDQ0VTU0ZVTDsKLQl9IGVsc2UgewotCQlodWMtPnN0YXR1cy5yZWcgPSBIVUNfU1RBVFVTMjsKLQkJaHVjLT5zdGF0dXMubWFzayA9IEhVQ19GV19WRVJJRklFRDsKLQkJaHVjLT5zdGF0dXMudmFsdWUgPSBIVUNfRldfVkVSSUZJRUQ7Ci0JfQotfQotCi1pbnQgaW50ZWxfaHVjX2luaXRfbWlzYyhzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBodWNfdG9faTkxNShodWMpOwotCi0JaW50ZWxfdWNfZndfZmV0Y2goaTkxNSwgJmh1Yy0+ZncpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGludGVsX2h1Y19yc2FfZGF0YV9jcmVhdGUoc3RydWN0IGludGVsX2h1YyAqaHVjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gaHVjX3RvX2k5MTUoaHVjKTsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXZvaWQgKnZhZGRyOwotCi0JLyoKLQkgKiBIdUMgZmlybXdhcmUgd2lsbCBzaXQgYWJvdmUgR1VDX0dHVFRfVE9QIGFuZCB3aWxsIG5vdCBtYXAKLQkgKiB0aHJvdWdoIEdUVC4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZWFucyBHdUMgY2Fubm90IHBlcmZvcm0KLQkgKiB0aGUgSHVDIGF1dGguIGFzIHRoZSByc2Egb2Zmc2V0IG5vdyBmYWxscyB3aXRoaW4gdGhlIEd1QwotCSAqIGluYWNjZXNzaWJsZSByYW5nZS4gV2UgcmVzb3J0IHRvIHBlcm1hLXBpbm5pbmcgYW4gYWRkaXRpb25hbAotCSAqIHZtYSB3aXRoaW4gdGhlIGFjY2Vzc2libGUgcmFuZ2UgdGhhdCBvbmx5IGNvbnRhaW5zIHRoZSByc2EKLQkgKiBzaWduYXR1cmUuIFRoZSBHdUMgY2FuIHVzZSB0aGlzIGV4dHJhIHBpbm5pbmcgdG8gcGVyZm9ybQotCSAqIHRoZSBhdXRoZW50aWNhdGlvbiBzaW5jZSBpdHMgR0dUVCBvZmZzZXQgd2lsbCBiZSBHdUMKLQkgKiBhY2Nlc3NpYmxlLgotCSAqLwotCXZtYSA9IGludGVsX2d1Y19hbGxvY2F0ZV92bWEoZ3VjLCBQQUdFX1NJWkUpOwotCWlmIChJU19FUlIodm1hKSkKLQkJcmV0dXJuIFBUUl9FUlIodm1hKTsKLQotCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAodm1hLT5vYmosIEk5MTVfTUFQX1dCKTsKLQlpZiAoSVNfRVJSKHZhZGRyKSkgewotCQlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmdm1hLCAwKTsKLQkJcmV0dXJuIFBUUl9FUlIodmFkZHIpOwotCX0KLQotCWh1Yy0+cnNhX2RhdGEgPSB2bWE7Ci0JaHVjLT5yc2FfZGF0YV92YWRkciA9IHZhZGRyOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGludGVsX2h1Y19yc2FfZGF0YV9kZXN0cm95KHN0cnVjdCBpbnRlbF9odWMgKmh1YykKLXsKLQlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmaHVjLT5yc2FfZGF0YSwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwotfQotCi1pbnQgaW50ZWxfaHVjX2luaXQoc3RydWN0IGludGVsX2h1YyAqaHVjKQotewotCWludCBlcnI7Ci0KLQllcnIgPSBpbnRlbF9odWNfcnNhX2RhdGFfY3JlYXRlKGh1Yyk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKLQotCXJldHVybiBpbnRlbF91Y19md19pbml0KCZodWMtPmZ3KTsKLX0KLQotdm9pZCBpbnRlbF9odWNfZmluaShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCi17Ci0JaW50ZWxfdWNfZndfZmluaSgmaHVjLT5mdyk7Ci0JaW50ZWxfaHVjX3JzYV9kYXRhX2Rlc3Ryb3koaHVjKTsKLX0KLQotLyoqCi0gKiBpbnRlbF9odWNfYXV0aCgpIC0gQXV0aGVudGljYXRlIEh1QyB1Q29kZQotICogQGh1YzogaW50ZWxfaHVjIHN0cnVjdHVyZQotICoKLSAqIENhbGxlZCBhZnRlciBIdUMgYW5kIEd1QyBmaXJtd2FyZSBsb2FkaW5nIGR1cmluZyBpbnRlbF91Y19pbml0X2h3KCkuCi0gKgotICogVGhpcyBmdW5jdGlvbiBwaW5zIEh1QyBmaXJtd2FyZSBpbWFnZSBvYmplY3QgaW50byBHR1RULgotICogVGhlbiBpdCBpbnZva2VzIEd1QyBhY3Rpb24gdG8gYXV0aGVudGljYXRlIHBhc3NpbmcgdGhlIG9mZnNldCB0byBSU0EKLSAqIHNpZ25hdHVyZSB0aHJvdWdoIGludGVsX2d1Y19hdXRoX2h1YygpLiBJdCB0aGVuIHdhaXRzIGZvciA1MG1zIGZvcgotICogZmlybXdhcmUgdmVyaWZpY2F0aW9uIEFDSyBhbmQgdW5waW5zIHRoZSBvYmplY3QuCi0gKi8KLWludCBpbnRlbF9odWNfYXV0aChzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBodWNfdG9faTkxNShodWMpOwotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndWM7Ci0JaW50IHJldDsKLQotCWlmIChodWMtPmZ3LmxvYWRfc3RhdHVzICE9IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCi0JCXJldHVybiAtRU5PRVhFQzsKLQotCXJldCA9IGludGVsX2d1Y19hdXRoX2h1YyhndWMsCi0JCQkJIGludGVsX2d1Y19nZ3R0X29mZnNldChndWMsIGh1Yy0+cnNhX2RhdGEpKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiSHVDOiBHdUMgZGlkIG5vdCBhY2sgQXV0aCByZXF1ZXN0ICVkXG4iLCByZXQpOwotCQlnb3RvIGZhaWw7Ci0JfQotCi0JLyogQ2hlY2sgYXV0aGVudGljYXRpb24gc3RhdHVzLCBpdCBzaG91bGQgYmUgZG9uZSBieSBub3cgKi8KLQlyZXQgPSBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZpOTE1LT51bmNvcmUsCi0JCQkJCWh1Yy0+c3RhdHVzLnJlZywKLQkJCQkJaHVjLT5zdGF0dXMubWFzaywKLQkJCQkJaHVjLT5zdGF0dXMudmFsdWUsCi0JCQkJCTIsIDUwLCBOVUxMKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiSHVDOiBGaXJtd2FyZSBub3QgdmVyaWZpZWQgJWRcbiIsIHJldCk7Ci0JCWdvdG8gZmFpbDsKLQl9Ci0KLQlyZXR1cm4gMDsKLQotZmFpbDoKLQlodWMtPmZ3LmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfRkFJTDsKLQotCURSTV9FUlJPUigiSHVDOiBBdXRoZW50aWNhdGlvbiBmYWlsZWQgJWRcbiIsIHJldCk7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyoqCi0gKiBpbnRlbF9odWNfY2hlY2tfc3RhdHVzKCkgLSBjaGVjayBIdUMgc3RhdHVzCi0gKiBAaHVjOiBpbnRlbF9odWMgc3RydWN0dXJlCi0gKgotICogVGhpcyBmdW5jdGlvbiByZWFkcyBzdGF0dXMgcmVnaXN0ZXIgdG8gdmVyaWZ5IGlmIEh1QwotICogZmlybXdhcmUgd2FzIHN1Y2Nlc3NmdWxseSBsb2FkZWQuCi0gKgotICogUmV0dXJuczogMSBpZiBIdUMgZmlybXdhcmUgaXMgbG9hZGVkIGFuZCB2ZXJpZmllZCwKLSAqIDAgaWYgSHVDIGZpcm13YXJlIGlzIG5vdCBsb2FkZWQgYW5kIC1FTk9ERVYgaWYgSHVDCi0gKiBpcyBub3QgcHJlc2VudCBvbiB0aGlzIHBsYXRmb3JtLgotICovCi1pbnQgaW50ZWxfaHVjX2NoZWNrX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gaHVjX3RvX2k5MTUoaHVjKTsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQlib29sIHN0YXR1cyA9IGZhbHNlOwotCi0JaWYgKCFIQVNfSFVDKGRldl9wcml2KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKQotCQlzdGF0dXMgPSAoSTkxNV9SRUFEKGh1Yy0+c3RhdHVzLnJlZykgJiBodWMtPnN0YXR1cy5tYXNrKSA9PQotCQkJICBodWMtPnN0YXR1cy52YWx1ZTsKLQotCXJldHVybiBzdGF0dXM7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTZjOTRlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE0LTIwMTcgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCi0gKiBJTiBUSEUgU09GVFdBUkUuCi0gKgotICovCi0KLSNpZm5kZWYgX0lOVEVMX0hVQ19IXwotI2RlZmluZSBfSU5URUxfSFVDX0hfCi0KLSNpbmNsdWRlICJpOTE1X3JlZy5oIgotI2luY2x1ZGUgImludGVsX3VjX2Z3LmgiCi0jaW5jbHVkZSAiaW50ZWxfaHVjX2Z3LmgiCi0KLXN0cnVjdCBpbnRlbF9odWMgewotCS8qIEdlbmVyaWMgdUMgZmlybXdhcmUgbWFuYWdlbWVudCAqLwotCXN0cnVjdCBpbnRlbF91Y19mdyBmdzsKLQotCS8qIEh1Qy1zcGVjaWZpYyBhZGRpdGlvbnMgKi8KLQlzdHJ1Y3QgaTkxNV92bWEgKnJzYV9kYXRhOwotCXZvaWQgKnJzYV9kYXRhX3ZhZGRyOwotCi0Jc3RydWN0IHsKLQkJaTkxNV9yZWdfdCByZWc7Ci0JCXUzMiBtYXNrOwotCQl1MzIgdmFsdWU7Ci0JfSBzdGF0dXM7Ci19OwotCi12b2lkIGludGVsX2h1Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9odWMgKmh1Yyk7Ci1pbnQgaW50ZWxfaHVjX2luaXRfbWlzYyhzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOwotaW50IGludGVsX2h1Y19pbml0KHN0cnVjdCBpbnRlbF9odWMgKmh1Yyk7Ci12b2lkIGludGVsX2h1Y19maW5pKHN0cnVjdCBpbnRlbF9odWMgKmh1Yyk7Ci1pbnQgaW50ZWxfaHVjX2F1dGgoc3RydWN0IGludGVsX2h1YyAqaHVjKTsKLWludCBpbnRlbF9odWNfY2hlY2tfc3RhdHVzKHN0cnVjdCBpbnRlbF9odWMgKmh1Yyk7Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9odWNfZmluaV9taXNjKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKLXsKLQlpbnRlbF91Y19md19jbGVhbnVwX2ZldGNoKCZodWMtPmZ3KTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgaW50ZWxfaHVjX3Nhbml0aXplKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKLXsKLQlpbnRlbF91Y19md19zYW5pdGl6ZSgmaHVjLT5mdyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjX2Z3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWNfZncuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDVjYmY4My4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWNfZncuYworKysgL2Rldi9udWxsCkBAIC0xLDIxNSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE0LTIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqLwotCi0jaW5jbHVkZSAiaW50ZWxfaHVjX2Z3LmgiCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLQotLyoqCi0gKiBET0M6IEh1QyBGaXJtd2FyZQotICoKLSAqIE1vdGl2YXRpb246Ci0gKiBHRU45IGludHJvZHVjZXMgYSBuZXcgZGVkaWNhdGVkIGZpcm13YXJlIGZvciB1c2FnZSBpbiBtZWRpYSBIRVZDIChIaWdoCi0gKiBFZmZpY2llbmN5IFZpZGVvIENvZGluZykgb3BlcmF0aW9ucy4gVXNlcnNwYWNlIGNhbiB1c2UgdGhlIGZpcm13YXJlCi0gKiBjYXBhYmlsaXRpZXMgYnkgYWRkaW5nIEh1QyBzcGVjaWZpYyBjb21tYW5kcyB0byBiYXRjaCBidWZmZXJzLgotICoKLSAqIEltcGxlbWVudGF0aW9uOgotICogVGhlIHNhbWUgZmlybXdhcmUgbG9hZGVyIGlzIHVzZWQgYXMgdGhlIEd1Qy4gSG93ZXZlciwgdGhlIGFjdHVhbAotICogbG9hZGluZyB0byBIVyBpcyBkZWZlcnJlZCB1bnRpbCBHRU0gaW5pdGlhbGl6YXRpb24gaXMgZG9uZS4KLSAqCi0gKiBOb3RlIHRoYXQgSHVDIGZpcm13YXJlIGxvYWRpbmcgbXVzdCBiZSBkb25lIGJlZm9yZSBHdUMgbG9hZGluZy4KLSAqLwotCi0jZGVmaW5lIEJYVF9IVUNfRldfTUFKT1IgMDEKLSNkZWZpbmUgQlhUX0hVQ19GV19NSU5PUiA4Ci0jZGVmaW5lIEJYVF9CTERfTlVNIDI4OTMKLQotI2RlZmluZSBTS0xfSFVDX0ZXX01BSk9SIDAxCi0jZGVmaW5lIFNLTF9IVUNfRldfTUlOT1IgMDcKLSNkZWZpbmUgU0tMX0JMRF9OVU0gMTM5OAotCi0jZGVmaW5lIEtCTF9IVUNfRldfTUFKT1IgMDIKLSNkZWZpbmUgS0JMX0hVQ19GV19NSU5PUiAwMAotI2RlZmluZSBLQkxfQkxEX05VTSAxODEwCi0KLSNkZWZpbmUgR0xLX0hVQ19GV19NQUpPUiAwMwotI2RlZmluZSBHTEtfSFVDX0ZXX01JTk9SIDAxCi0jZGVmaW5lIEdMS19CTERfTlVNIDI4OTMKLQotI2RlZmluZSBJQ0xfSFVDX0ZXX01BSk9SIDgKLSNkZWZpbmUgSUNMX0hVQ19GV19NSU5PUiA0Ci0jZGVmaW5lIElDTF9CTERfTlVNIDMyMzgKLQotI2RlZmluZSBIVUNfRldfUEFUSChwbGF0Zm9ybSwgbWFqb3IsIG1pbm9yLCBibGRfbnVtKSBcCi0JImk5MTUvIiBfX3N0cmluZ2lmeShwbGF0Zm9ybSkgIl9odWNfdmVyIiBfX3N0cmluZ2lmeShtYWpvcikgIl8iIFwKLQlfX3N0cmluZ2lmeShtaW5vcikgIl8iIF9fc3RyaW5naWZ5KGJsZF9udW0pICIuYmluIgotCi0jZGVmaW5lIEk5MTVfU0tMX0hVQ19VQ09ERSBIVUNfRldfUEFUSChza2wsIFNLTF9IVUNfRldfTUFKT1IsIFwKLQlTS0xfSFVDX0ZXX01JTk9SLCBTS0xfQkxEX05VTSkKLU1PRFVMRV9GSVJNV0FSRShJOTE1X1NLTF9IVUNfVUNPREUpOwotCi0jZGVmaW5lIEk5MTVfQlhUX0hVQ19VQ09ERSBIVUNfRldfUEFUSChieHQsIEJYVF9IVUNfRldfTUFKT1IsIFwKLQlCWFRfSFVDX0ZXX01JTk9SLCBCWFRfQkxEX05VTSkKLU1PRFVMRV9GSVJNV0FSRShJOTE1X0JYVF9IVUNfVUNPREUpOwotCi0jZGVmaW5lIEk5MTVfS0JMX0hVQ19VQ09ERSBIVUNfRldfUEFUSChrYmwsIEtCTF9IVUNfRldfTUFKT1IsIFwKLQlLQkxfSFVDX0ZXX01JTk9SLCBLQkxfQkxEX05VTSkKLU1PRFVMRV9GSVJNV0FSRShJOTE1X0tCTF9IVUNfVUNPREUpOwotCi0jZGVmaW5lIEk5MTVfR0xLX0hVQ19VQ09ERSBIVUNfRldfUEFUSChnbGssIEdMS19IVUNfRldfTUFKT1IsIFwKLQlHTEtfSFVDX0ZXX01JTk9SLCBHTEtfQkxEX05VTSkKLU1PRFVMRV9GSVJNV0FSRShJOTE1X0dMS19IVUNfVUNPREUpOwotCi0jZGVmaW5lIEk5MTVfSUNMX0hVQ19VQ09ERSBIVUNfRldfUEFUSChpY2wsIElDTF9IVUNfRldfTUFKT1IsIFwKLQlJQ0xfSFVDX0ZXX01JTk9SLCBJQ0xfQkxEX05VTSkKLU1PRFVMRV9GSVJNV0FSRShJOTE1X0lDTF9IVUNfVUNPREUpOwotCi1zdGF0aWMgdm9pZCBodWNfZndfc2VsZWN0KHN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3KQotewotCXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9IGNvbnRhaW5lcl9vZihodWNfZncsIHN0cnVjdCBpbnRlbF9odWMsIGZ3KTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBodWNfdG9faTkxNShodWMpOwotCi0JR0VNX0JVR19PTihodWNfZnctPnR5cGUgIT0gSU5URUxfVUNfRldfVFlQRV9IVUMpOwotCi0JaWYgKCFIQVNfSFVDKGRldl9wcml2KSkKLQkJcmV0dXJuOwotCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmh1Y19maXJtd2FyZV9wYXRoKSB7Ci0JCWh1Y19mdy0+cGF0aCA9IGk5MTVfbW9kcGFyYW1zLmh1Y19maXJtd2FyZV9wYXRoOwotCQlodWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSAwOwotCQlodWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSAwOwotCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikpIHsKLQkJaHVjX2Z3LT5wYXRoID0gSTkxNV9TS0xfSFVDX1VDT0RFOwotCQlodWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBTS0xfSFVDX0ZXX01BSk9SOwotCQlodWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSBTS0xfSFVDX0ZXX01JTk9SOwotCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKLQkJaHVjX2Z3LT5wYXRoID0gSTkxNV9CWFRfSFVDX1VDT0RFOwotCQlodWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBCWFRfSFVDX0ZXX01BSk9SOwotCQlodWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSBCWFRfSFVDX0ZXX01JTk9SOwotCX0gZWxzZSBpZiAoSVNfS0FCWUxBS0UoZGV2X3ByaXYpIHx8IElTX0NPRkZFRUxBS0UoZGV2X3ByaXYpKSB7Ci0JCWh1Y19mdy0+cGF0aCA9IEk5MTVfS0JMX0hVQ19VQ09ERTsKLQkJaHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gS0JMX0hVQ19GV19NQUpPUjsKLQkJaHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gS0JMX0hVQ19GV19NSU5PUjsKLQl9IGVsc2UgaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Ci0JCWh1Y19mdy0+cGF0aCA9IEk5MTVfR0xLX0hVQ19VQ09ERTsKLQkJaHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gR0xLX0hVQ19GV19NQUpPUjsKLQkJaHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gR0xLX0hVQ19GV19NSU5PUjsKLQl9IGVsc2UgaWYgKElTX0lDRUxBS0UoZGV2X3ByaXYpKSB7Ci0JCWh1Y19mdy0+cGF0aCA9IEk5MTVfSUNMX0hVQ19VQ09ERTsKLQkJaHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gSUNMX0hVQ19GV19NQUpPUjsKLQkJaHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gSUNMX0hVQ19GV19NSU5PUjsKLQl9Ci19Ci0KLS8qKgotICogaW50ZWxfaHVjX2Z3X2luaXRfZWFybHkoKSAtIGluaXRpYWxpemVzIEh1QyBmaXJtd2FyZSBzdHJ1Y3QKLSAqIEBodWM6IGludGVsX2h1YyBzdHJ1Y3QKLSAqCi0gKiBPbiBwbGF0Zm9ybXMgd2l0aCBIdUMgc2VsZWN0cyBmaXJtd2FyZSBmb3IgdXBsb2FkaW5nCi0gKi8KLXZvaWQgaW50ZWxfaHVjX2Z3X2luaXRfZWFybHkoc3RydWN0IGludGVsX2h1YyAqaHVjKQotewotCXN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3ID0gJmh1Yy0+Znc7Ci0KLQlpbnRlbF91Y19md19pbml0X2Vhcmx5KGh1Y19mdywgSU5URUxfVUNfRldfVFlQRV9IVUMpOwotCWh1Y19md19zZWxlY3QoaHVjX2Z3KTsKLX0KLQotc3RhdGljIHZvaWQgaHVjX3hmZXJfcnNhKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKLXsKLQlzdHJ1Y3QgaW50ZWxfdWNfZncgKmZ3ID0gJmh1Yy0+Znc7Ci0Jc3RydWN0IHNnX3RhYmxlICpwYWdlcyA9IGZ3LT5vYmotPm1tLnBhZ2VzOwotCi0JLyoKLQkgKiBIdUMgZmlybXdhcmUgaW1hZ2UgaXMgb3V0c2lkZSBHdUMgYWNjZXNzaWJsZSByYW5nZS4KLQkgKiBDb3B5IHRoZSBSU0Egc2lnbmF0dXJlIG91dCBvZiB0aGUgaW1hZ2UgaW50bwotCSAqIHRoZSBwZXJtYS1waW5uZWQgcmVnaW9uIHNldCBhc2lkZSBmb3IgaXQKLQkgKi8KLQlzZ19wY29weV90b19idWZmZXIocGFnZXMtPnNnbCwgcGFnZXMtPm5lbnRzLAotCQkJICAgaHVjLT5yc2FfZGF0YV92YWRkciwgZnctPnJzYV9zaXplLAotCQkJICAgZnctPnJzYV9vZmZzZXQpOwotfQotCi1zdGF0aWMgaW50IGh1Y194ZmVyX3Vjb2RlKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKLXsKLQlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdyA9ICZodWMtPmZ3OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGh1Y190b19pOTE1KGh1Yyk7Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Ci0JdW5zaWduZWQgbG9uZyBvZmZzZXQgPSAwOwotCXUzMiBzaXplOwotCWludCByZXQ7Ci0KLQlHRU1fQlVHX09OKGh1Y19mdy0+dHlwZSAhPSBJTlRFTF9VQ19GV19UWVBFX0hVQyk7Ci0KLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCh1bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwotCi0JLyogU2V0IHRoZSBzb3VyY2UgYWRkcmVzcyBmb3IgdGhlIHVDb2RlICovCi0Jb2Zmc2V0ID0gaW50ZWxfdWNfZndfZ2d0dF9vZmZzZXQoaHVjX2Z3KSArCi0JCSBodWNfZnctPmhlYWRlcl9vZmZzZXQ7Ci0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRE1BX0FERFJfMF9MT1csCi0JCQkgICBsb3dlcl8zMl9iaXRzKG9mZnNldCkpOwotCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIERNQV9BRERSXzBfSElHSCwKLQkJCSAgIHVwcGVyXzMyX2JpdHMob2Zmc2V0KSAmIDB4RkZGRik7Ci0KLQkvKgotCSAqIEhhcmR3YXJlIGRvZXNuJ3QgbG9vayBhdCBkZXN0aW5hdGlvbiBhZGRyZXNzIGZvciBIdUMuIFNldCBpdCB0byAwLAotCSAqIGJ1dCBzdGlsbCBwcm9ncmFtIHRoZSBjb3JyZWN0IGFkZHJlc3Mgc3BhY2UuCi0JICovCi0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRE1BX0FERFJfMV9MT1csIDApOwotCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIERNQV9BRERSXzFfSElHSCwgRE1BX0FERFJFU1NfU1BBQ0VfV09QQ00pOwotCi0Jc2l6ZSA9IGh1Y19mdy0+aGVhZGVyX3NpemUgKyBodWNfZnctPnVjb2RlX3NpemU7Ci0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRE1BX0NPUFlfU0laRSwgc2l6ZSk7Ci0KLQkvKiBTdGFydCB0aGUgRE1BICovCi0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRE1BX0NUUkwsCi0JCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUoSFVDX1VLRVJORUwgfCBTVEFSVF9ETUEpKTsKLQotCS8qIFdhaXQgZm9yIERNQSB0byBmaW5pc2ggKi8KLQlyZXQgPSBpbnRlbF93YWl0X2Zvcl9yZWdpc3Rlcl9mdyh1bmNvcmUsIERNQV9DVFJMLCBTVEFSVF9ETUEsIDAsIDEwMCk7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJIdUMgRE1BIHRyYW5zZmVyIHdhaXQgb3ZlciB3aXRoIHJldCAlZFxuIiwgcmV0KTsKLQotCS8qIERpc2FibGUgdGhlIGJpdHMgb25jZSBETUEgaXMgb3ZlciAqLwotCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIERNQV9DVFJMLCBfTUFTS0VEX0JJVF9ESVNBQkxFKEhVQ19VS0VSTkVMKSk7Ci0KLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCh1bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotLyoqCi0gKiBodWNfZndfeGZlcigpIC0gRE1BJ3MgdGhlIGZpcm13YXJlCi0gKiBAaHVjX2Z3OiB0aGUgZmlybXdhcmUgZGVzY3JpcHRvcgotICoKLSAqIFRyYW5zZmVyIHRoZSBmaXJtd2FyZSBpbWFnZSB0byBSQU0gZm9yIGV4ZWN1dGlvbiBieSB0aGUgbWljcm9jb250cm9sbGVyLgotICoKLSAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBub24temVybyBvbiBmYWlsdXJlCi0gKi8KLXN0YXRpYyBpbnQgaHVjX2Z3X3hmZXIoc3RydWN0IGludGVsX3VjX2Z3ICpodWNfZncpCi17Ci0Jc3RydWN0IGludGVsX2h1YyAqaHVjID0gY29udGFpbmVyX29mKGh1Y19mdywgc3RydWN0IGludGVsX2h1YywgZncpOwotCi0JaHVjX3hmZXJfcnNhKGh1Yyk7Ci0KLQlyZXR1cm4gaHVjX3hmZXJfdWNvZGUoaHVjKTsKLX0KLQotLyoqCi0gKiBpbnRlbF9odWNfZndfdXBsb2FkKCkgLSBsb2FkIEh1QyB1Q29kZSB0byBkZXZpY2UKLSAqIEBodWM6IGludGVsX2h1YyBzdHJ1Y3R1cmUKLSAqCi0gKiBDYWxsZWQgZnJvbSBpbnRlbF91Y19pbml0X2h3KCkgZHVyaW5nIGRyaXZlciBsb2FkLCByZXN1bWUgZnJvbSBzbGVlcCBhbmQKLSAqIGFmdGVyIGEgR1BVIHJlc2V0LiBOb3RlIHRoYXQgSHVDIG11c3QgYmUgbG9hZGVkIGJlZm9yZSBHdUMuCi0gKgotICogVGhlIGZpcm13YXJlIGltYWdlIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBmZXRjaGVkIGludG8gbWVtb3J5LCBzbyBvbmx5Ci0gKiBjaGVjayB0aGF0IGZldGNoIHN1Y2NlZWRlZCwgYW5kIHRoZW4gdHJhbnNmZXIgdGhlIGltYWdlIHRvIHRoZSBoL3cuCi0gKgotICogUmV0dXJuOglub24temVybyBjb2RlIG9uIGVycm9yCi0gKi8KLWludCBpbnRlbF9odWNfZndfdXBsb2FkKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKLXsKLQlyZXR1cm4gaW50ZWxfdWNfZndfdXBsb2FkKCZodWMtPmZ3LCBodWNfZndfeGZlcik7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWNfZncuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTAwYTBlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKi8KLQotI2lmbmRlZiBfSU5URUxfSFVDX0ZXX0hfCi0jZGVmaW5lIF9JTlRFTF9IVUNfRldfSF8KLQotc3RydWN0IGludGVsX2h1YzsKLQotdm9pZCBpbnRlbF9odWNfZndfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOwotaW50IGludGVsX2h1Y19md191cGxvYWQoc3RydWN0IGludGVsX2h1YyAqaHVjKTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wY2guYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BjaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhODY0ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wY2guYwpAQCAtMCwwICsxLDIwMSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCAyMDE5IEludGVsIENvcnBvcmF0aW9uLgorICovCisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImludGVsX3BjaC5oIgorCisvKiBNYXAgUENIIGRldmljZSBpZCB0byBQQ0ggdHlwZSwgb3IgUENIX05PTkUgaWYgdW5rbm93bi4gKi8KK3N0YXRpYyBlbnVtIGludGVsX3BjaAoraW50ZWxfcGNoX3R5cGUoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1bnNpZ25lZCBzaG9ydCBpZCkKK3sKKwlzd2l0Y2ggKGlkKSB7CisJY2FzZSBJTlRFTF9QQ0hfSUJYX0RFVklDRV9JRF9UWVBFOgorCQlEUk1fREVCVUdfS01TKCJGb3VuZCBJYmV4IFBlYWsgUENIXG4iKTsKKwkJV0FSTl9PTighSVNfR0VOKGRldl9wcml2LCA1KSk7CisJCXJldHVybiBQQ0hfSUJYOworCWNhc2UgSU5URUxfUENIX0NQVF9ERVZJQ0VfSURfVFlQRToKKwkJRFJNX0RFQlVHX0tNUygiRm91bmQgQ291Z2FyUG9pbnQgUENIXG4iKTsKKwkJV0FSTl9PTighSVNfR0VOKGRldl9wcml2LCA2KSAmJiAhSVNfSVZZQlJJREdFKGRldl9wcml2KSk7CisJCXJldHVybiBQQ0hfQ1BUOworCWNhc2UgSU5URUxfUENIX1BQVF9ERVZJQ0VfSURfVFlQRToKKwkJRFJNX0RFQlVHX0tNUygiRm91bmQgUGFudGhlclBvaW50IFBDSFxuIik7CisJCVdBUk5fT04oIUlTX0dFTihkZXZfcHJpdiwgNikgJiYgIUlTX0lWWUJSSURHRShkZXZfcHJpdikpOworCQkvKiBQYW50aGVyUG9pbnQgaXMgQ1BUIGNvbXBhdGlibGUgKi8KKwkJcmV0dXJuIFBDSF9DUFQ7CisJY2FzZSBJTlRFTF9QQ0hfTFBUX0RFVklDRV9JRF9UWVBFOgorCQlEUk1fREVCVUdfS01TKCJGb3VuZCBMeW54UG9pbnQgUENIXG4iKTsKKwkJV0FSTl9PTighSVNfSEFTV0VMTChkZXZfcHJpdikgJiYgIUlTX0JST0FEV0VMTChkZXZfcHJpdikpOworCQlXQVJOX09OKElTX0hTV19VTFQoZGV2X3ByaXYpIHx8IElTX0JEV19VTFQoZGV2X3ByaXYpKTsKKwkJcmV0dXJuIFBDSF9MUFQ7CisJY2FzZSBJTlRFTF9QQ0hfTFBUX0xQX0RFVklDRV9JRF9UWVBFOgorCQlEUk1fREVCVUdfS01TKCJGb3VuZCBMeW54UG9pbnQgTFAgUENIXG4iKTsKKwkJV0FSTl9PTighSVNfSEFTV0VMTChkZXZfcHJpdikgJiYgIUlTX0JST0FEV0VMTChkZXZfcHJpdikpOworCQlXQVJOX09OKCFJU19IU1dfVUxUKGRldl9wcml2KSAmJiAhSVNfQkRXX1VMVChkZXZfcHJpdikpOworCQlyZXR1cm4gUENIX0xQVDsKKwljYXNlIElOVEVMX1BDSF9XUFRfREVWSUNFX0lEX1RZUEU6CisJCURSTV9ERUJVR19LTVMoIkZvdW5kIFdpbGRjYXRQb2ludCBQQ0hcbiIpOworCQlXQVJOX09OKCFJU19IQVNXRUxMKGRldl9wcml2KSAmJiAhSVNfQlJPQURXRUxMKGRldl9wcml2KSk7CisJCVdBUk5fT04oSVNfSFNXX1VMVChkZXZfcHJpdikgfHwgSVNfQkRXX1VMVChkZXZfcHJpdikpOworCQkvKiBXaWxkY2F0UG9pbnQgaXMgTFBUIGNvbXBhdGlibGUgKi8KKwkJcmV0dXJuIFBDSF9MUFQ7CisJY2FzZSBJTlRFTF9QQ0hfV1BUX0xQX0RFVklDRV9JRF9UWVBFOgorCQlEUk1fREVCVUdfS01TKCJGb3VuZCBXaWxkY2F0UG9pbnQgTFAgUENIXG4iKTsKKwkJV0FSTl9PTighSVNfSEFTV0VMTChkZXZfcHJpdikgJiYgIUlTX0JST0FEV0VMTChkZXZfcHJpdikpOworCQlXQVJOX09OKCFJU19IU1dfVUxUKGRldl9wcml2KSAmJiAhSVNfQkRXX1VMVChkZXZfcHJpdikpOworCQkvKiBXaWxkY2F0UG9pbnQgaXMgTFBUIGNvbXBhdGlibGUgKi8KKwkJcmV0dXJuIFBDSF9MUFQ7CisJY2FzZSBJTlRFTF9QQ0hfU1BUX0RFVklDRV9JRF9UWVBFOgorCQlEUk1fREVCVUdfS01TKCJGb3VuZCBTdW5yaXNlUG9pbnQgUENIXG4iKTsKKwkJV0FSTl9PTighSVNfU0tZTEFLRShkZXZfcHJpdikgJiYgIUlTX0tBQllMQUtFKGRldl9wcml2KSk7CisJCXJldHVybiBQQ0hfU1BUOworCWNhc2UgSU5URUxfUENIX1NQVF9MUF9ERVZJQ0VfSURfVFlQRToKKwkJRFJNX0RFQlVHX0tNUygiRm91bmQgU3VucmlzZVBvaW50IExQIFBDSFxuIik7CisJCVdBUk5fT04oIUlTX1NLWUxBS0UoZGV2X3ByaXYpICYmICFJU19LQUJZTEFLRShkZXZfcHJpdikpOworCQlyZXR1cm4gUENIX1NQVDsKKwljYXNlIElOVEVMX1BDSF9LQlBfREVWSUNFX0lEX1RZUEU6CisJCURSTV9ERUJVR19LTVMoIkZvdW5kIEthYnkgTGFrZSBQQ0ggKEtCUClcbiIpOworCQlXQVJOX09OKCFJU19TS1lMQUtFKGRldl9wcml2KSAmJiAhSVNfS0FCWUxBS0UoZGV2X3ByaXYpICYmCisJCQkhSVNfQ09GRkVFTEFLRShkZXZfcHJpdikpOworCQkvKiBLQlAgaXMgU1BUIGNvbXBhdGlibGUgKi8KKwkJcmV0dXJuIFBDSF9TUFQ7CisJY2FzZSBJTlRFTF9QQ0hfQ05QX0RFVklDRV9JRF9UWVBFOgorCQlEUk1fREVCVUdfS01TKCJGb3VuZCBDYW5ub24gTGFrZSBQQ0ggKENOUClcbiIpOworCQlXQVJOX09OKCFJU19DQU5OT05MQUtFKGRldl9wcml2KSAmJiAhSVNfQ09GRkVFTEFLRShkZXZfcHJpdikpOworCQlyZXR1cm4gUENIX0NOUDsKKwljYXNlIElOVEVMX1BDSF9DTlBfTFBfREVWSUNFX0lEX1RZUEU6CisJCURSTV9ERUJVR19LTVMoIkZvdW5kIENhbm5vbiBMYWtlIExQIFBDSCAoQ05QLUxQKVxuIik7CisJCVdBUk5fT04oIUlTX0NBTk5PTkxBS0UoZGV2X3ByaXYpICYmICFJU19DT0ZGRUVMQUtFKGRldl9wcml2KSk7CisJCXJldHVybiBQQ0hfQ05QOworCWNhc2UgSU5URUxfUENIX0NNUF9ERVZJQ0VfSURfVFlQRToKKwkJRFJNX0RFQlVHX0tNUygiRm91bmQgQ29tZXQgTGFrZSBQQ0ggKENNUClcbiIpOworCQlXQVJOX09OKCFJU19DT0ZGRUVMQUtFKGRldl9wcml2KSk7CisJCS8qIENvbWV0UG9pbnQgaXMgQ05QIENvbXBhdGlibGUgKi8KKwkJcmV0dXJuIFBDSF9DTlA7CisJY2FzZSBJTlRFTF9QQ0hfSUNQX0RFVklDRV9JRF9UWVBFOgorCQlEUk1fREVCVUdfS01TKCJGb3VuZCBJY2UgTGFrZSBQQ0hcbiIpOworCQlXQVJOX09OKCFJU19JQ0VMQUtFKGRldl9wcml2KSk7CisJCXJldHVybiBQQ0hfSUNQOworCWNhc2UgSU5URUxfUENIX01DQ19ERVZJQ0VfSURfVFlQRToKKwljYXNlIElOVEVMX1BDSF9NQ0MyX0RFVklDRV9JRF9UWVBFOgorCQlEUk1fREVCVUdfS01TKCJGb3VuZCBNdWxlIENyZWVrIENhbnlvbiBQQ0hcbiIpOworCQlXQVJOX09OKCFJU19FTEtIQVJUTEFLRShkZXZfcHJpdikpOworCQlyZXR1cm4gUENIX01DQzsKKwljYXNlIElOVEVMX1BDSF9UR1BfREVWSUNFX0lEX1RZUEU6CisJCURSTV9ERUJVR19LTVMoIkZvdW5kIFRpZ2VyIExha2UgTFAgUENIXG4iKTsKKwkJV0FSTl9PTighSVNfVElHRVJMQUtFKGRldl9wcml2KSk7CisJCXJldHVybiBQQ0hfVEdQOworCWRlZmF1bHQ6CisJCXJldHVybiBQQ0hfTk9ORTsKKwl9Cit9CisKK3N0YXRpYyBib29sIGludGVsX2lzX3ZpcnRfcGNoKHVuc2lnbmVkIHNob3J0IGlkLAorCQkJICAgICAgdW5zaWduZWQgc2hvcnQgc3ZlbmRvciwgdW5zaWduZWQgc2hvcnQgc2RldmljZSkKK3sKKwlyZXR1cm4gKGlkID09IElOVEVMX1BDSF9QMlhfREVWSUNFX0lEX1RZUEUgfHwKKwkJaWQgPT0gSU5URUxfUENIX1AzWF9ERVZJQ0VfSURfVFlQRSB8fAorCQkoaWQgPT0gSU5URUxfUENIX1FFTVVfREVWSUNFX0lEX1RZUEUgJiYKKwkJIHN2ZW5kb3IgPT0gUENJX1NVQlZFTkRPUl9JRF9SRURIQVRfUVVNUkFORVQgJiYKKwkJIHNkZXZpY2UgPT0gUENJX1NVQkRFVklDRV9JRF9RRU1VKSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydAoraW50ZWxfdmlydF9kZXRlY3RfcGNoKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwl1bnNpZ25lZCBzaG9ydCBpZCA9IDA7CisKKwkvKgorCSAqIEluIGEgdmlydHVhbGl6ZWQgcGFzc3Rocm91Z2ggZW52aXJvbm1lbnQgd2UgY2FuIGJlIGluIGEKKwkgKiBzZXR1cCB3aGVyZSB0aGUgSVNBIGJyaWRnZSBpcyBub3QgYWJsZSB0byBiZSBwYXNzZWQgdGhyb3VnaC4KKwkgKiBJbiB0aGlzIGNhc2UsIGEgc291dGggYnJpZGdlIGNhbiBiZSBlbXVsYXRlZCBhbmQgd2UgaGF2ZSB0bworCSAqIG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MgYXMgdG8gd2hpY2ggUENIIGlzIHJlYWxseSB0aGVyZS4KKwkgKi8KKworCWlmIChJU19USUdFUkxBS0UoZGV2X3ByaXYpKQorCQlpZCA9IElOVEVMX1BDSF9UR1BfREVWSUNFX0lEX1RZUEU7CisJZWxzZSBpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpKQorCQlpZCA9IElOVEVMX1BDSF9NQ0NfREVWSUNFX0lEX1RZUEU7CisJZWxzZSBpZiAoSVNfSUNFTEFLRShkZXZfcHJpdikpCisJCWlkID0gSU5URUxfUENIX0lDUF9ERVZJQ0VfSURfVFlQRTsKKwllbHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSB8fCBJU19DT0ZGRUVMQUtFKGRldl9wcml2KSkKKwkJaWQgPSBJTlRFTF9QQ0hfQ05QX0RFVklDRV9JRF9UWVBFOworCWVsc2UgaWYgKElTX0tBQllMQUtFKGRldl9wcml2KSB8fCBJU19TS1lMQUtFKGRldl9wcml2KSkKKwkJaWQgPSBJTlRFTF9QQ0hfU1BUX0RFVklDRV9JRF9UWVBFOworCWVsc2UgaWYgKElTX0hTV19VTFQoZGV2X3ByaXYpIHx8IElTX0JEV19VTFQoZGV2X3ByaXYpKQorCQlpZCA9IElOVEVMX1BDSF9MUFRfTFBfREVWSUNFX0lEX1RZUEU7CisJZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKKwkJaWQgPSBJTlRFTF9QQ0hfTFBUX0RFVklDRV9JRF9UWVBFOworCWVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgNikgfHwgSVNfSVZZQlJJREdFKGRldl9wcml2KSkKKwkJaWQgPSBJTlRFTF9QQ0hfQ1BUX0RFVklDRV9JRF9UWVBFOworCWVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgNSkpCisJCWlkID0gSU5URUxfUENIX0lCWF9ERVZJQ0VfSURfVFlQRTsKKworCWlmIChpZCkKKwkJRFJNX0RFQlVHX0tNUygiQXNzdW1pbmcgUENIIElEICUwNHhcbiIsIGlkKTsKKwllbHNlCisJCURSTV9ERUJVR19LTVMoIkFzc3VtaW5nIG5vIFBDSFxuIik7CisKKwlyZXR1cm4gaWQ7Cit9CisKK3ZvaWQgaW50ZWxfZGV0ZWN0X3BjaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0IHBjaV9kZXYgKnBjaCA9IE5VTEw7CisKKwkvKgorCSAqIFRoZSByZWFzb24gdG8gcHJvYmUgSVNBIGJyaWRnZSBpbnN0ZWFkIG9mIERldjMxOkZ1bjAgaXMgdG8KKwkgKiBtYWtlIGdyYXBoaWNzIGRldmljZSBwYXNzdGhyb3VnaCB3b3JrIGVhc3kgZm9yIFZNTSwgdGhhdCBvbmx5CisJICogbmVlZCB0byBleHBvc2UgSVNBIGJyaWRnZSB0byBsZXQgZHJpdmVyIGtub3cgdGhlIHJlYWwgaGFyZHdhcmUKKwkgKiB1bmRlcm5lYXRoLiBUaGlzIGlzIGEgcmVxdWlyZW1lbnQgZnJvbSB2aXJ0dWFsaXphdGlvbiB0ZWFtLgorCSAqCisJICogSW4gc29tZSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGUuZy4gWEVOKSwgdGhlcmUgaXMgaXJyZWxldmFudAorCSAqIElTQSBicmlkZ2UgaW4gdGhlIHN5c3RlbS4gVG8gd29yayByZWxpYWJseSwgd2Ugc2hvdWxkIHNjYW4gdHJob3VnaAorCSAqIGFsbCB0aGUgSVNBIGJyaWRnZSBkZXZpY2VzIGFuZCBjaGVjayBmb3IgdGhlIGZpcnN0IG1hdGNoLCBpbnN0ZWFkCisJICogb2Ygb25seSBjaGVja2luZyB0aGUgZmlyc3Qgb25lLgorCSAqLworCXdoaWxlICgocGNoID0gcGNpX2dldF9jbGFzcyhQQ0lfQ0xBU1NfQlJJREdFX0lTQSA8PCA4LCBwY2gpKSkgeworCQl1bnNpZ25lZCBzaG9ydCBpZDsKKwkJZW51bSBpbnRlbF9wY2ggcGNoX3R5cGU7CisKKwkJaWYgKHBjaC0+dmVuZG9yICE9IFBDSV9WRU5ET1JfSURfSU5URUwpCisJCQljb250aW51ZTsKKworCQlpZCA9IHBjaC0+ZGV2aWNlICYgSU5URUxfUENIX0RFVklDRV9JRF9NQVNLOworCisJCXBjaF90eXBlID0gaW50ZWxfcGNoX3R5cGUoZGV2X3ByaXYsIGlkKTsKKwkJaWYgKHBjaF90eXBlICE9IFBDSF9OT05FKSB7CisJCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBwY2hfdHlwZTsKKwkJCWRldl9wcml2LT5wY2hfaWQgPSBpZDsKKwkJCWJyZWFrOworCQl9IGVsc2UgaWYgKGludGVsX2lzX3ZpcnRfcGNoKGlkLCBwY2gtPnN1YnN5c3RlbV92ZW5kb3IsCisJCQkJCSAgICAgcGNoLT5zdWJzeXN0ZW1fZGV2aWNlKSkgeworCQkJaWQgPSBpbnRlbF92aXJ0X2RldGVjdF9wY2goZGV2X3ByaXYpOworCQkJcGNoX3R5cGUgPSBpbnRlbF9wY2hfdHlwZShkZXZfcHJpdiwgaWQpOworCisJCQkvKiBTYW5pdHkgY2hlY2sgdmlydHVhbCBQQ0ggaWQgKi8KKwkJCWlmIChXQVJOX09OKGlkICYmIHBjaF90eXBlID09IFBDSF9OT05FKSkKKwkJCQlpZCA9IDA7CisKKwkJCWRldl9wcml2LT5wY2hfdHlwZSA9IHBjaF90eXBlOworCQkJZGV2X3ByaXYtPnBjaF9pZCA9IGlkOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkvKgorCSAqIFVzZSBQQ0hfTk9QIChQQ0ggYnV0IG5vIFNvdXRoIERpc3BsYXkpIGZvciBQQ0ggcGxhdGZvcm1zIHdpdGhvdXQKKwkgKiBkaXNwbGF5LgorCSAqLworCWlmIChwY2ggJiYgIUhBU19ESVNQTEFZKGRldl9wcml2KSkgeworCQlEUk1fREVCVUdfS01TKCJEaXNwbGF5IGRpc2FibGVkLCByZXZlcnRpbmcgdG8gTk9QIFBDSFxuIik7CisJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9OT1A7CisJCWRldl9wcml2LT5wY2hfaWQgPSAwOworCX0KKworCWlmICghcGNoKQorCQlEUk1fREVCVUdfS01TKCJObyBQQ0ggZm91bmQuXG4iKTsKKworCXBjaV9kZXZfcHV0KHBjaCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wY2guaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BjaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2YTJkNjUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wY2guaApAQCAtMCwwICsxLDczIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IDIwMTkgSW50ZWwgQ29ycG9yYXRpb24uCisgKi8KKworI2lmbmRlZiBfX0lOVEVMX1BDSF9fCisjZGVmaW5lIF9fSU5URUxfUENIX18KKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKKy8qCisgKiBTb3J0ZWQgYnkgc291dGggZGlzcGxheSBlbmdpbmUgY29tcGF0aWJpbGl0eS4KKyAqIElmIHRoZSBuZXcgUENIIGNvbWVzIHdpdGggYSBzb3V0aCBkaXNwbGF5IGVuZ2luZSB0aGF0IGlzIG5vdAorICogaW5oZXJpdGVkIGZyb20gdGhlIGxhdGVzdCBpdGVtLCBwbGVhc2UgZG8gbm90IGFkZCBpdCB0byB0aGUKKyAqIGVuZC4gSW5zdGVhZCwgYWRkIGl0IHJpZ2h0IGFmdGVyIGl0cyAicGFyZW50IiBQQ0guCisgKi8KK2VudW0gaW50ZWxfcGNoIHsKKwlQQ0hfTk9QID0gLTEsCS8qIFBDSCB3aXRob3V0IHNvdXRoIGRpc3BsYXkgKi8KKwlQQ0hfTk9ORSA9IDAsCS8qIE5vIFBDSCBwcmVzZW50ICovCisJUENIX0lCWCwJLyogSWJleHBlYWsgUENIICovCisJUENIX0NQVCwJLyogQ291Z2FycG9pbnQvUGFudGhlcnBvaW50IFBDSCAqLworCVBDSF9MUFQsCS8qIEx5bnhwb2ludC9XaWxkY2F0cG9pbnQgUENIICovCisJUENIX1NQVCwgICAgICAgIC8qIFN1bnJpc2Vwb2ludC9LYWJ5IExha2UgUENIICovCisJUENIX0NOUCwgICAgICAgIC8qIENhbm5vbi9Db21ldCBMYWtlIFBDSCAqLworCVBDSF9JQ1AsCS8qIEljZSBMYWtlIFBDSCAqLworCVBDSF9NQ0MsICAgICAgICAvKiBNdWxlIENyZWVrIENhbnlvbiBQQ0ggKi8KKwlQQ0hfVEdQLAkvKiBUaWdlciBMYWtlIFBDSCAqLworfTsKKworI2RlZmluZSBJTlRFTF9QQ0hfREVWSUNFX0lEX01BU0sJCTB4ZmY4MAorI2RlZmluZSBJTlRFTF9QQ0hfSUJYX0RFVklDRV9JRF9UWVBFCQkweDNiMDAKKyNkZWZpbmUgSU5URUxfUENIX0NQVF9ERVZJQ0VfSURfVFlQRQkJMHgxYzAwCisjZGVmaW5lIElOVEVMX1BDSF9QUFRfREVWSUNFX0lEX1RZUEUJCTB4MWUwMAorI2RlZmluZSBJTlRFTF9QQ0hfTFBUX0RFVklDRV9JRF9UWVBFCQkweDhjMDAKKyNkZWZpbmUgSU5URUxfUENIX0xQVF9MUF9ERVZJQ0VfSURfVFlQRQkJMHg5YzAwCisjZGVmaW5lIElOVEVMX1BDSF9XUFRfREVWSUNFX0lEX1RZUEUJCTB4OGM4MAorI2RlZmluZSBJTlRFTF9QQ0hfV1BUX0xQX0RFVklDRV9JRF9UWVBFCQkweDljODAKKyNkZWZpbmUgSU5URUxfUENIX1NQVF9ERVZJQ0VfSURfVFlQRQkJMHhBMTAwCisjZGVmaW5lIElOVEVMX1BDSF9TUFRfTFBfREVWSUNFX0lEX1RZUEUJCTB4OUQwMAorI2RlZmluZSBJTlRFTF9QQ0hfS0JQX0RFVklDRV9JRF9UWVBFCQkweEEyODAKKyNkZWZpbmUgSU5URUxfUENIX0NOUF9ERVZJQ0VfSURfVFlQRQkJMHhBMzAwCisjZGVmaW5lIElOVEVMX1BDSF9DTlBfTFBfREVWSUNFX0lEX1RZUEUJCTB4OUQ4MAorI2RlZmluZSBJTlRFTF9QQ0hfQ01QX0RFVklDRV9JRF9UWVBFCQkweDAyODAKKyNkZWZpbmUgSU5URUxfUENIX0lDUF9ERVZJQ0VfSURfVFlQRQkJMHgzNDgwCisjZGVmaW5lIElOVEVMX1BDSF9NQ0NfREVWSUNFX0lEX1RZUEUJCTB4NEIwMAorI2RlZmluZSBJTlRFTF9QQ0hfTUNDMl9ERVZJQ0VfSURfVFlQRQkJMHgzODgwCisjZGVmaW5lIElOVEVMX1BDSF9UR1BfREVWSUNFX0lEX1RZUEUJCTB4QTA4MAorI2RlZmluZSBJTlRFTF9QQ0hfUDJYX0RFVklDRV9JRF9UWVBFCQkweDcxMDAKKyNkZWZpbmUgSU5URUxfUENIX1AzWF9ERVZJQ0VfSURfVFlQRQkJMHg3MDAwCisjZGVmaW5lIElOVEVMX1BDSF9RRU1VX0RFVklDRV9JRF9UWVBFCQkweDI5MDAgLyogcWVtdSBxMzUgaGFzIDI5MTggKi8KKworI2RlZmluZSBJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikJCSgoZGV2X3ByaXYpLT5wY2hfdHlwZSkKKyNkZWZpbmUgSU5URUxfUENIX0lEKGRldl9wcml2KQkJCSgoZGV2X3ByaXYpLT5wY2hfaWQpCisjZGVmaW5lIEhBU19QQ0hfTUNDKGRldl9wcml2KQkJCShJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPT0gUENIX01DQykKKyNkZWZpbmUgSEFTX1BDSF9UR1AoZGV2X3ByaXYpCQkJKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfVEdQKQorI2RlZmluZSBIQVNfUENIX0lDUChkZXZfcHJpdikJCQkoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpID09IFBDSF9JQ1ApCisjZGVmaW5lIEhBU19QQ0hfQ05QKGRldl9wcml2KQkJCShJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPT0gUENIX0NOUCkKKyNkZWZpbmUgSEFTX1BDSF9TUFQoZGV2X3ByaXYpCQkJKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfU1BUKQorI2RlZmluZSBIQVNfUENIX0xQVChkZXZfcHJpdikJCQkoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpID09IFBDSF9MUFQpCisjZGVmaW5lIEhBU19QQ0hfTFBUX0xQKGRldl9wcml2KSBcCisJKElOVEVMX1BDSF9JRChkZXZfcHJpdikgPT0gSU5URUxfUENIX0xQVF9MUF9ERVZJQ0VfSURfVFlQRSB8fCBcCisJIElOVEVMX1BDSF9JRChkZXZfcHJpdikgPT0gSU5URUxfUENIX1dQVF9MUF9ERVZJQ0VfSURfVFlQRSkKKyNkZWZpbmUgSEFTX1BDSF9MUFRfSChkZXZfcHJpdikgXAorCShJTlRFTF9QQ0hfSUQoZGV2X3ByaXYpID09IElOVEVMX1BDSF9MUFRfREVWSUNFX0lEX1RZUEUgfHwgXAorCSBJTlRFTF9QQ0hfSUQoZGV2X3ByaXYpID09IElOVEVMX1BDSF9XUFRfREVWSUNFX0lEX1RZUEUpCisjZGVmaW5lIEhBU19QQ0hfQ1BUKGRldl9wcml2KQkJCShJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPT0gUENIX0NQVCkKKyNkZWZpbmUgSEFTX1BDSF9JQlgoZGV2X3ByaXYpCQkJKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA9PSBQQ0hfSUJYKQorI2RlZmluZSBIQVNfUENIX05PUChkZXZfcHJpdikJCQkoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpID09IFBDSF9OT1ApCisjZGVmaW5lIEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpCQkJKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSAhPSBQQ0hfTk9ORSkKKwordm9pZCBpbnRlbF9kZXRlY3RfcGNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisKKyNlbmRpZiAvKiBfX0lOVEVMX1BDSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCBkOWE3YTEzLi43NWVlMDI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTM0LDEyICszNCwxMyBAQAogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2F0b21pYy5oIgorI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZmJjLmgiCiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9zcHJpdGUuaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9pcnEuaCIKLSNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfcG0uaCIKICNpbmNsdWRlICJpbnRlbF9zaWRlYmFuZC5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL3BsYXRmb3JtL3g4Ni9pbnRlbF9pcHMuaCIKQEAgLTExMTYsNiArMTExNyw4IEBAIHN0YXRpYyB1MTYgZzR4X2NvbXB1dGVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKSkKIAkJcmV0dXJuIDA7CiAKKwljcHAgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07CisKIAkvKgogCSAqIE5vdCAxMDAlIHN1cmUgd2hpY2ggd2F5IEVMSyBzaG91bGQgZ28gaGVyZSBhcyB0aGUKIAkgKiBzcGVjIG9ubHkgc2F5cyBDTC9DVEcgc2hvdWxkIGFzc3VtZSAzMmJwcCBhbmQgQlcKQEAgLTExMjksOSArMTEzMiw3IEBAIHN0YXRpYyB1MTYgZzR4X2NvbXB1dGVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJICovCiAJaWYgKElTX0dNNDUoZGV2X3ByaXYpICYmIHBsYW5lLT5pZCA9PSBQTEFORV9QUklNQVJZICYmCiAJICAgIGxldmVsICE9IEc0WF9XTV9MRVZFTF9OT1JNQUwpCi0JCWNwcCA9IDQ7Ci0JZWxzZQotCQljcHAgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07CisJCWNwcCA9IG1heChjcHAsIDR1KTsKIAogCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jazsKIAlodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKQEAgLTExOTgsOCArMTE5OSw4IEBAIHN0YXRpYyBib29sIGc0eF9yYXdfZmJjX3dtX3NldChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlyZXR1cm4gZGlydHk7CiB9CiAKLXN0YXRpYyB1MzIgaWxrX2NvbXB1dGVfZmJjX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCi0JCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzdGF0ZSwKK3N0YXRpYyB1MzIgaWxrX2NvbXB1dGVfZmJjX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKIAkJCSAgICAgIHUzMiBwcmlfdmFsKTsKIAogc3RhdGljIGJvb2wgZzR4X3Jhd19wbGFuZV93bV9jb21wdXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLApAQCAtMTU2NiwxMyArMTU2NywxMyBAQCBzdGF0aWMgdm9pZCBnNHhfb3B0aW1pemVfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CiAKIAlpZiAoIWNydGNfc3RhdGUtPndtLm5lZWRfcG9zdHZibF91cGRhdGUpCiAJCXJldHVybjsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7Ci0JaW50ZWxfY3J0Yy0+d20uYWN0aXZlLmc0eCA9IGNydGNfc3RhdGUtPndtLmc0eC5vcHRpbWFsOworCWNydGMtPndtLmFjdGl2ZS5nNHggPSBjcnRjX3N0YXRlLT53bS5nNHgub3B0aW1hbDsKIAlnNHhfcHJvZ3JhbV93YXRlcm1hcmtzKGRldl9wcml2KTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CiB9CkBAIC0yMTg1LDEzICsyMTg2LDEzIEBAIHN0YXRpYyB2b2lkIHZsdl9vcHRpbWl6ZV93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAogCWlmICghY3J0Y19zdGF0ZS0+d20ubmVlZF9wb3N0dmJsX3VwZGF0ZSkKIAkJcmV0dXJuOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKLQlpbnRlbF9jcnRjLT53bS5hY3RpdmUudmx2ID0gY3J0Y19zdGF0ZS0+d20udmx2Lm9wdGltYWw7CisJY3J0Yy0+d20uYWN0aXZlLnZsdiA9IGNydGNfc3RhdGUtPndtLnZsdi5vcHRpbWFsOwogCXZsdl9wcm9ncmFtX3dhdGVybWFya3MoZGV2X3ByaXYpOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKIH0KQEAgLTI0OTMsOCArMjQ5NCw4IEBAIHN0cnVjdCBpbGtfd21fbWF4aW11bXMgewogICogRm9yIGJvdGggV01fUElQRSBhbmQgV01fTFAuCiAgKiBtZW1fdmFsdWUgbXVzdCBiZSBpbiAwLjF1cyB1bml0cy4KICAqLwotc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9wcmlfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHN0YXRlLAorc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9wcmlfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAogCQkJICAgICAgdTMyIG1lbV92YWx1ZSwgYm9vbCBpc19scCkKIHsKIAl1MzIgbWV0aG9kMSwgbWV0aG9kMjsKQEAgLTI1MDMsMTkgKzI1MDQsMTkgQEAgc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9wcmlfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAlpZiAobWVtX3ZhbHVlID09IDApCiAJCXJldHVybiBVMzJfTUFYOwogCi0JaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNzdGF0ZSwgcHN0YXRlKSkKKwlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWNwcCA9IHBzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07CisJY3BwID0gcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Y3BwWzBdOwogCi0JbWV0aG9kMSA9IGlsa193bV9tZXRob2QxKGNzdGF0ZS0+cGl4ZWxfcmF0ZSwgY3BwLCBtZW1fdmFsdWUpOworCW1ldGhvZDEgPSBpbGtfd21fbWV0aG9kMShjcnRjX3N0YXRlLT5waXhlbF9yYXRlLCBjcHAsIG1lbV92YWx1ZSk7CiAKIAlpZiAoIWlzX2xwKQogCQlyZXR1cm4gbWV0aG9kMTsKIAotCW1ldGhvZDIgPSBpbGtfd21fbWV0aG9kMihjc3RhdGUtPnBpeGVsX3JhdGUsCi0JCQkJIGNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAotCQkJCSBkcm1fcmVjdF93aWR0aCgmcHN0YXRlLT5iYXNlLmRzdCksCisJbWV0aG9kMiA9IGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsCisJCQkJIGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkgZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5iYXNlLmRzdCksCiAJCQkJIGNwcCwgbWVtX3ZhbHVlKTsKIAogCXJldHVybiBtaW4obWV0aG9kMSwgbWV0aG9kMik7CkBAIC0yNTI1LDggKzI1MjYsOCBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX3ByaV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogICogRm9yIGJvdGggV01fUElQRSBhbmQgV01fTFAuCiAgKiBtZW1fdmFsdWUgbXVzdCBiZSBpbiAwLjF1cyB1bml0cy4KICAqLwotc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9zcHJfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHN0YXRlLAorc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9zcHJfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAogCQkJICAgICAgdTMyIG1lbV92YWx1ZSkKIHsKIAl1MzIgbWV0aG9kMSwgbWV0aG9kMjsKQEAgLTI1MzUsMTUgKzI1MzYsMTUgQEAgc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9zcHJfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAlpZiAobWVtX3ZhbHVlID09IDApCiAJCXJldHVybiBVMzJfTUFYOwogCi0JaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNzdGF0ZSwgcHN0YXRlKSkKKwlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWNwcCA9IHBzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07CisJY3BwID0gcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Y3BwWzBdOwogCi0JbWV0aG9kMSA9IGlsa193bV9tZXRob2QxKGNzdGF0ZS0+cGl4ZWxfcmF0ZSwgY3BwLCBtZW1fdmFsdWUpOwotCW1ldGhvZDIgPSBpbGtfd21fbWV0aG9kMihjc3RhdGUtPnBpeGVsX3JhdGUsCi0JCQkJIGNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAotCQkJCSBkcm1fcmVjdF93aWR0aCgmcHN0YXRlLT5iYXNlLmRzdCksCisJbWV0aG9kMSA9IGlsa193bV9tZXRob2QxKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsIGNwcCwgbWVtX3ZhbHVlKTsKKwltZXRob2QyID0gaWxrX3dtX21ldGhvZDIoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwKKwkJCQkgY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJCSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2UuZHN0KSwKIAkJCQkgY3BwLCBtZW1fdmFsdWUpOwogCXJldHVybiBtaW4obWV0aG9kMSwgbWV0aG9kMik7CiB9CkBAIC0yNTUyLDggKzI1NTMsOCBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX3Nwcl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogICogRm9yIGJvdGggV01fUElQRSBhbmQgV01fTFAuCiAgKiBtZW1fdmFsdWUgbXVzdCBiZSBpbiAwLjF1cyB1bml0cy4KICAqLwotc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9jdXJfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHN0YXRlLAorc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9jdXJfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAogCQkJICAgICAgdTMyIG1lbV92YWx1ZSkKIHsKIAlpbnQgY3BwOwpAQCAtMjU2MSwyOSArMjU2MiwyOSBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX2N1cl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCWlmIChtZW1fdmFsdWUgPT0gMCkKIAkJcmV0dXJuIFUzMl9NQVg7CiAKLQlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3N0YXRlLCBwc3RhdGUpKQorCWlmICghaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSkpCiAJCXJldHVybiAwOwogCi0JY3BwID0gcHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKKwljcHAgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07CiAKLQlyZXR1cm4gaWxrX3dtX21ldGhvZDIoY3N0YXRlLT5waXhlbF9yYXRlLAotCQkJICAgICAgY3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCi0JCQkgICAgICBwc3RhdGUtPmJhc2UuY3J0Y193LCBjcHAsIG1lbV92YWx1ZSk7CisJcmV0dXJuIGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsCisJCQkgICAgICBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCisJCQkgICAgICBwbGFuZV9zdGF0ZS0+YmFzZS5jcnRjX3csIGNwcCwgbWVtX3ZhbHVlKTsKIH0KIAogLyogT25seSBmb3IgV01fTFAuICovCi1zdGF0aWMgdTMyIGlsa19jb21wdXRlX2ZiY193bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAotCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUsCitzdGF0aWMgdTMyIGlsa19jb21wdXRlX2ZiY193bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCiAJCQkgICAgICB1MzIgcHJpX3ZhbCkKIHsKIAlpbnQgY3BwOwogCi0JaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNzdGF0ZSwgcHN0YXRlKSkKKwlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWNwcCA9IHBzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07CisJY3BwID0gcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Y3BwWzBdOwogCi0JcmV0dXJuIGlsa193bV9mYmMocHJpX3ZhbCwgZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+YmFzZS5kc3QpLCBjcHApOworCXJldHVybiBpbGtfd21fZmJjKHByaV92YWwsIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+YmFzZS5kc3QpLCBjcHApOwogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50CkBAIC0yNzUyLDcgKzI3NTMsNyBAQCBzdGF0aWMgYm9vbCBpbGtfdmFsaWRhdGVfd21fbGV2ZWwoaW50IGxldmVsLAogc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJCQkgaW50IGxldmVsLAotCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAorCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwcmlzdGF0ZSwKIAkJCQkgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzcHJzdGF0ZSwKIAkJCQkgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpjdXJzdGF0ZSwKQEAgLTI3NzAsMzAgKzI3NzEsMzAgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCX0KIAogCWlmIChwcmlzdGF0ZSkgewotCQlyZXN1bHQtPnByaV92YWwgPSBpbGtfY29tcHV0ZV9wcmlfd20oY3N0YXRlLCBwcmlzdGF0ZSwKKwkJcmVzdWx0LT5wcmlfdmFsID0gaWxrX2NvbXB1dGVfcHJpX3dtKGNydGNfc3RhdGUsIHByaXN0YXRlLAogCQkJCQkJICAgICBwcmlfbGF0ZW5jeSwgbGV2ZWwpOwotCQlyZXN1bHQtPmZiY192YWwgPSBpbGtfY29tcHV0ZV9mYmNfd20oY3N0YXRlLCBwcmlzdGF0ZSwgcmVzdWx0LT5wcmlfdmFsKTsKKwkJcmVzdWx0LT5mYmNfdmFsID0gaWxrX2NvbXB1dGVfZmJjX3dtKGNydGNfc3RhdGUsIHByaXN0YXRlLCByZXN1bHQtPnByaV92YWwpOwogCX0KIAogCWlmIChzcHJzdGF0ZSkKLQkJcmVzdWx0LT5zcHJfdmFsID0gaWxrX2NvbXB1dGVfc3ByX3dtKGNzdGF0ZSwgc3Byc3RhdGUsIHNwcl9sYXRlbmN5KTsKKwkJcmVzdWx0LT5zcHJfdmFsID0gaWxrX2NvbXB1dGVfc3ByX3dtKGNydGNfc3RhdGUsIHNwcnN0YXRlLCBzcHJfbGF0ZW5jeSk7CiAKIAlpZiAoY3Vyc3RhdGUpCi0JCXJlc3VsdC0+Y3VyX3ZhbCA9IGlsa19jb21wdXRlX2N1cl93bShjc3RhdGUsIGN1cnN0YXRlLCBjdXJfbGF0ZW5jeSk7CisJCXJlc3VsdC0+Y3VyX3ZhbCA9IGlsa19jb21wdXRlX2N1cl93bShjcnRjX3N0YXRlLCBjdXJzdGF0ZSwgY3VyX2xhdGVuY3kpOwogCiAJcmVzdWx0LT5lbmFibGUgPSB0cnVlOwogfQogCiBzdGF0aWMgdTMyCi1oc3dfY29tcHV0ZV9saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQoraHN3X2NvbXB1dGVfbGluZXRpbWVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJY29uc3Qgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwogCXUzMiBsaW5ldGltZSwgaXBzX2xpbmV0aW1lOwogCi0JaWYgKCFjc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCiAJCXJldHVybiAwOwogCWlmIChXQVJOX09OKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPT0gMCkpCiAJCXJldHVybiAwOwpAQCAtMzEwMSwxMCArMzEwMiwxMCBAQCBzdGF0aWMgYm9vbCBpbGtfdmFsaWRhdGVfcGlwZV93bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB9CiAKIC8qIENvbXB1dGUgbmV3IHdhdGVybWFya3MgZm9yIHRoZSBwaXBlICovCi1zdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKK3N0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjc3RhdGUtPmJhc2Uuc3RhdGU7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBpbnRlbF9waXBlX3dtICpwaXBlX3dtOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2OwogCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKQEAgLTMxMTYsOSArMzExNyw5IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdiksIHVzYWJsZV9sZXZlbDsKIAlzdHJ1Y3QgaWxrX3dtX21heGltdW1zIG1heDsKIAotCXBpcGVfd20gPSAmY3N0YXRlLT53bS5pbGsub3B0aW1hbDsKKwlwaXBlX3dtID0gJmNydGNfc3RhdGUtPndtLmlsay5vcHRpbWFsOwogCi0JZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBwbGFuZV9zdGF0ZSwgJmNzdGF0ZS0+YmFzZSkgeworCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgcGxhbmVfc3RhdGUsICZjcnRjX3N0YXRlLT5iYXNlKSB7CiAJCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHMgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSk7CiAKIAkJaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpCkBAIC0zMTI5LDcgKzMxMzAsNyBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIAkJCWN1cnN0YXRlID0gcHM7CiAJfQogCi0JcGlwZV93bS0+cGlwZV9lbmFibGVkID0gY3N0YXRlLT5iYXNlLmFjdGl2ZTsKKwlwaXBlX3dtLT5waXBlX2VuYWJsZWQgPSBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZTsKIAlpZiAoc3Byc3RhdGUpIHsKIAkJcGlwZV93bS0+c3ByaXRlc19lbmFibGVkID0gc3Byc3RhdGUtPmJhc2UudmlzaWJsZTsKIAkJcGlwZV93bS0+c3ByaXRlc19zY2FsZWQgPSBzcHJzdGF0ZS0+YmFzZS52aXNpYmxlICYmCkBAIC0zMTQ4LDExICszMTQ5LDExIEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogCQl1c2FibGVfbGV2ZWwgPSAwOwogCiAJbWVtc2V0KCZwaXBlX3dtLT53bSwgMCwgc2l6ZW9mKHBpcGVfd20tPndtKSk7Ci0JaWxrX2NvbXB1dGVfd21fbGV2ZWwoZGV2X3ByaXYsIGludGVsX2NydGMsIDAsIGNzdGF0ZSwKKwlpbGtfY29tcHV0ZV93bV9sZXZlbChkZXZfcHJpdiwgaW50ZWxfY3J0YywgMCwgY3J0Y19zdGF0ZSwKIAkJCSAgICAgcHJpc3RhdGUsIHNwcnN0YXRlLCBjdXJzdGF0ZSwgJnBpcGVfd20tPndtWzBdKTsKIAogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQotCQlwaXBlX3dtLT5saW5ldGltZSA9IGhzd19jb21wdXRlX2xpbmV0aW1lX3dtKGNzdGF0ZSk7CisJCXBpcGVfd20tPmxpbmV0aW1lID0gaHN3X2NvbXB1dGVfbGluZXRpbWVfd20oY3J0Y19zdGF0ZSk7CiAKIAlpZiAoIWlsa192YWxpZGF0ZV9waXBlX3dtKGRldl9wcml2LCBwaXBlX3dtKSkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0zMTYyLDcgKzMxNjMsNyBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIAlmb3IgKGxldmVsID0gMTsgbGV2ZWwgPD0gdXNhYmxlX2xldmVsOyBsZXZlbCsrKSB7CiAJCXN0cnVjdCBpbnRlbF93bV9sZXZlbCAqd20gPSAmcGlwZV93bS0+d21bbGV2ZWxdOwogCi0JCWlsa19jb21wdXRlX3dtX2xldmVsKGRldl9wcml2LCBpbnRlbF9jcnRjLCBsZXZlbCwgY3N0YXRlLAorCQlpbGtfY29tcHV0ZV93bV9sZXZlbChkZXZfcHJpdiwgaW50ZWxfY3J0YywgbGV2ZWwsIGNydGNfc3RhdGUsCiAJCQkJICAgICBwcmlzdGF0ZSwgc3Byc3RhdGUsIGN1cnN0YXRlLCB3bSk7CiAKIAkJLyoKQEAgLTM3MzYsMTQgKzM3MzcsMTMgQEAgaW50ZWxfZGlzYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gMDsKIH0KIAotYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQorYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAllbnVtIHBpcGUgcGlwZTsKIAlpbnQgbGV2ZWwsIGxhdGVuY3k7CiAJaW50IHNhZ3ZfYmxvY2tfdGltZV91czsKQEAgLTM3NjEsMjcgKzM3NjEsMjcgQEAgYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCS8qCiAJICogSWYgdGhlcmUgYXJlIG5vIGFjdGl2ZSBDUlRDcywgbm8gYWRkaXRpb25hbCBjaGVja3MgbmVlZCBiZSBwZXJmb3JtZWQKIAkgKi8KLQlpZiAoaHdlaWdodDMyKGludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpID09IDApCisJaWYgKGh3ZWlnaHQzMihzdGF0ZS0+YWN0aXZlX2NydGNzKSA9PSAwKQogCQlyZXR1cm4gdHJ1ZTsKIAogCS8qCiAJICogU0tMKyB3b3JrYXJvdW5kOiBic3BlYyByZWNvbW1lbmRzIHdlIGRpc2FibGUgU0FHViB3aGVuIHdlIGhhdmUKIAkgKiBtb3JlIHRoZW4gb25lIHBpcGUgZW5hYmxlZAogCSAqLwotCWlmIChod2VpZ2h0MzIoaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykgPiAxKQorCWlmIChod2VpZ2h0MzIoc3RhdGUtPmFjdGl2ZV9jcnRjcykgPiAxKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBTaW5jZSB3ZSdyZSBub3cgZ3VhcmFudGVlZCB0byBvbmx5IGhhdmUgb25lIGFjdGl2ZSBDUlRDLi4uICovCi0JcGlwZSA9IGZmcyhpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKSAtIDE7CisJcGlwZSA9IGZmcyhzdGF0ZS0+YWN0aXZlX2NydGNzKSAtIDE7CiAJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9waXBlKGRldl9wcml2LCBwaXBlKTsKLQljc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOworCWNydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOwogCiAJaWYgKGNydGMtPmJhc2Uuc3RhdGUtPmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYsIGNydGMsIHBsYW5lKSB7CiAJCXN0cnVjdCBza2xfcGxhbmVfd20gKndtID0KLQkJCSZjc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZS0+aWRdOworCQkJJmNydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZS0+aWRdOwogCiAJCS8qIFNraXAgdGhpcyBwbGFuZSBpZiBpdCdzIG5vdCBlbmFibGVkICovCiAJCWlmICghd20tPndtWzBdLnBsYW5lX2VuKQpAQCAtMzgxMiw3ICszODEyLDcgQEAgYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogfQogCiBzdGF0aWMgdTE2IGludGVsX2dldF9kZGJfc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAorCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgICAgICBjb25zdCB1NjQgdG90YWxfZGF0YV9yYXRlLAogCQkJICAgICAgY29uc3QgaW50IG51bV9hY3RpdmUsCiAJCQkgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIpCkBAIC0zODI2LDcgKzM4MjYsNyBAQCBzdGF0aWMgdTE2IGludGVsX2dldF9kZGJfc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSkKIAkJcmV0dXJuIGRkYl9zaXplIC0gNDsgLyogNCBibG9ja3MgZm9yIGJ5cGFzcyBwYXRoIGFsbG9jYXRpb24gKi8KIAotCWFkanVzdGVkX21vZGUgPSAmY3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CiAJdG90YWxfZGF0YV9idyA9IHRvdGFsX2RhdGFfcmF0ZSAqIGRybV9tb2RlX3ZyZWZyZXNoKGFkanVzdGVkX21vZGUpOwogCiAJLyoKQEAgLTM4NDksMjMgKzM4NDksMjIgQEAgc3RhdGljIHUxNiBpbnRlbF9nZXRfZGRiX3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiBzdGF0aWMgdm9pZAogc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgICBjb25zdCB1NjQgdG90YWxfZGF0YV9yYXRlLAogCQkJCSAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiwKIAkJCQkgICBzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqYWxsb2MsIC8qIG91dCAqLwogCQkJCSAgIGludCAqbnVtX2FjdGl2ZSAvKiBvdXQgKi8pCiB7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3N0YXRlLT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwotCXN0cnVjdCBkcm1fY3J0YyAqZm9yX2NydGMgPSBjc3RhdGUtPmJhc2UuY3J0YzsKLQljb25zdCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Ci0JY29uc3Qgc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fY3J0YyAqZm9yX2NydGMgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7CisJY29uc3Qgc3RydWN0IGludGVsX2NydGMgKmNydGM7CiAJdTMyIHBpcGVfd2lkdGggPSAwLCB0b3RhbF93aWR0aCA9IDAsIHdpZHRoX2JlZm9yZV9waXBlID0gMDsKIAllbnVtIHBpcGUgZm9yX3BpcGUgPSB0b19pbnRlbF9jcnRjKGZvcl9jcnRjKS0+cGlwZTsKIAl1MTYgZGRiX3NpemU7CiAJdTMyIGk7CiAKLQlpZiAoV0FSTl9PTighc3RhdGUpIHx8ICFjc3RhdGUtPmJhc2UuYWN0aXZlKSB7CisJaWYgKFdBUk5fT04oIXN0YXRlKSB8fCAhY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKIAkJYWxsb2MtPnN0YXJ0ID0gMDsKIAkJYWxsb2MtPmVuZCA9IDA7CiAJCSpudW1fYWN0aXZlID0gaHdlaWdodDMyKGRldl9wcml2LT5hY3RpdmVfY3J0Y3MpOwpAQCAtMzg3Nyw3ICszODc2LDcgQEAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJZWxzZQogCQkqbnVtX2FjdGl2ZSA9IGh3ZWlnaHQzMihkZXZfcHJpdi0+YWN0aXZlX2NydGNzKTsKIAotCWRkYl9zaXplID0gaW50ZWxfZ2V0X2RkYl9zaXplKGRldl9wcml2LCBjc3RhdGUsIHRvdGFsX2RhdGFfcmF0ZSwKKwlkZGJfc2l6ZSA9IGludGVsX2dldF9kZGJfc2l6ZShkZXZfcHJpdiwgY3J0Y19zdGF0ZSwgdG90YWxfZGF0YV9yYXRlLAogCQkJCSAgICAgICpudW1fYWN0aXZlLCBkZGIpOwogCiAJLyoKQEAgLTM5MDIsMTYgKzM5MDEsMTUgQEAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogZnJhbWVidWZmZXIsIFNvIGluc3RlYWQgb2YgYWxsb2NhdGluZyBEREIgZXF1YWxseSBhbW9uZyBwaXBlcwogCSAqIGRpc3RyaWJ1dGUgRERCIGJhc2VkIG9uIHJlc29sdXRpb24vd2lkdGggb2YgdGhlIGRpc3BsYXkuCiAJICovCi0JZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7CisJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoaW50ZWxfc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKKwkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQorCQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCQlpbnQgaGRpc3BsYXksIHZkaXNwbGF5OwotCQllbnVtIHBpcGUgcGlwZTsKIAotCQlpZiAoIWNydGNfc3RhdGUtPmVuYWJsZSkKKwkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKIAkJCWNvbnRpbnVlOwogCi0JCXBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlOwotCQlhZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmFkanVzdGVkX21vZGU7CiAJCWRybV9tb2RlX2dldF9odl90aW1pbmcoYWRqdXN0ZWRfbW9kZSwgJmhkaXNwbGF5LCAmdmRpc3BsYXkpOwogCQl0b3RhbF93aWR0aCArPSBoZGlzcGxheTsKIApAQCAtMzkzMCw3ICszOTI4LDcgQEAgc3RhdGljIGludCBza2xfY29tcHV0ZV93bV9wYXJhbXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIHU2NCBtb2RpZmllciwgdW5zaWduZWQgaW50IHJvdGF0aW9uLAogCQkJCSB1MzIgcGxhbmVfcGl4ZWxfcmF0ZSwgc3RydWN0IHNrbF93bV9wYXJhbXMgKndwLAogCQkJCSBpbnQgY29sb3JfcGxhbmUpOwotc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKK3N0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBpbnQgbGV2ZWwsCiAJCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwKIAkJCQkgY29uc3Qgc3RydWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0X3ByZXYsCkBAIC00MDYyLDE1ICs0MDYwLDE1IEBAIHZvaWQgc2tsX2RkYl9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogICogQ2FsbGVyIHNob3VsZCB0YWtlIGNhcmUgb2YgZGl2aWRpbmcgJiByb3VuZGluZyBvZmYgdGhlIHZhbHVlLgogICovCiBzdGF0aWMgdWludF9maXhlZF8xNl8xNl90Ci1za2xfcGxhbmVfZG93bnNjYWxlX2Ftb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAotCQkJICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUpCitza2xfcGxhbmVfZG93bnNjYWxlX2Ftb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBzdGF0ZS0+YmFzZS5wbGFuZSk7CisJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAl1MzIgc3JjX3csIHNyY19oLCBkc3RfdywgZHN0X2g7CiAJdWludF9maXhlZF8xNl8xNl90IGZwX3dfcmF0aW8sIGZwX2hfcmF0aW87CiAJdWludF9maXhlZF8xNl8xNl90IGRvd25zY2FsZV9oLCBkb3duc2NhbGVfdzsKIAotCWlmIChXQVJOX09OKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNzdGF0ZSwgcHN0YXRlKSkpCisJaWYgKFdBUk5fT04oIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKSkKIAkJcmV0dXJuIHUzMl90b19maXhlZDE2KDApOwogCiAJLyogbi5iLiwgc3JjIGlzIDE2LjE2IGZpeGVkIHBvaW50LCBkc3QgaXMgd2hvbGUgaW50ZWdlciAqLwpAQCAtNDA3OSwyMCArNDA3NywyMCBAQCBza2xfcGxhbmVfZG93bnNjYWxlX2Ftb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCQkgKiBDdXJzb3JzIG9ubHkgc3VwcG9ydCAwLzE4MCBkZWdyZWUgcm90YXRpb24sCiAJCSAqIGhlbmNlIG5vIG5lZWQgdG8gYWNjb3VudCBmb3Igcm90YXRpb24gaGVyZS4KIAkJICovCi0JCXNyY193ID0gcHN0YXRlLT5iYXNlLnNyY193ID4+IDE2OwotCQlzcmNfaCA9IHBzdGF0ZS0+YmFzZS5zcmNfaCA+PiAxNjsKLQkJZHN0X3cgPSBwc3RhdGUtPmJhc2UuY3J0Y193OwotCQlkc3RfaCA9IHBzdGF0ZS0+YmFzZS5jcnRjX2g7CisJCXNyY193ID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3JjX3cgPj4gMTY7CisJCXNyY19oID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3JjX2ggPj4gMTY7CisJCWRzdF93ID0gcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193OworCQlkc3RfaCA9IHBsYW5lX3N0YXRlLT5iYXNlLmNydGNfaDsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBTcmMgY29vcmRpbmF0ZXMgYXJlIGFscmVhZHkgcm90YXRlZCBieSAyNzAgZGVncmVlcyBmb3IKIAkJICogdGhlIDkwLzI3MCBkZWdyZWUgcGxhbmUgcm90YXRpb24gY2FzZXMgKHRvIG1hdGNoIHRoZQogCQkgKiBHVFQgbWFwcGluZyksIGhlbmNlIG5vIG5lZWQgdG8gYWNjb3VudCBmb3Igcm90YXRpb24gaGVyZS4KIAkJICovCi0JCXNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+YmFzZS5zcmMpID4+IDE2OwotCQlzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcHN0YXRlLT5iYXNlLnNyYykgPj4gMTY7Ci0JCWRzdF93ID0gZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+YmFzZS5kc3QpOwotCQlkc3RfaCA9IGRybV9yZWN0X2hlaWdodCgmcHN0YXRlLT5iYXNlLmRzdCk7CisJCXNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5iYXNlLnNyYykgPj4gMTY7CisJCXNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMpID4+IDE2OworCQlkc3RfdyA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+YmFzZS5kc3QpOworCQlkc3RfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmJhc2UuZHN0KTsKIAl9CiAKIAlmcF93X3JhdGlvID0gZGl2X2ZpeGVkMTYoc3JjX3csIGRzdF93KTsKQEAgLTQxMzcsNDkgKzQxMzUsNDYgQEAgc2tsX3BpcGVfZG93bnNjYWxlX2Ftb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIH0KIAogaW50IHNrbF9jaGVja19waXBlX21heF9waXhlbF9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAotCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKKwkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYpOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9ICZjc3RhdGUtPmJhc2U7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+c3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKLQljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGU7Ci0Jc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9wc3RhdGU7CisJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX3BsYW5lX3N0YXRlOwogCWludCBjcnRjX2Nsb2NrLCBkb3RjbGs7CiAJdTMyIHBpcGVfbWF4X3BpeGVsX3JhdGU7CiAJdWludF9maXhlZF8xNl8xNl90IHBpcGVfZG93bnNjYWxlOwogCXVpbnRfZml4ZWRfMTZfMTZfdCBtYXhfZG93bnNjYWxlID0gdTMyX3RvX2ZpeGVkMTYoMSk7CiAKLQlpZiAoIWNzdGF0ZS0+YmFzZS5lbmFibGUpCisJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKIAkJcmV0dXJuIDA7CiAKLQlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIHBzdGF0ZSwgY3J0Y19zdGF0ZSkgeworCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgZHJtX3BsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZS0+YmFzZSkgewogCQl1aW50X2ZpeGVkXzE2XzE2X3QgcGxhbmVfZG93bnNjYWxlOwogCQl1aW50X2ZpeGVkXzE2XzE2X3QgZnBfOV9kaXZfOCA9IGRpdl9maXhlZDE2KDksIDgpOwogCQlpbnQgYnBwOworCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wbGFuZV9zdGF0ZSk7CiAKLQkJaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNzdGF0ZSwKLQkJCQkJICAgIHRvX2ludGVsX3BsYW5lX3N0YXRlKHBzdGF0ZSkpKQorCQlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQkJY29udGludWU7CiAKLQkJaWYgKFdBUk5fT04oIXBzdGF0ZS0+ZmIpKQorCQlpZiAoV0FSTl9PTighcGxhbmVfc3RhdGUtPmJhc2UuZmIpKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKLQkJaW50ZWxfcHN0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocHN0YXRlKTsKLQkJcGxhbmVfZG93bnNjYWxlID0gc2tsX3BsYW5lX2Rvd25zY2FsZV9hbW91bnQoY3N0YXRlLAotCQkJCQkJCSAgICAgaW50ZWxfcHN0YXRlKTsKLQkJYnBwID0gcHN0YXRlLT5mYi0+Zm9ybWF0LT5jcHBbMF0gKiA4OworCQlwbGFuZV9kb3duc2NhbGUgPSBza2xfcGxhbmVfZG93bnNjYWxlX2Ftb3VudChjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSk7CisJCWJwcCA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXSAqIDg7CiAJCWlmIChicHAgPT0gNjQpCiAJCQlwbGFuZV9kb3duc2NhbGUgPSBtdWxfZml4ZWQxNihwbGFuZV9kb3duc2NhbGUsCiAJCQkJCQkgICAgICBmcF85X2Rpdl84KTsKIAogCQltYXhfZG93bnNjYWxlID0gbWF4X2ZpeGVkMTYocGxhbmVfZG93bnNjYWxlLCBtYXhfZG93bnNjYWxlKTsKIAl9Ci0JcGlwZV9kb3duc2NhbGUgPSBza2xfcGlwZV9kb3duc2NhbGVfYW1vdW50KGNzdGF0ZSk7CisJcGlwZV9kb3duc2NhbGUgPSBza2xfcGlwZV9kb3duc2NhbGVfYW1vdW50KGNydGNfc3RhdGUpOwogCiAJcGlwZV9kb3duc2NhbGUgPSBtdWxfZml4ZWQxNihwaXBlX2Rvd25zY2FsZSwgbWF4X2Rvd25zY2FsZSk7CiAKLQljcnRjX2Nsb2NrID0gY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCWNydGNfY2xvY2sgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKIAlkb3RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5jZGNsay5sb2dpY2FsLmNkY2xrOwogCiAJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8IElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTApCkBAIC00MTk2LDEyICs0MTkxLDExIEBAIGludCBza2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIH0KIAogc3RhdGljIHU2NAotc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAotCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZSwKK3NrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCiAJCQkgICAgIGNvbnN0IGludCBwbGFuZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0KLQkJdG9faW50ZWxfcGxhbmUoaW50ZWxfcHN0YXRlLT5iYXNlLnBsYW5lKTsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCXUzMiBkYXRhX3JhdGU7CiAJdTMyIHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKQEAgLTQyMDksMTAgKzQyMDMsMTAgQEAgc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCXVpbnRfZml4ZWRfMTZfMTZfdCBkb3duX3NjYWxlX2Ftb3VudDsKIAl1NjQgcmF0ZTsKIAotCWlmICghaW50ZWxfcHN0YXRlLT5iYXNlLnZpc2libGUpCisJaWYgKCFwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlKQogCQlyZXR1cm4gMDsKIAotCWZiID0gaW50ZWxfcHN0YXRlLT5iYXNlLmZiOworCWZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CiAJZm9ybWF0ID0gZmItPmZvcm1hdC0+Zm9ybWF0OwogCiAJaWYgKGludGVsX3BsYW5lLT5pZCA9PSBQTEFORV9DVVJTT1IpCkBAIC00MjI1LDggKzQyMTksOCBAQCBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAJICogdGhlIDkwLzI3MCBkZWdyZWUgcGxhbmUgcm90YXRpb24gY2FzZXMgKHRvIG1hdGNoIHRoZQogCSAqIEdUVCBtYXBwaW5nKSwgaGVuY2Ugbm8gbmVlZCB0byBhY2NvdW50IGZvciByb3RhdGlvbiBoZXJlLgogCSAqLwotCXdpZHRoID0gZHJtX3JlY3Rfd2lkdGgoJmludGVsX3BzdGF0ZS0+YmFzZS5zcmMpID4+IDE2OwotCWhlaWdodCA9IGRybV9yZWN0X2hlaWdodCgmaW50ZWxfcHN0YXRlLT5iYXNlLnNyYykgPj4gMTY7CisJd2lkdGggPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKKwloZWlnaHQgPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5iYXNlLnNyYykgPj4gMTY7CiAKIAkvKiBVViBwbGFuZSBkb2VzIDEvMiBwaXhlbCBzdWItc2FtcGxpbmcgKi8KIAlpZiAocGxhbmUgPT0gMSAmJiBpc19wbGFuYXJfeXV2X2Zvcm1hdChmb3JtYXQpKSB7CkBAIC00MjM2LDcgKzQyMzAsNyBAQCBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAKIAlkYXRhX3JhdGUgPSB3aWR0aCAqIGhlaWdodDsKIAotCWRvd25fc2NhbGVfYW1vdW50ID0gc2tsX3BsYW5lX2Rvd25zY2FsZV9hbW91bnQoY3N0YXRlLCBpbnRlbF9wc3RhdGUpOworCWRvd25fc2NhbGVfYW1vdW50ID0gc2tsX3BsYW5lX2Rvd25zY2FsZV9hbW91bnQoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwogCiAJcmF0ZSA9IG11bF9yb3VuZF91cF91MzJfZml4ZWQxNihkYXRhX3JhdGUsIGRvd25fc2NhbGVfYW1vdW50KTsKIApAQCAtNDI0NSwzNSArNDIzOSwzMiBAQCBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiB9CiAKIHN0YXRpYyB1NjQKLXNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jc3RhdGUsCitza2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgdTY0ICpwbGFuZV9kYXRhX3JhdGUsCiAJCQkJIHU2NCAqdXZfcGxhbmVfZGF0YV9yYXRlKQogewotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlID0gJmludGVsX2NzdGF0ZS0+YmFzZTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjc3RhdGUtPnN0YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Ci0JY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlOworCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmRybV9wbGFuZV9zdGF0ZTsKIAl1NjQgdG90YWxfZGF0YV9yYXRlID0gMDsKIAogCWlmIChXQVJOX09OKCFzdGF0ZSkpCiAJCXJldHVybiAwOwogCiAJLyogQ2FsY3VsYXRlIGFuZCBjYWNoZSBkYXRhIHJhdGUgZm9yIGVhY2ggcGxhbmUgKi8KLQlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIHBzdGF0ZSwgY3N0YXRlKSB7CisJZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBkcm1fcGxhbmVfc3RhdGUsICZjcnRjX3N0YXRlLT5iYXNlKSB7CiAJCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQgPSB0b19pbnRlbF9wbGFuZShwbGFuZSktPmlkOworCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wbGFuZV9zdGF0ZSk7CiAJCXU2NCByYXRlOwotCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZSA9Ci0JCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwc3RhdGUpOwogCiAJCS8qIHBhY2tlZC95ICovCi0JCXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGludGVsX2NzdGF0ZSwKLQkJCQkJCSAgICBpbnRlbF9wc3RhdGUsIDApOworCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSwgMCk7CiAJCXBsYW5lX2RhdGFfcmF0ZVtwbGFuZV9pZF0gPSByYXRlOwogCQl0b3RhbF9kYXRhX3JhdGUgKz0gcmF0ZTsKIAogCQkvKiB1di1wbGFuZSAqLwotCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShpbnRlbF9jc3RhdGUsCi0JCQkJCQkgICAgaW50ZWxfcHN0YXRlLCAxKTsKKwkJcmF0ZSA9IHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUsIDEpOwogCQl1dl9wbGFuZV9kYXRhX3JhdGVbcGxhbmVfaWRdID0gcmF0ZTsKIAkJdG90YWxfZGF0YV9yYXRlICs9IHJhdGU7CiAJfQpAQCAtNDI4MiwyOCArNDI3MywyNSBAQCBza2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3N0YXRlLAogfQogCiBzdGF0aWMgdTY0Ci1pY2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3N0YXRlLAoraWNsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIHU2NCAqcGxhbmVfZGF0YV9yYXRlKQogewotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlID0gJmludGVsX2NzdGF0ZS0+YmFzZTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjc3RhdGUtPnN0YXRlOwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwotCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZTsKKwljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpkcm1fcGxhbmVfc3RhdGU7CiAJdTY0IHRvdGFsX2RhdGFfcmF0ZSA9IDA7CiAKLQlpZiAoV0FSTl9PTighc3RhdGUpKQorCWlmIChXQVJOX09OKCFjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKSkKIAkJcmV0dXJuIDA7CiAKIAkvKiBDYWxjdWxhdGUgYW5kIGNhY2hlIGRhdGEgcmF0ZSBmb3IgZWFjaCBwbGFuZSAqLwotCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgcHN0YXRlLCBjc3RhdGUpIHsKLQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9wc3RhdGUgPQotCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUocHN0YXRlKTsKKwlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIGRybV9wbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUtPmJhc2UpIHsKKwkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9CisJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmVfc3RhdGUpOwogCQllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gdG9faW50ZWxfcGxhbmUocGxhbmUpLT5pZDsKIAkJdTY0IHJhdGU7CiAKLQkJaWYgKCFpbnRlbF9wc3RhdGUtPmxpbmtlZF9wbGFuZSkgewotCQkJcmF0ZSA9IHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoaW50ZWxfY3N0YXRlLAotCQkJCQkJCSAgICBpbnRlbF9wc3RhdGUsIDApOworCQlpZiAoIXBsYW5lX3N0YXRlLT5saW5rZWRfcGxhbmUpIHsKKwkJCXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlLCAwKTsKIAkJCXBsYW5lX2RhdGFfcmF0ZVtwbGFuZV9pZF0gPSByYXRlOwogCQkJdG90YWxfZGF0YV9yYXRlICs9IHJhdGU7CiAJCX0gZWxzZSB7CkBAIC00MzE2LDE4ICs0MzA0LDE2IEBAIGljbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jc3RhdGUsCiAJCQkgKiBOVUxMIGlmIHdlIHRyeSBnZXRfbmV3X3BsYW5lX3N0YXRlKCksIHNvIHdlCiAJCQkgKiBhbHdheXMgY2FsY3VsYXRlIGZyb20gdGhlIG1hc3Rlci4KIAkJCSAqLwotCQkJaWYgKGludGVsX3BzdGF0ZS0+c2xhdmUpCisJCQlpZiAocGxhbmVfc3RhdGUtPnNsYXZlKQogCQkJCWNvbnRpbnVlOwogCiAJCQkvKiBZIHBsYW5lIHJhdGUgaXMgY2FsY3VsYXRlZCBvbiB0aGUgc2xhdmUgKi8KLQkJCXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGludGVsX2NzdGF0ZSwKLQkJCQkJCQkgICAgaW50ZWxfcHN0YXRlLCAwKTsKLQkJCXlfcGxhbmVfaWQgPSBpbnRlbF9wc3RhdGUtPmxpbmtlZF9wbGFuZS0+aWQ7CisJCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSwgMCk7CisJCQl5X3BsYW5lX2lkID0gcGxhbmVfc3RhdGUtPmxpbmtlZF9wbGFuZS0+aWQ7CiAJCQlwbGFuZV9kYXRhX3JhdGVbeV9wbGFuZV9pZF0gPSByYXRlOwogCQkJdG90YWxfZGF0YV9yYXRlICs9IHJhdGU7CiAKLQkJCXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGludGVsX2NzdGF0ZSwKLQkJCQkJCQkgICAgaW50ZWxfcHN0YXRlLCAxKTsKKwkJCXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlLCAxKTsKIAkJCXBsYW5lX2RhdGFfcmF0ZVtwbGFuZV9pZF0gPSByYXRlOwogCQkJdG90YWxfZGF0YV9yYXRlICs9IHJhdGU7CiAJCX0KQEAgLTQzMzcsMTQgKzQzMjMsMTQgQEAgaWNsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NzdGF0ZSwKIH0KIAogc3RhdGljIGludAotc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCitza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pCiB7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3N0YXRlLT5iYXNlLnN0YXRlOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNzdGF0ZS0+YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9jID0gJmNzdGF0ZS0+d20uc2tsLmRkYjsKKwlzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqYWxsb2MgPSAmY3J0Y19zdGF0ZS0+d20uc2tsLmRkYjsKIAl1MTYgYWxsb2Nfc2l6ZSwgc3RhcnQgPSAwOwogCXUxNiB0b3RhbFtJOTE1X01BWF9QTEFORVNdID0ge307CiAJdTE2IHV2X3RvdGFsW0k5MTVfTUFYX1BMQU5FU10gPSB7fTsKQEAgLTQzNTcsNDAgKzQzNDMsNDAgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAJaW50IGxldmVsOwogCiAJLyogQ2xlYXIgdGhlIHBhcnRpdGlvbmluZyBmb3IgZGlzYWJsZWQgcGxhbmVzLiAqLwotCW1lbXNldChjc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfeSwgMCwgc2l6ZW9mKGNzdGF0ZS0+d20uc2tsLnBsYW5lX2RkYl95KSk7Ci0JbWVtc2V0KGNzdGF0ZS0+d20uc2tsLnBsYW5lX2RkYl91diwgMCwgc2l6ZW9mKGNzdGF0ZS0+d20uc2tsLnBsYW5lX2RkYl91dikpOworCW1lbXNldChjcnRjX3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3ksIDAsIHNpemVvZihjcnRjX3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3kpKTsKKwltZW1zZXQoY3J0Y19zdGF0ZS0+d20uc2tsLnBsYW5lX2RkYl91diwgMCwgc2l6ZW9mKGNydGNfc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfdXYpKTsKIAogCWlmIChXQVJOX09OKCFzdGF0ZSkpCiAJCXJldHVybiAwOwogCi0JaWYgKCFjc3RhdGUtPmJhc2UuYWN0aXZlKSB7CisJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkgewogCQlhbGxvYy0+c3RhcnQgPSBhbGxvYy0+ZW5kID0gMDsKIAkJcmV0dXJuIDA7CiAJfQogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCiAJCXRvdGFsX2RhdGFfcmF0ZSA9Ci0JCQlpY2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShjc3RhdGUsCisJCQlpY2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShjcnRjX3N0YXRlLAogCQkJCQkJCSBwbGFuZV9kYXRhX3JhdGUpOwogCWVsc2UKIAkJdG90YWxfZGF0YV9yYXRlID0KLQkJCXNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKGNzdGF0ZSwKKwkJCXNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKGNydGNfc3RhdGUsCiAJCQkJCQkJIHBsYW5lX2RhdGFfcmF0ZSwKIAkJCQkJCQkgdXZfcGxhbmVfZGF0YV9yYXRlKTsKIAogCi0Jc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhkZXZfcHJpdiwgY3N0YXRlLCB0b3RhbF9kYXRhX3JhdGUsCisJc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhkZXZfcHJpdiwgY3J0Y19zdGF0ZSwgdG90YWxfZGF0YV9yYXRlLAogCQkJCQkgICBkZGIsIGFsbG9jLCAmbnVtX2FjdGl2ZSk7CiAJYWxsb2Nfc2l6ZSA9IHNrbF9kZGJfZW50cnlfc2l6ZShhbGxvYyk7CiAJaWYgKGFsbG9jX3NpemUgPT0gMCkKIAkJcmV0dXJuIDA7CiAKIAkvKiBBbGxvY2F0ZSBmaXhlZCBudW1iZXIgb2YgYmxvY2tzIGZvciBjdXJzb3IuICovCi0JdG90YWxbUExBTkVfQ1VSU09SXSA9IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihjc3RhdGUsIG51bV9hY3RpdmUpOworCXRvdGFsW1BMQU5FX0NVUlNPUl0gPSBza2xfY3Vyc29yX2FsbG9jYXRpb24oY3J0Y19zdGF0ZSwgbnVtX2FjdGl2ZSk7CiAJYWxsb2Nfc2l6ZSAtPSB0b3RhbFtQTEFORV9DVVJTT1JdOwotCWNzdGF0ZS0+d20uc2tsLnBsYW5lX2RkYl95W1BMQU5FX0NVUlNPUl0uc3RhcnQgPQorCWNydGNfc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfeVtQTEFORV9DVVJTT1JdLnN0YXJ0ID0KIAkJYWxsb2MtPmVuZCAtIHRvdGFsW1BMQU5FX0NVUlNPUl07Ci0JY3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3lbUExBTkVfQ1VSU09SXS5lbmQgPSBhbGxvYy0+ZW5kOworCWNydGNfc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfeVtQTEFORV9DVVJTT1JdLmVuZCA9IGFsbG9jLT5lbmQ7CiAKIAlpZiAodG90YWxfZGF0YV9yYXRlID09IDApCiAJCXJldHVybiAwOwpAQCAtNDQwMyw3ICs0Mzg5LDcgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAJCWJsb2NrcyA9IDA7CiAJCWZvcl9lYWNoX3BsYW5lX2lkX29uX2NydGMoaW50ZWxfY3J0YywgcGxhbmVfaWQpIHsKIAkJCWNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKndtID0KLQkJCQkmY3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdOworCQkJCSZjcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdOwogCiAJCQlpZiAocGxhbmVfaWQgPT0gUExBTkVfQ1VSU09SKSB7CiAJCQkJaWYgKFdBUk5fT04od20tPndtW2xldmVsXS5taW5fZGRiX2FsbG9jID4KQEAgLTQ0MzgsNyArNDQyNCw3IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCSAqLwogCWZvcl9lYWNoX3BsYW5lX2lkX29uX2NydGMoaW50ZWxfY3J0YywgcGxhbmVfaWQpIHsKIAkJY29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqd20gPQotCQkJJmNzdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzW3BsYW5lX2lkXTsKKwkJCSZjcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdOwogCQl1NjQgcmF0ZTsKIAkJdTE2IGV4dHJhOwogCkBAIC00NDc3LDkgKzQ0NjMsOSBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAlzdGFydCA9IGFsbG9jLT5zdGFydDsKIAlmb3JfZWFjaF9wbGFuZV9pZF9vbl9jcnRjKGludGVsX2NydGMsIHBsYW5lX2lkKSB7CiAJCXN0cnVjdCBza2xfZGRiX2VudHJ5ICpwbGFuZV9hbGxvYyA9Ci0JCQkmY3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3lbcGxhbmVfaWRdOworCQkJJmNydGNfc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfeVtwbGFuZV9pZF07CiAJCXN0cnVjdCBza2xfZGRiX2VudHJ5ICp1dl9wbGFuZV9hbGxvYyA9Ci0JCQkmY3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3V2W3BsYW5lX2lkXTsKKwkJCSZjcnRjX3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3V2W3BsYW5lX2lkXTsKIAogCQlpZiAocGxhbmVfaWQgPT0gUExBTkVfQ1VSU09SKQogCQkJY29udGludWU7CkBAIC00NTEwLDcgKzQ0OTYsNyBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAlmb3IgKGxldmVsKys7IGxldmVsIDw9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpOyBsZXZlbCsrKSB7CiAJCWZvcl9lYWNoX3BsYW5lX2lkX29uX2NydGMoaW50ZWxfY3J0YywgcGxhbmVfaWQpIHsKIAkJCXN0cnVjdCBza2xfcGxhbmVfd20gKndtID0KLQkJCQkmY3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdOworCQkJCSZjcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdOwogCiAJCQkvKgogCQkJICogV2Ugb25seSBkaXNhYmxlIHRoZSB3YXRlcm1hcmtzIGZvciBlYWNoIHBsYW5lIGlmCkBAIC00NTQ3LDcgKzQ1MzMsNyBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAkgKi8KIAlmb3JfZWFjaF9wbGFuZV9pZF9vbl9jcnRjKGludGVsX2NydGMsIHBsYW5lX2lkKSB7CiAJCXN0cnVjdCBza2xfcGxhbmVfd20gKndtID0KLQkJCSZjc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF07CisJCQkmY3J0Y19zdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzW3BsYW5lX2lkXTsKIAogCQlpZiAod20tPnRyYW5zX3dtLnBsYW5lX3Jlc19iID49IHRvdGFsW3BsYW5lX2lkXSkKIAkJCW1lbXNldCgmd20tPnRyYW5zX3dtLCAwLCBzaXplb2Yod20tPnRyYW5zX3dtKSk7CkBAIC00NTk5LDQzICs0NTg1LDQzIEBAIHNrbF93bV9tZXRob2QyKHUzMiBwaXhlbF9yYXRlLCB1MzIgcGlwZV9odG90YWwsIHUzMiBsYXRlbmN5LAogfQogCiBzdGF0aWMgdWludF9maXhlZF8xNl8xNl90Ci1pbnRlbF9nZXRfbGluZXRpbWVfdXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKK2ludGVsX2dldF9saW5ldGltZV91cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAl1MzIgcGl4ZWxfcmF0ZTsKIAl1MzIgY3J0Y19odG90YWw7CiAJdWludF9maXhlZF8xNl8xNl90IGxpbmV0aW1lX3VzOwogCi0JaWYgKCFjc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCiAJCXJldHVybiB1MzJfdG9fZml4ZWQxNigwKTsKIAotCXBpeGVsX3JhdGUgPSBjc3RhdGUtPnBpeGVsX3JhdGU7CisJcGl4ZWxfcmF0ZSA9IGNydGNfc3RhdGUtPnBpeGVsX3JhdGU7CiAKIAlpZiAoV0FSTl9PTihwaXhlbF9yYXRlID09IDApKQogCQlyZXR1cm4gdTMyX3RvX2ZpeGVkMTYoMCk7CiAKLQljcnRjX2h0b3RhbCA9IGNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsOworCWNydGNfaHRvdGFsID0gY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsOwogCWxpbmV0aW1lX3VzID0gZGl2X2ZpeGVkMTYoY3J0Y19odG90YWwgKiAxMDAwLCBwaXhlbF9yYXRlKTsKIAogCXJldHVybiBsaW5ldGltZV91czsKIH0KIAogc3RhdGljIHUzMgotc2tsX2FkanVzdGVkX3BsYW5lX3BpeGVsX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHN0YXRlKQorc2tsX2FkanVzdGVkX3BsYW5lX3BpeGVsX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXU2NCBhZGp1c3RlZF9waXhlbF9yYXRlOwogCXVpbnRfZml4ZWRfMTZfMTZfdCBkb3duc2NhbGVfYW1vdW50OwogCiAJLyogU2hvdWxkbid0IHJlYWNoIGhlcmUgb24gZGlzYWJsZWQgcGxhbmVzLi4uICovCi0JaWYgKFdBUk5fT04oIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3N0YXRlLCBwc3RhdGUpKSkKKwlpZiAoV0FSTl9PTighaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSkpKQogCQlyZXR1cm4gMDsKIAogCS8qCiAJICogQWRqdXN0ZWQgcGxhbmUgcGl4ZWwgcmF0ZSBpcyBqdXN0IHRoZSBwaXBlJ3MgYWRqdXN0ZWQgcGl4ZWwgcmF0ZQogCSAqIHdpdGggYWRkaXRpb25hbCBhZGp1c3RtZW50cyBmb3IgcGxhbmUtc3BlY2lmaWMgc2NhbGluZy4KIAkgKi8KLQlhZGp1c3RlZF9waXhlbF9yYXRlID0gY3N0YXRlLT5waXhlbF9yYXRlOwotCWRvd25zY2FsZV9hbW91bnQgPSBza2xfcGxhbmVfZG93bnNjYWxlX2Ftb3VudChjc3RhdGUsIHBzdGF0ZSk7CisJYWRqdXN0ZWRfcGl4ZWxfcmF0ZSA9IGNydGNfc3RhdGUtPnBpeGVsX3JhdGU7CisJZG93bnNjYWxlX2Ftb3VudCA9IHNrbF9wbGFuZV9kb3duc2NhbGVfYW1vdW50KGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKIAogCXJldHVybiBtdWxfcm91bmRfdXBfdTMyX2ZpeGVkMTYoYWRqdXN0ZWRfcGl4ZWxfcmF0ZSwKIAkJCQkJICAgIGRvd25zY2FsZV9hbW91bnQpOwpAQCAtNDc2OCwxMyArNDc1NCwxMyBAQCBzdGF0aWMgYm9vbCBza2xfd21faGFzX2xpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGxldmVsKQogCXJldHVybiBsZXZlbCA+IDA7CiB9CiAKLXN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCitzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgaW50IGxldmVsLAogCQkJCSBjb25zdCBzdHJ1Y3Qgc2tsX3dtX3BhcmFtcyAqd3AsCiAJCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdF9wcmV2LAogCQkJCSBzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHQgLyogb3V0ICovKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CiAJdTMyIGxhdGVuY3kgPSBkZXZfcHJpdi0+d20uc2tsX2xhdGVuY3lbbGV2ZWxdOwogCXVpbnRfZml4ZWRfMTZfMTZfdCBtZXRob2QxLCBtZXRob2QyOwogCXVpbnRfZml4ZWRfMTZfMTZfdCBzZWxlY3RlZF9yZXN1bHQ7CkBAIC00ODAwLDE0ICs0Nzg2LDE0IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAJbWV0aG9kMSA9IHNrbF93bV9tZXRob2QxKGRldl9wcml2LCB3cC0+cGxhbmVfcGl4ZWxfcmF0ZSwKIAkJCQkgd3AtPmNwcCwgbGF0ZW5jeSwgd3AtPmRidWZfYmxvY2tfc2l6ZSk7CiAJbWV0aG9kMiA9IHNrbF93bV9tZXRob2QyKHdwLT5wbGFuZV9waXhlbF9yYXRlLAotCQkJCSBjc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkgY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBsYXRlbmN5LAogCQkJCSB3cC0+cGxhbmVfYmxvY2tzX3Blcl9saW5lKTsKIAogCWlmICh3cC0+eV90aWxlZCkgewogCQlzZWxlY3RlZF9yZXN1bHQgPSBtYXhfZml4ZWQxNihtZXRob2QyLCB3cC0+eV90aWxlX21pbmltdW0pOwogCX0gZWxzZSB7Ci0JCWlmICgod3AtPmNwcCAqIGNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsIC8KKwkJaWYgKCh3cC0+Y3BwICogY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsIC8KIAkJICAgICB3cC0+ZGJ1Zl9ibG9ja19zaXplIDwgMSkgJiYKIAkJICAgICAod3AtPnBsYW5lX2J5dGVzX3Blcl9saW5lIC8gd3AtPmRidWZfYmxvY2tfc2l6ZSA8IDEpKSB7CiAJCQlzZWxlY3RlZF9yZXN1bHQgPSBtZXRob2QyOwpAQCAtNDg5NCwxOCArNDg4MCwxOCBAQCBzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogfQogCiBzdGF0aWMgdm9pZAotc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCitza2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3bV9wYXJhbXMsCiAJCSAgICAgIHN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNzdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwogCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAJc3RydWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0X3ByZXYgPSAmbGV2ZWxzWzBdOwogCiAJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykgewogCQlzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHQgPSAmbGV2ZWxzW2xldmVsXTsKIAotCQlza2xfY29tcHV0ZV9wbGFuZV93bShjc3RhdGUsIGxldmVsLCB3bV9wYXJhbXMsCisJCXNrbF9jb21wdXRlX3BsYW5lX3dtKGNydGNfc3RhdGUsIGxldmVsLCB3bV9wYXJhbXMsCiAJCQkJICAgICByZXN1bHRfcHJldiwgcmVzdWx0KTsKIAogCQlyZXN1bHRfcHJldiA9IHJlc3VsdDsKQEAgLTQ5MTMsMTQgKzQ4OTksMTQgQEAgc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiB9CiAKIHN0YXRpYyB1MzIKLXNrbF9jb21wdXRlX2xpbmV0aW1lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCitza2xfY29tcHV0ZV9saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwogCXVpbnRfZml4ZWRfMTZfMTZfdCBsaW5ldGltZV91czsKIAl1MzIgbGluZXRpbWVfd207CiAKLQlsaW5ldGltZV91cyA9IGludGVsX2dldF9saW5ldGltZV91cyhjc3RhdGUpOworCWxpbmV0aW1lX3VzID0gaW50ZWxfZ2V0X2xpbmV0aW1lX3VzKGNydGNfc3RhdGUpOwogCWxpbmV0aW1lX3dtID0gZml4ZWQxNl90b191MzJfcm91bmRfdXAobXVsX3UzMl9maXhlZDE2KDgsIGxpbmV0aW1lX3VzKSk7CiAKIAkvKiBEaXNwbGF5IFdBICMxMTM1OiBCWFQ6QUxMIEdMSzpBTEwgKi8KQEAgLTQ5MzAsMTEgKzQ5MTYsMTEgQEAgc2tsX2NvbXB1dGVfbGluZXRpbWVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIAlyZXR1cm4gbGluZXRpbWVfd207CiB9CiAKLXN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3RyYW5zaXRpb25fd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKK3N0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3RyYW5zaXRpb25fd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICAgICAgY29uc3Qgc3RydWN0IHNrbF93bV9wYXJhbXMgKndwLAogCQkJCSAgICAgIHN0cnVjdCBza2xfcGxhbmVfd20gKndtKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKIAljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJdTE2IHRyYW5zX21pbiwgdHJhbnNfeV90aWxlX21pbjsKIAljb25zdCB1MTYgdHJhbnNfYW1vdW50ID0gMTA7IC8qIFRoaXMgaXMgY29uZmlndXJhYmxlIGFtb3VudCAqLwpAQCAtNTA5MiwxMyArNTA3OCwxMiBAQCBzdGF0aWMgaW50IGljbF9idWlsZF9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQorc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNzdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bSA9ICZjc3RhdGUtPndtLnNrbC5vcHRpbWFsOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9ICZjc3RhdGUtPmJhc2U7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtID0gJmNydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsOwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwotCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZTsKKwljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpkcm1fcGxhbmVfc3RhdGU7CiAJaW50IHJldDsKIAogCS8qCkBAIC01MTA3LDE5ICs1MDkyLDIwIEBAIHN0YXRpYyBpbnQgc2tsX2J1aWxkX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIAkgKi8KIAltZW1zZXQocGlwZV93bS0+cGxhbmVzLCAwLCBzaXplb2YocGlwZV93bS0+cGxhbmVzKSk7CiAKLQlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIHBzdGF0ZSwgY3J0Y19zdGF0ZSkgewotCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZSA9Ci0JCQkJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwc3RhdGUpOworCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgZHJtX3BsYW5lX3N0YXRlLAorCQkJCQkJICAgJmNydGNfc3RhdGUtPmJhc2UpIHsKKwkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9CisJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmVfc3RhdGUpOwogCiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQotCQkJcmV0ID0gaWNsX2J1aWxkX3BsYW5lX3dtKGNzdGF0ZSwgaW50ZWxfcHN0YXRlKTsKKwkJCXJldCA9IGljbF9idWlsZF9wbGFuZV93bShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSk7CiAJCWVsc2UKLQkJCXJldCA9IHNrbF9idWlsZF9wbGFuZV93bShjc3RhdGUsIGludGVsX3BzdGF0ZSk7CisJCQlyZXQgPSBza2xfYnVpbGRfcGxhbmVfd20oY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CiAKLQlwaXBlX3dtLT5saW5ldGltZSA9IHNrbF9jb21wdXRlX2xpbmV0aW1lX3dtKGNzdGF0ZSk7CisJcGlwZV93bS0+bGluZXRpbWUgPSBza2xfY29tcHV0ZV9saW5ldGltZV93bShjcnRjX3N0YXRlKTsKIAogCXJldHVybiAwOwogfQpAQCAtNTI3MywxMCArNTI1OSwxMCBAQCBzdGF0aWMgdTMyCiBwaXBlc19tb2RpZmllZChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCXUzMiBpLCByZXQgPSAwOwogCi0JZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNzdGF0ZSwgaSkKKwlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkKIAkJcmV0IHw9IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwogCiAJcmV0dXJuIHJldDsKQEAgLTU2NTIsMTEgKzU2MzgsMTEgQEAgc2tsX2NvbXB1dGVfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB9CiAKIHN0YXRpYyB2b2lkIHNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKKwkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKLQlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3N0YXRlLT53bS5za2wub3B0aW1hbDsKKwlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3J0Y19zdGF0ZS0+d20uc2tsLm9wdGltYWw7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCiAJaWYgKCEoc3RhdGUtPndtX3Jlc3VsdHMuZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKCZjcnRjLT5iYXNlKSkpCkBAIC01NjY2LDkgKzU2NTIsOSBAQCBzdGF0aWMgdm9pZCBza2xfYXRvbWljX3VwZGF0ZV9jcnRjX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogfQogCiBzdGF0aWMgdm9pZCBza2xfaW5pdGlhbF93bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKLQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCisJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IHNrbF9kZGJfdmFsdWVzICpyZXN1bHRzID0gJnN0YXRlLT53bV9yZXN1bHRzOwpAQCAtNTY3OCw4ICs1NjY0LDggQEAgc3RhdGljIHZvaWQgc2tsX2luaXRpYWxfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwogCi0JaWYgKGNzdGF0ZS0+YmFzZS5hY3RpdmVfY2hhbmdlZCkKLQkJc2tsX2F0b21pY191cGRhdGVfY3J0Y193bShzdGF0ZSwgY3N0YXRlKTsKKwlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmVfY2hhbmdlZCkKKwkJc2tsX2F0b21pY191cGRhdGVfY3J0Y193bShzdGF0ZSwgY3J0Y19zdGF0ZSk7CiAKIAltdXRleF91bmxvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CiB9CkBAIC01NzM1LDI4ICs1NzIxLDI5IEBAIHN0YXRpYyB2b2lkIGlsa19wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogfQogCiBzdGF0aWMgdm9pZCBpbGtfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCisJCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKLQlpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrID0gY3N0YXRlLT53bS5pbGsuaW50ZXJtZWRpYXRlOworCWNydGMtPndtLmFjdGl2ZS5pbGsgPSBjcnRjX3N0YXRlLT53bS5pbGsuaW50ZXJtZWRpYXRlOwogCWlsa19wcm9ncmFtX3dhdGVybWFya3MoZGV2X3ByaXYpOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKIH0KIAogc3RhdGljIHZvaWQgaWxrX29wdGltaXplX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCisJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKworCWlmICghY3J0Y19zdGF0ZS0+d20ubmVlZF9wb3N0dmJsX3VwZGF0ZSkKKwkJcmV0dXJuOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKLQlpZiAoY3N0YXRlLT53bS5uZWVkX3Bvc3R2YmxfdXBkYXRlKSB7Ci0JCWludGVsX2NydGMtPndtLmFjdGl2ZS5pbGsgPSBjc3RhdGUtPndtLmlsay5vcHRpbWFsOwotCQlpbGtfcHJvZ3JhbV93YXRlcm1hcmtzKGRldl9wcml2KTsKLQl9CisJY3J0Yy0+d20uYWN0aXZlLmlsayA9IGNydGNfc3RhdGUtPndtLmlsay5vcHRpbWFsOworCWlsa19wcm9ncmFtX3dhdGVybWFya3MoZGV2X3ByaXYpOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKIH0KIApAQCAtNTgxMiwxMyArNTc5OSwxMyBAQCB2b2lkIHNrbF93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBza2xfZGRiX3ZhbHVlcyAqaHcgPSAmZGV2X3ByaXYtPndtLnNrbF9odzsKIAlzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIgPSAmZGV2X3ByaXYtPndtLnNrbF9ody5kZGI7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGM7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAogCXNrbF9kZGJfZ2V0X2h3X3N0YXRlKGRldl9wcml2LCBkZGIpOwogCWZvcl9lYWNoX2ludGVsX2NydGMoJmRldl9wcml2LT5kcm0sIGNydGMpIHsKLQkJY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKTsKKwkJY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CiAKLQkJc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKGNydGMsICZjc3RhdGUtPndtLnNrbC5vcHRpbWFsKTsKKwkJc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKGNydGMsICZjcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbCk7CiAKIAkJaWYgKGNydGMtPmFjdGl2ZSkKIAkJCWh3LT5kaXJ0eV9waXBlcyB8PSBkcm1fY3J0Y19tYXNrKCZjcnRjLT5iYXNlKTsKQEAgLTU4MzUsOCArNTgyMiw4IEBAIHN0YXRpYyB2b2lkIGlsa19waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbGtfd21fdmFsdWVzICpodyA9ICZkZXZfcHJpdi0+d20uaHc7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7Ci0Jc3RydWN0IGludGVsX3BpcGVfd20gKmFjdGl2ZSA9ICZjc3RhdGUtPndtLmlsay5vcHRpbWFsOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKTsKKwlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqYWN0aXZlID0gJmNydGNfc3RhdGUtPndtLmlsay5vcHRpbWFsOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlzdGF0aWMgY29uc3QgaTkxNV9yZWdfdCB3bTBfcGlwZV9yZWdbXSA9IHsKIAkJW1BJUEVfQV0gPSBXTTBfUElQRUFfSUxLLApAQCAtNjg5MSw5ICs2ODc4LDEwIEBAIHZvaWQgZ2VuNl9ycHNfYm9vc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJLyogU2VyaWFsaXplcyB3aXRoIGk5MTVfcmVxdWVzdF9yZXRpcmUoKSAqLwogCWJvb3N0ID0gZmFsc2U7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnJxLT5sb2NrLCBmbGFncyk7Ci0JaWYgKCFycS0+d2FpdGJvb3N0ICYmICFkbWFfZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkKCZycS0+ZmVuY2UpKSB7CisJaWYgKCFpOTE1X3JlcXVlc3RfaGFzX3dhaXRib29zdChycSkgJiYKKwkgICAgIWRtYV9mZW5jZV9pc19zaWduYWxlZF9sb2NrZWQoJnJxLT5mZW5jZSkpIHsKIAkJYm9vc3QgPSAhYXRvbWljX2ZldGNoX2luYygmcnBzLT5udW1fd2FpdGVycyk7Ci0JCXJxLT53YWl0Ym9vc3QgPSB0cnVlOworCQlycS0+ZmxhZ3MgfD0gSTkxNV9SRVFVRVNUX1dBSVRCT09TVDsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcnEtPmxvY2ssIGZsYWdzKTsKIAlpZiAoIWJvb3N0KQpAQCAtNzE3NSw3ICs3MTYzLDcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZW5hYmxlX3JjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQogCQlJOTE1X1dSSVRFKFJJTkdfTUFYX0lETEUoZW5naW5lLT5tbWlvX2Jhc2UpLCAxMCk7CiAKLQlpZiAoSEFTX0dVQyhkZXZfcHJpdikpCisJaWYgKEhBU19HVF9VQyhkZXZfcHJpdikpCiAJCUk5MTVfV1JJVEUoR1VDX01BWF9JRExFX0NPVU5ULCAweEEpOwogCiAJSTkxNV9XUklURShHRU42X1JDX1NMRUVQLCAwKTsKQEAgLTcxOTIsNyArNzE4MCw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2VuYWJsZV9yYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIG5leHQgcmVxdWVzdCB0byBleGVjdXRlLiBJZiB0aGUgaWRsZSBoeXN0ZXJlc2lzIGlzIGxlc3MgdGhhbiB0aGF0CiAJICogaW50ZXJydXB0IHNlcnZpY2UgbGF0ZW5jeSwgdGhlIGhhcmR3YXJlIHdpbGwgYXV0b21hdGljYWxseSBnYXRlCiAJICogdGhlIHBvd2VyIHdlbGwgYW5kIHdlIHdpbGwgdGhlbiBpbmN1ciB0aGUgd2FrZSB1cCBjb3N0IG9uIHRvcCBvZgotCSAqIHRoZSBzZXJ2aWNlIGxhdGVuY3kuIEEgc2ltaWxhciBndWlkZSBmcm9tIGludGVsX3BzdGF0ZSBpcyB0aGF0IHdlCisJICogdGhlIHNlcnZpY2UgbGF0ZW5jeS4gQSBzaW1pbGFyIGd1aWRlIGZyb20gcGxhbmVfc3RhdGUgaXMgdGhhdCB3ZQogCSAqIGRvIG5vdCB3YW50IHRoZSBlbmFibGUgaHlzdGVyZXNpcyB0byBsZXNzIHRoYW4gdGhlIHdha2V1cCBsYXRlbmN5LgogCSAqCiAJICogaWd0L2dlbV9leGVjX25vcC9zZXF1ZW50aWFsIHByb3ZpZGVzIGEgcm91Z2ggZXN0aW1hdGUgZm9yIHRoZQpAQCAtNzI1Niw3ICs3MjQ0LDcgQEAgc3RhdGljIHZvaWQgZ2VuOV9lbmFibGVfcmM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpCiAJCUk5MTVfV1JJVEUoUklOR19NQVhfSURMRShlbmdpbmUtPm1taW9fYmFzZSksIDEwKTsKIAotCWlmIChIQVNfR1VDKGRldl9wcml2KSkKKwlpZiAoSEFTX0dUX1VDKGRldl9wcml2KSkKIAkJSTkxNV9XUklURShHVUNfTUFYX0lETEVfQ09VTlQsIDB4QSk7CiAKIAlJOTE1X1dSSVRFKEdFTjZfUkNfU0xFRVAsIDApOwpAQCAtNzI3MSw3ICs3MjU5LDcgQEAgc3RhdGljIHZvaWQgZ2VuOV9lbmFibGVfcmM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBuZXh0IHJlcXVlc3QgdG8gZXhlY3V0ZS4gSWYgdGhlIGlkbGUgaHlzdGVyZXNpcyBpcyBsZXNzIHRoYW4gdGhhdAogCSAqIGludGVycnVwdCBzZXJ2aWNlIGxhdGVuY3ksIHRoZSBoYXJkd2FyZSB3aWxsIGF1dG9tYXRpY2FsbHkgZ2F0ZQogCSAqIHRoZSBwb3dlciB3ZWxsIGFuZCB3ZSB3aWxsIHRoZW4gaW5jdXIgdGhlIHdha2UgdXAgY29zdCBvbiB0b3Agb2YKLQkgKiB0aGUgc2VydmljZSBsYXRlbmN5LiBBIHNpbWlsYXIgZ3VpZGUgZnJvbSBpbnRlbF9wc3RhdGUgaXMgdGhhdCB3ZQorCSAqIHRoZSBzZXJ2aWNlIGxhdGVuY3kuIEEgc2ltaWxhciBndWlkZSBmcm9tIHBsYW5lX3N0YXRlIGlzIHRoYXQgd2UKIAkgKiBkbyBub3Qgd2FudCB0aGUgZW5hYmxlIGh5c3RlcmVzaXMgdG8gbGVzcyB0aGFuIHRoZSB3YWtldXAgbGF0ZW5jeS4KIAkgKgogCSAqIGlndC9nZW1fZXhlY19ub3Avc2VxdWVudGlhbCBwcm92aWRlcyBhIHJvdWdoIGVzdGltYXRlIGZvciB0aGUKQEAgLTkxODEsOSArOTE2OSw2IEBAIHN0YXRpYyB2b2lkIHNrbF9pbml0X2Nsb2NrX2dhdGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyB2b2lkIGJkd19pbml0X2Nsb2NrX2dhdGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JLyogVGhlIEdUVCBjYWNoZSBtdXN0IGJlIGRpc2FibGVkIGlmIHRoZSBzeXN0ZW0gaXMgdXNpbmcgMk0gcGFnZXMuICovCi0JYm9vbCBjYW5fdXNlX2d0dF9jYWNoZSA9ICFIQVNfUEFHRV9TSVpFUyhkZXZfcHJpdiwKLQkJCQkJCSBJOTE1X0dUVF9QQUdFX1NJWkVfMk0pOwogCWVudW0gcGlwZSBwaXBlOwogCiAJLyogV2FTd2l0Y2hTb2xWZkZBcmJpdHJhdGlvblByaW9yaXR5OmJkdyAqLwpAQCAtOTIxNiw5ICs5MjAxLDYgQEAgc3RhdGljIHZvaWQgYmR3X2luaXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkvKiBXYVByb2dyYW1MM1NxY1JlZzFEZWZhdWx0OmJkdyAqLwogCWdlbjhfc2V0X2wzc3FjX2NyZWRpdHMoZGV2X3ByaXYsIDMwLCAyKTsKIAotCS8qIFdhR3R0Q2FjaGluZ09mZkJ5RGVmYXVsdDpiZHcgKi8KLQlJOTE1X1dSSVRFKEhTV19HVFRfQ0FDSEVfRU4sIGNhbl91c2VfZ3R0X2NhY2hlID8gR1RUX0NBQ0hFX0VOX0FMTCA6IDApOwotCiAJLyogV2FLVk1Ob3RpZmljYXRpb25PbkNvbmZpZ0NoYW5nZTpiZHcgKi8KIAlJOTE1X1dSSVRFKENISUNLRU5fUEFSMl8xLCBJOTE1X1JFQUQoQ0hJQ0tFTl9QQVIyXzEpCiAJCSAgIHwgS1ZNX0NPTkZJR19DSEFOR0VfTk9USUZJQ0FUSU9OX1NFTEVDVCk7CkBAIC05NDgzLDEyICs5NDY1LDYgQEAgc3RhdGljIHZvaWQgY2h2X2luaXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBMU1FDIFNldHRpbmcgUmVjb21tZW5kYXRpb25zLgogCSAqLwogCWdlbjhfc2V0X2wzc3FjX2NyZWRpdHMoZGV2X3ByaXYsIDM4LCAyKTsKLQotCS8qCi0JICogR1RUIGNhY2hlIG1heSBub3Qgd29yayB3aXRoIGJpZyBwYWdlcywgc28gaWYgdGhvc2UKLQkgKiBhcmUgZXZlciBlbmFibGVkIEdUVCBjYWNoZSBtYXkgbmVlZCB0byBiZSBkaXNhYmxlZC4KLQkgKi8KLQlJOTE1X1dSSVRFKEhTV19HVFRfQ0FDSEVfRU4sIEdUVF9DQUNIRV9FTl9BTEwpOwogfQogCiBzdGF0aWMgdm9pZCBnNHhfaW5pdF9jbG9ja19nYXRpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtOTYyMSw3ICs5NTk3LDkgQEAgc3RhdGljIHZvaWQgbm9wX2luaXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqLwogdm9pZCBpbnRlbF9pbml0X2Nsb2NrX2dhdGluZ19ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JaWYgKElTX0dFTihkZXZfcHJpdiwgMTEpKQorCWlmIChJU19HRU4oZGV2X3ByaXYsIDEyKSkKKwkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdF9jbG9ja19nYXRpbmcgPSBub3BfaW5pdF9jbG9ja19nYXRpbmc7CisJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCAxMSkpCiAJCWRldl9wcml2LT5kaXNwbGF5LmluaXRfY2xvY2tfZ2F0aW5nID0gaWNsX2luaXRfY2xvY2tfZ2F0aW5nOwogCWVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2NrX2dhdGluZyA9IGNubF9pbml0X2Nsb2NrX2dhdGluZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5oCmluZGV4IDFiNDg5ZmEuLmUzNTczZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uaApAQCAtMTAsMTAgKzEwLDEwIEBACiAKICNpbmNsdWRlICJpOTE1X3JlZy5oIgogCi1zdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZTsKIHN0cnVjdCBkcm1fZGV2aWNlOwogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CiBzdHJ1Y3QgaTkxNV9yZXF1ZXN0Oworc3RydWN0IGludGVsX2F0b21pY19zdGF0ZTsKIHN0cnVjdCBpbnRlbF9jcnRjOwogc3RydWN0IGludGVsX2NydGNfc3RhdGU7CiBzdHJ1Y3QgaW50ZWxfcGxhbmU7CkBAIC01Miw3ICs1Miw3IEBAIHZvaWQgc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAgICAgc3RydWN0IHNrbF9waXBlX3dtICpvdXQpOwogdm9pZCBnNHhfd21fc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgdmx2X3dtX3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1ib29sIGludGVsX2Nhbl9lbmFibGVfc2FndihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOworYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogaW50IGludGVsX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBpbnQgaW50ZWxfZGlzYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBib29sIHNrbF93bV9sZXZlbF9lcXVhbHMoY29uc3Qgc3RydWN0IHNrbF93bV9sZXZlbCAqbDEsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhmNmZlYS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICovCi0KLSNpZm5kZWYgX0lOVEVMX1JFTkRFUlNUQVRFX0gKLSNkZWZpbmUgX0lOVEVMX1JFTkRFUlNUQVRFX0gKLQotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0KLXN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgewotCWNvbnN0IHUzMiAqcmVsb2M7Ci0JY29uc3QgdTMyICpiYXRjaDsKLQljb25zdCB1MzIgYmF0Y2hfaXRlbXM7Ci19OwotCi0jZGVmaW5lIFJPX1JFTkRFUlNUQVRFKF9nKQkJCQkJCVwKLQljb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhIGdlbiAjIyBfZyAjIyBfbnVsbF9zdGF0ZSA9IHsgXAotCQkucmVsb2MgPSBnZW4gIyMgX2cgIyMgX251bGxfc3RhdGVfcmVsb2NzLAkJXAotCQkuYmF0Y2ggPSBnZW4gIyMgX2cgIyMgX251bGxfc3RhdGVfYmF0Y2gsCQlcCi0JCS5iYXRjaF9pdGVtcyA9IHNpemVvZihnZW4gIyMgX2cgIyMgX251bGxfc3RhdGVfYmF0Y2gpLzQsIFwKLQl9Ci0KLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhIGdlbjZfbnVsbF9zdGF0ZTsKLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhIGdlbjdfbnVsbF9zdGF0ZTsKLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhIGdlbjhfbnVsbF9zdGF0ZTsKLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhIGdlbjlfbnVsbF9zdGF0ZTsKLQotI2VuZGlmIC8qIElOVEVMX1JFTkRFUlNUQVRFX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwppbmRleCA4ZDFhZWJjLi4yZmQzYzA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAKIC8qKgogICogRE9DOiBydW50aW1lIHBtCkBAIC01OTIsNyArNTkzLDcgQEAgdm9pZCBpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGUoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSkKIAkJcG1fcnVudGltZV9wdXQoa2Rldik7CiB9CiAKLXZvaWQgaW50ZWxfcnVudGltZV9wbV9jbGVhbnVwKHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0pCit2b2lkIGludGVsX3J1bnRpbWVfcG1fZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSkKIHsKIAlpbnQgY291bnQgPSBhdG9taWNfcmVhZCgmcnBtLT53YWtlcmVmX2NvdW50KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oCmluZGV4IDJlZThmOTUuLmFlNjRmZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmgKQEAgLTE3Myw3ICsxNzMsNyBAQCBlbmFibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtKQogdm9pZCBpbnRlbF9ydW50aW1lX3BtX2luaXRfZWFybHkoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSk7CiB2b2lkIGludGVsX3J1bnRpbWVfcG1fZW5hYmxlKHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0pOwogdm9pZCBpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGUoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSk7Ci12b2lkIGludGVsX3J1bnRpbWVfcG1fY2xlYW51cChzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtKTsKK3ZvaWQgaW50ZWxfcnVudGltZV9wbV9kcml2ZXJfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtKTsKIAogaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0KHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0pOwogaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5kLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zaWRlYmFuZC5jCmluZGV4IGExMTU2MjUuLmUwNmIzNWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2lkZWJhbmQuYwpAQCAtMjQsMTAgKzI0LDggQEAKIAogI2luY2x1ZGUgPGFzbS9pb3NmX21iaS5oPgogCi0jaW5jbHVkZSAiaW50ZWxfc2lkZWJhbmQuaCIKLQogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfc2lkZWJhbmQuaCIKIAogLyoKICAqIElPU0Ygc2lkZWJhbmQsIHNlZSBWTFYyX1NpZGViYW5kTXNnX0hBUy5kb2N4IGFuZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlNDU2NTEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuYworKysgL2Rldi9udWxsCkBAIC0xLDU2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCi0gKiBJTiBUSEUgU09GVFdBUkUuCi0gKgotICovCi0KLSNpbmNsdWRlICJndC9pbnRlbF9yZXNldC5oIgotI2luY2x1ZGUgImludGVsX3VjLmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3VjX2Fkcy5oIgotI2luY2x1ZGUgImludGVsX2d1Y19zdWJtaXNzaW9uLmgiCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLQotc3RhdGljIHZvaWQgZ3VjX2ZyZWVfbG9hZF9lcnJfbG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci0KLS8qIFJlc2V0IEd1QyBwcm92aWRpbmcgdXMgd2l0aCBmcmVzaCBzdGF0ZSBmb3IgYm90aCBHdUMgYW5kIEh1Qy4KLSAqLwotc3RhdGljIGludCBfX2ludGVsX3VjX3Jlc2V0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlpbnQgcmV0OwotCXUzMiBndWNfc3RhdHVzOwotCi0JcmV0ID0gaW50ZWxfcmVzZXRfZ3VjKGRldl9wcml2KTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlc2V0IEd1QywgcmV0ID0gJWRcbiIsIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JZ3VjX3N0YXR1cyA9IEk5MTVfUkVBRChHVUNfU1RBVFVTKTsKLQlXQVJOKCEoZ3VjX3N0YXR1cyAmIEdTX01JQV9JTl9SRVNFVCksCi0JICAgICAiR3VDIHN0YXR1czogMHgleCwgTUlBIGNvcmUgZXhwZWN0ZWQgdG8gYmUgaW4gcmVzZXRcbiIsCi0JICAgICBndWNfc3RhdHVzKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgX19nZXRfcGxhdGZvcm1fZW5hYmxlX2d1YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZpOTE1LT5ndWMuZnc7Ci0Jc3RydWN0IGludGVsX3VjX2Z3ICpodWNfZncgPSAmaTkxNS0+aHVjLmZ3OwotCWludCBlbmFibGVfZ3VjID0gMDsKLQotCS8qIERlZmF1bHQgaXMgdG8gdXNlIEh1QyBpZiB3ZSBrbm93IEd1QyBhbmQgSHVDIGZpcm13YXJlcyAqLwotCWlmIChpbnRlbF91Y19md19pc19zZWxlY3RlZChndWNfZncpICYmIGludGVsX3VjX2Z3X2lzX3NlbGVjdGVkKGh1Y19mdykpCi0JCWVuYWJsZV9ndWMgfD0gRU5BQkxFX0dVQ19MT0FEX0hVQzsKLQotCS8qIEFueSBwbGF0Zm9ybSBzcGVjaWZpYyBmaW5lLXR1bmluZyBjYW4gYmUgZG9uZSBoZXJlICovCi0KLQlyZXR1cm4gZW5hYmxlX2d1YzsKLX0KLQotc3RhdGljIGludCBfX2dldF9kZWZhdWx0X2d1Y19sb2dfbGV2ZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0JaW50IGd1Y19sb2dfbGV2ZWw7Ci0KLQlpZiAoIUhBU19HVUMoaTkxNSkgfHwgIWludGVsX3VjX2lzX3VzaW5nX2d1YyhpOTE1KSkKLQkJZ3VjX2xvZ19sZXZlbCA9IEdVQ19MT0dfTEVWRUxfRElTQUJMRUQ7Ci0JZWxzZSBpZiAoSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUcpIHx8Ci0JCSBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVR19HRU0pKQotCQlndWNfbG9nX2xldmVsID0gR1VDX0xPR19MRVZFTF9NQVg7Ci0JZWxzZQotCQlndWNfbG9nX2xldmVsID0gR1VDX0xPR19MRVZFTF9OT05fVkVSQk9TRTsKLQotCS8qIEFueSBwbGF0Zm9ybSBzcGVjaWZpYyBmaW5lLXR1bmluZyBjYW4gYmUgZG9uZSBoZXJlICovCi0KLQlyZXR1cm4gZ3VjX2xvZ19sZXZlbDsKLX0KLQotLyoqCi0gKiBzYW5pdGl6ZV9vcHRpb25zX2Vhcmx5IC0gc2FuaXRpemUgdUMgcmVsYXRlZCBtb2RwYXJhbSBvcHRpb25zCi0gKiBAaTkxNTogZGV2aWNlIHByaXZhdGUKLSAqCi0gKiBJbiBjYXNlIG9mICJlbmFibGVfZ3VjIiBvcHRpb24gdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbW9kaWZ5Ci0gKiBpdCBvbmx5IGlmIGl0IHdhcyBpbml0aWFsbHkgc2V0IHRvICJhdXRvKC0xKSIuIERlZmF1bHQgdmFsdWUgZm9yIHRoaXMKLSAqIG1vZHBhcmFtIHZhcmllcyBiZXR3ZWVuIHBsYXRmb3JtcyBhbmQgaXQgaXMgaGFyZGNvZGVkIGluIGRyaXZlciBjb2RlLgotICogQW55IG90aGVyIG1vZHBhcmFtIHZhbHVlIGlzIG9ubHkgbW9uaXRvcmVkIGFnYWluc3QgYXZhaWxhYmlsaXR5IG9mIHRoZQotICogcmVsYXRlZCBoYXJkd2FyZSBvciBmaXJtd2FyZSBkZWZpbml0aW9ucy4KLSAqCi0gKiBJbiBjYXNlIG9mICJndWNfbG9nX2xldmVsIiBvcHRpb24gdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbW9kaWZ5Ci0gKiBpdCBvbmx5IGlmIGl0IHdhcyBpbml0aWFsbHkgc2V0IHRvICJhdXRvKC0xKSIgb3IgaWYgaW5pdGlhbCB2YWx1ZSB3YXMKLSAqICJlbmFibGUoMS4uNCkiIG9uIHBsYXRmb3JtcyB3aXRob3V0IHRoZSBHdUMuIERlZmF1bHQgdmFsdWUgZm9yIHRoaXMKLSAqIG1vZHBhcmFtIHZhcmllcyBiZXR3ZWVuIHBsYXRmb3JtcyBhbmQgaXMgdXN1YWxseSBzZXQgdG8gImRpc2FibGUoMCkiCi0gKiB1bmxlc3MgR3VDIGlzIGVuYWJsZWQgb24gZ2l2ZW4gcGxhdGZvcm0gYW5kIHRoZSBkcml2ZXIgaXMgY29tcGlsZWQgd2l0aAotICogZGVidWcgY29uZmlnIHdoZW4gdGhpcyBtb2RwYXJhbSB3aWxsIGRlZmF1bHQgdG8gImVuYWJsZSgxLi40KSIuCi0gKi8KLXN0YXRpYyB2b2lkIHNhbml0aXplX29wdGlvbnNfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmaTkxNS0+Z3VjLmZ3OwotCXN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3ID0gJmk5MTUtPmh1Yy5mdzsKLQotCS8qIEEgbmVnYXRpdmUgdmFsdWUgbWVhbnMgInVzZSBwbGF0Zm9ybSBkZWZhdWx0IiAqLwotCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjIDwgMCkKLQkJaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyA9IF9fZ2V0X3BsYXRmb3JtX2VuYWJsZV9ndWMoaTkxNSk7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJlbmFibGVfZ3VjPSVkIChzdWJtaXNzaW9uOiVzIGh1YzolcylcbiIsCi0JCQkgaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YywKLQkJCSB5ZXNubyhpbnRlbF91Y19pc191c2luZ19ndWNfc3VibWlzc2lvbihpOTE1KSksCi0JCQkgeWVzbm8oaW50ZWxfdWNfaXNfdXNpbmdfaHVjKGk5MTUpKSk7Ci0KLQkvKiBWZXJpZnkgR3VDIGZpcm13YXJlIGF2YWlsYWJpbGl0eSAqLwotCWlmIChpbnRlbF91Y19pc191c2luZ19ndWMoaTkxNSkgJiYgIWludGVsX3VjX2Z3X2lzX3NlbGVjdGVkKGd1Y19mdykpIHsKLQkJRFJNX1dBUk4oIkluY29tcGF0aWJsZSBvcHRpb24gZGV0ZWN0ZWQ6ICVzPSVkLCAlcyFcbiIsCi0JCQkgImVuYWJsZV9ndWMiLCBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjLAotCQkJICFIQVNfR1VDKGk5MTUpID8gIm5vIEd1QyBoYXJkd2FyZSIgOgotCQkJCQkgICJubyBHdUMgZmlybXdhcmUiKTsKLQl9Ci0KLQkvKiBWZXJpZnkgSHVDIGZpcm13YXJlIGF2YWlsYWJpbGl0eSAqLwotCWlmIChpbnRlbF91Y19pc191c2luZ19odWMoaTkxNSkgJiYgIWludGVsX3VjX2Z3X2lzX3NlbGVjdGVkKGh1Y19mdykpIHsKLQkJRFJNX1dBUk4oIkluY29tcGF0aWJsZSBvcHRpb24gZGV0ZWN0ZWQ6ICVzPSVkLCAlcyFcbiIsCi0JCQkgImVuYWJsZV9ndWMiLCBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjLAotCQkJICFIQVNfSFVDKGk5MTUpID8gIm5vIEh1QyBoYXJkd2FyZSIgOgotCQkJCQkgICJubyBIdUMgZmlybXdhcmUiKTsKLQl9Ci0KLQkvKiBYWFg6IEd1QyBzdWJtaXNzaW9uIGlzIHVuYXZhaWxhYmxlIGZvciBub3cgKi8KLQlpZiAoaW50ZWxfdWNfaXNfdXNpbmdfZ3VjX3N1Ym1pc3Npb24oaTkxNSkpIHsKLQkJRFJNX0lORk8oIkluY29tcGF0aWJsZSBvcHRpb24gZGV0ZWN0ZWQ6ICVzPSVkLCAlcyFcbiIsCi0JCQkgImVuYWJsZV9ndWMiLCBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjLAotCQkJICJHdUMgc3VibWlzc2lvbiBub3Qgc3VwcG9ydGVkIik7Ci0JCURSTV9JTkZPKCJTd2l0Y2hpbmcgdG8gbm9uLUd1QyBzdWJtaXNzaW9uIG1vZGUhXG4iKTsKLQkJaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyAmPSB+RU5BQkxFX0dVQ19TVUJNSVNTSU9OOwotCX0KLQotCS8qIEEgbmVnYXRpdmUgdmFsdWUgbWVhbnMgInVzZSBwbGF0Zm9ybS9jb25maWcgZGVmYXVsdCIgKi8KLQlpZiAoaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA8IDApCi0JCWk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPQotCQkJX19nZXRfZGVmYXVsdF9ndWNfbG9nX2xldmVsKGk5MTUpOwotCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPiAwICYmICFpbnRlbF91Y19pc191c2luZ19ndWMoaTkxNSkpIHsKLQkJRFJNX1dBUk4oIkluY29tcGF0aWJsZSBvcHRpb24gZGV0ZWN0ZWQ6ICVzPSVkLCAlcyFcbiIsCi0JCQkgImd1Y19sb2dfbGV2ZWwiLCBpOTE1X21vZHBhcmFtcy5ndWNfbG9nX2xldmVsLAotCQkJICFIQVNfR1VDKGk5MTUpID8gIm5vIEd1QyBoYXJkd2FyZSIgOgotCQkJCQkgICJHdUMgbm90IGVuYWJsZWQiKTsKLQkJaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA9IDA7Ci0JfQotCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPiBHVUNfTE9HX0xFVkVMX01BWCkgewotCQlEUk1fV0FSTigiSW5jb21wYXRpYmxlIG9wdGlvbiBkZXRlY3RlZDogJXM9JWQsICVzIVxuIiwKLQkJCSAiZ3VjX2xvZ19sZXZlbCIsIGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwsCi0JCQkgInZlcmJvc2l0eSB0b28gaGlnaCIpOwotCQlpOTE1X21vZHBhcmFtcy5ndWNfbG9nX2xldmVsID0gR1VDX0xPR19MRVZFTF9NQVg7Ci0JfQotCi0JRFJNX0RFQlVHX0RSSVZFUigiZ3VjX2xvZ19sZXZlbD0lZCAoZW5hYmxlZDolcywgdmVyYm9zZTolcywgdmVyYm9zaXR5OiVkKVxuIiwKLQkJCSBpOTE1X21vZHBhcmFtcy5ndWNfbG9nX2xldmVsLAotCQkJIHllc25vKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwpLAotCQkJIHllc25vKEdVQ19MT0dfTEVWRUxfSVNfVkVSQk9TRShpOTE1X21vZHBhcmFtcy5ndWNfbG9nX2xldmVsKSksCi0JCQkgR1VDX0xPR19MRVZFTF9UT19WRVJCT1NJVFkoaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCkpOwotCi0JLyogTWFrZSBzdXJlIHRoYXQgc2FuaXRpemF0aW9uIHdhcyBkb25lICovCi0JR0VNX0JVR19PTihpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjIDwgMCk7Ci0JR0VNX0JVR19PTihpOTE1X21vZHBhcmFtcy5ndWNfbG9nX2xldmVsIDwgMCk7Ci19Ci0KLXZvaWQgaW50ZWxfdWNfaW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwotCXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZpOTE1LT5odWM7Ci0KLQlpbnRlbF9ndWNfaW5pdF9lYXJseShndWMpOwotCWludGVsX2h1Y19pbml0X2Vhcmx5KGh1Yyk7Ci0KLQlzYW5pdGl6ZV9vcHRpb25zX2Vhcmx5KGk5MTUpOwotfQotCi12b2lkIGludGVsX3VjX2NsZWFudXBfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd1YzsKLQotCWd1Y19mcmVlX2xvYWRfZXJyX2xvZyhndWMpOwotfQotCi0vKioKLSAqIGludGVsX3VjX2luaXRfbW1pbyAtIHNldHVwIHVDIE1NSU8gYWNjZXNzCi0gKiBAaTkxNTogZGV2aWNlIHByaXZhdGUKLSAqCi0gKiBTZXR1cCBtaW5pbWFsIHN0YXRlIG5lY2Vzc2FyeSBmb3IgTU1JTyBhY2Nlc3NlcyBsYXRlciBpbiB0aGUKLSAqIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLgotICovCi12b2lkIGludGVsX3VjX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlpbnRlbF9ndWNfaW5pdF9zZW5kX3JlZ3MoJmk5MTUtPmd1Yyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19jYXB0dXJlX2xvYWRfZXJyX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0JaWYgKCFndWMtPmxvZy52bWEgfHwgIWludGVsX2d1Y19sb2dfZ2V0X2xldmVsKCZndWMtPmxvZykpCi0JCXJldHVybjsKLQotCWlmICghZ3VjLT5sb2FkX2Vycl9sb2cpCi0JCWd1Yy0+bG9hZF9lcnJfbG9nID0gaTkxNV9nZW1fb2JqZWN0X2dldChndWMtPmxvZy52bWEtPm9iaik7Ci0KLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19mcmVlX2xvYWRfZXJyX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCi17Ci0JaWYgKGd1Yy0+bG9hZF9lcnJfbG9nKQotCQlpOTE1X2dlbV9vYmplY3RfcHV0KGd1Yy0+bG9hZF9lcnJfbG9nKTsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX3Jlc2V0X2ludGVycnVwdHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCWd1Yy0+aW50ZXJydXB0cy5yZXNldChndWNfdG9faTkxNShndWMpKTsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX2VuYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlndWMtPmludGVycnVwdHMuZW5hYmxlKGd1Y190b19pOTE1KGd1YykpOwotfQotCi1zdGF0aWMgdm9pZCBndWNfZGlzYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlndWMtPmludGVycnVwdHMuZGlzYWJsZShndWNfdG9faTkxNShndWMpKTsKLX0KLQotc3RhdGljIGludCBndWNfZW5hYmxlX2NvbW11bmljYXRpb24oc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCWd1Y19lbmFibGVfaW50ZXJydXB0cyhndWMpOwotCi0JcmV0dXJuIGludGVsX2d1Y19jdF9lbmFibGUoJmd1Yy0+Y3QpOwotfQotCi1zdGF0aWMgdm9pZCBndWNfc3RvcF9jb21tdW5pY2F0aW9uKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlpbnRlbF9ndWNfY3Rfc3RvcCgmZ3VjLT5jdCk7Ci0KLQlndWMtPnNlbmQgPSBpbnRlbF9ndWNfc2VuZF9ub3A7Ci0JZ3VjLT5oYW5kbGVyID0gaW50ZWxfZ3VjX3RvX2hvc3RfZXZlbnRfaGFuZGxlcl9ub3A7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19kaXNhYmxlX2NvbW11bmljYXRpb24oc3RydWN0IGludGVsX2d1YyAqZ3VjKQotewotCWludGVsX2d1Y19jdF9kaXNhYmxlKCZndWMtPmN0KTsKLQotCWd1Y19kaXNhYmxlX2ludGVycnVwdHMoZ3VjKTsKLQotCWd1Yy0+c2VuZCA9IGludGVsX2d1Y19zZW5kX25vcDsKLQlndWMtPmhhbmRsZXIgPSBpbnRlbF9ndWNfdG9faG9zdF9ldmVudF9oYW5kbGVyX25vcDsKLX0KLQotaW50IGludGVsX3VjX2luaXRfbWlzYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwotCXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZpOTE1LT5odWM7Ci0JaW50IHJldDsKLQotCWlmICghVVNFU19HVUMoaTkxNSkpCi0JCXJldHVybiAwOwotCi0JcmV0ID0gaW50ZWxfZ3VjX2luaXRfbWlzYyhndWMpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlpZiAoVVNFU19IVUMoaTkxNSkpIHsKLQkJcmV0ID0gaW50ZWxfaHVjX2luaXRfbWlzYyhodWMpOwotCQlpZiAocmV0KQotCQkJZ290byBlcnJfZ3VjOwotCX0KLQotCXJldHVybiAwOwotCi1lcnJfZ3VjOgotCWludGVsX2d1Y19maW5pX21pc2MoZ3VjKTsKLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIGludGVsX3VjX2ZpbmlfbWlzYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwotCXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZpOTE1LT5odWM7Ci0KLQlpZiAoIVVTRVNfR1VDKGk5MTUpKQotCQlyZXR1cm47Ci0KLQlpZiAoVVNFU19IVUMoaTkxNSkpCi0JCWludGVsX2h1Y19maW5pX21pc2MoaHVjKTsKLQotCWludGVsX2d1Y19maW5pX21pc2MoZ3VjKTsKLX0KLQotaW50IGludGVsX3VjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd1YzsKLQlzdHJ1Y3QgaW50ZWxfaHVjICpodWMgPSAmaTkxNS0+aHVjOwotCWludCByZXQ7Ci0KLQlpZiAoIVVTRVNfR1VDKGk5MTUpKQotCQlyZXR1cm4gMDsKLQotCWlmICghSEFTX0dVQyhpOTE1KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQkvKiBYWFg6IEd1QyBzdWJtaXNzaW9uIGlzIHVuYXZhaWxhYmxlIGZvciBub3cgKi8KLQlHRU1fQlVHX09OKFVTRVNfR1VDX1NVQk1JU1NJT04oaTkxNSkpOwotCi0JcmV0ID0gaW50ZWxfZ3VjX2luaXQoZ3VjKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JaWYgKFVTRVNfSFVDKGk5MTUpKSB7Ci0JCXJldCA9IGludGVsX2h1Y19pbml0KGh1Yyk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycl9ndWM7Ci0JfQotCi0JaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oaTkxNSkpIHsKLQkJLyoKLQkJICogVGhpcyBpcyBzdHVmZiB3ZSBuZWVkIHRvIGhhdmUgYXZhaWxhYmxlIGF0IGZ3IGxvYWQgdGltZQotCQkgKiBpZiB3ZSBhcmUgcGxhbm5pbmcgdG8gZW5hYmxlIHN1Ym1pc3Npb24gbGF0ZXIKLQkJICovCi0JCXJldCA9IGludGVsX2d1Y19zdWJtaXNzaW9uX2luaXQoZ3VjKTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gZXJyX2h1YzsKLQl9Ci0KLQlyZXR1cm4gMDsKLQotZXJyX2h1YzoKLQlpZiAoVVNFU19IVUMoaTkxNSkpCi0JCWludGVsX2h1Y19maW5pKGh1Yyk7Ci1lcnJfZ3VjOgotCWludGVsX2d1Y19maW5pKGd1Yyk7Ci0JcmV0dXJuIHJldDsKLX0KLQotdm9pZCBpbnRlbF91Y19maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndWM7Ci0KLQlpZiAoIVVTRVNfR1VDKGk5MTUpKQotCQlyZXR1cm47Ci0KLQlHRU1fQlVHX09OKCFIQVNfR1VDKGk5MTUpKTsKLQotCWlmIChVU0VTX0dVQ19TVUJNSVNTSU9OKGk5MTUpKQotCQlpbnRlbF9ndWNfc3VibWlzc2lvbl9maW5pKGd1Yyk7Ci0KLQlpZiAoVVNFU19IVUMoaTkxNSkpCi0JCWludGVsX2h1Y19maW5pKCZpOTE1LT5odWMpOwotCi0JaW50ZWxfZ3VjX2ZpbmkoZ3VjKTsKLX0KLQotc3RhdGljIHZvaWQgX191Y19zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwotCXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZpOTE1LT5odWM7Ci0KLQlHRU1fQlVHX09OKCFIQVNfR1VDKGk5MTUpKTsKLQotCWludGVsX2h1Y19zYW5pdGl6ZShodWMpOwotCWludGVsX2d1Y19zYW5pdGl6ZShndWMpOwotCi0JX19pbnRlbF91Y19yZXNldF9odyhpOTE1KTsKLX0KLQotdm9pZCBpbnRlbF91Y19zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlpZiAoIVVTRVNfR1VDKGk5MTUpKQotCQlyZXR1cm47Ci0KLQlfX3VjX3Nhbml0aXplKGk5MTUpOwotfQotCi1pbnQgaW50ZWxfdWNfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwotCXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZpOTE1LT5odWM7Ci0JaW50IHJldCwgYXR0ZW1wdHM7Ci0KLQlpZiAoIVVTRVNfR1VDKGk5MTUpKQotCQlyZXR1cm4gMDsKLQotCUdFTV9CVUdfT04oIUhBU19HVUMoaTkxNSkpOwotCi0JZ3VjX3Jlc2V0X2ludGVycnVwdHMoZ3VjKTsKLQotCS8qIFdhRW5hYmxldUtlcm5lbEhlYWRlclZhbGlkRml4OnNrbCAqLwotCS8qIFdhRW5hYmxlR3VDQm9vdEhhc2hDaGVja05vdFNldDpza2wsYnh0LGtibCAqLwotCWlmIChJU19HRU4oaTkxNSwgOSkpCi0JCWF0dGVtcHRzID0gMzsKLQllbHNlCi0JCWF0dGVtcHRzID0gMTsKLQotCXdoaWxlIChhdHRlbXB0cy0tKSB7Ci0JCS8qCi0JCSAqIEFsd2F5cyByZXNldCB0aGUgR3VDIGp1c3QgYmVmb3JlIChyZSlsb2FkaW5nLCBzbwotCQkgKiB0aGF0IHRoZSBzdGF0ZSBhbmQgdGltaW5nIGFyZSBmYWlybHkgcHJlZGljdGFibGUKLQkJICovCi0JCXJldCA9IF9faW50ZWxfdWNfcmVzZXRfaHcoaTkxNSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycl9vdXQ7Ci0KLQkJaWYgKFVTRVNfSFVDKGk5MTUpKSB7Ci0JCQlyZXQgPSBpbnRlbF9odWNfZndfdXBsb2FkKGh1Yyk7Ci0JCQlpZiAocmV0KQotCQkJCWdvdG8gZXJyX291dDsKLQkJfQotCi0JCWludGVsX2d1Y19hZHNfcmVzZXQoZ3VjKTsKLQkJaW50ZWxfZ3VjX2luaXRfcGFyYW1zKGd1Yyk7Ci0JCXJldCA9IGludGVsX2d1Y19md191cGxvYWQoZ3VjKTsKLQkJaWYgKHJldCA9PSAwKQotCQkJYnJlYWs7Ci0KLQkJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IGxvYWQgZmFpbGVkOiAlZDsgd2lsbCByZXNldCBhbmQgIgotCQkJCSAicmV0cnkgJWQgbW9yZSB0aW1lKHMpXG4iLCByZXQsIGF0dGVtcHRzKTsKLQl9Ci0KLQkvKiBEaWQgd2Ugc3VjY2VkZWQgb3IgcnVuIG91dCBvZiByZXRyaWVzPyAqLwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2xvZ19jYXB0dXJlOwotCi0JcmV0ID0gZ3VjX2VuYWJsZV9jb21tdW5pY2F0aW9uKGd1Yyk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfbG9nX2NhcHR1cmU7Ci0KLQlpZiAoVVNFU19IVUMoaTkxNSkpIHsKLQkJcmV0ID0gaW50ZWxfaHVjX2F1dGgoaHVjKTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gZXJyX2NvbW11bmljYXRpb247Ci0JfQotCi0JcmV0ID0gaW50ZWxfZ3VjX3NhbXBsZV9mb3JjZXdha2UoZ3VjKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9jb21tdW5pY2F0aW9uOwotCi0JaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oaTkxNSkpIHsKLQkJcmV0ID0gaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKGd1Yyk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycl9jb21tdW5pY2F0aW9uOwotCX0KLQotCWRldl9pbmZvKGk5MTUtPmRybS5kZXYsICJHdUMgZmlybXdhcmUgdmVyc2lvbiAldS4ldVxuIiwKLQkJIGd1Yy0+ZncubWFqb3JfdmVyX2ZvdW5kLCBndWMtPmZ3Lm1pbm9yX3Zlcl9mb3VuZCk7Ci0JZGV2X2luZm8oaTkxNS0+ZHJtLmRldiwgIkd1QyBzdWJtaXNzaW9uICVzXG4iLAotCQkgZW5hYmxlZGRpc2FibGVkKFVTRVNfR1VDX1NVQk1JU1NJT04oaTkxNSkpKTsKLQlkZXZfaW5mbyhpOTE1LT5kcm0uZGV2LCAiSHVDICVzXG4iLAotCQkgZW5hYmxlZGRpc2FibGVkKFVTRVNfSFVDKGk5MTUpKSk7Ci0KLQlyZXR1cm4gMDsKLQotCS8qCi0JICogV2UndmUgZmFpbGVkIHRvIGxvYWQgdGhlIGZpcm13YXJlIDooCi0JICovCi1lcnJfY29tbXVuaWNhdGlvbjoKLQlndWNfZGlzYWJsZV9jb21tdW5pY2F0aW9uKGd1Yyk7Ci1lcnJfbG9nX2NhcHR1cmU6Ci0JZ3VjX2NhcHR1cmVfbG9hZF9lcnJfbG9nKGd1Yyk7Ci1lcnJfb3V0OgotCV9fdWNfc2FuaXRpemUoaTkxNSk7Ci0KLQkvKgotCSAqIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBmYWxsYmFjayBhcyBlaXRoZXIgdXNlciBleHBsaWNpdGx5IGFza2VkIGZvcgotCSAqIHRoZSBHdUMgb3IgZHJpdmVyIGRlZmF1bHQgb3B0aW9uIHdhcyB0byBydW4gd2l0aCB0aGUgR3VDIGVuYWJsZWQuCi0JICovCi0JaWYgKEdFTV9XQVJOX09OKHJldCA9PSAtRUlPKSkKLQkJcmV0ID0gLUVJTlZBTDsKLQotCWRldl9lcnIoaTkxNS0+ZHJtLmRldiwgIkd1QyBpbml0aWFsaXphdGlvbiBmYWlsZWQgJWRcbiIsIHJldCk7Ci0JcmV0dXJuIHJldDsKLX0KLQotdm9pZCBpbnRlbF91Y19maW5pX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndWM7Ci0KLQlpZiAoIWludGVsX2d1Y19pc19sb2FkZWQoZ3VjKSkKLQkJcmV0dXJuOwotCi0JR0VNX0JVR19PTighSEFTX0dVQyhpOTE1KSk7Ci0KLQlpZiAoVVNFU19HVUNfU1VCTUlTU0lPTihpOTE1KSkKLQkJaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShndWMpOwotCi0JZ3VjX2Rpc2FibGVfY29tbXVuaWNhdGlvbihndWMpOwotCV9fdWNfc2FuaXRpemUoaTkxNSk7Ci19Ci0KLS8qKgotICogaW50ZWxfdWNfcmVzZXRfcHJlcGFyZSAtIFByZXBhcmUgZm9yIHJlc2V0Ci0gKiBAaTkxNTogZGV2aWNlIHByaXZhdGUKLSAqCi0gKiBQcmVwYXJpbmcgZm9yIGZ1bGwgZ3B1IHJlc2V0LgotICovCi12b2lkIGludGVsX3VjX3Jlc2V0X3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd1YzsKLQotCWlmICghaW50ZWxfZ3VjX2lzX2xvYWRlZChndWMpKQotCQlyZXR1cm47Ci0KLQlndWNfc3RvcF9jb21tdW5pY2F0aW9uKGd1Yyk7Ci0JX191Y19zYW5pdGl6ZShpOTE1KTsKLX0KLQotdm9pZCBpbnRlbF91Y19ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd1YzsKLQlpbnQgZXJyOwotCi0JaWYgKCFpbnRlbF9ndWNfaXNfbG9hZGVkKGd1YykpCi0JCXJldHVybjsKLQotCWVyciA9IGludGVsX2d1Y19zdXNwZW5kKGd1Yyk7Ci0JaWYgKGVycikKLQkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIHN1c3BlbmQgR3VDLCBlcnI9JWQiLCBlcnIpOwotCi0JZ3VjX2Rpc2FibGVfY29tbXVuaWNhdGlvbihndWMpOwotfQotCi12b2lkIGludGVsX3VjX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd1YzsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQotCWlmICghaW50ZWxfZ3VjX2lzX2xvYWRlZChndWMpKQotCQlyZXR1cm47Ci0KLQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCi0JCWludGVsX3VjX3J1bnRpbWVfc3VzcGVuZChpOTE1KTsKLX0KLQotaW50IGludGVsX3VjX3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwotCWludCBlcnI7Ci0KLQlpZiAoIWludGVsX2d1Y19pc19sb2FkZWQoZ3VjKSkKLQkJcmV0dXJuIDA7Ci0KLQlndWNfZW5hYmxlX2NvbW11bmljYXRpb24oZ3VjKTsKLQotCWVyciA9IGludGVsX2d1Y19yZXN1bWUoZ3VjKTsKLQlpZiAoZXJyKSB7Ci0JCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byByZXN1bWUgR3VDLCBlcnI9JWQiLCBlcnIpOwotCQlyZXR1cm4gZXJyOwotCX0KLQotCXJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYTA2YzguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLSNpZm5kZWYgX0lOVEVMX1VDX0hfCi0jZGVmaW5lIF9JTlRFTF9VQ19IXwotCi0jaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCi0jaW5jbHVkZSAiaW50ZWxfaHVjLmgiCi0jaW5jbHVkZSAiaTkxNV9wYXJhbXMuaCIKLQotdm9pZCBpbnRlbF91Y19pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX3VjX2NsZWFudXBfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfdWNfaW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1pbnQgaW50ZWxfdWNfaW5pdF9taXNjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX3VjX2ZpbmlfbWlzYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpbnRlbF91Y19zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotaW50IGludGVsX3VjX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfdWNfZmluaV9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotaW50IGludGVsX3VjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfdWNfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpbnRlbF91Y19yZXNldF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZvaWQgaW50ZWxfdWNfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci12b2lkIGludGVsX3VjX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci1pbnQgaW50ZWxfdWNfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF91Y19pc191c2luZ19ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0JR0VNX0JVR19PTihpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjIDwgMCk7Ci0JcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgPiAwOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfaXNfdXNpbmdfZ3VjX3N1Ym1pc3Npb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0JR0VNX0JVR19PTihpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjIDwgMCk7Ci0JcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgJiBFTkFCTEVfR1VDX1NVQk1JU1NJT047Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF91Y19pc191c2luZ19odWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0JR0VNX0JVR19PTihpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjIDwgMCk7Ci0JcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgJiBFTkFCTEVfR1VDX0xPQURfSFVDOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Y19mdy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzQyZGRkLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3LmMKKysrIC9kZXYvbnVsbApAQCAtMSwzNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE2LTIwMTcgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCi0gKiBJTiBUSEUgU09GVFdBUkUuCi0gKgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPgotI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgotCi0jaW5jbHVkZSAiaW50ZWxfdWNfZncuaCIKLSNpbmNsdWRlICJpOTE1X2Rydi5oIgotCi0vKioKLSAqIGludGVsX3VjX2Z3X2ZldGNoIC0gZmV0Y2ggdUMgZmlybXdhcmUKLSAqCi0gKiBAZGV2X3ByaXY6IGRldmljZSBwcml2YXRlCi0gKiBAdWNfZnc6IHVDIGZpcm13YXJlCi0gKgotICogRmV0Y2ggdUMgZmlybXdhcmUgaW50byBHRU0gb2JqLgotICovCi12b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJICAgICAgIHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCi17Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3ID0gTlVMTDsKLQlzdHJ1Y3QgdWNfY3NzX2hlYWRlciAqY3NzOwotCXNpemVfdCBzaXplOwotCWludCBlcnI7Ci0KLQlpZiAoIXVjX2Z3LT5wYXRoKSB7Ci0JCWRldl9pbmZvKGRldl9wcml2LT5kcm0uZGV2LAotCQkJICIlczogTm8gZmlybXdhcmUgd2FzIGRlZmluZWQgZm9yICVzIVxuIiwKLQkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLAotCQkJIGludGVsX3BsYXRmb3JtX25hbWUoSU5URUxfSU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtKSk7Ci0JCXJldHVybjsKLQl9Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBmZXRjaCAlc1xuIiwKLQkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLCB1Y19mdy0+cGF0aCk7Ci0KLQl1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfUEVORElORzsKLQlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBmZXRjaCAlc1xuIiwKLQkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLAotCQkJIGludGVsX3VjX2Z3X3N0YXR1c19yZXByKHVjX2Z3LT5mZXRjaF9zdGF0dXMpKTsKLQotCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCB1Y19mdy0+cGF0aCwgJnBkZXYtPmRldik7Ci0JaWYgKGVycikgewotCQlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyByZXF1ZXN0X2Zpcm13YXJlIGVycj0lZFxuIiwKLQkJCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgZXJyKTsKLQkJZ290byBmYWlsOwotCX0KLQotCURSTV9ERUJVR19EUklWRVIoIiVzIGZ3IHNpemUgJXp1IHB0ciAlcFxuIiwKLQkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLCBmdy0+c2l6ZSwgZncpOwotCi0JLyogQ2hlY2sgdGhlIHNpemUgb2YgdGhlIGJsb2IgYmVmb3JlIGV4YW1pbmluZyBidWZmZXIgY29udGVudHMgKi8KLQlpZiAoZnctPnNpemUgPCBzaXplb2Yoc3RydWN0IHVjX2Nzc19oZWFkZXIpKSB7Ci0JCURSTV9XQVJOKCIlczogVW5leHBlY3RlZCBmaXJtd2FyZSBzaXplICglenUsIG1pbiAlenUpXG4iLAotCQkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksCi0JCQkgZnctPnNpemUsIHNpemVvZihzdHJ1Y3QgdWNfY3NzX2hlYWRlcikpOwotCQllcnIgPSAtRU5PREFUQTsKLQkJZ290byBmYWlsOwotCX0KLQotCWNzcyA9IChzdHJ1Y3QgdWNfY3NzX2hlYWRlciAqKWZ3LT5kYXRhOwotCi0JLyogRmlybXdhcmUgYml0cyBhbHdheXMgc3RhcnQgZnJvbSBoZWFkZXIgKi8KLQl1Y19mdy0+aGVhZGVyX29mZnNldCA9IDA7Ci0JdWNfZnctPmhlYWRlcl9zaXplID0gKGNzcy0+aGVhZGVyX3NpemVfZHcgLSBjc3MtPm1vZHVsdXNfc2l6ZV9kdyAtCi0JCQkgICAgICBjc3MtPmtleV9zaXplX2R3IC0gY3NzLT5leHBvbmVudF9zaXplX2R3KSAqCi0JCQkgICAgIHNpemVvZih1MzIpOwotCi0JaWYgKHVjX2Z3LT5oZWFkZXJfc2l6ZSAhPSBzaXplb2Yoc3RydWN0IHVjX2Nzc19oZWFkZXIpKSB7Ci0JCURSTV9XQVJOKCIlczogTWlzbWF0Y2hlZCBmaXJtd2FyZSBoZWFkZXIgZGVmaW5pdGlvblxuIiwKLQkJCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpKTsKLQkJZXJyID0gLUVOT0VYRUM7Ci0JCWdvdG8gZmFpbDsKLQl9Ci0KLQkvKiB0aGVuLCB1Q29kZSAqLwotCXVjX2Z3LT51Y29kZV9vZmZzZXQgPSB1Y19mdy0+aGVhZGVyX29mZnNldCArIHVjX2Z3LT5oZWFkZXJfc2l6ZTsKLQl1Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVfZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAqIHNpemVvZih1MzIpOwotCi0JLyogbm93IFJTQSAqLwotCWlmIChjc3MtPmtleV9zaXplX2R3ICE9IFVPU19SU0FfU0NSQVRDSF9DT1VOVCkgewotCQlEUk1fV0FSTigiJXM6IE1pc21hdGNoZWQgZmlybXdhcmUgUlNBIGtleSBzaXplICgldSlcbiIsCi0JCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgY3NzLT5rZXlfc2l6ZV9kdyk7Ci0JCWVyciA9IC1FTk9FWEVDOwotCQlnb3RvIGZhaWw7Ci0JfQotCXVjX2Z3LT5yc2Ffb2Zmc2V0ID0gdWNfZnctPnVjb2RlX29mZnNldCArIHVjX2Z3LT51Y29kZV9zaXplOwotCXVjX2Z3LT5yc2Ffc2l6ZSA9IGNzcy0+a2V5X3NpemVfZHcgKiBzaXplb2YodTMyKTsKLQotCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFkZXIsIHVDb2RlIGFuZCBSU0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLwotCXNpemUgPSB1Y19mdy0+aGVhZGVyX3NpemUgKyB1Y19mdy0+dWNvZGVfc2l6ZSArIHVjX2Z3LT5yc2Ffc2l6ZTsKLQlpZiAoZnctPnNpemUgPCBzaXplKSB7Ci0JCURSTV9XQVJOKCIlczogVHJ1bmNhdGVkIGZpcm13YXJlICglenUsIGV4cGVjdGVkICV6dSlcbiIsCi0JCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgZnctPnNpemUsIHNpemUpOwotCQllcnIgPSAtRU5PRVhFQzsKLQkJZ290byBmYWlsOwotCX0KLQotCS8qIEdldCB2ZXJzaW9uIG51bWJlcnMgZnJvbSB0aGUgQ1NTIGhlYWRlciAqLwotCXN3aXRjaCAodWNfZnctPnR5cGUpIHsKLQljYXNlIElOVEVMX1VDX0ZXX1RZUEVfR1VDOgotCQl1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kID0gRklFTERfR0VUKENTU19TV19WRVJTSU9OX0dVQ19NQUpPUiwKLQkJCQkJCSAgIGNzcy0+c3dfdmVyc2lvbik7Ci0JCXVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPSBGSUVMRF9HRVQoQ1NTX1NXX1ZFUlNJT05fR1VDX01JTk9SLAotCQkJCQkJICAgY3NzLT5zd192ZXJzaW9uKTsKLQkJYnJlYWs7Ci0KLQljYXNlIElOVEVMX1VDX0ZXX1RZUEVfSFVDOgotCQl1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kID0gRklFTERfR0VUKENTU19TV19WRVJTSU9OX0hVQ19NQUpPUiwKLQkJCQkJCSAgIGNzcy0+c3dfdmVyc2lvbik7Ci0JCXVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPSBGSUVMRF9HRVQoQ1NTX1NXX1ZFUlNJT05fSFVDX01JTk9SLAotCQkJCQkJICAgY3NzLT5zd192ZXJzaW9uKTsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UodWNfZnctPnR5cGUpOwotCQlicmVhazsKLQl9Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyB2ZXJzaW9uICV1LiV1ICh3YW50ZWQgJXUuJXUpXG4iLAotCQkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksCi0JCQkgdWNfZnctPm1ham9yX3Zlcl9mb3VuZCwgdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCwKLQkJCSB1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCwgdWNfZnctPm1pbm9yX3Zlcl93YW50ZWQpOwotCi0JaWYgKHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID09IDAgJiYgdWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPT0gMCkgewotCQlEUk1fTk9URSgiJXM6IFNraXBwaW5nIGZpcm13YXJlIHZlcnNpb24gY2hlY2tcbiIsCi0JCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSk7Ci0JfSBlbHNlIGlmICh1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kICE9IHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkIHx8Ci0JCSAgIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPCB1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCkgewotCQlEUk1fTk9URSgiJXM6IFdyb25nIGZpcm13YXJlIHZlcnNpb24gKCV1LiV1LCByZXF1aXJlZCAldS4ldSlcbiIsCi0JCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwKLQkJCSB1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCB1Y19mdy0+bWlub3JfdmVyX2ZvdW5kLAotCQkJIHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkLCB1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCk7Ci0JCWVyciA9IC1FTk9FWEVDOwotCQlnb3RvIGZhaWw7Ci0JfQotCi0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zaG1lbV9mcm9tX2RhdGEoZGV2X3ByaXYsCi0JCQkJCQkgICAgIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7Ci0JaWYgKElTX0VSUihvYmopKSB7Ci0JCWVyciA9IFBUUl9FUlIob2JqKTsKLQkJRFJNX0RFQlVHX0RSSVZFUigiJXMgZncgb2JqZWN0X2NyZWF0ZSBlcnI9JWRcbiIsCi0JCQkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksIGVycik7Ci0JCWdvdG8gZmFpbDsKLQl9Ci0KLQl1Y19mdy0+b2JqID0gb2JqOwotCXVjX2Z3LT5zaXplID0gZnctPnNpemU7Ci0JdWNfZnctPmZldGNoX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1M7Ci0JRFJNX0RFQlVHX0RSSVZFUigiJXMgZncgZmV0Y2ggJXNcbiIsCi0JCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwKLQkJCSBpbnRlbF91Y19md19zdGF0dXNfcmVwcih1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7Ci0KLQlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKLQlyZXR1cm47Ci0KLWZhaWw6Ci0JdWNfZnctPmZldGNoX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX0ZBSUw7Ci0JRFJNX0RFQlVHX0RSSVZFUigiJXMgZncgZmV0Y2ggJXNcbiIsCi0JCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwKLQkJCSBpbnRlbF91Y19md19zdGF0dXNfcmVwcih1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7Ci0KLQlEUk1fV0FSTigiJXM6IEZhaWxlZCB0byBmZXRjaCBmaXJtd2FyZSAlcyAoZXJyb3IgJWQpXG4iLAotCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgdWNfZnctPnBhdGgsIGVycik7Ci0JRFJNX0lORk8oIiVzOiBGaXJtd2FyZSBjYW4gYmUgZG93bmxvYWRlZCBmcm9tICVzXG4iLAotCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgSU5URUxfVUNfRklSTVdBUkVfVVJMKTsKLQotCXJlbGVhc2VfZmlybXdhcmUoZncpOwkJLyogT0sgZXZlbiBpZiBmdyBpcyBOVUxMICovCi19Ci0KLXN0YXRpYyB2b2lkIGludGVsX3VjX2Z3X2dndHRfYmluZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQotewotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB1Y19mdy0+b2JqOwotCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmdG9faTkxNShvYmotPmJhc2UuZGV2KS0+Z2d0dDsKLQlzdHJ1Y3QgaTkxNV92bWEgZHVtbXkgPSB7Ci0JCS5ub2RlLnN0YXJ0ID0gaW50ZWxfdWNfZndfZ2d0dF9vZmZzZXQodWNfZncpLAotCQkubm9kZS5zaXplID0gb2JqLT5iYXNlLnNpemUsCi0JCS5wYWdlcyA9IG9iai0+bW0ucGFnZXMsCi0JCS52bSA9ICZnZ3R0LT52bSwKLQl9OwotCi0JR0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0X2hhc19waW5uZWRfcGFnZXMob2JqKSk7Ci0JR0VNX0JVR19PTihkdW1teS5ub2RlLnNpemUgPiBnZ3R0LT51Y19mdy5zaXplKTsKLQotCS8qIHVjX2Z3LT5vYmogY2FjaGUgZG9tYWlucyB3ZXJlIG5vdCBjb250cm9sbGVkIGFjcm9zcyBzdXNwZW5kICovCi0JZHJtX2NsZmx1c2hfc2coZHVtbXkucGFnZXMpOwotCi0JZ2d0dC0+dm0uaW5zZXJ0X2VudHJpZXMoJmdndHQtPnZtLCAmZHVtbXksIEk5MTVfQ0FDSEVfTk9ORSwgMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGludGVsX3VjX2Z3X2dndHRfdW5iaW5kKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCi17Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHVjX2Z3LT5vYmo7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZ0b19pOTE1KG9iai0+YmFzZS5kZXYpLT5nZ3R0OwotCXU2NCBzdGFydCA9IGludGVsX3VjX2Z3X2dndHRfb2Zmc2V0KHVjX2Z3KTsKLQotCWdndHQtPnZtLmNsZWFyX3JhbmdlKCZnZ3R0LT52bSwgc3RhcnQsIG9iai0+YmFzZS5zaXplKTsKLX0KLQotLyoqCi0gKiBpbnRlbF91Y19md191cGxvYWQgLSBsb2FkIHVDIGZpcm13YXJlIHVzaW5nIGN1c3RvbSBsb2FkZXIKLSAqIEB1Y19mdzogdUMgZmlybXdhcmUKLSAqIEB4ZmVyOiBjdXN0b20gdUMgZmlybXdhcmUgbG9hZGVyIGZ1bmN0aW9uCi0gKgotICogTG9hZHMgdUMgZmlybXdhcmUgdXNpbmcgY3VzdG9tIGxvYWRlciBhbmQgdXBkYXRlcyBpbnRlcm5hbCBmbGFncy4KLSAqCi0gKiBSZXR1cm46IDAgb24gc3VjY2Vzcywgbm9uLXplcm8gb24gZmFpbHVyZS4KLSAqLwotaW50IGludGVsX3VjX2Z3X3VwbG9hZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LAotCQkgICAgICAgaW50ICgqeGZlcikoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykpCi17Ci0JaW50IGVycjsKLQotCURSTV9ERUJVR19EUklWRVIoIiVzIGZ3IGxvYWQgJXNcbiIsCi0JCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgdWNfZnctPnBhdGgpOwotCi0JaWYgKHVjX2Z3LT5mZXRjaF9zdGF0dXMgIT0gSU5URUxfVUNfRklSTVdBUkVfU1VDQ0VTUykKLQkJcmV0dXJuIC1FTk9FWEVDOwotCi0JdWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfUEVORElORzsKLQlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBsb2FkICVzXG4iLAotCQkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksCi0JCQkgaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIodWNfZnctPmxvYWRfc3RhdHVzKSk7Ci0KLQkvKiBDYWxsIGN1c3RvbSBsb2FkZXIgKi8KLQlpbnRlbF91Y19md19nZ3R0X2JpbmQodWNfZncpOwotCWVyciA9IHhmZXIodWNfZncpOwotCWludGVsX3VjX2Z3X2dndHRfdW5iaW5kKHVjX2Z3KTsKLQlpZiAoZXJyKQotCQlnb3RvIGZhaWw7Ci0KLQl1Y19mdy0+bG9hZF9zdGF0dXMgPSBJTlRFTF9VQ19GSVJNV0FSRV9TVUNDRVNTOwotCURSTV9ERUJVR19EUklWRVIoIiVzIGZ3IGxvYWQgJXNcbiIsCi0JCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwKLQkJCSBpbnRlbF91Y19md19zdGF0dXNfcmVwcih1Y19mdy0+bG9hZF9zdGF0dXMpKTsKLQotCURSTV9JTkZPKCIlczogTG9hZGVkIGZpcm13YXJlICVzICh2ZXJzaW9uICV1LiV1KVxuIiwKLQkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksCi0JCSB1Y19mdy0+cGF0aCwKLQkJIHVjX2Z3LT5tYWpvcl92ZXJfZm91bmQsIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQpOwotCi0JcmV0dXJuIDA7Ci0KLWZhaWw6Ci0JdWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfRkFJTDsKLQlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBsb2FkICVzXG4iLAotCQkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksCi0JCQkgaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIodWNfZnctPmxvYWRfc3RhdHVzKSk7Ci0KLQlEUk1fV0FSTigiJXM6IEZhaWxlZCB0byBsb2FkIGZpcm13YXJlICVzIChlcnJvciAlZClcbiIsCi0JCSBpbnRlbF91Y19md190eXBlX3JlcHIodWNfZnctPnR5cGUpLCB1Y19mdy0+cGF0aCwgZXJyKTsKLQotCXJldHVybiBlcnI7Ci19Ci0KLWludCBpbnRlbF91Y19md19pbml0KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCi17Ci0JaW50IGVycjsKLQotCWlmICh1Y19mdy0+ZmV0Y2hfc3RhdHVzICE9IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCi0JCXJldHVybiAtRU5PRVhFQzsKLQotCWVyciA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXModWNfZnctPm9iaik7Ci0JaWYgKGVycikKLQkJRFJNX0RFQlVHX0RSSVZFUigiJXMgZncgcGluLXBhZ2VzIGVycj0lZFxuIiwKLQkJCQkgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgZXJyKTsKLQotCXJldHVybiBlcnI7Ci19Ci0KLXZvaWQgaW50ZWxfdWNfZndfZmluaShzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQotewotCWlmICh1Y19mdy0+ZmV0Y2hfc3RhdHVzICE9IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCi0JCXJldHVybjsKLQotCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyh1Y19mdy0+b2JqKTsKLX0KLQotdTMyIGludGVsX3VjX2Z3X2dndHRfb2Zmc2V0KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KHVjX2Z3LT5vYmotPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmk5MTUtPmdndHQ7Ci0Jc3RydWN0IGRybV9tbV9ub2RlICpub2RlID0gJmdndHQtPnVjX2Z3OwotCi0JR0VNX0JVR19PTighbm9kZS0+YWxsb2NhdGVkKTsKLQlHRU1fQlVHX09OKHVwcGVyXzMyX2JpdHMobm9kZS0+c3RhcnQpKTsKLQlHRU1fQlVHX09OKHVwcGVyXzMyX2JpdHMobm9kZS0+c3RhcnQgKyBub2RlLT5zaXplIC0gMSkpOwotCi0JcmV0dXJuIGxvd2VyXzMyX2JpdHMobm9kZS0+c3RhcnQpOwotfQotCi0vKioKLSAqIGludGVsX3VjX2Z3X2NsZWFudXBfZmV0Y2ggLSBjbGVhbnVwIHVDIGZpcm13YXJlCi0gKgotICogQHVjX2Z3OiB1QyBmaXJtd2FyZQotICoKLSAqIENsZWFucyB1cCB1QyBmaXJtd2FyZSBieSByZWxlYXNpbmcgdGhlIGZpcm13YXJlIEdFTSBvYmouCi0gKi8KLXZvaWQgaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQotewotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0KLQlvYmogPSBmZXRjaF9hbmRfemVybygmdWNfZnctPm9iaik7Ci0JaWYgKG9iaikKLQkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwotCi0JdWNfZnctPmZldGNoX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX05PTkU7Ci19Ci0KLS8qKgotICogaW50ZWxfdWNfZndfZHVtcCAtIGR1bXAgaW5mb3JtYXRpb24gYWJvdXQgdUMgZmlybXdhcmUKLSAqIEB1Y19mdzogdUMgZmlybXdhcmUKLSAqIEBwOiB0aGUgJmRybV9wcmludGVyCi0gKgotICogUHJldHR5IHByaW50ZXIgZm9yIHVDIGZpcm13YXJlLgotICovCi12b2lkIGludGVsX3VjX2Z3X2R1bXAoY29uc3Qgc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywgc3RydWN0IGRybV9wcmludGVyICpwKQotewotCWRybV9wcmludGYocCwgIiVzIGZpcm13YXJlOiAlc1xuIiwKLQkJICAgaW50ZWxfdWNfZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwgdWNfZnctPnBhdGgpOwotCWRybV9wcmludGYocCwgIlx0c3RhdHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKLQkJICAgaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIodWNfZnctPmZldGNoX3N0YXR1cyksCi0JCSAgIGludGVsX3VjX2Z3X3N0YXR1c19yZXByKHVjX2Z3LT5sb2FkX3N0YXR1cykpOwotCWRybV9wcmludGYocCwgIlx0dmVyc2lvbjogd2FudGVkICV1LiV1LCBmb3VuZCAldS4ldVxuIiwKLQkJICAgdWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkLAotCQkgICB1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCB1Y19mdy0+bWlub3JfdmVyX2ZvdW5kKTsKLQlkcm1fcHJpbnRmKHAsICJcdGhlYWRlcjogb2Zmc2V0ICV1LCBzaXplICV1XG4iLAotCQkgICB1Y19mdy0+aGVhZGVyX29mZnNldCwgdWNfZnctPmhlYWRlcl9zaXplKTsKLQlkcm1fcHJpbnRmKHAsICJcdHVDb2RlOiBvZmZzZXQgJXUsIHNpemUgJXVcbiIsCi0JCSAgIHVjX2Z3LT51Y29kZV9vZmZzZXQsIHVjX2Z3LT51Y29kZV9zaXplKTsKLQlkcm1fcHJpbnRmKHAsICJcdFJTQTogb2Zmc2V0ICV1LCBzaXplICV1XG4iLAotCQkgICB1Y19mdy0+cnNhX29mZnNldCwgdWNfZnctPnJzYV9zaXplKTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Y19mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjk4Zjg2Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCDCqSAyMDE0LTIwMTcgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCi0gKiBJTiBUSEUgU09GVFdBUkUuCi0gKgotICovCi0KLSNpZm5kZWYgX0lOVEVMX1VDX0ZXX0hfCi0jZGVmaW5lIF9JTlRFTF9VQ19GV19IXwotCi1zdHJ1Y3QgZHJtX3ByaW50ZXI7Ci1zdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKLQotLyogSG9tZSBvZiBHdUMsIEh1QyBhbmQgRE1DIGZpcm13YXJlcyAqLwotI2RlZmluZSBJTlRFTF9VQ19GSVJNV0FSRV9VUkwgImh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2Zpcm13YXJlL2xpbnV4LWZpcm13YXJlLmdpdC90cmVlL2k5MTUiCi0KLWVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHsKLQlJTlRFTF9VQ19GSVJNV0FSRV9GQUlMID0gLTEsCi0JSU5URUxfVUNfRklSTVdBUkVfTk9ORSA9IDAsCi0JSU5URUxfVUNfRklSTVdBUkVfUEVORElORywKLQlJTlRFTF9VQ19GSVJNV0FSRV9TVUNDRVNTCi19OwotCi1lbnVtIGludGVsX3VjX2Z3X3R5cGUgewotCUlOVEVMX1VDX0ZXX1RZUEVfR1VDLAotCUlOVEVMX1VDX0ZXX1RZUEVfSFVDCi19OwotCi0vKgotICogVGhpcyBzdHJ1Y3R1cmUgZW5jYXBzdWxhdGVzIGFsbCB0aGUgZGF0YSBuZWVkZWQgZHVyaW5nIHRoZSBwcm9jZXNzCi0gKiBvZiBmZXRjaGluZywgY2FjaGluZywgYW5kIGxvYWRpbmcgdGhlIGZpcm13YXJlIGltYWdlIGludG8gdGhlIHVDLgotICovCi1zdHJ1Y3QgaW50ZWxfdWNfZncgewotCWNvbnN0IGNoYXIgKnBhdGg7Ci0Jc2l6ZV90IHNpemU7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQllbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBmZXRjaF9zdGF0dXM7Ci0JZW51bSBpbnRlbF91Y19md19zdGF0dXMgbG9hZF9zdGF0dXM7Ci0KLQkvKgotCSAqIFRoZSBmaXJtd2FyZSBidWlsZCBwcm9jZXNzIHdpbGwgZ2VuZXJhdGUgYSB2ZXJzaW9uIGhlYWRlciBmaWxlIHdpdGggbWFqb3IgYW5kCi0JICogbWlub3IgdmVyc2lvbiBkZWZpbmVkLiBUaGUgdmVyc2lvbnMgYXJlIGJ1aWx0IGludG8gQ1NTIGhlYWRlciBvZiBmaXJtd2FyZS4KLQkgKiBpOTE1IGtlcm5lbCBkcml2ZXIgc2V0IHRoZSBtaW5pbWFsIGZpcm13YXJlIHZlcnNpb24gcmVxdWlyZWQgcGVyIHBsYXRmb3JtLgotCSAqLwotCXUxNiBtYWpvcl92ZXJfd2FudGVkOwotCXUxNiBtaW5vcl92ZXJfd2FudGVkOwotCXUxNiBtYWpvcl92ZXJfZm91bmQ7Ci0JdTE2IG1pbm9yX3Zlcl9mb3VuZDsKLQotCWVudW0gaW50ZWxfdWNfZndfdHlwZSB0eXBlOwotCXUzMiBoZWFkZXJfc2l6ZTsKLQl1MzIgaGVhZGVyX29mZnNldDsKLQl1MzIgcnNhX3NpemU7Ci0JdTMyIHJzYV9vZmZzZXQ7Ci0JdTMyIHVjb2RlX3NpemU7Ci0JdTMyIHVjb2RlX29mZnNldDsKLX07Ci0KLXN0YXRpYyBpbmxpbmUKLWNvbnN0IGNoYXIgKmludGVsX3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHN0YXR1cykKLXsKLQlzd2l0Y2ggKHN0YXR1cykgewotCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfRkFJTDoKLQkJcmV0dXJuICJGQUlMIjsKLQljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX05PTkU6Ci0JCXJldHVybiAiTk9ORSI7Ci0JY2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9QRU5ESU5HOgotCQlyZXR1cm4gIlBFTkRJTkciOwotCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfU1VDQ0VTUzoKLQkJcmV0dXJuICJTVUNDRVNTIjsKLQl9Ci0JcmV0dXJuICI8aW52YWxpZD4iOwotfQotCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmludGVsX3VjX2Z3X3R5cGVfcmVwcihlbnVtIGludGVsX3VjX2Z3X3R5cGUgdHlwZSkKLXsKLQlzd2l0Y2ggKHR5cGUpIHsKLQljYXNlIElOVEVMX1VDX0ZXX1RZUEVfR1VDOgotCQlyZXR1cm4gIkd1QyI7Ci0JY2FzZSBJTlRFTF9VQ19GV19UWVBFX0hVQzoKLQkJcmV0dXJuICJIdUMiOwotCX0KLQlyZXR1cm4gInVDIjsKLX0KLQotc3RhdGljIGlubGluZQotdm9pZCBpbnRlbF91Y19md19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsCi0JCQkgICAgZW51bSBpbnRlbF91Y19md190eXBlIHR5cGUpCi17Ci0JdWNfZnctPnBhdGggPSBOVUxMOwotCXVjX2Z3LT5mZXRjaF9zdGF0dXMgPSBJTlRFTF9VQ19GSVJNV0FSRV9OT05FOwotCXVjX2Z3LT5sb2FkX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX05PTkU7Ci0JdWNfZnctPnR5cGUgPSB0eXBlOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfZndfaXNfc2VsZWN0ZWQoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykKLXsKLQlyZXR1cm4gdWNfZnctPnBhdGggIT0gTlVMTDsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGludGVsX3VjX2Z3X2lzX2xvYWRlZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQotewotCXJldHVybiB1Y19mdy0+bG9hZF9zdGF0dXMgPT0gSU5URUxfVUNfRklSTVdBUkVfU1VDQ0VTUzsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGludGVsX3VjX2Z3X3Nhbml0aXplKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCi17Ci0JaWYgKGludGVsX3VjX2Z3X2lzX2xvYWRlZCh1Y19mdykpCi0JCXVjX2Z3LT5sb2FkX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX1BFTkRJTkc7Ci19Ci0KLS8qKgotICogaW50ZWxfdWNfZndfZ2V0X3VwbG9hZF9zaXplKCkgLSBHZXQgc2l6ZSBvZiBmaXJtd2FyZSBuZWVkZWQgdG8gYmUgdXBsb2FkZWQuCi0gKiBAdWNfZnc6IHVDIGZpcm13YXJlLgotICoKLSAqIEdldCB0aGUgc2l6ZSBvZiB0aGUgZmlybXdhcmUgYW5kIGhlYWRlciB0aGF0IHdpbGwgYmUgdXBsb2FkZWQgdG8gV09QQ00uCi0gKgotICogUmV0dXJuOiBVcGxvYWQgZmlybXdhcmUgc2l6ZSwgb3IgemVybyBvbiBmaXJtd2FyZSBmZXRjaCBmYWlsdXJlLgotICovCi1zdGF0aWMgaW5saW5lIHUzMiBpbnRlbF91Y19md19nZXRfdXBsb2FkX3NpemUoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykKLXsKLQlpZiAodWNfZnctPmZldGNoX3N0YXR1cyAhPSBJTlRFTF9VQ19GSVJNV0FSRV9TVUNDRVNTKQotCQlyZXR1cm4gMDsKLQotCXJldHVybiB1Y19mdy0+aGVhZGVyX3NpemUgKyB1Y19mdy0+dWNvZGVfc2l6ZTsKLX0KLQotdm9pZCBpbnRlbF91Y19md19mZXRjaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCSAgICAgICBzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsKLXZvaWQgaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsKLWludCBpbnRlbF91Y19md191cGxvYWQoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywKLQkJICAgICAgIGludCAoKnhmZXIpKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpKTsKLWludCBpbnRlbF91Y19md19pbml0KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpOwotdm9pZCBpbnRlbF91Y19md19maW5pKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpOwotdTMyIGludGVsX3VjX2Z3X2dndHRfb2Zmc2V0KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpOwotdm9pZCBpbnRlbF91Y19md19kdW1wKGNvbnN0IHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCk7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwppbmRleCBkYTMzYWE2Li45ZTU4M2YxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwpAQCAtMjUsOCArMjUsOCBAQAogI2luY2x1ZGUgPGFzbS9pb3NmX21iaS5oPgogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaTkxNV92Z3B1LmgiCi0jaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfcG0uaCIKIAogI2RlZmluZSBGT1JDRVdBS0VfQUNLX1RJTUVPVVRfTVMgNTAKQEAgLTM0LDYgKzM0LDMyIEBACiAKICNkZWZpbmUgX19yYXdfcG9zdGluZ19yZWFkKC4uLikgKCh2b2lkKV9fcmF3X3VuY29yZV9yZWFkMzIoX19WQV9BUkdTX18pKQogCit2b2lkCitpbnRlbF91bmNvcmVfbW1pb19kZWJ1Z19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91bmNvcmVfbW1pb19kZWJ1ZyAqbW1pb19kZWJ1ZykKK3sKKwlzcGluX2xvY2tfaW5pdCgmbW1pb19kZWJ1Zy0+bG9jayk7CisJbW1pb19kZWJ1Zy0+dW5jbGFpbWVkX21taW9fY2hlY2sgPSAxOworfQorCitzdGF0aWMgdm9pZCBtbWlvX2RlYnVnX3N1c3BlbmQoc3RydWN0IGludGVsX3VuY29yZV9tbWlvX2RlYnVnICptbWlvX2RlYnVnKQoreworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJm1taW9fZGVidWctPmxvY2spOworCisJLyogU2F2ZSBhbmQgZGlzYWJsZSBtbWlvIGRlYnVnZ2luZyBmb3IgdGhlIHVzZXIgYnlwYXNzICovCisJaWYgKCFtbWlvX2RlYnVnLT5zdXNwZW5kX2NvdW50KyspIHsKKwkJbW1pb19kZWJ1Zy0+c2F2ZWRfbW1pb19jaGVjayA9IG1taW9fZGVidWctPnVuY2xhaW1lZF9tbWlvX2NoZWNrOworCQltbWlvX2RlYnVnLT51bmNsYWltZWRfbW1pb19jaGVjayA9IDA7CisJfQorfQorCitzdGF0aWMgdm9pZCBtbWlvX2RlYnVnX3Jlc3VtZShzdHJ1Y3QgaW50ZWxfdW5jb3JlX21taW9fZGVidWcgKm1taW9fZGVidWcpCit7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmbW1pb19kZWJ1Zy0+bG9jayk7CisKKwlpZiAoIS0tbW1pb19kZWJ1Zy0+c3VzcGVuZF9jb3VudCkKKwkJbW1pb19kZWJ1Zy0+dW5jbGFpbWVkX21taW9fY2hlY2sgPSBtbWlvX2RlYnVnLT5zYXZlZF9tbWlvX2NoZWNrOworfQorCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGZvcmNld2FrZV9kb21haW5fbmFtZXNbXSA9IHsKIAkicmVuZGVyIiwKIAkiYmxpdHRlciIsCkBAIC03OCw2ICsxMDQsOCBAQCBmd19kb21haW5fcmVzZXQoY29uc3Qgc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkKQogc3RhdGljIGlubGluZSB2b2lkCiBmd19kb21haW5fYXJtX3RpbWVyKHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKIHsKKwlHRU1fQlVHX09OKGQtPnVuY29yZS0+ZndfZG9tYWluc190aW1lciAmIGQtPm1hc2spOworCWQtPnVuY29yZS0+ZndfZG9tYWluc190aW1lciB8PSBkLT5tYXNrOwogCWQtPndha2VfY291bnQrKzsKIAlocnRpbWVyX3N0YXJ0X3JhbmdlX25zKCZkLT50aW1lciwKIAkJCSAgICAgICBOU0VDX1BFUl9NU0VDLApAQCAtMzIyLDcgKzM1MCw3IEBAIHN0YXRpYyB2b2lkIF9fZ2VuNl9ndF93YWl0X2Zvcl9maWZvKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKIAogCS8qIE9uIFZMViwgRklGTyB3aWxsIGJlIHNoYXJlZCBieSBib3RoIFNXIGFuZCBIVy4KIAkgKiBTbywgd2UgbmVlZCB0byByZWFkIHRoZSBGUkVFX0VOVFJJRVMgZXZlcnl0aW1lICovCi0JaWYgKElTX1ZBTExFWVZJRVcodW5jb3JlX3RvX2k5MTUodW5jb3JlKSkpCisJaWYgKElTX1ZBTExFWVZJRVcodW5jb3JlLT5pOTE1KSkKIAkJbiA9IGZpZm9fZnJlZV9lbnRyaWVzKHVuY29yZSk7CiAJZWxzZQogCQluID0gdW5jb3JlLT5maWZvX2NvdW50OwpAQCAtMzQ0LDcgKzM3Miw3IEBAIGludGVsX3VuY29yZV9md19yZWxlYXNlX3RpbWVyKHN0cnVjdCBocnRpbWVyICp0aW1lcikKIHsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmRvbWFpbiA9CiAJICAgICAgIGNvbnRhaW5lcl9vZih0aW1lciwgc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluLCB0aW1lcik7Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZm9yY2V3YWtlX2RvbWFpbl90b191bmNvcmUoZG9tYWluKTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBkb21haW4tPnVuY29yZTsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwogCiAJYXNzZXJ0X3JwbV9kZXZpY2Vfbm90X3N1c3BlbmRlZCh1bmNvcmUtPnJwbSk7CkBAIC0zNTMsOSArMzgxLDEwIEBAIGludGVsX3VuY29yZV9md19yZWxlYXNlX3RpbWVyKHN0cnVjdCBocnRpbWVyICp0aW1lcikKIAkJcmV0dXJuIEhSVElNRVJfUkVTVEFSVDsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZ1bmNvcmUtPmxvY2ssIGlycWZsYWdzKTsKLQlpZiAoV0FSTl9PTihkb21haW4tPndha2VfY291bnQgPT0gMCkpCi0JCWRvbWFpbi0+d2FrZV9jb3VudCsrOwogCisJdW5jb3JlLT5md19kb21haW5zX3RpbWVyICY9IH5kb21haW4tPm1hc2s7CisKKwlHRU1fQlVHX09OKCFkb21haW4tPndha2VfY291bnQpOwogCWlmICgtLWRvbWFpbi0+d2FrZV9jb3VudCA9PSAwKQogCQl1bmNvcmUtPmZ1bmNzLmZvcmNlX3dha2VfcHV0KHVuY29yZSwgZG9tYWluLT5tYXNrKTsKIApAQCAtNDczLDYgKzUwMiwxMSBAQCBjaGVja19mb3JfdW5jbGFpbWVkX21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogewogCWJvb2wgcmV0ID0gZmFsc2U7CiAKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ1bmNvcmUtPmRlYnVnLT5sb2NrKTsKKworCWlmICh1bmNvcmUtPmRlYnVnLT5zdXNwZW5kX2NvdW50KQorCQlyZXR1cm4gZmFsc2U7CisKIAlpZiAoaW50ZWxfdW5jb3JlX2hhc19mcGdhX2RiZ191bmNsYWltZWQodW5jb3JlKSkKIAkJcmV0IHw9IGZwZ2FfY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKHVuY29yZSk7CiAKQEAgLTQ4NSwxNSArNTE5LDEzIEBAIGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgX19pbnRlbF91bmNvcmVfZWFybHlfc2FuaXRpemUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAotCQkJCQkgIHVuc2lnbmVkIGludCByZXN0b3JlX2ZvcmNld2FrZSkKK3N0YXRpYyB2b2lkIGZvcmNld2FrZV9lYXJseV9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCisJCQkJICAgICB1bnNpZ25lZCBpbnQgcmVzdG9yZV9mb3JjZXdha2UpCiB7Ci0JLyogY2xlYXIgb3V0IHVuY2xhaW1lZCByZWcgZGV0ZWN0aW9uIGJpdCAqLwotCWlmIChjaGVja19mb3JfdW5jbGFpbWVkX21taW8odW5jb3JlKSkKLQkJRFJNX0RFQlVHKCJ1bmNsYWltZWQgbW1pbyBkZXRlY3RlZCBvbiB1bmNvcmUgaW5pdCwgY2xlYXJpbmdcbiIpOworCUdFTV9CVUdfT04oIWludGVsX3VuY29yZV9oYXNfZm9yY2V3YWtlKHVuY29yZSkpOwogCiAJLyogV2FEaXNhYmxlU2hhZG93UmVnRm9yQ3BkOmNodiAqLwotCWlmIChJU19DSEVSUllWSUVXKHVuY29yZV90b19pOTE1KHVuY29yZSkpKSB7CisJaWYgKElTX0NIRVJSWVZJRVcodW5jb3JlLT5pOTE1KSkgewogCQlfX3Jhd191bmNvcmVfd3JpdGUzMih1bmNvcmUsIEdURklGT0NUTCwKIAkJCQkgICAgIF9fcmF3X3VuY29yZV9yZWFkMzIodW5jb3JlLCBHVEZJRk9DVEwpIHwKIAkJCQkgICAgIEdUX0ZJRk9fQ1RMX0JMT0NLX0FMTF9QT0xJQ1lfU1RBTEwgfApAQCAtNTE1LDYgKzU0Nyw5IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfdW5jb3JlX2Vhcmx5X3Nhbml0aXplKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIAogdm9pZCBpbnRlbF91bmNvcmVfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB7CisJaWYgKCFpbnRlbF91bmNvcmVfaGFzX2ZvcmNld2FrZSh1bmNvcmUpKQorCQlyZXR1cm47CisKIAlpb3NmX21iaV9wdW5pdF9hY3F1aXJlKCk7CiAJaW9zZl9tYmlfdW5yZWdpc3Rlcl9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXJfdW5sb2NrZWQoCiAJCSZ1bmNvcmUtPnBtaWNfYnVzX2FjY2Vzc19uYik7CkBAIC01MjYsMjEgKzU2MSwyNCBAQCB2b2lkIGludGVsX3VuY29yZV9yZXN1bWVfZWFybHkoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogewogCXVuc2lnbmVkIGludCByZXN0b3JlX2ZvcmNld2FrZTsKIAorCWlmIChpbnRlbF91bmNvcmVfdW5jbGFpbWVkX21taW8odW5jb3JlKSkKKwkJRFJNX0RFQlVHKCJ1bmNsYWltZWQgbW1pbyBkZXRlY3RlZCBvbiByZXN1bWUsIGNsZWFyaW5nXG4iKTsKKworCWlmICghaW50ZWxfdW5jb3JlX2hhc19mb3JjZXdha2UodW5jb3JlKSkKKwkJcmV0dXJuOworCiAJcmVzdG9yZV9mb3JjZXdha2UgPSBmZXRjaF9hbmRfemVybygmdW5jb3JlLT5md19kb21haW5zX3NhdmVkKTsKLQlfX2ludGVsX3VuY29yZV9lYXJseV9zYW5pdGl6ZSh1bmNvcmUsIHJlc3RvcmVfZm9yY2V3YWtlKTsKKwlmb3JjZXdha2VfZWFybHlfc2FuaXRpemUodW5jb3JlLCByZXN0b3JlX2ZvcmNld2FrZSk7CiAKIAlpb3NmX21iaV9yZWdpc3Rlcl9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXIoJnVuY29yZS0+cG1pY19idXNfYWNjZXNzX25iKTsKIH0KIAogdm9pZCBpbnRlbF91bmNvcmVfcnVudGltZV9yZXN1bWUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogewotCWlvc2ZfbWJpX3JlZ2lzdGVyX3BtaWNfYnVzX2FjY2Vzc19ub3RpZmllcigmdW5jb3JlLT5wbWljX2J1c19hY2Nlc3NfbmIpOwotfQorCWlmICghaW50ZWxfdW5jb3JlX2hhc19mb3JjZXdha2UodW5jb3JlKSkKKwkJcmV0dXJuOwogCi12b2lkIGludGVsX3VuY29yZV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0JLyogQklPUyBvZnRlbiBsZWF2ZXMgUkM2IGVuYWJsZWQsIGJ1dCBkaXNhYmxlIGl0IGZvciBodyBpbml0ICovCi0JaW50ZWxfc2FuaXRpemVfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKKwlpb3NmX21iaV9yZWdpc3Rlcl9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXIoJnVuY29yZS0+cG1pY19idXNfYWNjZXNzX25iKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCkBAIC02MDEsMTcgKzYzOSwxMSBAQCB2b2lkIGludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIHZvaWQgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV91c2VyX2dldChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB7CiAJc3Bpbl9sb2NrX2lycSgmdW5jb3JlLT5sb2NrKTsKLQlpZiAoIXVuY29yZS0+dXNlcl9mb3JjZXdha2UuY291bnQrKykgeworCWlmICghdW5jb3JlLT51c2VyX2ZvcmNld2FrZV9jb3VudCsrKSB7CiAJCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0X19sb2NrZWQodW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKLQotCQkvKiBTYXZlIGFuZCBkaXNhYmxlIG1taW8gZGVidWdnaW5nIGZvciB0aGUgdXNlciBieXBhc3MgKi8KLQkJdW5jb3JlLT51c2VyX2ZvcmNld2FrZS5zYXZlZF9tbWlvX2NoZWNrID0KLQkJCXVuY29yZS0+dW5jbGFpbWVkX21taW9fY2hlY2s7Ci0JCXVuY29yZS0+dXNlcl9mb3JjZXdha2Uuc2F2ZWRfbW1pb19kZWJ1ZyA9Ci0JCQlpOTE1X21vZHBhcmFtcy5tbWlvX2RlYnVnOwotCi0JCXVuY29yZS0+dW5jbGFpbWVkX21taW9fY2hlY2sgPSAwOwotCQlpOTE1X21vZHBhcmFtcy5tbWlvX2RlYnVnID0gMDsKKwkJc3Bpbl9sb2NrKCZ1bmNvcmUtPmRlYnVnLT5sb2NrKTsKKwkJbW1pb19kZWJ1Z19zdXNwZW5kKHVuY29yZS0+ZGVidWcpOworCQlzcGluX3VubG9jaygmdW5jb3JlLT5kZWJ1Zy0+bG9jayk7CiAJfQogCXNwaW5fdW5sb2NrX2lycSgmdW5jb3JlLT5sb2NrKTsKIH0KQEAgLTYyNiwxNSArNjU4LDE0IEBAIHZvaWQgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV91c2VyX2dldChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB2b2lkIGludGVsX3VuY29yZV9mb3JjZXdha2VfdXNlcl9wdXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogewogCXNwaW5fbG9ja19pcnEoJnVuY29yZS0+bG9jayk7Ci0JaWYgKCEtLXVuY29yZS0+dXNlcl9mb3JjZXdha2UuY291bnQpIHsKLQkJaWYgKGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyh1bmNvcmUpKQotCQkJZGV2X2luZm8odW5jb3JlX3RvX2k5MTUodW5jb3JlKS0+ZHJtLmRldiwKLQkJCQkgIkludmFsaWQgbW1pbyBkZXRlY3RlZCBkdXJpbmcgdXNlciBhY2Nlc3NcbiIpOworCWlmICghLS11bmNvcmUtPnVzZXJfZm9yY2V3YWtlX2NvdW50KSB7CisJCXNwaW5fbG9jaygmdW5jb3JlLT5kZWJ1Zy0+bG9jayk7CisJCW1taW9fZGVidWdfcmVzdW1lKHVuY29yZS0+ZGVidWcpOwogCi0JCXVuY29yZS0+dW5jbGFpbWVkX21taW9fY2hlY2sgPQotCQkJdW5jb3JlLT51c2VyX2ZvcmNld2FrZS5zYXZlZF9tbWlvX2NoZWNrOwotCQlpOTE1X21vZHBhcmFtcy5tbWlvX2RlYnVnID0KLQkJCXVuY29yZS0+dXNlcl9mb3JjZXdha2Uuc2F2ZWRfbW1pb19kZWJ1ZzsKKwkJaWYgKGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyh1bmNvcmUpKQorCQkJZGV2X2luZm8odW5jb3JlLT5pOTE1LT5kcm0uZGV2LAorCQkJCSAiSW52YWxpZCBtbWlvIGRldGVjdGVkIGR1cmluZyB1c2VyIGFjY2Vzc1xuIik7CisJCXNwaW5fdW5sb2NrKCZ1bmNvcmUtPmRlYnVnLT5sb2NrKTsKIAogCQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dF9fbG9ja2VkKHVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAJfQpAQCAtNjY5LDggKzcwMCw3IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAogCWZ3X2RvbWFpbnMgJj0gdW5jb3JlLT5md19kb21haW5zOwogCiAJZm9yX2VhY2hfZndfZG9tYWluX21hc2tlZChkb21haW4sIGZ3X2RvbWFpbnMsIHVuY29yZSwgdG1wKSB7Ci0JCWlmIChXQVJOX09OKGRvbWFpbi0+d2FrZV9jb3VudCA9PSAwKSkKLQkJCWNvbnRpbnVlOworCQlHRU1fQlVHX09OKCFkb21haW4tPndha2VfY291bnQpOwogCiAJCWlmICgtLWRvbWFpbi0+d2FrZV9jb3VudCkgewogCQkJZG9tYWluLT5hY3RpdmUgPSB0cnVlOwpAQCAtNzM0LDE1ICs3NjQsNDIgQEAgdm9pZCBhc3NlcnRfZm9yY2V3YWtlc19pbmFjdGl2ZShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB2b2lkIGFzc2VydF9mb3JjZXdha2VzX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAJCQkgICAgICBlbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2RvbWFpbnMpCiB7CisJc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkb21haW47CisJdW5zaWduZWQgaW50IHRtcDsKKworCWlmICghSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfUlVOVElNRV9QTSkpCisJCXJldHVybjsKKwogCWlmICghdW5jb3JlLT5mdW5jcy5mb3JjZV93YWtlX2dldCkKIAkJcmV0dXJuOwogCisJc3Bpbl9sb2NrX2lycSgmdW5jb3JlLT5sb2NrKTsKKwogCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZCh1bmNvcmUtPnJwbSk7CiAKIAlmd19kb21haW5zICY9IHVuY29yZS0+ZndfZG9tYWluczsKIAlXQVJOKGZ3X2RvbWFpbnMgJiB+dW5jb3JlLT5md19kb21haW5zX2FjdGl2ZSwKIAkgICAgICJFeHBlY3RlZCAlMDh4IGZ3X2RvbWFpbnMgdG8gYmUgYWN0aXZlLCBidXQgJTA4eCBhcmUgb2ZmXG4iLAogCSAgICAgZndfZG9tYWlucywgZndfZG9tYWlucyAmIH51bmNvcmUtPmZ3X2RvbWFpbnNfYWN0aXZlKTsKKworCS8qCisJICogQ2hlY2sgdGhhdCB0aGUgY2FsbGVyIGhhcyBhbiBleHBsaWNpdCB3YWtlcmVmIGFuZCB3ZSBkb24ndCBtaXN0YWtlCisJICogaXQgZm9yIHRoZSBhdXRvIHdha2VyZWYuCisJICovCisJZm9yX2VhY2hfZndfZG9tYWluX21hc2tlZChkb21haW4sIGZ3X2RvbWFpbnMsIHVuY29yZSwgdG1wKSB7CisJCXVuc2lnbmVkIGludCBhY3R1YWwgPSBSRUFEX09OQ0UoZG9tYWluLT53YWtlX2NvdW50KTsKKwkJdW5zaWduZWQgaW50IGV4cGVjdCA9IDE7CisKKwkJaWYgKHVuY29yZS0+ZndfZG9tYWluc190aW1lciAmIGRvbWFpbi0+bWFzaykKKwkJCWV4cGVjdCsrOyAvKiBwZW5kaW5nIGF1dG9tYXRpYyByZWxlYXNlICovCisKKwkJaWYgKFdBUk4oYWN0dWFsIDwgZXhwZWN0LAorCQkJICJFeHBlY3RlZCBkb21haW4gJWQgdG8gYmUgaGVsZCBhd2FrZSBieSBjYWxsZXIsIGNvdW50PSVkXG4iLAorCQkJIGRvbWFpbi0+aWQsIGFjdHVhbCkpCisJCQlicmVhazsKKwl9CisKKwlzcGluX3VubG9ja19pcnEoJnVuY29yZS0+bG9jayk7CiB9CiAKIC8qIFdlIGdpdmUgZmFzdCBwYXRocyBmb3IgdGhlIHJlYWxseSBjb29sIHJlZ2lzdGVycyAqLwpAQCAtOTAxLDYgKzk1OCwxMiBAQCBzdGF0aWMgYm9vbCBpc19nZW4jI3gjI19zaGFkb3dlZCh1MzIgb2Zmc2V0KSBcCiBfX2lzX2dlblhfc2hhZG93ZWQoOCkKIF9faXNfZ2VuWF9zaGFkb3dlZCgxMSkKIAorc3RhdGljIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMKK2dlbjZfcmVnX3dyaXRlX2Z3X2RvbWFpbnMoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IHJlZykKK3sKKwlyZXR1cm4gRk9SQ0VXQUtFX1JFTkRFUjsKK30KKwogI2RlZmluZSBfX2dlbjhfcmVnX3dyaXRlX2Z3X2RvbWFpbnModW5jb3JlLCBvZmZzZXQpIFwKICh7IFwKIAllbnVtIGZvcmNld2FrZV9kb21haW5zIF9fZndkOyBcCkBAIC0xMDQ5LDcgKzExMTIsMTYgQEAgdW5jbGFpbWVkX3JlZ19kZWJ1ZyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAJaWYgKGxpa2VseSghaTkxNV9tb2RwYXJhbXMubW1pb19kZWJ1ZykpCiAJCXJldHVybjsKIAorCS8qIGludGVycnVwdHMgYXJlIGRpc2FibGVkIGFuZCByZS1lbmFibGVkIGFyb3VuZCB1bmNvcmUtPmxvY2sgdXNhZ2UgKi8KKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ1bmNvcmUtPmxvY2spOworCisJaWYgKGJlZm9yZSkKKwkJc3Bpbl9sb2NrKCZ1bmNvcmUtPmRlYnVnLT5sb2NrKTsKKwogCV9fdW5jbGFpbWVkX3JlZ19kZWJ1Zyh1bmNvcmUsIHJlZywgcmVhZCwgYmVmb3JlKTsKKworCWlmICghYmVmb3JlKQorCQlzcGluX3VubG9jaygmdW5jb3JlLT5kZWJ1Zy0+bG9jayk7CiB9CiAKICNkZWZpbmUgR0VOMl9SRUFEX0hFQURFUih4KSBcCkBAIC0xMTIzLDggKzExOTUsNyBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX19mb3JjZV93YWtlX2F1dG8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAogc3RhdGljIGlubGluZSB2b2lkIF9fZm9yY2Vfd2FrZV9hdXRvKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIAkJCQkgICAgIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWlucykKIHsKLQlpZiAoV0FSTl9PTighZndfZG9tYWlucykpCi0JCXJldHVybjsKKwlHRU1fQlVHX09OKCFmd19kb21haW5zKTsKIAogCS8qIFR1cm4gb24gYWxsIHJlcXVlc3RlZCBidXQgaW5hY3RpdmUgc3VwcG9ydGVkIGZvcmNld2FrZSBkb21haW5zLiAqLwogCWZ3X2RvbWFpbnMgJj0gdW5jb3JlLT5md19kb21haW5zOwpAQCAtMTE0NSwyNiArMTIxNiwyMyBAQCBmdW5jIyNfcmVhZCMjeChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsIGk5MTVfcmVnX3QgcmVnLCBib29sIHRyYWNlKSB7IFwKIAl2YWwgPSBfX3Jhd191bmNvcmVfcmVhZCMjeCh1bmNvcmUsIHJlZyk7IFwKIAlHRU42X1JFQURfRk9PVEVSOyBcCiB9Ci0jZGVmaW5lIF9fZ2VuNl9yZWFkKHgpIF9fZ2VuX3JlYWQoZ2VuNiwgeCkKLSNkZWZpbmUgX19md3RhYmxlX3JlYWQoeCkgX19nZW5fcmVhZChmd3RhYmxlLCB4KQotI2RlZmluZSBfX2dlbjExX2Z3dGFibGVfcmVhZCh4KSBfX2dlbl9yZWFkKGdlbjExX2Z3dGFibGUsIHgpCiAKLV9fZ2VuMTFfZnd0YWJsZV9yZWFkKDgpCi1fX2dlbjExX2Z3dGFibGVfcmVhZCgxNikKLV9fZ2VuMTFfZnd0YWJsZV9yZWFkKDMyKQotX19nZW4xMV9md3RhYmxlX3JlYWQoNjQpCi1fX2Z3dGFibGVfcmVhZCg4KQotX19md3RhYmxlX3JlYWQoMTYpCi1fX2Z3dGFibGVfcmVhZCgzMikKLV9fZnd0YWJsZV9yZWFkKDY0KQotX19nZW42X3JlYWQoOCkKLV9fZ2VuNl9yZWFkKDE2KQotX19nZW42X3JlYWQoMzIpCi1fX2dlbjZfcmVhZCg2NCkKKyNkZWZpbmUgX19nZW5fcmVnX3JlYWRfZnVuY3MoZnVuYykgXAorc3RhdGljIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMgXAorZnVuYyMjX3JlZ19yZWFkX2Z3X2RvbWFpbnMoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IHJlZykgeyBcCisJcmV0dXJuIF9fIyNmdW5jIyNfcmVnX3JlYWRfZndfZG9tYWlucyh1bmNvcmUsIGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJlZykpOyBcCit9IFwKK1wKK19fZ2VuX3JlYWQoZnVuYywgOCkgXAorX19nZW5fcmVhZChmdW5jLCAxNikgXAorX19nZW5fcmVhZChmdW5jLCAzMikgXAorX19nZW5fcmVhZChmdW5jLCA2NCkKIAotI3VuZGVmIF9fZ2VuMTFfZnd0YWJsZV9yZWFkCi0jdW5kZWYgX19md3RhYmxlX3JlYWQKLSN1bmRlZiBfX2dlbjZfcmVhZAorX19nZW5fcmVnX3JlYWRfZnVuY3MoZ2VuMTFfZnd0YWJsZSk7CitfX2dlbl9yZWdfcmVhZF9mdW5jcyhmd3RhYmxlKTsKK19fZ2VuX3JlZ19yZWFkX2Z1bmNzKGdlbjYpOworCisjdW5kZWYgX19nZW5fcmVnX3JlYWRfZnVuY3MKICN1bmRlZiBHRU42X1JFQURfRk9PVEVSCiAjdW5kZWYgR0VONl9SRUFEX0hFQURFUgogCkBAIC0xMjI1LDYgKzEyOTMsOSBAQCBnZW42X3dyaXRlIyN4KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwgaTkxNV9yZWdfdCByZWcsIHUjI3ggdmFsLCBib29sIHRyYWNlKQogCV9fcmF3X3VuY29yZV93cml0ZSMjeCh1bmNvcmUsIHJlZywgdmFsKTsgXAogCUdFTjZfV1JJVEVfRk9PVEVSOyBcCiB9CitfX2dlbjZfd3JpdGUoOCkKK19fZ2VuNl93cml0ZSgxNikKK19fZ2VuNl93cml0ZSgzMikKIAogI2RlZmluZSBfX2dlbl93cml0ZShmdW5jLCB4KSBcCiBzdGF0aWMgdm9pZCBcCkBAIC0xMjM3LDM4ICsxMzA4LDMzIEBAIGZ1bmMjI193cml0ZSMjeChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsIGk5MTVfcmVnX3QgcmVnLCB1IyN4IHZhbCwgYm9vbCB0cmFjCiAJX19yYXdfdW5jb3JlX3dyaXRlIyN4KHVuY29yZSwgcmVnLCB2YWwpOyBcCiAJR0VONl9XUklURV9GT09URVI7IFwKIH0KLSNkZWZpbmUgX19nZW44X3dyaXRlKHgpIF9fZ2VuX3dyaXRlKGdlbjgsIHgpCi0jZGVmaW5lIF9fZnd0YWJsZV93cml0ZSh4KSBfX2dlbl93cml0ZShmd3RhYmxlLCB4KQotI2RlZmluZSBfX2dlbjExX2Z3dGFibGVfd3JpdGUoeCkgX19nZW5fd3JpdGUoZ2VuMTFfZnd0YWJsZSwgeCkKIAotX19nZW4xMV9md3RhYmxlX3dyaXRlKDgpCi1fX2dlbjExX2Z3dGFibGVfd3JpdGUoMTYpCi1fX2dlbjExX2Z3dGFibGVfd3JpdGUoMzIpCi1fX2Z3dGFibGVfd3JpdGUoOCkKLV9fZnd0YWJsZV93cml0ZSgxNikKLV9fZnd0YWJsZV93cml0ZSgzMikKLV9fZ2VuOF93cml0ZSg4KQotX19nZW44X3dyaXRlKDE2KQotX19nZW44X3dyaXRlKDMyKQotX19nZW42X3dyaXRlKDgpCi1fX2dlbjZfd3JpdGUoMTYpCi1fX2dlbjZfd3JpdGUoMzIpCisjZGVmaW5lIF9fZ2VuX3JlZ193cml0ZV9mdW5jcyhmdW5jKSBcCitzdGF0aWMgZW51bSBmb3JjZXdha2VfZG9tYWlucyBcCitmdW5jIyNfcmVnX3dyaXRlX2Z3X2RvbWFpbnMoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IHJlZykgeyBcCisJcmV0dXJuIF9fIyNmdW5jIyNfcmVnX3dyaXRlX2Z3X2RvbWFpbnModW5jb3JlLCBpOTE1X21taW9fcmVnX29mZnNldChyZWcpKTsgXAorfSBcCitcCitfX2dlbl93cml0ZShmdW5jLCA4KSBcCitfX2dlbl93cml0ZShmdW5jLCAxNikgXAorX19nZW5fd3JpdGUoZnVuYywgMzIpCiAKLSN1bmRlZiBfX2dlbjExX2Z3dGFibGVfd3JpdGUKLSN1bmRlZiBfX2Z3dGFibGVfd3JpdGUKLSN1bmRlZiBfX2dlbjhfd3JpdGUKLSN1bmRlZiBfX2dlbjZfd3JpdGUKK19fZ2VuX3JlZ193cml0ZV9mdW5jcyhnZW4xMV9md3RhYmxlKTsKK19fZ2VuX3JlZ193cml0ZV9mdW5jcyhmd3RhYmxlKTsKK19fZ2VuX3JlZ193cml0ZV9mdW5jcyhnZW44KTsKKworI3VuZGVmIF9fZ2VuX3JlZ193cml0ZV9mdW5jcwogI3VuZGVmIEdFTjZfV1JJVEVfRk9PVEVSCiAjdW5kZWYgR0VONl9XUklURV9IRUFERVIKIAotI2RlZmluZSBBU1NJR05fV1JJVEVfTU1JT19WRlVOQ1ModW5jb3JlLCB4KSBcCisjZGVmaW5lIEFTU0lHTl9SQVdfV1JJVEVfTU1JT19WRlVOQ1ModW5jb3JlLCB4KSBcCiBkbyB7IFwKIAkodW5jb3JlKS0+ZnVuY3MubW1pb193cml0ZWIgPSB4IyNfd3JpdGU4OyBcCiAJKHVuY29yZSktPmZ1bmNzLm1taW9fd3JpdGV3ID0geCMjX3dyaXRlMTY7IFwKIAkodW5jb3JlKS0+ZnVuY3MubW1pb193cml0ZWwgPSB4IyNfd3JpdGUzMjsgXAogfSB3aGlsZSAoMCkKIAotI2RlZmluZSBBU1NJR05fUkVBRF9NTUlPX1ZGVU5DUyh1bmNvcmUsIHgpIFwKKyNkZWZpbmUgQVNTSUdOX1JBV19SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgeCkgXAogZG8geyBcCiAJKHVuY29yZSktPmZ1bmNzLm1taW9fcmVhZGIgPSB4IyNfcmVhZDg7IFwKIAkodW5jb3JlKS0+ZnVuY3MubW1pb19yZWFkdyA9IHgjI19yZWFkMTY7IFwKQEAgLTEyNzYsMjQgKzEzNDIsMzkgQEAgZG8geyBcCiAJKHVuY29yZSktPmZ1bmNzLm1taW9fcmVhZHEgPSB4IyNfcmVhZDY0OyBcCiB9IHdoaWxlICgwKQogCisjZGVmaW5lIEFTU0lHTl9XUklURV9NTUlPX1ZGVU5DUyh1bmNvcmUsIHgpIFwKK2RvIHsgXAorCUFTU0lHTl9SQVdfV1JJVEVfTU1JT19WRlVOQ1MoKHVuY29yZSksIHgpOyBcCisJKHVuY29yZSktPmZ1bmNzLndyaXRlX2Z3X2RvbWFpbnMgPSB4IyNfcmVnX3dyaXRlX2Z3X2RvbWFpbnM7IFwKK30gd2hpbGUgKDApCiAKLXN0YXRpYyB2b2lkIGZ3X2RvbWFpbl9pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKLQkJCSAgIGVudW0gZm9yY2V3YWtlX2RvbWFpbl9pZCBkb21haW5faWQsCi0JCQkgICBpOTE1X3JlZ190IHJlZ19zZXQsCi0JCQkgICBpOTE1X3JlZ190IHJlZ19hY2spCisjZGVmaW5lIEFTU0lHTl9SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgeCkgXAorZG8geyBcCisJQVNTSUdOX1JBV19SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgeCk7IFwKKwkodW5jb3JlKS0+ZnVuY3MucmVhZF9md19kb21haW5zID0geCMjX3JlZ19yZWFkX2Z3X2RvbWFpbnM7IFwKK30gd2hpbGUgKDApCisKK3N0YXRpYyBpbnQgX19md19kb21haW5faW5pdChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCisJCQkgICAgZW51bSBmb3JjZXdha2VfZG9tYWluX2lkIGRvbWFpbl9pZCwKKwkJCSAgICBpOTE1X3JlZ190IHJlZ19zZXQsCisJCQkgICAgaTkxNV9yZWdfdCByZWdfYWNrKQogewogCXN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZDsKIAotCWlmIChXQVJOX09OKGRvbWFpbl9pZCA+PSBGV19ET01BSU5fSURfQ09VTlQpKQotCQlyZXR1cm47CisJR0VNX0JVR19PTihkb21haW5faWQgPj0gRldfRE9NQUlOX0lEX0NPVU5UKTsKKwlHRU1fQlVHX09OKHVuY29yZS0+ZndfZG9tYWluW2RvbWFpbl9pZF0pOwogCi0JZCA9ICZ1bmNvcmUtPmZ3X2RvbWFpbltkb21haW5faWRdOworCWlmIChpOTE1X2luamVjdF9wcm9iZV9mYWlsdXJlKHVuY29yZS0+aTkxNSkpCisJCXJldHVybiAtRU5PTUVNOwogCi0JV0FSTl9PTihkLT53YWtlX2NvdW50KTsKKwlkID0ga3phbGxvYyhzaXplb2YoKmQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWQpCisJCXJldHVybiAtRU5PTUVNOwogCiAJV0FSTl9PTighaTkxNV9tbWlvX3JlZ192YWxpZChyZWdfc2V0KSk7CiAJV0FSTl9PTighaTkxNV9tbWlvX3JlZ192YWxpZChyZWdfYWNrKSk7CiAKKwlkLT51bmNvcmUgPSB1bmNvcmU7CiAJZC0+d2FrZV9jb3VudCA9IDA7CiAJZC0+cmVnX3NldCA9IHVuY29yZS0+cmVncyArIGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJlZ19zZXQpOwogCWQtPnJlZ19hY2sgPSB1bmNvcmUtPnJlZ3MgKyBpOTE1X21taW9fcmVnX29mZnNldChyZWdfYWNrKTsKQEAgLTEzMTAsNyArMTM5MSw2IEBAIHN0YXRpYyB2b2lkIGZ3X2RvbWFpbl9pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIAlCVUlMRF9CVUdfT04oRk9SQ0VXQUtFX01FRElBX1ZFQk9YMCAhPSAoMSA8PCBGV19ET01BSU5fSURfTUVESUFfVkVCT1gwKSk7CiAJQlVJTERfQlVHX09OKEZPUkNFV0FLRV9NRURJQV9WRUJPWDEgIT0gKDEgPDwgRldfRE9NQUlOX0lEX01FRElBX1ZFQk9YMSkpOwogCi0KIAlkLT5tYXNrID0gQklUKGRvbWFpbl9pZCk7CiAKIAlocnRpbWVyX2luaXQoJmQtPnRpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOwpAQCAtMTMxOSw2ICsxMzk5LDEwIEBAIHN0YXRpYyB2b2lkIGZ3X2RvbWFpbl9pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIAl1bmNvcmUtPmZ3X2RvbWFpbnMgfD0gQklUKGRvbWFpbl9pZCk7CiAKIAlmd19kb21haW5fcmVzZXQoZCk7CisKKwl1bmNvcmUtPmZ3X2RvbWFpbltkb21haW5faWRdID0gZDsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBmd19kb21haW5fZmluaShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCkBAIC0xMzI2LDMwICsxNDEwLDQxIEBAIHN0YXRpYyB2b2lkIGZ3X2RvbWFpbl9maW5pKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIHsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQ7CiAKLQlpZiAoV0FSTl9PTihkb21haW5faWQgPj0gRldfRE9NQUlOX0lEX0NPVU5UKSkKKwlHRU1fQlVHX09OKGRvbWFpbl9pZCA+PSBGV19ET01BSU5fSURfQ09VTlQpOworCisJZCA9IGZldGNoX2FuZF96ZXJvKCZ1bmNvcmUtPmZ3X2RvbWFpbltkb21haW5faWRdKTsKKwlpZiAoIWQpCiAJCXJldHVybjsKIAotCWQgPSAmdW5jb3JlLT5md19kb21haW5bZG9tYWluX2lkXTsKLQotCVdBUk5fT04oZC0+d2FrZV9jb3VudCk7Ci0JV0FSTl9PTihocnRpbWVyX2NhbmNlbCgmZC0+dGltZXIpKTsKLQltZW1zZXQoZCwgMCwgc2l6ZW9mKCpkKSk7Ci0KIAl1bmNvcmUtPmZ3X2RvbWFpbnMgJj0gfkJJVChkb21haW5faWQpOworCVdBUk5fT04oZC0+d2FrZV9jb3VudCk7CisJV0FSTl9PTihocnRpbWVyX2NhbmNlbCgmZC0+dGltZXIpKTsKKwlrZnJlZShkKTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfdW5jb3JlX2Z3X2RvbWFpbnNfaW5pdChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCitzdGF0aWMgdm9pZCBpbnRlbF91bmNvcmVfZndfZG9tYWluc19maW5pKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHVuY29yZV90b19pOTE1KHVuY29yZSk7CisJc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkOworCWludCB0bXA7CiAKLQlpZiAoIWludGVsX3VuY29yZV9oYXNfZm9yY2V3YWtlKHVuY29yZSkpCi0JCXJldHVybjsKKwlmb3JfZWFjaF9md19kb21haW4oZCwgdW5jb3JlLCB0bXApCisJCWZ3X2RvbWFpbl9maW5pKHVuY29yZSwgZC0+aWQpOworfQorCitzdGF0aWMgaW50IGludGVsX3VuY29yZV9md19kb21haW5zX2luaXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdW5jb3JlLT5pOTE1OworCWludCByZXQgPSAwOworCisJR0VNX0JVR19PTighaW50ZWxfdW5jb3JlX2hhc19mb3JjZXdha2UodW5jb3JlKSk7CisKKyNkZWZpbmUgZndfZG9tYWluX2luaXQodW5jb3JlX18sIGlkX18sIHNldF9fLCBhY2tfXykgXAorCShyZXQgPzogKHJldCA9IF9fZndfZG9tYWluX2luaXQoKHVuY29yZV9fKSwgKGlkX18pLCAoc2V0X18pLCAoYWNrX18pKSkpCiAKIAlpZiAoSU5URUxfR0VOKGk5MTUpID49IDExKSB7CiAJCWludCBpOwogCi0JCXVuY29yZS0+ZnVuY3MuZm9yY2Vfd2FrZV9nZXQgPQotCQkJZndfZG9tYWluc19nZXRfd2l0aF9mYWxsYmFjazsKKwkJdW5jb3JlLT5mdW5jcy5mb3JjZV93YWtlX2dldCA9IGZ3X2RvbWFpbnNfZ2V0X3dpdGhfZmFsbGJhY2s7CiAJCXVuY29yZS0+ZnVuY3MuZm9yY2Vfd2FrZV9wdXQgPSBmd19kb21haW5zX3B1dDsKIAkJZndfZG9tYWluX2luaXQodW5jb3JlLCBGV19ET01BSU5fSURfUkVOREVSLAogCQkJICAgICAgIEZPUkNFV0FLRV9SRU5ERVJfR0VOOSwKQEAgLTEzNTcsNiArMTQ1Miw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3VuY29yZV9md19kb21haW5zX2luaXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogCQlmd19kb21haW5faW5pdCh1bmNvcmUsIEZXX0RPTUFJTl9JRF9CTElUVEVSLAogCQkJICAgICAgIEZPUkNFV0FLRV9CTElUVEVSX0dFTjksCiAJCQkgICAgICAgRk9SQ0VXQUtFX0FDS19CTElUVEVSX0dFTjkpOworCiAJCWZvciAoaSA9IDA7IGkgPCBJOTE1X01BWF9WQ1M7IGkrKykgewogCQkJaWYgKCFIQVNfRU5HSU5FKGk5MTUsIF9WQ1MoaSkpKQogCQkJCWNvbnRpbnVlOwpAQCAtMTM3NCw4ICsxNDcwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfdW5jb3JlX2Z3X2RvbWFpbnNfaW5pdChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiAJCQkJICAgICAgIEZPUkNFV0FLRV9BQ0tfTUVESUFfVkVCT1hfR0VOMTEoaSkpOwogCQl9CiAJfSBlbHNlIGlmIChJU19HRU5fUkFOR0UoaTkxNSwgOSwgMTApKSB7Ci0JCXVuY29yZS0+ZnVuY3MuZm9yY2Vfd2FrZV9nZXQgPQotCQkJZndfZG9tYWluc19nZXRfd2l0aF9mYWxsYmFjazsKKwkJdW5jb3JlLT5mdW5jcy5mb3JjZV93YWtlX2dldCA9IGZ3X2RvbWFpbnNfZ2V0X3dpdGhfZmFsbGJhY2s7CiAJCXVuY29yZS0+ZnVuY3MuZm9yY2Vfd2FrZV9wdXQgPSBmd19kb21haW5zX3B1dDsKIAkJZndfZG9tYWluX2luaXQodW5jb3JlLCBGV19ET01BSU5fSURfUkVOREVSLAogCQkJICAgICAgIEZPUkNFV0FLRV9SRU5ERVJfR0VOOSwKQEAgLTE0MjQsOCArMTUxOSwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF91bmNvcmVfZndfZG9tYWluc19pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKIAkJX19yYXdfdW5jb3JlX3dyaXRlMzIodW5jb3JlLCBGT1JDRVdBS0UsIDApOwogCQlfX3Jhd19wb3N0aW5nX3JlYWQodW5jb3JlLCBFQ09CVVMpOwogCi0JCWZ3X2RvbWFpbl9pbml0KHVuY29yZSwgRldfRE9NQUlOX0lEX1JFTkRFUiwKLQkJCSAgICAgICBGT1JDRVdBS0VfTVQsIEZPUkNFV0FLRV9NVF9BQ0spOworCQlyZXQgPSBfX2Z3X2RvbWFpbl9pbml0KHVuY29yZSwgRldfRE9NQUlOX0lEX1JFTkRFUiwKKwkJCQkgICAgICAgRk9SQ0VXQUtFX01ULCBGT1JDRVdBS0VfTVRfQUNLKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OwogCiAJCXNwaW5fbG9ja19pcnEoJnVuY29yZS0+bG9jayk7CiAJCWZ3X2RvbWFpbnNfZ2V0X3dpdGhfdGhyZWFkX3N0YXR1cyh1bmNvcmUsIEZPUkNFV0FLRV9SRU5ERVIpOwpAQCAtMTQzNiw2ICsxNTMzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfdW5jb3JlX2Z3X2RvbWFpbnNfaW5pdChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiAJCWlmICghKGVjb2J1cyAmIEZPUkNFV0FLRV9NVF9FTkFCTEUpKSB7CiAJCQlEUk1fSU5GTygiTm8gTVQgZm9yY2V3YWtlIGF2YWlsYWJsZSBvbiBJdnlicmlkZ2UsIHRoaXMgY2FuIHJlc3VsdCBpbiBpc3N1ZXNcbiIpOwogCQkJRFJNX0lORk8oIndoZW4gdXNpbmcgdmJsYW5rLXN5bmNlZCBwYXJ0aWFsIHNjcmVlbiB1cGRhdGVzLlxuIik7CisJCQlmd19kb21haW5fZmluaSh1bmNvcmUsIEZXX0RPTUFJTl9JRF9SRU5ERVIpOwogCQkJZndfZG9tYWluX2luaXQodW5jb3JlLCBGV19ET01BSU5fSURfUkVOREVSLAogCQkJCSAgICAgICBGT1JDRVdBS0UsIEZPUkNFV0FLRV9BQ0spOwogCQl9CkBAIC0xNDQ3LDggKzE1NDUsMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfdW5jb3JlX2Z3X2RvbWFpbnNfaW5pdChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiAJCQkgICAgICAgRk9SQ0VXQUtFLCBGT1JDRVdBS0VfQUNLKTsKIAl9CiAKKyN1bmRlZiBmd19kb21haW5faW5pdAorCiAJLyogQWxsIGZ1dHVyZSBwbGF0Zm9ybXMgYXJlIGV4cGVjdGVkIHRvIHJlcXVpcmUgY29tcGxleCBwb3dlciBnYXRpbmcgKi8KLQlXQVJOX09OKHVuY29yZS0+ZndfZG9tYWlucyA9PSAwKTsKKwlXQVJOX09OKCFyZXQgJiYgdW5jb3JlLT5md19kb21haW5zID09IDApOworCitvdXQ6CisJaWYgKHJldCkKKwkJaW50ZWxfdW5jb3JlX2Z3X2RvbWFpbnNfZmluaSh1bmNvcmUpOworCisJcmV0dXJuIHJldDsKIH0KIAogI2RlZmluZSBBU1NJR05fRldfRE9NQUlOU19UQUJMRSh1bmNvcmUsIGQpIFwKQEAgLTE0OTMsNyArMTU5OSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKIAogc3RhdGljIGludCB1bmNvcmVfbW1pb19zZXR1cChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB1bmNvcmVfdG9faTkxNSh1bmNvcmUpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdW5jb3JlLT5pOTE1OwogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gaTkxNS0+ZHJtLnBkZXY7CiAJaW50IG1taW9fYmFyOwogCWludCBtbWlvX3NpemU7CkBAIC0xNTIzLDQ5ICsxNjI5LDQ2IEBAIHN0YXRpYyBpbnQgdW5jb3JlX21taW9fc2V0dXAoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogCiBzdGF0aWMgdm9pZCB1bmNvcmVfbW1pb19jbGVhbnVwKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHVuY29yZV90b19pOTE1KHVuY29yZSk7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBpOTE1LT5kcm0ucGRldjsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHVuY29yZS0+aTkxNS0+ZHJtLnBkZXY7CiAKIAlwY2lfaW91bm1hcChwZGV2LCB1bmNvcmUtPnJlZ3MpOwogfQogCi12b2lkIGludGVsX3VuY29yZV9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKK3ZvaWQgaW50ZWxfdW5jb3JlX2luaXRfZWFybHkoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAorCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlzcGluX2xvY2tfaW5pdCgmdW5jb3JlLT5sb2NrKTsKKwl1bmNvcmUtPmk5MTUgPSBpOTE1OworCXVuY29yZS0+cnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07CisJdW5jb3JlLT5kZWJ1ZyA9ICZpOTE1LT5tbWlvX2RlYnVnOwogfQogCi1pbnQgaW50ZWxfdW5jb3JlX2luaXRfbW1pbyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCitzdGF0aWMgdm9pZCB1bmNvcmVfcmF3X2luaXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdW5jb3JlX3RvX2k5MTUodW5jb3JlKTsKKwlHRU1fQlVHX09OKGludGVsX3VuY29yZV9oYXNfZm9yY2V3YWtlKHVuY29yZSkpOworCisJaWYgKElTX0dFTih1bmNvcmUtPmk5MTUsIDUpKSB7CisJCUFTU0lHTl9SQVdfV1JJVEVfTU1JT19WRlVOQ1ModW5jb3JlLCBnZW41KTsKKwkJQVNTSUdOX1JBV19SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgZ2VuNSk7CisJfSBlbHNlIHsKKwkJQVNTSUdOX1JBV19XUklURV9NTUlPX1ZGVU5DUyh1bmNvcmUsIGdlbjIpOworCQlBU1NJR05fUkFXX1JFQURfTU1JT19WRlVOQ1ModW5jb3JlLCBnZW4yKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgdW5jb3JlX2ZvcmNld2FrZV9pbml0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHVuY29yZS0+aTkxNTsKIAlpbnQgcmV0OwogCi0JcmV0ID0gdW5jb3JlX21taW9fc2V0dXAodW5jb3JlKTsKKwlHRU1fQlVHX09OKCFpbnRlbF91bmNvcmVfaGFzX2ZvcmNld2FrZSh1bmNvcmUpKTsKKworCXJldCA9IGludGVsX3VuY29yZV9md19kb21haW5zX2luaXQodW5jb3JlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OworCWZvcmNld2FrZV9lYXJseV9zYW5pdGl6ZSh1bmNvcmUsIDApOwogCi0JaTkxNV9jaGVja192Z3B1KGk5MTUpOwotCi0JaWYgKElOVEVMX0dFTihpOTE1KSA+IDUgJiYgIWludGVsX3ZncHVfYWN0aXZlKGk5MTUpKQotCQl1bmNvcmUtPmZsYWdzIHw9IFVOQ09SRV9IQVNfRk9SQ0VXQUtFOwotCi0JaW50ZWxfdW5jb3JlX2Z3X2RvbWFpbnNfaW5pdCh1bmNvcmUpOwotCV9faW50ZWxfdW5jb3JlX2Vhcmx5X3Nhbml0aXplKHVuY29yZSwgMCk7Ci0KLQl1bmNvcmUtPnVuY2xhaW1lZF9tbWlvX2NoZWNrID0gMTsKLQl1bmNvcmUtPnBtaWNfYnVzX2FjY2Vzc19uYi5ub3RpZmllcl9jYWxsID0KLQkJaTkxNV9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXI7Ci0KLQl1bmNvcmUtPnJwbSA9ICZpOTE1LT5ydW50aW1lX3BtOwotCi0JaWYgKCFpbnRlbF91bmNvcmVfaGFzX2ZvcmNld2FrZSh1bmNvcmUpKSB7Ci0JCWlmIChJU19HRU4oaTkxNSwgNSkpIHsKLQkJCUFTU0lHTl9XUklURV9NTUlPX1ZGVU5DUyh1bmNvcmUsIGdlbjUpOwotCQkJQVNTSUdOX1JFQURfTU1JT19WRlVOQ1ModW5jb3JlLCBnZW41KTsKLQkJfSBlbHNlIHsKLQkJCUFTU0lHTl9XUklURV9NTUlPX1ZGVU5DUyh1bmNvcmUsIGdlbjIpOwotCQkJQVNTSUdOX1JFQURfTU1JT19WRlVOQ1ModW5jb3JlLCBnZW4yKTsKLQkJfQotCX0gZWxzZSBpZiAoSVNfR0VOX1JBTkdFKGk5MTUsIDYsIDcpKSB7CisJaWYgKElTX0dFTl9SQU5HRShpOTE1LCA2LCA3KSkgewogCQlBU1NJR05fV1JJVEVfTU1JT19WRlVOQ1ModW5jb3JlLCBnZW42KTsKIAogCQlpZiAoSVNfVkFMTEVZVklFVyhpOTE1KSkgewpAQCAtMTU3OSw3ICsxNjgyLDYgQEAgaW50IGludGVsX3VuY29yZV9pbml0X21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogCQkJQVNTSUdOX0ZXX0RPTUFJTlNfVEFCTEUodW5jb3JlLCBfX2Nodl9md19yYW5nZXMpOwogCQkJQVNTSUdOX1dSSVRFX01NSU9fVkZVTkNTKHVuY29yZSwgZnd0YWJsZSk7CiAJCQlBU1NJR05fUkVBRF9NTUlPX1ZGVU5DUyh1bmNvcmUsIGZ3dGFibGUpOwotCiAJCX0gZWxzZSB7CiAJCQlBU1NJR05fV1JJVEVfTU1JT19WRlVOQ1ModW5jb3JlLCBnZW44KTsKIAkJCUFTU0lHTl9SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgZ2VuNik7CkBAIC0xNTk0LDYgKzE2OTYsMzggQEAgaW50IGludGVsX3VuY29yZV9pbml0X21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogCQlBU1NJR05fUkVBRF9NTUlPX1ZGVU5DUyh1bmNvcmUsIGdlbjExX2Z3dGFibGUpOwogCX0KIAorCXVuY29yZS0+cG1pY19idXNfYWNjZXNzX25iLm5vdGlmaWVyX2NhbGwgPSBpOTE1X3BtaWNfYnVzX2FjY2Vzc19ub3RpZmllcjsKKwlpb3NmX21iaV9yZWdpc3Rlcl9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXIoJnVuY29yZS0+cG1pY19idXNfYWNjZXNzX25iKTsKKworCXJldHVybiAwOworfQorCitpbnQgaW50ZWxfdW5jb3JlX2luaXRfbW1pbyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB1bmNvcmUtPmk5MTU7CisJaW50IHJldDsKKworCXJldCA9IHVuY29yZV9tbWlvX3NldHVwKHVuY29yZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWlmIChJTlRFTF9HRU4oaTkxNSkgPiA1ICYmICFpbnRlbF92Z3B1X2FjdGl2ZShpOTE1KSkKKwkJdW5jb3JlLT5mbGFncyB8PSBVTkNPUkVfSEFTX0ZPUkNFV0FLRTsKKworCWlmICghaW50ZWxfdW5jb3JlX2hhc19mb3JjZXdha2UodW5jb3JlKSkgeworCQl1bmNvcmVfcmF3X2luaXQodW5jb3JlKTsKKwl9IGVsc2UgeworCQlyZXQgPSB1bmNvcmVfZm9yY2V3YWtlX2luaXQodW5jb3JlKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0X21taW9fY2xlYW51cDsKKwl9CisKKwkvKiBtYWtlIHN1cmUgZncgZnVuY3MgYXJlIHNldCBpZiBhbmQgb25seSBpZiB3ZSBoYXZlIGZ3Ki8KKwlHRU1fQlVHX09OKGludGVsX3VuY29yZV9oYXNfZm9yY2V3YWtlKHVuY29yZSkgIT0gISF1bmNvcmUtPmZ1bmNzLmZvcmNlX3dha2VfZ2V0KTsKKwlHRU1fQlVHX09OKGludGVsX3VuY29yZV9oYXNfZm9yY2V3YWtlKHVuY29yZSkgIT0gISF1bmNvcmUtPmZ1bmNzLmZvcmNlX3dha2VfcHV0KTsKKwlHRU1fQlVHX09OKGludGVsX3VuY29yZV9oYXNfZm9yY2V3YWtlKHVuY29yZSkgIT0gISF1bmNvcmUtPmZ1bmNzLnJlYWRfZndfZG9tYWlucyk7CisJR0VNX0JVR19PTihpbnRlbF91bmNvcmVfaGFzX2ZvcmNld2FrZSh1bmNvcmUpICE9ICEhdW5jb3JlLT5mdW5jcy53cml0ZV9md19kb21haW5zKTsKKwogCWlmIChIQVNfRlBHQV9EQkdfVU5DTEFJTUVEKGk5MTUpKQogCQl1bmNvcmUtPmZsYWdzIHw9IFVOQ09SRV9IQVNfRlBHQV9EQkdfVU5DTEFJTUVEOwogCkBAIC0xNjAzLDkgKzE3MzcsMTYgQEAgaW50IGludGVsX3VuY29yZV9pbml0X21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogCWlmIChJU19HRU5fUkFOR0UoaTkxNSwgNiwgNykpCiAJCXVuY29yZS0+ZmxhZ3MgfD0gVU5DT1JFX0hBU19GSUZPOwogCi0JaW9zZl9tYmlfcmVnaXN0ZXJfcG1pY19idXNfYWNjZXNzX25vdGlmaWVyKCZ1bmNvcmUtPnBtaWNfYnVzX2FjY2Vzc19uYik7CisJLyogY2xlYXIgb3V0IHVuY2xhaW1lZCByZWcgZGV0ZWN0aW9uIGJpdCAqLworCWlmIChpbnRlbF91bmNvcmVfdW5jbGFpbWVkX21taW8odW5jb3JlKSkKKwkJRFJNX0RFQlVHKCJ1bmNsYWltZWQgbW1pbyBkZXRlY3RlZCBvbiB1bmNvcmUgaW5pdCwgY2xlYXJpbmdcbiIpOwogCiAJcmV0dXJuIDA7CisKK291dF9tbWlvX2NsZWFudXA6CisJdW5jb3JlX21taW9fY2xlYW51cCh1bmNvcmUpOworCisJcmV0dXJuIHJldDsKIH0KIAogLyoKQEAgLTE2MTUsNDUgKzE3NTYsNDYgQEAgaW50IGludGVsX3VuY29yZV9pbml0X21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogICovCiB2b2lkIGludGVsX3VuY29yZV9wcnVuZV9tbWlvX2RvbWFpbnMoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdW5jb3JlX3RvX2k5MTUodW5jb3JlKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHVuY29yZS0+aTkxNTsKKwllbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2RvbWFpbnMgPSB1bmNvcmUtPmZ3X2RvbWFpbnM7CisJZW51bSBmb3JjZXdha2VfZG9tYWluX2lkIGRvbWFpbl9pZDsKKwlpbnQgaTsKIAotCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpIHsKLQkJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zID0gdW5jb3JlLT5md19kb21haW5zOwotCQllbnVtIGZvcmNld2FrZV9kb21haW5faWQgZG9tYWluX2lkOwotCQlpbnQgaTsKKwlpZiAoIWludGVsX3VuY29yZV9oYXNfZm9yY2V3YWtlKHVuY29yZSkgfHwgSU5URUxfR0VOKGk5MTUpIDwgMTEpCisJCXJldHVybjsKIAotCQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9NQVhfVkNTOyBpKyspIHsKLQkJCWRvbWFpbl9pZCA9IEZXX0RPTUFJTl9JRF9NRURJQV9WREJPWDAgKyBpOworCWZvciAoaSA9IDA7IGkgPCBJOTE1X01BWF9WQ1M7IGkrKykgeworCQlkb21haW5faWQgPSBGV19ET01BSU5fSURfTUVESUFfVkRCT1gwICsgaTsKIAotCQkJaWYgKEhBU19FTkdJTkUoaTkxNSwgX1ZDUyhpKSkpCi0JCQkJY29udGludWU7CisJCWlmIChIQVNfRU5HSU5FKGk5MTUsIF9WQ1MoaSkpKQorCQkJY29udGludWU7CiAKLQkJCWlmIChmd19kb21haW5zICYgQklUKGRvbWFpbl9pZCkpCi0JCQkJZndfZG9tYWluX2ZpbmkodW5jb3JlLCBkb21haW5faWQpOwotCQl9CisJCWlmIChmd19kb21haW5zICYgQklUKGRvbWFpbl9pZCkpCisJCQlmd19kb21haW5fZmluaSh1bmNvcmUsIGRvbWFpbl9pZCk7CisJfQogCi0JCWZvciAoaSA9IDA7IGkgPCBJOTE1X01BWF9WRUNTOyBpKyspIHsKLQkJCWRvbWFpbl9pZCA9IEZXX0RPTUFJTl9JRF9NRURJQV9WRUJPWDAgKyBpOworCWZvciAoaSA9IDA7IGkgPCBJOTE1X01BWF9WRUNTOyBpKyspIHsKKwkJZG9tYWluX2lkID0gRldfRE9NQUlOX0lEX01FRElBX1ZFQk9YMCArIGk7CiAKLQkJCWlmIChIQVNfRU5HSU5FKGk5MTUsIF9WRUNTKGkpKSkKLQkJCQljb250aW51ZTsKKwkJaWYgKEhBU19FTkdJTkUoaTkxNSwgX1ZFQ1MoaSkpKQorCQkJY29udGludWU7CiAKLQkJCWlmIChmd19kb21haW5zICYgQklUKGRvbWFpbl9pZCkpCi0JCQkJZndfZG9tYWluX2ZpbmkodW5jb3JlLCBkb21haW5faWQpOwotCQl9CisJCWlmIChmd19kb21haW5zICYgQklUKGRvbWFpbl9pZCkpCisJCQlmd19kb21haW5fZmluaSh1bmNvcmUsIGRvbWFpbl9pZCk7CiAJfQogfQogCiB2b2lkIGludGVsX3VuY29yZV9maW5pX21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogewotCS8qIFBhcmFub2lhOiBtYWtlIHN1cmUgd2UgaGF2ZSBkaXNhYmxlZCBldmVyeXRoaW5nIGJlZm9yZSB3ZSBleGl0LiAqLwotCWludGVsX3VuY29yZV9zYW5pdGl6ZSh1bmNvcmVfdG9faTkxNSh1bmNvcmUpKTsKKwlpZiAoaW50ZWxfdW5jb3JlX2hhc19mb3JjZXdha2UodW5jb3JlKSkgeworCQlpb3NmX21iaV9wdW5pdF9hY3F1aXJlKCk7CisJCWlvc2ZfbWJpX3VucmVnaXN0ZXJfcG1pY19idXNfYWNjZXNzX25vdGlmaWVyX3VubG9ja2VkKAorCQkJJnVuY29yZS0+cG1pY19idXNfYWNjZXNzX25iKTsKKwkJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9yZXNldCh1bmNvcmUpOworCQlpbnRlbF91bmNvcmVfZndfZG9tYWluc19maW5pKHVuY29yZSk7CisJCWlvc2ZfbWJpX3B1bml0X3JlbGVhc2UoKTsKKwl9CiAKLQlpb3NmX21iaV9wdW5pdF9hY3F1aXJlKCk7Ci0JaW9zZl9tYmlfdW5yZWdpc3Rlcl9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXJfdW5sb2NrZWQoCi0JCSZ1bmNvcmUtPnBtaWNfYnVzX2FjY2Vzc19uYik7Ci0JaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9yZXNldCh1bmNvcmUpOwotCWlvc2ZfbWJpX3B1bml0X3JlbGVhc2UoKTsKIAl1bmNvcmVfbW1pb19jbGVhbnVwKHVuY29yZSk7CiB9CiAKQEAgLTE2NjUsNyArMTgwNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnX3doaXRlbGlzdCB7CiB9IHJlZ19yZWFkX3doaXRlbGlzdFtdID0geyB7CiAJLm9mZnNldF9sZHcgPSBSSU5HX1RJTUVTVEFNUChSRU5ERVJfUklOR19CQVNFKSwKIAkub2Zmc2V0X3VkdyA9IFJJTkdfVElNRVNUQU1QX1VEVyhSRU5ERVJfUklOR19CQVNFKSwKLQkuZ2VuX21hc2sgPSBJTlRFTF9HRU5fTUFTSyg0LCAxMSksCisJLmdlbl9tYXNrID0gSU5URUxfR0VOX01BU0soNCwgMTIpLAogCS5zaXplID0gOAogfSB9OwogCkBAIC0xNzQ5LDcgKzE4OTEsNyBAQCBpbnQgaTkxNV9yZWdfcmVhZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogICogd2lzaCB0byB3YWl0IHdpdGhvdXQgaG9sZGluZyBmb3JjZXdha2UgZm9yIHRoZSBkdXJhdGlvbiAoaS5lLiB5b3UgZXhwZWN0CiAgKiB0aGUgd2FpdCB0byBiZSBzbG93KS4KICAqCi0gKiBSZXR1cm5zIDAgaWYgdGhlIHJlZ2lzdGVyIG1hdGNoZXMgdGhlIGRlc2lyZWQgY29uZGl0aW9uLCBvciAtRVRJTUVPVVQuCisgKiBSZXR1cm46IDAgaWYgdGhlIHJlZ2lzdGVyIG1hdGNoZXMgdGhlIGRlc2lyZWQgY29uZGl0aW9uLCBvciAtRVRJTUVET1VULgogICovCiBpbnQgX19pbnRlbF93YWl0X2Zvcl9yZWdpc3Rlcl9mdyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAJCQkJIGk5MTVfcmVnX3QgcmVnLApAQCAtMTc5Nyw3ICsxOTM5LDcgQEAgaW50IF9faW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXJfZncoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAogICoKICAqIE90aGVyd2lzZSwgdGhlIHdhaXQgd2lsbCB0aW1lb3V0IGFmdGVyIEB0aW1lb3V0X21zIG1pbGxpc2Vjb25kcy4KICAqCi0gKiBSZXR1cm5zIDAgaWYgdGhlIHJlZ2lzdGVyIG1hdGNoZXMgdGhlIGRlc2lyZWQgY29uZGl0aW9uLCBvciAtRVRJTUVPVVQuCisgKiBSZXR1cm46IDAgaWYgdGhlIHJlZ2lzdGVyIG1hdGNoZXMgdGhlIGRlc2lyZWQgY29uZGl0aW9uLCBvciAtRVRJTUVET1VULgogICovCiBpbnQgX19pbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAJCQkgICAgICBpOTE1X3JlZ190IHJlZywKQEAgLTE4NDEsNyArMTk4MywxMyBAQCBpbnQgX19pbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAKIGJvb2wgaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKIHsKLQlyZXR1cm4gY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKHVuY29yZSk7CisJYm9vbCByZXQ7CisKKwlzcGluX2xvY2tfaXJxKCZ1bmNvcmUtPmRlYnVnLT5sb2NrKTsKKwlyZXQgPSBjaGVja19mb3JfdW5jbGFpbWVkX21taW8odW5jb3JlKTsKKwlzcGluX3VubG9ja19pcnEoJnVuY29yZS0+ZGVidWctPmxvY2spOworCisJcmV0dXJuIHJldDsKIH0KIAogYm9vbApAQCAtMTg0OSw4NCArMTk5NywyOCBAQCBpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlvbihzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB7CiAJYm9vbCByZXQgPSBmYWxzZTsKIAotCXNwaW5fbG9ja19pcnEoJnVuY29yZS0+bG9jayk7CisJc3Bpbl9sb2NrX2lycSgmdW5jb3JlLT5kZWJ1Zy0+bG9jayk7CiAKLQlpZiAodW5saWtlbHkodW5jb3JlLT51bmNsYWltZWRfbW1pb19jaGVjayA8PSAwKSkKKwlpZiAodW5saWtlbHkodW5jb3JlLT5kZWJ1Zy0+dW5jbGFpbWVkX21taW9fY2hlY2sgPD0gMCkpCiAJCWdvdG8gb3V0OwogCi0JaWYgKHVubGlrZWx5KGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyh1bmNvcmUpKSkgeworCWlmICh1bmxpa2VseShjaGVja19mb3JfdW5jbGFpbWVkX21taW8odW5jb3JlKSkpIHsKIAkJaWYgKCFpOTE1X21vZHBhcmFtcy5tbWlvX2RlYnVnKSB7CiAJCQlEUk1fREVCVUcoIlVuY2xhaW1lZCByZWdpc3RlciBkZXRlY3RlZCwgIgogCQkJCSAgImVuYWJsaW5nIG9uZXNob3QgdW5jbGFpbWVkIHJlZ2lzdGVyIHJlcG9ydGluZy4gIgogCQkJCSAgIlBsZWFzZSB1c2UgaTkxNS5tbWlvX2RlYnVnPU4gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iKTsKIAkJCWk5MTVfbW9kcGFyYW1zLm1taW9fZGVidWcrKzsKIAkJfQotCQl1bmNvcmUtPnVuY2xhaW1lZF9tbWlvX2NoZWNrLS07CisJCXVuY29yZS0+ZGVidWctPnVuY2xhaW1lZF9tbWlvX2NoZWNrLS07CiAJCXJldCA9IHRydWU7CiAJfQogCiBvdXQ6Ci0Jc3Bpbl91bmxvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOworCXNwaW5fdW5sb2NrX2lycSgmdW5jb3JlLT5kZWJ1Zy0+bG9jayk7CiAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgZW51bSBmb3JjZXdha2VfZG9tYWlucwotaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9mb3JfcmVhZChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCi0JCQkJaTkxNV9yZWdfdCByZWcpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB1bmNvcmVfdG9faTkxNSh1bmNvcmUpOwotCXUzMiBvZmZzZXQgPSBpOTE1X21taW9fcmVnX29mZnNldChyZWcpOwotCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluczsKLQotCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpIHsKLQkJZndfZG9tYWlucyA9IF9fZ2VuMTFfZnd0YWJsZV9yZWdfcmVhZF9md19kb21haW5zKHVuY29yZSwgb2Zmc2V0KTsKLQl9IGVsc2UgaWYgKEhBU19GV1RBQkxFKGk5MTUpKSB7Ci0JCWZ3X2RvbWFpbnMgPSBfX2Z3dGFibGVfcmVnX3JlYWRfZndfZG9tYWlucyh1bmNvcmUsIG9mZnNldCk7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPj0gNikgewotCQlmd19kb21haW5zID0gX19nZW42X3JlZ19yZWFkX2Z3X2RvbWFpbnModW5jb3JlLCBvZmZzZXQpOwotCX0gZWxzZSB7Ci0JCS8qIG9uIGRldmljZXMgd2l0aCBGVyB3ZSBleHBlY3QgdG8gaGl0IG9uZSBvZiB0aGUgYWJvdmUgY2FzZXMgKi8KLQkJaWYgKGludGVsX3VuY29yZV9oYXNfZm9yY2V3YWtlKHVuY29yZSkpCi0JCQlNSVNTSU5HX0NBU0UoSU5URUxfR0VOKGk5MTUpKTsKLQotCQlmd19kb21haW5zID0gMDsKLQl9Ci0KLQlXQVJOX09OKGZ3X2RvbWFpbnMgJiB+dW5jb3JlLT5md19kb21haW5zKTsKLQotCXJldHVybiBmd19kb21haW5zOwotfQotCi1zdGF0aWMgZW51bSBmb3JjZXdha2VfZG9tYWlucwotaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9mb3Jfd3JpdGUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAotCQkJCSBpOTE1X3JlZ190IHJlZykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHVuY29yZV90b19pOTE1KHVuY29yZSk7Ci0JdTMyIG9mZnNldCA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJlZyk7Ci0JZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zOwotCi0JaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMSkgewotCQlmd19kb21haW5zID0gX19nZW4xMV9md3RhYmxlX3JlZ193cml0ZV9md19kb21haW5zKHVuY29yZSwgb2Zmc2V0KTsKLQl9IGVsc2UgaWYgKEhBU19GV1RBQkxFKGk5MTUpICYmICFJU19WQUxMRVlWSUVXKGk5MTUpKSB7Ci0JCWZ3X2RvbWFpbnMgPSBfX2Z3dGFibGVfcmVnX3dyaXRlX2Z3X2RvbWFpbnModW5jb3JlLCBvZmZzZXQpOwotCX0gZWxzZSBpZiAoSVNfR0VOKGk5MTUsIDgpKSB7Ci0JCWZ3X2RvbWFpbnMgPSBfX2dlbjhfcmVnX3dyaXRlX2Z3X2RvbWFpbnModW5jb3JlLCBvZmZzZXQpOwotCX0gZWxzZSBpZiAoSVNfR0VOX1JBTkdFKGk5MTUsIDYsIDcpKSB7Ci0JCWZ3X2RvbWFpbnMgPSBGT1JDRVdBS0VfUkVOREVSOwotCX0gZWxzZSB7Ci0JCS8qIG9uIGRldmljZXMgd2l0aCBGVyB3ZSBleHBlY3QgdG8gaGl0IG9uZSBvZiB0aGUgYWJvdmUgY2FzZXMgKi8KLQkJaWYgKGludGVsX3VuY29yZV9oYXNfZm9yY2V3YWtlKHVuY29yZSkpCi0JCQlNSVNTSU5HX0NBU0UoSU5URUxfR0VOKGk5MTUpKTsKLQotCQlmd19kb21haW5zID0gMDsKLQl9Ci0KLQlXQVJOX09OKGZ3X2RvbWFpbnMgJiB+dW5jb3JlLT5md19kb21haW5zKTsKLQotCXJldHVybiBmd19kb21haW5zOwotfQotCiAvKioKICAqIGludGVsX3VuY29yZV9mb3JjZXdha2VfZm9yX3JlZyAtIHdoaWNoIGZvcmNld2FrZSBkb21haW5zIGFyZSBuZWVkZWQgdG8gYWNjZXNzCiAgKiAJCQkJICAgIGEgcmVnaXN0ZXIKQEAgLTE5NTMsMTAgKzIwNDUsMTIgQEAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9mb3JfcmVnKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIAkJcmV0dXJuIDA7CiAKIAlpZiAob3AgJiBGV19SRUdfUkVBRCkKLQkJZndfZG9tYWlucyA9IGludGVsX3VuY29yZV9mb3JjZXdha2VfZm9yX3JlYWQodW5jb3JlLCByZWcpOworCQlmd19kb21haW5zID0gdW5jb3JlLT5mdW5jcy5yZWFkX2Z3X2RvbWFpbnModW5jb3JlLCByZWcpOwogCiAJaWYgKG9wICYgRldfUkVHX1dSSVRFKQotCQlmd19kb21haW5zIHw9IGludGVsX3VuY29yZV9mb3JjZXdha2VfZm9yX3dyaXRlKHVuY29yZSwgcmVnKTsKKwkJZndfZG9tYWlucyB8PSB1bmNvcmUtPmZ1bmNzLndyaXRlX2Z3X2RvbWFpbnModW5jb3JlLCByZWcpOworCisJV0FSTl9PTihmd19kb21haW5zICYgfnVuY29yZS0+ZndfZG9tYWlucyk7CiAKIAlyZXR1cm4gZndfZG9tYWluczsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmgKaW5kZXggODA0YTBmYS4uNDE0ZmMyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmgKQEAgLTM2LDYgKzM2LDEzIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogc3RydWN0IGludGVsX3J1bnRpbWVfcG07CiBzdHJ1Y3QgaW50ZWxfdW5jb3JlOwogCitzdHJ1Y3QgaW50ZWxfdW5jb3JlX21taW9fZGVidWcgeworCXNwaW5sb2NrX3QgbG9jazsgLyoqIGxvY2sgaXMgYWxzbyB0YWtlbiBpbiBpcnEgY29udGV4dHMuICovCisJaW50IHVuY2xhaW1lZF9tbWlvX2NoZWNrOworCWludCBzYXZlZF9tbWlvX2NoZWNrOworCXUzMiBzdXNwZW5kX2NvdW50OworfTsKKwogZW51bSBmb3JjZXdha2VfZG9tYWluX2lkIHsKIAlGV19ET01BSU5fSURfUkVOREVSID0gMCwKIAlGV19ET01BSU5fSURfQkxJVFRFUiwKQEAgLTcwLDYgKzc3LDExIEBAIHN0cnVjdCBpbnRlbF91bmNvcmVfZnVuY3MgewogCXZvaWQgKCpmb3JjZV93YWtlX3B1dCkoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAogCQkJICAgICAgIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZG9tYWlucyk7CiAKKwllbnVtIGZvcmNld2FrZV9kb21haW5zICgqcmVhZF9md19kb21haW5zKShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCisJCQkJCQkgIGk5MTVfcmVnX3Qgcik7CisJZW51bSBmb3JjZXdha2VfZG9tYWlucyAoKndyaXRlX2Z3X2RvbWFpbnMpKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKKwkJCQkJCSAgIGk5MTVfcmVnX3Qgcik7CisKIAl1OCAoKm1taW9fcmVhZGIpKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIAkJCSBpOTE1X3JlZ190IHIsIGJvb2wgdHJhY2UpOwogCXUxNiAoKm1taW9fcmVhZHcpKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKQEAgLTk3LDYgKzEwOSw3IEBAIHN0cnVjdCBpbnRlbF9mb3JjZXdha2VfcmFuZ2Ugewogc3RydWN0IGludGVsX3VuY29yZSB7CiAJdm9pZCBfX2lvbWVtICpyZWdzOwogCisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CiAJc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbTsKIAogCXNwaW5sb2NrX3QgbG9jazsgLyoqIGxvY2sgaXMgYWxzbyB0YWtlbiBpbiBpcnEgY29udGV4dHMuICovCkBAIC0xMTcsOSArMTMwLDExIEBAIHN0cnVjdCBpbnRlbF91bmNvcmUgewogCiAJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zOwogCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluc19hY3RpdmU7CisJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zX3RpbWVyOwogCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluc19zYXZlZDsgLyogdXNlciBkb21haW5zIHNhdmVkIGZvciBTMyAqLwogCiAJc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluIHsKKwkJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlOwogCQllbnVtIGZvcmNld2FrZV9kb21haW5faWQgaWQ7CiAJCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgbWFzazsKIAkJdW5zaWduZWQgaW50IHdha2VfY291bnQ7CkBAIC0xMjcsMzIgKzE0MiwyMSBAQCBzdHJ1Y3QgaW50ZWxfdW5jb3JlIHsKIAkJc3RydWN0IGhydGltZXIgdGltZXI7CiAJCXUzMiBfX2lvbWVtICpyZWdfc2V0OwogCQl1MzIgX19pb21lbSAqcmVnX2FjazsKLQl9IGZ3X2RvbWFpbltGV19ET01BSU5fSURfQ09VTlRdOworCX0gKmZ3X2RvbWFpbltGV19ET01BSU5fSURfQ09VTlRdOwogCi0Jc3RydWN0IHsKLQkJdW5zaWduZWQgaW50IGNvdW50OworCXVuc2lnbmVkIGludCB1c2VyX2ZvcmNld2FrZV9jb3VudDsKIAotCQlpbnQgc2F2ZWRfbW1pb19jaGVjazsKLQkJaW50IHNhdmVkX21taW9fZGVidWc7Ci0JfSB1c2VyX2ZvcmNld2FrZTsKLQotCWludCB1bmNsYWltZWRfbW1pb19jaGVjazsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlX21taW9fZGVidWcgKmRlYnVnOwogfTsKIAogLyogSXRlcmF0ZSBvdmVyIGluaXRpYWxpc2VkIGZ3IGRvbWFpbnMgKi8KICNkZWZpbmUgZm9yX2VhY2hfZndfZG9tYWluX21hc2tlZChkb21haW5fXywgbWFza19fLCB1bmNvcmVfXywgdG1wX18pIFwKLQlmb3IgKHRtcF9fID0gKG1hc2tfXyk7IFwKLQkgICAgIHRtcF9fID8gKGRvbWFpbl9fID0gJih1bmNvcmVfXyktPmZ3X2RvbWFpbltfX21hc2tfbmV4dF9iaXQodG1wX18pXSksIDEgOiAwOykKKwlmb3IgKHRtcF9fID0gKG1hc2tfXyk7IHRtcF9fIDspIFwKKwkJZm9yX2VhY2hfaWYoZG9tYWluX18gPSAodW5jb3JlX18pLT5md19kb21haW5bX19tYXNrX25leHRfYml0KHRtcF9fKV0pCiAKICNkZWZpbmUgZm9yX2VhY2hfZndfZG9tYWluKGRvbWFpbl9fLCB1bmNvcmVfXywgdG1wX18pIFwKIAlmb3JfZWFjaF9md19kb21haW5fbWFza2VkKGRvbWFpbl9fLCAodW5jb3JlX18pLT5md19kb21haW5zLCB1bmNvcmVfXywgdG1wX18pCiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3VuY29yZSAqCi1mb3JjZXdha2VfZG9tYWluX3RvX3VuY29yZShjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihkLCBzdHJ1Y3QgaW50ZWxfdW5jb3JlLCBmd19kb21haW5bZC0+aWRdKTsKLX0KLQogc3RhdGljIGlubGluZSBib29sCiBpbnRlbF91bmNvcmVfaGFzX2ZvcmNld2FrZShjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB7CkBAIC0xNzcsOCArMTgxLDEwIEBAIGludGVsX3VuY29yZV9oYXNfZmlmbyhjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiAJcmV0dXJuIHVuY29yZS0+ZmxhZ3MgJiBVTkNPUkVfSEFTX0ZJRk87CiB9CiAKLXZvaWQgaW50ZWxfdW5jb3JlX3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX3VuY29yZV9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSk7Cit2b2lkCitpbnRlbF91bmNvcmVfbW1pb19kZWJ1Z19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91bmNvcmVfbW1pb19kZWJ1ZyAqbW1pb19kZWJ1Zyk7Cit2b2lkIGludGVsX3VuY29yZV9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKKwkJCSAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogaW50IGludGVsX3VuY29yZV9pbml0X21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKTsKIHZvaWQgaW50ZWxfdW5jb3JlX3BydW5lX21taW9fZG9tYWlucyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpOwogYm9vbCBpbnRlbF91bmNvcmVfdW5jbGFpbWVkX21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKTsKQEAgLTM5MSw2ICszOTcsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIGludGVsX3VuY29yZV9ybXdfZncoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAogCWludGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsIHJlZywgdmFsKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgaW50ZWxfdW5jb3JlX3dyaXRlX2FuZF92ZXJpZnkoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAorCQkJCQkJaTkxNV9yZWdfdCByZWcsIHUzMiB2YWwsCisJCQkJCQl1MzIgbWFzaywgdTMyIGV4cGVjdGVkX3ZhbCkKK3sKKwl1MzIgcmVnX3ZhbDsKKworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIHJlZywgdmFsKTsKKwlyZWdfdmFsID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCByZWcpOworCisJcmV0dXJuIChyZWdfdmFsICYgbWFzaykgIT0gZXhwZWN0ZWRfdmFsID8gLUVJTlZBTCA6IDA7Cit9CisKICNkZWZpbmUgcmF3X3JlZ19yZWFkKGJhc2UsIHJlZykgXAogCXJlYWRsKGJhc2UgKyBpOTE1X21taW9fcmVnX29mZnNldChyZWcpKQogI2RlZmluZSByYXdfcmVnX3dyaXRlKGJhc2UsIHJlZywgdmFsdWUpIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dha2VyZWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dha2VyZWYuYwppbmRleCAzZGI2ZmE2Li44NjhjYzc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93YWtlcmVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5jCkBAIC00LDI1ICs0LDI1IEBACiAgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgogICovCiAKLSNpbmNsdWRlICJpbnRlbF9ydW50aW1lX3BtLmgiCi0jaW5jbHVkZSAiaTkxNV9nZW0uaCIKKyNpbmNsdWRlIDxsaW51eC93YWl0X2JpdC5oPgogCi1zdGF0aWMgdm9pZCBycG1fZ2V0KHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0sIHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKKyNpbmNsdWRlICJpbnRlbF9ydW50aW1lX3BtLmgiCisjaW5jbHVkZSAiaW50ZWxfd2FrZXJlZi5oIgorCitzdGF0aWMgdm9pZCBycG1fZ2V0KHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKIHsKLQl3Zi0+d2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KHJwbSk7CisJd2YtPndha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCh3Zi0+cnBtKTsKIH0KIAotc3RhdGljIHZvaWQgcnBtX3B1dChzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtLCBzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCitzdGF0aWMgdm9pZCBycG1fcHV0KHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKIHsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZiA9IGZldGNoX2FuZF96ZXJvKCZ3Zi0+d2FrZXJlZik7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChycG0sIHdha2VyZWYpOwotCUdFTV9CVUdfT04oIXdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KHdmLT5ycG0sIHdha2VyZWYpOworCUlOVEVMX1dBS0VSRUZfQlVHX09OKCF3YWtlcmVmKTsKIH0KIAotaW50IF9faW50ZWxfd2FrZXJlZl9nZXRfZmlyc3Qoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKLQkJCSAgICAgIHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZiwKLQkJCSAgICAgIGludCAoKmZuKShzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpKQoraW50IF9faW50ZWxfd2FrZXJlZl9nZXRfZmlyc3Qoc3RydWN0IGludGVsX3dha2VyZWYgKndmKQogewogCS8qCiAJICogVHJlYXQgZ2V0L3B1dCBhcyBkaWZmZXJlbnQgc3ViY2xhc3NlcywgYXMgd2UgbWF5IG5lZWQgdG8gcnVuCkBAIC0zNCwxMSArMzQsMTEgQEAgaW50IF9faW50ZWxfd2FrZXJlZl9nZXRfZmlyc3Qoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKIAlpZiAoIWF0b21pY19yZWFkKCZ3Zi0+Y291bnQpKSB7CiAJCWludCBlcnI7CiAKLQkJcnBtX2dldChycG0sIHdmKTsKKwkJcnBtX2dldCh3Zik7CiAKLQkJZXJyID0gZm4od2YpOworCQllcnIgPSB3Zi0+b3BzLT5nZXQod2YpOwogCQlpZiAodW5saWtlbHkoZXJyKSkgewotCQkJcnBtX3B1dChycG0sIHdmKTsKKwkJCXJwbV9wdXQod2YpOwogCQkJbXV0ZXhfdW5sb2NrKCZ3Zi0+bXV0ZXgpOwogCQkJcmV0dXJuIGVycjsKIAkJfQpAQCAtNDgsMzAgKzQ4LDY5IEBAIGludCBfX2ludGVsX3dha2VyZWZfZ2V0X2ZpcnN0KHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0sCiAJYXRvbWljX2luYygmd2YtPmNvdW50KTsKIAltdXRleF91bmxvY2soJndmLT5tdXRleCk7CiAKKwlJTlRFTF9XQUtFUkVGX0JVR19PTihhdG9taWNfcmVhZCgmd2YtPmNvdW50KSA8PSAwKTsKIAlyZXR1cm4gMDsKIH0KIAotaW50IF9faW50ZWxfd2FrZXJlZl9wdXRfbGFzdChzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtLAotCQkJICAgICBzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YsCi0JCQkgICAgIGludCAoKmZuKShzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpKQorc3RhdGljIHZvaWQgX19fX2ludGVsX3dha2VyZWZfcHV0X2xhc3Qoc3RydWN0IGludGVsX3dha2VyZWYgKndmKQogewotCWludCBlcnI7CisJaWYgKCFhdG9taWNfZGVjX2FuZF90ZXN0KCZ3Zi0+Y291bnQpKQorCQlnb3RvIHVubG9jazsKIAotCWVyciA9IGZuKHdmKTsKLQlpZiAobGlrZWx5KCFlcnIpKQotCQlycG1fcHV0KHJwbSwgd2YpOwotCWVsc2UKLQkJYXRvbWljX2luYygmd2YtPmNvdW50KTsKKwkvKiBvcHMtPnB1dCgpIG11c3QgcmVzY2hlZHVsZSBpdHMgb3duIHJlbGVhc2Ugb24gZXJyb3IvZGVmZXJyYWwgKi8KKwlpZiAobGlrZWx5KCF3Zi0+b3BzLT5wdXQod2YpKSkgeworCQlycG1fcHV0KHdmKTsKKwkJd2FrZV91cF92YXIoJndmLT53YWtlcmVmKTsKKwl9CisKK3VubG9jazoKIAltdXRleF91bmxvY2soJndmLT5tdXRleCk7Ci0KLQlyZXR1cm4gZXJyOwogfQogCi12b2lkIF9faW50ZWxfd2FrZXJlZl9pbml0KHN0cnVjdCBpbnRlbF93YWtlcmVmICp3Ziwgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpCit2b2lkIF9faW50ZWxfd2FrZXJlZl9wdXRfbGFzdChzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiB7CisJSU5URUxfV0FLRVJFRl9CVUdfT04od29ya19wZW5kaW5nKCZ3Zi0+d29yaykpOworCisJLyogQXNzdW1lIHdlIGFyZSBub3QgaW4gcHJvY2VzcyBjb250ZXh0IGFuZCBzbyBjYW5ub3Qgc2xlZXAuICovCisJaWYgKHdmLT5vcHMtPmZsYWdzICYgSU5URUxfV0FLRVJFRl9QVVRfQVNZTkMgfHwKKwkgICAgIW11dGV4X3RyeWxvY2soJndmLT5tdXRleCkpIHsKKwkJc2NoZWR1bGVfd29yaygmd2YtPndvcmspOworCQlyZXR1cm47CisJfQorCisJX19fX2ludGVsX3dha2VyZWZfcHV0X2xhc3Qod2YpOworfQorCitzdGF0aWMgdm9pZCBfX2ludGVsX3dha2VyZWZfcHV0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3cmspCit7CisJc3RydWN0IGludGVsX3dha2VyZWYgKndmID0gY29udGFpbmVyX29mKHdyaywgdHlwZW9mKCp3ZiksIHdvcmspOworCisJaWYgKGF0b21pY19hZGRfdW5sZXNzKCZ3Zi0+Y291bnQsIC0xLCAxKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmd2YtPm11dGV4KTsKKwlfX19faW50ZWxfd2FrZXJlZl9wdXRfbGFzdCh3Zik7Cit9CisKK3ZvaWQgX19pbnRlbF93YWtlcmVmX2luaXQoc3RydWN0IGludGVsX3dha2VyZWYgKndmLAorCQkJICBzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtLAorCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfd2FrZXJlZl9vcHMgKm9wcywKKwkJCSAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpCit7CisJd2YtPnJwbSA9IHJwbTsKKwl3Zi0+b3BzID0gb3BzOworCiAJX19tdXRleF9pbml0KCZ3Zi0+bXV0ZXgsICJ3YWtlcmVmIiwga2V5KTsKIAlhdG9taWNfc2V0KCZ3Zi0+Y291bnQsIDApOwogCXdmLT53YWtlcmVmID0gMDsKKworCUlOSVRfV09SSygmd2YtPndvcmssIF9faW50ZWxfd2FrZXJlZl9wdXRfd29yayk7Cit9CisKK2ludCBpbnRlbF93YWtlcmVmX3dhaXRfZm9yX2lkbGUoc3RydWN0IGludGVsX3dha2VyZWYgKndmKQoreworCXJldHVybiB3YWl0X3Zhcl9ldmVudF9raWxsYWJsZSgmd2YtPndha2VyZWYsCisJCQkJICAgICAgICFpbnRlbF93YWtlcmVmX2lzX2FjdGl2ZSh3ZikpOwogfQogCiBzdGF0aWMgdm9pZCB3YWtlcmVmX2F1dG9fdGltZW91dChzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKQEAgLTExNSw3ICsxNTQsNyBAQCB2b2lkIGludGVsX3dha2VyZWZfYXV0byhzdHJ1Y3QgaW50ZWxfd2FrZXJlZl9hdXRvICp3ZiwgdW5zaWduZWQgbG9uZyB0aW1lb3V0KQogCWlmICghcmVmY291bnRfaW5jX25vdF96ZXJvKCZ3Zi0+Y291bnQpKSB7CiAJCXNwaW5fbG9ja19pcnFzYXZlKCZ3Zi0+bG9jaywgZmxhZ3MpOwogCQlpZiAoIXJlZmNvdW50X2luY19ub3RfemVybygmd2YtPmNvdW50KSkgewotCQkJR0VNX0JVR19PTih3Zi0+d2FrZXJlZik7CisJCQlJTlRFTF9XQUtFUkVGX0JVR19PTih3Zi0+d2FrZXJlZik7CiAJCQl3Zi0+d2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZSh3Zi0+cnBtKTsKIAkJCXJlZmNvdW50X3NldCgmd2YtPmNvdW50LCAxKTsKIAkJfQpAQCAtMTM0LDUgKzE3Myw1IEBAIHZvaWQgaW50ZWxfd2FrZXJlZl9hdXRvKHN0cnVjdCBpbnRlbF93YWtlcmVmX2F1dG8gKndmLCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpCiB2b2lkIGludGVsX3dha2VyZWZfYXV0b19maW5pKHN0cnVjdCBpbnRlbF93YWtlcmVmX2F1dG8gKndmKQogewogCWludGVsX3dha2VyZWZfYXV0byh3ZiwgMCk7Ci0JR0VNX0JVR19PTih3Zi0+d2FrZXJlZik7CisJSU5URUxfV0FLRVJFRl9CVUdfT04od2YtPndha2VyZWYpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5oCmluZGV4IDM4Mjc1MzEuLjVmMGM5NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dha2VyZWYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93YWtlcmVmLmgKQEAgLTgsMzUgKzgsNTYgQEAKICNkZWZpbmUgSU5URUxfV0FLRVJFRl9ICiAKICNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9yZWZjb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4L3N0YWNrZGVwb3QuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorCisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUcpCisjZGVmaW5lIElOVEVMX1dBS0VSRUZfQlVHX09OKGV4cHIpIEJVR19PTihleHByKQorI2Vsc2UKKyNkZWZpbmUgSU5URUxfV0FLRVJFRl9CVUdfT04oZXhwcikgQlVJTERfQlVHX09OX0lOVkFMSUQoZXhwcikKKyNlbmRpZgogCiBzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbTsKK3N0cnVjdCBpbnRlbF93YWtlcmVmOwogCiB0eXBlZGVmIGRlcG90X3N0YWNrX2hhbmRsZV90IGludGVsX3dha2VyZWZfdDsKIAorc3RydWN0IGludGVsX3dha2VyZWZfb3BzIHsKKwlpbnQgKCpnZXQpKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3Zik7CisJaW50ICgqcHV0KShzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpOworCisJdW5zaWduZWQgbG9uZyBmbGFnczsKKyNkZWZpbmUgSU5URUxfV0FLRVJFRl9QVVRfQVNZTkMgQklUKDApCit9OworCiBzdHJ1Y3QgaW50ZWxfd2FrZXJlZiB7CiAJYXRvbWljX3QgY291bnQ7CiAJc3RydWN0IG11dGV4IG11dGV4OworCiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisKKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtOworCWNvbnN0IHN0cnVjdCBpbnRlbF93YWtlcmVmX29wcyAqb3BzOworCisJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiB9OwogCiB2b2lkIF9faW50ZWxfd2FrZXJlZl9pbml0KHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZiwKKwkJCSAgc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKKwkJCSAgY29uc3Qgc3RydWN0IGludGVsX3dha2VyZWZfb3BzICpvcHMsCiAJCQkgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KTsKLSNkZWZpbmUgaW50ZWxfd2FrZXJlZl9pbml0KHdmKSBkbyB7CQkJCQlcCisjZGVmaW5lIGludGVsX3dha2VyZWZfaW5pdCh3ZiwgcnBtLCBvcHMpIGRvIHsJCQkJXAogCXN0YXRpYyBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgX19rZXk7CQkJCVwKIAkJCQkJCQkJCVwKLQlfX2ludGVsX3dha2VyZWZfaW5pdCgod2YpLCAmX19rZXkpOwkJCQlcCisJX19pbnRlbF93YWtlcmVmX2luaXQoKHdmKSwgKHJwbSksIChvcHMpLCAmX19rZXkpOwkJXAogfSB3aGlsZSAoMCkKIAotaW50IF9faW50ZWxfd2FrZXJlZl9nZXRfZmlyc3Qoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKLQkJCSAgICAgIHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZiwKLQkJCSAgICAgIGludCAoKmZuKShzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpKTsKLWludCBfX2ludGVsX3dha2VyZWZfcHV0X2xhc3Qoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKLQkJCSAgICAgc3RydWN0IGludGVsX3dha2VyZWYgKndmLAotCQkJICAgICBpbnQgKCpmbikoc3RydWN0IGludGVsX3dha2VyZWYgKndmKSk7CitpbnQgX19pbnRlbF93YWtlcmVmX2dldF9maXJzdChzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpOwordm9pZCBfX2ludGVsX3dha2VyZWZfcHV0X2xhc3Qoc3RydWN0IGludGVsX3dha2VyZWYgKndmKTsKIAogLyoqCiAgKiBpbnRlbF93YWtlcmVmX2dldDogQWNxdWlyZSB0aGUgd2FrZXJlZgpAQCAtNTUsMTIgKzc2LDEwIEBAIGludCBfX2ludGVsX3dha2VyZWZfcHV0X2xhc3Qoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKICAqIGNvZGUgb3RoZXJ3aXNlLgogICovCiBzdGF0aWMgaW5saW5lIGludAotaW50ZWxfd2FrZXJlZl9nZXQoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKLQkJICBzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YsCi0JCSAgaW50ICgqZm4pKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikpCitpbnRlbF93YWtlcmVmX2dldChzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiB7CiAJaWYgKHVubGlrZWx5KCFhdG9taWNfaW5jX25vdF96ZXJvKCZ3Zi0+Y291bnQpKSkKLQkJcmV0dXJuIF9faW50ZWxfd2FrZXJlZl9nZXRfZmlyc3QocnBtLCB3ZiwgZm4pOworCQlyZXR1cm4gX19pbnRlbF93YWtlcmVmX2dldF9maXJzdCh3Zik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTk2LDE1ICsxMTUsMTIgQEAgaW50ZWxfd2FrZXJlZl9nZXRfaWZfYWN0aXZlKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKICAqIFJldHVybnM6IDAgaWYgdGhlIHdha2VyZWYgd2FzIHJlbGVhc2VkIHN1Y2Nlc3NmdWxseSwgb3IgYSBuZWdhdGl2ZSBlcnJvcgogICogY29kZSBvdGhlcndpc2UuCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50Ci1pbnRlbF93YWtlcmVmX3B1dChzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtLAotCQkgIHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZiwKLQkJICBpbnQgKCpmbikoc3RydWN0IGludGVsX3dha2VyZWYgKndmKSkKK3N0YXRpYyBpbmxpbmUgdm9pZAoraW50ZWxfd2FrZXJlZl9wdXQoc3RydWN0IGludGVsX3dha2VyZWYgKndmKQogewotCWlmIChhdG9taWNfZGVjX2FuZF9tdXRleF9sb2NrKCZ3Zi0+Y291bnQsICZ3Zi0+bXV0ZXgpKQotCQlyZXR1cm4gX19pbnRlbF93YWtlcmVmX3B1dF9sYXN0KHJwbSwgd2YsIGZuKTsKLQotCXJldHVybiAwOworCUlOVEVMX1dBS0VSRUZfQlVHX09OKGF0b21pY19yZWFkKCZ3Zi0+Y291bnQpIDw9IDApOworCWlmICh1bmxpa2VseSghYXRvbWljX2FkZF91bmxlc3MoJndmLT5jb3VudCwgLTEsIDEpKSkKKwkJX19pbnRlbF93YWtlcmVmX3B1dF9sYXN0KHdmKTsKIH0KIAogLyoqCkBAIC0xMzYsMTcgKzE1Miw0MSBAQCBpbnRlbF93YWtlcmVmX3VubG9jayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiB9CiAKIC8qKgotICogaW50ZWxfd2FrZXJlZl9hY3RpdmU6IFF1ZXJ5IHdoZXRoZXIgdGhlIHdha2VyZWYgaXMgY3VycmVudGx5IGhlbGQKKyAqIGludGVsX3dha2VyZWZfaXNfYWN0aXZlOiBRdWVyeSB3aGV0aGVyIHRoZSB3YWtlcmVmIGlzIGN1cnJlbnRseSBoZWxkCiAgKiBAd2Y6IHRoZSB3YWtlcmVmCiAgKgogICogUmV0dXJuczogdHJ1ZSBpZiB0aGUgd2FrZXJlZiBpcyBjdXJyZW50bHkgaGVsZC4KICAqLwogc3RhdGljIGlubGluZSBib29sCi1pbnRlbF93YWtlcmVmX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCitpbnRlbF93YWtlcmVmX2lzX2FjdGl2ZShjb25zdCBzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiB7CiAJcmV0dXJuIFJFQURfT05DRSh3Zi0+d2FrZXJlZik7CiB9CiAKKy8qKgorICogX19pbnRlbF93YWtlcmVmX2RlZmVyX3Bhcms6IERlZmVyIHRoZSBjdXJyZW50IHBhcmsgY2FsbGJhY2sKKyAqIEB3ZjogdGhlIHdha2VyZWYKKyAqLworc3RhdGljIGlubGluZSB2b2lkCitfX2ludGVsX3dha2VyZWZfZGVmZXJfcGFyayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCit7CisJSU5URUxfV0FLRVJFRl9CVUdfT04oYXRvbWljX3JlYWQoJndmLT5jb3VudCkpOworCWF0b21pY19zZXRfcmVsZWFzZSgmd2YtPmNvdW50LCAxKTsKK30KKworLyoqCisgKiBpbnRlbF93YWtlcmVmX3dhaXRfZm9yX2lkbGU6IFdhaXQgdW50aWwgdGhlIHdha2VyZWYgaXMgaWRsZQorICogQHdmOiB0aGUgd2FrZXJlZgorICoKKyAqIFdhaXQgZm9yIHRoZSBlYXJsaWVyIGFzeW5jaHJvbm91cyByZWxlYXNlIG9mIHRoZSB3YWtlcmVmLiBOb3RlCisgKiB0aGlzIHdpbGwgd2FpdCBmb3IgYW55IHRoaXJkIHBhcnR5IGFzIHdlbGwsIHNvIG1ha2Ugc3VyZSB5b3Ugb25seSB3YWl0CisgKiB3aGVuIHlvdSBoYXZlIGNvbnRyb2wgb3ZlciB0aGUgd2FrZXJlZiBhbmQgdHJ1c3Qgbm8gb25lIGVsc2UgaXMgYWNxdWlyaW5nCisgKiBpdC4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgZXJyb3IgY29kZSBpZiBraWxsZWQuCisgKi8KK2ludCBpbnRlbF93YWtlcmVmX3dhaXRfZm9yX2lkbGUoc3RydWN0IGludGVsX3dha2VyZWYgKndmKTsKKwogc3RydWN0IGludGVsX3dha2VyZWZfYXV0byB7CiAJc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbTsKIAlzdHJ1Y3QgdGltZXJfbGlzdCB0aW1lcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcGNtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3BjbS5jCmluZGV4IDdiNGJhODQuLjJiYjlmOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcGNtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29wY20uYwpAQCAtMSw3ICsxLDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKIC8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTctMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICogQ29weXJpZ2h0IMKpIDIwMTctMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgogICovCiAKICNpbmNsdWRlICJpbnRlbF93b3BjbS5oIgpAQCAtNjQsNiArNjMsMTEgQEAKICNkZWZpbmUgR0VOOV9HVUNfRldfUkVTRVJWRUQJU1pfMTI4SwogI2RlZmluZSBHRU45X0dVQ19XT1BDTV9PRkZTRVQJKEdVQ19XT1BDTV9SRVNFUlZFRCArIEdFTjlfR1VDX0ZXX1JFU0VSVkVEKQogCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICp3b3BjbV90b19pOTE1KHN0cnVjdCBpbnRlbF93b3BjbSAqd29wY20pCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZih3b3BjbSwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIHdvcGNtKTsKK30KKwogLyoqCiAgKiBpbnRlbF93b3BjbV9pbml0X2Vhcmx5KCkgLSBFYXJseSBpbml0aWFsaXphdGlvbiBvZiB0aGUgV09QQ00uCiAgKiBAd29wY206IHBvaW50ZXIgdG8gaW50ZWxfd29wY20uCkBAIC03NCw3ICs3OCw3IEBAIHZvaWQgaW50ZWxfd29wY21faW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gd29wY21fdG9faTkxNSh3b3BjbSk7CiAKLQlpZiAoIUhBU19HVUMoaTkxNSkpCisJaWYgKCFIQVNfR1RfVUMoaTkxNSkpCiAJCXJldHVybjsKIAogCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpCkBAIC04Miw3ICs4Niw3IEBAIHZvaWQgaW50ZWxfd29wY21faW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKQogCWVsc2UKIAkJd29wY20tPnNpemUgPSBHRU45X1dPUENNX1NJWkU7CiAKLQlEUk1fREVCVUdfRFJJVkVSKCJXT1BDTSBzaXplOiAldUtpQlxuIiwgd29wY20tPnNpemUgLyAxMDI0KTsKKwlEUk1fREVWX0RFQlVHX0RSSVZFUihpOTE1LT5kcm0uZGV2LCAiV09QQ006ICV1S1xuIiwgd29wY20tPnNpemUgLyAxMDI0KTsKIH0KIAogc3RhdGljIGlubGluZSB1MzIgY29udGV4dF9yZXNlcnZlZF9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQpAQCAtOTUsNyArOTksOCBAQCBzdGF0aWMgaW5saW5lIHUzMiBjb250ZXh0X3Jlc2VydmVkX3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBnZW45X2NoZWNrX2R3b3JkX2dhcCh1MzIgZ3VjX3dvcGNtX2Jhc2UsIHUzMiBndWNfd29wY21fc2l6ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBnZW45X2NoZWNrX2R3b3JkX2dhcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQkJdTMyIGd1Y193b3BjbV9iYXNlLCB1MzIgZ3VjX3dvcGNtX3NpemUpCiB7CiAJdTMyIG9mZnNldDsKIApAQCAtMTA3LDE2ICsxMTIsMTggQEAgc3RhdGljIGlubGluZSBpbnQgZ2VuOV9jaGVja19kd29yZF9nYXAodTMyIGd1Y193b3BjbV9iYXNlLCB1MzIgZ3VjX3dvcGNtX3NpemUpCiAJb2Zmc2V0ID0gZ3VjX3dvcGNtX2Jhc2UgKyBHRU45X0dVQ19XT1BDTV9PRkZTRVQ7CiAJaWYgKG9mZnNldCA+IGd1Y193b3BjbV9zaXplIHx8CiAJICAgIChndWNfd29wY21fc2l6ZSAtIG9mZnNldCkgPCBzaXplb2YodTMyKSkgewotCQlEUk1fRVJST1IoIkd1QyBXT1BDTSBzaXplICV1S2lCIGlzIHRvbyBzbWFsbC4gJXVLaUIgbmVlZGVkLlxuIiwKLQkJCSAgZ3VjX3dvcGNtX3NpemUgLyAxMDI0LAotCQkJICAodTMyKShvZmZzZXQgKyBzaXplb2YodTMyKSkgLyAxMDI0KTsKLQkJcmV0dXJuIC1FMkJJRzsKKwkJZGV2X2VycihpOTE1LT5kcm0uZGV2LAorCQkJIldPUENNOiBpbnZhbGlkIEd1QyByZWdpb24gc2l6ZTogJXVLIDwgJXVLXG4iLAorCQkJZ3VjX3dvcGNtX3NpemUgLyBTWl8xSywKKwkJCSh1MzIpKG9mZnNldCArIHNpemVvZih1MzIpKSAvIFNaXzFLKTsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAotCXJldHVybiAwOworCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBnZW45X2NoZWNrX2h1Y19md19maXRzKHUzMiBndWNfd29wY21fc2l6ZSwgdTMyIGh1Y19md19zaXplKQorc3RhdGljIGlubGluZSBib29sIGdlbjlfY2hlY2tfaHVjX2Z3X2ZpdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkJCSAgdTMyIGd1Y193b3BjbV9zaXplLCB1MzIgaHVjX2Z3X3NpemUpCiB7CiAJLyoKIAkgKiBPbiBHZW45ICYgQ05MIEEwLCBoYXJkd2FyZSByZXF1aXJlcyB0aGUgdG90YWwgYXZhaWxhYmxlIEd1QyBXT1BDTQpAQCAtMTI0LDI5ICsxMzEsODEgQEAgc3RhdGljIGlubGluZSBpbnQgZ2VuOV9jaGVja19odWNfZndfZml0cyh1MzIgZ3VjX3dvcGNtX3NpemUsIHUzMiBodWNfZndfc2l6ZSkKIAkgKiBmaXJtd2FyZSB1cGxvYWRpbmcgd291bGQgZmFpbC4KIAkgKi8KIAlpZiAoaHVjX2Z3X3NpemUgPiBndWNfd29wY21fc2l6ZSAtIEdVQ19XT1BDTV9SRVNFUlZFRCkgewotCQlEUk1fRVJST1IoIkh1QyBGVyAoJXVLaUIpIHdvbid0IGZpdCBpbiBHdUMgV09QQ00gKCV1S2lCKS5cbiIsCi0JCQkgIGh1Y19md19zaXplIC8gMTAyNCwKLQkJCSAgKGd1Y193b3BjbV9zaXplIC0gR1VDX1dPUENNX1JFU0VSVkVEKSAvIDEwMjQpOwotCQlyZXR1cm4gLUUyQklHOworCQlkZXZfZXJyKGk5MTUtPmRybS5kZXYsICJXT1BDTTogbm8gc3BhY2UgZm9yICVzOiAldUsgPCAldUtcbiIsCisJCQlpbnRlbF91Y19md190eXBlX3JlcHIoSU5URUxfVUNfRldfVFlQRV9IVUMpLAorCQkJKGd1Y193b3BjbV9zaXplIC0gR1VDX1dPUENNX1JFU0VSVkVEKSAvIFNaXzFLLAorCQkJaHVjX2Z3X3NpemUgLyAxMDI0KTsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAotCXJldHVybiAwOworCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBjaGVja19od19yZXN0cmljdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQkgICAgICAgdTMyIGd1Y193b3BjbV9iYXNlLCB1MzIgZ3VjX3dvcGNtX3NpemUsCi0JCQkJICAgICAgIHUzMiBodWNfZndfc2l6ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja19od19yZXN0cmljdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkJCSB1MzIgZ3VjX3dvcGNtX2Jhc2UsIHUzMiBndWNfd29wY21fc2l6ZSwKKwkJCQkJIHUzMiBodWNfZndfc2l6ZSkKIHsKLQlpbnQgZXJyID0gMDsKKwlpZiAoSVNfR0VOKGk5MTUsIDkpICYmICFnZW45X2NoZWNrX2R3b3JkX2dhcChpOTE1LCBndWNfd29wY21fYmFzZSwKKwkJCQkJCSAgICAgZ3VjX3dvcGNtX3NpemUpKQorCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoSVNfR0VOKGk5MTUsIDkpKQotCQllcnIgPSBnZW45X2NoZWNrX2R3b3JkX2dhcChndWNfd29wY21fYmFzZSwgZ3VjX3dvcGNtX3NpemUpOworCWlmICgoSVNfR0VOKGk5MTUsIDkpIHx8CisJICAgICBJU19DTkxfUkVWSUQoaTkxNSwgQ05MX1JFVklEX0EwLCBDTkxfUkVWSURfQTApKSAmJgorCSAgICAhZ2VuOV9jaGVja19odWNfZndfZml0cyhpOTE1LCBndWNfd29wY21fc2l6ZSwgaHVjX2Z3X3NpemUpKQorCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoIWVyciAmJgotCSAgICAoSVNfR0VOKGk5MTUsIDkpIHx8IElTX0NOTF9SRVZJRChpOTE1LCBDTkxfUkVWSURfQTAsIENOTF9SRVZJRF9BMCkpKQotCQllcnIgPSBnZW45X2NoZWNrX2h1Y19md19maXRzKGd1Y193b3BjbV9zaXplLCBodWNfZndfc2l6ZSk7CisJcmV0dXJuIHRydWU7Cit9CiAKLQlyZXR1cm4gZXJyOworc3RhdGljIGlubGluZSBib29sIF9fY2hlY2tfbGF5b3V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1MzIgd29wY21fc2l6ZSwKKwkJCQkgIHUzMiBndWNfd29wY21fYmFzZSwgdTMyIGd1Y193b3BjbV9zaXplLAorCQkJCSAgdTMyIGd1Y19md19zaXplLCB1MzIgaHVjX2Z3X3NpemUpCit7CisJY29uc3QgdTMyIGN0eF9yc3ZkID0gY29udGV4dF9yZXNlcnZlZF9zaXplKGk5MTUpOworCXUzMiBzaXplOworCisJc2l6ZSA9IHdvcGNtX3NpemUgLSBjdHhfcnN2ZDsKKwlpZiAodW5saWtlbHkocmFuZ2Vfb3ZlcmZsb3dzKGd1Y193b3BjbV9iYXNlLCBndWNfd29wY21fc2l6ZSwgc2l6ZSkpKSB7CisJCWRldl9lcnIoaTkxNS0+ZHJtLmRldiwKKwkJCSJXT1BDTTogaW52YWxpZCBHdUMgcmVnaW9uIGxheW91dDogJXVLICsgJXVLID4gJXVLXG4iLAorCQkJZ3VjX3dvcGNtX2Jhc2UgLyBTWl8xSywgZ3VjX3dvcGNtX3NpemUgLyBTWl8xSywKKwkJCXNpemUgLyBTWl8xSyk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlzaXplID0gZ3VjX2Z3X3NpemUgKyBHVUNfV09QQ01fUkVTRVJWRUQgKyBHVUNfV09QQ01fU1RBQ0tfUkVTRVJWRUQ7CisJaWYgKHVubGlrZWx5KGd1Y193b3BjbV9zaXplIDwgc2l6ZSkpIHsKKwkJZGV2X2VycihpOTE1LT5kcm0uZGV2LCAiV09QQ006IG5vIHNwYWNlIGZvciAlczogJXVLIDwgJXVLXG4iLAorCQkJaW50ZWxfdWNfZndfdHlwZV9yZXByKElOVEVMX1VDX0ZXX1RZUEVfR1VDKSwKKwkJCWd1Y193b3BjbV9zaXplIC8gU1pfMUssIHNpemUgLyBTWl8xSyk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlzaXplID0gaHVjX2Z3X3NpemUgKyBXT1BDTV9SRVNFUlZFRF9TSVpFOworCWlmICh1bmxpa2VseShndWNfd29wY21fYmFzZSA8IHNpemUpKSB7CisJCWRldl9lcnIoaTkxNS0+ZHJtLmRldiwgIldPUENNOiBubyBzcGFjZSBmb3IgJXM6ICV1SyA8ICV1S1xuIiwKKwkJCWludGVsX3VjX2Z3X3R5cGVfcmVwcihJTlRFTF9VQ19GV19UWVBFX0hVQyksCisJCQlndWNfd29wY21fYmFzZSAvIFNaXzFLLCBzaXplIC8gU1pfMUspOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIGNoZWNrX2h3X3Jlc3RyaWN0aW9ucyhpOTE1LCBndWNfd29wY21fYmFzZSwgZ3VjX3dvcGNtX3NpemUsCisJCQkJICAgICBodWNfZndfc2l6ZSk7Cit9CisKK3N0YXRpYyBib29sIF9fd29wY21fcmVnc19sb2NrZWQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAorCQkJCXUzMiAqZ3VjX3dvcGNtX2Jhc2UsIHUzMiAqZ3VjX3dvcGNtX3NpemUpCit7CisJdTMyIHJlZ19iYXNlID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBETUFfR1VDX1dPUENNX09GRlNFVCk7CisJdTMyIHJlZ19zaXplID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBHVUNfV09QQ01fU0laRSk7CisKKwlpZiAoIShyZWdfc2l6ZSAmIEdVQ19XT1BDTV9TSVpFX0xPQ0tFRCkgfHwKKwkgICAgIShyZWdfYmFzZSAmIEdVQ19XT1BDTV9PRkZTRVRfVkFMSUQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkqZ3VjX3dvcGNtX2Jhc2UgPSByZWdfYmFzZSAmIEdVQ19XT1BDTV9PRkZTRVRfTUFTSzsKKwkqZ3VjX3dvcGNtX3NpemUgPSByZWdfc2l6ZSAmIEdVQ19XT1BDTV9TSVpFX01BU0s7CisJcmV0dXJuIHRydWU7CiB9CiAKIC8qKgpAQCAtMTU2LDEzNSArMjE1LDY2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNoZWNrX2h3X3Jlc3RyaWN0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogICogVGhpcyBmdW5jdGlvbiB3aWxsIHBhcnRpdGlvbiBXT1BDTSBzcGFjZSBiYXNlZCBvbiBHdUMgYW5kIEh1QyBmaXJtd2FyZSBzaXplcwogICogYW5kIHdpbGwgYWxsb2NhdGUgbWF4IHJlbWFpbmluZyBmb3IgdXNlIGJ5IEd1Qy4gVGhpcyBmdW5jdGlvbiB3aWxsIGFsc28KICAqIGVuZm9yY2UgcGxhdGZvcm0gZGVwZW5kZW50IGhhcmR3YXJlIHJlc3RyaWN0aW9ucyBvbiBHdUMgV09QQ00gb2Zmc2V0IGFuZAotICogc2l6ZS4gSXQgd2lsbCBmYWlsIHRoZSBXT1BDTSBpbml0IGlmIGFueSBvZiB0aGVzZSBjaGVja3Mgd2VyZSBmYWlsZWQsIHNvIHRoYXQKLSAqIHRoZSBmb2xsb3dpbmcgR3VDIGZpcm13YXJlIHVwbG9hZGluZyB3b3VsZCBiZSBhYm9ydGVkLgotICoKLSAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBub24temVybyBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKiBzaXplLiBJdCB3aWxsIGZhaWwgdGhlIFdPUENNIGluaXQgaWYgYW55IG9mIHRoZXNlIGNoZWNrcyBmYWlsLCBzbyB0aGF0IHRoZQorICogZm9sbG93aW5nIFdPUENNIHJlZ2lzdGVycyBzZXR1cCBhbmQgR3VDIGZpcm13YXJlIHVwbG9hZGluZyB3b3VsZCBiZSBhYm9ydGVkLgogICovCi1pbnQgaW50ZWxfd29wY21faW5pdChzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKQordm9pZCBpbnRlbF93b3BjbV9pbml0KHN0cnVjdCBpbnRlbF93b3BjbSAqd29wY20pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB3b3BjbV90b19pOTE1KHdvcGNtKTsKLQl1MzIgZ3VjX2Z3X3NpemUgPSBpbnRlbF91Y19md19nZXRfdXBsb2FkX3NpemUoJmk5MTUtPmd1Yy5mdyk7Ci0JdTMyIGh1Y19md19zaXplID0gaW50ZWxfdWNfZndfZ2V0X3VwbG9hZF9zaXplKCZpOTE1LT5odWMuZncpOworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmaTkxNS0+Z3Q7CisJdTMyIGd1Y19md19zaXplID0gaW50ZWxfdWNfZndfZ2V0X3VwbG9hZF9zaXplKCZndC0+dWMuZ3VjLmZ3KTsKKwl1MzIgaHVjX2Z3X3NpemUgPSBpbnRlbF91Y19md19nZXRfdXBsb2FkX3NpemUoJmd0LT51Yy5odWMuZncpOwogCXUzMiBjdHhfcnN2ZCA9IGNvbnRleHRfcmVzZXJ2ZWRfc2l6ZShpOTE1KTsKIAl1MzIgZ3VjX3dvcGNtX2Jhc2U7CiAJdTMyIGd1Y193b3BjbV9zaXplOwotCXUzMiBndWNfd29wY21fcnN2ZDsKLQlpbnQgZXJyOwogCi0JaWYgKCFVU0VTX0dVQyhpOTE1KSkKLQkJcmV0dXJuIDA7CisJaWYgKCFndWNfZndfc2l6ZSkKKwkJcmV0dXJuOwogCiAJR0VNX0JVR19PTighd29wY20tPnNpemUpOworCUdFTV9CVUdfT04od29wY20tPmd1Yy5iYXNlKTsKKwlHRU1fQlVHX09OKHdvcGNtLT5ndWMuc2l6ZSk7CisJR0VNX0JVR19PTihndWNfZndfc2l6ZSA+PSB3b3BjbS0+c2l6ZSk7CisJR0VNX0JVR19PTihodWNfZndfc2l6ZSA+PSB3b3BjbS0+c2l6ZSk7CisJR0VNX0JVR19PTihjdHhfcnN2ZCArIFdPUENNX1JFU0VSVkVEX1NJWkUgPj0gd29wY20tPnNpemUpOwogCi0JaWYgKGk5MTVfaW5qZWN0X2xvYWRfZmFpbHVyZSgpKQotCQlyZXR1cm4gLUUyQklHOworCWlmIChpOTE1X2luamVjdF9wcm9iZV9mYWlsdXJlKGk5MTUpKQorCQlyZXR1cm47CiAKLQlpZiAoZ3VjX2Z3X3NpemUgPj0gd29wY20tPnNpemUpIHsKLQkJRFJNX0VSUk9SKCJHdUMgRlcgKCV1S2lCKSBpcyB0b28gYmlnIHRvIGZpdCBpbiBXT1BDTS4iLAotCQkJICBndWNfZndfc2l6ZSAvIDEwMjQpOwotCQlyZXR1cm4gLUUyQklHOworCWlmIChfX3dvcGNtX3JlZ3NfbG9ja2VkKGd0LT51bmNvcmUsICZndWNfd29wY21fYmFzZSwgJmd1Y193b3BjbV9zaXplKSkgeworCQlEUk1fREVWX0RFQlVHX0RSSVZFUihpOTE1LT5kcm0uZGV2LAorCQkJCSAgICAgIkd1QyBXT1BDTSBpcyBhbHJlYWR5IGxvY2tlZCBbJXVLLCAldUspXG4iLAorCQkJCSAgICAgZ3VjX3dvcGNtX2Jhc2UgLyBTWl8xSywKKwkJCQkgICAgIGd1Y193b3BjbV9zaXplIC8gU1pfMUspOworCQlnb3RvIGNoZWNrOwogCX0KIAotCWlmIChodWNfZndfc2l6ZSA+PSB3b3BjbS0+c2l6ZSkgewotCQlEUk1fRVJST1IoIkh1QyBGVyAoJXVLaUIpIGlzIHRvbyBiaWcgdG8gZml0IGluIFdPUENNLiIsCi0JCQkgIGh1Y19md19zaXplIC8gMTAyNCk7Ci0JCXJldHVybiAtRTJCSUc7Ci0JfQorCS8qCisJICogQWxpZ25lZCB2YWx1ZSBvZiBndWNfd29wY21fYmFzZSB3aWxsIGRldGVybWluZSBhdmFpbGFibGUgV09QQ00gc3BhY2UKKwkgKiBmb3IgSHVDIGZpcm13YXJlIGFuZCBtYW5kYXRvcnkgcmVzZXJ2ZWQgYXJlYS4KKwkgKi8KKwlndWNfd29wY21fYmFzZSA9IGh1Y19md19zaXplICsgV09QQ01fUkVTRVJWRURfU0laRTsKKwlndWNfd29wY21fYmFzZSA9IEFMSUdOKGd1Y193b3BjbV9iYXNlLCBHVUNfV09QQ01fT0ZGU0VUX0FMSUdOTUVOVCk7CiAKLQlndWNfd29wY21fYmFzZSA9IEFMSUdOKGh1Y19md19zaXplICsgV09QQ01fUkVTRVJWRURfU0laRSwKLQkJCSAgICAgICBHVUNfV09QQ01fT0ZGU0VUX0FMSUdOTUVOVCk7Ci0JaWYgKChndWNfd29wY21fYmFzZSArIGN0eF9yc3ZkKSA+PSB3b3BjbS0+c2l6ZSkgewotCQlEUk1fRVJST1IoIkd1QyBXT1BDTSBiYXNlICgldUtpQikgaXMgdG9vIGJpZy5cbiIsCi0JCQkgIGd1Y193b3BjbV9iYXNlIC8gMTAyNCk7Ci0JCXJldHVybiAtRTJCSUc7Ci0JfQorCS8qCisJICogTmVlZCB0byBjbGFtcCBndWNfd29wY21fYmFzZSBub3cgdG8gbWFrZSBzdXJlIHRoZSBmb2xsb3dpbmcgbWF0aCBpcworCSAqIGNvcnJlY3QuIEZvcm1hbCBjaGVjayBvZiB3aG9sZSBXT1BDTSBsYXlvdXQgd2lsbCBiZSBkb25lIGJlbG93LgorCSAqLworCWd1Y193b3BjbV9iYXNlID0gbWluKGd1Y193b3BjbV9iYXNlLCB3b3BjbS0+c2l6ZSAtIGN0eF9yc3ZkKTsKIAotCWd1Y193b3BjbV9zaXplID0gd29wY20tPnNpemUgLSBndWNfd29wY21fYmFzZSAtIGN0eF9yc3ZkOworCS8qIEFsaWduZWQgcmVtYWluaW5ncyBvZiB1c2FibGUgV09QQ00gc3BhY2UgY2FuIGJlIGFzc2lnbmVkIHRvIEd1Qy4gKi8KKwlndWNfd29wY21fc2l6ZSA9IHdvcGNtLT5zaXplIC0gY3R4X3JzdmQgLSBndWNfd29wY21fYmFzZTsKIAlndWNfd29wY21fc2l6ZSAmPSBHVUNfV09QQ01fU0laRV9NQVNLOwogCi0JRFJNX0RFQlVHX0RSSVZFUigiQ2FsY3VsYXRlZCBHdUMgV09QQ00gUmVnaW9uOiBbJXVLaUIsICV1S2lCKVxuIiwKLQkJCSBndWNfd29wY21fYmFzZSAvIDEwMjQsIGd1Y193b3BjbV9zaXplIC8gMTAyNCk7CisJRFJNX0RFVl9ERUJVR19EUklWRVIoaTkxNS0+ZHJtLmRldiwgIkNhbGN1bGF0ZWQgR3VDIFdPUENNIFsldUssICV1SylcbiIsCisJCQkgICAgIGd1Y193b3BjbV9iYXNlIC8gU1pfMUssIGd1Y193b3BjbV9zaXplIC8gU1pfMUspOwogCi0JZ3VjX3dvcGNtX3JzdmQgPSBHVUNfV09QQ01fUkVTRVJWRUQgKyBHVUNfV09QQ01fU1RBQ0tfUkVTRVJWRUQ7Ci0JaWYgKChndWNfZndfc2l6ZSArIGd1Y193b3BjbV9yc3ZkKSA+IGd1Y193b3BjbV9zaXplKSB7Ci0JCURSTV9FUlJPUigiTmVlZCAldUtpQiBXT1BDTSBmb3IgR3VDLCAldUtpQiBhdmFpbGFibGUuXG4iLAotCQkJICAoZ3VjX2Z3X3NpemUgKyBndWNfd29wY21fcnN2ZCkgLyAxMDI0LAotCQkJICBndWNfd29wY21fc2l6ZSAvIDEwMjQpOwotCQlyZXR1cm4gLUUyQklHOworY2hlY2s6CisJaWYgKF9fY2hlY2tfbGF5b3V0KGk5MTUsIHdvcGNtLT5zaXplLCBndWNfd29wY21fYmFzZSwgZ3VjX3dvcGNtX3NpemUsCisJCQkgICBndWNfZndfc2l6ZSwgaHVjX2Z3X3NpemUpKSB7CisJCXdvcGNtLT5ndWMuYmFzZSA9IGd1Y193b3BjbV9iYXNlOworCQl3b3BjbS0+Z3VjLnNpemUgPSBndWNfd29wY21fc2l6ZTsKKwkJR0VNX0JVR19PTighd29wY20tPmd1Yy5iYXNlKTsKKwkJR0VNX0JVR19PTighd29wY20tPmd1Yy5zaXplKTsKIAl9Ci0KLQllcnIgPSBjaGVja19od19yZXN0cmljdGlvbihpOTE1LCBndWNfd29wY21fYmFzZSwgZ3VjX3dvcGNtX3NpemUsCi0JCQkJICAgaHVjX2Z3X3NpemUpOwotCWlmIChlcnIpCi0JCXJldHVybiBlcnI7Ci0KLQl3b3BjbS0+Z3VjLmJhc2UgPSBndWNfd29wY21fYmFzZTsKLQl3b3BjbS0+Z3VjLnNpemUgPSBndWNfd29wY21fc2l6ZTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIGludCB3cml0ZV9hbmRfdmVyaWZ5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICBpOTE1X3JlZ190IHJlZywgdTMyIHZhbCwgdTMyIG1hc2ssCi0JCQkJICAgdTMyIGxvY2tlZF9iaXQpCi17Ci0JdTMyIHJlZ192YWw7Ci0KLQlHRU1fQlVHX09OKHZhbCAmIH5tYXNrKTsKLQotCUk5MTVfV1JJVEUocmVnLCB2YWwpOwotCi0JcmVnX3ZhbCA9IEk5MTVfUkVBRChyZWcpOwotCi0JcmV0dXJuIChyZWdfdmFsICYgbWFzaykgIT0gKHZhbCB8IGxvY2tlZF9iaXQpID8gLUVJTyA6IDA7Ci19Ci0KLS8qKgotICogaW50ZWxfd29wY21faW5pdF9odygpIC0gU2V0dXAgR3VDIFdPUENNIHJlZ2lzdGVycy4KLSAqIEB3b3BjbTogcG9pbnRlciB0byBpbnRlbF93b3BjbS4KLSAqCi0gKiBTZXR1cCB0aGUgR3VDIFdPUENNIHNpemUgYW5kIG9mZnNldCByZWdpc3RlcnMgd2l0aCB0aGUgY2FsY3VsYXRlZCB2YWx1ZXMuIEl0Ci0gKiB3aWxsIHZlcmlmeSB0aGUgcmVnaXN0ZXIgdmFsdWVzIHRvIG1ha2Ugc3VyZSB0aGUgcmVnaXN0ZXJzIGFyZSBsb2NrZWQgd2l0aAotICogY29ycmVjdCB2YWx1ZXMuCi0gKgotICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MuIC1FSU8gaWYgcmVnaXN0ZXJzIHdlcmUgbG9ja2VkIHdpdGggaW5jb3JyZWN0IHZhbHVlcy4KLSAqLwotaW50IGludGVsX3dvcGNtX2luaXRfaHcoc3RydWN0IGludGVsX3dvcGNtICp3b3BjbSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB3b3BjbV90b19pOTE1KHdvcGNtKTsKLQl1MzIgaHVjX2FnZW50OwotCXUzMiBtYXNrOwotCWludCBlcnI7Ci0KLQlpZiAoIVVTRVNfR1VDKGRldl9wcml2KSkKLQkJcmV0dXJuIDA7Ci0KLQlHRU1fQlVHX09OKCFIQVNfR1VDKGRldl9wcml2KSk7Ci0JR0VNX0JVR19PTighd29wY20tPmd1Yy5zaXplKTsKLQlHRU1fQlVHX09OKCF3b3BjbS0+Z3VjLmJhc2UpOwotCi0JZXJyID0gd3JpdGVfYW5kX3ZlcmlmeShkZXZfcHJpdiwgR1VDX1dPUENNX1NJWkUsIHdvcGNtLT5ndWMuc2l6ZSwKLQkJCSAgICAgICBHVUNfV09QQ01fU0laRV9NQVNLIHwgR1VDX1dPUENNX1NJWkVfTE9DS0VELAotCQkJICAgICAgIEdVQ19XT1BDTV9TSVpFX0xPQ0tFRCk7Ci0JaWYgKGVycikKLQkJZ290byBlcnJfb3V0OwotCi0JaHVjX2FnZW50ID0gVVNFU19IVUMoZGV2X3ByaXYpID8gSFVDX0xPQURJTkdfQUdFTlRfR1VDIDogMDsKLQltYXNrID0gR1VDX1dPUENNX09GRlNFVF9NQVNLIHwgR1VDX1dPUENNX09GRlNFVF9WQUxJRCB8IGh1Y19hZ2VudDsKLQllcnIgPSB3cml0ZV9hbmRfdmVyaWZ5KGRldl9wcml2LCBETUFfR1VDX1dPUENNX09GRlNFVCwKLQkJCSAgICAgICB3b3BjbS0+Z3VjLmJhc2UgfCBodWNfYWdlbnQsIG1hc2ssCi0JCQkgICAgICAgR1VDX1dPUENNX09GRlNFVF9WQUxJRCk7Ci0JaWYgKGVycikKLQkJZ290byBlcnJfb3V0OwotCi0JcmV0dXJuIDA7Ci0KLWVycl9vdXQ6Ci0JRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdCBXT1BDTSByZWdpc3RlcnM6XG4iKTsKLQlEUk1fRVJST1IoIkRNQV9HVUNfV09QQ01fT0ZGU0VUPSUjeFxuIiwKLQkJICBJOTE1X1JFQUQoRE1BX0dVQ19XT1BDTV9PRkZTRVQpKTsKLQlEUk1fRVJST1IoIkdVQ19XT1BDTV9TSVpFPSUjeFxuIiwgSTkxNV9SRUFEKEdVQ19XT1BDTV9TSVpFKSk7Ci0KLQlyZXR1cm4gZXJyOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29wY20uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcGNtLmgKaW5kZXggMTE0NDAxOS4uMTdkNmFhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29wY20uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3BjbS5oCkBAIC0yNSw2ICsyNSwyMSBAQCBzdHJ1Y3QgaW50ZWxfd29wY20gewogfTsKIAogLyoqCisgKiBpbnRlbF93b3BjbV9ndWNfYmFzZSgpCisgKiBAd29wY206CWludGVsX3dvcGNtIHN0cnVjdHVyZQorICoKKyAqIFJldHVybnMgdGhlIGJhc2Ugb2YgdGhlIFdPUENNIHNoYWRvd2VkIHJlZ2lvbi4KKyAqCisgKiBSZXR1cm5zOgorICogMCBpZiBHdUMgaXMgbm90IHByZXNlbnQgb3Igbm90IGluIHVzZS4KKyAqIE90aGVyd2lzZSwgdGhlIEd1QyBXT1BDTSBiYXNlLgorICovCitzdGF0aWMgaW5saW5lIHUzMiBpbnRlbF93b3BjbV9ndWNfYmFzZShzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKQoreworCXJldHVybiB3b3BjbS0+Z3VjLmJhc2U7Cit9CisKKy8qKgogICogaW50ZWxfd29wY21fZ3VjX3NpemUoKQogICogQHdvcGNtOglpbnRlbF93b3BjbSBzdHJ1Y3R1cmUKICAqCkBAIC00MCw3ICs1NSw2IEBAIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX3dvcGNtX2d1Y19zaXplKHN0cnVjdCBpbnRlbF93b3BjbSAqd29wY20pCiB9CiAKIHZvaWQgaW50ZWxfd29wY21faW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKTsKLWludCBpbnRlbF93b3BjbV9pbml0KHN0cnVjdCBpbnRlbF93b3BjbSAqd29wY20pOwotaW50IGludGVsX3dvcGNtX2luaXRfaHcoc3RydWN0IGludGVsX3dvcGNtICp3b3BjbSk7Cit2b2lkIGludGVsX3dvcGNtX2luaXQoc3RydWN0IGludGVsX3dvcGNtICp3b3BjbSk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjAyOGUyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvTWFrZWZpbGUKQEAgLTAsMCArMSw3IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKworIyBGb3IgYnVpbGRpbmcgaW5kaXZpZHVhbCBzdWJkaXIgZmlsZXMgb24gdGhlIGNvbW1hbmQgbGluZQorc3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjdHJlZSkvJChzcmMpLy4uCisKKyMgRXh0cmEgaGVhZGVyIHRlc3RzCitoZWFkZXItdGVzdC1wYXR0ZXJuLSQoQ09ORklHX0RSTV9JOTE1X1dFUlJPUikgOj0gKi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Jkdy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9iZHcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGRhNWMzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9iZHcuYwpAQCAtMCwwICsxLDkwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKKyAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQorICovCisKKyNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgorCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X29hX2Jkdy5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZmNyB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAorCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDEwMDAwMSB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0geworCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDBhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOThiMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzhiMDA2NiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMThiMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNThiMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTg1MDAwOCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg0NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZjgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOworfQorCit2b2lkCitpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19iZHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKKwkJImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5MDQ0ZSIsCisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5MDQ0ZSI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9iZHcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfYmR3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNlZTMzMwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfYmR3LmgKQEAgLTAsMCArMSwxNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaWZuZGVmIF9fSTkxNV9PQV9CRFdfSF9fCisjZGVmaW5lIF9fSTkxNV9PQV9CRFdfSF9fCisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworCit2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2JkdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfYnh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2J4dC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNzg1YmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2J4dC5jCkBAIC0wLDAgKzEsODggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfb2FfYnh0LmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODAwMDYzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzODEwMDA4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOTUwNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOTIyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Cit9CisKK3ZvaWQKK2k5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2J4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAorCQkiNWVlNzJmNWMtMDkyZi00MjFlLThiNzAtMjI1ZjdjM2U5NjEyIiwKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNWVlNzJmNWMtMDkyZi00MjFlLThiNzAtMjI1ZjdjM2U5NjEyIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2J4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9ieHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmRmMzkxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9ieHQuaApAQCAtMCwwICsxLDE2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKKyAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQorICovCisKKyNpZm5kZWYgX19JOTE1X09BX0JYVF9IX18KKyNkZWZpbmUgX19JOTE1X09BX0JYVF9IX18KKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKK3ZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfYnh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVhODZmNwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QyLmMKQEAgLTAsMCArMSw4OSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KKworI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9vYV9jZmxndDIuaCIKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0geworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MTAwMTMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDdlNTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKK30KKwordm9pZAoraTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY2ZsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCisJCSI3NGZiNDkwMi1kM2QzLTQyMzctOWU5MC1jYmRjNjhkMGE0NDYiLAorCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI3NGZiNDkwMi1kM2QzLTQyMzctOWU5MC1jYmRjNjhkMGE0NDYiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0Mi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiODYyMjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0Mi5oCkBAIC0wLDAgKzEsMTYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2lmbmRlZiBfX0k5MTVfT0FfQ0ZMR1QyX0hfXworI2RlZmluZSBfX0k5MTVfT0FfQ0ZMR1QyX0hfXworCitzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKKwordm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jZmxndDIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0My5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzYzMmRkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDMuYwpAQCAtMCwwICsxLDg5IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKKyAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQorICovCisKKyNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgorCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X29hX2NmbGd0My5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZmNyB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAorCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDEwMDAwMSB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0geworCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgxMDAxMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkzMDA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwN2U1NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOworfQorCit2b2lkCitpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jZmxndDMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKKwkJIjU3N2U4ZTJjLTNmYTAtNDg3NS04NzQzLTM1MzhkNTg1ZTNiMCIsCisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjU3N2U4ZTJjLTNmYTAtNDg3NS04NzQzLTM1MzhkNTg1ZTNiMCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNhOWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QzLmgKQEAgLTAsMCArMSwxNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaWZuZGVmIF9fSTkxNV9PQV9DRkxHVDNfSF9fCisjZGVmaW5lIF9fSTkxNV9PQV9DRkxHVDNfSF9fCisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworCit2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NmbGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2h2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Nodi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZDRlOTkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Nodi5jCkBAIC0wLDAgKzEsODkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfb2FfY2h2LmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDk4NDApLCAweDAwMDAwMGEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU5ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU5ODAwMDAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOGIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OGIwMDY2IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAwMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU3ODAwMDAwIH0sCisJeyBfTU1JTygweDE4MjNhNCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKK30KKwordm9pZAoraTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY2h2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCisJCSI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiLAorCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2h2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Nodi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjYWM3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Nodi5oCkBAIC0wLDAgKzEsMTYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2lmbmRlZiBfX0k5MTVfT0FfQ0hWX0hfXworI2RlZmluZSBfX0k5MTVfT0FfQ0hWX0hfXworCitzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKKwordm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jaHYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NubC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jbmwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDQxZTg5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jbmwuYwpAQCAtMCwwICsxLDEwMSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KKworI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9vYV9jbmwuaCIKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZmYgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZmZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZmZmYgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0geworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4ZDA0KSwgMHgwMDAwMDIwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzAzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzA2MDA2NiB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjA4MDA0MCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzA5MTAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjA0MTAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDAwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNTAwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTAwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZDAwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMTAwMDAwMCB9LAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOworfQorCit2b2lkCitpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jbmwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKKwkJImRiNDFlZGQ0LWQ4ZTctNDczMC1hZDExLWI5YTJkNjgzMzUwMyIsCisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImRiNDFlZGQ0LWQ4ZTctNDczMC1hZDExLWI5YTJkNjgzMzUwMyI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jbmwuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY25sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIzNzlmNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY25sLmgKQEAgLTAsMCArMSwxNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaWZuZGVmIF9fSTkxNV9PQV9DTkxfSF9fCisjZGVmaW5lIF9fSTkxNV9PQV9DTkxfSF9fCisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworCit2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NubChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfZ2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2dsay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMTVlYmUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2dsay5jCkBAIC0wLDAgKzEsODggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfb2FfZ2xrLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODAwMDYzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzODEwMDA4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOTUwNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOTIyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Cit9CisKK3ZvaWQKK2k5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2dsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAorCQkiZGQzZmQ3ODktZTc4My00MjA0LThjZDAtYjY3MWJiY2NiMGNmIiwKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiZGQzZmQ3ODktZTc4My00MjA0LThjZDAtYjY3MWJiY2NiMGNmIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2dsay5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9nbGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzlmMzQzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9nbGsuaApAQCAtMCwwICsxLDE2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKKyAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQorICovCisKKyNpZm5kZWYgX19JOTE1X09BX0dMS19IX18KKyNkZWZpbmUgX19JOTE1X09BX0dMS19IX18KKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKK3ZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfZ2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9oc3cuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaHN3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTMzNzIxYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaHN3LmMKQEAgLTAsMCArMSwxMTggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfb2FfaHN3LmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWNbXSA9IHsKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljW10gPSB7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfcmVuZGVyX2Jhc2ljW10gPSB7CisJeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCisJeyBfTU1JTygweDI1M2E0KSwgMHgwMTYwMDAwMCB9LAorCXsgX01NSU8oMHgyNTQ0MCksIDB4MDAxMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjUxMjgpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI2OTFjKSwgMHgwMDAwMDgwMCB9LAorCXsgX01NSU8oMHgyNmFhMCksIDB4MDE1MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjZiOWMpLCAweDAwMDA2MDAwIH0sCisJeyBfTU1JTygweDI3OTFjKSwgMHgwMDAwMDgwMCB9LAorCXsgX01NSU8oMHgyN2FhMCksIDB4MDE1MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjdiOWMpLCAweDAwMDA2MDAwIH0sCisJeyBfTU1JTygweDI2NDFjKSwgMHgwMDAwMDQwMCB9LAorCXsgX01NSU8oMHgyNTM4MCksIDB4MDAwMDAwMTAgfSwKKwl7IF9NTUlPKDB4MjUzOGMpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI1Mzg0KSwgMHgwODAwYWFhYSB9LAorCXsgX01NSU8oMHgyNTQwMCksIDB4MDAwMDAwMDQgfSwKKwl7IF9NTUlPKDB4MjU0MGMpLCAweDA2MDI5MDAwIH0sCisJeyBfTU1JTygweDI1NDEwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNTQwNCksIDB4NWMzMGZmZmYgfSwKKwl7IF9NTUlPKDB4MjUxMDApLCAweDAwMDAwMDE2IH0sCisJeyBfTU1JTygweDI1MTEwKSwgMHgwMDAwMDQwMCB9LAorCXsgX01NSU8oMHgyNTEwNCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjY4MDQpLCAweDAwMDAxMjExIH0sCisJeyBfTU1JTygweDI2ODg0KSwgMHgwMDAwMDEwMCB9LAorCXsgX01NSU8oMHgyNjkwMCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4MjY5MDgpLCAweDAwNzAwMDAwIH0sCisJeyBfTU1JTygweDI2OTA0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNjk4NCksIDB4MDAwMDEwMjIgfSwKKwl7IF9NTUlPKDB4MjZhMDQpLCAweDAwMDAwMDExIH0sCisJeyBfTU1JTygweDI2YTgwKSwgMHgwMDAwMDAwNiB9LAorCXsgX01NSU8oMHgyNmE4OCksIDB4MDAwMDBjMDIgfSwKKwl7IF9NTUlPKDB4MjZhODQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI2YjA0KSwgMHgwMDAwMTAwMCB9LAorCXsgX01NSU8oMHgyNmI4MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4MjZiOGMpLCAweDAwMDAwMDA3IH0sCisJeyBfTU1JTygweDI2Yjg0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzgwNCksIDB4MDAwMDQ4NDQgfSwKKwl7IF9NTUlPKDB4Mjc4ODQpLCAweDAwMDAwNDAwIH0sCisJeyBfTU1JTygweDI3OTAwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzkwOCksIDB4MGUwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc5MDQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3OTg0KSwgMHgwMDAwNDA4OCB9LAorCXsgX01NSU8oMHgyN2EwNCksIDB4MDAwMDAwNDQgfSwKKwl7IF9NTUlPKDB4MjdhODApLCAweDAwMDAwMDA2IH0sCisJeyBfTU1JTygweDI3YTg4KSwgMHgwMDAxODA0MCB9LAorCXsgX01NSU8oMHgyN2E4NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjdiMDQpLCAweDAwMDA0MDAwIH0sCisJeyBfTU1JTygweDI3YjgwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyN2I4YyksIDB4MDAwMDAwZTAgfSwKKwl7IF9NTUlPKDB4MjdiODQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI2MTA0KSwgMHgwMDAwMjIyMiB9LAorCXsgX01NSU8oMHgyNjE4NCksIDB4MGMwMDY2NjYgfSwKKwl7IF9NTUlPKDB4MjYyODQpLCAweDA0MDAwMDAwIH0sCisJeyBfTU1JTygweDI2MzA0KSwgMHgwNDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNjQwMCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4MjY0MTApLCAweDAwMDAwMGEwIH0sCisJeyBfTU1JTygweDI2NDA0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNTQyMCksIDB4MDQxMDgwMjAgfSwKKwl7IF9NTUlPKDB4MjU0MjQpLCAweDEyODRhNDIwIH0sCisJeyBfTU1JTygweDI1NDFjKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNTQyOCksIDB4MDAwNDIwNDkgfSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3JlbmRlcl9iYXNpY19pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOworfQorCit2b2lkCitpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19oc3coc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKKwkJIjQwM2Q4ODMyLTFhMjctNGFhNi1hNjRlLWY1Mzg5Y2U3YjIxMiIsCisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3JlbmRlcl9iYXNpYzsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpYyk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ19yZW5kZXJfYmFzaWM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjQwM2Q4ODMyLTFhMjctNGFhNi1hNjRlLWY1Mzg5Y2U3YjIxMiI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd19yZW5kZXJfYmFzaWNfaWQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2hzdy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9oc3cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTk3ZjczCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9oc3cuaApAQCAtMCwwICsxLDE2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKKyAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQorICovCisKKyNpZm5kZWYgX19JOTE1X09BX0hTV19IX18KKyNkZWZpbmUgX19JOTE1X09BX0hTV19IX18KKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKK3ZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaHN3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9pY2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaWNsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ5MjA0MQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaWNsLmMKQEAgLTAsMCArMSw5OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KKworI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9vYV9pY2wuaCIKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZmYgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZmZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZmZmYgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0geworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4ZDA0KSwgMHgwMDAwMDIwMCB9LAorCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMjA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNDA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMjA2MDAwMCB9LAorCXsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjEzMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNDAwMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTEzMDA1NiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDEzMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTEzMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NDFmMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODFmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YzFmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMDFmMDAwMCB9LAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOworfQorCit2b2lkCitpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19pY2woc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKKwkJImEyOTE2NjVlLTI0NGItNGI3Ni05YjlhLTAxZGU5ZDNjODA2OCIsCisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImEyOTE2NjVlLTI0NGItNGI3Ni05YjlhLTAxZGU5ZDNjODA2OCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9pY2wuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaWNsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM2NDExMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaWNsLmgKQEAgLTAsMCArMSwxNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaWZuZGVmIF9fSTkxNV9PQV9JQ0xfSF9fCisjZGVmaW5lIF9fSTkxNV9PQV9JQ0xfSF9fCisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworCit2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2ljbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2JsZ3QyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2tibGd0Mi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjM2E2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2tibGd0Mi5jCkBAIC0wLDAgKzEsODkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfb2Ffa2JsZ3QyLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODEwMDEzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTMwMDQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ZTU0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Cit9CisKK3ZvaWQKK2k5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2tibGd0MihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAorCQkiYmFhM2M3ZTQtNTJiNi00Yjg1LTgwMWUtNDY1YTk0Yjc0NmRkIiwKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiYmFhM2M3ZTQtNTJiNi00Yjg1LTgwMWUtNDY1YTk0Yjc0NmRkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2tibGd0Mi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxndDIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTA1MzJmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxndDIuaApAQCAtMCwwICsxLDE2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKKyAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQorICovCisKKyNpZm5kZWYgX19JOTE1X09BX0tCTEdUMl9IX18KKyNkZWZpbmUgX19JOTE1X09BX0tCTEdUMl9IX18KKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKK3ZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfa2JsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxndDMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2JsZ3QzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJiZTVhOQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2JsZ3QzLmMKQEAgLTAsMCArMSw4OSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KKworI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9vYV9rYmxndDMuaCIKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0geworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MTAwMTMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDdlNTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKK30KKwordm9pZAoraTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfa2JsZ3QzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCisJCSJmMTc5MmYzMi02ZGIyLTRiNTAtYjRiMi01NTcxMjhmMTY4OGQiLAorCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICJmMTc5MmYzMi02ZGIyLTRiNTAtYjRiMi01NTcxMjhmMTY4OGQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2JsZ3QzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2tibGd0My5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZDcwNDUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2tibGd0My5oCkBAIC0wLDAgKzEsMTYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2lmbmRlZiBfX0k5MTVfT0FfS0JMR1QzX0hfXworI2RlZmluZSBfX0k5MTVfT0FfS0JMR1QzX0hfXworCitzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKKwordm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19rYmxndDMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0Mi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmMzNTllCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDIuYwpAQCAtMCwwICsxLDg4IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKKyAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQorICovCisKKyNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgorCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X29hX3NrbGd0Mi5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZmNyB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAorCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDEwMDAwMSB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0geworCXsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgxMDAxNiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkzMDA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwN2U1NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOworfQorCit2b2lkCitpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19za2xndDIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKKwkJIjE2NTE5NDlmLTBhYzAtNGNiMS1hMDZmLWRhZmQ3NGE0MDdkMSIsCisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjE2NTE5NDlmLTBhYzAtNGNiMS1hMDZmLWRhZmQ3NGE0MDdkMSI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRhNzBjNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QyLmgKQEAgLTAsMCArMSwxNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaWZuZGVmIF9fSTkxNV9PQV9TS0xHVDJfSF9fCisjZGVmaW5lIF9fSTkxNV9PQV9TS0xHVDJfSF9fCisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworCit2b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX3NrbGd0MihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0My5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMzUyZjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0My5jCkBAIC0wLDAgKzEsODkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfb2Ffc2tsZ3QzLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNmIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29hW10gPSB7CisJeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODEwMDEzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTMwMDQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ZTU0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Cit9CisKK3ZvaWQKK2k5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX3NrbGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAorCQkiMmI5ODU4MDMtZDNjOS00NjI5LThhNGYtNjM0YmZlY2JhMGU4IiwKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiMmI5ODU4MDMtZDNjOS00NjI5LThhNGYtNjM0YmZlY2JhMGU4IjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0My5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjc0ZWJhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDMuaApAQCAtMCwwICsxLDE2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKKyAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQorICovCisKKyNpZm5kZWYgX19JOTE1X09BX1NLTEdUM19IX18KKyNkZWZpbmUgX19JOTE1X09BX1NLTEdUM19IX18KKworc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CisKK3ZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3QzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3Q0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGYzNDUxMQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3Q0LmMKQEAgLTAsMCArMSw4OSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCisgKiBETyBOT1QgRURJVCBtYW51YWxseSEKKyAqLworCisjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KKworI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9vYV9za2xndDQuaCIKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0geworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MTAwMTMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDdlNTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKK30KKwordm9pZAoraTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3Q0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCisJCSI4ODJmYTQzMy0xZjRhLTRhNjctYTk2Mi1jNzQxODg4ZmU1ZjUiLAorCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI4ODJmYTQzMy0xZjRhLTRhNjctYTk2Mi1jNzQxODg4ZmU1ZjUiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOworCisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3Q0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0NC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3OGFiN2EKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0NC5oCkBAIC0wLDAgKzEsMTYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAorICogRE8gTk9UIEVESVQgbWFudWFsbHkhCisgKi8KKworI2lmbmRlZiBfX0k5MTVfT0FfU0tMR1Q0X0hfXworI2RlZmluZSBfX0k5MTVfT0FfU0tMR1Q0X0hfXworCitzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKKwordm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19za2xndDQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9hY3RpdmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2FjdGl2ZS5jCmluZGV4IGMwYjM1MzcuLjc3ZDg0NGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2FjdGl2ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2FjdGl2ZS5jCkBAIC00LDcgKzQsMTAgQEAKICAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KKwogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9wbS5oIgorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCiAKICNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCiAKQEAgLTEzLDM4ICsxNiw4NyBAQAogCiBzdHJ1Y3QgbGl2ZV9hY3RpdmUgewogCXN0cnVjdCBpOTE1X2FjdGl2ZSBiYXNlOworCXN0cnVjdCBrcmVmIHJlZjsKIAlib29sIHJldGlyZWQ7CiB9OwogCi1zdGF0aWMgdm9pZCBfX2xpdmVfYWN0aXZlX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmJhc2UpCitzdGF0aWMgdm9pZCBfX2xpdmVfZ2V0KHN0cnVjdCBsaXZlX2FjdGl2ZSAqYWN0aXZlKQoreworCWtyZWZfZ2V0KCZhY3RpdmUtPnJlZik7Cit9CisKK3N0YXRpYyB2b2lkIF9fbGl2ZV9mcmVlKHN0cnVjdCBsaXZlX2FjdGl2ZSAqYWN0aXZlKQoreworCWk5MTVfYWN0aXZlX2ZpbmkoJmFjdGl2ZS0+YmFzZSk7CisJa2ZyZWUoYWN0aXZlKTsKK30KKworc3RhdGljIHZvaWQgX19saXZlX3JlbGVhc2Uoc3RydWN0IGtyZWYgKnJlZikKK3sKKwlzdHJ1Y3QgbGl2ZV9hY3RpdmUgKmFjdGl2ZSA9IGNvbnRhaW5lcl9vZihyZWYsIHR5cGVvZigqYWN0aXZlKSwgcmVmKTsKKworCV9fbGl2ZV9mcmVlKGFjdGl2ZSk7Cit9CisKK3N0YXRpYyB2b2lkIF9fbGl2ZV9wdXQoc3RydWN0IGxpdmVfYWN0aXZlICphY3RpdmUpCit7CisJa3JlZl9wdXQoJmFjdGl2ZS0+cmVmLCBfX2xpdmVfcmVsZWFzZSk7Cit9CisKK3N0YXRpYyBpbnQgX19saXZlX2FjdGl2ZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmJhc2UpCit7CisJc3RydWN0IGxpdmVfYWN0aXZlICphY3RpdmUgPSBjb250YWluZXJfb2YoYmFzZSwgdHlwZW9mKCphY3RpdmUpLCBiYXNlKTsKKworCV9fbGl2ZV9nZXQoYWN0aXZlKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19saXZlX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmJhc2UpCiB7CiAJc3RydWN0IGxpdmVfYWN0aXZlICphY3RpdmUgPSBjb250YWluZXJfb2YoYmFzZSwgdHlwZW9mKCphY3RpdmUpLCBiYXNlKTsKIAogCWFjdGl2ZS0+cmV0aXJlZCA9IHRydWU7CisJX19saXZlX3B1dChhY3RpdmUpOwogfQogCi1zdGF0aWMgaW50IF9fbGl2ZV9hY3RpdmVfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCQkgICAgICAgc3RydWN0IGxpdmVfYWN0aXZlICphY3RpdmUpCitzdGF0aWMgc3RydWN0IGxpdmVfYWN0aXZlICpfX2xpdmVfYWxsb2Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJc3RydWN0IGxpdmVfYWN0aXZlICphY3RpdmU7CisKKwlhY3RpdmUgPSBremFsbG9jKHNpemVvZigqYWN0aXZlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFhY3RpdmUpCisJCXJldHVybiBOVUxMOworCisJa3JlZl9pbml0KCZhY3RpdmUtPnJlZik7CisJaTkxNV9hY3RpdmVfaW5pdChpOTE1LCAmYWN0aXZlLT5iYXNlLCBfX2xpdmVfYWN0aXZlLCBfX2xpdmVfcmV0aXJlKTsKKworCXJldHVybiBhY3RpdmU7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbGl2ZV9hY3RpdmUgKgorX19saXZlX2FjdGl2ZV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGk5MTVfc3dfZmVuY2UgKnN1Ym1pdDsKKwlzdHJ1Y3QgbGl2ZV9hY3RpdmUgKmFjdGl2ZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAl1bnNpZ25lZCBpbnQgY291bnQgPSAwOwogCWludCBlcnIgPSAwOwogCisJYWN0aXZlID0gX19saXZlX2FsbG9jKGk5MTUpOworCWlmICghYWN0aXZlKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwogCXN1Ym1pdCA9IGhlYXBfZmVuY2VfY3JlYXRlKEdGUF9LRVJORUwpOwotCWlmICghc3VibWl0KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWk5MTVfYWN0aXZlX2luaXQoaTkxNSwgJmFjdGl2ZS0+YmFzZSwgX19saXZlX2FjdGl2ZV9yZXRpcmUpOwotCWFjdGl2ZS0+cmV0aXJlZCA9IGZhbHNlOwotCi0JaWYgKCFpOTE1X2FjdGl2ZV9hY3F1aXJlKCZhY3RpdmUtPmJhc2UpKSB7Ci0JCXByX2VycigiRmlyc3QgaTkxNV9hY3RpdmVfYWNxdWlyZSBzaG91bGQgcmVwb3J0IGJlaW5nIGlkbGVcbiIpOwotCQllcnIgPSAtRUlOVkFMOwotCQlnb3RvIG91dDsKKwlpZiAoIXN1Ym1pdCkgeworCQlrZnJlZShhY3RpdmUpOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAl9CiAKKwllcnIgPSBpOTE1X2FjdGl2ZV9hY3F1aXJlKCZhY3RpdmUtPmJhc2UpOworCWlmIChlcnIpCisJCWdvdG8gb3V0OworCiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAKQEAgLTU4LDggKzExMCw3IEBAIHN0YXRpYyBpbnQgX19saXZlX2FjdGl2ZV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkJCSAgICAgICBzdWJtaXQsCiAJCQkJCQkgICAgICAgR0ZQX0tFUk5FTCk7CiAJCWlmIChlcnIgPj0gMCkKLQkJCWVyciA9IGk5MTVfYWN0aXZlX3JlZigmYWN0aXZlLT5iYXNlLAotCQkJCQkgICAgICBycS0+ZmVuY2UuY29udGV4dCwgcnEpOworCQkJZXJyID0gaTkxNV9hY3RpdmVfcmVmKCZhY3RpdmUtPmJhc2UsIHJxLT50aW1lbGluZSwgcnEpOwogCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKIAkJaWYgKGVycikgewogCQkJcHJfZXJyKCJGYWlsZWQgdG8gdHJhY2sgYWN0aXZlIHJlZiFcbiIpOwpAQCAtNzQsNzQgKzEyNSw5MiBAQCBzdGF0aWMgaW50IF9fbGl2ZV9hY3RpdmVfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCXByX2VycigiaTkxNV9hY3RpdmUgcmV0aXJlZCBiZWZvcmUgc3VibWlzc2lvbiFcbiIpOwogCQllcnIgPSAtRUlOVkFMOwogCX0KLQlpZiAoYWN0aXZlLT5iYXNlLmNvdW50ICE9IGNvdW50KSB7CisJaWYgKGF0b21pY19yZWFkKCZhY3RpdmUtPmJhc2UuY291bnQpICE9IGNvdW50KSB7CiAJCXByX2VycigiaTkxNV9hY3RpdmUgbm90IHRyYWNraW5nIGFsbCByZXF1ZXN0cywgZm91bmQgJWQsIGV4cGVjdGVkICVkXG4iLAotCQkgICAgICAgYWN0aXZlLT5iYXNlLmNvdW50LCBjb3VudCk7CisJCSAgICAgICBhdG9taWNfcmVhZCgmYWN0aXZlLT5iYXNlLmNvdW50KSwgY291bnQpOwogCQllcnIgPSAtRUlOVkFMOwogCX0KIAogb3V0OgogCWk5MTVfc3dfZmVuY2VfY29tbWl0KHN1Ym1pdCk7CiAJaGVhcF9mZW5jZV9wdXQoc3VibWl0KTsKKwlpZiAoZXJyKSB7CisJCV9fbGl2ZV9wdXQoYWN0aXZlKTsKKwkJYWN0aXZlID0gRVJSX1BUUihlcnIpOworCX0KIAotCXJldHVybiBlcnI7CisJcmV0dXJuIGFjdGl2ZTsKIH0KIAogc3RhdGljIGludCBsaXZlX2FjdGl2ZV93YWl0KHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKLQlzdHJ1Y3QgbGl2ZV9hY3RpdmUgYWN0aXZlOworCXN0cnVjdCBsaXZlX2FjdGl2ZSAqYWN0aXZlOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwotCWludCBlcnI7CisJaW50IGVyciA9IDA7CiAKIAkvKiBDaGVjayB0aGF0IHdlIGdldCBhIGNhbGxiYWNrIHdoZW4gcmVxdWVzdHMgcmV0aXJlIHVwb24gd2FpdGluZyAqLwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAotCWVyciA9IF9fbGl2ZV9hY3RpdmVfc2V0dXAoaTkxNSwgJmFjdGl2ZSk7CisJYWN0aXZlID0gX19saXZlX2FjdGl2ZV9zZXR1cChpOTE1KTsKKwlpZiAoSVNfRVJSKGFjdGl2ZSkpIHsKKwkJZXJyID0gUFRSX0VSUihhY3RpdmUpOworCQlnb3RvIGVycjsKKwl9CiAKLQlpOTE1X2FjdGl2ZV93YWl0KCZhY3RpdmUuYmFzZSk7Ci0JaWYgKCFhY3RpdmUucmV0aXJlZCkgeworCWk5MTVfYWN0aXZlX3dhaXQoJmFjdGl2ZS0+YmFzZSk7CisJaWYgKCFhY3RpdmUtPnJldGlyZWQpIHsKIAkJcHJfZXJyKCJpOTE1X2FjdGl2ZSBub3QgcmV0aXJlZCBhZnRlciB3YWl0aW5nIVxuIik7CiAJCWVyciA9IC1FSU5WQUw7CiAJfQogCi0JaTkxNV9hY3RpdmVfZmluaSgmYWN0aXZlLmJhc2UpOworCV9fbGl2ZV9wdXQoYWN0aXZlKTsKKwogCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKIAkJZXJyID0gLUVJTzsKIAorZXJyOgogCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCiAJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBsaXZlX2FjdGl2ZV9yZXRpcmUodm9pZCAqYXJnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwotCXN0cnVjdCBsaXZlX2FjdGl2ZSBhY3RpdmU7CisJc3RydWN0IGxpdmVfYWN0aXZlICphY3RpdmU7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Ci0JaW50IGVycjsKKwlpbnQgZXJyID0gMDsKIAogCS8qIENoZWNrIHRoYXQgd2UgZ2V0IGEgY2FsbGJhY2sgd2hlbiByZXF1ZXN0cyBhcmUgaW5kaXJlY3RseSByZXRpcmVkICovCiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCi0JZXJyID0gX19saXZlX2FjdGl2ZV9zZXR1cChpOTE1LCAmYWN0aXZlKTsKKwlhY3RpdmUgPSBfX2xpdmVfYWN0aXZlX3NldHVwKGk5MTUpOworCWlmIChJU19FUlIoYWN0aXZlKSkgeworCQllcnIgPSBQVFJfRVJSKGFjdGl2ZSk7CisJCWdvdG8gZXJyOworCX0KIAogCS8qIHdhaXRzIGZvciAmIHJldGlyZXMgYWxsIHJlcXVlc3RzICovCiAJaWYgKGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpKQogCQllcnIgPSAtRUlPOwogCi0JaWYgKCFhY3RpdmUucmV0aXJlZCkgeworCWlmICghYWN0aXZlLT5yZXRpcmVkKSB7CiAJCXByX2VycigiaTkxNV9hY3RpdmUgbm90IHJldGlyZWQgYWZ0ZXIgZmx1c2hpbmchXG4iKTsKIAkJZXJyID0gLUVJTlZBTDsKIAl9CiAKLQlpOTE1X2FjdGl2ZV9maW5pKCZhY3RpdmUuYmFzZSk7CisJX19saXZlX3B1dChhY3RpdmUpOworCitlcnI6CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKIAlyZXR1cm4gZXJyOwogfQogCkBAIC0xNTIsNyArMjIxLDcgQEAgaW50IGk5MTVfYWN0aXZlX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQlTVUJURVNUKGxpdmVfYWN0aXZlX3JldGlyZSksCiAJfTsKIAotCWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGk5MTUpKQorCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1cm4gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgaTkxNSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9idWRkeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfYnVkZHkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2Y3ODRlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfYnVkZHkuYwpAQCAtMCwwICsxLDcyMCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3ByaW1lX251bWJlcnMuaD4KKworI2luY2x1ZGUgIi4uL2k5MTVfc2VsZnRlc3QuaCIKKyNpbmNsdWRlICJpOTE1X3JhbmRvbS5oIgorCisjZGVmaW5lIFNaXzhHICgxVUxMIDw8IDMzKQorCitzdGF0aWMgdm9pZCBfX2lndF9kdW1wX2Jsb2NrKHN0cnVjdCBpOTE1X2J1ZGR5X21tICptbSwKKwkJCSAgICAgc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrLAorCQkJICAgICBib29sIGJ1ZGR5KQoreworCXByX2VycigiYmxvY2sgaW5mbzogaGVhZGVyPSVsbHgsIHN0YXRlPSV1LCBvcmRlcj0lZCwgb2Zmc2V0PSVsbHggc2l6ZT0lbGx4IHJvb3Q9JXMgYnVkZHk9JXNcbiIsCisJICAgICAgIGJsb2NrLT5oZWFkZXIsCisJICAgICAgIGk5MTVfYnVkZHlfYmxvY2tfc3RhdGUoYmxvY2spLAorCSAgICAgICBpOTE1X2J1ZGR5X2Jsb2NrX29yZGVyKGJsb2NrKSwKKwkgICAgICAgaTkxNV9idWRkeV9ibG9ja19vZmZzZXQoYmxvY2spLAorCSAgICAgICBpOTE1X2J1ZGR5X2Jsb2NrX3NpemUobW0sIGJsb2NrKSwKKwkgICAgICAgeWVzbm8oIWJsb2NrLT5wYXJlbnQpLAorCSAgICAgICB5ZXNubyhidWRkeSkpOworfQorCitzdGF0aWMgdm9pZCBpZ3RfZHVtcF9ibG9jayhzdHJ1Y3QgaTkxNV9idWRkeV9tbSAqbW0sCisJCQkgICBzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2spCit7CisJc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJ1ZGR5OworCisJX19pZ3RfZHVtcF9ibG9jayhtbSwgYmxvY2ssIGZhbHNlKTsKKworCWJ1ZGR5ID0gZ2V0X2J1ZGR5KGJsb2NrKTsKKwlpZiAoYnVkZHkpCisJCV9faWd0X2R1bXBfYmxvY2sobW0sIGJ1ZGR5LCB0cnVlKTsKK30KKworc3RhdGljIGludCBpZ3RfY2hlY2tfYmxvY2soc3RydWN0IGk5MTVfYnVkZHlfbW0gKm1tLAorCQkJICAgc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrKQoreworCXN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpidWRkeTsKKwl1bnNpZ25lZCBpbnQgYmxvY2tfc3RhdGU7CisJdTY0IGJsb2NrX3NpemU7CisJdTY0IG9mZnNldDsKKwlpbnQgZXJyID0gMDsKKworCWJsb2NrX3N0YXRlID0gaTkxNV9idWRkeV9ibG9ja19zdGF0ZShibG9jayk7CisKKwlpZiAoYmxvY2tfc3RhdGUgIT0gSTkxNV9CVUREWV9BTExPQ0FURUQgJiYKKwkgICAgYmxvY2tfc3RhdGUgIT0gSTkxNV9CVUREWV9GUkVFICYmCisJICAgIGJsb2NrX3N0YXRlICE9IEk5MTVfQlVERFlfU1BMSVQpIHsKKwkJcHJfZXJyKCJibG9jayBzdGF0ZSBtaXNtYXRjaFxuIik7CisJCWVyciA9IC1FSU5WQUw7CisJfQorCisJYmxvY2tfc2l6ZSA9IGk5MTVfYnVkZHlfYmxvY2tfc2l6ZShtbSwgYmxvY2spOworCW9mZnNldCA9IGk5MTVfYnVkZHlfYmxvY2tfb2Zmc2V0KGJsb2NrKTsKKworCWlmIChibG9ja19zaXplIDwgbW0tPmNodW5rX3NpemUpIHsKKwkJcHJfZXJyKCJibG9jayBzaXplIHNtYWxsZXIgdGhhbiBtaW4gc2l6ZVxuIik7CisJCWVyciA9IC1FSU5WQUw7CisJfQorCisJaWYgKCFpc19wb3dlcl9vZl8yKGJsb2NrX3NpemUpKSB7CisJCXByX2VycigiYmxvY2sgc2l6ZSBub3QgcG93ZXIgb2YgdHdvXG4iKTsKKwkJZXJyID0gLUVJTlZBTDsKKwl9CisKKwlpZiAoIUlTX0FMSUdORUQoYmxvY2tfc2l6ZSwgbW0tPmNodW5rX3NpemUpKSB7CisJCXByX2VycigiYmxvY2sgc2l6ZSBub3QgYWxpZ25lZCB0byBtaW4gc2l6ZVxuIik7CisJCWVyciA9IC1FSU5WQUw7CisJfQorCisJaWYgKCFJU19BTElHTkVEKG9mZnNldCwgbW0tPmNodW5rX3NpemUpKSB7CisJCXByX2VycigiYmxvY2sgb2Zmc2V0IG5vdCBhbGlnbmVkIHRvIG1pbiBzaXplXG4iKTsKKwkJZXJyID0gLUVJTlZBTDsKKwl9CisKKwlpZiAoIUlTX0FMSUdORUQob2Zmc2V0LCBibG9ja19zaXplKSkgeworCQlwcl9lcnIoImJsb2NrIG9mZnNldCBub3QgYWxpZ25lZCB0byBibG9jayBzaXplXG4iKTsKKwkJZXJyID0gLUVJTlZBTDsKKwl9CisKKwlidWRkeSA9IGdldF9idWRkeShibG9jayk7CisKKwlpZiAoIWJ1ZGR5ICYmIGJsb2NrLT5wYXJlbnQpIHsKKwkJcHJfZXJyKCJidWRkeSBoYXMgZ29uZSBmaXNoaW5nXG4iKTsKKwkJZXJyID0gLUVJTlZBTDsKKwl9CisKKwlpZiAoYnVkZHkpIHsKKwkJaWYgKGk5MTVfYnVkZHlfYmxvY2tfb2Zmc2V0KGJ1ZGR5KSAhPSAob2Zmc2V0IF4gYmxvY2tfc2l6ZSkpIHsKKwkJCXByX2VycigiYnVkZHkgaGFzIHdyb25nIG9mZnNldFxuIik7CisJCQllcnIgPSAtRUlOVkFMOworCQl9CisKKwkJaWYgKGk5MTVfYnVkZHlfYmxvY2tfc2l6ZShtbSwgYnVkZHkpICE9IGJsb2NrX3NpemUpIHsKKwkJCXByX2VycigiYnVkZHkgc2l6ZSBtaXNtYXRjaFxuIik7CisJCQllcnIgPSAtRUlOVkFMOworCQl9CisKKwkJaWYgKGk5MTVfYnVkZHlfYmxvY2tfc3RhdGUoYnVkZHkpID09IGJsb2NrX3N0YXRlICYmCisJCSAgICBibG9ja19zdGF0ZSA9PSBJOTE1X0JVRERZX0ZSRUUpIHsKKwkJCXByX2VycigiYmxvY2sgYW5kIGl0cyBidWRkeSBhcmUgZnJlZVxuIik7CisJCQllcnIgPSAtRUlOVkFMOworCQl9CisJfQorCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBpZ3RfY2hlY2tfYmxvY2tzKHN0cnVjdCBpOTE1X2J1ZGR5X21tICptbSwKKwkJCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICpibG9ja3MsCisJCQkgICAgdTY0IGV4cGVjdGVkX3NpemUsCisJCQkgICAgYm9vbCBpc19jb250aWd1b3VzKQoreworCXN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jazsKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqcHJldjsKKwl1NjQgdG90YWw7CisJaW50IGVyciA9IDA7CisKKwlibG9jayA9IE5VTEw7CisJcHJldiA9IE5VTEw7CisJdG90YWwgPSAwOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShibG9jaywgYmxvY2tzLCBsaW5rKSB7CisJCWVyciA9IGlndF9jaGVja19ibG9jayhtbSwgYmxvY2spOworCisJCWlmICghaTkxNV9idWRkeV9ibG9ja19pc19hbGxvY2F0ZWQoYmxvY2spKSB7CisJCQlwcl9lcnIoImJsb2NrIG5vdCBhbGxvY2F0ZWRcbiIpLAorCQkJZXJyID0gLUVJTlZBTDsKKwkJfQorCisJCWlmIChpc19jb250aWd1b3VzICYmIHByZXYpIHsKKwkJCXU2NCBwcmV2X2Jsb2NrX3NpemU7CisJCQl1NjQgcHJldl9vZmZzZXQ7CisJCQl1NjQgb2Zmc2V0OworCisJCQlwcmV2X29mZnNldCA9IGk5MTVfYnVkZHlfYmxvY2tfb2Zmc2V0KHByZXYpOworCQkJcHJldl9ibG9ja19zaXplID0gaTkxNV9idWRkeV9ibG9ja19zaXplKG1tLCBwcmV2KTsKKwkJCW9mZnNldCA9IGk5MTVfYnVkZHlfYmxvY2tfb2Zmc2V0KGJsb2NrKTsKKworCQkJaWYgKG9mZnNldCAhPSAocHJldl9vZmZzZXQgKyBwcmV2X2Jsb2NrX3NpemUpKSB7CisJCQkJcHJfZXJyKCJibG9jayBvZmZzZXQgbWlzbWF0Y2hcbiIpOworCQkJCWVyciA9IC1FSU5WQUw7CisJCQl9CisJCX0KKworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisKKwkJdG90YWwgKz0gaTkxNV9idWRkeV9ibG9ja19zaXplKG1tLCBibG9jayk7CisJCXByZXYgPSBibG9jazsKKwl9CisKKwlpZiAoIWVycikgeworCQlpZiAodG90YWwgIT0gZXhwZWN0ZWRfc2l6ZSkgeworCQkJcHJfZXJyKCJzaXplIG1pc21hdGNoLCBleHBlY3RlZD0lbGx4LCBmb3VuZD0lbGx4XG4iLAorCQkJICAgICAgIGV4cGVjdGVkX3NpemUsIHRvdGFsKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCX0KKwkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAocHJldikgeworCQlwcl9lcnIoInByZXYgYmxvY2ssIGR1bXA6XG4iKTsKKwkJaWd0X2R1bXBfYmxvY2sobW0sIHByZXYpOworCX0KKworCWlmIChibG9jaykgeworCQlwcl9lcnIoImJhZCBibG9jaywgZHVtcDpcbiIpOworCQlpZ3RfZHVtcF9ibG9jayhtbSwgYmxvY2spOworCX0KKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgaWd0X2NoZWNrX21tKHN0cnVjdCBpOTE1X2J1ZGR5X21tICptbSkKK3sKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqcm9vdDsKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqcHJldjsKKwl1bnNpZ25lZCBpbnQgaTsKKwl1NjQgdG90YWw7CisJaW50IGVyciA9IDA7CisKKwlpZiAoIW1tLT5uX3Jvb3RzKSB7CisJCXByX2Vycigibl9yb290cyBpcyB6ZXJvXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKG1tLT5uX3Jvb3RzICE9IGh3ZWlnaHQ2NChtbS0+c2l6ZSkpIHsKKwkJcHJfZXJyKCJuX3Jvb3RzIG1pc21hdGNoLCBuX3Jvb3RzPSV1LCBleHBlY3RlZD0lbHVcbiIsCisJCSAgICAgICBtbS0+bl9yb290cywgaHdlaWdodDY0KG1tLT5zaXplKSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJvb3QgPSBOVUxMOworCXByZXYgPSBOVUxMOworCXRvdGFsID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBtbS0+bl9yb290czsgKytpKSB7CisJCXN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jazsKKwkJdW5zaWduZWQgaW50IG9yZGVyOworCisJCXJvb3QgPSBtbS0+cm9vdHNbaV07CisJCWlmICghcm9vdCkgeworCQkJcHJfZXJyKCJyb290KCV1KSBpcyBOVUxMXG4iLCBpKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlicmVhazsKKwkJfQorCisJCWVyciA9IGlndF9jaGVja19ibG9jayhtbSwgcm9vdCk7CisKKwkJaWYgKCFpOTE1X2J1ZGR5X2Jsb2NrX2lzX2ZyZWUocm9vdCkpIHsKKwkJCXByX2Vycigicm9vdCBub3QgZnJlZVxuIik7CisJCQllcnIgPSAtRUlOVkFMOworCQl9CisKKwkJb3JkZXIgPSBpOTE1X2J1ZGR5X2Jsb2NrX29yZGVyKHJvb3QpOworCisJCWlmICghaSkgeworCQkJaWYgKG9yZGVyICE9IG1tLT5tYXhfb3JkZXIpIHsKKwkJCQlwcl9lcnIoIm1heCBvcmRlciByb290IG1pc3NpbmdcbiIpOworCQkJCWVyciA9IC1FSU5WQUw7CisJCQl9CisJCX0KKworCQlpZiAocHJldikgeworCQkJdTY0IHByZXZfYmxvY2tfc2l6ZTsKKwkJCXU2NCBwcmV2X29mZnNldDsKKwkJCXU2NCBvZmZzZXQ7CisKKwkJCXByZXZfb2Zmc2V0ID0gaTkxNV9idWRkeV9ibG9ja19vZmZzZXQocHJldik7CisJCQlwcmV2X2Jsb2NrX3NpemUgPSBpOTE1X2J1ZGR5X2Jsb2NrX3NpemUobW0sIHByZXYpOworCQkJb2Zmc2V0ID0gaTkxNV9idWRkeV9ibG9ja19vZmZzZXQocm9vdCk7CisKKwkJCWlmIChvZmZzZXQgIT0gKHByZXZfb2Zmc2V0ICsgcHJldl9ibG9ja19zaXplKSkgeworCQkJCXByX2Vycigicm9vdCBvZmZzZXQgbWlzbWF0Y2hcbiIpOworCQkJCWVyciA9IC1FSU5WQUw7CisJCQl9CisJCX0KKworCQlibG9jayA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmbW0tPmZyZWVfbGlzdFtvcmRlcl0sCisJCQkJCQkgc3RydWN0IGk5MTVfYnVkZHlfYmxvY2ssCisJCQkJCQkgbGluayk7CisJCWlmIChibG9jayAhPSByb290KSB7CisJCQlwcl9lcnIoInJvb3QgbWlzbWF0Y2ggYXQgb3JkZXI9JXVcbiIsIG9yZGVyKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCX0KKworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisKKwkJcHJldiA9IHJvb3Q7CisJCXRvdGFsICs9IGk5MTVfYnVkZHlfYmxvY2tfc2l6ZShtbSwgcm9vdCk7CisJfQorCisJaWYgKCFlcnIpIHsKKwkJaWYgKHRvdGFsICE9IG1tLT5zaXplKSB7CisJCQlwcl9lcnIoImV4cGVjdGVkIG1tIHNpemU9JWxseCwgZm91bmQ9JWxseFxuIiwgbW0tPnNpemUsCisJCQkgICAgICAgdG90YWwpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJfQorCQlyZXR1cm4gZXJyOworCX0KKworCWlmIChwcmV2KSB7CisJCXByX2VycigicHJldiByb290KCV1KSwgZHVtcDpcbiIsIGkgLSAxKTsKKwkJaWd0X2R1bXBfYmxvY2sobW0sIHByZXYpOworCX0KKworCWlmIChyb290KSB7CisJCXByX2VycigiYmFkIHJvb3QoJXUpLCBkdW1wOlxuIiwgaSk7CisJCWlndF9kdW1wX2Jsb2NrKG1tLCByb290KTsKKwl9CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgdm9pZCBpZ3RfbW1fY29uZmlnKHU2NCAqc2l6ZSwgdTY0ICpjaHVua19zaXplKQoreworCUk5MTVfUk5EX1NUQVRFKHBybmcpOworCXU2NCBzLCBtczsKKworCS8qIE5vdGhpbmcgZmFuY3ksIGp1c3QgdHJ5IHRvIGdldCBhbiBpbnRlcmVzdGluZyBiaXQgcGF0dGVybiAqLworCisJcHJhbmRvbV9zZWVkX3N0YXRlKCZwcm5nLCBpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9zZWVkKTsKKworCXMgPSBpOTE1X3ByYW5kb21fdTY0X3N0YXRlKCZwcm5nKSAmIChTWl84RyAtIDEpOworCW1zID0gQklUX1VMTCgxMiArIChwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZykgJSBpbG9nMihzID4+IDEyKSkpOworCXMgPSBtYXgocyAmIC1tcywgbXMpOworCisJKmNodW5rX3NpemUgPSBtczsKKwkqc2l6ZSA9IHM7Cit9CisKK3N0YXRpYyBpbnQgaWd0X2J1ZGR5X2FsbG9jX3Ntb2tlKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgaTkxNV9idWRkeV9tbSBtbTsKKwlpbnQgbWF4X29yZGVyOworCXU2NCBjaHVua19zaXplOworCXU2NCBtbV9zaXplOworCWludCBlcnI7CisKKwlpZ3RfbW1fY29uZmlnKCZtbV9zaXplLCAmY2h1bmtfc2l6ZSk7CisKKwlwcl9pbmZvKCJidWRkeV9pbml0IHdpdGggc2l6ZT0lbGx4LCBjaHVua19zaXplPSVsbHhcbiIsIG1tX3NpemUsIGNodW5rX3NpemUpOworCisJZXJyID0gaTkxNV9idWRkeV9pbml0KCZtbSwgbW1fc2l6ZSwgY2h1bmtfc2l6ZSk7CisJaWYgKGVycikgeworCQlwcl9lcnIoImJ1ZGR5X2luaXQgZmFpbGVkKCVkKVxuIiwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwlmb3IgKG1heF9vcmRlciA9IG1tLm1heF9vcmRlcjsgbWF4X29yZGVyID49IDA7IG1heF9vcmRlci0tKSB7CisJCXN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jazsKKwkJaW50IG9yZGVyOworCQlMSVNUX0hFQUQoYmxvY2tzKTsKKwkJdTY0IHRvdGFsOworCisJCWVyciA9IGlndF9jaGVja19tbSgmbW0pOworCQlpZiAoZXJyKSB7CisJCQlwcl9lcnIoInByZS1tbSBjaGVjayBmYWlsZWQsIGFib3J0XG4iKTsKKwkJCWJyZWFrOworCQl9CisKKwkJcHJfaW5mbygiZmlsbGluZyBmcm9tIG1heF9vcmRlcj0ldVxuIiwgbWF4X29yZGVyKTsKKworCQlvcmRlciA9IG1heF9vcmRlcjsKKwkJdG90YWwgPSAwOworCisJCWRvIHsKK3JldHJ5OgorCQkJYmxvY2sgPSBpOTE1X2J1ZGR5X2FsbG9jKCZtbSwgb3JkZXIpOworCQkJaWYgKElTX0VSUihibG9jaykpIHsKKwkJCQllcnIgPSBQVFJfRVJSKGJsb2NrKTsKKwkJCQlpZiAoZXJyID09IC1FTk9NRU0pIHsKKwkJCQkJcHJfaW5mbygiYnVkZHlfYWxsb2MgaGl0IC1FTk9NRU0gd2l0aCBvcmRlcj0lZFxuIiwKKwkJCQkJCW9yZGVyKTsKKwkJCQl9IGVsc2UgeworCQkJCQlpZiAob3JkZXItLSkgeworCQkJCQkJZXJyID0gMDsKKwkJCQkJCWdvdG8gcmV0cnk7CisJCQkJCX0KKworCQkJCQlwcl9lcnIoImJ1ZGR5X2FsbG9jIHdpdGggb3JkZXI9JWQgZmFpbGVkKCVkKVxuIiwKKwkJCQkJICAgICAgIG9yZGVyLCBlcnIpOworCQkJCX0KKworCQkJCWJyZWFrOworCQkJfQorCisJCQlsaXN0X2FkZF90YWlsKCZibG9jay0+bGluaywgJmJsb2Nrcyk7CisKKwkJCWlmIChpOTE1X2J1ZGR5X2Jsb2NrX29yZGVyKGJsb2NrKSAhPSBvcmRlcikgeworCQkJCXByX2VycigiYnVkZHlfYWxsb2Mgb3JkZXIgbWlzbWF0Y2hcbiIpOworCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCXRvdGFsICs9IGk5MTVfYnVkZHlfYmxvY2tfc2l6ZSgmbW0sIGJsb2NrKTsKKwkJfSB3aGlsZSAodG90YWwgPCBtbS5zaXplKTsKKworCQlpZiAoIWVycikKKwkJCWVyciA9IGlndF9jaGVja19ibG9ja3MoJm1tLCAmYmxvY2tzLCB0b3RhbCwgZmFsc2UpOworCisJCWk5MTVfYnVkZHlfZnJlZV9saXN0KCZtbSwgJmJsb2Nrcyk7CisKKwkJaWYgKCFlcnIpIHsKKwkJCWVyciA9IGlndF9jaGVja19tbSgmbW0pOworCQkJaWYgKGVycikKKwkJCQlwcl9lcnIoInBvc3QtbW0gY2hlY2sgZmFpbGVkXG4iKTsKKwkJfQorCisJCWlmIChlcnIpCisJCQlicmVhazsKKwl9CisKKwlpZiAoZXJyID09IC1FTk9NRU0pCisJCWVyciA9IDA7CisKKwlpOTE1X2J1ZGR5X2ZpbmkoJm1tKTsKKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgaWd0X2J1ZGR5X2FsbG9jX3Blc3NpbWlzdGljKHZvaWQgKmFyZykKK3sKKwljb25zdCB1bnNpZ25lZCBpbnQgbWF4X29yZGVyID0gMTY7CisJc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrLCAqYm47CisJc3RydWN0IGk5MTVfYnVkZHlfbW0gbW07CisJdW5zaWduZWQgaW50IG9yZGVyOworCUxJU1RfSEVBRChibG9ja3MpOworCWludCBlcnI7CisKKwkvKgorCSAqIENyZWF0ZSBhIHBvdC1zaXplZCBtbSwgdGhlbiBhbGxvY2F0ZSBvbmUgb2YgZWFjaCBwb3NzaWJsZQorCSAqIG9yZGVyIHdpdGhpbi4gVGhpcyBzaG91bGQgbGVhdmUgdGhlIG1tIHdpdGggZXhhY3RseSBvbmUKKwkgKiBwYWdlIGxlZnQuCisJICovCisKKwllcnIgPSBpOTE1X2J1ZGR5X2luaXQoJm1tLCBQQUdFX1NJWkUgPDwgbWF4X29yZGVyLCBQQUdFX1NJWkUpOworCWlmIChlcnIpIHsKKwkJcHJfZXJyKCJidWRkeV9pbml0IGZhaWxlZCglZClcbiIsIGVycik7CisJCXJldHVybiBlcnI7CisJfQorCUdFTV9CVUdfT04obW0ubWF4X29yZGVyICE9IG1heF9vcmRlcik7CisKKwlmb3IgKG9yZGVyID0gMDsgb3JkZXIgPCBtYXhfb3JkZXI7IG9yZGVyKyspIHsKKwkJYmxvY2sgPSBpOTE1X2J1ZGR5X2FsbG9jKCZtbSwgb3JkZXIpOworCQlpZiAoSVNfRVJSKGJsb2NrKSkgeworCQkJcHJfaW5mbygiYnVkZHlfYWxsb2MgaGl0IC1FTk9NRU0gd2l0aCBvcmRlcj0lZFxuIiwKKwkJCQlvcmRlcik7CisJCQllcnIgPSBQVFJfRVJSKGJsb2NrKTsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJbGlzdF9hZGRfdGFpbCgmYmxvY2stPmxpbmssICZibG9ja3MpOworCX0KKworCS8qIEFuZCBub3cgdGhlIGxhc3QgcmVtYWluaW5nIGJsb2NrIGF2YWlsYWJsZSAqLworCWJsb2NrID0gaTkxNV9idWRkeV9hbGxvYygmbW0sIDApOworCWlmIChJU19FUlIoYmxvY2spKSB7CisJCXByX2luZm8oImJ1ZGR5X2FsbG9jIGhpdCAtRU5PTUVNIG9uIGZpbmFsIGFsbG9jXG4iKTsKKwkJZXJyID0gUFRSX0VSUihibG9jayk7CisJCWdvdG8gZXJyOworCX0KKwlsaXN0X2FkZF90YWlsKCZibG9jay0+bGluaywgJmJsb2Nrcyk7CisKKwkvKiBTaG91bGQgYmUgY29tcGxldGVseSBmdWxsISAqLworCWZvciAob3JkZXIgPSBtYXhfb3JkZXI7IG9yZGVyLS07ICkgeworCQlibG9jayA9IGk5MTVfYnVkZHlfYWxsb2MoJm1tLCBvcmRlcik7CisJCWlmICghSVNfRVJSKGJsb2NrKSkgeworCQkJcHJfaW5mbygiYnVkZHlfYWxsb2MgdW5leHBlY3RlZGx5IHN1Y2NlZWRlZCBhdCBvcmRlciAlZCwgaXQgc2hvdWxkIGJlIGZ1bGwhIiwKKwkJCQlvcmRlcik7CisJCQlsaXN0X2FkZF90YWlsKCZibG9jay0+bGluaywgJmJsb2Nrcyk7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBlcnI7CisJCX0KKwl9CisKKwlibG9jayA9IGxpc3RfbGFzdF9lbnRyeSgmYmxvY2tzLCB0eXBlb2YoKmJsb2NrKSwgbGluayk7CisJbGlzdF9kZWwoJmJsb2NrLT5saW5rKTsKKwlpOTE1X2J1ZGR5X2ZyZWUoJm1tLCBibG9jayk7CisKKwkvKiBBcyB3ZSBmcmVlIGluIGluY3JlYXNpbmcgc2l6ZSwgd2UgbWFrZSBhdmFpbGFibGUgbGFyZ2VyIGJsb2NrcyAqLworCW9yZGVyID0gMTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYmxvY2ssIGJuLCAmYmxvY2tzLCBsaW5rKSB7CisJCWxpc3RfZGVsKCZibG9jay0+bGluayk7CisJCWk5MTVfYnVkZHlfZnJlZSgmbW0sIGJsb2NrKTsKKworCQlibG9jayA9IGk5MTVfYnVkZHlfYWxsb2MoJm1tLCBvcmRlcik7CisJCWlmIChJU19FUlIoYmxvY2spKSB7CisJCQlwcl9pbmZvKCJidWRkeV9hbGxvYyAocmVhbGxvYykgaGl0IC1FTk9NRU0gd2l0aCBvcmRlcj0lZFxuIiwKKwkJCQlvcmRlcik7CisJCQllcnIgPSBQVFJfRVJSKGJsb2NrKTsKKwkJCWdvdG8gZXJyOworCQl9CisJCWk5MTVfYnVkZHlfZnJlZSgmbW0sIGJsb2NrKTsKKwkJb3JkZXIrKzsKKwl9CisKKwkvKiBUbyBjb25maXJtLCBub3cgdGhlIHdob2xlIG1tIHNob3VsZCBiZSBhdmFpbGFibGUgKi8KKwlibG9jayA9IGk5MTVfYnVkZHlfYWxsb2MoJm1tLCBtYXhfb3JkZXIpOworCWlmIChJU19FUlIoYmxvY2spKSB7CisJCXByX2luZm8oImJ1ZGR5X2FsbG9jIChyZWFsbG9jKSBoaXQgLUVOT01FTSB3aXRoIG9yZGVyPSVkXG4iLAorCQkJbWF4X29yZGVyKTsKKwkJZXJyID0gUFRSX0VSUihibG9jayk7CisJCWdvdG8gZXJyOworCX0KKwlpOTE1X2J1ZGR5X2ZyZWUoJm1tLCBibG9jayk7CisKK2VycjoKKwlpOTE1X2J1ZGR5X2ZyZWVfbGlzdCgmbW0sICZibG9ja3MpOworCWk5MTVfYnVkZHlfZmluaSgmbW0pOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgaWd0X2J1ZGR5X2FsbG9jX29wdGltaXN0aWModm9pZCAqYXJnKQoreworCWNvbnN0IGludCBtYXhfb3JkZXIgPSAxNjsKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2s7CisJc3RydWN0IGk5MTVfYnVkZHlfbW0gbW07CisJTElTVF9IRUFEKGJsb2Nrcyk7CisJaW50IG9yZGVyOworCWludCBlcnI7CisKKwkvKgorCSAqIENyZWF0ZSBhIG1tIHdpdGggb25lIGJsb2NrIG9mIGVhY2ggb3JkZXIgYXZhaWxhYmxlLCBhbmQKKwkgKiB0cnkgdG8gYWxsb2NhdGUgdGhlbSBhbGwuCisJICovCisKKwllcnIgPSBpOTE1X2J1ZGR5X2luaXQoJm1tLAorCQkJICAgICAgUEFHRV9TSVpFICogKCgxIDw8IChtYXhfb3JkZXIgKyAxKSkgLSAxKSwKKwkJCSAgICAgIFBBR0VfU0laRSk7CisJaWYgKGVycikgeworCQlwcl9lcnIoImJ1ZGR5X2luaXQgZmFpbGVkKCVkKVxuIiwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisJR0VNX0JVR19PTihtbS5tYXhfb3JkZXIgIT0gbWF4X29yZGVyKTsKKworCWZvciAob3JkZXIgPSAwOyBvcmRlciA8PSBtYXhfb3JkZXI7IG9yZGVyKyspIHsKKwkJYmxvY2sgPSBpOTE1X2J1ZGR5X2FsbG9jKCZtbSwgb3JkZXIpOworCQlpZiAoSVNfRVJSKGJsb2NrKSkgeworCQkJcHJfaW5mbygiYnVkZHlfYWxsb2MgaGl0IC1FTk9NRU0gd2l0aCBvcmRlcj0lZFxuIiwKKwkJCQlvcmRlcik7CisJCQllcnIgPSBQVFJfRVJSKGJsb2NrKTsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJbGlzdF9hZGRfdGFpbCgmYmxvY2stPmxpbmssICZibG9ja3MpOworCX0KKworCS8qIFNob3VsZCBiZSBjb21wbGV0ZWx5IGZ1bGwhICovCisJYmxvY2sgPSBpOTE1X2J1ZGR5X2FsbG9jKCZtbSwgMCk7CisJaWYgKCFJU19FUlIoYmxvY2spKSB7CisJCXByX2luZm8oImJ1ZGR5X2FsbG9jIHVuZXhwZWN0ZWRseSBzdWNjZWVkZWQsIGl0IHNob3VsZCBiZSBmdWxsISIpOworCQlsaXN0X2FkZF90YWlsKCZibG9jay0+bGluaywgJmJsb2Nrcyk7CisJCWVyciA9IC1FSU5WQUw7CisJCWdvdG8gZXJyOworCX0KKworZXJyOgorCWk5MTVfYnVkZHlfZnJlZV9saXN0KCZtbSwgJmJsb2Nrcyk7CisJaTkxNV9idWRkeV9maW5pKCZtbSk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBpZ3RfYnVkZHlfYWxsb2NfcGF0aG9sb2dpY2FsKHZvaWQgKmFyZykKK3sKKwljb25zdCBpbnQgbWF4X29yZGVyID0gMTY7CisJc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrOworCXN0cnVjdCBpOTE1X2J1ZGR5X21tIG1tOworCUxJU1RfSEVBRChibG9ja3MpOworCUxJU1RfSEVBRChob2xlcyk7CisJaW50IG9yZGVyLCB0b3A7CisJaW50IGVycjsKKworCS8qCisJICogQ3JlYXRlIGEgcG90LXNpemVkIG1tLCB0aGVuIGFsbG9jYXRlIG9uZSBvZiBlYWNoIHBvc3NpYmxlCisJICogb3JkZXIgd2l0aGluLiBUaGlzIHNob3VsZCBsZWF2ZSB0aGUgbW0gd2l0aCBleGFjdGx5IG9uZQorCSAqIHBhZ2UgbGVmdC4gRnJlZSB0aGUgbGFyZ2VzdCBibG9jaywgdGhlbiB3aGl0dGxlIGRvd24gYWdhaW4uCisJICogRXZlbnR1YWxseSB3ZSB3aWxsIGhhdmUgYSBmdWxseSA1MCUgZnJhZ21lbnRlZCBtbS4KKwkgKi8KKworCWVyciA9IGk5MTVfYnVkZHlfaW5pdCgmbW0sIFBBR0VfU0laRSA8PCBtYXhfb3JkZXIsIFBBR0VfU0laRSk7CisJaWYgKGVycikgeworCQlwcl9lcnIoImJ1ZGR5X2luaXQgZmFpbGVkKCVkKVxuIiwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisJR0VNX0JVR19PTihtbS5tYXhfb3JkZXIgIT0gbWF4X29yZGVyKTsKKworCWZvciAodG9wID0gbWF4X29yZGVyOyB0b3A7IHRvcC0tKSB7CisJCS8qIE1ha2Ugcm9vbSBieSBmcmVlaW5nIHRoZSBsYXJnZXN0IGFsbG9jYXRlZCBibG9jayAqLworCQlibG9jayA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmYmxvY2tzLCB0eXBlb2YoKmJsb2NrKSwgbGluayk7CisJCWlmIChibG9jaykgeworCQkJbGlzdF9kZWwoJmJsb2NrLT5saW5rKTsKKwkJCWk5MTVfYnVkZHlfZnJlZSgmbW0sIGJsb2NrKTsKKwkJfQorCisJCWZvciAob3JkZXIgPSB0b3A7IG9yZGVyLS07ICkgeworCQkJYmxvY2sgPSBpOTE1X2J1ZGR5X2FsbG9jKCZtbSwgb3JkZXIpOworCQkJaWYgKElTX0VSUihibG9jaykpIHsKKwkJCQlwcl9pbmZvKCJidWRkeV9hbGxvYyBoaXQgLUVOT01FTSB3aXRoIG9yZGVyPSVkLCB0b3A9JWRcbiIsCisJCQkJCW9yZGVyLCB0b3ApOworCQkJCWVyciA9IFBUUl9FUlIoYmxvY2spOworCQkJCWdvdG8gZXJyOworCQkJfQorCQkJbGlzdF9hZGRfdGFpbCgmYmxvY2stPmxpbmssICZibG9ja3MpOworCQl9CisKKwkJLyogVGhlcmUgc2hvdWxkIGJlIG9uZSBmaW5hbCBwYWdlIGZvciB0aGlzIHN1Yi1hbGxvY2F0aW9uICovCisJCWJsb2NrID0gaTkxNV9idWRkeV9hbGxvYygmbW0sIDApOworCQlpZiAoSVNfRVJSKGJsb2NrKSkgeworCQkJcHJfaW5mbygiYnVkZHlfYWxsb2MgaGl0IC1FTk9NRU0gZm9yIGhvbGVcbiIpOworCQkJZXJyID0gUFRSX0VSUihibG9jayk7CisJCQlnb3RvIGVycjsKKwkJfQorCQlsaXN0X2FkZF90YWlsKCZibG9jay0+bGluaywgJmhvbGVzKTsKKworCQlibG9jayA9IGk5MTVfYnVkZHlfYWxsb2MoJm1tLCB0b3ApOworCQlpZiAoIUlTX0VSUihibG9jaykpIHsKKwkJCXByX2luZm8oImJ1ZGR5X2FsbG9jIHVuZXhwZWN0ZWRseSBzdWNjZWVkZWQgYXQgdG9wLW9yZGVyICVkLyVkLCBpdCBzaG91bGQgYmUgZnVsbCEiLAorCQkJCXRvcCwgbWF4X29yZGVyKTsKKwkJCWxpc3RfYWRkX3RhaWwoJmJsb2NrLT5saW5rLCAmYmxvY2tzKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlnb3RvIGVycjsKKwkJfQorCX0KKworCWk5MTVfYnVkZHlfZnJlZV9saXN0KCZtbSwgJmhvbGVzKTsKKworCS8qIE5vdGhpbmcgbGFyZ2VyIHRoYW4gYmxvY2tzIG9mIGNodW5rX3NpemUgbm93IGF2YWlsYWJsZSAqLworCWZvciAob3JkZXIgPSAxOyBvcmRlciA8PSBtYXhfb3JkZXI7IG9yZGVyKyspIHsKKwkJYmxvY2sgPSBpOTE1X2J1ZGR5X2FsbG9jKCZtbSwgb3JkZXIpOworCQlpZiAoIUlTX0VSUihibG9jaykpIHsKKwkJCXByX2luZm8oImJ1ZGR5X2FsbG9jIHVuZXhwZWN0ZWRseSBzdWNjZWVkZWQgYXQgb3JkZXIgJWQsIGl0IHNob3VsZCBiZSBmdWxsISIsCisJCQkJb3JkZXIpOworCQkJbGlzdF9hZGRfdGFpbCgmYmxvY2stPmxpbmssICZibG9ja3MpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyOworCQl9CisJfQorCitlcnI6CisJbGlzdF9zcGxpY2VfdGFpbCgmaG9sZXMsICZibG9ja3MpOworCWk5MTVfYnVkZHlfZnJlZV9saXN0KCZtbSwgJmJsb2Nrcyk7CisJaTkxNV9idWRkeV9maW5pKCZtbSk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBpZ3RfYnVkZHlfYWxsb2NfcmFuZ2Uodm9pZCAqYXJnKQoreworCXN0cnVjdCBpOTE1X2J1ZGR5X21tIG1tOworCXVuc2lnbmVkIGxvbmcgcGFnZV9udW07CisJTElTVF9IRUFEKGJsb2Nrcyk7CisJdTY0IGNodW5rX3NpemU7CisJdTY0IG9mZnNldDsKKwl1NjQgc2l6ZTsKKwl1NjQgcmVtOworCWludCBlcnI7CisKKwlpZ3RfbW1fY29uZmlnKCZzaXplLCAmY2h1bmtfc2l6ZSk7CisKKwlwcl9pbmZvKCJidWRkeV9pbml0IHdpdGggc2l6ZT0lbGx4LCBjaHVua19zaXplPSVsbHhcbiIsIHNpemUsIGNodW5rX3NpemUpOworCisJZXJyID0gaTkxNV9idWRkeV9pbml0KCZtbSwgc2l6ZSwgY2h1bmtfc2l6ZSk7CisJaWYgKGVycikgeworCQlwcl9lcnIoImJ1ZGR5X2luaXQgZmFpbGVkKCVkKVxuIiwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwllcnIgPSBpZ3RfY2hlY2tfbW0oJm1tKTsKKwlpZiAoZXJyKSB7CisJCXByX2VycigicHJlLW1tIGNoZWNrIGZhaWxlZCwgYWJvcnQsIGFib3J0LCBhYm9ydCFcbiIpOworCQlnb3RvIGVycl9maW5pOworCX0KKworCXJlbSA9IG1tLnNpemU7CisJb2Zmc2V0ID0gMDsKKworCWZvcl9lYWNoX3ByaW1lX251bWJlcl9mcm9tKHBhZ2VfbnVtLCAxLCBVTE9OR19NQVggLSAxKSB7CisJCXN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jazsKKwkJTElTVF9IRUFEKHRtcCk7CisKKwkJc2l6ZSA9IG1pbihwYWdlX251bSAqIG1tLmNodW5rX3NpemUsIHJlbSk7CisKKwkJZXJyID0gaTkxNV9idWRkeV9hbGxvY19yYW5nZSgmbW0sICZ0bXAsIG9mZnNldCwgc2l6ZSk7CisJCWlmIChlcnIpIHsKKwkJCWlmIChlcnIgPT0gLUVOT01FTSkgeworCQkJCXByX2luZm8oImFsbG9jX3JhbmdlIGhpdCAtRU5PTUVNIHdpdGggc2l6ZT0lbGx4XG4iLAorCQkJCQlzaXplKTsKKwkJCX0gZWxzZSB7CisJCQkJcHJfZXJyKCJhbGxvY19yYW5nZSB3aXRoIG9mZnNldD0lbGx4LCBzaXplPSVsbHggZmFpbGVkKCVkKVxuIiwKKwkJCQkgICAgICAgb2Zmc2V0LCBzaXplLCBlcnIpOworCQkJfQorCisJCQlicmVhazsKKwkJfQorCisJCWJsb2NrID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZ0bXAsCisJCQkJCQkgc3RydWN0IGk5MTVfYnVkZHlfYmxvY2ssCisJCQkJCQkgbGluayk7CisJCWlmICghYmxvY2spIHsKKwkJCXByX2VycigiYWxsb2NfcmFuZ2UgaGFzIG5vIGJsb2Nrc1xuIik7CisJCQllcnIgPSAtRUlOVkFMOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAoaTkxNV9idWRkeV9ibG9ja19vZmZzZXQoYmxvY2spICE9IG9mZnNldCkgeworCQkJcHJfZXJyKCJhbGxvY19yYW5nZSBzdGFydCBvZmZzZXQgbWlzbWF0Y2gsIGZvdW5kPSVsbHgsIGV4cGVjdGVkPSVsbHhcbiIsCisJCQkgICAgICAgaTkxNV9idWRkeV9ibG9ja19vZmZzZXQoYmxvY2spLCBvZmZzZXQpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJfQorCisJCWlmICghZXJyKQorCQkJZXJyID0gaWd0X2NoZWNrX2Jsb2NrcygmbW0sICZ0bXAsIHNpemUsIHRydWUpOworCisJCWxpc3Rfc3BsaWNlX3RhaWwoJnRtcCwgJmJsb2Nrcyk7CisKKwkJaWYgKGVycikKKwkJCWJyZWFrOworCisJCW9mZnNldCArPSBzaXplOworCisJCXJlbSAtPSBzaXplOworCQlpZiAoIXJlbSkKKwkJCWJyZWFrOworCX0KKworCWlmIChlcnIgPT0gLUVOT01FTSkKKwkJZXJyID0gMDsKKworCWk5MTVfYnVkZHlfZnJlZV9saXN0KCZtbSwgJmJsb2Nrcyk7CisKKwlpZiAoIWVycikgeworCQllcnIgPSBpZ3RfY2hlY2tfbW0oJm1tKTsKKwkJaWYgKGVycikKKwkJCXByX2VycigicG9zdC1tbSBjaGVjayBmYWlsZWRcbiIpOworCX0KKworZXJyX2Zpbmk6CisJaTkxNV9idWRkeV9maW5pKCZtbSk7CisKKwlyZXR1cm4gZXJyOworfQorCitpbnQgaTkxNV9idWRkeV9tb2NrX3NlbGZ0ZXN0cyh2b2lkKQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CisJCVNVQlRFU1QoaWd0X2J1ZGR5X2FsbG9jX3Blc3NpbWlzdGljKSwKKwkJU1VCVEVTVChpZ3RfYnVkZHlfYWxsb2Nfb3B0aW1pc3RpYyksCisJCVNVQlRFU1QoaWd0X2J1ZGR5X2FsbG9jX3BhdGhvbG9naWNhbCksCisJCVNVQlRFU1QoaWd0X2J1ZGR5X2FsbG9jX3Ntb2tlKSwKKwkJU1VCVEVTVChpZ3RfYnVkZHlfYWxsb2NfcmFuZ2UpLAorCX07CisKKwlyZXR1cm4gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgTlVMTCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbS5jCmluZGV4IGM2YTAxYTYuLmJiNmRkNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbS5jCkBAIC04LDYgKzgsNyBAQAogCiAjaW5jbHVkZSAiZ2VtL3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmgiCiAjaW5jbHVkZSAiZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuaCIKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgogCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgogCkBAIC0xMTUsNyArMTE2LDcgQEAgc3RhdGljIHZvaWQgcG1fcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCSAqIHRoYXQgcnVudGltZS1wbSBqdXN0IHdvcmtzLgogCSAqLwogCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZikgewotCQlpbnRlbF9ndF9zYW5pdGl6ZShpOTE1LCBmYWxzZSk7CisJCWludGVsX2d0X3Nhbml0aXplKCZpOTE1LT5ndCwgZmFsc2UpOwogCQlpOTE1X2dlbV9zYW5pdGl6ZShpOTE1KTsKIAkJaTkxNV9nZW1fcmVzdW1lKGk5MTUpOwogCX0KQEAgLTE1NCw4ICsxNTUsNiBAQCBzdGF0aWMgaW50IGlndF9nZW1fc3VzcGVuZCh2b2lkICphcmcpCiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAllcnIgPSBzd2l0Y2hfdG9fY29udGV4dChpOTE1LCBjdHgpOwotCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKLQkJZXJyID0gLUVJTzsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogb3V0OgogCW1vY2tfZmlsZV9mcmVlKGk5MTUsIGZpbGUpOwpAQCAtMTk1LDggKzE5NCw2IEBAIHN0YXRpYyBpbnQgaWd0X2dlbV9oaWJlcm5hdGUodm9pZCAqYXJnKQogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJZXJyID0gc3dpdGNoX3RvX2NvbnRleHQoaTkxNSwgY3R4KTsKLQlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCi0JCWVyciA9IC1FSU87CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIG91dDoKIAltb2NrX2ZpbGVfZnJlZShpOTE1LCBmaWxlKTsKQEAgLTIxMCw4ICsyMDcsOCBAQCBpbnQgaTkxNV9nZW1fbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCVNVQlRFU1QoaWd0X2dlbV9oaWJlcm5hdGUpLAogCX07CiAKLQlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1KSkKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKCZpOTE1LT5ndCkpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIGk5MTUpOworCXJldHVybiBpOTE1X2xpdmVfc3VidGVzdHModGVzdHMsIGk5MTUpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZXZpY3QuYwppbmRleCBhM2NiMGFhLi5jYjMwYzY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZXZpY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZXZpY3QuYwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9wbS5oIgogI2luY2x1ZGUgImdlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oIgogI2luY2x1ZGUgImdlbS9zZWxmdGVzdHMvbW9ja19jb250ZXh0LmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKIAogI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKIApAQCAtNDcsMjYgKzQ4LDI5IEBAIHN0YXRpYyBpbnQgcG9wdWxhdGVfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIHsKIAl1bnNpZ25lZCBsb25nIHVuYm91bmQsIGJvdW5kLCBjb3VudDsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCXU2NCBzaXplOwogCiAJY291bnQgPSAwOwotCWZvciAoc2l6ZSA9IDA7Ci0JICAgICBzaXplICsgSTkxNV9HVFRfUEFHRV9TSVpFIDw9IGk5MTUtPmdndHQudm0udG90YWw7Ci0JICAgICBzaXplICs9IEk5MTVfR1RUX1BBR0VfU0laRSkgeworCWRvIHsKIAkJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAKIAkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBJOTE1X0dUVF9QQUdFX1NJWkUpOwogCQlpZiAoSVNfRVJSKG9iaikpCiAJCQlyZXR1cm4gUFRSX0VSUihvYmopOwogCi0JCXF1aXJrX2FkZChvYmosIG9iamVjdHMpOwotCiAJCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosIE5VTEwsIDAsIDAsIDApOwotCQlpZiAoSVNfRVJSKHZtYSkpCi0JCQlyZXR1cm4gUFRSX0VSUih2bWEpOworCQlpZiAoSVNfRVJSKHZtYSkpIHsKKwkJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKwkJCWlmICh2bWEgPT0gRVJSX1BUUigtRU5PU1BDKSkKKwkJCQlicmVhazsKIAorCQkJcmV0dXJuIFBUUl9FUlIodm1hKTsKKwkJfQorCisJCXF1aXJrX2FkZChvYmosIG9iamVjdHMpOwogCQljb3VudCsrOwotCX0KKwl9IHdoaWxlICgxKTsKKwlwcl9kZWJ1ZygiRmlsbGVkIEdHVFQgd2l0aCAlbHUgcGFnZXMgWyVsbHUgdG90YWxdXG4iLAorCQkgY291bnQsIGk5MTUtPmdndHQudm0udG90YWwgLyBQQUdFX1NJWkUpOwogCiAJYm91bmQgPSAwOwogCXVuYm91bmQgPSAwOwpAQCAtNTU3LDcgKzU2MSw3IEBAIGludCBpOTE1X2dlbV9ldmljdF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJU1VCVEVTVChpZ3RfZXZpY3RfY29udGV4dHMpLAogCX07CiAKLQlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1KSkKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKCZpOTE1LT5ndCkpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIGk5MTUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCmluZGV4IDFhNjBiOWYuLjMxYTUxY2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKQEAgLTIwOCw5ICsyMDgsNyBAQCBzdGF0aWMgaW50IGlndF9wcGd0dF9hbGxvYyh2b2lkICphcmcpCiAJfQogCiBlcnJfcHBndHRfY2xlYW51cDoKLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJaTkxNV92bV9wdXQoJnBwZ3R0LT52bSk7Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtMTE5NSw3ICsxMTkzLDcgQEAgc3RhdGljIGludCBpZ3RfZ2d0dF9wYWdlKHZvaWQgKmFyZykKIAkJaW93cml0ZTMyKG4sIHZhZGRyICsgbik7CiAJCWlvX21hcHBpbmdfdW5tYXBfYXRvbWljKHZhZGRyKTsKIAl9Ci0JaTkxNV9nZW1fZmx1c2hfZ2d0dF93cml0ZXMoaTkxNSk7CisJaW50ZWxfZ3RfZmx1c2hfZ2d0dF93cml0ZXMoZ2d0dC0+dm0uZ3QpOwogCiAJaTkxNV9yYW5kb21fcmVvcmRlcihvcmRlciwgY291bnQsICZwcm5nKTsKIAlmb3IgKG4gPSAwOyBuIDwgY291bnQ7IG4rKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2VsZnRlc3RzLmgKaW5kZXggZDVkYzQ0Mi4uMWNjZjBmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5oCkBAIC0xMiw3ICsxMiw5IEBACiBzZWxmdGVzdChzYW5pdHljaGVjaywgaTkxNV9saXZlX3Nhbml0eWNoZWNrKSAvKiBrZWVwIGZpcnN0IChpZ3Qgc2VsZmNoZWNrKSAqLwogc2VsZnRlc3QodW5jb3JlLCBpbnRlbF91bmNvcmVfbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdCh3b3JrYXJvdW5kcywgaW50ZWxfd29ya2Fyb3VuZHNfbGl2ZV9zZWxmdGVzdHMpCi1zZWxmdGVzdCh0aW1lbGluZXMsIGk5MTVfdGltZWxpbmVfbGl2ZV9zZWxmdGVzdHMpCitzZWxmdGVzdChndF9lbmdpbmVzLCBpbnRlbF9lbmdpbmVfbGl2ZV9zZWxmdGVzdHMpCitzZWxmdGVzdChndF90aW1lbGluZXMsIGludGVsX3RpbWVsaW5lX2xpdmVfc2VsZnRlc3RzKQorc2VsZnRlc3QoZ3RfY29udGV4dHMsIGludGVsX2NvbnRleHRfbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdChyZXF1ZXN0cywgaTkxNV9yZXF1ZXN0X2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3QoYWN0aXZlLCBpOTE1X2FjdGl2ZV9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KG9iamVjdHMsIGk5MTVfZ2VtX29iamVjdF9saXZlX3NlbGZ0ZXN0cykKQEAgLTI0LDcgKzI2LDcgQEAgc2VsZnRlc3QoZ3R0LCBpOTE1X2dlbV9ndHRfbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdChnZW0sIGk5MTVfZ2VtX2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3QoZXZpY3QsIGk5MTVfZ2VtX2V2aWN0X2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3QoaHVnZXBhZ2VzLCBpOTE1X2dlbV9odWdlX3BhZ2VfbGl2ZV9zZWxmdGVzdHMpCi1zZWxmdGVzdChjb250ZXh0cywgaTkxNV9nZW1fY29udGV4dF9saXZlX3NlbGZ0ZXN0cykKK3NlbGZ0ZXN0KGdlbV9jb250ZXh0cywgaTkxNV9nZW1fY29udGV4dF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGJsdCwgaTkxNV9nZW1fb2JqZWN0X2JsdF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGNsaWVudCwgaTkxNV9nZW1fY2xpZW50X2JsdF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KHJlc2V0LCBpbnRlbF9yZXNldF9saXZlX3NlbGZ0ZXN0cykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X21vY2tfc2VsZnRlc3RzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9tb2NrX3NlbGZ0ZXN0cy5oCmluZGV4IDUxMGViMTcuLmI4ODA4NGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X21vY2tfc2VsZnRlc3RzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbW9ja19zZWxmdGVzdHMuaApAQCAtMTUsNyArMTUsNyBAQCBzZWxmdGVzdChzY2F0dGVybGlzdCwgc2NhdHRlcmxpc3RfbW9ja19zZWxmdGVzdHMpCiBzZWxmdGVzdChzeW5jbWFwLCBpOTE1X3N5bmNtYXBfbW9ja19zZWxmdGVzdHMpCiBzZWxmdGVzdCh1bmNvcmUsIGludGVsX3VuY29yZV9tb2NrX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGVuZ2luZSwgaW50ZWxfZW5naW5lX2NzX21vY2tfc2VsZnRlc3RzKQotc2VsZnRlc3QodGltZWxpbmVzLCBpOTE1X3RpbWVsaW5lX21vY2tfc2VsZnRlc3RzKQorc2VsZnRlc3QodGltZWxpbmVzLCBpbnRlbF90aW1lbGluZV9tb2NrX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KHJlcXVlc3RzLCBpOTE1X3JlcXVlc3RfbW9ja19zZWxmdGVzdHMpCiBzZWxmdGVzdChvYmplY3RzLCBpOTE1X2dlbV9vYmplY3RfbW9ja19zZWxmdGVzdHMpCiBzZWxmdGVzdChwaHlzLCBpOTE1X2dlbV9waHlzX21vY2tfc2VsZnRlc3RzKQpAQCAtMjUsMyArMjUsNCBAQCBzZWxmdGVzdChldmljdCwgaTkxNV9nZW1fZXZpY3RfbW9ja19zZWxmdGVzdHMpCiBzZWxmdGVzdChndHQsIGk5MTVfZ2VtX2d0dF9tb2NrX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGh1Z2VwYWdlcywgaTkxNV9nZW1faHVnZV9wYWdlX21vY2tfc2VsZnRlc3RzKQogc2VsZnRlc3QoY29udGV4dHMsIGk5MTVfZ2VtX2NvbnRleHRfbW9ja19zZWxmdGVzdHMpCitzZWxmdGVzdChidWRkeSwgaTkxNV9idWRkeV9tb2NrX3NlbGZ0ZXN0cykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYwppbmRleCAyOThiYjcxLi5iMzY4ODU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9yZXF1ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfcmVxdWVzdC5jCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3BtLmgiCiAjaW5jbHVkZSAiZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuaCIKIAorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCisKICNpbmNsdWRlICJpOTE1X3JhbmRvbS5oIgogI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKICNpbmNsdWRlICJpZ3RfbGl2ZV90ZXN0LmgiCkBAIC00NCw5ICs0Niw3IEBAIHN0YXRpYyBpbnQgaWd0X2FkZF9yZXF1ZXN0KHZvaWQgKmFyZykKIAkvKiBCYXNpYyBwcmVsaW1pbmFyeSB0ZXN0IHRvIGNyZWF0ZSBhIHJlcXVlc3QgYW5kIGxldCBpdCBsb29zZSEgKi8KIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXJlcXVlc3QgPSBtb2NrX3JlcXVlc3QoaTkxNS0+ZW5naW5lW1JDUzBdLAotCQkJICAgICAgIGk5MTUtPmtlcm5lbF9jb250ZXh0LAotCQkJICAgICAgIEhaIC8gMTApOworCXJlcXVlc3QgPSBtb2NrX3JlcXVlc3QoaTkxNS0+ZW5naW5lW1JDUzBdLT5rZXJuZWxfY29udGV4dCwgSFogLyAxMCk7CiAJaWYgKCFyZXF1ZXN0KQogCQlnb3RvIG91dF91bmxvY2s7CiAKQEAgLTY4LDYwICs2OCw2MyBAQCBzdGF0aWMgaW50IGlndF93YWl0X3JlcXVlc3Qodm9pZCAqYXJnKQogCS8qIFN1Ym1pdCBhIHJlcXVlc3QsIHRoZW4gd2FpdCB1cG9uIGl0ICovCiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQlyZXF1ZXN0ID0gbW9ja19yZXF1ZXN0KGk5MTUtPmVuZ2luZVtSQ1MwXSwgaTkxNS0+a2VybmVsX2NvbnRleHQsIFQpOworCXJlcXVlc3QgPSBtb2NrX3JlcXVlc3QoaTkxNS0+ZW5naW5lW1JDUzBdLT5rZXJuZWxfY29udGV4dCwgVCk7CiAJaWYgKCFyZXF1ZXN0KSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gb3V0X3VubG9jazsKIAl9CisJaTkxNV9yZXF1ZXN0X2dldChyZXF1ZXN0KTsKIAogCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChyZXF1ZXN0LCAwLCAwKSAhPSAtRVRJTUUpIHsKIAkJcHJfZXJyKCJyZXF1ZXN0IHdhaXQgKGJ1c3kgcXVlcnkpIHN1Y2NlZWRlZCAoZXhwZWN0ZWQgdGltZW91dCBiZWZvcmUgc3VibWl0ISlcbiIpOwotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0X3JlcXVlc3Q7CiAJfQogCiAJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3QsIDAsIFQpICE9IC1FVElNRSkgewogCQlwcl9lcnIoInJlcXVlc3Qgd2FpdCBzdWNjZWVkZWQgKGV4cGVjdGVkIHRpbWVvdXQgYmVmb3JlIHN1Ym1pdCEpXG4iKTsKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dF9yZXF1ZXN0OwogCX0KIAogCWlmIChpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJlcXVlc3QpKSB7CiAJCXByX2VycigicmVxdWVzdCBjb21wbGV0ZWQgYmVmb3JlIHN1Ym1pdCEhXG4iKTsKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dF9yZXF1ZXN0OwogCX0KIAogCWk5MTVfcmVxdWVzdF9hZGQocmVxdWVzdCk7CiAKIAlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocmVxdWVzdCwgMCwgMCkgIT0gLUVUSU1FKSB7CiAJCXByX2VycigicmVxdWVzdCB3YWl0IChidXN5IHF1ZXJ5KSBzdWNjZWVkZWQgKGV4cGVjdGVkIHRpbWVvdXQgYWZ0ZXIgc3VibWl0ISlcbiIpOwotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0X3JlcXVlc3Q7CiAJfQogCiAJaWYgKGk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocmVxdWVzdCkpIHsKIAkJcHJfZXJyKCJyZXF1ZXN0IGNvbXBsZXRlZCBpbW1lZGlhdGVseSFcbiIpOwotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0X3JlcXVlc3Q7CiAJfQogCiAJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3QsIDAsIFQgLyAyKSAhPSAtRVRJTUUpIHsKIAkJcHJfZXJyKCJyZXF1ZXN0IHdhaXQgc3VjY2VlZGVkIChleHBlY3RlZCB0aW1lb3V0ISlcbiIpOwotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0X3JlcXVlc3Q7CiAJfQogCiAJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3QsIDAsIFQpID09IC1FVElNRSkgewogCQlwcl9lcnIoInJlcXVlc3Qgd2FpdCB0aW1lZCBvdXQhXG4iKTsKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dF9yZXF1ZXN0OwogCX0KIAogCWlmICghaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChyZXF1ZXN0KSkgewogCQlwcl9lcnIoInJlcXVlc3Qgbm90IGNvbXBsZXRlIGFmdGVyIHdhaXRpbmchXG4iKTsKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dF9yZXF1ZXN0OwogCX0KIAogCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChyZXF1ZXN0LCAwLCBUKSA9PSAtRVRJTUUpIHsKIAkJcHJfZXJyKCJyZXF1ZXN0IHdhaXQgdGltZWQgb3V0IHdoZW4gYWxyZWFkeSBjb21wbGV0ZSFcbiIpOwotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0X3JlcXVlc3Q7CiAJfQogCiAJZXJyID0gMDsKK291dF9yZXF1ZXN0OgorCWk5MTVfcmVxdWVzdF9wdXQocmVxdWVzdCk7CiBvdXRfdW5sb2NrOgogCW1vY2tfZGV2aWNlX2ZsdXNoKGk5MTUpOwogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CkBAIC0xMzgsNyArMTQxLDcgQEAgc3RhdGljIGludCBpZ3RfZmVuY2Vfd2FpdCh2b2lkICphcmcpCiAJLyogU3VibWl0IGEgcmVxdWVzdCwgdHJlYXQgaXQgYXMgYSBmZW5jZSBhbmQgd2FpdCB1cG9uIGl0ICovCiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQlyZXF1ZXN0ID0gbW9ja19yZXF1ZXN0KGk5MTUtPmVuZ2luZVtSQ1MwXSwgaTkxNS0+a2VybmVsX2NvbnRleHQsIFQpOworCXJlcXVlc3QgPSBtb2NrX3JlcXVlc3QoaTkxNS0+ZW5naW5lW1JDUzBdLT5rZXJuZWxfY29udGV4dCwgVCk7CiAJaWYgKCFyZXF1ZXN0KSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gb3V0X2xvY2tlZDsKQEAgLTE5MSwxMSArMTk0LDE1IEBAIHN0YXRpYyBpbnQgaWd0X3JlcXVlc3RfcmV3aW5kKHZvaWQgKmFyZykKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCAqdmlwOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHhbMl07CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCWludCBlcnIgPSAtRUlOVkFMOwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJY3R4WzBdID0gbW9ja19jb250ZXh0KGk5MTUsICJBIik7Ci0JcmVxdWVzdCA9IG1vY2tfcmVxdWVzdChpOTE1LT5lbmdpbmVbUkNTMF0sIGN0eFswXSwgMiAqIEhaKTsKKwljZSA9IGk5MTVfZ2VtX2NvbnRleHRfZ2V0X2VuZ2luZShjdHhbMF0sIFJDUzApOworCUdFTV9CVUdfT04oSVNfRVJSKGNlKSk7CisJcmVxdWVzdCA9IG1vY2tfcmVxdWVzdChjZSwgMiAqIEhaKTsKKwlpbnRlbF9jb250ZXh0X3B1dChjZSk7CiAJaWYgKCFyZXF1ZXN0KSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gZXJyX2NvbnRleHRfMDsKQEAgLTIwNSw3ICsyMTIsMTAgQEAgc3RhdGljIGludCBpZ3RfcmVxdWVzdF9yZXdpbmQodm9pZCAqYXJnKQogCWk5MTVfcmVxdWVzdF9hZGQocmVxdWVzdCk7CiAKIAljdHhbMV0gPSBtb2NrX2NvbnRleHQoaTkxNSwgIkIiKTsKLQl2aXAgPSBtb2NrX3JlcXVlc3QoaTkxNS0+ZW5naW5lW1JDUzBdLCBjdHhbMV0sIDApOworCWNlID0gaTkxNV9nZW1fY29udGV4dF9nZXRfZW5naW5lKGN0eFsxXSwgUkNTMCk7CisJR0VNX0JVR19PTihJU19FUlIoY2UpKTsKKwl2aXAgPSBtb2NrX3JlcXVlc3QoY2UsIDApOworCWludGVsX2NvbnRleHRfcHV0KGNlKTsKIAlpZiAoIXZpcCkgewogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIGVycl9jb250ZXh0XzE7CkBAIC0yNTQsMjIgKzI2NCwxOSBAQCBzdHJ1Y3Qgc21va2V0ZXN0IHsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqKmNvbnRleHRzOwogCWF0b21pY19sb25nX3QgbnVtX3dhaXRzLCBudW1fZmVuY2VzOwogCWludCBuY29udGV4dHMsIG1heF9iYXRjaDsKLQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICooKnJlcXVlc3RfYWxsb2MpKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICosCi0JCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKik7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqKCpyZXF1ZXN0X2FsbG9jKShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpOwogfTsKIAogc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgotX19tb2NrX3JlcXVlc3RfYWxsb2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKLQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitfX21vY2tfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7Ci0JcmV0dXJuIG1vY2tfcmVxdWVzdChlbmdpbmUsIGN0eCwgMCk7CisJcmV0dXJuIG1vY2tfcmVxdWVzdChjZSwgMCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKLV9fbGl2ZV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCi0JCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorX19saXZlX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogewotCXJldHVybiBpZ3RfcmVxdWVzdF9hbGxvYyhjdHgsIGVuZ2luZSk7CisJcmV0dXJuIGludGVsX2NvbnRleHRfY3JlYXRlX3JlcXVlc3QoY2UpOwogfQogCiBzdGF0aWMgaW50IF9faWd0X2JyZWFkY3J1bWJzX3Ntb2tldGVzdCh2b2lkICphcmcpCkBAIC0zMjgsMTAgKzMzNSwxNCBAQCBzdGF0aWMgaW50IF9faWd0X2JyZWFkY3J1bWJzX3Ntb2tldGVzdCh2b2lkICphcmcpCiAJCQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0KIAkJCQl0LT5jb250ZXh0c1tvcmRlcltuXSAlIHQtPm5jb250ZXh0c107CiAJCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKIAogCQkJbXV0ZXhfbG9jayhCS0wpOwogCi0JCQlycSA9IHQtPnJlcXVlc3RfYWxsb2MoY3R4LCB0LT5lbmdpbmUpOworCQkJY2UgPSBpOTE1X2dlbV9jb250ZXh0X2dldF9lbmdpbmUoY3R4LCB0LT5lbmdpbmUtPmxlZ2FjeV9pZHgpOworCQkJR0VNX0JVR19PTihJU19FUlIoY2UpKTsKKwkJCXJxID0gdC0+cmVxdWVzdF9hbGxvYyhjZSk7CisJCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7CiAJCQlpZiAoSVNfRVJSKHJxKSkgewogCQkJCW11dGV4X3VubG9jayhCS0wpOwogCQkJCWVyciA9IFBUUl9FUlIocnEpOwpAQCAtMzY2LDE0ICszNzcsMTYgQEAgc3RhdGljIGludCBfX2lndF9icmVhZGNydW1ic19zbW9rZXRlc3Qodm9pZCAqYXJnKQogCiAJCWlmICghd2FpdF9ldmVudF90aW1lb3V0KHdhaXQtPndhaXQsCiAJCQkJCWk5MTVfc3dfZmVuY2VfZG9uZSh3YWl0KSwKLQkJCQkJSFogLyAyKSkgeworCQkJCQk1ICogSFopKSB7CiAJCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSA9IHJlcXVlc3RzW2NvdW50IC0gMV07CiAKLQkJCXByX2Vycigid2FpdGluZyBmb3IgJWQgZmVuY2VzIChsYXN0ICVsbHg6JWxsZCkgb24gJXMgdGltZWQgb3V0IVxuIiwKLQkJCSAgICAgICBjb3VudCwKKwkJCXByX2Vycigid2FpdGluZyBmb3IgJWQvJWQgZmVuY2VzIChsYXN0ICVsbHg6JWxsZCkgb24gJXMgdGltZWQgb3V0IVxuIiwKKwkJCSAgICAgICBhdG9taWNfcmVhZCgmd2FpdC0+cGVuZGluZyksIGNvdW50LAogCQkJICAgICAgIHJxLT5mZW5jZS5jb250ZXh0LCBycS0+ZmVuY2Uuc2Vxbm8sCiAJCQkgICAgICAgdC0+ZW5naW5lLT5uYW1lKTsKLQkJCWk5MTVfZ2VtX3NldF93ZWRnZWQodC0+ZW5naW5lLT5pOTE1KTsKKwkJCUdFTV9UUkFDRV9EVU1QKCk7CisKKwkJCWludGVsX2d0X3NldF93ZWRnZWQodC0+ZW5naW5lLT5ndCk7CiAJCQlHRU1fQlVHX09OKCFpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJxKSk7CiAJCQlpOTE1X3N3X2ZlbmNlX3dhaXQod2FpdCk7CiAJCQllcnIgPSAtRUlPOwpAQCAtNjIyLDcgKzYzNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKmVtcHR5X2JhdGNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCV9faTkxNV9nZW1fb2JqZWN0X2ZsdXNoX21hcChvYmosIDAsIDY0KTsKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKG9iaik7CiAKLQlpOTE1X2dlbV9jaGlwc2V0X2ZsdXNoKGk5MTUpOworCWludGVsX2d0X2NoaXBzZXRfZmx1c2goJmk5MTUtPmd0KTsKIAogCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgJmk5MTUtPmdndHQudm0sIE5VTEwpOwogCWlmIChJU19FUlIodm1hKSkgewpAQCAtNzkxLDcgKzgwNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKnJlY3Vyc2l2ZV9iYXRjaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlfX2k5MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAob2JqLCAwLCA2NCk7CiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChvYmopOwogCi0JaTkxNV9nZW1fY2hpcHNldF9mbHVzaChpOTE1KTsKKwlpbnRlbF9ndF9jaGlwc2V0X2ZsdXNoKCZpOTE1LT5ndCk7CiAKIAlyZXR1cm4gdm1hOwogCkBAIC04MDksNyArODIyLDcgQEAgc3RhdGljIGludCByZWN1cnNpdmVfYmF0Y2hfcmVzb2x2ZShzdHJ1Y3QgaTkxNV92bWEgKmJhdGNoKQogCQlyZXR1cm4gUFRSX0VSUihjbWQpOwogCiAJKmNtZCA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7Ci0JaTkxNV9nZW1fY2hpcHNldF9mbHVzaChiYXRjaC0+dm0tPmk5MTUpOworCWludGVsX2d0X2NoaXBzZXRfZmx1c2goYmF0Y2gtPnZtLT5ndCk7CiAKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGJhdGNoLT5vYmopOwogCkBAIC04NjMsNyArODc2LDkgQEAgc3RhdGljIGludCBsaXZlX2FsbF9lbmdpbmVzKHZvaWQgKmFyZykKIAkJcmVxdWVzdFtpZF0tPmJhdGNoID0gYmF0Y2g7CiAKIAkJaTkxNV92bWFfbG9jayhiYXRjaCk7Ci0JCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKGJhdGNoLCByZXF1ZXN0W2lkXSwgMCk7CisJCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9vYmplY3QocmVxdWVzdFtpZF0sIGJhdGNoLT5vYmosIDApOworCQlpZiAoZXJyID09IDApCisJCQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShiYXRjaCwgcmVxdWVzdFtpZF0sIDApOwogCQlpOTE1X3ZtYV91bmxvY2soYmF0Y2gpOwogCQlHRU1fQlVHX09OKGVycik7CiAKQEAgLTk3OSw3ICs5OTQsOSBAQCBzdGF0aWMgaW50IGxpdmVfc2VxdWVudGlhbF9lbmdpbmVzKHZvaWQgKmFyZykKIAkJcmVxdWVzdFtpZF0tPmJhdGNoID0gYmF0Y2g7CiAKIAkJaTkxNV92bWFfbG9jayhiYXRjaCk7Ci0JCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKGJhdGNoLCByZXF1ZXN0W2lkXSwgMCk7CisJCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9vYmplY3QocmVxdWVzdFtpZF0sIGJhdGNoLT5vYmosIGZhbHNlKTsKKwkJaWYgKGVyciA9PSAwKQorCQkJZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUoYmF0Y2gsIHJlcXVlc3RbaWRdLCAwKTsKIAkJaTkxNV92bWFfdW5sb2NrKGJhdGNoKTsKIAkJR0VNX0JVR19PTihlcnIpOwogCkBAIC0xMDMxLDcgKzEwNDgsNyBAQCBzdGF0aWMgaW50IGxpdmVfc2VxdWVudGlhbF9lbmdpbmVzKHZvaWQgKmFyZykKIAkJCQkJICAgICAgSTkxNV9NQVBfV0MpOwogCQlpZiAoIUlTX0VSUihjbWQpKSB7CiAJCQkqY21kID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKLQkJCWk5MTVfZ2VtX2NoaXBzZXRfZmx1c2goaTkxNSk7CisJCQlpbnRlbF9ndF9jaGlwc2V0X2ZsdXNoKGVuZ2luZS0+Z3QpOwogCiAJCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKHJlcXVlc3RbaWRdLT5iYXRjaC0+b2JqKTsKIAkJfQpAQCAtMTIyNyw3ICsxMjQ0LDcgQEAgaW50IGk5MTVfcmVxdWVzdF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJU1VCVEVTVChsaXZlX2JyZWFkY3J1bWJzX3Ntb2tldGVzdCksCiAJfTsKIAotCWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGk5MTUpKQorCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1cm4gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgaTkxNSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9zZWxmdGVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfc2VsZnRlc3QuYwppbmRleCBiMThlYWVmLi40MzhlYTBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9zZWxmdGVzdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3NlbGZ0ZXN0LmMKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICIuLi9pOTE1X2Rydi5oIgogI2luY2x1ZGUgIi4uL2k5MTVfc2VsZnRlc3QuaCIKIAorI2luY2x1ZGUgImlndF9mbHVzaF90ZXN0LmgiCisKIHN0cnVjdCBpOTE1X3NlbGZ0ZXN0IGk5MTVfc2VsZnRlc3QgX19yZWFkX21vc3RseSA9IHsKIAkudGltZW91dF9tcyA9IDEwMDAsCiB9OwpAQCAtMTgzLDcgKzE4NSw3IEBAIGludCBpOTE1X2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCWlmICghaTkxNV9zZWxmdGVzdC5saXZlKQogCQlyZXR1cm4gMDsKIAotCWVyciA9IHJ1bl9zZWxmdGVzdHMobGl2ZSwgdG9faTkxNShwY2lfZ2V0X2RydmRhdGEocGRldikpKTsKKwllcnIgPSBydW5fc2VsZnRlc3RzKGxpdmUsIHBkZXZfdG9faTkxNShwZGV2KSk7CiAJaWYgKGVycikgewogCQlpOTE1X3NlbGZ0ZXN0LmxpdmUgPSBlcnI7CiAJCXJldHVybiBlcnI7CkBAIC0yNDAsNyArMjQyLDYxIEBAIHN0YXRpYyBib29sIGFwcGx5X3N1YnRlc3RfZmlsdGVyKGNvbnN0IGNoYXIgKmNhbGxlciwgY29uc3QgY2hhciAqbmFtZSkKIAlyZXR1cm4gcmVzdWx0OwogfQogCitpbnQgX19pOTE1X25vcF9zZXR1cCh2b2lkICpkYXRhKQoreworCXJldHVybiAwOworfQorCitpbnQgX19pOTE1X25vcF90ZWFyZG93bihpbnQgZXJyLCB2b2lkICpkYXRhKQoreworCXJldHVybiBlcnI7Cit9CisKK2ludCBfX2k5MTVfbGl2ZV9zZXR1cCh2b2lkICpkYXRhKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZGF0YTsKKworCXJldHVybiBpbnRlbF9ndF90ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3QpOworfQorCitpbnQgX19pOTE1X2xpdmVfdGVhcmRvd24oaW50IGVyciwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGRhdGE7CisKKwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCisJCWVyciA9IC1FSU87CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoaTkxNSk7CisKKwlyZXR1cm4gZXJyOworfQorCitpbnQgX19pbnRlbF9ndF9saXZlX3NldHVwKHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGRhdGE7CisKKwlyZXR1cm4gaW50ZWxfZ3RfdGVybWluYWxseV93ZWRnZWQoZ3QpOworfQorCitpbnQgX19pbnRlbF9ndF9saXZlX3RlYXJkb3duKGludCBlcnIsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGRhdGE7CisKKwltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaWYgKGlndF9mbHVzaF90ZXN0KGd0LT5pOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKKwkJZXJyID0gLUVJTzsKKwltdXRleF91bmxvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoZ3QtPmk5MTUpOworCisJcmV0dXJuIGVycjsKK30KKwogaW50IF9faTkxNV9zdWJ0ZXN0cyhjb25zdCBjaGFyICpjYWxsZXIsCisJCSAgICBpbnQgKCpzZXR1cCkodm9pZCAqZGF0YSksCisJCSAgICBpbnQgKCp0ZWFyZG93bikoaW50IGVyciwgdm9pZCAqZGF0YSksCiAJCSAgICBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0ICpzdCwKIAkJICAgIHVuc2lnbmVkIGludCBjb3VudCwKIAkJICAgIHZvaWQgKmRhdGEpCkBAIC0yNTUsMTAgKzMxMSwxNyBAQCBpbnQgX19pOTE1X3N1YnRlc3RzKGNvbnN0IGNoYXIgKmNhbGxlciwKIAkJaWYgKCFhcHBseV9zdWJ0ZXN0X2ZpbHRlcihjYWxsZXIsIHN0LT5uYW1lKSkKIAkJCWNvbnRpbnVlOwogCisJCWVyciA9IHNldHVwKGRhdGEpOworCQlpZiAoZXJyKSB7CisJCQlwcl9lcnIoRFJJVkVSX05BTUUgIi8lczogc2V0dXAgZmFpbGVkIGZvciAlc1xuIiwKKwkJCSAgICAgICBjYWxsZXIsIHN0LT5uYW1lKTsKKwkJCXJldHVybiBlcnI7CisJCX0KKwogCQlwcl9pbmZvKERSSVZFUl9OQU1FICI6IFJ1bm5pbmcgJXMvJXNcbiIsIGNhbGxlciwgc3QtPm5hbWUpOwogCQlHRU1fVFJBQ0UoIlJ1bm5pbmcgJXMvJXNcbiIsIGNhbGxlciwgc3QtPm5hbWUpOwogCi0JCWVyciA9IHN0LT5mdW5jKGRhdGEpOworCQllcnIgPSB0ZWFyZG93bihzdC0+ZnVuYyhkYXRhKSwgZGF0YSk7CiAJCWlmIChlcnIgJiYgZXJyICE9IC1FSU5UUikgewogCQkJcHJfZXJyKERSSVZFUl9OQU1FICIvJXM6ICVzIGZhaWxlZCB3aXRoIGVycm9yICVkXG4iLAogCQkJICAgICAgIGNhbGxlciwgc3QtPm5hbWUsIGVycik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV90aW1lbGluZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfdGltZWxpbmUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZkMzk3Ny4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV90aW1lbGluZS5jCisrKyAvZGV2L251bGwKQEAgLTEsODQ1ICswLDAgQEAKLS8qCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0gKgotICogQ29weXJpZ2h0IMKpIDIwMTctMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9wcmltZV9udW1iZXJzLmg+Ci0KLSNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcG0uaCIKLQotI2luY2x1ZGUgImk5MTVfcmFuZG9tLmgiCi0jaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgotCi0jaW5jbHVkZSAiaWd0X2ZsdXNoX3Rlc3QuaCIKLSNpbmNsdWRlICJtb2NrX2dlbV9kZXZpY2UuaCIKLSNpbmNsdWRlICJtb2NrX3RpbWVsaW5lLmgiCi0KLXN0YXRpYyBzdHJ1Y3QgcGFnZSAqaHdzcF9wYWdlKHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdGwtPmh3c3BfZ2d0dC0+b2JqOwotCi0JR0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0X2hhc19waW5uZWRfcGFnZXMob2JqKSk7Ci0JcmV0dXJuIHNnX3BhZ2Uob2JqLT5tbS5wYWdlcy0+c2dsKTsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGxvbmcgaHdzcF9jYWNoZWxpbmUoc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsKQotewotCXVuc2lnbmVkIGxvbmcgYWRkcmVzcyA9ICh1bnNpZ25lZCBsb25nKXBhZ2VfYWRkcmVzcyhod3NwX3BhZ2UodGwpKTsKLQotCXJldHVybiAoYWRkcmVzcyArIHRsLT5od3NwX29mZnNldCkgLyBDQUNIRUxJTkVfQllURVM7Ci19Ci0KLSNkZWZpbmUgQ0FDSEVMSU5FU19QRVJfUEFHRSAoUEFHRV9TSVpFIC8gQ0FDSEVMSU5FX0JZVEVTKQotCi1zdHJ1Y3QgbW9ja19od3NwX2ZyZWVsaXN0IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKLQlzdHJ1Y3QgcmFkaXhfdHJlZV9yb290IGNhY2hlbGluZXM7Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmUgKipoaXN0b3J5OwotCXVuc2lnbmVkIGxvbmcgY291bnQsIG1heDsKLQlzdHJ1Y3Qgcm5kX3N0YXRlIHBybmc7Ci19OwotCi1lbnVtIHsKLQlTSFVGRkxFID0gQklUKDApLAotfTsKLQotc3RhdGljIHZvaWQgX19tb2NrX2h3c3BfcmVjb3JkKHN0cnVjdCBtb2NrX2h3c3BfZnJlZWxpc3QgKnN0YXRlLAotCQkJICAgICAgIHVuc2lnbmVkIGludCBpZHgsCi0JCQkgICAgICAgc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsKQotewotCXRsID0geGNoZygmc3RhdGUtPmhpc3RvcnlbaWR4XSwgdGwpOwotCWlmICh0bCkgewotCQlyYWRpeF90cmVlX2RlbGV0ZSgmc3RhdGUtPmNhY2hlbGluZXMsIGh3c3BfY2FjaGVsaW5lKHRsKSk7Ci0JCWk5MTVfdGltZWxpbmVfcHV0KHRsKTsKLQl9Ci19Ci0KLXN0YXRpYyBpbnQgX19tb2NrX2h3c3BfdGltZWxpbmUoc3RydWN0IG1vY2tfaHdzcF9mcmVlbGlzdCAqc3RhdGUsCi0JCQkJdW5zaWduZWQgaW50IGNvdW50LAotCQkJCXVuc2lnbmVkIGludCBmbGFncykKLXsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGw7Ci0JdW5zaWduZWQgaW50IGlkeDsKLQotCXdoaWxlIChjb3VudC0tKSB7Ci0JCXVuc2lnbmVkIGxvbmcgY2FjaGVsaW5lOwotCQlpbnQgZXJyOwotCi0JCXRsID0gaTkxNV90aW1lbGluZV9jcmVhdGUoc3RhdGUtPmk5MTUsIE5VTEwpOwotCQlpZiAoSVNfRVJSKHRsKSkKLQkJCXJldHVybiBQVFJfRVJSKHRsKTsKLQotCQljYWNoZWxpbmUgPSBod3NwX2NhY2hlbGluZSh0bCk7Ci0JCWVyciA9IHJhZGl4X3RyZWVfaW5zZXJ0KCZzdGF0ZS0+Y2FjaGVsaW5lcywgY2FjaGVsaW5lLCB0bCk7Ci0JCWlmIChlcnIpIHsKLQkJCWlmIChlcnIgPT0gLUVFWElTVCkgewotCQkJCXByX2VycigiSFdTUCBjYWNoZWxpbmUgJWx1IGFscmVhZHkgdXNlZDsgZHVwbGljYXRlIGFsbG9jYXRpb24hXG4iLAotCQkJCSAgICAgICBjYWNoZWxpbmUpOwotCQkJfQotCQkJaTkxNV90aW1lbGluZV9wdXQodGwpOwotCQkJcmV0dXJuIGVycjsKLQkJfQotCi0JCWlkeCA9IHN0YXRlLT5jb3VudCsrICUgc3RhdGUtPm1heDsKLQkJX19tb2NrX2h3c3BfcmVjb3JkKHN0YXRlLCBpZHgsIHRsKTsKLQl9Ci0KLQlpZiAoZmxhZ3MgJiBTSFVGRkxFKQotCQlpOTE1X3ByYW5kb21fc2h1ZmZsZShzdGF0ZS0+aGlzdG9yeSwKLQkJCQkgICAgIHNpemVvZigqc3RhdGUtPmhpc3RvcnkpLAotCQkJCSAgICAgbWluKHN0YXRlLT5jb3VudCwgc3RhdGUtPm1heCksCi0JCQkJICAgICAmc3RhdGUtPnBybmcpOwotCi0JY291bnQgPSBpOTE1X3ByYW5kb21fdTMyX21heF9zdGF0ZShtaW4oc3RhdGUtPmNvdW50LCBzdGF0ZS0+bWF4KSwKLQkJCQkJICAgJnN0YXRlLT5wcm5nKTsKLQl3aGlsZSAoY291bnQtLSkgewotCQlpZHggPSAtLXN0YXRlLT5jb3VudCAlIHN0YXRlLT5tYXg7Ci0JCV9fbW9ja19od3NwX3JlY29yZChzdGF0ZSwgaWR4LCBOVUxMKTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBtb2NrX2h3c3BfZnJlZWxpc3Qodm9pZCAqYXJnKQotewotCXN0cnVjdCBtb2NrX2h3c3BfZnJlZWxpc3Qgc3RhdGU7Ci0JY29uc3Qgc3RydWN0IHsKLQkJY29uc3QgY2hhciAqbmFtZTsKLQkJdW5zaWduZWQgaW50IGZsYWdzOwotCX0gcGhhc2VzW10gPSB7Ci0JCXsgImxpbmVhciIsIDAgfSwKLQkJeyAic2h1ZmZsZWQiLCBTSFVGRkxFIH0sCi0JCXsgfSwKLQl9LCAqcDsKLQl1bnNpZ25lZCBpbnQgbmE7Ci0JaW50IGVyciA9IDA7Ci0KLQlJTklUX1JBRElYX1RSRUUoJnN0YXRlLmNhY2hlbGluZXMsIEdGUF9LRVJORUwpOwotCXN0YXRlLnBybmcgPSBJOTE1X1JORF9TVEFURV9JTklUSUFMSVpFUihpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9zZWVkKTsKLQotCXN0YXRlLmk5MTUgPSBtb2NrX2dlbV9kZXZpY2UoKTsKLQlpZiAoIXN0YXRlLmk5MTUpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JLyoKLQkgKiBDcmVhdGUgYSBidW5jaCBvZiB0aW1lbGluZXMgYW5kIGNoZWNrIHRoYXQgdGhlaXIgSFdTUCBkbyBub3Qgb3ZlcmxhcC4KLQkgKiBGcmVlIHNvbWUsIGFuZCB0cnkgYWdhaW4uCi0JICovCi0KLQlzdGF0ZS5tYXggPSBQQUdFX1NJWkUgLyBzaXplb2YoKnN0YXRlLmhpc3RvcnkpOwotCXN0YXRlLmNvdW50ID0gMDsKLQlzdGF0ZS5oaXN0b3J5ID0ga2NhbGxvYyhzdGF0ZS5tYXgsIHNpemVvZigqc3RhdGUuaGlzdG9yeSksIEdGUF9LRVJORUwpOwotCWlmICghc3RhdGUuaGlzdG9yeSkgewotCQllcnIgPSAtRU5PTUVNOwotCQlnb3RvIGVycl9wdXQ7Ci0JfQotCi0JbXV0ZXhfbG9jaygmc3RhdGUuaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JZm9yIChwID0gcGhhc2VzOyBwLT5uYW1lOyBwKyspIHsKLQkJcHJfZGVidWcoIiVzKCVzKVxuIiwgX19mdW5jX18sIHAtPm5hbWUpOwotCQlmb3JfZWFjaF9wcmltZV9udW1iZXJfZnJvbShuYSwgMSwgMiAqIENBQ0hFTElORVNfUEVSX1BBR0UpIHsKLQkJCWVyciA9IF9fbW9ja19od3NwX3RpbWVsaW5lKCZzdGF0ZSwgbmEsIHAtPmZsYWdzKTsKLQkJCWlmIChlcnIpCi0JCQkJZ290byBvdXQ7Ci0JCX0KLQl9Ci0KLW91dDoKLQlmb3IgKG5hID0gMDsgbmEgPCBzdGF0ZS5tYXg7IG5hKyspCi0JCV9fbW9ja19od3NwX3JlY29yZCgmc3RhdGUsIG5hLCBOVUxMKTsKLQltdXRleF91bmxvY2soJnN0YXRlLmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWtmcmVlKHN0YXRlLmhpc3RvcnkpOwotZXJyX3B1dDoKLQlkcm1fZGV2X3B1dCgmc3RhdGUuaTkxNS0+ZHJtKTsKLQlyZXR1cm4gZXJyOwotfQotCi1zdHJ1Y3QgX19pZ3Rfc3luYyB7Ci0JY29uc3QgY2hhciAqbmFtZTsKLQl1MzIgc2Vxbm87Ci0JYm9vbCBleHBlY3RlZDsKLQlib29sIHNldDsKLX07Ci0KLXN0YXRpYyBpbnQgX19pZ3Rfc3luYyhzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwsCi0JCSAgICAgIHU2NCBjdHgsCi0JCSAgICAgIGNvbnN0IHN0cnVjdCBfX2lndF9zeW5jICpwLAotCQkgICAgICBjb25zdCBjaGFyICpuYW1lKQotewotCWludCByZXQ7Ci0KLQlpZiAoX19pOTE1X3RpbWVsaW5lX3N5bmNfaXNfbGF0ZXIodGwsIGN0eCwgcC0+c2Vxbm8pICE9IHAtPmV4cGVjdGVkKSB7Ci0JCXByX2VycigiJXM6ICVzKGN0eD0lbGx1LCBzZXFubz0ldSkgZXhwZWN0ZWQgcGFzc2VkICVzIGJ1dCBmYWlsZWRcbiIsCi0JCSAgICAgICBuYW1lLCBwLT5uYW1lLCBjdHgsIHAtPnNlcW5vLCB5ZXNubyhwLT5leHBlY3RlZCkpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAocC0+c2V0KSB7Ci0JCXJldCA9IF9faTkxNV90aW1lbGluZV9zeW5jX3NldCh0bCwgY3R4LCBwLT5zZXFubyk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGlndF9zeW5jKHZvaWQgKmFyZykKLXsKLQljb25zdCBzdHJ1Y3QgX19pZ3Rfc3luYyBwYXNzW10gPSB7Ci0JCXsgInVuc2V0IiwgMCwgZmFsc2UsIGZhbHNlIH0sCi0JCXsgIm5ldyIsIDAsIGZhbHNlLCB0cnVlIH0sCi0JCXsgIjBhIiwgMCwgdHJ1ZSwgdHJ1ZSB9LAotCQl7ICIxYSIsIDEsIGZhbHNlLCB0cnVlIH0sCi0JCXsgIjFiIiwgMSwgdHJ1ZSwgdHJ1ZSB9LAotCQl7ICIwYiIsIDAsIHRydWUsIGZhbHNlIH0sCi0JCXsgIjJhIiwgMiwgZmFsc2UsIHRydWUgfSwKLQkJeyAiNCIsIDQsIGZhbHNlLCB0cnVlIH0sCi0JCXsgIklOVF9NQVgiLCBJTlRfTUFYLCBmYWxzZSwgdHJ1ZSB9LAotCQl7ICJJTlRfTUFYLTEiLCBJTlRfTUFYLTEsIHRydWUsIGZhbHNlIH0sCi0JCXsgIklOVF9NQVgrMSIsICh1MzIpSU5UX01BWCsxLCBmYWxzZSwgdHJ1ZSB9LAotCQl7ICJJTlRfTUFYIiwgSU5UX01BWCwgdHJ1ZSwgZmFsc2UgfSwKLQkJeyAiVUlOVF9NQVgiLCBVSU5UX01BWCwgZmFsc2UsIHRydWUgfSwKLQkJeyAid3JhcCIsIDAsIGZhbHNlLCB0cnVlIH0sCi0JCXsgInVud3JhcCIsIFVJTlRfTUFYLCB0cnVlLCBmYWxzZSB9LAotCQl7fSwKLQl9LCAqcDsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSB0bDsKLQlpbnQgb3JkZXIsIG9mZnNldDsKLQlpbnQgcmV0ID0gLUVOT0RFVjsKLQotCW1vY2tfdGltZWxpbmVfaW5pdCgmdGwsIDApOwotCWZvciAocCA9IHBhc3M7IHAtPm5hbWU7IHArKykgewotCQlmb3IgKG9yZGVyID0gMTsgb3JkZXIgPCA2NDsgb3JkZXIrKykgewotCQkJZm9yIChvZmZzZXQgPSAtMTsgb2Zmc2V0IDw9IChvcmRlciA+IDEpOyBvZmZzZXQrKykgewotCQkJCXU2NCBjdHggPSBCSVRfVUxMKG9yZGVyKSArIG9mZnNldDsKLQotCQkJCXJldCA9IF9faWd0X3N5bmMoJnRsLCBjdHgsIHAsICIxIik7Ci0JCQkJaWYgKHJldCkKLQkJCQkJZ290byBvdXQ7Ci0JCQl9Ci0JCX0KLQl9Ci0JbW9ja190aW1lbGluZV9maW5pKCZ0bCk7Ci0KLQltb2NrX3RpbWVsaW5lX2luaXQoJnRsLCAwKTsKLQlmb3IgKG9yZGVyID0gMTsgb3JkZXIgPCA2NDsgb3JkZXIrKykgewotCQlmb3IgKG9mZnNldCA9IC0xOyBvZmZzZXQgPD0gKG9yZGVyID4gMSk7IG9mZnNldCsrKSB7Ci0JCQl1NjQgY3R4ID0gQklUX1VMTChvcmRlcikgKyBvZmZzZXQ7Ci0KLQkJCWZvciAocCA9IHBhc3M7IHAtPm5hbWU7IHArKykgewotCQkJCXJldCA9IF9faWd0X3N5bmMoJnRsLCBjdHgsIHAsICIyIik7Ci0JCQkJaWYgKHJldCkKLQkJCQkJZ290byBvdXQ7Ci0JCQl9Ci0JCX0KLQl9Ci0KLW91dDoKLQltb2NrX3RpbWVsaW5lX2ZpbmkoJnRsKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdW5zaWduZWQgaW50IHJhbmRvbV9lbmdpbmUoc3RydWN0IHJuZF9zdGF0ZSAqcm5kKQotewotCXJldHVybiBpOTE1X3ByYW5kb21fdTMyX21heF9zdGF0ZShJOTE1X05VTV9FTkdJTkVTLCBybmQpOwotfQotCi1zdGF0aWMgaW50IGJlbmNoX3N5bmModm9pZCAqYXJnKQotewotCXN0cnVjdCBybmRfc3RhdGUgcHJuZzsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSB0bDsKLQl1bnNpZ25lZCBsb25nIGVuZF90aW1lLCBjb3VudDsKLQl1NjQgcHJuZzMyXzFNOwotCWt0aW1lX3Qga3Q7Ci0JaW50IG9yZGVyLCBsYXN0X29yZGVyOwotCi0JbW9ja190aW1lbGluZV9pbml0KCZ0bCwgMCk7Ci0KLQkvKiBMb29rdXBzIGZyb20gY2FjaGUgYXJlIHZlcnkgZmFzdCBhbmQgc28gdGhlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbgotCSAqIGFuZCB0aGUgbG9vcCBpdHNlbGYgYmVjb21lcyBhIHNpZ25pZmljYW50IGZhY3RvciBpbiB0aGUgcGVyLWl0ZXJhdGlvbgotCSAqIHRpbWluZ3MuIFdlIHRyeSB0byBjb21wZW5zYXRlIHRoZSByZXN1bHRzIGJ5IG1lYXN1cmluZyB0aGUgb3ZlcmhlYWQKLQkgKiBvZiB0aGUgcHJuZyBhbmQgc3VidHJhY3QgaXQgZnJvbSB0aGUgcmVwb3J0ZWQgcmVzdWx0cy4KLQkgKi8KLQlwcmFuZG9tX3NlZWRfc3RhdGUoJnBybmcsIGk5MTVfc2VsZnRlc3QucmFuZG9tX3NlZWQpOwotCWNvdW50ID0gMDsKLQlrdCA9IGt0aW1lX2dldCgpOwotCWVuZF90aW1lID0gamlmZmllcyArIEhaLzEwOwotCWRvIHsKLQkJdTMyIHg7Ci0KLQkJLyogTWFrZSBzdXJlIHRoZSBjb21waWxlciBkb2Vzbid0IG9wdGltaXNlIGF3YXkgdGhlIHBybmcgY2FsbCAqLwotCQlXUklURV9PTkNFKHgsIHByYW5kb21fdTMyX3N0YXRlKCZwcm5nKSk7Ci0KLQkJY291bnQrKzsKLQl9IHdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmRfdGltZSkpOwotCWt0ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBrdCk7Ci0JcHJfZGVidWcoIiVzOiAlbHUgcmFuZG9tIGV2YWx1YXRpb25zLCAlbGx1bnMvcHJuZ1xuIiwKLQkJIF9fZnVuY19fLCBjb3VudCwgKGxvbmcgbG9uZylkaXY2NF91bChrdGltZV90b19ucyhrdCksIGNvdW50KSk7Ci0JcHJuZzMyXzFNID0gZGl2NjRfdWwoa3RpbWVfdG9fbnMoa3QpIDw8IDIwLCBjb3VudCk7Ci0KLQkvKiBCZW5jaG1hcmsgKG9ubHkpIHNldHRpbmcgcmFuZG9tIGNvbnRleHQgaWRzICovCi0JcHJhbmRvbV9zZWVkX3N0YXRlKCZwcm5nLCBpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9zZWVkKTsKLQljb3VudCA9IDA7Ci0Ja3QgPSBrdGltZV9nZXQoKTsKLQllbmRfdGltZSA9IGppZmZpZXMgKyBIWi8xMDsKLQlkbyB7Ci0JCXU2NCBpZCA9IGk5MTVfcHJhbmRvbV91NjRfc3RhdGUoJnBybmcpOwotCi0JCV9faTkxNV90aW1lbGluZV9zeW5jX3NldCgmdGwsIGlkLCAwKTsKLQkJY291bnQrKzsKLQl9IHdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmRfdGltZSkpOwotCWt0ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBrdCk7Ci0Ja3QgPSBrdGltZV9zdWJfbnMoa3QsIChjb3VudCAqIHBybmczMl8xTSAqIDIpID4+IDIwKTsKLQlwcl9pbmZvKCIlczogJWx1IHJhbmRvbSBpbnNlcnRpb25zLCAlbGx1bnMvaW5zZXJ0XG4iLAotCQlfX2Z1bmNfXywgY291bnQsIChsb25nIGxvbmcpZGl2NjRfdWwoa3RpbWVfdG9fbnMoa3QpLCBjb3VudCkpOwotCi0JLyogQmVuY2htYXJrIGxvb2tpbmcgdXAgdGhlIGV4YWN0IHNhbWUgY29udGV4dCBpZHMgYXMgd2UganVzdCBzZXQgKi8KLQlwcmFuZG9tX3NlZWRfc3RhdGUoJnBybmcsIGk5MTVfc2VsZnRlc3QucmFuZG9tX3NlZWQpOwotCWVuZF90aW1lID0gY291bnQ7Ci0Ja3QgPSBrdGltZV9nZXQoKTsKLQl3aGlsZSAoZW5kX3RpbWUtLSkgewotCQl1NjQgaWQgPSBpOTE1X3ByYW5kb21fdTY0X3N0YXRlKCZwcm5nKTsKLQotCQlpZiAoIV9faTkxNV90aW1lbGluZV9zeW5jX2lzX2xhdGVyKCZ0bCwgaWQsIDApKSB7Ci0JCQltb2NrX3RpbWVsaW5lX2ZpbmkoJnRsKTsKLQkJCXByX2VycigiTG9va3VwIG9mICVsbHUgZmFpbGVkXG4iLCBpZCk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCX0KLQlrdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwga3QpOwotCWt0ID0ga3RpbWVfc3ViX25zKGt0LCAoY291bnQgKiBwcm5nMzJfMU0gKiAyKSA+PiAyMCk7Ci0JcHJfaW5mbygiJXM6ICVsdSByYW5kb20gbG9va3VwcywgJWxsdW5zL2xvb2t1cFxuIiwKLQkJX19mdW5jX18sIGNvdW50LCAobG9uZyBsb25nKWRpdjY0X3VsKGt0aW1lX3RvX25zKGt0KSwgY291bnQpKTsKLQotCW1vY2tfdGltZWxpbmVfZmluaSgmdGwpOwotCWNvbmRfcmVzY2hlZCgpOwotCi0JbW9ja190aW1lbGluZV9pbml0KCZ0bCwgMCk7Ci0KLQkvKiBCZW5jaG1hcmsgc2V0dGluZyB0aGUgZmlyc3QgTiAoaW4gb3JkZXIpIGNvbnRleHRzICovCi0JY291bnQgPSAwOwotCWt0ID0ga3RpbWVfZ2V0KCk7Ci0JZW5kX3RpbWUgPSBqaWZmaWVzICsgSFovMTA7Ci0JZG8gewotCQlfX2k5MTVfdGltZWxpbmVfc3luY19zZXQoJnRsLCBjb3VudCsrLCAwKTsKLQl9IHdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmRfdGltZSkpOwotCWt0ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBrdCk7Ci0JcHJfaW5mbygiJXM6ICVsdSBpbi1vcmRlciBpbnNlcnRpb25zLCAlbGx1bnMvaW5zZXJ0XG4iLAotCQlfX2Z1bmNfXywgY291bnQsIChsb25nIGxvbmcpZGl2NjRfdWwoa3RpbWVfdG9fbnMoa3QpLCBjb3VudCkpOwotCi0JLyogQmVuY2htYXJrIGxvb2tpbmcgdXAgdGhlIGV4YWN0IHNhbWUgY29udGV4dCBpZHMgYXMgd2UganVzdCBzZXQgKi8KLQllbmRfdGltZSA9IGNvdW50OwotCWt0ID0ga3RpbWVfZ2V0KCk7Ci0Jd2hpbGUgKGVuZF90aW1lLS0pIHsKLQkJaWYgKCFfX2k5MTVfdGltZWxpbmVfc3luY19pc19sYXRlcigmdGwsIGVuZF90aW1lLCAwKSkgewotCQkJcHJfZXJyKCJMb29rdXAgb2YgJWx1IGZhaWxlZFxuIiwgZW5kX3RpbWUpOwotCQkJbW9ja190aW1lbGluZV9maW5pKCZ0bCk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCX0KLQlrdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwga3QpOwotCXByX2luZm8oIiVzOiAlbHUgaW4tb3JkZXIgbG9va3VwcywgJWxsdW5zL2xvb2t1cFxuIiwKLQkJX19mdW5jX18sIGNvdW50LCAobG9uZyBsb25nKWRpdjY0X3VsKGt0aW1lX3RvX25zKGt0KSwgY291bnQpKTsKLQotCW1vY2tfdGltZWxpbmVfZmluaSgmdGwpOwotCWNvbmRfcmVzY2hlZCgpOwotCi0JbW9ja190aW1lbGluZV9pbml0KCZ0bCwgMCk7Ci0KLQkvKiBCZW5jaG1hcmsgc2VhcmNoaW5nIGZvciBhIHJhbmRvbSBjb250ZXh0IGlkIGFuZCBtYXliZSBjaGFuZ2luZyBpdCAqLwotCXByYW5kb21fc2VlZF9zdGF0ZSgmcHJuZywgaTkxNV9zZWxmdGVzdC5yYW5kb21fc2VlZCk7Ci0JY291bnQgPSAwOwotCWt0ID0ga3RpbWVfZ2V0KCk7Ci0JZW5kX3RpbWUgPSBqaWZmaWVzICsgSFovMTA7Ci0JZG8gewotCQl1MzIgaWQgPSByYW5kb21fZW5naW5lKCZwcm5nKTsKLQkJdTMyIHNlcW5vID0gcHJhbmRvbV91MzJfc3RhdGUoJnBybmcpOwotCi0JCWlmICghX19pOTE1X3RpbWVsaW5lX3N5bmNfaXNfbGF0ZXIoJnRsLCBpZCwgc2Vxbm8pKQotCQkJX19pOTE1X3RpbWVsaW5lX3N5bmNfc2V0KCZ0bCwgaWQsIHNlcW5vKTsKLQotCQljb3VudCsrOwotCX0gd2hpbGUgKCF0aW1lX2FmdGVyKGppZmZpZXMsIGVuZF90aW1lKSk7Ci0Ja3QgPSBrdGltZV9zdWIoa3RpbWVfZ2V0KCksIGt0KTsKLQlrdCA9IGt0aW1lX3N1Yl9ucyhrdCwgKGNvdW50ICogcHJuZzMyXzFNICogMikgPj4gMjApOwotCXByX2luZm8oIiVzOiAlbHUgcmVwZWF0ZWQgaW5zZXJ0L2xvb2t1cHMsICVsbHVucy9vcFxuIiwKLQkJX19mdW5jX18sIGNvdW50LCAobG9uZyBsb25nKWRpdjY0X3VsKGt0aW1lX3RvX25zKGt0KSwgY291bnQpKTsKLQltb2NrX3RpbWVsaW5lX2ZpbmkoJnRsKTsKLQljb25kX3Jlc2NoZWQoKTsKLQotCS8qIEJlbmNobWFyayBzZWFyY2hpbmcgZm9yIGEga25vd24gY29udGV4dCBpZCBhbmQgY2hhbmdpbmcgdGhlIHNlcW5vICovCi0JZm9yIChsYXN0X29yZGVyID0gMSwgb3JkZXIgPSAxOyBvcmRlciA8IDMyOwotCSAgICAgKHsgaW50IHRtcCA9IGxhc3Rfb3JkZXI7IGxhc3Rfb3JkZXIgPSBvcmRlcjsgb3JkZXIgKz0gdG1wOyB9KSkgewotCQl1bnNpZ25lZCBpbnQgbWFzayA9IEJJVChvcmRlcikgLSAxOwotCi0JCW1vY2tfdGltZWxpbmVfaW5pdCgmdGwsIDApOwotCi0JCWNvdW50ID0gMDsKLQkJa3QgPSBrdGltZV9nZXQoKTsKLQkJZW5kX3RpbWUgPSBqaWZmaWVzICsgSFovMTA7Ci0JCWRvIHsKLQkJCS8qIFdpdGhvdXQgYXNzdW1pbmcgdG9vIG1hbnkgZGV0YWlscyBvZiB0aGUgdW5kZXJseWluZwotCQkJICogaW1wbGVtZW50YXRpb24sIHRyeSB0byBpZGVudGlmeSBpdHMgcGhhc2UtY2hhbmdlcwotCQkJICogKGlmIGFueSkhCi0JCQkgKi8KLQkJCXU2NCBpZCA9ICh1NjQpKGNvdW50ICYgbWFzaykgPDwgb3JkZXI7Ci0KLQkJCV9faTkxNV90aW1lbGluZV9zeW5jX2lzX2xhdGVyKCZ0bCwgaWQsIDApOwotCQkJX19pOTE1X3RpbWVsaW5lX3N5bmNfc2V0KCZ0bCwgaWQsIDApOwotCi0JCQljb3VudCsrOwotCQl9IHdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmRfdGltZSkpOwotCQlrdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwga3QpOwotCQlwcl9pbmZvKCIlczogJWx1IGN5Y2xpYy8lZCBpbnNlcnQvbG9va3VwcywgJWxsdW5zL29wXG4iLAotCQkJX19mdW5jX18sIGNvdW50LCBvcmRlciwKLQkJCShsb25nIGxvbmcpZGl2NjRfdWwoa3RpbWVfdG9fbnMoa3QpLCBjb3VudCkpOwotCQltb2NrX3RpbWVsaW5lX2ZpbmkoJnRsKTsKLQkJY29uZF9yZXNjaGVkKCk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCBpOTE1X3RpbWVsaW5lX21vY2tfc2VsZnRlc3RzKHZvaWQpCi17Ci0Jc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKLQkJU1VCVEVTVChtb2NrX2h3c3BfZnJlZWxpc3QpLAotCQlTVUJURVNUKGlndF9zeW5jKSwKLQkJU1VCVEVTVChiZW5jaF9zeW5jKSwKLQl9OwotCi0JcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIE5VTEwpOwotfQotCi1zdGF0aWMgaW50IGVtaXRfZ2d0dF9zdG9yZV9kdyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIGFkZHIsIHUzMiB2YWx1ZSkKLXsKLQl1MzIgKmNzOwotCi0JY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJxLCA0KTsKLQlpZiAoSVNfRVJSKGNzKSkKLQkJcmV0dXJuIFBUUl9FUlIoY3MpOwotCi0JaWYgKElOVEVMX0dFTihycS0+aTkxNSkgPj0gOCkgewotCQkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTV9HRU40IHwgTUlfVVNFX0dHVFQ7Ci0JCSpjcysrID0gYWRkcjsKLQkJKmNzKysgPSAwOwotCQkqY3MrKyA9IHZhbHVlOwotCX0gZWxzZSBpZiAoSU5URUxfR0VOKHJxLT5pOTE1KSA+PSA0KSB7Ci0JCSpjcysrID0gTUlfU1RPUkVfRFdPUkRfSU1NX0dFTjQgfCBNSV9VU0VfR0dUVDsKLQkJKmNzKysgPSAwOwotCQkqY3MrKyA9IGFkZHI7Ci0JCSpjcysrID0gdmFsdWU7Ci0JfSBlbHNlIHsKLQkJKmNzKysgPSBNSV9TVE9SRV9EV09SRF9JTU0gfCBNSV9NRU1fVklSVFVBTDsKLQkJKmNzKysgPSBhZGRyOwotCQkqY3MrKyA9IHZhbHVlOwotCQkqY3MrKyA9IE1JX05PT1A7Ci0JfQotCi0JaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBjcyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgotdGxfd3JpdGUoc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsLCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiB2YWx1ZSkKLXsKLQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKLQlpbnQgZXJyOwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmdGwtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOyAvKiBsYXp5IHJxIHJlZnMgKi8KLQotCWVyciA9IGk5MTVfdGltZWxpbmVfcGluKHRsKTsKLQlpZiAoZXJyKSB7Ci0JCXJxID0gRVJSX1BUUihlcnIpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQlycSA9IGk5MTVfcmVxdWVzdF9jcmVhdGUoZW5naW5lLT5rZXJuZWxfY29udGV4dCk7Ci0JaWYgKElTX0VSUihycSkpCi0JCWdvdG8gb3V0X3VucGluOwotCi0JZXJyID0gZW1pdF9nZ3R0X3N0b3JlX2R3KHJxLCB0bC0+aHdzcF9vZmZzZXQsIHZhbHVlKTsKLQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKLQlpZiAoZXJyKQotCQlycSA9IEVSUl9QVFIoZXJyKTsKLQotb3V0X3VucGluOgotCWk5MTVfdGltZWxpbmVfdW5waW4odGwpOwotb3V0OgotCWlmIChJU19FUlIocnEpKQotCQlwcl9lcnIoIkZhaWxlZCB0byB3cml0ZSB0byB0aW1lbGluZSFcbiIpOwotCXJldHVybiBycTsKLX0KLQotc3RhdGljIHN0cnVjdCBpOTE1X3RpbWVsaW5lICoKLWNoZWNrZWRfaTkxNV90aW1lbGluZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsOwotCi0JdGwgPSBpOTE1X3RpbWVsaW5lX2NyZWF0ZShpOTE1LCBOVUxMKTsKLQlpZiAoSVNfRVJSKHRsKSkKLQkJcmV0dXJuIHRsOwotCi0JaWYgKCp0bC0+aHdzcF9zZXFubyAhPSB0bC0+c2Vxbm8pIHsKLQkJcHJfZXJyKCJUaW1lbGluZSBjcmVhdGVkIHdpdGggaW5jb3JyZWN0IGJyZWFkY3J1bWIsIGZvdW5kICV4LCBleHBlY3RlZCAleFxuIiwKLQkJICAgICAgICp0bC0+aHdzcF9zZXFubywgdGwtPnNlcW5vKTsKLQkJaTkxNV90aW1lbGluZV9wdXQodGwpOwotCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKLQl9Ci0KLQlyZXR1cm4gdGw7Ci19Ci0KLXN0YXRpYyBpbnQgbGl2ZV9od3NwX2VuZ2luZSh2b2lkICphcmcpCi17Ci0jZGVmaW5lIE5VTV9USU1FTElORVMgNDA5NgotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwotCXN0cnVjdCBpOTE1X3RpbWVsaW5lICoqdGltZWxpbmVzOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQl1bnNpZ25lZCBsb25nIGNvdW50LCBuOwotCWludCBlcnIgPSAwOwotCi0JLyoKLQkgKiBDcmVhdGUgYSBidW5jaCBvZiB0aW1lbGluZXMgYW5kIGNoZWNrIHdlIGNhbiB3cml0ZQotCSAqIGluZGVwZW5kZW50bHkgdG8gZWFjaCBvZiB0aGVpciBicmVhZGNydW1iIHNsb3RzLgotCSAqLwotCi0JdGltZWxpbmVzID0ga3ZtYWxsb2NfYXJyYXkoTlVNX1RJTUVMSU5FUyAqIEk5MTVfTlVNX0VOR0lORVMsCi0JCQkJICAgc2l6ZW9mKCp0aW1lbGluZXMpLAotCQkJCSAgIEdGUF9LRVJORUwpOwotCWlmICghdGltZWxpbmVzKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7Ci0KLQljb3VudCA9IDA7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKLQkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCi0JCQljb250aW51ZTsKLQotCQlmb3IgKG4gPSAwOyBuIDwgTlVNX1RJTUVMSU5FUzsgbisrKSB7Ci0JCQlzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGw7Ci0JCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKLQotCQkJdGwgPSBjaGVja2VkX2k5MTVfdGltZWxpbmVfY3JlYXRlKGk5MTUpOwotCQkJaWYgKElTX0VSUih0bCkpIHsKLQkJCQllcnIgPSBQVFJfRVJSKHRsKTsKLQkJCQlnb3RvIG91dDsKLQkJCX0KLQotCQkJcnEgPSB0bF93cml0ZSh0bCwgZW5naW5lLCBjb3VudCk7Ci0JCQlpZiAoSVNfRVJSKHJxKSkgewotCQkJCWk5MTVfdGltZWxpbmVfcHV0KHRsKTsKLQkJCQllcnIgPSBQVFJfRVJSKHJxKTsKLQkJCQlnb3RvIG91dDsKLQkJCX0KLQotCQkJdGltZWxpbmVzW2NvdW50KytdID0gdGw7Ci0JCX0KLQl9Ci0KLW91dDoKLQlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCi0JCWVyciA9IC1FSU87Ci0KLQlmb3IgKG4gPSAwOyBuIDwgY291bnQ7IG4rKykgewotCQlzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwgPSB0aW1lbGluZXNbbl07Ci0KLQkJaWYgKCFlcnIgJiYgKnRsLT5od3NwX3NlcW5vICE9IG4pIHsKLQkJCXByX2VycigiSW52YWxpZCBzZXFubyBzdG9yZWQgaW4gdGltZWxpbmUgJWx1LCBmb3VuZCAweCV4XG4iLAotCQkJICAgICAgIG4sICp0bC0+aHdzcF9zZXFubyk7Ci0JCQllcnIgPSAtRUlOVkFMOwotCQl9Ci0JCWk5MTVfdGltZWxpbmVfcHV0KHRsKTsKLQl9Ci0KLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7Ci0JbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQotCWt2ZnJlZSh0aW1lbGluZXMpOwotCi0JcmV0dXJuIGVycjsKLSN1bmRlZiBOVU1fVElNRUxJTkVTCi19Ci0KLXN0YXRpYyBpbnQgbGl2ZV9od3NwX2FsdGVybmF0ZSh2b2lkICphcmcpCi17Ci0jZGVmaW5lIE5VTV9USU1FTElORVMgNDA5NgotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwotCXN0cnVjdCBpOTE1X3RpbWVsaW5lICoqdGltZWxpbmVzOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQl1bnNpZ25lZCBsb25nIGNvdW50LCBuOwotCWludCBlcnIgPSAwOwotCi0JLyoKLQkgKiBDcmVhdGUgYSBidW5jaCBvZiB0aW1lbGluZXMgYW5kIGNoZWNrIHdlIGNhbiB3cml0ZQotCSAqIGluZGVwZW5kZW50bHkgdG8gZWFjaCBvZiB0aGVpciBicmVhZGNydW1iIHNsb3RzIHdpdGggYWRqYWNlbnQKLQkgKiBlbmdpbmVzLgotCSAqLwotCi0JdGltZWxpbmVzID0ga3ZtYWxsb2NfYXJyYXkoTlVNX1RJTUVMSU5FUyAqIEk5MTVfTlVNX0VOR0lORVMsCi0JCQkJICAgc2l6ZW9mKCp0aW1lbGluZXMpLAotCQkJCSAgIEdGUF9LRVJORUwpOwotCWlmICghdGltZWxpbmVzKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7Ci0KLQljb3VudCA9IDA7Ci0JZm9yIChuID0gMDsgbiA8IE5VTV9USU1FTElORVM7IG4rKykgewotCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewotCQkJc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsOwotCQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Ci0KLQkJCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQotCQkJCWNvbnRpbnVlOwotCi0JCQl0bCA9IGNoZWNrZWRfaTkxNV90aW1lbGluZV9jcmVhdGUoaTkxNSk7Ci0JCQlpZiAoSVNfRVJSKHRsKSkgewotCQkJCWVyciA9IFBUUl9FUlIodGwpOwotCQkJCWdvdG8gb3V0OwotCQkJfQotCi0JCQlycSA9IHRsX3dyaXRlKHRsLCBlbmdpbmUsIGNvdW50KTsKLQkJCWlmIChJU19FUlIocnEpKSB7Ci0JCQkJaTkxNV90aW1lbGluZV9wdXQodGwpOwotCQkJCWVyciA9IFBUUl9FUlIocnEpOwotCQkJCWdvdG8gb3V0OwotCQkJfQotCi0JCQl0aW1lbGluZXNbY291bnQrK10gPSB0bDsKLQkJfQotCX0KLQotb3V0OgotCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKLQkJZXJyID0gLUVJTzsKLQotCWZvciAobiA9IDA7IG4gPCBjb3VudDsgbisrKSB7Ci0JCXN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCA9IHRpbWVsaW5lc1tuXTsKLQotCQlpZiAoIWVyciAmJiAqdGwtPmh3c3Bfc2Vxbm8gIT0gbikgewotCQkJcHJfZXJyKCJJbnZhbGlkIHNlcW5vIHN0b3JlZCBpbiB0aW1lbGluZSAlbHUsIGZvdW5kIDB4JXhcbiIsCi0JCQkgICAgICAgbiwgKnRsLT5od3NwX3NlcW5vKTsKLQkJCWVyciA9IC1FSU5WQUw7Ci0JCX0KLQkJaTkxNV90aW1lbGluZV9wdXQodGwpOwotCX0KLQotCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKLQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCi0Ja3ZmcmVlKHRpbWVsaW5lcyk7Ci0KLQlyZXR1cm4gZXJyOwotI3VuZGVmIE5VTV9USU1FTElORVMKLX0KLQotc3RhdGljIGludCBsaXZlX2h3c3Bfd3JhcCh2b2lkICphcmcpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCXN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bDsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQlpbnQgZXJyID0gMDsKLQotCS8qCi0JICogQWNyb3NzIGEgc2Vxbm8gd3JhcCwgd2UgbmVlZCB0byBrZWVwIHRoZSBvbGQgY2FjaGVsaW5lIGFsaXZlIGZvcgotCSAqIGZvcmVpZ24gR1BVIHJlZmVyZW5jZXMuCi0JICovCi0KLQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwotCi0JdGwgPSBpOTE1X3RpbWVsaW5lX2NyZWF0ZShpOTE1LCBOVUxMKTsKLQlpZiAoSVNfRVJSKHRsKSkgewotCQllcnIgPSBQVFJfRVJSKHRsKTsKLQkJZ290byBvdXRfcnBtOwotCX0KLQlpZiAoIXRsLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iIHx8ICF0bC0+aHdzcF9jYWNoZWxpbmUpCi0JCWdvdG8gb3V0X2ZyZWU7Ci0KLQllcnIgPSBpOTE1X3RpbWVsaW5lX3Bpbih0bCk7Ci0JaWYgKGVycikKLQkJZ290byBvdXRfZnJlZTsKLQotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7Ci0JCWNvbnN0IHUzMiAqaHdzcF9zZXFub1syXTsKLQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Ci0JCXUzMiBzZXFub1syXTsKLQotCQlpZiAoIWludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQoZW5naW5lKSkKLQkJCWNvbnRpbnVlOwotCi0JCXJxID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZShlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKLQkJaWYgKElTX0VSUihycSkpIHsKLQkJCWVyciA9IFBUUl9FUlIocnEpOwotCQkJZ290byBvdXQ7Ci0JCX0KLQotCQl0bC0+c2Vxbm8gPSAtNHU7Ci0KLQkJZXJyID0gaTkxNV90aW1lbGluZV9nZXRfc2Vxbm8odGwsIHJxLCAmc2Vxbm9bMF0pOwotCQlpZiAoZXJyKSB7Ci0JCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKLQkJCWdvdG8gb3V0OwotCQl9Ci0JCXByX2RlYnVnKCJzZXFub1swXTolMDh4LCBod3NwX29mZnNldDolMDh4XG4iLAotCQkJIHNlcW5vWzBdLCB0bC0+aHdzcF9vZmZzZXQpOwotCi0JCWVyciA9IGVtaXRfZ2d0dF9zdG9yZV9kdyhycSwgdGwtPmh3c3Bfb2Zmc2V0LCBzZXFub1swXSk7Ci0JCWlmIChlcnIpIHsKLQkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwotCQkJZ290byBvdXQ7Ci0JCX0KLQkJaHdzcF9zZXFub1swXSA9IHRsLT5od3NwX3NlcW5vOwotCi0JCWVyciA9IGk5MTVfdGltZWxpbmVfZ2V0X3NlcW5vKHRsLCBycSwgJnNlcW5vWzFdKTsKLQkJaWYgKGVycikgewotCQkJaTkxNV9yZXF1ZXN0X2FkZChycSk7Ci0JCQlnb3RvIG91dDsKLQkJfQotCQlwcl9kZWJ1Zygic2Vxbm9bMV06JTA4eCwgaHdzcF9vZmZzZXQ6JTA4eFxuIiwKLQkJCSBzZXFub1sxXSwgdGwtPmh3c3Bfb2Zmc2V0KTsKLQotCQllcnIgPSBlbWl0X2dndHRfc3RvcmVfZHcocnEsIHRsLT5od3NwX29mZnNldCwgc2Vxbm9bMV0pOwotCQlpZiAoZXJyKSB7Ci0JCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKLQkJCWdvdG8gb3V0OwotCQl9Ci0JCWh3c3Bfc2Vxbm9bMV0gPSB0bC0+aHdzcF9zZXFubzsKLQotCQkvKiBXaXRoIHdyYXAgc2hvdWxkIGNvbWUgYSBuZXcgaHdzcCAqLwotCQlHRU1fQlVHX09OKHNlcW5vWzFdID49IHNlcW5vWzBdKTsKLQkJR0VNX0JVR19PTihod3NwX3NlcW5vWzBdID09IGh3c3Bfc2Vxbm9bMV0pOwotCi0JCWk5MTVfcmVxdWVzdF9hZGQocnEpOwotCi0JCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgSFogLyA1KSA8IDApIHsKLQkJCXByX2VycigiV2FpdCBmb3IgdGltZWxpbmUgd3JpdGVzIHRpbWVkIG91dCFcbiIpOwotCQkJZXJyID0gLUVJTzsKLQkJCWdvdG8gb3V0OwotCQl9Ci0KLQkJaWYgKCpod3NwX3NlcW5vWzBdICE9IHNlcW5vWzBdIHx8ICpod3NwX3NlcW5vWzFdICE9IHNlcW5vWzFdKSB7Ci0JCQlwcl9lcnIoIkJhZCB0aW1lbGluZSB2YWx1ZXM6IGZvdW5kICgleCwgJXgpLCBleHBlY3RlZCAoJXgsICV4KVxuIiwKLQkJCSAgICAgICAqaHdzcF9zZXFub1swXSwgKmh3c3Bfc2Vxbm9bMV0sCi0JCQkgICAgICAgc2Vxbm9bMF0sIHNlcW5vWzFdKTsKLQkJCWVyciA9IC1FSU5WQUw7Ci0JCQlnb3RvIG91dDsKLQkJfQotCi0JCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUpOyAvKiByZWN5Y2xlIEhXU1AgKi8KLQl9Ci0KLW91dDoKLQlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCi0JCWVyciA9IC1FSU87Ci0KLQlpOTE1X3RpbWVsaW5lX3VucGluKHRsKTsKLW91dF9mcmVlOgotCWk5MTVfdGltZWxpbmVfcHV0KHRsKTsKLW91dF9ycG06Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwotCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0KLQlyZXR1cm4gZXJyOwotfQotCi1zdGF0aWMgaW50IGxpdmVfaHdzcF9yZWN5Y2xlKHZvaWQgKmFyZykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0JaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Ci0JdW5zaWduZWQgbG9uZyBjb3VudDsKLQlpbnQgZXJyID0gMDsKLQotCS8qCi0JICogQ2hlY2sgc2Vxbm8gd3JpdGVzIGludG8gb25lIHRpbWVsaW5lIGF0IGEgdGltZS4gV2UgZXhwZWN0IHRvCi0JICogcmVjeWNsZSB0aGUgYnJlYWRjcnVtYiBzbG90IGJldHdlZW4gaXRlcmF0aW9ucyBhbmQgbmVpdGhlcgotCSAqIHdhbnQgdG8gY29uZnVzZSBvdXJzZWx2ZXMgb3IgdGhlIEdQVS4KLQkgKi8KLQotCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7Ci0KLQljb3VudCA9IDA7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKLQkJSUdUX1RJTUVPVVQoZW5kX3RpbWUpOwotCi0JCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQotCQkJY29udGludWU7Ci0KLQkJZG8gewotCQkJc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsOwotCQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Ci0KLQkJCXRsID0gY2hlY2tlZF9pOTE1X3RpbWVsaW5lX2NyZWF0ZShpOTE1KTsKLQkJCWlmIChJU19FUlIodGwpKSB7Ci0JCQkJZXJyID0gUFRSX0VSUih0bCk7Ci0JCQkJZ290byBvdXQ7Ci0JCQl9Ci0KLQkJCXJxID0gdGxfd3JpdGUodGwsIGVuZ2luZSwgY291bnQpOwotCQkJaWYgKElTX0VSUihycSkpIHsKLQkJCQlpOTE1X3RpbWVsaW5lX3B1dCh0bCk7Ci0JCQkJZXJyID0gUFRSX0VSUihycSk7Ci0JCQkJZ290byBvdXQ7Ci0JCQl9Ci0KLQkJCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgSFogLyA1KSA8IDApIHsKLQkJCQlwcl9lcnIoIldhaXQgZm9yIHRpbWVsaW5lIHdyaXRlcyB0aW1lZCBvdXQhXG4iKTsKLQkJCQlpOTE1X3RpbWVsaW5lX3B1dCh0bCk7Ci0JCQkJZXJyID0gLUVJTzsKLQkJCQlnb3RvIG91dDsKLQkJCX0KLQotCQkJaWYgKCp0bC0+aHdzcF9zZXFubyAhPSBjb3VudCkgewotCQkJCXByX2VycigiSW52YWxpZCBzZXFubyBzdG9yZWQgaW4gdGltZWxpbmUgJWx1LCBmb3VuZCAweCV4XG4iLAotCQkJCSAgICAgICBjb3VudCwgKnRsLT5od3NwX3NlcW5vKTsKLQkJCQllcnIgPSAtRUlOVkFMOwotCQkJfQotCi0JCQlpOTE1X3RpbWVsaW5lX3B1dCh0bCk7Ci0JCQljb3VudCsrOwotCi0JCQlpZiAoZXJyKQotCQkJCWdvdG8gb3V0OwotCi0JCQlpOTE1X3RpbWVsaW5lc19wYXJrKGk5MTUpOyAvKiBFbmNvdXJhZ2UgcmVjeWNsaW5nISAqLwotCQl9IHdoaWxlICghX19pZ3RfdGltZW91dChlbmRfdGltZSwgTlVMTCkpOwotCX0KLQotb3V0OgotCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKLQkJZXJyID0gLUVJTzsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7Ci0JbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQotCXJldHVybiBlcnI7Ci19Ci0KLWludCBpOTE1X3RpbWVsaW5lX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7Ci0JCVNVQlRFU1QobGl2ZV9od3NwX3JlY3ljbGUpLAotCQlTVUJURVNUKGxpdmVfaHdzcF9lbmdpbmUpLAotCQlTVUJURVNUKGxpdmVfaHdzcF9hbHRlcm5hdGUpLAotCQlTVUJURVNUKGxpdmVfaHdzcF93cmFwKSwKLQl9OwotCi0JaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNSkpCi0JCXJldHVybiAwOwotCi0JcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIGk5MTUpOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYwppbmRleCBmYmM3OWIxLi5hNWJlYzBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYwpAQCAtMTkzLDYgKzE5Myw4IEBAIHN0YXRpYyBpbnQgaWd0X3ZtYV9jcmVhdGUodm9pZCAqYXJnKQogCQkJbGlzdF9kZWxfaW5pdCgmY3R4LT5saW5rKTsKIAkJCW1vY2tfY29udGV4dF9jbG9zZShjdHgpOwogCQl9CisKKwkJY29uZF9yZXNjaGVkKCk7CiAJfQogCiBlbmQ6CkBAIC0zNDEsNiArMzQzLDggQEAgc3RhdGljIGludCBpZ3Rfdm1hX3BpbjEodm9pZCAqYXJnKQogCQkJCWdvdG8gb3V0OwogCQkJfQogCQl9CisKKwkJY29uZF9yZXNjaGVkKCk7CiAJfQogCiAJZXJyID0gMDsKQEAgLTU5Nyw2ICs2MDEsOCBAQCBzdGF0aWMgaW50IGlndF92bWFfcm90YXRlX3JlbWFwKHZvaWQgKmFyZykKIAkJCQkJfQogCiAJCQkJCWk5MTVfdm1hX3VucGluKHZtYSk7CisKKwkJCQkJY29uZF9yZXNjaGVkKCk7CiAJCQkJfQogCQkJfQogCQl9CkBAIC03NTIsNiArNzU4LDggQEAgc3RhdGljIGludCBpZ3Rfdm1hX3BhcnRpYWwodm9pZCAqYXJnKQogCiAJCQkJaTkxNV92bWFfdW5waW4odm1hKTsKIAkJCQludm1hKys7CisKKwkJCQljb25kX3Jlc2NoZWQoKTsKIAkJCX0KIAkJfQogCkBAIC05NjEsNiArOTY5LDggQEAgc3RhdGljIGludCBpZ3Rfdm1hX3JlbWFwcGVkX2d0dCh2b2lkICphcmcpCiAJCQkJfQogCQkJfQogCQkJaTkxNV92bWFfdW5waW5faW9tYXAodm1hKTsKKworCQkJY29uZF9yZXNjaGVkKCk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmMKaW5kZXggNWJmZDFiMi4uZDNiNWViNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmMKQEAgLTUsNiArNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9jb250ZXh0LmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgpAQCAtMTMsNyArMTQsNyBAQAogCiBpbnQgaWd0X2ZsdXNoX3Rlc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHVuc2lnbmVkIGludCBmbGFncykKIHsKLQlpbnQgcmV0ID0gaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1KSA/IC1FSU8gOiAwOworCWludCByZXQgPSBpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSA/IC1FSU8gOiAwOwogCWludCByZXBlYXQgPSAhIShmbGFncyAmIEk5MTVfV0FJVF9MT0NLRUQpOwogCiAJY29uZF9yZXNjaGVkKCk7CkBAIC0yNyw3ICsyOCw3IEBAIGludCBpZ3RfZmx1c2hfdGVzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQogCQkJCSAgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKIAkJCUdFTV9UUkFDRV9EVU1QKCk7CiAKLQkJCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CisJCQlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZpOTE1LT5ndCk7CiAJCQlyZXBlYXQgPSAwOwogCQkJcmV0ID0gLUVJTzsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9yZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9yZXNldC5jCmluZGV4IDU4N2RmNmYuLjdlYzhmOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfcmVzZXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmMKQEAgLTcsNDcgKzcsNDUgQEAKICNpbmNsdWRlICJpZ3RfcmVzZXQuaCIKIAogI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZS5oIgorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCiAKICNpbmNsdWRlICIuLi9pOTE1X2Rydi5oIgogCi12b2lkIGlndF9nbG9iYWxfcmVzZXRfbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3ZvaWQgaWd0X2dsb2JhbF9yZXNldF9sb2NrKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCi0JcHJfZGVidWcoIiVzOiBjdXJyZW50IGdwdV9lcnJvcj0lMDhseFxuIiwKLQkJIF9fZnVuY19fLCBpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOworCXByX2RlYnVnKCIlczogY3VycmVudCBncHVfZXJyb3I9JTA4bHhcbiIsIF9fZnVuY19fLCBndC0+cmVzZXQuZmxhZ3MpOwogCi0Jd2hpbGUgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKSkKLQkJd2FpdF9ldmVudChpOTE1LT5ncHVfZXJyb3IucmVzZXRfcXVldWUsCi0JCQkgICAhdGVzdF9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLAotCQkJCSAgICAgJmk5MTUtPmdwdV9lcnJvci5mbGFncykpOworCXdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmd0LT5yZXNldC5mbGFncykpCisJCXdhaXRfZXZlbnQoZ3QtPnJlc2V0LnF1ZXVlLAorCQkJICAgIXRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmd0LT5yZXNldC5mbGFncykpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKIAkJd2hpbGUgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBpZCwKLQkJCQkJJmk5MTUtPmdwdV9lcnJvci5mbGFncykpCi0JCQl3YWl0X29uX2JpdCgmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzLAotCQkJCSAgICBJOTE1X1JFU0VUX0VOR0lORSArIGlkLAorCQkJCQkmZ3QtPnJlc2V0LmZsYWdzKSkKKwkJCXdhaXRfb25fYml0KCZndC0+cmVzZXQuZmxhZ3MsIEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsCiAJCQkJICAgIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKIAl9CiB9CiAKLXZvaWQgaWd0X2dsb2JhbF9yZXNldF91bmxvY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit2b2lkIGlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCi0JCWNsZWFyX2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCisJCWNsZWFyX2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmZ3QtPnJlc2V0LmZsYWdzKTsKIAotCWNsZWFyX2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOwotCXdha2VfdXBfYWxsKCZpOTE1LT5ncHVfZXJyb3IucmVzZXRfcXVldWUpOworCWNsZWFyX2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZndC0+cmVzZXQuZmxhZ3MpOworCXdha2VfdXBfYWxsKCZndC0+cmVzZXQucXVldWUpOwogfQogCi1ib29sIGlndF9mb3JjZV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK2Jvb2wgaWd0X2ZvcmNlX3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7Ci0JaTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKLQlpOTE1X3Jlc2V0KGk5MTUsIDAsIE5VTEwpOworCWludGVsX2d0X3NldF93ZWRnZWQoZ3QpOworCWludGVsX2d0X3Jlc2V0KGd0LCAwLCBOVUxMKTsKIAotCXJldHVybiAhaTkxNV9yZXNldF9mYWlsZWQoaTkxNSk7CisJcmV0dXJuICFpbnRlbF9ndF9pc193ZWRnZWQoZ3QpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9yZXNldC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9yZXNldC5oCmluZGV4IDM2M2JkODUuLjg1MTg3M2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfcmVzZXQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmgKQEAgLTcsMTAgKzcsMTIgQEAKICNpZm5kZWYgX19JOTE1X1NFTEZURVNUU19JR1RfUkVTRVRfSF9fCiAjZGVmaW5lIF9fSTkxNV9TRUxGVEVTVFNfSUdUX1JFU0VUX0hfXwogCi0jaW5jbHVkZSAiLi4vaTkxNV9kcnYuaCIKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCi12b2lkIGlndF9nbG9iYWxfcmVzZXRfbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci12b2lkIGlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLWJvb2wgaWd0X2ZvcmNlX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3N0cnVjdCBpbnRlbF9ndDsKKwordm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soc3RydWN0IGludGVsX2d0ICpndCk7Cit2b2lkIGlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOworYm9vbCBpZ3RfZm9yY2VfcmVzZXQoc3RydWN0IGludGVsX2d0ICpndCk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9zcGlubmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3NwaW5uZXIuYwppbmRleCAxZTU5YjU0Li4xMWYwNGFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3NwaW5uZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3NwaW5uZXIuYwpAQCAtMywyOSArMywzMCBAQAogICoKICAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCiAgKi8KKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgogCiAjaW5jbHVkZSAiZ2VtL3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmgiCiAKICNpbmNsdWRlICJpZ3Rfc3Bpbm5lci5oIgogCi1pbnQgaWd0X3NwaW5uZXJfaW5pdChzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4sIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoraW50IGlndF9zcGlubmVyX2luaXQoc3RydWN0IGlndF9zcGlubmVyICpzcGluLCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCXVuc2lnbmVkIGludCBtb2RlOwogCXZvaWQgKnZhZGRyOwogCWludCBlcnI7CiAKLQlHRU1fQlVHX09OKElOVEVMX0dFTihpOTE1KSA8IDgpOworCUdFTV9CVUdfT04oSU5URUxfR0VOKGd0LT5pOTE1KSA8IDgpOwogCiAJbWVtc2V0KHNwaW4sIDAsIHNpemVvZigqc3BpbikpOwotCXNwaW4tPmk5MTUgPSBpOTE1OworCXNwaW4tPmd0ID0gZ3Q7CiAKLQlzcGluLT5od3MgPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGk5MTUsIFBBR0VfU0laRSk7CisJc3Bpbi0+aHdzID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChndC0+aTkxNSwgUEFHRV9TSVpFKTsKIAlpZiAoSVNfRVJSKHNwaW4tPmh3cykpIHsKIAkJZXJyID0gUFRSX0VSUihzcGluLT5od3MpOwogCQlnb3RvIGVycjsKIAl9CiAKLQlzcGluLT5vYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGk5MTUsIFBBR0VfU0laRSk7CisJc3Bpbi0+b2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChndC0+aTkxNSwgUEFHRV9TSVpFKTsKIAlpZiAoSVNfRVJSKHNwaW4tPm9iaikpIHsKIAkJZXJyID0gUFRSX0VSUihzcGluLT5vYmopOwogCQlnb3RvIGVycl9od3M7CkBAIC0zOSw3ICs0MCw3IEBAIGludCBpZ3Rfc3Bpbm5lcl9pbml0KHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3Bpbiwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJfQogCXNwaW4tPnNlcW5vID0gbWVtc2V0KHZhZGRyLCAweGZmLCBQQUdFX1NJWkUpOwogCi0JbW9kZSA9IGk5MTVfY29oZXJlbnRfbWFwX3R5cGUoaTkxNSk7CisJbW9kZSA9IGk5MTVfY29oZXJlbnRfbWFwX3R5cGUoZ3QtPmk5MTUpOwogCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoc3Bpbi0+b2JqLCBtb2RlKTsKIAlpZiAoSVNfRVJSKHZhZGRyKSkgewogCQllcnIgPSBQVFJfRVJSKHZhZGRyKTsKQEAgLTc3LDcgKzc4LDEwIEBAIHN0YXRpYyBpbnQgbW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJaW50IGVycjsKIAogCWk5MTVfdm1hX2xvY2sodm1hKTsKLQllcnIgPSBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCBmbGFncyk7CisJZXJyID0gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgdm1hLT5vYmosCisJCQkJCWZsYWdzICYgRVhFQ19PQkpFQ1RfV1JJVEUpOworCWlmIChlcnIgPT0gMCkKKwkJZXJyID0gaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCBycSwgZmxhZ3MpOwogCWk5MTVfdm1hX3VubG9jayh2bWEpOwogCiAJcmV0dXJuIGVycjsKQEAgLTg1LDIwICs4OSwyMiBAQCBzdGF0aWMgaW50IG1vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCiBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKIGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3BpbiwKLQkJCSAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCi0JCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCQkgICB1MzIgYXJiaXRyYXRpb25fY29tbWFuZCkKIHsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBjZS0+ZW5naW5lOwogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxID0gTlVMTDsKIAlzdHJ1Y3QgaTkxNV92bWEgKmh3cywgKnZtYTsKIAl1MzIgKmJhdGNoOwogCWludCBlcnI7CiAKLQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShzcGluLT5vYmosIGN0eC0+dm0sIE5VTEwpOworCUdFTV9CVUdfT04oc3Bpbi0+Z3QgIT0gY2UtPnZtLT5ndCk7CisKKwl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShzcGluLT5vYmosIGNlLT52bSwgTlVMTCk7CiAJaWYgKElTX0VSUih2bWEpKQogCQlyZXR1cm4gRVJSX0NBU1Qodm1hKTsKIAotCWh3cyA9IGk5MTVfdm1hX2luc3RhbmNlKHNwaW4tPmh3cywgY3R4LT52bSwgTlVMTCk7CisJaHdzID0gaTkxNV92bWFfaW5zdGFuY2Uoc3Bpbi0+aHdzLCBjZS0+dm0sIE5VTEwpOwogCWlmIChJU19FUlIoaHdzKSkKIAkJcmV0dXJuIEVSUl9DQVNUKGh3cyk7CiAKQEAgLTExMCw3ICsxMTYsNyBAQCBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4sCiAJaWYgKGVycikKIAkJZ290byB1bnBpbl92bWE7CiAKLQlycSA9IGlndF9yZXF1ZXN0X2FsbG9jKGN0eCwgZW5naW5lKTsKKwlycSA9IGludGVsX2NvbnRleHRfY3JlYXRlX3JlcXVlc3QoY2UpOwogCWlmIChJU19FUlIocnEpKSB7CiAJCWVyciA9IFBUUl9FUlIocnEpOwogCQlnb3RvIHVucGluX2h3czsKQEAgLTEzOCw3ICsxNDQsNyBAQCBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4sCiAJKmJhdGNoKysgPSB1cHBlcl8zMl9iaXRzKHZtYS0+bm9kZS5zdGFydCk7CiAJKmJhdGNoKysgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOyAvKiBub3QgcmVhY2hlZCAqLwogCi0JaTkxNV9nZW1fY2hpcHNldF9mbHVzaChzcGluLT5pOTE1KTsKKwlpbnRlbF9ndF9jaGlwc2V0X2ZsdXNoKGVuZ2luZS0+Z3QpOwogCiAJaWYgKGVuZ2luZS0+ZW1pdF9pbml0X2JyZWFkY3J1bWIgJiYKIAkgICAgcnEtPnRpbWVsaW5lLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iKSB7CkBAIC0xNzIsNyArMTc4LDcgQEAgaHdzX3NlcW5vKGNvbnN0IHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3BpbiwgY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB2b2lkIGlndF9zcGlubmVyX2VuZChzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4pCiB7CiAJKnNwaW4tPmJhdGNoID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKLQlpOTE1X2dlbV9jaGlwc2V0X2ZsdXNoKHNwaW4tPmk5MTUpOworCWludGVsX2d0X2NoaXBzZXRfZmx1c2goc3Bpbi0+Z3QpOwogfQogCiB2b2lkIGlndF9zcGlubmVyX2Zpbmkoc3RydWN0IGlndF9zcGlubmVyICpzcGluKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9zcGlubmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3NwaW5uZXIuaAppbmRleCAzNGE4OGFjLi5lYzYyYzllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3NwaW5uZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3NwaW5uZXIuaApAQCAtMTQsMjEgKzE0LDIyIEBACiAjaW5jbHVkZSAiaTkxNV9yZXF1ZXN0LmgiCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgogCitzdHJ1Y3QgaW50ZWxfZ3Q7CisKIHN0cnVjdCBpZ3Rfc3Bpbm5lciB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CisJc3RydWN0IGludGVsX2d0ICpndDsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaHdzOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJdTMyICpiYXRjaDsKIAl2b2lkICpzZXFubzsKIH07CiAKLWludCBpZ3Rfc3Bpbm5lcl9pbml0KHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3Bpbiwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworaW50IGlndF9zcGlubmVyX2luaXQoc3RydWN0IGlndF9zcGlubmVyICpzcGluLCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKIHZvaWQgaWd0X3NwaW5uZXJfZmluaShzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4pOwogCiBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKIGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3BpbiwKLQkJCSAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCi0JCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCQkgICB1MzIgYXJiaXRyYXRpb25fY29tbWFuZCk7CiB2b2lkIGlndF9zcGlubmVyX2VuZChzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3dlZGdlX21lLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3dlZGdlX21lLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4ZTVmZjEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF93ZWRnZV9tZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgotICovCi0KLSNpZm5kZWYgSUdUX1dFREdFX01FX0gKLSNkZWZpbmUgSUdUX1dFREdFX01FX0gKLQotI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgotCi0jaW5jbHVkZSAiLi4vaTkxNV9nZW0uaCIKLQotc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Ci0KLXN0cnVjdCBpZ3Rfd2VkZ2VfbWUgewotCXN0cnVjdCBkZWxheWVkX3dvcmsgd29yazsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKLQljb25zdCBjaGFyICpuYW1lOwotfTsKLQotc3RhdGljIHZvaWQgX19pZ3Rfd2VkZ2VfbWUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQotewotCXN0cnVjdCBpZ3Rfd2VkZ2VfbWUgKncgPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9mKCp3KSwgd29yay53b3JrKTsKLQotCXByX2VycigiJXMgdGltZWQgb3V0LCBjYW5jZWxsaW5nIHRlc3QuXG4iLCB3LT5uYW1lKTsKLQotCUdFTV9UUkFDRSgiJXMgdGltZWQgb3V0LlxuIiwgdy0+bmFtZSk7Ci0JR0VNX1RSQUNFX0RVTVAoKTsKLQotCWk5MTVfZ2VtX3NldF93ZWRnZWQody0+aTkxNSk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faWd0X2luaXRfd2VkZ2Uoc3RydWN0IGlndF93ZWRnZV9tZSAqdywKLQkJCSAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCQkgICAgIGxvbmcgdGltZW91dCwKLQkJCSAgICAgY29uc3QgY2hhciAqbmFtZSkKLXsKLQl3LT5pOTE1ID0gaTkxNTsKLQl3LT5uYW1lID0gbmFtZTsKLQotCUlOSVRfREVMQVlFRF9XT1JLX09OU1RBQ0soJnctPndvcmssIF9faWd0X3dlZGdlX21lKTsKLQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnctPndvcmssIHRpbWVvdXQpOwotfQotCi1zdGF0aWMgdm9pZCBfX2lndF9maW5pX3dlZGdlKHN0cnVjdCBpZ3Rfd2VkZ2VfbWUgKncpCi17Ci0JY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZ3LT53b3JrKTsKLQlkZXN0cm95X2RlbGF5ZWRfd29ya19vbl9zdGFjaygmdy0+d29yayk7Ci0Jdy0+aTkxNSA9IE5VTEw7Ci19Ci0KLSNkZWZpbmUgaWd0X3dlZGdlX29uX3RpbWVvdXQoVywgREVWLCBUSU1FT1VUKQkJCQlcCi0JZm9yIChfX2lndF9pbml0X3dlZGdlKChXKSwgKERFViksIChUSU1FT1VUKSwgX19mdW5jX18pOwkJXAotCSAgICAgKFcpLT5pOTE1OwkJCQkJCQlcCi0JICAgICBfX2lndF9maW5pX3dlZGdlKChXKSkpCi0KLSNlbmRpZiAvKiBJR1RfV0VER0VfTUVfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Y2E4NTg0Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9ndWMuYworKysgL2Rldi9udWxsCkBAIC0xLDM1OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IMKpIDIwMTcgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCi0gKiBJTiBUSEUgU09GVFdBUkUuCi0gKgotICovCi0KLSNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCi0jaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3BtLmgiCi0KLS8qIG1heCBkb29yYmVsbCBudW1iZXIgKyBuZWdhdGl2ZSB0ZXN0IGZvciBlYWNoIGNsaWVudCB0eXBlICovCi0jZGVmaW5lIEFUVEVNUFRTIChHVUNfTlVNX0RPT1JCRUxMUyArIEdVQ19DTElFTlRfUFJJT1JJVFlfTlVNKQotCi1zdGF0aWMgc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudHNbQVRURU1QVFNdOwotCi1zdGF0aWMgYm9vbCBhdmFpbGFibGVfZGJzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHByaW9yaXR5KQotewotCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OwotCXVuc2lnbmVkIGxvbmcgZW5kOwotCXUxNiBpZDsKLQotCS8qIGZpcnN0IGhhbGYgaXMgdXNlZCBmb3Igbm9ybWFsIHByaW9yaXR5LCBzZWNvbmQgaGFsZiBmb3IgaGlnaCAqLwotCW9mZnNldCA9IDA7Ci0JZW5kID0gR1VDX05VTV9ET09SQkVMTFMgLyAyOwotCWlmIChwcmlvcml0eSA8PSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0hJR0gpIHsKLQkJb2Zmc2V0ID0gZW5kOwotCQllbmQgKz0gb2Zmc2V0OwotCX0KLQotCWlkID0gZmluZF9uZXh0X3plcm9fYml0KGd1Yy0+ZG9vcmJlbGxfYml0bWFwLCBlbmQsIG9mZnNldCk7Ci0JaWYgKGlkIDwgZW5kKQotCQlyZXR1cm4gdHJ1ZTsKLQotCXJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIGludCBjaGVja19hbGxfZG9vcmJlbGxzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQl1MTYgZGJfaWQ7Ci0KLQlwcl9pbmZvX29uY2UoIk1heCBudW1iZXIgb2YgZG9vcmJlbGxzOiAlZCIsIEdVQ19OVU1fRE9PUkJFTExTKTsKLQlmb3IgKGRiX2lkID0gMDsgZGJfaWQgPCBHVUNfTlVNX0RPT1JCRUxMUzsgKytkYl9pZCkgewotCQlpZiAoIWRvb3JiZWxsX29rKGd1YywgZGJfaWQpKSB7Ci0JCQlwcl9lcnIoImRvb3JiZWxsICVkLCBub3Qgb2tcbiIsIGRiX2lkKTsKLQkJCXJldHVybiAtRUlPOwotCQl9Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmluZ19kb29yYmVsbF9ub3Aoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKLXsKLQlzdHJ1Y3QgZ3VjX3Byb2Nlc3NfZGVzYyAqZGVzYyA9IF9fZ2V0X3Byb2Nlc3NfZGVzYyhjbGllbnQpOwotCWludCBlcnI7Ci0KLQljbGllbnQtPnVzZV9ub3Bfd3FpID0gdHJ1ZTsKLQotCXNwaW5fbG9ja19pcnEoJmNsaWVudC0+d3FfbG9jayk7Ci0KLQlndWNfd3FfaXRlbV9hcHBlbmQoY2xpZW50LCAwLCAwLCAwLCAwKTsKLQlndWNfcmluZ19kb29yYmVsbChjbGllbnQpOwotCi0Jc3Bpbl91bmxvY2tfaXJxKCZjbGllbnQtPndxX2xvY2spOwotCi0JY2xpZW50LT51c2Vfbm9wX3dxaSA9IGZhbHNlOwotCi0JLyogaWYgdGhlcmUgYXJlIG5vIGlzc3VlcyBHdUMgd2lsbCB1cGRhdGUgdGhlIFdRIGhlYWQgYW5kIGtlZXAgdGhlCi0JICogV1EgaW4gYWN0aXZlIHN0YXR1cwotCSAqLwotCWVyciA9IHdhaXRfZm9yKFJFQURfT05DRShkZXNjLT5oZWFkKSA9PSBSRUFEX09OQ0UoZGVzYy0+dGFpbCksIDEwKTsKLQlpZiAoZXJyKSB7Ci0JCXByX2VycigiZG9vcmJlbGwgJXUgcmluZyBmYWlsZWQhXG4iLCBjbGllbnQtPmRvb3JiZWxsX2lkKTsKLQkJcmV0dXJuIC1FSU87Ci0JfQotCi0JaWYgKGRlc2MtPndxX3N0YXR1cyAhPSBXUV9TVEFUVVNfQUNUSVZFKSB7Ci0JCXByX2VycigiZG9vcmJlbGwgJXUgcmluZyBwdXQgV1EgaW4gYmFkIHN0YXRlICgldSkhXG4iLAotCQkgICAgICAgY2xpZW50LT5kb29yYmVsbF9pZCwgZGVzYy0+d3Ffc3RhdHVzKTsKLQkJcmV0dXJuIC1FSU87Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBCYXNpYyBjbGllbnQgc2FuaXR5IGNoZWNrLCBoYW5keSB0byB2YWxpZGF0ZSBjcmVhdGVfY2xpZW50cy4KLSAqLwotc3RhdGljIGludCB2YWxpZGF0ZV9jbGllbnQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCwKLQkJCSAgIGludCBjbGllbnRfcHJpb3JpdHksCi0JCQkgICBib29sIGlzX3ByZWVtcHRfY2xpZW50KQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGNsaWVudC0+Z3VjKTsKLQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4X293bmVyID0gaXNfcHJlZW1wdF9jbGllbnQgPwotCQkJZGV2X3ByaXYtPnByZWVtcHRfY29udGV4dCA6IGRldl9wcml2LT5rZXJuZWxfY29udGV4dDsKLQotCWlmIChjbGllbnQtPm93bmVyICE9IGN0eF9vd25lciB8fAotCSAgICBjbGllbnQtPmVuZ2luZXMgIT0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmVuZ2luZV9tYXNrIHx8Ci0JICAgIGNsaWVudC0+cHJpb3JpdHkgIT0gY2xpZW50X3ByaW9yaXR5IHx8Ci0JICAgIGNsaWVudC0+ZG9vcmJlbGxfaWQgPT0gR1VDX0RPT1JCRUxMX0lOVkFMSUQpCi0JCXJldHVybiAtRUlOVkFMOwotCWVsc2UKLQkJcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBib29sIGNsaWVudF9kb29yYmVsbF9pbl9zeW5jKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCi17Ci0JcmV0dXJuICFjbGllbnQgfHwgZG9vcmJlbGxfb2soY2xpZW50LT5ndWMsIGNsaWVudC0+ZG9vcmJlbGxfaWQpOwotfQotCi0vKgotICogQ2hlY2sgdGhhdCB3ZSdyZSBhYmxlIHRvIHN5bmNocm9uaXplIGd1Y19jbGllbnRzIHdpdGggdGhlaXIgZG9vcmJlbGxzCi0gKgotICogV2UncmUgY3JlYXRpbmcgY2xpZW50cyBhbmQgcmVzZXJ2aW5nIGRvb3JiZWxscyBvbmNlLCBhdCBtb2R1bGUgbG9hZC4gRHVyaW5nCi0gKiBtb2R1bGUgbGlmZXRpbWUsIEd1QywgZG9vcmJlbGwgSFcsIGFuZCBpOTE1IHN0YXRlIG1heSBnbyBvdXQgb2Ygc3luYyBkdWUgdG8KLSAqIEd1QyBiZWluZyByZXNldC4gSW4gb3RoZXIgd29yZHMgLSBHdUMgY2xpZW50cyBhcmUgc3RpbGwgYXJvdW5kLCBidXQgdGhlCi0gKiBzdGF0dXMgb2YgdGhlaXIgZG9vcmJlbGxzIG1heSBiZSBpbmNvcnJlY3QuIFRoaXMgaXMgdGhlIHJlYXNvbiBiZWhpbmQKLSAqIHZhbGlkYXRpbmcgdGhhdCB0aGUgZG9vcmJlbGxzIHN0YXR1cyBleHBlY3RlZCBieSB0aGUgZHJpdmVyIG1hdGNoZXMgd2hhdCB0aGUKLSAqIEd1Qy9IVyBoYXZlLgotICovCi1zdGF0aWMgaW50IGlndF9ndWNfY2xpZW50cyh2b2lkICphcmdzKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGFyZ3M7Ci0JaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjOwotCWludCBlcnIgPSAwOwotCi0JR0VNX0JVR19PTighSEFTX0dVQyhkZXZfcHJpdikpOwotCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKLQotCWd1YyA9ICZkZXZfcHJpdi0+Z3VjOwotCWlmICghZ3VjKSB7Ci0JCXByX2VycigiTm8gZ3VjIG9iamVjdCFcbiIpOwotCQllcnIgPSAtRUlOVkFMOwotCQlnb3RvIHVubG9jazsKLQl9Ci0KLQllcnIgPSBjaGVja19hbGxfZG9vcmJlbGxzKGd1Yyk7Ci0JaWYgKGVycikKLQkJZ290byB1bmxvY2s7Ci0KLQkvKgotCSAqIEdldCByaWQgb2YgY2xpZW50cyBjcmVhdGVkIGR1cmluZyBkcml2ZXIgbG9hZCBiZWNhdXNlIHRoZSB0ZXN0IHdpbGwKLQkgKiByZWNyZWF0ZSB0aGVtLgotCSAqLwotCWd1Y19jbGllbnRzX2Rpc2FibGUoZ3VjKTsKLQlndWNfY2xpZW50c19kZXN0cm95KGd1Yyk7Ci0JaWYgKGd1Yy0+ZXhlY2J1Zl9jbGllbnQgfHwgZ3VjLT5wcmVlbXB0X2NsaWVudCkgewotCQlwcl9lcnIoImd1Y19jbGllbnRzX2Rlc3Ryb3kgbGllZCFcbiIpOwotCQllcnIgPSAtRUlOVkFMOwotCQlnb3RvIHVubG9jazsKLQl9Ci0KLQllcnIgPSBndWNfY2xpZW50c19jcmVhdGUoZ3VjKTsKLQlpZiAoZXJyKSB7Ci0JCXByX2VycigiRmFpbGVkIHRvIGNyZWF0ZSBjbGllbnRzXG4iKTsKLQkJZ290byB1bmxvY2s7Ci0JfQotCUdFTV9CVUdfT04oIWd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwotCi0JZXJyID0gdmFsaWRhdGVfY2xpZW50KGd1Yy0+ZXhlY2J1Zl9jbGllbnQsCi0JCQkgICAgICBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9OT1JNQUwsIGZhbHNlKTsKLQlpZiAoZXJyKSB7Ci0JCXByX2VycigiZXhlY2J1ZyBjbGllbnQgdmFsaWRhdGlvbiBmYWlsZWRcbiIpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQlpZiAoZ3VjLT5wcmVlbXB0X2NsaWVudCkgewotCQllcnIgPSB2YWxpZGF0ZV9jbGllbnQoZ3VjLT5wcmVlbXB0X2NsaWVudCwKLQkJCQkgICAgICBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdILCB0cnVlKTsKLQkJaWYgKGVycikgewotCQkJcHJfZXJyKCJwcmVlbXB0IGNsaWVudCB2YWxpZGF0aW9uIGZhaWxlZFxuIik7Ci0JCQlnb3RvIG91dDsKLQkJfQotCX0KLQotCS8qIGVhY2ggY2xpZW50IHNob3VsZCBub3cgaGF2ZSByZXNlcnZlZCBhIGRvb3JiZWxsICovCi0JaWYgKCFoYXNfZG9vcmJlbGwoZ3VjLT5leGVjYnVmX2NsaWVudCkgfHwKLQkgICAgKGd1Yy0+cHJlZW1wdF9jbGllbnQgJiYgIWhhc19kb29yYmVsbChndWMtPnByZWVtcHRfY2xpZW50KSkpIHsKLQkJcHJfZXJyKCJndWNfY2xpZW50c19jcmVhdGUgZGlkbid0IHJlc2VydmUgZG9vcmJlbGxzXG4iKTsKLQkJZXJyID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7Ci0JfQotCi0JLyogTm93IGVuYWJsZSB0aGUgY2xpZW50cyAqLwotCWd1Y19jbGllbnRzX2VuYWJsZShndWMpOwotCi0JLyogZWFjaCBjbGllbnQgc2hvdWxkIG5vdyBoYXZlIHJlY2VpdmVkIGEgZG9vcmJlbGwgKi8KLQlpZiAoIWNsaWVudF9kb29yYmVsbF9pbl9zeW5jKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpIHx8Ci0JICAgICFjbGllbnRfZG9vcmJlbGxfaW5fc3luYyhndWMtPnByZWVtcHRfY2xpZW50KSkgewotCQlwcl9lcnIoImZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBkb29yYmVsbHNcbiIpOwotCQllcnIgPSAtRUlOVkFMOwotCQlnb3RvIG91dDsKLQl9Ci0KLQkvKgotCSAqIEJhc2ljIHRlc3QgLSBhbiBhdHRlbXB0IHRvIHJlYWxsb2NhdGUgYSB2YWxpZCBkb29yYmVsbCB0byB0aGUKLQkgKiBjbGllbnQgaXQgaXMgY3VycmVudGx5IGFzc2lnbmVkIHNob3VsZCBub3QgY2F1c2UgYSBmYWlsdXJlLgotCSAqLwotCWVyciA9IGNyZWF0ZV9kb29yYmVsbChndWMtPmV4ZWNidWZfY2xpZW50KTsKLQotb3V0OgotCS8qCi0JICogTGVhdmUgY2xlYW4gc3RhdGUgZm9yIG90aGVyIHRlc3QsIHBsdXMgdGhlIGRyaXZlciBhbHdheXMgZGVzdHJveSB0aGUKLQkgKiBjbGllbnRzIGR1cmluZyB1bmxvYWQuCi0JICovCi0JZ3VjX2NsaWVudHNfZGlzYWJsZShndWMpOwotCWd1Y19jbGllbnRzX2Rlc3Ryb3koZ3VjKTsKLQlndWNfY2xpZW50c19jcmVhdGUoZ3VjKTsKLQlndWNfY2xpZW50c19lbmFibGUoZ3VjKTsKLXVubG9jazoKLQlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwotCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXJldHVybiBlcnI7Ci19Ci0KLS8qCi0gKiBDcmVhdGUgYXMgbWFueSBjbGllbnRzIGFzIG51bWJlciBvZiBkb29yYmVsbHMuIE5vdGUgdGhhdCB0aGVyZSdzIGFscmVhZHkKLSAqIGNsaWVudChzKS9kb29yYmVsbChzKSBjcmVhdGVkIGR1cmluZyBkcml2ZXIgbG9hZCwgYnV0IHRoaXMgdGVzdCBjcmVhdGVzCi0gKiBpdHMgb3duIGFuZCBkbyBub3QgaW50ZXJhY3Qgd2l0aCB0aGUgZXhpc3Rpbmcgb25lcy4KLSAqLwotc3RhdGljIGludCBpZ3RfZ3VjX2Rvb3JiZWxscyh2b2lkICphcmcpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gYXJnOwotCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YzsKLQlpbnQgaSwgZXJyID0gMDsKLQl1MTYgZGJfaWQ7Ci0KLQlHRU1fQlVHX09OKCFIQVNfR1VDKGRldl9wcml2KSk7Ci0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwotCi0JZ3VjID0gJmRldl9wcml2LT5ndWM7Ci0JaWYgKCFndWMpIHsKLQkJcHJfZXJyKCJObyBndWMgb2JqZWN0IVxuIik7Ci0JCWVyciA9IC1FSU5WQUw7Ci0JCWdvdG8gdW5sb2NrOwotCX0KLQotCWVyciA9IGNoZWNrX2FsbF9kb29yYmVsbHMoZ3VjKTsKLQlpZiAoZXJyKQotCQlnb3RvIHVubG9jazsKLQotCWZvciAoaSA9IDA7IGkgPCBBVFRFTVBUUzsgaSsrKSB7Ci0JCWNsaWVudHNbaV0gPSBndWNfY2xpZW50X2FsbG9jKGRldl9wcml2LAotCQkJCQkgICAgICBJTlRFTF9JTkZPKGRldl9wcml2KS0+ZW5naW5lX21hc2ssCi0JCQkJCSAgICAgIGkgJSBHVUNfQ0xJRU5UX1BSSU9SSVRZX05VTSwKLQkJCQkJICAgICAgZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0KTsKLQotCQlpZiAoIWNsaWVudHNbaV0pIHsKLQkJCXByX2VycigiWyVkXSBObyBndWMgY2xpZW50XG4iLCBpKTsKLQkJCWVyciA9IC1FSU5WQUw7Ci0JCQlnb3RvIG91dDsKLQkJfQotCi0JCWlmIChJU19FUlIoY2xpZW50c1tpXSkpIHsKLQkJCWlmIChQVFJfRVJSKGNsaWVudHNbaV0pICE9IC1FTk9TUEMpIHsKLQkJCQlwcl9lcnIoIlslZF0gdW5leHBlY3RlZCBlcnJvclxuIiwgaSk7Ci0JCQkJZXJyID0gUFRSX0VSUihjbGllbnRzW2ldKTsKLQkJCQlnb3RvIG91dDsKLQkJCX0KLQotCQkJaWYgKGF2YWlsYWJsZV9kYnMoZ3VjLCBpICUgR1VDX0NMSUVOVF9QUklPUklUWV9OVU0pKSB7Ci0JCQkJcHJfZXJyKCJbJWRdIG5vbi1kYiByZWxhdGVkIGFsbG9jIGZhaWxcbiIsIGkpOwotCQkJCWVyciA9IC1FSU5WQUw7Ci0JCQkJZ290byBvdXQ7Ci0JCQl9Ci0KLQkJCS8qIGV4cGVjdGVkLCByYW4gb3V0IG9mIGRicyBmb3IgdGhpcyBjbGllbnQgdHlwZSAqLwotCQkJY29udGludWU7Ci0JCX0KLQotCQkvKgotCQkgKiBUaGUgY2hlY2sgYmVsb3cgaXMgb25seSB2YWxpZCBiZWNhdXNlIHdlIGtlZXAgYSBkb29yYmVsbAotCQkgKiBhc3NpZ25lZCBkdXJpbmcgdGhlIHdob2xlIGxpZmUgb2YgdGhlIGNsaWVudC4KLQkJICovCi0JCWlmIChjbGllbnRzW2ldLT5zdGFnZV9pZCA+PSBHVUNfTlVNX0RPT1JCRUxMUykgewotCQkJcHJfZXJyKCJbJWRdIG1vcmUgY2xpZW50cyB0aGFuIGRvb3JiZWxscyAoJWQgPj0gJWQpXG4iLAotCQkJICAgICAgIGksIGNsaWVudHNbaV0tPnN0YWdlX2lkLCBHVUNfTlVNX0RPT1JCRUxMUyk7Ci0JCQllcnIgPSAtRUlOVkFMOwotCQkJZ290byBvdXQ7Ci0JCX0KLQotCQllcnIgPSB2YWxpZGF0ZV9jbGllbnQoY2xpZW50c1tpXSwKLQkJCQkgICAgICBpICUgR1VDX0NMSUVOVF9QUklPUklUWV9OVU0sIGZhbHNlKTsKLQkJaWYgKGVycikgewotCQkJcHJfZXJyKCJbJWRdIGNsaWVudF9hbGxvYyBzYW5pdHkgY2hlY2sgZmFpbGVkIVxuIiwgaSk7Ci0JCQllcnIgPSAtRUlOVkFMOwotCQkJZ290byBvdXQ7Ci0JCX0KLQotCQlkYl9pZCA9IGNsaWVudHNbaV0tPmRvb3JiZWxsX2lkOwotCi0JCWVyciA9IF9fZ3VjX2NsaWVudF9lbmFibGUoY2xpZW50c1tpXSk7Ci0JCWlmIChlcnIpIHsKLQkJCXByX2VycigiWyVkXSBGYWlsZWQgdG8gY3JlYXRlIGEgZG9vcmJlbGxcbiIsIGkpOwotCQkJZ290byBvdXQ7Ci0JCX0KLQotCQkvKiBkb29yYmVsbCBpZCBzaG91bGRuJ3QgY2hhbmdlLCB3ZSBhcmUgaG9sZGluZyB0aGUgbXV0ZXggKi8KLQkJaWYgKGRiX2lkICE9IGNsaWVudHNbaV0tPmRvb3JiZWxsX2lkKSB7Ci0JCQlwcl9lcnIoIlslZF0gZG9vcmJlbGwgaWQgY2hhbmdlZCAoJWQgIT0gJWQpXG4iLAotCQkJICAgICAgIGksIGRiX2lkLCBjbGllbnRzW2ldLT5kb29yYmVsbF9pZCk7Ci0JCQllcnIgPSAtRUlOVkFMOwotCQkJZ290byBvdXQ7Ci0JCX0KLQotCQllcnIgPSBjaGVja19hbGxfZG9vcmJlbGxzKGd1Yyk7Ci0JCWlmIChlcnIpCi0JCQlnb3RvIG91dDsKLQotCQllcnIgPSByaW5nX2Rvb3JiZWxsX25vcChjbGllbnRzW2ldKTsKLQkJaWYgKGVycikKLQkJCWdvdG8gb3V0OwotCX0KLQotb3V0OgotCWZvciAoaSA9IDA7IGkgPCBBVFRFTVBUUzsgaSsrKQotCQlpZiAoIUlTX0VSUl9PUl9OVUxMKGNsaWVudHNbaV0pKSB7Ci0JCQlfX2d1Y19jbGllbnRfZGlzYWJsZShjbGllbnRzW2ldKTsKLQkJCWd1Y19jbGllbnRfZnJlZShjbGllbnRzW2ldKTsKLQkJfQotdW5sb2NrOgotCWludGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZik7Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JcmV0dXJuIGVycjsKLX0KLQotaW50IGludGVsX2d1Y19saXZlX3NlbGZ0ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewotCQlTVUJURVNUKGlndF9ndWNfY2xpZW50cyksCi0JCVNVQlRFU1QoaWd0X2d1Y19kb29yYmVsbHMpLAotCX07Ci0KLQlpZiAoIVVTRVNfR1VDX1NVQk1JU1NJT04oZGV2X3ByaXYpKQotCQlyZXR1cm4gMDsKLQotCXJldHVybiBpOTE1X3N1YnRlc3RzKHRlc3RzLCBkZXZfcHJpdik7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbGliX3N3X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbGliX3N3X2ZlbmNlLmMKaW5kZXggYjk3NmMxMi4uMDgwYjkwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2xpYl9zd19mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9saWJfc3dfZmVuY2UuYwpAQCAtNDAsNiArNDAsNyBAQCB2b2lkIF9fb25zdGFja19mZW5jZV9pbml0KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIAogCV9faW5pdF93YWl0cXVldWVfaGVhZCgmZmVuY2UtPndhaXQsIG5hbWUsIGtleSk7CiAJYXRvbWljX3NldCgmZmVuY2UtPnBlbmRpbmcsIDEpOworCWZlbmNlLT5lcnJvciA9IDA7CiAJZmVuY2UtPmZsYWdzID0gKHVuc2lnbmVkIGxvbmcpbm9wX2ZlbmNlX25vdGlmeTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCmluZGV4IDY0YmM1MTQuLjAxYTg5YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbV9kb21haW4uaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAKKyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgogI2luY2x1ZGUgImd0L21vY2tfZW5naW5lLmgiCiAKICNpbmNsdWRlICJtb2NrX3JlcXVlc3QuaCIKQEAgLTY3LDcgKzY4LDcgQEAgc3RhdGljIHZvaWQgbW9ja19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWk5MTVfZ2VtX2NvbnRleHRzX2ZpbmkoaTkxNSk7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCWk5MTVfdGltZWxpbmVzX2ZpbmkoaTkxNSk7CisJaW50ZWxfdGltZWxpbmVzX2ZpbmkoaTkxNSk7CiAKIAlkcmFpbl93b3JrcXVldWUoaTkxNS0+d3EpOwogCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoaTkxNSk7CkBAIC0xNzksMTQgKzE4MCw5IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICptb2NrX2dlbV9kZXZpY2Uodm9pZCkKIAogCW1vY2tfdW5jb3JlX2luaXQoJmk5MTUtPnVuY29yZSk7CiAJaTkxNV9nZW1faW5pdF9fbW0oaTkxNSk7Ci0JaW50ZWxfZ3RfcG1faW5pdChpOTE1KTsKKwlpbnRlbF9ndF9pbml0X2Vhcmx5KCZpOTE1LT5ndCwgaTkxNSk7CiAJYXRvbWljX2luYygmaTkxNS0+Z3Qud2FrZXJlZi5jb3VudCk7IC8qIGRpc2FibGU7IG5vIGh3IHN1cHBvcnQgKi8KIAotCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmk5MTUtPmdwdV9lcnJvci53YWl0X3F1ZXVlKTsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZpOTE1LT5ncHVfZXJyb3IucmVzZXRfcXVldWUpOwotCWluaXRfc3JjdV9zdHJ1Y3QoJmk5MTUtPmdwdV9lcnJvci5yZXNldF9iYWNrb2ZmX3NyY3UpOwotCW11dGV4X2luaXQoJmk5MTUtPmdwdV9lcnJvci53ZWRnZV9tdXRleCk7Ci0KIAlpOTE1LT53cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJtb2NrIiwgMCk7CiAJaWYgKCFpOTE1LT53cSkKIAkJZ290byBlcnJfZHJ2OwpAQCAtMTk4LDExICsxOTQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqbW9ja19nZW1fZGV2aWNlKHZvaWQpCiAKIAlpOTE1LT5ndC5hd2FrZSA9IHRydWU7CiAKLQlpOTE1X3RpbWVsaW5lc19pbml0KGk5MTUpOwotCi0JSU5JVF9MSVNUX0hFQUQoJmk5MTUtPmd0LmFjdGl2ZV9yaW5ncyk7Ci0JSU5JVF9MSVNUX0hFQUQoJmk5MTUtPmd0LmNsb3NlZF92bWEpOwotCXNwaW5fbG9ja19pbml0KCZpOTE1LT5ndC5jbG9zZWRfbG9jayk7CisJaW50ZWxfdGltZWxpbmVzX2luaXQoaTkxNSk7CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIApAQCAtMjIxLDYgKzIxMyw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICptb2NrX2dlbV9kZXZpY2Uodm9pZCkKIAlpZiAobW9ja19lbmdpbmVfaW5pdChpOTE1LT5lbmdpbmVbUkNTMF0pKQogCQlnb3RvIGVycl9jb250ZXh0OwogCisJaW50ZWxfZW5naW5lc19kcml2ZXJfcmVnaXN0ZXIoaTkxNSk7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCVdBUk5fT04oaTkxNV9nZW1mc19pbml0KGk5MTUpKTsKQEAgLTIzMyw3ICsyMjYsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqbW9ja19nZW1fZGV2aWNlKHZvaWQpCiAJbW9ja19lbmdpbmVfZnJlZShpOTE1LT5lbmdpbmVbUkNTMF0pOwogZXJyX3VubG9jazoKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWk5MTVfdGltZWxpbmVzX2ZpbmkoaTkxNSk7CisJaW50ZWxfdGltZWxpbmVzX2ZpbmkoaTkxNSk7CiAJZGVzdHJveV93b3JrcXVldWUoaTkxNS0+d3EpOwogZXJyX2RydjoKIAlkcm1fbW9kZV9jb25maWdfY2xlYW51cCgmaTkxNS0+ZHJtKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMKaW5kZXggZjYyNWMzMC4uZTYyYTY3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMKQEAgLTk4LDYgKzk4LDcgQEAgdm9pZCBtb2NrX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIHsKIAltZW1zZXQoZ2d0dCwgMCwgc2l6ZW9mKCpnZ3R0KSk7CiAKKwlnZ3R0LT52bS5ndCA9ICZpOTE1LT5ndDsKIAlnZ3R0LT52bS5pOTE1ID0gaTkxNTsKIAlnZ3R0LT52bS5pc19nZ3R0ID0gdHJ1ZTsKIApAQCAtMTE2LDYgKzExNyw4IEBAIHZvaWQgbW9ja19pbml0X2dndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiAJZ2d0dC0+dm0udm1hX29wcy5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwogCiAJaTkxNV9hZGRyZXNzX3NwYWNlX2luaXQoJmdndHQtPnZtLCBWTV9DTEFTU19HR1RUKTsKKworCWludGVsX2d0X2luaXRfaHcoaTkxNSk7CiB9CiAKIHZvaWQgbW9ja19maW5pX2dndHQoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuYwppbmRleCA5MzkwZmMwLi4wOWY3NDcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZXF1ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVxdWVzdC5jCkBAIC0yOCwxNCArMjgsMTIgQEAKICNpbmNsdWRlICJtb2NrX3JlcXVlc3QuaCIKIAogc3RydWN0IGk5MTVfcmVxdWVzdCAqCi1tb2NrX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAotCSAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmNvbnRleHQsCi0JICAgICB1bnNpZ25lZCBsb25nIGRlbGF5KQorbW9ja19yZXF1ZXN0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgdW5zaWduZWQgbG9uZyBkZWxheSkKIHsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0OwogCiAJLyogTkIgdGhlIGk5MTUtPnJlcXVlc3RzIHNsYWIgY2FjaGUgaXMgZW5sYXJnZWQgdG8gZml0IG1vY2tfcmVxdWVzdCAqLwotCXJlcXVlc3QgPSBpZ3RfcmVxdWVzdF9hbGxvYyhjb250ZXh0LCBlbmdpbmUpOworCXJlcXVlc3QgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZV9yZXF1ZXN0KGNlKTsKIAlpZiAoSVNfRVJSKHJlcXVlc3QpKQogCQlyZXR1cm4gTlVMTDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVxdWVzdC5oCmluZGV4IDRhY2YwMjEuLjg5MDdiNjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZXF1ZXN0LmgKQEAgLTMwLDkgKzMwLDcgQEAKICNpbmNsdWRlICIuLi9pOTE1X3JlcXVlc3QuaCIKIAogc3RydWN0IGk5MTVfcmVxdWVzdCAqCi1tb2NrX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAotCSAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmNvbnRleHQsCi0JICAgICB1bnNpZ25lZCBsb25nIGRlbGF5KTsKK21vY2tfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHVuc2lnbmVkIGxvbmcgZGVsYXkpOwogCiBib29sIG1vY2tfY2FuY2VsX3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja190aW1lbGluZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NWI1MmJlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0vKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotICoKLSAqIENvcHlyaWdodCDCqSAyMDE3LTIwMTggSW50ZWwgQ29ycG9yYXRpb24KLSAqLwotCi0jaW5jbHVkZSAiLi4vaTkxNV90aW1lbGluZS5oIgotCi0jaW5jbHVkZSAibW9ja190aW1lbGluZS5oIgotCi12b2lkIG1vY2tfdGltZWxpbmVfaW5pdChzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUsIHU2NCBjb250ZXh0KQotewotCXRpbWVsaW5lLT5pOTE1ID0gTlVMTDsKLQl0aW1lbGluZS0+ZmVuY2VfY29udGV4dCA9IGNvbnRleHQ7Ci0KLQltdXRleF9pbml0KCZ0aW1lbGluZS0+bXV0ZXgpOwotCi0JSU5JVF9BQ1RJVkVfUkVRVUVTVCgmdGltZWxpbmUtPmxhc3RfcmVxdWVzdCk7Ci0JSU5JVF9MSVNUX0hFQUQoJnRpbWVsaW5lLT5yZXF1ZXN0cyk7Ci0KLQlpOTE1X3N5bmNtYXBfaW5pdCgmdGltZWxpbmUtPnN5bmMpOwotCi0JSU5JVF9MSVNUX0hFQUQoJnRpbWVsaW5lLT5saW5rKTsKLX0KLQotdm9pZCBtb2NrX3RpbWVsaW5lX2Zpbmkoc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lKQotewotCWk5MTVfc3luY21hcF9mcmVlKCZ0aW1lbGluZS0+c3luYyk7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja190aW1lbGluZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfdGltZWxpbmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZkZWFhNi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja190aW1lbGluZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKLSAqCi0gKiBDb3B5cmlnaHQgwqkgMjAxNy0yMDE4IEludGVsIENvcnBvcmF0aW9uCi0gKi8KLQotI2lmbmRlZiBfX01PQ0tfVElNRUxJTkVfXwotI2RlZmluZSBfX01PQ0tfVElNRUxJTkVfXwotCi1zdHJ1Y3QgaTkxNV90aW1lbGluZTsKLQotdm9pZCBtb2NrX3RpbWVsaW5lX2luaXQoc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lLCB1NjQgY29udGV4dCk7Ci12b2lkIG1vY2tfdGltZWxpbmVfZmluaShzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUpOwotCi0jZW5kaWYgLyogIV9fTU9DS19USU1FTElORV9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja191bmNvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3VuY29yZS5jCmluZGV4IGZmODk5OWMuLjQ5NTg1ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3VuY29yZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3VuY29yZS5jCkBAIC00MSw2ICs0MSw2IEBAIF9fbm9wX3JlYWQoNjQpCiAKIHZvaWQgbW9ja191bmNvcmVfaW5pdChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB7Ci0JQVNTSUdOX1dSSVRFX01NSU9fVkZVTkNTKHVuY29yZSwgbm9wKTsKLQlBU1NJR05fUkVBRF9NTUlPX1ZGVU5DUyh1bmNvcmUsIG5vcCk7CisJQVNTSUdOX1JBV19XUklURV9NTUlPX1ZGVU5DUyh1bmNvcmUsIG5vcCk7CisJQVNTSUdOX1JBV19SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgbm9wKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaW14L01ha2VmaWxlCmluZGV4IGFiNmM4M2MuLjIxY2RjYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2lteC9NYWtlZmlsZQpAQCAtOCw1ICs4LDQgQEAKIG9iai0kKENPTkZJR19EUk1fSU1YX1RWRSkgKz0gaW14LXR2ZS5vCiBvYmotJChDT05GSUdfRFJNX0lNWF9MREIpICs9IGlteC1sZGIubwogCi1vYmotJChDT05GSUdfRFJNX0lNWF9JUFVWMykJKz0gaW14LWlwdXYzLWNydGMubwogb2JqLSQoQ09ORklHX0RSTV9JTVhfSERNSSkgKz0gZHdfaGRtaS1pbXgubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9kd19oZG1pLWlteC5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9kd19oZG1pLWlteC5jCmluZGV4IDA2MzkzY2QuLmYyMmNmYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvZHdfaGRtaS1pbXguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2R3X2hkbWktaW14LmMKQEAgLTMsMTkgKzMsMjEgQEAKICAqCiAgKiBkZXJpdmVkIGZyb20gaW14LWhkbWkuYyhyZW5hbWVkIHRvIGJyaWRnZS9kd19oZG1pLmMgbm93KQogICovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi9pbXg2cS1pb211eGMtZ3ByLmg+Ci0jaW5jbHVkZSA8ZHJtL2JyaWRnZS9kd19oZG1pLmg+Ci0jaW5jbHVkZSA8dmlkZW8vaW14LWlwdS12My5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgotI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorCisjaW5jbHVkZSA8dmlkZW8vaW14LWlwdS12My5oPgorCisjaW5jbHVkZSA8ZHJtL2JyaWRnZS9kd19oZG1pLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyX3NsYXZlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogCiAjaW5jbHVkZSAiaW14LWRybS5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1kcm0tY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYwppbmRleCAzZThiZWNlLi5kYTg3YzcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1kcm0tY29yZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWRybS1jb3JlLmMKQEAgLTQsMTQgKzQsMTggQEAKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2FzY2hhIEhhdWVyLCBQZW5ndXRyb25peAogICovCisKICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKworI2luY2x1ZGUgPHZpZGVvL2lteC1pcHUtdjMuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KQEAgLTE5LDcgKzIzLDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgPHZpZGVvL2lteC1pcHUtdjMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAiaW14LWRybS5oIgogI2luY2x1ZGUgImlwdXYzLXBsYW5lLmgiCkBAIC0xNDcsMTYgKzE1MSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGlteF9kcm1faW9jdGxzW10gPSB7CiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgaW14X2RybV9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSB8Ci0JCQkJICBEUklWRVJfQVRPTUlDLAorCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfQVRPTUlDLAogCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBkcm1fZ2VtX2NtYV9mcmVlX29iamVjdCwKIAkuZ2VtX3ZtX29wcwkJPSAmZHJtX2dlbV9jbWFfdm1fb3BzLAogCS5kdW1iX2NyZWF0ZQkJPSBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSwKIAogCS5wcmltZV9oYW5kbGVfdG9fZmQJPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFuZGxlCT0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9pbXBvcnQJPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKLQkuZ2VtX3ByaW1lX2V4cG9ydAk9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlCT0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcAkJPSBkcm1fZ2VtX2NtYV9wcmltZV92bWFwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYwppbmRleCAzODM3MzMzLi42OTVmMzA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYwpAQCAtNSwyNCArNSwyNiBAQAogICogQ29weXJpZ2h0IChDKSAyMDEyIFNhc2NoYSBIYXVlciwgUGVuZ3V0cm9uaXgKICAqLwogCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi9pbXg2cS1pb211eGMtZ3ByLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC92aWRlb2RldjIuaD4KKworI2luY2x1ZGUgPHZpZGVvL29mX2Rpc3BsYXlfdGltaW5nLmg+CisjaW5jbHVkZSA8dmlkZW8vb2ZfdmlkZW9tb2RlLmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi9pbXg2cS1pb211eGMtZ3ByLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KLSNpbmNsdWRlIDx2aWRlby9vZl9kaXNwbGF5X3RpbWluZy5oPgotI2luY2x1ZGUgPHZpZGVvL29mX3ZpZGVvbW9kZS5oPgotI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgotI2luY2x1ZGUgPGxpbnV4L3ZpZGVvZGV2Mi5oPgogCiAjaW5jbHVkZSAiaW14LWRybS5oIgogCkBAIC0xMjIsMTQgKzEyNCwxMSBAQCBzdGF0aWMgdm9pZCBpbXhfbGRiX2NoX3NldF9idXNfZm9ybWF0KHN0cnVjdCBpbXhfbGRiX2NoYW5uZWwgKmlteF9sZGJfY2gsCiBzdGF0aWMgaW50IGlteF9sZGJfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBpbXhfbGRiX2NoYW5uZWwgKmlteF9sZGJfY2ggPSBjb25fdG9faW14X2xkYl9jaChjb25uZWN0b3IpOwotCWludCBudW1fbW9kZXMgPSAwOworCWludCBudW1fbW9kZXM7CiAKLQlpZiAoaW14X2xkYl9jaC0+cGFuZWwgJiYgaW14X2xkYl9jaC0+cGFuZWwtPmZ1bmNzICYmCi0JICAgIGlteF9sZGJfY2gtPnBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKSB7Ci0JCW51bV9tb2RlcyA9IGlteF9sZGJfY2gtPnBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKGlteF9sZGJfY2gtPnBhbmVsKTsKLQkJaWYgKG51bV9tb2RlcyA+IDApCi0JCQlyZXR1cm4gbnVtX21vZGVzOwotCX0KKwludW1fbW9kZXMgPSBkcm1fcGFuZWxfZ2V0X21vZGVzKGlteF9sZGJfY2gtPnBhbmVsKTsKKwlpZiAobnVtX21vZGVzID4gMCkKKwkJcmV0dXJuIG51bV9tb2RlczsKIAogCWlmICghaW14X2xkYl9jaC0+ZWRpZCAmJiBpbXhfbGRiX2NoLT5kZGMpCiAJCWlteF9sZGJfY2gtPmVkaWQgPSBkcm1fZ2V0X2VkaWQoY29ubmVjdG9yLCBpbXhfbGRiX2NoLT5kZGMpOwpAQCAtNDYwLDkgKzQ1OSwxMCBAQCBzdGF0aWMgaW50IGlteF9sZGJfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAkJICovCiAJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmaW14X2xkYl9jaC0+Y29ubmVjdG9yLAogCQkJCSZpbXhfbGRiX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwotCQlkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAmaW14X2xkYl9jaC0+Y29ubmVjdG9yLAotCQkJCSZpbXhfbGRiX2Nvbm5lY3Rvcl9mdW5jcywKLQkJCQlEUk1fTU9ERV9DT05ORUNUT1JfTFZEUyk7CisJCWRybV9jb25uZWN0b3JfaW5pdF93aXRoX2RkYyhkcm0sICZpbXhfbGRiX2NoLT5jb25uZWN0b3IsCisJCQkJCSAgICAmaW14X2xkYl9jb25uZWN0b3JfZnVuY3MsCisJCQkJCSAgICBEUk1fTU9ERV9DT05ORUNUT1JfTFZEUywKKwkJCQkJICAgIGlteF9sZGJfY2gtPmRkYyk7CiAJCWRybV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJmlteF9sZGJfY2gtPmNvbm5lY3RvciwgZW5jb2Rlcik7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC10dmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jCmluZGV4IGU3MjVhZjguLjViYmZhYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jCkBAIC01LDIwICs1LDIyIEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgUGhpbGlwcCBaYWJlbCwgUGVuZ3V0cm9uaXgKICAqLwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC92aWRlb2RldjIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorCisjaW5jbHVkZSA8dmlkZW8vaW14LWlwdS12My5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgPHZpZGVvL2lteC1pcHUtdjMuaD4KIAogI2luY2x1ZGUgImlteC1kcm0uaCIKIApAQCAtNDgyLDggKzQ4NCwxMCBAQCBzdGF0aWMgaW50IGlteF90dmVfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGlteF90dmUgKnR2ZSkKIAogCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmdHZlLT5jb25uZWN0b3IsCiAJCQkmaW14X3R2ZV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKLQlkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAmdHZlLT5jb25uZWN0b3IsICZpbXhfdHZlX2Nvbm5lY3Rvcl9mdW5jcywKLQkJCSAgIERSTV9NT0RFX0NPTk5FQ1RPUl9WR0EpOworCWRybV9jb25uZWN0b3JfaW5pdF93aXRoX2RkYyhkcm0sICZ0dmUtPmNvbm5lY3RvciwKKwkJCQkgICAgJmlteF90dmVfY29ubmVjdG9yX2Z1bmNzLAorCQkJCSAgICBEUk1fTU9ERV9DT05ORUNUT1JfVkdBLAorCQkJCSAgICB0dmUtPmRkYyk7CiAKIAlkcm1fY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZ0dmUtPmNvbm5lY3RvciwgJnR2ZS0+ZW5jb2Rlcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMtY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMKaW5kZXggYzQzNmEyOC4uNjNjMDI4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMKQEAgLTQsMjEgKzQsMjUgQEAKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2FzY2hhIEhhdWVyLCBQZW5ndXRyb25peAogICovCisKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKworI2luY2x1ZGUgPHZpZGVvL2lteC1pcHUtdjMuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAotI2luY2x1ZGUgPHZpZGVvL2lteC1pcHUtdjMuaD4KICNpbmNsdWRlICJpbXgtZHJtLmgiCiAjaW5jbHVkZSAiaXB1djMtcGxhbmUuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jCmluZGV4IDJhMWUwNzEuLjI4ODI2YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMtcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKQEAgLTUsMTUgKzUsMTYgQEAKICAqIENvcHlyaWdodCAoQykgMjAxMyBQaGlsaXBwIFphYmVsLCBQZW5ndXRyb25peAogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KIAotI2luY2x1ZGUgInZpZGVvL2lteC1pcHUtdjMuaCIKKyNpbmNsdWRlIDx2aWRlby9pbXgtaXB1LXYzLmg+CisKICNpbmNsdWRlICJpbXgtZHJtLmgiCiAjaW5jbHVkZSAiaXB1djMtcGxhbmUuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYwppbmRleCAxYTc2ZGUxLi5lN2NlMTc1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMKQEAgLTcsMTQgKzcsMTYgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+CisKKyNpbmNsdWRlIDx2aWRlby9vZl9kaXNwbGF5X3RpbWluZy5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+Ci0jaW5jbHVkZSA8dmlkZW8vb2ZfZGlzcGxheV90aW1pbmcuaD4KIAogI2luY2x1ZGUgImlteC1kcm0uaCIKIApAQCAtNDUsMTQgKzQ3LDExIEBAIHN0YXRpYyBpbnQgaW14X3BkX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXkgKmlteHBkID0gY29uX3RvX2lteHBkKGNvbm5lY3Rvcik7CiAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IGlteHBkLT5kZXYtPm9mX25vZGU7Ci0JaW50IG51bV9tb2RlcyA9IDA7CisJaW50IG51bV9tb2RlczsKIAotCWlmIChpbXhwZC0+cGFuZWwgJiYgaW14cGQtPnBhbmVsLT5mdW5jcyAmJgotCSAgICBpbXhwZC0+cGFuZWwtPmZ1bmNzLT5nZXRfbW9kZXMpIHsKLQkJbnVtX21vZGVzID0gaW14cGQtPnBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKGlteHBkLT5wYW5lbCk7Ci0JCWlmIChudW1fbW9kZXMgPiAwKQotCQkJcmV0dXJuIG51bV9tb2RlczsKLQl9CisJbnVtX21vZGVzID0gZHJtX3BhbmVsX2dldF9tb2RlcyhpbXhwZC0+cGFuZWwpOworCWlmIChudW1fbW9kZXMgPiAwKQorCQlyZXR1cm4gbnVtX21vZGVzOwogCiAJaWYgKGlteHBkLT5lZGlkKSB7CiAJCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBpbXhwZC0+ZWRpZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW5nZW5pYy9pbmdlbmljLWRybS5jIGIvZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvaW5nZW5pYy1kcm0uYwppbmRleCA2MzgxNjUyLi4yZTJlZDY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaW5nZW5pYy9pbmdlbmljLWRybS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLmMKQEAgLTE2Niw2ICsxNjYsOCBAQCBzdHJ1Y3QgaW5nZW5pY19kcm0gewogCiAJc3RydWN0IGluZ2VuaWNfZG1hX2h3ZGVzYyAqZG1hX2h3ZGVzYzsKIAlkbWFfYWRkcl90IGRtYV9od2Rlc2NfcGh5czsKKworCWJvb2wgcGFuZWxfaXNfc2hhcnA7CiB9OwogCiBzdGF0aWMgY29uc3QgdTMyIGluZ2VuaWNfZHJtX3ByaW1hcnlfZm9ybWF0c1tdID0gewpAQCAtMjgzLDYgKzI4NSwxMyBAQCBzdGF0aWMgdm9pZCBpbmdlbmljX2RybV9jcnRjX3VwZGF0ZV90aW1pbmdzKHN0cnVjdCBpbmdlbmljX2RybSAqcHJpdiwKIAlyZWdtYXBfd3JpdGUocHJpdi0+bWFwLCBKWl9SRUdfTENEX0RBViwKIAkJICAgICB2ZHMgPDwgSlpfTENEX0RBVl9WRFNfT0ZGU0VUIHwKIAkJICAgICB2ZGUgPDwgSlpfTENEX0RBVl9WREVfT0ZGU0VUKTsKKworCWlmIChwcml2LT5wYW5lbF9pc19zaGFycCkgeworCQlyZWdtYXBfd3JpdGUocHJpdi0+bWFwLCBKWl9SRUdfTENEX1BTLCBoZGUgPDwgMTYgfCAoaGRlICsgMSkpOworCQlyZWdtYXBfd3JpdGUocHJpdi0+bWFwLCBKWl9SRUdfTENEX0NMUywgaGRlIDw8IDE2IHwgKGhkZSArIDEpKTsKKwkJcmVnbWFwX3dyaXRlKHByaXYtPm1hcCwgSlpfUkVHX0xDRF9TUEwsIGhwZSA8PCAxNiB8IChocGUgKyAxKSk7CisJCXJlZ21hcF93cml0ZShwcml2LT5tYXAsIEpaX1JFR19MQ0RfUkVWLCBtb2RlLT5odG90YWwgPDwgMTYpOworCX0KIH0KIAogc3RhdGljIHZvaWQgaW5nZW5pY19kcm1fY3J0Y191cGRhdGVfY3RybChzdHJ1Y3QgaW5nZW5pY19kcm0gKnByaXYsCkBAIC0zNzgsMTEgKzM4NywxOCBAQCBzdGF0aWMgdm9pZCBpbmdlbmljX2RybV9lbmNvZGVyX2F0b21pY19tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGluZ2VuaWNfZHJtICpwcml2ID0gZHJtX2VuY29kZXJfZ2V0X3ByaXYoZW5jb2Rlcik7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uX3N0YXRlLT5jb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKLQl1bnNpZ25lZCBpbnQgY2ZnID0gSlpfTENEX0NGR19QU19ESVNBQkxFCi0JCQkgfCBKWl9MQ0RfQ0ZHX0NMU19ESVNBQkxFCi0JCQkgfCBKWl9MQ0RfQ0ZHX1NQTF9ESVNBQkxFCi0JCQkgfCBKWl9MQ0RfQ0ZHX1JFVl9ESVNBQkxFOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOworCXN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm4tPmRpc3BsYXlfaW5mbzsKKwl1bnNpZ25lZCBpbnQgY2ZnOworCisJcHJpdi0+cGFuZWxfaXNfc2hhcnAgPSBpbmZvLT5idXNfZmxhZ3MgJiBEUk1fQlVTX0ZMQUdfU0hBUlBfU0lHTkFMUzsKKworCWlmIChwcml2LT5wYW5lbF9pc19zaGFycCkgeworCQljZmcgPSBKWl9MQ0RfQ0ZHX01PREVfU1BFQ0lBTF9URlRfMSB8IEpaX0xDRF9DRkdfUkVWX1BPTEFSSVRZOworCX0gZWxzZSB7CisJCWNmZyA9IEpaX0xDRF9DRkdfUFNfRElTQUJMRSB8IEpaX0xDRF9DRkdfQ0xTX0RJU0FCTEUKKwkJICAgIHwgSlpfTENEX0NGR19TUExfRElTQUJMRSB8IEpaX0xDRF9DRkdfUkVWX0RJU0FCTEU7CisJfQogCiAJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19OSFNZTkMpCiAJCWNmZyB8PSBKWl9MQ0RfQ0ZHX0hTWU5DX0FDVElWRV9MT1c7CkBAIC0zOTMsMjQgKzQwOSwyOSBAQCBzdGF0aWMgdm9pZCBpbmdlbmljX2RybV9lbmNvZGVyX2F0b21pY19tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKGluZm8tPmJ1c19mbGFncyAmIERSTV9CVVNfRkxBR19QSVhEQVRBX05FR0VER0UpCiAJCWNmZyB8PSBKWl9MQ0RfQ0ZHX1BDTEtfRkFMTElOR19FREdFOwogCi0JaWYgKGNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX1RWKSB7Ci0JCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQotCQkJY2ZnIHw9IEpaX0xDRF9DRkdfTU9ERV9UVl9PVVRfSTsKLQkJZWxzZQotCQkJY2ZnIHw9IEpaX0xDRF9DRkdfTU9ERV9UVl9PVVRfUDsKLQl9IGVsc2UgewotCQlzd2l0Y2ggKCppbmZvLT5idXNfZm9ybWF0cykgewotCQljYXNlIE1FRElBX0JVU19GTVRfUkdCNTY1XzFYMTY6Ci0JCQljZmcgfD0gSlpfTENEX0NGR19NT0RFX0dFTkVSSUNfMTZCSVQ7Ci0JCQlicmVhazsKLQkJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDE4OgotCQkJY2ZnIHw9IEpaX0xDRF9DRkdfTU9ERV9HRU5FUklDXzE4QklUOwotCQkJYnJlYWs7Ci0JCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDoKLQkJCWNmZyB8PSBKWl9MQ0RfQ0ZHX01PREVfR0VORVJJQ18yNEJJVDsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJYnJlYWs7CisJaWYgKCFwcml2LT5wYW5lbF9pc19zaGFycCkgeworCQlpZiAoY29ubi0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX1RWKSB7CisJCQlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwkJCQljZmcgfD0gSlpfTENEX0NGR19NT0RFX1RWX09VVF9JOworCQkJZWxzZQorCQkJCWNmZyB8PSBKWl9MQ0RfQ0ZHX01PREVfVFZfT1VUX1A7CisJCX0gZWxzZSB7CisJCQlzd2l0Y2ggKCppbmZvLT5idXNfZm9ybWF0cykgeworCQkJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjU2NV8xWDE2OgorCQkJCWNmZyB8PSBKWl9MQ0RfQ0ZHX01PREVfR0VORVJJQ18xNkJJVDsKKwkJCQlicmVhazsKKwkJCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I2NjZfMVgxODoKKwkJCQljZmcgfD0gSlpfTENEX0NGR19NT0RFX0dFTkVSSUNfMThCSVQ7CisJCQkJYnJlYWs7CisJCQljYXNlIE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ6CisJCQkJY2ZnIHw9IEpaX0xDRF9DRkdfTU9ERV9HRU5FUklDXzI0QklUOworCQkJCWJyZWFrOworCQkJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjg4OF8zWDg6CisJCQkJY2ZnIHw9IEpaX0xDRF9DRkdfTU9ERV84QklUX1NFUklBTDsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJYnJlYWs7CisJCQl9CiAJCX0KIAl9CiAKQEAgLTQzMyw2ICs0NTQsNyBAQCBzdGF0aWMgaW50IGluZ2VuaWNfZHJtX2VuY29kZXJfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAljYXNlIE1FRElBX0JVU19GTVRfUkdCNTY1XzFYMTY6CiAJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDE4OgogCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDoKKwljYXNlIE1FRElBX0JVU19GTVRfUkdCODg4XzNYODoKIAkJcmV0dXJuIDA7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC00ODQsOCArNTA2LDcgQEAgc3RhdGljIHZvaWQgaW5nZW5pY19kcm1fZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQogREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoaW5nZW5pY19kcm1fZm9wcyk7CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBpbmdlbmljX2RybV9kcml2ZXJfZGF0YSA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX1BSSU1FCi0JCQkJfCBEUklWRVJfQVRPTUlDLAorCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfQVRPTUlDLAogCS5uYW1lCQkJPSAiaW5nZW5pYy1kcm0iLAogCS5kZXNjCQkJPSAiRFJNIG1vZHVsZSBmb3IgSW5nZW5pYyBTb0NzIiwKIAkuZGF0ZQkJCT0gIjIwMTkwNDIyIiwKQEAgLTU4MSw3ICs2MDIsNiBAQCBzdGF0aWMgaW50IGluZ2VuaWNfZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZTsKIAlzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbDsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwotCXN0cnVjdCByZXNvdXJjZSAqbWVtOwogCXZvaWQgX19pb21lbSAqYmFzZTsKIAlsb25nIHBhcmVudF9yYXRlOwogCWludCByZXQsIGlycTsKQEAgLTYxNSw4ICs2MzUsNyBAQCBzdGF0aWMgaW50IGluZ2VuaWNfZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZHJtLT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0ID0gNjAwOwogCWRybS0+bW9kZV9jb25maWcuZnVuY3MgPSAmaW5nZW5pY19kcm1fbW9kZV9jb25maWdfZnVuY3M7CiAKLQltZW0gPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwotCWJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBtZW0pOworCWJhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7CiAJaWYgKElTX0VSUihiYXNlKSkgewogCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgbWVtb3J5IHJlc291cmNlIik7CiAJCXJldHVybiBQVFJfRVJSKGJhc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfZGV2aWNlLmMKaW5kZXggNTcwZDBlOS4uZDg2YjhkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX2RldmljZS5jCkBAIC04MCwyNiArODAsMjMgQEAgY29uc3QgY2hhciAqbGltYV9pcF9uYW1lKHN0cnVjdCBsaW1hX2lwICppcCkKIHN0YXRpYyBpbnQgbGltYV9jbGtfaW5pdChzdHJ1Y3QgbGltYV9kZXZpY2UgKmRldikKIHsKIAlpbnQgZXJyOwotCXVuc2lnbmVkIGxvbmcgYnVzX3JhdGUsIGdwdV9yYXRlOwogCiAJZGV2LT5jbGtfYnVzID0gZGV2bV9jbGtfZ2V0KGRldi0+ZGV2LCAiYnVzIik7CiAJaWYgKElTX0VSUihkZXYtPmNsa19idXMpKSB7Ci0JCWRldl9lcnIoZGV2LT5kZXYsICJnZXQgYnVzIGNsayBmYWlsZWQgJWxkXG4iLCBQVFJfRVJSKGRldi0+Y2xrX2J1cykpOwotCQlyZXR1cm4gUFRSX0VSUihkZXYtPmNsa19idXMpOworCQllcnIgPSBQVFJfRVJSKGRldi0+Y2xrX2J1cyk7CisJCWlmIChlcnIgIT0gLUVQUk9CRV9ERUZFUikKKwkJCWRldl9lcnIoZGV2LT5kZXYsICJnZXQgYnVzIGNsayBmYWlsZWQgJWRcbiIsIGVycik7CisJCXJldHVybiBlcnI7CiAJfQogCiAJZGV2LT5jbGtfZ3B1ID0gZGV2bV9jbGtfZ2V0KGRldi0+ZGV2LCAiY29yZSIpOwogCWlmIChJU19FUlIoZGV2LT5jbGtfZ3B1KSkgewotCQlkZXZfZXJyKGRldi0+ZGV2LCAiZ2V0IGNvcmUgY2xrIGZhaWxlZCAlbGRcbiIsIFBUUl9FUlIoZGV2LT5jbGtfZ3B1KSk7Ci0JCXJldHVybiBQVFJfRVJSKGRldi0+Y2xrX2dwdSk7CisJCWVyciA9IFBUUl9FUlIoZGV2LT5jbGtfZ3B1KTsKKwkJaWYgKGVyciAhPSAtRVBST0JFX0RFRkVSKQorCQkJZGV2X2VycihkZXYtPmRldiwgImdldCBjb3JlIGNsayBmYWlsZWQgJWRcbiIsIGVycik7CisJCXJldHVybiBlcnI7CiAJfQogCi0JYnVzX3JhdGUgPSBjbGtfZ2V0X3JhdGUoZGV2LT5jbGtfYnVzKTsKLQlkZXZfaW5mbyhkZXYtPmRldiwgImJ1cyByYXRlID0gJWx1XG4iLCBidXNfcmF0ZSk7Ci0KLQlncHVfcmF0ZSA9IGNsa19nZXRfcmF0ZShkZXYtPmNsa19ncHUpOwotCWRldl9pbmZvKGRldi0+ZGV2LCAibW9kIHJhdGUgPSAlbHUiLCBncHVfcmF0ZSk7Ci0KIAllcnIgPSBjbGtfcHJlcGFyZV9lbmFibGUoZGV2LT5jbGtfYnVzKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwpAQCAtMTExLDExICsxMDgsMTcgQEAgc3RhdGljIGludCBsaW1hX2Nsa19pbml0KHN0cnVjdCBsaW1hX2RldmljZSAqZGV2KQogCWRldi0+cmVzZXQgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X29wdGlvbmFsKGRldi0+ZGV2LCBOVUxMKTsKIAlpZiAoSVNfRVJSKGRldi0+cmVzZXQpKSB7CiAJCWVyciA9IFBUUl9FUlIoZGV2LT5yZXNldCk7CisJCWlmIChlcnIgIT0gLUVQUk9CRV9ERUZFUikKKwkJCWRldl9lcnIoZGV2LT5kZXYsICJnZXQgcmVzZXQgY29udHJvbGxlciBmYWlsZWQgJWRcbiIsCisJCQkJZXJyKTsKIAkJZ290byBlcnJvcl9vdXQxOwogCX0gZWxzZSBpZiAoZGV2LT5yZXNldCAhPSBOVUxMKSB7CiAJCWVyciA9IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoZGV2LT5yZXNldCk7Ci0JCWlmIChlcnIpCisJCWlmIChlcnIpIHsKKwkJCWRldl9lcnIoZGV2LT5kZXYsCisJCQkJInJlc2V0IGNvbnRyb2xsZXIgZGVhc3NlcnQgZmFpbGVkICVkXG4iLCBlcnIpOwogCQkJZ290byBlcnJvcl9vdXQxOworCQl9CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0xNDUsNyArMTQ4LDggQEAgc3RhdGljIGludCBsaW1hX3JlZ3VsYXRvcl9pbml0KHN0cnVjdCBsaW1hX2RldmljZSAqZGV2KQogCQlkZXYtPnJlZ3VsYXRvciA9IE5VTEw7CiAJCWlmIChyZXQgPT0gLUVOT0RFVikKIAkJCXJldHVybiAwOwotCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCByZWd1bGF0b3I6ICVkXG4iLCByZXQpOworCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCisJCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCByZWd1bGF0b3I6ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KIApAQCAtMjkxLDE2ICsyOTUsMTIgQEAgaW50IGxpbWFfZGV2aWNlX2luaXQoc3RydWN0IGxpbWFfZGV2aWNlICpsZGV2KQogCWRtYV9zZXRfY29oZXJlbnRfbWFzayhsZGV2LT5kZXYsIERNQV9CSVRfTUFTSygzMikpOwogCiAJZXJyID0gbGltYV9jbGtfaW5pdChsZGV2KTsKLQlpZiAoZXJyKSB7Ci0JCWRldl9lcnIobGRldi0+ZGV2LCAiY2xrIGluaXQgZmFpbCAlZFxuIiwgZXJyKTsKKwlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwotCX0KIAogCWVyciA9IGxpbWFfcmVndWxhdG9yX2luaXQobGRldik7Ci0JaWYgKGVycikgewotCQlkZXZfZXJyKGxkZXYtPmRldiwgInJlZ3VsYXRvciBpbml0IGZhaWwgJWRcbiIsIGVycik7CisJaWYgKGVycikKIAkJZ290byBlcnJfb3V0MDsKLQl9CiAKIAlsZGV2LT5lbXB0eV92bSA9IGxpbWFfdm1fY3JlYXRlKGxkZXYpOwogCWlmICghbGRldi0+ZW1wdHlfdm0pIHsKQEAgLTM0Myw2ICszNDMsOSBAQCBpbnQgbGltYV9kZXZpY2VfaW5pdChzdHJ1Y3QgbGltYV9kZXZpY2UgKmxkZXYpCiAJaWYgKGVycikKIAkJZ290byBlcnJfb3V0NTsKIAorCWRldl9pbmZvKGxkZXYtPmRldiwgImJ1cyByYXRlID0gJWx1XG4iLCBjbGtfZ2V0X3JhdGUobGRldi0+Y2xrX2J1cykpOworCWRldl9pbmZvKGxkZXYtPmRldiwgIm1vZCByYXRlID0gJWx1IiwgY2xrX2dldF9yYXRlKGxkZXYtPmNsa19ncHUpKTsKKwogCXJldHVybiAwOwogCiBlcnJfb3V0NToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX2Rydi5jCmluZGV4IGIyOWMyNmMuLjc1ZWM3MDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9kcnYuYwpAQCAtMjMxLDEzICsyMzEsMTMgQEAgc3RhdGljIHZvaWQgbGltYV9kcm1fZHJpdmVyX3Bvc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmYKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBsaW1hX2RybV9kcml2ZXJfaW9jdGxzW10gPSB7Ci0JRFJNX0lPQ1RMX0RFRl9EUlYoTElNQV9HRVRfUEFSQU0sIGxpbWFfaW9jdGxfZ2V0X3BhcmFtLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihMSU1BX0dFTV9DUkVBVEUsIGxpbWFfaW9jdGxfZ2VtX2NyZWF0ZSwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTElNQV9HRU1fSU5GTywgbGltYV9pb2N0bF9nZW1faW5mbywgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTElNQV9HRU1fU1VCTUlULCBsaW1hX2lvY3RsX2dlbV9zdWJtaXQsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKExJTUFfR0VNX1dBSVQsIGxpbWFfaW9jdGxfZ2VtX3dhaXQsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKExJTUFfQ1RYX0NSRUFURSwgbGltYV9pb2N0bF9jdHhfY3JlYXRlLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihMSU1BX0NUWF9GUkVFLCBsaW1hX2lvY3RsX2N0eF9mcmVlLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihMSU1BX0dFVF9QQVJBTSwgbGltYV9pb2N0bF9nZXRfcGFyYW0sIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKExJTUFfR0VNX0NSRUFURSwgbGltYV9pb2N0bF9nZW1fY3JlYXRlLCBEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihMSU1BX0dFTV9JTkZPLCBsaW1hX2lvY3RsX2dlbV9pbmZvLCBEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihMSU1BX0dFTV9TVUJNSVQsIGxpbWFfaW9jdGxfZ2VtX3N1Ym1pdCwgRFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRl9EUlYoTElNQV9HRU1fV0FJVCwgbGltYV9pb2N0bF9nZW1fd2FpdCwgRFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRl9EUlYoTElNQV9DVFhfQ1JFQVRFLCBsaW1hX2lvY3RsX2N0eF9jcmVhdGUsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKExJTUFfQ1RYX0ZSRUUsIGxpbWFfaW9jdGxfY3R4X2ZyZWUsIERSTV9SRU5ERVJfQUxMT1cpLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbGltYV9kcm1fZHJpdmVyX2ZvcHMgPSB7CkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbGltYV9kcm1fZHJpdmVyX2ZvcHMgPSB7CiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgbGltYV9kcm1fZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgICAgPSBEUklWRVJfUkVOREVSIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSB8IERSSVZFUl9TWU5DT0JKLAorCS5kcml2ZXJfZmVhdHVyZXMgICAgPSBEUklWRVJfUkVOREVSIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9TWU5DT0JKLAogCS5vcGVuICAgICAgICAgICAgICAgPSBsaW1hX2RybV9kcml2ZXJfb3BlbiwKIAkucG9zdGNsb3NlICAgICAgICAgID0gbGltYV9kcm1fZHJpdmVyX3Bvc3RjbG9zZSwKIAkuaW9jdGxzICAgICAgICAgICAgID0gbGltYV9kcm1fZHJpdmVyX2lvY3RscywKQEAgLTMwNywxMCArMzA3LDggQEAgc3RhdGljIGludCBsaW1hX3BkZXZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlsZGV2LT5kZGV2ID0gZGRldjsKIAogCWVyciA9IGxpbWFfZGV2aWNlX2luaXQobGRldik7Ci0JaWYgKGVycikgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYXRhbCBlcnJvciBkdXJpbmcgR1BVIGluaXRcbiIpOworCWlmIChlcnIpCiAJCWdvdG8gZXJyX291dDE7Ci0JfQogCiAJLyoKIAkgKiBSZWdpc3RlciB0aGUgRFJNIGRldmljZSB3aXRoIHRoZSBjb3JlIGFuZCB0aGUgY29ubmVjdG9ycyB3aXRoCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9nZW0uYwppbmRleCBiNjA5ZGMwLi40ZGEyMTM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfZ2VtLmMKQEAgLTI0LDcgKzI0LDcgQEAgaW50IGxpbWFfZ2VtX2NyZWF0ZV9oYW5kbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlLAogCXN0cnVjdCBsaW1hX2JvICpibzsKIAlzdHJ1Y3QgbGltYV9kZXZpY2UgKmxkZXYgPSB0b19saW1hX2RldihkZXYpOwogCi0JYm8gPSBsaW1hX2JvX2NyZWF0ZShsZGV2LCBzaXplLCBmbGFncywgTlVMTCwgTlVMTCk7CisJYm8gPSBsaW1hX2JvX2NyZWF0ZShsZGV2LCBzaXplLCBmbGFncywgTlVMTCk7CiAJaWYgKElTX0VSUihibykpCiAJCXJldHVybiBQVFJfRVJSKGJvKTsKIApAQCAtMTM2LDcgKzEzNiw3IEBAIHN0YXRpYyBpbnQgbGltYV9nZW1fc3luY19ibyhzdHJ1Y3QgbGltYV9zY2hlZF90YXNrICp0YXNrLCBzdHJ1Y3QgbGltYV9ibyAqYm8sCiAJaW50IGVyciA9IDA7CiAKIAlpZiAoIXdyaXRlKSB7Ci0JCWVyciA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+Z2VtLnJlc3YsIDEpOworCQllcnIgPSBkbWFfcmVzdl9yZXNlcnZlX3NoYXJlZChiby0+Z2VtLnJlc3YsIDEpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAl9CkBAIC0yOTYsOSArMjk2LDkgQEAgaW50IGxpbWFfZ2VtX3N1Ym1pdChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBsaW1hX3N1Ym1pdCAqc3VibWl0KQogCiAJZm9yIChpID0gMDsgaSA8IHN1Ym1pdC0+bnJfYm9zOyBpKyspIHsKIAkJaWYgKHN1Ym1pdC0+Ym9zW2ldLmZsYWdzICYgTElNQV9TVUJNSVRfQk9fV1JJVEUpCi0JCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm9zW2ldLT5nZW0ucmVzdiwgZmVuY2UpOworCQkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2UoYm9zW2ldLT5nZW0ucmVzdiwgZmVuY2UpOwogCQllbHNlCi0JCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShib3NbaV0tPmdlbS5yZXN2LCBmZW5jZSk7CisJCQlkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNlKGJvc1tpXS0+Z2VtLnJlc3YsIGZlbmNlKTsKIAl9CiAKIAlsaW1hX2dlbV91bmxvY2tfYm9zKGJvcywgc3VibWl0LT5ucl9ib3MsICZjdHgpOwpAQCAtMzQxLDcgKzM0MSw3IEBAIGludCBsaW1hX2dlbV93YWl0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwgdTMyIGhhbmRsZSwgdTMyIG9wLCBzNjQgdGltZW91dF9ucykKIAogCXRpbWVvdXQgPSBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyh0aW1lb3V0X25zKTsKIAotCXJldCA9IGRybV9nZW1fcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXQoZmlsZSwgaGFuZGxlLCB3cml0ZSwgdGltZW91dCk7CisJcmV0ID0gZHJtX2dlbV9kbWFfcmVzdl93YWl0KGZpbGUsIGhhbmRsZSwgd3JpdGUsIHRpbWVvdXQpOwogCWlmIChyZXQgPT0gLUVUSU1FKQogCQlyZXQgPSB0aW1lb3V0ID8gLUVUSU1FRE9VVCA6IC1FQlVTWTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9nZW1fcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfZ2VtX3ByaW1lLmMKaW5kZXggOWM2ZDlmMS4uZTNlYjI1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9nZW1fcHJpbWUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX2dlbV9wcmltZS5jCkBAIC0xOCw4ICsxOCw3IEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqbGltYV9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKAogCXN0cnVjdCBsaW1hX2RldmljZSAqbGRldiA9IHRvX2xpbWFfZGV2KGRldik7CiAJc3RydWN0IGxpbWFfYm8gKmJvOwogCi0JYm8gPSBsaW1hX2JvX2NyZWF0ZShsZGV2LCBhdHRhY2gtPmRtYWJ1Zi0+c2l6ZSwgMCwgc2d0LAotCQkJICAgIGF0dGFjaC0+ZG1hYnVmLT5yZXN2KTsKKwlibyA9IGxpbWFfYm9fY3JlYXRlKGxkZXYsIGF0dGFjaC0+ZG1hYnVmLT5zaXplLCAwLCBzZ3QpOwogCWlmIChJU19FUlIoYm8pKQogCQlyZXR1cm4gRVJSX0NBU1QoYm8pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9vYmplY3QuYwppbmRleCA1YzQxZjg1Li44NzEyM2IxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfb2JqZWN0LmMKQEAgLTMzLDggKzMzLDcgQEAgdm9pZCBsaW1hX2JvX2Rlc3Ryb3koc3RydWN0IGxpbWFfYm8gKmJvKQogCWtmcmVlKGJvKTsKIH0KIAotc3RhdGljIHN0cnVjdCBsaW1hX2JvICpsaW1hX2JvX2NyZWF0ZV9zdHJ1Y3Qoc3RydWN0IGxpbWFfZGV2aWNlICpkZXYsIHUzMiBzaXplLCB1MzIgZmxhZ3MsCi0JCQkJCSAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdikKK3N0YXRpYyBzdHJ1Y3QgbGltYV9ibyAqbGltYV9ib19jcmVhdGVfc3RydWN0KHN0cnVjdCBsaW1hX2RldmljZSAqZGV2LCB1MzIgc2l6ZSwgdTMyIGZsYWdzKQogewogCXN0cnVjdCBsaW1hX2JvICpibzsKIAlpbnQgZXJyOwpAQCAtNDcsNyArNDYsNiBAQCBzdGF0aWMgc3RydWN0IGxpbWFfYm8gKmxpbWFfYm9fY3JlYXRlX3N0cnVjdChzdHJ1Y3QgbGltYV9kZXZpY2UgKmRldiwgdTMyIHNpemUsCiAKIAltdXRleF9pbml0KCZiby0+bG9jayk7CiAJSU5JVF9MSVNUX0hFQUQoJmJvLT52YSk7Ci0JYm8tPmdlbS5yZXN2ID0gcmVzdjsKIAogCWVyciA9IGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LT5kZGV2LCAmYm8tPmdlbSwgc2l6ZSk7CiAJaWYgKGVycikgewpAQCAtNTksMTQgKzU3LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgbGltYV9ibyAqbGltYV9ib19jcmVhdGVfc3RydWN0KHN0cnVjdCBsaW1hX2RldmljZSAqZGV2LCB1MzIgc2l6ZSwKIH0KIAogc3RydWN0IGxpbWFfYm8gKmxpbWFfYm9fY3JlYXRlKHN0cnVjdCBsaW1hX2RldmljZSAqZGV2LCB1MzIgc2l6ZSwKLQkJCSAgICAgICB1MzIgZmxhZ3MsIHN0cnVjdCBzZ190YWJsZSAqc2d0LAotCQkJICAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YpCisJCQkgICAgICAgdTMyIGZsYWdzLCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCkKIHsKIAlpbnQgaSwgZXJyOwogCXNpemVfdCBucGFnZXM7CiAJc3RydWN0IGxpbWFfYm8gKmJvLCAqcmV0OwogCi0JYm8gPSBsaW1hX2JvX2NyZWF0ZV9zdHJ1Y3QoZGV2LCBzaXplLCBmbGFncywgcmVzdik7CisJYm8gPSBsaW1hX2JvX2NyZWF0ZV9zdHJ1Y3QoZGV2LCBzaXplLCBmbGFncyk7CiAJaWYgKElTX0VSUihibykpCiAJCXJldHVybiBibzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfb2JqZWN0LmgKaW5kZXggNjczODcyNC4uMzFjYTJkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX29iamVjdC5oCkBAIC0yNyw4ICsyNyw3IEBAIHRvX2xpbWFfYm8oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiB9CiAKIHN0cnVjdCBsaW1hX2JvICpsaW1hX2JvX2NyZWF0ZShzdHJ1Y3QgbGltYV9kZXZpY2UgKmRldiwgdTMyIHNpemUsCi0JCQkgICAgICAgdTMyIGZsYWdzLCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCwKLQkJCSAgICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KTsKKwkJCSAgICAgICB1MzIgZmxhZ3MsIHN0cnVjdCBzZ190YWJsZSAqc2d0KTsKIHZvaWQgbGltYV9ib19kZXN0cm95KHN0cnVjdCBsaW1hX2JvICpibyk7CiB2b2lkICpsaW1hX2JvX3ZtYXAoc3RydWN0IGxpbWFfYm8gKmJvKTsKIHZvaWQgbGltYV9ib192dW5tYXAoc3RydWN0IGxpbWFfYm8gKmJvKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfdm0uaCBiL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfdm0uaAppbmRleCBjYWVlMmY4Li5lMGJkZWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX3ZtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV92bS5oCkBAIC0xNSw5ICsxNSw5IEBACiAjZGVmaW5lIExJTUFfVk1fTlVNX1BUX1BFUl9CVCAoMSA8PCBMSU1BX1ZNX05VTV9QVF9QRVJfQlRfU0hJRlQpCiAjZGVmaW5lIExJTUFfVk1fTlVNX0JUIChMSU1BX1BBR0VfRU5UX05VTSA+PiBMSU1BX1ZNX05VTV9QVF9QRVJfQlRfU0hJRlQpCiAKLSNkZWZpbmUgTElNQV9WQV9SRVNFUlZFX1NUQVJUICAweEZGRjAwMDAwCisjZGVmaW5lIExJTUFfVkFfUkVTRVJWRV9TVEFSVCAgMHgwRkZGMDAwMDBVTEwKICNkZWZpbmUgTElNQV9WQV9SRVNFUlZFX0RMQlUgICBMSU1BX1ZBX1JFU0VSVkVfU1RBUlQKLSNkZWZpbmUgTElNQV9WQV9SRVNFUlZFX0VORCAgICAweDEwMDAwMDAwMAorI2RlZmluZSBMSU1BX1ZBX1JFU0VSVkVfRU5EICAgIDB4MTAwMDAwMDAwVUxMCiAKIHN0cnVjdCBsaW1hX2RldmljZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21jZGUvbWNkZV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9tY2RlL21jZGVfZHJ2LmMKaW5kZXggYzA3YWJmOS4uOWEwOWViYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21jZGUvbWNkZV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWNkZS9tY2RlX2Rydi5jCkBAIC0yMzcsNyArMjM3LDcgQEAgREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoZHJtX2ZvcHMpOwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgbWNkZV9kcm1fZHJpdmVyID0gewogCS5kcml2ZXJfZmVhdHVyZXMgPQotCQlEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfUFJJTUUgfCBEUklWRVJfQVRPTUlDLAorCQlEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfQVRPTUlDLAogCS5yZWxlYXNlID0gbWNkZV9yZWxlYXNlLAogCS5sYXN0Y2xvc2UgPSBkcm1fZmJfaGVscGVyX2xhc3RjbG9zZSwKIAkuaW9jdGxzID0gTlVMTCwKQEAgLTI1NCw4ICsyNTQsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgbWNkZV9kcm1fZHJpdmVyID0gewogCiAJLnByaW1lX2hhbmRsZV90b19mZCA9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUgPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKLQkuZ2VtX3ByaW1lX2ltcG9ydCA9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAotCS5nZW1fcHJpbWVfZXhwb3J0ID0gZHJtX2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUJPSBkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgPSBkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV92bWFwID0gZHJtX2dlbV9jbWFfcHJpbWVfdm1hcCwKQEAgLTMxOSw3ICszMTcsNyBAQCBzdGF0aWMgaW50IG1jZGVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07CiAJc3RydWN0IG1jZGUgKm1jZGU7Ci0Jc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2g7CisJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2ggPSBOVUxMOwogCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCXUzMiBwaWQ7CiAJdTMyIHZhbDsKQEAgLTQ4NCw2ICs0ODIsMTAgQEAgc3RhdGljIGludCBtY2RlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCX0KIAkJcHV0X2RldmljZShwKTsKIAl9CisJaWYgKCFtYXRjaCkgeworCQlkZXZfZXJyKGRldiwgIm5vIG1hdGNoaW5nIGNvbXBvbmVudHNcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAJaWYgKElTX0VSUihtYXRjaCkpIHsKIAkJZGV2X2VycihkZXYsICJjb3VsZCBub3QgY3JlYXRlIGNvbXBvbmVudCBtYXRjaFxuIik7CiAJCXJldCA9IFBUUl9FUlIobWF0Y2gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21jZGUvbWNkZV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9tY2RlL21jZGVfZHNpLmMKaW5kZXggMDdmNzA5MC4uZjljOWUzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21jZGUvbWNkZV9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWNkZS9tY2RlX2RzaS5jCkBAIC0xNzgsMjIgKzE3OCwyNiBAQCBzdGF0aWMgc3NpemVfdCBtY2RlX2RzaV9ob3N0X3RyYW5zZmVyKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAogCWNvbnN0IHUzMiBsb29wX2RlbGF5X3VzID0gMTA7IC8qIHVzICovCiAJY29uc3QgdTggKnR4ID0gbXNnLT50eF9idWY7CiAJdTMyIGxvb3BfY291bnRlcjsKLQlzaXplX3QgdHhsZW47CisJc2l6ZV90IHR4bGVuID0gbXNnLT50eF9sZW47CisJc2l6ZV90IHJ4bGVuID0gbXNnLT5yeF9sZW47CiAJdTMyIHZhbDsKIAlpbnQgcmV0OwogCWludCBpOwogCi0JdHhsZW4gPSBtc2ctPnR4X2xlbjsKLQlpZiAodHhsZW4gPiAxMikgeworCWlmICh0eGxlbiA+IDE2KSB7CiAJCWRldl9lcnIoZC0+ZGV2LAotCQkJImR1bm5vIGhvdyB0byB3cml0ZSBtb3JlIHRoYW4gMTIgYnl0ZXMgeWV0XG4iKTsKKwkJCSJkdW5ubyBob3cgdG8gd3JpdGUgbW9yZSB0aGFuIDE2IGJ5dGVzIHlldFxuIik7CisJCXJldHVybiAtRUlPOworCX0KKwlpZiAocnhsZW4gPiA0KSB7CisJCWRldl9lcnIoZC0+ZGV2LAorCQkJImR1bm5vIGhvdyB0byByZWFkIG1vcmUgdGhhbiA0IGJ5dGVzIHlldFxuIik7CiAJCXJldHVybiAtRUlPOwogCX0KIAogCWRldl9kYmcoZC0+ZGV2LAotCQkibWVzc2FnZSB0byBjaGFubmVsICVkLCAlemQgYnl0ZXMiLAotCQltc2ctPmNoYW5uZWwsCi0JCXR4bGVuKTsKKwkJIm1lc3NhZ2UgdG8gY2hhbm5lbCAlZCwgd3JpdGUgJXpkIGJ5dGVzIHJlYWQgJXpkIGJ5dGVzXG4iLAorCQltc2ctPmNoYW5uZWwsIHR4bGVuLCByeGxlbik7CiAKIAkvKiBDb21tYW5kICJuYXR1cmUiICovCiAJaWYgKE1DREVfRFNJX0hPU1RfSVNfUkVBRChtc2ctPnR5cGUpKQpAQCAtMjEwLDkgKzIxNCw3IEBAIHN0YXRpYyBzc2l6ZV90IG1jZGVfZHNpX2hvc3RfdHJhbnNmZXIoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJaWYgKG1pcGlfZHNpX3BhY2tldF9mb3JtYXRfaXNfbG9uZyhtc2ctPnR5cGUpKQogCQl2YWwgfD0gRFNJX0RJUkVDVF9DTURfTUFJTl9TRVRUSU5HU19DTURfTE9OR05PVFNIT1JUOwogCXZhbCB8PSAwIDw8IERTSV9ESVJFQ1RfQ01EX01BSU5fU0VUVElOR1NfQ01EX0lEX1NISUZUOwotCS8qIEFkZCBvbmUgdG8gdGhlIGxlbmd0aCBmb3IgdGhlIE1JUEkgRENTIGNvbW1hbmQgKi8KLQl2YWwgfD0gdHhsZW4KLQkJPDwgRFNJX0RJUkVDVF9DTURfTUFJTl9TRVRUSU5HU19DTURfU0laRV9TSElGVDsKKwl2YWwgfD0gdHhsZW4gPDwgRFNJX0RJUkVDVF9DTURfTUFJTl9TRVRUSU5HU19DTURfU0laRV9TSElGVDsKIAl2YWwgfD0gRFNJX0RJUkVDVF9DTURfTUFJTl9TRVRUSU5HU19DTURfTFBfRU47CiAJdmFsIHw9IG1zZy0+dHlwZSA8PCBEU0lfRElSRUNUX0NNRF9NQUlOX1NFVFRJTkdTX0NNRF9IRUFEX1NISUZUOwogCXdyaXRlbCh2YWwsIGQtPnJlZ3MgKyBEU0lfRElSRUNUX0NNRF9NQUlOX1NFVFRJTkdTKTsKQEAgLTI0OSwxNyArMjUxLDM2IEBAIHN0YXRpYyBzc2l6ZV90IG1jZGVfZHNpX2hvc3RfdHJhbnNmZXIoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJd3JpdGVsKDEsIGQtPnJlZ3MgKyBEU0lfRElSRUNUX0NNRF9TRU5EKTsKIAogCWxvb3BfY291bnRlciA9IDEwMDAgKiAxMDAwIC8gbG9vcF9kZWxheV91czsKLQl3aGlsZSAoIShyZWFkbChkLT5yZWdzICsgRFNJX0RJUkVDVF9DTURfU1RTKSAmCi0JCSBEU0lfRElSRUNUX0NNRF9TVFNfV1JJVEVfQ09NUExFVEVEKQotCSAgICAgICAmJiAtLWxvb3BfY291bnRlcikKLQkJdXNsZWVwX3JhbmdlKGxvb3BfZGVsYXlfdXMsIChsb29wX2RlbGF5X3VzICogMykgLyAyKTsKKwlpZiAoTUNERV9EU0lfSE9TVF9JU19SRUFEKG1zZy0+dHlwZSkpIHsKKwkJLyogUmVhZCBjb21tYW5kICovCisJCXdoaWxlICghKHJlYWRsKGQtPnJlZ3MgKyBEU0lfRElSRUNUX0NNRF9TVFMpICYKKwkJCSAoRFNJX0RJUkVDVF9DTURfU1RTX1JFQURfQ09NUExFVEVEIHwKKwkJCSAgRFNJX0RJUkVDVF9DTURfU1RTX1JFQURfQ09NUExFVEVEX1dJVEhfRVJSKSkKKwkJICAgICAgICYmIC0tbG9vcF9jb3VudGVyKQorCQkJdXNsZWVwX3JhbmdlKGxvb3BfZGVsYXlfdXMsIChsb29wX2RlbGF5X3VzICogMykgLyAyKTsKKwkJaWYgKCFsb29wX2NvdW50ZXIpIHsKKwkJCWRldl9lcnIoZC0+ZGV2LCAiRFNJIHJlYWQgdGltZW91dCFcbiIpOworCQkJcmV0dXJuIC1FVElNRTsKKwkJfQorCX0gZWxzZSB7CisJCS8qIFdyaXRpbmcgb25seSAqLworCQl3aGlsZSAoIShyZWFkbChkLT5yZWdzICsgRFNJX0RJUkVDVF9DTURfU1RTKSAmCisJCQkgRFNJX0RJUkVDVF9DTURfU1RTX1dSSVRFX0NPTVBMRVRFRCkKKwkJICAgICAgICYmIC0tbG9vcF9jb3VudGVyKQorCQkJdXNsZWVwX3JhbmdlKGxvb3BfZGVsYXlfdXMsIChsb29wX2RlbGF5X3VzICogMykgLyAyKTsKIAotCWlmICghbG9vcF9jb3VudGVyKSB7Ci0JCWRldl9lcnIoZC0+ZGV2LCAiRFNJIHdyaXRlIHRpbWVvdXQhXG4iKTsKLQkJcmV0dXJuIC1FVElNRTsKKwkJaWYgKCFsb29wX2NvdW50ZXIpIHsKKwkJCWRldl9lcnIoZC0+ZGV2LCAiRFNJIHdyaXRlIHRpbWVvdXQhXG4iKTsKKwkJCXJldHVybiAtRVRJTUU7CisJCX0KIAl9CiAKIAl2YWwgPSByZWFkbChkLT5yZWdzICsgRFNJX0RJUkVDVF9DTURfU1RTKTsKKwlpZiAodmFsICYgRFNJX0RJUkVDVF9DTURfU1RTX1JFQURfQ09NUExFVEVEX1dJVEhfRVJSKSB7CisJCWRldl9lcnIoZC0+ZGV2LCAicmVhZCBjb21wbGV0ZWQgd2l0aCBlcnJvclxuIik7CisJCXdyaXRlbCgxLCBkLT5yZWdzICsgRFNJX0RJUkVDVF9DTURfUkRfSU5JVCk7CisJCXJldHVybiAtRUlPOworCX0KIAlpZiAodmFsICYgRFNJX0RJUkVDVF9DTURfU1RTX0FDS05PV0xFREdFX1dJVEhfRVJSX1JFQ0VJVkVEKSB7CiAJCXZhbCA+Pj0gRFNJX0RJUkVDVF9DTURfU1RTX0FDS19WQUxfU0hJRlQ7CiAJCWRldl9lcnIoZC0+ZGV2LCAiZXJyb3IgZHVyaW5nIHRyYW5zbWlzc2lvbjogJTA0eFxuIiwKQEAgLTI2OSwxMCArMjkwLDcgQEAgc3RhdGljIHNzaXplX3QgbWNkZV9kc2lfaG9zdF90cmFuc2ZlcihzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKIAogCWlmICghTUNERV9EU0lfSE9TVF9JU19SRUFEKG1zZy0+dHlwZSkpIHsKIAkJLyogUmV0dXJuIG51bWJlciBvZiBieXRlcyB3cml0dGVuICovCi0JCWlmIChtaXBpX2RzaV9wYWNrZXRfZm9ybWF0X2lzX2xvbmcobXNnLT50eXBlKSkKLQkJCXJldCA9IDQgKyB0eGxlbjsKLQkJZWxzZQotCQkJcmV0ID0gNDsKKwkJcmV0ID0gdHhsZW47CiAJfSBlbHNlIHsKIAkJLyogT0sgdGhpcyBpcyBhIHJlYWQgY29tbWFuZCwgZ2V0IHRoZSByZXNwb25zZSAqLwogCQl1MzIgcmRzejsKQEAgLTI4Miw3ICszMDAsMTMgQEAgc3RhdGljIHNzaXplX3QgbWNkZV9kc2lfaG9zdF90cmFuc2ZlcihzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKIAkJcmRzeiA9IHJlYWRsKGQtPnJlZ3MgKyBEU0lfRElSRUNUX0NNRF9SRF9QUk9QRVJUWSk7CiAJCXJkc3ogJj0gRFNJX0RJUkVDVF9DTURfUkRfUFJPUEVSVFlfUkRfU0laRV9NQVNLOwogCQlyZGRhdCA9IHJlYWRsKGQtPnJlZ3MgKyBEU0lfRElSRUNUX0NNRF9SRERBVCk7Ci0JCWZvciAoaSA9IDA7IGkgPCA0ICYmIGkgPCByZHN6OyBpKyspCisJCWlmIChyZHN6IDwgcnhsZW4pIHsKKwkJCWRldl9lcnIoZC0+ZGV2LCAicmVhZCBlcnJvciwgcmVxdWVzdGVkICV6ZCBnb3QgJWRcbiIsCisJCQkJcnhsZW4sIHJkc3opOworCQkJcmV0dXJuIC1FSU87CisJCX0KKwkJLyogRklYTUU6IHJlYWQgbW9yZSB0aGFuIDQgYnl0ZXMgKi8KKwkJZm9yIChpID0gMDsgaSA8IDQgJiYgaSA8IHJ4bGVuOyBpKyspCiAJCQlyeFtpXSA9IChyZGRhdCA+PiAoaSAqIDgpKSAmIDB4ZmY7CiAJCXJldCA9IHJkc3o7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfY29sb3IuYwppbmRleCBmMzNkOThiLi41OWRlMmE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfY29sb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfY29sb3IuYwpAQCAtMyw5ICszLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAxNyBNZWRpYVRlayBJbmMuCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMKaW5kZXggYzRmMDdjMi4uMjE4NTE3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmwuYwpAQCAtMyw5ICszLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAxNSBNZWRpYVRlayBJbmMuCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcmRtYS5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3JkbWEuYwppbmRleCA5YTZmMGEyLi40MDVhZmVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcmRtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMKQEAgLTMsOSArMyw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgTWVkaWFUZWsgSW5jLgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMKaW5kZXggYmFjZDk4OS4uYmU2ZDk1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jCkBAIC0zLDIxICszLDIzIEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMTQgTWVkaWFUZWsgSW5jLgogICogQXV0aG9yOiBKaWUgUWl1IDxqaWUucWl1QG1lZGlhdGVrLmNvbT4KICAqLwotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorCisjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CisKICNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgorI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKwogI2luY2x1ZGUgIm10a19kcGlfcmVncy5oIgogI2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jCmluZGV4IGE5MDA3MjEuLjM0YTczMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMKQEAgLTMsMTQgKzMsMTYgQEAKICAqIENvcHlyaWdodCAoYykgMjAxNSBNZWRpYVRlayBJbmMuCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKwogI2luY2x1ZGUgPGFzbS9iYXJyaWVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxzb2MvbWVkaWF0ZWsvc21pLmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgotI2luY2x1ZGUgPHNvYy9tZWRpYXRlay9zbWkuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAibXRrX2RybV9kcnYuaCIKICNpbmNsdWRlICJtdGtfZHJtX2NydGMuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jCmluZGV4IGIzODk2M2YuLmVmYTg1OTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYwpAQCAtMTIsNyArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKwogI2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiCiAjaW5jbHVkZSAibXRrX2RybV9wbGFuZS5oIgogI2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMKaW5kZXggOTQ1YmMyMC4uMzUyYjgxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMKQEAgLTQsMjMgKzQsMjcgQEAKICAqIEF1dGhvcjogWVQgU0hFTiA8eXQuc2hlbkBtZWRpYXRlay5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvbW11Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorCiAjaW5jbHVkZSAibXRrX2RybV9jcnRjLmgiCiAjaW5jbHVkZSAibXRrX2RybV9kZHAuaCIKKyNpbmNsdWRlICJtdGtfZHJtX2RkcC5oIgogI2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCIKICNpbmNsdWRlICJtdGtfZHJtX2Rydi5oIgogI2luY2x1ZGUgIm10a19kcm1fZmIuaCIKQEAgLTM5LDIyICs0MywxMiBAQCBzdGF0aWMgdm9pZCBtdGtfYXRvbWljX3NjaGVkdWxlKHN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXZhdGUsCiAJc2NoZWR1bGVfd29yaygmcHJpdmF0ZS0+Y29tbWl0LndvcmspOwogfQogCi1zdGF0aWMgdm9pZCBtdGtfYXRvbWljX3dhaXRfZm9yX2ZlbmNlcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Ci0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlOwotCWludCBpOwotCi0JZm9yX2VhY2hfbmV3X3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgbmV3X3BsYW5lX3N0YXRlLCBpKQotCQltdGtfZmJfd2FpdChuZXdfcGxhbmVfc3RhdGUtPmZiKTsKLX0KLQogc3RhdGljIHZvaWQgbXRrX2F0b21pY19jb21wbGV0ZShzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpwcml2YXRlLAogCQkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcHJpdmF0ZS0+ZHJtOwogCi0JbXRrX2F0b21pY193YWl0X2Zvcl9mZW5jZXMoc3RhdGUpOworCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2ZlbmNlcyhkcm0sIHN0YXRlLCBmYWxzZSk7CiAKIAkvKgogCSAqIE1lZGlhdGVrIGRybSBzdXBwb3J0cyBydW50aW1lIFBNLCBzbyBwbGFuZSByZWdpc3RlcnMgY2Fubm90IGJlCkBAIC0zNjUsOCArMzU5LDcgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICptdGtfZHJtX2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIG10a19kcm1fZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfUFJJTUUgfAotCQkJICAgRFJJVkVSX0FUT01JQywKKwkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX0FUT01JQywKIAogCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBtdGtfZHJtX2dlbV9mcmVlX29iamVjdCwKIAkuZ2VtX3ZtX29wcyA9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCkBAIC0zNzQsNyArMzY3LDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIG10a19kcm1fZHJpdmVyID0gewogCiAJLnByaW1lX2hhbmRsZV90b19mZCA9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUgPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKLQkuZ2VtX3ByaW1lX2V4cG9ydCA9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAogCS5nZW1fcHJpbWVfaW1wb3J0ID0gbXRrX2RybV9nZW1fcHJpbWVfaW1wb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gbXRrX2dlbV9wcmltZV9nZXRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgPSBtdGtfZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9mYi5jCmluZGV4IDRjM2FkN2QuLjNmMjMwYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZmIuYwpAQCAtMywxMyArMywxNCBAQAogICogQ29weXJpZ2h0IChjKSAyMDE1IE1lZGlhVGVrIEluYy4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4KIAogI2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiCiAjaW5jbHVkZSAibXRrX2RybV9mYi5oIgpAQCAtNDksMzQgKzUwLDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm10a19kcm1fZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVybiBmYjsKIH0KIAotLyoKLSAqIFdhaXQgZm9yIGFueSBleGNsdXNpdmUgZmVuY2UgaW4gZmIncyBnZW0gb2JqZWN0J3MgcmVzZXJ2YXRpb24gb2JqZWN0LgotICoKLSAqIFJldHVybnMgLUVSRVNUQVJUU1lTIGlmIGludGVycnVwdGVkLCBlbHNlIDAuCi0gKi8KLWludCBtdGtfZmJfd2FpdChzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKLXsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbTsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OwotCWxvbmcgcmV0OwotCi0JaWYgKCFmYikKLQkJcmV0dXJuIDA7Ci0KLQlnZW0gPSBmYi0+b2JqWzBdOwotCWlmICghZ2VtIHx8ICFnZW0tPmRtYV9idWYgfHwgIWdlbS0+ZG1hX2J1Zi0+cmVzdikKLQkJcmV0dXJuIDA7Ci0KLQlyZXN2ID0gZ2VtLT5kbWFfYnVmLT5yZXN2OwotCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KHJlc3YsIGZhbHNlLCB0cnVlLAotCQkJCQkJICBNQVhfU0NIRURVTEVfVElNRU9VVCk7Ci0JLyogTUFYX1NDSEVEVUxFX1RJTUVPVVQgb24gc3VjY2VzcywgLUVSRVNUQVJUU1lTIGlmIGludGVycnVwdGVkICovCi0JaWYgKFdBUk5fT04ocmV0IDwgMCkpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqbXRrX2RybV9tb2RlX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlLAogCQkJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKmNtZCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2ZiLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9mYi5oCmluZGV4IDZiODBjMjguLmViNjRkMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2ZiLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZmIuaApAQCAtNiw3ICs2LDYgQEAKICNpZm5kZWYgTVRLX0RSTV9GQl9ICiAjZGVmaW5lIE1US19EUk1fRkJfSAogCi1pbnQgbXRrX2ZiX3dhaXQoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwogc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqbXRrX2RybV9tb2RlX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlLAogCQkJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKmNtZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2dlbS5jCmluZGV4IDBkNjk2OTguLmNhNjcyZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2dlbS5jCkBAIC0zLDEwICszLDEzIEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgTWVkaWFUZWsgSW5jLgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogCisjaW5jbHVkZSA8ZHJtL2RybS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+CisKICNpbmNsdWRlICJtdGtfZHJtX2Rydi5oIgogI2luY2x1ZGUgIm10a19kcm1fZ2VtLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jCmluZGV4IGYyZWY4M2EuLjU4NGE5ZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fcGxhbmUuYwpAQCAtNCwxMCArNCwxMSBAQAogICogQXV0aG9yOiBDSyBIdSA8Y2suaHVAbWVkaWF0ZWsuY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgogCiAjaW5jbHVkZSAibXRrX2RybV9jcnRjLmgiCiAjaW5jbHVkZSAibXRrX2RybV9kZHBfY29tcC5oIgpAQCAtMTQ2LDYgKzE0Nyw3IEBAIHN0YXRpYyB2b2lkIG10a19wbGFuZV9hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIG10a19wbGFuZV9oZWxwZXJfZnVuY3MgPSB7CisJLnByZXBhcmVfZmIgPSBkcm1fZ2VtX2ZiX3ByZXBhcmVfZmIsCiAJLmF0b21pY19jaGVjayA9IG10a19wbGFuZV9hdG9taWNfY2hlY2ssCiAJLmF0b21pY191cGRhdGUgPSBtdGtfcGxhbmVfYXRvbWljX3VwZGF0ZSwKIAkuYXRvbWljX2Rpc2FibGUgPSBtdGtfcGxhbmVfYXRvbWljX2Rpc2FibGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYwppbmRleCBiOTFjNDYxLi4yMjRhZmI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKQEAgLTMsMTIgKzMsNiBAQAogICogQ29weXJpZ2h0IChjKSAyMDE1IE1lZGlhVGVrIEluYy4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgotI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9sbC5oPgpAQCAtMTcsOSArMTEsMTcgQEAKICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKwogI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgogI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9taXBpX2RzaS5oPgorI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisKICNpbmNsdWRlICJtdGtfZHJtX2RkcF9jb21wLmgiCiAKICNkZWZpbmUgRFNJX1NUQVJUCQkweDAwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCmluZGV4IDVkNmE5ZjAuLmNlOTFiNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCkBAIC0zLDExICszLDcgQEAKICAqIENvcHlyaWdodCAoYykgMjAxNCBNZWRpYVRlayBJbmMuCiAgKiBBdXRob3I6IEppZSBRaXUgPGppZS5xaXVAbWVkaWF0ZWsuY29tPgogICovCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgorCiAjaW5jbHVkZSA8bGludXgvYXJtLXNtY2NjLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KQEAgLTIzLDcgKzE5LDE1IEBACiAjaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCiAjaW5jbHVkZSA8c291bmQvaGRtaS1jb2RlYy5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisKICNpbmNsdWRlICJtdGtfY2VjLmgiCiAjaW5jbHVkZSAibXRrX2hkbWkuaCIKICNpbmNsdWRlICJtdGtfaGRtaV9yZWdzLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2NydGMuYwppbmRleCBhYThlYTEwLi41N2FlMWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9jcnRjLmMKQEAgLTksMjMgKzksMjEgQEAKICAqICAgICBKYXNwZXIgU3QuIFBpZXJyZSA8anN0cGllcnJlQG1lY2hleWUubmV0PgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdGZpZWxkLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorI2luY2x1ZGUgPGxpbnV4L3NvYy9hbWxvZ2ljL21lc29uLWNhbnZhcy5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mbGlwX3dvcmsuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJtZXNvbl9jcnRjLmgiCiAjaW5jbHVkZSAibWVzb25fcGxhbmUuaCIKLSNpbmNsdWRlICJtZXNvbl92ZW5jLmgiCi0jaW5jbHVkZSAibWVzb25fdnBwLmgiCi0jaW5jbHVkZSAibWVzb25fdml1LmgiCiAjaW5jbHVkZSAibWVzb25fcmVnaXN0ZXJzLmgiCisjaW5jbHVkZSAibWVzb25fdmVuYy5oIgorI2luY2x1ZGUgIm1lc29uX3ZpdS5oIgorI2luY2x1ZGUgIm1lc29uX3ZwcC5oIgogCiAjZGVmaW5lIE1FU09OX0cxMkFfVklVX09GRlNFVAkweDVlYzAKIApAQCAtMjY3LDExICsyNjUsMTEgQEAgc3RhdGljIHZvaWQgbWVzb25fY3J0Y19lbmFibGVfdmQxKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiAKIHN0YXRpYyB2b2lkIG1lc29uX2cxMmFfY3J0Y19lbmFibGVfdmQxKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiB7Ci0Jd3JpdGVsX3JlbGF4ZWQoKCgxIDw8IDE2KSB8IC8qIHBvc3QgYmxkIHByZW11bHQqLwotCQkJKDEgPDwgOCkgfCAvKiBwb3N0IHNyYyAqLwotCQkJKDEgPDwgNCkgfCAvKiBwcmUgYmxkIHByZW11bHQqLwotCQkJKDEgPDwgMCkpLAotCQkJcHJpdi0+aW9fYmFzZSArIF9SRUcoVkQxX0JMRU5EX1NSQ19DVFJMKSk7CisJd3JpdGVsX3JlbGF4ZWQoVkRfQkxFTkRfUFJFQkxEX1NSQ19WRDEgfAorCQkgICAgICAgVkRfQkxFTkRfUFJFQkxEX1BSRU1VTFRfRU4gfAorCQkgICAgICAgVkRfQkxFTkRfUE9TVEJMRF9TUkNfVkQxIHwKKwkJICAgICAgIFZEX0JMRU5EX1BPU1RCTERfUFJFTVVMVF9FTiwKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZEMV9CTEVORF9TUkNfQ1RSTCkpOwogfQogCiB2b2lkIG1lc29uX2NydGNfaXJxKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCkBAIC00ODksNyArNDg3LDEyIEBAIHZvaWQgbWVzb25fY3J0Y19pcnEoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIAkJd3JpdGVsX3JlbGF4ZWQocHJpdi0+dml1LnZkMV9yYW5nZV9tYXBfY3IsCiAJCQkJcHJpdi0+aW9fYmFzZSArIG1lc29uX2NydGMtPnZpdV9vZmZzZXQgKwogCQkJCV9SRUcoVkQxX0lGMF9SQU5HRV9NQVBfQ1IpKTsKLQkJd3JpdGVsX3JlbGF4ZWQoMHg3ODQwNCwKKwkJd3JpdGVsX3JlbGF4ZWQoVlBQX1ZTQ19CQU5LX0xFTkdUSCg0KSB8CisJCQkgICAgICAgVlBQX0hTQ19CQU5LX0xFTkdUSCg0KSB8CisJCQkgICAgICAgVlBQX1NDX1ZEX0VOX0VOQUJMRSB8CisJCQkgICAgICAgVlBQX1NDX1RPUF9FTl9FTkFCTEUgfAorCQkJICAgICAgIFZQUF9TQ19IU0NfRU5fRU5BQkxFIHwKKwkJCSAgICAgICBWUFBfU0NfVlNDX0VOX0VOQUJMRSwKIAkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhWUFBfU0NfTUlTQykpOwogCQl3cml0ZWxfcmVsYXhlZChwcml2LT52aXUudnBwX3BpY19pbl9oZWlnaHQsCiAJCQkJcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX1BJQ19JTl9IRUlHSFQpKTsKQEAgLTU3Miw3ICs1NzUsNyBAQCBpbnQgbWVzb25fY3J0Y19jcmVhdGUoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZzEyYS12cHUiKSkgeworCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HMTJBKSkgewogCQltZXNvbl9jcnRjLT5lbmFibGVfb3NkMSA9IG1lc29uX2cxMmFfY3J0Y19lbmFibGVfb3NkMTsKIAkJbWVzb25fY3J0Yy0+ZW5hYmxlX3ZkMSA9IG1lc29uX2cxMmFfY3J0Y19lbmFibGVfdmQxOwogCQltZXNvbl9jcnRjLT52aXVfb2Zmc2V0ID0gTUVTT05fRzEyQV9WSVVfT0ZGU0VUOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2Rydi5jCmluZGV4IDIzMTBjOTZmLi5hMjRmOGRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2Rydi5jCkBAIC04LDM1ICs4LDMwIEBACiAgKiAgICAgSmFzcGVyIFN0LiBQaWVycmUgPGpzdHBpZXJyZUBtZWNoZXllLm5ldD4KICAqLwogCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NvYy9hbWxvZ2ljL21lc29uLWNhbnZhcy5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZsaXBfd29yay5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1faXJxLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCi0jaW5jbHVkZSAibWVzb25fZHJ2LmgiCi0jaW5jbHVkZSAibWVzb25fcGxhbmUuaCIKLSNpbmNsdWRlICJtZXNvbl9vdmVybGF5LmgiCiAjaW5jbHVkZSAibWVzb25fY3J0Yy5oIgotI2luY2x1ZGUgIm1lc29uX3ZlbmNfY3Zicy5oIgotCi0jaW5jbHVkZSAibWVzb25fdnBwLmgiCi0jaW5jbHVkZSAibWVzb25fdml1LmgiCi0jaW5jbHVkZSAibWVzb25fdmVuYy5oIgorI2luY2x1ZGUgIm1lc29uX2Rydi5oIgorI2luY2x1ZGUgIm1lc29uX292ZXJsYXkuaCIKKyNpbmNsdWRlICJtZXNvbl9wbGFuZS5oIgogI2luY2x1ZGUgIm1lc29uX3JlZ2lzdGVycy5oIgorI2luY2x1ZGUgIm1lc29uX3ZlbmNfY3Zicy5oIgorI2luY2x1ZGUgIm1lc29uX3ZpdS5oIgorI2luY2x1ZGUgIm1lc29uX3ZwcC5oIgogCiAjZGVmaW5lIERSSVZFUl9OQU1FICJtZXNvbiIKICNkZWZpbmUgRFJJVkVSX0RFU0MgIkFtbG9naWMgTWVzb24gRFJNIGRyaXZlciIKQEAgLTkzLDkgKzg4LDcgQEAgc3RhdGljIGludCBtZXNvbl9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiBERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhmb3BzKTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIG1lc29uX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8Ci0JCQkJICBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9QUklNRSB8Ci0JCQkJICBEUklWRVJfQVRPTUlDLAorCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLAogCiAJLyogSVJRICovCiAJLmlycV9oYW5kbGVyCQk9IG1lc29uX2lycSwKQEAgLTEwMyw4ICs5Niw2IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBtZXNvbl9kcml2ZXIgPSB7CiAJLyogUFJJTUUgT3BzICovCiAJLnByaW1lX2hhbmRsZV90b19mZAk9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUJPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKLQkuZ2VtX3ByaW1lX2ltcG9ydAk9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAotCS5nZW1fcHJpbWVfZXhwb3J0CT0gZHJtX2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUJPSBkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgPSBkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV92bWFwCQk9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCkBAIC0xNDksMTAgKzE0MCwyOCBAQCBzdGF0aWMgc3RydWN0IHJlZ21hcF9jb25maWcgbWVzb25fcmVnbWFwX2NvbmZpZyA9IHsKIAogc3RhdGljIHZvaWQgbWVzb25fdnB1X2luaXQoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIHsKLQl3cml0ZWxfcmVsYXhlZCgweDIxMDAwMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBVX1JEQVJCX01PREVfTDFDMSkpOwotCXdyaXRlbF9yZWxheGVkKDB4MTAwMDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQVV9SREFSQl9NT0RFX0wxQzIpKTsKLQl3cml0ZWxfcmVsYXhlZCgweDkwMDAwMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBVX1JEQVJCX01PREVfTDJDMSkpOwotCXdyaXRlbF9yZWxheGVkKDB4MjAwMDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQVV9XUkFSQl9NT0RFX0wyQzEpKTsKKwl1MzIgdmFsdWU7CisKKwkvKgorCSAqIFNsYXZlIGRjMCBhbmQgZGM1IGNvbm5lY3RlZCB0byBtYXN0ZXIgcG9ydCAxLgorCSAqIEJ5IGRlZmF1bHQgb3RoZXIgc2xhdmVzIGFyZSBjb25uZWN0ZWQgdG8gbWFzdGVyIHBvcnQgMC4KKwkgKi8KKwl2YWx1ZSA9IFZQVV9SREFSQl9TTEFWRV9UT19NQVNURVJfUE9SVCgwLCAxKSB8CisJCVZQVV9SREFSQl9TTEFWRV9UT19NQVNURVJfUE9SVCg1LCAxKTsKKwl3cml0ZWxfcmVsYXhlZCh2YWx1ZSwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBVX1JEQVJCX01PREVfTDFDMSkpOworCisJLyogU2xhdmUgZGMwIGNvbm5lY3RlZCB0byBtYXN0ZXIgcG9ydCAxICovCisJdmFsdWUgPSBWUFVfUkRBUkJfU0xBVkVfVE9fTUFTVEVSX1BPUlQoMCwgMSk7CisJd3JpdGVsX3JlbGF4ZWQodmFsdWUsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQVV9SREFSQl9NT0RFX0wxQzIpKTsKKworCS8qIFNsYXZlIGRjNCBhbmQgZGM3IGNvbm5lY3RlZCB0byBtYXN0ZXIgcG9ydCAxICovCisJdmFsdWUgPSBWUFVfUkRBUkJfU0xBVkVfVE9fTUFTVEVSX1BPUlQoNCwgMSkgfAorCQlWUFVfUkRBUkJfU0xBVkVfVE9fTUFTVEVSX1BPUlQoNywgMSk7CisJd3JpdGVsX3JlbGF4ZWQodmFsdWUsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQVV9SREFSQl9NT0RFX0wyQzEpKTsKKworCS8qIFNsYXZlIGRjMSBjb25uZWN0ZWQgdG8gbWFzdGVyIHBvcnQgMSAqLworCXZhbHVlID0gVlBVX1JEQVJCX1NMQVZFX1RPX01BU1RFUl9QT1JUKDEsIDEpOworCXdyaXRlbF9yZWxheGVkKHZhbHVlLCBwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfV1JBUkJfTU9ERV9MMkMxKSk7CiB9CiAKIHN0YXRpYyB2b2lkIG1lc29uX3JlbW92ZV9mcmFtZWJ1ZmZlcnModm9pZCkKQEAgLTIwMCw2ICsyMDksOCBAQCBzdGF0aWMgaW50IG1lc29uX2Rydl9iaW5kX21hc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGJvb2wgaGFzX2NvbXBvbmVudHMpCiAJcHJpdi0+ZHJtID0gZHJtOwogCXByaXYtPmRldiA9IGRldjsKIAorCXByaXYtPmNvbXBhdCA9IChlbnVtIHZwdV9jb21wYXRpYmxlKW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShwcml2LT5kZXYpOworCiAJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShwZGV2LCBJT1JFU09VUkNFX01FTSwgInZwdSIpOwogCXJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOwogCWlmIChJU19FUlIocmVncykpIHsKQEAgLTQ0NCwxMCArNDU1LDE0IEBAIHN0YXRpYyBpbnQgbWVzb25fZHJ2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkdF9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neGJiLXZwdSIgfSwKLQl7IC5jb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZ3hsLXZwdSIgfSwKLQl7IC5jb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZ3htLXZwdSIgfSwKLQl7IC5jb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZzEyYS12cHUiIH0sCisJeyAuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLWd4YmItdnB1IiwKKwkgIC5kYXRhICAgICAgID0gKHZvaWQgKilWUFVfQ09NUEFUSUJMRV9HWEJCIH0sCisJeyAuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLWd4bC12cHUiLAorCSAgLmRhdGEgICAgICAgPSAodm9pZCAqKVZQVV9DT01QQVRJQkxFX0dYTCB9LAorCXsgLmNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neG0tdnB1IiwKKwkgIC5kYXRhICAgICAgID0gKHZvaWQgKilWUFVfQ09NUEFUSUJMRV9HWE0gfSwKKwl7IC5jb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZzEyYS12cHUiLAorCSAgLmRhdGEgICAgICAgPSAodm9pZCAqKVZQVV9DT01QQVRJQkxFX0cxMkEgfSwKIAl7fQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGR0X21hdGNoKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9kcnYuaAppbmRleCA3YjY1OTNmLi44MjBkMDdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2Rydi5oCkBAIC03LDE0ICs3LDI2IEBACiAjaWZuZGVmIF9fTUVTT05fRFJWX0gKICNkZWZpbmUgX19NRVNPTl9EUlZfSAogCi0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KLSNpbmNsdWRlIDxsaW51eC9zb2MvYW1sb2dpYy9tZXNvbi1jYW52YXMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCitzdHJ1Y3QgZHJtX2NydGM7CitzdHJ1Y3QgZHJtX2RldmljZTsKK3N0cnVjdCBkcm1fcGxhbmU7CitzdHJ1Y3QgbWVzb25fZHJtOworCitlbnVtIHZwdV9jb21wYXRpYmxlIHsKKwlWUFVfQ09NUEFUSUJMRV9HWEJCID0gMCwKKwlWUFVfQ09NUEFUSUJMRV9HWEwgID0gMSwKKwlWUFVfQ09NUEFUSUJMRV9HWE0gID0gMiwKKwlWUFVfQ09NUEFUSUJMRV9HMTJBID0gMywKK307CiAKIHN0cnVjdCBtZXNvbl9kcm0gewogCXN0cnVjdCBkZXZpY2UgKmRldjsKKwllbnVtIHZwdV9jb21wYXRpYmxlIGNvbXBhdDsKIAl2b2lkIF9faW9tZW0gKmlvX2Jhc2U7CiAJc3RydWN0IHJlZ21hcCAqaGhpOwogCWludCB2c3luY19pcnE7CkBAIC0xMTMsOSArMTI1LDkgQEAgc3RydWN0IG1lc29uX2RybSB7CiB9OwogCiBzdGF0aWMgaW5saW5lIGludCBtZXNvbl92cHVfaXNfY29tcGF0aWJsZShzdHJ1Y3QgbWVzb25fZHJtICpwcml2LAotCQkJCQkgIGNvbnN0IGNoYXIgKmNvbXBhdCkKKwkJCQkJICBlbnVtIHZwdV9jb21wYXRpYmxlIGZhbWlseSkKIHsKLQlyZXR1cm4gb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUocHJpdi0+ZGV2LT5vZl9ub2RlLCBjb21wYXQpOworCXJldHVybiBwcml2LT5jb21wYXQgPT0gZmFtaWx5OwogfQogCiAjZW5kaWYgLyogX19NRVNPTl9EUlZfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2R3X2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9kd19oZG1pLmMKaW5kZXggZGYzZjlkZC4uNjhiYmQ5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2R3X2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHdfaGRtaS5jCkBAIC01LDI5ICs1LDMwIEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW1sb2dpYywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2JyaWRnZS9kd19oZG1pLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9icmlkZ2UvZHdfaGRtaS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIAotI2luY2x1ZGUgPHVhcGkvbGludXgvbWVkaWEtYnVzLWZvcm1hdC5oPgotI2luY2x1ZGUgPHVhcGkvbGludXgvdmlkZW9kZXYyLmg+CisjaW5jbHVkZSA8bGludXgvbWVkaWEtYnVzLWZvcm1hdC5oPgorI2luY2x1ZGUgPGxpbnV4L3ZpZGVvZGV2Mi5oPgogCiAjaW5jbHVkZSAibWVzb25fZHJ2LmgiCi0jaW5jbHVkZSAibWVzb25fdmVuYy5oIgotI2luY2x1ZGUgIm1lc29uX3ZjbGsuaCIKICNpbmNsdWRlICJtZXNvbl9kd19oZG1pLmgiCiAjaW5jbHVkZSAibWVzb25fcmVnaXN0ZXJzLmgiCisjaW5jbHVkZSAibWVzb25fdmNsay5oIgorI2luY2x1ZGUgIm1lc29uX3ZlbmMuaCIKIAogI2RlZmluZSBEUklWRVJfTkFNRSAibWVzb24tZHctaGRtaSIKICNkZWZpbmUgRFJJVkVSX0RFU0MgIkFtbG9naWMgTWVzb24gSERNSS1UWCBEUk0gZHJpdmVyIgpAQCAtNDI4LDYgKzQyOSw4IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9waHlfaW5pdChzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdm9pZCAqZGF0YSwKIAkvKiBFbmFibGUgaW50ZXJuYWwgcGl4Y2xrLCB0bWRzX2Nsaywgc3BkaWZfY2xrLCBpMnNfY2xrLCBjZWNjbGsgKi8KIAlkd19oZG1pX3RvcF93cml0ZV9iaXRzKGR3X2hkbWksIEhETUlUWF9UT1BfQ0xLX0NOVEwsCiAJCQkgICAgICAgMHgzLCAweDMpOworCisJLyogRW5hYmxlIGNlY19jbGsgYW5kIGhkY3AyMl90bWRzY2xrX2VuICovCiAJZHdfaGRtaV90b3Bfd3JpdGVfYml0cyhkd19oZG1pLCBIRE1JVFhfVE9QX0NMS19DTlRMLAogCQkJICAgICAgIDB4MyA8PCA0LCAweDMgPDwgNCk7CiAKQEAgLTkzNCw3ICs5MzcsNyBAQCBzdGF0aWMgaW50IG1lc29uX2R3X2hkbWlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIAlyZXNldF9jb250cm9sX3Jlc2V0KG1lc29uX2R3X2hkbWktPmhkbWl0eF9waHkpOwogCiAJLyogRW5hYmxlIEFQQjMgZmFpbCBvbiBlcnJvciAqLwotCWlmICghbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZzEyYS12cHUiKSkgeworCWlmICghbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfRzEyQSkpIHsKIAkJd3JpdGVsX2JpdHNfcmVsYXhlZChCSVQoMTUpLCBCSVQoMTUpLAogCQkJCSAgICBtZXNvbl9kd19oZG1pLT5oZG1pdHggKyBIRE1JVFhfVE9QX0NUUkxfUkVHKTsKIAkJd3JpdGVsX2JpdHNfcmVsYXhlZChCSVQoMTUpLCBCSVQoMTUpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2R3X2hkbWkuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9kd19oZG1pLmgKaW5kZXggMWIyZWYwNC4uMDhlMWMxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2R3X2hkbWkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHdfaGRtaS5oCkBAIC0xMDAsNyArMTAwLDggQEAKICNkZWZpbmUgSERNSVRYX1RPUF9JTlRSX1JYU0VOU0VfUklTRQlCSVQoNikKICNkZWZpbmUgSERNSVRYX1RPUF9JTlRSX1JYU0VOU0VfRkFMTAlCSVQoNykKIAotLyogQml0IDE0OjEyIFJXIHRtZHNfc2VsOiAzJ2IwMDA9T3V0cHV0IHplcm87IDMnYjAwMT1PdXRwdXQgbm9ybWFsIFRNRFMgZGF0YTsKKy8qCisgKiBCaXQgMTQ6MTIgUlcgdG1kc19zZWw6IDMnYjAwMD1PdXRwdXQgemVybzsgMydiMDAxPU91dHB1dCBub3JtYWwgVE1EUyBkYXRhOwogICogICAgIDMnYjAxMD1PdXRwdXQgUFJCUyBkYXRhOyAzJ2IxMDA9T3V0cHV0IHNoaWZ0IHBhdHRlcm4uIERlZmF1bHQgMC4KICAqIEJpdCAxMTogOSBSVyBzaGlmdF9wdHRuX3JlcGVhdDogMD1OZXcgcGF0dGVybiBldmVyeSBjbGsgY3ljbGU7IDE9TmV3IHBhdHRlcm4KICAqICAgICBldmVyeSAyIGNsayBjeWNsZXM7IC4uLjsgNz1OZXcgcGF0dGVybiBldmVyeSA4IGNsayBjeWNsZXMuIERlZmF1bHQgMC4KQEAgLTEzNSw3ICsxMzYsOCBAQAogLyogQml0ICA5OiAwIFJXIHRtZHNfY2xrX3B0dG5bMjk6MjBdLiBEZWZhdWx0IDAuICovCiAjZGVmaW5lIEhETUlUWF9UT1BfVE1EU19DTEtfUFRUTl8yMyAgICAgICAgICAgICAoMHgwMEIpCiAKLS8qIEJpdCAxIFJXIHNoaWZ0X3RtZHNfY2xrX3B0dG46MT1FbmFibGUgc2hpZnRpbmcgY2xrIHBhdHRlcm4sCisvKgorICogQml0IDEgUlcgc2hpZnRfdG1kc19jbGtfcHR0bjoxPUVuYWJsZSBzaGlmdGluZyBjbGsgcGF0dGVybiwKICAqIHVzZWQgd2hlbiBUTURTIENMSyByYXRlID0gVE1EUyBjaGFyYWN0ZXIgcmF0ZSAvNC4gRGVmYXVsdCAwLgogICogQml0IDAgUiAgUmVzZXJ2ZWQuIERlZmF1bHQgMC4KICAqIFsJMV0gc2hpZnRfdG1kc19jbGtfcHR0bgpAQCAtMTQzLDEyICsxNDUsMTQgQEAKICAqLwogI2RlZmluZSBIRE1JVFhfVE9QX1RNRFNfQ0xLX1BUVE5fQ05UTCAgICAgICAgICAgKDB4MDBDKQogCi0vKiBCaXQgMCBSVyByZXZvY21lbV93cl9mYWlsOiBSZWFkIGJhY2sgMSB0byBpbmRpY2F0ZSBIb3N0IHdyaXRlIFJFVk9DIE1FTQorLyoKKyAqIEJpdCAwIFJXIHJldm9jbWVtX3dyX2ZhaWw6IFJlYWQgYmFjayAxIHRvIGluZGljYXRlIEhvc3Qgd3JpdGUgUkVWT0MgTUVNCiAgKiBmYWlsdXJlLCB3cml0ZSAxIHRvIGNsZWFyIHRoZSBmYWlsdXJlIGZsYWcuICBEZWZhdWx0IDAuCiAgKi8KICNkZWZpbmUgSERNSVRYX1RPUF9SRVZPQ01FTV9TVEFUICAgICAgICAgICAgICAgICgweDAwRCkKIAotLyogQml0CSAgIDEgUglmaWx0ZXJlZCBSeFNlbnNlIHN0YXR1cworLyoKKyAqIEJpdAkgICAxIFIJZmlsdGVyZWQgUnhTZW5zZSBzdGF0dXMKICAqIEJpdCAgICAgMCBSICBmaWx0ZXJlZCBIUEQgc3RhdHVzLgogICovCiAjZGVmaW5lIEhETUlUWF9UT1BfU1RBVDAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMEUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX292ZXJsYXkuYwppbmRleCBjYzdjNmFlLi4yNDY4YjAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fb3ZlcmxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9vdmVybGF5LmMKQEAgLTUsMjQgKzUsMjEgQEAKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbWxvZ2ljLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvYml0ZmllbGQuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+CiAKICNpbmNsdWRlICJtZXNvbl9vdmVybGF5LmgiCi0jaW5jbHVkZSAibWVzb25fdnBwLmgiCi0jaW5jbHVkZSAibWVzb25fdml1LmgiCiAjaW5jbHVkZSAibWVzb25fcmVnaXN0ZXJzLmgiCisjaW5jbHVkZSAibWVzb25fdml1LmgiCisjaW5jbHVkZSAibWVzb25fdnBwLmgiCiAKIC8qIFZEMV9JRjBfR0VOX1JFRyAqLwogI2RlZmluZSBWRF9VUkdFTlRfQ0hST01BCQlCSVQoMjgpCkBAIC01MTYsNyArNTEzLDcgQEAgc3RhdGljIHZvaWQgbWVzb25fb3ZlcmxheV9hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlwcml2LT52aXUudmQxX2VuYWJsZWQgPSBmYWxzZTsKIAogCS8qIERpc2FibGUgVkQxICovCi0JaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWcxMmEtdnB1IikpIHsKKwlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfRzEyQSkpIHsKIAkJd3JpdGVsX3JlbGF4ZWQoMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkQxX0JMRU5EX1NSQ19DVFJMKSk7CiAJCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZEMl9CTEVORF9TUkNfQ1RSTCkpOwogCQl3cml0ZWxfcmVsYXhlZCgwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRDFfSUYwX0dFTl9SRUcgKyAweDE3YjApKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMKaW5kZXggN2E3ZTg4ZC4uZWQ1NDMyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMKQEAgLTksMjQgKzksMjAgQEAKICAqICAgICBKYXNwZXIgU3QuIFBpZXJyZSA8anN0cGllcnJlQG1lY2hleWUubmV0PgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdGZpZWxkLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogCiAjaW5jbHVkZSAibWVzb25fcGxhbmUuaCIKLSNpbmNsdWRlICJtZXNvbl92cHAuaCIKLSNpbmNsdWRlICJtZXNvbl92aXUuaCIKICNpbmNsdWRlICJtZXNvbl9yZWdpc3RlcnMuaCIKKyNpbmNsdWRlICJtZXNvbl92aXUuaCIKIAogLyogT1NEX1NDSV9XSF9NMSAqLwogI2RlZmluZSBTQ0lfV0hfTTFfVyh3KQkJCUZJRUxEX1BSRVAoR0VOTUFTSygyOCwgMTYpLCB3KQpAQCAtMTQyLDcgKzEzOCw3IEBAIHN0YXRpYyB2b2lkIG1lc29uX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJICAgICAgT1NEX0VORElBTk5FU1NfTEUpOwogCiAJLyogT24gR1hCQiwgVXNlIHRoZSBvbGQgbm9uLUhEUiBSR0IyWVVWIGNvbnZlcnRlciAqLwotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neGJiLXZwdSIpKQorCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HWEJCKSkKIAkJcHJpdi0+dml1Lm9zZDFfYmxrMF9jZmdbMF0gfD0gT1NEX09VVFBVVF9DT0xPUl9SR0I7CiAKIAlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1hdCkgewpAQCAtMjk2LDcgKzI5Miw3IEBAIHN0YXRpYyB2b2lkIG1lc29uX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJcHJpdi0+dml1Lm9zZDFfYmxrMF9jZmdbM10gPSAoKGRlc3QueDIgLSAxKSA8PCAxNikgfCBkZXN0LngxOwogCXByaXYtPnZpdS5vc2QxX2JsazBfY2ZnWzRdID0gKChkZXN0LnkyIC0gMSkgPDwgMTYpIHwgZGVzdC55MTsKIAotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1nMTJhLXZwdSIpKSB7CisJaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0cxMkEpKSB7CiAJCXByaXYtPnZpdS5vc2RfYmxlbmRfZGluMF9zY29wZV9oID0gKChkZXN0LngyIC0gMSkgPDwgMTYpIHwgZGVzdC54MTsKIAkJcHJpdi0+dml1Lm9zZF9ibGVuZF9kaW4wX3Njb3BlX3YgPSAoKGRlc3QueTIgLSAxKSA8PCAxNikgfCBkZXN0LnkxOwogCQlwcml2LT52aXUub3NiX2JsZW5kMF9zaXplID0gZHN0X2ggPDwgMTYgfCBkc3RfdzsKQEAgLTMxMiw4ICszMDgsOCBAQCBzdGF0aWMgdm9pZCBtZXNvbl9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCiAJaWYgKCFtZXNvbl9wbGFuZS0+ZW5hYmxlZCkgewogCQkvKiBSZXNldCBPU0QxIGJlZm9yZSBlbmFibGluZyBpdCBvbiBHWEwrIFNvQ3MgKi8KLQkJaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4bS12cHUiKSB8fAotCQkgICAgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hsLXZwdSIpKQorCQlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hNKSB8fAorCQkgICAgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hMKSkKIAkJCW1lc29uX3ZpdV9vc2QxX3Jlc2V0KHByaXYpOwogCiAJCW1lc29uX3BsYW5lLT5lbmFibGVkID0gdHJ1ZTsKQEAgLTMzMSw4ICszMjcsOCBAQCBzdGF0aWMgdm9pZCBtZXNvbl9wbGFuZV9hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlzdHJ1Y3QgbWVzb25fZHJtICpwcml2ID0gbWVzb25fcGxhbmUtPnByaXY7CiAKIAkvKiBEaXNhYmxlIE9TRDEgKi8KLQlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZzEyYS12cHUiKSkKLQkJd3JpdGVsX2JpdHNfcmVsYXhlZCgzIDw8IDgsIDAsCisJaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0cxMkEpKQorCQl3cml0ZWxfYml0c19yZWxheGVkKFZJVV9PU0QxX1BPU1RCTERfU1JDX09TRDEsIDAsCiAJCQkJICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKE9TRDFfQkxFTkRfU1JDX0NUUkwpKTsKIAllbHNlCiAJCXdyaXRlbF9iaXRzX3JlbGF4ZWQoVlBQX09TRDFfUE9TVEJMRU5ELCAwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3JlZ2lzdGVycy5oIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3JlZ2lzdGVycy5oCmluZGV4IDQxMGUzMjQuLjA1ZmNlNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9yZWdpc3RlcnMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fcmVnaXN0ZXJzLmgKQEAgLTYsMTEgKzYsMTMgQEAKICNpZm5kZWYgX19NRVNPTl9SRUdJU1RFUlNfSAogI2RlZmluZSBfX01FU09OX1JFR0lTVEVSU19ICiAKKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCiAvKiBTaGlmdCBhbGwgcmVnaXN0ZXJzIGJ5IDIgKi8KICNkZWZpbmUgX1JFRyhyZWcpCSgocmVnKSA8PCAyKQogCiAjZGVmaW5lIHdyaXRlbF9iaXRzX3JlbGF4ZWQobWFzaywgdmFsLCBhZGRyKSBcCi0Jd3JpdGVsX3JlbGF4ZWQoKHJlYWRsX3JlbGF4ZWQoYWRkcikgJiB+KG1hc2spKSB8ICh2YWwpLCBhZGRyKQorCXdyaXRlbF9yZWxheGVkKChyZWFkbF9yZWxheGVkKGFkZHIpICYgfihtYXNrKSkgfCAoKHZhbCkgJiAobWFzaykpLCBhZGRyKQogCiAvKiB2cHAyICovCiAjZGVmaW5lIFZQUDJfRFVNTVlfREFUQSAweDE5MDAKQEAgLTEzNiwxMSArMTM4LDE5IEBACiAjZGVmaW5lIFZJVV9BRERSX1NUQVJUIDB4MWEwMAogI2RlZmluZSBWSVVfQUREUl9FTkQgMHgxYWZmCiAjZGVmaW5lIFZJVV9TV19SRVNFVCAweDFhMDEKKyNkZWZpbmUJCVZJVV9TV19SRVNFVF9PU0QxICAgICAgICAgICAgICAgQklUKDApCiAjZGVmaW5lIFZJVV9NSVNDX0NUUkwwIDB4MWEwNgorI2RlZmluZQkJVklVX0NUUkwwX1ZEMV9BRkJDX01BU0sgICAgICAgICAweDE3MDAwMAogI2RlZmluZSBWSVVfTUlTQ19DVFJMMSAweDFhMDcKICNkZWZpbmUgRDJEM19JTlRGX0xFTkdUSCAweDFhMDgKICNkZWZpbmUgRDJEM19JTlRGX0NUUkwwIDB4MWEwOQogI2RlZmluZSBWSVVfT1NEMV9DVFJMX1NUQVQgMHgxYTEwCisjZGVmaW5lCQlWSVVfT1NEMV9PU0RfQkxLX0VOQUJMRSAgICAgICAgIEJJVCgwKQorI2RlZmluZQkJVklVX09TRDFfUE9TVEJMRF9TUkNfVkQxICAgICAgICAoMSA8PCA4KQorI2RlZmluZQkJVklVX09TRDFfUE9TVEJMRF9TUkNfVkQyICAgICAgICAoMiA8PCA4KQorI2RlZmluZQkJVklVX09TRDFfUE9TVEJMRF9TUkNfT1NEMSAgICAgICAoMyA8PCA4KQorI2RlZmluZQkJVklVX09TRDFfUE9TVEJMRF9TUkNfT1NEMiAgICAgICAoNCA8PCA4KQorI2RlZmluZQkJVklVX09TRDFfT1NEX0VOQUJMRSAgICAgICAgICAgICBCSVQoMjEpCiAjZGVmaW5lIFZJVV9PU0QxX0NUUkxfU1RBVDIgMHgxYTJkCiAjZGVmaW5lIFZJVV9PU0QxX0NPTE9SX0FERFIgMHgxYTExCiAjZGVmaW5lIFZJVV9PU0QxX0NPTE9SIDB4MWExMgpAQCAtMjMwLDYgKzI0MCwxMiBAQAogI2RlZmluZSBWSVVfT1NEM19NQUxJX1VOUEFDS19DVFJMIDB4M2Q5ZgogI2RlZmluZSBWSVVfT1NEM19ESU1NX0NUUkwgMHgzZGEwCiAKKyNkZWZpbmUgVklVX09TRF9ERFJfUFJJT1JJVFlfVVJHRU5UICAgICAgQklUKDApCisjZGVmaW5lIFZJVV9PU0RfSE9MRF9GSUZPX0xJTkVTKGxpbmVzKSAgICgobGluZXMgJiAweDFmKSA8PCA1KQorI2RlZmluZSBWSVVfT1NEX0ZJRk9fREVQVEhfVkFMKHZhbCkgICAgICAoKHZhbCAmIDB4N2YpIDw8IDEyKQorI2RlZmluZSBWSVVfT1NEX1dPUkRTX1BFUl9CVVJTVCh3b3JkcykgICAoKCh3b3JkcyAmIDB4NCkgPj4gMSkgPDwgMjIpCisjZGVmaW5lIFZJVV9PU0RfRklGT19MSU1JVFMoc2l6ZSkgICAgICAgICgoc2l6ZSAmIDB4ZikgPDwgMjQpCisKICNkZWZpbmUgVkQxX0lGMF9HRU5fUkVHIDB4MWE1MAogI2RlZmluZSBWRDFfSUYwX0NBTlZBUzAgMHgxYTUxCiAjZGVmaW5lIFZEMV9JRjBfQ0FOVkFTMSAweDFhNTIKQEAgLTMzOSw2ICszNTUsNyBAQAogI2RlZmluZSBWUFBfTElORV9JTl9MRU5HVEggMHgxZDAxCiAjZGVmaW5lIFZQUF9QSUNfSU5fSEVJR0hUIDB4MWQwMgogI2RlZmluZSBWUFBfU0NBTEVfQ09FRl9JRFggMHgxZDAzCisjZGVmaW5lCQlWUFBfU0NBTEVfSE9SSVpPTlRBTF9DT0VGICAgICAgIEJJVCg4KQogI2RlZmluZSBWUFBfU0NBTEVfQ09FRiAweDFkMDQKICNkZWZpbmUgVlBQX1ZTQ19SRUdJT04xMl9TVEFSVFAgMHgxZDA1CiAjZGVmaW5lIFZQUF9WU0NfUkVHSU9OMzRfU1RBUlRQIDB4MWQwNgpAQCAtMzYwLDYgKzM3NywxMiBAQAogI2RlZmluZSBWUFBfSFNDX1JFR0lPTjRfUEhBU0VfU0xPUEUgMHgxZDE3CiAjZGVmaW5lIFZQUF9IU0NfUEhBU0VfQ1RSTCAweDFkMTgKICNkZWZpbmUgVlBQX1NDX01JU0MgMHgxZDE5CisjZGVmaW5lCQlWUFBfU0NfVkRfRU5fRU5BQkxFICAgICAgICAgICAgIEJJVCgxNSkKKyNkZWZpbmUJCVZQUF9TQ19UT1BfRU5fRU5BQkxFICAgICAgICAgICAgQklUKDE2KQorI2RlZmluZQkJVlBQX1NDX0hTQ19FTl9FTkFCTEUgICAgICAgICAgICBCSVQoMTcpCisjZGVmaW5lCQlWUFBfU0NfVlNDX0VOX0VOQUJMRSAgICAgICAgICAgIEJJVCgxOCkKKyNkZWZpbmUJCVZQUF9WU0NfQkFOS19MRU5HVEgobGVuZ3RoKSAgICAgKGxlbmd0aCAmIDB4NykKKyNkZWZpbmUJCVZQUF9IU0NfQkFOS19MRU5HVEgobGVuZ3RoKSAgICAgKChsZW5ndGggJiAweDcpIDw8IDgpCiAjZGVmaW5lIFZQUF9QUkVCTEVORF9WRDFfSF9TVEFSVF9FTkQgMHgxZDFhCiAjZGVmaW5lIFZQUF9QUkVCTEVORF9WRDFfVl9TVEFSVF9FTkQgMHgxZDFiCiAjZGVmaW5lIFZQUF9QT1NUQkxFTkRfVkQxX0hfU1RBUlRfRU5EIDB4MWQxYwpAQCAtMzY5LDI0ICszOTIsMjggQEAKICNkZWZpbmUgVlBQX1BSRUJMRU5EX0hfU0laRSAweDFkMjAKICNkZWZpbmUgVlBQX1BPU1RCTEVORF9IX1NJWkUgMHgxZDIxCiAjZGVmaW5lIFZQUF9IT0xEX0xJTkVTIDB4MWQyMgorI2RlZmluZQkJVlBQX1BPU1RCTEVORF9IT0xEX0xJTkVTKGxpbmVzKSAobGluZXMgJiAweGYpCisjZGVmaW5lCQlWUFBfUFJFQkxFTkRfSE9MRF9MSU5FUyhsaW5lcykgICgobGluZXMgJiAweGYpIDw8IDgpCiAjZGVmaW5lIFZQUF9CTEVORF9PTkVDT0xPUl9DVFJMIDB4MWQyMwogI2RlZmluZSBWUFBfUFJFQkxFTkRfQ1VSUkVOVF9YWSAweDFkMjQKICNkZWZpbmUgVlBQX1BPU1RCTEVORF9DVVJSRU5UX1hZIDB4MWQyNQogI2RlZmluZSBWUFBfTUlTQyAweDFkMjYKLSNkZWZpbmUJCVZQUF9QUkVCTEVORF9FTkFCTEUJQklUKDYpCi0jZGVmaW5lCQlWUFBfUE9TVEJMRU5EX0VOQUJMRQlCSVQoNykKLSNkZWZpbmUJCVZQUF9PU0QyX0FMUEhBX1BSRU1VTFQJQklUKDgpCi0jZGVmaW5lCQlWUFBfT1NEMV9BTFBIQV9QUkVNVUxUCUJJVCg5KQotI2RlZmluZQkJVlBQX1ZEMV9QT1NUQkxFTkQJQklUKDEwKQotI2RlZmluZQkJVlBQX1ZEMl9QT1NUQkxFTkQJQklUKDExKQotI2RlZmluZQkJVlBQX09TRDFfUE9TVEJMRU5ECUJJVCgxMikKLSNkZWZpbmUJCVZQUF9PU0QyX1BPU1RCTEVORAlCSVQoMTMpCi0jZGVmaW5lCQlWUFBfVkQxX1BSRUJMRU5ECUJJVCgxNCkKLSNkZWZpbmUJCVZQUF9WRDJfUFJFQkxFTkQJQklUKDE1KQotI2RlZmluZQkJVlBQX09TRDFfUFJFQkxFTkQJQklUKDE2KQotI2RlZmluZQkJVlBQX09TRDJfUFJFQkxFTkQJQklUKDE3KQotI2RlZmluZQkJVlBQX0NPTE9SX01OR19FTkFCTEUJQklUKDI4KQorI2RlZmluZQkJVlBQX1BSRUJMRU5EX0VOQUJMRSAgICAgICAgICAgICBCSVQoNikKKyNkZWZpbmUJCVZQUF9QT1NUQkxFTkRfRU5BQkxFICAgICAgICAgICAgQklUKDcpCisjZGVmaW5lCQlWUFBfT1NEMl9BTFBIQV9QUkVNVUxUICAgICAgICAgIEJJVCg4KQorI2RlZmluZQkJVlBQX09TRDFfQUxQSEFfUFJFTVVMVCAgICAgICAgICBCSVQoOSkKKyNkZWZpbmUJCVZQUF9WRDFfUE9TVEJMRU5EICAgICAgICAgICAgICAgQklUKDEwKQorI2RlZmluZQkJVlBQX1ZEMl9QT1NUQkxFTkQgICAgICAgICAgICAgICBCSVQoMTEpCisjZGVmaW5lCQlWUFBfT1NEMV9QT1NUQkxFTkQgICAgICAgICAgICAgIEJJVCgxMikKKyNkZWZpbmUJCVZQUF9PU0QyX1BPU1RCTEVORCAgICAgICAgICAgICAgQklUKDEzKQorI2RlZmluZQkJVlBQX1ZEMV9QUkVCTEVORCAgICAgICAgICAgICAgICBCSVQoMTQpCisjZGVmaW5lCQlWUFBfVkQyX1BSRUJMRU5EICAgICAgICAgICAgICAgIEJJVCgxNSkKKyNkZWZpbmUJCVZQUF9PU0QxX1BSRUJMRU5EICAgICAgICAgICAgICAgQklUKDE2KQorI2RlZmluZQkJVlBQX09TRDJfUFJFQkxFTkQgICAgICAgICAgICAgICBCSVQoMTcpCisjZGVmaW5lCQlWUFBfQ09MT1JfTU5HX0VOQUJMRSAgICAgICAgICAgIEJJVCgyOCkKICNkZWZpbmUgVlBQX09GSUZPX1NJWkUgMHgxZDI3CisjZGVmaW5lCQlWUFBfT0ZJRk9fU0laRV9NQVNLICAgICAgICAgICAgIEdFTk1BU0soMTMsIDApCisjZGVmaW5lCQlWUFBfT0ZJRk9fU0laRV9ERUZBVUxUICAgICAgICAgICgweGZmZiA8PCAyMCB8IDB4MTAwMCkKICNkZWZpbmUgVlBQX0ZJRk9fU1RBVFVTIDB4MWQyOAogI2RlZmluZSBWUFBfU01PS0VfQ1RSTCAweDFkMjkKICNkZWZpbmUgVlBQX1NNT0tFMV9WQUwgMHgxZDJhCkBAIC00MDIsNiArNDI5LDggQEAKICNkZWZpbmUgVlBQX0hTQ19QSEFTRV9DVFJMMSAweDFkMzQKICNkZWZpbmUgVlBQX0hTQ19JTklfUEFUX0NUUkwgMHgxZDM1CiAjZGVmaW5lIFZQUF9WQURKX0NUUkwgMHgxZDQwCisjZGVmaW5lCQlWUFBfTUlOVVNfQkxBQ0tfTFZMX1ZBREoxX0VOQUJMRSBCSVQoMSkKKwogI2RlZmluZSBWUFBfVkFESjFfWSAweDFkNDEKICNkZWZpbmUgVlBQX1ZBREoxX01BX01CIDB4MWQ0MgogI2RlZmluZSBWUFBfVkFESjFfTUNfTUQgMHgxZDQzCkBAIC00NjEsNiArNDkwLDcgQEAKICNkZWZpbmUgVlBQX1BFQUtJTkdfVkdBSU4gMHgxZDkyCiAjZGVmaW5lIFZQUF9QRUFLSU5HX05MUF8xIDB4MWQ5MwogI2RlZmluZSBWUFBfRE9MQllfQ1RSTCAweDFkOTMKKyNkZWZpbmUgVlBQX1BQU19EVU1NWV9EQVRBX01PREUgKDEgPDwgMTcpCiAjZGVmaW5lIFZQUF9QRUFLSU5HX05MUF8yIDB4MWQ5NAogI2RlZmluZSBWUFBfUEVBS0lOR19OTFBfMyAweDFkOTUKICNkZWZpbmUgVlBQX1BFQUtJTkdfTkxQXzQgMHgxZDk2CkBAIC01OTEsNiArNjIxLDcgQEAKICNkZWZpbmUgT1NEMzRfU0NJX1dIX00xIDB4M2QyOQogI2RlZmluZSBPU0QzNF9TQ09fSF9TVEFSVF9FTkQgMHgzZDJhCiAjZGVmaW5lIE9TRDM0X1NDT19WX1NUQVJUX0VORCAweDNkMmIKKwogLyogdml1MiAqLwogI2RlZmluZSBWSVUyX0FERFJfU1RBUlQgMHgxZTAwCiAjZGVmaW5lIFZJVTJfQUREUl9FTkQgMHgxZWZmCkBAIC03MDQsNiArNzM1LDI1IEBACiAjZGVmaW5lIFZFTkNfVVBTQU1QTEVfQ1RSTDAgMHgxYjY0CiAjZGVmaW5lIFZFTkNfVVBTQU1QTEVfQ1RSTDEgMHgxYjY1CiAjZGVmaW5lIFZFTkNfVVBTQU1QTEVfQ1RSTDIgMHgxYjY2CisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfRjBfMl9DTEtfUkFUSU8gICAgICAgIEJJVCgwKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0YxX0VOICAgICAgICAgICAgICAgICBCSVQoNSkKKyNkZWZpbmUJCVZFTkNfVVBTQU1QTEVfQ1RSTF9GMV9VUFNBTVBMRV9FTiAgICAgICAgQklUKDYpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNFX0hJR0hfTFVNQSAgICgweDAgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfQ1ZCUyAgICAgICAgICAgICAgICAgICgweDEgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfU19WSURFT19MVU1BICAgICAgICAgICgweDIgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfU19WSURFT19DSFJPTUEgICAgICAgICgweDMgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNFX1BCICAgICAgICAgICgweDQgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNFX1BSICAgICAgICAgICgweDUgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNFX1IgICAgICAgICAgICgweDYgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNFX0cgICAgICAgICAgICgweDcgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNFX0IgICAgICAgICAgICgweDggPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfUFJPR1JFU1NJVkVfWSAgICAgICAgICgweDkgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfUFJPR1JFU1NJVkVfUEIgICAgICAgICgweGEgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfUFJPR1JFU1NJVkVfUFIgICAgICAgICgweGIgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfUFJPR1JFU1NJVkVfUiAgICAgICAgICgweGMgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfUFJPR1JFU1NJVkVfRyAgICAgICAgICgweGQgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfUFJPR1JFU1NJVkVfQiAgICAgICAgICgweGUgPDwgMTIpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExFX0NUUkxfVkRBQ19URVNUX1ZBTFVFICAgICAgICgweGYgPDwgMTIpCiAjZGVmaW5lIFRDT05fSU5WRVJUX0NUTCAweDFiNjcKICNkZWZpbmUgVkVOQ19WSURFT19QUk9HX01PREUgMHgxYjY4CiAjZGVmaW5lIFZFTkNfRU5DSV9MSU5FIDB4MWI2OQpAQCAtNzEyLDYgKzc2Miw3IEBACiAjZGVmaW5lIFZFTkNfRU5DUF9QSVhFTCAweDFiNmMKICNkZWZpbmUgVkVOQ19TVEFUQSAweDFiNmQKICNkZWZpbmUgVkVOQ19JTlRDVFJMIDB4MWI2ZQorI2RlZmluZQkJVkVOQ19JTlRDVFJMX0VOQ0lfTE5SU1RfSU5UX0VOICBCSVQoMSkKICNkZWZpbmUgVkVOQ19JTlRGTEFHIDB4MWI2ZgogI2RlZmluZSBWRU5DX1ZJREVPX1RTVF9FTiAweDFiNzAKICNkZWZpbmUgVkVOQ19WSURFT19UU1RfTURTRUwgMHgxYjcxCkBAIC03MjIsNiArNzczLDcgQEAKICNkZWZpbmUgVkVOQ19WSURFT19UU1RfQ0xSQkFSX1dJRFRIIDB4MWI3NgogI2RlZmluZSBWRU5DX1ZJREVPX1RTVF9WRENOVF9TVFNFVCAweDFiNzcKICNkZWZpbmUgVkVOQ19WREFDX0RBQ1NFTDAgMHgxYjc4CisjZGVmaW5lCQlWRU5DX1ZEQUNfU0VMX0FUVl9ETUQgICAgICAgICAgIEJJVCg1KQogI2RlZmluZSBWRU5DX1ZEQUNfREFDU0VMMSAweDFiNzkKICNkZWZpbmUgVkVOQ19WREFDX0RBQ1NFTDIgMHgxYjdhCiAjZGVmaW5lIFZFTkNfVkRBQ19EQUNTRUwzIDB4MWI3YgpAQCAtNzQyLDYgKzc5NCw3IEBACiAjZGVmaW5lIFZFTkNfVkRBQ19EQUM1X0dBSU5DVFJMIDB4MWJmYQogI2RlZmluZSBWRU5DX1ZEQUNfREFDNV9PRkZTRVQgMHgxYmZiCiAjZGVmaW5lIFZFTkNfVkRBQ19GSUZPX0NUUkwgMHgxYmZjCisjZGVmaW5lCQlWRU5DX1ZEQUNfRklGT19FTl9FTkNJX0VOQUJMRSAgIEJJVCgxMykKICNkZWZpbmUgRU5DTF9UQ09OX0lOVkVSVF9DVEwgMHgxYmZkCiAjZGVmaW5lIEVOQ1BfVklERU9fRU4gMHgxYjgwCiAjZGVmaW5lIEVOQ1BfVklERU9fU1lOQ19NT0RFIDB4MWI4MQpAQCAtNzU3LDYgKzgxMCw3IEBACiAjZGVmaW5lIEVOQ1BfVklERU9fU1lOQ19PRkZTVCAweDFiOGIKICNkZWZpbmUgRU5DUF9WSURFT19NQUNWX09GRlNUIDB4MWI4YwogI2RlZmluZSBFTkNQX1ZJREVPX01PREUgMHgxYjhkCisjZGVmaW5lCQlFTkNQX1ZJREVPX01PREVfREVfVl9ISUdIICAgICAgIEJJVCgxNCkKICNkZWZpbmUgRU5DUF9WSURFT19NT0RFX0FEViAweDFiOGUKICNkZWZpbmUgRU5DUF9EQkdfUFhfUlNUIDB4MWI5MAogI2RlZmluZSBFTkNQX0RCR19MTl9SU1QgMHgxYjkxCkBAIC04MzUsNiArODg5LDExIEBACiAjZGVmaW5lIEM2NTZfRlNfTE5FRCAweDFiZTcKICNkZWZpbmUgRU5DSV9WSURFT19NT0RFIDB4MWIwMAogI2RlZmluZSBFTkNJX1ZJREVPX01PREVfQURWIDB4MWIwMQorI2RlZmluZQkJRU5DSV9WSURFT19NT0RFX0FEVl9ETVhNRCh2YWwpICAgICAgICAgICh2YWwgJiAweDMpCisjZGVmaW5lCQlFTkNJX1ZJREVPX01PREVfQURWX1ZCSUNUTF9MSU5FXzE3XzIyICAgQklUKDIpCisjZGVmaW5lCQlFTkNJX1ZJREVPX01PREVfQURWX1lCV19NRURJVU0gICAgICAgICAgKDAgPDwgNCkKKyNkZWZpbmUJCUVOQ0lfVklERU9fTU9ERV9BRFZfWUJXX0xPVyAgICAgICAgICAgICAoMHgxIDw8IDQpCisjZGVmaW5lCQlFTkNJX1ZJREVPX01PREVfQURWX1lCV19ISUdIICAgICAgICAgICAgKDB4MiA8PCA0KQogI2RlZmluZSBFTkNJX1ZJREVPX0ZTQ19BREogMHgxYjAyCiAjZGVmaW5lIEVOQ0lfVklERU9fQlJJR0hUIDB4MWIwMwogI2RlZmluZSBFTkNJX1ZJREVPX0NPTlQgMHgxYjA0CkBAIC05MDUsMTMgKzk2NCwxNyBAQAogI2RlZmluZSBFTkNJX0RCR19NQVhQWCAweDFiNGMKICNkZWZpbmUgRU5DSV9EQkdfTUFYTE4gMHgxYjRkCiAjZGVmaW5lIEVOQ0lfTUFDVl9NQVhfQU1QIDB4MWI1MAorI2RlZmluZQkJRU5DSV9NQUNWX01BWF9BTVBfRU5BQkxFX0NIQU5HRSBCSVQoMTUpCisjZGVmaW5lCQlFTkNJX01BQ1ZfTUFYX0FNUF9WQUwodmFsKSAgICAgICh2YWwgJiAweDgzZmYpCiAjZGVmaW5lIEVOQ0lfTUFDVl9QVUxTRV9MTyAweDFiNTEKICNkZWZpbmUgRU5DSV9NQUNWX1BVTFNFX0hJIDB4MWI1MgogI2RlZmluZSBFTkNJX01BQ1ZfQktQX01BWCAweDFiNTMKICNkZWZpbmUgRU5DSV9DRklMVF9DVFJMIDB4MWI1NAorI2RlZmluZQkJRU5DSV9DRklMVF9DTVBUX1NFTF9ISUdIICAgICAgICBCSVQoMSkKICNkZWZpbmUgRU5DSV9DRklMVDcgMHgxYjU1CiAjZGVmaW5lIEVOQ0lfWUNfREVMQVkgMHgxYjU2CiAjZGVmaW5lIEVOQ0lfVklERU9fRU4gMHgxYjU3CisjZGVmaW5lCQlFTkNJX1ZJREVPX0VOX0VOQUJMRSAgICAgICAgICAgIEJJVCgwKQogI2RlZmluZSBFTkNJX0RWSV9IU09fQkVHSU4gMHgxYzAwCiAjZGVmaW5lIEVOQ0lfRFZJX0hTT19FTkQgMHgxYzAxCiAjZGVmaW5lIEVOQ0lfRFZJX1ZTT19CTElORV9FVk4gMHgxYzAyCkBAIC05MjMsNiArOTg2LDEwIEBACiAjZGVmaW5lIEVOQ0lfRFZJX1ZTT19FTkRfRVZOIDB4MWMwOAogI2RlZmluZSBFTkNJX0RWSV9WU09fRU5EX09ERCAweDFjMDkKICNkZWZpbmUgRU5DSV9DRklMVF9DVFJMMiAweDFjMGEKKyNkZWZpbmUJCUVOQ0lfQ0ZJTFRfQ01QVF9DUl9ETFkoZGVsYXkpICAgKGRlbGF5ICYgMHhmKQorI2RlZmluZQkJRU5DSV9DRklMVF9DTVBUX0NCX0RMWShkZWxheSkgICAoKGRlbGF5ICYgMHhmKSA8PCA0KQorI2RlZmluZQkJRU5DSV9DRklMVF9DVkJTX0NSX0RMWShkZWxheSkgICAoKGRlbGF5ICYgMHhmKSA8PCA4KQorI2RlZmluZQkJRU5DSV9DRklMVF9DVkJTX0NCX0RMWShkZWxheSkgICAoKGRlbGF5ICYgMHhmKSA8PCAxMikKICNkZWZpbmUgRU5DSV9EQUNTRUxfMCAweDFjMGIKICNkZWZpbmUgRU5DSV9EQUNTRUxfMSAweDFjMGMKICNkZWZpbmUgRU5DUF9EQUNTRUxfMCAweDFjMGQKQEAgLTkzNyw2ICsxMDA0LDggQEAKICNkZWZpbmUgRU5DSV9UU1RfQ0xSQkFSX1dJRFRIIDB4MWMxNgogI2RlZmluZSBFTkNJX1RTVF9WRENOVF9TVFNFVCAweDFjMTcKICNkZWZpbmUgRU5DSV9WRklGTzJWRF9DVEwgMHgxYzE4CisjZGVmaW5lCQlFTkNJX1ZGSUZPMlZEX0NUTF9FTkFCTEUgICAgICAgIEJJVCgwKQorI2RlZmluZQkJRU5DSV9WRklGTzJWRF9DVExfVkRfU0VMKHZhbCkgICAoKHZhbCAmIDB4ZmYpIDw8IDgpCiAjZGVmaW5lIEVOQ0lfVkZJRk8yVkRfUElYRUxfU1RBUlQgMHgxYzE5CiAjZGVmaW5lIEVOQ0lfVkZJRk8yVkRfUElYRUxfRU5EIDB4MWMxYQogI2RlZmluZSBFTkNJX1ZGSUZPMlZEX0xJTkVfVE9QX1NUQVJUIDB4MWMxYgpAQCAtOTk5LDYgKzEwNjgsNyBAQAogI2RlZmluZSBWRU5DX1ZEQUNfREFDNV9GSUxUX0NUUkwwIDB4MWM1NgogI2RlZmluZSBWRU5DX1ZEQUNfREFDNV9GSUxUX0NUUkwxIDB4MWM1NwogI2RlZmluZSBWRU5DX1ZEQUNfREFDMF9GSUxUX0NUUkwwIDB4MWM1OAorI2RlZmluZQkJVkVOQ19WREFDX0RBQzBfRklMVF9DVFJMMF9FTiAgICBCSVQoMCkKICNkZWZpbmUgVkVOQ19WREFDX0RBQzBfRklMVF9DVFJMMSAweDFjNTkKICNkZWZpbmUgVkVOQ19WREFDX0RBQzFfRklMVF9DVFJMMCAweDFjNWEKICNkZWZpbmUgVkVOQ19WREFDX0RBQzFfRklMVF9DVFJMMSAweDFjNWIKQEAgLTE0MDQsNiArMTQ3NCwxOCBAQAogI2RlZmluZQkJVklVMl9TRUxfVkVOQ19FTkNQCSgyIDw8IDIpCiAjZGVmaW5lCQlWSVUyX1NFTF9WRU5DX0VOQ1QJKDMgPDwgMikKICNkZWZpbmUgVlBVX0hETUlfU0VUVElORyAweDI3MWIKKyNkZWZpbmUJCVZQVV9IRE1JX0VOQ0lfREFUQV9UT19IRE1JICAgICAgQklUKDApCisjZGVmaW5lCQlWUFVfSERNSV9FTkNQX0RBVEFfVE9fSERNSSAgICAgIEJJVCgxKQorI2RlZmluZQkJVlBVX0hETUlfSU5WX0hTWU5DICAgICAgICAgICAgICBCSVQoMikKKyNkZWZpbmUJCVZQVV9IRE1JX0lOVl9WU1lOQyAgICAgICAgICAgICAgQklUKDMpCisjZGVmaW5lCQlWUFVfSERNSV9PVVRQVVRfQ1JZQ0IgICAgICAgICAgICgwIDw8IDUpCisjZGVmaW5lCQlWUFVfSERNSV9PVVRQVVRfWUNCQ1IgICAgICAgICAgICgxIDw8IDUpCisjZGVmaW5lCQlWUFVfSERNSV9PVVRQVVRfWUNSQ0IgICAgICAgICAgICgyIDw8IDUpCisjZGVmaW5lCQlWUFVfSERNSV9PVVRQVVRfQ0JDUlkgICAgICAgICAgICgzIDw8IDUpCisjZGVmaW5lCQlWUFVfSERNSV9PVVRQVVRfQ0JZQ1IgICAgICAgICAgICg0IDw8IDUpCisjZGVmaW5lCQlWUFVfSERNSV9PVVRQVVRfQ1JDQlkgICAgICAgICAgICg1IDw8IDUpCisjZGVmaW5lCQlWUFVfSERNSV9XUl9SQVRFKHJhdGUpICAgICAgICAgICgoKHJhdGUgJiAweDFmKSAtIDEpIDw8IDgpCisjZGVmaW5lCQlWUFVfSERNSV9SRF9SQVRFKHJhdGUpICAgICAgICAgICgoKHJhdGUgJiAweDFmKSAtIDEpIDw8IDEyKQogI2RlZmluZSBFTkNJX0lORk9fUkVBRCAweDI3MWMKICNkZWZpbmUgRU5DUF9JTkZPX1JFQUQgMHgyNzFkCiAjZGVmaW5lIEVOQ1RfSU5GT19SRUFEIDB4MjcxZQpAQCAtMTQ4MCw2ICsxNTYyLDcgQEAKICNkZWZpbmUgVlBVX1JEQVJCX01PREVfTDFDMiAweDI3OTkKICNkZWZpbmUgVlBVX1JEQVJCX01PREVfTDJDMSAweDI3OWQKICNkZWZpbmUgVlBVX1dSQVJCX01PREVfTDJDMSAweDI3YTIKKyNkZWZpbmUJCVZQVV9SREFSQl9TTEFWRV9UT19NQVNURVJfUE9SVChkYywgcG9ydCkgKHBvcnQgPDwgKDE2ICsgZGMpKQogCiAvKiBvc2Qgc3VwZXIgc2NhbGUgKi8KICNkZWZpbmUgT1NEU1JfSFZfU0laRUlOIDB4MzEzMApAQCAtMTUyMSw3ICsxNjA0LDYgQEAKICNkZWZpbmUgT1NEMV9BRkJDRF9TVEFUVVMgMHgzMWE4CiAjZGVmaW5lIE9TRDFfQUZCQ0RfUElYRUxfSFNDT1BFIDB4MzFhOQogI2RlZmluZSBPU0QxX0FGQkNEX1BJWEVMX1ZTQ09QRSAweDMxYWEKLSNkZWZpbmUgVklVX01JU0NfQ1RSTDEgMHgxYTA3CiAKIC8qIGFkZCBmb3IgZ3htIGFuZCA5NjJlIGR2IGNvcmUyICovCiAjZGVmaW5lIERPTEJZX0NPUkUyQV9TV0FQX0NUUkwxCTB4MzQzNApAQCAtMTUzNiw4ICsxNjE4LDYgQEAKICNkZWZpbmUgVlBVX01BRkJDX0NPTU1BTkQgMHgzYTA1CiAjZGVmaW5lIFZQVV9NQUZCQ19TVEFUVVMgMHgzYTA2CiAjZGVmaW5lIFZQVV9NQUZCQ19TVVJGQUNFX0NGRyAweDNhMDcKLQotLyogb3NkIGFmYmMgb24gZzEyYSAqLwogI2RlZmluZSBWUFVfTUFGQkNfSEVBREVSX0JVRl9BRERSX0xPV19TMCAweDNhMTAKICNkZWZpbmUgVlBVX01BRkJDX0hFQURFUl9CVUZfQUREUl9ISUdIX1MwIDB4M2ExMQogI2RlZmluZSBWUFVfTUFGQkNfRk9STUFUX1NQRUNJRklFUl9TMCAweDNhMTIKQEAgLTE1OTUsMTAgKzE2NzUsMTggQEAKICNkZWZpbmUgVlBVX01BRkJDX1BSRUZFVENIX0NGR19TMyAweDNhN2MKIAogI2RlZmluZSBET0xCWV9QQVRIX0NUUkwgMHgxYTBjCisjZGVmaW5lCQlET0xCWV9CWVBBU1NfRU4odmFsKSAgICAgICAgICAgICh2YWwgJiAweGYpCiAjZGVmaW5lIE9TRF9QQVRIX01JU0NfQ1RSTCAweDFhMGUKICNkZWZpbmUgTUFMSV9BRkJDRF9UT1BfQ1RSTCAweDFhMGYKIAogI2RlZmluZSBWSVVfT1NEX0JMRU5EX0NUUkwgMHgzOWIwCisjZGVmaW5lCQlWSVVfT1NEX0JMRU5EX1JFT1JERVIoZGVzdCwgc3JjKSAgICAgICgoc3JjKSA8PCAoZGVzdCAqIDQpKQorI2RlZmluZQkJVklVX09TRF9CTEVORF9ESU5fRU4oYml0cykgICAgICAgICAgICAoKGJpdHMgJiAweGYpIDw8IDIwKQorI2RlZmluZQkJVklVX09TRF9CTEVORDFfRElOM19CWVBBU1NfVE9fRE9VVDEgICBCSVQoMjQpCisjZGVmaW5lCQlWSVVfT1NEX0JMRU5EMV9ET1VUX0JZUEFTU19UT19CTEVORDIgIEJJVCgyNSkKKyNkZWZpbmUJCVZJVV9PU0RfQkxFTkRfRElOMF9CWVBBU1NfVE9fRE9VVDAgICAgQklUKDI2KQorI2RlZmluZQkJVklVX09TRF9CTEVORF9CTEVOMl9QUkVNVUxUX0VOKGlucHV0KSAoKGlucHV0ICYgMHgzKSA8PCAyNykKKyNkZWZpbmUJCVZJVV9PU0RfQkxFTkRfSE9MRF9MSU5FUyhsaW5lcykgICAgICAgKChsaW5lcyAmIDB4NykgPDwgMjkpCiAjZGVmaW5lIFZJVV9PU0RfQkxFTkRfQ1RSTDEgMHgzOWMwCiAjZGVmaW5lIFZJVV9PU0RfQkxFTkRfRElOMF9TQ09QRV9IIDB4MzliMQogI2RlZmluZSBWSVVfT1NEX0JMRU5EX0RJTjBfU0NPUEVfViAweDM5YjIKQEAgLTE2MjgsMTMgKzE3MTYsMjcgQEAKICNkZWZpbmUgVlBQX1NMRUVQX0NUUkwgMHgxZGZhCiAjZGVmaW5lIFZEMV9CTEVORF9TUkNfQ1RSTCAweDFkZmIKICNkZWZpbmUgVkQyX0JMRU5EX1NSQ19DVFJMIDB4MWRmYworI2RlZmluZQkJVkRfQkxFTkRfUFJFQkxEX1NSQ19WRDEgICAgICAgICAoMSA8PCAwKQorI2RlZmluZQkJVkRfQkxFTkRfUFJFQkxEX1NSQ19WRDIgICAgICAgICAoMiA8PCAwKQorI2RlZmluZQkJVkRfQkxFTkRfUFJFQkxEX1NSQ19PU0QxICAgICAgICAoMyA8PCAwKQorI2RlZmluZQkJVkRfQkxFTkRfUFJFQkxEX1NSQ19PU0QyICAgICAgICAoNCA8PCAwKQorI2RlZmluZQkJVkRfQkxFTkRfUFJFQkxEX1BSRU1VTFRfRU4gICAgICBCSVQoNCkKKyNkZWZpbmUJCVZEX0JMRU5EX1BPU1RCTERfU1JDX1ZEMSAgICAgICAgKDEgPDwgOCkKKyNkZWZpbmUJCVZEX0JMRU5EX1BPU1RCTERfU1JDX1ZEMiAgICAgICAgKDIgPDwgOCkKKyNkZWZpbmUJCVZEX0JMRU5EX1BPU1RCTERfU1JDX09TRDEgICAgICAgKDMgPDwgOCkKKyNkZWZpbmUJCVZEX0JMRU5EX1BPU1RCTERfU1JDX09TRDIgICAgICAgKDQgPDwgOCkKKyNkZWZpbmUJCVZEX0JMRU5EX1BPU1RCTERfUFJFTVVMVF9FTiAgICAgQklUKDE2KQogI2RlZmluZSBPU0QxX0JMRU5EX1NSQ19DVFJMIDB4MWRmZAogI2RlZmluZSBPU0QyX0JMRU5EX1NSQ19DVFJMIDB4MWRmZQorI2RlZmluZQkJT1NEX0JMRU5EX1BPU1RCTERfU1JDX1ZEMSAgICAgICAoMSA8PCA4KQorI2RlZmluZQkJT1NEX0JMRU5EX1BPU1RCTERfU1JDX1ZEMiAgICAgICAoMiA8PCA4KQorI2RlZmluZQkJT1NEX0JMRU5EX1BPU1RCTERfU1JDX09TRDEgICAgICAoMyA8PCA4KQorI2RlZmluZQkJT1NEX0JMRU5EX1BPU1RCTERfU1JDX09TRDIgICAgICAoNCA8PCA4KQorI2RlZmluZQkJT1NEX0JMRU5EX1BBVEhfU0VMX0VOQUJMRSAgICAgICBCSVQoMjApCiAKICNkZWZpbmUgVlBQX1BPU1RfQkxFTkRfQkxFTkRfRFVNTVlfREFUQSAweDM5NjgKICNkZWZpbmUgVlBQX1BPU1RfQkxFTkRfRFVNTVlfQUxQSEEgMHgzOTY5CiAjZGVmaW5lIFZQUF9SREFSQl9NT0RFIDB4Mzk3OAogI2RlZmluZSBWUFBfUkRBUkJfUkVRRU5fU0xWIDB4Mzk3OQotI2RlZmluZSBWUFVfUkRBUkJfTU9ERV9MMkMxIDB4Mjc5ZAogCiAjZW5kaWYgLyogX19NRVNPTl9SRUdJU1RFUlNfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZjbGsuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92Y2xrLmMKaW5kZXggMjY3MzJmMC4uYWM0OTFhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZjbGsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmNsay5jCkBAIC01LDkgKzUsMTAgQEAKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbWxvZ2ljLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CisKICNpbmNsdWRlICJtZXNvbl9kcnYuaCIKICNpbmNsdWRlICJtZXNvbl92Y2xrLmgiCiAKQEAgLTk2LDYgKzk3LDcgQEAKICNkZWZpbmUgSEhJX1ZEQUNfQ05UTDEJCTB4MkY4IC8qIDB4YmUgb2Zmc2V0IGluIGRhdGEgc2hlZXQgKi8KIAogI2RlZmluZSBISElfSERNSV9QTExfQ05UTAkweDMyMCAvKiAweGM4IG9mZnNldCBpbiBkYXRhIHNoZWV0ICovCisjZGVmaW5lIEhISV9IRE1JX1BMTF9DTlRMX0VOCUJJVCgzMCkKICNkZWZpbmUgSEhJX0hETUlfUExMX0NOVEwyCTB4MzI0IC8qIDB4Yzkgb2Zmc2V0IGluIGRhdGEgc2hlZXQgKi8KICNkZWZpbmUgSEhJX0hETUlfUExMX0NOVEwzCTB4MzI4IC8qIDB4Y2Egb2Zmc2V0IGluIGRhdGEgc2hlZXQgKi8KICNkZWZpbmUgSEhJX0hETUlfUExMX0NOVEw0CTB4MzJDIC8qIDB4Y2Igb2Zmc2V0IGluIGRhdGEgc2hlZXQgKi8KQEAgLTI0MCw3ICsyNDIsNyBAQCBzdGF0aWMgdm9pZCBtZXNvbl92ZW5jaV9jdmJzX2Nsb2NrX2NvbmZpZyhzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogCXVuc2lnbmVkIGludCB2YWw7CiAKIAkvKiBTZXR1cCBQTEwgdG8gb3V0cHV0IDEuNDg1R0h6ICovCi0JaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4YmItdnB1IikpIHsKKwlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hCQikpIHsKIAkJcmVnbWFwX3dyaXRlKHByaXYtPmhoaSwgSEhJX0hETUlfUExMX0NOVEwsIDB4NTgwMDAyM2QpOwogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfSERNSV9QTExfQ05UTDIsIDB4MDA0MDRlMDApOwogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfSERNSV9QTExfQ05UTDMsIDB4MGQ1YzUwOTEpOwpAQCAtMjUyLDggKzI1NCw4IEBAIHN0YXRpYyB2b2lkIG1lc29uX3ZlbmNpX2N2YnNfY2xvY2tfY29uZmlnKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiAJCS8qIFBvbGwgZm9yIGxvY2sgYml0ICovCiAJCXJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMLCB2YWwsCiAJCQkJCSAodmFsICYgSERNSV9QTExfTE9DSyksIDEwLCAwKTsKLQl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4bS12cHUiKSB8fAotCQkgICBtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neGwtdnB1IikpIHsKKwl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTSkgfHwKKwkJICAgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hMKSkgewogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfSERNSV9QTExfQ05UTCwgMHg0MDAwMDI3Yik7CiAJCXJlZ21hcF93cml0ZShwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMMiwgMHg4MDBjYjMwMCk7CiAJCXJlZ21hcF93cml0ZShwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMMywgMHhhNjIxMjg0NCk7CkBAIC0yNzAsNyArMjcyLDcgQEAgc3RhdGljIHZvaWQgbWVzb25fdmVuY2lfY3Zic19jbG9ja19jb25maWcoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIAkJLyogUG9sbCBmb3IgbG9jayBiaXQgKi8KIAkJcmVnbWFwX3JlYWRfcG9sbF90aW1lb3V0KHByaXYtPmhoaSwgSEhJX0hETUlfUExMX0NOVEwsIHZhbCwKIAkJCQkJICh2YWwgJiBIRE1JX1BMTF9MT0NLKSwgMTAsIDApOwotCX0gZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZzEyYS12cHUiKSkgeworCX0gZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfRzEyQSkpIHsKIAkJcmVnbWFwX3dyaXRlKHByaXYtPmhoaSwgSEhJX0hETUlfUExMX0NOVEwsIDB4MWEwNTA0ZjcpOwogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfSERNSV9QTExfQ05UTDIsIDB4MDAwMTAwMDApOwogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfSERNSV9QTExfQ05UTDMsIDB4MDAwMDAwMDApOwpAQCAtMjk4LDcgKzMwMCw3IEBAIHN0YXRpYyB2b2lkIG1lc29uX3ZlbmNpX2N2YnNfY2xvY2tfY29uZmlnKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiAJCQkJVkNMSzJfRElWX01BU0ssICg1NSAtIDEpKTsKIAogCS8qIHNlbGVjdCB2aWRfcGxsIGZvciB2Y2xrMiAqLwotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1nMTJhLXZwdSIpKQorCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HMTJBKSkKIAkJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPmhoaSwgSEhJX1ZJSURfQ0xLX0NOVEwsCiAJCQkJCVZDTEsyX1NFTF9NQVNLLCAoMCA8PCBWQ0xLMl9TRUxfU0hJRlQpKTsKIAllbHNlCkBAIC00NTMsNyArNDU1LDcgQEAgdm9pZCBtZXNvbl9oZG1pX3BsbF9zZXRfcGFyYW1zKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIHVuc2lnbmVkIGludCBtLAogewogCXVuc2lnbmVkIGludCB2YWw7CiAKLQlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hiYi12cHUiKSkgeworCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HWEJCKSkgewogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfSERNSV9QTExfQ05UTCwgMHg1ODAwMDIwMCB8IG0pOwogCQlpZiAoZnJhYykKIAkJCXJlZ21hcF93cml0ZShwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMMiwKQEAgLTQ2OCwxMyArNDcwLDEzIEBAIHZvaWQgbWVzb25faGRtaV9wbGxfc2V0X3BhcmFtcyhzdHJ1Y3QgbWVzb25fZHJtICpwcml2LCB1bnNpZ25lZCBpbnQgbSwKIAogCQkvKiBFbmFibGUgYW5kIHVucmVzZXQgKi8KIAkJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPmhoaSwgSEhJX0hETUlfUExMX0NOVEwsCi0JCQkJICAgMHg3IDw8IDI4LCAweDQgPDwgMjgpOworCQkJCSAgIDB4NyA8PCAyOCwgSEhJX0hETUlfUExMX0NOVExfRU4pOwogCiAJCS8qIFBvbGwgZm9yIGxvY2sgYml0ICovCiAJCXJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMLAogCQkJCQkgdmFsLCAodmFsICYgSERNSV9QTExfTE9DSyksIDEwLCAwKTsKLQl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4bS12cHUiKSB8fAotCQkgICBtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neGwtdnB1IikpIHsKKwl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTSkgfHwKKwkJICAgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hMKSkgewogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfSERNSV9QTExfQ05UTCwgMHg0MDAwMDIwMCB8IG0pOwogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfSERNSV9QTExfQ05UTDIsIDB4ODAwY2IwMDAgfCBmcmFjKTsKIAkJcmVnbWFwX3dyaXRlKHByaXYtPmhoaSwgSEhJX0hETUlfUExMX0NOVEwzLCAweDg2MGYzMGM0KTsKQEAgLTQ5MSwxMCArNDkzLDExIEBAIHZvaWQgbWVzb25faGRtaV9wbGxfc2V0X3BhcmFtcyhzdHJ1Y3QgbWVzb25fZHJtICpwcml2LCB1bnNpZ25lZCBpbnQgbSwKIAkJLyogUG9sbCBmb3IgbG9jayBiaXQgKi8KIAkJcmVnbWFwX3JlYWRfcG9sbF90aW1lb3V0KHByaXYtPmhoaSwgSEhJX0hETUlfUExMX0NOVEwsIHZhbCwKIAkJCQkodmFsICYgSERNSV9QTExfTE9DSyksIDEwLCAwKTsKLQl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWcxMmEtdnB1IikpIHsKKwl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0cxMkEpKSB7CiAJCXJlZ21hcF93cml0ZShwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMLCAweDBiM2EwNDAwIHwgbSk7CiAKIAkJLyogRW5hYmxlIGFuZCByZXNldCAqLworCQkvKiBUT0RPOiBhZGQgc3BlY2lmaWMgbWFjcm8gZm9yIGcxMmEgaGVyZSAqLwogCQlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+aGhpLCBISElfSERNSV9QTExfQ05UTCwKIAkJCQkgICAweDMgPDwgMjgsIDB4MyA8PCAyOCk7CiAKQEAgLTU0MiwzNiArNTQ1LDM2IEBAIHZvaWQgbWVzb25faGRtaV9wbGxfc2V0X3BhcmFtcyhzdHJ1Y3QgbWVzb25fZHJtICpwcml2LCB1bnNpZ25lZCBpbnQgbSwKIAkJfSB3aGlsZSgxKTsKIAl9CiAKLQlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hiYi12cHUiKSkKKwlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hCQikpCiAJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMMiwKIAkJCQkzIDw8IDE2LCBwbGxfb2RfdG9fcmVnKG9kMSkgPDwgMTYpOwotCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4bS12cHUiKSB8fAotCQkgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hsLXZwdSIpKQorCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTSkgfHwKKwkJIG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTCkpCiAJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMMywKIAkJCQkzIDw8IDIxLCBwbGxfb2RfdG9fcmVnKG9kMSkgPDwgMjEpOwotCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWcxMmEtdnB1IikpCisJZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfRzEyQSkpCiAJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMLAogCQkJCTMgPDwgMTYsIHBsbF9vZF90b19yZWcob2QxKSA8PCAxNik7CiAKLQlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hiYi12cHUiKSkKKwlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hCQikpCiAJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMMiwKIAkJCQkzIDw8IDIyLCBwbGxfb2RfdG9fcmVnKG9kMikgPDwgMjIpOwotCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4bS12cHUiKSB8fAotCQkgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hsLXZwdSIpKQorCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTSkgfHwKKwkJIG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTCkpCiAJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMMywKIAkJCQkzIDw8IDIzLCBwbGxfb2RfdG9fcmVnKG9kMikgPDwgMjMpOwotCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWcxMmEtdnB1IikpCisJZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfRzEyQSkpCiAJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMLAogCQkJCTMgPDwgMTgsIHBsbF9vZF90b19yZWcob2QyKSA8PCAxOCk7CiAKLQlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hiYi12cHUiKSkKKwlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hCQikpCiAJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMMiwKIAkJCQkzIDw8IDE4LCBwbGxfb2RfdG9fcmVnKG9kMykgPDwgMTgpOwotCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4bS12cHUiKSB8fAotCQkgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hsLXZwdSIpKQorCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTSkgfHwKKwkJIG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTCkpCiAJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMMywKIAkJCQkzIDw8IDE5LCBwbGxfb2RfdG9fcmVnKG9kMykgPDwgMTkpOwotCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWcxMmEtdnB1IikpCisJZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfRzEyQSkpCiAJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGksIEhISV9IRE1JX1BMTF9DTlRMLAogCQkJCTMgPDwgMjAsIHBsbF9vZF90b19yZWcob2QzKSA8PCAyMCk7CiB9CkBAIC01ODIsNyArNTg1LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBtZXNvbl9oZG1pX3BsbF9nZXRfbShzdHJ1Y3QgbWVzb25fZHJtICpwcml2LAogCQkJCQkgdW5zaWduZWQgaW50IHBsbF9mcmVxKQogewogCS8qIFRoZSBHWEJCIFBMTCBoYXMgYSAvMiBwcmUtbXVsdGlwbGllciAqLwotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neGJiLXZwdSIpKQorCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HWEJCKSkKIAkJcGxsX2ZyZXEgLz0gMjsKIAogCXJldHVybiBwbGxfZnJlcSAvIFhUQUxfRlJFUTsKQEAgLTYwMiwxMiArNjA1LDEyIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbWVzb25faGRtaV9wbGxfZ2V0X2ZyYWMoc3RydWN0IG1lc29uX2RybSAqcHJpdiwKIAl1bnNpZ25lZCBpbnQgZnJhYzsKIAogCS8qIFRoZSBHWEJCIFBMTCBoYXMgYSAvMiBwcmUtbXVsdGlwbGllciBhbmQgYSBsYXJnZXIgRlJBQyB3aWR0aCAqLwotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neGJiLXZwdSIpKSB7CisJaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYQkIpKSB7CiAJCWZyYWNfbWF4ID0gSERNSV9GUkFDX01BWF9HWEJCOwogCQlwYXJlbnRfZnJlcSAqPSAyOwogCX0KIAotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1nMTJhLXZwdSIpKQorCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HMTJBKSkKIAkJZnJhY19tYXggPSBIRE1JX0ZSQUNfTUFYX0cxMkE7CiAKIAkvKiBXZSBjYW4gaGF2ZSBhIHBlcmZlY3QgbWF0Y2ggISovCkBAIC02MjgsMTUgKzYzMSwxNSBAQCBzdGF0aWMgYm9vbCBtZXNvbl9oZG1pX3BsbF92YWxpZGF0ZV9wYXJhbXMoc3RydWN0IG1lc29uX2RybSAqcHJpdiwKIAkJCQkJICAgdW5zaWduZWQgaW50IG0sCiAJCQkJCSAgIHVuc2lnbmVkIGludCBmcmFjKQogewotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neGJiLXZwdSIpKSB7CisJaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYQkIpKSB7CiAJCS8qIEVtcGlyaWMgc3VwcG9ydGVkIG1pbi9tYXggZGl2aWRlcnMgKi8KIAkJaWYgKG0gPCA1MyB8fCBtID4gMTIzKQogCQkJcmV0dXJuIGZhbHNlOwogCQlpZiAoZnJhYyA+PSBIRE1JX0ZSQUNfTUFYX0dYQkIpCiAJCQlyZXR1cm4gZmFsc2U7Ci0JfSBlbHNlIGlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neG0tdnB1IikgfHwKLQkJICAgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hsLXZwdSIpIHx8Ci0JCSAgIG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWcxMmEtdnB1IikpIHsKKwl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTSkgfHwKKwkJICAgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hMKSB8fAorCQkgICBtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HMTJBKSkgewogCQkvKiBFbXBpcmljIHN1cHBvcnRlZCBtaW4vbWF4IGRpdmlkZXJzICovCiAJCWlmIChtIDwgMTA2IHx8IG0gPiAyNDcpCiAJCQlyZXR1cm4gZmFsc2U7CkBAIC03NTYsNyArNzU5LDcgQEAgc3RhdGljIHZvaWQgbWVzb25fdmNsa19zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgdW5zaWduZWQgaW50IHBsbF9iYXNlX2ZyZXEsCiAJLyogU2V0IEhETUkgUExMIHJhdGUgKi8KIAlpZiAoIW9kMSAmJiAhb2QyICYmICFvZDMpIHsKIAkJbWVzb25faGRtaV9wbGxfZ2VuZXJpY19zZXQocHJpdiwgcGxsX2Jhc2VfZnJlcSk7Ci0JfSBlbHNlIGlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neGJiLXZwdSIpKSB7CisJfSBlbHNlIGlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HWEJCKSkgewogCQlzd2l0Y2ggKHBsbF9iYXNlX2ZyZXEpIHsKIAkJY2FzZSAyOTcwMDAwOgogCQkJbSA9IDB4M2Q7CkBAIC03NzMsOCArNzc2LDggQEAgc3RhdGljIHZvaWQgbWVzb25fdmNsa19zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgdW5zaWduZWQgaW50IHBsbF9iYXNlX2ZyZXEsCiAJCX0KIAogCQltZXNvbl9oZG1pX3BsbF9zZXRfcGFyYW1zKHByaXYsIG0sIGZyYWMsIG9kMSwgb2QyLCBvZDMpOwotCX0gZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3htLXZwdSIpIHx8Ci0JCSAgIG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4bC12cHUiKSkgeworCX0gZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hNKSB8fAorCQkgICBtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HWEwpKSB7CiAJCXN3aXRjaCAocGxsX2Jhc2VfZnJlcSkgewogCQljYXNlIDI5NzAwMDA6CiAJCQltID0gMHg3YjsKQEAgLTc5MSw3ICs3OTQsNyBAQCBzdGF0aWMgdm9pZCBtZXNvbl92Y2xrX3NldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2LCB1bnNpZ25lZCBpbnQgcGxsX2Jhc2VfZnJlcSwKIAkJfQogCiAJCW1lc29uX2hkbWlfcGxsX3NldF9wYXJhbXMocHJpdiwgbSwgZnJhYywgb2QxLCBvZDIsIG9kMyk7Ci0JfSBlbHNlIGlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1nMTJhLXZwdSIpKSB7CisJfSBlbHNlIGlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HMTJBKSkgewogCQlzd2l0Y2ggKHBsbF9iYXNlX2ZyZXEpIHsKIAkJY2FzZSAyOTcwMDAwOgogCQkJbSA9IDB4N2I7CkBAIC05NjksNyArOTcyLDggQEAgdm9pZCBtZXNvbl92Y2xrX3NldHVwKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIHVuc2lnbmVkIGludCB0YXJnZXQsCiAJCW1lc29uX3ZlbmNpX2N2YnNfY2xvY2tfY29uZmlnKHByaXYpOwogCQlyZXR1cm47CiAJfSBlbHNlIGlmICh0YXJnZXQgPT0gTUVTT05fVkNMS19UQVJHRVRfRE1UKSB7Ci0JCS8qIFRoZSBETVQgY2xvY2sgcGF0aCBpcyBmaXhlZCBhZnRlciB0aGUgUExMOgorCQkvKgorCQkgKiBUaGUgRE1UIGNsb2NrIHBhdGggaXMgZml4ZWQgYWZ0ZXIgdGhlIFBMTDoKIAkJICogLSBhdXRvbWF0aWMgUExMIGZyZXEgKyBPRCBtYW5hZ2VtZW50CiAJCSAqIC0gdmlkX3BsbF9kaXYgPSBWSURfUExMX0RJVl81CiAJCSAqIC0gdmNsa19kaXYgPSAyCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmNsay5oIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZjbGsuaAppbmRleCBlZDk5M2QyLi5iNjIxMjU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmNsay5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92Y2xrLmgKQEAgLTksNiArOSwxMCBAQAogI2lmbmRlZiBfX01FU09OX1ZDTEtfSAogI2RlZmluZSBfX01FU09OX1ZDTEtfSAogCisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgorCitzdHJ1Y3QgbWVzb25fZHJtOworCiBlbnVtIHsKIAlNRVNPTl9WQ0xLX1RBUkdFVF9DVkJTID0gMCwKIAlNRVNPTl9WQ0xLX1RBUkdFVF9IRE1JID0gMSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92ZW5jLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmVuYy5jCmluZGV4IDdiN2EwZDguLjRlZmQ3ODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92ZW5jLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZlbmMuYwpAQCAtNSwxNCArNSwxNCBAQAogICogQ29weXJpZ2h0IChDKSAyMDE1IEFtbG9naWMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqLwogCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KKwogI2luY2x1ZGUgIm1lc29uX2Rydi5oIgorI2luY2x1ZGUgIm1lc29uX3JlZ2lzdGVycy5oIgogI2luY2x1ZGUgIm1lc29uX3ZlbmMuaCIKICNpbmNsdWRlICJtZXNvbl92cHAuaCIKLSNpbmNsdWRlICJtZXNvbl92Y2xrLmgiCi0jaW5jbHVkZSAibWVzb25fcmVnaXN0ZXJzLmgiCiAKIC8qKgogICogRE9DOiBWaWRlbyBFbmNvZGVyCkBAIC02MSw5ICs2MSw5IEBACiAvKiBISEkgUmVnaXN0ZXJzICovCiAjZGVmaW5lIEhISV9HQ0xLX01QRUcyCQkweDE0OCAvKiAweDUyIG9mZnNldCBpbiBkYXRhIHNoZWV0ICovCiAjZGVmaW5lIEhISV9WREFDX0NOVEwwCQkweDJGNCAvKiAweGJkIG9mZnNldCBpbiBkYXRhIHNoZWV0ICovCi0jZGVmaW5lIEhISV9WREFDX0NOVEwwX0cxMkEJMHgyRUMgLyogMHhiZCBvZmZzZXQgaW4gZGF0YSBzaGVldCAqLworI2RlZmluZSBISElfVkRBQ19DTlRMMF9HMTJBCTB4MkVDIC8qIDB4YmIgb2Zmc2V0IGluIGRhdGEgc2hlZXQgKi8KICNkZWZpbmUgSEhJX1ZEQUNfQ05UTDEJCTB4MkY4IC8qIDB4YmUgb2Zmc2V0IGluIGRhdGEgc2hlZXQgKi8KLSNkZWZpbmUgSEhJX1ZEQUNfQ05UTDFfRzEyQQkweDJGMCAvKiAweGJlIG9mZnNldCBpbiBkYXRhIHNoZWV0ICovCisjZGVmaW5lIEhISV9WREFDX0NOVEwxX0cxMkEJMHgyRjAgLyogMHhiYyBvZmZzZXQgaW4gZGF0YSBzaGVldCAqLwogI2RlZmluZSBISElfSERNSV9QSFlfQ05UTDAJMHgzYTAgLyogMHhlOCBvZmZzZXQgaW4gZGF0YSBzaGVldCAqLwogCiBzdHJ1Y3QgbWVzb25fY3Zic19lbmNpX21vZGUgbWVzb25fY3Zic19lbmNpX3BhbCA9IHsKQEAgLTE5Miw3ICsxOTIsNyBAQCB1bmlvbiBtZXNvbl9oZG1pX3ZlbmNfbW9kZSBtZXNvbl9oZG1pX2VuY2lfbW9kZV80ODBpID0gewogCQkuaHNvX2VuZCA9IDEyOSwKIAkJLnZzb19ldmVuID0gMywKIAkJLnZzb19vZGQgPSAyNjAsCi0JCS5tYWN2X21heF9hbXAgPSAweDgxMGIsCisJCS5tYWN2X21heF9hbXAgPSAweGIsCiAJCS52aWRlb19wcm9nX21vZGUgPSAweGYwLAogCQkudmlkZW9fbW9kZSA9IDB4OCwKIAkJLnNjaF9hZGp1c3QgPSAweDIwLApAQCAtMjEyLDcgKzIxMiw3IEBAIHVuaW9uIG1lc29uX2hkbWlfdmVuY19tb2RlIG1lc29uX2hkbWlfZW5jaV9tb2RlXzU3NmkgPSB7CiAJCS5oc29fZW5kID0gMTI5LAogCQkudnNvX2V2ZW4gPSAzLAogCQkudnNvX29kZCA9IDI2MCwKLQkJLm1hY3ZfbWF4X2FtcCA9IDgxMDcsCisJCS5tYWN2X21heF9hbXAgPSAweDcsCiAJCS52aWRlb19wcm9nX21vZGUgPSAweGZmLAogCQkudmlkZW9fbW9kZSA9IDB4MTMsCiAJCS5zY2hfYWRqdXN0ID0gMHgyOCwKQEAgLTk3Niw2ICs5NzYsNyBAQCB2b2lkIG1lc29uX3ZlbmNfaGRtaV9tb2RlX3NldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2LCBpbnQgdmljLAogCXVuc2lnbmVkIGludCBlb2ZfbGluZXM7CiAJdW5zaWduZWQgaW50IHNvZl9saW5lczsKIAl1bnNpZ25lZCBpbnQgdnN5bmNfbGluZXM7CisJdTMyIHJlZzsKIAogCS8qIFVzZSBWRU5DSSBmb3IgNDgwaSBhbmQgNTc2aSBhbmQgZG91YmxlIEhETUkgcGl4ZWxzICovCiAJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxDTEspIHsKQEAgLTEwNDgsOCArMTA0OSwxMSBAQCB2b2lkIG1lc29uX3ZlbmNfaGRtaV9tb2RlX3NldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2LCBpbnQgdmljLAogCQl1bnNpZ25lZCBpbnQgbGluZXNfZjE7CiAKIAkJLyogQ1ZCUyBGaWx0ZXIgc2V0dGluZ3MgKi8KLQkJd3JpdGVsX3JlbGF4ZWQoMHgxMiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9DVFJMKSk7Ci0JCXdyaXRlbF9yZWxheGVkKDB4MTIsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfQ0ZJTFRfQ1RSTDIpKTsKKwkJd3JpdGVsX3JlbGF4ZWQoRU5DSV9DRklMVF9DTVBUX1NFTF9ISUdIIHwgMHgxMCwKKwkJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwpKTsKKwkJd3JpdGVsX3JlbGF4ZWQoRU5DSV9DRklMVF9DTVBUX0NSX0RMWSgyKSB8CisJCQkgICAgICAgRU5DSV9DRklMVF9DTVBUX0NCX0RMWSgxKSwKKwkJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwyKSk7CiAKIAkJLyogRGlnaXRhbCBWaWRlbyBTZWxlY3QgOiBJbnRlcmxhY2UsIGNsazI3IGNsaywgZXh0ZXJuYWwgKi8KIAkJd3JpdGVsX3JlbGF4ZWQoMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19EVklfU0VUVElORykpOwpAQCAtMTA3MSw4ICsxMDc1LDkgQEAgdm9pZCBtZXNvbl92ZW5jX2hkbWlfbW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgaW50IHZpYywKIAkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1NZTkNfVlNPX09ERExOKSk7CiAKIAkJLyogTWFjcm92aXNpb24gbWF4IGFtcGxpdHVkZSBjaGFuZ2UgKi8KLQkJd3JpdGVsX3JlbGF4ZWQodm1vZGUtPmVuY2kubWFjdl9tYXhfYW1wLAotCQkJCXByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfTUFDVl9NQVhfQU1QKSk7CisJCXdyaXRlbF9yZWxheGVkKEVOQ0lfTUFDVl9NQVhfQU1QX0VOQUJMRV9DSEFOR0UgfAorCQkJICAgICAgIEVOQ0lfTUFDVl9NQVhfQU1QX1ZBTCh2bW9kZS0+ZW5jaS5tYWN2X21heF9hbXApLAorCQkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfTUFDVl9NQVhfQU1QKSk7CiAKIAkJLyogVmlkZW8gbW9kZSAqLwogCQl3cml0ZWxfcmVsYXhlZCh2bW9kZS0+ZW5jaS52aWRlb19wcm9nX21vZGUsCkBAIC0xMDgwLDcgKzEwODUsOCBAQCB2b2lkIG1lc29uX3ZlbmNfaGRtaV9tb2RlX3NldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2LCBpbnQgdmljLAogCQl3cml0ZWxfcmVsYXhlZCh2bW9kZS0+ZW5jaS52aWRlb19tb2RlLAogCQkJCXByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVklERU9fTU9ERSkpOwogCi0JCS8qIEFkdmFuY2VkIFZpZGVvIE1vZGUgOgorCQkvKgorCQkgKiBBZHZhbmNlZCBWaWRlbyBNb2RlIDoKIAkJICogRGVtdXggc2hpZnRpbmcgMHgyCiAJCSAqIEJsYW5rIGxpbmUgZW5kIGF0IGxpbmUxNy8yMgogCQkgKiBIaWdoIGJhbmR3aWR0aCBMdW1hIEZpbHRlcgpAQCAtMTA4OCw3ICsxMDk0LDEwIEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCSAqIEJ5cGFzcyBsdW1hIGxvdyBwYXNzIGZpbHRlcgogCQkgKiBObyBtYWNyb3Zpc2lvbiBvbiBDU1lOQwogCQkgKi8KLQkJd3JpdGVsX3JlbGF4ZWQoMHgyNiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9WSURFT19NT0RFX0FEVikpOworCQl3cml0ZWxfcmVsYXhlZChFTkNJX1ZJREVPX01PREVfQURWX0RNWE1EKDIpIHwKKwkJCSAgICAgICBFTkNJX1ZJREVPX01PREVfQURWX1ZCSUNUTF9MSU5FXzE3XzIyIHwKKwkJCSAgICAgICBFTkNJX1ZJREVPX01PREVfQURWX1lCV19ISUdILAorCQkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVklERU9fTU9ERV9BRFYpKTsKIAogCQl3cml0ZWwodm1vZGUtPmVuY2kuc2NoX2FkanVzdCwKIAkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX1NDSCkpOwpAQCAtMTEwNCw4ICsxMTEzLDE3IEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCS8qIFVOcmVzZXQgSW50ZXJsYWNlZCBUViBFbmNvZGVyICovCiAJCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfREJHX1BYX1JTVCkpOwogCi0JCS8qIEVuYWJsZSBWZmlmbzJ2ZCwgWV9DYl9ZX0NyIHNlbGVjdCAqLwotCQl3cml0ZWxfcmVsYXhlZCgweDRlMDEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVkZJRk8yVkRfQ1RMKSk7CisJCS8qCisJCSAqIEVuYWJsZSBWZmlmbzJ2ZCBhbmQgc2V0IFlfQ2JfWV9DcjoKKwkJICogQ29ycmVzcG9uZGluZyB2YWx1ZToKKwkJICogWSAgPT4gMDAgb3IgMTAKKwkJICogQ2IgPT4gMDEKKwkJICogQ3IgPT4gMTEKKwkJICogRXg6IDB4NGUgPT4gMDEwMDExMTAgd291bGQgbWVhbiBDYi9ZL0NyL1kKKwkJICovCisJCXdyaXRlbF9yZWxheGVkKEVOQ0lfVkZJRk8yVkRfQ1RMX0VOQUJMRSB8CisJCQkgICAgICAgRU5DSV9WRklGTzJWRF9DVExfVkRfU0VMKDB4NGUpLAorCQkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVkZJRk8yVkRfQ1RMKSk7CiAKIAkJLyogVGltaW5ncyAqLwogCQl3cml0ZWxfcmVsYXhlZCh2bW9kZS0+ZW5jaS5waXhlbF9zdGFydCwKQEAgLTExMjcsNyArMTE0NSw4IEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCW1lc29uX3ZwcF9zZXR1cF9tdXgocHJpdiwgTUVTT05fVklVX1ZQUF9NVVhfRU5DSSk7CiAKIAkJLyogSW50ZXJsYWNlIHZpZGVvIGVuYWJsZSAqLwotCQl3cml0ZWxfcmVsYXhlZCgxLCBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX0VOKSk7CisJCXdyaXRlbF9yZWxheGVkKEVOQ0lfVklERU9fRU5fRU5BQkxFLAorCQkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVklERU9fRU4pKTsKIAogCQlsaW5lc19mMCA9IG1vZGUtPnZ0b3RhbCA+PiAxOwogCQlsaW5lc19mMSA9IGxpbmVzX2YwICsgMTsKQEAgLTEzNzQsNyArMTM5Myw4IEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCXdyaXRlbF9yZWxheGVkKDEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ1BfVklERU9fRU4pKTsKIAogCQkvKiBTZXQgREUgc2lnbmFs4oCZcyBwb2xhcml0eSBpcyBhY3RpdmUgaGlnaCAqLwotCQl3cml0ZWxfYml0c19yZWxheGVkKEJJVCgxNCksIEJJVCgxNCksCisJCXdyaXRlbF9iaXRzX3JlbGF4ZWQoRU5DUF9WSURFT19NT0RFX0RFX1ZfSElHSCwKKwkJCQkgICAgRU5DUF9WSURFT19NT0RFX0RFX1ZfSElHSCwKIAkJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DUF9WSURFT19NT0RFKSk7CiAKIAkJLyogUHJvZ3JhbSBERSB0aW1pbmcgKi8KQEAgLTE0OTMsMTMgKzE1MTMsMzkgQEAgdm9pZCBtZXNvbl92ZW5jX2hkbWlfbW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgaW50IHZpYywKIAkJbWVzb25fdnBwX3NldHVwX211eChwcml2LCBNRVNPTl9WSVVfVlBQX01VWF9FTkNQKTsKIAl9CiAKLQl3cml0ZWxfcmVsYXhlZCgodXNlX2VuY2kgPyAxIDogMikgfAotCQkgICAgICAgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19QSFNZTkMgPyAxIDw8IDIgOiAwKSB8Ci0JCSAgICAgICAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQyA/IDEgPDwgMyA6IDApIHwKLQkJICAgICAgIDQgPDwgNSB8Ci0JCSAgICAgICAodmVuY19yZXBlYXQgPyAxIDw8IDggOiAwKSB8Ci0JCSAgICAgICAoaGRtaV9yZXBlYXQgPyAxIDw8IDEyIDogMCksCi0JCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfSERNSV9TRVRUSU5HKSk7CisJLyogU2V0IFZQVSBIRE1JIHNldHRpbmcgKi8KKwkvKiBTZWxlY3QgRU5DUCBvciBFTkNJIGRhdGEgdG8gSERNSSAqLworCWlmICh1c2VfZW5jaSkKKwkJcmVnID0gVlBVX0hETUlfRU5DSV9EQVRBX1RPX0hETUk7CisJZWxzZQorCQlyZWcgPSBWUFVfSERNSV9FTkNQX0RBVEFfVE9fSERNSTsKKworCS8qIEludmVydCBwb2xhcml0eSBvZiBIU1lOQyBmcm9tIFZFTkMgKi8KKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BIU1lOQykKKwkJcmVnIHw9IFZQVV9IRE1JX0lOVl9IU1lOQzsKKworCS8qIEludmVydCBwb2xhcml0eSBvZiBWU1lOQyBmcm9tIFZFTkMgKi8KKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQykKKwkJcmVnIHw9IFZQVV9IRE1JX0lOVl9WU1lOQzsKKworCS8qIE91dHB1dCBkYXRhIGZvcm1hdDogQ2JZQ3IgKi8KKwlyZWcgfD0gVlBVX0hETUlfT1VUUFVUX0NCWUNSOworCisJLyoKKwkgKiBXcml0ZSByYXRlIHRvIHRoZSBhc3luYyBGSUZPIGJldHdlZW4gVkVOQyBhbmQgSERNSS4KKwkgKiBPbmUgd3JpdGUgZXZlcnkgMiB3cl9jbGsuCisJICovCisJaWYgKHZlbmNfcmVwZWF0KQorCQlyZWcgfD0gVlBVX0hETUlfV1JfUkFURSgyKTsKKworCS8qCisJICogUmVhZCByYXRlIHRvIHRoZSBhc3luYyBGSUZPIGJldHdlZW4gVkVOQyBhbmQgSERNSS4KKwkgKiBPbmUgcmVhZCBldmVyeSAyIHdyX2Nsay4KKwkgKi8KKwlpZiAoaGRtaV9yZXBlYXQpCisJCXJlZyB8PSBWUFVfSERNSV9SRF9SQVRFKDIpOworCisJd3JpdGVsX3JlbGF4ZWQocmVnLCBwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfSERNSV9TRVRUSU5HKSk7CiAKIAlwcml2LT52ZW5jLmhkbWlfcmVwZWF0ID0gaGRtaV9yZXBlYXQ7CiAJcHJpdi0+dmVuYy52ZW5jX3JlcGVhdCA9IHZlbmNfcmVwZWF0OwpAQCAtMTUxMiwxMiArMTU1OCwxNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChtZXNvbl92ZW5jX2hkbWlfbW9kZV9zZXQpOwogdm9pZCBtZXNvbl92ZW5jaV9jdmJzX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsCiAJCQkgICAgICAgc3RydWN0IG1lc29uX2N2YnNfZW5jaV9tb2RlICptb2RlKQogeworCXUzMiByZWc7CisKIAlpZiAobW9kZS0+bW9kZV90YWcgPT0gcHJpdi0+dmVuYy5jdXJyZW50X21vZGUpCiAJCXJldHVybjsKIAogCS8qIENWQlMgRmlsdGVyIHNldHRpbmdzICovCi0Jd3JpdGVsX3JlbGF4ZWQoMHgxMiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9DVFJMKSk7Ci0Jd3JpdGVsX3JlbGF4ZWQoMHgxMiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9DVFJMMikpOworCXdyaXRlbF9yZWxheGVkKEVOQ0lfQ0ZJTFRfQ01QVF9TRUxfSElHSCB8IDB4MTAsCisJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwpKTsKKwl3cml0ZWxfcmVsYXhlZChFTkNJX0NGSUxUX0NNUFRfQ1JfRExZKDIpIHwKKwkJICAgICAgIEVOQ0lfQ0ZJTFRfQ01QVF9DQl9ETFkoMSksCisJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwyKSk7CiAKIAkvKiBEaWdpdGFsIFZpZGVvIFNlbGVjdCA6IEludGVybGFjZSwgY2xrMjcgY2xrLCBleHRlcm5hbCAqLwogCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfRFZJX1NFVFRJTkcpKTsKQEAgLTE1MzksOCArMTU5MCw5IEBAIHZvaWQgbWVzb25fdmVuY2lfY3Zic19tb2RlX3NldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2LAogCQkJcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9TWU5DX1ZTT19PRERMTikpOwogCiAJLyogTWFjcm92aXNpb24gbWF4IGFtcGxpdHVkZSBjaGFuZ2UgKi8KLQl3cml0ZWxfcmVsYXhlZCgweDgxMDAgKyBtb2RlLT5tYWN2X21heF9hbXAsCi0JCQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FNUCkpOworCXdyaXRlbF9yZWxheGVkKEVOQ0lfTUFDVl9NQVhfQU1QX0VOQUJMRV9DSEFOR0UgfAorCQkgICAgICAgRU5DSV9NQUNWX01BWF9BTVBfVkFMKG1vZGUtPm1hY3ZfbWF4X2FtcCksCisJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FNUCkpOwogCiAJLyogVmlkZW8gbW9kZSAqLwogCXdyaXRlbF9yZWxheGVkKG1vZGUtPnZpZGVvX3Byb2dfbW9kZSwKQEAgLTE1NDgsNyArMTYwMCw4IEBAIHZvaWQgbWVzb25fdmVuY2lfY3Zic19tb2RlX3NldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2LAogCXdyaXRlbF9yZWxheGVkKG1vZGUtPnZpZGVvX21vZGUsCiAJCQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX01PREUpKTsKIAotCS8qIEFkdmFuY2VkIFZpZGVvIE1vZGUgOgorCS8qCisJICogQWR2YW5jZWQgVmlkZW8gTW9kZSA6CiAJICogRGVtdXggc2hpZnRpbmcgMHgyCiAJICogQmxhbmsgbGluZSBlbmQgYXQgbGluZTE3LzIyCiAJICogSGlnaCBiYW5kd2lkdGggTHVtYSBGaWx0ZXIKQEAgLTE1NTYsNyArMTYwOSwxMCBAQCB2b2lkIG1lc29uX3ZlbmNpX2N2YnNfbW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwKIAkgKiBCeXBhc3MgbHVtYSBsb3cgcGFzcyBmaWx0ZXIKIAkgKiBObyBtYWNyb3Zpc2lvbiBvbiBDU1lOQwogCSAqLwotCXdyaXRlbF9yZWxheGVkKDB4MjYsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVklERU9fTU9ERV9BRFYpKTsKKwl3cml0ZWxfcmVsYXhlZChFTkNJX1ZJREVPX01PREVfQURWX0RNWE1EKDIpIHwKKwkJICAgICAgIEVOQ0lfVklERU9fTU9ERV9BRFZfVkJJQ1RMX0xJTkVfMTdfMjIgfAorCQkgICAgICAgRU5DSV9WSURFT19NT0RFX0FEVl9ZQldfSElHSCwKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVklERU9fTU9ERV9BRFYpKTsKIAogCXdyaXRlbChtb2RlLT5zY2hfYWRqdXN0LCBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX1NDSCkpOwogCkBAIC0xNTg4LDE2ICsxNjQ0LDUwIEBAIHZvaWQgbWVzb25fdmVuY2lfY3Zic19tb2RlX3NldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2LAogCS8qIFVOcmVzZXQgSW50ZXJsYWNlZCBUViBFbmNvZGVyICovCiAJd3JpdGVsX3JlbGF4ZWQoMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9EQkdfUFhfUlNUKSk7CiAKLQkvKiBFbmFibGUgVmZpZm8ydmQsIFlfQ2JfWV9DciBzZWxlY3QgKi8KLQl3cml0ZWxfcmVsYXhlZCgweDRlMDEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVkZJRk8yVkRfQ1RMKSk7CisJLyoKKwkgKiBFbmFibGUgVmZpZm8ydmQgYW5kIHNldCBZX0NiX1lfQ3I6CisJICogQ29ycmVzcG9uZGluZyB2YWx1ZToKKwkgKiBZICA9PiAwMCBvciAxMAorCSAqIENiID0+IDAxCisJICogQ3IgPT4gMTEKKwkgKiBFeDogMHg0ZSA9PiAwMTAwMTExMCB3b3VsZCBtZWFuIENiL1kvQ3IvWQorCSAqLworCXdyaXRlbF9yZWxheGVkKEVOQ0lfVkZJRk8yVkRfQ1RMX0VOQUJMRSB8CisJCSAgICAgICBFTkNJX1ZGSUZPMlZEX0NUTF9WRF9TRUwoMHg0ZSksCisJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZGSUZPMlZEX0NUTCkpOwogCiAJLyogUG93ZXIgVVAgRGFjcyAqLwogCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVkRBQ19TRVRUSU5HKSk7CiAKIAkvKiBWaWRlbyBVcHNhbXBsaW5nICovCi0Jd3JpdGVsX3JlbGF4ZWQoMHgwMDYxLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1VQU0FNUExFX0NUUkwwKSk7Ci0Jd3JpdGVsX3JlbGF4ZWQoMHg0MDYxLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1VQU0FNUExFX0NUUkwxKSk7Ci0Jd3JpdGVsX3JlbGF4ZWQoMHg1MDYxLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1VQU0FNUExFX0NUUkwyKSk7CisJLyoKKwkgKiBDVFJMMCwgQ1RSTDEgYW5kIENUUkwyOgorCSAqIEZpbHRlcjA6IGlucHV0IGRhdGEgc2FtcGxlIGV2ZXJ5IDIgY2xva3MKKwkgKiBGaWx0ZXIxOiBmaWx0ZXJpbmcgYW5kIHVwc2FtcGxlIGVuYWJsZQorCSAqLworCXJlZyA9IFZFTkNfVVBTQU1QTEVfQ1RSTF9GMF8yX0NMS19SQVRJTyB8IFZFTkNfVVBTQU1QTEVfQ1RSTF9GMV9FTiB8CisJCVZFTkNfVVBTQU1QTEVfQ1RSTF9GMV9VUFNBTVBMRV9FTjsKKworCS8qCisJICogVXBzYW1wbGUgQ1RSTDA6CisJICogSW50ZXJsYWNlIEhpZ2ggQmFuZHdpZHRoIEx1bWEKKwkgKi8KKwl3cml0ZWxfcmVsYXhlZChWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNFX0hJR0hfTFVNQSB8IHJlZywKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVVBTQU1QTEVfQ1RSTDApKTsKKworCS8qCisJICogVXBzYW1wbGUgQ1RSTDE6CisJICogSW50ZXJsYWNlIFBiCisJICovCisJd3JpdGVsX3JlbGF4ZWQoVkVOQ19VUFNBTVBMRV9DVFJMX0lOVEVSTEFDRV9QQiB8IHJlZywKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVVBTQU1QTEVfQ1RSTDEpKTsKKworCS8qCisJICogVXBzYW1wbGUgQ1RSTDI6CisJICogSW50ZXJsYWNlIFIKKwkgKi8KKwl3cml0ZWxfcmVsYXhlZChWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNFX1BSIHwgcmVnLAorCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19VUFNBTVBMRV9DVFJMMikpOwogCiAJLyogU2VsZWN0IEludGVybGFjZSBZIERBQ3MgKi8KIAl3cml0ZWxfcmVsYXhlZCgwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1ZEQUNfREFDU0VMMCkpOwpAQCAtMTYxMSwxNCArMTcwMSwxNiBAQCB2b2lkIG1lc29uX3ZlbmNpX2N2YnNfbW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwKIAltZXNvbl92cHBfc2V0dXBfbXV4KHByaXYsIE1FU09OX1ZJVV9WUFBfTVVYX0VOQ0kpOwogCiAJLyogRW5hYmxlIEVOQ0kgRklGTyAqLwotCXdyaXRlbF9yZWxheGVkKDB4MjAwMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19WREFDX0ZJRk9fQ1RSTCkpOworCXdyaXRlbF9yZWxheGVkKFZFTkNfVkRBQ19GSUZPX0VOX0VOQ0lfRU5BQkxFLAorCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19WREFDX0ZJRk9fQ1RSTCkpOwogCiAJLyogU2VsZWN0IEVOQ0kgREFDcyAwLCAxLCA0LCBhbmQgNSAqLwogCXdyaXRlbF9yZWxheGVkKDB4MTEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfREFDU0VMXzApKTsKIAl3cml0ZWxfcmVsYXhlZCgweDExLCBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0RBQ1NFTF8xKSk7CiAKIAkvKiBJbnRlcmxhY2UgdmlkZW8gZW5hYmxlICovCi0Jd3JpdGVsX3JlbGF4ZWQoMSwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9WSURFT19FTikpOworCXdyaXRlbF9yZWxheGVkKEVOQ0lfVklERU9fRU5fRU5BQkxFLAorCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9WSURFT19FTikpOwogCiAJLyogQ29uZmlndXJlIFZpZGVvIFNhdHVyYXRpb24gLyBDb250cmFzdCAvIEJyaWdodG5lc3MgLyBIdWUgKi8KIAl3cml0ZWxfcmVsYXhlZChtb2RlLT52aWRlb19zYXR1cmF0aW9uLApAQCAtMTYzMSw3ICsxNzIzLDggQEAgdm9pZCBtZXNvbl92ZW5jaV9jdmJzX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsCiAJCQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX0hVRSkpOwogCiAJLyogRW5hYmxlIERBQzAgRmlsdGVyICovCi0Jd3JpdGVsX3JlbGF4ZWQoMHgxLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1ZEQUNfREFDMF9GSUxUX0NUUkwwKSk7CisJd3JpdGVsX3JlbGF4ZWQoVkVOQ19WREFDX0RBQzBfRklMVF9DVFJMMF9FTiwKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVkRBQ19EQUMwX0ZJTFRfQ1RSTDApKTsKIAl3cml0ZWxfcmVsYXhlZCgweGZjNDgsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVkRBQ19EQUMwX0ZJTFRfQ1RSTDEpKTsKIAogCS8qIDAgaW4gTWFjcm92aXNpb24gcmVnaXN0ZXIgMCAqLwpAQCAtMTY1Miw3ICsxNzQ1LDggQEAgdW5zaWduZWQgaW50IG1lc29uX3ZlbmNpX2dldF9maWVsZChzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogCiB2b2lkIG1lc29uX3ZlbmNfZW5hYmxlX3ZzeW5jKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiB7Ci0Jd3JpdGVsX3JlbGF4ZWQoMiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19JTlRDVFJMKSk7CisJd3JpdGVsX3JlbGF4ZWQoVkVOQ19JTlRDVFJMX0VOQ0lfTE5SU1RfSU5UX0VOLAorCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19JTlRDVFJMKSk7CiAJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPmhoaSwgSEhJX0dDTEtfTVBFRzIsIEJJVCgyNSksIEJJVCgyNSkpOwogfQogCkBAIC0xNjY1LDcgKzE3NTksNyBAQCB2b2lkIG1lc29uX3ZlbmNfZGlzYWJsZV92c3luYyhzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogdm9pZCBtZXNvbl92ZW5jX2luaXQoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIHsKIAkvKiBEaXNhYmxlIENWQlMgVkRBQyAqLwotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1nMTJhLXZwdSIpKSB7CisJaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0cxMkEpKSB7CiAJCXJlZ21hcF93cml0ZShwcml2LT5oaGksIEhISV9WREFDX0NOVEwwX0cxMkEsIDApOwogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfVkRBQ19DTlRMMV9HMTJBLCA4KTsKIAl9IGVsc2UgewpAQCAtMTY4MCw3ICsxNzc0LDggQEAgdm9pZCBtZXNvbl92ZW5jX2luaXQoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIAlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfSERNSV9QSFlfQ05UTDAsIDApOwogCiAJLyogRGlzYWJsZSBIRE1JICovCi0Jd3JpdGVsX2JpdHNfcmVsYXhlZCgweDMsIDAsCisJd3JpdGVsX2JpdHNfcmVsYXhlZChWUFVfSERNSV9FTkNJX0RBVEFfVE9fSERNSSB8CisJCQkgICAgVlBVX0hETUlfRU5DUF9EQVRBX1RPX0hETUksIDAsCiAJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBVX0hETUlfU0VUVElORykpOwogCiAJLyogRGlzYWJsZSBhbGwgZW5jb2RlcnMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92ZW5jLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmVuYy5oCmluZGV4IDk4NTY0MmEuLjU3Njc2OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92ZW5jLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZlbmMuaApAQCAtMTQsNiArMTQsOCBAQAogI2lmbmRlZiBfX01FU09OX1ZFTkNfSAogI2RlZmluZSBfX01FU09OX1ZFTkNfSAogCitzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZTsKKwogZW51bSB7CiAJTUVTT05fVkVOQ19NT0RFX05PTkUgPSAwLAogCU1FU09OX1ZFTkNfTU9ERV9DVkJTX1BBTCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92ZW5jX2N2YnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92ZW5jX2N2YnMuYwppbmRleCA2MzEzYTUxLi45YWIyN2FlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmVuY19jdmJzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZlbmNfY3Zicy5jCkBAIC05LDE5ICs5LDE4IEBACiAgKiAgICAgSmFzcGVyIFN0LiBQaWVycmUgPGpzdHBpZXJyZUBtZWNoZXllLm5ldD4KICAqLwogCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIAotI2luY2x1ZGUgIm1lc29uX3ZlbmNfY3Zicy5oIgotI2luY2x1ZGUgIm1lc29uX3ZlbmMuaCIKLSNpbmNsdWRlICJtZXNvbl92Y2xrLmgiCiAjaW5jbHVkZSAibWVzb25fcmVnaXN0ZXJzLmgiCisjaW5jbHVkZSAibWVzb25fdmNsay5oIgorI2luY2x1ZGUgIm1lc29uX3ZlbmNfY3Zicy5oIgogCiAvKiBISEkgVkRBQyBSZWdpc3RlcnMgKi8KICNkZWZpbmUgSEhJX1ZEQUNfQ05UTDAJCTB4MkY0IC8qIDB4YmQgb2Zmc2V0IGluIGRhdGEgc2hlZXQgKi8KQEAgLTE1Niw3ICsxNTUsNyBAQCBzdGF0aWMgdm9pZCBtZXNvbl92ZW5jX2N2YnNfZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAlzdHJ1Y3QgbWVzb25fZHJtICpwcml2ID0gbWVzb25fdmVuY19jdmJzLT5wcml2OwogCiAJLyogRGlzYWJsZSBDVkJTIFZEQUMgKi8KLQlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZzEyYS12cHUiKSkgeworCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HMTJBKSkgewogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfVkRBQ19DTlRMMF9HMTJBLCAwKTsKIAkJcmVnbWFwX3dyaXRlKHByaXYtPmhoaSwgSEhJX1ZEQUNfQ05UTDFfRzEyQSwgMCk7CiAJfSBlbHNlIHsKQEAgLTE3MiwxNiArMTcxLDE3IEBAIHN0YXRpYyB2b2lkIG1lc29uX3ZlbmNfY3Zic19lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJc3RydWN0IG1lc29uX2RybSAqcHJpdiA9IG1lc29uX3ZlbmNfY3Zicy0+cHJpdjsKIAogCS8qIFZEQUMwIHNvdXJjZSBpcyBub3QgZnJvbSBBVFYgKi8KLQl3cml0ZWxfYml0c19yZWxheGVkKEJJVCg1KSwgMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19WREFDX0RBQ1NFTDApKTsKKwl3cml0ZWxfYml0c19yZWxheGVkKFZFTkNfVkRBQ19TRUxfQVRWX0RNRCwgMCwKKwkJCSAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1ZEQUNfREFDU0VMMCkpOwogCi0JaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4YmItdnB1IikpIHsKKwlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hCQikpIHsKIAkJcmVnbWFwX3dyaXRlKHByaXYtPmhoaSwgSEhJX1ZEQUNfQ05UTDAsIDEpOwogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfVkRBQ19DTlRMMSwgMCk7Ci0JfSBlbHNlIGlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neG0tdnB1IikgfHwKLQkJIG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4bC12cHUiKSkgeworCX0gZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hNKSB8fAorCQkgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hMKSkgewogCQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfVkRBQ19DTlRMMCwgMHhmMDAwMSk7CiAJCXJlZ21hcF93cml0ZShwcml2LT5oaGksIEhISV9WREFDX0NOVEwxLCAwKTsKLQl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWcxMmEtdnB1IikpIHsKKwl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0cxMkEpKSB7CiAJCXJlZ21hcF93cml0ZShwcml2LT5oaGksIEhISV9WREFDX0NOVEwwX0cxMkEsIDB4OTA2MDAxKTsKIAkJcmVnbWFwX3dyaXRlKHByaXYtPmhoaSwgSEhJX1ZEQUNfQ05UTDFfRzEyQSwgMCk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZpdS5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZpdS5jCmluZGV4IDRiMmIzMDIuLjY4Y2YyYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92aXUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdml1LmMKQEAgLTYsMTMgKzYsMTAgQEAKICAqIENvcHlyaWdodCAoQykgMjAxNCBFbmRsZXNzIE1vYmlsZQogICovCiAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgorCiAjaW5jbHVkZSAibWVzb25fZHJ2LmgiCiAjaW5jbHVkZSAibWVzb25fdml1LmgiCi0jaW5jbHVkZSAibWVzb25fdnBwLmgiCi0jaW5jbHVkZSAibWVzb25fdmVuYy5oIgogI2luY2x1ZGUgIm1lc29uX3JlZ2lzdGVycy5oIgogCiAvKioKQEAgLTMyMyw5ICszMjAsOSBAQCB2b2lkIG1lc29uX3ZpdV9vc2QxX3Jlc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiAJCQkJcHJpdi0+aW9fYmFzZSArIF9SRUcoVklVX09TRDFfQ1RSTF9TVEFUMikpOwogCiAJLyogUmVzZXQgT1NEMSAqLwotCXdyaXRlbF9iaXRzX3JlbGF4ZWQoQklUKDApLCBCSVQoMCksCisJd3JpdGVsX2JpdHNfcmVsYXhlZChWSVVfU1dfUkVTRVRfT1NEMSwgVklVX1NXX1JFU0VUX09TRDEsCiAJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVklVX1NXX1JFU0VUKSk7Ci0Jd3JpdGVsX2JpdHNfcmVsYXhlZChCSVQoMCksIDAsCisJd3JpdGVsX2JpdHNfcmVsYXhlZChWSVVfU1dfUkVTRVRfT1NEMSwgMCwKIAkJCSAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWSVVfU1dfUkVTRVQpKTsKIAogCS8qIFJld3JpdGUgdGhlc2UgcmVnaXN0ZXJzIHN0YXRlIGxvc3QgaW4gdGhlIHJlc2V0ICovCkBAIC0zMzgsMzggKzMzNSw0MyBAQCB2b2lkIG1lc29uX3ZpdV9vc2QxX3Jlc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiAJbWVzb25fdml1X2xvYWRfbWF0cml4KHByaXYpOwogfQogCitzdGF0aWMgaW5saW5lIHVpbnQzMl90IG1lc29uX3ZpdV9vc2RfYnVyc3RfbGVuZ3RoX3JlZyh1aW50MzJfdCBsZW5ndGgpCit7CisJdWludDMyX3QgdmFsID0gKCgobGVuZ3RoICYgMHg4MCkgJSAyNCkgLyAxMik7CisKKwlyZXR1cm4gKCgodmFsICYgMHgzKSA8PCAxMCkgfCAoKCh2YWwgJiAweDQpID4+IDIpIDw8IDMxKSk7Cit9CisKIHZvaWQgbWVzb25fdml1X2luaXQoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIHsKIAl1aW50MzJfdCByZWc7CiAKIAkvKiBEaXNhYmxlIE9TRHMgKi8KLQl3cml0ZWxfYml0c19yZWxheGVkKEJJVCgwKSB8IEJJVCgyMSksIDAsCi0JCQlwcml2LT5pb19iYXNlICsgX1JFRyhWSVVfT1NEMV9DVFJMX1NUQVQpKTsKLQl3cml0ZWxfYml0c19yZWxheGVkKEJJVCgwKSB8IEJJVCgyMSksIDAsCi0JCQlwcml2LT5pb19iYXNlICsgX1JFRyhWSVVfT1NEMl9DVFJMX1NUQVQpKTsKKwl3cml0ZWxfYml0c19yZWxheGVkKFZJVV9PU0QxX09TRF9CTEtfRU5BQkxFIHwgVklVX09TRDFfT1NEX0VOQUJMRSwgMCwKKwkJCSAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWSVVfT1NEMV9DVFJMX1NUQVQpKTsKKwl3cml0ZWxfYml0c19yZWxheGVkKFZJVV9PU0QxX09TRF9CTEtfRU5BQkxFIHwgVklVX09TRDFfT1NEX0VOQUJMRSwgMCwKKwkJCSAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWSVVfT1NEMl9DVFJMX1NUQVQpKTsKIAogCS8qIE9uIEdYTC9HWE0sIFVzZSB0aGUgMTBiaXQgSERSIGNvbnZlcnNpb24gbWF0cml4ICovCi0JaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4bS12cHUiKSB8fAotCSAgICBtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neGwtdnB1IikpCisJaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTSkgfHwKKwkgICAgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfR1hMKSkKIAkJbWVzb25fdml1X2xvYWRfbWF0cml4KHByaXYpOwotCWVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWcxMmEtdnB1IikpCisJZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfRzEyQSkpCiAJCW1lc29uX3ZpdV9zZXRfZzEyYV9vc2QxX21hdHJpeChwcml2LCBSR0I3MDlfdG9fWVVWNzA5bF9jb2VmZiwKIAkJCQkJICAgICAgIHRydWUpOwogCiAJLyogSW5pdGlhbGl6ZSBPU0QxIGZpZm8gY29udHJvbCByZWdpc3RlciAqLwotCXJlZyA9IEJJVCgwKSB8CS8qIFVyZ2VudCBERFIgcmVxdWVzdCBwcmlvcml0eSAqLwotCSAgICAgICg0IDw8IDUpOyAvKiBob2xkX2ZpZm9fbGluZXMgKi8KLQlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZzEyYS12cHUiKSkKLQkJcmVnIHw9ICgxIDw8IDEwKSB8IC8qIGJ1cnN0IGxlbmd0aCAzMiAqLwotCQkgICAgICAgKDMyIDw8IDEyKSB8IC8qIGZpZm9fZGVwdGhfdmFsOiAzMio4PTI1NiAqLwotCQkgICAgICAgKDIgPDwgMjIpIHwgLyogNCB3b3JkcyBpbiAxIGJ1cnN0ICovCi0JCSAgICAgICAoMiA8PCAyNCkgfAotCQkgICAgICAgKDEgPDwgMzEpOworCXJlZyA9IFZJVV9PU0RfRERSX1BSSU9SSVRZX1VSR0VOVCB8CisJCVZJVV9PU0RfSE9MRF9GSUZPX0xJTkVTKDQpIHwKKwkJVklVX09TRF9GSUZPX0RFUFRIX1ZBTCgzMikgfCAvKiBmaWZvX2RlcHRoX3ZhbDogMzIqOD0yNTYgKi8KKwkJVklVX09TRF9XT1JEU19QRVJfQlVSU1QoNCkgfCAvKiA0IHdvcmRzIGluIDEgYnVyc3QgKi8KKwkJVklVX09TRF9GSUZPX0xJTUlUUygyKTsgICAgICAvKiBmaWZvX2xpbTogMioxNj0zMiAqLworCisJaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0cxMkEpKQorCQlyZWcgfD0gbWVzb25fdml1X29zZF9idXJzdF9sZW5ndGhfcmVnKDMyKTsKIAllbHNlCi0JCXJlZyB8PSAoMyA8PCAxMCkgfCAvKiBidXJzdCBsZW5ndGggNjQgKi8KLQkJICAgICAgICgzMiA8PCAxMikgfCAvKiBmaWZvX2RlcHRoX3ZhbDogMzIqOD0yNTYgKi8KLQkJICAgICAgICgyIDw8IDIyKSB8IC8qIDQgd29yZHMgaW4gMSBidXJzdCAqLwotCQkgICAgICAgKDIgPDwgMjQpOworCQlyZWcgfD0gbWVzb25fdml1X29zZF9idXJzdF9sZW5ndGhfcmVnKDY0KTsKKwogCXdyaXRlbF9yZWxheGVkKHJlZywgcHJpdi0+aW9fYmFzZSArIF9SRUcoVklVX09TRDFfRklGT19DVFJMX1NUQVQpKTsKIAl3cml0ZWxfcmVsYXhlZChyZWcsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZJVV9PU0QyX0ZJRk9fQ1RSTF9TVEFUKSk7CiAKQEAgLTM4MiwxMiArMzg0LDkgQEAgdm9pZCBtZXNvbl92aXVfaW5pdChzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogCQkJICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZJVV9PU0QyX0NUUkxfU1RBVDIpKTsKIAogCS8qIERpc2FibGUgVkQxIEFGQkMgKi8KLQkvKiBkaV9taWYwX2VuPTAgbWlmMF90b192cHBfZW49MCBkaV9tYWRfZW49MCAqLwotCXdyaXRlbF9iaXRzX3JlbGF4ZWQoMHg3IDw8IDE2LCAwLAotCQkJcHJpdi0+aW9fYmFzZSArIF9SRUcoVklVX01JU0NfQ1RSTDApKTsKLQkvKiBhZmJjIHZkMSBzZXQ9MCAqLwotCXdyaXRlbF9iaXRzX3JlbGF4ZWQoQklUKDIwKSwgMCwKLQkJCXByaXYtPmlvX2Jhc2UgKyBfUkVHKFZJVV9NSVNDX0NUUkwwKSk7CisJLyogZGlfbWlmMF9lbj0wIG1pZjBfdG9fdnBwX2VuPTAgZGlfbWFkX2VuPTAgYW5kIGFmYmMgdmQxIHNldD0wKi8KKwl3cml0ZWxfYml0c19yZWxheGVkKFZJVV9DVFJMMF9WRDFfQUZCQ19NQVNLLCAwLAorCQkJICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZJVV9NSVNDX0NUUkwwKSk7CiAJd3JpdGVsX3JlbGF4ZWQoMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoQUZCQ19FTkFCTEUpKTsKIAogCXdyaXRlbF9yZWxheGVkKDB4MDBGRjAwQzAsCkBAIC0zOTUsMjggKzM5NCwzMiBAQCB2b2lkIG1lc29uX3ZpdV9pbml0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiAJd3JpdGVsX3JlbGF4ZWQoMHgwMEZGMDBDMCwKIAkJCXByaXYtPmlvX2Jhc2UgKyBfUkVHKFZEMl9JRjBfTFVNQV9GSUZPX1NJWkUpKTsKIAotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1nMTJhLXZwdSIpKSB7Ci0JCXdyaXRlbF9yZWxheGVkKDQgPDwgMjkgfAotCQkJCTEgPDwgMjcgfAotCQkJCTEgPDwgMjYgfCAvKiBibGVuZF9kaW4wIGlucHV0IHRvIGJsZW5kMCAqLwotCQkJCTEgPDwgMjUgfCAvKiBibGVuZDFfZG91dCB0byBibGVuZDIgKi8KLQkJCQkxIDw8IDI0IHwgLyogYmxlbmQxX2RpbjMgaW5wdXQgdG8gYmxlbmQxICovCi0JCQkJMSA8PCAyMCB8Ci0JCQkJMCA8PCAxNiB8Ci0JCQkJMSwKLQkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhWSVVfT1NEX0JMRU5EX0NUUkwpKTsKLQkJd3JpdGVsX3JlbGF4ZWQoMSA8PCAyMCwKLQkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhPU0QxX0JMRU5EX1NSQ19DVFJMKSk7Ci0JCXdyaXRlbF9yZWxheGVkKDEgPDwgMjAsCi0JCQkJcHJpdi0+aW9fYmFzZSArIF9SRUcoT1NEMl9CTEVORF9TUkNfQ1RSTCkpOworCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HMTJBKSkgeworCQl3cml0ZWxfcmVsYXhlZChWSVVfT1NEX0JMRU5EX1JFT1JERVIoMCwgMSkgfAorCQkJICAgICAgIFZJVV9PU0RfQkxFTkRfUkVPUkRFUigxLCAwKSB8CisJCQkgICAgICAgVklVX09TRF9CTEVORF9SRU9SREVSKDIsIDApIHwKKwkJCSAgICAgICBWSVVfT1NEX0JMRU5EX1JFT1JERVIoMywgMCkgfAorCQkJICAgICAgIFZJVV9PU0RfQkxFTkRfRElOX0VOKDEpIHwKKwkJCSAgICAgICBWSVVfT1NEX0JMRU5EMV9ESU4zX0JZUEFTU19UT19ET1VUMSB8CisJCQkgICAgICAgVklVX09TRF9CTEVORDFfRE9VVF9CWVBBU1NfVE9fQkxFTkQyIHwKKwkJCSAgICAgICBWSVVfT1NEX0JMRU5EX0RJTjBfQllQQVNTX1RPX0RPVVQwIHwKKwkJCSAgICAgICBWSVVfT1NEX0JMRU5EX0JMRU4yX1BSRU1VTFRfRU4oMSkgfAorCQkJICAgICAgIFZJVV9PU0RfQkxFTkRfSE9MRF9MSU5FUyg0KSwKKwkJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWSVVfT1NEX0JMRU5EX0NUUkwpKTsKKworCQl3cml0ZWxfcmVsYXhlZChPU0RfQkxFTkRfUEFUSF9TRUxfRU5BQkxFLAorCQkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKE9TRDFfQkxFTkRfU1JDX0NUUkwpKTsKKwkJd3JpdGVsX3JlbGF4ZWQoT1NEX0JMRU5EX1BBVEhfU0VMX0VOQUJMRSwKKwkJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhPU0QyX0JMRU5EX1NSQ19DVFJMKSk7CiAJCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZEMV9CTEVORF9TUkNfQ1RSTCkpOwogCQl3cml0ZWxfcmVsYXhlZCgwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRDJfQkxFTkRfU1JDX0NUUkwpKTsKIAkJd3JpdGVsX3JlbGF4ZWQoMCwKIAkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhWSVVfT1NEX0JMRU5EX0RVTU1ZX0RBVEEwKSk7CiAJCXdyaXRlbF9yZWxheGVkKDAsCiAJCQkJcHJpdi0+aW9fYmFzZSArIF9SRUcoVklVX09TRF9CTEVORF9EVU1NWV9BTFBIQSkpOwotCQl3cml0ZWxfYml0c19yZWxheGVkKDB4MyA8PCAyLCAweDMgPDwgMiwKLQkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhET0xCWV9QQVRIX0NUUkwpKTsKKworCQl3cml0ZWxfYml0c19yZWxheGVkKERPTEJZX0JZUEFTU19FTigweGMpLCBET0xCWV9CWVBBU1NfRU4oMHhjKSwKKwkJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoRE9MQllfUEFUSF9DVFJMKSk7CiAJfQogCiAJcHJpdi0+dml1Lm9zZDFfZW5hYmxlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZwcC5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZwcC5jCmluZGV4IGJmZWUzMGYuLjE1NDgzNzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92cHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdnBwLmMKQEAgLTYsMTIgKzYsMTEgQEAKICAqIENvcHlyaWdodCAoQykgMjAxNCBFbmRsZXNzIE1vYmlsZQogICovCiAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgorCiAjaW5jbHVkZSAibWVzb25fZHJ2LmgiCi0jaW5jbHVkZSAibWVzb25fdnBwLmgiCiAjaW5jbHVkZSAibWVzb25fcmVnaXN0ZXJzLmgiCisjaW5jbHVkZSAibWVzb25fdnBwLmgiCiAKIC8qKgogICogRE9DOiBWaWRlbyBQb3N0IFByb2Nlc3NpbmcKQEAgLTU3LDcgKzU2LDcgQEAgc3RhdGljIHZvaWQgbWVzb25fdnBwX3dyaXRlX3NjYWxpbmdfZmlsdGVyX2NvZWZzKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsCiB7CiAJaW50IGk7CiAKLQl3cml0ZWxfcmVsYXhlZChpc19ob3Jpem9udGFsID8gQklUKDgpIDogMCwKKwl3cml0ZWxfcmVsYXhlZChpc19ob3Jpem9udGFsID8gVlBQX1NDQUxFX0hPUklaT05UQUxfQ09FRiA6IDAsCiAJCQlwcml2LT5pb19iYXNlICsgX1JFRyhWUFBfT1NEX1NDQUxFX0NPRUZfSURYKSk7CiAJZm9yIChpID0gMDsgaSA8IDMzOyBpKyspCiAJCXdyaXRlbF9yZWxheGVkKGNvZWZzW2ldLApAQCAtODIsNyArODEsNyBAQCBzdGF0aWMgdm9pZCBtZXNvbl92cHBfd3JpdGVfdmRfc2NhbGluZ19maWx0ZXJfY29lZnMoc3RydWN0IG1lc29uX2RybSAqcHJpdiwKIHsKIAlpbnQgaTsKIAotCXdyaXRlbF9yZWxheGVkKGlzX2hvcml6b250YWwgPyBCSVQoOCkgOiAwLAorCXdyaXRlbF9yZWxheGVkKGlzX2hvcml6b250YWwgPyBWUFBfU0NBTEVfSE9SSVpPTlRBTF9DT0VGIDogMCwKIAkJCXByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQUF9TQ0FMRV9DT0VGX0lEWCkpOwogCWZvciAoaSA9IDA7IGkgPCAzMzsgaSsrKQogCQl3cml0ZWxfcmVsYXhlZChjb2Vmc1tpXSwKQEAgLTkyLDI3ICs5MSwyOSBAQCBzdGF0aWMgdm9pZCBtZXNvbl92cHBfd3JpdGVfdmRfc2NhbGluZ19maWx0ZXJfY29lZnMoc3RydWN0IG1lc29uX2RybSAqcHJpdiwKIHZvaWQgbWVzb25fdnBwX2luaXQoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIHsKIAkvKiBzZXQgZHVtbXkgZGF0YSBkZWZhdWx0IFlVViBibGFjayAqLwotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neGwtdnB1IikpCisJaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0dYTCkpCiAJCXdyaXRlbF9yZWxheGVkKDB4MTA4MDgwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWUFBfRFVNTVlfREFUQTEpKTsKLQllbHNlIGlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1neG0tdnB1IikpIHsKKwllbHNlIGlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCBWUFVfQ09NUEFUSUJMRV9HWE0pKSB7CiAJCXdyaXRlbF9iaXRzX3JlbGF4ZWQoMHhmZiA8PCAxNiwgMHhmZiA8PCAxNiwKIAkJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVklVX01JU0NfQ1RSTDEpKTsKLQkJd3JpdGVsX3JlbGF4ZWQoMHgyMDAwMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX0RPTEJZX0NUUkwpKTsKKwkJd3JpdGVsX3JlbGF4ZWQoVlBQX1BQU19EVU1NWV9EQVRBX01PREUsCisJCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX0RPTEJZX0NUUkwpKTsKIAkJd3JpdGVsX3JlbGF4ZWQoMHgxMDIwMDgwLAogCQkJCXByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQUF9EVU1NWV9EQVRBMSkpOwotCX0gZWxzZSBpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZzEyYS12cHUiKSkKKwl9IGVsc2UgaWYgKG1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0cxMkEpKQogCQl3cml0ZWxfcmVsYXhlZCgweGYsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKERPTEJZX1BBVEhfQ1RSTCkpOwogCiAJLyogSW5pdGlhbGl6ZSB2cHUgZmlmbyBjb250cm9sIHJlZ2lzdGVycyAqLwotCWlmIChtZXNvbl92cHVfaXNfY29tcGF0aWJsZShwcml2LCAiYW1sb2dpYyxtZXNvbi1nMTJhLXZwdSIpKQotCQl3cml0ZWxfcmVsYXhlZCgweGZmZiA8PCAyMCB8IDB4MTAwMCwKKwlpZiAobWVzb25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgVlBVX0NPTVBBVElCTEVfRzEyQSkpCisJCXdyaXRlbF9yZWxheGVkKFZQUF9PRklGT19TSVpFX0RFRkFVTFQsCiAJCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX09GSUZPX1NJWkUpKTsKIAllbHNlCi0JCXdyaXRlbF9yZWxheGVkKHJlYWRsX3JlbGF4ZWQocHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX09GSUZPX1NJWkUpKSB8Ci0JCQkJMHg3N2YsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQUF9PRklGT19TSVpFKSk7Ci0Jd3JpdGVsX3JlbGF4ZWQoMHgwODA4MDgwOCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX0hPTERfTElORVMpKTsKKwkJd3JpdGVsX2JpdHNfcmVsYXhlZChWUFBfT0ZJRk9fU0laRV9NQVNLLCAweDc3ZiwKKwkJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX09GSUZPX1NJWkUpKTsKKwl3cml0ZWxfcmVsYXhlZChWUFBfUE9TVEJMRU5EX0hPTERfTElORVMoNCkgfCBWUFBfUFJFQkxFTkRfSE9MRF9MSU5FUyg0KSwKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQUF9IT0xEX0xJTkVTKSk7CiAKLQlpZiAoIW1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWcxMmEtdnB1IikpIHsKKwlpZiAoIW1lc29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsIFZQVV9DT01QQVRJQkxFX0cxMkEpKSB7CiAJCS8qIFR1cm4gb2ZmIHByZWJsZW5kICovCiAJCXdyaXRlbF9iaXRzX3JlbGF4ZWQoVlBQX1BSRUJMRU5EX0VOQUJMRSwgMCwKIAkJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX01JU0MpKTsKQEAgLTEzOCwxMCArMTM5LDE1IEBAIHZvaWQgbWVzb25fdnBwX2luaXQoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIAl3cml0ZWxfcmVsYXhlZCgwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWUFBfT1NEX1NDX0NUUkwwKSk7CiAJd3JpdGVsX3JlbGF4ZWQoMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX09TRF9WU0NfQ1RSTDApKTsKIAl3cml0ZWxfcmVsYXhlZCgwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWUFBfT1NEX0hTQ19DVFJMMCkpOwotCXdyaXRlbF9yZWxheGVkKDQgfCAoNCA8PCA4KSB8IEJJVCgxNSksCisKKwkvKiBTZXQgaG9yaXpvbnRhbC92ZXJ0aWNhbCBiYW5rIGxlbmd0aCBhbmQgZW5hYmxlIHZpZGVvIHNjYWxlIG91dCAqLworCXdyaXRlbF9yZWxheGVkKFZQUF9WU0NfQkFOS19MRU5HVEgoNCkgfCBWUFBfSFNDX0JBTktfTEVOR1RIKDQpIHwKKwkJICAgICAgIFZQUF9TQ19WRF9FTl9FTkFCTEUsCiAJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWUFBfU0NfTUlTQykpOwogCi0Jd3JpdGVsX3JlbGF4ZWQoMSwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBQX1ZBREpfQ1RSTCkpOworCS8qIEVuYWJsZSBtaW51cyBibGFjayBsZXZlbCBmb3IgdmFkajEgKi8KKwl3cml0ZWxfcmVsYXhlZChWUFBfTUlOVVNfQkxBQ0tfTFZMX1ZBREoxX0VOQUJMRSwKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQUF9WQURKX0NUUkwpKTsKIAogCS8qIFdyaXRlIGluIHRoZSBwcm9wZXIgZmlsdGVyIGNvZWZmaWNpZW50cy4gKi8KIAltZXNvbl92cHBfd3JpdGVfc2NhbGluZ19maWx0ZXJfY29lZnMocHJpdiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92cHAuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl92cHAuaAppbmRleCA5ZmM4MmRiLi5hZmM5NTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdnBwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZwcC5oCkBAIC05LDYgKzksOSBAQAogI2lmbmRlZiBfX01FU09OX1ZQUF9ICiAjZGVmaW5lIF9fTUVTT05fVlBQX0gKIAorc3RydWN0IGRybV9yZWN0Oworc3RydWN0IG1lc29uX2RybTsKKwogLyogTXV4IFZJVS9WUFAgdG8gRU5DSSAqLwogI2RlZmluZSBNRVNPTl9WSVVfVlBQX01VWF9FTkNJCTB4NQogLyogTXV4IFZJVS9WUFAgdG8gRU5DUCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kbWEuYwppbmRleCAxZmZkYWZlYS4uODVjNzQzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZG1hLmMKQEAgLTM1LDggKzM1LDggQEAKICAqIFxhdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9tZ2FfZHJtLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKwogI2luY2x1ZGUgIm1nYV9kcnYuaCIKIAogI2RlZmluZSBNR0FfREVGQVVMVF9VU0VDX1RJTUVPVVQJMTAwMDAKQEAgLTYyLDcgKzYyLDcgQEAgaW50IG1nYV9kb193YWl0X2Zvcl9pZGxlKGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdikKIAkJCU1HQV9XUklURTgoTUdBX0NSVENfSU5ERVgsIDApOwogCQkJcmV0dXJuIDA7CiAJCX0KLQkJRFJNX1VERUxBWSgxKTsKKwkJdWRlbGF5KDEpOwogCX0KIAogI2lmIE1HQV9ETUFfREVCVUcKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIG1nYV9kb19kbWFfZmx1c2goZHJtX21nYV9wcml2YXRlX3QgKmRldl9wcml2KQogCQlzdGF0dXMgPSBNR0FfUkVBRChNR0FfU1RBVFVTKSAmIE1HQV9FTkdJTkVfSURMRV9NQVNLOwogCQlpZiAoc3RhdHVzID09IE1HQV9FTkRQUkRNQVNUUykKIAkJCWJyZWFrOwotCQlEUk1fVURFTEFZKDEpOworCQl1ZGVsYXkoMSk7CiAJfQogCiAJaWYgKHByaW1hcnktPnRhaWwgPT0gcHJpbWFyeS0+bGFzdF9mbHVzaCkgewpAQCAtMTEyMCw3ICsxMTIwLDcgQEAgaW50IG1nYV9kbWFfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCSAqLwogCWlmIChkLT5zZW5kX2NvdW50ICE9IDApIHsKIAkJRFJNX0VSUk9SKCJQcm9jZXNzICVkIHRyeWluZyB0byBzZW5kICVkIGJ1ZmZlcnMgdmlhIGRybURNQVxuIiwKLQkJCSAgRFJNX0NVUlJFTlRQSUQsIGQtPnNlbmRfY291bnQpOworCQkJICB0YXNrX3BpZF9ucihjdXJyZW50KSwgZC0+c2VuZF9jb3VudCk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAtMTEyOCw3ICsxMTI4LDggQEAgaW50IG1nYV9kbWFfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCSAqLwogCWlmIChkLT5yZXF1ZXN0X2NvdW50IDwgMCB8fCBkLT5yZXF1ZXN0X2NvdW50ID4gZG1hLT5idWZfY291bnQpIHsKIAkJRFJNX0VSUk9SKCJQcm9jZXNzICVkIHRyeWluZyB0byBnZXQgJWQgYnVmZmVycyAob2YgJWQgbWF4KVxuIiwKLQkJCSAgRFJNX0NVUlJFTlRQSUQsIGQtPnJlcXVlc3RfY291bnQsIGRtYS0+YnVmX2NvdW50KTsKKwkJCSAgdGFza19waWRfbnIoY3VycmVudCksIGQtPnJlcXVlc3RfY291bnQsCisJCQkgIGRtYS0+YnVmX2NvdW50KTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5jCmluZGV4IDZlMWQxMDUuLjcxMTI4ZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5jCkBAIC0zMSwxMiArMzEsMTEgQEAKIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vbWdhX2RybS5oPgotI2luY2x1ZGUgIm1nYV9kcnYuaCIKLQorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wY2lpZHMuaD4KIAorI2luY2x1ZGUgIm1nYV9kcnYuaCIKKwogc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaWlkbGlzdFtdID0gewogCW1nYV9QQ0lfSURTCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuaAppbmRleCBhNDViYjIyLi5kNWRlZWNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuaApAQCAtMzEsNyArMzEsMjAgQEAKICNpZm5kZWYgX19NR0FfRFJWX0hfXwogI2RlZmluZSBfX01HQV9EUlZfSF9fCiAKKyNpbmNsdWRlIDxsaW51eC9pcnFyZXR1cm4uaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2FncHN1cHBvcnQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1faW9jdGwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgogI2luY2x1ZGUgPGRybS9kcm1fbGVnYWN5Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wY2kuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9zYXJlYS5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisjaW5jbHVkZSA8ZHJtL21nYV9kcm0uaD4KIAogLyogR2VuZXJhbCBjdXN0b21pemF0aW9uOgogICovCkBAIC0xODgsNyArMjAxLDcgQEAgZXh0ZXJuIGludCBtZ2Ffd2FycF9pbml0KGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdik7CiBleHRlcm4gaW50IG1nYV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKIGV4dGVybiB2b2lkIG1nYV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiBleHRlcm4gdTMyIG1nYV9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwotZXh0ZXJuIGludCBtZ2FfZHJpdmVyX2ZlbmNlX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7CitleHRlcm4gdm9pZCBtZ2FfZHJpdmVyX2ZlbmNlX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7CiBleHRlcm4gaW50IG1nYV9kcml2ZXJfdmJsYW5rX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7CiBleHRlcm4gaXJxcmV0dXJuX3QgbWdhX2RyaXZlcl9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpOwogZXh0ZXJuIHZvaWQgbWdhX2RyaXZlcl9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKQEAgLTE5OSwxMCArMjEyLDE0IEBAIGV4dGVybiBsb25nIG1nYV9jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCiAKICNkZWZpbmUgbWdhX2ZsdXNoX3dyaXRlX2NvbWJpbmUoKQl3bWIoKQogCi0jZGVmaW5lIE1HQV9SRUFEOChyZWcpCQlEUk1fUkVBRDgoZGV2X3ByaXYtPm1taW8sIChyZWcpKQotI2RlZmluZSBNR0FfUkVBRChyZWcpCQlEUk1fUkVBRDMyKGRldl9wcml2LT5tbWlvLCAocmVnKSkKLSNkZWZpbmUgTUdBX1dSSVRFOChyZWcsIHZhbCkJRFJNX1dSSVRFOChkZXZfcHJpdi0+bW1pbywgKHJlZyksICh2YWwpKQotI2RlZmluZSBNR0FfV1JJVEUocmVnLCB2YWwpCURSTV9XUklURTMyKGRldl9wcml2LT5tbWlvLCAocmVnKSwgKHZhbCkpCisjZGVmaW5lIE1HQV9SRUFEOChyZWcpIFwKKwlyZWFkYigoKHZvaWQgX19pb21lbSAqKWRldl9wcml2LT5tbWlvLT5oYW5kbGUpICsgKHJlZykpCisjZGVmaW5lIE1HQV9SRUFEKHJlZykgXAorCXJlYWRsKCgodm9pZCBfX2lvbWVtICopZGV2X3ByaXYtPm1taW8tPmhhbmRsZSkgKyAocmVnKSkKKyNkZWZpbmUgTUdBX1dSSVRFOChyZWcsIHZhbCkgXAorCXdyaXRlYih2YWwsICgodm9pZCBfX2lvbWVtICopZGV2X3ByaXYtPm1taW8tPmhhbmRsZSkgKyAocmVnKSkKKyNkZWZpbmUgTUdBX1dSSVRFKHJlZywgdmFsKSBcCisJd3JpdGVsKHZhbCwgKCh2b2lkIF9faW9tZW0gKilkZXZfcHJpdi0+bW1pby0+aGFuZGxlKSArIChyZWcpKQogCiAjZGVmaW5lIERXR1JFRzAJCTB4MWMwMAogI2RlZmluZSBEV0dSRUcwX0VORAkweDFkZmYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2lvYzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9pb2MzMi5jCmluZGV4IDI0NWZiMmUuLjZjY2QyNzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2lvYzMyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfaW9jMzIuYwpAQCAtMzAsMTAgKzMwLDkgQEAKICAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKICAqIElOIFRIRSBTT0ZUV0FSRS4KICAqLworCiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9tZ2FfZHJtLmg+CiAjaW5jbHVkZSAibWdhX2Rydi5oIgogCiB0eXBlZGVmIHN0cnVjdCBkcm0zMl9tZ2FfaW5pdCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2lycS5jCmluZGV4IDY5M2JhNzAuLmE3ZTZmZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2lycS5jCkBAIC0zMSw4ICszMSw2IEBACiAgKiAgICBFcmljIEFuaG9sdCA8YW5ob2x0QEZyZWVCU0Qub3JnPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9tZ2FfZHJtLmg+CiAjaW5jbHVkZSAibWdhX2Rydi5oIgogCiB1MzIgbWdhX2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKQEAgLTExOCwyMyArMTE2LDIxIEBAIHZvaWQgbWdhX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCS8qIE1HQV9XUklURShNR0FfSUVOLCBNR0FfVkxJTkVJRU4gfCBNR0FfU09GVFJBUEVOKTsgKi8KIH0KIAotaW50IG1nYV9kcml2ZXJfZmVuY2Vfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKQordm9pZCBtZ2FfZHJpdmVyX2ZlbmNlX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSkKIHsKIAlkcm1fbWdhX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX21nYV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKIAl1bnNpZ25lZCBpbnQgY3VyX2ZlbmNlOwotCWludCByZXQgPSAwOwogCiAJLyogQXNzdW1lIHRoYXQgdGhlIHVzZXIgaGFzIG1pc3NlZCB0aGUgY3VycmVudCBzZXF1ZW5jZSBudW1iZXIKIAkgKiBieSBhYm91dCBhIGRheSByYXRoZXIgdGhhbiBzaGUgd2FudHMgdG8gd2FpdCBmb3IgeWVhcnMKIAkgKiB1c2luZyBmZW5jZXMuCiAJICovCi0JRFJNX1dBSVRfT04ocmV0LCBkZXZfcHJpdi0+ZmVuY2VfcXVldWUsIDMgKiBIWiwKKwl3YWl0X2V2ZW50X3RpbWVvdXQoZGV2X3ByaXYtPmZlbmNlX3F1ZXVlLAogCQkgICAgKCgoY3VyX2ZlbmNlID0gYXRvbWljX3JlYWQoJmRldl9wcml2LT5sYXN0X2ZlbmNlX3JldGlyZWQpKQotCQkgICAgICAtICpzZXF1ZW5jZSkgPD0gKDEgPDwgMjMpKSk7CisJCSAgICAgIC0gKnNlcXVlbmNlKSA8PSAoMSA8PCAyMykpLAorCQkgICAgbXNlY3NfdG9famlmZmllcygzMDAwKSk7CiAKIAkqc2VxdWVuY2UgPSBjdXJfZmVuY2U7Ci0KLQlyZXR1cm4gcmV0OwogfQogCiB2b2lkIG1nYV9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9zdGF0ZS5jCmluZGV4IGU1ZjZiNzMuLjc3YTBiMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3N0YXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2Ffc3RhdGUuYwpAQCAtMzIsOCArMzIsNiBAQAogICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9tZ2FfZHJtLmg+CiAjaW5jbHVkZSAibWdhX2Rydi5oIgogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xMDE2LDcgKzEwMTQsNyBAQCBpbnQgbWdhX2dldHBhcmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlEUk1fREVCVUcoInBpZD0lZFxuIiwgRFJNX0NVUlJFTlRQSUQpOworCURSTV9ERUJVRygicGlkPSVkXG4iLCB0YXNrX3BpZF9ucihjdXJyZW50KSk7CiAKIAlzd2l0Y2ggKHBhcmFtLT5wYXJhbSkgewogCWNhc2UgTUdBX1BBUkFNX0lSUV9OUjoKQEAgLTEwNDgsNyArMTA0Niw3IEBAIHN0YXRpYyBpbnQgbWdhX3NldF9mZW5jZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCURSTV9ERUJVRygicGlkPSVkXG4iLCBEUk1fQ1VSUkVOVFBJRCk7CisJRFJNX0RFQlVHKCJwaWQ9JWRcbiIsIHRhc2tfcGlkX25yKGN1cnJlbnQpKTsKIAogCS8qIEkgd291bGQgbm9ybWFsIGRvIHRoaXMgYXNzaWdubWVudCBpbiB0aGUgZGVjbGFyYXRpb24gb2YgZmVuY2UsCiAJICogYnV0IGRldl9wcml2IG1heSBiZSBOVUxMLgpAQCAtMTA3Nyw3ICsxMDc1LDcgQEAgZmlsZV9wcml2KQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlEUk1fREVCVUcoInBpZD0lZFxuIiwgRFJNX0NVUlJFTlRQSUQpOworCURSTV9ERUJVRygicGlkPSVkXG4iLCB0YXNrX3BpZF9ucihjdXJyZW50KSk7CiAKIAltZ2FfZHJpdmVyX2ZlbmNlX3dhaXQoZGV2LCBmZW5jZSk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV93YXJwLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV93YXJwLmMKaW5kZXggMGI3NjM1Mi4uYjVlZjFkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2Ffd2FycC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3dhcnAuYwpAQCAtMjksMTEgKzI5LDkgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CiAjaW5jbHVkZSA8bGludXgvaWhleC5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vbWdhX2RybS5oPgogI2luY2x1ZGUgIm1nYV9kcnYuaCIKIAogI2RlZmluZSBGSVJNV0FSRV9HMjAwICJtYXRyb3gvZzIwMF93YXJwLmZ3IgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9NYWtlZmlsZQppbmRleCA5OGQyMDQ0Li4wNGIyODFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9NYWtlZmlsZQpAQCAtMSw1ICsxLDUgQEAKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQogbWdhZzIwMC15ICAgOj0gbWdhZzIwMF9tYWluLm8gbWdhZzIwMF9tb2RlLm8gbWdhZzIwMF9jdXJzb3IubyBcCi0JbWdhZzIwMF9kcnYubyBtZ2FnMjAwX2ZiLm8gbWdhZzIwMF9pMmMubyBtZ2FnMjAwX3R0bS5vCisJbWdhZzIwMF9kcnYubyBtZ2FnMjAwX2kyYy5vIG1nYWcyMDBfdHRtLm8KIAogb2JqLSQoQ09ORklHX0RSTV9NR0FHMjAwKSArPSBtZ2FnMjAwLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfY3Vyc29yLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2N1cnNvci5jCmluZGV4IGYwYzYxYTkuLjI4OWNlM2UyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2N1cnNvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfY3Vyc29yLmMKQEAgLTUsNyArNSw4IEBACiAgKiBBdXRob3I6IENocmlzdG9waGVyIEhhcnZleSA8Y2hhcnZleUBtYXRyb3guY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGNpLmg+CisKICNpbmNsdWRlICJtZ2FnMjAwX2Rydi5oIgogCiBzdGF0aWMgYm9vbCB3YXJuX3RyYW5zcGFyZW50ID0gdHJ1ZTsKQEAgLTk4LDExICs5OSwxMiBAQCBpbnQgbWdhX2NydGNfY3Vyc29yX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJfQogCiAJLyogUGluIGFuZCBtYXAgdXAtY29taW5nIGJ1ZmZlciB0byB3cml0ZSBjb2xvdXIgaW5kaWNlcyAqLwotCXJldCA9IGRybV9nZW1fdnJhbV9waW4ocGl4ZWxzX25leHQsIDApOwotCWlmIChyZXQpCisJcmV0ID0gZHJtX2dlbV92cmFtX3BpbihwaXhlbHNfbmV4dCwgRFJNX0dFTV9WUkFNX1BMX0ZMQUdfVlJBTSk7CisJaWYgKHJldCkgewogCQlkZXZfZXJyKCZkZXYtPnBkZXYtPmRldiwKIAkJCSJmYWlsZWQgdG8gcGluIGN1cnNvciBidWZmZXI6ICVkXG4iLCByZXQpOwogCQlnb3RvIGVycl9kcm1fZ2VtX3ZyYW1fa3VubWFwX3NyYzsKKwl9CiAJZHN0ID0gZHJtX2dlbV92cmFtX2ttYXAocGl4ZWxzX25leHQsIHRydWUsIE5VTEwpOwogCWlmIChJU19FUlIoZHN0KSkgewogCQlyZXQgPSBQVFJfRVJSKGRzdCk7CkBAIC0xMTAsNyArMTEyLDcgQEAgaW50IG1nYV9jcnRjX2N1cnNvcl9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJImZhaWxlZCB0byBrbWFwIGN1cnNvciB1cGRhdGVzOiAlZFxuIiwgcmV0KTsKIAkJZ290byBlcnJfZHJtX2dlbV92cmFtX3VucGluX2RzdDsKIAl9Ci0JZ3B1X2FkZHIgPSBkcm1fZ2VtX3ZyYW1fb2Zmc2V0KHBpeGVsc18yKTsKKwlncHVfYWRkciA9IGRybV9nZW1fdnJhbV9vZmZzZXQocGl4ZWxzX25leHQpOwogCWlmIChncHVfYWRkciA8IDApIHsKIAkJcmV0ID0gKGludClncHVfYWRkcjsKIAkJZGV2X2VycigmZGV2LT5wZGV2LT5kZXYsCkBAIC0yMTEsNyArMjEzLDYgQEAgaW50IG1nYV9jcnRjX2N1cnNvcl9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCW1kZXYtPmN1cnNvci5waXhlbHNfY3VycmVudCA9IHBpeGVsc19uZXh0OwogCiAJZHJtX2dlbV92cmFtX2t1bm1hcChwaXhlbHNfbmV4dCk7Ci0JZHJtX2dlbV92cmFtX3VucGluKHBpeGVsc19uZXh0KTsKIAlkcm1fZ2VtX3ZyYW1fa3VubWFwKGdibyk7CiAJZHJtX2dlbV92cmFtX3VucGluKGdibyk7CiAJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9iaik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuYwppbmRleCBhYWZhMWNiLi5hZmQ5MTE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmMKQEAgLTUsMTQgKzUsMTggQEAKICAqIEF1dGhvcnM6IE1hdHRoZXcgR2FycmV0dAogICogICAgICAgICAgRGF2ZSBBaXJsaWUKICAqLworCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1faW9jdGwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BjaS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGNpaWRzLmg+CiAKICNpbmNsdWRlICJtZ2FnMjAwX2Rydi5oIgogCi0jaW5jbHVkZSA8ZHJtL2RybV9wY2lpZHMuaD4KLQogLyoKICAqIFRoaXMgaXMgdGhlIGdlbmVyaWMgZHJpdmVyIGNvZGUuIFRoaXMgYmluZHMgdGhlIGRyaXZlciB0byB0aGUgZHJtIGNvcmUsCiAgKiB3aGljaCB0aGVuIHBlcmZvcm1zIGZ1cnRoZXIgZGV2aWNlIGFzc29jaWF0aW9uIGFuZCBjYWxscyBvdXIgZ3JhcGhpY3MgaW5pdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmgKaW5kZXggYzQ3NjcxYy4uMWM5M2Y4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5oCkBAIC0xMCwxOSArMTAsMTcgQEAKICNpZm5kZWYgX19NR0FHMjAwX0RSVl9IX18KICNkZWZpbmUgX19NR0FHMjAwX0RSVl9IX18KIAorI2luY2x1ZGUgPGxpbnV4L2kyYy1hbGdvLWJpdC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorCiAjaW5jbHVkZSA8dmlkZW8vdmdhLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgotCiAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oPgotCiAjaW5jbHVkZSA8ZHJtL2RybV92cmFtX21tX2hlbHBlci5oPgogCi0jaW5jbHVkZSA8bGludXgvaTJjLmg+Ci0jaW5jbHVkZSA8bGludXgvaTJjLWFsZ28tYml0Lmg+Ci0KICNpbmNsdWRlICJtZ2FnMjAwX3JlZy5oIgogCiAjZGVmaW5lIERSSVZFUl9BVVRIT1IJCSJNYXR0aGV3IEdhcnJldHQiCkBAIC0xMDAsMjEgKzk4LDYgQEAKICNkZWZpbmUgdG9fbWdhX2NydGMoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBtZ2FfY3J0YywgYmFzZSkKICNkZWZpbmUgdG9fbWdhX2VuY29kZXIoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBtZ2FfZW5jb2RlciwgYmFzZSkKICNkZWZpbmUgdG9fbWdhX2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IG1nYV9jb25uZWN0b3IsIGJhc2UpCi0jZGVmaW5lIHRvX21nYV9mcmFtZWJ1ZmZlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IG1nYV9mcmFtZWJ1ZmZlciwgYmFzZSkKLQotc3RydWN0IG1nYV9mcmFtZWJ1ZmZlciB7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciBiYXNlOwotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwotfTsKLQotc3RydWN0IG1nYV9mYmRldiB7Ci0Jc3RydWN0IGRybV9mYl9oZWxwZXIgaGVscGVyOyAvKiBtdXN0IGJlIGZpcnN0ICovCi0Jc3RydWN0IG1nYV9mcmFtZWJ1ZmZlciBtZmI7Ci0Jdm9pZCAqc3lzcmFtOwotCWludCBzaXplOwotCWludCB4MSwgeTEsIHgyLCB5MjsgLyogZGlydHkgcmVjdCAqLwotCXNwaW5sb2NrX3QgZGlydHlfbG9jazsKLX07CiAKIHN0cnVjdCBtZ2FfY3J0YyB7CiAJc3RydWN0IGRybV9jcnRjIGJhc2U7CkBAIC0xODksNyArMTcyLDYgQEAgc3RydWN0IG1nYV9kZXZpY2UgewogCXN0cnVjdCBtZ2FfbWMJCQltYzsKIAlzdHJ1Y3QgbWdhX21vZGVfaW5mbwkJbW9kZV9pbmZvOwogCi0Jc3RydWN0IG1nYV9mYmRldiAqbWZiZGV2OwogCXN0cnVjdCBtZ2FfY3Vyc29yIGN1cnNvcjsKIAogCWJvb2wJCQkJc3VzcGVuZGVkOwpAQCAtMjEwLDI1ICsxOTIsOSBAQCBzdHJ1Y3QgbWdhX2RldmljZSB7CiBpbnQgbWdhZzIwMF9tb2Rlc2V0X2luaXQoc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYpOwogdm9pZCBtZ2FnMjAwX21vZGVzZXRfZmluaShzdHJ1Y3QgbWdhX2RldmljZSAqbWRldik7CiAKLQkJCQkvKiBtZ2FnMjAwX2ZiLmMgKi8KLWludCBtZ2FnMjAwX2ZiZGV2X2luaXQoc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYpOwotdm9pZCBtZ2FnMjAwX2ZiZGV2X2Zpbmkoc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYpOwotCiAJCQkJLyogbWdhZzIwMF9tYWluLmMgKi8KLWludCBtZ2FnMjAwX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgICAgc3RydWN0IG1nYV9mcmFtZWJ1ZmZlciAqbWZiLAotCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCi0JCQkgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKLQotCiBpbnQgbWdhZzIwMF9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKIHZvaWQgbWdhZzIwMF9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotaW50IG1nYWcyMDBfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkgICB1MzIgc2l6ZSwgYm9vbCBpc2tlcm5lbCwKLQkJICAgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9iaik7Ci1pbnQgbWdhZzIwMF9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCi0JCQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKTsKIAogCQkJCS8qIG1nYWcyMDBfaTJjLmMgKi8KIHN0cnVjdCBtZ2FfaTJjX2NoYW4gKm1nYWcyMDBfaTJjX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZmIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFkYjMzMi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2ZiLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMTUgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIENvcHlyaWdodCAyMDEwIE1hdHQgVHVybmVyLgotICogQ29weXJpZ2h0IDIwMTIgUmVkIEhhdAotICoKLSAqIEF1dGhvcnM6IE1hdHRoZXcgR2FycmV0dAotICogICAgICAgICAgTWF0dCBUdXJuZXIKLSAqICAgICAgICAgIERhdmUgQWlybGllCi0gKi8KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fdXRpbC5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgotCi0jaW5jbHVkZSAibWdhZzIwMF9kcnYuaCIKLQotc3RhdGljIHZvaWQgbWdhX2RpcnR5X3VwZGF0ZShzdHJ1Y3QgbWdhX2ZiZGV2ICptZmJkZXYsCi0JCQkgICAgIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQotewotCWludCBpOwotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm87Ci0JaW50IHNyY19vZmZzZXQsIGRzdF9vZmZzZXQ7Ci0JaW50IGJwcCA9IG1mYmRldi0+bWZiLmJhc2UuZm9ybWF0LT5jcHBbMF07Ci0JaW50IHJldDsKLQl1OCAqZHN0OwotCWJvb2wgdW5tYXAgPSBmYWxzZTsKLQlib29sIHN0b3JlX2Zvcl9sYXRlciA9IGZhbHNlOwotCWludCB4MiwgeTI7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCW9iaiA9IG1mYmRldi0+bWZiLm9iajsKLQlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7Ci0KLQlpZiAoZHJtX2Nhbl9zbGVlcCgpKSB7Ci0JCS8qIFdlIHBpbiB0aGUgQk8gc28gaXQgd29uJ3QgYmUgbW92ZWQgZHVyaW5nIHRoZQotCQkgKiB1cGRhdGUuIFRoZSBhY3R1YWwgbG9jYXRpb24sIHZpZGVvIFJBTSBvciBzeXN0ZW0KLQkJICogbWVtb3J5LCBpcyBub3QgaW1wb3J0YW50LgotCQkgKi8KLQkJcmV0ID0gZHJtX2dlbV92cmFtX3BpbihnYm8sIDApOwotCQlpZiAocmV0KSB7Ci0JCQlpZiAocmV0ICE9IC1FQlVTWSkKLQkJCQlyZXR1cm47Ci0JCQlzdG9yZV9mb3JfbGF0ZXIgPSB0cnVlOwotCQl9Ci0JfSBlbHNlIHsKLQkJc3RvcmVfZm9yX2xhdGVyID0gdHJ1ZTsKLQl9Ci0KLQl4MiA9IHggKyB3aWR0aCAtIDE7Ci0JeTIgPSB5ICsgaGVpZ2h0IC0gMTsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmbWZiZGV2LT5kaXJ0eV9sb2NrLCBmbGFncyk7Ci0KLQlpZiAobWZiZGV2LT55MSA8IHkpCi0JCXkgPSBtZmJkZXYtPnkxOwotCWlmIChtZmJkZXYtPnkyID4geTIpCi0JCXkyID0gbWZiZGV2LT55MjsKLQlpZiAobWZiZGV2LT54MSA8IHgpCi0JCXggPSBtZmJkZXYtPngxOwotCWlmIChtZmJkZXYtPngyID4geDIpCi0JCXgyID0gbWZiZGV2LT54MjsKLQotCWlmIChzdG9yZV9mb3JfbGF0ZXIpIHsKLQkJbWZiZGV2LT54MSA9IHg7Ci0JCW1mYmRldi0+eDIgPSB4MjsKLQkJbWZiZGV2LT55MSA9IHk7Ci0JCW1mYmRldi0+eTIgPSB5MjsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWZiZGV2LT5kaXJ0eV9sb2NrLCBmbGFncyk7Ci0JCXJldHVybjsKLQl9Ci0KLQltZmJkZXYtPngxID0gbWZiZGV2LT55MSA9IElOVF9NQVg7Ci0JbWZiZGV2LT54MiA9IG1mYmRldi0+eTIgPSAwOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1mYmRldi0+ZGlydHlfbG9jaywgZmxhZ3MpOwotCi0JZHN0ID0gZHJtX2dlbV92cmFtX2ttYXAoZ2JvLCBmYWxzZSwgTlVMTCk7Ci0JaWYgKElTX0VSUihkc3QpKSB7Ci0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGttYXAgZmIgdXBkYXRlc1xuIik7Ci0JCWdvdG8gb3V0OwotCX0gZWxzZSBpZiAoIWRzdCkgewotCQlkc3QgPSBkcm1fZ2VtX3ZyYW1fa21hcChnYm8sIHRydWUsIE5VTEwpOwotCQlpZiAoSVNfRVJSKGRzdCkpIHsKLQkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGttYXAgZmIgdXBkYXRlc1xuIik7Ci0JCQlnb3RvIG91dDsKLQkJfQotCQl1bm1hcCA9IHRydWU7Ci0JfQotCi0JZm9yIChpID0geTsgaSA8PSB5MjsgaSsrKSB7Ci0JCS8qIGFzc3VtZSBlcXVhbCBzdHJpZGUgZm9yIG5vdyAqLwotCQlzcmNfb2Zmc2V0ID0gZHN0X29mZnNldCA9Ci0JCQlpICogbWZiZGV2LT5tZmIuYmFzZS5waXRjaGVzWzBdICsgKHggKiBicHApOwotCQltZW1jcHlfdG9pbyhkc3QgKyBkc3Rfb2Zmc2V0LCBtZmJkZXYtPnN5c3JhbSArIHNyY19vZmZzZXQsCi0JCQkgICAgKHgyIC0geCArIDEpICogYnBwKTsKLQl9Ci0KLQlpZiAodW5tYXApCi0JCWRybV9nZW1fdnJhbV9rdW5tYXAoZ2JvKTsKLQotb3V0OgotCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwotfQotCi1zdGF0aWMgdm9pZCBtZ2FfZmlsbHJlY3Qoc3RydWN0IGZiX2luZm8gKmluZm8sCi0JCQkgY29uc3Qgc3RydWN0IGZiX2ZpbGxyZWN0ICpyZWN0KQotewotCXN0cnVjdCBtZ2FfZmJkZXYgKm1mYmRldiA9IGluZm8tPnBhcjsKLQlkcm1fZmJfaGVscGVyX3N5c19maWxscmVjdChpbmZvLCByZWN0KTsKLQltZ2FfZGlydHlfdXBkYXRlKG1mYmRldiwgcmVjdC0+ZHgsIHJlY3QtPmR5LCByZWN0LT53aWR0aCwKLQkJCSByZWN0LT5oZWlnaHQpOwotfQotCi1zdGF0aWMgdm9pZCBtZ2FfY29weWFyZWEoc3RydWN0IGZiX2luZm8gKmluZm8sCi0JCQkgY29uc3Qgc3RydWN0IGZiX2NvcHlhcmVhICphcmVhKQotewotCXN0cnVjdCBtZ2FfZmJkZXYgKm1mYmRldiA9IGluZm8tPnBhcjsKLQlkcm1fZmJfaGVscGVyX3N5c19jb3B5YXJlYShpbmZvLCBhcmVhKTsKLQltZ2FfZGlydHlfdXBkYXRlKG1mYmRldiwgYXJlYS0+ZHgsIGFyZWEtPmR5LCBhcmVhLT53aWR0aCwKLQkJCSBhcmVhLT5oZWlnaHQpOwotfQotCi1zdGF0aWMgdm9pZCBtZ2FfaW1hZ2VibGl0KHN0cnVjdCBmYl9pbmZvICppbmZvLAotCQkJICBjb25zdCBzdHJ1Y3QgZmJfaW1hZ2UgKmltYWdlKQotewotCXN0cnVjdCBtZ2FfZmJkZXYgKm1mYmRldiA9IGluZm8tPnBhcjsKLQlkcm1fZmJfaGVscGVyX3N5c19pbWFnZWJsaXQoaW5mbywgaW1hZ2UpOwotCW1nYV9kaXJ0eV91cGRhdGUobWZiZGV2LCBpbWFnZS0+ZHgsIGltYWdlLT5keSwgaW1hZ2UtPndpZHRoLAotCQkJIGltYWdlLT5oZWlnaHQpOwotfQotCi0KLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIG1nYWcyMDBmYl9vcHMgPSB7Ci0JLm93bmVyID0gVEhJU19NT0RVTEUsCi0JLmZiX2NoZWNrX3ZhciA9IGRybV9mYl9oZWxwZXJfY2hlY2tfdmFyLAotCS5mYl9zZXRfcGFyID0gZHJtX2ZiX2hlbHBlcl9zZXRfcGFyLAotCS5mYl9maWxscmVjdCA9IG1nYV9maWxscmVjdCwKLQkuZmJfY29weWFyZWEgPSBtZ2FfY29weWFyZWEsCi0JLmZiX2ltYWdlYmxpdCA9IG1nYV9pbWFnZWJsaXQsCi0JLmZiX3Bhbl9kaXNwbGF5ID0gZHJtX2ZiX2hlbHBlcl9wYW5fZGlzcGxheSwKLQkuZmJfYmxhbmsgPSBkcm1fZmJfaGVscGVyX2JsYW5rLAotCS5mYl9zZXRjbWFwID0gZHJtX2ZiX2hlbHBlcl9zZXRjbWFwLAotfTsKLQotc3RhdGljIGludCBtZ2FnMjAwZmJfY3JlYXRlX29iamVjdChzdHJ1Y3QgbWdhX2ZiZGV2ICphZmJkZXYsCi0JCQkJICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kLAotCQkJCSAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKmdvYmpfcCkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYWZiZGV2LT5oZWxwZXIuZGV2OwotCXUzMiBzaXplOwotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iajsKLQlpbnQgcmV0ID0gMDsKLQotCXNpemUgPSBtb2RlX2NtZC0+cGl0Y2hlc1swXSAqIG1vZGVfY21kLT5oZWlnaHQ7Ci0JcmV0ID0gbWdhZzIwMF9nZW1fY3JlYXRlKGRldiwgc2l6ZSwgdHJ1ZSwgJmdvYmopOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQkqZ29ial9wID0gZ29iajsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IG1nYWcyMDBmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKLQkJCSAgIHN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpCi17Ci0Jc3RydWN0IG1nYV9mYmRldiAqbWZiZGV2ID0KLQkJY29udGFpbmVyX29mKGhlbHBlciwgc3RydWN0IG1nYV9mYmRldiwgaGVscGVyKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWZiZGV2LT5oZWxwZXIuZGV2OwotCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIG1vZGVfY21kOwotCXN0cnVjdCBtZ2FfZGV2aWNlICptZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbzsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmogPSBOVUxMOwotCWludCByZXQ7Ci0Jdm9pZCAqc3lzcmFtOwotCWludCBzaXplOwotCi0JbW9kZV9jbWQud2lkdGggPSBzaXplcy0+c3VyZmFjZV93aWR0aDsKLQltb2RlX2NtZC5oZWlnaHQgPSBzaXplcy0+c3VyZmFjZV9oZWlnaHQ7Ci0JbW9kZV9jbWQucGl0Y2hlc1swXSA9IG1vZGVfY21kLndpZHRoICogKChzaXplcy0+c3VyZmFjZV9icHAgKyA3KSAvIDgpOwotCi0JbW9kZV9jbWQucGl4ZWxfZm9ybWF0ID0gZHJtX21vZGVfbGVnYWN5X2ZiX2Zvcm1hdChzaXplcy0+c3VyZmFjZV9icHAsCi0JCQkJCQkJICBzaXplcy0+c3VyZmFjZV9kZXB0aCk7Ci0Jc2l6ZSA9IG1vZGVfY21kLnBpdGNoZXNbMF0gKiBtb2RlX2NtZC5oZWlnaHQ7Ci0KLQlyZXQgPSBtZ2FnMjAwZmJfY3JlYXRlX29iamVjdChtZmJkZXYsICZtb2RlX2NtZCwgJmdvYmopOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY3JlYXRlIGZiY29uIGJhY2tpbmcgb2JqZWN0ICVkXG4iLCByZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCXN5c3JhbSA9IHZtYWxsb2Moc2l6ZSk7Ci0JaWYgKCFzeXNyYW0pIHsKLQkJcmV0ID0gLUVOT01FTTsKLQkJZ290byBlcnJfc3lzcmFtOwotCX0KLQotCWluZm8gPSBkcm1fZmJfaGVscGVyX2FsbG9jX2ZiaShoZWxwZXIpOwotCWlmIChJU19FUlIoaW5mbykpIHsKLQkJcmV0ID0gUFRSX0VSUihpbmZvKTsKLQkJZ290byBlcnJfYWxsb2NfZmJpOwotCX0KLQotCXJldCA9IG1nYWcyMDBfZnJhbWVidWZmZXJfaW5pdChkZXYsICZtZmJkZXYtPm1mYiwgJm1vZGVfY21kLCBnb2JqKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9hbGxvY19mYmk7Ci0KLQltZmJkZXYtPnN5c3JhbSA9IHN5c3JhbTsKLQltZmJkZXYtPnNpemUgPSBzaXplOwotCi0JZmIgPSAmbWZiZGV2LT5tZmIuYmFzZTsKLQotCS8qIHNldHVwIGhlbHBlciAqLwotCW1mYmRldi0+aGVscGVyLmZiID0gZmI7Ci0KLQlpbmZvLT5mYm9wcyA9ICZtZ2FnMjAwZmJfb3BzOwotCi0JLyogc2V0dXAgYXBlcnR1cmUgYmFzZS9zaXplIGZvciB2ZXNhZmIgdGFrZW92ZXIgKi8KLQlpbmZvLT5hcGVydHVyZXMtPnJhbmdlc1swXS5iYXNlID0gbWRldi0+ZGV2LT5tb2RlX2NvbmZpZy5mYl9iYXNlOwotCWluZm8tPmFwZXJ0dXJlcy0+cmFuZ2VzWzBdLnNpemUgPSBtZGV2LT5tYy52cmFtX3NpemU7Ci0KLQlkcm1fZmJfaGVscGVyX2ZpbGxfaW5mbyhpbmZvLCAmbWZiZGV2LT5oZWxwZXIsIHNpemVzKTsKLQotCWluZm8tPnNjcmVlbl9iYXNlID0gc3lzcmFtOwotCWluZm8tPnNjcmVlbl9zaXplID0gc2l6ZTsKLQlpbmZvLT5waXhtYXAuZmxhZ3MgPSBGQl9QSVhNQVBfU1lTVEVNOwotCi0JRFJNX0RFQlVHX0tNUygiYWxsb2NhdGVkICVkeCVkXG4iLAotCQkgICAgICBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOwotCi0JcmV0dXJuIDA7Ci0KLWVycl9hbGxvY19mYmk6Ci0JdmZyZWUoc3lzcmFtKTsKLWVycl9zeXNyYW06Ci0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGdvYmopOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBtZ2FfZmJkZXZfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCXN0cnVjdCBtZ2FfZmJkZXYgKm1mYmRldikKLXsKLQlzdHJ1Y3QgbWdhX2ZyYW1lYnVmZmVyICptZmIgPSAmbWZiZGV2LT5tZmI7Ci0KLQlkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfZmJpKCZtZmJkZXYtPmhlbHBlcik7Ci0KLQlpZiAobWZiLT5vYmopIHsKLQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG1mYi0+b2JqKTsKLQkJbWZiLT5vYmogPSBOVUxMOwotCX0KLQlkcm1fZmJfaGVscGVyX2ZpbmkoJm1mYmRldi0+aGVscGVyKTsKLQl2ZnJlZShtZmJkZXYtPnN5c3JhbSk7Ci0JZHJtX2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZSgmbWZiLT5iYXNlKTsKLQlkcm1fZnJhbWVidWZmZXJfY2xlYW51cCgmbWZiLT5iYXNlKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3MgbWdhX2ZiX2hlbHBlcl9mdW5jcyA9IHsKLQkuZmJfcHJvYmUgPSBtZ2FnMjAwZmJfY3JlYXRlLAotfTsKLQotaW50IG1nYWcyMDBfZmJkZXZfaW5pdChzdHJ1Y3QgbWdhX2RldmljZSAqbWRldikKLXsKLQlzdHJ1Y3QgbWdhX2ZiZGV2ICptZmJkZXY7Ci0JaW50IHJldDsKLQlpbnQgYnBwX3NlbCA9IDMyOwotCi0JLyogcHJlZmVyIDE2YnBwIG9uIGxvdyBlbmQgZ3B1cyB3aXRoIGxpbWl0ZWQgVlJBTSAqLwotCWlmIChJU19HMjAwX1NFKG1kZXYpICYmIG1kZXYtPm1jLnZyYW1fc2l6ZSA8ICgyMDQ4KjEwMjQpKQotCQlicHBfc2VsID0gMTY7Ci0KLQltZmJkZXYgPSBkZXZtX2t6YWxsb2MobWRldi0+ZGV2LT5kZXYsIHNpemVvZihzdHJ1Y3QgbWdhX2ZiZGV2KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtZmJkZXYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JbWRldi0+bWZiZGV2ID0gbWZiZGV2OwotCXNwaW5fbG9ja19pbml0KCZtZmJkZXYtPmRpcnR5X2xvY2spOwotCi0JZHJtX2ZiX2hlbHBlcl9wcmVwYXJlKG1kZXYtPmRldiwgJm1mYmRldi0+aGVscGVyLCAmbWdhX2ZiX2hlbHBlcl9mdW5jcyk7Ci0KLQlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXQobWRldi0+ZGV2LCAmbWZiZGV2LT5oZWxwZXIsCi0JCQkJIE1HQUcyMDBGQl9DT05OX0xJTUlUKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9mYl9oZWxwZXI7Ci0KLQlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoJm1mYmRldi0+aGVscGVyKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9mYl9zZXR1cDsKLQotCS8qIGRpc2FibGUgYWxsIHRoZSBwb3NzaWJsZSBvdXRwdXRzL2NydGNzIGJlZm9yZSBlbnRlcmluZyBLTVMgbW9kZSAqLwotCWRybV9oZWxwZXJfZGlzYWJsZV91bnVzZWRfZnVuY3Rpb25zKG1kZXYtPmRldik7Ci0KLQlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKCZtZmJkZXYtPmhlbHBlciwgYnBwX3NlbCk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfZmJfc2V0dXA7Ci0KLQlyZXR1cm4gMDsKLQotZXJyX2ZiX3NldHVwOgotCWRybV9mYl9oZWxwZXJfZmluaSgmbWZiZGV2LT5oZWxwZXIpOwotZXJyX2ZiX2hlbHBlcjoKLQltZGV2LT5tZmJkZXYgPSBOVUxMOwotCi0JcmV0dXJuIHJldDsKLX0KLQotdm9pZCBtZ2FnMjAwX2ZiZGV2X2Zpbmkoc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYpCi17Ci0JaWYgKCFtZGV2LT5tZmJkZXYpCi0JCXJldHVybjsKLQotCW1nYV9mYmRldl9kZXN0cm95KG1kZXYtPmRldiwgbWRldi0+bWZiZGV2KTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfaTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2kyYy5jCmluZGV4IDc3ZDFjNDcuLjUxZDQwMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfaTJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9pMmMuYwpAQCAtMjUsMTAgKzI1LDEyIEBACiAvKgogICogQXV0aG9yczogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KICAqLworCiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLWFsZ28tYml0Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fcGNpLmg+CiAKICNpbmNsdWRlICJtZ2FnMjAwX2Rydi5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21haW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbWFpbi5jCmluZGV4IGRkNjFjY2MuLmE5NzczMzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbWFpbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbWFpbi5jCkBAIC03LDcwICs3LDE1IEBACiAgKiAgICAgICAgICBNYXR0IFR1cm5lcgogICogICAgICAgICAgRGF2ZSBBaXJsaWUKICAqLwotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wY2kuaD4KKwogI2luY2x1ZGUgIm1nYWcyMDBfZHJ2LmgiCiAKLXN0YXRpYyB2b2lkIG1nYV91c2VyX2ZyYW1lYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCi17Ci0Jc3RydWN0IG1nYV9mcmFtZWJ1ZmZlciAqbWdhX2ZiID0gdG9fbWdhX2ZyYW1lYnVmZmVyKGZiKTsKLQotCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChtZ2FfZmItPm9iaik7Ci0JZHJtX2ZyYW1lYnVmZmVyX2NsZWFudXAoZmIpOwotCWtmcmVlKGZiKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgbWdhX2ZiX2Z1bmNzID0gewotCS5kZXN0cm95ID0gbWdhX3VzZXJfZnJhbWVidWZmZXJfZGVzdHJveSwKLX07Ci0KLWludCBtZ2FnMjAwX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgICAgc3RydWN0IG1nYV9mcmFtZWJ1ZmZlciAqZ2ZiLAotCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCi0JCQkgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQotewotCWludCByZXQ7Ci0KLQlkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QoZGV2LCAmZ2ZiLT5iYXNlLCBtb2RlX2NtZCk7Ci0JZ2ZiLT5vYmogPSBvYmo7Ci0JcmV0ID0gZHJtX2ZyYW1lYnVmZmVyX2luaXQoZGV2LCAmZ2ZiLT5iYXNlLCAmbWdhX2ZiX2Z1bmNzKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiZHJtX2ZyYW1lYnVmZmVyX2luaXQgZmFpbGVkOiAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoKLW1nYWcyMDBfdXNlcl9mcmFtZWJ1ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAsCi0JCQkJY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kKQotewotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBtZ2FfZnJhbWVidWZmZXIgKm1nYV9mYjsKLQlpbnQgcmV0OwotCi0Jb2JqID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGZpbHAsIG1vZGVfY21kLT5oYW5kbGVzWzBdKTsKLQlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwotCi0JbWdhX2ZiID0ga3phbGxvYyhzaXplb2YoKm1nYV9mYiksIEdGUF9LRVJORUwpOwotCWlmICghbWdhX2ZiKSB7Ci0JCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOwotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQl9Ci0KLQlyZXQgPSBtZ2FnMjAwX2ZyYW1lYnVmZmVyX2luaXQoZGV2LCBtZ2FfZmIsIG1vZGVfY21kLCBvYmopOwotCWlmIChyZXQpIHsKLQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9iaik7Ci0JCWtmcmVlKG1nYV9mYik7Ci0JCXJldHVybiBFUlJfUFRSKHJldCk7Ci0JfQotCXJldHVybiAmbWdhX2ZiLT5iYXNlOwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyBtZ2FfbW9kZV9mdW5jcyA9IHsKLQkuZmJfY3JlYXRlID0gbWdhZzIwMF91c2VyX2ZyYW1lYnVmZmVyX2NyZWF0ZSwKKwkuZmJfY3JlYXRlID0gZHJtX2dlbV9mYl9jcmVhdGUKIH07CiAKIHN0YXRpYyBpbnQgbWdhX3Byb2JlX3ZyYW0oc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYsIHZvaWQgX19pb21lbSAqbWVtKQpAQCAtMjE3LDcgKzE2Miw3IEBAIGludCBtZ2FnMjAwX2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJaWYgKElTX0cyMDBfU0UobWRldikgJiYgbWRldi0+bWMudnJhbV9zaXplIDwgKDIwNDgqMTAyNCkpCiAJCWRldi0+bW9kZV9jb25maWcucHJlZmVycmVkX2RlcHRoID0gMTY7CiAJZWxzZQotCQlkZXYtPm1vZGVfY29uZmlnLnByZWZlcnJlZF9kZXB0aCA9IDI0OworCQlkZXYtPm1vZGVfY29uZmlnLnByZWZlcnJlZF9kZXB0aCA9IDMyOwogCWRldi0+bW9kZV9jb25maWcucHJlZmVyX3NoYWRvdyA9IDE7CiAKIAlyID0gbWdhZzIwMF9tb2Rlc2V0X2luaXQobWRldik7CkBAIC0yNDEsNiArMTg2LDEwIEBAIGludCBtZ2FnMjAwX2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJfQogCW1kZXYtPmN1cnNvci5waXhlbHNfY3VycmVudCA9IE5VTEw7CiAKKwlyID0gZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAobWRldi0+ZGV2LCAwKTsKKwlpZiAocikKKwkJZ290byBlcnJfbW9kZXNldDsKKwogCXJldHVybiAwOwogCiBlcnJfbW9kZXNldDoKQEAgLTI1OSwzMiArMjA4LDcgQEAgdm9pZCBtZ2FnMjAwX2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAobWRldiA9PSBOVUxMKQogCQlyZXR1cm47CiAJbWdhZzIwMF9tb2Rlc2V0X2ZpbmkobWRldik7Ci0JbWdhZzIwMF9mYmRldl9maW5pKG1kZXYpOwogCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRldik7CiAJbWdhZzIwMF9tbV9maW5pKG1kZXYpOwogCWRldi0+ZGV2X3ByaXZhdGUgPSBOVUxMOwogfQotCi1pbnQgbWdhZzIwMF9nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgIHUzMiBzaXplLCBib29sIGlza2VybmVsLAotCQkgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipvYmopCi17Ci0Jc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibzsKLQlpbnQgcmV0OwotCi0JKm9iaiA9IE5VTEw7Ci0KLQlzaXplID0gcm91bmR1cChzaXplLCBQQUdFX1NJWkUpOwotCWlmIChzaXplID09IDApCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZ2JvID0gZHJtX2dlbV92cmFtX2NyZWF0ZShkZXYsICZkZXYtPnZyYW1fbW0tPmJkZXYsIHNpemUsIDAsIGZhbHNlKTsKLQlpZiAoSVNfRVJSKGdibykpIHsKLQkJcmV0ID0gUFRSX0VSUihnYm8pOwotCQlpZiAocmV0ICE9IC1FUkVTVEFSVFNZUykKLQkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFsbG9jYXRlIEdFTSBvYmplY3RcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQkqb2JqID0gJmdiby0+Z2VtOwotCXJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9tb2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYwppbmRleCBhMjUwNTQwLi41ZTc3OGI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYwpAQCAtMTAsOCArMTAsOSBAQAogCiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wY2kuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKQEAgLTg1OSwyOCArODYwLDE2IEBAIHN0YXRpYyBpbnQgbWdhX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCWludCB4LCBpbnQgeSwgaW50IGF0b21pYykKIHsKLQlzdHJ1Y3QgbWdhX2RldmljZSAqbWRldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IG1nYV9mcmFtZWJ1ZmZlciAqbWdhX2ZiOwogCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm87CiAJaW50IHJldDsKIAlzNjQgZ3B1X2FkZHI7Ci0Jdm9pZCAqYmFzZTsKIAogCWlmICghYXRvbWljICYmIGZiKSB7Ci0JCW1nYV9mYiA9IHRvX21nYV9mcmFtZWJ1ZmZlcihmYik7Ci0JCW9iaiA9IG1nYV9mYi0+b2JqOwotCQlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7Ci0KLQkJLyogdW5tYXAgaWYgY29uc29sZSAqLwotCQlpZiAoJm1kZXYtPm1mYmRldi0+bWZiID09IG1nYV9mYikKLQkJCWRybV9nZW1fdnJhbV9rdW5tYXAoZ2JvKTsKKwkJZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShmYi0+b2JqWzBdKTsKIAkJZHJtX2dlbV92cmFtX3VucGluKGdibyk7CiAJfQogCi0JbWdhX2ZiID0gdG9fbWdhX2ZyYW1lYnVmZmVyKGNydGMtPnByaW1hcnktPmZiKTsKLQlvYmogPSBtZ2FfZmItPm9iajsKLQlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7CisJZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShjcnRjLT5wcmltYXJ5LT5mYi0+b2JqWzBdKTsKIAogCXJldCA9IGRybV9nZW1fdnJhbV9waW4oZ2JvLCBEUk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNKTsKIAlpZiAocmV0KQpAQCAtODkxLDE1ICs4ODAsNiBAQCBzdGF0aWMgaW50IG1nYV9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJZ290byBlcnJfZHJtX2dlbV92cmFtX3VucGluOwogCX0KIAotCWlmICgmbWRldi0+bWZiZGV2LT5tZmIgPT0gbWdhX2ZiKSB7Ci0JCS8qIGlmIHB1c2hpbmcgY29uc29sZSBpbiBrbWFwIGl0ICovCi0JCWJhc2UgPSBkcm1fZ2VtX3ZyYW1fa21hcChnYm8sIHRydWUsIE5VTEwpOwotCQlpZiAoSVNfRVJSKGJhc2UpKSB7Ci0JCQlyZXQgPSBQVFJfRVJSKGJhc2UpOwotCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8ga21hcCBmYmNvblxuIik7Ci0JCX0KLQl9Ci0KIAltZ2Ffc2V0X3N0YXJ0X2FkZHJlc3MoY3J0YywgKHUzMilncHVfYWRkcik7CiAKIAlyZXR1cm4gMDsKQEAgLTE0MjMsMTQgKzE0MDMsOSBAQCBzdGF0aWMgdm9pZCBtZ2FfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlEUk1fREVCVUdfS01TKCJcbiIpOwogCW1nYV9jcnRjX2RwbXMoY3J0YywgRFJNX01PREVfRFBNU19PRkYpOwogCWlmIChjcnRjLT5wcmltYXJ5LT5mYikgewotCQlzdHJ1Y3QgbWdhX2RldmljZSAqbWRldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7Ci0JCXN0cnVjdCBtZ2FfZnJhbWVidWZmZXIgKm1nYV9mYiA9IHRvX21nYV9mcmFtZWJ1ZmZlcihjcnRjLT5wcmltYXJ5LT5mYik7Ci0JCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gbWdhX2ZiLT5vYmo7Ci0JCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7Ci0KLQkJLyogdW5tYXAgaWYgY29uc29sZSAqLwotCQlpZiAoJm1kZXYtPm1mYmRldi0+bWZiID09IG1nYV9mYikKLQkJCWRybV9nZW1fdnJhbV9rdW5tYXAoZ2JvKTsKKwkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5wcmltYXJ5LT5mYjsKKwkJc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibyA9CisJCQlkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGZiLT5vYmpbMF0pOwogCQlkcm1fZ2VtX3ZyYW1fdW5waW4oZ2JvKTsKIAl9CiAJY3J0Yy0+cHJpbWFyeS0+ZmIgPSBOVUxMOwpAQCAtMTcwMywxOCArMTY3OCwxOSBAQCBzdGF0aWMgc3RydWN0IGRybV9jb25uZWN0b3IgKm1nYV92Z2FfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4gTlVMTDsKIAogCWNvbm5lY3RvciA9ICZtZ2FfY29ubmVjdG9yLT5iYXNlOworCW1nYV9jb25uZWN0b3ItPmkyYyA9IG1nYWcyMDBfaTJjX2NyZWF0ZShkZXYpOworCWlmICghbWdhX2Nvbm5lY3Rvci0+aTJjKQorCQlEUk1fRVJST1IoImZhaWxlZCB0byBhZGQgZGRjIGJ1c1xuIik7CiAKLQlkcm1fY29ubmVjdG9yX2luaXQoZGV2LCBjb25uZWN0b3IsCi0JCQkgICAmbWdhX3ZnYV9jb25uZWN0b3JfZnVuY3MsIERSTV9NT0RFX0NPTk5FQ1RPUl9WR0EpOworCWRybV9jb25uZWN0b3JfaW5pdF93aXRoX2RkYyhkZXYsIGNvbm5lY3RvciwKKwkJCQkgICAgJm1nYV92Z2FfY29ubmVjdG9yX2Z1bmNzLAorCQkJCSAgICBEUk1fTU9ERV9DT05ORUNUT1JfVkdBLAorCQkJCSAgICAmbWdhX2Nvbm5lY3Rvci0+aTJjLT5hZGFwdGVyKTsKIAogCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsICZtZ2FfdmdhX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwogCiAJZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwogCi0JbWdhX2Nvbm5lY3Rvci0+aTJjID0gbWdhZzIwMF9pMmNfY3JlYXRlKGRldik7Ci0JaWYgKCFtZ2FfY29ubmVjdG9yLT5pMmMpCi0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGFkZCBkZGMgYnVzXG4iKTsKLQogCXJldHVybiBjb25uZWN0b3I7CiB9CiAKQEAgLTE3MjMsNyArMTY5OSw2IEBAIGludCBtZ2FnMjAwX21vZGVzZXRfaW5pdChzdHJ1Y3QgbWdhX2RldmljZSAqbWRldikKIHsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKLQlpbnQgcmV0OwogCiAJbWRldi0+bW9kZV9pbmZvLm1vZGVfY29uZmlnX2luaXRpYWxpemVkID0gdHJ1ZTsKIApAQCAtMTc0OCwxMiArMTcyMyw2IEBAIGludCBtZ2FnMjAwX21vZGVzZXRfaW5pdChzdHJ1Y3QgbWdhX2RldmljZSAqbWRldikKIAogCWRybV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoY29ubmVjdG9yLCBlbmNvZGVyKTsKIAotCXJldCA9IG1nYWcyMDBfZmJkZXZfaW5pdChtZGV2KTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigibWdhX2ZiZGV2X2luaXQgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfdHRtLmMKaW5kZXggNTkyOTRjMC4uNzNhNmI4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX3R0bS5jCkBAIC0yNSw3ICsyNSw4IEBACiAvKgogICogQXV0aG9yczogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KICAqLwotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX3BjaS5oPgogCiAjaW5jbHVkZSAibWdhZzIwMF9kcnYuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL21zbS9LY29uZmlnCmluZGV4IDljMzdlNGQuLmU5MTYwY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWcKQEAgLTE0LDExICsxNCwxMSBAQAogCXNlbGVjdCBTSE1FTQogCXNlbGVjdCBUTVBGUwogCXNlbGVjdCBRQ09NX1NDTSBpZiBBUkNIX1FDT00KKwlzZWxlY3QgUUNPTV9DT01NQU5EX0RCIGlmIEFSQ0hfUUNPTQogCXNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUAogCXNlbGVjdCBTTkRfU09DX0hETUlfQ09ERUMgaWYgU05EX1NPQwogCXNlbGVjdCBTWU5DX0ZJTEUKIAlzZWxlY3QgUE1fT1BQCi0JZGVmYXVsdCB5CiAJaGVscAogCSAgRFJNL0tNUyBkcml2ZXIgZm9yIE1TTS9zbmFwZHJhZ29uLgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL21zbS9NYWtlZmlsZQppbmRleCA3YTA1Y2JmLi4xNTc5Y2YwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vTWFrZWZpbGUKQEAgLTc1LDYgKzc1LDcgQEAKIAlkaXNwL2RwdTEvZHB1X3JtLm8gXAogCWRpc3AvZHB1MS9kcHVfdmJpZi5vIFwKIAltc21fYXRvbWljLm8gXAorCW1zbV9hdG9taWNfdHJhY2Vwb2ludHMubyBcCiAJbXNtX2RlYnVnZnMubyBcCiAJbXNtX2Rydi5vIFwKIAltc21fZmIubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZGVidWdmcy5jCmluZGV4IDlmMmRkNzYuLjA3NWVjY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZGVidWdmcy5jCkBAIC0yLDkgKzIsMTEgQEAKIC8qIENvcHlyaWdodCAoYykgMjAxNi0yMDE3IFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICovCiAKLQogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogCiAjaW5jbHVkZSAiYTV4eF9ncHUuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ211LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dtdS5jCmluZGV4IDJjYTQ3MGUuLjg1ZjE0ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ211LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9nbXUuYwpAQCAtMTE3Miw3ICsxMTcyLDcgQEAgc3RhdGljIGludCBhNnh4X2dtdV9wd3JsZXZlbHNfcHJvYmUoc3RydWN0IGE2eHhfZ211ICpnbXUpCiAKIHN0YXRpYyBpbnQgYTZ4eF9nbXVfY2xvY2tzX3Byb2JlKHN0cnVjdCBhNnh4X2dtdSAqZ211KQogewotCWludCByZXQgPSBtc21fY2xrX2J1bGtfZ2V0KGdtdS0+ZGV2LCAmZ211LT5jbG9ja3MpOworCWludCByZXQgPSBkZXZtX2Nsa19idWxrX2dldF9hbGwoZ211LT5kZXYsICZnbXUtPmNsb2Nrcyk7CiAKIAlpZiAocmV0IDwgMSkKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19kZXZpY2UuYwppbmRleCA0MDEzM2E0Li4wODg4ZTBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2RldmljZS5jCkBAIC0xODEsNiArMTgxLDcgQEAgTU9EVUxFX0ZJUk1XQVJFKCJxY29tL2E1MzBfemFwLmIwMSIpOwogTU9EVUxFX0ZJUk1XQVJFKCJxY29tL2E1MzBfemFwLmIwMiIpOwogTU9EVUxFX0ZJUk1XQVJFKCJxY29tL2E2MzBfc3FlLmZ3Iik7CiBNT0RVTEVfRklSTVdBUkUoInFjb20vYTYzMF9nbXUuYmluIik7CitNT0RVTEVfRklSTVdBUkUoInFjb20vYTYzMF96YXAubWJuIik7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBfcmV2X21hdGNoKHVpbnQ4X3QgZW50cnksIHVpbnQ4X3QgaWQpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMKaW5kZXggNWNkYTk2OC4uMDlhNDliNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuYwpAQCAtMjE0LDcgKzIxNCw2IEBAIHN0YXRpYyBpbnQgX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVzKHN0cnVjdCBkcHVfa21zICprbXMsCiAgKi8KIHZvaWQgZHB1X2NvcmVfcGVyZl9jcnRjX3JlbGVhc2VfYncoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBkcm1fY3J0YyAqdG1wX2NydGM7CiAJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YzsKIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7CiAJc3RydWN0IGRwdV9rbXMgKmttczsKQEAgLTIzMywyMiArMjMyLDkgQEAgdm9pZCBkcHVfY29yZV9wZXJmX2NydGNfcmVsZWFzZV9idyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKIAlkcHVfY3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwogCi0JLyogb25seSBkbyB0aGlzIGZvciBjb21tYW5kIG1vZGUgcnQgY2xpZW50ICovCi0JaWYgKGRwdV9jcnRjX2dldF9pbnRmX21vZGUoY3J0YykgIT0gSU5URl9NT0RFX0NNRCkKKwlpZiAoYXRvbWljX2RlY19yZXR1cm4oJmttcy0+YmFuZHdpZHRoX3JlZikgPiAwKQogCQlyZXR1cm47CiAKLQkvKgotCSAqIElmIHZpZGVvIGludGVyZmFjZSBwcmVzZW50LCBjbWQgcGFuZWwgYmFuZHdpZHRoIGNhbm5vdCBiZQotCSAqIHJlbGVhc2VkLgotCSAqLwotCWlmIChkcHVfY3J0Y19nZXRfaW50Zl9tb2RlKGNydGMpID09IElOVEZfTU9ERV9DTUQpCi0JCWRybV9mb3JfZWFjaF9jcnRjKHRtcF9jcnRjLCBjcnRjLT5kZXYpIHsKLQkJCWlmICh0bXBfY3J0Yy0+ZW5hYmxlZCAmJgotCQkJCWRwdV9jcnRjX2dldF9pbnRmX21vZGUodG1wX2NydGMpID09Ci0JCQkJCQlJTlRGX01PREVfVklERU8pCi0JCQkJcmV0dXJuOwotCQl9Ci0KIAkvKiBSZWxlYXNlIHRoZSBiYW5kd2lkdGggKi8KIAlpZiAoa21zLT5wZXJmLmVuYWJsZV9id19yZWxlYXNlKSB7CiAJCXRyYWNlX2RwdV9jbWRfcmVsZWFzZV9idyhjcnRjLT5iYXNlLmlkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCmluZGV4IGIzNDE3ZDUuLmNlNTlhZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwpAQCAtOSwxMSArOSwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L3NvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSA8bGludXgva3RpbWUuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmxpcF93b3JrLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tb2RlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAiZHB1X2ttcy5oIgogI2luY2x1ZGUgImRwdV9od19sbS5oIgpAQCAtMjkyLDE5ICsyOTQsNiBAQCB2b2lkIGRwdV9jcnRjX3ZibGFua19jYWxsYmFjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJdHJhY2VfZHB1X2NydGNfdmJsYW5rX2NiKERSTUlEKGNydGMpKTsKIH0KIAotc3RhdGljIHZvaWQgZHB1X2NydGNfcmVsZWFzZV9id191bmxvY2tlZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCi17Ci0JaW50IHJldCA9IDA7Ci0Jc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKLQotCURSTV9NT0RFU0VUX0xPQ0tfQUxMX0JFR0lOKGNydGMtPmRldiwgY3R4LCAwLCByZXQpOwotCWRwdV9jb3JlX3BlcmZfY3J0Y19yZWxlYXNlX2J3KGNydGMpOwotCURSTV9NT0RFU0VUX0xPQ0tfQUxMX0VORChjdHgsIHJldCk7Ci0JaWYgKHJldCkKLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWNxdWlyZSBtb2Rlc2V0IGxvY2tzIHRvIHJlbGVhc2UgYncsICVkXG4iLAotCQkJICByZXQpOwotfQotCiBzdGF0aWMgdm9pZCBkcHVfY3J0Y19mcmFtZV9ldmVudF93b3JrKHN0cnVjdCBrdGhyZWFkX3dvcmsgKndvcmspCiB7CiAJc3RydWN0IGRwdV9jcnRjX2ZyYW1lX2V2ZW50ICpmZXZlbnQgPSBjb250YWluZXJfb2Yod29yaywKQEAgLTMyNCwxNyArMzEzLDEyIEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2ZyYW1lX2V2ZW50X3dvcmsoc3RydWN0IGt0aHJlYWRfd29yayAqd29yaykKIAkJCQl8IERQVV9FTkNPREVSX0ZSQU1FX0VWRU5UX1BBTkVMX0RFQUQpKSB7CiAKIAkJaWYgKGF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykgPCAxKSB7Ci0JCQkvKiB0aGlzIHNob3VsZCBub3QgaGFwcGVuICovCi0JCQlEUk1fRVJST1IoImNydGMlZCBldjoldSB0czolbGxkIGZyYW1lX3BlbmRpbmc6JWRcbiIsCi0JCQkJCWNydGMtPmJhc2UuaWQsCi0JCQkJCWZldmVudC0+ZXZlbnQsCi0JCQkJCWt0aW1lX3RvX25zKGZldmVudC0+dHMpLAotCQkJCQlhdG9taWNfcmVhZCgmZHB1X2NydGMtPmZyYW1lX3BlbmRpbmcpKTsKKwkJCS8qIGlnbm9yZSB2Ymxhbmsgd2hlbiBub3QgcGVuZGluZyAqLwogCQl9IGVsc2UgaWYgKGF0b21pY19kZWNfcmV0dXJuKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykgPT0gMCkgewogCQkJLyogcmVsZWFzZSBiYW5kd2lkdGggYW5kIG90aGVyIHJlc291cmNlcyAqLwogCQkJdHJhY2VfZHB1X2NydGNfZnJhbWVfZXZlbnRfZG9uZShEUk1JRChjcnRjKSwKIAkJCQkJCQlmZXZlbnQtPmV2ZW50KTsKLQkJCWRwdV9jcnRjX3JlbGVhc2VfYndfdW5sb2NrZWQoY3J0Yyk7CisJCQlkcHVfY29yZV9wZXJmX2NydGNfcmVsZWFzZV9idyhjcnRjKTsKIAkJfSBlbHNlIHsKIAkJCXRyYWNlX2RwdV9jcnRjX2ZyYW1lX2V2ZW50X21vcmVfcGVuZGluZyhEUk1JRChjcnRjKSwKIAkJCQkJCQkJZmV2ZW50LT5ldmVudCk7CkBAIC00MDcsMTMgKzM5MSw4IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2ZyYW1lX2V2ZW50X2NiKHZvaWQgKmRhdGEsIHUzMiBldmVudCkKIAlrdGhyZWFkX3F1ZXVlX3dvcmsoJnByaXYtPmV2ZW50X3RocmVhZFtjcnRjX2lkXS53b3JrZXIsICZmZXZlbnQtPndvcmspOwogfQogCi12b2lkIGRwdV9jcnRjX2NvbXBsZXRlX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX3N0YXRlKQordm9pZCBkcHVfY3J0Y19jb21wbGV0ZV9jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCWlmICghY3J0YyB8fCAhY3J0Yy0+c3RhdGUpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGNydGNcbiIpOwotCQlyZXR1cm47Ci0JfQogCXRyYWNlX2RwdV9jcnRjX2NvbXBsZXRlX2NvbW1pdChEUk1JRChjcnRjKSk7CiB9CiAKQEAgLTYyMywxMyArNjAyLDEyIEBAIHN0YXRpYyBpbnQgX2RwdV9jcnRjX3dhaXRfZm9yX2ZyYW1lX2RvbmUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXJldHVybiByYzsKIH0KIAotdm9pZCBkcHVfY3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgYXN5bmMpCit2b2lkIGRwdV9jcnRjX2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CiAJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwogCXN0cnVjdCBkcHVfa21zICpkcHVfa21zID0gX2RwdV9jcnRjX2dldF9rbXMoY3J0Yyk7CiAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Ci0JaW50IHJldDsKIAogCS8qCiAJICogSWYgbm8gbWl4ZXJzIGhhcyBiZWVuIGFsbG9jYXRlZCBpbiBkcHVfY3J0Y19hdG9taWNfY2hlY2soKSwKQEAgLTY0NywzNyArNjI1LDIyIEBAIHZvaWQgZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIGFzeW5jKQogCSAqLwogCWRybV9mb3JfZWFjaF9lbmNvZGVyX21hc2soZW5jb2RlciwgY3J0Yy0+ZGV2LAogCQkJCSAgY3J0Yy0+c3RhdGUtPmVuY29kZXJfbWFzaykKLQkJZHB1X2VuY29kZXJfcHJlcGFyZV9mb3Jfa2lja29mZihlbmNvZGVyLCBhc3luYyk7CisJCWRwdV9lbmNvZGVyX3ByZXBhcmVfZm9yX2tpY2tvZmYoZW5jb2Rlcik7CiAKLQlpZiAoIWFzeW5jKSB7Ci0JCS8qIHdhaXQgZm9yIGZyYW1lX2V2ZW50X2RvbmUgY29tcGxldGlvbiAqLwotCQlEUFVfQVRSQUNFX0JFR0lOKCJ3YWl0X2Zvcl9mcmFtZV9kb25lX2V2ZW50Iik7Ci0JCXJldCA9IF9kcHVfY3J0Y193YWl0X2Zvcl9mcmFtZV9kb25lKGNydGMpOwotCQlEUFVfQVRSQUNFX0VORCgid2FpdF9mb3JfZnJhbWVfZG9uZV9ldmVudCIpOwotCQlpZiAocmV0KSB7Ci0JCQlEUFVfRVJST1IoImNydGMlZCB3YWl0IGZvciBmcmFtZSBkb25lIGZhaWxlZDtmcmFtZV9wZW5kaW5nJWRcbiIsCi0JCQkJCWNydGMtPmJhc2UuaWQsCi0JCQkJCWF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykpOwotCQkJZ290byBlbmQ7Ci0JCX0KKwlpZiAoYXRvbWljX2luY19yZXR1cm4oJmRwdV9jcnRjLT5mcmFtZV9wZW5kaW5nKSA9PSAxKSB7CisJCS8qIGFjcXVpcmUgYmFuZHdpZHRoIGFuZCBvdGhlciByZXNvdXJjZXMgKi8KKwkJRFBVX0RFQlVHKCJjcnRjJWQgZmlyc3QgY29tbWl0XG4iLCBjcnRjLT5iYXNlLmlkKTsKKwl9IGVsc2UKKwkJRFBVX0RFQlVHKCJjcnRjJWQgY29tbWl0XG4iLCBjcnRjLT5iYXNlLmlkKTsKIAotCQlpZiAoYXRvbWljX2luY19yZXR1cm4oJmRwdV9jcnRjLT5mcmFtZV9wZW5kaW5nKSA9PSAxKSB7Ci0JCQkvKiBhY3F1aXJlIGJhbmR3aWR0aCBhbmQgb3RoZXIgcmVzb3VyY2VzICovCi0JCQlEUFVfREVCVUcoImNydGMlZCBmaXJzdCBjb21taXRcbiIsIGNydGMtPmJhc2UuaWQpOwotCQl9IGVsc2UKLQkJCURQVV9ERUJVRygiY3J0YyVkIGNvbW1pdFxuIiwgY3J0Yy0+YmFzZS5pZCk7Ci0KLQkJZHB1X2NydGMtPnBsYXlfY291bnQrKzsKLQl9CisJZHB1X2NydGMtPnBsYXlfY291bnQrKzsKIAogCWRwdV92YmlmX2NsZWFyX2Vycm9ycyhkcHVfa21zKTsKIAogCWRybV9mb3JfZWFjaF9lbmNvZGVyX21hc2soZW5jb2RlciwgY3J0Yy0+ZGV2LCBjcnRjLT5zdGF0ZS0+ZW5jb2Rlcl9tYXNrKQotCQlkcHVfZW5jb2Rlcl9raWNrb2ZmKGVuY29kZXIsIGFzeW5jKTsKKwkJZHB1X2VuY29kZXJfa2lja29mZihlbmNvZGVyKTsKIAotZW5kOgotCWlmICghYXN5bmMpCi0JCXJlaW5pdF9jb21wbGV0aW9uKCZkcHVfY3J0Yy0+ZnJhbWVfZG9uZV9jb21wKTsKKwlyZWluaXRfY29tcGxldGlvbigmZHB1X2NydGMtPmZyYW1lX2RvbmVfY29tcCk7CiAJRFBVX0FUUkFDRV9FTkQoImNydGNfY29tbWl0Iik7CiB9CiAKQEAgLTcyOSw2ICs2OTIsNyBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCWJvb2wgcmVsZWFzZV9iYW5kd2lkdGggPSBmYWxzZTsKIAogCWlmICghY3J0YyB8fCAhY3J0Yy0+ZGV2IHx8ICFjcnRjLT5kZXYtPmRldl9wcml2YXRlIHx8ICFjcnRjLT5zdGF0ZSkgewogCQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xuIik7CkBAIC03NDUsOCArNzA5LDE1IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CiAKIAlkcm1fZm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIGNydGMtPmRldiwKLQkJCQkgIG9sZF9jcnRjX3N0YXRlLT5lbmNvZGVyX21hc2spCisJCQkJICBvbGRfY3J0Y19zdGF0ZS0+ZW5jb2Rlcl9tYXNrKSB7CisJCS8qIGluIHZpZGVvIG1vZGUsIHdlIGhvbGQgYW4gZXh0cmEgYmFuZHdpZHRoIHJlZmVyZW5jZQorCQkgKiBhcyB3ZSBjYW5ub3QgZHJvcCBiYW5kd2lkdGggYXQgZnJhbWUtZG9uZSBpZiBhbnkKKwkJICogY3J0YyBpcyBiZWluZyB1c2VkIGluIHZpZGVvIG1vZGUuCisJCSAqLworCQlpZiAoZHB1X2VuY29kZXJfZ2V0X2ludGZfbW9kZShlbmNvZGVyKSA9PSBJTlRGX01PREVfVklERU8pCisJCQlyZWxlYXNlX2JhbmR3aWR0aCA9IHRydWU7CiAJCWRwdV9lbmNvZGVyX2Fzc2lnbl9jcnRjKGVuY29kZXIsIE5VTEwpOworCX0KIAogCS8qIHdhaXQgZm9yIGZyYW1lX2V2ZW50X2RvbmUgY29tcGxldGlvbiAqLwogCWlmIChfZHB1X2NydGNfd2FpdF9mb3JfZnJhbWVfZG9uZShjcnRjKSkKQEAgLTc2MCw3ICs3MzEsOCBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpZiAoYXRvbWljX3JlYWQoJmRwdV9jcnRjLT5mcmFtZV9wZW5kaW5nKSkgewogCQl0cmFjZV9kcHVfY3J0Y19kaXNhYmxlX2ZyYW1lX3BlbmRpbmcoRFJNSUQoY3J0YyksCiAJCQkJICAgICBhdG9taWNfcmVhZCgmZHB1X2NydGMtPmZyYW1lX3BlbmRpbmcpKTsKLQkJZHB1X2NvcmVfcGVyZl9jcnRjX3JlbGVhc2VfYncoY3J0Yyk7CisJCWlmIChyZWxlYXNlX2JhbmR3aWR0aCkKKwkJCWRwdV9jb3JlX3BlcmZfY3J0Y19yZWxlYXNlX2J3KGNydGMpOwogCQlhdG9taWNfc2V0KCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZywgMCk7CiAJfQogCkBAIC03OTIsNiArNzY0LDcgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2OworCWJvb2wgcmVxdWVzdF9iYW5kd2lkdGg7CiAKIAlpZiAoIWNydGMgfHwgIWNydGMtPmRldiB8fCAhY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZSkgewogCQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xuIik7CkBAIC04MDQsOSArNzc3LDE5IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJRFJNX0RFQlVHX0tNUygiY3J0YyVkXG4iLCBjcnRjLT5iYXNlLmlkKTsKIAlkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwogCi0JZHJtX2Zvcl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBjcnRjLT5kZXYsIGNydGMtPnN0YXRlLT5lbmNvZGVyX21hc2spCisJZHJtX2Zvcl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBjcnRjLT5kZXYsIGNydGMtPnN0YXRlLT5lbmNvZGVyX21hc2spIHsKKwkJLyogaW4gdmlkZW8gbW9kZSwgd2UgaG9sZCBhbiBleHRyYSBiYW5kd2lkdGggcmVmZXJlbmNlCisJCSAqIGFzIHdlIGNhbm5vdCBkcm9wIGJhbmR3aWR0aCBhdCBmcmFtZS1kb25lIGlmIGFueQorCQkgKiBjcnRjIGlzIGJlaW5nIHVzZWQgaW4gdmlkZW8gbW9kZS4KKwkJICovCisJCWlmIChkcHVfZW5jb2Rlcl9nZXRfaW50Zl9tb2RlKGVuY29kZXIpID09IElOVEZfTU9ERV9WSURFTykKKwkJCXJlcXVlc3RfYmFuZHdpZHRoID0gdHJ1ZTsKIAkJZHB1X2VuY29kZXJfcmVnaXN0ZXJfZnJhbWVfZXZlbnRfY2FsbGJhY2soZW5jb2RlciwKIAkJCQlkcHVfY3J0Y19mcmFtZV9ldmVudF9jYiwgKHZvaWQgKiljcnRjKTsKKwl9CisKKwlpZiAocmVxdWVzdF9iYW5kd2lkdGgpCisJCWF0b21pY19pbmMoJl9kcHVfY3J0Y19nZXRfa21zKGNydGMpLT5iYW5kd2lkdGhfcmVmKTsKIAogCXRyYWNlX2RwdV9jcnRjX2VuYWJsZShEUk1JRChjcnRjKSwgdHJ1ZSwgZHB1X2NydGMpOwogCWRwdV9jcnRjLT5lbmFibGVkID0gdHJ1ZTsKQEAgLTk4MSw2ICs5NjQsOCBAQCBzdGF0aWMgaW50IGRwdV9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCX0KIAl9CiAKKwlhdG9taWNfaW5jKCZfZHB1X2NydGNfZ2V0X2ttcyhjcnRjKS0+YmFuZHdpZHRoX3JlZik7CisKIAlyYyA9IGRwdV9jb3JlX3BlcmZfY3J0Y19jaGVjayhjcnRjLCBzdGF0ZSk7CiAJaWYgKHJjKSB7CiAJCURQVV9FUlJPUigiY3J0YyVkIGZhaWxlZCBwZXJmb3JtYW5jZSBjaGVjayAlZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCmluZGV4IDUxODFmMDcuLjUxNzRlODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaApAQCAtMjM4LDE3ICsyMzgsMTQgQEAgdm9pZCBkcHVfY3J0Y192YmxhbmtfY2FsbGJhY2soc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIC8qKgogICogZHB1X2NydGNfY29tbWl0X2tpY2tvZmYgLSB0cmlnZ2VyIGtpY2tvZmYgb2YgdGhlIGNvbW1pdCBmb3IgdGhpcyBjcnRjCiAgKiBAY3J0YzogUG9pbnRlciB0byBkcm0gY3J0YyBvYmplY3QKLSAqIEBhc3luYzogdHJ1ZSBpZiB0aGUgY29tbWl0IGlzIGFzeW5jaHJvbm91cywgZmFsc2Ugb3RoZXJ3aXNlCiAgKi8KLXZvaWQgZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIGFzeW5jKTsKK3ZvaWQgZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIAogLyoqCiAgKiBkcHVfY3J0Y19jb21wbGV0ZV9jb21taXQgLSBjYWxsYmFjayBzaWduYWxsaW5nIGNvbXBsZXRpb24gb2YgY3VycmVudCBjb21taXQKICAqIEBjcnRjOiBQb2ludGVyIHRvIGRybSBjcnRjIG9iamVjdAotICogQG9sZF9zdGF0ZTogUG9pbnRlciB0byBkcm0gY3J0YyBvbGQgc3RhdGUgb2JqZWN0CiAgKi8KLXZvaWQgZHB1X2NydGNfY29tcGxldGVfY29tbWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfc3RhdGUpOwordm9pZCBkcHVfY3J0Y19jb21wbGV0ZV9jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIAogLyoqCiAgKiBkcHVfY3J0Y19pbml0IC0gY3JlYXRlIGEgbmV3IGNydGMgb2JqZWN0CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwppbmRleCAwYWE4YTEyLi5kODJlYTk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKQEAgLTYsMTQgKzYsMTYgQEAKICAqLwogCiAjZGVmaW5lIHByX2ZtdChmbXQpCSJbZHJtOiVzOiVkXSAiIGZtdCwgX19mdW5jX18sIF9fTElORV9fCi0jaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgogI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisKICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAiZHB1X2ttcy5oIgotI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAjaW5jbHVkZSAiZHB1X2h3aW8uaCIKICNpbmNsdWRlICJkcHVfaHdfY2F0YWxvZy5oIgogI2luY2x1ZGUgImRwdV9od19pbnRmLmgiCkBAIC0xNDIxLDE5ICsxNDIzLDEyIEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX29mZl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKICAqIGV4dHJhX2ZsdXNoX2JpdHM6IEFkZGl0aW9uYWwgYml0IG1hc2sgdG8gaW5jbHVkZSBpbiBmbHVzaCB0cmlnZ2VyCiAgKi8KIHN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl90cmlnZ2VyX2ZsdXNoKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKLQkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMsIHVpbnQzMl90IGV4dHJhX2ZsdXNoX2JpdHMsCi0JCWJvb2wgYXN5bmMpCisJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzLCB1aW50MzJfdCBleHRyYV9mbHVzaF9iaXRzKQogewogCXN0cnVjdCBkcHVfaHdfY3RsICpjdGw7CiAJaW50IHBlbmRpbmdfa2lja29mZl9jbnQ7CiAJdTMyIHJldCA9IFVJTlRfTUFYOwogCi0JaWYgKCFkcm1fZW5jIHx8ICFwaHlzKSB7Ci0JCURQVV9FUlJPUigiaW52YWxpZCBhcmd1bWVudChzKSwgZHJtX2VuYyAlZCwgcGh5c19lbmMgJWRcbiIsCi0JCQkJZHJtX2VuYyAhPSAwLCBwaHlzICE9IDApOwotCQlyZXR1cm47Ci0JfQotCiAJaWYgKCFwaHlzLT5od19wcCkgewogCQlEUFVfRVJST1IoImludmFsaWQgcGluZ3BvbmcgaHdcbiIpOwogCQlyZXR1cm47CkBAIC0xNDQ1LDEwICsxNDQwLDcgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1c2goc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogCQlyZXR1cm47CiAJfQogCi0JaWYgKCFhc3luYykKLQkJcGVuZGluZ19raWNrb2ZmX2NudCA9IGRwdV9lbmNvZGVyX3BoeXNfaW5jX3BlbmRpbmcocGh5cyk7Ci0JZWxzZQotCQlwZW5kaW5nX2tpY2tvZmZfY250ID0gYXRvbWljX3JlYWQoJnBoeXMtPnBlbmRpbmdfa2lja29mZl9jbnQpOworCXBlbmRpbmdfa2lja29mZl9jbnQgPSBkcHVfZW5jb2Rlcl9waHlzX2luY19wZW5kaW5nKHBoeXMpOwogCiAJaWYgKGV4dHJhX2ZsdXNoX2JpdHMgJiYgY3RsLT5vcHMudXBkYXRlX3BlbmRpbmdfZmx1c2gpCiAJCWN0bC0+b3BzLnVwZGF0ZV9wZW5kaW5nX2ZsdXNoKGN0bCwgZXh0cmFfZmx1c2hfYml0cyk7CkBAIC0xNTU5LDE4ICsxNTUxLDEyIEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX2hlbHBlcl9od19yZXNldChzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCiAgKglhIHRpbWUuCiAgKiBkcHVfZW5jOiBQb2ludGVyIHRvIHZpcnR1YWwgZW5jb2RlciBzdHJ1Y3R1cmUKICAqLwotc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5cyhzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYywKLQkJCQkgICAgICBib29sIGFzeW5jKQorc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5cyhzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYykKIHsKIAlzdHJ1Y3QgZHB1X2h3X2N0bCAqY3RsOwogCXVpbnQzMl90IGksIHBlbmRpbmdfZmx1c2g7CiAJdW5zaWduZWQgbG9uZyBsb2NrX2ZsYWdzOwogCi0JaWYgKCFkcHVfZW5jKSB7Ci0JCURQVV9FUlJPUigiaW52YWxpZCBlbmNvZGVyXG4iKTsKLQkJcmV0dXJuOwotCX0KLQogCXBlbmRpbmdfZmx1c2ggPSAweDA7CiAKIAkvKiB1cGRhdGUgcGVuZGluZyBjb3VudHMgYW5kIHRyaWdnZXIga2lja29mZiBjdGwgZmx1c2ggYXRvbWljYWxseSAqLwpAQCAtMTU5MiwxMyArMTU3OCwxMiBAQCBzdGF0aWMgdm9pZCBfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKHN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jLAogCQkgKiBmb3IgYXN5bmMgY29tbWl0cy4gU28gZG9uJ3Qgc2V0IHRoaXMgZm9yIGFzeW5jLCBzaW5jZSBpdCdsbAogCQkgKiByb2xsIG92ZXIgdG8gdGhlIG5leHQgY29tbWl0LgogCQkgKi8KLQkJaWYgKCFhc3luYyAmJiBwaHlzLT5zcGxpdF9yb2xlICE9IEVOQ19ST0xFX1NMQVZFKQorCQlpZiAocGh5cy0+c3BsaXRfcm9sZSAhPSBFTkNfUk9MRV9TTEFWRSkKIAkJCXNldF9iaXQoaSwgZHB1X2VuYy0+ZnJhbWVfYnVzeV9tYXNrKTsKIAogCQlpZiAoIXBoeXMtPm9wcy5uZWVkc19zaW5nbGVfZmx1c2ggfHwKIAkJCQkhcGh5cy0+b3BzLm5lZWRzX3NpbmdsZV9mbHVzaChwaHlzKSkKLQkJCV9kcHVfZW5jb2Rlcl90cmlnZ2VyX2ZsdXNoKCZkcHVfZW5jLT5iYXNlLCBwaHlzLCAweDAsCi0JCQkJCQkgICBhc3luYyk7CisJCQlfZHB1X2VuY29kZXJfdHJpZ2dlcl9mbHVzaCgmZHB1X2VuYy0+YmFzZSwgcGh5cywgMHgwKTsKIAkJZWxzZSBpZiAoY3RsLT5vcHMuZ2V0X3BlbmRpbmdfZmx1c2gpCiAJCQlwZW5kaW5nX2ZsdXNoIHw9IGN0bC0+b3BzLmdldF9wZW5kaW5nX2ZsdXNoKGN0bCk7CiAJfQpAQCAtMTYwOCw3ICsxNTkzLDcgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5cyhzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYywKIAkJX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1c2goCiAJCQkJJmRwdV9lbmMtPmJhc2UsCiAJCQkJZHB1X2VuYy0+Y3VyX21hc3RlciwKLQkJCQlwZW5kaW5nX2ZsdXNoLCBhc3luYyk7CisJCQkJcGVuZGluZ19mbHVzaCk7CiAJfQogCiAJX2RwdV9lbmNvZGVyX3RyaWdnZXJfc3RhcnQoZHB1X2VuYy0+Y3VyX21hc3Rlcik7CkBAIC0xNjk1LDggKzE2ODAsNyBAQCBzdGF0aWMgdTMyIF9kcHVfZW5jb2Rlcl9jYWxjdWxhdGVfbGluZXRpbWUoc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmMsCiAJcmV0dXJuIGxpbmVfdGltZTsKIH0KIAotc3RhdGljIGludCBfZHB1X2VuY29kZXJfd2FrZXVwX3RpbWUoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAotCQlrdGltZV90ICp3YWtldXBfdGltZSkKK2ludCBkcHVfZW5jb2Rlcl92c3luY190aW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywga3RpbWVfdCAqd2FrZXVwX3RpbWUpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmM7CkBAIC0xNzgzLDcgKzE3NjcsNyBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92c3luY19ldmVudF93b3JrX2hhbmRsZXIoc3RydWN0IGt0aHJlYWRfd29yayAqd29yaykKIAkJcmV0dXJuOwogCX0KIAotCWlmIChfZHB1X2VuY29kZXJfd2FrZXVwX3RpbWUoJmRwdV9lbmMtPmJhc2UsICZ3YWtldXBfdGltZSkpCisJaWYgKGRwdV9lbmNvZGVyX3ZzeW5jX3RpbWUoJmRwdV9lbmMtPmJhc2UsICZ3YWtldXBfdGltZSkpCiAJCXJldHVybjsKIAogCXRyYWNlX2RwdV9lbmNfdnN5bmNfZXZlbnRfd29yayhEUk1JRCgmZHB1X2VuYy0+YmFzZSksIHdha2V1cF90aW1lKTsKQEAgLTE3OTEsMTcgKzE3NzUsMTMgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfdnN5bmNfZXZlbnRfd29ya19oYW5kbGVyKHN0cnVjdCBrdGhyZWFkX3dvcmsgKndvcmspCiAJCQluc2Vjc190b19qaWZmaWVzKGt0aW1lX3RvX25zKHdha2V1cF90aW1lKSkpOwogfQogCi12b2lkIGRwdV9lbmNvZGVyX3ByZXBhcmVfZm9yX2tpY2tvZmYoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLCBib29sIGFzeW5jKQordm9pZCBkcHVfZW5jb2Rlcl9wcmVwYXJlX2Zvcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYykKIHsKIAlzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYzsKIAlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5czsKIAlib29sIG5lZWRzX2h3X3Jlc2V0ID0gZmFsc2U7CiAJdW5zaWduZWQgaW50IGk7CiAKLQlpZiAoIWRybV9lbmMpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGFyZ3NcbiIpOwotCQlyZXR1cm47Ci0JfQogCWRwdV9lbmMgPSB0b19kcHVfZW5jb2Rlcl92aXJ0KGRybV9lbmMpOwogCiAJdHJhY2VfZHB1X2VuY19wcmVwYXJlX2tpY2tvZmYoRFJNSUQoZHJtX2VuYykpOwpAQCAtMTgzMCwzOSArMTgxMCwyOCBAQCB2b2lkIGRwdV9lbmNvZGVyX3ByZXBhcmVfZm9yX2tpY2tvZmYoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLCBib29sIGFzeW5jKQogCX0KIH0KIAotdm9pZCBkcHVfZW5jb2Rlcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywgYm9vbCBhc3luYykKK3ZvaWQgZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMpCiB7CiAJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmM7CiAJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXM7CiAJa3RpbWVfdCB3YWtldXBfdGltZTsKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXRfbXM7CiAJdW5zaWduZWQgaW50IGk7CiAKLQlpZiAoIWRybV9lbmMpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGVuY29kZXJcbiIpOwotCQlyZXR1cm47Ci0JfQogCURQVV9BVFJBQ0VfQkVHSU4oImVuY29kZXJfa2lja29mZiIpOwogCWRwdV9lbmMgPSB0b19kcHVfZW5jb2Rlcl92aXJ0KGRybV9lbmMpOwogCiAJdHJhY2VfZHB1X2VuY19raWNrb2ZmKERSTUlEKGRybV9lbmMpKTsKIAotCS8qCi0JICogQXN5bmNocm9ub3VzIGZyYW1lcyBkb24ndCBoYW5kbGUgRlJBTUVfRE9ORSBldmVudHMuIEFzIHN1Y2gsIHRoZXkKLQkgKiBzaG91bGRuJ3QgZW5hYmxlIHRoZSBmcmFtZV9kb25lIHdhdGNoZG9nIHNpbmNlIGl0IHdpbGwgYWx3YXlzIHRpbWUKLQkgKiBvdXQuCi0JICovCi0JaWYgKCFhc3luYykgewotCQl1bnNpZ25lZCBsb25nIHRpbWVvdXRfbXM7Ci0JCXRpbWVvdXRfbXMgPSBEUFVfRU5DT0RFUl9GUkFNRV9ET05FX1RJTUVPVVRfRlJBTUVTICogMTAwMCAvCisJdGltZW91dF9tcyA9IERQVV9FTkNPREVSX0ZSQU1FX0RPTkVfVElNRU9VVF9GUkFNRVMgKiAxMDAwIC8KIAkJCWRybV9tb2RlX3ZyZWZyZXNoKCZkcm1fZW5jLT5jcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZSk7CiAKLQkJYXRvbWljX3NldCgmZHB1X2VuYy0+ZnJhbWVfZG9uZV90aW1lb3V0X21zLCB0aW1lb3V0X21zKTsKLQkJbW9kX3RpbWVyKCZkcHVfZW5jLT5mcmFtZV9kb25lX3RpbWVyLAotCQkJICBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcyh0aW1lb3V0X21zKSk7Ci0JfQorCWF0b21pY19zZXQoJmRwdV9lbmMtPmZyYW1lX2RvbmVfdGltZW91dF9tcywgdGltZW91dF9tcyk7CisJbW9kX3RpbWVyKCZkcHVfZW5jLT5mcmFtZV9kb25lX3RpbWVyLAorCQkJamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXModGltZW91dF9tcykpOwogCiAJLyogQWxsIHBoeXMgZW5jcyBhcmUgcmVhZHkgdG8gZ28sIHRyaWdnZXIgdGhlIGtpY2tvZmYgKi8KLQlfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKGRwdV9lbmMsIGFzeW5jKTsKKwlfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKGRwdV9lbmMpOwogCiAJLyogYWxsb3cgcGh5cyBlbmNzIHRvIGhhbmRsZSBhbnkgcG9zdC1raWNrb2ZmIGJ1c2luZXNzICovCiAJZm9yIChpID0gMDsgaSA8IGRwdV9lbmMtPm51bV9waHlzX2VuY3M7IGkrKykgewpAQCAtMTg3Miw3ICsxODQxLDcgQEAgdm9pZCBkcHVfZW5jb2Rlcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywgYm9vbCBhc3luYykKIAl9CiAKIAlpZiAoZHB1X2VuYy0+ZGlzcF9pbmZvLmludGZfdHlwZSA9PSBEUk1fTU9ERV9FTkNPREVSX0RTSSAmJgotCQkJIV9kcHVfZW5jb2Rlcl93YWtldXBfdGltZShkcm1fZW5jLCAmd2FrZXVwX3RpbWUpKSB7CisJCQkhZHB1X2VuY29kZXJfdnN5bmNfdGltZShkcm1fZW5jLCAmd2FrZXVwX3RpbWUpKSB7CiAJCXRyYWNlX2RwdV9lbmNfZWFybHlfa2lja29mZihEUk1JRChkcm1fZW5jKSwKIAkJCQkJICAgIGt0aW1lX3RvX21zKHdha2V1cF90aW1lKSk7CiAJCW1vZF90aW1lcigmZHB1X2VuYy0+dnN5bmNfZXZlbnRfdGltZXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAppbmRleCBhOGJmMTE0Li5iNDkxMzQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKQEAgLTY4LDkgKzY4LDggQEAgdm9pZCBkcHVfZW5jb2Rlcl9yZWdpc3Rlcl9mcmFtZV9ldmVudF9jYWxsYmFjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAgKglJbW1lZGlhdGVseTogaWYgbm8gcHJldmlvdXMgY29tbWl0IGlzIG91dHN0YW5kaW5nLgogICoJRGVsYXllZDogQmxvY2sgdW50aWwgbmV4dCB0cmlnZ2VyIGNhbiBiZSBpc3N1ZWQuCiAgKiBAZW5jb2RlcjoJZW5jb2RlciBwb2ludGVyCi0gKiBAYXN5bmM6CXRydWUgaWYgdGhpcyBpcyBhbiBhc3luY2hyb25vdXMgY29tbWl0CiAgKi8KLXZvaWQgZHB1X2VuY29kZXJfcHJlcGFyZV9mb3Jfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsICBib29sIGFzeW5jKTsKK3ZvaWQgZHB1X2VuY29kZXJfcHJlcGFyZV9mb3Jfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwogCiAvKioKICAqIGRwdV9lbmNvZGVyX3RyaWdnZXJfa2lja29mZl9wZW5kaW5nIC0gQ2xlYXIgdGhlIGZsdXNoIGJpdHMgZnJvbSBwcmV2aW91cwpAQCAtODMsOSArODIsMTMgQEAgdm9pZCBkcHVfZW5jb2Rlcl90cmlnZ2VyX2tpY2tvZmZfcGVuZGluZyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwogICogZHB1X2VuY29kZXJfa2lja29mZiAtIHRyaWdnZXIgYSBkb3VibGUgYnVmZmVyIGZsaXAgb2YgdGhlIGN0bCBwYXRoCiAgKgkoaS5lLiBjdGwgZmx1c2ggYW5kIHN0YXJ0KSBpbW1lZGlhdGVseS4KICAqIEBlbmNvZGVyOgllbmNvZGVyIHBvaW50ZXIKLSAqIEBhc3luYzoJdHJ1ZSBpZiB0aGlzIGlzIGFuIGFzeW5jaHJvbm91cyBjb21taXQKICAqLwotdm9pZCBkcHVfZW5jb2Rlcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgYm9vbCBhc3luYyk7Cit2b2lkIGRwdV9lbmNvZGVyX2tpY2tvZmYoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKKworLyoqCisgKiBkcHVfZW5jb2Rlcl93YWtldXBfdGltZSAtIGdldCB0aGUgdGltZSBvZiB0aGUgbmV4dCB2c3luYworICovCitpbnQgZHB1X2VuY29kZXJfdnN5bmNfdGltZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsIGt0aW1lX3QgKndha2V1cF90aW1lKTsKIAogLyoqCiAgKiBkcHVfZW5jb2Rlcl93YWl0X2Zvcl9ldmVudCAtIFdhaXRzIGZvciBlbmNvZGVyIGV2ZW50cwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c19jbWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfY21kLmMKaW5kZXggMWIzYWI5MC4uMjkyM2I2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c19jbWQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX2NtZC5jCkBAIC03MjAsOSArNzIwLDYgQEAgc3RhdGljIGludCBkcHVfZW5jb2Rlcl9waHlzX2NtZF93YWl0X2Zvcl92YmxhbmsoCiBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9oYW5kbGVfcG9zdF9raWNrb2ZmKAogCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCiB7Ci0JaWYgKCFwaHlzX2VuYykKLQkJcmV0dXJuOwotCiAJLyoqCiAJICogcmUtZW5hYmxlIGV4dGVybmFsIFRFLCBlaXRoZXIgZm9yIHRoZSBmaXJzdCB0aW1lIGFmdGVyIGVuYWJsaW5nCiAJICogb3IgaWYgZGlzYWJsZWQgZm9yIEF1dG9yZWZyZXNoCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYwppbmRleCA1MDU1YTVlLi5iOWM4NGZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMKQEAgLTMyNCw2ICszMjQsMTAgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfdmJsYW5rX2lycSh2b2lkICphcmcsIGludCBpcnFfaWR4KQogCiAJLyogU2lnbmFsIGFueSB3YWl0aW5nIGF0b21pYyBjb21taXQgdGhyZWFkICovCiAJd2FrZV91cF9hbGwoJnBoeXNfZW5jLT5wZW5kaW5nX2tpY2tvZmZfd3EpOworCisJcGh5c19lbmMtPnBhcmVudF9vcHMtPmhhbmRsZV9mcmFtZV9kb25lKHBoeXNfZW5jLT5wYXJlbnQsIHBoeXNfZW5jLAorCQkJRFBVX0VOQ09ERVJfRlJBTUVfRVZFTlRfRE9ORSk7CisKIAlEUFVfQVRSQUNFX0VORCgidmJsYW5rX2lycSIpOwogfQogCkBAIC00ODMsOCArNDg3LDggQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfZ2V0X2h3X3Jlc291cmNlcygKIAlod19yZXMtPmludGZzW3BoeXNfZW5jLT5pbnRmX2lkeCAtIElOVEZfMF0gPSBJTlRGX01PREVfVklERU87CiB9CiAKLXN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX3BoeXNfdmlkX3dhaXRfZm9yX3ZibGFuaygKLQkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jLCBib29sIG5vdGlmeSkKK3N0YXRpYyBpbnQgZHB1X2VuY29kZXJfcGh5c192aWRfd2FpdF9mb3JfdmJsYW5rKAorCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCiB7CiAJc3RydWN0IGRwdV9lbmNvZGVyX3dhaXRfaW5mbyB3YWl0X2luZm87CiAJaW50IHJldDsKQEAgLTQ5OSwxMCArNTAzLDYgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJfcGh5c192aWRfd2FpdF9mb3JfdmJsYW5rKAogCXdhaXRfaW5mby50aW1lb3V0X21zID0gS0lDS09GRl9USU1FT1VUX01TOwogCiAJaWYgKCFkcHVfZW5jb2Rlcl9waHlzX3ZpZF9pc19tYXN0ZXIocGh5c19lbmMpKSB7Ci0JCWlmIChub3RpZnkgJiYgcGh5c19lbmMtPnBhcmVudF9vcHMtPmhhbmRsZV9mcmFtZV9kb25lKQotCQkJcGh5c19lbmMtPnBhcmVudF9vcHMtPmhhbmRsZV9mcmFtZV9kb25lKAotCQkJCQlwaHlzX2VuYy0+cGFyZW50LCBwaHlzX2VuYywKLQkJCQkJRFBVX0VOQ09ERVJfRlJBTUVfRVZFTlRfRE9ORSk7CiAJCXJldHVybiAwOwogCX0KIApAQCAtNTEyLDE4ICs1MTIsMjkgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJfcGh5c192aWRfd2FpdF9mb3JfdmJsYW5rKAogCiAJaWYgKHJldCA9PSAtRVRJTUVET1VUKSB7CiAJCWRwdV9lbmNvZGVyX2hlbHBlcl9yZXBvcnRfaXJxX3RpbWVvdXQocGh5c19lbmMsIElOVFJfSURYX1ZTWU5DKTsKLQl9IGVsc2UgaWYgKCFyZXQgJiYgbm90aWZ5ICYmIHBoeXNfZW5jLT5wYXJlbnRfb3BzLT5oYW5kbGVfZnJhbWVfZG9uZSkKLQkJcGh5c19lbmMtPnBhcmVudF9vcHMtPmhhbmRsZV9mcmFtZV9kb25lKAotCQkJCXBoeXNfZW5jLT5wYXJlbnQsIHBoeXNfZW5jLAotCQkJCURQVV9FTkNPREVSX0ZSQU1FX0VWRU5UX0RPTkUpOworCX0KIAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZHB1X2VuY29kZXJfcGh5c192aWRfd2FpdF9mb3JfdmJsYW5rKAorc3RhdGljIGludCBkcHVfZW5jb2Rlcl9waHlzX3ZpZF93YWl0X2Zvcl9jb21taXRfZG9uZSgKIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQogewotCXJldHVybiBfZHB1X2VuY29kZXJfcGh5c192aWRfd2FpdF9mb3JfdmJsYW5rKHBoeXNfZW5jLCB0cnVlKTsKKwlzdHJ1Y3QgZHB1X2h3X2N0bCAqaHdfY3RsID0gcGh5c19lbmMtPmh3X2N0bDsKKwlpbnQgcmV0OworCisJaWYgKCFod19jdGwpCisJCXJldHVybiAwOworCisJcmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHBoeXNfZW5jLT5wZW5kaW5nX2tpY2tvZmZfd3EsCisJCShod19jdGwtPm9wcy5nZXRfZmx1c2hfcmVnaXN0ZXIoaHdfY3RsKSA9PSAwKSwKKwkJbXNlY3NfdG9famlmZmllcyg1MCkpOworCWlmIChyZXQgPD0gMCkgeworCQlEUFVfRVJST1IoInZibGFuayB0aW1lb3V0XG4iKTsKKwkJcmV0dXJuIC1FVElNRURPVVQ7CisJfQorCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfdmlkX3ByZXBhcmVfZm9yX2tpY2tvZmYoCkBAIC01OTUsNyArNjA2LDcgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfZGlzYWJsZShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCiAJICogc2Nhbm91dCBidWZmZXIpIGRvbid0IGxhdGNoIHByb3Blcmx5Li4KIAkgKi8KIAlpZiAoZHB1X2VuY29kZXJfcGh5c192aWRfaXNfbWFzdGVyKHBoeXNfZW5jKSkgewotCQlyZXQgPSBfZHB1X2VuY29kZXJfcGh5c192aWRfd2FpdF9mb3JfdmJsYW5rKHBoeXNfZW5jLCBmYWxzZSk7CisJCXJldCA9IGRwdV9lbmNvZGVyX3BoeXNfdmlkX3dhaXRfZm9yX3ZibGFuayhwaHlzX2VuYyk7CiAJCWlmIChyZXQpIHsKIAkJCWF0b21pY19zZXQoJnBoeXNfZW5jLT5wZW5kaW5nX2tpY2tvZmZfY250LCAwKTsKIAkJCURSTV9FUlJPUigid2FpdCBkaXNhYmxlIGZhaWxlZDogaWQ6JXUgaW50ZjolZCByZXQ6JWRcbiIsCkBAIC02MTIsMTEgKzYyMyw2IEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfdmlkX2hhbmRsZV9wb3N0X2tpY2tvZmYoCiB7CiAJdW5zaWduZWQgbG9uZyBsb2NrX2ZsYWdzOwogCi0JaWYgKCFwaHlzX2VuYykgewotCQlEUFVfRVJST1IoImludmFsaWQgZW5jb2RlclxuIik7Ci0JCXJldHVybjsKLQl9Ci0KIAkvKgogCSAqIFZpZGVvIG1vZGUgbXVzdCBmbHVzaCBDVEwgYmVmb3JlIGVuYWJsaW5nIHRpbWluZyBlbmdpbmUKIAkgKiBWaWRlbyBlbmNvZGVycyBuZWVkIHRvIHR1cm4gb24gdGhlaXIgaW50ZXJmYWNlcyBub3cKQEAgLTY4MSw3ICs2ODcsNyBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9pbml0X29wcyhzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19vcHMgKm9wcykKIAlvcHMtPmRlc3Ryb3kgPSBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9kZXN0cm95OwogCW9wcy0+Z2V0X2h3X3Jlc291cmNlcyA9IGRwdV9lbmNvZGVyX3BoeXNfdmlkX2dldF9od19yZXNvdXJjZXM7CiAJb3BzLT5jb250cm9sX3ZibGFua19pcnEgPSBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9jb250cm9sX3ZibGFua19pcnE7Ci0Jb3BzLT53YWl0X2Zvcl9jb21taXRfZG9uZSA9IGRwdV9lbmNvZGVyX3BoeXNfdmlkX3dhaXRfZm9yX3ZibGFuazsKKwlvcHMtPndhaXRfZm9yX2NvbW1pdF9kb25lID0gZHB1X2VuY29kZXJfcGh5c192aWRfd2FpdF9mb3JfY29tbWl0X2RvbmU7CiAJb3BzLT53YWl0X2Zvcl92YmxhbmsgPSBkcHVfZW5jb2Rlcl9waHlzX3ZpZF93YWl0X2Zvcl92Ymxhbms7CiAJb3BzLT53YWl0X2Zvcl90eF9jb21wbGV0ZSA9IGRwdV9lbmNvZGVyX3BoeXNfdmlkX3dhaXRfZm9yX3ZibGFuazsKIAlvcHMtPmlycV9jb250cm9sID0gZHB1X2VuY29kZXJfcGh5c192aWRfaXJxX2NvbnRyb2w7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuaAppbmRleCA5MGY0Mzk4Li5lYzc2Yjg2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oCkBAIC05LDcgKzksNiBAQAogI2luY2x1ZGUgPGxpbnV4L2J1Zy5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG1hcC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAKIC8qKgogICogTWF4IGhhcmR3YXJlIGJsb2NrIGNvdW50OiBGb3IgZXg6IG1heCAxMiBTU1BQIHBpcGVzIG9yCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY3RsLmMKaW5kZXggYjJmN2IwZS4uMTc5ZThkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jdGwuYwpAQCAtMTAyLDkgKzEwMiw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcHVfaHdfY3RsX3VwZGF0ZV9wZW5kaW5nX2ZsdXNoKHN0cnVjdCBkcHVfaHdfY3RsICpjdHgsCiAKIHN0YXRpYyB1MzIgZHB1X2h3X2N0bF9nZXRfcGVuZGluZ19mbHVzaChzdHJ1Y3QgZHB1X2h3X2N0bCAqY3R4KQogewotCWlmICghY3R4KQotCQlyZXR1cm4gMHgwOwotCiAJcmV0dXJuIGN0eC0+cGVuZGluZ19mbHVzaF9tYXNrOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaW9fdXRpbC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2lvX3V0aWwuYwppbmRleCA3MWI2OTg3Li4yN2ZiZWI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaW9fdXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9pb191dGlsLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSA8bGludXgvY2xrL2Nsay1jb25mLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaW9fdXRpbC5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2lvX3V0aWwuaAppbmRleCAwOTA4M2U5Li5lNmI1Yzc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaW9fdXRpbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9pb191dGlsLmgKQEAgLTUsNyArNSw2IEBACiAjaWZuZGVmIF9fRFBVX0lPX1VUSUxfSF9fCiAjZGVmaW5lIF9fRFBVX0lPX1VUSUxfSF9fCiAKLSNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIApAQCAtMTQsMTIgKzEzLDYgQEAKICNkZWZpbmUgREVWX1dBUk4oZm10LCBhcmdzLi4uKSAgcHJfd2FybihmbXQsICMjYXJncykKICNkZWZpbmUgREVWX0VSUihmbXQsIGFyZ3MuLi4pICAgcHJfZXJyKGZtdCwgIyNhcmdzKQogCi1zdHJ1Y3QgZHNzX2dwaW8gewotCXVuc2lnbmVkIGludCBncGlvOwotCXVuc2lnbmVkIGludCB2YWx1ZTsKLQljaGFyIGdwaW9fbmFtZVszMl07Ci19OwotCiBlbnVtIGRzc19jbGtfdHlwZSB7CiAJRFNTX0NMS19BSEIsIC8qIG5vIHNldCByYXRlLiByYXRlIGNvbnRyb2xsZWQgdGhyb3VnaCBycG0gKi8KIAlEU1NfQ0xLX1BDTEssCkBAIC0zNCw4ICsyNyw2IEBAIHN0cnVjdCBkc3NfY2xrIHsKIH07CiAKIHN0cnVjdCBkc3NfbW9kdWxlX3Bvd2VyIHsKLQl1bnNpZ25lZCBpbnQgbnVtX2dwaW87Ci0Jc3RydWN0IGRzc19ncGlvICpncGlvX2NvbmZpZzsKIAl1bnNpZ25lZCBpbnQgbnVtX2NsazsKIAlzdHJ1Y3QgZHNzX2NsayAqY2xrX2NvbmZpZzsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKaW5kZXggYmI5ZDQ0ZS4uNThiMDQ4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwpAQCAtNywxMCArNywxMiBAQAogCiAjZGVmaW5lIHByX2ZtdChmbXQpCSJbZHJtOiVzOiVkXSAiIGZtdCwgX19mdW5jX18sIF9fTElORV9fCiAKLSNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CiAKICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX21tdS5oIgpAQCAtMjQ4LDYgKzI1MCwzMiBAQCBzdGF0aWMgdm9pZCBkcHVfa21zX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlkcHVfY3J0Y192YmxhbmsoY3J0YywgZmFsc2UpOwogfQogCitzdGF0aWMgdm9pZCBkcHVfa21zX2VuYWJsZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcykKK3sKKwlzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcyA9IHRvX2RwdV9rbXMoa21zKTsKKwlwbV9ydW50aW1lX2dldF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOworfQorCitzdGF0aWMgdm9pZCBkcHVfa21zX2Rpc2FibGVfY29tbWl0KHN0cnVjdCBtc21fa21zICprbXMpCit7CisJc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMgPSB0b19kcHVfa21zKGttcyk7CisJcG1fcnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKK30KKworc3RhdGljIGt0aW1lX3QgZHB1X2ttc192c3luY190aW1lKHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CisKKwlkcm1fZm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIGNydGMtPmRldiwgY3J0Yy0+c3RhdGUtPmVuY29kZXJfbWFzaykgeworCQlrdGltZV90IHZzeW5jX3RpbWU7CisKKwkJaWYgKGRwdV9lbmNvZGVyX3ZzeW5jX3RpbWUoZW5jb2RlciwgJnZzeW5jX3RpbWUpID09IDApCisJCQlyZXR1cm4gdnN5bmNfdGltZTsKKwl9CisKKwlyZXR1cm4ga3RpbWVfZ2V0KCk7Cit9CisKIHN0YXRpYyB2b2lkIGRwdV9rbXNfcHJlcGFyZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywKIAkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewpAQCAtMjY3LDcgKzI5NSw2IEBAIHN0YXRpYyB2b2lkIGRwdV9rbXNfcHJlcGFyZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywKIAlpZiAoIWRldiB8fCAhZGV2LT5kZXZfcHJpdmF0ZSkKIAkJcmV0dXJuOwogCXByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CiAKIAkvKiBDYWxsIHByZXBhcmVfY29tbWl0IGZvciBhbGwgYWZmZWN0ZWQgZW5jb2RlcnMgKi8KIAlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewpAQCAtMjc4LDYgKzMwNSwyMCBAQCBzdGF0aWMgdm9pZCBkcHVfa21zX3ByZXBhcmVfY29tbWl0KHN0cnVjdCBtc21fa21zICprbXMsCiAJfQogfQogCitzdGF0aWMgdm9pZCBkcHVfa21zX2ZsdXNoX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCB1bnNpZ25lZCBjcnRjX21hc2spCit7CisJc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMgPSB0b19kcHVfa21zKGttcyk7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCisJZm9yX2VhY2hfY3J0Y19tYXNrKGRwdV9rbXMtPmRldiwgY3J0YywgY3J0Y19tYXNrKSB7CisJCWlmICghY3J0Yy0+c3RhdGUtPmFjdGl2ZSkKKwkJCWNvbnRpbnVlOworCisJCXRyYWNlX2RwdV9rbXNfY29tbWl0KERSTUlEKGNydGMpKTsKKwkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0Yyk7CisJfQorfQorCiAvKgogICogT3ZlcnJpZGUgdGhlIGVuY29kZXIgZW5hYmxlIHNpbmNlIHdlIG5lZWQgdG8gc2V0dXAgdGhlIGlubGluZSByb3RhdG9yIGFuZCBkbwogICogc29tZSBjcnRjIG1hZ2ljIGJlZm9yZSBlbmFibGluZyBhbnkgYnJpZGdlIHRoYXQgbWlnaHQgYmUgcHJlc2VudC4KQEAgLTI5OCw1MiArMzM5LDE4IEBAIHZvaWQgZHB1X2ttc19lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJCQljb250aW51ZTsKIAogCQl0cmFjZV9kcHVfa21zX2VuY19lbmFibGUoRFJNSUQoY3J0YykpOwotCQlkcHVfY3J0Y19jb21taXRfa2lja29mZihjcnRjLCBmYWxzZSk7CiAJfQogfQogCi1zdGF0aWMgdm9pZCBkcHVfa21zX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgdm9pZCBkcHVfa21zX2NvbXBsZXRlX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCB1bnNpZ25lZCBjcnRjX21hc2spCiB7CisJc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMgPSB0b19kcHVfa21zKGttcyk7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKLQlpbnQgaTsKLQotCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Ci0JCS8qIElmIG1vZGVzZXQgaXMgcmVxdWlyZWQsIGtpY2tvZmYgaXMgcnVuIGluIGVuY29kZXJfZW5hYmxlICovCi0JCWlmIChkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7Ci0JCQl0cmFjZV9kcHVfa21zX2NvbW1pdChEUk1JRChjcnRjKSk7Ci0JCQlkcHVfY3J0Y19jb21taXRfa2lja29mZihjcnRjLAotCQkJCQkJc3RhdGUtPmxlZ2FjeV9jdXJzb3JfdXBkYXRlKTsKLQkJfQotCX0KLX0KLQotc3RhdGljIHZvaWQgZHB1X2ttc19jb21wbGV0ZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywKLQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKLXsKLQlzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttczsKLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2OwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOwotCWludCBpOwotCi0JaWYgKCFrbXMgfHwgIW9sZF9zdGF0ZSkKLQkJcmV0dXJuOwotCWRwdV9rbXMgPSB0b19kcHVfa21zKGttcyk7Ci0KLQlpZiAoIWRwdV9rbXMtPmRldiB8fCAhZHB1X2ttcy0+ZGV2LT5kZXZfcHJpdmF0ZSkKLQkJcmV0dXJuOwotCXByaXYgPSBkcHVfa21zLT5kZXYtPmRldl9wcml2YXRlOwogCiAJRFBVX0FUUkFDRV9CRUdJTigia21zX2NvbXBsZXRlX2NvbW1pdCIpOwogCi0JZm9yX2VhY2hfb2xkX2NydGNfaW5fc3RhdGUob2xkX3N0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgaSkKLQkJZHB1X2NydGNfY29tcGxldGVfY29tbWl0KGNydGMsIG9sZF9jcnRjX3N0YXRlKTsKLQotCXBtX3J1bnRpbWVfcHV0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CisJZm9yX2VhY2hfY3J0Y19tYXNrKGRwdV9rbXMtPmRldiwgY3J0YywgY3J0Y19tYXNrKQorCQlkcHVfY3J0Y19jb21wbGV0ZV9jb21taXQoY3J0Yyk7CiAKIAlEUFVfQVRSQUNFX0VORCgia21zX2NvbXBsZXRlX2NvbW1pdCIpOwogfQpAQCAtMzg5LDYgKzM5NiwxNSBAQCBzdGF0aWMgdm9pZCBkcHVfa21zX3dhaXRfZm9yX2NvbW1pdF9kb25lKHN0cnVjdCBtc21fa21zICprbXMsCiAJfQogfQogCitzdGF0aWMgdm9pZCBkcHVfa21zX3dhaXRfZmx1c2goc3RydWN0IG1zbV9rbXMgKmttcywgdW5zaWduZWQgY3J0Y19tYXNrKQoreworCXN0cnVjdCBkcHVfa21zICpkcHVfa21zID0gdG9fZHB1X2ttcyhrbXMpOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKworCWZvcl9lYWNoX2NydGNfbWFzayhkcHVfa21zLT5kZXYsIGNydGMsIGNydGNfbWFzaykKKwkJZHB1X2ttc193YWl0X2Zvcl9jb21taXRfZG9uZShrbXMsIGNydGMpOworfQorCiBzdGF0aWMgaW50IF9kcHVfa21zX2luaXRpYWxpemVfZHNpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgIHN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYsCiAJCQkJICAgIHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQpAQCAtNDkwLDExICs1MDYsNiBAQCBzdGF0aWMgaW50IF9kcHVfa21zX2RybV9vYmpfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKIAlpbnQgcHJpbWFyeV9wbGFuZXNfaWR4ID0gMCwgY3Vyc29yX3BsYW5lc19pZHggPSAwLCBpLCByZXQ7CiAJaW50IG1heF9jcnRjX2NvdW50OwogCi0JaWYgKCFkcHVfa21zIHx8ICFkcHVfa21zLT5kZXYgfHwgIWRwdV9rbXMtPmRldi0+ZGV2KSB7Ci0JCURQVV9FUlJPUigiaW52YWxpZCBkcHVfa21zXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCiAJZGV2ID0gZHB1X2ttcy0+ZGV2OwogCXByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCWNhdGFsb2cgPSBkcHVfa21zLT5jYXRhbG9nOwpAQCAtNjg2LDEwICs2OTcsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtc21fa21zX2Z1bmNzIGttc19mdW5jcyA9IHsKIAkuaXJxX3ByZWluc3RhbGwgID0gZHB1X2lycV9wcmVpbnN0YWxsLAogCS5pcnFfdW5pbnN0YWxsICAgPSBkcHVfaXJxX3VuaW5zdGFsbCwKIAkuaXJxICAgICAgICAgICAgID0gZHB1X2lycSwKKwkuZW5hYmxlX2NvbW1pdCAgID0gZHB1X2ttc19lbmFibGVfY29tbWl0LAorCS5kaXNhYmxlX2NvbW1pdCAgPSBkcHVfa21zX2Rpc2FibGVfY29tbWl0LAorCS52c3luY190aW1lICAgICAgPSBkcHVfa21zX3ZzeW5jX3RpbWUsCiAJLnByZXBhcmVfY29tbWl0ICA9IGRwdV9rbXNfcHJlcGFyZV9jb21taXQsCi0JLmNvbW1pdCAgICAgICAgICA9IGRwdV9rbXNfY29tbWl0LAorCS5mbHVzaF9jb21taXQgICAgPSBkcHVfa21zX2ZsdXNoX2NvbW1pdCwKKwkud2FpdF9mbHVzaCAgICAgID0gZHB1X2ttc193YWl0X2ZsdXNoLAogCS5jb21wbGV0ZV9jb21taXQgPSBkcHVfa21zX2NvbXBsZXRlX2NvbW1pdCwKLQkud2FpdF9mb3JfY3J0Y19jb21taXRfZG9uZSA9IGRwdV9rbXNfd2FpdF9mb3JfY29tbWl0X2RvbmUsCiAJLmVuYWJsZV92YmxhbmsgICA9IGRwdV9rbXNfZW5hYmxlX3ZibGFuaywKIAkuZGlzYWJsZV92YmxhbmsgID0gZHB1X2ttc19kaXNhYmxlX3ZibGFuaywKIAkuY2hlY2tfbW9kaWZpZWRfZm9ybWF0ID0gZHB1X2Zvcm1hdF9jaGVja19tb2RpZmllZF9mb3JtYXQsCkBAIC04MDAsNiArODE0LDggQEAgc3RhdGljIGludCBkcHVfa21zX2h3X2luaXQoc3RydWN0IG1zbV9rbXMgKmttcykKIAkJcmV0dXJuIHJjOwogCX0KIAorCWF0b21pY19zZXQoJmRwdV9rbXMtPmJhbmR3aWR0aF9yZWYsIDApOworCiAJZHB1X2ttcy0+bW1pbyA9IG1zbV9pb3JlbWFwKGRwdV9rbXMtPnBkZXYsICJtZHAiLCAibWRwIik7CiAJaWYgKElTX0VSUihkcHVfa21zLT5tbWlvKSkgewogCQlyYyA9IFBUUl9FUlIoZHB1X2ttcy0+bW1pbyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKaW5kZXggOWU0MGY1NS4uNGM4ODlhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuaApAQCAtOCw2ICs4LDggQEAKICNpZm5kZWYgX19EUFVfS01TX0hfXwogI2RlZmluZSBfX0RQVV9LTVNfSF9fCiAKKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorCiAjaW5jbHVkZSAibXNtX2Rydi5oIgogI2luY2x1ZGUgIm1zbV9rbXMuaCIKICNpbmNsdWRlICJtc21fbW11LmgiCkBAIC0xMjAsNiArMTIyLDE0IEBAIHN0cnVjdCBkcHVfa21zIHsKIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OwogCWJvb2wgcnBtX2VuYWJsZWQ7CiAJc3RydWN0IGRzc19tb2R1bGVfcG93ZXIgbXA7CisKKwkvKiByZWZlcmVuY2UgY291bnQgYmFuZHdpZHRoIHJlcXVlc3RzLCBzbyB3ZSBrbm93IHdoZW4gd2UgY2FuCisJICogcmVsZWFzZSBiYW5kd2lkdGguICBFYWNoIGF0b21pYyB1cGRhdGUgaW5jcmVtZW50cywgYW5kIGZyYW1lLQorCSAqIGRvbmUgZXZlbnQgZGVjcmVtZW50cy4gIEFkZGl0aW9uYWxseSwgZm9yIHZpZGVvIG1vZGUsIHRoZQorCSAqIHJlZmVyZW5jZSBpcyBpbmNyZW1lbnRlZCB3aGVuIGNydGMgaXMgZW5hYmxlZCwgYW5kIGRlY3JlbWVudGVkCisJICogd2hlbiBkaXNhYmxlZC4KKwkgKi8KKwlhdG9taWNfdCBiYW5kd2lkdGhfcmVmOwogfTsKIAogc3RydWN0IHZzeW5jX2luZm8gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X21kc3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9tZHNzLmMKaW5kZXggOTg2OTE1Yi4uMjk3MDVlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X21kc3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfbWRzcy5jCkBAIC0zLDYgKzMsMTAgQEAKICAqIENvcHlyaWdodCAoYykgMjAxOCwgVGhlIExpbnV4IEZvdW5kYXRpb24KICAqLwogCisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvaXJxY2hpcC5oPgorI2luY2x1ZGUgPGxpbnV4L2lycWRlc2MuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnFjaGlwL2NoYWluZWRfaXJxLmg+CiAjaW5jbHVkZSAiZHB1X2ttcy5oIgogI2luY2x1ZGUgPGxpbnV4L2ludGVyY29ubmVjdC5oPgogCkBAIC0yMiw3ICsyNiw2IEBAIHN0cnVjdCBkcHVfbWRzcyB7CiAJc3RydWN0IG1zbV9tZHNzIGJhc2U7CiAJdm9pZCBfX2lvbWVtICptbWlvOwogCXVuc2lnbmVkIGxvbmcgbW1pb19sZW47Ci0JdTMyIGh3dmVyc2lvbjsKIAlzdHJ1Y3QgZHNzX21vZHVsZV9wb3dlciBtcDsKIAlzdHJ1Y3QgZHB1X2lycV9jb250cm9sbGVyIGlycV9jb250cm9sbGVyOwogCXN0cnVjdCBpY2NfcGF0aCAqcGF0aFsyXTsKQEAgLTI4NywxMCArMjkwLDYgQEAgaW50IGRwdV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWRwdV9tZHNzX2ljY19yZXF1ZXN0X2J3KHByaXYtPm1kc3MpOwogCi0JcG1fcnVudGltZV9nZXRfc3luYyhkZXYtPmRldik7Ci0JZHB1X21kc3MtPmh3dmVyc2lvbiA9IHJlYWRsX3JlbGF4ZWQoZHB1X21kc3MtPm1taW8pOwotCXBtX3J1bnRpbWVfcHV0X3N5bmMoZGV2LT5kZXYpOwotCiAJcmV0dXJuIHJldDsKIAogaXJxX2Vycm9yOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYwppbmRleCA0NWJmYWM5Li41OGQ1YWNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYwpAQCAtMTAsOCArMTAsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfdWFwaS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgogCiAjaW5jbHVkZSAibXNtX2Rydi5oIgogI2luY2x1ZGUgImRwdV9rbXMuaCIKQEAgLTc2NCw4ICs3NjYsNiBAQCBzdGF0aWMgaW50IGRwdV9wbGFuZV9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHUgPSB0b19kcHVfcGxhbmUocGxhbmUpOwogCXN0cnVjdCBkcHVfcGxhbmVfc3RhdGUgKnBzdGF0ZSA9IHRvX2RwdV9wbGFuZV9zdGF0ZShuZXdfc3RhdGUpOwogCXN0cnVjdCBkcHVfaHdfZm10X2xheW91dCBsYXlvdXQ7Ci0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJc3RydWN0IGRwdV9rbXMgKmttcyA9IF9kcHVfcGxhbmVfZ2V0X2ttcygmcGRwdS0+YmFzZSk7CiAJaW50IHJldDsKIApAQCAtNzgyLDEwICs3ODIsNyBAQCBzdGF0aWMgaW50IGRwdV9wbGFuZV9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCSAqICAgICAgIHdlIGNhbiB1c2UgbXNtX2F0b21pY19wcmVwYXJlX2ZiKCkgaW5zdGVhZCBvZiBkb2luZyB0aGUKIAkgKiAgICAgICBpbXBsaWNpdCBmZW5jZSBhbmQgZmIgcHJlcGFyZSBieSBoYW5kIGhlcmUuCiAJICovCi0Jb2JqID0gbXNtX2ZyYW1lYnVmZmVyX2JvKG5ld19zdGF0ZS0+ZmIsIDApOwotCWZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShvYmotPnJlc3YpOwotCWlmIChmZW5jZSkKLQkJZHJtX2F0b21pY19zZXRfZmVuY2VfZm9yX3BsYW5lKG5ld19zdGF0ZSwgZmVuY2UpOworCWRybV9nZW1fZmJfcHJlcGFyZV9mYihwbGFuZSwgbmV3X3N0YXRlKTsKIAogCWlmIChwc3RhdGUtPmFzcGFjZSkgewogCQlyZXQgPSBtc21fZnJhbWVidWZmZXJfcHJlcGFyZShuZXdfc3RhdGUtPmZiLApAQCAtMTA0MCw4ICsxMDM3LDIxIEBAIHN0YXRpYyB2b2lkIGRwdV9wbGFuZV9zc3BwX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiAJCQkJcHN0YXRlLT5tdWx0aXJlY3RfbW9kZSk7CiAKIAlpZiAocGRwdS0+cGlwZV9ody0+b3BzLnNldHVwX2Zvcm1hdCkgeworCQl1bnNpZ25lZCBpbnQgcm90YXRpb247CisKIAkJc3JjX2ZsYWdzID0gMHgwOwogCisJCXJvdGF0aW9uID0gZHJtX3JvdGF0aW9uX3NpbXBsaWZ5KHN0YXRlLT5yb3RhdGlvbiwKKwkJCQkJCSBEUk1fTU9ERV9ST1RBVEVfMCB8CisJCQkJCQkgRFJNX01PREVfUkVGTEVDVF9YIHwKKwkJCQkJCSBEUk1fTU9ERV9SRUZMRUNUX1kpOworCisJCWlmIChyb3RhdGlvbiAmIERSTV9NT0RFX1JFRkxFQ1RfWCkKKwkJCXNyY19mbGFncyB8PSBEUFVfU1NQUF9GTElQX0xSOworCisJCWlmIChyb3RhdGlvbiAmIERSTV9NT0RFX1JFRkxFQ1RfWSkKKwkJCXNyY19mbGFncyB8PSBEUFVfU1NQUF9GTElQX1VEOworCiAJCS8qIHVwZGF0ZSBmb3JtYXQgKi8KIAkJcGRwdS0+cGlwZV9ody0+b3BzLnNldHVwX2Zvcm1hdChwZHB1LT5waXBlX2h3LCBmbXQsIHNyY19mbGFncywKIAkJCQlwc3RhdGUtPm11bHRpcmVjdF9pbmRleCk7CkBAIC0xNTIyLDYgKzE1MzIsMTMgQEAgc3RydWN0IGRybV9wbGFuZSAqZHB1X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAocmV0KQogCQlEUFVfRVJST1IoImZhaWxlZCB0byBpbnN0YWxsIHpwb3MgcHJvcGVydHksIHJjID0gJWRcbiIsIHJldCk7CiAKKwlkcm1fcGxhbmVfY3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KHBsYW5lLAorCQkJRFJNX01PREVfUk9UQVRFXzAsCisJCQlEUk1fTU9ERV9ST1RBVEVfMCB8CisJCQlEUk1fTU9ERV9ST1RBVEVfMTgwIHwKKwkJCURSTV9NT0RFX1JFRkxFQ1RfWCB8CisJCQlEUk1fTU9ERV9SRUZMRUNUX1kpOworCiAJZHJtX3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2VfY2xpcHMocGxhbmUpOwogCiAJLyogc3VjY2VzcyEgZmluYWxpemUgaW5pdGlhbGl6YXRpb24gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKaW5kZXggNzY1NDg0NC4uZWVjZmU5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKQEAgLTM5Miw3ICszOTIsNyBAQCBUUkFDRV9FVkVOVChkcHVfZW5jX3JjLAogCQlfX2VudHJ5LT5yY19zdGF0ZSA9IHJjX3N0YXRlOwogCQlfX2Fzc2lnbl9zdHIoc3RhZ2Vfc3RyLCBzdGFnZSk7CiAJKSwKLQlUUF9wcmludGsoIiVzOiBpZDoldSwgc3dfZXZlbnQ6JWQsIGlkbGVfcGNfc3VwcG9ydGVkOiVzLCByY19zdGF0ZTolZFxuIiwKKwlUUF9wcmludGsoIiVzOiBpZDoldSwgc3dfZXZlbnQ6JWQsIGlkbGVfcGNfc3VwcG9ydGVkOiVzLCByY19zdGF0ZTolZCIsCiAJCSAgX19nZXRfc3RyKHN0YWdlX3N0ciksIF9fZW50cnktPmRybV9pZCwgX19lbnRyeS0+c3dfZXZlbnQsCiAJCSAgX19lbnRyeS0+aWRsZV9wY19zdXBwb3J0ZWQgPyAidHJ1ZSIgOiAiZmFsc2UiLAogCQkgIF9fZW50cnktPnJjX3N0YXRlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV92YmlmLmMKaW5kZXggOGJjM2FlYS4uOGQyNGI3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdmJpZi5jCkBAIC01LDYgKzUsNyBAQAogI2RlZmluZSBwcl9mbXQoZm10KQkiW2RybTolczolZF0gIiBmbXQsIF9fZnVuY19fLCBfX0xJTkVfXwogCiAjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAKICNpbmNsdWRlICJkcHVfdmJpZi5oIgogI2luY2x1ZGUgImRwdV9od192YmlmLmgiCkBAIC0yNjQsMTEgKzI2NSw2IEBAIHZvaWQgZHB1X3ZiaWZfY2xlYXJfZXJyb3JzKHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQogCXN0cnVjdCBkcHVfaHdfdmJpZiAqdmJpZjsKIAl1MzIgaSwgcG5kLCBzcmM7CiAKLQlpZiAoIWRwdV9rbXMpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGFyZ3VtZW50XG4iKTsKLQkJcmV0dXJuOwotCX0KLQogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRwdV9rbXMtPmh3X3ZiaWYpOyBpKyspIHsKIAkJdmJpZiA9IGRwdV9rbXMtPmh3X3ZiaWZbaV07CiAJCWlmICh2YmlmICYmIHZiaWYtPm9wcy5jbGVhcl9lcnJvcnMpIHsKQEAgLTI4NiwxMSArMjgyLDYgQEAgdm9pZCBkcHVfdmJpZl9pbml0X21lbXR5cGVzKHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQogCXN0cnVjdCBkcHVfaHdfdmJpZiAqdmJpZjsKIAlpbnQgaSwgajsKIAotCWlmICghZHB1X2ttcykgewotCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1lbnRcbiIpOwotCQlyZXR1cm47Ci0JfQotCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZHB1X2ttcy0+aHdfdmJpZik7IGkrKykgewogCQl2YmlmID0gZHB1X2ttcy0+aHdfdmJpZltpXTsKIAkJaWYgKHZiaWYgJiYgdmJpZi0+Y2FwICYmIHZiaWYtPm9wcy5zZXRfbWVtX3R5cGUpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9jcnRjLmMKaW5kZXggNjY4YzQxOS4uZjM0ZGNhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9jcnRjLmMKQEAgLTgsNiArOCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9mbGlwX3dvcmsuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21vZGUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJtZHA0X2ttcy5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNC9tZHA0X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9pcnEuYwppbmRleCA2MmZiY2EzLi40ZDQ5ZjNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNC9tZHA0X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfaXJxLmMKQEAgLTUsNiArNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAibXNtX2Rydi5oIgogI2luY2x1ZGUgIm1kcDRfa21zLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNC9tZHA0X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9rbXMuYwppbmRleCA3YTlhYjU1Li41MDcxMWNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNC9tZHA0X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfa21zLmMKQEAgLTQsNiArNCw5IEBACiAgKiBBdXRob3I6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KICAqLwogCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX2dlbS5oIgpAQCAtOTMsNDAgKzk2LDUxIEBAIHN0YXRpYyBpbnQgbWRwNF9od19pbml0KHN0cnVjdCBtc21fa21zICprbXMpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgbWRwNF9wcmVwYXJlX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgdm9pZCBtZHA0X2VuYWJsZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcykKIHsKIAlzdHJ1Y3QgbWRwNF9rbXMgKm1kcDRfa21zID0gdG9fbWRwNF9rbXModG9fbWRwX2ttcyhrbXMpKTsKKwltZHA0X2VuYWJsZShtZHA0X2ttcyk7Cit9CisKK3N0YXRpYyB2b2lkIG1kcDRfZGlzYWJsZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcykKK3sKKwlzdHJ1Y3QgbWRwNF9rbXMgKm1kcDRfa21zID0gdG9fbWRwNF9rbXModG9fbWRwX2ttcyhrbXMpKTsKKwltZHA0X2Rpc2FibGUobWRwNF9rbXMpOworfQorCitzdGF0aWMgdm9pZCBtZHA0X3ByZXBhcmVfY29tbWl0KHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKIAlpbnQgaTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCi0JbWRwNF9lbmFibGUobWRwNF9rbXMpOwotCiAJLyogc2VlIDExOWVjYjdmZCAqLwogCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQogCQlkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMpOwogfQogCi1zdGF0aWMgdm9pZCBtZHA0X2NvbXBsZXRlX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgdm9pZCBtZHA0X2ZsdXNoX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCB1bnNpZ25lZCBjcnRjX21hc2spCiB7Ci0Jc3RydWN0IG1kcDRfa21zICptZHA0X2ttcyA9IHRvX21kcDRfa21zKHRvX21kcF9rbXMoa21zKSk7Ci0JaW50IGk7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKLQotCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MobWRwNF9rbXMtPmRldiwgc3RhdGUpOwotCi0JLyogc2VlIDExOWVjYjdmZCAqLwotCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQotCQlkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpOwotCi0JbWRwNF9kaXNhYmxlKG1kcDRfa21zKTsKKwkvKiBUT0RPICovCiB9CiAKLXN0YXRpYyB2b2lkIG1kcDRfd2FpdF9mb3JfY3J0Y19jb21taXRfZG9uZShzdHJ1Y3QgbXNtX2ttcyAqa21zLAotCQkJCQkJc3RydWN0IGRybV9jcnRjICpjcnRjKQorc3RhdGljIHZvaWQgbWRwNF93YWl0X2ZsdXNoKHN0cnVjdCBtc21fa21zICprbXMsIHVuc2lnbmVkIGNydGNfbWFzaykKIHsKLQltZHA0X2NydGNfd2FpdF9mb3JfY29tbWl0X2RvbmUoY3J0Yyk7CisJc3RydWN0IG1kcDRfa21zICptZHA0X2ttcyA9IHRvX21kcDRfa21zKHRvX21kcF9rbXMoa21zKSk7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCisJZm9yX2VhY2hfY3J0Y19tYXNrKG1kcDRfa21zLT5kZXYsIGNydGMsIGNydGNfbWFzaykKKwkJbWRwNF9jcnRjX3dhaXRfZm9yX2NvbW1pdF9kb25lKGNydGMpOworfQorCitzdGF0aWMgdm9pZCBtZHA0X2NvbXBsZXRlX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCB1bnNpZ25lZCBjcnRjX21hc2spCit7CisJc3RydWN0IG1kcDRfa21zICptZHA0X2ttcyA9IHRvX21kcDRfa21zKHRvX21kcF9rbXMoa21zKSk7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCisJLyogc2VlIDExOWVjYjdmZCAqLworCWZvcl9lYWNoX2NydGNfbWFzayhtZHA0X2ttcy0+ZGV2LCBjcnRjLCBjcnRjX21hc2spCisJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7CiB9CiAKIHN0YXRpYyBsb25nIG1kcDRfcm91bmRfcGl4Y2xrKHN0cnVjdCBtc21fa21zICprbXMsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKQEAgLTE3OCw5ICsxOTIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZHBfa21zX2Z1bmNzIGttc19mdW5jcyA9IHsKIAkJLmlycSAgICAgICAgICAgICA9IG1kcDRfaXJxLAogCQkuZW5hYmxlX3ZibGFuayAgID0gbWRwNF9lbmFibGVfdmJsYW5rLAogCQkuZGlzYWJsZV92YmxhbmsgID0gbWRwNF9kaXNhYmxlX3ZibGFuaywKKwkJLmVuYWJsZV9jb21taXQgICA9IG1kcDRfZW5hYmxlX2NvbW1pdCwKKwkJLmRpc2FibGVfY29tbWl0ICA9IG1kcDRfZGlzYWJsZV9jb21taXQsCiAJCS5wcmVwYXJlX2NvbW1pdCAgPSBtZHA0X3ByZXBhcmVfY29tbWl0LAorCQkuZmx1c2hfY29tbWl0ICAgID0gbWRwNF9mbHVzaF9jb21taXQsCisJCS53YWl0X2ZsdXNoICAgICAgPSBtZHA0X3dhaXRfZmx1c2gsCiAJCS5jb21wbGV0ZV9jb21taXQgPSBtZHA0X2NvbXBsZXRlX2NvbW1pdCwKLQkJLndhaXRfZm9yX2NydGNfY29tbWl0X2RvbmUgPSBtZHA0X3dhaXRfZm9yX2NydGNfY29tbWl0X2RvbmUsCiAJCS5nZXRfZm9ybWF0ICAgICAgPSBtZHBfZ2V0X2Zvcm1hdCwKIAkJLnJvdW5kX3BpeGNsayAgICA9IG1kcDRfcm91bmRfcGl4Y2xrLAogCQkuZGVzdHJveSAgICAgICAgID0gbWRwNF9kZXN0cm95LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9sY2RjX2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfbGNkY19lbmNvZGVyLmMKaW5kZXggNjJlMmViZS4uODcxZjM1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9sY2RjX2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNC9tZHA0X2xjZGNfZW5jb2Rlci5jCkBAIC01LDYgKzUsOCBAQAogICogQXV0aG9yOiBWaW5heSBTaW1oYSA8dmluYXlzaW1oYUBpbmZvcmNlY29tcHV0aW5nLmNvbT4KICAqLwogCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfbHZkc19jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfbHZkc19jb25uZWN0b3IuYwppbmRleCBlY2VmNGY1Li45MjYyZWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNC9tZHA0X2x2ZHNfY29ubmVjdG9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9sdmRzX2Nvbm5lY3Rvci5jCkBAIC01LDggKzUsNiBAQAogICogQXV0aG9yOiBWaW5heSBTaW1oYSA8dmluYXlzaW1oYUBpbmZvcmNlY29tcHV0aW5nLmNvbT4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvZ3Bpby5oPgotCiAjaW5jbHVkZSAibWRwNF9rbXMuaCIKIAogc3RydWN0IG1kcDRfbHZkc19jb25uZWN0b3IgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQvbWRwNF9wbGFuZS5jCmluZGV4IGUzMDEwZjAuLmRhM2NjMWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNC9tZHA0X3BsYW5lLmMKQEAgLTUsNiArNSw4IEBACiAgKi8KIAogI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisKICNpbmNsdWRlICJtZHA0X2ttcy5oIgogCiAjZGVmaW5lIERPV05fU0NBTEVfTUFYCTgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfY2ZnLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2NmZy5jCmluZGV4IGRkMWRhZjAuLmY2ZTcxZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfY2ZnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9jZmcuYwpAQCAtNjMwLDcgKzYzMCwxMTUgQEAgY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2h3IG1zbTg5MTdfY29uZmlnID0gewogCS5tYXhfY2xrID0gMzIwMDAwMDAwLAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBtZHA1X2NmZ19oYW5kbGVyIGNmZ19oYW5kbGVyc1tdID0geworY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2h3IG1zbTg5OThfY29uZmlnID0geworCS5uYW1lID0gIm1zbTg5OTgiLAorCS5tZHAgPSB7CisJCS5jb3VudCA9IDEsCisJCS5jYXBzID0gTURQX0NBUF9EU0MgfAorCQkJTURQX0NBUF9DRE0gfAorCQkJTURQX0NBUF9TUkNfU1BMSVQgfAorCQkJMCwKKwl9LAorCS5jdGwgPSB7CisJCS5jb3VudCA9IDUsCisJCS5iYXNlID0geyAweDAxMDAwLCAweDAxMjAwLCAweDAxNDAwLCAweDAxNjAwLCAweDAxODAwIH0sCisJCS5mbHVzaF9od19tYXNrID0gMHhmN2ZmZmZmZiwKKwl9LAorCS5waXBlX3ZpZyA9IHsKKwkJLmNvdW50ID0gNCwKKwkJLmJhc2UgPSB7IDB4MDQwMDAsIDB4MDYwMDAsIDB4MDgwMDAsIDB4MGEwMDAgfSwKKwkJLmNhcHMgPSBNRFBfUElQRV9DQVBfSEZMSVAJfAorCQkJTURQX1BJUEVfQ0FQX1ZGTElQCXwKKwkJCU1EUF9QSVBFX0NBUF9TQ0FMRQl8CisJCQlNRFBfUElQRV9DQVBfQ1NDCXwKKwkJCU1EUF9QSVBFX0NBUF9ERUNJTUFUSU9OCXwKKwkJCU1EUF9QSVBFX0NBUF9TV19QSVhfRVhUCXwKKwkJCTAsCisJfSwKKwkucGlwZV9yZ2IgPSB7CisJCS5jb3VudCA9IDQsCisJCS5iYXNlID0geyAweDE0MDAwLCAweDE2MDAwLCAweDE4MDAwLCAweDFhMDAwIH0sCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQX0hGTElQCXwKKwkJCU1EUF9QSVBFX0NBUF9WRkxJUAl8CisJCQlNRFBfUElQRV9DQVBfU0NBTEUJfAorCQkJTURQX1BJUEVfQ0FQX0RFQ0lNQVRJT04JfAorCQkJTURQX1BJUEVfQ0FQX1NXX1BJWF9FWFQJfAorCQkJMCwKKwl9LAorCS5waXBlX2RtYSA9IHsKKwkJLmNvdW50ID0gMiwgLyogZHJpdmVyIHN1cHBvcnRzIG1heCBvZiAyIGN1cnJlbnRseSAqLworCQkuYmFzZSA9IHsgMHgyNDAwMCwgMHgyNjAwMCwgMHgyODAwMCwgMHgyYTAwMCB9LAorCQkuY2FwcyA9IE1EUF9QSVBFX0NBUF9IRkxJUAl8CisJCQlNRFBfUElQRV9DQVBfVkZMSVAJfAorCQkJTURQX1BJUEVfQ0FQX1NXX1BJWF9FWFQJfAorCQkJMCwKKwl9LAorCS5waXBlX2N1cnNvciA9IHsKKwkJLmNvdW50ID0gMiwKKwkJLmJhc2UgPSB7IDB4MzQwMDAsIDB4MzYwMDAgfSwKKwkJLmNhcHMgPSBNRFBfUElQRV9DQVBfSEZMSVAJfAorCQkJTURQX1BJUEVfQ0FQX1ZGTElQCXwKKwkJCU1EUF9QSVBFX0NBUF9TV19QSVhfRVhUCXwKKwkJCU1EUF9QSVBFX0NBUF9DVVJTT1IJfAorCQkJMCwKKwl9LAorCisJLmxtID0geworCQkuY291bnQgPSA2LAorCQkuYmFzZSA9IHsgMHg0NDAwMCwgMHg0NTAwMCwgMHg0NjAwMCwgMHg0NzAwMCwgMHg0ODAwMCwgMHg0OTAwMCB9LAorCQkuaW5zdGFuY2VzID0geworCQkJCXsgLmlkID0gMCwgLnBwID0gMCwgLmRzcHAgPSAwLAorCQkJCSAgLmNhcHMgPSBNRFBfTE1fQ0FQX0RJU1BMQVkgfAorCQkJCQkgIE1EUF9MTV9DQVBfUEFJUiwgfSwKKwkJCQl7IC5pZCA9IDEsIC5wcCA9IDEsIC5kc3BwID0gMSwKKwkJCQkgIC5jYXBzID0gTURQX0xNX0NBUF9ESVNQTEFZLCB9LAorCQkJCXsgLmlkID0gMiwgLnBwID0gMiwgLmRzcHAgPSAtMSwKKwkJCQkgIC5jYXBzID0gTURQX0xNX0NBUF9ESVNQTEFZIHwKKwkJCQkJICBNRFBfTE1fQ0FQX1BBSVIsIH0sCisJCQkJeyAuaWQgPSAzLCAucHAgPSAtMSwgLmRzcHAgPSAtMSwKKwkJCQkgIC5jYXBzID0gTURQX0xNX0NBUF9XQiwgfSwKKwkJCQl7IC5pZCA9IDQsIC5wcCA9IC0xLCAuZHNwcCA9IC0xLAorCQkJCSAgLmNhcHMgPSBNRFBfTE1fQ0FQX1dCLCB9LAorCQkJCXsgLmlkID0gNSwgLnBwID0gMywgLmRzcHAgPSAtMSwKKwkJCQkgIC5jYXBzID0gTURQX0xNX0NBUF9ESVNQTEFZLCB9LAorCQkJICAgICB9LAorCQkubmJfc3RhZ2VzID0gOCwKKwkJLm1heF93aWR0aCA9IDI1NjAsCisJCS5tYXhfaGVpZ2h0ID0gMHhGRkZGLAorCX0sCisJLmRzcHAgPSB7CisJCS5jb3VudCA9IDIsCisJCS5iYXNlID0geyAweDU0MDAwLCAweDU2MDAwIH0sCisJfSwKKwkuYWQgPSB7CisJCS5jb3VudCA9IDMsCisJCS5iYXNlID0geyAweDc4MDAwLCAweDc4ODAwLCAweDc5MDAwIH0sCisJfSwKKwkucHAgPSB7CisJCS5jb3VudCA9IDQsCisJCS5iYXNlID0geyAweDcwMDAwLCAweDcwODAwLCAweDcxMDAwLCAweDcxODAwIH0sCisJfSwKKwkuY2RtID0geworCQkuY291bnQgPSAxLAorCQkuYmFzZSA9IHsgMHg3OTIwMCB9LAorCX0sCisJLmRzYyA9IHsKKwkJLmNvdW50ID0gMiwKKwkJLmJhc2UgPSB7IDB4ODAwMDAsIDB4ODA0MDAgfSwKKwl9LAorCS5pbnRmID0geworCQkuYmFzZSA9IHsgMHg2YTAwMCwgMHg2YTgwMCwgMHg2YjAwMCwgMHg2YjgwMCwgMHg2YzAwMCB9LAorCQkuY29ubmVjdCA9IHsKKwkJCVswXSA9IElOVEZfZURQLAorCQkJWzFdID0gSU5URl9EU0ksCisJCQlbMl0gPSBJTlRGX0RTSSwKKwkJCVszXSA9IElOVEZfSERNSSwKKwkJfSwKKwl9LAorCS5tYXhfY2xrID0gNDEyNTAwMDAwLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtZHA1X2NmZ19oYW5kbGVyIGNmZ19oYW5kbGVyc192MVtdID0gewogCXsgLnJldmlzaW9uID0gMCwgLmNvbmZpZyA9IHsgLmh3ID0gJm1zbTh4NzR2MV9jb25maWcgfSB9LAogCXsgLnJldmlzaW9uID0gMiwgLmNvbmZpZyA9IHsgLmh3ID0gJm1zbTh4NzR2Ml9jb25maWcgfSB9LAogCXsgLnJldmlzaW9uID0gMywgLmNvbmZpZyA9IHsgLmh3ID0gJmFwcTgwODRfY29uZmlnIH0gfSwKQEAgLTY0MCw2ICs3NDgsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZHA1X2NmZ19oYW5kbGVyIGNmZ19oYW5kbGVyc1tdID0gewogCXsgLnJldmlzaW9uID0gMTUsIC5jb25maWcgPSB7IC5odyA9ICZtc204OTE3X2NvbmZpZyB9IH0sCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2hhbmRsZXIgY2ZnX2hhbmRsZXJzX3YzW10gPSB7CisJeyAucmV2aXNpb24gPSAwLCAuY29uZmlnID0geyAuaHcgPSAmbXNtODk5OF9jb25maWcgfSB9LAorfTsKKwogc3RhdGljIHN0cnVjdCBtZHA1X2NmZ19wbGF0Zm9ybSAqbWRwNV9nZXRfY29uZmlnKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldik7CiAKIGNvbnN0IHN0cnVjdCBtZHA1X2NmZ19odyAqbWRwNV9jZmdfZ2V0X2h3X2NvbmZpZyhzdHJ1Y3QgbWRwNV9jZmdfaGFuZGxlciAqY2ZnX2hhbmRsZXIpCkBAIC02NjgsOCArNzgwLDkgQEAgc3RydWN0IG1kcDVfY2ZnX2hhbmRsZXIgKm1kcDVfY2ZnX2luaXQoc3RydWN0IG1kcDVfa21zICptZHA1X2ttcywKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWRwNV9rbXMtPmRldjsKIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldi0+ZGV2KTsKIAlzdHJ1Y3QgbWRwNV9jZmdfaGFuZGxlciAqY2ZnX2hhbmRsZXI7CisJY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2hhbmRsZXIgKmNmZ19oYW5kbGVyczsKIAlzdHJ1Y3QgbWRwNV9jZmdfcGxhdGZvcm0gKnBjb25maWc7Ci0JaW50IGksIHJldCA9IDA7CisJaW50IGksIHJldCA9IDAsIG51bV9oYW5kbGVyczsKIAogCWNmZ19oYW5kbGVyID0ga3phbGxvYyhzaXplb2YoKmNmZ19oYW5kbGVyKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKHVubGlrZWx5KCFjZmdfaGFuZGxlcikpIHsKQEAgLTY3NywxNSArNzkwLDI0IEBAIHN0cnVjdCBtZHA1X2NmZ19oYW5kbGVyICptZHA1X2NmZ19pbml0KHN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMsCiAJCWdvdG8gZmFpbDsKIAl9CiAKLQlpZiAobWFqb3IgIT0gMSkgeworCXN3aXRjaCAobWFqb3IpIHsKKwljYXNlIDE6CisJCWNmZ19oYW5kbGVycyA9IGNmZ19oYW5kbGVyc192MTsKKwkJbnVtX2hhbmRsZXJzID0gQVJSQVlfU0laRShjZmdfaGFuZGxlcnNfdjEpOworCQlicmVhazsKKwljYXNlIDM6CisJCWNmZ19oYW5kbGVycyA9IGNmZ19oYW5kbGVyc192MzsKKwkJbnVtX2hhbmRsZXJzID0gQVJSQVlfU0laRShjZmdfaGFuZGxlcnNfdjMpOworCQlicmVhazsKKwlkZWZhdWx0OgogCQlEUk1fREVWX0VSUk9SKGRldi0+ZGV2LCAidW5leHBlY3RlZCBNRFAgbWFqb3IgdmVyc2lvbjogdiVkLiVkXG4iLAogCQkJCW1ham9yLCBtaW5vcik7CiAJCXJldCA9IC1FTlhJTzsKIAkJZ290byBmYWlsOwotCX0KKwl9OwogCiAJLyogb25seSBhZnRlciBtZHA1X2NmZyBnbG9iYWwgcG9pbnRlcidzIGluaXQgY2FuIHdlIGFjY2VzcyB0aGUgaHcgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjZmdfaGFuZGxlcnMpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2hhbmRsZXJzOyBpKyspIHsKIAkJaWYgKGNmZ19oYW5kbGVyc1tpXS5yZXZpc2lvbiAhPSBtaW5vcikKIAkJCWNvbnRpbnVlOwogCQltZHA1X2NmZyA9IGNmZ19oYW5kbGVyc1tpXS5jb25maWcuaHc7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfY3J0Yy5jCmluZGV4IDc4ZDVmYTIuLmViMGI0YjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfY3J0Yy5jCkBAIC02LDEwICs2LDEzIEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3NvcnQuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fbW9kZS5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmxpcF93b3JrLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJtZHA1X2ttcy5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2N0bC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9jdGwuYwppbmRleCA0ODA0Y2Y0Li4wMzAyNzlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfY3RsLmMKQEAgLTI1Myw3ICsyNTMsNyBAQCBpbnQgbWRwNV9jdGxfc2V0X2N1cnNvcihzdHJ1Y3QgbWRwNV9jdGwgKmN0bCwgc3RydWN0IG1kcDVfcGlwZWxpbmUgKnBpcGVsaW5lLAogCXUzMiBibGVuZF9jZmc7CiAJc3RydWN0IG1kcDVfaHdfbWl4ZXIgKm1peGVyID0gcGlwZWxpbmUtPm1peGVyOwogCi0JaWYgKHVubGlrZWx5KFdBUk5fT04oIW1peGVyKSkpIHsKKwlpZiAoV0FSTl9PTighbWl4ZXIpKSB7CiAJCURSTV9ERVZfRVJST1IoY3RsX21nci0+ZGV2LT5kZXYsICJDVEwgJWQgY2Fubm90IGZpbmQgTE0iLAogCQkJY3RsLT5pZCk7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNjk1LDcgKzY5NSw3IEBAIHN0cnVjdCBtZHA1X2N0bF9tYW5hZ2VyICptZHA1X2N0bG1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlnb3RvIGZhaWw7CiAJfQogCi0JaWYgKHVubGlrZWx5KFdBUk5fT04oY3RsX2NmZy0+Y291bnQgPiBNQVhfQ1RMKSkpIHsKKwlpZiAoV0FSTl9PTihjdGxfY2ZnLT5jb3VudCA+IE1BWF9DVEwpKSB7CiAJCURSTV9ERVZfRVJST1IoZGV2LT5kZXYsICJJbmNyZWFzZSBzdGF0aWMgcG9vbCBzaXplIHRvIGF0IGxlYXN0ICVkXG4iLAogCQkJCWN0bF9jZmctPmNvdW50KTsKIAkJcmV0ID0gLUVOT1NQQzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2lycS5jCmluZGV4IDU4ZGIwOGEyLi45YjRjOGQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfaXJxLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgIm1zbV9kcnYuaCIKICNpbmNsdWRlICJtZHA1X2ttcy5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfa21zLmMKaW5kZXggZmVjNmVmMS4uOTFjZDc2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2ttcy5jCkBAIC01LDkgKzUsMTUgQEAKICAqIEF1dGhvcjogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVyY29ubmVjdC5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorCiAjaW5jbHVkZSAibXNtX2Rydi5oIgogI2luY2x1ZGUgIm1zbV9nZW0uaCIKICNpbmNsdWRlICJtc21fbW11LmgiCkBAIC0xNDAsNDAgKzE0Niw1MiBAQCBzdGF0aWMgaW50IG1kcDVfZ2xvYmFsX29ial9pbml0KHN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIG1kcDVfZW5hYmxlX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zKQoreworCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0b19tZHA1X2ttcyh0b19tZHBfa21zKGttcykpOworCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJm1kcDVfa21zLT5wZGV2LT5kZXYpOworfQorCitzdGF0aWMgdm9pZCBtZHA1X2Rpc2FibGVfY29tbWl0KHN0cnVjdCBtc21fa21zICprbXMpCit7CisJc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IHRvX21kcDVfa21zKHRvX21kcF9rbXMoa21zKSk7CisJcG1fcnVudGltZV9wdXRfc3luYygmbWRwNV9rbXMtPnBkZXYtPmRldik7Cit9CisKIHN0YXRpYyB2b2lkIG1kcDVfcHJlcGFyZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0b19tZHA1X2ttcyh0b19tZHBfa21zKGttcykpOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZtZHA1X2ttcy0+cGRldi0+ZGV2OwogCXN0cnVjdCBtZHA1X2dsb2JhbF9zdGF0ZSAqZ2xvYmFsX3N0YXRlOwogCiAJZ2xvYmFsX3N0YXRlID0gbWRwNV9nZXRfZXhpc3RpbmdfZ2xvYmFsX3N0YXRlKG1kcDVfa21zKTsKIAotCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2KTsKLQogCWlmIChtZHA1X2ttcy0+c21wKQogCQltZHA1X3NtcF9wcmVwYXJlX2NvbW1pdChtZHA1X2ttcy0+c21wLCAmZ2xvYmFsX3N0YXRlLT5zbXApOwogfQogCi1zdGF0aWMgdm9pZCBtZHA1X2NvbXBsZXRlX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgdm9pZCBtZHA1X2ZsdXNoX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCB1bnNpZ25lZCBjcnRjX21hc2spCit7CisJLyogVE9ETyAqLworfQorCitzdGF0aWMgdm9pZCBtZHA1X3dhaXRfZmx1c2goc3RydWN0IG1zbV9rbXMgKmttcywgdW5zaWduZWQgY3J0Y19tYXNrKQogewogCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0b19tZHA1X2ttcyh0b19tZHBfa21zKGttcykpOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZtZHA1X2ttcy0+cGRldi0+ZGV2OwotCXN0cnVjdCBtZHA1X2dsb2JhbF9zdGF0ZSAqZ2xvYmFsX3N0YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAotCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MobWRwNV9rbXMtPmRldiwgc3RhdGUpOworCWZvcl9lYWNoX2NydGNfbWFzayhtZHA1X2ttcy0+ZGV2LCBjcnRjLCBjcnRjX21hc2spCisJCW1kcDVfY3J0Y193YWl0X2Zvcl9jb21taXRfZG9uZShjcnRjKTsKK30KKworc3RhdGljIHZvaWQgbWRwNV9jb21wbGV0ZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywgdW5zaWduZWQgY3J0Y19tYXNrKQoreworCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0b19tZHA1X2ttcyh0b19tZHBfa21zKGttcykpOworCXN0cnVjdCBtZHA1X2dsb2JhbF9zdGF0ZSAqZ2xvYmFsX3N0YXRlOwogCiAJZ2xvYmFsX3N0YXRlID0gbWRwNV9nZXRfZXhpc3RpbmdfZ2xvYmFsX3N0YXRlKG1kcDVfa21zKTsKIAogCWlmIChtZHA1X2ttcy0+c21wKQogCQltZHA1X3NtcF9jb21wbGV0ZV9jb21taXQobWRwNV9rbXMtPnNtcCwgJmdsb2JhbF9zdGF0ZS0+c21wKTsKLQotCXBtX3J1bnRpbWVfcHV0X3N5bmMoZGV2KTsKLX0KLQotc3RhdGljIHZvaWQgbWRwNV93YWl0X2Zvcl9jcnRjX2NvbW1pdF9kb25lKHN0cnVjdCBtc21fa21zICprbXMsCi0JCQkJCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCi17Ci0JbWRwNV9jcnRjX3dhaXRfZm9yX2NvbW1pdF9kb25lKGNydGMpOwogfQogCiBzdGF0aWMgbG9uZyBtZHA1X3JvdW5kX3BpeGNsayhzdHJ1Y3QgbXNtX2ttcyAqa21zLCB1bnNpZ25lZCBsb25nIHJhdGUsCkBAIC0yNzEsOSArMjg5LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWRwX2ttc19mdW5jcyBrbXNfZnVuY3MgPSB7CiAJCS5pcnEgICAgICAgICAgICAgPSBtZHA1X2lycSwKIAkJLmVuYWJsZV92YmxhbmsgICA9IG1kcDVfZW5hYmxlX3ZibGFuaywKIAkJLmRpc2FibGVfdmJsYW5rICA9IG1kcDVfZGlzYWJsZV92YmxhbmssCisJCS5mbHVzaF9jb21taXQgICAgPSBtZHA1X2ZsdXNoX2NvbW1pdCwKKwkJLmVuYWJsZV9jb21taXQgICA9IG1kcDVfZW5hYmxlX2NvbW1pdCwKKwkJLmRpc2FibGVfY29tbWl0ICA9IG1kcDVfZGlzYWJsZV9jb21taXQsCiAJCS5wcmVwYXJlX2NvbW1pdCAgPSBtZHA1X3ByZXBhcmVfY29tbWl0LAorCQkud2FpdF9mbHVzaCAgICAgID0gbWRwNV93YWl0X2ZsdXNoLAogCQkuY29tcGxldGVfY29tbWl0ID0gbWRwNV9jb21wbGV0ZV9jb21taXQsCi0JCS53YWl0X2Zvcl9jcnRjX2NvbW1pdF9kb25lID0gbWRwNV93YWl0X2Zvcl9jcnRjX2NvbW1pdF9kb25lLAogCQkuZ2V0X2Zvcm1hdCAgICAgID0gbWRwX2dldF9mb3JtYXQsCiAJCS5yb3VuZF9waXhjbGsgICAgPSBtZHA1X3JvdW5kX3BpeGNsaywKIAkJLnNldF9zcGxpdF9kaXNwbGF5ID0gbWRwNV9zZXRfc3BsaXRfZGlzcGxheSwKQEAgLTY2Myw2ICs2ODQsNyBAQCBzdHJ1Y3QgbXNtX2ttcyAqbWRwNV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBtc21fa21zICprbXM7CiAJc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlOwogCWludCBpcnEsIGksIHJldDsKKwlzdHJ1Y3QgZGV2aWNlICppb21tdV9kZXY7CiAKIAkvKiBwcml2LT5rbXMgd291bGQgaGF2ZSBiZWVuIHBvcHVsYXRlZCBieSB0aGUgTURQNSBkcml2ZXIgKi8KIAlrbXMgPSBwcml2LT5rbXM7CkBAIC03MDIsNyArNzI0LDExIEBAIHN0cnVjdCBtc21fa21zICptZHA1X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbWRlbGF5KDE2KTsKIAogCWlmIChjb25maWctPnBsYXRmb3JtLmlvbW11KSB7Ci0JCWFzcGFjZSA9IG1zbV9nZW1fYWRkcmVzc19zcGFjZV9jcmVhdGUoJnBkZXYtPmRldiwKKwkJaW9tbXVfZGV2ID0gJnBkZXYtPmRldjsKKwkJaWYgKCFpb21tdV9kZXYtPmlvbW11X2Z3c3BlYykKKwkJCWlvbW11X2RldiA9IGlvbW11X2Rldi0+cGFyZW50OworCisJCWFzcGFjZSA9IG1zbV9nZW1fYWRkcmVzc19zcGFjZV9jcmVhdGUoaW9tbXVfZGV2LAogCQkJCWNvbmZpZy0+cGxhdGZvcm0uaW9tbXUsICJtZHA1Iik7CiAJCWlmIChJU19FUlIoYXNwYWNlKSkgewogCQkJcmV0ID0gUFRSX0VSUihhc3BhY2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9wbGFuZS5jCmluZGV4IGM3ZTY3MjUuLjgzNDIzMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X3BsYW5lLmMKQEAgLTYsNyArNiw5IEBACiAgKi8KIAogI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorCiAjaW5jbHVkZSAibWRwNV9rbXMuaCIKIAogc3RydWN0IG1kcDVfcGxhbmUgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9zbXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfc21wLmMKaW5kZXggNzc2MzM3Zi4uYjMxY2ZiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9zbXAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X3NtcC5jCkBAIC01LDYgKzUsNyBAQAogICogQXV0aG9yOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CiAgKi8KIAorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV91dGlsLmg+CiAKICNpbmNsdWRlICJtZHA1X2ttcy5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcF9mb3JtYXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHBfZm9ybWF0LmMKaW5kZXggOGFmYjBmOS4uNTQ5NWQ4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcF9mb3JtYXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwX2Zvcm1hdC5jCkBAIC0xNzQsNyArMTc0LDcgQEAgY29uc3Qgc3RydWN0IG1zbV9mb3JtYXQgKm1kcF9nZXRfZm9ybWF0KHN0cnVjdCBtc21fa21zICprbXMsIHVpbnQzMl90IGZvcm1hdCwKIAogc3RydWN0IGNzY19jZmcgKm1kcF9nZXRfZGVmYXVsdF9jc2NfY2ZnKGVudW0gY3NjX3R5cGUgdHlwZSkKIHsKLQlpZiAodW5saWtlbHkoV0FSTl9PTih0eXBlID49IENTQ19NQVgpKSkKKwlpZiAoV0FSTl9PTih0eXBlID49IENTQ19NQVgpKQogCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAmY3NjX2NvbnZlcnRbdHlwZV07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9zdC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2hvc3QuYwppbmRleCBhYTM1ZDE4Li42NjNmZjlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9zdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMKQEAgLTUsMTkgKzUsMTkgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CiAjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9vZl9ncGlvLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KICNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9waW5jdHJsL2NvbnN1bWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KLSNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKwogI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgogCiAjaW5jbHVkZSAiZHNpLmgiCkBAIC00MjEsMTUgKzQyMSwxNSBAQCBzdGF0aWMgaW50IGRzaV9jbGtfaW5pdChzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKIAl9CiAKIAltc21faG9zdC0+Ynl0ZV9jbGtfc3JjID0gY2xrX2dldF9wYXJlbnQobXNtX2hvc3QtPmJ5dGVfY2xrKTsKLQlpZiAoIW1zbV9ob3N0LT5ieXRlX2Nsa19zcmMpIHsKLQkJcmV0ID0gLUVOT0RFVjsKKwlpZiAoSVNfRVJSKG1zbV9ob3N0LT5ieXRlX2Nsa19zcmMpKSB7CisJCXJldCA9IFBUUl9FUlIobXNtX2hvc3QtPmJ5dGVfY2xrX3NyYyk7CiAJCXByX2VycigiJXM6IGNhbid0IGZpbmQgYnl0ZV9jbGsgY2xvY2suIHJldD0lZFxuIiwgX19mdW5jX18sIHJldCk7CiAJCWdvdG8gZXhpdDsKIAl9CiAKIAltc21faG9zdC0+cGl4ZWxfY2xrX3NyYyA9IGNsa19nZXRfcGFyZW50KG1zbV9ob3N0LT5waXhlbF9jbGspOwotCWlmICghbXNtX2hvc3QtPnBpeGVsX2Nsa19zcmMpIHsKLQkJcmV0ID0gLUVOT0RFVjsKKwlpZiAoSVNfRVJSKG1zbV9ob3N0LT5waXhlbF9jbGtfc3JjKSkgeworCQlyZXQgPSBQVFJfRVJSKG1zbV9ob3N0LT5waXhlbF9jbGtfc3JjKTsKIAkJcHJfZXJyKCIlczogY2FuJ3QgZmluZCBwaXhlbF9jbGsgY2xvY2suIHJldD0lZFxuIiwgX19mdW5jX18sIHJldCk7CiAJCWdvdG8gZXhpdDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9waHkvZHNpX3BoeS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvcGh5L2RzaV9waHkuYwppbmRleCA0MDk3ZWNhLi4zNTIyODYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9waHkvZHNpX3BoeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL3BoeS9kc2lfcGh5LmMKQEAgLTM5Niw4ICszOTYsMTIgQEAgc3RhdGljIGludCBkc2lfcGh5X3JlZ3VsYXRvcl9pbml0KHN0cnVjdCBtc21fZHNpX3BoeSAqcGh5KQogCiAJcmV0ID0gZGV2bV9yZWd1bGF0b3JfYnVsa19nZXQoZGV2LCBudW0sIHMpOwogCWlmIChyZXQgPCAwKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAiJXM6IGZhaWxlZCB0byBpbml0IHJlZ3VsYXRvciwgcmV0PSVkXG4iLAotCQkJCQkJX19mdW5jX18sIHJldCk7CisJCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikgeworCQkJRFJNX0RFVl9FUlJPUihkZXYsCisJCQkJICAgICAgIiVzOiBmYWlsZWQgdG8gaW5pdCByZWd1bGF0b3IsIHJldD0lZFxuIiwKKwkJCQkgICAgICBfX2Z1bmNfXywgcmV0KTsKKwkJfQorCiAJCXJldHVybiByZXQ7CiAJfQogCkBAIC01ODQsMTAgKzU4OCw4IEBAIHN0YXRpYyBpbnQgZHNpX3BoeV9kcml2ZXJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAlyZXQgPSBkc2lfcGh5X3JlZ3VsYXRvcl9pbml0KHBoeSk7Ci0JaWYgKHJldCkgewotCQlEUk1fREVWX0VSUk9SKGRldiwgIiVzOiBmYWlsZWQgdG8gaW5pdCByZWd1bGF0b3JcbiIsIF9fZnVuY19fKTsKKwlpZiAocmV0KQogCQlnb3RvIGZhaWw7Ci0JfQogCiAJcGh5LT5haGJfY2xrID0gbXNtX2Nsa19nZXQocGRldiwgImlmYWNlIik7CiAJaWYgKElTX0VSUihwaHktPmFoYl9jbGspKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9waHkvZHNpX3BoeV8xNG5tLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9waHkvZHNpX3BoeV8xNG5tLmMKaW5kZXggYzNhNjE4Ny4uMTU5NGYxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvcGh5L2RzaV9waHlfMTRubS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL3BoeS9kc2lfcGh5XzE0bm0uYwpAQCAtMyw2ICszLDggQEAKICAqIENvcHlyaWdodCAoYykgMjAxNiwgVGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisKICNpbmNsdWRlICJkc2lfcGh5LmgiCiAjaW5jbHVkZSAiZHNpLnhtbC5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9waHkvZHNpX3BoeV8yOG5tXzg5NjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL3BoeS9kc2lfcGh5XzI4bm1fODk2MC5jCmluZGV4IGExOThmNTEuLmYyMjU4MzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL3BoeS9kc2lfcGh5XzI4bm1fODk2MC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL3BoeS9kc2lfcGh5XzI4bm1fODk2MC5jCkBAIC0zLDYgKzMsOCBAQAogICogQ29weXJpZ2h0IChjKSAyMDEyLTIwMTUsIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorCiAjaW5jbHVkZSAiZHNpX3BoeS5oIgogI2luY2x1ZGUgImRzaS54bWwuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvcGxsL2RzaV9wbGwuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL3BsbC9kc2lfcGxsLmgKaW5kZXggMTE4YmViZS4uYzZhMzYyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvcGxsL2RzaV9wbGwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9wbGwvZHNpX3BsbC5oCkBAIC02LDggKzYsOCBAQAogI2lmbmRlZiBfX0RTSV9QTExfSF9fCiAjZGVmaW5lIF9fRFNJX1BMTF9IX18KIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAKICNpbmNsdWRlICJkc2kuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pLmMKaW5kZXggMGU0MjE3Yi4uMzU1YWZiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaS5jCkBAIC00MjUsMzggKzQyNSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCXsgInFjb20saGRtaS10eC1tdXgtbHBtIiwgdHJ1ZSwgMSwgIkhETUlfTVVYX0xQTSIgfSwKIH07CiAKLXN0YXRpYyBpbnQgbXNtX2hkbWlfZ2V0X2dwaW8oc3RydWN0IGRldmljZV9ub2RlICpvZl9ub2RlLCBjb25zdCBjaGFyICpuYW1lKQotewotCWludCBncGlvOwotCi0JLyogdHJ5IHdpdGggdGhlIGdwaW8gbmFtZXMgYXMgaW4gdGhlIHRhYmxlIChkb3duc3RyZWFtIGJpbmRpbmdzKSAqLwotCWdwaW8gPSBvZl9nZXRfbmFtZWRfZ3BpbyhvZl9ub2RlLCBuYW1lLCAwKTsKLQlpZiAoZ3BpbyA8IDApIHsKLQkJY2hhciBuYW1lMlszMl07Ci0KLQkJLyogdHJ5IHdpdGggdGhlIGdwaW8gbmFtZXMgYXMgaW4gdGhlIHVwc3RyZWFtIGJpbmRpbmdzICovCi0JCXNucHJpbnRmKG5hbWUyLCBzaXplb2YobmFtZTIpLCAiJXMtZ3Bpb3MiLCBuYW1lKTsKLQkJZ3BpbyA9IG9mX2dldF9uYW1lZF9ncGlvKG9mX25vZGUsIG5hbWUyLCAwKTsKLQkJaWYgKGdwaW8gPCAwKSB7Ci0JCQljaGFyIG5hbWUzWzMyXTsKLQotCQkJLyoKLQkJCSAqIHRyeSBhZ2FpbiBhZnRlciBzdHJpcHBpbmcgb3V0IHRoZSAicWNvbSxoZG1pLXR4IgotCQkJICogcHJlZml4LiBUaGlzIGlzIG1haW5seSB0byBtYXRjaCAiaHBkLWdwaW9zIiB1c2VkCi0JCQkgKiBpbiB0aGUgdXBzdHJlYW0gYmluZGluZ3MKLQkJCSAqLwotCQkJaWYgKHNzY2FuZihuYW1lMiwgInFjb20saGRtaS10eC0lcyIsIG5hbWUzKSkKLQkJCQlncGlvID0gb2ZfZ2V0X25hbWVkX2dwaW8ob2Zfbm9kZSwgbmFtZTMsIDApOwotCQl9Ci0KLQkJaWYgKGdwaW8gPCAwKSB7Ci0JCQlEQkcoImZhaWxlZCB0byBnZXQgZ3BpbzogJXMgKCVkKSIsIG5hbWUsIGdwaW8pOwotCQkJZ3BpbyA9IC0xOwotCQl9Ci0JfQotCXJldHVybiBncGlvOwotfQotCiAvKgogICogSERNSSBhdWRpbyBjb2RlYyBjYWxsYmFja3MKICAqLwpAQCAtNTgyLDExICs1NTAsMzkgQEAgc3RhdGljIGludCBtc21faGRtaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCWhkbWlfY2ZnLT5xZnByb21fbW1pb19uYW1lID0gInFmcHJvbV9waHlzaWNhbCI7CiAKIAlmb3IgKGkgPSAwOyBpIDwgSERNSV9NQVhfTlVNX0dQSU87IGkrKykgewotCQloZG1pX2NmZy0+Z3Bpb3NbaV0ubnVtID0gbXNtX2hkbWlfZ2V0X2dwaW8ob2Zfbm9kZSwKLQkJCQkJCW1zbV9oZG1pX2dwaW9fcGRhdGFbaV0ubmFtZSk7CisJCWNvbnN0IGNoYXIgKm5hbWUgPSBtc21faGRtaV9ncGlvX3BkYXRhW2ldLm5hbWU7CisJCXN0cnVjdCBncGlvX2Rlc2MgKmdwaW9kOworCisJCS8qCisJCSAqIFdlIGFyZSBmZXRjaGluZyB0aGUgR1BJTyBsaW5lcyAiYXMgaXMiIHNpbmNlIHRoZSBjb25uZWN0b3IKKwkJICogY29kZSBpcyBlbmFibGluZyBhbmQgZGlzYWJsaW5nIHRoZSBsaW5lcy4gVW50aWwgdGhhdCBwb2ludAorCQkgKiB0aGUgcG93ZXItb24gZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGtlcHQuCisJCSAqLworCQlncGlvZCA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgbmFtZSwgR1BJT0RfQVNJUyk7CisJCS8qIFRoaXMgd2lsbCBjYXRjaCBlLmcuIC1QUk9CRV9ERUZFUiAqLworCQlpZiAoSVNfRVJSKGdwaW9kKSkKKwkJCXJldHVybiBQVFJfRVJSKGdwaW9kKTsKKwkJaWYgKCFncGlvZCkgeworCQkJLyogVHJ5IGEgc2Vjb25kIHRpbWUsIHN0cmlwcGluZyBkb3duIHRoZSBuYW1lICovCisJCQljaGFyIG5hbWUzWzMyXTsKKworCQkJLyoKKwkJCSAqIFRyeSBhZ2FpbiBhZnRlciBzdHJpcHBpbmcgb3V0IHRoZSAicWNvbSxoZG1pLXR4IgorCQkJICogcHJlZml4LiBUaGlzIGlzIG1haW5seSB0byBtYXRjaCAiaHBkLWdwaW9zIiB1c2VkCisJCQkgKiBpbiB0aGUgdXBzdHJlYW0gYmluZGluZ3MuCisJCQkgKi8KKwkJCWlmIChzc2NhbmYobmFtZSwgInFjb20saGRtaS10eC0lcyIsIG5hbWUzKSkKKwkJCQlncGlvZCA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgbmFtZTMsIEdQSU9EX0FTSVMpOworCQkJaWYgKElTX0VSUihncGlvZCkpCisJCQkJcmV0dXJuIFBUUl9FUlIoZ3Bpb2QpOworCQkJaWYgKCFncGlvZCkKKwkJCQlEQkcoImZhaWxlZCB0byBnZXQgZ3BpbzogJXMiLCBuYW1lKTsKKwkJfQorCQloZG1pX2NmZy0+Z3Bpb3NbaV0uZ3Bpb2QgPSBncGlvZDsKKwkJaWYgKGdwaW9kKQorCQkJZ3Bpb2Rfc2V0X2NvbnN1bWVyX25hbWUoZ3Bpb2QsIG1zbV9oZG1pX2dwaW9fcGRhdGFbaV0ubGFiZWwpOwogCQloZG1pX2NmZy0+Z3Bpb3NbaV0ub3V0cHV0ID0gbXNtX2hkbWlfZ3Bpb19wZGF0YVtpXS5vdXRwdXQ7CiAJCWhkbWlfY2ZnLT5ncGlvc1tpXS52YWx1ZSA9IG1zbV9oZG1pX2dwaW9fcGRhdGFbaV0udmFsdWU7Ci0JCWhkbWlfY2ZnLT5ncGlvc1tpXS5sYWJlbCA9IG1zbV9oZG1pX2dwaW9fcGRhdGFbaV0ubGFiZWw7CiAJfQogCiAJZGV2LT5wbGF0Zm9ybV9kYXRhID0gaGRtaV9jZmc7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWkuaAppbmRleCA5ODI4NjU4Li5iZGFjNDUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pLmgKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgvaGRtaS5oPgogCiAjaW5jbHVkZSAibXNtX2Rydi5oIgpAQCAtMjIsMTAgKzIzLDkgQEAgc3RydWN0IGhkbWlfcGh5Owogc3RydWN0IGhkbWlfcGxhdGZvcm1fY29uZmlnOwogCiBzdHJ1Y3QgaGRtaV9ncGlvX2RhdGEgewotCWludCBudW07CisJc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb2Q7CiAJYm9vbCBvdXRwdXQ7CiAJaW50IHZhbHVlOwotCWNvbnN0IGNoYXIgKmxhYmVsOwogfTsKIAogc3RydWN0IGhkbWlfYXVkaW8gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfYnJpZGdlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9icmlkZ2UuYwppbmRleCBjOGRiZDgyLi5iYTgxMzM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9icmlkZ2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9icmlkZ2UuYwpAQCAtNCw2ICs0LDggQEAKICAqIEF1dGhvcjogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorCiAjaW5jbHVkZSAiaGRtaS5oIgogCiBzdHJ1Y3QgaGRtaV9icmlkZ2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9jb25uZWN0b3IuYwppbmRleCAwN2I0Y2I4Li44Mzk4MjJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9jb25uZWN0b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9jb25uZWN0b3IuYwpAQCAtNCw3ICs0LDggQEAKICAqIEF1dGhvcjogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgvcGluY3RybC9jb25zdW1lci5oPgogCiAjaW5jbHVkZSAibXNtX2ttcy5oIgpAQCAtNjgsMzAgKzY5LDIxIEBAIHN0YXRpYyB2b2lkIG1zbV9oZG1pX3BoeV9yZXNldChzdHJ1Y3QgaGRtaSAqaGRtaSkKIAogc3RhdGljIGludCBncGlvX2NvbmZpZyhzdHJ1Y3QgaGRtaSAqaGRtaSwgYm9vbCBvbikKIHsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmaGRtaS0+cGRldi0+ZGV2OwogCWNvbnN0IHN0cnVjdCBoZG1pX3BsYXRmb3JtX2NvbmZpZyAqY29uZmlnID0gaGRtaS0+Y29uZmlnOwotCWludCByZXQsIGk7CisJaW50IGk7CiAKIAlpZiAob24pIHsKIAkJZm9yIChpID0gMDsgaSA8IEhETUlfTUFYX05VTV9HUElPOyBpKyspIHsKIAkJCXN0cnVjdCBoZG1pX2dwaW9fZGF0YSBncGlvID0gY29uZmlnLT5ncGlvc1tpXTsKIAotCQkJaWYgKGdwaW8ubnVtICE9IC0xKSB7Ci0JCQkJcmV0ID0gZ3Bpb19yZXF1ZXN0KGdwaW8ubnVtLCBncGlvLmxhYmVsKTsKLQkJCQlpZiAocmV0KSB7Ci0JCQkJCURSTV9ERVZfRVJST1IoZGV2LAotCQkJCQkJIiclcycoJWQpIGdwaW9fcmVxdWVzdCBmYWlsZWQ6ICVkXG4iLAotCQkJCQkJZ3Bpby5sYWJlbCwgZ3Bpby5udW0sIHJldCk7Ci0JCQkJCWdvdG8gZXJyOwotCQkJCX0KLQorCQkJaWYgKGdwaW8uZ3Bpb2QpIHsKIAkJCQlpZiAoZ3Bpby5vdXRwdXQpIHsKLQkJCQkJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KGdwaW8ubnVtLAotCQkJCQkJCSAgICAgIGdwaW8udmFsdWUpOworCQkJCQlncGlvZF9kaXJlY3Rpb25fb3V0cHV0KGdwaW8uZ3Bpb2QsCisJCQkJCQkJICAgICAgIGdwaW8udmFsdWUpOwogCQkJCX0gZWxzZSB7Ci0JCQkJCWdwaW9fZGlyZWN0aW9uX2lucHV0KGdwaW8ubnVtKTsKLQkJCQkJZ3Bpb19zZXRfdmFsdWVfY2Fuc2xlZXAoZ3Bpby5udW0sCi0JCQkJCQkJCWdwaW8udmFsdWUpOworCQkJCQlncGlvZF9kaXJlY3Rpb25faW5wdXQoZ3Bpby5ncGlvZCk7CisJCQkJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChncGlvLmdwaW9kLAorCQkJCQkJCQkgZ3Bpby52YWx1ZSk7CiAJCQkJfQogCQkJfQogCQl9CkBAIC0xMDEsMjkgKzkzLDIwIEBAIHN0YXRpYyBpbnQgZ3Bpb19jb25maWcoc3RydWN0IGhkbWkgKmhkbWksIGJvb2wgb24pCiAJCWZvciAoaSA9IDA7IGkgPCBIRE1JX01BWF9OVU1fR1BJTzsgaSsrKSB7CiAJCQlzdHJ1Y3QgaGRtaV9ncGlvX2RhdGEgZ3BpbyA9IGNvbmZpZy0+Z3Bpb3NbaV07CiAKLQkJCWlmIChncGlvLm51bSA9PSAtMSkKKwkJCWlmICghZ3Bpby5ncGlvZCkKIAkJCQljb250aW51ZTsKIAogCQkJaWYgKGdwaW8ub3V0cHV0KSB7CiAJCQkJaW50IHZhbHVlID0gZ3Bpby52YWx1ZSA/IDAgOiAxOwogCi0JCQkJZ3Bpb19zZXRfdmFsdWVfY2Fuc2xlZXAoZ3Bpby5udW0sIHZhbHVlKTsKKwkJCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZ3Bpby5ncGlvZCwgdmFsdWUpOwogCQkJfQotCi0JCQlncGlvX2ZyZWUoZ3Bpby5udW0pOwogCQl9OwogCiAJCURCRygiZ3BpbyBvZmYiKTsKIAl9CiAKIAlyZXR1cm4gMDsKLWVycjoKLQl3aGlsZSAoaS0tKSB7Ci0JCWlmIChjb25maWctPmdwaW9zW2ldLm51bSAhPSAtMSkKLQkJCWdwaW9fZnJlZShjb25maWctPmdwaW9zW2ldLm51bSk7Ci0JfQotCi0JcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgZW5hYmxlX2hwZF9jbG9ja3Moc3RydWN0IGhkbWkgKmhkbWksIGJvb2wgZW5hYmxlKQpAQCAtMzExLDcgKzI5NCw3IEBAIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIGRldGVjdF9ncGlvKHN0cnVjdCBoZG1pICpoZG1pKQogCWNvbnN0IHN0cnVjdCBoZG1pX3BsYXRmb3JtX2NvbmZpZyAqY29uZmlnID0gaGRtaS0+Y29uZmlnOwogCXN0cnVjdCBoZG1pX2dwaW9fZGF0YSBocGRfZ3BpbyA9IGNvbmZpZy0+Z3Bpb3NbSFBEX0dQSU9fSU5ERVhdOwogCi0JcmV0dXJuIGdwaW9fZ2V0X3ZhbHVlKGhwZF9ncGlvLm51bSkgPworCXJldHVybiBncGlvZF9nZXRfdmFsdWUoaHBkX2dwaW8uZ3Bpb2QpID8KIAkJCWNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkIDoKIAkJCWNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwogfQpAQCAtMzMwLDcgKzMxMyw3IEBAIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIGhkbWlfY29ubmVjdG9yX2RldGVjdCgKIAkgKiBzb21lIHBsYXRmb3JtcyBtYXkgbm90IGhhdmUgaHBkIGdwaW8uIFJlbHkgb25seSBvbiB0aGUgc3RhdHVzCiAJICogcHJvdmlkZWQgYnkgUkVHX0hETUlfSFBEX0lOVF9TVEFUVVMgaW4gdGhpcyBjYXNlLgogCSAqLwotCWlmIChocGRfZ3Bpby5udW0gPT0gLTEpCisJaWYgKCFocGRfZ3Bpby5ncGlvZCkKIAkJcmV0dXJuIGRldGVjdF9yZWcoaGRtaSk7CiAKIAlkbyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9waHlfODk5Ni5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfcGh5Xzg5OTYuYwppbmRleCBmZTgyYWQzLi5hOGYzYjJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9waHlfODk5Ni5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX3BoeV84OTk2LmMKQEAgLTQsNiArNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAKICNpbmNsdWRlICJoZG1pLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX3BoeV84eDYwLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9waHlfOHg2MC5jCmluZGV4IDFhY2MzM2MuLjk1ZjI5MjhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9waHlfOHg2MC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX3BoeV84eDYwLmMKQEAgLTQsNiArNCw4IEBACiAgKiBBdXRob3I6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KICAqLwogCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKwogI2luY2x1ZGUgImhkbWkuaCIKIAogc3RhdGljIHZvaWQgaGRtaV9waHlfOHg2MF9wb3dlcnVwKHN0cnVjdCBoZG1pX3BoeSAqcGh5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfcGxsXzg5NjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX3BsbF84OTYwLmMKaW5kZXggZTI0YTExZC4uNTYyZGZhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfcGxsXzg5NjAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9wbGxfODk2MC5jCkBAIC02LDYgKzYsOCBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorCiAjaW5jbHVkZSAiaGRtaS5oIgogCiBzdHJ1Y3QgaGRtaV9wbGxfODk2MCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCmluZGV4IGRkMTZiYWIuLjVjY2ZhZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCkBAIC01LDc3ICs1LDI0MyBAQAogICovCiAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY191YXBpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAorI2luY2x1ZGUgIm1zbV9hdG9taWNfdHJhY2UuaCIKICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX2dlbS5oIgogI2luY2x1ZGUgIm1zbV9rbXMuaCIKIAotc3RhdGljIHZvaWQgbXNtX2F0b21pY193YWl0X2Zvcl9jb21taXRfZG9uZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQotewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOwotCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBvbGRfc3RhdGUtPmRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IG1zbV9rbXMgKmttcyA9IHByaXYtPmttczsKLQlpbnQgaTsKLQotCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQotCQkJY29udGludWU7Ci0KLQkJaWYgKGRybV9jcnRjX3ZibGFua19nZXQoY3J0YykpCi0JCQljb250aW51ZTsKLQotCQlrbXMtPmZ1bmNzLT53YWl0X2Zvcl9jcnRjX2NvbW1pdF9kb25lKGttcywgY3J0Yyk7Ci0KLQkJZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTsKLQl9Ci19Ci0KIGludCBtc21fYXRvbWljX3ByZXBhcmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSkKIHsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gcGxhbmUtPmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IG1zbV9rbXMgKmttcyA9IHByaXYtPmttczsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAogCWlmICghbmV3X3N0YXRlLT5mYikKIAkJcmV0dXJuIDA7CiAKLQlvYmogPSBtc21fZnJhbWVidWZmZXJfYm8obmV3X3N0YXRlLT5mYiwgMCk7Ci0JZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KG9iai0+cmVzdik7Ci0KLQlkcm1fYXRvbWljX3NldF9mZW5jZV9mb3JfcGxhbmUobmV3X3N0YXRlLCBmZW5jZSk7CisJZHJtX2dlbV9mYl9wcmVwYXJlX2ZiKHBsYW5lLCBuZXdfc3RhdGUpOwogCiAJcmV0dXJuIG1zbV9mcmFtZWJ1ZmZlcl9wcmVwYXJlKG5ld19zdGF0ZS0+ZmIsIGttcy0+YXNwYWNlKTsKIH0KIAorc3RhdGljIHZvaWQgbXNtX2F0b21pY19hc3luY19jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywgaW50IGNydGNfaWR4KQoreworCXVuc2lnbmVkIGNydGNfbWFzayA9IEJJVChjcnRjX2lkeCk7CisKKwl0cmFjZV9tc21fYXRvbWljX2FzeW5jX2NvbW1pdF9zdGFydChjcnRjX21hc2spOworCisJbXV0ZXhfbG9jaygma21zLT5jb21taXRfbG9jayk7CisKKwlpZiAoIShrbXMtPnBlbmRpbmdfY3J0Y19tYXNrICYgY3J0Y19tYXNrKSkgeworCQltdXRleF91bmxvY2soJmttcy0+Y29tbWl0X2xvY2spOworCQlnb3RvIG91dDsKKwl9CisKKwlrbXMtPnBlbmRpbmdfY3J0Y19tYXNrICY9IH5jcnRjX21hc2s7CisKKwlrbXMtPmZ1bmNzLT5lbmFibGVfY29tbWl0KGttcyk7CisKKwkvKgorCSAqIEZsdXNoIGhhcmR3YXJlIHVwZGF0ZXM6CisJICovCisJdHJhY2VfbXNtX2F0b21pY19mbHVzaF9jb21taXQoY3J0Y19tYXNrKTsKKwlrbXMtPmZ1bmNzLT5mbHVzaF9jb21taXQoa21zLCBjcnRjX21hc2spOworCW11dGV4X3VubG9jaygma21zLT5jb21taXRfbG9jayk7CisKKwkvKgorCSAqIFdhaXQgZm9yIGZsdXNoIHRvIGNvbXBsZXRlOgorCSAqLworCXRyYWNlX21zbV9hdG9taWNfd2FpdF9mbHVzaF9zdGFydChjcnRjX21hc2spOworCWttcy0+ZnVuY3MtPndhaXRfZmx1c2goa21zLCBjcnRjX21hc2spOworCXRyYWNlX21zbV9hdG9taWNfd2FpdF9mbHVzaF9maW5pc2goY3J0Y19tYXNrKTsKKworCW11dGV4X2xvY2soJmttcy0+Y29tbWl0X2xvY2spOworCWttcy0+ZnVuY3MtPmNvbXBsZXRlX2NvbW1pdChrbXMsIGNydGNfbWFzayk7CisJbXV0ZXhfdW5sb2NrKCZrbXMtPmNvbW1pdF9sb2NrKTsKKwlrbXMtPmZ1bmNzLT5kaXNhYmxlX2NvbW1pdChrbXMpOworCitvdXQ6CisJdHJhY2VfbXNtX2F0b21pY19hc3luY19jb21taXRfZmluaXNoKGNydGNfbWFzayk7Cit9CisKK3N0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBtc21fYXRvbWljX3BlbmRpbmdfdGltZXIoc3RydWN0IGhydGltZXIgKnQpCit7CisJc3RydWN0IG1zbV9wZW5kaW5nX3RpbWVyICp0aW1lciA9IGNvbnRhaW5lcl9vZih0LAorCQkJc3RydWN0IG1zbV9wZW5kaW5nX3RpbWVyLCB0aW1lcik7CisJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IHRpbWVyLT5rbXMtPmRldi0+ZGV2X3ByaXZhdGU7CisKKwlxdWV1ZV93b3JrKHByaXYtPndxLCAmdGltZXItPndvcmspOworCisJcmV0dXJuIEhSVElNRVJfTk9SRVNUQVJUOworfQorCitzdGF0aWMgdm9pZCBtc21fYXRvbWljX3BlbmRpbmdfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IG1zbV9wZW5kaW5nX3RpbWVyICp0aW1lciA9IGNvbnRhaW5lcl9vZih3b3JrLAorCQkJc3RydWN0IG1zbV9wZW5kaW5nX3RpbWVyLCB3b3JrKTsKKworCW1zbV9hdG9taWNfYXN5bmNfY29tbWl0KHRpbWVyLT5rbXMsIHRpbWVyLT5jcnRjX2lkeCk7Cit9CisKK3ZvaWQgbXNtX2F0b21pY19pbml0X3BlbmRpbmdfdGltZXIoc3RydWN0IG1zbV9wZW5kaW5nX3RpbWVyICp0aW1lciwKKwkJc3RydWN0IG1zbV9rbXMgKmttcywgaW50IGNydGNfaWR4KQoreworCXRpbWVyLT5rbXMgPSBrbXM7CisJdGltZXItPmNydGNfaWR4ID0gY3J0Y19pZHg7CisJaHJ0aW1lcl9pbml0KCZ0aW1lci0+dGltZXIsIENMT0NLX01PTk9UT05JQywgSFJUSU1FUl9NT0RFX0FCUyk7CisJdGltZXItPnRpbWVyLmZ1bmN0aW9uID0gbXNtX2F0b21pY19wZW5kaW5nX3RpbWVyOworCUlOSVRfV09SSygmdGltZXItPndvcmssIG1zbV9hdG9taWNfcGVuZGluZ193b3JrKTsKK30KKworc3RhdGljIGJvb2wgY2FuX2RvX2FzeW5jKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJc3RydWN0IGRybV9jcnRjICoqYXN5bmNfY3J0YykKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwlpbnQgaSwgbnVtX2NydGNzID0gMDsKKworCWlmICghKHN0YXRlLT5sZWdhY3lfY3Vyc29yX3VwZGF0ZSB8fCBzdGF0ZS0+YXN5bmNfdXBkYXRlKSkKKwkJcmV0dXJuIGZhbHNlOworCisJLyogYW55IGNvbm5lY3RvciBjaGFuZ2UsIG1lYW5zIHNsb3cgcGF0aDogKi8KKwlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkKKwkJcmV0dXJuIGZhbHNlOworCisJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKKwkJaWYgKGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQorCQkJcmV0dXJuIGZhbHNlOworCQlpZiAoKytudW1fY3J0Y3MgPiAxKQorCQkJcmV0dXJuIGZhbHNlOworCQkqYXN5bmNfY3J0YyA9IGNydGM7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKKy8qIEdldCBiaXRtYXNrIG9mIGNydGNzIHRoYXQgd2lsbCBuZWVkIHRvIGJlIGZsdXNoZWQuICBUaGUgYml0bWFzaworICogY2FuIGJlIHVzZWQgd2l0aCBmb3JfZWFjaF9jcnRjX21hc2soKSBpdGVyYXRvciwgdG8gaXRlcmF0ZQorICogZWZmZWN0ZWQgY3J0Y3Mgd2l0aG91dCBuZWVkaW5nIHRvIHByZXNlcnZlIHRoZSBhdG9taWMgc3RhdGUuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBnZXRfY3J0Y19tYXNrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXVuc2lnbmVkIGksIG1hc2sgPSAwOworCisJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpCisJCW1hc2sgfD0gZHJtX2NydGNfbWFzayhjcnRjKTsKKworCXJldHVybiBtYXNrOworfQorCiB2b2lkIG1zbV9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2OwogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBtc21fa21zICprbXMgPSBwcml2LT5rbXM7CisJc3RydWN0IGRybV9jcnRjICphc3luY19jcnRjID0gTlVMTDsKKwl1bnNpZ25lZCBjcnRjX21hc2sgPSBnZXRfY3J0Y19tYXNrKHN0YXRlKTsKKwlib29sIGFzeW5jID0ga21zLT5mdW5jcy0+dnN5bmNfdGltZSAmJgorCQkJY2FuX2RvX2FzeW5jKHN0YXRlLCAmYXN5bmNfY3J0Yyk7CiAKKwl0cmFjZV9tc21fYXRvbWljX2NvbW1pdF90YWlsX3N0YXJ0KGFzeW5jLCBjcnRjX21hc2spOworCisJa21zLT5mdW5jcy0+ZW5hYmxlX2NvbW1pdChrbXMpOworCisJLyoKKwkgKiBFbnN1cmUgYW55IHByZXZpb3VzIChwb3RlbnRpYWxseSBhc3luYykgY29tbWl0IGhhcworCSAqIGNvbXBsZXRlZDoKKwkgKi8KKwl0cmFjZV9tc21fYXRvbWljX3dhaXRfZmx1c2hfc3RhcnQoY3J0Y19tYXNrKTsKKwlrbXMtPmZ1bmNzLT53YWl0X2ZsdXNoKGttcywgY3J0Y19tYXNrKTsKKwl0cmFjZV9tc21fYXRvbWljX3dhaXRfZmx1c2hfZmluaXNoKGNydGNfbWFzayk7CisKKwltdXRleF9sb2NrKCZrbXMtPmNvbW1pdF9sb2NrKTsKKworCS8qCisJICogTm93IHRoYXQgdGhlcmUgaXMgbm8gaW4tcHJvZ3Jlc3MgZmx1c2gsIHByZXBhcmUgdGhlCisJICogY3VycmVudCB1cGRhdGU6CisJICovCiAJa21zLT5mdW5jcy0+cHJlcGFyZV9jb21taXQoa21zLCBzdGF0ZSk7CiAKKwkvKgorCSAqIFB1c2ggYXRvbWljIHVwZGF0ZXMgZG93biB0byBoYXJkd2FyZToKKwkgKi8KIAlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhkZXYsIHN0YXRlKTsKLQogCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBzdGF0ZSwgMCk7Ci0KIAlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzKGRldiwgc3RhdGUpOwogCi0JaWYgKGttcy0+ZnVuY3MtPmNvbW1pdCkgewotCQlEUk1fREVCVUdfQVRPTUlDKCJ0cmlnZ2VyaW5nIGNvbW1pdFxuIik7Ci0JCWttcy0+ZnVuY3MtPmNvbW1pdChrbXMsIHN0YXRlKTsKKwlpZiAoYXN5bmMpIHsKKwkJc3RydWN0IG1zbV9wZW5kaW5nX3RpbWVyICp0aW1lciA9CisJCQkma21zLT5wZW5kaW5nX3RpbWVyc1tkcm1fY3J0Y19pbmRleChhc3luY19jcnRjKV07CisKKwkJLyogYXN5bmMgdXBkYXRlcyBhcmUgbGltaXRlZCB0byBzaW5nbGUtY3J0YyB1cGRhdGVzOiAqLworCQlXQVJOX09OKGNydGNfbWFzayAhPSBkcm1fY3J0Y19tYXNrKGFzeW5jX2NydGMpKTsKKworCQkvKgorCQkgKiBTdGFydCB0aW1lciBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgYW4gdXBkYXRlIHBlbmRpbmcKKwkJICogb24gdGhpcyBjcnRjOgorCQkgKi8KKwkJaWYgKCEoa21zLT5wZW5kaW5nX2NydGNfbWFzayAmIGNydGNfbWFzaykpIHsKKwkJCWt0aW1lX3QgdnN5bmNfdGltZSwgd2FrZXVwX3RpbWU7CisKKwkJCWttcy0+cGVuZGluZ19jcnRjX21hc2sgfD0gY3J0Y19tYXNrOworCisJCQl2c3luY190aW1lID0ga21zLT5mdW5jcy0+dnN5bmNfdGltZShrbXMsIGFzeW5jX2NydGMpOworCQkJd2FrZXVwX3RpbWUgPSBrdGltZV9zdWIodnN5bmNfdGltZSwgbXNfdG9fa3RpbWUoMSkpOworCisJCQlocnRpbWVyX3N0YXJ0KCZ0aW1lci0+dGltZXIsIHdha2V1cF90aW1lLAorCQkJCQlIUlRJTUVSX01PREVfQUJTKTsKKwkJfQorCisJCWttcy0+ZnVuY3MtPmRpc2FibGVfY29tbWl0KGttcyk7CisJCW11dGV4X3VubG9jaygma21zLT5jb21taXRfbG9jayk7CisKKwkJLyoKKwkJICogQXQgdGhpcyBwb2ludCwgZnJvbSBkcm0gY29yZSdzIHBlcnNwZWN0aXZlLCB3ZQorCQkgKiBhcmUgZG9uZSB3aXRoIHRoZSBhdG9taWMgdXBkYXRlLCBzbyB3ZSBjYW4ganVzdAorCQkgKiBnbyBhaGVhZCBhbmQgc2lnbmFsIHRoYXQgaXQgaXMgZG9uZToKKwkJICovCisJCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKHN0YXRlKTsKKwkJZHJtX2F0b21pY19oZWxwZXJfY2xlYW51cF9wbGFuZXMoZGV2LCBzdGF0ZSk7CisKKwkJdHJhY2VfbXNtX2F0b21pY19jb21taXRfdGFpbF9maW5pc2goYXN5bmMsIGNydGNfbWFzayk7CisKKwkJcmV0dXJuOwogCX0KIAotCWlmICghc3RhdGUtPmxlZ2FjeV9jdXJzb3JfdXBkYXRlKQotCQltc21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25lKGRldiwgc3RhdGUpOworCS8qCisJICogSWYgdGhlcmUgaXMgYW55IGFzeW5jIGZsdXNoIHBlbmRpbmcgb24gdXBkYXRlZCBjcnRjcywgZm9sZAorCSAqIHRoZW0gaW50byB0aGUgY3VycmVudCBmbHVzaC4KKwkgKi8KKwlrbXMtPnBlbmRpbmdfY3J0Y19tYXNrICY9IH5jcnRjX21hc2s7CiAKLQlrbXMtPmZ1bmNzLT5jb21wbGV0ZV9jb21taXQoa21zLCBzdGF0ZSk7CisJLyoKKwkgKiBGbHVzaCBoYXJkd2FyZSB1cGRhdGVzOgorCSAqLworCXRyYWNlX21zbV9hdG9taWNfZmx1c2hfY29tbWl0KGNydGNfbWFzayk7CisJa21zLT5mdW5jcy0+Zmx1c2hfY29tbWl0KGttcywgY3J0Y19tYXNrKTsKKwltdXRleF91bmxvY2soJmttcy0+Y29tbWl0X2xvY2spOworCisJLyoKKwkgKiBXYWl0IGZvciBmbHVzaCB0byBjb21wbGV0ZToKKwkgKi8KKwl0cmFjZV9tc21fYXRvbWljX3dhaXRfZmx1c2hfc3RhcnQoY3J0Y19tYXNrKTsKKwlrbXMtPmZ1bmNzLT53YWl0X2ZsdXNoKGttcywgY3J0Y19tYXNrKTsKKwl0cmFjZV9tc21fYXRvbWljX3dhaXRfZmx1c2hfZmluaXNoKGNydGNfbWFzayk7CisKKwltdXRleF9sb2NrKCZrbXMtPmNvbW1pdF9sb2NrKTsKKwlrbXMtPmZ1bmNzLT5jb21wbGV0ZV9jb21taXQoa21zLCBjcnRjX21hc2spOworCW11dGV4X3VubG9jaygma21zLT5jb21taXRfbG9jayk7CisJa21zLT5mdW5jcy0+ZGlzYWJsZV9jb21taXQoa21zKTsKIAogCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKHN0YXRlKTsKLQogCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOworCisJdHJhY2VfbXNtX2F0b21pY19jb21taXRfdGFpbF9maW5pc2goYXN5bmMsIGNydGNfbWFzayk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWNfdHJhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pY190cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0Y2EwZWQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWNfdHJhY2UuaApAQCAtMCwwICsxLDExMCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKyNpZiAhZGVmaW5lZChfTVNNX0dQVV9UUkFDRV9IXykgfHwgZGVmaW5lZChUUkFDRV9IRUFERVJfTVVMVElfUkVBRCkKKyNkZWZpbmUgX01TTV9HUFVfVFJBQ0VfSF8KKworI2luY2x1ZGUgPGxpbnV4L3RyYWNlcG9pbnQuaD4KKworI3VuZGVmIFRSQUNFX1NZU1RFTQorI2RlZmluZSBUUkFDRV9TWVNURU0gZHJtX21zbV9hdG9taWMKKyNkZWZpbmUgVFJBQ0VfSU5DTFVERV9GSUxFIG1zbV9hdG9taWNfdHJhY2UKKworVFJBQ0VfRVZFTlQobXNtX2F0b21pY19jb21taXRfdGFpbF9zdGFydCwKKwkgICAgVFBfUFJPVE8oYm9vbCBhc3luYywgdW5zaWduZWQgY3J0Y19tYXNrKSwKKwkgICAgVFBfQVJHUyhhc3luYywgY3J0Y19tYXNrKSwKKwkgICAgVFBfU1RSVUNUX19lbnRyeSgKKwkJICAgIF9fZmllbGQoYm9vbCwgYXN5bmMpCisJCSAgICBfX2ZpZWxkKHUzMiwgY3J0Y19tYXNrKQorCQkgICAgKSwKKwkgICAgVFBfZmFzdF9hc3NpZ24oCisJCSAgICBfX2VudHJ5LT5hc3luYyA9IGFzeW5jOworCQkgICAgX19lbnRyeS0+Y3J0Y19tYXNrID0gY3J0Y19tYXNrOworCQkgICAgKSwKKwkgICAgVFBfcHJpbnRrKCJhc3luYz0lZCBjcnRjX21hc2s9JXgiLAorCQkgICAgX19lbnRyeS0+YXN5bmMsIF9fZW50cnktPmNydGNfbWFzaykKKyk7CisKK1RSQUNFX0VWRU5UKG1zbV9hdG9taWNfY29tbWl0X3RhaWxfZmluaXNoLAorCSAgICBUUF9QUk9UTyhib29sIGFzeW5jLCB1bnNpZ25lZCBjcnRjX21hc2spLAorCSAgICBUUF9BUkdTKGFzeW5jLCBjcnRjX21hc2spLAorCSAgICBUUF9TVFJVQ1RfX2VudHJ5KAorCQkgICAgX19maWVsZChib29sLCBhc3luYykKKwkJICAgIF9fZmllbGQodTMyLCBjcnRjX21hc2spCisJCSAgICApLAorCSAgICBUUF9mYXN0X2Fzc2lnbigKKwkJICAgIF9fZW50cnktPmFzeW5jID0gYXN5bmM7CisJCSAgICBfX2VudHJ5LT5jcnRjX21hc2sgPSBjcnRjX21hc2s7CisJCSAgICApLAorCSAgICBUUF9wcmludGsoImFzeW5jPSVkIGNydGNfbWFzaz0leCIsCisJCSAgICBfX2VudHJ5LT5hc3luYywgX19lbnRyeS0+Y3J0Y19tYXNrKQorKTsKKworVFJBQ0VfRVZFTlQobXNtX2F0b21pY19hc3luY19jb21taXRfc3RhcnQsCisJICAgIFRQX1BST1RPKHVuc2lnbmVkIGNydGNfbWFzayksCisJICAgIFRQX0FSR1MoY3J0Y19tYXNrKSwKKwkgICAgVFBfU1RSVUNUX19lbnRyeSgKKwkJICAgIF9fZmllbGQodTMyLCBjcnRjX21hc2spCisJCSAgICApLAorCSAgICBUUF9mYXN0X2Fzc2lnbigKKwkJICAgIF9fZW50cnktPmNydGNfbWFzayA9IGNydGNfbWFzazsKKwkJICAgICksCisJICAgIFRQX3ByaW50aygiY3J0Y19tYXNrPSV4IiwKKwkJICAgIF9fZW50cnktPmNydGNfbWFzaykKKyk7CisKK1RSQUNFX0VWRU5UKG1zbV9hdG9taWNfYXN5bmNfY29tbWl0X2ZpbmlzaCwKKwkgICAgVFBfUFJPVE8odW5zaWduZWQgY3J0Y19tYXNrKSwKKwkgICAgVFBfQVJHUyhjcnRjX21hc2spLAorCSAgICBUUF9TVFJVQ1RfX2VudHJ5KAorCQkgICAgX19maWVsZCh1MzIsIGNydGNfbWFzaykKKwkJICAgICksCisJICAgIFRQX2Zhc3RfYXNzaWduKAorCQkgICAgX19lbnRyeS0+Y3J0Y19tYXNrID0gY3J0Y19tYXNrOworCQkgICAgKSwKKwkgICAgVFBfcHJpbnRrKCJjcnRjX21hc2s9JXgiLAorCQkgICAgX19lbnRyeS0+Y3J0Y19tYXNrKQorKTsKKworVFJBQ0VfRVZFTlQobXNtX2F0b21pY193YWl0X2ZsdXNoX3N0YXJ0LAorCSAgICBUUF9QUk9UTyh1bnNpZ25lZCBjcnRjX21hc2spLAorCSAgICBUUF9BUkdTKGNydGNfbWFzayksCisJICAgIFRQX1NUUlVDVF9fZW50cnkoCisJCSAgICBfX2ZpZWxkKHUzMiwgY3J0Y19tYXNrKQorCQkgICAgKSwKKwkgICAgVFBfZmFzdF9hc3NpZ24oCisJCSAgICBfX2VudHJ5LT5jcnRjX21hc2sgPSBjcnRjX21hc2s7CisJCSAgICApLAorCSAgICBUUF9wcmludGsoImNydGNfbWFzaz0leCIsCisJCSAgICBfX2VudHJ5LT5jcnRjX21hc2spCispOworCitUUkFDRV9FVkVOVChtc21fYXRvbWljX3dhaXRfZmx1c2hfZmluaXNoLAorCSAgICBUUF9QUk9UTyh1bnNpZ25lZCBjcnRjX21hc2spLAorCSAgICBUUF9BUkdTKGNydGNfbWFzayksCisJICAgIFRQX1NUUlVDVF9fZW50cnkoCisJCSAgICBfX2ZpZWxkKHUzMiwgY3J0Y19tYXNrKQorCQkgICAgKSwKKwkgICAgVFBfZmFzdF9hc3NpZ24oCisJCSAgICBfX2VudHJ5LT5jcnRjX21hc2sgPSBjcnRjX21hc2s7CisJCSAgICApLAorCSAgICBUUF9wcmludGsoImNydGNfbWFzaz0leCIsCisJCSAgICBfX2VudHJ5LT5jcnRjX21hc2spCispOworCitUUkFDRV9FVkVOVChtc21fYXRvbWljX2ZsdXNoX2NvbW1pdCwKKwkgICAgVFBfUFJPVE8odW5zaWduZWQgY3J0Y19tYXNrKSwKKwkgICAgVFBfQVJHUyhjcnRjX21hc2spLAorCSAgICBUUF9TVFJVQ1RfX2VudHJ5KAorCQkgICAgX19maWVsZCh1MzIsIGNydGNfbWFzaykKKwkJICAgICksCisJICAgIFRQX2Zhc3RfYXNzaWduKAorCQkgICAgX19lbnRyeS0+Y3J0Y19tYXNrID0gY3J0Y19tYXNrOworCQkgICAgKSwKKwkgICAgVFBfcHJpbnRrKCJjcnRjX21hc2s9JXgiLAorCQkgICAgX19lbnRyeS0+Y3J0Y19tYXNrKQorKTsKKworI2VuZGlmCisKKyN1bmRlZiBUUkFDRV9JTkNMVURFX1BBVEgKKyNkZWZpbmUgVFJBQ0VfSU5DTFVERV9QQVRIIC4uLy4uL2RyaXZlcnMvZ3B1L2RybS9tc20KKyNpbmNsdWRlIDx0cmFjZS9kZWZpbmVfdHJhY2UuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pY190cmFjZXBvaW50cy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljX3RyYWNlcG9pbnRzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDExZGM4OAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pY190cmFjZXBvaW50cy5jCkBAIC0wLDAgKzEsMyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BPSU5UUworI2luY2x1ZGUgIm1zbV9hdG9taWNfdHJhY2UuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2RlYnVnZnMuYwppbmRleCBhMGE4ZGY1Li42YmU4Nzk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZGVidWdmcy5jCkBAIC01LDcgKzUsMTIgQEAKICAqLwogCiAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCisKICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKwogI2luY2x1ZGUgIm1zbV9kcnYuaCIKICNpbmNsdWRlICJtc21fZ3B1LmgiCiAjaW5jbHVkZSAibXNtX2ttcy5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwppbmRleCBjMzU2ZjVjLi5jODRmMGE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwpAQCAtNSw5ICs1LDE4IEBACiAgKiBBdXRob3I6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KICAqLwogCisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogI2luY2x1ZGUgPHVhcGkvbGludXgvc2NoZWQvdHlwZXMuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgorI2luY2x1ZGUgPGRybS9kcm1faXJxLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAibXNtX2Rydi5oIgogI2luY2x1ZGUgIm1zbV9kZWJ1Z2ZzLmgiCkBAIC0xNyw3ICsyNiw2IEBACiAjaW5jbHVkZSAibXNtX2ttcy5oIgogI2luY2x1ZGUgImFkcmVuby9hZHJlbm9fZ3B1LmgiCiAKLQogLyoKICAqIE1TTSBkcml2ZXIgdmVyc2lvbjoKICAqIC0gMS4wLjAgLSBpbml0aWFsIGludGVyZmFjZQpAQCAtNzUsNDYgKzgzLDYgQEAgbW9kdWxlX3BhcmFtKG1vZGVzZXQsIGJvb2wsIDA2MDApOwogICogVXRpbC9oZWxwZXJzOgogICovCiAKLWludCBtc21fY2xrX2J1bGtfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGNsa19idWxrX2RhdGEgKipidWxrKQotewotCXN0cnVjdCBwcm9wZXJ0eSAqcHJvcDsKLQljb25zdCBjaGFyICpuYW1lOwotCXN0cnVjdCBjbGtfYnVsa19kYXRhICpsb2NhbDsKLQlpbnQgaSA9IDAsIHJldCwgY291bnQ7Ci0KLQljb3VudCA9IG9mX3Byb3BlcnR5X2NvdW50X3N0cmluZ3MoZGV2LT5vZl9ub2RlLCAiY2xvY2stbmFtZXMiKTsKLQlpZiAoY291bnQgPCAxKQotCQlyZXR1cm4gMDsKLQotCWxvY2FsID0gZGV2bV9rY2FsbG9jKGRldiwgc2l6ZW9mKHN0cnVjdCBjbGtfYnVsa19kYXRhICopLAotCQljb3VudCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFsb2NhbCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlvZl9wcm9wZXJ0eV9mb3JfZWFjaF9zdHJpbmcoZGV2LT5vZl9ub2RlLCAiY2xvY2stbmFtZXMiLCBwcm9wLCBuYW1lKSB7Ci0JCWxvY2FsW2ldLmlkID0gZGV2bV9rc3RyZHVwKGRldiwgbmFtZSwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghbG9jYWxbaV0uaWQpIHsKLQkJCWRldm1fa2ZyZWUoZGV2LCBsb2NhbCk7Ci0JCQlyZXR1cm4gLUVOT01FTTsKLQkJfQotCi0JCWkrKzsKLQl9Ci0KLQlyZXQgPSBkZXZtX2Nsa19idWxrX2dldChkZXYsIGNvdW50LCBsb2NhbCk7Ci0KLQlpZiAocmV0KSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotCQkJZGV2bV9rZnJlZShkZXYsICh2b2lkICopIGxvY2FsW2ldLmlkKTsKLQkJZGV2bV9rZnJlZShkZXYsIGxvY2FsKTsKLQotCQlyZXR1cm4gcmV0OwotCX0KLQotCSpidWxrID0gbG9jYWw7Ci0JcmV0dXJuIGNvdW50OwotfQotCiBzdHJ1Y3QgY2xrICptc21fY2xrX2J1bGtfZ2V0X2Nsb2NrKHN0cnVjdCBjbGtfYnVsa19kYXRhICpidWxrLCBpbnQgY291bnQsCiAJCWNvbnN0IGNoYXIgKm5hbWUpCiB7CkBAIC01MDUsNiArNDczLDcgQEAgc3RhdGljIGludCBtc21fZHJtX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2RyaXZlciAqZHJ2KQogCWRkZXYtPm1vZGVfY29uZmlnLm5vcm1hbGl6ZV96cG9zID0gdHJ1ZTsKIAogCWlmIChrbXMpIHsKKwkJa21zLT5kZXYgPSBkZGV2OwogCQlyZXQgPSBrbXMtPmZ1bmNzLT5od19pbml0KGttcyk7CiAJCWlmIChyZXQpIHsKIAkJCURSTV9ERVZfRVJST1IoZGV2LCAia21zIGh3IGluaXQgZmFpbGVkOiAlZFxuIiwgcmV0KTsKQEAgLTk4NCwxNyArOTUzLDE3IEBAIHN0YXRpYyBpbnQgbXNtX2lvY3RsX3N1Ym1pdHF1ZXVlX2Nsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgbXNtX2lvY3Rsc1tdID0gewotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRVRfUEFSQU0sICAgIG1zbV9pb2N0bF9nZXRfcGFyYW0sICAgIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fTkVXLCAgICAgIG1zbV9pb2N0bF9nZW1fbmV3LCAgICAgIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fSU5GTywgICAgIG1zbV9pb2N0bF9nZW1faW5mbywgICAgIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fQ1BVX1BSRVAsIG1zbV9pb2N0bF9nZW1fY3B1X3ByZXAsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fQ1BVX0ZJTkksIG1zbV9pb2N0bF9nZW1fY3B1X2ZpbmksIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fU1VCTUlULCAgIG1zbV9pb2N0bF9nZW1fc3VibWl0LCAgIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9XQUlUX0ZFTkNFLCAgIG1zbV9pb2N0bF93YWl0X2ZlbmNlLCAgIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fTUFEVklTRSwgIG1zbV9pb2N0bF9nZW1fbWFkdmlzZSwgIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9TVUJNSVRRVUVVRV9ORVcsICAgbXNtX2lvY3RsX3N1Ym1pdHF1ZXVlX25ldywgICBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihNU01fU1VCTUlUUVVFVUVfQ0xPU0UsIG1zbV9pb2N0bF9zdWJtaXRxdWV1ZV9jbG9zZSwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTVNNX1NVQk1JVFFVRVVFX1FVRVJZLCBtc21faW9jdGxfc3VibWl0cXVldWVfcXVlcnksIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRVRfUEFSQU0sICAgIG1zbV9pb2N0bF9nZXRfcGFyYW0sICAgIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fTkVXLCAgICAgIG1zbV9pb2N0bF9nZW1fbmV3LCAgICAgIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fSU5GTywgICAgIG1zbV9pb2N0bF9nZW1faW5mbywgICAgIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fQ1BVX1BSRVAsIG1zbV9pb2N0bF9nZW1fY3B1X3ByZXAsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fQ1BVX0ZJTkksIG1zbV9pb2N0bF9nZW1fY3B1X2ZpbmksIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fU1VCTUlULCAgIG1zbV9pb2N0bF9nZW1fc3VibWl0LCAgIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9XQUlUX0ZFTkNFLCAgIG1zbV9pb2N0bF93YWl0X2ZlbmNlLCAgIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9HRU1fTUFEVklTRSwgIG1zbV9pb2N0bF9nZW1fbWFkdmlzZSwgIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9TVUJNSVRRVUVVRV9ORVcsICAgbXNtX2lvY3RsX3N1Ym1pdHF1ZXVlX25ldywgICBEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihNU01fU1VCTUlUUVVFVUVfQ0xPU0UsIG1zbV9pb2N0bF9zdWJtaXRxdWV1ZV9jbG9zZSwgRFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRl9EUlYoTVNNX1NVQk1JVFFVRVVFX1FVRVJZLCBtc21faW9jdGxfc3VibWl0cXVldWVfcXVlcnksIERSTV9SRU5ERVJfQUxMT1cpLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCB2bV9vcHMgPSB7CkBAIC0xMDE3LDcgKzk4Niw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHMgPSB7CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBtc21fZHJpdmVyID0gewogCS5kcml2ZXJfZmVhdHVyZXMgICAgPSBEUklWRVJfR0VNIHwKLQkJCQlEUklWRVJfUFJJTUUgfAogCQkJCURSSVZFUl9SRU5ERVIgfAogCQkJCURSSVZFUl9BVE9NSUMgfAogCQkJCURSSVZFUl9NT0RFU0VULApAQCAtMTAzNiw4ICsxMDA0LDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIG1zbV9kcml2ZXIgPSB7CiAJLmR1bWJfbWFwX29mZnNldCAgICA9IG1zbV9nZW1fZHVtYl9tYXBfb2Zmc2V0LAogCS5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFuZGxlID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9leHBvcnQgICA9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAotCS5nZW1fcHJpbWVfaW1wb3J0ICAgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKIAkuZ2VtX3ByaW1lX3BpbiAgICAgID0gbXNtX2dlbV9wcmltZV9waW4sCiAJLmdlbV9wcmltZV91bnBpbiAgICA9IG1zbV9nZW1fcHJpbWVfdW5waW4sCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUgPSBtc21fZ2VtX3ByaW1lX2dldF9zZ190YWJsZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKaW5kZXggZWU3YjUxMi4uNzE1NDdlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlIDxsaW51eC9zaXplcy5oPgogI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgpAQCAtMjIyLDggKzIyMSwxMiBAQCBzdHJ1Y3QgbXNtX2Zvcm1hdCB7CiAJdWludDMyX3QgcGl4ZWxfZm9ybWF0OwogfTsKIAorc3RydWN0IG1zbV9wZW5kaW5nX3RpbWVyOworCiBpbnQgbXNtX2F0b21pY19wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfc3RhdGUpOwordm9pZCBtc21fYXRvbWljX2luaXRfcGVuZGluZ190aW1lcihzdHJ1Y3QgbXNtX3BlbmRpbmdfdGltZXIgKnRpbWVyLAorCQlzdHJ1Y3QgbXNtX2ttcyAqa21zLCBpbnQgY3J0Y19pZHgpOwogdm9pZCBtc21fYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqbXNtX2F0b21pY19zdGF0ZV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgbXNtX2F0b21pY19zdGF0ZV9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwpAQCAtMzk5LDcgKzQwMiw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtc21fcGVyZl9kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdikge30KICNlbmRpZgogCiBzdHJ1Y3QgY2xrICptc21fY2xrX2dldChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBjb25zdCBjaGFyICpuYW1lKTsKLWludCBtc21fY2xrX2J1bGtfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGNsa19idWxrX2RhdGEgKipidWxrKTsKIAogc3RydWN0IGNsayAqbXNtX2Nsa19idWxrX2dldF9jbG9jayhzdHJ1Y3QgY2xrX2J1bGtfZGF0YSAqYnVsaywgaW50IGNvdW50LAogCWNvbnN0IGNoYXIgKm5hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMKaW5kZXggNWJjZDVlNS4uMzc2NzRlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYi5jCkBAIC02LDYgKzYsOCBAQAogCiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmJkZXYuYwppbmRleCAyNDI5ZDVlLi5jZmYxOThiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiZGV2LmMKQEAgLTYsNiArNiw3IEBACiAKICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAKICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX2ttcy5oIgpAQCAtMTY5LDYgKzE3MCw5IEBAIHN0cnVjdCBkcm1fZmJfaGVscGVyICptc21fZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChyZXQpCiAJCWdvdG8gZmluaTsKIAorCS8qIHRoZSBmdyBmYiBjb3VsZCBiZSBhbnl3aGVyZSBpbiBtZW1vcnkgKi8KKwlkcm1fZmJfaGVscGVyX3JlbW92ZV9jb25mbGljdGluZ19mcmFtZWJ1ZmZlcnMoTlVMTCwgIm1zbSIsIGZhbHNlKTsKKwogCXJldCA9IGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoaGVscGVyLCAzMik7CiAJaWYgKHJldCkKIAkJZ290byBmaW5pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYwppbmRleCA4Y2Y2MzYyLi41YTZhNzlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYwpAQCAtOSw2ICs5LDggQEAKICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+CiAjaW5jbHVkZSA8bGludXgvcGZuX3QuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4KKwogI2luY2x1ZGUgIm1zbV9kcnYuaCIKICNpbmNsdWRlICJtc21fZmVuY2UuaCIKICNpbmNsdWRlICJtc21fZ2VtLmgiCkBAIC01MCw3ICs1Miw3IEBAIHN0YXRpYyB2b2lkIHN5bmNfZm9yX2RldmljZShzdHJ1Y3QgbXNtX2dlbV9vYmplY3QgKm1zbV9vYmopCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gbXNtX29iai0+YmFzZS5kZXYtPmRldjsKIAotCWlmIChnZXRfZG1hX29wcyhkZXYpKSB7CisJaWYgKGdldF9kbWFfb3BzKGRldikgJiYgSVNfRU5BQkxFRChDT05GSUdfQVJNNjQpKSB7CiAJCWRtYV9zeW5jX3NnX2Zvcl9kZXZpY2UoZGV2LCBtc21fb2JqLT5zZ3QtPnNnbCwKIAkJCW1zbV9vYmotPnNndC0+bmVudHMsIERNQV9CSURJUkVDVElPTkFMKTsKIAl9IGVsc2UgewpAQCAtNjMsNyArNjUsNyBAQCBzdGF0aWMgdm9pZCBzeW5jX2Zvcl9jcHUoc3RydWN0IG1zbV9nZW1fb2JqZWN0ICptc21fb2JqKQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1zbV9vYmotPmJhc2UuZGV2LT5kZXY7CiAKLQlpZiAoZ2V0X2RtYV9vcHMoZGV2KSkgeworCWlmIChnZXRfZG1hX29wcyhkZXYpICYmIElTX0VOQUJMRUQoQ09ORklHX0FSTTY0KSkgewogCQlkbWFfc3luY19zZ19mb3JfY3B1KGRldiwgbXNtX29iai0+c2d0LT5zZ2wsCiAJCQltc21fb2JqLT5zZ3QtPm5lbnRzLCBETUFfQklESVJFQ1RJT05BTCk7CiAJfSBlbHNlIHsKQEAgLTcwMCwxMyArNzAyLDEzIEBAIHZvaWQgbXNtX2dlbV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGVudW0gbXNtX2dlbV9sb2NrIHN1YmNsYXNzKQogaW50IG1zbV9nZW1fc3luY19vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiAJCXN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCwgYm9vbCBleGNsdXNpdmUpCiB7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOworCXN0cnVjdCBkbWFfcmVzdl9saXN0ICpmb2JqOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCWludCBpLCByZXQ7CiAKLQlmb2JqID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KG9iai0+cmVzdik7CisJZm9iaiA9IGRtYV9yZXN2X2dldF9saXN0KG9iai0+cmVzdik7CiAJaWYgKCFmb2JqIHx8IChmb2JqLT5zaGFyZWRfY291bnQgPT0gMCkpIHsKLQkJZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2wob2JqLT5yZXN2KTsKKwkJZmVuY2UgPSBkbWFfcmVzdl9nZXRfZXhjbChvYmotPnJlc3YpOwogCQkvKiBkb24ndCBuZWVkIHRvIHdhaXQgb24gb3VyIG93biBmZW5jZXMsIHNpbmNlIHJpbmcgaXMgZmlmbyAqLwogCQlpZiAoZmVuY2UgJiYgKGZlbmNlLT5jb250ZXh0ICE9IGZjdHgtPmNvbnRleHQpKSB7CiAJCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdChmZW5jZSwgdHJ1ZSk7CkBAIC03MjAsNyArNzIyLDcgQEAgaW50IG1zbV9nZW1fc3luY19vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiAKIAlmb3IgKGkgPSAwOyBpIDwgZm9iai0+c2hhcmVkX2NvdW50OyBpKyspIHsKIAkJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKLQkJCQkJCXJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iai0+cmVzdikpOworCQkJCQkJZG1hX3Jlc3ZfaGVsZChvYmotPnJlc3YpKTsKIAkJaWYgKGZlbmNlLT5jb250ZXh0ICE9IGZjdHgtPmNvbnRleHQpIHsKIAkJCXJldCA9IGRtYV9mZW5jZV93YWl0KGZlbmNlLCB0cnVlKTsKIAkJCWlmIChyZXQpCkBAIC03MzgsOSArNzQwLDkgQEAgdm9pZCBtc21fZ2VtX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCVdBUk5fT04obXNtX29iai0+bWFkdiAhPSBNU01fTUFEVl9XSUxMTkVFRCk7CiAJbXNtX29iai0+Z3B1ID0gZ3B1OwogCWlmIChleGNsdXNpdmUpCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShvYmotPnJlc3YsIGZlbmNlKTsKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2Uob2JqLT5yZXN2LCBmZW5jZSk7CiAJZWxzZQotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShvYmotPnJlc3YsIGZlbmNlKTsKKwkJZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZShvYmotPnJlc3YsIGZlbmNlKTsKIAlsaXN0X2RlbF9pbml0KCZtc21fb2JqLT5tbV9saXN0KTsKIAlsaXN0X2FkZF90YWlsKCZtc21fb2JqLT5tbV9saXN0LCAmZ3B1LT5hY3RpdmVfbGlzdCk7CiB9CkBAIC03NjUsNyArNzY3LDcgQEAgaW50IG1zbV9nZW1fY3B1X3ByZXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHVpbnQzMl90IG9wLCBrdGltZV90ICp0aW1lb3V0KQogCQlvcCAmIE1TTV9QUkVQX05PU1lOQyA/IDAgOiB0aW1lb3V0X3RvX2ppZmZpZXModGltZW91dCk7CiAJbG9uZyByZXQ7CiAKLQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShvYmotPnJlc3YsIHdyaXRlLAorCXJldCA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3Uob2JqLT5yZXN2LCB3cml0ZSwKIAkJCQkJCSAgdHJ1ZSwgIHJlbWFpbik7CiAJaWYgKHJldCA9PSAwKQogCQlyZXR1cm4gcmVtYWluID09IDAgPyAtRUJVU1kgOiAtRVRJTUVET1VUOwpAQCAtNzk3LDggKzc5OSw4IEBAIHN0YXRpYyB2b2lkIGRlc2NyaWJlX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBjb25zdCBjaGFyICp0eXBlLAogdm9pZCBtc21fZ2VtX2Rlc2NyaWJlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiB7CiAJc3RydWN0IG1zbV9nZW1fb2JqZWN0ICptc21fb2JqID0gdG9fbXNtX2JvKG9iaik7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcm9iaiA9IG9iai0+cmVzdjsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmo7CisJc3RydWN0IGRtYV9yZXN2ICpyb2JqID0gb2JqLT5yZXN2OworCXN0cnVjdCBkbWFfcmVzdl9saXN0ICpmb2JqOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXN0cnVjdCBtc21fZ2VtX3ZtYSAqdm1hOwogCXVpbnQ2NF90IG9mZiA9IGRybV92bWFfbm9kZV9zdGFydCgmb2JqLT52bWFfbm9kZSk7CkBAIC05NzUsNyArOTc3LDYgQEAgaW50IG1zbV9nZW1fbmV3X2hhbmRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAKIHN0YXRpYyBpbnQgbXNtX2dlbV9uZXdfaW1wbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQl1aW50MzJfdCBzaXplLCB1aW50MzJfdCBmbGFncywKLQkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKIAkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqb2JqLAogCQlib29sIHN0cnVjdF9tdXRleF9sb2NrZWQpCiB7CkBAIC0xMDAyLDkgKzEwMDMsNiBAQCBzdGF0aWMgaW50IG1zbV9nZW1fbmV3X2ltcGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAltc21fb2JqLT5mbGFncyA9IGZsYWdzOwogCW1zbV9vYmotPm1hZHYgPSBNU01fTUFEVl9XSUxMTkVFRDsKIAotCWlmIChyZXN2KQotCQltc21fb2JqLT5iYXNlLnJlc3YgPSByZXN2OwotCiAJSU5JVF9MSVNUX0hFQUQoJm1zbV9vYmotPnN1Ym1pdF9lbnRyeSk7CiAJSU5JVF9MSVNUX0hFQUQoJm1zbV9vYmotPnZtYXMpOwogCkBAIC0xMDQ2LDcgKzEwNDQsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpfbXNtX2dlbV9uZXcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoc2l6ZSA9PSAwKQogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAotCXJldCA9IG1zbV9nZW1fbmV3X2ltcGwoZGV2LCBzaXplLCBmbGFncywgTlVMTCwgJm9iaiwgc3RydWN0X211dGV4X2xvY2tlZCk7CisJcmV0ID0gbXNtX2dlbV9uZXdfaW1wbChkZXYsIHNpemUsIGZsYWdzLCAmb2JqLCBzdHJ1Y3RfbXV0ZXhfbG9ja2VkKTsKIAlpZiAocmV0KQogCQlnb3RvIGZhaWw7CiAKQEAgLTExMjMsNyArMTEyMSw3IEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqbXNtX2dlbV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCXNpemUgPSBQQUdFX0FMSUdOKGRtYWJ1Zi0+c2l6ZSk7CiAKLQlyZXQgPSBtc21fZ2VtX25ld19pbXBsKGRldiwgc2l6ZSwgTVNNX0JPX1dDLCBkbWFidWYtPnJlc3YsICZvYmosIGZhbHNlKTsKKwlyZXQgPSBtc21fZ2VtX25ld19pbXBsKGRldiwgc2l6ZSwgTVNNX0JPX1dDLCAmb2JqLCBmYWxzZSk7CiAJaWYgKHJldCkKIAkJZ290byBmYWlsOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oCmluZGV4IDhjZmNmOGYuLjllMDk1M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oCkBAIC04LDcgKzgsNyBAQAogI2RlZmluZSBfX01TTV9HRU1fSF9fCiAKICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgogI2luY2x1ZGUgIm1zbV9kcnYuaCIKIAogLyogQWRkaXRpb25hbCBpbnRlcm5hbC11c2Ugb25seSBCTyBmbGFnczogKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMKaW5kZXggNWQ2NGUwNi4uZDdjODk0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMKQEAgLTQsMTEgKzQsMTMgQEAKICAqIEF1dGhvcjogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+CisKICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX2dlbS5oIgogCi0jaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgotCiBzdHJ1Y3Qgc2dfdGFibGUgKm1zbV9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBtc21fZ2VtX29iamVjdCAqbXNtX29iaiA9IHRvX21zbV9ibyhvYmopOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jCmluZGV4IDM0OGY4YzIuLmJlNTMyN2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV9zdWJtaXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMKQEAgLTQsNyArNCwxMSBAQAogICogQXV0aG9yOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9zeW5jX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KIAogI2luY2x1ZGUgIm1zbV9kcnYuaCIKICNpbmNsdWRlICJtc21fZ3B1LmgiCkBAIC0yNiw4ICszMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQgKnN1Ym1pdF9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJdWludDMyX3QgbnJfY21kcykKIHsKIAlzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQgKnN1Ym1pdDsKLQl1aW50NjRfdCBzeiA9IHNpemVvZigqc3VibWl0KSArICgodTY0KW5yX2JvcyAqIHNpemVvZihzdWJtaXQtPmJvc1swXSkpICsKLQkJKCh1NjQpbnJfY21kcyAqIHNpemVvZihzdWJtaXQtPmNtZFswXSkpOworCXVpbnQ2NF90IHN6ID0gc3RydWN0X3NpemUoc3VibWl0LCBib3MsIG5yX2JvcykgKworCQkJCSAgKCh1NjQpbnJfY21kcyAqIHNpemVvZihzdWJtaXQtPmNtZFswXSkpOwogCiAJaWYgKHN6ID4gU0laRV9NQVgpCiAJCXJldHVybiBOVUxMOwpAQCAtMjI1LDcgKzIyOSw3IEBAIHN0YXRpYyBpbnQgc3VibWl0X2ZlbmNlX3N5bmMoc3RydWN0IG1zbV9nZW1fc3VibWl0ICpzdWJtaXQsIGJvb2wgbm9faW1wbGljaXQpCiAJCQkgKiBzdHJhbmdlIHBsYWNlIHRvIGNhbGwgaXQuICBPVE9IIHRoaXMgaXMgYQogCQkJICogY29udmVuaWVudCBjYW4tZmFpbCBwb2ludCB0byBob29rIGl0IGluLgogCQkJICovCi0JCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQobXNtX29iai0+YmFzZS5yZXN2LAorCQkJcmV0ID0gZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQobXNtX29iai0+YmFzZS5yZXN2LAogCQkJCQkJCQkxKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMKaW5kZXggNGVkYjg3NC4uYTA1MjM2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMKQEAgLTk1LDcgKzk1LDggQEAgc3RhdGljIHZvaWQgbXNtX2RldmZyZXFfaW5pdChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogCSAqLwogCiAJZ3B1LT5kZXZmcmVxLmRldmZyZXEgPSBkZXZtX2RldmZyZXFfYWRkX2RldmljZSgmZ3B1LT5wZGV2LT5kZXYsCi0JCQkmbXNtX2RldmZyZXFfcHJvZmlsZSwgInNpbXBsZV9vbmRlbWFuZCIsIE5VTEwpOworCQkJJm1zbV9kZXZmcmVxX3Byb2ZpbGUsIERFVkZSRVFfR09WX1NJTVBMRV9PTkRFTUFORCwKKwkJCU5VTEwpOwogCiAJaWYgKElTX0VSUihncHUtPmRldmZyZXEuZGV2ZnJlcSkpIHsKIAkJRFJNX0RFVl9FUlJPUigmZ3B1LT5wZGV2LT5kZXYsICJDb3VsZG4ndCBpbml0aWFsaXplIEdQVSBkZXZmcmVxXG4iKTsKQEAgLTc4Myw3ICs3ODQsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKIAogc3RhdGljIGludCBnZXRfY2xvY2tzKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHN0cnVjdCBtc21fZ3B1ICpncHUpCiB7Ci0JaW50IHJldCA9IG1zbV9jbGtfYnVsa19nZXQoJnBkZXYtPmRldiwgJmdwdS0+Z3JwX2Nsa3MpOworCWludCByZXQgPSBkZXZtX2Nsa19idWxrX2dldF9hbGwoJnBkZXYtPmRldiwgJmdwdS0+Z3JwX2Nsa3MpOwogCiAJaWYgKHJldCA8IDEpIHsKIAkJZ3B1LT5ucl9jbG9ja3MgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1X3RyYWNlLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHVfdHJhY2UuaAppbmRleCAxMTU1MTE4Li4xMjJiODQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHVfdHJhY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHVfdHJhY2UuaApAQCAtNSw3ICs1LDcgQEAKICNpbmNsdWRlIDxsaW51eC90cmFjZXBvaW50Lmg+CiAKICN1bmRlZiBUUkFDRV9TWVNURU0KLSNkZWZpbmUgVFJBQ0VfU1lTVEVNIGRybV9tc20KKyNkZWZpbmUgVFJBQ0VfU1lTVEVNIGRybV9tc21fZ3B1CiAjZGVmaW5lIFRSQUNFX0lOQ0xVREVfRklMRSBtc21fZ3B1X3RyYWNlCiAKIFRSQUNFX0VWRU5UKG1zbV9ncHVfc3VibWl0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1bW11LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHVtbXUuYwppbmRleCAyNzMxMmI1Li4zNGY2NDNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHVtbXUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHVtbXUuYwpAQCAtMSw2ICsxLDggQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKiBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuICovCiAKKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorCiAjaW5jbHVkZSAibXNtX2Rydi5oIgogI2luY2x1ZGUgIm1zbV9tbXUuaCIKICNpbmNsdWRlICJhZHJlbm8vYWRyZW5vX2dwdS5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaAppbmRleCBjNzU4OGE0Li4xY2JlZjZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaApAQCAtMzAsMTMgKzMwLDc2IEBAIHN0cnVjdCBtc21fa21zX2Z1bmNzIHsKIAlpcnFyZXR1cm5fdCAoKmlycSkoc3RydWN0IG1zbV9rbXMgKmttcyk7CiAJaW50ICgqZW5hYmxlX3ZibGFuaykoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIAl2b2lkICgqZGlzYWJsZV92YmxhbmspKHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Ci0JLyogbW9kZXNldCwgYnJhY2tldGluZyBhdG9taWNfY29tbWl0KCk6ICovCisKKwkvKgorCSAqIEF0b21pYyBjb21taXQgaGFuZGxpbmc6CisJICoKKwkgKiBOb3RlIHRoYXQgaW4gdGhlIGNhc2Ugb2YgYXN5bmMgY29tbWl0cywgdGhlIGZ1bmNzIHdoaWNoIHRha2UKKwkgKiBhIGNydGNfbWFzayAoaWUuIC0+Zmx1c2hfY29tbWl0KCksIGFuZCAtPmNvbXBsZXRlX2NvbW1pdCgpKQorCSAqIG1pZ2h0IG5vdCBiZSBldmVubHkgYmFsYW5jZWQgd2l0aCAtPnByZXBhcmVfY29tbWl0KCksIGhvd2V2ZXIKKwkgKiBlYWNoIGNydGMgdGhhdCBlZmZlY3RlZCBieSBhIC0+cHJlcGFyZV9jb21taXQoKSAocG90ZW50aWFsbHkKKwkgKiBtdWx0aXBsZSB0aW1lcykgd2lsbCBldmVudHVhbGx5IChhdCBlbmQgb2YgdnN5bmMgcGVyaW9kKSBiZQorCSAqIGZsdXNoZWQgYW5kIGNvbXBsZXRlZC4KKwkgKgorCSAqIFRoaXMgaGFzIHNvbWUgaW1wbGljYXRpb25zIGFib3V0IHRyYWNraW5nIG9mIGNsZWFudXAgc3RhdGUsCisJICogZm9yIGV4YW1wbGUgU01QIGJsb2NrcyB0byByZWxlYXNlIGFmdGVyIGNvbW1pdCBjb21wbGV0ZXMuICBJZS4KKwkgKiBjbGVhbnVwIHN0YXRlIHNob3VsZCBiZSBhbHNvIGR1cGxpY2F0ZWQgaW4gdGhlIHZhcmlvdXMKKwkgKiBkdXBsaWNhdGVfc3RhdGUoKSBtZXRob2RzLCBhcyB0aGUgY3VycmVudCBjbGVhbnVwIHN0YXRlIGF0CisJICogLT5jb21wbGV0ZV9jb21taXQoKSB0aW1lIG1heSBoYXZlIGFjY3VtdWxhdGVkIGNsZWFudXAgd29yaworCSAqIGZyb20gbXVsdGlwbGUgY29tbWl0cy4KKwkgKi8KKworCS8qKgorCSAqIEVuYWJsZS9kaXNhYmxlIHBvd2VyL2Nsa3MgbmVlZGVkIGZvciBodyBhY2Nlc3MgZG9uZSBpbiBvdGhlcgorCSAqIGNvbW1pdCByZWxhdGVkIG1ldGhvZHMuCisJICoKKwkgKiBJZiBtZHA0IGlzIG1pZ3JhdGVkIHRvIHJ1bnBtLCB3ZSBjb3VsZCBwcm9iYWJseSBkcm9wIHRoZXNlCisJICogYW5kIHVzZSBydW5wbSBkaXJlY3RseS4KKwkgKi8KKwl2b2lkICgqZW5hYmxlX2NvbW1pdCkoc3RydWN0IG1zbV9rbXMgKmttcyk7CisJdm9pZCAoKmRpc2FibGVfY29tbWl0KShzdHJ1Y3QgbXNtX2ttcyAqa21zKTsKKworCS8qKgorCSAqIElmIHRoZSBrbXMgYmFja2VuZCBzdXBwb3J0cyBhc3luYyBjb21taXQsIGl0IHNob3VsZCBpbXBsZW1lbnQKKwkgKiB0aGlzIG1ldGhvZCB0byByZXR1cm4gdGhlIHRpbWUgb2YgdGhlIG5leHQgdnN5bmMuICBUaGlzIGlzCisJICogdXNlZCB0byBkZXRlcm1pbmUgYSB0aW1lIHNsaWdodGx5IGJlZm9yZSB2c3luYywgZm9yIHRoZSBhc3luYworCSAqIGNvbW1pdCB0aW1lciB0byBydW4gYW5kIGNvbXBsZXRlIGFuIGFzeW5jIGNvbW1pdC4KKwkgKi8KKwlrdGltZV90ICgqdnN5bmNfdGltZSkoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKKworCS8qKgorCSAqIFByZXBhcmUgZm9yIGF0b21pYyBjb21taXQuICBUaGlzIGlzIGNhbGxlZCBhZnRlciBhbnkgcHJldmlvdXMKKwkgKiAoYXN5bmMgb3Igb3RoZXJ3aXNlKSBjb21taXQgaGFzIGNvbXBsZXRlZC4KKwkgKi8KIAl2b2lkICgqcHJlcGFyZV9jb21taXQpKHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Ci0Jdm9pZCAoKmNvbW1pdCkoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKLQl2b2lkICgqY29tcGxldGVfY29tbWl0KShzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwotCS8qIGZ1bmN0aW9ucyB0byB3YWl0IGZvciBhdG9taWMgY29tbWl0IGNvbXBsZXRlZCBvbiBlYWNoIENSVEMgKi8KLQl2b2lkICgqd2FpdF9mb3JfY3J0Y19jb21taXRfZG9uZSkoc3RydWN0IG1zbV9rbXMgKmttcywKLQkJCQkJc3RydWN0IGRybV9jcnRjICpjcnRjKTsKKworCS8qKgorCSAqIEZsdXNoIGFuIGF0b21pYyBjb21taXQuICBUaGlzIGlzIGNhbGxlZCBhZnRlciB0aGUgaGFyZHdhcmUKKwkgKiB1cGRhdGVzIGhhdmUgYWxyZWFkeSBiZWVuIHB1c2hlZCBkb3duIHRvIGVmZmVjdGVkIHBsYW5lcy8KKwkgKiBjcnRjcy9lbmNvZGVycy9jb25uZWN0b3JzLgorCSAqLworCXZvaWQgKCpmbHVzaF9jb21taXQpKHN0cnVjdCBtc21fa21zICprbXMsIHVuc2lnbmVkIGNydGNfbWFzayk7CisKKwkvKioKKwkgKiBXYWl0IGZvciBhbnkgaW4tcHJvZ3Jlc3MgZmx1c2ggdG8gY29tcGxldGUgb24gdGhlIHNwZWNpZmllZAorCSAqIGNydGNzLiAgVGhpcyBzaG91bGQgbm90IGJsb2NrIGlmIHRoZXJlIGlzIG5vIGluLXByb2dyZXNzCisJICogY29tbWl0IChpZS4gZG9uJ3QganVzdCB3YWl0IGZvciBhIHZibGFuayksIGFzIGl0IHdpbGwgYWxzbworCSAqIGJlIGNhbGxlZCBiZWZvcmUgLT5wcmVwYXJlX2NvbW1pdCgpIHRvIGVuc3VyZSBhbnkgcG90ZW50aWFsCisJICogImFzeW5jIiBjb21taXQgaGFzIGNvbXBsZXRlZC4KKwkgKi8KKwl2b2lkICgqd2FpdF9mbHVzaCkoc3RydWN0IG1zbV9rbXMgKmttcywgdW5zaWduZWQgY3J0Y19tYXNrKTsKKworCS8qKgorCSAqIENsZWFuIHVwIGFmdGVyIGNvbW1pdCBpcyBjb21wbGV0ZWQuICBUaGlzIGlzIGNhbGxlZCBhZnRlcgorCSAqIC0+d2FpdF9mbHVzaCgpLCB0byBnaXZlIHRoZSBiYWNrZW5kIGEgY2hhbmNlIHRvIGRvIGFueQorCSAqIHBvc3QtY29tbWl0IGNsZWFudXAuCisJICovCisJdm9pZCAoKmNvbXBsZXRlX2NvbW1pdCkoc3RydWN0IG1zbV9rbXMgKmttcywgdW5zaWduZWQgY3J0Y19tYXNrKTsKKworCS8qCisJICogRm9ybWF0IGhhbmRsaW5nOgorCSAqLworCiAJLyogZ2V0IG1zbV9mb3JtYXQgdy8gb3B0aW9uYWwgZm9ybWF0IG1vZGlmaWVycyBmcm9tIGRybV9tb2RlX2ZiX2NtZDIgKi8KIAljb25zdCBzdHJ1Y3QgbXNtX2Zvcm1hdCAqKCpnZXRfZm9ybWF0KShzdHJ1Y3QgbXNtX2ttcyAqa21zLAogCQkJCQljb25zdCB1aW50MzJfdCBmb3JtYXQsCkBAIC00Niw2ICsxMDksNyBAQCBzdHJ1Y3QgbXNtX2ttc19mdW5jcyB7CiAJCQljb25zdCBzdHJ1Y3QgbXNtX2Zvcm1hdCAqbXNtX2ZtdCwKIAkJCWNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpjbWQsCiAJCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipib3MpOworCiAJLyogbWlzYzogKi8KIAlsb25nICgqcm91bmRfcGl4Y2xrKShzdHJ1Y3QgbXNtX2ttcyAqa21zLCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwpAQCAtNjQsMjAgKzEyOCw0OCBAQCBzdHJ1Y3QgbXNtX2ttc19mdW5jcyB7CiAjZW5kaWYKIH07CiAKK3N0cnVjdCBtc21fa21zOworCisvKgorICogQSBwZXItY3J0YyB0aW1lciBmb3IgcGVuZGluZyBhc3luYyBhdG9taWMgZmx1c2hlcy4gIFNjaGVkdWxlZCB0byBleHBpcmUKKyAqIHNob3J0bHkgYmVmb3JlIHZibGFuayB0byBmbHVzaCBwZW5kaW5nIGFzeW5jIHVwZGF0ZXMuCisgKi8KK3N0cnVjdCBtc21fcGVuZGluZ190aW1lciB7CisJc3RydWN0IGhydGltZXIgdGltZXI7CisJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CisJc3RydWN0IG1zbV9rbXMgKmttczsKKwl1bnNpZ25lZCBjcnRjX2lkeDsKK307CisKIHN0cnVjdCBtc21fa21zIHsKIAljb25zdCBzdHJ1Y3QgbXNtX2ttc19mdW5jcyAqZnVuY3M7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKIAogCS8qIGlycSBudW1iZXIgdG8gYmUgcGFzc2VkIG9uIHRvIGRybV9pcnFfaW5zdGFsbCAqLwogCWludCBpcnE7CiAKIAkvKiBtYXBwZXItaWQgdXNlZCB0byByZXF1ZXN0IEdFTSBidWZmZXIgbWFwcGVkIGZvciBzY2Fub3V0OiAqLwogCXN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZTsKKworCS8qCisJICogRm9yIGFzeW5jIGNvbW1pdCwgd2hlcmUgLT5mbHVzaF9jb21taXQoKSBhbmQgbGF0ZXIgaGFwcGVucworCSAqIGZyb20gdGhlIGNydGMncyBwZW5kaW5nX3RpbWVyIGNsb3NlIHRvIGVuZCBvZiB0aGUgZnJhbWU6CisJICovCisJc3RydWN0IG11dGV4IGNvbW1pdF9sb2NrOworCXVuc2lnbmVkIHBlbmRpbmdfY3J0Y19tYXNrOworCXN0cnVjdCBtc21fcGVuZGluZ190aW1lciBwZW5kaW5nX3RpbWVyc1tNQVhfQ1JUQ1NdOwogfTsKIAogc3RhdGljIGlubGluZSB2b2lkIG1zbV9rbXNfaW5pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLAogCQljb25zdCBzdHJ1Y3QgbXNtX2ttc19mdW5jcyAqZnVuY3MpCiB7CisJdW5zaWduZWQgaTsKKworCW11dGV4X2luaXQoJmttcy0+Y29tbWl0X2xvY2spOwogCWttcy0+ZnVuY3MgPSBmdW5jczsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGttcy0+cGVuZGluZ190aW1lcnMpOyBpKyspCisJCW1zbV9hdG9taWNfaW5pdF9wZW5kaW5nX3RpbWVyKCZrbXMtPnBlbmRpbmdfdGltZXJzW2ldLCBrbXMsIGkpOwogfQogCiBzdHJ1Y3QgbXNtX2ttcyAqbWRwNF9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKQEAgLTk4LDQgKzE5MCw4IEBAIHN0cnVjdCBtc21fbWRzcyB7CiBpbnQgbWRwNV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgZHB1X21kc3NfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAorI2RlZmluZSBmb3JfZWFjaF9jcnRjX21hc2soZGV2LCBjcnRjLCBjcnRjX21hc2spIFwKKwlkcm1fZm9yX2VhY2hfY3J0YyhjcnRjLCBkZXYpIFwKKwkJZm9yX2VhY2hfaWYgKGRybV9jcnRjX21hc2soY3J0YykgJiAoY3J0Y19tYXNrKSkKKwogI2VuZGlmIC8qIF9fTVNNX0tNU19IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX3BlcmYuYwppbmRleCA0OTBjYWRkLi4zYTI3MTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9wZXJmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fcGVyZi5jCkBAIC0xNSw2ICsxNSw5IEBACiAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCiAKICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CiAKICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX2dwdS5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fcmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX3JkLmMKaW5kZXggNzZkM2ZkZC4uYzc4MzJhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fcmQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9yZC5jCkBAIC0zMSwxMSArMzEsMTQgQEAKIAogI2lmZGVmIENPTkZJR19ERUJVR19GUwogCi0jaW5jbHVkZSA8bGludXgva2ZpZm8uaD4KLSNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvY2lyY19idWYuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgva2ZpZm8uaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisKICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX2dwdS5oIgogI2luY2x1ZGUgIm1zbV9nZW0uaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX3N1Ym1pdHF1ZXVlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9zdWJtaXRxdWV1ZS5jCmluZGV4IGM3MGUwMGUuLjAwMWZiZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX3N1Ym1pdHF1ZXVlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fc3VibWl0cXVldWUuYwpAQCAtMyw2ICszLDggQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgva3JlZi5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKwogI2luY2x1ZGUgIm1zbV9ncHUuaCIKIAogdm9pZCBtc21fc3VibWl0cXVldWVfZGVzdHJveShzdHJ1Y3Qga3JlZiAqa3JlZikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfY3J0Yy5jCmluZGV4IDkzZjQxMzMuLjEyNDIxNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2NydGMuYwpAQCAtOCwyMSArOCwyMyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IEVtYmVkZGVkIEFsbGV5IFNvbHV0aW9ucywgSW5jIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL3NpbXBsZWZiLmg+CisKKyNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL3NpbXBsZWZiLmg+Ci0jaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2RlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgIm14c2ZiX2Rydi5oIgogI2luY2x1ZGUgIm14c2ZiX3JlZ3MuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9kcnYuYwppbmRleCA2ZmFmYzkwLi5lODUwNjMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5jCkBAIC04LDI5ICs4LDMyIEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRW1iZWRkZWQgQWxsZXkgU29sdXRpb25zLCBJbmMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgogI2luY2x1ZGUgPGxpbnV4L29mX3Jlc2VydmVkX21lbS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KLSNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1yZXN2Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pcnEuaD4KICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJteHNmYl9kcnYuaCIKICNpbmNsdWRlICJteHNmYl9yZWdzLmgiCkBAIC0zMTMsOCArMzE2LDcgQEAgc3RhdGljIGlycXJldHVybl90IG14c2ZiX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiBERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhmb3BzKTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIG14c2ZiX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwKLQkJCQkgIERSSVZFUl9QUklNRSB8IERSSVZFUl9BVE9NSUMsCisJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCiAJLmlycV9oYW5kbGVyCQk9IG14c2ZiX2lycV9oYW5kbGVyLAogCS5pcnFfcHJlaW5zdGFsbAkJPSBteHNmYl9pcnFfcHJlaW5zdGFsbCwKIAkuaXJxX3VuaW5zdGFsbAkJPSBteHNmYl9pcnFfcHJlaW5zdGFsbCwKQEAgLTMyMyw4ICszMjUsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgbXhzZmJfZHJpdmVyID0gewogCS5kdW1iX2NyZWF0ZQkJPSBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSwKIAkucHJpbWVfaGFuZGxlX3RvX2ZkCT0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZQk9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfZXhwb3J0CT0gZHJtX2dlbV9wcmltZV9leHBvcnQsCi0JLmdlbV9wcmltZV9pbXBvcnQJPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKIAkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZQk9IGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX3ZtYXAJCT0gZHJtX2dlbV9jbWFfcHJpbWVfdm1hcCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9vdXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9vdXQuYwppbmRleCA5MWU3NmY5Li5iZTM2ZjRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfb3V0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX291dC5jCkBAIC0xNSw3ICsxNSw2IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogCiAjaW5jbHVkZSAibXhzZmJfZHJ2LmgiCiAKQEAgLTMxLDcgKzMwLDcgQEAgc3RhdGljIGludCBteHNmYl9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJCWRybV9jb25uZWN0b3JfdG9fbXhzZmJfZHJtX3ByaXZhdGUoY29ubmVjdG9yKTsKIAogCWlmIChteHNmYi0+cGFuZWwpCi0JCXJldHVybiBteHNmYi0+cGFuZWwtPmZ1bmNzLT5nZXRfbW9kZXMobXhzZmItPnBhbmVsKTsKKwkJcmV0dXJuIGRybV9wYW5lbF9nZXRfbW9kZXMobXhzZmItPnBhbmVsKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L0tjb25maWcKaW5kZXggOTZiOTgxNC4uMzU1OGRmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9LY29uZmlnCkBAIC04Niw5ICs4NiwxMCBAQAogCWJvb2wgIihFWFBFUklNRU5UQUwpIEVuYWJsZSBTVk0gKFNoYXJlZCBWaXJ0dWFsIE1lbW9yeSkgc3VwcG9ydCIKIAlkZXBlbmRzIG9uIERFVklDRV9QUklWQVRFCiAJZGVwZW5kcyBvbiBEUk1fTk9VVkVBVQotCWRlcGVuZHMgb24gSE1NX01JUlJPUgorCWRlcGVuZHMgb24gTU1VCiAJZGVwZW5kcyBvbiBTVEFHSU5HCi0Jc2VsZWN0IE1JR1JBVEVfVk1BX0hFTFBFUgorCXNlbGVjdCBITU1fTUlSUk9SCisJc2VsZWN0IE1NVV9OT1RJRklFUgogCWRlZmF1bHQgbgogCWhlbHAKIAkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvYXJiLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9hcmIuYwppbmRleCBjNzkxNjBjLi4zNjI0OTU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9hcmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9hcmIuYwpAQCAtMjEsOCArMjEsNiBAQAogICogU09GVFdBUkUuCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0KICNpbmNsdWRlICJub3V2ZWF1X2Rydi5oIgogI2luY2x1ZGUgIm5vdXZlYXVfcmVnLmgiCiAjaW5jbHVkZSAiaHcuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2NydGMuYwppbmRleCBmMjJmMDEwLi4zN2M1MGVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvY3J0Yy5jCkBAIC0yMiwxMSArMjIsMTAgQEAKICAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKICAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KICAqLwotI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KLQotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAibm91dmVhdV9kcnYuaCIKICNpbmNsdWRlICJub3V2ZWF1X3JlZy5oIgpAQCAtMTAzMSw1MyArMTAzMCw2IEBAIG52MDRfY3J0Y19jdXJzb3JfbW92ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQgeSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAotbm91dmVhdV9jcnRjX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAotCQkJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldjsKLQlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybTsKLQlpbnQgcmV0OwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQlib29sIGFjdGl2ZSA9IGZhbHNlOwotCWlmICghc2V0IHx8ICFzZXQtPmNydGMpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZGV2ID0gc2V0LT5jcnRjLT5kZXY7Ci0KLQkvKiBnZXQgYSBwbSByZWZlcmVuY2UgaGVyZSAqLwotCXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOwotCWlmIChyZXQgPCAwICYmIHJldCAhPSAtRUFDQ0VTKQotCQlyZXR1cm4gcmV0OwotCi0JcmV0ID0gZHJtX2NydGNfaGVscGVyX3NldF9jb25maWcoc2V0LCBjdHgpOwotCi0JZHJtID0gbm91dmVhdV9kcm0oZGV2KTsKLQotCS8qIGlmIHdlIGdldCBoZXJlIHdpdGggbm8gY3J0Y3MgYWN0aXZlIHRoZW4gd2UgY2FuIGRyb3AgYSByZWZlcmVuY2UgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgewotCQlpZiAoY3J0Yy0+ZW5hYmxlZCkKLQkJCWFjdGl2ZSA9IHRydWU7Ci0JfQotCi0JcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShkZXYtPmRldik7Ci0JLyogaWYgd2UgaGF2ZSBhY3RpdmUgY3J0Y3MgYW5kIHdlIGRvbid0IGhhdmUgYSBwb3dlciByZWYsCi0JICAgdGFrZSB0aGUgY3VycmVudCBvbmUgKi8KLQlpZiAoYWN0aXZlICYmICFkcm0tPmhhdmVfZGlzcF9wb3dlcl9yZWYpIHsKLQkJZHJtLT5oYXZlX2Rpc3BfcG93ZXJfcmVmID0gdHJ1ZTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0JLyogaWYgd2UgaGF2ZSBubyBhY3RpdmUgY3J0Y3MsIHRoZW4gZHJvcCB0aGUgcG93ZXIgcmVmCi0JICAgd2UgZ290IGJlZm9yZSAqLwotCWlmICghYWN0aXZlICYmIGRybS0+aGF2ZV9kaXNwX3Bvd2VyX3JlZikgewotCQlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChkZXYtPmRldik7Ci0JCWRybS0+aGF2ZV9kaXNwX3Bvd2VyX3JlZiA9IGZhbHNlOwotCX0KLQkvKiBkcm9wIHRoZSBwb3dlciByZWZlcmVuY2Ugd2UgZ290IGNvbWluZyBpbiBoZXJlICovCi0JcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZGV2LT5kZXYpOwotCXJldHVybiByZXQ7Ci19Ci0KIHN0cnVjdCBudjA0X3BhZ2VfZmxpcF9zdGF0ZSB7CiAJc3RydWN0IGxpc3RfaGVhZCBoZWFkOwogCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50OwpAQCAtMTI5Myw3ICsxMjQ1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBudjA0X2NydGNfZnVuY3MgPSB7CiAJLmN1cnNvcl9zZXQgPSBudjA0X2NydGNfY3Vyc29yX3NldCwKIAkuY3Vyc29yX21vdmUgPSBudjA0X2NydGNfY3Vyc29yX21vdmUsCiAJLmdhbW1hX3NldCA9IG52X2NydGNfZ2FtbWFfc2V0LAotCS5zZXRfY29uZmlnID0gbm91dmVhdV9jcnRjX3NldF9jb25maWcsCisJLnNldF9jb25maWcgPSBkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZywKIAkucGFnZV9mbGlwID0gbnYwNF9jcnRjX3BhZ2VfZmxpcCwKIAkuZGVzdHJveSA9IG52X2NydGNfZGVzdHJveSwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9jdXJzb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2N1cnNvci5jCmluZGV4IDE2ZTA5ZjYuLjRjNjQ0MGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2N1cnNvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2N1cnNvci5jCkBAIC0xLDUgKzEsNCBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tb2RlLmg+CiAjaW5jbHVkZSAibm91dmVhdV9kcnYuaCIKICNpbmNsdWRlICJub3V2ZWF1X3JlZy5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvZGFjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9kYWMuYwppbmRleCBlN2FmOTVkLi5lOGVlZjg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9kYWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9kYWMuYwpAQCAtMjQsNyArMjQsNiBAQAogICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KIAogI2luY2x1ZGUgIm5vdXZlYXVfZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9kZnAuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2RmcC5jCmluZGV4IDczZDQxYWIuLmY5ZjQ0ODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2RmcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2RmcC5jCkBAIC0yNCw4ICsyNCw4IEBACiAgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAKICNpbmNsdWRlICJub3V2ZWF1X2Rydi5oIgogI2luY2x1ZGUgIm5vdXZlYXVfcmVnLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9kaXNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9kaXNwLmMKaW5kZXggNTcxM2JhYy4uZGM2NDg2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvZGlzcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2Rpc3AuYwpAQCAtMjIsNyArMjIsNiBAQAogICogQXV0aG9yOiBCZW4gU2tlZ2dzCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogCiAjaW5jbHVkZSAibm91dmVhdV9kcnYuaCIKQEAgLTIxMCw3ICsyMDksNyBAQCBudjA0X2Rpc3BsYXlfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbm91dmVhdV9kaXNwbGF5KGRldiktPmZpbmkgPSBudjA0X2Rpc3BsYXlfZmluaTsKIAogCS8qIFByZS1udjUwIGRvZXNuJ3Qgc3VwcG9ydCBhdG9taWMsIHNvIGRvbid0IGV4cG9zZSB0aGUgaW9jdGxzICovCi0JZGV2LT5kcml2ZXItPmRyaXZlcl9mZWF0dXJlcyAmPSB+RFJJVkVSX0FUT01JQzsKKwlkZXYtPmRyaXZlcl9mZWF0dXJlcyAmPSB+RFJJVkVSX0FUT01JQzsKIAogCS8qIFJlcXVlc3QgcGFnZSBmbGlwIGNvbXBsZXRpb24gZXZlbnQuICovCiAJaWYgKGRybS0+bnZzdy5jbGllbnQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2Rpc3AuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2Rpc3AuaAppbmRleCA2Y2NmYzA5Li40OTVkMzI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9kaXNwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvZGlzcC5oCkBAIC0xNjEsNyArMTYxLDYgQEAgbnZfbWF0Y2hfZGV2aWNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGRldmljZSwKIAkJZGV2LT5wZGV2LT5zdWJzeXN0ZW1fZGV2aWNlID09IHN1Yl9kZXZpY2U7CiB9CiAKLSNpbmNsdWRlIDxzdWJkZXYvYmlvcy5oPgogI2luY2x1ZGUgPHN1YmRldi9iaW9zL2luaXQuaD4KIAogc3RhdGljIGlubGluZSB2b2lkCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9ody5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvaHcuYwppbmRleCAwYzliZGYwLi4zZmRmYWZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9ody5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2h3LmMKQEAgLTIyLDcgKzIyLDYgQEAKICAqIFNPRlRXQVJFLgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgIm5vdXZlYXVfZHJ2LmgiCiAjaW5jbHVkZSAiaHcuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvaHcuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2h3LmgKaW5kZXggM2EyYmU0Ny4uNjk4N2UxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvaHcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9ody5oCkBAIC0yMyw3ICsyMyw2IEBACiAjaWZuZGVmIF9fTk9VVkVBVV9IV19IX18KICNkZWZpbmUgX19OT1VWRUFVX0hXX0hfXwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlICJkaXNwLmgiCiAjaW5jbHVkZSAibnZyZWcuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvb3ZlcmxheS5jCmluZGV4IGRmNDM1OGUuLmEzYTBhNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9vdmVybGF5LmMKQEAgLTIzLDcgKzIzLDYgQEAKICAqIHdyaXR0ZW4gYnkgQXJ0aHVyIEh1aWxsZXQuCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvdHZtb2Rlc252MTcuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bW9kZXNudjE3LmMKaW5kZXggMmI4M2IyYy4uMmY2ZDJiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvdHZtb2Rlc252MTcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC90dm1vZGVzbnYxNy5jCkBAIC0yNCw3ICsyNCw2IEBACiAgKgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlICJub3V2ZWF1X2Rydi5oIgogI2luY2x1ZGUgIm5vdXZlYXVfZW5jb2Rlci5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvdHZudjA0LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC90dm52MDQuYwppbmRleCBkZTQ0OTBiLi5iNzAxYTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC90dm52MDQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC90dm52MDQuYwpAQCAtMjQsNyArMjQsNiBAQAogICoKICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlICJub3V2ZWF1X2Rydi5oIgogI2luY2x1ZGUgIm5vdXZlYXVfcmVnLmgiCiAjaW5jbHVkZSAibm91dmVhdV9lbmNvZGVyLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC90dm52MTcuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bnYxNy5jCmluZGV4IDI2ZmQ3MWMuLjAzNDY2ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bnYxNy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bnYxNy5jCkBAIC0yNCw3ICsyNCw2IEBACiAgKgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogI2luY2x1ZGUgIm5vdXZlYXVfZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9hdG9tLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9hdG9tLmgKaW5kZXggYjVmYWU1YS4uNDNkZjg2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvYXRvbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2F0b20uaApAQCAtMTg1LDYgKzE4NSwxMSBAQCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gewogCX0geGx1dDsKIAogCXN0cnVjdCB7CisJCXUzMiBtYXRyaXhbMTJdOworCQlib29sIHZhbGlkOworCX0gY3NjOworCisJc3RydWN0IHsKIAkJdTggIG1vZGU6MjsKIAkJdTggIGludGVydmFsOjQ7CiAKQEAgLTIxNiwxNCArMjIxLDIzIEBAIHN0cnVjdCBudjUwX3duZHdfYXRvbSB7CiAJCXUxNiB5OwogCX0gcG9pbnQ7CiAKKwlzdHJ1Y3QgeworCQl1OCBkZXB0aDsKKwkJdTggazE7CisJCXU4IHNyY19jb2xvcjo0OworCQl1OCBkc3RfY29sb3I6NDsKKwl9IGJsZW5kOworCiAJdW5pb24gbnY1MF93bmR3X2F0b21fbWFzayB7CiAJCXN0cnVjdCB7CiAJCQlib29sIG50Znk6MTsKIAkJCWJvb2wgc2VtYToxOwogCQkJYm9vbCB4bHV0OjE7CisJCQlib29sIGNzYzoxOwogCQkJYm9vbCBpbWFnZToxOwogCQkJYm9vbCBzY2FsZToxOwogCQkJYm9vbCBwb2ludDoxOworCQkJYm9vbCBibGVuZDoxOwogCQl9OwogCQl1OCBtYXNrOwogCX0gc2V0LCBjbHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9iYXNlNTA3Yy5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvYmFzZTUwN2MuYwppbmRleCBkNWUyOTVjLi4wMGE4NWYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9iYXNlNTA3Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Jhc2U1MDdjLmMKQEAgLTI1LDcgKzI1LDkgQEAKICNpbmNsdWRlIDxudmlmL2V2ZW50Lmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CisKICNpbmNsdWRlICJub3V2ZWF1X2JvLmgiCiAKIHZvaWQKQEAgLTU2LDEyICs1OCwyMSBAQCBzdGF0aWMgdm9pZAogYmFzZTUwN2NfaW1hZ2Vfc2V0KHN0cnVjdCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dykKIHsKIAl1MzIgKnB1c2g7Ci0JaWYgKChwdXNoID0gZXZvX3dhaXQoJnduZHctPnduZHcsIDEwKSkpIHsKKwlpZiAoKHB1c2ggPSBldm9fd2FpdCgmd25kdy0+d25kdywgMTMpKSkgewogCQlldm9fbXRoZChwdXNoLCAweDAwODQsIDEpOwogCQlldm9fZGF0YShwdXNoLCBhc3l3LT5pbWFnZS5tb2RlIDw8IDggfAogCQkJICAgICAgIGFzeXctPmltYWdlLmludGVydmFsIDw8IDQpOwogCQlldm9fbXRoZChwdXNoLCAweDAwYzAsIDEpOwogCQlldm9fZGF0YShwdXNoLCBhc3l3LT5pbWFnZS5oYW5kbGVbMF0pOworCQlpZiAoYXN5dy0+aW1hZ2UuZm9ybWF0ID09IDB4Y2EpIHsKKwkJCWV2b19tdGhkKHB1c2gsIDB4MDExMCwgMik7CisJCQlldm9fZGF0YShwdXNoLCAxKTsKKwkJCWV2b19kYXRhKHB1c2gsIDB4NjQwMCk7CisJCX0gZWxzZSB7CisJCQlldm9fbXRoZChwdXNoLCAweDAxMTAsIDIpOworCQkJZXZvX2RhdGEocHVzaCwgMCk7CisJCQlldm9fZGF0YShwdXNoLCAwKTsKKwkJfQogCQlldm9fbXRoZChwdXNoLCAweDA4MDAsIDUpOwogCQlldm9fZGF0YShwdXNoLCBhc3l3LT5pbWFnZS5vZmZzZXRbMF0gPj4gOCk7CiAJCWV2b19kYXRhKHB1c2gsIDB4MDAwMDAwMDApOwpAQCAtMTc5LDkgKzE5MCw2IEBAIGJhc2U1MDdjX2FjcXVpcmUoc3RydWN0IG52NTBfd25kdyAqd25kdywgc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3LAogCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gYXN5dy0+c3RhdGUuZmI7CiAJaW50IHJldDsKIAotCWlmICghZmItPmZvcm1hdC0+ZGVwdGgpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJmFzeXctPnN0YXRlLCAmYXN5aC0+c3RhdGUsCiAJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLApAQCAtMjAwLDYgKzIwOCwxNCBAQCBiYXNlNTA3Y19hY3F1aXJlKHN0cnVjdCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dywKIAlhc3loLT5iYXNlLnkgPSBhc3l3LT5zdGF0ZS5zcmMueTEgPj4gMTY7CiAJYXN5aC0+YmFzZS53ID0gYXN5dy0+c3RhdGUuZmItPndpZHRoOwogCWFzeWgtPmJhc2UuaCA9IGFzeXctPnN0YXRlLmZiLT5oZWlnaHQ7CisKKwkvKiBTb21lIG5ld2VyIGZvcm1hdHMsIGVzcCBGUDE2IG9uZXMsIGRvbid0IGhhdmUgYQorCSAqICJkZXB0aCIuIFRoZXJlJ3Mgbm90aGluZyB0aGF0IHJlYWxseSBtYWtlcyBzZW5zZSB0aGVyZQorCSAqIGVpdGhlciwgc28ganVzdCBzZXQgaXQgdG8gdGhlIGltcGxpY2l0IGJpdCBjb3VudC4KKwkgKi8KKwlpZiAoIWFzeWgtPmJhc2UuZGVwdGgpCisJCWFzeWgtPmJhc2UuZGVwdGggPSBhc3loLT5iYXNlLmNwcCAqIDg7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjE1LDYgKzIzMSw4IEBAIGJhc2U1MDdjX2Zvcm1hdFtdID0gewogCURSTV9GT1JNQVRfQUJHUjIxMDEwMTAsCiAJRFJNX0ZPUk1BVF9YQkdSODg4OCwKIAlEUk1fRk9STUFUX0FCR1I4ODg4LAorCURSTV9GT1JNQVRfWEJHUjE2MTYxNjE2RiwKKwlEUk1fRk9STUFUX0FCR1IxNjE2MTYxNkYsCiAJMAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvYmFzZTgyN2MuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Jhc2U4MjdjLmMKaW5kZXggNzM2NDY4MS4uZjRjMDU5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvYmFzZTgyN2MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9iYXNlODI3Yy5jCkBAIC0yNSwxMiArMjUsMjEgQEAgc3RhdGljIHZvaWQKIGJhc2U4MjdjX2ltYWdlX3NldChzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcpCiB7CiAJdTMyICpwdXNoOwotCWlmICgocHVzaCA9IGV2b193YWl0KCZ3bmR3LT53bmR3LCAxMCkpKSB7CisJaWYgKChwdXNoID0gZXZvX3dhaXQoJnduZHctPnduZHcsIDEzKSkpIHsKIAkJZXZvX210aGQocHVzaCwgMHgwMDg0LCAxKTsKIAkJZXZvX2RhdGEocHVzaCwgYXN5dy0+aW1hZ2UubW9kZSA8PCA4IHwKIAkJCSAgICAgICBhc3l3LT5pbWFnZS5pbnRlcnZhbCA8PCA0KTsKIAkJZXZvX210aGQocHVzaCwgMHgwMGMwLCAxKTsKIAkJZXZvX2RhdGEocHVzaCwgYXN5dy0+aW1hZ2UuaGFuZGxlWzBdKTsKKwkJaWYgKGFzeXctPmltYWdlLmZvcm1hdCA9PSAweGNhKSB7CisJCQlldm9fbXRoZChwdXNoLCAweDAxMTAsIDIpOworCQkJZXZvX2RhdGEocHVzaCwgMSk7CisJCQlldm9fZGF0YShwdXNoLCAweDY0MDApOworCQl9IGVsc2UgeworCQkJZXZvX210aGQocHVzaCwgMHgwMTEwLCAyKTsKKwkJCWV2b19kYXRhKHB1c2gsIDApOworCQkJZXZvX2RhdGEocHVzaCwgMCk7CisJCX0KIAkJZXZvX210aGQocHVzaCwgMHgwODAwLCA1KTsKIAkJZXZvX2RhdGEocHVzaCwgYXN5dy0+aW1hZ2Uub2Zmc2V0WzBdID4+IDgpOwogCQlldm9fZGF0YShwdXNoLCAweDAwMDAwMDAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Jhc2U5MDdjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9iYXNlOTA3Yy5jCmluZGV4IDA0OWNlNmQuLjVmMmRlNzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Jhc2U5MDdjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvYmFzZTkwN2MuYwpAQCAtODMsNiArODMsNjggQEAgYmFzZTkwN2NfaWx1dChzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcpCiAJYXN5dy0+eGx1dC5pLmxvYWQgPSBoZWFkOTA3ZF9vbHV0X2xvYWQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdTMyCitjc2NfZHJtX3RvX2Jhc2UodTY0IGluKQoreworCS8qIGJhc2UgdGFrZXMgYSAxOS1iaXQgMidzIGNvbXBsZW1lbnQgdmFsdWUgaW4gUzMuMTYgZm9ybWF0ICovCisJYm9vbCBzaWduID0gaW4gJiBCSVRfVUxMKDYzKTsKKwl1MzIgaW50ZWdlciA9IChpbiA+PiAzMikgJiAweDdmZmZmZmZmOworCXUzMiBmcmFjdGlvbiA9IGluICYgMHhmZmZmZmZmZjsKKworCWlmIChpbnRlZ2VyID49IDQpIHsKKwkJcmV0dXJuICgxIDw8IDE4KSAtIChzaWduID8gMCA6IDEpOworCX0gZWxzZSB7CisJCXUzMiByZXQgPSAoaW50ZWdlciA8PCAxNikgfCAoZnJhY3Rpb24gPj4gMTYpOworCQlpZiAoc2lnbikKKwkJCXJldCA9IC1yZXQ7CisJCXJldHVybiByZXQgJiBHRU5NQVNLKDE4LCAwKTsKKwl9Cit9CisKK3ZvaWQKK2Jhc2U5MDdjX2NzYyhzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcsCisJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtKQoreworCWludCBpLCBqOworCisJZm9yIChqID0gMDsgaiA8IDM7IGorKykgeworCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisJCQl1MzIgKnZhbCA9ICZhc3l3LT5jc2MubWF0cml4W2ogKiA0ICsgaV07CisJCQkvKiBEUk0gZG9lcyBub3Qgc3VwcG9ydCBjb25zdGFudCBvZmZzZXQsIHdoaWxlCisJCQkgKiBIVyBDU0MgZG9lcy4gU2tpcCBpdC4gKi8KKwkJCWlmIChpID09IDMpIHsKKwkJCQkqdmFsID0gMDsKKwkJCX0gZWxzZSB7CisJCQkJKnZhbCA9IGNzY19kcm1fdG9fYmFzZShjdG0tPm1hdHJpeFtqICogMyArIGldKTsKKwkJCX0KKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQKK2Jhc2U5MDdjX2NzY19jbHIoc3RydWN0IG52NTBfd25kdyAqd25kdykKK3sKKwl1MzIgKnB1c2g7CisJaWYgKChwdXNoID0gZXZvX3dhaXQoJnduZHctPnduZHcsIDIpKSkgeworCQlldm9fbXRoZChwdXNoLCAweDAxNDAsIDEpOworCQlldm9fZGF0YShwdXNoLCAweDAwMDAwMDAwKTsKKwkJZXZvX2tpY2socHVzaCwgJnduZHctPnduZHcpOworCX0KK30KKworc3RhdGljIHZvaWQKK2Jhc2U5MDdjX2NzY19zZXQoc3RydWN0IG52NTBfd25kdyAqd25kdywgc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3KQoreworCXUzMiAqcHVzaCwgaTsKKwlpZiAoKHB1c2ggPSBldm9fd2FpdCgmd25kdy0+d25kdywgMTMpKSkgeworCQlldm9fbXRoZChwdXNoLCAweDAxNDAsIDEyKTsKKwkJZXZvX2RhdGEocHVzaCwgYXN5dy0+Y3NjLm1hdHJpeFswXSB8IDB4ODAwMDAwMDApOworCQlmb3IgKGkgPSAxOyBpIDwgMTI7IGkrKykKKwkJCWV2b19kYXRhKHB1c2gsIGFzeXctPmNzYy5tYXRyaXhbaV0pOworCQlldm9fa2ljayhwdXNoLCAmd25kdy0+d25kdyk7CisJfQorfQorCiBjb25zdCBzdHJ1Y3QgbnY1MF93bmR3X2Z1bmMKIGJhc2U5MDdjID0gewogCS5hY3F1aXJlID0gYmFzZTUwN2NfYWNxdWlyZSwKQEAgLTk0LDYgKzE1Niw5IEBAIGJhc2U5MDdjID0gewogCS5udGZ5X2NsciA9IGJhc2U1MDdjX250ZnlfY2xyLAogCS5udGZ5X3dhaXRfYmVndW4gPSBiYXNlNTA3Y19udGZ5X3dhaXRfYmVndW4sCiAJLmlsdXQgPSBiYXNlOTA3Y19pbHV0LAorCS5jc2MgPSBiYXNlOTA3Y19jc2MsCisJLmNzY19zZXQgPSBiYXNlOTA3Y19jc2Nfc2V0LAorCS5jc2NfY2xyID0gYmFzZTkwN2NfY3NjX2NsciwKIAkub2x1dF9jb3JlID0gdHJ1ZSwKIAkueGx1dF9zZXQgPSBiYXNlOTA3Y194bHV0X3NldCwKIAkueGx1dF9jbHIgPSBiYXNlOTA3Y194bHV0X2NsciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Jhc2U5MTdjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9iYXNlOTE3Yy5jCmluZGV4IDU0ZDcwNWIuLmExYmFlZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Jhc2U5MTdjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvYmFzZTkxN2MuYwpAQCAtMzYsNiArMzYsOCBAQCBiYXNlOTE3Y19mb3JtYXRbXSA9IHsKIAlEUk1fRk9STUFUX0FCR1I4ODg4LAogCURSTV9GT1JNQVRfWFJHQjIxMDEwMTAsCiAJRFJNX0ZPUk1BVF9BUkdCMjEwMTAxMCwKKwlEUk1fRk9STUFUX1hCR1IxNjE2MTYxNkYsCisJRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZGLAogCTAKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2NvcmVjMzdkLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9jb3JlYzM3ZC5jCmluZGV4IDc4NjA3NzQuLjQwZDliNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2NvcmVjMzdkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvY29yZWMzN2QuYwpAQCAtODIsNyArODIsNyBAQCBjb3JlYzM3ZF9pbml0KHN0cnVjdCBudjUwX2NvcmUgKmNvcmUpCiAJCWZvciAoaSA9IDA7IGkgPCB3aW5kb3dzOyBpKyspIHsKIAkJCWV2b19tdGhkKHB1c2gsIDB4MTAwMCArIChpICogMHgwODApLCAzKTsKIAkJCWV2b19kYXRhKHB1c2gsIGkgPj4gMSk7Ci0JCQlldm9fZGF0YShwdXNoLCAweDAwMDAwMDE3KTsKKwkJCWV2b19kYXRhKHB1c2gsIDB4MDAwMDAwMWYpOwogCQkJZXZvX2RhdGEocHVzaCwgMHgwMDAwMDAwMCk7CiAJCQlldm9fbXRoZChwdXNoLCAweDEwMTAgKyAoaSAqIDB4MDgwKSwgMSk7CiAJCQlldm9fZGF0YShwdXNoLCAweDAwMTI3ZmZmKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Rpc3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Rpc3AuYwppbmRleCA1YzM2Yzc1Li5iNDZiZThhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jCkBAIC0zMCwxNCArMzAsMTQgQEAKICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2hkbWkuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3NjZGNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgPG52aWYvY2xhc3MuaD4KICNpbmNsdWRlIDxudmlmL2NsMDAwMi5oPgpAQCAtMTYwMyw3ICsxNjAzLDggQEAgbnY1MF9zb3JfY3JlYXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIHN0cnVjdCBkY2Jfb3V0cHV0ICpkY2JlKQogCQkJbnZfZW5jb2Rlci0+YXV4ID0gYXV4OwogCQl9CiAKLQkJaWYgKChkYXRhID0gbnZiaW9zX2RwX3RhYmxlKGJpb3MsICZ2ZXIsICZoZHIsICZjbnQsICZsZW4pKSAmJgorCQlpZiAobnZfY29ubmVjdG9yLT50eXBlICE9IERDQl9DT05ORUNUT1JfZURQICYmCisJCSAgICAoZGF0YSA9IG52Ymlvc19kcF90YWJsZShiaW9zLCAmdmVyLCAmaGRyLCAmY250LCAmbGVuKSkgJiYKIAkJICAgIHZlciA+PSAweDQwICYmIChudmJpb3NfcmQwOChiaW9zLCBkYXRhICsgMHgwOCkgJiAweDA0KSkgewogCQkJcmV0ID0gbnY1MF9tc3RtX25ldyhudl9lbmNvZGVyLCAmbnZfY29ubmVjdG9yLT5hdXgsIDE2LAogCQkJCQkgICAgbnZfY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCkBAIC0xODMwLDggKzE4MzEsMTEgQEAgbnY1MF9kaXNwX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkJTlZfQVRPTUlDKGRybSwgIiVzOiBjbHIgJTA0eCAoc2V0ICUwNHgpXG4iLCBjcnRjLT5uYW1lLAogCQkJICBhc3loLT5jbHIubWFzaywgYXN5aC0+c2V0Lm1hc2spOwotCQlpZiAob2xkX2NydGNfc3RhdGUtPmFjdGl2ZSAmJiAhbmV3X2NydGNfc3RhdGUtPmFjdGl2ZSkKKworCQlpZiAob2xkX2NydGNfc3RhdGUtPmFjdGl2ZSAmJiAhbmV3X2NydGNfc3RhdGUtPmFjdGl2ZSkgeworCQkJcG1fcnVudGltZV9wdXRfbm9pZGxlKGRldi0+ZGV2KTsKIAkJCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CisJCX0KIAogCQlpZiAoYXN5aC0+Y2xyLm1hc2spIHsKIAkJCW52NTBfaGVhZF9mbHVzaF9jbHIoaGVhZCwgYXN5aCwgYXRvbS0+Zmx1c2hfZGlzYWJsZSk7CkBAIC0xOTE3LDggKzE5MjEsMTAgQEAgbnY1MF9kaXNwX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCX0KIAogCQlpZiAobmV3X2NydGNfc3RhdGUtPmFjdGl2ZSkgewotCQkJaWYgKCFvbGRfY3J0Y19zdGF0ZS0+YWN0aXZlKQorCQkJaWYgKCFvbGRfY3J0Y19zdGF0ZS0+YWN0aXZlKSB7CiAJCQkJZHJtX2NydGNfdmJsYW5rX29uKGNydGMpOworCQkJCXBtX3J1bnRpbWVfZ2V0X25vcmVzdW1lKGRldi0+ZGV2KTsKKwkJCX0KIAkJCWlmIChuZXdfY3J0Y19zdGF0ZS0+ZXZlbnQpCiAJCQkJZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTsKIAkJfQpAQCAtMTk4Myw2ICsxOTg5LDEwIEBAIG52NTBfZGlzcF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwogCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUoc3RhdGUpOwogCWRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKKworCS8qIERyb3AgdGhlIFJQTSByZWYgd2UgZ290IGZyb20gbnY1MF9kaXNwX2F0b21pY19jb21taXQoKSAqLworCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZGV2LT5kZXYpOworCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGRldi0+ZGV2KTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTE5OTcsMTEgKzIwMDcsOCBAQCBzdGF0aWMgaW50CiBudjUwX2Rpc3BfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLCBib29sIG5vbmJsb2NrKQogewotCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9kcm0oZGV2KTsKIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGU7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwotCWJvb2wgYWN0aXZlID0gZmFsc2U7CiAJaW50IHJldCwgaTsKIAogCXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOwpAQCAtMjAzOCwyNyArMjA0NSwxNyBAQCBudjUwX2Rpc3BfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJZHJtX2F0b21pY19zdGF0ZV9nZXQoc3RhdGUpOwogCisJLyoKKwkgKiBHcmFiIGFub3RoZXIgUlBNIHJlZiBmb3IgdGhlIGNvbW1pdCB0YWlsLCB3aGljaCB3aWxsIHJlbGVhc2UgdGhlCisJICogcmVmIHdoZW4gaXQncyBmaW5pc2hlZAorCSAqLworCXBtX3J1bnRpbWVfZ2V0X25vcmVzdW1lKGRldi0+ZGV2KTsKKwogCWlmIChub25ibG9jaykKIAkJcXVldWVfd29yayhzeXN0ZW1fdW5ib3VuZF93cSwgJnN0YXRlLT5jb21taXRfd29yayk7CiAJZWxzZQogCQludjUwX2Rpc3BfYXRvbWljX2NvbW1pdF90YWlsKHN0YXRlKTsKIAotCWRybV9mb3JfZWFjaF9jcnRjKGNydGMsIGRldikgewotCQlpZiAoY3J0Yy0+c3RhdGUtPmFjdGl2ZSkgewotCQkJaWYgKCFkcm0tPmhhdmVfZGlzcF9wb3dlcl9yZWYpIHsKLQkJCQlkcm0tPmhhdmVfZGlzcF9wb3dlcl9yZWYgPSB0cnVlOwotCQkJCXJldHVybiAwOwotCQkJfQotCQkJYWN0aXZlID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCi0JaWYgKCFhY3RpdmUgJiYgZHJtLT5oYXZlX2Rpc3BfcG93ZXJfcmVmKSB7Ci0JCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGRldi0+ZGV2KTsKLQkJZHJtLT5oYXZlX2Rpc3BfcG93ZXJfcmVmID0gZmFsc2U7Ci0JfQotCiBlcnJfY2xlYW51cDoKIAlpZiAocmV0KQogCQlkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKQEAgLTIzMjAsNiArMjMxNyw3IEBAIG52NTBfZGlzcGxheV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlkaXNwLT5kaXNwID0gJm5vdXZlYXVfZGlzcGxheShkZXYpLT5kaXNwOwogCWRldi0+bW9kZV9jb25maWcuZnVuY3MgPSAmbnY1MF9kaXNwX2Z1bmM7CiAJZGV2LT5tb2RlX2NvbmZpZy5xdWlya19hZGRmYl9wcmVmZXJfeGJncl8zMGJwcCA9IHRydWU7CisJZGV2LT5tb2RlX2NvbmZpZy5ub3JtYWxpemVfenBvcyA9IHRydWU7CiAKIAkvKiBzbWFsbCBzaGFyZWQgbWVtb3J5IGFyZWEgd2UgdXNlIGZvciBub3RpZmllcnMgYW5kIHNlbWFwaG9yZXMgKi8KIAlyZXQgPSBub3V2ZWF1X2JvX25ldygmZHJtLT5jbGllbnQsIDQwOTYsIDB4MTAwMCwgVFRNX1BMX0ZMQUdfVlJBTSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQuYwppbmRleCA5MjlkOTNiLi43MWMyM2JmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9oZWFkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5jCkBAIC00ODAsNyArNDgwLDcgQEAgbnY1MF9oZWFkX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgaW5kZXgpCiAJc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShkZXYpOwogCXN0cnVjdCBudjUwX2Rpc3AgKmRpc3AgPSBudjUwX2Rpc3AoZGV2KTsKIAlzdHJ1Y3QgbnY1MF9oZWFkICpoZWFkOwotCXN0cnVjdCBudjUwX3duZHcgKmN1cnMsICp3bmR3OworCXN0cnVjdCBudjUwX3duZHcgKmJhc2UsICpvdmx5LCAqY3VyczsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJaW50IHJldDsKIApAQCAtNDkyLDEzICs0OTIsMTMgQEAgbnY1MF9oZWFkX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgaW5kZXgpCiAJaGVhZC0+YmFzZS5pbmRleCA9IGluZGV4OwogCiAJaWYgKGRpc3AtPmRpc3AtPm9iamVjdC5vY2xhc3MgPCBHVjEwMF9ESVNQKSB7Ci0JCXJldCA9IG52NTBfb3ZseV9uZXcoZHJtLCBoZWFkLT5iYXNlLmluZGV4LCAmd25kdyk7Ci0JCXJldCA9IG52NTBfYmFzZV9uZXcoZHJtLCBoZWFkLT5iYXNlLmluZGV4LCAmd25kdyk7CisJCXJldCA9IG52NTBfYmFzZV9uZXcoZHJtLCBoZWFkLT5iYXNlLmluZGV4LCAmYmFzZSk7CisJCXJldCA9IG52NTBfb3ZseV9uZXcoZHJtLCBoZWFkLT5iYXNlLmluZGV4LCAmb3ZseSk7CiAJfSBlbHNlIHsKLQkJcmV0ID0gbnY1MF93bmR3X25ldyhkcm0sIERSTV9QTEFORV9UWVBFX09WRVJMQVksCi0JCQkJICAgIGhlYWQtPmJhc2UuaW5kZXggKiAyICsgMSwgJnduZHcpOwogCQlyZXQgPSBudjUwX3duZHdfbmV3KGRybSwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwKLQkJCQkgICAgaGVhZC0+YmFzZS5pbmRleCAqIDIgKyAwLCAmd25kdyk7CisJCQkJICAgIGhlYWQtPmJhc2UuaW5kZXggKiAyICsgMCwgJmJhc2UpOworCQlyZXQgPSBudjUwX3duZHdfbmV3KGRybSwgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSwKKwkJCQkgICAgaGVhZC0+YmFzZS5pbmRleCAqIDIgKyAxLCAmb3ZseSk7CiAJfQogCWlmIChyZXQgPT0gMCkKIAkJcmV0ID0gbnY1MF9jdXJzX25ldyhkcm0sIGhlYWQtPmJhc2UuaW5kZXgsICZjdXJzKTsKQEAgLTUwOCwxMCArNTA4LDE0IEBAIG52NTBfaGVhZF9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGluZGV4KQogCX0KIAogCWNydGMgPSAmaGVhZC0+YmFzZS5iYXNlOwotCWRybV9jcnRjX2luaXRfd2l0aF9wbGFuZXMoZGV2LCBjcnRjLCAmd25kdy0+cGxhbmUsICZjdXJzLT5wbGFuZSwKKwlkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKGRldiwgY3J0YywgJmJhc2UtPnBsYW5lLCAmY3Vycy0+cGxhbmUsCiAJCQkJICAmbnY1MF9oZWFkX2Z1bmMsICJoZWFkLSVkIiwgaGVhZC0+YmFzZS5pbmRleCk7CiAJZHJtX2NydGNfaGVscGVyX2FkZChjcnRjLCAmbnY1MF9oZWFkX2hlbHApOwogCWRybV9tb2RlX2NydGNfc2V0X2dhbW1hX3NpemUoY3J0YywgMjU2KTsKKwlpZiAoZGlzcC0+ZGlzcC0+b2JqZWN0Lm9jbGFzcyA+PSBHRjExMF9ESVNQKQorCQlkcm1fY3J0Y19lbmFibGVfY29sb3JfbWdtdChjcnRjLCAyNTYsIHRydWUsIDI1Nik7CisJZWxzZQorCQlkcm1fY3J0Y19lbmFibGVfY29sb3JfbWdtdChjcnRjLCAwLCBmYWxzZSwgMjU2KTsKIAogCWlmIChoZWFkLT5mdW5jLT5vbHV0X3NldCkgewogCQlyZXQgPSBudjUwX2x1dF9pbml0KGRpc3AsICZkcm0tPmNsaWVudC5tbXUsICZoZWFkLT5vbHV0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL292bHk1MDdlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9vdmx5NTA3ZS5jCmluZGV4IGNjNDE3NjYuLjhjY2Q5NjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL292bHk1MDdlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvb3ZseTUwN2UuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImF0b20uaCIKIAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KIAogI2luY2x1ZGUgPG52aWYvY2w1MDdlLmg+CkBAIC0xNjAsOSArMTYxLDcgQEAgb3ZseTUwN2VfZm9ybWF0W10gPSB7CiAJRFJNX0ZPUk1BVF9ZVVlWLAogCURSTV9GT1JNQVRfVVlWWSwKIAlEUk1fRk9STUFUX1hSR0I4ODg4LAotCURSTV9GT1JNQVRfQVJHQjg4ODgsCiAJRFJNX0ZPUk1BVF9YUkdCMTU1NSwKLQlEUk1fRk9STUFUX0FSR0IxNTU1LAogCTAKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL292bHk4MjdlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9vdmx5ODI3ZS5jCmluZGV4IGFhYTlmZTUuLjJlNjhmYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL292bHk4MjdlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvb3ZseTgyN2UuYwpAQCAtOTAsMTEgKzkwLDggQEAgb3ZseTgyN2VfZm9ybWF0W10gPSB7CiAJRFJNX0ZPUk1BVF9ZVVlWLAogCURSTV9GT1JNQVRfVVlWWSwKIAlEUk1fRk9STUFUX1hSR0I4ODg4LAotCURSTV9GT1JNQVRfQVJHQjg4ODgsCiAJRFJNX0ZPUk1BVF9YUkdCMTU1NSwKLQlEUk1fRk9STUFUX0FSR0IxNTU1LAogCURSTV9GT1JNQVRfWEJHUjIxMDEwMTAsCi0JRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMCwKIAkwCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9vdmx5OTA3ZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvb3ZseTkwN2UuYwppbmRleCBhM2NlNTMwLi45ZWZlNWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9vdmx5OTA3ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL292bHk5MDdlLmMKQEAgLTYxLDEwICs2MSwyMSBAQCBvdmx5OTA3ZSA9IHsKIAkudXBkYXRlID0gb3ZseTUwN2VfdXBkYXRlLAogfTsKIAorc3RhdGljIGNvbnN0IHUzMgorb3ZseTkwN2VfZm9ybWF0W10gPSB7CisJRFJNX0ZPUk1BVF9ZVVlWLAorCURSTV9GT1JNQVRfVVlWWSwKKwlEUk1fRk9STUFUX1hSR0I4ODg4LAorCURSTV9GT1JNQVRfWFJHQjE1NTUsCisJRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCwKKwlEUk1fRk9STUFUX1hCR1IxNjE2MTYxNkYsCisJMAorfTsKKwogaW50CiBvdmx5OTA3ZV9uZXcoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0sIGludCBoZWFkLCBzMzIgb2NsYXNzLAogCSAgICAgc3RydWN0IG52NTBfd25kdyAqKnB3bmR3KQogewotCXJldHVybiBvdmx5NTA3ZV9uZXdfKCZvdmx5OTA3ZSwgb3ZseTgyN2VfZm9ybWF0LCBkcm0sIGhlYWQsIG9jbGFzcywKKwlyZXR1cm4gb3ZseTUwN2VfbmV3Xygmb3ZseTkwN2UsIG92bHk5MDdlX2Zvcm1hdCwgZHJtLCBoZWFkLCBvY2xhc3MsCiAJCQkgICAgIDB4MDAwMDAwMDQgPDwgKGhlYWQgKiA0KSwgcHduZHcpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvb3ZseTkxN2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL292bHk5MTdlLmMKaW5kZXggNTA1ZmE3ZS4uZTI0ZDZmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvb3ZseTkxN2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9vdmx5OTE3ZS5jCkBAIC0yNiwxMyArMjYsMTAgQEAgb3ZseTkxN2VfZm9ybWF0W10gPSB7CiAJRFJNX0ZPUk1BVF9ZVVlWLAogCURSTV9GT1JNQVRfVVlWWSwKIAlEUk1fRk9STUFUX1hSR0I4ODg4LAotCURSTV9GT1JNQVRfQVJHQjg4ODgsCiAJRFJNX0ZPUk1BVF9YUkdCMTU1NSwKLQlEUk1fRk9STUFUX0FSR0IxNTU1LAogCURSTV9GT1JNQVRfWEJHUjIxMDEwMTAsCi0JRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMCwKIAlEUk1fRk9STUFUX1hSR0IyMTAxMDEwLAotCURSTV9GT1JNQVRfQVJHQjIxMDEwMTAsCisJRFJNX0ZPUk1BVF9YQkdSMTYxNjE2MTZGLAogCTAKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHcuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHcuYwppbmRleCAyODNmZjY5Li41MTkzYjYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC93bmR3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kdy5jCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSA8bnZpZi9jbDAwMDIuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisKICNpbmNsdWRlICJub3V2ZWF1X2JvLmgiCiAKIHN0YXRpYyB2b2lkCkBAIC0xMTgsNiArMTIwLDcgQEAgbnY1MF93bmR3X2ZsdXNoX2NscihzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCB1MzIgKmludGVybG9jaywgYm9vbCBmbHVzaCwKIAlpZiAoY2xyLnNlbWEgKSB3bmR3LT5mdW5jLT4gc2VtYV9jbHIod25kdyk7CiAJaWYgKGNsci5udGZ5ICkgd25kdy0+ZnVuYy0+IG50ZnlfY2xyKHduZHcpOwogCWlmIChjbHIueGx1dCApIHduZHctPmZ1bmMtPiB4bHV0X2Nscih3bmR3KTsKKwlpZiAoY2xyLmNzYyAgKSB3bmR3LT5mdW5jLT4gIGNzY19jbHIod25kdyk7CiAJaWYgKGNsci5pbWFnZSkgd25kdy0+ZnVuYy0+aW1hZ2VfY2xyKHduZHcpOwogCiAJaW50ZXJsb2NrW3duZHctPmludGVybG9jay50eXBlXSB8PSB3bmR3LT5pbnRlcmxvY2suZGF0YTsKQEAgLTE0NSw3ICsxNDgsOSBAQCBudjUwX3duZHdfZmx1c2hfc2V0KHN0cnVjdCBudjUwX3duZHcgKnduZHcsIHUzMiAqaW50ZXJsb2NrLAogCQl3bmR3LT5mdW5jLT54bHV0X3NldCh3bmR3LCBhc3l3KTsKIAl9CiAKKwlpZiAoYXN5dy0+c2V0LmNzYyAgKSB3bmR3LT5mdW5jLT5jc2Nfc2V0ICAod25kdywgYXN5dyk7CiAJaWYgKGFzeXctPnNldC5zY2FsZSkgd25kdy0+ZnVuYy0+c2NhbGVfc2V0KHduZHcsIGFzeXcpOworCWlmIChhc3l3LT5zZXQuYmxlbmQpIHduZHctPmZ1bmMtPmJsZW5kX3NldCh3bmR3LCBhc3l3KTsKIAlpZiAoYXN5dy0+c2V0LnBvaW50KSB7CiAJCWlmIChhc3l3LT5zZXQucG9pbnQgPSBmYWxzZSwgYXN5dy0+c2V0Lm1hc2spCiAJCQlpbnRlcmxvY2tbd25kdy0+aW50ZXJsb2NrLnR5cGVdIHw9IHduZHctPmludGVybG9jay5kYXRhOwpAQCAtMjAyLDE4ICsyMDcsMjAgQEAgc3RhdGljIGludAogbnY1MF93bmR3X2F0b21pY19jaGVja19hY3F1aXJlX3JnYihzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcpCiB7CiAJc3dpdGNoIChhc3l3LT5zdGF0ZS5mYi0+Zm9ybWF0LT5mb3JtYXQpIHsKLQljYXNlIERSTV9GT1JNQVRfQzggICAgICAgICA6IGFzeXctPmltYWdlLmZvcm1hdCA9IDB4MWU7IGJyZWFrOwotCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4OCAgIDoKLQljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODggICA6IGFzeXctPmltYWdlLmZvcm1hdCA9IDB4Y2Y7IGJyZWFrOwotCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjUgICAgIDogYXN5dy0+aW1hZ2UuZm9ybWF0ID0gMHhlODsgYnJlYWs7Ci0JY2FzZSBEUk1fRk9STUFUX1hSR0IxNTU1ICAgOgotCWNhc2UgRFJNX0ZPUk1BVF9BUkdCMTU1NSAgIDogYXN5dy0+aW1hZ2UuZm9ybWF0ID0gMHhlOTsgYnJlYWs7Ci0JY2FzZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgotCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMDogYXN5dy0+aW1hZ2UuZm9ybWF0ID0gMHhkMTsgYnJlYWs7Ci0JY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4ICAgOgotCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4OCAgIDogYXN5dy0+aW1hZ2UuZm9ybWF0ID0gMHhkNTsgYnJlYWs7Ci0JY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOgotCWNhc2UgRFJNX0ZPUk1BVF9BUkdCMjEwMTAxMDogYXN5dy0+aW1hZ2UuZm9ybWF0ID0gMHhkZjsgYnJlYWs7CisJY2FzZSBEUk1fRk9STUFUX0M4ICAgICAgICAgICA6IGFzeXctPmltYWdlLmZvcm1hdCA9IDB4MWU7IGJyZWFrOworCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4OCAgICAgOgorCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4OCAgICAgOiBhc3l3LT5pbWFnZS5mb3JtYXQgPSAweGNmOyBicmVhazsKKwljYXNlIERSTV9GT1JNQVRfUkdCNTY1ICAgICAgIDogYXN5dy0+aW1hZ2UuZm9ybWF0ID0gMHhlODsgYnJlYWs7CisJY2FzZSBEUk1fRk9STUFUX1hSR0IxNTU1ICAgICA6CisJY2FzZSBEUk1fRk9STUFUX0FSR0IxNTU1ICAgICA6IGFzeXctPmltYWdlLmZvcm1hdCA9IDB4ZTk7IGJyZWFrOworCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCAgOgorCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMCAgOiBhc3l3LT5pbWFnZS5mb3JtYXQgPSAweGQxOyBicmVhazsKKwljYXNlIERSTV9GT1JNQVRfWEJHUjg4ODggICAgIDoKKwljYXNlIERSTV9GT1JNQVRfQUJHUjg4ODggICAgIDogYXN5dy0+aW1hZ2UuZm9ybWF0ID0gMHhkNTsgYnJlYWs7CisJY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwICA6CisJY2FzZSBEUk1fRk9STUFUX0FSR0IyMTAxMDEwICA6IGFzeXctPmltYWdlLmZvcm1hdCA9IDB4ZGY7IGJyZWFrOworCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMTYxNjE2MTZGOgorCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZGOiBhc3l3LT5pbWFnZS5mb3JtYXQgPSAweGNhOyBicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0yNjAsNyArMjY3LDcgQEAgbnY1MF93bmR3X2F0b21pY19jaGVja19hY3F1aXJlKHN0cnVjdCBudjUwX3duZHcgKnduZHcsIGJvb2wgbW9kZXNldCwKIAkJCWFzeXctPmltYWdlLnBpdGNoWzBdID0gZmItPmJhc2UucGl0Y2hlc1swXTsKIAkJfQogCi0JCWlmICghKGFzeWgtPnN0YXRlLnBhZ2VmbGlwX2ZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0FTWU5DKSkKKwkJaWYgKCFhc3loLT5zdGF0ZS5hc3luY19mbGlwKQogCQkJYXN5dy0+aW1hZ2UuaW50ZXJ2YWwgPSAxOwogCQllbHNlCiAJCQlhc3l3LT5pbWFnZS5pbnRlcnZhbCA9IDA7CkBAIC0yNzksNiArMjg2LDI4IEBAIG52NTBfd25kd19hdG9taWNfY2hlY2tfYWNxdWlyZShzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBib29sIG1vZGVzZXQsCiAJCQlhc3l3LT5zZXQuc2NhbGUgPSB0cnVlOwogCX0KIAorCWlmICh3bmR3LT5mdW5jLT5ibGVuZF9zZXQpIHsKKwkJYXN5dy0+YmxlbmQuZGVwdGggPSAyNTUgLSBhc3l3LT5zdGF0ZS5ub3JtYWxpemVkX3pwb3M7CisJCWFzeXctPmJsZW5kLmsxID0gYXN5dy0+c3RhdGUuYWxwaGEgPj4gODsKKwkJc3dpdGNoIChhc3l3LT5zdGF0ZS5waXhlbF9ibGVuZF9tb2RlKSB7CisJCWNhc2UgRFJNX01PREVfQkxFTkRfUFJFTVVMVEk6CisJCQlhc3l3LT5ibGVuZC5zcmNfY29sb3IgPSAyOyAvKiBLMSAqLworCQkJYXN5dy0+YmxlbmQuZHN0X2NvbG9yID0gNzsgLyogTkVHX0sxX1RJTUVTX1NSQyAqLworCQkJYnJlYWs7CisJCWNhc2UgRFJNX01PREVfQkxFTkRfQ09WRVJBR0U6CisJCQlhc3l3LT5ibGVuZC5zcmNfY29sb3IgPSA1OyAvKiBLMV9USU1FU19TUkMgKi8KKwkJCWFzeXctPmJsZW5kLmRzdF9jb2xvciA9IDc7IC8qIE5FR19LMV9USU1FU19TUkMgKi8KKwkJCWJyZWFrOworCQljYXNlIERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkU6CisJCWRlZmF1bHQ6CisJCQlhc3l3LT5ibGVuZC5zcmNfY29sb3IgPSAyOyAvKiBLMSAqLworCQkJYXN5dy0+YmxlbmQuZHN0X2NvbG9yID0gNDsgLyogTkVHX0sxICovCisJCQlicmVhazsKKwkJfQorCQlpZiAobWVtY21wKCZhcm13LT5ibGVuZCwgJmFzeXctPmJsZW5kLCBzaXplb2YoYXN5dy0+YmxlbmQpKSkKKwkJCWFzeXctPnNldC5ibGVuZCA9IHRydWU7CisJfQorCiAJaWYgKHduZHctPmltbWQpIHsKIAkJYXN5dy0+cG9pbnQueCA9IGFzeXctPnN0YXRlLmNydGNfeDsKIAkJYXN5dy0+cG9pbnQueSA9IGFzeXctPnN0YXRlLmNydGNfeTsKQEAgLTMyMCw3ICszNDksOSBAQCBudjUwX3duZHdfYXRvbWljX2NoZWNrX2x1dChzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LAogCQlhc3loLT53bmR3Lm9sdXQgJj0gfkJJVCh3bmR3LT5pZCk7CiAJfQogCi0JaWYgKCFpbHV0ICYmIHduZHctPmZ1bmMtPmlsdXRfaWRlbnRpdHkpIHsKKwlpZiAoIWlsdXQgJiYgd25kdy0+ZnVuYy0+aWx1dF9pZGVudGl0eSAmJgorCSAgICBhc3l3LT5zdGF0ZS5mYi0+Zm9ybWF0LT5mb3JtYXQgIT0gRFJNX0ZPUk1BVF9YQkdSMTYxNjE2MTZGICYmCisJICAgIGFzeXctPnN0YXRlLmZiLT5mb3JtYXQtPmZvcm1hdCAhPSBEUk1fRk9STUFUX0FCR1IxNjE2MTYxNkYpIHsKIAkJc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiBkdW1teSA9IHt9OwogCQlpbHV0ID0gJmR1bW15OwogCX0KQEAgLTMzMiw2ICszNjMsOCBAQCBudjUwX3duZHdfYXRvbWljX2NoZWNrX2x1dChzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LAogCQlhc3l3LT54bHV0LmhhbmRsZSA9IHduZHctPnduZHcudnJhbS5oYW5kbGU7CiAJCWFzeXctPnhsdXQuaS5idWZmZXIgPSAhYXN5dy0+eGx1dC5pLmJ1ZmZlcjsKIAkJYXN5dy0+c2V0LnhsdXQgPSB0cnVlOworCX0gZWxzZSB7CisJCWFzeXctPmNsci54bHV0ID0gYXJtdy0+eGx1dC5oYW5kbGUgIT0gMDsKIAl9CiAKIAkvKiBIYW5kbGUgc2V0dGluZyBiYXNlIFNFVF9PVVRQVVRfTFVUX0xPX0VOQUJMRV9VU0VfQ09SRV9MVVQuICovCkBAIC0zMzksOCArMzcyLDE4IEBAIG52NTBfd25kd19hdG9taWNfY2hlY2tfbHV0KHN0cnVjdCBudjUwX3duZHcgKnduZHcsCiAJICAgICghYXJtdy0+dmlzaWJsZSB8fCAoYXJtdy0+eGx1dC5oYW5kbGUgJiYgIWFzeXctPnhsdXQuaGFuZGxlKSkpCiAJCWFzeXctPnNldC54bHV0ID0gdHJ1ZTsKIAorCWlmICh3bmR3LT5mdW5jLT5jc2MgJiYgYXN5aC0+c3RhdGUuY3RtKSB7CisJCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfY3RtICpjdG0gPSBhc3loLT5zdGF0ZS5jdG0tPmRhdGE7CisJCXduZHctPmZ1bmMtPmNzYyh3bmR3LCBhc3l3LCBjdG0pOworCQlhc3l3LT5jc2MudmFsaWQgPSB0cnVlOworCQlhc3l3LT5zZXQuY3NjID0gdHJ1ZTsKKwl9IGVsc2UgeworCQlhc3l3LT5jc2MudmFsaWQgPSBmYWxzZTsKKwkJYXN5dy0+Y2xyLmNzYyA9IGFybXctPmNzYy52YWxpZDsKKwl9CisKIAkvKiBDYW4ndCBkbyBhbiBpbW1lZGlhdGUgZmxpcCB3aGlsZSBjaGFuZ2luZyB0aGUgTFVULiAqLwotCWFzeWgtPnN0YXRlLnBhZ2VmbGlwX2ZsYWdzICY9IH5EUk1fTU9ERV9QQUdFX0ZMSVBfQVNZTkM7CisJYXN5aC0+c3RhdGUuYXN5bmNfZmxpcCA9IGZhbHNlOwogfQogCiBzdGF0aWMgaW50CkBAIC00MDgsNiArNDUxLDcgQEAgbnY1MF93bmR3X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiAJCWFzeXctPmNsci5udGZ5ID0gYXJtdy0+bnRmeS5oYW5kbGUgIT0gMDsKIAkJYXN5dy0+Y2xyLnNlbWEgPSBhcm13LT5zZW1hLmhhbmRsZSAhPSAwOwogCQlhc3l3LT5jbHIueGx1dCA9IGFybXctPnhsdXQuaGFuZGxlICE9IDA7CisJCWFzeXctPmNsci5jc2MgID0gYXJtdy0+Y3NjLnZhbGlkOwogCQlpZiAod25kdy0+ZnVuYy0+aW1hZ2VfY2xyKQogCQkJYXN5dy0+Y2xyLmltYWdlID0gYXJtdy0+aW1hZ2UuaGFuZGxlWzBdICE9IDA7CiAJfQpAQCAtNDU3LDcgKzUwMSw3IEBAIG52NTBfd25kd19wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIAkJYXN5dy0+aW1hZ2UuaGFuZGxlWzBdID0gY3R4ZG1hLT5vYmplY3QuaGFuZGxlOwogCX0KIAotCWFzeXctPnN0YXRlLmZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShmYi0+bnZiby0+Ym8ucmVzdik7CisJYXN5dy0+c3RhdGUuZmVuY2UgPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3UoZmItPm52Ym8tPmJvLmJhc2UucmVzdik7CiAJYXN5dy0+aW1hZ2Uub2Zmc2V0WzBdID0gZmItPm52Ym8tPmJvLm9mZnNldDsKIAogCWlmICh3bmR3LT5mdW5jLT5wcmVwYXJlKSB7CkBAIC00OTksNiArNTQzLDcgQEAgbnY1MF93bmR3X2F0b21pY19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiAJYXN5dy0+bnRmeSA9IGFybXctPm50Znk7CiAJYXN5dy0+aWx1dCA9IE5VTEw7CiAJYXN5dy0+eGx1dCA9IGFybXctPnhsdXQ7CisJYXN5dy0+Y3NjICA9IGFybXctPmNzYzsKIAlhc3l3LT5pbWFnZSA9IGFybXctPmltYWdlOwogCWFzeXctPnBvaW50ID0gYXJtdy0+cG9pbnQ7CiAJYXN5dy0+Y2xyLm1hc2sgPSAwOwpAQCAtNTA2LDYgKzU1MSwxMyBAQCBudjUwX3duZHdfYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAlyZXR1cm4gJmFzeXctPnN0YXRlOwogfQogCitzdGF0aWMgaW50CitudjUwX3duZHdfenBvc19kZWZhdWx0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQoreworCXJldHVybiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkgPyAwIDoKKwkgICAgICAgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX09WRVJMQVkpID8gMSA6IDI1NTsKK30KKwogc3RhdGljIHZvaWQKIG52NTBfd25kd19yZXNldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIHsKQEAgLTUxNiw5ICs1NjgsMTAgQEAgbnY1MF93bmR3X3Jlc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogCiAJaWYgKHBsYW5lLT5zdGF0ZSkKIAkJcGxhbmUtPmZ1bmNzLT5hdG9taWNfZGVzdHJveV9zdGF0ZShwbGFuZSwgcGxhbmUtPnN0YXRlKTsKLQlwbGFuZS0+c3RhdGUgPSAmYXN5dy0+c3RhdGU7Ci0JcGxhbmUtPnN0YXRlLT5wbGFuZSA9IHBsYW5lOwotCXBsYW5lLT5zdGF0ZS0+cm90YXRpb24gPSBEUk1fTU9ERV9ST1RBVEVfMDsKKworCV9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQocGxhbmUsICZhc3l3LT5zdGF0ZSk7CisJcGxhbmUtPnN0YXRlLT56cG9zID0gbnY1MF93bmR3X3pwb3NfZGVmYXVsdChwbGFuZSk7CisJcGxhbmUtPnN0YXRlLT5ub3JtYWxpemVkX3pwb3MgPSBudjUwX3duZHdfenBvc19kZWZhdWx0KHBsYW5lKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTYxMyw2ICs2NjYsMzAgQEAgbnY1MF93bmR3X25ld18oY29uc3Qgc3RydWN0IG52NTBfd25kd19mdW5jICpmdW5jLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCX0KIAogCXduZHctPm5vdGlmeS5mdW5jID0gbnY1MF93bmR3X25vdGlmeTsKKworCWlmICh3bmR3LT5mdW5jLT5ibGVuZF9zZXQpIHsKKwkJcmV0ID0gZHJtX3BsYW5lX2NyZWF0ZV96cG9zX3Byb3BlcnR5KCZ3bmR3LT5wbGFuZSwKKwkJCQludjUwX3duZHdfenBvc19kZWZhdWx0KCZ3bmR3LT5wbGFuZSksIDAsIDI1NCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCXJldCA9IGRybV9wbGFuZV9jcmVhdGVfYWxwaGFfcHJvcGVydHkoJnduZHctPnBsYW5lKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0ID0gZHJtX3BsYW5lX2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KCZ3bmR3LT5wbGFuZSwKKwkJCQlCSVQoRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORSkgfAorCQkJCUJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgfAorCQkJCUJJVChEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRSkpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9IGVsc2UgeworCQlyZXQgPSBkcm1fcGxhbmVfY3JlYXRlX3pwb3NfaW1tdXRhYmxlX3Byb3BlcnR5KCZ3bmR3LT5wbGFuZSwKKwkJCQludjUwX3duZHdfenBvc19kZWZhdWx0KCZ3bmR3LT5wbGFuZSkpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kdy5oIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kdy5oCmluZGV4IDAzZjNkOGQuLmM2M2JkM2JkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC93bmR3LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kdy5oCkBAIC02NSw2ICs2NSwxMCBAQCBzdHJ1Y3QgbnY1MF93bmR3X2Z1bmMgewogCWludCAoKm50Znlfd2FpdF9iZWd1bikoc3RydWN0IG5vdXZlYXVfYm8gKiwgdTMyIG9mZnNldCwKIAkJCSAgICAgICBzdHJ1Y3QgbnZpZl9kZXZpY2UgKik7CiAJdm9pZCAoKmlsdXQpKHN0cnVjdCBudjUwX3duZHcgKiwgc3RydWN0IG52NTBfd25kd19hdG9tICopOworCXZvaWQgKCpjc2MpKHN0cnVjdCBudjUwX3duZHcgKiwgc3RydWN0IG52NTBfd25kd19hdG9tICosCisJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqKTsKKwl2b2lkICgqY3NjX3NldCkoc3RydWN0IG52NTBfd25kdyAqLCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKik7CisJdm9pZCAoKmNzY19jbHIpKHN0cnVjdCBudjUwX3duZHcgKik7CiAJYm9vbCBpbHV0X2lkZW50aXR5OwogCWJvb2wgb2x1dF9jb3JlOwogCXZvaWQgKCp4bHV0X3NldCkoc3RydWN0IG52NTBfd25kdyAqLCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKik7CkBAIC03Miw2ICs3Niw3IEBAIHN0cnVjdCBudjUwX3duZHdfZnVuYyB7CiAJdm9pZCAoKmltYWdlX3NldCkoc3RydWN0IG52NTBfd25kdyAqLCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKik7CiAJdm9pZCAoKmltYWdlX2Nscikoc3RydWN0IG52NTBfd25kdyAqKTsKIAl2b2lkICgqc2NhbGVfc2V0KShzdHJ1Y3QgbnY1MF93bmR3ICosIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqKTsKKwl2b2lkICgqYmxlbmRfc2V0KShzdHJ1Y3QgbnY1MF93bmR3ICosIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqKTsKIAogCXZvaWQgKCp1cGRhdGUpKHN0cnVjdCBudjUwX3duZHcgKiwgdTMyICppbnRlcmxvY2spOwogfTsKQEAgLTgxLDYgKzg2LDkgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgbnY1MF93bmR3Owogdm9pZCBiYXNlNTA3Y19udGZ5X3Jlc2V0KHN0cnVjdCBub3V2ZWF1X2JvICosIHUzMik7CiBpbnQgYmFzZTUwN2NfbnRmeV93YWl0X2JlZ3VuKHN0cnVjdCBub3V2ZWF1X2JvICosIHUzMiwgc3RydWN0IG52aWZfZGV2aWNlICopOwogCit2b2lkIGJhc2U5MDdjX2NzYyhzdHJ1Y3QgbnY1MF93bmR3ICosIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqLAorCQkgIGNvbnN0IHN0cnVjdCBkcm1fY29sb3JfY3RtICopOworCiBzdHJ1Y3QgbnY1MF93aW1tX2Z1bmMgewogCXZvaWQgKCpwb2ludCkoc3RydWN0IG52NTBfd25kdyAqLCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKik7CiAKQEAgLTEwMiw4ICsxMTAsOCBAQCB2b2lkIHduZHdjMzdlX3NlbWFfc2V0KHN0cnVjdCBudjUwX3duZHcgKiwgc3RydWN0IG52NTBfd25kd19hdG9tICopOwogdm9pZCB3bmR3YzM3ZV9zZW1hX2NscihzdHJ1Y3QgbnY1MF93bmR3ICopOwogdm9pZCB3bmR3YzM3ZV9udGZ5X3NldChzdHJ1Y3QgbnY1MF93bmR3ICosIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqKTsKIHZvaWQgd25kd2MzN2VfbnRmeV9jbHIoc3RydWN0IG52NTBfd25kdyAqKTsKLXZvaWQgd25kd2MzN2VfaW1hZ2Vfc2V0KHN0cnVjdCBudjUwX3duZHcgKiwgc3RydWN0IG52NTBfd25kd19hdG9tICopOwogdm9pZCB3bmR3YzM3ZV9pbWFnZV9jbHIoc3RydWN0IG52NTBfd25kdyAqKTsKK3ZvaWQgd25kd2MzN2VfYmxlbmRfc2V0KHN0cnVjdCBudjUwX3duZHcgKiwgc3RydWN0IG52NTBfd25kd19hdG9tICopOwogdm9pZCB3bmR3YzM3ZV91cGRhdGUoc3RydWN0IG52NTBfd25kdyAqLCB1MzIgKik7CiAKIGludCB3bmR3YzU3ZV9uZXcoc3RydWN0IG5vdXZlYXVfZHJtICosIGVudW0gZHJtX3BsYW5lX3R5cGUsIGludCwgczMyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kd2MzN2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHdjMzdlLmMKaW5kZXggZTUyYTg1Yy4uMGY5NDAyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kd2MzN2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC93bmR3YzM3ZS5jCkBAIC0yOSw2ICsyOSwyMyBAQAogI2luY2x1ZGUgPG52aWYvY2xjMzdlLmg+CiAKIHN0YXRpYyB2b2lkCit3bmR3YzM3ZV9jc2NfY2xyKHN0cnVjdCBudjUwX3duZHcgKnduZHcpCit7Cit9CisKK3N0YXRpYyB2b2lkCit3bmR3YzM3ZV9jc2Nfc2V0KHN0cnVjdCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dykKK3sKKwl1MzIgKnB1c2gsIGk7CisJaWYgKChwdXNoID0gZXZvX3dhaXQoJnduZHctPnduZHcsIDEzKSkpIHsKKwkJIGV2b19tdGhkKHB1c2gsIDB4MDJiYywgMTIpOworCQkgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspCisJCQkgIGV2b19kYXRhKHB1c2gsIGFzeXctPmNzYy5tYXRyaXhbaV0pOworCQkgZXZvX2tpY2socHVzaCwgJnduZHctPnduZHcpOworCX0KK30KKworc3RhdGljIHZvaWQKIHduZHdjMzdlX2lsdXRfY2xyKHN0cnVjdCBudjUwX3duZHcgKnduZHcpCiB7CiAJdTMyICpwdXNoOwpAQCAtNjUsNiArODIsMjYgQEAgd25kd2MzN2VfaWx1dChzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcpCiB9CiAKIHZvaWQKK3duZHdjMzdlX2JsZW5kX3NldChzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcpCit7CisJdTMyICpwdXNoOworCWlmICgocHVzaCA9IGV2b193YWl0KCZ3bmR3LT53bmR3LCA4KSkpIHsKKwkJZXZvX210aGQocHVzaCwgMHgwMmVjLCA3KTsKKwkJZXZvX2RhdGEocHVzaCwgYXN5dy0+YmxlbmQuZGVwdGggPDwgNCk7CisJCWV2b19kYXRhKHB1c2gsIGFzeXctPmJsZW5kLmsxKTsKKwkJZXZvX2RhdGEocHVzaCwgYXN5dy0+YmxlbmQuZHN0X2NvbG9yIDw8IDEyIHwKKwkJCSAgICAgICBhc3l3LT5ibGVuZC5kc3RfY29sb3IgPDwgOCB8CisJCQkgICAgICAgYXN5dy0+YmxlbmQuc3JjX2NvbG9yIDw8IDQgfAorCQkJICAgICAgIGFzeXctPmJsZW5kLnNyY19jb2xvcik7CisJCWV2b19kYXRhKHB1c2gsIDB4ZmZmZjAwMDApOworCQlldm9fZGF0YShwdXNoLCAweGZmZmYwMDAwKTsKKwkJZXZvX2RhdGEocHVzaCwgMHhmZmZmMDAwMCk7CisJCWV2b19kYXRhKHB1c2gsIDB4ZmZmZjAwMDApOworCQlldm9fa2ljayhwdXNoLCAmd25kdy0+d25kdyk7CisJfQorfQorCit2b2lkCiB3bmR3YzM3ZV9pbWFnZV9jbHIoc3RydWN0IG52NTBfd25kdyAqd25kdykKIHsKIAl1MzIgKnB1c2g7CkBAIC03NywxMiArMTE0LDEyIEBAIHduZHdjMzdlX2ltYWdlX2NscihzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3KQogCX0KIH0KIAotdm9pZAorc3RhdGljIHZvaWQKIHduZHdjMzdlX2ltYWdlX3NldChzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcpCiB7CiAJdTMyICpwdXNoOwogCi0JaWYgKCEocHVzaCA9IGV2b193YWl0KCZ3bmR3LT53bmR3LCAyNSkpKQorCWlmICghKHB1c2ggPSBldm9fd2FpdCgmd25kdy0+d25kdywgMTcpKSkKIAkJcmV0dXJuOwogCiAJZXZvX210aGQocHVzaCwgMHgwMzA4LCAxKTsKQEAgLTkwLDcgKzEyNyw5IEBAIHduZHdjMzdlX2ltYWdlX3NldChzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcpCiAJZXZvX210aGQocHVzaCwgMHgwMjI0LCA0KTsKIAlldm9fZGF0YShwdXNoLCBhc3l3LT5pbWFnZS5oIDw8IDE2IHwgYXN5dy0+aW1hZ2Uudyk7CiAJZXZvX2RhdGEocHVzaCwgYXN5dy0+aW1hZ2UubGF5b3V0IDw8IDQgfCBhc3l3LT5pbWFnZS5ibG9ja2gpOwotCWV2b19kYXRhKHB1c2gsIGFzeXctPmltYWdlLmNvbG9yc3BhY2UgPDwgOCB8IGFzeXctPmltYWdlLmZvcm1hdCk7CisJZXZvX2RhdGEocHVzaCwgYXN5dy0+Y3NjLnZhbGlkIDw8IDE3IHwKKwkJICAgICAgIGFzeXctPmltYWdlLmNvbG9yc3BhY2UgPDwgOCB8CisJCSAgICAgICBhc3l3LT5pbWFnZS5mb3JtYXQpOwogCWV2b19kYXRhKHB1c2gsIGFzeXctPmltYWdlLmJsb2Nrc1swXSB8IChhc3l3LT5pbWFnZS5waXRjaFswXSA+PiA2KSk7CiAJZXZvX210aGQocHVzaCwgMHgwMjQwLCAxKTsKIAlldm9fZGF0YShwdXNoLCBhc3l3LT5pbWFnZS5oYW5kbGVbMF0pOwpAQCAtMTA1LDE2ICsxNDQsNiBAQCB3bmR3YzM3ZV9pbWFnZV9zZXQoc3RydWN0IG52NTBfd25kdyAqd25kdywgc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3KQogCWV2b19tdGhkKHB1c2gsIDB4MDJhNCwgMSk7CiAJZXZvX2RhdGEocHVzaCwgYXN5dy0+c3RhdGUuY3J0Y19oIDw8IDE2IHwKIAkJICAgICAgIGFzeXctPnN0YXRlLmNydGNfdyk7Ci0KLQkvKlhYWDogQ29tcG9zaXRpb24tcmVsYXRlZCBzdHVmZi4gIE5lZWQgdG8gaW1wbGVtZW50IHByb3Blcmx5LiAqLwotCWV2b19tdGhkKHB1c2gsIDB4MDJlYywgMSk7Ci0JZXZvX2RhdGEocHVzaCwgKDIgLSAod25kdy0+aWQgJiAxKSkgPDwgNCk7Ci0JZXZvX210aGQocHVzaCwgMHgwMmY0LCA1KTsKLQlldm9fZGF0YShwdXNoLCAweDAwMDAwMDExKTsKLQlldm9fZGF0YShwdXNoLCAweGZmZmYwMDAwKTsKLQlldm9fZGF0YShwdXNoLCAweGZmZmYwMDAwKTsKLQlldm9fZGF0YShwdXNoLCAweGZmZmYwMDAwKTsKLQlldm9fZGF0YShwdXNoLCAweGZmZmYwMDAwKTsKIAlldm9fa2ljayhwdXNoLCAmd25kdy0+d25kdyk7CiB9CiAKQEAgLTIxNiw2ICsyNDUsOCBAQCB3bmR3YzM3ZV9mb3JtYXRbXSA9IHsKIAlEUk1fRk9STUFUX0FCR1I4ODg4LAogCURSTV9GT1JNQVRfWFJHQjIxMDEwMTAsCiAJRFJNX0ZPUk1BVF9BUkdCMjEwMTAxMCwKKwlEUk1fRk9STUFUX1hCR1IxNjE2MTYxNkYsCisJRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZGLAogCTAKIH07CiAKQEAgLTIzMiw4ICsyNjMsMTIgQEAgd25kd2MzN2UgPSB7CiAJLmlsdXQgPSB3bmR3YzM3ZV9pbHV0LAogCS54bHV0X3NldCA9IHduZHdjMzdlX2lsdXRfc2V0LAogCS54bHV0X2NsciA9IHduZHdjMzdlX2lsdXRfY2xyLAorCS5jc2MgPSBiYXNlOTA3Y19jc2MsCisJLmNzY19zZXQgPSB3bmR3YzM3ZV9jc2Nfc2V0LAorCS5jc2NfY2xyID0gd25kd2MzN2VfY3NjX2NsciwKIAkuaW1hZ2Vfc2V0ID0gd25kd2MzN2VfaW1hZ2Vfc2V0LAogCS5pbWFnZV9jbHIgPSB3bmR3YzM3ZV9pbWFnZV9jbHIsCisJLmJsZW5kX3NldCA9IHduZHdjMzdlX2JsZW5kX3NldCwKIAkudXBkYXRlID0gd25kd2MzN2VfdXBkYXRlLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kd2M1N2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHdjNTdlLmMKaW5kZXggYmE4OWYxYS4uYTMxMWM3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kd2M1N2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC93bmR3YzU3ZS5jCkBAIC0yOSw2ICsyOSw3MiBAQAogI2luY2x1ZGUgPG52aWYvY2xjMzdlLmg+CiAKIHN0YXRpYyB2b2lkCit3bmR3YzU3ZV9pbWFnZV9zZXQoc3RydWN0IG52NTBfd25kdyAqd25kdywgc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3KQoreworCXUzMiAqcHVzaDsKKworCWlmICghKHB1c2ggPSBldm9fd2FpdCgmd25kdy0+d25kdywgMTcpKSkKKwkJcmV0dXJuOworCisJZXZvX210aGQocHVzaCwgMHgwMzA4LCAxKTsKKwlldm9fZGF0YShwdXNoLCBhc3l3LT5pbWFnZS5tb2RlIDw8IDQgfCBhc3l3LT5pbWFnZS5pbnRlcnZhbCk7CisJZXZvX210aGQocHVzaCwgMHgwMjI0LCA0KTsKKwlldm9fZGF0YShwdXNoLCBhc3l3LT5pbWFnZS5oIDw8IDE2IHwgYXN5dy0+aW1hZ2Uudyk7CisJZXZvX2RhdGEocHVzaCwgYXN5dy0+aW1hZ2UubGF5b3V0IDw8IDQgfCBhc3l3LT5pbWFnZS5ibG9ja2gpOworCWV2b19kYXRhKHB1c2gsIGFzeXctPmltYWdlLmNvbG9yc3BhY2UgPDwgOCB8CisJCSAgICAgICBhc3l3LT5pbWFnZS5mb3JtYXQpOworCWV2b19kYXRhKHB1c2gsIGFzeXctPmltYWdlLmJsb2Nrc1swXSB8IChhc3l3LT5pbWFnZS5waXRjaFswXSA+PiA2KSk7CisJZXZvX210aGQocHVzaCwgMHgwMjQwLCAxKTsKKwlldm9fZGF0YShwdXNoLCBhc3l3LT5pbWFnZS5oYW5kbGVbMF0pOworCWV2b19tdGhkKHB1c2gsIDB4MDI2MCwgMSk7CisJZXZvX2RhdGEocHVzaCwgYXN5dy0+aW1hZ2Uub2Zmc2V0WzBdID4+IDgpOworCWV2b19tdGhkKHB1c2gsIDB4MDI5MCwgMSk7CisJZXZvX2RhdGEocHVzaCwgKGFzeXctPnN0YXRlLnNyY195ID4+IDE2KSA8PCAxNiB8CisJCSAgICAgICAoYXN5dy0+c3RhdGUuc3JjX3ggPj4gMTYpKTsKKwlldm9fbXRoZChwdXNoLCAweDAyOTgsIDEpOworCWV2b19kYXRhKHB1c2gsIChhc3l3LT5zdGF0ZS5zcmNfaCA+PiAxNikgPDwgMTYgfAorCQkgICAgICAgKGFzeXctPnN0YXRlLnNyY193ID4+IDE2KSk7CisJZXZvX210aGQocHVzaCwgMHgwMmE0LCAxKTsKKwlldm9fZGF0YShwdXNoLCBhc3l3LT5zdGF0ZS5jcnRjX2ggPDwgMTYgfAorCQkgICAgICAgYXN5dy0+c3RhdGUuY3J0Y193KTsKKwlldm9fa2ljayhwdXNoLCAmd25kdy0+d25kdyk7Cit9CisKK3N0YXRpYyB2b2lkCit3bmR3YzU3ZV9jc2NfY2xyKHN0cnVjdCBudjUwX3duZHcgKnduZHcpCit7CisJdTMyICpwdXNoOworCWlmICgocHVzaCA9IGV2b193YWl0KCZ3bmR3LT53bmR3LCAxMykpKSB7CisJCSBldm9fbXRoZChwdXNoLCAweDA0MDAsIDEyKTsKKwkJIGV2b19kYXRhKHB1c2gsIDB4MDAwMTAwMDApOworCQkgZXZvX2RhdGEocHVzaCwgMHgwMDAwMDAwMCk7CisJCSBldm9fZGF0YShwdXNoLCAweDAwMDAwMDAwKTsKKwkJIGV2b19kYXRhKHB1c2gsIDB4MDAwMDAwMDApOworCQkgZXZvX2RhdGEocHVzaCwgMHgwMDAwMDAwMCk7CisJCSBldm9fZGF0YShwdXNoLCAweDAwMDEwMDAwKTsKKwkJIGV2b19kYXRhKHB1c2gsIDB4MDAwMDAwMDApOworCQkgZXZvX2RhdGEocHVzaCwgMHgwMDAwMDAwMCk7CisJCSBldm9fZGF0YShwdXNoLCAweDAwMDAwMDAwKTsKKwkJIGV2b19kYXRhKHB1c2gsIDB4MDAwMDAwMDApOworCQkgZXZvX2RhdGEocHVzaCwgMHgwMDAxMDAwMCk7CisJCSBldm9fZGF0YShwdXNoLCAweDAwMDAwMDAwKTsKKwkJIGV2b19raWNrKHB1c2gsICZ3bmR3LT53bmR3KTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCit3bmR3YzU3ZV9jc2Nfc2V0KHN0cnVjdCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dykKK3sKKwl1MzIgKnB1c2gsIGk7CisJaWYgKChwdXNoID0gZXZvX3dhaXQoJnduZHctPnduZHcsIDEzKSkpIHsKKwkJIGV2b19tdGhkKHB1c2gsIDB4MDQwMCwgMTIpOworCQkgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspCisJCQkgIGV2b19kYXRhKHB1c2gsIGFzeXctPmNzYy5tYXRyaXhbaV0pOworCQkgZXZvX2tpY2socHVzaCwgJnduZHctPnduZHcpOworCX0KK30KKworc3RhdGljIHZvaWQKIHduZHdjNTdlX2lsdXRfY2xyKHN0cnVjdCBudjUwX3duZHcgKnduZHcpCiB7CiAJdTMyICpwdXNoOwpAQCAtMTE5LDggKzE4NSwxMiBAQCB3bmR3YzU3ZSA9IHsKIAkuaWx1dF9pZGVudGl0eSA9IHRydWUsCiAJLnhsdXRfc2V0ID0gd25kd2M1N2VfaWx1dF9zZXQsCiAJLnhsdXRfY2xyID0gd25kd2M1N2VfaWx1dF9jbHIsCi0JLmltYWdlX3NldCA9IHduZHdjMzdlX2ltYWdlX3NldCwKKwkuY3NjID0gYmFzZTkwN2NfY3NjLAorCS5jc2Nfc2V0ID0gd25kd2M1N2VfY3NjX3NldCwKKwkuY3NjX2NsciA9IHduZHdjNTdlX2NzY19jbHIsCisJLmltYWdlX3NldCA9IHduZHdjNTdlX2ltYWdlX3NldCwKIAkuaW1hZ2VfY2xyID0gd25kd2MzN2VfaW1hZ2VfY2xyLAorCS5ibGVuZF9zZXQgPSB3bmR3YzM3ZV9ibGVuZF9zZXQsCiAJLnVwZGF0ZSA9IHduZHdjMzdlX3VwZGF0ZSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZrbS9zdWJkZXYvYmlvcy9leHRkZXYuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZrbS9zdWJkZXYvYmlvcy9leHRkZXYuaAppbmRleCBmMjlmMmQ4Li45YWMzZGRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L2Jpb3MvZXh0ZGV2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1YmRldi9iaW9zL2V4dGRldi5oCkBAIC0yNiw0ICsyNiw2IEBAIG52Ymlvc19leHRkZXZfcGFyc2Uoc3RydWN0IG52a21fYmlvcyAqLCBpbnQsIHN0cnVjdCBudmJpb3NfZXh0ZGV2X2Z1bmMgKik7CiBpbnQKIG52Ymlvc19leHRkZXZfZmluZChzdHJ1Y3QgbnZrbV9iaW9zICosIGVudW0gbnZiaW9zX2V4dGRldl90eXBlLAogCQkgICBzdHJ1Y3QgbnZiaW9zX2V4dGRldl9mdW5jICopOworCitib29sIG52Ymlvc19leHRkZXZfc2tpcF9wcm9iZShzdHJ1Y3QgbnZrbV9iaW9zICopOwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L2Jpb3MvZ3Bpby5oIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1YmRldi9iaW9zL2dwaW8uaAppbmRleCA3YzRmMDAzLi4zZjc4NWYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L2Jpb3MvZ3Bpby5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZrbS9zdWJkZXYvYmlvcy9ncGlvLmgKQEAgLTMsMTAgKzMsMTMgQEAKICNkZWZpbmUgX19OVkJJT1NfR1BJT19IX18KIGVudW0gZGNiX2dwaW9fZnVuY19uYW1lIHsKIAlEQ0JfR1BJT19QQU5FTF9QT1dFUiA9IDB4MDEsCi0JRENCX0dQSU9fVFZEQUMwID0gMHgwYywKLQlEQ0JfR1BJT19UVkRBQzEgPSAweDJkLAogCURDQl9HUElPX0ZBTiA9IDB4MDksCisJRENCX0dQSU9fVFZEQUMwID0gMHgwYywKKwlEQ0JfR1BJT19USEVSTV9FWFRfUE9XRVJfRVZFTlQgPSAweDEwLAorCURDQl9HUElPX1RWREFDMSA9IDB4MmQsCiAJRENCX0dQSU9fRkFOX1NFTlNFID0gMHgzZCwKKwlEQ0JfR1BJT19QT1dFUl9BTEVSVCA9IDB4NGMsCisJRENCX0dQSU9fRVhUX1BPV0VSX0xPVyA9IDB4NzksCiAJRENCX0dQSU9fTE9HT19MRURfUFdNID0gMHg4NCwKIAlEQ0JfR1BJT19VTlVTRUQgPSAweGZmLAogCURDQl9HUElPX1ZJRDAgPSAweDA0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1YmRldi9wbXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZrbS9zdWJkZXYvcG11LmgKaW5kZXggMjRmYmNjYy4uNDc1MjAwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1YmRldi9wbXUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L3BtdS5oCkBAIC0zMCw2ICszMCw3IEBAIHN0cnVjdCBudmttX3BtdSB7CiBpbnQgbnZrbV9wbXVfc2VuZChzdHJ1Y3QgbnZrbV9wbXUgKiwgdTMyIHJlcGx5WzJdLCB1MzIgcHJvY2VzcywKIAkJICB1MzIgbWVzc2FnZSwgdTMyIGRhdGEwLCB1MzIgZGF0YTEpOwogdm9pZCBudmttX3BtdV9wZ29iKHN0cnVjdCBudmttX3BtdSAqLCBib29sIGVuYWJsZSk7Citib29sIG52a21fcG11X2Zhbl9jb250cm9sbGVkKHN0cnVjdCBudmttX2RldmljZSAqKTsKIAogaW50IGd0MjE1X3BtdV9uZXcoc3RydWN0IG52a21fZGV2aWNlICosIGludCwgc3RydWN0IG52a21fcG11ICoqKTsKIGludCBnZjEwMF9wbXVfbmV3KHN0cnVjdCBudmttX2RldmljZSAqLCBpbnQsIHN0cnVjdCBudmttX3BtdSAqKik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2FiaTE2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2FiaTE2LmMKaW5kZXggYzNmZDVkZC4uZTJiYWUxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9hYmkxNi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYWJpMTYuYwpAQCAtMTM5LDcgKzEzOSw3IEBAIG5vdXZlYXVfYWJpMTZfY2hhbl9maW5pKHN0cnVjdCBub3V2ZWF1X2FiaTE2ICphYmkxNiwKIAlpZiAoY2hhbi0+bnRmeSkgewogCQlub3V2ZWF1X3ZtYV9kZWwoJmNoYW4tPm50Znlfdm1hKTsKIAkJbm91dmVhdV9ib191bnBpbihjaGFuLT5udGZ5KTsKLQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZjaGFuLT5udGZ5LT5nZW0pOworCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJmNoYW4tPm50ZnktPmJvLmJhc2UpOwogCX0KIAogCWlmIChjaGFuLT5oZWFwLmJsb2NrX3NpemUpCkBAIC0yNDUsMTIgKzI0NSw2IEBAIG5vdXZlYXVfYWJpMTZfaW9jdGxfZ2V0cGFyYW0oQUJJMTZfSU9DVExfQVJHUykKIH0KIAogaW50Ci1ub3V2ZWF1X2FiaTE2X2lvY3RsX3NldHBhcmFtKEFCSTE2X0lPQ1RMX0FSR1MpCi17Ci0JcmV0dXJuIC1FSU5WQUw7Ci19Ci0KLWludAogbm91dmVhdV9hYmkxNl9pb2N0bF9jaGFubmVsX2FsbG9jKEFCSTE2X0lPQ1RMX0FSR1MpCiB7CiAJc3RydWN0IGRybV9ub3V2ZWF1X2NoYW5uZWxfYWxsb2MgKmluaXQgPSBkYXRhOwpAQCAtMzQ1LDcgKzMzOSw3IEBAIG5vdXZlYXVfYWJpMTZfaW9jdGxfY2hhbm5lbF9hbGxvYyhBQkkxNl9JT0NUTF9BUkdTKQogCQkJZ290byBkb25lOwogCX0KIAotCXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxlX3ByaXYsICZjaGFuLT5udGZ5LT5nZW0sCisJcmV0ID0gZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbGVfcHJpdiwgJmNoYW4tPm50ZnktPmJvLmJhc2UsCiAJCQkJICAgICZpbml0LT5ub3RpZmllcl9oYW5kbGUpOwogCWlmIChyZXQpCiAJCWdvdG8gZG9uZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYWJpMTYuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYWJpMTYuaAppbmRleCAxOTU1NDY3Li43MGY2YWE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2FiaTE2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9hYmkxNi5oCkBAIC02LDcgKzYsNiBAQAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2CiAKIGludCBub3V2ZWF1X2FiaTE2X2lvY3RsX2dldHBhcmFtKEFCSTE2X0lPQ1RMX0FSR1MpOwotaW50IG5vdXZlYXVfYWJpMTZfaW9jdGxfc2V0cGFyYW0oQUJJMTZfSU9DVExfQVJHUyk7CiBpbnQgbm91dmVhdV9hYmkxNl9pb2N0bF9jaGFubmVsX2FsbG9jKEFCSTE2X0lPQ1RMX0FSR1MpOwogaW50IG5vdXZlYXVfYWJpMTZfaW9jdGxfY2hhbm5lbF9mcmVlKEFCSTE2X0lPQ1RMX0FSR1MpOwogaW50IG5vdXZlYXVfYWJpMTZfaW9jdGxfZ3JvYmpfYWxsb2MoQUJJMTZfSU9DVExfQVJHUyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jCmluZGV4IDY2YmYyYWYuLmQyMDRlYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jCkBAIC0yMiw4ICsyMiw2IEBACiAgKiBTT0ZUV0FSRS4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLQogI2luY2x1ZGUgIm5vdXZlYXVfZHJ2LmgiCiAjaW5jbHVkZSAibm91dmVhdV9yZWcuaCIKICNpbmNsdWRlICJkaXNwbnYwNC9ody5oIgpAQCAtOTM1LDcgKzkzMyw3IEBAIHN0YXRpYyBpbnQgcGFyc2VfYml0X3RtZHNfdGJsX2VudHJ5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBudmJpb3MgKmJpb3MsCiAKIAl0bWRzdGFibGVwdHIgPSBST00xNihiaW9zLT5kYXRhW2JpdGVudHJ5LT5vZmZzZXRdKTsKIAlpZiAoIXRtZHN0YWJsZXB0cikgewotCQlOVl9FUlJPUihkcm0sICJQb2ludGVyIHRvIFRNRFMgdGFibGUgaW52YWxpZFxuIik7CisJCU5WX0lORk8oZHJtLCAiUG9pbnRlciB0byBUTURTIHRhYmxlIG5vdCBmb3VuZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCmluZGV4IDM0YTk5ODAuLmY4MDE1ZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKQEAgLTEzNiwxMCArMTM2LDE2IEBAIG5vdXZlYXVfYm9fZGVsX3R0bShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkcm0tPmRldjsKIAlzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibyA9IG5vdXZlYXVfYm8oYm8pOwogCi0JaWYgKHVubGlrZWx5KG52Ym8tPmdlbS5maWxwKSkKLQkJRFJNX0VSUk9SKCJibyAlcCBzdGlsbCBhdHRhY2hlZCB0byBHRU0gb2JqZWN0XG4iLCBibyk7CiAJV0FSTl9PTihudmJvLT5waW5fcmVmY250ID4gMCk7CiAJbnYxMF9ib19wdXRfdGlsZV9yZWdpb24oZGV2LCBudmJvLT50aWxlLCBOVUxMKTsKKworCS8qCisJICogSWYgbm91dmVhdV9ib19uZXcoKSBhbGxvY2F0ZWQgdGhpcyBidWZmZXIsIHRoZSBHRU0gb2JqZWN0IHdhcyBuZXZlcgorCSAqIGluaXRpYWxpemVkLCBzbyBkb24ndCBhdHRlbXB0IHRvIHJlbGVhc2UgaXQuCisJICovCisJaWYgKGJvLT5iYXNlLmRldikKKwkJZHJtX2dlbV9vYmplY3RfcmVsZWFzZSgmYm8tPmJhc2UpOworCiAJa2ZyZWUobnZibyk7CiB9CiAKQEAgLTE4NSwzMSArMTkxLDI0IEBAIG5vdXZlYXVfYm9fZml4dXBfYWxpZ24oc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8sIHUzMiBmbGFncywKIAkqc2l6ZSA9IHJvdW5kdXBfNjQoKnNpemUsIFBBR0VfU0laRSk7CiB9CiAKLWludAotbm91dmVhdV9ib19uZXcoc3RydWN0IG5vdXZlYXVfY2xpICpjbGksIHU2NCBzaXplLCBpbnQgYWxpZ24sCi0JICAgICAgIHVpbnQzMl90IGZsYWdzLCB1aW50MzJfdCB0aWxlX21vZGUsIHVpbnQzMl90IHRpbGVfZmxhZ3MsCi0JICAgICAgIHN0cnVjdCBzZ190YWJsZSAqc2csIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJvYmosCi0JICAgICAgIHN0cnVjdCBub3V2ZWF1X2JvICoqcG52Ym8pCitzdHJ1Y3Qgbm91dmVhdV9ibyAqCitub3V2ZWF1X2JvX2FsbG9jKHN0cnVjdCBub3V2ZWF1X2NsaSAqY2xpLCB1NjQgKnNpemUsIGludCAqYWxpZ24sIHUzMiBmbGFncywKKwkJIHUzMiB0aWxlX21vZGUsIHUzMiB0aWxlX2ZsYWdzKQogewogCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gY2xpLT5kcm07CiAJc3RydWN0IG5vdXZlYXVfYm8gKm52Ym87CiAJc3RydWN0IG52aWZfbW11ICptbXUgPSAmY2xpLT5tbXU7CiAJc3RydWN0IG52aWZfdm1tICp2bW0gPSBjbGktPnN2bS5jbGkgPyAmY2xpLT5zdm0udm1tIDogJmNsaS0+dm1tLnZtbTsKLQlzaXplX3QgYWNjX3NpemU7Ci0JaW50IHR5cGUgPSB0dG1fYm9fdHlwZV9kZXZpY2U7Ci0JaW50IHJldCwgaSwgcGkgPSAtMTsKKwlpbnQgaSwgcGkgPSAtMTsKIAotCWlmICghc2l6ZSkgewotCQlOVl9XQVJOKGRybSwgInNraXBwZWQgc2l6ZSAlMDE2bGx4XG4iLCBzaXplKTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCEqc2l6ZSkgeworCQlOVl9XQVJOKGRybSwgInNraXBwZWQgc2l6ZSAlMDE2bGx4XG4iLCAqc2l6ZSk7CisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCX0KIAotCWlmIChzZykKLQkJdHlwZSA9IHR0bV9ib190eXBlX3NnOwotCiAJbnZibyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBub3V2ZWF1X2JvKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFudmJvKQotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAJSU5JVF9MSVNUX0hFQUQoJm52Ym8tPmhlYWQpOwogCUlOSVRfTElTVF9IRUFEKCZudmJvLT5lbnRyeSk7CiAJSU5JVF9MSVNUX0hFQUQoJm52Ym8tPnZtYV9saXN0KTsKQEAgLTIzMSw3ICsyMzAsNyBAQCBub3V2ZWF1X2JvX25ldyhzdHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaSwgdTY0IHNpemUsIGludCBhbGlnbiwKIAkJbnZiby0+a2luZCA9ICh0aWxlX2ZsYWdzICYgMHgwMDAwZmYwMCkgPj4gODsKIAkJaWYgKCFudmlmX21tdV9raW5kX3ZhbGlkKG1tdSwgbnZiby0+a2luZCkpIHsKIAkJCWtmcmVlKG52Ym8pOwotCQkJcmV0dXJuIC1FSU5WQUw7CisJCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAkJfQogCiAJCW52Ym8tPmNvbXAgPSBtbXUtPmtpbmRbbnZiby0+a2luZF0gIT0gbnZiby0+a2luZDsKQEAgLTI0MSw3ICsyNDAsNyBAQCBub3V2ZWF1X2JvX25ldyhzdHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaSwgdTY0IHNpemUsIGludCBhbGlnbiwKIAkJbnZiby0+Y29tcCA9ICh0aWxlX2ZsYWdzICYgMHgwMDAzMDAwMCkgPj4gMTY7CiAJCWlmICghbnZpZl9tbXVfa2luZF92YWxpZChtbXUsIG52Ym8tPmtpbmQpKSB7CiAJCQlrZnJlZShudmJvKTsKLQkJCXJldHVybiAtRUlOVkFMOworCQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAJCX0KIAl9IGVsc2UgewogCQludmJvLT56ZXRhID0gKHRpbGVfZmxhZ3MgJiAweDAwMDAwMDA3KTsKQEAgLTI3MywxMiArMjcyLDEyIEBAIG5vdXZlYXVfYm9fbmV3KHN0cnVjdCBub3V2ZWF1X2NsaSAqY2xpLCB1NjQgc2l6ZSwgaW50IGFsaWduLAogCQkJcGkgPSBpOwogCiAJCS8qIFN0b3Agb25jZSB0aGUgYnVmZmVyIGlzIGxhcmdlciB0aGFuIHRoZSBjdXJyZW50IHBhZ2Ugc2l6ZS4gKi8KLQkJaWYgKHNpemUgPj0gMVVMTCA8PCB2bW0tPnBhZ2VbaV0uc2hpZnQpCisJCWlmICgqc2l6ZSA+PSAxVUxMIDw8IHZtbS0+cGFnZVtpXS5zaGlmdCkKIAkJCWJyZWFrOwogCX0KIAogCWlmIChXQVJOX09OKHBpIDwgMCkpCi0JCXJldHVybiAtRUlOVkFMOworCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAogCS8qIERpc2FibGUgY29tcHJlc3Npb24gaWYgc3VpdGFibGUgc2V0dGluZ3MgY291bGRuJ3QgYmUgZm91bmQuICovCiAJaWYgKG52Ym8tPmNvbXAgJiYgIXZtbS0+cGFnZVtwaV0uY29tcCkgewpAQCAtMjg4LDIyICsyODcsNTMgQEAgbm91dmVhdV9ib19uZXcoc3RydWN0IG5vdXZlYXVfY2xpICpjbGksIHU2NCBzaXplLCBpbnQgYWxpZ24sCiAJfQogCW52Ym8tPnBhZ2UgPSB2bW0tPnBhZ2VbcGldLnNoaWZ0OwogCi0Jbm91dmVhdV9ib19maXh1cF9hbGlnbihudmJvLCBmbGFncywgJmFsaWduLCAmc2l6ZSk7CisJbm91dmVhdV9ib19maXh1cF9hbGlnbihudmJvLCBmbGFncywgYWxpZ24sIHNpemUpOworCisJcmV0dXJuIG52Ym87Cit9CisKK2ludAorbm91dmVhdV9ib19pbml0KHN0cnVjdCBub3V2ZWF1X2JvICpudmJvLCB1NjQgc2l6ZSwgaW50IGFsaWduLCB1MzIgZmxhZ3MsCisJCXN0cnVjdCBzZ190YWJsZSAqc2csIHN0cnVjdCBkbWFfcmVzdiAqcm9iaikKK3sKKwlpbnQgdHlwZSA9IHNnID8gdHRtX2JvX3R5cGVfc2cgOiB0dG1fYm9fdHlwZV9kZXZpY2U7CisJc2l6ZV90IGFjY19zaXplOworCWludCByZXQ7CisKKwlhY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUobnZiby0+Ym8uYmRldiwgc2l6ZSwgc2l6ZW9mKCpudmJvKSk7CisKIAludmJvLT5iby5tZW0ubnVtX3BhZ2VzID0gc2l6ZSA+PiBQQUdFX1NISUZUOwogCW5vdXZlYXVfYm9fcGxhY2VtZW50X3NldChudmJvLCBmbGFncywgMCk7CiAKLQlhY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJmRybS0+dHRtLmJkZXYsIHNpemUsCi0JCQkJICAgICAgIHNpemVvZihzdHJ1Y3Qgbm91dmVhdV9ibykpOwotCi0JcmV0ID0gdHRtX2JvX2luaXQoJmRybS0+dHRtLmJkZXYsICZudmJvLT5ibywgc2l6ZSwKLQkJCSAgdHlwZSwgJm52Ym8tPnBsYWNlbWVudCwKLQkJCSAgYWxpZ24gPj4gUEFHRV9TSElGVCwgZmFsc2UsIGFjY19zaXplLCBzZywKLQkJCSAgcm9iaiwgbm91dmVhdV9ib19kZWxfdHRtKTsKKwlyZXQgPSB0dG1fYm9faW5pdChudmJvLT5iby5iZGV2LCAmbnZiby0+Ym8sIHNpemUsIHR5cGUsCisJCQkgICZudmJvLT5wbGFjZW1lbnQsIGFsaWduID4+IFBBR0VfU0hJRlQsIGZhbHNlLAorCQkJICBhY2Nfc2l6ZSwgc2csIHJvYmosIG5vdXZlYXVfYm9fZGVsX3R0bSk7CiAJaWYgKHJldCkgewogCQkvKiB0dG0gd2lsbCBjYWxsIG5vdXZlYXVfYm9fZGVsX3R0bSBpZiBpdCBmYWlscy4uICovCiAJCXJldHVybiByZXQ7CiAJfQogCisJcmV0dXJuIDA7Cit9CisKK2ludAorbm91dmVhdV9ib19uZXcoc3RydWN0IG5vdXZlYXVfY2xpICpjbGksIHU2NCBzaXplLCBpbnQgYWxpZ24sCisJICAgICAgIHVpbnQzMl90IGZsYWdzLCB1aW50MzJfdCB0aWxlX21vZGUsIHVpbnQzMl90IHRpbGVfZmxhZ3MsCisJICAgICAgIHN0cnVjdCBzZ190YWJsZSAqc2csIHN0cnVjdCBkbWFfcmVzdiAqcm9iaiwKKwkgICAgICAgc3RydWN0IG5vdXZlYXVfYm8gKipwbnZibykKK3sKKwlzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibzsKKwlpbnQgcmV0OworCisJbnZibyA9IG5vdXZlYXVfYm9fYWxsb2MoY2xpLCAmc2l6ZSwgJmFsaWduLCBmbGFncywgdGlsZV9tb2RlLAorCQkJCXRpbGVfZmxhZ3MpOworCWlmIChJU19FUlIobnZibykpCisJCXJldHVybiBQVFJfRVJSKG52Ym8pOworCisJcmV0ID0gbm91dmVhdV9ib19pbml0KG52Ym8sIHNpemUsIGFsaWduLCBmbGFncywgc2csIHJvYmopOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAkqcG52Ym8gPSBudmJvOwogCXJldHVybiAwOwogfQpAQCAtMTMyMyw3ICsxMzUzLDcgQEAgbm91dmVhdV9ib192bV9jbGVhbnVwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiB7CiAJc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2JkZXYoYm8tPmJkZXYpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkcm0tPmRldjsKLQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChiby0+cmVzdik7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBkbWFfcmVzdl9nZXRfZXhjbChiby0+YmFzZS5yZXN2KTsKIAogCW52MTBfYm9fcHV0X3RpbGVfcmVnaW9uKGRldiwgKm9sZF90aWxlLCBmZW5jZSk7CiAJKm9sZF90aWxlID0gbmV3X3RpbGU7CkBAIC0xNDAwLDcgKzE0MzAsNyBAQCBub3V2ZWF1X2JvX3ZlcmlmeV9hY2Nlc3Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8gPSBub3V2ZWF1X2JvKGJvKTsKIAotCXJldHVybiBkcm1fdm1hX25vZGVfdmVyaWZ5X2FjY2VzcygmbnZiby0+Z2VtLnZtYV9ub2RlLAorCXJldHVybiBkcm1fdm1hX25vZGVfdmVyaWZ5X2FjY2VzcygmbnZiby0+Ym8uYmFzZS52bWFfbm9kZSwKIAkJCQkJICBmaWxwLT5wcml2YXRlX2RhdGEpOwogfQogCkBAIC0xNjU0LDEyICsxNjg0LDEyIEBAIG5vdXZlYXVfdHRtX3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQogdm9pZAogbm91dmVhdV9ib19mZW5jZShzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibywgc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlLCBib29sIGV4Y2x1c2l2ZSkKIHsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2ID0gbnZiby0+Ym8ucmVzdjsKKwlzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YgPSBudmJvLT5iby5iYXNlLnJlc3Y7CiAKIAlpZiAoZXhjbHVzaXZlKQotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UocmVzdiwgJmZlbmNlLT5iYXNlKTsKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2UocmVzdiwgJmZlbmNlLT5iYXNlKTsKIAllbHNlIGlmIChmZW5jZSkKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UocmVzdiwgJmZlbmNlLT5iYXNlKTsKKwkJZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZShyZXN2LCAmZmVuY2UtPmJhc2UpOwogfQogCiBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBub3V2ZWF1X2JvX2RyaXZlciA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uaAppbmRleCAzODNhYzM2Li4zOGY5ZDgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oCkBAIC0zNSwxMSArMzUsNiBAQCBzdHJ1Y3Qgbm91dmVhdV9ibyB7CiAKIAlzdHJ1Y3Qgbm91dmVhdV9kcm1fdGlsZSAqdGlsZTsKIAotCS8qIE9ubHkgdmFsaWQgaWYgYWxsb2NhdGVkIHZpYSBub3V2ZWF1X2dlbV9uZXcoKSBhbmQgaWZmIHlvdSBob2xkIGEKLQkgKiBnZW0gcmVmZXJlbmNlIHRvIGl0ISBGb3IgZGVidWdnaW5nLCB1c2UgZ2VtLmZpbHAgIT0gTlVMTCB0byB0ZXN0Ci0JICogd2hldGhlciBpdCBpcyB2YWxpZC4gKi8KLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgZ2VtOwotCiAJLyogcHJvdGVjdCBieSB0aGUgdHRtIHJlc2VydmF0aW9uIGxvY2sgKi8KIAlpbnQgcGluX3JlZmNudDsKIApAQCAtNzYsOSArNzEsMTMgQEAgbm91dmVhdV9ib19yZWYoc3RydWN0IG5vdXZlYXVfYm8gKnJlZiwgc3RydWN0IG5vdXZlYXVfYm8gKipwbnZibykKIGV4dGVybiBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBub3V2ZWF1X2JvX2RyaXZlcjsKIAogdm9pZCBub3V2ZWF1X2JvX21vdmVfaW5pdChzdHJ1Y3Qgbm91dmVhdV9kcm0gKik7CitzdHJ1Y3Qgbm91dmVhdV9ibyAqbm91dmVhdV9ib19hbGxvYyhzdHJ1Y3Qgbm91dmVhdV9jbGkgKiwgdTY0ICpzaXplLCBpbnQgKmFsaWduLAorCQkJCSAgICB1MzIgZmxhZ3MsIHUzMiB0aWxlX21vZGUsIHUzMiB0aWxlX2ZsYWdzKTsKK2ludCAgbm91dmVhdV9ib19pbml0KHN0cnVjdCBub3V2ZWF1X2JvICosIHU2NCBzaXplLCBpbnQgYWxpZ24sIHUzMiBmbGFncywKKwkJICAgICBzdHJ1Y3Qgc2dfdGFibGUgKnNnLCBzdHJ1Y3QgZG1hX3Jlc3YgKnJvYmopOwogaW50ICBub3V2ZWF1X2JvX25ldyhzdHJ1Y3Qgbm91dmVhdV9jbGkgKiwgdTY0IHNpemUsIGludCBhbGlnbiwgdTMyIGZsYWdzLAogCQkgICAgdTMyIHRpbGVfbW9kZSwgdTMyIHRpbGVfZmxhZ3MsIHN0cnVjdCBzZ190YWJsZSAqc2csCi0JCSAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyb2JqLAorCQkgICAgc3RydWN0IGRtYV9yZXN2ICpyb2JqLAogCQkgICAgc3RydWN0IG5vdXZlYXVfYm8gKiopOwogaW50ICBub3V2ZWF1X2JvX3BpbihzdHJ1Y3Qgbm91dmVhdV9ibyAqLCB1MzIgZmxhZ3MsIGJvb2wgY29udGlnKTsKIGludCAgbm91dmVhdV9ib191bnBpbihzdHJ1Y3Qgbm91dmVhdV9ibyAqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5jCmluZGV4IDhmMTUyODEuLjk0ZGZhMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY29ubmVjdG9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9jb25uZWN0b3IuYwpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KICNpbmNsdWRlIDxsaW51eC92Z2Ffc3dpdGNoZXJvby5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CkBAIC0xMzQ5LDcgKzEzNDgsNyBAQCBub3V2ZWF1X2Nvbm5lY3Rvcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJYnJlYWs7CiAJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQ6CiAJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfZURQOgotCQludl9jb25uZWN0b3ItPmF1eC5kZXYgPSBkZXYtPmRldjsKKwkJbnZfY29ubmVjdG9yLT5hdXguZGV2ID0gY29ubmVjdG9yLT5rZGV2OwogCQludl9jb25uZWN0b3ItPmF1eC50cmFuc2ZlciA9IG5vdXZlYXVfY29ubmVjdG9yX2F1eF94ZmVyOwogCQlzbnByaW50ZihhdXhfbmFtZSwgc2l6ZW9mKGF1eF9uYW1lKSwgInNvci0lMDR4LSUwNHgiLAogCQkJIGRjYmUtPmhhc2h0LCBkY2JlLT5oYXNobSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2NydGMuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY3J0Yy5oCmluZGV4IDM2NmFjYjkuLjdmNjNiZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY3J0Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY3J0Yy5oCkBAIC0yNyw2ICsyNyw4IEBACiAjaWZuZGVmIF9fTk9VVkVBVV9DUlRDX0hfXwogI2RlZmluZSBfX05PVVZFQVVfQ1JUQ19IX18KIAorI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgorCiAjaW5jbHVkZSA8bnZpZi9ub3RpZnkuaD4KIAogc3RydWN0IG5vdXZlYXVfY3J0YyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RlYnVnZnMuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGVidWdmcy5oCmluZGV4IDk0MjBhNmEuLjg5MDljMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGVidWdmcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGVidWdmcy5oCkBAIC0yLDcgKzIsNyBAQAogI2lmbmRlZiBfX05PVVZFQVVfREVCVUdGU19IX18KICNkZWZpbmUgX19OT1VWRUFVX0RFQlVHRlNfSF9fCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgogCiAjaWYgZGVmaW5lZChDT05GSUdfREVCVUdfRlMpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMKaW5kZXggODMyZGE4ZS4uNmYwMzg1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMKQEAgLTI1LDEyICsyNSwxNCBAQAogICovCiAKICNpbmNsdWRlIDxhY3BpL3ZpZGVvLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJub3V2ZWF1X2ZiY29uLmgiCiAjaW5jbHVkZSAibm91dmVhdV9jcnRjLmgiCkBAIC0yMDEsNyArMjAzLDcgQEAgbm91dmVhdV91c2VyX2ZyYW1lYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZHJtX2ZiKQogCXN0cnVjdCBub3V2ZWF1X2ZyYW1lYnVmZmVyICpmYiA9IG5vdXZlYXVfZnJhbWVidWZmZXIoZHJtX2ZiKTsKIAogCWlmIChmYi0+bnZibykKLQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZmYi0+bnZiby0+Z2VtKTsKKwkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZmYi0+bnZiby0+Ym8uYmFzZSk7CiAKIAlkcm1fZnJhbWVidWZmZXJfY2xlYW51cChkcm1fZmIpOwogCWtmcmVlKGZiKTsKQEAgLTIxNCw3ICsyMTYsNyBAQCBub3V2ZWF1X3VzZXJfZnJhbWVidWZmZXJfY3JlYXRlX2hhbmRsZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpkcm1fZmIsCiB7CiAJc3RydWN0IG5vdXZlYXVfZnJhbWVidWZmZXIgKmZiID0gbm91dmVhdV9mcmFtZWJ1ZmZlcihkcm1fZmIpOwogCi0JcmV0dXJuIGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxlX3ByaXYsICZmYi0+bnZiby0+Z2VtLCBoYW5kbGUpOworCXJldHVybiBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCAmZmItPm52Ym8tPmJvLmJhc2UsIGhhbmRsZSk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIG5vdXZlYXVfZnJhbWVidWZmZXJfZnVuY3MgPSB7CkBAIC02NjAsOCArNjYyLDggQEAgbm91dmVhdV9kaXNwbGF5X2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCAmYm8tPmdlbSwgJmFyZ3MtPmhhbmRsZSk7Ci0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZiby0+Z2VtKTsKKwlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCAmYm8tPmJvLmJhc2UsICZhcmdzLT5oYW5kbGUpOworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZCgmYm8tPmJvLmJhc2UpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTY3NSw3ICs2NzcsNyBAQCBub3V2ZWF1X2Rpc3BsYXlfZHVtYl9tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCWdlbSA9IGRybV9nZW1fb2JqZWN0X2xvb2t1cChmaWxlX3ByaXYsIGhhbmRsZSk7CiAJaWYgKGdlbSkgewogCQlzdHJ1Y3Qgbm91dmVhdV9ibyAqYm8gPSBub3V2ZWF1X2dlbV9vYmplY3QoZ2VtKTsKLQkJKnBvZmZzZXQgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJvLT5iby52bWFfbm9kZSk7CisJCSpwb2Zmc2V0ID0gZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZiby0+Ym8uYmFzZS52bWFfbm9kZSk7CiAJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChnZW0pOwogCQlyZXR1cm4gMDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5oCmluZGV4IDkxODVmMDEuLjZlOGU2NjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5oCkBAIC0xLDkgKzEsMTMgQEAKIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KICNpZm5kZWYgX19OT1VWRUFVX0RJU1BMQVlfSF9fCiAjZGVmaW5lIF9fTk9VVkVBVV9ESVNQTEFZX0hfXworCiAjaW5jbHVkZSAibm91dmVhdV9kcnYuaCIKKwogI2luY2x1ZGUgPG52aWYvZGlzcC5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9mcmFtZWJ1ZmZlci5oPgorCiBzdHJ1Y3Qgbm91dmVhdV9mcmFtZWJ1ZmZlciB7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciBiYXNlOwogCXN0cnVjdCBub3V2ZWF1X2JvICpudmJvOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZG1hLmMKaW5kZXggMDc4ZjY1ZC4uM2M0MzBhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RtYS5jCkBAIC0xMTgsNyArMTE4LDcgQEAgbnY1MF9kbWFfcHVzaF93YWl0KHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4sIGludCBjb3VudCkKIAkJfQogCiAJCWlmICgoKytjbnQgJiAweGZmKSA9PSAwKSB7Ci0JCQlEUk1fVURFTEFZKDEpOworCQkJdWRlbGF5KDEpOwogCQkJaWYgKGNudCA+IDEwMDAwMCkKIAkJCQlyZXR1cm4gLUVCVVNZOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RtZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZG1lbS5jCmluZGV4IDEzMzMyMjAuLmZhMTQzOTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZG1lbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZG1lbS5jCkBAIC00NCw4ICs0NCw2IEBACiAjZGVmaW5lIERNRU1fQ0hVTktfU0laRSAoMlVMIDw8IDIwKQogI2RlZmluZSBETUVNX0NIVU5LX05QQUdFUyAoRE1FTV9DSFVOS19TSVpFID4+IFBBR0VfU0hJRlQpCiAKLXN0cnVjdCBub3V2ZWF1X21pZ3JhdGU7Ci0KIGVudW0gbm91dmVhdV9hcGVyIHsKIAlOT1VWRUFVX0FQRVJfVklSVCwKIAlOT1VWRUFVX0FQRVJfVlJBTSwKQEAgLTg2LDIxICs4NCwxMyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBub3V2ZWF1X2RtZW0gKnBhZ2VfdG9fZG1lbShzdHJ1Y3QgcGFnZSAqcGFnZSkKIAlyZXR1cm4gY29udGFpbmVyX29mKHBhZ2UtPnBnbWFwLCBzdHJ1Y3Qgbm91dmVhdV9kbWVtLCBwYWdlbWFwKTsKIH0KIAotc3RydWN0IG5vdXZlYXVfZG1lbV9mYXVsdCB7Ci0Jc3RydWN0IG5vdXZlYXVfZHJtICpkcm07Ci0Jc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlOwotCWRtYV9hZGRyX3QgKmRtYTsKLQl1bnNpZ25lZCBsb25nIG5wYWdlczsKLX07CitzdGF0aWMgdW5zaWduZWQgbG9uZyBub3V2ZWF1X2RtZW1fcGFnZV9hZGRyKHN0cnVjdCBwYWdlICpwYWdlKQoreworCXN0cnVjdCBub3V2ZWF1X2RtZW1fY2h1bmsgKmNodW5rID0gcGFnZS0+em9uZV9kZXZpY2VfZGF0YTsKKwl1bnNpZ25lZCBsb25nIGlkeCA9IHBhZ2VfdG9fcGZuKHBhZ2UpIC0gY2h1bmstPnBmbl9maXJzdDsKIAotc3RydWN0IG5vdXZlYXVfbWlncmF0ZSB7Ci0Jc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7Ci0Jc3RydWN0IG5vdXZlYXVfZHJtICpkcm07Ci0Jc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlOwotCXVuc2lnbmVkIGxvbmcgbnBhZ2VzOwotCWRtYV9hZGRyX3QgKmRtYTsKLQl1bnNpZ25lZCBsb25nIGRtYV9ucjsKLX07CisJcmV0dXJuIChpZHggPDwgUEFHRV9TSElGVCkgKyBjaHVuay0+Ym8tPmJvLm9mZnNldDsKK30KIAogc3RhdGljIHZvaWQgbm91dmVhdV9kbWVtX3BhZ2VfZnJlZShzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsKQEAgLTEyNSwxNjUgKzExNSw5MCBAQCBzdGF0aWMgdm9pZCBub3V2ZWF1X2RtZW1fcGFnZV9mcmVlKHN0cnVjdCBwYWdlICpwYWdlKQogCXNwaW5fdW5sb2NrKCZjaHVuay0+bG9jayk7CiB9CiAKLXN0YXRpYyB2b2lkCi1ub3V2ZWF1X2RtZW1fZmF1bHRfYWxsb2NfYW5kX2NvcHkoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0JCQkJICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmNfcGZucywKLQkJCQkgIHVuc2lnbmVkIGxvbmcgKmRzdF9wZm5zLAotCQkJCSAgdW5zaWduZWQgbG9uZyBzdGFydCwKLQkJCQkgIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJCSAgdm9pZCAqcHJpdmF0ZSkKK3N0YXRpYyB2b2lkIG5vdXZlYXVfZG1lbV9mZW5jZV9kb25lKHN0cnVjdCBub3V2ZWF1X2ZlbmNlICoqZmVuY2UpCiB7Ci0Jc3RydWN0IG5vdXZlYXVfZG1lbV9mYXVsdCAqZmF1bHQgPSBwcml2YXRlOwotCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gZmF1bHQtPmRybTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBkcm0tPmRldi0+ZGV2OwotCXVuc2lnbmVkIGxvbmcgYWRkciwgaSwgbnBhZ2VzID0gMDsKLQlub3V2ZWF1X21pZ3JhdGVfY29weV90IGNvcHk7Ci0JaW50IHJldDsKLQotCi0JLyogRmlyc3QgYWxsb2NhdGUgbmV3IG1lbW9yeSAqLwotCWZvciAoYWRkciA9IHN0YXJ0LCBpID0gMDsgYWRkciA8IGVuZDsgYWRkciArPSBQQUdFX1NJWkUsIGkrKykgewotCQlzdHJ1Y3QgcGFnZSAqZHBhZ2UsICpzcGFnZTsKLQotCQlkc3RfcGZuc1tpXSA9IDA7Ci0JCXNwYWdlID0gbWlncmF0ZV9wZm5fdG9fcGFnZShzcmNfcGZuc1tpXSk7Ci0JCWlmICghc3BhZ2UgfHwgIShzcmNfcGZuc1tpXSAmIE1JR1JBVEVfUEZOX01JR1JBVEUpKQotCQkJY29udGludWU7Ci0KLQkJZHBhZ2UgPSBhbGxvY19wYWdlX3ZtYShHRlBfSElHSFVTRVIsIHZtYSwgYWRkcik7Ci0JCWlmICghZHBhZ2UpIHsKLQkJCWRzdF9wZm5zW2ldID0gTUlHUkFURV9QRk5fRVJST1I7Ci0JCQljb250aW51ZTsKLQkJfQotCQlsb2NrX3BhZ2UoZHBhZ2UpOwotCi0JCWRzdF9wZm5zW2ldID0gbWlncmF0ZV9wZm4ocGFnZV90b19wZm4oZHBhZ2UpKSB8Ci0JCQkgICAgICBNSUdSQVRFX1BGTl9MT0NLRUQ7Ci0JCW5wYWdlcysrOwotCX0KLQotCS8qIEFsbG9jYXRlIHN0b3JhZ2UgZm9yIERNQSBhZGRyZXNzZXMsIHNvIHdlIGNhbiB1bm1hcCBsYXRlci4gKi8KLQlmYXVsdC0+ZG1hID0ga21hbGxvYyhzaXplb2YoKmZhdWx0LT5kbWEpICogbnBhZ2VzLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWZhdWx0LT5kbWEpCi0JCWdvdG8gZXJyb3I7Ci0KLQkvKiBDb3B5IHRoaW5ncyBvdmVyICovCi0JY29weSA9IGRybS0+ZG1lbS0+bWlncmF0ZS5jb3B5X2Z1bmM7Ci0JZm9yIChhZGRyID0gc3RhcnQsIGkgPSAwOyBhZGRyIDwgZW5kOyBhZGRyICs9IFBBR0VfU0laRSwgaSsrKSB7Ci0JCXN0cnVjdCBub3V2ZWF1X2RtZW1fY2h1bmsgKmNodW5rOwotCQlzdHJ1Y3QgcGFnZSAqc3BhZ2UsICpkcGFnZTsKLQkJdTY0IHNyY19hZGRyLCBkc3RfYWRkcjsKLQotCQlkcGFnZSA9IG1pZ3JhdGVfcGZuX3RvX3BhZ2UoZHN0X3BmbnNbaV0pOwotCQlpZiAoIWRwYWdlIHx8IGRzdF9wZm5zW2ldID09IE1JR1JBVEVfUEZOX0VSUk9SKQotCQkJY29udGludWU7Ci0KLQkJc3BhZ2UgPSBtaWdyYXRlX3Bmbl90b19wYWdlKHNyY19wZm5zW2ldKTsKLQkJaWYgKCFzcGFnZSB8fCAhKHNyY19wZm5zW2ldICYgTUlHUkFURV9QRk5fTUlHUkFURSkpIHsKLQkJCWRzdF9wZm5zW2ldID0gTUlHUkFURV9QRk5fRVJST1I7Ci0JCQlfX2ZyZWVfcGFnZShkcGFnZSk7Ci0JCQljb250aW51ZTsKLQkJfQotCi0JCWZhdWx0LT5kbWFbZmF1bHQtPm5wYWdlc10gPQotCQkJZG1hX21hcF9wYWdlX2F0dHJzKGRldiwgZHBhZ2UsIDAsIFBBR0VfU0laRSwKLQkJCQkJICAgUENJX0RNQV9CSURJUkVDVElPTkFMLAotCQkJCQkgICBETUFfQVRUUl9TS0lQX0NQVV9TWU5DKTsKLQkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGRldiwgZmF1bHQtPmRtYVtmYXVsdC0+bnBhZ2VzXSkpIHsKLQkJCWRzdF9wZm5zW2ldID0gTUlHUkFURV9QRk5fRVJST1I7Ci0JCQlfX2ZyZWVfcGFnZShkcGFnZSk7Ci0JCQljb250aW51ZTsKLQkJfQotCi0JCWRzdF9hZGRyID0gZmF1bHQtPmRtYVtmYXVsdC0+bnBhZ2VzKytdOwotCi0JCWNodW5rID0gc3BhZ2UtPnpvbmVfZGV2aWNlX2RhdGE7Ci0JCXNyY19hZGRyID0gcGFnZV90b19wZm4oc3BhZ2UpIC0gY2h1bmstPnBmbl9maXJzdDsKLQkJc3JjX2FkZHIgPSAoc3JjX2FkZHIgPDwgUEFHRV9TSElGVCkgKyBjaHVuay0+Ym8tPmJvLm9mZnNldDsKLQotCQlyZXQgPSBjb3B5KGRybSwgMSwgTk9VVkVBVV9BUEVSX0hPU1QsIGRzdF9hZGRyLAotCQkJCSAgIE5PVVZFQVVfQVBFUl9WUkFNLCBzcmNfYWRkcik7Ci0JCWlmIChyZXQpIHsKLQkJCWRzdF9wZm5zW2ldID0gTUlHUkFURV9QRk5fRVJST1I7Ci0JCQlfX2ZyZWVfcGFnZShkcGFnZSk7Ci0JCQljb250aW51ZTsKLQkJfQotCX0KLQotCW5vdXZlYXVfZmVuY2VfbmV3KGRybS0+ZG1lbS0+bWlncmF0ZS5jaGFuLCBmYWxzZSwgJmZhdWx0LT5mZW5jZSk7Ci0KLQlyZXR1cm47Ci0KLWVycm9yOgotCWZvciAoYWRkciA9IHN0YXJ0LCBpID0gMDsgYWRkciA8IGVuZDsgYWRkciArPSBQQUdFX1NJWkUsICsraSkgewotCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKLQotCQlpZiAoIWRzdF9wZm5zW2ldIHx8IGRzdF9wZm5zW2ldID09IE1JR1JBVEVfUEZOX0VSUk9SKQotCQkJY29udGludWU7Ci0KLQkJcGFnZSA9IG1pZ3JhdGVfcGZuX3RvX3BhZ2UoZHN0X3BmbnNbaV0pOwotCQlkc3RfcGZuc1tpXSA9IE1JR1JBVEVfUEZOX0VSUk9SOwotCQlpZiAocGFnZSA9PSBOVUxMKQotCQkJY29udGludWU7Ci0KLQkJX19mcmVlX3BhZ2UocGFnZSk7Ci0JfQotfQotCi12b2lkIG5vdXZlYXVfZG1lbV9mYXVsdF9maW5hbGl6ZV9hbmRfbWFwKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAotCQkJCQkgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjX3BmbnMsCi0JCQkJCSBjb25zdCB1bnNpZ25lZCBsb25nICpkc3RfcGZucywKLQkJCQkJIHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCQkJCSB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCQkJIHZvaWQgKnByaXZhdGUpCi17Ci0Jc3RydWN0IG5vdXZlYXVfZG1lbV9mYXVsdCAqZmF1bHQgPSBwcml2YXRlOwotCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gZmF1bHQtPmRybTsKLQotCWlmIChmYXVsdC0+ZmVuY2UpIHsKLQkJbm91dmVhdV9mZW5jZV93YWl0KGZhdWx0LT5mZW5jZSwgdHJ1ZSwgZmFsc2UpOwotCQlub3V2ZWF1X2ZlbmNlX3VucmVmKCZmYXVsdC0+ZmVuY2UpOworCWlmIChmZW5jZSkgeworCQlub3V2ZWF1X2ZlbmNlX3dhaXQoKmZlbmNlLCB0cnVlLCBmYWxzZSk7CisJCW5vdXZlYXVfZmVuY2VfdW5yZWYoZmVuY2UpOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIEZJWE1FIHdhaXQgZm9yIGNoYW5uZWwgdG8gYmUgSURMRSBiZWZvcmUgY2FsbGluZyBmaW5hbGl6aW5nCi0JCSAqIHRoZSBobWVtIG9iamVjdCBiZWxvdyAobm91dmVhdV9taWdyYXRlX2htZW1fZmluaSgpKS4KKwkJICogdGhlIGhtZW0gb2JqZWN0LgogCQkgKi8KIAl9Ci0KLQl3aGlsZSAoZmF1bHQtPm5wYWdlcy0tKSB7Ci0JCWRtYV91bm1hcF9wYWdlKGRybS0+ZGV2LT5kZXYsIGZhdWx0LT5kbWFbZmF1bHQtPm5wYWdlc10sCi0JCQkgICAgICAgUEFHRV9TSVpFLCBQQ0lfRE1BX0JJRElSRUNUSU9OQUwpOwotCX0KLQlrZnJlZShmYXVsdC0+ZG1hKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBtaWdyYXRlX3ZtYV9vcHMgbm91dmVhdV9kbWVtX2ZhdWx0X21pZ3JhdGVfb3BzID0gewotCS5hbGxvY19hbmRfY29weQkJPSBub3V2ZWF1X2RtZW1fZmF1bHRfYWxsb2NfYW5kX2NvcHksCi0JLmZpbmFsaXplX2FuZF9tYXAJPSBub3V2ZWF1X2RtZW1fZmF1bHRfZmluYWxpemVfYW5kX21hcCwKLX07CitzdGF0aWMgdm1fZmF1bHRfdCBub3V2ZWF1X2RtZW1fZmF1bHRfY29weV9vbmUoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0sCisJCXN0cnVjdCB2bV9mYXVsdCAqdm1mLCBzdHJ1Y3QgbWlncmF0ZV92bWEgKmFyZ3MsCisJCWRtYV9hZGRyX3QgKmRtYV9hZGRyKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGRybS0+ZGV2LT5kZXY7CisJc3RydWN0IHBhZ2UgKmRwYWdlLCAqc3BhZ2U7CisKKwlzcGFnZSA9IG1pZ3JhdGVfcGZuX3RvX3BhZ2UoYXJncy0+c3JjWzBdKTsKKwlpZiAoIXNwYWdlIHx8ICEoYXJncy0+c3JjWzBdICYgTUlHUkFURV9QRk5fTUlHUkFURSkpCisJCXJldHVybiAwOworCisJZHBhZ2UgPSBhbGxvY19wYWdlX3ZtYShHRlBfSElHSFVTRVIsIHZtZi0+dm1hLCB2bWYtPmFkZHJlc3MpOworCWlmICghZHBhZ2UpCisJCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7CisJbG9ja19wYWdlKGRwYWdlKTsKKworCSpkbWFfYWRkciA9IGRtYV9tYXBfcGFnZShkZXYsIGRwYWdlLCAwLCBQQUdFX1NJWkUsIERNQV9CSURJUkVDVElPTkFMKTsKKwlpZiAoZG1hX21hcHBpbmdfZXJyb3IoZGV2LCAqZG1hX2FkZHIpKQorCQlnb3RvIGVycm9yX2ZyZWVfcGFnZTsKKworCWlmIChkcm0tPmRtZW0tPm1pZ3JhdGUuY29weV9mdW5jKGRybSwgMSwgTk9VVkVBVV9BUEVSX0hPU1QsICpkbWFfYWRkciwKKwkJCU5PVVZFQVVfQVBFUl9WUkFNLCBub3V2ZWF1X2RtZW1fcGFnZV9hZGRyKHNwYWdlKSkpCisJCWdvdG8gZXJyb3JfZG1hX3VubWFwOworCisJYXJncy0+ZHN0WzBdID0gbWlncmF0ZV9wZm4ocGFnZV90b19wZm4oZHBhZ2UpKSB8IE1JR1JBVEVfUEZOX0xPQ0tFRDsKKwlyZXR1cm4gMDsKKworZXJyb3JfZG1hX3VubWFwOgorCWRtYV91bm1hcF9wYWdlKGRldiwgKmRtYV9hZGRyLCBQQUdFX1NJWkUsIERNQV9CSURJUkVDVElPTkFMKTsKK2Vycm9yX2ZyZWVfcGFnZToKKwlfX2ZyZWVfcGFnZShkcGFnZSk7CisJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsKK30KIAogc3RhdGljIHZtX2ZhdWx0X3Qgbm91dmVhdV9kbWVtX21pZ3JhdGVfdG9fcmFtKHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogewogCXN0cnVjdCBub3V2ZWF1X2RtZW0gKmRtZW0gPSBwYWdlX3RvX2RtZW0odm1mLT5wYWdlKTsKLQl1bnNpZ25lZCBsb25nIHNyY1sxXSA9IHswfSwgZHN0WzFdID0gezB9OwotCXN0cnVjdCBub3V2ZWF1X2RtZW1fZmF1bHQgZmF1bHQgPSB7IC5kcm0gPSBkbWVtLT5kcm0gfTsKLQlpbnQgcmV0OworCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gZG1lbS0+ZHJtOworCXN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZTsKKwl1bnNpZ25lZCBsb25nIHNyYyA9IDAsIGRzdCA9IDA7CisJZG1hX2FkZHJfdCBkbWFfYWRkciA9IDA7CisJdm1fZmF1bHRfdCByZXQ7CisJc3RydWN0IG1pZ3JhdGVfdm1hIGFyZ3MgPSB7CisJCS52bWEJCT0gdm1mLT52bWEsCisJCS5zdGFydAkJPSB2bWYtPmFkZHJlc3MsCisJCS5lbmQJCT0gdm1mLT5hZGRyZXNzICsgUEFHRV9TSVpFLAorCQkuc3JjCQk9ICZzcmMsCisJCS5kc3QJCT0gJmRzdCwKKwl9OwogCiAJLyoKIAkgKiBGSVhNRSB3aGF0IHdlIHJlYWxseSB3YW50IGlzIHRvIGZpbmQgc29tZSBoZXVyaXN0aWMgdG8gbWlncmF0ZSBtb3JlCiAJICogdGhhbiBqdXN0IG9uZSBwYWdlIG9uIENQVSBmYXVsdC4gV2hlbiBzdWNoIGZhdWx0IGhhcHBlbnMgaXQgaXMgdmVyeQogCSAqIGxpa2VseSB0aGF0IG1vcmUgc3Vycm91bmRpbmcgcGFnZSB3aWxsIENQVSBmYXVsdCB0b28uCiAJICovCi0JcmV0ID0gbWlncmF0ZV92bWEoJm5vdXZlYXVfZG1lbV9mYXVsdF9taWdyYXRlX29wcywgdm1mLT52bWEsCi0JCQl2bWYtPmFkZHJlc3MsIHZtZi0+YWRkcmVzcyArIFBBR0VfU0laRSwKLQkJCXNyYywgZHN0LCAmZmF1bHQpOwotCWlmIChyZXQpCisJaWYgKG1pZ3JhdGVfdm1hX3NldHVwKCZhcmdzKSA8IDApCiAJCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7CisJaWYgKCFhcmdzLmNwYWdlcykKKwkJcmV0dXJuIDA7CiAKLQlpZiAoZHN0WzBdID09IE1JR1JBVEVfUEZOX0VSUk9SKQotCQlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOworCXJldCA9IG5vdXZlYXVfZG1lbV9mYXVsdF9jb3B5X29uZShkcm0sIHZtZiwgJmFyZ3MsICZkbWFfYWRkcik7CisJaWYgKHJldCB8fCBkc3QgPT0gMCkKKwkJZ290byBkb25lOwogCi0JcmV0dXJuIDA7CisJbm91dmVhdV9mZW5jZV9uZXcoZG1lbS0+bWlncmF0ZS5jaGFuLCBmYWxzZSwgJmZlbmNlKTsKKwltaWdyYXRlX3ZtYV9wYWdlcygmYXJncyk7CisJbm91dmVhdV9kbWVtX2ZlbmNlX2RvbmUoJmZlbmNlKTsKKwlkbWFfdW5tYXBfcGFnZShkcm0tPmRldi0+ZGV2LCBkbWFfYWRkciwgUEFHRV9TSVpFLCBETUFfQklESVJFQ1RJT05BTCk7Citkb25lOgorCW1pZ3JhdGVfdm1hX2ZpbmFsaXplKCZhcmdzKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wYWdlbWFwX29wcyBub3V2ZWF1X2RtZW1fcGFnZW1hcF9vcHMgPSB7CkBAIC02NDIsMTg4ICs1NTcsMTE1IEBAIG5vdXZlYXVfZG1lbV9pbml0KHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKQogCWRybS0+ZG1lbSA9IE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkCi1ub3V2ZWF1X2RtZW1fbWlncmF0ZV9hbGxvY19hbmRfY29weShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJCQkgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjX3BmbnMsCi0JCQkJICAgIHVuc2lnbmVkIGxvbmcgKmRzdF9wZm5zLAotCQkJCSAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LAotCQkJCSAgICB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCQkgICAgdm9pZCAqcHJpdmF0ZSkKK3N0YXRpYyB1bnNpZ25lZCBsb25nIG5vdXZlYXVfZG1lbV9taWdyYXRlX2NvcHlfb25lKHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtLAorCQl1bnNpZ25lZCBsb25nIHNyYywgZG1hX2FkZHJfdCAqZG1hX2FkZHIpCiB7Ci0Jc3RydWN0IG5vdXZlYXVfbWlncmF0ZSAqbWlncmF0ZSA9IHByaXZhdGU7Ci0Jc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBtaWdyYXRlLT5kcm07CiAJc3RydWN0IGRldmljZSAqZGV2ID0gZHJtLT5kZXYtPmRldjsKLQl1bnNpZ25lZCBsb25nIGFkZHIsIGksIG5wYWdlcyA9IDA7Ci0Jbm91dmVhdV9taWdyYXRlX2NvcHlfdCBjb3B5OwotCWludCByZXQ7CisJc3RydWN0IHBhZ2UgKmRwYWdlLCAqc3BhZ2U7CiAKLQkvKiBGaXJzdCBhbGxvY2F0ZSBuZXcgbWVtb3J5ICovCi0JZm9yIChhZGRyID0gc3RhcnQsIGkgPSAwOyBhZGRyIDwgZW5kOyBhZGRyICs9IFBBR0VfU0laRSwgaSsrKSB7Ci0JCXN0cnVjdCBwYWdlICpkcGFnZSwgKnNwYWdlOworCXNwYWdlID0gbWlncmF0ZV9wZm5fdG9fcGFnZShzcmMpOworCWlmICghc3BhZ2UgfHwgIShzcmMgJiBNSUdSQVRFX1BGTl9NSUdSQVRFKSkKKwkJZ290byBvdXQ7CiAKLQkJZHN0X3BmbnNbaV0gPSAwOwotCQlzcGFnZSA9IG1pZ3JhdGVfcGZuX3RvX3BhZ2Uoc3JjX3BmbnNbaV0pOwotCQlpZiAoIXNwYWdlIHx8ICEoc3JjX3BmbnNbaV0gJiBNSUdSQVRFX1BGTl9NSUdSQVRFKSkKLQkJCWNvbnRpbnVlOworCWRwYWdlID0gbm91dmVhdV9kbWVtX3BhZ2VfYWxsb2NfbG9ja2VkKGRybSk7CisJaWYgKCFkcGFnZSkKKwkJcmV0dXJuIDA7CiAKLQkJZHBhZ2UgPSBub3V2ZWF1X2RtZW1fcGFnZV9hbGxvY19sb2NrZWQoZHJtKTsKLQkJaWYgKCFkcGFnZSkKLQkJCWNvbnRpbnVlOworCSpkbWFfYWRkciA9IGRtYV9tYXBfcGFnZShkZXYsIHNwYWdlLCAwLCBQQUdFX1NJWkUsIERNQV9CSURJUkVDVElPTkFMKTsKKwlpZiAoZG1hX21hcHBpbmdfZXJyb3IoZGV2LCAqZG1hX2FkZHIpKQorCQlnb3RvIG91dF9mcmVlX3BhZ2U7CiAKLQkJZHN0X3BmbnNbaV0gPSBtaWdyYXRlX3BmbihwYWdlX3RvX3BmbihkcGFnZSkpIHwKLQkJCSAgICAgIE1JR1JBVEVfUEZOX0xPQ0tFRCB8Ci0JCQkgICAgICBNSUdSQVRFX1BGTl9ERVZJQ0U7Ci0JCW5wYWdlcysrOwotCX0KKwlpZiAoZHJtLT5kbWVtLT5taWdyYXRlLmNvcHlfZnVuYyhkcm0sIDEsIE5PVVZFQVVfQVBFUl9WUkFNLAorCQkJbm91dmVhdV9kbWVtX3BhZ2VfYWRkcihkcGFnZSksIE5PVVZFQVVfQVBFUl9IT1NULAorCQkJKmRtYV9hZGRyKSkKKwkJZ290byBvdXRfZG1hX3VubWFwOwogCi0JaWYgKCFucGFnZXMpCi0JCXJldHVybjsKKwlyZXR1cm4gbWlncmF0ZV9wZm4ocGFnZV90b19wZm4oZHBhZ2UpKSB8IE1JR1JBVEVfUEZOX0xPQ0tFRDsKIAotCS8qIEFsbG9jYXRlIHN0b3JhZ2UgZm9yIERNQSBhZGRyZXNzZXMsIHNvIHdlIGNhbiB1bm1hcCBsYXRlci4gKi8KLQltaWdyYXRlLT5kbWEgPSBrbWFsbG9jKHNpemVvZigqbWlncmF0ZS0+ZG1hKSAqIG5wYWdlcywgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtaWdyYXRlLT5kbWEpCi0JCWdvdG8gZXJyb3I7Ci0KLQkvKiBDb3B5IHRoaW5ncyBvdmVyICovCi0JY29weSA9IGRybS0+ZG1lbS0+bWlncmF0ZS5jb3B5X2Z1bmM7Ci0JZm9yIChhZGRyID0gc3RhcnQsIGkgPSAwOyBhZGRyIDwgZW5kOyBhZGRyICs9IFBBR0VfU0laRSwgaSsrKSB7Ci0JCXN0cnVjdCBub3V2ZWF1X2RtZW1fY2h1bmsgKmNodW5rOwotCQlzdHJ1Y3QgcGFnZSAqc3BhZ2UsICpkcGFnZTsKLQkJdTY0IHNyY19hZGRyLCBkc3RfYWRkcjsKLQotCQlkcGFnZSA9IG1pZ3JhdGVfcGZuX3RvX3BhZ2UoZHN0X3BmbnNbaV0pOwotCQlpZiAoIWRwYWdlIHx8IGRzdF9wZm5zW2ldID09IE1JR1JBVEVfUEZOX0VSUk9SKQotCQkJY29udGludWU7Ci0KLQkJY2h1bmsgPSBkcGFnZS0+em9uZV9kZXZpY2VfZGF0YTsKLQkJZHN0X2FkZHIgPSBwYWdlX3RvX3BmbihkcGFnZSkgLSBjaHVuay0+cGZuX2ZpcnN0OwotCQlkc3RfYWRkciA9IChkc3RfYWRkciA8PCBQQUdFX1NISUZUKSArIGNodW5rLT5iby0+Ym8ub2Zmc2V0OwotCi0JCXNwYWdlID0gbWlncmF0ZV9wZm5fdG9fcGFnZShzcmNfcGZuc1tpXSk7Ci0JCWlmICghc3BhZ2UgfHwgIShzcmNfcGZuc1tpXSAmIE1JR1JBVEVfUEZOX01JR1JBVEUpKSB7Ci0JCQlub3V2ZWF1X2RtZW1fcGFnZV9mcmVlX2xvY2tlZChkcm0sIGRwYWdlKTsKLQkJCWRzdF9wZm5zW2ldID0gMDsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KLQkJbWlncmF0ZS0+ZG1hW21pZ3JhdGUtPmRtYV9ucl0gPQotCQkJZG1hX21hcF9wYWdlX2F0dHJzKGRldiwgc3BhZ2UsIDAsIFBBR0VfU0laRSwKLQkJCQkJICAgUENJX0RNQV9CSURJUkVDVElPTkFMLAotCQkJCQkgICBETUFfQVRUUl9TS0lQX0NQVV9TWU5DKTsKLQkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGRldiwgbWlncmF0ZS0+ZG1hW21pZ3JhdGUtPmRtYV9ucl0pKSB7Ci0JCQlub3V2ZWF1X2RtZW1fcGFnZV9mcmVlX2xvY2tlZChkcm0sIGRwYWdlKTsKLQkJCWRzdF9wZm5zW2ldID0gMDsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KLQkJc3JjX2FkZHIgPSBtaWdyYXRlLT5kbWFbbWlncmF0ZS0+ZG1hX25yKytdOwotCi0JCXJldCA9IGNvcHkoZHJtLCAxLCBOT1VWRUFVX0FQRVJfVlJBTSwgZHN0X2FkZHIsCi0JCQkJICAgTk9VVkVBVV9BUEVSX0hPU1QsIHNyY19hZGRyKTsKLQkJaWYgKHJldCkgewotCQkJbm91dmVhdV9kbWVtX3BhZ2VfZnJlZV9sb2NrZWQoZHJtLCBkcGFnZSk7Ci0JCQlkc3RfcGZuc1tpXSA9IDA7Ci0JCQljb250aW51ZTsKLQkJfQotCX0KLQotCW5vdXZlYXVfZmVuY2VfbmV3KGRybS0+ZG1lbS0+bWlncmF0ZS5jaGFuLCBmYWxzZSwgJm1pZ3JhdGUtPmZlbmNlKTsKLQotCXJldHVybjsKLQotZXJyb3I6Ci0JZm9yIChhZGRyID0gc3RhcnQsIGkgPSAwOyBhZGRyIDwgZW5kOyBhZGRyICs9IFBBR0VfU0laRSwgKytpKSB7Ci0JCXN0cnVjdCBwYWdlICpwYWdlOwotCi0JCWlmICghZHN0X3BmbnNbaV0gfHwgZHN0X3BmbnNbaV0gPT0gTUlHUkFURV9QRk5fRVJST1IpCi0JCQljb250aW51ZTsKLQotCQlwYWdlID0gbWlncmF0ZV9wZm5fdG9fcGFnZShkc3RfcGZuc1tpXSk7Ci0JCWRzdF9wZm5zW2ldID0gTUlHUkFURV9QRk5fRVJST1I7Ci0JCWlmIChwYWdlID09IE5VTEwpCi0JCQljb250aW51ZTsKLQotCQlfX2ZyZWVfcGFnZShwYWdlKTsKLQl9CitvdXRfZG1hX3VubWFwOgorCWRtYV91bm1hcF9wYWdlKGRldiwgKmRtYV9hZGRyLCBQQUdFX1NJWkUsIERNQV9CSURJUkVDVElPTkFMKTsKK291dF9mcmVlX3BhZ2U6CisJbm91dmVhdV9kbWVtX3BhZ2VfZnJlZV9sb2NrZWQoZHJtLCBkcGFnZSk7CitvdXQ6CisJcmV0dXJuIDA7CiB9CiAKLXZvaWQgbm91dmVhdV9kbWVtX21pZ3JhdGVfZmluYWxpemVfYW5kX21hcChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJCQkJICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjX3BmbnMsCi0JCQkJCSAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmRzdF9wZm5zLAotCQkJCQkgICB1bnNpZ25lZCBsb25nIHN0YXJ0LAotCQkJCQkgICB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCQkJICAgdm9pZCAqcHJpdmF0ZSkKK3N0YXRpYyB2b2lkIG5vdXZlYXVfZG1lbV9taWdyYXRlX2NodW5rKHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtLAorCQlzdHJ1Y3QgbWlncmF0ZV92bWEgKmFyZ3MsIGRtYV9hZGRyX3QgKmRtYV9hZGRycykKIHsKLQlzdHJ1Y3Qgbm91dmVhdV9taWdyYXRlICptaWdyYXRlID0gcHJpdmF0ZTsKLQlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG1pZ3JhdGUtPmRybTsKKwlzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2U7CisJdW5zaWduZWQgbG9uZyBhZGRyID0gYXJncy0+c3RhcnQsIG5yX2RtYSA9IDAsIGk7CiAKLQlpZiAobWlncmF0ZS0+ZmVuY2UpIHsKLQkJbm91dmVhdV9mZW5jZV93YWl0KG1pZ3JhdGUtPmZlbmNlLCB0cnVlLCBmYWxzZSk7Ci0JCW5vdXZlYXVfZmVuY2VfdW5yZWYoJm1pZ3JhdGUtPmZlbmNlKTsKLQl9IGVsc2UgewotCQkvKgotCQkgKiBGSVhNRSB3YWl0IGZvciBjaGFubmVsIHRvIGJlIElETEUgYmVmb3JlIGZpbmFsaXppbmcKLQkJICogdGhlIGhtZW0gb2JqZWN0IGJlbG93IChub3V2ZWF1X21pZ3JhdGVfaG1lbV9maW5pKCkpID8KLQkJICovCisJZm9yIChpID0gMDsgYWRkciA8IGFyZ3MtPmVuZDsgaSsrKSB7CisJCWFyZ3MtPmRzdFtpXSA9IG5vdXZlYXVfZG1lbV9taWdyYXRlX2NvcHlfb25lKGRybSwgYXJncy0+c3JjW2ldLAorCQkJCWRtYV9hZGRycyArIG5yX2RtYSk7CisJCWlmIChhcmdzLT5kc3RbaV0pCisJCQlucl9kbWErKzsKKwkJYWRkciArPSBQQUdFX1NJWkU7CiAJfQogCi0Jd2hpbGUgKG1pZ3JhdGUtPmRtYV9uci0tKSB7Ci0JCWRtYV91bm1hcF9wYWdlKGRybS0+ZGV2LT5kZXYsIG1pZ3JhdGUtPmRtYVttaWdyYXRlLT5kbWFfbnJdLAotCQkJICAgICAgIFBBR0VfU0laRSwgUENJX0RNQV9CSURJUkVDVElPTkFMKTsKLQl9Ci0Ja2ZyZWUobWlncmF0ZS0+ZG1hKTsKKwlub3V2ZWF1X2ZlbmNlX25ldyhkcm0tPmRtZW0tPm1pZ3JhdGUuY2hhbiwgZmFsc2UsICZmZW5jZSk7CisJbWlncmF0ZV92bWFfcGFnZXMoYXJncyk7CisJbm91dmVhdV9kbWVtX2ZlbmNlX2RvbmUoJmZlbmNlKTsKIAorCXdoaWxlIChucl9kbWEtLSkgeworCQlkbWFfdW5tYXBfcGFnZShkcm0tPmRldi0+ZGV2LCBkbWFfYWRkcnNbbnJfZG1hXSwgUEFHRV9TSVpFLAorCQkJCURNQV9CSURJUkVDVElPTkFMKTsKKwl9CiAJLyoKLQkgKiBGSVhNRSBvcHRpbWl6YXRpb246IHVwZGF0ZSBHUFUgcGFnZSB0YWJsZSB0byBwb2ludCB0byBuZXdseQotCSAqIG1pZ3JhdGVkIG1lbW9yeS4KKwkgKiBGSVhNRSBvcHRpbWl6YXRpb246IHVwZGF0ZSBHUFUgcGFnZSB0YWJsZSB0byBwb2ludCB0byBuZXdseSBtaWdyYXRlZAorCSAqIG1lbW9yeS4KIAkgKi8KKwltaWdyYXRlX3ZtYV9maW5hbGl6ZShhcmdzKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBtaWdyYXRlX3ZtYV9vcHMgbm91dmVhdV9kbWVtX21pZ3JhdGVfb3BzID0gewotCS5hbGxvY19hbmRfY29weQkJPSBub3V2ZWF1X2RtZW1fbWlncmF0ZV9hbGxvY19hbmRfY29weSwKLQkuZmluYWxpemVfYW5kX21hcAk9IG5vdXZlYXVfZG1lbV9taWdyYXRlX2ZpbmFsaXplX2FuZF9tYXAsCi19OwotCiBpbnQKIG5vdXZlYXVfZG1lbV9taWdyYXRlX3ZtYShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSwKIAkJCSBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCSB1bnNpZ25lZCBsb25nIHN0YXJ0LAogCQkJIHVuc2lnbmVkIGxvbmcgZW5kKQogewotCXVuc2lnbmVkIGxvbmcgKnNyY19wZm5zLCAqZHN0X3BmbnMsIG5wYWdlczsKLQlzdHJ1Y3Qgbm91dmVhdV9taWdyYXRlIG1pZ3JhdGUgPSB7MH07Ci0JdW5zaWduZWQgbG9uZyBpLCBjLCBtYXg7Ci0JaW50IHJldCA9IDA7CisJdW5zaWduZWQgbG9uZyBucGFnZXMgPSAoZW5kIC0gc3RhcnQpID4+IFBBR0VfU0hJRlQ7CisJdW5zaWduZWQgbG9uZyBtYXggPSBtaW4oU0dfTUFYX1NJTkdMRV9BTExPQywgbnBhZ2VzKTsKKwlkbWFfYWRkcl90ICpkbWFfYWRkcnM7CisJc3RydWN0IG1pZ3JhdGVfdm1hIGFyZ3MgPSB7CisJCS52bWEJCT0gdm1hLAorCQkuc3RhcnQJCT0gc3RhcnQsCisJfTsKKwl1bnNpZ25lZCBsb25nIGMsIGk7CisJaW50IHJldCA9IC1FTk9NRU07CiAKLQlucGFnZXMgPSAoZW5kIC0gc3RhcnQpID4+IFBBR0VfU0hJRlQ7Ci0JbWF4ID0gbWluKFNHX01BWF9TSU5HTEVfQUxMT0MsIG5wYWdlcyk7Ci0Jc3JjX3BmbnMgPSBremFsbG9jKHNpemVvZihsb25nKSAqIG1heCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKHNyY19wZm5zID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCWRzdF9wZm5zID0ga3phbGxvYyhzaXplb2YobG9uZykgKiBtYXgsIEdGUF9LRVJORUwpOwotCWlmIChkc3RfcGZucyA9PSBOVUxMKSB7Ci0JCWtmcmVlKHNyY19wZm5zKTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQorCWFyZ3Muc3JjID0ga2NhbGxvYyhtYXgsIHNpemVvZihhcmdzLnNyYyksIEdGUF9LRVJORUwpOworCWlmICghYXJncy5zcmMpCisJCWdvdG8gb3V0OworCWFyZ3MuZHN0ID0ga2NhbGxvYyhtYXgsIHNpemVvZihhcmdzLmRzdCksIEdGUF9LRVJORUwpOworCWlmICghYXJncy5kc3QpCisJCWdvdG8gb3V0X2ZyZWVfc3JjOwogCi0JbWlncmF0ZS5kcm0gPSBkcm07Ci0JbWlncmF0ZS52bWEgPSB2bWE7Ci0JbWlncmF0ZS5ucGFnZXMgPSBucGFnZXM7CisJZG1hX2FkZHJzID0ga21hbGxvY19hcnJheShtYXgsIHNpemVvZigqZG1hX2FkZHJzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkbWFfYWRkcnMpCisJCWdvdG8gb3V0X2ZyZWVfZHN0OworCiAJZm9yIChpID0gMDsgaSA8IG5wYWdlczsgaSArPSBjKSB7Ci0JCXVuc2lnbmVkIGxvbmcgbmV4dDsKLQogCQljID0gbWluKFNHX01BWF9TSU5HTEVfQUxMT0MsIG5wYWdlcyk7Ci0JCW5leHQgPSBzdGFydCArIChjIDw8IFBBR0VfU0hJRlQpOwotCQlyZXQgPSBtaWdyYXRlX3ZtYSgmbm91dmVhdV9kbWVtX21pZ3JhdGVfb3BzLCB2bWEsIHN0YXJ0LAotCQkJCSAgbmV4dCwgc3JjX3BmbnMsIGRzdF9wZm5zLCAmbWlncmF0ZSk7CisJCWFyZ3MuZW5kID0gc3RhcnQgKyAoYyA8PCBQQUdFX1NISUZUKTsKKwkJcmV0ID0gbWlncmF0ZV92bWFfc2V0dXAoJmFyZ3MpOwogCQlpZiAocmV0KQotCQkJZ290byBvdXQ7Ci0JCXN0YXJ0ID0gbmV4dDsKKwkJCWdvdG8gb3V0X2ZyZWVfZG1hOworCisJCWlmIChhcmdzLmNwYWdlcykKKwkJCW5vdXZlYXVfZG1lbV9taWdyYXRlX2NodW5rKGRybSwgJmFyZ3MsIGRtYV9hZGRycyk7CisJCWFyZ3Muc3RhcnQgPSBhcmdzLmVuZDsKIAl9CiAKKwlyZXQgPSAwOworb3V0X2ZyZWVfZG1hOgorCWtmcmVlKGRtYV9hZGRycyk7CitvdXRfZnJlZV9kc3Q6CisJa2ZyZWUoYXJncy5kc3QpOworb3V0X2ZyZWVfc3JjOgorCWtmcmVlKGFyZ3Muc3JjKTsKIG91dDoKLQlrZnJlZShkc3RfcGZucyk7Ci0Ja2ZyZWUoc3JjX3BmbnMpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTg0MSwxMSArNjgzLDEwIEBAIG5vdXZlYXVfZG1lbV9jb252ZXJ0X3BmbihzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSwKIAogCW5wYWdlcyA9IChyYW5nZS0+ZW5kIC0gcmFuZ2UtPnN0YXJ0KSA+PiBQQUdFX1NISUZUOwogCWZvciAoaSA9IDA7IGkgPCBucGFnZXM7ICsraSkgewotCQlzdHJ1Y3Qgbm91dmVhdV9kbWVtX2NodW5rICpjaHVuazsKIAkJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJCXVpbnQ2NF90IGFkZHI7CiAKLQkJcGFnZSA9IGhtbV9wZm5fdG9fcGFnZShyYW5nZSwgcmFuZ2UtPnBmbnNbaV0pOworCQlwYWdlID0gaG1tX2RldmljZV9lbnRyeV90b19wYWdlKHJhbmdlLCByYW5nZS0+cGZuc1tpXSk7CiAJCWlmIChwYWdlID09IE5VTEwpCiAJCQljb250aW51ZTsKIApAQCAtODU5LDEwICs3MDAsNyBAQCBub3V2ZWF1X2RtZW1fY29udmVydF9wZm4oc3RydWN0IG5vdXZlYXVfZHJtICpkcm0sCiAJCQljb250aW51ZTsKIAkJfQogCi0JCWNodW5rID0gcGFnZS0+em9uZV9kZXZpY2VfZGF0YTsKLQkJYWRkciA9IHBhZ2VfdG9fcGZuKHBhZ2UpIC0gY2h1bmstPnBmbl9maXJzdDsKLQkJYWRkciA9IChhZGRyICsgY2h1bmstPmJvLT5iby5tZW0uc3RhcnQpIDw8IFBBR0VfU0hJRlQ7Ci0KKwkJYWRkciA9IG5vdXZlYXVfZG1lbV9wYWdlX2FkZHIocGFnZSk7CiAJCXJhbmdlLT5wZm5zW2ldICY9ICgoMVVMIDw8IHJhbmdlLT5wZm5fc2hpZnQpIC0gMSk7CiAJCXJhbmdlLT5wZm5zW2ldIHw9IChhZGRyID4+IFBBR0VfU0hJRlQpIDw8IHJhbmdlLT5wZm5fc2hpZnQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kbWVtLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RtZW0uaAppbmRleCA5ZDk3ZDc1Li45MjM5NGJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RtZW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RtZW0uaApAQCAtNDUsMTYgKzQ1LDUgQEAgc3RhdGljIGlubGluZSB2b2lkIG5vdXZlYXVfZG1lbV9pbml0KHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKSB7fQogc3RhdGljIGlubGluZSB2b2lkIG5vdXZlYXVfZG1lbV9maW5pKHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKSB7fQogc3RhdGljIGlubGluZSB2b2lkIG5vdXZlYXVfZG1lbV9zdXNwZW5kKHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKSB7fQogc3RhdGljIGlubGluZSB2b2lkIG5vdXZlYXVfZG1lbV9yZXN1bWUoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pIHt9Ci0KLXN0YXRpYyBpbmxpbmUgaW50IG5vdXZlYXVfZG1lbV9taWdyYXRlX3ZtYShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSwKLQkJCQkJICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0JCQkJCSAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCQkJCSAgIHVuc2lnbmVkIGxvbmcgZW5kKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgbm91dmVhdV9kbWVtX2NvbnZlcnRfcGZuKHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtLAotCQkJCQkgICAgc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpIHt9CiAjZW5kaWYgLyogSVNfRU5BQkxFRChDT05GSUdfRFJNX05PVVZFQVVfU1ZNKSAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RwLmMKaW5kZXggMGQwNTJlMS4uMjY3NGYxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHAuYwpAQCAtMjIsNyArMjIsNiBAQAogICogQXV0aG9yczogQmVuIFNrZWdncwogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fZHBfaGVscGVyLmg+CiAKICNpbmNsdWRlICJub3V2ZWF1X2Rydi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMKaW5kZXggN2MyZmNhYi4uMmNkODM4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5jCkBAIC0yOCw5ICsyOCwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KICNpbmNsdWRlIDxsaW51eC92Z2Ffc3dpdGNoZXJvby5oPgorI2luY2x1ZGUgPGxpbnV4L21tdV9ub3RpZmllci5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlIDxjb3JlL2dwdW9iai5oPgogI2luY2x1ZGUgPGNvcmUvb3B0aW9uLmg+CkBAIC0xMDQ2LDIwICsxMDQ4LDIwIEBAIG5vdXZlYXVfZHJtX3Bvc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZwcml2KQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjCiBub3V2ZWF1X2lvY3Rsc1tdID0gewotCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfR0VUUEFSQU0sIG5vdXZlYXVfYWJpMTZfaW9jdGxfZ2V0cGFyYW0sIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfU0VUUEFSQU0sIG5vdXZlYXVfYWJpMTZfaW9jdGxfc2V0cGFyYW0sIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTk9VVkVBVV9DSEFOTkVMX0FMTE9DLCBub3V2ZWF1X2FiaTE2X2lvY3RsX2NoYW5uZWxfYWxsb2MsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfQ0hBTk5FTF9GUkVFLCBub3V2ZWF1X2FiaTE2X2lvY3RsX2NoYW5uZWxfZnJlZSwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTk9VVkVBVV9HUk9CSl9BTExPQywgbm91dmVhdV9hYmkxNl9pb2N0bF9ncm9ial9hbGxvYywgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTk9VVkVBVV9OT1RJRklFUk9CSl9BTExPQywgbm91dmVhdV9hYmkxNl9pb2N0bF9ub3RpZmllcm9ial9hbGxvYywgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTk9VVkVBVV9HUFVPQkpfRlJFRSwgbm91dmVhdV9hYmkxNl9pb2N0bF9ncHVvYmpfZnJlZSwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTk9VVkVBVV9TVk1fSU5JVCwgbm91dmVhdV9zdm1tX2luaXQsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfU1ZNX0JJTkQsIG5vdXZlYXVfc3ZtbV9iaW5kLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihOT1VWRUFVX0dFTV9ORVcsIG5vdXZlYXVfZ2VtX2lvY3RsX25ldywgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTk9VVkVBVV9HRU1fUFVTSEJVRiwgbm91dmVhdV9nZW1faW9jdGxfcHVzaGJ1ZiwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoTk9VVkVBVV9HRU1fQ1BVX1BSRVAsIG5vdXZlYXVfZ2VtX2lvY3RsX2NwdV9wcmVwLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihOT1VWRUFVX0dFTV9DUFVfRklOSSwgbm91dmVhdV9nZW1faW9jdGxfY3B1X2ZpbmksIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAotCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfR0VNX0lORk8sIG5vdXZlYXVfZ2VtX2lvY3RsX2luZm8sIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfR0VUUEFSQU0sIG5vdXZlYXVfYWJpMTZfaW9jdGxfZ2V0cGFyYW0sIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfU0VUUEFSQU0sIGRybV9pbnZhbGlkX29wLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfQ0hBTk5FTF9BTExPQywgbm91dmVhdV9hYmkxNl9pb2N0bF9jaGFubmVsX2FsbG9jLCBEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihOT1VWRUFVX0NIQU5ORUxfRlJFRSwgbm91dmVhdV9hYmkxNl9pb2N0bF9jaGFubmVsX2ZyZWUsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfR1JPQkpfQUxMT0MsIG5vdXZlYXVfYWJpMTZfaW9jdGxfZ3JvYmpfYWxsb2MsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfTk9USUZJRVJPQkpfQUxMT0MsIG5vdXZlYXVfYWJpMTZfaW9jdGxfbm90aWZpZXJvYmpfYWxsb2MsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfR1BVT0JKX0ZSRUUsIG5vdXZlYXVfYWJpMTZfaW9jdGxfZ3B1b2JqX2ZyZWUsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfU1ZNX0lOSVQsIG5vdXZlYXVfc3ZtbV9pbml0LCBEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihOT1VWRUFVX1NWTV9CSU5ELCBub3V2ZWF1X3N2bW1fYmluZCwgRFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRl9EUlYoTk9VVkVBVV9HRU1fTkVXLCBub3V2ZWF1X2dlbV9pb2N0bF9uZXcsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfR0VNX1BVU0hCVUYsIG5vdXZlYXVfZ2VtX2lvY3RsX3B1c2hidWYsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKE5PVVZFQVVfR0VNX0NQVV9QUkVQLCBub3V2ZWF1X2dlbV9pb2N0bF9jcHVfcHJlcCwgRFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRl9EUlYoTk9VVkVBVV9HRU1fQ1BVX0ZJTkksIG5vdXZlYXVfZ2VtX2lvY3RsX2NwdV9maW5pLCBEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihOT1VWRUFVX0dFTV9JTkZPLCBub3V2ZWF1X2dlbV9pb2N0bF9pbmZvLCBEUk1fUkVOREVSX0FMTE9XKSwKIH07CiAKIGxvbmcKQEAgLTExMDUsNyArMTEwNyw3IEBAIG5vdXZlYXVfZHJpdmVyX2ZvcHMgPSB7CiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIKIGRyaXZlcl9zdHViID0gewogCS5kcml2ZXJfZmVhdHVyZXMgPQotCQlEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfUFJJTUUgfCBEUklWRVJfUkVOREVSCisJCURSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9SRU5ERVIKICNpZiBkZWZpbmVkKENPTkZJR19OT1VWRUFVX0xFR0FDWV9DVFhfU1VQUE9SVCkKIAkJfCBEUklWRVJfS01TX0xFR0FDWV9DT05URVhUCiAjZW5kaWYKQEAgLTExMzAsMTAgKzExMzIsNyBAQCBkcml2ZXJfc3R1YiA9IHsKIAogCS5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFuZGxlID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKLQkuZ2VtX3ByaW1lX2ltcG9ydCA9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAogCS5nZW1fcHJpbWVfcGluID0gbm91dmVhdV9nZW1fcHJpbWVfcGluLAotCS5nZW1fcHJpbWVfcmVzX29iaiA9IG5vdXZlYXVfZ2VtX3ByaW1lX3Jlc19vYmosCiAJLmdlbV9wcmltZV91bnBpbiA9IG5vdXZlYXVfZ2VtX3ByaW1lX3VucGluLAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gbm91dmVhdV9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gbm91dmVhdV9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlLApAQCAtMTI5Miw2ICsxMjkxLDggQEAgbm91dmVhdV9kcm1fZXhpdCh2b2lkKQogI2lmZGVmIENPTkZJR19OT1VWRUFVX1BMQVRGT1JNX0RSSVZFUgogCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZub3V2ZWF1X3BsYXRmb3JtX2RyaXZlcik7CiAjZW5kaWYKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfRFJNX05PVVZFQVVfU1ZNKSkKKwkJbW11X25vdGlmaWVyX3N5bmNocm9uaXplKCk7CiB9CiAKIG1vZHVsZV9pbml0KG5vdXZlYXVfZHJtX2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmgKaW5kZXggYWFlMDM1OC4uNzBmMzRjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oCkBAIC00Niw3ICs0NiwxMCBAQAogI2luY2x1ZGUgPG52aWYvbW11Lmg+CiAjaW5jbHVkZSA8bnZpZi92bW0uaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CiAKICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19hcGkuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19kcml2ZXIuaD4KQEAgLTEyNyw3ICsxMzAsNiBAQCBub3V2ZWF1X2NsaShzdHJ1Y3QgZHJtX2ZpbGUgKmZwcml2KQogfQogCiAjaW5jbHVkZSA8bnZpZi9vYmplY3QuaD4KLSNpbmNsdWRlIDxudmlmL2RldmljZS5oPgogCiBzdHJ1Y3Qgbm91dmVhdV9kcm0gewogCXN0cnVjdCBub3V2ZWF1X2NsaSBtYXN0ZXI7CkBAIC0yMDQsOSArMjA2LDYgQEAgc3RydWN0IG5vdXZlYXVfZHJtIHsKIAkvKiBsZWQgbWFuYWdlbWVudCAqLwogCXN0cnVjdCBub3V2ZWF1X2xlZCAqbGVkOwogCi0JLyogZGlzcGxheSBwb3dlciByZWZlcmVuY2UgKi8KLQlib29sIGhhdmVfZGlzcF9wb3dlcl9yZWY7Ci0KIAlzdHJ1Y3QgZGV2X3BtX2RvbWFpbiB2Z2FfcG1fZG9tYWluOwogCiAJc3RydWN0IG5vdXZlYXVfc3ZtICpzdm07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZiY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZiY29uLmMKaW5kZXggNzNjYzMyMS4uZjQzOWYwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mYmNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmJjb24uYwpAQCAtMzcsMTAgKzM3LDEwIEBACiAjaW5jbHVkZSA8bGludXgvdmdhX3N3aXRjaGVyb28uaD4KICNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KIAogI2luY2x1ZGUgIm5vdXZlYXVfZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmMKaW5kZXggZDQ5NjRmMy4uOTExOGRmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmVuY2UuYwpAQCAtMjQsMTAgKzI0LDkgQEAKICAqCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0KICNpbmNsdWRlIDxsaW51eC9rdGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L2hydGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC9zaWduYWwuaD4KICNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmg+CiAKICNpbmNsdWRlIDxudmlmL2NsODI2ZS5oPgpAQCAtMzM1LDIwICszMzQsMjAgQEAgbm91dmVhdV9mZW5jZV9zeW5jKHN0cnVjdCBub3V2ZWF1X2JvICpudmJvLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuLCBib29sIGUKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV9jaGFuICpmY3R4ID0gY2hhbi0+ZmVuY2U7CiAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IG52Ym8tPmJvLnJlc3Y7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOworCXN0cnVjdCBkbWFfcmVzdiAqcmVzdiA9IG52Ym8tPmJvLmJhc2UucmVzdjsKKwlzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqZm9iajsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZjsKIAlpbnQgcmV0ID0gMCwgaTsKIAogCWlmICghZXhjbHVzaXZlKSB7Ci0JCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChyZXN2LCAxKTsKKwkJcmV0ID0gZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQocmVzdiwgMSk7CiAKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JZm9iaiA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChyZXN2KTsKLQlmZW5jZSA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChyZXN2KTsKKwlmb2JqID0gZG1hX3Jlc3ZfZ2V0X2xpc3QocmVzdik7CisJZmVuY2UgPSBkbWFfcmVzdl9nZXRfZXhjbChyZXN2KTsKIAogCWlmIChmZW5jZSAmJiAoIWV4Y2x1c2l2ZSB8fCAhZm9iaiB8fCAhZm9iai0+c2hhcmVkX2NvdW50KSkgewogCQlzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpwcmV2ID0gTlVMTDsKQEAgLTM3Nyw3ICszNzYsNyBAQCBub3V2ZWF1X2ZlbmNlX3N5bmMoc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8sIHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4sIGJvb2wgZQogCQlib29sIG11c3Rfd2FpdCA9IHRydWU7CiAKIAkJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKLQkJCQkJCXJlc2VydmF0aW9uX29iamVjdF9oZWxkKHJlc3YpKTsKKwkJCQkJCWRtYV9yZXN2X2hlbGQocmVzdikpOwogCiAJCWYgPSBub3V2ZWF1X2xvY2FsX2ZlbmNlKGZlbmNlLCBjaGFuLT5kcm0pOwogCQlpZiAoZikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMKaW5kZXggYjRiZGE3MS4uMTMyNGMxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jCkBAIC01MSwxMCArNTEsNiBAQCBub3V2ZWF1X2dlbV9vYmplY3RfZGVsKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtKQogCWlmIChnZW0tPmltcG9ydF9hdHRhY2gpCiAJCWRybV9wcmltZV9nZW1fZGVzdHJveShnZW0sIG52Ym8tPmJvLnNnKTsKIAotCWRybV9nZW1fb2JqZWN0X3JlbGVhc2UoZ2VtKTsKLQotCS8qIHJlc2V0IGZpbHAgc28gbm91dmVhdV9ib19kZWxfdHRtKCkgY2FuIHRlc3QgZm9yIGl0ICovCi0JZ2VtLT5maWxwID0gTlVMTDsKIAl0dG1fYm9fcHV0KCZudmJvLT5ibyk7CiAKIAlwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGRldik7CkBAIC0xODgsMTEgKzE4NCwyNCBAQCBub3V2ZWF1X2dlbV9uZXcoc3RydWN0IG5vdXZlYXVfY2xpICpjbGksIHU2NCBzaXplLCBpbnQgYWxpZ24sIHVpbnQzMl90IGRvbWFpbiwKIAlpZiAoZG9tYWluICYgTk9VVkVBVV9HRU1fRE9NQUlOX0NPSEVSRU5UKQogCQlmbGFncyB8PSBUVE1fUExfRkxBR19VTkNBQ0hFRDsKIAotCXJldCA9IG5vdXZlYXVfYm9fbmV3KGNsaSwgc2l6ZSwgYWxpZ24sIGZsYWdzLCB0aWxlX21vZGUsCi0JCQkgICAgIHRpbGVfZmxhZ3MsIE5VTEwsIE5VTEwsIHBudmJvKTsKLQlpZiAocmV0KQorCW52Ym8gPSBub3V2ZWF1X2JvX2FsbG9jKGNsaSwgJnNpemUsICZhbGlnbiwgZmxhZ3MsIHRpbGVfbW9kZSwKKwkJCQl0aWxlX2ZsYWdzKTsKKwlpZiAoSVNfRVJSKG52Ym8pKQorCQlyZXR1cm4gUFRSX0VSUihudmJvKTsKKworCS8qIEluaXRpYWxpemUgdGhlIGVtYmVkZGVkIGdlbS1vYmplY3QuIFdlIHJldHVybiBhIHNpbmdsZSBnZW0tcmVmZXJlbmNlCisJICogdG8gdGhlIGNhbGxlciwgaW5zdGVhZCBvZiBhIG5vcm1hbCBub3V2ZWF1X2JvIHR0bSByZWZlcmVuY2UuICovCisJcmV0ID0gZHJtX2dlbV9vYmplY3RfaW5pdChkcm0tPmRldiwgJm52Ym8tPmJvLmJhc2UsIHNpemUpOworCWlmIChyZXQpIHsKKwkJbm91dmVhdV9ib19yZWYoTlVMTCwgJm52Ym8pOwogCQlyZXR1cm4gcmV0OwotCW52Ym8gPSAqcG52Ym87CisJfQorCisJcmV0ID0gbm91dmVhdV9ib19pbml0KG52Ym8sIHNpemUsIGFsaWduLCBmbGFncywgTlVMTCwgTlVMTCk7CisJaWYgKHJldCkgeworCQlub3V2ZWF1X2JvX3JlZihOVUxMLCAmbnZibyk7CisJCXJldHVybiByZXQ7CisJfQogCiAJLyogd2UgcmVzdHJpY3QgYWxsb3dlZCBkb21haW5zIG9uIG52NTArIHRvIG9ubHkgdGhlIHR5cGVzCiAJICogdGhhdCB3ZXJlIHJlcXVlc3RlZCBhdCBjcmVhdGlvbiB0aW1lLiAgbm90IHBvc3NpYmx5IG9uCkBAIC0yMDMsMTUgKzIxMiw4IEBAIG5vdXZlYXVfZ2VtX25ldyhzdHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaSwgdTY0IHNpemUsIGludCBhbGlnbiwgdWludDMyX3QgZG9tYWluLAogCWlmIChkcm0tPmNsaWVudC5kZXZpY2UuaW5mby5mYW1pbHkgPj0gTlZfREVWSUNFX0lORk9fVjBfVEVTTEEpCiAJCW52Ym8tPnZhbGlkX2RvbWFpbnMgJj0gZG9tYWluOwogCi0JLyogSW5pdGlhbGl6ZSB0aGUgZW1iZWRkZWQgZ2VtLW9iamVjdC4gV2UgcmV0dXJuIGEgc2luZ2xlIGdlbS1yZWZlcmVuY2UKLQkgKiB0byB0aGUgY2FsbGVyLCBpbnN0ZWFkIG9mIGEgbm9ybWFsIG5vdXZlYXVfYm8gdHRtIHJlZmVyZW5jZS4gKi8KLQlyZXQgPSBkcm1fZ2VtX29iamVjdF9pbml0KGRybS0+ZGV2LCAmbnZiby0+Z2VtLCBudmJvLT5iby5tZW0uc2l6ZSk7Ci0JaWYgKHJldCkgewotCQlub3V2ZWF1X2JvX3JlZihOVUxMLCBwbnZibyk7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KLQotCW52Ym8tPmJvLnBlcnNpc3RlbnRfc3dhcF9zdG9yYWdlID0gbnZiby0+Z2VtLmZpbHA7CisJbnZiby0+Ym8ucGVyc2lzdGVudF9zd2FwX3N0b3JhZ2UgPSBudmJvLT5iby5iYXNlLmZpbHA7CisJKnBudmJvID0gbnZibzsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjQwLDcgKzI0Miw3IEBAIG5vdXZlYXVfZ2VtX2luZm8oc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtLAogCX0KIAogCXJlcC0+c2l6ZSA9IG52Ym8tPmJvLm1lbS5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKLQlyZXAtPm1hcF9oYW5kbGUgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJm52Ym8tPmJvLnZtYV9ub2RlKTsKKwlyZXAtPm1hcF9oYW5kbGUgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJm52Ym8tPmJvLmJhc2Uudm1hX25vZGUpOwogCXJlcC0+dGlsZV9tb2RlID0gbnZiby0+bW9kZTsKIAlyZXAtPnRpbGVfZmxhZ3MgPSBudmJvLT5jb250aWcgPyAwIDogTk9VVkVBVV9HRU1fVElMRV9OT05DT05USUc7CiAJaWYgKGNsaS0+ZGV2aWNlLmluZm8uZmFtaWx5ID49IE5WX0RFVklDRV9JTkZPX1YwX0ZFUk1JKQpAQCAtMjY4LDE1ICsyNzAsMTYgQEAgbm91dmVhdV9nZW1faW9jdGxfbmV3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxlX3ByaXYsICZudmJvLT5nZW0sICZyZXEtPmluZm8uaGFuZGxlKTsKKwlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCAmbnZiby0+Ym8uYmFzZSwKKwkJCQkgICAgJnJlcS0+aW5mby5oYW5kbGUpOwogCWlmIChyZXQgPT0gMCkgewotCQlyZXQgPSBub3V2ZWF1X2dlbV9pbmZvKGZpbGVfcHJpdiwgJm52Ym8tPmdlbSwgJnJlcS0+aW5mbyk7CisJCXJldCA9IG5vdXZlYXVfZ2VtX2luZm8oZmlsZV9wcml2LCAmbnZiby0+Ym8uYmFzZSwgJnJlcS0+aW5mbyk7CiAJCWlmIChyZXQpCiAJCQlkcm1fZ2VtX2hhbmRsZV9kZWxldGUoZmlsZV9wcml2LCByZXEtPmluZm8uaGFuZGxlKTsKIAl9CiAKIAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFsbG9jYXRlIC0gaGFuZGxlIGhvbGRzIGl0IG5vdyAqLwotCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZCgmbnZiby0+Z2VtKTsKKwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJm52Ym8tPmJvLmJhc2UpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTM1NSw3ICszNTgsNyBAQCB2YWxpZGF0ZV9maW5pX25vX3RpY2tldChzdHJ1Y3QgdmFsaWRhdGVfb3AgKm9wLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuLAogCQlsaXN0X2RlbCgmbnZiby0+ZW50cnkpOwogCQludmJvLT5yZXNlcnZlZF9ieSA9IE5VTEw7CiAJCXR0bV9ib191bnJlc2VydmUoJm52Ym8tPmJvKTsKLQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZudmJvLT5nZW0pOworCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJm52Ym8tPmJvLmJhc2UpOwogCX0KIH0KIApAQCAtNDkzLDcgKzQ5Niw3IEBAIHZhbGlkYXRlX2xpc3Qoc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiwgc3RydWN0IG5vdXZlYXVfY2xpICpjbGksCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShudmJvLCBsaXN0LCBlbnRyeSkgewogCQlzdHJ1Y3QgZHJtX25vdXZlYXVfZ2VtX3B1c2hidWZfYm8gKmIgPSAmcGJib1tudmJvLT5wYmJvX2luZGV4XTsKIAotCQlyZXQgPSBub3V2ZWF1X2dlbV9zZXRfZG9tYWluKCZudmJvLT5nZW0sIGItPnJlYWRfZG9tYWlucywKKwkJcmV0ID0gbm91dmVhdV9nZW1fc2V0X2RvbWFpbigmbnZiby0+Ym8uYmFzZSwgYi0+cmVhZF9kb21haW5zLAogCQkJCQkgICAgIGItPndyaXRlX2RvbWFpbnMsCiAJCQkJCSAgICAgYi0+dmFsaWRfZG9tYWlucyk7CiAJCWlmICh1bmxpa2VseShyZXQpKSB7CkBAIC04ODYsNyArODg5LDcgQEAgbm91dmVhdV9nZW1faW9jdGxfY3B1X3ByZXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIC1FTk9FTlQ7CiAJbnZibyA9IG5vdXZlYXVfZ2VtX29iamVjdChnZW0pOwogCi0JbHJldCA9IHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KG52Ym8tPmJvLnJlc3YsIHdyaXRlLCB0cnVlLAorCWxyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KG52Ym8tPmJvLmJhc2UucmVzdiwgd3JpdGUsIHRydWUsCiAJCQkJCQkgICBub193YWl0ID8gMCA6IDMwICogSFopOwogCWlmICghbHJldCkKIAkJcmV0ID0gLUVCVVNZOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmgKaW5kZXggMDMzNzEyMC4uOTc4ZTA3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5oCkBAIC0yLDE1ICsyLDEzIEBACiAjaWZuZGVmIF9fTk9VVkVBVV9HRU1fSF9fCiAjZGVmaW5lIF9fTk9VVkVBVV9HRU1fSF9fCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotCiAjaW5jbHVkZSAibm91dmVhdV9kcnYuaCIKICNpbmNsdWRlICJub3V2ZWF1X2JvLmgiCiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IG5vdXZlYXVfYm8gKgogbm91dmVhdV9nZW1fb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtKQogewotCXJldHVybiBnZW0gPyBjb250YWluZXJfb2YoZ2VtLCBzdHJ1Y3Qgbm91dmVhdV9ibywgZ2VtKSA6IE5VTEw7CisJcmV0dXJuIGdlbSA/IGNvbnRhaW5lcl9vZihnZW0sIHN0cnVjdCBub3V2ZWF1X2JvLCBiby5iYXNlKSA6IE5VTEw7CiB9CiAKIC8qIG5vdXZlYXVfZ2VtLmMgKi8KQEAgLTMzLDcgKzMxLDYgQEAgZXh0ZXJuIGludCBub3V2ZWF1X2dlbV9pb2N0bF9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICosIHZvaWQgKiwKIAkJCQkgIHN0cnVjdCBkcm1fZmlsZSAqKTsKIAogZXh0ZXJuIGludCBub3V2ZWF1X2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICopOwotc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqbm91dmVhdV9nZW1fcHJpbWVfcmVzX29iaihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKik7CiBleHRlcm4gdm9pZCBub3V2ZWF1X2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKik7CiBleHRlcm4gc3RydWN0IHNnX3RhYmxlICpub3V2ZWF1X2dlbV9wcmltZV9nZXRfc2dfdGFibGUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICopOwogZXh0ZXJuIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqbm91dmVhdV9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9od21vbi5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9od21vbi5jCmluZGV4IDZhZjJkMjkuLmQ0NDVjNmYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2h3bW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9od21vbi5jCkBAIC0yOSw4ICsyOSw2IEBACiAjaW5jbHVkZSA8bGludXgvaHdtb24uaD4KICNpbmNsdWRlIDxsaW51eC9od21vbi1zeXNmcy5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLQogI2luY2x1ZGUgIm5vdXZlYXVfZHJ2LmgiCiAjaW5jbHVkZSAibm91dmVhdV9od21vbi5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2lvYzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2lvYzMyLmMKaW5kZXggNDYyNjc5YS4uYWRmMDFjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9pb2MzMi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfaW9jMzIuYwpAQCAtMzMsNyArMzMsOCBAQAogCiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lvY3RsLmg+CiAKICNpbmNsdWRlICJub3V2ZWF1X2lvY3RsLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfcHJpbWUuYwppbmRleCAxZmVmYzkzLi5iYWU2YTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ByaW1lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9wcmltZS5jCkBAIC0yMiw3ICsyMiw2IEBACiAgKiBBdXRob3JzOiBEYXZlIEFpcmxpZQogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KIAogI2luY2x1ZGUgIm5vdXZlYXVfZHJ2LmgiCkBAIC02MSwzMSArNjAsNDYgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpub3V2ZWF1X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJCQkgc3RydWN0IHNnX3RhYmxlICpzZykKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKGRldik7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IG5vdXZlYXVfYm8gKm52Ym87Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcm9iaiA9IGF0dGFjaC0+ZG1hYnVmLT5yZXN2OworCXN0cnVjdCBkbWFfcmVzdiAqcm9iaiA9IGF0dGFjaC0+ZG1hYnVmLT5yZXN2OworCXU2NCBzaXplID0gYXR0YWNoLT5kbWFidWYtPnNpemU7CiAJdTMyIGZsYWdzID0gMDsKKwlpbnQgYWxpZ24gPSAwOwogCWludCByZXQ7CiAKIAlmbGFncyA9IFRUTV9QTF9GTEFHX1RUOwogCi0Jd3dfbXV0ZXhfbG9jaygmcm9iai0+bG9jaywgTlVMTCk7Ci0JcmV0ID0gbm91dmVhdV9ib19uZXcoJmRybS0+Y2xpZW50LCBhdHRhY2gtPmRtYWJ1Zi0+c2l6ZSwgMCwgZmxhZ3MsIDAsIDAsCi0JCQkgICAgIHNnLCByb2JqLCAmbnZibyk7Ci0Jd3dfbXV0ZXhfdW5sb2NrKCZyb2JqLT5sb2NrKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gRVJSX1BUUihyZXQpOworCWRtYV9yZXN2X2xvY2socm9iaiwgTlVMTCk7CisJbnZibyA9IG5vdXZlYXVfYm9fYWxsb2MoJmRybS0+Y2xpZW50LCAmc2l6ZSwgJmFsaWduLCBmbGFncywgMCwgMCk7CisJaWYgKElTX0VSUihudmJvKSkgeworCQlvYmogPSBFUlJfQ0FTVChudmJvKTsKKwkJZ290byB1bmxvY2s7CisJfQogCiAJbnZiby0+dmFsaWRfZG9tYWlucyA9IE5PVVZFQVVfR0VNX0RPTUFJTl9HQVJUOwogCiAJLyogSW5pdGlhbGl6ZSB0aGUgZW1iZWRkZWQgZ2VtLW9iamVjdC4gV2UgcmV0dXJuIGEgc2luZ2xlIGdlbS1yZWZlcmVuY2UKIAkgKiB0byB0aGUgY2FsbGVyLCBpbnN0ZWFkIG9mIGEgbm9ybWFsIG5vdXZlYXVfYm8gdHRtIHJlZmVyZW5jZS4gKi8KLQlyZXQgPSBkcm1fZ2VtX29iamVjdF9pbml0KGRldiwgJm52Ym8tPmdlbSwgbnZiby0+Ym8ubWVtLnNpemUpOworCXJldCA9IGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LCAmbnZiby0+Ym8uYmFzZSwgc2l6ZSk7CiAJaWYgKHJldCkgewogCQlub3V2ZWF1X2JvX3JlZihOVUxMLCAmbnZibyk7Ci0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCQlvYmogPSBFUlJfUFRSKC1FTk9NRU0pOworCQlnb3RvIHVubG9jazsKIAl9CiAKLQlyZXR1cm4gJm52Ym8tPmdlbTsKKwlyZXQgPSBub3V2ZWF1X2JvX2luaXQobnZibywgc2l6ZSwgYWxpZ24sIGZsYWdzLCBzZywgcm9iaik7CisJaWYgKHJldCkgeworCQlub3V2ZWF1X2JvX3JlZihOVUxMLCAmbnZibyk7CisJCW9iaiA9IEVSUl9QVFIocmV0KTsKKwkJZ290byB1bmxvY2s7CisJfQorCisJb2JqID0gJm52Ym8tPmJvLmJhc2U7CisKK3VubG9jazoKKwlkbWFfcmVzdl91bmxvY2socm9iaik7CisJcmV0dXJuIG9iajsKIH0KIAogaW50IG5vdXZlYXVfZ2VtX3ByaW1lX3BpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKQEAgLTEwNywxMCArMTIxLDMgQEAgdm9pZCBub3V2ZWF1X2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIAogCW5vdXZlYXVfYm9fdW5waW4obnZibyk7CiB9Ci0KLXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm5vdXZlYXVfZ2VtX3ByaW1lX3Jlc19vYmooc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCi17Ci0Jc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8gPSBub3V2ZWF1X2dlbV9vYmplY3Qob2JqKTsKLQotCXJldHVybiBudmJvLT5iby5yZXN2OwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc3ZtLmMKaW5kZXggYTgzNWNlYmIuLjY2OGQ0YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYwpAQCAtMjUyLDEzICsyNTIsMTMgQEAgbm91dmVhdV9zdm1tX2ludmFsaWRhdGUoc3RydWN0IG5vdXZlYXVfc3ZtbSAqc3ZtbSwgdTY0IHN0YXJ0LCB1NjQgbGltaXQpCiAKIHN0YXRpYyBpbnQKIG5vdXZlYXVfc3ZtbV9zeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcyhzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLAotCQkJCQljb25zdCBzdHJ1Y3QgaG1tX3VwZGF0ZSAqdXBkYXRlKQorCQkJCQljb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlICp1cGRhdGUpCiB7CiAJc3RydWN0IG5vdXZlYXVfc3ZtbSAqc3ZtbSA9IGNvbnRhaW5lcl9vZihtaXJyb3IsIHR5cGVvZigqc3ZtbSksIG1pcnJvcik7CiAJdW5zaWduZWQgbG9uZyBzdGFydCA9IHVwZGF0ZS0+c3RhcnQ7CiAJdW5zaWduZWQgbG9uZyBsaW1pdCA9IHVwZGF0ZS0+ZW5kOwogCi0JaWYgKCF1cGRhdGUtPmJsb2NrYWJsZSkKKwlpZiAoIW1tdV9ub3RpZmllcl9yYW5nZV9ibG9ja2FibGUodXBkYXRlKSkKIAkJcmV0dXJuIC1FQUdBSU47CiAKIAlTVk1NX0RCRyhzdm1tLCAiaW52YWxpZGF0ZSAlMDE2bHgtJTAxNmx4Iiwgc3RhcnQsIGxpbWl0KTsKQEAgLTQ4NSwzMSArNDg1LDI5IEBAIG5vdXZlYXVfcmFuZ2VfZG9uZShzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSkKIH0KIAogc3RhdGljIGludAotbm91dmVhdV9yYW5nZV9mYXVsdChzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLCBzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSkKK25vdXZlYXVfcmFuZ2VfZmF1bHQoc3RydWN0IG5vdXZlYXVfc3ZtbSAqc3ZtbSwgc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiB7CiAJbG9uZyByZXQ7CiAKIAlyYW5nZS0+ZGVmYXVsdF9mbGFncyA9IDA7CiAJcmFuZ2UtPnBmbl9mbGFnc19tYXNrID0gLTFVTDsKIAotCXJldCA9IGhtbV9yYW5nZV9yZWdpc3RlcihyYW5nZSwgbWlycm9yLAotCQkJCSByYW5nZS0+c3RhcnQsIHJhbmdlLT5lbmQsCi0JCQkJIFBBR0VfU0hJRlQpOworCXJldCA9IGhtbV9yYW5nZV9yZWdpc3RlcihyYW5nZSwgJnN2bW0tPm1pcnJvcik7CiAJaWYgKHJldCkgewotCQl1cF9yZWFkKCZyYW5nZS0+dm1hLT52bV9tbS0+bW1hcF9zZW0pOworCQl1cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOwogCQlyZXR1cm4gKGludClyZXQ7CiAJfQogCiAJaWYgKCFobW1fcmFuZ2Vfd2FpdF91bnRpbF92YWxpZChyYW5nZSwgSE1NX1JBTkdFX0RFRkFVTFRfVElNRU9VVCkpIHsKLQkJdXBfcmVhZCgmcmFuZ2UtPnZtYS0+dm1fbW0tPm1tYXBfc2VtKTsKLQkJcmV0dXJuIC1FQUdBSU47CisJCXVwX3JlYWQoJnN2bW0tPm1tLT5tbWFwX3NlbSk7CisJCXJldHVybiAtRUJVU1k7CiAJfQogCi0JcmV0ID0gaG1tX3JhbmdlX2ZhdWx0KHJhbmdlLCB0cnVlKTsKKwlyZXQgPSBobW1fcmFuZ2VfZmF1bHQocmFuZ2UsIDApOwogCWlmIChyZXQgPD0gMCkgewogCQlpZiAocmV0ID09IDApCiAJCQlyZXQgPSAtRUJVU1k7Ci0JCXVwX3JlYWQoJnJhbmdlLT52bWEtPnZtX21tLT5tbWFwX3NlbSk7CisJCXVwX3JlYWQoJnN2bW0tPm1tLT5tbWFwX3NlbSk7CiAJCWhtbV9yYW5nZV91bnJlZ2lzdGVyKHJhbmdlKTsKIAkJcmV0dXJuIHJldDsKIAl9CkBAIC02ODIsNyArNjgwLDYgQEAgbm91dmVhdV9zdm1fZmF1bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAJCQkgYXJncy5pLnAuYWRkciArIGFyZ3MuaS5wLnNpemUsIGZuIC0gZmkpOwogCiAJCS8qIEhhdmUgSE1NIGZhdWx0IHBhZ2VzIHdpdGhpbiB0aGUgZmF1bHQgd2luZG93IHRvIHRoZSBHUFUuICovCi0JCXJhbmdlLnZtYSA9IHZtYTsKIAkJcmFuZ2Uuc3RhcnQgPSBhcmdzLmkucC5hZGRyOwogCQlyYW5nZS5lbmQgPSBhcmdzLmkucC5hZGRyICsgYXJncy5pLnAuc2l6ZTsKIAkJcmFuZ2UucGZucyA9IGFyZ3MucGh5czsKQEAgLTY5MCw3ICs2ODcsNyBAQCBub3V2ZWF1X3N2bV9mYXVsdChzdHJ1Y3QgbnZpZl9ub3RpZnkgKm5vdGlmeSkKIAkJcmFuZ2UudmFsdWVzID0gbm91dmVhdV9zdm1fcGZuX3ZhbHVlczsKIAkJcmFuZ2UucGZuX3NoaWZ0ID0gTlZJRl9WTU1fUEZOTUFQX1YwX0FERFJfU0hJRlQ7CiBhZ2FpbjoKLQkJcmV0ID0gbm91dmVhdV9yYW5nZV9mYXVsdCgmc3ZtbS0+bWlycm9yLCAmcmFuZ2UpOworCQlyZXQgPSBub3V2ZWF1X3JhbmdlX2ZhdWx0KHN2bW0sICZyYW5nZSk7CiAJCWlmIChyZXQgPT0gMCkgewogCQkJbXV0ZXhfbG9jaygmc3ZtbS0+bXV0ZXgpOwogCQkJaWYgKCFub3V2ZWF1X3JhbmdlX2RvbmUoJnJhbmdlKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV92Z2EuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdmdhLmMKaW5kZXggOGY0YjEyYS4uZDg2NWQ4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV92Z2EuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ZnYS5jCkBAIC0yLDcgKzIsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3ZnYWFyYi5oPgogI2luY2x1ZGUgPGxpbnV4L3ZnYV9zd2l0Y2hlcm9vLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmlmL21tdS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZpZi9tbXUuYwppbmRleCBhZTA4YTFjLi41NjQxYmRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmlmL21tdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252aWYvbW11LmMKQEAgLTExMCw3ICsxMTAsNyBAQCBudmlmX21tdV9pbml0KHN0cnVjdCBudmlmX29iamVjdCAqcGFyZW50LCBzMzIgb2NsYXNzLCBzdHJ1Y3QgbnZpZl9tbXUgKm1tdSkKIAogCWlmIChtbXUtPmtpbmRfbnIpIHsKIAkJc3RydWN0IG52aWZfbW11X2tpbmRfdjAgKmtpbmQ7Ci0JCXUzMiBhcmdjID0gc2l6ZW9mKCpraW5kKSArIHNpemVvZigqa2luZC0+ZGF0YSkgKiBtbXUtPmtpbmRfbnI7CisJCXNpemVfdCBhcmdjID0gc3RydWN0X3NpemUoa2luZCwgZGF0YSwgbW11LT5raW5kX25yKTsKIAogCQlpZiAocmV0ID0gLUVOT01FTSwgIShraW5kID0ga21hbGxvYyhhcmdjLCBHRlBfS0VSTkVMKSkpCiAJCQlnb3RvIGRvbmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2dmMTAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2dmMTAwLmMKaW5kZXggMTBhMmU3MC4uNWEzOWU1MWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2YxMDAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2dmMTAwLmMKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxjb3JlL2VudW0uaD4KICNpbmNsdWRlIDxjb3JlL2dwdW9iai5oPgogI2luY2x1ZGUgPHN1YmRldi9iYXIuaD4KKyNpbmNsdWRlIDxzdWJkZXYvZmF1bHQuaD4KICNpbmNsdWRlIDxlbmdpbmUvc3cuaD4KIAogI2luY2x1ZGUgPG52aWYvY2xhc3MuaD4KQEAgLTE5NCw2ICsxOTUsMTE5IEBAIGdmMTAwX2ZpZm9fcmVjb3ZlcihzdHJ1Y3QgZ2YxMDBfZmlmbyAqZmlmbywgc3RydWN0IG52a21fZW5naW5lICplbmdpbmUsCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbnZrbV9lbnVtCitnZjEwMF9maWZvX2ZhdWx0X2VuZ2luZVtdID0geworCXsgMHgwMCwgIlBHUkFQSCIsIE5VTEwsIE5WS01fRU5HSU5FX0dSIH0sCisJeyAweDAzLCAiUEVFUEhPTEUiLCBOVUxMLCBOVktNX0VOR0lORV9JRkIgfSwKKwl7IDB4MDQsICJCQVIxIiwgTlVMTCwgTlZLTV9TVUJERVZfQkFSIH0sCisJeyAweDA1LCAiQkFSMyIsIE5VTEwsIE5WS01fU1VCREVWX0lOU1RNRU0gfSwKKwl7IDB4MDcsICJQRklGTyIsIE5VTEwsIE5WS01fRU5HSU5FX0ZJRk8gfSwKKwl7IDB4MTAsICJQTVNWTEQiLCBOVUxMLCBOVktNX0VOR0lORV9NU1ZMRCB9LAorCXsgMHgxMSwgIlBNU1BQUCIsIE5VTEwsIE5WS01fRU5HSU5FX01TUFBQIH0sCisJeyAweDEzLCAiUENPVU5URVIiIH0sCisJeyAweDE0LCAiUE1TUERFQyIsIE5VTEwsIE5WS01fRU5HSU5FX01TUERFQyB9LAorCXsgMHgxNSwgIlBDRTAiLCBOVUxMLCBOVktNX0VOR0lORV9DRTAgfSwKKwl7IDB4MTYsICJQQ0UxIiwgTlVMTCwgTlZLTV9FTkdJTkVfQ0UxIH0sCisJeyAweDE3LCAiUE1VIiB9LAorCXt9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG52a21fZW51bQorZ2YxMDBfZmlmb19mYXVsdF9yZWFzb25bXSA9IHsKKwl7IDB4MDAsICJQVF9OT1RfUFJFU0VOVCIgfSwKKwl7IDB4MDEsICJQVF9UT09fU0hPUlQiIH0sCisJeyAweDAyLCAiUEFHRV9OT1RfUFJFU0VOVCIgfSwKKwl7IDB4MDMsICJWTV9MSU1JVF9FWENFRURFRCIgfSwKKwl7IDB4MDQsICJOT19DSEFOTkVMIiB9LAorCXsgMHgwNSwgIlBBR0VfU1lTVEVNX09OTFkiIH0sCisJeyAweDA2LCAiUEFHRV9SRUFEX09OTFkiIH0sCisJeyAweDBhLCAiQ09NUFJFU1NFRF9TWVNSQU0iIH0sCisJeyAweDBjLCAiSU5WQUxJRF9TVE9SQUdFX1RZUEUiIH0sCisJe30KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbnZrbV9lbnVtCitnZjEwMF9maWZvX2ZhdWx0X2h1YmNsaWVudFtdID0geworCXsgMHgwMSwgIlBDT1BZMCIgfSwKKwl7IDB4MDIsICJQQ09QWTEiIH0sCisJeyAweDA0LCAiRElTUEFUQ0giIH0sCisJeyAweDA1LCAiQ1RYQ1RMIiB9LAorCXsgMHgwNiwgIlBGSUZPIiB9LAorCXsgMHgwNywgIkJBUl9SRUFEIiB9LAorCXsgMHgwOCwgIkJBUl9XUklURSIgfSwKKwl7IDB4MGIsICJQVlAiIH0sCisJeyAweDBjLCAiUE1TUFBQIiB9LAorCXsgMHgwZCwgIlBNU1ZMRCIgfSwKKwl7IDB4MTEsICJQQ09VTlRFUiIgfSwKKwl7IDB4MTIsICJQTVUiIH0sCisJeyAweDE0LCAiQ0NBQ0hFIiB9LAorCXsgMHgxNSwgIkNDQUNIRV9QT1NUIiB9LAorCXt9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG52a21fZW51bQorZ2YxMDBfZmlmb19mYXVsdF9ncGNjbGllbnRbXSA9IHsKKwl7IDB4MDEsICJURVgiIH0sCisJeyAweDBjLCAiRVNFVFVQIiB9LAorCXsgMHgwZSwgIkNUWENUTCIgfSwKKwl7IDB4MGYsICJQUk9QIiB9LAorCXt9Cit9OworCitzdGF0aWMgdm9pZAorZ2YxMDBfZmlmb19mYXVsdChzdHJ1Y3QgbnZrbV9maWZvICpiYXNlLCBzdHJ1Y3QgbnZrbV9mYXVsdF9kYXRhICppbmZvKQoreworCXN0cnVjdCBnZjEwMF9maWZvICpmaWZvID0gZ2YxMDBfZmlmbyhiYXNlKTsKKwlzdHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRldiA9ICZmaWZvLT5iYXNlLmVuZ2luZS5zdWJkZXY7CisJc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSBzdWJkZXYtPmRldmljZTsKKwljb25zdCBzdHJ1Y3QgbnZrbV9lbnVtICplciwgKmV1LCAqZWM7CisJc3RydWN0IG52a21fZW5naW5lICplbmdpbmUgPSBOVUxMOworCXN0cnVjdCBudmttX2ZpZm9fY2hhbiAqY2hhbjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWNoYXIgZ3BjaWRbOF0gPSAiIjsKKworCWVyID0gbnZrbV9lbnVtX2ZpbmQoZ2YxMDBfZmlmb19mYXVsdF9yZWFzb24sIGluZm8tPnJlYXNvbik7CisJZXUgPSBudmttX2VudW1fZmluZChnZjEwMF9maWZvX2ZhdWx0X2VuZ2luZSwgaW5mby0+ZW5naW5lKTsKKwlpZiAoaW5mby0+aHViKSB7CisJCWVjID0gbnZrbV9lbnVtX2ZpbmQoZ2YxMDBfZmlmb19mYXVsdF9odWJjbGllbnQsIGluZm8tPmNsaWVudCk7CisJfSBlbHNlIHsKKwkJZWMgPSBudmttX2VudW1fZmluZChnZjEwMF9maWZvX2ZhdWx0X2dwY2NsaWVudCwgaW5mby0+Y2xpZW50KTsKKwkJc25wcmludGYoZ3BjaWQsIHNpemVvZihncGNpZCksICJHUEMlZC8iLCBpbmZvLT5ncGMpOworCX0KKworCWlmIChldSAmJiBldS0+ZGF0YTIpIHsKKwkJc3dpdGNoIChldS0+ZGF0YTIpIHsKKwkJY2FzZSBOVktNX1NVQkRFVl9CQVI6CisJCQludmttX2Jhcl9iYXIxX3Jlc2V0KGRldmljZSk7CisJCQlicmVhazsKKwkJY2FzZSBOVktNX1NVQkRFVl9JTlNUTUVNOgorCQkJbnZrbV9iYXJfYmFyMl9yZXNldChkZXZpY2UpOworCQkJYnJlYWs7CisJCWNhc2UgTlZLTV9FTkdJTkVfSUZCOgorCQkJbnZrbV9tYXNrKGRldmljZSwgMHgwMDE3MTgsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDApOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQllbmdpbmUgPSBudmttX2RldmljZV9lbmdpbmUoZGV2aWNlLCBldS0+ZGF0YTIpOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwljaGFuID0gbnZrbV9maWZvX2NoYW5faW5zdCgmZmlmby0+YmFzZSwgaW5mby0+aW5zdCwgJmZsYWdzKTsKKworCW52a21fZXJyb3Ioc3ViZGV2LAorCQkgICAiJXMgZmF1bHQgYXQgJTAxMGxseCBlbmdpbmUgJTAyeCBbJXNdIGNsaWVudCAlMDJ4IFslcyVzXSAiCisJCSAgICJyZWFzb24gJTAyeCBbJXNdIG9uIGNoYW5uZWwgJWQgWyUwMTBsbHggJXNdXG4iLAorCQkgICBpbmZvLT5hY2Nlc3MgPyAid3JpdGUiIDogInJlYWQiLCBpbmZvLT5hZGRyLAorCQkgICBpbmZvLT5lbmdpbmUsIGV1ID8gZXUtPm5hbWUgOiAiIiwKKwkJICAgaW5mby0+Y2xpZW50LCBncGNpZCwgZWMgPyBlYy0+bmFtZSA6ICIiLAorCQkgICBpbmZvLT5yZWFzb24sIGVyID8gZXItPm5hbWUgOiAiIiwgY2hhbiA/IGNoYW4tPmNoaWQgOiAtMSwKKwkJICAgaW5mby0+aW5zdCwgY2hhbiA/IGNoYW4tPm9iamVjdC5jbGllbnQtPm5hbWUgOiAidW5rbm93biIpOworCisJaWYgKGVuZ2luZSAmJiBjaGFuKQorCQlnZjEwMF9maWZvX3JlY292ZXIoZmlmbywgZW5naW5lLCAodm9pZCAqKWNoYW4pOworCW52a21fZmlmb19jaGFuX3B1dCgmZmlmby0+YmFzZSwgZmxhZ3MsICZjaGFuKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBudmttX2VudW0KIGdmMTAwX2ZpZm9fc2NoZWRfcmVhc29uW10gPSB7CiAJeyAweDBhLCAiQ1RYU1dfVElNRU9VVCIgfSwKIAl7fQpAQCAtMjU1LDEyNSArMzY5LDI4IEBAIGdmMTAwX2ZpZm9faW50cl9zY2hlZChzdHJ1Y3QgZ2YxMDBfZmlmbyAqZmlmbykKIAl9CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbnZrbV9lbnVtCi1nZjEwMF9maWZvX2ZhdWx0X2VuZ2luZVtdID0gewotCXsgMHgwMCwgIlBHUkFQSCIsIE5VTEwsIE5WS01fRU5HSU5FX0dSIH0sCi0JeyAweDAzLCAiUEVFUEhPTEUiLCBOVUxMLCBOVktNX0VOR0lORV9JRkIgfSwKLQl7IDB4MDQsICJCQVIxIiwgTlVMTCwgTlZLTV9TVUJERVZfQkFSIH0sCi0JeyAweDA1LCAiQkFSMyIsIE5VTEwsIE5WS01fU1VCREVWX0lOU1RNRU0gfSwKLQl7IDB4MDcsICJQRklGTyIsIE5VTEwsIE5WS01fRU5HSU5FX0ZJRk8gfSwKLQl7IDB4MTAsICJQTVNWTEQiLCBOVUxMLCBOVktNX0VOR0lORV9NU1ZMRCB9LAotCXsgMHgxMSwgIlBNU1BQUCIsIE5VTEwsIE5WS01fRU5HSU5FX01TUFBQIH0sCi0JeyAweDEzLCAiUENPVU5URVIiIH0sCi0JeyAweDE0LCAiUE1TUERFQyIsIE5VTEwsIE5WS01fRU5HSU5FX01TUERFQyB9LAotCXsgMHgxNSwgIlBDRTAiLCBOVUxMLCBOVktNX0VOR0lORV9DRTAgfSwKLQl7IDB4MTYsICJQQ0UxIiwgTlVMTCwgTlZLTV9FTkdJTkVfQ0UxIH0sCi0JeyAweDE3LCAiUE1VIiB9LAotCXt9Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG52a21fZW51bQotZ2YxMDBfZmlmb19mYXVsdF9yZWFzb25bXSA9IHsKLQl7IDB4MDAsICJQVF9OT1RfUFJFU0VOVCIgfSwKLQl7IDB4MDEsICJQVF9UT09fU0hPUlQiIH0sCi0JeyAweDAyLCAiUEFHRV9OT1RfUFJFU0VOVCIgfSwKLQl7IDB4MDMsICJWTV9MSU1JVF9FWENFRURFRCIgfSwKLQl7IDB4MDQsICJOT19DSEFOTkVMIiB9LAotCXsgMHgwNSwgIlBBR0VfU1lTVEVNX09OTFkiIH0sCi0JeyAweDA2LCAiUEFHRV9SRUFEX09OTFkiIH0sCi0JeyAweDBhLCAiQ09NUFJFU1NFRF9TWVNSQU0iIH0sCi0JeyAweDBjLCAiSU5WQUxJRF9TVE9SQUdFX1RZUEUiIH0sCi0Je30KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbnZrbV9lbnVtCi1nZjEwMF9maWZvX2ZhdWx0X2h1YmNsaWVudFtdID0gewotCXsgMHgwMSwgIlBDT1BZMCIgfSwKLQl7IDB4MDIsICJQQ09QWTEiIH0sCi0JeyAweDA0LCAiRElTUEFUQ0giIH0sCi0JeyAweDA1LCAiQ1RYQ1RMIiB9LAotCXsgMHgwNiwgIlBGSUZPIiB9LAotCXsgMHgwNywgIkJBUl9SRUFEIiB9LAotCXsgMHgwOCwgIkJBUl9XUklURSIgfSwKLQl7IDB4MGIsICJQVlAiIH0sCi0JeyAweDBjLCAiUE1TUFBQIiB9LAotCXsgMHgwZCwgIlBNU1ZMRCIgfSwKLQl7IDB4MTEsICJQQ09VTlRFUiIgfSwKLQl7IDB4MTIsICJQTVUiIH0sCi0JeyAweDE0LCAiQ0NBQ0hFIiB9LAotCXsgMHgxNSwgIkNDQUNIRV9QT1NUIiB9LAotCXt9Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG52a21fZW51bQotZ2YxMDBfZmlmb19mYXVsdF9ncGNjbGllbnRbXSA9IHsKLQl7IDB4MDEsICJURVgiIH0sCi0JeyAweDBjLCAiRVNFVFVQIiB9LAotCXsgMHgwZSwgIkNUWENUTCIgfSwKLQl7IDB4MGYsICJQUk9QIiB9LAotCXt9Ci19OwotCi1zdGF0aWMgdm9pZAotZ2YxMDBfZmlmb19pbnRyX2ZhdWx0KHN0cnVjdCBnZjEwMF9maWZvICpmaWZvLCBpbnQgdW5pdCkKK3ZvaWQKK2dmMTAwX2ZpZm9faW50cl9mYXVsdChzdHJ1Y3QgbnZrbV9maWZvICpmaWZvLCBpbnQgdW5pdCkKIHsKLQlzdHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRldiA9ICZmaWZvLT5iYXNlLmVuZ2luZS5zdWJkZXY7Ci0Jc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSBzdWJkZXYtPmRldmljZTsKKwlzdHJ1Y3QgbnZrbV9kZXZpY2UgKmRldmljZSA9IGZpZm8tPmVuZ2luZS5zdWJkZXYuZGV2aWNlOwogCXUzMiBpbnN0ID0gbnZrbV9yZDMyKGRldmljZSwgMHgwMDI4MDAgKyAodW5pdCAqIDB4MTApKTsKIAl1MzIgdmFsbyA9IG52a21fcmQzMihkZXZpY2UsIDB4MDAyODA0ICsgKHVuaXQgKiAweDEwKSk7CiAJdTMyIHZhaGkgPSBudmttX3JkMzIoZGV2aWNlLCAweDAwMjgwOCArICh1bml0ICogMHgxMCkpOwotCXUzMiBzdGF0ID0gbnZrbV9yZDMyKGRldmljZSwgMHgwMDI4MGMgKyAodW5pdCAqIDB4MTApKTsKLQl1MzIgZ3BjICAgID0gKHN0YXQgJiAweDFmMDAwMDAwKSA+PiAyNDsKLQl1MzIgY2xpZW50ID0gKHN0YXQgJiAweDAwMDAxZjAwKSA+PiA4OwotCXUzMiB3cml0ZSAgPSAoc3RhdCAmIDB4MDAwMDAwODApOwotCXUzMiBodWIgICAgPSAoc3RhdCAmIDB4MDAwMDAwNDApOwotCXUzMiByZWFzb24gPSAoc3RhdCAmIDB4MDAwMDAwMGYpOwotCWNvbnN0IHN0cnVjdCBudmttX2VudW0gKmVyLCAqZXUsICplYzsKLQlzdHJ1Y3QgbnZrbV9lbmdpbmUgKmVuZ2luZSA9IE5VTEw7Ci0Jc3RydWN0IG52a21fZmlmb19jaGFuICpjaGFuOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JY2hhciBncGNpZFs4XSA9ICIiOworCXUzMiB0eXBlID0gbnZrbV9yZDMyKGRldmljZSwgMHgwMDI4MGMgKyAodW5pdCAqIDB4MTApKTsKKwlzdHJ1Y3QgbnZrbV9mYXVsdF9kYXRhIGluZm87CiAKLQllciA9IG52a21fZW51bV9maW5kKGdmMTAwX2ZpZm9fZmF1bHRfcmVhc29uLCByZWFzb24pOwotCWV1ID0gbnZrbV9lbnVtX2ZpbmQoZ2YxMDBfZmlmb19mYXVsdF9lbmdpbmUsIHVuaXQpOwotCWlmIChodWIpIHsKLQkJZWMgPSBudmttX2VudW1fZmluZChnZjEwMF9maWZvX2ZhdWx0X2h1YmNsaWVudCwgY2xpZW50KTsKLQl9IGVsc2UgewotCQllYyA9IG52a21fZW51bV9maW5kKGdmMTAwX2ZpZm9fZmF1bHRfZ3BjY2xpZW50LCBjbGllbnQpOwotCQlzbnByaW50ZihncGNpZCwgc2l6ZW9mKGdwY2lkKSwgIkdQQyVkLyIsIGdwYyk7Ci0JfQorCWluZm8uaW5zdCAgID0gICh1NjQpaW5zdCA8PCAxMjsKKwlpbmZvLmFkZHIgICA9ICgodTY0KXZhaGkgPDwgMzIpIHwgdmFsbzsKKwlpbmZvLnRpbWUgICA9IDA7CisJaW5mby5lbmdpbmUgPSB1bml0OworCWluZm8udmFsaWQgID0gMTsKKwlpbmZvLmdwYyAgICA9ICh0eXBlICYgMHgxZjAwMDAwMCkgPj4gMjQ7CisJaW5mby5jbGllbnQgPSAodHlwZSAmIDB4MDAwMDFmMDApID4+IDg7CisJaW5mby5hY2Nlc3MgPSAodHlwZSAmIDB4MDAwMDAwODApID4+IDc7CisJaW5mby5odWIgICAgPSAodHlwZSAmIDB4MDAwMDAwNDApID4+IDY7CisJaW5mby5yZWFzb24gPSAodHlwZSAmIDB4MDAwMDAwMGYpOwogCi0JaWYgKGV1ICYmIGV1LT5kYXRhMikgewotCQlzd2l0Y2ggKGV1LT5kYXRhMikgewotCQljYXNlIE5WS01fU1VCREVWX0JBUjoKLQkJCW52a21fYmFyX2JhcjFfcmVzZXQoZGV2aWNlKTsKLQkJCWJyZWFrOwotCQljYXNlIE5WS01fU1VCREVWX0lOU1RNRU06Ci0JCQludmttX2Jhcl9iYXIyX3Jlc2V0KGRldmljZSk7Ci0JCQlicmVhazsKLQkJY2FzZSBOVktNX0VOR0lORV9JRkI6Ci0JCQludmttX21hc2soZGV2aWNlLCAweDAwMTcxOCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCk7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCWVuZ2luZSA9IG52a21fZGV2aWNlX2VuZ2luZShkZXZpY2UsIGV1LT5kYXRhMik7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWNoYW4gPSBudmttX2ZpZm9fY2hhbl9pbnN0KCZmaWZvLT5iYXNlLCAodTY0KWluc3QgPDwgMTIsICZmbGFncyk7Ci0KLQludmttX2Vycm9yKHN1YmRldiwKLQkJICAgIiVzIGZhdWx0IGF0ICUwMTBsbHggZW5naW5lICUwMnggWyVzXSBjbGllbnQgJTAyeCBbJXMlc10gIgotCQkgICAicmVhc29uICUwMnggWyVzXSBvbiBjaGFubmVsICVkIFslMDEwbGx4ICVzXVxuIiwKLQkJICAgd3JpdGUgPyAid3JpdGUiIDogInJlYWQiLCAodTY0KXZhaGkgPDwgMzIgfCB2YWxvLAotCQkgICB1bml0LCBldSA/IGV1LT5uYW1lIDogIiIsIGNsaWVudCwgZ3BjaWQsIGVjID8gZWMtPm5hbWUgOiAiIiwKLQkJICAgcmVhc29uLCBlciA/IGVyLT5uYW1lIDogIiIsIGNoYW4gPyBjaGFuLT5jaGlkIDogLTEsCi0JCSAgICh1NjQpaW5zdCA8PCAxMiwKLQkJICAgY2hhbiA/IGNoYW4tPm9iamVjdC5jbGllbnQtPm5hbWUgOiAidW5rbm93biIpOwotCi0JaWYgKGVuZ2luZSAmJiBjaGFuKQotCQlnZjEwMF9maWZvX3JlY292ZXIoZmlmbywgZW5naW5lLCAodm9pZCAqKWNoYW4pOwotCW52a21fZmlmb19jaGFuX3B1dCgmZmlmby0+YmFzZSwgZmxhZ3MsICZjaGFuKTsKKwludmttX2ZpZm9fZmF1bHQoZmlmbywgJmluZm8pOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG52a21fYml0ZmllbGQKQEAgLTUxOCw3ICs1MzUsNyBAQCBnZjEwMF9maWZvX2ludHIoc3RydWN0IG52a21fZmlmbyAqYmFzZSkKIAkJdTMyIG1hc2sgPSBudmttX3JkMzIoZGV2aWNlLCAweDAwMjU5Yyk7CiAJCXdoaWxlIChtYXNrKSB7CiAJCQl1MzIgdW5pdCA9IF9fZmZzKG1hc2spOwotCQkJZ2YxMDBfZmlmb19pbnRyX2ZhdWx0KGZpZm8sIHVuaXQpOworCQkJZ2YxMDBfZmlmb19pbnRyX2ZhdWx0KCZmaWZvLT5iYXNlLCB1bml0KTsKIAkJCW52a21fd3IzMihkZXZpY2UsIDB4MDAyNTljLCAoMSA8PCB1bml0KSk7CiAJCQltYXNrICY9IH4oMSA8PCB1bml0KTsKIAkJfQpAQCAtNjU1LDYgKzY3Miw3IEBAIGdmMTAwX2ZpZm8gPSB7CiAJLmluaXQgPSBnZjEwMF9maWZvX2luaXQsCiAJLmZpbmkgPSBnZjEwMF9maWZvX2ZpbmksCiAJLmludHIgPSBnZjEwMF9maWZvX2ludHIsCisJLmZhdWx0ID0gZ2YxMDBfZmlmb19mYXVsdCwKIAkudWV2ZW50X2luaXQgPSBnZjEwMF9maWZvX3VldmVudF9pbml0LAogCS51ZXZlbnRfZmluaSA9IGdmMTAwX2ZpZm9fdWV2ZW50X2ZpbmksCiAJLmNoYW4gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2drMTA0LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2drMTA0LmMKaW5kZXggMTA1M2ZlNy4uNWQ0YjY5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nazEwNC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMDQuYwpAQCAtNjQ2LDMxICs2NDYsNiBAQCBnazEwNF9maWZvX2ludHJfZHJvcHBlZF9mYXVsdChzdHJ1Y3QgZ2sxMDRfZmlmbyAqZmlmbykKIAludmttX2Vycm9yKHN1YmRldiwgIkRST1BQRURfTU1VX0ZBVUxUICUwOHhcbiIsIHN0YXQpOwogfQogCi1zdGF0aWMgdm9pZAotZ2sxMDRfZmlmb19pbnRyX2ZhdWx0KHN0cnVjdCBnazEwNF9maWZvICpmaWZvLCBpbnQgdW5pdCkKLXsKLQlzdHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRldiA9ICZmaWZvLT5iYXNlLmVuZ2luZS5zdWJkZXY7Ci0Jc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSBzdWJkZXYtPmRldmljZTsKLQl1MzIgaW5zdCA9IG52a21fcmQzMihkZXZpY2UsIDB4MDAyODAwICsgKHVuaXQgKiAweDEwKSk7Ci0JdTMyIHZhbG8gPSBudmttX3JkMzIoZGV2aWNlLCAweDAwMjgwNCArICh1bml0ICogMHgxMCkpOwotCXUzMiB2YWhpID0gbnZrbV9yZDMyKGRldmljZSwgMHgwMDI4MDggKyAodW5pdCAqIDB4MTApKTsKLQl1MzIgdHlwZSA9IG52a21fcmQzMihkZXZpY2UsIDB4MDAyODBjICsgKHVuaXQgKiAweDEwKSk7Ci0Jc3RydWN0IG52a21fZmF1bHRfZGF0YSBpbmZvOwotCi0JaW5mby5pbnN0ICAgPSAgKHU2NClpbnN0IDw8IDEyOwotCWluZm8uYWRkciAgID0gKCh1NjQpdmFoaSA8PCAzMikgfCB2YWxvOwotCWluZm8udGltZSAgID0gMDsKLQlpbmZvLmVuZ2luZSA9IHVuaXQ7Ci0JaW5mby52YWxpZCAgPSAxOwotCWluZm8uZ3BjICAgID0gKHR5cGUgJiAweDFmMDAwMDAwKSA+PiAyNDsKLQlpbmZvLmNsaWVudCA9ICh0eXBlICYgMHgwMDAwMWYwMCkgPj4gODsKLQlpbmZvLmFjY2VzcyA9ICh0eXBlICYgMHgwMDAwMDA4MCkgPj4gNzsKLQlpbmZvLmh1YiAgICA9ICh0eXBlICYgMHgwMDAwMDA0MCkgPj4gNjsKLQlpbmZvLnJlYXNvbiA9ICh0eXBlICYgMHgwMDAwMDBmZik7Ci0KLQludmttX2ZpZm9fZmF1bHQoJmZpZm8tPmJhc2UsICZpbmZvKTsKLX0KLQogc3RhdGljIGNvbnN0IHN0cnVjdCBudmttX2JpdGZpZWxkIGdrMTA0X2ZpZm9fcGJkbWFfaW50cl8wW10gPSB7CiAJeyAweDAwMDAwMDAxLCAiTUVNUkVRIiB9LAogCXsgMHgwMDAwMDAwMiwgIk1FTUFDS19USU1FT1VUIiB9LApAQCAtODQ5LDcgKzgyNCw3IEBAIGdrMTA0X2ZpZm9faW50cihzdHJ1Y3QgbnZrbV9maWZvICpiYXNlKQogCQl1MzIgbWFzayA9IG52a21fcmQzMihkZXZpY2UsIDB4MDAyNTljKTsKIAkJd2hpbGUgKG1hc2spIHsKIAkJCXUzMiB1bml0ID0gX19mZnMobWFzayk7Ci0JCQlnazEwNF9maWZvX2ludHJfZmF1bHQoZmlmbywgdW5pdCk7CisJCQlmaWZvLT5mdW5jLT5pbnRyLmZhdWx0KCZmaWZvLT5iYXNlLCB1bml0KTsKIAkJCW52a21fd3IzMihkZXZpY2UsIDB4MDAyNTljLCAoMSA8PCB1bml0KSk7CiAJCQltYXNrICY9IH4oMSA8PCB1bml0KTsKIAkJfQpAQCAtMTIwNCw2ICsxMTc5LDcgQEAgZ2sxMDRfZmlmb19mYXVsdF9ncGNjbGllbnRbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBnazEwNF9maWZvX2Z1bmMKIGdrMTA0X2ZpZm8gPSB7CisJLmludHIuZmF1bHQgPSBnZjEwMF9maWZvX2ludHJfZmF1bHQsCiAJLnBiZG1hID0gJmdrMTA0X2ZpZm9fcGJkbWEsCiAJLmZhdWx0LmFjY2VzcyA9IGdrMTA0X2ZpZm9fZmF1bHRfYWNjZXNzLAogCS5mYXVsdC5lbmdpbmUgPSBnazEwNF9maWZvX2ZhdWx0X2VuZ2luZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMDQuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMDQuaAppbmRleCBjMzNmNDU5Li42NDA3YTRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2drMTA0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nazEwNC5oCkBAIC00NSw2ICs0NSwxMCBAQCBzdHJ1Y3QgZ2sxMDRfZmlmbyB7CiB9OwogCiBzdHJ1Y3QgZ2sxMDRfZmlmb19mdW5jIHsKKwlzdHJ1Y3QgeworCQl2b2lkICgqZmF1bHQpKHN0cnVjdCBudmttX2ZpZm8gKiwgaW50IHVuaXQpOworCX0gaW50cjsKKwogCWNvbnN0IHN0cnVjdCBnazEwNF9maWZvX3BiZG1hX2Z1bmMgewogCQlpbnQgKCpucikoc3RydWN0IGdrMTA0X2ZpZm8gKik7CiAJCXZvaWQgKCppbml0KShzdHJ1Y3QgZ2sxMDRfZmlmbyAqKTsKQEAgLTExMCwxMiArMTE0LDE0IEBAIHZvaWQgZ2sxMTBfZmlmb19ydW5saXN0X2NncnAoc3RydWN0IG52a21fZmlmb19jZ3JwICosCiBleHRlcm4gY29uc3Qgc3RydWN0IGdrMTA0X2ZpZm9fcGJkbWFfZnVuYyBnazIwOF9maWZvX3BiZG1hOwogdm9pZCBnazIwOF9maWZvX3BiZG1hX2luaXRfdGltZW91dChzdHJ1Y3QgZ2sxMDRfZmlmbyAqKTsKIAordm9pZCBnbTEwN19maWZvX2ludHJfZmF1bHQoc3RydWN0IG52a21fZmlmbyAqLCBpbnQpOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBudmttX2VudW0gZ20xMDdfZmlmb19mYXVsdF9lbmdpbmVbXTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZ2sxMDRfZmlmb19ydW5saXN0X2Z1bmMgZ20xMDdfZmlmb19ydW5saXN0OwogCiBleHRlcm4gY29uc3Qgc3RydWN0IGdrMTA0X2ZpZm9fcGJkbWFfZnVuYyBnbTIwMF9maWZvX3BiZG1hOwogaW50IGdtMjAwX2ZpZm9fcGJkbWFfbnIoc3RydWN0IGdrMTA0X2ZpZm8gKik7CiAKK3ZvaWQgZ3AxMDBfZmlmb19pbnRyX2ZhdWx0KHN0cnVjdCBudmttX2ZpZm8gKiwgaW50KTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgbnZrbV9lbnVtIGdwMTAwX2ZpZm9fZmF1bHRfZW5naW5lW107CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgbnZrbV9lbnVtIGd2MTAwX2ZpZm9fZmF1bHRfYWNjZXNzW107CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2drMTEwLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2drMTEwLmMKaW5kZXggOGFkZmE2Yi4uZjgyMDk2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nazExMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMTAuYwpAQCAtNDgsNiArNDgsNyBAQCBnazExMF9maWZvX3J1bmxpc3QgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2sxMDRfZmlmb19mdW5jCiBnazExMF9maWZvID0geworCS5pbnRyLmZhdWx0ID0gZ2YxMDBfZmlmb19pbnRyX2ZhdWx0LAogCS5wYmRtYSA9ICZnazEwNF9maWZvX3BiZG1hLAogCS5mYXVsdC5hY2Nlc3MgPSBnazEwNF9maWZvX2ZhdWx0X2FjY2VzcywKIAkuZmF1bHQuZW5naW5lID0gZ2sxMDRfZmlmb19mYXVsdF9lbmdpbmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2drMjA4LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2drMjA4LmMKaW5kZXggOTU1M2ZiNC4uMmY1NDc4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nazIwOC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2syMDguYwpAQCAtNDUsNiArNDUsNyBAQCBnazIwOF9maWZvX3BiZG1hID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGdrMTA0X2ZpZm9fZnVuYwogZ2syMDhfZmlmbyA9IHsKKwkuaW50ci5mYXVsdCA9IGdmMTAwX2ZpZm9faW50cl9mYXVsdCwKIAkucGJkbWEgPSAmZ2syMDhfZmlmb19wYmRtYSwKIAkuZmF1bHQuYWNjZXNzID0gZ2sxMDRfZmlmb19mYXVsdF9hY2Nlc3MsCiAJLmZhdWx0LmVuZ2luZSA9IGdrMTA0X2ZpZm9fZmF1bHRfZW5naW5lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nazIwYS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nazIwYS5jCmluZGV4IGE0YzZhYzMuLmE4MTRjNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2syMGEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2drMjBhLmMKQEAgLTI2LDYgKzI2LDcgQEAKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBnazEwNF9maWZvX2Z1bmMKIGdrMjBhX2ZpZm8gPSB7CisJLmludHIuZmF1bHQgPSBnZjEwMF9maWZvX2ludHJfZmF1bHQsCiAJLnBiZG1hID0gJmdrMjA4X2ZpZm9fcGJkbWEsCiAJLmZhdWx0LmFjY2VzcyA9IGdrMTA0X2ZpZm9fZmF1bHRfYWNjZXNzLAogCS5mYXVsdC5lbmdpbmUgPSBnazEwNF9maWZvX2ZhdWx0X2VuZ2luZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ20xMDcuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ20xMDcuYwppbmRleCBhY2YyMzA3Li5jMmEyZTQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2dtMTA3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nbTEwNy5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiY2hhbmdrMTA0LmgiCiAKICNpbmNsdWRlIDxjb3JlL2dwdW9iai5oPgorI2luY2x1ZGUgPHN1YmRldi9mYXVsdC5oPgogCiAjaW5jbHVkZSA8bnZpZi9jbGFzcy5oPgogCkBAIC02Nyw4ICs2OCwzMyBAQCBnbTEwN19maWZvX2ZhdWx0X2VuZ2luZVtdID0gewogCXt9CiB9OwogCit2b2lkCitnbTEwN19maWZvX2ludHJfZmF1bHQoc3RydWN0IG52a21fZmlmbyAqZmlmbywgaW50IHVuaXQpCit7CisJc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSBmaWZvLT5lbmdpbmUuc3ViZGV2LmRldmljZTsKKwl1MzIgaW5zdCA9IG52a21fcmQzMihkZXZpY2UsIDB4MDAyODAwICsgKHVuaXQgKiAweDEwKSk7CisJdTMyIHZhbG8gPSBudmttX3JkMzIoZGV2aWNlLCAweDAwMjgwNCArICh1bml0ICogMHgxMCkpOworCXUzMiB2YWhpID0gbnZrbV9yZDMyKGRldmljZSwgMHgwMDI4MDggKyAodW5pdCAqIDB4MTApKTsKKwl1MzIgdHlwZSA9IG52a21fcmQzMihkZXZpY2UsIDB4MDAyODBjICsgKHVuaXQgKiAweDEwKSk7CisJc3RydWN0IG52a21fZmF1bHRfZGF0YSBpbmZvOworCisJaW5mby5pbnN0ICAgPSAgKHU2NClpbnN0IDw8IDEyOworCWluZm8uYWRkciAgID0gKCh1NjQpdmFoaSA8PCAzMikgfCB2YWxvOworCWluZm8udGltZSAgID0gMDsKKwlpbmZvLmVuZ2luZSA9IHVuaXQ7CisJaW5mby52YWxpZCAgPSAxOworCWluZm8uZ3BjICAgID0gKHR5cGUgJiAweDFmMDAwMDAwKSA+PiAyNDsKKwlpbmZvLmNsaWVudCA9ICh0eXBlICYgMHgwMDAwM2YwMCkgPj4gODsKKwlpbmZvLmFjY2VzcyA9ICh0eXBlICYgMHgwMDAwMDA4MCkgPj4gNzsKKwlpbmZvLmh1YiAgICA9ICh0eXBlICYgMHgwMDAwMDA0MCkgPj4gNjsKKwlpbmZvLnJlYXNvbiA9ICh0eXBlICYgMHgwMDAwMDAwZik7CisKKwludmttX2ZpZm9fZmF1bHQoZmlmbywgJmluZm8pOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGdrMTA0X2ZpZm9fZnVuYwogZ20xMDdfZmlmbyA9IHsKKwkuaW50ci5mYXVsdCA9IGdtMTA3X2ZpZm9faW50cl9mYXVsdCwKIAkucGJkbWEgPSAmZ2syMDhfZmlmb19wYmRtYSwKIAkuZmF1bHQuYWNjZXNzID0gZ2sxMDRfZmlmb19mYXVsdF9hY2Nlc3MsCiAJLmZhdWx0LmVuZ2luZSA9IGdtMTA3X2ZpZm9fZmF1bHRfZW5naW5lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nbTIwMC5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nbTIwMC5jCmluZGV4IGI5NmMxYzUuLmI4Y2ZlM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ20yMDAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2dtMjAwLmMKQEAgLTQyLDYgKzQyLDcgQEAgZ20yMDBfZmlmb19wYmRtYSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBnazEwNF9maWZvX2Z1bmMKIGdtMjAwX2ZpZm8gPSB7CisJLmludHIuZmF1bHQgPSBnbTEwN19maWZvX2ludHJfZmF1bHQsCiAJLnBiZG1hID0gJmdtMjAwX2ZpZm9fcGJkbWEsCiAJLmZhdWx0LmFjY2VzcyA9IGdrMTA0X2ZpZm9fZmF1bHRfYWNjZXNzLAogCS5mYXVsdC5lbmdpbmUgPSBnbTEwN19maWZvX2ZhdWx0X2VuZ2luZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ20yMGIuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ20yMGIuYwppbmRleCBhNDk1MzliLi43MGI0ZmVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2dtMjBiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nbTIwYi5jCkBAIC0yNiw2ICsyNiw3IEBACiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2sxMDRfZmlmb19mdW5jCiBnbTIwYl9maWZvID0geworCS5pbnRyLmZhdWx0ID0gZ20xMDdfZmlmb19pbnRyX2ZhdWx0LAogCS5wYmRtYSA9ICZnbTIwMF9maWZvX3BiZG1hLAogCS5mYXVsdC5hY2Nlc3MgPSBnazEwNF9maWZvX2ZhdWx0X2FjY2VzcywKIAkuZmF1bHQuZW5naW5lID0gZ20xMDdfZmlmb19mYXVsdF9lbmdpbmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2dwMTAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2dwMTAwLmMKaW5kZXggNTQzNzdlMC4uMmM3YTAxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9ncDEwMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ3AxMDAuYwpAQCAtMjQsNiArMjQsOCBAQAogI2luY2x1ZGUgImdrMTA0LmgiCiAjaW5jbHVkZSAiY2hhbmdrMTA0LmgiCiAKKyNpbmNsdWRlIDxzdWJkZXYvZmF1bHQuaD4KKwogI2luY2x1ZGUgPG52aWYvY2xhc3MuaD4KIAogY29uc3Qgc3RydWN0IG52a21fZW51bQpAQCAtNTAsOCArNTIsMzMgQEAgZ3AxMDBfZmlmb19mYXVsdF9lbmdpbmVbXSA9IHsKIAl7fQogfTsKIAordm9pZAorZ3AxMDBfZmlmb19pbnRyX2ZhdWx0KHN0cnVjdCBudmttX2ZpZm8gKmZpZm8sIGludCB1bml0KQoreworCXN0cnVjdCBudmttX2RldmljZSAqZGV2aWNlID0gZmlmby0+ZW5naW5lLnN1YmRldi5kZXZpY2U7CisJdTMyIGluc3QgPSBudmttX3JkMzIoZGV2aWNlLCAweDAwMjgwMCArICh1bml0ICogMHgxMCkpOworCXUzMiB2YWxvID0gbnZrbV9yZDMyKGRldmljZSwgMHgwMDI4MDQgKyAodW5pdCAqIDB4MTApKTsKKwl1MzIgdmFoaSA9IG52a21fcmQzMihkZXZpY2UsIDB4MDAyODA4ICsgKHVuaXQgKiAweDEwKSk7CisJdTMyIHR5cGUgPSBudmttX3JkMzIoZGV2aWNlLCAweDAwMjgwYyArICh1bml0ICogMHgxMCkpOworCXN0cnVjdCBudmttX2ZhdWx0X2RhdGEgaW5mbzsKKworCWluZm8uaW5zdCAgID0gICh1NjQpaW5zdCA8PCAxMjsKKwlpbmZvLmFkZHIgICA9ICgodTY0KXZhaGkgPDwgMzIpIHwgdmFsbzsKKwlpbmZvLnRpbWUgICA9IDA7CisJaW5mby5lbmdpbmUgPSB1bml0OworCWluZm8udmFsaWQgID0gMTsKKwlpbmZvLmdwYyAgICA9ICh0eXBlICYgMHgxZjAwMDAwMCkgPj4gMjQ7CisJaW5mby5odWIgICAgPSAodHlwZSAmIDB4MDAxMDAwMDApID4+IDIwOworCWluZm8uYWNjZXNzID0gKHR5cGUgJiAweDAwMDcwMDAwKSA+PiAxNjsKKwlpbmZvLmNsaWVudCA9ICh0eXBlICYgMHgwMDAwN2YwMCkgPj4gODsKKwlpbmZvLnJlYXNvbiA9ICh0eXBlICYgMHgwMDAwMDAxZik7CisKKwludmttX2ZpZm9fZmF1bHQoZmlmbywgJmluZm8pOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGdrMTA0X2ZpZm9fZnVuYwogZ3AxMDBfZmlmbyA9IHsKKwkuaW50ci5mYXVsdCA9IGdwMTAwX2ZpZm9faW50cl9mYXVsdCwKIAkucGJkbWEgPSAmZ20yMDBfZmlmb19wYmRtYSwKIAkuZmF1bHQuYWNjZXNzID0gZ2sxMDRfZmlmb19mYXVsdF9hY2Nlc3MsCiAJLmZhdWx0LmVuZ2luZSA9IGdwMTAwX2ZpZm9fZmF1bHRfZW5naW5lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9ncDEwYi5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9ncDEwYi5jCmluZGV4IDc3OGJhN2UuLjhjNjVhZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ3AxMGIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2dwMTBiLmMKQEAgLTI2LDYgKzI2LDcgQEAKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBnazEwNF9maWZvX2Z1bmMKIGdwMTBiX2ZpZm8gPSB7CisJLmludHIuZmF1bHQgPSBncDEwMF9maWZvX2ludHJfZmF1bHQsCiAJLnBiZG1hID0gJmdtMjAwX2ZpZm9fcGJkbWEsCiAJLmZhdWx0LmFjY2VzcyA9IGdrMTA0X2ZpZm9fZmF1bHRfYWNjZXNzLAogCS5mYXVsdC5lbmdpbmUgPSBncDEwMF9maWZvX2ZhdWx0X2VuZ2luZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vcHJpdi5oIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9wcml2LmgKaW5kZXggYzY2ZjUzNy4uMGVmOGJhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9wcml2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9wcml2LmgKQEAgLTM3LDQgKzM3LDYgQEAgc3RydWN0IG52a21fZmlmb19mdW5jIHsKIHZvaWQgbnYwNF9maWZvX2ludHIoc3RydWN0IG52a21fZmlmbyAqKTsKIHZvaWQgbnYwNF9maWZvX3BhdXNlKHN0cnVjdCBudmttX2ZpZm8gKiwgdW5zaWduZWQgbG9uZyAqKTsKIHZvaWQgbnYwNF9maWZvX3N0YXJ0KHN0cnVjdCBudmttX2ZpZm8gKiwgdW5zaWduZWQgbG9uZyAqKTsKKwordm9pZCBnZjEwMF9maWZvX2ludHJfZmF1bHQoc3RydWN0IG52a21fZmlmbyAqLCBpbnQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9iYXIvZ20yMGIuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jhci9nbTIwYi5jCmluZGV4IDk1MGJmZjEuLjFlZDYxNzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jhci9nbTIwYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jhci9nbTIwYi5jCkBAIC0yNiw3ICsyNiw2IEBAIGdtMjBiX2Jhcl9mdW5jID0gewogCS5kdG9yID0gZ2YxMDBfYmFyX2R0b3IsCiAJLm9uZWluaXQgPSBnZjEwMF9iYXJfb25laW5pdCwKIAkuYmFyMS5pbml0ID0gZ2YxMDBfYmFyX2JhcjFfaW5pdCwKLQkuYmFyMS5maW5pID0gZ2YxMDBfYmFyX2JhcjFfZmluaSwKIAkuYmFyMS53YWl0ID0gZ20xMDdfYmFyX2JhcjFfd2FpdCwKIAkuYmFyMS52bW0gPSBnZjEwMF9iYXJfYmFyMV92bW0sCiAJLmZsdXNoID0gZzg0X2Jhcl9mbHVzaCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jpb3MvZXh0ZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9iaW9zL2V4dGRldi5jCmluZGV4IGI4NTc4MzUuLjExOGUzMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jpb3MvZXh0ZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvYmlvcy9leHRkZXYuYwpAQCAtNDYsNiArNDYsMTkgQEAgZXh0ZGV2X3RhYmxlKHN0cnVjdCBudmttX2Jpb3MgKmJpb3MsIHU4ICp2ZXIsIHU4ICpoZHIsIHU4ICpsZW4sIHU4ICpjbnQpCiAJcmV0dXJuIGV4dGRldiArICpoZHI7CiB9CiAKK2Jvb2wKK252Ymlvc19leHRkZXZfc2tpcF9wcm9iZShzdHJ1Y3QgbnZrbV9iaW9zICpiaW9zKQoreworCXU4ICB2ZXIsIGhkciwgbGVuLCBjbnQ7CisJdTE2IGRhdGEgPSBleHRkZXZfdGFibGUoYmlvcywgJnZlciwgJmhkciwgJmxlbiwgJmNudCk7CisJaWYgKGRhdGEgJiYgdmVyID09IDB4NDAgJiYgaGRyID49IDUpIHsKKwkJdTggZmxhZ3MgPSBudmJpb3NfcmQwOChiaW9zLCBkYXRhIC0gaGRyICsgNCk7CisJCWlmIChmbGFncyAmIDEpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisJcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgdTE2CiBudmJpb3NfZXh0ZGV2X2VudHJ5KHN0cnVjdCBudmttX2Jpb3MgKmJpb3MsIGludCBpZHgsIHU4ICp2ZXIsIHU4ICpsZW4pCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9iaW9zL2luaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jpb3MvaW5pdC5jCmluZGV4IGVjMGU5ZjcuLjlkZTc0ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jpb3MvaW5pdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jpb3MvaW5pdC5jCkBAIC04MzQsNyArODM0LDcgQEAgaW5pdF9nZW5lcmljX2NvbmRpdGlvbihzdHJ1Y3QgbnZiaW9zX2luaXQgKmluaXQpCiAJCWluaXRfZXhlY19zZXQoaW5pdCwgZmFsc2UpOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQl3YXJuKCJJTklUX0dFTkVSSUNfQ09ORElUT046IHVua25vd24gMHglMDJ4XG4iLCBjb25kKTsKKwkJd2FybigiSU5JVF9HRU5FUklDX0NPTkRJVElPTjogdW5rbm93biAweCUwMnhcbiIsIGNvbmQpOwogCQlpbml0LT5vZmZzZXQgKz0gc2l6ZTsKIAkJYnJlYWs7CiAJfQpAQCAtMTkzNSw2ICsxOTM1LDI4IEBAIGluaXRfcmFtX3Jlc3RyaWN0X3BsbChzdHJ1Y3QgbnZiaW9zX2luaXQgKmluaXQpCiB9CiAKIC8qKgorICogSU5JVF9SRVNFVF9CRUdVTiAtIG9wY29kZSAweDhjCisgKgorICovCitzdGF0aWMgdm9pZAoraW5pdF9yZXNldF9iZWd1bihzdHJ1Y3QgbnZiaW9zX2luaXQgKmluaXQpCit7CisJdHJhY2UoIlJFU0VUX0JFR1VOXG4iKTsKKwlpbml0LT5vZmZzZXQgKz0gMTsKK30KKworLyoqCisgKiBJTklUX1JFU0VUX0VORCAtIG9wY29kZSAweDhkCisgKgorICovCitzdGF0aWMgdm9pZAoraW5pdF9yZXNldF9lbmQoc3RydWN0IG52Ymlvc19pbml0ICppbml0KQoreworCXRyYWNlKCJSRVNFVF9FTkRcbiIpOworCWluaXQtPm9mZnNldCArPSAxOworfQorCisvKioKICAqIElOSVRfR1BJTyAtIG9wY29kZSAweDhlCiAgKgogICovCkBAIC0yMjYwLDggKzIyODIsOCBAQCBzdGF0aWMgc3RydWN0IG52Ymlvc19pbml0X29wY29kZSB7CiAJWzB4NzldID0geyBpbml0X3BsbCB9LAogCVsweDdhXSA9IHsgaW5pdF96bV9yZWcgfSwKIAlbMHg4N10gPSB7IGluaXRfcmFtX3Jlc3RyaWN0X3BsbCB9LAotCVsweDhjXSA9IHsgaW5pdF9yZXNlcnZlZCB9LAotCVsweDhkXSA9IHsgaW5pdF9yZXNlcnZlZCB9LAorCVsweDhjXSA9IHsgaW5pdF9yZXNldF9iZWd1biB9LAorCVsweDhkXSA9IHsgaW5pdF9yZXNldF9lbmQgfSwKIAlbMHg4ZV0gPSB7IGluaXRfZ3BpbyB9LAogCVsweDhmXSA9IHsgaW5pdF9yYW1fcmVzdHJpY3Rfem1fcmVnX2dyb3VwIH0sCiAJWzB4OTBdID0geyBpbml0X2NvcHlfem1fcmVnIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9iaW9zL3ZvbHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jpb3Mvdm9sdC5jCmluZGV4IDcxNDNlYTQuLjMzYTlmYjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jpb3Mvdm9sdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2Jpb3Mvdm9sdC5jCkBAIC05Niw2ICs5Niw4IEBAIG52Ymlvc192b2x0X3BhcnNlKHN0cnVjdCBudmttX2Jpb3MgKmJpb3MsIHU4ICp2ZXIsIHU4ICpoZHIsIHU4ICpjbnQsIHU4ICpsZW4sCiAJCWluZm8tPm1pbiAgICAgPSBtaW4oaW5mby0+YmFzZSwKIAkJCQkgICAgaW5mby0+YmFzZSArIGluZm8tPnN0ZXAgKiBpbmZvLT52aWRtYXNrKTsKIAkJaW5mby0+bWF4ICAgICA9IG52Ymlvc19yZDMyKGJpb3MsIHZvbHQgKyAweDBlKTsKKwkJaWYgKCFpbmZvLT5tYXgpCisJCQlpbmZvLT5tYXggPSBtYXgoaW5mby0+YmFzZSwgaW5mby0+YmFzZSArIGluZm8tPnN0ZXAgKiBpbmZvLT52aWRtYXNrKTsKIAkJYnJlYWs7CiAJY2FzZSAweDUwOgogCQlpbmZvLT5taW4gICAgID0gbnZiaW9zX3JkMzIoYmlvcywgdm9sdCArIDB4MGEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvZ3Bpby9iYXNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9ncGlvL2Jhc2UuYwppbmRleCAxMzk5ZDkyLi45MTQyNzY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9ncGlvL2Jhc2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9ncGlvL2Jhc2UuYwpAQCAtMjMsNiArMjMsNyBAQAogICovCiAjaW5jbHVkZSAicHJpdi5oIgogCisjaW5jbHVkZSA8Y29yZS9vcHRpb24uaD4KICNpbmNsdWRlIDxjb3JlL25vdGlmeS5oPgogCiBzdGF0aWMgaW50CkBAIC0xODIsMTIgKzE4Myw0MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgZ3Bpb19yZXNldF9pZHNbXSA9IHsKIAl7IH0KIH07CiAKK3N0YXRpYyBlbnVtIGRjYl9ncGlvX2Z1bmNfbmFtZSBwb3dlcl9jaGVja3NbXSA9IHsKKwlEQ0JfR1BJT19USEVSTV9FWFRfUE9XRVJfRVZFTlQsCisJRENCX0dQSU9fUE9XRVJfQUxFUlQsCisJRENCX0dQSU9fRVhUX1BPV0VSX0xPVywKK307CisKIHN0YXRpYyBpbnQKIG52a21fZ3Bpb19pbml0KHN0cnVjdCBudmttX3N1YmRldiAqc3ViZGV2KQogewogCXN0cnVjdCBudmttX2dwaW8gKmdwaW8gPSBudmttX2dwaW8oc3ViZGV2KTsKKwlzdHJ1Y3QgZGNiX2dwaW9fZnVuYyBmdW5jOworCWludCByZXQ7CisJaW50IGk7CisKIAlpZiAoZG1pX2NoZWNrX3N5c3RlbShncGlvX3Jlc2V0X2lkcykpCiAJCW52a21fZ3Bpb19yZXNldChncGlvLCBEQ0JfR1BJT19VTlVTRUQpOworCisJaWYgKG52a21fYm9vbG9wdChzdWJkZXYtPmRldmljZS0+Y2Znb3B0LCAiTnZQb3dlckNoZWNrcyIsIHRydWUpKSB7CisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBvd2VyX2NoZWNrcyk7ICsraSkgeworCQkJcmV0ID0gbnZrbV9ncGlvX2ZpbmQoZ3BpbywgMCwgcG93ZXJfY2hlY2tzW2ldLAorCQkJCQkgICAgIERDQl9HUElPX1VOVVNFRCwgJmZ1bmMpOworCQkJaWYgKHJldCkKKwkJCQljb250aW51ZTsKKworCQkJcmV0ID0gbnZrbV9ncGlvX2dldChncGlvLCAwLCBmdW5jLmZ1bmMsIGZ1bmMubGluZSk7CisJCQlpZiAoIXJldCkKKwkJCQljb250aW51ZTsKKworCQkJbnZrbV9lcnJvcigmZ3Bpby0+c3ViZGV2LAorCQkJCSAgICJHUFUgaXMgbWlzc2luZyBwb3dlciwgY2hlY2sgaXRzIHBvd2VyICIKKwkJCQkgICAiY2FibGVzLiAgQm9vdCB3aXRoICIKKwkJCQkgICAibm91dmVhdS5jb25maWc9TnZQb3dlckNoZWNrcz0wIHRvICIKKwkJCQkgICAiZGlzYWJsZS5cbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvcG11L2Jhc2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3BtdS9iYXNlLmMKaW5kZXggY2U3MGExOS4uZWEyZTExNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvcG11L2Jhc2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9wbXUvYmFzZS5jCkBAIC0yNiw2ICsyNiwyNCBAQAogI2luY2x1ZGUgPGNvcmUvbXNncXVldWUuaD4KICNpbmNsdWRlIDxzdWJkZXYvdGltZXIuaD4KIAorYm9vbAorbnZrbV9wbXVfZmFuX2NvbnRyb2xsZWQoc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UpCit7CisJc3RydWN0IG52a21fcG11ICpwbXUgPSBkZXZpY2UtPnBtdTsKKworCS8qIEludGVybmFsIFBNVSBGVyBkb2VzIG5vdCBjdXJyZW50bHkgY29udHJvbCBmYW5zIGluIGFueSB3YXksCisJICogYWxsb3cgU1cgY29udHJvbCBvZiBmYW5zIGluc3RlYWQuCisJICovCisJaWYgKHBtdSAmJiBwbXUtPmZ1bmMtPmNvZGUuc2l6ZSkKKwkJcmV0dXJuIGZhbHNlOworCisJLyogRGVmYXVsdCAoYm9hcmQtbG9hZGVkLCBvciBWQklPUyBQTVUvUFJFT1MpIFBNVSBGVyBvbiBGZXJtaQorCSAqIGFuZCBuZXdlciBhdXRvbWF0aWNhbGx5IGNvbnRyb2wgdGhlIGZhbiBzcGVlZCwgd2hpY2ggd291bGQKKwkgKiBpbnRlcmZlcmUgd2l0aCBTVyBjb250cm9sLgorCSAqLworCXJldHVybiAoZGV2aWNlLT5jaGlwc2V0ID49IDB4YzApOworfQorCiB2b2lkCiBudmttX3BtdV9wZ29iKHN0cnVjdCBudmttX3BtdSAqcG11LCBib29sIGVuYWJsZSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3NlY2Jvb3QvYWNyX3IzNTIuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3NlY2Jvb3QvYWNyX3IzNTIuYwppbmRleCA0ZmQ0Y2ZlLi43YWY5NzFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9zZWNib290L2Fjcl9yMzUyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvc2VjYm9vdC9hY3JfcjM1Mi5jCkBAIC0xMDg4LDcgKzEwODgsNyBAQCBhY3JfcjM1Ml9sc19ncGNjc19mdW5jXzAgPSB7CiAJLmxoZHJfZmxhZ3MgPSBMU0ZfRkxBR19GT1JDRV9QUklWX0xPQUQsCiB9OwogCi1jb25zdCBzdHJ1Y3QgYWNyX3IzNTJfbHNfZnVuYworc3RhdGljIGNvbnN0IHN0cnVjdCBhY3JfcjM1Ml9sc19mdW5jCiBhY3JfcjM1Ml9sc19ncGNjc19mdW5jID0gewogCS5sb2FkID0gYWNyX2xzX3Vjb2RlX2xvYWRfZ3BjY3MsCiAJLnZlcnNpb25fbWF4ID0gMCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL2Jhc2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL2Jhc2UuYwppbmRleCAwNzkxNGUzNi4uNGE0ZDFlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvdGhlcm0vYmFzZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL2Jhc2UuYwpAQCAtMjEsOSArMjEsMTEgQEAKICAqCiAgKiBBdXRob3JzOiBNYXJ0aW4gUGVyZXMKICAqLwotI2luY2x1ZGUgPG52a20vY29yZS9vcHRpb24uaD4KICNpbmNsdWRlICJwcml2LmgiCiAKKyNpbmNsdWRlIDxjb3JlL29wdGlvbi5oPgorI2luY2x1ZGUgPHN1YmRldi9wbXUuaD4KKwogaW50CiBudmttX3RoZXJtX3RlbXBfZ2V0KHN0cnVjdCBudmttX3RoZXJtICp0aGVybSkKIHsKQEAgLTE5Miw4ICsxOTQsNyBAQCBudmttX3RoZXJtX2Zhbl9tb2RlKHN0cnVjdCBudmttX3RoZXJtICp0aGVybSwgaW50IG1vZGUpCiAKIAkvKiBUaGUgZGVmYXVsdCBQUFdSIHVjb2RlIG9uIGZlcm1pIGludGVyZmVyZXMgd2l0aCBmYW4gbWFuYWdlbWVudCAqLwogCWlmICgobW9kZSA+PSBBUlJBWV9TSVpFKG5hbWUpKSB8fAotCSAgICAobW9kZSAhPSBOVktNX1RIRVJNX0NUUkxfTk9ORSAmJiBkZXZpY2UtPmNhcmRfdHlwZSA+PSBOVl9DMCAmJgotCSAgICAgIWRldmljZS0+cG11KSkKKwkgICAgKG1vZGUgIT0gTlZLTV9USEVSTV9DVFJMX05PTkUgJiYgbnZrbV9wbXVfZmFuX2NvbnRyb2xsZWQoZGV2aWNlKSkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJLyogZG8gbm90IGFsbG93IGF1dG9tYXRpYyBmYW4gbWFuYWdlbWVudCBpZiB0aGUgdGhlcm1hbCBzZW5zb3IgaXMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL2ljLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi90aGVybS9pYy5jCmluZGV4IDZlMGRkYzEuLjAzYjM1NWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL2ljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvdGhlcm0vaWMuYwpAQCAtMTE2LDYgKzExNiw5IEBAIG52a21fdGhlcm1faWNfY3RvcihzdHJ1Y3QgbnZrbV90aGVybSAqdGhlcm0pCiAJCQlyZXR1cm47CiAJfQogCisJaWYgKG52Ymlvc19leHRkZXZfc2tpcF9wcm9iZShiaW9zKSkKKwkJcmV0dXJuOworCiAJLyogVGhlIHZiaW9zIGRvZXNuJ3QgcHJvdmlkZSB0aGUgYWRkcmVzcyBvZiBhbiBleGlzaXRpbmcgbW9uaXRvcmluZwogCSAgIGRldmljZS4gTGV0J3MgdHJ5IG91ciBzdGF0aWMgbGlzdC4KIAkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kaXNwbGF5cy9LY29uZmlnCmluZGV4IGMyNTY2ZGEuLjI0MGRkYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZGlzcGxheXMvS2NvbmZpZwpAQCAtMjksNDIgKzI5LDQgQEAKIAloZWxwCiAJICBEcml2ZXIgZm9yIGdlbmVyaWMgRFNJIGNvbW1hbmQgbW9kZSBwYW5lbHMuCiAKLWNvbmZpZyBEUk1fT01BUF9QQU5FTF9TT05ZX0FDWDU2NUFLTQotCXRyaXN0YXRlICJBQ1g1NjVBS00gUGFuZWwiCi0JZGVwZW5kcyBvbiBTUEkgJiYgQkFDS0xJR0hUX0NMQVNTX0RFVklDRQotCWhlbHAKLQkgIFRoaXMgaXMgdGhlIExDRCBwYW5lbCB1c2VkIG9uIE5va2lhIE45MDAKLQotY29uZmlnIERSTV9PTUFQX1BBTkVMX0xHUEhJTElQU19MQjAzNVEwMgotCXRyaXN0YXRlICJMRy5QaGlsaXBzIExCMDM1UTAyIExDRCBQYW5lbCIKLQlkZXBlbmRzIG9uIFNQSQotCWhlbHAKLQkgIExDRCBQYW5lbCB1c2VkIG9uIHRoZSBHdW1zdGl4IE92ZXJvIFBhbG8zNQotCi1jb25maWcgRFJNX09NQVBfUEFORUxfU0hBUlBfTFMwMzdWN0RXMDEKLSAgICAgICAgdHJpc3RhdGUgIlNoYXJwIExTMDM3VjdEVzAxIExDRCBQYW5lbCIKLSAgICAgICAgZGVwZW5kcyBvbiBCQUNLTElHSFRfQ0xBU1NfREVWSUNFCi0gICAgICAgIGhlbHAKLSAgICAgICAgICBMQ0QgUGFuZWwgdXNlZCBpbiBUSSdzIFNEUDM0MzAgYW5kIEVWTSBib2FyZHMKLQotY29uZmlnIERSTV9PTUFQX1BBTkVMX1RQT19URDAyOFRURUMxCi0gICAgICAgIHRyaXN0YXRlICJUUE8gVEQwMjhUVEVDMSBMQ0QgUGFuZWwiCi0gICAgICAgIGRlcGVuZHMgb24gU1BJCi0gICAgICAgIGhlbHAKLSAgICAgICAgICBMQ0QgcGFuZWwgdXNlZCBpbiBPcGVubW9rby4KLQotY29uZmlnIERSTV9PTUFQX1BBTkVMX1RQT19URDA0M01URUExCi0gICAgICAgIHRyaXN0YXRlICJUUE8gVEQwNDNNVEVBMSBMQ0QgUGFuZWwiCi0gICAgICAgIGRlcGVuZHMgb24gU1BJCi0gICAgICAgIGhlbHAKLSAgICAgICAgICBMQ0QgUGFuZWwgdXNlZCBpbiBPTUFQMyBQYW5kb3JhCi0KLWNvbmZpZyBEUk1fT01BUF9QQU5FTF9ORUNfTkw4MDQ4SEwxMQotCXRyaXN0YXRlICJORUMgTkw4MDQ4SEwxMSBQYW5lbCIKLQlkZXBlbmRzIG9uIFNQSQotCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRQotCWhlbHAKLQkJVGhpcyBORUMgTkw4MDQ4SEwxMSBwYW5lbCBpcyBURlQgTENEIHVzZWQgaW4gdGhlCi0JCVpvb20yLzMvMzYzMCBzZHAgYm9hcmRzLgotCiBlbmRtZW51CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kaXNwbGF5cy9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL01ha2VmaWxlCmluZGV4IDFkYjM0ZDQuLmNiNzY4NTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL01ha2VmaWxlCkBAIC00LDkgKzQsMyBAQAogb2JqLSQoQ09ORklHX0RSTV9PTUFQX0NPTk5FQ1RPUl9IRE1JKSArPSBjb25uZWN0b3ItaGRtaS5vCiBvYmotJChDT05GSUdfRFJNX09NQVBfQ09OTkVDVE9SX0FOQUxPR19UVikgKz0gY29ubmVjdG9yLWFuYWxvZy10di5vCiBvYmotJChDT05GSUdfRFJNX09NQVBfUEFORUxfRFNJX0NNKSArPSBwYW5lbC1kc2ktY20ubwotb2JqLSQoQ09ORklHX0RSTV9PTUFQX1BBTkVMX1NPTllfQUNYNTY1QUtNKSArPSBwYW5lbC1zb255LWFjeDU2NWFrbS5vCi1vYmotJChDT05GSUdfRFJNX09NQVBfUEFORUxfTEdQSElMSVBTX0xCMDM1UTAyKSArPSBwYW5lbC1sZ3BoaWxpcHMtbGIwMzVxMDIubwotb2JqLSQoQ09ORklHX0RSTV9PTUFQX1BBTkVMX1NIQVJQX0xTMDM3VjdEVzAxKSArPSBwYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5vCi1vYmotJChDT05GSUdfRFJNX09NQVBfUEFORUxfVFBPX1REMDI4VFRFQzEpICs9IHBhbmVsLXRwby10ZDAyOHR0ZWMxLm8KLW9iai0kKENPTkZJR19EUk1fT01BUF9QQU5FTF9UUE9fVEQwNDNNVEVBMSkgKz0gcGFuZWwtdHBvLXRkMDQzbXRlYTEubwotb2JqLSQoQ09ORklHX0RSTV9PTUFQX1BBTkVMX05FQ19OTDgwNDhITDExKSArPSBwYW5lbC1uZWMtbmw4MDQ4aGwxMS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kaXNwbGF5cy9wYW5lbC1sZ3BoaWxpcHMtbGIwMzVxMDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL3BhbmVsLWxncGhpbGlwcy1sYjAzNXEwMi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZmQwZDg0Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL3BhbmVsLWxncGhpbGlwcy1sYjAzNXEwMi5jCisrKyAvZGV2L251bGwKQEAgLTEsMjUxICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBMRy5QaGlsaXBzIExCMDM1UTAyIExDRCBQYW5lbCBkcml2ZXIKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGV4YXMgSW5zdHJ1bWVudHMgSW5jb3Jwb3JhdGVkIC0gaHR0cDovL3d3dy50aS5jb20vCi0gKiBBdXRob3I6IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+Ci0gKiBCYXNlZCBvbiBhIGRyaXZlciBieTogU3RldmUgU2Frb21hbiA8c3RldmVAc2Frb21hbi5jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgotI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLQotI2luY2x1ZGUgIi4uL2Rzcy9vbWFwZHNzLmgiCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgdmlkZW9tb2RlIGxiMDM1cTAyX3ZtID0gewotCS5oYWN0aXZlID0gMzIwLAotCS52YWN0aXZlID0gMjQwLAotCi0JLnBpeGVsY2xvY2sJPSA2NTAwMDAwLAotCi0JLmhzeW5jX2xlbgk9IDIsCi0JLmhmcm9udF9wb3JjaAk9IDIwLAotCS5oYmFja19wb3JjaAk9IDY4LAotCi0JLnZzeW5jX2xlbgk9IDIsCi0JLnZmcm9udF9wb3JjaAk9IDQsCi0JLnZiYWNrX3BvcmNoCT0gMTgsCi0KLQkuZmxhZ3MJCT0gRElTUExBWV9GTEFHU19IU1lOQ19MT1cgfCBESVNQTEFZX0ZMQUdTX1ZTWU5DX0xPVywKLX07Ci0KLXN0cnVjdCBwYW5lbF9kcnZfZGF0YSB7Ci0Jc3RydWN0IG9tYXBfZHNzX2RldmljZSBkc3NkZXY7Ci0KLQlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpOwotCi0Jc3RydWN0IHZpZGVvbW9kZSB2bTsKLQotCXN0cnVjdCBncGlvX2Rlc2MgKmVuYWJsZV9ncGlvOwotfTsKLQotI2RlZmluZSB0b19wYW5lbF9kYXRhKHApIGNvbnRhaW5lcl9vZihwLCBzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEsIGRzc2RldikKLQotc3RhdGljIGludCBsYjAzNXEwMl93cml0ZV9yZWcoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTggcmVnLCB1MTYgdmFsKQotewotCXN0cnVjdCBzcGlfbWVzc2FnZSBtc2c7Ci0Jc3RydWN0IHNwaV90cmFuc2ZlciBpbmRleF94ZmVyID0gewotCQkubGVuCQk9IDMsCi0JCS5jc19jaGFuZ2UJPSAxLAotCX07Ci0Jc3RydWN0IHNwaV90cmFuc2ZlciB2YWx1ZV94ZmVyID0gewotCQkubGVuCQk9IDMsCi0JfTsKLQl1OAlidWZmZXJbMTZdOwotCi0Jc3BpX21lc3NhZ2VfaW5pdCgmbXNnKTsKLQotCS8qIHJlZ2lzdGVyIGluZGV4ICovCi0JYnVmZmVyWzBdID0gMHg3MDsKLQlidWZmZXJbMV0gPSAweDAwOwotCWJ1ZmZlclsyXSA9IHJlZyAmIDB4N2Y7Ci0JaW5kZXhfeGZlci50eF9idWYgPSBidWZmZXI7Ci0Jc3BpX21lc3NhZ2VfYWRkX3RhaWwoJmluZGV4X3hmZXIsICZtc2cpOwotCi0JLyogcmVnaXN0ZXIgdmFsdWUgKi8KLQlidWZmZXJbNF0gPSAweDcyOwotCWJ1ZmZlcls1XSA9IHZhbCA+PiA4OwotCWJ1ZmZlcls2XSA9IHZhbDsKLQl2YWx1ZV94ZmVyLnR4X2J1ZiA9IGJ1ZmZlciArIDQ7Ci0Jc3BpX21lc3NhZ2VfYWRkX3RhaWwoJnZhbHVlX3hmZXIsICZtc2cpOwotCi0JcmV0dXJuIHNwaV9zeW5jKHNwaSwgJm1zZyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGluaXRfbGIwMzVxMDJfcGFuZWwoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQkvKiBJbml0IHNlcXVlbmNlIGZyb20gcGFnZSAyOCBvZiB0aGUgbGIwMzVxMDIgc3BlYyAqLwotCWxiMDM1cTAyX3dyaXRlX3JlZyhzcGksIDB4MDEsIDB4NjMwMCk7Ci0JbGIwMzVxMDJfd3JpdGVfcmVnKHNwaSwgMHgwMiwgMHgwMjAwKTsKLQlsYjAzNXEwMl93cml0ZV9yZWcoc3BpLCAweDAzLCAweDAxNzcpOwotCWxiMDM1cTAyX3dyaXRlX3JlZyhzcGksIDB4MDQsIDB4MDRjNyk7Ci0JbGIwMzVxMDJfd3JpdGVfcmVnKHNwaSwgMHgwNSwgMHhmZmMwKTsKLQlsYjAzNXEwMl93cml0ZV9yZWcoc3BpLCAweDA2LCAweGU4MDYpOwotCWxiMDM1cTAyX3dyaXRlX3JlZyhzcGksIDB4MGEsIDB4NDAwOCk7Ci0JbGIwMzVxMDJfd3JpdGVfcmVnKHNwaSwgMHgwYiwgMHgwMDAwKTsKLQlsYjAzNXEwMl93cml0ZV9yZWcoc3BpLCAweDBkLCAweDAwMzApOwotCWxiMDM1cTAyX3dyaXRlX3JlZyhzcGksIDB4MGUsIDB4MjgwMCk7Ci0JbGIwMzVxMDJfd3JpdGVfcmVnKHNwaSwgMHgwZiwgMHgwMDAwKTsKLQlsYjAzNXEwMl93cml0ZV9yZWcoc3BpLCAweDE2LCAweDlmODApOwotCWxiMDM1cTAyX3dyaXRlX3JlZyhzcGksIDB4MTcsIDB4MGEwZik7Ci0JbGIwMzVxMDJfd3JpdGVfcmVnKHNwaSwgMHgxZSwgMHgwMGMxKTsKLQlsYjAzNXEwMl93cml0ZV9yZWcoc3BpLCAweDMwLCAweDAzMDApOwotCWxiMDM1cTAyX3dyaXRlX3JlZyhzcGksIDB4MzEsIDB4MDAwNyk7Ci0JbGIwMzVxMDJfd3JpdGVfcmVnKHNwaSwgMHgzMiwgMHgwMDAwKTsKLQlsYjAzNXEwMl93cml0ZV9yZWcoc3BpLCAweDMzLCAweDAwMDApOwotCWxiMDM1cTAyX3dyaXRlX3JlZyhzcGksIDB4MzQsIDB4MDcwNyk7Ci0JbGIwMzVxMDJfd3JpdGVfcmVnKHNwaSwgMHgzNSwgMHgwMDA0KTsKLQlsYjAzNXEwMl93cml0ZV9yZWcoc3BpLCAweDM2LCAweDAzMDIpOwotCWxiMDM1cTAyX3dyaXRlX3JlZyhzcGksIDB4MzcsIDB4MDIwMik7Ci0JbGIwMzVxMDJfd3JpdGVfcmVnKHNwaSwgMHgzYSwgMHgwYTBkKTsKLQlsYjAzNXEwMl93cml0ZV9yZWcoc3BpLCAweDNiLCAweDA4MDYpOwotfQotCi1zdGF0aWMgaW50IGxiMDM1cTAyX2Nvbm5lY3Qoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqc3JjLAotCQkJICAgIHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzdCkKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3QpOwotCi0JaW5pdF9sYjAzNXEwMl9wYW5lbChkZGF0YS0+c3BpKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBsYjAzNXEwMl9kaXNjb25uZWN0KHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKnNyYywKLQkJCQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3QpCi17Ci19Ci0KLXN0YXRpYyB2b2lkIGxiMDM1cTAyX2VuYWJsZShzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IHRvX3BhbmVsX2RhdGEoZHNzZGV2KTsKLQotCWlmIChkZGF0YS0+ZW5hYmxlX2dwaW8pCi0JCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChkZGF0YS0+ZW5hYmxlX2dwaW8sIDEpOwotfQotCi1zdGF0aWMgdm9pZCBsYjAzNXEwMl9kaXNhYmxlKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCi0JaWYgKGRkYXRhLT5lbmFibGVfZ3BpbykKLQkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGRkYXRhLT5lbmFibGVfZ3BpbywgMCk7Ci19Ci0KLXN0YXRpYyBpbnQgbGIwMzVxMDJfZ2V0X21vZGVzKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldiwKLQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IHRvX3BhbmVsX2RhdGEoZHNzZGV2KTsKLQotCXJldHVybiBvbWFwZHNzX2Rpc3BsYXlfZ2V0X21vZGVzKGNvbm5lY3RvciwgJmRkYXRhLT52bSk7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlX29wcyBsYjAzNXEwMl9vcHMgPSB7Ci0JLmNvbm5lY3QJPSBsYjAzNXEwMl9jb25uZWN0LAotCS5kaXNjb25uZWN0CT0gbGIwMzVxMDJfZGlzY29ubmVjdCwKLQotCS5lbmFibGUJCT0gbGIwMzVxMDJfZW5hYmxlLAotCS5kaXNhYmxlCT0gbGIwMzVxMDJfZGlzYWJsZSwKLQotCS5nZXRfbW9kZXMJPSBsYjAzNXEwMl9nZXRfbW9kZXMsCi19OwotCi1zdGF0aWMgaW50IGxiMDM1cTAyX3Byb2JlX29mKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YSgmc3BpLT5kZXYpOwotCXN0cnVjdCBncGlvX2Rlc2MgKmdwaW87Ci0KLQlncGlvID0gZGV2bV9ncGlvZF9nZXQoJnNwaS0+ZGV2LCAiZW5hYmxlIiwgR1BJT0RfT1VUX0xPVyk7Ci0JaWYgKElTX0VSUihncGlvKSkgewotCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0byBwYXJzZSBlbmFibGUgZ3Bpb1xuIik7Ci0JCXJldHVybiBQVFJfRVJSKGdwaW8pOwotCX0KLQotCWRkYXRhLT5lbmFibGVfZ3BpbyA9IGdwaW87Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBsYjAzNXEwMl9wYW5lbF9zcGlfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhOwotCXN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldjsKLQlpbnQgcjsKLQotCWRkYXRhID0gZGV2bV9remFsbG9jKCZzcGktPmRldiwgc2l6ZW9mKCpkZGF0YSksIEdGUF9LRVJORUwpOwotCWlmIChkZGF0YSA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWRldl9zZXRfZHJ2ZGF0YSgmc3BpLT5kZXYsIGRkYXRhKTsKLQotCWRkYXRhLT5zcGkgPSBzcGk7Ci0KLQlyID0gbGIwMzVxMDJfcHJvYmVfb2Yoc3BpKTsKLQlpZiAocikKLQkJcmV0dXJuIHI7Ci0KLQlkZGF0YS0+dm0gPSBsYjAzNXEwMl92bTsKLQotCWRzc2RldiA9ICZkZGF0YS0+ZHNzZGV2OwotCWRzc2Rldi0+ZGV2ID0gJnNwaS0+ZGV2OwotCWRzc2Rldi0+b3BzID0gJmxiMDM1cTAyX29wczsKLQlkc3NkZXYtPnR5cGUgPSBPTUFQX0RJU1BMQVlfVFlQRV9EUEk7Ci0JZHNzZGV2LT5kaXNwbGF5ID0gdHJ1ZTsKLQlkc3NkZXYtPm93bmVyID0gVEhJU19NT0RVTEU7Ci0JZHNzZGV2LT5vZl9wb3J0cyA9IEJJVCgwKTsKLQlkc3NkZXYtPm9wc19mbGFncyA9IE9NQVBfRFNTX0RFVklDRV9PUF9NT0RFUzsKLQotCS8qCi0JICogTm90ZTogQWNjb3JkaW5nIHRvIHRoZSBwYW5lbCBkb2N1bWVudGF0aW9uOgotCSAqIERFIGlzIGFjdGl2ZSBMT1cKLQkgKiBEQVRBIG5lZWRzIHRvIGJlIGRyaXZlbiBvbiB0aGUgRkFMTElORyBlZGdlCi0JICovCi0JZHNzZGV2LT5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfREVfSElHSAotCQkJICB8IERSTV9CVVNfRkxBR19TWU5DX0RSSVZFX05FR0VER0UKLQkJCSAgfCBEUk1fQlVTX0ZMQUdfUElYREFUQV9EUklWRV9QT1NFREdFOwotCi0Jb21hcGRzc19kaXNwbGF5X2luaXQoZHNzZGV2KTsKLQlvbWFwZHNzX2RldmljZV9yZWdpc3Rlcihkc3NkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbGIwMzVxMDJfcGFuZWxfc3BpX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJnNwaS0+ZGV2KTsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYgPSAmZGRhdGEtPmRzc2RldjsKLQotCW9tYXBkc3NfZGV2aWNlX3VucmVnaXN0ZXIoZHNzZGV2KTsKLQotCWxiMDM1cTAyX2Rpc2FibGUoZHNzZGV2KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBsYjAzNXEwMl9vZl9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAib21hcGRzcyxsZ3BoaWxpcHMsbGIwMzVxMDIiLCB9LAotCXt9LAotfTsKLQotTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbGIwMzVxMDJfb2ZfbWF0Y2gpOwotCi1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgbGIwMzVxMDJfc3BpX2RyaXZlciA9IHsKLQkucHJvYmUJCT0gbGIwMzVxMDJfcGFuZWxfc3BpX3Byb2JlLAotCS5yZW1vdmUJCT0gbGIwMzVxMDJfcGFuZWxfc3BpX3JlbW92ZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAicGFuZWxfbGdwaGlsaXBzX2xiMDM1cTAyIiwKLQkJLm9mX21hdGNoX3RhYmxlID0gbGIwMzVxMDJfb2ZfbWF0Y2gsCi0JCS5zdXBwcmVzc19iaW5kX2F0dHJzID0gdHJ1ZSwKLQl9LAotfTsKLQotbW9kdWxlX3NwaV9kcml2ZXIobGIwMzVxMDJfc3BpX2RyaXZlcik7Ci0KLU1PRFVMRV9BTElBUygic3BpOmxncGhpbGlwcyxsYjAzNXEwMiIpOwotTU9EVUxFX0FVVEhPUigiVG9taSBWYWxrZWluZW4gPHRvbWkudmFsa2VpbmVuQHRpLmNvbT4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiTEcuUGhpbGlwcyBMQjAzNVEwMiBMQ0QgUGFuZWwgZHJpdmVyIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kaXNwbGF5cy9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZGlzcGxheXMvcGFuZWwtbmVjLW5sODA0OGhsMTEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJhNWJkMS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kaXNwbGF5cy9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjcxICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCi0vKgotICogTkVDIE5MODA0OEhMMTEgUGFuZWwgZHJpdmVyCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZCAtIGh0dHA6Ly93d3cudGkuY29tLwotICogQXV0aG9yOiBFcmlrIEdpbGxpbmcgPGtvbmtlcnNAYW5kcm9pZC5jb20+Ci0gKiBDb252ZXJ0ZWQgdG8gbmV3IERTUyBkZXZpY2UgbW9kZWw6IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KLQotI2luY2x1ZGUgIi4uL2Rzcy9vbWFwZHNzLmgiCi0KLXN0cnVjdCBwYW5lbF9kcnZfZGF0YSB7Ci0Jc3RydWN0IG9tYXBfZHNzX2RldmljZQlkc3NkZXY7Ci0KLQlzdHJ1Y3QgdmlkZW9tb2RlIHZtOwotCi0Jc3RydWN0IGdwaW9fZGVzYyAqcmVzX2dwaW87Ci0KLQlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpOwotfTsKLQotI2RlZmluZSBMQ0RfWFJFUwkJODAwCi0jZGVmaW5lIExDRF9ZUkVTCQk0ODAKLS8qCi0gKiBORUMgUElYIENsb2NrIFJhdGluZ3MKLSAqIE1JTjoyMS44TUh6IFRZUDoyMy44TUh6IE1BWDoyNS43TUh6Ci0gKi8KLSNkZWZpbmUgTENEX1BJWEVMX0NMT0NLCQkyMzgwMDAwMAotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHsKLQl1bnNpZ25lZCBjaGFyIGFkZHI7Ci0JdW5zaWduZWQgY2hhciBkYXQ7Ci19IG5lY184MDQ4X2luaXRfc2VxW10gPSB7Ci0JeyAzLCAweDAxIH0sIHsgMCwgMHgwMCB9LCB7IDEsIDB4MDEgfSwgeyA0LCAweDAwIH0sIHsgNSwgMHgxNCB9LAotCXsgNiwgMHgyNCB9LCB7IDE2LCAweEQ3IH0sIHsgMTcsIDB4MDAgfSwgeyAxOCwgMHgwMCB9LCB7IDE5LCAweDU1IH0sCi0JeyAyMCwgMHgwMSB9LCB7IDIxLCAweDcwIH0sIHsgMjIsIDB4MUUgfSwgeyAyMywgMHgyNSB9LAl7IDI0LCAweDI1IH0sCi0JeyAyNSwgMHgwMiB9LCB7IDI2LCAweDAyIH0sIHsgMjcsIDB4QTAgfSwgeyAzMiwgMHgyRiB9LCB7IDMzLCAweDBGIH0sCi0JeyAzNCwgMHgwRiB9LCB7IDM1LCAweDBGIH0sIHsgMzYsIDB4MEYgfSwgeyAzNywgMHgwRiB9LAl7IDM4LCAweDBGIH0sCi0JeyAzOSwgMHgwMCB9LCB7IDQwLCAweDAyIH0sIHsgNDEsIDB4MDIgfSwgeyA0MiwgMHgwMiB9LAl7IDQzLCAweDBGIH0sCi0JeyA0NCwgMHgwRiB9LCB7IDQ1LCAweDBGIH0sIHsgNDYsIDB4MEYgfSwgeyA0NywgMHgwRiB9LAl7IDQ4LCAweDBGIH0sCi0JeyA0OSwgMHgwRiB9LCB7IDUwLCAweDAwIH0sIHsgNTEsIDB4MDIgfSwgeyA1MiwgMHgwMiB9LCB7IDUzLCAweDAyIH0sCi0JeyA4MCwgMHgwQyB9LCB7IDgzLCAweDQyIH0sIHsgODQsIDB4NDIgfSwgeyA4NSwgMHg0MSB9LAl7IDg2LCAweDE0IH0sCi0JeyA4OSwgMHg4OCB9LCB7IDkwLCAweDAxIH0sIHsgOTEsIDB4MDAgfSwgeyA5MiwgMHgwMiB9LAl7IDkzLCAweDBDIH0sCi0JeyA5NCwgMHgxQyB9LCB7IDk1LCAweDI3IH0sIHsgOTgsIDB4NDkgfSwgeyA5OSwgMHgyNyB9LCB7IDEwMiwgMHg3NiB9LAotCXsgMTAzLCAweDI3IH0sIHsgMTEyLCAweDAxIH0sIHsgMTEzLCAweDBFIH0sIHsgMTE0LCAweDAyIH0sCi0JeyAxMTUsIDB4MEMgfSwgeyAxMTgsIDB4MEMgfSwgeyAxMjEsIDB4MzAgfSwgeyAxMzAsIDB4MDAgfSwKLQl7IDEzMSwgMHgwMCB9LCB7IDEzMiwgMHhGQyB9LCB7IDEzNCwgMHgwMCB9LCB7IDEzNiwgMHgwMCB9LAotCXsgMTM4LCAweDAwIH0sIHsgMTM5LCAweDAwIH0sIHsgMTQwLCAweDAwIH0sIHsgMTQxLCAweEZDIH0sCi0JeyAxNDMsIDB4MDAgfSwgeyAxNDUsIDB4MDAgfSwgeyAxNDcsIDB4MDAgfSwgeyAxNDgsIDB4MDAgfSwKLQl7IDE0OSwgMHgwMCB9LCB7IDE1MCwgMHhGQyB9LCB7IDE1MiwgMHgwMCB9LCB7IDE1NCwgMHgwMCB9LAotCXsgMTU2LCAweDAwIH0sIHsgMTU3LCAweDAwIH0sIHsgMiwgMHgwMCB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB2aWRlb21vZGUgbmVjXzgwNDhfcGFuZWxfdm0gPSB7Ci0JLmhhY3RpdmUJPSBMQ0RfWFJFUywKLQkudmFjdGl2ZQk9IExDRF9ZUkVTLAotCS5waXhlbGNsb2NrCT0gTENEX1BJWEVMX0NMT0NLLAotCS5oZnJvbnRfcG9yY2gJPSA2LAotCS5oc3luY19sZW4JPSAxLAotCS5oYmFja19wb3JjaAk9IDQsCi0JLnZmcm9udF9wb3JjaAk9IDMsCi0JLnZzeW5jX2xlbgk9IDEsCi0JLnZiYWNrX3BvcmNoCT0gNCwKLQotCS5mbGFncwkJPSBESVNQTEFZX0ZMQUdTX0hTWU5DX0xPVyB8IERJU1BMQVlfRkxBR1NfVlNZTkNfTE9XLAotfTsKLQotI2RlZmluZSB0b19wYW5lbF9kYXRhKHApIGNvbnRhaW5lcl9vZihwLCBzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEsIGRzc2RldikKLQotc3RhdGljIGludCBuZWNfODA0OF9zcGlfc2VuZChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCB1bnNpZ25lZCBjaGFyIHJlZ19hZGRyLAotCQkJdW5zaWduZWQgY2hhciByZWdfZGF0YSkKLXsKLQlpbnQgcmV0ID0gMDsKLQl1bnNpZ25lZCBpbnQgY21kID0gMCwgZGF0YSA9IDA7Ci0KLQljbWQgPSAweDAwMDAgfCByZWdfYWRkcjsgLyogcmVnaXN0ZXIgYWRkcmVzcyB3cml0ZSAqLwotCWRhdGEgPSAweDAxMDAgfCByZWdfZGF0YTsgLyogcmVnaXN0ZXIgZGF0YSB3cml0ZSAqLwotCWRhdGEgPSAoY21kIDw8IDE2KSB8IGRhdGE7Ci0KLQlyZXQgPSBzcGlfd3JpdGUoc3BpLCAodW5zaWduZWQgY2hhciAqKSZkYXRhLCA0KTsKLQlpZiAocmV0KQotCQlwcl9lcnIoImVycm9yIGluIHNwaV93cml0ZSAleFxuIiwgZGF0YSk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IGluaXRfbmVjXzgwNDhfd3ZnYV9sY2Qoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQl1bnNpZ25lZCBpbnQgaTsKLQkvKiBJbml0aWFsaXphdGlvbiBTZXF1ZW5jZSAqLwotCS8qIG5lY184MDQ4X3NwaV9zZW5kKHNwaSwgUkVHLCBWQUwpICovCi0JZm9yIChpID0gMDsgaSA8IChBUlJBWV9TSVpFKG5lY184MDQ4X2luaXRfc2VxKSAtIDEpOyBpKyspCi0JCW5lY184MDQ4X3NwaV9zZW5kKHNwaSwgbmVjXzgwNDhfaW5pdF9zZXFbaV0uYWRkciwKLQkJCQluZWNfODA0OF9pbml0X3NlcVtpXS5kYXQpOwotCXVkZWxheSgyMCk7Ci0JbmVjXzgwNDhfc3BpX3NlbmQoc3BpLCBuZWNfODA0OF9pbml0X3NlcVtpXS5hZGRyLAotCQkJCW5lY184MDQ4X2luaXRfc2VxW2ldLmRhdCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbmVjXzgwNDhfY29ubmVjdChzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpzcmMsCi0JCQkgICAgc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHN0KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBuZWNfODA0OF9kaXNjb25uZWN0KHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKnNyYywKLQkJCQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3QpCi17Ci19Ci0KLXN0YXRpYyB2b2lkIG5lY184MDQ4X2VuYWJsZShzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IHRvX3BhbmVsX2RhdGEoZHNzZGV2KTsKLQotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChkZGF0YS0+cmVzX2dwaW8sIDEpOwotfQotCi1zdGF0aWMgdm9pZCBuZWNfODA0OF9kaXNhYmxlKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCi0JZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGRkYXRhLT5yZXNfZ3BpbywgMCk7Ci19Ci0KLXN0YXRpYyBpbnQgbmVjXzgwNDhfZ2V0X21vZGVzKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldiwKLQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IHRvX3BhbmVsX2RhdGEoZHNzZGV2KTsKLQotCXJldHVybiBvbWFwZHNzX2Rpc3BsYXlfZ2V0X21vZGVzKGNvbm5lY3RvciwgJmRkYXRhLT52bSk7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlX29wcyBuZWNfODA0OF9vcHMgPSB7Ci0JLmNvbm5lY3QJPSBuZWNfODA0OF9jb25uZWN0LAotCS5kaXNjb25uZWN0CT0gbmVjXzgwNDhfZGlzY29ubmVjdCwKLQotCS5lbmFibGUJCT0gbmVjXzgwNDhfZW5hYmxlLAotCS5kaXNhYmxlCT0gbmVjXzgwNDhfZGlzYWJsZSwKLQotCS5nZXRfbW9kZXMJPSBuZWNfODA0OF9nZXRfbW9kZXMsCi19OwotCi1zdGF0aWMgaW50IG5lY184MDQ4X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YTsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXY7Ci0Jc3RydWN0IGdwaW9fZGVzYyAqZ3BpbzsKLQlpbnQgcjsKLQotCWRldl9kYmcoJnNwaS0+ZGV2LCAiJXNcbiIsIF9fZnVuY19fKTsKLQotCXNwaS0+bW9kZSA9IFNQSV9NT0RFXzA7Ci0Jc3BpLT5iaXRzX3Blcl93b3JkID0gMzI7Ci0KLQlyID0gc3BpX3NldHVwKHNwaSk7Ci0JaWYgKHIgPCAwKSB7Ci0JCWRldl9lcnIoJnNwaS0+ZGV2LCAic3BpX3NldHVwIGZhaWxlZDogJWRcbiIsIHIpOwotCQlyZXR1cm4gcjsKLQl9Ci0KLQlpbml0X25lY184MDQ4X3d2Z2FfbGNkKHNwaSk7Ci0KLQlkZGF0YSA9IGRldm1fa3phbGxvYygmc3BpLT5kZXYsIHNpemVvZigqZGRhdGEpLCBHRlBfS0VSTkVMKTsKLQlpZiAoZGRhdGEgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlkZXZfc2V0X2RydmRhdGEoJnNwaS0+ZGV2LCBkZGF0YSk7Ci0KLQlkZGF0YS0+c3BpID0gc3BpOwotCi0JZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0KCZzcGktPmRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0xPVyk7Ci0JaWYgKElTX0VSUihncGlvKSkgewotCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0byBnZXQgcmVzZXQgZ3Bpb1xuIik7Ci0JCXJldHVybiBQVFJfRVJSKGdwaW8pOwotCX0KLQotCWRkYXRhLT5yZXNfZ3BpbyA9IGdwaW87Ci0KLQlkZGF0YS0+dm0gPSBuZWNfODA0OF9wYW5lbF92bTsKLQotCWRzc2RldiA9ICZkZGF0YS0+ZHNzZGV2OwotCWRzc2Rldi0+ZGV2ID0gJnNwaS0+ZGV2OwotCWRzc2Rldi0+b3BzID0gJm5lY184MDQ4X29wczsKLQlkc3NkZXYtPnR5cGUgPSBPTUFQX0RJU1BMQVlfVFlQRV9EUEk7Ci0JZHNzZGV2LT5kaXNwbGF5ID0gdHJ1ZTsKLQlkc3NkZXYtPm93bmVyID0gVEhJU19NT0RVTEU7Ci0JZHNzZGV2LT5vZl9wb3J0cyA9IEJJVCgwKTsKLQlkc3NkZXYtPm9wc19mbGFncyA9IE9NQVBfRFNTX0RFVklDRV9PUF9NT0RFUzsKLQlkc3NkZXYtPmJ1c19mbGFncyA9IERSTV9CVVNfRkxBR19ERV9ISUdICi0JCQkgIHwgRFJNX0JVU19GTEFHX1NZTkNfRFJJVkVfUE9TRURHRQotCQkJICB8IERSTV9CVVNfRkxBR19QSVhEQVRBX0RSSVZFX1BPU0VER0U7Ci0KLQlvbWFwZHNzX2Rpc3BsYXlfaW5pdChkc3NkZXYpOwotCW9tYXBkc3NfZGV2aWNlX3JlZ2lzdGVyKGRzc2Rldik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBuZWNfODA0OF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZzcGktPmRldik7Ci0Jc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2ID0gJmRkYXRhLT5kc3NkZXY7Ci0KLQlkZXZfZGJnKCZkZGF0YS0+c3BpLT5kZXYsICIlc1xuIiwgX19mdW5jX18pOwotCi0Jb21hcGRzc19kZXZpY2VfdW5yZWdpc3Rlcihkc3NkZXYpOwotCi0JbmVjXzgwNDhfZGlzYWJsZShkc3NkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBDT05GSUdfUE1fU0xFRVAKLXN0YXRpYyBpbnQgbmVjXzgwNDhfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IHRvX3NwaV9kZXZpY2UoZGV2KTsKLQotCW5lY184MDQ4X3NwaV9zZW5kKHNwaSwgMiwgMHgwMSk7Ci0JbWRlbGF5KDQwKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IG5lY184MDQ4X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IHRvX3NwaV9kZXZpY2UoZGV2KTsKLQotCS8qIHJlaW5pdGlhbGl6ZSB0aGUgcGFuZWwgKi8KLQlzcGlfc2V0dXAoc3BpKTsKLQluZWNfODA0OF9zcGlfc2VuZChzcGksIDIsIDB4MDApOwotCWluaXRfbmVjXzgwNDhfd3ZnYV9sY2Qoc3BpKTsKLQotCXJldHVybiAwOwotfQotc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKG5lY184MDQ4X3BtX29wcywgbmVjXzgwNDhfc3VzcGVuZCwKLQkJbmVjXzgwNDhfcmVzdW1lKTsKLSNkZWZpbmUgTkVDXzgwNDhfUE1fT1BTICgmbmVjXzgwNDhfcG1fb3BzKQotI2Vsc2UKLSNkZWZpbmUgTkVDXzgwNDhfUE1fT1BTIE5VTEwKLSNlbmRpZgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBuZWNfODA0OF9vZl9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAib21hcGRzcyxuZWMsbmw4MDQ4aGwxMSIsIH0sCi0Je30sCi19OwotCi1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBuZWNfODA0OF9vZl9tYXRjaCk7Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBuZWNfODA0OF9kcml2ZXIgPSB7Ci0JLmRyaXZlciA9IHsKLQkJLm5hbWUJPSAicGFuZWwtbmVjLW5sODA0OGhsMTEiLAotCQkucG0JPSBORUNfODA0OF9QTV9PUFMsCi0JCS5vZl9tYXRjaF90YWJsZSA9IG5lY184MDQ4X29mX21hdGNoLAotCQkuc3VwcHJlc3NfYmluZF9hdHRycyA9IHRydWUsCi0JfSwKLQkucHJvYmUJPSBuZWNfODA0OF9wcm9iZSwKLQkucmVtb3ZlCT0gbmVjXzgwNDhfcmVtb3ZlLAotfTsKLQotbW9kdWxlX3NwaV9kcml2ZXIobmVjXzgwNDhfZHJpdmVyKTsKLQotTU9EVUxFX0FMSUFTKCJzcGk6bmVjLG5sODA0OGhsMTEiKTsKLU1PRFVMRV9BVVRIT1IoIkVyaWsgR2lsbGluZyA8a29ua2Vyc0BhbmRyb2lkLmNvbT4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiTkVDLU5MODA0OEhMMTEgRHJpdmVyIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kaXNwbGF5cy9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZGlzcGxheXMvcGFuZWwtc2hhcnAtbHMwMzd2N2R3MDEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FiNTBmZDEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZGlzcGxheXMvcGFuZWwtc2hhcnAtbHMwMzd2N2R3MDEuYworKysgL2Rldi9udWxsCkBAIC0xLDI2MiArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogTENEIHBhbmVsIGRyaXZlciBmb3IgU2hhcnAgTFMwMzdWN0RXMDEKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGV4YXMgSW5zdHJ1bWVudHMgSW5jb3Jwb3JhdGVkIC0gaHR0cDovL3d3dy50aS5jb20vCi0gKiBBdXRob3I6IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L29mLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgotCi0jaW5jbHVkZSAiLi4vZHNzL29tYXBkc3MuaCIKLQotc3RydWN0IHBhbmVsX2Rydl9kYXRhIHsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlIGRzc2RldjsKLQlzdHJ1Y3QgcmVndWxhdG9yICp2Y2M7Ci0KLQlzdHJ1Y3QgdmlkZW9tb2RlIHZtOwotCi0Jc3RydWN0IGdwaW9fZGVzYyAqcmVzYl9ncGlvOwkvKiBsb3cgPSByZXNldCBhY3RpdmUgbWluIDIwIHVzICovCi0Jc3RydWN0IGdwaW9fZGVzYyAqaW5pX2dwaW87CS8qIGhpZ2ggPSBwb3dlciBvbiAqLwotCXN0cnVjdCBncGlvX2Rlc2MgKm1vX2dwaW87CS8qIGxvdyA9IDQ4MHg2NDAsIGhpZ2ggPSAyNDB4MzIwICovCi0Jc3RydWN0IGdwaW9fZGVzYyAqbHJfZ3BpbzsJLyogaGlnaCA9IGNvbnZlbnRpb25hbCBob3Jpem9udGFsIHNjYW5uaW5nICovCi0Jc3RydWN0IGdwaW9fZGVzYyAqdWRfZ3BpbzsJLyogaGlnaCA9IGNvbnZlbnRpb25hbCB2ZXJ0aWNhbCBzY2FubmluZyAqLwotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB2aWRlb21vZGUgc2hhcnBfbHNfdm0gPSB7Ci0JLmhhY3RpdmUgPSA0ODAsCi0JLnZhY3RpdmUgPSA2NDAsCi0KLQkucGl4ZWxjbG9jawk9IDE5MjAwMDAwLAotCi0JLmhzeW5jX2xlbgk9IDIsCi0JLmhmcm9udF9wb3JjaAk9IDEsCi0JLmhiYWNrX3BvcmNoCT0gMjgsCi0KLQkudnN5bmNfbGVuCT0gMSwKLQkudmZyb250X3BvcmNoCT0gMSwKLQkudmJhY2tfcG9yY2gJPSAxLAotCi0JLmZsYWdzCQk9IERJU1BMQVlfRkxBR1NfSFNZTkNfTE9XIHwgRElTUExBWV9GTEFHU19WU1lOQ19MT1csCi19OwotCi0jZGVmaW5lIHRvX3BhbmVsX2RhdGEocCkgY29udGFpbmVyX29mKHAsIHN0cnVjdCBwYW5lbF9kcnZfZGF0YSwgZHNzZGV2KQotCi1zdGF0aWMgaW50IHNoYXJwX2xzX2Nvbm5lY3Qoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqc3JjLAotCQkJICAgIHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzdCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgc2hhcnBfbHNfZGlzY29ubmVjdChzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpzcmMsCi0JCQkJc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHN0KQotewotfQotCi1zdGF0aWMgdm9pZCBzaGFycF9sc19wcmVfZW5hYmxlKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCWludCByOwotCi0JaWYgKGRkYXRhLT52Y2MpIHsKLQkJciA9IHJlZ3VsYXRvcl9lbmFibGUoZGRhdGEtPnZjYyk7Ci0JCWlmIChyKQotCQkJZGV2X2Vycihkc3NkZXYtPmRldiwgIiVzOiBmYWlsZWQgdG8gZW5hYmxlIHJlZ3VsYXRvclxuIiwKLQkJCQlfX2Z1bmNfXyk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBzaGFycF9sc19lbmFibGUoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2KQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSB0b19wYW5lbF9kYXRhKGRzc2Rldik7Ci0KLQkvKiB3YWl0IGNvdXBsZSBvZiB2c3luY3MgdW50aWwgZW5hYmxpbmcgdGhlIExDRCAqLwotCW1zbGVlcCg1MCk7Ci0KLQlpZiAoZGRhdGEtPnJlc2JfZ3BpbykKLQkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGRkYXRhLT5yZXNiX2dwaW8sIDEpOwotCi0JaWYgKGRkYXRhLT5pbmlfZ3BpbykKLQkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGRkYXRhLT5pbmlfZ3BpbywgMSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNoYXJwX2xzX2Rpc2FibGUoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2KQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSB0b19wYW5lbF9kYXRhKGRzc2Rldik7Ci0KLQlpZiAoZGRhdGEtPmluaV9ncGlvKQotCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZGRhdGEtPmluaV9ncGlvLCAwKTsKLQotCWlmIChkZGF0YS0+cmVzYl9ncGlvKQotCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZGRhdGEtPnJlc2JfZ3BpbywgMCk7Ci0KLQkvKiB3YWl0IGF0IGxlYXN0IDUgdnN5bmNzIGFmdGVyIGRpc2FibGluZyB0aGUgTENEICovCi0JbXNsZWVwKDEwMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNoYXJwX2xzX3Bvc3RfZGlzYWJsZShzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IHRvX3BhbmVsX2RhdGEoZHNzZGV2KTsKLQotCWlmIChkZGF0YS0+dmNjKQotCQlyZWd1bGF0b3JfZGlzYWJsZShkZGF0YS0+dmNjKTsKLX0KLQotc3RhdGljIGludCBzaGFycF9sc19nZXRfbW9kZXMoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2LAotCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCi0JcmV0dXJuIG9tYXBkc3NfZGlzcGxheV9nZXRfbW9kZXMoY29ubmVjdG9yLCAmZGRhdGEtPnZtKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2Rzc19kZXZpY2Vfb3BzIHNoYXJwX2xzX29wcyA9IHsKLQkuY29ubmVjdAk9IHNoYXJwX2xzX2Nvbm5lY3QsCi0JLmRpc2Nvbm5lY3QJPSBzaGFycF9sc19kaXNjb25uZWN0LAotCi0JLnByZV9lbmFibGUJPSBzaGFycF9sc19wcmVfZW5hYmxlLAotCS5lbmFibGUJCT0gc2hhcnBfbHNfZW5hYmxlLAotCS5kaXNhYmxlCT0gc2hhcnBfbHNfZGlzYWJsZSwKLQkucG9zdF9kaXNhYmxlCT0gc2hhcnBfbHNfcG9zdF9kaXNhYmxlLAotCi0JLmdldF9tb2Rlcwk9IHNoYXJwX2xzX2dldF9tb2RlcywKLX07Ci0KLXN0YXRpYyAgaW50IHNoYXJwX2xzX2dldF9ncGlvX29mKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGluZGV4LCBpbnQgdmFsLAotCWNvbnN0IGNoYXIgKmRlc2MsIHN0cnVjdCBncGlvX2Rlc2MgKipncGlvZCkKLXsKLQlzdHJ1Y3QgZ3Bpb19kZXNjICpnZDsKLQotCSpncGlvZCA9IE5VTEw7Ci0KLQlnZCA9IGRldm1fZ3Bpb2RfZ2V0X2luZGV4KGRldiwgZGVzYywgaW5kZXgsIEdQSU9EX09VVF9MT1cpOwotCWlmIChJU19FUlIoZ2QpKQotCQlyZXR1cm4gUFRSX0VSUihnZCk7Ci0KLQkqZ3Bpb2QgPSBnZDsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzaGFycF9sc19wcm9iZV9vZihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQlpbnQgcjsKLQotCWRkYXRhLT52Y2MgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoJnBkZXYtPmRldiwgImVudmRkIik7Ci0JaWYgKElTX0VSUihkZGF0YS0+dmNjKSkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHJlZ3VsYXRvclxuIik7Ci0JCXJldHVybiBQVFJfRVJSKGRkYXRhLT52Y2MpOwotCX0KLQotCS8qIGxjZCBJTkkgKi8KLQlyID0gc2hhcnBfbHNfZ2V0X2dwaW9fb2YoJnBkZXYtPmRldiwgMCwgMCwgImVuYWJsZSIsICZkZGF0YS0+aW5pX2dwaW8pOwotCWlmIChyKQotCQlyZXR1cm4gcjsKLQotCS8qIGxjZCBSRVNCICovCi0JciA9IHNoYXJwX2xzX2dldF9ncGlvX29mKCZwZGV2LT5kZXYsIDAsIDAsICJyZXNldCIsICZkZGF0YS0+cmVzYl9ncGlvKTsKLQlpZiAocikKLQkJcmV0dXJuIHI7Ci0KLQkvKiBsY2QgTU8gKi8KLQlyID0gc2hhcnBfbHNfZ2V0X2dwaW9fb2YoJnBkZXYtPmRldiwgMCwgMCwgIm1vZGUiLCAmZGRhdGEtPm1vX2dwaW8pOwotCWlmIChyKQotCQlyZXR1cm4gcjsKLQotCS8qIGxjZCBMUiAqLwotCXIgPSBzaGFycF9sc19nZXRfZ3Bpb19vZigmcGRldi0+ZGV2LCAxLCAxLCAibW9kZSIsICZkZGF0YS0+bHJfZ3Bpbyk7Ci0JaWYgKHIpCi0JCXJldHVybiByOwotCi0JLyogbGNkIFVEICovCi0JciA9IHNoYXJwX2xzX2dldF9ncGlvX29mKCZwZGV2LT5kZXYsIDIsIDEsICJtb2RlIiwgJmRkYXRhLT51ZF9ncGlvKTsKLQlpZiAocikKLQkJcmV0dXJuIHI7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzaGFycF9sc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGE7Ci0Jc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2OwotCWludCByOwotCi0JZGRhdGEgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpkZGF0YSksIEdGUF9LRVJORUwpOwotCWlmIChkZGF0YSA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRkYXRhKTsKLQotCXIgPSBzaGFycF9sc19wcm9iZV9vZihwZGV2KTsKLQlpZiAocikKLQkJcmV0dXJuIHI7Ci0KLQlkZGF0YS0+dm0gPSBzaGFycF9sc192bTsKLQotCWRzc2RldiA9ICZkZGF0YS0+ZHNzZGV2OwotCWRzc2Rldi0+ZGV2ID0gJnBkZXYtPmRldjsKLQlkc3NkZXYtPm9wcyA9ICZzaGFycF9sc19vcHM7Ci0JZHNzZGV2LT50eXBlID0gT01BUF9ESVNQTEFZX1RZUEVfRFBJOwotCWRzc2Rldi0+ZGlzcGxheSA9IHRydWU7Ci0JZHNzZGV2LT5vd25lciA9IFRISVNfTU9EVUxFOwotCWRzc2Rldi0+b2ZfcG9ydHMgPSBCSVQoMCk7Ci0JZHNzZGV2LT5vcHNfZmxhZ3MgPSBPTUFQX0RTU19ERVZJQ0VfT1BfTU9ERVM7Ci0KLQkvKgotCSAqIE5vdGU6IEFjY29yZGluZyB0byB0aGUgcGFuZWwgZG9jdW1lbnRhdGlvbjoKLQkgKiBEQVRBIG5lZWRzIHRvIGJlIGRyaXZlbiBvbiB0aGUgRkFMTElORyBlZGdlCi0JICovCi0JZHNzZGV2LT5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfREVfSElHSAotCQkJICB8IERSTV9CVVNfRkxBR19TWU5DX0RSSVZFX05FR0VER0UKLQkJCSAgfCBEUk1fQlVTX0ZMQUdfUElYREFUQV9EUklWRV9QT1NFREdFOwotCi0Jb21hcGRzc19kaXNwbGF5X2luaXQoZHNzZGV2KTsKLQlvbWFwZHNzX2RldmljZV9yZWdpc3Rlcihkc3NkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgX19leGl0IHNoYXJwX2xzX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYgPSAmZGRhdGEtPmRzc2RldjsKLQotCW9tYXBkc3NfZGV2aWNlX3VucmVnaXN0ZXIoZHNzZGV2KTsKLQotCWlmIChvbWFwZHNzX2RldmljZV9pc19lbmFibGVkKGRzc2RldikpIHsKLQkJc2hhcnBfbHNfZGlzYWJsZShkc3NkZXYpOwotCQlzaGFycF9sc19wb3N0X2Rpc2FibGUoZHNzZGV2KTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc2hhcnBfbHNfb2ZfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gIm9tYXBkc3Msc2hhcnAsbHMwMzd2N2R3MDEiLCB9LAotCXt9LAotfTsKLQotTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc2hhcnBfbHNfb2ZfbWF0Y2gpOwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzaGFycF9sc19kcml2ZXIgPSB7Ci0JLnByb2JlID0gc2hhcnBfbHNfcHJvYmUsCi0JLnJlbW92ZSA9IF9fZXhpdF9wKHNoYXJwX2xzX3JlbW92ZSksCi0JLmRyaXZlciA9IHsKLQkJLm5hbWUgPSAicGFuZWwtc2hhcnAtbHMwMzd2N2R3MDEiLAotCQkub2ZfbWF0Y2hfdGFibGUgPSBzaGFycF9sc19vZl9tYXRjaCwKLQkJLnN1cHByZXNzX2JpbmRfYXR0cnMgPSB0cnVlLAotCX0sCi19OwotCi1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHNoYXJwX2xzX2RyaXZlcik7Ci0KLU1PRFVMRV9BVVRIT1IoIlRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIlNoYXJwIExTMDM3VjdEVzAxIFBhbmVsIERyaXZlciIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZGlzcGxheXMvcGFuZWwtc29ueS1hY3g1NjVha20uYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL3BhbmVsLXNvbnktYWN4NTY1YWttLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4OGExYTYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZGlzcGxheXMvcGFuZWwtc29ueS1hY3g1NjVha20uYworKysgL2Rldi9udWxsCkBAIC0xLDc1NSArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogU29ueSBBQ1g1NjVBS00gTENEIFBhbmVsIGRyaXZlcgotICoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbgotICoKLSAqIE9yaWdpbmFsIERyaXZlciBBdXRob3I6IEltcmUgRGVhayA8aW1yZS5kZWFrQG5va2lhLmNvbT4KLSAqIEJhc2VkIG9uIHBhbmVsLWdlbmVyaWMuYyBieSBUb21pIFZhbGtlaW5lbiA8dG9taS52YWxrZWluZW5AdGkuY29tPgotICogQWRhcHRlZCB0byBuZXcgRFNTMiBmcmFtZXdvcms6IFJvZ2VyIFF1YWRyb3MgPHJvZ2VyLnF1YWRyb3NAbm9raWEuY29tPgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+Ci0KLSNpbmNsdWRlICIuLi9kc3Mvb21hcGRzcy5oIgotCi0jZGVmaW5lIE1JUElEX0NNRF9SRUFEX0RJU1BfSUQJCTB4MDQKLSNkZWZpbmUgTUlQSURfQ01EX1JFQURfUkVECQkweDA2Ci0jZGVmaW5lIE1JUElEX0NNRF9SRUFEX0dSRUVOCQkweDA3Ci0jZGVmaW5lIE1JUElEX0NNRF9SRUFEX0JMVUUJCTB4MDgKLSNkZWZpbmUgTUlQSURfQ01EX1JFQURfRElTUF9TVEFUVVMJMHgwOQotI2RlZmluZSBNSVBJRF9DTURfUkREU0RSCQkweDBGCi0jZGVmaW5lIE1JUElEX0NNRF9TTEVFUF9JTgkJMHgxMAotI2RlZmluZSBNSVBJRF9DTURfU0xFRVBfT1VUCQkweDExCi0jZGVmaW5lIE1JUElEX0NNRF9ESVNQX09GRgkJMHgyOAotI2RlZmluZSBNSVBJRF9DTURfRElTUF9PTgkJMHgyOQotI2RlZmluZSBNSVBJRF9DTURfV1JJVEVfRElTUF9CUklHSFRORVNTCTB4NTEKLSNkZWZpbmUgTUlQSURfQ01EX1JFQURfRElTUF9CUklHSFRORVNTCTB4NTIKLSNkZWZpbmUgTUlQSURfQ01EX1dSSVRFX0NUUkxfRElTUAkweDUzCi0KLSNkZWZpbmUgQ1RSTF9ESVNQX0JSSUdIVE5FU1NfQ1RSTF9PTgkoMSA8PCA1KQotI2RlZmluZSBDVFJMX0RJU1BfQU1CSUVOVF9MSUdIVF9DVFJMX09OCSgxIDw8IDQpCi0jZGVmaW5lIENUUkxfRElTUF9CQUNLTElHSFRfT04JCSgxIDw8IDIpCi0jZGVmaW5lIENUUkxfRElTUF9BVVRPX0JSSUdIVE5FU1NfT04JKDEgPDwgMSkKLQotI2RlZmluZSBNSVBJRF9DTURfUkVBRF9DVFJMX0RJU1AJMHg1NAotI2RlZmluZSBNSVBJRF9DTURfV1JJVEVfQ0FCQwkJMHg1NQotI2RlZmluZSBNSVBJRF9DTURfUkVBRF9DQUJDCQkweDU2Ci0KLSNkZWZpbmUgTUlQSURfVkVSX0xQSDg5MjMJCTMKLSNkZWZpbmUgTUlQSURfVkVSX0xTMDQxWTMJCTQKLSNkZWZpbmUgTUlQSURfVkVSX0w0RjAwMzExCQk4Ci0jZGVmaW5lIE1JUElEX1ZFUl9BQ1g1NjVBS00JCTkKLQotc3RydWN0IHBhbmVsX2Rydl9kYXRhIHsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlCWRzc2RldjsKLQotCXN0cnVjdCBncGlvX2Rlc2MgKnJlc2V0X2dwaW87Ci0KLQlzdHJ1Y3QgdmlkZW9tb2RlIHZtOwotCi0JY2hhcgkJKm5hbWU7Ci0JaW50CQllbmFibGVkOwotCWludAkJbW9kZWw7Ci0JaW50CQlyZXZpc2lvbjsKLQl1OAkJZGlzcGxheV9pZFszXTsKLQl1bnNpZ25lZAloYXNfYmM6MTsKLQl1bnNpZ25lZAloYXNfY2FiYzoxOwotCXVuc2lnbmVkCWNhYmNfbW9kZTsKLQl1bnNpZ25lZCBsb25nCWh3X2d1YXJkX2VuZDsJCS8qIG5leHQgdmFsdWUgb2YgamlmZmllcwotCQkJCQkJICAgd2hlbiB3ZSBjYW4gaXNzdWUgdGhlCi0JCQkJCQkgICBuZXh0IHNsZWVwIGluL291dCBjb21tYW5kICovCi0JdW5zaWduZWQgbG9uZwlod19ndWFyZF93YWl0OwkJLyogbWF4IGd1YXJkIHRpbWUgaW4gamlmZmllcyAqLwotCi0Jc3RydWN0IHNwaV9kZXZpY2UJKnNwaTsKLQlzdHJ1Y3QgbXV0ZXgJCW11dGV4OwotCi0Jc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsX2RldjsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgdmlkZW9tb2RlIGFjeDU2NWFrbV9wYW5lbF92bSA9IHsKLQkuaGFjdGl2ZQk9IDgwMCwKLQkudmFjdGl2ZQk9IDQ4MCwKLQkucGl4ZWxjbG9jawk9IDI0MDAwMDAwLAotCS5oZnJvbnRfcG9yY2gJPSAyOCwKLQkuaHN5bmNfbGVuCT0gNCwKLQkuaGJhY2tfcG9yY2gJPSAyNCwKLQkudmZyb250X3BvcmNoCT0gMywKLQkudnN5bmNfbGVuCT0gMywKLQkudmJhY2tfcG9yY2gJPSA0LAotCi0JLmZsYWdzCQk9IERJU1BMQVlfRkxBR1NfSFNZTkNfTE9XIHwgRElTUExBWV9GTEFHU19WU1lOQ19MT1csCi19OwotCi0jZGVmaW5lIHRvX3BhbmVsX2RhdGEocCkgY29udGFpbmVyX29mKHAsIHN0cnVjdCBwYW5lbF9kcnZfZGF0YSwgZHNzZGV2KQotCi1zdGF0aWMgdm9pZCBhY3g1NjVha21fdHJhbnNmZXIoc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSwgaW50IGNtZCwKLQkJCSAgICAgIGNvbnN0IHU4ICp3YnVmLCBpbnQgd2xlbiwgdTggKnJidWYsIGludCBybGVuKQotewotCXN0cnVjdCBzcGlfbWVzc2FnZQltOwotCXN0cnVjdCBzcGlfdHJhbnNmZXIJKngsIHhmZXJbNV07Ci0JaW50CQkJcjsKLQotCUJVR19PTihkZGF0YS0+c3BpID09IE5VTEwpOwotCi0Jc3BpX21lc3NhZ2VfaW5pdCgmbSk7Ci0KLQltZW1zZXQoeGZlciwgMCwgc2l6ZW9mKHhmZXIpKTsKLQl4ID0gJnhmZXJbMF07Ci0KLQljbWQgJj0gIDB4ZmY7Ci0JeC0+dHhfYnVmID0gJmNtZDsKLQl4LT5iaXRzX3Blcl93b3JkID0gOTsKLQl4LT5sZW4gPSAyOwotCi0JaWYgKHJsZW4gPiAxICYmIHdsZW4gPT0gMCkgewotCQkvKgotCQkgKiBCZXR3ZWVuIHRoZSBjb21tYW5kIGFuZCB0aGUgcmVzcG9uc2UgZGF0YSB0aGVyZSBpcyBhCi0JCSAqIGR1bW15IGNsb2NrIGN5Y2xlLiBBZGQgYW4gZXh0cmEgYml0IGFmdGVyIHRoZSBjb21tYW5kCi0JCSAqIHdvcmQgdG8gYWNjb3VudCBmb3IgdGhpcy4KLQkJICovCi0JCXgtPmJpdHNfcGVyX3dvcmQgPSAxMDsKLQkJY21kIDw8PSAxOwotCX0KLQlzcGlfbWVzc2FnZV9hZGRfdGFpbCh4LCAmbSk7Ci0KLQlpZiAod2xlbikgewotCQl4Kys7Ci0JCXgtPnR4X2J1ZiA9IHdidWY7Ci0JCXgtPmxlbiA9IHdsZW47Ci0JCXgtPmJpdHNfcGVyX3dvcmQgPSA5OwotCQlzcGlfbWVzc2FnZV9hZGRfdGFpbCh4LCAmbSk7Ci0JfQotCi0JaWYgKHJsZW4pIHsKLQkJeCsrOwotCQl4LT5yeF9idWYJPSByYnVmOwotCQl4LT5sZW4JCT0gcmxlbjsKLQkJc3BpX21lc3NhZ2VfYWRkX3RhaWwoeCwgJm0pOwotCX0KLQotCXIgPSBzcGlfc3luYyhkZGF0YS0+c3BpLCAmbSk7Ci0JaWYgKHIgPCAwKQotCQlkZXZfZGJnKCZkZGF0YS0+c3BpLT5kZXYsICJzcGlfc3luYyAlZFxuIiwgcik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBhY3g1NjVha21fY21kKHN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEsIGludCBjbWQpCi17Ci0JYWN4NTY1YWttX3RyYW5zZmVyKGRkYXRhLCBjbWQsIE5VTEwsIDAsIE5VTEwsIDApOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgYWN4NTY1YWttX3dyaXRlKHN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEsCi0JCQkgICAgICAgaW50IHJlZywgY29uc3QgdTggKmJ1ZiwgaW50IGxlbikKLXsKLQlhY3g1NjVha21fdHJhbnNmZXIoZGRhdGEsIHJlZywgYnVmLCBsZW4sIE5VTEwsIDApOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgYWN4NTY1YWttX3JlYWQoc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSwKLQkJCSAgICAgIGludCByZWcsIHU4ICpidWYsIGludCBsZW4pCi17Ci0JYWN4NTY1YWttX3RyYW5zZmVyKGRkYXRhLCByZWcsIE5VTEwsIDAsIGJ1ZiwgbGVuKTsKLX0KLQotc3RhdGljIHZvaWQgaHdfZ3VhcmRfc3RhcnQoc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSwgaW50IGd1YXJkX21zZWMpCi17Ci0JZGRhdGEtPmh3X2d1YXJkX3dhaXQgPSBtc2Vjc190b19qaWZmaWVzKGd1YXJkX21zZWMpOwotCWRkYXRhLT5od19ndWFyZF9lbmQgPSBqaWZmaWVzICsgZGRhdGEtPmh3X2d1YXJkX3dhaXQ7Ci19Ci0KLXN0YXRpYyB2b2lkIGh3X2d1YXJkX3dhaXQoc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSkKLXsKLQl1bnNpZ25lZCBsb25nIHdhaXQgPSBkZGF0YS0+aHdfZ3VhcmRfZW5kIC0gamlmZmllczsKLQotCWlmICgobG9uZyl3YWl0ID4gMCAmJiB3YWl0IDw9IGRkYXRhLT5od19ndWFyZF93YWl0KSB7Ci0JCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKLQkJc2NoZWR1bGVfdGltZW91dCh3YWl0KTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIHNldF9zbGVlcF9tb2RlKHN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEsIGludCBvbikKLXsKLQlpbnQgY21kOwotCi0JaWYgKG9uKQotCQljbWQgPSBNSVBJRF9DTURfU0xFRVBfSU47Ci0JZWxzZQotCQljbWQgPSBNSVBJRF9DTURfU0xFRVBfT1VUOwotCS8qCi0JICogV2UgaGF2ZSB0byBrZWVwIDEyMG1zZWMgYmV0d2VlbiBzbGVlcCBpbi9vdXQgY29tbWFuZHMuCi0JICogKDguMi4xNSwgOC4yLjE2KS4KLQkgKi8KLQlod19ndWFyZF93YWl0KGRkYXRhKTsKLQlhY3g1NjVha21fY21kKGRkYXRhLCBjbWQpOwotCWh3X2d1YXJkX3N0YXJ0KGRkYXRhLCAxMjApOwotfQotCi1zdGF0aWMgdm9pZCBzZXRfZGlzcGxheV9zdGF0ZShzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhLCBpbnQgZW5hYmxlZCkKLXsKLQlpbnQgY21kID0gZW5hYmxlZCA/IE1JUElEX0NNRF9ESVNQX09OIDogTUlQSURfQ01EX0RJU1BfT0ZGOwotCi0JYWN4NTY1YWttX2NtZChkZGF0YSwgY21kKTsKLX0KLQotc3RhdGljIGludCBwYW5lbF9lbmFibGVkKHN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEpCi17Ci0JX19iZTMyIHY7Ci0JdTMyIGRpc3Bfc3RhdHVzOwotCWludCBlbmFibGVkOwotCi0JYWN4NTY1YWttX3JlYWQoZGRhdGEsIE1JUElEX0NNRF9SRUFEX0RJU1BfU1RBVFVTLCAodTggKikmdiwgNCk7Ci0JZGlzcF9zdGF0dXMgPSBfX2JlMzJfdG9fY3B1KHYpOwotCWVuYWJsZWQgPSAoZGlzcF9zdGF0dXMgJiAoMSA8PCAxNykpICYmIChkaXNwX3N0YXR1cyAmICgxIDw8IDEwKSk7Ci0JZGV2X2RiZygmZGRhdGEtPnNwaS0+ZGV2LAotCQkiTENEIHBhbmVsICVzZW5hYmxlZCBieSBib290bG9hZGVyIChzdGF0dXMgMHglMDR4KVxuIiwKLQkJZW5hYmxlZCA/ICIiIDogIm5vdCAiLCBkaXNwX3N0YXR1cyk7Ci0JcmV0dXJuIGVuYWJsZWQ7Ci19Ci0KLXN0YXRpYyBpbnQgcGFuZWxfZGV0ZWN0KHN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEpCi17Ci0JYWN4NTY1YWttX3JlYWQoZGRhdGEsIE1JUElEX0NNRF9SRUFEX0RJU1BfSUQsIGRkYXRhLT5kaXNwbGF5X2lkLCAzKTsKLQlkZXZfZGJnKCZkZGF0YS0+c3BpLT5kZXYsICJNSVBJIGRpc3BsYXkgSUQ6ICUwMnglMDJ4JTAyeFxuIiwKLQkJZGRhdGEtPmRpc3BsYXlfaWRbMF0sCi0JCWRkYXRhLT5kaXNwbGF5X2lkWzFdLAotCQlkZGF0YS0+ZGlzcGxheV9pZFsyXSk7Ci0KLQlzd2l0Y2ggKGRkYXRhLT5kaXNwbGF5X2lkWzBdKSB7Ci0JY2FzZSAweDEwOgotCQlkZGF0YS0+bW9kZWwgPSBNSVBJRF9WRVJfQUNYNTY1QUtNOwotCQlkZGF0YS0+bmFtZSA9ICJhY3g1NjVha20iOwotCQlkZGF0YS0+aGFzX2JjID0gMTsKLQkJZGRhdGEtPmhhc19jYWJjID0gMTsKLQkJYnJlYWs7Ci0JY2FzZSAweDI5OgotCQlkZGF0YS0+bW9kZWwgPSBNSVBJRF9WRVJfTDRGMDAzMTE7Ci0JCWRkYXRhLT5uYW1lID0gImw0ZjAwMzExIjsKLQkJYnJlYWs7Ci0JY2FzZSAweDQ1OgotCQlkZGF0YS0+bW9kZWwgPSBNSVBJRF9WRVJfTFBIODkyMzsKLQkJZGRhdGEtPm5hbWUgPSAibHBoODkyMyI7Ci0JCWJyZWFrOwotCWNhc2UgMHg4MzoKLQkJZGRhdGEtPm1vZGVsID0gTUlQSURfVkVSX0xTMDQxWTM7Ci0JCWRkYXRhLT5uYW1lID0gImxzMDQxeTMiOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlkZGF0YS0+bmFtZSA9ICJ1bmtub3duIjsKLQkJZGV2X2VycigmZGRhdGEtPnNwaS0+ZGV2LCAiaW52YWxpZCBkaXNwbGF5IElEXG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7Ci0JfQotCi0JZGRhdGEtPnJldmlzaW9uID0gZGRhdGEtPmRpc3BsYXlfaWRbMV07Ci0KLQlkZXZfaW5mbygmZGRhdGEtPnNwaS0+ZGV2LCAib21hcGZiOiAlcyByZXYgJTAyeCBMQ0QgZGV0ZWN0ZWRcbiIsCi0JCQlkZGF0YS0+bmFtZSwgZGRhdGEtPnJldmlzaW9uKTsKLQotCXJldHVybiAwOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1CYWNrbGlnaHQgQ29udHJvbC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdGF0aWMgdm9pZCBlbmFibGVfYmFja2xpZ2h0X2N0cmwoc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSwgaW50IGVuYWJsZSkKLXsKLQl1MTYgY3RybDsKLQotCWFjeDU2NWFrbV9yZWFkKGRkYXRhLCBNSVBJRF9DTURfUkVBRF9DVFJMX0RJU1AsICh1OCAqKSZjdHJsLCAxKTsKLQlpZiAoZW5hYmxlKSB7Ci0JCWN0cmwgfD0gQ1RSTF9ESVNQX0JSSUdIVE5FU1NfQ1RSTF9PTiB8Ci0JCQlDVFJMX0RJU1BfQkFDS0xJR0hUX09OOwotCX0gZWxzZSB7Ci0JCWN0cmwgJj0gfihDVFJMX0RJU1BfQlJJR0hUTkVTU19DVFJMX09OIHwKLQkJCSAgQ1RSTF9ESVNQX0JBQ0tMSUdIVF9PTik7Ci0JfQotCi0JY3RybCB8PSAxIDw8IDg7Ci0JYWN4NTY1YWttX3dyaXRlKGRkYXRhLCBNSVBJRF9DTURfV1JJVEVfQ1RSTF9ESVNQLCAodTggKikmY3RybCwgMik7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldF9jYWJjX21vZGUoc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSwgdW5zaWduZWQgaW50IG1vZGUpCi17Ci0JdTE2IGNhYmNfY3RybDsKLQotCWRkYXRhLT5jYWJjX21vZGUgPSBtb2RlOwotCWlmICghZGRhdGEtPmVuYWJsZWQpCi0JCXJldHVybjsKLQljYWJjX2N0cmwgPSAwOwotCWFjeDU2NWFrbV9yZWFkKGRkYXRhLCBNSVBJRF9DTURfUkVBRF9DQUJDLCAodTggKikmY2FiY19jdHJsLCAxKTsKLQljYWJjX2N0cmwgJj0gfjM7Ci0JY2FiY19jdHJsIHw9ICgxIDw8IDgpIHwgKG1vZGUgJiAzKTsKLQlhY3g1NjVha21fd3JpdGUoZGRhdGEsIE1JUElEX0NNRF9XUklURV9DQUJDLCAodTggKikmY2FiY19jdHJsLCAyKTsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGludCBnZXRfY2FiY19tb2RlKHN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEpCi17Ci0JcmV0dXJuIGRkYXRhLT5jYWJjX21vZGU7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgZ2V0X2h3X2NhYmNfbW9kZShzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhKQotewotCXU4IGNhYmNfY3RybDsKLQotCWFjeDU2NWFrbV9yZWFkKGRkYXRhLCBNSVBJRF9DTURfUkVBRF9DQUJDLCAmY2FiY19jdHJsLCAxKTsKLQlyZXR1cm4gY2FiY19jdHJsICYgMzsKLX0KLQotc3RhdGljIHZvaWQgYWN4NTY1YWttX3NldF9icmlnaHRuZXNzKHN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEsIGludCBsZXZlbCkKLXsKLQlpbnQgYnY7Ci0KLQlidiA9IGxldmVsIHwgKDEgPDwgOCk7Ci0JYWN4NTY1YWttX3dyaXRlKGRkYXRhLCBNSVBJRF9DTURfV1JJVEVfRElTUF9CUklHSFRORVNTLCAodTggKikmYnYsIDIpOwotCi0JaWYgKGxldmVsKQotCQllbmFibGVfYmFja2xpZ2h0X2N0cmwoZGRhdGEsIDEpOwotCWVsc2UKLQkJZW5hYmxlX2JhY2tsaWdodF9jdHJsKGRkYXRhLCAwKTsKLX0KLQotc3RhdGljIGludCBhY3g1NjVha21fZ2V0X2FjdHVhbF9icmlnaHRuZXNzKHN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEpCi17Ci0JdTggYnY7Ci0KLQlhY3g1NjVha21fcmVhZChkZGF0YSwgTUlQSURfQ01EX1JFQURfRElTUF9CUklHSFRORVNTLCAmYnYsIDEpOwotCi0JcmV0dXJuIGJ2OwotfQotCi0KLXN0YXRpYyBpbnQgYWN4NTY1YWttX2JsX3VwZGF0ZV9zdGF0dXMoc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZkZXYtPmRldik7Ci0JaW50IGxldmVsOwotCi0JZGV2X2RiZygmZGRhdGEtPnNwaS0+ZGV2LCAiJXNcbiIsIF9fZnVuY19fKTsKLQotCWlmIChkZXYtPnByb3BzLmZiX2JsYW5rID09IEZCX0JMQU5LX1VOQkxBTksgJiYKLQkJCWRldi0+cHJvcHMucG93ZXIgPT0gRkJfQkxBTktfVU5CTEFOSykKLQkJbGV2ZWwgPSBkZXYtPnByb3BzLmJyaWdodG5lc3M7Ci0JZWxzZQotCQlsZXZlbCA9IDA7Ci0KLQlpZiAoZGRhdGEtPmhhc19iYykKLQkJYWN4NTY1YWttX3NldF9icmlnaHRuZXNzKGRkYXRhLCBsZXZlbCk7Ci0JZWxzZQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGFjeDU2NWFrbV9ibF9nZXRfaW50ZW5zaXR5KHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YSgmZGV2LT5kZXYpOwotCi0JZGV2X2RiZygmZGV2LT5kZXYsICIlc1xuIiwgX19mdW5jX18pOwotCi0JaWYgKCFkZGF0YS0+aGFzX2JjKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCWlmIChkZXYtPnByb3BzLmZiX2JsYW5rID09IEZCX0JMQU5LX1VOQkxBTksgJiYKLQkJCWRldi0+cHJvcHMucG93ZXIgPT0gRkJfQkxBTktfVU5CTEFOSykgewotCQlpZiAoZGRhdGEtPmhhc19iYykKLQkJCXJldHVybiBhY3g1NjVha21fZ2V0X2FjdHVhbF9icmlnaHRuZXNzKGRkYXRhKTsKLQkJZWxzZQotCQkJcmV0dXJuIGRldi0+cHJvcHMuYnJpZ2h0bmVzczsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBhY3g1NjVha21fYmxfdXBkYXRlX3N0YXR1c19sb2NrZWQoc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZkZXYtPmRldik7Ci0JaW50IHI7Ci0KLQltdXRleF9sb2NrKCZkZGF0YS0+bXV0ZXgpOwotCXIgPSBhY3g1NjVha21fYmxfdXBkYXRlX3N0YXR1cyhkZXYpOwotCW11dGV4X3VubG9jaygmZGRhdGEtPm11dGV4KTsKLQotCXJldHVybiByOwotfQotCi1zdGF0aWMgaW50IGFjeDU2NWFrbV9ibF9nZXRfaW50ZW5zaXR5X2xvY2tlZChzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqZGV2KQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJmRldi0+ZGV2KTsKLQlpbnQgcjsKLQotCW11dGV4X2xvY2soJmRkYXRhLT5tdXRleCk7Ci0JciA9IGFjeDU2NWFrbV9ibF9nZXRfaW50ZW5zaXR5KGRldik7Ci0JbXV0ZXhfdW5sb2NrKCZkZGF0YS0+bXV0ZXgpOwotCi0JcmV0dXJuIHI7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYmFja2xpZ2h0X29wcyBhY3g1NjVha21fYmxfb3BzID0gewotCS5nZXRfYnJpZ2h0bmVzcyA9IGFjeDU2NWFrbV9ibF9nZXRfaW50ZW5zaXR5X2xvY2tlZCwKLQkudXBkYXRlX3N0YXR1cyAgPSBhY3g1NjVha21fYmxfdXBkYXRlX3N0YXR1c19sb2NrZWQsCi19OwotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tQXV0byBCcmlnaHRuZXNzIGNvbnRyb2wgdmlhIFN5c2ZzLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjYWJjX21vZGVzW10gPSB7Ci0JIm9mZiIsCQkvKiBhbHdheXMgdXNlZCB3aGVuIENBQkMgaXMgbm90IHN1cHBvcnRlZCAqLwotCSJ1aSIsCi0JInN0aWxsLWltYWdlIiwKLQkibW92aW5nLWltYWdlIiwKLX07Ci0KLXN0YXRpYyBzc2l6ZV90IHNob3dfY2FiY19tb2RlKHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCi0JCWNoYXIgKmJ1ZikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0JY29uc3QgY2hhciAqbW9kZV9zdHI7Ci0JaW50IG1vZGU7Ci0JaW50IGxlbjsKLQotCWlmICghZGRhdGEtPmhhc19jYWJjKQotCQltb2RlID0gMDsKLQllbHNlCi0JCW1vZGUgPSBnZXRfY2FiY19tb2RlKGRkYXRhKTsKLQltb2RlX3N0ciA9ICJ1bmtub3duIjsKLQlpZiAobW9kZSA+PSAwICYmIG1vZGUgPCBBUlJBWV9TSVpFKGNhYmNfbW9kZXMpKQotCQltb2RlX3N0ciA9IGNhYmNfbW9kZXNbbW9kZV07Ci0JbGVuID0gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlc1xuIiwgbW9kZV9zdHIpOwotCi0JcmV0dXJuIGxlbiA8IFBBR0VfU0laRSAtIDEgPyBsZW4gOiBQQUdFX1NJWkUgLSAxOwotfQotCi1zdGF0aWMgc3NpemVfdCBzdG9yZV9jYWJjX21vZGUoc3RydWN0IGRldmljZSAqZGV2LAotCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKLQkJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY2FiY19tb2Rlcyk7IGkrKykgewotCQljb25zdCBjaGFyICptb2RlX3N0ciA9IGNhYmNfbW9kZXNbaV07Ci0JCWludCBjbXBfbGVuID0gc3RybGVuKG1vZGVfc3RyKTsKLQotCQlpZiAoY291bnQgPiAwICYmIGJ1Zltjb3VudCAtIDFdID09ICdcbicpCi0JCQljb3VudC0tOwotCQlpZiAoY291bnQgIT0gY21wX2xlbikKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChzdHJuY21wKGJ1ZiwgbW9kZV9zdHIsIGNtcF9sZW4pID09IDApCi0JCQlicmVhazsKLQl9Ci0KLQlpZiAoaSA9PSBBUlJBWV9TSVpFKGNhYmNfbW9kZXMpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmICghZGRhdGEtPmhhc19jYWJjICYmIGkgIT0gMCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQltdXRleF9sb2NrKCZkZGF0YS0+bXV0ZXgpOwotCXNldF9jYWJjX21vZGUoZGRhdGEsIGkpOwotCW11dGV4X3VubG9jaygmZGRhdGEtPm11dGV4KTsKLQotCXJldHVybiBjb3VudDsKLX0KLQotc3RhdGljIHNzaXplX3Qgc2hvd19jYWJjX2F2YWlsYWJsZV9tb2RlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAotCQljaGFyICpidWYpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCWludCBsZW47Ci0JaW50IGk7Ci0KLQlpZiAoIWRkYXRhLT5oYXNfY2FiYykKLQkJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXNcbiIsIGNhYmNfbW9kZXNbMF0pOwotCi0JZm9yIChpID0gMCwgbGVuID0gMDsKLQkgICAgIGxlbiA8IFBBR0VfU0laRSAmJiBpIDwgQVJSQVlfU0laRShjYWJjX21vZGVzKTsgaSsrKQotCQlsZW4gKz0gc25wcmludGYoJmJ1ZltsZW5dLCBQQUdFX1NJWkUgLSBsZW4sICIlcyVzJXMiLAotCQkJaSA/ICIgIiA6ICIiLCBjYWJjX21vZGVzW2ldLAotCQkJaSA9PSBBUlJBWV9TSVpFKGNhYmNfbW9kZXMpIC0gMSA/ICJcbiIgOiAiIik7Ci0KLQlyZXR1cm4gbGVuIDwgUEFHRV9TSVpFID8gbGVuIDogUEFHRV9TSVpFIC0gMTsKLX0KLQotc3RhdGljIERFVklDRV9BVFRSKGNhYmNfbW9kZSwgU19JUlVHTyB8IFNfSVdVU1IsCi0JCXNob3dfY2FiY19tb2RlLCBzdG9yZV9jYWJjX21vZGUpOwotc3RhdGljIERFVklDRV9BVFRSKGNhYmNfYXZhaWxhYmxlX21vZGVzLCBTX0lSVUdPLAotCQlzaG93X2NhYmNfYXZhaWxhYmxlX21vZGVzLCBOVUxMKTsKLQotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmJsZGV2X2F0dHJzW10gPSB7Ci0JJmRldl9hdHRyX2NhYmNfbW9kZS5hdHRyLAotCSZkZXZfYXR0cl9jYWJjX2F2YWlsYWJsZV9tb2Rlcy5hdHRyLAotCU5VTEwsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBibGRldl9hdHRyX2dyb3VwID0gewotCS5hdHRycyA9IGJsZGV2X2F0dHJzLAotfTsKLQotc3RhdGljIGludCBhY3g1NjVha21fY29ubmVjdChzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpzcmMsCi0JCQkgICAgIHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzdCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgYWN4NTY1YWttX2Rpc2Nvbm5lY3Qoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqc3JjLAotCQkJCSBzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3QpCi17Ci19Ci0KLXN0YXRpYyBpbnQgYWN4NTY1YWttX3BhbmVsX3Bvd2VyX29uKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCi0JZGV2X2RiZygmZGRhdGEtPnNwaS0+ZGV2LCAiJXNcbiIsIF9fZnVuY19fKTsKLQotCS8qRklYTUUgdHdlYWsgbWUgKi8KLQltc2xlZXAoNTApOwotCi0JaWYgKGRkYXRhLT5yZXNldF9ncGlvKQotCQlncGlvZF9zZXRfdmFsdWUoZGRhdGEtPnJlc2V0X2dwaW8sIDEpOwotCi0JaWYgKGRkYXRhLT5lbmFibGVkKSB7Ci0JCWRldl9kYmcoJmRkYXRhLT5zcGktPmRldiwgInBhbmVsIGFscmVhZHkgZW5hYmxlZFxuIik7Ci0JCXJldHVybiAwOwotCX0KLQotCS8qCi0JICogV2UgaGF2ZSB0byBtZWV0IGFsbCB0aGUgZm9sbG93aW5nIGRlbGF5IHJlcXVpcmVtZW50czoKLQkgKiAxLiB0Ulc6IHJlc2V0IHB1bHNlIHdpZHRoIDEwdXNlYyAoNy4xMi4xKQotCSAqIDIuIHRSVDogcmVzZXQgY2FuY2VsIHRpbWUgNW1zZWMgKDcuMTIuMSkKLQkgKiAzLiBQcm92aWRpbmcgUENMSyxIUyxWUyBzaWduYWxzIGZvciAyIGZyYW1lcyA9IH41MG1zZWMgd29yc3QKLQkgKiAgICBjYXNlICg3LjYuMikKLQkgKiA0LiAxMjBtc2VjIGJlZm9yZSB0aGUgc2xlZXAgb3V0IGNvbW1hbmQgKDcuMTIuMSkKLQkgKi8KLQltc2xlZXAoMTIwKTsKLQotCXNldF9zbGVlcF9tb2RlKGRkYXRhLCAwKTsKLQlkZGF0YS0+ZW5hYmxlZCA9IDE7Ci0KLQkvKiA1bXNlYyBiZXR3ZWVuIHNsZWVwIG91dCBhbmQgdGhlIG5leHQgY29tbWFuZC4gKDguMi4xNikgKi8KLQl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOwotCXNldF9kaXNwbGF5X3N0YXRlKGRkYXRhLCAxKTsKLQlzZXRfY2FiY19tb2RlKGRkYXRhLCBkZGF0YS0+Y2FiY19tb2RlKTsKLQotCXJldHVybiBhY3g1NjVha21fYmxfdXBkYXRlX3N0YXR1cyhkZGF0YS0+YmxfZGV2KTsKLX0KLQotc3RhdGljIHZvaWQgYWN4NTY1YWttX3BhbmVsX3Bvd2VyX29mZihzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IHRvX3BhbmVsX2RhdGEoZHNzZGV2KTsKLQotCWRldl9kYmcoZHNzZGV2LT5kZXYsICIlc1xuIiwgX19mdW5jX18pOwotCi0JaWYgKCFkZGF0YS0+ZW5hYmxlZCkKLQkJcmV0dXJuOwotCi0Jc2V0X2Rpc3BsYXlfc3RhdGUoZGRhdGEsIDApOwotCXNldF9zbGVlcF9tb2RlKGRkYXRhLCAxKTsKLQlkZGF0YS0+ZW5hYmxlZCA9IDA7Ci0JLyoKLQkgKiBXZSBoYXZlIHRvIHByb3ZpZGUgUENMSyxIUyxWUyBzaWduYWxzIGZvciAyIGZyYW1lcyAod29yc3QgY2FzZQotCSAqIH41MG1zZWMpIGFmdGVyIHNlbmRpbmcgdGhlIHNsZWVwIGluIGNvbW1hbmQgYW5kIGFzc2VydGluZyB0aGUKLQkgKiByZXNldCBzaWduYWwuIFdlIHByb2JhYmx5IGNvdWxkIGFzc2VydCB0aGUgcmVzZXQgdy9vIHRoZSBkZWxheQotCSAqIGJ1dCB3ZSBzdGlsbCBkZWxheSB0byBhdm9pZCBwb3NzaWJsZSBhcnRpZmFjdHMuICg3LjYuMSkKLQkgKi8KLQltc2xlZXAoNTApOwotCi0JaWYgKGRkYXRhLT5yZXNldF9ncGlvKQotCQlncGlvZF9zZXRfdmFsdWUoZGRhdGEtPnJlc2V0X2dwaW8sIDApOwotCi0JLyogRklYTUUgbmVlZCB0byB0d2VhayB0aGlzIGRlbGF5ICovCi0JbXNsZWVwKDEwMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGFjeDU2NWFrbV9lbmFibGUoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2KQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSB0b19wYW5lbF9kYXRhKGRzc2Rldik7Ci0KLQltdXRleF9sb2NrKCZkZGF0YS0+bXV0ZXgpOwotCWFjeDU2NWFrbV9wYW5lbF9wb3dlcl9vbihkc3NkZXYpOwotCW11dGV4X3VubG9jaygmZGRhdGEtPm11dGV4KTsKLX0KLQotc3RhdGljIHZvaWQgYWN4NTY1YWttX2Rpc2FibGUoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2KQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSB0b19wYW5lbF9kYXRhKGRzc2Rldik7Ci0KLQltdXRleF9sb2NrKCZkZGF0YS0+bXV0ZXgpOwotCWFjeDU2NWFrbV9wYW5lbF9wb3dlcl9vZmYoZHNzZGV2KTsKLQltdXRleF91bmxvY2soJmRkYXRhLT5tdXRleCk7Ci19Ci0KLXN0YXRpYyBpbnQgYWN4NTY1YWttX2dldF9tb2RlcyhzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYsCi0JCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCi0JcmV0dXJuIG9tYXBkc3NfZGlzcGxheV9nZXRfbW9kZXMoY29ubmVjdG9yLCAmZGRhdGEtPnZtKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2Rzc19kZXZpY2Vfb3BzIGFjeDU2NWFrbV9vcHMgPSB7Ci0JLmNvbm5lY3QJPSBhY3g1NjVha21fY29ubmVjdCwKLQkuZGlzY29ubmVjdAk9IGFjeDU2NWFrbV9kaXNjb25uZWN0LAotCi0JLmVuYWJsZQkJPSBhY3g1NjVha21fZW5hYmxlLAotCS5kaXNhYmxlCT0gYWN4NTY1YWttX2Rpc2FibGUsCi0KLQkuZ2V0X21vZGVzCT0gYWN4NTY1YWttX2dldF9tb2RlcywKLX07Ci0KLXN0YXRpYyBpbnQgYWN4NTY1YWttX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YTsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXY7Ci0Jc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsZGV2OwotCWludCBtYXhfYnJpZ2h0bmVzcywgYnJpZ2h0bmVzczsKLQlzdHJ1Y3QgYmFja2xpZ2h0X3Byb3BlcnRpZXMgcHJvcHM7Ci0Jc3RydWN0IGdwaW9fZGVzYyAqZ3BpbzsKLQlpbnQgcjsKLQotCWRldl9kYmcoJnNwaS0+ZGV2LCAiJXNcbiIsIF9fZnVuY19fKTsKLQotCXNwaS0+bW9kZSA9IFNQSV9NT0RFXzM7Ci0KLQlkZGF0YSA9IGRldm1fa3phbGxvYygmc3BpLT5kZXYsIHNpemVvZigqZGRhdGEpLCBHRlBfS0VSTkVMKTsKLQlpZiAoZGRhdGEgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlkZXZfc2V0X2RydmRhdGEoJnNwaS0+ZGV2LCBkZGF0YSk7Ci0KLQlkZGF0YS0+c3BpID0gc3BpOwotCi0JbXV0ZXhfaW5pdCgmZGRhdGEtPm11dGV4KTsKLQotCWdwaW8gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbCgmc3BpLT5kZXYsICJyZXNldCIsIEdQSU9EX09VVF9MT1cpOwotCWlmIChJU19FUlIoZ3BpbykpIHsKLQkJZGV2X2Vycigmc3BpLT5kZXYsICJmYWlsZWQgdG8gcGFyc2UgcmVzZXQgZ3Bpb1xuIik7Ci0JCXJldHVybiBQVFJfRVJSKGdwaW8pOwotCX0KLQotCWRkYXRhLT5yZXNldF9ncGlvID0gZ3BpbzsKLQotCWlmIChkZGF0YS0+cmVzZXRfZ3BpbykKLQkJZ3Bpb2Rfc2V0X3ZhbHVlKGRkYXRhLT5yZXNldF9ncGlvLCAxKTsKLQotCS8qCi0JICogQWZ0ZXIgcmVzZXQgd2UgaGF2ZSB0byB3YWl0IDUgbXNlYyBiZWZvcmUgdGhlIGZpcnN0Ci0JICogY29tbWFuZCBjYW4gYmUgc2VudC4KLQkgKi8KLQl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOwotCi0JZGRhdGEtPmVuYWJsZWQgPSBwYW5lbF9lbmFibGVkKGRkYXRhKTsKLQotCXIgPSBwYW5lbF9kZXRlY3QoZGRhdGEpOwotCi0JaWYgKCFkZGF0YS0+ZW5hYmxlZCAmJiBkZGF0YS0+cmVzZXRfZ3BpbykKLQkJZ3Bpb2Rfc2V0X3ZhbHVlKGRkYXRhLT5yZXNldF9ncGlvLCAwKTsKLQotCWlmIChyKSB7Ci0JCWRldl9lcnIoJnNwaS0+ZGV2LCAiJXMgcGFuZWwgZGV0ZWN0IGVycm9yXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiByOwotCX0KLQotCW1lbXNldCgmcHJvcHMsIDAsIHNpemVvZihwcm9wcykpOwotCXByb3BzLmZiX2JsYW5rID0gRkJfQkxBTktfVU5CTEFOSzsKLQlwcm9wcy5wb3dlciA9IEZCX0JMQU5LX1VOQkxBTks7Ci0JcHJvcHMudHlwZSA9IEJBQ0tMSUdIVF9SQVc7Ci0KLQlibGRldiA9IGJhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoImFjeDU2NWFrbSIsICZkZGF0YS0+c3BpLT5kZXYsCi0JCQlkZGF0YSwgJmFjeDU2NWFrbV9ibF9vcHMsICZwcm9wcyk7Ci0JaWYgKElTX0VSUihibGRldikpCi0JCXJldHVybiBQVFJfRVJSKGJsZGV2KTsKLQlkZGF0YS0+YmxfZGV2ID0gYmxkZXY7Ci0JaWYgKGRkYXRhLT5oYXNfY2FiYykgewotCQlyID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZibGRldi0+ZGV2LmtvYmosICZibGRldl9hdHRyX2dyb3VwKTsKLQkJaWYgKHIpIHsKLQkJCWRldl9lcnIoJmJsZGV2LT5kZXYsCi0JCQkJIiVzIGZhaWxlZCB0byBjcmVhdGUgc3lzZnMgZmlsZXNcbiIsIF9fZnVuY19fKTsKLQkJCWdvdG8gZXJyX2JhY2tsaWdodF91bnJlZ2lzdGVyOwotCQl9Ci0JCWRkYXRhLT5jYWJjX21vZGUgPSBnZXRfaHdfY2FiY19tb2RlKGRkYXRhKTsKLQl9Ci0KLQltYXhfYnJpZ2h0bmVzcyA9IDI1NTsKLQotCWlmIChkZGF0YS0+aGFzX2JjKQotCQlicmlnaHRuZXNzID0gYWN4NTY1YWttX2dldF9hY3R1YWxfYnJpZ2h0bmVzcyhkZGF0YSk7Ci0JZWxzZQotCQlicmlnaHRuZXNzID0gMDsKLQotCWJsZGV2LT5wcm9wcy5tYXhfYnJpZ2h0bmVzcyA9IG1heF9icmlnaHRuZXNzOwotCWJsZGV2LT5wcm9wcy5icmlnaHRuZXNzID0gYnJpZ2h0bmVzczsKLQotCWFjeDU2NWFrbV9ibF91cGRhdGVfc3RhdHVzKGJsZGV2KTsKLQotCi0JZGRhdGEtPnZtID0gYWN4NTY1YWttX3BhbmVsX3ZtOwotCi0JZHNzZGV2ID0gJmRkYXRhLT5kc3NkZXY7Ci0JZHNzZGV2LT5kZXYgPSAmc3BpLT5kZXY7Ci0JZHNzZGV2LT5vcHMgPSAmYWN4NTY1YWttX29wczsKLQlkc3NkZXYtPnR5cGUgPSBPTUFQX0RJU1BMQVlfVFlQRV9TREk7Ci0JZHNzZGV2LT5kaXNwbGF5ID0gdHJ1ZTsKLQlkc3NkZXYtPm93bmVyID0gVEhJU19NT0RVTEU7Ci0JZHNzZGV2LT5vZl9wb3J0cyA9IEJJVCgwKTsKLQlkc3NkZXYtPm9wc19mbGFncyA9IE9NQVBfRFNTX0RFVklDRV9PUF9NT0RFUzsKLQlkc3NkZXYtPmJ1c19mbGFncyA9IERSTV9CVVNfRkxBR19ERV9ISUdICi0JCQkgIHwgRFJNX0JVU19GTEFHX1NZTkNfRFJJVkVfTkVHRURHRQotCQkJICB8IERSTV9CVVNfRkxBR19QSVhEQVRBX0RSSVZFX1BPU0VER0U7Ci0KLQlvbWFwZHNzX2Rpc3BsYXlfaW5pdChkc3NkZXYpOwotCW9tYXBkc3NfZGV2aWNlX3JlZ2lzdGVyKGRzc2Rldik7Ci0KLQlyZXR1cm4gMDsKLQotZXJyX2JhY2tsaWdodF91bnJlZ2lzdGVyOgotCWJhY2tsaWdodF9kZXZpY2VfdW5yZWdpc3RlcihibGRldik7Ci0JcmV0dXJuIHI7Ci19Ci0KLXN0YXRpYyBpbnQgYWN4NTY1YWttX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJnNwaS0+ZGV2KTsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYgPSAmZGRhdGEtPmRzc2RldjsKLQotCWRldl9kYmcoJmRkYXRhLT5zcGktPmRldiwgIiVzXG4iLCBfX2Z1bmNfXyk7Ci0KLQlzeXNmc19yZW1vdmVfZ3JvdXAoJmRkYXRhLT5ibF9kZXYtPmRldi5rb2JqLCAmYmxkZXZfYXR0cl9ncm91cCk7Ci0JYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKGRkYXRhLT5ibF9kZXYpOwotCi0Jb21hcGRzc19kZXZpY2VfdW5yZWdpc3Rlcihkc3NkZXYpOwotCi0JaWYgKG9tYXBkc3NfZGV2aWNlX2lzX2VuYWJsZWQoZHNzZGV2KSkKLQkJYWN4NTY1YWttX2Rpc2FibGUoZHNzZGV2KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhY3g1NjVha21fb2ZfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gIm9tYXBkc3Msc29ueSxhY3g1NjVha20iLCB9LAotCXt9LAotfTsKLU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFjeDU2NWFrbV9vZl9tYXRjaCk7Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBhY3g1NjVha21fZHJpdmVyID0gewotCS5kcml2ZXIgPSB7Ci0JCS5uYW1lCT0gImFjeDU2NWFrbSIsCi0JCS5vZl9tYXRjaF90YWJsZSA9IGFjeDU2NWFrbV9vZl9tYXRjaCwKLQkJLnN1cHByZXNzX2JpbmRfYXR0cnMgPSB0cnVlLAotCX0sCi0JLnByb2JlCT0gYWN4NTY1YWttX3Byb2JlLAotCS5yZW1vdmUJPSBhY3g1NjVha21fcmVtb3ZlLAotfTsKLQotbW9kdWxlX3NwaV9kcml2ZXIoYWN4NTY1YWttX2RyaXZlcik7Ci0KLU1PRFVMRV9BTElBUygic3BpOnNvbnksYWN4NTY1YWttIik7Ci1NT0RVTEVfQVVUSE9SKCJOb2tpYSBDb3Jwb3JhdGlvbiIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJhY3g1NjVha20gTENEIERyaXZlciIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZGlzcGxheXMvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ODUwMTguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZGlzcGxheXMvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYworKysgL2Rldi9udWxsCkBAIC0xLDM5MCArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogVG9wcG9seSBURDAyOFRURUMxIHBhbmVsIHN1cHBvcnQKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24KLSAqIEF1dGhvcjogVG9taSBWYWxrZWluZW4gPHRvbWkudmFsa2VpbmVuQHRpLmNvbT4KLSAqCi0gKiBOZW8gMTk3MyBjb2RlIChqYnQ2azc0LmMpOgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDcgYnkgT3Blbk1va28sIEluYy4KLSAqIEF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KLSAqCi0gKiBQb3J0ZWQgYW5kIGFkYXB0ZWQgZnJvbSBOZW8gMTk3MyBVLUJvb3QgYnk6Ci0gKiBILiBOaWtvbGF1cyBTY2hhbGxlciA8aG5zQGdvbGRlbGljby5jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgotCi0jaW5jbHVkZSAiLi4vZHNzL29tYXBkc3MuaCIKLQotc3RydWN0IHBhbmVsX2Rydl9kYXRhIHsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlIGRzc2RldjsKLQotCXN0cnVjdCB2aWRlb21vZGUgdm07Ci0KLQlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmFja2xpZ2h0OwotCi0Jc3RydWN0IHNwaV9kZXZpY2UgKnNwaV9kZXY7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHZpZGVvbW9kZSB0ZDAyOHR0ZWMxX3BhbmVsX3ZtID0gewotCS5oYWN0aXZlCT0gNDgwLAotCS52YWN0aXZlCT0gNjQwLAotCS5waXhlbGNsb2NrCT0gMjIxNTMwMDAsCi0JLmhmcm9udF9wb3JjaAk9IDI0LAotCS5oc3luY19sZW4JPSA4LAotCS5oYmFja19wb3JjaAk9IDgsCi0JLnZmcm9udF9wb3JjaAk9IDQsCi0JLnZzeW5jX2xlbgk9IDIsCi0JLnZiYWNrX3BvcmNoCT0gMiwKLQotCS5mbGFncwkJPSBESVNQTEFZX0ZMQUdTX0hTWU5DX0xPVyB8IERJU1BMQVlfRkxBR1NfVlNZTkNfTE9XLAotfTsKLQotI2RlZmluZSBKQlRfQ09NTUFORAkweDAwMAotI2RlZmluZSBKQlRfREFUQQkweDEwMAotCi1zdGF0aWMgaW50IGpidF9yZXRfd3JpdGVfMChzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhLCB1OCByZWcpCi17Ci0JaW50IHJjOwotCXUxNiB0eF9idWYgPSBKQlRfQ09NTUFORCB8IHJlZzsKLQotCXJjID0gc3BpX3dyaXRlKGRkYXRhLT5zcGlfZGV2LCAodTggKikmdHhfYnVmLAotCQkJMSpzaXplb2YodTE2KSk7Ci0JaWYgKHJjICE9IDApCi0JCWRldl9lcnIoJmRkYXRhLT5zcGlfZGV2LT5kZXYsCi0JCQkiamJ0X3JldF93cml0ZV8wIHNwaV93cml0ZSByZXQgJWRcbiIsIHJjKTsKLQotCXJldHVybiByYzsKLX0KLQotc3RhdGljIGludCBqYnRfcmVnX3dyaXRlXzEoc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSwgdTggcmVnLCB1OCBkYXRhKQotewotCWludCByYzsKLQl1MTYgdHhfYnVmWzJdOwotCi0JdHhfYnVmWzBdID0gSkJUX0NPTU1BTkQgfCByZWc7Ci0JdHhfYnVmWzFdID0gSkJUX0RBVEEgfCBkYXRhOwotCXJjID0gc3BpX3dyaXRlKGRkYXRhLT5zcGlfZGV2LCAodTggKil0eF9idWYsCi0JCQkyKnNpemVvZih1MTYpKTsKLQlpZiAocmMgIT0gMCkKLQkJZGV2X2VycigmZGRhdGEtPnNwaV9kZXYtPmRldiwKLQkJCSJqYnRfcmVnX3dyaXRlXzEgc3BpX3dyaXRlIHJldCAlZFxuIiwgcmMpOwotCi0JcmV0dXJuIHJjOwotfQotCi1zdGF0aWMgaW50IGpidF9yZWdfd3JpdGVfMihzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhLCB1OCByZWcsIHUxNiBkYXRhKQotewotCWludCByYzsKLQl1MTYgdHhfYnVmWzNdOwotCi0JdHhfYnVmWzBdID0gSkJUX0NPTU1BTkQgfCByZWc7Ci0JdHhfYnVmWzFdID0gSkJUX0RBVEEgfCAoZGF0YSA+PiA4KTsKLQl0eF9idWZbMl0gPSBKQlRfREFUQSB8IChkYXRhICYgMHhmZik7Ci0KLQlyYyA9IHNwaV93cml0ZShkZGF0YS0+c3BpX2RldiwgKHU4ICopdHhfYnVmLAotCQkJMypzaXplb2YodTE2KSk7Ci0KLQlpZiAocmMgIT0gMCkKLQkJZGV2X2VycigmZGRhdGEtPnNwaV9kZXYtPmRldiwKLQkJCSJqYnRfcmVnX3dyaXRlXzIgc3BpX3dyaXRlIHJldCAlZFxuIiwgcmMpOwotCi0JcmV0dXJuIHJjOwotfQotCi1lbnVtIGpidF9yZWdpc3RlciB7Ci0JSkJUX1JFR19TTEVFUF9JTgkJPSAweDEwLAotCUpCVF9SRUdfU0xFRVBfT1VUCQk9IDB4MTEsCi0KLQlKQlRfUkVHX0RJU1BMQVlfT0ZGCQk9IDB4MjgsCi0JSkJUX1JFR19ESVNQTEFZX09OCQk9IDB4MjksCi0KLQlKQlRfUkVHX1JHQl9GT1JNQVQJCT0gMHgzYSwKLQlKQlRfUkVHX1FVQURfUkFURQkJPSAweDNiLAotCi0JSkJUX1JFR19QT1dFUl9PTl9PRkYJCT0gMHhiMCwKLQlKQlRfUkVHX0JPT1NURVJfT1AJCT0gMHhiMSwKLQlKQlRfUkVHX0JPT1NURVJfTU9ERQkJPSAweGIyLAotCUpCVF9SRUdfQk9PU1RFUl9GUkVRCQk9IDB4YjMsCi0JSkJUX1JFR19PUEFNUF9TWVNDTEsJCT0gMHhiNCwKLQlKQlRfUkVHX1ZTQ19WT0xUQUdFCQk9IDB4YjUsCi0JSkJUX1JFR19WQ09NX1ZPTFRBR0UJCT0gMHhiNiwKLQlKQlRfUkVHX0VYVF9ESVNQTAkJPSAweGI3LAotCUpCVF9SRUdfT1VUUFVUX0NPTlRST0wJCT0gMHhiOCwKLQlKQlRfUkVHX0RDQ0xLX0RDRVYJCT0gMHhiOSwKLQlKQlRfUkVHX0RJU1BMQVlfTU9ERTEJCT0gMHhiYSwKLQlKQlRfUkVHX0RJU1BMQVlfTU9ERTIJCT0gMHhiYiwKLQlKQlRfUkVHX0RJU1BMQVlfTU9ERQkJPSAweGJjLAotCUpCVF9SRUdfQVNXX1NMRVcJCT0gMHhiZCwKLQlKQlRfUkVHX0RVTU1ZX0RJU1BMQVkJCT0gMHhiZSwKLQlKQlRfUkVHX0RSSVZFX1NZU1RFTQkJPSAweGJmLAotCi0JSkJUX1JFR19TTEVFUF9PVVRfRlJfQQkJPSAweGMwLAotCUpCVF9SRUdfU0xFRVBfT1VUX0ZSX0IJCT0gMHhjMSwKLQlKQlRfUkVHX1NMRUVQX09VVF9GUl9DCQk9IDB4YzIsCi0JSkJUX1JFR19TTEVFUF9JTl9MQ0NOVF9ECT0gMHhjMywKLQlKQlRfUkVHX1NMRUVQX0lOX0xDQ05UX0UJPSAweGM0LAotCUpCVF9SRUdfU0xFRVBfSU5fTENDTlRfRgk9IDB4YzUsCi0JSkJUX1JFR19TTEVFUF9JTl9MQ0NOVF9HCT0gMHhjNiwKLQotCUpCVF9SRUdfR0FNTUExX0ZJTkVfMQkJPSAweGM3LAotCUpCVF9SRUdfR0FNTUExX0ZJTkVfMgkJPSAweGM4LAotCUpCVF9SRUdfR0FNTUExX0lOQ0xJTkFUSU9OCT0gMHhjOSwKLQlKQlRfUkVHX0dBTU1BMV9CTFVFX09GRlNFVAk9IDB4Y2EsCi0KLQlKQlRfUkVHX0JMQU5LX0NPTlRST0wJCT0gMHhjZiwKLQlKQlRfUkVHX0JMQU5LX1RIX1RWCQk9IDB4ZDAsCi0JSkJUX1JFR19DS1ZfT05fT0ZGCQk9IDB4ZDEsCi0JSkJUX1JFR19DS1ZfMV8yCQkJPSAweGQyLAotCUpCVF9SRUdfT0VWX1RJTUlORwkJPSAweGQzLAotCUpCVF9SRUdfQVNXX1RJTUlOR18xCQk9IDB4ZDQsCi0JSkJUX1JFR19BU1dfVElNSU5HXzIJCT0gMHhkNSwKLQotCUpCVF9SRUdfSENMT0NLX1ZHQQkJPSAweGVjLAotCUpCVF9SRUdfSENMT0NLX1FWR0EJCT0gMHhlZCwKLX07Ci0KLSNkZWZpbmUgdG9fcGFuZWxfZGF0YShwKSBjb250YWluZXJfb2YocCwgc3RydWN0IHBhbmVsX2Rydl9kYXRhLCBkc3NkZXYpCi0KLXN0YXRpYyBpbnQgdGQwMjh0dGVjMV9wYW5lbF9jb25uZWN0KHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKnNyYywKLQkJCQkgICAgc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHN0KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCB0ZDAyOHR0ZWMxX3BhbmVsX2Rpc2Nvbm5lY3Qoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqc3JjLAotCQkJCQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3QpCi17Ci19Ci0KLXN0YXRpYyB2b2lkIHRkMDI4dHRlYzFfcGFuZWxfZW5hYmxlKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCWludCByID0gMDsKLQotCWRldl9kYmcoZHNzZGV2LT5kZXYsICIlczogc3RhdGUgJWRcbiIsIF9fZnVuY19fLCBkc3NkZXYtPnN0YXRlKTsKLQotCS8qIHRocmVlIHRpbWVzIGNvbW1hbmQgemVybyAqLwotCXIgfD0gamJ0X3JldF93cml0ZV8wKGRkYXRhLCAweDAwKTsKLQl1c2xlZXBfcmFuZ2UoMTAwMCwgMjAwMCk7Ci0JciB8PSBqYnRfcmV0X3dyaXRlXzAoZGRhdGEsIDB4MDApOwotCXVzbGVlcF9yYW5nZSgxMDAwLCAyMDAwKTsKLQlyIHw9IGpidF9yZXRfd3JpdGVfMChkZGF0YSwgMHgwMCk7Ci0JdXNsZWVwX3JhbmdlKDEwMDAsIDIwMDApOwotCi0JaWYgKHIpIHsKLQkJZGV2X3dhcm4oZHNzZGV2LT5kZXYsICIlczogdHJhbnNmZXIgZXJyb3JcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuOwotCX0KLQotCS8qIGRlZXAgc3RhbmRieSBvdXQgKi8KLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19QT1dFUl9PTl9PRkYsIDB4MTcpOwotCi0JLyogUkdCIEkvRiBvbiwgUkFNIHdyaXRlIG9mZiwgUVZHQSB0aHJvdWdoLCBTSUdDT04gZW5hYmxlICovCi0JciB8PSBqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfRElTUExBWV9NT0RFLCAweDgwKTsKLQotCS8qIFF1YWQgbW9kZSBvZmYgKi8KLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19RVUFEX1JBVEUsIDB4MDApOwotCi0JLyogQVZERCBvbiwgWFZERCBvbiAqLwotCXIgfD0gamJ0X3JlZ193cml0ZV8xKGRkYXRhLCBKQlRfUkVHX1BPV0VSX09OX09GRiwgMHgxNik7Ci0KLQkvKiBPdXRwdXQgY29udHJvbCAqLwotCXIgfD0gamJ0X3JlZ193cml0ZV8yKGRkYXRhLCBKQlRfUkVHX09VVFBVVF9DT05UUk9MLCAweGZmZjkpOwotCi0JLyogU2xlZXAgbW9kZSBvZmYgKi8KLQlyIHw9IGpidF9yZXRfd3JpdGVfMChkZGF0YSwgSkJUX1JFR19TTEVFUF9PVVQpOwotCi0JLyogYXQgdGhpcyBwb2ludCB3ZSBoYXZlIGxpa2UgNTAlIGdyZXkgKi8KLQotCS8qIGluaXRpYWxpemUgcmVnaXN0ZXIgc2V0ICovCi0JciB8PSBqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfRElTUExBWV9NT0RFMSwgMHgwMSk7Ci0JciB8PSBqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfRElTUExBWV9NT0RFMiwgMHgwMCk7Ci0JciB8PSBqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfUkdCX0ZPUk1BVCwgMHg2MCk7Ci0JciB8PSBqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfRFJJVkVfU1lTVEVNLCAweDEwKTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19CT09TVEVSX09QLCAweDU2KTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19CT09TVEVSX01PREUsIDB4MzMpOwotCXIgfD0gamJ0X3JlZ193cml0ZV8xKGRkYXRhLCBKQlRfUkVHX0JPT1NURVJfRlJFUSwgMHgxMSk7Ci0JciB8PSBqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfQk9PU1RFUl9GUkVRLCAweDExKTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19PUEFNUF9TWVNDTEssIDB4MDIpOwotCXIgfD0gamJ0X3JlZ193cml0ZV8xKGRkYXRhLCBKQlRfUkVHX1ZTQ19WT0xUQUdFLCAweDJiKTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19WQ09NX1ZPTFRBR0UsIDB4NDApOwotCXIgfD0gamJ0X3JlZ193cml0ZV8xKGRkYXRhLCBKQlRfUkVHX0VYVF9ESVNQTCwgMHgwMyk7Ci0JciB8PSBqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfRENDTEtfRENFViwgMHgwNCk7Ci0JLyoKLQkgKiBkZWZhdWx0IG9mIDB4MDIgaW4gSkJUX1JFR19BU1dfU0xFVyByZXNwb25zaWJsZSBmb3IgNzJIeiByZXF1aXJlbWVudAotCSAqIHRvIGF2b2lkIHJlZCAvIGJsdWUgZmxpY2tlcgotCSAqLwotCXIgfD0gamJ0X3JlZ193cml0ZV8xKGRkYXRhLCBKQlRfUkVHX0FTV19TTEVXLCAweDA0KTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19EVU1NWV9ESVNQTEFZLCAweDAwKTsKLQotCXIgfD0gamJ0X3JlZ193cml0ZV8xKGRkYXRhLCBKQlRfUkVHX1NMRUVQX09VVF9GUl9BLCAweDExKTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19TTEVFUF9PVVRfRlJfQiwgMHgxMSk7Ci0JciB8PSBqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfU0xFRVBfT1VUX0ZSX0MsIDB4MTEpOwotCXIgfD0gamJ0X3JlZ193cml0ZV8yKGRkYXRhLCBKQlRfUkVHX1NMRUVQX0lOX0xDQ05UX0QsIDB4MjA0MCk7Ci0JciB8PSBqYnRfcmVnX3dyaXRlXzIoZGRhdGEsIEpCVF9SRUdfU0xFRVBfSU5fTENDTlRfRSwgMHg2MGMwKTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMihkZGF0YSwgSkJUX1JFR19TTEVFUF9JTl9MQ0NOVF9GLCAweDEwMjApOwotCXIgfD0gamJ0X3JlZ193cml0ZV8yKGRkYXRhLCBKQlRfUkVHX1NMRUVQX0lOX0xDQ05UX0csIDB4NjBjMCk7Ci0KLQlyIHw9IGpidF9yZWdfd3JpdGVfMihkZGF0YSwgSkJUX1JFR19HQU1NQTFfRklORV8xLCAweDU1MzMpOwotCXIgfD0gamJ0X3JlZ193cml0ZV8xKGRkYXRhLCBKQlRfUkVHX0dBTU1BMV9GSU5FXzIsIDB4MDApOwotCXIgfD0gamJ0X3JlZ193cml0ZV8xKGRkYXRhLCBKQlRfUkVHX0dBTU1BMV9JTkNMSU5BVElPTiwgMHgwMCk7Ci0JciB8PSBqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfR0FNTUExX0JMVUVfT0ZGU0VULCAweDAwKTsKLQotCXIgfD0gamJ0X3JlZ193cml0ZV8yKGRkYXRhLCBKQlRfUkVHX0hDTE9DS19WR0EsIDB4MWYwKTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19CTEFOS19DT05UUk9MLCAweDAyKTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMihkZGF0YSwgSkJUX1JFR19CTEFOS19USF9UViwgMHgwODA0KTsKLQotCXIgfD0gamJ0X3JlZ193cml0ZV8xKGRkYXRhLCBKQlRfUkVHX0NLVl9PTl9PRkYsIDB4MDEpOwotCXIgfD0gamJ0X3JlZ193cml0ZV8yKGRkYXRhLCBKQlRfUkVHX0NLVl8xXzIsIDB4MDAwMCk7Ci0KLQlyIHw9IGpidF9yZWdfd3JpdGVfMihkZGF0YSwgSkJUX1JFR19PRVZfVElNSU5HLCAweDBkMGUpOwotCXIgfD0gamJ0X3JlZ193cml0ZV8yKGRkYXRhLCBKQlRfUkVHX0FTV19USU1JTkdfMSwgMHgxMWE0KTsKLQlyIHw9IGpidF9yZWdfd3JpdGVfMShkZGF0YSwgSkJUX1JFR19BU1dfVElNSU5HXzIsIDB4MGUpOwotCi0JciB8PSBqYnRfcmV0X3dyaXRlXzAoZGRhdGEsIEpCVF9SRUdfRElTUExBWV9PTik7Ci0KLQlpZiAocikKLQkJZGV2X2Vycihkc3NkZXYtPmRldiwgIiVzOiB3cml0ZSBlcnJvclxuIiwgX19mdW5jX18pOwotCi0JYmFja2xpZ2h0X2VuYWJsZShkZGF0YS0+YmFja2xpZ2h0KTsKLX0KLQotc3RhdGljIHZvaWQgdGQwMjh0dGVjMV9wYW5lbF9kaXNhYmxlKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCi0JYmFja2xpZ2h0X2Rpc2FibGUoZGRhdGEtPmJhY2tsaWdodCk7Ci0KLQlkZXZfZGJnKGRzc2Rldi0+ZGV2LCAidGQwMjh0dGVjMV9wYW5lbF9kaXNhYmxlKClcbiIpOwotCi0JamJ0X3JldF93cml0ZV8wKGRkYXRhLCBKQlRfUkVHX0RJU1BMQVlfT0ZGKTsKLQlqYnRfcmVnX3dyaXRlXzIoZGRhdGEsIEpCVF9SRUdfT1VUUFVUX0NPTlRST0wsIDB4ODAwMik7Ci0JamJ0X3JldF93cml0ZV8wKGRkYXRhLCBKQlRfUkVHX1NMRUVQX0lOKTsKLQlqYnRfcmVnX3dyaXRlXzEoZGRhdGEsIEpCVF9SRUdfUE9XRVJfT05fT0ZGLCAweDAwKTsKLX0KLQotc3RhdGljIGludCB0ZDAyOHR0ZWMxX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYsCi0JCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCi0JcmV0dXJuIG9tYXBkc3NfZGlzcGxheV9nZXRfbW9kZXMoY29ubmVjdG9yLCAmZGRhdGEtPnZtKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2Rzc19kZXZpY2Vfb3BzIHRkMDI4dHRlYzFfb3BzID0gewotCS5jb25uZWN0CT0gdGQwMjh0dGVjMV9wYW5lbF9jb25uZWN0LAotCS5kaXNjb25uZWN0CT0gdGQwMjh0dGVjMV9wYW5lbF9kaXNjb25uZWN0LAotCi0JLmVuYWJsZQkJPSB0ZDAyOHR0ZWMxX3BhbmVsX2VuYWJsZSwKLQkuZGlzYWJsZQk9IHRkMDI4dHRlYzFfcGFuZWxfZGlzYWJsZSwKLQotCS5nZXRfbW9kZXMJPSB0ZDAyOHR0ZWMxX3BhbmVsX2dldF9tb2RlcywKLX07Ci0KLXN0YXRpYyBpbnQgdGQwMjh0dGVjMV9wYW5lbF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGE7Ci0Jc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2OwotCWludCByOwotCi0JZGV2X2RiZygmc3BpLT5kZXYsICIlc1xuIiwgX19mdW5jX18pOwotCi0Jc3BpLT5iaXRzX3Blcl93b3JkID0gOTsKLQlzcGktPm1vZGUgPSBTUElfTU9ERV8zOwotCi0JciA9IHNwaV9zZXR1cChzcGkpOwotCWlmIChyIDwgMCkgewotCQlkZXZfZXJyKCZzcGktPmRldiwgInNwaV9zZXR1cCBmYWlsZWQ6ICVkXG4iLCByKTsKLQkJcmV0dXJuIHI7Ci0JfQotCi0JZGRhdGEgPSBkZXZtX2t6YWxsb2MoJnNwaS0+ZGV2LCBzaXplb2YoKmRkYXRhKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKGRkYXRhID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZGRhdGEtPmJhY2tsaWdodCA9IGRldm1fb2ZfZmluZF9iYWNrbGlnaHQoJnNwaS0+ZGV2KTsKLQlpZiAoSVNfRVJSKGRkYXRhLT5iYWNrbGlnaHQpKQotCQlyZXR1cm4gUFRSX0VSUihkZGF0YS0+YmFja2xpZ2h0KTsKLQotCWRldl9zZXRfZHJ2ZGF0YSgmc3BpLT5kZXYsIGRkYXRhKTsKLQotCWRkYXRhLT5zcGlfZGV2ID0gc3BpOwotCi0JZGRhdGEtPnZtID0gdGQwMjh0dGVjMV9wYW5lbF92bTsKLQotCWRzc2RldiA9ICZkZGF0YS0+ZHNzZGV2OwotCWRzc2Rldi0+ZGV2ID0gJnNwaS0+ZGV2OwotCWRzc2Rldi0+b3BzID0gJnRkMDI4dHRlYzFfb3BzOwotCWRzc2Rldi0+dHlwZSA9IE9NQVBfRElTUExBWV9UWVBFX0RQSTsKLQlkc3NkZXYtPmRpc3BsYXkgPSB0cnVlOwotCWRzc2Rldi0+b3duZXIgPSBUSElTX01PRFVMRTsKLQlkc3NkZXYtPm9mX3BvcnRzID0gQklUKDApOwotCWRzc2Rldi0+b3BzX2ZsYWdzID0gT01BUF9EU1NfREVWSUNFX09QX01PREVTOwotCi0JLyoKLQkgKiBOb3RlOiBBY2NvcmRpbmcgdG8gdGhlIHBhbmVsIGRvY3VtZW50YXRpb246Ci0JICogU1lOQyBuZWVkcyB0byBiZSBkcml2ZW4gb24gdGhlIEZBTExJTkcgZWRnZQotCSAqLwotCWRzc2Rldi0+YnVzX2ZsYWdzID0gRFJNX0JVU19GTEFHX0RFX0hJR0gKLQkJCSAgfCBEUk1fQlVTX0ZMQUdfU1lOQ19EUklWRV9QT1NFREdFCi0JCQkgIHwgRFJNX0JVU19GTEFHX1BJWERBVEFfRFJJVkVfTkVHRURHRTsKLQotCW9tYXBkc3NfZGlzcGxheV9pbml0KGRzc2Rldik7Ci0Jb21hcGRzc19kZXZpY2VfcmVnaXN0ZXIoZHNzZGV2KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHRkMDI4dHRlYzFfcGFuZWxfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YSgmc3BpLT5kZXYpOwotCXN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldiA9ICZkZGF0YS0+ZHNzZGV2OwotCi0JZGV2X2RiZygmZGRhdGEtPnNwaV9kZXYtPmRldiwgIiVzXG4iLCBfX2Z1bmNfXyk7Ci0KLQlvbWFwZHNzX2RldmljZV91bnJlZ2lzdGVyKGRzc2Rldik7Ci0KLQl0ZDAyOHR0ZWMxX3BhbmVsX2Rpc2FibGUoZHNzZGV2KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB0ZDAyOHR0ZWMxX29mX21hdGNoW10gPSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJvbWFwZHNzLHRwbyx0ZDAyOHR0ZWMxIiwgfSwKLQkvKiBrZWVwIHRvIG5vdCBicmVhayBvbGRlciBEVEIgKi8KLQl7IC5jb21wYXRpYmxlID0gIm9tYXBkc3MsdG9wcG9seSx0ZDAyOHR0ZWMxIiwgfSwKLQl7fSwKLX07Ci0KLU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRkMDI4dHRlYzFfb2ZfbWF0Y2gpOwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgdGQwMjh0dGVjMV9pZHNbXSA9IHsKLQl7ICJ0b3Bwb2x5LHRkMDI4dHRlYzEiLCAwIH0sCi0JeyAidHBvLHRkMDI4dHRlYzEiLCAwfSwKLQl7IC8qIHNlbnRpbmVsICovIH0KLX07Ci0KLU1PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCB0ZDAyOHR0ZWMxX2lkcyk7Ci0KLQotc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIHRkMDI4dHRlYzFfc3BpX2RyaXZlciA9IHsKLQkucHJvYmUJCT0gdGQwMjh0dGVjMV9wYW5lbF9wcm9iZSwKLQkucmVtb3ZlCQk9IHRkMDI4dHRlYzFfcGFuZWxfcmVtb3ZlLAotCS5pZF90YWJsZQk9IHRkMDI4dHRlYzFfaWRzLAotCi0JLmRyaXZlciAgICAgICAgID0gewotCQkubmFtZSAgID0gInBhbmVsLXRwby10ZDAyOHR0ZWMxIiwKLQkJLm9mX21hdGNoX3RhYmxlID0gdGQwMjh0dGVjMV9vZl9tYXRjaCwKLQkJLnN1cHByZXNzX2JpbmRfYXR0cnMgPSB0cnVlLAotCX0sCi19OwotCi1tb2R1bGVfc3BpX2RyaXZlcih0ZDAyOHR0ZWMxX3NwaV9kcml2ZXIpOwotCi1NT0RVTEVfQVVUSE9SKCJILiBOaWtvbGF1cyBTY2hhbGxlciA8aG5zQGdvbGRlbGljby5jb20+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIlRvcHBvbHkgVEQwMjhUVEVDMSBwYW5lbCBkcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL3BhbmVsLXRwby10ZDA0M210ZWExLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kaXNwbGF5cy9wYW5lbC10cG8tdGQwNDNtdGVhMS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTA5MjE3Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rpc3BsYXlzL3BhbmVsLXRwby10ZDA0M210ZWExLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MTMgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKLS8qCi0gKiBUUE8gVEQwNDNNVEVBMSBQYW5lbCBkcml2ZXIKLSAqCi0gKiBBdXRob3I6IEdyYcW+dnlkYXMgSWdub3RhcyA8bm90YXNhc0BnbWFpbC5jb20+Ci0gKiBDb252ZXJ0ZWQgdG8gbmV3IERTUyBkZXZpY2UgbW9kZWw6IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZXJyLmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+Ci0KLSNpbmNsdWRlICIuLi9kc3Mvb21hcGRzcy5oIgotCi0jZGVmaW5lIFRQT19SMDJfTU9ERSh4KQkJKCh4KSAmIDcpCi0jZGVmaW5lIFRQT19SMDJfTU9ERV84MDB4NDgwCTcKLSNkZWZpbmUgVFBPX1IwMl9OQ0xLX1JJU0lORwlCSVQoMykKLSNkZWZpbmUgVFBPX1IwMl9IU1lOQ19ISUdICUJJVCg0KQotI2RlZmluZSBUUE9fUjAyX1ZTWU5DX0hJR0gJQklUKDUpCi0KLSNkZWZpbmUgVFBPX1IwM19OU1RBTkRCWQlCSVQoMCkKLSNkZWZpbmUgVFBPX1IwM19FTl9DUF9DTEsJQklUKDEpCi0jZGVmaW5lIFRQT19SMDNfRU5fVkdMX1BVTVAJQklUKDIpCi0jZGVmaW5lIFRQT19SMDNfRU5fUFdNCQlCSVQoMykKLSNkZWZpbmUgVFBPX1IwM19EUklWSU5HX0NBUF8xMDAJQklUKDQpCi0jZGVmaW5lIFRQT19SMDNfRU5fUFJFX0NIQVJHRQlCSVQoNikKLSNkZWZpbmUgVFBPX1IwM19TT0ZUV0FSRV9DVEwJQklUKDcpCi0KLSNkZWZpbmUgVFBPX1IwNF9ORkxJUF9ICQlCSVQoMCkKLSNkZWZpbmUgVFBPX1IwNF9ORkxJUF9WCQlCSVQoMSkKLSNkZWZpbmUgVFBPX1IwNF9DUF9DTEtfRlJFUV8xSAlCSVQoMikKLSNkZWZpbmUgVFBPX1IwNF9WR0xfRlJFUV8xSAlCSVQoNCkKLQotI2RlZmluZSBUUE9fUjAzX1ZBTF9OT1JNQUwgKFRQT19SMDNfTlNUQU5EQlkgfCBUUE9fUjAzX0VOX0NQX0NMSyB8IFwKLQkJCVRQT19SMDNfRU5fVkdMX1BVTVAgfCAgVFBPX1IwM19FTl9QV00gfCBcCi0JCQlUUE9fUjAzX0RSSVZJTkdfQ0FQXzEwMCB8IFRQT19SMDNfRU5fUFJFX0NIQVJHRSB8IFwKLQkJCVRQT19SMDNfU09GVFdBUkVfQ1RMKQotCi0jZGVmaW5lIFRQT19SMDNfVkFMX1NUQU5EQlkgKFRQT19SMDNfRFJJVklOR19DQVBfMTAwIHwgXAotCQkJVFBPX1IwM19FTl9QUkVfQ0hBUkdFIHwgVFBPX1IwM19TT0ZUV0FSRV9DVEwpCi0KLXN0YXRpYyBjb25zdCB1MTYgdHBvX3RkMDQzX2RlZl9nYW1tYVsxMl0gPSB7Ci0JMTA1LCAzMTUsIDM4MSwgNDMxLCA0OTAsIDUzNywgNTc5LCA2ODYsIDc4MCwgODM3LCA4ODAsIDEwMjMKLX07Ci0KLXN0cnVjdCBwYW5lbF9kcnZfZGF0YSB7Ci0Jc3RydWN0IG9tYXBfZHNzX2RldmljZQlkc3NkZXY7Ci0KLQlzdHJ1Y3QgdmlkZW9tb2RlIHZtOwotCi0Jc3RydWN0IHNwaV9kZXZpY2UgKnNwaTsKLQlzdHJ1Y3QgcmVndWxhdG9yICp2Y2NfcmVnOwotCXN0cnVjdCBncGlvX2Rlc2MgKnJlc2V0X2dwaW87Ci0JdTE2IGdhbW1hWzEyXTsKLQl1MzIgbW9kZTsKLQl1MzIgdm1pcnJvcjoxOwotCXUzMiBwb3dlcmVkX29uOjE7Ci0JdTMyIHNwaV9zdXNwZW5kZWQ6MTsKLQl1MzIgcG93ZXJfb25fcmVzdW1lOjE7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHZpZGVvbW9kZSB0cG9fdGQwNDNfdm0gPSB7Ci0JLmhhY3RpdmUJPSA4MDAsCi0JLnZhY3RpdmUJPSA0ODAsCi0KLQkucGl4ZWxjbG9jawk9IDM2MDAwMDAwLAotCi0JLmhzeW5jX2xlbgk9IDEsCi0JLmhmcm9udF9wb3JjaAk9IDY4LAotCS5oYmFja19wb3JjaAk9IDIxNCwKLQotCS52c3luY19sZW4JPSAxLAotCS52ZnJvbnRfcG9yY2gJPSAzOSwKLQkudmJhY2tfcG9yY2gJPSAzNCwKLQotCS5mbGFncwkJPSBESVNQTEFZX0ZMQUdTX0hTWU5DX0xPVyB8IERJU1BMQVlfRkxBR1NfVlNZTkNfTE9XLAotfTsKLQotI2RlZmluZSB0b19wYW5lbF9kYXRhKHApIGNvbnRhaW5lcl9vZihwLCBzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEsIGRzc2RldikKLQotc3RhdGljIGludCB0cG9fdGQwNDNfd3JpdGUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTggYWRkciwgdTggZGF0YSkKLXsKLQlzdHJ1Y3Qgc3BpX21lc3NhZ2UJbTsKLQlzdHJ1Y3Qgc3BpX3RyYW5zZmVyCXhmZXI7Ci0JdTE2CQkJdzsKLQlpbnQJCQlyOwotCi0Jc3BpX21lc3NhZ2VfaW5pdCgmbSk7Ci0KLQltZW1zZXQoJnhmZXIsIDAsIHNpemVvZih4ZmVyKSk7Ci0KLQl3ID0gKCh1MTYpYWRkciA8PCAxMCkgfCAoMSA8PCA4KSB8IGRhdGE7Ci0JeGZlci50eF9idWYgPSAmdzsKLQl4ZmVyLmJpdHNfcGVyX3dvcmQgPSAxNjsKLQl4ZmVyLmxlbiA9IDI7Ci0Jc3BpX21lc3NhZ2VfYWRkX3RhaWwoJnhmZXIsICZtKTsKLQotCXIgPSBzcGlfc3luYyhzcGksICZtKTsKLQlpZiAociA8IDApCi0JCWRldl93YXJuKCZzcGktPmRldiwgImZhaWxlZCB0byB3cml0ZSB0byBMQ0QgcmVnICglZClcbiIsIHIpOwotCXJldHVybiByOwotfQotCi1zdGF0aWMgdm9pZCB0cG9fdGQwNDNfd3JpdGVfZ2FtbWEoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTE2IGdhbW1hWzEyXSkKLXsKLQl1OCBpLCB2YWw7Ci0KLQkvKiBnYW1tYSBiaXRzIFs5OjhdICovCi0JZm9yICh2YWwgPSBpID0gMDsgaSA8IDQ7IGkrKykKLQkJdmFsIHw9IChnYW1tYVtpXSAmIDB4MzAwKSA+PiAoKGkgKyAxKSAqIDIpOwotCXRwb190ZDA0M193cml0ZShzcGksIDB4MTEsIHZhbCk7Ci0KLQlmb3IgKHZhbCA9IGkgPSAwOyBpIDwgNDsgaSsrKQotCQl2YWwgfD0gKGdhbW1hW2krNF0gJiAweDMwMCkgPj4gKChpICsgMSkgKiAyKTsKLQl0cG9fdGQwNDNfd3JpdGUoc3BpLCAweDEyLCB2YWwpOwotCi0JZm9yICh2YWwgPSBpID0gMDsgaSA8IDQ7IGkrKykKLQkJdmFsIHw9IChnYW1tYVtpKzhdICYgMHgzMDApID4+ICgoaSArIDEpICogMik7Ci0JdHBvX3RkMDQzX3dyaXRlKHNwaSwgMHgxMywgdmFsKTsKLQotCS8qIGdhbW1hIGJpdHMgWzc6MF0gKi8KLQlmb3IgKHZhbCA9IGkgPSAwOyBpIDwgMTI7IGkrKykKLQkJdHBvX3RkMDQzX3dyaXRlKHNwaSwgMHgxNCArIGksIGdhbW1hW2ldICYgMHhmZik7Ci19Ci0KLXN0YXRpYyBpbnQgdHBvX3RkMDQzX3dyaXRlX21pcnJvcihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBib29sIGgsIGJvb2wgdikKLXsKLQl1OCByZWc0ID0gVFBPX1IwNF9ORkxJUF9IIHwgVFBPX1IwNF9ORkxJUF9WIHwKLQkJVFBPX1IwNF9DUF9DTEtfRlJFUV8xSCB8IFRQT19SMDRfVkdMX0ZSRVFfMUg7Ci0JaWYgKGgpCi0JCXJlZzQgJj0gflRQT19SMDRfTkZMSVBfSDsKLQlpZiAodikKLQkJcmVnNCAmPSB+VFBPX1IwNF9ORkxJUF9WOwotCi0JcmV0dXJuIHRwb190ZDA0M193cml0ZShzcGksIDQsIHJlZzQpOwotfQotCi1zdGF0aWMgc3NpemVfdCB0cG9fdGQwNDNfdm1pcnJvcl9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKLQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQotCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVkXG4iLCBkZGF0YS0+dm1pcnJvcik7Ci19Ci0KLXN0YXRpYyBzc2l6ZV90IHRwb190ZDA0M192bWlycm9yX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKLQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCWludCB2YWw7Ci0JaW50IHJldDsKLQotCXJldCA9IGtzdHJ0b2ludChidWYsIDAsICZ2YWwpOwotCWlmIChyZXQgPCAwKQotCQlyZXR1cm4gcmV0OwotCi0JdmFsID0gISF2YWw7Ci0KLQlyZXQgPSB0cG9fdGQwNDNfd3JpdGVfbWlycm9yKGRkYXRhLT5zcGksIGZhbHNlLCB2YWwpOwotCWlmIChyZXQgPCAwKQotCQlyZXR1cm4gcmV0OwotCi0JZGRhdGEtPnZtaXJyb3IgPSB2YWw7Ci0KLQlyZXR1cm4gY291bnQ7Ci19Ci0KLXN0YXRpYyBzc2l6ZV90IHRwb190ZDA0M19tb2RlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAotCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCi0JcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJWRcbiIsIGRkYXRhLT5tb2RlKTsKLX0KLQotc3RhdGljIHNzaXplX3QgdHBvX3RkMDQzX21vZGVfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAotCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0JbG9uZyB2YWw7Ci0JaW50IHJldDsKLQotCXJldCA9IGtzdHJ0b2woYnVmLCAwLCAmdmFsKTsKLQlpZiAocmV0ICE9IDAgfHwgdmFsICYgfjcpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZGRhdGEtPm1vZGUgPSB2YWw7Ci0KLQl2YWwgfD0gVFBPX1IwMl9OQ0xLX1JJU0lORzsKLQl0cG9fdGQwNDNfd3JpdGUoZGRhdGEtPnNwaSwgMiwgdmFsKTsKLQotCXJldHVybiBjb3VudDsKLX0KLQotc3RhdGljIHNzaXplX3QgdHBvX3RkMDQzX2dhbW1hX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAotCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCXNzaXplX3QgbGVuID0gMDsKLQlpbnQgcmV0OwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGRhdGEtPmdhbW1hKTsgaSsrKSB7Ci0JCXJldCA9IHNucHJpbnRmKGJ1ZiArIGxlbiwgUEFHRV9TSVpFIC0gbGVuLCAiJXUgIiwKLQkJCQlkZGF0YS0+Z2FtbWFbaV0pOwotCQlpZiAocmV0IDwgMCkKLQkJCXJldHVybiByZXQ7Ci0JCWxlbiArPSByZXQ7Ci0JfQotCWJ1ZltsZW4gLSAxXSA9ICdcbic7Ci0KLQlyZXR1cm4gbGVuOwotfQotCi1zdGF0aWMgc3NpemVfdCB0cG9fdGQwNDNfZ2FtbWFfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAotCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0JdW5zaWduZWQgaW50IGdbMTJdOwotCWludCByZXQ7Ci0JaW50IGk7Ci0KLQlyZXQgPSBzc2NhbmYoYnVmLCAiJXUgJXUgJXUgJXUgJXUgJXUgJXUgJXUgJXUgJXUgJXUgJXUiLAotCQkJJmdbMF0sICZnWzFdLCAmZ1syXSwgJmdbM10sICZnWzRdLCAmZ1s1XSwKLQkJCSZnWzZdLCAmZ1s3XSwgJmdbOF0sICZnWzldLCAmZ1sxMF0sICZnWzExXSk7Ci0KLQlpZiAocmV0ICE9IDEyKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKQotCQlkZGF0YS0+Z2FtbWFbaV0gPSBnW2ldOwotCi0JdHBvX3RkMDQzX3dyaXRlX2dhbW1hKGRkYXRhLT5zcGksIGRkYXRhLT5nYW1tYSk7Ci0KLQlyZXR1cm4gY291bnQ7Ci19Ci0KLXN0YXRpYyBERVZJQ0VfQVRUUih2bWlycm9yLCBTX0lSVUdPIHwgU19JV1VTUiwKLQkJdHBvX3RkMDQzX3ZtaXJyb3Jfc2hvdywgdHBvX3RkMDQzX3ZtaXJyb3Jfc3RvcmUpOwotc3RhdGljIERFVklDRV9BVFRSKG1vZGUsIFNfSVJVR08gfCBTX0lXVVNSLAotCQl0cG9fdGQwNDNfbW9kZV9zaG93LCB0cG9fdGQwNDNfbW9kZV9zdG9yZSk7Ci1zdGF0aWMgREVWSUNFX0FUVFIoZ2FtbWEsIFNfSVJVR08gfCBTX0lXVVNSLAotCQl0cG9fdGQwNDNfZ2FtbWFfc2hvdywgdHBvX3RkMDQzX2dhbW1hX3N0b3JlKTsKLQotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnRwb190ZDA0M19hdHRyc1tdID0gewotCSZkZXZfYXR0cl92bWlycm9yLmF0dHIsCi0JJmRldl9hdHRyX21vZGUuYXR0ciwKLQkmZGV2X2F0dHJfZ2FtbWEuYXR0ciwKLQlOVUxMLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgdHBvX3RkMDQzX2F0dHJfZ3JvdXAgPSB7Ci0JLmF0dHJzID0gdHBvX3RkMDQzX2F0dHJzLAotfTsKLQotc3RhdGljIGludCB0cG9fdGQwNDNfcG93ZXJfb24oc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSkKLXsKLQlpbnQgcjsKLQotCWlmIChkZGF0YS0+cG93ZXJlZF9vbikKLQkJcmV0dXJuIDA7Ci0KLQlyID0gcmVndWxhdG9yX2VuYWJsZShkZGF0YS0+dmNjX3JlZyk7Ci0JaWYgKHIgIT0gMCkKLQkJcmV0dXJuIHI7Ci0KLQkvKiB3YWl0IGZvciBwYW5lbCB0byBzdGFiaWxpemUgKi8KLQltc2xlZXAoMTYwKTsKLQotCWdwaW9kX3NldF92YWx1ZShkZGF0YS0+cmVzZXRfZ3BpbywgMCk7Ci0KLQl0cG9fdGQwNDNfd3JpdGUoZGRhdGEtPnNwaSwgMiwKLQkJCVRQT19SMDJfTU9ERShkZGF0YS0+bW9kZSkgfCBUUE9fUjAyX05DTEtfUklTSU5HKTsKLQl0cG9fdGQwNDNfd3JpdGUoZGRhdGEtPnNwaSwgMywgVFBPX1IwM19WQUxfTk9STUFMKTsKLQl0cG9fdGQwNDNfd3JpdGUoZGRhdGEtPnNwaSwgMHgyMCwgMHhmMCk7Ci0JdHBvX3RkMDQzX3dyaXRlKGRkYXRhLT5zcGksIDB4MjEsIDB4ZjApOwotCXRwb190ZDA0M193cml0ZV9taXJyb3IoZGRhdGEtPnNwaSwgZmFsc2UsIGRkYXRhLT52bWlycm9yKTsKLQl0cG9fdGQwNDNfd3JpdGVfZ2FtbWEoZGRhdGEtPnNwaSwgZGRhdGEtPmdhbW1hKTsKLQotCWRkYXRhLT5wb3dlcmVkX29uID0gMTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgdHBvX3RkMDQzX3Bvd2VyX29mZihzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhKQotewotCWlmICghZGRhdGEtPnBvd2VyZWRfb24pCi0JCXJldHVybjsKLQotCXRwb190ZDA0M193cml0ZShkZGF0YS0+c3BpLCAzLAotCQkJVFBPX1IwM19WQUxfU1RBTkRCWSB8IFRQT19SMDNfRU5fUFdNKTsKLQotCWdwaW9kX3NldF92YWx1ZShkZGF0YS0+cmVzZXRfZ3BpbywgMSk7Ci0KLQkvKiB3YWl0IGZvciBhdCBsZWFzdCAyIHZzeW5jcyBiZWZvcmUgY3V0dGluZyBvZmYgcG93ZXIgKi8KLQltc2xlZXAoNTApOwotCi0JdHBvX3RkMDQzX3dyaXRlKGRkYXRhLT5zcGksIDMsIFRQT19SMDNfVkFMX1NUQU5EQlkpOwotCi0JcmVndWxhdG9yX2Rpc2FibGUoZGRhdGEtPnZjY19yZWcpOwotCi0JZGRhdGEtPnBvd2VyZWRfb24gPSAwOwotfQotCi1zdGF0aWMgaW50IHRwb190ZDA0M19jb25uZWN0KHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKnNyYywKLQkJCSAgICAgc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHN0KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCB0cG9fdGQwNDNfZGlzY29ubmVjdChzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpzcmMsCi0JCQkJIHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzdCkKLXsKLX0KLQotc3RhdGljIHZvaWQgdHBvX3RkMDQzX2VuYWJsZShzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IHRvX3BhbmVsX2RhdGEoZHNzZGV2KTsKLQlpbnQgcjsKLQotCS8qCi0JICogSWYgd2UgYXJlIHJlc3VtaW5nIGZyb20gc3lzdGVtIHN1c3BlbmQsIFNQSSBjbG9ja3MgbWlnaHQgbm90IGJlCi0JICogZW5hYmxlZCB5ZXQsIHNvIHdlJ2xsIHByb2dyYW0gdGhlIExDRCBmcm9tIFNQSSBQTSByZXN1bWUgY2FsbGJhY2suCi0JICovCi0JaWYgKCFkZGF0YS0+c3BpX3N1c3BlbmRlZCkgewotCQlyID0gdHBvX3RkMDQzX3Bvd2VyX29uKGRkYXRhKTsKLQkJaWYgKHIpIHsKLQkJCWRldl9lcnIoJmRkYXRhLT5zcGktPmRldiwgIiVzOiBwb3dlciBvbiBmYWlsZWQgKCVkKVxuIiwKLQkJCQlfX2Z1bmNfXywgcik7Ci0JCQlyZXR1cm47Ci0JCX0KLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIHRwb190ZDA0M19kaXNhYmxlKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCi0JaWYgKCFkZGF0YS0+c3BpX3N1c3BlbmRlZCkKLQkJdHBvX3RkMDQzX3Bvd2VyX29mZihkZGF0YSk7Ci19Ci0KLXN0YXRpYyBpbnQgdHBvX3RkMDQzX2dldF9tb2RlcyhzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYsCi0JCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gdG9fcGFuZWxfZGF0YShkc3NkZXYpOwotCi0JcmV0dXJuIG9tYXBkc3NfZGlzcGxheV9nZXRfbW9kZXMoY29ubmVjdG9yLCAmZGRhdGEtPnZtKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2Rzc19kZXZpY2Vfb3BzIHRwb190ZDA0M19vcHMgPSB7Ci0JLmNvbm5lY3QJPSB0cG9fdGQwNDNfY29ubmVjdCwKLQkuZGlzY29ubmVjdAk9IHRwb190ZDA0M19kaXNjb25uZWN0LAotCi0JLmVuYWJsZQkJPSB0cG9fdGQwNDNfZW5hYmxlLAotCS5kaXNhYmxlCT0gdHBvX3RkMDQzX2Rpc2FibGUsCi0KLQkuZ2V0X21vZGVzCT0gdHBvX3RkMDQzX2dldF9tb2RlcywKLX07Ci0KLXN0YXRpYyBpbnQgdHBvX3RkMDQzX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0Jc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YTsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXY7Ci0Jc3RydWN0IGdwaW9fZGVzYyAqZ3BpbzsKLQlpbnQgcjsKLQotCWRldl9kYmcoJnNwaS0+ZGV2LCAiJXNcbiIsIF9fZnVuY19fKTsKLQotCXNwaS0+Yml0c19wZXJfd29yZCA9IDE2OwotCXNwaS0+bW9kZSA9IFNQSV9NT0RFXzA7Ci0KLQlyID0gc3BpX3NldHVwKHNwaSk7Ci0JaWYgKHIgPCAwKSB7Ci0JCWRldl9lcnIoJnNwaS0+ZGV2LCAic3BpX3NldHVwIGZhaWxlZDogJWRcbiIsIHIpOwotCQlyZXR1cm4gcjsKLQl9Ci0KLQlkZGF0YSA9IGRldm1fa3phbGxvYygmc3BpLT5kZXYsIHNpemVvZigqZGRhdGEpLCBHRlBfS0VSTkVMKTsKLQlpZiAoZGRhdGEgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlkZXZfc2V0X2RydmRhdGEoJnNwaS0+ZGV2LCBkZGF0YSk7Ci0KLQlkZGF0YS0+c3BpID0gc3BpOwotCi0JZGRhdGEtPm1vZGUgPSBUUE9fUjAyX01PREVfODAweDQ4MDsKLQltZW1jcHkoZGRhdGEtPmdhbW1hLCB0cG9fdGQwNDNfZGVmX2dhbW1hLCBzaXplb2YoZGRhdGEtPmdhbW1hKSk7Ci0KLQlkZGF0YS0+dmNjX3JlZyA9IGRldm1fcmVndWxhdG9yX2dldCgmc3BpLT5kZXYsICJ2Y2MiKTsKLQlpZiAoSVNfRVJSKGRkYXRhLT52Y2NfcmVnKSkgewotCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0byBnZXQgTENEIFZDQyByZWd1bGF0b3JcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihkZGF0YS0+dmNjX3JlZyk7Ci0JfQotCi0JZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0KCZzcGktPmRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOwotCWlmIChJU19FUlIoZ3BpbykpIHsKLQkJZGV2X2Vycigmc3BpLT5kZXYsICJmYWlsZWQgdG8gZ2V0IHJlc2V0IGdwaW9cbiIpOwotCQlyZXR1cm4gUFRSX0VSUihncGlvKTsKLQl9Ci0KLQlkZGF0YS0+cmVzZXRfZ3BpbyA9IGdwaW87Ci0KLQlyID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZzcGktPmRldi5rb2JqLCAmdHBvX3RkMDQzX2F0dHJfZ3JvdXApOwotCWlmIChyKSB7Ci0JCWRldl9lcnIoJnNwaS0+ZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBzeXNmcyBmaWxlc1xuIik7Ci0JCXJldHVybiByOwotCX0KLQotCWRkYXRhLT52bSA9IHRwb190ZDA0M192bTsKLQotCWRzc2RldiA9ICZkZGF0YS0+ZHNzZGV2OwotCWRzc2Rldi0+ZGV2ID0gJnNwaS0+ZGV2OwotCWRzc2Rldi0+b3BzID0gJnRwb190ZDA0M19vcHM7Ci0JZHNzZGV2LT50eXBlID0gT01BUF9ESVNQTEFZX1RZUEVfRFBJOwotCWRzc2Rldi0+ZGlzcGxheSA9IHRydWU7Ci0JZHNzZGV2LT5vd25lciA9IFRISVNfTU9EVUxFOwotCWRzc2Rldi0+b2ZfcG9ydHMgPSBCSVQoMCk7Ci0JZHNzZGV2LT5vcHNfZmxhZ3MgPSBPTUFQX0RTU19ERVZJQ0VfT1BfTU9ERVM7Ci0KLQkvKgotCSAqIE5vdGU6IEFjY29yZGluZyB0byB0aGUgcGFuZWwgZG9jdW1lbnRhdGlvbjoKLQkgKiBTWU5DIG5lZWRzIHRvIGJlIGRyaXZlbiBvbiB0aGUgRkFMTElORyBlZGdlCi0JICovCi0JZHNzZGV2LT5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfREVfSElHSAotCQkJICB8IERSTV9CVVNfRkxBR19TWU5DX0RSSVZFX1BPU0VER0UKLQkJCSAgfCBEUk1fQlVTX0ZMQUdfUElYREFUQV9EUklWRV9ORUdFREdFOwotCi0Jb21hcGRzc19kaXNwbGF5X2luaXQoZHNzZGV2KTsKLQlvbWFwZHNzX2RldmljZV9yZWdpc3Rlcihkc3NkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgdHBvX3RkMDQzX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJnNwaS0+ZGV2KTsKLQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYgPSAmZGRhdGEtPmRzc2RldjsKLQotCWRldl9kYmcoJmRkYXRhLT5zcGktPmRldiwgIiVzXG4iLCBfX2Z1bmNfXyk7Ci0KLQlvbWFwZHNzX2RldmljZV91bnJlZ2lzdGVyKGRzc2Rldik7Ci0KLQlpZiAob21hcGRzc19kZXZpY2VfaXNfZW5hYmxlZChkc3NkZXYpKQotCQl0cG9fdGQwNDNfZGlzYWJsZShkc3NkZXYpOwotCi0Jc3lzZnNfcmVtb3ZlX2dyb3VwKCZzcGktPmRldi5rb2JqLCAmdHBvX3RkMDQzX2F0dHJfZ3JvdXApOwotCi0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBDT05GSUdfUE1fU0xFRVAKLXN0YXRpYyBpbnQgdHBvX3RkMDQzX3NwaV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgcGFuZWxfZHJ2X2RhdGEgKmRkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0KLQlkZXZfZGJnKGRldiwgInRwb190ZDA0M19zcGlfc3VzcGVuZCwgdHBvICVwXG4iLCBkZGF0YSk7Ci0KLQlkZGF0YS0+cG93ZXJfb25fcmVzdW1lID0gZGRhdGEtPnBvd2VyZWRfb247Ci0JdHBvX3RkMDQzX3Bvd2VyX29mZihkZGF0YSk7Ci0JZGRhdGEtPnNwaV9zdXNwZW5kZWQgPSAxOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgdHBvX3RkMDQzX3NwaV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQotewotCXN0cnVjdCBwYW5lbF9kcnZfZGF0YSAqZGRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlpbnQgcmV0OwotCi0JZGV2X2RiZyhkZXYsICJ0cG9fdGQwNDNfc3BpX3Jlc3VtZVxuIik7Ci0KLQlpZiAoZGRhdGEtPnBvd2VyX29uX3Jlc3VtZSkgewotCQlyZXQgPSB0cG9fdGQwNDNfcG93ZXJfb24oZGRhdGEpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0JZGRhdGEtPnNwaV9zdXNwZW5kZWQgPSAwOwotCi0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQotc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKHRwb190ZDA0M19zcGlfcG0sCi0JdHBvX3RkMDQzX3NwaV9zdXNwZW5kLCB0cG9fdGQwNDNfc3BpX3Jlc3VtZSk7Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRwb190ZDA0M19vZl9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAib21hcGRzcyx0cG8sdGQwNDNtdGVhMSIsIH0sCi0Je30sCi19OwotCi1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0cG9fdGQwNDNfb2ZfbWF0Y2gpOwotCi1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgdHBvX3RkMDQzX3NwaV9kcml2ZXIgPSB7Ci0JLmRyaXZlciA9IHsKLQkJLm5hbWUJPSAicGFuZWwtdHBvLXRkMDQzbXRlYTEiLAotCQkucG0JPSAmdHBvX3RkMDQzX3NwaV9wbSwKLQkJLm9mX21hdGNoX3RhYmxlID0gdHBvX3RkMDQzX29mX21hdGNoLAotCQkuc3VwcHJlc3NfYmluZF9hdHRycyA9IHRydWUsCi0JfSwKLQkucHJvYmUJPSB0cG9fdGQwNDNfcHJvYmUsCi0JLnJlbW92ZQk9IHRwb190ZDA0M19yZW1vdmUsCi19OwotCi1tb2R1bGVfc3BpX2RyaXZlcih0cG9fdGQwNDNfc3BpX2RyaXZlcik7Ci0KLU1PRFVMRV9BTElBUygic3BpOnRwbyx0ZDA0M210ZWExIik7Ci1NT0RVTEVfQVVUSE9SKCJHcmHFvnZ5ZGFzIElnbm90YXMgPG5vdGFzYXNAZ21haWwuY29tPiIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJUUE8gVEQwNDNNVEVBMSBMQ0QgRHJpdmVyIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZGlzcGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jCmluZGV4IDc4NWM1NTQuLmVkMGNjYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jCkBAIC00NjA5LDExICs0NjA5LDEwIEBAIHN0YXRpYyBpbnQgZGlzcGNfZXJyYXRhX2k3MzRfd2FfaW5pdChzdHJ1Y3QgZGlzcGNfZGV2aWNlICpkaXNwYykKIAlpNzM0X2J1Zi5zaXplID0gaTczNC5vdmxpLndpZHRoICogaTczNC5vdmxpLmhlaWdodCAqCiAJCWNvbG9yX21vZGVfdG9fYnBwKGk3MzQub3ZsaS5mb3VyY2MpIC8gODsKIAotCWk3MzRfYnVmLnZhZGRyID0gZG1hX2FsbG9jX3dyaXRlY29tYmluZSgmZGlzcGMtPnBkZXYtPmRldiwKLQkJCQkJCWk3MzRfYnVmLnNpemUsICZpNzM0X2J1Zi5wYWRkciwKLQkJCQkJCUdGUF9LRVJORUwpOworCWk3MzRfYnVmLnZhZGRyID0gZG1hX2FsbG9jX3djKCZkaXNwYy0+cGRldi0+ZGV2LCBpNzM0X2J1Zi5zaXplLAorCQkJCSAgICAgICZpNzM0X2J1Zi5wYWRkciwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFpNzM0X2J1Zi52YWRkcikgewotCQlkZXZfZXJyKCZkaXNwYy0+cGRldi0+ZGV2LCAiJXM6IGRtYV9hbGxvY193cml0ZWNvbWJpbmUgZmFpbGVkXG4iLAorCQlkZXZfZXJyKCZkaXNwYy0+cGRldi0+ZGV2LCAiJXM6IGRtYV9hbGxvY193YyBmYWlsZWRcbiIsCiAJCQlfX2Z1bmNfXyk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KQEAgLTQ2MjYsOCArNDYyNSw4IEBAIHN0YXRpYyB2b2lkIGRpc3BjX2VycmF0YV9pNzM0X3dhX2Zpbmkoc3RydWN0IGRpc3BjX2RldmljZSAqZGlzcGMpCiAJaWYgKCFkaXNwYy0+ZmVhdC0+aGFzX2dhbW1hX2k3MzRfYnVnKQogCQlyZXR1cm47CiAKLQlkbWFfZnJlZV93cml0ZWNvbWJpbmUoJmRpc3BjLT5wZGV2LT5kZXYsIGk3MzRfYnVmLnNpemUsIGk3MzRfYnVmLnZhZGRyLAotCQkJICAgICAgaTczNF9idWYucGFkZHIpOworCWRtYV9mcmVlX3djKCZkaXNwYy0+cGRldi0+ZGV2LCBpNzM0X2J1Zi5zaXplLCBpNzM0X2J1Zi52YWRkciwKKwkJICAgIGk3MzRfYnVmLnBhZGRyKTsKIH0KIAogc3RhdGljIHZvaWQgZGlzcGNfZXJyYXRhX2k3MzRfd2Eoc3RydWN0IGRpc3BjX2RldmljZSAqZGlzcGMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZHNzLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZHNzLmMKaW5kZXggNTcxMWI3YS4uZTIyNjMyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rzcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kc3MuYwpAQCAtOTIzLDcgKzkyMyw2IEBAIGRzc19kZWJ1Z2ZzX2NyZWF0ZV9maWxlKHN0cnVjdCBkc3NfZGV2aWNlICpkc3MsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQl2b2lkICpkYXRhKQogewogCXN0cnVjdCBkc3NfZGVidWdmc19lbnRyeSAqZW50cnk7Ci0Jc3RydWN0IGRlbnRyeSAqZDsKIAogCWVudHJ5ID0ga3phbGxvYyhzaXplb2YoKmVudHJ5KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFlbnRyeSkKQEAgLTkzMSwxNSArOTMwLDkgQEAgZHNzX2RlYnVnZnNfY3JlYXRlX2ZpbGUoc3RydWN0IGRzc19kZXZpY2UgKmRzcywgY29uc3QgY2hhciAqbmFtZSwKIAogCWVudHJ5LT5zaG93X2ZuID0gc2hvd19mbjsKIAllbnRyeS0+ZGF0YSA9IGRhdGE7CisJZW50cnktPmRlbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgMDQ0NCwgZHNzLT5kZWJ1Z2ZzLnJvb3QsCisJCQkJCSAgICBlbnRyeSwgJmRzc19kZWJ1Z19mb3BzKTsKIAotCWQgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKG5hbWUsIDA0NDQsIGRzcy0+ZGVidWdmcy5yb290LCBlbnRyeSwKLQkJCQkmZHNzX2RlYnVnX2ZvcHMpOwotCWlmIChJU19FUlIoZCkpIHsKLQkJa2ZyZWUoZW50cnkpOwotCQlyZXR1cm4gRVJSX0NBU1QoZCk7Ci0JfQotCi0JZW50cnktPmRlbnRyeSA9IGQ7CiAJcmV0dXJuIGVudHJ5OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb21hcGRzcy1ib290LWluaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLWJvb3QtaW5pdC5jCmluZGV4IGExNDBkZTcuLjMxNTAyODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLWJvb3QtaW5pdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLWJvb3QtaW5pdC5jCkBAIC0xNzYsMTcgKzE3NiwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvbWFwZHNzX29mX21hdGNoW10gX19pbml0Y29uc3QgPSB7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvbWFwZHNzX29mX2ZpeHVwc193aGl0ZWxpc3RbXSBfX2luaXRjb25zdCA9IHsKIAl7IC5jb21wYXRpYmxlID0gImNvbXBvc2l0ZS12aWRlby1jb25uZWN0b3IiIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJoZG1pLWNvbm5lY3RvciIgfSwKLQl7IC5jb21wYXRpYmxlID0gImxncGhpbGlwcyxsYjAzNXEwMiIgfSwKLQl7IC5jb21wYXRpYmxlID0gIm5lYyxubDgwNDhobDExIiB9LAogCXsgLmNvbXBhdGlibGUgPSAicGFuZWwtZHNpLWNtIiB9LAotCXsgLmNvbXBhdGlibGUgPSAic2hhcnAsbHMwMzd2N2R3MDEiIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJzb255LGFjeDU2NWFrbSIgfSwKIAl7IC5jb21wYXRpYmxlID0gInN2aWRlby1jb25uZWN0b3IiIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJ0aSxvcGEzNjIiIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJ0aSx0cGQxMnMwMTUiIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJ0b3Bwb2x5LHRkMDI4dHRlYzEiIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJ0cG8sdGQwMjh0dGVjMSIgfSwKLQl7IC5jb21wYXRpYmxlID0gInRwbyx0ZDA0M210ZWExIiB9LAogCXt9LAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYwppbmRleCBmOWFjOWFmLi4zYzVkZGJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYwpAQCAtNCwxMiArNCwxNCBAQAogICogQXV0aG9yOiBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L21hdGg2NC5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21vZGUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgotI2luY2x1ZGUgPGxpbnV4L21hdGg2NC5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJvbWFwX2Rydi5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZGVidWdmcy5jCmluZGV4IDJiMjgzZjYuLjM0ZGZiMzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZGVidWdmcy5jCkBAIC03LDYgKzcsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogCiAjaW5jbHVkZSAib21hcF9kcnYuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5jCmluZGV4IDFiYWQwYTIuLjI5ODNjMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kcnYuYwpAQCAtNCwxNSArNCwyMSBAQAogICogQXV0aG9yOiBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3lzX3NvYy5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lvY3RsLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJvbWFwX2RtbV90aWxlci5oIgogI2luY2x1ZGUgIm9tYXBfZHJ2LmgiCkBAIC00NjYsMTkgKzQ3MiwxOSBAQCBzdGF0aWMgaW50IGlvY3RsX2dlbV9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgaW9jdGxzW0RSTV9DT01NQU5EX0VORCAtIERSTV9DT01NQU5EX0JBU0VdID0gewogCURSTV9JT0NUTF9ERUZfRFJWKE9NQVBfR0VUX1BBUkFNLCBpb2N0bF9nZXRfcGFyYW0sCi0JCQkgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKE9NQVBfU0VUX1BBUkFNLCBkcm1faW52YWxpZF9vcCwKIAkJCSAgRFJNX0FVVEggfCBEUk1fTUFTVEVSIHwgRFJNX1JPT1RfT05MWSksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoT01BUF9HRU1fTkVXLCBpb2N0bF9nZW1fbmV3LAotCQkJICBEUk1fQVVUSCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIAkvKiBEZXByZWNhdGVkLCB0byBiZSByZW1vdmVkLiAqLwogCURSTV9JT0NUTF9ERUZfRFJWKE9NQVBfR0VNX0NQVV9QUkVQLCBkcm1fbm9vcCwKLQkJCSAgRFJNX0FVVEggfCBEUk1fUkVOREVSX0FMTE9XKSwKKwkJCSAgRFJNX1JFTkRFUl9BTExPVyksCiAJLyogRGVwcmVjYXRlZCwgdG8gYmUgcmVtb3ZlZC4gKi8KIAlEUk1fSU9DVExfREVGX0RSVihPTUFQX0dFTV9DUFVfRklOSSwgZHJtX25vb3AsCi0JCQkgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKE9NQVBfR0VNX0lORk8sIGlvY3RsX2dlbV9pbmZvLAotCQkJICBEUk1fQVVUSCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIH07CiAKIC8qCkBAIC01MTMsNyArNTE5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgb21hcGRyaXZlcl9mb3BzID0gewogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIG9tYXBfZHJtX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNICB8IERSSVZFUl9QUklNRSB8CisJLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSAgfAogCQlEUklWRVJfQVRPTUlDIHwgRFJJVkVSX1JFTkRFUiwKIAkub3BlbiA9IGRldl9vcGVuLAogCS5sYXN0Y2xvc2UgPSBkcm1fZmJfaGVscGVyX2xhc3RjbG9zZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5oCmluZGV4IDAyNWJkNTcuLjdjNGI2NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kcnYuaApAQCAtMTEsMTIgKzExLDExIEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSAiZHNzL29tYXBkc3MuaCIKKwogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8ZHJtL29tYXBfZHJtLmg+CiAKLSNpbmNsdWRlICJkc3Mvb21hcGRzcy5oIgotCiAjaW5jbHVkZSAib21hcF9jb25uZWN0b3IuaCIKICNpbmNsdWRlICJvbWFwX2NydGMuaCIKICNpbmNsdWRlICJvbWFwX2VuY29kZXIuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmIuYwppbmRleCA3ZTg5ZTVjLi4xYjhiNTEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9mYi5jCkBAIC00LDEwICs0LDEwIEBACiAgKiBBdXRob3I6IFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CiAKICNpbmNsdWRlICJvbWFwX2RtbV90aWxlci5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9mYmRldi5jCmluZGV4IDU2MWM0ODEuLjU4ZjUzOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2ZiZGV2LmMKQEAgLTcsNiArNyw4IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV91dGlsLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogCiAjaW5jbHVkZSAib21hcF9kcnYuaCIKIApAQCAtNzYsOCArNzgsNiBAQCBzdGF0aWMgc3RydWN0IGZiX29wcyBvbWFwX2ZiX29wcyA9IHsKIAkuZmJfc2V0Y21hcAk9IGRybV9mYl9oZWxwZXJfc2V0Y21hcCwKIAkuZmJfYmxhbmsJPSBkcm1fZmJfaGVscGVyX2JsYW5rLAogCS5mYl9wYW5fZGlzcGxheSA9IG9tYXBfZmJkZXZfcGFuX2Rpc3BsYXksCi0JLmZiX2RlYnVnX2VudGVyID0gZHJtX2ZiX2hlbHBlcl9kZWJ1Z19lbnRlciwKLQkuZmJfZGVidWdfbGVhdmUgPSBkcm1fZmJfaGVscGVyX2RlYnVnX2xlYXZlLAogCS5mYl9pb2N0bAk9IGRybV9mYl9oZWxwZXJfaW9jdGwsCiAKIAkuZmJfcmVhZCA9IGRybV9mYl9oZWxwZXJfc3lzX3JlYWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9nZW0uYwppbmRleCAzNzM3OGRiLi4wOGY1MzllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZ2VtLmMKQEAgLTQsMTEgKzQsMTMgQEAKICAqIEF1dGhvcjogUm9iIENsYXJrIDxyb2IuY2xhcmtAbGluYXJvLm9yZz4KICAqLwogCisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9wZm5fdC5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgogI2luY2x1ZGUgPGRybS9kcm1fdm1hX21hbmFnZXIuaD4KIAogI2luY2x1ZGUgIm9tYXBfZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2dlbS5oIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9nZW0uaAppbmRleCAzMWNmMzQ1Li43MjliNzgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZ2VtLmgKQEAgLTY1LDggKzY1LDcgQEAgdTY0IG9tYXBfZ2VtX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIHNpemVfdCBvbWFwX2dlbV9tbWFwX3NpemUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwogCiAvKiBQUklNRSBJbnRlcmZhY2UgKi8KLXN0cnVjdCBkbWFfYnVmICpvbWFwX2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBmbGFncyk7CitzdHJ1Y3QgZG1hX2J1ZiAqb21hcF9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgZmxhZ3MpOwogc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvbWFwX2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJc3RydWN0IGRtYV9idWYgKmJ1ZmZlcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZ2VtX2RtYWJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9nZW1fZG1hYnVmLmMKaW5kZXggMDdjMGIxYi4uZThjM2FlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9nZW1fZG1hYnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9nZW1fZG1hYnVmLmMKQEAgLTUsNiArNSw5IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KKyNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+CiAKICNpbmNsdWRlICJvbWFwX2Rydi5oIgogCkBAIC0xMjUsOCArMTI4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyBvbWFwX2RtYWJ1Zl9vcHMgPSB7CiAJLm1tYXAgPSBvbWFwX2dlbV9kbWFidWZfbW1hcCwKIH07CiAKLXN0cnVjdCBkbWFfYnVmICpvbWFwX2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBmbGFncykKK3N0cnVjdCBkbWFfYnVmICpvbWFwX2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBmbGFncykKIHsKIAlERUZJTkVfRE1BX0JVRl9FWFBPUlRfSU5GTyhleHBfaW5mbyk7CiAKQEAgLTEzNSw3ICsxMzcsNyBAQCBzdHJ1Y3QgZG1hX2J1ZiAqb21hcF9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJZXhwX2luZm8uZmxhZ3MgPSBmbGFnczsKIAlleHBfaW5mby5wcml2ID0gb2JqOwogCi0JcmV0dXJuIGRybV9nZW1fZG1hYnVmX2V4cG9ydChkZXYsICZleHBfaW5mbyk7CisJcmV0dXJuIGRybV9nZW1fZG1hYnVmX2V4cG9ydChvYmotPmRldiwgJmV4cF9pbmZvKTsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2lycS5jCmluZGV4IDcyNmEwMTMuLjM4MmJjZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9pcnEuYwpAQCAtNCw2ICs0LDggQEAKICAqIEF1dGhvcjogUm9iIENsYXJrIDxyb2IuY2xhcmtAbGluYXJvLm9yZz4KICAqLwogCisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKwogI2luY2x1ZGUgIm9tYXBfZHJ2LmgiCiAKIHN0cnVjdCBvbWFwX2lycV93YWl0IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfcGxhbmUuYwppbmRleCA4NGUxYmU5Li43M2VjOTk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9wbGFuZS5jCkBAIC01Myw4ICs1MywxMiBAQCBzdGF0aWMgdm9pZCBvbWFwX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2YoaW5mbykpOwogCWluZm8ucm90YXRpb25fdHlwZSA9IE9NQVBfRFNTX1JPVF9OT05FOwogCWluZm8ucm90YXRpb24gPSBEUk1fTU9ERV9ST1RBVEVfMDsKLQlpbmZvLmdsb2JhbF9hbHBoYSA9IDB4ZmY7CisJaW5mby5nbG9iYWxfYWxwaGEgPSBzdGF0ZS0+YWxwaGEgPj4gODsKIAlpbmZvLnpvcmRlciA9IHN0YXRlLT5ub3JtYWxpemVkX3pwb3M7CisJaWYgKHN0YXRlLT5waXhlbF9ibGVuZF9tb2RlID09IERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJKQorCQlpbmZvLnByZV9tdWx0X2FscGhhID0gMTsKKwllbHNlCisJCWluZm8ucHJlX211bHRfYWxwaGEgPSAwOwogCiAJLyogdXBkYXRlIHNjYW5vdXQ6ICovCiAJb21hcF9mcmFtZWJ1ZmZlcl91cGRhdGVfc2Nhbm91dChzdGF0ZS0+ZmIsIHN0YXRlLCAmaW5mbyk7CkBAIC0yODUsNiArMjg5LDkgQEAgc3RydWN0IGRybV9wbGFuZSAqb21hcF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlvbWFwX3BsYW5lX2luc3RhbGxfcHJvcGVydGllcyhwbGFuZSwgJnBsYW5lLT5iYXNlKTsKIAlkcm1fcGxhbmVfY3JlYXRlX3pwb3NfcHJvcGVydHkocGxhbmUsIDAsIDAsIG51bV9wbGFuZXMgLSAxKTsKKwlkcm1fcGxhbmVfY3JlYXRlX2FscGhhX3Byb3BlcnR5KHBsYW5lKTsKKwlkcm1fcGxhbmVfY3JlYXRlX2JsZW5kX21vZGVfcHJvcGVydHkocGxhbmUsIEJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgfAorCQkJCQkgICAgIEJJVChEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRSkpOwogCiAJcmV0dXJuIHBsYW5lOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnCmluZGV4IGQ5ZDkzMWEuLmYxNTJiYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnCkBAIC0xMDMsNiArMTAzLDE0IEBACiAJZGVwZW5kcyBvbiBPRiAmJiBTUEkKIAlzZWxlY3QgVklERU9NT0RFX0hFTFBFUlMKIAorY29uZmlnIERSTV9QQU5FTF9MR19MQjAzNVEwMgorCXRyaXN0YXRlICJMRyBMQjAzNVEwMjQ1NzMgUkdCIHBhbmVsIgorCWRlcGVuZHMgb24gR1BJT0xJQiAmJiBPRiAmJiBTUEkKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciB0aGUgTEIwMzVRMDIgUkdCIHBhbmVsCisJICAoZm91bmQgb24gdGhlIEd1bXN0aXggT3Zlcm8gUGFsbzM1IGJvYXJkKS4gVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcworCSAgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuCisKIGNvbmZpZyBEUk1fUEFORUxfTEdfTEc0NTczCiAJdHJpc3RhdGUgIkxHNDU3MyBSR0IvU1BJIHBhbmVsIgogCWRlcGVuZHMgb24gT0YgJiYgU1BJCkBAIC0xMTEsNiArMTE5LDIzIEBACiAJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciBMRzQ1NzMgUkdCIHBhbmVsLgogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4KIAorY29uZmlnIERSTV9QQU5FTF9ORUNfTkw4MDQ4SEwxMQorCXRyaXN0YXRlICJORUMgTkw4MDQ4SEwxMSBSR0IgcGFuZWwiCisJZGVwZW5kcyBvbiBHUElPTElCICYmIE9GICYmIFNQSQorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBORUMgTkw4MDQ4SEwxMSBSR0IKKwkgIHBhbmVsIChmb3VuZCBvbiB0aGUgWm9vbTIvMy8zNjMwIFNEUCBib2FyZHMpLiBUbyBjb21waWxlIHRoaXMgZHJpdmVyCisJICBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4KKworY29uZmlnIERSTV9QQU5FTF9OT1ZBVEVLX05UMzkwMTYKKwl0cmlzdGF0ZSAiTm92YXRlayBOVDM5MDE2IFJHQi9TUEkgcGFuZWwiCisJZGVwZW5kcyBvbiBPRiAmJiBTUEkKKwlkZXBlbmRzIG9uIEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKKwlzZWxlY3QgUkVHTUFQX1NQSQorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBwYW5lbHMgYnVpbHQKKwkgIGFyb3VuZCB0aGUgTm92YXRlayBOVDM5MDE2IGRpc3BsYXkgY29udHJvbGxlci4KKwogY29uZmlnIERSTV9QQU5FTF9PTElNRVhfTENEX09MSU5VWElOTwogCXRyaXN0YXRlICJPbGltZXggTENELU9MaW51WGlubyBwYW5lbCIKIAlkZXBlbmRzIG9uIE9GCkBAIC0xNTksNiArMTg0LDE1IEBACiAJICBQaSA3IiBUb3VjaHNjcmVlbi4gIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsCiAJICBjaG9vc2UgTSBoZXJlLgogCitjb25maWcgRFJNX1BBTkVMX1JBWURJVU1fUk02NzE5MQorCXRyaXN0YXRlICJSYXlkaXVtIFJNNjcxOTEgRkhEIDEwODB4MTkyMCBEU0kgdmlkZW8gbW9kZSBwYW5lbCIKKwlkZXBlbmRzIG9uIE9GCisJZGVwZW5kcyBvbiBEUk1fTUlQSV9EU0kKKwlkZXBlbmRzIG9uIEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciBSYXlkaXVtIFJNNjcxOTEgRkhECisJICAoMTA4MHgxOTIwKSBEU0kgcGFuZWwuCisKIGNvbmZpZyBEUk1fUEFORUxfUkFZRElVTV9STTY4MjAwCiAJdHJpc3RhdGUgIlJheWRpdW0gUk02ODIwMCA3MjB4MTI4MCBEU0kgdmlkZW8gbW9kZSBwYW5lbCIKIAlkZXBlbmRzIG9uIE9GCkBAIC0yNDgsNiArMjgyLDEzIEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBwYW5lbC1zaGFycC1scTEwMXIxc3gwMS4KIAorY29uZmlnIERSTV9QQU5FTF9TSEFSUF9MUzAzN1Y3RFcwMQorCXRyaXN0YXRlICJTaGFycCBMUzAzN1Y3RFcwMSBWR0EgTENEIHBhbmVsIgorCWRlcGVuZHMgb24gR1BJT0xJQiAmJiBPRiAmJiBSRUdVTEFUT1IKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciBTaGFycCBMUzAzN1Y3RFcwMSBWR0EKKwkgICg0ODB4NjQwKSBMQ0QgcGFuZWwgKGZvdW5kIG9uIHRoZSBUSSBTRFAzNDMwIGJvYXJkKS4KKwogY29uZmlnIERSTV9QQU5FTF9TSEFSUF9MUzA0M1QxTEUwMQogCXRyaXN0YXRlICJTaGFycCBMUzA0M1QxTEUwMSBxSEQgdmlkZW8gbW9kZSBwYW5lbCIKIAlkZXBlbmRzIG9uIE9GCkBAIC0yNzUsNiArMzE2LDI5IEBACiAJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciB0aGUgU2l0cm9uaXgKIAkgIFNUNzc4OVYgY29udHJvbGxlciBmb3IgMjQweDMyMCBMQ0QgcGFuZWxzCiAKK2NvbmZpZyBEUk1fUEFORUxfU09OWV9BQ1g1NjVBS00KKwl0cmlzdGF0ZSAiU29ueSBBQ1g1NjVBS00gcGFuZWwiCisJZGVwZW5kcyBvbiBHUElPTElCICYmIE9GICYmIFNQSQorCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRQorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBTb255IEFDWDU2NUFLTQorCSAgODAweDYwMCAzLjUiIHBhbmVsIChmb3VuZCBvbiB0aGUgTm9raWEgTjkwMCkuCisKK2NvbmZpZyBEUk1fUEFORUxfVFBPX1REMDI4VFRFQzEKKwl0cmlzdGF0ZSAiVG9wcG9seSAoVFBPKSBURDAyOFRURUMxIHBhbmVsIGRyaXZlciIKKwlkZXBlbmRzIG9uIE9GICYmIFNQSQorCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRQorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIFRQTyBURDAyOFRURUMxIDQ4MHg2NDAKKwkgIDIuOCIgcGFuZWwgKGZvdW5kIG9uIHRoZSBPcGVuTW9rbyBOZW8gRnJlZVJ1bm5lciBhbmQgTmVvIDE5NzMpLgorCitjb25maWcgRFJNX1BBTkVMX1RQT19URDA0M01URUExCisJdHJpc3RhdGUgIlRvcHBvbHkgKFRQTykgVEQwNDNNVEVBMSBwYW5lbCBkcml2ZXIiCisJZGVwZW5kcyBvbiBHUElPTElCICYmIE9GICYmIFJFR1VMQVRPUiAmJiBTUEkKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciBUUE8gVEQwNDNNVEVBMSA4MDB4NDgwCisJICA0LjMiIHBhbmVsIChmb3VuZCBvbiB0aGUgT01BUDMgUGFuZG9yYSBib2FyZCkuCisKIGNvbmZpZyBEUk1fUEFORUxfVFBPX1RQRzExMAogCXRyaXN0YXRlICJUUE8gVFBHIDgwMHg0MDAgcGFuZWwiCiAJZGVwZW5kcyBvbiBPRiAmJiBTUEkgJiYgR1BJT0xJQgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCmluZGV4IGZiMGNiM2EuLmI2Y2QzOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUKQEAgLTgsMTIgKzgsMTYgQEAKIG9iai0kKENPTkZJR19EUk1fUEFORUxfSU5OT0xVWF9QMDc5WkNBKSArPSBwYW5lbC1pbm5vbHV4LXAwNzl6Y2Eubwogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9KRElfTFQwNzBNRTA1MDAwKSArPSBwYW5lbC1qZGktbHQwNzBtZTA1MDAwLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfS0lOR0RJU1BMQVlfS0QwOTdEMDQpICs9IHBhbmVsLWtpbmdkaXNwbGF5LWtkMDk3ZDA0Lm8KK29iai0kKENPTkZJR19EUk1fUEFORUxfTEdfTEIwMzVRMDIpICs9IHBhbmVsLWxnLWxiMDM1cTAyLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfTEdfTEc0NTczKSArPSBwYW5lbC1sZy1sZzQ1NzMubworb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9ORUNfTkw4MDQ4SEwxMSkgKz0gcGFuZWwtbmVjLW5sODA0OGhsMTEubworb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzkwMTYpICs9IHBhbmVsLW5vdmF0ZWstbnQzOTAxNi5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX09MSU1FWF9MQ0RfT0xJTlVYSU5PKSArPSBwYW5lbC1vbGltZXgtbGNkLW9saW51eGluby5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX09SSVNFVEVDSF9PVE04MDA5QSkgKz0gcGFuZWwtb3Jpc2V0ZWNoLW90bTgwMDlhLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfT1NEX09TRDEwMVQyNTg3XzUzVFMpICs9IHBhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfUEFOQVNPTklDX1ZWWDEwRjAzNE4wMCkgKz0gcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4wMC5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX1JBU1BCRVJSWVBJX1RPVUNIU0NSRUVOKSArPSBwYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5vCitvYmotJChDT05GSUdfRFJNX1BBTkVMX1JBWURJVU1fUk02NzE5MSkgKz0gcGFuZWwtcmF5ZGl1bS1ybTY3MTkxLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfUkFZRElVTV9STTY4MjAwKSArPSBwYW5lbC1yYXlkaXVtLXJtNjgyMDAubwogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9ST0NLVEVDSF9KSDA1N04wMDkwMCkgKz0gcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5MDAubwogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9ST05CT19SQjA3MEQzMCkgKz0gcGFuZWwtcm9uYm8tcmIwNzBkMzAubwpAQCAtMjUsOCArMjksMTIgQEAKIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU4QUEwKSArPSBwYW5lbC1zYW1zdW5nLXM2ZThhYTAubwogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TRUlLT180M1dWRjFHKSArPSBwYW5lbC1zZWlrby00M3d2ZjFnLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0hBUlBfTFExMDFSMVNYMDEpICs9IHBhbmVsLXNoYXJwLWxxMTAxcjFzeDAxLm8KK29iai0kKENPTkZJR19EUk1fUEFORUxfU0hBUlBfTFMwMzdWN0RXMDEpICs9IHBhbmVsLXNoYXJwLWxzMDM3djdkdzAxLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0hBUlBfTFMwNDNUMUxFMDEpICs9IHBhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0lUUk9OSVhfU1Q3NzAxKSArPSBwYW5lbC1zaXRyb25peC1zdDc3MDEubwogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TSVRST05JWF9TVDc3ODlWKSArPSBwYW5lbC1zaXRyb25peC1zdDc3ODl2Lm8KK29iai0kKENPTkZJR19EUk1fUEFORUxfU09OWV9BQ1g1NjVBS00pICs9IHBhbmVsLXNvbnktYWN4NTY1YWttLm8KK29iai0kKENPTkZJR19EUk1fUEFORUxfVFBPX1REMDI4VFRFQzEpICs9IHBhbmVsLXRwby10ZDAyOHR0ZWMxLm8KK29iai0kKENPTkZJR19EUk1fUEFORUxfVFBPX1REMDQzTVRFQTEpICs9IHBhbmVsLXRwby10ZDA0M210ZWExLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfVFBPX1RQRzExMCkgKz0gcGFuZWwtdHBvLXRwZzExMC5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX1RSVUxZX05UMzU1OTdfV1FYR0EpICs9IHBhbmVsLXRydWx5LW50MzU1OTcubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzIyLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYwppbmRleCA1M2RkMWUxLi4zYzU4ZjYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYwpAQCAtMzQ5LDcgKzM0OSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBpbGk5MzIyX3JlZ21hcF9jb25maWcgPSB7CiAKIHN0YXRpYyBpbnQgaWxpOTMyMl9pbml0KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLCBzdHJ1Y3QgaWxpOTMyMiAqaWxpKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXU4IHJlZzsKIAlpbnQgcmV0OwogCWludCBpOwpAQCAtNDA3LDIzICs0MDYsMTEgQEAgc3RhdGljIGludCBpbGk5MzIyX2luaXQoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsIHN0cnVjdCBpbGk5MzIyICppbGkpCiAJICogUG9sYXJpdHkgYW5kIGludmVydGVkIGNvbG9yIG9yZGVyIGZvciBSR0IgaW5wdXQuCiAJICogTm9uZSBvZiB0aGlzIGFwcGxpZXMgaW4gdGhlIEJULjY1NiBtb2RlLgogCSAqLwotCWlmIChpbGktPmNvbmYtPmRjbGtfYWN0aXZlX2hpZ2gpIHsKKwlyZWcgPSAwOworCWlmIChpbGktPmNvbmYtPmRjbGtfYWN0aXZlX2hpZ2gpCiAJCXJlZyA9IElMSTkzMjJfUE9MX0RDTEs7Ci0JCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyB8PQotCQkJRFJNX0JVU19GTEFHX1BJWERBVEFfRFJJVkVfUE9TRURHRTsKLQl9IGVsc2UgewotCQlyZWcgPSAwOwotCQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgfD0KLQkJCURSTV9CVVNfRkxBR19QSVhEQVRBX0RSSVZFX05FR0VER0U7Ci0JfQotCWlmIChpbGktPmNvbmYtPmRlX2FjdGl2ZV9oaWdoKSB7CisJaWYgKGlsaS0+Y29uZi0+ZGVfYWN0aXZlX2hpZ2gpCiAJCXJlZyB8PSBJTEk5MzIyX1BPTF9ERTsKLQkJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzIHw9Ci0JCQlEUk1fQlVTX0ZMQUdfREVfSElHSDsKLQl9IGVsc2UgewotCQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgfD0KLQkJCURSTV9CVVNfRkxBR19ERV9MT1c7Ci0JfQogCWlmIChpbGktPmNvbmYtPmhzeW5jX2FjdGl2ZV9oaWdoKQogCQlyZWcgfD0gSUxJOTMyMl9QT0xfSFNZTkM7CiAJaWYgKGlsaS0+Y29uZi0+dnN5bmNfYWN0aXZlX2hpZ2gpCkBAIC02NTksOSArNjQ2LDIwIEBAIHN0YXRpYyBpbnQgaWxpOTMyMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IGlsaTkzMjIgKmlsaSA9IHBhbmVsX3RvX2lsaTkzMjIocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvOwogCi0JY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBpbGktPmNvbmYtPndpZHRoX21tOwotCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IGlsaS0+Y29uZi0+aGVpZ2h0X21tOworCWluZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87CisJaW5mby0+d2lkdGhfbW0gPSBpbGktPmNvbmYtPndpZHRoX21tOworCWluZm8tPmhlaWdodF9tbSA9IGlsaS0+Y29uZi0+aGVpZ2h0X21tOworCWlmIChpbGktPmNvbmYtPmRjbGtfYWN0aXZlX2hpZ2gpCisJCWluZm8tPmJ1c19mbGFncyB8PSBEUk1fQlVTX0ZMQUdfUElYREFUQV9EUklWRV9QT1NFREdFOworCWVsc2UKKwkJaW5mby0+YnVzX2ZsYWdzIHw9IERSTV9CVVNfRkxBR19QSVhEQVRBX0RSSVZFX05FR0VER0U7CisKKwlpZiAoaWxpLT5jb25mLT5kZV9hY3RpdmVfaGlnaCkKKwkJaW5mby0+YnVzX2ZsYWdzIHw9IERSTV9CVVNfRkxBR19ERV9ISUdIOworCWVsc2UKKwkJaW5mby0+YnVzX2ZsYWdzIHw9IERSTV9CVVNfRkxBR19ERV9MT1c7CiAKIAlzd2l0Y2ggKGlsaS0+aW5wdXQpIHsKIAljYXNlIElMSTkzMjJfSU5QVVRfU1JHQl9EVU1NWV8zMjBYMjQwOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxiMDM1cTAyLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGctbGIwMzVxMDIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzgyYTUyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxiMDM1cTAyLmMKQEAgLTAsMCArMSwyMzcgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogTEcuUGhpbGlwcyBMQjAzNVEwMiBMQ0QgUGFuZWwgRHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZAorICoKKyAqIEJhc2VkIG9uIHRoZSBvbWFwZHJtLXNwZWNpZmljIHBhbmVsLWxncGhpbGlwcy1sYjAzNXEwMiBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGV4YXMgSW5zdHJ1bWVudHMgSW5jb3Jwb3JhdGVkCisgKiBBdXRob3I6IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+CisgKgorICogQmFzZWQgb24gYSBkcml2ZXIgYnk6IFN0ZXZlIFNha29tYW4gPHN0ZXZlQHNha29tYW4uY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgorCitzdHJ1Y3QgbGIwMzVxMDJfZGV2aWNlIHsKKwlzdHJ1Y3QgZHJtX3BhbmVsIHBhbmVsOworCisJc3RydWN0IHNwaV9kZXZpY2UgKnNwaTsKKwlzdHJ1Y3QgZ3Bpb19kZXNjICplbmFibGVfZ3BpbzsKK307CisKKyNkZWZpbmUgdG9fbGIwMzVxMDJfZGV2aWNlKHApIGNvbnRhaW5lcl9vZihwLCBzdHJ1Y3QgbGIwMzVxMDJfZGV2aWNlLCBwYW5lbCkKKworc3RhdGljIGludCBsYjAzNXEwMl93cml0ZShzdHJ1Y3QgbGIwMzVxMDJfZGV2aWNlICpsY2QsIHUxNiByZWcsIHUxNiB2YWwpCit7CisJc3RydWN0IHNwaV9tZXNzYWdlIG1zZzsKKwlzdHJ1Y3Qgc3BpX3RyYW5zZmVyIGluZGV4X3hmZXIgPSB7CisJCS5sZW4JCT0gMywKKwkJLmNzX2NoYW5nZQk9IDEsCisJfTsKKwlzdHJ1Y3Qgc3BpX3RyYW5zZmVyIHZhbHVlX3hmZXIgPSB7CisJCS5sZW4JCT0gMywKKwl9OworCXU4CWJ1ZmZlclsxNl07CisKKwlzcGlfbWVzc2FnZV9pbml0KCZtc2cpOworCisJLyogcmVnaXN0ZXIgaW5kZXggKi8KKwlidWZmZXJbMF0gPSAweDcwOworCWJ1ZmZlclsxXSA9IDB4MDA7CisJYnVmZmVyWzJdID0gcmVnICYgMHg3ZjsKKwlpbmRleF94ZmVyLnR4X2J1ZiA9IGJ1ZmZlcjsKKwlzcGlfbWVzc2FnZV9hZGRfdGFpbCgmaW5kZXhfeGZlciwgJm1zZyk7CisKKwkvKiByZWdpc3RlciB2YWx1ZSAqLworCWJ1ZmZlcls0XSA9IDB4NzI7CisJYnVmZmVyWzVdID0gdmFsID4+IDg7CisJYnVmZmVyWzZdID0gdmFsOworCXZhbHVlX3hmZXIudHhfYnVmID0gYnVmZmVyICsgNDsKKwlzcGlfbWVzc2FnZV9hZGRfdGFpbCgmdmFsdWVfeGZlciwgJm1zZyk7CisKKwlyZXR1cm4gc3BpX3N5bmMobGNkLT5zcGksICZtc2cpOworfQorCitzdGF0aWMgaW50IGxiMDM1cTAyX2luaXQoc3RydWN0IGxiMDM1cTAyX2RldmljZSAqbGNkKQoreworCS8qIEluaXQgc2VxdWVuY2UgZnJvbSBwYWdlIDI4IG9mIHRoZSBsYjAzNXEwMiBzcGVjLiAqLworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgeworCQl1MTYgaW5kZXg7CisJCXUxNiB2YWx1ZTsKKwl9IGluaXRfZGF0YVtdID0geworCQl7IDB4MDEsIDB4NjMwMCB9LAorCQl7IDB4MDIsIDB4MDIwMCB9LAorCQl7IDB4MDMsIDB4MDE3NyB9LAorCQl7IDB4MDQsIDB4MDRjNyB9LAorCQl7IDB4MDUsIDB4ZmZjMCB9LAorCQl7IDB4MDYsIDB4ZTgwNiB9LAorCQl7IDB4MGEsIDB4NDAwOCB9LAorCQl7IDB4MGIsIDB4MDAwMCB9LAorCQl7IDB4MGQsIDB4MDAzMCB9LAorCQl7IDB4MGUsIDB4MjgwMCB9LAorCQl7IDB4MGYsIDB4MDAwMCB9LAorCQl7IDB4MTYsIDB4OWY4MCB9LAorCQl7IDB4MTcsIDB4MGEwZiB9LAorCQl7IDB4MWUsIDB4MDBjMSB9LAorCQl7IDB4MzAsIDB4MDMwMCB9LAorCQl7IDB4MzEsIDB4MDAwNyB9LAorCQl7IDB4MzIsIDB4MDAwMCB9LAorCQl7IDB4MzMsIDB4MDAwMCB9LAorCQl7IDB4MzQsIDB4MDcwNyB9LAorCQl7IDB4MzUsIDB4MDAwNCB9LAorCQl7IDB4MzYsIDB4MDMwMiB9LAorCQl7IDB4MzcsIDB4MDIwMiB9LAorCQl7IDB4M2EsIDB4MGEwZCB9LAorCQl7IDB4M2IsIDB4MDgwNiB9LAorCX07CisKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0OworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaW5pdF9kYXRhKTsgKytpKSB7CisJCXJldCA9IGxiMDM1cTAyX3dyaXRlKGxjZCwgaW5pdF9kYXRhW2ldLmluZGV4LAorCQkJCSAgICAgaW5pdF9kYXRhW2ldLnZhbHVlKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGxiMDM1cTAyX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGxiMDM1cTAyX2RldmljZSAqbGNkID0gdG9fbGIwMzVxMDJfZGV2aWNlKHBhbmVsKTsKKworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChsY2QtPmVuYWJsZV9ncGlvLCAwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGxiMDM1cTAyX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgbGIwMzVxMDJfZGV2aWNlICpsY2QgPSB0b19sYjAzNXEwMl9kZXZpY2UocGFuZWwpOworCisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGxjZC0+ZW5hYmxlX2dwaW8sIDEpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBsYjAzNXEwMl9tb2RlID0geworCS5jbG9jayA9IDY1MDAsCisJLmhkaXNwbGF5ID0gMzIwLAorCS5oc3luY19zdGFydCA9IDMyMCArIDIwLAorCS5oc3luY19lbmQgPSAzMjAgKyAyMCArIDIsCisJLmh0b3RhbCA9IDMyMCArIDIwICsgMiArIDY4LAorCS52ZGlzcGxheSA9IDI0MCwKKwkudnN5bmNfc3RhcnQgPSAyNDAgKyA0LAorCS52c3luY19lbmQgPSAyNDAgKyA0ICsgMiwKKwkudnRvdGFsID0gMjQwICsgNCArIDIgKyAxOCwKKwkudnJlZnJlc2ggPSA2MCwKKwkudHlwZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwgRFJNX01PREVfVFlQRV9QUkVGRVJSRUQsCisJLmZsYWdzID0gRFJNX01PREVfRkxBR19OSFNZTkMgfCBEUk1fTU9ERV9GTEFHX05WU1lOQywKKwkud2lkdGhfbW0gPSA3MCwKKwkuaGVpZ2h0X21tID0gNTMsCit9OworCitzdGF0aWMgaW50IGxiMDM1cTAyX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKKworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmxiMDM1cTAyX21vZGUpOworCWlmICghbW9kZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CisKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IGxiMDM1cTAyX21vZGUud2lkdGhfbW07CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbGIwMzVxMDJfbW9kZS5oZWlnaHRfbW07CisJLyoKKwkgKiBGSVhNRTogQWNjb3JkaW5nIHRvIHRoZSBkYXRhc2hlZXQgcGl4ZWwgZGF0YSBpcyBzYW1wbGVkIG9uIHRoZQorCSAqIHJpc2luZyBlZGdlIG9mIHRoZSBjbG9jaywgYnV0IHRoZSBjb2RlIHJ1bm5pbmcgb24gdGhlIEd1bXN0aXggT3Zlcm8KKwkgKiBQYWxvMzUgaW5kaWNhdGVzIHNhbXBsaW5nIG9uIHRoZSBuZWdhdGl2ZSBlZGdlLiBUaGlzIHNob3VsZCBiZQorCSAqIHRlc3RlZCBvbiBhIHJlYWwgZGV2aWNlLgorCSAqLworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyA9IERSTV9CVVNfRkxBR19ERV9ISUdICisJCQkJCSAgfCBEUk1fQlVTX0ZMQUdfU1lOQ19TQU1QTEVfUE9TRURHRQorCQkJCQkgIHwgRFJNX0JVU19GTEFHX1BJWERBVEFfU0FNUExFX05FR0VER0U7CisKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGFuZWxfZnVuY3MgbGIwMzVxMDJfZnVuY3MgPSB7CisJLmRpc2FibGUgPSBsYjAzNXEwMl9kaXNhYmxlLAorCS5lbmFibGUgPSBsYjAzNXEwMl9lbmFibGUsCisJLmdldF9tb2RlcyA9IGxiMDM1cTAyX2dldF9tb2RlcywKK307CisKK3N0YXRpYyBpbnQgbGIwMzVxMDJfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgbGIwMzVxMDJfZGV2aWNlICpsY2Q7CisJaW50IHJldDsKKworCWxjZCA9IGRldm1fa3phbGxvYygmc3BpLT5kZXYsIHNpemVvZigqbGNkKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFsY2QpCisJCXJldHVybiAtRU5PTUVNOworCisJc3BpX3NldF9kcnZkYXRhKHNwaSwgbGNkKTsKKwlsY2QtPnNwaSA9IHNwaTsKKworCWxjZC0+ZW5hYmxlX2dwaW8gPSBkZXZtX2dwaW9kX2dldCgmc3BpLT5kZXYsICJlbmFibGUiLCBHUElPRF9PVVRfTE9XKTsKKwlpZiAoSVNfRVJSKGxjZC0+ZW5hYmxlX2dwaW8pKSB7CisJCWRldl9lcnIoJnNwaS0+ZGV2LCAiZmFpbGVkIHRvIHBhcnNlIGVuYWJsZSBncGlvXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIobGNkLT5lbmFibGVfZ3Bpbyk7CisJfQorCisJcmV0ID0gbGIwMzVxMDJfaW5pdChsY2QpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJZHJtX3BhbmVsX2luaXQoJmxjZC0+cGFuZWwpOworCWxjZC0+cGFuZWwuZGV2ID0gJmxjZC0+c3BpLT5kZXY7CisJbGNkLT5wYW5lbC5mdW5jcyA9ICZsYjAzNXEwMl9mdW5jczsKKworCXJldHVybiBkcm1fcGFuZWxfYWRkKCZsY2QtPnBhbmVsKTsKK30KKworc3RhdGljIGludCBsYjAzNXEwMl9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgbGIwMzVxMDJfZGV2aWNlICpsY2QgPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKKworCWRybV9wYW5lbF9yZW1vdmUoJmxjZC0+cGFuZWwpOworCWRybV9wYW5lbF9kaXNhYmxlKCZsY2QtPnBhbmVsKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBsYjAzNXEwMl9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAibGdwaGlsaXBzLGxiMDM1cTAyIiwgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0sCit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBsYjAzNXEwMl9vZl9tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBsYjAzNXEwMl9kcml2ZXIgPSB7CisJLnByb2JlCQk9IGxiMDM1cTAyX3Byb2JlLAorCS5yZW1vdmUJCT0gbGIwMzVxMDJfcmVtb3ZlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJwYW5lbC1sZy1sYjAzNXEwMiIsCisJCS5vZl9tYXRjaF90YWJsZSA9IGxiMDM1cTAyX29mX21hdGNoLAorCX0sCit9OworCittb2R1bGVfc3BpX2RyaXZlcihsYjAzNXEwMl9kcml2ZXIpOworCitNT0RVTEVfQUxJQVMoInNwaTpsZ3BoaWxpcHMsbGIwMzVxMDIiKTsKK01PRFVMRV9BVVRIT1IoIlRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkxHLlBoaWxpcHMgTEIwMzVRMDIgTENEIFBhbmVsIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sdmRzLmMKaW5kZXggMWVjNTdkMC4uYWQ0N2NjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jCkBAIC0xNDcsOCArMTQ3LDExIEBAIHN0YXRpYyBpbnQgcGFuZWxfbHZkc19wYXJzZV9kdChzdHJ1Y3QgcGFuZWxfbHZkcyAqbHZkcykKIAlpbnQgcmV0OwogCiAJcmV0ID0gb2ZfZ2V0X2Rpc3BsYXlfdGltaW5nKG5wLCAicGFuZWwtdGltaW5nIiwgJnRpbWluZyk7Ci0JaWYgKHJldCA8IDApCisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihsdmRzLT5kZXYsICIlcE9GOiBwcm9ibGVtcyBwYXJzaW5nIHBhbmVsLXRpbWluZyAoJWQpXG4iLAorCQkJbnAsIHJldCk7CiAJCXJldHVybiByZXQ7CisJfQogCiAJdmlkZW9tb2RlX2Zyb21fdGltaW5nKCZ0aW1pbmcsICZsdmRzLT52aWRlb19tb2RlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5lYy1ubDgwNDhobDExLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTliMjE3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5lYy1ubDgwNDhobDExLmMKQEAgLTAsMCArMSwyNDggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIE5FQyBOTDgwNDhITDExIFBhbmVsIERyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQKKyAqCisgKiBCYXNlZCBvbiB0aGUgb21hcGRybS1zcGVjaWZpYyBwYW5lbC1uZWMtbmw4MDQ4aGwxMSBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGV4YXMgSW5zdHJ1bWVudHMgSW5jb3Jwb3JhdGVkCisgKiBBdXRob3I6IEVyaWsgR2lsbGluZyA8a29ua2Vyc0BhbmRyb2lkLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcG0uaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgorI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisKK3N0cnVjdCBubDgwNDhfcGFuZWwgeworCXN0cnVjdCBkcm1fcGFuZWwgcGFuZWw7CisKKwlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpOworCXN0cnVjdCBncGlvX2Rlc2MgKnJlc2V0X2dwaW87Cit9OworCisjZGVmaW5lIHRvX25sODA0OF9kZXZpY2UocCkgY29udGFpbmVyX29mKHAsIHN0cnVjdCBubDgwNDhfcGFuZWwsIHBhbmVsKQorCitzdGF0aWMgaW50IG5sODA0OF93cml0ZShzdHJ1Y3Qgbmw4MDQ4X3BhbmVsICpsY2QsIHVuc2lnbmVkIGNoYXIgYWRkciwKKwkJCXVuc2lnbmVkIGNoYXIgdmFsdWUpCit7CisJdTggZGF0YVs0XSA9IHsgdmFsdWUsIDB4MDEsIGFkZHIsIDB4MDAgfTsKKwlpbnQgcmV0OworCisJcmV0ID0gc3BpX3dyaXRlKGxjZC0+c3BpLCBkYXRhLCBzaXplb2YoZGF0YSkpOworCWlmIChyZXQpCisJCWRldl9lcnIoJmxjZC0+c3BpLT5kZXYsICJTUEkgd3JpdGUgdG8gJXUgZmFpbGVkOiAlZFxuIiwKKwkJCWFkZHIsIHJldCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IG5sODA0OF9pbml0KHN0cnVjdCBubDgwNDhfcGFuZWwgKmxjZCkKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBhZGRyOworCQl1bnNpZ25lZCBjaGFyIGRhdGE7CisJfSBubDgwNDhfaW5pdF9zZXFbXSA9IHsKKwkJeyAgIDMsIDB4MDEgfSwgeyAgIDAsIDB4MDAgfSwgeyAgIDEsIDB4MDEgfSwgeyAgIDQsIDB4MDAgfSwKKwkJeyAgIDUsIDB4MTQgfSwgeyAgIDYsIDB4MjQgfSwgeyAgMTYsIDB4ZDcgfSwgeyAgMTcsIDB4MDAgfSwKKwkJeyAgMTgsIDB4MDAgfSwgeyAgMTksIDB4NTUgfSwgeyAgMjAsIDB4MDEgfSwgeyAgMjEsIDB4NzAgfSwKKwkJeyAgMjIsIDB4MWUgfSwgeyAgMjMsIDB4MjUgfSwgeyAgMjQsIDB4MjUgfSwgeyAgMjUsIDB4MDIgfSwKKwkJeyAgMjYsIDB4MDIgfSwgeyAgMjcsIDB4YTAgfSwgeyAgMzIsIDB4MmYgfSwgeyAgMzMsIDB4MGYgfSwKKwkJeyAgMzQsIDB4MGYgfSwgeyAgMzUsIDB4MGYgfSwgeyAgMzYsIDB4MGYgfSwgeyAgMzcsIDB4MGYgfSwKKwkJeyAgMzgsIDB4MGYgfSwgeyAgMzksIDB4MDAgfSwgeyAgNDAsIDB4MDIgfSwgeyAgNDEsIDB4MDIgfSwKKwkJeyAgNDIsIDB4MDIgfSwgeyAgNDMsIDB4MGYgfSwgeyAgNDQsIDB4MGYgfSwgeyAgNDUsIDB4MGYgfSwKKwkJeyAgNDYsIDB4MGYgfSwgeyAgNDcsIDB4MGYgfSwgeyAgNDgsIDB4MGYgfSwgeyAgNDksIDB4MGYgfSwKKwkJeyAgNTAsIDB4MDAgfSwgeyAgNTEsIDB4MDIgfSwgeyAgNTIsIDB4MDIgfSwgeyAgNTMsIDB4MDIgfSwKKwkJeyAgODAsIDB4MGMgfSwgeyAgODMsIDB4NDIgfSwgeyAgODQsIDB4NDIgfSwgeyAgODUsIDB4NDEgfSwKKwkJeyAgODYsIDB4MTQgfSwgeyAgODksIDB4ODggfSwgeyAgOTAsIDB4MDEgfSwgeyAgOTEsIDB4MDAgfSwKKwkJeyAgOTIsIDB4MDIgfSwgeyAgOTMsIDB4MGMgfSwgeyAgOTQsIDB4MWMgfSwgeyAgOTUsIDB4MjcgfSwKKwkJeyAgOTgsIDB4NDkgfSwgeyAgOTksIDB4MjcgfSwgeyAxMDIsIDB4NzYgfSwgeyAxMDMsIDB4MjcgfSwKKwkJeyAxMTIsIDB4MDEgfSwgeyAxMTMsIDB4MGUgfSwgeyAxMTQsIDB4MDIgfSwgeyAxMTUsIDB4MGMgfSwKKwkJeyAxMTgsIDB4MGMgfSwgeyAxMjEsIDB4MzAgfSwgeyAxMzAsIDB4MDAgfSwgeyAxMzEsIDB4MDAgfSwKKwkJeyAxMzIsIDB4ZmMgfSwgeyAxMzQsIDB4MDAgfSwgeyAxMzYsIDB4MDAgfSwgeyAxMzgsIDB4MDAgfSwKKwkJeyAxMzksIDB4MDAgfSwgeyAxNDAsIDB4MDAgfSwgeyAxNDEsIDB4ZmMgfSwgeyAxNDMsIDB4MDAgfSwKKwkJeyAxNDUsIDB4MDAgfSwgeyAxNDcsIDB4MDAgfSwgeyAxNDgsIDB4MDAgfSwgeyAxNDksIDB4MDAgfSwKKwkJeyAxNTAsIDB4ZmMgfSwgeyAxNTIsIDB4MDAgfSwgeyAxNTQsIDB4MDAgfSwgeyAxNTYsIDB4MDAgfSwKKwkJeyAxNTcsIDB4MDAgfSwKKwl9OworCisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG5sODA0OF9pbml0X3NlcSk7ICsraSkgeworCQlyZXQgPSBubDgwNDhfd3JpdGUobGNkLCBubDgwNDhfaW5pdF9zZXFbaV0uYWRkciwKKwkJCQkgICBubDgwNDhfaW5pdF9zZXFbaV0uZGF0YSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwl1ZGVsYXkoMjApOworCisJcmV0dXJuIG5sODA0OF93cml0ZShsY2QsIDIsIDB4MDApOworfQorCitzdGF0aWMgaW50IG5sODA0OF9kaXNhYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBubDgwNDhfcGFuZWwgKmxjZCA9IHRvX25sODA0OF9kZXZpY2UocGFuZWwpOworCisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGxjZC0+cmVzZXRfZ3BpbywgMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBubDgwNDhfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBubDgwNDhfcGFuZWwgKmxjZCA9IHRvX25sODA0OF9kZXZpY2UocGFuZWwpOworCisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGxjZC0+cmVzZXRfZ3BpbywgMSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIG5sODA0OF9tb2RlID0geworCS8qICBORUMgUElYIENsb2NrIFJhdGluZ3MgTUlOOjIxLjhNSHogVFlQOjIzLjhNSHogTUFYOjI1LjdNSHogKi8KKwkuY2xvY2sJPSAyMzgwMCwKKwkuaGRpc3BsYXkgPSA4MDAsCisJLmhzeW5jX3N0YXJ0ID0gODAwICsgNiwKKwkuaHN5bmNfZW5kID0gODAwICsgNiArIDEsCisJLmh0b3RhbCA9IDgwMCArIDYgKyAxICsgNCwKKwkudmRpc3BsYXkgPSA0ODAsCisJLnZzeW5jX3N0YXJ0ID0gNDgwICsgMywKKwkudnN5bmNfZW5kID0gNDgwICsgMyArIDEsCisJLnZ0b3RhbCA9IDQ4MCArIDMgKyAxICsgNCwKKwkudnJlZnJlc2ggPSA2MCwKKwkudHlwZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwgRFJNX01PREVfVFlQRV9QUkVGRVJSRUQsCisJLmZsYWdzID0gRFJNX01PREVfRkxBR19OSFNZTkMgfCBEUk1fTU9ERV9GTEFHX05WU1lOQywKKwkud2lkdGhfbW0gPSA4OSwKKwkuaGVpZ2h0X21tID0gNTMsCit9OworCitzdGF0aWMgaW50IG5sODA0OF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZubDgwNDhfbW9kZSk7CisJaWYgKCFtb2RlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKKworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbmw4MDQ4X21vZGUud2lkdGhfbW07CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbmw4MDQ4X21vZGUuaGVpZ2h0X21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyA9IERSTV9CVVNfRkxBR19ERV9ISUdICisJCQkJCSAgfCBEUk1fQlVTX0ZMQUdfU1lOQ19TQU1QTEVfTkVHRURHRQorCQkJCQkgIHwgRFJNX0JVU19GTEFHX1BJWERBVEFfU0FNUExFX05FR0VER0U7CisKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGFuZWxfZnVuY3Mgbmw4MDQ4X2Z1bmNzID0geworCS5kaXNhYmxlID0gbmw4MDQ4X2Rpc2FibGUsCisJLmVuYWJsZSA9IG5sODA0OF9lbmFibGUsCisJLmdldF9tb2RlcyA9IG5sODA0OF9nZXRfbW9kZXMsCit9OworCitzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG5sODA0OF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3Qgbmw4MDQ4X3BhbmVsICpsY2QgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCW5sODA0OF93cml0ZShsY2QsIDIsIDB4MDEpOworCW1zbGVlcCg0MCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBubDgwNDhfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3Qgbmw4MDQ4X3BhbmVsICpsY2QgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCS8qIFJlaW5pdGlhbGl6ZSB0aGUgcGFuZWwuICovCisJc3BpX3NldHVwKGxjZC0+c3BpKTsKKwlubDgwNDhfd3JpdGUobGNkLCAyLCAweDAwKTsKKwlubDgwNDhfaW5pdChsY2QpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhubDgwNDhfcG1fb3BzLCBubDgwNDhfc3VzcGVuZCwgbmw4MDQ4X3Jlc3VtZSk7CisKK3N0YXRpYyBpbnQgbmw4MDQ4X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJc3RydWN0IG5sODA0OF9wYW5lbCAqbGNkOworCWludCByZXQ7CisKKwlsY2QgPSBkZXZtX2t6YWxsb2MoJnNwaS0+ZGV2LCBzaXplb2YoKmxjZCksIEdGUF9LRVJORUwpOworCWlmICghbGNkKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXNwaV9zZXRfZHJ2ZGF0YShzcGksIGxjZCk7CisJbGNkLT5zcGkgPSBzcGk7CisKKwlsY2QtPnJlc2V0X2dwaW8gPSBkZXZtX2dwaW9kX2dldCgmc3BpLT5kZXYsICJyZXNldCIsIEdQSU9EX09VVF9MT1cpOworCWlmIChJU19FUlIobGNkLT5yZXNldF9ncGlvKSkgeworCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0byBwYXJzZSByZXNldCBncGlvXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIobGNkLT5yZXNldF9ncGlvKTsKKwl9CisKKwlzcGktPm1vZGUgPSBTUElfTU9ERV8wOworCXNwaS0+Yml0c19wZXJfd29yZCA9IDMyOworCisJcmV0ID0gc3BpX3NldHVwKHNwaSk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2Vycigmc3BpLT5kZXYsICJmYWlsZWQgdG8gc2V0dXAgU1BJOiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXQgPSBubDgwNDhfaW5pdChsY2QpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJZHJtX3BhbmVsX2luaXQoJmxjZC0+cGFuZWwpOworCWxjZC0+cGFuZWwuZGV2ID0gJmxjZC0+c3BpLT5kZXY7CisJbGNkLT5wYW5lbC5mdW5jcyA9ICZubDgwNDhfZnVuY3M7CisKKwlyZXR1cm4gZHJtX3BhbmVsX2FkZCgmbGNkLT5wYW5lbCk7Cit9CisKK3N0YXRpYyBpbnQgbmw4MDQ4X3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBubDgwNDhfcGFuZWwgKmxjZCA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpOworCisJZHJtX3BhbmVsX3JlbW92ZSgmbGNkLT5wYW5lbCk7CisJZHJtX3BhbmVsX2Rpc2FibGUoJmxjZC0+cGFuZWwpOworCWRybV9wYW5lbF91bnByZXBhcmUoJmxjZC0+cGFuZWwpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG5sODA0OF9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAibmVjLG5sODA0OGhsMTEiLCB9LAorCXsgLyogc2VudGluZWwgKi8gfSwKK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG5sODA0OF9vZl9tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBubDgwNDhfZHJpdmVyID0geworCS5wcm9iZQkJPSBubDgwNDhfcHJvYmUsCisJLnJlbW92ZQkJPSBubDgwNDhfcmVtb3ZlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJwYW5lbC1uZWMtbmw4MDQ4aGwxMSIsCisJCS5wbQk9ICZubDgwNDhfcG1fb3BzLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBubDgwNDhfb2ZfbWF0Y2gsCisJfSwKK307CisKK21vZHVsZV9zcGlfZHJpdmVyKG5sODA0OF9kcml2ZXIpOworCitNT0RVTEVfQUxJQVMoInNwaTpuZWMsbmw4MDQ4aGwxMSIpOworTU9EVUxFX0FVVEhPUigiRXJpayBHaWxsaW5nIDxrb25rZXJzQGFuZHJvaWQuY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJORUMtTkw4MDQ4SEwxMSBEcml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50MzkwMTYuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50MzkwMTYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWQxMDYzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jCkBAIC0wLDAgKzEsMzU5IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIE5vdmF0ZWsgTlQzOTAxNiBURlQgTENEIHBhbmVsIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxNywgTWFhcnRlbiB0ZXIgSHV1cm5lIDxtYWFydGVuQHRyZWV3YWxrZXIub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDE5LCBQYXVsIENlcmN1ZWlsIDxwYXVsQGNyYXBvdWlsbG91Lm5ldD4KKyAqLworCisjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvbWVkaWEtYnVzLWZvcm1hdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KKworZW51bSBudDM5MDE2X3JlZ3MgeworCU5UMzkwMTZfUkVHX1NZU1RFTSwKKwlOVDM5MDE2X1JFR19USU1JTkcsCisJTlQzOTAxNl9SRUdfT1AsCisJTlQzOTAxNl9SRUdfREFUQV9JTiwKKwlOVDM5MDE2X1JFR19TUkNfVElNSU5HX0RFTEFZLAorCU5UMzkwMTZfUkVHX0dBVEVfVElNSU5HX0RFTEFZLAorCU5UMzkwMTZfUkVHX1JFU0VSVkVELAorCU5UMzkwMTZfUkVHX0lOSVRJQUxfRlVOQywKKwlOVDM5MDE2X1JFR19DT05UUkFTVCwKKwlOVDM5MDE2X1JFR19CUklHSFRORVNTLAorCU5UMzkwMTZfUkVHX0hVRV9TQVRVUkFUSU9OLAorCU5UMzkwMTZfUkVHX1JCX1NVQkNPTlRSQVNULAorCU5UMzkwMTZfUkVHX1JfU1VCQlJJR0hUTkVTUywKKwlOVDM5MDE2X1JFR19CX1NVQkJSSUdIVE5FU1MsCisJTlQzOTAxNl9SRUdfVkNPTURDLAorCU5UMzkwMTZfUkVHX1ZDT01BQywKKwlOVDM5MDE2X1JFR19WR0FNMiwKKwlOVDM5MDE2X1JFR19WR0FNMzQsCisJTlQzOTAxNl9SRUdfVkdBTTU2LAorCU5UMzkwMTZfUkVHX1ZDT01EQ19UUklNID0gMHgxZSwKKwlOVDM5MDE2X1JFR19ESVNQTEFZX01PREUgPSAweDIwLAorfTsKKworI2RlZmluZSBOVDM5MDE2X1NZU1RFTV9SRVNFVF9OCUJJVCgwKQorI2RlZmluZSBOVDM5MDE2X1NZU1RFTV9TVEFOREJZCUJJVCgxKQorCitzdHJ1Y3QgbnQzOTAxNl9wYW5lbF9pbmZvIHsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBkaXNwbGF5X21vZGU7CisJdTE2IHdpZHRoX21tLCBoZWlnaHRfbW07CisJdTMyIGJ1c19mb3JtYXQsIGJ1c19mbGFnczsKK307CisKK3N0cnVjdCBudDM5MDE2IHsKKwlzdHJ1Y3QgZHJtX3BhbmVsIGRybV9wYW5lbDsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJc3RydWN0IHJlZ21hcCAqbWFwOworCXN0cnVjdCByZWd1bGF0b3IgKnN1cHBseTsKKwljb25zdCBzdHJ1Y3QgbnQzOTAxNl9wYW5lbF9pbmZvICpwYW5lbF9pbmZvOworCisJc3RydWN0IGdwaW9fZGVzYyAqcmVzZXRfZ3BpbzsKKworCXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiYWNrbGlnaHQ7Cit9OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBudDM5MDE2ICp0b19udDM5MDE2KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXJldHVybiBjb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBudDM5MDE2LCBkcm1fcGFuZWwpOworfQorCisjZGVmaW5lIFJWKFJFRywgVkFMKSB7IC5yZWcgPSAoUkVHKSwgLmRlZiA9IChWQUwpLCAuZGVsYXlfdXMgPSAyIH0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnX3NlcXVlbmNlIG50MzkwMTZfcGFuZWxfcmVnc1tdID0geworCVJWKE5UMzkwMTZfUkVHX1NZU1RFTSwgMHgwMCksCisJUlYoTlQzOTAxNl9SRUdfVElNSU5HLCAweDAwKSwKKwlSVihOVDM5MDE2X1JFR19PUCwgMHgwMyksCisJUlYoTlQzOTAxNl9SRUdfREFUQV9JTiwgMHhDQyksCisJUlYoTlQzOTAxNl9SRUdfU1JDX1RJTUlOR19ERUxBWSwgMHg0NiksCisJUlYoTlQzOTAxNl9SRUdfR0FURV9USU1JTkdfREVMQVksIDB4MDUpLAorCVJWKE5UMzkwMTZfUkVHX1JFU0VSVkVELCAweDAwKSwKKwlSVihOVDM5MDE2X1JFR19JTklUSUFMX0ZVTkMsIDB4MDApLAorCVJWKE5UMzkwMTZfUkVHX0NPTlRSQVNULCAweDA4KSwKKwlSVihOVDM5MDE2X1JFR19CUklHSFRORVNTLCAweDQwKSwKKwlSVihOVDM5MDE2X1JFR19IVUVfU0FUVVJBVElPTiwgMHg4OCksCisJUlYoTlQzOTAxNl9SRUdfUkJfU1VCQ09OVFJBU1QsIDB4ODgpLAorCVJWKE5UMzkwMTZfUkVHX1JfU1VCQlJJR0hUTkVTUywgMHgyMCksCisJUlYoTlQzOTAxNl9SRUdfQl9TVUJCUklHSFRORVNTLCAweDIwKSwKKwlSVihOVDM5MDE2X1JFR19WQ09NREMsIDB4NjcpLAorCVJWKE5UMzkwMTZfUkVHX1ZDT01BQywgMHhBNCksCisJUlYoTlQzOTAxNl9SRUdfVkdBTTIsIDB4MDQpLAorCVJWKE5UMzkwMTZfUkVHX1ZHQU0zNCwgMHgyNCksCisJUlYoTlQzOTAxNl9SRUdfVkdBTTU2LCAweDI0KSwKKwlSVihOVDM5MDE2X1JFR19ESVNQTEFZX01PREUsIDB4MDApLAorfTsKKworI3VuZGVmIFJWCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX3JhbmdlIG50MzkwMTZfcmVnbWFwX25vX3Jhbmdlc1tdID0geworCXJlZ21hcF9yZWdfcmFuZ2UoMHgxMywgMHgxRCksCisJcmVnbWFwX3JlZ19yYW5nZSgweDFGLCAweDFGKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2FjY2Vzc190YWJsZSBudDM5MDE2X3JlZ21hcF9hY2Nlc3NfdGFibGUgPSB7CisJLm5vX3JhbmdlcyA9IG50MzkwMTZfcmVnbWFwX25vX3JhbmdlcywKKwkubl9ub19yYW5nZXMgPSBBUlJBWV9TSVpFKG50MzkwMTZfcmVnbWFwX25vX3JhbmdlcyksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbnQzOTAxNl9yZWdtYXBfY29uZmlnID0geworCS5yZWdfYml0cyA9IDYsCisJLnBhZF9iaXRzID0gMiwKKwkudmFsX2JpdHMgPSA4LAorCisJLm1heF9yZWdpc3RlciA9IE5UMzkwMTZfUkVHX0RJU1BMQVlfTU9ERSwKKwkud3JfdGFibGUgPSAmbnQzOTAxNl9yZWdtYXBfYWNjZXNzX3RhYmxlLAorCS53cml0ZV9mbGFnX21hc2sgPSAweDAyLAorCisJLmNhY2hlX3R5cGUgPSBSRUdDQUNIRV9GTEFULAorfTsKKworc3RhdGljIGludCBudDM5MDE2X3ByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqZHJtX3BhbmVsKQoreworCXN0cnVjdCBudDM5MDE2ICpwYW5lbCA9IHRvX250MzkwMTYoZHJtX3BhbmVsKTsKKwlpbnQgZXJyOworCisJZXJyID0gcmVndWxhdG9yX2VuYWJsZShwYW5lbC0+c3VwcGx5KTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIocGFuZWwtPmRldiwgIkZhaWxlZCB0byBlbmFibGUgcG93ZXIgc3VwcGx5OiAlZCIsIGVycik7CisJCXJldHVybiBlcnI7CisJfQorCisJLyoKKwkgKiBSZXNldCB0aGUgTlQzOTAxNi4KKwkgKiBUaGUgZG9jdW1lbnRhdGlvbiBzYXlzIHRoZSByZXNldCBwdWxzZSBzaG91bGQgYmUgYXQgbGVhc3QgNDAgdXMgdG8KKwkgKiBwYXNzIHRoZSBnbGl0Y2ggZmlsdGVyLCBidXQgd2hlbiB0ZXN0aW5nIEkgc2VlIHNvbWUgcmVzZXRzIGZhaWwgYW5kCisJICogc29tZSBzdWNjZWVkIHdoZW4gdXNpbmcgYSA3MCB1cyBkZWxheSwgc28gd2UgdXNlIDEwMCB1cyBpbnN0ZWFkLgorCSAqLworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChwYW5lbC0+cmVzZXRfZ3BpbywgMSk7CisJdXNsZWVwX3JhbmdlKDEwMCwgMTAwMCk7CisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHBhbmVsLT5yZXNldF9ncGlvLCAwKTsKKwl1ZGVsYXkoMik7CisKKwkvKiBJbml0IGFsbCByZWdpc3RlcnMuICovCisJZXJyID0gcmVnbWFwX211bHRpX3JlZ193cml0ZShwYW5lbC0+bWFwLCBudDM5MDE2X3BhbmVsX3JlZ3MsCisJCQkJICAgICBBUlJBWV9TSVpFKG50MzkwMTZfcGFuZWxfcmVncykpOworCWlmIChlcnIpIHsKKwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiRmFpbGVkIHRvIGluaXQgcmVnaXN0ZXJzOiAlZCIsIGVycik7CisJCWdvdG8gZXJyX2Rpc2FibGVfcmVndWxhdG9yOworCX0KKworCXJldHVybiAwOworCitlcnJfZGlzYWJsZV9yZWd1bGF0b3I6CisJcmVndWxhdG9yX2Rpc2FibGUocGFuZWwtPnN1cHBseSk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBudDM5MDE2X3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpkcm1fcGFuZWwpCit7CisJc3RydWN0IG50MzkwMTYgKnBhbmVsID0gdG9fbnQzOTAxNihkcm1fcGFuZWwpOworCisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHBhbmVsLT5yZXNldF9ncGlvLCAxKTsKKworCXJlZ3VsYXRvcl9kaXNhYmxlKHBhbmVsLT5zdXBwbHkpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbnQzOTAxNl9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqZHJtX3BhbmVsKQoreworCXN0cnVjdCBudDM5MDE2ICpwYW5lbCA9IHRvX250MzkwMTYoZHJtX3BhbmVsKTsKKwlpbnQgcmV0OworCisJcmV0ID0gcmVnbWFwX3dyaXRlKHBhbmVsLT5tYXAsIE5UMzkwMTZfUkVHX1NZU1RFTSwKKwkJCSAgIE5UMzkwMTZfU1lTVEVNX1JFU0VUX04gfCBOVDM5MDE2X1NZU1RFTV9TVEFOREJZKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIocGFuZWwtPmRldiwgIlVuYWJsZSB0byBlbmFibGUgcGFuZWw6ICVkIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAocGFuZWwtPmJhY2tsaWdodCkgeworCQkvKiBXYWl0IGZvciB0aGUgcGljdHVyZSB0byBiZSByZWFkeSBiZWZvcmUgZW5hYmxpbmcgYmFja2xpZ2h0ICovCisJCW1zbGVlcCgxNTApOworCisJCXJldCA9IGJhY2tsaWdodF9lbmFibGUocGFuZWwtPmJhY2tsaWdodCk7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBudDM5MDE2X2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqZHJtX3BhbmVsKQoreworCXN0cnVjdCBudDM5MDE2ICpwYW5lbCA9IHRvX250MzkwMTYoZHJtX3BhbmVsKTsKKwlpbnQgZXJyOworCisJYmFja2xpZ2h0X2Rpc2FibGUocGFuZWwtPmJhY2tsaWdodCk7CisKKwllcnIgPSByZWdtYXBfd3JpdGUocGFuZWwtPm1hcCwgTlQzOTAxNl9SRUdfU1lTVEVNLAorCQkJICAgTlQzOTAxNl9TWVNURU1fUkVTRVRfTik7CisJaWYgKGVycikgeworCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJVbmFibGUgdG8gZGlzYWJsZSBwYW5lbDogJWQiLCBlcnIpOworCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG50MzkwMTZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKmRybV9wYW5lbCkKK3sKKwlzdHJ1Y3QgbnQzOTAxNiAqcGFuZWwgPSB0b19udDM5MDE2KGRybV9wYW5lbCk7CisJY29uc3Qgc3RydWN0IG50MzkwMTZfcGFuZWxfaW5mbyAqcGFuZWxfaW5mbyA9IHBhbmVsLT5wYW5lbF9pbmZvOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBkcm1fcGFuZWwtPmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKKworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoZHJtX3BhbmVsLT5kcm0sICZwYW5lbF9pbmZvLT5kaXNwbGF5X21vZGUpOworCWlmICghbW9kZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKKworCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKKworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJwYyA9IDg7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBwYW5lbF9pbmZvLT53aWR0aF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBwYW5lbF9pbmZvLT5oZWlnaHRfbW07CisKKwlkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cygmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8sCisJCQkJCSAmcGFuZWxfaW5mby0+YnVzX2Zvcm1hdCwgMSk7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gcGFuZWxfaW5mby0+YnVzX2ZsYWdzOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIG50MzkwMTZfZnVuY3MgPSB7CisJLnByZXBhcmUJPSBudDM5MDE2X3ByZXBhcmUsCisJLnVucHJlcGFyZQk9IG50MzkwMTZfdW5wcmVwYXJlLAorCS5lbmFibGUJCT0gbnQzOTAxNl9lbmFibGUsCisJLmRpc2FibGUJPSBudDM5MDE2X2Rpc2FibGUsCisJLmdldF9tb2Rlcwk9IG50MzkwMTZfZ2V0X21vZGVzLAorfTsKKworc3RhdGljIGludCBudDM5MDE2X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnNwaS0+ZGV2OworCXN0cnVjdCBudDM5MDE2ICpwYW5lbDsKKwlpbnQgZXJyOworCisJcGFuZWwgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnBhbmVsKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwYW5lbCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwYW5lbC0+ZGV2ID0gZGV2OworCXNwaV9zZXRfZHJ2ZGF0YShzcGksIHBhbmVsKTsKKworCXBhbmVsLT5wYW5lbF9pbmZvID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7CisJaWYgKCFwYW5lbC0+cGFuZWxfaW5mbykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwYW5lbC0+c3VwcGx5ID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldiwgInBvd2VyIik7CisJaWYgKElTX0VSUihwYW5lbC0+c3VwcGx5KSkgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgcG93ZXIgc3VwcGx5Iik7CisJCXJldHVybiBQVFJfRVJSKHBhbmVsLT5zdXBwbHkpOworCX0KKworCXBhbmVsLT5yZXNldF9ncGlvID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicmVzZXQiLCBHUElPRF9PVVRfSElHSCk7CisJaWYgKElTX0VSUihwYW5lbC0+cmVzZXRfZ3BpbykpIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IHJlc2V0IEdQSU8iKTsKKwkJcmV0dXJuIFBUUl9FUlIocGFuZWwtPnJlc2V0X2dwaW8pOworCX0KKworCXNwaS0+Yml0c19wZXJfd29yZCA9IDg7CisJc3BpLT5tb2RlID0gU1BJX01PREVfMyB8IFNQSV8zV0lSRTsKKwllcnIgPSBzcGlfc2V0dXAoc3BpKTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHNldHVwIFNQSSIpOworCQlyZXR1cm4gZXJyOworCX0KKworCXBhbmVsLT5tYXAgPSBkZXZtX3JlZ21hcF9pbml0X3NwaShzcGksICZudDM5MDE2X3JlZ21hcF9jb25maWcpOworCWlmIChJU19FUlIocGFuZWwtPm1hcCkpIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gaW5pdCByZWdtYXAiKTsKKwkJcmV0dXJuIFBUUl9FUlIocGFuZWwtPm1hcCk7CisJfQorCisJcGFuZWwtPmJhY2tsaWdodCA9IGRldm1fb2ZfZmluZF9iYWNrbGlnaHQoZGV2KTsKKwlpZiAoSVNfRVJSKHBhbmVsLT5iYWNrbGlnaHQpKSB7CisJCWVyciA9IFBUUl9FUlIocGFuZWwtPmJhY2tsaWdodCk7CisJCWlmIChlcnIgIT0gLUVQUk9CRV9ERUZFUikKKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBiYWNrbGlnaHQgaGFuZGxlIik7CisJCXJldHVybiBlcnI7CisJfQorCisJZHJtX3BhbmVsX2luaXQoJnBhbmVsLT5kcm1fcGFuZWwpOworCXBhbmVsLT5kcm1fcGFuZWwuZGV2ID0gZGV2OworCXBhbmVsLT5kcm1fcGFuZWwuZnVuY3MgPSAmbnQzOTAxNl9mdW5jczsKKworCWVyciA9IGRybV9wYW5lbF9hZGQoJnBhbmVsLT5kcm1fcGFuZWwpOworCWlmIChlcnIgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHBhbmVsIik7CisJCXJldHVybiBlcnI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbnQzOTAxNl9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgbnQzOTAxNiAqcGFuZWwgPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKKworCWRybV9wYW5lbF9yZW1vdmUoJnBhbmVsLT5kcm1fcGFuZWwpOworCisJbnQzOTAxNl9kaXNhYmxlKCZwYW5lbC0+ZHJtX3BhbmVsKTsKKwludDM5MDE2X3VucHJlcGFyZSgmcGFuZWwtPmRybV9wYW5lbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBudDM5MDE2X3BhbmVsX2luZm8ga2QwMzVnNl9pbmZvID0geworCS5kaXNwbGF5X21vZGUgPSB7CisJCS5jbG9jayA9IDYwMDAsCisJCS5oZGlzcGxheSA9IDMyMCwKKwkJLmhzeW5jX3N0YXJ0ID0gMzIwICsgMTAsCisJCS5oc3luY19lbmQgPSAzMjAgKyAxMCArIDUwLAorCQkuaHRvdGFsID0gMzIwICsgMTAgKyA1MCArIDIwLAorCQkudmRpc3BsYXkgPSAyNDAsCisJCS52c3luY19zdGFydCA9IDI0MCArIDUsCisJCS52c3luY19lbmQgPSAyNDAgKyA1ICsgMSwKKwkJLnZ0b3RhbCA9IDI0MCArIDUgKyAxICsgNCwKKwkJLnZyZWZyZXNoID0gNjAsCisJCS5mbGFncyA9IERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwgRFJNX01PREVfRkxBR19OVlNZTkMsCisJfSwKKwkud2lkdGhfbW0gPSA3MSwKKwkuaGVpZ2h0X21tID0gNTMsCisJLmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0LAorCS5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfUElYREFUQV9ORUdFREdFLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbnQzOTAxNl9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAia2luZ2Rpc3BsYXksa2QwMzVnNi01NG50IiwgLmRhdGEgPSAma2QwMzVnNl9pbmZvIH0sCisJeyAvKiBzZW50aW5lbCAqLyB9Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbnQzOTAxNl9vZl9tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBudDM5MDE2X2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJudDM5MDE2IiwKKwkJLm9mX21hdGNoX3RhYmxlID0gbnQzOTAxNl9vZl9tYXRjaCwKKwl9LAorCS5wcm9iZSA9IG50MzkwMTZfcHJvYmUsCisJLnJlbW92ZSA9IG50MzkwMTZfcmVtb3ZlLAorfTsKKworbW9kdWxlX3NwaV9kcml2ZXIobnQzOTAxNl9kcml2ZXIpOworCitNT0RVTEVfQVVUSE9SKCJNYWFydGVuIHRlciBIdXVybmUgPG1hYXJ0ZW5AdHJlZXdhbGtlci5vcmc+Iik7CitNT0RVTEVfQVVUSE9SKCJQYXVsIENlcmN1ZWlsIDxwYXVsQGNyYXBvdWlsbG91Lm5ldD4iKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMKaW5kZXggMjhjMDYyMC4uYjViMTRhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMKQEAgLTM5OSw3ICszOTksMTMgQEAgc3RhdGljIGludCBycGlfdG91Y2hzY3JlZW5fcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmkyYywKIAogCS8qIExvb2sgdXAgdGhlIERTSSBob3N0LiAgSXQgbmVlZHMgdG8gcHJvYmUgYmVmb3JlIHdlIGRvLiAqLwogCWVuZHBvaW50ID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQoZGV2LT5vZl9ub2RlLCBOVUxMKTsKKwlpZiAoIWVuZHBvaW50KQorCQlyZXR1cm4gLUVOT0RFVjsKKwogCWRzaV9ob3N0X25vZGUgPSBvZl9ncmFwaF9nZXRfcmVtb3RlX3BvcnRfcGFyZW50KGVuZHBvaW50KTsKKwlpZiAoIWRzaV9ob3N0X25vZGUpCisJCWdvdG8gZXJyb3I7CisKIAlob3N0ID0gb2ZfZmluZF9taXBpX2RzaV9ob3N0X2J5X25vZGUoZHNpX2hvc3Rfbm9kZSk7CiAJb2Zfbm9kZV9wdXQoZHNpX2hvc3Rfbm9kZSk7CiAJaWYgKCFob3N0KSB7CkBAIC00MDgsNiArNDE0LDkgQEAgc3RhdGljIGludCBycGlfdG91Y2hzY3JlZW5fcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmkyYywKIAl9CiAKIAlpbmZvLm5vZGUgPSBvZl9ncmFwaF9nZXRfcmVtb3RlX3BvcnQoZW5kcG9pbnQpOworCWlmICghaW5mby5ub2RlKQorCQlnb3RvIGVycm9yOworCiAJb2Zfbm9kZV9wdXQoZW5kcG9pbnQpOwogCiAJdHMtPmRzaSA9IG1pcGlfZHNpX2RldmljZV9yZWdpc3Rlcl9mdWxsKGhvc3QsICZpbmZvKTsKQEAgLTQyOCw2ICs0MzcsMTAgQEAgc3RhdGljIGludCBycGlfdG91Y2hzY3JlZW5fcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmkyYywKIAkJcmV0dXJuIHJldDsKIAogCXJldHVybiAwOworCitlcnJvcjoKKwlvZl9ub2RlX3B1dChlbmRwb2ludCk7CisJcmV0dXJuIC1FTk9ERVY7CiB9CiAKIHN0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhNWQzNzAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmF5ZGl1bS1ybTY3MTkxLmMKQEAgLTAsMCArMSw2NjggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogUmF5ZGl1bSBSTTY3MTkxIE1JUEktRFNJIHBhbmVsIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAyMDE5IE5YUAorICovCisKKyNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorCisjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CisjaW5jbHVkZSA8dmlkZW8vb2ZfdmlkZW9tb2RlLmg+CisjaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2RlLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KKworLyogUGFuZWwgc3BlY2lmaWMgY29sb3ItZm9ybWF0IGJpdHMgKi8KKyNkZWZpbmUgQ09MX0ZNVF8xNkJQUCAweDU1CisjZGVmaW5lIENPTF9GTVRfMThCUFAgMHg2NgorI2RlZmluZSBDT0xfRk1UXzI0QlBQIDB4NzcKKworLyogV3JpdGUgTWFudWZhY3R1cmUgQ29tbWFuZCBTZXQgQ29udHJvbCAqLworI2RlZmluZSBXUk1BVUNDVFIgMHhGRQorCisvKiBNYW51ZmFjdHVyZXIgQ29tbWFuZCBTZXQgcGFnZXMgKENNRDIpICovCitzdHJ1Y3QgY21kX3NldF9lbnRyeSB7CisJdTggY21kOworCXU4IHBhcmFtOworfTsKKworLyoKKyAqIFRoZXJlIGlzIG5vIGRlc2NyaXB0aW9uIGluIHRoZSBSZWZlcmVuY2UgTWFudWFsIGFib3V0IHRoZXNlIGNvbW1hbmRzLgorICogV2UgcmVjZWl2ZWQgdGhlbSBmcm9tIHZlbmRvciwgc28ganVzdCB1c2UgdGhlbSBhcyBpcy4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBjbWRfc2V0X2VudHJ5IG1hbnVmYWN0dXJlcl9jbWRfc2V0W10gPSB7CisJezB4RkUsIDB4MEJ9LAorCXsweDI4LCAweDQwfSwKKwl7MHgyOSwgMHg0Rn0sCisJezB4RkUsIDB4MEV9LAorCXsweDRCLCAweDAwfSwKKwl7MHg0QywgMHgwRn0sCisJezB4NEQsIDB4MjB9LAorCXsweDRFLCAweDQwfSwKKwl7MHg0RiwgMHg2MH0sCisJezB4NTAsIDB4QTB9LAorCXsweDUxLCAweEMwfSwKKwl7MHg1MiwgMHhFMH0sCisJezB4NTMsIDB4RkZ9LAorCXsweEZFLCAweDBEfSwKKwl7MHgxOCwgMHgwOH0sCisJezB4NDIsIDB4MDB9LAorCXsweDA4LCAweDQxfSwKKwl7MHg0NiwgMHgwMn0sCisJezB4NzIsIDB4MDl9LAorCXsweEZFLCAweDBBfSwKKwl7MHgyNCwgMHgxN30sCisJezB4MDQsIDB4MDd9LAorCXsweDFBLCAweDBDfSwKKwl7MHgwRiwgMHg0NH0sCisJezB4RkUsIDB4MDR9LAorCXsweDAwLCAweDBDfSwKKwl7MHgwNSwgMHgwOH0sCisJezB4MDYsIDB4MDh9LAorCXsweDA4LCAweDA4fSwKKwl7MHgwOSwgMHgwOH0sCisJezB4MEEsIDB4RTZ9LAorCXsweDBCLCAweDhDfSwKKwl7MHgxQSwgMHgxMn0sCisJezB4MUUsIDB4RTB9LAorCXsweDI5LCAweDkzfSwKKwl7MHgyQSwgMHg5M30sCisJezB4MkYsIDB4MDJ9LAorCXsweDMxLCAweDAyfSwKKwl7MHgzMywgMHgwNX0sCisJezB4MzcsIDB4MkR9LAorCXsweDM4LCAweDJEfSwKKwl7MHgzQSwgMHgxRX0sCisJezB4M0IsIDB4MUV9LAorCXsweDNELCAweDI3fSwKKwl7MHgzRiwgMHg4MH0sCisJezB4NDAsIDB4NDB9LAorCXsweDQxLCAweEUwfSwKKwl7MHg0RiwgMHgyRn0sCisJezB4NTAsIDB4MUV9LAorCXsweEZFLCAweDA2fSwKKwl7MHgwMCwgMHhDQ30sCisJezB4MDUsIDB4MDV9LAorCXsweDA3LCAweEEyfSwKKwl7MHgwOCwgMHhDQ30sCisJezB4MEQsIDB4MDN9LAorCXsweDBGLCAweEEyfSwKKwl7MHgzMiwgMHhDQ30sCisJezB4MzcsIDB4MDV9LAorCXsweDM5LCAweDgzfSwKKwl7MHgzQSwgMHhDQ30sCisJezB4NDEsIDB4MDR9LAorCXsweDQzLCAweDgzfSwKKwl7MHg0NCwgMHhDQ30sCisJezB4NDksIDB4MDV9LAorCXsweDRCLCAweEEyfSwKKwl7MHg0QywgMHhDQ30sCisJezB4NTEsIDB4MDN9LAorCXsweDUzLCAweEEyfSwKKwl7MHg3NSwgMHhDQ30sCisJezB4N0EsIDB4MDN9LAorCXsweDdDLCAweDgzfSwKKwl7MHg3RCwgMHhDQ30sCisJezB4ODIsIDB4MDJ9LAorCXsweDg0LCAweDgzfSwKKwl7MHg4NSwgMHhFQ30sCisJezB4ODYsIDB4MEZ9LAorCXsweDg3LCAweEZGfSwKKwl7MHg4OCwgMHgwMH0sCisJezB4OEEsIDB4MDJ9LAorCXsweDhDLCAweEEyfSwKKwl7MHg4RCwgMHhFQX0sCisJezB4OEUsIDB4MDF9LAorCXsweDhGLCAweEU4fSwKKwl7MHhGRSwgMHgwNn0sCisJezB4OTAsIDB4MEF9LAorCXsweDkyLCAweDA2fSwKKwl7MHg5MywgMHhBMH0sCisJezB4OTQsIDB4QTh9LAorCXsweDk1LCAweEVDfSwKKwl7MHg5NiwgMHgwRn0sCisJezB4OTcsIDB4RkZ9LAorCXsweDk4LCAweDAwfSwKKwl7MHg5QSwgMHgwMn0sCisJezB4OUMsIDB4QTJ9LAorCXsweEFDLCAweDA0fSwKKwl7MHhGRSwgMHgwNn0sCisJezB4QjEsIDB4MTJ9LAorCXsweEIyLCAweDE3fSwKKwl7MHhCMywgMHgxN30sCisJezB4QjQsIDB4MTd9LAorCXsweEI1LCAweDE3fSwKKwl7MHhCNiwgMHgxMX0sCisJezB4QjcsIDB4MDh9LAorCXsweEI4LCAweDA5fSwKKwl7MHhCOSwgMHgwNn0sCisJezB4QkEsIDB4MDd9LAorCXsweEJCLCAweDE3fSwKKwl7MHhCQywgMHgxN30sCisJezB4QkQsIDB4MTd9LAorCXsweEJFLCAweDE3fSwKKwl7MHhCRiwgMHgxN30sCisJezB4QzAsIDB4MTd9LAorCXsweEMxLCAweDE3fSwKKwl7MHhDMiwgMHgxN30sCisJezB4QzMsIDB4MTd9LAorCXsweEM0LCAweDBGfSwKKwl7MHhDNSwgMHgwRX0sCisJezB4QzYsIDB4MDB9LAorCXsweEM3LCAweDAxfSwKKwl7MHhDOCwgMHgxMH0sCisJezB4RkUsIDB4MDZ9LAorCXsweDk1LCAweEVDfSwKKwl7MHg4RCwgMHhFRX0sCisJezB4NDQsIDB4RUN9LAorCXsweDRDLCAweEVDfSwKKwl7MHgzMiwgMHhFQ30sCisJezB4M0EsIDB4RUN9LAorCXsweDdELCAweEVDfSwKKwl7MHg3NSwgMHhFQ30sCisJezB4MDAsIDB4RUN9LAorCXsweDA4LCAweEVDfSwKKwl7MHg4NSwgMHhFQ30sCisJezB4QTYsIDB4MjF9LAorCXsweEE3LCAweDA1fSwKKwl7MHhBOSwgMHgwNn0sCisJezB4ODIsIDB4MDZ9LAorCXsweDQxLCAweDA2fSwKKwl7MHg3QSwgMHgwN30sCisJezB4MzcsIDB4MDd9LAorCXsweDA1LCAweDA2fSwKKwl7MHg0OSwgMHgwNn0sCisJezB4MEQsIDB4MDR9LAorCXsweDUxLCAweDA0fSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgcmFkX2J1c19mb3JtYXRzW10gPSB7CisJTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNCwKKwlNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDE4LAorCU1FRElBX0JVU19GTVRfUkdCNTY1XzFYMTYsCit9OworCitzdGF0aWMgY29uc3QgdTMyIHJhZF9idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfREVfTE9XIHwKKwkJCQkgRFJNX0JVU19GTEFHX1BJWERBVEFfTkVHRURHRTsKKworc3RydWN0IHJhZF9wYW5lbCB7CisJc3RydWN0IGRybV9wYW5lbCBwYW5lbDsKKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2k7CisKKwlzdHJ1Y3QgZ3Bpb19kZXNjICpyZXNldDsKKwlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmFja2xpZ2h0OworCisJc3RydWN0IHJlZ3VsYXRvcl9idWxrX2RhdGEgKnN1cHBsaWVzOworCXVuc2lnbmVkIGludCBudW1fc3VwcGxpZXM7CisKKwlib29sIHByZXBhcmVkOworCWJvb2wgZW5hYmxlZDsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBkZWZhdWx0X21vZGUgPSB7CisJLmNsb2NrID0gMTMyMDAwLAorCS5oZGlzcGxheSA9IDEwODAsCisJLmhzeW5jX3N0YXJ0ID0gMTA4MCArIDIwLAorCS5oc3luY19lbmQgPSAxMDgwICsgMjAgKyAyLAorCS5odG90YWwgPSAxMDgwICsgMjAgKyAyICsgMzQsCisJLnZkaXNwbGF5ID0gMTkyMCwKKwkudnN5bmNfc3RhcnQgPSAxOTIwICsgMTAsCisJLnZzeW5jX2VuZCA9IDE5MjAgKyAxMCArIDIsCisJLnZ0b3RhbCA9IDE5MjAgKyAxMCArIDIgKyA0LAorCS52cmVmcmVzaCA9IDYwLAorCS53aWR0aF9tbSA9IDY4LAorCS5oZWlnaHRfbW0gPSAxMjEsCisJLmZsYWdzID0gRFJNX01PREVfRkxBR19OSFNZTkMgfAorCQkgRFJNX01PREVfRkxBR19OVlNZTkMsCit9OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCByYWRfcGFuZWwgKnRvX3JhZF9wYW5lbChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3QgcmFkX3BhbmVsLCBwYW5lbCk7Cit9CisKK3N0YXRpYyBpbnQgcmFkX3BhbmVsX3B1c2hfY21kX2xpc3Qoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQoreworCXNpemVfdCBpOworCXNpemVfdCBjb3VudCA9IEFSUkFZX1NJWkUobWFudWZhY3R1cmVyX2NtZF9zZXQpOworCWludCByZXQgPSAwOworCisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJY29uc3Qgc3RydWN0IGNtZF9zZXRfZW50cnkgKmVudHJ5ID0gJm1hbnVmYWN0dXJlcl9jbWRfc2V0W2ldOworCQl1OCBidWZmZXJbMl0gPSB7IGVudHJ5LT5jbWQsIGVudHJ5LT5wYXJhbSB9OworCisJCXJldCA9IG1pcGlfZHNpX2dlbmVyaWNfd3JpdGUoZHNpLCAmYnVmZmVyLCBzaXplb2YoYnVmZmVyKSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gcmV0OworfTsKKworc3RhdGljIGludCBjb2xvcl9mb3JtYXRfZnJvbV9kc2lfZm9ybWF0KGVudW0gbWlwaV9kc2lfcGl4ZWxfZm9ybWF0IGZvcm1hdCkKK3sKKwlzd2l0Y2ggKGZvcm1hdCkgeworCWNhc2UgTUlQSV9EU0lfRk1UX1JHQjU2NToKKwkJcmV0dXJuIENPTF9GTVRfMTZCUFA7CisJY2FzZSBNSVBJX0RTSV9GTVRfUkdCNjY2OgorCWNhc2UgTUlQSV9EU0lfRk1UX1JHQjY2Nl9QQUNLRUQ6CisJCXJldHVybiBDT0xfRk1UXzE4QlBQOworCWNhc2UgTUlQSV9EU0lfRk1UX1JHQjg4ODoKKwkJcmV0dXJuIENPTF9GTVRfMjRCUFA7CisJZGVmYXVsdDoKKwkJcmV0dXJuIENPTF9GTVRfMjRCUFA7IC8qIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCisJfQorfTsKKworc3RhdGljIGludCByYWRfcGFuZWxfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgcmFkX3BhbmVsICpyYWQgPSB0b19yYWRfcGFuZWwocGFuZWwpOworCWludCByZXQ7CisKKwlpZiAocmFkLT5wcmVwYXJlZCkKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSByZWd1bGF0b3JfYnVsa19lbmFibGUocmFkLT5udW1fc3VwcGxpZXMsIHJhZC0+c3VwcGxpZXMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpZiAocmFkLT5yZXNldCkgeworCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocmFkLT5yZXNldCwgMSk7CisJCXVzbGVlcF9yYW5nZSgzMDAwLCA1MDAwKTsKKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHJhZC0+cmVzZXQsIDApOworCQl1c2xlZXBfcmFuZ2UoMTgwMDAsIDIwMDAwKTsKKwl9CisKKwlyYWQtPnByZXBhcmVkID0gdHJ1ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJhZF9wYW5lbF91bnByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IHJhZF9wYW5lbCAqcmFkID0gdG9fcmFkX3BhbmVsKHBhbmVsKTsKKwlpbnQgcmV0OworCisJaWYgKCFyYWQtPnByZXBhcmVkKQorCQlyZXR1cm4gMDsKKworCS8qCisJICogUmlnaHQgYWZ0ZXIgYXNzZXJ0aW5nIHRoZSByZXNldCwgd2UgbmVlZCB0byByZWxlYXNlIGl0LCBzbyB0aGF0IHRoZQorCSAqIHRvdWNoIGRyaXZlciBjYW4gaGF2ZSBhbiBhY3RpdmUgY29ubmVjdGlvbiB3aXRoIHRoZSB0b3VjaCBjb250cm9sbGVyCisJICogZXZlbiBhZnRlciB0aGUgZGlzcGxheSBpcyB0dXJuZWQgb2ZmLgorCSAqLworCWlmIChyYWQtPnJlc2V0KSB7CisJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChyYWQtPnJlc2V0LCAxKTsKKwkJdXNsZWVwX3JhbmdlKDE1MDAwLCAxNzAwMCk7CisJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChyYWQtPnJlc2V0LCAwKTsKKwl9CisKKwlyZXQgPSByZWd1bGF0b3JfYnVsa19kaXNhYmxlKHJhZC0+bnVtX3N1cHBsaWVzLCByYWQtPnN1cHBsaWVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmFkLT5wcmVwYXJlZCA9IGZhbHNlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkX3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgcmFkX3BhbmVsICpyYWQgPSB0b19yYWRfcGFuZWwocGFuZWwpOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSA9IHJhZC0+ZHNpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZkc2ktPmRldjsKKwlpbnQgY29sb3JfZm9ybWF0ID0gY29sb3JfZm9ybWF0X2Zyb21fZHNpX2Zvcm1hdChkc2ktPmZvcm1hdCk7CisJaW50IHJldDsKKworCWlmIChyYWQtPmVuYWJsZWQpCisJCXJldHVybiAwOworCisJZHNpLT5tb2RlX2ZsYWdzIHw9IE1JUElfRFNJX01PREVfTFBNOworCisJcmV0ID0gcmFkX3BhbmVsX3B1c2hfY21kX2xpc3QoZHNpKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBzZW5kIE1DUyAoJWQpXG4iLCByZXQpOworCQlnb3RvIGZhaWw7CisJfQorCisJLyogU2VsZWN0IFVzZXIgQ29tbWFuZCBTZXQgdGFibGUgKENNRDEpICovCisJcmV0ID0gbWlwaV9kc2lfZ2VuZXJpY193cml0ZShkc2ksICh1OFtdKXsgV1JNQVVDQ1RSLCAweDAwIH0sIDIpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGZhaWw7CisKKwkvKiBTb2Z0d2FyZSByZXNldCAqLworCXJldCA9IG1pcGlfZHNpX2Rjc19zb2Z0X3Jlc2V0KGRzaSk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZG8gU29mdHdhcmUgUmVzZXQgKCVkKVxuIiwgcmV0KTsKKwkJZ290byBmYWlsOworCX0KKworCXVzbGVlcF9yYW5nZSgxNTAwMCwgMTcwMDApOworCisJLyogU2V0IERTSSBtb2RlICovCisJcmV0ID0gbWlwaV9kc2lfZ2VuZXJpY193cml0ZShkc2ksICh1OFtdKXsgMHhDMiwgMHgwQiB9LCAyKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBzZXQgRFNJIG1vZGUgKCVkKVxuIiwgcmV0KTsKKwkJZ290byBmYWlsOworCX0KKwkvKiBTZXQgdGVhciBPTiAqLworCXJldCA9IG1pcGlfZHNpX2Rjc19zZXRfdGVhcl9vbihkc2ksIE1JUElfRFNJX0RDU19URUFSX01PREVfVkJMQU5LKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBzZXQgdGVhciBPTiAoJWQpXG4iLCByZXQpOworCQlnb3RvIGZhaWw7CisJfQorCS8qIFNldCB0ZWFyIHNjYW5saW5lICovCisJcmV0ID0gbWlwaV9kc2lfZGNzX3NldF90ZWFyX3NjYW5saW5lKGRzaSwgMHgzODApOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIHNldCB0ZWFyIHNjYW5saW5lICglZClcbiIsIHJldCk7CisJCWdvdG8gZmFpbDsKKwl9CisJLyogU2V0IHBpeGVsIGZvcm1hdCAqLworCXJldCA9IG1pcGlfZHNpX2Rjc19zZXRfcGl4ZWxfZm9ybWF0KGRzaSwgY29sb3JfZm9ybWF0KTsKKwlEUk1fREVWX0RFQlVHX0RSSVZFUihkZXYsICJJbnRlcmZhY2UgY29sb3IgZm9ybWF0IHNldCB0byAweCV4XG4iLAorCQkJICAgICBjb2xvcl9mb3JtYXQpOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIHNldCBwaXhlbCBmb3JtYXQgKCVkKVxuIiwgcmV0KTsKKwkJZ290byBmYWlsOworCX0KKwkvKiBFeGl0IHNsZWVwIG1vZGUgKi8KKwlyZXQgPSBtaXBpX2RzaV9kY3NfZXhpdF9zbGVlcF9tb2RlKGRzaSk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZXhpdCBzbGVlcCBtb2RlICglZClcbiIsIHJldCk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwl1c2xlZXBfcmFuZ2UoNTAwMCwgNzAwMCk7CisKKwlyZXQgPSBtaXBpX2RzaV9kY3Nfc2V0X2Rpc3BsYXlfb24oZHNpKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBzZXQgZGlzcGxheSBPTiAoJWQpXG4iLCByZXQpOworCQlnb3RvIGZhaWw7CisJfQorCisJYmFja2xpZ2h0X2VuYWJsZShyYWQtPmJhY2tsaWdodCk7CisKKwlyYWQtPmVuYWJsZWQgPSB0cnVlOworCisJcmV0dXJuIDA7CisKK2ZhaWw6CisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHJhZC0+cmVzZXQsIDEpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCByYWRfcGFuZWxfZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgcmFkX3BhbmVsICpyYWQgPSB0b19yYWRfcGFuZWwocGFuZWwpOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSA9IHJhZC0+ZHNpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZkc2ktPmRldjsKKwlpbnQgcmV0OworCisJaWYgKCFyYWQtPmVuYWJsZWQpCisJCXJldHVybiAwOworCisJZHNpLT5tb2RlX2ZsYWdzIHw9IE1JUElfRFNJX01PREVfTFBNOworCisJYmFja2xpZ2h0X2Rpc2FibGUocmFkLT5iYWNrbGlnaHQpOworCisJdXNsZWVwX3JhbmdlKDEwMDAwLCAxMjAwMCk7CisKKwlyZXQgPSBtaXBpX2RzaV9kY3Nfc2V0X2Rpc3BsYXlfb2ZmKGRzaSk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gc2V0IGRpc3BsYXkgT0ZGICglZClcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJdXNsZWVwX3JhbmdlKDUwMDAsIDEwMDAwKTsKKworCXJldCA9IG1pcGlfZHNpX2Rjc19lbnRlcl9zbGVlcF9tb2RlKGRzaSk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZW50ZXIgc2xlZXAgbW9kZSAoJWQpXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJhZC0+ZW5hYmxlZCA9IGZhbHNlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKKworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJaWYgKCFtb2RlKSB7CisJCURSTV9ERVZfRVJST1IocGFuZWwtPmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCisJCQkgICAgICBkZWZhdWx0X21vZGUuaGRpc3BsYXksIGRlZmF1bHRfbW9kZS52ZGlzcGxheSwKKwkJCSAgICAgIGRlZmF1bHRfbW9kZS52cmVmcmVzaCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOworCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOworCWRybV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgPSByYWRfYnVzX2ZsYWdzOworCisJZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLAorCQkJCQkgcmFkX2J1c19mb3JtYXRzLAorCQkJCQkgQVJSQVlfU0laRShyYWRfYnVzX2Zvcm1hdHMpKTsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCByYWRfYmxfZ2V0X2JyaWdodG5lc3Moc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsKQoreworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSA9IGJsX2dldF9kYXRhKGJsKTsKKwlzdHJ1Y3QgcmFkX3BhbmVsICpyYWQgPSBtaXBpX2RzaV9nZXRfZHJ2ZGF0YShkc2kpOworCXUxNiBicmlnaHRuZXNzOworCWludCByZXQ7CisKKwlpZiAoIXJhZC0+cHJlcGFyZWQpCisJCXJldHVybiAwOworCisJZHNpLT5tb2RlX2ZsYWdzICY9IH5NSVBJX0RTSV9NT0RFX0xQTTsKKworCXJldCA9IG1pcGlfZHNpX2Rjc19nZXRfZGlzcGxheV9icmlnaHRuZXNzKGRzaSwgJmJyaWdodG5lc3MpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJYmwtPnByb3BzLmJyaWdodG5lc3MgPSBicmlnaHRuZXNzOworCisJcmV0dXJuIGJyaWdodG5lc3MgJiAweGZmOworfQorCitzdGF0aWMgaW50IHJhZF9ibF91cGRhdGVfc3RhdHVzKHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpibCkKK3sKKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kgPSBibF9nZXRfZGF0YShibCk7CisJc3RydWN0IHJhZF9wYW5lbCAqcmFkID0gbWlwaV9kc2lfZ2V0X2RydmRhdGEoZHNpKTsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghcmFkLT5wcmVwYXJlZCkKKwkJcmV0dXJuIDA7CisKKwlkc2ktPm1vZGVfZmxhZ3MgJj0gfk1JUElfRFNJX01PREVfTFBNOworCisJcmV0ID0gbWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5X2JyaWdodG5lc3MoZHNpLCBibC0+cHJvcHMuYnJpZ2h0bmVzcyk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBiYWNrbGlnaHRfb3BzIHJhZF9ibF9vcHMgPSB7CisJLnVwZGF0ZV9zdGF0dXMgPSByYWRfYmxfdXBkYXRlX3N0YXR1cywKKwkuZ2V0X2JyaWdodG5lc3MgPSByYWRfYmxfZ2V0X2JyaWdodG5lc3MsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wYW5lbF9mdW5jcyByYWRfcGFuZWxfZnVuY3MgPSB7CisJLnByZXBhcmUgPSByYWRfcGFuZWxfcHJlcGFyZSwKKwkudW5wcmVwYXJlID0gcmFkX3BhbmVsX3VucHJlcGFyZSwKKwkuZW5hYmxlID0gcmFkX3BhbmVsX2VuYWJsZSwKKwkuZGlzYWJsZSA9IHJhZF9wYW5lbF9kaXNhYmxlLAorCS5nZXRfbW9kZXMgPSByYWRfcGFuZWxfZ2V0X21vZGVzLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByYWRfc3VwcGx5X25hbWVzW10gPSB7CisJInYzcDMiLAorCSJ2MXA4IiwKK307CisKK3N0YXRpYyBpbnQgcmFkX2luaXRfcmVndWxhdG9ycyhzdHJ1Y3QgcmFkX3BhbmVsICpyYWQpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnJhZC0+ZHNpLT5kZXY7CisJaW50IGk7CisKKwlyYWQtPm51bV9zdXBwbGllcyA9IEFSUkFZX1NJWkUocmFkX3N1cHBseV9uYW1lcyk7CisJcmFkLT5zdXBwbGllcyA9IGRldm1fa2NhbGxvYyhkZXYsIHJhZC0+bnVtX3N1cHBsaWVzLAorCQkJCSAgICAgc2l6ZW9mKCpyYWQtPnN1cHBsaWVzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFyYWQtPnN1cHBsaWVzKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAoaSA9IDA7IGkgPCByYWQtPm51bV9zdXBwbGllczsgaSsrKQorCQlyYWQtPnN1cHBsaWVzW2ldLnN1cHBseSA9IHJhZF9zdXBwbHlfbmFtZXNbaV07CisKKwlyZXR1cm4gZGV2bV9yZWd1bGF0b3JfYnVsa19nZXQoZGV2LCByYWQtPm51bV9zdXBwbGllcywgcmFkLT5zdXBwbGllcyk7Cit9OworCitzdGF0aWMgaW50IHJhZF9wYW5lbF9wcm9iZShzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJmRzaS0+ZGV2OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBkZXYtPm9mX25vZGU7CisJc3RydWN0IHJhZF9wYW5lbCAqcGFuZWw7CisJc3RydWN0IGJhY2tsaWdodF9wcm9wZXJ0aWVzIGJsX3Byb3BzOworCWludCByZXQ7CisJdTMyIHZpZGVvX21vZGU7CisKKwlwYW5lbCA9IGRldm1fa3phbGxvYygmZHNpLT5kZXYsIHNpemVvZigqcGFuZWwpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXBhbmVsKQorCQlyZXR1cm4gLUVOT01FTTsKKworCW1pcGlfZHNpX3NldF9kcnZkYXRhKGRzaSwgcGFuZWwpOworCisJcGFuZWwtPmRzaSA9IGRzaTsKKworCWRzaS0+Zm9ybWF0ID0gTUlQSV9EU0lfRk1UX1JHQjg4ODsKKwlkc2ktPm1vZGVfZmxhZ3MgPSAgTUlQSV9EU0lfTU9ERV9WSURFT19IU0UgfCBNSVBJX0RTSV9NT0RFX1ZJREVPIHwKKwkJCSAgIE1JUElfRFNJX0NMT0NLX05PTl9DT05USU5VT1VTOworCisJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJ2aWRlby1tb2RlIiwgJnZpZGVvX21vZGUpOworCWlmICghcmV0KSB7CisJCXN3aXRjaCAodmlkZW9fbW9kZSkgeworCQljYXNlIDA6CisJCQkvKiBidXJzdCBtb2RlICovCisJCQlkc2ktPm1vZGVfZmxhZ3MgfD0gTUlQSV9EU0lfTU9ERV9WSURFT19CVVJTVDsKKwkJCWJyZWFrOworCQljYXNlIDE6CisJCQkvKiBub24tYnVyc3QgbW9kZSB3aXRoIHN5bmMgZXZlbnQgKi8KKwkJCWJyZWFrOworCQljYXNlIDI6CisJCQkvKiBub24tYnVyc3QgbW9kZSB3aXRoIHN5bmMgcHVsc2UgKi8KKwkJCWRzaS0+bW9kZV9mbGFncyB8PSBNSVBJX0RTSV9NT0RFX1ZJREVPX1NZTkNfUFVMU0U7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWRldl93YXJuKGRldiwgImludmFsaWQgdmlkZW8gbW9kZSAlZFxuIiwgdmlkZW9fbW9kZSk7CisJCQlicmVhazsKKwkJfQorCX0KKworCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAiZHNpLWxhbmVzIiwgJmRzaS0+bGFuZXMpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IGRzaS1sYW5lcyBwcm9wZXJ0eSAoJWQpXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXBhbmVsLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0xPVyk7CisJaWYgKElTX0VSUihwYW5lbC0+cmVzZXQpKQorCQlyZXR1cm4gUFRSX0VSUihwYW5lbC0+cmVzZXQpOworCisJbWVtc2V0KCZibF9wcm9wcywgMCwgc2l6ZW9mKGJsX3Byb3BzKSk7CisJYmxfcHJvcHMudHlwZSA9IEJBQ0tMSUdIVF9SQVc7CisJYmxfcHJvcHMuYnJpZ2h0bmVzcyA9IDI1NTsKKwlibF9wcm9wcy5tYXhfYnJpZ2h0bmVzcyA9IDI1NTsKKworCXBhbmVsLT5iYWNrbGlnaHQgPSBkZXZtX2JhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoZGV2LCBkZXZfbmFtZShkZXYpLAorCQkJCQkJCSAgZGV2LCBkc2ksICZyYWRfYmxfb3BzLAorCQkJCQkJCSAgJmJsX3Byb3BzKTsKKwlpZiAoSVNfRVJSKHBhbmVsLT5iYWNrbGlnaHQpKSB7CisJCXJldCA9IFBUUl9FUlIocGFuZWwtPmJhY2tsaWdodCk7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIGJhY2tsaWdodCAoJWQpXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IHJhZF9pbml0X3JlZ3VsYXRvcnMocGFuZWwpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlkcm1fcGFuZWxfaW5pdCgmcGFuZWwtPnBhbmVsKTsKKwlwYW5lbC0+cGFuZWwuZnVuY3MgPSAmcmFkX3BhbmVsX2Z1bmNzOworCXBhbmVsLT5wYW5lbC5kZXYgPSBkZXY7CisJZGV2X3NldF9kcnZkYXRhKGRldiwgcGFuZWwpOworCisJcmV0ID0gZHJtX3BhbmVsX2FkZCgmcGFuZWwtPnBhbmVsKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gbWlwaV9kc2lfYXR0YWNoKGRzaSk7CisJaWYgKHJldCkKKwkJZHJtX3BhbmVsX3JlbW92ZSgmcGFuZWwtPnBhbmVsKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcmFkX3BhbmVsX3JlbW92ZShzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kpCit7CisJc3RydWN0IHJhZF9wYW5lbCAqcmFkID0gbWlwaV9kc2lfZ2V0X2RydmRhdGEoZHNpKTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmZHNpLT5kZXY7CisJaW50IHJldDsKKworCXJldCA9IG1pcGlfZHNpX2RldGFjaChkc2kpOworCWlmIChyZXQpCisJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGRldGFjaCBmcm9tIGhvc3QgKCVkKVxuIiwKKwkJCSAgICAgIHJldCk7CisKKwlkcm1fcGFuZWxfcmVtb3ZlKCZyYWQtPnBhbmVsKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCByYWRfcGFuZWxfc2h1dGRvd24oc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQoreworCXN0cnVjdCByYWRfcGFuZWwgKnJhZCA9IG1pcGlfZHNpX2dldF9kcnZkYXRhKGRzaSk7CisKKwlyYWRfcGFuZWxfZGlzYWJsZSgmcmFkLT5wYW5lbCk7CisJcmFkX3BhbmVsX3VucHJlcGFyZSgmcmFkLT5wYW5lbCk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJhZF9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAicmF5ZGl1bSxybTY3MTkxIiwgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByYWRfb2ZfbWF0Y2gpOworCitzdGF0aWMgc3RydWN0IG1pcGlfZHNpX2RyaXZlciByYWRfcGFuZWxfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gInBhbmVsLXJheWRpdW0tcm02NzE5MSIsCisJCS5vZl9tYXRjaF90YWJsZSA9IHJhZF9vZl9tYXRjaCwKKwl9LAorCS5wcm9iZSA9IHJhZF9wYW5lbF9wcm9iZSwKKwkucmVtb3ZlID0gcmFkX3BhbmVsX3JlbW92ZSwKKwkuc2h1dGRvd24gPSByYWRfcGFuZWxfc2h1dGRvd24sCit9OworbW9kdWxlX21pcGlfZHNpX2RyaXZlcihyYWRfcGFuZWxfZHJpdmVyKTsKKworTU9EVUxFX0FVVEhPUigiUm9iZXJ0IENoaXJhcyA8cm9iZXJ0LmNoaXJhc0BueHAuY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJEUk0gRHJpdmVyIGZvciBSYXlkaXVtIFJNNjcxOTEgTUlQSSBEU0kgcGFuZWwiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvY2t0ZWNoLWpoMDU3bjAwOTAwLmMKaW5kZXggNmRjYjY5Mi4uYjkxMDk5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvY2t0ZWNoLWpoMDU3bjAwOTAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvY2t0ZWNoLWpoMDU3bjAwOTAwLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgvbWVkaWEtYnVzLWZvcm1hdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgogI2luY2x1ZGUgPHZpZGVvL2Rpc3BsYXlfdGltaW5nLmg+CiAjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CiAKQEAgLTMzLDYgKzM0LDcgQEAKICNkZWZpbmUgU1Q3NzAzX0NNRF9TRVRFWFRDCSAweEI5CiAjZGVmaW5lIFNUNzcwM19DTURfU0VUTUlQSQkgMHhCQQogI2RlZmluZSBTVDc3MDNfQ01EX1NFVFZEQwkgMHhCQworI2RlZmluZSBTVDc3MDNfQ01EX1VOS05PV04wCSAweEJGCiAjZGVmaW5lIFNUNzcwM19DTURfU0VUU0NSCSAweEMwCiAjZGVmaW5lIFNUNzcwM19DTURfU0VUUE9XRVIJIDB4QzEKICNkZWZpbmUgU1Q3NzAzX0NNRF9TRVRQQU5FTAkgMHhDQwpAQCAtNDYsNiArNDgsOCBAQCBzdHJ1Y3QgamgwNTduIHsKIAlzdHJ1Y3QgZHJtX3BhbmVsIHBhbmVsOwogCXN0cnVjdCBncGlvX2Rlc2MgKnJlc2V0X2dwaW87CiAJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJhY2tsaWdodDsKKwlzdHJ1Y3QgcmVndWxhdG9yICp2Y2M7CisJc3RydWN0IHJlZ3VsYXRvciAqaW92Y2M7CiAJYm9vbCBwcmVwYXJlZDsKIAogCXN0cnVjdCBkZW50cnkgKmRlYnVnZnM7CkBAIC05NCw3ICs5OCw3IEBAIHN0YXRpYyBpbnQgamgwNTduX2luaXRfc2VxdWVuY2Uoc3RydWN0IGpoMDU3biAqY3R4KQogCW1zbGVlcCgyMCk7CiAKIAlkc2lfZ2VuZXJpY193cml0ZV9zZXEoZHNpLCBTVDc3MDNfQ01EX1NFVFZDT00sIDB4M0YsIDB4M0YpOwotCWRzaV9nZW5lcmljX3dyaXRlX3NlcShkc2ksIDB4QkYsIDB4MDIsIDB4MTEsIDB4MDApOworCWRzaV9nZW5lcmljX3dyaXRlX3NlcShkc2ksIFNUNzcwM19DTURfVU5LTk9XTjAsIDB4MDIsIDB4MTEsIDB4MDApOwogCWRzaV9nZW5lcmljX3dyaXRlX3NlcShkc2ksIFNUNzcwM19DTURfU0VUR0lQMSwKIAkJCSAgICAgIDB4ODIsIDB4MTAsIDB4MDYsIDB4MDUsIDB4OUUsIDB4MEEsIDB4QTUsIDB4MTIsCiAJCQkgICAgICAweDMxLCAweDIzLCAweDM3LCAweDgzLCAweDA0LCAweEJDLCAweDI3LCAweDM4LApAQCAtMTIzLDcgKzEyNyw3IEBAIHN0YXRpYyBpbnQgamgwNTduX2luaXRfc2VxdWVuY2Uoc3RydWN0IGpoMDU3biAqY3R4KQogCiAJcmV0ID0gbWlwaV9kc2lfZGNzX2V4aXRfc2xlZXBfbW9kZShkc2kpOwogCWlmIChyZXQgPCAwKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGV4aXQgc2xlZXAgbW9kZVxuIik7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGV4aXQgc2xlZXAgbW9kZTogJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7CiAJfQogCS8qIFBhbmVsIGlzIG9wZXJhdGlvbmFsIDEyMCBtc2VjIGFmdGVyIHJlc2V0ICovCkBAIC0xMzksNiArMTQzLDE0IEBAIHN0YXRpYyBpbnQgamgwNTduX2luaXRfc2VxdWVuY2Uoc3RydWN0IGpoMDU3biAqY3R4KQogc3RhdGljIGludCBqaDA1N25fZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogewogCXN0cnVjdCBqaDA1N24gKmN0eCA9IHBhbmVsX3RvX2poMDU3bihwYW5lbCk7CisJaW50IHJldDsKKworCXJldCA9IGpoMDU3bl9pbml0X3NlcXVlbmNlKGN0eCk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFVl9FUlJPUihjdHgtPmRldiwgIlBhbmVsIGluaXQgc2VxdWVuY2UgZmFpbGVkOiAlZFxuIiwKKwkJCSAgICAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQogCiAJcmV0dXJuIGJhY2tsaWdodF9lbmFibGUoY3R4LT5iYWNrbGlnaHQpOwogfQpAQCAtMTQ2LDE5ICsxNTgsMjEgQEAgc3RhdGljIGludCBqaDA1N25fZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogc3RhdGljIGludCBqaDA1N25fZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHsKIAlzdHJ1Y3QgamgwNTduICpjdHggPSBwYW5lbF90b19qaDA1N24ocGFuZWwpOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSA9IHRvX21pcGlfZHNpX2RldmljZShjdHgtPmRldik7CiAKLQlyZXR1cm4gYmFja2xpZ2h0X2Rpc2FibGUoY3R4LT5iYWNrbGlnaHQpOworCWJhY2tsaWdodF9kaXNhYmxlKGN0eC0+YmFja2xpZ2h0KTsKKwlyZXR1cm4gbWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5X29mZihkc2kpOwogfQogCiBzdGF0aWMgaW50IGpoMDU3bl91bnByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiB7CiAJc3RydWN0IGpoMDU3biAqY3R4ID0gcGFuZWxfdG9famgwNTduKHBhbmVsKTsKLQlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kgPSB0b19taXBpX2RzaV9kZXZpY2UoY3R4LT5kZXYpOwogCiAJaWYgKCFjdHgtPnByZXBhcmVkKQogCQlyZXR1cm4gMDsKIAotCW1pcGlfZHNpX2Rjc19zZXRfZGlzcGxheV9vZmYoZHNpKTsKKwlyZWd1bGF0b3JfZGlzYWJsZShjdHgtPmlvdmNjKTsKKwlyZWd1bGF0b3JfZGlzYWJsZShjdHgtPnZjYyk7CiAJY3R4LT5wcmVwYXJlZCA9IGZhbHNlOwogCiAJcmV0dXJuIDA7CkBAIC0xNzMsMjEgKzE4NywzMSBAQCBzdGF0aWMgaW50IGpoMDU3bl9wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCQlyZXR1cm4gMDsKIAogCURSTV9ERVZfREVCVUdfRFJJVkVSKGN0eC0+ZGV2LCAiUmVzZXR0aW5nIHRoZSBwYW5lbFxuIik7CisJcmV0ID0gcmVndWxhdG9yX2VuYWJsZShjdHgtPnZjYyk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFVl9FUlJPUihjdHgtPmRldiwKKwkJCSAgICAgICJGYWlsZWQgdG8gZW5hYmxlIHZjYyBzdXBwbHk6ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKwlyZXQgPSByZWd1bGF0b3JfZW5hYmxlKGN0eC0+aW92Y2MpOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9ERVZfRVJST1IoY3R4LT5kZXYsCisJCQkgICAgICAiRmFpbGVkIHRvIGVuYWJsZSBpb3ZjYyBzdXBwbHk6ICVkXG4iLCByZXQpOworCQlnb3RvIGRpc2FibGVfdmNjOworCX0KKwogCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChjdHgtPnJlc2V0X2dwaW8sIDEpOwogCXVzbGVlcF9yYW5nZSgyMCwgNDApOwogCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChjdHgtPnJlc2V0X2dwaW8sIDApOwogCW1zbGVlcCgyMCk7CiAKLQlyZXQgPSBqaDA1N25faW5pdF9zZXF1ZW5jZShjdHgpOwotCWlmIChyZXQgPCAwKSB7Ci0JCURSTV9ERVZfRVJST1IoY3R4LT5kZXYsICJQYW5lbCBpbml0IHNlcXVlbmNlIGZhaWxlZDogJWRcbiIsCi0JCQkgICAgICByZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KLQogCWN0eC0+cHJlcGFyZWQgPSB0cnVlOwogCiAJcmV0dXJuIDA7CisKK2Rpc2FibGVfdmNjOgorCXJlZ3VsYXRvcl9kaXNhYmxlKGN0eC0+dmNjKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVsdF9tb2RlID0gewpAQCAtMzAwLDYgKzMyNCwyNSBAQCBzdGF0aWMgaW50IGpoMDU3bl9wcm9iZShzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kpCiAJaWYgKElTX0VSUihjdHgtPmJhY2tsaWdodCkpCiAJCXJldHVybiBQVFJfRVJSKGN0eC0+YmFja2xpZ2h0KTsKIAorCWN0eC0+dmNjID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldiwgInZjYyIpOworCWlmIChJU19FUlIoY3R4LT52Y2MpKSB7CisJCXJldCA9IFBUUl9FUlIoY3R4LT52Y2MpOworCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCisJCQlEUk1fREVWX0VSUk9SKGRldiwKKwkJCQkgICAgICAiRmFpbGVkIHRvIHJlcXVlc3QgdmNjIHJlZ3VsYXRvcjogJWRcbiIsCisJCQkJICAgICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisJY3R4LT5pb3ZjYyA9IGRldm1fcmVndWxhdG9yX2dldChkZXYsICJpb3ZjYyIpOworCWlmIChJU19FUlIoY3R4LT5pb3ZjYykpIHsKKwkJcmV0ID0gUFRSX0VSUihjdHgtPmlvdmNjKTsKKwkJaWYgKHJldCAhPSAtRVBST0JFX0RFRkVSKQorCQkJRFJNX0RFVl9FUlJPUihkZXYsCisJCQkJICAgICAgIkZhaWxlZCB0byByZXF1ZXN0IGlvdmNjIHJlZ3VsYXRvcjogJWRcbiIsCisJCQkJICAgICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKIAlkcm1fcGFuZWxfaW5pdCgmY3R4LT5wYW5lbCk7CiAJY3R4LT5wYW5lbC5kZXYgPSBkZXY7CiAJY3R4LT5wYW5lbC5mdW5jcyA9ICZqaDA1N25fZHJtX2Z1bmNzOwpAQCAtMzA4LDcgKzM1MSw5IEBAIHN0YXRpYyBpbnQgamgwNTduX3Byb2JlKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkKIAogCXJldCA9IG1pcGlfZHNpX2F0dGFjaChkc2kpOwogCWlmIChyZXQgPCAwKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAibWlwaV9kc2lfYXR0YWNoIGZhaWxlZC4gSXMgaG9zdCByZWFkeT9cbiIpOworCQlEUk1fREVWX0VSUk9SKGRldiwKKwkJCSAgICAgICJtaXBpX2RzaV9hdHRhY2ggZmFpbGVkICglZCkuIElzIGhvc3QgcmVhZHk/XG4iLAorCQkJICAgICAgcmV0KTsKIAkJZHJtX3BhbmVsX3JlbW92ZSgmY3R4LT5wYW5lbCk7CiAJCXJldHVybiByZXQ7CiAJfQpAQCAtMzI3LDEyICszNzIsMTIgQEAgc3RhdGljIHZvaWQgamgwNTduX3NodXRkb3duKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkKIAlzdHJ1Y3QgamgwNTduICpjdHggPSBtaXBpX2RzaV9nZXRfZHJ2ZGF0YShkc2kpOwogCWludCByZXQ7CiAKLQlyZXQgPSBqaDA1N25fdW5wcmVwYXJlKCZjdHgtPnBhbmVsKTsKKwlyZXQgPSBkcm1fcGFuZWxfdW5wcmVwYXJlKCZjdHgtPnBhbmVsKTsKIAlpZiAocmV0IDwgMCkKIAkJRFJNX0RFVl9FUlJPUigmZHNpLT5kZXYsICJGYWlsZWQgdG8gdW5wcmVwYXJlIHBhbmVsOiAlZFxuIiwKIAkJCSAgICAgIHJldCk7CiAKLQlyZXQgPSBqaDA1N25fZGlzYWJsZSgmY3R4LT5wYW5lbCk7CisJcmV0ID0gZHJtX3BhbmVsX2Rpc2FibGUoJmN0eC0+cGFuZWwpOwogCWlmIChyZXQgPCAwKQogCQlEUk1fREVWX0VSUk9SKCZkc2ktPmRldiwgIkZhaWxlZCB0byBkaXNhYmxlIHBhbmVsOiAlZFxuIiwKIAkJCSAgICAgIHJldCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHMwMzd2N2R3MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2Y2Q5YTIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHMwMzd2N2R3MDEuYwpAQCAtMCwwICsxLDIyNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBTaGFycCBMUzAzN1Y3RFcwMSBMQ0QgUGFuZWwgRHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZAorICoKKyAqIEJhc2VkIG9uIHRoZSBvbWFwZHJtLXNwZWNpZmljIHBhbmVsLXNoYXJwLWxzMDM3djdkdzAxIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQKKyAqIEF1dGhvcjogVG9taSBWYWxrZWluZW4gPHRvbWkudmFsa2VpbmVuQHRpLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fY29ubmVjdG9yLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KKworc3RydWN0IGxzMDM3djdkdzAxX3BhbmVsIHsKKwlzdHJ1Y3QgZHJtX3BhbmVsIHBhbmVsOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CisKKwlzdHJ1Y3QgcmVndWxhdG9yICp2ZGQ7CisJc3RydWN0IGdwaW9fZGVzYyAqcmVzYl9ncGlvOwkvKiBsb3cgPSByZXNldCBhY3RpdmUgbWluIDIwIHVzICovCisJc3RydWN0IGdwaW9fZGVzYyAqaW5pX2dwaW87CS8qIGhpZ2ggPSBwb3dlciBvbiAqLworCXN0cnVjdCBncGlvX2Rlc2MgKm1vX2dwaW87CS8qIGxvdyA9IDQ4MHg2NDAsIGhpZ2ggPSAyNDB4MzIwICovCisJc3RydWN0IGdwaW9fZGVzYyAqbHJfZ3BpbzsJLyogaGlnaCA9IGNvbnZlbnRpb25hbCBob3Jpem9udGFsIHNjYW5uaW5nICovCisJc3RydWN0IGdwaW9fZGVzYyAqdWRfZ3BpbzsJLyogaGlnaCA9IGNvbnZlbnRpb25hbCB2ZXJ0aWNhbCBzY2FubmluZyAqLworfTsKKworI2RlZmluZSB0b19sczAzN3Y3ZHcwMV9kZXZpY2UocCkgXAorCWNvbnRhaW5lcl9vZihwLCBzdHJ1Y3QgbHMwMzd2N2R3MDFfcGFuZWwsIHBhbmVsKQorCitzdGF0aWMgaW50IGxzMDM3djdkdzAxX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGxzMDM3djdkdzAxX3BhbmVsICpsY2QgPSB0b19sczAzN3Y3ZHcwMV9kZXZpY2UocGFuZWwpOworCisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGxjZC0+aW5pX2dwaW8sIDApOworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChsY2QtPnJlc2JfZ3BpbywgMCk7CisKKwkvKiBXYWl0IGF0IGxlYXN0IDUgdnN5bmNzIGFmdGVyIGRpc2FibGluZyB0aGUgTENELiAqLworCW1zbGVlcCgxMDApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbHMwMzd2N2R3MDFfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBsczAzN3Y3ZHcwMV9wYW5lbCAqbGNkID0gdG9fbHMwMzd2N2R3MDFfZGV2aWNlKHBhbmVsKTsKKworCXJlZ3VsYXRvcl9kaXNhYmxlKGxjZC0+dmRkKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsczAzN3Y3ZHcwMV9wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBsczAzN3Y3ZHcwMV9wYW5lbCAqbGNkID0gdG9fbHMwMzd2N2R3MDFfZGV2aWNlKHBhbmVsKTsKKwlpbnQgcmV0OworCisJcmV0ID0gcmVndWxhdG9yX2VuYWJsZShsY2QtPnZkZCk7CisJaWYgKHJldCA8IDApCisJCWRldl9lcnIoJmxjZC0+cGRldi0+ZGV2LCAiJXM6IGZhaWxlZCB0byBlbmFibGUgcmVndWxhdG9yXG4iLAorCQkJX19mdW5jX18pOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBsczAzN3Y3ZHcwMV9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGxzMDM3djdkdzAxX3BhbmVsICpsY2QgPSB0b19sczAzN3Y3ZHcwMV9kZXZpY2UocGFuZWwpOworCisJLyogV2FpdCBjb3VwbGUgb2YgdnN5bmNzIGJlZm9yZSBlbmFibGluZyB0aGUgTENELiAqLworCW1zbGVlcCg1MCk7CisKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAobGNkLT5yZXNiX2dwaW8sIDEpOworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChsY2QtPmluaV9ncGlvLCAxKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbHMwMzd2N2R3MDFfbW9kZSA9IHsKKwkuY2xvY2sgPSAxOTIwMCwKKwkuaGRpc3BsYXkgPSA0ODAsCisJLmhzeW5jX3N0YXJ0ID0gNDgwICsgMSwKKwkuaHN5bmNfZW5kID0gNDgwICsgMSArIDIsCisJLmh0b3RhbCA9IDQ4MCArIDEgKyAyICsgMjgsCisJLnZkaXNwbGF5ID0gNjQwLAorCS52c3luY19zdGFydCA9IDY0MCArIDEsCisJLnZzeW5jX2VuZCA9IDY0MCArIDEgKyAxLAorCS52dG90YWwgPSA2NDAgKyAxICsgMSArIDEsCisJLnZyZWZyZXNoID0gNTgsCisJLnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVELAorCS5mbGFncyA9IERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwgRFJNX01PREVfRkxBR19OVlNZTkMsCisJLndpZHRoX21tID0gNTYsCisJLmhlaWdodF9tbSA9IDc1LAorfTsKKworc3RhdGljIGludCBsczAzN3Y3ZHcwMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZsczAzN3Y3ZHcwMV9tb2RlKTsKKwlpZiAoIW1vZGUpCisJCXJldHVybiAtRU5PTUVNOworCisJZHJtX21vZGVfc2V0X25hbWUobW9kZSk7CisJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOworCisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBsczAzN3Y3ZHcwMV9tb2RlLndpZHRoX21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IGxzMDM3djdkdzAxX21vZGUuaGVpZ2h0X21tOworCS8qCisJICogRklYTUU6IEFjY29yZGluZyB0byB0aGUgZGF0YXNoZWV0IHBpeGVsIGRhdGEgaXMgc2FtcGxlZCBvbiB0aGUKKwkgKiByaXNpbmcgZWRnZSBvZiB0aGUgY2xvY2ssIGJ1dCB0aGUgY29kZSBydW5uaW5nIG9uIHRoZSBTRFAzNDMwCisJICogaW5kaWNhdGVzIHNhbXBsaW5nIG9uIHRoZSBuZWdhdGl2ZSBlZGdlLiBUaGlzIHNob3VsZCBiZSB0ZXN0ZWQgb24gYQorCSAqIHJlYWwgZGV2aWNlLgorCSAqLworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyA9IERSTV9CVVNfRkxBR19ERV9ISUdICisJCQkJCSAgfCBEUk1fQlVTX0ZMQUdfU1lOQ19TQU1QTEVfUE9TRURHRQorCQkJCQkgIHwgRFJNX0JVU19GTEFHX1BJWERBVEFfU0FNUExFX05FR0VER0U7CisKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGFuZWxfZnVuY3MgbHMwMzd2N2R3MDFfZnVuY3MgPSB7CisJLmRpc2FibGUgPSBsczAzN3Y3ZHcwMV9kaXNhYmxlLAorCS51bnByZXBhcmUgPSBsczAzN3Y3ZHcwMV91bnByZXBhcmUsCisJLnByZXBhcmUgPSBsczAzN3Y3ZHcwMV9wcmVwYXJlLAorCS5lbmFibGUgPSBsczAzN3Y3ZHcwMV9lbmFibGUsCisJLmdldF9tb2RlcyA9IGxzMDM3djdkdzAxX2dldF9tb2RlcywKK307CisKK3N0YXRpYyBpbnQgbHMwMzd2N2R3MDFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgbHMwMzd2N2R3MDFfcGFuZWwgKmxjZDsKKworCWxjZCA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmxjZCksIEdGUF9LRVJORUwpOworCWlmICghbGNkKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGxjZCk7CisJbGNkLT5wZGV2ID0gcGRldjsKKworCWxjZC0+dmRkID0gZGV2bV9yZWd1bGF0b3JfZ2V0KCZwZGV2LT5kZXYsICJlbnZkZCIpOworCWlmIChJU19FUlIobGNkLT52ZGQpKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgcmVndWxhdG9yXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIobGNkLT52ZGQpOworCX0KKworCWxjZC0+aW5pX2dwaW8gPSBkZXZtX2dwaW9kX2dldCgmcGRldi0+ZGV2LCAiZW5hYmxlIiwgR1BJT0RfT1VUX0xPVyk7CisJaWYgKElTX0VSUihsY2QtPmluaV9ncGlvKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGVuYWJsZSBncGlvXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIobGNkLT5pbmlfZ3Bpbyk7CisJfQorCisJbGNkLT5yZXNiX2dwaW8gPSBkZXZtX2dwaW9kX2dldCgmcGRldi0+ZGV2LCAicmVzZXQiLCBHUElPRF9PVVRfTE9XKTsKKwlpZiAoSVNfRVJSKGxjZC0+cmVzYl9ncGlvKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHJlc2V0IGdwaW9cbiIpOworCQlyZXR1cm4gUFRSX0VSUihsY2QtPnJlc2JfZ3Bpbyk7CisJfQorCisJbGNkLT5tb19ncGlvID0gZGV2bV9ncGlvZF9nZXRfaW5kZXgoJnBkZXYtPmRldiwgIm1vZGUiLCAwLAorCQkJCQkgICAgR1BJT0RfT1VUX0xPVyk7CisJaWYgKElTX0VSUihsY2QtPm1vX2dwaW8pKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgbW9kZVswXSBncGlvXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIobGNkLT5tb19ncGlvKTsKKwl9CisKKwlsY2QtPmxyX2dwaW8gPSBkZXZtX2dwaW9kX2dldF9pbmRleCgmcGRldi0+ZGV2LCAibW9kZSIsIDEsCisJCQkJCSAgICBHUElPRF9PVVRfTE9XKTsKKwlpZiAoSVNfRVJSKGxjZC0+bHJfZ3BpbykpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBtb2RlWzFdIGdwaW9cbiIpOworCQlyZXR1cm4gUFRSX0VSUihsY2QtPmxyX2dwaW8pOworCX0KKworCWxjZC0+dWRfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0X2luZGV4KCZwZGV2LT5kZXYsICJtb2RlIiwgMiwKKwkJCQkJICAgIEdQSU9EX09VVF9MT1cpOworCWlmIChJU19FUlIobGNkLT51ZF9ncGlvKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IG1vZGVbMl0gZ3Bpb1xuIik7CisJCXJldHVybiBQVFJfRVJSKGxjZC0+dWRfZ3Bpbyk7CisJfQorCisJZHJtX3BhbmVsX2luaXQoJmxjZC0+cGFuZWwpOworCWxjZC0+cGFuZWwuZGV2ID0gJnBkZXYtPmRldjsKKwlsY2QtPnBhbmVsLmZ1bmNzID0gJmxzMDM3djdkdzAxX2Z1bmNzOworCisJcmV0dXJuIGRybV9wYW5lbF9hZGQoJmxjZC0+cGFuZWwpOworfQorCitzdGF0aWMgaW50IGxzMDM3djdkdzAxX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBsczAzN3Y3ZHcwMV9wYW5lbCAqbGNkID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlkcm1fcGFuZWxfcmVtb3ZlKCZsY2QtPnBhbmVsKTsKKwlkcm1fcGFuZWxfZGlzYWJsZSgmbGNkLT5wYW5lbCk7CisJZHJtX3BhbmVsX3VucHJlcGFyZSgmbGNkLT5wYW5lbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHMwMzd2N2R3MDFfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInNoYXJwLGxzMDM3djdkdzAxIiwgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0sCit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBsczAzN3Y3ZHcwMV9vZl9tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGxzMDM3djdkdzAxX2RyaXZlciA9IHsKKwkucHJvYmUJCT0gbHMwMzd2N2R3MDFfcHJvYmUsCisJLnJlbW92ZQkJPSBsczAzN3Y3ZHcwMV9yZW1vdmUsCisJLmRyaXZlcgkJPSB7CisJCS5uYW1lID0gInBhbmVsLXNoYXJwLWxzMDM3djdkdzAxIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gbHMwMzd2N2R3MDFfb2ZfbWF0Y2gsCisJfSwKK307CisKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobHMwMzd2N2R3MDFfZHJpdmVyKTsKKworTU9EVUxFX0FVVEhPUigiVG9taSBWYWxrZWluZW4gPHRvbWkudmFsa2VpbmVuQHRpLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiU2hhcnAgTFMwMzdWN0RXMDEgUGFuZWwgRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2ltcGxlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2ltcGxlLmMKaW5kZXggNWE5M2M0ZS4uMjhmYTZiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpbXBsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgogCiAjaW5jbHVkZSA8dmlkZW8vZGlzcGxheV90aW1pbmcuaD4KKyNpbmNsdWRlIDx2aWRlby9vZl9kaXNwbGF5X3RpbWluZy5oPgogI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CkBAIC0zNyw2ICszOCwyMiBAQAogI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CiAKKy8qKgorICogQG1vZGVzOiBQb2ludGVyIHRvIGFycmF5IG9mIGZpeGVkIG1vZGVzIGFwcHJvcHJpYXRlIGZvciB0aGlzIHBhbmVsLiAgSWYKKyAqICAgICAgICAgb25seSBvbmUgbW9kZSB0aGVuIHRoaXMgY2FuIGp1c3QgYmUgdGhlIGFkZHJlc3Mgb2YgdGhpcyB0aGUgbW9kZS4KKyAqICAgICAgICAgTk9URTogY2Fubm90IGJlIHVzZWQgd2l0aCAidGltaW5ncyIgYW5kIGFsc28gaWYgdGhpcyBpcyBzcGVjaWZpZWQKKyAqICAgICAgICAgdGhlbiB5b3UgY2Fubm90IG92ZXJyaWRlIHRoZSBtb2RlIGluIHRoZSBkZXZpY2UgdHJlZS4KKyAqIEBudW1fbW9kZXM6IE51bWJlciBvZiBlbGVtZW50cyBpbiBtb2RlcyBhcnJheS4KKyAqIEB0aW1pbmdzOiBQb2ludGVyIHRvIGFycmF5IG9mIGRpc3BsYXkgdGltaW5ncy4gIE5PVEU6IGNhbm5vdCBiZSB1c2VkIHdpdGgKKyAqICAgICAgICAgICAibW9kZXMiIGFuZCBhbHNvIHRoZXNlIHdpbGwgYmUgdXNlZCB0byB2YWxpZGF0ZSBhIGRldmljZSB0cmVlCisgKiAgICAgICAgICAgb3ZlcnJpZGUgaWYgb25lIGlzIHByZXNlbnQuCisgKiBAbnVtX3RpbWluZ3M6IE51bWJlciBvZiBlbGVtZW50cyBpbiB0aW1pbmdzIGFycmF5LgorICogQGJwYzogQml0cyBwZXIgY29sb3IuCisgKiBAc2l6ZTogU3RydWN0dXJlIGNvbnRhaW5pbmcgdGhlIHBoeXNpY2FsIHNpemUgb2YgdGhpcyBwYW5lbC4KKyAqIEBkZWxheTogU3RydWN0dXJlIGNvbnRhaW5pbmcgdmFyaW91cyBkZWxheSB2YWx1ZXMgZm9yIHRoaXMgcGFuZWwuCisgKiBAYnVzX2Zvcm1hdDogU2VlIE1FRElBX0JVU19GTVRfLi4uIGRlZmluZXMuCisgKiBAYnVzX2ZsYWdzOiBTZWUgRFJNX0JVU19GTEFHXy4uLiBkZWZpbmVzLgorICovCiBzdHJ1Y3QgcGFuZWxfZGVzYyB7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGVzOwogCXVuc2lnbmVkIGludCBudW1fbW9kZXM7CkBAIC05Miw2ICsxMDksOCBAQCBzdHJ1Y3QgcGFuZWxfc2ltcGxlIHsKIAlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmRkYzsKIAogCXN0cnVjdCBncGlvX2Rlc2MgKmVuYWJsZV9ncGlvOworCisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgb3ZlcnJpZGVfbW9kZTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhbmVsX3NpbXBsZSAqdG9fcGFuZWxfc2ltcGxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQpAQCAtOTksMTYgKzExOCwxMyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYW5lbF9zaW1wbGUgKnRvX3BhbmVsX3NpbXBsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlyZXR1cm4gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3QgcGFuZWxfc2ltcGxlLCBiYXNlKTsKIH0KIAotc3RhdGljIGludCBwYW5lbF9zaW1wbGVfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsKQorc3RhdGljIHVuc2lnbmVkIGludCBwYW5lbF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiB7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5iYXNlLmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcGFuZWwtPmJhc2UuZHJtOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCXVuc2lnbmVkIGludCBpLCBudW0gPSAwOwogCi0JaWYgKCFwYW5lbC0+ZGVzYykKLQkJcmV0dXJuIDA7Ci0KIAlmb3IgKGkgPSAwOyBpIDwgcGFuZWwtPmRlc2MtPm51bV90aW1pbmdzOyBpKyspIHsKIAkJY29uc3Qgc3RydWN0IGRpc3BsYXlfdGltaW5nICpkdCA9ICZwYW5lbC0+ZGVzYy0+dGltaW5nc1tpXTsKIAkJc3RydWN0IHZpZGVvbW9kZSB2bTsKQEAgLTEzMiw2ICsxNDgsMTYgQEAgc3RhdGljIGludCBwYW5lbF9zaW1wbGVfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsKQogCQludW0rKzsKIAl9CiAKKwlyZXR1cm4gbnVtOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRfZGlzcGxheV9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmJhc2UuY29ubmVjdG9yOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisJdW5zaWduZWQgaW50IGksIG51bSA9IDA7CisKIAlmb3IgKGkgPSAwOyBpIDwgcGFuZWwtPmRlc2MtPm51bV9tb2RlczsgaSsrKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0gJnBhbmVsLT5kZXNjLT5tb2Rlc1tpXTsKIApAQCAtMTUzLDYgKzE3OSw0NCBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9nZXRfZml4ZWRfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiAJCW51bSsrOwogCX0KIAorCXJldHVybiBudW07Cit9CisKK3N0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmJhc2UuY29ubmVjdG9yOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisJYm9vbCBoYXNfb3ZlcnJpZGUgPSBwYW5lbC0+b3ZlcnJpZGVfbW9kZS50eXBlOworCXVuc2lnbmVkIGludCBudW0gPSAwOworCisJaWYgKCFwYW5lbC0+ZGVzYykKKwkJcmV0dXJuIDA7CisKKwlpZiAoaGFzX292ZXJyaWRlKSB7CisJCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoZHJtLCAmcGFuZWwtPm92ZXJyaWRlX21vZGUpOworCQlpZiAobW9kZSkgeworCQkJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOworCQkJbnVtID0gMTsKKwkJfSBlbHNlIHsKKwkJCWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG92ZXJyaWRlIG1vZGVcbiIpOworCQl9CisJfQorCisJLyogT25seSBhZGQgdGltaW5ncyBpZiBvdmVycmlkZSB3YXMgbm90IHRoZXJlIG9yIGZhaWxlZCB0byB2YWxpZGF0ZSAqLworCWlmIChudW0gPT0gMCAmJiBwYW5lbC0+ZGVzYy0+bnVtX3RpbWluZ3MpCisJCW51bSA9IHBhbmVsX3NpbXBsZV9nZXRfdGltaW5nc19tb2RlcyhwYW5lbCk7CisKKwkvKgorCSAqIE9ubHkgYWRkIGZpeGVkIG1vZGVzIGlmIHRpbWluZ3Mvb3ZlcnJpZGUgYWRkZWQgbm8gbW9kZS4KKwkgKgorCSAqIFdlIHNob3VsZCBvbmx5IGV2ZXIgaGF2ZSBlaXRoZXIgdGhlIGRpc3BsYXkgdGltaW5ncyBzcGVjaWZpZWQKKwkgKiBvciBhIGZpeGVkIG1vZGUuIEFueXRoaW5nIGVsc2UgaXMgcmF0aGVyIGJvZ3VzLgorCSAqLworCVdBUk5fT04ocGFuZWwtPmRlc2MtPm51bV90aW1pbmdzICYmIHBhbmVsLT5kZXNjLT5udW1fbW9kZXMpOworCWlmIChudW0gPT0gMCkKKwkJbnVtID0gcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVzKHBhbmVsKTsKKwogCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJwYyA9IHBhbmVsLT5kZXNjLT5icGM7CiAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBwYW5lbC0+ZGVzYy0+c2l6ZS53aWR0aDsKIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBwYW5lbC0+ZGVzYy0+c2l6ZS5oZWlnaHQ7CkBAIC0yNjksNyArMzMzLDcgQEAgc3RhdGljIGludCBwYW5lbF9zaW1wbGVfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCX0KIAogCS8qIGFkZCBoYXJkLWNvZGVkIHBhbmVsIG1vZGVzICovCi0JbnVtICs9IHBhbmVsX3NpbXBsZV9nZXRfZml4ZWRfbW9kZXMocCk7CisJbnVtICs9IHBhbmVsX3NpbXBsZV9nZXRfbm9uX2VkaWRfbW9kZXMocCk7CiAKIAlyZXR1cm4gbnVtOwogfQpAQCAtMzAwLDEwICszNjQsNTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGFuZWxfZnVuY3MgcGFuZWxfc2ltcGxlX2Z1bmNzID0gewogCS5nZXRfdGltaW5ncyA9IHBhbmVsX3NpbXBsZV9nZXRfdGltaW5ncywKIH07CiAKKyNkZWZpbmUgUEFORUxfU0lNUExFX0JPVU5EU19DSEVDSyh0b19jaGVjaywgYm91bmRzLCBmaWVsZCkgXAorCSh0b19jaGVjay0+ZmllbGQudHlwID49IGJvdW5kcy0+ZmllbGQubWluICYmIFwKKwkgdG9fY2hlY2stPmZpZWxkLnR5cCA8PSBib3VuZHMtPmZpZWxkLm1heCkKK3N0YXRpYyB2b2lkIHBhbmVsX3NpbXBsZV9wYXJzZV9wYW5lbF90aW1pbmdfbm9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCQkgc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwsCisJCQkJCQkgY29uc3Qgc3RydWN0IGRpc3BsYXlfdGltaW5nICpvdCkKK3sKKwljb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyAqZGVzYyA9IHBhbmVsLT5kZXNjOworCXN0cnVjdCB2aWRlb21vZGUgdm07CisJdW5zaWduZWQgaW50IGk7CisKKwlpZiAoV0FSTl9PTihkZXNjLT5udW1fbW9kZXMpKSB7CisJCWRldl9lcnIoZGV2LCAiUmVqZWN0IG92ZXJyaWRlIG1vZGU6IHBhbmVsIGhhcyBhIGZpeGVkIG1vZGVcbiIpOworCQlyZXR1cm47CisJfQorCWlmIChXQVJOX09OKCFkZXNjLT5udW1fdGltaW5ncykpIHsKKwkJZGV2X2VycihkZXYsICJSZWplY3Qgb3ZlcnJpZGUgbW9kZTogbm8gdGltaW5ncyBzcGVjaWZpZWRcbiIpOworCQlyZXR1cm47CisJfQorCisJZm9yIChpID0gMDsgaSA8IHBhbmVsLT5kZXNjLT5udW1fdGltaW5nczsgaSsrKSB7CisJCWNvbnN0IHN0cnVjdCBkaXNwbGF5X3RpbWluZyAqZHQgPSAmcGFuZWwtPmRlc2MtPnRpbWluZ3NbaV07CisKKwkJaWYgKCFQQU5FTF9TSU1QTEVfQk9VTkRTX0NIRUNLKG90LCBkdCwgaGFjdGl2ZSkgfHwKKwkJICAgICFQQU5FTF9TSU1QTEVfQk9VTkRTX0NIRUNLKG90LCBkdCwgaGZyb250X3BvcmNoKSB8fAorCQkgICAgIVBBTkVMX1NJTVBMRV9CT1VORFNfQ0hFQ0sob3QsIGR0LCBoYmFja19wb3JjaCkgfHwKKwkJICAgICFQQU5FTF9TSU1QTEVfQk9VTkRTX0NIRUNLKG90LCBkdCwgaHN5bmNfbGVuKSB8fAorCQkgICAgIVBBTkVMX1NJTVBMRV9CT1VORFNfQ0hFQ0sob3QsIGR0LCB2YWN0aXZlKSB8fAorCQkgICAgIVBBTkVMX1NJTVBMRV9CT1VORFNfQ0hFQ0sob3QsIGR0LCB2ZnJvbnRfcG9yY2gpIHx8CisJCSAgICAhUEFORUxfU0lNUExFX0JPVU5EU19DSEVDSyhvdCwgZHQsIHZiYWNrX3BvcmNoKSB8fAorCQkgICAgIVBBTkVMX1NJTVBMRV9CT1VORFNfQ0hFQ0sob3QsIGR0LCB2c3luY19sZW4pKQorCQkJY29udGludWU7CisKKwkJaWYgKG90LT5mbGFncyAhPSBkdC0+ZmxhZ3MpCisJCQljb250aW51ZTsKKworCQl2aWRlb21vZGVfZnJvbV90aW1pbmcob3QsICZ2bSk7CisJCWRybV9kaXNwbGF5X21vZGVfZnJvbV92aWRlb21vZGUoJnZtLCAmcGFuZWwtPm92ZXJyaWRlX21vZGUpOworCQlwYW5lbC0+b3ZlcnJpZGVfbW9kZS50eXBlIHw9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwKKwkJCQkJICAgICBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKKwkJYnJlYWs7CisJfQorCisJaWYgKFdBUk5fT04oIXBhbmVsLT5vdmVycmlkZV9tb2RlLnR5cGUpKQorCQlkZXZfZXJyKGRldiwgIlJlamVjdCBvdmVycmlkZSBtb2RlOiBObyBkaXNwbGF5X3RpbWluZyBmb3VuZFxuIik7Cit9CisKIHN0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IHBhbmVsX2Rlc2MgKmRlc2MpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICpiYWNrbGlnaHQsICpkZGM7CiAJc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWw7CisJc3RydWN0IGRpc3BsYXlfdGltaW5nIGR0OwogCWludCBlcnI7CiAKIAlwYW5lbCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcGFuZWwpLCBHRlBfS0VSTkVMKTsKQEAgLTM0OSw2ICs0NjEsOSBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjICpkZXNjKQogCQl9CiAJfQogCisJaWYgKCFvZl9nZXRfZGlzcGxheV90aW1pbmcoZGV2LT5vZl9ub2RlLCAicGFuZWwtdGltaW5nIiwgJmR0KSkKKwkJcGFuZWxfc2ltcGxlX3BhcnNlX3BhbmVsX3RpbWluZ19ub2RlKGRldiwgcGFuZWwsICZkdCk7CisKIAlkcm1fcGFuZWxfaW5pdCgmcGFuZWwtPmJhc2UpOwogCXBhbmVsLT5iYXNlLmRldiA9IGRldjsKIAlwYW5lbC0+YmFzZS5mdW5jcyA9ICZwYW5lbF9zaW1wbGVfZnVuY3M7CkBAIC00OTYsMjIgKzYxMSwyMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBhbmVsX2Rlc2MgYXVvX2IxMDFhdzAzID0gewogCX0sCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgYXVvX2IxMDFlYW4wMV9tb2RlID0gewotCS5jbG9jayA9IDcyNTAwLAotCS5oZGlzcGxheSA9IDEyODAsCi0JLmhzeW5jX3N0YXJ0ID0gMTI4MCArIDExOSwKLQkuaHN5bmNfZW5kID0gMTI4MCArIDExOSArIDMyLAotCS5odG90YWwgPSAxMjgwICsgMTE5ICsgMzIgKyAyMSwKLQkudmRpc3BsYXkgPSA4MDAsCi0JLnZzeW5jX3N0YXJ0ID0gODAwICsgNCwKLQkudnN5bmNfZW5kID0gODAwICsgNCArIDIwLAotCS52dG90YWwgPSA4MDAgKyA0ICsgMjAgKyA4LAotCS52cmVmcmVzaCA9IDYwLAorc3RhdGljIGNvbnN0IHN0cnVjdCBkaXNwbGF5X3RpbWluZyBhdW9fYjEwMWVhbjAxX3RpbWluZyA9IHsKKwkucGl4ZWxjbG9jayA9IHsgNjUzMDAwMDAsIDcyNTAwMDAwLCA3NTAwMDAwMCB9LAorCS5oYWN0aXZlID0geyAxMjgwLCAxMjgwLCAxMjgwIH0sCisJLmhmcm9udF9wb3JjaCA9IHsgMTgsIDExOSwgMTE5IH0sCisJLmhiYWNrX3BvcmNoID0geyAyMSwgMjEsIDIxIH0sCisJLmhzeW5jX2xlbiA9IHsgMzIsIDMyLCAzMiB9LAorCS52YWN0aXZlID0geyA4MDAsIDgwMCwgODAwIH0sCisJLnZmcm9udF9wb3JjaCA9IHsgNCwgNCwgNCB9LAorCS52YmFja19wb3JjaCA9IHsgOCwgOCwgOCB9LAorCS52c3luY19sZW4gPSB7IDE4LCAyMCwgMjAgfSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBhdW9fYjEwMWVhbjAxID0gewotCS5tb2RlcyA9ICZhdW9fYjEwMWVhbjAxX21vZGUsCi0JLm51bV9tb2RlcyA9IDEsCisJLnRpbWluZ3MgPSAmYXVvX2IxMDFlYW4wMV90aW1pbmcsCisJLm51bV90aW1pbmdzID0gMSwKIAkuYnBjID0gNiwKIAkuc2l6ZSA9IHsKIAkJLndpZHRoID0gMjE3LApAQCAtNzI0LDkgKzgzOCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBhdW9fZzEzM2hhbjAxID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBkaXNwbGF5X3RpbWluZyBhdW9fZzE4NWhhbjAxX3RpbWluZ3MgPSB7CiAJLnBpeGVsY2xvY2sgPSB7IDEyMDAwMDAwMCwgMTQ0MDAwMDAwLCAxNzUwMDAwMDAgfSwKIAkuaGFjdGl2ZSA9IHsgMTkyMCwgMTkyMCwgMTkyMCB9LAotCS5oZnJvbnRfcG9yY2ggPSB7IDE4LCA2MCwgNzQgfSwKLQkuaGJhY2tfcG9yY2ggPSB7IDEyLCA0NCwgNTQgfSwKLQkuaHN5bmNfbGVuID0geyAxMCwgMjQsIDMyIH0sCisJLmhmcm9udF9wb3JjaCA9IHsgMzYsIDEyMCwgMTQ4IH0sCisJLmhiYWNrX3BvcmNoID0geyAyNCwgODgsIDEwOCB9LAorCS5oc3luY19sZW4gPSB7IDIwLCA0OCwgNjQgfSwKIAkudmFjdGl2ZSA9IHsgMTA4MCwgMTA4MCwgMTA4MCB9LAogCS52ZnJvbnRfcG9yY2ggPSB7IDYsIDEwLCA0MCB9LAogCS52YmFja19wb3JjaCA9IHsgMiwgNSwgMjAgfSwKQEAgLTEzMzUsNiArMTQ0OSwzMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBhbmVsX2Rlc2MgZ2lhbnRwbHVzX2dwZzQ4MjczOXFzNSA9IHsKIAkuYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGRpc3BsYXlfdGltaW5nIGdpYW50cGx1c19ncG05NDBiMF90aW1pbmcgPSB7CisJLnBpeGVsY2xvY2sgPSB7IDEzNTAwMDAwLCAyNzAwMDAwMCwgMjc1MDAwMDAgfSwKKwkuaGFjdGl2ZSA9IHsgMzIwLCAzMjAsIDMyMCB9LAorCS5oZnJvbnRfcG9yY2ggPSB7IDE0LCA2ODYsIDcxOCB9LAorCS5oYmFja19wb3JjaCA9IHsgNTAsIDcwLCAyNTUgfSwKKwkuaHN5bmNfbGVuID0geyAxLCAxLCAxIH0sCisJLnZhY3RpdmUgPSB7IDI0MCwgMjQwLCAyNDAgfSwKKwkudmZyb250X3BvcmNoID0geyAxLCAxLCAxNzkgfSwKKwkudmJhY2tfcG9yY2ggPSB7IDEsIDIxLCAzMSB9LAorCS52c3luY19sZW4gPSB7IDEsIDEsIDYgfSwKKwkuZmxhZ3MgPSBESVNQTEFZX0ZMQUdTX0hTWU5DX0xPVyB8IERJU1BMQVlfRkxBR1NfVlNZTkNfTE9XLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjIGdpYW50cGx1c19ncG05NDBiMCA9IHsKKwkudGltaW5ncyA9ICZnaWFudHBsdXNfZ3BtOTQwYjBfdGltaW5nLAorCS5udW1fdGltaW5ncyA9IDEsCisJLmJwYyA9IDgsCisJLnNpemUgPSB7CisJCS53aWR0aCA9IDYwLAorCQkuaGVpZ2h0ID0gNDUsCisJfSwKKwkuYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4XzNYOCwKKwkuYnVzX2ZsYWdzID0gRFJNX0JVU19GTEFHX0RFX0hJR0ggfCBEUk1fQlVTX0ZMQUdfUElYREFUQV9ORUdFREdFLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkaXNwbGF5X3RpbWluZyBoYW5uc3Rhcl9oc2QwNzBwd3cxX3RpbWluZyA9IHsKIAkucGl4ZWxjbG9jayA9IHsgNjQzMDAwMDAsIDcxMTAwMDAwLCA4MjAwMDAwMCB9LAogCS5oYWN0aXZlID0geyAxMjgwLCAxMjgwLCAxMjgwIH0sCkBAIC0xNTc4LDIzICsxNzE3LDMyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBpbm5vbHV4X2cxMjF4MV9sMDMgPSB7CiAJfSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBpbm5vbHV4X24xMTZiZ2VfbW9kZSA9IHsKLQkuY2xvY2sgPSA3NjQyMCwKLQkuaGRpc3BsYXkgPSAxMzY2LAotCS5oc3luY19zdGFydCA9IDEzNjYgKyAxMzYsCi0JLmhzeW5jX2VuZCA9IDEzNjYgKyAxMzYgKyAzMCwKLQkuaHRvdGFsID0gMTM2NiArIDEzNiArIDMwICsgNjAsCi0JLnZkaXNwbGF5ID0gNzY4LAotCS52c3luY19zdGFydCA9IDc2OCArIDgsCi0JLnZzeW5jX2VuZCA9IDc2OCArIDggKyAxMiwKLQkudnRvdGFsID0gNzY4ICsgOCArIDEyICsgMTIsCi0JLnZyZWZyZXNoID0gNjAsCi0JLmZsYWdzID0gRFJNX01PREVfRkxBR19OSFNZTkMgfCBEUk1fTU9ERV9GTEFHX05WU1lOQywKKy8qCisgKiBEYXRhc2hlZXQgc3BlY2lmaWVzIHRoYXQgYXQgNjAgSHogcmVmcmVzaCByYXRlOgorICogLSB0b3RhbCBob3Jpem9udGFsIHRpbWU6IHsgMTUwNiwgMTU5MiwgMTcxNiB9CisgKiAtIHRvdGFsIHZlcnRpY2FsIHRpbWU6IHsgNzg4LCA4MDAsIDg2OCB9CisgKgorICogLi4uYnV0IGRvZXNuJ3QgZ28gaW50byBleGFjdGx5IGhvdyB0aGF0IHNob3VsZCBiZSBzcGxpdCBpbnRvIGEgZnJvbnQKKyAqIHBvcmNoLCBiYWNrIHBvcmNoLCBvciBzeW5jIGxlbmd0aC4gIEZvciBub3cgd2UnbGwgbGVhdmUgYSBzaW5nbGUgc2V0dGluZworICogaGVyZSB3aGljaCBhbGxvd3MgYSBiaXQgb2YgdHdlYWtpbmcgb2YgdGhlIHBpeGVsIGNsb2NrIGF0IHRoZSBleHBlbnNlIG9mCisgKiByZWZyZXNoIHJhdGUuCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGlzcGxheV90aW1pbmcgaW5ub2x1eF9uMTE2YmdlX3RpbWluZyA9IHsKKwkucGl4ZWxjbG9jayA9IHsgNzI2MDAwMDAsIDc2NDIwMDAwLCA4MDI0MDAwMCB9LAorCS5oYWN0aXZlID0geyAxMzY2LCAxMzY2LCAxMzY2IH0sCisJLmhmcm9udF9wb3JjaCA9IHsgMTM2LCAxMzYsIDEzNiB9LAorCS5oYmFja19wb3JjaCA9IHsgNjAsIDYwLCA2MCB9LAorCS5oc3luY19sZW4gPSB7IDMwLCAzMCwgMzAgfSwKKwkudmFjdGl2ZSA9IHsgNzY4LCA3NjgsIDc2OCB9LAorCS52ZnJvbnRfcG9yY2ggPSB7IDgsIDgsIDggfSwKKwkudmJhY2tfcG9yY2ggPSB7IDEyLCAxMiwgMTIgfSwKKwkudnN5bmNfbGVuID0geyAxMiwgMTIsIDEyIH0sCisJLmZsYWdzID0gRElTUExBWV9GTEFHU19WU1lOQ19MT1cgfCBESVNQTEFZX0ZMQUdTX0hTWU5DX0xPVywKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBpbm5vbHV4X24xMTZiZ2UgPSB7Ci0JLm1vZGVzID0gJmlubm9sdXhfbjExNmJnZV9tb2RlLAotCS5udW1fbW9kZXMgPSAxLAorCS50aW1pbmdzID0gJmlubm9sdXhfbjExNmJnZV90aW1pbmcsCisJLm51bV90aW1pbmdzID0gMSwKIAkuYnBjID0gNiwKIAkuc2l6ZSA9IHsKIAkJLndpZHRoID0gMjU2LApAQCAtMjE1Nyw2ICsyMzA1LDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBvbnRhdF95eDcwMHd2MDMgPSB7CiAJLmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDE4LAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIG9ydHVzdGVjaF9jb20zN2gzbV9tb2RlICA9IHsKKwkuY2xvY2sgPSAyMjE1MywKKwkuaGRpc3BsYXkgPSA0ODAsCisJLmhzeW5jX3N0YXJ0ID0gNDgwICsgOCwKKwkuaHN5bmNfZW5kID0gNDgwICsgOCArIDEwLAorCS5odG90YWwgPSA0ODAgKyA4ICsgMTAgKyAxMCwKKwkudmRpc3BsYXkgPSA2NDAsCisJLnZzeW5jX3N0YXJ0ID0gNjQwICsgNCwKKwkudnN5bmNfZW5kID0gNjQwICsgNCArIDMsCisJLnZ0b3RhbCA9IDY0MCArIDQgKyAzICsgNCwKKwkudnJlZnJlc2ggPSA2MCwKKwkuZmxhZ3MgPSBEUk1fTU9ERV9GTEFHX05WU1lOQyB8IERSTV9NT0RFX0ZMQUdfTkhTWU5DLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjIG9ydHVzdGVjaF9jb20zN2gzbSA9IHsKKwkubW9kZXMgPSAmb3J0dXN0ZWNoX2NvbTM3aDNtX21vZGUsCisJLm51bV9tb2RlcyA9IDEsCisJLmJwYyA9IDgsCisJLnNpemUgPSB7CisJCS53aWR0aCA9IDU2LAkvKiA1Ni4xNm1tICovCisJCS5oZWlnaHQgPSA3NSwJLyogNzQuODhtbSAqLworCX0sCisJLmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0LAorCS5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfREVfSElHSCB8IERSTV9CVVNfRkxBR19QSVhEQVRBX1BPU0VER0UgfAorCQkgICAgIERSTV9CVVNfRkxBR19TWU5DX0RSSVZFX1BPU0VER0UsCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgb3J0dXN0ZWNoX2NvbTQzaDRtODV1bGNfbW9kZSAgPSB7CiAJLmNsb2NrID0gMjUwMDAsCiAJLmhkaXNwbGF5ID0gNDgwLApAQCAtMjM1NCw2ICsyNTI5LDU5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBzYW1zdW5nX2x0bjE0MGF0MjlfMzAxID0gewogCX0sCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgc2hhcnBfbGRfZDUxMTZ6MDFiX21vZGUgPSB7CisJLmNsb2NrID0gMTY4NDgwLAorCS5oZGlzcGxheSA9IDE5MjAsCisJLmhzeW5jX3N0YXJ0ID0gMTkyMCArIDQ4LAorCS5oc3luY19lbmQgPSAxOTIwICsgNDggKyAzMiwKKwkuaHRvdGFsID0gMTkyMCArIDQ4ICsgMzIgKyA4MCwKKwkudmRpc3BsYXkgPSAxMjgwLAorCS52c3luY19zdGFydCA9IDEyODAgKyAzLAorCS52c3luY19lbmQgPSAxMjgwICsgMyArIDEwLAorCS52dG90YWwgPSAxMjgwICsgMyArIDEwICsgNTcsCisJLnZyZWZyZXNoID0gNjAsCisJLmZsYWdzID0gRFJNX01PREVfRkxBR19QSFNZTkMgfCBEUk1fTU9ERV9GTEFHX1BWU1lOQywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBzaGFycF9sZF9kNTExNnowMWIgPSB7CisJLm1vZGVzID0gJnNoYXJwX2xkX2Q1MTE2ejAxYl9tb2RlLAorCS5udW1fbW9kZXMgPSAxLAorCS5icGMgPSA4LAorCS5zaXplID0geworCQkud2lkdGggPSAyNjAsCisJCS5oZWlnaHQgPSAxMjAsCisJfSwKKwkuYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQsCisJLmJ1c19mbGFncyA9IERSTV9CVVNfRkxBR19EQVRBX01TQl9UT19MU0IsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgc2hhcnBfbHEwNzB5M2RnM2JfbW9kZSA9IHsKKwkuY2xvY2sgPSAzMzI2MCwKKwkuaGRpc3BsYXkgPSA4MDAsCisJLmhzeW5jX3N0YXJ0ID0gODAwICsgNjQsCisJLmhzeW5jX2VuZCA9IDgwMCArIDY0ICsgMTI4LAorCS5odG90YWwgPSA4MDAgKyA2NCArIDEyOCArIDY0LAorCS52ZGlzcGxheSA9IDQ4MCwKKwkudnN5bmNfc3RhcnQgPSA0ODAgKyA4LAorCS52c3luY19lbmQgPSA0ODAgKyA4ICsgMiwKKwkudnRvdGFsID0gNDgwICsgOCArIDIgKyAzNSwKKwkudnJlZnJlc2ggPSA2MCwKKwkuZmxhZ3MgPSBESVNQTEFZX0ZMQUdTX1BJWERBVEFfUE9TRURHRSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBzaGFycF9scTA3MHkzZGczYiA9IHsKKwkubW9kZXMgPSAmc2hhcnBfbHEwNzB5M2RnM2JfbW9kZSwKKwkubnVtX21vZGVzID0gMSwKKwkuYnBjID0gOCwKKwkuc2l6ZSA9IHsKKwkJLndpZHRoID0gMTUyLAkvKiAxNTIuNG1tICovCisJCS5oZWlnaHQgPSA5MSwJLyogOTEuNG1tICovCisJfSwKKwkuYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQsCisJLmJ1c19mbGFncyA9IERSTV9CVVNfRkxBR19ERV9ISUdIIHwgRFJNX0JVU19GTEFHX1BJWERBVEFfUE9TRURHRSB8CisJCSAgICAgRFJNX0JVU19GTEFHX1NZTkNfRFJJVkVfUE9TRURHRSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBzaGFycF9scTAzNXE3ZGIwM19tb2RlID0gewogCS5jbG9jayA9IDU1MDAsCiAJLmhkaXNwbGF5ID0gMjQwLApAQCAtMjQ1NCw2ICsyNjgyLDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBzaGFycF9scTE1MHgxbGcxMSA9IHsKIAkuYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCNTY1XzFYMTYsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGRpc3BsYXlfdGltaW5nIHNoYXJwX2xzMDIwYjFkZDAxZF90aW1pbmcgPSB7CisJLnBpeGVsY2xvY2sgPSB7IDIwMDAwMDAsIDQyMDAwMDAsIDUwMDAwMDAgfSwKKwkuaGFjdGl2ZSA9IHsgMjQwLCAyNDAsIDI0MCB9LAorCS5oZnJvbnRfcG9yY2ggPSB7IDY2LCA2NiwgNjYgfSwKKwkuaGJhY2tfcG9yY2ggPSB7IDEsIDEsIDEgfSwKKwkuaHN5bmNfbGVuID0geyAxLCAxLCAxIH0sCisJLnZhY3RpdmUgPSB7IDE2MCwgMTYwLCAxNjAgfSwKKwkudmZyb250X3BvcmNoID0geyA1MiwgNTIsIDUyIH0sCisJLnZiYWNrX3BvcmNoID0geyA2LCA2LCA2IH0sCisJLnZzeW5jX2xlbiA9IHsgMTAsIDEwLCAxMCB9LAorCS5mbGFncyA9IERJU1BMQVlfRkxBR1NfSFNZTkNfSElHSCB8IERJU1BMQVlfRkxBR1NfVlNZTkNfTE9XLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjIHNoYXJwX2xzMDIwYjFkZDAxZCA9IHsKKwkudGltaW5ncyA9ICZzaGFycF9sczAyMGIxZGQwMWRfdGltaW5nLAorCS5udW1fdGltaW5ncyA9IDEsCisJLmJwYyA9IDYsCisJLnNpemUgPSB7CisJCS53aWR0aCA9IDQyLAorCQkuaGVpZ2h0ID0gMjgsCisJfSwKKwkuYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCNTY1XzFYMTYsCisJLmJ1c19mbGFncyA9IERSTV9CVVNfRkxBR19ERV9ISUdICisJCSAgIHwgRFJNX0JVU19GTEFHX1BJWERBVEFfTkVHRURHRQorCQkgICB8IERSTV9CVVNfRkxBR19TSEFSUF9TSUdOQUxTLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHNoZWxseV9zY2EwNzAxMF9iZm5fbG5uX21vZGUgPSB7CiAJLmNsb2NrID0gMzMzMDAsCiAJLmhkaXNwbGF5ID0gODAwLApAQCAtMjU3OCw2ICsyODMzLDY0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyB0aWFubWFfdG0wNzBydmhnNzEgPSB7CiAJLmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDdYNF9TUFdHLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHRpX25zcGlyZV9jeF9sY2RfbW9kZVtdID0geworCXsKKwkJLmNsb2NrID0gMTAwMDAsCisJCS5oZGlzcGxheSA9IDMyMCwKKwkJLmhzeW5jX3N0YXJ0ID0gMzIwICsgNTAsCisJCS5oc3luY19lbmQgPSAzMjAgKyA1MCArIDYsCisJCS5odG90YWwgPSAzMjAgKyA1MCArIDYgKyAzOCwKKwkJLnZkaXNwbGF5ID0gMjQwLAorCQkudnN5bmNfc3RhcnQgPSAyNDAgKyAzLAorCQkudnN5bmNfZW5kID0gMjQwICsgMyArIDEsCisJCS52dG90YWwgPSAyNDAgKyAzICsgMSArIDE3LAorCQkudnJlZnJlc2ggPSA2MCwKKwkJLmZsYWdzID0gRFJNX01PREVfRkxBR19OVlNZTkMgfCBEUk1fTU9ERV9GTEFHX05IU1lOQywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjIHRpX25zcGlyZV9jeF9sY2RfcGFuZWwgPSB7CisJLm1vZGVzID0gdGlfbnNwaXJlX2N4X2xjZF9tb2RlLAorCS5udW1fbW9kZXMgPSAxLAorCS5icGMgPSA4LAorCS5zaXplID0geworCQkud2lkdGggPSA2NSwKKwkJLmhlaWdodCA9IDQ5LAorCX0sCisJLmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0LAorCS5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfUElYREFUQV9ORUdFREdFLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHRpX25zcGlyZV9jbGFzc2ljX2xjZF9tb2RlW10gPSB7CisJeworCQkuY2xvY2sgPSAxMDAwMCwKKwkJLmhkaXNwbGF5ID0gMzIwLAorCQkuaHN5bmNfc3RhcnQgPSAzMjAgKyA2LAorCQkuaHN5bmNfZW5kID0gMzIwICsgNiArIDYsCisJCS5odG90YWwgPSAzMjAgKyA2ICsgNiArIDYsCisJCS52ZGlzcGxheSA9IDI0MCwKKwkJLnZzeW5jX3N0YXJ0ID0gMjQwICsgMCwKKwkJLnZzeW5jX2VuZCA9IDI0MCArIDAgKyAxLAorCQkudnRvdGFsID0gMjQwICsgMCArIDEgKyAwLAorCQkudnJlZnJlc2ggPSA2MCwKKwkJLmZsYWdzID0gRFJNX01PREVfRkxBR19QSFNZTkMgfCBEUk1fTU9ERV9GTEFHX1BWU1lOQywKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjIHRpX25zcGlyZV9jbGFzc2ljX2xjZF9wYW5lbCA9IHsKKwkubW9kZXMgPSB0aV9uc3BpcmVfY2xhc3NpY19sY2RfbW9kZSwKKwkubnVtX21vZGVzID0gMSwKKwkvKiBUaGUgZ3JheXNjYWxlIHBhbmVsIGhhcyA4IGJpdCBmb3IgdGhlIGNvbG9yIC4uIFkgKGJsYWNrKSAqLworCS5icGMgPSA4LAorCS5zaXplID0geworCQkud2lkdGggPSA3MSwKKwkJLmhlaWdodCA9IDUzLAorCX0sCisJLyogVGhpcyBpcyB0aGUgZ3JheXNjYWxlIGJ1cyBmb3JtYXQgKi8KKwkuYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfWThfMVg4LAorCS5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfUElYREFUQV9QT1NFREdFLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHRvc2hpYmFfbHQwODlhYzI5MDAwX21vZGUgPSB7CiAJLmNsb2NrID0gNzk1MDAsCiAJLmhkaXNwbGF5ID0gMTI4MCwKQEAgLTI4ODMsNiArMzE5Niw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHBsYXRmb3JtX29mX21hdGNoW10gPSB7CiAJCS5jb21wYXRpYmxlID0gImdpYW50cGx1cyxncGc0ODI3MzlxczUiLAogCQkuZGF0YSA9ICZnaWFudHBsdXNfZ3BnNDgyNzM5cXM1CiAJfSwgeworCQkuY29tcGF0aWJsZSA9ICJnaWFudHBsdXMsZ3BtOTQwYjAiLAorCQkuZGF0YSA9ICZnaWFudHBsdXNfZ3BtOTQwYjAsCisJfSwgewogCQkuY29tcGF0aWJsZSA9ICJoYW5uc3Rhcixoc2QwNzBwd3cxIiwKIAkJLmRhdGEgPSAmaGFubnN0YXJfaHNkMDcwcHd3MSwKIAl9LCB7CkBAIC0yOTc5LDYgKzMyOTUsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcGxhdGZvcm1fb2ZfbWF0Y2hbXSA9IHsKIAkJLmNvbXBhdGlibGUgPSAib250YXQseXg3MDB3djAzIiwKIAkJLmRhdGEgPSAmb250YXRfeXg3MDB3djAzLAogCX0sIHsKKwkJLmNvbXBhdGlibGUgPSAib3J0dXN0ZWNoLGNvbTM3aDNtMDVkdGMiLAorCQkuZGF0YSA9ICZvcnR1c3RlY2hfY29tMzdoM20sCisJfSwgeworCQkuY29tcGF0aWJsZSA9ICJvcnR1c3RlY2gsY29tMzdoM205OWR0YyIsCisJCS5kYXRhID0gJm9ydHVzdGVjaF9jb20zN2gzbSwKKwl9LCB7CiAJCS5jb21wYXRpYmxlID0gIm9ydHVzdGVjaCxjb200M2g0bTg1dWxjIiwKIAkJLmRhdGEgPSAmb3J0dXN0ZWNoX2NvbTQzaDRtODV1bGMsCiAJfSwgewpAQCAtMzAwMyw5ICszMzI1LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHBsYXRmb3JtX29mX21hdGNoW10gPSB7CiAJCS5jb21wYXRpYmxlID0gInNhbXN1bmcsbHRuMTQwYXQyOS0zMDEiLAogCQkuZGF0YSA9ICZzYW1zdW5nX2x0bjE0MGF0MjlfMzAxLAogCX0sIHsKKwkJLmNvbXBhdGlibGUgPSAic2hhcnAsbGQtZDUxMTZ6MDFiIiwKKwkJLmRhdGEgPSAmc2hhcnBfbGRfZDUxMTZ6MDFiLAorCX0sIHsKIAkJLmNvbXBhdGlibGUgPSAic2hhcnAsbHEwMzVxN2RiMDMiLAogCQkuZGF0YSA9ICZzaGFycF9scTAzNXE3ZGIwMywKIAl9LCB7CisJCS5jb21wYXRpYmxlID0gInNoYXJwLGxxMDcweTNkZzNiIiwKKwkJLmRhdGEgPSAmc2hhcnBfbHEwNzB5M2RnM2IsCisJfSwgewogCQkuY29tcGF0aWJsZSA9ICJzaGFycCxscTEwMWsxbHkwNCIsCiAJCS5kYXRhID0gJnNoYXJwX2xxMTAxazFseTA0LAogCX0sIHsKQEAgLTMwMTUsNiArMzM0Myw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHBsYXRmb3JtX29mX21hdGNoW10gPSB7CiAJCS5jb21wYXRpYmxlID0gInNoYXJwLGxxMTUweDFsZzExIiwKIAkJLmRhdGEgPSAmc2hhcnBfbHExNTB4MWxnMTEsCiAJfSwgeworCQkuY29tcGF0aWJsZSA9ICJzaGFycCxsczAyMGIxZGQwMWQiLAorCQkuZGF0YSA9ICZzaGFycF9sczAyMGIxZGQwMWQsCisJfSwgewogCQkuY29tcGF0aWJsZSA9ICJzaGVsbHksc2NhMDcwMTAtYmZuLWxubiIsCiAJCS5kYXRhID0gJnNoZWxseV9zY2EwNzAxMF9iZm5fbG5uLAogCX0sIHsKQEAgLTMwMzAsNiArMzM2MSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBwbGF0Zm9ybV9vZl9tYXRjaFtdID0gewogCQkuY29tcGF0aWJsZSA9ICJ0aWFubWEsdG0wNzBydmhnNzEiLAogCQkuZGF0YSA9ICZ0aWFubWFfdG0wNzBydmhnNzEsCiAJfSwgeworCQkuY29tcGF0aWJsZSA9ICJ0aSxuc3BpcmUtY3gtbGNkLXBhbmVsIiwKKwkJLmRhdGEgPSAmdGlfbnNwaXJlX2N4X2xjZF9wYW5lbCwKKwl9LCB7CisJCS5jb21wYXRpYmxlID0gInRpLG5zcGlyZS1jbGFzc2ljLWxjZC1wYW5lbCIsCisJCS5kYXRhID0gJnRpX25zcGlyZV9jbGFzc2ljX2xjZF9wYW5lbCwKKwl9LCB7CiAJCS5jb21wYXRpYmxlID0gInRvc2hpYmEsbHQwODlhYzI5MDAwIiwKIAkJLmRhdGEgPSAmdG9zaGliYV9sdDA4OWFjMjkwMDAsCiAJfSwgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1YWttLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc29ueS1hY3g1NjVha20uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDUyNTliCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1YWttLmMKQEAgLTAsMCArMSw3MDEgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogU29ueSBBQ1g1NjVBS00gTENEIFBhbmVsIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQKKyAqCisgKiBCYXNlZCBvbiB0aGUgb21hcGRybS1zcGVjaWZpYyBwYW5lbC1zb255LWFjeDU2NWFrbSBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24KKyAqIEF1dGhvcjogSW1yZSBEZWFrIDxpbXJlLmRlYWtAbm9raWEuY29tPgorICovCisKKy8qCisgKiBUT0RPICh0byBiZSBhZGRyZXNzZWQgd2l0aCBoYXJkd2FyZSBhY2Nlc3MgdG8gdGVzdCB0aGUgY2hhbmdlcyk6CisgKgorICogLSBVcGRhdGUgYmFja2xpZ2h0IHN1cHBvcnQgdG8gdXNlIGJhY2tsaWdodF91cGRhdGVfc3RhdHVzKCkgZXRjLgorICogLSBVc2UgcHJlcGFyZS91bnByZXBhcmUgZm9yIHRoZSBiYXNpYyBwb3dlciBvbi9vZmYgb2YgdGhlIGJhY2tsaWd0CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2JhY2tsaWdodC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgorCisjZGVmaW5lIENUUkxfRElTUF9CUklHSFRORVNTX0NUUkxfT04JCUJJVCg1KQorI2RlZmluZSBDVFJMX0RJU1BfQU1CSUVOVF9MSUdIVF9DVFJMX09OCQlCSVQoNCkKKyNkZWZpbmUgQ1RSTF9ESVNQX0JBQ0tMSUdIVF9PTgkJCUJJVCgyKQorI2RlZmluZSBDVFJMX0RJU1BfQVVUT19CUklHSFRORVNTX09OCQlCSVQoMSkKKworI2RlZmluZSBNSVBJRF9DTURfV1JJVEVfQ0FCQwkJMHg1NQorI2RlZmluZSBNSVBJRF9DTURfUkVBRF9DQUJDCQkweDU2CisKKyNkZWZpbmUgTUlQSURfVkVSX0xQSDg5MjMJCTMKKyNkZWZpbmUgTUlQSURfVkVSX0xTMDQxWTMJCTQKKyNkZWZpbmUgTUlQSURfVkVSX0w0RjAwMzExCQk4CisjZGVmaW5lIE1JUElEX1ZFUl9BQ1g1NjVBS00JCTkKKworc3RydWN0IGFjeDU2NWFrbV9wYW5lbCB7CisJc3RydWN0IGRybV9wYW5lbCBwYW5lbDsKKworCXN0cnVjdCBzcGlfZGV2aWNlICpzcGk7CisJc3RydWN0IGdwaW9fZGVzYyAqcmVzZXRfZ3BpbzsKKwlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmFja2xpZ2h0OworCisJc3RydWN0IG11dGV4IG11dGV4OworCisJY29uc3QgY2hhciAqbmFtZTsKKwl1OCBkaXNwbGF5X2lkWzNdOworCWludCBtb2RlbDsKKwlpbnQgcmV2aXNpb247CisJYm9vbCBoYXNfYmM7CisJYm9vbCBoYXNfY2FiYzsKKworCWJvb2wgZW5hYmxlZDsKKwl1bnNpZ25lZCBpbnQgY2FiY19tb2RlOworCS8qCisJICogTmV4dCB2YWx1ZSBvZiBqaWZmaWVzIHdoZW4gd2UgY2FuIGlzc3VlIHRoZSBuZXh0IHNsZWVwIGluL291dAorCSAqIGNvbW1hbmQuCisJICovCisJdW5zaWduZWQgbG9uZyBod19ndWFyZF9lbmQ7CisJdW5zaWduZWQgbG9uZyBod19ndWFyZF93YWl0OwkJLyogbWF4IGd1YXJkIHRpbWUgaW4gamlmZmllcyAqLworfTsKKworI2RlZmluZSB0b19hY3g1NjVha21fZGV2aWNlKHApIGNvbnRhaW5lcl9vZihwLCBzdHJ1Y3QgYWN4NTY1YWttX3BhbmVsLCBwYW5lbCkKKworc3RhdGljIHZvaWQgYWN4NTY1YWttX3RyYW5zZmVyKHN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCwgaW50IGNtZCwKKwkJCSAgICAgIGNvbnN0IHU4ICp3YnVmLCBpbnQgd2xlbiwgdTggKnJidWYsIGludCBybGVuKQoreworCXN0cnVjdCBzcGlfbWVzc2FnZQltOworCXN0cnVjdCBzcGlfdHJhbnNmZXIJKngsIHhmZXJbNV07CisJaW50CQkJcmV0OworCisJc3BpX21lc3NhZ2VfaW5pdCgmbSk7CisKKwltZW1zZXQoeGZlciwgMCwgc2l6ZW9mKHhmZXIpKTsKKwl4ID0gJnhmZXJbMF07CisKKwljbWQgJj0gIDB4ZmY7CisJeC0+dHhfYnVmID0gJmNtZDsKKwl4LT5iaXRzX3Blcl93b3JkID0gOTsKKwl4LT5sZW4gPSAyOworCisJaWYgKHJsZW4gPiAxICYmIHdsZW4gPT0gMCkgeworCQkvKgorCQkgKiBCZXR3ZWVuIHRoZSBjb21tYW5kIGFuZCB0aGUgcmVzcG9uc2UgZGF0YSB0aGVyZSBpcyBhCisJCSAqIGR1bW15IGNsb2NrIGN5Y2xlLiBBZGQgYW4gZXh0cmEgYml0IGFmdGVyIHRoZSBjb21tYW5kCisJCSAqIHdvcmQgdG8gYWNjb3VudCBmb3IgdGhpcy4KKwkJICovCisJCXgtPmJpdHNfcGVyX3dvcmQgPSAxMDsKKwkJY21kIDw8PSAxOworCX0KKwlzcGlfbWVzc2FnZV9hZGRfdGFpbCh4LCAmbSk7CisKKwlpZiAod2xlbikgeworCQl4Kys7CisJCXgtPnR4X2J1ZiA9IHdidWY7CisJCXgtPmxlbiA9IHdsZW47CisJCXgtPmJpdHNfcGVyX3dvcmQgPSA5OworCQlzcGlfbWVzc2FnZV9hZGRfdGFpbCh4LCAmbSk7CisJfQorCisJaWYgKHJsZW4pIHsKKwkJeCsrOworCQl4LT5yeF9idWYJPSByYnVmOworCQl4LT5sZW4JCT0gcmxlbjsKKwkJc3BpX21lc3NhZ2VfYWRkX3RhaWwoeCwgJm0pOworCX0KKworCXJldCA9IHNwaV9zeW5jKGxjZC0+c3BpLCAmbSk7CisJaWYgKHJldCA8IDApCisJCWRldl9kYmcoJmxjZC0+c3BpLT5kZXYsICJzcGlfc3luYyAlZFxuIiwgcmV0KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFjeDU2NWFrbV9jbWQoc3RydWN0IGFjeDU2NWFrbV9wYW5lbCAqbGNkLCBpbnQgY21kKQoreworCWFjeDU2NWFrbV90cmFuc2ZlcihsY2QsIGNtZCwgTlVMTCwgMCwgTlVMTCwgMCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhY3g1NjVha21fd3JpdGUoc3RydWN0IGFjeDU2NWFrbV9wYW5lbCAqbGNkLAorCQkJICAgICAgIGludCByZWcsIGNvbnN0IHU4ICpidWYsIGludCBsZW4pCit7CisJYWN4NTY1YWttX3RyYW5zZmVyKGxjZCwgcmVnLCBidWYsIGxlbiwgTlVMTCwgMCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhY3g1NjVha21fcmVhZChzdHJ1Y3QgYWN4NTY1YWttX3BhbmVsICpsY2QsCisJCQkgICAgICBpbnQgcmVnLCB1OCAqYnVmLCBpbnQgbGVuKQoreworCWFjeDU2NWFrbV90cmFuc2ZlcihsY2QsIHJlZywgTlVMTCwgMCwgYnVmLCBsZW4pOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQXV0byBCcmlnaHRuZXNzIENvbnRyb2wgVmlhIHN5c2ZzCisgKi8KKworc3RhdGljIHVuc2lnbmVkIGludCBhY3g1NjVha21fZ2V0X2NhYmNfbW9kZShzdHJ1Y3QgYWN4NTY1YWttX3BhbmVsICpsY2QpCit7CisJcmV0dXJuIGxjZC0+Y2FiY19tb2RlOworfQorCitzdGF0aWMgdm9pZCBhY3g1NjVha21fc2V0X2NhYmNfbW9kZShzdHJ1Y3QgYWN4NTY1YWttX3BhbmVsICpsY2QsCisJCQkJICAgIHVuc2lnbmVkIGludCBtb2RlKQoreworCXUxNiBjYWJjX2N0cmw7CisKKwlsY2QtPmNhYmNfbW9kZSA9IG1vZGU7CisJaWYgKCFsY2QtPmVuYWJsZWQpCisJCXJldHVybjsKKwljYWJjX2N0cmwgPSAwOworCWFjeDU2NWFrbV9yZWFkKGxjZCwgTUlQSURfQ01EX1JFQURfQ0FCQywgKHU4ICopJmNhYmNfY3RybCwgMSk7CisJY2FiY19jdHJsICY9IH4zOworCWNhYmNfY3RybCB8PSAoMSA8PCA4KSB8IChtb2RlICYgMyk7CisJYWN4NTY1YWttX3dyaXRlKGxjZCwgTUlQSURfQ01EX1dSSVRFX0NBQkMsICh1OCAqKSZjYWJjX2N0cmwsIDIpOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGFjeDU2NWFrbV9nZXRfaHdfY2FiY19tb2RlKHN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCkKK3sKKwl1OCBjYWJjX2N0cmw7CisKKwlhY3g1NjVha21fcmVhZChsY2QsIE1JUElEX0NNRF9SRUFEX0NBQkMsICZjYWJjX2N0cmwsIDEpOworCXJldHVybiBjYWJjX2N0cmwgJiAzOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFjeDU2NWFrbV9jYWJjX21vZGVzW10gPSB7CisJIm9mZiIsCQkvKiBhbHdheXMgdXNlZCB3aGVuIENBQkMgaXMgbm90IHN1cHBvcnRlZCAqLworCSJ1aSIsCisJInN0aWxsLWltYWdlIiwKKwkibW92aW5nLWltYWdlIiwKK307CisKK3N0YXRpYyBzc2l6ZV90IGNhYmNfbW9kZV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJICAgICAgY2hhciAqYnVmKQoreworCXN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWNvbnN0IGNoYXIgKm1vZGVfc3RyOworCWludCBtb2RlOworCisJaWYgKCFsY2QtPmhhc19jYWJjKQorCQltb2RlID0gMDsKKwllbHNlCisJCW1vZGUgPSBhY3g1NjVha21fZ2V0X2NhYmNfbW9kZShsY2QpOworCisJbW9kZV9zdHIgPSAidW5rbm93biI7CisJaWYgKG1vZGUgPj0gMCAmJiBtb2RlIDwgQVJSQVlfU0laRShhY3g1NjVha21fY2FiY19tb2RlcykpCisJCW1vZGVfc3RyID0gYWN4NTY1YWttX2NhYmNfbW9kZXNbbW9kZV07CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlc1xuIiwgbW9kZV9zdHIpOworfQorCitzdGF0aWMgc3NpemVfdCBjYWJjX21vZGVfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJICAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJICAgICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYWN4NTY1YWttX2NhYmNfbW9kZXMpOyBpKyspIHsKKwkJY29uc3QgY2hhciAqbW9kZV9zdHIgPSBhY3g1NjVha21fY2FiY19tb2Rlc1tpXTsKKwkJaW50IGNtcF9sZW4gPSBzdHJsZW4obW9kZV9zdHIpOworCisJCWlmIChjb3VudCA+IDAgJiYgYnVmW2NvdW50IC0gMV0gPT0gJ1xuJykKKwkJCWNvdW50LS07CisJCWlmIChjb3VudCAhPSBjbXBfbGVuKQorCQkJY29udGludWU7CisKKwkJaWYgKHN0cm5jbXAoYnVmLCBtb2RlX3N0ciwgY21wX2xlbikgPT0gMCkKKwkJCWJyZWFrOworCX0KKworCWlmIChpID09IEFSUkFZX1NJWkUoYWN4NTY1YWttX2NhYmNfbW9kZXMpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICghbGNkLT5oYXNfY2FiYyAmJiBpICE9IDApCisJCXJldHVybiAtRUlOVkFMOworCisJbXV0ZXhfbG9jaygmbGNkLT5tdXRleCk7CisJYWN4NTY1YWttX3NldF9jYWJjX21vZGUobGNkLCBpKTsKKwltdXRleF91bmxvY2soJmxjZC0+bXV0ZXgpOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgc3NpemVfdCBjYWJjX2F2YWlsYWJsZV9tb2Rlc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkJIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCQkgY2hhciAqYnVmKQoreworCXN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGludCBpOworCXNpemVfdCBsZW4gPSAwOworCisJaWYgKCFsY2QtPmhhc19jYWJjKQorCQlyZXR1cm4gc3ByaW50ZihidWYsICIlc1xuIiwgYWN4NTY1YWttX2NhYmNfbW9kZXNbMF0pOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYWN4NTY1YWttX2NhYmNfbW9kZXMpOyBpKyspCisJCWxlbiArPSBzcHJpbnRmKCZidWZbbGVuXSwgIiVzJXMiLCBpID8gIiAiIDogIiIsCisJCQkgICAgICAgYWN4NTY1YWttX2NhYmNfbW9kZXNbaV0pOworCisJYnVmW2xlbisrXSA9ICdcbic7CisKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgREVWSUNFX0FUVFJfUlcoY2FiY19tb2RlKTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9STyhjYWJjX2F2YWlsYWJsZV9tb2Rlcyk7CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphY3g1NjVha21fY2FiY19hdHRyc1tdID0geworCSZkZXZfYXR0cl9jYWJjX21vZGUuYXR0ciwKKwkmZGV2X2F0dHJfY2FiY19hdmFpbGFibGVfbW9kZXMuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgYWN4NTY1YWttX2NhYmNfYXR0cl9ncm91cCA9IHsKKwkuYXR0cnMgPSBhY3g1NjVha21fY2FiY19hdHRycywKK307CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBCYWNrbGlnaHQgRGV2aWNlCisgKi8KKworc3RhdGljIGludCBhY3g1NjVha21fZ2V0X2FjdHVhbF9icmlnaHRuZXNzKHN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCkKK3sKKwl1OCBidjsKKworCWFjeDU2NWFrbV9yZWFkKGxjZCwgTUlQSV9EQ1NfR0VUX0RJU1BMQVlfQlJJR0hUTkVTUywgJmJ2LCAxKTsKKworCXJldHVybiBidjsKK30KKworc3RhdGljIHZvaWQgYWN4NTY1YWttX3NldF9icmlnaHRuZXNzKHN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCwgaW50IGxldmVsKQoreworCXUxNiBjdHJsOworCWludCBidjsKKworCWJ2ID0gbGV2ZWwgfCAoMSA8PCA4KTsKKwlhY3g1NjVha21fd3JpdGUobGNkLCBNSVBJX0RDU19TRVRfRElTUExBWV9CUklHSFRORVNTLCAodTggKikmYnYsIDIpOworCisJYWN4NTY1YWttX3JlYWQobGNkLCBNSVBJX0RDU19HRVRfQ09OVFJPTF9ESVNQTEFZLCAodTggKikmY3RybCwgMSk7CisJaWYgKGxldmVsKQorCQljdHJsIHw9IENUUkxfRElTUF9CUklHSFRORVNTX0NUUkxfT04gfAorCQkJQ1RSTF9ESVNQX0JBQ0tMSUdIVF9PTjsKKwllbHNlCisJCWN0cmwgJj0gfihDVFJMX0RJU1BfQlJJR0hUTkVTU19DVFJMX09OIHwKKwkJCSAgQ1RSTF9ESVNQX0JBQ0tMSUdIVF9PTik7CisKKwljdHJsIHw9IDEgPDwgODsKKwlhY3g1NjVha21fd3JpdGUobGNkLCBNSVBJX0RDU19XUklURV9DT05UUk9MX0RJU1BMQVksICh1OCAqKSZjdHJsLCAyKTsKK30KKworc3RhdGljIGludCBhY3g1NjVha21fYmxfdXBkYXRlX3N0YXR1c19sb2NrZWQoc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgYWN4NTY1YWttX3BhbmVsICpsY2QgPSBkZXZfZ2V0X2RydmRhdGEoJmRldi0+ZGV2KTsKKwlpbnQgbGV2ZWw7CisKKwlpZiAoZGV2LT5wcm9wcy5mYl9ibGFuayA9PSBGQl9CTEFOS19VTkJMQU5LICYmCisJICAgIGRldi0+cHJvcHMucG93ZXIgPT0gRkJfQkxBTktfVU5CTEFOSykKKwkJbGV2ZWwgPSBkZXYtPnByb3BzLmJyaWdodG5lc3M7CisJZWxzZQorCQlsZXZlbCA9IDA7CisKKwlhY3g1NjVha21fc2V0X2JyaWdodG5lc3MobGNkLCBsZXZlbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhY3g1NjVha21fYmxfdXBkYXRlX3N0YXR1cyhzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqZGV2KQoreworCXN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCA9IGRldl9nZXRfZHJ2ZGF0YSgmZGV2LT5kZXYpOworCWludCByZXQ7CisKKwltdXRleF9sb2NrKCZsY2QtPm11dGV4KTsKKwlyZXQgPSBhY3g1NjVha21fYmxfdXBkYXRlX3N0YXR1c19sb2NrZWQoZGV2KTsKKwltdXRleF91bmxvY2soJmxjZC0+bXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhY3g1NjVha21fYmxfZ2V0X2ludGVuc2l0eShzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqZGV2KQoreworCXN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCA9IGRldl9nZXRfZHJ2ZGF0YSgmZGV2LT5kZXYpOworCXVuc2lnbmVkIGludCBpbnRlbnNpdHk7CisKKwltdXRleF9sb2NrKCZsY2QtPm11dGV4KTsKKworCWlmIChkZXYtPnByb3BzLmZiX2JsYW5rID09IEZCX0JMQU5LX1VOQkxBTksgJiYKKwkgICAgZGV2LT5wcm9wcy5wb3dlciA9PSBGQl9CTEFOS19VTkJMQU5LKQorCQlpbnRlbnNpdHkgPSBhY3g1NjVha21fZ2V0X2FjdHVhbF9icmlnaHRuZXNzKGxjZCk7CisJZWxzZQorCQlpbnRlbnNpdHkgPSAwOworCisJbXV0ZXhfdW5sb2NrKCZsY2QtPm11dGV4KTsKKworCXJldHVybiBpbnRlbnNpdHk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmFja2xpZ2h0X29wcyBhY3g1NjVha21fYmxfb3BzID0geworCS5nZXRfYnJpZ2h0bmVzcyA9IGFjeDU2NWFrbV9ibF9nZXRfaW50ZW5zaXR5LAorCS51cGRhdGVfc3RhdHVzICA9IGFjeDU2NWFrbV9ibF91cGRhdGVfc3RhdHVzLAorfTsKKworc3RhdGljIGludCBhY3g1NjVha21fYmFja2xpZ2h0X2luaXQoc3RydWN0IGFjeDU2NWFrbV9wYW5lbCAqbGNkKQoreworCXN0cnVjdCBiYWNrbGlnaHRfcHJvcGVydGllcyBwcm9wcyA9IHsKKwkJLmZiX2JsYW5rID0gRkJfQkxBTktfVU5CTEFOSywKKwkJLnBvd2VyID0gRkJfQkxBTktfVU5CTEFOSywKKwkJLnR5cGUgPSBCQUNLTElHSFRfUkFXLAorCX07CisJaW50IHJldDsKKworCWxjZC0+YmFja2xpZ2h0ID0gYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcihsY2QtPm5hbWUsICZsY2QtPnNwaS0+ZGV2LAorCQkJCQkJICAgbGNkLCAmYWN4NTY1YWttX2JsX29wcywKKwkJCQkJCSAgICZwcm9wcyk7CisJaWYgKElTX0VSUihsY2QtPmJhY2tsaWdodCkpIHsKKwkJcmV0ID0gUFRSX0VSUihsY2QtPmJhY2tsaWdodCk7CisJCWxjZC0+YmFja2xpZ2h0ID0gTlVMTDsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAobGNkLT5oYXNfY2FiYykgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJmxjZC0+YmFja2xpZ2h0LT5kZXYua29iaiwKKwkJCQkJICZhY3g1NjVha21fY2FiY19hdHRyX2dyb3VwKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWRldl9lcnIoJmxjZC0+c3BpLT5kZXYsCisJCQkJIiVzIGZhaWxlZCB0byBjcmVhdGUgc3lzZnMgZmlsZXNcbiIsIF9fZnVuY19fKTsKKwkJCWJhY2tsaWdodF9kZXZpY2VfdW5yZWdpc3RlcihsY2QtPmJhY2tsaWdodCk7CisJCQlyZXR1cm4gcmV0OworCQl9CisKKwkJbGNkLT5jYWJjX21vZGUgPSBhY3g1NjVha21fZ2V0X2h3X2NhYmNfbW9kZShsY2QpOworCX0KKworCWxjZC0+YmFja2xpZ2h0LT5wcm9wcy5tYXhfYnJpZ2h0bmVzcyA9IDI1NTsKKwlsY2QtPmJhY2tsaWdodC0+cHJvcHMuYnJpZ2h0bmVzcyA9IGFjeDU2NWFrbV9nZXRfYWN0dWFsX2JyaWdodG5lc3MobGNkKTsKKworCWFjeDU2NWFrbV9ibF91cGRhdGVfc3RhdHVzX2xvY2tlZChsY2QtPmJhY2tsaWdodCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYWN4NTY1YWttX2JhY2tsaWdodF9jbGVhbnVwKHN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCkKK3sKKwlpZiAobGNkLT5oYXNfY2FiYykKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKCZsY2QtPmJhY2tsaWdodC0+ZGV2LmtvYmosCisJCQkJICAgJmFjeDU2NWFrbV9jYWJjX2F0dHJfZ3JvdXApOworCisJYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKGxjZC0+YmFja2xpZ2h0KTsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIERSTSBCcmlkZ2UgT3BlcmF0aW9ucworICovCisKK3N0YXRpYyB2b2lkIGFjeDU2NWFrbV9zZXRfc2xlZXBfbW9kZShzdHJ1Y3QgYWN4NTY1YWttX3BhbmVsICpsY2QsIGludCBvbikKK3sKKwlpbnQgY21kID0gb24gPyBNSVBJX0RDU19FTlRFUl9TTEVFUF9NT0RFIDogTUlQSV9EQ1NfRVhJVF9TTEVFUF9NT0RFOworCXVuc2lnbmVkIGxvbmcgd2FpdDsKKworCS8qCisJICogV2UgaGF2ZSB0byBrZWVwIDEyMG1zZWMgYmV0d2VlbiBzbGVlcCBpbi9vdXQgY29tbWFuZHMuCisJICogKDguMi4xNSwgOC4yLjE2KS4KKwkgKi8KKwl3YWl0ID0gbGNkLT5od19ndWFyZF9lbmQgLSBqaWZmaWVzOworCWlmICgobG9uZyl3YWl0ID4gMCAmJiB3YWl0IDw9IGxjZC0+aHdfZ3VhcmRfd2FpdCkgeworCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1VOSU5URVJSVVBUSUJMRSk7CisJCXNjaGVkdWxlX3RpbWVvdXQod2FpdCk7CisJfQorCisJYWN4NTY1YWttX2NtZChsY2QsIGNtZCk7CisKKwlsY2QtPmh3X2d1YXJkX3dhaXQgPSBtc2Vjc190b19qaWZmaWVzKDEyMCk7CisJbGNkLT5od19ndWFyZF9lbmQgPSBqaWZmaWVzICsgbGNkLT5od19ndWFyZF93YWl0OworfQorCitzdGF0aWMgdm9pZCBhY3g1NjVha21fc2V0X2Rpc3BsYXlfc3RhdGUoc3RydWN0IGFjeDU2NWFrbV9wYW5lbCAqbGNkLAorCQkJCQlpbnQgZW5hYmxlZCkKK3sKKwlpbnQgY21kID0gZW5hYmxlZCA/IE1JUElfRENTX1NFVF9ESVNQTEFZX09OIDogTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT0ZGOworCisJYWN4NTY1YWttX2NtZChsY2QsIGNtZCk7Cit9CisKK3N0YXRpYyBpbnQgYWN4NTY1YWttX3Bvd2VyX29uKHN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCkKK3sKKwkvKkZJWE1FIHR3ZWFrIG1lICovCisJbXNsZWVwKDUwKTsKKworCWdwaW9kX3NldF92YWx1ZShsY2QtPnJlc2V0X2dwaW8sIDEpOworCisJaWYgKGxjZC0+ZW5hYmxlZCkgeworCQlkZXZfZGJnKCZsY2QtPnNwaS0+ZGV2LCAicGFuZWwgYWxyZWFkeSBlbmFibGVkXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyoKKwkgKiBXZSBoYXZlIHRvIG1lZXQgYWxsIHRoZSBmb2xsb3dpbmcgZGVsYXkgcmVxdWlyZW1lbnRzOgorCSAqIDEuIHRSVzogcmVzZXQgcHVsc2Ugd2lkdGggMTB1c2VjICg3LjEyLjEpCisJICogMi4gdFJUOiByZXNldCBjYW5jZWwgdGltZSA1bXNlYyAoNy4xMi4xKQorCSAqIDMuIFByb3ZpZGluZyBQQ0xLLEhTLFZTIHNpZ25hbHMgZm9yIDIgZnJhbWVzID0gfjUwbXNlYyB3b3JzdAorCSAqICAgIGNhc2UgKDcuNi4yKQorCSAqIDQuIDEyMG1zZWMgYmVmb3JlIHRoZSBzbGVlcCBvdXQgY29tbWFuZCAoNy4xMi4xKQorCSAqLworCW1zbGVlcCgxMjApOworCisJYWN4NTY1YWttX3NldF9zbGVlcF9tb2RlKGxjZCwgMCk7CisJbGNkLT5lbmFibGVkID0gdHJ1ZTsKKworCS8qIDVtc2VjIGJldHdlZW4gc2xlZXAgb3V0IGFuZCB0aGUgbmV4dCBjb21tYW5kLiAoOC4yLjE2KSAqLworCXVzbGVlcF9yYW5nZSg1MDAwLCAxMDAwMCk7CisJYWN4NTY1YWttX3NldF9kaXNwbGF5X3N0YXRlKGxjZCwgMSk7CisJYWN4NTY1YWttX3NldF9jYWJjX21vZGUobGNkLCBsY2QtPmNhYmNfbW9kZSk7CisKKwlyZXR1cm4gYWN4NTY1YWttX2JsX3VwZGF0ZV9zdGF0dXNfbG9ja2VkKGxjZC0+YmFja2xpZ2h0KTsKK30KKworc3RhdGljIHZvaWQgYWN4NTY1YWttX3Bvd2VyX29mZihzdHJ1Y3QgYWN4NTY1YWttX3BhbmVsICpsY2QpCit7CisJaWYgKCFsY2QtPmVuYWJsZWQpCisJCXJldHVybjsKKworCWFjeDU2NWFrbV9zZXRfZGlzcGxheV9zdGF0ZShsY2QsIDApOworCWFjeDU2NWFrbV9zZXRfc2xlZXBfbW9kZShsY2QsIDEpOworCWxjZC0+ZW5hYmxlZCA9IGZhbHNlOworCS8qCisJICogV2UgaGF2ZSB0byBwcm92aWRlIFBDTEssSFMsVlMgc2lnbmFscyBmb3IgMiBmcmFtZXMgKHdvcnN0IGNhc2UKKwkgKiB+NTBtc2VjKSBhZnRlciBzZW5kaW5nIHRoZSBzbGVlcCBpbiBjb21tYW5kIGFuZCBhc3NlcnRpbmcgdGhlCisJICogcmVzZXQgc2lnbmFsLiBXZSBwcm9iYWJseSBjb3VsZCBhc3NlcnQgdGhlIHJlc2V0IHcvbyB0aGUgZGVsYXkKKwkgKiBidXQgd2Ugc3RpbGwgZGVsYXkgdG8gYXZvaWQgcG9zc2libGUgYXJ0aWZhY3RzLiAoNy42LjEpCisJICovCisJbXNsZWVwKDUwKTsKKworCWdwaW9kX3NldF92YWx1ZShsY2QtPnJlc2V0X2dwaW8sIDApOworCisJLyogRklYTUUgbmVlZCB0byB0d2VhayB0aGlzIGRlbGF5ICovCisJbXNsZWVwKDEwMCk7Cit9CisKK3N0YXRpYyBpbnQgYWN4NTY1YWttX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGFjeDU2NWFrbV9wYW5lbCAqbGNkID0gdG9fYWN4NTY1YWttX2RldmljZShwYW5lbCk7CisKKwltdXRleF9sb2NrKCZsY2QtPm11dGV4KTsKKwlhY3g1NjVha21fcG93ZXJfb2ZmKGxjZCk7CisJbXV0ZXhfdW5sb2NrKCZsY2QtPm11dGV4KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFjeDU2NWFrbV9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGFjeDU2NWFrbV9wYW5lbCAqbGNkID0gdG9fYWN4NTY1YWttX2RldmljZShwYW5lbCk7CisKKwltdXRleF9sb2NrKCZsY2QtPm11dGV4KTsKKwlhY3g1NjVha21fcG93ZXJfb24obGNkKTsKKwltdXRleF91bmxvY2soJmxjZC0+bXV0ZXgpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBhY3g1NjVha21fbW9kZSA9IHsKKwkuY2xvY2sgPSAyNDAwMCwKKwkuaGRpc3BsYXkgPSA4MDAsCisJLmhzeW5jX3N0YXJ0ID0gODAwICsgMjgsCisJLmhzeW5jX2VuZCA9IDgwMCArIDI4ICsgNCwKKwkuaHRvdGFsID0gODAwICsgMjggKyA0ICsgMjQsCisJLnZkaXNwbGF5ID0gNDgwLAorCS52c3luY19zdGFydCA9IDQ4MCArIDMsCisJLnZzeW5jX2VuZCA9IDQ4MCArIDMgKyAzLAorCS52dG90YWwgPSA0ODAgKyAzICsgMyArIDQsCisJLnZyZWZyZXNoID0gNTcsCisJLnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVELAorCS5mbGFncyA9IERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwgRFJNX01PREVfRkxBR19OVlNZTkMsCisJLndpZHRoX21tID0gNzcsCisJLmhlaWdodF9tbSA9IDQ2LAorfTsKKworc3RhdGljIGludCBhY3g1NjVha21fZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOworCisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmYWN4NTY1YWttX21vZGUpOworCWlmICghbW9kZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CisKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IGFjeDU2NWFrbV9tb2RlLndpZHRoX21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IGFjeDU2NWFrbV9tb2RlLmhlaWdodF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfREVfSElHSAorCQkJCQkgIHwgRFJNX0JVU19GTEFHX1NZTkNfU0FNUExFX1BPU0VER0UKKwkJCQkJICB8IERSTV9CVVNfRkxBR19QSVhEQVRBX1NBTVBMRV9ORUdFREdFOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIGFjeDU2NWFrbV9mdW5jcyA9IHsKKwkuZGlzYWJsZSA9IGFjeDU2NWFrbV9kaXNhYmxlLAorCS5lbmFibGUgPSBhY3g1NjVha21fZW5hYmxlLAorCS5nZXRfbW9kZXMgPSBhY3g1NjVha21fZ2V0X21vZGVzLAorfTsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFByb2JlLCBEZXRlY3QgYW5kIFJlbW92ZQorICovCisKK3N0YXRpYyBpbnQgYWN4NTY1YWttX2RldGVjdChzdHJ1Y3QgYWN4NTY1YWttX3BhbmVsICpsY2QpCit7CisJX19iZTMyIHZhbHVlOworCXUzMiBzdGF0dXM7CisJaW50IHJldCA9IDA7CisKKwkvKgorCSAqIEFmdGVyIGJlaW5nIHRha2VuIG91dCBvZiByZXNldCB0aGUgcGFuZWwgbmVlZHMgNW1zIGJlZm9yZSB0aGUgZmlyc3QKKwkgKiBjb21tYW5kIGNhbiBiZSBzZW50LgorCSAqLworCWdwaW9kX3NldF92YWx1ZShsY2QtPnJlc2V0X2dwaW8sIDEpOworCXVzbGVlcF9yYW5nZSg1MDAwLCAxMDAwMCk7CisKKwlhY3g1NjVha21fcmVhZChsY2QsIE1JUElfRENTX0dFVF9ESVNQTEFZX1NUQVRVUywgKHU4ICopJnZhbHVlLCA0KTsKKwlzdGF0dXMgPSBfX2JlMzJfdG9fY3B1KHZhbHVlKTsKKwlsY2QtPmVuYWJsZWQgPSAoc3RhdHVzICYgKDEgPDwgMTcpKSAmJiAoc3RhdHVzICYgKDEgPDwgMTApKTsKKworCWRldl9kYmcoJmxjZC0+c3BpLT5kZXYsCisJCSJMQ0QgcGFuZWwgJXMgYnkgYm9vdGxvYWRlciAoc3RhdHVzIDB4JTA0eClcbiIsCisJCWxjZC0+ZW5hYmxlZCA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCAiLCBzdGF0dXMpOworCisJYWN4NTY1YWttX3JlYWQobGNkLCBNSVBJX0RDU19HRVRfRElTUExBWV9JRCwgbGNkLT5kaXNwbGF5X2lkLCAzKTsKKwlkZXZfZGJnKCZsY2QtPnNwaS0+ZGV2LCAiTUlQSSBkaXNwbGF5IElEOiAlMDJ4JTAyeCUwMnhcbiIsCisJCWxjZC0+ZGlzcGxheV9pZFswXSwgbGNkLT5kaXNwbGF5X2lkWzFdLCBsY2QtPmRpc3BsYXlfaWRbMl0pOworCisJc3dpdGNoIChsY2QtPmRpc3BsYXlfaWRbMF0pIHsKKwljYXNlIDB4MTA6CisJCWxjZC0+bW9kZWwgPSBNSVBJRF9WRVJfQUNYNTY1QUtNOworCQlsY2QtPm5hbWUgPSAiYWN4NTY1YWttIjsKKwkJbGNkLT5oYXNfYmMgPSAxOworCQlsY2QtPmhhc19jYWJjID0gMTsKKwkJYnJlYWs7CisJY2FzZSAweDI5OgorCQlsY2QtPm1vZGVsID0gTUlQSURfVkVSX0w0RjAwMzExOworCQlsY2QtPm5hbWUgPSAibDRmMDAzMTEiOworCQlicmVhazsKKwljYXNlIDB4NDU6CisJCWxjZC0+bW9kZWwgPSBNSVBJRF9WRVJfTFBIODkyMzsKKwkJbGNkLT5uYW1lID0gImxwaDg5MjMiOworCQlicmVhazsKKwljYXNlIDB4ODM6CisJCWxjZC0+bW9kZWwgPSBNSVBJRF9WRVJfTFMwNDFZMzsKKwkJbGNkLT5uYW1lID0gImxzMDQxeTMiOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlsY2QtPm5hbWUgPSAidW5rbm93biI7CisJCWRldl9lcnIoJmxjZC0+c3BpLT5kZXYsICJ1bmtub3duIGRpc3BsYXkgSURcbiIpOworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIGRvbmU7CisJfQorCisJbGNkLT5yZXZpc2lvbiA9IGxjZC0+ZGlzcGxheV9pZFsxXTsKKworCWRldl9pbmZvKCZsY2QtPnNwaS0+ZGV2LCAiJXMgcmV2ICUwMnggcGFuZWwgZGV0ZWN0ZWRcbiIsCisJCSBsY2QtPm5hbWUsIGxjZC0+cmV2aXNpb24pOworCitkb25lOgorCWlmICghbGNkLT5lbmFibGVkKQorCQlncGlvZF9zZXRfdmFsdWUobGNkLT5yZXNldF9ncGlvLCAwKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWN4NTY1YWttX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJc3RydWN0IGFjeDU2NWFrbV9wYW5lbCAqbGNkOworCWludCByZXQ7CisKKwlsY2QgPSBkZXZtX2t6YWxsb2MoJnNwaS0+ZGV2LCBzaXplb2YoKmxjZCksIEdGUF9LRVJORUwpOworCWlmICghbGNkKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXNwaV9zZXRfZHJ2ZGF0YShzcGksIGxjZCk7CisJc3BpLT5tb2RlID0gU1BJX01PREVfMzsKKworCWxjZC0+c3BpID0gc3BpOworCW11dGV4X2luaXQoJmxjZC0+bXV0ZXgpOworCisJbGNkLT5yZXNldF9ncGlvID0gZGV2bV9ncGlvZF9nZXQoJnNwaS0+ZGV2LCAicmVzZXQiLCBHUElPRF9PVVRfTE9XKTsKKwlpZiAoSVNfRVJSKGxjZC0+cmVzZXRfZ3BpbykpIHsKKwkJZGV2X2Vycigmc3BpLT5kZXYsICJmYWlsZWQgdG8gZ2V0IHJlc2V0IEdQSU9cbiIpOworCQlyZXR1cm4gUFRSX0VSUihsY2QtPnJlc2V0X2dwaW8pOworCX0KKworCXJldCA9IGFjeDU2NWFrbV9kZXRlY3QobGNkKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKCZzcGktPmRldiwgInBhbmVsIGRldGVjdGlvbiBmYWlsZWRcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCWlmIChsY2QtPmhhc19iYykgeworCQlyZXQgPSBhY3g1NjVha21fYmFja2xpZ2h0X2luaXQobGNkKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCX0KKworCWRybV9wYW5lbF9pbml0KCZsY2QtPnBhbmVsKTsKKwlsY2QtPnBhbmVsLmRldiA9ICZsY2QtPnNwaS0+ZGV2OworCWxjZC0+cGFuZWwuZnVuY3MgPSAmYWN4NTY1YWttX2Z1bmNzOworCisJcmV0ID0gZHJtX3BhbmVsX2FkZCgmbGNkLT5wYW5lbCk7CisJaWYgKHJldCA8IDApIHsKKwkJaWYgKGxjZC0+aGFzX2JjKQorCQkJYWN4NTY1YWttX2JhY2tsaWdodF9jbGVhbnVwKGxjZCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWN4NTY1YWttX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBhY3g1NjVha21fcGFuZWwgKmxjZCA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpOworCisJZHJtX3BhbmVsX3JlbW92ZSgmbGNkLT5wYW5lbCk7CisKKwlpZiAobGNkLT5oYXNfYmMpCisJCWFjeDU2NWFrbV9iYWNrbGlnaHRfY2xlYW51cChsY2QpOworCisJZHJtX3BhbmVsX2Rpc2FibGUoJmxjZC0+cGFuZWwpOworCWRybV9wYW5lbF91bnByZXBhcmUoJmxjZC0+cGFuZWwpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFjeDU2NWFrbV9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAic29ueSxhY3g1NjVha20iLCB9LAorCXsgLyogc2VudGluZWwgKi8gfSwKK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFjeDU2NWFrbV9vZl9tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBhY3g1NjVha21fZHJpdmVyID0geworCS5wcm9iZQkJPSBhY3g1NjVha21fcHJvYmUsCisJLnJlbW92ZQkJPSBhY3g1NjVha21fcmVtb3ZlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJwYW5lbC1zb255LWFjeDU2NWFrbSIsCisJCS5vZl9tYXRjaF90YWJsZSA9IGFjeDU2NWFrbV9vZl9tYXRjaCwKKwl9LAorfTsKKworbW9kdWxlX3NwaV9kcml2ZXIoYWN4NTY1YWttX2RyaXZlcik7CisKK01PRFVMRV9BTElBUygic3BpOnNvbnksYWN4NTY1YWttIik7CitNT0RVTEVfQVVUSE9SKCJOb2tpYSBDb3Jwb3JhdGlvbiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJTb255IEFDWDU2NUFLTSBMQ0QgUGFuZWwgRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwMjh0dGVjMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3YjJlMzQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYwpAQCAtMCwwICsxLDM5OSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBUb3Bwb2x5IFREMDI4VFRFQzEgUGFuZWwgRHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZAorICoKKyAqIEJhc2VkIG9uIHRoZSBvbWFwZHJtLXNwZWNpZmljIHBhbmVsLXRwby10ZDAyOHR0ZWMxIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbgorICogQXV0aG9yOiBUb21pIFZhbGtlaW5lbiA8dG9taS52YWxrZWluZW5AdGkuY29tPgorICoKKyAqIE5lbyAxOTczIGNvZGUgKGpidDZrNzQuYyk6CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwNyBPcGVuTW9rbywgSW5jLgorICogQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgorICoKKyAqIFBvcnRlZCBhbmQgYWRhcHRlZCBmcm9tIE5lbyAxOTczIFUtQm9vdCBieToKKyAqIEguIE5pa29sYXVzIFNjaGFsbGVyIDxobnNAZ29sZGVsaWNvLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgorI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisKKyNkZWZpbmUgSkJUX0NPTU1BTkQJCQkweDAwMAorI2RlZmluZSBKQlRfREFUQQkJCTB4MTAwCisKKyNkZWZpbmUgSkJUX1JFR19TTEVFUF9JTgkJMHgxMAorI2RlZmluZSBKQlRfUkVHX1NMRUVQX09VVAkJMHgxMQorCisjZGVmaW5lIEpCVF9SRUdfRElTUExBWV9PRkYJCTB4MjgKKyNkZWZpbmUgSkJUX1JFR19ESVNQTEFZX09OCQkweDI5CisKKyNkZWZpbmUgSkJUX1JFR19SR0JfRk9STUFUCQkweDNhCisjZGVmaW5lIEpCVF9SRUdfUVVBRF9SQVRFCQkweDNiCisKKyNkZWZpbmUgSkJUX1JFR19QT1dFUl9PTl9PRkYJCTB4YjAKKyNkZWZpbmUgSkJUX1JFR19CT09TVEVSX09QCQkweGIxCisjZGVmaW5lIEpCVF9SRUdfQk9PU1RFUl9NT0RFCQkweGIyCisjZGVmaW5lIEpCVF9SRUdfQk9PU1RFUl9GUkVRCQkweGIzCisjZGVmaW5lIEpCVF9SRUdfT1BBTVBfU1lTQ0xLCQkweGI0CisjZGVmaW5lIEpCVF9SRUdfVlNDX1ZPTFRBR0UJCTB4YjUKKyNkZWZpbmUgSkJUX1JFR19WQ09NX1ZPTFRBR0UJCTB4YjYKKyNkZWZpbmUgSkJUX1JFR19FWFRfRElTUEwJCTB4YjcKKyNkZWZpbmUgSkJUX1JFR19PVVRQVVRfQ09OVFJPTAkJMHhiOAorI2RlZmluZSBKQlRfUkVHX0RDQ0xLX0RDRVYJCTB4YjkKKyNkZWZpbmUgSkJUX1JFR19ESVNQTEFZX01PREUxCQkweGJhCisjZGVmaW5lIEpCVF9SRUdfRElTUExBWV9NT0RFMgkJMHhiYgorI2RlZmluZSBKQlRfUkVHX0RJU1BMQVlfTU9ERQkJMHhiYworI2RlZmluZSBKQlRfUkVHX0FTV19TTEVXCQkweGJkCisjZGVmaW5lIEpCVF9SRUdfRFVNTVlfRElTUExBWQkJMHhiZQorI2RlZmluZSBKQlRfUkVHX0RSSVZFX1NZU1RFTQkJMHhiZgorCisjZGVmaW5lIEpCVF9SRUdfU0xFRVBfT1VUX0ZSX0EJCTB4YzAKKyNkZWZpbmUgSkJUX1JFR19TTEVFUF9PVVRfRlJfQgkJMHhjMQorI2RlZmluZSBKQlRfUkVHX1NMRUVQX09VVF9GUl9DCQkweGMyCisjZGVmaW5lIEpCVF9SRUdfU0xFRVBfSU5fTENDTlRfRAkweGMzCisjZGVmaW5lIEpCVF9SRUdfU0xFRVBfSU5fTENDTlRfRQkweGM0CisjZGVmaW5lIEpCVF9SRUdfU0xFRVBfSU5fTENDTlRfRgkweGM1CisjZGVmaW5lIEpCVF9SRUdfU0xFRVBfSU5fTENDTlRfRwkweGM2CisKKyNkZWZpbmUgSkJUX1JFR19HQU1NQTFfRklORV8xCQkweGM3CisjZGVmaW5lIEpCVF9SRUdfR0FNTUExX0ZJTkVfMgkJMHhjOAorI2RlZmluZSBKQlRfUkVHX0dBTU1BMV9JTkNMSU5BVElPTgkweGM5CisjZGVmaW5lIEpCVF9SRUdfR0FNTUExX0JMVUVfT0ZGU0VUCTB4Y2EKKworI2RlZmluZSBKQlRfUkVHX0JMQU5LX0NPTlRST0wJCTB4Y2YKKyNkZWZpbmUgSkJUX1JFR19CTEFOS19USF9UVgkJMHhkMAorI2RlZmluZSBKQlRfUkVHX0NLVl9PTl9PRkYJCTB4ZDEKKyNkZWZpbmUgSkJUX1JFR19DS1ZfMV8yCQkJMHhkMgorI2RlZmluZSBKQlRfUkVHX09FVl9USU1JTkcJCTB4ZDMKKyNkZWZpbmUgSkJUX1JFR19BU1dfVElNSU5HXzEJCTB4ZDQKKyNkZWZpbmUgSkJUX1JFR19BU1dfVElNSU5HXzIJCTB4ZDUKKworI2RlZmluZSBKQlRfUkVHX0hDTE9DS19WR0EJCTB4ZWMKKyNkZWZpbmUgSkJUX1JFR19IQ0xPQ0tfUVZHQQkJMHhlZAorCitzdHJ1Y3QgdGQwMjh0dGVjMV9wYW5lbCB7CisJc3RydWN0IGRybV9wYW5lbCBwYW5lbDsKKworCXN0cnVjdCBzcGlfZGV2aWNlICpzcGk7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJhY2tsaWdodDsKK307CisKKyNkZWZpbmUgdG9fdGQwMjh0dGVjMV9kZXZpY2UocCkgY29udGFpbmVyX29mKHAsIHN0cnVjdCB0ZDAyOHR0ZWMxX3BhbmVsLCBwYW5lbCkKKworc3RhdGljIGludCBqYnRfcmV0X3dyaXRlXzAoc3RydWN0IHRkMDI4dHRlYzFfcGFuZWwgKmxjZCwgdTggcmVnLCBpbnQgKmVycikKK3sKKwlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gbGNkLT5zcGk7CisJdTE2IHR4X2J1ZiA9IEpCVF9DT01NQU5EIHwgcmVnOworCWludCByZXQ7CisKKwlpZiAoZXJyICYmICplcnIpCisJCXJldHVybiAqZXJyOworCisJcmV0ID0gc3BpX3dyaXRlKHNwaSwgKHU4ICopJnR4X2J1Ziwgc2l6ZW9mKHR4X2J1ZikpOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoJnNwaS0+ZGV2LCAiJXM6IFNQSSB3cml0ZSBmYWlsZWQ6ICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsKKwkJaWYgKGVycikKKwkJCSplcnIgPSByZXQ7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBqYnRfcmVnX3dyaXRlXzEoc3RydWN0IHRkMDI4dHRlYzFfcGFuZWwgKmxjZCwKKwkJCSAgIHU4IHJlZywgdTggZGF0YSwgaW50ICplcnIpCit7CisJc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IGxjZC0+c3BpOworCXUxNiB0eF9idWZbMl07CisJaW50IHJldDsKKworCWlmIChlcnIgJiYgKmVycikKKwkJcmV0dXJuICplcnI7CisKKwl0eF9idWZbMF0gPSBKQlRfQ09NTUFORCB8IHJlZzsKKwl0eF9idWZbMV0gPSBKQlRfREFUQSB8IGRhdGE7CisKKwlyZXQgPSBzcGlfd3JpdGUoc3BpLCAodTggKil0eF9idWYsIHNpemVvZih0eF9idWYpKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKCZzcGktPmRldiwgIiVzOiBTUEkgd3JpdGUgZmFpbGVkOiAlZFxuIiwgX19mdW5jX18sIHJldCk7CisJCWlmIChlcnIpCisJCQkqZXJyID0gcmV0OworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgamJ0X3JlZ193cml0ZV8yKHN0cnVjdCB0ZDAyOHR0ZWMxX3BhbmVsICpsY2QsCisJCQkgICB1OCByZWcsIHUxNiBkYXRhLCBpbnQgKmVycikKK3sKKwlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gbGNkLT5zcGk7CisJdTE2IHR4X2J1ZlszXTsKKwlpbnQgcmV0OworCisJaWYgKGVyciAmJiAqZXJyKQorCQlyZXR1cm4gKmVycjsKKworCXR4X2J1ZlswXSA9IEpCVF9DT01NQU5EIHwgcmVnOworCXR4X2J1ZlsxXSA9IEpCVF9EQVRBIHwgKGRhdGEgPj4gOCk7CisJdHhfYnVmWzJdID0gSkJUX0RBVEEgfCAoZGF0YSAmIDB4ZmYpOworCisJcmV0ID0gc3BpX3dyaXRlKHNwaSwgKHU4ICopdHhfYnVmLCBzaXplb2YodHhfYnVmKSk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2Vycigmc3BpLT5kZXYsICIlczogU1BJIHdyaXRlIGZhaWxlZDogJWRcbiIsIF9fZnVuY19fLCByZXQpOworCQlpZiAoZXJyKQorCQkJKmVyciA9IHJldDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHRkMDI4dHRlYzFfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgdGQwMjh0dGVjMV9wYW5lbCAqbGNkID0gdG9fdGQwMjh0dGVjMV9kZXZpY2UocGFuZWwpOworCXVuc2lnbmVkIGludCBpOworCWludCByZXQgPSAwOworCisJLyogVGhyZWUgdGltZXMgY29tbWFuZCB6ZXJvICovCisJZm9yIChpID0gMDsgaSA8IDM7ICsraSkgeworCQlqYnRfcmV0X3dyaXRlXzAobGNkLCAweDAwLCAmcmV0KTsKKwkJdXNsZWVwX3JhbmdlKDEwMDAsIDIwMDApOworCX0KKworCS8qIGRlZXAgc3RhbmRieSBvdXQgKi8KKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX1BPV0VSX09OX09GRiwgMHgxNywgJnJldCk7CisKKwkvKiBSR0IgSS9GIG9uLCBSQU0gd3JpdGUgb2ZmLCBRVkdBIHRocm91Z2gsIFNJR0NPTiBlbmFibGUgKi8KKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX0RJU1BMQVlfTU9ERSwgMHg4MCwgJnJldCk7CisKKwkvKiBRdWFkIG1vZGUgb2ZmICovCisJamJ0X3JlZ193cml0ZV8xKGxjZCwgSkJUX1JFR19RVUFEX1JBVEUsIDB4MDAsICZyZXQpOworCisJLyogQVZERCBvbiwgWFZERCBvbiAqLworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfUE9XRVJfT05fT0ZGLCAweDE2LCAmcmV0KTsKKworCS8qIE91dHB1dCBjb250cm9sICovCisJamJ0X3JlZ193cml0ZV8yKGxjZCwgSkJUX1JFR19PVVRQVVRfQ09OVFJPTCwgMHhmZmY5LCAmcmV0KTsKKworCS8qIFNsZWVwIG1vZGUgb2ZmICovCisJamJ0X3JldF93cml0ZV8wKGxjZCwgSkJUX1JFR19TTEVFUF9PVVQsICZyZXQpOworCisJLyogYXQgdGhpcyBwb2ludCB3ZSBoYXZlIGxpa2UgNTAlIGdyZXkgKi8KKworCS8qIGluaXRpYWxpemUgcmVnaXN0ZXIgc2V0ICovCisJamJ0X3JlZ193cml0ZV8xKGxjZCwgSkJUX1JFR19ESVNQTEFZX01PREUxLCAweDAxLCAmcmV0KTsKKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX0RJU1BMQVlfTU9ERTIsIDB4MDAsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfUkdCX0ZPUk1BVCwgMHg2MCwgJnJldCk7CisJamJ0X3JlZ193cml0ZV8xKGxjZCwgSkJUX1JFR19EUklWRV9TWVNURU0sIDB4MTAsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfQk9PU1RFUl9PUCwgMHg1NiwgJnJldCk7CisJamJ0X3JlZ193cml0ZV8xKGxjZCwgSkJUX1JFR19CT09TVEVSX01PREUsIDB4MzMsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfQk9PU1RFUl9GUkVRLCAweDExLCAmcmV0KTsKKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX0JPT1NURVJfRlJFUSwgMHgxMSwgJnJldCk7CisJamJ0X3JlZ193cml0ZV8xKGxjZCwgSkJUX1JFR19PUEFNUF9TWVNDTEssIDB4MDIsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfVlNDX1ZPTFRBR0UsIDB4MmIsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfVkNPTV9WT0xUQUdFLCAweDQwLCAmcmV0KTsKKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX0VYVF9ESVNQTCwgMHgwMywgJnJldCk7CisJamJ0X3JlZ193cml0ZV8xKGxjZCwgSkJUX1JFR19EQ0NMS19EQ0VWLCAweDA0LCAmcmV0KTsKKwkvKgorCSAqIGRlZmF1bHQgb2YgMHgwMiBpbiBKQlRfUkVHX0FTV19TTEVXIHJlc3BvbnNpYmxlIGZvciA3Mkh6IHJlcXVpcmVtZW50CisJICogdG8gYXZvaWQgcmVkIC8gYmx1ZSBmbGlja2VyCisJICovCisJamJ0X3JlZ193cml0ZV8xKGxjZCwgSkJUX1JFR19BU1dfU0xFVywgMHgwNCwgJnJldCk7CisJamJ0X3JlZ193cml0ZV8xKGxjZCwgSkJUX1JFR19EVU1NWV9ESVNQTEFZLCAweDAwLCAmcmV0KTsKKworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfU0xFRVBfT1VUX0ZSX0EsIDB4MTEsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfU0xFRVBfT1VUX0ZSX0IsIDB4MTEsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfU0xFRVBfT1VUX0ZSX0MsIDB4MTEsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMihsY2QsIEpCVF9SRUdfU0xFRVBfSU5fTENDTlRfRCwgMHgyMDQwLCAmcmV0KTsKKwlqYnRfcmVnX3dyaXRlXzIobGNkLCBKQlRfUkVHX1NMRUVQX0lOX0xDQ05UX0UsIDB4NjBjMCwgJnJldCk7CisJamJ0X3JlZ193cml0ZV8yKGxjZCwgSkJUX1JFR19TTEVFUF9JTl9MQ0NOVF9GLCAweDEwMjAsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMihsY2QsIEpCVF9SRUdfU0xFRVBfSU5fTENDTlRfRywgMHg2MGMwLCAmcmV0KTsKKworCWpidF9yZWdfd3JpdGVfMihsY2QsIEpCVF9SRUdfR0FNTUExX0ZJTkVfMSwgMHg1NTMzLCAmcmV0KTsKKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX0dBTU1BMV9GSU5FXzIsIDB4MDAsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfR0FNTUExX0lOQ0xJTkFUSU9OLCAweDAwLCAmcmV0KTsKKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX0dBTU1BMV9CTFVFX09GRlNFVCwgMHgwMCwgJnJldCk7CisKKwlqYnRfcmVnX3dyaXRlXzIobGNkLCBKQlRfUkVHX0hDTE9DS19WR0EsIDB4MWYwLCAmcmV0KTsKKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX0JMQU5LX0NPTlRST0wsIDB4MDIsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMihsY2QsIEpCVF9SRUdfQkxBTktfVEhfVFYsIDB4MDgwNCwgJnJldCk7CisKKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX0NLVl9PTl9PRkYsIDB4MDEsICZyZXQpOworCWpidF9yZWdfd3JpdGVfMihsY2QsIEpCVF9SRUdfQ0tWXzFfMiwgMHgwMDAwLCAmcmV0KTsKKworCWpidF9yZWdfd3JpdGVfMihsY2QsIEpCVF9SRUdfT0VWX1RJTUlORywgMHgwZDBlLCAmcmV0KTsKKwlqYnRfcmVnX3dyaXRlXzIobGNkLCBKQlRfUkVHX0FTV19USU1JTkdfMSwgMHgxMWE0LCAmcmV0KTsKKwlqYnRfcmVnX3dyaXRlXzEobGNkLCBKQlRfUkVHX0FTV19USU1JTkdfMiwgMHgwZSwgJnJldCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHRkMDI4dHRlYzFfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCB0ZDAyOHR0ZWMxX3BhbmVsICpsY2QgPSB0b190ZDAyOHR0ZWMxX2RldmljZShwYW5lbCk7CisJaW50IHJldDsKKworCXJldCA9IGpidF9yZXRfd3JpdGVfMChsY2QsIEpCVF9SRUdfRElTUExBWV9PTiwgTlVMTCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWJhY2tsaWdodF9lbmFibGUobGNkLT5iYWNrbGlnaHQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdGQwMjh0dGVjMV9kaXNhYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCB0ZDAyOHR0ZWMxX3BhbmVsICpsY2QgPSB0b190ZDAyOHR0ZWMxX2RldmljZShwYW5lbCk7CisKKwliYWNrbGlnaHRfZGlzYWJsZShsY2QtPmJhY2tsaWdodCk7CisKKwlqYnRfcmV0X3dyaXRlXzAobGNkLCBKQlRfUkVHX0RJU1BMQVlfT0ZGLCBOVUxMKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRkMDI4dHRlYzFfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCB0ZDAyOHR0ZWMxX3BhbmVsICpsY2QgPSB0b190ZDAyOHR0ZWMxX2RldmljZShwYW5lbCk7CisKKwlqYnRfcmVnX3dyaXRlXzIobGNkLCBKQlRfUkVHX09VVFBVVF9DT05UUk9MLCAweDgwMDIsIE5VTEwpOworCWpidF9yZXRfd3JpdGVfMChsY2QsIEpCVF9SRUdfU0xFRVBfSU4sIE5VTEwpOworCWpidF9yZWdfd3JpdGVfMShsY2QsIEpCVF9SRUdfUE9XRVJfT05fT0ZGLCAweDAwLCBOVUxMKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgdGQwMjh0dGVjMV9tb2RlID0geworCS5jbG9jayA9IDIyMTUzLAorCS5oZGlzcGxheSA9IDQ4MCwKKwkuaHN5bmNfc3RhcnQgPSA0ODAgKyAyNCwKKwkuaHN5bmNfZW5kID0gNDgwICsgMjQgKyA4LAorCS5odG90YWwgPSA0ODAgKyAyNCArIDggKyA4LAorCS52ZGlzcGxheSA9IDY0MCwKKwkudnN5bmNfc3RhcnQgPSA2NDAgKyA0LAorCS52c3luY19lbmQgPSA2NDAgKyA0ICsgMiwKKwkudnRvdGFsID0gNjQwICsgNCArIDIgKyAyLAorCS52cmVmcmVzaCA9IDY2LAorCS50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRCwKKwkuZmxhZ3MgPSBEUk1fTU9ERV9GTEFHX05IU1lOQyB8IERSTV9NT0RFX0ZMQUdfTlZTWU5DLAorCS53aWR0aF9tbSA9IDQzLAorCS5oZWlnaHRfbW0gPSA1OCwKK307CisKK3N0YXRpYyBpbnQgdGQwMjh0dGVjMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ0ZDAyOHR0ZWMxX21vZGUpOworCWlmICghbW9kZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CisKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IHRkMDI4dHRlYzFfbW9kZS53aWR0aF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSB0ZDAyOHR0ZWMxX21vZGUuaGVpZ2h0X21tOworCS8qCisJICogRklYTUU6IEFjY29yZGluZyB0byB0aGUgZGF0YXNoZWV0IHN5bmMgc2lnbmFscyBhcmUgc2FtcGxlZCBvbiB0aGUKKwkgKiByaXNpbmcgZWRnZSBvZiB0aGUgY2xvY2ssIGJ1dCB0aGUgY29kZSBydW5uaW5nIG9uIHRoZSBPcGVuTW9rbyBOZW8KKwkgKiBGcmVlUnVubmVyIGFuZCBOZW8gMTk3MyBpbmRpY2F0ZXMgc2FtcGxpbmcgb24gdGhlIGZhbGxpbmcgZWRnZS4gVGhpcworCSAqIHNob3VsZCBiZSB0ZXN0ZWQgb24gYSByZWFsIGRldmljZS4KKwkgKi8KKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfREVfSElHSAorCQkJCQkgIHwgRFJNX0JVU19GTEFHX1NZTkNfU0FNUExFX05FR0VER0UKKwkJCQkJICB8IERSTV9CVVNfRkxBR19QSVhEQVRBX1NBTVBMRV9QT1NFREdFOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIHRkMDI4dHRlYzFfZnVuY3MgPSB7CisJLnByZXBhcmUgPSB0ZDAyOHR0ZWMxX3ByZXBhcmUsCisJLmVuYWJsZSA9IHRkMDI4dHRlYzFfZW5hYmxlLAorCS5kaXNhYmxlID0gdGQwMjh0dGVjMV9kaXNhYmxlLAorCS51bnByZXBhcmUgPSB0ZDAyOHR0ZWMxX3VucHJlcGFyZSwKKwkuZ2V0X21vZGVzID0gdGQwMjh0dGVjMV9nZXRfbW9kZXMsCit9OworCitzdGF0aWMgaW50IHRkMDI4dHRlYzFfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgdGQwMjh0dGVjMV9wYW5lbCAqbGNkOworCWludCByZXQ7CisKKwlsY2QgPSBkZXZtX2t6YWxsb2MoJnNwaS0+ZGV2LCBzaXplb2YoKmxjZCksIEdGUF9LRVJORUwpOworCWlmICghbGNkKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXNwaV9zZXRfZHJ2ZGF0YShzcGksIGxjZCk7CisJbGNkLT5zcGkgPSBzcGk7CisKKwlsY2QtPmJhY2tsaWdodCA9IGRldm1fb2ZfZmluZF9iYWNrbGlnaHQoJnNwaS0+ZGV2KTsKKwlpZiAoSVNfRVJSKGxjZC0+YmFja2xpZ2h0KSkKKwkJcmV0dXJuIFBUUl9FUlIobGNkLT5iYWNrbGlnaHQpOworCisJc3BpLT5tb2RlID0gU1BJX01PREVfMzsKKwlzcGktPmJpdHNfcGVyX3dvcmQgPSA5OworCisJcmV0ID0gc3BpX3NldHVwKHNwaSk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2Vycigmc3BpLT5kZXYsICJmYWlsZWQgdG8gc2V0dXAgU1BJOiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlkcm1fcGFuZWxfaW5pdCgmbGNkLT5wYW5lbCk7CisJbGNkLT5wYW5lbC5kZXYgPSAmbGNkLT5zcGktPmRldjsKKwlsY2QtPnBhbmVsLmZ1bmNzID0gJnRkMDI4dHRlYzFfZnVuY3M7CisKKwlyZXR1cm4gZHJtX3BhbmVsX2FkZCgmbGNkLT5wYW5lbCk7Cit9CisKK3N0YXRpYyBpbnQgdGQwMjh0dGVjMV9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgdGQwMjh0dGVjMV9wYW5lbCAqbGNkID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7CisKKwlkcm1fcGFuZWxfcmVtb3ZlKCZsY2QtPnBhbmVsKTsKKwlkcm1fcGFuZWxfZGlzYWJsZSgmbGNkLT5wYW5lbCk7CisJZHJtX3BhbmVsX3VucHJlcGFyZSgmbGNkLT5wYW5lbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdGQwMjh0dGVjMV9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAidHBvLHRkMDI4dHRlYzEiLCB9LAorCS8qIERUIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICovCisJeyAuY29tcGF0aWJsZSA9ICJ0b3Bwb2x5LHRkMDI4dHRlYzEiLCB9LAorCXsgLyogc2VudGluZWwgKi8gfSwKK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRkMDI4dHRlYzFfb2ZfbWF0Y2gpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgdGQwMjh0dGVjMV9pZHNbXSA9IHsKKwl7ICJ0cG8sdGQwMjh0dGVjMSIsIDB9LAorCXsgInRvcHBvbHksdGQwMjh0dGVjMSIsIDAgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCB0ZDAyOHR0ZWMxX2lkcyk7CisKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciB0ZDAyOHR0ZWMxX2RyaXZlciA9IHsKKwkucHJvYmUJCT0gdGQwMjh0dGVjMV9wcm9iZSwKKwkucmVtb3ZlCQk9IHRkMDI4dHRlYzFfcmVtb3ZlLAorCS5pZF90YWJsZQk9IHRkMDI4dHRlYzFfaWRzLAorCS5kcml2ZXIJCT0geworCQkubmFtZSAgID0gInBhbmVsLXRwby10ZDAyOHR0ZWMxIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gdGQwMjh0dGVjMV9vZl9tYXRjaCwKKwl9LAorfTsKKworbW9kdWxlX3NwaV9kcml2ZXIodGQwMjh0dGVjMV9kcml2ZXIpOworCitNT0RVTEVfQVVUSE9SKCJILiBOaWtvbGF1cyBTY2hhbGxlciA8aG5zQGdvbGRlbGljby5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlRvcHBvbHkgVEQwMjhUVEVDMSBwYW5lbCBkcml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwNDNtdGVhMS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQzNzA1NgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwNDNtdGVhMS5jCkBAIC0wLDAgKzEsNTA5IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKKy8qCisgKiBUb3Bwb2x5IFREMDQzTVRFQTEgUGFuZWwgRHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZAorICoKKyAqIEJhc2VkIG9uIHRoZSBvbWFwZHJtLXNwZWNpZmljIHBhbmVsLXRwby10ZDA0M210ZWExIGRyaXZlcgorICoKKyAqIEF1dGhvcjogR3Jhxb52eWRhcyBJZ25vdGFzIDxub3Rhc2FzQGdtYWlsLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgorI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisKKyNkZWZpbmUgVFBPX1IwMl9NT0RFKHgpCQkJKCh4KSAmIDcpCisjZGVmaW5lIFRQT19SMDJfTU9ERV84MDB4NDgwCQk3CisjZGVmaW5lIFRQT19SMDJfTkNMS19SSVNJTkcJCUJJVCgzKQorI2RlZmluZSBUUE9fUjAyX0hTWU5DX0hJR0gJCUJJVCg0KQorI2RlZmluZSBUUE9fUjAyX1ZTWU5DX0hJR0gJCUJJVCg1KQorCisjZGVmaW5lIFRQT19SMDNfTlNUQU5EQlkJCUJJVCgwKQorI2RlZmluZSBUUE9fUjAzX0VOX0NQX0NMSwkJQklUKDEpCisjZGVmaW5lIFRQT19SMDNfRU5fVkdMX1BVTVAJCUJJVCgyKQorI2RlZmluZSBUUE9fUjAzX0VOX1BXTQkJCUJJVCgzKQorI2RlZmluZSBUUE9fUjAzX0RSSVZJTkdfQ0FQXzEwMAkJQklUKDQpCisjZGVmaW5lIFRQT19SMDNfRU5fUFJFX0NIQVJHRQkJQklUKDYpCisjZGVmaW5lIFRQT19SMDNfU09GVFdBUkVfQ1RMCQlCSVQoNykKKworI2RlZmluZSBUUE9fUjA0X05GTElQX0gJCQlCSVQoMCkKKyNkZWZpbmUgVFBPX1IwNF9ORkxJUF9WCQkJQklUKDEpCisjZGVmaW5lIFRQT19SMDRfQ1BfQ0xLX0ZSRVFfMUgJCUJJVCgyKQorI2RlZmluZSBUUE9fUjA0X1ZHTF9GUkVRXzFICQlCSVQoNCkKKworI2RlZmluZSBUUE9fUjAzX1ZBTF9OT1JNQUwgXAorCShUUE9fUjAzX05TVEFOREJZIHwgVFBPX1IwM19FTl9DUF9DTEsgfCBUUE9fUjAzX0VOX1ZHTF9QVU1QIHwgXAorCSBUUE9fUjAzX0VOX1BXTSB8IFRQT19SMDNfRFJJVklOR19DQVBfMTAwIHwgVFBPX1IwM19FTl9QUkVfQ0hBUkdFIHwgXAorCSBUUE9fUjAzX1NPRlRXQVJFX0NUTCkKKworI2RlZmluZSBUUE9fUjAzX1ZBTF9TVEFOREJZIFwKKwkoVFBPX1IwM19EUklWSU5HX0NBUF8xMDAgfCBUUE9fUjAzX0VOX1BSRV9DSEFSR0UgfCBcCisJIFRQT19SMDNfU09GVFdBUkVfQ1RMKQorCitzdGF0aWMgY29uc3QgdTE2IHRkMDQzbXRlYTFfZGVmX2dhbW1hWzEyXSA9IHsKKwkxMDUsIDMxNSwgMzgxLCA0MzEsIDQ5MCwgNTM3LCA1NzksIDY4NiwgNzgwLCA4MzcsIDg4MCwgMTAyMworfTsKKworc3RydWN0IHRkMDQzbXRlYTFfcGFuZWwgeworCXN0cnVjdCBkcm1fcGFuZWwgcGFuZWw7CisKKwlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpOworCXN0cnVjdCByZWd1bGF0b3IgKnZjY19yZWc7CisJc3RydWN0IGdwaW9fZGVzYyAqcmVzZXRfZ3BpbzsKKworCXVuc2lnbmVkIGludCBtb2RlOworCXUxNiBnYW1tYVsxMl07CisJYm9vbCB2bWlycm9yOworCWJvb2wgcG93ZXJlZF9vbjsKKwlib29sIHNwaV9zdXNwZW5kZWQ7CisJYm9vbCBwb3dlcl9vbl9yZXN1bWU7Cit9OworCisjZGVmaW5lIHRvX3RkMDQzbXRlYTFfZGV2aWNlKHApIGNvbnRhaW5lcl9vZihwLCBzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCwgcGFuZWwpCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBIYXJkd2FyZSBBY2Nlc3MKKyAqLworCitzdGF0aWMgaW50IHRkMDQzbXRlYTFfd3JpdGUoc3RydWN0IHRkMDQzbXRlYTFfcGFuZWwgKmxjZCwgdTggYWRkciwgdTggdmFsdWUpCit7CisJc3RydWN0IHNwaV9tZXNzYWdlIG1zZzsKKwlzdHJ1Y3Qgc3BpX3RyYW5zZmVyIHhmZXI7CisJdTE2IGRhdGE7CisJaW50IHJldDsKKworCXNwaV9tZXNzYWdlX2luaXQoJm1zZyk7CisKKwltZW1zZXQoJnhmZXIsIDAsIHNpemVvZih4ZmVyKSk7CisKKwlkYXRhID0gKCh1MTYpYWRkciA8PCAxMCkgfCAoMSA8PCA4KSB8IHZhbHVlOworCXhmZXIudHhfYnVmID0gJmRhdGE7CisJeGZlci5iaXRzX3Blcl93b3JkID0gMTY7CisJeGZlci5sZW4gPSAyOworCXNwaV9tZXNzYWdlX2FkZF90YWlsKCZ4ZmVyLCAmbXNnKTsKKworCXJldCA9IHNwaV9zeW5jKGxjZC0+c3BpLCAmbXNnKTsKKwlpZiAocmV0IDwgMCkKKwkJZGV2X3dhcm4oJmxjZC0+c3BpLT5kZXYsICJmYWlsZWQgdG8gd3JpdGUgdG8gTENEIHJlZyAoJWQpXG4iLAorCQkJIHJldCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCB0ZDA0M210ZWExX3dyaXRlX2dhbW1hKHN0cnVjdCB0ZDA0M210ZWExX3BhbmVsICpsY2QpCit7CisJY29uc3QgdTE2ICpnYW1tYSA9IGxjZC0+Z2FtbWE7CisJdW5zaWduZWQgaW50IGk7CisJdTggdmFsOworCisJLyogZ2FtbWEgYml0cyBbOTo4XSAqLworCWZvciAodmFsID0gaSA9IDA7IGkgPCA0OyBpKyspCisJCXZhbCB8PSAoZ2FtbWFbaV0gJiAweDMwMCkgPj4gKChpICsgMSkgKiAyKTsKKwl0ZDA0M210ZWExX3dyaXRlKGxjZCwgMHgxMSwgdmFsKTsKKworCWZvciAodmFsID0gaSA9IDA7IGkgPCA0OyBpKyspCisJCXZhbCB8PSAoZ2FtbWFbaSArIDRdICYgMHgzMDApID4+ICgoaSArIDEpICogMik7CisJdGQwNDNtdGVhMV93cml0ZShsY2QsIDB4MTIsIHZhbCk7CisKKwlmb3IgKHZhbCA9IGkgPSAwOyBpIDwgNDsgaSsrKQorCQl2YWwgfD0gKGdhbW1hW2kgKyA4XSAmIDB4MzAwKSA+PiAoKGkgKyAxKSAqIDIpOworCXRkMDQzbXRlYTFfd3JpdGUobGNkLCAweDEzLCB2YWwpOworCisJLyogZ2FtbWEgYml0cyBbNzowXSAqLworCWZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKQorCQl0ZDA0M210ZWExX3dyaXRlKGxjZCwgMHgxNCArIGksIGdhbW1hW2ldICYgMHhmZik7Cit9CisKK3N0YXRpYyBpbnQgdGQwNDNtdGVhMV93cml0ZV9taXJyb3Ioc3RydWN0IHRkMDQzbXRlYTFfcGFuZWwgKmxjZCkKK3sKKwl1OCByZWc0ID0gVFBPX1IwNF9ORkxJUF9IIHwgVFBPX1IwNF9ORkxJUF9WIHwKKwkJVFBPX1IwNF9DUF9DTEtfRlJFUV8xSCB8IFRQT19SMDRfVkdMX0ZSRVFfMUg7CisJaWYgKGxjZC0+dm1pcnJvcikKKwkJcmVnNCAmPSB+VFBPX1IwNF9ORkxJUF9WOworCisJcmV0dXJuIHRkMDQzbXRlYTFfd3JpdGUobGNkLCA0LCByZWc0KTsKK30KKworc3RhdGljIGludCB0ZDA0M210ZWExX3Bvd2VyX29uKHN0cnVjdCB0ZDA0M210ZWExX3BhbmVsICpsY2QpCit7CisJaW50IHJldDsKKworCWlmIChsY2QtPnBvd2VyZWRfb24pCisJCXJldHVybiAwOworCisJcmV0ID0gcmVndWxhdG9yX2VuYWJsZShsY2QtPnZjY19yZWcpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJLyogV2FpdCBmb3IgdGhlIHBhbmVsIHRvIHN0YWJpbGl6ZS4gKi8KKwltc2xlZXAoMTYwKTsKKworCWdwaW9kX3NldF92YWx1ZShsY2QtPnJlc2V0X2dwaW8sIDApOworCisJdGQwNDNtdGVhMV93cml0ZShsY2QsIDIsIFRQT19SMDJfTU9ERShsY2QtPm1vZGUpIHwgVFBPX1IwMl9OQ0xLX1JJU0lORyk7CisJdGQwNDNtdGVhMV93cml0ZShsY2QsIDMsIFRQT19SMDNfVkFMX05PUk1BTCk7CisJdGQwNDNtdGVhMV93cml0ZShsY2QsIDB4MjAsIDB4ZjApOworCXRkMDQzbXRlYTFfd3JpdGUobGNkLCAweDIxLCAweGYwKTsKKwl0ZDA0M210ZWExX3dyaXRlX21pcnJvcihsY2QpOworCXRkMDQzbXRlYTFfd3JpdGVfZ2FtbWEobGNkKTsKKworCWxjZC0+cG93ZXJlZF9vbiA9IHRydWU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgdGQwNDNtdGVhMV9wb3dlcl9vZmYoc3RydWN0IHRkMDQzbXRlYTFfcGFuZWwgKmxjZCkKK3sKKwlpZiAoIWxjZC0+cG93ZXJlZF9vbikKKwkJcmV0dXJuOworCisJdGQwNDNtdGVhMV93cml0ZShsY2QsIDMsIFRQT19SMDNfVkFMX1NUQU5EQlkgfCBUUE9fUjAzX0VOX1BXTSk7CisKKwlncGlvZF9zZXRfdmFsdWUobGNkLT5yZXNldF9ncGlvLCAxKTsKKworCS8qIHdhaXQgZm9yIGF0IGxlYXN0IDIgdnN5bmNzIGJlZm9yZSBjdXR0aW5nIG9mZiBwb3dlciAqLworCW1zbGVlcCg1MCk7CisKKwl0ZDA0M210ZWExX3dyaXRlKGxjZCwgMywgVFBPX1IwM19WQUxfU1RBTkRCWSk7CisKKwlyZWd1bGF0b3JfZGlzYWJsZShsY2QtPnZjY19yZWcpOworCisJbGNkLT5wb3dlcmVkX29uID0gZmFsc2U7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBzeXNmcworICovCisKK3N0YXRpYyBzc2l6ZV90IHZtaXJyb3Jfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJICAgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCAqbGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlZFxuIiwgbGNkLT52bWlycm9yKTsKK30KKworc3RhdGljIHNzaXplX3Qgdm1pcnJvcl9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKK3sKKwlzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCAqbGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50IHZhbDsKKwlpbnQgcmV0OworCisJcmV0ID0ga3N0cnRvaW50KGJ1ZiwgMCwgJnZhbCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlsY2QtPnZtaXJyb3IgPSAhIXZhbDsKKworCXJldCA9IHRkMDQzbXRlYTFfd3JpdGVfbWlycm9yKGxjZCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IG1vZGVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCAqbGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlZFxuIiwgbGNkLT5tb2RlKTsKK30KKworc3RhdGljIHNzaXplX3QgbW9kZV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKK3sKKwlzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCAqbGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJbG9uZyB2YWw7CisJaW50IHJldDsKKworCXJldCA9IGtzdHJ0b2woYnVmLCAwLCAmdmFsKTsKKwlpZiAocmV0ICE9IDAgfHwgdmFsICYgfjcpCisJCXJldHVybiAtRUlOVkFMOworCisJbGNkLT5tb2RlID0gdmFsOworCisJdmFsIHw9IFRQT19SMDJfTkNMS19SSVNJTkc7CisJdGQwNDNtdGVhMV93cml0ZShsY2QsIDIsIHZhbCk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGdhbW1hX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSAgY2hhciAqYnVmKQoreworCXN0cnVjdCB0ZDA0M210ZWExX3BhbmVsICpsY2QgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlzc2l6ZV90IGxlbiA9IDA7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGxjZC0+Z2FtbWEpOyBpKyspIHsKKwkJcmV0ID0gc25wcmludGYoYnVmICsgbGVuLCBQQUdFX1NJWkUgLSBsZW4sICIldSAiLAorCQkJICAgICAgIGxjZC0+Z2FtbWFbaV0pOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisJCWxlbiArPSByZXQ7CisJfQorCWJ1ZltsZW4gLSAxXSA9ICdcbic7CisKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgc3NpemVfdCBnYW1tYV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IHRkMDQzbXRlYTFfcGFuZWwgKmxjZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGludCBnWzEyXTsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0OworCisJcmV0ID0gc3NjYW5mKGJ1ZiwgIiV1ICV1ICV1ICV1ICV1ICV1ICV1ICV1ICV1ICV1ICV1ICV1IiwKKwkJICAgICAmZ1swXSwgJmdbMV0sICZnWzJdLCAmZ1szXSwgJmdbNF0sICZnWzVdLAorCQkgICAgICZnWzZdLCAmZ1s3XSwgJmdbOF0sICZnWzldLCAmZ1sxMF0sICZnWzExXSk7CisJaWYgKHJldCAhPSAxMikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykKKwkJbGNkLT5nYW1tYVtpXSA9IGdbaV07CisKKwl0ZDA0M210ZWExX3dyaXRlX2dhbW1hKGxjZCk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyh2bWlycm9yKTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhtb2RlKTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhnYW1tYSk7CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICp0ZDA0M210ZWExX2F0dHJzW10gPSB7CisJJmRldl9hdHRyX3ZtaXJyb3IuYXR0ciwKKwkmZGV2X2F0dHJfbW9kZS5hdHRyLAorCSZkZXZfYXR0cl9nYW1tYS5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCB0ZDA0M210ZWExX2F0dHJfZ3JvdXAgPSB7CisJLmF0dHJzID0gdGQwNDNtdGVhMV9hdHRycywKK307CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBQYW5lbCBPcGVyYXRpb25zCisgKi8KKworc3RhdGljIGludCB0ZDA0M210ZWExX3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCAqbGNkID0gdG9fdGQwNDNtdGVhMV9kZXZpY2UocGFuZWwpOworCisJaWYgKCFsY2QtPnNwaV9zdXNwZW5kZWQpCisJCXRkMDQzbXRlYTFfcG93ZXJfb2ZmKGxjZCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0ZDA0M210ZWExX3ByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IHRkMDQzbXRlYTFfcGFuZWwgKmxjZCA9IHRvX3RkMDQzbXRlYTFfZGV2aWNlKHBhbmVsKTsKKwlpbnQgcmV0OworCisJLyoKKwkgKiBJZiB3ZSBhcmUgcmVzdW1pbmcgZnJvbSBzeXN0ZW0gc3VzcGVuZCwgU1BJIG1pZ2h0IG5vdCBiZSBlbmFibGVkCisJICogeWV0LCBzbyB3ZSdsbCBwcm9ncmFtIHRoZSBMQ0QgZnJvbSBTUEkgUE0gcmVzdW1lIGNhbGxiYWNrLgorCSAqLworCWlmIChsY2QtPnNwaV9zdXNwZW5kZWQpCisJCXJldHVybiAwOworCisJcmV0ID0gdGQwNDNtdGVhMV9wb3dlcl9vbihsY2QpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmbGNkLT5zcGktPmRldiwgIiVzOiBwb3dlciBvbiBmYWlsZWQgKCVkKVxuIiwKKwkJCV9fZnVuY19fLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgdGQwNDNtdGVhMV9tb2RlID0geworCS5jbG9jayA9IDM2MDAwLAorCS5oZGlzcGxheSA9IDgwMCwKKwkuaHN5bmNfc3RhcnQgPSA4MDAgKyA2OCwKKwkuaHN5bmNfZW5kID0gODAwICsgNjggKyAxLAorCS5odG90YWwgPSA4MDAgKyA2OCArIDEgKyAyMTQsCisJLnZkaXNwbGF5ID0gNDgwLAorCS52c3luY19zdGFydCA9IDQ4MCArIDM5LAorCS52c3luY19lbmQgPSA0ODAgKyAzOSArIDEsCisJLnZ0b3RhbCA9IDQ4MCArIDM5ICsgMSArIDM0LAorCS52cmVmcmVzaCA9IDYwLAorCS50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRCwKKwkuZmxhZ3MgPSBEUk1fTU9ERV9GTEFHX05IU1lOQyB8IERSTV9NT0RFX0ZMQUdfTlZTWU5DLAorCS53aWR0aF9tbSA9IDk0LAorCS5oZWlnaHRfbW0gPSA1NiwKK307CisKK3N0YXRpYyBpbnQgdGQwNDNtdGVhMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ0ZDA0M210ZWExX21vZGUpOworCWlmICghbW9kZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CisKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IHRkMDQzbXRlYTFfbW9kZS53aWR0aF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSB0ZDA0M210ZWExX21vZGUuaGVpZ2h0X21tOworCS8qCisJICogRklYTUU6IEFjY29yZGluZyB0byB0aGUgZGF0YXNoZWV0IHN5bmMgc2lnbmFscyBhcmUgc2FtcGxlZCBvbiB0aGUKKwkgKiByaXNpbmcgZWRnZSBvZiB0aGUgY2xvY2ssIGJ1dCB0aGUgY29kZSBydW5uaW5nIG9uIHRoZSBPTUFQMyBQYW5kb3JhCisJICogaW5kaWNhdGVzIHNhbXBsaW5nIG9uIHRoZSBmYWxsaW5nIGVkZ2UuIFRoaXMgc2hvdWxkIGJlIHRlc3RlZCBvbiBhCisJICogcmVhbCBkZXZpY2UuCisJICovCisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gRFJNX0JVU19GTEFHX0RFX0hJR0gKKwkJCQkJICB8IERSTV9CVVNfRkxBR19TWU5DX1NBTVBMRV9ORUdFREdFCisJCQkJCSAgfCBEUk1fQlVTX0ZMQUdfUElYREFUQV9TQU1QTEVfUE9TRURHRTsKKworCXJldHVybiAxOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wYW5lbF9mdW5jcyB0ZDA0M210ZWExX2Z1bmNzID0geworCS51bnByZXBhcmUgPSB0ZDA0M210ZWExX3VucHJlcGFyZSwKKwkucHJlcGFyZSA9IHRkMDQzbXRlYTFfcHJlcGFyZSwKKwkuZ2V0X21vZGVzID0gdGQwNDNtdGVhMV9nZXRfbW9kZXMsCit9OworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogUG93ZXIgTWFuYWdlbWVudCwgUHJvYmUgYW5kIFJlbW92ZQorICovCisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgdGQwNDNtdGVhMV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCAqbGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlpZiAobGNkLT5wb3dlcmVkX29uKSB7CisJCXRkMDQzbXRlYTFfcG93ZXJfb2ZmKGxjZCk7CisJCWxjZC0+cG93ZXJlZF9vbiA9IHRydWU7CisJfQorCisJbGNkLT5zcGlfc3VzcGVuZGVkID0gdHJ1ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIHRkMDQzbXRlYTFfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCAqbGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50IHJldDsKKworCWxjZC0+c3BpX3N1c3BlbmRlZCA9IGZhbHNlOworCisJaWYgKGxjZC0+cG93ZXJlZF9vbikgeworCQlsY2QtPnBvd2VyZWRfb24gPSBmYWxzZTsKKwkJcmV0ID0gdGQwNDNtdGVhMV9wb3dlcl9vbihsY2QpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKHRkMDQzbXRlYTFfcG1fb3BzLCB0ZDA0M210ZWExX3N1c3BlbmQsCisJCQkgdGQwNDNtdGVhMV9yZXN1bWUpOworCitzdGF0aWMgaW50IHRkMDQzbXRlYTFfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCAqbGNkOworCWludCByZXQ7CisKKwlsY2QgPSBkZXZtX2t6YWxsb2MoJnNwaS0+ZGV2LCBzaXplb2YoKmxjZCksIEdGUF9LRVJORUwpOworCWlmIChsY2QgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzcGlfc2V0X2RydmRhdGEoc3BpLCBsY2QpOworCWxjZC0+c3BpID0gc3BpOworCWxjZC0+bW9kZSA9IFRQT19SMDJfTU9ERV84MDB4NDgwOworCW1lbWNweShsY2QtPmdhbW1hLCB0ZDA0M210ZWExX2RlZl9nYW1tYSwgc2l6ZW9mKGxjZC0+Z2FtbWEpKTsKKworCWxjZC0+dmNjX3JlZyA9IGRldm1fcmVndWxhdG9yX2dldCgmc3BpLT5kZXYsICJ2Y2MiKTsKKwlpZiAoSVNfRVJSKGxjZC0+dmNjX3JlZykpIHsKKwkJZGV2X2Vycigmc3BpLT5kZXYsICJmYWlsZWQgdG8gZ2V0IFZDQyByZWd1bGF0b3JcbiIpOworCQlyZXR1cm4gUFRSX0VSUihsY2QtPnZjY19yZWcpOworCX0KKworCWxjZC0+cmVzZXRfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0KCZzcGktPmRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOworCWlmIChJU19FUlIobGNkLT5yZXNldF9ncGlvKSkgeworCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0byBnZXQgcmVzZXQgR1BJT1xuIik7CisJCXJldHVybiBQVFJfRVJSKGxjZC0+cmVzZXRfZ3Bpbyk7CisJfQorCisJc3BpLT5iaXRzX3Blcl93b3JkID0gMTY7CisJc3BpLT5tb2RlID0gU1BJX01PREVfMDsKKworCXJldCA9IHNwaV9zZXR1cChzcGkpOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoJnNwaS0+ZGV2LCAiZmFpbGVkIHRvIHNldHVwIFNQSTogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZzcGktPmRldi5rb2JqLCAmdGQwNDNtdGVhMV9hdHRyX2dyb3VwKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0byBjcmVhdGUgc3lzZnMgZmlsZXNcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCWRybV9wYW5lbF9pbml0KCZsY2QtPnBhbmVsKTsKKwlsY2QtPnBhbmVsLmRldiA9ICZsY2QtPnNwaS0+ZGV2OworCWxjZC0+cGFuZWwuZnVuY3MgPSAmdGQwNDNtdGVhMV9mdW5jczsKKworCXJldCA9IGRybV9wYW5lbF9hZGQoJmxjZC0+cGFuZWwpOworCWlmIChyZXQgPCAwKSB7CisJCXN5c2ZzX3JlbW92ZV9ncm91cCgmc3BpLT5kZXYua29iaiwgJnRkMDQzbXRlYTFfYXR0cl9ncm91cCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdGQwNDNtdGVhMV9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgdGQwNDNtdGVhMV9wYW5lbCAqbGNkID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7CisKKwlkcm1fcGFuZWxfcmVtb3ZlKCZsY2QtPnBhbmVsKTsKKwlkcm1fcGFuZWxfZGlzYWJsZSgmbGNkLT5wYW5lbCk7CisJZHJtX3BhbmVsX3VucHJlcGFyZSgmbGNkLT5wYW5lbCk7CisKKwlzeXNmc19yZW1vdmVfZ3JvdXAoJnNwaS0+ZGV2LmtvYmosICZ0ZDA0M210ZWExX2F0dHJfZ3JvdXApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRkMDQzbXRlYTFfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInRwbyx0ZDA0M210ZWExIiwgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0sCit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0ZDA0M210ZWExX29mX21hdGNoKTsKKworc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIHRkMDQzbXRlYTFfZHJpdmVyID0geworCS5wcm9iZQkJPSB0ZDA0M210ZWExX3Byb2JlLAorCS5yZW1vdmUJCT0gdGQwNDNtdGVhMV9yZW1vdmUsCisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gInBhbmVsLXRwby10ZDA0M210ZWExIiwKKwkJLnBtCT0gJnRkMDQzbXRlYTFfcG1fb3BzLAorCQkub2ZfbWF0Y2hfdGFibGUgPSB0ZDA0M210ZWExX29mX21hdGNoLAorCX0sCit9OworCittb2R1bGVfc3BpX2RyaXZlcih0ZDA0M210ZWExX2RyaXZlcik7CisKK01PRFVMRV9BTElBUygic3BpOnRwbyx0ZDA0M210ZWExIik7CitNT0RVTEVfQVVUSE9SKCJHcmHFvnZ5ZGFzIElnbm90YXMgPG5vdGFzYXNAZ21haWwuY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJUUE8gVEQwNDNNVEVBMSBQYW5lbCBEcml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9NYWtlZmlsZQppbmRleCBlY2YwODY0Li5iNzE5MzU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L01ha2VmaWxlCkBAIC01LDYgKzUsNyBAQAogCXBhbmZyb3N0X2RldmljZS5vIFwKIAlwYW5mcm9zdF9kZXZmcmVxLm8gXAogCXBhbmZyb3N0X2dlbS5vIFwKKwlwYW5mcm9zdF9nZW1fc2hyaW5rZXIubyBcCiAJcGFuZnJvc3RfZ3B1Lm8gXAogCXBhbmZyb3N0X2pvYi5vIFwKIAlwYW5mcm9zdF9tbXUubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvVE9ETyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9UT0RPCmluZGV4IGMyZTQ0YWQuLjUzNmEwZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9UT0RPCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9UT0RPCkBAIC02LDIyICs2LDcgQEAKICAgLSBCaWZyb3N0IHNwZWNpZmljIGZlYXR1cmUgYW5kIGlzc3VlIGhhbmRsaW5nCiAgIC0gQ29oZXJlbnQgRE1BIHN1cHBvcnQKIAotLSBTdXBwb3J0IGZvciAyTUIgcGFnZXMuIFRoZSBpby1wZ3RhYmxlIGNvZGUgYWxyZWFkeSBzdXBwb3J0cyB0aGlzLiBGaW5pc2hpbmcKLSAgc3VwcG9ydCBpbnZvbHZlcyBlaXRoZXIgY29weWluZyBvciBhZGFwdGluZyB0aGUgaW9tbXUgQVBJIHRvIGhhbmRsZSBwYXNzaW5nCi0gIGFsaWduZWQgYWRkcmVzc2VzIGFuZCBzaXplcyB0byB0aGUgaW8tcGd0YWJsZSBjb2RlLgotCi0tIFBlciBGRCBhZGRyZXNzIHNwYWNlIHN1cHBvcnQuIFRoZSBoL3cgc3VwcG9ydHMgbXVsdGlwbGUgYWRkcmVzc2VzIHNwYWNlcy4KLSAgVGhlIGhhcmQgcGFydCBpcyBoYW5kbGluZyB3aGVuIG1vcmUgYWRkcmVzcyBzcGFjZXMgYXJlIG5lZWRlZCB0aGFuIHdoYXQKLSAgdGhlIGgvdyBwcm92aWRlcy4KLQotLSBTdXBwb3J0IHBpbm5pbmcgcGFnZXMgb24gZGVtYW5kIChHUFUgcGFnZSBmYXVsdHMpLgotCiAtIFN1cHBvcnQgdXNlcnNwYWNlIGNvbnRyb2xsZWQgR1BVIHZpcnR1YWwgYWRkcmVzc2VzLiBOZWVkZWQgZm9yIFZ1bGthbi4gKFRvbWV1KQogCi0tIFN1cHBvcnQgZm9yIG1hZHZpc2UgYW5kIGEgc2hyaW5rZXIuCi0KIC0gQ29tcHV0ZSBqb2Igc3VwcG9ydC4gU28gY2FsbGVkICdjb21wdXRlIG9ubHknIGpvYnMgbmVlZCB0byBiZSBwbHVtYmVkIHVwIHRvCiAgIHVzZXJzcGFjZS4KLQotLSBQZXJmb3JtYW5jZSBjb3VudGVyIHN1cHBvcnQuIChCb3JpcykKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2RldmZyZXEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kZXZmcmVxLmMKaW5kZXggZGI3OTg1My4uMTJmZjc3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2RldmZyZXEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZGV2ZnJlcS5jCkBAIC0xMzYsOSArMTM2LDYgQEAgaW50IHBhbmZyb3N0X2RldmZyZXFfaW5pdChzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldikKIAlpbnQgcmV0OwogCXN0cnVjdCBkZXZfcG1fb3BwICpvcHA7CiAKLQlpZiAoIXBmZGV2LT5yZWd1bGF0b3IpCi0JCXJldHVybiAwOwotCiAJcmV0ID0gZGV2X3BtX29wcF9vZl9hZGRfdGFibGUoJnBmZGV2LT5wZGV2LT5kZXYpOwogCWlmIChyZXQgPT0gLUVOT0RFVikgLyogT3B0aW9uYWwsIGNvbnRpbnVlIHdpdGhvdXQgZGV2ZnJlcSAqLwogCQlyZXR1cm4gMDsKQEAgLTE1NywxNyArMTU0LDI0IEBAIGludCBwYW5mcm9zdF9kZXZmcmVxX2luaXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpCiAJZGV2X3BtX29wcF9wdXQob3BwKTsKIAogCXBmZGV2LT5kZXZmcmVxLmRldmZyZXEgPSBkZXZtX2RldmZyZXFfYWRkX2RldmljZSgmcGZkZXYtPnBkZXYtPmRldiwKLQkJCSZwYW5mcm9zdF9kZXZmcmVxX3Byb2ZpbGUsICJzaW1wbGVfb25kZW1hbmQiLCBOVUxMKTsKKwkJCSZwYW5mcm9zdF9kZXZmcmVxX3Byb2ZpbGUsIERFVkZSRVFfR09WX1NJTVBMRV9PTkRFTUFORCwKKwkJCU5VTEwpOwogCWlmIChJU19FUlIocGZkZXYtPmRldmZyZXEuZGV2ZnJlcSkpIHsKIAkJRFJNX0RFVl9FUlJPUigmcGZkZXYtPnBkZXYtPmRldiwgIkNvdWxkbid0IGluaXRpYWxpemUgR1BVIGRldmZyZXFcbiIpOwogCQlyZXQgPSBQVFJfRVJSKHBmZGV2LT5kZXZmcmVxLmRldmZyZXEpOwogCQlwZmRldi0+ZGV2ZnJlcS5kZXZmcmVxID0gTlVMTDsKKwkJZGV2X3BtX29wcF9vZl9yZW1vdmVfdGFibGUoJnBmZGV2LT5wZGV2LT5kZXYpOwogCQlyZXR1cm4gcmV0OwogCX0KIAogCXJldHVybiAwOwogfQogCit2b2lkIHBhbmZyb3N0X2RldmZyZXFfZmluaShzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldikKK3sKKwlkZXZfcG1fb3BwX29mX3JlbW92ZV90YWJsZSgmcGZkZXYtPnBkZXYtPmRldik7Cit9CisKIHZvaWQgcGFuZnJvc3RfZGV2ZnJlcV9yZXN1bWUoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpCiB7CiAJaW50IGk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZGV2ZnJlcS5oIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2RldmZyZXEuaAppbmRleCBlYjk5OTUzLi5lM2JjNjNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZGV2ZnJlcS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kZXZmcmVxLmgKQEAgLTUsNiArNSw3IEBACiAjZGVmaW5lIF9fUEFORlJPU1RfREVWRlJFUV9IX18KIAogaW50IHBhbmZyb3N0X2RldmZyZXFfaW5pdChzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldik7Cit2b2lkIHBhbmZyb3N0X2RldmZyZXFfZmluaShzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldik7CiAKIHZvaWQgcGFuZnJvc3RfZGV2ZnJlcV9yZXN1bWUoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpOwogdm9pZCBwYW5mcm9zdF9kZXZmcmVxX3N1c3BlbmQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2RldmljZS5jCmluZGV4IDhhMTExZDcuLjIzOGZiNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZGV2aWNlLmMKQEAgLTUsNyArNSw2IEBACiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+CiAKICNpbmNsdWRlICJwYW5mcm9zdF9kZXZpY2UuaCIKQEAgLTkwLDEyICs4OSw5IEBAIHN0YXRpYyBpbnQgcGFuZnJvc3RfcmVndWxhdG9yX2luaXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpCiB7CiAJaW50IHJldDsKIAotCXBmZGV2LT5yZWd1bGF0b3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXRfb3B0aW9uYWwocGZkZXYtPmRldiwgIm1hbGkiKTsKKwlwZmRldi0+cmVndWxhdG9yID0gZGV2bV9yZWd1bGF0b3JfZ2V0KHBmZGV2LT5kZXYsICJtYWxpIik7CiAJaWYgKElTX0VSUihwZmRldi0+cmVndWxhdG9yKSkgewogCQlyZXQgPSBQVFJfRVJSKHBmZGV2LT5yZWd1bGF0b3IpOwotCQlwZmRldi0+cmVndWxhdG9yID0gTlVMTDsKLQkJaWYgKHJldCA9PSAtRU5PREVWKQotCQkJcmV0dXJuIDA7CiAJCWRldl9lcnIocGZkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgcmVndWxhdG9yOiAlZFxuIiwgcmV0KTsKIAkJcmV0dXJuIHJldDsKIAl9CkBAIC0xMTEsOCArMTA3LDcgQEAgc3RhdGljIGludCBwYW5mcm9zdF9yZWd1bGF0b3JfaW5pdChzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldikKIAogc3RhdGljIHZvaWQgcGFuZnJvc3RfcmVndWxhdG9yX2Zpbmkoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpCiB7Ci0JaWYgKHBmZGV2LT5yZWd1bGF0b3IpCi0JCXJlZ3VsYXRvcl9kaXNhYmxlKHBmZGV2LT5yZWd1bGF0b3IpOworCXJlZ3VsYXRvcl9kaXNhYmxlKHBmZGV2LT5yZWd1bGF0b3IpOwogfQogCiBpbnQgcGFuZnJvc3RfZGV2aWNlX2luaXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpCkBAIC0xMjMsOCArMTE4LDkgQEAgaW50IHBhbmZyb3N0X2RldmljZV9pbml0KHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2KQogCW11dGV4X2luaXQoJnBmZGV2LT5zY2hlZF9sb2NrKTsKIAltdXRleF9pbml0KCZwZmRldi0+cmVzZXRfbG9jayk7CiAJSU5JVF9MSVNUX0hFQUQoJnBmZGV2LT5zY2hlZHVsZWRfam9icyk7CisJSU5JVF9MSVNUX0hFQUQoJnBmZGV2LT5hc19scnVfbGlzdCk7CiAKLQlzcGluX2xvY2tfaW5pdCgmcGZkZXYtPmh3YWNjZXNzX2xvY2spOworCXNwaW5fbG9ja19pbml0KCZwZmRldi0+YXNfbG9jayk7CiAKIAllcnIgPSBwYW5mcm9zdF9jbGtfaW5pdChwZmRldik7CiAJaWYgKGVycikgewpAQCAtMTY0LDE0ICsxNjAsNiBAQCBpbnQgcGFuZnJvc3RfZGV2aWNlX2luaXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpCiAJaWYgKGVycikKIAkJZ290byBlcnJfb3V0NDsKIAotCS8qIHJ1bnRpbWUgUE0gd2lsbCB3YWtlIHVzIHVwIGxhdGVyICovCi0JcGFuZnJvc3RfZ3B1X3Bvd2VyX29mZihwZmRldik7Ci0KLQlwbV9ydW50aW1lX3NldF9hY3RpdmUocGZkZXYtPmRldik7Ci0JcG1fcnVudGltZV9nZXRfc3luYyhwZmRldi0+ZGV2KTsKLQlwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KHBmZGV2LT5kZXYpOwotCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKHBmZGV2LT5kZXYpOwotCiAJZXJyID0gcGFuZnJvc3RfcGVyZmNudF9pbml0KHBmZGV2KTsKIAlpZiAoZXJyKQogCQlnb3RvIGVycl9vdXQ1OwpAQCAtMjU0LDE4ICsyNDIsMjIgQEAgY29uc3QgY2hhciAqcGFuZnJvc3RfZXhjZXB0aW9uX25hbWUoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHUzMiBleGNlcHRpb24KIAlyZXR1cm4gIlVOS05PV04iOwogfQogCit2b2lkIHBhbmZyb3N0X2RldmljZV9yZXNldChzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldikKK3sKKwlwYW5mcm9zdF9ncHVfc29mdF9yZXNldChwZmRldik7CisKKwlwYW5mcm9zdF9ncHVfcG93ZXJfb24ocGZkZXYpOworCXBhbmZyb3N0X21tdV9yZXNldChwZmRldik7CisJcGFuZnJvc3Rfam9iX2VuYWJsZV9pbnRlcnJ1cHRzKHBmZGV2KTsKK30KKwogI2lmZGVmIENPTkZJR19QTQogaW50IHBhbmZyb3N0X2RldmljZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2KTsKIAlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCi0JcGFuZnJvc3RfZ3B1X3NvZnRfcmVzZXQocGZkZXYpOwotCi0JLyogVE9ETzogUmUtZW5hYmxlIGFsbCBvdGhlciBhZGRyZXNzIHNwYWNlcyAqLwotCXBhbmZyb3N0X2dwdV9wb3dlcl9vbihwZmRldik7Ci0JcGFuZnJvc3RfbW11X2VuYWJsZShwZmRldiwgMCk7Ci0JcGFuZnJvc3Rfam9iX2VuYWJsZV9pbnRlcnJ1cHRzKHBmZGV2KTsKKwlwYW5mcm9zdF9kZXZpY2VfcmVzZXQocGZkZXYpOwogCXBhbmZyb3N0X2RldmZyZXFfcmVzdW1lKHBmZGV2KTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2RldmljZS5oIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2RldmljZS5oCmluZGV4IDgzY2MwMWMuLjljMzliOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kZXZpY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZGV2aWNlLmgKQEAgLTUsNiArNSw4IEBACiAjaWZuZGVmIF9fUEFORlJPU1RfREVWSUNFX0hfXwogI2RlZmluZSBfX1BBTkZST1NUX0RFVklDRV9IX18KIAorI2luY2x1ZGUgPGxpbnV4L2F0b21pYy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLXBndGFibGUuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgpAQCAtNDMsNiArNDUsNyBAQCBzdHJ1Y3QgcGFuZnJvc3RfZmVhdHVyZXMgewogCXUzMiBqc19mZWF0dXJlc1sxNl07CiAKIAl1MzIgbnJfY29yZV9ncm91cHM7CisJdTMyIHRocmVhZF90bHNfYWxsb2M7CiAKIAl1bnNpZ25lZCBsb25nIGh3X2ZlYXR1cmVzWzY0IC8gQklUU19QRVJfTE9OR107CiAJdW5zaWduZWQgbG9uZyBod19pc3N1ZXNbNjQgLyBCSVRTX1BFUl9MT05HXTsKQEAgLTYwLDExICs2Myw2IEBAIHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2OwogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CiAKLQlzcGlubG9ja190IGh3YWNjZXNzX2xvY2s7Ci0KLQlzdHJ1Y3QgZHJtX21tIG1tOwotCXNwaW5sb2NrX3QgbW1fbG9jazsKLQogCXZvaWQgX19pb21lbSAqaW9tZW07CiAJc3RydWN0IGNsayAqY2xvY2s7CiAJc3RydWN0IGNsayAqYnVzX2Nsb2NrOwpAQCAtNzMsNyArNzEsMTEgQEAgc3RydWN0IHBhbmZyb3N0X2RldmljZSB7CiAKIAlzdHJ1Y3QgcGFuZnJvc3RfZmVhdHVyZXMgZmVhdHVyZXM7CiAKLQlzdHJ1Y3QgcGFuZnJvc3RfbW11ICptbXU7CisJc3BpbmxvY2tfdCBhc19sb2NrOworCXVuc2lnbmVkIGxvbmcgYXNfaW5fdXNlX21hc2s7CisJdW5zaWduZWQgbG9uZyBhc19hbGxvY19tYXNrOworCXN0cnVjdCBsaXN0X2hlYWQgYXNfbHJ1X2xpc3Q7CisKIAlzdHJ1Y3QgcGFuZnJvc3Rfam9iX3Nsb3QgKmpzOwogCiAJc3RydWN0IHBhbmZyb3N0X2pvYiAqam9ic1tOVU1fSk9CX1NMT1RTXTsKQEAgLTg0LDYgKzg2LDEwIEBAIHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgewogCXN0cnVjdCBtdXRleCBzY2hlZF9sb2NrOwogCXN0cnVjdCBtdXRleCByZXNldF9sb2NrOwogCisJc3RydWN0IG11dGV4IHNocmlua2VyX2xvY2s7CisJc3RydWN0IGxpc3RfaGVhZCBzaHJpbmtlcl9saXN0OworCXN0cnVjdCBzaHJpbmtlciBzaHJpbmtlcjsKKwogCXN0cnVjdCB7CiAJCXN0cnVjdCBkZXZmcmVxICpkZXZmcmVxOwogCQlzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY29vbGluZzsKQEAgLTkzLDEwICs5OSwyMiBAQCBzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlIHsKIAl9IGRldmZyZXE7CiB9OwogCitzdHJ1Y3QgcGFuZnJvc3RfbW11IHsKKwlzdHJ1Y3QgaW9fcGd0YWJsZV9jZmcgcGd0YmxfY2ZnOworCXN0cnVjdCBpb19wZ3RhYmxlX29wcyAqcGd0Ymxfb3BzOworCWludCBhczsKKwlhdG9taWNfdCBhc19jb3VudDsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cit9OworCiBzdHJ1Y3QgcGFuZnJvc3RfZmlsZV9wcml2IHsKIAlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldjsKIAogCXN0cnVjdCBkcm1fc2NoZWRfZW50aXR5IHNjaGVkX2VudGl0eVtOVU1fSk9CX1NMT1RTXTsKKworCXN0cnVjdCBwYW5mcm9zdF9tbXUgbW11OworCXN0cnVjdCBkcm1fbW0gbW07CisJc3BpbmxvY2tfdCBtbV9sb2NrOwogfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICp0b19wYW5mcm9zdF9kZXZpY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYpCkBAIC0xMjcsNiArMTQ1LDcgQEAgaW50IHBhbmZyb3N0X3Vuc3RhYmxlX2lvY3RsX2NoZWNrKHZvaWQpOwogCiBpbnQgcGFuZnJvc3RfZGV2aWNlX2luaXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpOwogdm9pZCBwYW5mcm9zdF9kZXZpY2VfZmluaShzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldik7Cit2b2lkIHBhbmZyb3N0X2RldmljZV9yZXNldChzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldik7CiAKIGludCBwYW5mcm9zdF9kZXZpY2VfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgcGFuZnJvc3RfZGV2aWNlX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kcnYuYwppbmRleCA4NWI0YjUxLi5iYzJkZGViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5jCkBAIC0zMiwxMCArMzIsNDIgQEAgc3RhdGljIGludCBwYW5mcm9zdF9pb2N0bF9nZXRfcGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdAogCWlmIChwYXJhbS0+cGFkICE9IDApCiAJCXJldHVybiAtRUlOVkFMOwogCisjZGVmaW5lIFBBTkZST1NUX0ZFQVRVUkUobmFtZSwgbWVtYmVyKQkJCVwKKwljYXNlIERSTV9QQU5GUk9TVF9QQVJBTV8gIyMgbmFtZToJCVwKKwkJcGFyYW0tPnZhbHVlID0gcGZkZXYtPmZlYXR1cmVzLm1lbWJlcjsJXAorCQlicmVhaworI2RlZmluZSBQQU5GUk9TVF9GRUFUVVJFX0FSUkFZKG5hbWUsIG1lbWJlciwgbWF4KQkJCVwKKwljYXNlIERSTV9QQU5GUk9TVF9QQVJBTV8gIyMgbmFtZSAjIyAwIC4uLgkJCVwKKwkJRFJNX1BBTkZST1NUX1BBUkFNXyAjIyBuYW1lICMjIG1heDoJCQlcCisJCXBhcmFtLT52YWx1ZSA9IHBmZGV2LT5mZWF0dXJlcy5tZW1iZXJbcGFyYW0tPnBhcmFtIC0JXAorCQkJRFJNX1BBTkZST1NUX1BBUkFNXyAjIyBuYW1lICMjIDBdOwkJXAorCQlicmVhaworCiAJc3dpdGNoIChwYXJhbS0+cGFyYW0pIHsKLQljYXNlIERSTV9QQU5GUk9TVF9QQVJBTV9HUFVfUFJPRF9JRDoKLQkJcGFyYW0tPnZhbHVlID0gcGZkZXYtPmZlYXR1cmVzLmlkOwotCQlicmVhazsKKwkJUEFORlJPU1RfRkVBVFVSRShHUFVfUFJPRF9JRCwgaWQpOworCQlQQU5GUk9TVF9GRUFUVVJFKEdQVV9SRVZJU0lPTiwgcmV2aXNpb24pOworCQlQQU5GUk9TVF9GRUFUVVJFKFNIQURFUl9QUkVTRU5ULCBzaGFkZXJfcHJlc2VudCk7CisJCVBBTkZST1NUX0ZFQVRVUkUoVElMRVJfUFJFU0VOVCwgdGlsZXJfcHJlc2VudCk7CisJCVBBTkZST1NUX0ZFQVRVUkUoTDJfUFJFU0VOVCwgbDJfcHJlc2VudCk7CisJCVBBTkZST1NUX0ZFQVRVUkUoU1RBQ0tfUFJFU0VOVCwgc3RhY2tfcHJlc2VudCk7CisJCVBBTkZST1NUX0ZFQVRVUkUoQVNfUFJFU0VOVCwgYXNfcHJlc2VudCk7CisJCVBBTkZST1NUX0ZFQVRVUkUoSlNfUFJFU0VOVCwganNfcHJlc2VudCk7CisJCVBBTkZST1NUX0ZFQVRVUkUoTDJfRkVBVFVSRVMsIGwyX2ZlYXR1cmVzKTsKKwkJUEFORlJPU1RfRkVBVFVSRShDT1JFX0ZFQVRVUkVTLCBjb3JlX2ZlYXR1cmVzKTsKKwkJUEFORlJPU1RfRkVBVFVSRShUSUxFUl9GRUFUVVJFUywgdGlsZXJfZmVhdHVyZXMpOworCQlQQU5GUk9TVF9GRUFUVVJFKE1FTV9GRUFUVVJFUywgbWVtX2ZlYXR1cmVzKTsKKwkJUEFORlJPU1RfRkVBVFVSRShNTVVfRkVBVFVSRVMsIG1tdV9mZWF0dXJlcyk7CisJCVBBTkZST1NUX0ZFQVRVUkUoVEhSRUFEX0ZFQVRVUkVTLCB0aHJlYWRfZmVhdHVyZXMpOworCQlQQU5GUk9TVF9GRUFUVVJFKE1BWF9USFJFQURTLCBtYXhfdGhyZWFkcyk7CisJCVBBTkZST1NUX0ZFQVRVUkUoVEhSRUFEX01BWF9XT1JLR1JPVVBfU1osCisJCQkJdGhyZWFkX21heF93b3JrZ3JvdXBfc3opOworCQlQQU5GUk9TVF9GRUFUVVJFKFRIUkVBRF9NQVhfQkFSUklFUl9TWiwKKwkJCQl0aHJlYWRfbWF4X2JhcnJpZXJfc3opOworCQlQQU5GUk9TVF9GRUFUVVJFKENPSEVSRU5DWV9GRUFUVVJFUywgY29oZXJlbmN5X2ZlYXR1cmVzKTsKKwkJUEFORlJPU1RfRkVBVFVSRV9BUlJBWShURVhUVVJFX0ZFQVRVUkVTLCB0ZXh0dXJlX2ZlYXR1cmVzLCAzKTsKKwkJUEFORlJPU1RfRkVBVFVSRV9BUlJBWShKU19GRUFUVVJFUywganNfZmVhdHVyZXMsIDE1KTsKKwkJUEFORlJPU1RfRkVBVFVSRShOUl9DT1JFX0dST1VQUywgbnJfY29yZV9ncm91cHMpOworCQlQQU5GUk9TVF9GRUFUVVJFKFRIUkVBRF9UTFNfQUxMT0MsIHRocmVhZF90bHNfYWxsb2MpOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTQ2LDI5ICs3OCwyNiBAQCBzdGF0aWMgaW50IHBhbmZyb3N0X2lvY3RsX2dldF9wYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiwgdm9pZCAqZGF0YSwgc3RydWN0CiBzdGF0aWMgaW50IHBhbmZyb3N0X2lvY3RsX2NyZWF0ZV9ibyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7Ci0JaW50IHJldDsKLQlzdHJ1Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3QgKnNobWVtOworCXN0cnVjdCBwYW5mcm9zdF9nZW1fb2JqZWN0ICpibzsKIAlzdHJ1Y3QgZHJtX3BhbmZyb3N0X2NyZWF0ZV9ibyAqYXJncyA9IGRhdGE7CiAKLQlpZiAoIWFyZ3MtPnNpemUgfHwgYXJncy0+ZmxhZ3MgfHwgYXJncy0+cGFkKQorCWlmICghYXJncy0+c2l6ZSB8fCBhcmdzLT5wYWQgfHwKKwkgICAgKGFyZ3MtPmZsYWdzICYgfihQQU5GUk9TVF9CT19OT0VYRUMgfCBQQU5GUk9TVF9CT19IRUFQKSkpCiAJCXJldHVybiAtRUlOVkFMOwogCi0Jc2htZW0gPSBkcm1fZ2VtX3NobWVtX2NyZWF0ZV93aXRoX2hhbmRsZShmaWxlLCBkZXYsIGFyZ3MtPnNpemUsCi0JCQkJCQkgJmFyZ3MtPmhhbmRsZSk7Ci0JaWYgKElTX0VSUihzaG1lbSkpCi0JCXJldHVybiBQVFJfRVJSKHNobWVtKTsKKwkvKiBIZWFwcyBzaG91bGQgbmV2ZXIgYmUgZXhlY3V0YWJsZSAqLworCWlmICgoYXJncy0+ZmxhZ3MgJiBQQU5GUk9TVF9CT19IRUFQKSAmJgorCSAgICAhKGFyZ3MtPmZsYWdzICYgUEFORlJPU1RfQk9fTk9FWEVDKSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKLQlyZXQgPSBwYW5mcm9zdF9tbXVfbWFwKHRvX3BhbmZyb3N0X2JvKCZzaG1lbS0+YmFzZSkpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2ZyZWU7CisJYm8gPSBwYW5mcm9zdF9nZW1fY3JlYXRlX3dpdGhfaGFuZGxlKGZpbGUsIGRldiwgYXJncy0+c2l6ZSwgYXJncy0+ZmxhZ3MsCisJCQkJCSAgICAgJmFyZ3MtPmhhbmRsZSk7CisJaWYgKElTX0VSUihibykpCisJCXJldHVybiBQVFJfRVJSKGJvKTsKIAotCWFyZ3MtPm9mZnNldCA9IHRvX3BhbmZyb3N0X2JvKCZzaG1lbS0+YmFzZSktPm5vZGUuc3RhcnQgPDwgUEFHRV9TSElGVDsKKwlhcmdzLT5vZmZzZXQgPSBiby0+bm9kZS5zdGFydCA8PCBQQUdFX1NISUZUOwogCiAJcmV0dXJuIDA7Ci0KLWVycl9mcmVlOgotCWRybV9nZW1faGFuZGxlX2RlbGV0ZShmaWxlLCBhcmdzLT5oYW5kbGUpOwotCXJldHVybiByZXQ7CiB9CiAKIC8qKgpAQCAtMjQ1LDcgKzI3NCw3IEBAIHBhbmZyb3N0X2lvY3RsX3dhaXRfYm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAoIWdlbV9vYmopCiAJCXJldHVybiAtRU5PRU5UOwogCi0JcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3UoZ2VtX29iai0+cmVzdiwgdHJ1ZSwKKwlyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KGdlbV9vYmotPnJlc3YsIHRydWUsCiAJCQkJCQkgIHRydWUsIHRpbWVvdXQpOwogCWlmICghcmV0KQogCQlyZXQgPSB0aW1lb3V0ID8gLUVUSU1FRE9VVCA6IC1FQlVTWTsKQEAgLTI3Myw2ICszMDIsMTAgQEAgc3RhdGljIGludCBwYW5mcm9zdF9pb2N0bF9tbWFwX2JvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXJldHVybiAtRU5PRU5UOwogCX0KIAorCS8qIERvbid0IGFsbG93IG1tYXBwaW5nIG9mIGhlYXAgb2JqZWN0cyBhcyBwYWdlcyBhcmUgbm90IHBpbm5lZC4gKi8KKwlpZiAodG9fcGFuZnJvc3RfYm8oZ2VtX29iaiktPmlzX2hlYXApCisJCXJldHVybiAtRUlOVkFMOworCiAJcmV0ID0gZHJtX2dlbV9jcmVhdGVfbW1hcF9vZmZzZXQoZ2VtX29iaik7CiAJaWYgKHJldCA9PSAwKQogCQlhcmdzLT5vZmZzZXQgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmdlbV9vYmotPnZtYV9ub2RlKTsKQEAgLTMwMSw2ICszMzQsMzggQEAgc3RhdGljIGludCBwYW5mcm9zdF9pb2N0bF9nZXRfYm9fb2Zmc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgcGFuZnJvc3RfaW9jdGxfbWFkdmlzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJc3RydWN0IGRybV9wYW5mcm9zdF9tYWR2aXNlICphcmdzID0gZGF0YTsKKwlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqOworCisJZ2VtX29iaiA9IGRybV9nZW1fb2JqZWN0X2xvb2t1cChmaWxlX3ByaXYsIGFyZ3MtPmhhbmRsZSk7CisJaWYgKCFnZW1fb2JqKSB7CisJCURSTV9ERUJVRygiRmFpbGVkIHRvIGxvb2sgdXAgR0VNIEJPICVkXG4iLCBhcmdzLT5oYW5kbGUpOworCQlyZXR1cm4gLUVOT0VOVDsKKwl9CisKKwlhcmdzLT5yZXRhaW5lZCA9IGRybV9nZW1fc2htZW1fbWFkdmlzZShnZW1fb2JqLCBhcmdzLT5tYWR2KTsKKworCWlmIChhcmdzLT5yZXRhaW5lZCkgeworCQlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm8gPSB0b19wYW5mcm9zdF9ibyhnZW1fb2JqKTsKKworCQltdXRleF9sb2NrKCZwZmRldi0+c2hyaW5rZXJfbG9jayk7CisKKwkJaWYgKGFyZ3MtPm1hZHYgPT0gUEFORlJPU1RfTUFEVl9ET05UTkVFRCkKKwkJCWxpc3RfYWRkX3RhaWwoJmJvLT5iYXNlLm1hZHZfbGlzdCwgJnBmZGV2LT5zaHJpbmtlcl9saXN0KTsKKwkJZWxzZSBpZiAoYXJncy0+bWFkdiA9PSBQQU5GUk9TVF9NQURWX1dJTExORUVEKQorCQkJbGlzdF9kZWxfaW5pdCgmYm8tPmJhc2UubWFkdl9saXN0KTsKKworCQltdXRleF91bmxvY2soJnBmZGV2LT5zaHJpbmtlcl9sb2NrKTsKKwl9CisKKwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoZ2VtX29iaik7CisJcmV0dXJuIDA7Cit9CisKIGludCBwYW5mcm9zdF91bnN0YWJsZV9pb2N0bF9jaGVjayh2b2lkKQogewogCWlmICghdW5zdGFibGVfaW9jdGxzKQpAQCAtMzA5LDkgKzM3NCwzNiBAQCBpbnQgcGFuZnJvc3RfdW5zdGFibGVfaW9jdGxfY2hlY2sodm9pZCkKIAlyZXR1cm4gMDsKIH0KIAorI2RlZmluZSBQRk5fNEcJCShTWl80RyA+PiBQQUdFX1NISUZUKQorI2RlZmluZSBQRk5fNEdfTUFTSwkoUEZOXzRHIC0gMSkKKyNkZWZpbmUgUEZOXzE2TQkJKFNaXzE2TSA+PiBQQUdFX1NISUZUKQorCitzdGF0aWMgdm9pZCBwYW5mcm9zdF9kcm1fbW1fY29sb3JfYWRqdXN0KGNvbnN0IHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgY29sb3IsCisJCQkJCSB1NjQgKnN0YXJ0LCB1NjQgKmVuZCkKK3sKKwkvKiBFeGVjdXRhYmxlIGJ1ZmZlcnMgY2FuJ3Qgc3RhcnQgb3IgZW5kIG9uIGEgNEdCIGJvdW5kYXJ5ICovCisJaWYgKCEoY29sb3IgJiBQQU5GUk9TVF9CT19OT0VYRUMpKSB7CisJCXU2NCBuZXh0X3NlZzsKKworCQlpZiAoKCpzdGFydCAmIFBGTl80R19NQVNLKSA9PSAwKQorCQkJKCpzdGFydCkrKzsKKworCQlpZiAoKCplbmQgJiBQRk5fNEdfTUFTSykgPT0gMCkKKwkJCSgqZW5kKS0tOworCisJCW5leHRfc2VnID0gQUxJR04oKnN0YXJ0LCBQRk5fNEcpOworCQlpZiAobmV4dF9zZWcgLSAqc3RhcnQgPD0gUEZOXzE2TSkKKwkJCSpzdGFydCA9IG5leHRfc2VnICsgMTsKKworCQkqZW5kID0gbWluKCplbmQsIEFMSUdOKCpzdGFydCwgUEZOXzRHKSAtIDEpOworCX0KK30KKwogc3RhdGljIGludAogcGFuZnJvc3Rfb3BlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7CisJaW50IHJldDsKIAlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IHBhbmZyb3N0X2ZpbGVfcHJpdiAqcGFuZnJvc3RfcHJpdjsKIApAQCAtMzIyLDcgKzQxNCwyOCBAQCBwYW5mcm9zdF9vcGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIAlwYW5mcm9zdF9wcml2LT5wZmRldiA9IHBmZGV2OwogCWZpbGUtPmRyaXZlcl9wcml2ID0gcGFuZnJvc3RfcHJpdjsKIAotCXJldHVybiBwYW5mcm9zdF9qb2Jfb3BlbihwYW5mcm9zdF9wcml2KTsKKwlzcGluX2xvY2tfaW5pdCgmcGFuZnJvc3RfcHJpdi0+bW1fbG9jayk7CisKKwkvKiA0RyBlbm91Z2ggZm9yIG5vdy4gY2FuIGJlIDQ4LWJpdCAqLworCWRybV9tbV9pbml0KCZwYW5mcm9zdF9wcml2LT5tbSwgU1pfMzJNID4+IFBBR0VfU0hJRlQsIChTWl80RyAtIFNaXzMyTSkgPj4gUEFHRV9TSElGVCk7CisJcGFuZnJvc3RfcHJpdi0+bW0uY29sb3JfYWRqdXN0ID0gcGFuZnJvc3RfZHJtX21tX2NvbG9yX2FkanVzdDsKKworCXJldCA9IHBhbmZyb3N0X21tdV9wZ3RhYmxlX2FsbG9jKHBhbmZyb3N0X3ByaXYpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3BndGFibGU7CisKKwlyZXQgPSBwYW5mcm9zdF9qb2Jfb3BlbihwYW5mcm9zdF9wcml2KTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9qb2I7CisKKwlyZXR1cm4gMDsKKworZXJyX2pvYjoKKwlwYW5mcm9zdF9tbXVfcGd0YWJsZV9mcmVlKHBhbmZyb3N0X3ByaXYpOworZXJyX3BndGFibGU6CisJZHJtX21tX3Rha2Vkb3duKCZwYW5mcm9zdF9wcml2LT5tbSk7CisJa2ZyZWUocGFuZnJvc3RfcHJpdik7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTMzMyw2ICs0NDYsOCBAQCBwYW5mcm9zdF9wb3N0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQogCXBhbmZyb3N0X3BlcmZjbnRfY2xvc2UocGFuZnJvc3RfcHJpdik7CiAJcGFuZnJvc3Rfam9iX2Nsb3NlKHBhbmZyb3N0X3ByaXYpOwogCisJcGFuZnJvc3RfbW11X3BndGFibGVfZnJlZShwYW5mcm9zdF9wcml2KTsKKwlkcm1fbW1fdGFrZWRvd24oJnBhbmZyb3N0X3ByaXYtPm1tKTsKIAlrZnJlZShwYW5mcm9zdF9wcml2KTsKIH0KIApAQCAtMzUyLDEzICs0NjcsMTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBwYW5mcm9zdF9kcm1fZHJpdmVyX2lvY3Rsc1tdID0gewogCVBBTkZST1NUX0lPQ1RMKEdFVF9CT19PRkZTRVQsCWdldF9ib19vZmZzZXQsCURSTV9SRU5ERVJfQUxMT1cpLAogCVBBTkZST1NUX0lPQ1RMKFBFUkZDTlRfRU5BQkxFLAlwZXJmY250X2VuYWJsZSwJRFJNX1JFTkRFUl9BTExPVyksCiAJUEFORlJPU1RfSU9DVEwoUEVSRkNOVF9EVU1QLAlwZXJmY250X2R1bXAsCURSTV9SRU5ERVJfQUxMT1cpLAorCVBBTkZST1NUX0lPQ1RMKE1BRFZJU0UsCQltYWR2aXNlLAlEUk1fUkVOREVSX0FMTE9XKSwKIH07CiAKIERFRklORV9EUk1fR0VNX1NITUVNX0ZPUFMocGFuZnJvc3RfZHJtX2RyaXZlcl9mb3BzKTsKIAorLyoKKyAqIFBhbmZyb3N0IGRyaXZlciB2ZXJzaW9uOgorICogLSAxLjAgLSBpbml0aWFsIGludGVyZmFjZQorICogLSAxLjEgLSBhZGRzIEhFQVAgYW5kIE5PRVhFQyBmbGFncyBmb3IgQ1JFQVRFX0JPCisgKi8KIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBwYW5mcm9zdF9kcm1fZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfUkVOREVSIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSB8Ci0JCQkJICBEUklWRVJfU1lOQ09CSiwKKwkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX1JFTkRFUiB8IERSSVZFUl9HRU0gfCBEUklWRVJfU1lOQ09CSiwKIAkub3BlbgkJCT0gcGFuZnJvc3Rfb3BlbiwKIAkucG9zdGNsb3NlCQk9IHBhbmZyb3N0X3Bvc3RjbG9zZSwKIAkuaW9jdGxzCQkJPSBwYW5mcm9zdF9kcm1fZHJpdmVyX2lvY3RscywKQEAgLTM2OCw3ICs0ODgsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgcGFuZnJvc3RfZHJtX2RyaXZlciA9IHsKIAkuZGVzYwkJCT0gInBhbmZyb3N0IERSTSIsCiAJLmRhdGUJCQk9ICIyMDE4MDkwOCIsCiAJLm1ham9yCQkJPSAxLAotCS5taW5vcgkJCT0gMCwKKwkubWlub3IJCQk9IDEsCiAKIAkuZ2VtX2NyZWF0ZV9vYmplY3QJPSBwYW5mcm9zdF9nZW1fY3JlYXRlX29iamVjdCwKIAkucHJpbWVfaGFuZGxlX3RvX2ZkCT0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCkBAIC00MDAsMTQgKzUyMCw4IEBAIHN0YXRpYyBpbnQgcGFuZnJvc3RfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlkZGV2LT5kZXZfcHJpdmF0ZSA9IHBmZGV2OwogCXBmZGV2LT5kZGV2ID0gZGRldjsKIAotCXNwaW5fbG9ja19pbml0KCZwZmRldi0+bW1fbG9jayk7Ci0KLQkvKiA0RyBlbm91Z2ggZm9yIG5vdy4gY2FuIGJlIDQ4LWJpdCAqLwotCWRybV9tbV9pbml0KCZwZmRldi0+bW0sIFNaXzMyTSA+PiBQQUdFX1NISUZULCAoU1pfNEcgLSBTWl8zMk0pID4+IFBBR0VfU0hJRlQpOwotCi0JcG1fcnVudGltZV91c2VfYXV0b3N1c3BlbmQocGZkZXYtPmRldik7Ci0JcG1fcnVudGltZV9zZXRfYXV0b3N1c3BlbmRfZGVsYXkocGZkZXYtPmRldiwgNTApOyAvKiB+MyBmcmFtZXMgKi8KLQlwbV9ydW50aW1lX2VuYWJsZShwZmRldi0+ZGV2KTsKKwltdXRleF9pbml0KCZwZmRldi0+c2hyaW5rZXJfbG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJnBmZGV2LT5zaHJpbmtlcl9saXN0KTsKIAogCWVyciA9IHBhbmZyb3N0X2RldmljZV9pbml0KHBmZGV2KTsKIAlpZiAoZXJyKSB7CkBAIC00MjMsMTYgKzUzNywyNiBAQCBzdGF0aWMgaW50IHBhbmZyb3N0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWdvdG8gZXJyX291dDE7CiAJfQogCisJcG1fcnVudGltZV9zZXRfYWN0aXZlKHBmZGV2LT5kZXYpOworCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3kocGZkZXYtPmRldik7CisJcG1fcnVudGltZV9lbmFibGUocGZkZXYtPmRldik7CisJcG1fcnVudGltZV9zZXRfYXV0b3N1c3BlbmRfZGVsYXkocGZkZXYtPmRldiwgNTApOyAvKiB+MyBmcmFtZXMgKi8KKwlwbV9ydW50aW1lX3VzZV9hdXRvc3VzcGVuZChwZmRldi0+ZGV2KTsKKwogCS8qCiAJICogUmVnaXN0ZXIgdGhlIERSTSBkZXZpY2Ugd2l0aCB0aGUgY29yZSBhbmQgdGhlIGNvbm5lY3RvcnMgd2l0aAogCSAqIHN5c2ZzCiAJICovCiAJZXJyID0gZHJtX2Rldl9yZWdpc3RlcihkZGV2LCAwKTsKIAlpZiAoZXJyIDwgMCkKLQkJZ290byBlcnJfb3V0MTsKKwkJZ290byBlcnJfb3V0MjsKKworCXBhbmZyb3N0X2dlbV9zaHJpbmtlcl9pbml0KGRkZXYpOwogCiAJcmV0dXJuIDA7CiAKK2Vycl9vdXQyOgorCXBhbmZyb3N0X2RldmZyZXFfZmluaShwZmRldik7CiBlcnJfb3V0MToKIAlwYW5mcm9zdF9kZXZpY2VfZmluaShwZmRldik7CiBlcnJfb3V0MDoKQEAgLTQ0NywxMCArNTcxLDE0IEBAIHN0YXRpYyBpbnQgcGFuZnJvc3RfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBwZmRldi0+ZGRldjsKIAogCWRybV9kZXZfdW5yZWdpc3RlcihkZGV2KTsKKwlwYW5mcm9zdF9nZW1fc2hyaW5rZXJfY2xlYW51cChkZGV2KTsKKwogCXBtX3J1bnRpbWVfZ2V0X3N5bmMocGZkZXYtPmRldik7Ci0JcG1fcnVudGltZV9wdXRfc3luY19hdXRvc3VzcGVuZChwZmRldi0+ZGV2KTsKLQlwbV9ydW50aW1lX2Rpc2FibGUocGZkZXYtPmRldik7CisJcGFuZnJvc3RfZGV2ZnJlcV9maW5pKHBmZGV2KTsKIAlwYW5mcm9zdF9kZXZpY2VfZmluaShwZmRldik7CisJcG1fcnVudGltZV9wdXRfc3luY19zdXNwZW5kKHBmZGV2LT5kZXYpOworCXBtX3J1bnRpbWVfZGlzYWJsZShwZmRldi0+ZGV2KTsKKwogCWRybV9kZXZfcHV0KGRkZXYpOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dlbS5jCmluZGV4IGI0NjQxNmIuLmFjYjA3ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmMKQEAgLTE5LDIwICsxOSw5NSBAQCBzdGF0aWMgdm9pZCBwYW5mcm9zdF9nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAJc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgKmJvID0gdG9fcGFuZnJvc3RfYm8ob2JqKTsKIAlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IG9iai0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAotCWlmIChiby0+aXNfbWFwcGVkKQotCQlwYW5mcm9zdF9tbXVfdW5tYXAoYm8pOworCWlmIChiby0+c2d0cykgeworCQlpbnQgaTsKKwkJaW50IG5fc2d0ID0gYm8tPmJhc2UuYmFzZS5zaXplIC8gU1pfMk07CiAKLQlzcGluX2xvY2soJnBmZGV2LT5tbV9sb2NrKTsKLQlkcm1fbW1fcmVtb3ZlX25vZGUoJmJvLT5ub2RlKTsKLQlzcGluX3VubG9jaygmcGZkZXYtPm1tX2xvY2spOworCQlmb3IgKGkgPSAwOyBpIDwgbl9zZ3Q7IGkrKykgeworCQkJaWYgKGJvLT5zZ3RzW2ldLnNnbCkgeworCQkJCWRtYV91bm1hcF9zZyhwZmRldi0+ZGV2LCBiby0+c2d0c1tpXS5zZ2wsCisJCQkJCSAgICAgYm8tPnNndHNbaV0ubmVudHMsIERNQV9CSURJUkVDVElPTkFMKTsKKwkJCQlzZ19mcmVlX3RhYmxlKCZiby0+c2d0c1tpXSk7CisJCQl9CisJCX0KKwkJa2ZyZWUoYm8tPnNndHMpOworCX0KKworCW11dGV4X2xvY2soJnBmZGV2LT5zaHJpbmtlcl9sb2NrKTsKKwlpZiAoIWxpc3RfZW1wdHkoJmJvLT5iYXNlLm1hZHZfbGlzdCkpCisJCWxpc3RfZGVsKCZiby0+YmFzZS5tYWR2X2xpc3QpOworCW11dGV4X3VubG9jaygmcGZkZXYtPnNocmlua2VyX2xvY2spOwogCiAJZHJtX2dlbV9zaG1lbV9mcmVlX29iamVjdChvYmopOwogfQogCitzdGF0aWMgaW50IHBhbmZyb3N0X2dlbV9vcGVuKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlpbnQgcmV0OworCXNpemVfdCBzaXplID0gb2JqLT5zaXplOworCXU2NCBhbGlnbjsKKwlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm8gPSB0b19wYW5mcm9zdF9ibyhvYmopOworCXVuc2lnbmVkIGxvbmcgY29sb3IgPSBiby0+bm9leGVjID8gUEFORlJPU1RfQk9fTk9FWEVDIDogMDsKKwlzdHJ1Y3QgcGFuZnJvc3RfZmlsZV9wcml2ICpwcml2ID0gZmlsZV9wcml2LT5kcml2ZXJfcHJpdjsKKworCS8qCisJICogRXhlY3V0YWJsZSBidWZmZXJzIGNhbm5vdCBjcm9zcyBhIDE2TUIgYm91bmRhcnkgYXMgdGhlIHByb2dyYW0KKwkgKiBjb3VudGVyIGlzIDI0LWJpdHMuIFdlIGFzc3VtZSBleGVjdXRhYmxlIGJ1ZmZlcnMgd2lsbCBiZSBsZXNzIHRoYW4KKwkgKiAxNk1CIGFuZCBhbGlnbmluZyBleGVjdXRhYmxlIGJ1ZmZlcnMgdG8gdGhlaXIgc2l6ZSB3aWxsIGF2b2lkCisJICogY3Jvc3NpbmcgYSAxNk1CIGJvdW5kYXJ5LgorCSAqLworCWlmICghYm8tPm5vZXhlYykKKwkJYWxpZ24gPSBzaXplID4+IFBBR0VfU0hJRlQ7CisJZWxzZQorCQlhbGlnbiA9IHNpemUgPj0gU1pfMk0gPyBTWl8yTSA+PiBQQUdFX1NISUZUIDogMDsKKworCWJvLT5tbXUgPSAmcHJpdi0+bW11OworCXNwaW5fbG9jaygmcHJpdi0+bW1fbG9jayk7CisJcmV0ID0gZHJtX21tX2luc2VydF9ub2RlX2dlbmVyaWMoJnByaXYtPm1tLCAmYm8tPm5vZGUsCisJCQkJCSBzaXplID4+IFBBR0VfU0hJRlQsIGFsaWduLCBjb2xvciwgMCk7CisJc3Bpbl91bmxvY2soJnByaXYtPm1tX2xvY2spOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpZiAoIWJvLT5pc19oZWFwKSB7CisJCXJldCA9IHBhbmZyb3N0X21tdV9tYXAoYm8pOworCQlpZiAocmV0KSB7CisJCQlzcGluX2xvY2soJnByaXYtPm1tX2xvY2spOworCQkJZHJtX21tX3JlbW92ZV9ub2RlKCZiby0+bm9kZSk7CisJCQlzcGluX3VubG9jaygmcHJpdi0+bW1fbG9jayk7CisJCX0KKwl9CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgcGFuZnJvc3RfZ2VtX2Nsb3NlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm8gPSB0b19wYW5mcm9zdF9ibyhvYmopOworCXN0cnVjdCBwYW5mcm9zdF9maWxlX3ByaXYgKnByaXYgPSBmaWxlX3ByaXYtPmRyaXZlcl9wcml2OworCisJaWYgKGJvLT5pc19tYXBwZWQpCisJCXBhbmZyb3N0X21tdV91bm1hcChibyk7CisKKwlzcGluX2xvY2soJnByaXYtPm1tX2xvY2spOworCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJmJvLT5ub2RlKSkKKwkJZHJtX21tX3JlbW92ZV9ub2RlKCZiby0+bm9kZSk7CisJc3Bpbl91bmxvY2soJnByaXYtPm1tX2xvY2spOworfQorCitzdGF0aWMgaW50IHBhbmZyb3N0X2dlbV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCit7CisJaWYgKHRvX3BhbmZyb3N0X2JvKG9iaiktPmlzX2hlYXApCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIGRybV9nZW1fc2htZW1fcGluKG9iaik7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MgcGFuZnJvc3RfZ2VtX2Z1bmNzID0gewogCS5mcmVlID0gcGFuZnJvc3RfZ2VtX2ZyZWVfb2JqZWN0LAorCS5vcGVuID0gcGFuZnJvc3RfZ2VtX29wZW4sCisJLmNsb3NlID0gcGFuZnJvc3RfZ2VtX2Nsb3NlLAogCS5wcmludF9pbmZvID0gZHJtX2dlbV9zaG1lbV9wcmludF9pbmZvLAotCS5waW4gPSBkcm1fZ2VtX3NobWVtX3BpbiwKKwkucGluID0gcGFuZnJvc3RfZ2VtX3BpbiwKIAkudW5waW4gPSBkcm1fZ2VtX3NobWVtX3VucGluLAogCS5nZXRfc2dfdGFibGUgPSBkcm1fZ2VtX3NobWVtX2dldF9zZ190YWJsZSwKIAkudm1hcCA9IGRybV9nZW1fc2htZW1fdm1hcCwKQEAgLTUwLDEwICsxMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzIHBhbmZyb3N0X2dlbV9mdW5jcyA9IHsKICAqLwogc3RydWN0IGRybV9nZW1fb2JqZWN0ICpwYW5mcm9zdF9nZW1fY3JlYXRlX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSkKIHsKLQlpbnQgcmV0OwotCXN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqb2JqOwotCXU2NCBhbGlnbjsKIAogCW9iaiA9IGt6YWxsb2Moc2l6ZW9mKCpvYmopLCBHRlBfS0VSTkVMKTsKIAlpZiAoIW9iaikKQEAgLTYxLDIxICsxMzMsNDIgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpwYW5mcm9zdF9nZW1fY3JlYXRlX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3QKIAogCW9iai0+YmFzZS5iYXNlLmZ1bmNzID0gJnBhbmZyb3N0X2dlbV9mdW5jczsKIAotCXNpemUgPSByb3VuZHVwKHNpemUsIFBBR0VfU0laRSk7Ci0JYWxpZ24gPSBzaXplID49IFNaXzJNID8gU1pfMk0gPj4gUEFHRV9TSElGVCA6IDA7Ci0KLQlzcGluX2xvY2soJnBmZGV2LT5tbV9sb2NrKTsKLQlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfZ2VuZXJpYygmcGZkZXYtPm1tLCAmb2JqLT5ub2RlLAotCQkJCQkgc2l6ZSA+PiBQQUdFX1NISUZULCBhbGlnbiwgMCwgMCk7Ci0Jc3Bpbl91bmxvY2soJnBmZGV2LT5tbV9sb2NrKTsKLQlpZiAocmV0KQotCQlnb3RvIGZyZWVfb2JqOwotCiAJcmV0dXJuICZvYmotPmJhc2UuYmFzZTsKK30KIAotZnJlZV9vYmo6Ci0Ja2ZyZWUob2JqKTsKLQlyZXR1cm4gRVJSX1BUUihyZXQpOworc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgKgorcGFuZnJvc3RfZ2VtX2NyZWF0ZV93aXRoX2hhbmRsZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKKwkJCQl1MzIgZmxhZ3MsCisJCQkJdWludDMyX3QgKmhhbmRsZSkKK3sKKwlpbnQgcmV0OworCXN0cnVjdCBkcm1fZ2VtX3NobWVtX29iamVjdCAqc2htZW07CisJc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgKmJvOworCisJLyogUm91bmQgdXAgaGVhcCBhbGxvY2F0aW9ucyB0byAyTUIgdG8ga2VlcCBmYXVsdCBoYW5kbGluZyBzaW1wbGUgKi8KKwlpZiAoZmxhZ3MgJiBQQU5GUk9TVF9CT19IRUFQKQorCQlzaXplID0gcm91bmR1cChzaXplLCBTWl8yTSk7CisKKwlzaG1lbSA9IGRybV9nZW1fc2htZW1fY3JlYXRlKGRldiwgc2l6ZSk7CisJaWYgKElTX0VSUihzaG1lbSkpCisJCXJldHVybiBFUlJfQ0FTVChzaG1lbSk7CisKKwlibyA9IHRvX3BhbmZyb3N0X2JvKCZzaG1lbS0+YmFzZSk7CisJYm8tPm5vZXhlYyA9ICEhKGZsYWdzICYgUEFORlJPU1RfQk9fTk9FWEVDKTsKKwliby0+aXNfaGVhcCA9ICEhKGZsYWdzICYgUEFORlJPU1RfQk9fSEVBUCk7CisKKwkvKgorCSAqIEFsbG9jYXRlIGFuIGlkIG9mIGlkciB0YWJsZSB3aGVyZSB0aGUgb2JqIGlzIHJlZ2lzdGVyZWQKKwkgKiBhbmQgaGFuZGxlIGhhcyB0aGUgaWQgd2hhdCB1c2VyIGNhbiBzZWUuCisJICovCisJcmV0ID0gZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbGVfcHJpdiwgJnNobWVtLT5iYXNlLCBoYW5kbGUpOworCS8qIGRyb3AgcmVmZXJlbmNlIGZyb20gYWxsb2NhdGUgLSBoYW5kbGUgaG9sZHMgaXQgbm93LiAqLworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZCgmc2htZW0tPmJhc2UpOworCWlmIChyZXQpCisJCXJldHVybiBFUlJfUFRSKHJldCk7CisKKwlyZXR1cm4gYm87CiB9CiAKIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqCkBAIC04NCwxNyArMTc3LDE0IEBAIHBhbmZyb3N0X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICBzdHJ1Y3Qgc2dfdGFibGUgKnNndCkKIHsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqcG9iajsKKwlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm87CiAKIAlvYmogPSBkcm1fZ2VtX3NobWVtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShkZXYsIGF0dGFjaCwgc2d0KTsKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBFUlJfQ0FTVChvYmopOwogCi0JcG9iaiA9IHRvX3BhbmZyb3N0X2JvKG9iaik7Ci0KLQlvYmotPnJlc3YgPSBhdHRhY2gtPmRtYWJ1Zi0+cmVzdjsKLQotCXBhbmZyb3N0X21tdV9tYXAocG9iaik7CisJYm8gPSB0b19wYW5mcm9zdF9ibyhvYmopOworCWJvLT5ub2V4ZWMgPSB0cnVlOwogCiAJcmV0dXJuIG9iajsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uaAppbmRleCA2ZGJjYWJhLi41MDkyMDgxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uaApAQCAtNywxMSArNywxNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX3NobWVtX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fbW0uaD4KIAorc3RydWN0IHBhbmZyb3N0X21tdTsKKwogc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgewogCXN0cnVjdCBkcm1fZ2VtX3NobWVtX29iamVjdCBiYXNlOworCXN0cnVjdCBzZ190YWJsZSAqc2d0czsKIAorCXN0cnVjdCBwYW5mcm9zdF9tbXUgKm1tdTsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgbm9kZTsKLQlib29sIGlzX21hcHBlZDsKKwlib29sIGlzX21hcHBlZAkJOjE7CisJYm9vbCBub2V4ZWMJCToxOworCWJvb2wgaXNfaGVhcAkJOjE7CiB9OwogCiBzdGF0aWMgaW5saW5lCkBAIC0yMCw2ICsyNiwxMiBAQCBzdHJ1Y3QgIHBhbmZyb3N0X2dlbV9vYmplY3QgKnRvX3BhbmZyb3N0X2JvKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogCXJldHVybiBjb250YWluZXJfb2YodG9fZHJtX2dlbV9zaG1lbV9vYmoob2JqKSwgc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QsIGJhc2UpOwogfQogCitzdGF0aWMgaW5saW5lCitzdHJ1Y3QgIHBhbmZyb3N0X2dlbV9vYmplY3QgKmRybV9tbV9ub2RlX3RvX3BhbmZyb3N0X2JvKHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKG5vZGUsIHN0cnVjdCBwYW5mcm9zdF9nZW1fb2JqZWN0LCBub2RlKTsKK30KKwogc3RydWN0IGRybV9nZW1fb2JqZWN0ICpwYW5mcm9zdF9nZW1fY3JlYXRlX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSk7CiAKIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqCkBAIC0yNyw0ICszOSwxMyBAQCBwYW5mcm9zdF9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAogCQkJCSAgIHN0cnVjdCBzZ190YWJsZSAqc2d0KTsKIAorc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgKgorcGFuZnJvc3RfZ2VtX2NyZWF0ZV93aXRoX2hhbmRsZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKKwkJCQl1MzIgZmxhZ3MsCisJCQkJdWludDMyX3QgKmhhbmRsZSk7CisKK3ZvaWQgcGFuZnJvc3RfZ2VtX3Nocmlua2VyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cit2b2lkIHBhbmZyb3N0X2dlbV9zaHJpbmtlcl9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCiAjZW5kaWYgLyogX19QQU5GUk9TVF9HRU1fSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtX3Nocmlua2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtX3Nocmlua2VyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU4ZjBmYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW1fc2hyaW5rZXIuYwpAQCAtMCwwICsxLDExMCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKy8qIENvcHlyaWdodCAoQykgMjAxOSBBcm0gTHRkLgorICoKKyAqIEJhc2VkIG9uIG1zbV9nZW1fZnJlZWRyZW5vLmM6CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgUmVkIEhhdAorICogQXV0aG9yOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmg+CisKKyNpbmNsdWRlICJwYW5mcm9zdF9kZXZpY2UuaCIKKyNpbmNsdWRlICJwYW5mcm9zdF9nZW0uaCIKKyNpbmNsdWRlICJwYW5mcm9zdF9tbXUuaCIKKworc3RhdGljIHVuc2lnbmVkIGxvbmcKK3BhbmZyb3N0X2dlbV9zaHJpbmtlcl9jb3VudChzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyLCBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKQoreworCXN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2ID0KKwkJY29udGFpbmVyX29mKHNocmlua2VyLCBzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlLCBzaHJpbmtlcik7CisJc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0ICpzaG1lbTsKKwl1bnNpZ25lZCBsb25nIGNvdW50ID0gMDsKKworCWlmICghbXV0ZXhfdHJ5bG9jaygmcGZkZXYtPnNocmlua2VyX2xvY2spKQorCQlyZXR1cm4gMDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoc2htZW0sICZwZmRldi0+c2hyaW5rZXJfbGlzdCwgbWFkdl9saXN0KSB7CisJCWlmIChkcm1fZ2VtX3NobWVtX2lzX3B1cmdlYWJsZShzaG1lbSkpCisJCQljb3VudCArPSBzaG1lbS0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQ7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZwZmRldi0+c2hyaW5rZXJfbG9jayk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBib29sIHBhbmZyb3N0X2dlbV9wdXJnZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3QgKnNobWVtID0gdG9fZHJtX2dlbV9zaG1lbV9vYmoob2JqKTsKKworCWlmICghbXV0ZXhfdHJ5bG9jaygmc2htZW0tPnBhZ2VzX2xvY2spKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwYW5mcm9zdF9tbXVfdW5tYXAodG9fcGFuZnJvc3RfYm8ob2JqKSk7CisJZHJtX2dlbV9zaG1lbV9wdXJnZV9sb2NrZWQob2JqKTsKKworCW11dGV4X3VubG9jaygmc2htZW0tPnBhZ2VzX2xvY2spOworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZworcGFuZnJvc3RfZ2VtX3Nocmlua2VyX3NjYW4oc3RydWN0IHNocmlua2VyICpzaHJpbmtlciwgc3RydWN0IHNocmlua19jb250cm9sICpzYykKK3sKKwlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9CisJCWNvbnRhaW5lcl9vZihzaHJpbmtlciwgc3RydWN0IHBhbmZyb3N0X2RldmljZSwgc2hyaW5rZXIpOworCXN0cnVjdCBkcm1fZ2VtX3NobWVtX29iamVjdCAqc2htZW0sICp0bXA7CisJdW5zaWduZWQgbG9uZyBmcmVlZCA9IDA7CisKKwlpZiAoIW11dGV4X3RyeWxvY2soJnBmZGV2LT5zaHJpbmtlcl9sb2NrKSkKKwkJcmV0dXJuIFNIUklOS19TVE9QOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNobWVtLCB0bXAsICZwZmRldi0+c2hyaW5rZXJfbGlzdCwgbWFkdl9saXN0KSB7CisJCWlmIChmcmVlZCA+PSBzYy0+bnJfdG9fc2NhbikKKwkJCWJyZWFrOworCQlpZiAoZHJtX2dlbV9zaG1lbV9pc19wdXJnZWFibGUoc2htZW0pICYmCisJCSAgICBwYW5mcm9zdF9nZW1fcHVyZ2UoJnNobWVtLT5iYXNlKSkgeworCQkJZnJlZWQgKz0gc2htZW0tPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZUOworCQkJbGlzdF9kZWxfaW5pdCgmc2htZW0tPm1hZHZfbGlzdCk7CisJCX0KKwl9CisKKwltdXRleF91bmxvY2soJnBmZGV2LT5zaHJpbmtlcl9sb2NrKTsKKworCWlmIChmcmVlZCA+IDApCisJCXByX2luZm9fcmF0ZWxpbWl0ZWQoIlB1cmdpbmcgJWx1IGJ5dGVzXG4iLCBmcmVlZCA8PCBQQUdFX1NISUZUKTsKKworCXJldHVybiBmcmVlZDsKK30KKworLyoqCisgKiBwYW5mcm9zdF9nZW1fc2hyaW5rZXJfaW5pdCAtIEluaXRpYWxpemUgcGFuZnJvc3Qgc2hyaW5rZXIKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlZ2lzdGVycyBhbmQgc2V0cyB1cCB0aGUgcGFuZnJvc3Qgc2hyaW5rZXIuCisgKi8KK3ZvaWQgcGFuZnJvc3RfZ2VtX3Nocmlua2VyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJcGZkZXYtPnNocmlua2VyLmNvdW50X29iamVjdHMgPSBwYW5mcm9zdF9nZW1fc2hyaW5rZXJfY291bnQ7CisJcGZkZXYtPnNocmlua2VyLnNjYW5fb2JqZWN0cyA9IHBhbmZyb3N0X2dlbV9zaHJpbmtlcl9zY2FuOworCXBmZGV2LT5zaHJpbmtlci5zZWVrcyA9IERFRkFVTFRfU0VFS1M7CisJV0FSTl9PTihyZWdpc3Rlcl9zaHJpbmtlcigmcGZkZXYtPnNocmlua2VyKSk7Cit9CisKKy8qKgorICogcGFuZnJvc3RfZ2VtX3Nocmlua2VyX2NsZWFudXAgLSBDbGVhbiB1cCBwYW5mcm9zdCBzaHJpbmtlcgorICogQGRldjogRFJNIGRldmljZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gdW5yZWdpc3RlcnMgdGhlIHBhbmZyb3N0IHNocmlua2VyLgorICovCit2b2lkIHBhbmZyb3N0X2dlbV9zaHJpbmtlcl9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYgPSBkZXYtPmRldl9wcml2YXRlOworCisJaWYgKHBmZGV2LT5zaHJpbmtlci5ucl9kZWZlcnJlZCkgeworCQl1bnJlZ2lzdGVyX3Nocmlua2VyKCZwZmRldi0+c2hyaW5rZXIpOworCX0KK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9ncHUuYwppbmRleCAyMGFiMzMzLi5mNjdlZDkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dwdS5jCkBAIC0yMzIsNiArMjMyLDggQEAgc3RhdGljIHZvaWQgcGFuZnJvc3RfZ3B1X2luaXRfZmVhdHVyZXMoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpCiAJcGZkZXYtPmZlYXR1cmVzLnN0YWNrX3ByZXNlbnQgPSBncHVfcmVhZChwZmRldiwgR1BVX1NUQUNLX1BSRVNFTlRfTE8pOwogCXBmZGV2LT5mZWF0dXJlcy5zdGFja19wcmVzZW50IHw9ICh1NjQpZ3B1X3JlYWQocGZkZXYsIEdQVV9TVEFDS19QUkVTRU5UX0hJKSA8PCAzMjsKIAorCXBmZGV2LT5mZWF0dXJlcy50aHJlYWRfdGxzX2FsbG9jID0gZ3B1X3JlYWQocGZkZXYsIEdQVV9USFJFQURfVExTX0FMTE9DKTsKKwogCWdwdV9pZCA9IGdwdV9yZWFkKHBmZGV2LCBHUFVfSUQpOwogCXBmZGV2LT5mZWF0dXJlcy5yZXZpc2lvbiA9IGdwdV9pZCAmIDB4ZmZmZjsKIAlwZmRldi0+ZmVhdHVyZXMuaWQgPSBncHVfaWQgPj4gMTY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmMKaW5kZXggOWJiOTI2MC4uYTU4NTUxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYwpAQCAtNiw3ICs2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KLSNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1yZXN2Lmg+CiAjaW5jbHVkZSA8ZHJtL2dwdV9zY2hlZHVsZXIuaD4KICNpbmNsdWRlIDxkcm0vcGFuZnJvc3RfZHJtLmg+CiAKQEAgLTE0MSw3ICsxNDEsNiBAQCBzdGF0aWMgdm9pZCBwYW5mcm9zdF9qb2Jfd3JpdGVfYWZmaW5pdHkoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsCiBzdGF0aWMgdm9pZCBwYW5mcm9zdF9qb2JfaHdfc3VibWl0KHN0cnVjdCBwYW5mcm9zdF9qb2IgKmpvYiwgaW50IGpzKQogewogCXN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2ID0gam9iLT5wZmRldjsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXUzMiBjZmc7CiAJdTY0IGpjX2hlYWQgPSBqb2ItPmpjOwogCWludCByZXQ7CkBAIC0xNTAsMTEgKzE0OSwxNCBAQCBzdGF0aWMgdm9pZCBwYW5mcm9zdF9qb2JfaHdfc3VibWl0KHN0cnVjdCBwYW5mcm9zdF9qb2IgKmpvYiwgaW50IGpzKQogCWlmIChyZXQgPCAwKQogCQlyZXR1cm47CiAKLQlpZiAoV0FSTl9PTihqb2JfcmVhZChwZmRldiwgSlNfQ09NTUFORF9ORVhUKGpzKSkpKQotCQlnb3RvIGVuZDsKKwlpZiAoV0FSTl9PTihqb2JfcmVhZChwZmRldiwgSlNfQ09NTUFORF9ORVhUKGpzKSkpKSB7CisJCXBtX3J1bnRpbWVfcHV0X3N5bmNfYXV0b3N1c3BlbmQocGZkZXYtPmRldik7CisJCXJldHVybjsKKwl9CisKKwljZmcgPSBwYW5mcm9zdF9tbXVfYXNfZ2V0KHBmZGV2LCAmam9iLT5maWxlX3ByaXYtPm1tdSk7CiAKIAlwYW5mcm9zdF9kZXZmcmVxX3JlY29yZF90cmFuc2l0aW9uKHBmZGV2LCBqcyk7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJnBmZGV2LT5od2FjY2Vzc19sb2NrLCBmbGFncyk7CiAKIAlqb2Jfd3JpdGUocGZkZXYsIEpTX0hFQURfTkVYVF9MTyhqcyksIGpjX2hlYWQgJiAweEZGRkZGRkZGKTsKIAlqb2Jfd3JpdGUocGZkZXYsIEpTX0hFQURfTkVYVF9ISShqcyksIGpjX2hlYWQgPj4gMzIpOwpAQCAtMTYzLDggKzE2NSw3IEBAIHN0YXRpYyB2b2lkIHBhbmZyb3N0X2pvYl9od19zdWJtaXQoc3RydWN0IHBhbmZyb3N0X2pvYiAqam9iLCBpbnQganMpCiAKIAkvKiBzdGFydCBNTVUsIG1lZGl1bSBwcmlvcml0eSwgY2FjaGUgY2xlYW4vZmx1c2ggb24gZW5kLCBjbGVhbi9mbHVzaCBvbgogCSAqIHN0YXJ0ICovCi0JLyogVE9ETzogZGlmZmVyZW50IGFkZHJlc3Mgc3BhY2VzICovCi0JY2ZnID0gSlNfQ09ORklHX1RIUkVBRF9QUkkoOCkgfAorCWNmZyB8PSBKU19DT05GSUdfVEhSRUFEX1BSSSg4KSB8CiAJCUpTX0NPTkZJR19TVEFSVF9GTFVTSF9DTEVBTl9JTlZBTElEQVRFIHwKIAkJSlNfQ09ORklHX0VORF9GTFVTSF9DTEVBTl9JTlZBTElEQVRFOwogCkBAIC0xODQsMTIgKzE4NSw2IEBAIHN0YXRpYyB2b2lkIHBhbmZyb3N0X2pvYl9od19zdWJtaXQoc3RydWN0IHBhbmZyb3N0X2pvYiAqam9iLCBpbnQganMpCiAJCQkJam9iLCBqcywgamNfaGVhZCk7CiAKIAlqb2Jfd3JpdGUocGZkZXYsIEpTX0NPTU1BTkRfTkVYVChqcyksIEpTX0NPTU1BTkRfU1RBUlQpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGZkZXYtPmh3YWNjZXNzX2xvY2ssIGZsYWdzKTsKLQotZW5kOgotCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3kocGZkZXYtPmRldik7Ci0JcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQocGZkZXYtPmRldik7CiB9CiAKIHN0YXRpYyB2b2lkIHBhbmZyb3N0X2FjcXVpcmVfb2JqZWN0X2ZlbmNlcyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipib3MsCkBAIC0xOTksNyArMTk0LDcgQEAgc3RhdGljIHZvaWQgcGFuZnJvc3RfYWNxdWlyZV9vYmplY3RfZmVuY2VzKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKmJvcywKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBib19jb3VudDsgaSsrKQotCQlpbXBsaWNpdF9mZW5jZXNbaV0gPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KGJvc1tpXS0+cmVzdik7CisJCWltcGxpY2l0X2ZlbmNlc1tpXSA9IGRtYV9yZXN2X2dldF9leGNsX3JjdShib3NbaV0tPnJlc3YpOwogfQogCiBzdGF0aWMgdm9pZCBwYW5mcm9zdF9hdHRhY2hfb2JqZWN0X2ZlbmNlcyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipib3MsCkBAIC0yMDksNyArMjA0LDcgQEAgc3RhdGljIHZvaWQgcGFuZnJvc3RfYXR0YWNoX29iamVjdF9mZW5jZXMoc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqYm9zLAogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IGJvX2NvdW50OyBpKyspCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShib3NbaV0tPnJlc3YsIGZlbmNlKTsKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2UoYm9zW2ldLT5yZXN2LCBmZW5jZSk7CiB9CiAKIGludCBwYW5mcm9zdF9qb2JfcHVzaChzdHJ1Y3QgcGFuZnJvc3Rfam9iICpqb2IpCkBAIC0zNjgsNiArMzYzLDcgQEAgc3RhdGljIHZvaWQgcGFuZnJvc3Rfam9iX3RpbWVkb3V0KHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9qb2IpCiAJc3RydWN0IHBhbmZyb3N0X2pvYiAqam9iID0gdG9fcGFuZnJvc3Rfam9iKHNjaGVkX2pvYik7CiAJc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYgPSBqb2ItPnBmZGV2OwogCWludCBqcyA9IHBhbmZyb3N0X2pvYl9nZXRfc2xvdChqb2IpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGk7CiAKIAkvKgpAQCAtMzc3LDggKzM3Myw5IEBAIHN0YXRpYyB2b2lkIHBhbmZyb3N0X2pvYl90aW1lZG91dChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc2NoZWRfam9iKQogCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoam9iLT5kb25lX2ZlbmNlKSkKIAkJcmV0dXJuOwogCi0JZGV2X2VycihwZmRldi0+ZGV2LCAiZ3B1IHNjaGVkIHRpbWVvdXQsIGpzPSVkLCBzdGF0dXM9MHgleCwgaGVhZD0weCV4LCB0YWlsPTB4JXgsIHNjaGVkX2pvYj0lcCIsCisJZGV2X2VycihwZmRldi0+ZGV2LCAiZ3B1IHNjaGVkIHRpbWVvdXQsIGpzPSVkLCBjb25maWc9MHgleCwgc3RhdHVzPTB4JXgsIGhlYWQ9MHgleCwgdGFpbD0weCV4LCBzY2hlZF9qb2I9JXAiLAogCQlqcywKKwkJam9iX3JlYWQocGZkZXYsIEpTX0NPTkZJRyhqcykpLAogCQlqb2JfcmVhZChwZmRldiwgSlNfU1RBVFVTKGpzKSksCiAJCWpvYl9yZWFkKHBmZGV2LCBKU19IRUFEX0xPKGpzKSksCiAJCWpvYl9yZWFkKHBmZGV2LCBKU19UQUlMX0xPKGpzKSksCkBAIC0zOTIsMTUgKzM4OSwxOSBAQCBzdGF0aWMgdm9pZCBwYW5mcm9zdF9qb2JfdGltZWRvdXQoc3RydWN0IGRybV9zY2hlZF9qb2IgKnNjaGVkX2pvYikKIAlpZiAoc2NoZWRfam9iKQogCQlkcm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoc2NoZWRfam9iKTsKIAorCXNwaW5fbG9ja19pcnFzYXZlKCZwZmRldi0+anMtPmpvYl9sb2NrLCBmbGFncyk7CisJZm9yIChpID0gMDsgaSA8IE5VTV9KT0JfU0xPVFM7IGkrKykgeworCQlpZiAocGZkZXYtPmpvYnNbaV0pIHsKKwkJCXBtX3J1bnRpbWVfcHV0X25vaWRsZShwZmRldi0+ZGV2KTsKKwkJCXBmZGV2LT5qb2JzW2ldID0gTlVMTDsKKwkJfQorCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZmRldi0+anMtPmpvYl9sb2NrLCBmbGFncyk7CisKIAkvKiBwYW5mcm9zdF9jb3JlX2R1bXAocGZkZXYpOyAqLwogCiAJcGFuZnJvc3RfZGV2ZnJlcV9yZWNvcmRfdHJhbnNpdGlvbihwZmRldiwganMpOwotCXBhbmZyb3N0X2dwdV9zb2Z0X3Jlc2V0KHBmZGV2KTsKLQotCS8qIFRPRE86IFJlLWVuYWJsZSBhbGwgb3RoZXIgYWRkcmVzcyBzcGFjZXMgKi8KLQlwYW5mcm9zdF9tbXVfZW5hYmxlKHBmZGV2LCAwKTsKLQlwYW5mcm9zdF9ncHVfcG93ZXJfb24ocGZkZXYpOwotCXBhbmZyb3N0X2pvYl9lbmFibGVfaW50ZXJydXB0cyhwZmRldik7CisJcGFuZnJvc3RfZGV2aWNlX3Jlc2V0KHBmZGV2KTsKIAogCWZvciAoaSA9IDA7IGkgPCBOVU1fSk9CX1NMT1RTOyBpKyspCiAJCWRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKCZwZmRldi0+anMtPnF1ZXVlW2ldLnNjaGVkKTsKQEAgLTQ1Myw4ICs0NTQsMjEgQEAgc3RhdGljIGlycXJldHVybl90IHBhbmZyb3N0X2pvYl9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQogCQl9CiAKIAkJaWYgKHN0YXR1cyAmIEpPQl9JTlRfTUFTS19ET05FKGopKSB7Ci0JCQlwYW5mcm9zdF9kZXZmcmVxX3JlY29yZF90cmFuc2l0aW9uKHBmZGV2LCBqKTsKLQkJCWRtYV9mZW5jZV9zaWduYWwocGZkZXYtPmpvYnNbal0tPmRvbmVfZmVuY2UpOworCQkJc3RydWN0IHBhbmZyb3N0X2pvYiAqam9iOworCisJCQlzcGluX2xvY2soJnBmZGV2LT5qcy0+am9iX2xvY2spOworCQkJam9iID0gcGZkZXYtPmpvYnNbal07CisJCQkvKiBPbmx5IE5VTEwgaWYgam9iIHRpbWVvdXQgb2NjdXJyZWQgKi8KKwkJCWlmIChqb2IpIHsKKwkJCQlwZmRldi0+am9ic1tqXSA9IE5VTEw7CisKKwkJCQlwYW5mcm9zdF9tbXVfYXNfcHV0KHBmZGV2LCAmam9iLT5maWxlX3ByaXYtPm1tdSk7CisJCQkJcGFuZnJvc3RfZGV2ZnJlcV9yZWNvcmRfdHJhbnNpdGlvbihwZmRldiwgaik7CisKKwkJCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZChqb2ItPmRvbmVfZmVuY2UpOworCQkJCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKHBmZGV2LT5kZXYpOworCQkJfQorCQkJc3Bpbl91bmxvY2soJnBmZGV2LT5qcy0+am9iX2xvY2spOwogCQl9CiAKIAkJc3RhdHVzICY9IH5tYXNrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X21tdS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X21tdS5jCmluZGV4IDZlODE0NWMuLmJkZDk5MDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9tbXUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfbW11LmMKQEAgLTEsNyArMSw5IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjoJR1BMLTIuMAogLyogQ29weXJpZ2h0IDIwMTkgTGluYXJvLCBMdGQsIFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+ICovCisjaW5jbHVkZSA8bGludXgvYXRvbWljLmg+CiAjaW5jbHVkZSA8bGludXgvYml0ZmllbGQuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KQEAgLTksNiArMTEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lvbW11Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2l6ZXMuaD4KIAogI2luY2x1ZGUgInBhbmZyb3N0X2RldmljZS5oIgpAQCAtMjAsMTIgKzIzLDYgQEAKICNkZWZpbmUgbW11X3dyaXRlKGRldiwgcmVnLCBkYXRhKSB3cml0ZWwoZGF0YSwgZGV2LT5pb21lbSArIHJlZykKICNkZWZpbmUgbW11X3JlYWQoZGV2LCByZWcpIHJlYWRsKGRldi0+aW9tZW0gKyByZWcpCiAKLXN0cnVjdCBwYW5mcm9zdF9tbXUgewotCXN0cnVjdCBpb19wZ3RhYmxlX2NmZyBwZ3RibF9jZmc7Ci0Jc3RydWN0IGlvX3BndGFibGVfb3BzICpwZ3RibF9vcHM7Ci0Jc3RydWN0IG11dGV4IGxvY2s7Ci19OwotCiBzdGF0aWMgaW50IHdhaXRfcmVhZHkoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHUzMiBhc19ucikKIHsKIAlpbnQgcmV0OwpAQCAtODMsMTMgKzgwLDExIEBAIHN0YXRpYyB2b2lkIGxvY2tfcmVnaW9uKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LCB1MzIgYXNfbnIsCiB9CiAKIAotc3RhdGljIGludCBtbXVfaHdfZG9fb3BlcmF0aW9uKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LCB1MzIgYXNfbnIsCi0JCXU2NCBpb3ZhLCBzaXplX3Qgc2l6ZSwgdTMyIG9wKQorc3RhdGljIGludCBtbXVfaHdfZG9fb3BlcmF0aW9uX2xvY2tlZChzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiwgaW50IGFzX25yLAorCQkJCSAgICAgIHU2NCBpb3ZhLCBzaXplX3Qgc2l6ZSwgdTMyIG9wKQogewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZwZmRldi0+aHdhY2Nlc3NfbG9jaywgZmxhZ3MpOworCWlmIChhc19uciA8IDApCisJCXJldHVybiAwOwogCiAJaWYgKG9wICE9IEFTX0NPTU1BTkRfVU5MT0NLKQogCQlsb2NrX3JlZ2lvbihwZmRldiwgYXNfbnIsIGlvdmEsIHNpemUpOwpAQCAtOTgsMjEgKzkzLDI5IEBAIHN0YXRpYyBpbnQgbW11X2h3X2RvX29wZXJhdGlvbihzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiwgdTMyIGFzX25yLAogCXdyaXRlX2NtZChwZmRldiwgYXNfbnIsIG9wKTsKIAogCS8qIFdhaXQgZm9yIHRoZSBmbHVzaCB0byBjb21wbGV0ZSAqLwotCXJldCA9IHdhaXRfcmVhZHkocGZkZXYsIGFzX25yKTsKKwlyZXR1cm4gd2FpdF9yZWFkeShwZmRldiwgYXNfbnIpOworfQogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGZkZXYtPmh3YWNjZXNzX2xvY2ssIGZsYWdzKTsKK3N0YXRpYyBpbnQgbW11X2h3X2RvX29wZXJhdGlvbihzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiwKKwkJCSAgICAgICBzdHJ1Y3QgcGFuZnJvc3RfbW11ICptbXUsCisJCQkgICAgICAgdTY0IGlvdmEsIHNpemVfdCBzaXplLCB1MzIgb3ApCit7CisJaW50IHJldDsKIAorCXNwaW5fbG9jaygmcGZkZXYtPmFzX2xvY2spOworCXJldCA9IG1tdV9od19kb19vcGVyYXRpb25fbG9ja2VkKHBmZGV2LCBtbXUtPmFzLCBpb3ZhLCBzaXplLCBvcCk7CisJc3Bpbl91bmxvY2soJnBmZGV2LT5hc19sb2NrKTsKIAlyZXR1cm4gcmV0OwogfQogCi12b2lkIHBhbmZyb3N0X21tdV9lbmFibGUoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHUzMiBhc19ucikKK3N0YXRpYyB2b2lkIHBhbmZyb3N0X21tdV9lbmFibGUoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHN0cnVjdCBwYW5mcm9zdF9tbXUgKm1tdSkKIHsKLQlzdHJ1Y3QgaW9fcGd0YWJsZV9jZmcgKmNmZyA9ICZwZmRldi0+bW11LT5wZ3RibF9jZmc7CisJaW50IGFzX25yID0gbW11LT5hczsKKwlzdHJ1Y3QgaW9fcGd0YWJsZV9jZmcgKmNmZyA9ICZtbXUtPnBndGJsX2NmZzsKIAl1NjQgdHJhbnN0YWIgPSBjZmctPmFybV9tYWxpX2xwYWVfY2ZnLnRyYW5zdGFiOwogCXU2NCBtZW1hdHRyID0gY2ZnLT5hcm1fbWFsaV9scGFlX2NmZy5tZW1hdHRyOwogCi0JbW11X3dyaXRlKHBmZGV2LCBNTVVfSU5UX0NMRUFSLCB+MCk7Ci0JbW11X3dyaXRlKHBmZGV2LCBNTVVfSU5UX01BU0ssIH4wKTsKKwltbXVfaHdfZG9fb3BlcmF0aW9uX2xvY2tlZChwZmRldiwgYXNfbnIsIDAsIH4wVUwsIEFTX0NPTU1BTkRfRkxVU0hfTUVNKTsKIAogCW1tdV93cml0ZShwZmRldiwgQVNfVFJBTlNUQUJfTE8oYXNfbnIpLCB0cmFuc3RhYiAmIDB4ZmZmZmZmZmZVTCk7CiAJbW11X3dyaXRlKHBmZGV2LCBBU19UUkFOU1RBQl9ISShhc19uciksIHRyYW5zdGFiID4+IDMyKTsKQEAgLTEyNiw4ICsxMjksMTAgQEAgdm9pZCBwYW5mcm9zdF9tbXVfZW5hYmxlKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LCB1MzIgYXNfbnIpCiAJd3JpdGVfY21kKHBmZGV2LCBhc19uciwgQVNfQ09NTUFORF9VUERBVEUpOwogfQogCi1zdGF0aWMgdm9pZCBtbXVfZGlzYWJsZShzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiwgdTMyIGFzX25yKQorc3RhdGljIHZvaWQgcGFuZnJvc3RfbW11X2Rpc2FibGUoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHUzMiBhc19ucikKIHsKKwltbXVfaHdfZG9fb3BlcmF0aW9uX2xvY2tlZChwZmRldiwgYXNfbnIsIDAsIH4wVUwsIEFTX0NPTU1BTkRfRkxVU0hfTUVNKTsKKwogCW1tdV93cml0ZShwZmRldiwgQVNfVFJBTlNUQUJfTE8oYXNfbnIpLCAwKTsKIAltbXVfd3JpdGUocGZkZXYsIEFTX1RSQU5TVEFCX0hJKGFzX25yKSwgMCk7CiAKQEAgLTEzNyw2ICsxNDIsODAgQEAgc3RhdGljIHZvaWQgbW11X2Rpc2FibGUoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHUzMiBhc19ucikKIAl3cml0ZV9jbWQocGZkZXYsIGFzX25yLCBBU19DT01NQU5EX1VQREFURSk7CiB9CiAKK3UzMiBwYW5mcm9zdF9tbXVfYXNfZ2V0KHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LCBzdHJ1Y3QgcGFuZnJvc3RfbW11ICptbXUpCit7CisJaW50IGFzOworCisJc3Bpbl9sb2NrKCZwZmRldi0+YXNfbG9jayk7CisKKwlhcyA9IG1tdS0+YXM7CisJaWYgKGFzID49IDApIHsKKwkJaW50IGVuID0gYXRvbWljX2luY19yZXR1cm4oJm1tdS0+YXNfY291bnQpOworCQlXQVJOX09OKGVuID49IE5VTV9KT0JfU0xPVFMpOworCisJCWxpc3RfbW92ZSgmbW11LT5saXN0LCAmcGZkZXYtPmFzX2xydV9saXN0KTsKKwkJZ290byBvdXQ7CisJfQorCisJLyogQ2hlY2sgZm9yIGEgZnJlZSBBUyAqLworCWFzID0gZmZ6KHBmZGV2LT5hc19hbGxvY19tYXNrKTsKKwlpZiAoIShCSVQoYXMpICYgcGZkZXYtPmZlYXR1cmVzLmFzX3ByZXNlbnQpKSB7CisJCXN0cnVjdCBwYW5mcm9zdF9tbXUgKmxydV9tbXU7CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKGxydV9tbXUsICZwZmRldi0+YXNfbHJ1X2xpc3QsIGxpc3QpIHsKKwkJCWlmICghYXRvbWljX3JlYWQoJmxydV9tbXUtPmFzX2NvdW50KSkKKwkJCQlicmVhazsKKwkJfQorCQlXQVJOX09OKCZscnVfbW11LT5saXN0ID09ICZwZmRldi0+YXNfbHJ1X2xpc3QpOworCisJCWxpc3RfZGVsX2luaXQoJmxydV9tbXUtPmxpc3QpOworCQlhcyA9IGxydV9tbXUtPmFzOworCisJCVdBUk5fT04oYXMgPCAwKTsKKwkJbHJ1X21tdS0+YXMgPSAtMTsKKwl9CisKKwkvKiBBc3NpZ24gdGhlIGZyZWUgb3IgcmVjbGFpbWVkIEFTIHRvIHRoZSBGRCAqLworCW1tdS0+YXMgPSBhczsKKwlzZXRfYml0KGFzLCAmcGZkZXYtPmFzX2FsbG9jX21hc2spOworCWF0b21pY19zZXQoJm1tdS0+YXNfY291bnQsIDEpOworCWxpc3RfYWRkKCZtbXUtPmxpc3QsICZwZmRldi0+YXNfbHJ1X2xpc3QpOworCisJZGV2X2RiZyhwZmRldi0+ZGV2LCAiQXNzaWduZWQgQVMlZCB0byBtbXUgJXAsIGFsbG9jX21hc2s9JWx4IiwgYXMsIG1tdSwgcGZkZXYtPmFzX2FsbG9jX21hc2spOworCisJcGFuZnJvc3RfbW11X2VuYWJsZShwZmRldiwgbW11KTsKKworb3V0OgorCXNwaW5fdW5sb2NrKCZwZmRldi0+YXNfbG9jayk7CisJcmV0dXJuIGFzOworfQorCit2b2lkIHBhbmZyb3N0X21tdV9hc19wdXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHN0cnVjdCBwYW5mcm9zdF9tbXUgKm1tdSkKK3sKKwlhdG9taWNfZGVjKCZtbXUtPmFzX2NvdW50KTsKKwlXQVJOX09OKGF0b21pY19yZWFkKCZtbXUtPmFzX2NvdW50KSA8IDApOworfQorCit2b2lkIHBhbmZyb3N0X21tdV9yZXNldChzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldikKK3sKKwlzdHJ1Y3QgcGFuZnJvc3RfbW11ICptbXUsICptbXVfdG1wOworCisJc3Bpbl9sb2NrKCZwZmRldi0+YXNfbG9jayk7CisKKwlwZmRldi0+YXNfYWxsb2NfbWFzayA9IDA7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobW11LCBtbXVfdG1wLCAmcGZkZXYtPmFzX2xydV9saXN0LCBsaXN0KSB7CisJCW1tdS0+YXMgPSAtMTsKKwkJYXRvbWljX3NldCgmbW11LT5hc19jb3VudCwgMCk7CisJCWxpc3RfZGVsX2luaXQoJm1tdS0+bGlzdCk7CisJfQorCisJc3Bpbl91bmxvY2soJnBmZGV2LT5hc19sb2NrKTsKKworCW1tdV93cml0ZShwZmRldiwgTU1VX0lOVF9DTEVBUiwgfjApOworCW1tdV93cml0ZShwZmRldiwgTU1VX0lOVF9NQVNLLCB+MCk7Cit9CisKIHN0YXRpYyBzaXplX3QgZ2V0X3Bnc2l6ZSh1NjQgYWRkciwgc2l6ZV90IHNpemUpCiB7CiAJaWYgKGFkZHIgJiAoU1pfMk0gLSAxKSB8fCBzaXplIDwgU1pfMk0pCkBAIC0xNDUsNTMgKzIyNCw2OSBAQCBzdGF0aWMgc2l6ZV90IGdldF9wZ3NpemUodTY0IGFkZHIsIHNpemVfdCBzaXplKQogCXJldHVybiBTWl8yTTsKIH0KIAotaW50IHBhbmZyb3N0X21tdV9tYXAoc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgKmJvKQordm9pZCBwYW5mcm9zdF9tbXVfZmx1c2hfcmFuZ2Uoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsCisJCQkgICAgICBzdHJ1Y3QgcGFuZnJvc3RfbW11ICptbXUsCisJCQkgICAgICB1NjQgaW92YSwgc2l6ZV90IHNpemUpCiB7Ci0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSAmYm8tPmJhc2UuYmFzZTsKLQlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IHRvX3BhbmZyb3N0X2RldmljZShvYmotPmRldik7Ci0Jc3RydWN0IGlvX3BndGFibGVfb3BzICpvcHMgPSBwZmRldi0+bW11LT5wZ3RibF9vcHM7Ci0JdTY0IGlvdmEgPSBiby0+bm9kZS5zdGFydCA8PCBQQUdFX1NISUZUOworCWlmIChtbXUtPmFzIDwgMCkKKwkJcmV0dXJuOworCisJcG1fcnVudGltZV9nZXRfbm9yZXN1bWUocGZkZXYtPmRldik7CisKKwkvKiBGbHVzaCB0aGUgUFRzIG9ubHkgaWYgd2UncmUgYWxyZWFkeSBhd2FrZSAqLworCWlmIChwbV9ydW50aW1lX2FjdGl2ZShwZmRldi0+ZGV2KSkKKwkJbW11X2h3X2RvX29wZXJhdGlvbihwZmRldiwgbW11LCBpb3ZhLCBzaXplLCBBU19DT01NQU5EX0ZMVVNIX1BUKTsKKworCXBtX3J1bnRpbWVfcHV0X3N5bmNfYXV0b3N1c3BlbmQocGZkZXYtPmRldik7Cit9CisKK3N0YXRpYyBpbnQgbW11X21hcF9zZyhzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiwgc3RydWN0IHBhbmZyb3N0X21tdSAqbW11LAorCQkgICAgICB1NjQgaW92YSwgaW50IHByb3QsIHN0cnVjdCBzZ190YWJsZSAqc2d0KQorewogCXVuc2lnbmVkIGludCBjb3VudDsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbDsKLQlzdHJ1Y3Qgc2dfdGFibGUgKnNndDsKLQlpbnQgcmV0OwotCi0JaWYgKFdBUk5fT04oYm8tPmlzX21hcHBlZCkpCi0JCXJldHVybiAwOwotCi0Jc2d0ID0gZHJtX2dlbV9zaG1lbV9nZXRfcGFnZXNfc2d0KG9iaik7Ci0JaWYgKFdBUk5fT04oSVNfRVJSKHNndCkpKQotCQlyZXR1cm4gUFRSX0VSUihzZ3QpOwotCi0JcmV0ID0gcG1fcnVudGltZV9nZXRfc3luYyhwZmRldi0+ZGV2KTsKLQlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKLQotCW11dGV4X2xvY2soJnBmZGV2LT5tbXUtPmxvY2spOworCXN0cnVjdCBpb19wZ3RhYmxlX29wcyAqb3BzID0gbW11LT5wZ3RibF9vcHM7CisJdTY0IHN0YXJ0X2lvdmEgPSBpb3ZhOwogCiAJZm9yX2VhY2hfc2coc2d0LT5zZ2wsIHNnbCwgc2d0LT5uZW50cywgY291bnQpIHsKIAkJdW5zaWduZWQgbG9uZyBwYWRkciA9IHNnX2RtYV9hZGRyZXNzKHNnbCk7CiAJCXNpemVfdCBsZW4gPSBzZ19kbWFfbGVuKHNnbCk7CiAKLQkJZGV2X2RiZyhwZmRldi0+ZGV2LCAibWFwOiBpb3ZhPSVsbHgsIHBhZGRyPSVseCwgbGVuPSV6eCIsIGlvdmEsIHBhZGRyLCBsZW4pOworCQlkZXZfZGJnKHBmZGV2LT5kZXYsICJtYXA6IGFzPSVkLCBpb3ZhPSVsbHgsIHBhZGRyPSVseCwgbGVuPSV6eCIsIG1tdS0+YXMsIGlvdmEsIHBhZGRyLCBsZW4pOwogCiAJCXdoaWxlIChsZW4pIHsKIAkJCXNpemVfdCBwZ3NpemUgPSBnZXRfcGdzaXplKGlvdmEgfCBwYWRkciwgbGVuKTsKIAotCQkJb3BzLT5tYXAob3BzLCBpb3ZhLCBwYWRkciwgcGdzaXplLCBJT01NVV9XUklURSB8IElPTU1VX1JFQUQpOworCQkJb3BzLT5tYXAob3BzLCBpb3ZhLCBwYWRkciwgcGdzaXplLCBwcm90KTsKIAkJCWlvdmEgKz0gcGdzaXplOwogCQkJcGFkZHIgKz0gcGdzaXplOwogCQkJbGVuIC09IHBnc2l6ZTsKIAkJfQogCX0KIAotCW1tdV9od19kb19vcGVyYXRpb24ocGZkZXYsIDAsIGJvLT5ub2RlLnN0YXJ0IDw8IFBBR0VfU0hJRlQsCi0JCQkgICAgYm8tPm5vZGUuc2l6ZSA8PCBQQUdFX1NISUZULCBBU19DT01NQU5EX0ZMVVNIX1BUKTsKKwlwYW5mcm9zdF9tbXVfZmx1c2hfcmFuZ2UocGZkZXYsIG1tdSwgc3RhcnRfaW92YSwgaW92YSAtIHN0YXJ0X2lvdmEpOwogCi0JbXV0ZXhfdW5sb2NrKCZwZmRldi0+bW11LT5sb2NrKTsKKwlyZXR1cm4gMDsKK30KIAotCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3kocGZkZXYtPmRldik7Ci0JcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQocGZkZXYtPmRldik7CitpbnQgcGFuZnJvc3RfbW11X21hcChzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm8pCit7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSAmYm8tPmJhc2UuYmFzZTsKKwlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IHRvX3BhbmZyb3N0X2RldmljZShvYmotPmRldik7CisJc3RydWN0IHNnX3RhYmxlICpzZ3Q7CisJaW50IHByb3QgPSBJT01NVV9SRUFEIHwgSU9NTVVfV1JJVEU7CisKKwlpZiAoV0FSTl9PTihiby0+aXNfbWFwcGVkKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoYm8tPm5vZXhlYykKKwkJcHJvdCB8PSBJT01NVV9OT0VYRUM7CisKKwlzZ3QgPSBkcm1fZ2VtX3NobWVtX2dldF9wYWdlc19zZ3Qob2JqKTsKKwlpZiAoV0FSTl9PTihJU19FUlIoc2d0KSkpCisJCXJldHVybiBQVFJfRVJSKHNndCk7CisKKwltbXVfbWFwX3NnKHBmZGV2LCBiby0+bW11LCBiby0+bm9kZS5zdGFydCA8PCBQQUdFX1NISUZULCBwcm90LCBzZ3QpOwogCWJvLT5pc19tYXBwZWQgPSB0cnVlOwogCiAJcmV0dXJuIDA7CkBAIC0yMDEsNTEgKzI5NiwzNCBAQCB2b2lkIHBhbmZyb3N0X21tdV91bm1hcChzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm8pCiB7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSAmYm8tPmJhc2UuYmFzZTsKIAlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IHRvX3BhbmZyb3N0X2RldmljZShvYmotPmRldik7Ci0Jc3RydWN0IGlvX3BndGFibGVfb3BzICpvcHMgPSBwZmRldi0+bW11LT5wZ3RibF9vcHM7CisJc3RydWN0IGlvX3BndGFibGVfb3BzICpvcHMgPSBiby0+bW11LT5wZ3RibF9vcHM7CiAJdTY0IGlvdmEgPSBiby0+bm9kZS5zdGFydCA8PCBQQUdFX1NISUZUOwogCXNpemVfdCBsZW4gPSBiby0+bm9kZS5zaXplIDw8IFBBR0VfU0hJRlQ7CiAJc2l6ZV90IHVubWFwcGVkX2xlbiA9IDA7Ci0JaW50IHJldDsKIAogCWlmIChXQVJOX09OKCFiby0+aXNfbWFwcGVkKSkKIAkJcmV0dXJuOwogCi0JZGV2X2RiZyhwZmRldi0+ZGV2LCAidW5tYXA6IGlvdmE9JWxseCwgbGVuPSV6eCIsIGlvdmEsIGxlbik7Ci0KLQlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKHBmZGV2LT5kZXYpOwotCWlmIChyZXQgPCAwKQotCQlyZXR1cm47Ci0KLQltdXRleF9sb2NrKCZwZmRldi0+bW11LT5sb2NrKTsKKwlkZXZfZGJnKHBmZGV2LT5kZXYsICJ1bm1hcDogYXM9JWQsIGlvdmE9JWxseCwgbGVuPSV6eCIsIGJvLT5tbXUtPmFzLCBpb3ZhLCBsZW4pOwogCiAJd2hpbGUgKHVubWFwcGVkX2xlbiA8IGxlbikgewogCQlzaXplX3QgdW5tYXBwZWRfcGFnZTsKIAkJc2l6ZV90IHBnc2l6ZSA9IGdldF9wZ3NpemUoaW92YSwgbGVuIC0gdW5tYXBwZWRfbGVuKTsKIAotCQl1bm1hcHBlZF9wYWdlID0gb3BzLT51bm1hcChvcHMsIGlvdmEsIHBnc2l6ZSwgTlVMTCk7Ci0JCWlmICghdW5tYXBwZWRfcGFnZSkKLQkJCWJyZWFrOwotCi0JCWlvdmEgKz0gdW5tYXBwZWRfcGFnZTsKLQkJdW5tYXBwZWRfbGVuICs9IHVubWFwcGVkX3BhZ2U7CisJCWlmIChvcHMtPmlvdmFfdG9fcGh5cyhvcHMsIGlvdmEpKSB7CisJCQl1bm1hcHBlZF9wYWdlID0gb3BzLT51bm1hcChvcHMsIGlvdmEsIHBnc2l6ZSwgTlVMTCk7CisJCQlXQVJOX09OKHVubWFwcGVkX3BhZ2UgIT0gcGdzaXplKTsKKwkJfQorCQlpb3ZhICs9IHBnc2l6ZTsKKwkJdW5tYXBwZWRfbGVuICs9IHBnc2l6ZTsKIAl9CiAKLQltbXVfaHdfZG9fb3BlcmF0aW9uKHBmZGV2LCAwLCBiby0+bm9kZS5zdGFydCA8PCBQQUdFX1NISUZULAotCQkJICAgIGJvLT5ub2RlLnNpemUgPDwgUEFHRV9TSElGVCwgQVNfQ09NTUFORF9GTFVTSF9QVCk7Ci0KLQltdXRleF91bmxvY2soJnBmZGV2LT5tbXUtPmxvY2spOwotCi0JcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShwZmRldi0+ZGV2KTsKLQlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChwZmRldi0+ZGV2KTsKKwlwYW5mcm9zdF9tbXVfZmx1c2hfcmFuZ2UocGZkZXYsIGJvLT5tbXUsIGJvLT5ub2RlLnN0YXJ0IDw8IFBBR0VfU0hJRlQsIGxlbik7CiAJYm8tPmlzX21hcHBlZCA9IGZhbHNlOwogfQogCiBzdGF0aWMgdm9pZCBtbXVfdGxiX2ludl9jb250ZXh0X3MxKHZvaWQgKmNvb2tpZSkKLXsKLQlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IGNvb2tpZTsKLQotCW1tdV9od19kb19vcGVyYXRpb24ocGZkZXYsIDAsIDAsIH4wVUwsIEFTX0NPTU1BTkRfRkxVU0hfTUVNKTsKLX0KK3t9CiAKIHN0YXRpYyB2b2lkIG1tdV90bGJfc3luY19jb250ZXh0KHZvaWQgKmNvb2tpZSkKIHsKQEAgLTI3MSw2ICszNDksMTg0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW9tbXVfZmx1c2hfb3BzIG1tdV90bGJfb3BzID0gewogCS50bGJfZmx1c2hfbGVhZiA9IG1tdV90bGJfZmx1c2hfbGVhZiwKIH07CiAKK2ludCBwYW5mcm9zdF9tbXVfcGd0YWJsZV9hbGxvYyhzdHJ1Y3QgcGFuZnJvc3RfZmlsZV9wcml2ICpwcml2KQoreworCXN0cnVjdCBwYW5mcm9zdF9tbXUgKm1tdSA9ICZwcml2LT5tbXU7CisJc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYgPSBwcml2LT5wZmRldjsKKworCUlOSVRfTElTVF9IRUFEKCZtbXUtPmxpc3QpOworCW1tdS0+YXMgPSAtMTsKKworCW1tdS0+cGd0YmxfY2ZnID0gKHN0cnVjdCBpb19wZ3RhYmxlX2NmZykgeworCQkucGdzaXplX2JpdG1hcAk9IFNaXzRLIHwgU1pfMk0sCisJCS5pYXMJCT0gRklFTERfR0VUKDB4ZmYsIHBmZGV2LT5mZWF0dXJlcy5tbXVfZmVhdHVyZXMpLAorCQkub2FzCQk9IEZJRUxEX0dFVCgweGZmMDAsIHBmZGV2LT5mZWF0dXJlcy5tbXVfZmVhdHVyZXMpLAorCQkudGxiCQk9ICZtbXVfdGxiX29wcywKKwkJLmlvbW11X2Rldgk9IHBmZGV2LT5kZXYsCisJfTsKKworCW1tdS0+cGd0Ymxfb3BzID0gYWxsb2NfaW9fcGd0YWJsZV9vcHMoQVJNX01BTElfTFBBRSwgJm1tdS0+cGd0YmxfY2ZnLAorCQkJCQkgICAgICBwcml2KTsKKwlpZiAoIW1tdS0+cGd0Ymxfb3BzKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiAwOworfQorCit2b2lkIHBhbmZyb3N0X21tdV9wZ3RhYmxlX2ZyZWUoc3RydWN0IHBhbmZyb3N0X2ZpbGVfcHJpdiAqcHJpdikKK3sKKwlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IHByaXYtPnBmZGV2OworCXN0cnVjdCBwYW5mcm9zdF9tbXUgKm1tdSA9ICZwcml2LT5tbXU7CisKKwlzcGluX2xvY2soJnBmZGV2LT5hc19sb2NrKTsKKwlpZiAobW11LT5hcyA+PSAwKSB7CisJCXBtX3J1bnRpbWVfZ2V0X25vcmVzdW1lKHBmZGV2LT5kZXYpOworCQlpZiAocG1fcnVudGltZV9hY3RpdmUocGZkZXYtPmRldikpCisJCQlwYW5mcm9zdF9tbXVfZGlzYWJsZShwZmRldiwgbW11LT5hcyk7CisJCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKHBmZGV2LT5kZXYpOworCisJCWNsZWFyX2JpdChtbXUtPmFzLCAmcGZkZXYtPmFzX2FsbG9jX21hc2spOworCQljbGVhcl9iaXQobW11LT5hcywgJnBmZGV2LT5hc19pbl91c2VfbWFzayk7CisJCWxpc3RfZGVsKCZtbXUtPmxpc3QpOworCX0KKwlzcGluX3VubG9jaygmcGZkZXYtPmFzX2xvY2spOworCisJZnJlZV9pb19wZ3RhYmxlX29wcyhtbXUtPnBndGJsX29wcyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqCithZGRyX3RvX2RybV9tbV9ub2RlKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LCBpbnQgYXMsIHU2NCBhZGRyKQoreworCXN0cnVjdCBwYW5mcm9zdF9nZW1fb2JqZWN0ICpibyA9IE5VTEw7CisJc3RydWN0IHBhbmZyb3N0X2ZpbGVfcHJpdiAqcHJpdjsKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGU7CisJdTY0IG9mZnNldCA9IGFkZHIgPj4gUEFHRV9TSElGVDsKKwlzdHJ1Y3QgcGFuZnJvc3RfbW11ICptbXU7CisKKwlzcGluX2xvY2soJnBmZGV2LT5hc19sb2NrKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1tdSwgJnBmZGV2LT5hc19scnVfbGlzdCwgbGlzdCkgeworCQlpZiAoYXMgPT0gbW11LT5hcykKKwkJCWJyZWFrOworCX0KKwlpZiAoYXMgIT0gbW11LT5hcykKKwkJZ290byBvdXQ7CisKKwlwcml2ID0gY29udGFpbmVyX29mKG1tdSwgc3RydWN0IHBhbmZyb3N0X2ZpbGVfcHJpdiwgbW11KTsKKworCXNwaW5fbG9jaygmcHJpdi0+bW1fbG9jayk7CisKKwlkcm1fbW1fZm9yX2VhY2hfbm9kZShub2RlLCAmcHJpdi0+bW0pIHsKKwkJaWYgKG9mZnNldCA+PSBub2RlLT5zdGFydCAmJgorCQkgICAgb2Zmc2V0IDwgKG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6ZSkpIHsKKwkJCWJvID0gZHJtX21tX25vZGVfdG9fcGFuZnJvc3RfYm8obm9kZSk7CisJCQlkcm1fZ2VtX29iamVjdF9nZXQoJmJvLT5iYXNlLmJhc2UpOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlzcGluX3VubG9jaygmcHJpdi0+bW1fbG9jayk7CitvdXQ6CisJc3Bpbl91bmxvY2soJnBmZGV2LT5hc19sb2NrKTsKKwlyZXR1cm4gYm87Cit9CisKKyNkZWZpbmUgTlVNX0ZBVUxUX1BBR0VTIChTWl8yTSAvIFBBR0VfU0laRSkKKworaW50IHBhbmZyb3N0X21tdV9tYXBfZmF1bHRfYWRkcihzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiwgaW50IGFzLCB1NjQgYWRkcikKK3sKKwlpbnQgcmV0LCBpOworCXN0cnVjdCBwYW5mcm9zdF9nZW1fb2JqZWN0ICpibzsKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZzsKKwlwZ29mZl90IHBhZ2Vfb2Zmc2V0OworCXN0cnVjdCBzZ190YWJsZSAqc2d0OworCXN0cnVjdCBwYWdlICoqcGFnZXM7CisKKwlibyA9IGFkZHJfdG9fZHJtX21tX25vZGUocGZkZXYsIGFzLCBhZGRyKTsKKwlpZiAoIWJvKQorCQlyZXR1cm4gLUVOT0VOVDsKKworCWlmICghYm8tPmlzX2hlYXApIHsKKwkJZGV2X1dBUk4ocGZkZXYtPmRldiwgIm1hdGNoaW5nIEJPIGlzIG5vdCBoZWFwIHR5cGUgKEdQVSBWQSA9ICVsbHgpIiwKKwkJCSBiby0+bm9kZS5zdGFydCA8PCBQQUdFX1NISUZUKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBlcnJfYm87CisJfQorCVdBUk5fT04oYm8tPm1tdS0+YXMgIT0gYXMpOworCisJLyogQXNzdW1lIDJNQiBhbGlnbm1lbnQgYW5kIHNpemUgbXVsdGlwbGUgKi8KKwlhZGRyICY9IH4oKHU2NClTWl8yTSAtIDEpOworCXBhZ2Vfb2Zmc2V0ID0gYWRkciA+PiBQQUdFX1NISUZUOworCXBhZ2Vfb2Zmc2V0IC09IGJvLT5ub2RlLnN0YXJ0OworCisJbXV0ZXhfbG9jaygmYm8tPmJhc2UucGFnZXNfbG9jayk7CisKKwlpZiAoIWJvLT5iYXNlLnBhZ2VzKSB7CisJCWJvLT5zZ3RzID0ga3ZtYWxsb2NfYXJyYXkoYm8tPmJhc2UuYmFzZS5zaXplIC8gU1pfMk0sCisJCQkJICAgICBzaXplb2Yoc3RydWN0IHNnX3RhYmxlKSwgR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOworCQlpZiAoIWJvLT5zZ3RzKSB7CisJCQltdXRleF91bmxvY2soJmJvLT5iYXNlLnBhZ2VzX2xvY2spOworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gZXJyX2JvOworCQl9CisKKwkJcGFnZXMgPSBrdm1hbGxvY19hcnJheShiby0+YmFzZS5iYXNlLnNpemUgPj4gUEFHRV9TSElGVCwKKwkJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBwYWdlICopLCBHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CisJCWlmICghcGFnZXMpIHsKKwkJCWtmcmVlKGJvLT5zZ3RzKTsKKwkJCWJvLT5zZ3RzID0gTlVMTDsKKwkJCW11dGV4X3VubG9jaygmYm8tPmJhc2UucGFnZXNfbG9jayk7CisJCQlyZXQgPSAtRU5PTUVNOworCQkJZ290byBlcnJfYm87CisJCX0KKwkJYm8tPmJhc2UucGFnZXMgPSBwYWdlczsKKwkJYm8tPmJhc2UucGFnZXNfdXNlX2NvdW50ID0gMTsKKwl9IGVsc2UKKwkJcGFnZXMgPSBiby0+YmFzZS5wYWdlczsKKworCW1hcHBpbmcgPSBiby0+YmFzZS5iYXNlLmZpbHAtPmZfbWFwcGluZzsKKwltYXBwaW5nX3NldF91bmV2aWN0YWJsZShtYXBwaW5nKTsKKworCWZvciAoaSA9IHBhZ2Vfb2Zmc2V0OyBpIDwgcGFnZV9vZmZzZXQgKyBOVU1fRkFVTFRfUEFHRVM7IGkrKykgeworCQlwYWdlc1tpXSA9IHNobWVtX3JlYWRfbWFwcGluZ19wYWdlKG1hcHBpbmcsIGkpOworCQlpZiAoSVNfRVJSKHBhZ2VzW2ldKSkgeworCQkJbXV0ZXhfdW5sb2NrKCZiby0+YmFzZS5wYWdlc19sb2NrKTsKKwkJCXJldCA9IFBUUl9FUlIocGFnZXNbaV0pOworCQkJZ290byBlcnJfcGFnZXM7CisJCX0KKwl9CisKKwltdXRleF91bmxvY2soJmJvLT5iYXNlLnBhZ2VzX2xvY2spOworCisJc2d0ID0gJmJvLT5zZ3RzW3BhZ2Vfb2Zmc2V0IC8gKFNaXzJNIC8gUEFHRV9TSVpFKV07CisJcmV0ID0gc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcyhzZ3QsIHBhZ2VzICsgcGFnZV9vZmZzZXQsCisJCQkJCU5VTV9GQVVMVF9QQUdFUywgMCwgU1pfMk0sIEdGUF9LRVJORUwpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3BhZ2VzOworCisJaWYgKCFkbWFfbWFwX3NnKHBmZGV2LT5kZXYsIHNndC0+c2dsLCBzZ3QtPm5lbnRzLCBETUFfQklESVJFQ1RJT05BTCkpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBlcnJfbWFwOworCX0KKworCW1tdV9tYXBfc2cocGZkZXYsIGJvLT5tbXUsIGFkZHIsIElPTU1VX1dSSVRFIHwgSU9NTVVfUkVBRCB8IElPTU1VX05PRVhFQywgc2d0KTsKKworCWJvLT5pc19tYXBwZWQgPSB0cnVlOworCisJZGV2X2RiZyhwZmRldi0+ZGV2LCAibWFwcGVkIHBhZ2UgZmF1bHQgQCBBUyVkICVsbHgiLCBhcywgYWRkcik7CisKKwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJmJvLT5iYXNlLmJhc2UpOworCisJcmV0dXJuIDA7CisKK2Vycl9tYXA6CisJc2dfZnJlZV90YWJsZShzZ3QpOworZXJyX3BhZ2VzOgorCWRybV9nZW1fc2htZW1fcHV0X3BhZ2VzKCZiby0+YmFzZSk7CitlcnJfYm86CisJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZiby0+YmFzZS5iYXNlKTsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgY29uc3QgY2hhciAqYWNjZXNzX3R5cGVfbmFtZShzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiwKIAkJdTMyIGZhdWx0X3N0YXR1cykKIHsKQEAgLTI5NSwxMyArNTUxLDE5IEBAIHN0YXRpYyBjb25zdCBjaGFyICphY2Nlc3NfdHlwZV9uYW1lKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LAogc3RhdGljIGlycXJldHVybl90IHBhbmZyb3N0X21tdV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2ID0gZGF0YTsKLQl1MzIgc3RhdHVzID0gbW11X3JlYWQocGZkZXYsIE1NVV9JTlRfU1RBVCk7Ci0JaW50IGk7CiAKLQlpZiAoIXN0YXR1cykKKwlpZiAoIW1tdV9yZWFkKHBmZGV2LCBNTVVfSU5UX1NUQVQpKQogCQlyZXR1cm4gSVJRX05PTkU7CiAKLQlkZXZfZXJyKHBmZGV2LT5kZXYsICJtbXUgaXJxIHN0YXR1cz0leFxuIiwgc3RhdHVzKTsKKwltbXVfd3JpdGUocGZkZXYsIE1NVV9JTlRfTUFTSywgMCk7CisJcmV0dXJuIElSUV9XQUtFX1RIUkVBRDsKK30KKworc3RhdGljIGlycXJldHVybl90IHBhbmZyb3N0X21tdV9pcnFfaGFuZGxlcl90aHJlYWQoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldiA9IGRhdGE7CisJdTMyIHN0YXR1cyA9IG1tdV9yZWFkKHBmZGV2LCBNTVVfSU5UX1JBV1NUQVQpOworCWludCBpLCByZXQ7CiAKIAlmb3IgKGkgPSAwOyBzdGF0dXM7IGkrKykgewogCQl1MzIgbWFzayA9IEJJVChpKSB8IEJJVChpICsgMTYpOwpAQCAtMzIzLDYgKzU4NSwxOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcGFuZnJvc3RfbW11X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiAJCWFjY2Vzc190eXBlID0gKGZhdWx0X3N0YXR1cyA+PiA4KSAmIDB4MzsKIAkJc291cmNlX2lkID0gKGZhdWx0X3N0YXR1cyA+PiAxNik7CiAKKwkJLyogUGFnZSBmYXVsdCBvbmx5ICovCisJCWlmICgoc3RhdHVzICYgbWFzaykgPT0gQklUKGkpKSB7CisJCQlXQVJOX09OKGV4Y2VwdGlvbl90eXBlIDwgMHhDMSB8fCBleGNlcHRpb25fdHlwZSA+IDB4QzQpOworCisJCQlyZXQgPSBwYW5mcm9zdF9tbXVfbWFwX2ZhdWx0X2FkZHIocGZkZXYsIGksIGFkZHIpOworCQkJaWYgKCFyZXQpIHsKKwkJCQltbXVfd3JpdGUocGZkZXYsIE1NVV9JTlRfQ0xFQVIsIEJJVChpKSk7CisJCQkJc3RhdHVzICY9IH5tYXNrOworCQkJCWNvbnRpbnVlOworCQkJfQorCQl9CisKIAkJLyogdGVybWluYWwgZmF1bHQsIHByaW50IGluZm8gYWJvdXQgdGhlIGZhdWx0ICovCiAJCWRldl9lcnIocGZkZXYtPmRldiwKIAkJCSJVbmhhbmRsZWQgUGFnZSBmYXVsdCBpbiBBUyVkIGF0IFZBIDB4JTAxNmxsWFxuIgpAQCAtMzQ1LDUwICs2MTksMjYgQEAgc3RhdGljIGlycXJldHVybl90IHBhbmZyb3N0X21tdV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQogCQlzdGF0dXMgJj0gfm1hc2s7CiAJfQogCisJbW11X3dyaXRlKHBmZGV2LCBNTVVfSU5UX01BU0ssIH4wKTsKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9OwogCiBpbnQgcGFuZnJvc3RfbW11X2luaXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpCiB7Ci0Jc3RydWN0IGlvX3BndGFibGVfb3BzICpwZ3RibF9vcHM7CiAJaW50IGVyciwgaXJxOwogCi0JcGZkZXYtPm1tdSA9IGRldm1fa3phbGxvYyhwZmRldi0+ZGV2LCBzaXplb2YoKnBmZGV2LT5tbXUpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXBmZGV2LT5tbXUpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JbXV0ZXhfaW5pdCgmcGZkZXYtPm1tdS0+bG9jayk7Ci0KIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZSh0b19wbGF0Zm9ybV9kZXZpY2UocGZkZXYtPmRldiksICJtbXUiKTsKIAlpZiAoaXJxIDw9IDApCiAJCXJldHVybiAtRU5PREVWOwogCi0JZXJyID0gZGV2bV9yZXF1ZXN0X2lycShwZmRldi0+ZGV2LCBpcnEsIHBhbmZyb3N0X21tdV9pcnFfaGFuZGxlciwKLQkJCSAgICAgICBJUlFGX1NIQVJFRCwgIm1tdSIsIHBmZGV2KTsKKwllcnIgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKHBmZGV2LT5kZXYsIGlycSwgcGFuZnJvc3RfbW11X2lycV9oYW5kbGVyLAorCQkJCQlwYW5mcm9zdF9tbXVfaXJxX2hhbmRsZXJfdGhyZWFkLAorCQkJCQlJUlFGX1NIQVJFRCwgIm1tdSIsIHBmZGV2KTsKIAogCWlmIChlcnIpIHsKIAkJZGV2X2VycihwZmRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3QgbW11IGlycSIpOwogCQlyZXR1cm4gZXJyOwogCX0KLQltbXVfd3JpdGUocGZkZXYsIE1NVV9JTlRfQ0xFQVIsIH4wKTsKLQltbXVfd3JpdGUocGZkZXYsIE1NVV9JTlRfTUFTSywgfjApOwotCi0JcGZkZXYtPm1tdS0+cGd0YmxfY2ZnID0gKHN0cnVjdCBpb19wZ3RhYmxlX2NmZykgewotCQkucGdzaXplX2JpdG1hcAk9IFNaXzRLIHwgU1pfMk0sCi0JCS5pYXMJCT0gRklFTERfR0VUKDB4ZmYsIHBmZGV2LT5mZWF0dXJlcy5tbXVfZmVhdHVyZXMpLAotCQkub2FzCQk9IEZJRUxEX0dFVCgweGZmMDAsIHBmZGV2LT5mZWF0dXJlcy5tbXVfZmVhdHVyZXMpLAotCQkudGxiCQk9ICZtbXVfdGxiX29wcywKLQkJLmlvbW11X2Rldgk9IHBmZGV2LT5kZXYsCi0JfTsKLQotCXBndGJsX29wcyA9IGFsbG9jX2lvX3BndGFibGVfb3BzKEFSTV9NQUxJX0xQQUUsICZwZmRldi0+bW11LT5wZ3RibF9jZmcsCi0JCQkJCSBwZmRldik7Ci0JaWYgKCFwZ3RibF9vcHMpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JcGZkZXYtPm1tdS0+cGd0Ymxfb3BzID0gcGd0Ymxfb3BzOwotCi0JcGFuZnJvc3RfbW11X2VuYWJsZShwZmRldiwgMCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTM5Niw3ICs2NDYsNCBAQCBpbnQgcGFuZnJvc3RfbW11X2luaXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYpCiB2b2lkIHBhbmZyb3N0X21tdV9maW5pKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2KQogewogCW1tdV93cml0ZShwZmRldiwgTU1VX0lOVF9NQVNLLCAwKTsKLQltbXVfZGlzYWJsZShwZmRldiwgMCk7Ci0KLQlmcmVlX2lvX3BndGFibGVfb3BzKHBmZGV2LT5tbXUtPnBndGJsX29wcyk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfbW11LmggYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfbW11LmgKaW5kZXggZjU4NzhkOC4uN2M1YjY3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X21tdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9tbXUuaApAQCAtNSwxMyArNSwyMCBAQAogI2RlZmluZSBfX1BBTkZST1NUX01NVV9IX18KIAogc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3Q7CitzdHJ1Y3QgcGFuZnJvc3RfZmlsZV9wcml2Oworc3RydWN0IHBhbmZyb3N0X21tdTsKIAogaW50IHBhbmZyb3N0X21tdV9tYXAoc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgKmJvKTsKIHZvaWQgcGFuZnJvc3RfbW11X3VubWFwKHN0cnVjdCBwYW5mcm9zdF9nZW1fb2JqZWN0ICpibyk7CiAKIGludCBwYW5mcm9zdF9tbXVfaW5pdChzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlICpwZmRldik7CiB2b2lkIHBhbmZyb3N0X21tdV9maW5pKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2KTsKK3ZvaWQgcGFuZnJvc3RfbW11X3Jlc2V0KHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2KTsKIAotdm9pZCBwYW5mcm9zdF9tbXVfZW5hYmxlKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LCB1MzIgYXNfbnIpOwordTMyIHBhbmZyb3N0X21tdV9hc19nZXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHN0cnVjdCBwYW5mcm9zdF9tbXUgKm1tdSk7Cit2b2lkIHBhbmZyb3N0X21tdV9hc19wdXQoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHN0cnVjdCBwYW5mcm9zdF9tbXUgKm1tdSk7CisKK2ludCBwYW5mcm9zdF9tbXVfcGd0YWJsZV9hbGxvYyhzdHJ1Y3QgcGFuZnJvc3RfZmlsZV9wcml2ICpwcml2KTsKK3ZvaWQgcGFuZnJvc3RfbW11X3BndGFibGVfZnJlZShzdHJ1Y3QgcGFuZnJvc3RfZmlsZV9wcml2ICpwcml2KTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX2RlYnVnZnMuYwppbmRleCA4ZDZhNDA0Li4zYzhlODIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9kZWJ1Z2ZzLmMKQEAgLTUsOCArNSwxMCBAQAogCiAjaW5jbHVkZSA8bGludXgvYW1iYS9jbGNkLXJlZ3MuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKwogI2luY2x1ZGUgInBsMTExX2RybS5oIgogCiAjZGVmaW5lIFJFR0RFRihyZWcpIHsgcmVnLCAjcmVnIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZGlzcGxheS5jCmluZGV4IDE1ZDI3NTUuLjAyNDc3MWE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9kaXNwbGF5LmMKQEAgLTExLDE0ICsxMSwxNiBAQAogCiAjaW5jbHVkZSA8bGludXgvYW1iYS9jbGNkLXJlZ3MuaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgInBsMTExX2RybS5oIgogCkBAIC0xMjYsNiArMTI4LDcgQEAgc3RhdGljIHZvaWQgcGwxMTFfZGlzcGxheV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcHJpdi0+Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UgPSBwcml2LT5icmlkZ2U7CisJYm9vbCBncmF5c2NhbGUgPSBmYWxzZTsKIAl1MzIgY250bDsKIAl1MzIgcHBsLCBoc3csIGhmcCwgaGJwOwogCXUzMiBscHAsIHZzdywgdmZwLCB2YnA7CkBAIC0xODUsNiArMTg4LDIwIEBAIHN0YXRpYyB2b2lkIHBsMTExX2Rpc3BsYXlfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkJaWYgKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyAmCiAJCSAgICBEUk1fQlVTX0ZMQUdfUElYREFUQV9EUklWRV9ORUdFREdFKQogCQkJdGltMiB8PSBUSU0yX0lQQzsKKworCQlpZiAoY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ubnVtX2J1c19mb3JtYXRzID09IDEgJiYKKwkJICAgIGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mb3JtYXRzWzBdID09CisJCSAgICBNRURJQV9CVVNfRk1UX1k4XzFYOCkKKwkJCWdyYXlzY2FsZSA9IHRydWU7CisKKwkJLyoKKwkJICogVGhlIEFDIHBpbiBiaWFzIGZyZXF1ZW5jeSBpcyBzZXQgdG8gbWF4IGNvdW50IHdoZW4gdXNpbmcKKwkJICogZ3JheXNjYWxlIHNvIGF0IGxlYXN0IG9uY2UgaW4gYSB3aGlsZSB3ZSB3aWxsIHJldmVyc2UKKwkJICogcG9sYXJpdHkgYW5kIGdldCByaWQgb2YgYW55IERDIGJ1aWx0IHVwIHRoYXQgY291bGQKKwkJICogZGFtYWdlIHRoZSBkaXNwbGF5LgorCQkgKi8KKwkJaWYgKGdyYXlzY2FsZSkKKwkJCXRpbTIgfD0gVElNMl9BQ0JfTUFTSzsKIAl9CiAKIAlpZiAoYnJpZGdlKSB7CkBAIC0yMTYsOCArMjMzLDE4IEBAIHN0YXRpYyB2b2lkIHBsMTExX2Rpc3BsYXlfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAogCXdyaXRlbCgwLCBwcml2LT5yZWdzICsgQ0xDRF9USU0zKTsKIAotCS8qIEhhcmQtY29kZSBURlQgcGFuZWwgKi8KLQljbnRsID0gQ05UTF9MQ0RFTiB8IENOVExfTENEVEZUIHwgQ05UTF9MQ0RWQ09NUCgxKTsKKwkvKgorCSAqIERldGVjdCBncmF5c2NhbGUgYnVzIGZvcm1hdC4gV2UgZG8gbm90IHN1cHBvcnQgYSBncmF5c2NhbGUgbW9kZQorCSAqIHRvd2FyZCB1c2Vyc3BhY2UsIGluc3RlYWQgd2UgZXhwb3NlIGFuIFJHQjI0IGJ1ZmZlciBhbmQgdGhlbiB0aGUKKwkgKiBoYXJkd2FyZSB3aWxsIGFjdGl2YXRlIGl0cyBncmF5c2NhbGVyIHRvIGNvbnZlcnQgdG8gdGhlIGdyYXlzY2FsZQorCSAqIGZvcm1hdC4KKwkgKi8KKwlpZiAoZ3JheXNjYWxlKQorCQljbnRsID0gQ05UTF9MQ0RFTiB8IENOVExfTENETU9OTzg7CisJZWxzZQorCQkvKiBFbHNlIHdlIGFzc3VtZSBURlQgZGlzcGxheSAqLworCQljbnRsID0gQ05UTF9MQ0RFTiB8IENOVExfTENEVEZUIHwgQ05UTF9MQ0RWQ09NUCgxKTsKKwogCS8qIE9uIHRoZSBTVCBNaWNybyB2YXJpYW50LCBhc3N1bWUgYWxsIDI0IGJpdHMgYXJlIGNvbm5lY3RlZCAqLwogCWlmIChwcml2LT52YXJpYW50LT5zdF9iaXRtdXhfY29udHJvbCkKIAkJY250bCB8PSBDTlRMX1NUX0NEV0lEXzI0OwpAQCAtNTQ2LDI1ICs1NzMsOCBAQCBwbDExMV9pbml0X2Nsb2NrX2RpdmlkZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKIGludCBwbDExMV9kaXNwbGF5X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKIHsKIAlzdHJ1Y3QgcGwxMTFfZHJtX2Rldl9wcml2YXRlICpwcml2ID0gZHJtLT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBkcm0tPmRldjsKLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVuZHBvaW50OwotCXUzMiB0ZnRfcjBiMGcwWzNdOwogCWludCByZXQ7CiAKLQllbmRwb2ludCA9IG9mX2dyYXBoX2dldF9uZXh0X2VuZHBvaW50KGRldi0+b2Zfbm9kZSwgTlVMTCk7Ci0JaWYgKCFlbmRwb2ludCkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkoZW5kcG9pbnQsCi0JCQkJICAgICAgICJhcm0scGwxMXgsdGZ0LXIwZzBiMC1wYWRzIiwKLQkJCQkgICAgICAgdGZ0X3IwYjBnMCwKLQkJCQkgICAgICAgQVJSQVlfU0laRSh0ZnRfcjBiMGcwKSkgIT0gMCkgewotCQlkZXZfZXJyKGRldiwgImFybSxwbDExeCx0ZnQtcjBnMGIwLXBhZHMgc2hvdWxkIGJlIDMgaW50c1xuIik7Ci0JCW9mX25vZGVfcHV0KGVuZHBvaW50KTsKLQkJcmV0dXJuIC1FTk9FTlQ7Ci0JfQotCW9mX25vZGVfcHV0KGVuZHBvaW50KTsKLQogCXJldCA9IHBsMTExX2luaXRfY2xvY2tfZGl2aWRlcihkcm0pOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZHJtLmggYi9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZHJtLmgKaW5kZXggYjJjNWU5Zi4uNzdkMmRhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX2RybS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9kcm0uaApAQCAtMTMsMTUgKzEzLDE2IEBACiAjaWZuZGVmIF9QTDExMV9EUk1fSF8KICNkZWZpbmUgX1BMMTExX0RSTV9IXwogCi0jaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9icmlkZ2UuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fYnJpZGdlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+CisKICNkZWZpbmUgQ0xDRF9JUlFfTkVYVEJBU0VfVVBEQVRFIEJJVCgyKQogCiBzdHJ1Y3QgZHJtX21pbm9yOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX2Rydi5jCmluZGV4IDAxZjg0NjIuLjI3NmI1MzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZHJ2LmMKQEAgLTQ4LDE4ICs0OCwxOCBAQAogCiAjaW5jbHVkZSA8bGludXgvYW1iYS9idXMuaD4KICNpbmNsdWRlIDxsaW51eC9hbWJhL2NsY2QtcmVncy5oPgotI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KLSNpbmNsdWRlIDxsaW51eC9zaG1lbV9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgogI2luY2x1ZGUgPGxpbnV4L29mX3Jlc2VydmVkX21lbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9icmlkZ2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgpAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAicGwxMTFfZHJtLmgiCiAjaW5jbHVkZSAicGwxMTFfdmVyc2F0aWxlLmgiCkBAIC0yMjQsNyArMjI1LDcgQEAgREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoZHJtX2ZvcHMpOwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgcGwxMTFfZHJtX2RyaXZlciA9IHsKIAkuZHJpdmVyX2ZlYXR1cmVzID0KLQkJRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX1BSSU1FIHwgRFJJVkVSX0FUT01JQywKKwkJRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX0FUT01JQywKIAkuaW9jdGxzID0gTlVMTCwKIAkuZm9wcyA9ICZkcm1fZm9wcywKIAkubmFtZSA9ICJwbDExMSIsCkBAIC0yMzgsOSArMjM5LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHBsMTExX2RybV9kcml2ZXIgPSB7CiAJLmdlbV92bV9vcHMgPSAmZHJtX2dlbV9jbWFfdm1fb3BzLAogCS5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFuZGxlID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKIAkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IHBsMTExX2dlbV9pbXBvcnRfc2dfdGFibGUsCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKIAkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZQk9IGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX21tYXAgPSBkcm1fZ2VtX2NtYV9wcmltZV9tbWFwLAogCS5nZW1fcHJpbWVfdm1hcCA9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfbm9tYWRpay5oIGIvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX25vbWFkaWsuaAppbmRleCAxOWQ2NjNkLi40N2NjZjVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfbm9tYWRpay5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9ub21hZGlrLmgKQEAgLTEsMTAgKzEsMTEgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwotI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogCiAjaWZuZGVmIFBMMTExX05PTUFESUtfSAogI2RlZmluZSBQTDExMV9OT01BRElLX0gKICNlbmRpZgogCitzdHJ1Y3QgZGV2aWNlOworCiAjaWZkZWYgQ09ORklHX0FSQ0hfTk9NQURJSwogCiB2b2lkIHBsMTExX25vbWFkaWtfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX3ZlcnNhdGlsZS5jIGIvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX3ZlcnNhdGlsZS5jCmluZGV4IDM4ZjRlZTAuLjA5YWVhZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV92ZXJzYXRpbGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfdmVyc2F0aWxlLmMKQEAgLTEsMTMgKzEsMTQgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKwogI2luY2x1ZGUgPGxpbnV4L2FtYmEvY2xjZC1yZWdzLmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Ci0jaW5jbHVkZSA8bGludXgvYml0b3BzLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKwogI2luY2x1ZGUgInBsMTExX3ZlcnNhdGlsZS5oIgogI2luY2x1ZGUgInBsMTExX3ZleHByZXNzLmgiCiAjaW5jbHVkZSAicGwxMTFfZHJtLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfdmVyc2F0aWxlLmggYi9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfdmVyc2F0aWxlLmgKaW5kZXggNDFhYTZkOTY5Li4xNDM4NzcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfdmVyc2F0aWxlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX3ZlcnNhdGlsZS5oCkBAIC00LDYgKzQsOSBAQAogI2lmbmRlZiBQTDExMV9WRVJTQVRJTEVfSAogI2RlZmluZSBQTDExMV9WRVJTQVRJTEVfSAogCitzdHJ1Y3QgZGV2aWNlOworc3RydWN0IHBsMTExX2RybV9kZXZfcHJpdmF0ZTsKKwogaW50IHBsMTExX3ZlcnNhdGlsZV9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBsMTExX2RybV9kZXZfcHJpdmF0ZSAqcHJpdik7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX3ZleHByZXNzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfdmV4cHJlc3MuYwppbmRleCAzOGM5MzhjLi4zNTA1NzBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfdmV4cHJlc3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfdmV4cHJlc3MuYwpAQCAtNTEsNiArNTEsNyBAQCBpbnQgcGwxMTFfdmV4cHJlc3NfY2xjZF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJfQogCQlpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoY2hpbGQsICJhcm0saGRsY2QiKSkgewogCQkJaGFzX2NvcmV0aWxlX2hkbGNkID0gdHJ1ZTsKKwkJCW9mX25vZGVfcHV0KGNoaWxkKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfY21kLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9jbWQuYwppbmRleCAwYTJlNTFhLi5lZjA5ZGM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9jbWQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9jbWQuYwpAQCAtMjUsNiArMjUsOCBAQAogCiAvKiBRWEwgY21kL3JpbmcgaGFuZGxpbmcgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX3V0aWwuaD4KIAogI2luY2x1ZGUgInF4bF9kcnYuaCIKQEAgLTM3NSw3ICszNzcsNyBAQCB2b2lkIHF4bF9pb19kZXN0cm95X3ByaW1hcnkoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYpCiB7CiAJd2FpdF9mb3JfaW9fY21kKHFkZXYsIDAsIFFYTF9JT19ERVNUUk9ZX1BSSU1BUllfQVNZTkMpOwogCXFkZXYtPnByaW1hcnlfYm8tPmlzX3ByaW1hcnkgPSBmYWxzZTsKLQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJnFkZXYtPnByaW1hcnlfYm8tPmdlbV9iYXNlKTsKKwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJnFkZXYtPnByaW1hcnlfYm8tPnRiby5iYXNlKTsKIAlxZGV2LT5wcmltYXJ5X2JvID0gTlVMTDsKIH0KIApAQCAtNDAyLDcgKzQwNCw3IEBAIHZvaWQgcXhsX2lvX2NyZWF0ZV9wcmltYXJ5KHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2LCBzdHJ1Y3QgcXhsX2JvICpibykKIAl3YWl0X2Zvcl9pb19jbWQocWRldiwgMCwgUVhMX0lPX0NSRUFURV9QUklNQVJZX0FTWU5DKTsKIAlxZGV2LT5wcmltYXJ5X2JvID0gYm87CiAJcWRldi0+cHJpbWFyeV9iby0+aXNfcHJpbWFyeSA9IHRydWU7Ci0JZHJtX2dlbV9vYmplY3RfZ2V0KCZxZGV2LT5wcmltYXJ5X2JvLT5nZW1fYmFzZSk7CisJZHJtX2dlbV9vYmplY3RfZ2V0KCZxZGV2LT5wcmltYXJ5X2JvLT50Ym8uYmFzZSk7CiB9CiAKIHZvaWQgcXhsX2lvX21lbXNsb3RfYWRkKHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2LCB1aW50OF90IGlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZGVidWdmcy5jCmluZGV4IDExODQyMjUuLmE0ZjQxNzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kZWJ1Z2ZzLmMKQEAgLTI4LDkgKzI4LDkgQEAKICAqICBBbG9uIExldnkgPGFsZXZ5QHJlZGhhdC5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSAicXhsX2Rydi5oIgogI2luY2x1ZGUgInF4bF9vYmplY3QuaCIKIApAQCAtNTcsMTYgKzU3LDE2IEBAIHF4bF9kZWJ1Z2ZzX2J1ZmZlcnNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc3RydWN0IHF4bF9ibyAqYm87CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmcWRldi0+Z2VtLm9iamVjdHMsIGxpc3QpIHsKLQkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOworCQlzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCAqZm9iajsKIAkJaW50IHJlbDsKIAogCQlyY3VfcmVhZF9sb2NrKCk7Ci0JCWZvYmogPSByY3VfZGVyZWZlcmVuY2UoYm8tPnRiby5yZXN2LT5mZW5jZSk7CisJCWZvYmogPSByY3VfZGVyZWZlcmVuY2UoYm8tPnRiby5iYXNlLnJlc3YtPmZlbmNlKTsKIAkJcmVsID0gZm9iaiA/IGZvYmotPnNoYXJlZF9jb3VudCA6IDA7CiAJCXJjdV9yZWFkX3VubG9jaygpOwogCiAJCXNlcV9wcmludGYobSwgInNpemUgJWxkLCBwYyAlZCwgbnVtIHJlbGVhc2VzICVkXG4iLAotCQkJICAgKHVuc2lnbmVkIGxvbmcpYm8tPmdlbV9iYXNlLnNpemUsCisJCQkgICAodW5zaWduZWQgbG9uZyliby0+dGJvLmJhc2Uuc2l6ZSwKIAkJCSAgIGJvLT5waW5fY291bnQsIHJlbCk7CiAJfQogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZGlzcGxheS5jCmluZGV4IDhiMzE5ZWIuLjE2ZDczYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kaXNwbGF5LmMKQEAgLTI0LDExICsyNCwxNCBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jcmMzMi5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAicXhsX2Rydi5oIgogI2luY2x1ZGUgInF4bF9vYmplY3QuaCIKQEAgLTc5NCw3ICs3OTcsNyBAQCBzdGF0aWMgaW50IHF4bF9wbGFuZV9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkgICAgcWRldi0+ZHVtYl9zaGFkb3dfYm8tPnN1cmYuaGVpZ2h0ICE9IHN1cmYuaGVpZ2h0KSB7CiAJCQlpZiAocWRldi0+ZHVtYl9zaGFkb3dfYm8pIHsKIAkJCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQKLQkJCQkJKCZxZGV2LT5kdW1iX3NoYWRvd19iby0+Z2VtX2Jhc2UpOworCQkJCQkoJnFkZXYtPmR1bWJfc2hhZG93X2JvLT50Ym8uYmFzZSk7CiAJCQkJcWRldi0+ZHVtYl9zaGFkb3dfYm8gPSBOVUxMOwogCQkJfQogCQkJcXhsX2JvX2NyZWF0ZShxZGV2LCBzdXJmLmhlaWdodCAqIHN1cmYuc3RyaWRlLApAQCAtODA0LDEwICs4MDcsMTAgQEAgc3RhdGljIGludCBxeGxfcGxhbmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJaWYgKHVzZXJfYm8tPnNoYWRvdyAhPSBxZGV2LT5kdW1iX3NoYWRvd19ibykgewogCQkJaWYgKHVzZXJfYm8tPnNoYWRvdykgewogCQkJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZAotCQkJCQkoJnVzZXJfYm8tPnNoYWRvdy0+Z2VtX2Jhc2UpOworCQkJCQkoJnVzZXJfYm8tPnNoYWRvdy0+dGJvLmJhc2UpOwogCQkJCXVzZXJfYm8tPnNoYWRvdyA9IE5VTEw7CiAJCQl9Ci0JCQlkcm1fZ2VtX29iamVjdF9nZXQoJnFkZXYtPmR1bWJfc2hhZG93X2JvLT5nZW1fYmFzZSk7CisJCQlkcm1fZ2VtX29iamVjdF9nZXQoJnFkZXYtPmR1bWJfc2hhZG93X2JvLT50Ym8uYmFzZSk7CiAJCQl1c2VyX2JvLT5zaGFkb3cgPSBxZGV2LT5kdW1iX3NoYWRvd19ibzsKIAkJfQogCX0KQEAgLTgzOCw3ICs4NDEsNyBAQCBzdGF0aWMgdm9pZCBxeGxfcGxhbmVfY2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlxeGxfYm9fdW5waW4odXNlcl9ibyk7CiAKIAlpZiAob2xkX3N0YXRlLT5mYiAhPSBwbGFuZS0+c3RhdGUtPmZiICYmIHVzZXJfYm8tPnNoYWRvdykgewotCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJnVzZXJfYm8tPnNoYWRvdy0+Z2VtX2Jhc2UpOworCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJnVzZXJfYm8tPnNoYWRvdy0+dGJvLmJhc2UpOwogCQl1c2VyX2JvLT5zaGFkb3cgPSBOVUxMOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2RyYXcuYyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2RyYXcuYwppbmRleCA5N2MzZjFhLi41YmViZjFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcmF3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJhdy5jCkBAIC0yMCw2ICsyMCw4IEBACiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgogICovCiAKKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorCiAjaW5jbHVkZSAicXhsX2Rydi5oIgogI2luY2x1ZGUgInF4bF9vYmplY3QuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuYwppbmRleCA5NTIyMDFjLi4yNjViZmU5ZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5jCkBAIC0yOCwxNCArMjgsMTggQEAKICAqICAgIEFsb24gTGV2eSA8YWxldnlAcmVkaGF0LmNvbT4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgotCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAjaW5jbHVkZSAicXhsX2Rydi5oIgorI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKworI2luY2x1ZGUgPGRybS9kcm0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKwogI2luY2x1ZGUgInF4bF9vYmplY3QuaCIKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaWlkbGlzdFtdID0gewpAQCAtMjI0LDE2ICsyMjgsMTQgQEAgc3RhdGljIGludCBxeGxfcG1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIAogc3RhdGljIGludCBxeGxfcG1fdGhhdyhzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAogCXJldHVybiBxeGxfZHJtX3Jlc3VtZShkcm1fZGV2LCB0cnVlKTsKIH0KIAogc3RhdGljIGludCBxeGxfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCiAJcmV0dXJuIHF4bF9kcm1fZnJlZXplKGRybV9kZXYpOwogfQpAQCAtMjY1LDggKzI2Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBxeGxfcGNpX2RyaXZlciA9IHsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBxeGxfZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfUFJJTUUgfAotCQkJICAgRFJJVkVSX0FUT01JQywKKwkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQywKIAogCS5kdW1iX2NyZWF0ZSA9IHF4bF9tb2RlX2R1bWJfY3JlYXRlLAogCS5kdW1iX21hcF9vZmZzZXQgPSBxeGxfbW9kZV9kdW1iX21tYXAsCkBAIC0yNzUsOCArMjc2LDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHF4bF9kcml2ZXIgPSB7CiAjZW5kaWYKIAkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfZXhwb3J0ID0gZHJtX2dlbV9wcmltZV9leHBvcnQsCi0JLmdlbV9wcmltZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKIAkuZ2VtX3ByaW1lX3BpbiA9IHF4bF9nZW1fcHJpbWVfcGluLAogCS5nZW1fcHJpbWVfdW5waW4gPSBxeGxfZ2VtX3ByaW1lX3VucGluLAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gcXhsX2dlbV9wcmltZV9nZXRfc2dfdGFibGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCmluZGV4IDI4OTZiYjYuLjllMDM0YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCkBAIC0zMSwyMiArMzEsMjEgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+Ci0jaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vcXhsX2RybS5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgotLyoganVzdCBmb3IgdHRtX3ZhbGlkYXRlX2J1ZmZlciAqLwogI2luY2x1ZGUgPGRybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX21vZHVsZS5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgotI2luY2x1ZGUgPGRybS9xeGxfZHJtLmg+CiAKICNpbmNsdWRlICJxeGxfZGV2LmgiCiAKQEAgLTcyLDEyICs3MSwxMyBAQCBleHRlcm4gaW50IHF4bF9tYXhfaW9jdGxzOwogCVFYTF9JTlRFUlJVUFRfQ0xJRU5UX01PTklUT1JTX0NPTkZJRykKIAogc3RydWN0IHF4bF9ibyB7CisJc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0CXRibzsKKwogCS8qIFByb3RlY3RlZCBieSBnZW0ubXV0ZXggKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkCQlsaXN0OwogCS8qIFByb3RlY3RlZCBieSB0Ym8ucmVzZXJ2ZWQgKi8KIAlzdHJ1Y3QgdHRtX3BsYWNlCQlwbGFjZW1lbnRzWzNdOwogCXN0cnVjdCB0dG1fcGxhY2VtZW50CQlwbGFjZW1lbnQ7Ci0Jc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0CXRibzsKIAlzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqCQlrbWFwOwogCXVuc2lnbmVkIGludCBwaW5fY291bnQ7CiAJdm9pZAkJCQkqa3B0cjsKQEAgLTg1LDcgKzg1LDYgQEAgc3RydWN0IHF4bF9ibyB7CiAJaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOwogCiAJLyogQ29uc3RhbnQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gKi8KLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QJCWdlbV9iYXNlOwogCXVuc2lnbmVkIGludCBpc19wcmltYXJ5OjE7IC8qIGlzIHRoaXMgbm93IGEgcHJpbWFyeSBzdXJmYWNlICovCiAJdW5zaWduZWQgaW50IGlzX2R1bWI6MTsKIAlzdHJ1Y3QgcXhsX2JvICpzaGFkb3c7CkBAIC05NCw3ICs5Myw3IEBAIHN0cnVjdCBxeGxfYm8gewogCXVpbnQzMl90IHN1cmZhY2VfaWQ7CiAJc3RydWN0IHF4bF9yZWxlYXNlICpzdXJmX2NyZWF0ZTsKIH07Ci0jZGVmaW5lIGdlbV90b19xeGxfYm8oZ29iaikgY29udGFpbmVyX29mKChnb2JqKSwgc3RydWN0IHF4bF9ibywgZ2VtX2Jhc2UpCisjZGVmaW5lIGdlbV90b19xeGxfYm8oZ29iaikgY29udGFpbmVyX29mKChnb2JqKSwgc3RydWN0IHF4bF9ibywgdGJvLmJhc2UpCiAjZGVmaW5lIHRvX3F4bF9ibyh0b2JqKSBjb250YWluZXJfb2YoKHRvYmopLCBzdHJ1Y3QgcXhsX2JvLCB0Ym8pCiAKIHN0cnVjdCBxeGxfZ2VtIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZ2VtLmMKaW5kZXggODk2MDZjOC4uNjlmMzdkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZ2VtLmMKQEAgLTIzLDcgKzIzLDYgQEAKICAqICAgICAgICAgIEFsb24gTGV2eQogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm0uaD4KIAogI2luY2x1ZGUgInF4bF9kcnYuaCIKQEAgLTY0LDcgKzYzLDcgQEAgaW50IHF4bF9nZW1fb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiwgaW50IHNpemUsCiAJCQkJICBzaXplLCBpbml0aWFsX2RvbWFpbiwgYWxpZ25tZW50LCByKTsKIAkJcmV0dXJuIHI7CiAJfQotCSpvYmogPSAmcWJvLT5nZW1fYmFzZTsKKwkqb2JqID0gJnFiby0+dGJvLmJhc2U7CiAKIAltdXRleF9sb2NrKCZxZGV2LT5nZW0ubXV0ZXgpOwogCWxpc3RfYWRkX3RhaWwoJnFiby0+bGlzdCwgJnFkZXYtPmdlbS5vYmplY3RzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9pb2N0bC5jCmluZGV4IGQ0MTBlMjkuLjgxMTdhNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2lvY3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfaW9jdGwuYwpAQCAtMjMsNiArMjMsOSBAQAogICogICAgICAgICAgQWxvbiBMZXZ5CiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKwogI2luY2x1ZGUgInF4bF9kcnYuaCIKICNpbmNsdWRlICJxeGxfb2JqZWN0LmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfaXJxLmMKaW5kZXggM2JiMzFhZC4uODQzNWFmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfaXJxLmMKQEAgLTIzLDYgKzIzLDEwIEBACiAgKiAgICAgICAgICBBbG9uIExldnkKICAqLwogCisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgorCiAjaW5jbHVkZSAicXhsX2Rydi5oIgogCiBpcnFyZXR1cm5fdCBxeGxfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9rbXMuYwppbmRleCBiZWU2MWZhLi42MTFjYmU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9rbXMuYwpAQCAtMjMsMTIgKzIzLDE1IEBACiAgKiAgICAgICAgICBBbG9uIExldnkKICAqLwogCisjaW5jbHVkZSA8bGludXgvaW8tbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorCiAjaW5jbHVkZSAicXhsX2Rydi5oIgogI2luY2x1ZGUgInF4bF9vYmplY3QuaCIKIAotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8bGludXgvaW8tbWFwcGluZy5oPgotCiBpbnQgcXhsX2xvZ19sZXZlbDsKIAogc3RhdGljIGJvb2wgcXhsX2NoZWNrX2RldmljZShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMKaW5kZXggNDkyOGZhNi4uNTQ4ZGZlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMKQEAgLTMzLDE0ICszMywxNCBAQCBzdGF0aWMgdm9pZCBxeGxfdHRtX2JvX2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pCiAJc3RydWN0IHF4bF9kZXZpY2UgKnFkZXY7CiAKIAlibyA9IHRvX3F4bF9ibyh0Ym8pOwotCXFkZXYgPSAoc3RydWN0IHF4bF9kZXZpY2UgKiliby0+Z2VtX2Jhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKKwlxZGV2ID0gKHN0cnVjdCBxeGxfZGV2aWNlICopYm8tPnRiby5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CiAKIAlxeGxfc3VyZmFjZV9ldmljdChxZGV2LCBibywgZmFsc2UpOwogCVdBUk5fT05fT05DRShiby0+bWFwX2NvdW50ID4gMCk7CiAJbXV0ZXhfbG9jaygmcWRldi0+Z2VtLm11dGV4KTsKIAlsaXN0X2RlbF9pbml0KCZiby0+bGlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZxZGV2LT5nZW0ubXV0ZXgpOwotCWRybV9nZW1fb2JqZWN0X3JlbGVhc2UoJmJvLT5nZW1fYmFzZSk7CisJZHJtX2dlbV9vYmplY3RfcmVsZWFzZSgmYm8tPnRiby5iYXNlKTsKIAlrZnJlZShibyk7CiB9CiAKQEAgLTk1LDcgKzk1LDcgQEAgaW50IHF4bF9ib19jcmVhdGUoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYsCiAJaWYgKGJvID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCXNpemUgPSByb3VuZHVwKHNpemUsIFBBR0VfU0laRSk7Ci0JciA9IGRybV9nZW1fb2JqZWN0X2luaXQoJnFkZXYtPmRkZXYsICZiby0+Z2VtX2Jhc2UsIHNpemUpOworCXIgPSBkcm1fZ2VtX29iamVjdF9pbml0KCZxZGV2LT5kZGV2LCAmYm8tPnRiby5iYXNlLCBzaXplKTsKIAlpZiAodW5saWtlbHkocikpIHsKIAkJa2ZyZWUoYm8pOwogCQlyZXR1cm4gcjsKQEAgLTIxNCwyMCArMjE0LDIwIEBAIHZvaWQgcXhsX2JvX3VucmVmKHN0cnVjdCBxeGxfYm8gKipibykKIAlpZiAoKCpibykgPT0gTlVMTCkKIAkJcmV0dXJuOwogCi0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCYoKmJvKS0+Z2VtX2Jhc2UpOworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZCgmKCpibyktPnRiby5iYXNlKTsKIAkqYm8gPSBOVUxMOwogfQogCiBzdHJ1Y3QgcXhsX2JvICpxeGxfYm9fcmVmKHN0cnVjdCBxeGxfYm8gKmJvKQogewotCWRybV9nZW1fb2JqZWN0X2dldCgmYm8tPmdlbV9iYXNlKTsKKwlkcm1fZ2VtX29iamVjdF9nZXQoJmJvLT50Ym8uYmFzZSk7CiAJcmV0dXJuIGJvOwogfQogCiBzdGF0aWMgaW50IF9fcXhsX2JvX3BpbihzdHJ1Y3QgcXhsX2JvICpibykKIHsKIAlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2UgfTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGJvLT5nZW1fYmFzZS5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBiby0+dGJvLmJhc2UuZGV2OwogCWludCByOwogCiAJaWYgKGJvLT5waW5fY291bnQpIHsKQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGF0aWMgaW50IF9fcXhsX2JvX3BpbihzdHJ1Y3QgcXhsX2JvICpibykKIHN0YXRpYyBpbnQgX19xeGxfYm9fdW5waW4oc3RydWN0IHF4bF9ibyAqYm8pCiB7CiAJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBiby0+Z2VtX2Jhc2UuZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gYm8tPnRiby5iYXNlLmRldjsKIAlpbnQgciwgaTsKIAogCWlmICghYm8tPnBpbl9jb3VudCkgewpAQCAtMzEwLDEzICszMTAsMTMgQEAgdm9pZCBxeGxfYm9fZm9yY2VfZGVsZXRlKHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2KQogCWRldl9lcnIocWRldi0+ZGRldi5kZXYsICJVc2Vyc3BhY2Ugc3RpbGwgaGFzIGFjdGl2ZSBvYmplY3RzICFcbiIpOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShibywgbiwgJnFkZXYtPmdlbS5vYmplY3RzLCBsaXN0KSB7CiAJCWRldl9lcnIocWRldi0+ZGRldi5kZXYsICIlcCAlcCAlbHUgJWx1IGZvcmNlIGZyZWVcbiIsCi0JCQkmYm8tPmdlbV9iYXNlLCBibywgKHVuc2lnbmVkIGxvbmcpYm8tPmdlbV9iYXNlLnNpemUsCi0JCQkqKCh1bnNpZ25lZCBsb25nICopJmJvLT5nZW1fYmFzZS5yZWZjb3VudCkpOworCQkJJmJvLT50Ym8uYmFzZSwgYm8sICh1bnNpZ25lZCBsb25nKWJvLT50Ym8uYmFzZS5zaXplLAorCQkJKigodW5zaWduZWQgbG9uZyAqKSZiby0+dGJvLmJhc2UucmVmY291bnQpKTsKIAkJbXV0ZXhfbG9jaygmcWRldi0+Z2VtLm11dGV4KTsKIAkJbGlzdF9kZWxfaW5pdCgmYm8tPmxpc3QpOwogCQltdXRleF91bmxvY2soJnFkZXYtPmdlbS5tdXRleCk7CiAJCS8qIHRoaXMgc2hvdWxkIHVucmVmIHRoZSB0dG0gYm8gKi8KLQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZiby0+Z2VtX2Jhc2UpOworCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJmJvLT50Ym8uYmFzZSk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5oCmluZGV4IDI1NWI5MTQuLjhhZTU0YmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5oCkBAIC0zNCw3ICszNCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHF4bF9ib19yZXNlcnZlKHN0cnVjdCBxeGxfYm8gKmJvLCBib29sIG5vX3dhaXQpCiAJciA9IHR0bV9ib19yZXNlcnZlKCZiby0+dGJvLCB0cnVlLCBub193YWl0LCBOVUxMKTsKIAlpZiAodW5saWtlbHkociAhPSAwKSkgewogCQlpZiAociAhPSAtRVJFU1RBUlRTWVMpIHsKLQkJCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gYm8tPmdlbV9iYXNlLmRldjsKKwkJCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gYm8tPnRiby5iYXNlLmRldjsKIAogCQkJZGV2X2VycihkZGV2LT5kZXYsICIlcCByZXNlcnZlIGZhaWxlZFxuIiwgYm8pOwogCQl9CkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBxeGxfYm9fc2l6ZShzdHJ1Y3QgcXhsX2JvICpibykKIAogc3RhdGljIGlubGluZSB1NjQgcXhsX2JvX21tYXBfb2Zmc2V0KHN0cnVjdCBxeGxfYm8gKmJvKQogewotCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJvLT50Ym8udm1hX25vZGUpOworCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJvLT50Ym8uYmFzZS52bWFfbm9kZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHF4bF9ib193YWl0KHN0cnVjdCBxeGxfYm8gKmJvLCB1MzIgKm1lbV90eXBlLApAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgaW5saW5lIGludCBxeGxfYm9fd2FpdChzdHJ1Y3QgcXhsX2JvICpibywgdTMyICptZW1fdHlwZSwKIAlyID0gdHRtX2JvX3Jlc2VydmUoJmJvLT50Ym8sIHRydWUsIG5vX3dhaXQsIE5VTEwpOwogCWlmICh1bmxpa2VseShyICE9IDApKSB7CiAJCWlmIChyICE9IC1FUkVTVEFSVFNZUykgewotCQkJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBiby0+Z2VtX2Jhc2UuZGV2OworCQkJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBiby0+dGJvLmJhc2UuZGV2OwogCiAJCQlkZXZfZXJyKGRkZXYtPmRldiwgIiVwIHJlc2VydmUgZmFpbGVkIGZvciB3YWl0XG4iLAogCQkJCWJvKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYwppbmRleCA0OWY5YTkzLi4zMTIyMTZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jCkBAIC0xOSw5ICsxOSwxMyBAQAogICogSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCiAgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisKKyNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmg+CisKICNpbmNsdWRlICJxeGxfZHJ2LmgiCiAjaW5jbHVkZSAicXhsX29iamVjdC5oIgotI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9kbWFfZmVuY2UuaD4KIAogLyoKICAqIGRyYXdhYmxlIGNtZCBjYWNoZSAtIGFsbG9jYXRlIGEgYnVuY2ggb2YgVlJBTSBwYWdlcywgc3ViYWxsb2NhdGUKQEAgLTIzNCwxMiArMjM4LDEyIEBAIHN0YXRpYyBpbnQgcXhsX3JlbGVhc2VfdmFsaWRhdGVfYm8oc3RydWN0IHF4bF9ibyAqYm8pCiAJCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+dGJvLnJlc3YsIDEpOworCXJldCA9IGRtYV9yZXN2X3Jlc2VydmVfc2hhcmVkKGJvLT50Ym8uYmFzZS5yZXN2LCAxKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCiAJLyogYWxsb2NhdGUgYSBzdXJmYWNlIGZvciByZXNlcnZlZCArIHZhbGlkYXRlZCBidWZmZXJzICovCi0JcmV0ID0gcXhsX2JvX2NoZWNrX2lkKGJvLT5nZW1fYmFzZS5kZXYtPmRldl9wcml2YXRlLCBibyk7CisJcmV0ID0gcXhsX2JvX2NoZWNrX2lkKGJvLT50Ym8uYmFzZS5kZXYtPmRldl9wcml2YXRlLCBibyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAlyZXR1cm4gMDsKQEAgLTQ1NCw5ICs0NTgsOSBAQCB2b2lkIHF4bF9yZWxlYXNlX2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCBxeGxfcmVsZWFzZSAqcmVsZWFzZSkKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmcmVsZWFzZS0+Ym9zLCBoZWFkKSB7CiAJCWJvID0gZW50cnktPmJvOwogCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKGJvLT5yZXN2LCAmcmVsZWFzZS0+YmFzZSk7CisJCWRtYV9yZXN2X2FkZF9zaGFyZWRfZmVuY2UoYm8tPmJhc2UucmVzdiwgJnJlbGVhc2UtPmJhc2UpOwogCQl0dG1fYm9fYWRkX3RvX2xydShibyk7Ci0JCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCQlkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7CiAJfQogCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7CiAJd3dfYWNxdWlyZV9maW5pKCZyZWxlYXNlLT50aWNrZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYwppbmRleCAwMjM0Zjg1Li45YjI0NTE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYwpAQCAtMjMsMTkgKzIzLDIxIEBACiAgKiAgICAgICAgICBBbG9uIExldnkKICAqLwogCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKworI2luY2x1ZGUgPGRybS9kcm0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxkcm0vcXhsX2RybS5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BhZ2VfYWxsb2MuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9tb2R1bGUuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm0uaD4KLSNpbmNsdWRlIDxkcm0vcXhsX2RybS5oPgorI2luY2x1ZGUgPGRybS90dG0vdHRtX3BhZ2VfYWxsb2MuaD4KKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1lbnQuaD4KKwogI2luY2x1ZGUgInF4bF9kcnYuaCIKICNpbmNsdWRlICJxeGxfb2JqZWN0LmgiCiAKLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotCiBzdGF0aWMgc3RydWN0IHF4bF9kZXZpY2UgKnF4bF9nZXRfcWRldihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKIHsKIAlzdHJ1Y3QgcXhsX21tYW4gKm1tYW47CkBAIC0xNTMsNyArMTU1LDcgQEAgc3RhdGljIGludCBxeGxfdmVyaWZ5X2FjY2VzcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlzdHJ1Y3QgcXhsX2JvICpxYm8gPSB0b19xeGxfYm8oYm8pOwogCi0JcmV0dXJuIGRybV92bWFfbm9kZV92ZXJpZnlfYWNjZXNzKCZxYm8tPmdlbV9iYXNlLnZtYV9ub2RlLAorCXJldHVybiBkcm1fdm1hX25vZGVfdmVyaWZ5X2FjY2VzcygmcWJvLT50Ym8uYmFzZS52bWFfbm9kZSwKIAkJCQkJICBmaWxwLT5wcml2YXRlX2RhdGEpOwogfQogCkBAIC0yOTUsNyArMjk3LDcgQEAgc3RhdGljIHZvaWQgcXhsX2JvX21vdmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJaWYgKCFxeGxfdHRtX2JvX2lzX3F4bF9ibyhibykpCiAJCXJldHVybjsKIAlxYm8gPSB0b19xeGxfYm8oYm8pOwotCXFkZXYgPSBxYm8tPmdlbV9iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CisJcWRldiA9IHFiby0+dGJvLmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKIAogCWlmIChiby0+bWVtLm1lbV90eXBlID09IFRUTV9QTF9QUklWICYmIHFiby0+c3VyZmFjZV9pZCkKIAkJcXhsX3N1cmZhY2VfZXZpY3QocWRldiwgcWJvLCBuZXdfbWVtID8gdHJ1ZSA6IGZhbHNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfaW9jMzIuYyBiL2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfaW9jMzIuYwppbmRleCA2NTg5ZjllLi42YWM3MTc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2lvYzMyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9pb2MzMi5jCkBAIC0yOSwxMCArMjksMTEgQEAKICAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKICAqIElOIFRIRSBTT0ZUV0FSRS4KICAqLworCiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9yMTI4X2RybS5oPgorCiAjaW5jbHVkZSAicjEyOF9kcnYuaCIKIAogdHlwZWRlZiBzdHJ1Y3QgZHJtX3IxMjhfaW5pdDMyIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2lycS5jCmluZGV4IDk3MzBmNDkuLmQ4NGU5YzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9pcnEuYwpAQCAtMzAsOCArMzAsMTEgQEAKICAqICAgIEVyaWMgQW5ob2x0IDxhbmhvbHRARnJlZUJTRC5vcmc+CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KICNpbmNsdWRlIDxkcm0vcjEyOF9kcm0uaD4KKwogI2luY2x1ZGUgInIxMjhfZHJ2LmgiCiAKIHUzMiByMTI4X2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lrLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jCmluZGV4IDQwZjRkMjkuLjYyZWFiODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYwpAQCAtMzY1OSw3ICszNjU5LDcgQEAgYm9vbCBjaWtfc2VtYXBob3JlX3JpbmdfZW1pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIHN0cnVjdCByYWRlb25fZmVuY2UgKmNpa19jb3B5X2NwZG1hKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCSAgICB1aW50NjRfdCBzcmNfb2Zmc2V0LCB1aW50NjRfdCBkc3Rfb2Zmc2V0LAogCQkJCSAgICB1bnNpZ25lZCBudW1fZ3B1X3BhZ2VzLAotCQkJCSAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KQorCQkJCSAgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YpCiB7CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2U7CiAJc3RydWN0IHJhZGVvbl9zeW5jIHN5bmM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npa19zZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npa19zZG1hLmMKaW5kZXggNTg5MjE3YS4uMzViOWRjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWtfc2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lrX3NkbWEuYwpAQCAtNTc5LDcgKzU3OSw3IEBAIHZvaWQgY2lrX3NkbWFfZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIHN0cnVjdCByYWRlb25fZmVuY2UgKmNpa19jb3B5X2RtYShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgIHVpbnQ2NF90IHNyY19vZmZzZXQsIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJICB1bnNpZ25lZCBudW1fZ3B1X3BhZ2VzLAotCQkJCSAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdikKKwkJCQkgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdikKIHsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgcmFkZW9uX3N5bmMgc3luYzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5fZG1hLmMKaW5kZXggNTUwNWEwNC4uYTQ2ZWU2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5fZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5fZG1hLmMKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpldmVyZ3JlZW5fY29weV9kbWEoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkJCXVpbnQ2NF90IHNyY19vZmZzZXQsCiAJCQkJCXVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJCXVuc2lnbmVkIG51bV9ncHVfcGFnZXMsCi0JCQkJCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YpCisJCQkJCXN0cnVjdCBkbWFfcmVzdiAqcmVzdikKIHsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgcmFkZW9uX3N5bmMgc3luYzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKaW5kZXggNWMwNTE5My4uNzA4OWRmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKQEAgLTg5MSw3ICs4OTEsNyBAQCBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpyMTAwX2NvcHlfYmxpdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgICAgdWludDY0X3Qgc3JjX29mZnNldCwKIAkJCQkgICAgdWludDY0X3QgZHN0X29mZnNldCwKIAkJCQkgICAgdW5zaWduZWQgbnVtX2dwdV9wYWdlcywKLQkJCQkgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdikKKwkJCQkgICAgc3RydWN0IGRtYV9yZXN2ICpyZXN2KQogewogCXN0cnVjdCByYWRlb25fcmluZyAqcmluZyA9ICZyZGV2LT5yaW5nW1JBREVPTl9SSU5HX1RZUEVfR0ZYX0lOREVYXTsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjIwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMjAwLmMKaW5kZXggOWNlNmRkOC4uODQwNDAxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMjAwLmMKQEAgLTg0LDcgKzg0LDcgQEAgc3RydWN0IHJhZGVvbl9mZW5jZSAqcjIwMF9jb3B5X2RtYShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgICB1aW50NjRfdCBzcmNfb2Zmc2V0LAogCQkJCSAgIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJICAgdW5zaWduZWQgbnVtX2dwdV9wYWdlcywKLQkJCQkgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KQorCQkJCSAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdikKIHsKIAlzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcgPSAmcmRldi0+cmluZ1tSQURFT05fUklOR19UWVBFX0dGWF9JTkRFWF07CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCmluZGV4IDdkMTc1YTkuLmU5MzdjYzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCkBAIC0yOTYzLDcgKzI5NjMsNyBAQCBib29sIHI2MDBfc2VtYXBob3JlX3JpbmdfZW1pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIHN0cnVjdCByYWRlb25fZmVuY2UgKnI2MDBfY29weV9jcGRtYShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgICAgIHVpbnQ2NF90IHNyY19vZmZzZXQsIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJICAgICB1bnNpZ25lZCBudW1fZ3B1X3BhZ2VzLAotCQkJCSAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdikKKwkJCQkgICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdikKIHsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgcmFkZW9uX3N5bmMgc3luYzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9kbWEuYwppbmRleCAzNWQ5MmVmLi5hZjZjMGRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2RtYS5jCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCByNjAwX2RtYV9yaW5nX2liX2V4ZWN1dGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25faWIgKmliKQogc3RydWN0IHJhZGVvbl9mZW5jZSAqcjYwMF9jb3B5X2RtYShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgICB1aW50NjRfdCBzcmNfb2Zmc2V0LCB1aW50NjRfdCBkc3Rfb2Zmc2V0LAogCQkJCSAgIHVuc2lnbmVkIG51bV9ncHVfcGFnZXMsCi0JCQkJICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdikKKwkJCQkgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YpCiB7CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2U7CiAJc3RydWN0IHJhZGVvbl9zeW5jIHN5bmM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAppbmRleCAzMjgwOGU1Li5kNTliMDA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKQEAgLTUwNSw3ICs1MDUsNiBAQCBzdHJ1Y3QgcmFkZW9uX2JvIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQl2YTsKIAkvKiBDb25zdGFudCBhZnRlciBpbml0aWFsaXphdGlvbiAqLwogCXN0cnVjdCByYWRlb25fZGV2aWNlCQkqcmRldjsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QJCWdlbV9iYXNlOwogCiAJc3RydWN0IHR0bV9ib19rbWFwX29iagkJZG1hX2J1Zl92bWFwOwogCXBpZF90CQkJCXBpZDsKQEAgLTUxMyw3ICs1MTIsNyBAQCBzdHJ1Y3QgcmFkZW9uX2JvIHsKIAlzdHJ1Y3QgcmFkZW9uX21uCQkqbW47CiAJc3RydWN0IGxpc3RfaGVhZAkJbW5fbGlzdDsKIH07Ci0jZGVmaW5lIGdlbV90b19yYWRlb25fYm8oZ29iaikgY29udGFpbmVyX29mKChnb2JqKSwgc3RydWN0IHJhZGVvbl9ibywgZ2VtX2Jhc2UpCisjZGVmaW5lIGdlbV90b19yYWRlb25fYm8oZ29iaikgY29udGFpbmVyX29mKChnb2JqKSwgc3RydWN0IHJhZGVvbl9ibywgdGJvLmJhc2UpCiAKIGludCByYWRlb25fZ2VtX2RlYnVnZnNfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiAKQEAgLTYyMCw3ICs2MTksNyBAQCB2b2lkIHJhZGVvbl9zeW5jX2ZlbmNlKHN0cnVjdCByYWRlb25fc3luYyAqc3luYywKIAkJICAgICAgIHN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlKTsKIGludCByYWRlb25fc3luY19yZXN2KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkgICAgIHN0cnVjdCByYWRlb25fc3luYyAqc3luYywKLQkJICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAorCQkgICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKIAkJICAgICBib29sIHNoYXJlZCk7CiBpbnQgcmFkZW9uX3N5bmNfcmluZ3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCSAgICAgIHN0cnVjdCByYWRlb25fc3luYyAqc3luYywKQEAgLTE5MTMsMjAgKzE5MTIsMjAgQEAgc3RydWN0IHJhZGVvbl9hc2ljIHsKIAkJCQkJICAgICB1aW50NjRfdCBzcmNfb2Zmc2V0LAogCQkJCQkgICAgIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJCSAgICAgdW5zaWduZWQgbnVtX2dwdV9wYWdlcywKLQkJCQkJICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KTsKKwkJCQkJICAgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YpOwogCQl1MzIgYmxpdF9yaW5nX2luZGV4OwogCQlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICooKmRtYSkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkJCSAgICB1aW50NjRfdCBzcmNfb2Zmc2V0LAogCQkJCQkgICAgdWludDY0X3QgZHN0X29mZnNldCwKIAkJCQkJICAgIHVuc2lnbmVkIG51bV9ncHVfcGFnZXMsCi0JCQkJCSAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KTsKKwkJCQkJICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdik7CiAJCXUzMiBkbWFfcmluZ19pbmRleDsKIAkJLyogbWV0aG9kIHVzZWQgZm9yIGJvIGNvcHkgKi8KIAkJc3RydWN0IHJhZGVvbl9mZW5jZSAqKCpjb3B5KShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkJICAgICB1aW50NjRfdCBzcmNfb2Zmc2V0LAogCQkJCQkgICAgIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJCSAgICAgdW5zaWduZWQgbnVtX2dwdV9wYWdlcywKLQkJCQkJICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KTsKKwkJCQkJICAgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YpOwogCQkvKiByaW5nIHVzZWQgZm9yIGJvIGNvcGllcyAqLwogCQl1MzIgY29weV9yaW5nX2luZGV4OwogCX0gY29weTsKQEAgLTIzODcsNyArMjM4Niw2IEBAIHN0cnVjdCByYWRlb25fZGV2aWNlIHsKIAlzdHJ1Y3QgcmFkZW9uX3diCQl3YjsKIAlzdHJ1Y3QgcmFkZW9uX2R1bW15X3BhZ2UJZHVtbXlfcGFnZTsKIAlib29sCQkJCXNodXRkb3duOwotCWJvb2wJCQkJbmVlZF9kbWEzMjsKIAlib29sCQkJCW5lZWRfc3dpb3RsYjsKIAlib29sCQkJCWFjY2VsX3dvcmtpbmc7CiAJYm9vbAkJCQlmYXN0ZmJfd29ya2luZzsgLyogSUdQIGZlYXR1cmUqLwpAQCAtMjQ1MSw5ICsyNDQ5LDYgQEAgc3RydWN0IHJhZGVvbl9kZXZpY2UgewogCS8qIHRyYWNraW5nIHBpbm5lZCBtZW1vcnkgKi8KIAl1NjQgdnJhbV9waW5fc2l6ZTsKIAl1NjQgZ2FydF9waW5fc2l6ZTsKLQotCXN0cnVjdCBtdXRleAltbl9sb2NrOwotCURFQ0xBUkVfSEFTSFRBQkxFKG1uX2hhc2gsIDcpOwogfTsKIAogYm9vbCByYWRlb25faXNfcHgoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmgKaW5kZXggZTNmMDM2Yy4uYTc0ZmExOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaApAQCAtODYsNyArODYsNyBAQCBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpyMTAwX2NvcHlfYmxpdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgICAgdWludDY0X3Qgc3JjX29mZnNldCwKIAkJCQkgICAgdWludDY0X3QgZHN0X29mZnNldCwKIAkJCQkgICAgdW5zaWduZWQgbnVtX2dwdV9wYWdlcywKLQkJCQkgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdik7CisJCQkJICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdik7CiBpbnQgcjEwMF9zZXRfc3VyZmFjZV9yZWcoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCByZWcsCiAJCQkgdWludDMyX3QgdGlsaW5nX2ZsYWdzLCB1aW50MzJfdCBwaXRjaCwKIAkJCSB1aW50MzJfdCBvZmZzZXQsIHVpbnQzMl90IG9ial9zaXplKTsKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpyMjAwX2NvcHlfZG1hKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCSAgIHVpbnQ2NF90IHNyY19vZmZzZXQsCiAJCQkJICAgdWludDY0X3QgZHN0X29mZnNldCwKIAkJCQkgICB1bnNpZ25lZCBudW1fZ3B1X3BhZ2VzLAotCQkJCSAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YpOworCQkJCSAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdik7CiB2b2lkIHIyMDBfc2V0X3NhZmVfcmVnaXN0ZXJzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIAogLyoKQEAgLTM0NywxMSArMzQ3LDExIEBAIGludCByNjAwX2RtYV9yaW5nX3Rlc3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqY3ApOwogc3RydWN0IHJhZGVvbl9mZW5jZSAqcjYwMF9jb3B5X2NwZG1hKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCSAgICAgdWludDY0X3Qgc3JjX29mZnNldCwgdWludDY0X3QgZHN0X29mZnNldCwKIAkJCQkgICAgIHVuc2lnbmVkIG51bV9ncHVfcGFnZXMsCi0JCQkJICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KTsKKwkJCQkgICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdik7CiBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpyNjAwX2NvcHlfZG1hKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCSAgIHVpbnQ2NF90IHNyY19vZmZzZXQsIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJICAgdW5zaWduZWQgbnVtX2dwdV9wYWdlcywKLQkJCQkgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KTsKKwkJCQkgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YpOwogdm9pZCByNjAwX2hwZF9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIHZvaWQgcjYwMF9ocGRfZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiBib29sIHI2MDBfaHBkX3NlbnNlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBlbnVtIHJhZGVvbl9ocGRfaWQgaHBkKTsKQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIHI3MDBfY3BfZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpydjc3MF9jb3B5X2RtYShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgICAgdWludDY0X3Qgc3JjX29mZnNldCwgdWludDY0X3QgZHN0X29mZnNldCwKIAkJCQkgICAgdW5zaWduZWQgbnVtX2dwdV9wYWdlcywKLQkJCQkgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdik7CisJCQkJICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdik7CiB1MzIgcnY3NzBfZ2V0X3hjbGsoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogaW50IHJ2NzcwX3NldF91dmRfY2xvY2tzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCB1MzIgdmNsaywgdTMyIGRjbGspOwogaW50IHJ2NzcwX2dldF90ZW1wKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKQEAgLTU0Nyw3ICs1NDcsNyBAQCB2b2lkIGV2ZXJncmVlbl9kbWFfcmluZ19pYl9leGVjdXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogc3RydWN0IHJhZGVvbl9mZW5jZSAqZXZlcmdyZWVuX2NvcHlfZG1hKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCQl1aW50NjRfdCBzcmNfb2Zmc2V0LCB1aW50NjRfdCBkc3Rfb2Zmc2V0LAogCQkJCQl1bnNpZ25lZCBudW1fZ3B1X3BhZ2VzLAotCQkJCQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KTsKKwkJCQkJc3RydWN0IGRtYV9yZXN2ICpyZXN2KTsKIGludCBldmVyZ3JlZW5fZ2V0X3RlbXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogaW50IGV2ZXJncmVlbl9nZXRfYWxsb3dlZF9pbmZvX3JlZ2lzdGVyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCQl1MzIgcmVnLCB1MzIgKnZhbCk7CkBAIC03MjUsNyArNzI1LDcgQEAgaW50IHNpX2liX3BhcnNlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYik7CiBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpzaV9jb3B5X2RtYShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgdWludDY0X3Qgc3JjX29mZnNldCwgdWludDY0X3QgZHN0X29mZnNldCwKIAkJCQkgdW5zaWduZWQgbnVtX2dwdV9wYWdlcywKLQkJCQkgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdik7CisJCQkJIHN0cnVjdCBkbWFfcmVzdiAqcmVzdik7CiAKIHZvaWQgc2lfZG1hX3ZtX2NvcHlfcGFnZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkgIHN0cnVjdCByYWRlb25faWIgKmliLApAQCAtNzk2LDExICs3OTYsMTEgQEAgdm9pZCBjaWtfc2RtYV9yaW5nX2liX2V4ZWN1dGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25faWIgKmliKTsKIHN0cnVjdCByYWRlb25fZmVuY2UgKmNpa19jb3B5X2RtYShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgIHVpbnQ2NF90IHNyY19vZmZzZXQsIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJICB1bnNpZ25lZCBudW1fZ3B1X3BhZ2VzLAotCQkJCSAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdik7CisJCQkJICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YpOwogc3RydWN0IHJhZGVvbl9mZW5jZSAqY2lrX2NvcHlfY3BkbWEoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkJICAgIHVpbnQ2NF90IHNyY19vZmZzZXQsIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJICAgIHVuc2lnbmVkIG51bV9ncHVfcGFnZXMsCi0JCQkJICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YpOworCQkJCSAgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YpOwogaW50IGNpa19zZG1hX3JpbmdfdGVzdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nKTsKIGludCBjaWtfc2RtYV9pYl90ZXN0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpOwogYm9vbCBjaWtfc2RtYV9pc19sb2NrdXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9iZW5jaG1hcmsuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2JlbmNobWFyay5jCmluZGV4IDdjZTUwNjQuLmFjOWE1ZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2JlbmNobWFyay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2JlbmNobWFyay5jCkBAIC0zNSw3ICszNSw3IEBACiBzdGF0aWMgaW50IHJhZGVvbl9iZW5jaG1hcmtfZG9fbW92ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgdW5zaWduZWQgc2l6ZSwKIAkJCQkgICAgdWludDY0X3Qgc2FkZHIsIHVpbnQ2NF90IGRhZGRyLAogCQkJCSAgICBpbnQgZmxhZywgaW50IG4sCi0JCQkJICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YpCisJCQkJICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdikKIHsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0X2ppZmZpZXM7CiAJdW5zaWduZWQgbG9uZyBlbmRfamlmZmllczsKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fYmVuY2htYXJrX21vdmUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHVuc2lnbmVkIHNpemUsCiAJaWYgKHJkZXYtPmFzaWMtPmNvcHkuZG1hKSB7CiAJCXRpbWUgPSByYWRlb25fYmVuY2htYXJrX2RvX21vdmUocmRldiwgc2l6ZSwgc2FkZHIsIGRhZGRyLAogCQkJCQkJUkFERU9OX0JFTkNITUFSS19DT1BZX0RNQSwgbiwKLQkJCQkJCWRvYmotPnRiby5yZXN2KTsKKwkJCQkJCWRvYmotPnRiby5iYXNlLnJlc3YpOwogCQlpZiAodGltZSA8IDApCiAJCQlnb3RvIG91dF9jbGVhbnVwOwogCQlpZiAodGltZSA+IDApCkBAIC0xMzMsNyArMTMzLDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2JlbmNobWFya19tb3ZlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCB1bnNpZ25lZCBzaXplLAogCWlmIChyZGV2LT5hc2ljLT5jb3B5LmJsaXQpIHsKIAkJdGltZSA9IHJhZGVvbl9iZW5jaG1hcmtfZG9fbW92ZShyZGV2LCBzaXplLCBzYWRkciwgZGFkZHIsCiAJCQkJCQlSQURFT05fQkVOQ0hNQVJLX0NPUFlfQkxJVCwgbiwKLQkJCQkJCWRvYmotPnRiby5yZXN2KTsKKwkJCQkJCWRvYmotPnRiby5iYXNlLnJlc3YpOwogCQlpZiAodGltZSA8IDApCiAJCQlnb3RvIG91dF9jbGVhbnVwOwogCQlpZiAodGltZSA+IDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMKaW5kZXggYzYwZDFhNC4uYjY4NGNkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYwpAQCAtNzUyLDcgKzc1Miw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0CiAKIAkJcmFkZW9uX2VuY29kZXItPm91dHB1dF9jc2MgPSB2YWw7CiAKLQkJaWYgKGNvbm5lY3Rvci0+ZW5jb2Rlci0+Y3J0YykgeworCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyICYmIGNvbm5lY3Rvci0+ZW5jb2Rlci0+Y3J0YykgewogCQkJc3RydWN0IGRybV9jcnRjICpjcnRjICA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+Y3J0YzsKIAkJCXN0cnVjdCByYWRlb25fY3J0YyAqcmFkZW9uX2NydGMgPSB0b19yYWRlb25fY3J0YyhjcnRjKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMKaW5kZXggY2VmMGU2OS4uN2I1NDYwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jCkBAIC0yNTUsOSArMjU1LDkgQEAgc3RhdGljIGludCByYWRlb25fY3Nfc3luY19yaW5ncyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCkKIAlpbnQgcjsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkocmVsb2MsICZwLT52YWxpZGF0ZWQsIHR2LmhlYWQpIHsKLQkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdjsKKwkJc3RydWN0IGRtYV9yZXN2ICpyZXN2OwogCi0JCXJlc3YgPSByZWxvYy0+cm9iai0+dGJvLnJlc3Y7CisJCXJlc3YgPSByZWxvYy0+cm9iai0+dGJvLmJhc2UucmVzdjsKIAkJciA9IHJhZGVvbl9zeW5jX3Jlc3YocC0+cmRldiwgJnAtPmliLnN5bmMsIHJlc3YsCiAJCQkJICAgICByZWxvYy0+dHYubnVtX3NoYXJlZCk7CiAJCWlmIChyKQpAQCAtNDQzLDcgKzQ0Myw3IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9jc19wYXJzZXJfZmluaShzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcGFyc2VyLCBpbnQgZXJyb3IsIGJvCiAJCQlpZiAoYm8gPT0gTlVMTCkKIAkJCQljb250aW51ZTsKIAotCQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZiby0+Z2VtX2Jhc2UpOworCQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZiby0+dGJvLmJhc2UpOwogCQl9CiAJfQogCWtmcmVlKHBhcnNlci0+dHJhY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYwppbmRleCBkY2ViNTU0Li41ZDAxN2YwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYwpAQCAtMTMyNSw4ICsxMzI1LDYgQEAgaW50IHJhZGVvbl9kZXZpY2VfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAlpbml0X3J3c2VtKCZyZGV2LT5wbS5tY2xrX2xvY2spOwogCWluaXRfcndzZW0oJnJkZXYtPmV4Y2x1c2l2ZV9sb2NrKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZyZGV2LT5pcnEudmJsYW5rX3F1ZXVlKTsKLQltdXRleF9pbml0KCZyZGV2LT5tbl9sb2NrKTsKLQloYXNoX2luaXQocmRldi0+bW5faGFzaCk7CiAJciA9IHJhZGVvbl9nZW1faW5pdChyZGV2KTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CkBAIC0xMzY1LDM0ICsxMzYzLDI3IEBAIGludCByYWRlb25fZGV2aWNlX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJZWxzZQogCQlyZGV2LT5tYy5tY19tYXNrID0gMHhmZmZmZmZmZlVMTDsgLyogMzIgYml0IE1DICovCiAKLQkvKiBzZXQgRE1BIG1hc2sgKyBuZWVkX2RtYTMyIGZsYWdzLgorCS8qIHNldCBETUEgbWFzay4KIAkgKiBQQ0lFIC0gY2FuIGhhbmRsZSA0MC1iaXRzLgogCSAqIElHUCAtIGNhbiBoYW5kbGUgNDAtYml0cwogCSAqIEFHUCAtIGdlbmVyYWxseSBkbWEzMiBpcyBzYWZlc3QKIAkgKiBQQ0kgLSBkbWEzMiBmb3IgbGVnYWN5IHBjaSBnYXJ0LCA0MCBiaXRzIG9uIG5ld2VyIGFzaWNzCiAJICovCi0JcmRldi0+bmVlZF9kbWEzMiA9IGZhbHNlOworCWRtYV9iaXRzID0gNDA7CiAJaWYgKHJkZXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkKLQkJcmRldi0+bmVlZF9kbWEzMiA9IHRydWU7CisJCWRtYV9iaXRzID0gMzI7CiAJaWYgKChyZGV2LT5mbGFncyAmIFJBREVPTl9JU19QQ0kpICYmCiAJICAgIChyZGV2LT5mYW1pbHkgPD0gQ0hJUF9SUzc0MCkpCi0JCXJkZXYtPm5lZWRfZG1hMzIgPSB0cnVlOworCQlkbWFfYml0cyA9IDMyOwogI2lmZGVmIENPTkZJR19QUEM2NAogCWlmIChyZGV2LT5mYW1pbHkgPT0gQ0hJUF9DRURBUikKLQkJcmRldi0+bmVlZF9kbWEzMiA9IHRydWU7CisJCWRtYV9iaXRzID0gMzI7CiAjZW5kaWYKIAotCWRtYV9iaXRzID0gcmRldi0+bmVlZF9kbWEzMiA/IDMyIDogNDA7Ci0JciA9IHBjaV9zZXRfZG1hX21hc2socmRldi0+cGRldiwgRE1BX0JJVF9NQVNLKGRtYV9iaXRzKSk7CisJciA9IGRtYV9zZXRfbWFza19hbmRfY29oZXJlbnQoJnJkZXYtPnBkZXYtPmRldiwgRE1BX0JJVF9NQVNLKGRtYV9iaXRzKSk7CiAJaWYgKHIpIHsKLQkJcmRldi0+bmVlZF9kbWEzMiA9IHRydWU7Ci0JCWRtYV9iaXRzID0gMzI7CiAJCXByX3dhcm4oInJhZGVvbjogTm8gc3VpdGFibGUgRE1BIGF2YWlsYWJsZVxuIik7Ci0JfQotCXIgPSBwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2socmRldi0+cGRldiwgRE1BX0JJVF9NQVNLKGRtYV9iaXRzKSk7Ci0JaWYgKHIpIHsKLQkJcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKHJkZXYtPnBkZXYsIERNQV9CSVRfTUFTSygzMikpOwotCQlwcl93YXJuKCJyYWRlb246IE5vIGNvaGVyZW50IERNQSBhdmFpbGFibGVcbiIpOworCQlyZXR1cm4gcjsKIAl9CiAJcmRldi0+bmVlZF9zd2lvdGxiID0gZHJtX25lZWRfc3dpb3RsYihkbWFfYml0cyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwppbmRleCBiZDUyZjE1Li5lODFiMDFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCkBAIC0yNzUsNyArMjc1LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX3VucGluX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKIAl9IGVsc2UKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcmVzZXJ2ZSBidWZmZXIgYWZ0ZXIgZmxpcFxuIik7CiAKLQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJndvcmstPm9sZF9yYm8tPmdlbV9iYXNlKTsKKwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJndvcmstPm9sZF9yYm8tPnRiby5iYXNlKTsKIAlrZnJlZSh3b3JrKTsKIH0KIApAQCAtNTMzLDcgKzUzMyw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2NydGNfcGFnZV9mbGlwX3RhcmdldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHBpbiBuZXcgcmJvIGJ1ZmZlciBiZWZvcmUgZmxpcFxuIik7CiAJCWdvdG8gY2xlYW51cDsKIAl9Ci0Jd29yay0+ZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChuZXdfcmJvLT50Ym8ucmVzdikpOworCXdvcmstPmZlbmNlID0gZG1hX2ZlbmNlX2dldChkbWFfcmVzdl9nZXRfZXhjbChuZXdfcmJvLT50Ym8uYmFzZS5yZXN2KSk7CiAJcmFkZW9uX2JvX2dldF90aWxpbmdfZmxhZ3MobmV3X3JibywgJnRpbGluZ19mbGFncywgTlVMTCk7CiAJcmFkZW9uX2JvX3VucmVzZXJ2ZShuZXdfcmJvKTsKIApAQCAtNjA3LDcgKzYwNyw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2NydGNfcGFnZV9mbGlwX3RhcmdldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJcmFkZW9uX2JvX3VucmVzZXJ2ZShuZXdfcmJvKTsKIAogY2xlYW51cDoKLQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJndvcmstPm9sZF9yYm8tPmdlbV9iYXNlKTsKKwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJndvcmstPm9sZF9yYm8tPnRiby5iYXNlKTsKIAlkbWFfZmVuY2VfcHV0KHdvcmstPmZlbmNlKTsKIAlrZnJlZSh3b3JrKTsKIAlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMKaW5kZXggYTZjYmUxMS4uZDBiYzkxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvdmdhX3N3aXRjaGVyb28uaD4KKyNpbmNsdWRlIDxsaW51eC9tbXVfbm90aWZpZXIuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgpAQCAtMTMwLDggKzEzMSw3IEBAIGludCByYWRlb25fZ2VtX29iamVjdF9vcGVuKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIHZvaWQgcmFkZW9uX2dlbV9vYmplY3RfY2xvc2Uoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotc3RydWN0IGRtYV9idWYgKnJhZGVvbl9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaiwKK3N0cnVjdCBkbWFfYnVmICpyYWRlb25fZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmosCiAJCQkJCWludCBmbGFncyk7CiBleHRlcm4gaW50IHJhZGVvbl9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBjcnRjLAogCQkJCSAgICAgIHVuc2lnbmVkIGludCBmbGFncywgaW50ICp2cG9zLCBpbnQgKmhwb3MsCkBAIC0xNTMsNyArMTUzLDYgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpyYWRlb25fZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkJCXN0cnVjdCBzZ190YWJsZSAqc2cpOwogaW50IHJhZGVvbl9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIHZvaWQgcmFkZW9uX2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Ci1zdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyYWRlb25fZ2VtX3ByaW1lX3Jlc19vYmooc3RydWN0IGRybV9nZW1fb2JqZWN0ICopOwogdm9pZCAqcmFkZW9uX2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIHZvaWQgcmFkZW9uX2dlbV9wcmltZV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKIApAQCAtMzI1LDggKzMyNCwzOSBAQCBib29sIHJhZGVvbl9kZXZpY2VfaXNfdmlydHVhbCh2b2lkKTsKIHN0YXRpYyBpbnQgcmFkZW9uX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJCSAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogeworCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSAwOwogCWludCByZXQ7CiAKKwlpZiAoIWVudCkKKwkJcmV0dXJuIC1FTk9ERVY7IC8qIEF2b2lkIE5VTEwtcHRyIGRlcmVmIGluIGRybV9nZXRfcGNpX2RldiAqLworCisJZmxhZ3MgPSBlbnQtPmRyaXZlcl9kYXRhOworCisJaWYgKCFyYWRlb25fc2lfc3VwcG9ydCkgeworCQlzd2l0Y2ggKGZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSB7CisJCWNhc2UgQ0hJUF9UQUhJVEk6CisJCWNhc2UgQ0hJUF9QSVRDQUlSTjoKKwkJY2FzZSBDSElQX1ZFUkRFOgorCQljYXNlIENISVBfT0xBTkQ6CisJCWNhc2UgQ0hJUF9IQUlOQU46CisJCQlkZXZfaW5mbygmcGRldi0+ZGV2LAorCQkJCSAiU0kgc3VwcG9ydCBkaXNhYmxlZCBieSBtb2R1bGUgcGFyYW1cbiIpOworCQkJcmV0dXJuIC1FTk9ERVY7CisJCX0KKwl9CisJaWYgKCFyYWRlb25fY2lrX3N1cHBvcnQpIHsKKwkJc3dpdGNoIChmbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgeworCQljYXNlIENISVBfS0FWRVJJOgorCQljYXNlIENISVBfQk9OQUlSRToKKwkJY2FzZSBDSElQX0hBV0FJSToKKwkJY2FzZSBDSElQX0tBQklOSToKKwkJY2FzZSBDSElQX01VTExJTlM6CisJCQlkZXZfaW5mbygmcGRldi0+ZGV2LAorCQkJCSAiQ0lLIHN1cHBvcnQgZGlzYWJsZWQgYnkgbW9kdWxlIHBhcmFtXG4iKTsKKwkJCXJldHVybiAtRU5PREVWOworCQl9CisJfQorCiAJaWYgKHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9wcm9iZV9kZWZlcihwZGV2KSkKIAkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CiAKQEAgLTM0OSwyNCArMzc5LDMwIEBAIHJhZGVvbl9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogc3RhdGljIHZvaWQKIHJhZGVvbl9wY2lfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CisJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisKIAkvKiBpZiB3ZSBhcmUgcnVubmluZyBpbiBhIFZNLCBtYWtlIHN1cmUgdGhlIGRldmljZQogCSAqIHRvcm4gZG93biBwcm9wZXJseSBvbiByZWJvb3Qvc2h1dGRvd24KIAkgKi8KIAlpZiAocmFkZW9uX2RldmljZV9pc192aXJ0dWFsKCkpCiAJCXJhZGVvbl9wY2lfcmVtb3ZlKHBkZXYpOworCisJLyogU29tZSBhZGFwdGVycyBuZWVkIHRvIGJlIHN1c3BlbmRlZCBiZWZvcmUgYQorCSogc2h1dGRvd24gb2NjdXJzIGluIG9yZGVyIHRvIHByZXZlbnQgYW4gZXJyb3IKKwkqIGR1cmluZyBrZXhlYy4KKwkqLworCXJhZGVvbl9zdXNwZW5kX2ttcyhkZGV2LCB0cnVlLCB0cnVlLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBpbnQgcmFkZW9uX3Btb3BzX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJcmV0dXJuIHJhZGVvbl9zdXNwZW5kX2ttcyhkcm1fZGV2LCB0cnVlLCB0cnVlLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBpbnQgcmFkZW9uX3Btb3BzX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAogCS8qIEdQVSBjb21lcyB1cCBlbmFibGVkIGJ5IHRoZSBiaW9zIG9uIHJlc3VtZSAqLwogCWlmIChyYWRlb25faXNfcHgoZHJtX2RldikpIHsKQEAgLTM4MCwxNSArNDE2LDEzIEBAIHN0YXRpYyBpbnQgcmFkZW9uX3Btb3BzX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAKIHN0YXRpYyBpbnQgcmFkZW9uX3Btb3BzX2ZyZWV6ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlyZXR1cm4gcmFkZW9uX3N1c3BlbmRfa21zKGRybV9kZXYsIGZhbHNlLCB0cnVlLCB0cnVlKTsKIH0KIAogc3RhdGljIGludCByYWRlb25fcG1vcHNfdGhhdyhzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlyZXR1cm4gcmFkZW9uX3Jlc3VtZV9rbXMoZHJtX2RldiwgZmFsc2UsIHRydWUpOwogfQogCkBAIC00NDcsOCArNDgxLDcgQEAgc3RhdGljIGludCByYWRlb25fcG1vcHNfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogCiBzdGF0aWMgaW50IHJhZGVvbl9wbW9wc19ydW50aW1lX2lkbGUoc3RydWN0IGRldmljZSAqZGV2KQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCiAJaWYgKCFyYWRlb25faXNfcHgoZHJtX2RldikpIHsKQEAgLTUzOSw3ICs1NzIsNyBAQCByYWRlb25fZ2V0X2NydGNfc2Nhbm91dF9wb3NpdGlvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGttc19kcml2ZXIgPSB7CiAJLmRyaXZlcl9mZWF0dXJlcyA9Ci0JICAgIERSSVZFUl9VU0VfQUdQIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSB8IERSSVZFUl9SRU5ERVIsCisJICAgIERSSVZFUl9VU0VfQUdQIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9SRU5ERVIsCiAJLmxvYWQgPSByYWRlb25fZHJpdmVyX2xvYWRfa21zLAogCS5vcGVuID0gcmFkZW9uX2RyaXZlcl9vcGVuX2ttcywKIAkucG9zdGNsb3NlID0gcmFkZW9uX2RyaXZlcl9wb3N0Y2xvc2Vfa21zLApAQCAtNTY1LDEwICs1OTgsOCBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIga21zX2RyaXZlciA9IHsKIAkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAogCS5nZW1fcHJpbWVfZXhwb3J0ID0gcmFkZW9uX2dlbV9wcmltZV9leHBvcnQsCi0JLmdlbV9wcmltZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKIAkuZ2VtX3ByaW1lX3BpbiA9IHJhZGVvbl9nZW1fcHJpbWVfcGluLAogCS5nZW1fcHJpbWVfdW5waW4gPSByYWRlb25fZ2VtX3ByaW1lX3VucGluLAotCS5nZW1fcHJpbWVfcmVzX29iaiA9IHJhZGVvbl9nZW1fcHJpbWVfcmVzX29iaiwKIAkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZSA9IHJhZGVvbl9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gcmFkZW9uX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV92bWFwID0gcmFkZW9uX2dlbV9wcmltZV92bWFwLApAQCAtNjI0LDYgKzY1NSw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCByYWRlb25fZXhpdCh2b2lkKQogewogCXBjaV91bnJlZ2lzdGVyX2RyaXZlcihwZHJpdmVyKTsKIAlyYWRlb25fdW5yZWdpc3Rlcl9hdHB4X2hhbmRsZXIoKTsKKwltbXVfbm90aWZpZXJfc3luY2hyb25pemUoKTsKIH0KIAogbW9kdWxlX2luaXQocmFkZW9uX2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYwppbmRleCBkOGJjNWQyLi5iMmIwNzY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYwpAQCAtODMsNyArODMsNyBAQCBpbnQgcmFkZW9uX2dlbV9vYmplY3RfY3JlYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCB1bnNpZ25lZCBsb25nIHNpemUsCiAJCX0KIAkJcmV0dXJuIHI7CiAJfQotCSpvYmogPSAmcm9iai0+Z2VtX2Jhc2U7CisJKm9iaiA9ICZyb2JqLT50Ym8uYmFzZTsKIAlyb2JqLT5waWQgPSB0YXNrX3BpZF9ucihjdXJyZW50KTsKIAogCW11dGV4X2xvY2soJnJkZXYtPmdlbS5tdXRleCk7CkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIGludCByYWRlb25fZ2VtX3NldF9kb21haW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqLAogCX0KIAlpZiAoZG9tYWluID09IFJBREVPTl9HRU1fRE9NQUlOX0NQVSkgewogCQkvKiBBc2tpbmcgZm9yIGNwdSBhY2Nlc3Mgd2FpdCBmb3Igb2JqZWN0IGlkbGUgKi8KLQkJciA9IHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KHJvYmotPnRiby5yZXN2LCB0cnVlLCB0cnVlLCAzMCAqIEhaKTsKKwkJciA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3Uocm9iai0+dGJvLmJhc2UucmVzdiwgdHJ1ZSwgdHJ1ZSwgMzAgKiBIWik7CiAJCWlmICghcikKIAkJCXIgPSAtRUJVU1k7CiAKQEAgLTI5Niw2ICsyOTYsOCBAQCBpbnQgcmFkZW9uX2dlbV91c2VycHRyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJdWludDMyX3QgaGFuZGxlOwogCWludCByOwogCisJYXJncy0+YWRkciA9IHVudGFnZ2VkX2FkZHIoYXJncy0+YWRkcik7CisKIAlpZiAob2Zmc2V0X2luX3BhZ2UoYXJncy0+YWRkciB8IGFyZ3MtPnNpemUpKQogCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtNDQ5LDcgKzQ1MSw3IEBAIGludCByYWRlb25fZ2VtX2J1c3lfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAl9CiAJcm9iaiA9IGdlbV90b19yYWRlb25fYm8oZ29iaik7CiAKLQlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KHJvYmotPnRiby5yZXN2LCB0cnVlKTsKKwlyID0gZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9yY3Uocm9iai0+dGJvLmJhc2UucmVzdiwgdHJ1ZSk7CiAJaWYgKHIgPT0gMCkKIAkJciA9IC1FQlVTWTsKIAllbHNlCkBAIC00NzgsNyArNDgwLDcgQEAgaW50IHJhZGVvbl9nZW1fd2FpdF9pZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJfQogCXJvYmogPSBnZW1fdG9fcmFkZW9uX2JvKGdvYmopOwogCi0JcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3Uocm9iai0+dGJvLnJlc3YsIHRydWUsIHRydWUsIDMwICogSFopOworCXJldCA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3Uocm9iai0+dGJvLmJhc2UucmVzdiwgdHJ1ZSwgdHJ1ZSwgMzAgKiBIWik7CiAJaWYgKHJldCA9PSAwKQogCQlyID0gLUVCVVNZOwogCWVsc2UgaWYgKHJldCA8IDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jCmluZGV4IDA3ZjdhY2UuLmU4NWM1NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jCkBAIC0xMDAsMzEgKzEwMCw2IEBAIGludCByYWRlb25fZHJpdmVyX2xvYWRfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXY7CiAJaW50IHIsIGFjcGlfc3RhdHVzOwogCi0JaWYgKCFyYWRlb25fc2lfc3VwcG9ydCkgewotCQlzd2l0Y2ggKGZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSB7Ci0JCWNhc2UgQ0hJUF9UQUhJVEk6Ci0JCWNhc2UgQ0hJUF9QSVRDQUlSTjoKLQkJY2FzZSBDSElQX1ZFUkRFOgotCQljYXNlIENISVBfT0xBTkQ6Ci0JCWNhc2UgQ0hJUF9IQUlOQU46Ci0JCQlkZXZfaW5mbyhkZXYtPmRldiwKLQkJCQkgIlNJIHN1cHBvcnQgZGlzYWJsZWQgYnkgbW9kdWxlIHBhcmFtXG4iKTsKLQkJCXJldHVybiAtRU5PREVWOwotCQl9Ci0JfQotCWlmICghcmFkZW9uX2Npa19zdXBwb3J0KSB7Ci0JCXN3aXRjaCAoZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIHsKLQkJY2FzZSBDSElQX0tBVkVSSToKLQkJY2FzZSBDSElQX0JPTkFJUkU6Ci0JCWNhc2UgQ0hJUF9IQVdBSUk6Ci0JCWNhc2UgQ0hJUF9LQUJJTkk6Ci0JCWNhc2UgQ0hJUF9NVUxMSU5TOgotCQkJZGV2X2luZm8oZGV2LT5kZXYsCi0JCQkJICJDSUsgc3VwcG9ydCBkaXNhYmxlZCBieSBtb2R1bGUgcGFyYW1cbiIpOwotCQkJcmV0dXJuIC1FTk9ERVY7Ci0JCX0KLQl9Ci0KIAlyZGV2ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHJhZGVvbl9kZXZpY2UpLCBHRlBfS0VSTkVMKTsKIAlpZiAocmRldiA9PSBOVUxMKSB7CiAJCXJldHVybiAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21uLmMKaW5kZXggOGMzODcxZS4uZGJhYjlhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tbi5jCkBAIC0zNywxNyArMzcsOCBAQAogI2luY2x1ZGUgInJhZGVvbi5oIgogCiBzdHJ1Y3QgcmFkZW9uX21uIHsKLQkvKiBjb25zdGFudCBhZnRlciBpbml0aWFsaXNhdGlvbiAqLwotCXN0cnVjdCByYWRlb25fZGV2aWNlCSpyZGV2OwotCXN0cnVjdCBtbV9zdHJ1Y3QJKm1tOwogCXN0cnVjdCBtbXVfbm90aWZpZXIJbW47CiAKLQkvKiBvbmx5IHVzZWQgb24gZGVzdHJ1Y3Rpb24gKi8KLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QJd29yazsKLQotCS8qIHByb3RlY3RlZCBieSByZGV2LT5tbl9sb2NrICovCi0Jc3RydWN0IGhsaXN0X25vZGUJbm9kZTsKLQogCS8qIG9iamVjdHMgcHJvdGVjdGVkIGJ5IGxvY2sgKi8KIAlzdHJ1Y3QgbXV0ZXgJCWxvY2s7CiAJc3RydWN0IHJiX3Jvb3RfY2FjaGVkCW9iamVjdHM7CkBAIC01OSw1NSArNTAsNiBAQCBzdHJ1Y3QgcmFkZW9uX21uX25vZGUgewogfTsKIAogLyoqCi0gKiByYWRlb25fbW5fZGVzdHJveSAtIGRlc3Ryb3kgdGhlIHJtbgotICoKLSAqIEB3b3JrOiBwcmV2aW91c2x5IHNoZWR1bGVkIHdvcmsgaXRlbQotICoKLSAqIExhenkgZGVzdHJveXMgdGhlIG5vdGlmaWVyIGZyb20gYSB3b3JrIGl0ZW0KLSAqLwotc3RhdGljIHZvaWQgcmFkZW9uX21uX2Rlc3Ryb3koc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQotewotCXN0cnVjdCByYWRlb25fbW4gKnJtbiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcmFkZW9uX21uLCB3b3JrKTsKLQlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IHJtbi0+cmRldjsKLQlzdHJ1Y3QgcmFkZW9uX21uX25vZGUgKm5vZGUsICpuZXh0X25vZGU7Ci0Jc3RydWN0IHJhZGVvbl9ibyAqYm8sICpuZXh0X2JvOwotCi0JbXV0ZXhfbG9jaygmcmRldi0+bW5fbG9jayk7Ci0JbXV0ZXhfbG9jaygmcm1uLT5sb2NrKTsKLQloYXNoX2RlbCgmcm1uLT5ub2RlKTsKLQlyYnRyZWVfcG9zdG9yZGVyX2Zvcl9lYWNoX2VudHJ5X3NhZmUobm9kZSwgbmV4dF9ub2RlLAotCQkJCQkgICAgICZybW4tPm9iamVjdHMucmJfcm9vdCwgaXQucmIpIHsKLQotCQlpbnRlcnZhbF90cmVlX3JlbW92ZSgmbm9kZS0+aXQsICZybW4tPm9iamVjdHMpOwotCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYm8sIG5leHRfYm8sICZub2RlLT5ib3MsIG1uX2xpc3QpIHsKLQkJCWJvLT5tbiA9IE5VTEw7Ci0JCQlsaXN0X2RlbF9pbml0KCZiby0+bW5fbGlzdCk7Ci0JCX0KLQkJa2ZyZWUobm9kZSk7Ci0JfQotCW11dGV4X3VubG9jaygmcm1uLT5sb2NrKTsKLQltdXRleF91bmxvY2soJnJkZXYtPm1uX2xvY2spOwotCW1tdV9ub3RpZmllcl91bnJlZ2lzdGVyKCZybW4tPm1uLCBybW4tPm1tKTsKLQlrZnJlZShybW4pOwotfQotCi0vKioKLSAqIHJhZGVvbl9tbl9yZWxlYXNlIC0gY2FsbGJhY2sgdG8gbm90aWZ5IGFib3V0IG1tIGRlc3RydWN0aW9uCi0gKgotICogQG1uOiBvdXIgbm90aWZpZXIKLSAqIEBtbjogdGhlIG1tIHRoaXMgY2FsbGJhY2sgaXMgYWJvdXQKLSAqCi0gKiBTaGVkdWxlIGEgd29yayBpdGVtIHRvIGxhenkgZGVzdHJveSBvdXIgbm90aWZpZXIuCi0gKi8KLXN0YXRpYyB2b2lkIHJhZGVvbl9tbl9yZWxlYXNlKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAotCQkJICAgICAgc3RydWN0IG1tX3N0cnVjdCAqbW0pCi17Ci0Jc3RydWN0IHJhZGVvbl9tbiAqcm1uID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgcmFkZW9uX21uLCBtbik7Ci0JSU5JVF9XT1JLKCZybW4tPndvcmssIHJhZGVvbl9tbl9kZXN0cm95KTsKLQlzY2hlZHVsZV93b3JrKCZybW4tPndvcmspOwotfQotCi0vKioKICAqIHJhZGVvbl9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0IC0gY2FsbGJhY2sgdG8gbm90aWZ5IGFib3V0IG1tIGNoYW5nZQogICoKICAqIEBtbjogb3VyIG5vdGlmaWVyCkBAIC0xNjMsNyArMTA1LDcgQEAgc3RhdGljIGludCByYWRlb25fbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAkJCQljb250aW51ZTsKIAkJCX0KIAotCQkJciA9IHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KGJvLT50Ym8ucmVzdiwKKwkJCXIgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KGJvLT50Ym8uYmFzZS5yZXN2LAogCQkJCXRydWUsIGZhbHNlLCBNQVhfU0NIRURVTEVfVElNRU9VVCk7CiAJCQlpZiAociA8PSAwKQogCQkJCURSTV9FUlJPUigiKCVsZCkgZmFpbGVkIHRvIHdhaXQgZm9yIHVzZXIgYm9cbiIsIHIpOwpAQCAtMTgzLDY2ICsxMjUsNDUgQEAgc3RhdGljIGludCByYWRlb25fbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgdm9pZCByYWRlb25fbW5fcmVsZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCit7CisJc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSByYW5nZSA9IHsKKwkJLm1tID0gbW0sCisJCS5zdGFydCA9IDAsCisJCS5lbmQgPSBVTE9OR19NQVgsCisJCS5mbGFncyA9IDAsCisJCS5ldmVudCA9IE1NVV9OT1RJRllfVU5NQVAsCisJfTsKKworCXJhZGVvbl9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KG1uLCAmcmFuZ2UpOworfQorCitzdGF0aWMgc3RydWN0IG1tdV9ub3RpZmllciAqcmFkZW9uX21uX2FsbG9jX25vdGlmaWVyKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoreworCXN0cnVjdCByYWRlb25fbW4gKnJtbjsKKworCXJtbiA9IGt6YWxsb2Moc2l6ZW9mKCpybW4pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJtbikKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwltdXRleF9pbml0KCZybW4tPmxvY2spOworCXJtbi0+b2JqZWN0cyA9IFJCX1JPT1RfQ0FDSEVEOworCXJldHVybiAmcm1uLT5tbjsKK30KKworc3RhdGljIHZvaWQgcmFkZW9uX21uX2ZyZWVfbm90aWZpZXIoc3RydWN0IG1tdV9ub3RpZmllciAqbW4pCit7CisJa2ZyZWUoY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgcmFkZW9uX21uLCBtbikpOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9vcHMgcmFkZW9uX21uX29wcyA9IHsKIAkucmVsZWFzZSA9IHJhZGVvbl9tbl9yZWxlYXNlLAogCS5pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0ID0gcmFkZW9uX21uX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQsCisJLmFsbG9jX25vdGlmaWVyID0gcmFkZW9uX21uX2FsbG9jX25vdGlmaWVyLAorCS5mcmVlX25vdGlmaWVyID0gcmFkZW9uX21uX2ZyZWVfbm90aWZpZXIsCiB9OwogCiAvKioKLSAqIHJhZGVvbl9tbl9nZXQgLSBjcmVhdGUgbm90aWZpZXIgY29udGV4dAotICoKLSAqIEByZGV2OiByYWRlb24gZGV2aWNlIHBvaW50ZXIKLSAqCi0gKiBDcmVhdGVzIGEgbm90aWZpZXIgY29udGV4dCBmb3IgY3VycmVudC0+bW0uCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgcmFkZW9uX21uICpyYWRlb25fbW5fZ2V0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQotewotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gY3VycmVudC0+bW07Ci0Jc3RydWN0IHJhZGVvbl9tbiAqcm1uOwotCWludCByOwotCi0JaWYgKGRvd25fd3JpdGVfa2lsbGFibGUoJm1tLT5tbWFwX3NlbSkpCi0JCXJldHVybiBFUlJfUFRSKC1FSU5UUik7Ci0KLQltdXRleF9sb2NrKCZyZGV2LT5tbl9sb2NrKTsKLQotCWhhc2hfZm9yX2VhY2hfcG9zc2libGUocmRldi0+bW5faGFzaCwgcm1uLCBub2RlLCAodW5zaWduZWQgbG9uZyltbSkKLQkJaWYgKHJtbi0+bW0gPT0gbW0pCi0JCQlnb3RvIHJlbGVhc2VfbG9ja3M7Ci0KLQlybW4gPSBremFsbG9jKHNpemVvZigqcm1uKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFybW4pIHsKLQkJcm1uID0gRVJSX1BUUigtRU5PTUVNKTsKLQkJZ290byByZWxlYXNlX2xvY2tzOwotCX0KLQotCXJtbi0+cmRldiA9IHJkZXY7Ci0Jcm1uLT5tbSA9IG1tOwotCXJtbi0+bW4ub3BzID0gJnJhZGVvbl9tbl9vcHM7Ci0JbXV0ZXhfaW5pdCgmcm1uLT5sb2NrKTsKLQlybW4tPm9iamVjdHMgPSBSQl9ST09UX0NBQ0hFRDsKLQkKLQlyID0gX19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoJnJtbi0+bW4sIG1tKTsKLQlpZiAocikKLQkJZ290byBmcmVlX3JtbjsKLQotCWhhc2hfYWRkKHJkZXYtPm1uX2hhc2gsICZybW4tPm5vZGUsICh1bnNpZ25lZCBsb25nKW1tKTsKLQotcmVsZWFzZV9sb2NrczoKLQltdXRleF91bmxvY2soJnJkZXYtPm1uX2xvY2spOwotCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOwotCi0JcmV0dXJuIHJtbjsKLQotZnJlZV9ybW46Ci0JbXV0ZXhfdW5sb2NrKCZyZGV2LT5tbl9sb2NrKTsKLQl1cF93cml0ZSgmbW0tPm1tYXBfc2VtKTsKLQlrZnJlZShybW4pOwotCi0JcmV0dXJuIEVSUl9QVFIocik7Ci19Ci0KLS8qKgogICogcmFkZW9uX21uX3JlZ2lzdGVyIC0gcmVnaXN0ZXIgYSBCTyBmb3Igbm90aWZpZXIgdXBkYXRlcwogICoKICAqIEBibzogcmFkZW9uIGJ1ZmZlciBvYmplY3QKQEAgLTI1NCwxNSArMTc1LDE2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX21uICpyYWRlb25fbW5fZ2V0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogaW50IHJhZGVvbl9tbl9yZWdpc3RlcihzdHJ1Y3QgcmFkZW9uX2JvICpibywgdW5zaWduZWQgbG9uZyBhZGRyKQogewogCXVuc2lnbmVkIGxvbmcgZW5kID0gYWRkciArIHJhZGVvbl9ib19zaXplKGJvKSAtIDE7Ci0Jc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBiby0+cmRldjsKKwlzdHJ1Y3QgbW11X25vdGlmaWVyICptbjsKIAlzdHJ1Y3QgcmFkZW9uX21uICpybW47CiAJc3RydWN0IHJhZGVvbl9tbl9ub2RlICpub2RlID0gTlVMTDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGJvczsKIAlzdHJ1Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICppdDsKIAotCXJtbiA9IHJhZGVvbl9tbl9nZXQocmRldik7Ci0JaWYgKElTX0VSUihybW4pKQotCQlyZXR1cm4gUFRSX0VSUihybW4pOworCW1uID0gbW11X25vdGlmaWVyX2dldCgmcmFkZW9uX21uX29wcywgY3VycmVudC0+bW0pOworCWlmIChJU19FUlIobW4pKQorCQlyZXR1cm4gUFRSX0VSUihtbik7CisJcm1uID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgcmFkZW9uX21uLCBtbik7CiAKIAlJTklUX0xJU1RfSEVBRCgmYm9zKTsKIApAQCAtMzA5LDIyICsyMzEsMTYgQEAgaW50IHJhZGVvbl9tbl9yZWdpc3RlcihzdHJ1Y3QgcmFkZW9uX2JvICpibywgdW5zaWduZWQgbG9uZyBhZGRyKQogICovCiB2b2lkIHJhZGVvbl9tbl91bnJlZ2lzdGVyKHN0cnVjdCByYWRlb25fYm8gKmJvKQogewotCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gYm8tPnJkZXY7Ci0Jc3RydWN0IHJhZGVvbl9tbiAqcm1uOworCXN0cnVjdCByYWRlb25fbW4gKnJtbiA9IGJvLT5tbjsKIAlzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkOwogCi0JbXV0ZXhfbG9jaygmcmRldi0+bW5fbG9jayk7Ci0Jcm1uID0gYm8tPm1uOwotCWlmIChybW4gPT0gTlVMTCkgewotCQltdXRleF91bmxvY2soJnJkZXYtPm1uX2xvY2spOworCWlmICghcm1uKQogCQlyZXR1cm47Ci0JfQogCiAJbXV0ZXhfbG9jaygmcm1uLT5sb2NrKTsKIAkvKiBzYXZlIHRoZSBuZXh0IGxpc3QgZW50cnkgZm9yIGxhdGVyICovCiAJaGVhZCA9IGJvLT5tbl9saXN0Lm5leHQ7CiAKLQliby0+bW4gPSBOVUxMOwogCWxpc3RfZGVsKCZiby0+bW5fbGlzdCk7CiAKIAlpZiAobGlzdF9lbXB0eShoZWFkKSkgewpAQCAtMzM1LDUgKzI1MSw3IEBAIHZvaWQgcmFkZW9uX21uX3VucmVnaXN0ZXIoc3RydWN0IHJhZGVvbl9ibyAqYm8pCiAJfQogCiAJbXV0ZXhfdW5sb2NrKCZybW4tPmxvY2spOwotCW11dGV4X3VubG9jaygmcmRldi0+bW5fbG9jayk7CisKKwltbXVfbm90aWZpZXJfcHV0KCZybW4tPm1uKTsKKwliby0+bW4gPSBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwppbmRleCAyMWY3M2ZjLi4yYWJlMWVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwpAQCAtODUsOSArODUsOSBAQCBzdGF0aWMgdm9pZCByYWRlb25fdHRtX2JvX2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pCiAJbXV0ZXhfdW5sb2NrKCZiby0+cmRldi0+Z2VtLm11dGV4KTsKIAlyYWRlb25fYm9fY2xlYXJfc3VyZmFjZV9yZWcoYm8pOwogCVdBUk5fT05fT05DRSghbGlzdF9lbXB0eSgmYm8tPnZhKSk7Ci0JaWYgKGJvLT5nZW1fYmFzZS5pbXBvcnRfYXR0YWNoKQotCQlkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koJmJvLT5nZW1fYmFzZSwgYm8tPnRiby5zZyk7Ci0JZHJtX2dlbV9vYmplY3RfcmVsZWFzZSgmYm8tPmdlbV9iYXNlKTsKKwlpZiAoYm8tPnRiby5iYXNlLmltcG9ydF9hdHRhY2gpCisJCWRybV9wcmltZV9nZW1fZGVzdHJveSgmYm8tPnRiby5iYXNlLCBiby0+dGJvLnNnKTsKKwlkcm1fZ2VtX29iamVjdF9yZWxlYXNlKCZiby0+dGJvLmJhc2UpOwogCWtmcmVlKGJvKTsKIH0KIApAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgcmFkZW9uX3R0bV9wbGFjZW1lbnRfZnJvbV9kb21haW4oc3RydWN0IHJhZGVvbl9ibyAqcmJvLCB1MzIgZG9tYWluKQogaW50IHJhZGVvbl9ib19jcmVhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCSAgICAgdW5zaWduZWQgbG9uZyBzaXplLCBpbnQgYnl0ZV9hbGlnbiwgYm9vbCBrZXJuZWwsCiAJCSAgICAgdTMyIGRvbWFpbiwgdTMyIGZsYWdzLCBzdHJ1Y3Qgc2dfdGFibGUgKnNnLAotCQkgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCSAgICAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQkgICAgIHN0cnVjdCByYWRlb25fYm8gKipib19wdHIpCiB7CiAJc3RydWN0IHJhZGVvbl9ibyAqYm87CkBAIC0yMDksNyArMjA5LDcgQEAgaW50IHJhZGVvbl9ib19jcmVhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJYm8gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmFkZW9uX2JvKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKGJvID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwotCWRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5pdChyZGV2LT5kZGV2LCAmYm8tPmdlbV9iYXNlLCBzaXplKTsKKwlkcm1fZ2VtX3ByaXZhdGVfb2JqZWN0X2luaXQocmRldi0+ZGRldiwgJmJvLT50Ym8uYmFzZSwgc2l6ZSk7CiAJYm8tPnJkZXYgPSByZGV2OwogCWJvLT5zdXJmYWNlX3JlZyA9IC0xOwogCUlOSVRfTElTVF9IRUFEKCZiby0+bGlzdCk7CkBAIC00NDIsMTMgKzQ0MiwxMyBAQCB2b2lkIHJhZGVvbl9ib19mb3JjZV9kZWxldGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJZGV2X2VycihyZGV2LT5kZXYsICJVc2Vyc3BhY2Ugc3RpbGwgaGFzIGFjdGl2ZSBvYmplY3RzICFcbiIpOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShibywgbiwgJnJkZXYtPmdlbS5vYmplY3RzLCBsaXN0KSB7CiAJCWRldl9lcnIocmRldi0+ZGV2LCAiJXAgJXAgJWx1ICVsdSBmb3JjZSBmcmVlXG4iLAotCQkJJmJvLT5nZW1fYmFzZSwgYm8sICh1bnNpZ25lZCBsb25nKWJvLT5nZW1fYmFzZS5zaXplLAotCQkJKigodW5zaWduZWQgbG9uZyAqKSZiby0+Z2VtX2Jhc2UucmVmY291bnQpKTsKKwkJCSZiby0+dGJvLmJhc2UsIGJvLCAodW5zaWduZWQgbG9uZyliby0+dGJvLmJhc2Uuc2l6ZSwKKwkJCSooKHVuc2lnbmVkIGxvbmcgKikmYm8tPnRiby5iYXNlLnJlZmNvdW50KSk7CiAJCW11dGV4X2xvY2soJmJvLT5yZGV2LT5nZW0ubXV0ZXgpOwogCQlsaXN0X2RlbF9pbml0KCZiby0+bGlzdCk7CiAJCW11dGV4X3VubG9jaygmYm8tPnJkZXYtPmdlbS5tdXRleCk7CiAJCS8qIHRoaXMgc2hvdWxkIHVucmVmIHRoZSB0dG0gYm8gKi8KLQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZiby0+Z2VtX2Jhc2UpOworCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoJmJvLT50Ym8uYmFzZSk7CiAJfQogfQogCkBAIC02MTAsNyArNjEwLDcgQEAgaW50IHJhZGVvbl9ib19nZXRfc3VyZmFjZV9yZWcoc3RydWN0IHJhZGVvbl9ibyAqYm8pCiAJaW50IHN0ZWFsOwogCWludCBpOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmYm8tPnRiby5yZXN2LT5sb2NrLmJhc2UpOworCWRtYV9yZXN2X2Fzc2VydF9oZWxkKGJvLT50Ym8uYmFzZS5yZXN2KTsKIAogCWlmICghYm8tPnRpbGluZ19mbGFncykKIAkJcmV0dXJuIDA7CkBAIC03MzYsNyArNzM2LDcgQEAgdm9pZCByYWRlb25fYm9fZ2V0X3RpbGluZ19mbGFncyhzdHJ1Y3QgcmFkZW9uX2JvICpibywKIAkJCQl1aW50MzJfdCAqdGlsaW5nX2ZsYWdzLAogCQkJCXVpbnQzMl90ICpwaXRjaCkKIHsKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZiby0+dGJvLnJlc3YtPmxvY2suYmFzZSk7CisJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPnRiby5iYXNlLnJlc3YpOwogCiAJaWYgKHRpbGluZ19mbGFncykKIAkJKnRpbGluZ19mbGFncyA9IGJvLT50aWxpbmdfZmxhZ3M7CkBAIC03NDgsNyArNzQ4LDcgQEAgaW50IHJhZGVvbl9ib19jaGVja190aWxpbmcoc3RydWN0IHJhZGVvbl9ibyAqYm8sIGJvb2wgaGFzX21vdmVkLAogCQkJCWJvb2wgZm9yY2VfZHJvcCkKIHsKIAlpZiAoIWZvcmNlX2Ryb3ApCi0JCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmJvLT50Ym8ucmVzdi0+bG9jay5iYXNlKTsKKwkJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPnRiby5iYXNlLnJlc3YpOwogCiAJaWYgKCEoYm8tPnRpbGluZ19mbGFncyAmIFJBREVPTl9USUxJTkdfU1VSRkFDRSkpCiAJCXJldHVybiAwOwpAQCAtODcwLDEwICs4NzAsMTAgQEAgaW50IHJhZGVvbl9ib193YWl0KHN0cnVjdCByYWRlb25fYm8gKmJvLCB1MzIgKm1lbV90eXBlLCBib29sIG5vX3dhaXQpCiB2b2lkIHJhZGVvbl9ib19mZW5jZShzdHJ1Y3QgcmFkZW9uX2JvICpibywgc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UsCiAJCSAgICAgYm9vbCBzaGFyZWQpCiB7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IGJvLT50Ym8ucmVzdjsKKwlzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YgPSBiby0+dGJvLmJhc2UucmVzdjsKIAogCWlmIChzaGFyZWQpCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKHJlc3YsICZmZW5jZS0+YmFzZSk7CisJCWRtYV9yZXN2X2FkZF9zaGFyZWRfZmVuY2UocmVzdiwgJmZlbmNlLT5iYXNlKTsKIAllbHNlCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShyZXN2LCAmZmVuY2UtPmJhc2UpOworCQlkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZShyZXN2LCAmZmVuY2UtPmJhc2UpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaAppbmRleCA5ZmZkODIxLi5kMjNmMmVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaApAQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgcmFkZW9uX2JvX2dwdV9wYWdlX2FsaWdubWVudChzdHJ1Y3QgcmFkZW9uX2JvICpibykKICAqLwogc3RhdGljIGlubGluZSB1NjQgcmFkZW9uX2JvX21tYXBfb2Zmc2V0KHN0cnVjdCByYWRlb25fYm8gKmJvKQogewotCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJvLT50Ym8udm1hX25vZGUpOworCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJvLT50Ym8uYmFzZS52bWFfbm9kZSk7CiB9CiAKIGV4dGVybiBpbnQgcmFkZW9uX2JvX3dhaXQoc3RydWN0IHJhZGVvbl9ibyAqYm8sIHUzMiAqbWVtX3R5cGUsCkBAIC0xMjYsNyArMTI2LDcgQEAgZXh0ZXJuIGludCByYWRlb25fYm9fY3JlYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50IGJ5dGVfYWxpZ24sCiAJCQkgICAgYm9vbCBrZXJuZWwsIHUzMiBkb21haW4sIHUzMiBmbGFncywKIAkJCSAgICBzdHJ1Y3Qgc2dfdGFibGUgKnNnLAotCQkJICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCQkgICAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQkJICAgIHN0cnVjdCByYWRlb25fYm8gKipib19wdHIpOwogZXh0ZXJuIGludCByYWRlb25fYm9fa21hcChzdHJ1Y3QgcmFkZW9uX2JvICpibywgdm9pZCAqKnB0cik7CiBleHRlcm4gdm9pZCByYWRlb25fYm9fa3VubWFwKHN0cnVjdCByYWRlb25fYm8gKmJvKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wcmltZS5jCmluZGV4IGQzYTViZWEuLmI5MDZlOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ByaW1lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcHJpbWUuYwpAQCAtNjMsMTUgKzYzLDE1IEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqcmFkZW9uX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJCQlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCiAJCQkJCQkJc3RydWN0IHNnX3RhYmxlICpzZykKIHsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2ID0gYXR0YWNoLT5kbWFidWYtPnJlc3Y7CisJc3RydWN0IGRtYV9yZXN2ICpyZXN2ID0gYXR0YWNoLT5kbWFidWYtPnJlc3Y7CiAJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCByYWRlb25fYm8gKmJvOwogCWludCByZXQ7CiAKLQl3d19tdXRleF9sb2NrKCZyZXN2LT5sb2NrLCBOVUxMKTsKKwlkbWFfcmVzdl9sb2NrKHJlc3YsIE5VTEwpOwogCXJldCA9IHJhZGVvbl9ib19jcmVhdGUocmRldiwgYXR0YWNoLT5kbWFidWYtPnNpemUsIFBBR0VfU0laRSwgZmFsc2UsCiAJCQkgICAgICAgUkFERU9OX0dFTV9ET01BSU5fR1RULCAwLCBzZywgcmVzdiwgJmJvKTsKLQl3d19tdXRleF91bmxvY2soJnJlc3YtPmxvY2spOworCWRtYV9yZXN2X3VubG9jayhyZXN2KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCkBAIC04MCw3ICs4MCw3IEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqcmFkZW9uX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAltdXRleF91bmxvY2soJnJkZXYtPmdlbS5tdXRleCk7CiAKIAliby0+cHJpbWVfc2hhcmVkX2NvdW50ID0gMTsKLQlyZXR1cm4gJmJvLT5nZW1fYmFzZTsKKwlyZXR1cm4gJmJvLT50Ym8uYmFzZTsKIH0KIAogaW50IHJhZGVvbl9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQpAQCAtMTE3LDE5ICsxMTcsMTEgQEAgdm9pZCByYWRlb25fZ2VtX3ByaW1lX3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogfQogCiAKLXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJhZGVvbl9nZW1fcHJpbWVfcmVzX29iaihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKLXsKLQlzdHJ1Y3QgcmFkZW9uX2JvICpibyA9IGdlbV90b19yYWRlb25fYm8ob2JqKTsKLQotCXJldHVybiBiby0+dGJvLnJlc3Y7Ci19Ci0KLXN0cnVjdCBkbWFfYnVmICpyYWRlb25fZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmosCitzdHJ1Y3QgZG1hX2J1ZiAqcmFkZW9uX2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqLAogCQkJCQlpbnQgZmxhZ3MpCiB7CiAJc3RydWN0IHJhZGVvbl9ibyAqYm8gPSBnZW1fdG9fcmFkZW9uX2JvKGdvYmopOwogCWlmIChyYWRlb25fdHRtX3R0X2hhc191c2VycHRyKGJvLT50Ym8udHRtKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVQRVJNKTsKLQlyZXR1cm4gZHJtX2dlbV9wcmltZV9leHBvcnQoZGV2LCBnb2JqLCBmbGFncyk7CisJcmV0dXJuIGRybV9nZW1fcHJpbWVfZXhwb3J0KGdvYmosIGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3N5bmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3N5bmMuYwppbmRleCA4Yzk3ODBiLi41NWNjNzdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zeW5jLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc3luYy5jCkBAIC04NywzMCArODcsMzAgQEAgdm9pZCByYWRlb25fc3luY19mZW5jZShzdHJ1Y3QgcmFkZW9uX3N5bmMgKnN5bmMsCiAgKi8KIGludCByYWRlb25fc3luY19yZXN2KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkgICAgIHN0cnVjdCByYWRlb25fc3luYyAqc3luYywKLQkJICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAorCQkgICAgIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKIAkJICAgICBib29sIHNoYXJlZCkKIHsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZsaXN0OworCXN0cnVjdCBkbWFfcmVzdl9saXN0ICpmbGlzdDsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwogCXN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlOwogCXVuc2lnbmVkIGk7CiAJaW50IHIgPSAwOwogCiAJLyogYWx3YXlzIHN5bmMgdG8gdGhlIGV4Y2x1c2l2ZSBmZW5jZSAqLwotCWYgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2wocmVzdik7CisJZiA9IGRtYV9yZXN2X2dldF9leGNsKHJlc3YpOwogCWZlbmNlID0gZiA/IHRvX3JhZGVvbl9mZW5jZShmKSA6IE5VTEw7CiAJaWYgKGZlbmNlICYmIGZlbmNlLT5yZGV2ID09IHJkZXYpCiAJCXJhZGVvbl9zeW5jX2ZlbmNlKHN5bmMsIGZlbmNlKTsKIAllbHNlIGlmIChmKQogCQlyID0gZG1hX2ZlbmNlX3dhaXQoZiwgdHJ1ZSk7CiAKLQlmbGlzdCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChyZXN2KTsKKwlmbGlzdCA9IGRtYV9yZXN2X2dldF9saXN0KHJlc3YpOwogCWlmIChzaGFyZWQgfHwgIWZsaXN0IHx8IHIpCiAJCXJldHVybiByOwogCiAJZm9yIChpID0gMDsgaSA8IGZsaXN0LT5zaGFyZWRfY291bnQ7ICsraSkgewogCQlmID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChmbGlzdC0+c2hhcmVkW2ldLAotCQkJCQkgICAgICByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChyZXN2KSk7CisJCQkJCSAgICAgIGRtYV9yZXN2X2hlbGQocmVzdikpOwogCQlmZW5jZSA9IHRvX3JhZGVvbl9mZW5jZShmKTsKIAkJaWYgKGZlbmNlICYmIGZlbmNlLT5yZGV2ID09IHJkZXYpCiAJCQlyYWRlb25fc3luY19mZW5jZShzeW5jLCBmZW5jZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90ZXN0LmMKaW5kZXggMGY2YmE4MS4uYTVlMWQyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdGVzdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3Rlc3QuYwpAQCAtMTIwLDExICsxMjAsMTEgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2RvX3Rlc3RfbW92ZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCBmbGFnKQogCQlpZiAocmluZyA9PSBSNjAwX1JJTkdfVFlQRV9ETUFfSU5ERVgpCiAJCQlmZW5jZSA9IHJhZGVvbl9jb3B5X2RtYShyZGV2LCBndHRfYWRkciwgdnJhbV9hZGRyLAogCQkJCQkJc2l6ZSAvIFJBREVPTl9HUFVfUEFHRV9TSVpFLAotCQkJCQkJdnJhbV9vYmotPnRiby5yZXN2KTsKKwkJCQkJCXZyYW1fb2JqLT50Ym8uYmFzZS5yZXN2KTsKIAkJZWxzZQogCQkJZmVuY2UgPSByYWRlb25fY29weV9ibGl0KHJkZXYsIGd0dF9hZGRyLCB2cmFtX2FkZHIsCiAJCQkJCQkgc2l6ZSAvIFJBREVPTl9HUFVfUEFHRV9TSVpFLAotCQkJCQkJIHZyYW1fb2JqLT50Ym8ucmVzdik7CisJCQkJCQkgdnJhbV9vYmotPnRiby5iYXNlLnJlc3YpOwogCQlpZiAoSVNfRVJSKGZlbmNlKSkgewogCQkJRFJNX0VSUk9SKCJGYWlsZWQgR1RULT5WUkFNIGNvcHkgJWRcbiIsIGkpOwogCQkJciA9IFBUUl9FUlIoZmVuY2UpOwpAQCAtMTcxLDExICsxNzEsMTEgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2RvX3Rlc3RfbW92ZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCBmbGFnKQogCQlpZiAocmluZyA9PSBSNjAwX1JJTkdfVFlQRV9ETUFfSU5ERVgpCiAJCQlmZW5jZSA9IHJhZGVvbl9jb3B5X2RtYShyZGV2LCB2cmFtX2FkZHIsIGd0dF9hZGRyLAogCQkJCQkJc2l6ZSAvIFJBREVPTl9HUFVfUEFHRV9TSVpFLAotCQkJCQkJdnJhbV9vYmotPnRiby5yZXN2KTsKKwkJCQkJCXZyYW1fb2JqLT50Ym8uYmFzZS5yZXN2KTsKIAkJZWxzZQogCQkJZmVuY2UgPSByYWRlb25fY29weV9ibGl0KHJkZXYsIHZyYW1fYWRkciwgZ3R0X2FkZHIsCiAJCQkJCQkgc2l6ZSAvIFJBREVPTl9HUFVfUEFHRV9TSVpFLAotCQkJCQkJIHZyYW1fb2JqLT50Ym8ucmVzdik7CisJCQkJCQkgdnJhbV9vYmotPnRiby5iYXNlLnJlc3YpOwogCQlpZiAoSVNfRVJSKGZlbmNlKSkgewogCQkJRFJNX0VSUk9SKCJGYWlsZWQgVlJBTS0+R1RUIGNvcHkgJWRcbiIsIGkpOwogCQkJciA9IFBUUl9FUlIoZmVuY2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwppbmRleCBmYjM2OTZiLi5hMDVlMTA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwpAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX3ZlcmlmeV9hY2Nlc3Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IGZpbGUgKmZpbHApCiAKIAlpZiAocmFkZW9uX3R0bV90dF9oYXNfdXNlcnB0cihiby0+dHRtKSkKIAkJcmV0dXJuIC1FUEVSTTsKLQlyZXR1cm4gZHJtX3ZtYV9ub2RlX3ZlcmlmeV9hY2Nlc3MoJnJiby0+Z2VtX2Jhc2Uudm1hX25vZGUsCisJcmV0dXJuIGRybV92bWFfbm9kZV92ZXJpZnlfYWNjZXNzKCZyYm8tPnRiby5iYXNlLnZtYV9ub2RlLAogCQkJCQkgIGZpbHAtPnByaXZhdGVfZGF0YSk7CiB9CiAKQEAgLTI0NCw3ICsyNDQsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9tb3ZlX2JsaXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlCVUlMRF9CVUdfT04oKFBBR0VfU0laRSAlIFJBREVPTl9HUFVfUEFHRV9TSVpFKSAhPSAwKTsKIAogCW51bV9wYWdlcyA9IG5ld19tZW0tPm51bV9wYWdlcyAqIChQQUdFX1NJWkUgLyBSQURFT05fR1BVX1BBR0VfU0laRSk7Ci0JZmVuY2UgPSByYWRlb25fY29weShyZGV2LCBvbGRfc3RhcnQsIG5ld19zdGFydCwgbnVtX3BhZ2VzLCBiby0+cmVzdik7CisJZmVuY2UgPSByYWRlb25fY29weShyZGV2LCBvbGRfc3RhcnQsIG5ld19zdGFydCwgbnVtX3BhZ2VzLCBiby0+YmFzZS5yZXN2KTsKIAlpZiAoSVNfRVJSKGZlbmNlKSkKIAkJcmV0dXJuIFBUUl9FUlIoZmVuY2UpOwogCkBAIC03OTQsNyArNzk0LDcgQEAgaW50IHJhZGVvbl90dG1faW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAlyID0gdHRtX2JvX2RldmljZV9pbml0KCZyZGV2LT5tbWFuLmJkZXYsCiAJCQkgICAgICAgJnJhZGVvbl9ib19kcml2ZXIsCiAJCQkgICAgICAgcmRldi0+ZGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5nLAotCQkJICAgICAgIHJkZXYtPm5lZWRfZG1hMzIpOworCQkJICAgICAgIGRtYV9hZGRyZXNzaW5nX2xpbWl0ZWQoJnJkZXYtPnBkZXYtPmRldikpOwogCWlmIChyKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIGluaXRpYWxpemluZyBidWZmZXIgb2JqZWN0IGRyaXZlciglZCkuXG4iLCByKTsKIAkJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl91dmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jCmluZGV4IGZmNGY3OTQuLjFhZDVjM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jCkBAIC00NzcsNyArNDc3LDcgQEAgc3RhdGljIGludCByYWRlb25fdXZkX2NzX21zZyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwgc3RydWN0IHJhZGVvbl9ibyAqYm8sCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWYgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2woYm8tPnRiby5yZXN2KTsKKwlmID0gZG1hX3Jlc3ZfZ2V0X2V4Y2woYm8tPnRiby5iYXNlLnJlc3YpOwogCWlmIChmKSB7CiAJCXIgPSByYWRlb25fZmVuY2Vfd2FpdCgoc3RydWN0IHJhZGVvbl9mZW5jZSAqKWYsIGZhbHNlKTsKIAkJaWYgKHIpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jCmluZGV4IDg1MTJiMDIuLmUwYWQ1NDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYwpAQCAtNzAyLDcgKzcwMiw3IEBAIGludCByYWRlb25fdm1fdXBkYXRlX3BhZ2VfZGlyZWN0b3J5KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCWlmIChpYi5sZW5ndGhfZHcgIT0gMCkgewogCQlyYWRlb25fYXNpY192bV9wYWRfaWIocmRldiwgJmliKTsKIAotCQlyYWRlb25fc3luY19yZXN2KHJkZXYsICZpYi5zeW5jLCBwZC0+dGJvLnJlc3YsIHRydWUpOworCQlyYWRlb25fc3luY19yZXN2KHJkZXYsICZpYi5zeW5jLCBwZC0+dGJvLmJhc2UucmVzdiwgdHJ1ZSk7CiAJCVdBUk5fT04oaWIubGVuZ3RoX2R3ID4gbmR3KTsKIAkJciA9IHJhZGVvbl9pYl9zY2hlZHVsZShyZGV2LCAmaWIsIE5VTEwsIGZhbHNlKTsKIAkJaWYgKHIpIHsKQEAgLTgzMCw4ICs4MzAsOCBAQCBzdGF0aWMgaW50IHJhZGVvbl92bV91cGRhdGVfcHRlcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJdWludDY0X3QgcHRlOwogCQlpbnQgcjsKIAotCQlyYWRlb25fc3luY19yZXN2KHJkZXYsICZpYi0+c3luYywgcHQtPnRiby5yZXN2LCB0cnVlKTsKLQkJciA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChwdC0+dGJvLnJlc3YsIDEpOworCQlyYWRlb25fc3luY19yZXN2KHJkZXYsICZpYi0+c3luYywgcHQtPnRiby5iYXNlLnJlc3YsIHRydWUpOworCQlyID0gZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQocHQtPnRiby5iYXNlLnJlc3YsIDEpOwogCQlpZiAocikKIAkJCXJldHVybiByOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzcwX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MF9kbWEuYwppbmRleCAwODY2YjM4Li40YzkxNjE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzcwX2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzBfZG1hLmMKQEAgLTQyLDcgKzQyLDcgQEAKIHN0cnVjdCByYWRlb25fZmVuY2UgKnJ2NzcwX2NvcHlfZG1hKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCSAgICB1aW50NjRfdCBzcmNfb2Zmc2V0LCB1aW50NjRfdCBkc3Rfb2Zmc2V0LAogCQkJCSAgICB1bnNpZ25lZCBudW1fZ3B1X3BhZ2VzLAotCQkJCSAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2KQorCQkJCSAgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YpCiB7CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2U7CiAJc3RydWN0IHJhZGVvbl9zeW5jIHN5bmM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaV9kbWEuYwppbmRleCA0NzczYmI3Li5kMmZhMzAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpX2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2lfZG1hLmMKQEAgLTIzMSw3ICsyMzEsNyBAQCB2b2lkIHNpX2RtYV92bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nLAogc3RydWN0IHJhZGVvbl9mZW5jZSAqc2lfY29weV9kbWEoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkJIHVpbnQ2NF90IHNyY19vZmZzZXQsIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCQkJIHVuc2lnbmVkIG51bV9ncHVfcGFnZXMsCi0JCQkJIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YpCisJCQkJIHN0cnVjdCBkbWFfcmVzdiAqcmVzdikKIHsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgcmFkZW9uX3N5bmMgc3luYzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2Rydi5jCmluZGV4IDZkZjM3YzIuLjljOTNlYjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9kcnYuYwpAQCAtNDQxLDE0ICs0NDEsMTEgQEAgTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmNhcl9kdV9vZl90YWJsZSk7CiBERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhyY2FyX2R1X2ZvcHMpOwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgcmNhcl9kdV9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9QUklNRQotCQkJCXwgRFJJVkVSX0FUT01JQywKKwkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQywKIAkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0gZHJtX2dlbV9jbWFfZnJlZV9vYmplY3QsCiAJLmdlbV92bV9vcHMJCT0gJmRybV9nZW1fY21hX3ZtX29wcywKIAkucHJpbWVfaGFuZGxlX3RvX2ZkCT0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZQk9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfaW1wb3J0CT0gZHJtX2dlbV9wcmltZV9pbXBvcnQsCi0JLmdlbV9wcmltZV9leHBvcnQJPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKIAkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZQk9IGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX3ZtYXAJCT0gZHJtX2dlbV9jbWFfcHJpbWVfdm1hcCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMKaW5kZXggMDgyZDAyYy4uM2ZjN2U2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMKQEAgLTcxLDExICs3MSwxMSBAQCBzdHJ1Y3QgcmNhcl9sdmRzIHsKIAlib29sIGR1YWxfbGluazsKIH07CiAKLSNkZWZpbmUgYnJpZGdlX3RvX3JjYXJfbHZkcyhicmlkZ2UpIFwKLQljb250YWluZXJfb2YoYnJpZGdlLCBzdHJ1Y3QgcmNhcl9sdmRzLCBicmlkZ2UpCisjZGVmaW5lIGJyaWRnZV90b19yY2FyX2x2ZHMoYikgXAorCWNvbnRhaW5lcl9vZihiLCBzdHJ1Y3QgcmNhcl9sdmRzLCBicmlkZ2UpCiAKLSNkZWZpbmUgY29ubmVjdG9yX3RvX3JjYXJfbHZkcyhjb25uZWN0b3IpIFwKLQljb250YWluZXJfb2YoY29ubmVjdG9yLCBzdHJ1Y3QgcmNhcl9sdmRzLCBjb25uZWN0b3IpCisjZGVmaW5lIGNvbm5lY3Rvcl90b19yY2FyX2x2ZHMoYykgXAorCWNvbnRhaW5lcl9vZihjLCBzdHJ1Y3QgcmNhcl9sdmRzLCBjb25uZWN0b3IpCiAKIHN0YXRpYyB2b2lkIHJjYXJfbHZkc193cml0ZShzdHJ1Y3QgcmNhcl9sdmRzICpsdmRzLCB1MzIgcmVnLCB1MzIgZGF0YSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZQppbmRleCA1MjQ2ODRiLi4xN2E5ZTdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlCkBAIC00LDggKzQsNyBAQAogIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KIAogcm9ja2NoaXBkcm0teSA6PSByb2NrY2hpcF9kcm1fZHJ2Lm8gcm9ja2NoaXBfZHJtX2ZiLm8gXAotCQlyb2NrY2hpcF9kcm1fZ2VtLm8gcm9ja2NoaXBfZHJtX3Bzci5vIFwKLQkJcm9ja2NoaXBfZHJtX3ZvcC5vIHJvY2tjaGlwX3ZvcF9yZWcubworCQlyb2NrY2hpcF9kcm1fZ2VtLm8gcm9ja2NoaXBfZHJtX3ZvcC5vIHJvY2tjaGlwX3ZvcF9yZWcubwogcm9ja2NoaXBkcm0tJChDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTikgKz0gcm9ja2NoaXBfZHJtX2ZiZGV2Lm8KIAogcm9ja2NoaXBkcm0tJChDT05GSUdfUk9DS0NISVBfQU5BTE9HSVhfRFApICs9IGFuYWxvZ2l4X2RwLXJvY2tjaGlwLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKaW5kZXggOWFhZTNkOC4uZjM4ZjVlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKQEAgLTE2LDE5ICsxNiwxOCBAQAogI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPHZpZGVvL29mX3ZpZGVvbW9kZS5oPgorI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vYnJpZGdlL2FuYWxvZ2l4X2RwLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKLSNpbmNsdWRlIDx2aWRlby9vZl92aWRlb21vZGUuaD4KLSNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KLQotI2luY2x1ZGUgPGRybS9icmlkZ2UvYW5hbG9naXhfZHAuaD4KLQogI2luY2x1ZGUgInJvY2tjaGlwX2RybV9kcnYuaCIKLSNpbmNsdWRlICJyb2NrY2hpcF9kcm1fcHNyLmgiCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX3ZvcC5oIgogCiAjZGVmaW5lIFJLMzI4OF9HUkZfU09DX0NPTjYJCTB4MjVjCkBAIC03MywyOSArNzIsNiBAQCBzdHJ1Y3Qgcm9ja2NoaXBfZHBfZGV2aWNlIHsKIAlzdHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9kYXRhIHBsYXRfZGF0YTsKIH07CiAKLXN0YXRpYyBpbnQgYW5hbG9naXhfZHBfcHNyX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGJvb2wgZW5hYmxlZCkKLXsKLQlzdHJ1Y3Qgcm9ja2NoaXBfZHBfZGV2aWNlICpkcCA9IHRvX2RwKGVuY29kZXIpOwotCWludCByZXQ7Ci0KLQlpZiAoIWFuYWxvZ2l4X2RwX3Bzcl9lbmFibGVkKGRwLT5hZHApKQotCQlyZXR1cm4gMDsKLQotCURSTV9ERVZfREVCVUcoZHAtPmRldiwgIiVzIFBTUi4uLlxuIiwgZW5hYmxlZCA/ICJFbnRyeSIgOiAiRXhpdCIpOwotCi0JcmV0ID0gcm9ja2NoaXBfZHJtX3dhaXRfdmFjdF9lbmQoZHAtPmVuY29kZXIuY3J0YywKLQkJCQkJIFBTUl9XQUlUX0xJTkVfRkxBR19USU1FT1VUX01TKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9ERVZfRVJST1IoZHAtPmRldiwgImxpbmUgZmxhZyBpbnRlcnJ1cHQgZGlkIG5vdCBhcnJpdmVcbiIpOwotCQlyZXR1cm4gLUVUSU1FRE9VVDsKLQl9Ci0KLQlpZiAoZW5hYmxlZCkKLQkJcmV0dXJuIGFuYWxvZ2l4X2RwX2VuYWJsZV9wc3IoZHAtPmFkcCk7Ci0JZWxzZQotCQlyZXR1cm4gYW5hbG9naXhfZHBfZGlzYWJsZV9wc3IoZHAtPmFkcCk7Ci19Ci0KIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHBfcHJlX2luaXQoc3RydWN0IHJvY2tjaGlwX2RwX2RldmljZSAqZHApCiB7CiAJcmVzZXRfY29udHJvbF9hc3NlcnQoZHAtPnJzdCk7CkBAIC0xMjYsMjEgKzEwMiw5IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHBfcG93ZXJvbl9zdGFydChzdHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9kYXRhICpwbGF0X2RhdGEpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCByb2NrY2hpcF9kcF9wb3dlcm9uX2VuZChzdHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9kYXRhICpwbGF0X2RhdGEpCi17Ci0Jc3RydWN0IHJvY2tjaGlwX2RwX2RldmljZSAqZHAgPSB0b19kcChwbGF0X2RhdGEpOwotCi0JcmV0dXJuIHJvY2tjaGlwX2RybV9wc3JfaW5oaWJpdF9wdXQoJmRwLT5lbmNvZGVyKTsKLX0KLQogc3RhdGljIGludCByb2NrY2hpcF9kcF9wb3dlcmRvd24oc3RydWN0IGFuYWxvZ2l4X2RwX3BsYXRfZGF0YSAqcGxhdF9kYXRhKQogewogCXN0cnVjdCByb2NrY2hpcF9kcF9kZXZpY2UgKmRwID0gdG9fZHAocGxhdF9kYXRhKTsKLQlpbnQgcmV0OwotCi0JcmV0ID0gcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X2dldCgmZHAtPmVuY29kZXIpOwotCWlmIChyZXQgIT0gMCkKLQkJcmV0dXJuIHJldDsKIAogCWNsa19kaXNhYmxlX3VucHJlcGFyZShkcC0+cGNsayk7CiAKQEAgLTE4MCwxMiArMTQ0LDQyIEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2RwX2RybV9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkvKiBkbyBub3RoaW5nICovCiB9CiAKLXN0YXRpYyB2b2lkIHJvY2tjaGlwX2RwX2RybV9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMKK3N0cnVjdCBkcm1fY3J0YyAqcm9ja2NoaXBfZHBfZHJtX2dldF9uZXdfY3J0YyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCisJCQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOworCisJY29ubmVjdG9yID0gZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rvcl9mb3JfZW5jb2RlcihzdGF0ZSwgZW5jb2Rlcik7CisJaWYgKCFjb25uZWN0b3IpCisJCXJldHVybiBOVUxMOworCisJY29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7CisJaWYgKCFjb25uX3N0YXRlKQorCQlyZXR1cm4gTlVMTDsKKworCXJldHVybiBjb25uX3N0YXRlLT5jcnRjOworfQorCitzdGF0aWMgdm9pZCByb2NrY2hpcF9kcF9kcm1fZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorCQkJCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IHJvY2tjaGlwX2RwX2RldmljZSAqZHAgPSB0b19kcChlbmNvZGVyKTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZTsKIAlpbnQgcmV0OwogCXUzMiB2YWw7CiAKKwljcnRjID0gcm9ja2NoaXBfZHBfZHJtX2dldF9uZXdfY3J0YyhlbmNvZGVyLCBzdGF0ZSk7CisJaWYgKCFjcnRjKQorCQlyZXR1cm47CisKKwlvbGRfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwkvKiBDb21pbmcgYmFjayBmcm9tIHNlbGYgcmVmcmVzaCwgbm90aGluZyB0byBkbyAqLworCWlmIChvbGRfY3J0Y19zdGF0ZSAmJiBvbGRfY3J0Y19zdGF0ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZSkKKwkJcmV0dXJuOworCiAJcmV0ID0gZHJtX29mX2VuY29kZXJfYWN0aXZlX2VuZHBvaW50X2lkKGRwLT5kZXYtPm9mX25vZGUsIGVuY29kZXIpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm47CkBAIC0yMTAsOSArMjA0LDI3IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2RwX2RybV9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRwLT5ncmZjbGspOwogfQogCi1zdGF0aWMgdm9pZCByb2NrY2hpcF9kcF9kcm1fZW5jb2Rlcl9ub3Aoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIHZvaWQgcm9ja2NoaXBfZHBfZHJtX2VuY29kZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCisJCQkJCSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0JLyogZG8gbm90aGluZyAqLworCXN0cnVjdCByb2NrY2hpcF9kcF9kZXZpY2UgKmRwID0gdG9fZHAoZW5jb2Rlcik7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPSBOVUxMOworCWludCByZXQ7CisKKwljcnRjID0gcm9ja2NoaXBfZHBfZHJtX2dldF9uZXdfY3J0YyhlbmNvZGVyLCBzdGF0ZSk7CisJLyogTm8gY3J0YyBtZWFucyB3ZSdyZSBkb2luZyBhIGZ1bGwgc2h1dGRvd24gKi8KKwlpZiAoIWNydGMpCisJCXJldHVybjsKKworCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCS8qIElmIHdlJ3JlIG5vdCBlbnRlcmluZyBzZWxmLXJlZnJlc2gsIG5vIG5lZWQgdG8gd2FpdCBmb3IgdmFjdCAqLworCWlmICghbmV3X2NydGNfc3RhdGUgfHwgIW5ld19jcnRjX3N0YXRlLT5zZWxmX3JlZnJlc2hfYWN0aXZlKQorCQlyZXR1cm47CisKKwlyZXQgPSByb2NrY2hpcF9kcm1fd2FpdF92YWN0X2VuZChjcnRjLCBQU1JfV0FJVF9MSU5FX0ZMQUdfVElNRU9VVF9NUyk7CisJaWYgKHJldCkKKwkJRFJNX0RFVl9FUlJPUihkcC0+ZGV2LCAibGluZSBmbGFnIGlycSB0aW1lZCBvdXRcbiIpOwogfQogCiBzdGF0aWMgaW50CkBAIC0yNDEsOCArMjUzLDggQEAgcm9ja2NoaXBfZHBfZHJtX2VuY29kZXJfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIHJvY2tjaGlwX2RwX2VuY29kZXJfaGVscGVyX2Z1bmNzID0gewogCS5tb2RlX2ZpeHVwID0gcm9ja2NoaXBfZHBfZHJtX2VuY29kZXJfbW9kZV9maXh1cCwKIAkubW9kZV9zZXQgPSByb2NrY2hpcF9kcF9kcm1fZW5jb2Rlcl9tb2RlX3NldCwKLQkuZW5hYmxlID0gcm9ja2NoaXBfZHBfZHJtX2VuY29kZXJfZW5hYmxlLAotCS5kaXNhYmxlID0gcm9ja2NoaXBfZHBfZHJtX2VuY29kZXJfbm9wLAorCS5hdG9taWNfZW5hYmxlID0gcm9ja2NoaXBfZHBfZHJtX2VuY29kZXJfZW5hYmxlLAorCS5hdG9taWNfZGlzYWJsZSA9IHJvY2tjaGlwX2RwX2RybV9lbmNvZGVyX2Rpc2FibGUsCiAJLmF0b21pY19jaGVjayA9IHJvY2tjaGlwX2RwX2RybV9lbmNvZGVyX2F0b21pY19jaGVjaywKIH07CiAKQEAgLTMzNCwyMyArMzQ2LDE2IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIAogCWRwLT5wbGF0X2RhdGEuZGV2X3R5cGUgPSBkcC0+ZGF0YS0+Y2hpcF90eXBlOwogCWRwLT5wbGF0X2RhdGEucG93ZXJfb25fc3RhcnQgPSByb2NrY2hpcF9kcF9wb3dlcm9uX3N0YXJ0OwotCWRwLT5wbGF0X2RhdGEucG93ZXJfb25fZW5kID0gcm9ja2NoaXBfZHBfcG93ZXJvbl9lbmQ7CiAJZHAtPnBsYXRfZGF0YS5wb3dlcl9vZmYgPSByb2NrY2hpcF9kcF9wb3dlcmRvd247CiAJZHAtPnBsYXRfZGF0YS5nZXRfbW9kZXMgPSByb2NrY2hpcF9kcF9nZXRfbW9kZXM7CiAKLQlyZXQgPSByb2NrY2hpcF9kcm1fcHNyX3JlZ2lzdGVyKCZkcC0+ZW5jb2RlciwgYW5hbG9naXhfZHBfcHNyX3NldCk7Ci0JaWYgKHJldCA8IDApCi0JCWdvdG8gZXJyX2NsZWFudXBfZW5jb2RlcjsKLQogCWRwLT5hZHAgPSBhbmFsb2dpeF9kcF9iaW5kKGRldiwgZHAtPmRybV9kZXYsICZkcC0+cGxhdF9kYXRhKTsKIAlpZiAoSVNfRVJSKGRwLT5hZHApKSB7CiAJCXJldCA9IFBUUl9FUlIoZHAtPmFkcCk7Ci0JCWdvdG8gZXJyX3VucmVnX3BzcjsKKwkJZ290byBlcnJfY2xlYW51cF9lbmNvZGVyOwogCX0KIAogCXJldHVybiAwOwotZXJyX3VucmVnX3BzcjoKLQlyb2NrY2hpcF9kcm1fcHNyX3VucmVnaXN0ZXIoJmRwLT5lbmNvZGVyKTsKIGVycl9jbGVhbnVwX2VuY29kZXI6CiAJZHAtPmVuY29kZXIuZnVuY3MtPmRlc3Ryb3koJmRwLT5lbmNvZGVyKTsKIAlyZXR1cm4gcmV0OwpAQCAtMzYyLDcgKzM2Nyw2IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2RwX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIAlzdHJ1Y3Qgcm9ja2NoaXBfZHBfZGV2aWNlICpkcCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCiAJYW5hbG9naXhfZHBfdW5iaW5kKGRwLT5hZHApOwotCXJvY2tjaGlwX2RybV9wc3JfdW5yZWdpc3RlcigmZHAtPmVuY29kZXIpOwogCWRwLT5lbmNvZGVyLmZ1bmNzLT5kZXN0cm95KCZkcC0+ZW5jb2Rlcik7CiAKIAlkcC0+YWRwID0gRVJSX1BUUigtRU5PREVWKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKaW5kZXggOGMzMmMzMi4uZDUwNWVhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKQEAgLTQsMjQgKzQsMjMgQEAKICAqIEF1dGhvcjogQ2hyaXMgWmhvbmcgPHp5d0Byb2NrLWNoaXBzLmNvbT4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9leHRjb24uaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKyNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KKworI2luY2x1ZGUgPHNvdW5kL2hkbWktY29kZWMuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZHBfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KLSNpbmNsdWRlIDxsaW51eC9leHRjb24uaD4KLSNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgotI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgotI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KLQotI2luY2x1ZGUgPHNvdW5kL2hkbWktY29kZWMuaD4KLQogI2luY2x1ZGUgImNkbi1kcC1jb3JlLmgiCiAjaW5jbHVkZSAiY2RuLWRwLXJlZy5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV92b3AuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5oIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmgKaW5kZXggZjE4YTAxZS4uYjg1ZWE4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmgKQEAgLTcsMTAgKzcsMTAgQEAKICNpZm5kZWYgX0NETl9EUF9DT1JFX0gKICNkZWZpbmUgX0NETl9EUF9DT1JFX0gKIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKwogI2luY2x1ZGUgInJvY2tjaGlwX2RybV9kcnYuaCIKIAogI2RlZmluZSBNQVhfUEhZCQkyCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2ktcm9ja2NoaXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS1yb2NrY2hpcC5jCmluZGV4IGVmODQ4NmUuLmJjMDczZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS1yb2NrY2hpcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS1yb2NrY2hpcC5jCkBAIC02LDEwICs2LDYgQEAKICAqICAgICAgTmlja2V5IFlhbmcgPG5pY2tleS55YW5nQHJvY2stY2hpcHMuY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KLSNpbmNsdWRlIDxkcm0vYnJpZGdlL2R3X21pcGlfZHNpLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L21hdGg2NC5oPgpAQCAtMTgsOCArMTQsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisKICNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KIAorI2luY2x1ZGUgPGRybS9icmlkZ2UvZHdfbWlwaV9kc2kuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgorCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2Rydi5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV92b3AuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMKaW5kZXggY2RjMzA0ZC4uOTA2ODkxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jCkBAIC0xMCwxMSArMTAsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtX29mLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9icmlkZ2UvZHdfaGRtaS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgorI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2Rydi5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV92b3AuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYwppbmRleCBmOGNhOThkLi5lZDM0NGE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvaW5ub19oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jCkBAIC0xNSwxMCArMTUsOSBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtX29mLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KIAogI2luY2x1ZGUgInJvY2tjaGlwX2RybV9kcnYuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jCmluZGV4IDM4ZGMyNjMuLjIwZWNiMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuYwpAQCAtNiwxMSArNiw2IEBACiAgKiBiYXNlZCBvbiBleHlub3NfZHJtX2Rydi5jCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtaW9tbXUuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CkBAIC0yMSw2ICsxNiwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KICNpbmNsdWRlIDxsaW51eC9pb21tdS5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2Rydi5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV9mYi5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV9mYmRldi5oIgpAQCAtMjEyLDE2ICsyMTQsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcm9ja2NoaXBfZHJtX2RyaXZlcl9mb3BzID0gewogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHJvY2tjaGlwX2RybV9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSB8Ci0JCQkJICBEUklWRVJfUFJJTUUgfCBEUklWRVJfQVRPTUlDLAorCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfQVRPTUlDLAogCS5sYXN0Y2xvc2UJCT0gZHJtX2ZiX2hlbHBlcl9sYXN0Y2xvc2UsCiAJLmdlbV92bV9vcHMJCT0gJmRybV9nZW1fY21hX3ZtX29wcywKIAkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0gcm9ja2NoaXBfZ2VtX2ZyZWVfb2JqZWN0LAogCS5kdW1iX2NyZWF0ZQkJPSByb2NrY2hpcF9nZW1fZHVtYl9jcmVhdGUsCiAJLnByaW1lX2hhbmRsZV90b19mZAk9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUJPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKLQkuZ2VtX3ByaW1lX2ltcG9ydAk9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAotCS5nZW1fcHJpbWVfZXhwb3J0CT0gZHJtX2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUJPSByb2NrY2hpcF9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlCT0gcm9ja2NoaXBfZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX3ZtYXAJCT0gcm9ja2NoaXBfZ2VtX3ByaW1lX3ZtYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2ZiLmMKaW5kZXggNjRjYTg3Yy4uY2EwMTIzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmIuYwpAQCAtNSwxOCArNSwxOCBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKwogI2luY2x1ZGUgPGRybS9kcm0uaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJyb2NrY2hpcF9kcm1fZHJ2LmgiCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2ZiLmgiCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2dlbS5oIgotI2luY2x1ZGUgInJvY2tjaGlwX2RybV9wc3IuaCIKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mgcm9ja2NoaXBfZHJtX2ZiX2Z1bmNzID0gewogCS5kZXN0cm95ICAgICAgID0gZHJtX2dlbV9mYl9kZXN0cm95LApAQCAtMTA1LDMxICsxMDUsOCBAQCByb2NrY2hpcF91c2VyX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIAlyZXR1cm4gRVJSX1BUUihyZXQpOwogfQogCi1zdGF0aWMgdm9pZAotcm9ja2NoaXBfYXRvbWljX2hlbHBlcl9jb21taXRfdGFpbF9ycG0oc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2xkX3N0YXRlLT5kZXY7Ci0KLQlyb2NrY2hpcF9kcm1fcHNyX2luaGliaXRfZ2V0X3N0YXRlKG9sZF9zdGF0ZSk7Ci0KLQlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhkZXYsIG9sZF9zdGF0ZSk7Ci0KLQlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzKGRldiwgb2xkX3N0YXRlKTsKLQotCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBvbGRfc3RhdGUsCi0JCQkJCURSTV9QTEFORV9DT01NSVRfQUNUSVZFX09OTFkpOwotCi0Jcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X3B1dF9zdGF0ZShvbGRfc3RhdGUpOwotCi0JZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUob2xkX3N0YXRlKTsKLQotCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MoZGV2LCBvbGRfc3RhdGUpOwotCi0JZHJtX2F0b21pY19oZWxwZXJfY2xlYW51cF9wbGFuZXMoZGV2LCBvbGRfc3RhdGUpOwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfZnVuY3Mgcm9ja2NoaXBfbW9kZV9jb25maWdfaGVscGVycyA9IHsKLQkuYXRvbWljX2NvbW1pdF90YWlsID0gcm9ja2NoaXBfYXRvbWljX2hlbHBlcl9jb21taXRfdGFpbF9ycG0sCisJLmF0b21pY19jb21taXRfdGFpbCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF90YWlsX3JwbSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIHJvY2tjaGlwX2RybV9tb2RlX2NvbmZpZ19mdW5jcyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuYwppbmRleCBiYjhhYzE4Mi4uMDJiZTZjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuYwpAQCAtNSw4ICs1LDggQEAKICAqLwogCiAjaW5jbHVkZSA8ZHJtL2RybS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJyb2NrY2hpcF9kcm1fZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9nZW0uYwppbmRleCBiYTllNzdhLi4yOTFlODliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZ2VtLmMKQEAgLTQsMTQgKzQsMTQgQEAKICAqIEF1dGhvcjpNYXJrIFlhbyA8bWFyay55YW9Acm9jay1jaGlwcy5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm0uaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV92bWFfbWFuYWdlci5oPgotCiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L2lvbW11Lmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92bWFfbWFuYWdlci5oPgorCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2Rydi5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV9nZW0uaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fcHNyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2MDQ3NDcuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9wc3IuYworKysgL2Rldi9udWxsCkBAIC0xLDI4MiArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogQ29weXJpZ2h0IChDKSBGdXpob3UgUm9ja2NoaXAgRWxlY3Ryb25pY3MgQ28uTHRkCi0gKiBBdXRob3I6IFlha2lyIFlhbmcgPHlra0Byb2NrLWNoaXBzLmNvbT4KLSAqLwotCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0KLSNpbmNsdWRlICJyb2NrY2hpcF9kcm1fZHJ2LmgiCi0jaW5jbHVkZSAicm9ja2NoaXBfZHJtX3Bzci5oIgotCi0jZGVmaW5lIFBTUl9GTFVTSF9USU1FT1VUX01TCTEwMAotCi1zdHJ1Y3QgcHNyX2RydiB7Ci0Jc3RydWN0IGxpc3RfaGVhZAlsaXN0OwotCXN0cnVjdCBkcm1fZW5jb2RlcgkqZW5jb2RlcjsKLQotCXN0cnVjdCBtdXRleAkJbG9jazsKLQlpbnQJCQlpbmhpYml0X2NvdW50OwotCWJvb2wJCQllbmFibGVkOwotCi0Jc3RydWN0IGRlbGF5ZWRfd29yawlmbHVzaF93b3JrOwotCi0JaW50ICgqc2V0KShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGJvb2wgZW5hYmxlKTsKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcHNyX2RydiAqZmluZF9wc3JfYnlfZW5jb2RlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCi17Ci0Jc3RydWN0IHJvY2tjaGlwX2RybV9wcml2YXRlICpkcm1fZHJ2ID0gZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgcHNyX2RydiAqcHNyOwotCi0JbXV0ZXhfbG9jaygmZHJtX2Rydi0+cHNyX2xpc3RfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShwc3IsICZkcm1fZHJ2LT5wc3JfbGlzdCwgbGlzdCkgewotCQlpZiAocHNyLT5lbmNvZGVyID09IGVuY29kZXIpCi0JCQlnb3RvIG91dDsKLQl9Ci0JcHNyID0gRVJSX1BUUigtRU5PREVWKTsKLQotb3V0OgotCW11dGV4X3VubG9jaygmZHJtX2Rydi0+cHNyX2xpc3RfbG9jayk7Ci0JcmV0dXJuIHBzcjsKLX0KLQotc3RhdGljIGludCBwc3Jfc2V0X3N0YXRlX2xvY2tlZChzdHJ1Y3QgcHNyX2RydiAqcHNyLCBib29sIGVuYWJsZSkKLXsKLQlpbnQgcmV0OwotCi0JaWYgKHBzci0+aW5oaWJpdF9jb3VudCA+IDApCi0JCXJldHVybiAtRUlOVkFMOwotCi0JaWYgKGVuYWJsZSA9PSBwc3ItPmVuYWJsZWQpCi0JCXJldHVybiAwOwotCi0JcmV0ID0gcHNyLT5zZXQocHNyLT5lbmNvZGVyLCBlbmFibGUpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlwc3ItPmVuYWJsZWQgPSBlbmFibGU7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIHBzcl9mbHVzaF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKLXsKLQlzdHJ1Y3QgcHNyX2RydiAqcHNyID0gY29udGFpbmVyX29mKHRvX2RlbGF5ZWRfd29yayh3b3JrKSwKLQkJCQkJICAgc3RydWN0IHBzcl9kcnYsIGZsdXNoX3dvcmspOwotCi0JbXV0ZXhfbG9jaygmcHNyLT5sb2NrKTsKLQlwc3Jfc2V0X3N0YXRlX2xvY2tlZChwc3IsIHRydWUpOwotCW11dGV4X3VubG9jaygmcHNyLT5sb2NrKTsKLX0KLQotLyoqCi0gKiByb2NrY2hpcF9kcm1fcHNyX2luaGliaXRfcHV0IC0gcmVsZWFzZSBQU1IgaW5oaWJpdCBvbiBnaXZlbiBlbmNvZGVyCi0gKiBAZW5jb2RlcjogZW5jb2RlciB0byBvYnRhaW4gdGhlIFBTUiBlbmNvZGVyCi0gKgotICogRGVjcmVtZW50cyBQU1IgaW5oaWJpdCBjb3VudCBvbiBnaXZlbiBlbmNvZGVyLiBTaG91bGQgYmUgY2FsbGVkIG9ubHkKLSAqIGZvciBhIFBTUiBpbmhpYml0IGNvdW50IGluY3JlbWVudCBkb25lIGJlZm9yZS4gSWYgUFNSIGluaGliaXQgY291bnRlcgotICogcmVhY2hlcyB6ZXJvLCBQU1IgZmx1c2ggd29yayBpcyBzY2hlZHVsZWQgdG8gbWFrZSB0aGUgaGFyZHdhcmUgZW50ZXIKLSAqIFBTUiBtb2RlIGluIFBTUl9GTFVTSF9USU1FT1VUX01TLgotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCi0gKi8KLWludCByb2NrY2hpcF9kcm1fcHNyX2luaGliaXRfcHV0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKLXsKLQlzdHJ1Y3QgcHNyX2RydiAqcHNyID0gZmluZF9wc3JfYnlfZW5jb2RlcihlbmNvZGVyKTsKLQotCWlmIChJU19FUlIocHNyKSkKLQkJcmV0dXJuIFBUUl9FUlIocHNyKTsKLQotCW11dGV4X2xvY2soJnBzci0+bG9jayk7Ci0JLS1wc3ItPmluaGliaXRfY291bnQ7Ci0JV0FSTl9PTihwc3ItPmluaGliaXRfY291bnQgPCAwKTsKLQlpZiAoIXBzci0+aW5oaWJpdF9jb3VudCkKLQkJbW9kX2RlbGF5ZWRfd29yayhzeXN0ZW1fd3EsICZwc3ItPmZsdXNoX3dvcmssCi0JCQkJIFBTUl9GTFVTSF9USU1FT1VUX01TKTsKLQltdXRleF91bmxvY2soJnBzci0+bG9jayk7Ci0KLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0wocm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X3B1dCk7Ci0KLXZvaWQgcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X2dldF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Ci0JdTMyIGVuY29kZXJfbWFzayA9IDA7Ci0JaW50IGk7Ci0KLQlmb3JfZWFjaF9vbGRfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQllbmNvZGVyX21hc2sgfD0gY3J0Y19zdGF0ZS0+ZW5jb2Rlcl9tYXNrOwotCQllbmNvZGVyX21hc2sgfD0gY3J0Yy0+c3RhdGUtPmVuY29kZXJfbWFzazsKLQl9Ci0KLQlkcm1fZm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIHN0YXRlLT5kZXYsIGVuY29kZXJfbWFzaykKLQkJcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X2dldChlbmNvZGVyKTsKLX0KLUVYUE9SVF9TWU1CT0wocm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X2dldF9zdGF0ZSk7Ci0KLXZvaWQgcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X3B1dF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Ci0JdTMyIGVuY29kZXJfbWFzayA9IDA7Ci0JaW50IGk7Ci0KLQlmb3JfZWFjaF9vbGRfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQllbmNvZGVyX21hc2sgfD0gY3J0Y19zdGF0ZS0+ZW5jb2Rlcl9tYXNrOwotCQllbmNvZGVyX21hc2sgfD0gY3J0Yy0+c3RhdGUtPmVuY29kZXJfbWFzazsKLQl9Ci0KLQlkcm1fZm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIHN0YXRlLT5kZXYsIGVuY29kZXJfbWFzaykKLQkJcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X3B1dChlbmNvZGVyKTsKLX0KLUVYUE9SVF9TWU1CT0wocm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X3B1dF9zdGF0ZSk7Ci0KLS8qKgotICogcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X2dldCAtIGFjcXVpcmUgUFNSIGluaGliaXQgb24gZ2l2ZW4gZW5jb2RlcgotICogQGVuY29kZXI6IGVuY29kZXIgdG8gb2J0YWluIHRoZSBQU1IgZW5jb2RlcgotICoKLSAqIEluY3JlbWVudHMgUFNSIGluaGliaXQgY291bnQgb24gZ2l2ZW4gZW5jb2Rlci4gVGhpcyBmdW5jdGlvbiBndWFyYW50ZWVzCi0gKiB0aGF0IGFmdGVyIGl0IHJldHVybnMgUFNSIGlzIHR1cm5lZCBvZmYgb24gZ2l2ZW4gZW5jb2RlciBhbmQgbm8gUFNSLXJlbGF0ZWQKLSAqIGhhcmR3YXJlIHN0YXRlIGNoYW5nZSBvY2N1cnMgYXQgbGVhc3QgdW50aWwgYSBtYXRjaGluZyBjYWxsIHRvCi0gKiByb2NrY2hpcF9kcm1fcHNyX2luaGliaXRfcHV0KCkgaXMgZG9uZS4KLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgotICovCi1pbnQgcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X2dldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCi17Ci0Jc3RydWN0IHBzcl9kcnYgKnBzciA9IGZpbmRfcHNyX2J5X2VuY29kZXIoZW5jb2Rlcik7Ci0KLQlpZiAoSVNfRVJSKHBzcikpCi0JCXJldHVybiBQVFJfRVJSKHBzcik7Ci0KLQltdXRleF9sb2NrKCZwc3ItPmxvY2spOwotCXBzcl9zZXRfc3RhdGVfbG9ja2VkKHBzciwgZmFsc2UpOwotCSsrcHNyLT5pbmhpYml0X2NvdW50OwotCW11dGV4X3VubG9jaygmcHNyLT5sb2NrKTsKLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJnBzci0+Zmx1c2hfd29yayk7Ci0KLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0wocm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X2dldCk7Ci0KLXN0YXRpYyB2b2lkIHJvY2tjaGlwX2RybV9kb19mbHVzaChzdHJ1Y3QgcHNyX2RydiAqcHNyKQotewotCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmcHNyLT5mbHVzaF93b3JrKTsKLQotCW11dGV4X2xvY2soJnBzci0+bG9jayk7Ci0JaWYgKCFwc3Jfc2V0X3N0YXRlX2xvY2tlZChwc3IsIGZhbHNlKSkKLQkJbW9kX2RlbGF5ZWRfd29yayhzeXN0ZW1fd3EsICZwc3ItPmZsdXNoX3dvcmssCi0JCQkJIFBTUl9GTFVTSF9USU1FT1VUX01TKTsKLQltdXRleF91bmxvY2soJnBzci0+bG9jayk7Ci19Ci0KLS8qKgotICogcm9ja2NoaXBfZHJtX3Bzcl9mbHVzaF9hbGwgLSBmb3JjZSB0byBmbHVzaCBhbGwgcmVnaXN0ZXJlZCBQU1IgZW5jb2RlcnMKLSAqIEBkZXY6IGRybSBkZXZpY2UKLSAqCi0gKiBEaXNhYmxlIHRoZSBQU1IgZnVuY3Rpb24gZm9yIGFsbCByZWdpc3RlcmVkIGVuY29kZXJzLCBhbmQgdGhlbiBlbmFibGUgdGhlCi0gKiBQU1IgZnVuY3Rpb24gYmFjayBhZnRlciBQU1JfRkxVU0hfVElNRU9VVC4gSWYgZW5jb2RlciBQU1Igc3RhdGUgaGF2ZSBiZWVuCi0gKiBjaGFuZ2VkIGR1cmluZyBmbHVzaCB0aW1lLCB0aGVuIGtlZXAgdGhlIHN0YXRlIG5vIGNoYW5nZSBhZnRlciBmbHVzaAotICogdGltZW91dC4KLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgotICovCi12b2lkIHJvY2tjaGlwX2RybV9wc3JfZmx1c2hfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHJvY2tjaGlwX2RybV9wcml2YXRlICpkcm1fZHJ2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgcHNyX2RydiAqcHNyOwotCi0JbXV0ZXhfbG9jaygmZHJtX2Rydi0+cHNyX2xpc3RfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShwc3IsICZkcm1fZHJ2LT5wc3JfbGlzdCwgbGlzdCkKLQkJcm9ja2NoaXBfZHJtX2RvX2ZsdXNoKHBzcik7Ci0JbXV0ZXhfdW5sb2NrKCZkcm1fZHJ2LT5wc3JfbGlzdF9sb2NrKTsKLX0KLUVYUE9SVF9TWU1CT0wocm9ja2NoaXBfZHJtX3Bzcl9mbHVzaF9hbGwpOwotCi0vKioKLSAqIHJvY2tjaGlwX2RybV9wc3JfcmVnaXN0ZXIgLSByZWdpc3RlciBlbmNvZGVyIHRvIHBzciBkcml2ZXIKLSAqIEBlbmNvZGVyOiBlbmNvZGVyIHRoYXQgb2J0YWluIHRoZSBQU1IgZnVuY3Rpb24KLSAqIEBwc3Jfc2V0OiBjYWxsIGJhY2sgdG8gc2V0IFBTUiBzdGF0ZQotICoKLSAqIFRoZSBmdW5jdGlvbiByZXR1cm5zIHdpdGggUFNSIGluaGliaXQgY291bnRlciBpbml0aWFsaXplZCB3aXRoIG9uZQotICogYW5kIHRoZSBjYWxsZXIgKHR5cGljYWxseSBlbmNvZGVyIGRyaXZlcikgbmVlZHMgdG8gY2FsbAotICogcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X3B1dCgpIHdoZW4gaXQgYmVjb21lcyByZWFkeSB0byBhY2NlcHQgUFNSCi0gKiBlbmFibGUgcmVxdWVzdC4KLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgotICovCi1pbnQgcm9ja2NoaXBfZHJtX3Bzcl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCi0JCQlpbnQgKCpwc3Jfc2V0KShzdHJ1Y3QgZHJtX2VuY29kZXIgKiwgYm9vbCBlbmFibGUpKQotewotCXN0cnVjdCByb2NrY2hpcF9kcm1fcHJpdmF0ZSAqZHJtX2RydjsKLQlzdHJ1Y3QgcHNyX2RydiAqcHNyOwotCi0JaWYgKCFlbmNvZGVyIHx8ICFwc3Jfc2V0KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWRybV9kcnYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOwotCi0JcHNyID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHBzcl9kcnYpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXBzcikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlJTklUX0RFTEFZRURfV09SSygmcHNyLT5mbHVzaF93b3JrLCBwc3JfZmx1c2hfaGFuZGxlcik7Ci0JbXV0ZXhfaW5pdCgmcHNyLT5sb2NrKTsKLQotCXBzci0+aW5oaWJpdF9jb3VudCA9IDE7Ci0JcHNyLT5lbmFibGVkID0gZmFsc2U7Ci0JcHNyLT5lbmNvZGVyID0gZW5jb2RlcjsKLQlwc3ItPnNldCA9IHBzcl9zZXQ7Ci0KLQltdXRleF9sb2NrKCZkcm1fZHJ2LT5wc3JfbGlzdF9sb2NrKTsKLQlsaXN0X2FkZF90YWlsKCZwc3ItPmxpc3QsICZkcm1fZHJ2LT5wc3JfbGlzdCk7Ci0JbXV0ZXhfdW5sb2NrKCZkcm1fZHJ2LT5wc3JfbGlzdF9sb2NrKTsKLQotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTChyb2NrY2hpcF9kcm1fcHNyX3JlZ2lzdGVyKTsKLQotLyoqCi0gKiByb2NrY2hpcF9kcm1fcHNyX3VucmVnaXN0ZXIgLSB1bnJlZ2lzdGVyIGVuY29kZXIgdG8gcHNyIGRyaXZlcgotICogQGVuY29kZXI6IGVuY29kZXIgdGhhdCBvYnRhaW4gdGhlIFBTUiBmdW5jdGlvbgotICogQHBzcl9zZXQ6IGNhbGwgYmFjayB0byBzZXQgUFNSIHN0YXRlCi0gKgotICogSXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGUgUFNSIGluaGliaXQgY291bnRlciBpcyAxIHdoZW4gdGhpcyBmdW5jdGlvbiBpcwotICogY2FsbGVkLCB3aGljaCBjb3JyZXNwb25kcyB0byBhIHN0YXRlIHdoZW4gcmVsYXRlZCBlbmNvZGVyIGhhcyBiZWVuCi0gKiBkaXNjb25uZWN0ZWQgZnJvbSBhbnkgQ1JUQ3MgYW5kIGl0cyBkcml2ZXIgY2FsbGVkCi0gKiByb2NrY2hpcF9kcm1fcHNyX2luaGliaXRfZ2V0KCkgdG8gc3RvcCB0aGUgUFNSIGxvZ2ljLgotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCi0gKi8KLXZvaWQgcm9ja2NoaXBfZHJtX3Bzcl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKLXsKLQlzdHJ1Y3Qgcm9ja2NoaXBfZHJtX3ByaXZhdGUgKmRybV9kcnYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBwc3JfZHJ2ICpwc3IsICpuOwotCi0JbXV0ZXhfbG9jaygmZHJtX2Rydi0+cHNyX2xpc3RfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBzciwgbiwgJmRybV9kcnYtPnBzcl9saXN0LCBsaXN0KSB7Ci0JCWlmIChwc3ItPmVuY29kZXIgPT0gZW5jb2RlcikgewotCQkJLyoKLQkJCSAqIEFueSBvdGhlciB2YWx1ZSB3b3VsZCBtZWFuIHRoYXQgdGhlIGVuY29kZXIKLQkJCSAqIGlzIHN0aWxsIGluIHVzZS4KLQkJCSAqLwotCQkJV0FSTl9PTihwc3ItPmluaGliaXRfY291bnQgIT0gMSk7Ci0KLQkJCWxpc3RfZGVsKCZwc3ItPmxpc3QpOwotCQkJa2ZyZWUocHNyKTsKLQkJfQotCX0KLQltdXRleF91bmxvY2soJmRybV9kcnYtPnBzcl9saXN0X2xvY2spOwotfQotRVhQT1JUX1NZTUJPTChyb2NrY2hpcF9kcm1fcHNyX3VucmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9wc3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fcHNyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4YTljMzkuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9wc3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KLS8qCi0gKiBDb3B5cmlnaHQgKEMpIEZ1emhvdSBSb2NrY2hpcCBFbGVjdHJvbmljcyBDby5MdGQKLSAqIEF1dGhvcjogWWFraXIgWWFuZyA8eWtrQHJvY2stY2hpcHMuY29tPgotICovCi0KLSNpZm5kZWYgX19ST0NLQ0hJUF9EUk1fUFNSX19fCi0jZGVmaW5lIF9fUk9DS0NISVBfRFJNX1BTUl9fXwotCi12b2lkIHJvY2tjaGlwX2RybV9wc3JfZmx1c2hfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi1pbnQgcm9ja2NoaXBfZHJtX3Bzcl9pbmhpYml0X3B1dChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwotaW50IHJvY2tjaGlwX2RybV9wc3JfaW5oaWJpdF9nZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKLQotdm9pZCByb2NrY2hpcF9kcm1fcHNyX2luaGliaXRfZ2V0X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Ci12b2lkIHJvY2tjaGlwX2RybV9wc3JfaW5oaWJpdF9wdXRfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKLQotaW50IHJvY2tjaGlwX2RybV9wc3JfcmVnaXN0ZXIoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAotCQkJaW50ICgqcHNyX3NldCkoc3RydWN0IGRybV9lbmNvZGVyICosIGJvb2wgZW5hYmxlKSk7Ci12b2lkIHJvY2tjaGlwX2RybV9wc3JfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwotCi0jZW5kaWYgLyogX19ST0NLQ0hJUF9EUk1fUFNSX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCmluZGV4IDA5YTc5MGMuLjYxMzQwNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwpAQCAtNCwzNyArNCwzOCBAQAogICogQXV0aG9yOk1hcmsgWWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4KICAqLwogCisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L292ZXJmbG93Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CisKICNpbmNsdWRlIDxkcm0vZHJtLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX3VhcGkuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZsaXBfd29yay5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fc2VsZl9yZWZyZXNoX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisKICNpZmRlZiBDT05GSUdfRFJNX0FOQUxPR0lYX0RQCiAjaW5jbHVkZSA8ZHJtL2JyaWRnZS9hbmFsb2dpeF9kcC5oPgogI2VuZGlmCiAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KLSNpbmNsdWRlIDxsaW51eC9vZi5oPgotI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KLSNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KLSNpbmNsdWRlIDxsaW51eC9vdmVyZmxvdy5oPgotCi0jaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2Rydi5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV9nZW0uaCIKICNpbmNsdWRlICJyb2NrY2hpcF9kcm1fZmIuaCIKLSNpbmNsdWRlICJyb2NrY2hpcF9kcm1fcHNyLmgiCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX3ZvcC5oIgogI2luY2x1ZGUgInJvY2tjaGlwX3JnYi5oIgogCkBAIC03OSw3ICs4MCw3IEBACiAJCXZvcF9nZXRfaW50cl90eXBlKHZvcCwgJnZvcC0+ZGF0YS0+aW50ci0+bmFtZSwgdHlwZSkKIAogI2RlZmluZSBWT1BfV0lOX0dFVCh2b3AsIHdpbiwgbmFtZSkgXAotCQl2b3BfcmVhZF9yZWcodm9wLCB3aW4tPm9mZnNldCwgd2luLT5waHktPm5hbWUpCisJCXZvcF9yZWFkX3JlZyh2b3AsIHdpbi0+YmFzZSwgJndpbi0+cGh5LT5uYW1lKQogCiAjZGVmaW5lIFZPUF9XSU5fSEFTX1JFRyh3aW4sIG5hbWUpIFwKIAkoISEod2luLT5waHktPm5hbWUubWFzaykpCkBAIC0xMjQsNiArMTI1LDcgQEAgc3RydWN0IHZvcCB7CiAJYm9vbCBpc19lbmFibGVkOwogCiAJc3RydWN0IGNvbXBsZXRpb24gZHNwX2hvbGRfY29tcGxldGlvbjsKKwl1bnNpZ25lZCBpbnQgd2luX2VuYWJsZWQ7CiAKIAkvKiBwcm90ZWN0ZWQgYnkgZGV2LT5ldmVudF9sb2NrICovCiAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZXZlbnQ7CkBAIC01MjgsOCArNTMwLDEwIEBAIHN0YXRpYyB2b2lkIHZvcF9jb3JlX2Nsa3NfZGlzYWJsZShzdHJ1Y3Qgdm9wICp2b3ApCiAJY2xrX2Rpc2FibGUodm9wLT5oY2xrKTsKIH0KIAotc3RhdGljIHZvaWQgdm9wX3dpbl9kaXNhYmxlKHN0cnVjdCB2b3AgKnZvcCwgY29uc3Qgc3RydWN0IHZvcF93aW5fZGF0YSAqd2luKQorc3RhdGljIHZvaWQgdm9wX3dpbl9kaXNhYmxlKHN0cnVjdCB2b3AgKnZvcCwgY29uc3Qgc3RydWN0IHZvcF93aW4gKnZvcF93aW4pCiB7CisJY29uc3Qgc3RydWN0IHZvcF93aW5fZGF0YSAqd2luID0gdm9wX3dpbi0+ZGF0YTsKKwogCWlmICh3aW4tPnBoeS0+c2NsICYmIHdpbi0+cGh5LT5zY2wtPmV4dCkgewogCQlWT1BfU0NMX1NFVF9FWFQodm9wLCB3aW4sIHlyZ2JfaG9yX3NjbF9tb2RlLCBTQ0FMRV9OT05FKTsKIAkJVk9QX1NDTF9TRVRfRVhUKHZvcCwgd2luLCB5cmdiX3Zlcl9zY2xfbW9kZSwgU0NBTEVfTk9ORSk7CkBAIC01MzgsOSArNTQyLDEwIEBAIHN0YXRpYyB2b2lkIHZvcF93aW5fZGlzYWJsZShzdHJ1Y3Qgdm9wICp2b3AsIGNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndpbikKIAl9CiAKIAlWT1BfV0lOX1NFVCh2b3AsIHdpbiwgZW5hYmxlLCAwKTsKKwl2b3AtPndpbl9lbmFibGVkICY9IH5CSVQoVk9QX1dJTl9UT19JTkRFWCh2b3Bfd2luKSk7CiB9CiAKLXN0YXRpYyBpbnQgdm9wX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCitzdGF0aWMgaW50IHZvcF9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKIAlzdHJ1Y3Qgdm9wICp2b3AgPSB0b192b3AoY3J0Yyk7CiAJaW50IHJldCwgaTsKQEAgLTU4MCwxMiArNTg1LDE3IEBAIHN0YXRpYyBpbnQgdm9wX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJICogV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBhbGwgd2luZG93cyBhcmUgZGlzYWJsZWQgYmVmb3JlIHdlCiAJICogZW5hYmxlIHRoZSBjcnRjLiBPdGhlcndpc2Ugd2UgbWlnaHQgdHJ5IHRvIHNjYW4gZnJvbSBhIGRlc3Ryb3llZAogCSAqIGJ1ZmZlciBsYXRlci4KKwkgKgorCSAqIEluIHRoZSBjYXNlIG9mIGVuYWJsZS1hZnRlci1QU1IsIHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhpcworCSAqIGNhc2Ugc2luY2UgdGhlIGJ1ZmZlciBpcyBndWFyYW50ZWVkIHRvIGJlIHZhbGlkIGFuZCBkaXNhYmxpbmcgdGhlCisJICogd2luZG93IHdpbGwgcmVzdWx0IGluIHNjcmVlbiBnbGl0Y2hlcyBvbiBQU1IgZXhpdC4KIAkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgdm9wLT5kYXRhLT53aW5fc2l6ZTsgaSsrKSB7Ci0JCXN0cnVjdCB2b3Bfd2luICp2b3Bfd2luID0gJnZvcC0+d2luW2ldOwotCQljb25zdCBzdHJ1Y3Qgdm9wX3dpbl9kYXRhICp3aW4gPSB2b3Bfd2luLT5kYXRhOworCWlmICghb2xkX3N0YXRlIHx8ICFvbGRfc3RhdGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUpIHsKKwkJZm9yIChpID0gMDsgaSA8IHZvcC0+ZGF0YS0+d2luX3NpemU7IGkrKykgeworCQkJc3RydWN0IHZvcF93aW4gKnZvcF93aW4gPSAmdm9wLT53aW5baV07CiAKLQkJdm9wX3dpbl9kaXNhYmxlKHZvcCwgd2luKTsKKwkJCXZvcF93aW5fZGlzYWJsZSh2b3AsIHZvcF93aW4pOworCQl9CiAJfQogCXNwaW5fdW5sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIApAQCAtNjE1LDYgKzYyNSwyNSBAQCBzdGF0aWMgaW50IHZvcF9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIHJvY2tjaGlwX2RybV9zZXRfd2luX2VuYWJsZWQoc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIGVuYWJsZWQpCit7CisgICAgICAgIHN0cnVjdCB2b3AgKnZvcCA9IHRvX3ZvcChjcnRjKTsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgc3Bpbl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdm9wLT5kYXRhLT53aW5fc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgc3RydWN0IHZvcF93aW4gKnZvcF93aW4gPSAmdm9wLT53aW5baV07CisgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZvcF93aW5fZGF0YSAqd2luID0gdm9wX3dpbi0+ZGF0YTsKKworICAgICAgICAgICAgICAgIFZPUF9XSU5fU0VUKHZvcCwgd2luLCBlbmFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZCAmJiAodm9wLT53aW5fZW5hYmxlZCAmIEJJVChpKSkpOworICAgICAgICB9CisgICAgICAgIHZvcF9jZmdfZG9uZSh2b3ApOworCisgICAgICAgIHNwaW5fdW5sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKK30KKwogc3RhdGljIHZvaWQgdm9wX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKQEAgLTYyMiw5ICs2NTEsMTYgQEAgc3RhdGljIHZvaWQgdm9wX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJV0FSTl9PTih2b3AtPmV2ZW50KTsKIAorCWlmIChjcnRjLT5zdGF0ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZSkKKwkJcm9ja2NoaXBfZHJtX3NldF93aW5fZW5hYmxlZChjcnRjLCBmYWxzZSk7CisKIAltdXRleF9sb2NrKCZ2b3AtPnZvcF9sb2NrKTsKKwogCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CiAKKwlpZiAoY3J0Yy0+c3RhdGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUpCisJCWdvdG8gb3V0OworCiAJLyoKIAkgKiBWb3Agc3RhbmRieSB3aWxsIHRha2UgZWZmZWN0IGF0IGVuZCBvZiBjdXJyZW50IGZyYW1lLAogCSAqIGlmIGRzcCBob2xkIHZhbGlkIGlycSBoYXBwZW4sIGl0IG1lYW5zIHN0YW5kYnkgY29tcGxldGUuCkBAIC02NTUsNiArNjkxLDggQEAgc3RhdGljIHZvaWQgdm9wX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWNsa19kaXNhYmxlKHZvcC0+ZGNsayk7CiAJdm9wX2NvcmVfY2xrc19kaXNhYmxlKHZvcCk7CiAJcG1fcnVudGltZV9wdXQodm9wLT5kZXYpOworCitvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZ2b3AtPnZvcF9sb2NrKTsKIAogCWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQgJiYgIWNydGMtPnN0YXRlLT5hY3RpdmUpIHsKQEAgLTcyNiw3ICs3NjQsNiBAQCBzdGF0aWMgdm9pZCB2b3BfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCiB7CiAJc3RydWN0IHZvcF93aW4gKnZvcF93aW4gPSB0b192b3Bfd2luKHBsYW5lKTsKLQljb25zdCBzdHJ1Y3Qgdm9wX3dpbl9kYXRhICp3aW4gPSB2b3Bfd2luLT5kYXRhOwogCXN0cnVjdCB2b3AgKnZvcCA9IHRvX3ZvcChvbGRfc3RhdGUtPmNydGMpOwogCiAJaWYgKCFvbGRfc3RhdGUtPmNydGMpCkBAIC03MzQsNyArNzcxLDcgQEAgc3RhdGljIHZvaWQgdm9wX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCiAJc3Bpbl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIAotCXZvcF93aW5fZGlzYWJsZSh2b3AsIHdpbik7CisJdm9wX3dpbl9kaXNhYmxlKHZvcCwgdm9wX3dpbik7CiAKIAlzcGluX3VubG9jaygmdm9wLT5yZWdfbG9jayk7CiB9CkBAIC04NzMsNiArOTEwLDcgQEAgc3RhdGljIHZvaWQgdm9wX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJfQogCiAJVk9QX1dJTl9TRVQodm9wLCB3aW4sIGVuYWJsZSwgMSk7CisJdm9wLT53aW5fZW5hYmxlZCB8PSBCSVQod2luX2luZGV4KTsKIAlzcGluX3VubG9jaygmdm9wLT5yZWdfbG9jayk7CiB9CiAKQEAgLTkyNCwxMiArOTYyLDEwIEBAIHN0YXRpYyB2b2lkIHZvcF9wbGFuZV9hdG9taWNfYXN5bmNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN3YXAocGxhbmUtPnN0YXRlLT5mYiwgbmV3X3N0YXRlLT5mYik7CiAKIAlpZiAodm9wLT5pc19lbmFibGVkKSB7Ci0JCXJvY2tjaGlwX2RybV9wc3JfaW5oaWJpdF9nZXRfc3RhdGUobmV3X3N0YXRlLT5zdGF0ZSk7CiAJCXZvcF9wbGFuZV9hdG9taWNfdXBkYXRlKHBsYW5lLCBwbGFuZS0+c3RhdGUpOwogCQlzcGluX2xvY2soJnZvcC0+cmVnX2xvY2spOwogCQl2b3BfY2ZnX2RvbmUodm9wKTsKIAkJc3Bpbl91bmxvY2soJnZvcC0+cmVnX2xvY2spOwotCQlyb2NrY2hpcF9kcm1fcHNyX2luaGliaXRfcHV0X3N0YXRlKG5ld19zdGF0ZS0+c3RhdGUpOwogCiAJCS8qCiAJCSAqIEEgc2Nhbm91dCBjYW4gc3RpbGwgYmUgb2NjdXJyaW5nLCBzbyB3ZSBjYW4ndCBkcm9wIHRoZQpAQCAtMTAzMywxMSArMTA2OSwxNyBAQCBzdGF0aWMgdm9pZCB2b3BfY3J0Y19hdG9taWNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpbnQgZGl0aGVyX2JwYyA9IHMtPm91dHB1dF9icGMgPyBzLT5vdXRwdXRfYnBjIDogMTA7CiAJaW50IHJldDsKIAorCWlmIChvbGRfc3RhdGUgJiYgb2xkX3N0YXRlLT5zZWxmX3JlZnJlc2hfYWN0aXZlKSB7CisJCWRybV9jcnRjX3ZibGFua19vbihjcnRjKTsKKwkJcm9ja2NoaXBfZHJtX3NldF93aW5fZW5hYmxlZChjcnRjLCB0cnVlKTsKKwkJcmV0dXJuOworCX0KKwogCW11dGV4X2xvY2soJnZvcC0+dm9wX2xvY2spOwogCiAJV0FSTl9PTih2b3AtPmV2ZW50KTsKIAotCXJldCA9IHZvcF9lbmFibGUoY3J0Yyk7CisJcmV0ID0gdm9wX2VuYWJsZShjcnRjLCBvbGRfc3RhdGUpOwogCWlmIChyZXQpIHsKIAkJbXV0ZXhfdW5sb2NrKCZ2b3AtPnZvcF9sb2NrKTsKIAkJRFJNX0RFVl9FUlJPUih2b3AtPmRldiwgIkZhaWxlZCB0byBlbmFibGUgdm9wICglZClcbiIsIHJldCk7CkBAIC0xNTE5LDYgKzE1NjEsMTIgQEAgc3RhdGljIGludCB2b3BfY3JlYXRlX2NydGMoc3RydWN0IHZvcCAqdm9wKQogCWluaXRfY29tcGxldGlvbigmdm9wLT5saW5lX2ZsYWdfY29tcGxldGlvbik7CiAJY3J0Yy0+cG9ydCA9IHBvcnQ7CiAKKwlyZXQgPSBkcm1fc2VsZl9yZWZyZXNoX2hlbHBlcl9pbml0KGNydGMpOworCWlmIChyZXQpCisJCURSTV9ERVZfREVCVUdfS01TKHZvcC0+ZGV2LAorCQkJIkZhaWxlZCB0byBpbml0ICVzIHdpdGggU1IgaGVscGVycyAlZCwgaWdub3JpbmdcbiIsCisJCQljcnRjLT5uYW1lLCByZXQpOworCiAJcmV0dXJuIDA7CiAKIGVycl9jbGVhbnVwX2NydGM6CkBAIC0xNTM2LDYgKzE1ODQsOCBAQCBzdGF0aWMgdm9pZCB2b3BfZGVzdHJveV9jcnRjKHN0cnVjdCB2b3AgKnZvcCkKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IHZvcC0+ZHJtX2RldjsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgKnRtcDsKIAorCWRybV9zZWxmX3JlZnJlc2hfaGVscGVyX2NsZWFudXAoY3J0Yyk7CisKIAlvZl9ub2RlX3B1dChjcnRjLT5wb3J0KTsKIAogCS8qCkBAIC0xNTYwLDcgKzE2MTAsNiBAQCBzdGF0aWMgdm9pZCB2b3BfZGVzdHJveV9jcnRjKHN0cnVjdCB2b3AgKnZvcCkKIAogc3RhdGljIGludCB2b3BfaW5pdGlhbChzdHJ1Y3Qgdm9wICp2b3ApCiB7Ci0JY29uc3Qgc3RydWN0IHZvcF9kYXRhICp2b3BfZGF0YSA9IHZvcC0+ZGF0YTsKIAlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqYWhiX3JzdDsKIAlpbnQgaSwgcmV0OwogCkBAIC0xNjI3LDEyICsxNjc2LDEzIEBAIHN0YXRpYyBpbnQgdm9wX2luaXRpYWwoc3RydWN0IHZvcCAqdm9wKQogCVZPUF9SRUdfU0VUKHZvcCwgbWlzYywgZ2xvYmFsX3JlZ2RvbmVfZW4sIDEpOwogCVZPUF9SRUdfU0VUKHZvcCwgY29tbW9uLCBkc3BfYmxhbmssIDApOwogCi0JZm9yIChpID0gMDsgaSA8IHZvcF9kYXRhLT53aW5fc2l6ZTsgaSsrKSB7Ci0JCWNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndpbiA9ICZ2b3BfZGF0YS0+d2luW2ldOworCWZvciAoaSA9IDA7IGkgPCB2b3AtPmRhdGEtPndpbl9zaXplOyBpKyspIHsKKwkJc3RydWN0IHZvcF93aW4gKnZvcF93aW4gPSAmdm9wLT53aW5baV07CisJCWNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndpbiA9IHZvcF93aW4tPmRhdGE7CiAJCWludCBjaGFubmVsID0gaSAqIDIgKyAxOwogCiAJCVZPUF9XSU5fU0VUKHZvcCwgd2luLCBjaGFubmVsLCAoY2hhbm5lbCArIDEpIDw8IDQgfCBjaGFubmVsKTsKLQkJdm9wX3dpbl9kaXNhYmxlKHZvcCwgd2luKTsKKwkJdm9wX3dpbl9kaXNhYmxlKHZvcCwgdm9wX3dpbik7CiAJCVZPUF9XSU5fU0VUKHZvcCwgd2luLCBnYXRlLCAxKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfbHZkcy5jCmluZGV4IDgzMDg1OGEuLjY0YWVmYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2x2ZHMuYwpAQCAtNiwyMSArNiwyMSBAQAogICogICAgICBTYW5keSBIdWFuZyA8aGpjQHJvY2stY2hpcHMuY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZHBfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgotI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotCi0jaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+CiAjaW5jbHVkZSA8bGludXgvcGluY3RybC9kZXZpbmZvLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgogI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2RwX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KIAogI2luY2x1ZGUgInJvY2tjaGlwX2RybV9kcnYuaCIKICNpbmNsdWRlICJyb2NrY2hpcF9kcm1fdm9wLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfcmdiLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfcmdiLmMKaW5kZXggY2U0ZDgyZC4uODllMGJiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3JnYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9yZ2IuYwpAQCAtNSwxNiArNSwxNSBAQAogICogICAgICBTYW5keSBIdWFuZyA8aGpjQHJvY2stY2hpcHMuY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZHBfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgotI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotCiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHBfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2Rydi5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV92b3AuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMKaW5kZXggN2I5Yzc0Ny4uZDE0OTRiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCkBAIC00LDEwICs0LDE1IEBACiAgKiBBdXRob3I6TWFyayBZYW8gPG1hcmsueWFvQHJvY2stY2hpcHMuY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIAogI2luY2x1ZGUgInJvY2tjaGlwX2RybV92b3AuaCIKICNpbmNsdWRlICJyb2NrY2hpcF92b3BfcmVnLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXJfdHJhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlcl90cmFjZS5oCmluZGV4IDE2MjZmMzkuLmQ3OTA4NjQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXJfdHJhY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXJfdHJhY2UuaApAQCAtMjgsOCArMjgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvdHJhY2Vwb2ludC5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLQogI3VuZGVmIFRSQUNFX1NZU1RFTQogI2RlZmluZSBUUkFDRV9TWVNURU0gZ3B1X3NjaGVkdWxlcgogI2RlZmluZSBUUkFDRV9JTkNMVURFX0ZJTEUgZ3B1X3NjaGVkdWxlcl90cmFjZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9lbnRpdHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfZW50aXR5LmMKaW5kZXggNjcxYzkwZi4uMWE1MTUzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9lbnRpdHkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2VudGl0eS5jCkBAIC0yMiw2ICsyMiw5IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CiAjaW5jbHVkZSA8ZHJtL2dwdV9zY2hlZHVsZXIuaD4KIAogI2luY2x1ZGUgImdwdV9zY2hlZHVsZXJfdHJhY2UuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfZmVuY2UuYwppbmRleCBkOGQyZGZmLi41NDk3NzQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9mZW5jZS5jCkBAIC0yMiw5ICsyMiwxMSBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+Ci0jaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorCiAjaW5jbHVkZSA8ZHJtL2dwdV9zY2hlZHVsZXIuaD4KIAogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpzY2hlZF9mZW5jZV9zbGFiOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYwppbmRleCBjMTA1OGVlLi45YTBlZTc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYwpAQCAtNDgsNyArNDgsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPHVhcGkvbGludXgvc2NoZWQvdHlwZXMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9ncHVfc2NoZWR1bGVyLmg+CiAjaW5jbHVkZSA8ZHJtL3Nwc2NfcXVldWUuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9mcmFtZWJ1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9mcmFtZWJ1ZmZlci5jCmluZGV4IGEwNGQwMmQuLjc0ZDU1NjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fZnJhbWVidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX2ZyYW1lYnVmZmVyLmMKQEAgLTMsNyArMywxMiBAQAogICogVGVzdCBjYXNlcyBmb3IgdGhlIGRybV9mcmFtZWJ1ZmZlciBmdW5jdGlvbnMKICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2RlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKwogI2luY2x1ZGUgIi4uL2RybV9jcnRjX2ludGVybmFsLmgiCiAKICNpbmNsdWRlICJ0ZXN0LWRybV9tb2Rlc2V0X2NvbW1vbi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2NydGMuYwppbmRleCBiNjk4OGE2Li43NWE3NTJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2NydGMuYwpAQCAtMTAsMTMgKzEwLDE0IEBACiAjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgInNobW9iX2RybV9iYWNrbGlnaHQuaCIKICNpbmNsdWRlICJzaG1vYl9kcm1fY3J0Yy5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9jcnRjLmggYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2NydGMuaAppbmRleCA5Y2E2OTIwLi4yMTcxODg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2NydGMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2NydGMuaApAQCAtMTAsMTIgKzEwLDE0IEBACiAjaWZuZGVmIF9fU0hNT0JfRFJNX0NSVENfSF9fCiAjZGVmaW5lIF9fU0hNT0JfRFJNX0NSVENfSF9fCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgorI2luY2x1ZGUgPGRybS9kcm1fY29ubmVjdG9yLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CiAKIHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlOworc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudDsKIHN0cnVjdCBzaG1vYl9kcm1fZGV2aWNlOworc3RydWN0IHNobW9iX2RybV9mb3JtYXRfaW5mbzsKIAogc3RydWN0IHNobW9iX2RybV9jcnRjIHsKIAlzdHJ1Y3QgZHJtX2NydGMgY3J0YzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2Rydi5jCmluZGV4IGNiODIxYWQuLmI4YzA5MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9kcnYuYwpAQCAtMTUsMTAgKzE1LDEyIEBACiAjaW5jbHVkZSA8bGludXgvcG0uaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgInNobW9iX2RybV9kcnYuaCIKICNpbmNsdWRlICJzaG1vYl9kcm1fa21zLmgiCkBAIC0xMjcsMTUgKzEyOSwxMiBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgc2htb2JfZHJtX2lycShpbnQgaXJxLCB2b2lkICphcmcpCiBERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhzaG1vYl9kcm1fZm9wcyk7CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBzaG1vYl9kcm1fZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQKLQkJCQl8IERSSVZFUl9QUklNRSwKKwkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VULAogCS5pcnFfaGFuZGxlcgkJPSBzaG1vYl9kcm1faXJxLAogCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBkcm1fZ2VtX2NtYV9mcmVlX29iamVjdCwKIAkuZ2VtX3ZtX29wcwkJPSAmZHJtX2dlbV9jbWFfdm1fb3BzLAogCS5wcmltZV9oYW5kbGVfdG9fZmQJPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFuZGxlCT0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9pbXBvcnQJPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKLQkuZ2VtX3ByaW1lX2V4cG9ydAk9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlCT0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcAkJPSBkcm1fZ2VtX2NtYV9wcmltZV92bWFwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fa21zLmMKaW5kZXggMmUwOGJjMi4uYzUxMTk3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2ttcy5jCkBAIC03LDcgKzcsNiBAQAogICogTGF1cmVudCBQaW5jaGFydCAobGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tKQogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fcGxhbmUuYwppbmRleCAxZDFlZTVlLi5jYmM0NjRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9wbGFuZS5jCkBAIC03LDEwICs3LDEwIEBACiAgKiBMYXVyZW50IFBpbmNoYXJ0IChsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20pCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgogCiAjaW5jbHVkZSAic2htb2JfZHJtX2Rydi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9wbGFuZS5oIGIvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9wbGFuZS5oCmluZGV4IGJhZTY3Y2MuLmU3MmIyMWE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX3BsYW5lLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9wbGFuZS5oCkBAIC0xMCw2ICsxMCw3IEBACiAjaWZuZGVmIF9fU0hNT0JfRFJNX1BMQU5FX0hfXwogI2RlZmluZSBfX1NITU9CX0RSTV9QTEFORV9IX18KIAorc3RydWN0IGRybV9wbGFuZTsKIHN0cnVjdCBzaG1vYl9kcm1fZGV2aWNlOwogCiBpbnQgc2htb2JfZHJtX3BsYW5lX2NyZWF0ZShzdHJ1Y3Qgc2htb2JfZHJtX2RldmljZSAqc2RldiwgdW5zaWduZWQgaW50IGluZGV4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fcmVncy5oIGIvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9yZWdzLmgKaW5kZXggOWViMGIzZC4uMDU4NTMzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9yZWdzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9yZWdzLmgKQEAgLTExLDYgKzExLDkgQEAKICNkZWZpbmUgX19TSE1PQl9EUk1fUkVHU19IX18KIAogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorCisjaW5jbHVkZSAic2htb2JfZHJtX2Rydi5oIgogCiAvKiBSZWdpc3RlciBkZWZpbml0aW9ucyAqLwogI2RlZmluZSBMRERDS1BBVDFSCQkweDQwMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kcnYuYwppbmRleCBiYjZhZTZkZDYuLmEzOWZjMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2Rydi5jCkBAIC0yMyw3ICsyMyw2IEBACiAKICNpbmNsdWRlICJzdGlfY3J0Yy5oIgogI2luY2x1ZGUgInN0aV9kcnYuaCIKLSNpbmNsdWRlICJzdGlfZHJ2LmgiCiAjaW5jbHVkZSAic3RpX3BsYW5lLmgiCiAKICNkZWZpbmUgRFJJVkVSX05BTUUJInN0aSIKQEAgLTE0MSw4ICsxNDAsNyBAQCBzdGF0aWMgdm9pZCBzdGlfbW9kZV9jb25maWdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoc3RpX2RyaXZlcl9mb3BzKTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHN0aV9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9NT0RFU0VUIHwKLQkgICAgRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSB8IERSSVZFUl9BVE9NSUMsCisJLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9BVE9NSUMsCiAJLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IGRybV9nZW1fY21hX2ZyZWVfb2JqZWN0LAogCS5nZW1fdm1fb3BzID0gJmRybV9nZW1fY21hX3ZtX29wcywKIAkuZHVtYl9jcmVhdGUgPSBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSwKQEAgLTE1Myw4ICsxNTEsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgc3RpX2RyaXZlciA9IHsKIAogCS5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFuZGxlID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKLQkuZ2VtX3ByaW1lX2ltcG9ydCA9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcCA9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jCmluZGV4IDllNmQ1ZDguLmU1NTg3MDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jCkBAIC0yMjEsOCArMjIxLDcgQEAgc3RhdGljIHZvaWQgc3RpX2R2b19kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCiAKIAl3cml0ZWwoMHgwMDAwMDAwMCwgZHZvLT5yZWdzICsgRFZPX0RPRl9DRkcpOwogCi0JaWYgKGR2by0+cGFuZWwpCi0JCWR2by0+cGFuZWwtPmZ1bmNzLT5kaXNhYmxlKGR2by0+cGFuZWwpOworCWRybV9wYW5lbF9kaXNhYmxlKGR2by0+cGFuZWwpOwogCiAJLyogRGlzYWJsZS91bnByZXBhcmUgZHZvIGNsb2NrICovCiAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGR2by0+Y2xrX3BpeCk7CkBAIC0yNjIsOCArMjYxLDcgQEAgc3RhdGljIHZvaWQgc3RpX2R2b19wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCiAJaWYgKGNsa19wcmVwYXJlX2VuYWJsZShkdm8tPmNsaykpCiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIHByZXBhcmUvZW5hYmxlIGR2byBjbGtcbiIpOwogCi0JaWYgKGR2by0+cGFuZWwpCi0JCWR2by0+cGFuZWwtPmZ1bmNzLT5lbmFibGUoZHZvLT5wYW5lbCk7CisJZHJtX3BhbmVsX2VuYWJsZShkdm8tPnBhbmVsKTsKIAogCS8qIFNldCBMVVQgKi8KIAl3cml0ZWwoY29uZmlnLT5sb3dieXRlLCAgZHZvLT5yZWdzICsgRFZPX0xVVF9QUk9HX0xPVyk7CkBAIC0zNDAsNyArMzM4LDcgQEAgc3RhdGljIGludCBzdGlfZHZvX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3Qgc3RpX2R2byAqZHZvID0gZHZvX2Nvbm5lY3Rvci0+ZHZvOwogCiAJaWYgKGR2by0+cGFuZWwpCi0JCXJldHVybiBkdm8tPnBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKGR2by0+cGFuZWwpOworCQlyZXR1cm4gZHJtX3BhbmVsX2dldF9tb2Rlcyhkdm8tPnBhbmVsKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRtaS5jCmluZGV4IGYwM2Q2MTcuLjk4NjJjMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMKQEAgLTg0OSwxMCArODQ5LDEzIEBAIHN0YXRpYyBpbnQgaGRtaV9hdWRpb19jb25maWd1cmUoc3RydWN0IHN0aV9oZG1pICpoZG1pKQogCXN3aXRjaCAoaW5mby0+Y2hhbm5lbHMpIHsKIAljYXNlIDg6CiAJCWF1ZGlvX2NmZyB8PSBIRE1JX0FVRF9DRkdfQ0g3OF9WQUxJRDsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSA2OgogCQlhdWRpb19jZmcgfD0gSERNSV9BVURfQ0ZHX0NINTZfVkFMSUQ7CisJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgNDoKIAkJYXVkaW9fY2ZnIHw9IEhETUlfQVVEX0NGR19DSDM0X1ZBTElEIHwgSERNSV9BVURfQ0ZHXzhDSDsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSAyOgogCQlhdWRpb19jZmcgfD0gSERNSV9BVURfQ0ZHX0NIMTJfVkFMSUQ7CiAJCWJyZWFrOwpAQCAtMTI4NCw4ICsxMjg3LDEwIEBAIHN0YXRpYyBpbnQgc3RpX2hkbWlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKIAogCWRybV9jb25uZWN0b3ItPnBvbGxlZCA9IERSTV9DT05ORUNUT1JfUE9MTF9IUEQ7CiAKLQlkcm1fY29ubmVjdG9yX2luaXQoZHJtX2RldiwgZHJtX2Nvbm5lY3RvciwKLQkJCSZzdGlfaGRtaV9jb25uZWN0b3JfZnVuY3MsIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSk7CisJZHJtX2Nvbm5lY3Rvcl9pbml0X3dpdGhfZGRjKGRybV9kZXYsIGRybV9jb25uZWN0b3IsCisJCQkJICAgICZzdGlfaGRtaV9jb25uZWN0b3JfZnVuY3MsCisJCQkJICAgIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSwKKwkJCQkgICAgaGRtaS0+ZGRjX2FkYXB0KTsKIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoZHJtX2Nvbm5lY3RvciwKIAkJCSZzdGlfaGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfdHZvdXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX3R2b3V0LmMKaW5kZXggZTFiM2M4Yy4uYWJhNzljMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfdHZvdXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV90dm91dC5jCkBAIC02NjksMTAgKzY2OSw5IEBAIHN0aV90dm91dF9jcmVhdGVfZHZvX2VuY29kZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWVuY29kZXItPnR2b3V0ID0gdHZvdXQ7CiAKLQlkcm1fZW5jb2RlciA9IChzdHJ1Y3QgZHJtX2VuY29kZXIgKillbmNvZGVyOworCWRybV9lbmNvZGVyID0gJmVuY29kZXItPmVuY29kZXI7CiAKIAlkcm1fZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSBFTkNPREVSX0NSVENfTUFTSzsKLQlkcm1fZW5jb2Rlci0+cG9zc2libGVfY2xvbmVzID0gMSA8PCAwOwogCiAJZHJtX2VuY29kZXJfaW5pdChkZXYsIGRybV9lbmNvZGVyLAogCQkJICZzdGlfdHZvdXRfZW5jb2Rlcl9mdW5jcywgRFJNX01PREVfRU5DT0RFUl9MVkRTLApAQCAtNzIyLDEwICs3MjEsOSBAQCBzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICpzdGlfdHZvdXRfY3JlYXRlX2hkYV9lbmNvZGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAllbmNvZGVyLT50dm91dCA9IHR2b3V0OwogCi0JZHJtX2VuY29kZXIgPSAoc3RydWN0IGRybV9lbmNvZGVyICopIGVuY29kZXI7CisJZHJtX2VuY29kZXIgPSAmZW5jb2Rlci0+ZW5jb2RlcjsKIAogCWRybV9lbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyA9IEVOQ09ERVJfQ1JUQ19NQVNLOwotCWRybV9lbmNvZGVyLT5wb3NzaWJsZV9jbG9uZXMgPSAxIDw8IDA7CiAKIAlkcm1fZW5jb2Rlcl9pbml0KGRldiwgZHJtX2VuY29kZXIsCiAJCQkmc3RpX3R2b3V0X2VuY29kZXJfZnVuY3MsIERSTV9NT0RFX0VOQ09ERVJfREFDLCBOVUxMKTsKQEAgLTc3MSwxMCArNzY5LDkgQEAgc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqc3RpX3R2b3V0X2NyZWF0ZV9oZG1pX2VuY29kZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWVuY29kZXItPnR2b3V0ID0gdHZvdXQ7CiAKLQlkcm1fZW5jb2RlciA9IChzdHJ1Y3QgZHJtX2VuY29kZXIgKikgZW5jb2RlcjsKKwlkcm1fZW5jb2RlciA9ICZlbmNvZGVyLT5lbmNvZGVyOwogCiAJZHJtX2VuY29kZXItPnBvc3NpYmxlX2NydGNzID0gRU5DT0RFUl9DUlRDX01BU0s7Ci0JZHJtX2VuY29kZXItPnBvc3NpYmxlX2Nsb25lcyA9IDEgPDwgMTsKIAogCWRybV9lbmNvZGVyX2luaXQoZGV2LCBkcm1fZW5jb2RlciwKIAkJCSZzdGlfdHZvdXRfZW5jb2Rlcl9mdW5jcywgRFJNX01PREVfRU5DT0RFUl9UTURTLCBOVUxMKTsKQEAgLTc5MCw2ICs3ODcsMTMgQEAgc3RhdGljIHZvaWQgc3RpX3R2b3V0X2NyZWF0ZV9lbmNvZGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXR2b3V0LT5oZG1pID0gc3RpX3R2b3V0X2NyZWF0ZV9oZG1pX2VuY29kZXIoZGV2LCB0dm91dCk7CiAJdHZvdXQtPmhkYSA9IHN0aV90dm91dF9jcmVhdGVfaGRhX2VuY29kZXIoZGV2LCB0dm91dCk7CiAJdHZvdXQtPmR2byA9IHN0aV90dm91dF9jcmVhdGVfZHZvX2VuY29kZXIoZGV2LCB0dm91dCk7CisKKwl0dm91dC0+aGRtaS0+cG9zc2libGVfY2xvbmVzID0gZHJtX2VuY29kZXJfbWFzayh0dm91dC0+aGRtaSkgfAorCQlkcm1fZW5jb2Rlcl9tYXNrKHR2b3V0LT5oZGEpIHwgZHJtX2VuY29kZXJfbWFzayh0dm91dC0+ZHZvKTsKKwl0dm91dC0+aGRhLT5wb3NzaWJsZV9jbG9uZXMgPSBkcm1fZW5jb2Rlcl9tYXNrKHR2b3V0LT5oZG1pKSB8CisJCWRybV9lbmNvZGVyX21hc2sodHZvdXQtPmhkYSkgfCBkcm1fZW5jb2Rlcl9tYXNrKHR2b3V0LT5kdm8pOworCXR2b3V0LT5kdm8tPnBvc3NpYmxlX2Nsb25lcyA9IGRybV9lbmNvZGVyX21hc2sodHZvdXQtPmhkbWkpIHwKKwkJZHJtX2VuY29kZXJfbWFzayh0dm91dC0+aGRhKSB8IGRybV9lbmNvZGVyX21hc2sodHZvdXQtPmR2byk7CiB9CiAKIHN0YXRpYyB2b2lkIHN0aV90dm91dF9kZXN0cm95X2VuY29kZXJzKHN0cnVjdCBzdGlfdHZvdXQgKnR2b3V0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0bS9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdG0vZHJ2LmMKaW5kZXggOWRlZTRlNC4uNWE5ZjlhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0bS9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RtL2Rydi5jCkBAIC01NCw4ICs1NCw3IEBAIHN0YXRpYyBpbnQgc3RtX2dlbV9jbWFfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAogREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoZHJ2X2RyaXZlcl9mb3BzKTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRydl9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSB8Ci0JCQkgICBEUklWRVJfQVRPTUlDLAorCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfQVRPTUlDLAogCS5uYW1lID0gInN0bSIsCiAJLmRlc2MgPSAiU1RNaWNyb2VsZWN0cm9uaWNzIFNvQyBEUk0iLAogCS5kYXRlID0gIjIwMTcwMzMwIiwKQEAgLTY4LDggKzY3LDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRydl9kcml2ZXIgPSB7CiAJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAogCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBkcm1fZ2VtX2NtYV9mcmVlX29iamVjdCwKIAkuZ2VtX3ZtX29wcyA9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKLQkuZ2VtX3ByaW1lX2ltcG9ydCA9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcCA9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RtL2R3X21pcGlfZHNpLXN0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3N0bS9kd19taXBpX2RzaS1zdG0uYwppbmRleCAwYWIzMmZlLi5hMDNhNjQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RtL2R3X21pcGlfZHNpLXN0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdG0vZHdfbWlwaV9kc2ktc3RtLmMKQEAgLTgsMTMgKzgsMTcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9sbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9taXBpX2RzaS5oPgotI2luY2x1ZGUgPGRybS9icmlkZ2UvZHdfbWlwaV9kc2kuaD4KKwogI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgogCisjaW5jbHVkZSA8ZHJtL2JyaWRnZS9kd19taXBpX2RzaS5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CisKICNkZWZpbmUgSFdWRVJfMTMwCQkJMHgzMTMzMzAwMAkvKiBJUCB2ZXJzaW9uIDEuMzAgKi8KICNkZWZpbmUgSFdWRVJfMTMxCQkJMHgzMTMzMzEwMAkvKiBJUCB2ZXJzaW9uIDEuMzEgKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0bS9sdGRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuYwppbmRleCAyZmU2YzRhLi4zYWI0ZmJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CkBAIC05MjIsNiArOTIzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgbHRkY19wbGFuZV9mdW5jcyA9IHsKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBsdGRjX3BsYW5lX2hlbHBlcl9mdW5jcyA9IHsKKwkucHJlcGFyZV9mYiA9IGRybV9nZW1fZmJfcHJlcGFyZV9mYiwKIAkuYXRvbWljX2NoZWNrID0gbHRkY19wbGFuZV9hdG9taWNfY2hlY2ssCiAJLmF0b21pY191cGRhdGUgPSBsdGRjX3BsYW5lX2F0b21pY191cGRhdGUsCiAJLmF0b21pY19kaXNhYmxlID0gbHRkY19wbGFuZV9hdG9taWNfZGlzYWJsZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9iYWNrZW5kLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfYmFja2VuZC5jCmluZGV4IDc4ZDhjM2EuLjRlMjlmNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9iYWNrZW5kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2JhY2tlbmQuYwpAQCAtNiwyMSArNiwyMyBAQAogICogTWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBmcmVlLWVsZWN0cm9ucy5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogCi0jaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+Ci0jaW5jbHVkZSA8bGludXgvbGlzdC5oPgotI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KLQogI2luY2x1ZGUgInN1bjRpX2JhY2tlbmQuaCIKICNpbmNsdWRlICJzdW40aV9kcnYuaCIKICNpbmNsdWRlICJzdW40aV9mcm9udGVuZC5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9jcnRjLmMKaW5kZXggOWQ4NTA0Zi4uM2ExNTM2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfY3J0Yy5jCkBAIC02LDEyICs2LDYgQEAKICAqIE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAZnJlZS1lbGVjdHJvbnMuY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgotI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotCiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgpAQCAtMjEsNiArMTUsMTMgQEAKIAogI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisKICNpbmNsdWRlICJzdW40aV9iYWNrZW5kLmgiCiAjaW5jbHVkZSAic3VuNGlfY3J0Yy5oIgogI2luY2x1ZGUgInN1bjRpX2Rydi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2Rydi5jCmluZGV4IDFhMWI1MmUuLmE1NzU3YjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfZHJ2LmMKQEAgLTgsMTYgKzgsMTkgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L2tmaWZvLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KICNpbmNsdWRlIDxsaW51eC9vZl9yZXNlcnZlZF9tZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAic3VuNGlfZHJ2LmgiCiAjaW5jbHVkZSAic3VuNGlfZnJvbnRlbmQuaCIKQEAgLTM4LDcgKzQxLDcgQEAgc3RhdGljIGludCBkcm1fc3VuNGlfZ2VtX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoc3VuNGlfZHJ2X2ZvcHMpOwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgc3VuNGlfZHJ2X2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX1BSSU1FIHwgRFJJVkVSX0FUT01JQywKKwkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQywKIAogCS8qIEdlbmVyaWMgT3BlcmF0aW9ucyAqLwogCS5mb3BzCQkJPSAmc3VuNGlfZHJ2X2ZvcHMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9mcmFtZWJ1ZmZlci5jCmluZGV4IDM1YzA0MDcuLjE1NjhmNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9mcmFtZWJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9mcmFtZWJ1ZmZlci5jCkBAIC05LDcgKzksNiBAQAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KIAogI2luY2x1ZGUgInN1bjRpX2Rydi5oIgogI2luY2x1ZGUgInN1bjRpX2ZyYW1lYnVmZmVyLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfZnJvbnRlbmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9mcm9udGVuZC5jCmluZGV4IDM0NmM4MDcuLmVjMmEwMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9mcm9udGVuZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9mcm9udGVuZC5jCkBAIC0zLDkgKzMsNiBAQAogICogQ29weXJpZ2h0IChDKSAyMDE3IEZyZWUgRWxlY3Ryb25zCiAgKiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGZyZWUtZWxlY3Ryb25zLmNvbT4KICAqLwotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CkBAIC0xNiw2ICsxMywxMyBAQAogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgogI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mcmFtZWJ1ZmZlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lLmg+CisKICNpbmNsdWRlICJzdW40aV9kcnYuaCIKICNpbmNsdWRlICJzdW40aV9mcm9udGVuZC5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfaGRtaV9lbmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9oZG1pX2VuYy5jCmluZGV4IDljM2Y5OTMuLmViODA3MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9oZG1pX2VuYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9oZG1pX2VuYy5jCkBAIC01LDIzICs1LDI0IEBACiAgKiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGZyZWUtZWxlY3Ryb25zLmNvbT4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgotI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+Ci0KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisKICNpbmNsdWRlICJzdW40aV9iYWNrZW5kLmgiCiAjaW5jbHVkZSAic3VuNGlfY3J0Yy5oIgogI2luY2x1ZGUgInN1bjRpX2Rydi5oIgpAQCAtNjM5LDkgKzY0MCwxMCBAQCBzdGF0aWMgaW50IHN1bjRpX2hkbWlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIAogCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmaGRtaS0+Y29ubmVjdG9yLAogCQkJCSAmc3VuNGlfaGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKLQlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAmaGRtaS0+Y29ubmVjdG9yLAotCQkJCSAmc3VuNGlfaGRtaV9jb25uZWN0b3JfZnVuY3MsCi0JCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSk7CisJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9pbml0X3dpdGhfZGRjKGRybSwgJmhkbWktPmNvbm5lY3RvciwKKwkJCQkJICAmc3VuNGlfaGRtaV9jb25uZWN0b3JfZnVuY3MsCisJCQkJCSAgRFJNX01PREVfQ09OTkVDVE9SX0hETUlBLAorCQkJCQkgIGhkbWktPmRkY19pMmMpOwogCWlmIChyZXQpIHsKIAkJZGV2X2VycihkZXYsCiAJCQkiQ291bGRuJ3QgaW5pdGlhbGlzZSB0aGUgSERNSSBjb25uZWN0b3JcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2xheWVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbGF5ZXIuYwppbmRleCBlNzJkZDRkLi5jMDRmNGJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbGF5ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbGF5ZXIuYwpAQCAtNyw5ICs3LDggQEAKICAqLwogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJzdW40aV9iYWNrZW5kLmgiCiAjaW5jbHVkZSAic3VuNGlfZnJvbnRlbmQuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbHZkcy5jCmluZGV4IDNhM2JhOTkuLjdmYmY0MjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sdmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2x2ZHMuYwpAQCAtNiwxMCArNiwxMCBAQAogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJzdW40aV9jcnRjLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfcmdiLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfcmdiLmMKaW5kZXggYTkwMWVjNi4uYWFjNTY5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9yZ2IuYwpAQCAtOCwxMCArOCwxMCBAQAogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJzdW40aV9jcnRjLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfdGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3Rjb24uYwppbmRleCBkZjBjYzhmLi4wNGM3MjFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfdGNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV90Y29uLmMKQEAgLTYsNyArNiwxNSBAQAogICogTWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBmcmVlLWVsZWN0cm9ucy5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgpAQCAtMTQsMTggKzIyLDEyIEBACiAjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgPHVhcGkvZHJtL2RybV9tb2RlLmg+CiAKLSNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KLQogI2luY2x1ZGUgInN1bjRpX2NydGMuaCIKICNpbmNsdWRlICJzdW40aV9kb3RjbG9jay5oIgogI2luY2x1ZGUgInN1bjRpX2Rydi5oIgpAQCAtNDc5LDcgKzQ4MSw3IEBAIHN0YXRpYyB2b2lkIHN1bjRpX3Rjb24wX21vZGVfc2V0X3JnYihzdHJ1Y3Qgc3VuNGlfdGNvbiAqdGNvbiwKIAkJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQogewogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBzdW40aV90Y29uX2dldF9jb25uZWN0b3IoZW5jb2Rlcik7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X2luZm8gZGlzcGxheV9pbmZvID0gY29ubmVjdG9yLT5kaXNwbGF5X2luZm87CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87CiAJdW5zaWduZWQgaW50IGJwLCBoc3luYywgdnN5bmM7CiAJdTggY2xrX2RlbGF5OwogCXUzMiB2YWwgPSAwOwpAQCAtNTQwLDcgKzU0Miw3IEBAIHN0YXRpYyB2b2lkIHN1bjRpX3Rjb24wX21vZGVfc2V0X3JnYihzdHJ1Y3Qgc3VuNGlfdGNvbiAqdGNvbiwKIAlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQykKIAkJdmFsIHw9IFNVTjRJX1RDT04wX0lPX1BPTF9WU1lOQ19QT1NJVElWRTsKIAotCWlmIChkaXNwbGF5X2luZm8uYnVzX2ZsYWdzICYgRFJNX0JVU19GTEFHX0RFX0xPVykKKwlpZiAoaW5mby0+YnVzX2ZsYWdzICYgRFJNX0JVU19GTEFHX0RFX0xPVykKIAkJdmFsIHw9IFNVTjRJX1RDT04wX0lPX1BPTF9ERV9ORUdBVElWRTsKIAogCS8qCkBAIC01NTgsMTAgKzU2MCwxMCBAQCBzdGF0aWMgdm9pZCBzdW40aV90Y29uMF9tb2RlX3NldF9yZ2Ioc3RydWN0IHN1bjRpX3Rjb24gKnRjb24sCiAJICogRm9sbG93aW5nIGNvZGUgaXMgYSB3YXkgdG8gYXZvaWQgcXVpcmtzIGFsbCBhcm91bmQgVENPTgogCSAqIGFuZCBET1RDTE9DSyBkcml2ZXJzLgogCSAqLwotCWlmIChkaXNwbGF5X2luZm8uYnVzX2ZsYWdzICYgRFJNX0JVU19GTEFHX1BJWERBVEFfRFJJVkVfUE9TRURHRSkKKwlpZiAoaW5mby0+YnVzX2ZsYWdzICYgRFJNX0JVU19GTEFHX1BJWERBVEFfRFJJVkVfUE9TRURHRSkKIAkJY2xrX3NldF9waGFzZSh0Y29uLT5kY2xrLCAyNDApOwogCi0JaWYgKGRpc3BsYXlfaW5mby5idXNfZmxhZ3MgJiBEUk1fQlVTX0ZMQUdfUElYREFUQV9EUklWRV9ORUdFREdFKQorCWlmIChpbmZvLT5idXNfZmxhZ3MgJiBEUk1fQlVTX0ZMQUdfUElYREFUQV9EUklWRV9ORUdFREdFKQogCQljbGtfc2V0X3BoYXNlKHRjb24tPmRjbGssIDApOwogCiAJcmVnbWFwX3VwZGF0ZV9iaXRzKHRjb24tPnJlZ3MsIFNVTjRJX1RDT04wX0lPX1BPTF9SRUcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfdHYuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV90di5jCmluZGV4IGY5OTgxNTMuLjM5YzE1MjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV90di5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV90di5jCkBAIC04LDE0ICs4LDE2IEBACiAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KIAogI2luY2x1ZGUgInN1bjRpX2NydGMuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW42aV9taXBpX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmMKaW5kZXggYjg4OWFkMy4uMTYzNjM0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmMKQEAgLTksMTkgKzksMjAgQEAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9jcmMtY2NpdHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+CisjaW5jbHVkZSA8bGludXgvcGh5L3BoeS1taXBpLWRwaHkuaD4KKyNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgogI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogCi0jaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPgotI2luY2x1ZGUgPGxpbnV4L3BoeS9waHktbWlwaS1kcGh5Lmg+Ci0KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJzdW40aV9jcnRjLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfY3NjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfY3NjLmMKaW5kZXggYjhjMDU5Zi4uNzgxOTU1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX2NzYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV9jc2MuYwpAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgSmVybmVqIFNrcmFiZWMgPGplcm5lai5za3JhYmVjQHNpb2wubmV0PgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIAogI2luY2x1ZGUgInN1bjhpX2NzYy5oIgogI2luY2x1ZGUgInN1bjhpX21peGVyLmgiCkBAIC0xOCwxNiArMTgsNTkgQEAgc3RhdGljIGNvbnN0IHUzMiBjY3NjX2Jhc2VbMl1bMl0gPSB7CiAgKiBGaXJzdCB0cmVlIHZhbHVlcyBpbiBlYWNoIGxpbmUgYXJlIG11bHRpcGxpY2F0aW9uIGZhY3RvciBhbmQgbGFzdAogICogdmFsdWUgaXMgY29uc3RhbnQsIHdoaWNoIGlzIGFkZGVkIGF0IHRoZSBlbmQuCiAgKi8KLXN0YXRpYyBjb25zdCB1MzIgeXV2MnJnYltdID0gewotCTB4MDAwMDA0QTgsIDB4MDAwMDAwMDAsIDB4MDAwMDA2NjIsIDB4RkZGQzg0NUEsCi0JMHgwMDAwMDRBOCwgMHhGRkZGRkU2RiwgMHhGRkZGRkNCRiwgMHgwMDAyMURGNCwKLQkweDAwMDAwNEE4LCAweDAwMDAwODEzLCAweDAwMDAwMDAwLCAweEZGRkJBQzRBLAorCitzdGF0aWMgY29uc3QgdTMyIHl1djJyZ2JbMl1bMl1bMTJdID0geworCVtEUk1fQ09MT1JfWUNCQ1JfTElNSVRFRF9SQU5HRV0gPSB7CisJCVtEUk1fQ09MT1JfWUNCQ1JfQlQ2MDFdID0geworCQkJMHgwMDAwMDRBOCwgMHgwMDAwMDAwMCwgMHgwMDAwMDY2MiwgMHhGRkZDODQ1MSwKKwkJCTB4MDAwMDA0QTgsIDB4RkZGRkZFNkYsIDB4RkZGRkZDQzAsIDB4MDAwMjFFNEQsCisJCQkweDAwMDAwNEE4LCAweDAwMDAwODExLCAweDAwMDAwMDAwLCAweEZGRkJBQ0E5LAorCQl9LAorCQlbRFJNX0NPTE9SX1lDQkNSX0JUNzA5XSA9IHsKKwkJCTB4MDAwMDA0QTgsIDB4MDAwMDAwMDAsIDB4MDAwMDA3MkIsIDB4RkZGQzFGOTksCisJCQkweDAwMDAwNEE4LCAweEZGRkZGRjI2LCAweEZGRkZGRERGLCAweDAwMDEzMzgzLAorCQkJMHgwMDAwMDRBOCwgMHgwMDAwMDg3MywgMHgwMDAwMDAwMCwgMHhGRkZCN0JFRiwKKwkJfQorCX0sCisJW0RSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFXSA9IHsKKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDYwMV0gPSB7CisJCQkweDAwMDAwNDAwLCAweDAwMDAwMDAwLCAweDAwMDAwNTlCLCAweEZGRkQzMjJFLAorCQkJMHgwMDAwMDQwMCwgMHhGRkZGRkVBMCwgMHhGRkZGRkQyNSwgMHgwMDAyMURENSwKKwkJCTB4MDAwMDA0MDAsIDB4MDAwMDA3MTYsIDB4MDAwMDAwMDAsIDB4RkZGQzc0QkQsCisJCX0sCisJCVtEUk1fQ09MT1JfWUNCQ1JfQlQ3MDldID0geworCQkJMHgwMDAwMDQwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDY0QywgMHhGRkZDRDlCNCwKKwkJCTB4MDAwMDA0MDAsIDB4RkZGRkZGNDEsIDB4RkZGRkZFMjEsIDB4MDAwMTRGOTYsCisJCQkweDAwMDAwNDAwLCAweDAwMDAwNzZDLCAweDAwMDAwMDAwLCAweEZGRkM0OUVGLAorCQl9CisJfSwKIH07CiAKLXN0YXRpYyBjb25zdCB1MzIgeXZ1MnJnYltdID0gewotCTB4MDAwMDA0QTgsIDB4MDAwMDA2NjIsIDB4MDAwMDAwMDAsIDB4RkZGQzg0NUEsCi0JMHgwMDAwMDRBOCwgMHhGRkZGRkNCRiwgMHhGRkZGRkU2RiwgMHgwMDAyMURGNCwKLQkweDAwMDAwNEE4LCAweDAwMDAwMDAwLCAweDAwMDAwODEzLCAweEZGRkJBQzRBLAorc3RhdGljIGNvbnN0IHUzMiB5dnUycmdiWzJdWzJdWzEyXSA9IHsKKwlbRFJNX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0VdID0geworCQlbRFJNX0NPTE9SX1lDQkNSX0JUNjAxXSA9IHsKKwkJCTB4MDAwMDA0QTgsIDB4MDAwMDA2NjIsIDB4MDAwMDAwMDAsIDB4RkZGQzg0NTEsCisJCQkweDAwMDAwNEE4LCAweEZGRkZGQ0MwLCAweEZGRkZGRTZGLCAweDAwMDIxRTRELAorCQkJMHgwMDAwMDRBOCwgMHgwMDAwMDAwMCwgMHgwMDAwMDgxMSwgMHhGRkZCQUNBOSwKKwkJfSwKKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDcwOV0gPSB7CisJCQkweDAwMDAwNEE4LCAweDAwMDAwNzJCLCAweDAwMDAwMDAwLCAweEZGRkMxRjk5LAorCQkJMHgwMDAwMDRBOCwgMHhGRkZGRkRERiwgMHhGRkZGRkYyNiwgMHgwMDAxMzM4MywKKwkJCTB4MDAwMDA0QTgsIDB4MDAwMDAwMDAsIDB4MDAwMDA4NzMsIDB4RkZGQjdCRUYsCisJCX0KKwl9LAorCVtEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRV0gPSB7CisJCVtEUk1fQ09MT1JfWUNCQ1JfQlQ2MDFdID0geworCQkJMHgwMDAwMDQwMCwgMHgwMDAwMDU5QiwgMHgwMDAwMDAwMCwgMHhGRkZEMzIyRSwKKwkJCTB4MDAwMDA0MDAsIDB4RkZGRkZEMjUsIDB4RkZGRkZFQTAsIDB4MDAwMjFERDUsCisJCQkweDAwMDAwNDAwLCAweDAwMDAwMDAwLCAweDAwMDAwNzE2LCAweEZGRkM3NEJELAorCQl9LAorCQlbRFJNX0NPTE9SX1lDQkNSX0JUNzA5XSA9IHsKKwkJCTB4MDAwMDA0MDAsIDB4MDAwMDA2NEMsIDB4MDAwMDAwMDAsIDB4RkZGQ0Q5QjQsCisJCQkweDAwMDAwNDAwLCAweEZGRkZGRTIxLCAweEZGRkZGRjQxLCAweDAwMDE0Rjk2LAorCQkJMHgwMDAwMDQwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDc2QywgMHhGRkZDNDlFRiwKKwkJfQorCX0sCiB9OwogCiAvKgpAQCAtNTMsNTcgKzk2LDk4IEBAIHN0YXRpYyBjb25zdCB1MzIgeXZ1MnJnYltdID0gewogICogYzIwIGMyMSBjMjIgW2QyIGNvbnN0Ml0KICAqLwogCi1zdGF0aWMgY29uc3QgdTMyIHl1djJyZ2JfZGUzW10gPSB7Ci0JMHgwMDAyNTQyYSwgMHgwMDAwMDAwMCwgMHgwMDAzMzEyYSwgMHhmZmMwMDAwMCwKLQkweDAwMDI1NDJhLCAweGZmZmYzNzZiLCAweGZmZmU1ZmMzLCAweGZlMDAwMDAwLAotCTB4MDAwMjU0MmEsIDB4MDAwNDA4ZDMsIDB4MDAwMDAwMDAsIDB4ZmUwMDAwMDAsCitzdGF0aWMgY29uc3QgdTMyIHl1djJyZ2JfZGUzWzJdWzJdWzEyXSA9IHsKKwlbRFJNX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0VdID0geworCQlbRFJNX0NPTE9SX1lDQkNSX0JUNjAxXSA9IHsKKwkJCTB4MDAwMjU0MkEsIDB4MDAwMDAwMDAsIDB4MDAwMzMxMkEsIDB4RkZDMDAwMDAsCisJCQkweDAwMDI1NDJBLCAweEZGRkYzNzZCLCAweEZGRkU1RkMzLCAweEZFMDAwMDAwLAorCQkJMHgwMDAyNTQyQSwgMHgwMDA0MDhEMiwgMHgwMDAwMDAwMCwgMHhGRTAwMDAwMCwKKwkJfSwKKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDcwOV0gPSB7CisJCQkweDAwMDI1NDJBLCAweDAwMDAwMDAwLCAweDAwMDM5NUUyLCAweEZGQzAwMDAwLAorCQkJMHgwMDAyNTQyQSwgMHhGRkZGOTJEMiwgMHhGRkZFRUYyNywgMHhGRTAwMDAwMCwKKwkJCTB4MDAwMjU0MkEsIDB4MDAwNDM5OEMsIDB4MDAwMDAwMDAsIDB4RkUwMDAwMDAsCisJCX0KKwl9LAorCVtEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRV0gPSB7CisJCVtEUk1fQ09MT1JfWUNCQ1JfQlQ2MDFdID0geworCQkJMHgwMDAyMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAyQ0REMiwgMHgwMDAwMDAwMCwKKwkJCTB4MDAwMjAwMDAsIDB4RkZGRjRGQ0UsIDB4RkZGRTkyNUQsIDB4RkUwMDAwMDAsCisJCQkweDAwMDIwMDAwLCAweDAwMDM4QjQzLCAweDAwMDAwMDAwLCAweEZFMDAwMDAwLAorCQl9LAorCQlbRFJNX0NPTE9SX1lDQkNSX0JUNzA5XSA9IHsKKwkJCTB4MDAwMjAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMzI2NEMsIDB4MDAwMDAwMDAsCisJCQkweDAwMDIwMDAwLCAweEZGRkZBMDE4LCAweEZGRkYxMDUzLCAweEZFMDAwMDAwLAorCQkJMHgwMDAyMDAwMCwgMHgwMDAzQjYxMSwgMHgwMDAwMDAwMCwgMHhGRTAwMDAwMCwKKwkJfQorCX0sCiB9OwogCi1zdGF0aWMgY29uc3QgdTMyIHl2dTJyZ2JfZGUzW10gPSB7Ci0JMHgwMDAyNTQyYSwgMHgwMDAzMzEyYSwgMHgwMDAwMDAwMCwgMHhmZmMwMDAwMCwKLQkweDAwMDI1NDJhLCAweGZmZmU1ZmMzLCAweGZmZmYzNzZiLCAweGZlMDAwMDAwLAotCTB4MDAwMjU0MmEsIDB4MDAwMDAwMDAsIDB4MDAwNDA4ZDMsIDB4ZmUwMDAwMDAsCitzdGF0aWMgY29uc3QgdTMyIHl2dTJyZ2JfZGUzWzJdWzJdWzEyXSA9IHsKKwlbRFJNX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0VdID0geworCQlbRFJNX0NPTE9SX1lDQkNSX0JUNjAxXSA9IHsKKwkJCTB4MDAwMjU0MkEsIDB4MDAwMzMxMkEsIDB4MDAwMDAwMDAsIDB4RkZDMDAwMDAsCisJCQkweDAwMDI1NDJBLCAweEZGRkU1RkMzLCAweEZGRkYzNzZCLCAweEZFMDAwMDAwLAorCQkJMHgwMDAyNTQyQSwgMHgwMDAwMDAwMCwgMHgwMDA0MDhEMiwgMHhGRTAwMDAwMCwKKwkJfSwKKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDcwOV0gPSB7CisJCQkweDAwMDI1NDJBLCAweDAwMDM5NUUyLCAweDAwMDAwMDAwLCAweEZGQzAwMDAwLAorCQkJMHgwMDAyNTQyQSwgMHhGRkZFRUYyNywgMHhGRkZGOTJEMiwgMHhGRTAwMDAwMCwKKwkJCTB4MDAwMjU0MkEsIDB4MDAwMDAwMDAsIDB4MDAwNDM5OEMsIDB4RkUwMDAwMDAsCisJCX0KKwl9LAorCVtEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRV0gPSB7CisJCVtEUk1fQ09MT1JfWUNCQ1JfQlQ2MDFdID0geworCQkJMHgwMDAyMDAwMCwgMHgwMDAyQ0REMiwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKKwkJCTB4MDAwMjAwMDAsIDB4RkZGRTkyNUQsIDB4RkZGRjRGQ0UsIDB4RkUwMDAwMDAsCisJCQkweDAwMDIwMDAwLCAweDAwMDAwMDAwLCAweDAwMDM4QjQzLCAweEZFMDAwMDAwLAorCQl9LAorCQlbRFJNX0NPTE9SX1lDQkNSX0JUNzA5XSA9IHsKKwkJCTB4MDAwMjAwMDAsIDB4MDAwMzI2NEMsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisJCQkweDAwMDIwMDAwLCAweEZGRkYxMDUzLCAweEZGRkZBMDE4LCAweEZFMDAwMDAwLAorCQkJMHgwMDAyMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAzQjYxMSwgMHhGRTAwMDAwMCwKKwkJfQorCX0sCiB9OwogCiBzdGF0aWMgdm9pZCBzdW44aV9jc2Nfc2V0X2NvZWZmaWNpZW50cyhzdHJ1Y3QgcmVnbWFwICptYXAsIHUzMiBiYXNlLAotCQkJCSAgICAgICBlbnVtIHN1bjhpX2NzY19tb2RlIG1vZGUpCi17Ci0JY29uc3QgdTMyICp0YWJsZTsKLQlpbnQgaSwgZGF0YTsKLQotCXN3aXRjaCAobW9kZSkgewotCWNhc2UgU1VOOElfQ1NDX01PREVfWVVWMlJHQjoKLQkJdGFibGUgPSB5dXYycmdiOwotCQlicmVhazsKLQljYXNlIFNVTjhJX0NTQ19NT0RFX1lWVTJSR0I6Ci0JCXRhYmxlID0geXZ1MnJnYjsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJRFJNX1dBUk4oIldyb25nIENTQyBtb2RlIHNwZWNpZmllZC5cbiIpOwotCQlyZXR1cm47Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHsKLQkJZGF0YSA9IHRhYmxlW2ldOwotCQkvKiBGb3Igc29tZSByZWFzb24sIDB4MjAwIG11c3QgYmUgYWRkZWQgdG8gY29uc3RhbnQgcGFydHMgKi8KLQkJaWYgKCgoaSArIDEpICYgMykgPT0gMCkKLQkJCWRhdGEgKz0gMHgyMDA7Ci0JCXJlZ21hcF93cml0ZShtYXAsIFNVTjhJX0NTQ19DT0VGRihiYXNlLCBpKSwgZGF0YSk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBzdW44aV9kZTNfY2NzY19zZXRfY29lZmZpY2llbnRzKHN0cnVjdCByZWdtYXAgKm1hcCwgaW50IGxheWVyLAotCQkJCQkgICAgZW51bSBzdW44aV9jc2NfbW9kZSBtb2RlKQorCQkJCSAgICAgICBlbnVtIHN1bjhpX2NzY19tb2RlIG1vZGUsCisJCQkJICAgICAgIGVudW0gZHJtX2NvbG9yX2VuY29kaW5nIGVuY29kaW5nLAorCQkJCSAgICAgICBlbnVtIGRybV9jb2xvcl9yYW5nZSByYW5nZSkKIHsKIAljb25zdCB1MzIgKnRhYmxlOwogCXUzMiBiYXNlX3JlZzsKIAogCXN3aXRjaCAobW9kZSkgewogCWNhc2UgU1VOOElfQ1NDX01PREVfWVVWMlJHQjoKLQkJdGFibGUgPSB5dXYycmdiX2RlMzsKKwkJdGFibGUgPSB5dXYycmdiW3JhbmdlXVtlbmNvZGluZ107CiAJCWJyZWFrOwogCWNhc2UgU1VOOElfQ1NDX01PREVfWVZVMlJHQjoKLQkJdGFibGUgPSB5dnUycmdiX2RlMzsKKwkJdGFibGUgPSB5dnUycmdiW3JhbmdlXVtlbmNvZGluZ107CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9XQVJOKCJXcm9uZyBDU0MgbW9kZSBzcGVjaWZpZWQuXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWJhc2VfcmVnID0gU1VOOElfQ1NDX0NPRUZGKGJhc2UsIDApOworCXJlZ21hcF9idWxrX3dyaXRlKG1hcCwgYmFzZV9yZWcsIHRhYmxlLCAxMik7Cit9CisKK3N0YXRpYyB2b2lkIHN1bjhpX2RlM19jY3NjX3NldF9jb2VmZmljaWVudHMoc3RydWN0IHJlZ21hcCAqbWFwLCBpbnQgbGF5ZXIsCisJCQkJCSAgICBlbnVtIHN1bjhpX2NzY19tb2RlIG1vZGUsCisJCQkJCSAgICBlbnVtIGRybV9jb2xvcl9lbmNvZGluZyBlbmNvZGluZywKKwkJCQkJICAgIGVudW0gZHJtX2NvbG9yX3JhbmdlIHJhbmdlKQoreworCWNvbnN0IHUzMiAqdGFibGU7CisJdTMyIGJhc2VfcmVnOworCisJc3dpdGNoIChtb2RlKSB7CisJY2FzZSBTVU44SV9DU0NfTU9ERV9ZVVYyUkdCOgorCQl0YWJsZSA9IHl1djJyZ2JfZGUzW3JhbmdlXVtlbmNvZGluZ107CisJCWJyZWFrOworCWNhc2UgU1VOOElfQ1NDX01PREVfWVZVMlJHQjoKKwkJdGFibGUgPSB5dnUycmdiX2RlM1tyYW5nZV1bZW5jb2RpbmddOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlEUk1fV0FSTigiV3JvbmcgQ1NDIG1vZGUgc3BlY2lmaWVkLlxuIik7CkBAIC0xNDIsMTkgKzIyNiwyMiBAQCBzdGF0aWMgdm9pZCBzdW44aV9kZTNfY2NzY19lbmFibGUoc3RydWN0IHJlZ21hcCAqbWFwLCBpbnQgbGF5ZXIsIGJvb2wgZW5hYmxlKQogfQogCiB2b2lkIHN1bjhpX2NzY19zZXRfY2NzY19jb2VmZmljaWVudHMoc3RydWN0IHN1bjhpX21peGVyICptaXhlciwgaW50IGxheWVyLAotCQkJCSAgICAgZW51bSBzdW44aV9jc2NfbW9kZSBtb2RlKQorCQkJCSAgICAgZW51bSBzdW44aV9jc2NfbW9kZSBtb2RlLAorCQkJCSAgICAgZW51bSBkcm1fY29sb3JfZW5jb2RpbmcgZW5jb2RpbmcsCisJCQkJICAgICBlbnVtIGRybV9jb2xvcl9yYW5nZSByYW5nZSkKIHsKIAl1MzIgYmFzZTsKIAogCWlmIChtaXhlci0+Y2ZnLT5pc19kZTMpIHsKLQkJc3VuOGlfZGUzX2Njc2Nfc2V0X2NvZWZmaWNpZW50cyhtaXhlci0+ZW5naW5lLnJlZ3MsCi0JCQkJCQlsYXllciwgbW9kZSk7CisJCXN1bjhpX2RlM19jY3NjX3NldF9jb2VmZmljaWVudHMobWl4ZXItPmVuZ2luZS5yZWdzLCBsYXllciwKKwkJCQkJCW1vZGUsIGVuY29kaW5nLCByYW5nZSk7CiAJCXJldHVybjsKIAl9CiAKIAliYXNlID0gY2NzY19iYXNlW21peGVyLT5jZmctPmNjc2NdW2xheWVyXTsKIAotCXN1bjhpX2NzY19zZXRfY29lZmZpY2llbnRzKG1peGVyLT5lbmdpbmUucmVncywgYmFzZSwgbW9kZSk7CisJc3VuOGlfY3NjX3NldF9jb2VmZmljaWVudHMobWl4ZXItPmVuZ2luZS5yZWdzLCBiYXNlLAorCQkJCSAgIG1vZGUsIGVuY29kaW5nLCByYW5nZSk7CiB9CiAKIHZvaWQgc3VuOGlfY3NjX2VuYWJsZV9jY3NjKHN0cnVjdCBzdW44aV9taXhlciAqbWl4ZXIsIGludCBsYXllciwgYm9vbCBlbmFibGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfY3NjLmggYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfY3NjLmgKaW5kZXggZGNlNGM0NC4uZjQyNDQxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX2NzYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV9jc2MuaApAQCAtNiw2ICs2LDggQEAKICNpZm5kZWYgX1NVTjhJX0NTQ19IXwogI2RlZmluZSBfU1VOOElfQ1NDX0hfCiAKKyNpbmNsdWRlIDxkcm0vZHJtX2NvbG9yX21nbXQuaD4KKwogc3RydWN0IHN1bjhpX21peGVyOwogCiAvKiBWSSBjaGFubmVsIENTQyB1bml0cyBvZmZzZXRzICovCkBAIC0yNiw3ICsyOCw5IEBAIGVudW0gc3VuOGlfY3NjX21vZGUgewogfTsKIAogdm9pZCBzdW44aV9jc2Nfc2V0X2Njc2NfY29lZmZpY2llbnRzKHN0cnVjdCBzdW44aV9taXhlciAqbWl4ZXIsIGludCBsYXllciwKLQkJCQkgICAgIGVudW0gc3VuOGlfY3NjX21vZGUgbW9kZSk7CisJCQkJICAgICBlbnVtIHN1bjhpX2NzY19tb2RlIG1vZGUsCisJCQkJICAgICBlbnVtIGRybV9jb2xvcl9lbmNvZGluZyBlbmNvZGluZywKKwkJCQkgICAgIGVudW0gZHJtX2NvbG9yX3JhbmdlIHJhbmdlKTsKIHZvaWQgc3VuOGlfY3NjX2VuYWJsZV9jY3NjKHN0cnVjdCBzdW44aV9taXhlciAqbWl4ZXIsIGludCBsYXllciwgYm9vbCBlbmFibGUpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV9kd19oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfZHdfaGRtaS5jCmluZGV4IDM5ZDg1MDkuLmE0NGRjYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV9kd19oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX2R3X2hkbWkuYwpAQCAtOCw5ICs4LDggQEAKICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAKICNpbmNsdWRlICJzdW44aV9kd19oZG1pLmgiCiAjaW5jbHVkZSAic3VuOGlfdGNvbl90b3AuaCIKQEAgLTk4LDEwICs5NywzNCBAQCBzdGF0aWMgdTMyIHN1bjhpX2R3X2hkbWlfZmluZF9wb3NzaWJsZV9jcnRjcyhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAogCXJldHVybiBjcnRjczsKIH0KIAorc3RhdGljIGludCBzdW44aV9kd19oZG1pX2ZpbmRfY29ubmVjdG9yX3BkZXYoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkgICAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKipwZGV2X291dCkKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcmVtb3RlOworCisJcmVtb3RlID0gb2ZfZ3JhcGhfZ2V0X3JlbW90ZV9ub2RlKGRldi0+b2Zfbm9kZSwgMSwgLTEpOworCWlmICghcmVtb3RlKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmICghb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUocmVtb3RlLCAiaGRtaS1jb25uZWN0b3IiKSkgeworCQlvZl9ub2RlX3B1dChyZW1vdGUpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlwZGV2ID0gb2ZfZmluZF9kZXZpY2VfYnlfbm9kZShyZW1vdGUpOworCW9mX25vZGVfcHV0KHJlbW90ZSk7CisJaWYgKCFwZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCSpwZGV2X291dCA9IHBkZXY7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgc3VuOGlfZHdfaGRtaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogCQkJICAgICAgdm9pZCAqZGF0YSkKIHsKLQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldik7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpLCAqY29ubmVjdG9yX3BkZXY7CiAJc3RydWN0IGR3X2hkbWlfcGxhdF9kYXRhICpwbGF0X2RhdGE7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRhdGE7CiAJc3RydWN0IGRldmljZV9ub2RlICpwaHlfbm9kZTsKQEAgLTE1MSwxNiArMTc0LDMwIEBAIHN0YXRpYyBpbnQgc3VuOGlfZHdfaGRtaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogCQlyZXR1cm4gUFRSX0VSUihoZG1pLT5yZWd1bGF0b3IpOwogCX0KIAorCXJldCA9IHN1bjhpX2R3X2hkbWlfZmluZF9jb25uZWN0b3JfcGRldihkZXYsICZjb25uZWN0b3JfcGRldik7CisJaWYgKCFyZXQpIHsKKwkJaGRtaS0+ZGRjX2VuID0gZ3Bpb2RfZ2V0X29wdGlvbmFsKCZjb25uZWN0b3JfcGRldi0+ZGV2LAorCQkJCQkJICAiZGRjLWVuIiwgR1BJT0RfT1VUX0hJR0gpOworCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KGNvbm5lY3Rvcl9wZGV2KTsKKworCQlpZiAoSVNfRVJSKGhkbWktPmRkY19lbikpIHsKKwkJCWRldl9lcnIoZGV2LCAiQ291bGRuJ3QgZ2V0IGRkYy1lbiBncGlvXG4iKTsKKwkJCXJldHVybiBQVFJfRVJSKGhkbWktPmRkY19lbik7CisJCX0KKwl9CisKIAlyZXQgPSByZWd1bGF0b3JfZW5hYmxlKGhkbWktPnJlZ3VsYXRvcik7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBlbmFibGUgcmVndWxhdG9yXG4iKTsKLQkJcmV0dXJuIHJldDsKKwkJZ290byBlcnJfdW5yZWZfZGRjX2VuOwogCX0KIAorCWdwaW9kX3NldF92YWx1ZShoZG1pLT5kZGNfZW4sIDEpOworCiAJcmV0ID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChoZG1pLT5yc3RfY3RybCk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldiwgIkNvdWxkIG5vdCBkZWFzc2VydCBjdHJsIHJlc2V0IGNvbnRyb2xcbiIpOwotCQlnb3RvIGVycl9kaXNhYmxlX3JlZ3VsYXRvcjsKKwkJZ290byBlcnJfZGlzYWJsZV9kZGNfZW47CiAJfQogCiAJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGhkbWktPmNsa190bWRzKTsKQEAgLTIxMyw4ICsyNTAsMTIgQEAgc3RhdGljIGludCBzdW44aV9kd19oZG1pX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCiAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGhkbWktPmNsa190bWRzKTsKIGVycl9hc3NlcnRfY3RybF9yZXNldDoKIAlyZXNldF9jb250cm9sX2Fzc2VydChoZG1pLT5yc3RfY3RybCk7Ci1lcnJfZGlzYWJsZV9yZWd1bGF0b3I6CitlcnJfZGlzYWJsZV9kZGNfZW46CisJZ3Bpb2Rfc2V0X3ZhbHVlKGhkbWktPmRkY19lbiwgMCk7CiAJcmVndWxhdG9yX2Rpc2FibGUoaGRtaS0+cmVndWxhdG9yKTsKK2Vycl91bnJlZl9kZGNfZW46CisJaWYgKGhkbWktPmRkY19lbikKKwkJZ3Bpb2RfcHV0KGhkbWktPmRkY19lbik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMjI4LDcgKzI2OSwxMSBAQCBzdGF0aWMgdm9pZCBzdW44aV9kd19oZG1pX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIAlzdW44aV9oZG1pX3BoeV9yZW1vdmUoaGRtaSk7CiAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGhkbWktPmNsa190bWRzKTsKIAlyZXNldF9jb250cm9sX2Fzc2VydChoZG1pLT5yc3RfY3RybCk7CisJZ3Bpb2Rfc2V0X3ZhbHVlKGhkbWktPmRkY19lbiwgMCk7CiAJcmVndWxhdG9yX2Rpc2FibGUoaGRtaS0+cmVndWxhdG9yKTsKKworCWlmIChoZG1pLT5kZGNfZW4pCisJCWdwaW9kX3B1dChoZG1pLT5kZGNfZW4pOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMgc3VuOGlfZHdfaGRtaV9vcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfZHdfaGRtaS5oIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX2R3X2hkbWkuaAppbmRleCA3MjBjNWFhLi5kNzA3YzkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfZHdfaGRtaS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV9kd19oZG1pLmgKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSA8ZHJtL2JyaWRnZS9kd19oZG1pLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CkBAIC0xOTAsNiArMTkxLDcgQEAgc3RydWN0IHN1bjhpX2R3X2hkbWkgewogCXN0cnVjdCByZWd1bGF0b3IJCSpyZWd1bGF0b3I7CiAJY29uc3Qgc3RydWN0IHN1bjhpX2R3X2hkbWlfcXVpcmtzICpxdWlya3M7CiAJc3RydWN0IHJlc2V0X2NvbnRyb2wJCSpyc3RfY3RybDsKKwlzdHJ1Y3QgZ3Bpb19kZXNjCQkqZGRjX2VuOwogfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3Qgc3VuOGlfZHdfaGRtaSAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfbWl4ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV9taXhlci5jCmluZGV4IGMyZWVkZjUuLjhiODAzZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV9taXhlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV9taXhlci5jCkBAIC03LDcgKzcsMTMgQEAKICAqICAgQ29weXJpZ2h0IChDKSAyMDE1IE5leHRUaGluZyBDbwogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CkBAIC0xNSwxMiArMjEsNiBAQAogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KIAotI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgotI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KLSNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgotCiAjaW5jbHVkZSAic3VuNGlfZHJ2LmgiCiAjaW5jbHVkZSAic3VuOGlfbWl4ZXIuaCIKICNpbmNsdWRlICJzdW44aV91aV9sYXllci5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX3Rjb25fdG9wLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfdGNvbl90b3AuYwppbmRleCAzMjY3ZDBmLi43NWQ4ZTYwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX3Rjb25fdG9wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX3Rjb25fdG9wLmMKQEAgLTEsMTggKzEsMTggQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwogLyogQ29weXJpZ2h0IChjKSAyMDE4IEplcm5laiBTa3JhYmVjIDxqZXJuZWouc2tyYWJlY0BzaW9sLm5ldD4gKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0KLSNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9zdW44aS10Y29uLXRvcC5oPgogCiAjaW5jbHVkZSA8bGludXgvYml0ZmllbGQuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9zdW44aS10Y29uLXRvcC5oPgorCiAjaW5jbHVkZSAic3VuOGlfdGNvbl90b3AuaCIKIAogc3RydWN0IHN1bjhpX3Rjb25fdG9wX3F1aXJrcyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfdWlfbGF5ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV91aV9sYXllci5jCmluZGV4IGRkMmExYzguLmM4N2ZkODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV91aV9sYXllci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV91aV9sYXllci5jCkBAIC0xMywxMSArMTMsMTEgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KIAogI2luY2x1ZGUgInN1bjhpX3VpX2xheWVyLmgiCiAjaW5jbHVkZSAic3VuOGlfbWl4ZXIuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV92aV9sYXllci5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX3ZpX2xheWVyLmMKaW5kZXggYmQwZTZhNS4uNDJkNDQ1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX3ZpX2xheWVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX3ZpX2xheWVyLmMKQEAgLTExLDcgKzExLDYgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KIAogI2luY2x1ZGUgInN1bjhpX3ZpX2xheWVyLmgiCiAjaW5jbHVkZSAic3VuOGlfbWl4ZXIuaCIKQEAgLTIzMiw3ICsyMzEsOSBAQCBzdGF0aWMgaW50IHN1bjhpX3ZpX2xheWVyX3VwZGF0ZV9mb3JtYXRzKHN0cnVjdCBzdW44aV9taXhlciAqbWl4ZXIsIGludCBjaGFubmVsLAogCQkJICAgU1VOOElfTUlYRVJfQ0hBTl9WSV9MQVlFUl9BVFRSX0ZCRk1UX01BU0ssIHZhbCk7CiAKIAlpZiAoZm10X2luZm8tPmNzYyAhPSBTVU44SV9DU0NfTU9ERV9PRkYpIHsKLQkJc3VuOGlfY3NjX3NldF9jY3NjX2NvZWZmaWNpZW50cyhtaXhlciwgY2hhbm5lbCwgZm10X2luZm8tPmNzYyk7CisJCXN1bjhpX2NzY19zZXRfY2NzY19jb2VmZmljaWVudHMobWl4ZXIsIGNoYW5uZWwsIGZtdF9pbmZvLT5jc2MsCisJCQkJCQlzdGF0ZS0+Y29sb3JfZW5jb2RpbmcsCisJCQkJCQlzdGF0ZS0+Y29sb3JfcmFuZ2UpOwogCQlzdW44aV9jc2NfZW5hYmxlX2Njc2MobWl4ZXIsIGNoYW5uZWwsIHRydWUpOwogCX0gZWxzZSB7CiAJCXN1bjhpX2NzY19lbmFibGVfY2NzYyhtaXhlciwgY2hhbm5lbCwgZmFsc2UpOwpAQCAtNDQxLDYgKzQ0Miw3IEBAIHN0cnVjdCBzdW44aV92aV9sYXllciAqc3VuOGlfdmlfbGF5ZXJfaW5pdF9vbmUoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAkJCQkJICAgICAgIHN0cnVjdCBzdW44aV9taXhlciAqbWl4ZXIsCiAJCQkJCSAgICAgICBpbnQgaW5kZXgpCiB7CisJdTMyIHN1cHBvcnRlZF9lbmNvZGluZ3MsIHN1cHBvcnRlZF9yYW5nZXM7CiAJc3RydWN0IHN1bjhpX3ZpX2xheWVyICpsYXllcjsKIAl1bnNpZ25lZCBpbnQgcGxhbmVfY250OwogCWludCByZXQ7CkBAIC00NjksNiArNDcxLDIyIEBAIHN0cnVjdCBzdW44aV92aV9sYXllciAqc3VuOGlfdmlfbGF5ZXJfaW5pdF9vbmUoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKKwlzdXBwb3J0ZWRfZW5jb2RpbmdzID0gQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDYwMSkgfAorCQkJICAgICAgQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSk7CisKKwlzdXBwb3J0ZWRfcmFuZ2VzID0gQklUKERSTV9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFKSB8CisJCQkgICBCSVQoRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpOworCisJcmV0ID0gZHJtX3BsYW5lX2NyZWF0ZV9jb2xvcl9wcm9wZXJ0aWVzKCZsYXllci0+cGxhbmUsCisJCQkJCQlzdXBwb3J0ZWRfZW5jb2RpbmdzLAorCQkJCQkJc3VwcG9ydGVkX3JhbmdlcywKKwkJCQkJCURSTV9DT0xPUl9ZQ0JDUl9CVDcwOSwKKwkJCQkJCURSTV9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZHJtLT5kZXYsICJDb3VsZG4ndCBhZGQgZW5jb2RpbmcgYW5kIHJhbmdlIHByb3BlcnRpZXMhXG4iKTsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwl9CisKIAlkcm1fcGxhbmVfaGVscGVyX2FkZCgmbGF5ZXItPnBsYW5lLCAmc3VuOGlfdmlfbGF5ZXJfaGVscGVyX2Z1bmNzKTsKIAlsYXllci0+bWl4ZXIgPSBtaXhlcjsKIAlsYXllci0+Y2hhbm5lbCA9IGluZGV4OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RkZngvdGRmeF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZGZ4L3RkZnhfZHJ2LmMKaW5kZXggM2ExNDc2OC4uYzI0M2FmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RkZngvdGRmeF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGRmeC90ZGZ4X2Rydi5jCkBAIC0zMiwxMSArMzIsMTQgQEAKIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlICJ0ZGZ4X2Rydi5oIgotCi0jaW5jbHVkZSA8ZHJtL2RybV9wY2lpZHMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1faW9jdGwuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2xlZ2FjeS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGNpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wY2lpZHMuaD4KKworI2luY2x1ZGUgInRkZnhfZHJ2LmgiCiAKIHN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lpZGxpc3RbXSA9IHsKIAl0ZGZ4X1BDSV9JRFMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKaW5kZXggNGE3NWQxNC4uZmJmNTdiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKQEAgLTYsMjMgKzYsMjggQEAKIAogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2lvbW11Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CiAKICNpbmNsdWRlIDxzb2MvdGVncmEvcG1jLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorCiAjaW5jbHVkZSAiZGMuaCIKICNpbmNsdWRlICJkcm0uaCIKICNpbmNsdWRlICJnZW0uaCIKICNpbmNsdWRlICJodWIuaCIKICNpbmNsdWRlICJwbGFuZS5oIgogCi0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgotCiBzdGF0aWMgdm9pZCB0ZWdyYV9jcnRjX2F0b21pY19kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHBhdXguYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcGF1eC5jCmluZGV4IDJkOTRkYTIyLi5hMGY2ZjliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHBhdXguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHBhdXguYwpAQCAtOCwxNCArOCwxNSBAQAogI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2dwaW8uaD4KICNpbmNsdWRlIDxsaW51eC9waW5jdHJsL3BpbmNvbmYtZ2VuZXJpYy5oPgogI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvcGluY3RybC5oPgogI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvcGlubXV4Lmg+Ci0jaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CisjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2RwX2hlbHBlci5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jCmluZGV4IGRkYjgwMmIuLjZmYjdkNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKQEAgLTgsOSArOCwxNyBAQAogI2luY2x1ZGUgPGxpbnV4L2hvc3QxeC5oPgogI2luY2x1ZGUgPGxpbnV4L2lkci5oPgogI2luY2x1ZGUgPGxpbnV4L2lvbW11Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lvY3RsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19BUk1fRE1BX1VTRV9JT01NVSkKICNpbmNsdWRlIDxhc20vZG1hLWlvbW11Lmg+CkBAIC04ODgsMzMgKzg5NiwzMyBAQCBzdGF0aWMgaW50IHRlZ3JhX2dlbV9nZXRfZmxhZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRybSwgdm9pZCAqZGF0YSwKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgdGVncmFfZHJtX2lvY3Rsc1tdID0gewogI2lmZGVmIENPTkZJR19EUk1fVEVHUkFfU1RBR0lORwogCURSTV9JT0NUTF9ERUZfRFJWKFRFR1JBX0dFTV9DUkVBVEUsIHRlZ3JhX2dlbV9jcmVhdGUsCi0JCQkgIERSTV9VTkxPQ0tFRCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihURUdSQV9HRU1fTU1BUCwgdGVncmFfZ2VtX21tYXAsCi0JCQkgIERSTV9VTkxPQ0tFRCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihURUdSQV9TWU5DUFRfUkVBRCwgdGVncmFfc3luY3B0X3JlYWQsCi0JCQkgIERSTV9VTkxPQ0tFRCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihURUdSQV9TWU5DUFRfSU5DUiwgdGVncmFfc3luY3B0X2luY3IsCi0JCQkgIERSTV9VTkxPQ0tFRCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihURUdSQV9TWU5DUFRfV0FJVCwgdGVncmFfc3luY3B0X3dhaXQsCi0JCQkgIERSTV9VTkxPQ0tFRCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihURUdSQV9PUEVOX0NIQU5ORUwsIHRlZ3JhX29wZW5fY2hhbm5lbCwKLQkJCSAgRFJNX1VOTE9DS0VEIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKFRFR1JBX0NMT1NFX0NIQU5ORUwsIHRlZ3JhX2Nsb3NlX2NoYW5uZWwsCi0JCQkgIERSTV9VTkxPQ0tFRCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihURUdSQV9HRVRfU1lOQ1BULCB0ZWdyYV9nZXRfc3luY3B0LAotCQkJICBEUk1fVU5MT0NLRUQgfCBEUk1fUkVOREVSX0FMTE9XKSwKKwkJCSAgRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoVEVHUkFfU1VCTUlULCB0ZWdyYV9zdWJtaXQsCi0JCQkgIERSTV9VTkxPQ0tFRCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihURUdSQV9HRVRfU1lOQ1BUX0JBU0UsIHRlZ3JhX2dldF9zeW5jcHRfYmFzZSwKLQkJCSAgRFJNX1VOTE9DS0VEIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKFRFR1JBX0dFTV9TRVRfVElMSU5HLCB0ZWdyYV9nZW1fc2V0X3RpbGluZywKLQkJCSAgRFJNX1VOTE9DS0VEIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKFRFR1JBX0dFTV9HRVRfVElMSU5HLCB0ZWdyYV9nZW1fZ2V0X3RpbGluZywKLQkJCSAgRFJNX1VOTE9DS0VEIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKFRFR1JBX0dFTV9TRVRfRkxBR1MsIHRlZ3JhX2dlbV9zZXRfZmxhZ3MsCi0JCQkgIERSTV9VTkxPQ0tFRCB8IERSTV9SRU5ERVJfQUxMT1cpLAorCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihURUdSQV9HRU1fR0VUX0ZMQUdTLCB0ZWdyYV9nZW1fZ2V0X2ZsYWdzLAotCQkJICBEUk1fVU5MT0NLRUQgfCBEUk1fUkVOREVSX0FMTE9XKSwKKwkJCSAgRFJNX1JFTkRFUl9BTExPVyksCiAjZW5kaWYKIH07CiAKQEAgLTEwMDQsNyArMTAxMiw3IEBAIHN0YXRpYyBpbnQgdGVncmFfZGVidWdmc19pbml0KHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQogI2VuZGlmCiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB0ZWdyYV9kcm1fZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfUFJJTUUgfAorCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfAogCQkJICAgRFJJVkVSX0FUT01JQyB8IERSSVZFUl9SRU5ERVIsCiAJLmxvYWQgPSB0ZWdyYV9kcm1fbG9hZCwKIAkudW5sb2FkID0gdGVncmFfZHJtX3VubG9hZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcm0uaCBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcm0uaAppbmRleCA4NmRhYTE5Li4yOTkxMWVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5oCkBAIC03LDE4ICs3LDE3IEBACiAjaWZuZGVmIEhPU1QxWF9EUk1fSAogI2RlZmluZSBIT1NUMVhfRFJNX0ggMQogCi0jaW5jbHVkZSA8dWFwaS9kcm0vdGVncmFfZHJtLmg+CiAjaW5jbHVkZSA8bGludXgvaG9zdDF4Lmg+CiAjaW5jbHVkZSA8bGludXgvaW92YS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2dwaW8uaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZml4ZWQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPHVhcGkvZHJtL3RlZ3JhX2RybS5oPgogCiAjaW5jbHVkZSAiZ2VtLmgiCiAjaW5jbHVkZSAiaHViLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHNpLmMKaW5kZXggMmZiZmVmZS4uYTVkNDdlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kc2kuYwpAQCAtNSwyMiArNSwyNCBAQAogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaG9zdDF4Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KICNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgogCi0jaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgogCi0jaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+Ci0KICNpbmNsdWRlICJkYy5oIgogI2luY2x1ZGUgImRybS5oIgogI2luY2x1ZGUgImRzaS5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZmIuYwppbmRleCA4ODhlZDBkLi5lMzQzMjVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZmIuYwpAQCAtOSwxMSArOSwxMyBAQAogCiAjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgogCi0jaW5jbHVkZSAiZHJtLmgiCi0jaW5jbHVkZSAiZ2VtLmgiCisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyLmg+CiAKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJnZW0uaCIKKwogI2lmZGVmIENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0ZWdyYV9mYmRldiAqdG9fdGVncmFfZmJkZXYoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcikKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9nZW0uYwppbmRleCBkZjUzYTQ2Li5mYjc2NjdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2dlbS5jCkBAIC0xMiw2ICsxMiw5IEBACiAKICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+CiAjaW5jbHVkZSA8bGludXgvaW9tbXUuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgogI2luY2x1ZGUgPGRybS90ZWdyYV9kcm0uaD4KIAogI2luY2x1ZGUgImRybS5oIgpAQCAtNjI2LDIwICs2MjksMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyB0ZWdyYV9nZW1fcHJpbWVfZG1hYnVmX29wcyA9IHsKIAkudnVubWFwID0gdGVncmFfZ2VtX3ByaW1lX3Z1bm1hcCwKIH07CiAKLXN0cnVjdCBkbWFfYnVmICp0ZWdyYV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCi0JCQkJICAgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtLAorc3RydWN0IGRtYV9idWYgKnRlZ3JhX2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0sCiAJCQkJICAgICAgIGludCBmbGFncykKIHsKIAlERUZJTkVfRE1BX0JVRl9FWFBPUlRfSU5GTyhleHBfaW5mbyk7CiAKIAlleHBfaW5mby5leHBfbmFtZSA9IEtCVUlMRF9NT0ROQU1FOwotCWV4cF9pbmZvLm93bmVyID0gZHJtLT5kcml2ZXItPmZvcHMtPm93bmVyOworCWV4cF9pbmZvLm93bmVyID0gZ2VtLT5kZXYtPmRyaXZlci0+Zm9wcy0+b3duZXI7CiAJZXhwX2luZm8ub3BzID0gJnRlZ3JhX2dlbV9wcmltZV9kbWFidWZfb3BzOwogCWV4cF9pbmZvLnNpemUgPSBnZW0tPnNpemU7CiAJZXhwX2luZm8uZmxhZ3MgPSBmbGFnczsKIAlleHBfaW5mby5wcml2ID0gZ2VtOwogCi0JcmV0dXJuIGRybV9nZW1fZG1hYnVmX2V4cG9ydChkcm0sICZleHBfaW5mbyk7CisJcmV0dXJuIGRybV9nZW1fZG1hYnVmX2V4cG9ydChnZW0tPmRldiwgJmV4cF9pbmZvKTsKIH0KIAogc3RydWN0IGRybV9nZW1fb2JqZWN0ICp0ZWdyYV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmgKaW5kZXggNDEzZWFlOC4uODNmZmIxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9nZW0uaApAQCAtMTEsNyArMTEsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2hvc3QxeC5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybS5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KIAogI2RlZmluZSBURUdSQV9CT19CT1RUT01fVVAgKDEgPDwgMCkKQEAgLTcwLDggKzY5LDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCB0ZWdyYV9ib192bV9vcHM7CiBpbnQgX190ZWdyYV9nZW1fbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogaW50IHRlZ3JhX2RybV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CiAKLXN0cnVjdCBkbWFfYnVmICp0ZWdyYV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCi0JCQkJICAgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtLAorc3RydWN0IGRtYV9idWYgKnRlZ3JhX2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0sCiAJCQkJICAgICAgIGludCBmbGFncyk7CiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnRlZ3JhX2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAkJCQkJICAgICAgc3RydWN0IGRtYV9idWYgKmJ1Zik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ3IyZC5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2dyMmQuYwppbmRleCA4ZGJmYjMwLi42NDEyOTljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ3IyZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9ncjJkLmMKQEAgLTUsNiArNSw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9pb21tdS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogCiAjaW5jbHVkZSAiZHJtLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2hkbWkuYwppbmRleCAzMzRjNGQ3Li41MDI2OWZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9oZG1pLmMKQEAgLTYsOSArNiwxMSBAQAogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgogI2luY2x1ZGUgPGxpbnV4L2hkbWkuaD4KICNpbmNsdWRlIDxsaW51eC9tYXRoNjQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+CkBAIC0xNiw2ICsxOCw5IEBACiAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJoZGEuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9odWIuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9odWIuYwppbmRleCA5MmYyMDJlLi44MzliNDljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvaHViLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2h1Yi5jCkBAIC00LDYgKzQsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2hvc3QxeC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CkBAIC0xMyw5ICsxNCw5IEBACiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiZHJtLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvaHViLmggYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvaHViLmgKaW5kZXggNDE1NDFlMi4uNzY3YTYwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2h1Yi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9odWIuaApAQCAtNiw3ICs2LDYgQEAKICNpZm5kZWYgVEVHUkFfSFVCX0gKICNkZWZpbmUgVEVHUkFfSFVCX0ggMQogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lLmg+CiAKICNpbmNsdWRlICJwbGFuZS5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvcGxhbmUuYwppbmRleCBkZjgwY2EwLi42YmFiNzFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvcGxhbmUuYwpAQCAtNSw2ICs1LDcgQEAKIAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiZGMuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9zb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9zb3IuYwppbmRleCA0ZmZlMzc5Li5lMTY2OWFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvc29yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3Nvci5jCkBAIC04LDYgKzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CkBAIC0xNyw3ICsxOCw5IEBACiAjaW5jbHVkZSA8c29jL3RlZ3JhL3BtYy5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9zY2RjX2hlbHBlci5oPgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvdmljLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvdmljLmMKaW5kZXggOTU4NTQ4ZS4uY2QwMzk5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3ZpYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS92aWMuYwpAQCAtNCw2ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9ob3N0MXguaD4KICNpbmNsdWRlIDxsaW51eC9pb21tdS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0Yy5jCmluZGV4IDY1MGQxNjIuLmU5ZGQ1ZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19jcnRjLmMKQEAgLTQsMTYgKzQsMjAgQEAKICAqIEF1dGhvcjogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CisKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmxpcF93b3JrLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KLSNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgotI2luY2x1ZGUgPGxpbnV4L21hdGg2NC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAidGlsY2RjX2Rydi5oIgogI2luY2x1ZGUgInRpbGNkY19yZWdzLmgiCkBAIC02NDYsOSArNjUwLDYgQEAgc3RhdGljIGJvb2wgdGlsY2RjX2NydGNfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiBzdGF0aWMgaW50IHRpbGNkY19jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmc3RhdGUtPm1vZGU7Ci0JaW50IHJldDsKLQogCS8qIElmIHdlIGFyZSBub3QgYWN0aXZlIHdlIGRvbid0IGNhcmUgKi8KIAlpZiAoIXN0YXRlLT5hY3RpdmUpCiAJCXJldHVybiAwOwpAQCAtNjYwLDEyICs2NjEsNiBAQCBzdGF0aWMgaW50IHRpbGNkY19jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCXJldCA9IHRpbGNkY19jcnRjX21vZGVfdmFsaWQoY3J0YywgbW9kZSk7Ci0JaWYgKHJldCkgewotCQlkZXZfZGJnKGNydGMtPmRldi0+ZGV2LCAiTW9kZSBcIiVzXCIgbm90IHZhbGlkIiwgbW9kZS0+bmFtZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCXJldHVybiAwOwogfQogCkBAIC03MTcsMTMgKzcxMiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgdGlsY2RjX2NydGNfZnVuY3MgPSB7CiAJLmRpc2FibGVfdmJsYW5rCT0gdGlsY2RjX2NydGNfZGlzYWJsZV92YmxhbmssCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyB0aWxjZGNfY3J0Y19oZWxwZXJfZnVuY3MgPSB7Ci0JCS5tb2RlX2ZpeHVwICAgICA9IHRpbGNkY19jcnRjX21vZGVfZml4dXAsCi0JCS5hdG9taWNfY2hlY2sJPSB0aWxjZGNfY3J0Y19hdG9taWNfY2hlY2ssCi0JCS5hdG9taWNfZW5hYmxlCT0gdGlsY2RjX2NydGNfYXRvbWljX2VuYWJsZSwKLQkJLmF0b21pY19kaXNhYmxlCT0gdGlsY2RjX2NydGNfYXRvbWljX2Rpc2FibGUsCi19OwotCiBpbnQgdGlsY2RjX2NydGNfbWF4X3dpZHRoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwpAQCAtNzM4LDcgKzcyNiw5IEBAIGludCB0aWxjZGNfY3J0Y19tYXhfd2lkdGgoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXJldHVybiBtYXhfd2lkdGg7CiB9CiAKLWludCB0aWxjZGNfY3J0Y19tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCitzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMKK3RpbGNkY19jcnRjX21vZGVfdmFsaWQoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCiB7CiAJc3RydWN0IHRpbGNkY19kcm1fcHJpdmF0ZSAqcHJpdiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAJdW5zaWduZWQgaW50IGJhbmR3aWR0aDsKQEAgLTgyNiw2ICs4MTYsMTQgQEAgaW50IHRpbGNkY19jcnRjX21vZGVfdmFsaWQoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKIAlyZXR1cm4gTU9ERV9PSzsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgdGlsY2RjX2NydGNfaGVscGVyX2Z1bmNzID0geworCS5tb2RlX3ZhbGlkCT0gdGlsY2RjX2NydGNfbW9kZV92YWxpZCwKKwkubW9kZV9maXh1cAk9IHRpbGNkY19jcnRjX21vZGVfZml4dXAsCisJLmF0b21pY19jaGVjawk9IHRpbGNkY19jcnRjX2F0b21pY19jaGVjaywKKwkuYXRvbWljX2VuYWJsZQk9IHRpbGNkY19jcnRjX2F0b21pY19lbmFibGUsCisJLmF0b21pY19kaXNhYmxlCT0gdGlsY2RjX2NydGNfYXRvbWljX2Rpc2FibGUsCit9OworCiB2b2lkIHRpbGNkY19jcnRjX3NldF9wYW5lbF9pbmZvKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJY29uc3Qgc3RydWN0IHRpbGNkY19wYW5lbF9pbmZvICppbmZvKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuYwppbmRleCA3MzM5YmFiLi4yYTllNjc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuYwpAQCAtNywxOSArNywzMCBAQAogLyogTENEQyBEUk0gZHJpdmVyLCBiYXNlZCBvbiBkYTh4eC1mYiAqLwogCiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcGluY3RybC9jb25zdW1lci5oPgotI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgorI2luY2x1ZGUgPGRybS9kcm1fbW0uaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisKIAogI2luY2x1ZGUgInRpbGNkY19kcnYuaCIKKyNpbmNsdWRlICJ0aWxjZGNfZXh0ZXJuYWwuaCIKKyNpbmNsdWRlICJ0aWxjZGNfcGFuZWwuaCIKICNpbmNsdWRlICJ0aWxjZGNfcmVncy5oIgogI2luY2x1ZGUgInRpbGNkY190ZnA0MTAuaCIKLSNpbmNsdWRlICJ0aWxjZGNfcGFuZWwuaCIKLSNpbmNsdWRlICJ0aWxjZGNfZXh0ZXJuYWwuaCIKIAogc3RhdGljIExJU1RfSEVBRChtb2R1bGVfbGlzdCk7CiAKQEAgLTE4OCw3ICsxOTksNiBAQCBzdGF0aWMgdm9pZCB0aWxjZGNfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWRybV9rbXNfaGVscGVyX3BvbGxfZmluaShkZXYpOwogCWRybV9pcnFfdW5pbnN0YWxsKGRldik7CiAJZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZGV2KTsKLQl0aWxjZGNfcmVtb3ZlX2V4dGVybmFsX2RldmljZShkZXYpOwogCiAJaWYgKHByaXYtPmNsaykKIAkJY2xrX3B1dChwcml2LT5jbGspOwpAQCAtNTAxLDggKzUxMSw3IEBAIHN0YXRpYyBpbnQgdGlsY2RjX2RlYnVnZnNfaW5pdChzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKIERFRklORV9EUk1fR0VNX0NNQV9GT1BTKGZvcHMpOwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgdGlsY2RjX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzICAgID0gKERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8Ci0JCQkgICAgICAgRFJJVkVSX1BSSU1FIHwgRFJJVkVSX0FUT01JQyksCisJLmRyaXZlcl9mZWF0dXJlcyAgICA9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCiAJLmlycV9oYW5kbGVyICAgICAgICA9IHRpbGNkY19pcnEsCiAJLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IGRybV9nZW1fY21hX2ZyZWVfb2JqZWN0LAogCS5nZW1fcHJpbnRfaW5mbyAgICAgPSBkcm1fZ2VtX2NtYV9wcmludF9pbmZvLApAQCAtNTExLDggKzUyMCw2IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB0aWxjZGNfZHJpdmVyID0gewogCiAJLnByaW1lX2hhbmRsZV90b19mZAk9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUJPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKLQkuZ2VtX3ByaW1lX2ltcG9ydAk9IGRybV9nZW1fcHJpbWVfaW1wb3J0LAotCS5nZW1fcHJpbWVfZXhwb3J0CT0gZHJtX2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUJPSBkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgPSBkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV92bWFwCQk9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2Rydi5oCmluZGV4IDk5NDMyMjkuLjE4ODE1ZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2Rydi5oCkBAIC03LDIxICs3LDI0IEBACiAjaWZuZGVmIF9fVElMQ0RDX0RSVl9IX18KICNkZWZpbmUgX19USUxDRENfRFJWX0hfXwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BtLmg+Ci0jaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9vZi5oPgotI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnFyZXR1cm4uaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9icmlkZ2UuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorCitzdHJ1Y3QgY2xrOworc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3Q7CisKK3N0cnVjdCBkcm1fY29ubmVjdG9yOworc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzOworc3RydWN0IGRybV9jcnRjOworc3RydWN0IGRybV9kZXZpY2U7CitzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZTsKK3N0cnVjdCBkcm1fZW5jb2RlcjsKK3N0cnVjdCBkcm1fZnJhbWVidWZmZXI7CitzdHJ1Y3QgZHJtX21pbm9yOworc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudDsKK3N0cnVjdCBkcm1fcGxhbmU7CiAKIC8qIERlZmF1bHRpbmcgdG8gcGl4ZWwgY2xvY2sgZGVmaW5lZCBvbiBBTTMzNXggKi8KICNkZWZpbmUgVElMQ0RDX0RFRkFVTFRfTUFYX1BJWEVMQ0xPQ0sgIDEyNjAwMApAQCAtNzQsNyArNzcsNiBAQCBzdHJ1Y3QgdGlsY2RjX2RybV9wcml2YXRlIHsKIAogCXN0cnVjdCBkcm1fZW5jb2RlciAqZXh0ZXJuYWxfZW5jb2RlcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqZXh0ZXJuYWxfY29ubmVjdG9yOwotCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAqY29ubmVjdG9yX2Z1bmNzOwogCiAJYm9vbCBpc19yZWdpc3RlcmVkOwogCWJvb2wgaXNfY29tcG9uZW50aXplZDsKQEAgLTE1Niw3ICsxNTgsNiBAQCB2b2lkIHRpbGNkY19jcnRjX3NldF9wYW5lbF9pbmZvKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJY29uc3Qgc3RydWN0IHRpbGNkY19wYW5lbF9pbmZvICppbmZvKTsKIHZvaWQgdGlsY2RjX2NydGNfc2V0X3NpbXVsYXRlX3Zlc2Ffc3luYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJCWJvb2wgc2ltdWxhdGVfdmVzYV9zeW5jKTsKLWludCB0aWxjZGNfY3J0Y19tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwogaW50IHRpbGNkY19jcnRjX21heF93aWR0aChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogdm9pZCB0aWxjZGNfY3J0Y19zaHV0ZG93bihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogaW50IHRpbGNkY19jcnRjX3VwZGF0ZV9mYihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19leHRlcm5hbC5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZXh0ZXJuYWwuYwppbmRleCA3MDUwZWI0Li40M2Q3NTZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19leHRlcm5hbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2V4dGVybmFsLmMKQEAgLTYsNiArNiw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgogCkBAIC0zNyw2NCArMzgsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRpbGNkY19wYW5lbF9pbmZvIHBhbmVsX2luZm9fZGVmYXVsdCA9IHsKIAkJLnJhc3Rlcl9vcmRlciAgICAgICAgICAgPSAwLAogfTsKIAotc3RhdGljIGludCB0aWxjZGNfZXh0ZXJuYWxfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAotCQkJCSAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQotewotCXN0cnVjdCB0aWxjZGNfZHJtX3ByaXZhdGUgKnByaXYgPSBjb25uZWN0b3ItPmRldi0+ZGV2X3ByaXZhdGU7Ci0JaW50IHJldDsKLQotCXJldCA9IHRpbGNkY19jcnRjX21vZGVfdmFsaWQocHJpdi0+Y3J0YywgbW9kZSk7Ci0JaWYgKHJldCAhPSBNT0RFX09LKQotCQlyZXR1cm4gcmV0OwotCi0JQlVHX09OKHByaXYtPmV4dGVybmFsX2Nvbm5lY3RvciAhPSBjb25uZWN0b3IpOwotCUJVR19PTighcHJpdi0+Y29ubmVjdG9yX2Z1bmNzKTsKLQotCS8qIElmIHRoZSBjb25uZWN0b3IgaGFzIGl0cyBvd24gbW9kZV92YWxpZCBjYWxsIGl0LiAqLwotCWlmICghSVNfRVJSKHByaXYtPmNvbm5lY3Rvcl9mdW5jcykgJiYKLQkgICAgcHJpdi0+Y29ubmVjdG9yX2Z1bmNzLT5tb2RlX3ZhbGlkKQotCQlyZXR1cm4gcHJpdi0+Y29ubmVjdG9yX2Z1bmNzLT5tb2RlX3ZhbGlkKGNvbm5lY3RvciwgbW9kZSk7Ci0KLQlyZXR1cm4gTU9ERV9PSzsKLX0KLQotc3RhdGljIGludCB0aWxjZGNfYWRkX2V4dGVybmFsX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlzdHJ1Y3QgdGlsY2RjX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgKmNvbm5lY3Rvcl9mdW5jczsKLQotCS8qIFRoZXJlIHNob3VsZCBuZXZlciBiZSBtb3JlIHRoYW4gb25lIGNvbm5lY3RvciAqLwotCWlmIChXQVJOX09OKHByaXYtPmV4dGVybmFsX2Nvbm5lY3RvcikpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JcHJpdi0+ZXh0ZXJuYWxfY29ubmVjdG9yID0gY29ubmVjdG9yOwotCWNvbm5lY3Rvcl9mdW5jcyA9IGRldm1fa3phbGxvYyhkZXYtPmRldiwgc2l6ZW9mKCpjb25uZWN0b3JfZnVuY3MpLAotCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKLQlpZiAoIWNvbm5lY3Rvcl9mdW5jcykKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkvKiBjb25uZWN0b3ItPmhlbHBlcl9wcml2YXRlIGNvbnRhaW5zIGFsd2F5cyBzdHJ1Y3QKLQkgKiBjb25uZWN0b3JfaGVscGVyX2Z1bmNzIHBvaW50ZXIuIEZvciB0aWxjZGMgY3J0YyB0byBoYXZlIGEKLQkgKiBzYXkgaWYgYSBzcGVjaWZpYyBtb2RlIGlzIE9rLCB3ZSBuZWVkIHRvIGluc3RhbGwgb3VyIG93bgotCSAqIGhlbHBlciBmdW5jdGlvbnMuIEluIG91ciBoZWxwZXIgZnVuY3Rpb25zIHdlIGNvcHkKLQkgKiBldmVyeXRoaW5nIGVsc2UgYnV0IHVzZSBvdXIgb3duIG1vZGVfdmFsaWQoKSAoYWJvdmUpLgotCSAqLwotCWlmIChjb25uZWN0b3ItPmhlbHBlcl9wcml2YXRlKSB7Ci0JCXByaXYtPmNvbm5lY3Rvcl9mdW5jcyA9CWNvbm5lY3Rvci0+aGVscGVyX3ByaXZhdGU7Ci0JCSpjb25uZWN0b3JfZnVuY3MgPSAqcHJpdi0+Y29ubmVjdG9yX2Z1bmNzOwotCX0gZWxzZSB7Ci0JCXByaXYtPmNvbm5lY3Rvcl9mdW5jcyA9IEVSUl9QVFIoLUVOT0VOVCk7Ci0JfQotCWNvbm5lY3Rvcl9mdW5jcy0+bW9kZV92YWxpZCA9IHRpbGNkY19leHRlcm5hbF9tb2RlX3ZhbGlkOwotCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsIGNvbm5lY3Rvcl9mdW5jcyk7Ci0KLQlkZXZfZGJnKGRldi0+ZGV2LCAiRXh0ZXJuYWwgY29ubmVjdG9yICclcycgY29ubmVjdGVkXG4iLAotCQljb25uZWN0b3ItPm5hbWUpOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYwogc3RydWN0IGRybV9jb25uZWN0b3IgKnRpbGNkY19lbmNvZGVyX2ZpbmRfY29ubmVjdG9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2LAogCQkJCQkJICAgIHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKQEAgLTExNSw3ICs1OCw2IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yICp0aWxjZGNfZW5jb2Rlcl9maW5kX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiwKIGludCB0aWxjZGNfYWRkX2NvbXBvbmVudF9lbmNvZGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2KQogewogCXN0cnVjdCB0aWxjZGNfZHJtX3ByaXZhdGUgKnByaXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5jb2RlciwgJmRkZXYtPm1vZGVfY29uZmlnLmVuY29kZXJfbGlzdCwgaGVhZCkKQEAgLTEyNywyOCArNjksMTcgQEAgaW50IHRpbGNkY19hZGRfY29tcG9uZW50X2VuY29kZXIoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYpCiAJCXJldHVybiAtRU5PREVWOwogCX0KIAotCWNvbm5lY3RvciA9IHRpbGNkY19lbmNvZGVyX2ZpbmRfY29ubmVjdG9yKGRkZXYsIGVuY29kZXIpOworCXByaXYtPmV4dGVybmFsX2Nvbm5lY3RvciA9CisJCXRpbGNkY19lbmNvZGVyX2ZpbmRfY29ubmVjdG9yKGRkZXYsIGVuY29kZXIpOwogCi0JaWYgKCFjb25uZWN0b3IpCisJaWYgKCFwcml2LT5leHRlcm5hbF9jb25uZWN0b3IpCiAJCXJldHVybiAtRU5PREVWOwogCiAJLyogT25seSB0ZGE5OTh4IGlzIHN1cHBvcnRlZCBhdCB0aGUgbW9tZW50LiAqLwogCXRpbGNkY19jcnRjX3NldF9zaW11bGF0ZV92ZXNhX3N5bmMocHJpdi0+Y3J0YywgdHJ1ZSk7CiAJdGlsY2RjX2NydGNfc2V0X3BhbmVsX2luZm8ocHJpdi0+Y3J0YywgJnBhbmVsX2luZm9fdGRhOTk4eCk7CiAKLQlyZXR1cm4gdGlsY2RjX2FkZF9leHRlcm5hbF9jb25uZWN0b3IoZGRldiwgY29ubmVjdG9yKTsKLX0KLQotdm9pZCB0aWxjZGNfcmVtb3ZlX2V4dGVybmFsX2RldmljZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCB0aWxjZGNfZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JLyogUmVzdG9yZSB0aGUgb3JpZ2luYWwgaGVscGVyIGZ1bmN0aW9ucywgaWYgYW55LiAqLwotCWlmIChJU19FUlIocHJpdi0+Y29ubmVjdG9yX2Z1bmNzKSkKLQkJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKHByaXYtPmV4dGVybmFsX2Nvbm5lY3RvciwgTlVMTCk7Ci0JZWxzZSBpZiAocHJpdi0+Y29ubmVjdG9yX2Z1bmNzKQotCQlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQocHJpdi0+ZXh0ZXJuYWxfY29ubmVjdG9yLAotCQkJCQkgcHJpdi0+Y29ubmVjdG9yX2Z1bmNzKTsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyB0aWxjZGNfZXh0ZXJuYWxfZW5jb2Rlcl9mdW5jcyA9IHsKQEAgLTE1OSw3ICs5MCw2IEBAIHN0YXRpYwogaW50IHRpbGNkY19hdHRhY2hfYnJpZGdlKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2LCBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQogewogCXN0cnVjdCB0aWxjZGNfZHJtX3ByaXZhdGUgKnByaXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCWludCByZXQ7CiAKIAlwcml2LT5leHRlcm5hbF9lbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyA9IEJJVCgwKTsKQEAgLTE3MiwxMyArMTAyLDEyIEBAIGludCB0aWxjZGNfYXR0YWNoX2JyaWRnZShzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiwgc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKIAogCXRpbGNkY19jcnRjX3NldF9wYW5lbF9pbmZvKHByaXYtPmNydGMsICZwYW5lbF9pbmZvX2RlZmF1bHQpOwogCi0JY29ubmVjdG9yID0gdGlsY2RjX2VuY29kZXJfZmluZF9jb25uZWN0b3IoZGRldiwgcHJpdi0+ZXh0ZXJuYWxfZW5jb2Rlcik7Ci0JaWYgKCFjb25uZWN0b3IpCisJcHJpdi0+ZXh0ZXJuYWxfY29ubmVjdG9yID0KKwkJdGlsY2RjX2VuY29kZXJfZmluZF9jb25uZWN0b3IoZGRldiwgcHJpdi0+ZXh0ZXJuYWxfZW5jb2Rlcik7CisJaWYgKCFwcml2LT5leHRlcm5hbF9jb25uZWN0b3IpCiAJCXJldHVybiAtRU5PREVWOwogCi0JcmV0ID0gdGlsY2RjX2FkZF9leHRlcm5hbF9jb25uZWN0b3IoZGRldiwgY29ubmVjdG9yKTsKLQotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIGludCB0aWxjZGNfYXR0YWNoX2V4dGVybmFsX2RldmljZShzdHJ1Y3QgZHJtX2RldmljZSAqZGRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2V4dGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19leHRlcm5hbC5oCmluZGV4IDcwMjRiNDguLmZiNDQ3NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2V4dGVybmFsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZXh0ZXJuYWwuaApAQCAtOCw3ICs4LDYgQEAKICNkZWZpbmUgX19USUxDRENfRVhURVJOQUxfSF9fCiAKIGludCB0aWxjZGNfYWRkX2NvbXBvbmVudF9lbmNvZGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotdm9pZCB0aWxjZGNfcmVtb3ZlX2V4dGVybmFsX2RldmljZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGludCB0aWxjZGNfZ2V0X2V4dGVybmFsX2NvbXBvbmVudHMoc3RydWN0IGRldmljZSAqZGV2LAogCQkJCSAgIHN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKiptYXRjaCk7CiBpbnQgdGlsY2RjX2F0dGFjaF9leHRlcm5hbF9kZXZpY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3BhbmVsLmMKaW5kZXggMjJiMTAwZC4uNTU4NGU2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wYW5lbC5jCkBAIC00LDE0ICs0LDE3IEBACiAgKiBBdXRob3I6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvcGluY3RybC9waW5tdXguaD4KLSNpbmNsdWRlIDxsaW51eC9waW5jdHJsL2NvbnN1bWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CiAjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvY29uc3VtZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKwogI2luY2x1ZGUgPHZpZGVvL2Rpc3BsYXlfdGltaW5nLmg+CiAjaW5jbHVkZSA8dmlkZW8vb2ZfZGlzcGxheV90aW1pbmcuaD4KICNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fY29ubmVjdG9yLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KIAogI2luY2x1ZGUgInRpbGNkY19kcnYuaCIKQEAgLTE2MCwxNCArMTYzLDYgQEAgc3RhdGljIGludCBwYW5lbF9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAJcmV0dXJuIGk7CiB9CiAKLXN0YXRpYyBpbnQgcGFuZWxfY29ubmVjdG9yX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKLQkJICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKLXsKLQlzdHJ1Y3QgdGlsY2RjX2RybV9wcml2YXRlICpwcml2ID0gY29ubmVjdG9yLT5kZXYtPmRldl9wcml2YXRlOwotCS8qIG91ciBvbmx5IGNvbnN0cmFpbnRzIGFyZSB3aGF0IHRoZSBjcnRjIGNhbiBnZW5lcmF0ZTogKi8KLQlyZXR1cm4gdGlsY2RjX2NydGNfbW9kZV92YWxpZChwcml2LT5jcnRjLCBtb2RlKTsKLX0KLQogc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqcGFuZWxfY29ubmVjdG9yX2Jlc3RfZW5jb2RlcigKIAkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKQEAgLTE4NSw3ICsxODAsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgcGFuZWxfY29ubmVjdG9yX2Z1bmNzID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHBhbmVsX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7CiAJLmdldF9tb2RlcyAgICAgICAgICA9IHBhbmVsX2Nvbm5lY3Rvcl9nZXRfbW9kZXMsCi0JLm1vZGVfdmFsaWQgICAgICAgICA9IHBhbmVsX2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkLAogCS5iZXN0X2VuY29kZXIgICAgICAgPSBwYW5lbF9jb25uZWN0b3JfYmVzdF9lbmNvZGVyLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3BsYW5lLmMKaW5kZXggOGMyNzc2YS4uM2FiYjk2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wbGFuZS5jCkBAIC00LDEyICs0LDEwIEBACiAgKiBBdXRob3I6IEp5cmkgU2FyaGEgPGpzYXJoYUB0aS5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8dWFwaS9kcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAKICNpbmNsdWRlICJ0aWxjZGNfZHJ2LmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3RmcDQxMC5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfdGZwNDEwLmMKaW5kZXggNjJkMDE0Yy4uNTI1ZGMxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfdGZwNDEwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfdGZwNDEwLmMKQEAgLTQsMTIgKzQsMTQgQEAKICAqIEF1dGhvcjogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZ3Bpby5oPgotI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvcGlubXV4Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGluY3RybC9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KIAogI2luY2x1ZGUgInRpbGNkY19kcnYuaCIKQEAgLTE3MywxNCArMTc1LDYgQEAgc3RhdGljIGludCB0ZnA0MTBfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgdGZwNDEwX2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCi0JCSAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCi17Ci0Jc3RydWN0IHRpbGNkY19kcm1fcHJpdmF0ZSAqcHJpdiA9IGNvbm5lY3Rvci0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQkvKiBvdXIgb25seSBjb25zdHJhaW50cyBhcmUgd2hhdCB0aGUgY3J0YyBjYW4gZ2VuZXJhdGU6ICovCi0JcmV0dXJuIHRpbGNkY19jcnRjX21vZGVfdmFsaWQocHJpdi0+Y3J0YywgbW9kZSk7Ci19Ci0KIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKnRmcDQxMF9jb25uZWN0b3JfYmVzdF9lbmNvZGVyKAogCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewpAQCAtMTk5LDcgKzE5Myw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyB0ZnA0MTBfY29ubmVjdG9yX2Z1bmNzID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHRmcDQxMF9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewogCS5nZXRfbW9kZXMgICAgICAgICAgPSB0ZnA0MTBfY29ubmVjdG9yX2dldF9tb2RlcywKLQkubW9kZV92YWxpZCAgICAgICAgID0gdGZwNDEwX2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkLAogCS5iZXN0X2VuY29kZXIgICAgICAgPSB0ZnA0MTBfY29ubmVjdG9yX2Jlc3RfZW5jb2RlciwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwNDc2MzQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnCkBAIC0wLDAgKzEsOTkgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorCitjb25maWcgRFJNX0dNMTJVMzIwCisJdHJpc3RhdGUgIkdNMTJVMzIwIGRyaXZlciBmb3IgVVNCIHByb2plY3RvcnMiCisJZGVwZW5kcyBvbiBEUk0gJiYgVVNCCisJc2VsZWN0IERSTV9LTVNfSEVMUEVSCisJc2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSCisJaGVscAorCSBUaGlzIGlzIGEgS01TIGRyaXZlciBmb3IgcHJvamVjdG9ycyB3aGljaCB1c2UgdGhlIEdNMTJVMzIwIGNoaXBzZXQKKwkgZm9yIHZpZGVvIHRyYW5zZmVyIG92ZXIgVVNCMi8zLCBzdWNoIGFzIHRoZSBBY2VyIEMxMjAgbWluaSBwcm9qZWN0b3IuCisKK2NvbmZpZyBUSU5ZRFJNX0hYODM1N0QKKwl0cmlzdGF0ZSAiRFJNIHN1cHBvcnQgZm9yIEhYODM1N0QgZGlzcGxheSBwYW5lbHMiCisJZGVwZW5kcyBvbiBEUk0gJiYgU1BJCisJc2VsZWN0IERSTV9LTVNfSEVMUEVSCisJc2VsZWN0IERSTV9LTVNfQ01BX0hFTFBFUgorCXNlbGVjdCBEUk1fTUlQSV9EQkkKKwlzZWxlY3QgQkFDS0xJR0hUX0NMQVNTX0RFVklDRQorCWhlbHAKKwkgIERSTSBkcml2ZXIgZm9yIHRoZSBmb2xsb3dpbmcgSFg4MzU3RCBwYW5lbHM6CisJICAqIFlYMzUwSFYxNS1UIDMuNSIgMzQweDM1MCBURlQgKEFkYWZydWl0IDMuNSIpCisKKwkgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBoeDgzNTdkLgorCitjb25maWcgVElOWURSTV9JTEk5MjI1CisJdHJpc3RhdGUgIkRSTSBzdXBwb3J0IGZvciBJTEk5MjI1IGRpc3BsYXkgcGFuZWxzIgorCWRlcGVuZHMgb24gRFJNICYmIFNQSQorCXNlbGVjdCBEUk1fS01TX0hFTFBFUgorCXNlbGVjdCBEUk1fS01TX0NNQV9IRUxQRVIKKwlzZWxlY3QgRFJNX01JUElfREJJCisJaGVscAorCSAgRFJNIGRyaXZlciBmb3IgdGhlIGZvbGxvd2luZyBJbGl0ZWsgSUxJOTIyNSBwYW5lbHM6CisJICAqIE5vLW5hbWUgMi4yIiBjb2xvciBzY3JlZW4gbW9kdWxlCisKKwkgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBpbGk5MjI1LgorCitjb25maWcgVElOWURSTV9JTEk5MzQxCisJdHJpc3RhdGUgIkRSTSBzdXBwb3J0IGZvciBJTEk5MzQxIGRpc3BsYXkgcGFuZWxzIgorCWRlcGVuZHMgb24gRFJNICYmIFNQSQorCXNlbGVjdCBEUk1fS01TX0hFTFBFUgorCXNlbGVjdCBEUk1fS01TX0NNQV9IRUxQRVIKKwlzZWxlY3QgRFJNX01JUElfREJJCisJc2VsZWN0IEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKKwloZWxwCisJICBEUk0gZHJpdmVyIGZvciB0aGUgZm9sbG93aW5nIElsaXRlayBJTEk5MzQxIHBhbmVsczoKKwkgICogWVgyNDBRVjI5LVQgMi40IiAyNDB4MzIwIFRGVCAoQWRhZnJ1aXQgMi40IikKKworCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGlsaTkzNDEuCisKK2NvbmZpZyBUSU5ZRFJNX01JMDI4M1FUCisJdHJpc3RhdGUgIkRSTSBzdXBwb3J0IGZvciBNSTAyODNRVCIKKwlkZXBlbmRzIG9uIERSTSAmJiBTUEkKKwlzZWxlY3QgRFJNX0tNU19IRUxQRVIKKwlzZWxlY3QgRFJNX0tNU19DTUFfSEVMUEVSCisJc2VsZWN0IERSTV9NSVBJX0RCSQorCXNlbGVjdCBCQUNLTElHSFRfQ0xBU1NfREVWSUNFCisJaGVscAorCSAgRFJNIGRyaXZlciBmb3IgdGhlIE11bHRpLUlubm8gTUkwMjgzUVQgZGlzcGxheSBwYW5lbAorCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIG1pMDI4M3F0LgorCitjb25maWcgVElOWURSTV9SRVBBUEVSCisJdHJpc3RhdGUgIkRSTSBzdXBwb3J0IGZvciBQZXJ2YXNpdmUgRGlzcGxheXMgUmVQYXBlciBwYW5lbHMgKFYyMzEpIgorCWRlcGVuZHMgb24gRFJNICYmIFNQSQorCXNlbGVjdCBEUk1fS01TX0hFTFBFUgorCXNlbGVjdCBEUk1fS01TX0NNQV9IRUxQRVIKKwlkZXBlbmRzIG9uIFRIRVJNQUwgfHwgIVRIRVJNQUwKKwloZWxwCisJICBEUk0gZHJpdmVyIGZvciB0aGUgZm9sbG93aW5nIFBlcnZhc2l2ZSBEaXNwbGF5cyBwYW5lbHM6CisJICAxLjQ0IiBURlQgRVBEIFBhbmVsIChFMTE0NENTMDIxKQorCSAgMS45MCIgVEZUIEVQRCBQYW5lbCAoRTExOTBDUzAyMSkKKwkgIDIuMDAiIFRGVCBFUEQgUGFuZWwgKEUyMjAwQ1MwMjEpCisJICAyLjcxIiBURlQgRVBEIFBhbmVsIChFMjI3MUNTMDIxKQorCisJICBJZiBNIGlzIHNlbGVjdGVkIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcmVwYXBlci4KKworY29uZmlnIFRJTllEUk1fU1Q3NTg2CisJdHJpc3RhdGUgIkRSTSBzdXBwb3J0IGZvciBTaXRyb25peCBTVDc1ODYgZGlzcGxheSBwYW5lbHMiCisJZGVwZW5kcyBvbiBEUk0gJiYgU1BJCisJc2VsZWN0IERSTV9LTVNfSEVMUEVSCisJc2VsZWN0IERSTV9LTVNfQ01BX0hFTFBFUgorCXNlbGVjdCBEUk1fTUlQSV9EQkkKKwloZWxwCisJICBEUk0gZHJpdmVyIGZvciB0aGUgZm9sbG93aW5nIFNpdHJvbml4IFNUNzU4NiBwYW5lbHM6CisJICAqIExFR08gTUlORFNUT1JNUyBFVjMKKworCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHN0NzU4Ni4KKworY29uZmlnIFRJTllEUk1fU1Q3NzM1UgorCXRyaXN0YXRlICJEUk0gc3VwcG9ydCBmb3IgU2l0cm9uaXggU1Q3NzM1UiBkaXNwbGF5IHBhbmVscyIKKwlkZXBlbmRzIG9uIERSTSAmJiBTUEkKKwlzZWxlY3QgRFJNX0tNU19IRUxQRVIKKwlzZWxlY3QgRFJNX0tNU19DTUFfSEVMUEVSCisJc2VsZWN0IERSTV9NSVBJX0RCSQorCXNlbGVjdCBCQUNLTElHSFRfQ0xBU1NfREVWSUNFCisJaGVscAorCSAgRFJNIGRyaXZlciBTaXRyb25peCBTVDc3MzVSIHdpdGggb25lIG9mIHRoZSBmb2xsb3dpbmcgTENEczoKKwkgICogSkQtVDE4MDAzLVQwMSAxLjgiIDEyOHgxNjAgVEZUCisKKwkgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzdDc3MzVyLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbnkvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTZjZjMxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvTWFrZWZpbGUKQEAgLTAsMCArMSwxMCBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisKK29iai0kKENPTkZJR19EUk1fR00xMlUzMjApCQkrPSBnbTEydTMyMC5vCitvYmotJChDT05GSUdfVElOWURSTV9IWDgzNTdEKQkJKz0gaHg4MzU3ZC5vCitvYmotJChDT05GSUdfVElOWURSTV9JTEk5MjI1KQkJKz0gaWxpOTIyNS5vCitvYmotJChDT05GSUdfVElOWURSTV9JTEk5MzQxKQkJKz0gaWxpOTM0MS5vCitvYmotJChDT05GSUdfVElOWURSTV9NSTAyODNRVCkJCSs9IG1pMDI4M3F0Lm8KK29iai0kKENPTkZJR19USU5ZRFJNX1JFUEFQRVIpCQkrPSByZXBhcGVyLm8KK29iai0kKENPTkZJR19USU5ZRFJNX1NUNzU4NikJCSs9IHN0NzU4Ni5vCitvYmotJChDT05GSUdfVElOWURSTV9TVDc3MzVSKQkJKz0gc3Q3NzM1ci5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueS9nbTEydTMyMC5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvZ20xMnUzMjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2QwZTJkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvZ20xMnUzMjAuYwpAQCAtMCwwICsxLDgwNCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisvKgorICogQ29weXJpZ2h0IDIwMTkgSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3JtYXRfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9zaG1lbV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lvY3RsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKworc3RhdGljIGJvb2wgZWNvX21vZGU7Cittb2R1bGVfcGFyYW0oZWNvX21vZGUsIGJvb2wsIDA2NDQpOworTU9EVUxFX1BBUk1fREVTQyhlY29fbW9kZSwgIlR1cm4gb24gRWNvIG1vZGUgKGxlc3MgYnJpZ2h0LCBtb3JlIHNpbGVudCkiKTsKKworI2RlZmluZSBEUklWRVJfTkFNRQkJImdtMTJ1MzIwIgorI2RlZmluZSBEUklWRVJfREVTQwkJIkdyYWluIE1lZGlhIEdNMTJVMzIwIFVTQiBwcm9qZWN0b3IgZGlzcGxheSIKKyNkZWZpbmUgRFJJVkVSX0RBVEUJCSIyMDE5IgorI2RlZmluZSBEUklWRVJfTUFKT1IJCTEKKyNkZWZpbmUgRFJJVkVSX01JTk9SCQkwCisKKy8qCisgKiBUaGUgRExQIGhhcyBhbiBhY3R1YWwgd2lkdGggb2YgODU0IHBpeGVscywgYnV0IHRoYXQgaXMgbm90IGEgbXVsdGlwbGUKKyAqIG9mIDgsIGJyZWFraW5nIHRoaW5ncyBsZWZ0IGFuZCByaWdodCwgc28gd2UgZXhwb3J0IGEgd2lkdGggb2YgODQ4LgorICovCisjZGVmaW5lIEdNMTJVMzIwX1VTRVJfV0lEVEgJCTg0OAorI2RlZmluZSBHTTEyVTMyMF9SRUFMX1dJRFRICQk4NTQKKyNkZWZpbmUgR00xMlUzMjBfSEVJR0hUCQkJNDgwCisKKyNkZWZpbmUgR00xMlUzMjBfQkxPQ0tfQ09VTlQJCTIwCisKKyNkZWZpbmUgR00xMlUzMjBfRVJSKGZtdCwgLi4uKSBcCisJRFJNX0RFVl9FUlJPUigmZ20xMnUzMjAtPnVkZXYtPmRldiwgZm10LCAjI19fVkFfQVJHU19fKQorCisjZGVmaW5lIE1JU0NfUkNWX0VQVAkJCTEKKyNkZWZpbmUgREFUQV9SQ1ZfRVBUCQkJMgorI2RlZmluZSBEQVRBX1NORF9FUFQJCQkzCisjZGVmaW5lIE1JU0NfU05EX0VQVAkJCTQKKworI2RlZmluZSBEQVRBX0JMT0NLX0hFQURFUl9TSVpFCQk4NAorI2RlZmluZSBEQVRBX0JMT0NLX0NPTlRFTlRfU0laRQkJNjQ1MTIKKyNkZWZpbmUgREFUQV9CTE9DS19GT09URVJfU0laRQkJMjAKKyNkZWZpbmUgREFUQV9CTE9DS19TSVpFCQkJKERBVEFfQkxPQ0tfSEVBREVSX1NJWkUgKyBcCisJCQkJCSBEQVRBX0JMT0NLX0NPTlRFTlRfU0laRSArIFwKKwkJCQkJIERBVEFfQkxPQ0tfRk9PVEVSX1NJWkUpCisjZGVmaW5lIERBVEFfTEFTVF9CTE9DS19DT05URU5UX1NJWkUJNDAzMgorI2RlZmluZSBEQVRBX0xBU1RfQkxPQ0tfU0laRQkJKERBVEFfQkxPQ0tfSEVBREVSX1NJWkUgKyBcCisJCQkJCSBEQVRBX0xBU1RfQkxPQ0tfQ09OVEVOVF9TSVpFICsgXAorCQkJCQkgREFUQV9CTE9DS19GT09URVJfU0laRSkKKworI2RlZmluZSBDTURfU0laRQkJCTMxCisjZGVmaW5lIFJFQURfU1RBVFVTX1NJWkUJCTEzCisjZGVmaW5lIE1JU0NfVkFMVUVfU0laRQkJCTQKKworI2RlZmluZSBDTURfVElNRU9VVAkJCW1zZWNzX3RvX2ppZmZpZXMoMjAwKQorI2RlZmluZSBEQVRBX1RJTUVPVVQJCQltc2Vjc190b19qaWZmaWVzKDEwMDApCisjZGVmaW5lIElETEVfVElNRU9VVAkJCW1zZWNzX3RvX2ppZmZpZXMoMjAwMCkKKyNkZWZpbmUgRklSU1RfRlJBTUVfVElNRU9VVAkJbXNlY3NfdG9famlmZmllcygyMDAwKQorCisjZGVmaW5lIE1JU0NfUkVRX0dFVF9TRVRfRUNPX0EJCTB4ZmYKKyNkZWZpbmUgTUlTQ19SRVFfR0VUX1NFVF9FQ09fQgkJMHgzNQorLyogV2luZG93cyBkcml2ZXIgZG9lcyBvbmNlIGV2ZXJ5IHNlY29uZCwgd2l0aCBhcmcgZCA9IDEsIG90aGVyIGFyZ3MgMCAqLworI2RlZmluZSBNSVNDX1JFUV9VTktOT1dOMV9BCQkweGZmCisjZGVmaW5lIE1JU0NfUkVRX1VOS05PV04xX0IJCTB4MzgKKy8qIFdpbmRvd3MgZHJpdmVyIGRvZXMgdGhpcyBvbiBpbml0LCB3aXRoIGFyZyBhLCBiID0gMCwgYyA9IDB4YTAsIGQgPSA0ICovCisjZGVmaW5lIE1JU0NfUkVRX1VOS05PV04yX0EJCTB4YTUKKyNkZWZpbmUgTUlTQ19SRVFfVU5LTk9XTjJfQgkJMHgwMAorCitzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlIHsKKwlzdHJ1Y3QgZHJtX2RldmljZQkgICAgICAgICBkZXY7CisJc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICAgcGlwZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvcgkgICAgICAgICBjb25uOworCXN0cnVjdCB1c2JfZGV2aWNlICAgICAgICAgICAgICAgKnVkZXY7CisJdW5zaWduZWQgY2hhciAgICAgICAgICAgICAgICAgICAqY21kX2J1ZjsKKwl1bnNpZ25lZCBjaGFyICAgICAgICAgICAgICAgICAgICpkYXRhX2J1ZltHTTEyVTMyMF9CTE9DS19DT1VOVF07CisJYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlwZV9lbmFibGVkOworCXN0cnVjdCB7CisJCWJvb2wgICAgICAgICAgICAgICAgICAgICBydW47CisJCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3b3JrcTsKKwkJc3RydWN0IHdvcmtfc3RydWN0ICAgICAgIHdvcms7CisJCXdhaXRfcXVldWVfaGVhZF90ICAgICAgICB3YWl0cTsKKwkJc3RydWN0IG11dGV4ICAgICAgICAgICAgIGxvY2s7CisJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgICpmYjsKKwkJc3RydWN0IGRybV9yZWN0ICAgICAgICAgIHJlY3Q7CisJfSBmYl91cGRhdGU7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciBjbWRfZGF0YVtDTURfU0laRV0gPSB7CisJMHg1NSwgMHg1MywgMHg0MiwgMHg0MywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkweDY4LCAweGZjLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEwLCAweGZmLAorCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmMsIDB4MDAsIDB4ODAsIDB4MDAsCisJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgY21kX2RyYXdbQ01EX1NJWkVdID0geworCTB4NTUsIDB4NTMsIDB4NDIsIDB4NDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMCwgMHhmZSwKKwkweDAwLCAweDAwLCAweDAwLCAweGMwLCAweGQxLCAweDA1LCAweDAwLCAweDQwLAorCTB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAKK307CisKK3N0YXRpYyBjb25zdCBjaGFyIGNtZF9taXNjW0NNRF9TSVpFXSA9IHsKKwkweDU1LCAweDUzLCAweDQyLCAweDQzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorCTB4MDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4MDEsIDB4MTAsIDB4ZmQsCisJMHgwMCwgMHgwMCwgMHgwMCwgMHhjMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwCit9OworCitzdGF0aWMgY29uc3QgY2hhciBkYXRhX2Jsb2NrX2hlYWRlcltEQVRBX0JMT0NLX0hFQURFUl9TSVpFXSA9IHsKKwkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJMHhmYiwgMHgxNCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkweDAwLCAweDA0LCAweDE1LCAweDAwLCAweDAwLCAweGZjLCAweDAwLCAweDAwLAorCTB4MDEsIDB4MDAsIDB4MDAsIDB4ZGIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyIGRhdGFfbGFzdF9ibG9ja19oZWFkZXJbREFUQV9CTE9DS19IRUFERVJfU0laRV0gPSB7CisJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorCTB4ZmIsIDB4MTQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJMHgyYSwgMHgwMCwgMHgyMCwgMHgwMCwgMHhjMCwgMHgwZiwgMHgwMCwgMHgwMCwKKwkweDAxLCAweDAwLCAweDAwLCAweGQ3Cit9OworCitzdGF0aWMgY29uc3QgY2hhciBkYXRhX2Jsb2NrX2Zvb3RlcltEQVRBX0JMT0NLX0ZPT1RFUl9TSVpFXSA9IHsKKwkweGZiLCAweDE0LCAweDAyLCAweDIwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJMHg4MCwgMHgwMCwgMHgwMCwgMHg0ZgorfTsKKworc3RhdGljIGludCBnbTEydTMyMF91c2JfYWxsb2Moc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjApCit7CisJaW50IGksIGJsb2NrX3NpemU7CisJY29uc3QgY2hhciAqaGRyOworCisJZ20xMnUzMjAtPmNtZF9idWYgPSBrbWFsbG9jKENNRF9TSVpFLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWdtMTJ1MzIwLT5jbWRfYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAoaSA9IDA7IGkgPCBHTTEyVTMyMF9CTE9DS19DT1VOVDsgaSsrKSB7CisJCWlmIChpID09IEdNMTJVMzIwX0JMT0NLX0NPVU5UIC0gMSkgeworCQkJYmxvY2tfc2l6ZSA9IERBVEFfTEFTVF9CTE9DS19TSVpFOworCQkJaGRyID0gZGF0YV9sYXN0X2Jsb2NrX2hlYWRlcjsKKwkJfSBlbHNlIHsKKwkJCWJsb2NrX3NpemUgPSBEQVRBX0JMT0NLX1NJWkU7CisJCQloZHIgPSBkYXRhX2Jsb2NrX2hlYWRlcjsKKwkJfQorCisJCWdtMTJ1MzIwLT5kYXRhX2J1ZltpXSA9IGt6YWxsb2MoYmxvY2tfc2l6ZSwgR0ZQX0tFUk5FTCk7CisJCWlmICghZ20xMnUzMjAtPmRhdGFfYnVmW2ldKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJbWVtY3B5KGdtMTJ1MzIwLT5kYXRhX2J1ZltpXSwgaGRyLCBEQVRBX0JMT0NLX0hFQURFUl9TSVpFKTsKKwkJbWVtY3B5KGdtMTJ1MzIwLT5kYXRhX2J1ZltpXSArCisJCQkJKGJsb2NrX3NpemUgLSBEQVRBX0JMT0NLX0ZPT1RFUl9TSVpFKSwKKwkJICAgICAgIGRhdGFfYmxvY2tfZm9vdGVyLCBEQVRBX0JMT0NLX0ZPT1RFUl9TSVpFKTsKKwl9CisKKwlnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmtxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoRFJJVkVSX05BTUUpOworCWlmICghZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrcSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZ20xMnUzMjBfdXNiX2ZyZWUoc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjApCit7CisJaW50IGk7CisKKwlpZiAoZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrcSkKKwkJZGVzdHJveV93b3JrcXVldWUoZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrcSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgR00xMlUzMjBfQkxPQ0tfQ09VTlQ7IGkrKykKKwkJa2ZyZWUoZ20xMnUzMjAtPmRhdGFfYnVmW2ldKTsKKworCWtmcmVlKGdtMTJ1MzIwLT5jbWRfYnVmKTsKK30KKworc3RhdGljIGludCBnbTEydTMyMF9taXNjX3JlcXVlc3Qoc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAsCisJCQkJIHU4IHJlcV9hLCB1OCByZXFfYiwKKwkJCQkgdTggYXJnX2EsIHU4IGFyZ19iLCB1OCBhcmdfYywgdTggYXJnX2QpCit7CisJaW50IHJldCwgbGVuOworCisJbWVtY3B5KGdtMTJ1MzIwLT5jbWRfYnVmLCAmY21kX21pc2MsIENNRF9TSVpFKTsKKwlnbTEydTMyMC0+Y21kX2J1ZlsyMF0gPSByZXFfYTsKKwlnbTEydTMyMC0+Y21kX2J1ZlsyMV0gPSByZXFfYjsKKwlnbTEydTMyMC0+Y21kX2J1ZlsyMl0gPSBhcmdfYTsKKwlnbTEydTMyMC0+Y21kX2J1ZlsyM10gPSBhcmdfYjsKKwlnbTEydTMyMC0+Y21kX2J1ZlsyNF0gPSBhcmdfYzsKKwlnbTEydTMyMC0+Y21kX2J1ZlsyNV0gPSBhcmdfZDsKKworCS8qIFNlbmQgcmVxdWVzdCAqLworCXJldCA9IHVzYl9idWxrX21zZyhnbTEydTMyMC0+dWRldiwKKwkJCSAgIHVzYl9zbmRidWxrcGlwZShnbTEydTMyMC0+dWRldiwgTUlTQ19TTkRfRVBUKSwKKwkJCSAgIGdtMTJ1MzIwLT5jbWRfYnVmLCBDTURfU0laRSwgJmxlbiwgQ01EX1RJTUVPVVQpOworCWlmIChyZXQgfHwgbGVuICE9IENNRF9TSVpFKSB7CisJCUdNMTJVMzIwX0VSUigiTWlzYy4gcmVxLiBlcnJvciAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJLyogUmVhZCB2YWx1ZSAqLworCXJldCA9IHVzYl9idWxrX21zZyhnbTEydTMyMC0+dWRldiwKKwkJCSAgIHVzYl9yY3ZidWxrcGlwZShnbTEydTMyMC0+dWRldiwgTUlTQ19SQ1ZfRVBUKSwKKwkJCSAgIGdtMTJ1MzIwLT5jbWRfYnVmLCBNSVNDX1ZBTFVFX1NJWkUsICZsZW4sCisJCQkgICBEQVRBX1RJTUVPVVQpOworCWlmIChyZXQgfHwgbGVuICE9IE1JU0NfVkFMVUVfU0laRSkgeworCQlHTTEyVTMyMF9FUlIoIk1pc2MuIHZhbHVlIGVycm9yICVkXG4iLCByZXQpOworCQlyZXR1cm4gLUVJTzsKKwl9CisJLyogY21kX2J1ZlswXSBub3cgY29udGFpbnMgdGhlIHJlYWQgdmFsdWUsIHdoaWNoIHdlIGRvbid0IHVzZSAqLworCisJLyogUmVhZCBzdGF0dXMgKi8KKwlyZXQgPSB1c2JfYnVsa19tc2coZ20xMnUzMjAtPnVkZXYsCisJCQkgICB1c2JfcmN2YnVsa3BpcGUoZ20xMnUzMjAtPnVkZXYsIE1JU0NfUkNWX0VQVCksCisJCQkgICBnbTEydTMyMC0+Y21kX2J1ZiwgUkVBRF9TVEFUVVNfU0laRSwgJmxlbiwKKwkJCSAgIENNRF9USU1FT1VUKTsKKwlpZiAocmV0IHx8IGxlbiAhPSBSRUFEX1NUQVRVU19TSVpFKSB7CisJCUdNMTJVMzIwX0VSUigiTWlzYy4gc3RhdHVzIGVycm9yICVkXG4iLCByZXQpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZ20xMnUzMjBfMzJicHBfdG9fMjRicHBfcGFja2VkKHU4ICpkc3QsIHU4ICpzcmMsIGludCBsZW4pCit7CisJd2hpbGUgKGxlbi0tKSB7CisJCSpkc3QrKyA9ICpzcmMrKzsKKwkJKmRzdCsrID0gKnNyYysrOworCQkqZHN0KysgPSAqc3JjKys7CisJCXNyYysrOworCX0KK30KKworc3RhdGljIHZvaWQgZ20xMnUzMjBfY29weV9mYl90b19ibG9ja3Moc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjApCit7CisJaW50IGJsb2NrLCBkc3Rfb2Zmc2V0LCBsZW4sIHJlbWFpbiwgcmV0LCB4MSwgeDIsIHkxLCB5MjsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKKwl2b2lkICp2YWRkcjsKKwl1OCAqc3JjOworCisJbXV0ZXhfbG9jaygmZ20xMnUzMjAtPmZiX3VwZGF0ZS5sb2NrKTsKKworCWlmICghZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYikKKwkJZ290byB1bmxvY2s7CisKKwlmYiA9IGdtMTJ1MzIwLT5mYl91cGRhdGUuZmI7CisJeDEgPSBnbTEydTMyMC0+ZmJfdXBkYXRlLnJlY3QueDE7CisJeDIgPSBnbTEydTMyMC0+ZmJfdXBkYXRlLnJlY3QueDI7CisJeTEgPSBnbTEydTMyMC0+ZmJfdXBkYXRlLnJlY3QueTE7CisJeTIgPSBnbTEydTMyMC0+ZmJfdXBkYXRlLnJlY3QueTI7CisKKwl2YWRkciA9IGRybV9nZW1fc2htZW1fdm1hcChmYi0+b2JqWzBdKTsKKwlpZiAoSVNfRVJSKHZhZGRyKSkgeworCQlHTTEyVTMyMF9FUlIoImZhaWxlZCB0byB2bWFwIGZiOiAlbGRcbiIsIFBUUl9FUlIodmFkZHIpKTsKKwkJZ290byBwdXRfZmI7CisJfQorCisJaWYgKGZiLT5vYmpbMF0tPmltcG9ydF9hdHRhY2gpIHsKKwkJcmV0ID0gZG1hX2J1Zl9iZWdpbl9jcHVfYWNjZXNzKAorCQkJZmItPm9ialswXS0+aW1wb3J0X2F0dGFjaC0+ZG1hYnVmLCBETUFfRlJPTV9ERVZJQ0UpOworCQlpZiAocmV0KSB7CisJCQlHTTEyVTMyMF9FUlIoImRtYV9idWZfYmVnaW5fY3B1X2FjY2VzcyBlcnI6ICVkXG4iLCByZXQpOworCQkJZ290byB2dW5tYXA7CisJCX0KKwl9CisKKwlzcmMgPSB2YWRkciArIHkxICogZmItPnBpdGNoZXNbMF0gKyB4MSAqIDQ7CisKKwl4MSArPSAoR00xMlUzMjBfUkVBTF9XSURUSCAtIEdNMTJVMzIwX1VTRVJfV0lEVEgpIC8gMjsKKwl4MiArPSAoR00xMlUzMjBfUkVBTF9XSURUSCAtIEdNMTJVMzIwX1VTRVJfV0lEVEgpIC8gMjsKKworCWZvciAoOyB5MSA8IHkyOyB5MSsrKSB7CisJCXJlbWFpbiA9IDA7CisJCWxlbiA9ICh4MiAtIHgxKSAqIDM7CisJCWRzdF9vZmZzZXQgPSAoeTEgKiBHTTEyVTMyMF9SRUFMX1dJRFRIICsgeDEpICogMzsKKwkJYmxvY2sgPSBkc3Rfb2Zmc2V0IC8gREFUQV9CTE9DS19DT05URU5UX1NJWkU7CisJCWRzdF9vZmZzZXQgJT0gREFUQV9CTE9DS19DT05URU5UX1NJWkU7CisKKwkJaWYgKChkc3Rfb2Zmc2V0ICsgbGVuKSA+IERBVEFfQkxPQ0tfQ09OVEVOVF9TSVpFKSB7CisJCQlyZW1haW4gPSBkc3Rfb2Zmc2V0ICsgbGVuIC0gREFUQV9CTE9DS19DT05URU5UX1NJWkU7CisJCQlsZW4gPSBEQVRBX0JMT0NLX0NPTlRFTlRfU0laRSAtIGRzdF9vZmZzZXQ7CisJCX0KKworCQlkc3Rfb2Zmc2V0ICs9IERBVEFfQkxPQ0tfSEVBREVSX1NJWkU7CisJCWxlbiAvPSAzOworCisJCWdtMTJ1MzIwXzMyYnBwX3RvXzI0YnBwX3BhY2tlZCgKKwkJCWdtMTJ1MzIwLT5kYXRhX2J1ZltibG9ja10gKyBkc3Rfb2Zmc2V0LAorCQkJc3JjLCBsZW4pOworCisJCWlmIChyZW1haW4pIHsKKwkJCWJsb2NrKys7CisJCQlkc3Rfb2Zmc2V0ID0gREFUQV9CTE9DS19IRUFERVJfU0laRTsKKwkJCWdtMTJ1MzIwXzMyYnBwX3RvXzI0YnBwX3BhY2tlZCgKKwkJCQlnbTEydTMyMC0+ZGF0YV9idWZbYmxvY2tdICsgZHN0X29mZnNldCwKKwkJCQlzcmMgKyBsZW4gKiA0LCByZW1haW4gLyAzKTsKKwkJfQorCQlzcmMgKz0gZmItPnBpdGNoZXNbMF07CisJfQorCisJaWYgKGZiLT5vYmpbMF0tPmltcG9ydF9hdHRhY2gpIHsKKwkJcmV0ID0gZG1hX2J1Zl9lbmRfY3B1X2FjY2VzcyhmYi0+b2JqWzBdLT5pbXBvcnRfYXR0YWNoLT5kbWFidWYsCisJCQkJCSAgICAgRE1BX0ZST01fREVWSUNFKTsKKwkJaWYgKHJldCkKKwkJCUdNMTJVMzIwX0VSUigiZG1hX2J1Zl9lbmRfY3B1X2FjY2VzcyBlcnI6ICVkXG4iLCByZXQpOworCX0KK3Z1bm1hcDoKKwlkcm1fZ2VtX3NobWVtX3Z1bm1hcChmYi0+b2JqWzBdLCB2YWRkcik7CitwdXRfZmI6CisJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7CisJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYiA9IE5VTEw7Cit1bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOworfQorCitzdGF0aWMgdm9pZCBnbTEydTMyMF9mYl91cGRhdGVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAgPQorCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGdtMTJ1MzIwX2RldmljZSwgZmJfdXBkYXRlLndvcmspOworCWludCBkcmF3X3N0YXR1c190aW1lb3V0ID0gRklSU1RfRlJBTUVfVElNRU9VVDsKKwlpbnQgYmxvY2ssIGJsb2NrX3NpemUsIGxlbjsKKwlpbnQgZnJhbWUgPSAwOworCWludCByZXQgPSAwOworCisJd2hpbGUgKGdtMTJ1MzIwLT5mYl91cGRhdGUucnVuKSB7CisJCWdtMTJ1MzIwX2NvcHlfZmJfdG9fYmxvY2tzKGdtMTJ1MzIwKTsKKworCQlmb3IgKGJsb2NrID0gMDsgYmxvY2sgPCBHTTEyVTMyMF9CTE9DS19DT1VOVDsgYmxvY2srKykgeworCQkJaWYgKGJsb2NrID09IEdNMTJVMzIwX0JMT0NLX0NPVU5UIC0gMSkKKwkJCQlibG9ja19zaXplID0gREFUQV9MQVNUX0JMT0NLX1NJWkU7CisJCQllbHNlCisJCQkJYmxvY2tfc2l6ZSA9IERBVEFfQkxPQ0tfU0laRTsKKworCQkJLyogU2VuZCBkYXRhIGNvbW1hbmQgdG8gZGV2aWNlICovCisJCQltZW1jcHkoZ20xMnUzMjAtPmNtZF9idWYsIGNtZF9kYXRhLCBDTURfU0laRSk7CisJCQlnbTEydTMyMC0+Y21kX2J1Zls4XSA9IGJsb2NrX3NpemUgJiAweGZmOworCQkJZ20xMnUzMjAtPmNtZF9idWZbOV0gPSBibG9ja19zaXplID4+IDg7CisJCQlnbTEydTMyMC0+Y21kX2J1ZlsyMF0gPSAweGZjIC0gYmxvY2sgKiA0OworCQkJZ20xMnUzMjAtPmNtZF9idWZbMjFdID0gYmxvY2sgfCAoZnJhbWUgPDwgNyk7CisKKwkJCXJldCA9IHVzYl9idWxrX21zZyhnbTEydTMyMC0+dWRldiwKKwkJCQl1c2Jfc25kYnVsa3BpcGUoZ20xMnUzMjAtPnVkZXYsIERBVEFfU05EX0VQVCksCisJCQkJZ20xMnUzMjAtPmNtZF9idWYsIENNRF9TSVpFLCAmbGVuLAorCQkJCUNNRF9USU1FT1VUKTsKKwkJCWlmIChyZXQgfHwgbGVuICE9IENNRF9TSVpFKQorCQkJCWdvdG8gZXJyOworCisJCQkvKiBTZW5kIGRhdGEgYmxvY2sgdG8gZGV2aWNlICovCisJCQlyZXQgPSB1c2JfYnVsa19tc2coZ20xMnUzMjAtPnVkZXYsCisJCQkJdXNiX3NuZGJ1bGtwaXBlKGdtMTJ1MzIwLT51ZGV2LCBEQVRBX1NORF9FUFQpLAorCQkJCWdtMTJ1MzIwLT5kYXRhX2J1ZltibG9ja10sIGJsb2NrX3NpemUsCisJCQkJJmxlbiwgREFUQV9USU1FT1VUKTsKKwkJCWlmIChyZXQgfHwgbGVuICE9IGJsb2NrX3NpemUpCisJCQkJZ290byBlcnI7CisKKwkJCS8qIFJlYWQgc3RhdHVzICovCisJCQlyZXQgPSB1c2JfYnVsa19tc2coZ20xMnUzMjAtPnVkZXYsCisJCQkJdXNiX3JjdmJ1bGtwaXBlKGdtMTJ1MzIwLT51ZGV2LCBEQVRBX1JDVl9FUFQpLAorCQkJCWdtMTJ1MzIwLT5jbWRfYnVmLCBSRUFEX1NUQVRVU19TSVpFLCAmbGVuLAorCQkJCUNNRF9USU1FT1VUKTsKKwkJCWlmIChyZXQgfHwgbGVuICE9IFJFQURfU1RBVFVTX1NJWkUpCisJCQkJZ290byBlcnI7CisJCX0KKworCQkvKiBTZW5kIGRyYXcgY29tbWFuZCB0byBkZXZpY2UgKi8KKwkJbWVtY3B5KGdtMTJ1MzIwLT5jbWRfYnVmLCBjbWRfZHJhdywgQ01EX1NJWkUpOworCQlyZXQgPSB1c2JfYnVsa19tc2coZ20xMnUzMjAtPnVkZXYsCisJCQl1c2Jfc25kYnVsa3BpcGUoZ20xMnUzMjAtPnVkZXYsIERBVEFfU05EX0VQVCksCisJCQlnbTEydTMyMC0+Y21kX2J1ZiwgQ01EX1NJWkUsICZsZW4sIENNRF9USU1FT1VUKTsKKwkJaWYgKHJldCB8fCBsZW4gIT0gQ01EX1NJWkUpCisJCQlnb3RvIGVycjsKKworCQkvKiBSZWFkIHN0YXR1cyAqLworCQlyZXQgPSB1c2JfYnVsa19tc2coZ20xMnUzMjAtPnVkZXYsCisJCQl1c2JfcmN2YnVsa3BpcGUoZ20xMnUzMjAtPnVkZXYsIERBVEFfUkNWX0VQVCksCisJCQlnbTEydTMyMC0+Y21kX2J1ZiwgUkVBRF9TVEFUVVNfU0laRSwgJmxlbiwKKwkJCWRyYXdfc3RhdHVzX3RpbWVvdXQpOworCQlpZiAocmV0IHx8IGxlbiAhPSBSRUFEX1NUQVRVU19TSVpFKQorCQkJZ290byBlcnI7CisKKwkJZHJhd19zdGF0dXNfdGltZW91dCA9IENNRF9USU1FT1VUOworCQlmcmFtZSA9ICFmcmFtZTsKKworCQkvKgorCQkgKiBXZSBtdXN0IGRyYXcgYSBmcmFtZSBldmVyeSAycyBvdGhlcndpc2UgdGhlIHByb2plY3RvcgorCQkgKiBzd2l0Y2hlcyBiYWNrIHRvIHNob3dpbmcgaXRzIGxvZ28uCisJCSAqLworCQl3YWl0X2V2ZW50X3RpbWVvdXQoZ20xMnUzMjAtPmZiX3VwZGF0ZS53YWl0cSwKKwkJCQkgICAhZ20xMnUzMjAtPmZiX3VwZGF0ZS5ydW4gfHwKKwkJCQkJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYiAhPSBOVUxMLAorCQkJCSAgIElETEVfVElNRU9VVCk7CisJfQorCXJldHVybjsKK2VycjoKKwkvKiBEbyBub3QgbG9nIGVycm9ycyBjYXVzZWQgYnkgbW9kdWxlIHVubG9hZCBvciBkZXZpY2UgdW5wbHVnICovCisJaWYgKHJldCAhPSAtRU5PREVWICYmIHJldCAhPSAtRUNPTk5SRVNFVCAmJiByZXQgIT0gLUVTSFVURE9XTikKKwkJR00xMlUzMjBfRVJSKCJGcmFtZSB1cGRhdGUgZXJyb3I6ICVkXG4iLCByZXQpOworfQorCitzdGF0aWMgdm9pZCBnbTEydTMyMF9mYl9tYXJrX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJCSAgIHN0cnVjdCBkcm1fcmVjdCAqZGlydHkpCit7CisJc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAgPSBmYi0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIgPSBOVUxMOworCWJvb2wgd2FrZXVwID0gZmFsc2U7CisKKwltdXRleF9sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOworCisJaWYgKGdtMTJ1MzIwLT5mYl91cGRhdGUuZmIgIT0gZmIpIHsKKwkJb2xkX2ZiID0gZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYjsKKwkJZHJtX2ZyYW1lYnVmZmVyX2dldChmYik7CisJCWdtMTJ1MzIwLT5mYl91cGRhdGUuZmIgPSBmYjsKKwkJZ20xMnUzMjAtPmZiX3VwZGF0ZS5yZWN0ID0gKmRpcnR5OworCQl3YWtldXAgPSB0cnVlOworCX0gZWxzZSB7CisJCXN0cnVjdCBkcm1fcmVjdCAqcmVjdCA9ICZnbTEydTMyMC0+ZmJfdXBkYXRlLnJlY3Q7CisKKwkJcmVjdC0+eDEgPSBtaW4ocmVjdC0+eDEsIGRpcnR5LT54MSk7CisJCXJlY3QtPnkxID0gbWluKHJlY3QtPnkxLCBkaXJ0eS0+eTEpOworCQlyZWN0LT54MiA9IG1heChyZWN0LT54MiwgZGlydHktPngyKTsKKwkJcmVjdC0+eTIgPSBtYXgocmVjdC0+eTIsIGRpcnR5LT55Mik7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOworCisJaWYgKHdha2V1cCkKKwkJd2FrZV91cCgmZ20xMnUzMjAtPmZiX3VwZGF0ZS53YWl0cSk7CisKKwlpZiAob2xkX2ZiKQorCQlkcm1fZnJhbWVidWZmZXJfcHV0KG9sZF9mYik7Cit9CisKK3N0YXRpYyB2b2lkIGdtMTJ1MzIwX3N0YXJ0X2ZiX3VwZGF0ZShzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCkKK3sKKwltdXRleF9sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOworCWdtMTJ1MzIwLT5mYl91cGRhdGUucnVuID0gdHJ1ZTsKKwltdXRleF91bmxvY2soJmdtMTJ1MzIwLT5mYl91cGRhdGUubG9jayk7CisKKwlxdWV1ZV93b3JrKGdtMTJ1MzIwLT5mYl91cGRhdGUud29ya3EsICZnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmspOworfQorCitzdGF0aWMgdm9pZCBnbTEydTMyMF9zdG9wX2ZiX3VwZGF0ZShzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCkKK3sKKwltdXRleF9sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOworCWdtMTJ1MzIwLT5mYl91cGRhdGUucnVuID0gZmFsc2U7CisJbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOworCisJd2FrZV91cCgmZ20xMnUzMjAtPmZiX3VwZGF0ZS53YWl0cSk7CisJY2FuY2VsX3dvcmtfc3luYygmZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrKTsKKworCW11dGV4X2xvY2soJmdtMTJ1MzIwLT5mYl91cGRhdGUubG9jayk7CisJaWYgKGdtMTJ1MzIwLT5mYl91cGRhdGUuZmIpIHsKKwkJZHJtX2ZyYW1lYnVmZmVyX3B1dChnbTEydTMyMC0+ZmJfdXBkYXRlLmZiKTsKKwkJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYiA9IE5VTEw7CisJfQorCW11dGV4X3VubG9jaygmZ20xMnUzMjAtPmZiX3VwZGF0ZS5sb2NrKTsKK30KKworc3RhdGljIGludCBnbTEydTMyMF9zZXRfZWNvbW9kZShzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCkKK3sKKwlyZXR1cm4gZ20xMnUzMjBfbWlzY19yZXF1ZXN0KGdtMTJ1MzIwLCBNSVNDX1JFUV9HRVRfU0VUX0VDT19BLAorCQkJCSAgICAgTUlTQ19SRVFfR0VUX1NFVF9FQ09fQiwgMHgwMSAvKiBzZXQgKi8sCisJCQkJICAgICBlY29fbW9kZSA/IDB4MDEgOiAweDAwLCAweDAwLCAweDAxKTsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBnbTEydTMyMCBjb25uZWN0b3IJCQkJCQkgICAgICAqLworCisvKgorICrCoFdlIHVzZSBmYWtlIEVESUQgaW5mbyBzbyB0aGF0IHVzZXJzcGFjZSBrbm93IHRoYXQgaXQgaXMgZGVhbGluZyB3aXRoCisgKiBhbiBBY2VyIHByb2plY3RvciwgcmF0aGVyIHRoZW4gbGlzdGluZyB0aGlzIGFzIGFuICJ1bmtub3duIiBtb25pdG9yLgorICogTm90ZSB0aGlzIGFzc3VtZXMgdGhpcyBkcml2ZXIgaXMgb25seSBldmVyIHVzZWQgd2l0aCB0aGUgQWNlciBDMTIwLCBpZiB3ZQorICogYWRkIHN1cHBvcnQgZm9yIG90aGVyIGRldmljZXMgdGhlIHZlbmRvciBhbmQgbW9kZWwgc2hvdWxkIGJlIHBhcmFtZXRlcml6ZWQuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZWRpZCBnbTEydTMyMF9lZGlkID0geworCS5oZWFkZXIJCT0geyAweDAwLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweDAwIH0sCisJLm1mZ19pZAkJPSB7IDB4MDQsIDB4NzIgfSwJLyogIkFDUiIgKi8KKwkucHJvZF9jb2RlCT0geyAweDIwLCAweGMxIH0sCS8qIEMxMjBoICovCisJLnNlcmlhbAkJPSAweGFhNTVhYTU1LAorCS5tZmdfd2Vlawk9IDEsCisJLm1mZ195ZWFyCT0gMTYsCisJLnZlcnNpb24JPSAxLAkJCS8qIEVESUQgMS4zICovCisJLnJldmlzaW9uCT0gMywJCQkvKiBFRElEIDEuMyAqLworCS5pbnB1dAkJPSAweDA4LAkJCS8qIEFuYWxvZyBpbnB1dCAqLworCS5mZWF0dXJlcwk9IDB4MGEsCQkJLyogUHJlZiB0aW1pbmcgaW4gRFREIDEgKi8KKwkuc3RhbmRhcmRfdGltaW5ncyA9IHsgeyAxLCAxIH0sIHsgMSwgMSB9LCB7IDEsIDEgfSwgeyAxLCAxIH0sCisJCQkgICAgICB7IDEsIDEgfSwgeyAxLCAxIH0sIHsgMSwgMSB9LCB7IDEsIDEgfSB9LAorCS5kZXRhaWxlZF90aW1pbmdzID0geyB7CisJCS5waXhlbF9jbG9jayA9IDMzODMsCisJCS8qIGhhY3RpdmUgPSA4NDgsIGhibGFuayA9IDI1NiAqLworCQkuZGF0YS5waXhlbF9kYXRhLmhhY3RpdmVfbG8gPSAweDUwLAorCQkuZGF0YS5waXhlbF9kYXRhLmhibGFua19sbyA9IDB4MDAsCisJCS5kYXRhLnBpeGVsX2RhdGEuaGFjdGl2ZV9oYmxhbmtfaGkgPSAweDMxLAorCQkvKiB2YWN0aXZlID0gNDgwLCB2YmxhbmsgPSAyOCAqLworCQkuZGF0YS5waXhlbF9kYXRhLnZhY3RpdmVfbG8gPSAweGUwLAorCQkuZGF0YS5waXhlbF9kYXRhLnZibGFua19sbyA9IDB4MWMsCisJCS5kYXRhLnBpeGVsX2RhdGEudmFjdGl2ZV92YmxhbmtfaGkgPSAweDEwLAorCQkvKiBoc3luYyBvZmZzZXQgNDAgcHcgMTI4LCB2c3luYyBvZmZzZXQgMSBwdyA0ICovCisJCS5kYXRhLnBpeGVsX2RhdGEuaHN5bmNfb2Zmc2V0X2xvID0gMHgyOCwKKwkJLmRhdGEucGl4ZWxfZGF0YS5oc3luY19wdWxzZV93aWR0aF9sbyA9IDB4ODAsCisJCS5kYXRhLnBpeGVsX2RhdGEudnN5bmNfb2Zmc2V0X3B1bHNlX3dpZHRoX2xvID0gMHgxNCwKKwkJLmRhdGEucGl4ZWxfZGF0YS5oc3luY192c3luY19vZmZzZXRfcHVsc2Vfd2lkdGhfaGkgPSAweDAwLAorCQkvKiBEaWdpdGFsIHNlcGFyYXRlIHN5bmNzLCBoc3luYyssIHZzeW5jKyAqLworCQkuZGF0YS5waXhlbF9kYXRhLm1pc2MgPSAweDFlLAorCX0sIHsKKwkJLnBpeGVsX2Nsb2NrID0gMCwKKwkJLmRhdGEub3RoZXJfZGF0YS50eXBlID0gMHhmZCwgLyogTW9uaXRvciByYW5nZXMgKi8KKwkJLmRhdGEub3RoZXJfZGF0YS5kYXRhLnJhbmdlLm1pbl92ZnJlcSA9IDU5LAorCQkuZGF0YS5vdGhlcl9kYXRhLmRhdGEucmFuZ2UubWF4X3ZmcmVxID0gNjEsCisJCS5kYXRhLm90aGVyX2RhdGEuZGF0YS5yYW5nZS5taW5faGZyZXFfa2h6ID0gMjksCisJCS5kYXRhLm90aGVyX2RhdGEuZGF0YS5yYW5nZS5tYXhfaGZyZXFfa2h6ID0gMzIsCisJCS5kYXRhLm90aGVyX2RhdGEuZGF0YS5yYW5nZS5waXhlbF9jbG9ja19taHogPSA0LCAvKiA0MCBNSHogKi8KKwkJLmRhdGEub3RoZXJfZGF0YS5kYXRhLnJhbmdlLmZsYWdzID0gMCwKKwkJLmRhdGEub3RoZXJfZGF0YS5kYXRhLnJhbmdlLmZvcm11bGEuY3Z0ID0geworCQkJMHhhMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCB9LAorCX0sIHsKKwkJLnBpeGVsX2Nsb2NrID0gMCwKKwkJLmRhdGEub3RoZXJfZGF0YS50eXBlID0gMHhmYywgLyogTW9kZWwgc3RyaW5nICovCisJCS5kYXRhLm90aGVyX2RhdGEuZGF0YS5zdHIuc3RyID0geworCQkJJ1AnLCAncicsICdvJywgJ2onLCAnZScsICdjJywgJ3QnLCAnbycsICdyJywgJ1xuJywKKwkJCScgJywgJyAnLCAgJyAnIH0sCisJfSwgeworCQkucGl4ZWxfY2xvY2sgPSAwLAorCQkuZGF0YS5vdGhlcl9kYXRhLnR5cGUgPSAweGZlLCAvKiBVbnNwZWNpZmllZCB0ZXh0IC8gcGFkZGluZyAqLworCQkuZGF0YS5vdGhlcl9kYXRhLmRhdGEuc3RyLnN0ciA9IHsKKwkJCSdcbicsICcgJywgJyAnLCAnICcsICcgJywgJyAnLCAnICcsICcgJywgJyAnLCAnICcsCisJCQknICcsICcgJywgICcgJyB9LAorCX0gfSwKKwkuY2hlY2tzdW0gPSAweDEzLAorfTsKKworc3RhdGljIGludCBnbTEydTMyMF9jb25uX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCAmZ20xMnUzMjBfZWRpZCk7CisJcmV0dXJuIGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsICZnbTEydTMyMF9lZGlkKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBnbTEydTMyMF9jb25uX2hlbHBlcl9mdW5jcyA9IHsKKwkuZ2V0X21vZGVzID0gZ20xMnUzMjBfY29ubl9nZXRfbW9kZXMsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgZ20xMnUzMjBfY29ubl9mdW5jcyA9IHsKKwkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKKwkuZGVzdHJveSA9IGRybV9jb25uZWN0b3JfY2xlYW51cCwKKwkucmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQsCisJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlLAorCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAorfTsKKworc3RhdGljIGludCBnbTEydTMyMF9jb25uX2luaXQoc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjApCit7CisJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZnbTEydTMyMC0+Y29ubiwgJmdtMTJ1MzIwX2Nvbm5faGVscGVyX2Z1bmNzKTsKKwlyZXR1cm4gZHJtX2Nvbm5lY3Rvcl9pbml0KCZnbTEydTMyMC0+ZGV2LCAmZ20xMnUzMjAtPmNvbm4sCisJCQkJICAmZ20xMnUzMjBfY29ubl9mdW5jcywgRFJNX01PREVfQ09OTkVDVE9SX1ZHQSk7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogZ20xMnUzMjAgKHNpbXBsZSkgZGlzcGxheSBwaXBlCQkJCSAgICAgICovCisKK3N0YXRpYyB2b2lkIGdtMTJ1MzIwX3BpcGVfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKKwkJCQkgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJCSBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCA9IHBpcGUtPmNydGMuZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX3JlY3QgcmVjdCA9IHsgMCwgMCwgR00xMlUzMjBfVVNFUl9XSURUSCwgR00xMlUzMjBfSEVJR0hUIH07CisKKwlnbTEydTMyMF9mYl9tYXJrX2RpcnR5KHBsYW5lX3N0YXRlLT5mYiwgJnJlY3QpOworCWdtMTJ1MzIwX3N0YXJ0X2ZiX3VwZGF0ZShnbTEydTMyMCk7CisJZ20xMnUzMjAtPnBpcGVfZW5hYmxlZCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIGdtMTJ1MzIwX3BpcGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCit7CisJc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAgPSBwaXBlLT5jcnRjLmRldi0+ZGV2X3ByaXZhdGU7CisKKwlnbTEydTMyMF9zdG9wX2ZiX3VwZGF0ZShnbTEydTMyMCk7CisJZ20xMnUzMjAtPnBpcGVfZW5hYmxlZCA9IGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBnbTEydTMyMF9waXBlX3VwZGF0ZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCisJCQkJIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHBpcGUtPnBsYW5lLnN0YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZwaXBlLT5jcnRjOworCXN0cnVjdCBkcm1fcmVjdCByZWN0OworCisJaWYgKGRybV9hdG9taWNfaGVscGVyX2RhbWFnZV9tZXJnZWQob2xkX3N0YXRlLCBzdGF0ZSwgJnJlY3QpKQorCQlnbTEydTMyMF9mYl9tYXJrX2RpcnR5KHBpcGUtPnBsYW5lLnN0YXRlLT5mYiwgJnJlY3QpOworCisJaWYgKGNydGMtPnN0YXRlLT5ldmVudCkgeworCQlzcGluX2xvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOworCQlkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOworCQljcnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOworCQlzcGluX3VubG9ja19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CisJfQorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIGdtMTJ1MzIwX3BpcGVfZnVuY3MgPSB7CisJLmVuYWJsZQkgICAgPSBnbTEydTMyMF9waXBlX2VuYWJsZSwKKwkuZGlzYWJsZSAgICA9IGdtMTJ1MzIwX3BpcGVfZGlzYWJsZSwKKwkudXBkYXRlCSAgICA9IGdtMTJ1MzIwX3BpcGVfdXBkYXRlLAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IGdtMTJ1MzIwX3BpcGVfZm9ybWF0c1tdID0geworCURSTV9GT1JNQVRfWFJHQjg4ODgsCit9OworCitzdGF0aWMgY29uc3QgdWludDY0X3QgZ20xMnUzMjBfcGlwZV9tb2RpZmllcnNbXSA9IHsKKwlEUk1fRk9STUFUX01PRF9MSU5FQVIsCisJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAorfTsKKworc3RhdGljIHZvaWQgZ20xMnUzMjBfZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwlnbTEydTMyMF91c2JfZnJlZShnbTEydTMyMCk7CisJZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZGV2KTsKKwlkcm1fZGV2X2ZpbmkoZGV2KTsKKwlrZnJlZShnbTEydTMyMCk7Cit9CisKK0RFRklORV9EUk1fR0VNX1NITUVNX0ZPUFMoZ20xMnUzMjBfZm9wcyk7CisKK3N0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBnbTEydTMyMF9kcm1fZHJpdmVyID0geworCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfQVRPTUlDLAorCisJLm5hbWUJCSA9IERSSVZFUl9OQU1FLAorCS5kZXNjCQkgPSBEUklWRVJfREVTQywKKwkuZGF0ZQkJID0gRFJJVkVSX0RBVEUsCisJLm1ham9yCQkgPSBEUklWRVJfTUFKT1IsCisJLm1pbm9yCQkgPSBEUklWRVJfTUlOT1IsCisKKwkucmVsZWFzZQkgPSBnbTEydTMyMF9kcml2ZXJfcmVsZWFzZSwKKwkuZm9wcwkJID0gJmdtMTJ1MzIwX2ZvcHMsCisJRFJNX0dFTV9TSE1FTV9EUklWRVJfT1BTLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgZ20xMnUzMjBfbW9kZV9jb25maWdfZnVuY3MgPSB7CisJLmZiX2NyZWF0ZSA9IGRybV9nZW1fZmJfY3JlYXRlX3dpdGhfZGlydHksCisJLmF0b21pY19jaGVjayA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrLAorCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0LAorfTsKKworc3RhdGljIGludCBnbTEydTMyMF91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKK3sKKwlzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMDsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OworCWludCByZXQ7CisKKwkvKgorCSAqIFRoZSBnbTEydTMyMCBwcmVzZW50cyBpdHNlbGYgdG8gdGhlIHN5c3RlbSBhcyAyIHVzYiBtYXNzLXN0b3JhZ2UKKwkgKiBpbnRlcmZhY2VzLCB3ZSBvbmx5IGNhcmUgYWJvdXQgLyBuZWVkIHRoZSBmaXJzdCBvbmUuCisJICovCisJaWYgKGludGVyZmFjZS0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZU51bWJlciAhPSAwKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWdtMTJ1MzIwID0ga3phbGxvYyhzaXplb2YoKmdtMTJ1MzIwKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGdtMTJ1MzIwID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJZ20xMnUzMjAtPnVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGVyZmFjZSk7CisJSU5JVF9XT1JLKCZnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmssIGdtMTJ1MzIwX2ZiX3VwZGF0ZV93b3JrKTsKKwltdXRleF9pbml0KCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmdtMTJ1MzIwLT5mYl91cGRhdGUud2FpdHEpOworCisJZGV2ID0gJmdtMTJ1MzIwLT5kZXY7CisJcmV0ID0gZHJtX2Rldl9pbml0KGRldiwgJmdtMTJ1MzIwX2RybV9kcml2ZXIsICZpbnRlcmZhY2UtPmRldik7CisJaWYgKHJldCkgeworCQlrZnJlZShnbTEydTMyMCk7CisJCXJldHVybiByZXQ7CisJfQorCWRldi0+ZGV2X3ByaXZhdGUgPSBnbTEydTMyMDsKKworCWRybV9tb2RlX2NvbmZpZ19pbml0KGRldik7CisJZGV2LT5tb2RlX2NvbmZpZy5taW5fd2lkdGggPSBHTTEyVTMyMF9VU0VSX1dJRFRIOworCWRldi0+bW9kZV9jb25maWcubWF4X3dpZHRoID0gR00xMlUzMjBfVVNFUl9XSURUSDsKKwlkZXYtPm1vZGVfY29uZmlnLm1pbl9oZWlnaHQgPSBHTTEyVTMyMF9IRUlHSFQ7CisJZGV2LT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0ID0gR00xMlUzMjBfSEVJR0hUOworCWRldi0+bW9kZV9jb25maWcuZnVuY3MgPSAmZ20xMnUzMjBfbW9kZV9jb25maWdfZnVuY3M7CisKKwlyZXQgPSBnbTEydTMyMF91c2JfYWxsb2MoZ20xMnUzMjApOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3B1dDsKKworCXJldCA9IGdtMTJ1MzIwX3NldF9lY29tb2RlKGdtMTJ1MzIwKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9wdXQ7CisKKwlyZXQgPSBnbTEydTMyMF9jb25uX2luaXQoZ20xMnUzMjApOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3B1dDsKKworCXJldCA9IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoJmdtMTJ1MzIwLT5kZXYsCisJCQkJCSAgICZnbTEydTMyMC0+cGlwZSwKKwkJCQkJICAgJmdtMTJ1MzIwX3BpcGVfZnVuY3MsCisJCQkJCSAgIGdtMTJ1MzIwX3BpcGVfZm9ybWF0cywKKwkJCQkJICAgQVJSQVlfU0laRShnbTEydTMyMF9waXBlX2Zvcm1hdHMpLAorCQkJCQkgICBnbTEydTMyMF9waXBlX21vZGlmaWVycywKKwkJCQkJICAgJmdtMTJ1MzIwLT5jb25uKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9wdXQ7CisKKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoZGV2KTsKKworCXVzYl9zZXRfaW50ZmRhdGEoaW50ZXJmYWNlLCBkZXYpOworCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZGV2LCAwKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9wdXQ7CisKKwlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkZXYsIDApOworCisJcmV0dXJuIDA7CisKK2Vycl9wdXQ6CisJZHJtX2Rldl9wdXQoZGV2KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBnbTEydTMyMF91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGVyZmFjZSk7CisJc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAgPSBkZXYtPmRldl9wcml2YXRlOworCisJZ20xMnUzMjBfc3RvcF9mYl91cGRhdGUoZ20xMnUzMjApOworCWRybV9kZXZfdW5wbHVnKGRldik7CisJZHJtX2Rldl9wdXQoZGV2KTsKK30KKworc3RhdGljIF9fbWF5YmVfdW51c2VkIGludCBnbTEydTMyMF9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsCisJCQkJCSAgIHBtX21lc3NhZ2VfdCBtZXNzYWdlKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGVyZmFjZSk7CisJc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAgPSBkZXYtPmRldl9wcml2YXRlOworCisJaWYgKGdtMTJ1MzIwLT5waXBlX2VuYWJsZWQpCisJCWdtMTJ1MzIwX3N0b3BfZmJfdXBkYXRlKGdtMTJ1MzIwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgX19tYXliZV91bnVzZWQgaW50IGdtMTJ1MzIwX3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGVyZmFjZSk7CisJc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAgPSBkZXYtPmRldl9wcml2YXRlOworCisJZ20xMnUzMjBfc2V0X2Vjb21vZGUoZ20xMnUzMjApOworCWlmIChnbTEydTMyMC0+cGlwZV9lbmFibGVkKQorCQlnbTEydTMyMF9zdGFydF9mYl91cGRhdGUoZ20xMnUzMjApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZVtdID0geworCXsgVVNCX0RFVklDRSgweDFkZTEsIDB4YzEwMikgfSwKKwl7fSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgaWRfdGFibGUpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgZ20xMnUzMjBfdXNiX2RyaXZlciA9IHsKKwkubmFtZSA9ICJnbTEydTMyMCIsCisJLnByb2JlID0gZ20xMnUzMjBfdXNiX3Byb2JlLAorCS5kaXNjb25uZWN0ID0gZ20xMnUzMjBfdXNiX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlID0gaWRfdGFibGUsCisjaWZkZWYgQ09ORklHX1BNCisJLnN1c3BlbmQgPSBnbTEydTMyMF9zdXNwZW5kLAorCS5yZXN1bWUgPSBnbTEydTMyMF9yZXN1bWUsCisJLnJlc2V0X3Jlc3VtZSA9IGdtMTJ1MzIwX3Jlc3VtZSwKKyNlbmRpZgorfTsKKworbW9kdWxlX3VzYl9kcml2ZXIoZ20xMnUzMjBfdXNiX2RyaXZlcik7CitNT0RVTEVfQVVUSE9SKCJIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbnkvaHg4MzU3ZC5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvaHg4MzU3ZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZjhmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9oeDgzNTdkLmMKQEAgLTAsMCArMSwzMDQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIERSTSBkcml2ZXIgZm9yIHRoZSBIWDgzNTdEIExDRCBjb250cm9sbGVyCisgKgorICogQ29weXJpZ2h0IDIwMTggQnJvYWRjb20KKyAqIENvcHlyaWdodCAyMDE4IERhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPgorICogQ29weXJpZ2h0IDIwMTYgTm9yYWxmIFRyw7hubmVzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQWRhZnJ1aXQgSW5kdXN0cmllcworICogQ29weXJpZ2h0IChDKSAyMDEzIENocmlzdGlhbiBWb2dlbGdzYW5nCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2JhY2tsaWdodC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZGJpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5oPgorI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgorCisjZGVmaW5lIEhYODM1N0RfU0VUT1NDIDB4YjAKKyNkZWZpbmUgSFg4MzU3RF9TRVRQT1dFUiAweGIxCisjZGVmaW5lIEhYODM1N0RfU0VUUkdCIDB4YjMKKyNkZWZpbmUgSFg4MzU3RF9TRVRDWUMgMHhiMworI2RlZmluZSBIWDgzNTdEX1NFVENPTSAweGI2CisjZGVmaW5lIEhYODM1N0RfU0VURVhUQyAweGI5CisjZGVmaW5lIEhYODM1N0RfU0VUU1RCQSAweGMwCisjZGVmaW5lIEhYODM1N0RfU0VUUEFORUwgMHhjYworI2RlZmluZSBIWDgzNTdEX1NFVEdBTU1BIDB4ZTAKKworI2RlZmluZSBIWDgzNTdEX01BRENUTF9NWSAgMHg4MAorI2RlZmluZSBIWDgzNTdEX01BRENUTF9NWCAgMHg0MAorI2RlZmluZSBIWDgzNTdEX01BRENUTF9NViAgMHgyMAorI2RlZmluZSBIWDgzNTdEX01BRENUTF9NTCAgMHgxMAorI2RlZmluZSBIWDgzNTdEX01BRENUTF9SR0IgMHgwMAorI2RlZmluZSBIWDgzNTdEX01BRENUTF9CR1IgMHgwOAorI2RlZmluZSBIWDgzNTdEX01BRENUTF9NSCAgMHgwNAorCitzdGF0aWMgdm9pZCB5eDI0MHF2MjlfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKKwkJCSAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlzdHJ1Y3QgbWlwaV9kYmlfZGV2ICpkYmlkZXYgPSBkcm1fdG9fbWlwaV9kYmlfZGV2KHBpcGUtPmNydGMuZGV2KTsKKwlzdHJ1Y3QgbWlwaV9kYmkgKmRiaSA9ICZkYmlkZXYtPmRiaTsKKwl1OCBhZGRyX21vZGU7CisJaW50IHJldCwgaWR4OworCisJaWYgKCFkcm1fZGV2X2VudGVyKHBpcGUtPmNydGMuZGV2LCAmaWR4KSkKKwkJcmV0dXJuOworCisJRFJNX0RFQlVHX0tNUygiXG4iKTsKKworCXJldCA9IG1pcGlfZGJpX3Bvd2Vyb25fY29uZGl0aW9uYWxfcmVzZXQoZGJpZGV2KTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfZXhpdDsKKwlpZiAocmV0ID09IDEpCisJCWdvdG8gb3V0X2VuYWJsZTsKKworCS8qIHNldGV4dGMgKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSFg4MzU3RF9TRVRFWFRDLCAweEZGLCAweDgzLCAweDU3KTsKKwltc2xlZXAoMTUwKTsKKworCS8qIHNldFJHQiB3aGljaCBhbHNvIGVuYWJsZXMgU0RPICovCisJbWlwaV9kYmlfY29tbWFuZChkYmksIEhYODM1N0RfU0VUUkdCLCAweDAwLCAweDAwLCAweDA2LCAweDA2KTsKKworCS8qIC0xLjUyViAqLworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBIWDgzNTdEX1NFVENPTSwgMHgyNSk7CisKKwkvKiBOb3JtYWwgbW9kZSA3MEh6LCBJZGxlIG1vZGUgNTUgSHogKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSFg4MzU3RF9TRVRPU0MsIDB4NjgpOworCisJLyogU2V0IFBhbmVsIC0gQkdSLCBHYXRlIGRpcmVjdGlvbiBzd2FwcGVkICovCisJbWlwaV9kYmlfY29tbWFuZChkYmksIEhYODM1N0RfU0VUUEFORUwsIDB4MDUpOworCisJbWlwaV9kYmlfY29tbWFuZChkYmksIEhYODM1N0RfU0VUUE9XRVIsCisJCQkgMHgwMCwgIC8qIE5vdCBkZWVwIHN0YW5kYnkgKi8KKwkJCSAweDE1LCAgLyogQlQgKi8KKwkJCSAweDFDLCAgLyogVlNQUiAqLworCQkJIDB4MUMsICAvKiBWU05SICovCisJCQkgMHg4MywgIC8qIEFQICovCisJCQkgMHhBQSk7ICAvKiBGUyAqLworCisJbWlwaV9kYmlfY29tbWFuZChkYmksIEhYODM1N0RfU0VUU1RCQSwKKwkJCSAweDUwLCAgLyogT1BPTiBub3JtYWwgKi8KKwkJCSAweDUwLCAgLyogT1BPTiBpZGxlICovCisJCQkgMHgwMSwgIC8qIFNUQkEgKi8KKwkJCSAweDNDLCAgLyogU1RCQSAqLworCQkJIDB4MUUsICAvKiBTVEJBICovCisJCQkgMHgwOCk7ICAvKiBHRU4gKi8KKworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBIWDgzNTdEX1NFVENZQywKKwkJCSAweDAyLCAgLyogTlcgMHgwMiAqLworCQkJIDB4NDAsICAvKiBSVE4gKi8KKwkJCSAweDAwLCAgLyogRElWICovCisJCQkgMHgyQSwgIC8qIERVTSAqLworCQkJIDB4MkEsICAvKiBEVU0gKi8KKwkJCSAweDBELCAgLyogR0RPTiAqLworCQkJIDB4NzgpOyAgLyogR0RPRkYgKi8KKworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBIWDgzNTdEX1NFVEdBTU1BLAorCQkJIDB4MDIsCisJCQkgMHgwQSwKKwkJCSAweDExLAorCQkJIDB4MWQsCisJCQkgMHgyMywKKwkJCSAweDM1LAorCQkJIDB4NDEsCisJCQkgMHg0YiwKKwkJCSAweDRiLAorCQkJIDB4NDIsCisJCQkgMHgzQSwKKwkJCSAweDI3LAorCQkJIDB4MUIsCisJCQkgMHgwOCwKKwkJCSAweDA5LAorCQkJIDB4MDMsCisJCQkgMHgwMiwKKwkJCSAweDBBLAorCQkJIDB4MTEsCisJCQkgMHgxZCwKKwkJCSAweDIzLAorCQkJIDB4MzUsCisJCQkgMHg0MSwKKwkJCSAweDRiLAorCQkJIDB4NGIsCisJCQkgMHg0MiwKKwkJCSAweDNBLAorCQkJIDB4MjcsCisJCQkgMHgxQiwKKwkJCSAweDA4LAorCQkJIDB4MDksCisJCQkgMHgwMywKKwkJCSAweDAwLAorCQkJIDB4MDEpOworCisJLyogMTYgYml0ICovCisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9QSVhFTF9GT1JNQVQsCisJCQkgTUlQSV9EQ1NfUElYRUxfRk1UXzE2QklUKTsKKworCS8qIFRFIG9mZiAqLworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19TRVRfVEVBUl9PTiwgMHgwMCk7CisKKwkvKiB0ZWFyIGxpbmUgKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX1RFQVJfU0NBTkxJTkUsIDB4MDAsIDB4MDIpOworCisJLyogRXhpdCBTbGVlcCAqLworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19FWElUX1NMRUVQX01PREUpOworCW1zbGVlcCgxNTApOworCisJLyogZGlzcGxheSBvbiAqLworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19TRVRfRElTUExBWV9PTik7CisJdXNsZWVwX3JhbmdlKDUwMDAsIDcwMDApOworCitvdXRfZW5hYmxlOgorCXN3aXRjaCAoZGJpZGV2LT5yb3RhdGlvbikgeworCWRlZmF1bHQ6CisJCWFkZHJfbW9kZSA9IEhYODM1N0RfTUFEQ1RMX01YIHwgSFg4MzU3RF9NQURDVExfTVk7CisJCWJyZWFrOworCWNhc2UgOTA6CisJCWFkZHJfbW9kZSA9IEhYODM1N0RfTUFEQ1RMX01WIHwgSFg4MzU3RF9NQURDVExfTVk7CisJCWJyZWFrOworCWNhc2UgMTgwOgorCQlhZGRyX21vZGUgPSAwOworCQlicmVhazsKKwljYXNlIDI3MDoKKwkJYWRkcl9tb2RlID0gSFg4MzU3RF9NQURDVExfTVYgfCBIWDgzNTdEX01BRENUTF9NWDsKKwkJYnJlYWs7CisJfQorCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19TRVRfQUREUkVTU19NT0RFLCBhZGRyX21vZGUpOworCW1pcGlfZGJpX2VuYWJsZV9mbHVzaChkYmlkZXYsIGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKK291dF9leGl0OgorCWRybV9kZXZfZXhpdChpZHgpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIGh4ODM1N2RfcGlwZV9mdW5jcyA9IHsKKwkuZW5hYmxlID0geXgyNDBxdjI5X2VuYWJsZSwKKwkuZGlzYWJsZSA9IG1pcGlfZGJpX3BpcGVfZGlzYWJsZSwKKwkudXBkYXRlID0gbWlwaV9kYmlfcGlwZV91cGRhdGUsCisJLnByZXBhcmVfZmIgPSBkcm1fZ2VtX2ZiX3NpbXBsZV9kaXNwbGF5X3BpcGVfcHJlcGFyZV9mYiwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSB5eDM1MGh2MTVfbW9kZSA9IHsKKwlEUk1fU0lNUExFX01PREUoMzIwLCA0ODAsIDYwLCA3NSksCit9OworCitERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhoeDgzNTdkX2ZvcHMpOworCitzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgaHg4MzU3ZF9kcml2ZXIgPSB7CisJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCisJLmZvcHMJCQk9ICZoeDgzNTdkX2ZvcHMsCisJLnJlbGVhc2UJCT0gbWlwaV9kYmlfcmVsZWFzZSwKKwlEUk1fR0VNX0NNQV9WTUFQX0RSSVZFUl9PUFMsCisJLmRlYnVnZnNfaW5pdAkJPSBtaXBpX2RiaV9kZWJ1Z2ZzX2luaXQsCisJLm5hbWUJCQk9ICJoeDgzNTdkIiwKKwkuZGVzYwkJCT0gIkhYODM1N0QiLAorCS5kYXRlCQkJPSAiMjAxODEwMjMiLAorCS5tYWpvcgkJCT0gMSwKKwkubWlub3IJCQk9IDAsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBoeDgzNTdkX29mX21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJhZGFmcnVpdCx5eDM1MGh2MTUiIH0sCisJeyB9Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaHg4MzU3ZF9vZl9tYXRjaCk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCBoeDgzNTdkX2lkW10gPSB7CisJeyAieXgzNTBodjE1IiwgMCB9LAorCXsgfQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCBoeDgzNTdkX2lkKTsKKworc3RhdGljIGludCBoeDgzNTdkX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnNwaS0+ZGV2OworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOworCXN0cnVjdCBncGlvX2Rlc2MgKmRjOworCXUzMiByb3RhdGlvbiA9IDA7CisJaW50IHJldDsKKworCWRiaWRldiA9IGt6YWxsb2Moc2l6ZW9mKCpkYmlkZXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRiaWRldikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkcm0gPSAmZGJpZGV2LT5kcm07CisJcmV0ID0gZGV2bV9kcm1fZGV2X2luaXQoZGV2LCBkcm0sICZoeDgzNTdkX2RyaXZlcik7CisJaWYgKHJldCkgeworCQlrZnJlZShkYmlkZXYpOworCQlyZXR1cm4gcmV0OworCX0KKworCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7CisKKwlkYyA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgImRjIiwgR1BJT0RfT1VUX0xPVyk7CisJaWYgKElTX0VSUihkYykpIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZ2V0IGdwaW8gJ2RjJ1xuIik7CisJCXJldHVybiBQVFJfRVJSKGRjKTsKKwl9CisKKwlkYmlkZXYtPmJhY2tsaWdodCA9IGRldm1fb2ZfZmluZF9iYWNrbGlnaHQoZGV2KTsKKwlpZiAoSVNfRVJSKGRiaWRldi0+YmFja2xpZ2h0KSkKKwkJcmV0dXJuIFBUUl9FUlIoZGJpZGV2LT5iYWNrbGlnaHQpOworCisJZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwgInJvdGF0aW9uIiwgJnJvdGF0aW9uKTsKKworCXJldCA9IG1pcGlfZGJpX3NwaV9pbml0KHNwaSwgJmRiaWRldi0+ZGJpLCBkYyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IG1pcGlfZGJpX2Rldl9pbml0KGRiaWRldiwgJmh4ODM1N2RfcGlwZV9mdW5jcywgJnl4MzUwaHYxNV9tb2RlLCByb3RhdGlvbik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWRybV9tb2RlX2NvbmZpZ19yZXNldChkcm0pOworCisJcmV0ID0gZHJtX2Rldl9yZWdpc3Rlcihkcm0sIDApOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlzcGlfc2V0X2RydmRhdGEoc3BpLCBkcm0pOworCisJZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoZHJtLCAwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGh4ODM1N2RfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpOworCisJZHJtX2Rldl91bnBsdWcoZHJtKTsKKwlkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bihkcm0pOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGh4ODM1N2Rfc2h1dGRvd24oc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bihzcGlfZ2V0X2RydmRhdGEoc3BpKSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBoeDgzNTdkX3NwaV9kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiaHg4MzU3ZCIsCisJCS5vZl9tYXRjaF90YWJsZSA9IGh4ODM1N2Rfb2ZfbWF0Y2gsCisJfSwKKwkuaWRfdGFibGUgPSBoeDgzNTdkX2lkLAorCS5wcm9iZSA9IGh4ODM1N2RfcHJvYmUsCisJLnJlbW92ZSA9IGh4ODM1N2RfcmVtb3ZlLAorCS5zaHV0ZG93biA9IGh4ODM1N2Rfc2h1dGRvd24sCit9OworbW9kdWxlX3NwaV9kcml2ZXIoaHg4MzU3ZF9zcGlfZHJpdmVyKTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJIWDgzNTdEIERSTSBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIkVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueS9pbGk5MjI1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9pbGk5MjI1LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY2YWNjNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L2lsaTkyMjUuYwpAQCAtMCwwICsxLDQ3MCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKy8qCisgKiBEUk0gZHJpdmVyIGZvciBJbGl0ZWsgSUxJOTIyNSBwYW5lbHMKKyAqCisgKiBDb3B5cmlnaHQgMjAxNyBEYXZpZCBMZWNobmVyIDxkYXZpZEBsZWNobm9sb2d5LmNvbT4KKyAqCisgKiBTb21lIGNvZGUgY29waWVkIGZyb20gbWlwaS1kYmkuYworICogQ29weXJpZ2h0IDIwMTYgTm9yYWxmIFRyw7hubmVzCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wcm9wZXJ0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZGJpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKworI2RlZmluZSBJTEk5MjI1X0RSSVZFUl9SRUFEX0NPREUJMHgwMAorI2RlZmluZSBJTEk5MjI1X0RSSVZFUl9PVVRQVVRfQ09OVFJPTAkweDAxCisjZGVmaW5lIElMSTkyMjVfTENEX0FDX0RSSVZJTkdfQ09OVFJPTAkweDAyCisjZGVmaW5lIElMSTkyMjVfRU5UUllfTU9ERQkJMHgwMworI2RlZmluZSBJTEk5MjI1X0RJU1BMQVlfQ09OVFJPTF8xCTB4MDcKKyNkZWZpbmUgSUxJOTIyNV9CTEFOS19QRVJJT0RfQ09OVFJPTF8xCTB4MDgKKyNkZWZpbmUgSUxJOTIyNV9GUkFNRV9DWUNMRV9DT05UUk9MCTB4MGIKKyNkZWZpbmUgSUxJOTIyNV9JTlRFUkZBQ0VfQ09OVFJPTAkweDBjCisjZGVmaW5lIElMSTkyMjVfT1NDSUxMQVRJT05fQ09OVFJPTAkweDBmCisjZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF8xCQkweDEwCisjZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF8yCQkweDExCisjZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF8zCQkweDEyCisjZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF80CQkweDEzCisjZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF81CQkweDE0CisjZGVmaW5lIElMSTkyMjVfVkNJX1JFQ1lDTElORwkJMHgxNQorI2RlZmluZSBJTEk5MjI1X1JBTV9BRERSRVNTX1NFVF8xCTB4MjAKKyNkZWZpbmUgSUxJOTIyNV9SQU1fQUREUkVTU19TRVRfMgkweDIxCisjZGVmaW5lIElMSTkyMjVfV1JJVEVfREFUQV9UT19HUkFNCTB4MjIKKyNkZWZpbmUgSUxJOTIyNV9TT0ZUV0FSRV9SRVNFVAkJMHgyOAorI2RlZmluZSBJTEk5MjI1X0dBVEVfU0NBTl9DT05UUk9MCTB4MzAKKyNkZWZpbmUgSUxJOTIyNV9WRVJUSUNBTF9TQ1JPTExfMQkweDMxCisjZGVmaW5lIElMSTkyMjVfVkVSVElDQUxfU0NST0xMXzIJMHgzMgorI2RlZmluZSBJTEk5MjI1X1ZFUlRJQ0FMX1NDUk9MTF8zCTB4MzMKKyNkZWZpbmUgSUxJOTIyNV9QQVJUSUFMX0RSSVZJTkdfUE9TXzEJMHgzNAorI2RlZmluZSBJTEk5MjI1X1BBUlRJQUxfRFJJVklOR19QT1NfMgkweDM1CisjZGVmaW5lIElMSTkyMjVfSE9SSVpfV0lORE9XX0FERFJfMQkweDM2CisjZGVmaW5lIElMSTkyMjVfSE9SSVpfV0lORE9XX0FERFJfMgkweDM3CisjZGVmaW5lIElMSTkyMjVfVkVSVF9XSU5ET1dfQUREUl8xCTB4MzgKKyNkZWZpbmUgSUxJOTIyNV9WRVJUX1dJTkRPV19BRERSXzIJMHgzOQorI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMQkJMHg1MAorI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMgkJMHg1MQorI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMwkJMHg1MgorI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNAkJMHg1MworI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNQkJMHg1NAorI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNgkJMHg1NQorI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNwkJMHg1NgorI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfOAkJMHg1NworI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfOQkJMHg1OAorI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMTAJMHg1OQorCitzdGF0aWMgaW5saW5lIGludCBpbGk5MjI1X2NvbW1hbmQoc3RydWN0IG1pcGlfZGJpICpkYmksIHU4IGNtZCwgdTE2IGRhdGEpCit7CisJdTggcGFyWzJdID0geyBkYXRhID4+IDgsIGRhdGEgJiAweGZmIH07CisKKwlyZXR1cm4gbWlwaV9kYmlfY29tbWFuZF9idWYoZGJpLCBjbWQsIHBhciwgMik7Cit9CisKK3N0YXRpYyB2b2lkIGlsaTkyMjVfZmJfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIHN0cnVjdCBkcm1fcmVjdCAqcmVjdCkKK3sKKwlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaihmYiwgMCk7CisJc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2ID0gZHJtX3RvX21pcGlfZGJpX2RldihmYi0+ZGV2KTsKKwl1bnNpZ25lZCBpbnQgaGVpZ2h0ID0gcmVjdC0+eTIgLSByZWN0LT55MTsKKwl1bnNpZ25lZCBpbnQgd2lkdGggPSByZWN0LT54MiAtIHJlY3QtPngxOworCXN0cnVjdCBtaXBpX2RiaSAqZGJpID0gJmRiaWRldi0+ZGJpOworCWJvb2wgc3dhcCA9IGRiaS0+c3dhcF9ieXRlczsKKwl1MTYgeF9zdGFydCwgeV9zdGFydDsKKwl1MTYgeDEsIHgyLCB5MSwgeTI7CisJaW50IGlkeCwgcmV0ID0gMDsKKwlib29sIGZ1bGw7CisJdm9pZCAqdHI7CisKKwlpZiAoIWRiaWRldi0+ZW5hYmxlZCkKKwkJcmV0dXJuOworCisJaWYgKCFkcm1fZGV2X2VudGVyKGZiLT5kZXYsICZpZHgpKQorCQlyZXR1cm47CisKKwlmdWxsID0gd2lkdGggPT0gZmItPndpZHRoICYmIGhlaWdodCA9PSBmYi0+aGVpZ2h0OworCisJRFJNX0RFQlVHX0tNUygiRmx1c2hpbmcgW0ZCOiVkXSAiIERSTV9SRUNUX0ZNVCAiXG4iLCBmYi0+YmFzZS5pZCwgRFJNX1JFQ1RfQVJHKHJlY3QpKTsKKworCWlmICghZGJpLT5kYyB8fCAhZnVsbCB8fCBzd2FwIHx8CisJICAgIGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX1hSR0I4ODg4KSB7CisJCXRyID0gZGJpZGV2LT50eF9idWY7CisJCXJldCA9IG1pcGlfZGJpX2J1Zl9jb3B5KGRiaWRldi0+dHhfYnVmLCBmYiwgcmVjdCwgc3dhcCk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl9tc2c7CisJfSBlbHNlIHsKKwkJdHIgPSBjbWFfb2JqLT52YWRkcjsKKwl9CisKKwlzd2l0Y2ggKGRiaWRldi0+cm90YXRpb24pIHsKKwlkZWZhdWx0OgorCQl4MSA9IHJlY3QtPngxOworCQl4MiA9IHJlY3QtPngyIC0gMTsKKwkJeTEgPSByZWN0LT55MTsKKwkJeTIgPSByZWN0LT55MiAtIDE7CisJCXhfc3RhcnQgPSB4MTsKKwkJeV9zdGFydCA9IHkxOworCQlicmVhazsKKwljYXNlIDkwOgorCQl4MSA9IHJlY3QtPnkxOworCQl4MiA9IHJlY3QtPnkyIC0gMTsKKwkJeTEgPSBmYi0+d2lkdGggLSByZWN0LT54MjsKKwkJeTIgPSBmYi0+d2lkdGggLSByZWN0LT54MSAtIDE7CisJCXhfc3RhcnQgPSB4MTsKKwkJeV9zdGFydCA9IHkyOworCQlicmVhazsKKwljYXNlIDE4MDoKKwkJeDEgPSBmYi0+d2lkdGggLSByZWN0LT54MjsKKwkJeDIgPSBmYi0+d2lkdGggLSByZWN0LT54MSAtIDE7CisJCXkxID0gZmItPmhlaWdodCAtIHJlY3QtPnkyOworCQl5MiA9IGZiLT5oZWlnaHQgLSByZWN0LT55MSAtIDE7CisJCXhfc3RhcnQgPSB4MjsKKwkJeV9zdGFydCA9IHkyOworCQlicmVhazsKKwljYXNlIDI3MDoKKwkJeDEgPSBmYi0+aGVpZ2h0IC0gcmVjdC0+eTI7CisJCXgyID0gZmItPmhlaWdodCAtIHJlY3QtPnkxIC0gMTsKKwkJeTEgPSByZWN0LT54MTsKKwkJeTIgPSByZWN0LT54MiAtIDE7CisJCXhfc3RhcnQgPSB4MjsKKwkJeV9zdGFydCA9IHkxOworCQlicmVhazsKKwl9CisKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X0hPUklaX1dJTkRPV19BRERSXzEsIHgyKTsKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X0hPUklaX1dJTkRPV19BRERSXzIsIHgxKTsKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X1ZFUlRfV0lORE9XX0FERFJfMSwgeTIpOworCWlsaTkyMjVfY29tbWFuZChkYmksIElMSTkyMjVfVkVSVF9XSU5ET1dfQUREUl8yLCB5MSk7CisKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X1JBTV9BRERSRVNTX1NFVF8xLCB4X3N0YXJ0KTsKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X1JBTV9BRERSRVNTX1NFVF8yLCB5X3N0YXJ0KTsKKworCXJldCA9IG1pcGlfZGJpX2NvbW1hbmRfYnVmKGRiaSwgSUxJOTIyNV9XUklURV9EQVRBX1RPX0dSQU0sIHRyLAorCQkJCSAgIHdpZHRoICogaGVpZ2h0ICogMik7CitlcnJfbXNnOgorCWlmIChyZXQpCisJCWRldl9lcnJfb25jZShmYi0+ZGV2LT5kZXYsICJGYWlsZWQgdG8gdXBkYXRlIGRpc3BsYXkgJWRcbiIsIHJldCk7CisKKwlkcm1fZGV2X2V4aXQoaWR4KTsKK30KKworc3RhdGljIHZvaWQgaWxpOTIyNV9waXBlX3VwZGF0ZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCisJCQkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlID0gcGlwZS0+cGxhbmUuc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJnBpcGUtPmNydGM7CisJc3RydWN0IGRybV9yZWN0IHJlY3Q7CisKKwlpZiAoZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX21lcmdlZChvbGRfc3RhdGUsIHN0YXRlLCAmcmVjdCkpCisJCWlsaTkyMjVfZmJfZGlydHkoc3RhdGUtPmZiLCAmcmVjdCk7CisKKwlpZiAoY3J0Yy0+c3RhdGUtPmV2ZW50KSB7CisJCXNwaW5fbG9ja19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CisJCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KGNydGMsIGNydGMtPnN0YXRlLT5ldmVudCk7CisJCXNwaW5fdW5sb2NrX2lycSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsKKwkJY3J0Yy0+c3RhdGUtPmV2ZW50ID0gTlVMTDsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGlsaTkyMjVfcGlwZV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAorCQkJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlzdHJ1Y3QgbWlwaV9kYmlfZGV2ICpkYmlkZXYgPSBkcm1fdG9fbWlwaV9kYmlfZGV2KHBpcGUtPmNydGMuZGV2KTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5mYjsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwaXBlLT5jcnRjLmRldi0+ZGV2OworCXN0cnVjdCBtaXBpX2RiaSAqZGJpID0gJmRiaWRldi0+ZGJpOworCXN0cnVjdCBkcm1fcmVjdCByZWN0ID0geworCQkueDEgPSAwLAorCQkueDIgPSBmYi0+d2lkdGgsCisJCS55MSA9IDAsCisJCS55MiA9IGZiLT5oZWlnaHQsCisJfTsKKwlpbnQgcmV0LCBpZHg7CisJdTggYW1faWQ7CisKKwlpZiAoIWRybV9kZXZfZW50ZXIocGlwZS0+Y3J0Yy5kZXYsICZpZHgpKQorCQlyZXR1cm47CisKKwlEUk1fREVCVUdfS01TKCJcbiIpOworCisJbWlwaV9kYmlfaHdfcmVzZXQoZGJpKTsKKworCS8qCisJICogVGhlcmUgZG9uJ3Qgc2VlbSB0byBiZSB0d28gZXhhbXBsZSBpbml0IHNlcXVlbmNlcyB0aGF0IG1hdGNoLCBzbworCSAqIHVzaW5nIHRoZSBvbmUgZnJvbSB0aGUgcG9wdWxhciBBcmR1aW5vIGxpYnJhcnkgZm9yIHRoaXMgZGlzcGxheS4KKwkgKiBodHRwczovL2dpdGh1Yi5jb20vTmthd3UvVEZUXzIyX0lMSTkyMjUvYmxvYi9tYXN0ZXIvc3JjL1RGVF8yMl9JTEk5MjI1LmNwcAorCSAqLworCisJcmV0ID0gaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzEsIDB4MDAwMCk7CisJaWYgKHJldCkgeworCQlEUk1fREVWX0VSUk9SKGRldiwgIkVycm9yIHNlbmRpbmcgY29tbWFuZCAlZFxuIiwgcmV0KTsKKwkJZ290byBvdXRfZXhpdDsKKwl9CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzIsIDB4MDAwMCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzMsIDB4MDAwMCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzQsIDB4MDAwMCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzUsIDB4MDAwMCk7CisKKwltc2xlZXAoNDApOworCisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzIsIDB4MDAxOCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzMsIDB4NjEyMSk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzQsIDB4MDA2Zik7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzUsIDB4NDk1Zik7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzEsIDB4MDgwMCk7CisKKwltc2xlZXAoMTApOworCisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzIsIDB4MTAzYik7CisKKwltc2xlZXAoNTApOworCisJc3dpdGNoIChkYmlkZXYtPnJvdGF0aW9uKSB7CisJZGVmYXVsdDoKKwkJYW1faWQgPSAweDMwOworCQlicmVhazsKKwljYXNlIDkwOgorCQlhbV9pZCA9IDB4MTg7CisJCWJyZWFrOworCWNhc2UgMTgwOgorCQlhbV9pZCA9IDB4MDA7CisJCWJyZWFrOworCWNhc2UgMjcwOgorCQlhbV9pZCA9IDB4Mjg7CisJCWJyZWFrOworCX0KKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X0RSSVZFUl9PVVRQVVRfQ09OVFJPTCwgMHgwMTFjKTsKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X0xDRF9BQ19EUklWSU5HX0NPTlRST0wsIDB4MDEwMCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9FTlRSWV9NT0RFLCAweDEwMDAgfCBhbV9pZCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9ESVNQTEFZX0NPTlRST0xfMSwgMHgwMDAwKTsKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X0JMQU5LX1BFUklPRF9DT05UUk9MXzEsIDB4MDgwOCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9GUkFNRV9DWUNMRV9DT05UUk9MLCAweDExMDApOworCWlsaTkyMjVfY29tbWFuZChkYmksIElMSTkyMjVfSU5URVJGQUNFX0NPTlRST0wsIDB4MDAwMCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9PU0NJTExBVElPTl9DT05UUk9MLCAweDBkMDEpOworCWlsaTkyMjVfY29tbWFuZChkYmksIElMSTkyMjVfVkNJX1JFQ1lDTElORywgMHgwMDIwKTsKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X1JBTV9BRERSRVNTX1NFVF8xLCAweDAwMDApOworCWlsaTkyMjVfY29tbWFuZChkYmksIElMSTkyMjVfUkFNX0FERFJFU1NfU0VUXzIsIDB4MDAwMCk7CisKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X0dBVEVfU0NBTl9DT05UUk9MLCAweDAwMDApOworCWlsaTkyMjVfY29tbWFuZChkYmksIElMSTkyMjVfVkVSVElDQUxfU0NST0xMXzEsIDB4MDBkYik7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9WRVJUSUNBTF9TQ1JPTExfMiwgMHgwMDAwKTsKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X1ZFUlRJQ0FMX1NDUk9MTF8zLCAweDAwMDApOworCWlsaTkyMjVfY29tbWFuZChkYmksIElMSTkyMjVfUEFSVElBTF9EUklWSU5HX1BPU18xLCAweDAwZGIpOworCWlsaTkyMjVfY29tbWFuZChkYmksIElMSTkyMjVfUEFSVElBTF9EUklWSU5HX1BPU18yLCAweDAwMDApOworCisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzEsIDB4MDAwMCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzIsIDB4MDgwOCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzMsIDB4MDgwYSk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzQsIDB4MDAwYSk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzUsIDB4MGEwOCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzYsIDB4MDgwOCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzcsIDB4MDAwMCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzgsIDB4MGEwMCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzksIDB4MDcxMCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzEwLCAweDA3MTApOworCisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9ESVNQTEFZX0NPTlRST0xfMSwgMHgwMDEyKTsKKworCW1zbGVlcCg1MCk7CisKKwlpbGk5MjI1X2NvbW1hbmQoZGJpLCBJTEk5MjI1X0RJU1BMQVlfQ09OVFJPTF8xLCAweDEwMTcpOworCisJZGJpZGV2LT5lbmFibGVkID0gdHJ1ZTsKKwlpbGk5MjI1X2ZiX2RpcnR5KGZiLCAmcmVjdCk7CitvdXRfZXhpdDoKKwlkcm1fZGV2X2V4aXQoaWR4KTsKK30KKworc3RhdGljIHZvaWQgaWxpOTIyNV9waXBlX2Rpc2FibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlKQoreworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiA9IGRybV90b19taXBpX2RiaV9kZXYocGlwZS0+Y3J0Yy5kZXYpOworCXN0cnVjdCBtaXBpX2RiaSAqZGJpID0gJmRiaWRldi0+ZGJpOworCisJRFJNX0RFQlVHX0tNUygiXG4iKTsKKworCS8qCisJICogVGhpcyBjYWxsYmFjayBpcyBub3QgcHJvdGVjdGVkIGJ5IGRybV9kZXZfZW50ZXIvZXhpdCBzaW5jZSB3ZSB3YW50IHRvCisJICogdHVybiBvZmYgdGhlIGRpc3BsYXkgb24gcmVndWxhciBkcml2ZXIgdW5sb2FkLiBJdCdzIGhpZ2hseSB1bmxpa2VseQorCSAqIHRoYXQgdGhlIHVuZGVybHlpbmcgU1BJIGNvbnRyb2xsZXIgaXMgZ29uZSBzaG91bGQgdGhpcyBiZSBjYWxsZWQgYWZ0ZXIKKwkgKiB1bnBsdWcuCisJICovCisKKwlpZiAoIWRiaWRldi0+ZW5hYmxlZCkKKwkJcmV0dXJuOworCisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9ESVNQTEFZX0NPTlRST0xfMSwgMHgwMDAwKTsKKwltc2xlZXAoNTApOworCWlsaTkyMjVfY29tbWFuZChkYmksIElMSTkyMjVfUE9XRVJfQ09OVFJPTF8yLCAweDAwMDcpOworCW1zbGVlcCg1MCk7CisJaWxpOTIyNV9jb21tYW5kKGRiaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzEsIDB4MGEwMik7CisKKwlkYmlkZXYtPmVuYWJsZWQgPSBmYWxzZTsKK30KKworc3RhdGljIGludCBpbGk5MjI1X2RiaV9jb21tYW5kKHN0cnVjdCBtaXBpX2RiaSAqZGJpLCB1OCAqY21kLCB1OCAqcGFyLAorCQkJICAgICAgIHNpemVfdCBudW0pCit7CisJc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IGRiaS0+c3BpOworCXVuc2lnbmVkIGludCBicHcgPSA4OworCXUzMiBzcGVlZF9oejsKKwlpbnQgcmV0OworCisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGRiaS0+ZGMsIDApOworCXNwZWVkX2h6ID0gbWlwaV9kYmlfc3BpX2NtZF9tYXhfc3BlZWQoc3BpLCAxKTsKKwlyZXQgPSBtaXBpX2RiaV9zcGlfdHJhbnNmZXIoc3BpLCBzcGVlZF9oeiwgOCwgY21kLCAxKTsKKwlpZiAocmV0IHx8ICFudW0pCisJCXJldHVybiByZXQ7CisKKwlpZiAoKmNtZCA9PSBJTEk5MjI1X1dSSVRFX0RBVEFfVE9fR1JBTSAmJiAhZGJpLT5zd2FwX2J5dGVzKQorCQlicHcgPSAxNjsKKworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChkYmktPmRjLCAxKTsKKwlzcGVlZF9oeiA9IG1pcGlfZGJpX3NwaV9jbWRfbWF4X3NwZWVkKHNwaSwgbnVtKTsKKworCXJldHVybiBtaXBpX2RiaV9zcGlfdHJhbnNmZXIoc3BpLCBzcGVlZF9oeiwgYnB3LCBwYXIsIG51bSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgaWxpOTIyNV9waXBlX2Z1bmNzID0geworCS5lbmFibGUJCT0gaWxpOTIyNV9waXBlX2VuYWJsZSwKKwkuZGlzYWJsZQk9IGlsaTkyMjVfcGlwZV9kaXNhYmxlLAorCS51cGRhdGUJCT0gaWxpOTIyNV9waXBlX3VwZGF0ZSwKKwkucHJlcGFyZV9mYgk9IGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9wcmVwYXJlX2ZiLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGlsaTkyMjVfbW9kZSA9IHsKKwlEUk1fU0lNUExFX01PREUoMTc2LCAyMjAsIDM1LCA0NCksCit9OworCitERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhpbGk5MjI1X2ZvcHMpOworCitzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgaWxpOTIyNV9kcml2ZXIgPSB7CisJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCisJLmZvcHMJCQk9ICZpbGk5MjI1X2ZvcHMsCisJLnJlbGVhc2UJCT0gbWlwaV9kYmlfcmVsZWFzZSwKKwlEUk1fR0VNX0NNQV9WTUFQX0RSSVZFUl9PUFMsCisJLm5hbWUJCQk9ICJpbGk5MjI1IiwKKwkuZGVzYwkJCT0gIklsaXRlayBJTEk5MjI1IiwKKwkuZGF0ZQkJCT0gIjIwMTcxMTA2IiwKKwkubWFqb3IJCQk9IDEsCisJLm1pbm9yCQkJPSAwLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaWxpOTIyNV9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAidm90LHYyMjBoZjAxYS10IiB9LAorCXt9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlsaTkyMjVfb2ZfbWF0Y2gpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgaWxpOTIyNV9pZFtdID0geworCXsgInYyMjBoZjAxYS10IiwgMCB9LAorCXsgfSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgaWxpOTIyNV9pZCk7CisKK3N0YXRpYyBpbnQgaWxpOTIyNV9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsKKwlzdHJ1Y3QgbWlwaV9kYmlfZGV2ICpkYmlkZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybTsKKwlzdHJ1Y3QgbWlwaV9kYmkgKmRiaTsKKwlzdHJ1Y3QgZ3Bpb19kZXNjICpyczsKKwl1MzIgcm90YXRpb24gPSAwOworCWludCByZXQ7CisKKwlkYmlkZXYgPSBremFsbG9jKHNpemVvZigqZGJpZGV2KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkYmlkZXYpCisJCXJldHVybiAtRU5PTUVNOworCisJZGJpID0gJmRiaWRldi0+ZGJpOworCWRybSA9ICZkYmlkZXYtPmRybTsKKwlyZXQgPSBkZXZtX2RybV9kZXZfaW5pdChkZXYsIGRybSwgJmlsaTkyMjVfZHJpdmVyKTsKKwlpZiAocmV0KSB7CisJCWtmcmVlKGRiaWRldik7CisJCXJldHVybiByZXQ7CisJfQorCisJZHJtX21vZGVfY29uZmlnX2luaXQoZHJtKTsKKworCWRiaS0+cmVzZXQgPSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKKwlpZiAoSVNfRVJSKGRiaS0+cmVzZXQpKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIpOworCQlyZXR1cm4gUFRSX0VSUihkYmktPnJlc2V0KTsKKwl9CisKKwlycyA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgInJzIiwgR1BJT0RfT1VUX0xPVyk7CisJaWYgKElTX0VSUihycykpIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZ2V0IGdwaW8gJ3JzJ1xuIik7CisJCXJldHVybiBQVFJfRVJSKHJzKTsKKwl9CisKKwlkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCAicm90YXRpb24iLCAmcm90YXRpb24pOworCisJcmV0ID0gbWlwaV9kYmlfc3BpX2luaXQoc3BpLCBkYmksIHJzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyogb3ZlcnJpZGUgdGhlIGNvbW1hbmQgZnVuY3Rpb24gc2V0IGluICBtaXBpX2RiaV9zcGlfaW5pdCgpICovCisJZGJpLT5jb21tYW5kID0gaWxpOTIyNV9kYmlfY29tbWFuZDsKKworCXJldCA9IG1pcGlfZGJpX2Rldl9pbml0KGRiaWRldiwgJmlsaTkyMjVfcGlwZV9mdW5jcywgJmlsaTkyMjVfbW9kZSwgcm90YXRpb24pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoZHJtKTsKKworCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3BpX3NldF9kcnZkYXRhKHNwaSwgZHJtKTsKKworCWRybV9mYmRldl9nZW5lcmljX3NldHVwKGRybSwgMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbGk5MjI1X3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKKworCWRybV9kZXZfdW5wbHVnKGRybSk7CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oZHJtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBpbGk5MjI1X3NodXRkb3duKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oc3BpX2dldF9kcnZkYXRhKHNwaSkpOworfQorCitzdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgaWxpOTIyNV9zcGlfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImlsaTkyMjUiLAorCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwkJLm9mX21hdGNoX3RhYmxlID0gaWxpOTIyNV9vZl9tYXRjaCwKKwl9LAorCS5pZF90YWJsZSA9IGlsaTkyMjVfaWQsCisJLnByb2JlID0gaWxpOTIyNV9wcm9iZSwKKwkucmVtb3ZlID0gaWxpOTIyNV9yZW1vdmUsCisJLnNodXRkb3duID0gaWxpOTIyNV9zaHV0ZG93biwKK307Cittb2R1bGVfc3BpX2RyaXZlcihpbGk5MjI1X3NwaV9kcml2ZXIpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIklsaXRlayBJTEk5MjI1IERSTSBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIkRhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbnkvaWxpOTM0MS5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvaWxpOTM0MS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzYjUxZGMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9pbGk5MzQxLmMKQEAgLTAsMCArMSwyNjggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIERSTSBkcml2ZXIgZm9yIElsaXRlayBJTEk5MzQxIHBhbmVscworICoKKyAqIENvcHlyaWdodCAyMDE4IERhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPgorICoKKyAqIEJhc2VkIG9uIG1pMDI4M3F0LmM6CisgKiBDb3B5cmlnaHQgMjAxNiBOb3JhbGYgVHLDuG5uZXMKKyAqLworCisjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcHJvcGVydHkuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kYmkuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyLmg+CisjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CisKKyNkZWZpbmUgSUxJOTM0MV9GUk1DVFIxCQkweGIxCisjZGVmaW5lIElMSTkzNDFfRElTQ1RSTAkJMHhiNgorI2RlZmluZSBJTEk5MzQxX0VUTU9ECQkweGI3CisKKyNkZWZpbmUgSUxJOTM0MV9QV0NUUkwxCQkweGMwCisjZGVmaW5lIElMSTkzNDFfUFdDVFJMMgkJMHhjMQorI2RlZmluZSBJTEk5MzQxX1ZNQ1RSTDEJCTB4YzUKKyNkZWZpbmUgSUxJOTM0MV9WTUNUUkwyCQkweGM3CisjZGVmaW5lIElMSTkzNDFfUFdDVFJMQQkJMHhjYgorI2RlZmluZSBJTEk5MzQxX1BXQ1RSTEIJCTB4Y2YKKworI2RlZmluZSBJTEk5MzQxX1BHQU1DVFJMCTB4ZTAKKyNkZWZpbmUgSUxJOTM0MV9OR0FNQ1RSTAkweGUxCisjZGVmaW5lIElMSTkzNDFfRFRDVFJMQQkJMHhlOAorI2RlZmluZSBJTEk5MzQxX0RUQ1RSTEIJCTB4ZWEKKyNkZWZpbmUgSUxJOTM0MV9QV1JTRVEJCTB4ZWQKKworI2RlZmluZSBJTEk5MzQxX0VOM0dBTQkJMHhmMgorI2RlZmluZSBJTEk5MzQxX1BVTVBDVFJMCTB4ZjcKKworI2RlZmluZSBJTEk5MzQxX01BRENUTF9CR1IJQklUKDMpCisjZGVmaW5lIElMSTkzNDFfTUFEQ1RMX01WCUJJVCg1KQorI2RlZmluZSBJTEk5MzQxX01BRENUTF9NWAlCSVQoNikKKyNkZWZpbmUgSUxJOTM0MV9NQURDVExfTVkJQklUKDcpCisKK3N0YXRpYyB2b2lkIHl4MjQwcXYyOV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAorCQkJICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQoreworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiA9IGRybV90b19taXBpX2RiaV9kZXYocGlwZS0+Y3J0Yy5kZXYpOworCXN0cnVjdCBtaXBpX2RiaSAqZGJpID0gJmRiaWRldi0+ZGJpOworCXU4IGFkZHJfbW9kZTsKKwlpbnQgcmV0LCBpZHg7CisKKwlpZiAoIWRybV9kZXZfZW50ZXIocGlwZS0+Y3J0Yy5kZXYsICZpZHgpKQorCQlyZXR1cm47CisKKwlEUk1fREVCVUdfS01TKCJcbiIpOworCisJcmV0ID0gbWlwaV9kYmlfcG93ZXJvbl9jb25kaXRpb25hbF9yZXNldChkYmlkZXYpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIG91dF9leGl0OworCWlmIChyZXQgPT0gMSkKKwkJZ290byBvdXRfZW5hYmxlOworCisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9ESVNQTEFZX09GRik7CisKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QV0NUUkxCLCAweDAwLCAweGMxLCAweDMwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QV1JTRVEsIDB4NjQsIDB4MDMsIDB4MTIsIDB4ODEpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX0RUQ1RSTEEsIDB4ODUsIDB4MDAsIDB4NzgpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX1BXQ1RSTEEsIDB4MzksIDB4MmMsIDB4MDAsIDB4MzQsIDB4MDIpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX1BVTVBDVFJMLCAweDIwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9EVENUUkxCLCAweDAwLCAweDAwKTsKKworCS8qIFBvd2VyIENvbnRyb2wgKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QV0NUUkwxLCAweDIzKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QV0NUUkwyLCAweDEwKTsKKwkvKiBWQ09NICovCisJbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfVk1DVFJMMSwgMHgzZSwgMHgyOCk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfVk1DVFJMMiwgMHg4Nik7CisKKwkvKiBNZW1vcnkgQWNjZXNzIENvbnRyb2wgKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX1BJWEVMX0ZPUk1BVCwgTUlQSV9EQ1NfUElYRUxfRk1UXzE2QklUKTsKKworCS8qIEZyYW1lIFJhdGUgKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9GUk1DVFIxLCAweDAwLCAweDFiKTsKKworCS8qIEdhbW1hICovCisJbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfRU4zR0FNLCAweDAwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX0dBTU1BX0NVUlZFLCAweDAxKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QR0FNQ1RSTCwKKwkJCSAweDBmLCAweDMxLCAweDJiLCAweDBjLCAweDBlLCAweDA4LCAweDRlLCAweGYxLAorCQkJIDB4MzcsIDB4MDcsIDB4MTAsIDB4MDMsIDB4MGUsIDB4MDksIDB4MDApOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX05HQU1DVFJMLAorCQkJIDB4MDAsIDB4MGUsIDB4MTQsIDB4MDMsIDB4MTEsIDB4MDcsIDB4MzEsIDB4YzEsCisJCQkgMHg0OCwgMHgwOCwgMHgwZiwgMHgwYywgMHgzMSwgMHgzNiwgMHgwZik7CisKKwkvKiBERFJBTSAqLworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX0VUTU9ELCAweDA3KTsKKworCS8qIERpc3BsYXkgKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9ESVNDVFJMLCAweDA4LCAweDgyLCAweDI3LCAweDAwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfRVhJVF9TTEVFUF9NT0RFKTsKKwltc2xlZXAoMTAwKTsKKworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19TRVRfRElTUExBWV9PTik7CisJbXNsZWVwKDEwMCk7CisKK291dF9lbmFibGU6CisJc3dpdGNoIChkYmlkZXYtPnJvdGF0aW9uKSB7CisJZGVmYXVsdDoKKwkJYWRkcl9tb2RlID0gSUxJOTM0MV9NQURDVExfTVg7CisJCWJyZWFrOworCWNhc2UgOTA6CisJCWFkZHJfbW9kZSA9IElMSTkzNDFfTUFEQ1RMX01WOworCQlicmVhazsKKwljYXNlIDE4MDoKKwkJYWRkcl9tb2RlID0gSUxJOTM0MV9NQURDVExfTVk7CisJCWJyZWFrOworCWNhc2UgMjcwOgorCQlhZGRyX21vZGUgPSBJTEk5MzQxX01BRENUTF9NViB8IElMSTkzNDFfTUFEQ1RMX01ZIHwKKwkJCSAgICBJTEk5MzQxX01BRENUTF9NWDsKKwkJYnJlYWs7CisJfQorCWFkZHJfbW9kZSB8PSBJTEk5MzQxX01BRENUTF9CR1I7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9BRERSRVNTX01PREUsIGFkZHJfbW9kZSk7CisJbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKGRiaWRldiwgY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOworb3V0X2V4aXQ6CisJZHJtX2Rldl9leGl0KGlkeCk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgaWxpOTM0MV9waXBlX2Z1bmNzID0geworCS5lbmFibGUgPSB5eDI0MHF2MjlfZW5hYmxlLAorCS5kaXNhYmxlID0gbWlwaV9kYmlfcGlwZV9kaXNhYmxlLAorCS51cGRhdGUgPSBtaXBpX2RiaV9waXBlX3VwZGF0ZSwKKwkucHJlcGFyZV9mYiA9IGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9wcmVwYXJlX2ZiLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHl4MjQwcXYyOV9tb2RlID0geworCURSTV9TSU1QTEVfTU9ERSgyNDAsIDMyMCwgMzcsIDQ5KSwKK307CisKK0RFRklORV9EUk1fR0VNX0NNQV9GT1BTKGlsaTkzNDFfZm9wcyk7CisKK3N0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBpbGk5MzQxX2RyaXZlciA9IHsKKwkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQywKKwkuZm9wcwkJCT0gJmlsaTkzNDFfZm9wcywKKwkucmVsZWFzZQkJPSBtaXBpX2RiaV9yZWxlYXNlLAorCURSTV9HRU1fQ01BX1ZNQVBfRFJJVkVSX09QUywKKwkuZGVidWdmc19pbml0CQk9IG1pcGlfZGJpX2RlYnVnZnNfaW5pdCwKKwkubmFtZQkJCT0gImlsaTkzNDEiLAorCS5kZXNjCQkJPSAiSWxpdGVrIElMSTkzNDEiLAorCS5kYXRlCQkJPSAiMjAxODA1MTQiLAorCS5tYWpvcgkJCT0gMSwKKwkubWlub3IJCQk9IDAsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbGk5MzQxX29mX21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJhZGFmcnVpdCx5eDI0MHF2MjkiIH0sCisJeyB9Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaWxpOTM0MV9vZl9tYXRjaCk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCBpbGk5MzQxX2lkW10gPSB7CisJeyAieXgyNDBxdjI5IiwgMCB9LAorCXsgfQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCBpbGk5MzQxX2lkKTsKKworc3RhdGljIGludCBpbGk5MzQxX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnNwaS0+ZGV2OworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOworCXN0cnVjdCBtaXBpX2RiaSAqZGJpOworCXN0cnVjdCBncGlvX2Rlc2MgKmRjOworCXUzMiByb3RhdGlvbiA9IDA7CisJaW50IHJldDsKKworCWRiaWRldiA9IGt6YWxsb2Moc2l6ZW9mKCpkYmlkZXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRiaWRldikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkYmkgPSAmZGJpZGV2LT5kYmk7CisJZHJtID0gJmRiaWRldi0+ZHJtOworCXJldCA9IGRldm1fZHJtX2Rldl9pbml0KGRldiwgZHJtLCAmaWxpOTM0MV9kcml2ZXIpOworCWlmIChyZXQpIHsKKwkJa2ZyZWUoZGJpZGV2KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlkcm1fbW9kZV9jb25maWdfaW5pdChkcm0pOworCisJZGJpLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOworCWlmIChJU19FUlIoZGJpLT5yZXNldCkpIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZ2V0IGdwaW8gJ3Jlc2V0J1xuIik7CisJCXJldHVybiBQVFJfRVJSKGRiaS0+cmVzZXQpOworCX0KKworCWRjID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoZGV2LCAiZGMiLCBHUElPRF9PVVRfTE9XKTsKKwlpZiAoSVNfRVJSKGRjKSkgeworCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAnZGMnXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIoZGMpOworCX0KKworCWRiaWRldi0+YmFja2xpZ2h0ID0gZGV2bV9vZl9maW5kX2JhY2tsaWdodChkZXYpOworCWlmIChJU19FUlIoZGJpZGV2LT5iYWNrbGlnaHQpKQorCQlyZXR1cm4gUFRSX0VSUihkYmlkZXYtPmJhY2tsaWdodCk7CisKKwlkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCAicm90YXRpb24iLCAmcm90YXRpb24pOworCisJcmV0ID0gbWlwaV9kYmlfc3BpX2luaXQoc3BpLCBkYmksIGRjKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gbWlwaV9kYmlfZGV2X2luaXQoZGJpZGV2LCAmaWxpOTM0MV9waXBlX2Z1bmNzLCAmeXgyNDBxdjI5X21vZGUsIHJvdGF0aW9uKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRybSk7CisKKwlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRybSwgMCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXNwaV9zZXRfZHJ2ZGF0YShzcGksIGRybSk7CisKKwlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm0sIDApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaWxpOTM0MV9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7CisKKwlkcm1fZGV2X3VucGx1Zyhkcm0pOworCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRybSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaWxpOTM0MV9zaHV0ZG93bihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKHNwaV9nZXRfZHJ2ZGF0YShzcGkpKTsKK30KKworc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIGlsaTkzNDFfc3BpX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJpbGk5MzQxIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gaWxpOTM0MV9vZl9tYXRjaCwKKwl9LAorCS5pZF90YWJsZSA9IGlsaTkzNDFfaWQsCisJLnByb2JlID0gaWxpOTM0MV9wcm9iZSwKKwkucmVtb3ZlID0gaWxpOTM0MV9yZW1vdmUsCisJLnNodXRkb3duID0gaWxpOTM0MV9zaHV0ZG93biwKK307Cittb2R1bGVfc3BpX2RyaXZlcihpbGk5MzQxX3NwaV9kcml2ZXIpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIklsaXRlayBJTEk5MzQxIERSTSBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIkRhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbnkvbWkwMjgzcXQuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L21pMDI4M3F0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJjZmQ5YQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L21pMDI4M3F0LmMKQEAgLTAsMCArMSwyOTQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCisvKgorICogRFJNIGRyaXZlciBmb3IgTXVsdGktSW5ubyBNSTAyODNRVCBwYW5lbHMKKyAqCisgKiBDb3B5cmlnaHQgMjAxNiBOb3JhbGYgVHLDuG5uZXMKKyAqLworCisjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcHJvcGVydHkuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kYmkuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyLmg+CisjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CisKKyNkZWZpbmUgSUxJOTM0MV9GUk1DVFIxCQkweGIxCisjZGVmaW5lIElMSTkzNDFfRElTQ1RSTAkJMHhiNgorI2RlZmluZSBJTEk5MzQxX0VUTU9ECQkweGI3CisKKyNkZWZpbmUgSUxJOTM0MV9QV0NUUkwxCQkweGMwCisjZGVmaW5lIElMSTkzNDFfUFdDVFJMMgkJMHhjMQorI2RlZmluZSBJTEk5MzQxX1ZNQ1RSTDEJCTB4YzUKKyNkZWZpbmUgSUxJOTM0MV9WTUNUUkwyCQkweGM3CisjZGVmaW5lIElMSTkzNDFfUFdDVFJMQQkJMHhjYgorI2RlZmluZSBJTEk5MzQxX1BXQ1RSTEIJCTB4Y2YKKworI2RlZmluZSBJTEk5MzQxX1BHQU1DVFJMCTB4ZTAKKyNkZWZpbmUgSUxJOTM0MV9OR0FNQ1RSTAkweGUxCisjZGVmaW5lIElMSTkzNDFfRFRDVFJMQQkJMHhlOAorI2RlZmluZSBJTEk5MzQxX0RUQ1RSTEIJCTB4ZWEKKyNkZWZpbmUgSUxJOTM0MV9QV1JTRVEJCTB4ZWQKKworI2RlZmluZSBJTEk5MzQxX0VOM0dBTQkJMHhmMgorI2RlZmluZSBJTEk5MzQxX1BVTVBDVFJMCTB4ZjcKKworI2RlZmluZSBJTEk5MzQxX01BRENUTF9CR1IJQklUKDMpCisjZGVmaW5lIElMSTkzNDFfTUFEQ1RMX01WCUJJVCg1KQorI2RlZmluZSBJTEk5MzQxX01BRENUTF9NWAlCSVQoNikKKyNkZWZpbmUgSUxJOTM0MV9NQURDVExfTVkJQklUKDcpCisKK3N0YXRpYyB2b2lkIG1pMDI4M3F0X2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCisJCQkgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQoreworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiA9IGRybV90b19taXBpX2RiaV9kZXYocGlwZS0+Y3J0Yy5kZXYpOworCXN0cnVjdCBtaXBpX2RiaSAqZGJpID0gJmRiaWRldi0+ZGJpOworCXU4IGFkZHJfbW9kZTsKKwlpbnQgcmV0LCBpZHg7CisKKwlpZiAoIWRybV9kZXZfZW50ZXIocGlwZS0+Y3J0Yy5kZXYsICZpZHgpKQorCQlyZXR1cm47CisKKwlEUk1fREVCVUdfS01TKCJcbiIpOworCisJcmV0ID0gbWlwaV9kYmlfcG93ZXJvbl9jb25kaXRpb25hbF9yZXNldChkYmlkZXYpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIG91dF9leGl0OworCWlmIChyZXQgPT0gMSkKKwkJZ290byBvdXRfZW5hYmxlOworCisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9ESVNQTEFZX09GRik7CisKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QV0NUUkxCLCAweDAwLCAweDgzLCAweDMwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QV1JTRVEsIDB4NjQsIDB4MDMsIDB4MTIsIDB4ODEpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX0RUQ1RSTEEsIDB4ODUsIDB4MDEsIDB4NzkpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX1BXQ1RSTEEsIDB4MzksIDB4MmMsIDB4MDAsIDB4MzQsIDB4MDIpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX1BVTVBDVFJMLCAweDIwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9EVENUUkxCLCAweDAwLCAweDAwKTsKKworCS8qIFBvd2VyIENvbnRyb2wgKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QV0NUUkwxLCAweDI2KTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QV0NUUkwyLCAweDExKTsKKwkvKiBWQ09NICovCisJbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfVk1DVFJMMSwgMHgzNSwgMHgzZSk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfVk1DVFJMMiwgMHhiZSk7CisKKwkvKiBNZW1vcnkgQWNjZXNzIENvbnRyb2wgKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX1BJWEVMX0ZPUk1BVCwgTUlQSV9EQ1NfUElYRUxfRk1UXzE2QklUKTsKKworCS8qIEZyYW1lIFJhdGUgKi8KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9GUk1DVFIxLCAweDAwLCAweDFiKTsKKworCS8qIEdhbW1hICovCisJbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfRU4zR0FNLCAweDA4KTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX0dBTU1BX0NVUlZFLCAweDAxKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QR0FNQ1RSTCwKKwkJICAgICAgIDB4MWYsIDB4MWEsIDB4MTgsIDB4MGEsIDB4MGYsIDB4MDYsIDB4NDUsIDB4ODcsCisJCSAgICAgICAweDMyLCAweDBhLCAweDA3LCAweDAyLCAweDA3LCAweDA1LCAweDAwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9OR0FNQ1RSTCwKKwkJICAgICAgIDB4MDAsIDB4MjUsIDB4MjcsIDB4MDUsIDB4MTAsIDB4MDksIDB4M2EsIDB4NzgsCisJCSAgICAgICAweDRkLCAweDA1LCAweDE4LCAweDBkLCAweDM4LCAweDNhLCAweDFmKTsKKworCS8qIEREUkFNICovCisJbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfRVRNT0QsIDB4MDcpOworCisJLyogRGlzcGxheSAqLworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX0RJU0NUUkwsIDB4MGEsIDB4ODIsIDB4MjcsIDB4MDApOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19FWElUX1NMRUVQX01PREUpOworCW1zbGVlcCgxMDApOworCisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9ESVNQTEFZX09OKTsKKwltc2xlZXAoMTAwKTsKKworb3V0X2VuYWJsZToKKwkvKiBUaGUgUGlURlQgKGlsaTkzNDApIGhhcyBhIGhhcmR3YXJlIHJlc2V0IGNpcmN1aXQgdGhhdAorCSAqIHJlc2V0cyBvbmx5IG9uIHBvd2VyLW9uIGFuZCBub3Qgb24gZWFjaCByZWJvb3QgdGhyb3VnaAorCSAqIGEgZ3BpbyBsaWtlIHRoZSBycGktZGlzcGxheSBkb2VzLgorCSAqIEFzIGEgcmVzdWx0LCB3ZSBuZWVkIHRvIGFsd2F5cyBhcHBseSB0aGUgcm90YXRpb24gdmFsdWUKKwkgKiByZWdhcmRsZXNzIG9mIHRoZSBkaXNwbGF5ICJvbi9vZmYiIHN0YXRlLgorCSAqLworCXN3aXRjaCAoZGJpZGV2LT5yb3RhdGlvbikgeworCWRlZmF1bHQ6CisJCWFkZHJfbW9kZSA9IElMSTkzNDFfTUFEQ1RMX01WIHwgSUxJOTM0MV9NQURDVExfTVkgfAorCQkJICAgIElMSTkzNDFfTUFEQ1RMX01YOworCQlicmVhazsKKwljYXNlIDkwOgorCQlhZGRyX21vZGUgPSBJTEk5MzQxX01BRENUTF9NWTsKKwkJYnJlYWs7CisJY2FzZSAxODA6CisJCWFkZHJfbW9kZSA9IElMSTkzNDFfTUFEQ1RMX01WOworCQlicmVhazsKKwljYXNlIDI3MDoKKwkJYWRkcl9tb2RlID0gSUxJOTM0MV9NQURDVExfTVg7CisJCWJyZWFrOworCX0KKwlhZGRyX21vZGUgfD0gSUxJOTM0MV9NQURDVExfQkdSOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19TRVRfQUREUkVTU19NT0RFLCBhZGRyX21vZGUpOworCW1pcGlfZGJpX2VuYWJsZV9mbHVzaChkYmlkZXYsIGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKK291dF9leGl0OgorCWRybV9kZXZfZXhpdChpZHgpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIG1pMDI4M3F0X3BpcGVfZnVuY3MgPSB7CisJLmVuYWJsZSA9IG1pMDI4M3F0X2VuYWJsZSwKKwkuZGlzYWJsZSA9IG1pcGlfZGJpX3BpcGVfZGlzYWJsZSwKKwkudXBkYXRlID0gbWlwaV9kYmlfcGlwZV91cGRhdGUsCisJLnByZXBhcmVfZmIgPSBkcm1fZ2VtX2ZiX3NpbXBsZV9kaXNwbGF5X3BpcGVfcHJlcGFyZV9mYiwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtaTAyODNxdF9tb2RlID0geworCURSTV9TSU1QTEVfTU9ERSgzMjAsIDI0MCwgNTgsIDQzKSwKK307CisKK0RFRklORV9EUk1fR0VNX0NNQV9GT1BTKG1pMDI4M3F0X2ZvcHMpOworCitzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgbWkwMjgzcXRfZHJpdmVyID0geworCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLAorCS5mb3BzCQkJPSAmbWkwMjgzcXRfZm9wcywKKwkucmVsZWFzZQkJPSBtaXBpX2RiaV9yZWxlYXNlLAorCURSTV9HRU1fQ01BX1ZNQVBfRFJJVkVSX09QUywKKwkuZGVidWdmc19pbml0CQk9IG1pcGlfZGJpX2RlYnVnZnNfaW5pdCwKKwkubmFtZQkJCT0gIm1pMDI4M3F0IiwKKwkuZGVzYwkJCT0gIk11bHRpLUlubm8gTUkwMjgzUVQiLAorCS5kYXRlCQkJPSAiMjAxNjA2MTQiLAorCS5tYWpvcgkJCT0gMSwKKwkubWlub3IJCQk9IDAsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtaTAyODNxdF9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAibXVsdGktaW5ubyxtaTAyODNxdCIgfSwKKwl7fSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtaTAyODNxdF9vZl9tYXRjaCk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCBtaTAyODNxdF9pZFtdID0geworCXsgIm1pMDI4M3F0IiwgMCB9LAorCXsgfSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgbWkwMjgzcXRfaWQpOworCitzdGF0aWMgaW50IG1pMDI4M3F0X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnNwaS0+ZGV2OworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOworCXN0cnVjdCBtaXBpX2RiaSAqZGJpOworCXN0cnVjdCBncGlvX2Rlc2MgKmRjOworCXUzMiByb3RhdGlvbiA9IDA7CisJaW50IHJldDsKKworCWRiaWRldiA9IGt6YWxsb2Moc2l6ZW9mKCpkYmlkZXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRiaWRldikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkYmkgPSAmZGJpZGV2LT5kYmk7CisJZHJtID0gJmRiaWRldi0+ZHJtOworCXJldCA9IGRldm1fZHJtX2Rldl9pbml0KGRldiwgZHJtLCAmbWkwMjgzcXRfZHJpdmVyKTsKKwlpZiAocmV0KSB7CisJCWtmcmVlKGRiaWRldik7CisJCXJldHVybiByZXQ7CisJfQorCisJZHJtX21vZGVfY29uZmlnX2luaXQoZHJtKTsKKworCWRiaS0+cmVzZXQgPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKKwlpZiAoSVNfRVJSKGRiaS0+cmVzZXQpKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIpOworCQlyZXR1cm4gUFRSX0VSUihkYmktPnJlc2V0KTsKKwl9CisKKwlkYyA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgImRjIiwgR1BJT0RfT1VUX0xPVyk7CisJaWYgKElTX0VSUihkYykpIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZ2V0IGdwaW8gJ2RjJ1xuIik7CisJCXJldHVybiBQVFJfRVJSKGRjKTsKKwl9CisKKwlkYmlkZXYtPnJlZ3VsYXRvciA9IGRldm1fcmVndWxhdG9yX2dldChkZXYsICJwb3dlciIpOworCWlmIChJU19FUlIoZGJpZGV2LT5yZWd1bGF0b3IpKQorCQlyZXR1cm4gUFRSX0VSUihkYmlkZXYtPnJlZ3VsYXRvcik7CisKKwlkYmlkZXYtPmJhY2tsaWdodCA9IGRldm1fb2ZfZmluZF9iYWNrbGlnaHQoZGV2KTsKKwlpZiAoSVNfRVJSKGRiaWRldi0+YmFja2xpZ2h0KSkKKwkJcmV0dXJuIFBUUl9FUlIoZGJpZGV2LT5iYWNrbGlnaHQpOworCisJZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwgInJvdGF0aW9uIiwgJnJvdGF0aW9uKTsKKworCXJldCA9IG1pcGlfZGJpX3NwaV9pbml0KHNwaSwgZGJpLCBkYyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IG1pcGlfZGJpX2Rldl9pbml0KGRiaWRldiwgJm1pMDI4M3F0X3BpcGVfZnVuY3MsICZtaTAyODNxdF9tb2RlLCByb3RhdGlvbik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWRybV9tb2RlX2NvbmZpZ19yZXNldChkcm0pOworCisJcmV0ID0gZHJtX2Rldl9yZWdpc3Rlcihkcm0sIDApOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlzcGlfc2V0X2RydmRhdGEoc3BpLCBkcm0pOworCisJZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoZHJtLCAwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG1pMDI4M3F0X3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKKworCWRybV9kZXZfdW5wbHVnKGRybSk7CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oZHJtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBtaTAyODNxdF9zaHV0ZG93bihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKHNwaV9nZXRfZHJ2ZGF0YShzcGkpKTsKK30KKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBtaTAyODNxdF9wbV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gZHJtX21vZGVfY29uZmlnX2hlbHBlcl9zdXNwZW5kKGRldl9nZXRfZHJ2ZGF0YShkZXYpKTsKK30KKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBtaTAyODNxdF9wbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQoreworCWRybV9tb2RlX2NvbmZpZ19oZWxwZXJfcmVzdW1lKGRldl9nZXRfZHJ2ZGF0YShkZXYpKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgbWkwMjgzcXRfcG1fb3BzID0geworCVNFVF9TWVNURU1fU0xFRVBfUE1fT1BTKG1pMDI4M3F0X3BtX3N1c3BlbmQsIG1pMDI4M3F0X3BtX3Jlc3VtZSkKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBtaTAyODNxdF9zcGlfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gIm1pMDI4M3F0IiwKKwkJLm93bmVyID0gVEhJU19NT0RVTEUsCisJCS5vZl9tYXRjaF90YWJsZSA9IG1pMDI4M3F0X29mX21hdGNoLAorCQkucG0gPSAmbWkwMjgzcXRfcG1fb3BzLAorCX0sCisJLmlkX3RhYmxlID0gbWkwMjgzcXRfaWQsCisJLnByb2JlID0gbWkwMjgzcXRfcHJvYmUsCisJLnJlbW92ZSA9IG1pMDI4M3F0X3JlbW92ZSwKKwkuc2h1dGRvd24gPSBtaTAyODNxdF9zaHV0ZG93biwKK307Cittb2R1bGVfc3BpX2RyaXZlcihtaTAyODNxdF9zcGlfZHJpdmVyKTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJNdWx0aS1Jbm5vIE1JMDI4M1FUIERSTSBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIk5vcmFsZiBUcsO4bm5lcyIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbnkvcmVwYXBlci5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvcmVwYXBlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2ZDE3OTIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9yZXBhcGVyLmMKQEAgLTAsMCArMSwxMjEyIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorLyoKKyAqIERSTSBkcml2ZXIgZm9yIFBlcnZhc2l2ZSBEaXNwbGF5cyBSZVBhcGVyIGJyYW5kZWQgZS1pbmsgcGFuZWxzCisgKgorICogQ29weXJpZ2h0IDIwMTMtMjAxNyBQZXJ2YXNpdmUgRGlzcGxheXMsIEluYy4KKyAqIENvcHlyaWdodCAyMDE3IE5vcmFsZiBUcsO4bm5lcworICoKKyAqIFRoZSBkcml2ZXIgc3VwcG9ydHM6CisgKiBNYXRlcmlhbCBGaWxtOiBBdXJvcmEgTWIgKFYyMzEpCisgKiBEcml2ZXIgSUM6IEcyIChlVEMpCisgKgorICogVGhlIGNvbnRyb2xsZXIgY29kZSB3YXMgdGFrZW4gZnJvbSB0aGUgdXNlcnNwYWNlIGRyaXZlcjoKKyAqIGh0dHBzOi8vZ2l0aHViLmNvbS9yZXBhcGVyL2dyYXRpcworICovCisKKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQvY2xvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisjaW5jbHVkZSA8bGludXgvdGhlcm1hbC5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3JtYXRfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgorCisjZGVmaW5lIFJFUEFQRVJfUklEX0cyX0NPR19JRAkweDEyCisKK2VudW0gcmVwYXBlcl9tb2RlbCB7CisJRTExNDRDUzAyMSA9IDEsCisJRTExOTBDUzAyMSwKKwlFMjIwMENTMDIxLAorCUUyMjcxQ1MwMjEsCit9OworCitlbnVtIHJlcGFwZXJfc3RhZ2UgeyAgICAgICAgIC8qIEltYWdlIHBpeGVsIC0+IERpc3BsYXkgcGl4ZWwgKi8KKwlSRVBBUEVSX0NPTVBFTlNBVEUsICAvKiBCIC0+IFcsIFcgLT4gQiAoQ3VycmVudCBJbWFnZSkgKi8KKwlSRVBBUEVSX1dISVRFLCAgICAgICAvKiBCIC0+IE4sIFcgLT4gVyAoQ3VycmVudCBJbWFnZSkgKi8KKwlSRVBBUEVSX0lOVkVSU0UsICAgICAvKiBCIC0+IE4sIFcgLT4gQiAoTmV3IEltYWdlKSAqLworCVJFUEFQRVJfTk9STUFMICAgICAgIC8qIEIgLT4gQiwgVyAtPiBXIChOZXcgSW1hZ2UpICovCit9OworCitlbnVtIHJlcGFwZXJfZXBkX2JvcmRlcl9ieXRlIHsKKwlSRVBBUEVSX0JPUkRFUl9CWVRFX05PTkUsCisJUkVQQVBFUl9CT1JERVJfQllURV9aRVJPLAorCVJFUEFQRVJfQk9SREVSX0JZVEVfU0VULAorfTsKKworc3RydWN0IHJlcGFwZXJfZXBkIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSBkcm07CisJc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlIHBpcGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisJc3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOworCXN0cnVjdCBzcGlfZGV2aWNlICpzcGk7CisKKwlzdHJ1Y3QgZ3Bpb19kZXNjICpwYW5lbF9vbjsKKwlzdHJ1Y3QgZ3Bpb19kZXNjICpib3JkZXI7CisJc3RydWN0IGdwaW9fZGVzYyAqZGlzY2hhcmdlOworCXN0cnVjdCBncGlvX2Rlc2MgKnJlc2V0OworCXN0cnVjdCBncGlvX2Rlc2MgKmJ1c3k7CisKKwlzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdGhlcm1hbDsKKworCXVuc2lnbmVkIGludCBoZWlnaHQ7CisJdW5zaWduZWQgaW50IHdpZHRoOworCXVuc2lnbmVkIGludCBieXRlc19wZXJfc2NhbjsKKwljb25zdCB1OCAqY2hhbm5lbF9zZWxlY3Q7CisJdW5zaWduZWQgaW50IHN0YWdlX3RpbWU7CisJdW5zaWduZWQgaW50IGZhY3RvcmVkX3N0YWdlX3RpbWU7CisJYm9vbCBtaWRkbGVfc2NhbjsKKwlib29sIHByZV9ib3JkZXJfYnl0ZTsKKwllbnVtIHJlcGFwZXJfZXBkX2JvcmRlcl9ieXRlIGJvcmRlcl9ieXRlOworCisJdTggKmxpbmVfYnVmZmVyOworCXZvaWQgKmN1cnJlbnRfZnJhbWU7CisKKwlib29sIGVuYWJsZWQ7CisJYm9vbCBjbGVhcmVkOworCWJvb2wgcGFydGlhbDsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJlcGFwZXJfZXBkICpkcm1fdG9fZXBkKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihkcm0sIHN0cnVjdCByZXBhcGVyX2VwZCwgZHJtKTsKK30KKworc3RhdGljIGludCByZXBhcGVyX3NwaV90cmFuc2ZlcihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCB1OCBoZWFkZXIsCisJCQkJY29uc3Qgdm9pZCAqdHgsIHZvaWQgKnJ4LCBzaXplX3QgbGVuKQoreworCXZvaWQgKnR4YnVmID0gTlVMTCwgKnJ4YnVmID0gTlVMTDsKKwlzdHJ1Y3Qgc3BpX3RyYW5zZmVyIHRyWzJdID0ge307CisJdTggKmhlYWRlcmJ1ZjsKKwlpbnQgcmV0OworCisJaGVhZGVyYnVmID0ga21hbGxvYygxLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWhlYWRlcmJ1ZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwloZWFkZXJidWZbMF0gPSBoZWFkZXI7CisJdHJbMF0udHhfYnVmID0gaGVhZGVyYnVmOworCXRyWzBdLmxlbiA9IDE7CisKKwkvKiBTdGFjayBhbGxvY2F0ZWQgdHg/ICovCisJaWYgKHR4ICYmIGxlbiA8PSAzMikgeworCQl0eGJ1ZiA9IGttZW1kdXAodHgsIGxlbiwgR0ZQX0tFUk5FTCk7CisJCWlmICghdHhidWYpIHsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIG91dF9mcmVlOworCQl9CisJfQorCisJaWYgKHJ4KSB7CisJCXJ4YnVmID0ga21hbGxvYyhsZW4sIEdGUF9LRVJORUwpOworCQlpZiAoIXJ4YnVmKSB7CisJCQlyZXQgPSAtRU5PTUVNOworCQkJZ290byBvdXRfZnJlZTsKKwkJfQorCX0KKworCXRyWzFdLnR4X2J1ZiA9IHR4YnVmID8gdHhidWYgOiB0eDsKKwl0clsxXS5yeF9idWYgPSByeGJ1ZjsKKwl0clsxXS5sZW4gPSBsZW47CisKKwluZGVsYXkoODApOworCXJldCA9IHNwaV9zeW5jX3RyYW5zZmVyKHNwaSwgdHIsIDIpOworCWlmIChyeCAmJiAhcmV0KQorCQltZW1jcHkocngsIHJ4YnVmLCBsZW4pOworCitvdXRfZnJlZToKKwlrZnJlZShoZWFkZXJidWYpOworCWtmcmVlKHR4YnVmKTsKKwlrZnJlZShyeGJ1Zik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHJlcGFwZXJfd3JpdGVfYnVmKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHU4IHJlZywKKwkJCSAgICAgY29uc3QgdTggKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gcmVwYXBlcl9zcGlfdHJhbnNmZXIoc3BpLCAweDcwLCAmcmVnLCBOVUxMLCAxKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIHJlcGFwZXJfc3BpX3RyYW5zZmVyKHNwaSwgMHg3MiwgYnVmLCBOVUxMLCBsZW4pOworfQorCitzdGF0aWMgaW50IHJlcGFwZXJfd3JpdGVfdmFsKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHU4IHJlZywgdTggdmFsKQoreworCXJldHVybiByZXBhcGVyX3dyaXRlX2J1ZihzcGksIHJlZywgJnZhbCwgMSk7Cit9CisKK3N0YXRpYyBpbnQgcmVwYXBlcl9yZWFkX3ZhbChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCB1OCByZWcpCit7CisJaW50IHJldDsKKwl1OCB2YWw7CisKKwlyZXQgPSByZXBhcGVyX3NwaV90cmFuc2ZlcihzcGksIDB4NzAsICZyZWcsIE5VTEwsIDEpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSByZXBhcGVyX3NwaV90cmFuc2ZlcihzcGksIDB4NzMsIE5VTEwsICZ2YWwsIDEpOworCisJcmV0dXJuIHJldCA/IHJldCA6IHZhbDsKK30KKworc3RhdGljIGludCByZXBhcGVyX3JlYWRfaWQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlpbnQgcmV0OworCXU4IGlkOworCisJcmV0ID0gcmVwYXBlcl9zcGlfdHJhbnNmZXIoc3BpLCAweDcxLCBOVUxMLCAmaWQsIDEpOworCisJcmV0dXJuIHJldCA/IHJldCA6IGlkOworfQorCitzdGF0aWMgdm9pZCByZXBhcGVyX3NwaV9tb3NpX2xvdyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCWNvbnN0IHU4IGJ1ZlsxXSA9IHsgMCB9OworCisJc3BpX3dyaXRlKHNwaSwgYnVmLCAxKTsKK30KKworLyogcGl4ZWxzIG9uIGRpc3BsYXkgYXJlIG51bWJlcmVkIGZyb20gMSBzbyBldmVuIGlzIGFjdHVhbGx5IGJpdHMgMSwzLDUsLi4uICovCitzdGF0aWMgdm9pZCByZXBhcGVyX2V2ZW5fcGl4ZWxzKHN0cnVjdCByZXBhcGVyX2VwZCAqZXBkLCB1OCAqKnBwLAorCQkJCWNvbnN0IHU4ICpkYXRhLCB1OCBmaXhlZF92YWx1ZSwgY29uc3QgdTggKm1hc2ssCisJCQkJZW51bSByZXBhcGVyX3N0YWdlIHN0YWdlKQoreworCXVuc2lnbmVkIGludCBiOworCisJZm9yIChiID0gMDsgYiA8IChlcGQtPndpZHRoIC8gOCk7IGIrKykgeworCQlpZiAoZGF0YSkgeworCQkJdTggcGl4ZWxzID0gZGF0YVtiXSAmIDB4YWE7CisJCQl1OCBwaXhlbF9tYXNrID0gMHhmZjsKKwkJCXU4IHAxLCBwMiwgcDMsIHA0OworCisJCQlpZiAobWFzaykgeworCQkJCXBpeGVsX21hc2sgPSAobWFza1tiXSBeIHBpeGVscykgJiAweGFhOworCQkJCXBpeGVsX21hc2sgfD0gcGl4ZWxfbWFzayA+PiAxOworCQkJfQorCisJCQlzd2l0Y2ggKHN0YWdlKSB7CisJCQljYXNlIFJFUEFQRVJfQ09NUEVOU0FURTogLyogQiAtPiBXLCBXIC0+IEIgKEN1cnJlbnQpICovCisJCQkJcGl4ZWxzID0gMHhhYSB8ICgocGl4ZWxzIF4gMHhhYSkgPj4gMSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFJFUEFQRVJfV0hJVEU6ICAgICAgLyogQiAtPiBOLCBXIC0+IFcgKEN1cnJlbnQpICovCisJCQkJcGl4ZWxzID0gMHg1NSArICgocGl4ZWxzIF4gMHhhYSkgPj4gMSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFJFUEFQRVJfSU5WRVJTRTogICAgLyogQiAtPiBOLCBXIC0+IEIgKE5ldykgKi8KKwkJCQlwaXhlbHMgPSAweDU1IHwgKHBpeGVscyBeIDB4YWEpOworCQkJCWJyZWFrOworCQkJY2FzZSBSRVBBUEVSX05PUk1BTDogICAgIC8qIEIgLT4gQiwgVyAtPiBXIChOZXcpICovCisJCQkJcGl4ZWxzID0gMHhhYSB8IChwaXhlbHMgPj4gMSk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCXBpeGVscyA9IChwaXhlbHMgJiBwaXhlbF9tYXNrKSB8ICh+cGl4ZWxfbWFzayAmIDB4NTUpOworCQkJcDEgPSAocGl4ZWxzID4+IDYpICYgMHgwMzsKKwkJCXAyID0gKHBpeGVscyA+PiA0KSAmIDB4MDM7CisJCQlwMyA9IChwaXhlbHMgPj4gMikgJiAweDAzOworCQkJcDQgPSAocGl4ZWxzID4+IDApICYgMHgwMzsKKwkJCXBpeGVscyA9IChwMSA8PCAwKSB8IChwMiA8PCAyKSB8IChwMyA8PCA0KSB8IChwNCA8PCA2KTsKKwkJCSooKnBwKSsrID0gcGl4ZWxzOworCQl9IGVsc2UgeworCQkJKigqcHApKysgPSBmaXhlZF92YWx1ZTsKKwkJfQorCX0KK30KKworLyogcGl4ZWxzIG9uIGRpc3BsYXkgYXJlIG51bWJlcmVkIGZyb20gMSBzbyBvZGQgaXMgYWN0dWFsbHkgYml0cyAwLDIsNCwuLi4gKi8KK3N0YXRpYyB2b2lkIHJlcGFwZXJfb2RkX3BpeGVscyhzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZCwgdTggKipwcCwKKwkJCSAgICAgICBjb25zdCB1OCAqZGF0YSwgdTggZml4ZWRfdmFsdWUsIGNvbnN0IHU4ICptYXNrLAorCQkJICAgICAgIGVudW0gcmVwYXBlcl9zdGFnZSBzdGFnZSkKK3sKKwl1bnNpZ25lZCBpbnQgYjsKKworCWZvciAoYiA9IGVwZC0+d2lkdGggLyA4OyBiID4gMDsgYi0tKSB7CisJCWlmIChkYXRhKSB7CisJCQl1OCBwaXhlbHMgPSBkYXRhW2IgLSAxXSAmIDB4NTU7CisJCQl1OCBwaXhlbF9tYXNrID0gMHhmZjsKKworCQkJaWYgKG1hc2spIHsKKwkJCQlwaXhlbF9tYXNrID0gKG1hc2tbYiAtIDFdIF4gcGl4ZWxzKSAmIDB4NTU7CisJCQkJcGl4ZWxfbWFzayB8PSBwaXhlbF9tYXNrIDw8IDE7CisJCQl9CisKKwkJCXN3aXRjaCAoc3RhZ2UpIHsKKwkJCWNhc2UgUkVQQVBFUl9DT01QRU5TQVRFOiAvKiBCIC0+IFcsIFcgLT4gQiAoQ3VycmVudCkgKi8KKwkJCQlwaXhlbHMgPSAweGFhIHwgKHBpeGVscyBeIDB4NTUpOworCQkJCWJyZWFrOworCQkJY2FzZSBSRVBBUEVSX1dISVRFOiAgICAgIC8qIEIgLT4gTiwgVyAtPiBXIChDdXJyZW50KSAqLworCQkJCXBpeGVscyA9IDB4NTUgKyAocGl4ZWxzIF4gMHg1NSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFJFUEFQRVJfSU5WRVJTRTogICAgLyogQiAtPiBOLCBXIC0+IEIgKE5ldykgKi8KKwkJCQlwaXhlbHMgPSAweDU1IHwgKChwaXhlbHMgXiAweDU1KSA8PCAxKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUkVQQVBFUl9OT1JNQUw6ICAgICAvKiBCIC0+IEIsIFcgLT4gVyAoTmV3KSAqLworCQkJCXBpeGVscyA9IDB4YWEgfCBwaXhlbHM7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCXBpeGVscyA9IChwaXhlbHMgJiBwaXhlbF9tYXNrKSB8ICh+cGl4ZWxfbWFzayAmIDB4NTUpOworCQkJKigqcHApKysgPSBwaXhlbHM7CisJCX0gZWxzZSB7CisJCQkqKCpwcCkrKyA9IGZpeGVkX3ZhbHVlOworCQl9CisJfQorfQorCisvKiBpbnRlcmxlYXZlIGJpdHM6IChieXRlKTc2NTQzMjEwIC0+ICgxNiBiaXQpLjcuNi41LjQuMy4yLjEgKi8KK3N0YXRpYyBpbmxpbmUgdTE2IHJlcGFwZXJfaW50ZXJsZWF2ZV9iaXRzKHUxNiB2YWx1ZSkKK3sKKwl2YWx1ZSA9ICh2YWx1ZSB8ICh2YWx1ZSA8PCA0KSkgJiAweDBmMGY7CisJdmFsdWUgPSAodmFsdWUgfCAodmFsdWUgPDwgMikpICYgMHgzMzMzOworCXZhbHVlID0gKHZhbHVlIHwgKHZhbHVlIDw8IDEpKSAmIDB4NTU1NTsKKworCXJldHVybiB2YWx1ZTsKK30KKworLyogcGl4ZWxzIG9uIGRpc3BsYXkgYXJlIG51bWJlcmVkIGZyb20gMSAqLworc3RhdGljIHZvaWQgcmVwYXBlcl9hbGxfcGl4ZWxzKHN0cnVjdCByZXBhcGVyX2VwZCAqZXBkLCB1OCAqKnBwLAorCQkJICAgICAgIGNvbnN0IHU4ICpkYXRhLCB1OCBmaXhlZF92YWx1ZSwgY29uc3QgdTggKm1hc2ssCisJCQkgICAgICAgZW51bSByZXBhcGVyX3N0YWdlIHN0YWdlKQoreworCXVuc2lnbmVkIGludCBiOworCisJZm9yIChiID0gZXBkLT53aWR0aCAvIDg7IGIgPiAwOyBiLS0pIHsKKwkJaWYgKGRhdGEpIHsKKwkJCXUxNiBwaXhlbHMgPSByZXBhcGVyX2ludGVybGVhdmVfYml0cyhkYXRhW2IgLSAxXSk7CisJCQl1MTYgcGl4ZWxfbWFzayA9IDB4ZmZmZjsKKworCQkJaWYgKG1hc2spIHsKKwkJCQlwaXhlbF9tYXNrID0gcmVwYXBlcl9pbnRlcmxlYXZlX2JpdHMobWFza1tiIC0gMV0pOworCisJCQkJcGl4ZWxfbWFzayA9IChwaXhlbF9tYXNrIF4gcGl4ZWxzKSAmIDB4NTU1NTsKKwkJCQlwaXhlbF9tYXNrIHw9IHBpeGVsX21hc2sgPDwgMTsKKwkJCX0KKworCQkJc3dpdGNoIChzdGFnZSkgeworCQkJY2FzZSBSRVBBUEVSX0NPTVBFTlNBVEU6IC8qIEIgLT4gVywgVyAtPiBCIChDdXJyZW50KSAqLworCQkJCXBpeGVscyA9IDB4YWFhYSB8IChwaXhlbHMgXiAweDU1NTUpOworCQkJCWJyZWFrOworCQkJY2FzZSBSRVBBUEVSX1dISVRFOiAgICAgIC8qIEIgLT4gTiwgVyAtPiBXIChDdXJyZW50KSAqLworCQkJCXBpeGVscyA9IDB4NTU1NSArIChwaXhlbHMgXiAweDU1NTUpOworCQkJCWJyZWFrOworCQkJY2FzZSBSRVBBUEVSX0lOVkVSU0U6ICAgIC8qIEIgLT4gTiwgVyAtPiBCIChOZXcpICovCisJCQkJcGl4ZWxzID0gMHg1NTU1IHwgKChwaXhlbHMgXiAweDU1NTUpIDw8IDEpOworCQkJCWJyZWFrOworCQkJY2FzZSBSRVBBUEVSX05PUk1BTDogICAgIC8qIEIgLT4gQiwgVyAtPiBXIChOZXcpICovCisJCQkJcGl4ZWxzID0gMHhhYWFhIHwgcGl4ZWxzOworCQkJCWJyZWFrOworCQkJfQorCisJCQlwaXhlbHMgPSAocGl4ZWxzICYgcGl4ZWxfbWFzaykgfCAofnBpeGVsX21hc2sgJiAweDU1NTUpOworCQkJKigqcHApKysgPSBwaXhlbHMgPj4gODsKKwkJCSooKnBwKSsrID0gcGl4ZWxzOworCQl9IGVsc2UgeworCQkJKigqcHApKysgPSBmaXhlZF92YWx1ZTsKKwkJCSooKnBwKSsrID0gZml4ZWRfdmFsdWU7CisJCX0KKwl9Cit9CisKKy8qIG91dHB1dCBvbmUgbGluZSBvZiBzY2FuIGFuZCBkYXRhIGJ5dGVzIHRvIHRoZSBkaXNwbGF5ICovCitzdGF0aWMgdm9pZCByZXBhcGVyX29uZV9saW5lKHN0cnVjdCByZXBhcGVyX2VwZCAqZXBkLCB1bnNpZ25lZCBpbnQgbGluZSwKKwkJCSAgICAgY29uc3QgdTggKmRhdGEsIHU4IGZpeGVkX3ZhbHVlLCBjb25zdCB1OCAqbWFzaywKKwkJCSAgICAgZW51bSByZXBhcGVyX3N0YWdlIHN0YWdlKQoreworCXU4ICpwID0gZXBkLT5saW5lX2J1ZmZlcjsKKwl1bnNpZ25lZCBpbnQgYjsKKworCXJlcGFwZXJfc3BpX21vc2lfbG93KGVwZC0+c3BpKTsKKworCWlmIChlcGQtPnByZV9ib3JkZXJfYnl0ZSkKKwkJKnArKyA9IDB4MDA7CisKKwlpZiAoZXBkLT5taWRkbGVfc2NhbikgeworCQkvKiBkYXRhIGJ5dGVzICovCisJCXJlcGFwZXJfb2RkX3BpeGVscyhlcGQsICZwLCBkYXRhLCBmaXhlZF92YWx1ZSwgbWFzaywgc3RhZ2UpOworCisJCS8qIHNjYW4gbGluZSAqLworCQlmb3IgKGIgPSBlcGQtPmJ5dGVzX3Blcl9zY2FuOyBiID4gMDsgYi0tKSB7CisJCQlpZiAobGluZSAvIDQgPT0gYiAtIDEpCisJCQkJKnArKyA9IDB4MDMgPDwgKDIgKiAobGluZSAmIDB4MDMpKTsKKwkJCWVsc2UKKwkJCQkqcCsrID0gMHgwMDsKKwkJfQorCisJCS8qIGRhdGEgYnl0ZXMgKi8KKwkJcmVwYXBlcl9ldmVuX3BpeGVscyhlcGQsICZwLCBkYXRhLCBmaXhlZF92YWx1ZSwgbWFzaywgc3RhZ2UpOworCX0gZWxzZSB7CisJCS8qCisJCSAqIGV2ZW4gc2NhbiBsaW5lLCBidXQgYXMgbGluZXMgb24gZGlzcGxheSBhcmUgbnVtYmVyZWQgZnJvbSAxLAorCQkgKiBsaW5lOiAxLDMsNSwuLi4KKwkJICovCisJCWZvciAoYiA9IDA7IGIgPCBlcGQtPmJ5dGVzX3Blcl9zY2FuOyBiKyspIHsKKwkJCWlmICgwICE9IChsaW5lICYgMHgwMSkgJiYgbGluZSAvIDggPT0gYikKKwkJCQkqcCsrID0gMHhjMCA+PiAobGluZSAmIDB4MDYpOworCQkJZWxzZQorCQkJCSpwKysgPSAweDAwOworCQl9CisKKwkJLyogZGF0YSBieXRlcyAqLworCQlyZXBhcGVyX2FsbF9waXhlbHMoZXBkLCAmcCwgZGF0YSwgZml4ZWRfdmFsdWUsIG1hc2ssIHN0YWdlKTsKKworCQkvKgorCQkgKiBvZGQgc2NhbiBsaW5lLCBidXQgYXMgbGluZXMgb24gZGlzcGxheSBhcmUgbnVtYmVyZWQgZnJvbSAxLAorCQkgKiBsaW5lOiAwLDIsNCw2LC4uLgorCQkgKi8KKwkJZm9yIChiID0gZXBkLT5ieXRlc19wZXJfc2NhbjsgYiA+IDA7IGItLSkgeworCQkJaWYgKDAgPT0gKGxpbmUgJiAweDAxKSAmJiBsaW5lIC8gOCA9PSBiIC0gMSkKKwkJCQkqcCsrID0gMHgwMyA8PCAobGluZSAmIDB4MDYpOworCQkJZWxzZQorCQkJCSpwKysgPSAweDAwOworCQl9CisJfQorCisJc3dpdGNoIChlcGQtPmJvcmRlcl9ieXRlKSB7CisJY2FzZSBSRVBBUEVSX0JPUkRFUl9CWVRFX05PTkU6CisJCWJyZWFrOworCisJY2FzZSBSRVBBUEVSX0JPUkRFUl9CWVRFX1pFUk86CisJCSpwKysgPSAweDAwOworCQlicmVhazsKKworCWNhc2UgUkVQQVBFUl9CT1JERVJfQllURV9TRVQ6CisJCXN3aXRjaCAoc3RhZ2UpIHsKKwkJY2FzZSBSRVBBUEVSX0NPTVBFTlNBVEU6CisJCWNhc2UgUkVQQVBFUl9XSElURToKKwkJY2FzZSBSRVBBUEVSX0lOVkVSU0U6CisJCQkqcCsrID0gMHgwMDsKKwkJCWJyZWFrOworCQljYXNlIFJFUEFQRVJfTk9STUFMOgorCQkJKnArKyA9IDB4YWE7CisJCQlicmVhazsKKwkJfQorCQlicmVhazsKKwl9CisKKwlyZXBhcGVyX3dyaXRlX2J1ZihlcGQtPnNwaSwgMHgwYSwgZXBkLT5saW5lX2J1ZmZlciwKKwkJCSAgcCAtIGVwZC0+bGluZV9idWZmZXIpOworCisJLyogT3V0cHV0IGRhdGEgdG8gcGFuZWwgKi8KKwlyZXBhcGVyX3dyaXRlX3ZhbChlcGQtPnNwaSwgMHgwMiwgMHgwNyk7CisKKwlyZXBhcGVyX3NwaV9tb3NpX2xvdyhlcGQtPnNwaSk7Cit9CisKK3N0YXRpYyB2b2lkIHJlcGFwZXJfZnJhbWVfZml4ZWQoc3RydWN0IHJlcGFwZXJfZXBkICplcGQsIHU4IGZpeGVkX3ZhbHVlLAorCQkJCWVudW0gcmVwYXBlcl9zdGFnZSBzdGFnZSkKK3sKKwl1bnNpZ25lZCBpbnQgbGluZTsKKworCWZvciAobGluZSA9IDA7IGxpbmUgPCBlcGQtPmhlaWdodDsgbGluZSsrKQorCQlyZXBhcGVyX29uZV9saW5lKGVwZCwgbGluZSwgTlVMTCwgZml4ZWRfdmFsdWUsIE5VTEwsIHN0YWdlKTsKK30KKworc3RhdGljIHZvaWQgcmVwYXBlcl9mcmFtZV9kYXRhKHN0cnVjdCByZXBhcGVyX2VwZCAqZXBkLCBjb25zdCB1OCAqaW1hZ2UsCisJCQkgICAgICAgY29uc3QgdTggKm1hc2ssIGVudW0gcmVwYXBlcl9zdGFnZSBzdGFnZSkKK3sKKwl1bnNpZ25lZCBpbnQgbGluZTsKKworCWlmICghbWFzaykgeworCQlmb3IgKGxpbmUgPSAwOyBsaW5lIDwgZXBkLT5oZWlnaHQ7IGxpbmUrKykgeworCQkJcmVwYXBlcl9vbmVfbGluZShlcGQsIGxpbmUsCisJCQkJCSAmaW1hZ2VbbGluZSAqIChlcGQtPndpZHRoIC8gOCldLAorCQkJCQkgMCwgTlVMTCwgc3RhZ2UpOworCQl9CisJfSBlbHNlIHsKKwkJZm9yIChsaW5lID0gMDsgbGluZSA8IGVwZC0+aGVpZ2h0OyBsaW5lKyspIHsKKwkJCXNpemVfdCBuID0gbGluZSAqIGVwZC0+d2lkdGggLyA4OworCisJCQlyZXBhcGVyX29uZV9saW5lKGVwZCwgbGluZSwgJmltYWdlW25dLCAwLCAmbWFza1tuXSwKKwkJCQkJIHN0YWdlKTsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgcmVwYXBlcl9mcmFtZV9maXhlZF9yZXBlYXQoc3RydWN0IHJlcGFwZXJfZXBkICplcGQsIHU4IGZpeGVkX3ZhbHVlLAorCQkJCSAgICAgICBlbnVtIHJlcGFwZXJfc3RhZ2Ugc3RhZ2UpCit7CisJdTY0IHN0YXJ0ID0gbG9jYWxfY2xvY2soKTsKKwl1NjQgZW5kID0gc3RhcnQgKyAoZXBkLT5mYWN0b3JlZF9zdGFnZV90aW1lICogMTAwMCAqIDEwMDApOworCisJZG8geworCQlyZXBhcGVyX2ZyYW1lX2ZpeGVkKGVwZCwgZml4ZWRfdmFsdWUsIHN0YWdlKTsKKwl9IHdoaWxlIChsb2NhbF9jbG9jaygpIDwgZW5kKTsKK30KKworc3RhdGljIHZvaWQgcmVwYXBlcl9mcmFtZV9kYXRhX3JlcGVhdChzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZCwgY29uc3QgdTggKmltYWdlLAorCQkJCSAgICAgIGNvbnN0IHU4ICptYXNrLCBlbnVtIHJlcGFwZXJfc3RhZ2Ugc3RhZ2UpCit7CisJdTY0IHN0YXJ0ID0gbG9jYWxfY2xvY2soKTsKKwl1NjQgZW5kID0gc3RhcnQgKyAoZXBkLT5mYWN0b3JlZF9zdGFnZV90aW1lICogMTAwMCAqIDEwMDApOworCisJZG8geworCQlyZXBhcGVyX2ZyYW1lX2RhdGEoZXBkLCBpbWFnZSwgbWFzaywgc3RhZ2UpOworCX0gd2hpbGUgKGxvY2FsX2Nsb2NrKCkgPCBlbmQpOworfQorCitzdGF0aWMgdm9pZCByZXBhcGVyX2dldF90ZW1wZXJhdHVyZShzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZCkKK3sKKwlpbnQgcmV0LCB0ZW1wZXJhdHVyZSA9IDA7CisJdW5zaWduZWQgaW50IGZhY3RvcjEweDsKKworCWlmICghZXBkLT50aGVybWFsKQorCQlyZXR1cm47CisKKwlyZXQgPSB0aGVybWFsX3pvbmVfZ2V0X3RlbXAoZXBkLT50aGVybWFsLCAmdGVtcGVyYXR1cmUpOworCWlmIChyZXQpIHsKKwkJRFJNX0RFVl9FUlJPUigmZXBkLT5zcGktPmRldiwgIkZhaWxlZCB0byBnZXQgdGVtcGVyYXR1cmUgKCVkKVxuIiwgcmV0KTsKKwkJcmV0dXJuOworCX0KKworCXRlbXBlcmF0dXJlIC89IDEwMDA7CisKKwlpZiAodGVtcGVyYXR1cmUgPD0gLTEwKQorCQlmYWN0b3IxMHggPSAxNzA7CisJZWxzZSBpZiAodGVtcGVyYXR1cmUgPD0gLTUpCisJCWZhY3RvcjEweCA9IDEyMDsKKwllbHNlIGlmICh0ZW1wZXJhdHVyZSA8PSA1KQorCQlmYWN0b3IxMHggPSA4MDsKKwllbHNlIGlmICh0ZW1wZXJhdHVyZSA8PSAxMCkKKwkJZmFjdG9yMTB4ID0gNDA7CisJZWxzZSBpZiAodGVtcGVyYXR1cmUgPD0gMTUpCisJCWZhY3RvcjEweCA9IDMwOworCWVsc2UgaWYgKHRlbXBlcmF0dXJlIDw9IDIwKQorCQlmYWN0b3IxMHggPSAyMDsKKwllbHNlIGlmICh0ZW1wZXJhdHVyZSA8PSA0MCkKKwkJZmFjdG9yMTB4ID0gMTA7CisJZWxzZQorCQlmYWN0b3IxMHggPSA3OworCisJZXBkLT5mYWN0b3JlZF9zdGFnZV90aW1lID0gZXBkLT5zdGFnZV90aW1lICogZmFjdG9yMTB4IC8gMTA7Cit9CisKK3N0YXRpYyB2b2lkIHJlcGFwZXJfZ3JheThfdG9fbW9ub19yZXZlcnNlZCh1OCAqYnVmLCB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpCit7CisJdTggKmdyYXk4ID0gYnVmLCAqbW9ubyA9IGJ1ZjsKKwlpbnQgeSwgeGIsIGk7CisKKwlmb3IgKHkgPSAwOyB5IDwgaGVpZ2h0OyB5KyspCisJCWZvciAoeGIgPSAwOyB4YiA8IHdpZHRoIC8gODsgeGIrKykgeworCQkJdTggYnl0ZSA9IDB4MDA7CisKKwkJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJCQlpbnQgeCA9IHhiICogOCArIGk7CisKKwkJCQlieXRlID4+PSAxOworCQkJCWlmIChncmF5OFt5ICogd2lkdGggKyB4XSA+PiA3KQorCQkJCQlieXRlIHw9IEJJVCg3KTsKKwkJCX0KKwkJCSptb25vKysgPSBieXRlOworCQl9Cit9CisKK3N0YXRpYyBpbnQgcmVwYXBlcl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKK3sKKwlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaihmYiwgMCk7CisJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqaW1wb3J0X2F0dGFjaCA9IGNtYV9vYmotPmJhc2UuaW1wb3J0X2F0dGFjaDsKKwlzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZCA9IGRybV90b19lcGQoZmItPmRldik7CisJc3RydWN0IGRybV9yZWN0IGNsaXA7CisJaW50IGlkeCwgcmV0ID0gMDsKKwl1OCAqYnVmID0gTlVMTDsKKworCWlmICghZXBkLT5lbmFibGVkKQorCQlyZXR1cm4gMDsKKworCWlmICghZHJtX2Rldl9lbnRlcihmYi0+ZGV2LCAmaWR4KSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwkvKiByZXBhcGVyIGNhbid0IGRvIHBhcnRpYWwgdXBkYXRlcyAqLworCWNsaXAueDEgPSAwOworCWNsaXAueDIgPSBmYi0+d2lkdGg7CisJY2xpcC55MSA9IDA7CisJY2xpcC55MiA9IGZiLT5oZWlnaHQ7CisKKwlyZXBhcGVyX2dldF90ZW1wZXJhdHVyZShlcGQpOworCisJRFJNX0RFQlVHKCJGbHVzaGluZyBbRkI6JWRdIHN0PSV1bXNcbiIsIGZiLT5iYXNlLmlkLAorCQkgIGVwZC0+ZmFjdG9yZWRfc3RhZ2VfdGltZSk7CisKKwlidWYgPSBrbWFsbG9jX2FycmF5KGZiLT53aWR0aCwgZmItPmhlaWdodCwgR0ZQX0tFUk5FTCk7CisJaWYgKCFidWYpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfZXhpdDsKKwl9CisKKwlpZiAoaW1wb3J0X2F0dGFjaCkgeworCQlyZXQgPSBkbWFfYnVmX2JlZ2luX2NwdV9hY2Nlc3MoaW1wb3J0X2F0dGFjaC0+ZG1hYnVmLAorCQkJCQkgICAgICAgRE1BX0ZST01fREVWSUNFKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0X2ZyZWU7CisJfQorCisJZHJtX2ZiX3hyZ2I4ODg4X3RvX2dyYXk4KGJ1ZiwgY21hX29iai0+dmFkZHIsIGZiLCAmY2xpcCk7CisKKwlpZiAoaW1wb3J0X2F0dGFjaCkgeworCQlyZXQgPSBkbWFfYnVmX2VuZF9jcHVfYWNjZXNzKGltcG9ydF9hdHRhY2gtPmRtYWJ1ZiwKKwkJCQkJICAgICBETUFfRlJPTV9ERVZJQ0UpOworCQlpZiAocmV0KQorCQkJZ290byBvdXRfZnJlZTsKKwl9CisKKwlyZXBhcGVyX2dyYXk4X3RvX21vbm9fcmV2ZXJzZWQoYnVmLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOworCisJaWYgKGVwZC0+cGFydGlhbCkgeworCQlyZXBhcGVyX2ZyYW1lX2RhdGFfcmVwZWF0KGVwZCwgYnVmLCBlcGQtPmN1cnJlbnRfZnJhbWUsCisJCQkJCSAgUkVQQVBFUl9OT1JNQUwpOworCX0gZWxzZSBpZiAoZXBkLT5jbGVhcmVkKSB7CisJCXJlcGFwZXJfZnJhbWVfZGF0YV9yZXBlYXQoZXBkLCBlcGQtPmN1cnJlbnRfZnJhbWUsIE5VTEwsCisJCQkJCSAgUkVQQVBFUl9DT01QRU5TQVRFKTsKKwkJcmVwYXBlcl9mcmFtZV9kYXRhX3JlcGVhdChlcGQsIGVwZC0+Y3VycmVudF9mcmFtZSwgTlVMTCwKKwkJCQkJICBSRVBBUEVSX1dISVRFKTsKKwkJcmVwYXBlcl9mcmFtZV9kYXRhX3JlcGVhdChlcGQsIGJ1ZiwgTlVMTCwgUkVQQVBFUl9JTlZFUlNFKTsKKwkJcmVwYXBlcl9mcmFtZV9kYXRhX3JlcGVhdChlcGQsIGJ1ZiwgTlVMTCwgUkVQQVBFUl9OT1JNQUwpOworCisJCWVwZC0+cGFydGlhbCA9IHRydWU7CisJfSBlbHNlIHsKKwkJLyogQ2xlYXIgZGlzcGxheSAoYW55dGhpbmcgLT4gd2hpdGUpICovCisJCXJlcGFwZXJfZnJhbWVfZml4ZWRfcmVwZWF0KGVwZCwgMHhmZiwgUkVQQVBFUl9DT01QRU5TQVRFKTsKKwkJcmVwYXBlcl9mcmFtZV9maXhlZF9yZXBlYXQoZXBkLCAweGZmLCBSRVBBUEVSX1dISVRFKTsKKwkJcmVwYXBlcl9mcmFtZV9maXhlZF9yZXBlYXQoZXBkLCAweGFhLCBSRVBBUEVSX0lOVkVSU0UpOworCQlyZXBhcGVyX2ZyYW1lX2ZpeGVkX3JlcGVhdChlcGQsIDB4YWEsIFJFUEFQRVJfTk9STUFMKTsKKworCQkvKiBBc3N1bWluZyBhIGNsZWFyICh3aGl0ZSkgc2NyZWVuIG91dHB1dCBhbiBpbWFnZSAqLworCQlyZXBhcGVyX2ZyYW1lX2ZpeGVkX3JlcGVhdChlcGQsIDB4YWEsIFJFUEFQRVJfQ09NUEVOU0FURSk7CisJCXJlcGFwZXJfZnJhbWVfZml4ZWRfcmVwZWF0KGVwZCwgMHhhYSwgUkVQQVBFUl9XSElURSk7CisJCXJlcGFwZXJfZnJhbWVfZGF0YV9yZXBlYXQoZXBkLCBidWYsIE5VTEwsIFJFUEFQRVJfSU5WRVJTRSk7CisJCXJlcGFwZXJfZnJhbWVfZGF0YV9yZXBlYXQoZXBkLCBidWYsIE5VTEwsIFJFUEFQRVJfTk9STUFMKTsKKworCQllcGQtPmNsZWFyZWQgPSB0cnVlOworCQllcGQtPnBhcnRpYWwgPSB0cnVlOworCX0KKworCW1lbWNweShlcGQtPmN1cnJlbnRfZnJhbWUsIGJ1ZiwgZmItPndpZHRoICogZmItPmhlaWdodCAvIDgpOworCisJLyoKKwkgKiBBbiBleHRyYSBmcmFtZSB3cml0ZSBpcyBuZWVkZWQgaWYgcGl4ZWxzIGFyZSBzZXQgaW4gdGhlIGJvdHRvbSBsaW5lLAorCSAqIG9yIGVsc2UgZ3JleSBsaW5lcyByaXNlcyB1cCBmcm9tIHRoZSBwaXhlbHMKKwkgKi8KKwlpZiAoZXBkLT5wcmVfYm9yZGVyX2J5dGUpIHsKKwkJdW5zaWduZWQgaW50IHg7CisKKwkJZm9yICh4ID0gMDsgeCA8IChmYi0+d2lkdGggLyA4KTsgeCsrKQorCQkJaWYgKGJ1Zlt4ICsgKGZiLT53aWR0aCAqIChmYi0+aGVpZ2h0IC0gMSkgLyA4KV0pIHsKKwkJCQlyZXBhcGVyX2ZyYW1lX2RhdGFfcmVwZWF0KGVwZCwgYnVmLAorCQkJCQkJCSAgZXBkLT5jdXJyZW50X2ZyYW1lLAorCQkJCQkJCSAgUkVQQVBFUl9OT1JNQUwpOworCQkJCWJyZWFrOworCQkJfQorCX0KKworb3V0X2ZyZWU6CisJa2ZyZWUoYnVmKTsKK291dF9leGl0OgorCWRybV9kZXZfZXhpdChpZHgpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgcG93ZXJfb2ZmKHN0cnVjdCByZXBhcGVyX2VwZCAqZXBkKQoreworCS8qIFR1cm4gb2ZmIHBvd2VyIGFuZCBhbGwgc2lnbmFscyAqLworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPnJlc2V0LCAwKTsKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5wYW5lbF9vbiwgMCk7CisJaWYgKGVwZC0+Ym9yZGVyKQorCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5ib3JkZXIsIDApOworCisJLyogRW5zdXJlIFNQSSBNT1NJIGFuZCBDTE9DSyBhcmUgTG93IGJlZm9yZSBDUyBMb3cgKi8KKwlyZXBhcGVyX3NwaV9tb3NpX2xvdyhlcGQtPnNwaSk7CisKKwkvKiBEaXNjaGFyZ2UgcHVsc2UgKi8KKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5kaXNjaGFyZ2UsIDEpOworCW1zbGVlcCgxNTApOworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPmRpc2NoYXJnZSwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIHJlcGFwZXJfcGlwZV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAorCQkJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZCA9IGRybV90b19lcGQocGlwZS0+Y3J0Yy5kZXYpOworCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBlcGQtPnNwaTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmc3BpLT5kZXY7CisJYm9vbCBkY19vayA9IGZhbHNlOworCWludCBpLCByZXQsIGlkeDsKKworCWlmICghZHJtX2Rldl9lbnRlcihwaXBlLT5jcnRjLmRldiwgJmlkeCkpCisJCXJldHVybjsKKworCURSTV9ERUJVR19EUklWRVIoIlxuIik7CisKKwkvKiBQb3dlciB1cCBzZXF1ZW5jZSAqLworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPnJlc2V0LCAwKTsKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5wYW5lbF9vbiwgMCk7CisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGVwZC0+ZGlzY2hhcmdlLCAwKTsKKwlpZiAoZXBkLT5ib3JkZXIpCisJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPmJvcmRlciwgMCk7CisJcmVwYXBlcl9zcGlfbW9zaV9sb3coc3BpKTsKKwl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOworCisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGVwZC0+cGFuZWxfb24sIDEpOworCS8qCisJICogVGhpcyBkZWxheSBjb21lcyBmcm9tIHRoZSByZXBhcGVyLm9yZyB1c2Vyc3BhY2UgZHJpdmVyLCBpdCdzIG5vdAorCSAqIG1lbnRpb25lZCBpbiB0aGUgZGF0YXNoZWV0LgorCSAqLworCXVzbGVlcF9yYW5nZSgxMDAwMCwgMTUwMDApOworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPnJlc2V0LCAxKTsKKwlpZiAoZXBkLT5ib3JkZXIpCisJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPmJvcmRlciwgMSk7CisJdXNsZWVwX3JhbmdlKDUwMDAsIDEwMDAwKTsKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5yZXNldCwgMCk7CisJdXNsZWVwX3JhbmdlKDUwMDAsIDEwMDAwKTsKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5yZXNldCwgMSk7CisJdXNsZWVwX3JhbmdlKDUwMDAsIDEwMDAwKTsKKworCS8qIFdhaXQgZm9yIENPRyB0byBiZWNvbWUgcmVhZHkgKi8KKwlmb3IgKGkgPSAxMDA7IGkgPiAwOyBpLS0pIHsKKwkJaWYgKCFncGlvZF9nZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5idXN5KSkKKwkJCWJyZWFrOworCisJCXVzbGVlcF9yYW5nZSgxMCwgMTAwKTsKKwl9CisKKwlpZiAoIWkpIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJ0aW1lb3V0IHdhaXRpbmcgZm9yIHBhbmVsIHRvIGJlY29tZSByZWFkeS5cbiIpOworCQlwb3dlcl9vZmYoZXBkKTsKKwkJZ290byBvdXRfZXhpdDsKKwl9CisKKwlyZXBhcGVyX3JlYWRfaWQoc3BpKTsKKwlyZXQgPSByZXBhcGVyX3JlYWRfaWQoc3BpKTsKKwlpZiAocmV0ICE9IFJFUEFQRVJfUklEX0cyX0NPR19JRCkgeworCQlpZiAocmV0IDwgMCkKKwkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlYWQgY2hpcCAoJWQpXG4iLCByZXQpOworCQllbHNlCisJCQlkZXZfZXJyKGRldiwgIndyb25nIENPRyBJRCAweCUwMnhcbiIsIHJldCk7CisJCXBvd2VyX29mZihlcGQpOworCQlnb3RvIG91dF9leGl0OworCX0KKworCS8qIERpc2FibGUgT0UgKi8KKwlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDIsIDB4NDApOworCisJcmV0ID0gcmVwYXBlcl9yZWFkX3ZhbChzcGksIDB4MGYpOworCWlmIChyZXQgPCAwIHx8ICEocmV0ICYgMHg4MCkpIHsKKwkJaWYgKHJldCA8IDApCisJCQlEUk1fREVWX0VSUk9SKGRldiwgImZhaWxlZCB0byByZWFkIGNoaXAgKCVkKVxuIiwgcmV0KTsKKwkJZWxzZQorCQkJRFJNX0RFVl9FUlJPUihkZXYsICJwYW5lbCBpcyByZXBvcnRlZCBicm9rZW5cbiIpOworCQlwb3dlcl9vZmYoZXBkKTsKKwkJZ290byBvdXRfZXhpdDsKKwl9CisKKwkvKiBQb3dlciBzYXZpbmcgbW9kZSAqLworCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwYiwgMHgwMik7CisJLyogQ2hhbm5lbCBzZWxlY3QgKi8KKwlyZXBhcGVyX3dyaXRlX2J1ZihzcGksIDB4MDEsIGVwZC0+Y2hhbm5lbF9zZWxlY3QsIDgpOworCS8qIEhpZ2ggcG93ZXIgbW9kZSBvc2MgKi8KKwlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDcsIDB4ZDEpOworCS8qIFBvd2VyIHNldHRpbmcgKi8KKwlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDgsIDB4MDIpOworCS8qIFZjb20gbGV2ZWwgKi8KKwlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDksIDB4YzIpOworCS8qIFBvd2VyIHNldHRpbmcgKi8KKwlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDQsIDB4MDMpOworCS8qIERyaXZlciBsYXRjaCBvbiAqLworCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwMywgMHgwMSk7CisJLyogRHJpdmVyIGxhdGNoIG9mZiAqLworCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwMywgMHgwMCk7CisJdXNsZWVwX3JhbmdlKDUwMDAsIDEwMDAwKTsKKworCS8qIFN0YXJ0IGNoYXJnZXB1bXAgKi8KKwlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7CisJCS8qIENoYXJnZSBwdW1wIHBvc2l0aXZlIHZvbHRhZ2Ugb24gLSBWR0gvVkRMIG9uICovCisJCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwNSwgMHgwMSk7CisJCW1zbGVlcCgyNDApOworCisJCS8qIENoYXJnZSBwdW1wIG5lZ2F0aXZlIHZvbHRhZ2Ugb24gLSBWR0wvVkRMIG9uICovCisJCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwNSwgMHgwMyk7CisJCW1zbGVlcCg0MCk7CisKKwkJLyogQ2hhcmdlIHB1bXAgVmNvbSBvbiAtIFZjb20gZHJpdmVyIG9uICovCisJCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwNSwgMHgwZik7CisJCW1zbGVlcCg0MCk7CisKKwkJLyogY2hlY2sgREMvREMgKi8KKwkJcmV0ID0gcmVwYXBlcl9yZWFkX3ZhbChzcGksIDB4MGYpOworCQlpZiAocmV0IDwgMCkgeworCQkJRFJNX0RFVl9FUlJPUihkZXYsICJmYWlsZWQgdG8gcmVhZCBjaGlwICglZClcbiIsIHJldCk7CisJCQlwb3dlcl9vZmYoZXBkKTsKKwkJCWdvdG8gb3V0X2V4aXQ7CisJCX0KKworCQlpZiAocmV0ICYgMHg0MCkgeworCQkJZGNfb2sgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIWRjX29rKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiZGMvZGMgZmFpbGVkXG4iKTsKKwkJcG93ZXJfb2ZmKGVwZCk7CisJCWdvdG8gb3V0X2V4aXQ7CisJfQorCisJLyoKKwkgKiBPdXRwdXQgZW5hYmxlIHRvIGRpc2FibGUKKwkgKiBUaGUgdXNlcnNwYWNlIGRyaXZlciBzZXRzIHRoaXMgdG8gMHgwNCwgYnV0IHRoZSBkYXRhc2hlZXQgc2F5cyAweDA2CisJICovCisJcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDAyLCAweDA0KTsKKworCWVwZC0+ZW5hYmxlZCA9IHRydWU7CisJZXBkLT5wYXJ0aWFsID0gZmFsc2U7CitvdXRfZXhpdDoKKwlkcm1fZGV2X2V4aXQoaWR4KTsKK30KKworc3RhdGljIHZvaWQgcmVwYXBlcl9waXBlX2Rpc2FibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlKQoreworCXN0cnVjdCByZXBhcGVyX2VwZCAqZXBkID0gZHJtX3RvX2VwZChwaXBlLT5jcnRjLmRldik7CisJc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IGVwZC0+c3BpOworCXVuc2lnbmVkIGludCBsaW5lOworCisJLyoKKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG5vdCBwcm90ZWN0ZWQgYnkgZHJtX2Rldl9lbnRlci9leGl0IHNpbmNlIHdlIHdhbnQgdG8KKwkgKiB0dXJuIG9mZiB0aGUgZGlzcGxheSBvbiByZWd1bGFyIGRyaXZlciB1bmxvYWQuIEl0J3MgaGlnaGx5IHVubGlrZWx5CisJICogdGhhdCB0aGUgdW5kZXJseWluZyBTUEkgY29udHJvbGxlciBpcyBnb25lIHNob3VsZCB0aGlzIGJlIGNhbGxlZCBhZnRlcgorCSAqIHVucGx1Zy4KKwkgKi8KKworCWlmICghZXBkLT5lbmFibGVkKQorCQlyZXR1cm47CisKKwlEUk1fREVCVUdfRFJJVkVSKCJcbiIpOworCisJZXBkLT5lbmFibGVkID0gZmFsc2U7CisKKwkvKiBOb3RoaW5nIGZyYW1lICovCisJZm9yIChsaW5lID0gMDsgbGluZSA8IGVwZC0+aGVpZ2h0OyBsaW5lKyspCisJCXJlcGFwZXJfb25lX2xpbmUoZXBkLCAweDdmZmZ1LCBOVUxMLCAweDAwLCBOVUxMLAorCQkJCSBSRVBBUEVSX0NPTVBFTlNBVEUpOworCisJLyogMi43IiAqLworCWlmIChlcGQtPmJvcmRlcikgeworCQkvKiBEdW1teSBsaW5lICovCisJCXJlcGFwZXJfb25lX2xpbmUoZXBkLCAweDdmZmZ1LCBOVUxMLCAweDAwLCBOVUxMLAorCQkJCSBSRVBBUEVSX0NPTVBFTlNBVEUpOworCQltc2xlZXAoMjUpOworCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5ib3JkZXIsIDApOworCQltc2xlZXAoMjAwKTsKKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGVwZC0+Ym9yZGVyLCAxKTsKKwl9IGVsc2UgeworCQkvKiBCb3JkZXIgZHVtbXkgbGluZSAqLworCQlyZXBhcGVyX29uZV9saW5lKGVwZCwgMHg3ZmZmdSwgTlVMTCwgMHgwMCwgTlVMTCwKKwkJCQkgUkVQQVBFUl9OT1JNQUwpOworCQltc2xlZXAoMjAwKTsKKwl9CisKKwkvKiBub3QgZGVzY3JpYmVkIGluIGRhdGFzaGVldCAqLworCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwYiwgMHgwMCk7CisJLyogTGF0Y2ggcmVzZXQgdHVybiBvbiAqLworCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwMywgMHgwMSk7CisJLyogUG93ZXIgb2ZmIGNoYXJnZSBwdW1wIFZjb20gKi8KKwlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDUsIDB4MDMpOworCS8qIFBvd2VyIG9mZiBjaGFyZ2UgcHVtcCBuZWcgdm9sdGFnZSAqLworCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwNSwgMHgwMSk7CisJbXNsZWVwKDEyMCk7CisJLyogRGlzY2hhcmdlIGludGVybmFsICovCisJcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDA0LCAweDgwKTsKKwkvKiB0dXJuIG9mZiBhbGwgY2hhcmdlIHB1bXBzICovCisJcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDA1LCAweDAwKTsKKwkvKiBUdXJuIG9mZiBvc2MgKi8KKwlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDcsIDB4MDEpOworCW1zbGVlcCg1MCk7CisKKwlwb3dlcl9vZmYoZXBkKTsKK30KKworc3RhdGljIHZvaWQgcmVwYXBlcl9waXBlX3VwZGF0ZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCisJCQkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlID0gcGlwZS0+cGxhbmUuc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJnBpcGUtPmNydGM7CisJc3RydWN0IGRybV9yZWN0IHJlY3Q7CisKKwlpZiAoZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX21lcmdlZChvbGRfc3RhdGUsIHN0YXRlLCAmcmVjdCkpCisJCXJlcGFwZXJfZmJfZGlydHkoc3RhdGUtPmZiKTsKKworCWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQpIHsKKwkJc3Bpbl9sb2NrX2lycSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsKKwkJZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoY3J0YywgY3J0Yy0+c3RhdGUtPmV2ZW50KTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOworCQljcnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOworCX0KK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyByZXBhcGVyX3BpcGVfZnVuY3MgPSB7CisJLmVuYWJsZSA9IHJlcGFwZXJfcGlwZV9lbmFibGUsCisJLmRpc2FibGUgPSByZXBhcGVyX3BpcGVfZGlzYWJsZSwKKwkudXBkYXRlID0gcmVwYXBlcl9waXBlX3VwZGF0ZSwKKwkucHJlcGFyZV9mYiA9IGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9wcmVwYXJlX2ZiLAorfTsKKworc3RhdGljIGludCByZXBhcGVyX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZCA9IGRybV90b19lcGQoY29ubmVjdG9yLT5kZXYpOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOworCisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgZXBkLT5tb2RlKTsKKwlpZiAoIW1vZGUpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZHVwbGljYXRlIG1vZGVcbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKKwltb2RlLT50eXBlIHw9IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKKworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbW9kZS0+aGVpZ2h0X21tOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgcmVwYXBlcl9jb25uZWN0b3JfaGZ1bmNzID0geworCS5nZXRfbW9kZXMgPSByZXBhcGVyX2Nvbm5lY3Rvcl9nZXRfbW9kZXMsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgcmVwYXBlcl9jb25uZWN0b3JfZnVuY3MgPSB7CisJLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3Jlc2V0LAorCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAorCS5kZXN0cm95ID0gZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwLAorCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIHJlcGFwZXJfbW9kZV9jb25maWdfZnVuY3MgPSB7CisJLmZiX2NyZWF0ZSA9IGRybV9nZW1fZmJfY3JlYXRlX3dpdGhfZGlydHksCisJLmF0b21pY19jaGVjayA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrLAorCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0LAorfTsKKworc3RhdGljIHZvaWQgcmVwYXBlcl9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCit7CisJc3RydWN0IHJlcGFwZXJfZXBkICplcGQgPSBkcm1fdG9fZXBkKGRybSk7CisKKwlEUk1fREVCVUdfRFJJVkVSKCJcbiIpOworCisJZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZHJtKTsKKwlkcm1fZGV2X2ZpbmkoZHJtKTsKKwlrZnJlZShlcGQpOworfQorCitzdGF0aWMgY29uc3QgdWludDMyX3QgcmVwYXBlcl9mb3JtYXRzW10gPSB7CisJRFJNX0ZPUk1BVF9YUkdCODg4OCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSByZXBhcGVyX2UxMTQ0Y3MwMjFfbW9kZSA9IHsKKwlEUk1fU0lNUExFX01PREUoMTI4LCA5NiwgMjksIDIyKSwKK307CisKK3N0YXRpYyBjb25zdCB1OCByZXBhcGVyX2UxMTQ0Y3MwMjFfY3NbXSA9IHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkJCQkJICAgIDB4MDAsIDB4MGYsIDB4ZmYsIDB4MDAgfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHJlcGFwZXJfZTExOTBjczAyMV9tb2RlID0geworCURSTV9TSU1QTEVfTU9ERSgxNDQsIDEyOCwgMzYsIDMyKSwKK307CisKK3N0YXRpYyBjb25zdCB1OCByZXBhcGVyX2UxMTkwY3MwMjFfY3NbXSA9IHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywKKwkJCQkJICAgIDB4ZmMsIDB4MDAsIDB4MDAsIDB4ZmYgfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHJlcGFwZXJfZTIyMDBjczAyMV9tb2RlID0geworCURSTV9TSU1QTEVfTU9ERSgyMDAsIDk2LCA0NiwgMjIpLAorfTsKKworc3RhdGljIGNvbnN0IHU4IHJlcGFwZXJfZTIyMDBjczAyMV9jc1tdID0geyAweDAwLCAweDAwLCAweDAwLCAweDAwLAorCQkJCQkgICAgMHgwMSwgMHhmZiwgMHhlMCwgMHgwMCB9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgcmVwYXBlcl9lMjI3MWNzMDIxX21vZGUgPSB7CisJRFJNX1NJTVBMRV9NT0RFKDI2NCwgMTc2LCA1NywgMzgpLAorfTsKKworc3RhdGljIGNvbnN0IHU4IHJlcGFwZXJfZTIyNzFjczAyMV9jc1tdID0geyAweDAwLCAweDAwLCAweDAwLCAweDdmLAorCQkJCQkgICAgMHhmZiwgMHhmZSwgMHgwMCwgMHgwMCB9OworCitERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhyZXBhcGVyX2ZvcHMpOworCitzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgcmVwYXBlcl9kcml2ZXIgPSB7CisJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCisJLmZvcHMJCQk9ICZyZXBhcGVyX2ZvcHMsCisJLnJlbGVhc2UJCT0gcmVwYXBlcl9yZWxlYXNlLAorCURSTV9HRU1fQ01BX1ZNQVBfRFJJVkVSX09QUywKKwkubmFtZQkJCT0gInJlcGFwZXIiLAorCS5kZXNjCQkJPSAiUGVydmFzaXZlIERpc3BsYXlzIFJlUGFwZXIgZS1pbmsgcGFuZWxzIiwKKwkuZGF0ZQkJCT0gIjIwMTcwNDA1IiwKKwkubWFqb3IJCQk9IDEsCisJLm1pbm9yCQkJPSAwLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcmVwYXBlcl9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAicGVydmFzaXZlLGUxMTQ0Y3MwMjEiLCAuZGF0YSA9ICh2b2lkICopRTExNDRDUzAyMSB9LAorCXsgLmNvbXBhdGlibGUgPSAicGVydmFzaXZlLGUxMTkwY3MwMjEiLCAuZGF0YSA9ICh2b2lkICopRTExOTBDUzAyMSB9LAorCXsgLmNvbXBhdGlibGUgPSAicGVydmFzaXZlLGUyMjAwY3MwMjEiLCAuZGF0YSA9ICh2b2lkICopRTIyMDBDUzAyMSB9LAorCXsgLmNvbXBhdGlibGUgPSAicGVydmFzaXZlLGUyMjcxY3MwMjEiLCAuZGF0YSA9ICh2b2lkICopRTIyNzFDUzAyMSB9LAorCXt9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJlcGFwZXJfb2ZfbWF0Y2gpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgcmVwYXBlcl9pZFtdID0geworCXsgImUxMTQ0Y3MwMjEiLCBFMTE0NENTMDIxIH0sCisJeyAiZTExOTBjczAyMSIsIEUxMTkwQ1MwMjEgfSwKKwl7ICJlMjIwMGNzMDIxIiwgRTIyMDBDUzAyMSB9LAorCXsgImUyMjcxY3MwMjEiLCBFMjI3MUNTMDIxIH0sCisJeyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCByZXBhcGVyX2lkKTsKKworc3RhdGljIGludCByZXBhcGVyX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisJY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgKnNwaV9pZDsKKwljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaDsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmc3BpLT5kZXY7CisJZW51bSByZXBhcGVyX21vZGVsIG1vZGVsOworCWNvbnN0IGNoYXIgKnRoZXJtYWxfem9uZTsKKwlzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZDsKKwlzaXplX3QgbGluZV9idWZmZXJfc2l6ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOworCWludCByZXQ7CisKKwltYXRjaCA9IG9mX21hdGNoX2RldmljZShyZXBhcGVyX29mX21hdGNoLCBkZXYpOworCWlmIChtYXRjaCkgeworCQltb2RlbCA9IChlbnVtIHJlcGFwZXJfbW9kZWwpbWF0Y2gtPmRhdGE7CisJfSBlbHNlIHsKKwkJc3BpX2lkID0gc3BpX2dldF9kZXZpY2VfaWQoc3BpKTsKKwkJbW9kZWwgPSBzcGlfaWQtPmRyaXZlcl9kYXRhOworCX0KKworCS8qIFRoZSBTUEkgZGV2aWNlIGlzIHVzZWQgdG8gYWxsb2NhdGUgZG1hIG1lbW9yeSAqLworCWlmICghZGV2LT5jb2hlcmVudF9kbWFfbWFzaykgeworCQlyZXQgPSBkbWFfY29lcmNlX21hc2tfYW5kX2NvaGVyZW50KGRldiwgRE1BX0JJVF9NQVNLKDMyKSk7CisJCWlmIChyZXQpIHsKKwkJCWRldl93YXJuKGRldiwgIkZhaWxlZCB0byBzZXQgZG1hIG1hc2sgJWRcbiIsIHJldCk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCisJZXBkID0ga3phbGxvYyhzaXplb2YoKmVwZCksIEdGUF9LRVJORUwpOworCWlmICghZXBkKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRybSA9ICZlcGQtPmRybTsKKworCXJldCA9IGRldm1fZHJtX2Rldl9pbml0KGRldiwgZHJtLCAmcmVwYXBlcl9kcml2ZXIpOworCWlmIChyZXQpIHsKKwkJa2ZyZWUoZXBkKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlkcm1fbW9kZV9jb25maWdfaW5pdChkcm0pOworCWRybS0+bW9kZV9jb25maWcuZnVuY3MgPSAmcmVwYXBlcl9tb2RlX2NvbmZpZ19mdW5jczsKKworCWVwZC0+c3BpID0gc3BpOworCisJZXBkLT5wYW5lbF9vbiA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgInBhbmVsLW9uIiwgR1BJT0RfT1VUX0xPVyk7CisJaWYgKElTX0VSUihlcGQtPnBhbmVsX29uKSkgeworCQlyZXQgPSBQVFJfRVJSKGVwZC0+cGFuZWxfb24pOworCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCisJCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAncGFuZWwtb24nXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwllcGQtPmRpc2NoYXJnZSA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgImRpc2NoYXJnZSIsIEdQSU9EX09VVF9MT1cpOworCWlmIChJU19FUlIoZXBkLT5kaXNjaGFyZ2UpKSB7CisJCXJldCA9IFBUUl9FUlIoZXBkLT5kaXNjaGFyZ2UpOworCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCisJCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAnZGlzY2hhcmdlJ1xuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJZXBkLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0xPVyk7CisJaWYgKElTX0VSUihlcGQtPnJlc2V0KSkgeworCQlyZXQgPSBQVFJfRVJSKGVwZC0+cmVzZXQpOworCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCisJCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAncmVzZXQnXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwllcGQtPmJ1c3kgPSBkZXZtX2dwaW9kX2dldChkZXYsICJidXN5IiwgR1BJT0RfSU4pOworCWlmIChJU19FUlIoZXBkLT5idXN5KSkgeworCQlyZXQgPSBQVFJfRVJSKGVwZC0+YnVzeSk7CisJCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikKKwkJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdidXN5J1xuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJaWYgKCFkZXZpY2VfcHJvcGVydHlfcmVhZF9zdHJpbmcoZGV2LCAicGVydmFzaXZlLHRoZXJtYWwtem9uZSIsCisJCQkJCSAmdGhlcm1hbF96b25lKSkgeworCQllcGQtPnRoZXJtYWwgPSB0aGVybWFsX3pvbmVfZ2V0X3pvbmVfYnlfbmFtZSh0aGVybWFsX3pvbmUpOworCQlpZiAoSVNfRVJSKGVwZC0+dGhlcm1hbCkpIHsKKwkJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCB0aGVybWFsIHpvbmU6ICVzXG4iLCB0aGVybWFsX3pvbmUpOworCQkJcmV0dXJuIFBUUl9FUlIoZXBkLT50aGVybWFsKTsKKwkJfQorCX0KKworCXN3aXRjaCAobW9kZWwpIHsKKwljYXNlIEUxMTQ0Q1MwMjE6CisJCW1vZGUgPSAmcmVwYXBlcl9lMTE0NGNzMDIxX21vZGU7CisJCWVwZC0+Y2hhbm5lbF9zZWxlY3QgPSByZXBhcGVyX2UxMTQ0Y3MwMjFfY3M7CisJCWVwZC0+c3RhZ2VfdGltZSA9IDQ4MDsKKwkJZXBkLT5ieXRlc19wZXJfc2NhbiA9IDk2IC8gNDsKKwkJZXBkLT5taWRkbGVfc2NhbiA9IHRydWU7IC8qIGRhdGEtc2Nhbi1kYXRhICovCisJCWVwZC0+cHJlX2JvcmRlcl9ieXRlID0gZmFsc2U7CisJCWVwZC0+Ym9yZGVyX2J5dGUgPSBSRVBBUEVSX0JPUkRFUl9CWVRFX1pFUk87CisJCWJyZWFrOworCisJY2FzZSBFMTE5MENTMDIxOgorCQltb2RlID0gJnJlcGFwZXJfZTExOTBjczAyMV9tb2RlOworCQllcGQtPmNoYW5uZWxfc2VsZWN0ID0gcmVwYXBlcl9lMTE5MGNzMDIxX2NzOworCQllcGQtPnN0YWdlX3RpbWUgPSA0ODA7CisJCWVwZC0+Ynl0ZXNfcGVyX3NjYW4gPSAxMjggLyA0IC8gMjsKKwkJZXBkLT5taWRkbGVfc2NhbiA9IGZhbHNlOyAvKiBzY2FuLWRhdGEtc2NhbiAqLworCQllcGQtPnByZV9ib3JkZXJfYnl0ZSA9IGZhbHNlOworCQllcGQtPmJvcmRlcl9ieXRlID0gUkVQQVBFUl9CT1JERVJfQllURV9TRVQ7CisJCWJyZWFrOworCisJY2FzZSBFMjIwMENTMDIxOgorCQltb2RlID0gJnJlcGFwZXJfZTIyMDBjczAyMV9tb2RlOworCQllcGQtPmNoYW5uZWxfc2VsZWN0ID0gcmVwYXBlcl9lMjIwMGNzMDIxX2NzOworCQllcGQtPnN0YWdlX3RpbWUgPSA0ODA7CisJCWVwZC0+Ynl0ZXNfcGVyX3NjYW4gPSA5NiAvIDQ7CisJCWVwZC0+bWlkZGxlX3NjYW4gPSB0cnVlOyAvKiBkYXRhLXNjYW4tZGF0YSAqLworCQllcGQtPnByZV9ib3JkZXJfYnl0ZSA9IHRydWU7CisJCWVwZC0+Ym9yZGVyX2J5dGUgPSBSRVBBUEVSX0JPUkRFUl9CWVRFX05PTkU7CisJCWJyZWFrOworCisJY2FzZSBFMjI3MUNTMDIxOgorCQllcGQtPmJvcmRlciA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgImJvcmRlciIsIEdQSU9EX09VVF9MT1cpOworCQlpZiAoSVNfRVJSKGVwZC0+Ym9yZGVyKSkgeworCQkJcmV0ID0gUFRSX0VSUihlcGQtPmJvcmRlcik7CisJCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCisJCQkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZ2V0IGdwaW8gJ2JvcmRlcidcbiIpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCW1vZGUgPSAmcmVwYXBlcl9lMjI3MWNzMDIxX21vZGU7CisJCWVwZC0+Y2hhbm5lbF9zZWxlY3QgPSByZXBhcGVyX2UyMjcxY3MwMjFfY3M7CisJCWVwZC0+c3RhZ2VfdGltZSA9IDYzMDsKKwkJZXBkLT5ieXRlc19wZXJfc2NhbiA9IDE3NiAvIDQ7CisJCWVwZC0+bWlkZGxlX3NjYW4gPSB0cnVlOyAvKiBkYXRhLXNjYW4tZGF0YSAqLworCQllcGQtPnByZV9ib3JkZXJfYnl0ZSA9IHRydWU7CisJCWVwZC0+Ym9yZGVyX2J5dGUgPSBSRVBBUEVSX0JPUkRFUl9CWVRFX05PTkU7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJZXBkLT5tb2RlID0gbW9kZTsKKwllcGQtPndpZHRoID0gbW9kZS0+aGRpc3BsYXk7CisJZXBkLT5oZWlnaHQgPSBtb2RlLT52ZGlzcGxheTsKKwllcGQtPmZhY3RvcmVkX3N0YWdlX3RpbWUgPSBlcGQtPnN0YWdlX3RpbWU7CisKKwlsaW5lX2J1ZmZlcl9zaXplID0gMiAqIGVwZC0+d2lkdGggLyA4ICsgZXBkLT5ieXRlc19wZXJfc2NhbiArIDI7CisJZXBkLT5saW5lX2J1ZmZlciA9IGRldm1fa3phbGxvYyhkZXYsIGxpbmVfYnVmZmVyX3NpemUsIEdGUF9LRVJORUwpOworCWlmICghZXBkLT5saW5lX2J1ZmZlcikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwllcGQtPmN1cnJlbnRfZnJhbWUgPSBkZXZtX2t6YWxsb2MoZGV2LCBlcGQtPndpZHRoICogZXBkLT5oZWlnaHQgLyA4LAorCQkJCQkgIEdGUF9LRVJORUwpOworCWlmICghZXBkLT5jdXJyZW50X2ZyYW1lKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRybS0+bW9kZV9jb25maWcubWluX3dpZHRoID0gbW9kZS0+aGRpc3BsYXk7CisJZHJtLT5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSBtb2RlLT5oZGlzcGxheTsKKwlkcm0tPm1vZGVfY29uZmlnLm1pbl9oZWlnaHQgPSBtb2RlLT52ZGlzcGxheTsKKwlkcm0tPm1vZGVfY29uZmlnLm1heF9oZWlnaHQgPSBtb2RlLT52ZGlzcGxheTsKKworCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmZXBkLT5jb25uZWN0b3IsICZyZXBhcGVyX2Nvbm5lY3Rvcl9oZnVuY3MpOworCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChkcm0sICZlcGQtPmNvbm5lY3RvciwgJnJlcGFwZXJfY29ubmVjdG9yX2Z1bmNzLAorCQkJCSBEUk1fTU9ERV9DT05ORUNUT1JfU1BJKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfaW5pdChkcm0sICZlcGQtPnBpcGUsICZyZXBhcGVyX3BpcGVfZnVuY3MsCisJCQkJCSAgIHJlcGFwZXJfZm9ybWF0cywgQVJSQVlfU0laRShyZXBhcGVyX2Zvcm1hdHMpLAorCQkJCQkgICBOVUxMLCAmZXBkLT5jb25uZWN0b3IpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoZHJtKTsKKworCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3BpX3NldF9kcnZkYXRhKHNwaSwgZHJtKTsKKworCURSTV9ERUJVR19EUklWRVIoIlNQSSBzcGVlZDogJXVNSHpcbiIsIHNwaS0+bWF4X3NwZWVkX2h6IC8gMTAwMDAwMCk7CisKKwlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm0sIDApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmVwYXBlcl9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7CisKKwlkcm1fZGV2X3VucGx1Zyhkcm0pOworCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRybSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcmVwYXBlcl9zaHV0ZG93bihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKHNwaV9nZXRfZHJ2ZGF0YShzcGkpKTsKK30KKworc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIHJlcGFwZXJfc3BpX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJyZXBhcGVyIiwKKwkJLm93bmVyID0gVEhJU19NT0RVTEUsCisJCS5vZl9tYXRjaF90YWJsZSA9IHJlcGFwZXJfb2ZfbWF0Y2gsCisJfSwKKwkuaWRfdGFibGUgPSByZXBhcGVyX2lkLAorCS5wcm9iZSA9IHJlcGFwZXJfcHJvYmUsCisJLnJlbW92ZSA9IHJlcGFwZXJfcmVtb3ZlLAorCS5zaHV0ZG93biA9IHJlcGFwZXJfc2h1dGRvd24sCit9OworbW9kdWxlX3NwaV9kcml2ZXIocmVwYXBlcl9zcGlfZHJpdmVyKTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJQZXJ2YXNpdmUgRGlzcGxheXMgUmVQYXBlciBEUk0gZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJOb3JhbGYgVHLDuG5uZXMiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55L3N0NzU4Ni5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnkvc3Q3NTg2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NjMjFhMQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L3N0NzU4Ni5jCkBAIC0wLDAgKzEsNDI0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorLyoKKyAqIERSTSBkcml2ZXIgZm9yIFNpdHJvbml4IFNUNzU4NiBwYW5lbHMKKyAqCisgKiBDb3B5cmlnaHQgMjAxNyBEYXZpZCBMZWNobmVyIDxkYXZpZEBsZWNobm9sb2d5LmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm9ybWF0X2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZGJpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKworLyogY29udHJvbGxlci1zcGVjaWZpYyBjb21tYW5kcyAqLworI2RlZmluZSBTVDc1ODZfRElTUF9NT0RFX0dSQVkJMHgzOAorI2RlZmluZSBTVDc1ODZfRElTUF9NT0RFX01PTk8JMHgzOQorI2RlZmluZSBTVDc1ODZfRU5BQkxFX0REUkFNCTB4M2EKKyNkZWZpbmUgU1Q3NTg2X1NFVF9ESVNQX0RVVFkJMHhiMAorI2RlZmluZSBTVDc1ODZfU0VUX1BBUlRfRElTUAkweGI0CisjZGVmaW5lIFNUNzU4Nl9TRVRfTkxJTkVfSU5WCTB4YjUKKyNkZWZpbmUgU1Q3NTg2X1NFVF9WT1AJCTB4YzAKKyNkZWZpbmUgU1Q3NTg2X1NFVF9CSUFTX1NZU1RFTQkweGMzCisjZGVmaW5lIFNUNzU4Nl9TRVRfQk9PU1RfTEVWRUwJMHhjNAorI2RlZmluZSBTVDc1ODZfU0VUX1ZPUF9PRkZTRVQJMHhjNworI2RlZmluZSBTVDc1ODZfRU5BQkxFX0FOQUxPRwkweGQwCisjZGVmaW5lIFNUNzU4Nl9BVVRPX1JFQURfQ1RSTAkweGQ3CisjZGVmaW5lIFNUNzU4Nl9PVFBfUldfQ1RSTAkweGUwCisjZGVmaW5lIFNUNzU4Nl9PVFBfQ1RSTF9PVVQJMHhlMQorI2RlZmluZSBTVDc1ODZfT1RQX1JFQUQJCTB4ZTMKKworI2RlZmluZSBTVDc1ODZfRElTUF9DVFJMX01YCUJJVCg2KQorI2RlZmluZSBTVDc1ODZfRElTUF9DVFJMX01ZCUJJVCg3KQorCisvKgorICogVGhlIFNUNzU4NiBjb250cm9sbGVyIGhhcyBhbiB1bnVzdWFsIHBpeGVsIGZvcm1hdCB3aGVyZSAyYnBwIGdyYXlzY2FsZSBpcworICogcGFja2VkIDMgcGl4ZWxzIHBlciBieXRlIHdpdGggdGhlIGZpcnN0IHR3byBwaXhlbHMgdXNpbmcgMyBiaXRzIGFuZCB0aGUgM3JkCisgKiBwaXhlbCB1c2luZyBvbmx5IDIgYml0cy4KKyAqCisgKiB8ICBENyAgfCAgRDYgIHwgIEQ1ICB8fCAgICAgIHwgICAgICB8fCAyYnBwIHwKKyAqIHwgKEQ0KSB8IChEMykgfCAoRDIpIHx8ICBEMSAgfCAgRDAgIHx8IEdSQVkgfAorICogKy0tLS0tLSstLS0tLS0rLS0tLS0tKystLS0tLS0rLS0tLS0tKystLS0tLS0rCisgKiB8ICAxICAgfCAgMSAgIHwgIDEgICB8fCAgMSAgIHwgIDEgICB8fCAwICAwIHwgYmxhY2sKKyAqIHwgIDEgICB8ICAwICAgfCAgMCAgIHx8ICAxICAgfCAgMCAgIHx8IDAgIDEgfCBkYXJrIGdyYXkKKyAqIHwgIDAgICB8ICAxICAgfCAgMCAgIHx8ICAwICAgfCAgMSAgIHx8IDEgIDAgfCBsaWdodCBncmF5CisgKiB8ICAwICAgfCAgMCAgIHwgIDAgICB8fCAgMCAgIHwgIDAgICB8fCAxICAxIHwgd2hpdGUKKyAqLworCitzdGF0aWMgY29uc3QgdTggc3Q3NTg2X2xvb2t1cFtdID0geyAweDcsIDB4NCwgMHgyLCAweDAgfTsKKworc3RhdGljIHZvaWQgc3Q3NTg2X3hyZ2I4ODg4X3RvX2dyYXkzMzIodTggKmRzdCwgdm9pZCAqdmFkZHIsCisJCQkJICAgICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXApCit7CisJc2l6ZV90IGxlbiA9IChjbGlwLT54MiAtIGNsaXAtPngxKSAqIChjbGlwLT55MiAtIGNsaXAtPnkxKTsKKwl1bnNpZ25lZCBpbnQgeCwgeTsKKwl1OCAqc3JjLCAqYnVmLCB2YWw7CisKKwlidWYgPSBrbWFsbG9jKGxlbiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFidWYpCisJCXJldHVybjsKKworCWRybV9mYl94cmdiODg4OF90b19ncmF5OChidWYsIHZhZGRyLCBmYiwgY2xpcCk7CisJc3JjID0gYnVmOworCisJZm9yICh5ID0gY2xpcC0+eTE7IHkgPCBjbGlwLT55MjsgeSsrKSB7CisJCWZvciAoeCA9IGNsaXAtPngxOyB4IDwgY2xpcC0+eDI7IHggKz0gMykgeworCQkJdmFsID0gc3Q3NTg2X2xvb2t1cFsqc3JjKysgPj4gNl0gPDwgNTsKKwkJCXZhbCB8PSBzdDc1ODZfbG9va3VwWypzcmMrKyA+PiA2XSA8PCAyOworCQkJdmFsIHw9IHN0NzU4Nl9sb29rdXBbKnNyYysrID4+IDZdID4+IDE7CisJCQkqZHN0KysgPSB2YWw7CisJCX0KKwl9CisKKwlrZnJlZShidWYpOworfQorCitzdGF0aWMgaW50IHN0NzU4Nl9idWZfY29weSh2b2lkICpkc3QsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJICAgc3RydWN0IGRybV9yZWN0ICpjbGlwKQoreworCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKKwlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICppbXBvcnRfYXR0YWNoID0gY21hX29iai0+YmFzZS5pbXBvcnRfYXR0YWNoOworCXZvaWQgKnNyYyA9IGNtYV9vYmotPnZhZGRyOworCWludCByZXQgPSAwOworCisJaWYgKGltcG9ydF9hdHRhY2gpIHsKKwkJcmV0ID0gZG1hX2J1Zl9iZWdpbl9jcHVfYWNjZXNzKGltcG9ydF9hdHRhY2gtPmRtYWJ1ZiwKKwkJCQkJICAgICAgIERNQV9GUk9NX0RFVklDRSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXN0NzU4Nl94cmdiODg4OF90b19ncmF5MzMyKGRzdCwgc3JjLCBmYiwgY2xpcCk7CisKKwlpZiAoaW1wb3J0X2F0dGFjaCkKKwkJcmV0ID0gZG1hX2J1Zl9lbmRfY3B1X2FjY2VzcyhpbXBvcnRfYXR0YWNoLT5kbWFidWYsCisJCQkJCSAgICAgRE1BX0ZST01fREVWSUNFKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHN0NzU4Nl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgc3RydWN0IGRybV9yZWN0ICpyZWN0KQoreworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiA9IGRybV90b19taXBpX2RiaV9kZXYoZmItPmRldik7CisJc3RydWN0IG1pcGlfZGJpICpkYmkgPSAmZGJpZGV2LT5kYmk7CisJaW50IHN0YXJ0LCBlbmQsIGlkeCwgcmV0ID0gMDsKKworCWlmICghZGJpZGV2LT5lbmFibGVkKQorCQlyZXR1cm47CisKKwlpZiAoIWRybV9kZXZfZW50ZXIoZmItPmRldiwgJmlkeCkpCisJCXJldHVybjsKKworCS8qIDMgcGl4ZWxzIHBlciBieXRlLCBzbyBncm93IGNsaXAgdG8gbmVhcmVzdCBtdWx0aXBsZSBvZiAzICovCisJcmVjdC0+eDEgPSByb3VuZGRvd24ocmVjdC0+eDEsIDMpOworCXJlY3QtPngyID0gcm91bmR1cChyZWN0LT54MiwgMyk7CisKKwlEUk1fREVCVUdfS01TKCJGbHVzaGluZyBbRkI6JWRdICIgRFJNX1JFQ1RfRk1UICJcbiIsIGZiLT5iYXNlLmlkLCBEUk1fUkVDVF9BUkcocmVjdCkpOworCisJcmV0ID0gc3Q3NTg2X2J1Zl9jb3B5KGRiaWRldi0+dHhfYnVmLCBmYiwgcmVjdCk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfbXNnOworCisJLyogUGl4ZWxzIGFyZSBwYWNrZWQgMyBwZXIgYnl0ZSAqLworCXN0YXJ0ID0gcmVjdC0+eDEgLyAzOworCWVuZCA9IHJlY3QtPngyIC8gMzsKKworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19TRVRfQ09MVU1OX0FERFJFU1MsCisJCQkgKHN0YXJ0ID4+IDgpICYgMHhGRiwgc3RhcnQgJiAweEZGLAorCQkJIChlbmQgPj4gOCkgJiAweEZGLCAoZW5kIC0gMSkgJiAweEZGKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX1BBR0VfQUREUkVTUywKKwkJCSAocmVjdC0+eTEgPj4gOCkgJiAweEZGLCByZWN0LT55MSAmIDB4RkYsCisJCQkgKHJlY3QtPnkyID4+IDgpICYgMHhGRiwgKHJlY3QtPnkyIC0gMSkgJiAweEZGKTsKKworCXJldCA9IG1pcGlfZGJpX2NvbW1hbmRfYnVmKGRiaSwgTUlQSV9EQ1NfV1JJVEVfTUVNT1JZX1NUQVJULAorCQkJCSAgICh1OCAqKWRiaWRldi0+dHhfYnVmLAorCQkJCSAgIChlbmQgLSBzdGFydCkgKiAocmVjdC0+eTIgLSByZWN0LT55MSkpOworZXJyX21zZzoKKwlpZiAocmV0KQorCQlkZXZfZXJyX29uY2UoZmItPmRldi0+ZGV2LCAiRmFpbGVkIHRvIHVwZGF0ZSBkaXNwbGF5ICVkXG4iLCByZXQpOworCisJZHJtX2Rldl9leGl0KGlkeCk7Cit9CisKK3N0YXRpYyB2b2lkIHN0NzU4Nl9waXBlX3VwZGF0ZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCisJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlID0gcGlwZS0+cGxhbmUuc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJnBpcGUtPmNydGM7CisJc3RydWN0IGRybV9yZWN0IHJlY3Q7CisKKwlpZiAoZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX21lcmdlZChvbGRfc3RhdGUsIHN0YXRlLCAmcmVjdCkpCisJCXN0NzU4Nl9mYl9kaXJ0eShzdGF0ZS0+ZmIsICZyZWN0KTsKKworCWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQpIHsKKwkJc3Bpbl9sb2NrX2lycSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsKKwkJZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoY3J0YywgY3J0Yy0+c3RhdGUtPmV2ZW50KTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOworCQljcnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOworCX0KK30KKworc3RhdGljIHZvaWQgc3Q3NTg2X3BpcGVfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCit7CisJc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2ID0gZHJtX3RvX21pcGlfZGJpX2RldihwaXBlLT5jcnRjLmRldik7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7CisJc3RydWN0IG1pcGlfZGJpICpkYmkgPSAmZGJpZGV2LT5kYmk7CisJc3RydWN0IGRybV9yZWN0IHJlY3QgPSB7CisJCS54MSA9IDAsCisJCS54MiA9IGZiLT53aWR0aCwKKwkJLnkxID0gMCwKKwkJLnkyID0gZmItPmhlaWdodCwKKwl9OworCWludCBpZHgsIHJldDsKKwl1OCBhZGRyX21vZGU7CisKKwlpZiAoIWRybV9kZXZfZW50ZXIocGlwZS0+Y3J0Yy5kZXYsICZpZHgpKQorCQlyZXR1cm47CisKKwlEUk1fREVCVUdfS01TKCJcbiIpOworCisJcmV0ID0gbWlwaV9kYmlfcG93ZXJvbl9yZXNldChkYmlkZXYpOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2V4aXQ7CisKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NTg2X0FVVE9fUkVBRF9DVFJMLCAweDlmKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NTg2X09UUF9SV19DVFJMLCAweDAwKTsKKworCW1zbGVlcCgxMCk7CisKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NTg2X09UUF9SRUFEKTsKKworCW1zbGVlcCgyMCk7CisKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NTg2X09UUF9DVFJMX09VVCk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX0VYSVRfU0xFRVBfTU9ERSk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9ESVNQTEFZX09GRik7CisKKwltc2xlZXAoNTApOworCisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzU4Nl9TRVRfVk9QX09GRlNFVCwgMHgwMCk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzU4Nl9TRVRfVk9QLCAweGUzLCAweDAwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NTg2X1NFVF9CSUFTX1NZU1RFTSwgMHgwMik7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzU4Nl9TRVRfQk9PU1RfTEVWRUwsIDB4MDQpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBTVDc1ODZfRU5BQkxFX0FOQUxPRywgMHgxZCk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzU4Nl9TRVRfTkxJTkVfSU5WLCAweDAwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NTg2X0RJU1BfTU9ERV9HUkFZKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NTg2X0VOQUJMRV9ERFJBTSwgMHgwMik7CisKKwlzd2l0Y2ggKGRiaWRldi0+cm90YXRpb24pIHsKKwlkZWZhdWx0OgorCQlhZGRyX21vZGUgPSAweDAwOworCQlicmVhazsKKwljYXNlIDkwOgorCQlhZGRyX21vZGUgPSBTVDc1ODZfRElTUF9DVFJMX01ZOworCQlicmVhazsKKwljYXNlIDE4MDoKKwkJYWRkcl9tb2RlID0gU1Q3NTg2X0RJU1BfQ1RSTF9NWCB8IFNUNzU4Nl9ESVNQX0NUUkxfTVk7CisJCWJyZWFrOworCWNhc2UgMjcwOgorCQlhZGRyX21vZGUgPSBTVDc1ODZfRElTUF9DVFJMX01YOworCQlicmVhazsKKwl9CisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9BRERSRVNTX01PREUsIGFkZHJfbW9kZSk7CisKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NTg2X1NFVF9ESVNQX0RVVFksIDB4N2YpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBTVDc1ODZfU0VUX1BBUlRfRElTUCwgMHhhMCk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9QQVJUSUFMX0FSRUEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NzcpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19FWElUX0lOVkVSVF9NT0RFKTsKKworCW1zbGVlcCgxMDApOworCisJZGJpZGV2LT5lbmFibGVkID0gdHJ1ZTsKKwlzdDc1ODZfZmJfZGlydHkoZmIsICZyZWN0KTsKKworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19TRVRfRElTUExBWV9PTik7CitvdXRfZXhpdDoKKwlkcm1fZGV2X2V4aXQoaWR4KTsKK30KKworc3RhdGljIHZvaWQgc3Q3NTg2X3BpcGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCit7CisJc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2ID0gZHJtX3RvX21pcGlfZGJpX2RldihwaXBlLT5jcnRjLmRldik7CisKKwkvKgorCSAqIFRoaXMgY2FsbGJhY2sgaXMgbm90IHByb3RlY3RlZCBieSBkcm1fZGV2X2VudGVyL2V4aXQgc2luY2Ugd2Ugd2FudCB0bworCSAqIHR1cm4gb2ZmIHRoZSBkaXNwbGF5IG9uIHJlZ3VsYXIgZHJpdmVyIHVubG9hZC4gSXQncyBoaWdobHkgdW5saWtlbHkKKwkgKiB0aGF0IHRoZSB1bmRlcmx5aW5nIFNQSSBjb250cm9sbGVyIGlzIGdvbmUgc2hvdWxkIHRoaXMgYmUgY2FsbGVkIGFmdGVyCisJICogdW5wbHVnLgorCSAqLworCisJRFJNX0RFQlVHX0tNUygiXG4iKTsKKworCWlmICghZGJpZGV2LT5lbmFibGVkKQorCQlyZXR1cm47CisKKwltaXBpX2RiaV9jb21tYW5kKCZkYmlkZXYtPmRiaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT0ZGKTsKKwlkYmlkZXYtPmVuYWJsZWQgPSBmYWxzZTsKK30KKworc3RhdGljIGNvbnN0IHUzMiBzdDc1ODZfZm9ybWF0c1tdID0geworCURSTV9GT1JNQVRfWFJHQjg4ODgsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIHN0NzU4Nl9waXBlX2Z1bmNzID0geworCS5lbmFibGUJCT0gc3Q3NTg2X3BpcGVfZW5hYmxlLAorCS5kaXNhYmxlCT0gc3Q3NTg2X3BpcGVfZGlzYWJsZSwKKwkudXBkYXRlCQk9IHN0NzU4Nl9waXBlX3VwZGF0ZSwKKwkucHJlcGFyZV9mYgk9IGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9wcmVwYXJlX2ZiLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHN0NzU4Nl9tb2RlID0geworCURSTV9TSU1QTEVfTU9ERSgxNzgsIDEyOCwgMzcsIDI3KSwKK307CisKK0RFRklORV9EUk1fR0VNX0NNQV9GT1BTKHN0NzU4Nl9mb3BzKTsKKworc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHN0NzU4Nl9kcml2ZXIgPSB7CisJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCisJLmZvcHMJCQk9ICZzdDc1ODZfZm9wcywKKwkucmVsZWFzZQkJPSBtaXBpX2RiaV9yZWxlYXNlLAorCURSTV9HRU1fQ01BX1ZNQVBfRFJJVkVSX09QUywKKwkuZGVidWdmc19pbml0CQk9IG1pcGlfZGJpX2RlYnVnZnNfaW5pdCwKKwkubmFtZQkJCT0gInN0NzU4NiIsCisJLmRlc2MJCQk9ICJTaXRyb25peCBTVDc1ODYiLAorCS5kYXRlCQkJPSAiMjAxNzA4MDEiLAorCS5tYWpvcgkJCT0gMSwKKwkubWlub3IJCQk9IDAsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdDc1ODZfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImxlZ28sZXYzLWxjZCIgfSwKKwl7fSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdDc1ODZfb2ZfbWF0Y2gpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgc3Q3NTg2X2lkW10gPSB7CisJeyAiZXYzLWxjZCIsIDAgfSwKKwl7IH0sCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShzcGksIHN0NzU4Nl9pZCk7CisKK3N0YXRpYyBpbnQgc3Q3NTg2X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnNwaS0+ZGV2OworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOworCXN0cnVjdCBtaXBpX2RiaSAqZGJpOworCXN0cnVjdCBncGlvX2Rlc2MgKmEwOworCXUzMiByb3RhdGlvbiA9IDA7CisJc2l6ZV90IGJ1ZnNpemU7CisJaW50IHJldDsKKworCWRiaWRldiA9IGt6YWxsb2Moc2l6ZW9mKCpkYmlkZXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRiaWRldikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkYmkgPSAmZGJpZGV2LT5kYmk7CisJZHJtID0gJmRiaWRldi0+ZHJtOworCXJldCA9IGRldm1fZHJtX2Rldl9pbml0KGRldiwgZHJtLCAmc3Q3NTg2X2RyaXZlcik7CisJaWYgKHJldCkgeworCQlrZnJlZShkYmlkZXYpOworCQlyZXR1cm4gcmV0OworCX0KKworCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7CisKKwlidWZzaXplID0gKHN0NzU4Nl9tb2RlLnZkaXNwbGF5ICsgMikgLyAzICogc3Q3NTg2X21vZGUuaGRpc3BsYXk7CisKKwlkYmktPnJlc2V0ID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicmVzZXQiLCBHUElPRF9PVVRfSElHSCk7CisJaWYgKElTX0VSUihkYmktPnJlc2V0KSkgeworCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAncmVzZXQnXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIoZGJpLT5yZXNldCk7CisJfQorCisJYTAgPSBkZXZtX2dwaW9kX2dldChkZXYsICJhMCIsIEdQSU9EX09VVF9MT1cpOworCWlmIChJU19FUlIoYTApKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdhMCdcbiIpOworCQlyZXR1cm4gUFRSX0VSUihhMCk7CisJfQorCisJZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwgInJvdGF0aW9uIiwgJnJvdGF0aW9uKTsKKworCXJldCA9IG1pcGlfZGJpX3NwaV9pbml0KHNwaSwgZGJpLCBhMCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qIENhbm5vdCByZWFkIGZyb20gdGhpcyBjb250cm9sbGVyIHZpYSBTUEkgKi8KKwlkYmktPnJlYWRfY29tbWFuZHMgPSBOVUxMOworCisJcmV0ID0gbWlwaV9kYmlfZGV2X2luaXRfd2l0aF9mb3JtYXRzKGRiaWRldiwgJnN0NzU4Nl9waXBlX2Z1bmNzLAorCQkJCQkgICAgIHN0NzU4Nl9mb3JtYXRzLCBBUlJBWV9TSVpFKHN0NzU4Nl9mb3JtYXRzKSwKKwkJCQkJICAgICAmc3Q3NTg2X21vZGUsIHJvdGF0aW9uLCBidWZzaXplKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyoKKwkgKiB3ZSBhcmUgdXNpbmcgOC1iaXQgZGF0YSwgc28gd2UgYXJlIG5vdCBhY3R1YWxseSBzd2FwcGluZyBhbnl0aGluZywKKwkgKiBidXQgc2V0dGluZyBtaXBpLT5zd2FwX2J5dGVzIG1ha2VzIG1pcGlfZGJpX3R5cGVjM19jb21tYW5kKCkgZG8gdGhlCisJICogcmlnaHQgdGhpbmcgYW5kIG5vdCB1c2UgMTYtYml0IHRyYW5zZmVycyAod2hpY2ggcmVzdWx0cyBpbiBzd2FwcGVkCisJICogYnl0ZXMgb24gbGl0dGxlLWVuZGlhbiBzeXN0ZW1zIGFuZCBjYXVzZXMgb3V0IG9mIG9yZGVyIGRhdGEgdG8gYmUKKwkgKiBzZW50IHRvIHRoZSBkaXNwbGF5KS4KKwkgKi8KKwlkYmktPnN3YXBfYnl0ZXMgPSB0cnVlOworCisJZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRybSk7CisKKwlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRybSwgMCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXNwaV9zZXRfZHJ2ZGF0YShzcGksIGRybSk7CisKKwlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm0sIDApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc3Q3NTg2X3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKKworCWRybV9kZXZfdW5wbHVnKGRybSk7CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oZHJtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBzdDc1ODZfc2h1dGRvd24oc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bihzcGlfZ2V0X2RydmRhdGEoc3BpKSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBzdDc1ODZfc3BpX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJzdDc1ODYiLAorCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwkJLm9mX21hdGNoX3RhYmxlID0gc3Q3NTg2X29mX21hdGNoLAorCX0sCisJLmlkX3RhYmxlID0gc3Q3NTg2X2lkLAorCS5wcm9iZSA9IHN0NzU4Nl9wcm9iZSwKKwkucmVtb3ZlID0gc3Q3NTg2X3JlbW92ZSwKKwkuc2h1dGRvd24gPSBzdDc1ODZfc2h1dGRvd24sCit9OworbW9kdWxlX3NwaV9kcml2ZXIoc3Q3NTg2X3NwaV9kcml2ZXIpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNpdHJvbml4IFNUNzU4NiBEUk0gZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJEYXZpZCBMZWNobmVyIDxkYXZpZEBsZWNobm9sb2d5LmNvbT4iKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55L3N0NzczNXIuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L3N0NzczNXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjQ0ODdjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnkvc3Q3NzM1ci5jCkBAIC0wLDAgKzEsMjQ2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKKy8qCisgKiBEUk0gZHJpdmVyIGZvciBTaXRyb25peCBTVDc3MzVSIHBhbmVscworICoKKyAqIENvcHlyaWdodCAyMDE3IERhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcHJvcGVydHkuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kYmkuaD4KKworI2RlZmluZSBTVDc3MzVSX0ZSTUNUUjEJCTB4YjEKKyNkZWZpbmUgU1Q3NzM1Ul9GUk1DVFIyCQkweGIyCisjZGVmaW5lIFNUNzczNVJfRlJNQ1RSMwkJMHhiMworI2RlZmluZSBTVDc3MzVSX0lOVkNUUgkJMHhiNAorI2RlZmluZSBTVDc3MzVSX1BXQ1RSMQkJMHhjMAorI2RlZmluZSBTVDc3MzVSX1BXQ1RSMgkJMHhjMQorI2RlZmluZSBTVDc3MzVSX1BXQ1RSMwkJMHhjMgorI2RlZmluZSBTVDc3MzVSX1BXQ1RSNAkJMHhjMworI2RlZmluZSBTVDc3MzVSX1BXQ1RSNQkJMHhjNAorI2RlZmluZSBTVDc3MzVSX1ZNQ1RSMQkJMHhjNQorI2RlZmluZSBTVDc3MzVSX0dBTUNUUlAxCTB4ZTAKKyNkZWZpbmUgU1Q3NzM1Ul9HQU1DVFJOMQkweGUxCisKKyNkZWZpbmUgU1Q3NzM1Ul9NWQlCSVQoNykKKyNkZWZpbmUgU1Q3NzM1Ul9NWAlCSVQoNikKKyNkZWZpbmUgU1Q3NzM1Ul9NVglCSVQoNSkKKworc3RhdGljIHZvaWQgamRfdDE4MDAzX3QwMV9waXBlX2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCisJCQkJICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJCSAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQoreworCXN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldiA9IGRybV90b19taXBpX2RiaV9kZXYocGlwZS0+Y3J0Yy5kZXYpOworCXN0cnVjdCBtaXBpX2RiaSAqZGJpID0gJmRiaWRldi0+ZGJpOworCWludCByZXQsIGlkeDsKKwl1OCBhZGRyX21vZGU7CisKKwlpZiAoIWRybV9kZXZfZW50ZXIocGlwZS0+Y3J0Yy5kZXYsICZpZHgpKQorCQlyZXR1cm47CisKKwlEUk1fREVCVUdfS01TKCJcbiIpOworCisJcmV0ID0gbWlwaV9kYmlfcG93ZXJvbl9yZXNldChkYmlkZXYpOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2V4aXQ7CisKKwltc2xlZXAoMTUwKTsKKworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19FWElUX1NMRUVQX01PREUpOworCW1zbGVlcCg1MDApOworCisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzczNVJfRlJNQ1RSMSwgMHgwMSwgMHgyYywgMHgyZCk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzczNVJfRlJNQ1RSMiwgMHgwMSwgMHgyYywgMHgyZCk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzczNVJfRlJNQ1RSMywgMHgwMSwgMHgyYywgMHgyZCwgMHgwMSwgMHgyYywKKwkJCSAweDJkKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NzM1Ul9JTlZDVFIsIDB4MDcpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBTVDc3MzVSX1BXQ1RSMSwgMHhhMiwgMHgwMiwgMHg4NCk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzczNVJfUFdDVFIyLCAweGM1KTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NzM1Ul9QV0NUUjMsIDB4MGEsIDB4MDApOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBTVDc3MzVSX1BXQ1RSNCwgMHg4YSwgMHgyYSk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzczNVJfUFdDVFI1LCAweDhhLCAweGVlKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgU1Q3NzM1Ul9WTUNUUjEsIDB4MGUpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19FWElUX0lOVkVSVF9NT0RFKTsKKwlzd2l0Y2ggKGRiaWRldi0+cm90YXRpb24pIHsKKwlkZWZhdWx0OgorCQlhZGRyX21vZGUgPSBTVDc3MzVSX01YIHwgU1Q3NzM1Ul9NWTsKKwkJYnJlYWs7CisJY2FzZSA5MDoKKwkJYWRkcl9tb2RlID0gU1Q3NzM1Ul9NWCB8IFNUNzczNVJfTVY7CisJCWJyZWFrOworCWNhc2UgMTgwOgorCQlhZGRyX21vZGUgPSAwOworCQlicmVhazsKKwljYXNlIDI3MDoKKwkJYWRkcl9tb2RlID0gU1Q3NzM1Ul9NWSB8IFNUNzczNVJfTVY7CisJCWJyZWFrOworCX0KKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX0FERFJFU1NfTU9ERSwgYWRkcl9tb2RlKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX1BJWEVMX0ZPUk1BVCwKKwkJCSBNSVBJX0RDU19QSVhFTF9GTVRfMTZCSVQpOworCW1pcGlfZGJpX2NvbW1hbmQoZGJpLCBTVDc3MzVSX0dBTUNUUlAxLCAweDAyLCAweDFjLCAweDA3LCAweDEyLCAweDM3LAorCQkJIDB4MzIsIDB4MjksIDB4MmQsIDB4MjksIDB4MjUsIDB4MmIsIDB4MzksIDB4MDAsIDB4MDEsCisJCQkgMHgwMywgMHgxMCk7CisJbWlwaV9kYmlfY29tbWFuZChkYmksIFNUNzczNVJfR0FNQ1RSTjEsIDB4MDMsIDB4MWQsIDB4MDcsIDB4MDYsIDB4MmUsCisJCQkgMHgyYywgMHgyOSwgMHgyZCwgMHgyZSwgMHgyZSwgMHgzNywgMHgzZiwgMHgwMCwgMHgwMCwKKwkJCSAweDAyLCAweDEwKTsKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT04pOworCisJbXNsZWVwKDEwMCk7CisKKwltaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfRU5URVJfTk9STUFMX01PREUpOworCisJbXNsZWVwKDIwKTsKKworCW1pcGlfZGJpX2VuYWJsZV9mbHVzaChkYmlkZXYsIGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKK291dF9leGl0OgorCWRybV9kZXZfZXhpdChpZHgpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIGpkX3QxODAwM190MDFfcGlwZV9mdW5jcyA9IHsKKwkuZW5hYmxlCQk9IGpkX3QxODAwM190MDFfcGlwZV9lbmFibGUsCisJLmRpc2FibGUJPSBtaXBpX2RiaV9waXBlX2Rpc2FibGUsCisJLnVwZGF0ZQkJPSBtaXBpX2RiaV9waXBlX3VwZGF0ZSwKKwkucHJlcGFyZV9mYgk9IGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9wcmVwYXJlX2ZiLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGpkX3QxODAwM190MDFfbW9kZSA9IHsKKwlEUk1fU0lNUExFX01PREUoMTI4LCAxNjAsIDI4LCAzNSksCit9OworCitERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhzdDc3MzVyX2ZvcHMpOworCitzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgc3Q3NzM1cl9kcml2ZXIgPSB7CisJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCisJLmZvcHMJCQk9ICZzdDc3MzVyX2ZvcHMsCisJLnJlbGVhc2UJCT0gbWlwaV9kYmlfcmVsZWFzZSwKKwlEUk1fR0VNX0NNQV9WTUFQX0RSSVZFUl9PUFMsCisJLmRlYnVnZnNfaW5pdAkJPSBtaXBpX2RiaV9kZWJ1Z2ZzX2luaXQsCisJLm5hbWUJCQk9ICJzdDc3MzVyIiwKKwkuZGVzYwkJCT0gIlNpdHJvbml4IFNUNzczNVIiLAorCS5kYXRlCQkJPSAiMjAxNzExMjgiLAorCS5tYWpvcgkJCT0gMSwKKwkubWlub3IJCQk9IDAsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdDc3MzVyX29mX21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJqaWFuZGEsamQtdDE4MDAzLXQwMSIgfSwKKwl7IH0sCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3Q3NzM1cl9vZl9tYXRjaCk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCBzdDc3MzVyX2lkW10gPSB7CisJeyAiamQtdDE4MDAzLXQwMSIsIDAgfSwKKwl7IH0sCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShzcGksIHN0NzczNXJfaWQpOworCitzdGF0aWMgaW50IHN0NzczNXJfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmc3BpLT5kZXY7CisJc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07CisJc3RydWN0IG1pcGlfZGJpICpkYmk7CisJc3RydWN0IGdwaW9fZGVzYyAqZGM7CisJdTMyIHJvdGF0aW9uID0gMDsKKwlpbnQgcmV0OworCisJZGJpZGV2ID0ga3phbGxvYyhzaXplb2YoKmRiaWRldiksIEdGUF9LRVJORUwpOworCWlmICghZGJpZGV2KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRiaSA9ICZkYmlkZXYtPmRiaTsKKwlkcm0gPSAmZGJpZGV2LT5kcm07CisJcmV0ID0gZGV2bV9kcm1fZGV2X2luaXQoZGV2LCBkcm0sICZzdDc3MzVyX2RyaXZlcik7CisJaWYgKHJldCkgeworCQlrZnJlZShkYmlkZXYpOworCQlyZXR1cm4gcmV0OworCX0KKworCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7CisKKwlkYmktPnJlc2V0ID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicmVzZXQiLCBHUElPRF9PVVRfSElHSCk7CisJaWYgKElTX0VSUihkYmktPnJlc2V0KSkgeworCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAncmVzZXQnXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIoZGJpLT5yZXNldCk7CisJfQorCisJZGMgPSBkZXZtX2dwaW9kX2dldChkZXYsICJkYyIsIEdQSU9EX09VVF9MT1cpOworCWlmIChJU19FUlIoZGMpKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdkYydcbiIpOworCQlyZXR1cm4gUFRSX0VSUihkYyk7CisJfQorCisJZGJpZGV2LT5iYWNrbGlnaHQgPSBkZXZtX29mX2ZpbmRfYmFja2xpZ2h0KGRldik7CisJaWYgKElTX0VSUihkYmlkZXYtPmJhY2tsaWdodCkpCisJCXJldHVybiBQVFJfRVJSKGRiaWRldi0+YmFja2xpZ2h0KTsKKworCWRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihkZXYsICJyb3RhdGlvbiIsICZyb3RhdGlvbik7CisKKwlyZXQgPSBtaXBpX2RiaV9zcGlfaW5pdChzcGksIGRiaSwgZGMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwkvKiBDYW5ub3QgcmVhZCBmcm9tIEFkYWZydWl0IDEuOCIgZGlzcGxheSB2aWEgU1BJICovCisJZGJpLT5yZWFkX2NvbW1hbmRzID0gTlVMTDsKKworCXJldCA9IG1pcGlfZGJpX2Rldl9pbml0KGRiaWRldiwgJmpkX3QxODAwM190MDFfcGlwZV9mdW5jcywgJmpkX3QxODAwM190MDFfbW9kZSwgcm90YXRpb24pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoZHJtKTsKKworCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3BpX3NldF9kcnZkYXRhKHNwaSwgZHJtKTsKKworCWRybV9mYmRldl9nZW5lcmljX3NldHVwKGRybSwgMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzdDc3MzVyX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKKworCWRybV9kZXZfdW5wbHVnKGRybSk7CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oZHJtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBzdDc3MzVyX3NodXRkb3duKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCit7CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oc3BpX2dldF9kcnZkYXRhKHNwaSkpOworfQorCitzdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgc3Q3NzM1cl9zcGlfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gInN0NzczNXIiLAorCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwkJLm9mX21hdGNoX3RhYmxlID0gc3Q3NzM1cl9vZl9tYXRjaCwKKwl9LAorCS5pZF90YWJsZSA9IHN0NzczNXJfaWQsCisJLnByb2JlID0gc3Q3NzM1cl9wcm9iZSwKKwkucmVtb3ZlID0gc3Q3NzM1cl9yZW1vdmUsCisJLnNodXRkb3duID0gc3Q3NzM1cl9zaHV0ZG93biwKK307Cittb2R1bGVfc3BpX2RyaXZlcihzdDc3MzVyX3NwaV9kcml2ZXIpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNpdHJvbml4IFNUNzczNVIgRFJNIGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiRGF2aWQgTGVjaG5lciA8ZGF2aWRAbGVjaG5vbG9neS5jb20+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vS2NvbmZpZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc4MTljOC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9LY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci1tZW51Y29uZmlnIERSTV9USU5ZRFJNCi0JdHJpc3RhdGUgIlN1cHBvcnQgZm9yIHNpbXBsZSBkaXNwbGF5cyIKLQlkZXBlbmRzIG9uIERSTQotCXNlbGVjdCBEUk1fS01TX0hFTFBFUgotCXNlbGVjdCBEUk1fS01TX0NNQV9IRUxQRVIKLQloZWxwCi0JICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSB0aW55ZHJtIHN1cHBvcnRlZCBkaXNwbGF5LgotCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHRpbnlkcm0uCi0KLWNvbmZpZyBUSU5ZRFJNX01JUElfREJJCi0JdHJpc3RhdGUKLQotY29uZmlnIFRJTllEUk1fSFg4MzU3RAotCXRyaXN0YXRlICJEUk0gc3VwcG9ydCBmb3IgSFg4MzU3RCBkaXNwbGF5IHBhbmVscyIKLQlkZXBlbmRzIG9uIERSTV9USU5ZRFJNICYmIFNQSQotCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRQotCXNlbGVjdCBUSU5ZRFJNX01JUElfREJJCi0JaGVscAotCSAgRFJNIGRyaXZlciBmb3IgdGhlIGZvbGxvd2luZyBIWDgzNTdEIHBhbmVsczoKLQkgICogWVgzNTBIVjE1LVQgMy41IiAzNDB4MzUwIFRGVCAoQWRhZnJ1aXQgMy41IikKLQotCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGh4ODM1N2QuCi0KLWNvbmZpZyBUSU5ZRFJNX0lMSTkyMjUKLQl0cmlzdGF0ZSAiRFJNIHN1cHBvcnQgZm9yIElMSTkyMjUgZGlzcGxheSBwYW5lbHMiCi0JZGVwZW5kcyBvbiBEUk1fVElOWURSTSAmJiBTUEkKLQlzZWxlY3QgVElOWURSTV9NSVBJX0RCSQotCWhlbHAKLQkgIERSTSBkcml2ZXIgZm9yIHRoZSBmb2xsb3dpbmcgSWxpdGVrIElMSTkyMjUgcGFuZWxzOgotCSAgKiBOby1uYW1lIDIuMiIgY29sb3Igc2NyZWVuIG1vZHVsZQotCi0JICBJZiBNIGlzIHNlbGVjdGVkIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaWxpOTIyNS4KLQotY29uZmlnIFRJTllEUk1fSUxJOTM0MQotCXRyaXN0YXRlICJEUk0gc3VwcG9ydCBmb3IgSUxJOTM0MSBkaXNwbGF5IHBhbmVscyIKLQlkZXBlbmRzIG9uIERSTV9USU5ZRFJNICYmIFNQSQotCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRQotCXNlbGVjdCBUSU5ZRFJNX01JUElfREJJCi0JaGVscAotCSAgRFJNIGRyaXZlciBmb3IgdGhlIGZvbGxvd2luZyBJbGl0ZWsgSUxJOTM0MSBwYW5lbHM6Ci0JICAqIFlYMjQwUVYyOS1UIDIuNCIgMjQweDMyMCBURlQgKEFkYWZydWl0IDIuNCIpCi0KLQkgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBpbGk5MzQxLgotCi1jb25maWcgVElOWURSTV9NSTAyODNRVAotCXRyaXN0YXRlICJEUk0gc3VwcG9ydCBmb3IgTUkwMjgzUVQiCi0JZGVwZW5kcyBvbiBEUk1fVElOWURSTSAmJiBTUEkKLQlkZXBlbmRzIG9uIEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKLQlzZWxlY3QgVElOWURSTV9NSVBJX0RCSQotCWhlbHAKLQkgIERSTSBkcml2ZXIgZm9yIHRoZSBNdWx0aS1Jbm5vIE1JMDI4M1FUIGRpc3BsYXkgcGFuZWwKLQkgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBtaTAyODNxdC4KLQotY29uZmlnIFRJTllEUk1fUkVQQVBFUgotCXRyaXN0YXRlICJEUk0gc3VwcG9ydCBmb3IgUGVydmFzaXZlIERpc3BsYXlzIFJlUGFwZXIgcGFuZWxzIChWMjMxKSIKLQlkZXBlbmRzIG9uIERSTV9USU5ZRFJNICYmIFNQSQotCWRlcGVuZHMgb24gVEhFUk1BTCB8fCAhVEhFUk1BTAotCWhlbHAKLQkgIERSTSBkcml2ZXIgZm9yIHRoZSBmb2xsb3dpbmcgUGVydmFzaXZlIERpc3BsYXlzIHBhbmVsczoKLQkgIDEuNDQiIFRGVCBFUEQgUGFuZWwgKEUxMTQ0Q1MwMjEpCi0JICAxLjkwIiBURlQgRVBEIFBhbmVsIChFMTE5MENTMDIxKQotCSAgMi4wMCIgVEZUIEVQRCBQYW5lbCAoRTIyMDBDUzAyMSkKLQkgIDIuNzEiIFRGVCBFUEQgUGFuZWwgKEUyMjcxQ1MwMjEpCi0KLQkgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCByZXBhcGVyLgotCi1jb25maWcgVElOWURSTV9TVDc1ODYKLQl0cmlzdGF0ZSAiRFJNIHN1cHBvcnQgZm9yIFNpdHJvbml4IFNUNzU4NiBkaXNwbGF5IHBhbmVscyIKLQlkZXBlbmRzIG9uIERSTV9USU5ZRFJNICYmIFNQSQotCXNlbGVjdCBUSU5ZRFJNX01JUElfREJJCi0JaGVscAotCSAgRFJNIGRyaXZlciBmb3IgdGhlIGZvbGxvd2luZyBTaXRyb25peCBTVDc1ODYgcGFuZWxzOgotCSAgKiBMRUdPIE1JTkRTVE9STVMgRVYzCi0KLQkgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzdDc1ODYuCi0KLWNvbmZpZyBUSU5ZRFJNX1NUNzczNVIKLQl0cmlzdGF0ZSAiRFJNIHN1cHBvcnQgZm9yIFNpdHJvbml4IFNUNzczNVIgZGlzcGxheSBwYW5lbHMiCi0JZGVwZW5kcyBvbiBEUk1fVElOWURSTSAmJiBTUEkKLQlkZXBlbmRzIG9uIEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKLQlzZWxlY3QgVElOWURSTV9NSVBJX0RCSQotCWhlbHAKLQkgIERSTSBkcml2ZXIgU2l0cm9uaXggU1Q3NzM1UiB3aXRoIG9uZSBvZiB0aGUgZm9sbG93aW5nIExDRHM6Ci0JICAqIEpELVQxODAwMy1UMDEgMS44IiAxMjh4MTYwIFRGVAotCi0JICBJZiBNIGlzIHNlbGVjdGVkIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgc3Q3NzM1ci4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4ZWM4ZWQuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLW9iai0kKENPTkZJR19EUk1fVElOWURSTSkJCSs9IGNvcmUvCi0KLSMgQ29udHJvbGxlcnMKLW9iai0kKENPTkZJR19USU5ZRFJNX01JUElfREJJKQkJKz0gbWlwaS1kYmkubwotCi0jIERpc3BsYXlzCi1vYmotJChDT05GSUdfVElOWURSTV9IWDgzNTdEKQkJKz0gaHg4MzU3ZC5vCi1vYmotJChDT05GSUdfVElOWURSTV9JTEk5MjI1KQkJKz0gaWxpOTIyNS5vCi1vYmotJChDT05GSUdfVElOWURSTV9JTEk5MzQxKQkJKz0gaWxpOTM0MS5vCi1vYmotJChDT05GSUdfVElOWURSTV9NSTAyODNRVCkJCSs9IG1pMDI4M3F0Lm8KLW9iai0kKENPTkZJR19USU5ZRFJNX1JFUEFQRVIpCQkrPSByZXBhcGVyLm8KLW9iai0kKENPTkZJR19USU5ZRFJNX1NUNzU4NikJCSs9IHN0NzU4Ni5vCi1vYmotJChDT05GSUdfVElOWURSTV9TVDc3MzVSKQkJKz0gc3Q3NzM1ci5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3JlL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDEwNjVlOS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3JlL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLXRpbnlkcm0teSA6PSB0aW55ZHJtLXBpcGUubyB0aW55ZHJtLWhlbHBlcnMubwotCi1vYmotJChDT05GSUdfRFJNX1RJTllEUk0pICs9IHRpbnlkcm0ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1oZWxwZXJzLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmZWFmYWMuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYworKysgL2Rldi9udWxsCkBAIC0xLDIwNyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBOb3JhbGYgVHLDuG5uZXMKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BtLmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgotI2luY2x1ZGUgPGxpbnV4L3N3YWIuaD4KLQotI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgotI2luY2x1ZGUgPGRybS9kcm1fZnJhbWVidWZmZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+Ci0jaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJzLmg+Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgc3BpX21heDsKLW1vZHVsZV9wYXJhbShzcGlfbWF4LCB1aW50LCAwNDAwKTsKLU1PRFVMRV9QQVJNX0RFU0Moc3BpX21heCwgIlNldCBhIGxvd2VyIFNQSSBtYXggdHJhbnNmZXIgc2l6ZSIpOwotCi0jaWYgSVNfRU5BQkxFRChDT05GSUdfU1BJKQotCi0vKioKLSAqIHRpbnlkcm1fc3BpX21heF90cmFuc2Zlcl9zaXplIC0gRGV0ZXJtaW5lIG1heCBTUEkgdHJhbnNmZXIgc2l6ZQotICogQHNwaTogU1BJIGRldmljZQotICogQG1heF9sZW46IE1heGltdW0gYnVmZmVyIHNpemUgbmVlZGVkIChvcHRpb25hbCkKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIG1heGltdW0gc2l6ZSB0byB1c2UgZm9yIFNQSSB0cmFuc2ZlcnMuIEl0IGNoZWNrcwotICogdGhlIFNQSSBtYXN0ZXIsIHRoZSBvcHRpb25hbCBAbWF4X2xlbiBhbmQgdGhlIG1vZHVsZSBwYXJhbWV0ZXIgc3BpX21heCBhbmQKLSAqIHJldHVybnMgdGhlIHNtYWxsZXN0LgotICoKLSAqIFJldHVybnM6Ci0gKiBNYXhpbXVtIHNpemUgZm9yIFNQSSB0cmFuc2ZlcnMKLSAqLwotc2l6ZV90IHRpbnlkcm1fc3BpX21heF90cmFuc2Zlcl9zaXplKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHNpemVfdCBtYXhfbGVuKQotewotCXNpemVfdCByZXQ7Ci0KLQlyZXQgPSBtaW4oc3BpX21heF90cmFuc2Zlcl9zaXplKHNwaSksIHNwaS0+bWFzdGVyLT5tYXhfZG1hX2xlbik7Ci0JaWYgKG1heF9sZW4pCi0JCXJldCA9IG1pbihyZXQsIG1heF9sZW4pOwotCWlmIChzcGlfbWF4KQotCQlyZXQgPSBtaW5fdChzaXplX3QsIHJldCwgc3BpX21heCk7Ci0JcmV0ICY9IH4weDM7Ci0JaWYgKHJldCA8IDQpCi0JCXJldCA9IDQ7Ci0KLQlyZXR1cm4gcmV0OwotfQotRVhQT1JUX1NZTUJPTCh0aW55ZHJtX3NwaV9tYXhfdHJhbnNmZXJfc2l6ZSk7Ci0KLS8qKgotICogdGlueWRybV9zcGlfYnB3X3N1cHBvcnRlZCAtIENoZWNrIGlmIGJpdHMgcGVyIHdvcmQgaXMgc3VwcG9ydGVkCi0gKiBAc3BpOiBTUEkgZGV2aWNlCi0gKiBAYnB3OiBCaXRzIHBlciB3b3JkCi0gKgotICogVGhpcyBmdW5jdGlvbiBjaGVja3MgdG8gc2VlIGlmIHRoZSBTUEkgbWFzdGVyIGRyaXZlciBzdXBwb3J0cyBAYnB3LgotICoKLSAqIFJldHVybnM6Ci0gKiBUcnVlIGlmIEBicHcgaXMgc3VwcG9ydGVkLCBmYWxzZSBvdGhlcndpc2UuCi0gKi8KLWJvb2wgdGlueWRybV9zcGlfYnB3X3N1cHBvcnRlZChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCB1OCBicHcpCi17Ci0JdTMyIGJwd19tYXNrID0gc3BpLT5tYXN0ZXItPmJpdHNfcGVyX3dvcmRfbWFzazsKLQotCWlmIChicHcgPT0gOCkKLQkJcmV0dXJuIHRydWU7Ci0KLQlpZiAoIWJwd19tYXNrKSB7Ci0JCWRldl93YXJuX29uY2UoJnNwaS0+ZGV2LAotCQkJICAgICAgImJpdHNfcGVyX3dvcmRfbWFzayBub3Qgc2V0LCBhc3N1bWUgOC1iaXQgb25seVxuIik7Ci0JCXJldHVybiBmYWxzZTsKLQl9Ci0KLQlpZiAoYnB3X21hc2sgJiBTUElfQlBXX01BU0soYnB3KSkKLQkJcmV0dXJuIHRydWU7Ci0KLQlyZXR1cm4gZmFsc2U7Ci19Ci1FWFBPUlRfU1lNQk9MKHRpbnlkcm1fc3BpX2Jwd19zdXBwb3J0ZWQpOwotCi1zdGF0aWMgdm9pZAotdGlueWRybV9kYmdfc3BpX3ByaW50KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBzcGlfdHJhbnNmZXIgKnRyLAotCQkgICAgICBjb25zdCB2b2lkICpidWYsIGludCBpZHgsIGJvb2wgdHgpCi17Ci0JdTMyIHNwZWVkX2h6ID0gdHItPnNwZWVkX2h6ID8gdHItPnNwZWVkX2h6IDogc3BpLT5tYXhfc3BlZWRfaHo7Ci0JY2hhciBsaW5lYnVmWzMgKiAzMl07Ci0KLQloZXhfZHVtcF90b19idWZmZXIoYnVmLCB0ci0+bGVuLCAxNiwKLQkJCSAgIERJVl9ST1VORF9VUCh0ci0+Yml0c19wZXJfd29yZCwgOCksCi0JCQkgICBsaW5lYnVmLCBzaXplb2YobGluZWJ1ZiksIGZhbHNlKTsKLQotCXByaW50ayhLRVJOX0RFQlVHCi0JICAgICAgICIgICAgdHIoJWkpOiBzcGVlZD0ldSVzLCBicHc9JWksIGxlbj0ldSwgJXNfYnVmPVslcyVzXVxuIiwgaWR4LAotCSAgICAgICBzcGVlZF9oeiA+IDEwMDAwMDAgPyBzcGVlZF9oeiAvIDEwMDAwMDAgOiBzcGVlZF9oeiAvIDEwMDAsCi0JICAgICAgIHNwZWVkX2h6ID4gMTAwMDAwMCA/ICJNSHoiIDogImtIeiIsIHRyLT5iaXRzX3Blcl93b3JkLCB0ci0+bGVuLAotCSAgICAgICB0eCA/ICJ0eCIgOiAicngiLCBsaW5lYnVmLCB0ci0+bGVuID4gMTYgPyAiIC4uLiIgOiAiIik7Ci19Ci0KLS8qIGNhbGxlZCB0aHJvdWdoIHRpbnlkcm1fZGJnX3NwaV9tZXNzYWdlKCkgKi8KLXZvaWQgX3Rpbnlkcm1fZGJnX3NwaV9tZXNzYWdlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBzcGlfbWVzc2FnZSAqbSkKLXsKLQlzdHJ1Y3Qgc3BpX3RyYW5zZmVyICp0bXA7Ci0JaW50IGkgPSAwOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXAsICZtLT50cmFuc2ZlcnMsIHRyYW5zZmVyX2xpc3QpIHsKLQotCQlpZiAodG1wLT50eF9idWYpCi0JCQl0aW55ZHJtX2RiZ19zcGlfcHJpbnQoc3BpLCB0bXAsIHRtcC0+dHhfYnVmLCBpLCB0cnVlKTsKLQkJaWYgKHRtcC0+cnhfYnVmKQotCQkJdGlueWRybV9kYmdfc3BpX3ByaW50KHNwaSwgdG1wLCB0bXAtPnJ4X2J1ZiwgaSwgZmFsc2UpOwotCQlpKys7Ci0JfQotfQotRVhQT1JUX1NZTUJPTChfdGlueWRybV9kYmdfc3BpX21lc3NhZ2UpOwotCi0vKioKLSAqIHRpbnlkcm1fc3BpX3RyYW5zZmVyIC0gU1BJIHRyYW5zZmVyIGhlbHBlcgotICogQHNwaTogU1BJIGRldmljZQotICogQHNwZWVkX2h6OiBPdmVycmlkZSBzcGVlZCAob3B0aW9uYWwpCi0gKiBAaGVhZGVyOiBPcHRpb25hbCBoZWFkZXIgdHJhbnNmZXIKLSAqIEBicHc6IEJpdHMgcGVyIHdvcmQKLSAqIEBidWY6IEJ1ZmZlciB0byB0cmFuc2ZlcgotICogQGxlbjogQnVmZmVyIGxlbmd0aAotICoKLSAqIFRoaXMgU1BJIHRyYW5zZmVyIGhlbHBlciBicmVha3MgdXAgdGhlIHRyYW5zZmVyIG9mIEBidWYgaW50byBjaHVua3Mgd2hpY2gKLSAqIHRoZSBTUEkgbWFzdGVyIGRyaXZlciBjYW4gaGFuZGxlLiBJZiB0aGUgbWFjaGluZSBpcyBMaXR0bGUgRW5kaWFuIGFuZCB0aGUKLSAqIFNQSSBtYXN0ZXIgZHJpdmVyIGRvZXNuJ3Qgc3VwcG9ydCAxNiBiaXRzIHBlciB3b3JkLCBpdCBzd2FwcyB0aGUgYnl0ZXMgYW5kCi0gKiBkb2VzIGEgOC1iaXQgdHJhbnNmZXIuCi0gKiBJZiBAaGVhZGVyIGlzIHNldCwgaXQgaXMgcHJlcGVuZGVkIHRvIGVhY2ggU1BJIG1lc3NhZ2UuCi0gKgotICogUmV0dXJuczoKLSAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgdGlueWRybV9zcGlfdHJhbnNmZXIoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTMyIHNwZWVkX2h6LAotCQkJIHN0cnVjdCBzcGlfdHJhbnNmZXIgKmhlYWRlciwgdTggYnB3LCBjb25zdCB2b2lkICpidWYsCi0JCQkgc2l6ZV90IGxlbikKLXsKLQlzdHJ1Y3Qgc3BpX3RyYW5zZmVyIHRyID0gewotCQkuYml0c19wZXJfd29yZCA9IGJwdywKLQkJLnNwZWVkX2h6ID0gc3BlZWRfaHosCi0JfTsKLQlzdHJ1Y3Qgc3BpX21lc3NhZ2UgbTsKLQl1MTYgKnN3YXBfYnVmID0gTlVMTDsKLQlzaXplX3QgbWF4X2NodW5rOwotCXNpemVfdCBjaHVuazsKLQlpbnQgcmV0ID0gMDsKLQotCWlmIChXQVJOX09OX09OQ0UoYnB3ICE9IDggJiYgYnB3ICE9IDE2KSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQltYXhfY2h1bmsgPSB0aW55ZHJtX3NwaV9tYXhfdHJhbnNmZXJfc2l6ZShzcGksIDApOwotCi0JaWYgKGRybV9kZWJ1ZyAmIERSTV9VVF9EUklWRVIpCi0JCXByX2RlYnVnKCJbZHJtOiVzXSBicHc9JXUsIG1heF9jaHVuaz0lenUsIHRyYW5zZmVyczpcbiIsCi0JCQkgX19mdW5jX18sIGJwdywgbWF4X2NodW5rKTsKLQotCWlmIChicHcgPT0gMTYgJiYgIXRpbnlkcm1fc3BpX2Jwd19zdXBwb3J0ZWQoc3BpLCAxNikpIHsKLQkJdHIuYml0c19wZXJfd29yZCA9IDg7Ci0JCWlmICh0aW55ZHJtX21hY2hpbmVfbGl0dGxlX2VuZGlhbigpKSB7Ci0JCQlzd2FwX2J1ZiA9IGttYWxsb2MobWluKGxlbiwgbWF4X2NodW5rKSwgR0ZQX0tFUk5FTCk7Ci0JCQlpZiAoIXN3YXBfYnVmKQotCQkJCXJldHVybiAtRU5PTUVNOwotCQl9Ci0JfQotCi0Jc3BpX21lc3NhZ2VfaW5pdCgmbSk7Ci0JaWYgKGhlYWRlcikKLQkJc3BpX21lc3NhZ2VfYWRkX3RhaWwoaGVhZGVyLCAmbSk7Ci0Jc3BpX21lc3NhZ2VfYWRkX3RhaWwoJnRyLCAmbSk7Ci0KLQl3aGlsZSAobGVuKSB7Ci0JCWNodW5rID0gbWluKGxlbiwgbWF4X2NodW5rKTsKLQotCQl0ci50eF9idWYgPSBidWY7Ci0JCXRyLmxlbiA9IGNodW5rOwotCi0JCWlmIChzd2FwX2J1ZikgewotCQkJY29uc3QgdTE2ICpidWYxNiA9IGJ1ZjsKLQkJCXVuc2lnbmVkIGludCBpOwotCi0JCQlmb3IgKGkgPSAwOyBpIDwgY2h1bmsgLyAyOyBpKyspCi0JCQkJc3dhcF9idWZbaV0gPSBzd2FiMTYoYnVmMTZbaV0pOwotCi0JCQl0ci50eF9idWYgPSBzd2FwX2J1ZjsKLQkJfQotCi0JCWJ1ZiArPSBjaHVuazsKLQkJbGVuIC09IGNodW5rOwotCi0JCXRpbnlkcm1fZGJnX3NwaV9tZXNzYWdlKHNwaSwgJm0pOwotCQlyZXQgPSBzcGlfc3luYyhzcGksICZtKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MKHRpbnlkcm1fc3BpX3RyYW5zZmVyKTsKLQotI2VuZGlmIC8qIENPTkZJR19TUEkgKi8KLQotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLXBpcGUuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1waXBlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkNzk4ZmQ5Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1waXBlLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgTm9yYWxmIFRyw7hubmVzCi0gKi8KLQotI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgotI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgotI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KLQotc3RydWN0IHRpbnlkcm1fY29ubmVjdG9yIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBiYXNlOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIG1vZGU7Ci19OwotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aW55ZHJtX2Nvbm5lY3RvciAqCi10b190aW55ZHJtX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQotewotCXJldHVybiBjb250YWluZXJfb2YoY29ubmVjdG9yLCBzdHJ1Y3QgdGlueWRybV9jb25uZWN0b3IsIGJhc2UpOwotfQotCi1zdGF0aWMgaW50IHRpbnlkcm1fY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQotewotCXN0cnVjdCB0aW55ZHJtX2Nvbm5lY3RvciAqdGNvbm4gPSB0b190aW55ZHJtX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwotCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJnRjb25uLT5tb2RlKTsKLQlpZiAoIW1vZGUpIHsKLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZHVwbGljYXRlIG1vZGVcbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAobW9kZS0+bmFtZVswXSA9PSAnXDAnKQotCQlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKLQotCW1vZGUtPnR5cGUgfD0gRFJNX01PREVfVFlQRV9QUkVGRVJSRUQ7Ci0JZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwotCi0JaWYgKG1vZGUtPndpZHRoX21tKSB7Ci0JCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07Ci0JCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKLQl9Ci0KLQlyZXR1cm4gMTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB0aW55ZHJtX2Nvbm5lY3Rvcl9oZnVuY3MgPSB7Ci0JLmdldF9tb2RlcyA9IHRpbnlkcm1fY29ubmVjdG9yX2dldF9tb2RlcywKLX07Ci0KLXN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCi10aW55ZHJtX2Nvbm5lY3Rvcl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKLXsKLQlpZiAoZHJtX2Rldl9pc191bnBsdWdnZWQoY29ubmVjdG9yLT5kZXYpKQotCQlyZXR1cm4gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7Ci0KLQlyZXR1cm4gY29ubmVjdG9yLT5zdGF0dXM7Ci19Ci0KLXN0YXRpYyB2b2lkIHRpbnlkcm1fY29ubmVjdG9yX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlzdHJ1Y3QgdGlueWRybV9jb25uZWN0b3IgKnRjb25uID0gdG9fdGlueWRybV9jb25uZWN0b3IoY29ubmVjdG9yKTsKLQotCWRybV9jb25uZWN0b3JfY2xlYW51cChjb25uZWN0b3IpOwotCWtmcmVlKHRjb25uKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHRpbnlkcm1fY29ubmVjdG9yX2Z1bmNzID0gewotCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9yZXNldCwKLQkuZGV0ZWN0ID0gdGlueWRybV9jb25uZWN0b3JfZGV0ZWN0LAotCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAotCS5kZXN0cm95ID0gdGlueWRybV9jb25uZWN0b3JfZGVzdHJveSwKLQkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsCi0JLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCi19OwotCi1zdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqCi10aW55ZHJtX2Nvbm5lY3Rvcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKLQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKLQkJCSBpbnQgY29ubmVjdG9yX3R5cGUpCi17Ci0Jc3RydWN0IHRpbnlkcm1fY29ubmVjdG9yICp0Y29ubjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwotCWludCByZXQ7Ci0KLQl0Y29ubiA9IGt6YWxsb2Moc2l6ZW9mKCp0Y29ubiksIEdGUF9LRVJORUwpOwotCWlmICghdGNvbm4pCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCi0JZHJtX21vZGVfY29weSgmdGNvbm4tPm1vZGUsIG1vZGUpOwotCWNvbm5lY3RvciA9ICZ0Y29ubi0+YmFzZTsKLQotCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsICZ0aW55ZHJtX2Nvbm5lY3Rvcl9oZnVuY3MpOwotCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChkcm0sIGNvbm5lY3RvciwgJnRpbnlkcm1fY29ubmVjdG9yX2Z1bmNzLAotCQkJCSBjb25uZWN0b3JfdHlwZSk7Ci0JaWYgKHJldCkgewotCQlrZnJlZSh0Y29ubik7Ci0JCXJldHVybiBFUlJfUFRSKHJldCk7Ci0JfQotCi0JY29ubmVjdG9yLT5zdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKLQotCXJldHVybiBjb25uZWN0b3I7Ci19Ci0KLXN0YXRpYyBpbnQgdGlueWRybV9yb3RhdGVfbW9kZShzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgcm90YXRpb24pCi17Ci0JaWYgKHJvdGF0aW9uID09IDAgfHwgcm90YXRpb24gPT0gMTgwKSB7Ci0JCXJldHVybiAwOwotCX0gZWxzZSBpZiAocm90YXRpb24gPT0gOTAgfHwgcm90YXRpb24gPT0gMjcwKSB7Ci0JCXN3YXAobW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKLQkJc3dhcChtb2RlLT5oc3luY19zdGFydCwgbW9kZS0+dnN5bmNfc3RhcnQpOwotCQlzd2FwKG1vZGUtPmhzeW5jX2VuZCwgbW9kZS0+dnN5bmNfZW5kKTsKLQkJc3dhcChtb2RlLT5odG90YWwsIG1vZGUtPnZ0b3RhbCk7Ci0JCXN3YXAobW9kZS0+d2lkdGhfbW0sIG1vZGUtPmhlaWdodF9tbSk7Ci0JCXJldHVybiAwOwotCX0gZWxzZSB7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLX0KLQotLyoqCi0gKiB0aW55ZHJtX2Rpc3BsYXlfcGlwZV9pbml0IC0gSW5pdGlhbGl6ZSBkaXNwbGF5IHBpcGUKLSAqIEBkcm06IERSTSBkZXZpY2UKLSAqIEBwaXBlOiBEaXNwbGF5IHBpcGUKLSAqIEBmdW5jczogRGlzcGxheSBwaXBlIGZ1bmN0aW9ucwotICogQGNvbm5lY3Rvcl90eXBlOiBDb25uZWN0b3IgdHlwZQotICogQGZvcm1hdHM6IEFycmF5IG9mIHN1cHBvcnRlZCBmb3JtYXRzIChEUk1fRk9STUFUXF9cKikKLSAqIEBmb3JtYXRfY291bnQ6IE51bWJlciBvZiBlbGVtZW50cyBpbiBAZm9ybWF0cwotICogQG1vZGU6IFN1cHBvcnRlZCBtb2RlCi0gKiBAcm90YXRpb246IEluaXRpYWwgQG1vZGUgcm90YXRpb24gaW4gZGVncmVlcyBDb3VudGVyIENsb2NrIFdpc2UKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHNldHMgdXAgYSAmZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgd2l0aCBhICZkcm1fY29ubmVjdG9yIHRoYXQKLSAqIGhhcyBvbmUgZml4ZWQgJmRybV9kaXNwbGF5X21vZGUgd2hpY2ggaXMgcm90YXRlZCBhY2NvcmRpbmcgdG8gQHJvdGF0aW9uLgotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKLQkJCSAgICAgIHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyAqZnVuY3MsCi0JCQkgICAgICBpbnQgY29ubmVjdG9yX3R5cGUsCi0JCQkgICAgICBjb25zdCB1aW50MzJfdCAqZm9ybWF0cywKLQkJCSAgICAgIHVuc2lnbmVkIGludCBmb3JtYXRfY291bnQsCi0JCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKLQkJCSAgICAgIHVuc2lnbmVkIGludCByb3RhdGlvbikKLXsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlX2NvcHk7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKLQlpbnQgcmV0OwotCXN0YXRpYyBjb25zdCB1aW50NjRfdCBtb2RpZmllcnNbXSA9IHsKLQkJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAotCQlEUk1fRk9STUFUX01PRF9JTlZBTElECi0JfTsKLQotCWRybV9tb2RlX2NvcHkoJm1vZGVfY29weSwgbW9kZSk7Ci0JcmV0ID0gdGlueWRybV9yb3RhdGVfbW9kZSgmbW9kZV9jb3B5LCByb3RhdGlvbik7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoIklsbGVnYWwgcm90YXRpb24gdmFsdWUgJXVcbiIsIHJvdGF0aW9uKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZHJtLT5tb2RlX2NvbmZpZy5taW5fd2lkdGggPSBtb2RlX2NvcHkuaGRpc3BsYXk7Ci0JZHJtLT5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSBtb2RlX2NvcHkuaGRpc3BsYXk7Ci0JZHJtLT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gbW9kZV9jb3B5LnZkaXNwbGF5OwotCWRybS0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IG1vZGVfY29weS52ZGlzcGxheTsKLQotCWNvbm5lY3RvciA9IHRpbnlkcm1fY29ubmVjdG9yX2NyZWF0ZShkcm0sICZtb2RlX2NvcHksIGNvbm5lY3Rvcl90eXBlKTsKLQlpZiAoSVNfRVJSKGNvbm5lY3RvcikpCi0JCXJldHVybiBQVFJfRVJSKGNvbm5lY3Rvcik7Ci0KLQlyZXR1cm4gZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfaW5pdChkcm0sIHBpcGUsIGZ1bmNzLCBmb3JtYXRzLAotCQkJCQkgICAgZm9ybWF0X2NvdW50LCBtb2RpZmllcnMsIGNvbm5lY3Rvcik7Ci19Ci1FWFBPUlRfU1lNQk9MKHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaHg4MzU3ZC5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaHg4MzU3ZC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzczZDBmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2h4ODM1N2QuYworKysgL2Rldi9udWxsCkBAIC0xLDMwNCArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKLS8qCi0gKiBEUk0gZHJpdmVyIGZvciB0aGUgSFg4MzU3RCBMQ0QgY29udHJvbGxlcgotICoKLSAqIENvcHlyaWdodCAyMDE4IEJyb2FkY29tCi0gKiBDb3B5cmlnaHQgMjAxOCBEYXZpZCBMZWNobmVyIDxkYXZpZEBsZWNobm9sb2d5LmNvbT4KLSAqIENvcHlyaWdodCAyMDE2IE5vcmFsZiBUcsO4bm5lcwotICogQ29weXJpZ2h0IChDKSAyMDE1IEFkYWZydWl0IEluZHVzdHJpZXMKLSAqIENvcHlyaWdodCAoQykgMjAxMyBDaHJpc3RpYW4gVm9nZWxnc2FuZwotICovCi0KLSNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9wcm9wZXJ0eS5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KLQotI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS90aW55ZHJtL21pcGktZGJpLmg+Ci0jaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJzLmg+Ci0jaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+Ci0KLSNkZWZpbmUgSFg4MzU3RF9TRVRPU0MgMHhiMAotI2RlZmluZSBIWDgzNTdEX1NFVFBPV0VSIDB4YjEKLSNkZWZpbmUgSFg4MzU3RF9TRVRSR0IgMHhiMwotI2RlZmluZSBIWDgzNTdEX1NFVENZQyAweGIzCi0jZGVmaW5lIEhYODM1N0RfU0VUQ09NIDB4YjYKLSNkZWZpbmUgSFg4MzU3RF9TRVRFWFRDIDB4YjkKLSNkZWZpbmUgSFg4MzU3RF9TRVRTVEJBIDB4YzAKLSNkZWZpbmUgSFg4MzU3RF9TRVRQQU5FTCAweGNjCi0jZGVmaW5lIEhYODM1N0RfU0VUR0FNTUEgMHhlMAotCi0jZGVmaW5lIEhYODM1N0RfTUFEQ1RMX01ZICAweDgwCi0jZGVmaW5lIEhYODM1N0RfTUFEQ1RMX01YICAweDQwCi0jZGVmaW5lIEhYODM1N0RfTUFEQ1RMX01WICAweDIwCi0jZGVmaW5lIEhYODM1N0RfTUFEQ1RMX01MICAweDEwCi0jZGVmaW5lIEhYODM1N0RfTUFEQ1RMX1JHQiAweDAwCi0jZGVmaW5lIEhYODM1N0RfTUFEQ1RMX0JHUiAweDA4Ci0jZGVmaW5lIEhYODM1N0RfTUFEQ1RMX01IICAweDA0Ci0KLXN0YXRpYyB2b2lkIHl4MjQwcXYyOV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAotCQkJICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQotewotCXN0cnVjdCBtaXBpX2RiaSAqbWlwaSA9IGRybV90b19taXBpX2RiaShwaXBlLT5jcnRjLmRldik7Ci0JdTggYWRkcl9tb2RlOwotCWludCByZXQsIGlkeDsKLQotCWlmICghZHJtX2Rldl9lbnRlcihwaXBlLT5jcnRjLmRldiwgJmlkeCkpCi0JCXJldHVybjsKLQotCURSTV9ERUJVR19LTVMoIlxuIik7Ci0KLQlyZXQgPSBtaXBpX2RiaV9wb3dlcm9uX2NvbmRpdGlvbmFsX3Jlc2V0KG1pcGkpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIG91dF9leGl0OwotCWlmIChyZXQgPT0gMSkKLQkJZ290byBvdXRfZW5hYmxlOwotCi0JLyogc2V0ZXh0YyAqLwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSFg4MzU3RF9TRVRFWFRDLCAweEZGLCAweDgzLCAweDU3KTsKLQltc2xlZXAoMTUwKTsKLQotCS8qIHNldFJHQiB3aGljaCBhbHNvIGVuYWJsZXMgU0RPICovCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBIWDgzNTdEX1NFVFJHQiwgMHgwMCwgMHgwMCwgMHgwNiwgMHgwNik7Ci0KLQkvKiAtMS41MlYgKi8KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIEhYODM1N0RfU0VUQ09NLCAweDI1KTsKLQotCS8qIE5vcm1hbCBtb2RlIDcwSHosIElkbGUgbW9kZSA1NSBIeiAqLwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSFg4MzU3RF9TRVRPU0MsIDB4NjgpOwotCi0JLyogU2V0IFBhbmVsIC0gQkdSLCBHYXRlIGRpcmVjdGlvbiBzd2FwcGVkICovCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBIWDgzNTdEX1NFVFBBTkVMLCAweDA1KTsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSFg4MzU3RF9TRVRQT1dFUiwKLQkJCSAweDAwLCAgLyogTm90IGRlZXAgc3RhbmRieSAqLwotCQkJIDB4MTUsICAvKiBCVCAqLwotCQkJIDB4MUMsICAvKiBWU1BSICovCi0JCQkgMHgxQywgIC8qIFZTTlIgKi8KLQkJCSAweDgzLCAgLyogQVAgKi8KLQkJCSAweEFBKTsgIC8qIEZTICovCi0KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIEhYODM1N0RfU0VUU1RCQSwKLQkJCSAweDUwLCAgLyogT1BPTiBub3JtYWwgKi8KLQkJCSAweDUwLCAgLyogT1BPTiBpZGxlICovCi0JCQkgMHgwMSwgIC8qIFNUQkEgKi8KLQkJCSAweDNDLCAgLyogU1RCQSAqLwotCQkJIDB4MUUsICAvKiBTVEJBICovCi0JCQkgMHgwOCk7ICAvKiBHRU4gKi8KLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSFg4MzU3RF9TRVRDWUMsCi0JCQkgMHgwMiwgIC8qIE5XIDB4MDIgKi8KLQkJCSAweDQwLCAgLyogUlROICovCi0JCQkgMHgwMCwgIC8qIERJViAqLwotCQkJIDB4MkEsICAvKiBEVU0gKi8KLQkJCSAweDJBLCAgLyogRFVNICovCi0JCQkgMHgwRCwgIC8qIEdET04gKi8KLQkJCSAweDc4KTsgIC8qIEdET0ZGICovCi0KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIEhYODM1N0RfU0VUR0FNTUEsCi0JCQkgMHgwMiwKLQkJCSAweDBBLAotCQkJIDB4MTEsCi0JCQkgMHgxZCwKLQkJCSAweDIzLAotCQkJIDB4MzUsCi0JCQkgMHg0MSwKLQkJCSAweDRiLAotCQkJIDB4NGIsCi0JCQkgMHg0MiwKLQkJCSAweDNBLAotCQkJIDB4MjcsCi0JCQkgMHgxQiwKLQkJCSAweDA4LAotCQkJIDB4MDksCi0JCQkgMHgwMywKLQkJCSAweDAyLAotCQkJIDB4MEEsCi0JCQkgMHgxMSwKLQkJCSAweDFkLAotCQkJIDB4MjMsCi0JCQkgMHgzNSwKLQkJCSAweDQxLAotCQkJIDB4NGIsCi0JCQkgMHg0YiwKLQkJCSAweDQyLAotCQkJIDB4M0EsCi0JCQkgMHgyNywKLQkJCSAweDFCLAotCQkJIDB4MDgsCi0JCQkgMHgwOSwKLQkJCSAweDAzLAotCQkJIDB4MDAsCi0JCQkgMHgwMSk7Ci0KLQkvKiAxNiBiaXQgKi8KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIE1JUElfRENTX1NFVF9QSVhFTF9GT1JNQVQsCi0JCQkgTUlQSV9EQ1NfUElYRUxfRk1UXzE2QklUKTsKLQotCS8qIFRFIG9mZiAqLwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX1RFQVJfT04sIDB4MDApOwotCi0JLyogdGVhciBsaW5lICovCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfVEVBUl9TQ0FOTElORSwgMHgwMCwgMHgwMik7Ci0KLQkvKiBFeGl0IFNsZWVwICovCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19FWElUX1NMRUVQX01PREUpOwotCW1zbGVlcCgxNTApOwotCi0JLyogZGlzcGxheSBvbiAqLwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT04pOwotCXVzbGVlcF9yYW5nZSg1MDAwLCA3MDAwKTsKLQotb3V0X2VuYWJsZToKLQlzd2l0Y2ggKG1pcGktPnJvdGF0aW9uKSB7Ci0JZGVmYXVsdDoKLQkJYWRkcl9tb2RlID0gSFg4MzU3RF9NQURDVExfTVggfCBIWDgzNTdEX01BRENUTF9NWTsKLQkJYnJlYWs7Ci0JY2FzZSA5MDoKLQkJYWRkcl9tb2RlID0gSFg4MzU3RF9NQURDVExfTVYgfCBIWDgzNTdEX01BRENUTF9NWTsKLQkJYnJlYWs7Ci0JY2FzZSAxODA6Ci0JCWFkZHJfbW9kZSA9IDA7Ci0JCWJyZWFrOwotCWNhc2UgMjcwOgotCQlhZGRyX21vZGUgPSBIWDgzNTdEX01BRENUTF9NViB8IEhYODM1N0RfTUFEQ1RMX01YOwotCQlicmVhazsKLQl9Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfQUREUkVTU19NT0RFLCBhZGRyX21vZGUpOwotCW1pcGlfZGJpX2VuYWJsZV9mbHVzaChtaXBpLCBjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSk7Ci1vdXRfZXhpdDoKLQlkcm1fZGV2X2V4aXQoaWR4KTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyBoeDgzNTdkX3BpcGVfZnVuY3MgPSB7Ci0JLmVuYWJsZSA9IHl4MjQwcXYyOV9lbmFibGUsCi0JLmRpc2FibGUgPSBtaXBpX2RiaV9waXBlX2Rpc2FibGUsCi0JLnVwZGF0ZSA9IG1pcGlfZGJpX3BpcGVfdXBkYXRlLAotCS5wcmVwYXJlX2ZiID0gZHJtX2dlbV9mYl9zaW1wbGVfZGlzcGxheV9waXBlX3ByZXBhcmVfZmIsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgeXgzNTBodjE1X21vZGUgPSB7Ci0JRFJNX1NJTVBMRV9NT0RFKDMyMCwgNDgwLCA2MCwgNzUpLAotfTsKLQotREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoaHg4MzU3ZF9mb3BzKTsKLQotc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGh4ODM1N2RfZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfUFJJTUUgfCBEUklWRVJfQVRPTUlDLAotCS5mb3BzCQkJPSAmaHg4MzU3ZF9mb3BzLAotCS5yZWxlYXNlCQk9IG1pcGlfZGJpX3JlbGVhc2UsCi0JRFJNX0dFTV9DTUFfVk1BUF9EUklWRVJfT1BTLAotCS5kZWJ1Z2ZzX2luaXQJCT0gbWlwaV9kYmlfZGVidWdmc19pbml0LAotCS5uYW1lCQkJPSAiaHg4MzU3ZCIsCi0JLmRlc2MJCQk9ICJIWDgzNTdEIiwKLQkuZGF0ZQkJCT0gIjIwMTgxMDIzIiwKLQkubWFqb3IJCQk9IDEsCi0JLm1pbm9yCQkJPSAwLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaHg4MzU3ZF9vZl9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAiYWRhZnJ1aXQseXgzNTBodjE1IiB9LAotCXsgfQotfTsKLU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGh4ODM1N2Rfb2ZfbWF0Y2gpOwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgaHg4MzU3ZF9pZFtdID0gewotCXsgInl4MzUwaHYxNSIsIDAgfSwKLQl7IH0KLX07Ci1NT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgaHg4MzU3ZF9pZCk7Ci0KLXN0YXRpYyBpbnQgaHg4MzU3ZF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwotCXN0cnVjdCBtaXBpX2RiaSAqbWlwaTsKLQlzdHJ1Y3QgZ3Bpb19kZXNjICpkYzsKLQl1MzIgcm90YXRpb24gPSAwOwotCWludCByZXQ7Ci0KLQltaXBpID0ga3phbGxvYyhzaXplb2YoKm1pcGkpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW1pcGkpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZHJtID0gJm1pcGktPmRybTsKLQlyZXQgPSBkZXZtX2RybV9kZXZfaW5pdChkZXYsIGRybSwgJmh4ODM1N2RfZHJpdmVyKTsKLQlpZiAocmV0KSB7Ci0JCWtmcmVlKG1pcGkpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7Ci0KLQlkYyA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgImRjIiwgR1BJT0RfT1VUX0xPVyk7Ci0JaWYgKElTX0VSUihkYykpIHsKLQkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZ2V0IGdwaW8gJ2RjJ1xuIik7Ci0JCXJldHVybiBQVFJfRVJSKGRjKTsKLQl9Ci0KLQltaXBpLT5iYWNrbGlnaHQgPSBkZXZtX29mX2ZpbmRfYmFja2xpZ2h0KGRldik7Ci0JaWYgKElTX0VSUihtaXBpLT5iYWNrbGlnaHQpKQotCQlyZXR1cm4gUFRSX0VSUihtaXBpLT5iYWNrbGlnaHQpOwotCi0JZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwgInJvdGF0aW9uIiwgJnJvdGF0aW9uKTsKLQotCXJldCA9IG1pcGlfZGJpX3NwaV9pbml0KHNwaSwgbWlwaSwgZGMpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXQgPSBtaXBpX2RiaV9pbml0KG1pcGksICZoeDgzNTdkX3BpcGVfZnVuY3MsICZ5eDM1MGh2MTVfbW9kZSwgcm90YXRpb24pOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlkcm1fbW9kZV9jb25maWdfcmVzZXQoZHJtKTsKLQotCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0Jc3BpX3NldF9kcnZkYXRhKHNwaSwgZHJtKTsKLQotCWRybV9mYmRldl9nZW5lcmljX3NldHVwKGRybSwgMCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBoeDgzNTdkX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKLQotCWRybV9kZXZfdW5wbHVnKGRybSk7Ci0JZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oZHJtKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBoeDgzNTdkX3NodXRkb3duKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0JZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oc3BpX2dldF9kcnZkYXRhKHNwaSkpOwotfQotCi1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgaHg4MzU3ZF9zcGlfZHJpdmVyID0gewotCS5kcml2ZXIgPSB7Ci0JCS5uYW1lID0gImh4ODM1N2QiLAotCQkub2ZfbWF0Y2hfdGFibGUgPSBoeDgzNTdkX29mX21hdGNoLAotCX0sCi0JLmlkX3RhYmxlID0gaHg4MzU3ZF9pZCwKLQkucHJvYmUgPSBoeDgzNTdkX3Byb2JlLAotCS5yZW1vdmUgPSBoeDgzNTdkX3JlbW92ZSwKLQkuc2h1dGRvd24gPSBoeDgzNTdkX3NodXRkb3duLAotfTsKLW1vZHVsZV9zcGlfZHJpdmVyKGh4ODM1N2Rfc3BpX2RyaXZlcik7Ci0KLU1PRFVMRV9ERVNDUklQVElPTigiSFg4MzU3RCBEUk0gZHJpdmVyIik7Ci1NT0RVTEVfQVVUSE9SKCJFcmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0PiIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTY5MDE5Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkyMjUuYworKysgL2Rldi9udWxsCkBAIC0xLDQ2NyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgotLyoKLSAqIERSTSBkcml2ZXIgZm9yIElsaXRlayBJTEk5MjI1IHBhbmVscwotICoKLSAqIENvcHlyaWdodCAyMDE3IERhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPgotICoKLSAqIFNvbWUgY29kZSBjb3BpZWQgZnJvbSBtaXBpLWRiaS5jCi0gKiBDb3B5cmlnaHQgMjAxNiBOb3JhbGYgVHLDuG5uZXMKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgotI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgotCi0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fcmVjdC5oPgotI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+Ci0jaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaD4KLSNpbmNsdWRlIDxkcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaD4KLQotI2RlZmluZSBJTEk5MjI1X0RSSVZFUl9SRUFEX0NPREUJMHgwMAotI2RlZmluZSBJTEk5MjI1X0RSSVZFUl9PVVRQVVRfQ09OVFJPTAkweDAxCi0jZGVmaW5lIElMSTkyMjVfTENEX0FDX0RSSVZJTkdfQ09OVFJPTAkweDAyCi0jZGVmaW5lIElMSTkyMjVfRU5UUllfTU9ERQkJMHgwMwotI2RlZmluZSBJTEk5MjI1X0RJU1BMQVlfQ09OVFJPTF8xCTB4MDcKLSNkZWZpbmUgSUxJOTIyNV9CTEFOS19QRVJJT0RfQ09OVFJPTF8xCTB4MDgKLSNkZWZpbmUgSUxJOTIyNV9GUkFNRV9DWUNMRV9DT05UUk9MCTB4MGIKLSNkZWZpbmUgSUxJOTIyNV9JTlRFUkZBQ0VfQ09OVFJPTAkweDBjCi0jZGVmaW5lIElMSTkyMjVfT1NDSUxMQVRJT05fQ09OVFJPTAkweDBmCi0jZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF8xCQkweDEwCi0jZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF8yCQkweDExCi0jZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF8zCQkweDEyCi0jZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF80CQkweDEzCi0jZGVmaW5lIElMSTkyMjVfUE9XRVJfQ09OVFJPTF81CQkweDE0Ci0jZGVmaW5lIElMSTkyMjVfVkNJX1JFQ1lDTElORwkJMHgxNQotI2RlZmluZSBJTEk5MjI1X1JBTV9BRERSRVNTX1NFVF8xCTB4MjAKLSNkZWZpbmUgSUxJOTIyNV9SQU1fQUREUkVTU19TRVRfMgkweDIxCi0jZGVmaW5lIElMSTkyMjVfV1JJVEVfREFUQV9UT19HUkFNCTB4MjIKLSNkZWZpbmUgSUxJOTIyNV9TT0ZUV0FSRV9SRVNFVAkJMHgyOAotI2RlZmluZSBJTEk5MjI1X0dBVEVfU0NBTl9DT05UUk9MCTB4MzAKLSNkZWZpbmUgSUxJOTIyNV9WRVJUSUNBTF9TQ1JPTExfMQkweDMxCi0jZGVmaW5lIElMSTkyMjVfVkVSVElDQUxfU0NST0xMXzIJMHgzMgotI2RlZmluZSBJTEk5MjI1X1ZFUlRJQ0FMX1NDUk9MTF8zCTB4MzMKLSNkZWZpbmUgSUxJOTIyNV9QQVJUSUFMX0RSSVZJTkdfUE9TXzEJMHgzNAotI2RlZmluZSBJTEk5MjI1X1BBUlRJQUxfRFJJVklOR19QT1NfMgkweDM1Ci0jZGVmaW5lIElMSTkyMjVfSE9SSVpfV0lORE9XX0FERFJfMQkweDM2Ci0jZGVmaW5lIElMSTkyMjVfSE9SSVpfV0lORE9XX0FERFJfMgkweDM3Ci0jZGVmaW5lIElMSTkyMjVfVkVSVF9XSU5ET1dfQUREUl8xCTB4MzgKLSNkZWZpbmUgSUxJOTIyNV9WRVJUX1dJTkRPV19BRERSXzIJMHgzOQotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMQkJMHg1MAotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMgkJMHg1MQotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMwkJMHg1MgotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNAkJMHg1MwotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNQkJMHg1NAotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNgkJMHg1NQotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNwkJMHg1NgotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfOAkJMHg1NwotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfOQkJMHg1OAotI2RlZmluZSBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMTAJMHg1OQotCi1zdGF0aWMgaW5saW5lIGludCBpbGk5MjI1X2NvbW1hbmQoc3RydWN0IG1pcGlfZGJpICptaXBpLCB1OCBjbWQsIHUxNiBkYXRhKQotewotCXU4IHBhclsyXSA9IHsgZGF0YSA+PiA4LCBkYXRhICYgMHhmZiB9OwotCi0JcmV0dXJuIG1pcGlfZGJpX2NvbW1hbmRfYnVmKG1pcGksIGNtZCwgcGFyLCAyKTsKLX0KLQotc3RhdGljIHZvaWQgaWxpOTIyNV9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgc3RydWN0IGRybV9yZWN0ICpyZWN0KQotewotCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKLQlzdHJ1Y3QgbWlwaV9kYmkgKm1pcGkgPSBkcm1fdG9fbWlwaV9kYmkoZmItPmRldik7Ci0JdW5zaWduZWQgaW50IGhlaWdodCA9IHJlY3QtPnkyIC0gcmVjdC0+eTE7Ci0JdW5zaWduZWQgaW50IHdpZHRoID0gcmVjdC0+eDIgLSByZWN0LT54MTsKLQlib29sIHN3YXAgPSBtaXBpLT5zd2FwX2J5dGVzOwotCXUxNiB4X3N0YXJ0LCB5X3N0YXJ0OwotCXUxNiB4MSwgeDIsIHkxLCB5MjsKLQlpbnQgaWR4LCByZXQgPSAwOwotCWJvb2wgZnVsbDsKLQl2b2lkICp0cjsKLQotCWlmICghbWlwaS0+ZW5hYmxlZCkKLQkJcmV0dXJuOwotCi0JaWYgKCFkcm1fZGV2X2VudGVyKGZiLT5kZXYsICZpZHgpKQotCQlyZXR1cm47Ci0KLQlmdWxsID0gd2lkdGggPT0gZmItPndpZHRoICYmIGhlaWdodCA9PSBmYi0+aGVpZ2h0OwotCi0JRFJNX0RFQlVHX0tNUygiRmx1c2hpbmcgW0ZCOiVkXSAiIERSTV9SRUNUX0ZNVCAiXG4iLCBmYi0+YmFzZS5pZCwgRFJNX1JFQ1RfQVJHKHJlY3QpKTsKLQotCWlmICghbWlwaS0+ZGMgfHwgIWZ1bGwgfHwgc3dhcCB8fAotCSAgICBmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9YUkdCODg4OCkgewotCQl0ciA9IG1pcGktPnR4X2J1ZjsKLQkJcmV0ID0gbWlwaV9kYmlfYnVmX2NvcHkobWlwaS0+dHhfYnVmLCBmYiwgcmVjdCwgc3dhcCk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycl9tc2c7Ci0JfSBlbHNlIHsKLQkJdHIgPSBjbWFfb2JqLT52YWRkcjsKLQl9Ci0KLQlzd2l0Y2ggKG1pcGktPnJvdGF0aW9uKSB7Ci0JZGVmYXVsdDoKLQkJeDEgPSByZWN0LT54MTsKLQkJeDIgPSByZWN0LT54MiAtIDE7Ci0JCXkxID0gcmVjdC0+eTE7Ci0JCXkyID0gcmVjdC0+eTIgLSAxOwotCQl4X3N0YXJ0ID0geDE7Ci0JCXlfc3RhcnQgPSB5MTsKLQkJYnJlYWs7Ci0JY2FzZSA5MDoKLQkJeDEgPSByZWN0LT55MTsKLQkJeDIgPSByZWN0LT55MiAtIDE7Ci0JCXkxID0gZmItPndpZHRoIC0gcmVjdC0+eDI7Ci0JCXkyID0gZmItPndpZHRoIC0gcmVjdC0+eDEgLSAxOwotCQl4X3N0YXJ0ID0geDE7Ci0JCXlfc3RhcnQgPSB5MjsKLQkJYnJlYWs7Ci0JY2FzZSAxODA6Ci0JCXgxID0gZmItPndpZHRoIC0gcmVjdC0+eDI7Ci0JCXgyID0gZmItPndpZHRoIC0gcmVjdC0+eDEgLSAxOwotCQl5MSA9IGZiLT5oZWlnaHQgLSByZWN0LT55MjsKLQkJeTIgPSBmYi0+aGVpZ2h0IC0gcmVjdC0+eTEgLSAxOwotCQl4X3N0YXJ0ID0geDI7Ci0JCXlfc3RhcnQgPSB5MjsKLQkJYnJlYWs7Ci0JY2FzZSAyNzA6Ci0JCXgxID0gZmItPmhlaWdodCAtIHJlY3QtPnkyOwotCQl4MiA9IGZiLT5oZWlnaHQgLSByZWN0LT55MSAtIDE7Ci0JCXkxID0gcmVjdC0+eDE7Ci0JCXkyID0gcmVjdC0+eDIgLSAxOwotCQl4X3N0YXJ0ID0geDI7Ci0JCXlfc3RhcnQgPSB5MTsKLQkJYnJlYWs7Ci0JfQotCi0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfSE9SSVpfV0lORE9XX0FERFJfMSwgeDIpOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X0hPUklaX1dJTkRPV19BRERSXzIsIHgxKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9WRVJUX1dJTkRPV19BRERSXzEsIHkyKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9WRVJUX1dJTkRPV19BRERSXzIsIHkxKTsKLQotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X1JBTV9BRERSRVNTX1NFVF8xLCB4X3N0YXJ0KTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9SQU1fQUREUkVTU19TRVRfMiwgeV9zdGFydCk7Ci0KLQlyZXQgPSBtaXBpX2RiaV9jb21tYW5kX2J1ZihtaXBpLCBJTEk5MjI1X1dSSVRFX0RBVEFfVE9fR1JBTSwgdHIsCi0JCQkJICAgd2lkdGggKiBoZWlnaHQgKiAyKTsKLWVycl9tc2c6Ci0JaWYgKHJldCkKLQkJZGV2X2Vycl9vbmNlKGZiLT5kZXYtPmRldiwgIkZhaWxlZCB0byB1cGRhdGUgZGlzcGxheSAlZFxuIiwgcmV0KTsKLQotCWRybV9kZXZfZXhpdChpZHgpOwotfQotCi1zdGF0aWMgdm9pZCBpbGk5MjI1X3BpcGVfdXBkYXRlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKLQkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwaXBlLT5wbGFuZS5zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmcGlwZS0+Y3J0YzsKLQlzdHJ1Y3QgZHJtX3JlY3QgcmVjdDsKLQotCWlmIChkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfbWVyZ2VkKG9sZF9zdGF0ZSwgc3RhdGUsICZyZWN0KSkKLQkJaWxpOTIyNV9mYl9kaXJ0eShzdGF0ZS0+ZmIsICZyZWN0KTsKLQotCWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQpIHsKLQkJc3Bpbl9sb2NrX2lycSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsKLQkJZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoY3J0YywgY3J0Yy0+c3RhdGUtPmV2ZW50KTsKLQkJc3Bpbl91bmxvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOwotCQljcnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOwotCX0KLX0KLQotc3RhdGljIHZvaWQgaWxpOTIyNV9waXBlX2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCi0JCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQotewotCXN0cnVjdCBtaXBpX2RiaSAqbWlwaSA9IGRybV90b19taXBpX2RiaShwaXBlLT5jcnRjLmRldik7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gcGlwZS0+Y3J0Yy5kZXYtPmRldjsKLQlzdHJ1Y3QgZHJtX3JlY3QgcmVjdCA9IHsKLQkJLngxID0gMCwKLQkJLngyID0gZmItPndpZHRoLAotCQkueTEgPSAwLAotCQkueTIgPSBmYi0+aGVpZ2h0LAotCX07Ci0JaW50IHJldCwgaWR4OwotCXU4IGFtX2lkOwotCi0JaWYgKCFkcm1fZGV2X2VudGVyKHBpcGUtPmNydGMuZGV2LCAmaWR4KSkKLQkJcmV0dXJuOwotCi0JRFJNX0RFQlVHX0tNUygiXG4iKTsKLQotCW1pcGlfZGJpX2h3X3Jlc2V0KG1pcGkpOwotCi0JLyoKLQkgKiBUaGVyZSBkb24ndCBzZWVtIHRvIGJlIHR3byBleGFtcGxlIGluaXQgc2VxdWVuY2VzIHRoYXQgbWF0Y2gsIHNvCi0JICogdXNpbmcgdGhlIG9uZSBmcm9tIHRoZSBwb3B1bGFyIEFyZHVpbm8gbGlicmFyeSBmb3IgdGhpcyBkaXNwbGF5LgotCSAqIGh0dHBzOi8vZ2l0aHViLmNvbS9Oa2F3dS9URlRfMjJfSUxJOTIyNS9ibG9iL21hc3Rlci9zcmMvVEZUXzIyX0lMSTkyMjUuY3BwCi0JICovCi0KLQlyZXQgPSBpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzEsIDB4MDAwMCk7Ci0JaWYgKHJldCkgewotCQlEUk1fREVWX0VSUk9SKGRldiwgIkVycm9yIHNlbmRpbmcgY29tbWFuZCAlZFxuIiwgcmV0KTsKLQkJZ290byBvdXRfZXhpdDsKLQl9Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfUE9XRVJfQ09OVFJPTF8yLCAweDAwMDApOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X1BPV0VSX0NPTlRST0xfMywgMHgwMDAwKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzQsIDB4MDAwMCk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfUE9XRVJfQ09OVFJPTF81LCAweDAwMDApOwotCi0JbXNsZWVwKDQwKTsKLQotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X1BPV0VSX0NPTlRST0xfMiwgMHgwMDE4KTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzMsIDB4NjEyMSk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfUE9XRVJfQ09OVFJPTF80LCAweDAwNmYpOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X1BPV0VSX0NPTlRST0xfNSwgMHg0OTVmKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9QT1dFUl9DT05UUk9MXzEsIDB4MDgwMCk7Ci0KLQltc2xlZXAoMTApOwotCi0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfUE9XRVJfQ09OVFJPTF8yLCAweDEwM2IpOwotCi0JbXNsZWVwKDUwKTsKLQotCXN3aXRjaCAobWlwaS0+cm90YXRpb24pIHsKLQlkZWZhdWx0OgotCQlhbV9pZCA9IDB4MzA7Ci0JCWJyZWFrOwotCWNhc2UgOTA6Ci0JCWFtX2lkID0gMHgxODsKLQkJYnJlYWs7Ci0JY2FzZSAxODA6Ci0JCWFtX2lkID0gMHgwMDsKLQkJYnJlYWs7Ci0JY2FzZSAyNzA6Ci0JCWFtX2lkID0gMHgyODsKLQkJYnJlYWs7Ci0JfQotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X0RSSVZFUl9PVVRQVVRfQ09OVFJPTCwgMHgwMTFjKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9MQ0RfQUNfRFJJVklOR19DT05UUk9MLCAweDAxMDApOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X0VOVFJZX01PREUsIDB4MTAwMCB8IGFtX2lkKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9ESVNQTEFZX0NPTlRST0xfMSwgMHgwMDAwKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9CTEFOS19QRVJJT0RfQ09OVFJPTF8xLCAweDA4MDgpOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X0ZSQU1FX0NZQ0xFX0NPTlRST0wsIDB4MTEwMCk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfSU5URVJGQUNFX0NPTlRST0wsIDB4MDAwMCk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfT1NDSUxMQVRJT05fQ09OVFJPTCwgMHgwZDAxKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9WQ0lfUkVDWUNMSU5HLCAweDAwMjApOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X1JBTV9BRERSRVNTX1NFVF8xLCAweDAwMDApOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X1JBTV9BRERSRVNTX1NFVF8yLCAweDAwMDApOwotCi0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfR0FURV9TQ0FOX0NPTlRST0wsIDB4MDAwMCk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfVkVSVElDQUxfU0NST0xMXzEsIDB4MDBkYik7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfVkVSVElDQUxfU0NST0xMXzIsIDB4MDAwMCk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfVkVSVElDQUxfU0NST0xMXzMsIDB4MDAwMCk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfUEFSVElBTF9EUklWSU5HX1BPU18xLCAweDAwZGIpOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X1BBUlRJQUxfRFJJVklOR19QT1NfMiwgMHgwMDAwKTsKLQotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMSwgMHgwMDAwKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzIsIDB4MDgwOCk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfR0FNTUFfQ09OVFJPTF8zLCAweDA4MGEpOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNCwgMHgwMDBhKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzUsIDB4MGEwOCk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfR0FNTUFfQ09OVFJPTF82LCAweDA4MDgpOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X0dBTU1BX0NPTlRST0xfNywgMHgwMDAwKTsKLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9HQU1NQV9DT05UUk9MXzgsIDB4MGEwMCk7Ci0JaWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfR0FNTUFfQ09OVFJPTF85LCAweDA3MTApOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X0dBTU1BX0NPTlRST0xfMTAsIDB4MDcxMCk7Ci0KLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9ESVNQTEFZX0NPTlRST0xfMSwgMHgwMDEyKTsKLQotCW1zbGVlcCg1MCk7Ci0KLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9ESVNQTEFZX0NPTlRST0xfMSwgMHgxMDE3KTsKLQotCW1pcGktPmVuYWJsZWQgPSB0cnVlOwotCWlsaTkyMjVfZmJfZGlydHkoZmIsICZyZWN0KTsKLW91dF9leGl0OgotCWRybV9kZXZfZXhpdChpZHgpOwotfQotCi1zdGF0aWMgdm9pZCBpbGk5MjI1X3BpcGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCi17Ci0Jc3RydWN0IG1pcGlfZGJpICptaXBpID0gZHJtX3RvX21pcGlfZGJpKHBpcGUtPmNydGMuZGV2KTsKLQotCURSTV9ERUJVR19LTVMoIlxuIik7Ci0KLQkvKgotCSAqIFRoaXMgY2FsbGJhY2sgaXMgbm90IHByb3RlY3RlZCBieSBkcm1fZGV2X2VudGVyL2V4aXQgc2luY2Ugd2Ugd2FudCB0bwotCSAqIHR1cm4gb2ZmIHRoZSBkaXNwbGF5IG9uIHJlZ3VsYXIgZHJpdmVyIHVubG9hZC4gSXQncyBoaWdobHkgdW5saWtlbHkKLQkgKiB0aGF0IHRoZSB1bmRlcmx5aW5nIFNQSSBjb250cm9sbGVyIGlzIGdvbmUgc2hvdWxkIHRoaXMgYmUgY2FsbGVkIGFmdGVyCi0JICogdW5wbHVnLgotCSAqLwotCi0JaWYgKCFtaXBpLT5lbmFibGVkKQotCQlyZXR1cm47Ci0KLQlpbGk5MjI1X2NvbW1hbmQobWlwaSwgSUxJOTIyNV9ESVNQTEFZX0NPTlRST0xfMSwgMHgwMDAwKTsKLQltc2xlZXAoNTApOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X1BPV0VSX0NPTlRST0xfMiwgMHgwMDA3KTsKLQltc2xlZXAoNTApOwotCWlsaTkyMjVfY29tbWFuZChtaXBpLCBJTEk5MjI1X1BPV0VSX0NPTlRST0xfMSwgMHgwYTAyKTsKLQotCW1pcGktPmVuYWJsZWQgPSBmYWxzZTsKLX0KLQotc3RhdGljIGludCBpbGk5MjI1X2RiaV9jb21tYW5kKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwgdTggKmNtZCwgdTggKnBhciwKLQkJCSAgICAgICBzaXplX3QgbnVtKQotewotCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBtaXBpLT5zcGk7Ci0JdW5zaWduZWQgaW50IGJwdyA9IDg7Ci0JdTMyIHNwZWVkX2h6OwotCWludCByZXQ7Ci0KLQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAobWlwaS0+ZGMsIDApOwotCXNwZWVkX2h6ID0gbWlwaV9kYmlfc3BpX2NtZF9tYXhfc3BlZWQoc3BpLCAxKTsKLQlyZXQgPSB0aW55ZHJtX3NwaV90cmFuc2ZlcihzcGksIHNwZWVkX2h6LCBOVUxMLCA4LCBjbWQsIDEpOwotCWlmIChyZXQgfHwgIW51bSkKLQkJcmV0dXJuIHJldDsKLQotCWlmICgqY21kID09IElMSTkyMjVfV1JJVEVfREFUQV9UT19HUkFNICYmICFtaXBpLT5zd2FwX2J5dGVzKQotCQlicHcgPSAxNjsKLQotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChtaXBpLT5kYywgMSk7Ci0Jc3BlZWRfaHogPSBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZChzcGksIG51bSk7Ci0KLQlyZXR1cm4gdGlueWRybV9zcGlfdHJhbnNmZXIoc3BpLCBzcGVlZF9oeiwgTlVMTCwgYnB3LCBwYXIsIG51bSk7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgaWxpOTIyNV9waXBlX2Z1bmNzID0gewotCS5lbmFibGUJCT0gaWxpOTIyNV9waXBlX2VuYWJsZSwKLQkuZGlzYWJsZQk9IGlsaTkyMjVfcGlwZV9kaXNhYmxlLAotCS51cGRhdGUJCT0gaWxpOTIyNV9waXBlX3VwZGF0ZSwKLQkucHJlcGFyZV9mYgk9IGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9wcmVwYXJlX2ZiLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGlsaTkyMjVfbW9kZSA9IHsKLQlEUk1fU0lNUExFX01PREUoMTc2LCAyMjAsIDM1LCA0NCksCi19OwotCi1ERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhpbGk5MjI1X2ZvcHMpOwotCi1zdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgaWxpOTIyNV9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9QUklNRSB8Ci0JCQkJICBEUklWRVJfQVRPTUlDLAotCS5mb3BzCQkJPSAmaWxpOTIyNV9mb3BzLAotCS5yZWxlYXNlCQk9IG1pcGlfZGJpX3JlbGVhc2UsCi0JRFJNX0dFTV9DTUFfVk1BUF9EUklWRVJfT1BTLAotCS5uYW1lCQkJPSAiaWxpOTIyNSIsCi0JLmRlc2MJCQk9ICJJbGl0ZWsgSUxJOTIyNSIsCi0JLmRhdGUJCQk9ICIyMDE3MTEwNiIsCi0JLm1ham9yCQkJPSAxLAotCS5taW5vcgkJCT0gMCwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlsaTkyMjVfb2ZfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gInZvdCx2MjIwaGYwMWEtdCIgfSwKLQl7fSwKLX07Ci1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbGk5MjI1X29mX21hdGNoKTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIGlsaTkyMjVfaWRbXSA9IHsKLQl7ICJ2MjIwaGYwMWEtdCIsIDAgfSwKLQl7IH0sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShzcGksIGlsaTkyMjVfaWQpOwotCi1zdGF0aWMgaW50IGlsaTkyMjVfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmc3BpLT5kZXY7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybTsKLQlzdHJ1Y3QgbWlwaV9kYmkgKm1pcGk7Ci0Jc3RydWN0IGdwaW9fZGVzYyAqcnM7Ci0JdTMyIHJvdGF0aW9uID0gMDsKLQlpbnQgcmV0OwotCi0JbWlwaSA9IGt6YWxsb2Moc2l6ZW9mKCptaXBpKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtaXBpKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWRybSA9ICZtaXBpLT5kcm07Ci0JcmV0ID0gZGV2bV9kcm1fZGV2X2luaXQoZGV2LCBkcm0sICZpbGk5MjI1X2RyaXZlcik7Ci0JaWYgKHJldCkgewotCQlrZnJlZShtaXBpKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlkcm1fbW9kZV9jb25maWdfaW5pdChkcm0pOwotCi0JbWlwaS0+cmVzZXQgPSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKLQlpZiAoSVNfRVJSKG1pcGktPnJlc2V0KSkgewotCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAncmVzZXQnXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWlwaS0+cmVzZXQpOwotCX0KLQotCXJzID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicnMiLCBHUElPRF9PVVRfTE9XKTsKLQlpZiAoSVNfRVJSKHJzKSkgewotCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAncnMnXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIocnMpOwotCX0KLQotCWRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihkZXYsICJyb3RhdGlvbiIsICZyb3RhdGlvbik7Ci0KLQlyZXQgPSBtaXBpX2RiaV9zcGlfaW5pdChzcGksIG1pcGksIHJzKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JLyogb3ZlcnJpZGUgdGhlIGNvbW1hbmQgZnVuY3Rpb24gc2V0IGluICBtaXBpX2RiaV9zcGlfaW5pdCgpICovCi0JbWlwaS0+Y29tbWFuZCA9IGlsaTkyMjVfZGJpX2NvbW1hbmQ7Ci0KLQlyZXQgPSBtaXBpX2RiaV9pbml0KG1pcGksICZpbGk5MjI1X3BpcGVfZnVuY3MsICZpbGk5MjI1X21vZGUsIHJvdGF0aW9uKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRybSk7Ci0KLQlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRybSwgMCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXNwaV9zZXRfZHJ2ZGF0YShzcGksIGRybSk7Ci0KLQlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm0sIDApOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaWxpOTIyNV9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7Ci0KLQlkcm1fZGV2X3VucGx1Zyhkcm0pOwotCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRybSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgaWxpOTIyNV9zaHV0ZG93bihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKHNwaV9nZXRfZHJ2ZGF0YShzcGkpKTsKLX0KLQotc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIGlsaTkyMjVfc3BpX2RyaXZlciA9IHsKLQkuZHJpdmVyID0gewotCQkubmFtZSA9ICJpbGk5MjI1IiwKLQkJLm93bmVyID0gVEhJU19NT0RVTEUsCi0JCS5vZl9tYXRjaF90YWJsZSA9IGlsaTkyMjVfb2ZfbWF0Y2gsCi0JfSwKLQkuaWRfdGFibGUgPSBpbGk5MjI1X2lkLAotCS5wcm9iZSA9IGlsaTkyMjVfcHJvYmUsCi0JLnJlbW92ZSA9IGlsaTkyMjVfcmVtb3ZlLAotCS5zaHV0ZG93biA9IGlsaTkyMjVfc2h1dGRvd24sCi19OwotbW9kdWxlX3NwaV9kcml2ZXIoaWxpOTIyNV9zcGlfZHJpdmVyKTsKLQotTU9EVUxFX0RFU0NSSVBUSU9OKCJJbGl0ZWsgSUxJOTIyNSBEUk0gZHJpdmVyIik7Ci1NT0RVTEVfQVVUSE9SKCJEYXZpZCBMZWNobmVyIDxkYXZpZEBsZWNobm9sb2d5LmNvbT4iKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkzNDEuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkzNDEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFkZTllNGIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTM0MS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjY2ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwotLyoKLSAqIERSTSBkcml2ZXIgZm9yIElsaXRlayBJTEk5MzQxIHBhbmVscwotICoKLSAqIENvcHlyaWdodCAyMDE4IERhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPgotICoKLSAqIEJhc2VkIG9uIG1pMDI4M3F0LmM6Ci0gKiBDb3B5cmlnaHQgMjAxNiBOb3JhbGYgVHLDuG5uZXMKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvcHJvcGVydHkuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+Ci0KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vdGlueWRybS9taXBpLWRiaS5oPgotI2luY2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgotI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgotCi0jZGVmaW5lIElMSTkzNDFfRlJNQ1RSMQkJMHhiMQotI2RlZmluZSBJTEk5MzQxX0RJU0NUUkwJCTB4YjYKLSNkZWZpbmUgSUxJOTM0MV9FVE1PRAkJMHhiNwotCi0jZGVmaW5lIElMSTkzNDFfUFdDVFJMMQkJMHhjMAotI2RlZmluZSBJTEk5MzQxX1BXQ1RSTDIJCTB4YzEKLSNkZWZpbmUgSUxJOTM0MV9WTUNUUkwxCQkweGM1Ci0jZGVmaW5lIElMSTkzNDFfVk1DVFJMMgkJMHhjNwotI2RlZmluZSBJTEk5MzQxX1BXQ1RSTEEJCTB4Y2IKLSNkZWZpbmUgSUxJOTM0MV9QV0NUUkxCCQkweGNmCi0KLSNkZWZpbmUgSUxJOTM0MV9QR0FNQ1RSTAkweGUwCi0jZGVmaW5lIElMSTkzNDFfTkdBTUNUUkwJMHhlMQotI2RlZmluZSBJTEk5MzQxX0RUQ1RSTEEJCTB4ZTgKLSNkZWZpbmUgSUxJOTM0MV9EVENUUkxCCQkweGVhCi0jZGVmaW5lIElMSTkzNDFfUFdSU0VRCQkweGVkCi0KLSNkZWZpbmUgSUxJOTM0MV9FTjNHQU0JCTB4ZjIKLSNkZWZpbmUgSUxJOTM0MV9QVU1QQ1RSTAkweGY3Ci0KLSNkZWZpbmUgSUxJOTM0MV9NQURDVExfQkdSCUJJVCgzKQotI2RlZmluZSBJTEk5MzQxX01BRENUTF9NVglCSVQoNSkKLSNkZWZpbmUgSUxJOTM0MV9NQURDVExfTVgJQklUKDYpCi0jZGVmaW5lIElMSTkzNDFfTUFEQ1RMX01ZCUJJVCg3KQotCi1zdGF0aWMgdm9pZCB5eDI0MHF2MjlfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKLQkJCSAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKLXsKLQlzdHJ1Y3QgbWlwaV9kYmkgKm1pcGkgPSBkcm1fdG9fbWlwaV9kYmkocGlwZS0+Y3J0Yy5kZXYpOwotCXU4IGFkZHJfbW9kZTsKLQlpbnQgcmV0LCBpZHg7Ci0KLQlpZiAoIWRybV9kZXZfZW50ZXIocGlwZS0+Y3J0Yy5kZXYsICZpZHgpKQotCQlyZXR1cm47Ci0KLQlEUk1fREVCVUdfS01TKCJcbiIpOwotCi0JcmV0ID0gbWlwaV9kYmlfcG93ZXJvbl9jb25kaXRpb25hbF9yZXNldChtaXBpKTsKLQlpZiAocmV0IDwgMCkKLQkJZ290byBvdXRfZXhpdDsKLQlpZiAocmV0ID09IDEpCi0JCWdvdG8gb3V0X2VuYWJsZTsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT0ZGKTsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9QV0NUUkxCLCAweDAwLCAweGMxLCAweDMwKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfUFdSU0VRLCAweDY0LCAweDAzLCAweDEyLCAweDgxKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfRFRDVFJMQSwgMHg4NSwgMHgwMCwgMHg3OCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX1BXQ1RSTEEsIDB4MzksIDB4MmMsIDB4MDAsIDB4MzQsIDB4MDIpOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9QVU1QQ1RSTCwgMHgyMCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX0RUQ1RSTEIsIDB4MDAsIDB4MDApOwotCi0JLyogUG93ZXIgQ29udHJvbCAqLwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9QV0NUUkwxLCAweDIzKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfUFdDVFJMMiwgMHgxMCk7Ci0JLyogVkNPTSAqLwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9WTUNUUkwxLCAweDNlLCAweDI4KTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfVk1DVFJMMiwgMHg4Nik7Ci0KLQkvKiBNZW1vcnkgQWNjZXNzIENvbnRyb2wgKi8KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIE1JUElfRENTX1NFVF9QSVhFTF9GT1JNQVQsIE1JUElfRENTX1BJWEVMX0ZNVF8xNkJJVCk7Ci0KLQkvKiBGcmFtZSBSYXRlICovCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX0ZSTUNUUjEsIDB4MDAsIDB4MWIpOwotCi0JLyogR2FtbWEgKi8KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfRU4zR0FNLCAweDAwKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIE1JUElfRENTX1NFVF9HQU1NQV9DVVJWRSwgMHgwMSk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX1BHQU1DVFJMLAotCQkJIDB4MGYsIDB4MzEsIDB4MmIsIDB4MGMsIDB4MGUsIDB4MDgsIDB4NGUsIDB4ZjEsCi0JCQkgMHgzNywgMHgwNywgMHgxMCwgMHgwMywgMHgwZSwgMHgwOSwgMHgwMCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX05HQU1DVFJMLAotCQkJIDB4MDAsIDB4MGUsIDB4MTQsIDB4MDMsIDB4MTEsIDB4MDcsIDB4MzEsIDB4YzEsCi0JCQkgMHg0OCwgMHgwOCwgMHgwZiwgMHgwYywgMHgzMSwgMHgzNiwgMHgwZik7Ci0KLQkvKiBERFJBTSAqLwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9FVE1PRCwgMHgwNyk7Ci0KLQkvKiBEaXNwbGF5ICovCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX0RJU0NUUkwsIDB4MDgsIDB4ODIsIDB4MjcsIDB4MDApOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfRVhJVF9TTEVFUF9NT0RFKTsKLQltc2xlZXAoMTAwKTsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT04pOwotCW1zbGVlcCgxMDApOwotCi1vdXRfZW5hYmxlOgotCXN3aXRjaCAobWlwaS0+cm90YXRpb24pIHsKLQlkZWZhdWx0OgotCQlhZGRyX21vZGUgPSBJTEk5MzQxX01BRENUTF9NWDsKLQkJYnJlYWs7Ci0JY2FzZSA5MDoKLQkJYWRkcl9tb2RlID0gSUxJOTM0MV9NQURDVExfTVY7Ci0JCWJyZWFrOwotCWNhc2UgMTgwOgotCQlhZGRyX21vZGUgPSBJTEk5MzQxX01BRENUTF9NWTsKLQkJYnJlYWs7Ci0JY2FzZSAyNzA6Ci0JCWFkZHJfbW9kZSA9IElMSTkzNDFfTUFEQ1RMX01WIHwgSUxJOTM0MV9NQURDVExfTVkgfAotCQkJICAgIElMSTkzNDFfTUFEQ1RMX01YOwotCQlicmVhazsKLQl9Ci0JYWRkcl9tb2RlIHw9IElMSTkzNDFfTUFEQ1RMX0JHUjsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIE1JUElfRENTX1NFVF9BRERSRVNTX01PREUsIGFkZHJfbW9kZSk7Ci0JbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKG1pcGksIGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKLW91dF9leGl0OgotCWRybV9kZXZfZXhpdChpZHgpOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIGlsaTkzNDFfcGlwZV9mdW5jcyA9IHsKLQkuZW5hYmxlID0geXgyNDBxdjI5X2VuYWJsZSwKLQkuZGlzYWJsZSA9IG1pcGlfZGJpX3BpcGVfZGlzYWJsZSwKLQkudXBkYXRlID0gbWlwaV9kYmlfcGlwZV91cGRhdGUsCi0JLnByZXBhcmVfZmIgPSBkcm1fZ2VtX2ZiX3NpbXBsZV9kaXNwbGF5X3BpcGVfcHJlcGFyZV9mYiwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSB5eDI0MHF2MjlfbW9kZSA9IHsKLQlEUk1fU0lNUExFX01PREUoMjQwLCAzMjAsIDM3LCA0OSksCi19OwotCi1ERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhpbGk5MzQxX2ZvcHMpOwotCi1zdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgaWxpOTM0MV9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9QUklNRSB8IERSSVZFUl9BVE9NSUMsCi0JLmZvcHMJCQk9ICZpbGk5MzQxX2ZvcHMsCi0JLnJlbGVhc2UJCT0gbWlwaV9kYmlfcmVsZWFzZSwKLQlEUk1fR0VNX0NNQV9WTUFQX0RSSVZFUl9PUFMsCi0JLmRlYnVnZnNfaW5pdAkJPSBtaXBpX2RiaV9kZWJ1Z2ZzX2luaXQsCi0JLm5hbWUJCQk9ICJpbGk5MzQxIiwKLQkuZGVzYwkJCT0gIklsaXRlayBJTEk5MzQxIiwKLQkuZGF0ZQkJCT0gIjIwMTgwNTE0IiwKLQkubWFqb3IJCQk9IDEsCi0JLm1pbm9yCQkJPSAwLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaWxpOTM0MV9vZl9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAiYWRhZnJ1aXQseXgyNDBxdjI5IiB9LAotCXsgfQotfTsKLU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlsaTkzNDFfb2ZfbWF0Y2gpOwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgaWxpOTM0MV9pZFtdID0gewotCXsgInl4MjQwcXYyOSIsIDAgfSwKLQl7IH0KLX07Ci1NT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgaWxpOTM0MV9pZCk7Ci0KLXN0YXRpYyBpbnQgaWxpOTM0MV9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwotCXN0cnVjdCBtaXBpX2RiaSAqbWlwaTsKLQlzdHJ1Y3QgZ3Bpb19kZXNjICpkYzsKLQl1MzIgcm90YXRpb24gPSAwOwotCWludCByZXQ7Ci0KLQltaXBpID0ga3phbGxvYyhzaXplb2YoKm1pcGkpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW1pcGkpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZHJtID0gJm1pcGktPmRybTsKLQlyZXQgPSBkZXZtX2RybV9kZXZfaW5pdChkZXYsIGRybSwgJmlsaTkzNDFfZHJpdmVyKTsKLQlpZiAocmV0KSB7Ci0JCWtmcmVlKG1pcGkpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7Ci0KLQltaXBpLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOwotCWlmIChJU19FUlIobWlwaS0+cmVzZXQpKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtaXBpLT5yZXNldCk7Ci0JfQotCi0JZGMgPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChkZXYsICJkYyIsIEdQSU9EX09VVF9MT1cpOwotCWlmIChJU19FUlIoZGMpKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdkYydcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihkYyk7Ci0JfQotCi0JbWlwaS0+YmFja2xpZ2h0ID0gZGV2bV9vZl9maW5kX2JhY2tsaWdodChkZXYpOwotCWlmIChJU19FUlIobWlwaS0+YmFja2xpZ2h0KSkKLQkJcmV0dXJuIFBUUl9FUlIobWlwaS0+YmFja2xpZ2h0KTsKLQotCWRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihkZXYsICJyb3RhdGlvbiIsICZyb3RhdGlvbik7Ci0KLQlyZXQgPSBtaXBpX2RiaV9zcGlfaW5pdChzcGksIG1pcGksIGRjKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcmV0ID0gbWlwaV9kYmlfaW5pdChtaXBpLCAmaWxpOTM0MV9waXBlX2Z1bmNzLCAmeXgyNDBxdjI5X21vZGUsIHJvdGF0aW9uKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRybSk7Ci0KLQlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRybSwgMCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXNwaV9zZXRfZHJ2ZGF0YShzcGksIGRybSk7Ci0KLQlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm0sIDApOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaWxpOTM0MV9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7Ci0KLQlkcm1fZGV2X3VucGx1Zyhkcm0pOwotCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRybSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgaWxpOTM0MV9zaHV0ZG93bihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKHNwaV9nZXRfZHJ2ZGF0YShzcGkpKTsKLX0KLQotc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIGlsaTkzNDFfc3BpX2RyaXZlciA9IHsKLQkuZHJpdmVyID0gewotCQkubmFtZSA9ICJpbGk5MzQxIiwKLQkJLm9mX21hdGNoX3RhYmxlID0gaWxpOTM0MV9vZl9tYXRjaCwKLQl9LAotCS5pZF90YWJsZSA9IGlsaTkzNDFfaWQsCi0JLnByb2JlID0gaWxpOTM0MV9wcm9iZSwKLQkucmVtb3ZlID0gaWxpOTM0MV9yZW1vdmUsCi0JLnNodXRkb3duID0gaWxpOTM0MV9zaHV0ZG93biwKLX07Ci1tb2R1bGVfc3BpX2RyaXZlcihpbGk5MzQxX3NwaV9kcml2ZXIpOwotCi1NT0RVTEVfREVTQ1JJUFRJT04oIklsaXRlayBJTEk5MzQxIERSTSBkcml2ZXIiKTsKLU1PRFVMRV9BVVRIT1IoIkRhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPiIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWkwMjgzcXQuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkZWZhNTMuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWkwMjgzcXQuYworKysgL2Rldi9udWxsCkBAIC0xLDI5MyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgotLyoKLSAqIERSTSBkcml2ZXIgZm9yIE11bHRpLUlubm8gTUkwMjgzUVQgcGFuZWxzCi0gKgotICogQ29weXJpZ2h0IDIwMTYgTm9yYWxmIFRyw7hubmVzCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2JhY2tsaWdodC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+Ci0jaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgotCi0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaD4KLSNpbmNsdWRlIDxkcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaD4KLSNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KLQotI2RlZmluZSBJTEk5MzQxX0ZSTUNUUjEJCTB4YjEKLSNkZWZpbmUgSUxJOTM0MV9ESVNDVFJMCQkweGI2Ci0jZGVmaW5lIElMSTkzNDFfRVRNT0QJCTB4YjcKLQotI2RlZmluZSBJTEk5MzQxX1BXQ1RSTDEJCTB4YzAKLSNkZWZpbmUgSUxJOTM0MV9QV0NUUkwyCQkweGMxCi0jZGVmaW5lIElMSTkzNDFfVk1DVFJMMQkJMHhjNQotI2RlZmluZSBJTEk5MzQxX1ZNQ1RSTDIJCTB4YzcKLSNkZWZpbmUgSUxJOTM0MV9QV0NUUkxBCQkweGNiCi0jZGVmaW5lIElMSTkzNDFfUFdDVFJMQgkJMHhjZgotCi0jZGVmaW5lIElMSTkzNDFfUEdBTUNUUkwJMHhlMAotI2RlZmluZSBJTEk5MzQxX05HQU1DVFJMCTB4ZTEKLSNkZWZpbmUgSUxJOTM0MV9EVENUUkxBCQkweGU4Ci0jZGVmaW5lIElMSTkzNDFfRFRDVFJMQgkJMHhlYQotI2RlZmluZSBJTEk5MzQxX1BXUlNFUQkJMHhlZAotCi0jZGVmaW5lIElMSTkzNDFfRU4zR0FNCQkweGYyCi0jZGVmaW5lIElMSTkzNDFfUFVNUENUUkwJMHhmNwotCi0jZGVmaW5lIElMSTkzNDFfTUFEQ1RMX0JHUglCSVQoMykKLSNkZWZpbmUgSUxJOTM0MV9NQURDVExfTVYJQklUKDUpCi0jZGVmaW5lIElMSTkzNDFfTUFEQ1RMX01YCUJJVCg2KQotI2RlZmluZSBJTEk5MzQxX01BRENUTF9NWQlCSVQoNykKLQotc3RhdGljIHZvaWQgbWkwMjgzcXRfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKLQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCi17Ci0Jc3RydWN0IG1pcGlfZGJpICptaXBpID0gZHJtX3RvX21pcGlfZGJpKHBpcGUtPmNydGMuZGV2KTsKLQl1OCBhZGRyX21vZGU7Ci0JaW50IHJldCwgaWR4OwotCi0JaWYgKCFkcm1fZGV2X2VudGVyKHBpcGUtPmNydGMuZGV2LCAmaWR4KSkKLQkJcmV0dXJuOwotCi0JRFJNX0RFQlVHX0tNUygiXG4iKTsKLQotCXJldCA9IG1pcGlfZGJpX3Bvd2Vyb25fY29uZGl0aW9uYWxfcmVzZXQobWlwaSk7Ci0JaWYgKHJldCA8IDApCi0JCWdvdG8gb3V0X2V4aXQ7Ci0JaWYgKHJldCA9PSAxKQotCQlnb3RvIG91dF9lbmFibGU7Ci0KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIE1JUElfRENTX1NFVF9ESVNQTEFZX09GRik7Ci0KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfUFdDVFJMQiwgMHgwMCwgMHg4MywgMHgzMCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX1BXUlNFUSwgMHg2NCwgMHgwMywgMHgxMiwgMHg4MSk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX0RUQ1RSTEEsIDB4ODUsIDB4MDEsIDB4NzkpOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9QV0NUUkxBLCAweDM5LCAweDJjLCAweDAwLCAweDM0LCAweDAyKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfUFVNUENUUkwsIDB4MjApOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9EVENUUkxCLCAweDAwLCAweDAwKTsKLQotCS8qIFBvd2VyIENvbnRyb2wgKi8KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfUFdDVFJMMSwgMHgyNik7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX1BXQ1RSTDIsIDB4MTEpOwotCS8qIFZDT00gKi8KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfVk1DVFJMMSwgMHgzNSwgMHgzZSk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX1ZNQ1RSTDIsIDB4YmUpOwotCi0JLyogTWVtb3J5IEFjY2VzcyBDb250cm9sICovCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfUElYRUxfRk9STUFULCBNSVBJX0RDU19QSVhFTF9GTVRfMTZCSVQpOwotCi0JLyogRnJhbWUgUmF0ZSAqLwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9GUk1DVFIxLCAweDAwLCAweDFiKTsKLQotCS8qIEdhbW1hICovCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX0VOM0dBTSwgMHgwOCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfR0FNTUFfQ1VSVkUsIDB4MDEpOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9QR0FNQ1RSTCwKLQkJICAgICAgIDB4MWYsIDB4MWEsIDB4MTgsIDB4MGEsIDB4MGYsIDB4MDYsIDB4NDUsIDB4ODcsCi0JCSAgICAgICAweDMyLCAweDBhLCAweDA3LCAweDAyLCAweDA3LCAweDA1LCAweDAwKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIElMSTkzNDFfTkdBTUNUUkwsCi0JCSAgICAgICAweDAwLCAweDI1LCAweDI3LCAweDA1LCAweDEwLCAweDA5LCAweDNhLCAweDc4LAotCQkgICAgICAgMHg0ZCwgMHgwNSwgMHgxOCwgMHgwZCwgMHgzOCwgMHgzYSwgMHgxZik7Ci0KLQkvKiBERFJBTSAqLwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgSUxJOTM0MV9FVE1PRCwgMHgwNyk7Ci0KLQkvKiBEaXNwbGF5ICovCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBJTEk5MzQxX0RJU0NUUkwsIDB4MGEsIDB4ODIsIDB4MjcsIDB4MDApOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfRVhJVF9TTEVFUF9NT0RFKTsKLQltc2xlZXAoMTAwKTsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT04pOwotCW1zbGVlcCgxMDApOwotCi1vdXRfZW5hYmxlOgotCS8qIFRoZSBQaVRGVCAoaWxpOTM0MCkgaGFzIGEgaGFyZHdhcmUgcmVzZXQgY2lyY3VpdCB0aGF0Ci0JICogcmVzZXRzIG9ubHkgb24gcG93ZXItb24gYW5kIG5vdCBvbiBlYWNoIHJlYm9vdCB0aHJvdWdoCi0JICogYSBncGlvIGxpa2UgdGhlIHJwaS1kaXNwbGF5IGRvZXMuCi0JICogQXMgYSByZXN1bHQsIHdlIG5lZWQgdG8gYWx3YXlzIGFwcGx5IHRoZSByb3RhdGlvbiB2YWx1ZQotCSAqIHJlZ2FyZGxlc3Mgb2YgdGhlIGRpc3BsYXkgIm9uL29mZiIgc3RhdGUuCi0JICovCi0Jc3dpdGNoIChtaXBpLT5yb3RhdGlvbikgewotCWRlZmF1bHQ6Ci0JCWFkZHJfbW9kZSA9IElMSTkzNDFfTUFEQ1RMX01WIHwgSUxJOTM0MV9NQURDVExfTVkgfAotCQkJICAgIElMSTkzNDFfTUFEQ1RMX01YOwotCQlicmVhazsKLQljYXNlIDkwOgotCQlhZGRyX21vZGUgPSBJTEk5MzQxX01BRENUTF9NWTsKLQkJYnJlYWs7Ci0JY2FzZSAxODA6Ci0JCWFkZHJfbW9kZSA9IElMSTkzNDFfTUFEQ1RMX01WOwotCQlicmVhazsKLQljYXNlIDI3MDoKLQkJYWRkcl9tb2RlID0gSUxJOTM0MV9NQURDVExfTVg7Ci0JCWJyZWFrOwotCX0KLQlhZGRyX21vZGUgfD0gSUxJOTM0MV9NQURDVExfQkdSOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0FERFJFU1NfTU9ERSwgYWRkcl9tb2RlKTsKLQltaXBpX2RiaV9lbmFibGVfZmx1c2gobWlwaSwgY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwotb3V0X2V4aXQ6Ci0JZHJtX2Rldl9leGl0KGlkeCk7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgbWkwMjgzcXRfcGlwZV9mdW5jcyA9IHsKLQkuZW5hYmxlID0gbWkwMjgzcXRfZW5hYmxlLAotCS5kaXNhYmxlID0gbWlwaV9kYmlfcGlwZV9kaXNhYmxlLAotCS51cGRhdGUgPSBtaXBpX2RiaV9waXBlX3VwZGF0ZSwKLQkucHJlcGFyZV9mYiA9IGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9wcmVwYXJlX2ZiLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIG1pMDI4M3F0X21vZGUgPSB7Ci0JRFJNX1NJTVBMRV9NT0RFKDMyMCwgMjQwLCA1OCwgNDMpLAotfTsKLQotREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMobWkwMjgzcXRfZm9wcyk7Ci0KLXN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBtaTAyODNxdF9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9QUklNRSB8Ci0JCQkJICBEUklWRVJfQVRPTUlDLAotCS5mb3BzCQkJPSAmbWkwMjgzcXRfZm9wcywKLQkucmVsZWFzZQkJPSBtaXBpX2RiaV9yZWxlYXNlLAotCURSTV9HRU1fQ01BX1ZNQVBfRFJJVkVSX09QUywKLQkuZGVidWdmc19pbml0CQk9IG1pcGlfZGJpX2RlYnVnZnNfaW5pdCwKLQkubmFtZQkJCT0gIm1pMDI4M3F0IiwKLQkuZGVzYwkJCT0gIk11bHRpLUlubm8gTUkwMjgzUVQiLAotCS5kYXRlCQkJPSAiMjAxNjA2MTQiLAotCS5tYWpvcgkJCT0gMSwKLQkubWlub3IJCQk9IDAsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtaTAyODNxdF9vZl9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAibXVsdGktaW5ubyxtaTAyODNxdCIgfSwKLQl7fSwKLX07Ci1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtaTAyODNxdF9vZl9tYXRjaCk7Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCBtaTAyODNxdF9pZFtdID0gewotCXsgIm1pMDI4M3F0IiwgMCB9LAotCXsgfSwKLX07Ci1NT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgbWkwMjgzcXRfaWQpOwotCi1zdGF0aWMgaW50IG1pMDI4M3F0X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gJnNwaS0+ZGV2OwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07Ci0Jc3RydWN0IG1pcGlfZGJpICptaXBpOwotCXN0cnVjdCBncGlvX2Rlc2MgKmRjOwotCXUzMiByb3RhdGlvbiA9IDA7Ci0JaW50IHJldDsKLQotCW1pcGkgPSBremFsbG9jKHNpemVvZigqbWlwaSksIEdGUF9LRVJORUwpOwotCWlmICghbWlwaSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlkcm0gPSAmbWlwaS0+ZHJtOwotCXJldCA9IGRldm1fZHJtX2Rldl9pbml0KGRldiwgZHJtLCAmbWkwMjgzcXRfZHJpdmVyKTsKLQlpZiAocmV0KSB7Ci0JCWtmcmVlKG1pcGkpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7Ci0KLQltaXBpLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOwotCWlmIChJU19FUlIobWlwaS0+cmVzZXQpKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtaXBpLT5yZXNldCk7Ci0JfQotCi0JZGMgPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChkZXYsICJkYyIsIEdQSU9EX09VVF9MT1cpOwotCWlmIChJU19FUlIoZGMpKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdkYydcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihkYyk7Ci0JfQotCi0JbWlwaS0+cmVndWxhdG9yID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldiwgInBvd2VyIik7Ci0JaWYgKElTX0VSUihtaXBpLT5yZWd1bGF0b3IpKQotCQlyZXR1cm4gUFRSX0VSUihtaXBpLT5yZWd1bGF0b3IpOwotCi0JbWlwaS0+YmFja2xpZ2h0ID0gZGV2bV9vZl9maW5kX2JhY2tsaWdodChkZXYpOwotCWlmIChJU19FUlIobWlwaS0+YmFja2xpZ2h0KSkKLQkJcmV0dXJuIFBUUl9FUlIobWlwaS0+YmFja2xpZ2h0KTsKLQotCWRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihkZXYsICJyb3RhdGlvbiIsICZyb3RhdGlvbik7Ci0KLQlyZXQgPSBtaXBpX2RiaV9zcGlfaW5pdChzcGksIG1pcGksIGRjKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcmV0ID0gbWlwaV9kYmlfaW5pdChtaXBpLCAmbWkwMjgzcXRfcGlwZV9mdW5jcywgJm1pMDI4M3F0X21vZGUsIHJvdGF0aW9uKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRybSk7Ci0KLQlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRybSwgMCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXNwaV9zZXRfZHJ2ZGF0YShzcGksIGRybSk7Ci0KLQlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm0sIDApOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbWkwMjgzcXRfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpOwotCi0JZHJtX2Rldl91bnBsdWcoZHJtKTsKLQlkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bihkcm0pOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIG1pMDI4M3F0X3NodXRkb3duKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0JZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oc3BpX2dldF9kcnZkYXRhKHNwaSkpOwotfQotCi1zdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG1pMDI4M3F0X3BtX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQotewotCXJldHVybiBkcm1fbW9kZV9jb25maWdfaGVscGVyX3N1c3BlbmQoZGV2X2dldF9kcnZkYXRhKGRldikpOwotfQotCi1zdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG1pMDI4M3F0X3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0JZHJtX21vZGVfY29uZmlnX2hlbHBlcl9yZXN1bWUoZGV2X2dldF9kcnZkYXRhKGRldikpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBtaTAyODNxdF9wbV9vcHMgPSB7Ci0JU0VUX1NZU1RFTV9TTEVFUF9QTV9PUFMobWkwMjgzcXRfcG1fc3VzcGVuZCwgbWkwMjgzcXRfcG1fcmVzdW1lKQotfTsKLQotc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIG1pMDI4M3F0X3NwaV9kcml2ZXIgPSB7Ci0JLmRyaXZlciA9IHsKLQkJLm5hbWUgPSAibWkwMjgzcXQiLAotCQkub3duZXIgPSBUSElTX01PRFVMRSwKLQkJLm9mX21hdGNoX3RhYmxlID0gbWkwMjgzcXRfb2ZfbWF0Y2gsCi0JCS5wbSA9ICZtaTAyODNxdF9wbV9vcHMsCi0JfSwKLQkuaWRfdGFibGUgPSBtaTAyODNxdF9pZCwKLQkucHJvYmUgPSBtaTAyODNxdF9wcm9iZSwKLQkucmVtb3ZlID0gbWkwMjgzcXRfcmVtb3ZlLAotCS5zaHV0ZG93biA9IG1pMDI4M3F0X3NodXRkb3duLAotfTsKLW1vZHVsZV9zcGlfZHJpdmVyKG1pMDI4M3F0X3NwaV9kcml2ZXIpOwotCi1NT0RVTEVfREVTQ1JJUFRJT04oIk11bHRpLUlubm8gTUkwMjgzUVQgRFJNIGRyaXZlciIpOwotTU9EVUxFX0FVVEhPUigiTm9yYWxmIFRyw7hubmVzIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlwaS1kYmkuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E5ZGE2NS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTE3NSArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgotLyoKLSAqIE1JUEkgRGlzcGxheSBCdXMgSW50ZXJmYWNlIChEQkkpIExDRCBjb250cm9sbGVyIHN1cHBvcnQKLSAqCi0gKiBDb3B5cmlnaHQgMjAxNiBOb3JhbGYgVHLDuG5uZXMKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+Ci0KLSNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2Zvcm1hdF9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+Ci0jaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaD4KLSNpbmNsdWRlIDxkcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaD4KLSNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KLQotI2RlZmluZSBNSVBJX0RCSV9NQVhfU1BJX1JFQURfU1BFRUQgMjAwMDAwMCAvKiAyTUh6ICovCi0KLSNkZWZpbmUgRENTX1BPV0VSX01PREVfRElTUExBWQkJCUJJVCgyKQotI2RlZmluZSBEQ1NfUE9XRVJfTU9ERV9ESVNQTEFZX05PUk1BTF9NT0RFCUJJVCgzKQotI2RlZmluZSBEQ1NfUE9XRVJfTU9ERV9TTEVFUF9NT0RFCQlCSVQoNCkKLSNkZWZpbmUgRENTX1BPV0VSX01PREVfUEFSVElBTF9NT0RFCQlCSVQoNSkKLSNkZWZpbmUgRENTX1BPV0VSX01PREVfSURMRV9NT0RFCQlCSVQoNikKLSNkZWZpbmUgRENTX1BPV0VSX01PREVfUkVTRVJWRURfTUFTSwkJKEJJVCgwKSB8IEJJVCgxKSB8IEJJVCg3KSkKLQotLyoqCi0gKiBET0M6IG92ZXJ2aWV3Ci0gKgotICogVGhpcyBsaWJyYXJ5IHByb3ZpZGVzIGhlbHBlcnMgZm9yIE1JUEkgRGlzcGxheSBCdXMgSW50ZXJmYWNlIChEQkkpCi0gKiBjb21wYXRpYmxlIGRpc3BsYXkgY29udHJvbGxlcnMuCi0gKgotICogTWFueSBjb250cm9sbGVycyBmb3IgdGlueSBsY2QgZGlzcGxheXMgYXJlIE1JUEkgY29tcGxpYW50IGFuZCBjYW4gdXNlIHRoaXMKLSAqIGxpYnJhcnkuIElmIGEgY29udHJvbGxlciB1c2VzIHJlZ2lzdGVycyAweDJBIGFuZCAweDJCIHRvIHNldCB0aGUgYXJlYSB0bwotICogdXBkYXRlIGFuZCB1c2VzIHJlZ2lzdGVyIDB4MkMgdG8gd3JpdGUgdG8gZnJhbWUgbWVtb3J5LCBpdCBpcyBtb3N0IGxpa2VseQotICogTUlQSSBjb21wbGlhbnQuCi0gKgotICogT25seSBNSVBJIFR5cGUgMSBkaXNwbGF5cyBhcmUgc3VwcG9ydGVkIHNpbmNlIGEgZnVsbCBmcmFtZSBtZW1vcnkgaXMgbmVlZGVkLgotICoKLSAqIFRoZXJlIGFyZSAzIE1JUEkgREJJIGltcGxlbWVudGF0aW9uIHR5cGVzOgotICoKLSAqIEEuIE1vdG9yb2xhIDY4MDAgdHlwZSBwYXJhbGxlbCBidXMKLSAqCi0gKiBCLiBJbnRlbCA4MDgwIHR5cGUgcGFyYWxsZWwgYnVzCi0gKgotICogQy4gU1BJIHR5cGUgd2l0aCAzIG9wdGlvbnM6Ci0gKgotICogICAgMS4gOS1iaXQgd2l0aCB0aGUgRGF0YS9Db21tYW5kIHNpZ25hbCBhcyB0aGUgbmludGggYml0Ci0gKiAgICAyLiBTYW1lIGFzIGFib3ZlIGV4Y2VwdCBpdCdzIHNlbnQgYXMgMTYgYml0cwotICogICAgMy4gOC1iaXQgd2l0aCB0aGUgRGF0YS9Db21tYW5kIHNpZ25hbCBhcyBhIHNlcGFyYXRlIEQvQ1ggcGluCi0gKgotICogQ3VycmVudGx5IG1pcGlfZGJpIG9ubHkgc3VwcG9ydHMgVHlwZSBDIG9wdGlvbnMgMSBhbmQgMyB3aXRoCi0gKiBtaXBpX2RiaV9zcGlfaW5pdCgpLgotICovCi0KLSNkZWZpbmUgTUlQSV9EQklfREVCVUdfQ09NTUFORChjbWQsIGRhdGEsIGxlbikgXAotKHsgXAotCWlmICghbGVuKSBcCi0JCURSTV9ERUJVR19EUklWRVIoImNtZD0lMDJ4XG4iLCBjbWQpOyBcCi0JZWxzZSBpZiAobGVuIDw9IDMyKSBcCi0JCURSTV9ERUJVR19EUklWRVIoImNtZD0lMDJ4LCBwYXI9JSpwaFxuIiwgY21kLCAoaW50KWxlbiwgZGF0YSk7XAotCWVsc2UgXAotCQlEUk1fREVCVUdfRFJJVkVSKCJjbWQ9JTAyeCwgbGVuPSV6dVxuIiwgY21kLCBsZW4pOyBcCi19KQotCi1zdGF0aWMgY29uc3QgdTggbWlwaV9kYmlfZGNzX3JlYWRfY29tbWFuZHNbXSA9IHsKLQlNSVBJX0RDU19HRVRfRElTUExBWV9JRCwKLQlNSVBJX0RDU19HRVRfUkVEX0NIQU5ORUwsCi0JTUlQSV9EQ1NfR0VUX0dSRUVOX0NIQU5ORUwsCi0JTUlQSV9EQ1NfR0VUX0JMVUVfQ0hBTk5FTCwKLQlNSVBJX0RDU19HRVRfRElTUExBWV9TVEFUVVMsCi0JTUlQSV9EQ1NfR0VUX1BPV0VSX01PREUsCi0JTUlQSV9EQ1NfR0VUX0FERFJFU1NfTU9ERSwKLQlNSVBJX0RDU19HRVRfUElYRUxfRk9STUFULAotCU1JUElfRENTX0dFVF9ESVNQTEFZX01PREUsCi0JTUlQSV9EQ1NfR0VUX1NJR05BTF9NT0RFLAotCU1JUElfRENTX0dFVF9ESUFHTk9TVElDX1JFU1VMVCwKLQlNSVBJX0RDU19SRUFEX01FTU9SWV9TVEFSVCwKLQlNSVBJX0RDU19SRUFEX01FTU9SWV9DT05USU5VRSwKLQlNSVBJX0RDU19HRVRfU0NBTkxJTkUsCi0JTUlQSV9EQ1NfR0VUX0RJU1BMQVlfQlJJR0hUTkVTUywKLQlNSVBJX0RDU19HRVRfQ09OVFJPTF9ESVNQTEFZLAotCU1JUElfRENTX0dFVF9QT1dFUl9TQVZFLAotCU1JUElfRENTX0dFVF9DQUJDX01JTl9CUklHSFRORVNTLAotCU1JUElfRENTX1JFQURfRERCX1NUQVJULAotCU1JUElfRENTX1JFQURfRERCX0NPTlRJTlVFLAotCTAsIC8qIHNlbnRpbmVsICovCi19OwotCi1zdGF0aWMgYm9vbCBtaXBpX2RiaV9jb21tYW5kX2lzX3JlYWQoc3RydWN0IG1pcGlfZGJpICptaXBpLCB1OCBjbWQpCi17Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlpZiAoIW1pcGktPnJlYWRfY29tbWFuZHMpCi0JCXJldHVybiBmYWxzZTsKLQotCWZvciAoaSA9IDA7IGkgPCAweGZmOyBpKyspIHsKLQkJaWYgKCFtaXBpLT5yZWFkX2NvbW1hbmRzW2ldKQotCQkJcmV0dXJuIGZhbHNlOwotCQlpZiAoY21kID09IG1pcGktPnJlYWRfY29tbWFuZHNbaV0pCi0JCQlyZXR1cm4gdHJ1ZTsKLQl9Ci0KLQlyZXR1cm4gZmFsc2U7Ci19Ci0KLS8qKgotICogbWlwaV9kYmlfY29tbWFuZF9yZWFkIC0gTUlQSSBEQ1MgcmVhZCBjb21tYW5kCi0gKiBAbWlwaTogTUlQSSBzdHJ1Y3R1cmUKLSAqIEBjbWQ6IENvbW1hbmQKLSAqIEB2YWw6IFZhbHVlIHJlYWQKLSAqCi0gKiBTZW5kIE1JUEkgRENTIHJlYWQgY29tbWFuZCB0byB0aGUgY29udHJvbGxlci4KLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtaXBpX2RiaV9jb21tYW5kX3JlYWQoc3RydWN0IG1pcGlfZGJpICptaXBpLCB1OCBjbWQsIHU4ICp2YWwpCi17Ci0JaWYgKCFtaXBpLT5yZWFkX2NvbW1hbmRzKQotCQlyZXR1cm4gLUVBQ0NFUzsKLQotCWlmICghbWlwaV9kYmlfY29tbWFuZF9pc19yZWFkKG1pcGksIGNtZCkpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JcmV0dXJuIG1pcGlfZGJpX2NvbW1hbmRfYnVmKG1pcGksIGNtZCwgdmFsLCAxKTsKLX0KLUVYUE9SVF9TWU1CT0wobWlwaV9kYmlfY29tbWFuZF9yZWFkKTsKLQotLyoqCi0gKiBtaXBpX2RiaV9jb21tYW5kX2J1ZiAtIE1JUEkgRENTIGNvbW1hbmQgd2l0aCBwYXJhbWV0ZXIocykgaW4gYW4gYXJyYXkKLSAqIEBtaXBpOiBNSVBJIHN0cnVjdHVyZQotICogQGNtZDogQ29tbWFuZAotICogQGRhdGE6IFBhcmFtZXRlciBidWZmZXIKLSAqIEBsZW46IEJ1ZmZlciBsZW5ndGgKLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtaXBpX2RiaV9jb21tYW5kX2J1ZihzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksIHU4IGNtZCwgdTggKmRhdGEsIHNpemVfdCBsZW4pCi17Ci0JdTggKmNtZGJ1ZjsKLQlpbnQgcmV0OwotCi0JLyogU1BJIHJlcXVpcmVzIGRtYS1zYWZlIGJ1ZmZlcnMgKi8KLQljbWRidWYgPSBrbWVtZHVwKCZjbWQsIDEsIEdGUF9LRVJORUwpOwotCWlmICghY21kYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW11dGV4X2xvY2soJm1pcGktPmNtZGxvY2spOwotCXJldCA9IG1pcGktPmNvbW1hbmQobWlwaSwgY21kYnVmLCBkYXRhLCBsZW4pOwotCW11dGV4X3VubG9jaygmbWlwaS0+Y21kbG9jayk7Ci0KLQlrZnJlZShjbWRidWYpOwotCi0JcmV0dXJuIHJldDsKLX0KLUVYUE9SVF9TWU1CT0wobWlwaV9kYmlfY29tbWFuZF9idWYpOwotCi0vKiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgbWlwaV9kYmlfY29tbWFuZCgpICovCi1pbnQgbWlwaV9kYmlfY29tbWFuZF9zdGFja2J1ZihzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksIHU4IGNtZCwgdTggKmRhdGEsIHNpemVfdCBsZW4pCi17Ci0JdTggKmJ1ZjsKLQlpbnQgcmV0OwotCi0JYnVmID0ga21lbWR1cChkYXRhLCBsZW4sIEdGUF9LRVJORUwpOwotCWlmICghYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXJldCA9IG1pcGlfZGJpX2NvbW1hbmRfYnVmKG1pcGksIGNtZCwgYnVmLCBsZW4pOwotCi0Ja2ZyZWUoYnVmKTsKLQotCXJldHVybiByZXQ7Ci19Ci1FWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2NvbW1hbmRfc3RhY2tidWYpOwotCi0vKioKLSAqIG1pcGlfZGJpX2J1Zl9jb3B5IC0gQ29weSBhIGZyYW1lYnVmZmVyLCB0cmFuc2Zvcm1pbmcgaXQgaWYgbmVjZXNzYXJ5Ci0gKiBAZHN0OiBUaGUgZGVzdGluYXRpb24gYnVmZmVyCi0gKiBAZmI6IFRoZSBzb3VyY2UgZnJhbWVidWZmZXIKLSAqIEBjbGlwOiBDbGlwcGluZyByZWN0YW5nbGUgb2YgdGhlIGFyZWEgdG8gYmUgY29waWVkCi0gKiBAc3dhcDogV2hlbiB0cnVlLCBzd2FwIE1TQi9MU0Igb2YgMTYtYml0IHZhbHVlcwotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1pcGlfZGJpX2J1Zl9jb3B5KHZvaWQgKmRzdCwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCSAgICAgIHN0cnVjdCBkcm1fcmVjdCAqY2xpcCwgYm9vbCBzd2FwKQotewotCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKLQlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICppbXBvcnRfYXR0YWNoID0gY21hX29iai0+YmFzZS5pbXBvcnRfYXR0YWNoOwotCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwotCXZvaWQgKnNyYyA9IGNtYV9vYmotPnZhZGRyOwotCWludCByZXQgPSAwOwotCi0JaWYgKGltcG9ydF9hdHRhY2gpIHsKLQkJcmV0ID0gZG1hX2J1Zl9iZWdpbl9jcHVfYWNjZXNzKGltcG9ydF9hdHRhY2gtPmRtYWJ1ZiwKLQkJCQkJICAgICAgIERNQV9GUk9NX0RFVklDRSk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0KLQotCXN3aXRjaCAoZmItPmZvcm1hdC0+Zm9ybWF0KSB7Ci0JY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKLQkJaWYgKHN3YXApCi0JCQlkcm1fZmJfc3dhYjE2KGRzdCwgc3JjLCBmYiwgY2xpcCk7Ci0JCWVsc2UKLQkJCWRybV9mYl9tZW1jcHkoZHN0LCBzcmMsIGZiLCBjbGlwKTsKLQkJYnJlYWs7Ci0JY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4OgotCQlkcm1fZmJfeHJnYjg4ODhfdG9fcmdiNTY1KGRzdCwgc3JjLCBmYiwgY2xpcCwgc3dhcCk7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWRldl9lcnJfb25jZShmYi0+ZGV2LT5kZXYsICJGb3JtYXQgaXMgbm90IHN1cHBvcnRlZDogJXNcbiIsCi0JCQkgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPmZvcm1hdC0+Zm9ybWF0LAotCQkJCQkJICZmb3JtYXRfbmFtZSkpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoaW1wb3J0X2F0dGFjaCkKLQkJcmV0ID0gZG1hX2J1Zl9lbmRfY3B1X2FjY2VzcyhpbXBvcnRfYXR0YWNoLT5kbWFidWYsCi0JCQkJCSAgICAgRE1BX0ZST01fREVWSUNFKTsKLQlyZXR1cm4gcmV0OwotfQotRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9idWZfY29weSk7Ci0KLXN0YXRpYyB2b2lkIG1pcGlfZGJpX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBzdHJ1Y3QgZHJtX3JlY3QgKnJlY3QpCi17Ci0Jc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29iaiA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIDApOwotCXN0cnVjdCBtaXBpX2RiaSAqbWlwaSA9IGRybV90b19taXBpX2RiaShmYi0+ZGV2KTsKLQl1bnNpZ25lZCBpbnQgaGVpZ2h0ID0gcmVjdC0+eTIgLSByZWN0LT55MTsKLQl1bnNpZ25lZCBpbnQgd2lkdGggPSByZWN0LT54MiAtIHJlY3QtPngxOwotCWJvb2wgc3dhcCA9IG1pcGktPnN3YXBfYnl0ZXM7Ci0JaW50IGlkeCwgcmV0ID0gMDsKLQlib29sIGZ1bGw7Ci0Jdm9pZCAqdHI7Ci0KLQlpZiAoIW1pcGktPmVuYWJsZWQpCi0JCXJldHVybjsKLQotCWlmICghZHJtX2Rldl9lbnRlcihmYi0+ZGV2LCAmaWR4KSkKLQkJcmV0dXJuOwotCi0JZnVsbCA9IHdpZHRoID09IGZiLT53aWR0aCAmJiBoZWlnaHQgPT0gZmItPmhlaWdodDsKLQotCURSTV9ERUJVR19LTVMoIkZsdXNoaW5nIFtGQjolZF0gIiBEUk1fUkVDVF9GTVQgIlxuIiwgZmItPmJhc2UuaWQsIERSTV9SRUNUX0FSRyhyZWN0KSk7Ci0KLQlpZiAoIW1pcGktPmRjIHx8ICFmdWxsIHx8IHN3YXAgfHwKLQkgICAgZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfWFJHQjg4ODgpIHsKLQkJdHIgPSBtaXBpLT50eF9idWY7Ci0JCXJldCA9IG1pcGlfZGJpX2J1Zl9jb3B5KG1pcGktPnR4X2J1ZiwgZmIsIHJlY3QsIHN3YXApOwotCQlpZiAocmV0KQotCQkJZ290byBlcnJfbXNnOwotCX0gZWxzZSB7Ci0JCXRyID0gY21hX29iai0+dmFkZHI7Ci0JfQotCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfQ09MVU1OX0FERFJFU1MsCi0JCQkgKHJlY3QtPngxID4+IDgpICYgMHhmZiwgcmVjdC0+eDEgJiAweGZmLAotCQkJICgocmVjdC0+eDIgLSAxKSA+PiA4KSAmIDB4ZmYsIChyZWN0LT54MiAtIDEpICYgMHhmZik7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfUEFHRV9BRERSRVNTLAotCQkJIChyZWN0LT55MSA+PiA4KSAmIDB4ZmYsIHJlY3QtPnkxICYgMHhmZiwKLQkJCSAoKHJlY3QtPnkyIC0gMSkgPj4gOCkgJiAweGZmLCAocmVjdC0+eTIgLSAxKSAmIDB4ZmYpOwotCi0JcmV0ID0gbWlwaV9kYmlfY29tbWFuZF9idWYobWlwaSwgTUlQSV9EQ1NfV1JJVEVfTUVNT1JZX1NUQVJULCB0ciwKLQkJCQkgICB3aWR0aCAqIGhlaWdodCAqIDIpOwotZXJyX21zZzoKLQlpZiAocmV0KQotCQlkZXZfZXJyX29uY2UoZmItPmRldi0+ZGV2LCAiRmFpbGVkIHRvIHVwZGF0ZSBkaXNwbGF5ICVkXG4iLCByZXQpOwotCi0JZHJtX2Rldl9leGl0KGlkeCk7Ci19Ci0KLS8qKgotICogbWlwaV9kYmlfcGlwZV91cGRhdGUgLSBEaXNwbGF5IHBpcGUgdXBkYXRlIGhlbHBlcgotICogQHBpcGU6IFNpbXBsZSBkaXNwbGF5IHBpcGUKLSAqIEBvbGRfc3RhdGU6IE9sZCBwbGFuZSBzdGF0ZQotICoKLSAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBmcmFtZWJ1ZmZlciBmbHVzaGluZyBhbmQgdmJsYW5rIGV2ZW50cy4gRHJpdmVycyBjYW4gdXNlCi0gKiB0aGlzIGFzIHRoZWlyICZkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcy0+dXBkYXRlIGNhbGxiYWNrLgotICovCi12b2lkIG1pcGlfZGJpX3BpcGVfdXBkYXRlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKLQkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQotewotCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlID0gcGlwZS0+cGxhbmUuc3RhdGU7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gJnBpcGUtPmNydGM7Ci0Jc3RydWN0IGRybV9yZWN0IHJlY3Q7Ci0KLQlpZiAoZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX21lcmdlZChvbGRfc3RhdGUsIHN0YXRlLCAmcmVjdCkpCi0JCW1pcGlfZGJpX2ZiX2RpcnR5KHN0YXRlLT5mYiwgJnJlY3QpOwotCi0JaWYgKGNydGMtPnN0YXRlLT5ldmVudCkgewotCQlzcGluX2xvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOwotCQlkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOwotCQlzcGluX3VubG9ja19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7Ci0JCWNydGMtPnN0YXRlLT5ldmVudCA9IE5VTEw7Ci0JfQotfQotRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9waXBlX3VwZGF0ZSk7Ci0KLS8qKgotICogbWlwaV9kYmlfZW5hYmxlX2ZsdXNoIC0gTUlQSSBEQkkgZW5hYmxlIGhlbHBlcgotICogQG1pcGk6IE1JUEkgREJJIHN0cnVjdHVyZQotICogQGNydGNfc3RhdGU6IENSVEMgc3RhdGUKLSAqIEBwbGFuZV9zdGF0ZTogUGxhbmUgc3RhdGUKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHNldHMgJm1pcGlfZGJpLT5lbmFibGVkLCBmbHVzaGVzIHRoZSB3aG9sZSBmcmFtZWJ1ZmZlciBhbmQKLSAqIGVuYWJsZXMgdGhlIGJhY2tsaWdodC4gRHJpdmVycyBjYW4gdXNlIHRoaXMgaW4gdGhlaXIKLSAqICZkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcy0+ZW5hYmxlIGNhbGxiYWNrLgotICoKLSAqIE5vdGU6IERyaXZlcnMgd2hpY2ggZG9uJ3QgdXNlIG1pcGlfZGJpX3BpcGVfdXBkYXRlKCkgYmVjYXVzZSB0aGV5IGhhdmUgY3VzdG9tCi0gKiBmcmFtZWJ1ZmZlciBmbHVzaGluZywgY2FuJ3QgdXNlIHRoaXMgZnVuY3Rpb24gc2luY2UgdGhleSBib3RoIHVzZSB0aGUgc2FtZQotICogZmx1c2hpbmcgY29kZS4KLSAqLwotdm9pZCBtaXBpX2RiaV9lbmFibGVfZmx1c2goc3RydWN0IG1pcGlfZGJpICptaXBpLAotCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7Ci0Jc3RydWN0IGRybV9yZWN0IHJlY3QgPSB7Ci0JCS54MSA9IDAsCi0JCS54MiA9IGZiLT53aWR0aCwKLQkJLnkxID0gMCwKLQkJLnkyID0gZmItPmhlaWdodCwKLQl9OwotCWludCBpZHg7Ci0KLQlpZiAoIWRybV9kZXZfZW50ZXIoJm1pcGktPmRybSwgJmlkeCkpCi0JCXJldHVybjsKLQotCW1pcGktPmVuYWJsZWQgPSB0cnVlOwotCW1pcGlfZGJpX2ZiX2RpcnR5KGZiLCAmcmVjdCk7Ci0JYmFja2xpZ2h0X2VuYWJsZShtaXBpLT5iYWNrbGlnaHQpOwotCi0JZHJtX2Rldl9leGl0KGlkeCk7Ci19Ci1FWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2VuYWJsZV9mbHVzaCk7Ci0KLXN0YXRpYyB2b2lkIG1pcGlfZGJpX2JsYW5rKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gJm1pcGktPmRybTsKLQl1MTYgaGVpZ2h0ID0gZHJtLT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0OwotCXUxNiB3aWR0aCA9IGRybS0+bW9kZV9jb25maWcubWluX3dpZHRoOwotCXNpemVfdCBsZW4gPSB3aWR0aCAqIGhlaWdodCAqIDI7Ci0JaW50IGlkeDsKLQotCWlmICghZHJtX2Rldl9lbnRlcihkcm0sICZpZHgpKQotCQlyZXR1cm47Ci0KLQltZW1zZXQobWlwaS0+dHhfYnVmLCAwLCBsZW4pOwotCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfQ09MVU1OX0FERFJFU1MsIDAsIDAsCi0JCQkgKHdpZHRoID4+IDgpICYgMHhGRiwgKHdpZHRoIC0gMSkgJiAweEZGKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIE1JUElfRENTX1NFVF9QQUdFX0FERFJFU1MsIDAsIDAsCi0JCQkgKGhlaWdodCA+PiA4KSAmIDB4RkYsIChoZWlnaHQgLSAxKSAmIDB4RkYpOwotCW1pcGlfZGJpX2NvbW1hbmRfYnVmKG1pcGksIE1JUElfRENTX1dSSVRFX01FTU9SWV9TVEFSVCwKLQkJCSAgICAgKHU4ICopbWlwaS0+dHhfYnVmLCBsZW4pOwotCi0JZHJtX2Rldl9leGl0KGlkeCk7Ci19Ci0KLS8qKgotICogbWlwaV9kYmlfcGlwZV9kaXNhYmxlIC0gTUlQSSBEQkkgcGlwZSBkaXNhYmxlIGhlbHBlcgotICogQHBpcGU6IERpc3BsYXkgcGlwZQotICoKLSAqIFRoaXMgZnVuY3Rpb24gZGlzYWJsZXMgYmFja2xpZ2h0IGlmIHByZXNlbnQsIGlmIG5vdCB0aGUgZGlzcGxheSBtZW1vcnkgaXMKLSAqIGJsYW5rZWQuIFRoZSByZWd1bGF0b3IgaXMgZGlzYWJsZWQgaWYgaW4gdXNlLiBEcml2ZXJzIGNhbiB1c2UgdGhpcyBhcyB0aGVpcgotICogJmRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzLT5kaXNhYmxlIGNhbGxiYWNrLgotICovCi12b2lkIG1pcGlfZGJpX3BpcGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCi17Ci0Jc3RydWN0IG1pcGlfZGJpICptaXBpID0gZHJtX3RvX21pcGlfZGJpKHBpcGUtPmNydGMuZGV2KTsKLQotCWlmICghbWlwaS0+ZW5hYmxlZCkKLQkJcmV0dXJuOwotCi0JRFJNX0RFQlVHX0tNUygiXG4iKTsKLQotCW1pcGktPmVuYWJsZWQgPSBmYWxzZTsKLQotCWlmIChtaXBpLT5iYWNrbGlnaHQpCi0JCWJhY2tsaWdodF9kaXNhYmxlKG1pcGktPmJhY2tsaWdodCk7Ci0JZWxzZQotCQltaXBpX2RiaV9ibGFuayhtaXBpKTsKLQotCWlmIChtaXBpLT5yZWd1bGF0b3IpCi0JCXJlZ3VsYXRvcl9kaXNhYmxlKG1pcGktPnJlZ3VsYXRvcik7Ci19Ci1FWFBPUlRfU1lNQk9MKG1pcGlfZGJpX3BpcGVfZGlzYWJsZSk7Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIG1pcGlfZGJpX21vZGVfY29uZmlnX2Z1bmNzID0gewotCS5mYl9jcmVhdGUgPSBkcm1fZ2VtX2ZiX2NyZWF0ZV93aXRoX2RpcnR5LAotCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKLQkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKLX07Ci0KLXN0YXRpYyBjb25zdCB1aW50MzJfdCBtaXBpX2RiaV9mb3JtYXRzW10gPSB7Ci0JRFJNX0ZPUk1BVF9SR0I1NjUsCi0JRFJNX0ZPUk1BVF9YUkdCODg4OCwKLX07Ci0KLS8qKgotICogbWlwaV9kYmlfaW5pdCAtIE1JUEkgREJJIGluaXRpYWxpemF0aW9uCi0gKiBAbWlwaTogJm1pcGlfZGJpIHN0cnVjdHVyZSB0byBpbml0aWFsaXplCi0gKiBAZnVuY3M6IERpc3BsYXkgcGlwZSBmdW5jdGlvbnMKLSAqIEBtb2RlOiBEaXNwbGF5IG1vZGUKLSAqIEByb3RhdGlvbjogSW5pdGlhbCByb3RhdGlvbiBpbiBkZWdyZWVzIENvdW50ZXIgQ2xvY2sgV2lzZQotICoKLSAqIFRoaXMgZnVuY3Rpb24gc2V0cyB1cCBhICZkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSB3aXRoIGEgJmRybV9jb25uZWN0b3IgdGhhdAotICogaGFzIG9uZSBmaXhlZCAmZHJtX2Rpc3BsYXlfbW9kZSB3aGljaCBpcyByb3RhdGVkIGFjY29yZGluZyB0byBAcm90YXRpb24uCi0gKiBUaGlzIG1vZGUgaXMgdXNlZCB0byBzZXQgdGhlIG1vZGUgY29uZmlnIG1pbi9tYXggd2lkdGgvaGVpZ2h0IHByb3BlcnRpZXMuCi0gKiBBZGRpdGlvbmFsbHkgJm1pcGlfZGJpLnR4X2J1ZiBpcyBhbGxvY2F0ZWQuCi0gKgotICogU3VwcG9ydGVkIGZvcm1hdHM6IE5hdGl2ZSBSR0I1NjUgYW5kIGVtdWxhdGVkIFhSR0I4ODg4LgotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1pcGlfZGJpX2luaXQoc3RydWN0IG1pcGlfZGJpICptaXBpLAotCQkgIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyAqZnVuY3MsCi0JCSAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsIHVuc2lnbmVkIGludCByb3RhdGlvbikKLXsKLQlzaXplX3QgYnVmc2l6ZSA9IG1vZGUtPnZkaXNwbGF5ICogbW9kZS0+aGRpc3BsYXkgKiBzaXplb2YodTE2KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gJm1pcGktPmRybTsKLQlpbnQgcmV0OwotCi0JaWYgKCFtaXBpLT5jb21tYW5kKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCW11dGV4X2luaXQoJm1pcGktPmNtZGxvY2spOwotCi0JbWlwaS0+dHhfYnVmID0gZGV2bV9rbWFsbG9jKGRybS0+ZGV2LCBidWZzaXplLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW1pcGktPnR4X2J1ZikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkvKiBUT0RPOiBNYXliZSBhZGQgRFJNX01PREVfQ09OTkVDVE9SX1NQSSAqLwotCXJldCA9IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQoZHJtLCAmbWlwaS0+cGlwZSwgZnVuY3MsCi0JCQkJCURSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMLAotCQkJCQltaXBpX2RiaV9mb3JtYXRzLAotCQkJCQlBUlJBWV9TSVpFKG1pcGlfZGJpX2Zvcm1hdHMpLCBtb2RlLAotCQkJCQlyb3RhdGlvbik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCWRybV9wbGFuZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzKCZtaXBpLT5waXBlLnBsYW5lKTsKLQotCWRybS0+bW9kZV9jb25maWcuZnVuY3MgPSAmbWlwaV9kYmlfbW9kZV9jb25maWdfZnVuY3M7Ci0JZHJtLT5tb2RlX2NvbmZpZy5wcmVmZXJyZWRfZGVwdGggPSAxNjsKLQltaXBpLT5yb3RhdGlvbiA9IHJvdGF0aW9uOwotCi0JRFJNX0RFQlVHX0tNUygicHJlZmVycmVkX2RlcHRoPSV1LCByb3RhdGlvbiA9ICV1XG4iLAotCQkgICAgICBkcm0tPm1vZGVfY29uZmlnLnByZWZlcnJlZF9kZXB0aCwgcm90YXRpb24pOwotCi0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2luaXQpOwotCi0vKioKLSAqIG1pcGlfZGJpX3JlbGVhc2UgLSBEUk0gZHJpdmVyIHJlbGVhc2UgaGVscGVyCi0gKiBAZHJtOiBEUk0gZGV2aWNlCi0gKgotICogVGhpcyBmdW5jdGlvbiBmaW5hbGl6ZXMgYW5kIGZyZWVzICZtaXBpX2RiaS4KLSAqCi0gKiBEcml2ZXJzIGNhbiB1c2UgdGhpcyBhcyB0aGVpciAmZHJtX2RyaXZlci0+cmVsZWFzZSBjYWxsYmFjay4KLSAqLwotdm9pZCBtaXBpX2RiaV9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCi17Ci0Jc3RydWN0IG1pcGlfZGJpICpkYmkgPSBkcm1fdG9fbWlwaV9kYmkoZHJtKTsKLQotCURSTV9ERUJVR19EUklWRVIoIlxuIik7Ci0KLQlkcm1fbW9kZV9jb25maWdfY2xlYW51cChkcm0pOwotCWRybV9kZXZfZmluaShkcm0pOwotCWtmcmVlKGRiaSk7Ci19Ci1FWFBPUlRfU1lNQk9MKG1pcGlfZGJpX3JlbGVhc2UpOwotCi0vKioKLSAqIG1pcGlfZGJpX2h3X3Jlc2V0IC0gSGFyZHdhcmUgcmVzZXQgb2YgY29udHJvbGxlcgotICogQG1pcGk6IE1JUEkgREJJIHN0cnVjdHVyZQotICoKLSAqIFJlc2V0IGNvbnRyb2xsZXIgaWYgdGhlICZtaXBpX2RiaS0+cmVzZXQgZ3BpbyBpcyBzZXQuCi0gKi8KLXZvaWQgbWlwaV9kYmlfaHdfcmVzZXQoc3RydWN0IG1pcGlfZGJpICptaXBpKQotewotCWlmICghbWlwaS0+cmVzZXQpCi0JCXJldHVybjsKLQotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChtaXBpLT5yZXNldCwgMCk7Ci0JdXNsZWVwX3JhbmdlKDIwLCAxMDAwKTsKLQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAobWlwaS0+cmVzZXQsIDEpOwotCW1zbGVlcCgxMjApOwotfQotRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9od19yZXNldCk7Ci0KLS8qKgotICogbWlwaV9kYmlfZGlzcGxheV9pc19vbiAtIENoZWNrIGlmIGRpc3BsYXkgaXMgb24KLSAqIEBtaXBpOiBNSVBJIERCSSBzdHJ1Y3R1cmUKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyB0aGUgUG93ZXIgTW9kZSByZWdpc3RlciAoaWYgcmVhZGFibGUpIHRvIHNlZSBpZgotICogZGlzcGxheSBvdXRwdXQgaXMgdHVybmVkIG9uLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHNlZSBpZiB0aGUgYm9vdGxvYWRlcgotICogaGFzIGFscmVhZHkgdHVybmVkIG9uIHRoZSBkaXNwbGF5IGF2b2lkaW5nIGZsaWNrZXIgd2hlbiB0aGUgcGlwZWxpbmUgaXMKLSAqIGVuYWJsZWQuCi0gKgotICogUmV0dXJuczoKLSAqIHRydWUgaWYgdGhlIGRpc3BsYXkgY2FuIGJlIHZlcmlmaWVkIHRvIGJlIG9uLCBmYWxzZSBvdGhlcndpc2UuCi0gKi8KLWJvb2wgbWlwaV9kYmlfZGlzcGxheV9pc19vbihzdHJ1Y3QgbWlwaV9kYmkgKm1pcGkpCi17Ci0JdTggdmFsOwotCi0JaWYgKG1pcGlfZGJpX2NvbW1hbmRfcmVhZChtaXBpLCBNSVBJX0RDU19HRVRfUE9XRVJfTU9ERSwgJnZhbCkpCi0JCXJldHVybiBmYWxzZTsKLQotCXZhbCAmPSB+RENTX1BPV0VSX01PREVfUkVTRVJWRURfTUFTSzsKLQotCS8qIFRoZSBwb3dlcm9uL3Jlc2V0IHZhbHVlIGlzIDA4aCBEQ1NfUE9XRVJfTU9ERV9ESVNQTEFZX05PUk1BTF9NT0RFICovCi0JaWYgKHZhbCAhPSAoRENTX1BPV0VSX01PREVfRElTUExBWSB8Ci0JICAgIERDU19QT1dFUl9NT0RFX0RJU1BMQVlfTk9STUFMX01PREUgfCBEQ1NfUE9XRVJfTU9ERV9TTEVFUF9NT0RFKSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JRFJNX0RFQlVHX0RSSVZFUigiRGlzcGxheSBpcyBPTlxuIik7Ci0KLQlyZXR1cm4gdHJ1ZTsKLX0KLUVYUE9SVF9TWU1CT0wobWlwaV9kYmlfZGlzcGxheV9pc19vbik7Ci0KLXN0YXRpYyBpbnQgbWlwaV9kYmlfcG93ZXJvbl9yZXNldF9jb25kaXRpb25hbChzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksIGJvb2wgY29uZCkKLXsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBtaXBpLT5kcm0uZGV2OwotCWludCByZXQ7Ci0KLQlpZiAobWlwaS0+cmVndWxhdG9yKSB7Ci0JCXJldCA9IHJlZ3VsYXRvcl9lbmFibGUobWlwaS0+cmVndWxhdG9yKTsKLQkJaWYgKHJldCkgewotCQkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZW5hYmxlIHJlZ3VsYXRvciAoJWQpXG4iLCByZXQpOwotCQkJcmV0dXJuIHJldDsKLQkJfQotCX0KLQotCWlmIChjb25kICYmIG1pcGlfZGJpX2Rpc3BsYXlfaXNfb24obWlwaSkpCi0JCXJldHVybiAxOwotCi0JbWlwaV9kYmlfaHdfcmVzZXQobWlwaSk7Ci0JcmV0ID0gbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TT0ZUX1JFU0VUKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIHNlbmQgcmVzZXQgY29tbWFuZCAoJWQpXG4iLCByZXQpOwotCQlpZiAobWlwaS0+cmVndWxhdG9yKQotCQkJcmVndWxhdG9yX2Rpc2FibGUobWlwaS0+cmVndWxhdG9yKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQkvKgotCSAqIElmIHdlIGRpZCBhIGh3IHJlc2V0LCB3ZSBrbm93IHRoZSBjb250cm9sbGVyIGlzIGluIFNsZWVwIG1vZGUgYW5kCi0JICogcGVyIE1JUEkgRFNDIHNwZWMgc2hvdWxkIHdhaXQgNW1zIGFmdGVyIHNvZnQgcmVzZXQuIElmIHdlIGRpZG4ndCwKLQkgKiB3ZSBhc3N1bWUgd29yc3QgY2FzZSBhbmQgd2FpdCAxMjBtcy4KLQkgKi8KLQlpZiAobWlwaS0+cmVzZXQpCi0JCXVzbGVlcF9yYW5nZSg1MDAwLCAyMDAwMCk7Ci0JZWxzZQotCQltc2xlZXAoMTIwKTsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIG1pcGlfZGJpX3Bvd2Vyb25fcmVzZXQgLSBNSVBJIERCSSBwb3dlcm9uIGFuZCByZXNldAotICogQG1pcGk6IE1JUEkgREJJIHN0cnVjdHVyZQotICoKLSAqIFRoaXMgZnVuY3Rpb24gZW5hYmxlcyB0aGUgcmVndWxhdG9yIGlmIHVzZWQgYW5kIGRvZXMgYSBoYXJkd2FyZSBhbmQgc29mdHdhcmUKLSAqIHJlc2V0LgotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KLSAqLwotaW50IG1pcGlfZGJpX3Bvd2Vyb25fcmVzZXQoc3RydWN0IG1pcGlfZGJpICptaXBpKQotewotCXJldHVybiBtaXBpX2RiaV9wb3dlcm9uX3Jlc2V0X2NvbmRpdGlvbmFsKG1pcGksIGZhbHNlKTsKLX0KLUVYUE9SVF9TWU1CT0wobWlwaV9kYmlfcG93ZXJvbl9yZXNldCk7Ci0KLS8qKgotICogbWlwaV9kYmlfcG93ZXJvbl9jb25kaXRpb25hbF9yZXNldCAtIE1JUEkgREJJIHBvd2Vyb24gYW5kIGNvbmRpdGlvbmFsIHJlc2V0Ci0gKiBAbWlwaTogTUlQSSBEQkkgc3RydWN0dXJlCi0gKgotICogVGhpcyBmdW5jdGlvbiBlbmFibGVzIHRoZSByZWd1bGF0b3IgaWYgdXNlZCBhbmQgaWYgdGhlIGRpc3BsYXkgaXMgb2ZmLCBpdAotICogZG9lcyBhIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSByZXNldC4gSWYgbWlwaV9kYmlfZGlzcGxheV9pc19vbigpIGRldGVybWluZXMKLSAqIHRoYXQgdGhlIGRpc3BsYXkgaXMgb24sIG5vIHJlc2V0IGlzIHBlcmZvcm1lZC4KLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBpZiB0aGUgY29udHJvbGxlciB3YXMgcmVzZXQsIDEgaWYgdGhlIGRpc3BsYXkgd2FzIGFscmVhZHkgb24sIG9yIGEKLSAqIG5lZ2F0aXZlIGVycm9yIGNvZGUuCi0gKi8KLWludCBtaXBpX2RiaV9wb3dlcm9uX2NvbmRpdGlvbmFsX3Jlc2V0KHN0cnVjdCBtaXBpX2RiaSAqbWlwaSkKLXsKLQlyZXR1cm4gbWlwaV9kYmlfcG93ZXJvbl9yZXNldF9jb25kaXRpb25hbChtaXBpLCB0cnVlKTsKLX0KLUVYUE9SVF9TWU1CT0wobWlwaV9kYmlfcG93ZXJvbl9jb25kaXRpb25hbF9yZXNldCk7Ci0KLSNpZiBJU19FTkFCTEVEKENPTkZJR19TUEkpCi0KLS8qKgotICogbWlwaV9kYmlfc3BpX2NtZF9tYXhfc3BlZWQgLSBnZXQgdGhlIG1heGltdW0gU1BJIGJ1cyBzcGVlZAotICogQHNwaTogU1BJIGRldmljZQotICogQGxlbjogVGhlIHRyYW5zZmVyIGJ1ZmZlciBsZW5ndGguCi0gKgotICogTWFueSBjb250cm9sbGVycyBoYXZlIGEgbWF4IHNwZWVkIG9mIDEwTUh6LCBidXQgY2FuIGJlIHB1c2hlZCB3YXkgYmV5b25kCi0gKiB0aGF0LiBJbmNyZWFzZSByZWxpYWJpbGl0eSBieSBydW5uaW5nIHBpeGVsIGRhdGEgYXQgbWF4IHNwZWVkIGFuZCB0aGUgcmVzdAotICogYXQgMTBNSHosIHByZXZlbnRpbmcgdHJhbnNmZXIgZ2xpdGNoZXMgZnJvbSBtZXNzaW5nIHVwIHRoZSBpbml0IHNldHRpbmdzLgotICovCi11MzIgbWlwaV9kYmlfc3BpX2NtZF9tYXhfc3BlZWQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc2l6ZV90IGxlbikKLXsKLQlpZiAobGVuID4gNjQpCi0JCXJldHVybiAwOyAvKiB1c2UgZGVmYXVsdCAqLwotCi0JcmV0dXJuIG1pbl90KHUzMiwgMTAwMDAwMDAsIHNwaS0+bWF4X3NwZWVkX2h6KTsKLX0KLUVYUE9SVF9TWU1CT0wobWlwaV9kYmlfc3BpX2NtZF9tYXhfc3BlZWQpOwotCi0vKgotICogTUlQSSBEQkkgVHlwZSBDIE9wdGlvbiAxCi0gKgotICogSWYgdGhlIFNQSSBjb250cm9sbGVyIGRvZXNuJ3QgaGF2ZSA5IGJpdHMgcGVyIHdvcmQgc3VwcG9ydCwKLSAqIHVzZSBibG9ja3Mgb2YgOSBieXRlcyB0byBzZW5kIDh4IDktYml0IHdvcmRzIHVzaW5nIGEgOC1iaXQgU1BJIHRyYW5zZmVyLgotICogUGFkIHBhcnRpYWwgYmxvY2tzIHdpdGggTUlQSV9EQ1NfTk9QICh6ZXJvKS4KLSAqIFRoaXMgaXMgaG93IHRoZSBEL0MgYml0ICh4KSBpcyBhZGRlZDoKLSAqICAgICB4NzY1NDMyMQotICogICAgIDB4NzY1NDMyCi0gKiAgICAgMTB4NzY1NDMKLSAqICAgICAyMTB4NzY1NAotICogICAgIDMyMTB4NzY1Ci0gKiAgICAgNDMyMTB4NzYKLSAqICAgICA1NDMyMTB4NwotICogICAgIDY1NDMyMTB4Ci0gKiAgICAgNzY1NDMyMTAKLSAqLwotCi1zdGF0aWMgaW50IG1pcGlfZGJpX3NwaTFlX3RyYW5zZmVyKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwgaW50IGRjLAotCQkJCSAgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwKLQkJCQkgICB1bnNpZ25lZCBpbnQgYnB3KQotewotCWJvb2wgc3dhcF9ieXRlcyA9IChicHcgPT0gMTYgJiYgdGlueWRybV9tYWNoaW5lX2xpdHRsZV9lbmRpYW4oKSk7Ci0Jc2l6ZV90IGNodW5rLCBtYXhfY2h1bmsgPSBtaXBpLT50eF9idWY5X2xlbjsKLQlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gbWlwaS0+c3BpOwotCXN0cnVjdCBzcGlfdHJhbnNmZXIgdHIgPSB7Ci0JCS50eF9idWYgPSBtaXBpLT50eF9idWY5LAotCQkuYml0c19wZXJfd29yZCA9IDgsCi0JfTsKLQlzdHJ1Y3Qgc3BpX21lc3NhZ2UgbTsKLQljb25zdCB1OCAqc3JjID0gYnVmOwotCWludCBpLCByZXQ7Ci0JdTggKmRzdDsKLQotCWlmIChkcm1fZGVidWcgJiBEUk1fVVRfRFJJVkVSKQotCQlwcl9kZWJ1ZygiW2RybTolc10gZGM9JWQsIG1heF9jaHVuaz0lenUsIHRyYW5zZmVyczpcbiIsCi0JCQkgX19mdW5jX18sIGRjLCBtYXhfY2h1bmspOwotCi0JdHIuc3BlZWRfaHogPSBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZChzcGksIGxlbik7Ci0Jc3BpX21lc3NhZ2VfaW5pdF93aXRoX3RyYW5zZmVycygmbSwgJnRyLCAxKTsKLQotCWlmICghZGMpIHsKLQkJaWYgKFdBUk5fT05fT05DRShsZW4gIT0gMSkpCi0JCQlyZXR1cm4gLUVJTlZBTDsKLQotCQkvKiBDb21tYW5kOiBwYWQgbm8tb3AncyAoemVyb2VzKSBhdCBiZWdpbm5pbmcgb2YgYmxvY2sgKi8KLQkJZHN0ID0gbWlwaS0+dHhfYnVmOTsKLQkJbWVtc2V0KGRzdCwgMCwgOSk7Ci0JCWRzdFs4XSA9ICpzcmM7Ci0JCXRyLmxlbiA9IDk7Ci0KLQkJdGlueWRybV9kYmdfc3BpX21lc3NhZ2Uoc3BpLCAmbSk7Ci0KLQkJcmV0dXJuIHNwaV9zeW5jKHNwaSwgJm0pOwotCX0KLQotCS8qIG1heCB3aXRoIHJvb20gZm9yIGFkZGluZyBvbmUgYml0IHBlciBieXRlICovCi0JbWF4X2NodW5rID0gbWF4X2NodW5rIC8gOSAqIDg7Ci0JLyogYnV0IG5vIGJpZ2dlciB0aGFuIGxlbiAqLwotCW1heF9jaHVuayA9IG1pbihtYXhfY2h1bmssIGxlbik7Ci0JLyogOCBieXRlIGJsb2NrcyAqLwotCW1heF9jaHVuayA9IG1heF90KHNpemVfdCwgOCwgbWF4X2NodW5rICYgfjB4Nyk7Ci0KLQl3aGlsZSAobGVuKSB7Ci0JCXNpemVfdCBhZGRlZCA9IDA7Ci0KLQkJY2h1bmsgPSBtaW4obGVuLCBtYXhfY2h1bmspOwotCQlsZW4gLT0gY2h1bms7Ci0JCWRzdCA9IG1pcGktPnR4X2J1Zjk7Ci0KLQkJaWYgKGNodW5rIDwgOCkgewotCQkJdTggdmFsLCBjYXJyeSA9IDA7Ci0KLQkJCS8qIERhdGE6IHBhZCBuby1vcCdzICh6ZXJvZXMpIGF0IGVuZCBvZiBibG9jayAqLwotCQkJbWVtc2V0KGRzdCwgMCwgOSk7Ci0KLQkJCWlmIChzd2FwX2J5dGVzKSB7Ci0JCQkJZm9yIChpID0gMTsgaSA8IChjaHVuayArIDEpOyBpKyspIHsKLQkJCQkJdmFsID0gc3JjWzFdOwotCQkJCQkqZHN0KysgPSBjYXJyeSB8IEJJVCg4IC0gaSkgfCAodmFsID4+IGkpOwotCQkJCQljYXJyeSA9IHZhbCA8PCAoOCAtIGkpOwotCQkJCQlpKys7Ci0JCQkJCXZhbCA9IHNyY1swXTsKLQkJCQkJKmRzdCsrID0gY2FycnkgfCBCSVQoOCAtIGkpIHwgKHZhbCA+PiBpKTsKLQkJCQkJY2FycnkgPSB2YWwgPDwgKDggLSBpKTsKLQkJCQkJc3JjICs9IDI7Ci0JCQkJfQotCQkJCSpkc3QrKyA9IGNhcnJ5OwotCQkJfSBlbHNlIHsKLQkJCQlmb3IgKGkgPSAxOyBpIDwgKGNodW5rICsgMSk7IGkrKykgewotCQkJCQl2YWwgPSAqc3JjKys7Ci0JCQkJCSpkc3QrKyA9IGNhcnJ5IHwgQklUKDggLSBpKSB8ICh2YWwgPj4gaSk7Ci0JCQkJCWNhcnJ5ID0gdmFsIDw8ICg4IC0gaSk7Ci0JCQkJfQotCQkJCSpkc3QrKyA9IGNhcnJ5OwotCQkJfQotCi0JCQljaHVuayA9IDg7Ci0JCQlhZGRlZCA9IDE7Ci0JCX0gZWxzZSB7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgY2h1bms7IGkgKz0gOCkgewotCQkJCWlmIChzd2FwX2J5dGVzKSB7Ci0JCQkJCSpkc3QrKyA9ICAgICAgICAgICAgICAgICBCSVQoNykgfCAoc3JjWzFdID4+IDEpOwotCQkJCQkqZHN0KysgPSAoc3JjWzFdIDw8IDcpIHwgQklUKDYpIHwgKHNyY1swXSA+PiAyKTsKLQkJCQkJKmRzdCsrID0gKHNyY1swXSA8PCA2KSB8IEJJVCg1KSB8IChzcmNbM10gPj4gMyk7Ci0JCQkJCSpkc3QrKyA9IChzcmNbM10gPDwgNSkgfCBCSVQoNCkgfCAoc3JjWzJdID4+IDQpOwotCQkJCQkqZHN0KysgPSAoc3JjWzJdIDw8IDQpIHwgQklUKDMpIHwgKHNyY1s1XSA+PiA1KTsKLQkJCQkJKmRzdCsrID0gKHNyY1s1XSA8PCAzKSB8IEJJVCgyKSB8IChzcmNbNF0gPj4gNik7Ci0JCQkJCSpkc3QrKyA9IChzcmNbNF0gPDwgMikgfCBCSVQoMSkgfCAoc3JjWzddID4+IDcpOwotCQkJCQkqZHN0KysgPSAoc3JjWzddIDw8IDEpIHwgQklUKDApOwotCQkJCQkqZHN0KysgPSBzcmNbNl07Ci0JCQkJfSBlbHNlIHsKLQkJCQkJKmRzdCsrID0gICAgICAgICAgICAgICAgIEJJVCg3KSB8IChzcmNbMF0gPj4gMSk7Ci0JCQkJCSpkc3QrKyA9IChzcmNbMF0gPDwgNykgfCBCSVQoNikgfCAoc3JjWzFdID4+IDIpOwotCQkJCQkqZHN0KysgPSAoc3JjWzFdIDw8IDYpIHwgQklUKDUpIHwgKHNyY1syXSA+PiAzKTsKLQkJCQkJKmRzdCsrID0gKHNyY1syXSA8PCA1KSB8IEJJVCg0KSB8IChzcmNbM10gPj4gNCk7Ci0JCQkJCSpkc3QrKyA9IChzcmNbM10gPDwgNCkgfCBCSVQoMykgfCAoc3JjWzRdID4+IDUpOwotCQkJCQkqZHN0KysgPSAoc3JjWzRdIDw8IDMpIHwgQklUKDIpIHwgKHNyY1s1XSA+PiA2KTsKLQkJCQkJKmRzdCsrID0gKHNyY1s1XSA8PCAyKSB8IEJJVCgxKSB8IChzcmNbNl0gPj4gNyk7Ci0JCQkJCSpkc3QrKyA9IChzcmNbNl0gPDwgMSkgfCBCSVQoMCk7Ci0JCQkJCSpkc3QrKyA9IHNyY1s3XTsKLQkJCQl9Ci0KLQkJCQlzcmMgKz0gODsKLQkJCQlhZGRlZCsrOwotCQkJfQotCQl9Ci0KLQkJdHIubGVuID0gY2h1bmsgKyBhZGRlZDsKLQotCQl0aW55ZHJtX2RiZ19zcGlfbWVzc2FnZShzcGksICZtKTsKLQkJcmV0ID0gc3BpX3N5bmMoc3BpLCAmbSk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IG1pcGlfZGJpX3NwaTFfdHJhbnNmZXIoc3RydWN0IG1pcGlfZGJpICptaXBpLCBpbnQgZGMsCi0JCQkJICBjb25zdCB2b2lkICpidWYsIHNpemVfdCBsZW4sCi0JCQkJICB1bnNpZ25lZCBpbnQgYnB3KQotewotCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBtaXBpLT5zcGk7Ci0Jc3RydWN0IHNwaV90cmFuc2ZlciB0ciA9IHsKLQkJLmJpdHNfcGVyX3dvcmQgPSA5LAotCX07Ci0JY29uc3QgdTE2ICpzcmMxNiA9IGJ1ZjsKLQljb25zdCB1OCAqc3JjOCA9IGJ1ZjsKLQlzdHJ1Y3Qgc3BpX21lc3NhZ2UgbTsKLQlzaXplX3QgbWF4X2NodW5rOwotCXUxNiAqZHN0MTY7Ci0JaW50IHJldDsKLQotCWlmICghdGlueWRybV9zcGlfYnB3X3N1cHBvcnRlZChzcGksIDkpKQotCQlyZXR1cm4gbWlwaV9kYmlfc3BpMWVfdHJhbnNmZXIobWlwaSwgZGMsIGJ1ZiwgbGVuLCBicHcpOwotCi0JdHIuc3BlZWRfaHogPSBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZChzcGksIGxlbik7Ci0JbWF4X2NodW5rID0gbWlwaS0+dHhfYnVmOV9sZW47Ci0JZHN0MTYgPSBtaXBpLT50eF9idWY5OwotCi0JaWYgKGRybV9kZWJ1ZyAmIERSTV9VVF9EUklWRVIpCi0JCXByX2RlYnVnKCJbZHJtOiVzXSBkYz0lZCwgbWF4X2NodW5rPSV6dSwgdHJhbnNmZXJzOlxuIiwKLQkJCSBfX2Z1bmNfXywgZGMsIG1heF9jaHVuayk7Ci0KLQltYXhfY2h1bmsgPSBtaW4obWF4X2NodW5rIC8gMiwgbGVuKTsKLQotCXNwaV9tZXNzYWdlX2luaXRfd2l0aF90cmFuc2ZlcnMoJm0sICZ0ciwgMSk7Ci0JdHIudHhfYnVmID0gZHN0MTY7Ci0KLQl3aGlsZSAobGVuKSB7Ci0JCXNpemVfdCBjaHVuayA9IG1pbihsZW4sIG1heF9jaHVuayk7Ci0JCXVuc2lnbmVkIGludCBpOwotCi0JCWlmIChicHcgPT0gMTYgJiYgdGlueWRybV9tYWNoaW5lX2xpdHRsZV9lbmRpYW4oKSkgewotCQkJZm9yIChpID0gMDsgaSA8IChjaHVuayAqIDIpOyBpICs9IDIpIHsKLQkJCQlkc3QxNltpXSAgICAgPSAqc3JjMTYgPj4gODsKLQkJCQlkc3QxNltpICsgMV0gPSAqc3JjMTYrKyAmIDB4RkY7Ci0JCQkJaWYgKGRjKSB7Ci0JCQkJCWRzdDE2W2ldICAgICB8PSAweDAxMDA7Ci0JCQkJCWRzdDE2W2kgKyAxXSB8PSAweDAxMDA7Ci0JCQkJfQotCQkJfQotCQl9IGVsc2UgewotCQkJZm9yIChpID0gMDsgaSA8IGNodW5rOyBpKyspIHsKLQkJCQlkc3QxNltpXSA9ICpzcmM4Kys7Ci0JCQkJaWYgKGRjKQotCQkJCQlkc3QxNltpXSB8PSAweDAxMDA7Ci0JCQl9Ci0JCX0KLQotCQl0ci5sZW4gPSBjaHVuazsKLQkJbGVuIC09IGNodW5rOwotCi0JCXRpbnlkcm1fZGJnX3NwaV9tZXNzYWdlKHNwaSwgJm0pOwotCQlyZXQgPSBzcGlfc3luYyhzcGksICZtKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbWlwaV9kYmlfdHlwZWMxX2NvbW1hbmQoc3RydWN0IG1pcGlfZGJpICptaXBpLCB1OCAqY21kLAotCQkJCSAgIHU4ICpwYXJhbWV0ZXJzLCBzaXplX3QgbnVtKQotewotCXVuc2lnbmVkIGludCBicHcgPSAoKmNtZCA9PSBNSVBJX0RDU19XUklURV9NRU1PUllfU1RBUlQpID8gMTYgOiA4OwotCWludCByZXQ7Ci0KLQlpZiAobWlwaV9kYmlfY29tbWFuZF9pc19yZWFkKG1pcGksICpjbWQpKQotCQlyZXR1cm4gLUVOT1RTVVBQOwotCi0JTUlQSV9EQklfREVCVUdfQ09NTUFORCgqY21kLCBwYXJhbWV0ZXJzLCBudW0pOwotCi0JcmV0ID0gbWlwaV9kYmlfc3BpMV90cmFuc2ZlcihtaXBpLCAwLCBjbWQsIDEsIDgpOwotCWlmIChyZXQgfHwgIW51bSkKLQkJcmV0dXJuIHJldDsKLQotCXJldHVybiBtaXBpX2RiaV9zcGkxX3RyYW5zZmVyKG1pcGksIDEsIHBhcmFtZXRlcnMsIG51bSwgYnB3KTsKLX0KLQotLyogTUlQSSBEQkkgVHlwZSBDIE9wdGlvbiAzICovCi0KLXN0YXRpYyBpbnQgbWlwaV9kYmlfdHlwZWMzX2NvbW1hbmRfcmVhZChzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksIHU4ICpjbWQsCi0JCQkJCXU4ICpkYXRhLCBzaXplX3QgbGVuKQotewotCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBtaXBpLT5zcGk7Ci0JdTMyIHNwZWVkX2h6ID0gbWluX3QodTMyLCBNSVBJX0RCSV9NQVhfU1BJX1JFQURfU1BFRUQsCi0JCQkgICAgIHNwaS0+bWF4X3NwZWVkX2h6IC8gMik7Ci0Jc3RydWN0IHNwaV90cmFuc2ZlciB0clsyXSA9IHsKLQkJewotCQkJLnNwZWVkX2h6ID0gc3BlZWRfaHosCi0JCQkudHhfYnVmID0gY21kLAotCQkJLmxlbiA9IDEsCi0JCX0sIHsKLQkJCS5zcGVlZF9oeiA9IHNwZWVkX2h6LAotCQkJLmxlbiA9IGxlbiwKLQkJfSwKLQl9OwotCXN0cnVjdCBzcGlfbWVzc2FnZSBtOwotCXU4ICpidWY7Ci0JaW50IHJldDsKLQotCWlmICghbGVuKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCS8qCi0JICogU3VwcG9ydCBub24tc3RhbmRhcmQgMjQtYml0IGFuZCAzMi1iaXQgTm9raWEgcmVhZCBjb21tYW5kcyB3aGljaAotCSAqIHN0YXJ0IHdpdGggYSBkdW1teSBjbG9jaywgc28gd2UgbmVlZCB0byByZWFkIGFuIGV4dHJhIGJ5dGUuCi0JICovCi0JaWYgKCpjbWQgPT0gTUlQSV9EQ1NfR0VUX0RJU1BMQVlfSUQgfHwKLQkgICAgKmNtZCA9PSBNSVBJX0RDU19HRVRfRElTUExBWV9TVEFUVVMpIHsKLQkJaWYgKCEobGVuID09IDMgfHwgbGVuID09IDQpKQotCQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQkJdHJbMV0ubGVuID0gbGVuICsgMTsKLQl9Ci0KLQlidWYgPSBrbWFsbG9jKHRyWzFdLmxlbiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JdHJbMV0ucnhfYnVmID0gYnVmOwotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChtaXBpLT5kYywgMCk7Ci0KLQlzcGlfbWVzc2FnZV9pbml0X3dpdGhfdHJhbnNmZXJzKCZtLCB0ciwgQVJSQVlfU0laRSh0cikpOwotCXJldCA9IHNwaV9zeW5jKHNwaSwgJm0pOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2ZyZWU7Ci0KLQl0aW55ZHJtX2RiZ19zcGlfbWVzc2FnZShzcGksICZtKTsKLQotCWlmICh0clsxXS5sZW4gPT0gbGVuKSB7Ci0JCW1lbWNweShkYXRhLCBidWYsIGxlbik7Ci0JfSBlbHNlIHsKLQkJdW5zaWduZWQgaW50IGk7Ci0KLQkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQotCQkJZGF0YVtpXSA9IChidWZbaV0gPDwgMSkgfCAhIShidWZbaSArIDFdICYgQklUKDcpKTsKLQl9Ci0KLQlNSVBJX0RCSV9ERUJVR19DT01NQU5EKCpjbWQsIGRhdGEsIGxlbik7Ci0KLWVycl9mcmVlOgotCWtmcmVlKGJ1Zik7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IG1pcGlfZGJpX3R5cGVjM19jb21tYW5kKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwgdTggKmNtZCwKLQkJCQkgICB1OCAqcGFyLCBzaXplX3QgbnVtKQotewotCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBtaXBpLT5zcGk7Ci0JdW5zaWduZWQgaW50IGJwdyA9IDg7Ci0JdTMyIHNwZWVkX2h6OwotCWludCByZXQ7Ci0KLQlpZiAobWlwaV9kYmlfY29tbWFuZF9pc19yZWFkKG1pcGksICpjbWQpKQotCQlyZXR1cm4gbWlwaV9kYmlfdHlwZWMzX2NvbW1hbmRfcmVhZChtaXBpLCBjbWQsIHBhciwgbnVtKTsKLQotCU1JUElfREJJX0RFQlVHX0NPTU1BTkQoKmNtZCwgcGFyLCBudW0pOwotCi0JZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKG1pcGktPmRjLCAwKTsKLQlzcGVlZF9oeiA9IG1pcGlfZGJpX3NwaV9jbWRfbWF4X3NwZWVkKHNwaSwgMSk7Ci0JcmV0ID0gdGlueWRybV9zcGlfdHJhbnNmZXIoc3BpLCBzcGVlZF9oeiwgTlVMTCwgOCwgY21kLCAxKTsKLQlpZiAocmV0IHx8ICFudW0pCi0JCXJldHVybiByZXQ7Ci0KLQlpZiAoKmNtZCA9PSBNSVBJX0RDU19XUklURV9NRU1PUllfU1RBUlQgJiYgIW1pcGktPnN3YXBfYnl0ZXMpCi0JCWJwdyA9IDE2OwotCi0JZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKG1pcGktPmRjLCAxKTsKLQlzcGVlZF9oeiA9IG1pcGlfZGJpX3NwaV9jbWRfbWF4X3NwZWVkKHNwaSwgbnVtKTsKLQotCXJldHVybiB0aW55ZHJtX3NwaV90cmFuc2ZlcihzcGksIHNwZWVkX2h6LCBOVUxMLCBicHcsIHBhciwgbnVtKTsKLX0KLQotLyoqCi0gKiBtaXBpX2RiaV9zcGlfaW5pdCAtIEluaXRpYWxpemUgTUlQSSBEQkkgU1BJIGludGVyZmFjZWQgY29udHJvbGxlcgotICogQHNwaTogU1BJIGRldmljZQotICogQG1pcGk6ICZtaXBpX2RiaSBzdHJ1Y3R1cmUgdG8gaW5pdGlhbGl6ZQotICogQGRjOiBEL0MgZ3BpbyAob3B0aW9uYWwpCi0gKgotICogVGhpcyBmdW5jdGlvbiBzZXRzICZtaXBpX2RiaS0+Y29tbWFuZCwgZW5hYmxlcyAmbWlwaS0+cmVhZF9jb21tYW5kcyBmb3IgdGhlCi0gKiB1c3VhbCByZWFkIGNvbW1hbmRzLiBJdCBzaG91bGQgYmUgZm9sbG93ZWQgYnkgYSBjYWxsIHRvIG1pcGlfZGJpX2luaXQoKSBvcgotICogYSBkcml2ZXItc3BlY2lmaWMgaW5pdC4KLSAqCi0gKiBJZiBAZGMgaXMgc2V0LCBhIFR5cGUgQyBPcHRpb24gMyBpbnRlcmZhY2UgaXMgYXNzdW1lZCwgaWYgbm90Ci0gKiBUeXBlIEMgT3B0aW9uIDEuCi0gKgotICogSWYgdGhlIFNQSSBtYXN0ZXIgZHJpdmVyIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgbmVjZXNzYXJ5IGJpdHMgcGVyIHdvcmQsCi0gKiB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uIGlzIHVzZWQ6Ci0gKgotICogLSA5LWJpdDogcmVvcmRlciBidWZmZXIgYXMgOXggOC1iaXQgd29yZHMsIHBhZGRlZCB3aXRoIG5vLW9wIGNvbW1hbmQuCi0gKiAtIDE2LWJpdDogaWYgYmlnIGVuZGlhbiBzZW5kIGFzIDgtYml0LCBpZiBsaXR0bGUgZW5kaWFuIHN3YXAgYnl0ZXMKLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtaXBpX2RiaV9zcGlfaW5pdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksCi0JCSAgICAgIHN0cnVjdCBncGlvX2Rlc2MgKmRjKQotewotCXNpemVfdCB0eF9zaXplID0gdGlueWRybV9zcGlfbWF4X3RyYW5zZmVyX3NpemUoc3BpLCAwKTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmc3BpLT5kZXY7Ci0JaW50IHJldDsKLQotCWlmICh0eF9zaXplIDwgMTYpIHsKLQkJRFJNX0VSUk9SKCJTUEkgdHJhbnNtaXQgYnVmZmVyIHRvbyBzbWFsbDogJXp1XG4iLCB0eF9zaXplKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyoKLQkgKiBFdmVuIHRob3VnaCBpdCdzIG5vdCB0aGUgU1BJIGRldmljZSB0aGF0IGRvZXMgRE1BICh0aGUgbWFzdGVyIGRvZXMpLAotCSAqIHRoZSBkbWEgbWFzayBpcyBuZWNlc3NhcnkgZm9yIHRoZSBkbWFfYWxsb2Nfd2MoKSBpbgotCSAqIGRybV9nZW1fY21hX2NyZWF0ZSgpLiBUaGUgZG1hX2FkZHIgcmV0dXJuZWQgd2lsbCBiZSBhIHBoeXNpY2FsCi0JICogYWRkcmVzcyB3aGljaCBtaWdodCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgYnVzIGFkZHJlc3MsIGJ1dCB0aGlzIGlzCi0JICogbm90IGEgcHJvYmxlbSBzaW5jZSB0aGUgYWRkcmVzcyB3aWxsIG5vdCBiZSB1c2VkLgotCSAqIFRoZSB2aXJ0dWFsIGFkZHJlc3MgaXMgdXNlZCBpbiB0aGUgdHJhbnNmZXIgYW5kIHRoZSBTUEkgY29yZQotCSAqIHJlLW1hcHMgaXQgb24gdGhlIFNQSSBtYXN0ZXIgZGV2aWNlIHVzaW5nIHRoZSBETUEgc3RyZWFtaW5nIEFQSQotCSAqIChzcGlfbWFwX2J1ZigpKS4KLQkgKi8KLQlpZiAoIWRldi0+Y29oZXJlbnRfZG1hX21hc2spIHsKLQkJcmV0ID0gZG1hX2NvZXJjZV9tYXNrX2FuZF9jb2hlcmVudChkZXYsIERNQV9CSVRfTUFTSygzMikpOwotCQlpZiAocmV0KSB7Ci0JCQlkZXZfd2FybihkZXYsICJGYWlsZWQgdG8gc2V0IGRtYSBtYXNrICVkXG4iLCByZXQpOwotCQkJcmV0dXJuIHJldDsKLQkJfQotCX0KLQotCW1pcGktPnNwaSA9IHNwaTsKLQltaXBpLT5yZWFkX2NvbW1hbmRzID0gbWlwaV9kYmlfZGNzX3JlYWRfY29tbWFuZHM7Ci0KLQlpZiAoZGMpIHsKLQkJbWlwaS0+Y29tbWFuZCA9IG1pcGlfZGJpX3R5cGVjM19jb21tYW5kOwotCQltaXBpLT5kYyA9IGRjOwotCQlpZiAodGlueWRybV9tYWNoaW5lX2xpdHRsZV9lbmRpYW4oKSAmJgotCQkgICAgIXRpbnlkcm1fc3BpX2Jwd19zdXBwb3J0ZWQoc3BpLCAxNikpCi0JCQltaXBpLT5zd2FwX2J5dGVzID0gdHJ1ZTsKLQl9IGVsc2UgewotCQltaXBpLT5jb21tYW5kID0gbWlwaV9kYmlfdHlwZWMxX2NvbW1hbmQ7Ci0JCW1pcGktPnR4X2J1ZjlfbGVuID0gdHhfc2l6ZTsKLQkJbWlwaS0+dHhfYnVmOSA9IGRldm1fa21hbGxvYyhkZXYsIHR4X3NpemUsIEdGUF9LRVJORUwpOwotCQlpZiAoIW1pcGktPnR4X2J1ZjkpCi0JCQlyZXR1cm4gLUVOT01FTTsKLQl9Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJTUEkgc3BlZWQ6ICV1TUh6XG4iLCBzcGktPm1heF9zcGVlZF9oeiAvIDEwMDAwMDApOwotCi0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MKG1pcGlfZGJpX3NwaV9pbml0KTsKLQotI2VuZGlmIC8qIENPTkZJR19TUEkgKi8KLQotI2lmZGVmIENPTkZJR19ERUJVR19GUwotCi1zdGF0aWMgc3NpemVfdCBtaXBpX2RiaV9kZWJ1Z2ZzX2NvbW1hbmRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCi0JCQkJCSAgICAgIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAotCQkJCQkgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKLXsKLQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IG1pcGlfZGJpICptaXBpID0gbS0+cHJpdmF0ZTsKLQl1OCB2YWwsIGNtZCA9IDAsIHBhcmFtZXRlcnNbNjRdOwotCWNoYXIgKmJ1ZiwgKnBvcywgKnRva2VuOwotCXVuc2lnbmVkIGludCBpOwotCWludCByZXQsIGlkeDsKLQotCWlmICghZHJtX2Rldl9lbnRlcigmbWlwaS0+ZHJtLCAmaWR4KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlidWYgPSBtZW1kdXBfdXNlcl9udWwodWJ1ZiwgY291bnQpOwotCWlmIChJU19FUlIoYnVmKSkgewotCQlyZXQgPSBQVFJfRVJSKGJ1Zik7Ci0JCWdvdG8gZXJyX2V4aXQ7Ci0JfQotCi0JLyogc3RyaXAgdHJhaWxpbmcgd2hpdGVzcGFjZSAqLwotCWZvciAoaSA9IGNvdW50IC0gMTsgaSA+IDA7IGktLSkKLQkJaWYgKGlzc3BhY2UoYnVmW2ldKSkKLQkJCWJ1ZltpXSA9ICdcMCc7Ci0JCWVsc2UKLQkJCWJyZWFrOwotCWkgPSAwOwotCXBvcyA9IGJ1ZjsKLQl3aGlsZSAocG9zKSB7Ci0JCXRva2VuID0gc3Ryc2VwKCZwb3MsICIgIik7Ci0JCWlmICghdG9rZW4pIHsKLQkJCXJldCA9IC1FSU5WQUw7Ci0JCQlnb3RvIGVycl9mcmVlOwotCQl9Ci0KLQkJcmV0ID0ga3N0cnRvdTgodG9rZW4sIDE2LCAmdmFsKTsKLQkJaWYgKHJldCA8IDApCi0JCQlnb3RvIGVycl9mcmVlOwotCi0JCWlmICh0b2tlbiA9PSBidWYpCi0JCQljbWQgPSB2YWw7Ci0JCWVsc2UKLQkJCXBhcmFtZXRlcnNbaSsrXSA9IHZhbDsKLQotCQlpZiAoaSA9PSA2NCkgewotCQkJcmV0ID0gLUUyQklHOwotCQkJZ290byBlcnJfZnJlZTsKLQkJfQotCX0KLQotCXJldCA9IG1pcGlfZGJpX2NvbW1hbmRfYnVmKG1pcGksIGNtZCwgcGFyYW1ldGVycywgaSk7Ci0KLWVycl9mcmVlOgotCWtmcmVlKGJ1Zik7Ci1lcnJfZXhpdDoKLQlkcm1fZGV2X2V4aXQoaWR4KTsKLQotCXJldHVybiByZXQgPCAwID8gcmV0IDogY291bnQ7Ci19Ci0KLXN0YXRpYyBpbnQgbWlwaV9kYmlfZGVidWdmc19jb21tYW5kX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCi17Ci0Jc3RydWN0IG1pcGlfZGJpICptaXBpID0gbS0+cHJpdmF0ZTsKLQl1OCBjbWQsIHZhbFs0XTsKLQlpbnQgcmV0LCBpZHg7Ci0Jc2l6ZV90IGxlbjsKLQotCWlmICghZHJtX2Rldl9lbnRlcigmbWlwaS0+ZHJtLCAmaWR4KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlmb3IgKGNtZCA9IDA7IGNtZCA8IDI1NTsgY21kKyspIHsKLQkJaWYgKCFtaXBpX2RiaV9jb21tYW5kX2lzX3JlYWQobWlwaSwgY21kKSkKLQkJCWNvbnRpbnVlOwotCi0JCXN3aXRjaCAoY21kKSB7Ci0JCWNhc2UgTUlQSV9EQ1NfUkVBRF9NRU1PUllfU1RBUlQ6Ci0JCWNhc2UgTUlQSV9EQ1NfUkVBRF9NRU1PUllfQ09OVElOVUU6Ci0JCQlsZW4gPSAyOwotCQkJYnJlYWs7Ci0JCWNhc2UgTUlQSV9EQ1NfR0VUX0RJU1BMQVlfSUQ6Ci0JCQlsZW4gPSAzOwotCQkJYnJlYWs7Ci0JCWNhc2UgTUlQSV9EQ1NfR0VUX0RJU1BMQVlfU1RBVFVTOgotCQkJbGVuID0gNDsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJbGVuID0gMTsKLQkJCWJyZWFrOwotCQl9Ci0KLQkJc2VxX3ByaW50ZihtLCAiJTAyeDogIiwgY21kKTsKLQkJcmV0ID0gbWlwaV9kYmlfY29tbWFuZF9idWYobWlwaSwgY21kLCB2YWwsIGxlbik7Ci0JCWlmIChyZXQpIHsKLQkJCXNlcV9wdXRzKG0sICJYWFxuIik7Ci0JCQljb250aW51ZTsKLQkJfQotCQlzZXFfcHJpbnRmKG0sICIlKnBoTlxuIiwgKGludClsZW4sIHZhbCk7Ci0JfQotCi0JZHJtX2Rldl9leGl0KGlkeCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBtaXBpX2RiaV9kZWJ1Z2ZzX2NvbW1hbmRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLAotCQkJCQkgc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIG1pcGlfZGJpX2RlYnVnZnNfY29tbWFuZF9zaG93LAotCQkJICAgaW5vZGUtPmlfcHJpdmF0ZSk7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG1pcGlfZGJpX2RlYnVnZnNfY29tbWFuZF9mb3BzID0gewotCS5vd25lciA9IFRISVNfTU9EVUxFLAotCS5vcGVuID0gbWlwaV9kYmlfZGVidWdmc19jb21tYW5kX29wZW4sCi0JLnJlYWQgPSBzZXFfcmVhZCwKLQkubGxzZWVrID0gc2VxX2xzZWVrLAotCS5yZWxlYXNlID0gc2luZ2xlX3JlbGVhc2UsCi0JLndyaXRlID0gbWlwaV9kYmlfZGVidWdmc19jb21tYW5kX3dyaXRlLAotfTsKLQotLyoqCi0gKiBtaXBpX2RiaV9kZWJ1Z2ZzX2luaXQgLSBDcmVhdGUgZGVidWdmcyBlbnRyaWVzCi0gKiBAbWlub3I6IERSTSBtaW5vcgotICoKLSAqIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhICdjb21tYW5kJyBkZWJ1Z2ZzIGZpbGUgZm9yIHNlbmRpbmcgY29tbWFuZHMgdG8gdGhlCi0gKiBjb250cm9sbGVyIG9yIGdldHRpbmcgdGhlIHJlYWQgY29tbWFuZCB2YWx1ZXMuCi0gKiBEcml2ZXJzIGNhbiB1c2UgdGhpcyBhcyB0aGVpciAmZHJtX2RyaXZlci0+ZGVidWdmc19pbml0IGNhbGxiYWNrLgotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1pcGlfZGJpX2RlYnVnZnNfaW5pdChzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKLXsKLQlzdHJ1Y3QgbWlwaV9kYmkgKm1pcGkgPSBkcm1fdG9fbWlwaV9kYmkobWlub3ItPmRldik7Ci0JdW1vZGVfdCBtb2RlID0gU19JRlJFRyB8IFNfSVdVU1I7Ci0KLQlpZiAobWlwaS0+cmVhZF9jb21tYW5kcykKLQkJbW9kZSB8PSBTX0lSVUdPOwotCWRlYnVnZnNfY3JlYXRlX2ZpbGUoImNvbW1hbmQiLCBtb2RlLCBtaW5vci0+ZGVidWdmc19yb290LCBtaXBpLAotCQkJICAgICZtaXBpX2RiaV9kZWJ1Z2ZzX2NvbW1hbmRfZm9wcyk7Ci0KLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0wobWlwaV9kYmlfZGVidWdmc19pbml0KTsKLQotI2VuZGlmCi0KLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3JlcGFwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3JlcGFwZXIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTdhODc0Yi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9yZXBhcGVyLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTY1ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCi0vKgotICogRFJNIGRyaXZlciBmb3IgUGVydmFzaXZlIERpc3BsYXlzIFJlUGFwZXIgYnJhbmRlZCBlLWluayBwYW5lbHMKLSAqCi0gKiBDb3B5cmlnaHQgMjAxMy0yMDE3IFBlcnZhc2l2ZSBEaXNwbGF5cywgSW5jLgotICogQ29weXJpZ2h0IDIwMTcgTm9yYWxmIFRyw7hubmVzCi0gKgotICogVGhlIGRyaXZlciBzdXBwb3J0czoKLSAqIE1hdGVyaWFsIEZpbG06IEF1cm9yYSBNYiAoVjIzMSkKLSAqIERyaXZlciBJQzogRzIgKGVUQykKLSAqCi0gKiBUaGUgY29udHJvbGxlciBjb2RlIHdhcyB0YWtlbiBmcm9tIHRoZSB1c2Vyc3BhY2UgZHJpdmVyOgotICogaHR0cHM6Ly9naXRodWIuY29tL3JlcGFwZXIvZ3JhdGlzCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC9jbG9jay5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KLSNpbmNsdWRlIDxsaW51eC90aGVybWFsLmg+Ci0KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mb3JtYXRfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fcmVjdC5oPgotI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgotCi0jZGVmaW5lIFJFUEFQRVJfUklEX0cyX0NPR19JRAkweDEyCi0KLWVudW0gcmVwYXBlcl9tb2RlbCB7Ci0JRTExNDRDUzAyMSA9IDEsCi0JRTExOTBDUzAyMSwKLQlFMjIwMENTMDIxLAotCUUyMjcxQ1MwMjEsCi19OwotCi1lbnVtIHJlcGFwZXJfc3RhZ2UgeyAgICAgICAgIC8qIEltYWdlIHBpeGVsIC0+IERpc3BsYXkgcGl4ZWwgKi8KLQlSRVBBUEVSX0NPTVBFTlNBVEUsICAvKiBCIC0+IFcsIFcgLT4gQiAoQ3VycmVudCBJbWFnZSkgKi8KLQlSRVBBUEVSX1dISVRFLCAgICAgICAvKiBCIC0+IE4sIFcgLT4gVyAoQ3VycmVudCBJbWFnZSkgKi8KLQlSRVBBUEVSX0lOVkVSU0UsICAgICAvKiBCIC0+IE4sIFcgLT4gQiAoTmV3IEltYWdlKSAqLwotCVJFUEFQRVJfTk9STUFMICAgICAgIC8qIEIgLT4gQiwgVyAtPiBXIChOZXcgSW1hZ2UpICovCi19OwotCi1lbnVtIHJlcGFwZXJfZXBkX2JvcmRlcl9ieXRlIHsKLQlSRVBBUEVSX0JPUkRFUl9CWVRFX05PTkUsCi0JUkVQQVBFUl9CT1JERVJfQllURV9aRVJPLAotCVJFUEFQRVJfQk9SREVSX0JZVEVfU0VULAotfTsKLQotc3RydWN0IHJlcGFwZXJfZXBkIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSBkcm07Ci0Jc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlIHBpcGU7Ci0Jc3RydWN0IHNwaV9kZXZpY2UgKnNwaTsKLQotCXN0cnVjdCBncGlvX2Rlc2MgKnBhbmVsX29uOwotCXN0cnVjdCBncGlvX2Rlc2MgKmJvcmRlcjsKLQlzdHJ1Y3QgZ3Bpb19kZXNjICpkaXNjaGFyZ2U7Ci0Jc3RydWN0IGdwaW9fZGVzYyAqcmVzZXQ7Ci0Jc3RydWN0IGdwaW9fZGVzYyAqYnVzeTsKLQotCXN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0aGVybWFsOwotCi0JdW5zaWduZWQgaW50IGhlaWdodDsKLQl1bnNpZ25lZCBpbnQgd2lkdGg7Ci0JdW5zaWduZWQgaW50IGJ5dGVzX3Blcl9zY2FuOwotCWNvbnN0IHU4ICpjaGFubmVsX3NlbGVjdDsKLQl1bnNpZ25lZCBpbnQgc3RhZ2VfdGltZTsKLQl1bnNpZ25lZCBpbnQgZmFjdG9yZWRfc3RhZ2VfdGltZTsKLQlib29sIG1pZGRsZV9zY2FuOwotCWJvb2wgcHJlX2JvcmRlcl9ieXRlOwotCWVudW0gcmVwYXBlcl9lcGRfYm9yZGVyX2J5dGUgYm9yZGVyX2J5dGU7Ci0KLQl1OCAqbGluZV9idWZmZXI7Ci0Jdm9pZCAqY3VycmVudF9mcmFtZTsKLQotCWJvb2wgZW5hYmxlZDsKLQlib29sIGNsZWFyZWQ7Ci0JYm9vbCBwYXJ0aWFsOwotfTsKLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgcmVwYXBlcl9lcGQgKmRybV90b19lcGQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKLXsKLQlyZXR1cm4gY29udGFpbmVyX29mKGRybSwgc3RydWN0IHJlcGFwZXJfZXBkLCBkcm0pOwotfQotCi1zdGF0aWMgaW50IHJlcGFwZXJfc3BpX3RyYW5zZmVyKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHU4IGhlYWRlciwKLQkJCQljb25zdCB2b2lkICp0eCwgdm9pZCAqcngsIHNpemVfdCBsZW4pCi17Ci0Jdm9pZCAqdHhidWYgPSBOVUxMLCAqcnhidWYgPSBOVUxMOwotCXN0cnVjdCBzcGlfdHJhbnNmZXIgdHJbMl0gPSB7fTsKLQl1OCAqaGVhZGVyYnVmOwotCWludCByZXQ7Ci0KLQloZWFkZXJidWYgPSBrbWFsbG9jKDEsIEdGUF9LRVJORUwpOwotCWlmICghaGVhZGVyYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWhlYWRlcmJ1ZlswXSA9IGhlYWRlcjsKLQl0clswXS50eF9idWYgPSBoZWFkZXJidWY7Ci0JdHJbMF0ubGVuID0gMTsKLQotCS8qIFN0YWNrIGFsbG9jYXRlZCB0eD8gKi8KLQlpZiAodHggJiYgbGVuIDw9IDMyKSB7Ci0JCXR4YnVmID0ga21lbWR1cCh0eCwgbGVuLCBHRlBfS0VSTkVMKTsKLQkJaWYgKCF0eGJ1ZikgewotCQkJcmV0ID0gLUVOT01FTTsKLQkJCWdvdG8gb3V0X2ZyZWU7Ci0JCX0KLQl9Ci0KLQlpZiAocngpIHsKLQkJcnhidWYgPSBrbWFsbG9jKGxlbiwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghcnhidWYpIHsKLQkJCXJldCA9IC1FTk9NRU07Ci0JCQlnb3RvIG91dF9mcmVlOwotCQl9Ci0JfQotCi0JdHJbMV0udHhfYnVmID0gdHhidWYgPyB0eGJ1ZiA6IHR4OwotCXRyWzFdLnJ4X2J1ZiA9IHJ4YnVmOwotCXRyWzFdLmxlbiA9IGxlbjsKLQotCW5kZWxheSg4MCk7Ci0JcmV0ID0gc3BpX3N5bmNfdHJhbnNmZXIoc3BpLCB0ciwgMik7Ci0JaWYgKHJ4ICYmICFyZXQpCi0JCW1lbWNweShyeCwgcnhidWYsIGxlbik7Ci0KLW91dF9mcmVlOgotCWtmcmVlKGhlYWRlcmJ1Zik7Ci0Ja2ZyZWUodHhidWYpOwotCWtmcmVlKHJ4YnVmKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgcmVwYXBlcl93cml0ZV9idWYoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTggcmVnLAotCQkJICAgICBjb25zdCB1OCAqYnVmLCBzaXplX3QgbGVuKQotewotCWludCByZXQ7Ci0KLQlyZXQgPSByZXBhcGVyX3NwaV90cmFuc2ZlcihzcGksIDB4NzAsICZyZWcsIE5VTEwsIDEpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXR1cm4gcmVwYXBlcl9zcGlfdHJhbnNmZXIoc3BpLCAweDcyLCBidWYsIE5VTEwsIGxlbik7Ci19Ci0KLXN0YXRpYyBpbnQgcmVwYXBlcl93cml0ZV92YWwoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTggcmVnLCB1OCB2YWwpCi17Ci0JcmV0dXJuIHJlcGFwZXJfd3JpdGVfYnVmKHNwaSwgcmVnLCAmdmFsLCAxKTsKLX0KLQotc3RhdGljIGludCByZXBhcGVyX3JlYWRfdmFsKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHU4IHJlZykKLXsKLQlpbnQgcmV0OwotCXU4IHZhbDsKLQotCXJldCA9IHJlcGFwZXJfc3BpX3RyYW5zZmVyKHNwaSwgMHg3MCwgJnJlZywgTlVMTCwgMSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXJldCA9IHJlcGFwZXJfc3BpX3RyYW5zZmVyKHNwaSwgMHg3MywgTlVMTCwgJnZhbCwgMSk7Ci0KLQlyZXR1cm4gcmV0ID8gcmV0IDogdmFsOwotfQotCi1zdGF0aWMgaW50IHJlcGFwZXJfcmVhZF9pZChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCWludCByZXQ7Ci0JdTggaWQ7Ci0KLQlyZXQgPSByZXBhcGVyX3NwaV90cmFuc2ZlcihzcGksIDB4NzEsIE5VTEwsICZpZCwgMSk7Ci0KLQlyZXR1cm4gcmV0ID8gcmV0IDogaWQ7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlcGFwZXJfc3BpX21vc2lfbG93KHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0JY29uc3QgdTggYnVmWzFdID0geyAwIH07Ci0KLQlzcGlfd3JpdGUoc3BpLCBidWYsIDEpOwotfQotCi0vKiBwaXhlbHMgb24gZGlzcGxheSBhcmUgbnVtYmVyZWQgZnJvbSAxIHNvIGV2ZW4gaXMgYWN0dWFsbHkgYml0cyAxLDMsNSwuLi4gKi8KLXN0YXRpYyB2b2lkIHJlcGFwZXJfZXZlbl9waXhlbHMoc3RydWN0IHJlcGFwZXJfZXBkICplcGQsIHU4ICoqcHAsCi0JCQkJY29uc3QgdTggKmRhdGEsIHU4IGZpeGVkX3ZhbHVlLCBjb25zdCB1OCAqbWFzaywKLQkJCQllbnVtIHJlcGFwZXJfc3RhZ2Ugc3RhZ2UpCi17Ci0JdW5zaWduZWQgaW50IGI7Ci0KLQlmb3IgKGIgPSAwOyBiIDwgKGVwZC0+d2lkdGggLyA4KTsgYisrKSB7Ci0JCWlmIChkYXRhKSB7Ci0JCQl1OCBwaXhlbHMgPSBkYXRhW2JdICYgMHhhYTsKLQkJCXU4IHBpeGVsX21hc2sgPSAweGZmOwotCQkJdTggcDEsIHAyLCBwMywgcDQ7Ci0KLQkJCWlmIChtYXNrKSB7Ci0JCQkJcGl4ZWxfbWFzayA9IChtYXNrW2JdIF4gcGl4ZWxzKSAmIDB4YWE7Ci0JCQkJcGl4ZWxfbWFzayB8PSBwaXhlbF9tYXNrID4+IDE7Ci0JCQl9Ci0KLQkJCXN3aXRjaCAoc3RhZ2UpIHsKLQkJCWNhc2UgUkVQQVBFUl9DT01QRU5TQVRFOiAvKiBCIC0+IFcsIFcgLT4gQiAoQ3VycmVudCkgKi8KLQkJCQlwaXhlbHMgPSAweGFhIHwgKChwaXhlbHMgXiAweGFhKSA+PiAxKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgUkVQQVBFUl9XSElURTogICAgICAvKiBCIC0+IE4sIFcgLT4gVyAoQ3VycmVudCkgKi8KLQkJCQlwaXhlbHMgPSAweDU1ICsgKChwaXhlbHMgXiAweGFhKSA+PiAxKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgUkVQQVBFUl9JTlZFUlNFOiAgICAvKiBCIC0+IE4sIFcgLT4gQiAoTmV3KSAqLwotCQkJCXBpeGVscyA9IDB4NTUgfCAocGl4ZWxzIF4gMHhhYSk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFJFUEFQRVJfTk9STUFMOiAgICAgLyogQiAtPiBCLCBXIC0+IFcgKE5ldykgKi8KLQkJCQlwaXhlbHMgPSAweGFhIHwgKHBpeGVscyA+PiAxKTsKLQkJCQlicmVhazsKLQkJCX0KLQotCQkJcGl4ZWxzID0gKHBpeGVscyAmIHBpeGVsX21hc2spIHwgKH5waXhlbF9tYXNrICYgMHg1NSk7Ci0JCQlwMSA9IChwaXhlbHMgPj4gNikgJiAweDAzOwotCQkJcDIgPSAocGl4ZWxzID4+IDQpICYgMHgwMzsKLQkJCXAzID0gKHBpeGVscyA+PiAyKSAmIDB4MDM7Ci0JCQlwNCA9IChwaXhlbHMgPj4gMCkgJiAweDAzOwotCQkJcGl4ZWxzID0gKHAxIDw8IDApIHwgKHAyIDw8IDIpIHwgKHAzIDw8IDQpIHwgKHA0IDw8IDYpOwotCQkJKigqcHApKysgPSBwaXhlbHM7Ci0JCX0gZWxzZSB7Ci0JCQkqKCpwcCkrKyA9IGZpeGVkX3ZhbHVlOwotCQl9Ci0JfQotfQotCi0vKiBwaXhlbHMgb24gZGlzcGxheSBhcmUgbnVtYmVyZWQgZnJvbSAxIHNvIG9kZCBpcyBhY3R1YWxseSBiaXRzIDAsMiw0LC4uLiAqLwotc3RhdGljIHZvaWQgcmVwYXBlcl9vZGRfcGl4ZWxzKHN0cnVjdCByZXBhcGVyX2VwZCAqZXBkLCB1OCAqKnBwLAotCQkJICAgICAgIGNvbnN0IHU4ICpkYXRhLCB1OCBmaXhlZF92YWx1ZSwgY29uc3QgdTggKm1hc2ssCi0JCQkgICAgICAgZW51bSByZXBhcGVyX3N0YWdlIHN0YWdlKQotewotCXVuc2lnbmVkIGludCBiOwotCi0JZm9yIChiID0gZXBkLT53aWR0aCAvIDg7IGIgPiAwOyBiLS0pIHsKLQkJaWYgKGRhdGEpIHsKLQkJCXU4IHBpeGVscyA9IGRhdGFbYiAtIDFdICYgMHg1NTsKLQkJCXU4IHBpeGVsX21hc2sgPSAweGZmOwotCi0JCQlpZiAobWFzaykgewotCQkJCXBpeGVsX21hc2sgPSAobWFza1tiIC0gMV0gXiBwaXhlbHMpICYgMHg1NTsKLQkJCQlwaXhlbF9tYXNrIHw9IHBpeGVsX21hc2sgPDwgMTsKLQkJCX0KLQotCQkJc3dpdGNoIChzdGFnZSkgewotCQkJY2FzZSBSRVBBUEVSX0NPTVBFTlNBVEU6IC8qIEIgLT4gVywgVyAtPiBCIChDdXJyZW50KSAqLwotCQkJCXBpeGVscyA9IDB4YWEgfCAocGl4ZWxzIF4gMHg1NSk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFJFUEFQRVJfV0hJVEU6ICAgICAgLyogQiAtPiBOLCBXIC0+IFcgKEN1cnJlbnQpICovCi0JCQkJcGl4ZWxzID0gMHg1NSArIChwaXhlbHMgXiAweDU1KTsKLQkJCQlicmVhazsKLQkJCWNhc2UgUkVQQVBFUl9JTlZFUlNFOiAgICAvKiBCIC0+IE4sIFcgLT4gQiAoTmV3KSAqLwotCQkJCXBpeGVscyA9IDB4NTUgfCAoKHBpeGVscyBeIDB4NTUpIDw8IDEpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBSRVBBUEVSX05PUk1BTDogICAgIC8qIEIgLT4gQiwgVyAtPiBXIChOZXcpICovCi0JCQkJcGl4ZWxzID0gMHhhYSB8IHBpeGVsczsKLQkJCQlicmVhazsKLQkJCX0KLQotCQkJcGl4ZWxzID0gKHBpeGVscyAmIHBpeGVsX21hc2spIHwgKH5waXhlbF9tYXNrICYgMHg1NSk7Ci0JCQkqKCpwcCkrKyA9IHBpeGVsczsKLQkJfSBlbHNlIHsKLQkJCSooKnBwKSsrID0gZml4ZWRfdmFsdWU7Ci0JCX0KLQl9Ci19Ci0KLS8qIGludGVybGVhdmUgYml0czogKGJ5dGUpNzY1NDMyMTAgLT4gKDE2IGJpdCkuNy42LjUuNC4zLjIuMSAqLwotc3RhdGljIGlubGluZSB1MTYgcmVwYXBlcl9pbnRlcmxlYXZlX2JpdHModTE2IHZhbHVlKQotewotCXZhbHVlID0gKHZhbHVlIHwgKHZhbHVlIDw8IDQpKSAmIDB4MGYwZjsKLQl2YWx1ZSA9ICh2YWx1ZSB8ICh2YWx1ZSA8PCAyKSkgJiAweDMzMzM7Ci0JdmFsdWUgPSAodmFsdWUgfCAodmFsdWUgPDwgMSkpICYgMHg1NTU1OwotCi0JcmV0dXJuIHZhbHVlOwotfQotCi0vKiBwaXhlbHMgb24gZGlzcGxheSBhcmUgbnVtYmVyZWQgZnJvbSAxICovCi1zdGF0aWMgdm9pZCByZXBhcGVyX2FsbF9waXhlbHMoc3RydWN0IHJlcGFwZXJfZXBkICplcGQsIHU4ICoqcHAsCi0JCQkgICAgICAgY29uc3QgdTggKmRhdGEsIHU4IGZpeGVkX3ZhbHVlLCBjb25zdCB1OCAqbWFzaywKLQkJCSAgICAgICBlbnVtIHJlcGFwZXJfc3RhZ2Ugc3RhZ2UpCi17Ci0JdW5zaWduZWQgaW50IGI7Ci0KLQlmb3IgKGIgPSBlcGQtPndpZHRoIC8gODsgYiA+IDA7IGItLSkgewotCQlpZiAoZGF0YSkgewotCQkJdTE2IHBpeGVscyA9IHJlcGFwZXJfaW50ZXJsZWF2ZV9iaXRzKGRhdGFbYiAtIDFdKTsKLQkJCXUxNiBwaXhlbF9tYXNrID0gMHhmZmZmOwotCi0JCQlpZiAobWFzaykgewotCQkJCXBpeGVsX21hc2sgPSByZXBhcGVyX2ludGVybGVhdmVfYml0cyhtYXNrW2IgLSAxXSk7Ci0KLQkJCQlwaXhlbF9tYXNrID0gKHBpeGVsX21hc2sgXiBwaXhlbHMpICYgMHg1NTU1OwotCQkJCXBpeGVsX21hc2sgfD0gcGl4ZWxfbWFzayA8PCAxOwotCQkJfQotCi0JCQlzd2l0Y2ggKHN0YWdlKSB7Ci0JCQljYXNlIFJFUEFQRVJfQ09NUEVOU0FURTogLyogQiAtPiBXLCBXIC0+IEIgKEN1cnJlbnQpICovCi0JCQkJcGl4ZWxzID0gMHhhYWFhIHwgKHBpeGVscyBeIDB4NTU1NSk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFJFUEFQRVJfV0hJVEU6ICAgICAgLyogQiAtPiBOLCBXIC0+IFcgKEN1cnJlbnQpICovCi0JCQkJcGl4ZWxzID0gMHg1NTU1ICsgKHBpeGVscyBeIDB4NTU1NSk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFJFUEFQRVJfSU5WRVJTRTogICAgLyogQiAtPiBOLCBXIC0+IEIgKE5ldykgKi8KLQkJCQlwaXhlbHMgPSAweDU1NTUgfCAoKHBpeGVscyBeIDB4NTU1NSkgPDwgMSk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFJFUEFQRVJfTk9STUFMOiAgICAgLyogQiAtPiBCLCBXIC0+IFcgKE5ldykgKi8KLQkJCQlwaXhlbHMgPSAweGFhYWEgfCBwaXhlbHM7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0KLQkJCXBpeGVscyA9IChwaXhlbHMgJiBwaXhlbF9tYXNrKSB8ICh+cGl4ZWxfbWFzayAmIDB4NTU1NSk7Ci0JCQkqKCpwcCkrKyA9IHBpeGVscyA+PiA4OwotCQkJKigqcHApKysgPSBwaXhlbHM7Ci0JCX0gZWxzZSB7Ci0JCQkqKCpwcCkrKyA9IGZpeGVkX3ZhbHVlOwotCQkJKigqcHApKysgPSBmaXhlZF92YWx1ZTsKLQkJfQotCX0KLX0KLQotLyogb3V0cHV0IG9uZSBsaW5lIG9mIHNjYW4gYW5kIGRhdGEgYnl0ZXMgdG8gdGhlIGRpc3BsYXkgKi8KLXN0YXRpYyB2b2lkIHJlcGFwZXJfb25lX2xpbmUoc3RydWN0IHJlcGFwZXJfZXBkICplcGQsIHVuc2lnbmVkIGludCBsaW5lLAotCQkJICAgICBjb25zdCB1OCAqZGF0YSwgdTggZml4ZWRfdmFsdWUsIGNvbnN0IHU4ICptYXNrLAotCQkJICAgICBlbnVtIHJlcGFwZXJfc3RhZ2Ugc3RhZ2UpCi17Ci0JdTggKnAgPSBlcGQtPmxpbmVfYnVmZmVyOwotCXVuc2lnbmVkIGludCBiOwotCi0JcmVwYXBlcl9zcGlfbW9zaV9sb3coZXBkLT5zcGkpOwotCi0JaWYgKGVwZC0+cHJlX2JvcmRlcl9ieXRlKQotCQkqcCsrID0gMHgwMDsKLQotCWlmIChlcGQtPm1pZGRsZV9zY2FuKSB7Ci0JCS8qIGRhdGEgYnl0ZXMgKi8KLQkJcmVwYXBlcl9vZGRfcGl4ZWxzKGVwZCwgJnAsIGRhdGEsIGZpeGVkX3ZhbHVlLCBtYXNrLCBzdGFnZSk7Ci0KLQkJLyogc2NhbiBsaW5lICovCi0JCWZvciAoYiA9IGVwZC0+Ynl0ZXNfcGVyX3NjYW47IGIgPiAwOyBiLS0pIHsKLQkJCWlmIChsaW5lIC8gNCA9PSBiIC0gMSkKLQkJCQkqcCsrID0gMHgwMyA8PCAoMiAqIChsaW5lICYgMHgwMykpOwotCQkJZWxzZQotCQkJCSpwKysgPSAweDAwOwotCQl9Ci0KLQkJLyogZGF0YSBieXRlcyAqLwotCQlyZXBhcGVyX2V2ZW5fcGl4ZWxzKGVwZCwgJnAsIGRhdGEsIGZpeGVkX3ZhbHVlLCBtYXNrLCBzdGFnZSk7Ci0JfSBlbHNlIHsKLQkJLyoKLQkJICogZXZlbiBzY2FuIGxpbmUsIGJ1dCBhcyBsaW5lcyBvbiBkaXNwbGF5IGFyZSBudW1iZXJlZCBmcm9tIDEsCi0JCSAqIGxpbmU6IDEsMyw1LC4uLgotCQkgKi8KLQkJZm9yIChiID0gMDsgYiA8IGVwZC0+Ynl0ZXNfcGVyX3NjYW47IGIrKykgewotCQkJaWYgKDAgIT0gKGxpbmUgJiAweDAxKSAmJiBsaW5lIC8gOCA9PSBiKQotCQkJCSpwKysgPSAweGMwID4+IChsaW5lICYgMHgwNik7Ci0JCQllbHNlCi0JCQkJKnArKyA9IDB4MDA7Ci0JCX0KLQotCQkvKiBkYXRhIGJ5dGVzICovCi0JCXJlcGFwZXJfYWxsX3BpeGVscyhlcGQsICZwLCBkYXRhLCBmaXhlZF92YWx1ZSwgbWFzaywgc3RhZ2UpOwotCi0JCS8qCi0JCSAqIG9kZCBzY2FuIGxpbmUsIGJ1dCBhcyBsaW5lcyBvbiBkaXNwbGF5IGFyZSBudW1iZXJlZCBmcm9tIDEsCi0JCSAqIGxpbmU6IDAsMiw0LDYsLi4uCi0JCSAqLwotCQlmb3IgKGIgPSBlcGQtPmJ5dGVzX3Blcl9zY2FuOyBiID4gMDsgYi0tKSB7Ci0JCQlpZiAoMCA9PSAobGluZSAmIDB4MDEpICYmIGxpbmUgLyA4ID09IGIgLSAxKQotCQkJCSpwKysgPSAweDAzIDw8IChsaW5lICYgMHgwNik7Ci0JCQllbHNlCi0JCQkJKnArKyA9IDB4MDA7Ci0JCX0KLQl9Ci0KLQlzd2l0Y2ggKGVwZC0+Ym9yZGVyX2J5dGUpIHsKLQljYXNlIFJFUEFQRVJfQk9SREVSX0JZVEVfTk9ORToKLQkJYnJlYWs7Ci0KLQljYXNlIFJFUEFQRVJfQk9SREVSX0JZVEVfWkVSTzoKLQkJKnArKyA9IDB4MDA7Ci0JCWJyZWFrOwotCi0JY2FzZSBSRVBBUEVSX0JPUkRFUl9CWVRFX1NFVDoKLQkJc3dpdGNoIChzdGFnZSkgewotCQljYXNlIFJFUEFQRVJfQ09NUEVOU0FURToKLQkJY2FzZSBSRVBBUEVSX1dISVRFOgotCQljYXNlIFJFUEFQRVJfSU5WRVJTRToKLQkJCSpwKysgPSAweDAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgUkVQQVBFUl9OT1JNQUw6Ci0JCQkqcCsrID0gMHhhYTsKLQkJCWJyZWFrOwotCQl9Ci0JCWJyZWFrOwotCX0KLQotCXJlcGFwZXJfd3JpdGVfYnVmKGVwZC0+c3BpLCAweDBhLCBlcGQtPmxpbmVfYnVmZmVyLAotCQkJICBwIC0gZXBkLT5saW5lX2J1ZmZlcik7Ci0KLQkvKiBPdXRwdXQgZGF0YSB0byBwYW5lbCAqLwotCXJlcGFwZXJfd3JpdGVfdmFsKGVwZC0+c3BpLCAweDAyLCAweDA3KTsKLQotCXJlcGFwZXJfc3BpX21vc2lfbG93KGVwZC0+c3BpKTsKLX0KLQotc3RhdGljIHZvaWQgcmVwYXBlcl9mcmFtZV9maXhlZChzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZCwgdTggZml4ZWRfdmFsdWUsCi0JCQkJZW51bSByZXBhcGVyX3N0YWdlIHN0YWdlKQotewotCXVuc2lnbmVkIGludCBsaW5lOwotCi0JZm9yIChsaW5lID0gMDsgbGluZSA8IGVwZC0+aGVpZ2h0OyBsaW5lKyspCi0JCXJlcGFwZXJfb25lX2xpbmUoZXBkLCBsaW5lLCBOVUxMLCBmaXhlZF92YWx1ZSwgTlVMTCwgc3RhZ2UpOwotfQotCi1zdGF0aWMgdm9pZCByZXBhcGVyX2ZyYW1lX2RhdGEoc3RydWN0IHJlcGFwZXJfZXBkICplcGQsIGNvbnN0IHU4ICppbWFnZSwKLQkJCSAgICAgICBjb25zdCB1OCAqbWFzaywgZW51bSByZXBhcGVyX3N0YWdlIHN0YWdlKQotewotCXVuc2lnbmVkIGludCBsaW5lOwotCi0JaWYgKCFtYXNrKSB7Ci0JCWZvciAobGluZSA9IDA7IGxpbmUgPCBlcGQtPmhlaWdodDsgbGluZSsrKSB7Ci0JCQlyZXBhcGVyX29uZV9saW5lKGVwZCwgbGluZSwKLQkJCQkJICZpbWFnZVtsaW5lICogKGVwZC0+d2lkdGggLyA4KV0sCi0JCQkJCSAwLCBOVUxMLCBzdGFnZSk7Ci0JCX0KLQl9IGVsc2UgewotCQlmb3IgKGxpbmUgPSAwOyBsaW5lIDwgZXBkLT5oZWlnaHQ7IGxpbmUrKykgewotCQkJc2l6ZV90IG4gPSBsaW5lICogZXBkLT53aWR0aCAvIDg7Ci0KLQkJCXJlcGFwZXJfb25lX2xpbmUoZXBkLCBsaW5lLCAmaW1hZ2Vbbl0sIDAsICZtYXNrW25dLAotCQkJCQkgc3RhZ2UpOwotCQl9Ci0JfQotfQotCi1zdGF0aWMgdm9pZCByZXBhcGVyX2ZyYW1lX2ZpeGVkX3JlcGVhdChzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZCwgdTggZml4ZWRfdmFsdWUsCi0JCQkJICAgICAgIGVudW0gcmVwYXBlcl9zdGFnZSBzdGFnZSkKLXsKLQl1NjQgc3RhcnQgPSBsb2NhbF9jbG9jaygpOwotCXU2NCBlbmQgPSBzdGFydCArIChlcGQtPmZhY3RvcmVkX3N0YWdlX3RpbWUgKiAxMDAwICogMTAwMCk7Ci0KLQlkbyB7Ci0JCXJlcGFwZXJfZnJhbWVfZml4ZWQoZXBkLCBmaXhlZF92YWx1ZSwgc3RhZ2UpOwotCX0gd2hpbGUgKGxvY2FsX2Nsb2NrKCkgPCBlbmQpOwotfQotCi1zdGF0aWMgdm9pZCByZXBhcGVyX2ZyYW1lX2RhdGFfcmVwZWF0KHN0cnVjdCByZXBhcGVyX2VwZCAqZXBkLCBjb25zdCB1OCAqaW1hZ2UsCi0JCQkJICAgICAgY29uc3QgdTggKm1hc2ssIGVudW0gcmVwYXBlcl9zdGFnZSBzdGFnZSkKLXsKLQl1NjQgc3RhcnQgPSBsb2NhbF9jbG9jaygpOwotCXU2NCBlbmQgPSBzdGFydCArIChlcGQtPmZhY3RvcmVkX3N0YWdlX3RpbWUgKiAxMDAwICogMTAwMCk7Ci0KLQlkbyB7Ci0JCXJlcGFwZXJfZnJhbWVfZGF0YShlcGQsIGltYWdlLCBtYXNrLCBzdGFnZSk7Ci0JfSB3aGlsZSAobG9jYWxfY2xvY2soKSA8IGVuZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlcGFwZXJfZ2V0X3RlbXBlcmF0dXJlKHN0cnVjdCByZXBhcGVyX2VwZCAqZXBkKQotewotCWludCByZXQsIHRlbXBlcmF0dXJlID0gMDsKLQl1bnNpZ25lZCBpbnQgZmFjdG9yMTB4OwotCi0JaWYgKCFlcGQtPnRoZXJtYWwpCi0JCXJldHVybjsKLQotCXJldCA9IHRoZXJtYWxfem9uZV9nZXRfdGVtcChlcGQtPnRoZXJtYWwsICZ0ZW1wZXJhdHVyZSk7Ci0JaWYgKHJldCkgewotCQlEUk1fREVWX0VSUk9SKCZlcGQtPnNwaS0+ZGV2LCAiRmFpbGVkIHRvIGdldCB0ZW1wZXJhdHVyZSAoJWQpXG4iLCByZXQpOwotCQlyZXR1cm47Ci0JfQotCi0JdGVtcGVyYXR1cmUgLz0gMTAwMDsKLQotCWlmICh0ZW1wZXJhdHVyZSA8PSAtMTApCi0JCWZhY3RvcjEweCA9IDE3MDsKLQllbHNlIGlmICh0ZW1wZXJhdHVyZSA8PSAtNSkKLQkJZmFjdG9yMTB4ID0gMTIwOwotCWVsc2UgaWYgKHRlbXBlcmF0dXJlIDw9IDUpCi0JCWZhY3RvcjEweCA9IDgwOwotCWVsc2UgaWYgKHRlbXBlcmF0dXJlIDw9IDEwKQotCQlmYWN0b3IxMHggPSA0MDsKLQllbHNlIGlmICh0ZW1wZXJhdHVyZSA8PSAxNSkKLQkJZmFjdG9yMTB4ID0gMzA7Ci0JZWxzZSBpZiAodGVtcGVyYXR1cmUgPD0gMjApCi0JCWZhY3RvcjEweCA9IDIwOwotCWVsc2UgaWYgKHRlbXBlcmF0dXJlIDw9IDQwKQotCQlmYWN0b3IxMHggPSAxMDsKLQllbHNlCi0JCWZhY3RvcjEweCA9IDc7Ci0KLQllcGQtPmZhY3RvcmVkX3N0YWdlX3RpbWUgPSBlcGQtPnN0YWdlX3RpbWUgKiBmYWN0b3IxMHggLyAxMDsKLX0KLQotc3RhdGljIHZvaWQgcmVwYXBlcl9ncmF5OF90b19tb25vX3JldmVyc2VkKHU4ICpidWYsIHUzMiB3aWR0aCwgdTMyIGhlaWdodCkKLXsKLQl1OCAqZ3JheTggPSBidWYsICptb25vID0gYnVmOwotCWludCB5LCB4YiwgaTsKLQotCWZvciAoeSA9IDA7IHkgPCBoZWlnaHQ7IHkrKykKLQkJZm9yICh4YiA9IDA7IHhiIDwgd2lkdGggLyA4OyB4YisrKSB7Ci0JCQl1OCBieXRlID0gMHgwMDsKLQotCQkJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotCQkJCWludCB4ID0geGIgKiA4ICsgaTsKLQotCQkJCWJ5dGUgPj49IDE7Ci0JCQkJaWYgKGdyYXk4W3kgKiB3aWR0aCArIHhdID4+IDcpCi0JCQkJCWJ5dGUgfD0gQklUKDcpOwotCQkJfQotCQkJKm1vbm8rKyA9IGJ5dGU7Ci0JCX0KLX0KLQotc3RhdGljIGludCByZXBhcGVyX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQotewotCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKLQlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICppbXBvcnRfYXR0YWNoID0gY21hX29iai0+YmFzZS5pbXBvcnRfYXR0YWNoOwotCXN0cnVjdCByZXBhcGVyX2VwZCAqZXBkID0gZHJtX3RvX2VwZChmYi0+ZGV2KTsKLQlzdHJ1Y3QgZHJtX3JlY3QgY2xpcDsKLQlpbnQgaWR4LCByZXQgPSAwOwotCXU4ICpidWYgPSBOVUxMOwotCi0JaWYgKCFlcGQtPmVuYWJsZWQpCi0JCXJldHVybiAwOwotCi0JaWYgKCFkcm1fZGV2X2VudGVyKGZiLT5kZXYsICZpZHgpKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCS8qIHJlcGFwZXIgY2FuJ3QgZG8gcGFydGlhbCB1cGRhdGVzICovCi0JY2xpcC54MSA9IDA7Ci0JY2xpcC54MiA9IGZiLT53aWR0aDsKLQljbGlwLnkxID0gMDsKLQljbGlwLnkyID0gZmItPmhlaWdodDsKLQotCXJlcGFwZXJfZ2V0X3RlbXBlcmF0dXJlKGVwZCk7Ci0KLQlEUk1fREVCVUcoIkZsdXNoaW5nIFtGQjolZF0gc3Q9JXVtc1xuIiwgZmItPmJhc2UuaWQsCi0JCSAgZXBkLT5mYWN0b3JlZF9zdGFnZV90aW1lKTsKLQotCWJ1ZiA9IGttYWxsb2NfYXJyYXkoZmItPndpZHRoLCBmYi0+aGVpZ2h0LCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZikgewotCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIG91dF9leGl0OwotCX0KLQotCWlmIChpbXBvcnRfYXR0YWNoKSB7Ci0JCXJldCA9IGRtYV9idWZfYmVnaW5fY3B1X2FjY2VzcyhpbXBvcnRfYXR0YWNoLT5kbWFidWYsCi0JCQkJCSAgICAgICBETUFfRlJPTV9ERVZJQ0UpOwotCQlpZiAocmV0KQotCQkJZ290byBvdXRfZnJlZTsKLQl9Ci0KLQlkcm1fZmJfeHJnYjg4ODhfdG9fZ3JheTgoYnVmLCBjbWFfb2JqLT52YWRkciwgZmIsICZjbGlwKTsKLQotCWlmIChpbXBvcnRfYXR0YWNoKSB7Ci0JCXJldCA9IGRtYV9idWZfZW5kX2NwdV9hY2Nlc3MoaW1wb3J0X2F0dGFjaC0+ZG1hYnVmLAotCQkJCQkgICAgIERNQV9GUk9NX0RFVklDRSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIG91dF9mcmVlOwotCX0KLQotCXJlcGFwZXJfZ3JheThfdG9fbW9ub19yZXZlcnNlZChidWYsIGZiLT53aWR0aCwgZmItPmhlaWdodCk7Ci0KLQlpZiAoZXBkLT5wYXJ0aWFsKSB7Ci0JCXJlcGFwZXJfZnJhbWVfZGF0YV9yZXBlYXQoZXBkLCBidWYsIGVwZC0+Y3VycmVudF9mcmFtZSwKLQkJCQkJICBSRVBBUEVSX05PUk1BTCk7Ci0JfSBlbHNlIGlmIChlcGQtPmNsZWFyZWQpIHsKLQkJcmVwYXBlcl9mcmFtZV9kYXRhX3JlcGVhdChlcGQsIGVwZC0+Y3VycmVudF9mcmFtZSwgTlVMTCwKLQkJCQkJICBSRVBBUEVSX0NPTVBFTlNBVEUpOwotCQlyZXBhcGVyX2ZyYW1lX2RhdGFfcmVwZWF0KGVwZCwgZXBkLT5jdXJyZW50X2ZyYW1lLCBOVUxMLAotCQkJCQkgIFJFUEFQRVJfV0hJVEUpOwotCQlyZXBhcGVyX2ZyYW1lX2RhdGFfcmVwZWF0KGVwZCwgYnVmLCBOVUxMLCBSRVBBUEVSX0lOVkVSU0UpOwotCQlyZXBhcGVyX2ZyYW1lX2RhdGFfcmVwZWF0KGVwZCwgYnVmLCBOVUxMLCBSRVBBUEVSX05PUk1BTCk7Ci0KLQkJZXBkLT5wYXJ0aWFsID0gdHJ1ZTsKLQl9IGVsc2UgewotCQkvKiBDbGVhciBkaXNwbGF5IChhbnl0aGluZyAtPiB3aGl0ZSkgKi8KLQkJcmVwYXBlcl9mcmFtZV9maXhlZF9yZXBlYXQoZXBkLCAweGZmLCBSRVBBUEVSX0NPTVBFTlNBVEUpOwotCQlyZXBhcGVyX2ZyYW1lX2ZpeGVkX3JlcGVhdChlcGQsIDB4ZmYsIFJFUEFQRVJfV0hJVEUpOwotCQlyZXBhcGVyX2ZyYW1lX2ZpeGVkX3JlcGVhdChlcGQsIDB4YWEsIFJFUEFQRVJfSU5WRVJTRSk7Ci0JCXJlcGFwZXJfZnJhbWVfZml4ZWRfcmVwZWF0KGVwZCwgMHhhYSwgUkVQQVBFUl9OT1JNQUwpOwotCi0JCS8qIEFzc3VtaW5nIGEgY2xlYXIgKHdoaXRlKSBzY3JlZW4gb3V0cHV0IGFuIGltYWdlICovCi0JCXJlcGFwZXJfZnJhbWVfZml4ZWRfcmVwZWF0KGVwZCwgMHhhYSwgUkVQQVBFUl9DT01QRU5TQVRFKTsKLQkJcmVwYXBlcl9mcmFtZV9maXhlZF9yZXBlYXQoZXBkLCAweGFhLCBSRVBBUEVSX1dISVRFKTsKLQkJcmVwYXBlcl9mcmFtZV9kYXRhX3JlcGVhdChlcGQsIGJ1ZiwgTlVMTCwgUkVQQVBFUl9JTlZFUlNFKTsKLQkJcmVwYXBlcl9mcmFtZV9kYXRhX3JlcGVhdChlcGQsIGJ1ZiwgTlVMTCwgUkVQQVBFUl9OT1JNQUwpOwotCi0JCWVwZC0+Y2xlYXJlZCA9IHRydWU7Ci0JCWVwZC0+cGFydGlhbCA9IHRydWU7Ci0JfQotCi0JbWVtY3B5KGVwZC0+Y3VycmVudF9mcmFtZSwgYnVmLCBmYi0+d2lkdGggKiBmYi0+aGVpZ2h0IC8gOCk7Ci0KLQkvKgotCSAqIEFuIGV4dHJhIGZyYW1lIHdyaXRlIGlzIG5lZWRlZCBpZiBwaXhlbHMgYXJlIHNldCBpbiB0aGUgYm90dG9tIGxpbmUsCi0JICogb3IgZWxzZSBncmV5IGxpbmVzIHJpc2VzIHVwIGZyb20gdGhlIHBpeGVscwotCSAqLwotCWlmIChlcGQtPnByZV9ib3JkZXJfYnl0ZSkgewotCQl1bnNpZ25lZCBpbnQgeDsKLQotCQlmb3IgKHggPSAwOyB4IDwgKGZiLT53aWR0aCAvIDgpOyB4KyspCi0JCQlpZiAoYnVmW3ggKyAoZmItPndpZHRoICogKGZiLT5oZWlnaHQgLSAxKSAvIDgpXSkgewotCQkJCXJlcGFwZXJfZnJhbWVfZGF0YV9yZXBlYXQoZXBkLCBidWYsCi0JCQkJCQkJICBlcGQtPmN1cnJlbnRfZnJhbWUsCi0JCQkJCQkJICBSRVBBUEVSX05PUk1BTCk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JfQotCi1vdXRfZnJlZToKLQlrZnJlZShidWYpOwotb3V0X2V4aXQ6Ci0JZHJtX2Rldl9leGl0KGlkeCk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBwb3dlcl9vZmYoc3RydWN0IHJlcGFwZXJfZXBkICplcGQpCi17Ci0JLyogVHVybiBvZmYgcG93ZXIgYW5kIGFsbCBzaWduYWxzICovCi0JZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGVwZC0+cmVzZXQsIDApOwotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPnBhbmVsX29uLCAwKTsKLQlpZiAoZXBkLT5ib3JkZXIpCi0JCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPmJvcmRlciwgMCk7Ci0KLQkvKiBFbnN1cmUgU1BJIE1PU0kgYW5kIENMT0NLIGFyZSBMb3cgYmVmb3JlIENTIExvdyAqLwotCXJlcGFwZXJfc3BpX21vc2lfbG93KGVwZC0+c3BpKTsKLQotCS8qIERpc2NoYXJnZSBwdWxzZSAqLwotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPmRpc2NoYXJnZSwgMSk7Ci0JbXNsZWVwKDE1MCk7Ci0JZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGVwZC0+ZGlzY2hhcmdlLCAwKTsKLX0KLQotc3RhdGljIHZvaWQgcmVwYXBlcl9waXBlX2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCi0JCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQotewotCXN0cnVjdCByZXBhcGVyX2VwZCAqZXBkID0gZHJtX3RvX2VwZChwaXBlLT5jcnRjLmRldik7Ci0Jc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IGVwZC0+c3BpOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsKLQlib29sIGRjX29rID0gZmFsc2U7Ci0JaW50IGksIHJldCwgaWR4OwotCi0JaWYgKCFkcm1fZGV2X2VudGVyKHBpcGUtPmNydGMuZGV2LCAmaWR4KSkKLQkJcmV0dXJuOwotCi0JRFJNX0RFQlVHX0RSSVZFUigiXG4iKTsKLQotCS8qIFBvd2VyIHVwIHNlcXVlbmNlICovCi0JZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGVwZC0+cmVzZXQsIDApOwotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPnBhbmVsX29uLCAwKTsKLQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5kaXNjaGFyZ2UsIDApOwotCWlmIChlcGQtPmJvcmRlcikKLQkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGVwZC0+Ym9yZGVyLCAwKTsKLQlyZXBhcGVyX3NwaV9tb3NpX2xvdyhzcGkpOwotCXVzbGVlcF9yYW5nZSg1MDAwLCAxMDAwMCk7Ci0KLQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5wYW5lbF9vbiwgMSk7Ci0JLyoKLQkgKiBUaGlzIGRlbGF5IGNvbWVzIGZyb20gdGhlIHJlcGFwZXIub3JnIHVzZXJzcGFjZSBkcml2ZXIsIGl0J3Mgbm90Ci0JICogbWVudGlvbmVkIGluIHRoZSBkYXRhc2hlZXQuCi0JICovCi0JdXNsZWVwX3JhbmdlKDEwMDAwLCAxNTAwMCk7Ci0JZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGVwZC0+cmVzZXQsIDEpOwotCWlmIChlcGQtPmJvcmRlcikKLQkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGVwZC0+Ym9yZGVyLCAxKTsKLQl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOwotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPnJlc2V0LCAwKTsKLQl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOwotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPnJlc2V0LCAxKTsKLQl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOwotCi0JLyogV2FpdCBmb3IgQ09HIHRvIGJlY29tZSByZWFkeSAqLwotCWZvciAoaSA9IDEwMDsgaSA+IDA7IGktLSkgewotCQlpZiAoIWdwaW9kX2dldF92YWx1ZV9jYW5zbGVlcChlcGQtPmJ1c3kpKQotCQkJYnJlYWs7Ci0KLQkJdXNsZWVwX3JhbmdlKDEwLCAxMDApOwotCX0KLQotCWlmICghaSkgewotCQlEUk1fREVWX0VSUk9SKGRldiwgInRpbWVvdXQgd2FpdGluZyBmb3IgcGFuZWwgdG8gYmVjb21lIHJlYWR5LlxuIik7Ci0JCXBvd2VyX29mZihlcGQpOwotCQlnb3RvIG91dF9leGl0OwotCX0KLQotCXJlcGFwZXJfcmVhZF9pZChzcGkpOwotCXJldCA9IHJlcGFwZXJfcmVhZF9pZChzcGkpOwotCWlmIChyZXQgIT0gUkVQQVBFUl9SSURfRzJfQ09HX0lEKSB7Ci0JCWlmIChyZXQgPCAwKQotCQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVhZCBjaGlwICglZClcbiIsIHJldCk7Ci0JCWVsc2UKLQkJCWRldl9lcnIoZGV2LCAid3JvbmcgQ09HIElEIDB4JTAyeFxuIiwgcmV0KTsKLQkJcG93ZXJfb2ZmKGVwZCk7Ci0JCWdvdG8gb3V0X2V4aXQ7Ci0JfQotCi0JLyogRGlzYWJsZSBPRSAqLwotCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwMiwgMHg0MCk7Ci0KLQlyZXQgPSByZXBhcGVyX3JlYWRfdmFsKHNwaSwgMHgwZik7Ci0JaWYgKHJldCA8IDAgfHwgIShyZXQgJiAweDgwKSkgewotCQlpZiAocmV0IDwgMCkKLQkJCURSTV9ERVZfRVJST1IoZGV2LCAiZmFpbGVkIHRvIHJlYWQgY2hpcCAoJWQpXG4iLCByZXQpOwotCQllbHNlCi0JCQlEUk1fREVWX0VSUk9SKGRldiwgInBhbmVsIGlzIHJlcG9ydGVkIGJyb2tlblxuIik7Ci0JCXBvd2VyX29mZihlcGQpOwotCQlnb3RvIG91dF9leGl0OwotCX0KLQotCS8qIFBvd2VyIHNhdmluZyBtb2RlICovCi0JcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDBiLCAweDAyKTsKLQkvKiBDaGFubmVsIHNlbGVjdCAqLwotCXJlcGFwZXJfd3JpdGVfYnVmKHNwaSwgMHgwMSwgZXBkLT5jaGFubmVsX3NlbGVjdCwgOCk7Ci0JLyogSGlnaCBwb3dlciBtb2RlIG9zYyAqLwotCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwNywgMHhkMSk7Ci0JLyogUG93ZXIgc2V0dGluZyAqLwotCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwOCwgMHgwMik7Ci0JLyogVmNvbSBsZXZlbCAqLwotCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwOSwgMHhjMik7Ci0JLyogUG93ZXIgc2V0dGluZyAqLwotCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwNCwgMHgwMyk7Ci0JLyogRHJpdmVyIGxhdGNoIG9uICovCi0JcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDAzLCAweDAxKTsKLQkvKiBEcml2ZXIgbGF0Y2ggb2ZmICovCi0JcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDAzLCAweDAwKTsKLQl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOwotCi0JLyogU3RhcnQgY2hhcmdlcHVtcCAqLwotCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKLQkJLyogQ2hhcmdlIHB1bXAgcG9zaXRpdmUgdm9sdGFnZSBvbiAtIFZHSC9WREwgb24gKi8KLQkJcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDA1LCAweDAxKTsKLQkJbXNsZWVwKDI0MCk7Ci0KLQkJLyogQ2hhcmdlIHB1bXAgbmVnYXRpdmUgdm9sdGFnZSBvbiAtIFZHTC9WREwgb24gKi8KLQkJcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDA1LCAweDAzKTsKLQkJbXNsZWVwKDQwKTsKLQotCQkvKiBDaGFyZ2UgcHVtcCBWY29tIG9uIC0gVmNvbSBkcml2ZXIgb24gKi8KLQkJcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDA1LCAweDBmKTsKLQkJbXNsZWVwKDQwKTsKLQotCQkvKiBjaGVjayBEQy9EQyAqLwotCQlyZXQgPSByZXBhcGVyX3JlYWRfdmFsKHNwaSwgMHgwZik7Ci0JCWlmIChyZXQgPCAwKSB7Ci0JCQlEUk1fREVWX0VSUk9SKGRldiwgImZhaWxlZCB0byByZWFkIGNoaXAgKCVkKVxuIiwgcmV0KTsKLQkJCXBvd2VyX29mZihlcGQpOwotCQkJZ290byBvdXRfZXhpdDsKLQkJfQotCi0JCWlmIChyZXQgJiAweDQwKSB7Ci0JCQlkY19vayA9IHRydWU7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWlmICghZGNfb2spIHsKLQkJRFJNX0RFVl9FUlJPUihkZXYsICJkYy9kYyBmYWlsZWRcbiIpOwotCQlwb3dlcl9vZmYoZXBkKTsKLQkJZ290byBvdXRfZXhpdDsKLQl9Ci0KLQkvKgotCSAqIE91dHB1dCBlbmFibGUgdG8gZGlzYWJsZQotCSAqIFRoZSB1c2Vyc3BhY2UgZHJpdmVyIHNldHMgdGhpcyB0byAweDA0LCBidXQgdGhlIGRhdGFzaGVldCBzYXlzIDB4MDYKLQkgKi8KLQlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDIsIDB4MDQpOwotCi0JZXBkLT5lbmFibGVkID0gdHJ1ZTsKLQllcGQtPnBhcnRpYWwgPSBmYWxzZTsKLW91dF9leGl0OgotCWRybV9kZXZfZXhpdChpZHgpOwotfQotCi1zdGF0aWMgdm9pZCByZXBhcGVyX3BpcGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCi17Ci0Jc3RydWN0IHJlcGFwZXJfZXBkICplcGQgPSBkcm1fdG9fZXBkKHBpcGUtPmNydGMuZGV2KTsKLQlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gZXBkLT5zcGk7Ci0JdW5zaWduZWQgaW50IGxpbmU7Ci0KLQkvKgotCSAqIFRoaXMgY2FsbGJhY2sgaXMgbm90IHByb3RlY3RlZCBieSBkcm1fZGV2X2VudGVyL2V4aXQgc2luY2Ugd2Ugd2FudCB0bwotCSAqIHR1cm4gb2ZmIHRoZSBkaXNwbGF5IG9uIHJlZ3VsYXIgZHJpdmVyIHVubG9hZC4gSXQncyBoaWdobHkgdW5saWtlbHkKLQkgKiB0aGF0IHRoZSB1bmRlcmx5aW5nIFNQSSBjb250cm9sbGVyIGlzIGdvbmUgc2hvdWxkIHRoaXMgYmUgY2FsbGVkIGFmdGVyCi0JICogdW5wbHVnLgotCSAqLwotCi0JaWYgKCFlcGQtPmVuYWJsZWQpCi0JCXJldHVybjsKLQotCURSTV9ERUJVR19EUklWRVIoIlxuIik7Ci0KLQllcGQtPmVuYWJsZWQgPSBmYWxzZTsKLQotCS8qIE5vdGhpbmcgZnJhbWUgKi8KLQlmb3IgKGxpbmUgPSAwOyBsaW5lIDwgZXBkLT5oZWlnaHQ7IGxpbmUrKykKLQkJcmVwYXBlcl9vbmVfbGluZShlcGQsIDB4N2ZmZnUsIE5VTEwsIDB4MDAsIE5VTEwsCi0JCQkJIFJFUEFQRVJfQ09NUEVOU0FURSk7Ci0KLQkvKiAyLjciICovCi0JaWYgKGVwZC0+Ym9yZGVyKSB7Ci0JCS8qIER1bW15IGxpbmUgKi8KLQkJcmVwYXBlcl9vbmVfbGluZShlcGQsIDB4N2ZmZnUsIE5VTEwsIDB4MDAsIE5VTEwsCi0JCQkJIFJFUEFQRVJfQ09NUEVOU0FURSk7Ci0JCW1zbGVlcCgyNSk7Ci0JCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChlcGQtPmJvcmRlciwgMCk7Ci0JCW1zbGVlcCgyMDApOwotCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZXBkLT5ib3JkZXIsIDEpOwotCX0gZWxzZSB7Ci0JCS8qIEJvcmRlciBkdW1teSBsaW5lICovCi0JCXJlcGFwZXJfb25lX2xpbmUoZXBkLCAweDdmZmZ1LCBOVUxMLCAweDAwLCBOVUxMLAotCQkJCSBSRVBBUEVSX05PUk1BTCk7Ci0JCW1zbGVlcCgyMDApOwotCX0KLQotCS8qIG5vdCBkZXNjcmliZWQgaW4gZGF0YXNoZWV0ICovCi0JcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDBiLCAweDAwKTsKLQkvKiBMYXRjaCByZXNldCB0dXJuIG9uICovCi0JcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDAzLCAweDAxKTsKLQkvKiBQb3dlciBvZmYgY2hhcmdlIHB1bXAgVmNvbSAqLwotCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwNSwgMHgwMyk7Ci0JLyogUG93ZXIgb2ZmIGNoYXJnZSBwdW1wIG5lZyB2b2x0YWdlICovCi0JcmVwYXBlcl93cml0ZV92YWwoc3BpLCAweDA1LCAweDAxKTsKLQltc2xlZXAoMTIwKTsKLQkvKiBEaXNjaGFyZ2UgaW50ZXJuYWwgKi8KLQlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDQsIDB4ODApOwotCS8qIHR1cm4gb2ZmIGFsbCBjaGFyZ2UgcHVtcHMgKi8KLQlyZXBhcGVyX3dyaXRlX3ZhbChzcGksIDB4MDUsIDB4MDApOwotCS8qIFR1cm4gb2ZmIG9zYyAqLwotCXJlcGFwZXJfd3JpdGVfdmFsKHNwaSwgMHgwNywgMHgwMSk7Ci0JbXNsZWVwKDUwKTsKLQotCXBvd2VyX29mZihlcGQpOwotfQotCi1zdGF0aWMgdm9pZCByZXBhcGVyX3BpcGVfdXBkYXRlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKLQkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwaXBlLT5wbGFuZS5zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmcGlwZS0+Y3J0YzsKLQlzdHJ1Y3QgZHJtX3JlY3QgcmVjdDsKLQotCWlmIChkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfbWVyZ2VkKG9sZF9zdGF0ZSwgc3RhdGUsICZyZWN0KSkKLQkJcmVwYXBlcl9mYl9kaXJ0eShzdGF0ZS0+ZmIpOwotCi0JaWYgKGNydGMtPnN0YXRlLT5ldmVudCkgewotCQlzcGluX2xvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOwotCQlkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOwotCQlzcGluX3VubG9ja19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7Ci0JCWNydGMtPnN0YXRlLT5ldmVudCA9IE5VTEw7Ci0JfQotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIHJlcGFwZXJfcGlwZV9mdW5jcyA9IHsKLQkuZW5hYmxlID0gcmVwYXBlcl9waXBlX2VuYWJsZSwKLQkuZGlzYWJsZSA9IHJlcGFwZXJfcGlwZV9kaXNhYmxlLAotCS51cGRhdGUgPSByZXBhcGVyX3BpcGVfdXBkYXRlLAotCS5wcmVwYXJlX2ZiID0gZHJtX2dlbV9mYl9zaW1wbGVfZGlzcGxheV9waXBlX3ByZXBhcmVfZmIsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyByZXBhcGVyX21vZGVfY29uZmlnX2Z1bmNzID0gewotCS5mYl9jcmVhdGUgPSBkcm1fZ2VtX2ZiX2NyZWF0ZV93aXRoX2RpcnR5LAotCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKLQkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKLX07Ci0KLXN0YXRpYyB2b2lkIHJlcGFwZXJfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQotewotCXN0cnVjdCByZXBhcGVyX2VwZCAqZXBkID0gZHJtX3RvX2VwZChkcm0pOwotCi0JRFJNX0RFQlVHX0RSSVZFUigiXG4iKTsKLQotCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRybSk7Ci0JZHJtX2Rldl9maW5pKGRybSk7Ci0Ja2ZyZWUoZXBkKTsKLX0KLQotc3RhdGljIGNvbnN0IHVpbnQzMl90IHJlcGFwZXJfZm9ybWF0c1tdID0gewotCURSTV9GT1JNQVRfWFJHQjg4ODgsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgcmVwYXBlcl9lMTE0NGNzMDIxX21vZGUgPSB7Ci0JRFJNX1NJTVBMRV9NT0RFKDEyOCwgOTYsIDI5LCAyMiksCi19OwotCi1zdGF0aWMgY29uc3QgdTggcmVwYXBlcl9lMTE0NGNzMDIxX2NzW10gPSB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JCQkJCSAgICAweDAwLCAweDBmLCAweGZmLCAweDAwIH07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSByZXBhcGVyX2UxMTkwY3MwMjFfbW9kZSA9IHsKLQlEUk1fU0lNUExFX01PREUoMTQ0LCAxMjgsIDM2LCAzMiksCi19OwotCi1zdGF0aWMgY29uc3QgdTggcmVwYXBlcl9lMTE5MGNzMDIxX2NzW10gPSB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDMsCi0JCQkJCSAgICAweGZjLCAweDAwLCAweDAwLCAweGZmIH07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSByZXBhcGVyX2UyMjAwY3MwMjFfbW9kZSA9IHsKLQlEUk1fU0lNUExFX01PREUoMjAwLCA5NiwgNDYsIDIyKSwKLX07Ci0KLXN0YXRpYyBjb25zdCB1OCByZXBhcGVyX2UyMjAwY3MwMjFfY3NbXSA9IHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkJCQkJICAgIDB4MDEsIDB4ZmYsIDB4ZTAsIDB4MDAgfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHJlcGFwZXJfZTIyNzFjczAyMV9tb2RlID0gewotCURSTV9TSU1QTEVfTU9ERSgyNjQsIDE3NiwgNTcsIDM4KSwKLX07Ci0KLXN0YXRpYyBjb25zdCB1OCByZXBhcGVyX2UyMjcxY3MwMjFfY3NbXSA9IHsgMHgwMCwgMHgwMCwgMHgwMCwgMHg3ZiwKLQkJCQkJICAgIDB4ZmYsIDB4ZmUsIDB4MDAsIDB4MDAgfTsKLQotREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMocmVwYXBlcl9mb3BzKTsKLQotc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHJlcGFwZXJfZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfUFJJTUUgfAotCQkJCSAgRFJJVkVSX0FUT01JQywKLQkuZm9wcwkJCT0gJnJlcGFwZXJfZm9wcywKLQkucmVsZWFzZQkJPSByZXBhcGVyX3JlbGVhc2UsCi0JRFJNX0dFTV9DTUFfVk1BUF9EUklWRVJfT1BTLAotCS5uYW1lCQkJPSAicmVwYXBlciIsCi0JLmRlc2MJCQk9ICJQZXJ2YXNpdmUgRGlzcGxheXMgUmVQYXBlciBlLWluayBwYW5lbHMiLAotCS5kYXRlCQkJPSAiMjAxNzA0MDUiLAotCS5tYWpvcgkJCT0gMSwKLQkubWlub3IJCQk9IDAsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCByZXBhcGVyX29mX21hdGNoW10gPSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJwZXJ2YXNpdmUsZTExNDRjczAyMSIsIC5kYXRhID0gKHZvaWQgKilFMTE0NENTMDIxIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJwZXJ2YXNpdmUsZTExOTBjczAyMSIsIC5kYXRhID0gKHZvaWQgKilFMTE5MENTMDIxIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJwZXJ2YXNpdmUsZTIyMDBjczAyMSIsIC5kYXRhID0gKHZvaWQgKilFMjIwMENTMDIxIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJwZXJ2YXNpdmUsZTIyNzFjczAyMSIsIC5kYXRhID0gKHZvaWQgKilFMjI3MUNTMDIxIH0sCi0Je30sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmVwYXBlcl9vZl9tYXRjaCk7Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCByZXBhcGVyX2lkW10gPSB7Ci0JeyAiZTExNDRjczAyMSIsIEUxMTQ0Q1MwMjEgfSwKLQl7ICJlMTE5MGNzMDIxIiwgRTExOTBDUzAyMSB9LAotCXsgImUyMjAwY3MwMjEiLCBFMjIwMENTMDIxIH0sCi0JeyAiZTIyNzFjczAyMSIsIEUyMjcxQ1MwMjEgfSwKLQl7IH0sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShzcGksIHJlcGFwZXJfaWQpOwotCi1zdGF0aWMgaW50IHJlcGFwZXJfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKLQljb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCAqc3BpX2lkOwotCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsKLQllbnVtIHJlcGFwZXJfbW9kZWwgbW9kZWw7Ci0JY29uc3QgY2hhciAqdGhlcm1hbF96b25lOwotCXN0cnVjdCByZXBhcGVyX2VwZCAqZXBkOwotCXNpemVfdCBsaW5lX2J1ZmZlcl9zaXplOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07Ci0JaW50IHJldDsKLQotCW1hdGNoID0gb2ZfbWF0Y2hfZGV2aWNlKHJlcGFwZXJfb2ZfbWF0Y2gsIGRldik7Ci0JaWYgKG1hdGNoKSB7Ci0JCW1vZGVsID0gKGVudW0gcmVwYXBlcl9tb2RlbCltYXRjaC0+ZGF0YTsKLQl9IGVsc2UgewotCQlzcGlfaWQgPSBzcGlfZ2V0X2RldmljZV9pZChzcGkpOwotCQltb2RlbCA9IHNwaV9pZC0+ZHJpdmVyX2RhdGE7Ci0JfQotCi0JLyogVGhlIFNQSSBkZXZpY2UgaXMgdXNlZCB0byBhbGxvY2F0ZSBkbWEgbWVtb3J5ICovCi0JaWYgKCFkZXYtPmNvaGVyZW50X2RtYV9tYXNrKSB7Ci0JCXJldCA9IGRtYV9jb2VyY2VfbWFza19hbmRfY29oZXJlbnQoZGV2LCBETUFfQklUX01BU0soMzIpKTsKLQkJaWYgKHJldCkgewotCQkJZGV2X3dhcm4oZGV2LCAiRmFpbGVkIHRvIHNldCBkbWEgbWFzayAlZFxuIiwgcmV0KTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQl9Ci0KLQllcGQgPSBremFsbG9jKHNpemVvZigqZXBkKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFlcGQpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZHJtID0gJmVwZC0+ZHJtOwotCi0JcmV0ID0gZGV2bV9kcm1fZGV2X2luaXQoZGV2LCBkcm0sICZyZXBhcGVyX2RyaXZlcik7Ci0JaWYgKHJldCkgewotCQlrZnJlZShlcGQpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7Ci0JZHJtLT5tb2RlX2NvbmZpZy5mdW5jcyA9ICZyZXBhcGVyX21vZGVfY29uZmlnX2Z1bmNzOwotCi0JZXBkLT5zcGkgPSBzcGk7Ci0KLQllcGQtPnBhbmVsX29uID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicGFuZWwtb24iLCBHUElPRF9PVVRfTE9XKTsKLQlpZiAoSVNfRVJSKGVwZC0+cGFuZWxfb24pKSB7Ci0JCXJldCA9IFBUUl9FUlIoZXBkLT5wYW5lbF9vbik7Ci0JCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikKLQkJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdwYW5lbC1vbidcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWVwZC0+ZGlzY2hhcmdlID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAiZGlzY2hhcmdlIiwgR1BJT0RfT1VUX0xPVyk7Ci0JaWYgKElTX0VSUihlcGQtPmRpc2NoYXJnZSkpIHsKLQkJcmV0ID0gUFRSX0VSUihlcGQtPmRpc2NoYXJnZSk7Ci0JCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikKLQkJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdkaXNjaGFyZ2UnXG4iKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQllcGQtPnJlc2V0ID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicmVzZXQiLCBHUElPRF9PVVRfTE9XKTsKLQlpZiAoSVNfRVJSKGVwZC0+cmVzZXQpKSB7Ci0JCXJldCA9IFBUUl9FUlIoZXBkLT5yZXNldCk7Ci0JCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikKLQkJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWVwZC0+YnVzeSA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgImJ1c3kiLCBHUElPRF9JTik7Ci0JaWYgKElTX0VSUihlcGQtPmJ1c3kpKSB7Ci0JCXJldCA9IFBUUl9FUlIoZXBkLT5idXN5KTsKLQkJaWYgKHJldCAhPSAtRVBST0JFX0RFRkVSKQotCQkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZ2V0IGdwaW8gJ2J1c3knXG4iKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlpZiAoIWRldmljZV9wcm9wZXJ0eV9yZWFkX3N0cmluZyhkZXYsICJwZXJ2YXNpdmUsdGhlcm1hbC16b25lIiwKLQkJCQkJICZ0aGVybWFsX3pvbmUpKSB7Ci0JCWVwZC0+dGhlcm1hbCA9IHRoZXJtYWxfem9uZV9nZXRfem9uZV9ieV9uYW1lKHRoZXJtYWxfem9uZSk7Ci0JCWlmIChJU19FUlIoZXBkLT50aGVybWFsKSkgewotCQkJRFJNX0RFVl9FUlJPUihkZXYsICJGYWlsZWQgdG8gZ2V0IHRoZXJtYWwgem9uZTogJXNcbiIsIHRoZXJtYWxfem9uZSk7Ci0JCQlyZXR1cm4gUFRSX0VSUihlcGQtPnRoZXJtYWwpOwotCQl9Ci0JfQotCi0Jc3dpdGNoIChtb2RlbCkgewotCWNhc2UgRTExNDRDUzAyMToKLQkJbW9kZSA9ICZyZXBhcGVyX2UxMTQ0Y3MwMjFfbW9kZTsKLQkJZXBkLT5jaGFubmVsX3NlbGVjdCA9IHJlcGFwZXJfZTExNDRjczAyMV9jczsKLQkJZXBkLT5zdGFnZV90aW1lID0gNDgwOwotCQllcGQtPmJ5dGVzX3Blcl9zY2FuID0gOTYgLyA0OwotCQllcGQtPm1pZGRsZV9zY2FuID0gdHJ1ZTsgLyogZGF0YS1zY2FuLWRhdGEgKi8KLQkJZXBkLT5wcmVfYm9yZGVyX2J5dGUgPSBmYWxzZTsKLQkJZXBkLT5ib3JkZXJfYnl0ZSA9IFJFUEFQRVJfQk9SREVSX0JZVEVfWkVSTzsKLQkJYnJlYWs7Ci0KLQljYXNlIEUxMTkwQ1MwMjE6Ci0JCW1vZGUgPSAmcmVwYXBlcl9lMTE5MGNzMDIxX21vZGU7Ci0JCWVwZC0+Y2hhbm5lbF9zZWxlY3QgPSByZXBhcGVyX2UxMTkwY3MwMjFfY3M7Ci0JCWVwZC0+c3RhZ2VfdGltZSA9IDQ4MDsKLQkJZXBkLT5ieXRlc19wZXJfc2NhbiA9IDEyOCAvIDQgLyAyOwotCQllcGQtPm1pZGRsZV9zY2FuID0gZmFsc2U7IC8qIHNjYW4tZGF0YS1zY2FuICovCi0JCWVwZC0+cHJlX2JvcmRlcl9ieXRlID0gZmFsc2U7Ci0JCWVwZC0+Ym9yZGVyX2J5dGUgPSBSRVBBUEVSX0JPUkRFUl9CWVRFX1NFVDsKLQkJYnJlYWs7Ci0KLQljYXNlIEUyMjAwQ1MwMjE6Ci0JCW1vZGUgPSAmcmVwYXBlcl9lMjIwMGNzMDIxX21vZGU7Ci0JCWVwZC0+Y2hhbm5lbF9zZWxlY3QgPSByZXBhcGVyX2UyMjAwY3MwMjFfY3M7Ci0JCWVwZC0+c3RhZ2VfdGltZSA9IDQ4MDsKLQkJZXBkLT5ieXRlc19wZXJfc2NhbiA9IDk2IC8gNDsKLQkJZXBkLT5taWRkbGVfc2NhbiA9IHRydWU7IC8qIGRhdGEtc2Nhbi1kYXRhICovCi0JCWVwZC0+cHJlX2JvcmRlcl9ieXRlID0gdHJ1ZTsKLQkJZXBkLT5ib3JkZXJfYnl0ZSA9IFJFUEFQRVJfQk9SREVSX0JZVEVfTk9ORTsKLQkJYnJlYWs7Ci0KLQljYXNlIEUyMjcxQ1MwMjE6Ci0JCWVwZC0+Ym9yZGVyID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAiYm9yZGVyIiwgR1BJT0RfT1VUX0xPVyk7Ci0JCWlmIChJU19FUlIoZXBkLT5ib3JkZXIpKSB7Ci0JCQlyZXQgPSBQVFJfRVJSKGVwZC0+Ym9yZGVyKTsKLQkJCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikKLQkJCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAnYm9yZGVyJ1xuIik7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0KLQkJbW9kZSA9ICZyZXBhcGVyX2UyMjcxY3MwMjFfbW9kZTsKLQkJZXBkLT5jaGFubmVsX3NlbGVjdCA9IHJlcGFwZXJfZTIyNzFjczAyMV9jczsKLQkJZXBkLT5zdGFnZV90aW1lID0gNjMwOwotCQllcGQtPmJ5dGVzX3Blcl9zY2FuID0gMTc2IC8gNDsKLQkJZXBkLT5taWRkbGVfc2NhbiA9IHRydWU7IC8qIGRhdGEtc2Nhbi1kYXRhICovCi0JCWVwZC0+cHJlX2JvcmRlcl9ieXRlID0gdHJ1ZTsKLQkJZXBkLT5ib3JkZXJfYnl0ZSA9IFJFUEFQRVJfQk9SREVSX0JZVEVfTk9ORTsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVOT0RFVjsKLQl9Ci0KLQllcGQtPndpZHRoID0gbW9kZS0+aGRpc3BsYXk7Ci0JZXBkLT5oZWlnaHQgPSBtb2RlLT52ZGlzcGxheTsKLQllcGQtPmZhY3RvcmVkX3N0YWdlX3RpbWUgPSBlcGQtPnN0YWdlX3RpbWU7Ci0KLQlsaW5lX2J1ZmZlcl9zaXplID0gMiAqIGVwZC0+d2lkdGggLyA4ICsgZXBkLT5ieXRlc19wZXJfc2NhbiArIDI7Ci0JZXBkLT5saW5lX2J1ZmZlciA9IGRldm1fa3phbGxvYyhkZXYsIGxpbmVfYnVmZmVyX3NpemUsIEdGUF9LRVJORUwpOwotCWlmICghZXBkLT5saW5lX2J1ZmZlcikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQllcGQtPmN1cnJlbnRfZnJhbWUgPSBkZXZtX2t6YWxsb2MoZGV2LCBlcGQtPndpZHRoICogZXBkLT5oZWlnaHQgLyA4LAotCQkJCQkgIEdGUF9LRVJORUwpOwotCWlmICghZXBkLT5jdXJyZW50X2ZyYW1lKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXJldCA9IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQoZHJtLCAmZXBkLT5waXBlLCAmcmVwYXBlcl9waXBlX2Z1bmNzLAotCQkJCQlEUk1fTU9ERV9DT05ORUNUT1JfVklSVFVBTCwKLQkJCQkJcmVwYXBlcl9mb3JtYXRzLAotCQkJCQlBUlJBWV9TSVpFKHJlcGFwZXJfZm9ybWF0cyksIG1vZGUsIDApOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlkcm1fbW9kZV9jb25maWdfcmVzZXQoZHJtKTsKLQotCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0Jc3BpX3NldF9kcnZkYXRhKHNwaSwgZHJtKTsKLQotCURSTV9ERUJVR19EUklWRVIoIlNQSSBzcGVlZDogJXVNSHpcbiIsIHNwaS0+bWF4X3NwZWVkX2h6IC8gMTAwMDAwMCk7Ci0KLQlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm0sIDApOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmVwYXBlcl9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7Ci0KLQlkcm1fZGV2X3VucGx1Zyhkcm0pOwotCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRybSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgcmVwYXBlcl9zaHV0ZG93bihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKHNwaV9nZXRfZHJ2ZGF0YShzcGkpKTsKLX0KLQotc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIHJlcGFwZXJfc3BpX2RyaXZlciA9IHsKLQkuZHJpdmVyID0gewotCQkubmFtZSA9ICJyZXBhcGVyIiwKLQkJLm93bmVyID0gVEhJU19NT0RVTEUsCi0JCS5vZl9tYXRjaF90YWJsZSA9IHJlcGFwZXJfb2ZfbWF0Y2gsCi0JfSwKLQkuaWRfdGFibGUgPSByZXBhcGVyX2lkLAotCS5wcm9iZSA9IHJlcGFwZXJfcHJvYmUsCi0JLnJlbW92ZSA9IHJlcGFwZXJfcmVtb3ZlLAotCS5zaHV0ZG93biA9IHJlcGFwZXJfc2h1dGRvd24sCi19OwotbW9kdWxlX3NwaV9kcml2ZXIocmVwYXBlcl9zcGlfZHJpdmVyKTsKLQotTU9EVUxFX0RFU0NSSVBUSU9OKCJQZXJ2YXNpdmUgRGlzcGxheXMgUmVQYXBlciBEUk0gZHJpdmVyIik7Ci1NT0RVTEVfQVVUSE9SKCJOb3JhbGYgVHLDuG5uZXMiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzU4Ni5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vc3Q3NTg2LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhYzYyNjIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vc3Q3NTg2LmMKKysrIC9kZXYvbnVsbApAQCAtMSw0NDIgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKLS8qCi0gKiBEUk0gZHJpdmVyIGZvciBTaXRyb25peCBTVDc1ODYgcGFuZWxzCi0gKgotICogQ29weXJpZ2h0IDIwMTcgRGF2aWQgTGVjaG5lciA8ZGF2aWRAbGVjaG5vbG9neS5jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9wcm9wZXJ0eS5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KLSNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KLQotI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2Zvcm1hdF9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KLSNpbmNsdWRlIDxkcm0vdGlueWRybS9taXBpLWRiaS5oPgotI2luY2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgotCi0vKiBjb250cm9sbGVyLXNwZWNpZmljIGNvbW1hbmRzICovCi0jZGVmaW5lIFNUNzU4Nl9ESVNQX01PREVfR1JBWQkweDM4Ci0jZGVmaW5lIFNUNzU4Nl9ESVNQX01PREVfTU9OTwkweDM5Ci0jZGVmaW5lIFNUNzU4Nl9FTkFCTEVfRERSQU0JMHgzYQotI2RlZmluZSBTVDc1ODZfU0VUX0RJU1BfRFVUWQkweGIwCi0jZGVmaW5lIFNUNzU4Nl9TRVRfUEFSVF9ESVNQCTB4YjQKLSNkZWZpbmUgU1Q3NTg2X1NFVF9OTElORV9JTlYJMHhiNQotI2RlZmluZSBTVDc1ODZfU0VUX1ZPUAkJMHhjMAotI2RlZmluZSBTVDc1ODZfU0VUX0JJQVNfU1lTVEVNCTB4YzMKLSNkZWZpbmUgU1Q3NTg2X1NFVF9CT09TVF9MRVZFTAkweGM0Ci0jZGVmaW5lIFNUNzU4Nl9TRVRfVk9QX09GRlNFVAkweGM3Ci0jZGVmaW5lIFNUNzU4Nl9FTkFCTEVfQU5BTE9HCTB4ZDAKLSNkZWZpbmUgU1Q3NTg2X0FVVE9fUkVBRF9DVFJMCTB4ZDcKLSNkZWZpbmUgU1Q3NTg2X09UUF9SV19DVFJMCTB4ZTAKLSNkZWZpbmUgU1Q3NTg2X09UUF9DVFJMX09VVAkweGUxCi0jZGVmaW5lIFNUNzU4Nl9PVFBfUkVBRAkJMHhlMwotCi0jZGVmaW5lIFNUNzU4Nl9ESVNQX0NUUkxfTVgJQklUKDYpCi0jZGVmaW5lIFNUNzU4Nl9ESVNQX0NUUkxfTVkJQklUKDcpCi0KLS8qCi0gKiBUaGUgU1Q3NTg2IGNvbnRyb2xsZXIgaGFzIGFuIHVudXN1YWwgcGl4ZWwgZm9ybWF0IHdoZXJlIDJicHAgZ3JheXNjYWxlIGlzCi0gKiBwYWNrZWQgMyBwaXhlbHMgcGVyIGJ5dGUgd2l0aCB0aGUgZmlyc3QgdHdvIHBpeGVscyB1c2luZyAzIGJpdHMgYW5kIHRoZSAzcmQKLSAqIHBpeGVsIHVzaW5nIG9ubHkgMiBiaXRzLgotICoKLSAqIHwgIEQ3ICB8ICBENiAgfCAgRDUgIHx8ICAgICAgfCAgICAgIHx8IDJicHAgfAotICogfCAoRDQpIHwgKEQzKSB8IChEMikgfHwgIEQxICB8ICBEMCAgfHwgR1JBWSB8Ci0gKiArLS0tLS0tKy0tLS0tLSstLS0tLS0rKy0tLS0tLSstLS0tLS0rKy0tLS0tLSsKLSAqIHwgIDEgICB8ICAxICAgfCAgMSAgIHx8ICAxICAgfCAgMSAgIHx8IDAgIDAgfCBibGFjawotICogfCAgMSAgIHwgIDAgICB8ICAwICAgfHwgIDEgICB8ICAwICAgfHwgMCAgMSB8IGRhcmsgZ3JheQotICogfCAgMCAgIHwgIDEgICB8ICAwICAgfHwgIDAgICB8ICAxICAgfHwgMSAgMCB8IGxpZ2h0IGdyYXkKLSAqIHwgIDAgICB8ICAwICAgfCAgMCAgIHx8ICAwICAgfCAgMCAgIHx8IDEgIDEgfCB3aGl0ZQotICovCi0KLXN0YXRpYyBjb25zdCB1OCBzdDc1ODZfbG9va3VwW10gPSB7IDB4NywgMHg0LCAweDIsIDB4MCB9OwotCi1zdGF0aWMgdm9pZCBzdDc1ODZfeHJnYjg4ODhfdG9fZ3JheTMzMih1OCAqZHN0LCB2b2lkICp2YWRkciwKLQkJCQkgICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCQkJICAgICAgIHN0cnVjdCBkcm1fcmVjdCAqY2xpcCkKLXsKLQlzaXplX3QgbGVuID0gKGNsaXAtPngyIC0gY2xpcC0+eDEpICogKGNsaXAtPnkyIC0gY2xpcC0+eTEpOwotCXVuc2lnbmVkIGludCB4LCB5OwotCXU4ICpzcmMsICpidWYsIHZhbDsKLQotCWJ1ZiA9IGttYWxsb2MobGVuLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZikKLQkJcmV0dXJuOwotCi0JZHJtX2ZiX3hyZ2I4ODg4X3RvX2dyYXk4KGJ1ZiwgdmFkZHIsIGZiLCBjbGlwKTsKLQlzcmMgPSBidWY7Ci0KLQlmb3IgKHkgPSBjbGlwLT55MTsgeSA8IGNsaXAtPnkyOyB5KyspIHsKLQkJZm9yICh4ID0gY2xpcC0+eDE7IHggPCBjbGlwLT54MjsgeCArPSAzKSB7Ci0JCQl2YWwgPSBzdDc1ODZfbG9va3VwWypzcmMrKyA+PiA2XSA8PCA1OwotCQkJdmFsIHw9IHN0NzU4Nl9sb29rdXBbKnNyYysrID4+IDZdIDw8IDI7Ci0JCQl2YWwgfD0gc3Q3NTg2X2xvb2t1cFsqc3JjKysgPj4gNl0gPj4gMTsKLQkJCSpkc3QrKyA9IHZhbDsKLQkJfQotCX0KLQotCWtmcmVlKGJ1Zik7Ci19Ci0KLXN0YXRpYyBpbnQgc3Q3NTg2X2J1Zl9jb3B5KHZvaWQgKmRzdCwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCQkgICBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXApCi17Ci0Jc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29iaiA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIDApOwotCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmltcG9ydF9hdHRhY2ggPSBjbWFfb2JqLT5iYXNlLmltcG9ydF9hdHRhY2g7Ci0Jdm9pZCAqc3JjID0gY21hX29iai0+dmFkZHI7Ci0JaW50IHJldCA9IDA7Ci0KLQlpZiAoaW1wb3J0X2F0dGFjaCkgewotCQlyZXQgPSBkbWFfYnVmX2JlZ2luX2NwdV9hY2Nlc3MoaW1wb3J0X2F0dGFjaC0+ZG1hYnVmLAotCQkJCQkgICAgICAgRE1BX0ZST01fREVWSUNFKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCi0Jc3Q3NTg2X3hyZ2I4ODg4X3RvX2dyYXkzMzIoZHN0LCBzcmMsIGZiLCBjbGlwKTsKLQotCWlmIChpbXBvcnRfYXR0YWNoKQotCQlyZXQgPSBkbWFfYnVmX2VuZF9jcHVfYWNjZXNzKGltcG9ydF9hdHRhY2gtPmRtYWJ1ZiwKLQkJCQkJICAgICBETUFfRlJPTV9ERVZJQ0UpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHZvaWQgc3Q3NTg2X2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBzdHJ1Y3QgZHJtX3JlY3QgKnJlY3QpCi17Ci0Jc3RydWN0IG1pcGlfZGJpICptaXBpID0gZHJtX3RvX21pcGlfZGJpKGZiLT5kZXYpOwotCWludCBzdGFydCwgZW5kLCBpZHgsIHJldCA9IDA7Ci0KLQlpZiAoIW1pcGktPmVuYWJsZWQpCi0JCXJldHVybjsKLQotCWlmICghZHJtX2Rldl9lbnRlcihmYi0+ZGV2LCAmaWR4KSkKLQkJcmV0dXJuOwotCi0JLyogMyBwaXhlbHMgcGVyIGJ5dGUsIHNvIGdyb3cgY2xpcCB0byBuZWFyZXN0IG11bHRpcGxlIG9mIDMgKi8KLQlyZWN0LT54MSA9IHJvdW5kZG93bihyZWN0LT54MSwgMyk7Ci0JcmVjdC0+eDIgPSByb3VuZHVwKHJlY3QtPngyLCAzKTsKLQotCURSTV9ERUJVR19LTVMoIkZsdXNoaW5nIFtGQjolZF0gIiBEUk1fUkVDVF9GTVQgIlxuIiwgZmItPmJhc2UuaWQsIERSTV9SRUNUX0FSRyhyZWN0KSk7Ci0KLQlyZXQgPSBzdDc1ODZfYnVmX2NvcHkobWlwaS0+dHhfYnVmLCBmYiwgcmVjdCk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfbXNnOwotCi0JLyogUGl4ZWxzIGFyZSBwYWNrZWQgMyBwZXIgYnl0ZSAqLwotCXN0YXJ0ID0gcmVjdC0+eDEgLyAzOwotCWVuZCA9IHJlY3QtPngyIC8gMzsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0NPTFVNTl9BRERSRVNTLAotCQkJIChzdGFydCA+PiA4KSAmIDB4RkYsIHN0YXJ0ICYgMHhGRiwKLQkJCSAoZW5kID4+IDgpICYgMHhGRiwgKGVuZCAtIDEpICYgMHhGRik7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfUEFHRV9BRERSRVNTLAotCQkJIChyZWN0LT55MSA+PiA4KSAmIDB4RkYsIHJlY3QtPnkxICYgMHhGRiwKLQkJCSAocmVjdC0+eTIgPj4gOCkgJiAweEZGLCAocmVjdC0+eTIgLSAxKSAmIDB4RkYpOwotCi0JcmV0ID0gbWlwaV9kYmlfY29tbWFuZF9idWYobWlwaSwgTUlQSV9EQ1NfV1JJVEVfTUVNT1JZX1NUQVJULAotCQkJCSAgICh1OCAqKW1pcGktPnR4X2J1ZiwKLQkJCQkgICAoZW5kIC0gc3RhcnQpICogKHJlY3QtPnkyIC0gcmVjdC0+eTEpKTsKLWVycl9tc2c6Ci0JaWYgKHJldCkKLQkJZGV2X2Vycl9vbmNlKGZiLT5kZXYtPmRldiwgIkZhaWxlZCB0byB1cGRhdGUgZGlzcGxheSAlZFxuIiwgcmV0KTsKLQotCWRybV9kZXZfZXhpdChpZHgpOwotfQotCi1zdGF0aWMgdm9pZCBzdDc1ODZfcGlwZV91cGRhdGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAotCQkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKLXsKLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHBpcGUtPnBsYW5lLnN0YXRlOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZwaXBlLT5jcnRjOwotCXN0cnVjdCBkcm1fcmVjdCByZWN0OwotCi0JaWYgKGRybV9hdG9taWNfaGVscGVyX2RhbWFnZV9tZXJnZWQob2xkX3N0YXRlLCBzdGF0ZSwgJnJlY3QpKQotCQlzdDc1ODZfZmJfZGlydHkoc3RhdGUtPmZiLCAmcmVjdCk7Ci0KLQlpZiAoY3J0Yy0+c3RhdGUtPmV2ZW50KSB7Ci0JCXNwaW5fbG9ja19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7Ci0JCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KGNydGMsIGNydGMtPnN0YXRlLT5ldmVudCk7Ci0JCXNwaW5fdW5sb2NrX2lycSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsKLQkJY3J0Yy0+c3RhdGUtPmV2ZW50ID0gTlVMTDsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIHN0NzU4Nl9waXBlX2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCi0JCQkgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQotewotCXN0cnVjdCBtaXBpX2RiaSAqbWlwaSA9IGRybV90b19taXBpX2RiaShwaXBlLT5jcnRjLmRldik7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7Ci0Jc3RydWN0IGRybV9yZWN0IHJlY3QgPSB7Ci0JCS54MSA9IDAsCi0JCS54MiA9IGZiLT53aWR0aCwKLQkJLnkxID0gMCwKLQkJLnkyID0gZmItPmhlaWdodCwKLQl9OwotCWludCBpZHgsIHJldDsKLQl1OCBhZGRyX21vZGU7Ci0KLQlpZiAoIWRybV9kZXZfZW50ZXIocGlwZS0+Y3J0Yy5kZXYsICZpZHgpKQotCQlyZXR1cm47Ci0KLQlEUk1fREVCVUdfS01TKCJcbiIpOwotCi0JcmV0ID0gbWlwaV9kYmlfcG93ZXJvbl9yZXNldChtaXBpKTsKLQlpZiAocmV0KQotCQlnb3RvIG91dF9leGl0OwotCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc1ODZfQVVUT19SRUFEX0NUUkwsIDB4OWYpOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgU1Q3NTg2X09UUF9SV19DVFJMLCAweDAwKTsKLQotCW1zbGVlcCgxMCk7Ci0KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIFNUNzU4Nl9PVFBfUkVBRCk7Ci0KLQltc2xlZXAoMjApOwotCi0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc1ODZfT1RQX0NUUkxfT1VUKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIE1JUElfRENTX0VYSVRfU0xFRVBfTU9ERSk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfRElTUExBWV9PRkYpOwotCi0JbXNsZWVwKDUwKTsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgU1Q3NTg2X1NFVF9WT1BfT0ZGU0VULCAweDAwKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIFNUNzU4Nl9TRVRfVk9QLCAweGUzLCAweDAwKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIFNUNzU4Nl9TRVRfQklBU19TWVNURU0sIDB4MDIpOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgU1Q3NTg2X1NFVF9CT09TVF9MRVZFTCwgMHgwNCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc1ODZfRU5BQkxFX0FOQUxPRywgMHgxZCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc1ODZfU0VUX05MSU5FX0lOViwgMHgwMCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc1ODZfRElTUF9NT0RFX0dSQVkpOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgU1Q3NTg2X0VOQUJMRV9ERFJBTSwgMHgwMik7Ci0KLQlzd2l0Y2ggKG1pcGktPnJvdGF0aW9uKSB7Ci0JZGVmYXVsdDoKLQkJYWRkcl9tb2RlID0gMHgwMDsKLQkJYnJlYWs7Ci0JY2FzZSA5MDoKLQkJYWRkcl9tb2RlID0gU1Q3NTg2X0RJU1BfQ1RSTF9NWTsKLQkJYnJlYWs7Ci0JY2FzZSAxODA6Ci0JCWFkZHJfbW9kZSA9IFNUNzU4Nl9ESVNQX0NUUkxfTVggfCBTVDc1ODZfRElTUF9DVFJMX01ZOwotCQlicmVhazsKLQljYXNlIDI3MDoKLQkJYWRkcl9tb2RlID0gU1Q3NTg2X0RJU1BfQ1RSTF9NWDsKLQkJYnJlYWs7Ci0JfQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0FERFJFU1NfTU9ERSwgYWRkcl9tb2RlKTsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgU1Q3NTg2X1NFVF9ESVNQX0RVVFksIDB4N2YpOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgU1Q3NTg2X1NFVF9QQVJUX0RJU1AsIDB4YTApOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX1BBUlRJQUxfQVJFQSwgMHgwMCwgMHgwMCwgMHgwMCwgMHg3Nyk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19FWElUX0lOVkVSVF9NT0RFKTsKLQotCW1zbGVlcCgxMDApOwotCi0JbWlwaS0+ZW5hYmxlZCA9IHRydWU7Ci0Jc3Q3NTg2X2ZiX2RpcnR5KGZiLCAmcmVjdCk7Ci0KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIE1JUElfRENTX1NFVF9ESVNQTEFZX09OKTsKLW91dF9leGl0OgotCWRybV9kZXZfZXhpdChpZHgpOwotfQotCi1zdGF0aWMgdm9pZCBzdDc1ODZfcGlwZV9kaXNhYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSkKLXsKLQlzdHJ1Y3QgbWlwaV9kYmkgKm1pcGkgPSBkcm1fdG9fbWlwaV9kYmkocGlwZS0+Y3J0Yy5kZXYpOwotCi0JLyoKLQkgKiBUaGlzIGNhbGxiYWNrIGlzIG5vdCBwcm90ZWN0ZWQgYnkgZHJtX2Rldl9lbnRlci9leGl0IHNpbmNlIHdlIHdhbnQgdG8KLQkgKiB0dXJuIG9mZiB0aGUgZGlzcGxheSBvbiByZWd1bGFyIGRyaXZlciB1bmxvYWQuIEl0J3MgaGlnaGx5IHVubGlrZWx5Ci0JICogdGhhdCB0aGUgdW5kZXJseWluZyBTUEkgY29udHJvbGxlciBpcyBnb25lIHNob3VsZCB0aGlzIGJlIGNhbGxlZCBhZnRlcgotCSAqIHVucGx1Zy4KLQkgKi8KLQotCURSTV9ERUJVR19LTVMoIlxuIik7Ci0KLQlpZiAoIW1pcGktPmVuYWJsZWQpCi0JCXJldHVybjsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT0ZGKTsKLQltaXBpLT5lbmFibGVkID0gZmFsc2U7Ci19Ci0KLXN0YXRpYyBjb25zdCB1MzIgc3Q3NTg2X2Zvcm1hdHNbXSA9IHsKLQlEUk1fRk9STUFUX1hSR0I4ODg4LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyBzdDc1ODZfcGlwZV9mdW5jcyA9IHsKLQkuZW5hYmxlCQk9IHN0NzU4Nl9waXBlX2VuYWJsZSwKLQkuZGlzYWJsZQk9IHN0NzU4Nl9waXBlX2Rpc2FibGUsCi0JLnVwZGF0ZQkJPSBzdDc1ODZfcGlwZV91cGRhdGUsCi0JLnByZXBhcmVfZmIJPSBkcm1fZ2VtX2ZiX3NpbXBsZV9kaXNwbGF5X3BpcGVfcHJlcGFyZV9mYiwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIHN0NzU4Nl9tb2RlX2NvbmZpZ19mdW5jcyA9IHsKLQkuZmJfY3JlYXRlID0gZHJtX2dlbV9mYl9jcmVhdGVfd2l0aF9kaXJ0eSwKLQkuYXRvbWljX2NoZWNrID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCi0JLmF0b21pY19jb21taXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgc3Q3NTg2X21vZGUgPSB7Ci0JRFJNX1NJTVBMRV9NT0RFKDE3OCwgMTI4LCAzNywgMjcpLAotfTsKLQotREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoc3Q3NTg2X2ZvcHMpOwotCi1zdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgc3Q3NTg2X2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX1BSSU1FIHwKLQkJCQkgIERSSVZFUl9BVE9NSUMsCi0JLmZvcHMJCQk9ICZzdDc1ODZfZm9wcywKLQkucmVsZWFzZQkJPSBtaXBpX2RiaV9yZWxlYXNlLAotCURSTV9HRU1fQ01BX1ZNQVBfRFJJVkVSX09QUywKLQkuZGVidWdmc19pbml0CQk9IG1pcGlfZGJpX2RlYnVnZnNfaW5pdCwKLQkubmFtZQkJCT0gInN0NzU4NiIsCi0JLmRlc2MJCQk9ICJTaXRyb25peCBTVDc1ODYiLAotCS5kYXRlCQkJPSAiMjAxNzA4MDEiLAotCS5tYWpvcgkJCT0gMSwKLQkubWlub3IJCQk9IDAsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdDc1ODZfb2ZfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gImxlZ28sZXYzLWxjZCIgfSwKLQl7fSwKLX07Ci1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdDc1ODZfb2ZfbWF0Y2gpOwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgc3Q3NTg2X2lkW10gPSB7Ci0JeyAiZXYzLWxjZCIsIDAgfSwKLQl7IH0sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShzcGksIHN0NzU4Nl9pZCk7Ci0KLXN0YXRpYyBpbnQgc3Q3NTg2X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gJnNwaS0+ZGV2OwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07Ci0Jc3RydWN0IG1pcGlfZGJpICptaXBpOwotCXN0cnVjdCBncGlvX2Rlc2MgKmEwOwotCXUzMiByb3RhdGlvbiA9IDA7Ci0Jc2l6ZV90IGJ1ZnNpemU7Ci0JaW50IHJldDsKLQotCW1pcGkgPSBremFsbG9jKHNpemVvZigqbWlwaSksIEdGUF9LRVJORUwpOwotCWlmICghbWlwaSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlkcm0gPSAmbWlwaS0+ZHJtOwotCXJldCA9IGRldm1fZHJtX2Rldl9pbml0KGRldiwgZHJtLCAmc3Q3NTg2X2RyaXZlcik7Ci0JaWYgKHJldCkgewotCQlrZnJlZShtaXBpKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlkcm1fbW9kZV9jb25maWdfaW5pdChkcm0pOwotCWRybS0+bW9kZV9jb25maWcucHJlZmVycmVkX2RlcHRoID0gMzI7Ci0JZHJtLT5tb2RlX2NvbmZpZy5mdW5jcyA9ICZzdDc1ODZfbW9kZV9jb25maWdfZnVuY3M7Ci0KLQltdXRleF9pbml0KCZtaXBpLT5jbWRsb2NrKTsKLQotCWJ1ZnNpemUgPSAoc3Q3NTg2X21vZGUudmRpc3BsYXkgKyAyKSAvIDMgKiBzdDc1ODZfbW9kZS5oZGlzcGxheTsKLQltaXBpLT50eF9idWYgPSBkZXZtX2ttYWxsb2MoZGV2LCBidWZzaXplLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW1pcGktPnR4X2J1ZikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQltaXBpLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOwotCWlmIChJU19FUlIobWlwaS0+cmVzZXQpKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtaXBpLT5yZXNldCk7Ci0JfQotCi0JYTAgPSBkZXZtX2dwaW9kX2dldChkZXYsICJhMCIsIEdQSU9EX09VVF9MT1cpOwotCWlmIChJU19FUlIoYTApKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdhMCdcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihhMCk7Ci0JfQotCi0JZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwgInJvdGF0aW9uIiwgJnJvdGF0aW9uKTsKLQltaXBpLT5yb3RhdGlvbiA9IHJvdGF0aW9uOwotCi0JcmV0ID0gbWlwaV9kYmlfc3BpX2luaXQoc3BpLCBtaXBpLCBhMCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCS8qIENhbm5vdCByZWFkIGZyb20gdGhpcyBjb250cm9sbGVyIHZpYSBTUEkgKi8KLQltaXBpLT5yZWFkX2NvbW1hbmRzID0gTlVMTDsKLQotCS8qCi0JICogd2UgYXJlIHVzaW5nIDgtYml0IGRhdGEsIHNvIHdlIGFyZSBub3QgYWN0dWFsbHkgc3dhcHBpbmcgYW55dGhpbmcsCi0JICogYnV0IHNldHRpbmcgbWlwaS0+c3dhcF9ieXRlcyBtYWtlcyBtaXBpX2RiaV90eXBlYzNfY29tbWFuZCgpIGRvIHRoZQotCSAqIHJpZ2h0IHRoaW5nIGFuZCBub3QgdXNlIDE2LWJpdCB0cmFuc2ZlcnMgKHdoaWNoIHJlc3VsdHMgaW4gc3dhcHBlZAotCSAqIGJ5dGVzIG9uIGxpdHRsZS1lbmRpYW4gc3lzdGVtcyBhbmQgY2F1c2VzIG91dCBvZiBvcmRlciBkYXRhIHRvIGJlCi0JICogc2VudCB0byB0aGUgZGlzcGxheSkuCi0JICovCi0JbWlwaS0+c3dhcF9ieXRlcyA9IHRydWU7Ci0KLQlyZXQgPSB0aW55ZHJtX2Rpc3BsYXlfcGlwZV9pbml0KGRybSwgJm1pcGktPnBpcGUsICZzdDc1ODZfcGlwZV9mdW5jcywKLQkJCQkJRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwsCi0JCQkJCXN0NzU4Nl9mb3JtYXRzLCBBUlJBWV9TSVpFKHN0NzU4Nl9mb3JtYXRzKSwKLQkJCQkJJnN0NzU4Nl9tb2RlLCByb3RhdGlvbik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCWRybV9wbGFuZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzKCZtaXBpLT5waXBlLnBsYW5lKTsKLQotCWRybV9tb2RlX2NvbmZpZ19yZXNldChkcm0pOwotCi0JcmV0ID0gZHJtX2Rldl9yZWdpc3Rlcihkcm0sIDApOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlzcGlfc2V0X2RydmRhdGEoc3BpLCBkcm0pOwotCi0JRFJNX0RFQlVHX0tNUygicHJlZmVycmVkX2RlcHRoPSV1LCByb3RhdGlvbiA9ICV1XG4iLAotCQkgICAgICBkcm0tPm1vZGVfY29uZmlnLnByZWZlcnJlZF9kZXB0aCwgcm90YXRpb24pOwotCi0JZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoZHJtLCAwKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHN0NzU4Nl9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7Ci0KLQlkcm1fZGV2X3VucGx1Zyhkcm0pOwotCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRybSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgc3Q3NTg2X3NodXRkb3duKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0JZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oc3BpX2dldF9kcnZkYXRhKHNwaSkpOwotfQotCi1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgc3Q3NTg2X3NwaV9kcml2ZXIgPSB7Ci0JLmRyaXZlciA9IHsKLQkJLm5hbWUgPSAic3Q3NTg2IiwKLQkJLm93bmVyID0gVEhJU19NT0RVTEUsCi0JCS5vZl9tYXRjaF90YWJsZSA9IHN0NzU4Nl9vZl9tYXRjaCwKLQl9LAotCS5pZF90YWJsZSA9IHN0NzU4Nl9pZCwKLQkucHJvYmUgPSBzdDc1ODZfcHJvYmUsCi0JLnJlbW92ZSA9IHN0NzU4Nl9yZW1vdmUsCi0JLnNodXRkb3duID0gc3Q3NTg2X3NodXRkb3duLAotfTsKLW1vZHVsZV9zcGlfZHJpdmVyKHN0NzU4Nl9zcGlfZHJpdmVyKTsKLQotTU9EVUxFX0RFU0NSSVBUSU9OKCJTaXRyb25peCBTVDc1ODYgRFJNIGRyaXZlciIpOwotTU9EVUxFX0FVVEhPUigiRGF2aWQgTGVjaG5lciA8ZGF2aWRAbGVjaG5vbG9neS5jb20+Iik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc3MzVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc3MzVyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlOTEwOWUuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vc3Q3NzM1ci5jCisrKyAvZGV2L251bGwKQEAgLTEsMjQ1ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwotLyoKLSAqIERSTSBkcml2ZXIgZm9yIFNpdHJvbml4IFNUNzczNVIgcGFuZWxzCi0gKgotICogQ29weXJpZ2h0IDIwMTcgRGF2aWQgTGVjaG5lciA8ZGF2aWRAbGVjaG5vbG9neS5jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2JhY2tsaWdodC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9wcm9wZXJ0eS5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KLSNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KLQotI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaD4KLSNpbmNsdWRlIDxkcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaD4KLQotI2RlZmluZSBTVDc3MzVSX0ZSTUNUUjEJCTB4YjEKLSNkZWZpbmUgU1Q3NzM1Ul9GUk1DVFIyCQkweGIyCi0jZGVmaW5lIFNUNzczNVJfRlJNQ1RSMwkJMHhiMwotI2RlZmluZSBTVDc3MzVSX0lOVkNUUgkJMHhiNAotI2RlZmluZSBTVDc3MzVSX1BXQ1RSMQkJMHhjMAotI2RlZmluZSBTVDc3MzVSX1BXQ1RSMgkJMHhjMQotI2RlZmluZSBTVDc3MzVSX1BXQ1RSMwkJMHhjMgotI2RlZmluZSBTVDc3MzVSX1BXQ1RSNAkJMHhjMwotI2RlZmluZSBTVDc3MzVSX1BXQ1RSNQkJMHhjNAotI2RlZmluZSBTVDc3MzVSX1ZNQ1RSMQkJMHhjNQotI2RlZmluZSBTVDc3MzVSX0dBTUNUUlAxCTB4ZTAKLSNkZWZpbmUgU1Q3NzM1Ul9HQU1DVFJOMQkweGUxCi0KLSNkZWZpbmUgU1Q3NzM1Ul9NWQlCSVQoNykKLSNkZWZpbmUgU1Q3NzM1Ul9NWAlCSVQoNikKLSNkZWZpbmUgU1Q3NzM1Ul9NVglCSVQoNSkKLQotc3RhdGljIHZvaWQgamRfdDE4MDAzX3QwMV9waXBlX2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCi0JCQkJICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJCSAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQotewotCXN0cnVjdCBtaXBpX2RiaSAqbWlwaSA9IGRybV90b19taXBpX2RiaShwaXBlLT5jcnRjLmRldik7Ci0JaW50IHJldCwgaWR4OwotCXU4IGFkZHJfbW9kZTsKLQotCWlmICghZHJtX2Rldl9lbnRlcihwaXBlLT5jcnRjLmRldiwgJmlkeCkpCi0JCXJldHVybjsKLQotCURSTV9ERUJVR19LTVMoIlxuIik7Ci0KLQlyZXQgPSBtaXBpX2RiaV9wb3dlcm9uX3Jlc2V0KG1pcGkpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0X2V4aXQ7Ci0KLQltc2xlZXAoMTUwKTsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfRVhJVF9TTEVFUF9NT0RFKTsKLQltc2xlZXAoNTAwKTsKLQotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgU1Q3NzM1Ul9GUk1DVFIxLCAweDAxLCAweDJjLCAweDJkKTsKLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIFNUNzczNVJfRlJNQ1RSMiwgMHgwMSwgMHgyYywgMHgyZCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc3MzVSX0ZSTUNUUjMsIDB4MDEsIDB4MmMsIDB4MmQsIDB4MDEsIDB4MmMsCi0JCQkgMHgyZCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc3MzVSX0lOVkNUUiwgMHgwNyk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc3MzVSX1BXQ1RSMSwgMHhhMiwgMHgwMiwgMHg4NCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc3MzVSX1BXQ1RSMiwgMHhjNSk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc3MzVSX1BXQ1RSMywgMHgwYSwgMHgwMCk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc3MzVSX1BXQ1RSNCwgMHg4YSwgMHgyYSk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc3MzVSX1BXQ1RSNSwgMHg4YSwgMHhlZSk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBTVDc3MzVSX1ZNQ1RSMSwgMHgwZSk7Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19FWElUX0lOVkVSVF9NT0RFKTsKLQlzd2l0Y2ggKG1pcGktPnJvdGF0aW9uKSB7Ci0JZGVmYXVsdDoKLQkJYWRkcl9tb2RlID0gU1Q3NzM1Ul9NWCB8IFNUNzczNVJfTVk7Ci0JCWJyZWFrOwotCWNhc2UgOTA6Ci0JCWFkZHJfbW9kZSA9IFNUNzczNVJfTVggfCBTVDc3MzVSX01WOwotCQlicmVhazsKLQljYXNlIDE4MDoKLQkJYWRkcl9tb2RlID0gMDsKLQkJYnJlYWs7Ci0JY2FzZSAyNzA6Ci0JCWFkZHJfbW9kZSA9IFNUNzczNVJfTVkgfCBTVDc3MzVSX01WOwotCQlicmVhazsKLQl9Ci0JbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfQUREUkVTU19NT0RFLCBhZGRyX21vZGUpOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX1BJWEVMX0ZPUk1BVCwKLQkJCSBNSVBJX0RDU19QSVhFTF9GTVRfMTZCSVQpOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgU1Q3NzM1Ul9HQU1DVFJQMSwgMHgwMiwgMHgxYywgMHgwNywgMHgxMiwgMHgzNywKLQkJCSAweDMyLCAweDI5LCAweDJkLCAweDI5LCAweDI1LCAweDJiLCAweDM5LCAweDAwLCAweDAxLAotCQkJIDB4MDMsIDB4MTApOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgU1Q3NzM1Ul9HQU1DVFJOMSwgMHgwMywgMHgxZCwgMHgwNywgMHgwNiwgMHgyZSwKLQkJCSAweDJjLCAweDI5LCAweDJkLCAweDJlLCAweDJlLCAweDM3LCAweDNmLCAweDAwLCAweDAwLAotCQkJIDB4MDIsIDB4MTApOwotCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT04pOwotCi0JbXNsZWVwKDEwMCk7Ci0KLQltaXBpX2RiaV9jb21tYW5kKG1pcGksIE1JUElfRENTX0VOVEVSX05PUk1BTF9NT0RFKTsKLQotCW1zbGVlcCgyMCk7Ci0KLQltaXBpX2RiaV9lbmFibGVfZmx1c2gobWlwaSwgY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwotb3V0X2V4aXQ6Ci0JZHJtX2Rldl9leGl0KGlkeCk7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgamRfdDE4MDAzX3QwMV9waXBlX2Z1bmNzID0gewotCS5lbmFibGUJCT0gamRfdDE4MDAzX3QwMV9waXBlX2VuYWJsZSwKLQkuZGlzYWJsZQk9IG1pcGlfZGJpX3BpcGVfZGlzYWJsZSwKLQkudXBkYXRlCQk9IG1pcGlfZGJpX3BpcGVfdXBkYXRlLAotCS5wcmVwYXJlX2ZiCT0gZHJtX2dlbV9mYl9zaW1wbGVfZGlzcGxheV9waXBlX3ByZXBhcmVfZmIsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgamRfdDE4MDAzX3QwMV9tb2RlID0gewotCURSTV9TSU1QTEVfTU9ERSgxMjgsIDE2MCwgMjgsIDM1KSwKLX07Ci0KLURFRklORV9EUk1fR0VNX0NNQV9GT1BTKHN0NzczNXJfZm9wcyk7Ci0KLXN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBzdDc3MzVyX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX1BSSU1FIHwKLQkJCQkgIERSSVZFUl9BVE9NSUMsCi0JLmZvcHMJCQk9ICZzdDc3MzVyX2ZvcHMsCi0JLnJlbGVhc2UJCT0gbWlwaV9kYmlfcmVsZWFzZSwKLQlEUk1fR0VNX0NNQV9WTUFQX0RSSVZFUl9PUFMsCi0JLmRlYnVnZnNfaW5pdAkJPSBtaXBpX2RiaV9kZWJ1Z2ZzX2luaXQsCi0JLm5hbWUJCQk9ICJzdDc3MzVyIiwKLQkuZGVzYwkJCT0gIlNpdHJvbml4IFNUNzczNVIiLAotCS5kYXRlCQkJPSAiMjAxNzExMjgiLAotCS5tYWpvcgkJCT0gMSwKLQkubWlub3IJCQk9IDAsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdDc3MzVyX29mX21hdGNoW10gPSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJqaWFuZGEsamQtdDE4MDAzLXQwMSIgfSwKLQl7IH0sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3Q3NzM1cl9vZl9tYXRjaCk7Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCBzdDc3MzVyX2lkW10gPSB7Ci0JeyAiamQtdDE4MDAzLXQwMSIsIDAgfSwKLQl7IH0sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShzcGksIHN0NzczNXJfaWQpOwotCi1zdGF0aWMgaW50IHN0NzczNXJfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKLXsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmc3BpLT5kZXY7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybTsKLQlzdHJ1Y3QgbWlwaV9kYmkgKm1pcGk7Ci0Jc3RydWN0IGdwaW9fZGVzYyAqZGM7Ci0JdTMyIHJvdGF0aW9uID0gMDsKLQlpbnQgcmV0OwotCi0JbWlwaSA9IGt6YWxsb2Moc2l6ZW9mKCptaXBpKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtaXBpKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWRybSA9ICZtaXBpLT5kcm07Ci0JcmV0ID0gZGV2bV9kcm1fZGV2X2luaXQoZGV2LCBkcm0sICZzdDc3MzVyX2RyaXZlcik7Ci0JaWYgKHJldCkgewotCQlrZnJlZShtaXBpKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlkcm1fbW9kZV9jb25maWdfaW5pdChkcm0pOwotCi0JbWlwaS0+cmVzZXQgPSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKLQlpZiAoSVNfRVJSKG1pcGktPnJlc2V0KSkgewotCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAncmVzZXQnXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWlwaS0+cmVzZXQpOwotCX0KLQotCWRjID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAiZGMiLCBHUElPRF9PVVRfTE9XKTsKLQlpZiAoSVNfRVJSKGRjKSkgewotCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAnZGMnXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIoZGMpOwotCX0KLQotCW1pcGktPmJhY2tsaWdodCA9IGRldm1fb2ZfZmluZF9iYWNrbGlnaHQoZGV2KTsKLQlpZiAoSVNfRVJSKG1pcGktPmJhY2tsaWdodCkpCi0JCXJldHVybiBQVFJfRVJSKG1pcGktPmJhY2tsaWdodCk7Ci0KLQlkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCAicm90YXRpb24iLCAmcm90YXRpb24pOwotCi0JcmV0ID0gbWlwaV9kYmlfc3BpX2luaXQoc3BpLCBtaXBpLCBkYyk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCS8qIENhbm5vdCByZWFkIGZyb20gQWRhZnJ1aXQgMS44IiBkaXNwbGF5IHZpYSBTUEkgKi8KLQltaXBpLT5yZWFkX2NvbW1hbmRzID0gTlVMTDsKLQotCXJldCA9IG1pcGlfZGJpX2luaXQobWlwaSwgJmpkX3QxODAwM190MDFfcGlwZV9mdW5jcywgJmpkX3QxODAwM190MDFfbW9kZSwgcm90YXRpb24pOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlkcm1fbW9kZV9jb25maWdfcmVzZXQoZHJtKTsKLQotCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0Jc3BpX3NldF9kcnZkYXRhKHNwaSwgZHJtKTsKLQotCWRybV9mYmRldl9nZW5lcmljX3NldHVwKGRybSwgMCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzdDc3MzVyX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKLQotCWRybV9kZXZfdW5wbHVnKGRybSk7Ci0JZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oZHJtKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBzdDc3MzVyX3NodXRkb3duKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCi17Ci0JZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oc3BpX2dldF9kcnZkYXRhKHNwaSkpOwotfQotCi1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgc3Q3NzM1cl9zcGlfZHJpdmVyID0gewotCS5kcml2ZXIgPSB7Ci0JCS5uYW1lID0gInN0NzczNXIiLAotCQkub3duZXIgPSBUSElTX01PRFVMRSwKLQkJLm9mX21hdGNoX3RhYmxlID0gc3Q3NzM1cl9vZl9tYXRjaCwKLQl9LAotCS5pZF90YWJsZSA9IHN0NzczNXJfaWQsCi0JLnByb2JlID0gc3Q3NzM1cl9wcm9iZSwKLQkucmVtb3ZlID0gc3Q3NzM1cl9yZW1vdmUsCi0JLnNodXRkb3duID0gc3Q3NzM1cl9zaHV0ZG93biwKLX07Ci1tb2R1bGVfc3BpX2RyaXZlcihzdDc3MzVyX3NwaV9kcml2ZXIpOwotCi1NT0RVTEVfREVTQ1JJUFRJT04oIlNpdHJvbml4IFNUNzczNVIgRFJNIGRyaXZlciIpOwotTU9EVUxFX0FVVEhPUigiRGF2aWQgTGVjaG5lciA8ZGF2aWRAbGVjaG5vbG9neS5jb20+Iik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwppbmRleCA1OGM0MDNlLi4yMGZmNTZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvYXRvbWljLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgogCiBzdGF0aWMgdm9pZCB0dG1fYm9fZ2xvYmFsX2tvYmpfcmVsZWFzZShzdHJ1Y3Qga29iamVjdCAqa29iaik7CiAKQEAgLTE2MCw3ICsxNjAsOCBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFzZV9saXN0KHN0cnVjdCBrcmVmICpsaXN0X2tyZWYpCiAJdHRtX3R0X2Rlc3Ryb3koYm8tPnR0bSk7CiAJYXRvbWljX2RlYygmYm8tPmJkZXYtPmdsb2ItPmJvX2NvdW50KTsKIAlkbWFfZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwotCXJlc2VydmF0aW9uX29iamVjdF9maW5pKCZiby0+dHRtX3Jlc3YpOworCWlmICghdHRtX2JvX3VzZXNfZW1iZWRkZWRfZ2VtX29iamVjdChibykpCisJCWRtYV9yZXN2X2ZpbmkoJmJvLT5iYXNlLl9yZXN2KTsKIAltdXRleF9kZXN0cm95KCZiby0+d3VfbXV0ZXgpOwogCWJvLT5kZXN0cm95KGJvKTsKIAl0dG1fbWVtX2dsb2JhbF9mcmVlKGJkZXYtPmdsb2ItPm1lbV9nbG9iLCBhY2Nfc2l6ZSk7CkBAIC0xNzIsNyArMTczLDcgQEAgc3RhdGljIHZvaWQgdHRtX2JvX2FkZF9tZW1fdG9fbHJ1KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKIAlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbjsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7CiAKIAlpZiAoIWxpc3RfZW1wdHkoJmJvLT5scnUpKQogCQlyZXR1cm47CkBAIC0yNDMsNyArMjQ0LDcgQEAgc3RhdGljIHZvaWQgdHRtX2JvX2J1bGtfbW92ZV9zZXRfcG9zKHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZV9wb3MgKnBvcywKIHZvaWQgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJCSAgICAgc3RydWN0IHR0bV9scnVfYnVsa19tb3ZlICpidWxrKQogewotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7CiAKIAl0dG1fYm9fZGVsX2Zyb21fbHJ1KGJvKTsKIAl0dG1fYm9fYWRkX3RvX2xydShibyk7CkBAIC0yNzYsOCArMjc3LDggQEAgdm9pZCB0dG1fYm9fYnVsa19tb3ZlX2xydV90YWlsKHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZSAqYnVsaykKIAkJaWYgKCFwb3MtPmZpcnN0KQogCQkJY29udGludWU7CiAKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKHBvcy0+Zmlyc3QtPnJlc3YpOwotCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQocG9zLT5sYXN0LT5yZXN2KTsKKwkJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQocG9zLT5maXJzdC0+YmFzZS5yZXN2KTsKKwkJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQocG9zLT5sYXN0LT5iYXNlLnJlc3YpOwogCiAJCW1hbiA9ICZwb3MtPmZpcnN0LT5iZGV2LT5tYW5bVFRNX1BMX1RUXTsKIAkJbGlzdF9idWxrX21vdmVfdGFpbCgmbWFuLT5scnVbaV0sICZwb3MtPmZpcnN0LT5scnUsCkBAIC0yOTEsOCArMjkyLDggQEAgdm9pZCB0dG1fYm9fYnVsa19tb3ZlX2xydV90YWlsKHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZSAqYnVsaykKIAkJaWYgKCFwb3MtPmZpcnN0KQogCQkJY29udGludWU7CiAKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKHBvcy0+Zmlyc3QtPnJlc3YpOwotCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQocG9zLT5sYXN0LT5yZXN2KTsKKwkJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQocG9zLT5maXJzdC0+YmFzZS5yZXN2KTsKKwkJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQocG9zLT5sYXN0LT5iYXNlLnJlc3YpOwogCiAJCW1hbiA9ICZwb3MtPmZpcnN0LT5iZGV2LT5tYW5bVFRNX1BMX1ZSQU1dOwogCQlsaXN0X2J1bGtfbW92ZV90YWlsKCZtYW4tPmxydVtpXSwgJnBvcy0+Zmlyc3QtPmxydSwKQEAgLTMwNiw4ICszMDcsOCBAQCB2b2lkIHR0bV9ib19idWxrX21vdmVfbHJ1X3RhaWwoc3RydWN0IHR0bV9scnVfYnVsa19tb3ZlICpidWxrKQogCQlpZiAoIXBvcy0+Zmlyc3QpCiAJCQljb250aW51ZTsKIAotCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQocG9zLT5maXJzdC0+cmVzdik7Ci0JCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChwb3MtPmxhc3QtPnJlc3YpOworCQlkbWFfcmVzdl9hc3NlcnRfaGVsZChwb3MtPmZpcnN0LT5iYXNlLnJlc3YpOworCQlkbWFfcmVzdl9hc3NlcnRfaGVsZChwb3MtPmxhc3QtPmJhc2UucmVzdik7CiAKIAkJbHJ1ID0gJnBvcy0+Zmlyc3QtPmJkZXYtPmdsb2ItPnN3YXBfbHJ1W2ldOwogCQlsaXN0X2J1bGtfbW92ZV90YWlsKGxydSwgJnBvcy0+Zmlyc3QtPnN3YXAsICZwb3MtPmxhc3QtPnN3YXApOwpAQCAtNDM4LDMyICs0MzksMzIgQEAgc3RhdGljIGludCB0dG1fYm9faW5kaXZpZHVhbGl6ZV9yZXN2KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiB7CiAJaW50IHI7CiAKLQlpZiAoYm8tPnJlc3YgPT0gJmJvLT50dG1fcmVzdikKKwlpZiAoYm8tPmJhc2UucmVzdiA9PSAmYm8tPmJhc2UuX3Jlc3YpCiAJCXJldHVybiAwOwogCi0JQlVHX09OKCFyZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jaygmYm8tPnR0bV9yZXN2KSk7CisJQlVHX09OKCFkbWFfcmVzdl90cnlsb2NrKCZiby0+YmFzZS5fcmVzdikpOwogCi0JciA9IHJlc2VydmF0aW9uX29iamVjdF9jb3B5X2ZlbmNlcygmYm8tPnR0bV9yZXN2LCBiby0+cmVzdik7CisJciA9IGRtYV9yZXN2X2NvcHlfZmVuY2VzKCZiby0+YmFzZS5fcmVzdiwgYm8tPmJhc2UucmVzdik7CiAJaWYgKHIpCi0JCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soJmJvLT50dG1fcmVzdik7CisJCWRtYV9yZXN2X3VubG9jaygmYm8tPmJhc2UuX3Jlc3YpOwogCiAJcmV0dXJuIHI7CiB9CiAKIHN0YXRpYyB2b2lkIHR0bV9ib19mbHVzaF9hbGxfZmVuY2VzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiB7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOworCXN0cnVjdCBkbWFfcmVzdl9saXN0ICpmb2JqOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCWludCBpOwogCi0JZm9iaiA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdCgmYm8tPnR0bV9yZXN2KTsKLQlmZW5jZSA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbCgmYm8tPnR0bV9yZXN2KTsKKwlmb2JqID0gZG1hX3Jlc3ZfZ2V0X2xpc3QoJmJvLT5iYXNlLl9yZXN2KTsKKwlmZW5jZSA9IGRtYV9yZXN2X2dldF9leGNsKCZiby0+YmFzZS5fcmVzdik7CiAJaWYgKGZlbmNlICYmICFmZW5jZS0+b3BzLT5zaWduYWxlZCkKIAkJZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoZmVuY2UpOwogCiAJZm9yIChpID0gMDsgZm9iaiAmJiBpIDwgZm9iai0+c2hhcmVkX2NvdW50OyArK2kpIHsKIAkJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKLQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQoYm8tPnJlc3YpKTsKKwkJCQkJZG1hX3Jlc3ZfaGVsZChiby0+YmFzZS5yZXN2KSk7CiAKIAkJaWYgKCFmZW5jZS0+b3BzLT5zaWduYWxlZCkKIAkJCWRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKGZlbmNlKTsKQEAgLTQ4MSwyMyArNDgyLDIzIEBAIHN0YXRpYyB2b2lkIHR0bV9ib19jbGVhbnVwX3JlZnNfb3JfcXVldWUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIAkJLyogTGFzdCByZXNvcnQsIGlmIHdlIGZhaWwgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUKIAkJICogZmVuY2VzIGJsb2NrIGZvciB0aGUgQk8gdG8gYmVjb21lIGlkbGUKIAkJICovCi0JCXJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KGJvLT5yZXN2LCB0cnVlLCBmYWxzZSwKKwkJZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShiby0+YmFzZS5yZXN2LCB0cnVlLCBmYWxzZSwKIAkJCQkJCSAgICAzMCAqIEhaKTsKIAkJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7CiAJCWdvdG8gZXJyb3I7CiAJfQogCiAJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7Ci0JcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8tPnJlc3YpID8gMCA6IC1FQlVTWTsKKwlyZXQgPSBkbWFfcmVzdl90cnlsb2NrKGJvLT5iYXNlLnJlc3YpID8gMCA6IC1FQlVTWTsKIAlpZiAoIXJldCkgewotCQlpZiAocmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KCZiby0+dHRtX3Jlc3YsIHRydWUpKSB7CisJCWlmIChkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdSgmYm8tPmJhc2UuX3Jlc3YsIHRydWUpKSB7CiAJCQl0dG1fYm9fZGVsX2Zyb21fbHJ1KGJvKTsKIAkJCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Ci0JCQlpZiAoYm8tPnJlc3YgIT0gJmJvLT50dG1fcmVzdikKLQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKCZiby0+dHRtX3Jlc3YpOworCQkJaWYgKGJvLT5iYXNlLnJlc3YgIT0gJmJvLT5iYXNlLl9yZXN2KQorCQkJCWRtYV9yZXN2X3VubG9jaygmYm8tPmJhc2UuX3Jlc3YpOwogCiAJCQl0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZShibyk7Ci0JCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKKwkJCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAkJCXJldHVybjsKIAkJfQogCkBAIC01MTMsMTAgKzUxNCwxMCBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fY2xlYW51cF9yZWZzX29yX3F1ZXVlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAJCQl0dG1fYm9fYWRkX3RvX2xydShibyk7CiAJCX0KIAotCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKKwkJZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCX0KLQlpZiAoYm8tPnJlc3YgIT0gJmJvLT50dG1fcmVzdikKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jaygmYm8tPnR0bV9yZXN2KTsKKwlpZiAoYm8tPmJhc2UucmVzdiAhPSAmYm8tPmJhc2UuX3Jlc3YpCisJCWRtYV9yZXN2X3VubG9jaygmYm8tPmJhc2UuX3Jlc3YpOwogCiBlcnJvcjoKIAlrcmVmX2dldCgmYm8tPmxpc3Rfa3JlZik7CkBAIC01NDUsMTUgKzU0NiwxNSBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJCSAgICAgICBib29sIHVubG9ja19yZXN2KQogewogCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gYm8tPmJkZXYtPmdsb2I7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdjsKKwlzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3Y7CiAJaW50IHJldDsKIAogCWlmICh1bmxpa2VseShsaXN0X2VtcHR5KCZiby0+ZGRlc3Ryb3kpKSkKLQkJcmVzdiA9IGJvLT5yZXN2OworCQlyZXN2ID0gYm8tPmJhc2UucmVzdjsKIAllbHNlCi0JCXJlc3YgPSAmYm8tPnR0bV9yZXN2OworCQlyZXN2ID0gJmJvLT5iYXNlLl9yZXN2OwogCi0JaWYgKHJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShyZXN2LCB0cnVlKSkKKwlpZiAoZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9yY3UocmVzdiwgdHJ1ZSkpCiAJCXJldCA9IDA7CiAJZWxzZQogCQlyZXQgPSAtRUJVU1k7CkBAIC01NjIsMTAgKzU2MywxMCBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJbG9uZyBscmV0OwogCiAJCWlmICh1bmxvY2tfcmVzdikKLQkJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCQkJZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCQlzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwogCi0JCWxyZXQgPSByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShyZXN2LCB0cnVlLAorCQlscmV0ID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShyZXN2LCB0cnVlLAogCQkJCQkJCSAgIGludGVycnVwdGlibGUsCiAJCQkJCQkJICAgMzAgKiBIWik7CiAKQEAgLTU3NSw3ICs1NzYsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJCXJldHVybiAtRUJVU1k7CiAKIAkJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7Ci0JCWlmICh1bmxvY2tfcmVzdiAmJiAhcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8tPnJlc3YpKSB7CisJCWlmICh1bmxvY2tfcmVzdiAmJiAhZG1hX3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5yZXN2KSkgewogCQkJLyoKIAkJCSAqIFdlIHJhY2VkLCBhbmQgbG9zdCwgc29tZW9uZSBlbHNlIGhvbGRzIHRoZSByZXNlcnZhdGlvbiBub3csCiAJCQkgKiBhbmQgaXMgcHJvYmFibHkgYnVzeSBpbiB0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZS4KQEAgLTU5Miw3ICs1OTMsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAogCWlmIChyZXQgfHwgdW5saWtlbHkobGlzdF9lbXB0eSgmYm8tPmRkZXN0cm95KSkpIHsKIAkJaWYgKHVubG9ja19yZXN2KQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJCQlkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7CiAJCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7CiAJCXJldHVybiByZXQ7CiAJfQpAQCAtNjA1LDcgKzYwNiw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCXR0bV9ib19jbGVhbnVwX21lbXR5cGVfdXNlKGJvKTsKIAogCWlmICh1bmxvY2tfcmVzdikKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAogCXJldHVybiAwOwogfQpAQCAtNjMxLDE0ICs2MzIsMTQgQEAgc3RhdGljIGJvb2wgdHRtX2JvX2RlbGF5ZWRfZGVsZXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBib29sIHJlbW92ZV9hbGwpCiAJCWtyZWZfZ2V0KCZiby0+bGlzdF9rcmVmKTsKIAkJbGlzdF9tb3ZlX3RhaWwoJmJvLT5kZGVzdHJveSwgJnJlbW92ZWQpOwogCi0JCWlmIChyZW1vdmVfYWxsIHx8IGJvLT5yZXN2ICE9ICZiby0+dHRtX3Jlc3YpIHsKKwkJaWYgKHJlbW92ZV9hbGwgfHwgYm8tPmJhc2UucmVzdiAhPSAmYm8tPmJhc2UuX3Jlc3YpIHsKIAkJCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Ci0JCQlyZXNlcnZhdGlvbl9vYmplY3RfbG9jayhiby0+cmVzdiwgTlVMTCk7CisJCQlkbWFfcmVzdl9sb2NrKGJvLT5iYXNlLnJlc3YsIE5VTEwpOwogCiAJCQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKIAkJCXR0bV9ib19jbGVhbnVwX3JlZnMoYm8sIGZhbHNlLCAhcmVtb3ZlX2FsbCwgdHJ1ZSk7CiAKLQkJfSBlbHNlIGlmIChyZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+cmVzdikpIHsKKwkJfSBlbHNlIGlmIChkbWFfcmVzdl90cnlsb2NrKGJvLT5iYXNlLnJlc3YpKSB7CiAJCQl0dG1fYm9fY2xlYW51cF9yZWZzKGJvLCBmYWxzZSwgIXJlbW92ZV9hbGwsIHRydWUpOwogCQl9IGVsc2UgewogCQkJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKQEAgLTY3MSw3ICs2NzIsMTAgQEAgc3RhdGljIHZvaWQgdHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKIAlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5tYW5bYm8tPm1lbS5tZW1fdHlwZV07CiAKLQlkcm1fdm1hX29mZnNldF9yZW1vdmUoJmJkZXYtPnZtYV9tYW5hZ2VyLCAmYm8tPnZtYV9ub2RlKTsKKwlpZiAoYm8tPmJkZXYtPmRyaXZlci0+cmVsZWFzZV9ub3RpZnkpCisJCWJvLT5iZGV2LT5kcml2ZXItPnJlbGVhc2Vfbm90aWZ5KGJvKTsKKworCWRybV92bWFfb2Zmc2V0X3JlbW92ZSgmYmRldi0+dm1hX21hbmFnZXIsICZiby0+YmFzZS52bWFfbm9kZSk7CiAJdHRtX21lbV9pb19sb2NrKG1hbiwgZmFsc2UpOwogCXR0bV9tZW1faW9fZnJlZV92bShibyk7CiAJdHRtX21lbV9pb191bmxvY2sobWFuKTsKQEAgLTcwNyw3ICs3MTEsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19ldmljdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCXN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKIAlpbnQgcmV0ID0gMDsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7CiAKIAlwbGFjZW1lbnQubnVtX3BsYWNlbWVudCA9IDA7CiAJcGxhY2VtZW50Lm51bV9idXN5X3BsYWNlbWVudCA9IDA7CkBAIC03NzcsOCArNzgxLDggQEAgc3RhdGljIGJvb2wgdHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dhYmxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiB7CiAJYm9vbCByZXQgPSBmYWxzZTsKIAotCWlmIChiby0+cmVzdiA9PSBjdHgtPnJlc3YpIHsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKGJvLT5yZXN2KTsKKwlpZiAoYm8tPmJhc2UucmVzdiA9PSBjdHgtPnJlc3YpIHsKKwkJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7CiAJCWlmIChjdHgtPmZsYWdzICYgVFRNX09QVF9GTEFHX0FMTE9XX1JFU19FVklDVAogCQkgICAgfHwgIWxpc3RfZW1wdHkoJmJvLT5kZGVzdHJveSkpCiAJCQlyZXQgPSB0cnVlOwpAQCAtNzg2LDcgKzc5MCw3IEBAIHN0YXRpYyBib29sIHR0bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlpZiAoYnVzeSkKIAkJCSpidXN5ID0gZmFsc2U7CiAJfSBlbHNlIHsKLQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8tPnJlc3YpOworCQlyZXQgPSBkbWFfcmVzdl90cnlsb2NrKGJvLT5iYXNlLnJlc3YpOwogCQkqbG9ja2VkID0gcmV0OwogCQlpZiAoYnVzeSkKIAkJCSpidXN5ID0gIXJldDsKQEAgLTgxNCwxMCArODE4LDEwIEBAIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF93YWl0X2J1c3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpidXN5X2JvLAogCQlyZXR1cm4gLUVCVVNZOwogCiAJaWYgKGN0eC0+aW50ZXJydXB0aWJsZSkKLQkJciA9IHJlc2VydmF0aW9uX29iamVjdF9sb2NrX2ludGVycnVwdGlibGUoYnVzeV9iby0+cmVzdiwKKwkJciA9IGRtYV9yZXN2X2xvY2tfaW50ZXJydXB0aWJsZShidXN5X2JvLT5iYXNlLnJlc3YsCiAJCQkJCQkJICB0aWNrZXQpOwogCWVsc2UKLQkJciA9IHJlc2VydmF0aW9uX29iamVjdF9sb2NrKGJ1c3lfYm8tPnJlc3YsIHRpY2tldCk7CisJCXIgPSBkbWFfcmVzdl9sb2NrKGJ1c3lfYm8tPmJhc2UucmVzdiwgdGlja2V0KTsKIAogCS8qCiAJICogVE9ETzogSXQgd291bGQgYmUgYmV0dGVyIHRvIGtlZXAgdGhlIEJPIGxvY2tlZCB1bnRpbCBhbGxvY2F0aW9uIGlzIGF0CkBAIC04MjUsNyArODI5LDcgQEAgc3RhdGljIGludCB0dG1fbWVtX2V2aWN0X3dhaXRfYnVzeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJ1c3lfYm8sCiAJICogb2YgVFRNLgogCSAqLwogCWlmICghcikKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhidXN5X2JvLT5yZXN2KTsKKwkJZG1hX3Jlc3ZfdW5sb2NrKGJ1c3lfYm8tPmJhc2UucmVzdik7CiAKIAlyZXR1cm4gciA9PSAtRURFQURMSyA/IC1FQlVTWSA6IHI7CiB9CkBAIC04NTAsOCArODU0LDggQEAgc3RhdGljIGludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogCiAJCQlpZiAoIXR0bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93YWJsZShibywgY3R4LCAmbG9ja2VkLAogCQkJCQkJCSAgICAmYnVzeSkpIHsKLQkJCQlpZiAoYnVzeSAmJiAhYnVzeV9ibyAmJgotCQkJCSAgICBiby0+cmVzdi0+bG9jay5jdHggIT0gdGlja2V0KQorCQkJCWlmIChidXN5ICYmICFidXN5X2JvICYmIHRpY2tldCAhPQorCQkJCSAgICBkbWFfcmVzdl9sb2NraW5nX2N0eChiby0+YmFzZS5yZXN2KSkKIAkJCQkJYnVzeV9ibyA9IGJvOwogCQkJCWNvbnRpbnVlOwogCQkJfQpAQCAtODU5LDcgKzg2Myw3IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJCWlmIChwbGFjZSAmJiAhYmRldi0+ZHJpdmVyLT5ldmljdGlvbl92YWx1YWJsZShibywKIAkJCQkJCQkJICAgICAgcGxhY2UpKSB7CiAJCQkJaWYgKGxvY2tlZCkKLQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJCQkJCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAkJCQljb250aW51ZTsKIAkJCX0KIAkJCWJyZWFrOwpAQCAtOTMxLDkgKzkzNSw5IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2FkZF9tb3ZlX2ZlbmNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJc3Bpbl91bmxvY2soJm1hbi0+bW92ZV9sb2NrKTsKIAogCWlmIChmZW5jZSkgewotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShiby0+cmVzdiwgZmVuY2UpOworCQlkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNlKGJvLT5iYXNlLnJlc3YsIGZlbmNlKTsKIAotCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoYm8tPnJlc3YsIDEpOworCQlyZXQgPSBkbWFfcmVzdl9yZXNlcnZlX3NoYXJlZChiby0+YmFzZS5yZXN2LCAxKTsKIAkJaWYgKHVubGlrZWx5KHJldCkpIHsKIAkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQkJcmV0dXJuIHJldDsKQEAgLTk1Nyw4ICs5NjEsMTAgQEAgc3RhdGljIGludCB0dG1fYm9fbWVtX2ZvcmNlX3NwYWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiB7CiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKIAlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5tYW5bbWVtLT5tZW1fdHlwZV07CisJc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQ7CiAJaW50IHJldDsKIAorCXRpY2tldCA9IGRtYV9yZXN2X2xvY2tpbmdfY3R4KGJvLT5iYXNlLnJlc3YpOwogCWRvIHsKIAkJcmV0ID0gKCptYW4tPmZ1bmMtPmdldF9ub2RlKShtYW4sIGJvLCBwbGFjZSwgbWVtKTsKIAkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKQEAgLTk2Niw3ICs5NzIsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19tZW1fZm9yY2Vfc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJaWYgKG1lbS0+bW1fbm9kZSkKIAkJCWJyZWFrOwogCQlyZXQgPSB0dG1fbWVtX2V2aWN0X2ZpcnN0KGJkZXYsIG1lbS0+bWVtX3R5cGUsIHBsYWNlLCBjdHgsCi0JCQkJCSAgYm8tPnJlc3YtPmxvY2suY3R4KTsKKwkJCQkJICB0aWNrZXQpOwogCQlpZiAodW5saWtlbHkocmV0ICE9IDApKQogCQkJcmV0dXJuIHJldDsKIAl9IHdoaWxlICgxKTsKQEAgLTEwODgsNyArMTA5NCw3IEBAIGludCB0dG1fYm9fbWVtX3NwYWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJYm9vbCB0eXBlX2ZvdW5kID0gZmFsc2U7CiAJaW50IGksIHJldDsKIAotCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVzdiwgMSk7CisJcmV0ID0gZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQoYm8tPmJhc2UucmVzdiwgMSk7CiAJaWYgKHVubGlrZWx5KHJldCkpCiAJCXJldHVybiByZXQ7CiAKQEAgLTExNjksNyArMTE3NSw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21vdmVfYnVmZmVyKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJaW50IHJldCA9IDA7CiAJc3RydWN0IHR0bV9tZW1fcmVnIG1lbTsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7CiAKIAltZW0ubnVtX3BhZ2VzID0gYm8tPm51bV9wYWdlczsKIAltZW0uc2l6ZSA9IG1lbS5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKQEAgLTEyMzksNyArMTI0NSw3IEBAIGludCB0dG1fYm9fdmFsaWRhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlpbnQgcmV0OwogCXVpbnQzMl90IG5ld19mbGFnczsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7CiAJLyoKIAkgKiBDaGVjayB3aGV0aGVyIHdlIG5lZWQgdG8gbW92ZSBidWZmZXIuCiAJICovCkBAIC0xMjc2LDcgKzEyODIsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCQkgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCiAJCQkgc2l6ZV90IGFjY19zaXplLAogCQkJIHN0cnVjdCBzZ190YWJsZSAqc2csCi0JCQkgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKKwkJCSBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCQkgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpCiB7CiAJaW50IHJldCA9IDA7CkBAIC0xMzI5LDE0ICsxMzM1LDIwIEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAliby0+YWNjX3NpemUgPSBhY2Nfc2l6ZTsKIAliby0+c2cgPSBzZzsKIAlpZiAocmVzdikgewotCQliby0+cmVzdiA9IHJlc3Y7Ci0JCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJCWJvLT5iYXNlLnJlc3YgPSByZXN2OworCQlkbWFfcmVzdl9hc3NlcnRfaGVsZChiby0+YmFzZS5yZXN2KTsKIAl9IGVsc2UgewotCQliby0+cmVzdiA9ICZiby0+dHRtX3Jlc3Y7CisJCWJvLT5iYXNlLnJlc3YgPSAmYm8tPmJhc2UuX3Jlc3Y7CiAJfQotCXJlc2VydmF0aW9uX29iamVjdF9pbml0KCZiby0+dHRtX3Jlc3YpOworCWlmICghdHRtX2JvX3VzZXNfZW1iZWRkZWRfZ2VtX29iamVjdChibykpIHsKKwkJLyoKKwkJICogYm8uZ2VtIGlzIG5vdCBpbml0aWFsaXplZCwgc28gd2UgaGF2ZSB0byBzZXR1cCB0aGUKKwkJICogc3RydWN0IGVsZW1lbnRzIHdlIHdhbnQgdXNlIHJlZ2FyZGxlc3MuCisJCSAqLworCQlkbWFfcmVzdl9pbml0KCZiby0+YmFzZS5fcmVzdik7CisJCWRybV92bWFfbm9kZV9yZXNldCgmYm8tPmJhc2Uudm1hX25vZGUpOworCX0KIAlhdG9taWNfaW5jKCZiby0+YmRldi0+Z2xvYi0+Ym9fY291bnQpOwotCWRybV92bWFfbm9kZV9yZXNldCgmYm8tPnZtYV9ub2RlKTsKIAogCS8qCiAJICogRm9yIHR0bV9ib190eXBlX2RldmljZSBidWZmZXJzLCBhbGxvY2F0ZQpAQCAtMTM0NCwxNCArMTM1NiwxNCBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJICovCiAJaWYgKGJvLT50eXBlID09IHR0bV9ib190eXBlX2RldmljZSB8fAogCSAgICBiby0+dHlwZSA9PSB0dG1fYm9fdHlwZV9zZykKLQkJcmV0ID0gZHJtX3ZtYV9vZmZzZXRfYWRkKCZiZGV2LT52bWFfbWFuYWdlciwgJmJvLT52bWFfbm9kZSwKKwkJcmV0ID0gZHJtX3ZtYV9vZmZzZXRfYWRkKCZiZGV2LT52bWFfbWFuYWdlciwgJmJvLT5iYXNlLnZtYV9ub2RlLAogCQkJCQkgYm8tPm1lbS5udW1fcGFnZXMpOwogCiAJLyogcGFzc2VkIHJlc2VydmF0aW9uIG9iamVjdHMgc2hvdWxkIGFscmVhZHkgYmUgbG9ja2VkLAogCSAqIHNpbmNlIG90aGVyd2lzZSBsb2NrZGVwIHdpbGwgYmUgYW5nZXJlZCBpbiByYWRlb24uCiAJICovCiAJaWYgKCFyZXN2KSB7Ci0JCWxvY2tlZCA9IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGJvLT5yZXN2KTsKKwkJbG9ja2VkID0gZG1hX3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5yZXN2KTsKIAkJV0FSTl9PTighbG9ja2VkKTsKIAl9CiAKQEAgLTEzODUsNyArMTM5Nyw3IEBAIGludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJYm9vbCBpbnRlcnJ1cHRpYmxlLAogCQlzaXplX3QgYWNjX3NpemUsCiAJCXN0cnVjdCBzZ190YWJsZSAqc2csCi0JCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCisJCXN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKIAkJdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpCiB7CiAJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgaW50ZXJydXB0aWJsZSwgZmFsc2UgfTsKQEAgLTE3NzIsNyArMTc4NCw3IEBAIHZvaWQgdHRtX2JvX3VubWFwX3ZpcnR1YWxfbG9ja2VkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiB7CiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKIAotCWRybV92bWFfbm9kZV91bm1hcCgmYm8tPnZtYV9ub2RlLCBiZGV2LT5kZXZfbWFwcGluZyk7CisJZHJtX3ZtYV9ub2RlX3VubWFwKCZiby0+YmFzZS52bWFfbm9kZSwgYmRldi0+ZGV2X21hcHBpbmcpOwogCXR0bV9tZW1faW9fZnJlZV92bShibyk7CiB9CiAKQEAgLTE3OTUsMTMgKzE4MDcsMTMgQEAgaW50IHR0bV9ib193YWl0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJbG9uZyB0aW1lb3V0ID0gMTUgKiBIWjsKIAogCWlmIChub193YWl0KSB7Ci0JCWlmIChyZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxlZF9yY3UoYm8tPnJlc3YsIHRydWUpKQorCQlpZiAoZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9yY3UoYm8tPmJhc2UucmVzdiwgdHJ1ZSkpCiAJCQlyZXR1cm4gMDsKIAkJZWxzZQogCQkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKLQl0aW1lb3V0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3UoYm8tPnJlc3YsIHRydWUsCisJdGltZW91dCA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3UoYm8tPmJhc2UucmVzdiwgdHJ1ZSwKIAkJCQkJCSAgICAgIGludGVycnVwdGlibGUsIHRpbWVvdXQpOwogCWlmICh0aW1lb3V0IDwgMCkKIAkJcmV0dXJuIHRpbWVvdXQ7CkBAIC0xODA5LDcgKzE4MjEsNyBAQCBpbnQgdHRtX2JvX3dhaXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlpZiAodGltZW91dCA9PSAwKQogCQlyZXR1cm4gLUVCVVNZOwogCi0JcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5yZXN2LCBOVUxMKTsKKwlkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZShiby0+YmFzZS5yZXN2LCBOVUxMKTsKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wodHRtX2JvX3dhaXQpOwpAQCAtMTkyNSw3ICsxOTM3LDcgQEAgaW50IHR0bV9ib19zd2Fwb3V0KHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKIAkgKiBhbHJlYWR5IHN3YXBwZWQgYnVmZmVyLgogCSAqLwogCWlmIChsb2NrZWQpCi0JCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCQlkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7CiAJa3JlZl9wdXQoJmJvLT5saXN0X2tyZWYsIHR0bV9ib19yZWxlYXNlX2xpc3QpOwogCXJldHVybiByZXQ7CiB9CkBAIC0xOTYzLDE0ICsxOTc1LDE0IEBAIGludCB0dG1fYm9fd2FpdF91bnJlc2VydmVkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZiby0+d3VfbXV0ZXgpOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCXJldHVybiAtRVJFU1RBUlRTWVM7Ci0JaWYgKCF3d19tdXRleF9pc19sb2NrZWQoJmJvLT5yZXN2LT5sb2NrKSkKKwlpZiAoIWRtYV9yZXN2X2lzX2xvY2tlZChiby0+YmFzZS5yZXN2KSkKIAkJZ290byBvdXRfdW5sb2NrOwotCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9sb2NrX2ludGVycnVwdGlibGUoYm8tPnJlc3YsIE5VTEwpOworCXJldCA9IGRtYV9yZXN2X2xvY2tfaW50ZXJydXB0aWJsZShiby0+YmFzZS5yZXN2LCBOVUxMKTsKIAlpZiAocmV0ID09IC1FSU5UUikKIAkJcmV0ID0gLUVSRVNUQVJUU1lTOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCWdvdG8gb3V0X3VubG9jazsKLQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKKwlkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7CiAKIG91dF91bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZiby0+d3VfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCmluZGV4IDlmOTE4YjkuLmZlODFjNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2VydmF0aW9uLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KIAogc3RydWN0IHR0bV90cmFuc2Zlcl9vYmogewogCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCBiYXNlOwpAQCAtNTEwLDE2ICs1MTAsMTYgQEAgc3RhdGljIGludCB0dG1fYnVmZmVyX29iamVjdF90cmFuc2ZlcihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCUlOSVRfTElTVF9IRUFEKCZmYm8tPmJhc2UuaW9fcmVzZXJ2ZV9scnUpOwogCW11dGV4X2luaXQoJmZiby0+YmFzZS53dV9tdXRleCk7CiAJZmJvLT5iYXNlLm1vdmluZyA9IE5VTEw7Ci0JZHJtX3ZtYV9ub2RlX3Jlc2V0KCZmYm8tPmJhc2Uudm1hX25vZGUpOworCWRybV92bWFfbm9kZV9yZXNldCgmZmJvLT5iYXNlLmJhc2Uudm1hX25vZGUpOwogCWF0b21pY19zZXQoJmZiby0+YmFzZS5jcHVfd3JpdGVycywgMCk7CiAKIAlrcmVmX2luaXQoJmZiby0+YmFzZS5saXN0X2tyZWYpOwogCWtyZWZfaW5pdCgmZmJvLT5iYXNlLmtyZWYpOwogCWZiby0+YmFzZS5kZXN0cm95ID0gJnR0bV90cmFuc2ZlcmVkX2Rlc3Ryb3k7CiAJZmJvLT5iYXNlLmFjY19zaXplID0gMDsKLQlmYm8tPmJhc2UucmVzdiA9ICZmYm8tPmJhc2UudHRtX3Jlc3Y7Ci0JcmVzZXJ2YXRpb25fb2JqZWN0X2luaXQoZmJvLT5iYXNlLnJlc3YpOwotCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGZiby0+YmFzZS5yZXN2KTsKKwlmYm8tPmJhc2UuYmFzZS5yZXN2ID0gJmZiby0+YmFzZS5iYXNlLl9yZXN2OworCWRtYV9yZXN2X2luaXQoZmJvLT5iYXNlLmJhc2UucmVzdik7CisJcmV0ID0gZG1hX3Jlc3ZfdHJ5bG9jayhmYm8tPmJhc2UuYmFzZS5yZXN2KTsKIAlXQVJOX09OKCFyZXQpOwogCiAJKm5ld19vYmogPSAmZmJvLT5iYXNlOwpAQCAtNjg5LDcgKzY4OSw3IEBAIGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJaW50IHJldDsKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmdob3N0X29iajsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShiby0+cmVzdiwgZmVuY2UpOworCWRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKGJvLT5iYXNlLnJlc3YsIGZlbmNlKTsKIAlpZiAoZXZpY3QpIHsKIAkJcmV0ID0gdHRtX2JvX3dhaXQoYm8sIGZhbHNlLCBmYWxzZSk7CiAJCWlmIChyZXQpCkBAIC03MTYsNyArNzE2LDcgQEAgaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGdob3N0X29iai0+cmVzdiwgZmVuY2UpOworCQlkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZShnaG9zdF9vYmotPmJhc2UucmVzdiwgZmVuY2UpOwogCiAJCS8qKgogCQkgKiBJZiB3ZSdyZSBub3QgbW92aW5nIHRvIGZpeGVkIG1lbW9yeSwgdGhlIFRUTSBvYmplY3QKQEAgLTc1Miw3ICs3NTIsNyBAQCBpbnQgdHRtX2JvX3BpcGVsaW5lX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAogCWludCByZXQ7CiAKLQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPnJlc3YsIGZlbmNlKTsKKwlkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZShiby0+YmFzZS5yZXN2LCBmZW5jZSk7CiAKIAlpZiAoIWV2aWN0KSB7CiAJCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqZ2hvc3Rfb2JqOwpAQCAtNzcyLDcgKzc3Miw3IEBAIGludCB0dG1fYm9fcGlwZWxpbmVfbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoZ2hvc3Rfb2JqLT5yZXN2LCBmZW5jZSk7CisJCWRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKGdob3N0X29iai0+YmFzZS5yZXN2LCBmZW5jZSk7CiAKIAkJLyoqCiAJCSAqIElmIHdlJ3JlIG5vdCBtb3ZpbmcgdG8gZml4ZWQgbWVtb3J5LCB0aGUgVFRNIG9iamVjdApAQCAtODQxLDcgKzg0MSw3IEBAIGludCB0dG1fYm9fcGlwZWxpbmVfZ3V0dGluZyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfY29weV9mZW5jZXMoZ2hvc3QtPnJlc3YsIGJvLT5yZXN2KTsKKwlyZXQgPSBkbWFfcmVzdl9jb3B5X2ZlbmNlcyhnaG9zdC0+YmFzZS5yZXN2LCBiby0+YmFzZS5yZXN2KTsKIAkvKiBMYXN0IHJlc29ydCwgd2FpdCBmb3IgdGhlIEJPIHRvIGJlIGlkbGUgd2hlbiB3ZSBhcmUgT09NICovCiAJaWYgKHJldCkKIAkJdHRtX2JvX3dhaXQoYm8sIGZhbHNlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYwppbmRleCA2ZGFjZmY0Li43NmVlZGI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2ZhdWx0X2lkbGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJdHRtX2JvX2dldChibyk7CiAJCXVwX3JlYWQoJnZtZi0+dm1hLT52bV9tbS0+bW1hcF9zZW0pOwogCQkodm9pZCkgZG1hX2ZlbmNlX3dhaXQoYm8tPm1vdmluZywgdHJ1ZSk7Ci0JCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCQlkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7CiAJCXR0bV9ib19wdXQoYm8pOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQpAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkgKiBmb3IgcmVzZXJ2ZSwgYW5kIGlmIGl0IGZhaWxzLCByZXRyeSB0aGUgZmF1bHQgYWZ0ZXIgd2FpdGluZwogCSAqIGZvciB0aGUgYnVmZmVyIHRvIGJlY29tZSB1bnJlc2VydmVkLgogCSAqLwotCWlmICh1bmxpa2VseSghcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8tPnJlc3YpKSkgeworCWlmICh1bmxpa2VseSghZG1hX3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5yZXN2KSkpIHsKIAkJaWYgKHZtZi0+ZmxhZ3MgJiBGQVVMVF9GTEFHX0FMTE9XX1JFVFJZKSB7CiAJCQlpZiAoISh2bWYtPmZsYWdzICYgRkFVTFRfRkxBR19SRVRSWV9OT1dBSVQpKSB7CiAJCQkJdHRtX2JvX2dldChibyk7CkBAIC0yMTEsOSArMjExLDkgQEAgc3RhdGljIHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCX0KIAogCXBhZ2Vfb2Zmc2V0ID0gKChhZGRyZXNzIC0gdm1hLT52bV9zdGFydCkgPj4gUEFHRV9TSElGVCkgKwotCQl2bWEtPnZtX3Bnb2ZmIC0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+dm1hX25vZGUpOworCQl2bWEtPnZtX3Bnb2ZmIC0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+YmFzZS52bWFfbm9kZSk7CiAJcGFnZV9sYXN0ID0gdm1hX3BhZ2VzKHZtYSkgKyB2bWEtPnZtX3Bnb2ZmIC0KLQkJZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+dm1hX25vZGUpOworCQlkcm1fdm1hX25vZGVfc3RhcnQoJmJvLT5iYXNlLnZtYV9ub2RlKTsKIAogCWlmICh1bmxpa2VseShwYWdlX29mZnNldCA+PSBiby0+bnVtX3BhZ2VzKSkgewogCQlyZXQgPSBWTV9GQVVMVF9TSUdCVVM7CkBAIC0yNjcsNyArMjY3LDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCQkJfSBlbHNlIGlmICh1bmxpa2VseSghcGFnZSkpIHsKIAkJCQlicmVhazsKIAkJCX0KLQkJCXBhZ2UtPmluZGV4ID0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+dm1hX25vZGUpICsKKwkJCXBhZ2UtPmluZGV4ID0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+YmFzZS52bWFfbm9kZSkgKwogCQkJCXBhZ2Vfb2Zmc2V0OwogCQkJcGZuID0gcGFnZV90b19wZm4ocGFnZSk7CiAJCX0KQEAgLTI5Niw3ICsyOTYsNyBAQCBzdGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9fdm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiBvdXRfaW9fdW5sb2NrOgogCXR0bV9tZW1faW9fdW5sb2NrKG1hbik7CiBvdXRfdW5sb2NrOgotCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC00MTMsNyArNDEzLDggQEAgc3RhdGljIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdHRtX2JvX3ZtX2xvb2t1cChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAogCW5vZGUgPSBkcm1fdm1hX29mZnNldF9sb29rdXBfbG9ja2VkKCZiZGV2LT52bWFfbWFuYWdlciwgb2Zmc2V0LCBwYWdlcyk7CiAJaWYgKGxpa2VseShub2RlKSkgewotCQlibyA9IGNvbnRhaW5lcl9vZihub2RlLCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QsIHZtYV9ub2RlKTsKKwkJYm8gPSBjb250YWluZXJfb2Yobm9kZSwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0LAorCQkJCSAgYmFzZS52bWFfbm9kZSk7CiAJCWJvID0gdHRtX2JvX2dldF91bmxlc3NfemVybyhibyk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCmluZGV4IDk1N2VjMzcuLjEzMWRhZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyB2b2lkIHR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uX3JldmVyc2Uoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X2NvbnRpbnVlX3JldmVyc2UoZW50cnksIGxpc3QsIGhlYWQpIHsKIAkJc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyA9IGVudHJ5LT5ibzsKIAotCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKKwkJZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCX0KIH0KIApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIHR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAogCiAJCWlmIChsaXN0X2VtcHR5KCZiby0+bHJ1KSkKIAkJCXR0bV9ib19hZGRfdG9fbHJ1KGJvKTsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAl9CiAJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKIApAQCAtMTE0LDcgKzExNCw3IEBAIGludCB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAogCiAJCXJldCA9IF9fdHRtX2JvX3Jlc2VydmUoYm8sIGludHIsICh0aWNrZXQgPT0gTlVMTCksIHRpY2tldCk7CiAJCWlmICghcmV0ICYmIHVubGlrZWx5KGF0b21pY19yZWFkKCZiby0+Y3B1X3dyaXRlcnMpID4gMCkpIHsKLQkJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCQkJZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCiAJCQlyZXQgPSAtRUJVU1k7CiAKQEAgLTEzMCw3ICsxMzAsNyBAQCBpbnQgdHRtX2V1X3Jlc2VydmVfYnVmZmVycyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCwKIAkJCWlmICghZW50cnktPm51bV9zaGFyZWQpCiAJCQkJY29udGludWU7CiAKLQkJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVzdiwKKwkJCXJldCA9IGRtYV9yZXN2X3Jlc2VydmVfc2hhcmVkKGJvLT5iYXNlLnJlc3YsCiAJCQkJCQkJCWVudHJ5LT5udW1fc2hhcmVkKTsKIAkJCWlmICghcmV0KQogCQkJCWNvbnRpbnVlOwpAQCAtMTQ0LDE2ICsxNDQsMTYgQEAgaW50IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAKIAkJaWYgKHJldCA9PSAtRURFQURMSykgewogCQkJaWYgKGludHIpIHsKLQkJCQlyZXQgPSB3d19tdXRleF9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZSgmYm8tPnJlc3YtPmxvY2ssCi0JCQkJCQkJCSAgICAgICB0aWNrZXQpOworCQkJCXJldCA9IGRtYV9yZXN2X2xvY2tfc2xvd19pbnRlcnJ1cHRpYmxlKGJvLT5iYXNlLnJlc3YsCisJCQkJCQkJCQkJIHRpY2tldCk7CiAJCQl9IGVsc2UgewotCQkJCXd3X211dGV4X2xvY2tfc2xvdygmYm8tPnJlc3YtPmxvY2ssIHRpY2tldCk7CisJCQkJZG1hX3Jlc3ZfbG9ja19zbG93KGJvLT5iYXNlLnJlc3YsIHRpY2tldCk7CiAJCQkJcmV0ID0gMDsKIAkJCX0KIAkJfQogCiAJCWlmICghcmV0ICYmIGVudHJ5LT5udW1fc2hhcmVkKQotCQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKGJvLT5yZXN2LAorCQkJcmV0ID0gZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQoYm8tPmJhc2UucmVzdiwKIAkJCQkJCQkJZW50cnktPm51bV9zaGFyZWQpOwogCiAJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKQEAgLTIwMSwxNCArMjAxLDE0IEBAIHZvaWQgdHRtX2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksIGxpc3QsIGhlYWQpIHsKIAkJYm8gPSBlbnRyeS0+Ym87CiAJCWlmIChlbnRyeS0+bnVtX3NoYXJlZCkKLQkJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKGJvLT5yZXN2LCBmZW5jZSk7CisJCQlkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNlKGJvLT5iYXNlLnJlc3YsIGZlbmNlKTsKIAkJZWxzZQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5yZXN2LCBmZW5jZSk7CisJCQlkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZShiby0+YmFzZS5yZXN2LCBmZW5jZSk7CiAJCWlmIChsaXN0X2VtcHR5KCZiby0+bHJ1KSkKIAkJCXR0bV9ib19hZGRfdG9fbHJ1KGJvKTsKIAkJZWxzZQogCQkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwpOwotCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKKwkJZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCX0KIAlzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwogCWlmICh0aWNrZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYwppbmRleCBlM2EwNjkxLi5lMGU5YjRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKQEAgLTQ4LDcgKzQ4LDcgQEAgaW50IHR0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCB6ZXJvX2FsbG9jKQogCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7CiAJdWludDMyX3QgcGFnZV9mbGFncyA9IDA7CiAKLQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYm8tPnJlc3YpOworCWRtYV9yZXN2X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOwogCiAJaWYgKGJkZXYtPm5lZWRfZG1hMzIpCiAJCXBhZ2VfZmxhZ3MgfD0gVFRNX1BBR0VfRkxBR19ETUEzMjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dmUyMDAvdHZlMjAwX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS90dmUyMDAvdHZlMjAwX2Rpc3BsYXkuYwppbmRleCA1OGZkMzEwLi5kNzMzYmJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL3R2ZTIwMF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R2ZTIwMC90dmUyMDBfZGlzcGxheS5jCkBAIC05LDE2ICs5LDE4IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGV4YXMgSW5zdHJ1bWVudHMKICAqIENvcHlyaWdodCAoQykgMjAxNyBFcmljIEFuaG9sdAogICovCisKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgInR2ZTIwMF9kcm0uaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R2ZTIwMC90dmUyMDBfZHJtLmggYi9kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL3R2ZTIwMF9kcm0uaAppbmRleCA2MjA2MWI1Li41NDIwYjUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL3R2ZTIwMF9kcm0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL3R2ZTIwMF9kcm0uaApAQCAtMTMsNiArMTMsMTggQEAKICNpZm5kZWYgX1RWRTIwMF9EUk1fSF8KICNkZWZpbmUgX1RWRTIwMF9EUk1fSF8KIAorI2luY2x1ZGUgPGxpbnV4L2lycXJldHVybi5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgorCitzdHJ1Y3QgY2xrOworc3RydWN0IGRybV9icmlkZ2U7CitzdHJ1Y3QgZHJtX2Nvbm5lY3RvcjsKK3N0cnVjdCBkcm1fZGV2aWNlOworc3RydWN0IGRybV9maWxlOworc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iOworc3RydWN0IGRybV9wYW5lbDsKKwogLyogQml0cyAyLTMxIGFyZSB2YWxpZCBwaHlzaWNhbCBiYXNlIGFkZHJlc3NlcyAqLwogI2RlZmluZSBUVkUyMDBfWV9GUkFNRV9CQVNFX0FERFIJMHgwMAogI2RlZmluZSBUVkUyMDBfVV9GUkFNRV9CQVNFX0FERFIJMHgwNApAQCAtODksOSArMTAxLDYgQEAKICNkZWZpbmUgVFZFMjAwX0NUUkxfNAkJCTB4MjQKICNkZWZpbmUgVFZFMjAwX0NUUkxfNF9SRVNFVAkJQklUKDApIC8qIHRyaWdnZXJzIHJlc2V0IG9mIFRWRTIwMCAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+Ci0KIHN0cnVjdCB0dmUyMDBfZHJtX2Rldl9wcml2YXRlIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL3R2ZTIwMF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS90dmUyMDAvdHZlMjAwX2Rydi5jCmluZGV4IDZlNjk1ZmIuLjQxNmYyNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dmUyMDAvdHZlMjAwX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dmUyMDAvdHZlMjAwX2Rydi5jCkBAIC0zNyw5ICszNyw5IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9icmlkZ2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgpAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAidHZlMjAwX2RybS5oIgogCkBAIC0xMzcsOCArMTM4LDcgQEAgc3RhdGljIGludCB0dmUyMDBfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhkcm1fZm9wcyk7CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB0dmUyMDBfZHJtX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzID0KLQkJRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX1BSSU1FIHwgRFJJVkVSX0FUT01JQywKKwkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX0FUT01JQywKIAkuaW9jdGxzID0gTlVMTCwKIAkuZm9wcyA9ICZkcm1fZm9wcywKIAkubmFtZSA9ICJ0dmUyMDAiLApAQCAtMTUzLDggKzE1Myw2IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB0dmUyMDBfZHJtX2RyaXZlciA9IHsKIAogCS5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFuZGxlID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKLQkuZ2VtX3ByaW1lX2V4cG9ydCA9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlCT0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcCA9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5jCmluZGV4IDkyMTU2MTguLmRkYjYxYTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5jCkBAIC03LDExICs3LDkgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOSBCZXJuaWUgVGhvbXBzb24gPGJlcm5pZUBwbHVnYWJsZS5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisKICNpbmNsdWRlICJ1ZGxfY29ubmVjdG9yLmgiCiAjaW5jbHVkZSAidWRsX2Rydi5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9jb25uZWN0b3IuaCBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5oCmluZGV4IDBmYjBkYjUuLjdmMmQzOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5oCkBAIC0zLDYgKzMsOCBAQAogCiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAKK3N0cnVjdCBlZGlkOworCiBzdHJ1Y3QgdWRsX2RybV9jb25uZWN0b3IgewogCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsKIAkvKiBsYXN0IHVkbF9kZXRlY3QgZWRpZCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kbWFidWYuYwppbmRleCBhMjg4OTIxLi4zMTA4ZTlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kbWFidWYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kbWFidWYuYwpAQCAtNSwxMSArNSwxMyBAQAogICogQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBPUyBBdXRob3JzCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSAidWRsX2Rydi5oIgogI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgorCisjaW5jbHVkZSAidWRsX2Rydi5oIgorCiBzdHJ1Y3QgdWRsX2RybV9kbWFidWZfYXR0YWNobWVudCB7CiAJc3RydWN0IHNnX3RhYmxlIHNndDsKIAllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXI7CkBAIC0xNzAsOCArMTcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyB1ZGxfZG1hYnVmX29wcyA9IHsKIAkucmVsZWFzZQkJPSBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlLAogfTsKIAotc3RydWN0IGRtYV9idWYgKnVkbF9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKQorc3RydWN0IGRtYV9idWYgKnVkbF9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgZmxhZ3MpCiB7CiAJREVGSU5FX0RNQV9CVUZfRVhQT1JUX0lORk8oZXhwX2luZm8pOwogCkBAIC0xODAsNyArMTgxLDcgQEAgc3RydWN0IGRtYV9idWYgKnVkbF9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJZXhwX2luZm8uZmxhZ3MgPSBmbGFnczsKIAlleHBfaW5mby5wcml2ID0gb2JqOwogCi0JcmV0dXJuIGRybV9nZW1fZG1hYnVmX2V4cG9ydChkZXYsICZleHBfaW5mbyk7CisJcmV0dXJuIGRybV9nZW1fZG1hYnVmX2V4cG9ydChvYmotPmRldiwgJmV4cF9pbmZvKTsKIH0KIAogc3RhdGljIGludCB1ZGxfcHJpbWVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Rydi5jCmluZGV4IDRhNDlmYWMuLjg0MjY2NjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Rydi5jCkBAIC00LDkgKzQsMTQgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1faW9jdGwuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KKwogI2luY2x1ZGUgInVkbF9kcnYuaCIKIAogc3RhdGljIGludCB1ZGxfdXNiX3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwKQEAgLTU0LDcgKzU5LDcgQEAgc3RhdGljIHZvaWQgdWRsX2RyaXZlcl9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSwKKwkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNLAogCS5yZWxlYXNlID0gdWRsX2RyaXZlcl9yZWxlYXNlLAogCiAJLyogZ2VtIGhvb2tzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Rydi5oCmluZGV4IGE5Mjg4MDEuLjEyYTk3MGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Rydi5oCkBAIC0xMSw5ICsxMSwxNSBAQAogI2lmbmRlZiBVRExfRFJWX0gKICNkZWZpbmUgVURMX0RSVl9ICiAKLSNpbmNsdWRlIDxsaW51eC91c2IuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgogI2luY2x1ZGUgPGxpbnV4L21tX3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZnJhbWVidWZmZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgorCitzdHJ1Y3QgZHJtX2VuY29kZXI7CitzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWI7CiAKICNkZWZpbmUgRFJJVkVSX05BTUUJCSJ1ZGwiCiAjZGVmaW5lIERSSVZFUl9ERVNDCQkiRGlzcGxheUxpbmsiCkBAIC0xMjYsOCArMTMyLDcgQEAgaW50IHVkbF9nZW1fbW1hcChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIHZvaWQgdWRsX2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmopOwogc3RydWN0IHVkbF9nZW1fb2JqZWN0ICp1ZGxfZ2VtX2FsbG9jX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgc2l6ZV90IHNpemUpOwotc3RydWN0IGRtYV9idWYgKnVkbF9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKTsKK3N0cnVjdCBkbWFfYnVmICp1ZGxfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKTsKIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqdWRsX2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQlzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2VuY29kZXIuYwppbmRleCBmODc5ODllLi4yMDNmMDQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9lbmNvZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZW5jb2Rlci5jCkBAIC03LDkgKzcsOSBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5IEJlcm5pZSBUaG9tcHNvbiA8YmVybmllQHBsdWdhYmxlLmNvbT4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmg+CisKICNpbmNsdWRlICJ1ZGxfZHJ2LmgiCiAKIC8qIGR1bW15IGVuY29kZXIgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9mYi5jCmluZGV4IGUxMTE2YmYuLmVmMzUwNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZmIuYwpAQCAtNywxOCArNywxNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5IEpheWEgS3VtYXIgPGpheWFrdW1hci5sa21sQGdtYWlsLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOSBCZXJuaWUgVGhvbXBzb24gPGJlcm5pZUBwbHVnYWJsZS5jb20+CiAgKi8KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvZmIuaD4KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgotI2luY2x1ZGUgPGxpbnV4L21lbV9lbmNyeXB0Lmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KLSNpbmNsdWRlICJ1ZGxfZHJ2LmgiCi0KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyLmg+CisKKyNpbmNsdWRlICJ1ZGxfZHJ2LmgiCiAKICNkZWZpbmUgRExfREVGSU9fV1JJVEVfREVMQVkgICAgKEhaLzIwKSAvKiBmYl9kZWZlcnJlZF9pby5kZWxheSBpbiBqaWZmaWVzICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZ2VtLmMKaW5kZXggYzZjYTJjMC4uYjIzYTVjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZ2VtLmMKQEAgLTMsMTAgKzMsMTMgQEAKICAqIENvcHlyaWdodCAoQykgMjAxMiBSZWQgSGF0CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSAidWRsX2Rydi5oIgotI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fbW9kZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4KKworI2luY2x1ZGUgInVkbF9kcnYuaCIKIAogc3RydWN0IHVkbF9nZW1fb2JqZWN0ICp1ZGxfZ2VtX2FsbG9jX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgc2l6ZV90IHNpemUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9tYWluLmMgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9tYWluLmMKaW5kZXggMWE5OWM3Ni4uNGU4NTRlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfbWFpbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX21haW4uYwpAQCAtNyw5ICs3LDExIEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSmF5YSBLdW1hciA8amF5YWt1bWFyLmxrbWxAZ21haWwuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA5IEJlcm5pZSBUaG9tcHNvbiA8YmVybmllQHBsdWdhYmxlLmNvbT4KICAqLwotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgorCisjaW5jbHVkZSA8ZHJtL2RybS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorCiAjaW5jbHVkZSAidWRsX2Rydi5oIgogCiAvKiAtQlVMS19TSVpFIGFzIHBlciB1c2Itc2tlbGV0b24uIENhbiB3ZSBnZXQgZnVsbCBwYWdlIGFuZCBhdm9pZCBvdmVyaGVhZD8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX21vZGVzZXQuYwppbmRleCA3OTM3MjJkLi5iYzFhYjYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9tb2Rlc2V0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfbW9kZXNldC5jCkBAIC05LDEwICs5LDEwIEBACiAKICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorCiAjaW5jbHVkZSAidWRsX2Rydi5oIgogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfdHJhbnNmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX3RyYW5zZmVyLmMKaW5kZXggNjgzN2Y1OS4uMTk3M2E0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfdHJhbnNmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF90cmFuc2Zlci5jCkBAIC03LDEyICs3LDggQEAKICAqIENvcHlyaWdodCAoQykgMjAwOSBCZXJuaWUgVGhvbXBzb24gPGJlcm5pZUBwbHVnYWJsZS5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9mYi5oPgogI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSAidWRsX2Rydi5oIgogCiAjZGVmaW5lIE1BWF9DTURfUElYRUxTCQkyNTUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2RlYnVnZnMuYwppbmRleCA3OGE3ODkzOC4uOWU5NTNjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2RlYnVnZnMuYwpAQCAtNiw3ICs2LDggQEAKICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgogCiAjaW5jbHVkZSAidjNkX2Rydi5oIgogI2luY2x1ZGUgInYzZF9yZWdzLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5jCmluZGV4IGZlYTU5N2YuLjM1MDZhZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5jCkBAIC0xNCwxNiArMTQsMTkgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPHVhcGkvZHJtL3YzZF9kcm0uaD4KIAotI2luY2x1ZGUgInVhcGkvZHJtL3YzZF9kcm0uaCIKICNpbmNsdWRlICJ2M2RfZHJ2LmgiCiAjaW5jbHVkZSAidjNkX3JlZ3MuaCIKIApAQCAtMTg4LDcgKzE5MSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgdjNkX2RybV9pb2N0bHNbXSA9IHsKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB2M2RfZHJtX2RyaXZlciA9IHsKIAkuZHJpdmVyX2ZlYXR1cmVzID0gKERSSVZFUl9HRU0gfAogCQkJICAgIERSSVZFUl9SRU5ERVIgfAotCQkJICAgIERSSVZFUl9QUklNRSB8CiAJCQkgICAgRFJJVkVSX1NZTkNPQkopLAogCiAJLm9wZW4gPSB2M2Rfb3BlbiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmgKaW5kZXggOWFhZDlkYS4uOWEzNWM1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmgKQEAgLTEsMTQgKzEsMjMgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwogLyogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQnJvYWRjb20gKi8KIAotI2luY2x1ZGUgPGxpbnV4L21tX3R5cGVzLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2tfdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2dwdV9zY2hlZHVsZXIuaD4KKwogI2luY2x1ZGUgInVhcGkvZHJtL3YzZF9kcm0uaCIKIAorc3RydWN0IGNsazsKK3N0cnVjdCBkZXZpY2U7CitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlOworc3RydWN0IHJlc2V0X2NvbnRyb2w7CisKICNkZWZpbmUgR01QX0dSQU5VTEFSSVRZICgxMjggKiAxMDI0KQogCiAvKiBFbnVtIGZvciBlYWNoIG9mIHRoZSBWM0QgcXVldWVzLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYwppbmRleCAyN2UwZjg3Li41ZDgwNTA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYwpAQCAtMSwxNyArMSwxOSBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCiAvKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBCcm9hZGNvbSAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3N5bmNvYmouaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC9zaWduYWwuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAKLSNpbmNsdWRlICJ1YXBpL2RybS92M2RfZHJtLmgiCisjaW5jbHVkZSA8ZHJtL2RybV9zeW5jb2JqLmg+CisjaW5jbHVkZSA8dWFwaS9kcm0vdjNkX2RybS5oPgorCiAjaW5jbHVkZSAidjNkX2Rydi5oIgogI2luY2x1ZGUgInYzZF9yZWdzLmgiCiAjaW5jbHVkZSAidjNkX3RyYWNlLmgiCkBAIC00MDcsNyArNDA5LDcgQEAgdjNkX3dhaXRfYm9faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAoYXJncy0+cGFkICE9IDApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JcmV0ID0gZHJtX2dlbV9yZXNlcnZhdGlvbl9vYmplY3Rfd2FpdChmaWxlX3ByaXYsIGFyZ3MtPmhhbmRsZSwKKwlyZXQgPSBkcm1fZ2VtX2RtYV9yZXN2X3dhaXQoZmlsZV9wcml2LCBhcmdzLT5oYW5kbGUsCiAJCQkJCSAgICAgIHRydWUsIHRpbWVvdXRfamlmZmllcyk7CiAKIAkvKiBEZWNyZW1lbnQgdGhlIHVzZXIncyB0aW1lb3V0LCBpbiBjYXNlIHdlIGdvdCBpbnRlcnJ1cHRlZApAQCAtNDkzLDcgKzQ5NSw3IEBAIHYzZF9hdHRhY2hfZmVuY2VzX2FuZF91bmxvY2tfcmVzZXJ2YXRpb24oc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAKIAlmb3IgKGkgPSAwOyBpIDwgam9iLT5ib19jb3VudDsgaSsrKSB7CiAJCS8qIFhYWDogVXNlIHNoYXJlZCBmZW5jZXMgZm9yIHJlYWQtb25seSBvYmplY3RzLiAqLwotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2Uoam9iLT5ib1tpXS0+cmVzdiwKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2Uoam9iLT5ib1tpXS0+cmVzdiwKIAkJCQkJCSAgam9iLT5kb25lX2ZlbmNlKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfaXJxLmMKaW5kZXggMjY4ZDhhOC4uNjYyZTY3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfaXJxLmMKQEAgLTEzLDYgKzEzLDggQEAKICAqIGN1cnJlbnQgam9iIGNhbiBtYWtlIHByb2dyZXNzLgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKwogI2luY2x1ZGUgInYzZF9kcnYuaCIKICNpbmNsdWRlICJ2M2RfcmVncy5oIgogI2luY2x1ZGUgInYzZF90cmFjZS5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vTWFrZWZpbGUKaW5kZXggMTIyNGYzMS4uNTVkNzk4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL01ha2VmaWxlCkBAIC0xLDYgKzEsNiBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogdmJveHZpZGVvLXkgOj0gIGhnc21pX2Jhc2UubyBtb2Rlc2V0dGluZy5vIHZidmFfYmFzZS5vIFwKIAkJdmJveF9kcnYubyB2Ym94X2ZiLm8gdmJveF9oZ3NtaS5vIHZib3hfaXJxLm8gdmJveF9tYWluLm8gXAotCQl2Ym94X21vZGUubyB2Ym94X3ByaW1lLm8gdmJveF90dG0ubworCQl2Ym94X21vZGUubyB2Ym94X3R0bS5vCiAKIG9iai0kKENPTkZJR19EUk1fVkJPWFZJREVPKSArPSB2Ym94dmlkZW8ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5jCmluZGV4IDAyNTM3YWIuLjg2MmRiNDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfZHJ2LmMKQEAgLTMyLDcgKzMyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaWlkbGlzdFtdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBwY2lpZGxpc3QpOwogCi1zdGF0aWMgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3MgdmJveF9mYl9oZWxwZXJfZnVuY3MgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3MgdmJveF9mYl9oZWxwZXJfZnVuY3MgPSB7CiAJLmZiX3Byb2JlID0gdmJveGZiX2NyZWF0ZSwKIH07CiAKQEAgLTE5Niw3ICsxOTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB2Ym94X2ZvcHMgPSB7CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXIgPSB7CiAJLmRyaXZlcl9mZWF0dXJlcyA9Ci0JICAgIERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSB8IERSSVZFUl9BVE9NSUMsCisJICAgIERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9BVE9NSUMsCiAKIAkubGFzdGNsb3NlID0gZHJtX2ZiX2hlbHBlcl9sYXN0Y2xvc2UsCiAKQEAgLTIxMCwxNyArMjEwLDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKIAkucGF0Y2hsZXZlbCA9IERSSVZFUl9QQVRDSExFVkVMLAogCiAJRFJNX0dFTV9WUkFNX0RSSVZFUiwKLQkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCi0JLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfZXhwb3J0ID0gZHJtX2dlbV9wcmltZV9leHBvcnQsCi0JLmdlbV9wcmltZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKLQkuZ2VtX3ByaW1lX3BpbiA9IHZib3hfZ2VtX3ByaW1lX3BpbiwKLQkuZ2VtX3ByaW1lX3VucGluID0gdmJveF9nZW1fcHJpbWVfdW5waW4sCi0JLmdlbV9wcmltZV9nZXRfc2dfdGFibGUgPSB2Ym94X2dlbV9wcmltZV9nZXRfc2dfdGFibGUsCi0JLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgPSB2Ym94X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCi0JLmdlbV9wcmltZV92bWFwID0gdmJveF9nZW1fcHJpbWVfdm1hcCwKLQkuZ2VtX3ByaW1lX3Z1bm1hcCA9IHZib3hfZ2VtX3ByaW1lX3Z1bm1hcCwKLQkuZ2VtX3ByaW1lX21tYXAgPSB2Ym94X2dlbV9wcmltZV9tbWFwLAogfTsKIAogc3RhdGljIGludCBfX2luaXQgdmJveF9pbml0KHZvaWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfZHJ2LmgKaW5kZXggOTAyOGY5NC4uZThjYjllZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9kcnYuaApAQCAtMTY3LDE4ICsxNjcsNiBAQCB2b2lkIHZib3hfbW1fZmluaShzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94KTsKIGludCB2Ym94X2dlbV9jcmVhdGUoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCwKIAkJICAgIHUzMiBzaXplLCBib29sIGlza2VybmVsLCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipvYmopOwogCi0vKiB2Ym94X3ByaW1lLmMgKi8KLWludCB2Ym94X2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwotdm9pZCB2Ym94X2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Ci1zdHJ1Y3Qgc2dfdGFibGUgKnZib3hfZ2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Ci1zdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnZib3hfZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSgKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCi0Jc3RydWN0IHNnX3RhYmxlICp0YWJsZSk7Ci12b2lkICp2Ym94X2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKLXZvaWQgdmJveF9nZW1fcHJpbWVfdnVubWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcik7Ci1pbnQgdmJveF9nZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKLQkJCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqYXJlYSk7Ci0KIC8qIHZib3hfaXJxLmMgKi8KIGludCB2Ym94X2lycV9pbml0KHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gpOwogdm9pZCB2Ym94X2lycV9maW5pKHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X21haW4uYyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9tYWluLmMKaW5kZXggMTg2OTNlMi4uMDJmYTgyNzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9tYWluLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X21haW4uYwpAQCAtMjkyLDcgKzI5Miw3IEBAIGludCB2Ym94X2dlbV9jcmVhdGUoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCwKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQkqb2JqID0gJmdiby0+Z2VtOworCSpvYmogPSAmZ2JvLT5iby5iYXNlOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9wcmltZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDJiMWFhLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9wcmltZS5jCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBPcmFjbGUgQ29ycG9yYXRpb24KLSAqIENvcHlyaWdodCAyMDE3IENhbm9uaWNhbAotICogQXV0aG9yczogQW5kcmVhcyBQb2tvcm55Ci0gKi8KLQotI2luY2x1ZGUgInZib3hfZHJ2LmgiCi0KLS8qCi0gKiBCYXNlZCBvbiBxeGxfcHJpbWUuYzoKLSAqIEVtcHR5IEltcGxlbWVudGF0aW9ucyBhcyB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBvdGhlciBkcml2ZXIgZm9yIGEgdmlydHVhbAotICogZGV2aWNlIHRoYXQgbWlnaHQgc2hhcmUgYnVmZmVycyB3aXRoIHZib3h2aWRlbwotICovCi0KLWludCB2Ym94X2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCi17Ci0JV0FSTl9PTkNFKDEsICJub3QgaW1wbGVtZW50ZWQiKTsKLQlyZXR1cm4gLUVOT0RFVjsKLX0KLQotdm9pZCB2Ym94X2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKLXsKLQlXQVJOX09OQ0UoMSwgIm5vdCBpbXBsZW1lbnRlZCIpOwotfQotCi1zdHJ1Y3Qgc2dfdGFibGUgKnZib3hfZ2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKLXsKLQlXQVJOX09OQ0UoMSwgIm5vdCBpbXBsZW1lbnRlZCIpOwotCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwotfQotCi1zdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnZib3hfZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSgKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCi0Jc3RydWN0IHNnX3RhYmxlICp0YWJsZSkKLXsKLQlXQVJOX09OQ0UoMSwgIm5vdCBpbXBsZW1lbnRlZCIpOwotCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwotfQotCi12b2lkICp2Ym94X2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQotewotCVdBUk5fT05DRSgxLCAibm90IGltcGxlbWVudGVkIik7Ci0JcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7Ci19Ci0KLXZvaWQgdmJveF9nZW1fcHJpbWVfdnVubWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcikKLXsKLQlXQVJOX09OQ0UoMSwgIm5vdCBpbXBsZW1lbnRlZCIpOwotfQotCi1pbnQgdmJveF9nZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICphcmVhKQotewotCVdBUk5fT05DRSgxLCAibm90IGltcGxlbWVudGVkIik7Ci0JcmV0dXJuIC1FTk9ERVY7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfYm8uYwppbmRleCBhNzVhMmY5Li43MmQzMGQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2JvLmMKQEAgLTY1NSw4ICs2NTUsNyBAQCBzdGF0aWMgdm9pZCB2YzRfYm9fY2FjaGVfdGltZV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAlzY2hlZHVsZV93b3JrKCZ2YzQtPmJvX2NhY2hlLnRpbWVfd29yayk7CiB9CiAKLXN0cnVjdCBkbWFfYnVmICoKLXZjNF9wcmltZV9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBmbGFncykKK3N0cnVjdCBkbWFfYnVmICogdmM0X3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKQogewogCXN0cnVjdCB2YzRfYm8gKmJvID0gdG9fdmM0X2JvKG9iaik7CiAJc3RydWN0IGRtYV9idWYgKmRtYWJ1ZjsKQEAgLTY3OCw3ICs2NzcsNyBAQCB2YzRfcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgZmxhZ3MpCiAJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCi0JZG1hYnVmID0gZHJtX2dlbV9wcmltZV9leHBvcnQoZGV2LCBvYmosIGZsYWdzKTsKKwlkbWFidWYgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydChvYmosIGZsYWdzKTsKIAlpZiAoSVNfRVJSKGRtYWJ1ZikpCiAJCXZjNF9ib19kZWNfdXNlY250KGJvKTsKIApAQCAtNzkxLDggKzc5MCw2IEBAIHZjNF9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBvYmo7CiAKLQlvYmotPnJlc3YgPSBhdHRhY2gtPmRtYWJ1Zi0+cmVzdjsKLQogCXJldHVybiBvYmo7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMuYwppbmRleCA1ZWE4ZGI3Li5mMWYwYTdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jCkBAIC0yOSwxNSArMjksMTggQEAKICAqIG9uZXMgdGhhdCBzZXQgdGhlIGNsb2NrLgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfdWFwaS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgotI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisKICNpbmNsdWRlICJ2YzRfZHJ2LmgiCiAjaW5jbHVkZSAidmM0X3JlZ3MuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZGVidWdmcy5jCmluZGV4IDQ4MjlhMDAuLmI2MWIyZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kZWJ1Z2ZzLmMKQEAgLTcsNyArNyw2IEBACiAjaW5jbHVkZSA8bGludXgvY2lyY19idWYuaD4KICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogCiAjaW5jbHVkZSAidmM0X2Rydi5oIgogI2luY2x1ZGUgInZjNF9yZWdzLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5jCmluZGV4IDE1NTFjODIuLjVlNmZiNmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5jCkBAIC0yMywxNiArMjMsMjEgQEAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KIAogI2luY2x1ZGUgInVhcGkvZHJtL3ZjNF9kcm0uaCIKKwogI2luY2x1ZGUgInZjNF9kcnYuaCIKICNpbmNsdWRlICJ2YzRfcmVncy5oIgogCkBAIC0xNzcsNyArMTgyLDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHZjNF9kcm1fZHJpdmVyID0gewogCQkJICAgIERSSVZFUl9BVE9NSUMgfAogCQkJICAgIERSSVZFUl9HRU0gfAogCQkJICAgIERSSVZFUl9SRU5ERVIgfAotCQkJICAgIERSSVZFUl9QUklNRSB8CiAJCQkgICAgRFJJVkVSX1NZTkNPQkopLAogCS5vcGVuID0gdmM0X29wZW4sCiAJLnBvc3RjbG9zZSA9IHZjNF9jbG9zZSwKQEAgLTE5OSw3ICsyMDMsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgdmM0X2RybV9kcml2ZXIgPSB7CiAKIAkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfaW1wb3J0ID0gZHJtX2dlbV9wcmltZV9pbXBvcnQsCiAJLmdlbV9wcmltZV9leHBvcnQgPSB2YzRfcHJpbWVfZXhwb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlCT0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gdmM0X3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKaW5kZXggNjE2YzAxMS4uNjYyN2IyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKQEAgLTMsMTYgKzMsMjMgQEAKICAqIENvcHlyaWdodCAoQykgMjAxNSBCcm9hZGNvbQogICovCiAKLSNpbmNsdWRlIDxsaW51eC9tbV90eXBlcy5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV91dGlsLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWZjb3VudC5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3N5bmNvYmouaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21tLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2xvY2suaD4KIAogI2luY2x1ZGUgInVhcGkvZHJtL3ZjNF9kcm0uaCIKIAorc3RydWN0IGRybV9kZXZpY2U7CitzdHJ1Y3QgZHJtX2dlbV9vYmplY3Q7CisKIC8qIERvbid0IGZvcmdldCB0byB1cGRhdGUgdmM0X2JvLmM6IGJvX3R5cGVfbmFtZXNbXSB3aGVuIGFkZGluZyB0bwogICogdGhpcy4KICAqLwpAQCAtNzA1LDggKzcxMiw3IEBAIHN0cnVjdCB2YzRfYm8gKnZjNF9ib19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiBpbnQgdmM0X2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCQkgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7Ci1zdHJ1Y3QgZG1hX2J1ZiAqdmM0X3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKTsKK3N0cnVjdCBkbWFfYnVmICp2YzRfcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgZmxhZ3MpOwogaW50IHZjNF9jcmVhdGVfYm9faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIGludCB2YzRfY3JlYXRlX3NoYWRlcl9ib19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYwppbmRleCAxZGIzOWI1Li5jNzhmYTgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYwpAQCAtMTgsMjIgKzE4LDI1IEBACiAgKiBob3BlZnVsbHkgcHJlc2VudC4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9taXBpX2RzaS5oPgotI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9kbWFlbmdpbmUuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisKICNpbmNsdWRlICJ2YzRfZHJ2LmgiCiAjaW5jbHVkZSAidmM0X3JlZ3MuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9nZW0uYwppbmRleCA4NDc5NWQ5Li43YTA2Y2I2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9nZW0uYwpAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3NpZ25hbC5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS1hcnJheS5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9zeW5jb2JqLmg+CisKICNpbmNsdWRlICJ1YXBpL2RybS92YzRfZHJtLmgiCiAjaW5jbHVkZSAidmM0X2Rydi5oIgogI2luY2x1ZGUgInZjNF9yZWdzLmgiCkBAIC01NDEsNyArNTQzLDcgQEAgdmM0X3VwZGF0ZV9ib19zZXFub3Moc3RydWN0IHZjNF9leGVjX2luZm8gKmV4ZWMsIHVpbnQ2NF90IHNlcW5vKQogCQlibyA9IHRvX3ZjNF9ibygmZXhlYy0+Ym9baV0tPmJhc2UpOwogCQliby0+c2Vxbm8gPSBzZXFubzsKIAotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShiby0+YmFzZS5iYXNlLnJlc3YsIGV4ZWMtPmZlbmNlKTsKKwkJZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZShiby0+YmFzZS5iYXNlLnJlc3YsIGV4ZWMtPmZlbmNlKTsKIAl9CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmZXhlYy0+dW5yZWZfbGlzdCwgdW5yZWZfaGVhZCkgewpAQCAtNTUyLDcgKzU1NCw3IEBAIHZjNF91cGRhdGVfYm9fc2Vxbm9zKHN0cnVjdCB2YzRfZXhlY19pbmZvICpleGVjLCB1aW50NjRfdCBzZXFubykKIAkJYm8gPSB0b192YzRfYm8oJmV4ZWMtPnJjbF93cml0ZV9ib1tpXS0+YmFzZSk7CiAJCWJvLT53cml0ZV9zZXFubyA9IHNlcW5vOwogCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShiby0+YmFzZS5iYXNlLnJlc3YsIGV4ZWMtPmZlbmNlKTsKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2UoYm8tPmJhc2UuYmFzZS5yZXN2LCBleGVjLT5mZW5jZSk7CiAJfQogfQogCkBAIC02NDAsNyArNjQyLDcgQEAgdmM0X2xvY2tfYm9fcmVzZXJ2YXRpb25zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJZm9yIChpID0gMDsgaSA8IGV4ZWMtPmJvX2NvdW50OyBpKyspIHsKIAkJYm8gPSAmZXhlYy0+Ym9baV0tPmJhc2U7CiAKLQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKGJvLT5yZXN2LCAxKTsKKwkJcmV0ID0gZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQoYm8tPnJlc3YsIDEpOwogCQlpZiAocmV0KSB7CiAJCQl2YzRfdW5sb2NrX2JvX3Jlc2VydmF0aW9ucyhkZXYsIGV4ZWMsIGFjcXVpcmVfY3R4KTsKIAkJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9odnMuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2h2cy5jCmluZGV4IDBmNjMzYmUuLjk5MzZiMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2h2cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2h2cy5jCkBAIC0xOSw4ICsxOSwxMSBAQAogICogZWFjaCBDUlRDLgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorCiAjaW5jbHVkZSAidmM0X2Rydi5oIgogI2luY2x1ZGUgInZjNF9yZWdzLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfa21zLmMKaW5kZXggNzBkMDc5Yi4uNzhkNGZiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfa21zLmMKQEAgLTExLDEyICsxMSwxNCBAQAogICogY3J0YywgSERNSSBlbmNvZGVyKS4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKwogI2luY2x1ZGUgInZjNF9kcnYuaCIKICNpbmNsdWRlICJ2YzRfcmVncy5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYwppbmRleCAwYTAyMDdjLi41ZTVmOTA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMKQEAgLTE3LDExICsxNywxNCBAQAogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX3VhcGkuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAKICNpbmNsdWRlICJ1YXBpL2RybS92YzRfZHJtLmgiCisKICNpbmNsdWRlICJ2YzRfZHJ2LmgiCiAjaW5jbHVkZSAidmM0X3JlZ3MuaCIKIApAQCAtMTEyMyw3ICsxMTI2LDYgQEAgc3RhdGljIGludCB2YzRfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IHZjNF9ibyAqYm87Ci0Jc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJaW50IHJldDsKIAogCWlmICghc3RhdGUtPmZiKQpAQCAtMTEzMSw4ICsxMTMzLDcgQEAgc3RhdGljIGludCB2YzRfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAogCWJvID0gdG9fdmM0X2JvKCZkcm1fZmJfY21hX2dldF9nZW1fb2JqKHN0YXRlLT5mYiwgMCktPmJhc2UpOwogCi0JZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KGJvLT5iYXNlLmJhc2UucmVzdik7Ci0JZHJtX2F0b21pY19zZXRfZmVuY2VfZm9yX3BsYW5lKHN0YXRlLCBmZW5jZSk7CisJZHJtX2dlbV9mYl9wcmVwYXJlX2ZiKHBsYW5lLCBzdGF0ZSk7CiAKIAlpZiAocGxhbmUtPnN0YXRlLT5mYiA9PSBzdGF0ZS0+ZmIpCiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdHhwLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF90eHAuYwppbmRleCA5NmY5MWMxLi4xY2U0ZDcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF90eHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF90eHAuYwpAQCAtNywxOCArNywyMCBAQAogICoJQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AYm9vdGxpbi5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgotI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fd3JpdGViYWNrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV93cml0ZWJhY2suaD4KKwogI2luY2x1ZGUgInZjNF9kcnYuaCIKICNpbmNsdWRlICJ2YzRfcmVncy5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92M2QuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3YzZC5jCmluZGV4IGZlZTRmOTAuLmNlYTc3YTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92M2QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92M2QuYwpAQCAtNyw3ICs3LDExIEBACiAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgorCiAjaW5jbHVkZSAidmM0X2Rydi5oIgogI2luY2x1ZGUgInZjNF9yZWdzLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Rydi5jCmluZGV4IDExYThmOTkuLjViZDYwZGVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZHJ2LmMKQEAgLTMwLDEwICszMCwxNyBAQAogICogc29mdHdhcmUgcmVuZGVyZXIgYW5kIHRoZSBYIHNlcnZlciBmb3IgZWZmaWNpZW50IGJ1ZmZlciBzaGFyaW5nLgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9yYW1mcy5oPgotI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lvY3RsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgorCiAjaW5jbHVkZSAidmdlbV9kcnYuaCIKIAogI2RlZmluZSBEUklWRVJfTkFNRQkidmdlbSIKQEAgLTIxNCw3ICsyMjEsNyBAQCBzdGF0aWMgaW50IHZnZW1fZ2VtX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlhcmdzLT5zaXplID0gZ2VtX29iamVjdC0+c2l6ZTsKIAlhcmdzLT5waXRjaCA9IHBpdGNoOwogCi0JRFJNX0RFQlVHX0RSSVZFUigiQ3JlYXRlZCBvYmplY3Qgb2Ygc2l6ZSAlbGxkXG4iLCBzaXplKTsKKwlEUk1fREVCVUcoIkNyZWF0ZWQgb2JqZWN0IG9mIHNpemUgJWxsZFxuIiwgc2l6ZSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTI0Niw4ICsyNTMsOCBAQCBzdGF0aWMgaW50IHZnZW1fZ2VtX2R1bWJfbWFwKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1faW9jdGxfZGVzYyB2Z2VtX2lvY3Rsc1tdID0gewotCURSTV9JT0NUTF9ERUZfRFJWKFZHRU1fRkVOQ0VfQVRUQUNILCB2Z2VtX2ZlbmNlX2F0dGFjaF9pb2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCi0JRFJNX0lPQ1RMX0RFRl9EUlYoVkdFTV9GRU5DRV9TSUdOQUwsIHZnZW1fZmVuY2Vfc2lnbmFsX2lvY3RsLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihWR0VNX0ZFTkNFX0FUVEFDSCwgdmdlbV9mZW5jZV9hdHRhY2hfaW9jdGwsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKFZHRU1fRkVOQ0VfU0lHTkFMLCB2Z2VtX2ZlbmNlX3NpZ25hbF9pb2N0bCwgRFJNX1JFTkRFUl9BTExPVyksCiB9OwogCiBzdGF0aWMgaW50IHZnZW1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCkBAIC00MjcsOCArNDM0LDcgQEAgc3RhdGljIHZvaWQgdmdlbV9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB2Z2VtX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzCQk9IERSSVZFUl9HRU0gfCBEUklWRVJfUFJJTUUgfAotCQkJCQkgIERSSVZFUl9SRU5ERVIsCisJLmRyaXZlcl9mZWF0dXJlcwkJPSBEUklWRVJfR0VNIHwgRFJJVkVSX1JFTkRFUiwKIAkucmVsZWFzZQkJCT0gdmdlbV9yZWxlYXNlLAogCS5vcGVuCQkJCT0gdmdlbV9vcGVuLAogCS5wb3N0Y2xvc2UJCQk9IHZnZW1fcG9zdGNsb3NlLApAQCAtNDQ2LDcgKzQ1Miw2IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB2Z2VtX2RyaXZlciA9IHsKIAkuZ2VtX3ByaW1lX3BpbiA9IHZnZW1fcHJpbWVfcGluLAogCS5nZW1fcHJpbWVfdW5waW4gPSB2Z2VtX3ByaW1lX3VucGluLAogCS5nZW1fcHJpbWVfaW1wb3J0ID0gdmdlbV9wcmltZV9pbXBvcnQsCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKIAkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IHZnZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gdmdlbV9wcmltZV9nZXRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV92bWFwID0gdmdlbV9wcmltZV92bWFwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZHJ2LmgKaW5kZXggNWM4ZjZkNi4uMGVkMzAwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Rydi5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaWZuZGVmIF9WR0VNX0RSVl9IXwogI2RlZmluZSBfVkdFTV9EUlZfSF8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NhY2hlLmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVuY2UuYwppbmRleCBlYjE3YzBjLi45MjY4ZjZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9mZW5jZS5jCkBAIC0yMSw3ICsyMSw5IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KLSNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1yZXN2Lmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KIAogI2luY2x1ZGUgInZnZW1fZHJ2LmgiCiAKQEAgLTEwMCwyMiArMTAyLDYgQEAgc3RhdGljIHN0cnVjdCBkbWFfZmVuY2UgKnZnZW1fZmVuY2VfY3JlYXRlKHN0cnVjdCB2Z2VtX2ZpbGUgKnZmaWxlLAogCXJldHVybiAmZmVuY2UtPmJhc2U7CiB9CiAKLXN0YXRpYyBpbnQgYXR0YWNoX2RtYWJ1ZihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQotewotCXN0cnVjdCBkbWFfYnVmICpkbWFidWY7Ci0KLQlpZiAob2JqLT5kbWFfYnVmKQotCQlyZXR1cm4gMDsKLQotCWRtYWJ1ZiA9IGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfZXhwb3J0KGRldiwgb2JqLCAwKTsKLQlpZiAoSVNfRVJSKGRtYWJ1ZikpCi0JCXJldHVybiBQVFJfRVJSKGRtYWJ1Zik7Ci0KLQlvYmotPmRtYV9idWYgPSBkbWFidWY7Ci0JcmV0dXJuIDA7Ci19Ci0KIC8qCiAgKiB2Z2VtX2ZlbmNlX2F0dGFjaF9pb2N0bCAoRFJNX0lPQ1RMX1ZHRU1fRkVOQ0VfQVRUQUNIKToKICAqCkBAIC0xNDIsNyArMTI4LDcgQEAgaW50IHZnZW1fZmVuY2VfYXR0YWNoX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IGRybV92Z2VtX2ZlbmNlX2F0dGFjaCAqYXJnID0gZGF0YTsKIAlzdHJ1Y3QgdmdlbV9maWxlICp2ZmlsZSA9IGZpbGUtPmRyaXZlcl9wcml2OwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3Y7CisJc3RydWN0IGRtYV9yZXN2ICpyZXN2OwogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCWludCByZXQ7CkBAIC0xNTcsMTAgKzE0Myw2IEBAIGludCB2Z2VtX2ZlbmNlX2F0dGFjaF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmICghb2JqKQogCQlyZXR1cm4gLUVOT0VOVDsKIAotCXJldCA9IGF0dGFjaF9kbWFidWYoZGV2LCBvYmopOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyOwotCiAJZmVuY2UgPSB2Z2VtX2ZlbmNlX2NyZWF0ZSh2ZmlsZSwgYXJnLT5mbGFncyk7CiAJaWYgKCFmZW5jZSkgewogCQlyZXQgPSAtRU5PTUVNOwpAQCAtMTY4LDggKzE1MCw4IEBAIGludCB2Z2VtX2ZlbmNlX2F0dGFjaF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCX0KIAogCS8qIENoZWNrIGZvciBhIGNvbmZsaWN0aW5nIGZlbmNlICovCi0JcmVzdiA9IG9iai0+ZG1hX2J1Zi0+cmVzdjsKLQlpZiAoIXJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShyZXN2LAorCXJlc3YgPSBvYmotPnJlc3Y7CisJaWYgKCFkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdShyZXN2LAogCQkJCQkJICBhcmctPmZsYWdzICYgVkdFTV9GRU5DRV9XUklURSkpIHsKIAkJcmV0ID0gLUVCVVNZOwogCQlnb3RvIGVycl9mZW5jZTsKQEAgLTE3NywxMiArMTU5LDEyIEBAIGludCB2Z2VtX2ZlbmNlX2F0dGFjaF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJLyogRXhwb3NlIHRoZSBmZW5jZSB2aWEgdGhlIGRtYS1idWYgKi8KIAlyZXQgPSAwOwotCXJlc2VydmF0aW9uX29iamVjdF9sb2NrKHJlc3YsIE5VTEwpOworCWRtYV9yZXN2X2xvY2socmVzdiwgTlVMTCk7CiAJaWYgKGFyZy0+ZmxhZ3MgJiBWR0VNX0ZFTkNFX1dSSVRFKQotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UocmVzdiwgZmVuY2UpOwotCWVsc2UgaWYgKChyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQocmVzdiwgMSkpID09IDApCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKHJlc3YsIGZlbmNlKTsKLQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKHJlc3YpOworCQlkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZShyZXN2LCBmZW5jZSk7CisJZWxzZSBpZiAoKHJldCA9IGRtYV9yZXN2X3Jlc2VydmVfc2hhcmVkKHJlc3YsIDEpKSA9PSAwKQorCQlkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNlKHJlc3YsIGZlbmNlKTsKKwlkbWFfcmVzdl91bmxvY2socmVzdik7CiAKIAkvKiBSZWNvcmQgdGhlIGZlbmNlIGluIG91ciBpZHIgZm9yIGxhdGVyIHNpZ25hbGluZyAqLwogCWlmIChyZXQgPT0gMCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWEuYwppbmRleCBkMTdkOGYyLi4xMjA4NDQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWEuYwpAQCAtMzQsOCArMzQsMTUgQEAKICAqICAgIFRob21hcyBIZWxsc3Ryb20uCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hZ3BzdXBwb3J0Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KICNpbmNsdWRlIDxkcm0vdmlhX2RybS5oPgorCiAjaW5jbHVkZSAidmlhX2Rydi5oIgogI2luY2x1ZGUgInZpYV8zZF9yZWcuaCIKIApAQCAtNDMwLDE0ICs0MzcsMTQgQEAgc3RhdGljIGludCB2aWFfaG9va19zZWdtZW50KGRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdiwKIAlkaWZmID0gKHVpbnQzMl90KSAocHRyIC0gcmVhZGVyKSAtIGRldl9wcml2LT5kbWFfZGlmZjsKIAljb3VudCA9IDEwMDAwMDAwOwogCXdoaWxlIChkaWZmID09IDAgJiYgY291bnQtLSkgewotCQlwYXVzZWQgPSAoVklBX1JFQUQoMHg0MWMpICYgMHg4MDAwMDAwMCk7CisJCXBhdXNlZCA9ICh2aWFfcmVhZChkZXZfcHJpdiwgMHg0MWMpICYgMHg4MDAwMDAwMCk7CiAJCWlmIChwYXVzZWQpCiAJCQlicmVhazsKIAkJcmVhZGVyID0gKihkZXZfcHJpdi0+aHdfYWRkcl9wdHIpOwogCQlkaWZmID0gKHVpbnQzMl90KSAocHRyIC0gcmVhZGVyKSAtIGRldl9wcml2LT5kbWFfZGlmZjsKIAl9CiAKLQlwYXVzZWQgPSBWSUFfUkVBRCgweDQxYykgJiAweDgwMDAwMDAwOworCXBhdXNlZCA9IHZpYV9yZWFkKGRldl9wcml2LCAweDQxYykgJiAweDgwMDAwMDAwOwogCiAJaWYgKHBhdXNlZCAmJiAhbm9fcGNpX2ZpcmUpIHsKIAkJcmVhZGVyID0gKihkZXZfcHJpdi0+aHdfYWRkcl9wdHIpOwpAQCAtNDU0LDEwICs0NjEsMTAgQEAgc3RhdGljIGludCB2aWFfaG9va19zZWdtZW50KGRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdiwKIAkJCSAqIGRvZXNuJ3QgbWFrZSBhIGRpZmZlcmVuY2UuCiAJCQkgKi8KIAotCQkJVklBX1dSSVRFKFZJQV9SRUdfVFJBTlNFVCwgKEhDX1BhcmFUeXBlX1ByZUNSIDw8IDE2KSk7Ci0JCQlWSUFfV1JJVEUoVklBX1JFR19UUkFOU1BBQ0UsIHBhdXNlX2FkZHJfaGkpOwotCQkJVklBX1dSSVRFKFZJQV9SRUdfVFJBTlNQQUNFLCBwYXVzZV9hZGRyX2xvKTsKLQkJCVZJQV9SRUFEKFZJQV9SRUdfVFJBTlNQQUNFKTsKKwkJCXZpYV93cml0ZShkZXZfcHJpdiwgVklBX1JFR19UUkFOU0VULCAoSENfUGFyYVR5cGVfUHJlQ1IgPDwgMTYpKTsKKwkJCXZpYV93cml0ZShkZXZfcHJpdiwgVklBX1JFR19UUkFOU1BBQ0UsIHBhdXNlX2FkZHJfaGkpOworCQkJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUkVHX1RSQU5TUEFDRSwgcGF1c2VfYWRkcl9sbyk7CisJCQl2aWFfcmVhZChkZXZfcHJpdiwgVklBX1JFR19UUkFOU1BBQ0UpOwogCQl9CiAJfQogCXJldHVybiBwYXVzZWQ7CkBAIC00NjcsMTAgKzQ3NCwxMCBAQCBzdGF0aWMgaW50IHZpYV93YWl0X2lkbGUoZHJtX3ZpYV9wcml2YXRlX3QgKmRldl9wcml2KQogewogCWludCBjb3VudCA9IDEwMDAwMDAwOwogCi0Jd2hpbGUgKCEoVklBX1JFQUQoVklBX1JFR19TVEFUVVMpICYgVklBX1ZSX1FVRVVFX0JVU1kpICYmIC0tY291bnQpCisJd2hpbGUgKCEodmlhX3JlYWQoZGV2X3ByaXYsIFZJQV9SRUdfU1RBVFVTKSAmIFZJQV9WUl9RVUVVRV9CVVNZKSAmJiAtLWNvdW50KQogCQk7CiAKLQl3aGlsZSAoY291bnQgJiYgKFZJQV9SRUFEKFZJQV9SRUdfU1RBVFVTKSAmCisJd2hpbGUgKGNvdW50ICYmICh2aWFfcmVhZChkZXZfcHJpdiwgVklBX1JFR19TVEFUVVMpICYKIAkJCSAgIChWSUFfQ01EX1JHVFJfQlVTWSB8IFZJQV8yRF9FTkdfQlVTWSB8CiAJCQkgICAgVklBXzNEX0VOR19CVVNZKSkpCiAJCS0tY291bnQ7CkBAIC01MzYsMjEgKzU0MywyMSBAQCBzdGF0aWMgdm9pZCB2aWFfY21kYnVmX3N0YXJ0KGRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdikKIAl2aWFfZmx1c2hfd3JpdGVfY29tYmluZSgpOwogCSh2b2lkKSAqKHZvbGF0aWxlIHVpbnQzMl90ICopZGV2X3ByaXYtPmxhc3RfcGF1c2VfcHRyOwogCi0JVklBX1dSSVRFKFZJQV9SRUdfVFJBTlNFVCwgKEhDX1BhcmFUeXBlX1ByZUNSIDw8IDE2KSk7Ci0JVklBX1dSSVRFKFZJQV9SRUdfVFJBTlNQQUNFLCBjb21tYW5kKTsKLQlWSUFfV1JJVEUoVklBX1JFR19UUkFOU1BBQ0UsIHN0YXJ0X2FkZHJfbG8pOwotCVZJQV9XUklURShWSUFfUkVHX1RSQU5TUEFDRSwgZW5kX2FkZHJfbG8pOworCXZpYV93cml0ZShkZXZfcHJpdiwgVklBX1JFR19UUkFOU0VULCAoSENfUGFyYVR5cGVfUHJlQ1IgPDwgMTYpKTsKKwl2aWFfd3JpdGUoZGV2X3ByaXYsIFZJQV9SRUdfVFJBTlNQQUNFLCBjb21tYW5kKTsKKwl2aWFfd3JpdGUoZGV2X3ByaXYsIFZJQV9SRUdfVFJBTlNQQUNFLCBzdGFydF9hZGRyX2xvKTsKKwl2aWFfd3JpdGUoZGV2X3ByaXYsIFZJQV9SRUdfVFJBTlNQQUNFLCBlbmRfYWRkcl9sbyk7CiAKLQlWSUFfV1JJVEUoVklBX1JFR19UUkFOU1BBQ0UsIHBhdXNlX2FkZHJfaGkpOwotCVZJQV9XUklURShWSUFfUkVHX1RSQU5TUEFDRSwgcGF1c2VfYWRkcl9sbyk7CisJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUkVHX1RSQU5TUEFDRSwgcGF1c2VfYWRkcl9oaSk7CisJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUkVHX1RSQU5TUEFDRSwgcGF1c2VfYWRkcl9sbyk7CiAJd21iKCk7Ci0JVklBX1dSSVRFKFZJQV9SRUdfVFJBTlNQQUNFLCBjb21tYW5kIHwgSENfSEFHUENNTlRfTUFTSyk7Ci0JVklBX1JFQUQoVklBX1JFR19UUkFOU1BBQ0UpOworCXZpYV93cml0ZShkZXZfcHJpdiwgVklBX1JFR19UUkFOU1BBQ0UsIGNvbW1hbmQgfCBIQ19IQUdQQ01OVF9NQVNLKTsKKwl2aWFfcmVhZChkZXZfcHJpdiwgVklBX1JFR19UUkFOU1BBQ0UpOwogCiAJZGV2X3ByaXYtPmRtYV9kaWZmID0gMDsKIAogCWNvdW50ID0gMTAwMDAwMDA7Ci0Jd2hpbGUgKCEoVklBX1JFQUQoMHg0MWMpICYgMHg4MDAwMDAwMCkgJiYgY291bnQtLSk7CisJd2hpbGUgKCEodmlhX3JlYWQoZGV2X3ByaXYsIDB4NDFjKSAmIDB4ODAwMDAwMDApICYmIGNvdW50LS0pOwogCiAJcmVhZGVyID0gKihkZXZfcHJpdi0+aHdfYWRkcl9wdHIpOwogCXB0ciA9ICgodm9sYXRpbGUgY2hhciAqKWRldl9wcml2LT5sYXN0X3BhdXNlX3B0ciAtIGRldl9wcml2LT5kbWFfcHRyKSArCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmMKaW5kZXggMDYyMDY3NC4uM2RiMDAwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1hYmxpdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2RtYWJsaXQuYwpAQCAtMzQsMTMgKzM0LDE2IEBACiAgKiB0aGUgc2FtZSBETUEgbWFwcGluZ3M/CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSA8ZHJtL3ZpYV9kcm0uaD4KLSNpbmNsdWRlICJ2aWFfZHJ2LmgiCi0jaW5jbHVkZSAidmlhX2RtYWJsaXQuaCIKLQogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BjaS5oPgorI2luY2x1ZGUgPGRybS92aWFfZHJtLmg+CisKKyNpbmNsdWRlICJ2aWFfZG1hYmxpdC5oIgorI2luY2x1ZGUgInZpYV9kcnYuaCIKIAogI2RlZmluZSBWSUFfUEdETih4KQkgICAgICgoKHVuc2lnbmVkIGxvbmcpKHgpKSAmIFBBR0VfTUFTSykKICNkZWZpbmUgVklBX1BHT0ZGKHgpCSAgICAoKCh1bnNpZ25lZCBsb25nKSh4KSkgJiB+UEFHRV9NQVNLKQpAQCAtMTcxLDcgKzE3NCw2IEBAIHZpYV9tYXBfYmxpdF9mb3JfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogc3RhdGljIHZvaWQKIHZpYV9mcmVlX3NnX2luZm8oc3RydWN0IHBjaV9kZXYgKnBkZXYsIGRybV92aWFfc2dfaW5mb190ICp2c2cpCiB7Ci0Jc3RydWN0IHBhZ2UgKnBhZ2U7CiAJaW50IGk7CiAKIAlzd2l0Y2ggKHZzZy0+c3RhdGUpIHsKQEAgLTE4NiwxMyArMTg4LDggQEAgdmlhX2ZyZWVfc2dfaW5mbyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZHJtX3ZpYV9zZ19pbmZvX3QgKnZzZykKIAkJa2ZyZWUodnNnLT5kZXNjX3BhZ2VzKTsKIAkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBkcl92aWFfcGFnZXNfbG9ja2VkOgotCQlmb3IgKGkgPSAwOyBpIDwgdnNnLT5udW1fcGFnZXM7ICsraSkgewotCQkJaWYgKE5VTEwgIT0gKHBhZ2UgPSB2c2ctPnBhZ2VzW2ldKSkgewotCQkJCWlmICghUGFnZVJlc2VydmVkKHBhZ2UpICYmIChETUFfRlJPTV9ERVZJQ0UgPT0gdnNnLT5kaXJlY3Rpb24pKQotCQkJCQlTZXRQYWdlRGlydHkocGFnZSk7Ci0JCQkJcHV0X3BhZ2UocGFnZSk7Ci0JCQl9Ci0JCX0KKwkJcHV0X3VzZXJfcGFnZXNfZGlydHlfbG9jayh2c2ctPnBhZ2VzLCB2c2ctPm51bV9wYWdlcywKKwkJCQkJICAodnNnLT5kaXJlY3Rpb24gPT0gRE1BX0ZST01fREVWSUNFKSk7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgZHJfdmlhX3BhZ2VzX2FsbG9jOgogCQl2ZnJlZSh2c2ctPnBhZ2VzKTsKQEAgLTIxNCwxNiArMjExLDE2IEBAIHZpYV9maXJlX2RtYWJsaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZHJtX3ZpYV9zZ19pbmZvX3QgKnZzZywgaW50IGVuZ2luZSkKIHsKIAlkcm1fdmlhX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX3ZpYV9wcml2YXRlX3QgKilkZXYtPmRldl9wcml2YXRlOwogCi0JVklBX1dSSVRFKFZJQV9QQ0lfRE1BX01BUjAgKyBlbmdpbmUqMHgxMCwgMCk7Ci0JVklBX1dSSVRFKFZJQV9QQ0lfRE1BX0RBUjAgKyBlbmdpbmUqMHgxMCwgMCk7Ci0JVklBX1dSSVRFKFZJQV9QQ0lfRE1BX0NTUjAgKyBlbmdpbmUqMHgwNCwgVklBX0RNQV9DU1JfREQgfCBWSUFfRE1BX0NTUl9URCB8CisJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUENJX0RNQV9NQVIwICsgZW5naW5lKjB4MTAsIDApOworCXZpYV93cml0ZShkZXZfcHJpdiwgVklBX1BDSV9ETUFfREFSMCArIGVuZ2luZSoweDEwLCAwKTsKKwl2aWFfd3JpdGUoZGV2X3ByaXYsIFZJQV9QQ0lfRE1BX0NTUjAgKyBlbmdpbmUqMHgwNCwgVklBX0RNQV9DU1JfREQgfCBWSUFfRE1BX0NTUl9URCB8CiAJCSAgVklBX0RNQV9DU1JfREUpOwotCVZJQV9XUklURShWSUFfUENJX0RNQV9NUjAgICsgZW5naW5lKjB4MDQsIFZJQV9ETUFfTVJfQ00gfCBWSUFfRE1BX01SX1RESUUpOwotCVZJQV9XUklURShWSUFfUENJX0RNQV9CQ1IwICsgZW5naW5lKjB4MTAsIDApOwotCVZJQV9XUklURShWSUFfUENJX0RNQV9EUFIwICsgZW5naW5lKjB4MTAsIHZzZy0+Y2hhaW5fc3RhcnQpOworCXZpYV93cml0ZShkZXZfcHJpdiwgVklBX1BDSV9ETUFfTVIwICArIGVuZ2luZSoweDA0LCBWSUFfRE1BX01SX0NNIHwgVklBX0RNQV9NUl9URElFKTsKKwl2aWFfd3JpdGUoZGV2X3ByaXYsIFZJQV9QQ0lfRE1BX0JDUjAgKyBlbmdpbmUqMHgxMCwgMCk7CisJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUENJX0RNQV9EUFIwICsgZW5naW5lKjB4MTAsIHZzZy0+Y2hhaW5fc3RhcnQpOwogCXdtYigpOwotCVZJQV9XUklURShWSUFfUENJX0RNQV9DU1IwICsgZW5naW5lKjB4MDQsIFZJQV9ETUFfQ1NSX0RFIHwgVklBX0RNQV9DU1JfVFMpOwotCVZJQV9SRUFEKFZJQV9QQ0lfRE1BX0NTUjAgKyBlbmdpbmUqMHgwNCk7CisJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUENJX0RNQV9DU1IwICsgZW5naW5lKjB4MDQsIFZJQV9ETUFfQ1NSX0RFIHwgVklBX0RNQV9DU1JfVFMpOworCXZpYV9yZWFkKGRldl9wcml2LCBWSUFfUENJX0RNQV9DU1IwICsgZW5naW5lKjB4MDQpOwogfQogCiAvKgpAQCAtMjkxLDcgKzI4OCw3IEBAIHZpYV9hYm9ydF9kbWFibGl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBlbmdpbmUpCiB7CiAJZHJtX3ZpYV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV92aWFfcHJpdmF0ZV90ICopZGV2LT5kZXZfcHJpdmF0ZTsKIAotCVZJQV9XUklURShWSUFfUENJX0RNQV9DU1IwICsgZW5naW5lKjB4MDQsIFZJQV9ETUFfQ1NSX1RBKTsKKwl2aWFfd3JpdGUoZGV2X3ByaXYsIFZJQV9QQ0lfRE1BX0NTUjAgKyBlbmdpbmUqMHgwNCwgVklBX0RNQV9DU1JfVEEpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMjk5LDcgKzI5Niw3IEBAIHZpYV9kbWFibGl0X2VuZ2luZV9vZmYoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGVuZ2luZSkKIHsKIAlkcm1fdmlhX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX3ZpYV9wcml2YXRlX3QgKilkZXYtPmRldl9wcml2YXRlOwogCi0JVklBX1dSSVRFKFZJQV9QQ0lfRE1BX0NTUjAgKyBlbmdpbmUqMHgwNCwgVklBX0RNQV9DU1JfVEQgfCBWSUFfRE1BX0NTUl9ERCk7CisJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUENJX0RNQV9DU1IwICsgZW5naW5lKjB4MDQsIFZJQV9ETUFfQ1NSX1REIHwgVklBX0RNQV9DU1JfREQpOwogfQogCiAKQEAgLTMzMCw3ICszMjcsNyBAQCB2aWFfZG1hYmxpdF9oYW5kbGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBlbmdpbmUsIGludCBmcm9tX2lycSkKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmJsaXRxLT5ibGl0X2xvY2ssIGlycXNhdmUpOwogCiAJZG9uZV90cmFuc2ZlciA9IGJsaXRxLT5pc19hY3RpdmUgJiYKLQkgICgoc3RhdHVzID0gVklBX1JFQUQoVklBX1BDSV9ETUFfQ1NSMCArIGVuZ2luZSoweDA0KSkgJiBWSUFfRE1BX0NTUl9URCk7CisJICAoKHN0YXR1cyA9IHZpYV9yZWFkKGRldl9wcml2LCBWSUFfUENJX0RNQV9DU1IwICsgZW5naW5lKjB4MDQpKSAmIFZJQV9ETUFfQ1NSX1REKTsKIAlkb25lX3RyYW5zZmVyID0gZG9uZV90cmFuc2ZlciB8fCAoYmxpdHEtPmFib3J0aW5nICYmICEoc3RhdHVzICYgVklBX0RNQV9DU1JfREUpKTsKIAogCWN1ciA9IGJsaXRxLT5jdXI7CkBAIC0zNDksNyArMzQ2LDcgQEAgdmlhX2RtYWJsaXRfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5naW5lLCBpbnQgZnJvbV9pcnEpCiAJCSAqIENsZWFyIHRyYW5zZmVyIGRvbmUgZmxhZy4KIAkJICovCiAKLQkJVklBX1dSSVRFKFZJQV9QQ0lfRE1BX0NTUjAgKyBlbmdpbmUqMHgwNCwgIFZJQV9ETUFfQ1NSX1REKTsKKwkJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUENJX0RNQV9DU1IwICsgZW5naW5lKjB4MDQsICBWSUFfRE1BX0NTUl9URCk7CiAKIAkJYmxpdHEtPmlzX2FjdGl2ZSA9IDA7CiAJCWJsaXRxLT5hYm9ydGluZyA9IDA7CkBAIC00MzYsNyArNDMzLDcgQEAgdmlhX2RtYWJsaXRfc3luYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJfdCBoYW5kbGUsIGludCBlbmdpbmUpCiAJaW50IHJldCA9IDA7CiAKIAlpZiAodmlhX2RtYWJsaXRfYWN0aXZlKGJsaXRxLCBlbmdpbmUsIGhhbmRsZSwgJnF1ZXVlKSkgewotCQlEUk1fV0FJVF9PTihyZXQsICpxdWV1ZSwgMyAqIEhaLAorCQlWSUFfV0FJVF9PTihyZXQsICpxdWV1ZSwgMyAqIEhaLAogCQkJICAgICF2aWFfZG1hYmxpdF9hY3RpdmUoYmxpdHEsIGVuZ2luZSwgaGFuZGxlLCBOVUxMKSk7CiAJfQogCURSTV9ERUJVRygiRE1BIGJsaXQgc3luYyBoYW5kbGUgMHgleCBlbmdpbmUgJWQgcmV0dXJuZWQgJWRcbiIsCkBAIC02ODcsNyArNjg0LDcgQEAgdmlhX2RtYWJsaXRfZ3JhYl9zbG90KGRybV92aWFfYmxpdHFfdCAqYmxpdHEsIGludCBlbmdpbmUpCiAJd2hpbGUgKGJsaXRxLT5udW1fZnJlZSA9PSAwKSB7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmJsaXRxLT5ibGl0X2xvY2ssIGlycXNhdmUpOwogCi0JCURSTV9XQUlUX09OKHJldCwgYmxpdHEtPmJ1c3lfcXVldWUsIEhaLCBibGl0cS0+bnVtX2ZyZWUgPiAwKTsKKwkJVklBX1dBSVRfT04ocmV0LCBibGl0cS0+YnVzeV9xdWV1ZSwgSFosIGJsaXRxLT5udW1fZnJlZSA+IDApOwogCQlpZiAocmV0KQogCQkJcmV0dXJuICgtRUlOVFIgPT0gcmV0KSA/IC1FQUdBSU4gOiByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmMKaW5kZXggYWY2YTEyZC4uNjY2YTE2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmMKQEAgLTI0LDExICsyNCwxNCBAQAogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wY2kuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BjaWlkcy5oPgogI2luY2x1ZGUgPGRybS92aWFfZHJtLmg+CisKICNpbmNsdWRlICJ2aWFfZHJ2LmgiCiAKLSNpbmNsdWRlIDxkcm0vZHJtX3BjaWlkcy5oPgogCiBzdGF0aWMgaW50IHZpYV9kcml2ZXJfb3BlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2Rydi5oCmluZGV4IDZkMWFlODMuLmQ1YWQxYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2Rydi5oCkBAIC0yNCw4ICsyNCwxNiBAQAogI2lmbmRlZiBfVklBX0RSVl9IXwogI2RlZmluZSBfVklBX0RSVl9IXwogCi0jaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycXJldHVybi5oPgorI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3NpZ25hbC5oPgorI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKworI2luY2x1ZGUgPGRybS9kcm1faW9jdGwuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2xlZ2FjeS5oPgorI2luY2x1ZGUgPGRybS9kcm1fbW0uaD4KKyNpbmNsdWRlIDxkcm0vdmlhX2RybS5oPgogCiAjZGVmaW5lIERSSVZFUl9BVVRIT1IJIlZhcmlvdXMiCiAKQEAgLTExMywxMiArMTIxLDY3IEBAIGVudW0gdmlhX2ZhbWlseSB7CiB9OwogCiAvKiBWSUEgTU1JTyByZWdpc3RlciBhY2Nlc3MgKi8KLSNkZWZpbmUgVklBX0JBU0UgKChkZXZfcHJpdi0+bW1pbykpCitzdGF0aWMgaW5saW5lIHUzMiB2aWFfcmVhZChzdHJ1Y3QgZHJtX3ZpYV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZykKK3sKKwlyZXR1cm4gcmVhZGwoKHZvaWQgX19pb21lbSAqKShkZXZfcHJpdi0+bW1pby0+aGFuZGxlICsgcmVnKSk7Cit9CiAKLSNkZWZpbmUgVklBX1JFQUQocmVnKQkJRFJNX1JFQUQzMihWSUFfQkFTRSwgcmVnKQotI2RlZmluZSBWSUFfV1JJVEUocmVnLCB2YWwpCURSTV9XUklURTMyKFZJQV9CQVNFLCByZWcsIHZhbCkKLSNkZWZpbmUgVklBX1JFQUQ4KHJlZykJCURSTV9SRUFEOChWSUFfQkFTRSwgcmVnKQotI2RlZmluZSBWSUFfV1JJVEU4KHJlZywgdmFsKQlEUk1fV1JJVEU4KFZJQV9CQVNFLCByZWcsIHZhbCkKK3N0YXRpYyBpbmxpbmUgdm9pZCB2aWFfd3JpdGUoc3RydWN0IGRybV92aWFfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcsCisJCQkgICAgIHUzMiB2YWwpCit7CisJd3JpdGVsKHZhbCwgKHZvaWQgX19pb21lbSAqKShkZXZfcHJpdi0+bW1pby0+aGFuZGxlICsgcmVnKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCB2aWFfd3JpdGU4KHN0cnVjdCBkcm1fdmlhX3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVnLAorCQkJICAgICAgdTMyIHZhbCkKK3sKKwl3cml0ZWIodmFsLCAodm9pZCBfX2lvbWVtICopKGRldl9wcml2LT5tbWlvLT5oYW5kbGUgKyByZWcpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHZpYV93cml0ZThfbWFzayhzdHJ1Y3QgZHJtX3ZpYV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICB1MzIgcmVnLCB1MzIgbWFzaywgdTMyIHZhbCkKK3sKKwl1MzIgdG1wOworCisJdG1wID0gcmVhZGIoKHZvaWQgX19pb21lbSAqKShkZXZfcHJpdi0+bW1pby0+aGFuZGxlICsgcmVnKSk7CisJdG1wID0gKHRtcCAmIH5tYXNrKSB8ICh2YWwgJiBtYXNrKTsKKwl3cml0ZWIodG1wLCAodm9pZCBfX2lvbWVtICopKGRldl9wcml2LT5tbWlvLT5oYW5kbGUgKyByZWcpKTsKK30KKworLyoKKyAqIFBvbGwgaW4gYSBsb29wIHdhaXRpbmcgZm9yICdjb250aWRpdGlvbicgdG8gYmUgdHJ1ZS4KKyAqIE5vdGU6IEEgZGlyZWN0IHJlcGxhY2VtZW50IHdpdGggd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoKQorICogICAgICAgd2lsbCBub3Qgd29yayB1bmxlc3MgZHJpdmVyIGlzIHVwZGF0ZWQgdG8gZW1pdCB3YWtlX3VwKCkKKyAqICAgICAgIGluIHJlbGV2YW50IHBsYWNlcyB0aGF0IGNhbiBpbXBhY3QgdGhlICdjb25kaXRpb24nCisgKgorICogUmV0dXJuczoKKyAqICAgcmV0IGtlZXBzIGN1cnJlbnQgdmFsdWUgaWYgJ2NvbmRpdGlvbicgYmVjb21lcyB0cnVlCisgKiAgIHJldCA9IC1CVVNZIGlmIHRpbWVvdXQgaGFwcGVucworICogICByZXQgPSAtRUlOVFIgaWYgYSBzaWduYWwgaW50ZXJydXB0ZWQgdGhlIHdhaXRpbmcgcGVyaW9kCisgKi8KKyNkZWZpbmUgVklBX1dBSVRfT04oIHJldCwgcXVldWUsIHRpbWVvdXQsIGNvbmRpdGlvbiApCQlcCitkbyB7CQkJCQkJCQlcCisJREVDTEFSRV9XQUlUUVVFVUUoZW50cnksIGN1cnJlbnQpOwkJCVwKKwl1bnNpZ25lZCBsb25nIGVuZCA9IGppZmZpZXMgKyAodGltZW91dCk7CQlcCisJYWRkX3dhaXRfcXVldWUoJihxdWV1ZSksICZlbnRyeSk7CQkJXAorCQkJCQkJCQlcCisJZm9yICg7OykgewkJCQkJCVwKKwkJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOwlcCisJCWlmIChjb25kaXRpb24pCQkJCQlcCisJCQlicmVhazsJCQkJCVwKKwkJaWYgKHRpbWVfYWZ0ZXJfZXEoamlmZmllcywgZW5kKSkgewkJXAorCQkJcmV0ID0gLUVCVVNZOwkJCQlcCisJCQlicmVhazsJCQkJCVwKKwkJfQkJCQkJCVwKKwkJc2NoZWR1bGVfdGltZW91dCgoSFovMTAwID4gMSkgPyBIWi8xMDAgOiAxKTsJXAorCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsJCQlcCisJCQlyZXQgPSAtRUlOVFI7CQkJCVwKKwkJCWJyZWFrOwkJCQkJXAorCQl9CQkJCQkJXAorCX0JCQkJCQkJXAorCV9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsJCQlcCisJcmVtb3ZlX3dhaXRfcXVldWUoJihxdWV1ZSksICZlbnRyeSk7CQkJXAorfSB3aGlsZSAoMCkKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyB2aWFfaW9jdGxzW107CiBleHRlcm4gaW50IHZpYV9tYXhfaW9jdGw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2lycS5jCmluZGV4IGM5NjgzMGMuLjI0Y2M0NDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2lycS5jCkBAIC0zNSw4ICszNSwxMCBAQAogICogVGhlIHJlZnJlc2ggcmF0ZSBpcyBhbHNvIGNhbGN1bGF0ZWQgZm9yIHZpZGVvIHBsYXliYWNrIHN5bmMgcHVycG9zZXMuCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogI2luY2x1ZGUgPGRybS92aWFfZHJtLmg+CisKICNpbmNsdWRlICJ2aWFfZHJ2LmgiCiAKICNkZWZpbmUgVklBX1JFR19JTlRFUlJVUFQgICAgICAgMHgyMDAKQEAgLTEwOCw3ICsxMTAsNyBAQCBpcnFyZXR1cm5fdCB2aWFfZHJpdmVyX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAlkcm1fdmlhX2lycV90ICpjdXJfaXJxID0gZGV2X3ByaXYtPnZpYV9pcnFzOwogCWludCBpOwogCi0Jc3RhdHVzID0gVklBX1JFQUQoVklBX1JFR19JTlRFUlJVUFQpOworCXN0YXR1cyA9IHZpYV9yZWFkKGRldl9wcml2LCBWSUFfUkVHX0lOVEVSUlVQVCk7CiAJaWYgKHN0YXR1cyAmIFZJQV9JUlFfVkJMQU5LX1BFTkRJTkcpIHsKIAkJYXRvbWljX2luYygmZGV2X3ByaXYtPnZibF9yZWNlaXZlZCk7CiAJCWlmICghKGF0b21pY19yZWFkKCZkZXZfcHJpdi0+dmJsX3JlY2VpdmVkKSAmIDB4MEYpKSB7CkBAIC0xNDMsNyArMTQ1LDcgQEAgaXJxcmV0dXJuX3QgdmlhX2RyaXZlcl9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJfQogCiAJLyogQWNrbm93bGVkZ2UgaW50ZXJydXB0cyAqLwotCVZJQV9XUklURShWSUFfUkVHX0lOVEVSUlVQVCwgc3RhdHVzKTsKKwl2aWFfd3JpdGUoZGV2X3ByaXYsIFZJQV9SRUdfSU5URVJSVVBULCBzdGF0dXMpOwogCiAKIAlpZiAoaGFuZGxlZCkKQEAgLTE1OCw4ICsxNjAsOCBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHZpYWRydl9hY2tub3dsZWRnZV9pcnFzKGRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdikKIAogCWlmIChkZXZfcHJpdikgewogCQkvKiBBY2tub3dsZWRnZSBpbnRlcnJ1cHRzICovCi0JCXN0YXR1cyA9IFZJQV9SRUFEKFZJQV9SRUdfSU5URVJSVVBUKTsKLQkJVklBX1dSSVRFKFZJQV9SRUdfSU5URVJSVVBULCBzdGF0dXMgfAorCQlzdGF0dXMgPSB2aWFfcmVhZChkZXZfcHJpdiwgVklBX1JFR19JTlRFUlJVUFQpOworCQl2aWFfd3JpdGUoZGV2X3ByaXYsIFZJQV9SRUdfSU5URVJSVVBULCBzdGF0dXMgfAogCQkJICBkZXZfcHJpdi0+aXJxX3BlbmRpbmdfbWFzayk7CiAJfQogfQpAQCAtMTc0LDExICsxNzYsMTEgQEAgaW50IHZpYV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlzdGF0dXMgPSBWSUFfUkVBRChWSUFfUkVHX0lOVEVSUlVQVCk7Ci0JVklBX1dSSVRFKFZJQV9SRUdfSU5URVJSVVBULCBzdGF0dXMgfCBWSUFfSVJRX1ZCTEFOS19FTkFCTEUpOworCXN0YXR1cyA9IHZpYV9yZWFkKGRldl9wcml2LCBWSUFfUkVHX0lOVEVSUlVQVCk7CisJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUkVHX0lOVEVSUlVQVCwgc3RhdHVzIHwgVklBX0lSUV9WQkxBTktfRU5BQkxFKTsKIAotCVZJQV9XUklURTgoMHg4M2Q0LCAweDExKTsKLQlWSUFfV1JJVEU4KDB4ODNkNSwgVklBX1JFQUQ4KDB4ODNkNSkgfCAweDMwKTsKKwl2aWFfd3JpdGU4KGRldl9wcml2LCAweDgzZDQsIDB4MTEpOworCXZpYV93cml0ZThfbWFzayhkZXZfcHJpdiwgMHg4M2Q1LCAweDMwLCAweDMwKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTg4LDExICsxOTAsMTEgQEAgdm9pZCB2aWFfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiAJZHJtX3ZpYV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1MzIgc3RhdHVzOwogCi0Jc3RhdHVzID0gVklBX1JFQUQoVklBX1JFR19JTlRFUlJVUFQpOwotCVZJQV9XUklURShWSUFfUkVHX0lOVEVSUlVQVCwgc3RhdHVzICYgflZJQV9JUlFfVkJMQU5LX0VOQUJMRSk7CisJc3RhdHVzID0gdmlhX3JlYWQoZGV2X3ByaXYsIFZJQV9SRUdfSU5URVJSVVBUKTsKKwl2aWFfd3JpdGUoZGV2X3ByaXYsIFZJQV9SRUdfSU5URVJSVVBULCBzdGF0dXMgJiB+VklBX0lSUV9WQkxBTktfRU5BQkxFKTsKIAotCVZJQV9XUklURTgoMHg4M2Q0LCAweDExKTsKLQlWSUFfV1JJVEU4KDB4ODNkNSwgVklBX1JFQUQ4KDB4ODNkNSkgJiB+MHgzMCk7CisJdmlhX3dyaXRlOChkZXZfcHJpdiwgMHg4M2Q0LCAweDExKTsKKwl2aWFfd3JpdGU4X21hc2soZGV2X3ByaXYsIDB4ODNkNSwgMHgzMCwgMCk7CiAKIAlpZiAocGlwZSAhPSAwKQogCQlEUk1fRVJST1IoIiVzOiAgYmFkIGNydGMgJXVcbiIsIF9fZnVuY19fLCBwaXBlKTsKQEAgLTIzMywxMiArMjM1LDEyIEBAIHZpYV9kcml2ZXJfaXJxX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGlycSwgaW50IGZvcmNlX3NlcXVlbmNlCiAJY3VyX2lycSA9IGRldl9wcml2LT52aWFfaXJxcyArIHJlYWxfaXJxOwogCiAJaWYgKG1hc2tzW3JlYWxfaXJxXVsyXSAmJiAhZm9yY2Vfc2VxdWVuY2UpIHsKLQkJRFJNX1dBSVRfT04ocmV0LCBjdXJfaXJxLT5pcnFfcXVldWUsIDMgKiBIWiwKLQkJCSAgICAoKFZJQV9SRUFEKG1hc2tzW2lycV1bMl0pICYgbWFza3NbaXJxXVszXSkgPT0KKwkJVklBX1dBSVRfT04ocmV0LCBjdXJfaXJxLT5pcnFfcXVldWUsIDMgKiBIWiwKKwkJCSAgICAoKHZpYV9yZWFkKGRldl9wcml2LCBtYXNrc1tpcnFdWzJdKSAmIG1hc2tzW2lycV1bM10pID09CiAJCQkgICAgIG1hc2tzW2lycV1bNF0pKTsKIAkJY3VyX2lycV9zZXF1ZW5jZSA9IGF0b21pY19yZWFkKCZjdXJfaXJxLT5pcnFfcmVjZWl2ZWQpOwogCX0gZWxzZSB7Ci0JCURSTV9XQUlUX09OKHJldCwgY3VyX2lycS0+aXJxX3F1ZXVlLCAzICogSFosCisJCVZJQV9XQUlUX09OKHJldCwgY3VyX2lycS0+aXJxX3F1ZXVlLCAzICogSFosCiAJCQkgICAgKCgoY3VyX2lycV9zZXF1ZW5jZSA9CiAJCQkgICAgICAgYXRvbWljX3JlYWQoJmN1cl9pcnEtPmlycV9yZWNlaXZlZCkpIC0KIAkJCSAgICAgICpzZXF1ZW5jZSkgPD0gKDEgPDwgMjMpKSk7CkBAIC0yOTIsOCArMjk0LDggQEAgdm9pZCB2aWFfZHJpdmVyX2lycV9wcmVpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWRldl9wcml2LT5sYXN0X3ZibGFua192YWxpZCA9IDA7CiAKIAkJLyogQ2xlYXIgVlN5bmMgaW50ZXJydXB0IHJlZ3MgKi8KLQkJc3RhdHVzID0gVklBX1JFQUQoVklBX1JFR19JTlRFUlJVUFQpOwotCQlWSUFfV1JJVEUoVklBX1JFR19JTlRFUlJVUFQsIHN0YXR1cyAmCisJCXN0YXR1cyA9IHZpYV9yZWFkKGRldl9wcml2LCBWSUFfUkVHX0lOVEVSUlVQVCk7CisJCXZpYV93cml0ZShkZXZfcHJpdiwgVklBX1JFR19JTlRFUlJVUFQsIHN0YXR1cyAmCiAJCQkgIH4oZGV2X3ByaXYtPmlycV9lbmFibGVfbWFzaykpOwogCiAJCS8qIENsZWFyIGJpdHMgaWYgdGhleSdyZSBhbHJlYWR5IGhpZ2ggKi8KQEAgLTMxMCwxMyArMzEyLDEzIEBAIGludCB2aWFfZHJpdmVyX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmICghZGV2X3ByaXYpCiAJCXJldHVybiAtRUlOVkFMOwogCi0Jc3RhdHVzID0gVklBX1JFQUQoVklBX1JFR19JTlRFUlJVUFQpOwotCVZJQV9XUklURShWSUFfUkVHX0lOVEVSUlVQVCwgc3RhdHVzIHwgVklBX0lSUV9HTE9CQUwKKwlzdGF0dXMgPSB2aWFfcmVhZChkZXZfcHJpdiwgVklBX1JFR19JTlRFUlJVUFQpOworCXZpYV93cml0ZShkZXZfcHJpdiwgVklBX1JFR19JTlRFUlJVUFQsIHN0YXR1cyB8IFZJQV9JUlFfR0xPQkFMCiAJCSAgfCBkZXZfcHJpdi0+aXJxX2VuYWJsZV9tYXNrKTsKIAogCS8qIFNvbWUgbWFnaWMsIG9oIGZvciBzb21lIGRhdGEgc2hlZXRzICEgKi8KLQlWSUFfV1JJVEU4KDB4ODNkNCwgMHgxMSk7Ci0JVklBX1dSSVRFOCgweDgzZDUsIFZJQV9SRUFEOCgweDgzZDUpIHwgMHgzMCk7CisJdmlhX3dyaXRlOChkZXZfcHJpdiwgMHg4M2Q0LCAweDExKTsKKwl2aWFfd3JpdGU4X21hc2soZGV2X3ByaXYsIDB4ODNkNSwgMHgzMCwgMHgzMCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTMzMSwxMSArMzMzLDExIEBAIHZvaWQgdmlhX2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkJLyogU29tZSBtb3JlIG1hZ2ljLCBvaCBmb3Igc29tZSBkYXRhIHNoZWV0cyAhICovCiAKLQkJVklBX1dSSVRFOCgweDgzZDQsIDB4MTEpOwotCQlWSUFfV1JJVEU4KDB4ODNkNSwgVklBX1JFQUQ4KDB4ODNkNSkgJiB+MHgzMCk7CisJCXZpYV93cml0ZTgoZGV2X3ByaXYsIDB4ODNkNCwgMHgxMSk7CisJCXZpYV93cml0ZThfbWFzayhkZXZfcHJpdiwgMHg4M2Q1LCAweDMwLCAwKTsKIAotCQlzdGF0dXMgPSBWSUFfUkVBRChWSUFfUkVHX0lOVEVSUlVQVCk7Ci0JCVZJQV9XUklURShWSUFfUkVHX0lOVEVSUlVQVCwgc3RhdHVzICYKKwkJc3RhdHVzID0gdmlhX3JlYWQoZGV2X3ByaXYsIFZJQV9SRUdfSU5URVJSVVBUKTsKKwkJdmlhX3dyaXRlKGRldl9wcml2LCBWSUFfUkVHX0lOVEVSUlVQVCwgc3RhdHVzICYKIAkJCSAgfihWSUFfSVJRX1ZCTEFOS19FTkFCTEUgfCBkZXZfcHJpdi0+aXJxX2VuYWJsZV9tYXNrKSk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfbWFwLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tYXAuYwppbmRleCAyYWQ4NjU4Li40MzFjMTUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tYXAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tYXAuYwpAQCAtMjEsOCArMjEsMTIgQEAKICAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgogICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgogICovCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wY2kuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogI2luY2x1ZGUgPGRybS92aWFfZHJtLmg+CisKICNpbmNsdWRlICJ2aWFfZHJ2LmgiCiAKIHN0YXRpYyBpbnQgdmlhX2RvX2luaXRfbWFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGRybV92aWFfaW5pdF90ICppbml0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfbW0uYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX21tLmMKaW5kZXggNDIxN2Q2Ni4uNDVjYzllOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfbW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tbS5jCkBAIC0yNSw4ICsyNSwxMyBAQAogICogQXV0aG9yczogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy1hdC10dW5nc3RlbmdyYXBoaWNzLWRvdC1jb20+CiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgogI2luY2x1ZGUgPGRybS92aWFfZHJtLmg+CisKICNpbmNsdWRlICJ2aWFfZHJ2LmgiCiAKICNkZWZpbmUgVklBX01NX0FMSUdOX1NISUZUIDQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZlcmlmaWVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92ZXJpZmllci5jCmluZGV4IGZiMjYwOTQuLjhkODEzNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZlcmlmaWVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfdmVyaWZpZXIuYwpAQCAtMjgsMTMgKzI4LDEzIEBACiAgKiBiZSB2ZXJ5IHNsb3cuCiAgKi8KIAotI2luY2x1ZGUgInZpYV8zZF9yZWcuaCIKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS92aWFfZHJtLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2xlZ2FjeS5oPgotI2luY2x1ZGUgInZpYV92ZXJpZmllci5oIgorI2luY2x1ZGUgPGRybS92aWFfZHJtLmg+CisKKyNpbmNsdWRlICJ2aWFfM2RfcmVnLmgiCiAjaW5jbHVkZSAidmlhX2Rydi5oIgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgInZpYV92ZXJpZmllci5oIgogCiB0eXBlZGVmIGVudW0gewogCXN0YXRlX2NvbW1hbmQsCkBAIC03MjUsMTQgKzcyNSwxNCBAQCB2aWFfcGFyc2VfaGVhZGVyMihkcm1fdmlhX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHVpbnQzMl90IGNvbnN0ICoqYnVmZmVyLAogCW5leHRfZmlyZSA9IGRldl9wcml2LT5maXJlX29mZnNldHNbKmZpcmVfY291bnRdOwogCWJ1ZisrOwogCWNtZCA9ICgqYnVmICYgMHhGRkZGMDAwMCkgPj4gMTY7Ci0JVklBX1dSSVRFKEhDX1JFR19UUkFOU19TRVQgKyBIQ19SRUdfQkFTRSwgKmJ1ZisrKTsKKwl2aWFfd3JpdGUoZGV2X3ByaXYsIEhDX1JFR19UUkFOU19TRVQgKyBIQ19SRUdfQkFTRSwgKmJ1ZisrKTsKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgSENfUGFyYVR5cGVfQ21kVmRhdGE6CiAJCXdoaWxlICgoYnVmIDwgYnVmX2VuZCkgJiYKIAkJICAgICAgICgqZmlyZV9jb3VudCA8IGRldl9wcml2LT5udW1fZmlyZV9vZmZzZXRzKSAmJgogCQkgICAgICAgKCpidWYgJiBIQ19BQ01EX01BU0spID09IEhDX0FDTURfSENtZEIpIHsKIAkJCXdoaWxlIChidWYgPD0gbmV4dF9maXJlKSB7Ci0JCQkJVklBX1dSSVRFKEhDX1JFR19UUkFOU19TUEFDRSArIEhDX1JFR19CQVNFICsKKwkJCQl2aWFfd3JpdGUoZGV2X3ByaXYsIEhDX1JFR19UUkFOU19TUEFDRSArIEhDX1JFR19CQVNFICsKIAkJCQkJICAoYnVyc3QgJiA2MyksICpidWYrKyk7CiAJCQkJYnVyc3QgKz0gNDsKIAkJCX0KQEAgLTc1Myw3ICs3NTMsNyBAQCB2aWFfcGFyc2VfaGVhZGVyMihkcm1fdmlhX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHVpbnQzMl90IGNvbnN0ICoqYnVmZmVyLAogCQkJICAgICgqYnVmICYgVklBX1ZJREVPTUFTSykgPT0gVklBX1ZJREVPX0hFQURFUjYpCiAJCQkJYnJlYWs7CiAKLQkJCVZJQV9XUklURShIQ19SRUdfVFJBTlNfU1BBQ0UgKyBIQ19SRUdfQkFTRSArCisJCQl2aWFfd3JpdGUoZGV2X3ByaXYsIEhDX1JFR19UUkFOU19TUEFDRSArIEhDX1JFR19CQVNFICsKIAkJCQkgIChidXJzdCAmIDYzKSwgKmJ1ZisrKTsKIAkJCWJ1cnN0ICs9IDQ7CiAJCX0KQEAgLTg0Myw3ICs4NDMsNyBAQCB2aWFfcGFyc2VfaGVhZGVyMShkcm1fdmlhX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHVpbnQzMl90IGNvbnN0ICoqYnVmZmVyLAogCQljbWQgPSAqYnVmOwogCQlpZiAoKGNtZCAmIEhBTENZT05fSEVBREVSMU1BU0spICE9IEhBTENZT05fSEVBREVSMSkKIAkJCWJyZWFrOwotCQlWSUFfV1JJVEUoKGNtZCAmIH5IQUxDWU9OX0hFQURFUjFNQVNLKSA8PCAyLCAqKytidWYpOworCQl2aWFfd3JpdGUoZGV2X3ByaXYsIChjbWQgJiB+SEFMQ1lPTl9IRUFERVIxTUFTSykgPDwgMiwgKisrYnVmKTsKIAkJYnVmKys7CiAJfQogCSpidWZmZXIgPSBidWY7CkBAIC04OTQsNyArODk0LDcgQEAgdmlhX3BhcnNlX3ZoZWFkZXI1KGRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdiwgdWludDMyX3QgY29uc3QgKipidWZmZXIsCiAJaSA9IGNvdW50ID0gKmJ1ZjsKIAlidWYgKz0gMzsKIAl3aGlsZSAoaS0tKQotCQlWSUFfV1JJVEUoYWRkciwgKmJ1ZisrKTsKKwkJdmlhX3dyaXRlKGRldl9wcml2LCBhZGRyLCAqYnVmKyspOwogCWlmIChjb3VudCAmIDMpCiAJCWJ1ZiArPSA0IC0gKGNvdW50ICYgMyk7CiAJKmJ1ZmZlciA9IGJ1ZjsKQEAgLTk1MCw3ICs5NTAsNyBAQCB2aWFfcGFyc2VfdmhlYWRlcjYoZHJtX3ZpYV9wcml2YXRlX3QgKmRldl9wcml2LCB1aW50MzJfdCBjb25zdCAqKmJ1ZmZlciwKIAlidWYgKz0gMzsKIAl3aGlsZSAoaS0tKSB7CiAJCWFkZHIgPSAqYnVmKys7Ci0JCVZJQV9XUklURShhZGRyLCAqYnVmKyspOworCQl2aWFfd3JpdGUoZGV2X3ByaXYsIGFkZHIsICpidWYrKyk7CiAJfQogCWNvdW50IDw8PSAxOwogCWlmIChjb3VudCAmIDMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92aWRlby5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfdmlkZW8uYwppbmRleCBhOWZmYmFkLi41M2IxZjU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92aWRlby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZpZGVvLmMKQEAgLTI1LDggKzI1LDkgQEAKICAqIFZpZGVvIGFuZCBYdk1DIHJlbGF0ZWQgZnVuY3Rpb25zLgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8ZHJtL3ZpYV9kcm0uaD4KKwogI2luY2x1ZGUgInZpYV9kcnYuaCIKIAogdm9pZCB2aWFfaW5pdF9mdXRleChkcm1fdmlhX3ByaXZhdGVfdCAqZGV2X3ByaXYpCkBAIC04Miw3ICs4Myw3IEBAIGludCB2aWFfZGVjb2Rlcl9mdXRleChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfCiAKIAlzd2l0Y2ggKGZ4LT5mdW5jKSB7CiAJY2FzZSBWSUFfRlVURVhfV0FJVDoKLQkJRFJNX1dBSVRfT04ocmV0LCBkZXZfcHJpdi0+ZGVjb2Rlcl9xdWV1ZVtmeC0+bG9ja10sCisJCVZJQV9XQUlUX09OKHJldCwgZGV2X3ByaXYtPmRlY29kZXJfcXVldWVbZngtPmxvY2tdLAogCQkJICAgIChmeC0+bXMgLyAxMCkgKiAoSFogLyAxMDApLCAqbG9jayAhPSBmeC0+dmFsKTsKIAkJcmV0dXJuIHJldDsKIAljYXNlIFZJQV9GVVRFWF9XQUtFOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kZWJ1Z2ZzLmMKaW5kZXggZWQwZmNkYS4uNTE1NmU2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZGVidWdmcy5jCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CiAKICNpbmNsdWRlICJ2aXJ0Z3B1X2Rydi5oIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rpc3BsYXkuYwppbmRleCBiYTE2ZThjLi5lNjIyNDg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kaXNwbGF5LmMKQEAgLTI1LDExICsyNSwxNCBAQAogICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgogICovCiAKLSNpbmNsdWRlICJ2aXJ0Z3B1X2Rydi5oIgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorCisjaW5jbHVkZSAidmlydGdwdV9kcnYuaCIKIAogI2RlZmluZSBYUkVTX01JTiAgICAzMgogI2RlZmluZSBZUkVTX01JTiAgICAzMgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5jCmluZGV4IGM1MDg2ODcuLjBmYzMyZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZHJ2LmMKQEAgLTI5LDEwICsyOSwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorCiAjaW5jbHVkZSA8ZHJtL2RybS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CiAKICNpbmNsdWRlICJ2aXJ0Z3B1X2Rydi5oIgorCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyOwogCiBzdGF0aWMgaW50IHZpcnRpb19ncHVfbW9kZXNldCA9IC0xOwpAQCAtMTk1LDcgKzE5OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHZpcnRpb19ncHVfZHJpdmVyX2ZvcHMgPSB7CiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfUFJJTUUgfCBEUklWRVJfUkVOREVSIHwgRFJJVkVSX0FUT01JQywKKwkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX1JFTkRFUiB8IERSSVZFUl9BVE9NSUMsCiAJLm9wZW4gPSB2aXJ0aW9fZ3B1X2RyaXZlcl9vcGVuLAogCS5wb3N0Y2xvc2UgPSB2aXJ0aW9fZ3B1X2RyaXZlcl9wb3N0Y2xvc2UsCiAKQEAgLTIwNyw4ICsyMTAsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewogI2VuZGlmCiAJLnByaW1lX2hhbmRsZV90b19mZCA9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUgPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKLQkuZ2VtX3ByaW1lX2V4cG9ydCA9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAotCS5nZW1fcHJpbWVfaW1wb3J0ID0gZHJtX2dlbV9wcmltZV9pbXBvcnQsCiAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUgPSB2aXJ0Z3B1X2dlbV9wcmltZV9nZXRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgPSB2aXJ0Z3B1X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCiAJLmdlbV9wcmltZV92bWFwID0gdmlydGdwdV9nZW1fcHJpbWVfdm1hcCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaAppbmRleCA5ZTJkMzA2Li5lMjg4Mjk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5oCkBAIC0zMSwxNiArMzEsMTYgQEAKICNpbmNsdWRlIDxsaW51eC92aXJ0aW9fY29uZmlnLmg+CiAjaW5jbHVkZSA8bGludXgvdmlydGlvX2dwdS5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgorI2luY2x1ZGUgPGRybS9kcm1faW9jdGwuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX21vZHVsZS5oPgorI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgogCiAjZGVmaW5lIERSSVZFUl9OQU1FICJ2aXJ0aW9fZ3B1IgogI2RlZmluZSBEUklWRVJfREVTQyAidmlydGlvIEdQVSIKQEAgLTM5Niw3ICszOTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdmlydGlvX2dwdV9vYmplY3RfdW5yZWYoc3RydWN0IHZpcnRpb19ncHVfb2JqZWN0ICoqYm8pCiAKIHN0YXRpYyBpbmxpbmUgdTY0IHZpcnRpb19ncHVfb2JqZWN0X21tYXBfb2Zmc2V0KHN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCAqYm8pCiB7Ci0JcmV0dXJuIGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmYm8tPnRiby52bWFfbm9kZSk7CisJcmV0dXJuIGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmYm8tPnRiby5iYXNlLnZtYV9ub2RlKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgdmlydGlvX2dwdV9vYmplY3RfcmVzZXJ2ZShzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKmJvLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmVuY2UuYwppbmRleCA3MGQ2YzQzLi5hMDUxNGY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmVuY2UuYwpAQCAtMjMsOCArMjMsOCBAQAogICogV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oPgorCiAjaW5jbHVkZSAidmlydGdwdV9kcnYuaCIKIAogc3RhdGljIGNvbnN0IGNoYXIgKnZpcnRpb19nZXRfZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9nZW0uYwppbmRleCAxZTQ5ZTA4Li4yOTI1NjYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2dlbS5jCkBAIC0yMyw3ICsyMyw5IEBACiAgKiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorCiAjaW5jbHVkZSAidmlydGdwdV9kcnYuaCIKIAogdm9pZCB2aXJ0aW9fZ3B1X2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmopCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfaW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jCmluZGV4IGFjNjBiZTkuLjBhODhlZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jCkBAIC0yNSwxMSArMjUsMTMgQEAKICAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vdmlydGdwdV9kcm0uaD4KLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuaD4KKyNpbmNsdWRlIDxsaW51eC9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc3luY19maWxlLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuaD4KKyNpbmNsdWRlIDxkcm0vdmlydGdwdV9kcm0uaD4KKwogI2luY2x1ZGUgInZpcnRncHVfZHJ2LmgiCiAKIHN0YXRpYyB2b2lkIGNvbnZlcnRfdG9faHdfYm94KHN0cnVjdCB2aXJ0aW9fZ3B1X2JveCAqZHN0LApAQCAtMzk0LDcgKzM5Niw3IEBAIHN0YXRpYyBpbnQgdmlydGlvX2dwdV90cmFuc2Zlcl9mcm9tX2hvc3RfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJKHZnZGV2LCBxb2JqLT5od19yZXNfaGFuZGxlLAogCQkgdmZwcml2LT5jdHhfaWQsIG9mZnNldCwgYXJncy0+bGV2ZWwsCiAJCSAmYm94LCBmZW5jZSk7Ci0JcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHFvYmotPnRiby5yZXN2LAorCWRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKHFvYmotPnRiby5iYXNlLnJlc3YsCiAJCQkJCSAgJmZlbmNlLT5mKTsKIAogCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5mKTsKQEAgLTQ0OCw3ICs0NTAsNyBAQCBzdGF0aWMgaW50IHZpcnRpb19ncHVfdHJhbnNmZXJfdG9faG9zdF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJKHZnZGV2LCBxb2JqLAogCQkJIHZmcHJpdiA/IHZmcHJpdi0+Y3R4X2lkIDogMCwgb2Zmc2V0LAogCQkJIGFyZ3MtPmxldmVsLCAmYm94LCBmZW5jZSk7Ci0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShxb2JqLT50Ym8ucmVzdiwKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2UocW9iai0+dGJvLmJhc2UucmVzdiwKIAkJCQkJCSAgJmZlbmNlLT5mKTsKIAkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmYpOwogCX0KQEAgLTU1MywzNCArNTU1LDM0IEBAIHN0YXRpYyBpbnQgdmlydGlvX2dwdV9nZXRfY2Fwc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgdmlydGlvX2dwdV9pb2N0bHNbRFJNX1ZJUlRJT19OVU1fSU9DVExTXSA9IHsKIAlEUk1fSU9DVExfREVGX0RSVihWSVJUR1BVX01BUCwgdmlydGlvX2dwdV9tYXBfaW9jdGwsCi0JCQkgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCiAJRFJNX0lPQ1RMX0RFRl9EUlYoVklSVEdQVV9FWEVDQlVGRkVSLCB2aXJ0aW9fZ3B1X2V4ZWNidWZmZXJfaW9jdGwsCi0JCQkgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCiAJRFJNX0lPQ1RMX0RFRl9EUlYoVklSVEdQVV9HRVRQQVJBTSwgdmlydGlvX2dwdV9nZXRwYXJhbV9pb2N0bCwKLQkJCSAgRFJNX0FVVEggfCBEUk1fUkVOREVSX0FMTE9XKSwKKwkJCSAgRFJNX1JFTkRFUl9BTExPVyksCiAKIAlEUk1fSU9DVExfREVGX0RSVihWSVJUR1BVX1JFU09VUkNFX0NSRUFURSwKIAkJCSAgdmlydGlvX2dwdV9yZXNvdXJjZV9jcmVhdGVfaW9jdGwsCi0JCQkgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCiAJRFJNX0lPQ1RMX0RFRl9EUlYoVklSVEdQVV9SRVNPVVJDRV9JTkZPLCB2aXJ0aW9fZ3B1X3Jlc291cmNlX2luZm9faW9jdGwsCi0JCQkgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCiAJLyogbWFrZSB0cmFuc2ZlciBhc3luYyB0byB0aGUgbWFpbiByaW5nPyAtIG5vIHN1cmUsIGNhbiB3ZQogCSAqIHRocmVhZCB0aGVzZSBpbiB0aGUgdW5kZXJseWluZyBHTAogCSAqLwogCURSTV9JT0NUTF9ERUZfRFJWKFZJUlRHUFVfVFJBTlNGRVJfRlJPTV9IT1NULAogCQkJICB2aXJ0aW9fZ3B1X3RyYW5zZmVyX2Zyb21faG9zdF9pb2N0bCwKLQkJCSAgRFJNX0FVVEggfCBEUk1fUkVOREVSX0FMTE9XKSwKKwkJCSAgRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoVklSVEdQVV9UUkFOU0ZFUl9UT19IT1NULAogCQkJICB2aXJ0aW9fZ3B1X3RyYW5zZmVyX3RvX2hvc3RfaW9jdGwsCi0JCQkgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCiAJRFJNX0lPQ1RMX0RFRl9EUlYoVklSVEdQVV9XQUlULCB2aXJ0aW9fZ3B1X3dhaXRfaW9jdGwsCi0JCQkgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCisJCQkgIERSTV9SRU5ERVJfQUxMT1cpLAogCiAJRFJNX0lPQ1RMX0RFRl9EUlYoVklSVEdQVV9HRVRfQ0FQUywgdmlydGlvX2dwdV9nZXRfY2Fwc19pb2N0bCwKLQkJCSAgRFJNX0FVVEggfCBEUk1fUkVOREVSX0FMTE9XKSwKKwkJCSAgRFJNX1JFTkRFUl9BTExPVyksCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ttcy5jCmluZGV4IDg0YjZhNmIuLmMxOTA3MDJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ttcy5jCkBAIC0yNSw3ICsyNSw5IEBACiAKICNpbmNsdWRlIDxsaW51eC92aXJ0aW8uaD4KICNpbmNsdWRlIDxsaW51eC92aXJ0aW9fY29uZmlnLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorCiAjaW5jbHVkZSAidmlydGdwdV9kcnYuaCIKIAogc3RhdGljIHZvaWQgdmlydGlvX2dwdV9jb25maWdfY2hhbmdlZF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcGxhbmUuYwppbmRleCAwMjRjMmFhLi5hNDkyYWMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcGxhbmUuYwpAQCAtMjMsOSArMjMsMTEgQEAKICAqIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgogICovCiAKLSNpbmNsdWRlICJ2aXJ0Z3B1X2Rydi5oIgotI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorCisjaW5jbHVkZSAidmlydGdwdV9kcnYuaCIKIAogc3RhdGljIGNvbnN0IHVpbnQzMl90IHZpcnRpb19ncHVfZm9ybWF0c1tdID0gewogCURSTV9GT1JNQVRfSE9TVF9YUkdCODg4OCwKQEAgLTIxMCw3ICsyMTIsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fZ3B1X2N1cnNvcl9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgMCwgMCwgdmdmYi0+ZmVuY2UpOwogCQlyZXQgPSB2aXJ0aW9fZ3B1X29iamVjdF9yZXNlcnZlKGJvLCBmYWxzZSk7CiAJCWlmICghcmV0KSB7Ci0JCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPnRiby5yZXN2LAorCQkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2UoYm8tPnRiby5iYXNlLnJlc3YsCiAJCQkJCQkJICAmdmdmYi0+ZmVuY2UtPmYpOwogCQkJZG1hX2ZlbmNlX3B1dCgmdmdmYi0+ZmVuY2UtPmYpOwogCQkJdmdmYi0+ZmVuY2UgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcHJpbWUuYwppbmRleCA4ZmJmNzFiLi5kYzY0MmE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcHJpbWUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcHJpbWUuYwpAQCAtMjIsNiArMjIsOCBAQAogICogQXV0aG9yczogQW5kcmVhcyBQb2tvcm55CiAgKi8KIAorI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4KKwogI2luY2x1ZGUgInZpcnRncHVfZHJ2LmgiCiAKIC8qIEVtcHR5IEltcGxlbWVudGF0aW9ucyBhcyB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBvdGhlciBkcml2ZXIgZm9yIGEgdmlydHVhbApAQCAtNjYsOCArNjgsNSBAQCB2b2lkIHZpcnRncHVfZ2VtX3ByaW1lX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgdm9pZCAqdmFkZHIpCiBpbnQgdmlydGdwdV9nZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIAkJCSAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogewotCXN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCAqYm8gPSBnZW1fdG9fdmlydGlvX2dwdV9vYmoob2JqKTsKLQotCWJvLT5nZW1fYmFzZS52bWFfbm9kZS52bV9ub2RlLnN0YXJ0ID0gYm8tPnRiby52bWFfbm9kZS52bV9ub2RlLnN0YXJ0OwogCXJldHVybiBkcm1fZ2VtX3ByaW1lX21tYXAob2JqLCB2bWEpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jCmluZGV4IDMwMGVmM2EuLmY4NzkwMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfdHRtLmMKQEAgLTI1LDE3ICsyNSwxOCBAQAogICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BhZ2VfYWxsb2MuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9tb2R1bGUuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm0uaD4KKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmg+CisjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+CiAjaW5jbHVkZSA8ZHJtL3ZpcnRncHVfZHJtLmg+Ci0jaW5jbHVkZSAidmlydGdwdV9kcnYuaCIKIAotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSAidmlydGdwdV9kcnYuaCIKIAogc3RhdGljIHN0cnVjdAogdmlydGlvX2dwdV9kZXZpY2UgKnZpcnRpb19ncHVfZ2V0X3ZnZGV2KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3ZxLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfdnEuYwppbmRleCA5ODFlZTE2Li43YWMyMDQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfdnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfdnEuYwpAQCAtMjYsMTMgKzI2LDE0IEBACiAgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCiAgKi8KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSAidmlydGdwdV9kcnYuaCIKLSNpbmNsdWRlICJ2aXJ0Z3B1X3RyYWNlLmgiCisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC92aXJ0aW8uaD4KICNpbmNsdWRlIDxsaW51eC92aXJ0aW9fY29uZmlnLmg+CiAjaW5jbHVkZSA8bGludXgvdmlydGlvX3JpbmcuaD4KIAorI2luY2x1ZGUgInZpcnRncHVfZHJ2LmgiCisjaW5jbHVkZSAidmlydGdwdV90cmFjZS5oIgorCiAjZGVmaW5lIE1BWF9JTkxJTkVfQ01EX1NJWkUgICA5NgogI2RlZmluZSBNQVhfSU5MSU5FX1JFU1BfU0laRSAgMjQKICNkZWZpbmUgVkJVRkZFUl9TSVpFICAgICAgICAgIChzaXplb2Yoc3RydWN0IHZpcnRpb19ncHVfdmJ1ZmZlcikgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZQppbmRleCA4OWYwOWJlLi4wYjc2N2Q3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZQpAQCAtMSw0ICsxLDQgQEAKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotdmttcy15IDo9IHZrbXNfZHJ2Lm8gdmttc19wbGFuZS5vIHZrbXNfb3V0cHV0Lm8gdmttc19jcnRjLm8gdmttc19nZW0ubyB2a21zX2NyYy5vCit2a21zLXkgOj0gdmttc19kcnYubyB2a21zX3BsYW5lLm8gdmttc19vdXRwdXQubyB2a21zX2NydGMubyB2a21zX2dlbS5vIHZrbXNfY29tcG9zZXIubwogCiBvYmotJChDT05GSUdfRFJNX1ZLTVMpICs9IHZrbXMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jb21wb3Nlci5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jb21wb3Nlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1NTg1NjkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NvbXBvc2VyLmMKQEAgLTAsMCArMSwyNDkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworCisjaW5jbHVkZSA8bGludXgvY3JjMzIuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKworI2luY2x1ZGUgInZrbXNfZHJ2LmgiCisKKy8qKgorICogY29tcHV0ZV9jcmMgLSBDb21wdXRlIENSQyB2YWx1ZSBvbiBvdXRwdXQgZnJhbWUKKyAqCisgKiBAdmFkZHJfb3V0OiBhZGRyZXNzIHRvIGZpbmFsIGZyYW1lYnVmZmVyCisgKiBAY29tcG9zZXI6IGZyYW1lYnVmZmVyJ3MgbWV0YWRhdGEKKyAqCisgKiByZXR1cm5zIENSQyB2YWx1ZSBjb21wdXRlZCB1c2luZyBjcmMzMiBvbiB0aGUgdmlzaWJsZSBwb3J0aW9uIG9mCisgKiB0aGUgZmluYWwgZnJhbWVidWZmZXIgYXQgdmFkZHJfb3V0CisgKi8KK3N0YXRpYyB1aW50MzJfdCBjb21wdXRlX2NyYyh2b2lkICp2YWRkcl9vdXQsIHN0cnVjdCB2a21zX2NvbXBvc2VyICpjb21wb3NlcikKK3sKKwlpbnQgaSwgaiwgc3JjX29mZnNldDsKKwlpbnQgeF9zcmMgPSBjb21wb3Nlci0+c3JjLngxID4+IDE2OworCWludCB5X3NyYyA9IGNvbXBvc2VyLT5zcmMueTEgPj4gMTY7CisJaW50IGhfc3JjID0gZHJtX3JlY3RfaGVpZ2h0KCZjb21wb3Nlci0+c3JjKSA+PiAxNjsKKwlpbnQgd19zcmMgPSBkcm1fcmVjdF93aWR0aCgmY29tcG9zZXItPnNyYykgPj4gMTY7CisJdTMyIGNyYyA9IDA7CisKKwlmb3IgKGkgPSB5X3NyYzsgaSA8IHlfc3JjICsgaF9zcmM7ICsraSkgeworCQlmb3IgKGogPSB4X3NyYzsgaiA8IHhfc3JjICsgd19zcmM7ICsraikgeworCQkJc3JjX29mZnNldCA9IGNvbXBvc2VyLT5vZmZzZXQKKwkJCQkgICAgICsgKGkgKiBjb21wb3Nlci0+cGl0Y2gpCisJCQkJICAgICArIChqICogY29tcG9zZXItPmNwcCk7CisJCQkvKiBYUkdCIGZvcm1hdCBpZ25vcmVzIEFscGhhIGNoYW5uZWwgKi8KKwkJCW1lbXNldCh2YWRkcl9vdXQgKyBzcmNfb2Zmc2V0ICsgMjQsIDAsICA4KTsKKwkJCWNyYyA9IGNyYzMyX2xlKGNyYywgdmFkZHJfb3V0ICsgc3JjX29mZnNldCwKKwkJCQkgICAgICAgc2l6ZW9mKHUzMikpOworCQl9CisJfQorCisJcmV0dXJuIGNyYzsKK30KKworLyoqCisgKiBibGVuZCAtIGJlbG5kIHZhbHVlIGF0IHZhZGRyX3NyYyB3aXRoIHZhbHVlIGF0IHZhZGRyX2RzdAorICogQHZhZGRyX2RzdDogZGVzdGluYXRpb24gYWRkcmVzcworICogQHZhZGRyX3NyYzogc291cmNlIGFkZHJlc3MKKyAqIEBkZXN0X2NvbXBvc2VyOiBkZXN0aW5hdGlvbiBmcmFtZWJ1ZmZlcidzIG1ldGFkYXRhCisgKiBAc3JjX2NvbXBvc2VyOiBzb3VyY2UgZnJhbWVidWZmZXIncyBtZXRhZGF0YQorICoKKyAqIEJsZW5kIHZhbHVlIGF0IHZhZGRyX3NyYyB3aXRoIHZhbHVlIGF0IHZhZGRyX2RzdC4KKyAqIEN1cnJlbnRseSwgdGhpcyBmdW5jdGlvbiB3cml0ZSB2YWx1ZSBhdCB2YWRkcl9zcmMgb24gdmFsdWUKKyAqIGF0IHZhZGRyX2RzdCB1c2luZyBidWZmZXIncyBtZXRhZGF0YSB0byBsb2NhdGUgdGhlIG5ldyB2YWx1ZXMKKyAqIGZyb20gdmFkZHJfc3JjIGFuZCB0aGVpciBkaXN0ZW5hdGlvbiBhdCB2YWRkcl9kc3QuCisgKgorICogVG9kbzogVXNlIHRoZSBhbHBoYSB2YWx1ZSB0byBibGVuZCB2YWRkcl9zcmMgd2l0aCB2YWRkcl9kc3QKKyAqCSBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIGl0LgorICovCitzdGF0aWMgdm9pZCBibGVuZCh2b2lkICp2YWRkcl9kc3QsIHZvaWQgKnZhZGRyX3NyYywKKwkJICBzdHJ1Y3Qgdmttc19jb21wb3NlciAqZGVzdF9jb21wb3NlciwKKwkJICBzdHJ1Y3Qgdmttc19jb21wb3NlciAqc3JjX2NvbXBvc2VyKQoreworCWludCBpLCBqLCBqX2RzdCwgaV9kc3Q7CisJaW50IG9mZnNldF9zcmMsIG9mZnNldF9kc3Q7CisKKwlpbnQgeF9zcmMgPSBzcmNfY29tcG9zZXItPnNyYy54MSA+PiAxNjsKKwlpbnQgeV9zcmMgPSBzcmNfY29tcG9zZXItPnNyYy55MSA+PiAxNjsKKworCWludCB4X2RzdCA9IHNyY19jb21wb3Nlci0+ZHN0LngxOworCWludCB5X2RzdCA9IHNyY19jb21wb3Nlci0+ZHN0LnkxOworCWludCBoX2RzdCA9IGRybV9yZWN0X2hlaWdodCgmc3JjX2NvbXBvc2VyLT5kc3QpOworCWludCB3X2RzdCA9IGRybV9yZWN0X3dpZHRoKCZzcmNfY29tcG9zZXItPmRzdCk7CisKKwlpbnQgeV9saW1pdCA9IHlfc3JjICsgaF9kc3Q7CisJaW50IHhfbGltaXQgPSB4X3NyYyArIHdfZHN0OworCisJZm9yIChpID0geV9zcmMsIGlfZHN0ID0geV9kc3Q7IGkgPCB5X2xpbWl0OyArK2kpIHsKKwkJZm9yIChqID0geF9zcmMsIGpfZHN0ID0geF9kc3Q7IGogPCB4X2xpbWl0OyArK2opIHsKKwkJCW9mZnNldF9kc3QgPSBkZXN0X2NvbXBvc2VyLT5vZmZzZXQKKwkJCQkgICAgICsgKGlfZHN0ICogZGVzdF9jb21wb3Nlci0+cGl0Y2gpCisJCQkJICAgICArIChqX2RzdCsrICogZGVzdF9jb21wb3Nlci0+Y3BwKTsKKwkJCW9mZnNldF9zcmMgPSBzcmNfY29tcG9zZXItPm9mZnNldAorCQkJCSAgICAgKyAoaSAqIHNyY19jb21wb3Nlci0+cGl0Y2gpCisJCQkJICAgICArIChqICogc3JjX2NvbXBvc2VyLT5jcHApOworCisJCQltZW1jcHkodmFkZHJfZHN0ICsgb2Zmc2V0X2RzdCwKKwkJCSAgICAgICB2YWRkcl9zcmMgKyBvZmZzZXRfc3JjLCBzaXplb2YodTMyKSk7CisJCX0KKwkJaV9kc3QrKzsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGNvbXBvc2VfY3Vyc29yKHN0cnVjdCB2a21zX2NvbXBvc2VyICpjdXJzb3JfY29tcG9zZXIsCisJCQkgICBzdHJ1Y3Qgdmttc19jb21wb3NlciAqcHJpbWFyeV9jb21wb3NlciwKKwkJCSAgIHZvaWQgKnZhZGRyX291dCkKK3sKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmN1cnNvcl9vYmo7CisJc3RydWN0IHZrbXNfZ2VtX29iamVjdCAqY3Vyc29yX3ZrbXNfb2JqOworCisJY3Vyc29yX29iaiA9IGRybV9nZW1fZmJfZ2V0X29iaigmY3Vyc29yX2NvbXBvc2VyLT5mYiwgMCk7CisJY3Vyc29yX3ZrbXNfb2JqID0gZHJtX2dlbV90b192a21zX2dlbShjdXJzb3Jfb2JqKTsKKworCWlmIChXQVJOX09OKCFjdXJzb3Jfdmttc19vYmotPnZhZGRyKSkKKwkJcmV0dXJuOworCisJYmxlbmQodmFkZHJfb3V0LCBjdXJzb3Jfdmttc19vYmotPnZhZGRyLAorCSAgICAgIHByaW1hcnlfY29tcG9zZXIsIGN1cnNvcl9jb21wb3Nlcik7Cit9CisKK3N0YXRpYyB1aW50MzJfdCBfdmttc19nZXRfY3JjKHN0cnVjdCB2a21zX2NvbXBvc2VyICpwcmltYXJ5X2NvbXBvc2VyLAorCQkJICAgICAgc3RydWN0IHZrbXNfY29tcG9zZXIgKmN1cnNvcl9jb21wb3NlcikKK3sKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9ICZwcmltYXJ5X2NvbXBvc2VyLT5mYjsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmogPSBkcm1fZ2VtX2ZiX2dldF9vYmooZmIsIDApOworCXN0cnVjdCB2a21zX2dlbV9vYmplY3QgKnZrbXNfb2JqID0gZHJtX2dlbV90b192a21zX2dlbShnZW1fb2JqKTsKKwl2b2lkICp2YWRkcl9vdXQgPSBremFsbG9jKHZrbXNfb2JqLT5nZW0uc2l6ZSwgR0ZQX0tFUk5FTCk7CisJdTMyIGNyYyA9IDA7CisKKwlpZiAoIXZhZGRyX291dCkgeworCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIG91dHB1dCBmcmFtZS4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKFdBUk5fT04oIXZrbXNfb2JqLT52YWRkcikpIHsKKwkJa2ZyZWUodmFkZHJfb3V0KTsKKwkJcmV0dXJuIGNyYzsKKwl9CisKKwltZW1jcHkodmFkZHJfb3V0LCB2a21zX29iai0+dmFkZHIsIHZrbXNfb2JqLT5nZW0uc2l6ZSk7CisKKwlpZiAoY3Vyc29yX2NvbXBvc2VyKQorCQljb21wb3NlX2N1cnNvcihjdXJzb3JfY29tcG9zZXIsIHByaW1hcnlfY29tcG9zZXIsIHZhZGRyX291dCk7CisKKwljcmMgPSBjb21wdXRlX2NyYyh2YWRkcl9vdXQsIHByaW1hcnlfY29tcG9zZXIpOworCisJa2ZyZWUodmFkZHJfb3V0KTsKKworCXJldHVybiBjcmM7Cit9CisKKy8qKgorICogdmttc19jb21wb3Nlcl93b3JrZXIgLSBvcmRlcmVkIHdvcmtfc3RydWN0IHRvIGNvbXB1dGUgQ1JDCisgKgorICogQHdvcms6IHdvcmtfc3RydWN0CisgKgorICogV29yayBoYW5kbGVyIGZvciBjb21wb3NpbmcgYW5kIGNvbXB1dGluZyBDUkNzLiB3b3JrX3N0cnVjdCBzY2hlZHVsZWQgaW4KKyAqIGFuIG9yZGVyZWQgd29ya3F1ZXVlIHRoYXQncyBwZXJpb2RpY2FsbHkgc2NoZWR1bGVkIHRvIHJ1biBieQorICogX3ZibGFua19oYW5kbGUoKSBhbmQgZmx1c2hlZCBhdCB2a21zX2F0b21pY19jcnRjX2Rlc3Ryb3lfc3RhdGUoKS4KKyAqLwordm9pZCB2a21zX2NvbXBvc2VyX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IGNvbnRhaW5lcl9vZih3b3JrLAorCQkJCQkJc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSwKKwkJCQkJCWNvbXBvc2VyX3dvcmspOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNydGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dCA9IGRybV9jcnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOworCXN0cnVjdCB2a21zX2NvbXBvc2VyICpwcmltYXJ5X2NvbXBvc2VyID0gTlVMTDsKKwlzdHJ1Y3Qgdmttc19jb21wb3NlciAqY3Vyc29yX2NvbXBvc2VyID0gTlVMTDsKKwl1MzIgY3JjMzIgPSAwOworCXU2NCBmcmFtZV9zdGFydCwgZnJhbWVfZW5kOworCWJvb2wgY3JjX3BlbmRpbmc7CisKKwlzcGluX2xvY2tfaXJxKCZvdXQtPmNvbXBvc2VyX2xvY2spOworCWZyYW1lX3N0YXJ0ID0gY3J0Y19zdGF0ZS0+ZnJhbWVfc3RhcnQ7CisJZnJhbWVfZW5kID0gY3J0Y19zdGF0ZS0+ZnJhbWVfZW5kOworCWNyY19wZW5kaW5nID0gY3J0Y19zdGF0ZS0+Y3JjX3BlbmRpbmc7CisJY3J0Y19zdGF0ZS0+ZnJhbWVfc3RhcnQgPSAwOworCWNydGNfc3RhdGUtPmZyYW1lX2VuZCA9IDA7CisJY3J0Y19zdGF0ZS0+Y3JjX3BlbmRpbmcgPSBmYWxzZTsKKwlzcGluX3VubG9ja19pcnEoJm91dC0+Y29tcG9zZXJfbG9jayk7CisKKwkvKgorCSAqIFdlIHJhY2VkIHdpdGggdGhlIHZibGFuayBocnRpbWVyIGFuZCBwcmV2aW91cyB3b3JrIGFscmVhZHkgY29tcHV0ZWQKKwkgKiB0aGUgY3JjLCBub3RoaW5nIHRvIGRvLgorCSAqLworCWlmICghY3JjX3BlbmRpbmcpCisJCXJldHVybjsKKworCWlmIChjcnRjX3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lcyA+PSAxKQorCQlwcmltYXJ5X2NvbXBvc2VyID0gY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lc1swXS0+Y29tcG9zZXI7CisKKwlpZiAoY3J0Y19zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXMgPT0gMikKKwkJY3Vyc29yX2NvbXBvc2VyID0gY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lc1sxXS0+Y29tcG9zZXI7CisKKwlpZiAocHJpbWFyeV9jb21wb3NlcikKKwkJY3JjMzIgPSBfdmttc19nZXRfY3JjKHByaW1hcnlfY29tcG9zZXIsIGN1cnNvcl9jb21wb3Nlcik7CisKKwkvKgorCSAqIFRoZSB3b3JrZXIgY2FuIGZhbGwgYmVoaW5kIHRoZSB2YmxhbmsgaHJ0aW1lciwgbWFrZSBzdXJlIHdlIGNhdGNoIHVwLgorCSAqLworCXdoaWxlIChmcmFtZV9zdGFydCA8PSBmcmFtZV9lbmQpCisJCWRybV9jcnRjX2FkZF9jcmNfZW50cnkoY3J0YywgdHJ1ZSwgZnJhbWVfc3RhcnQrKywgJmNyYzMyKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwaXBlX2NyY19zb3VyY2VzW10gPSB7ImF1dG8ifTsKKworY29uc3QgY2hhciAqY29uc3QgKnZrbXNfZ2V0X2NyY19zb3VyY2VzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkJc2l6ZV90ICpjb3VudCkKK3sKKwkqY291bnQgPSBBUlJBWV9TSVpFKHBpcGVfY3JjX3NvdXJjZXMpOworCXJldHVybiBwaXBlX2NyY19zb3VyY2VzOworfQorCitzdGF0aWMgaW50IHZrbXNfY3JjX3BhcnNlX3NvdXJjZShjb25zdCBjaGFyICpzcmNfbmFtZSwgYm9vbCAqZW5hYmxlZCkKK3sKKwlpbnQgcmV0ID0gMDsKKworCWlmICghc3JjX25hbWUpIHsKKwkJKmVuYWJsZWQgPSBmYWxzZTsKKwl9IGVsc2UgaWYgKHN0cmNtcChzcmNfbmFtZSwgImF1dG8iKSA9PSAwKSB7CisJCSplbmFibGVkID0gdHJ1ZTsKKwl9IGVsc2UgeworCQkqZW5hYmxlZCA9IGZhbHNlOworCQlyZXQgPSAtRUlOVkFMOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK2ludCB2a21zX3ZlcmlmeV9jcmNfc291cmNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgY29uc3QgY2hhciAqc3JjX25hbWUsCisJCQkgICBzaXplX3QgKnZhbHVlc19jbnQpCit7CisJYm9vbCBlbmFibGVkOworCisJaWYgKHZrbXNfY3JjX3BhcnNlX3NvdXJjZShzcmNfbmFtZSwgJmVuYWJsZWQpIDwgMCkgeworCQlEUk1fREVCVUdfRFJJVkVSKCJ1bmtub3duIHNvdXJjZSAlc1xuIiwgc3JjX25hbWUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkqdmFsdWVzX2NudCA9IDE7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHZrbXNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzcmNfbmFtZSkKK3sKKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dCA9IGRybV9jcnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOworCWJvb2wgZW5hYmxlZCA9IGZhbHNlOworCWludCByZXQgPSAwOworCisJcmV0ID0gdmttc19jcmNfcGFyc2Vfc291cmNlKHNyY19uYW1lLCAmZW5hYmxlZCk7CisKKwlzcGluX2xvY2tfaXJxKCZvdXQtPmxvY2spOworCW91dC0+Y29tcG9zZXJfZW5hYmxlZCA9IGVuYWJsZWQ7CisJc3Bpbl91bmxvY2tfaXJxKCZvdXQtPmxvY2spOworCisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjZmZjI1Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyNzIgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCi0KLSNpbmNsdWRlICJ2a21zX2Rydi5oIgotI2luY2x1ZGUgPGxpbnV4L2NyYzMyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KLQotLyoqCi0gKiBjb21wdXRlX2NyYyAtIENvbXB1dGUgQ1JDIHZhbHVlIG9uIG91dHB1dCBmcmFtZQotICoKLSAqIEB2YWRkcl9vdXQ6IGFkZHJlc3MgdG8gZmluYWwgZnJhbWVidWZmZXIKLSAqIEBjcmNfb3V0OiBmcmFtZWJ1ZmZlcidzIG1ldGFkYXRhCi0gKgotICogcmV0dXJucyBDUkMgdmFsdWUgY29tcHV0ZWQgdXNpbmcgY3JjMzIgb24gdGhlIHZpc2libGUgcG9ydGlvbiBvZgotICogdGhlIGZpbmFsIGZyYW1lYnVmZmVyIGF0IHZhZGRyX291dAotICovCi1zdGF0aWMgdWludDMyX3QgY29tcHV0ZV9jcmModm9pZCAqdmFkZHJfb3V0LCBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX291dCkKLXsKLQlpbnQgaSwgaiwgc3JjX29mZnNldDsKLQlpbnQgeF9zcmMgPSBjcmNfb3V0LT5zcmMueDEgPj4gMTY7Ci0JaW50IHlfc3JjID0gY3JjX291dC0+c3JjLnkxID4+IDE2OwotCWludCBoX3NyYyA9IGRybV9yZWN0X2hlaWdodCgmY3JjX291dC0+c3JjKSA+PiAxNjsKLQlpbnQgd19zcmMgPSBkcm1fcmVjdF93aWR0aCgmY3JjX291dC0+c3JjKSA+PiAxNjsKLQl1MzIgY3JjID0gMDsKLQotCWZvciAoaSA9IHlfc3JjOyBpIDwgeV9zcmMgKyBoX3NyYzsgKytpKSB7Ci0JCWZvciAoaiA9IHhfc3JjOyBqIDwgeF9zcmMgKyB3X3NyYzsgKytqKSB7Ci0JCQlzcmNfb2Zmc2V0ID0gY3JjX291dC0+b2Zmc2V0Ci0JCQkJICAgICArIChpICogY3JjX291dC0+cGl0Y2gpCi0JCQkJICAgICArIChqICogY3JjX291dC0+Y3BwKTsKLQkJCS8qIFhSR0IgZm9ybWF0IGlnbm9yZXMgQWxwaGEgY2hhbm5lbCAqLwotCQkJbWVtc2V0KHZhZGRyX291dCArIHNyY19vZmZzZXQgKyAyNCwgMCwgIDgpOwotCQkJY3JjID0gY3JjMzJfbGUoY3JjLCB2YWRkcl9vdXQgKyBzcmNfb2Zmc2V0LAotCQkJCSAgICAgICBzaXplb2YodTMyKSk7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gY3JjOwotfQotCi0vKioKLSAqIGJsZW5kIC0gYmVsbmQgdmFsdWUgYXQgdmFkZHJfc3JjIHdpdGggdmFsdWUgYXQgdmFkZHJfZHN0Ci0gKiBAdmFkZHJfZHN0OiBkZXN0aW5hdGlvbiBhZGRyZXNzCi0gKiBAdmFkZHJfc3JjOiBzb3VyY2UgYWRkcmVzcwotICogQGNyY19kc3Q6IGRlc3RpbmF0aW9uIGZyYW1lYnVmZmVyJ3MgbWV0YWRhdGEKLSAqIEBjcmNfc3JjOiBzb3VyY2UgZnJhbWVidWZmZXIncyBtZXRhZGF0YQotICoKLSAqIEJsZW5kIHZhbHVlIGF0IHZhZGRyX3NyYyB3aXRoIHZhbHVlIGF0IHZhZGRyX2RzdC4KLSAqIEN1cnJlbnRseSwgdGhpcyBmdW5jdGlvbiB3cml0ZSB2YWx1ZSBhdCB2YWRkcl9zcmMgb24gdmFsdWUKLSAqIGF0IHZhZGRyX2RzdCB1c2luZyBidWZmZXIncyBtZXRhZGF0YSB0byBsb2NhdGUgdGhlIG5ldyB2YWx1ZXMKLSAqIGZyb20gdmFkZHJfc3JjIGFuZCB0aGVpciBkaXN0ZW5hdGlvbiBhdCB2YWRkcl9kc3QuCi0gKgotICogVG9kbzogVXNlIHRoZSBhbHBoYSB2YWx1ZSB0byBibGVuZCB2YWRkcl9zcmMgd2l0aCB2YWRkcl9kc3QKLSAqCSBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIGl0LgotICovCi1zdGF0aWMgdm9pZCBibGVuZCh2b2lkICp2YWRkcl9kc3QsIHZvaWQgKnZhZGRyX3NyYywKLQkJICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX2RzdCwKLQkJICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX3NyYykKLXsKLQlpbnQgaSwgaiwgal9kc3QsIGlfZHN0OwotCWludCBvZmZzZXRfc3JjLCBvZmZzZXRfZHN0OwotCi0JaW50IHhfc3JjID0gY3JjX3NyYy0+c3JjLngxID4+IDE2OwotCWludCB5X3NyYyA9IGNyY19zcmMtPnNyYy55MSA+PiAxNjsKLQotCWludCB4X2RzdCA9IGNyY19zcmMtPmRzdC54MTsKLQlpbnQgeV9kc3QgPSBjcmNfc3JjLT5kc3QueTE7Ci0JaW50IGhfZHN0ID0gZHJtX3JlY3RfaGVpZ2h0KCZjcmNfc3JjLT5kc3QpOwotCWludCB3X2RzdCA9IGRybV9yZWN0X3dpZHRoKCZjcmNfc3JjLT5kc3QpOwotCi0JaW50IHlfbGltaXQgPSB5X3NyYyArIGhfZHN0OwotCWludCB4X2xpbWl0ID0geF9zcmMgKyB3X2RzdDsKLQotCWZvciAoaSA9IHlfc3JjLCBpX2RzdCA9IHlfZHN0OyBpIDwgeV9saW1pdDsgKytpKSB7Ci0JCWZvciAoaiA9IHhfc3JjLCBqX2RzdCA9IHhfZHN0OyBqIDwgeF9saW1pdDsgKytqKSB7Ci0JCQlvZmZzZXRfZHN0ID0gY3JjX2RzdC0+b2Zmc2V0Ci0JCQkJICAgICArIChpX2RzdCAqIGNyY19kc3QtPnBpdGNoKQotCQkJCSAgICAgKyAoal9kc3QrKyAqIGNyY19kc3QtPmNwcCk7Ci0JCQlvZmZzZXRfc3JjID0gY3JjX3NyYy0+b2Zmc2V0Ci0JCQkJICAgICArIChpICogY3JjX3NyYy0+cGl0Y2gpCi0JCQkJICAgICArIChqICogY3JjX3NyYy0+Y3BwKTsKLQotCQkJbWVtY3B5KHZhZGRyX2RzdCArIG9mZnNldF9kc3QsCi0JCQkgICAgICAgdmFkZHJfc3JjICsgb2Zmc2V0X3NyYywgc2l6ZW9mKHUzMikpOwotCQl9Ci0JCWlfZHN0Kys7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBjb21wb3NlX2N1cnNvcihzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3Vyc29yX2NyYywKLQkJCSAgIHN0cnVjdCB2a21zX2NyY19kYXRhICpwcmltYXJ5X2NyYywgdm9pZCAqdmFkZHJfb3V0KQotewotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqY3Vyc29yX29iajsKLQlzdHJ1Y3Qgdmttc19nZW1fb2JqZWN0ICpjdXJzb3Jfdmttc19vYmo7Ci0KLQljdXJzb3Jfb2JqID0gZHJtX2dlbV9mYl9nZXRfb2JqKCZjdXJzb3JfY3JjLT5mYiwgMCk7Ci0JY3Vyc29yX3ZrbXNfb2JqID0gZHJtX2dlbV90b192a21zX2dlbShjdXJzb3Jfb2JqKTsKLQotCW11dGV4X2xvY2soJmN1cnNvcl92a21zX29iai0+cGFnZXNfbG9jayk7Ci0JaWYgKCFjdXJzb3Jfdmttc19vYmotPnZhZGRyKSB7Ci0JCURSTV9XQVJOKCJjdXJzb3IgcGxhbmUgdmFkZHIgaXMgTlVMTCIpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQlibGVuZCh2YWRkcl9vdXQsIGN1cnNvcl92a21zX29iai0+dmFkZHIsIHByaW1hcnlfY3JjLCBjdXJzb3JfY3JjKTsKLQotb3V0OgotCW11dGV4X3VubG9jaygmY3Vyc29yX3ZrbXNfb2JqLT5wYWdlc19sb2NrKTsKLX0KLQotc3RhdGljIHVpbnQzMl90IF92a21zX2dldF9jcmMoc3RydWN0IHZrbXNfY3JjX2RhdGEgKnByaW1hcnlfY3JjLAotCQkJICAgICAgc3RydWN0IHZrbXNfY3JjX2RhdGEgKmN1cnNvcl9jcmMpCi17Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSAmcHJpbWFyeV9jcmMtPmZiOwotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaiA9IGRybV9nZW1fZmJfZ2V0X29iaihmYiwgMCk7Ci0Jc3RydWN0IHZrbXNfZ2VtX29iamVjdCAqdmttc19vYmogPSBkcm1fZ2VtX3RvX3ZrbXNfZ2VtKGdlbV9vYmopOwotCXZvaWQgKnZhZGRyX291dCA9IGt6YWxsb2Modmttc19vYmotPmdlbS5zaXplLCBHRlBfS0VSTkVMKTsKLQl1MzIgY3JjID0gMDsKLQotCWlmICghdmFkZHJfb3V0KSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3Igb3V0cHV0IGZyYW1lLiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQltdXRleF9sb2NrKCZ2a21zX29iai0+cGFnZXNfbG9jayk7Ci0JaWYgKFdBUk5fT04oIXZrbXNfb2JqLT52YWRkcikpIHsKLQkJbXV0ZXhfdW5sb2NrKCZ2a21zX29iai0+cGFnZXNfbG9jayk7Ci0JCWtmcmVlKHZhZGRyX291dCk7Ci0JCXJldHVybiBjcmM7Ci0JfQotCi0JbWVtY3B5KHZhZGRyX291dCwgdmttc19vYmotPnZhZGRyLCB2a21zX29iai0+Z2VtLnNpemUpOwotCW11dGV4X3VubG9jaygmdmttc19vYmotPnBhZ2VzX2xvY2spOwotCi0JaWYgKGN1cnNvcl9jcmMpCi0JCWNvbXBvc2VfY3Vyc29yKGN1cnNvcl9jcmMsIHByaW1hcnlfY3JjLCB2YWRkcl9vdXQpOwotCi0JY3JjID0gY29tcHV0ZV9jcmModmFkZHJfb3V0LCBwcmltYXJ5X2NyYyk7Ci0KLQlrZnJlZSh2YWRkcl9vdXQpOwotCi0JcmV0dXJuIGNyYzsKLX0KLQotLyoqCi0gKiB2a21zX2NyY193b3JrX2hhbmRsZSAtIG9yZGVyZWQgd29ya19zdHJ1Y3QgdG8gY29tcHV0ZSBDUkMKLSAqCi0gKiBAd29yazogd29ya19zdHJ1Y3QKLSAqCi0gKiBXb3JrIGhhbmRsZXIgZm9yIGNvbXB1dGluZyBDUkNzLiB3b3JrX3N0cnVjdCBzY2hlZHVsZWQgaW4KLSAqIGFuIG9yZGVyZWQgd29ya3F1ZXVlIHRoYXQncyBwZXJpb2RpY2FsbHkgc2NoZWR1bGVkIHRvIHJ1biBieQotICogX3ZibGFua19oYW5kbGUoKSBhbmQgZmx1c2hlZCBhdCB2a21zX2F0b21pY19jcnRjX2Rlc3Ryb3lfc3RhdGUoKS4KLSAqLwotdm9pZCB2a21zX2NyY193b3JrX2hhbmRsZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCi17Ci0Jc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IGNvbnRhaW5lcl9vZih3b3JrLAotCQkJCQkJc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSwKLQkJCQkJCWNyY193b3JrKTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7Ci0Jc3RydWN0IHZrbXNfb3V0cHV0ICpvdXQgPSBkcm1fY3J0Y190b192a21zX291dHB1dChjcnRjKTsKLQlzdHJ1Y3Qgdmttc19kZXZpY2UgKnZkZXYgPSBjb250YWluZXJfb2Yob3V0LCBzdHJ1Y3Qgdmttc19kZXZpY2UsCi0JCQkJCQlvdXRwdXQpOwotCXN0cnVjdCB2a21zX2NyY19kYXRhICpwcmltYXJ5X2NyYyA9IE5VTEw7Ci0Jc3RydWN0IHZrbXNfY3JjX2RhdGEgKmN1cnNvcl9jcmMgPSBOVUxMOwotCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwotCXUzMiBjcmMzMiA9IDA7Ci0JdTY0IGZyYW1lX3N0YXJ0LCBmcmFtZV9lbmQ7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZvdXQtPnN0YXRlX2xvY2ssIGZsYWdzKTsKLQlmcmFtZV9zdGFydCA9IGNydGNfc3RhdGUtPmZyYW1lX3N0YXJ0OwotCWZyYW1lX2VuZCA9IGNydGNfc3RhdGUtPmZyYW1lX2VuZDsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZvdXQtPnN0YXRlX2xvY2ssIGZsYWdzKTsKLQotCS8qIF92YmxhbmtfaGFuZGxlKCkgaGFzbid0IHVwZGF0ZWQgZnJhbWVfc3RhcnQgeWV0ICovCi0JaWYgKCFmcmFtZV9zdGFydCB8fCBmcmFtZV9zdGFydCA9PSBmcmFtZV9lbmQpCi0JCWdvdG8gb3V0OwotCi0JZHJtX2Zvcl9lYWNoX3BsYW5lKHBsYW5lLCAmdmRldi0+ZHJtKSB7Ci0JCXN0cnVjdCB2a21zX3BsYW5lX3N0YXRlICp2cGxhbmVfc3RhdGU7Ci0JCXN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZGF0YTsKLQotCQl2cGxhbmVfc3RhdGUgPSB0b192a21zX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7Ci0JCWNyY19kYXRhID0gdnBsYW5lX3N0YXRlLT5jcmNfZGF0YTsKLQotCQlpZiAoZHJtX2ZyYW1lYnVmZmVyX3JlYWRfcmVmY291bnQoJmNyY19kYXRhLT5mYikgPT0gMCkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKQotCQkJcHJpbWFyeV9jcmMgPSBjcmNfZGF0YTsKLQkJZWxzZQotCQkJY3Vyc29yX2NyYyA9IGNyY19kYXRhOwotCX0KLQotCWlmIChwcmltYXJ5X2NyYykKLQkJY3JjMzIgPSBfdmttc19nZXRfY3JjKHByaW1hcnlfY3JjLCBjdXJzb3JfY3JjKTsKLQotCWZyYW1lX2VuZCA9IGRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19jb3VudChjcnRjKTsKLQotCS8qIHF1ZXVlX3dvcmsgY2FuIGZhaWwgdG8gc2NoZWR1bGUgY3JjX3dvcms7IGFkZCBjcmMgZm9yCi0JICogbWlzc2luZyBmcmFtZXMKLQkgKi8KLQl3aGlsZSAoZnJhbWVfc3RhcnQgPD0gZnJhbWVfZW5kKQotCQlkcm1fY3J0Y19hZGRfY3JjX2VudHJ5KGNydGMsIHRydWUsIGZyYW1lX3N0YXJ0KyssICZjcmMzMik7Ci0KLW91dDoKLQkvKiB0byBhdm9pZCB1c2luZyB0aGUgc2FtZSB2YWx1ZSBmb3IgZnJhbWUgbnVtYmVyIGFnYWluICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJm91dC0+c3RhdGVfbG9jaywgZmxhZ3MpOwotCWNydGNfc3RhdGUtPmZyYW1lX2VuZCA9IGZyYW1lX2VuZDsKLQljcnRjX3N0YXRlLT5mcmFtZV9zdGFydCA9IDA7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb3V0LT5zdGF0ZV9sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGlwZV9jcmNfc291cmNlc1tdID0geyJhdXRvIn07Ci0KLWNvbnN0IGNoYXIgKmNvbnN0ICp2a21zX2dldF9jcmNfc291cmNlcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkJCXNpemVfdCAqY291bnQpCi17Ci0JKmNvdW50ID0gQVJSQVlfU0laRShwaXBlX2NyY19zb3VyY2VzKTsKLQlyZXR1cm4gcGlwZV9jcmNfc291cmNlczsKLX0KLQotc3RhdGljIGludCB2a21zX2NyY19wYXJzZV9zb3VyY2UoY29uc3QgY2hhciAqc3JjX25hbWUsIGJvb2wgKmVuYWJsZWQpCi17Ci0JaW50IHJldCA9IDA7Ci0KLQlpZiAoIXNyY19uYW1lKSB7Ci0JCSplbmFibGVkID0gZmFsc2U7Ci0JfSBlbHNlIGlmIChzdHJjbXAoc3JjX25hbWUsICJhdXRvIikgPT0gMCkgewotCQkqZW5hYmxlZCA9IHRydWU7Ci0JfSBlbHNlIHsKLQkJKmVuYWJsZWQgPSBmYWxzZTsKLQkJcmV0ID0gLUVJTlZBTDsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1pbnQgdmttc192ZXJpZnlfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGNvbnN0IGNoYXIgKnNyY19uYW1lLAotCQkJICAgc2l6ZV90ICp2YWx1ZXNfY250KQotewotCWJvb2wgZW5hYmxlZDsKLQotCWlmICh2a21zX2NyY19wYXJzZV9zb3VyY2Uoc3JjX25hbWUsICZlbmFibGVkKSA8IDApIHsKLQkJRFJNX0RFQlVHX0RSSVZFUigidW5rbm93biBzb3VyY2UgJXNcbiIsIHNyY19uYW1lKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JKnZhbHVlc19jbnQgPSAxOwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCB2a21zX3NldF9jcmNfc291cmNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgY29uc3QgY2hhciAqc3JjX25hbWUpCi17Ci0Jc3RydWN0IHZrbXNfb3V0cHV0ICpvdXQgPSBkcm1fY3J0Y190b192a21zX291dHB1dChjcnRjKTsKLQlib29sIGVuYWJsZWQgPSBmYWxzZTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXQgPSAwOwotCi0JcmV0ID0gdmttc19jcmNfcGFyc2Vfc291cmNlKHNyY19uYW1lLCAmZW5hYmxlZCk7Ci0KLQkvKiBtYWtlIHN1cmUgbm90aGluZyBpcyBzY2hlZHVsZWQgb24gY3J0YyB3b3JrcSAqLwotCWZsdXNoX3dvcmtxdWV1ZShvdXQtPmNyY193b3JrcSk7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmb3V0LT5sb2NrLCBmbGFncyk7Ci0Jb3V0LT5jcmNfZW5hYmxlZCA9IGVuYWJsZWQ7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb3V0LT5sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm4gcmV0OwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYwppbmRleCA0ZDExMjkyLi45MjdkYWZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYwpAQCAtMSwxNSArMSwxOCBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCiAKLSNpbmNsdWRlICJ2a21zX2Rydi5oIgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorCisjaW5jbHVkZSAidmttc19kcnYuaCIKIAogc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0aW1lcikKIHsKIAlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9IGNvbnRhaW5lcl9vZih0aW1lciwgc3RydWN0IHZrbXNfb3V0cHV0LAogCQkJCQkJICB2YmxhbmtfaHJ0aW1lcik7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJm91dHB1dC0+Y3J0YzsKLQlzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlICpzdGF0ZSA9IHRvX3ZrbXNfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CisJc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAqc3RhdGU7CiAJdTY0IHJldF9vdmVycnVuOwogCWJvb2wgcmV0OwogCkBAIC0yMywyMCArMjYsMjYgQEAgc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0aW1lcikKIAlpZiAoIXJldCkKIAkJRFJNX0VSUk9SKCJ2a21zIGZhaWx1cmUgb24gaGFuZGxpbmcgdmJsYW5rIik7CiAKLQlpZiAoc3RhdGUgJiYgb3V0cHV0LT5jcmNfZW5hYmxlZCkgeworCXN0YXRlID0gb3V0cHV0LT5jb21wb3Nlcl9zdGF0ZTsKKwlpZiAoc3RhdGUgJiYgb3V0cHV0LT5jb21wb3Nlcl9lbmFibGVkKSB7CiAJCXU2NCBmcmFtZSA9IGRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19jb3VudChjcnRjKTsKIAotCQkvKiB1cGRhdGUgZnJhbWVfc3RhcnQgb25seSBpZiBhIHF1ZXVlZCB2a21zX2NyY193b3JrX2hhbmRsZSgpCisJCS8qIHVwZGF0ZSBmcmFtZV9zdGFydCBvbmx5IGlmIGEgcXVldWVkIHZrbXNfY29tcG9zZXJfd29ya2VyKCkKIAkJICogaGFzIHJlYWQgdGhlIGRhdGEKIAkJICovCi0JCXNwaW5fbG9jaygmb3V0cHV0LT5zdGF0ZV9sb2NrKTsKLQkJaWYgKCFzdGF0ZS0+ZnJhbWVfc3RhcnQpCisJCXNwaW5fbG9jaygmb3V0cHV0LT5jb21wb3Nlcl9sb2NrKTsKKwkJaWYgKCFzdGF0ZS0+Y3JjX3BlbmRpbmcpCiAJCQlzdGF0ZS0+ZnJhbWVfc3RhcnQgPSBmcmFtZTsKLQkJc3Bpbl91bmxvY2soJm91dHB1dC0+c3RhdGVfbG9jayk7CisJCWVsc2UKKwkJCURSTV9ERUJVR19EUklWRVIoImNyYyB3b3JrZXIgZmFsbGluZyBiZWhpbmQsIGZyYW1lX3N0YXJ0OiAlbGx1LCBmcmFtZV9lbmQ6ICVsbHVcbiIsCisJCQkJCSBzdGF0ZS0+ZnJhbWVfc3RhcnQsIGZyYW1lKTsKKwkJc3RhdGUtPmZyYW1lX2VuZCA9IGZyYW1lOworCQlzdGF0ZS0+Y3JjX3BlbmRpbmcgPSB0cnVlOworCQlzcGluX3VubG9jaygmb3V0cHV0LT5jb21wb3Nlcl9sb2NrKTsKIAotCQlyZXQgPSBxdWV1ZV93b3JrKG91dHB1dC0+Y3JjX3dvcmtxLCAmc3RhdGUtPmNyY193b3JrKTsKKwkJcmV0ID0gcXVldWVfd29yayhvdXRwdXQtPmNvbXBvc2VyX3dvcmtxLCAmc3RhdGUtPmNvbXBvc2VyX3dvcmspOwogCQlpZiAoIXJldCkKLQkJCURSTV9XQVJOKCJmYWlsZWQgdG8gcXVldWUgdmttc19jcmNfd29ya19oYW5kbGUiKTsKKwkJCURSTV9ERUJVR19EUklWRVIoIkNvbXBvc2VyIHdvcmtlciBhbHJlYWR5IHF1ZXVlZFxuIik7CiAJfQogCiAJc3Bpbl91bmxvY2soJm91dHB1dC0+bG9jayk7CkBAIC0xMDcsNyArMTE2LDcgQEAgdmttc19hdG9taWNfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmdmttc19zdGF0ZS0+YmFzZSk7CiAKLQlJTklUX1dPUksoJnZrbXNfc3RhdGUtPmNyY193b3JrLCB2a21zX2NyY193b3JrX2hhbmRsZSk7CisJSU5JVF9XT1JLKCZ2a21zX3N0YXRlLT5jb21wb3Nlcl93b3JrLCB2a21zX2NvbXBvc2VyX3dvcmtlcik7CiAKIAlyZXR1cm4gJnZrbXNfc3RhdGUtPmJhc2U7CiB9CkBAIC0xMTksMTAgKzEyOCw5IEBAIHN0YXRpYyB2b2lkIHZrbXNfYXRvbWljX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShzdGF0ZSk7CiAKLQlpZiAodmttc19zdGF0ZSkgewotCQlmbHVzaF93b3JrKCZ2a21zX3N0YXRlLT5jcmNfd29yayk7Ci0JCWtmcmVlKHZrbXNfc3RhdGUpOwotCX0KKwlXQVJOX09OKHdvcmtfcGVuZGluZygmdmttc19zdGF0ZS0+Y29tcG9zZXJfd29yaykpOworCWtmcmVlKHZrbXNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMpOworCWtmcmVlKHZrbXNfc3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZCB2a21zX2F0b21pY19jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKQEAgLTEzNSw3ICsxNDMsNyBAQCBzdGF0aWMgdm9pZCB2a21zX2F0b21pY19jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAogCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmdmttc19zdGF0ZS0+YmFzZSk7CiAJaWYgKHZrbXNfc3RhdGUpCi0JCUlOSVRfV09SSygmdmttc19zdGF0ZS0+Y3JjX3dvcmssIHZrbXNfY3JjX3dvcmtfaGFuZGxlKTsKKwkJSU5JVF9XT1JLKCZ2a21zX3N0YXRlLT5jb21wb3Nlcl93b3JrLCB2a21zX2NvbXBvc2VyX3dvcmtlcik7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3Mgdmttc19jcnRjX2Z1bmNzID0gewpAQCAtMTUyLDYgKzE2MCw1MiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHZrbXNfY3J0Y19mdW5jcyA9IHsKIAkudmVyaWZ5X2NyY19zb3VyY2UJPSB2a21zX3ZlcmlmeV9jcmNfc291cmNlLAogfTsKIAorc3RhdGljIGludCB2a21zX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAqdmttc19zdGF0ZSA9IHRvX3ZrbXNfY3J0Y19zdGF0ZShzdGF0ZSk7CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CisJaW50IGkgPSAwLCByZXQ7CisKKwlpZiAodmttc19zdGF0ZS0+YWN0aXZlX3BsYW5lcykKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9wbGFuZXMoc3RhdGUtPnN0YXRlLCBjcnRjKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWRybV9mb3JfZWFjaF9wbGFuZV9tYXNrKHBsYW5lLCBjcnRjLT5kZXYsIHN0YXRlLT5wbGFuZV9tYXNrKSB7CisJCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUoc3RhdGUtPnN0YXRlLAorCQkJCQkJCQkgIHBsYW5lKTsKKwkJV0FSTl9PTighcGxhbmVfc3RhdGUpOworCisJCWlmICghcGxhbmVfc3RhdGUtPnZpc2libGUpCisJCQljb250aW51ZTsKKworCQlpKys7CisJfQorCisJdmttc19zdGF0ZS0+YWN0aXZlX3BsYW5lcyA9IGtjYWxsb2MoaSwgc2l6ZW9mKHBsYW5lKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF2a21zX3N0YXRlLT5hY3RpdmVfcGxhbmVzKQorCQlyZXR1cm4gLUVOT01FTTsKKwl2a21zX3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lcyA9IGk7CisKKwlpID0gMDsKKwlkcm1fZm9yX2VhY2hfcGxhbmVfbWFzayhwbGFuZSwgY3J0Yy0+ZGV2LCBzdGF0ZS0+cGxhbmVfbWFzaykgeworCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX3BsYW5lX3N0YXRlKHN0YXRlLT5zdGF0ZSwKKwkJCQkJCQkJICBwbGFuZSk7CisKKwkJaWYgKCFwbGFuZV9zdGF0ZS0+dmlzaWJsZSkKKwkJCWNvbnRpbnVlOworCisJCXZrbXNfc3RhdGUtPmFjdGl2ZV9wbGFuZXNbaSsrXSA9CisJCQl0b192a21zX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQgdmttc19jcnRjX2F0b21pY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKQEAgLTE3MCw3ICsyMjQsNyBAQCBzdGF0aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2JlZ2luKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3Qgdmttc19vdXRwdXQgKnZrbXNfb3V0cHV0ID0gZHJtX2NydGNfdG9fdmttc19vdXRwdXQoY3J0Yyk7CiAKIAkvKiBUaGlzIGxvY2sgaXMgaGVsZCBhY3Jvc3MgdGhlIGF0b21pYyBjb21taXQgdG8gYmxvY2sgdmJsYW5rIHRpbWVyCi0JICogZnJvbSBzY2hlZHVsaW5nIHZrbXNfY3JjX3dvcmtfaGFuZGxlIHVudGlsIHRoZSBjcmNfZGF0YSBpcyB1cGRhdGVkCisJICogZnJvbSBzY2hlZHVsaW5nIHZrbXNfY29tcG9zZXJfd29ya2VyIHVudGlsIHRoZSBjb21wb3NlciBpcyB1cGRhdGVkCiAJICovCiAJc3Bpbl9sb2NrX2lycSgmdmttc19vdXRwdXQtPmxvY2spOwogfQpAQCAtMTc5LDI1ICsyMzMsMjcgQEAgc3RhdGljIHZvaWQgdmttc19jcnRjX2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3Qgdmttc19vdXRwdXQgKnZrbXNfb3V0cHV0ID0gZHJtX2NydGNfdG9fdmttc19vdXRwdXQoY3J0Yyk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmNydGMtPmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOworCQlzcGluX2xvY2soJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CiAKIAkJaWYgKGRybV9jcnRjX3ZibGFua19nZXQoY3J0YykgIT0gMCkKIAkJCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KGNydGMsIGNydGMtPnN0YXRlLT5ldmVudCk7CiAJCWVsc2UKIAkJCWRybV9jcnRjX2FybV92YmxhbmtfZXZlbnQoY3J0YywgY3J0Yy0+c3RhdGUtPmV2ZW50KTsKIAotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKKwkJc3Bpbl91bmxvY2soJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CiAKIAkJY3J0Yy0+c3RhdGUtPmV2ZW50ID0gTlVMTDsKIAl9CiAKKwl2a21zX291dHB1dC0+Y29tcG9zZXJfc3RhdGUgPSB0b192a21zX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOworCiAJc3Bpbl91bmxvY2tfaXJxKCZ2a21zX291dHB1dC0+bG9jayk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIHZrbXNfY3J0Y19oZWxwZXJfZnVuY3MgPSB7CisJLmF0b21pY19jaGVjawk9IHZrbXNfY3J0Y19hdG9taWNfY2hlY2ssCiAJLmF0b21pY19iZWdpbgk9IHZrbXNfY3J0Y19hdG9taWNfYmVnaW4sCiAJLmF0b21pY19mbHVzaAk9IHZrbXNfY3J0Y19hdG9taWNfZmx1c2gsCiAJLmF0b21pY19lbmFibGUJPSB2a21zX2NydGNfYXRvbWljX2VuYWJsZSwKQEAgLTIyMCwxMCArMjc2LDEwIEBAIGludCB2a21zX2NydGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJZHJtX2NydGNfaGVscGVyX2FkZChjcnRjLCAmdmttc19jcnRjX2hlbHBlcl9mdW5jcyk7CiAKIAlzcGluX2xvY2tfaW5pdCgmdmttc19vdXQtPmxvY2spOwotCXNwaW5fbG9ja19pbml0KCZ2a21zX291dC0+c3RhdGVfbG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJnZrbXNfb3V0LT5jb21wb3Nlcl9sb2NrKTsKIAotCXZrbXNfb3V0LT5jcmNfd29ya3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgidmttc19jcmNfd29ya3EiLCAwKTsKLQlpZiAoIXZrbXNfb3V0LT5jcmNfd29ya3EpCisJdmttc19vdXQtPmNvbXBvc2VyX3dvcmtxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoInZrbXNfY29tcG9zZXIiLCAwKTsKKwlpZiAoIXZrbXNfb3V0LT5jb21wb3Nlcl93b3JrcSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMKaW5kZXggNzM4ZGQ2Mi4uNDRhYjlmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCkBAIC0xMCwxMSArMTAsMTkgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKwogI2luY2x1ZGUgInZrbXNfZHJ2LmgiCiAKICNkZWZpbmUgRFJJVkVSX05BTUUJInZrbXMiCkBAIC01NSw3ICs2MywzNiBAQCBzdGF0aWMgdm9pZCB2a21zX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bigmdmttcy0+ZHJtKTsKIAlkcm1fbW9kZV9jb25maWdfY2xlYW51cCgmdmttcy0+ZHJtKTsKIAlkcm1fZGV2X2ZpbmkoJnZrbXMtPmRybSk7Ci0JZGVzdHJveV93b3JrcXVldWUodmttcy0+b3V0cHV0LmNyY193b3JrcSk7CisJZGVzdHJveV93b3JrcXVldWUodmttcy0+b3V0cHV0LmNvbXBvc2VyX3dvcmtxKTsKK30KKworc3RhdGljIHZvaWQgdmttc19hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2xkX3N0YXRlLT5kZXY7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7CisJaW50IGk7CisKKwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhkZXYsIG9sZF9zdGF0ZSk7CisKKwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzKGRldiwgb2xkX3N0YXRlLCAwKTsKKworCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoZGV2LCBvbGRfc3RhdGUpOworCisJZHJtX2F0b21pY19oZWxwZXJfZmFrZV92Ymxhbmsob2xkX3N0YXRlKTsKKworCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKG9sZF9zdGF0ZSk7CisKKwlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl92YmxhbmtzKGRldiwgb2xkX3N0YXRlKTsKKworCWZvcl9lYWNoX29sZF9jcnRjX2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIGkpIHsKKwkJc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAqdmttc19zdGF0ZSA9CisJCQl0b192a21zX2NydGNfc3RhdGUob2xkX2NydGNfc3RhdGUpOworCisJCWZsdXNoX3dvcmsoJnZrbXNfc3RhdGUtPmNvbXBvc2VyX3dvcmspOworCX0KKworCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgb2xkX3N0YXRlKTsKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHZrbXNfZHJpdmVyID0gewpAQCAtODAsNiArMTE3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIHZrbXNfbW9kZV9mdW5jcyA9IHsKIAkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2hlbHBlcl9mdW5jcyB2a21zX21vZGVfY29uZmlnX2hlbHBlcnMgPSB7CisJLmF0b21pY19jb21taXRfdGFpbCA9IHZrbXNfYXRvbWljX2NvbW1pdF90YWlsLAorfTsKKwogc3RhdGljIGludCB2a21zX21vZGVzZXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07CkBAIC05MSw4ICsxMzIsOSBAQCBzdGF0aWMgaW50IHZrbXNfbW9kZXNldF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldikKIAlkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9IFhSRVNfTUFYOwogCWRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IFlSRVNfTUFYOwogCWRldi0+bW9kZV9jb25maWcucHJlZmVycmVkX2RlcHRoID0gMjQ7CisJZGV2LT5tb2RlX2NvbmZpZy5oZWxwZXJfcHJpdmF0ZSA9ICZ2a21zX21vZGVfY29uZmlnX2hlbHBlcnM7CiAKLQlyZXR1cm4gdmttc19vdXRwdXRfaW5pdCh2a21zZGV2KTsKKwlyZXR1cm4gdmttc19vdXRwdXRfaW5pdCh2a21zZGV2LCAwKTsKIH0KIAogc3RhdGljIGludCBfX2luaXQgdmttc19pbml0KHZvaWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAppbmRleCBiOTJjMzBjLi41YTk1MTAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKQEAgLTMsMTEgKzMsMTEgQEAKICNpZm5kZWYgX1ZLTVNfRFJWX0hfCiAjZGVmaW5lIF9WS01TX0RSVl9IXwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9ocnRpbWVyLmg+CisKICNpbmNsdWRlIDxkcm0vZHJtLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9ocnRpbWVyLmg+CiAKICNkZWZpbmUgWFJFU19NSU4gICAgMjAKICNkZWZpbmUgWVJFU19NSU4gICAgMjAKQEAgLTIwLDcgKzIwLDcgQEAKIAogZXh0ZXJuIGJvb2wgZW5hYmxlX2N1cnNvcjsKIAotc3RydWN0IHZrbXNfY3JjX2RhdGEgeworc3RydWN0IHZrbXNfY29tcG9zZXIgewogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgZmI7CiAJc3RydWN0IGRybV9yZWN0IHNyYywgZHN0OwogCXVuc2lnbmVkIGludCBvZmZzZXQ7CkBAIC0zMSwyMyArMzEsMzAgQEAgc3RydWN0IHZrbXNfY3JjX2RhdGEgewogLyoqCiAgKiB2a21zX3BsYW5lX3N0YXRlIC0gRHJpdmVyIHNwZWNpZmljIHBsYW5lIHN0YXRlCiAgKiBAYmFzZTogYmFzZSBwbGFuZSBzdGF0ZQotICogQGNyY19kYXRhOiBkYXRhIHJlcXVpcmVkIGZvciBDUkMgY29tcHV0YXRpb24KKyAqIEBjb21wb3NlcjogZGF0YSByZXF1aXJlZCBmb3IgY29tcG9zaW5nIGNvbXB1dGF0aW9uCiAgKi8KIHN0cnVjdCB2a21zX3BsYW5lX3N0YXRlIHsKIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIGJhc2U7Ci0Jc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNyY19kYXRhOworCXN0cnVjdCB2a21zX2NvbXBvc2VyICpjb21wb3NlcjsKIH07CiAKIC8qKgogICogdmttc19jcnRjX3N0YXRlIC0gRHJpdmVyIHNwZWNpZmljIENSVEMgc3RhdGUKICAqIEBiYXNlOiBiYXNlIENSVEMgc3RhdGUKLSAqIEBjcmNfd29yazogd29yayBzdHJ1Y3QgdG8gY29tcHV0ZSBhbmQgYWRkIENSQyBlbnRyaWVzCisgKiBAY29tcG9zZXJfd29yazogd29yayBzdHJ1Y3QgdG8gY29tcG9zZSBhbmQgYWRkIENSQyBlbnRyaWVzCiAgKiBAbl9mcmFtZV9zdGFydDogc3RhcnQgZnJhbWUgbnVtYmVyIGZvciBjb21wdXRlZCBDUkMKICAqIEBuX2ZyYW1lX2VuZDogZW5kIGZyYW1lIG51bWJlciBmb3IgY29tcHV0ZWQgQ1JDCiAgKi8KIHN0cnVjdCB2a21zX2NydGNfc3RhdGUgewogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBiYXNlOwotCXN0cnVjdCB3b3JrX3N0cnVjdCBjcmNfd29yazsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgY29tcG9zZXJfd29yazsKKworCWludCBudW1fYWN0aXZlX3BsYW5lczsKKwkvKiBzdGFjayBvZiBhY3RpdmUgcGxhbmVzIGZvciBjcmMgY29tcHV0YXRpb24sIHNob3VsZCBiZSBpbiB6IG9yZGVyICovCisJc3RydWN0IHZrbXNfcGxhbmVfc3RhdGUgKiphY3RpdmVfcGxhbmVzOworCisJLyogYmVsb3cgdGhyZWUgYXJlIHByb3RlY3RlZCBieSB2a21zX291dHB1dC5jb21wb3Nlcl9sb2NrICovCisJYm9vbCBjcmNfcGVuZGluZzsKIAl1NjQgZnJhbWVfc3RhcnQ7CiAJdTY0IGZyYW1lX2VuZDsKIH07CkBAIC01OSwxMyArNjYsMTYgQEAgc3RydWN0IHZrbXNfb3V0cHV0IHsKIAlzdHJ1Y3QgaHJ0aW1lciB2YmxhbmtfaHJ0aW1lcjsKIAlrdGltZV90IHBlcmlvZF9uczsKIAlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsKLQlib29sIGNyY19lbmFibGVkOwotCS8qIG9yZGVyZWQgd3EgZm9yIGNyY193b3JrICovCi0Jc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmNyY193b3JrcTsKLQkvKiBwcm90ZWN0cyBjb25jdXJyZW50IGFjY2VzcyB0byBjcmNfZGF0YSAqLworCS8qIG9yZGVyZWQgd3EgZm9yIGNvbXBvc2VyX3dvcmsgKi8KKwlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqY29tcG9zZXJfd29ya3E7CisJLyogcHJvdGVjdHMgY29uY3VycmVudCBhY2Nlc3MgdG8gY29tcG9zZXIgKi8KIAlzcGlubG9ja190IGxvY2s7Ci0JLyogcHJvdGVjdHMgY29uY3VycmVudCBhY2Nlc3MgdG8gY3J0Y19zdGF0ZSAqLwotCXNwaW5sb2NrX3Qgc3RhdGVfbG9jazsKKworCS8qIHByb3RlY3RlZCBieSBAbG9jayAqLworCWJvb2wgY29tcG9zZXJfZW5hYmxlZDsKKwlzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlICpjb21wb3Nlcl9zdGF0ZTsKKworCXNwaW5sb2NrX3QgY29tcG9zZXJfbG9jazsKIH07CiAKIHN0cnVjdCB2a21zX2RldmljZSB7CkBAIC0xMDUsMTAgKzExNSwxMCBAQCBib29sIHZrbXNfZ2V0X3ZibGFua190aW1lc3RhbXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCiAJCQkgICAgICAgaW50ICptYXhfZXJyb3IsIGt0aW1lX3QgKnZibGFua190aW1lLAogCQkJICAgICAgIGJvb2wgaW5fdmJsYW5rX2lycSk7CiAKLWludCB2a21zX291dHB1dF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2Rldik7CitpbnQgdmttc19vdXRwdXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYsIGludCBpbmRleCk7CiAKIHN0cnVjdCBkcm1fcGxhbmUgKnZrbXNfcGxhbmVfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYsCi0JCQkJICBlbnVtIGRybV9wbGFuZV90eXBlIHR5cGUpOworCQkJCSAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlLCBpbnQgaW5kZXgpOwogCiAvKiBHZW0gc3R1ZmYgKi8KIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqdmttc19nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCkBAIC0xMzMsNiArMTQzLDggQEAgY29uc3QgY2hhciAqY29uc3QgKnZrbXNfZ2V0X2NyY19zb3VyY2VzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIGludCB2a21zX3NldF9jcmNfc291cmNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgY29uc3QgY2hhciAqc3JjX25hbWUpOwogaW50IHZrbXNfdmVyaWZ5X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzb3VyY2VfbmFtZSwKIAkJCSAgIHNpemVfdCAqdmFsdWVzX2NudCk7Ci12b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CisKKy8qIENvbXBvc2VyIFN1cHBvcnQgKi8KK3ZvaWQgdmttc19jb21wb3Nlcl93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKIAogI2VuZGlmIC8qIF9WS01TX0RSVl9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZ2VtLmMKaW5kZXggNjkwNDhlNy4uNjQ4OWJmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2dlbS5jCkBAIC0xLDYgKzEsNyBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCiAKICNpbmNsdWRlIDxsaW51eC9zaG1lbV9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KIAogI2luY2x1ZGUgInZrbXNfZHJ2LmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfb3V0cHV0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX291dHB1dC5jCmluZGV4IDU2ZmI1YzIuLmZiMTk0MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfb3V0cHV0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYwpAQCAtMzUsNyArMzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHZrbXNfY29ubl9oZWxwZXJfZnVuY3MgPSB7CiAJLmdldF9tb2RlcyAgICA9IHZrbXNfY29ubl9nZXRfbW9kZXMsCiB9OwogCi1pbnQgdmttc19vdXRwdXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYpCitpbnQgdmttc19vdXRwdXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYsIGludCBpbmRleCkKIHsKIAlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9ICZ2a21zZGV2LT5vdXRwdXQ7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07CkBAIC00NSwxMiArNDUsMTIgQEAgaW50IHZrbXNfb3V0cHV0X2luaXQoc3RydWN0IHZrbXNfZGV2aWNlICp2a21zZGV2KQogCXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksICpjdXJzb3IgPSBOVUxMOwogCWludCByZXQ7CiAKLQlwcmltYXJ5ID0gdmttc19wbGFuZV9pbml0KHZrbXNkZXYsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOworCXByaW1hcnkgPSB2a21zX3BsYW5lX2luaXQodmttc2RldiwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwgaW5kZXgpOwogCWlmIChJU19FUlIocHJpbWFyeSkpCiAJCXJldHVybiBQVFJfRVJSKHByaW1hcnkpOwogCiAJaWYgKGVuYWJsZV9jdXJzb3IpIHsKLQkJY3Vyc29yID0gdmttc19wbGFuZV9pbml0KHZrbXNkZXYsIERSTV9QTEFORV9UWVBFX0NVUlNPUik7CisJCWN1cnNvciA9IHZrbXNfcGxhbmVfaW5pdCh2a21zZGV2LCBEUk1fUExBTkVfVFlQRV9DVVJTT1IsIGluZGV4KTsKIAkJaWYgKElTX0VSUihjdXJzb3IpKSB7CiAJCQlyZXQgPSBQVFJfRVJSKGN1cnNvcik7CiAJCQlnb3RvIGVycl9jdXJzb3I7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKaW5kZXggMGZjZWI2Mi4uNWZjOGY4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwpAQCAtMSwxMCArMSwxMiBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCiAKLSNpbmNsdWRlICJ2a21zX2Rydi5oIgotI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CisKKyNpbmNsdWRlICJ2a21zX2Rydi5oIgogCiBzdGF0aWMgY29uc3QgdTMyIHZrbXNfZm9ybWF0c1tdID0gewogCURSTV9GT1JNQVRfWFJHQjg4ODgsCkBAIC0xOCwyMCArMjAsMjAgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKgogdmttc19wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB7CiAJc3RydWN0IHZrbXNfcGxhbmVfc3RhdGUgKnZrbXNfc3RhdGU7Ci0Jc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNyY19kYXRhOworCXN0cnVjdCB2a21zX2NvbXBvc2VyICpjb21wb3NlcjsKIAogCXZrbXNfc3RhdGUgPSBremFsbG9jKHNpemVvZigqdmttc19zdGF0ZSksIEdGUF9LRVJORUwpOwogCWlmICghdmttc19zdGF0ZSkKIAkJcmV0dXJuIE5VTEw7CiAKLQljcmNfZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpjcmNfZGF0YSksIEdGUF9LRVJORUwpOwotCWlmICghY3JjX2RhdGEpIHsKLQkJRFJNX0RFQlVHX0tNUygiQ291bGRuJ3QgYWxsb2NhdGUgY3JjX2RhdGFcbiIpOworCWNvbXBvc2VyID0ga3phbGxvYyhzaXplb2YoKmNvbXBvc2VyKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjb21wb3NlcikgeworCQlEUk1fREVCVUdfS01TKCJDb3VsZG4ndCBhbGxvY2F0ZSBjb21wb3NlclxuIik7CiAJCWtmcmVlKHZrbXNfc3RhdGUpOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQl2a21zX3N0YXRlLT5jcmNfZGF0YSA9IGNyY19kYXRhOworCXZrbXNfc3RhdGUtPmNvbXBvc2VyID0gY29tcG9zZXI7CiAKIAlfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShwbGFuZSwKIAkJCQkJCSAgJnZrbXNfc3RhdGUtPmJhc2UpOwpAQCAtNDksMTIgKzUxLDEyIEBAIHN0YXRpYyB2b2lkIHZrbXNfcGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJLyogZHJvcHBpbmcgdGhlIHJlZmVyZW5jZSB3ZSBhY3F1aXJlZCBpbgogCQkgKiB2a21zX3ByaW1hcnlfcGxhbmVfdXBkYXRlKCkKIAkJICovCi0JCWlmIChkcm1fZnJhbWVidWZmZXJfcmVhZF9yZWZjb3VudCgmdmttc19zdGF0ZS0+Y3JjX2RhdGEtPmZiKSkKLQkJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoJnZrbXNfc3RhdGUtPmNyY19kYXRhLT5mYik7CisJCWlmIChkcm1fZnJhbWVidWZmZXJfcmVhZF9yZWZjb3VudCgmdmttc19zdGF0ZS0+Y29tcG9zZXItPmZiKSkKKwkJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoJnZrbXNfc3RhdGUtPmNvbXBvc2VyLT5mYik7CiAJfQogCi0Ja2ZyZWUodmttc19zdGF0ZS0+Y3JjX2RhdGEpOwotCXZrbXNfc3RhdGUtPmNyY19kYXRhID0gTlVMTDsKKwlrZnJlZSh2a21zX3N0YXRlLT5jb21wb3Nlcik7CisJdmttc19zdGF0ZS0+Y29tcG9zZXIgPSBOVUxMOwogCiAJX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKG9sZF9zdGF0ZSk7CiAJa2ZyZWUodmttc19zdGF0ZSk7CkBAIC05MSwyMSArOTMsMjEgQEAgc3RhdGljIHZvaWQgdmttc19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogewogCXN0cnVjdCB2a21zX3BsYW5lX3N0YXRlICp2a21zX3BsYW5lX3N0YXRlOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKLQlzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX2RhdGE7CisJc3RydWN0IHZrbXNfY29tcG9zZXIgKmNvbXBvc2VyOwogCiAJaWYgKCFwbGFuZS0+c3RhdGUtPmNydGMgfHwgIWZiKQogCQlyZXR1cm47CiAKIAl2a21zX3BsYW5lX3N0YXRlID0gdG9fdmttc19wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOwogCi0JY3JjX2RhdGEgPSB2a21zX3BsYW5lX3N0YXRlLT5jcmNfZGF0YTsKLQltZW1jcHkoJmNyY19kYXRhLT5zcmMsICZwbGFuZS0+c3RhdGUtPnNyYywgc2l6ZW9mKHN0cnVjdCBkcm1fcmVjdCkpOwotCW1lbWNweSgmY3JjX2RhdGEtPmRzdCwgJnBsYW5lLT5zdGF0ZS0+ZHN0LCBzaXplb2Yoc3RydWN0IGRybV9yZWN0KSk7Ci0JbWVtY3B5KCZjcmNfZGF0YS0+ZmIsIGZiLCBzaXplb2Yoc3RydWN0IGRybV9mcmFtZWJ1ZmZlcikpOwotCWRybV9mcmFtZWJ1ZmZlcl9nZXQoJmNyY19kYXRhLT5mYik7Ci0JY3JjX2RhdGEtPm9mZnNldCA9IGZiLT5vZmZzZXRzWzBdOwotCWNyY19kYXRhLT5waXRjaCA9IGZiLT5waXRjaGVzWzBdOwotCWNyY19kYXRhLT5jcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CisJY29tcG9zZXIgPSB2a21zX3BsYW5lX3N0YXRlLT5jb21wb3NlcjsKKwltZW1jcHkoJmNvbXBvc2VyLT5zcmMsICZwbGFuZS0+c3RhdGUtPnNyYywgc2l6ZW9mKHN0cnVjdCBkcm1fcmVjdCkpOworCW1lbWNweSgmY29tcG9zZXItPmRzdCwgJnBsYW5lLT5zdGF0ZS0+ZHN0LCBzaXplb2Yoc3RydWN0IGRybV9yZWN0KSk7CisJbWVtY3B5KCZjb21wb3Nlci0+ZmIsIGZiLCBzaXplb2Yoc3RydWN0IGRybV9mcmFtZWJ1ZmZlcikpOworCWRybV9mcmFtZWJ1ZmZlcl9nZXQoJmNvbXBvc2VyLT5mYik7CisJY29tcG9zZXItPm9mZnNldCA9IGZiLT5vZmZzZXRzWzBdOworCWNvbXBvc2VyLT5waXRjaCA9IGZiLT5waXRjaGVzWzBdOworCWNvbXBvc2VyLT5jcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CiB9CiAKIHN0YXRpYyBpbnQgdmttc19wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCkBAIC0xNzYsNyArMTc4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHZrbXNfcHJpbWFyeV9oZWxwZXJfZnVuY3MgPSB7CiB9OwogCiBzdHJ1Y3QgZHJtX3BsYW5lICp2a21zX3BsYW5lX2luaXQoc3RydWN0IHZrbXNfZGV2aWNlICp2a21zZGV2LAotCQkJCSAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlKQorCQkJCSAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlLCBpbnQgaW5kZXgpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07CiAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgKmZ1bmNzOwpAQCAtMTk4LDcgKzIwMCw3IEBAIHN0cnVjdCBkcm1fcGxhbmUgKnZrbXNfcGxhbmVfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYsCiAJCWZ1bmNzID0gJnZrbXNfcHJpbWFyeV9oZWxwZXJfZnVuY3M7CiAJfQogCi0JcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgcGxhbmUsIDAsCisJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgcGxhbmUsIDEgPDwgaW5kZXgsCiAJCQkJICAgICAgICZ2a21zX3BsYW5lX2Z1bmNzLAogCQkJCSAgICAgICBmb3JtYXRzLCBuZm9ybWF0cywKIAkJCQkgICAgICAgTlVMTCwgdHlwZSwgTlVMTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9sb2NrLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9sb2NrLmMKaW5kZXggMTZiMjA4My4uNTk3MWM3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbG9jay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX2xvY2suYwpAQCAtMjksNyArMjksNiBAQAogICogQXV0aG9yczogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbS1hdC12bXdhcmUtZG90LWNvbT4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvYXRvbWljLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CkBAIC00OSw4ICs0OCw2IEBAIHZvaWQgdHRtX2xvY2tfaW5pdChzdHJ1Y3QgdHRtX2xvY2sgKmxvY2spCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmbG9jay0+cXVldWUpOwogCWxvY2stPnJ3ID0gMDsKIAlsb2NrLT5mbGFncyA9IDA7Ci0JbG9jay0+a2lsbF90YWtlcnMgPSBmYWxzZTsKLQlsb2NrLT5zaWduYWwgPSBTSUdLSUxMOwogfQogCiB2b2lkIHR0bV9yZWFkX3VubG9jayhzdHJ1Y3QgdHRtX2xvY2sgKmxvY2spCkBAIC02NiwxMSArNjMsNiBAQCBzdGF0aWMgYm9vbCBfX3R0bV9yZWFkX2xvY2soc3RydWN0IHR0bV9sb2NrICpsb2NrKQogCWJvb2wgbG9ja2VkID0gZmFsc2U7CiAKIAlzcGluX2xvY2soJmxvY2stPmxvY2spOwotCWlmICh1bmxpa2VseShsb2NrLT5raWxsX3Rha2VycykpIHsKLQkJc2VuZF9zaWcobG9jay0+c2lnbmFsLCBjdXJyZW50LCAwKTsKLQkJc3Bpbl91bmxvY2soJmxvY2stPmxvY2spOwotCQlyZXR1cm4gZmFsc2U7Ci0JfQogCWlmIChsb2NrLT5ydyA+PSAwICYmIGxvY2stPmZsYWdzID09IDApIHsKIAkJKytsb2NrLT5ydzsKIAkJbG9ja2VkID0gdHJ1ZTsKQEAgLTk4LDExICs5MCw2IEBAIHN0YXRpYyBib29sIF9fdHRtX3JlYWRfdHJ5bG9jayhzdHJ1Y3QgdHRtX2xvY2sgKmxvY2ssIGJvb2wgKmxvY2tlZCkKIAkqbG9ja2VkID0gZmFsc2U7CiAKIAlzcGluX2xvY2soJmxvY2stPmxvY2spOwotCWlmICh1bmxpa2VseShsb2NrLT5raWxsX3Rha2VycykpIHsKLQkJc2VuZF9zaWcobG9jay0+c2lnbmFsLCBjdXJyZW50LCAwKTsKLQkJc3Bpbl91bmxvY2soJmxvY2stPmxvY2spOwotCQlyZXR1cm4gZmFsc2U7Ci0JfQogCWlmIChsb2NrLT5ydyA+PSAwICYmIGxvY2stPmZsYWdzID09IDApIHsKIAkJKytsb2NrLT5ydzsKIAkJYmxvY2sgPSBmYWxzZTsKQEAgLTE0NywxMSArMTM0LDYgQEAgc3RhdGljIGJvb2wgX190dG1fd3JpdGVfbG9jayhzdHJ1Y3QgdHRtX2xvY2sgKmxvY2spCiAJYm9vbCBsb2NrZWQgPSBmYWxzZTsKIAogCXNwaW5fbG9jaygmbG9jay0+bG9jayk7Ci0JaWYgKHVubGlrZWx5KGxvY2stPmtpbGxfdGFrZXJzKSkgewotCQlzZW5kX3NpZyhsb2NrLT5zaWduYWwsIGN1cnJlbnQsIDApOwotCQlzcGluX3VubG9jaygmbG9jay0+bG9jayk7Ci0JCXJldHVybiBmYWxzZTsKLQl9CiAJaWYgKGxvY2stPnJ3ID09IDAgJiYgKChsb2NrLT5mbGFncyAmIH5UVE1fV1JJVEVfTE9DS19QRU5ESU5HKSA9PSAwKSkgewogCQlsb2NrLT5ydyA9IC0xOwogCQlsb2NrLT5mbGFncyAmPSB+VFRNX1dSSVRFX0xPQ0tfUEVORElORzsKQEAgLTE4Miw4OCArMTY0LDYgQEAgaW50IHR0bV93cml0ZV9sb2NrKHN0cnVjdCB0dG1fbG9jayAqbG9jaywgYm9vbCBpbnRlcnJ1cHRpYmxlKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgX190dG1fdnRfdW5sb2NrKHN0cnVjdCB0dG1fbG9jayAqbG9jaykKLXsKLQlpbnQgcmV0ID0gMDsKLQotCXNwaW5fbG9jaygmbG9jay0+bG9jayk7Ci0JaWYgKHVubGlrZWx5KCEobG9jay0+ZmxhZ3MgJiBUVE1fVlRfTE9DSykpKQotCQlyZXQgPSAtRUlOVkFMOwotCWxvY2stPmZsYWdzICY9IH5UVE1fVlRfTE9DSzsKLQl3YWtlX3VwX2FsbCgmbG9jay0+cXVldWUpOwotCXNwaW5fdW5sb2NrKCZsb2NrLT5sb2NrKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyB2b2lkIHR0bV92dF9sb2NrX3JlbW92ZShzdHJ1Y3QgdHRtX2Jhc2Vfb2JqZWN0ICoqcF9iYXNlKQotewotCXN0cnVjdCB0dG1fYmFzZV9vYmplY3QgKmJhc2UgPSAqcF9iYXNlOwotCXN0cnVjdCB0dG1fbG9jayAqbG9jayA9IGNvbnRhaW5lcl9vZihiYXNlLCBzdHJ1Y3QgdHRtX2xvY2ssIGJhc2UpOwotCWludCByZXQ7Ci0KLQkqcF9iYXNlID0gTlVMTDsKLQlyZXQgPSBfX3R0bV92dF91bmxvY2sobG9jayk7Ci0JQlVHX09OKHJldCAhPSAwKTsKLX0KLQotc3RhdGljIGJvb2wgX190dG1fdnRfbG9jayhzdHJ1Y3QgdHRtX2xvY2sgKmxvY2spCi17Ci0JYm9vbCBsb2NrZWQgPSBmYWxzZTsKLQotCXNwaW5fbG9jaygmbG9jay0+bG9jayk7Ci0JaWYgKGxvY2stPnJ3ID09IDApIHsKLQkJbG9jay0+ZmxhZ3MgJj0gflRUTV9WVF9MT0NLX1BFTkRJTkc7Ci0JCWxvY2stPmZsYWdzIHw9IFRUTV9WVF9MT0NLOwotCQlsb2NrZWQgPSB0cnVlOwotCX0gZWxzZSB7Ci0JCWxvY2stPmZsYWdzIHw9IFRUTV9WVF9MT0NLX1BFTkRJTkc7Ci0JfQotCXNwaW5fdW5sb2NrKCZsb2NrLT5sb2NrKTsKLQlyZXR1cm4gbG9ja2VkOwotfQotCi1pbnQgdHRtX3Z0X2xvY2soc3RydWN0IHR0bV9sb2NrICpsb2NrLAotCQlib29sIGludGVycnVwdGlibGUsCi0JCXN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxlKQotewotCWludCByZXQgPSAwOwotCi0JaWYgKGludGVycnVwdGlibGUpIHsKLQkJcmV0ID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGxvY2stPnF1ZXVlLAotCQkJCQkgICAgICAgX190dG1fdnRfbG9jayhsb2NrKSk7Ci0JCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKLQkJCXNwaW5fbG9jaygmbG9jay0+bG9jayk7Ci0JCQlsb2NrLT5mbGFncyAmPSB+VFRNX1ZUX0xPQ0tfUEVORElORzsKLQkJCXdha2VfdXBfYWxsKCZsb2NrLT5xdWV1ZSk7Ci0JCQlzcGluX3VubG9jaygmbG9jay0+bG9jayk7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JfSBlbHNlCi0JCXdhaXRfZXZlbnQobG9jay0+cXVldWUsIF9fdHRtX3Z0X2xvY2sobG9jaykpOwotCi0JLyoKLQkgKiBBZGQgYSBiYXNlLW9iamVjdCwgdGhlIGRlc3RydWN0b3Igb2Ygd2hpY2ggd2lsbAotCSAqIG1ha2Ugc3VyZSB0aGUgbG9jayBpcyByZWxlYXNlZCBpZiB0aGUgY2xpZW50IGRpZXMKLQkgKiB3aGlsZSBob2xkaW5nIGl0LgotCSAqLwotCi0JcmV0ID0gdHRtX2Jhc2Vfb2JqZWN0X2luaXQodGZpbGUsICZsb2NrLT5iYXNlLCBmYWxzZSwKLQkJCQkgICB0dG1fbG9ja190eXBlLCAmdHRtX3Z0X2xvY2tfcmVtb3ZlLCBOVUxMKTsKLQlpZiAocmV0KQotCQkodm9pZClfX3R0bV92dF91bmxvY2sobG9jayk7Ci0JZWxzZQotCQlsb2NrLT52dF9ob2xkZXIgPSB0ZmlsZTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLWludCB0dG1fdnRfdW5sb2NrKHN0cnVjdCB0dG1fbG9jayAqbG9jaykKLXsKLQlyZXR1cm4gdHRtX3JlZl9vYmplY3RfYmFzZV91bnJlZihsb2NrLT52dF9ob2xkZXIsCi0JCQkJCSBsb2NrLT5iYXNlLmhhbmRsZSwgVFRNX1JFRl9VU0FHRSk7Ci19Ci0KIHZvaWQgdHRtX3N1c3BlbmRfdW5sb2NrKHN0cnVjdCB0dG1fbG9jayAqbG9jaykKIHsKIAlzcGluX2xvY2soJmxvY2stPmxvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbG9jay5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbG9jay5oCmluZGV4IDBjM2FmOTguLmFmOGIyOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX2xvY2suaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9sb2NrLmgKQEAgLTQ5LDggKzQ5LDggQEAKICNpZm5kZWYgX1RUTV9MT0NLX0hfCiAjZGVmaW5lIF9UVE1fTE9DS19IXwogCi0jaW5jbHVkZSA8bGludXgvd2FpdC5oPgogI2luY2x1ZGUgPGxpbnV4L2F0b21pYy5oPgorI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KIAogI2luY2x1ZGUgInR0bV9vYmplY3QuaCIKIApAQCAtNjMsOCArNjMsNiBAQAogICogQGxvY2s6IFNwaW5sb2NrIHByb3RlY3Rpbmcgc29tZSBsb2NrIG1lbWJlcnMuCiAgKiBAcnc6IFJlYWQtd3JpdGUgbG9jayBjb3VudGVyLiBQcm90ZWN0ZWQgYnkgQGxvY2suCiAgKiBAZmxhZ3M6IExvY2sgc3RhdGUuIFByb3RlY3RlZCBieSBAbG9jay4KLSAqIEBraWxsX3Rha2VyczogQm9vbGVhbiB3aGV0aGVyIHRvIGtpbGwgdGFrZXJzIG9mIHRoZSBsb2NrLgotICogQHNpZ25hbDogU2lnbmFsIHRvIHNlbmQgd2hlbiBraWxsX3Rha2VycyBpcyB0cnVlLgogICovCiAKIHN0cnVjdCB0dG1fbG9jayB7CkBAIC03Myw5ICs3MSw2IEBAIHN0cnVjdCB0dG1fbG9jayB7CiAJc3BpbmxvY2tfdCBsb2NrOwogCWludDMyX3Qgcnc7CiAJdWludDMyX3QgZmxhZ3M7Ci0JYm9vbCBraWxsX3Rha2VyczsKLQlpbnQgc2lnbmFsOwotCXN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUgKnZ0X2hvbGRlcjsKIH07CiAKIApAQCAtMjIwLDI5ICsyMTUsNCBAQCBleHRlcm4gdm9pZCB0dG1fd3JpdGVfdW5sb2NrKHN0cnVjdCB0dG1fbG9jayAqbG9jayk7CiAgKi8KIGV4dGVybiBpbnQgdHRtX3dyaXRlX2xvY2soc3RydWN0IHR0bV9sb2NrICpsb2NrLCBib29sIGludGVycnVwdGlibGUpOwogCi0vKioKLSAqIHR0bV9sb2NrX3NldF9raWxsCi0gKgotICogQGxvY2s6IFBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX2xvY2sKLSAqIEB2YWw6IEJvb2xlYW4gd2hldGhlciB0byBraWxsIHByb2Nlc3NlcyB0YWtpbmcgdGhlIGxvY2suCi0gKiBAc2lnbmFsOiBTaWduYWwgdG8gc2VuZCB0byB0aGUgcHJvY2VzcyB0YWtpbmcgdGhlIGxvY2suCi0gKgotICogVGhlIGtpbGwtd2hlbi10YWtpbmctbG9jayBmdW5jdGlvbmFsaXR5IGlzIHVzZWQgdG8ga2lsbCBwcm9jZXNzZXMgdGhhdCBrZWVwCi0gKiBvbiB1c2luZyB0aGUgVFRNIGZ1bmN0aW9uYWxpdHkgd2hlbiBpdHMgcmVzb3VyY2VzIGhhcyBiZWVuIHRha2VuIGRvd24sIGZvcgotICogZXhhbXBsZSB3aGVuIHRoZSBYIHNlcnZlciBleGl0cy4gQSB0eXBpY2FsIHNlcXVlbmNlIHdvdWxkIGxvb2sgbGlrZSB0aGlzOgotICogLSBYIHNlcnZlciB0YWtlcyBsb2NrIGluIHdyaXRlIG1vZGUuCi0gKiAtIHR0bV9sb2NrX3NldF9raWxsKCkgaXMgY2FsbGVkIHdpdGggQHZhbCBzZXQgdG8gdHJ1ZS4KLSAqIC0gQXMgcGFydCBvZiBYIHNlcnZlciBleGl0LCBUVE0gcmVzb3VyY2VzIGFyZSB0YWtlbiBkb3duLgotICogLSBYIHNlcnZlciByZWxlYXNlcyB0aGUgbG9jayBvbiBmaWxlIHJlbGVhc2UuCi0gKiAtIEFub3RoZXIgZHJpIGNsaWVudCB3YW50cyB0byByZW5kZXIsIHRha2VzIHRoZSBsb2NrIGFuZCBpcyBraWxsZWQuCi0gKgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgdHRtX2xvY2tfc2V0X2tpbGwoc3RydWN0IHR0bV9sb2NrICpsb2NrLCBib29sIHZhbCwKLQkJCQkgICAgIGludCBzaWduYWwpCi17Ci0JbG9jay0+a2lsbF90YWtlcnMgPSB2YWw7Ci0JaWYgKHZhbCkKLQkJbG9jay0+c2lnbmFsID0gc2lnbmFsOwotfQotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmgKaW5kZXggNTBkMjZjNy4uZWRlMjZkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmgKQEAgLTM3LDExICszNywxMiBAQAogI2lmbmRlZiBfVFRNX09CSkVDVF9IXwogI2RlZmluZSBfVFRNX09CSkVDVF9IXwogCi0jaW5jbHVkZSA8bGludXgvbGlzdC5oPgotI2luY2x1ZGUgPGRybS9kcm1faGFzaHRhYi5oPgotI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KLSNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KKyNpbmNsdWRlIDxsaW51eC9rcmVmLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2hhc2h0YWIuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9tZW1vcnkuaD4KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iaW5kaW5nLmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iaW5kaW5nLmgKaW5kZXggZjZhYjc5ZC4uY2Q5ODA1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYmluZGluZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JpbmRpbmcuaApAQCAtMjcsOSArMjcsMTAgQEAKICNpZm5kZWYgX1ZNV0dGWF9CSU5ESU5HX0hfCiAjZGVmaW5lIF9WTVdHRlhfQklORElOR19IXwogCi0jaW5jbHVkZSAiZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX3JlZy5oIgogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KIAorI2luY2x1ZGUgImRldmljZV9pbmNsdWRlL3N2Z2EzZF9yZWcuaCIKKwogI2RlZmluZSBWTVdfTUFYX1ZJRVdfQklORElOR1MgMTI4CiAKIHN0cnVjdCB2bXdfcHJpdmF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JsaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JsaXQuYwppbmRleCBmYzY2NzNjLi5iYjQ2Y2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYmxpdC5jCkBAIC00NTksOSArNDU5LDkgQEAgaW50IHZtd19ib19jcHVfYmxpdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmRzdCwKIAogCS8qIEJ1ZmZlciBvYmplY3RzIG5lZWQgdG8gYmUgZWl0aGVyIHBpbm5lZCBvciByZXNlcnZlZDogKi8KIAlpZiAoIShkc3QtPm1lbS5wbGFjZW1lbnQgJiBUVE1fUExfRkxBR19OT19FVklDVCkpCi0JCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRzdC0+cmVzdi0+bG9jay5iYXNlKTsKKwkJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZHN0LT5iYXNlLnJlc3YpOwogCWlmICghKHNyYy0+bWVtLnBsYWNlbWVudCAmIFRUTV9QTF9GTEFHX05PX0VWSUNUKSkKLQkJbG9ja2RlcF9hc3NlcnRfaGVsZCgmc3JjLT5yZXN2LT5sb2NrLmJhc2UpOworCQlkbWFfcmVzdl9hc3NlcnRfaGVsZChzcmMtPmJhc2UucmVzdik7CiAKIAlpZiAoZHN0LT50dG0tPnN0YXRlID09IHR0X3VucG9wdWxhdGVkKSB7CiAJCXJldCA9IGRzdC0+dHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZShkc3QtPnR0bSwgJmN0eCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYwppbmRleCA1ZDVjMmJjLi5hYWQ4ZDgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlICJ2bXdnZnhfZHJ2LmgiCiAjaW5jbHVkZSAidHRtX29iamVjdC5oIgogCkBAIC0zNDIsNyArMzQxLDcgQEAgdm9pZCB2bXdfYm9fcGluX3Jlc2VydmVkKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvLCBib29sIHBpbikKIAl1aW50MzJfdCBvbGRfbWVtX3R5cGUgPSBiby0+bWVtLm1lbV90eXBlOwogCWludCByZXQ7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZiby0+cmVzdi0+bG9jay5iYXNlKTsKKwlkbWFfcmVzdl9hc3NlcnRfaGVsZChiby0+YmFzZS5yZXN2KTsKIAogCWlmIChwaW4pIHsKIAkJaWYgKHZiby0+cGluX2NvdW50KysgPiAwKQpAQCAtNTEwLDYgKzUwOSw4IEBAIGludCB2bXdfYm9faW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCiAJYWNjX3NpemUgPSB2bXdfYm9fYWNjX3NpemUoZGV2X3ByaXYsIHNpemUsIHVzZXIpOwogCW1lbXNldCh2bXdfYm8sIDAsIHNpemVvZigqdm13X2JvKSk7CisJQlVJTERfQlVHX09OKFRUTV9NQVhfQk9fUFJJT1JJVFkgPD0gMyk7CisJdm13X2JvLT5iYXNlLnByaW9yaXR5ID0gMzsKIAogCUlOSVRfTElTVF9IRUFEKCZ2bXdfYm8tPnJlc19saXN0KTsKIApAQCAtNjg5LDggKzY5MCw4IEBAIHN0YXRpYyBpbnQgdm13X3VzZXJfYm9fc3luY2NwdV9ncmFiKHN0cnVjdCB2bXdfdXNlcl9idWZmZXJfb2JqZWN0ICp1c2VyX2JvLAogCQlib29sIG5vbmJsb2NrID0gISEoZmxhZ3MgJiBkcm1fdm13X3N5bmNjcHVfZG9udGJsb2NrKTsKIAkJbG9uZyBscmV0OwogCi0JCWxyZXQgPSByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdQotCQkJKGJvLT5yZXN2LCB0cnVlLCB0cnVlLAorCQlscmV0ID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdQorCQkJKGJvLT5iYXNlLnJlc3YsIHRydWUsIHRydWUsCiAJCQkgbm9uYmxvY2sgPyAwIDogTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwogCQlpZiAoIWxyZXQpCiAJCQlyZXR1cm4gLUVCVVNZOwpAQCAtODM1LDcgKzgzNiw3IEBAIGludCB2bXdfYm9fYWxsb2NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZ290byBvdXRfbm9fYm87CiAKIAlyZXAtPmhhbmRsZSA9IGhhbmRsZTsKLQlyZXAtPm1hcF9oYW5kbGUgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJnZiby0+YmFzZS52bWFfbm9kZSk7CisJcmVwLT5tYXBfaGFuZGxlID0gZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZ2Ym8tPmJhc2UuYmFzZS52bWFfbm9kZSk7CiAJcmVwLT5jdXJfZ21yX2lkID0gaGFuZGxlOwogCXJlcC0+Y3VyX2dtcl9vZmZzZXQgPSAwOwogCkBAIC0xMDA3LDEwICsxMDA4LDEwIEBAIHZvaWQgdm13X2JvX2ZlbmNlX3NpbmdsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCiAJaWYgKGZlbmNlID09IE5VTEwpIHsKIAkJdm13X2V4ZWNidWZfZmVuY2VfY29tbWFuZHMoTlVMTCwgZGV2X3ByaXYsICZmZW5jZSwgTlVMTCk7Ci0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShiby0+cmVzdiwgJmZlbmNlLT5iYXNlKTsKKwkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2UoYm8tPmJhc2UucmVzdiwgJmZlbmNlLT5iYXNlKTsKIAkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOwogCX0gZWxzZQotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPnJlc3YsICZmZW5jZS0+YmFzZSk7CisJCWRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKGJvLT5iYXNlLnJlc3YsICZmZW5jZS0+YmFzZSk7CiB9CiAKIApAQCAtMTA3Nyw3ICsxMDc4LDcgQEAgaW50IHZtd19kdW1iX21hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAJaWYgKHJldCAhPSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCSpvZmZzZXQgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJm91dF9idWYtPmJhc2Uudm1hX25vZGUpOworCSpvZmZzZXQgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJm91dF9idWYtPmJhc2UuYmFzZS52bWFfbm9kZSk7CiAJdm13X2JvX3VucmVmZXJlbmNlKCZvdXRfYnVmKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NtZGJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMKaW5kZXggNTY5NzllNC4uMDY1MDE1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMKQEAgLTI1LDYgKzI1LDkgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKKyNpbmNsdWRlIDxsaW51eC9kbWFwb29sLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisKICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19hcGkuaD4KIAogI2luY2x1ZGUgInZtd2dmeF9kcnYuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvbnRleHQuYwppbmRleCA2M2YxMTEwLi5hNTZjOWQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY29udGV4dC5jCkBAIC04OCw2ICs4OCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm13X3Jlc19mdW5jIHZtd19nYl9jb250ZXh0X2Z1bmMgPSB7CiAJLnJlc190eXBlID0gdm13X3Jlc19jb250ZXh0LAogCS5uZWVkc19iYWNrdXAgPSB0cnVlLAogCS5tYXlfZXZpY3QgPSB0cnVlLAorCS5wcmlvID0gMywKKwkuZGlydHlfcHJpbyA9IDMsCiAJLnR5cGVfbmFtZSA9ICJndWVzdCBiYWNrZWQgY29udGV4dHMiLAogCS5iYWNrdXBfcGxhY2VtZW50ID0gJnZtd19tb2JfcGxhY2VtZW50LAogCS5jcmVhdGUgPSB2bXdfZ2JfY29udGV4dF9jcmVhdGUsCkBAIC0xMDAsNiArMTAyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bXdfcmVzX2Z1bmMgdm13X2R4X2NvbnRleHRfZnVuYyA9IHsKIAkucmVzX3R5cGUgPSB2bXdfcmVzX2R4X2NvbnRleHQsCiAJLm5lZWRzX2JhY2t1cCA9IHRydWUsCiAJLm1heV9ldmljdCA9IHRydWUsCisJLnByaW8gPSAzLAorCS5kaXJ0eV9wcmlvID0gMywKIAkudHlwZV9uYW1lID0gImR4IGNvbnRleHRzIiwKIAkuYmFja3VwX3BsYWNlbWVudCA9ICZ2bXdfbW9iX3BsYWNlbWVudCwKIAkuY3JlYXRlID0gdm13X2R4X2NvbnRleHRfY3JlYXRlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jCmluZGV4IGI0ZjZlMTIuLjNjYTVjZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvdGFibGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMKQEAgLTExNiw2ICsxMTYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZtd19yZXNfZnVuYyB2bXdfY290YWJsZV9mdW5jID0gewogCS5yZXNfdHlwZSA9IHZtd19yZXNfY290YWJsZSwKIAkubmVlZHNfYmFja3VwID0gdHJ1ZSwKIAkubWF5X2V2aWN0ID0gdHJ1ZSwKKwkucHJpbyA9IDMsCisJLmRpcnR5X3ByaW8gPSAzLAogCS50eXBlX25hbWUgPSAiY29udGV4dCBndWVzdCBiYWNrZWQgb2JqZWN0IHRhYmxlcyIsCiAJLmJhY2t1cF9wbGFjZW1lbnQgPSAmdm13X21vYl9wbGFjZW1lbnQsCiAJLmNyZWF0ZSA9IHZtd19jb3RhYmxlX2NyZWF0ZSwKQEAgLTE2OSw3ICsxNzEsNyBAQCBzdGF0aWMgaW50IHZtd19jb3RhYmxlX3Vuc2NydWIoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQogCX0gKmNtZDsKIAogCVdBUk5fT05fT05DRShiby0+bWVtLm1lbV90eXBlICE9IFZNV19QTF9NT0IpOwotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmJvLT5yZXN2LT5sb2NrLmJhc2UpOworCWRtYV9yZXN2X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOwogCiAJY21kID0gVk1XX0ZJRk9fUkVTRVJWRShkZXZfcHJpdiwgc2l6ZW9mKCpjbWQpKTsKIAlpZiAoIWNtZCkKQEAgLTMwNywxMSArMzA5LDExIEBAIHN0YXRpYyBpbnQgdm13X2NvdGFibGVfdW5iaW5kKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gdmFsX2J1Zi0+Ym87CiAJc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlOwogCi0JaWYgKGxpc3RfZW1wdHkoJnJlcy0+bW9iX2hlYWQpKQorCWlmICghdm13X3Jlc291cmNlX21vYl9hdHRhY2hlZChyZXMpKQogCQlyZXR1cm4gMDsKIAogCVdBUk5fT05fT05DRShiby0+bWVtLm1lbV90eXBlICE9IFZNV19QTF9NT0IpOwotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmJvLT5yZXN2LT5sb2NrLmJhc2UpOworCWRtYV9yZXN2X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmJpbmRpbmdfbXV0ZXgpOwogCWlmICghdmNvdGJsLT5zY3J1YmJlZCkKQEAgLTQ1Myw2ICs0NTUsNyBAQCBzdGF0aWMgaW50IHZtd19jb3RhYmxlX3Jlc2l6ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsIHNpemVfdCBuZXdfc2l6ZSkKIAkJZ290byBvdXRfd2FpdDsKIAl9CiAKKwl2bXdfcmVzb3VyY2VfbW9iX2RldGFjaChyZXMpOwogCXJlcy0+YmFja3VwID0gYnVmOwogCXJlcy0+YmFja3VwX3NpemUgPSBuZXdfc2l6ZTsKIAl2Y290YmwtPnNpemVfcmVhZF9iYWNrID0gY3VyX3NpemVfcmVhZF9iYWNrOwpAQCAtNDY3LDEyICs0NzAsMTIgQEAgc3RhdGljIGludCB2bXdfY290YWJsZV9yZXNpemUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLCBzaXplX3QgbmV3X3NpemUpCiAJCXJlcy0+YmFja3VwID0gb2xkX2J1ZjsKIAkJcmVzLT5iYWNrdXBfc2l6ZSA9IG9sZF9zaXplOwogCQl2Y290YmwtPnNpemVfcmVhZF9iYWNrID0gb2xkX3NpemVfcmVhZF9iYWNrOworCQl2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaChyZXMpOwogCQlnb3RvIG91dF93YWl0OwogCX0KIAorCXZtd19yZXNvdXJjZV9tb2JfYXR0YWNoKHJlcyk7CiAJLyogTGV0IGdvIG9mIHRoZSBvbGQgbW9iLiAqLwotCWxpc3RfZGVsKCZyZXMtPm1vYl9oZWFkKTsKLQlsaXN0X2FkZF90YWlsKCZyZXMtPm1vYl9oZWFkLCAmYnVmLT5yZXNfbGlzdCk7CiAJdm13X2JvX3VucmVmZXJlbmNlKCZvbGRfYnVmKTsKIAlyZXMtPmlkID0gdmNvdGJsLT50eXBlOwogCkBAIC00OTYsNyArNDk5LDcgQEAgc3RhdGljIGludCB2bXdfY290YWJsZV9yZXNpemUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLCBzaXplX3QgbmV3X3NpemUpCiAgKiBpcyBjYWxsZWQgYmVmb3JlIGJpbmQoKSBpbiB0aGUgdmFsaWRhdGlvbiBzZXF1ZW5jZSBpcyBpbnN0ZWFkIHVzZWQgZm9yIHR3bwogICogdGhpbmdzLgogICogMSkgVW5zY3J1YiB0aGUgY290YWJsZSBpZiBpdCBpcyBzY3J1YmJlZCBhbmQgc3RpbGwgYXR0YWNoZWQgdG8gYSBiYWNrdXAKLSAqICAgIGJ1ZmZlciwgdGhhdCBpcywgaWYgQHJlcy0+bW9iX2hlYWQgaXMgbm9uLWVtcHR5LgorICogICAgYnVmZmVyLgogICogMikgUmVzaXplIHRoZSBjb3RhYmxlIGlmIG5lZWRlZC4KICAqLwogc3RhdGljIGludCB2bXdfY290YWJsZV9jcmVhdGUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQpAQCAtNTEyLDcgKzUxNSw3IEBAIHN0YXRpYyBpbnQgdm13X2NvdGFibGVfY3JlYXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcykKIAkJbmV3X3NpemUgKj0gMjsKIAogCWlmIChsaWtlbHkobmV3X3NpemUgPD0gcmVzLT5iYWNrdXBfc2l6ZSkpIHsKLQkJaWYgKHZjb3RibC0+c2NydWJiZWQgJiYgIWxpc3RfZW1wdHkoJnJlcy0+bW9iX2hlYWQpKSB7CisJCWlmICh2Y290YmwtPnNjcnViYmVkICYmIHZtd19yZXNvdXJjZV9tb2JfYXR0YWNoZWQocmVzKSkgewogCQkJcmV0ID0gdm13X2NvdGFibGVfdW5zY3J1YihyZXMpOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwppbmRleCA5NTA2MTkwLi5iMzhiY2IwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKQEAgLTI0LDE3ICsyNCwyMiBAQAogICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisKICNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAotI2luY2x1ZGUgPGRybS9kcm1QLmg+Ci0jaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgotI2luY2x1ZGUgInZtd2dmeF9iaW5kaW5nLmgiCi0jaW5jbHVkZSAidHRtX29iamVjdC5oIgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGNpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9zeXNmcy5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX21vZHVsZS5oPgorI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgorCisjaW5jbHVkZSAidHRtX29iamVjdC5oIgorI2luY2x1ZGUgInZtd2dmeF9iaW5kaW5nLmgiCisjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgogCiAjZGVmaW5lIFZNV0dGWF9EUklWRVJfREVTQyAiTGludXggZHJtIGRyaXZlciBmb3IgVk13YXJlIGdyYXBoaWNzIGRldmljZXMiCiAjZGVmaW5lIFZNV0dGWF9DSElQX1NWR0FJSSAwCkBAIC0xODYsNyArMTkxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyB2bXdfaW9jdGxzW10gPSB7CiAJCSAgICAgIERSTV9SRU5ERVJfQUxMT1cpLAogCVZNV19JT0NUTF9ERUYoVk1XX1JFRl9TVVJGQUNFLCB2bXdfc3VyZmFjZV9yZWZlcmVuY2VfaW9jdGwsCiAJCSAgICAgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9BTExPVyksCi0JVk1XX0lPQ1RMX0RFRihWTVdfRVhFQ0JVRiwgTlVMTCwgRFJNX0FVVEggfAorCVZNV19JT0NUTF9ERUYoVk1XX0VYRUNCVUYsIHZtd19leGVjYnVmX2lvY3RsLCBEUk1fQVVUSCB8CiAJCSAgICAgIERSTV9SRU5ERVJfQUxMT1cpLAogCVZNV19JT0NUTF9ERUYoVk1XX0ZFTkNFX1dBSVQsIHZtd19mZW5jZV9vYmpfd2FpdF9pb2N0bCwKIAkJICAgICAgRFJNX1JFTkRFUl9BTExPVyksCkBAIC0yNTQsNyArMjU5LDYgQEAgc3RhdGljIGludCB2bXdfcmVzdHJpY3RfZG1hX21hc2s7CiBzdGF0aWMgaW50IHZtd19hc3N1bWVfMTZicHA7CiAKIHN0YXRpYyBpbnQgdm13X3Byb2JlKHN0cnVjdCBwY2lfZGV2ICosIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICopOwotc3RhdGljIHZvaWQgdm13X21hc3Rlcl9pbml0KHN0cnVjdCB2bXdfbWFzdGVyICopOwogc3RhdGljIGludCB2bXdnZnhfcG1fbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyB2YWwsCiAJCQkgICAgICB2b2lkICpwdHIpOwogCkBAIC02NDEsNyArNjQ1LDYgQEAgc3RhdGljIGludCB2bXdfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBjaGlwc2V0KQogCQlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPnJlc19scnVbaV0pOwogCX0KIAotCW11dGV4X2luaXQoJmRldl9wcml2LT5pbml0X211dGV4KTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXZfcHJpdi0+ZmVuY2VfcXVldWUpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldl9wcml2LT5maWZvX3F1ZXVlKTsKIAlkZXZfcHJpdi0+ZmVuY2VfcXVldWVfd2FpdGVycyA9IDA7CkBAIC03NjUsMTAgKzc2OCw2IEBAIHN0YXRpYyBpbnQgdm13X2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hpcHNldCkKIAlEUk1fSU5GTygiTU1JTyBhdCAweCUwOHggc2l6ZSBpcyAldSBraUJcbiIsCiAJCSBkZXZfcHJpdi0+bW1pb19zdGFydCwgZGV2X3ByaXYtPm1taW9fc2l6ZSAvIDEwMjQpOwogCi0Jdm13X21hc3Rlcl9pbml0KCZkZXZfcHJpdi0+ZmJkZXZfbWFzdGVyKTsKLQl0dG1fbG9ja19zZXRfa2lsbCgmZGV2X3ByaXYtPmZiZGV2X21hc3Rlci5sb2NrLCBmYWxzZSwgU0lHVEVSTSk7Ci0JZGV2X3ByaXYtPmFjdGl2ZV9tYXN0ZXIgPSAmZGV2X3ByaXYtPmZiZGV2X21hc3RlcjsKLQogCWRldl9wcml2LT5tbWlvX3ZpcnQgPSBtZW1yZW1hcChkZXZfcHJpdi0+bW1pb19zdGFydCwKIAkJCQkgICAgICAgZGV2X3ByaXYtPm1taW9fc2l6ZSwgTUVNUkVNQVBfV0IpOwogCkBAIC0xMDEwLDE4ICsxMDA5LDcgQEAgc3RhdGljIHZvaWQgdm13X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHN0YXRpYyB2b2lkIHZtd19wb3N0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsKLQlzdHJ1Y3Qgdm13X2Zwcml2ICp2bXdfZnA7Ci0KLQl2bXdfZnAgPSB2bXdfZnByaXYoZmlsZV9wcml2KTsKLQotCWlmICh2bXdfZnAtPmxvY2tlZF9tYXN0ZXIpIHsKLQkJc3RydWN0IHZtd19tYXN0ZXIgKnZtYXN0ZXIgPQotCQkJdm13X21hc3Rlcih2bXdfZnAtPmxvY2tlZF9tYXN0ZXIpOwotCi0JCXR0bV9sb2NrX3NldF9raWxsKCZ2bWFzdGVyLT5sb2NrLCB0cnVlLCBTSUdURVJNKTsKLQkJdHRtX3Z0X3VubG9jaygmdm1hc3Rlci0+bG9jayk7Ci0JCWRybV9tYXN0ZXJfcHV0KCZ2bXdfZnAtPmxvY2tlZF9tYXN0ZXIpOwotCX0KKwlzdHJ1Y3Qgdm13X2Zwcml2ICp2bXdfZnAgPSB2bXdfZnByaXYoZmlsZV9wcml2KTsKIAogCXR0bV9vYmplY3RfZmlsZV9yZWxlYXNlKCZ2bXdfZnAtPnRmaWxlKTsKIAlrZnJlZSh2bXdfZnApOwpAQCAtMTA1MCw1NSArMTAzOCw2IEBAIHN0YXRpYyBpbnQgdm13X2RyaXZlcl9vcGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgdm13X21hc3RlciAqdm13X21hc3Rlcl9jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCQkJICAgdW5zaWduZWQgaW50IGZsYWdzKQotewotCWludCByZXQ7Ci0Jc3RydWN0IHZtd19mcHJpdiAqdm13X2ZwID0gdm13X2Zwcml2KGZpbGVfcHJpdik7Ci0Jc3RydWN0IHZtd19tYXN0ZXIgKnZtYXN0ZXI7Ci0KLQlpZiAoIWRybV9pc19wcmltYXJ5X2NsaWVudChmaWxlX3ByaXYpIHx8ICEoZmxhZ3MgJiBEUk1fQVVUSCkpCi0JCXJldHVybiBOVUxMOwotCi0JcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXYtPm1hc3Rlcl9tdXRleCk7Ci0JaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKLQkJcmV0dXJuIEVSUl9QVFIoLUVSRVNUQVJUU1lTKTsKLQotCWlmIChkcm1faXNfY3VycmVudF9tYXN0ZXIoZmlsZV9wcml2KSkgewotCQltdXRleF91bmxvY2soJmRldi0+bWFzdGVyX211dGV4KTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCi0JLyoKLQkgKiBDaGVjayBpZiB3ZSB3ZXJlIHByZXZpb3VzbHkgbWFzdGVyLCBidXQgbm93IGRyb3BwZWQuIEluIHRoYXQKLQkgKiBjYXNlLCBhbGxvdyBhdCBsZWFzdCByZW5kZXIgbm9kZSBmdW5jdGlvbmFsaXR5LgotCSAqLwotCWlmICh2bXdfZnAtPmxvY2tlZF9tYXN0ZXIpIHsKLQkJbXV0ZXhfdW5sb2NrKCZkZXYtPm1hc3Rlcl9tdXRleCk7Ci0KLQkJaWYgKGZsYWdzICYgRFJNX1JFTkRFUl9BTExPVykKLQkJCXJldHVybiBOVUxMOwotCi0JCURSTV9FUlJPUigiRHJvcHBlZCBtYXN0ZXIgdHJ5aW5nIHRvIGFjY2VzcyBpb2N0bCB0aGF0ICIKLQkJCSAgInJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLlxuIik7Ci0JCXJldHVybiBFUlJfUFRSKC1FQUNDRVMpOwotCX0KLQltdXRleF91bmxvY2soJmRldi0+bWFzdGVyX211dGV4KTsKLQotCS8qCi0JICogVGFrZSB0aGUgVFRNIGxvY2suIFBvc3NpYmx5IHNsZWVwIHdhaXRpbmcgZm9yIHRoZSBhdXRoZW50aWNhdGluZwotCSAqIG1hc3RlciB0byBiZWNvbWUgbWFzdGVyIGFnYWluLCBvciBmb3IgYSBTSUdURVJNIGlmIHRoZQotCSAqIGF1dGhlbnRpY2F0aW5nIG1hc3RlciBleGl0cy4KLQkgKi8KLQl2bWFzdGVyID0gdm13X21hc3RlcihmaWxlX3ByaXYtPm1hc3Rlcik7Ci0JcmV0ID0gdHRtX3JlYWRfbG9jaygmdm1hc3Rlci0+bG9jaywgdHJ1ZSk7Ci0JaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKLQkJdm1hc3RlciA9IEVSUl9QVFIocmV0KTsKLQotCXJldHVybiB2bWFzdGVyOwotfQotCiBzdGF0aWMgbG9uZyB2bXdfZ2VuZXJpY19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgYXJnLAogCQkJICAgICAgbG9uZyAoKmlvY3RsX2Z1bmMpKHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwKQEAgLTExMDcsOSArMTA0Niw3IEBAIHN0YXRpYyBsb25nIHZtd19nZW5lcmljX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAogCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmaWxlX3ByaXYtPm1pbm9yLT5kZXY7CiAJdW5zaWduZWQgaW50IG5yID0gRFJNX0lPQ1RMX05SKGNtZCk7Ci0Jc3RydWN0IHZtd19tYXN0ZXIgKnZtYXN0ZXI7CiAJdW5zaWduZWQgaW50IGZsYWdzOwotCWxvbmcgcmV0OwogCiAJLyoKIAkgKiBEbyBleHRyYSBjaGVja2luZyBvbiBkcml2ZXIgcHJpdmF0ZSBpb2N0bHMuCkBAIC0xMTIxLDE1ICsxMDU4LDcgQEAgc3RhdGljIGxvbmcgdm13X2dlbmVyaWNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCiAJCQkmdm13X2lvY3Rsc1tuciAtIERSTV9DT01NQU5EX0JBU0VdOwogCiAJCWlmIChuciA9PSBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1ZNV19FWEVDQlVGKSB7Ci0JCQlyZXQgPSAobG9uZykgZHJtX2lvY3RsX3Blcm1pdChpb2N0bC0+ZmxhZ3MsIGZpbGVfcHJpdik7Ci0JCQlpZiAodW5saWtlbHkocmV0ICE9IDApKQotCQkJCXJldHVybiByZXQ7Ci0KLQkJCWlmICh1bmxpa2VseSgoY21kICYgKElPQ19JTiB8IElPQ19PVVQpKSAhPSBJT0NfSU4pKQotCQkJCWdvdG8gb3V0X2lvX2VuY29kaW5nOwotCi0JCQlyZXR1cm4gKGxvbmcpIHZtd19leGVjYnVmX2lvY3RsKGRldiwgYXJnLCBmaWxlX3ByaXYsCi0JCQkJCQkJX0lPQ19TSVpFKGNtZCkpOworCQkJcmV0dXJuIGlvY3RsX2Z1bmMoZmlscCwgY21kLCBhcmcpOwogCQl9IGVsc2UgaWYgKG5yID09IERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVk1XX1VQREFURV9MQVlPVVQpIHsKIAkJCWlmICghZHJtX2lzX2N1cnJlbnRfbWFzdGVyKGZpbGVfcHJpdikgJiYKIAkJCSAgICAhY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKQEAgLTExNDMsMjEgKzEwNzIsNyBAQCBzdGF0aWMgbG9uZyB2bXdfZ2VuZXJpY19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKIAl9IGVsc2UgaWYgKCFkcm1faW9jdGxfZmxhZ3MobnIsICZmbGFncykpCiAJCXJldHVybiAtRUlOVkFMOwogCi0Jdm1hc3RlciA9IHZtd19tYXN0ZXJfY2hlY2soZGV2LCBmaWxlX3ByaXYsIGZsYWdzKTsKLQlpZiAoSVNfRVJSKHZtYXN0ZXIpKSB7Ci0JCXJldCA9IFBUUl9FUlIodm1hc3Rlcik7Ci0KLQkJaWYgKHJldCAhPSAtRVJFU1RBUlRTWVMpCi0JCQlEUk1fSU5GTygiSU9DVEwgRVJST1IgQ29tbWFuZCAlZCwgRXJyb3IgJWxkLlxuIiwKLQkJCQkgbnIsIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JcmV0ID0gaW9jdGxfZnVuYyhmaWxwLCBjbWQsIGFyZyk7Ci0JaWYgKHZtYXN0ZXIpCi0JCXR0bV9yZWFkX3VubG9jaygmdm1hc3Rlci0+bG9jayk7Ci0KLQlyZXR1cm4gcmV0OworCXJldHVybiBpb2N0bF9mdW5jKGZpbHAsIGNtZCwgYXJnKTsKIAogb3V0X2lvX2VuY29kaW5nOgogCURSTV9FUlJPUigiSW52YWxpZCBjb21tYW5kIGZvcm1hdCwgaW9jdGwgJWRcbiIsCkBAIC0xMTgwLDY5ICsxMDk1LDEwIEBAIHN0YXRpYyBsb25nIHZtd19jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCiB9CiAjZW5kaWYKIAotc3RhdGljIHZvaWQgdm13X2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotfQotCi1zdGF0aWMgdm9pZCB2bXdfbWFzdGVyX2luaXQoc3RydWN0IHZtd19tYXN0ZXIgKnZtYXN0ZXIpCi17Ci0JdHRtX2xvY2tfaW5pdCgmdm1hc3Rlci0+bG9jayk7Ci19Ci0KLXN0YXRpYyBpbnQgdm13X21hc3Rlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgICAgc3RydWN0IGRybV9tYXN0ZXIgKm1hc3RlcikKLXsKLQlzdHJ1Y3Qgdm13X21hc3RlciAqdm1hc3RlcjsKLQotCXZtYXN0ZXIgPSBremFsbG9jKHNpemVvZigqdm1hc3RlciksIEdGUF9LRVJORUwpOwotCWlmICh1bmxpa2VseSghdm1hc3RlcikpCi0JCXJldHVybiAtRU5PTUVNOwotCi0Jdm13X21hc3Rlcl9pbml0KHZtYXN0ZXIpOwotCXR0bV9sb2NrX3NldF9raWxsKCZ2bWFzdGVyLT5sb2NrLCB0cnVlLCBTSUdURVJNKTsKLQltYXN0ZXItPmRyaXZlcl9wcml2ID0gdm1hc3RlcjsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCB2bXdfbWFzdGVyX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX21hc3RlciAqbWFzdGVyKQotewotCXN0cnVjdCB2bXdfbWFzdGVyICp2bWFzdGVyID0gdm13X21hc3RlcihtYXN0ZXIpOwotCi0JbWFzdGVyLT5kcml2ZXJfcHJpdiA9IE5VTEw7Ci0Ja2ZyZWUodm1hc3Rlcik7Ci19Ci0KIHN0YXRpYyBpbnQgdm13X21hc3Rlcl9zZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAJCQkgIGJvb2wgZnJvbV9vcGVuKQogewotCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfcHJpdihkZXYpOwotCXN0cnVjdCB2bXdfZnByaXYgKnZtd19mcCA9IHZtd19mcHJpdihmaWxlX3ByaXYpOwotCXN0cnVjdCB2bXdfbWFzdGVyICphY3RpdmUgPSBkZXZfcHJpdi0+YWN0aXZlX21hc3RlcjsKLQlzdHJ1Y3Qgdm13X21hc3RlciAqdm1hc3RlciA9IHZtd19tYXN0ZXIoZmlsZV9wcml2LT5tYXN0ZXIpOwotCWludCByZXQgPSAwOwotCi0JaWYgKGFjdGl2ZSkgewotCQlCVUdfT04oYWN0aXZlICE9ICZkZXZfcHJpdi0+ZmJkZXZfbWFzdGVyKTsKLQkJcmV0ID0gdHRtX3Z0X2xvY2soJmFjdGl2ZS0+bG9jaywgZmFsc2UsIHZtd19mcC0+dGZpbGUpOwotCQlpZiAodW5saWtlbHkocmV0ICE9IDApKQotCQkJcmV0dXJuIHJldDsKLQotCQl0dG1fbG9ja19zZXRfa2lsbCgmYWN0aXZlLT5sb2NrLCB0cnVlLCBTSUdURVJNKTsKLQkJZGV2X3ByaXYtPmFjdGl2ZV9tYXN0ZXIgPSBOVUxMOwotCX0KLQotCXR0bV9sb2NrX3NldF9raWxsKCZ2bWFzdGVyLT5sb2NrLCBmYWxzZSwgU0lHVEVSTSk7Ci0JaWYgKCFmcm9tX29wZW4pIHsKLQkJdHRtX3Z0X3VubG9jaygmdm1hc3Rlci0+bG9jayk7Ci0JCUJVR19PTih2bXdfZnAtPmxvY2tlZF9tYXN0ZXIgIT0gZmlsZV9wcml2LT5tYXN0ZXIpOwotCQlkcm1fbWFzdGVyX3B1dCgmdm13X2ZwLT5sb2NrZWRfbWFzdGVyKTsKLQl9Ci0KLQlkZXZfcHJpdi0+YWN0aXZlX21hc3RlciA9IHZtYXN0ZXI7Ci0KIAkvKgogCSAqIEluZm9ybSBhIG5ldyBtYXN0ZXIgdGhhdCB0aGUgbGF5b3V0IG1heSBoYXZlIGNoYW5nZWQgd2hpbGUKIAkgKiBpdCB3YXMgZ29uZS4KQEAgLTEyNTcsMzEgKzExMTMsMTAgQEAgc3RhdGljIHZvaWQgdm13X21hc3Rlcl9kcm9wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiB7CiAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHZtd19wcml2KGRldik7Ci0Jc3RydWN0IHZtd19mcHJpdiAqdm13X2ZwID0gdm13X2Zwcml2KGZpbGVfcHJpdik7Ci0Jc3RydWN0IHZtd19tYXN0ZXIgKnZtYXN0ZXIgPSB2bXdfbWFzdGVyKGZpbGVfcHJpdi0+bWFzdGVyKTsKLQlpbnQgcmV0OwogCi0JLyoqCi0JICogTWFrZSBzdXJlIHRoZSBtYXN0ZXIgZG9lc24ndCBkaXNhcHBlYXIgd2hpbGUgd2UgaGF2ZQotCSAqIGl0IGxvY2tlZC4KLQkgKi8KLQotCXZtd19mcC0+bG9ja2VkX21hc3RlciA9IGRybV9tYXN0ZXJfZ2V0KGZpbGVfcHJpdi0+bWFzdGVyKTsKLQlyZXQgPSB0dG1fdnRfbG9jaygmdm1hc3Rlci0+bG9jaywgZmFsc2UsIHZtd19mcC0+dGZpbGUpOwogCXZtd19rbXNfbGVnYWN5X2hvdHNwb3RfY2xlYXIoZGV2X3ByaXYpOwotCWlmICh1bmxpa2VseSgocmV0ICE9IDApKSkgewotCQlEUk1fRVJST1IoIlVuYWJsZSB0byBsb2NrIFRUTSBhdCBWVCBzd2l0Y2guXG4iKTsKLQkJZHJtX21hc3Rlcl9wdXQoJnZtd19mcC0+bG9ja2VkX21hc3Rlcik7Ci0JfQotCi0JdHRtX2xvY2tfc2V0X2tpbGwoJnZtYXN0ZXItPmxvY2ssIGZhbHNlLCBTSUdURVJNKTsKLQogCWlmICghZGV2X3ByaXYtPmVuYWJsZV9mYikKIAkJdm13X3N2Z2FfZGlzYWJsZShkZXZfcHJpdik7Ci0KLQlkZXZfcHJpdi0+YWN0aXZlX21hc3RlciA9ICZkZXZfcHJpdi0+ZmJkZXZfbWFzdGVyOwotCXR0bV9sb2NrX3NldF9raWxsKCZkZXZfcHJpdi0+ZmJkZXZfbWFzdGVyLmxvY2ssIGZhbHNlLCBTSUdURVJNKTsKLQl0dG1fdnRfdW5sb2NrKCZkZXZfcHJpdi0+ZmJkZXZfbWFzdGVyLmxvY2spOwogfQogCiAvKioKQEAgLTE1NTEsMTcgKzEzODYsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdm13Z2Z4X2RyaXZlcl9mb3BzID0gewogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewogCS5kcml2ZXJfZmVhdHVyZXMgPQotCURSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX1BSSU1FIHwgRFJJVkVSX1JFTkRFUiB8IERSSVZFUl9BVE9NSUMsCisJRFJJVkVSX01PREVTRVQgfCBEUklWRVJfUkVOREVSIHwgRFJJVkVSX0FUT01JQywKIAkubG9hZCA9IHZtd19kcml2ZXJfbG9hZCwKIAkudW5sb2FkID0gdm13X2RyaXZlcl91bmxvYWQsCi0JLmxhc3RjbG9zZSA9IHZtd19sYXN0Y2xvc2UsCiAJLmdldF92YmxhbmtfY291bnRlciA9IHZtd19nZXRfdmJsYW5rX2NvdW50ZXIsCiAJLmVuYWJsZV92YmxhbmsgPSB2bXdfZW5hYmxlX3ZibGFuaywKIAkuZGlzYWJsZV92YmxhbmsgPSB2bXdfZGlzYWJsZV92YmxhbmssCiAJLmlvY3RscyA9IHZtd19pb2N0bHMsCiAJLm51bV9pb2N0bHMgPSBBUlJBWV9TSVpFKHZtd19pb2N0bHMpLAotCS5tYXN0ZXJfY3JlYXRlID0gdm13X21hc3Rlcl9jcmVhdGUsCi0JLm1hc3Rlcl9kZXN0cm95ID0gdm13X21hc3Rlcl9kZXN0cm95LAogCS5tYXN0ZXJfc2V0ID0gdm13X21hc3Rlcl9zZXQsCiAJLm1hc3Rlcl9kcm9wID0gdm13X21hc3Rlcl9kcm9wLAogCS5vcGVuID0gdm13X2RyaXZlcl9vcGVuLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAppbmRleCAzNjZkY2ZjLi41ZWI3M2RlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaApAQCAtMjgsMjAgKzI4LDMyIEBACiAjaWZuZGVmIF9WTVdHRlhfRFJWX0hfCiAjZGVmaW5lIF9WTVdHRlhfRFJWX0hfCiAKLSNpbmNsdWRlICJ2bXdnZnhfdmFsaWRhdGlvbi5oIgotI2luY2x1ZGUgInZtd2dmeF9yZWcuaCIKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS92bXdnZnhfZHJtLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9oYXNodGFiLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9hdXRoLmg+CiAjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgorI2luY2x1ZGUgPGxpbnV4L3N5bmNfZmlsZS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hdXRoLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2hhc2h0YWIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KKwogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX21vZHVsZS5oPgotI2luY2x1ZGUgInZtd2dmeF9mZW5jZS5oIgotI2luY2x1ZGUgInR0bV9vYmplY3QuaCIKKwogI2luY2x1ZGUgInR0bV9sb2NrLmgiCi0jaW5jbHVkZSA8bGludXgvc3luY19maWxlLmg+CisjaW5jbHVkZSAidHRtX29iamVjdC5oIgorCisjaW5jbHVkZSAidm13Z2Z4X2ZlbmNlLmgiCisjaW5jbHVkZSAidm13Z2Z4X3JlZy5oIgorI2luY2x1ZGUgInZtd2dmeF92YWxpZGF0aW9uLmgiCisKKy8qCisgKiBGSVhNRTogdm13Z2Z4X2RybS5oIG5lZWRzIHRvIGJlIGxhc3QgZHVlIHRvIGRlcGVuZGVuY2llcy4KKyAqIHVhcGkgaGVhZGVycyBzaG91bGQgbm90IGRlcGVuZCBvbiBoZWFkZXIgZmlsZXMgb3V0c2lkZSB1YXBpLy4KKyAqLworI2luY2x1ZGUgPGRybS92bXdnZnhfZHJtLmg+CisKIAogI2RlZmluZSBWTVdHRlhfRFJJVkVSX05BTUUgInZtd2dmeCIKICNkZWZpbmUgVk1XR0ZYX0RSSVZFUl9EQVRFICIyMDE4MDcwNCIKQEAgLTgxLDExICs5MywxOSBAQAogI2RlZmluZSBWTVdfUkVTX1NIQURFUiB0dG1fZHJpdmVyX3R5cGU0CiAKIHN0cnVjdCB2bXdfZnByaXYgewotCXN0cnVjdCBkcm1fbWFzdGVyICpsb2NrZWRfbWFzdGVyOwogCXN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxlOwogCWJvb2wgZ2JfYXdhcmU7IC8qIHVzZXItc3BhY2UgaXMgZ3Vlc3QtYmFja2VkIGF3YXJlICovCiB9OwogCisvKioKKyAqIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAtIFRUTSBidWZmZXIgb2JqZWN0IHdpdGggdm13Z2Z4IGFkZGl0aW9ucworICogQGJhc2U6IFRoZSBUVE0gYnVmZmVyIG9iamVjdAorICogQHJlc19saXN0OiBMaXN0IG9mIHJlc291cmNlcyB1c2luZyB0aGlzIGJ1ZmZlciBvYmplY3QgYXMgYSBiYWNraW5nIE1PQgorICogQHBpbl9jb3VudDogcGluIGRlcHRoCisgKiBAZHhfcXVlcnlfY3R4OiBEWCBjb250ZXh0IGlmIHRoaXMgYnVmZmVyIG9iamVjdCBpcyB1c2VkIGFzIGEgRFggcXVlcnkgTU9CCisgKiBAbWFwOiBLbWFwIG9iamVjdCBmb3Igc2VtaS1wZXJzaXN0ZW50IG1hcHBpbmdzCisgKiBAcmVzX3ByaW9zOiBFdmljdGlvbiBwcmlvcml0eSBjb3VudHMgZm9yIGF0dGFjaGVkIHJlc291cmNlcworICovCiBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgewogCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCBiYXNlOwogCXN0cnVjdCBsaXN0X2hlYWQgcmVzX2xpc3Q7CkBAIC05NCw2ICsxMTQsNyBAQCBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgewogCXN0cnVjdCB2bXdfcmVzb3VyY2UgKmR4X3F1ZXJ5X2N0eDsKIAkvKiBQcm90ZWN0ZWQgYnkgcmVzZXJ2YXRpb24gKi8KIAlzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqIG1hcDsKKwl1MzIgcmVzX3ByaW9zW1RUTV9NQVhfQk9fUFJJT1JJVFldOwogfTsKIAogLyoqCkBAIC0xNDUsNiArMTY2LDcgQEAgc3RydWN0IHZtd19yZXNvdXJjZSB7CiAJc3RydWN0IGtyZWYga3JlZjsKIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2OwogCWludCBpZDsKKwl1MzIgdXNlZF9wcmlvOwogCXVuc2lnbmVkIGxvbmcgYmFja3VwX3NpemU7CiAJYm9vbCByZXNfZGlydHk7CiAJYm9vbCBiYWNrdXBfZGlydHk7CkBAIC0zNzYsMTAgKzM5OCw2IEBAIHN0cnVjdCB2bXdfc3dfY29udGV4dHsKIHN0cnVjdCB2bXdfbGVnYWN5X2Rpc3BsYXk7CiBzdHJ1Y3Qgdm13X292ZXJsYXk7CiAKLXN0cnVjdCB2bXdfbWFzdGVyIHsKLQlzdHJ1Y3QgdHRtX2xvY2sgbG9jazsKLX07Ci0KIHN0cnVjdCB2bXdfdmdhX3RvcG9sb2d5X3N0YXRlIHsKIAl1aW50MzJfdCB3aWR0aDsKIAl1aW50MzJfdCBoZWlnaHQ7CkBAIC00ODQsMTEgKzUwMiw2IEBAIHN0cnVjdCB2bXdfcHJpdmF0ZSB7CiAKIAlzcGlubG9ja190IHJlc291cmNlX2xvY2s7CiAJc3RydWN0IGlkciByZXNfaWRyW3Ztd19yZXNfbWF4XTsKLQkvKgotCSAqIEJsb2NrIGxhc3RjbG9zZSBmcm9tIHJhY2luZyB3aXRoIGZpcnN0b3Blbi4KLQkgKi8KLQotCXN0cnVjdCBtdXRleCBpbml0X211dGV4OwogCiAJLyoKIAkgKiBBIHJlc291cmNlIG1hbmFnZXIgZm9yIGtlcm5lbC1vbmx5IHN1cmZhY2VzIGFuZApAQCAtNTQyLDExICs1NTUsOCBAQCBzdHJ1Y3Qgdm13X3ByaXZhdGUgewogCXNwaW5sb2NrX3Qgc3ZnYV9sb2NrOwogCiAJLyoqCi0JICogTWFzdGVyIG1hbmFnZW1lbnQuCisJICogUE0gbWFuYWdlbWVudC4KIAkgKi8KLQotCXN0cnVjdCB2bXdfbWFzdGVyICphY3RpdmVfbWFzdGVyOwotCXN0cnVjdCB2bXdfbWFzdGVyIGZiZGV2X21hc3RlcjsKIAlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgcG1fbmI7CiAJYm9vbCByZWZ1c2VfaGliZXJuYXRpb247CiAJYm9vbCBzdXNwZW5kX2xvY2tlZDsKQEAgLTYxMiwxMSArNjIyLDYgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgdm13X2Zwcml2ICp2bXdfZnByaXYoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiAJcmV0dXJuIChzdHJ1Y3Qgdm13X2Zwcml2ICopZmlsZV9wcml2LT5kcml2ZXJfcHJpdjsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3Qgdm13X21hc3RlciAqdm13X21hc3RlcihzdHJ1Y3QgZHJtX21hc3RlciAqbWFzdGVyKQotewotCXJldHVybiAoc3RydWN0IHZtd19tYXN0ZXIgKikgbWFzdGVyLT5kcml2ZXJfcHJpdjsKLX0KLQogLyoKICAqIFRoZSBsb2NraW5nIGhlcmUgaXMgZmluZS1ncmFpbmVkLCBzbyB0aGF0IGl0IGlzIHBlcmZvcm1lZCBvbmNlCiAgKiBmb3IgZXZlcnkgcmVhZC0gYW5kIHdyaXRlIG9wZXJhdGlvbi4gVGhpcyBpcyBvZiBjb3Vyc2UgY29zdGx5LCBidXQgd2UKQEAgLTcwOSw2ICs3MTQsMTkgQEAgZXh0ZXJuIHZvaWQgdm13X3F1ZXJ5X21vdmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiBleHRlcm4gaW50IHZtd19xdWVyeV9yZWFkYmFja19hbGwoc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpkeF9xdWVyeV9tb2IpOwogZXh0ZXJuIHZvaWQgdm13X3Jlc291cmNlX2V2aWN0X2FsbChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KTsKIGV4dGVybiB2b2lkIHZtd19yZXNvdXJjZV91bmJpbmRfbGlzdChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibyk7Cit2b2lkIHZtd19yZXNvdXJjZV9tb2JfYXR0YWNoKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7Cit2b2lkIHZtd19yZXNvdXJjZV9tb2JfZGV0YWNoKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7CisKKy8qKgorICogdm13X3Jlc291cmNlX21vYl9hdHRhY2hlZCAtIFdoZXRoZXIgYSByZXNvdXJjZSBjdXJyZW50bHkgaGFzIGEgbW9iIGF0dGFjaGVkCisgKiBAcmVzOiBUaGUgcmVzb3VyY2UKKyAqCisgKiBSZXR1cm46IHRydWUgaWYgdGhlIHJlc291cmNlIGhhcyBhIG1vYiBhdHRhY2hlZCwgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW5saW5lIGJvb2wgdm13X3Jlc291cmNlX21vYl9hdHRhY2hlZChjb25zdCBzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpCit7CisJcmV0dXJuICFsaXN0X2VtcHR5KCZyZXMtPm1vYl9oZWFkKTsKK30KIAogLyoqCiAgKiB2bXdfdXNlcl9yZXNvdXJjZV9ub3JlZl9yZWxlYXNlIC0gcmVsZWFzZSBhIHVzZXIgcmVzb3VyY2UgcG9pbnRlciBsb29rZWQgdXAKQEAgLTc4Nyw2ICs4MDUsNTQgQEAgc3RhdGljIGlubGluZSB2b2lkIHZtd191c2VyX2JvX25vcmVmX3JlbGVhc2Uodm9pZCkKIAl0dG1fYmFzZV9vYmplY3Rfbm9yZWZfcmVsZWFzZSgpOwogfQogCisvKioKKyAqIHZtd19ib19hZGp1c3RfcHJpbyAtIEFkanVzdCB0aGUgYnVmZmVyIG9iamVjdCBldmljdGlvbiBwcmlvcml0eQorICogYWNjb3JkaW5nIHRvIGF0dGFjaGVkIHJlc291cmNlcworICogQHZibzogVGhlIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdAorICovCitzdGF0aWMgaW5saW5lIHZvaWQgdm13X2JvX3ByaW9fYWRqdXN0KHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvKQoreworCWludCBpID0gQVJSQVlfU0laRSh2Ym8tPnJlc19wcmlvcyk7CisKKwl3aGlsZSAoaS0tKSB7CisJCWlmICh2Ym8tPnJlc19wcmlvc1tpXSkgeworCQkJdmJvLT5iYXNlLnByaW9yaXR5ID0gaTsKKwkJCXJldHVybjsKKwkJfQorCX0KKworCXZiby0+YmFzZS5wcmlvcml0eSA9IDM7Cit9CisKKy8qKgorICogdm13X2JvX3ByaW9fYWRkIC0gTm90aWZ5IGEgYnVmZmVyIG9iamVjdCBvZiBhIG5ld2x5IGF0dGFjaGVkIHJlc291cmNlCisgKiBldmljdGlvbiBwcmlvcml0eQorICogQHZibzogVGhlIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdAorICogQHByaW86IFRoZSByZXNvdXJjZSBwcmlvcml0eQorICoKKyAqIEFmdGVyIGJlaW5nIG5vdGlmaWVkLCB0aGUgY29kZSBhc3NpZ25zIHRoZSBoaWdoZXN0IHJlc291cmNlIGV2aWN0aW9uIHByaW9yaXR5CisgKiB0byB0aGUgYmFja2luZyBidWZmZXIgb2JqZWN0IChtb2IpLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgdm13X2JvX3ByaW9fYWRkKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvLCBpbnQgcHJpbykKK3sKKwlpZiAodmJvLT5yZXNfcHJpb3NbcHJpb10rKyA9PSAwKQorCQl2bXdfYm9fcHJpb19hZGp1c3QodmJvKTsKK30KKworLyoqCisgKiB2bXdfYm9fcHJpb19kZWwgLSBOb3RpZnkgYSBidWZmZXIgb2JqZWN0IG9mIGEgcmVzb3VyY2Ugd2l0aCBhIGNlcnRhaW4KKyAqIHByaW9yaXR5IGJlaW5nIHJlbW92ZWQKKyAqIEB2Ym86IFRoZSBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QKKyAqIEBwcmlvOiBUaGUgcmVzb3VyY2UgcHJpb3JpdHkKKyAqCisgKiBBZnRlciBiZWluZyBub3RpZmllZCwgdGhlIGNvZGUgYXNzaWducyB0aGUgaGlnaGVzdCByZXNvdXJjZSBldmljdGlvbiBwcmlvcml0eQorICogdG8gdGhlIGJhY2tpbmcgYnVmZmVyIG9iamVjdCAobW9iKS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHZtd19ib19wcmlvX2RlbChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibywgaW50IHByaW8pCit7CisJaWYgKC0tdmJvLT5yZXNfcHJpb3NbcHJpb10gPT0gMCkKKwkJdm13X2JvX3ByaW9fYWRqdXN0KHZibyk7Cit9CiAKIC8qKgogICogTWlzYyBJb2N0bCBmdW5jdGlvbmFsaXR5IC0gdm13Z2Z4X2lvY3RsLmMKQEAgLTkxNSw4ICs5ODEsOCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICp2bXdfcGl0ZXJfcGFnZShzdHJ1Y3Qgdm13X3BpdGVyICp2aXRlcikKICAqIENvbW1hbmQgc3VibWlzc2lvbiAtIHZtd2dmeF9leGVjYnVmLmMKICAqLwogCi1leHRlcm4gaW50IHZtd19leGVjYnVmX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZGF0YSwKLQkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHNpemVfdCBzaXplKTsKK2V4dGVybiBpbnQgdm13X2V4ZWNidWZfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogZXh0ZXJuIGludCB2bXdfZXhlY2J1Zl9wcm9jZXNzKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCQkJICAgICAgIHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICAgdm9pZCBfX3VzZXIgKnVzZXJfY29tbWFuZHMsCkBAIC0xMDE2LDcgKzEwODIsNiBAQCB2b2lkIHZtd19rbXNfY3Vyc29yX3Nub29wKHN0cnVjdCB2bXdfc3VyZmFjZSAqc3JmLAogaW50IHZtd19rbXNfd3JpdGVfc3ZnYShzdHJ1Y3Qgdm13X3ByaXZhdGUgKnZtd19wcml2LAogCQkgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgdW5zaWduZWQgcGl0Y2gsCiAJCSAgICAgICB1bnNpZ25lZCBicHAsIHVuc2lnbmVkIGRlcHRoKTsKLXZvaWQgdm13X2ttc19pZGxlX3dvcmtxdWV1ZXMoc3RydWN0IHZtd19tYXN0ZXIgKnZtYXN0ZXIpOwogYm9vbCB2bXdfa21zX3ZhbGlkYXRlX21vZGVfdnJhbShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCXVpbnQzMl90IHBpdGNoLAogCQkJCXVpbnQzMl90IGhlaWdodCk7CkBAIC0xMzM5LDYgKzE0MDQsMTQgQEAgaW50IHZtd19ob3N0X2xvZyhjb25zdCBjaGFyICpsb2cpOwogCURSTV9ERUJVR19EUklWRVIoZm10LCAjI19fVkFfQVJHU19fKQogCiAvKioKKyAqIFZNV19ERUJVR19LTVMgLSBEZWJ1ZyBvdXRwdXQgZm9yIGtlcm5lbCBtb2RlLXNldHRpbmcKKyAqCisgKiBUaGlzIG1hY3JvIGlzIGZvciBkZWJ1Z2dpbmcgdm13Z2Z4IG1vZGUtc2V0dGluZyBjb2RlLgorICovCisjZGVmaW5lIFZNV19ERUJVR19LTVMoZm10LCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJRFJNX0RFQlVHX0RSSVZFUihmbXQsICMjX19WQV9BUkdTX18pCisKKy8qKgogICogSW5saW5lIGhlbHBlciBmdW5jdGlvbnMKICAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKaW5kZXggMzM1MzNkMS4uZmY4NmQ0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYwpAQCAtMzk5NSw1NCArMzk5NSw0MCBAQCB2b2lkIHZtd19leGVjYnVmX3JlbGVhc2VfcGlubmVkX2JvKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+Y21kYnVmX211dGV4KTsKIH0KIAotaW50IHZtd19leGVjYnVmX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZGF0YSwKLQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHNpemVfdCBzaXplKQoraW50IHZtd19leGVjYnVmX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQogewogCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfcHJpdihkZXYpOwotCXN0cnVjdCBkcm1fdm13X2V4ZWNidWZfYXJnIGFyZzsKKwlzdHJ1Y3QgZHJtX3Ztd19leGVjYnVmX2FyZyAqYXJnID0gZGF0YTsKIAlpbnQgcmV0OwotCXN0YXRpYyBjb25zdCBzaXplX3QgY29weV9vZmZzZXRbXSA9IHsKLQkJb2Zmc2V0b2Yoc3RydWN0IGRybV92bXdfZXhlY2J1Zl9hcmcsIGNvbnRleHRfaGFuZGxlKSwKLQkJc2l6ZW9mKHN0cnVjdCBkcm1fdm13X2V4ZWNidWZfYXJnKX07CiAJc3RydWN0IGRtYV9mZW5jZSAqaW5fZmVuY2UgPSBOVUxMOwogCi0JaWYgKHVubGlrZWx5KHNpemUgPCBjb3B5X29mZnNldFswXSkpIHsKLQkJVk1XX0RFQlVHX1VTRVIoIkludmFsaWQgY29tbWFuZCBzaXplLCBpb2N0bCAlZFxuIiwKLQkJCSAgICAgICBEUk1fVk1XX0VYRUNCVUYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoY29weV9mcm9tX3VzZXIoJmFyZywgKHZvaWQgX191c2VyICopIGRhdGEsIGNvcHlfb2Zmc2V0WzBdKSAhPSAwKQotCQlyZXR1cm4gLUVGQVVMVDsKLQogCS8qCiAJICogRXh0ZW5kIHRoZSBpb2N0bCBhcmd1bWVudCB3aGlsZSBtYWludGFpbmluZyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLQkgKiBXZSB0YWtlIGRpZmZlcmVudCBjb2RlIHBhdGhzIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgYXJnLnZlcnNpb24uCisJICogV2UgdGFrZSBkaWZmZXJlbnQgY29kZSBwYXRocyBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIGFyZy0+dmVyc2lvbi4KKwkgKgorCSAqIE5vdGU6IFRoZSBpb2N0bCBhcmd1bWVudCBpcyBleHRlbmRlZCBhbmQgemVyb3BhZGRlZCBieSBjb3JlIERSTS4KIAkgKi8KLQlpZiAodW5saWtlbHkoYXJnLnZlcnNpb24gPiBEUk1fVk1XX0VYRUNCVUZfVkVSU0lPTiB8fAotCQkgICAgIGFyZy52ZXJzaW9uID09IDApKSB7CisJaWYgKHVubGlrZWx5KGFyZy0+dmVyc2lvbiA+IERSTV9WTVdfRVhFQ0JVRl9WRVJTSU9OIHx8CisJCSAgICAgYXJnLT52ZXJzaW9uID09IDApKSB7CiAJCVZNV19ERUJVR19VU0VSKCJJbmNvcnJlY3QgZXhlY2J1ZiB2ZXJzaW9uLlxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChhcmcudmVyc2lvbiA+IDEgJiYKLQkgICAgY29weV9mcm9tX3VzZXIoJmFyZy5jb250ZXh0X2hhbmRsZSwKLQkJCSAgICh2b2lkIF9fdXNlciAqKSAoZGF0YSArIGNvcHlfb2Zmc2V0WzBdKSwKLQkJCSAgIGNvcHlfb2Zmc2V0W2FyZy52ZXJzaW9uIC0gMV0gLSBjb3B5X29mZnNldFswXSkgIT0gMCkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlzd2l0Y2ggKGFyZy52ZXJzaW9uKSB7CisJc3dpdGNoIChhcmctPnZlcnNpb24pIHsKIAljYXNlIDE6Ci0JCWFyZy5jb250ZXh0X2hhbmRsZSA9ICh1aW50MzJfdCkgLTE7CisJCS8qIEZvciB2MSBjb3JlIERSTSBoYXZlIGV4dGVuZGVkICsgemVyb3BhZGRlZCB0aGUgZGF0YSAqLworCQlhcmctPmNvbnRleHRfaGFuZGxlID0gKHVpbnQzMl90KSAtMTsKIAkJYnJlYWs7CiAJY2FzZSAyOgogCWRlZmF1bHQ6CisJCS8qIEZvciB2MiBhbmQgbGF0ZXIgY29yZSBEUk0gd291bGQgaGF2ZSBjb3JyZWN0bHkgY29waWVkIGl0ICovCiAJCWJyZWFrOwogCX0KIAogCS8qIElmIGltcG9ydGVkIGEgZmVuY2UgRkQgZnJvbSBlbHNld2hlcmUsIHRoZW4gd2FpdCBvbiBpdCAqLwotCWlmIChhcmcuZmxhZ3MgJiBEUk1fVk1XX0VYRUNCVUZfRkxBR19JTVBPUlRfRkVOQ0VfRkQpIHsKLQkJaW5fZmVuY2UgPSBzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGFyZy5pbXBvcnRlZF9mZW5jZV9mZCk7CisJaWYgKGFyZy0+ZmxhZ3MgJiBEUk1fVk1XX0VYRUNCVUZfRkxBR19JTVBPUlRfRkVOQ0VfRkQpIHsKKwkJaW5fZmVuY2UgPSBzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGFyZy0+aW1wb3J0ZWRfZmVuY2VfZmQpOwogCiAJCWlmICghaW5fZmVuY2UpIHsKIAkJCVZNV19ERUJVR19VU0VSKCJDYW5ub3QgZ2V0IGltcG9ydGVkIGZlbmNlXG4iKTsKQEAgLTQwNTksMTEgKzQwNDUsMTEgQEAgaW50IHZtd19leGVjYnVmX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZGF0YSwKIAkJcmV0dXJuIHJldDsKIAogCXJldCA9IHZtd19leGVjYnVmX3Byb2Nlc3MoZmlsZV9wcml2LCBkZXZfcHJpdiwKLQkJCQkgICh2b2lkIF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKWFyZy5jb21tYW5kcywKLQkJCQkgIE5VTEwsIGFyZy5jb21tYW5kX3NpemUsIGFyZy50aHJvdHRsZV91cywKLQkJCQkgIGFyZy5jb250ZXh0X2hhbmRsZSwKLQkJCQkgICh2b2lkIF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKWFyZy5mZW5jZV9yZXAsCi0JCQkJICBOVUxMLCBhcmcuZmxhZ3MpOworCQkJCSAgKHZvaWQgX191c2VyICopKHVuc2lnbmVkIGxvbmcpYXJnLT5jb21tYW5kcywKKwkJCQkgIE5VTEwsIGFyZy0+Y29tbWFuZF9zaXplLCBhcmctPnRocm90dGxlX3VzLAorCQkJCSAgYXJnLT5jb250ZXh0X2hhbmRsZSwKKwkJCQkgICh2b2lkIF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKWFyZy0+ZmVuY2VfcmVwLAorCQkJCSAgTlVMTCwgYXJnLT5mbGFncyk7CiAKIAl0dG1fcmVhZF91bmxvY2soJmRldl9wcml2LT5yZXNlcnZhdGlvbl9zZW0pOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYwppbmRleCA5NzJlOGZkLi5lYTI5OTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZiLmMKQEAgLTI2LDE0ICsyNiwxNCBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgorCiAjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgogI2luY2x1ZGUgInZtd2dmeF9rbXMuaCIKIAotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgotCiAjZGVmaW5lIFZNV19ESVJUWV9ERUxBWSAoSFogLyAzMCkKIAogc3RydWN0IHZtd19mYl9wYXIgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKaW5kZXggMzAxMjYwZS4uMTc4YTZjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jCkBAIC0yNSw3ICsyNSw4IEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC9zaWduYWwuaD4KKwogI2luY2x1ZGUgInZtd2dmeF9kcnYuaCIKIAogI2RlZmluZSBWTVdfRkVOQ0VfV1JBUCAoMSA8PCAzMSkKQEAgLTE4NCw2ICsxODUsOSBAQCBzdGF0aWMgbG9uZyB2bXdfZmVuY2Vfd2FpdChzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiAKIAlzcGluX2xvY2soZi0+bG9jayk7CiAKKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZi0+ZmxhZ3MpKQorCQlnb3RvIG91dDsKKwogCWlmIChpbnRyICYmIHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7CiAJCXJldCA9IC1FUkVTVEFSVFNZUzsKIAkJZ290byBvdXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuaAppbmRleCBjOTM4MjkzLi41MGU5ZmRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmgKQEAgLTMyLDggKzMyLDExIEBACiAKICNkZWZpbmUgVk1XX0ZFTkNFX1dBSVRfVElNRU9VVCAoNSpIWikKIAotc3RydWN0IHZtd19wcml2YXRlOworc3RydWN0IGRybV9kZXZpY2U7CitzdHJ1Y3QgZHJtX2ZpbGU7CitzdHJ1Y3QgZHJtX3BlbmRpbmdfZXZlbnQ7CiAKK3N0cnVjdCB2bXdfcHJpdmF0ZTsKIHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlcjsKIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9maWZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9maWZvLmMKaW5kZXggZmYzNTg2Yy4uZTUyNTJlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmlmby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZpZm8uYwpAQCAtMjUsMTAgKzI1LDEyIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQvc2lnbmFsLmg+CisKICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1lbnQuaD4KIAorI2luY2x1ZGUgInZtd2dmeF9kcnYuaCIKKwogc3RydWN0IHZtd190ZW1wX3NldF9jb250ZXh0IHsKIAlTVkdBM2RDbWRIZWFkZXIgaGVhZGVyOwogCVNWR0EzZENtZERYVGVtcFNldENvbnRleHQgYm9keTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dtci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yLmMKaW5kZXggYWU3YWNjNi4uODNjMGQ1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yLmMKQEAgLTI1LDEwICsyNSwxMCBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2luY2x1ZGUgInZtd2dmeF9kcnYuaCIKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgogCisjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgorCiAjZGVmaW5lIFZNV19QUE5fU0laRSAoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKQogLyogQSBmdXR1cmUgc2FmZSBtYXhpbXVtIHJlbWFwIHNpemUuICovCiAjZGVmaW5lIFZNV19QUE5fUEVSX1JFTUFQICgoMzEgKiAxMDI0KSAvIFZNV19QUE5fU0laRSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaXJxLmMKaW5kZXggYzNhZDQ0Ny4uNzVmM2VmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaXJxLmMKQEAgLTI1LDcgKzI1LDggQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3NpZ25hbC5oPgorCiAjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgogCiAjZGVmaW5lIFZNV19GRU5DRV9XUkFQICgxIDw8IDI0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwppbmRleCBiOTdiYzhlLi5mNDdkNTcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwpAQCAtMjUsMTIgKzI1LDE2IEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jaW5jbHVkZSAidm13Z2Z4X2ttcy5oIgotI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9zeXNmcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisKKyNpbmNsdWRlICJ2bXdnZnhfa21zLmgiCiAKIC8qIE1pZ2h0IG5lZWQgYSBocnRpbWVyIGhlcmU/ICovCiAjZGVmaW5lIFZNV0dGWF9QUkVTRU5UX1JBVEUgKChIWiAvIDYwID4gMCkgPyBIWiAvIDYwIDogMSkKQEAgLTE0NjIsNyArMTQ2Niw3IEBAIHN0YXRpYyBpbnQgdm13X2ttc19jaGVja19kaXNwbGF5X21lbW9yeShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlpZiAoZGV2X3ByaXYtPmFjdGl2ZV9kaXNwbGF5X3VuaXQgPT0gdm13X2R1X3NjcmVlbl90YXJnZXQgJiYKIAkJICAgIChkcm1fcmVjdF93aWR0aCgmcmVjdHNbaV0pID4gZGV2X3ByaXYtPnN0ZHVfbWF4X3dpZHRoIHx8CiAJCSAgICAgZHJtX3JlY3RfaGVpZ2h0KCZyZWN0c1tpXSkgPiBkZXZfcHJpdi0+c3RkdV9tYXhfaGVpZ2h0KSkgewotCQkJRFJNX0VSUk9SKCJTY3JlZW4gc2l6ZSBub3Qgc3VwcG9ydGVkLlxuIik7CisJCQlWTVdfREVCVUdfS01TKCJTY3JlZW4gc2l6ZSBub3Qgc3VwcG9ydGVkLlxuIik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCkBAIC0xNDg2LDcgKzE0OTAsNyBAQCBzdGF0aWMgaW50IHZtd19rbXNfY2hlY2tfZGlzcGxheV9tZW1vcnkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkgKiBsaW1pdCBvbiBwcmltYXJ5IGJvdW5kaW5nIGJveAogCSAqLwogCWlmIChwaXhlbF9tZW0gPiBkZXZfcHJpdi0+cHJpbV9iYl9tZW0pIHsKLQkJRFJNX0VSUk9SKCJDb21iaW5lZCBvdXRwdXQgc2l6ZSB0b28gbGFyZ2UuXG4iKTsKKwkJVk1XX0RFQlVHX0tNUygiQ29tYmluZWQgb3V0cHV0IHNpemUgdG9vIGxhcmdlLlxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAtMTQ5Niw3ICsxNTAwLDcgQEAgc3RhdGljIGludCB2bXdfa21zX2NoZWNrX2Rpc3BsYXlfbWVtb3J5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWJiX21lbSA9ICh1NjQpIGJvdW5kaW5nX2JveC54MiAqIGJvdW5kaW5nX2JveC55MiAqIDQ7CiAKIAkJaWYgKGJiX21lbSA+IGRldl9wcml2LT5wcmltX2JiX21lbSkgewotCQkJRFJNX0VSUk9SKCJUb3BvbG9neSBpcyBiZXlvbmQgc3VwcG9ydGVkIGxpbWl0cy5cbiIpOworCQkJVk1XX0RFQlVHX0tNUygiVG9wb2xvZ3kgaXMgYmV5b25kIHN1cHBvcnRlZCBsaW1pdHMuXG4iKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAJfQpAQCAtMTY0NSw2ICsxNjQ5LDcgQEAgc3RhdGljIGludCB2bXdfa21zX2NoZWNrX3RvcG9sb2d5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXN0cnVjdCB2bXdfY29ubmVjdG9yX3N0YXRlICp2bXdfY29ubl9zdGF0ZTsKIAogCQlpZiAoIWR1LT5wcmVmX2FjdGl2ZSAmJiBuZXdfY3J0Y19zdGF0ZS0+ZW5hYmxlKSB7CisJCQlWTVdfREVCVUdfS01TKCJFbmFibGluZyBhIGRpc2FibGVkIGRpc3BsYXkgdW5pdFxuIik7CiAJCQlyZXQgPSAtRUlOVkFMOwogCQkJZ290byBjbGVhbjsKIAkJfQpAQCAtMTcwMSwxNyArMTcwNiwxMSBAQCB2bXdfa21zX2F0b21pY19jaGVja19tb2Rlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXJldHVybiByZXQ7CiAKIAlyZXQgPSB2bXdfa21zX2NoZWNrX2ltcGxpY2l0KGRldiwgc3RhdGUpOwotCWlmIChyZXQpCisJaWYgKHJldCkgeworCQlWTVdfREVCVUdfS01TKCJJbnZhbGlkIGltcGxpY2l0IHN0YXRlXG4iKTsKIAkJcmV0dXJuIHJldDsKKwl9CiAKLQlpZiAoIXN0YXRlLT5hbGxvd19tb2Rlc2V0KQotCQlyZXR1cm4gcmV0OwotCi0JLyoKLQkgKiBMZWdhY3kgcGF0aCBkbyBub3Qgc2V0IGFsbG93X21vZGVzZXQgcHJvcGVybHkgbGlrZQotCSAqIEBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUsIFRoaXMgd2lsbCByZXN1bHQgaW4gdW5uZWNlc3NhcnkgY2FsbAotCSAqIHRvIHZtd19rbXNfY2hlY2tfdG9wb2xvZ3kuIFNvIGV4dHJhIHNldCBvZiBjaGVjay4KLQkgKi8KIAlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewogCQlpZiAoZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCiAJCQluZWVkX21vZGVzZXQgPSB0cnVlOwpAQCAtMjM0Nyw2ICsyMzQ2LDkgQEAgaW50IHZtd19rbXNfdXBkYXRlX2xheW91dF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJaWYgKCFhcmctPm51bV9vdXRwdXRzKSB7CiAJCXN0cnVjdCBkcm1fcmVjdCBkZWZfcmVjdCA9IHswLCAwLCA4MDAsIDYwMH07CisJCVZNV19ERUJVR19LTVMoIkRlZmF1bHQgbGF5b3V0IHgxID0gJWQgeTEgPSAlZCB4MiA9ICVkIHkyID0gJWRcbiIsCisJCQkgICAgICBkZWZfcmVjdC54MSwgZGVmX3JlY3QueTEsCisJCQkgICAgICBkZWZfcmVjdC54MiwgZGVmX3JlY3QueTIpOwogCQl2bXdfZHVfdXBkYXRlX2xheW91dChkZXZfcHJpdiwgMSwgJmRlZl9yZWN0KTsKIAkJcmV0dXJuIDA7CiAJfQpAQCAtMjM2Nyw2ICsyMzY5LDcgQEAgaW50IHZtd19rbXNfdXBkYXRlX2xheW91dF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJZHJtX3JlY3RzID0gKHN0cnVjdCBkcm1fcmVjdCAqKXJlY3RzOwogCisJVk1XX0RFQlVHX0tNUygiTGF5b3V0IGNvdW50ID0gJXVcbiIsIGFyZy0+bnVtX291dHB1dHMpOwogCWZvciAoaSA9IDA7IGkgPCBhcmctPm51bV9vdXRwdXRzOyBpKyspIHsKIAkJc3RydWN0IGRybV92bXdfcmVjdCBjdXJyX3JlY3Q7CiAKQEAgLTIzODMsNiArMjM4NiwxMCBAQCBpbnQgdm13X2ttc191cGRhdGVfbGF5b3V0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWRybV9yZWN0c1tpXS54MiA9IGN1cnJfcmVjdC54ICsgY3Vycl9yZWN0Lnc7CiAJCWRybV9yZWN0c1tpXS55MiA9IGN1cnJfcmVjdC55ICsgY3Vycl9yZWN0Lmg7CiAKKwkJVk1XX0RFQlVHX0tNUygiICB4MSA9ICVkIHkxID0gJWQgeDIgPSAlZCB5MiA9ICVkXG4iLAorCQkJICAgICAgZHJtX3JlY3RzW2ldLngxLCBkcm1fcmVjdHNbaV0ueTEsCisJCQkgICAgICBkcm1fcmVjdHNbaV0ueDIsIGRybV9yZWN0c1tpXS55Mik7CisKIAkJLyoKIAkJICogQ3VycmVudGx5IHRoaXMgY2hlY2sgaXMgbGltaXRpbmcgdGhlIHRvcG9sb2d5IHdpdGhpbgogCQkgKiBtb2RlX2NvbmZpZy0+bWF4ICh3aGljaCBhY3R1YWxseSBpcyBtYXggdGV4dHVyZSBzaXplCkBAIC0yMzkzLDcgKzI0MDAsOSBAQCBpbnQgdm13X2ttc191cGRhdGVfbGF5b3V0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWlmIChkcm1fcmVjdHNbaV0ueDEgPCAwIHx8ICBkcm1fcmVjdHNbaV0ueTEgPCAwIHx8CiAJCSAgICBkcm1fcmVjdHNbaV0ueDIgPiBtb2RlX2NvbmZpZy0+bWF4X3dpZHRoIHx8CiAJCSAgICBkcm1fcmVjdHNbaV0ueTIgPiBtb2RlX2NvbmZpZy0+bWF4X2hlaWdodCkgewotCQkJRFJNX0VSUk9SKCJJbnZhbGlkIEdVSSBsYXlvdXQuXG4iKTsKKwkJCVZNV19ERUJVR19LTVMoIkludmFsaWQgbGF5b3V0ICVkICVkICVkICVkXG4iLAorCQkJCSAgICAgIGRybV9yZWN0c1tpXS54MSwgZHJtX3JlY3RzW2ldLnkxLAorCQkJCSAgICAgIGRybV9yZWN0c1tpXS54MiwgZHJtX3JlY3RzW2ldLnkyKTsKIAkJCXJldCA9IC1FSU5WQUw7CiAJCQlnb3RvIG91dF9mcmVlOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCmluZGV4IDUzNWIwMzUuLjNlZTAzMjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCkBAIC0yOCw5ICsyOCw5IEBACiAjaWZuZGVmIFZNV0dGWF9LTVNfSF8KICNkZWZpbmUgVk1XR0ZYX0tNU19IXwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorCiAjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2xkdS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbGR1LmMKaW5kZXggMjVlNjM0My4uNTcwMjIxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbGR1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbGR1LmMKQEAgLTI1LDExICsyNSwxMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2luY2x1ZGUgInZtd2dmeF9rbXMuaCIKLSNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKKyNpbmNsdWRlICJ2bXdnZnhfa21zLmgiCiAKICNkZWZpbmUgdm13X2NydGNfdG9fbGR1KHgpIFwKIAljb250YWluZXJfb2YoeCwgc3RydWN0IHZtd19sZWdhY3lfZGlzcGxheV91bml0LCBiYXNlLmNydGMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tb2IuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jCmluZGV4IDQwNmVkYzguLjBhNmJiYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jCkBAIC0yNSw2ICsyNSw4IEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCisjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgorCiAjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbXNnLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tc2cuYwppbmRleCAwYzY0N2JlLi5iNmM1ZTRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tc2cuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tc2cuYwpAQCAtMjQsMTcgKzI0LDE2IEBACiAgKgogICovCiAKLQotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9mcmFtZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKwogI2luY2x1ZGUgPGFzbS9oeXBlcnZpc29yLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKwogI2luY2x1ZGUgInZtd2dmeF9kcnYuaCIKICNpbmNsdWRlICJ2bXdnZnhfbXNnLmgiCiAKLQogI2RlZmluZSBNRVNTQUdFX1NUQVRVU19TVUNDRVNTICAweDAwMDEKICNkZWZpbmUgTUVTU0FHRV9TVEFUVVNfRE9SRUNWICAgMHgwMDAyCiAjZGVmaW5lIE1FU1NBR0VfU1RBVFVTX0NQVCAgICAgIDB4MDAxMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfb3ZlcmxheS5jCmluZGV4IGQ1ZWY4Y2YuLmZkYjUyZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9vdmVybGF5LmMKQEAgLTI1LDE1ICsyNSwxMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlICJ2bXdnZnhfZHJ2LmgiCi0KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1lbnQuaD4KIAogI2luY2x1ZGUgImRldmljZV9pbmNsdWRlL3N2Z2Ffb3ZlcmxheS5oIgogI2luY2x1ZGUgImRldmljZV9pbmNsdWRlL3N2Z2FfZXNjYXBlLmgiCiAKKyNpbmNsdWRlICJ2bXdnZnhfZHJ2LmgiCisKICNkZWZpbmUgVk1XX01BWF9OVU1fU1RSRUFNUyAxCiAjZGVmaW5lIFZNV19PVkVSTEFZX0NBUF9NQVNLIChTVkdBX0ZJRk9fQ0FQX1ZJREVPIHwgU1ZHQV9GSUZPX0NBUF9FU0NBUEUpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCmluZGV4IDFkMzhhOGIuLjU1ODFhNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYwpAQCAtMjUsMTUgKzI1LDQ0IEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgotI2luY2x1ZGUgPGRybS92bXdnZnhfZHJtLmg+CiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKwogI2luY2x1ZGUgInZtd2dmeF9yZXNvdXJjZV9wcml2LmgiCiAjaW5jbHVkZSAidm13Z2Z4X2JpbmRpbmcuaCIKKyNpbmNsdWRlICJ2bXdnZnhfZHJ2LmgiCiAKICNkZWZpbmUgVk1XX1JFU19FVklDVF9FUlJfQ09VTlQgMTAKIAorLyoqCisgKiB2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaCAtIE1hcmsgYSByZXNvdXJjZSBhcyBhdHRhY2hlZCB0byBpdHMgYmFja2luZyBtb2IKKyAqIEByZXM6IFRoZSByZXNvdXJjZQorICovCit2b2lkIHZtd19yZXNvdXJjZV9tb2JfYXR0YWNoKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcykKK3sKKwlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJhY2t1cCA9IHJlcy0+YmFja3VwOworCisJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQocmVzLT5iYWNrdXAtPmJhc2UuYmFzZS5yZXN2KTsKKwlyZXMtPnVzZWRfcHJpbyA9IChyZXMtPnJlc19kaXJ0eSkgPyByZXMtPmZ1bmMtPmRpcnR5X3ByaW8gOgorCQlyZXMtPmZ1bmMtPnByaW87CisJbGlzdF9hZGRfdGFpbCgmcmVzLT5tb2JfaGVhZCwgJmJhY2t1cC0+cmVzX2xpc3QpOworCXZtd19ib19wcmlvX2FkZChiYWNrdXAsIHJlcy0+dXNlZF9wcmlvKTsKK30KKworLyoqCisgKiB2bXdfcmVzb3VyY2VfbW9iX2RldGFjaCAtIE1hcmsgYSByZXNvdXJjZSBhcyBkZXRhY2hlZCBmcm9tIGl0cyBiYWNraW5nIG1vYgorICogQHJlczogVGhlIHJlc291cmNlCisgKi8KK3ZvaWQgdm13X3Jlc291cmNlX21vYl9kZXRhY2goc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQoreworCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYmFja3VwID0gcmVzLT5iYWNrdXA7CisKKwlkbWFfcmVzdl9hc3NlcnRfaGVsZChiYWNrdXAtPmJhc2UuYmFzZS5yZXN2KTsKKwlpZiAodm13X3Jlc291cmNlX21vYl9hdHRhY2hlZChyZXMpKSB7CisJCWxpc3RfZGVsX2luaXQoJnJlcy0+bW9iX2hlYWQpOworCQl2bXdfYm9fcHJpb19kZWwoYmFja3VwLCByZXMtPnVzZWRfcHJpbyk7CisJfQorfQorCiBzdHJ1Y3Qgdm13X3Jlc291cmNlICp2bXdfcmVzb3VyY2VfcmVmZXJlbmNlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcykKIHsKIAlrcmVmX2dldCgmcmVzLT5rcmVmKTsKQEAgLTgwLDcgKzEwOSw3IEBAIHN0YXRpYyB2b2lkIHZtd19yZXNvdXJjZV9yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQogCQlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gJnJlcy0+YmFja3VwLT5iYXNlOwogCiAJCXR0bV9ib19yZXNlcnZlKGJvLCBmYWxzZSwgZmFsc2UsIE5VTEwpOwotCQlpZiAoIWxpc3RfZW1wdHkoJnJlcy0+bW9iX2hlYWQpICYmCisJCWlmICh2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaGVkKHJlcykgJiYKIAkJICAgIHJlcy0+ZnVuYy0+dW5iaW5kICE9IE5VTEwpIHsKIAkJCXN0cnVjdCB0dG1fdmFsaWRhdGVfYnVmZmVyIHZhbF9idWY7CiAKQEAgLTg5LDcgKzExOCw3IEBAIHN0YXRpYyB2b2lkIHZtd19yZXNvdXJjZV9yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQogCQkJcmVzLT5mdW5jLT51bmJpbmQocmVzLCBmYWxzZSwgJnZhbF9idWYpOwogCQl9CiAJCXJlcy0+YmFja3VwX2RpcnR5ID0gZmFsc2U7Ci0JCWxpc3RfZGVsX2luaXQoJnJlcy0+bW9iX2hlYWQpOworCQl2bXdfcmVzb3VyY2VfbW9iX2RldGFjaChyZXMpOwogCQl0dG1fYm9fdW5yZXNlcnZlKGJvKTsKIAkJdm13X2JvX3VucmVmZXJlbmNlKCZyZXMtPmJhY2t1cCk7CiAJfQpAQCAtMTc5LDYgKzIwOCw3IEBAIGludCB2bXdfcmVzb3VyY2VfaW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCBzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsCiAJcmVzLT5iYWNrdXBfb2Zmc2V0ID0gMDsKIAlyZXMtPmJhY2t1cF9kaXJ0eSA9IGZhbHNlOwogCXJlcy0+cmVzX2RpcnR5ID0gZmFsc2U7CisJcmVzLT51c2VkX3ByaW8gPSAzOwogCWlmIChkZWxheV9pZCkKIAkJcmV0dXJuIDA7CiAJZWxzZQpAQCAtMzU1LDE0ICszODUsMTQgQEAgc3RhdGljIGludCB2bXdfcmVzb3VyY2VfZG9fdmFsaWRhdGUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLAogCX0KIAogCWlmIChmdW5jLT5iaW5kICYmCi0JICAgICgoZnVuYy0+bmVlZHNfYmFja3VwICYmIGxpc3RfZW1wdHkoJnJlcy0+bW9iX2hlYWQpICYmCisJICAgICgoZnVuYy0+bmVlZHNfYmFja3VwICYmICF2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaGVkKHJlcykgJiYKIAkgICAgICB2YWxfYnVmLT5ibyAhPSBOVUxMKSB8fAogCSAgICAgKCFmdW5jLT5uZWVkc19iYWNrdXAgJiYgdmFsX2J1Zi0+Ym8gIT0gTlVMTCkpKSB7CiAJCXJldCA9IGZ1bmMtPmJpbmQocmVzLCB2YWxfYnVmKTsKIAkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKIAkJCWdvdG8gb3V0X2JpbmRfZmFpbGVkOwogCQlpZiAoZnVuYy0+bmVlZHNfYmFja3VwKQotCQkJbGlzdF9hZGRfdGFpbCgmcmVzLT5tb2JfaGVhZCwgJnJlcy0+YmFja3VwLT5yZXNfbGlzdCk7CisJCQl2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaChyZXMpOwogCX0KIAogCXJldHVybiAwOwpAQCAtNDAyLDE1ICs0MzIsMTMgQEAgdm9pZCB2bXdfcmVzb3VyY2VfdW5yZXNlcnZlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywKIAogCWlmIChzd2l0Y2hfYmFja3VwICYmIG5ld19iYWNrdXAgIT0gcmVzLT5iYWNrdXApIHsKIAkJaWYgKHJlcy0+YmFja3VwKSB7Ci0JCQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZyZXMtPmJhY2t1cC0+YmFzZS5yZXN2LT5sb2NrLmJhc2UpOwotCQkJbGlzdF9kZWxfaW5pdCgmcmVzLT5tb2JfaGVhZCk7CisJCQl2bXdfcmVzb3VyY2VfbW9iX2RldGFjaChyZXMpOwogCQkJdm13X2JvX3VucmVmZXJlbmNlKCZyZXMtPmJhY2t1cCk7CiAJCX0KIAogCQlpZiAobmV3X2JhY2t1cCkgewogCQkJcmVzLT5iYWNrdXAgPSB2bXdfYm9fcmVmZXJlbmNlKG5ld19iYWNrdXApOwotCQkJbG9ja2RlcF9hc3NlcnRfaGVsZCgmbmV3X2JhY2t1cC0+YmFzZS5yZXN2LT5sb2NrLmJhc2UpOwotCQkJbGlzdF9hZGRfdGFpbCgmcmVzLT5tb2JfaGVhZCwgJm5ld19iYWNrdXAtPnJlc19saXN0KTsKKwkJCXZtd19yZXNvdXJjZV9tb2JfYXR0YWNoKHJlcyk7CiAJCX0gZWxzZSB7CiAJCQlyZXMtPmJhY2t1cCA9IE5VTEw7CiAJCX0KQEAgLTQ2OSw3ICs0OTcsNyBAQCB2bXdfcmVzb3VyY2VfY2hlY2tfYnVmZmVyKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCWdvdG8gb3V0X25vX3Jlc2VydmU7CiAKLQlpZiAocmVzLT5mdW5jLT5uZWVkc19iYWNrdXAgJiYgbGlzdF9lbXB0eSgmcmVzLT5tb2JfaGVhZCkpCisJaWYgKHJlcy0+ZnVuYy0+bmVlZHNfYmFja3VwICYmICF2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaGVkKHJlcykpCiAJCXJldHVybiAwOwogCiAJYmFja3VwX2RpcnR5ID0gcmVzLT5iYWNrdXBfZGlydHk7CkBAIC01NzQsMTEgKzYwMiwxMSBAQCBzdGF0aWMgaW50IHZtd19yZXNvdXJjZV9kb19ldmljdChzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCwKIAkJcmV0dXJuIHJldDsKIAogCWlmICh1bmxpa2VseShmdW5jLT51bmJpbmQgIT0gTlVMTCAmJgotCQkgICAgICghZnVuYy0+bmVlZHNfYmFja3VwIHx8ICFsaXN0X2VtcHR5KCZyZXMtPm1vYl9oZWFkKSkpKSB7CisJCSAgICAgKCFmdW5jLT5uZWVkc19iYWNrdXAgfHwgdm13X3Jlc291cmNlX21vYl9hdHRhY2hlZChyZXMpKSkpIHsKIAkJcmV0ID0gZnVuYy0+dW5iaW5kKHJlcywgcmVzLT5yZXNfZGlydHksICZ2YWxfYnVmKTsKIAkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKIAkJCWdvdG8gb3V0X25vX3VuYmluZDsKLQkJbGlzdF9kZWxfaW5pdCgmcmVzLT5tb2JfaGVhZCk7CisJCXZtd19yZXNvdXJjZV9tb2JfZGV0YWNoKHJlcyk7CiAJfQogCXJldCA9IGZ1bmMtPmRlc3Ryb3kocmVzKTsKIAlyZXMtPmJhY2t1cF9kaXJ0eSA9IHRydWU7CkBAIC02NjAsNyArNjg4LDcgQEAgaW50IHZtd19yZXNvdXJjZV92YWxpZGF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsIGJvb2wgaW50cikKIAlpZiAodW5saWtlbHkocmV0ICE9IDApKQogCQlnb3RvIG91dF9ub192YWxpZGF0ZTsKIAllbHNlIGlmICghcmVzLT5mdW5jLT5uZWVkc19iYWNrdXAgJiYgcmVzLT5iYWNrdXApIHsKLQkJbGlzdF9kZWxfaW5pdCgmcmVzLT5tb2JfaGVhZCk7CisJCVdBUk5fT05fT05DRSh2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaGVkKHJlcykpOwogCQl2bXdfYm9fdW5yZWZlcmVuY2UoJnJlcy0+YmFja3VwKTsKIAl9CiAKQEAgLTY5MSw3ICs3MTksNyBAQCB2b2lkIHZtd19yZXNvdXJjZV91bmJpbmRfbGlzdChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykKIAkJLm51bV9zaGFyZWQgPSAwCiAJfTsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnZiby0+YmFzZS5yZXN2LT5sb2NrLmJhc2UpOworCWRtYV9yZXN2X2Fzc2VydF9oZWxkKHZiby0+YmFzZS5iYXNlLnJlc3YpOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXMsIG5leHQsICZ2Ym8tPnJlc19saXN0LCBtb2JfaGVhZCkgewogCQlpZiAoIXJlcy0+ZnVuYy0+dW5iaW5kKQogCQkJY29udGludWU7CkBAIC02OTksNyArNzI3LDcgQEAgdm9pZCB2bXdfcmVzb3VyY2VfdW5iaW5kX2xpc3Qoc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8pCiAJCSh2b2lkKSByZXMtPmZ1bmMtPnVuYmluZChyZXMsIHJlcy0+cmVzX2RpcnR5LCAmdmFsX2J1Zik7CiAJCXJlcy0+YmFja3VwX2RpcnR5ID0gdHJ1ZTsKIAkJcmVzLT5yZXNfZGlydHkgPSBmYWxzZTsKLQkJbGlzdF9kZWxfaW5pdCgmcmVzLT5tb2JfaGVhZCk7CisJCXZtd19yZXNvdXJjZV9tb2JfZGV0YWNoKHJlcyk7CiAJfQogCiAJKHZvaWQpIHR0bV9ib193YWl0KCZ2Ym8tPmJhc2UsIGZhbHNlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZV9wcml2LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZV9wcml2LmgKaW5kZXggN2UxOWViYS4uOTg0ZTU4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2VfcHJpdi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlX3ByaXYuaApAQCAtNzgsNiArNzgsOCBAQCBzdHJ1Y3Qgdm13X3Jlc19mdW5jIHsKIAljb25zdCBjaGFyICp0eXBlX25hbWU7CiAJc3RydWN0IHR0bV9wbGFjZW1lbnQgKmJhY2t1cF9wbGFjZW1lbnQ7CiAJYm9vbCBtYXlfZXZpY3Q7CisJdTMyIHByaW87CisJdTMyIGRpcnR5X3ByaW87CiAKIAlpbnQgKCpjcmVhdGUpIChzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpOwogCWludCAoKmRlc3Ryb3kpIChzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jCmluZGV4IDlhMmEzODMuLmU1YTI4MzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Njcm4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMKQEAgLTI1LDEyICsyNSwxNCBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2luY2x1ZGUgInZtd2dmeF9rbXMuaCIKLSNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKKyNpbmNsdWRlICJ2bXdnZnhfa21zLmgiCiAKICNkZWZpbmUgdm13X2NydGNfdG9fc291KHgpIFwKIAljb250YWluZXJfb2YoeCwgc3RydWN0IHZtd19zY3JlZW5fb2JqZWN0X3VuaXQsIGJhc2UuY3J0YykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3NoYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKaW5kZXggZDMxMGQyMS4uZTEzOWZkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKQEAgLTk1LDYgKzk1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bXdfcmVzX2Z1bmMgdm13X2diX3NoYWRlcl9mdW5jID0gewogCS5yZXNfdHlwZSA9IHZtd19yZXNfc2hhZGVyLAogCS5uZWVkc19iYWNrdXAgPSB0cnVlLAogCS5tYXlfZXZpY3QgPSB0cnVlLAorCS5wcmlvID0gMywKKwkuZGlydHlfcHJpbyA9IDMsCiAJLnR5cGVfbmFtZSA9ICJndWVzdCBiYWNrZWQgc2hhZGVycyIsCiAJLmJhY2t1cF9wbGFjZW1lbnQgPSAmdm13X21vYl9wbGFjZW1lbnQsCiAJLmNyZWF0ZSA9IHZtd19nYl9zaGFkZXJfY3JlYXRlLApAQCAtMTA2LDcgKzEwOCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm13X3Jlc19mdW5jIHZtd19nYl9zaGFkZXJfZnVuYyA9IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm13X3Jlc19mdW5jIHZtd19keF9zaGFkZXJfZnVuYyA9IHsKIAkucmVzX3R5cGUgPSB2bXdfcmVzX3NoYWRlciwKIAkubmVlZHNfYmFja3VwID0gdHJ1ZSwKLQkubWF5X2V2aWN0ID0gZmFsc2UsCisJLm1heV9ldmljdCA9IHRydWUsCisJLnByaW8gPSAzLAorCS5kaXJ0eV9wcmlvID0gMywKIAkudHlwZV9uYW1lID0gImR4IHNoYWRlcnMiLAogCS5iYWNrdXBfcGxhY2VtZW50ID0gJnZtd19tb2JfcGxhY2VtZW50LAogCS5jcmVhdGUgPSB2bXdfZHhfc2hhZGVyX2NyZWF0ZSwKQEAgLTQyMyw3ICs0MjcsNyBAQCBzdGF0aWMgaW50IHZtd19keF9zaGFkZXJfY3JlYXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcykKIAogCVdBUk5fT05fT05DRSghc2hhZGVyLT5jb21taXR0ZWQpOwogCi0JaWYgKCFsaXN0X2VtcHR5KCZyZXMtPm1vYl9oZWFkKSkgeworCWlmICh2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaGVkKHJlcykpIHsKIAkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmJpbmRpbmdfbXV0ZXgpOwogCQlyZXQgPSB2bXdfZHhfc2hhZGVyX3Vuc2NydWIocmVzKTsKIAkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YmluZGluZ19tdXRleCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMKaW5kZXggZjgwM2JiNS4uNDFhOTZmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYwpAQCAtMjUsMTIgKzI1LDE1IEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2luY2x1ZGUgInZtd2dmeF9rbXMuaCIKLSNpbmNsdWRlICJkZXZpY2VfaW5jbHVkZS9zdmdhM2Rfc3VyZmFjZWRlZnMuaCIKLSNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisKKyNpbmNsdWRlICJ2bXdnZnhfa21zLmgiCisjaW5jbHVkZSAiZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX3N1cmZhY2VkZWZzLmgiCiAKICNkZWZpbmUgdm13X2NydGNfdG9fc3RkdSh4KSBcCiAJY29udGFpbmVyX29mKHgsIHN0cnVjdCB2bXdfc2NyZWVuX3RhcmdldF9kaXNwbGF5X3VuaXQsIGJhc2UuY3J0YykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwppbmRleCAyMTk0NzE5Li4yOWQ4Nzk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jCkBAIC0xMTIsNiArMTEyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bXdfcmVzX2Z1bmMgdm13X2xlZ2FjeV9zdXJmYWNlX2Z1bmMgPSB7CiAJLnJlc190eXBlID0gdm13X3Jlc19zdXJmYWNlLAogCS5uZWVkc19iYWNrdXAgPSBmYWxzZSwKIAkubWF5X2V2aWN0ID0gdHJ1ZSwKKwkucHJpbyA9IDEsCisJLmRpcnR5X3ByaW8gPSAxLAogCS50eXBlX25hbWUgPSAibGVnYWN5IHN1cmZhY2VzIiwKIAkuYmFja3VwX3BsYWNlbWVudCA9ICZ2bXdfc3JmX3BsYWNlbWVudCwKIAkuY3JlYXRlID0gJnZtd19sZWdhY3lfc3JmX2NyZWF0ZSwKQEAgLTEyNCw2ICsxMjYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZtd19yZXNfZnVuYyB2bXdfZ2Jfc3VyZmFjZV9mdW5jID0gewogCS5yZXNfdHlwZSA9IHZtd19yZXNfc3VyZmFjZSwKIAkubmVlZHNfYmFja3VwID0gdHJ1ZSwKIAkubWF5X2V2aWN0ID0gdHJ1ZSwKKwkucHJpbyA9IDEsCisJLmRpcnR5X3ByaW8gPSAyLAogCS50eXBlX25hbWUgPSAiZ3Vlc3QgYmFja2VkIHN1cmZhY2VzIiwKIAkuYmFja3VwX3BsYWNlbWVudCA9ICZ2bXdfbW9iX3BsYWNlbWVudCwKIAkuY3JlYXRlID0gdm13X2diX3N1cmZhY2VfY3JlYXRlLApAQCAtOTE1LDEyICs5MTksNiBAQCB2bXdfc3VyZmFjZV9oYW5kbGVfcmVmZXJlbmNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWlmICh1bmxpa2VseShkcm1faXNfcmVuZGVyX2NsaWVudChmaWxlX3ByaXYpKSkKIAkJCXJlcXVpcmVfZXhpc3QgPSB0cnVlOwogCi0JCWlmIChSRUFEX09OQ0Uodm13X2Zwcml2KGZpbGVfcHJpdiktPmxvY2tlZF9tYXN0ZXIpKSB7Ci0JCQlEUk1fRVJST1IoIkxvY2tlZCBtYXN0ZXIgcmVmdXNlZCBsZWdhY3kgIgotCQkJCSAgInN1cmZhY2UgcmVmZXJlbmNlLlxuIik7Ci0JCQlyZXR1cm4gLUVBQ0NFUzsKLQkJfQotCiAJCWhhbmRsZSA9IHVfaGFuZGxlOwogCX0KIApAQCAtMTY2OSw3ICsxNjY3LDcgQEAgdm13X2diX3N1cmZhY2VfZGVmaW5lX2ludGVybmFsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmVwLT5iYWNrdXBfc2l6ZSA9IHJlcy0+YmFja3VwX3NpemU7CiAJaWYgKHJlcy0+YmFja3VwKSB7CiAJCXJlcC0+YnVmZmVyX21hcF9oYW5kbGUgPQotCQkJZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZyZXMtPmJhY2t1cC0+YmFzZS52bWFfbm9kZSk7CisJCQlkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJnJlcy0+YmFja3VwLT5iYXNlLmJhc2Uudm1hX25vZGUpOwogCQlyZXAtPmJ1ZmZlcl9zaXplID0gcmVzLT5iYWNrdXAtPmJhc2UubnVtX3BhZ2VzICogUEFHRV9TSVpFOwogCQlyZXAtPmJ1ZmZlcl9oYW5kbGUgPSBiYWNrdXBfaGFuZGxlOwogCX0gZWxzZSB7CkBAIC0xNzQ1LDcgKzE3NDMsNyBAQCB2bXdfZ2Jfc3VyZmFjZV9yZWZlcmVuY2VfaW50ZXJuYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXAtPmNyZXAuYmFja3VwX3NpemUgPSBzcmYtPnJlcy5iYWNrdXBfc2l6ZTsKIAlyZXAtPmNyZXAuYnVmZmVyX2hhbmRsZSA9IGJhY2t1cF9oYW5kbGU7CiAJcmVwLT5jcmVwLmJ1ZmZlcl9tYXBfaGFuZGxlID0KLQkJZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZzcmYtPnJlcy5iYWNrdXAtPmJhc2Uudm1hX25vZGUpOworCQlkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJnNyZi0+cmVzLmJhY2t1cC0+YmFzZS5iYXNlLnZtYV9ub2RlKTsKIAlyZXAtPmNyZXAuYnVmZmVyX3NpemUgPSBzcmYtPnJlcy5iYWNrdXAtPmJhc2UubnVtX3BhZ2VzICogUEFHRV9TSVpFOwogCiAJcmVwLT5jcmVxLnZlcnNpb24gPSBkcm1fdm13X2diX3N1cmZhY2VfdjE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fZ2x1ZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2dsdWUuYwppbmRleCA4YmFmYTZlLi41YTdiOGJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fZ2x1ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9nbHVlLmMKQEAgLTI1LDcgKzI1LDYgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgInZtd2dmeF9kcnYuaCIKIAogaW50IHZtd19tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaAppbmRleCAxZDIzMjJhLi4wZTA2Mzc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF92YWxpZGF0aW9uLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFsaWRhdGlvbi5oCkBAIC0yOCw5ICsyOCwxMCBAQAogI2lmbmRlZiBfVk1XR0ZYX1ZBTElEQVRJT05fSF8KICNkZWZpbmUgX1ZNV0dGWF9WQUxJREFUSU9OX0hfCiAKLSNpbmNsdWRlIDxkcm0vZHJtX2hhc2h0YWIuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvd3dfbXV0ZXguaD4KKworI2luY2x1ZGUgPGRybS9kcm1faGFzaHRhYi5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oPgogCiAjZGVmaW5lIFZNV19SRVNfRElSVFlfTk9ORSAwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuYyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5jCmluZGV4IDg0YWE0ZDYuLmJhMTgyOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5jCkBAIC04LDEzICs4LDE4IEBACiAgKiBBdXRob3I6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4KICAqLwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Ci0KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1faW9jdGwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CisKICNpbmNsdWRlIDx4ZW4vcGxhdGZvcm1fcGNpLmg+CiAjaW5jbHVkZSA8eGVuL3hlbi5oPgogI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KQEAgLTQ4NSwxNSArNDkwLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgeGVuX2RybV9kcnZfdm1fb3BzID0gewogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHhlbl9kcm1fZHJpdmVyID0gewotCS5kcml2ZXJfZmVhdHVyZXMgICAgICAgICAgID0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwKLQkJCQkgICAgIERSSVZFUl9QUklNRSB8IERSSVZFUl9BVE9NSUMsCisJLmRyaXZlcl9mZWF0dXJlcyAgICAgICAgICAgPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLAogCS5yZWxlYXNlICAgICAgICAgICAgICAgICAgID0geGVuX2RybV9kcnZfcmVsZWFzZSwKIAkuZ2VtX3ZtX29wcyAgICAgICAgICAgICAgICA9ICZ4ZW5fZHJtX2Rydl92bV9vcHMsCiAJLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCAgPSB4ZW5fZHJtX2Rydl9mcmVlX29iamVjdF91bmxvY2tlZCwKIAkucHJpbWVfaGFuZGxlX3RvX2ZkICAgICAgICA9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUgICAgICAgID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9pbXBvcnQgICAgICAgICAgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKLQkuZ2VtX3ByaW1lX2V4cG9ydCAgICAgICAgICA9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAogCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0geGVuX2RybV9mcm9udF9nZW1faW1wb3J0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlICAgID0geGVuX2RybV9mcm9udF9nZW1fZ2V0X3NnX3RhYmxlLAogCS5nZW1fcHJpbWVfdm1hcCAgICAgICAgICAgID0geGVuX2RybV9mcm9udF9nZW1fcHJpbWVfdm1hcCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5oIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmgKaW5kZXggNTY5M2I0YS4uZjkyYzI1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmgKQEAgLTExLDEzICsxMSwxOCBAQAogI2lmbmRlZiBfX1hFTl9EUk1fRlJPTlRfSF8KICNkZWZpbmUgX19YRU5fRFJNX0ZST05UX0hfCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KLQogI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgorI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KKwogI2luY2x1ZGUgInhlbl9kcm1fZnJvbnRfY2ZnLmgiCiAKK3N0cnVjdCBkcm1fZGV2aWNlOworc3RydWN0IGRybV9mcmFtZWJ1ZmZlcjsKK3N0cnVjdCBkcm1fZ2VtX29iamVjdDsKK3N0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQ7CisKIC8qKgogICogRE9DOiBEcml2ZXIgbW9kZXMgb2Ygb3BlcmF0aW9uIGluIHRlcm1zIG9mIGRpc3BsYXkgYnVmZmVycyB1c2VkCiAgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2NmZy5jIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2NmZy5jCmluZGV4IDViYWYyYjkuLmVjNTNiOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jZmcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY2ZnLmMKQEAgLTgsMTAgKzgsMTAgQEAKICAqIEF1dGhvcjogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotCiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CisKICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2lvL2Rpc3BsaWYuaD4KICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jb25uLmMgYi9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY29ubi5jCmluZGV4IDlmNWYzMWYuLjQ1OTcwMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jb25uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2Nvbm4uYwpAQCAtOSw2ICs5LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogCiAjaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2RlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY29ubi5oIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2Nvbm4uaAppbmRleCAzOWRlN2NmLi4zYWRhY2JhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY29ubi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jb25uLmgKQEAgLTExLDExICsxMSwxMCBAQAogI2lmbmRlZiBfX1hFTl9EUk1fRlJPTlRfQ09OTl9IXwogI2RlZmluZSBfX1hFTl9EUk1fRlJPTlRfQ09OTl9IXwogCi0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCi0jaW5jbHVkZSA8bGludXgvd2FpdC5oPgorc3RydWN0IGRybV9jb25uZWN0b3I7CitzdHJ1Y3QgeGVuX2RybV9mcm9udF9kcm1faW5mbzsKIAogc3RydWN0IHhlbl9kcm1fZnJvbnRfZHJtX2luZm87CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9ldnRjaG5sLmMgYi9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZXZ0Y2hubC5jCmluZGV4IDk0NTIyNmEuLmUxMGQ5NWRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZXZ0Y2hubC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9ldnRjaG5sLmMKQEAgLTgsMTEgKzgsMTEgQEAKICAqIEF1dGhvcjogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgogICovCiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KKwogI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KICNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+CiAjaW5jbHVkZSA8eGVuL2dyYW50X3RhYmxlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmMKaW5kZXggYTI0NTQ4NC4uZjBiODVlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYwpAQCAtOCwyMCArOCwxOSBAQAogICogQXV0aG9yOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+CiAgKi8KIAotI2luY2x1ZGUgInhlbl9kcm1fZnJvbnRfZ2VtLmgiCi0KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KLSNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotCiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2htZW1fZnMuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKwogI2luY2x1ZGUgPHhlbi9iYWxsb29uLmg+CiAKICNpbmNsdWRlICJ4ZW5fZHJtX2Zyb250LmgiCisjaW5jbHVkZSAieGVuX2RybV9mcm9udF9nZW0uaCIKIAogc3RydWN0IHhlbl9nZW1fb2JqZWN0IHsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgYmFzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaAppbmRleCBkNWFiNzM0Li5hMzk2NzVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5oCkBAIC0xMSw3ICsxMSwxMiBAQAogI2lmbmRlZiBfX1hFTl9EUk1fRlJPTlRfR0VNX0gKICNkZWZpbmUgX19YRU5fRFJNX0ZST05UX0dFTV9ICiAKLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorc3RydWN0IGRtYV9idWZfYXR0YWNobWVudDsKK3N0cnVjdCBkcm1fZGV2aWNlOworc3RydWN0IGRybV9nZW1fb2JqZWN0Oworc3RydWN0IGZpbGU7CitzdHJ1Y3Qgc2dfdGFibGU7CitzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Q7CiAKIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqeGVuX2RybV9mcm9udF9nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCQlzaXplX3Qgc2l6ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfa21zLmMKaW5kZXggYzI5NTVkMy4uMjFhZDFjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9rbXMuYwpAQCAtOCwxNyArOCwxOCBAQAogICogQXV0aG9yOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+CiAgKi8KIAotI2luY2x1ZGUgInhlbl9kcm1fZnJvbnRfa21zLmgiCi0KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAieGVuX2RybV9mcm9udC5oIgogI2luY2x1ZGUgInhlbl9kcm1fZnJvbnRfY29ubi5oIgorI2luY2x1ZGUgInhlbl9kcm1fZnJvbnRfa21zLmgiCiAKIC8qCiAgKiBUaW1lb3V0IGluIG1zIHRvIHdhaXQgZm9yIGZyYW1lIGRvbmUgZXZlbnQgZnJvbSB0aGUgYmFja2VuZDoKQEAgLTQ1LDcgKzQ2LDcgQEAgc3RhdGljIHZvaWQgZmJfZGVzdHJveShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKIAlkcm1fZ2VtX2ZiX2Rlc3Ryb3koZmIpOwogfQogCi1zdGF0aWMgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyBmYl9mdW5jcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIGZiX2Z1bmNzID0gewogCS5kZXN0cm95ID0gZmJfZGVzdHJveSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9kcm1fZHJ2LmMKaW5kZXggNTIwZDczNi4uMTE0MWMxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9kcm1fZHJ2LmMKQEAgLTE0LDEzICsxNCwxNCBAQAogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNsdWRlICJ6eF9kcm1fZHJ2LmgiCiAjaW5jbHVkZSAienhfdm91LmgiCkBAIC0zNCwxNSArMzUsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgenhfZHJtX21vZGVfY29uZmlnX2Z1bmNzID0gewogREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoenhfZHJtX2ZvcHMpOwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgenhfZHJtX2RyaXZlciA9IHsKLQkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX1BSSU1FIHwKLQkJCSAgIERSSVZFUl9BVE9NSUMsCisJLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCiAJLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IGRybV9nZW1fY21hX2ZyZWVfb2JqZWN0LAogCS5nZW1fdm1fb3BzID0gJmRybV9nZW1fY21hX3ZtX29wcywKIAkuZHVtYl9jcmVhdGUgPSBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSwKIAkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAotCS5nZW1fcHJpbWVfZXhwb3J0ID0gZHJtX2dlbV9wcmltZV9leHBvcnQsCi0JLmdlbV9wcmltZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKIAkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKIAkuZ2VtX3ByaW1lX3ZtYXAgPSBkcm1fZ2VtX2NtYV9wcmltZV92bWFwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X2hkbWkuYwppbmRleCBiZmU5MThiMi4uYTUwZjVhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9oZG1pLmMKQEAgLTE5LDcgKzE5LDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIAogI2luY2x1ZGUgPHNvdW5kL2hkbWktY29kZWMuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCmluZGV4IDZiODEyYWEuLjA4NmM1MGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmMKQEAgLTcsMTAgKzcsMTAgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KIAogI2luY2x1ZGUgInp4X2NvbW1vbl9yZWdzLmgiCiAjaW5jbHVkZSAienhfZHJtX2Rydi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF90dmVuYy5jIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF90dmVuYy5jCmluZGV4IGE3NjhjNTYuLmM1OThiN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfdHZlbmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3R2ZW5jLmMKQEAgLTcsMTEgKzcsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgogCiAjaW5jbHVkZSAienhfZHJtX2Rydi5oIgogI2luY2x1ZGUgInp4X3R2ZW5jX3JlZ3MuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfdmdhLmMgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3ZnYS5jCmluZGV4IDE2MzRhMDguLjliNjdlNDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfdmdhLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF92Z2EuYwpAQCAtNywxMSArNywxMyBAQAogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAKICNpbmNsdWRlICJ6eF9kcm1fZHJ2LmgiCiAjaW5jbHVkZSAienhfdmdhX3JlZ3MuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfdm91LmMgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3ZvdS5jCmluZGV4IDgxYjRjZjEuLjUyNTlmZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfdm91LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF92b3UuYwpAQCAtNiw3ICs2LDEwIEBACiAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKICNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgpAQCAtMTcsNyArMjAsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgogCiAjaW5jbHVkZSAienhfY29tbW9uX3JlZ3MuaCIKICNpbmNsdWRlICJ6eF9kcm1fZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LWNvbW1vbi5jIGIvZHJpdmVycy9ncHUvaXB1LXYzL2lwdS1jb21tb24uYwppbmRleCA2Mzg2ZTJmLi5lZTJhMDI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LWNvbW1vbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2lwdS12My9pcHUtY29tbW9uLmMKQEAgLTExMywxMyArMTEzLDE3IEBAIGVudW0gaXB1X2NvbG9yX3NwYWNlIGlwdV9waXhlbGZvcm1hdF90b19jb2xvcnNwYWNlKHUzMiBwaXhlbGZvcm1hdCkKIAljYXNlIFY0TDJfUElYX0ZNVF9OVjE2OgogCWNhc2UgVjRMMl9QSVhfRk1UX05WNjE6CiAJCXJldHVybiBJUFVWM19DT0xPUlNQQUNFX1lVVjsKLQljYXNlIFY0TDJfUElYX0ZNVF9YUkdCMzI6Ci0JY2FzZSBWNEwyX1BJWF9GTVRfWEJHUjMyOgotCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjMyOgotCWNhc2UgVjRMMl9QSVhfRk1UX0JHUjMyOgotCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjI0OgotCWNhc2UgVjRMMl9QSVhfRk1UX0JHUjI0OgogCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjU2NToKKwljYXNlIFY0TDJfUElYX0ZNVF9CR1IyNDoKKwljYXNlIFY0TDJfUElYX0ZNVF9SR0IyNDoKKwljYXNlIFY0TDJfUElYX0ZNVF9BQkdSMzI6CisJY2FzZSBWNEwyX1BJWF9GTVRfWEJHUjMyOgorCWNhc2UgVjRMMl9QSVhfRk1UX0JHUkEzMjoKKwljYXNlIFY0TDJfUElYX0ZNVF9CR1JYMzI6CisJY2FzZSBWNEwyX1BJWF9GTVRfUkdCQTMyOgorCWNhc2UgVjRMMl9QSVhfRk1UX1JHQlgzMjoKKwljYXNlIFY0TDJfUElYX0ZNVF9BUkdCMzI6CisJY2FzZSBWNEwyX1BJWF9GTVRfWFJHQjMyOgogCQlyZXR1cm4gSVBVVjNfQ09MT1JTUEFDRV9SR0I7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIElQVVYzX0NPTE9SU1BBQ0VfVU5LTk9XTjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2lwdS12My9pcHUtY3BtZW0uYyBiL2RyaXZlcnMvZ3B1L2lwdS12My9pcHUtY3BtZW0uYwppbmRleCBiZTEyMjZjLi5hMWM4NWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LWNwbWVtLmMKKysrIGIvZHJpdmVycy9ncHUvaXB1LXYzL2lwdS1jcG1lbS5jCkBAIC0xODIsOSArMTgyLDI3IEBAIHN0YXRpYyBpbnQgdjRsMl9waXhfZm10X3RvX2RybV9mb3VyY2ModTMyIHBpeGVsZm9ybWF0KQogCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjMyOgogCQkvKiBSIEcgQiBBIDw9PiBbMzI6MF0gQTpCOkc6UiAqLwogCQlyZXR1cm4gRFJNX0ZPUk1BVF9YQkdSODg4ODsKKwljYXNlIFY0TDJfUElYX0ZNVF9BQkdSMzI6CisJCS8qIEIgRyBSIEEgPD0+IFszMjowXSBBOlI6RzpCICovCisJCXJldHVybiBEUk1fRk9STUFUX0FSR0I4ODg4OwogCWNhc2UgVjRMMl9QSVhfRk1UX1hCR1IzMjoKIAkJLyogQiBHIFIgWCA8PT4gWzMyOjBdIFg6UjpHOkIgKi8KIAkJcmV0dXJuIERSTV9GT1JNQVRfWFJHQjg4ODg7CisJY2FzZSBWNEwyX1BJWF9GTVRfQkdSQTMyOgorCQkvKiBBIEIgRyBSIDw9PiBbMzI6MF0gUjpHOkI6QSAqLworCQlyZXR1cm4gRFJNX0ZPUk1BVF9SR0JBODg4ODsKKwljYXNlIFY0TDJfUElYX0ZNVF9CR1JYMzI6CisJCS8qIFggQiBHIFIgPD0+IFszMjowXSBSOkc6QjpYICovCisJCXJldHVybiBEUk1fRk9STUFUX1JHQlg4ODg4OworCWNhc2UgVjRMMl9QSVhfRk1UX1JHQkEzMjoKKwkJLyogUiBHIEIgQSA8PT4gWzMyOjBdIEE6QjpHOlIgKi8KKwkJcmV0dXJuIERSTV9GT1JNQVRfQUJHUjg4ODg7CisJY2FzZSBWNEwyX1BJWF9GTVRfUkdCWDMyOgorCQkvKiBSIEcgQiBYIDw9PiBbMzI6MF0gWDpCOkc6UiAqLworCQlyZXR1cm4gRFJNX0ZPUk1BVF9YQkdSODg4ODsKKwljYXNlIFY0TDJfUElYX0ZNVF9BUkdCMzI6CisJCS8qIEEgUiBHIEIgPD0+IFszMjowXSBCOkc6UjpBICovCisJCXJldHVybiBEUk1fRk9STUFUX0JHUkE4ODg4OwogCWNhc2UgVjRMMl9QSVhfRk1UX1hSR0IzMjoKIAkJLyogWCBSIEcgQiA8PT4gWzMyOjBdIEI6RzpSOlggKi8KIAkJcmV0dXJuIERSTV9GT1JNQVRfQkdSWDg4ODg7CkBAIC04MjMsOCArODQxLDE0IEBAIGludCBpcHVfY3BtZW1fc2V0X2ltYWdlKHN0cnVjdCBpcHV2M19jaGFubmVsICpjaCwgc3RydWN0IGlwdV9pbWFnZSAqaW1hZ2UpCiAJCWJyZWFrOwogCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjMyOgogCWNhc2UgVjRMMl9QSVhfRk1UX0JHUjMyOgotCWNhc2UgVjRMMl9QSVhfRk1UX1hSR0IzMjoKKwljYXNlIFY0TDJfUElYX0ZNVF9BQkdSMzI6CiAJY2FzZSBWNEwyX1BJWF9GTVRfWEJHUjMyOgorCWNhc2UgVjRMMl9QSVhfRk1UX0JHUkEzMjoKKwljYXNlIFY0TDJfUElYX0ZNVF9CR1JYMzI6CisJY2FzZSBWNEwyX1BJWF9GTVRfUkdCQTMyOgorCWNhc2UgVjRMMl9QSVhfRk1UX1JHQlgzMjoKKwljYXNlIFY0TDJfUElYX0ZNVF9BUkdCMzI6CisJY2FzZSBWNEwyX1BJWF9GTVRfWFJHQjMyOgogCQlvZmZzZXQgPSBpbWFnZS0+cmVjdC5sZWZ0ICogNCArCiAJCQlpbWFnZS0+cmVjdC50b3AgKiBwaXgtPmJ5dGVzcGVybGluZTsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LWltYWdlLWNvbnZlcnQuYyBiL2RyaXZlcnMvZ3B1L2lwdS12My9pcHUtaW1hZ2UtY29udmVydC5jCmluZGV4IDlkMjVkYjYuLmVlY2E1MGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2lwdS12My9pcHUtaW1hZ2UtY29udmVydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2lwdS12My9pcHUtaW1hZ2UtY29udmVydC5jCkBAIC0yNTIsNiArMjUyLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXB1X2ltYWdlX3BpeGZtdCBpbWFnZV9jb252ZXJ0X2Zvcm1hdHNbXSA9IHsKIAkJLmZvdXJjYwk9IFY0TDJfUElYX0ZNVF9YQkdSMzIsCiAJCS5icHAgICAgPSAzMiwKIAl9LCB7CisJCS5mb3VyY2MJPSBWNEwyX1BJWF9GTVRfQkdSWDMyLAorCQkuYnBwICAgID0gMzIsCisJfSwgeworCQkuZm91cmNjCT0gVjRMMl9QSVhfRk1UX1JHQlgzMiwKKwkJLmJwcCAgICA9IDMyLAorCX0sIHsKIAkJLmZvdXJjYwk9IFY0TDJfUElYX0ZNVF9ZVVlWLAogCQkuYnBwICAgID0gMTYsCiAJCS51dl93aWR0aF9kZWMgPSAyLApAQCAtMzc2LDggKzM4MiwxMSBAQCBzdGF0aWMgaW5saW5lIGludCBudW1fc3RyaXBlcyhpbnQgZGltKQogCiAvKgogICogQ2FsY3VsYXRlIGRvd25zaXppbmcgY29lZmZpY2llbnRzLCB3aGljaCBhcmUgdGhlIHNhbWUgZm9yIGFsbCB0aWxlcywKLSAqIGFuZCBiaWxpbmVhciByZXNpemluZyBjb2VmZmljaWVudHMsIHdoaWNoIGFyZSB1c2VkIHRvIGZpbmQgdGhlIGJlc3QKLSAqIHNlYW0gcG9zaXRpb25zLgorICogYW5kIGluaXRpYWwgYmlsaW5lYXIgcmVzaXppbmcgY29lZmZpY2llbnRzLCB3aGljaCBhcmUgdXNlZCB0byBmaW5kIHRoZQorICogYmVzdCBzZWFtIHBvc2l0aW9ucy4KKyAqIEFsc28gZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgdGlsZXMgbmVjZXNzYXJ5IHRvIGd1YXJhbnRlZSB0aGF0IG5vIHRpbGUKKyAqIGlzIGxhcmdlciB0aGFuIDEwMjQgcGl4ZWxzIGluIGVpdGhlciBkaW1lbnNpb24gYXQgdGhlIG91dHB1dCBhbmQgYmV0d2VlbgorICogSUMgZG93bnNpemluZyBhbmQgbWFpbiBwcm9jZXNzaW5nIHNlY3Rpb25zLgogICovCiBzdGF0aWMgaW50IGNhbGNfaW1hZ2VfcmVzaXplX2NvZWZmaWNpZW50cyhzdHJ1Y3QgaXB1X2ltYWdlX2NvbnZlcnRfY3R4ICpjdHgsCiAJCQkJCSAgc3RydWN0IGlwdV9pbWFnZSAqaW4sCkBAIC0zOTEsNiArNDAwLDggQEAgc3RhdGljIGludCBjYWxjX2ltYWdlX3Jlc2l6ZV9jb2VmZmljaWVudHMoc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2N0eCAqY3R4LAogCXUzMiByZXNpemVkX2hlaWdodCA9IG91dC0+cmVjdC5oZWlnaHQ7CiAJdTMyIHJlc2l6ZV9jb2VmZl9oOwogCXUzMiByZXNpemVfY29lZmZfdjsKKwl1MzIgY29sczsKKwl1MzIgcm93czsKIAogCWlmIChpcHVfcm90X21vZGVfaXNfaXJ0KGN0eC0+cm90X21vZGUpKSB7CiAJCXJlc2l6ZWRfd2lkdGggPSBvdXQtPnJlY3QuaGVpZ2h0OwpAQCAtNDAxLDE0ICs0MTIsMTIgQEAgc3RhdGljIGludCBjYWxjX2ltYWdlX3Jlc2l6ZV9jb2VmZmljaWVudHMoc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2N0eCAqY3R4LAogCWlmIChXQVJOX09OKHJlc2l6ZWRfd2lkdGggPT0gMCB8fCByZXNpemVkX2hlaWdodCA9PSAwKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQl3aGlsZSAoZG93bnNpemVkX3dpZHRoID4gMTAyNCB8fAotCSAgICAgICBkb3duc2l6ZWRfd2lkdGggPj0gcmVzaXplZF93aWR0aCAqIDIpIHsKKwl3aGlsZSAoZG93bnNpemVkX3dpZHRoID49IHJlc2l6ZWRfd2lkdGggKiAyKSB7CiAJCWRvd25zaXplZF93aWR0aCA+Pj0gMTsKIAkJZG93bnNpemVfY29lZmZfaCsrOwogCX0KIAotCXdoaWxlIChkb3duc2l6ZWRfaGVpZ2h0ID4gMTAyNCB8fAotCSAgICAgICBkb3duc2l6ZWRfaGVpZ2h0ID49IHJlc2l6ZWRfaGVpZ2h0ICogMikgeworCXdoaWxlIChkb3duc2l6ZWRfaGVpZ2h0ID49IHJlc2l6ZWRfaGVpZ2h0ICogMikgewogCQlkb3duc2l6ZWRfaGVpZ2h0ID4+PSAxOwogCQlkb3duc2l6ZV9jb2VmZl92Kys7CiAJfQpAQCAtNDIyLDEwICs0MzEsMTggQEAgc3RhdGljIGludCBjYWxjX2ltYWdlX3Jlc2l6ZV9jb2VmZmljaWVudHMoc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2N0eCAqY3R4LAogCXJlc2l6ZV9jb2VmZl9oID0gODE5MiAqIChkb3duc2l6ZWRfd2lkdGggLSAxKSAvIChyZXNpemVkX3dpZHRoIC0gMSk7CiAJcmVzaXplX2NvZWZmX3YgPSA4MTkyICogKGRvd25zaXplZF9oZWlnaHQgLSAxKSAvIChyZXNpemVkX2hlaWdodCAtIDEpOwogCisJLyoKKwkgKiBCb3RoIHRoZSBvdXRwdXQgb2YgdGhlIElDIGRvd25zaXppbmcgc2VjdGlvbiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvCisJICogdGhlIElDIG1haW4gcHJvY2Vzc2luZyBzZWN0aW9uIGFuZCB0aGUgZmluYWwgb3V0cHV0IG9mIHRoZSBJQyBtYWluCisJICogcHJvY2Vzc2luZyBzZWN0aW9uIG11c3QgYmUgPD0gMTAyNCBwaXhlbHMgaW4gYm90aCBkaW1lbnNpb25zLgorCSAqLworCWNvbHMgPSBudW1fc3RyaXBlcyhtYXhfdCh1MzIsIGRvd25zaXplZF93aWR0aCwgcmVzaXplZF93aWR0aCkpOworCXJvd3MgPSBudW1fc3RyaXBlcyhtYXhfdCh1MzIsIGRvd25zaXplZF9oZWlnaHQsIHJlc2l6ZWRfaGVpZ2h0KSk7CisKIAlkZXZfZGJnKGN0eC0+Y2hhbi0+cHJpdi0+aXB1LT5kZXYsCiAJCSIlczogaHNjYWxlOiA+PiV1LCAqODE5Mi8ldSB2c2NhbGU6ID4+JXUsICo4MTkyLyV1LCAldXgldSB0aWxlc1xuIiwKIAkJX19mdW5jX18sIGRvd25zaXplX2NvZWZmX2gsIHJlc2l6ZV9jb2VmZl9oLCBkb3duc2l6ZV9jb2VmZl92LAotCQlyZXNpemVfY29lZmZfdiwgY3R4LT5pbi5udW1fY29scywgY3R4LT5pbi5udW1fcm93cyk7CisJCXJlc2l6ZV9jb2VmZl92LCBjb2xzLCByb3dzKTsKIAogCWlmIChkb3duc2l6ZV9jb2VmZl9oID4gMiB8fCBkb3duc2l6ZV9jb2VmZl92ICA+IDIgfHwKIAkgICAgcmVzaXplX2NvZWZmX2ggPiAweDNmZmYgfHwgcmVzaXplX2NvZWZmX3YgPiAweDNmZmYpCkBAIC00MzUsNiArNDUyLDggQEAgc3RhdGljIGludCBjYWxjX2ltYWdlX3Jlc2l6ZV9jb2VmZmljaWVudHMoc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2N0eCAqY3R4LAogCWN0eC0+ZG93bnNpemVfY29lZmZfdiA9IGRvd25zaXplX2NvZWZmX3Y7CiAJY3R4LT5pbWFnZV9yZXNpemVfY29lZmZfaCA9IHJlc2l6ZV9jb2VmZl9oOwogCWN0eC0+aW1hZ2VfcmVzaXplX2NvZWZmX3YgPSByZXNpemVfY29lZmZfdjsKKwljdHgtPmluLm51bV9jb2xzID0gY29sczsKKwljdHgtPmluLm51bV9yb3dzID0gcm93czsKIAogCXJldHVybiAwOwogfQpAQCAtNDQyLDEyICs0NjEsMTAgQEAgc3RhdGljIGludCBjYWxjX2ltYWdlX3Jlc2l6ZV9jb2VmZmljaWVudHMoc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2N0eCAqY3R4LAogI2RlZmluZSByb3VuZF9jbG9zZXN0KHgsIHkpIHJvdW5kX2Rvd24oKHgpICsgKHkpLzIsICh5KSkKIAogLyoKLSAqIEZpbmQgdGhlIGJlc3QgYWxpZ25lZCBzZWFtIHBvc2l0aW9uIGluIHRoZSBpbnZlcnZhbCBbb3V0X3N0YXJ0LCBvdXRfZW5kXS4KKyAqIEZpbmQgdGhlIGJlc3QgYWxpZ25lZCBzZWFtIHBvc2l0aW9uIGZvciB0aGUgZ2l2ZW4gY29sdW1uIC8gcm93IGluZGV4LgogICogUm90YXRpb24gYW5kIGltYWdlIG9mZnNldHMgYXJlIG91dCBvZiBzY29wZS4KICAqCi0gKiBAb3V0X3N0YXJ0OiBzdGFydCBvZiBpbnZlcnZhbCwgbXVzdCBiZSB3aXRoaW4gMTAyNCBwaXhlbHMgLyBsaW5lcwotICogICAgICAgICAgICAgb2Ygb3V0X2VuZAotICogQG91dF9lbmQ6IGVuZCBvZiBpbnRlcnZhbCwgc21hbGxlciB0aGFuIG9yIGVxdWFsIHRvIG91dF9lZGdlCisgKiBAaW5kZXg6IGNvbHVtbiAvIHJvdyBpbmRleCwgdXNlZCB0byBjYWxjdWxhdGUgdmFsaWQgaW50ZXJ2YWwKICAqIEBpbl9lZGdlOiBpbnB1dCByaWdodCAvIGJvdHRvbSBlZGdlCiAgKiBAb3V0X2VkZ2U6IG91dHB1dCByaWdodCAvIGJvdHRvbSBlZGdlCiAgKiBAaW5fYWxpZ246IGlucHV0IGFsaWdubWVudCwgZWl0aGVyIGhvcml6b250YWwgOC1ieXRlIGxpbmUgc3RhcnQgYWRkcmVzcwpAQCAtNDYzLDggKzQ4MCw3IEBAIHN0YXRpYyBpbnQgY2FsY19pbWFnZV9yZXNpemVfY29lZmZpY2llbnRzKHN0cnVjdCBpcHVfaW1hZ2VfY29udmVydF9jdHggKmN0eCwKICAqIEBfb3V0X3NlYW06IGFsaWduZWQgb3V0cHV0IHNlYW0gcG9zaXRpb24gcmV0dXJuIHZhbHVlCiAgKi8KIHN0YXRpYyB2b2lkIGZpbmRfYmVzdF9zZWFtKHN0cnVjdCBpcHVfaW1hZ2VfY29udmVydF9jdHggKmN0eCwKLQkJCSAgIHVuc2lnbmVkIGludCBvdXRfc3RhcnQsCi0JCQkgICB1bnNpZ25lZCBpbnQgb3V0X2VuZCwKKwkJCSAgIHVuc2lnbmVkIGludCBpbmRleCwKIAkJCSAgIHVuc2lnbmVkIGludCBpbl9lZGdlLAogCQkJICAgdW5zaWduZWQgaW50IG91dF9lZGdlLAogCQkJICAgdW5zaWduZWQgaW50IGluX2FsaWduLApAQCAtNDgyLDYgKzQ5OCwyNCBAQCBzdGF0aWMgdm9pZCBmaW5kX2Jlc3Rfc2VhbShzdHJ1Y3QgaXB1X2ltYWdlX2NvbnZlcnRfY3R4ICpjdHgsCiAJdW5zaWduZWQgaW50IG91dF9zZWFtID0gMDsKIAl1bnNpZ25lZCBpbnQgaW5fc2VhbSA9IDA7CiAJdW5zaWduZWQgaW50IG1pbl9kaWZmID0gVUlOVF9NQVg7CisJdW5zaWduZWQgaW50IG91dF9zdGFydDsKKwl1bnNpZ25lZCBpbnQgb3V0X2VuZDsKKwl1bnNpZ25lZCBpbnQgaW5fc3RhcnQ7CisJdW5zaWduZWQgaW50IGluX2VuZDsKKworCS8qIFN0YXJ0IHdpdGhpbiAxMDI0IHBpeGVscyBvZiB0aGUgcmlnaHQgLyBib3R0b20gZWRnZSAqLworCW91dF9zdGFydCA9IG1heF90KGludCwgaW5kZXggKiBvdXRfYWxpZ24sIG91dF9lZGdlIC0gMTAyNCk7CisJLyogRW5kIGJlZm9yZSBoYXZpbmcgdG8gYWRkIG1vcmUgY29sdW1ucyB0byB0aGUgbGVmdCAvIHJvd3MgYWJvdmUgKi8KKwlvdXRfZW5kID0gbWluX3QodW5zaWduZWQgaW50LCBvdXRfZWRnZSwgaW5kZXggKiAxMDI0ICsgMSk7CisKKwkvKgorCSAqIExpbWl0IGlucHV0IHNlYW0gcG9zaXRpb24gdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRvd25zaXplZCBpbnB1dCB0aWxlCisJICogdG8gdGhlIHJpZ2h0IG9yIGJvdHRvbSBkb2VzIG5vdCBleGNlZWQgMTAyNCBwaXhlbHMuCisJICovCisJaW5fc3RhcnQgPSBtYXhfdChpbnQsIGluZGV4ICogaW5fYWxpZ24sCisJCQkgaW5fZWRnZSAtICgxMDI0IDw8IGRvd25zaXplX2NvZWZmKSk7CisJaW5fZW5kID0gbWluX3QodW5zaWduZWQgaW50LCBpbl9lZGdlLAorCQkgICAgICAgaW5kZXggKiAoMTAyNCA8PCBkb3duc2l6ZV9jb2VmZikgKyAxKTsKIAogCS8qCiAJICogT3V0cHV0IHRpbGVzIG11c3Qgc3RhcnQgYXQgYSBtdWx0aXBsZSBvZiA4IGJ5dGVzIGhvcml6b250YWxseSBhbmQKQEAgLTQ5Miw2ICs1MjYsNyBAQCBzdGF0aWMgdm9pZCBmaW5kX2Jlc3Rfc2VhbShzdHJ1Y3QgaXB1X2ltYWdlX2NvbnZlcnRfY3R4ICpjdHgsCiAJZm9yIChvdXRfcG9zID0gb3V0X3N0YXJ0OyBvdXRfcG9zIDwgb3V0X2VuZDsgb3V0X3BvcyArPSBvdXRfYWxpZ24pIHsKIAkJdW5zaWduZWQgaW50IGluX3BvczsKIAkJdW5zaWduZWQgaW50IGluX3Bvc19hbGlnbmVkOworCQl1bnNpZ25lZCBpbnQgaW5fcG9zX3JvdW5kZWQ7CiAJCXVuc2lnbmVkIGludCBhYnNfZGlmZjsKIAogCQkvKgpAQCAtNTEyLDkgKzU0NywxNiBAQCBzdGF0aWMgdm9pZCBmaW5kX2Jlc3Rfc2VhbShzdHJ1Y3QgaXB1X2ltYWdlX2NvbnZlcnRfY3R4ICpjdHgsCiAJCSAqIHN0YXJ0IHRoZSBpbnB1dCB0aWxlIGF0LCAxOS4xMyBmaXhlZCBwb2ludC4KIAkJICovCiAJCWluX3Bvc19hbGlnbmVkID0gcm91bmRfY2xvc2VzdChpbl9wb3MsIDgxOTJVICogaW5fYWxpZ24pOworCQkvKiBDb252ZXJ0IDE5LjEzIGZpeGVkIHBvaW50IHRvIGludGVnZXIgKi8KKwkJaW5fcG9zX3JvdW5kZWQgPSBpbl9wb3NfYWxpZ25lZCAvIDgxOTJVOworCisJCWlmIChpbl9wb3Nfcm91bmRlZCA8IGluX3N0YXJ0KQorCQkJY29udGludWU7CisJCWlmIChpbl9wb3Nfcm91bmRlZCA+PSBpbl9lbmQpCisJCQlicmVhazsKIAogCQlpZiAoKGluX2J1cnN0ID4gMSkgJiYKLQkJICAgIChpbl9lZGdlIC0gaW5fcG9zX2FsaWduZWQgLyA4MTkyVSkgJSBpbl9idXJzdCkKKwkJICAgIChpbl9lZGdlIC0gaW5fcG9zX3JvdW5kZWQpICUgaW5fYnVyc3QpCiAJCQljb250aW51ZTsKIAogCQlpZiAoaW5fcG9zIDwgaW5fcG9zX2FsaWduZWQpCkBAIC01MjMsMTkgKzU2NSwxOCBAQCBzdGF0aWMgdm9pZCBmaW5kX2Jlc3Rfc2VhbShzdHJ1Y3QgaXB1X2ltYWdlX2NvbnZlcnRfY3R4ICpjdHgsCiAJCQlhYnNfZGlmZiA9IGluX3BvcyAtIGluX3Bvc19hbGlnbmVkOwogCiAJCWlmIChhYnNfZGlmZiA8IG1pbl9kaWZmKSB7Ci0JCQlpbl9zZWFtID0gaW5fcG9zX2FsaWduZWQ7CisJCQlpbl9zZWFtID0gaW5fcG9zX3JvdW5kZWQ7CiAJCQlvdXRfc2VhbSA9IG91dF9wb3M7CiAJCQltaW5fZGlmZiA9IGFic19kaWZmOwogCQl9CiAJfQogCiAJKl9vdXRfc2VhbSA9IG91dF9zZWFtOwotCS8qIENvbnZlcnQgMTkuMTMgZml4ZWQgcG9pbnQgdG8gaW50ZWdlciBzZWFtIHBvc2l0aW9uICovCi0JKl9pbl9zZWFtID0gRElWX1JPVU5EX0NMT1NFU1QoaW5fc2VhbSwgODE5MlUpOworCSpfaW5fc2VhbSA9IGluX3NlYW07CiAKLQlkZXZfZGJnKGRldiwgIiVzOiBvdXRfc2VhbSAldSgldSkgaW4gWyV1LCAldV0sIGluX3NlYW0gJXUoJXUpIGRpZmYgJXUuJTAzdVxuIiwKKwlkZXZfZGJnKGRldiwgIiVzOiBvdXRfc2VhbSAldSgldSkgaW4gWyV1LCAldV0sIGluX3NlYW0gJXUoJXUpIGluIFsldSwgJXVdIGRpZmYgJXUuJTAzdVxuIiwKIAkJX19mdW5jX18sIG91dF9zZWFtLCBvdXRfYWxpZ24sIG91dF9zdGFydCwgb3V0X2VuZCwKLQkJKl9pbl9zZWFtLCBpbl9hbGlnbiwgbWluX2RpZmYgLyA4MTkyLAorCQlpbl9zZWFtLCBpbl9hbGlnbiwgaW5fc3RhcnQsIGluX2VuZCwgbWluX2RpZmYgLyA4MTkyLAogCQlESVZfUk9VTkRfQ0xPU0VTVChtaW5fZGlmZiAlIDgxOTIgKiAxMDAwLCA4MTkyKSk7CiB9CiAKQEAgLTcxMiw4ICs3NTMsNiBAQCBzdGF0aWMgdm9pZCBmaW5kX3NlYW1zKHN0cnVjdCBpcHVfaW1hZ2VfY29udmVydF9jdHggKmN0eCwKIAkJCQkJICAhKGN0eC0+cm90X21vZGUgJiBJUFVfUk9UX0JJVF9IRkxJUCk7CiAJCWJvb2wgYWxsb3dfb3V0X292ZXJzaG9vdCA9IChjb2wgPCBpbi0+bnVtX2NvbHMgLSAxKSAmJgogCQkJCQkgICAhKGN0eC0+cm90X21vZGUgJiBJUFVfUk9UX0JJVF9IRkxJUCk7Ci0JCXVuc2lnbmVkIGludCBvdXRfc3RhcnQ7Ci0JCXVuc2lnbmVkIGludCBvdXRfZW5kOwogCQl1bnNpZ25lZCBpbnQgaW5fbGVmdDsKIAkJdW5zaWduZWQgaW50IG91dF9sZWZ0OwogCkBAIC03MjIsMTIgKzc2MSw3IEBAIHN0YXRpYyB2b2lkIGZpbmRfc2VhbXMoc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2N0eCAqY3R4LAogCQkgKiBob3Jpem9udGFsbHkuCiAJCSAqLwogCi0JCS8qIFN0YXJ0IHdpdGhpbiAxMDI0IHBpeGVscyBvZiB0aGUgcmlnaHQgZWRnZSAqLwotCQlvdXRfc3RhcnQgPSBtYXhfdChpbnQsIDAsIG91dF9yaWdodCAtIDEwMjQpOwotCQkvKiBFbmQgYmVmb3JlIGhhdmluZyB0byBhZGQgbW9yZSBjb2x1bW5zIHRvIHRoZSBsZWZ0ICovCi0JCW91dF9lbmQgPSBtaW5fdCh1bnNpZ25lZCBpbnQsIG91dF9yaWdodCwgY29sICogMTAyNCk7Ci0KLQkJZmluZF9iZXN0X3NlYW0oY3R4LCBvdXRfc3RhcnQsIG91dF9lbmQsCisJCWZpbmRfYmVzdF9zZWFtKGN0eCwgY29sLAogCQkJICAgICAgIGluX3JpZ2h0LCBvdXRfcmlnaHQsCiAJCQkgICAgICAgaW5fbGVmdF9hbGlnbiwgb3V0X2xlZnRfYWxpZ24sCiAJCQkgICAgICAgYWxsb3dfaW5fb3ZlcnNob290ID8gMSA6IDggLyogYnVyc3QgbGVuZ3RoICovLApAQCAtNzYyLDE3ICs3OTYsMTAgQEAgc3RhdGljIHZvaWQgZmluZF9zZWFtcyhzdHJ1Y3QgaXB1X2ltYWdlX2NvbnZlcnRfY3R4ICpjdHgsCiAKIAlmb3IgKHJvdyA9IGluLT5udW1fcm93cyAtIDE7IHJvdyA+IDA7IHJvdy0tKSB7CiAJCWJvb2wgYWxsb3dfb3ZlcnNob290ID0gcm93IDwgaW4tPm51bV9yb3dzIC0gMTsKLQkJdW5zaWduZWQgaW50IG91dF9zdGFydDsKLQkJdW5zaWduZWQgaW50IG91dF9lbmQ7CiAJCXVuc2lnbmVkIGludCBpbl90b3A7CiAJCXVuc2lnbmVkIGludCBvdXRfdG9wOwogCi0JCS8qIFN0YXJ0IHdpdGhpbiAxMDI0IGxpbmVzIG9mIHRoZSBib3R0b20gZWRnZSAqLwotCQlvdXRfc3RhcnQgPSBtYXhfdChpbnQsIDAsIG91dF9ib3R0b20gLSAxMDI0KTsKLQkJLyogRW5kIGJlZm9yZSBoYXZpbmcgdG8gYWRkIG1vcmUgcm93cyBhYm92ZSAqLwotCQlvdXRfZW5kID0gbWluX3QodW5zaWduZWQgaW50LCBvdXRfYm90dG9tLCByb3cgKiAxMDI0KTsKLQotCQlmaW5kX2Jlc3Rfc2VhbShjdHgsIG91dF9zdGFydCwgb3V0X2VuZCwKKwkJZmluZF9iZXN0X3NlYW0oY3R4LCByb3csCiAJCQkgICAgICAgaW5fYm90dG9tLCBvdXRfYm90dG9tLAogCQkJICAgICAgIGluX3RvcF9hbGlnbiwgb3V0X3RvcF9hbGlnbiwKIAkJCSAgICAgICAxLCBhbGxvd19vdmVyc2hvb3QgPyAxIDogb3V0X2hlaWdodF9hbGlnbiwKQEAgLTgwOSwxMyArODM2LDIxIEBAIHN0YXRpYyB2b2lkIGZpbmRfc2VhbXMoc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2N0eCAqY3R4LAogCQlpbl9ib3R0b20sIGZsaXBwZWRfb3V0X3RvcCwgb3V0X2JvdHRvbSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNhbGNfdGlsZV9kaW1lbnNpb25zKHN0cnVjdCBpcHVfaW1hZ2VfY29udmVydF9jdHggKmN0eCwKLQkJCQkgc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2ltYWdlICppbWFnZSkKK3N0YXRpYyBpbnQgY2FsY190aWxlX2RpbWVuc2lvbnMoc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2N0eCAqY3R4LAorCQkJCXN0cnVjdCBpcHVfaW1hZ2VfY29udmVydF9pbWFnZSAqaW1hZ2UpCiB7CiAJc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X2NoYW4gKmNoYW4gPSBjdHgtPmNoYW47CiAJc3RydWN0IGlwdV9pbWFnZV9jb252ZXJ0X3ByaXYgKnByaXYgPSBjaGFuLT5wcml2OworCXVuc2lnbmVkIGludCBtYXhfd2lkdGggPSAxMDI0OworCXVuc2lnbmVkIGludCBtYXhfaGVpZ2h0ID0gMTAyNDsKIAl1bnNpZ25lZCBpbnQgaTsKIAorCWlmIChpbWFnZS0+dHlwZSA9PSBJTUFHRV9DT05WRVJUX0lOKSB7CisJCS8qIFVwIHRvIDQwOTZ4NDA5NiBpbnB1dCB0aWxlIHNpemUgKi8KKwkJbWF4X3dpZHRoIDw8PSBjdHgtPmRvd25zaXplX2NvZWZmX2g7CisJCW1heF9oZWlnaHQgPDw9IGN0eC0+ZG93bnNpemVfY29lZmZfdjsKKwl9CisKIAlmb3IgKGkgPSAwOyBpIDwgY3R4LT5udW1fdGlsZXM7IGkrKykgewogCQlzdHJ1Y3QgaXB1X2ltYWdlX3RpbGUgKnRpbGU7CiAJCWNvbnN0IHVuc2lnbmVkIGludCByb3cgPSBpIC8gaW1hZ2UtPm51bV9jb2xzOwpAQCAtODQ1LDcgKzg4MCwxNyBAQCBzdGF0aWMgdm9pZCBjYWxjX3RpbGVfZGltZW5zaW9ucyhzdHJ1Y3QgaXB1X2ltYWdlX2NvbnZlcnRfY3R4ICpjdHgsCiAJCQlpbWFnZS0+dHlwZSA9PSBJTUFHRV9DT05WRVJUX0lOID8gIklucHV0IiA6ICJPdXRwdXQiLAogCQkJcm93LCBjb2wsCiAJCQl0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT5sZWZ0LCB0aWxlLT50b3ApOworCisJCWlmICghdGlsZS0+d2lkdGggfHwgdGlsZS0+d2lkdGggPiBtYXhfd2lkdGggfHwKKwkJICAgICF0aWxlLT5oZWlnaHQgfHwgdGlsZS0+aGVpZ2h0ID4gbWF4X2hlaWdodCkgeworCQkJZGV2X2Vycihwcml2LT5pcHUtPmRldiwgImludmFsaWQgJXMgdGlsZSBzaXplOiAldXgldVxuIiwKKwkJCQlpbWFnZS0+dHlwZSA9PSBJTUFHRV9DT05WRVJUX0lOID8gImlucHV0IiA6CisJCQkJIm91dHB1dCIsIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KIAl9CisKKwlyZXR1cm4gMDsKIH0KIAogLyoKQEAgLTEwNzYsNiArMTEyMSw3IEBAIHN0YXRpYyB2b2lkIGNhbGNfdGlsZV9yZXNpemVfY29lZmZpY2llbnRzKHN0cnVjdCBpcHVfaW1hZ2VfY29udmVydF9jdHggKmN0eCkKIAkJCSAgICAgICAhKGN0eC0+cm90X21vZGUgJiBJUFVfUk9UX0JJVF9IRkxJUCk7CiAJCXUzMiByZXNpemVkX3dpZHRoOwogCQl1MzIgcmVzaXplX2NvZWZmX2g7CisJCXUzMiBpbl93aWR0aDsKIAogCQl0aWxlX2lkeCA9IGNvbDsKIAkJaW5fdGlsZSA9ICZjdHgtPmluLnRpbGVbdGlsZV9pZHhdOwpAQCAtMTA5MywzMyArMTEzOSwzNSBAQCBzdGF0aWMgdm9pZCBjYWxjX3RpbGVfcmVzaXplX2NvZWZmaWNpZW50cyhzdHJ1Y3QgaXB1X2ltYWdlX2NvbnZlcnRfY3R4ICpjdHgpCiAJCWRldl9kYmcocHJpdi0+aXB1LT5kZXYsICIlczogY29sdW1uICV1IGhzY2FsZTogKjgxOTIvJXVcbiIsCiAJCQlfX2Z1bmNfXywgY29sLCByZXNpemVfY29lZmZfaCk7CiAKKwkJLyoKKwkJICogV2l0aCB0aGUgaG9yaXpvbnRhbCBzY2FsaW5nIGZhY3RvciBrbm93biwgcm91bmQgdXAgcmVzaXplZAorCQkgKiB3aWR0aCAob3V0cHV0IHdpZHRoIG9yIGhlaWdodCkgdG8gYnVyc3Qgc2l6ZS4KKwkJICovCisJCXJlc2l6ZWRfd2lkdGggPSByb3VuZF91cChyZXNpemVkX3dpZHRoLCA4KTsKKworCQkvKgorCQkgKiBDYWxjdWxhdGUgaW5wdXQgd2lkdGggZnJvbSB0aGUgbGFzdCBhY2Nlc3NlZCBpbnB1dCBwaXhlbAorCQkgKiBnaXZlbiByZXNpemVkIHdpZHRoIGFuZCBzY2FsaW5nIGNvZWZmaWNpZW50cy4gUm91bmQgdXAgdG8KKwkJICogYnVyc3Qgc2l6ZS4KKwkJICovCisJCWxhc3Rfb3V0cHV0ID0gcmVzaXplZF93aWR0aCAtIDE7CisJCWlmIChjbG9zZXN0ICYmICgobGFzdF9vdXRwdXQgKiByZXNpemVfY29lZmZfaCkgJSA4MTkyKSkKKwkJCWxhc3Rfb3V0cHV0Kys7CisJCWluX3dpZHRoID0gcm91bmRfdXAoCisJCQkoRElWX1JPVU5EX1VQKGxhc3Rfb3V0cHV0ICogcmVzaXplX2NvZWZmX2gsIDgxOTIpICsgMSkKKwkJCTw8IGN0eC0+ZG93bnNpemVfY29lZmZfaCwgOCk7CiAKIAkJZm9yIChyb3cgPSAwOyByb3cgPCBjdHgtPmluLm51bV9yb3dzOyByb3crKykgewogCQkJdGlsZV9pZHggPSByb3cgKiBjdHgtPmluLm51bV9jb2xzICsgY29sOwogCQkJaW5fdGlsZSA9ICZjdHgtPmluLnRpbGVbdGlsZV9pZHhdOwogCQkJb3V0X3RpbGUgPSAmY3R4LT5vdXQudGlsZVtjdHgtPm91dF90aWxlX21hcFt0aWxlX2lkeF1dOwogCi0JCQkvKgotCQkJICogV2l0aCB0aGUgaG9yaXpvbnRhbCBzY2FsaW5nIGZhY3RvciBrbm93biwgcm91bmQgdXAKLQkJCSAqIHJlc2l6ZWQgd2lkdGggKG91dHB1dCB3aWR0aCBvciBoZWlnaHQpIHRvIGJ1cnN0IHNpemUuCi0JCQkgKi8KIAkJCWlmIChpcHVfcm90X21vZGVfaXNfaXJ0KGN0eC0+cm90X21vZGUpKQotCQkJCW91dF90aWxlLT5oZWlnaHQgPSByb3VuZF91cChyZXNpemVkX3dpZHRoLCA4KTsKKwkJCQlvdXRfdGlsZS0+aGVpZ2h0ID0gcmVzaXplZF93aWR0aDsKIAkJCWVsc2UKLQkJCQlvdXRfdGlsZS0+d2lkdGggPSByb3VuZF91cChyZXNpemVkX3dpZHRoLCA4KTsKKwkJCQlvdXRfdGlsZS0+d2lkdGggPSByZXNpemVkX3dpZHRoOwogCi0JCQkvKgotCQkJICogQ2FsY3VsYXRlIGlucHV0IHdpZHRoIGZyb20gdGhlIGxhc3QgYWNjZXNzZWQgaW5wdXQKLQkJCSAqIHBpeGVsIGdpdmVuIHJlc2l6ZWQgd2lkdGggYW5kIHNjYWxpbmcgY29lZmZpY2llbnRzLgotCQkJICogUm91bmQgdXAgdG8gYnVyc3Qgc2l6ZS4KLQkJCSAqLwotCQkJbGFzdF9vdXRwdXQgPSByb3VuZF91cChyZXNpemVkX3dpZHRoLCA4KSAtIDE7Ci0JCQlpZiAoY2xvc2VzdCkKLQkJCQlsYXN0X291dHB1dCsrOwotCQkJaW5fdGlsZS0+d2lkdGggPSByb3VuZF91cCgKLQkJCQkoRElWX1JPVU5EX1VQKGxhc3Rfb3V0cHV0ICogcmVzaXplX2NvZWZmX2gsCi0JCQkJCSAgICAgIDgxOTIpICsgMSkKLQkJCQk8PCBjdHgtPmRvd25zaXplX2NvZWZmX2gsIDgpOworCQkJaW5fdGlsZS0+d2lkdGggPSBpbl93aWR0aDsKIAkJfQogCiAJCWN0eC0+cmVzaXplX2NvZWZmc19oW2NvbF0gPSByZXNpemVfY29lZmZfaDsKQEAgLTExMzAsNiArMTE3OCw3IEBAIHN0YXRpYyB2b2lkIGNhbGNfdGlsZV9yZXNpemVfY29lZmZpY2llbnRzKHN0cnVjdCBpcHVfaW1hZ2VfY29udmVydF9jdHggKmN0eCkKIAkJCSAgICAgICAhKGN0eC0+cm90X21vZGUgJiBJUFVfUk9UX0JJVF9WRkxJUCk7CiAJCXUzMiByZXNpemVkX2hlaWdodDsKIAkJdTMyIHJlc2l6ZV9jb2VmZl92OworCQl1MzIgaW5faGVpZ2h0OwogCiAJCXRpbGVfaWR4ID0gcm93ICogY3R4LT5pbi5udW1fY29sczsKIAkJaW5fdGlsZSA9ICZjdHgtPmluLnRpbGVbdGlsZV9pZHhdOwpAQCAtMTE0NywzMyArMTE5NiwzNSBAQCBzdGF0aWMgdm9pZCBjYWxjX3RpbGVfcmVzaXplX2NvZWZmaWNpZW50cyhzdHJ1Y3QgaXB1X2ltYWdlX2NvbnZlcnRfY3R4ICpjdHgpCiAJCWRldl9kYmcocHJpdi0+aXB1LT5kZXYsICIlczogcm93ICV1IHZzY2FsZTogKjgxOTIvJXVcbiIsCiAJCQlfX2Z1bmNfXywgcm93LCByZXNpemVfY29lZmZfdik7CiAKKwkJLyoKKwkJICogV2l0aCB0aGUgdmVydGljYWwgc2NhbGluZyBmYWN0b3Iga25vd24sIHJvdW5kIHVwIHJlc2l6ZWQKKwkJICogaGVpZ2h0IChvdXRwdXQgd2lkdGggb3IgaGVpZ2h0KSB0byBJRE1BQyBsaW1pdGF0aW9ucy4KKwkJICovCisJCXJlc2l6ZWRfaGVpZ2h0ID0gcm91bmRfdXAocmVzaXplZF9oZWlnaHQsIDIpOworCisJCS8qCisJCSAqIENhbGN1bGF0ZSBpbnB1dCB3aWR0aCBmcm9tIHRoZSBsYXN0IGFjY2Vzc2VkIGlucHV0IHBpeGVsCisJCSAqIGdpdmVuIHJlc2l6ZWQgaGVpZ2h0IGFuZCBzY2FsaW5nIGNvZWZmaWNpZW50cy4gQWxpZ24gdG8KKwkJICogSURNQUMgcmVzdHJpY3Rpb25zLgorCQkgKi8KKwkJbGFzdF9vdXRwdXQgPSByZXNpemVkX2hlaWdodCAtIDE7CisJCWlmIChjbG9zZXN0ICYmICgobGFzdF9vdXRwdXQgKiByZXNpemVfY29lZmZfdikgJSA4MTkyKSkKKwkJCWxhc3Rfb3V0cHV0Kys7CisJCWluX2hlaWdodCA9IHJvdW5kX3VwKAorCQkJKERJVl9ST1VORF9VUChsYXN0X291dHB1dCAqIHJlc2l6ZV9jb2VmZl92LCA4MTkyKSArIDEpCisJCQk8PCBjdHgtPmRvd25zaXplX2NvZWZmX3YsIDIpOworCiAJCWZvciAoY29sID0gMDsgY29sIDwgY3R4LT5pbi5udW1fY29sczsgY29sKyspIHsKIAkJCXRpbGVfaWR4ID0gcm93ICogY3R4LT5pbi5udW1fY29scyArIGNvbDsKIAkJCWluX3RpbGUgPSAmY3R4LT5pbi50aWxlW3RpbGVfaWR4XTsKIAkJCW91dF90aWxlID0gJmN0eC0+b3V0LnRpbGVbY3R4LT5vdXRfdGlsZV9tYXBbdGlsZV9pZHhdXTsKIAotCQkJLyoKLQkJCSAqIFdpdGggdGhlIHZlcnRpY2FsIHNjYWxpbmcgZmFjdG9yIGtub3duLCByb3VuZCB1cAotCQkJICogcmVzaXplZCBoZWlnaHQgKG91dHB1dCB3aWR0aCBvciBoZWlnaHQpIHRvIElETUFDCi0JCQkgKiBsaW1pdGF0aW9ucy4KLQkJCSAqLwogCQkJaWYgKGlwdV9yb3RfbW9kZV9pc19pcnQoY3R4LT5yb3RfbW9kZSkpCi0JCQkJb3V0X3RpbGUtPndpZHRoID0gcm91bmRfdXAocmVzaXplZF9oZWlnaHQsIDIpOworCQkJCW91dF90aWxlLT53aWR0aCA9IHJlc2l6ZWRfaGVpZ2h0OwogCQkJZWxzZQotCQkJCW91dF90aWxlLT5oZWlnaHQgPSByb3VuZF91cChyZXNpemVkX2hlaWdodCwgMik7CisJCQkJb3V0X3RpbGUtPmhlaWdodCA9IHJlc2l6ZWRfaGVpZ2h0OwogCi0JCQkvKgotCQkJICogQ2FsY3VsYXRlIGlucHV0IHdpZHRoIGZyb20gdGhlIGxhc3QgYWNjZXNzZWQgaW5wdXQKLQkJCSAqIHBpeGVsIGdpdmVuIHJlc2l6ZWQgaGVpZ2h0IGFuZCBzY2FsaW5nIGNvZWZmaWNpZW50cy4KLQkJCSAqIEFsaWduIHRvIElETUFDIHJlc3RyaWN0aW9ucy4KLQkJCSAqLwotCQkJbGFzdF9vdXRwdXQgPSByb3VuZF91cChyZXNpemVkX2hlaWdodCwgMikgLSAxOwotCQkJaWYgKGNsb3Nlc3QpCi0JCQkJbGFzdF9vdXRwdXQrKzsKLQkJCWluX3RpbGUtPmhlaWdodCA9IHJvdW5kX3VwKAotCQkJCShESVZfUk9VTkRfVVAobGFzdF9vdXRwdXQgKiByZXNpemVfY29lZmZfdiwKLQkJCQkJICAgICAgODE5MikgKyAxKQotCQkJCTw8IGN0eC0+ZG93bnNpemVfY29lZmZfdiwgMik7CisJCQlpbl90aWxlLT5oZWlnaHQgPSBpbl9oZWlnaHQ7CiAJCX0KIAogCQljdHgtPnJlc2l6ZV9jb2VmZnNfdltyb3ddID0gcmVzaXplX2NvZWZmX3Y7CkBAIC0yMDI0LDIyICsyMDc1LDI2IEBAIGlwdV9pbWFnZV9jb252ZXJ0X3ByZXBhcmUoc3RydWN0IGlwdV9zb2MgKmlwdSwgZW51bSBpcHVfaWNfdGFzayBpY190YXNrLAogCWN0eC0+Y2hhbiA9IGNoYW47CiAJaW5pdF9jb21wbGV0aW9uKCZjdHgtPmFib3J0ZWQpOwogCisJY3R4LT5yb3RfbW9kZSA9IHJvdF9tb2RlOworCisJLyogU2V0cyBjdHgtPmluLm51bV9yb3dzL2NvbHMgYXMgd2VsbCAqLworCXJldCA9IGNhbGNfaW1hZ2VfcmVzaXplX2NvZWZmaWNpZW50cyhjdHgsIGluLCBvdXQpOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2ZyZWU7CisKIAlzX2ltYWdlID0gJmN0eC0+aW47CiAJZF9pbWFnZSA9ICZjdHgtPm91dDsKIAogCS8qIHNldCB0aWxpbmcgYW5kIHJvdGF0aW9uICovCi0JZF9pbWFnZS0+bnVtX3Jvd3MgPSBudW1fc3RyaXBlcyhvdXQtPnBpeC5oZWlnaHQpOwotCWRfaW1hZ2UtPm51bV9jb2xzID0gbnVtX3N0cmlwZXMob3V0LT5waXgud2lkdGgpOwogCWlmIChpcHVfcm90X21vZGVfaXNfaXJ0KHJvdF9tb2RlKSkgewotCQlzX2ltYWdlLT5udW1fcm93cyA9IGRfaW1hZ2UtPm51bV9jb2xzOwotCQlzX2ltYWdlLT5udW1fY29scyA9IGRfaW1hZ2UtPm51bV9yb3dzOworCQlkX2ltYWdlLT5udW1fcm93cyA9IHNfaW1hZ2UtPm51bV9jb2xzOworCQlkX2ltYWdlLT5udW1fY29scyA9IHNfaW1hZ2UtPm51bV9yb3dzOwogCX0gZWxzZSB7Ci0JCXNfaW1hZ2UtPm51bV9yb3dzID0gZF9pbWFnZS0+bnVtX3Jvd3M7Ci0JCXNfaW1hZ2UtPm51bV9jb2xzID0gZF9pbWFnZS0+bnVtX2NvbHM7CisJCWRfaW1hZ2UtPm51bV9yb3dzID0gc19pbWFnZS0+bnVtX3Jvd3M7CisJCWRfaW1hZ2UtPm51bV9jb2xzID0gc19pbWFnZS0+bnVtX2NvbHM7CiAJfQogCiAJY3R4LT5udW1fdGlsZXMgPSBkX2ltYWdlLT5udW1fY29scyAqIGRfaW1hZ2UtPm51bV9yb3dzOwotCWN0eC0+cm90X21vZGUgPSByb3RfbW9kZTsKIAogCXJldCA9IGZpbGxfaW1hZ2UoY3R4LCBzX2ltYWdlLCBpbiwgSU1BR0VfQ09OVkVSVF9JTik7CiAJaWYgKHJldCkKQEAgLTIwNDgsMTUgKzIxMDMsMTQgQEAgaXB1X2ltYWdlX2NvbnZlcnRfcHJlcGFyZShzdHJ1Y3QgaXB1X3NvYyAqaXB1LCBlbnVtIGlwdV9pY190YXNrIGljX3Rhc2ssCiAJaWYgKHJldCkKIAkJZ290byBvdXRfZnJlZTsKIAotCXJldCA9IGNhbGNfaW1hZ2VfcmVzaXplX2NvZWZmaWNpZW50cyhjdHgsIGluLCBvdXQpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0X2ZyZWU7Ci0KIAljYWxjX291dF90aWxlX21hcChjdHgpOwogCiAJZmluZF9zZWFtcyhjdHgsIHNfaW1hZ2UsIGRfaW1hZ2UpOwogCi0JY2FsY190aWxlX2RpbWVuc2lvbnMoY3R4LCBzX2ltYWdlKTsKKwlyZXQgPSBjYWxjX3RpbGVfZGltZW5zaW9ucyhjdHgsIHNfaW1hZ2UpOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2ZyZWU7CisKIAlyZXQgPSBjYWxjX3RpbGVfb2Zmc2V0cyhjdHgsIHNfaW1hZ2UpOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0X2ZyZWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9LY29uZmlnIGIvZHJpdmVycy9oaWQvS2NvbmZpZwppbmRleCAzODcyZTAzLi4xZWNiNTEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9LY29uZmlnCisrKyBiL2RyaXZlcnMvaGlkL0tjb25maWcKQEAgLTI3Myw2ICsyNzMsMTUgQEAKIAlhbmQgZ3Bpb2NoaXAgdG8gZXhwb3NlIHRoZXNlIGZ1bmN0aW9ucyBvZiB0aGUgQ1AyMTEyLiBUaGUKIAljdXN0b21pemFibGUgVVNCIGRlc2NyaXB0b3IgZmllbGRzIGFyZSBleHBvc2VkIGFzIHN5c2ZzIGF0dHJpYnV0ZXMuCiAKK2NvbmZpZyBISURfQ1JFQVRJVkVfU0IwNTQwCisJdHJpc3RhdGUgIkNyZWF0aXZlIFNCMDU0MCBpbmZyYXJlZCByZWNlaXZlciIKKwlkZXBlbmRzIG9uIFVTQl9ISUQKKwloZWxwCisJU3VwcG9ydCBmb3IgQ3JlYXRpdmUgaW5mcmFyZWQgU0IwNTQwLWNvbXBhdGlibGUgcmVtb3RlIGNvbnRyb2xzLCBzdWNoCisJYXMgdGhlIFJNLTE1MDAgYW5kIFJNLTE4MDAgcmVtb3Rlcy4KKworCVNheSBZIGhlcmUgaWYgeW91IHdhbnQgc3VwcG9ydCBmb3IgQ3JlYXRpdmUgU0IwNTQwIGluZnJhcmVkIHJlY2VpdmVyLgorCiBjb25maWcgSElEX0NZUFJFU1MKIAl0cmlzdGF0ZSAiQ3lwcmVzcyBtb3VzZSBhbmQgYmFyY29kZSByZWFkZXJzIgogCWRlcGVuZHMgb24gSElECkBAIC0zNzYsNyArMzg1LDcgQEAKIAogY29uZmlnIEhJRF9HT09HTEVfSEFNTUVSCiAJdHJpc3RhdGUgIkdvb2dsZSBIYW1tZXIgS2V5Ym9hcmQiCi0JZGVwZW5kcyBvbiBVU0JfSElEICYmIExFRFNfQ0xBU1MgJiYgTUZEX0NST1NfRUMKKwlkZXBlbmRzIG9uIFVTQl9ISUQgJiYgTEVEU19DTEFTUyAmJiBDUk9TX0VDCiAJLS0taGVscC0tLQogCVNheSBZIGhlcmUgaWYgeW91IGhhdmUgYSBHb29nbGUgSGFtbWVyIGRldmljZS4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvTWFrZWZpbGUgYi9kcml2ZXJzL2hpZC9NYWtlZmlsZQppbmRleCBjYzVkODI3Li4wYzAzMzA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2hpZC9NYWtlZmlsZQpAQCAtMjcsNiArMjcsNyBAQAogb2JqLSQoQ09ORklHX0hJRF9BQ1JVWCkJCSs9IGhpZC1heGZmLm8KIG9iai0kKENPTkZJR19ISURfQVBQTEUpCQkrPSBoaWQtYXBwbGUubwogb2JqLSQoQ09ORklHX0hJRF9BUFBMRUlSKQkrPSBoaWQtYXBwbGVpci5vCitvYmotJChDT05GSUdfSElEX0NSRUFUSVZFX1NCMDU0MCkJKz0gaGlkLWNyZWF0aXZlLXNiMDU0MC5vCiBvYmotJChDT05GSUdfSElEX0FTVVMpCQkrPSBoaWQtYXN1cy5vCiBvYmotJChDT05GSUdfSElEX0FVUkVBTCkJKz0gaGlkLWF1cmVhbC5vCiBvYmotJChDT05GSUdfSElEX0JFTEtJTikJKz0gaGlkLWJlbGtpbi5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtYXBwbGUuYyBiL2RyaXZlcnMvaGlkL2hpZC1hcHBsZS5jCmluZGV4IDgxZGY2MmYuLjZhYzhiZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL2hpZC1hcHBsZS5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1hcHBsZS5jCkBAIC01NCw3ICs1NCw2IEBAIE1PRFVMRV9QQVJNX0RFU0Moc3dhcF9vcHRfY21kLCAiU3dhcCB0aGUgT3B0aW9uIChcIkFsdFwiKSBhbmQgQ29tbWFuZCAoXCJGbGFnXCIpCiBzdHJ1Y3QgYXBwbGVfc2MgewogCXVuc2lnbmVkIGxvbmcgcXVpcmtzOwogCXVuc2lnbmVkIGludCBmbl9vbjsKLQlERUNMQVJFX0JJVE1BUChwcmVzc2VkX2ZuLCBLRVlfQ05UKTsKIAlERUNMQVJFX0JJVE1BUChwcmVzc2VkX251bWxvY2ssIEtFWV9DTlQpOwogfTsKIApAQCAtMTgxLDYgKzE4MCw4IEBAIHN0YXRpYyBpbnQgaGlkaW5wdXRfYXBwbGVfZXZlbnQoc3RydWN0IGhpZF9kZXZpY2UgKmhpZCwgc3RydWN0IGlucHV0X2RldiAqaW5wdXQsCiB7CiAJc3RydWN0IGFwcGxlX3NjICphc2MgPSBoaWRfZ2V0X2RydmRhdGEoaGlkKTsKIAljb25zdCBzdHJ1Y3QgYXBwbGVfa2V5X3RyYW5zbGF0aW9uICp0cmFucywgKnRhYmxlOworCWJvb2wgZG9fdHJhbnNsYXRlOworCXUxNiBjb2RlID0gMDsKIAogCWlmICh1c2FnZS0+Y29kZSA9PSBLRVlfRk4pIHsKIAkJYXNjLT5mbl9vbiA9ICEhdmFsdWU7CkBAIC0xODksOCArMTkwLDYgQEAgc3RhdGljIGludCBoaWRpbnB1dF9hcHBsZV9ldmVudChzdHJ1Y3QgaGlkX2RldmljZSAqaGlkLCBzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dCwKIAl9CiAKIAlpZiAoZm5tb2RlKSB7Ci0JCWludCBkb190cmFuc2xhdGU7Ci0KIAkJaWYgKGhpZC0+cHJvZHVjdCA+PSBVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc0X0FOU0kgJiYKIAkJCQloaWQtPnByb2R1Y3QgPD0gVVNCX0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HNEFfSklTKQogCQkJdGFibGUgPSBtYWNib29rYWlyX2ZuX2tleXM7CkBAIC0yMDIsMjUgKzIwMSwzMyBAQCBzdGF0aWMgaW50IGhpZGlucHV0X2FwcGxlX2V2ZW50KHN0cnVjdCBoaWRfZGV2aWNlICpoaWQsIHN0cnVjdCBpbnB1dF9kZXYgKmlucHV0LAogCQl0cmFucyA9IGFwcGxlX2ZpbmRfdHJhbnNsYXRpb24gKHRhYmxlLCB1c2FnZS0+Y29kZSk7CiAKIAkJaWYgKHRyYW5zKSB7Ci0JCQlpZiAodGVzdF9iaXQodXNhZ2UtPmNvZGUsIGFzYy0+cHJlc3NlZF9mbikpCi0JCQkJZG9fdHJhbnNsYXRlID0gMTsKLQkJCWVsc2UgaWYgKHRyYW5zLT5mbGFncyAmIEFQUExFX0ZMQUdfRktFWSkKLQkJCQlkb190cmFuc2xhdGUgPSAoZm5tb2RlID09IDIgJiYgYXNjLT5mbl9vbikgfHwKLQkJCQkJKGZubW9kZSA9PSAxICYmICFhc2MtPmZuX29uKTsKLQkJCWVsc2UKLQkJCQlkb190cmFuc2xhdGUgPSBhc2MtPmZuX29uOworCQkJaWYgKHRlc3RfYml0KHRyYW5zLT5mcm9tLCBpbnB1dC0+a2V5KSkKKwkJCQljb2RlID0gdHJhbnMtPmZyb207CisJCQllbHNlIGlmICh0ZXN0X2JpdCh0cmFucy0+dG8sIGlucHV0LT5rZXkpKQorCQkJCWNvZGUgPSB0cmFucy0+dG87CiAKLQkJCWlmIChkb190cmFuc2xhdGUpIHsKLQkJCQlpZiAodmFsdWUpCi0JCQkJCXNldF9iaXQodXNhZ2UtPmNvZGUsIGFzYy0+cHJlc3NlZF9mbik7Ci0JCQkJZWxzZQotCQkJCQljbGVhcl9iaXQodXNhZ2UtPmNvZGUsIGFzYy0+cHJlc3NlZF9mbik7CisJCQlpZiAoIWNvZGUpIHsKKwkJCQlpZiAodHJhbnMtPmZsYWdzICYgQVBQTEVfRkxBR19GS0VZKSB7CisJCQkJCXN3aXRjaCAoZm5tb2RlKSB7CisJCQkJCWNhc2UgMToKKwkJCQkJCWRvX3RyYW5zbGF0ZSA9ICFhc2MtPmZuX29uOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgMjoKKwkJCQkJCWRvX3RyYW5zbGF0ZSA9IGFzYy0+Zm5fb247CisJCQkJCQlicmVhazsKKwkJCQkJZGVmYXVsdDoKKwkJCQkJCS8qIHNob3VsZCBuZXZlciBoYXBwZW4gKi8KKwkJCQkJCWRvX3RyYW5zbGF0ZSA9IGZhbHNlOworCQkJCQl9CisJCQkJfSBlbHNlIHsKKwkJCQkJZG9fdHJhbnNsYXRlID0gYXNjLT5mbl9vbjsKKwkJCQl9CiAKLQkJCQlpbnB1dF9ldmVudChpbnB1dCwgdXNhZ2UtPnR5cGUsIHRyYW5zLT50bywKLQkJCQkJCXZhbHVlKTsKLQotCQkJCXJldHVybiAxOworCQkJCWNvZGUgPSBkb190cmFuc2xhdGUgPyB0cmFucy0+dG8gOiB0cmFucy0+ZnJvbTsKIAkJCX0KKworCQkJaW5wdXRfZXZlbnQoaW5wdXQsIHVzYWdlLT50eXBlLCBjb2RlLCB2YWx1ZSk7CisJCQlyZXR1cm4gMTsKIAkJfQogCiAJCWlmIChhc2MtPnF1aXJrcyAmIEFQUExFX05VTUxPQ0tfRU1VTEFUSU9OICYmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtY29yZS5jIGIvZHJpdmVycy9oaWQvaGlkLWNvcmUuYwppbmRleCAyMTBiODFhLi4zZWFlZTJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtY29yZS5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1jb3JlLmMKQEAgLTEzMTEsOCArMTMxMSw4IEBAIHUzMiBoaWRfZmllbGRfZXh0cmFjdChjb25zdCBzdHJ1Y3QgaGlkX2RldmljZSAqaGlkLCB1OCAqcmVwb3J0LAogCQkJdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBuKQogewogCWlmIChuID4gMzIpIHsKLQkJaGlkX3dhcm4oaGlkLCAiaGlkX2ZpZWxkX2V4dHJhY3QoKSBjYWxsZWQgd2l0aCBuICglZCkgPiAzMiEgKCVzKVxuIiwKLQkJCSBuLCBjdXJyZW50LT5jb21tKTsKKwkJaGlkX3dhcm5fb25jZShoaWQsICIlcygpIGNhbGxlZCB3aXRoIG4gKCVkKSA+IDMyISAoJXMpXG4iLAorCQkJICAgICAgX19mdW5jX18sIG4sIGN1cnJlbnQtPmNvbW0pOwogCQluID0gMzI7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtY291Z2FyLmMgYi9kcml2ZXJzL2hpZC9oaWQtY291Z2FyLmMKaW5kZXggZTBiYjdiMy4uNGZmM2JjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLWNvdWdhci5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1jb3VnYXIuYwpAQCAtMjA3LDcgKzIwNyw3IEBAIHN0YXRpYyBpbnQgY291Z2FyX3Byb2JlKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LAogCWVycm9yID0gaGlkX3BhcnNlKGhkZXYpOwogCWlmIChlcnJvcikgewogCQloaWRfZXJyKGhkZXYsICJwYXJzZSBmYWlsZWRcbiIpOwotCQlnb3RvIGZhaWw7CisJCXJldHVybiBlcnJvcjsKIAl9CiAKIAlpZiAoaGRldi0+Y29sbGVjdGlvbi0+dXNhZ2UgPT0gQ09VR0FSX1ZFTkRPUl9VU0FHRSkgewpAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBpbnQgY291Z2FyX3Byb2JlKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LAogCWVycm9yID0gaGlkX2h3X3N0YXJ0KGhkZXYsIGNvbm5lY3RfbWFzayk7CiAJaWYgKGVycm9yKSB7CiAJCWhpZF9lcnIoaGRldiwgImh3IHN0YXJ0IGZhaWxlZFxuIik7Ci0JCWdvdG8gZmFpbDsKKwkJcmV0dXJuIGVycm9yOwogCX0KIAogCWVycm9yID0gY291Z2FyX2JpbmRfc2hhcmVkX2RhdGEoaGRldiwgY291Z2FyKTsKQEAgLTI0OSw4ICsyNDksNiBAQCBzdGF0aWMgaW50IGNvdWdhcl9wcm9iZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwKIAogZmFpbF9zdG9wX2FuZF9jbGVhbnVwOgogCWhpZF9od19zdG9wKGhkZXYpOwotZmFpbDoKLQloaWRfc2V0X2RydmRhdGEoaGRldiwgTlVMTCk7CiAJcmV0dXJuIGVycm9yOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtY3JlYXRpdmUtc2IwNTQwLmMgYi9kcml2ZXJzL2hpZC9oaWQtY3JlYXRpdmUtc2IwNTQwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRjOGU3YQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1jcmVhdGl2ZS1zYjA1NDAuYwpAQCAtMCwwICsxLDI2OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBISUQgZHJpdmVyIGZvciB0aGUgQ3JlYXRpdmUgU0IwNTQwIHJlY2VpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFJlZCBIYXQgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9oaWQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlICJoaWQtaWRzLmgiCisKK01PRFVMRV9BVVRIT1IoIkJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiSElEIENyZWF0aXZlIFNCMDU0MCByZWNlaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgY3JlYXRpdmVfc2IwNTQwX2tleV90YWJsZVtdID0geworCUtFWV9QT1dFUiwKKwlLRVlfUkVTRVJWRUQsCQkvKiB0ZXh0OiAyNGJpdCAqLworCUtFWV9SRVNFUlZFRCwJCS8qIDI0Yml0IHdoZWVsIHVwICovCisJS0VZX1JFU0VSVkVELAkJLyogMjRiaXQgd2hlZWwgZG93biAqLworCUtFWV9SRVNFUlZFRCwJCS8qIHRleHQ6IENNU1MgKi8KKwlLRVlfUkVTRVJWRUQsCQkvKiBDTVNTIHdoZWVsIFVwICovCisJS0VZX1JFU0VSVkVELAkJLyogQ01TUyB3aGVlbCBEb3duICovCisJS0VZX1JFU0VSVkVELAkJLyogdGV4dDogRUFYICovCisJS0VZX1JFU0VSVkVELAkJLyogRUFYIHdoZWVsIHVwICovCisJS0VZX1JFU0VSVkVELAkJLyogRUFYIHdoZWVsIGRvd24gKi8KKwlLRVlfUkVTRVJWRUQsCQkvKiB0ZXh0OiAzRCBNaWRpICovCisJS0VZX1JFU0VSVkVELAkJLyogM0QgTWlkaSB3aGVlbCB1cCAqLworCUtFWV9SRVNFUlZFRCwJCS8qIDNEIE1pZGkgd2hlZWwgZG93biAqLworCUtFWV9NVVRFLAorCUtFWV9WT0xVTUVVUCwKKwlLRVlfVk9MVU1FRE9XTiwKKwlLRVlfVVAsCisJS0VZX0xFRlQsCisJS0VZX1JJR0hULAorCUtFWV9SRVdJTkQsCisJS0VZX09LLAorCUtFWV9GQVNURk9SV0FSRCwKKwlLRVlfRE9XTiwKKwlLRVlfQUdBSU4sCQkvKiB0ZXh0OiBSZXR1cm4sIHN5bWJvbDogSnVtcCB0byAqLworCUtFWV9QTEFZLAkJLyogdGV4dDogU3RhcnQgKi8KKwlLRVlfRVNDLAkJLyogdGV4dDogQ2FuY2VsICovCisJS0VZX1JFQ09SRCwKKwlLRVlfT1BUSU9OLAorCUtFWV9NRU5VLAkJLyogdGV4dDogRGlzcGxheSAqLworCUtFWV9QUkVWSU9VUywKKwlLRVlfUExBWVBBVVNFLAorCUtFWV9ORVhULAorCUtFWV9TTE9XLAorCUtFWV9TVE9QLAorCUtFWV9OVU1FUklDXzEsCisJS0VZX05VTUVSSUNfMiwKKwlLRVlfTlVNRVJJQ18zLAorCUtFWV9OVU1FUklDXzQsCisJS0VZX05VTUVSSUNfNSwKKwlLRVlfTlVNRVJJQ182LAorCUtFWV9OVU1FUklDXzcsCisJS0VZX05VTUVSSUNfOCwKKwlLRVlfTlVNRVJJQ185LAorCUtFWV9OVU1FUklDXzAKK307CisKKy8qCisgKiBDb2RlcyBhbmQga2V5cyBmcm9tIGxpcmMncworICogcmVtb3Rlcy9jcmVhdGl2ZS9saXJjZC5jb25mLmFsc2FfdXNiCisgKiBvcmRlciBhbmQgc2l6ZSBtdXN0IG1hdGNoIGNyZWF0aXZlX3NiMDU0MF9rZXlfdGFibGVbXSBhYm92ZQorICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgY3JlYXRpdmVfc2IwNTQwX2NvZGVzW10gPSB7CisJMHg2MTlFLAorCTB4OTE2RSwKKwkweDkyNkQsCisJMHg5MzZDLAorCTB4NzE4RSwKKwkweDk0NkIsCisJMHg5NTZBLAorCTB4OEM3MywKKwkweDk2NjksCisJMHg5NzY4LAorCTB4OTg2NywKKwkweDk5NjYsCisJMHg5QTY1LAorCTB4NkU5MSwKKwkweDYyOUQsCisJMHg2MzlDLAorCTB4N0I4NCwKKwkweDZCOTQsCisJMHg3MjhELAorCTB4ODc3OCwKKwkweDgxN0UsCisJMHg3NThBLAorCTB4OEQ3MiwKKwkweDhFNzEsCisJMHg4ODc3LAorCTB4N0M4MywKKwkweDczOEMsCisJMHg4MjdELAorCTB4NzY4OSwKKwkweDdGODAsCisJMHg3OTg2LAorCTB4N0E4NSwKKwkweDdEODIsCisJMHg4NTdBLAorCTB4OEI3NCwKKwkweDhGNzAsCisJMHg5MDZGLAorCTB4OEE3NSwKKwkweDg0N0IsCisJMHg3ODg3LAorCTB4ODk3NiwKKwkweDgzN0MsCisJMHg3Nzg4LAorCTB4ODA3RgorfTsKKworc3RydWN0IGNyZWF0aXZlX3NiMDU0MCB7CisJc3RydWN0IGlucHV0X2RldiAqaW5wdXRfZGV2OworCXN0cnVjdCBoaWRfZGV2aWNlICpoaWQ7CisJdW5zaWduZWQgc2hvcnQga2V5bWFwW0FSUkFZX1NJWkUoY3JlYXRpdmVfc2IwNTQwX2tleV90YWJsZSldOworfTsKKworc3RhdGljIGlubGluZSB1NjQgcmV2ZXJzZSh1NjQgZGF0YSwgaW50IGJpdHMpCit7CisJaW50IGk7CisJdTY0IGM7CisKKwljID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgYml0czsgaSsrKSB7CisJCWMgfD0gKHU2NCkgKCgoZGF0YSAmICgoKHU2NCkgMSkgPDwgaSkpID8gMSA6IDApKQorCQkJPDwgKGJpdHMgLSAxIC0gaSk7CisJfQorCXJldHVybiAoYyk7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X2tleShzdHJ1Y3QgY3JlYXRpdmVfc2IwNTQwICpjcmVhdGl2ZV9zYjA1NDAsIHU2NCBrZXljb2RlKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3JlYXRpdmVfc2IwNTQwX2NvZGVzKTsgaSsrKSB7CisJCWlmIChjcmVhdGl2ZV9zYjA1NDBfY29kZXNbaV0gPT0ga2V5Y29kZSkKKwkJCXJldHVybiBjcmVhdGl2ZV9zYjA1NDAtPmtleW1hcFtpXTsKKwl9CisKKwlyZXR1cm4gMDsKKworfQorCitzdGF0aWMgaW50IGNyZWF0aXZlX3NiMDU0MF9yYXdfZXZlbnQoc3RydWN0IGhpZF9kZXZpY2UgKmhpZCwKKwlzdHJ1Y3QgaGlkX3JlcG9ydCAqcmVwb3J0LCB1OCAqZGF0YSwgaW50IGxlbikKK3sKKwlzdHJ1Y3QgY3JlYXRpdmVfc2IwNTQwICpjcmVhdGl2ZV9zYjA1NDAgPSBoaWRfZ2V0X2RydmRhdGEoaGlkKTsKKwl1NjQgY29kZSwgbWFpbl9jb2RlOworCWludCBrZXk7CisKKwlpZiAobGVuICE9IDYpCisJCXJldHVybiAwOworCisJLyogRnJvbSBkYWVtb25zL2h3X2hpZGRldi5jIHNiMDU0MF9yZWMoKSBpbiBsaXJjICovCisJY29kZSA9IHJldmVyc2UoZGF0YVs1XSwgOCk7CisJbWFpbl9jb2RlID0gKGNvZGUgPDwgOCkgKyAoKH5jb2RlKSAmIDB4ZmYpOworCisJLyoKKwkgKiBGbGlwIHRvIGdldCB2YWx1ZXMgaW4gdGhlIHNhbWUgZm9ybWF0IGFzCisJICogcmVtb3Rlcy9jcmVhdGl2ZS9saXJjZC5jb25mLmFsc2FfdXNiIGluIGxpcmMKKwkgKi8KKwltYWluX2NvZGUgPSAoKG1haW5fY29kZSAmIDB4ZmYpIDw8IDgpICsKKwkJKChtYWluX2NvZGUgJiAweGZmMDApID4+IDgpOworCisJa2V5ID0gZ2V0X2tleShjcmVhdGl2ZV9zYjA1NDAsIG1haW5fY29kZSk7CisJaWYgKGtleSA9PSAwIHx8IGtleSA9PSBLRVlfUkVTRVJWRUQpIHsKKwkJaGlkX2VycihoaWQsICJDb3VsZCBub3QgZ2V0IGEga2V5IGZvciBtYWluX2NvZGUgJWxsWFxuIiwKKwkJCW1haW5fY29kZSk7CisJCXJldHVybiAwOworCX0KKworCWlucHV0X3JlcG9ydF9rZXkoY3JlYXRpdmVfc2IwNTQwLT5pbnB1dF9kZXYsIGtleSwgMSk7CisJaW5wdXRfcmVwb3J0X2tleShjcmVhdGl2ZV9zYjA1NDAtPmlucHV0X2Rldiwga2V5LCAwKTsKKwlpbnB1dF9zeW5jKGNyZWF0aXZlX3NiMDU0MC0+aW5wdXRfZGV2KTsKKworCS8qIGxldCBoaWRyYXcgYW5kIGhpZGRldiBoYW5kbGUgdGhlIHJlcG9ydCAqLworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNyZWF0aXZlX3NiMDU0MF9pbnB1dF9jb25maWd1cmVkKHN0cnVjdCBoaWRfZGV2aWNlICpoaWQsCisJCXN0cnVjdCBoaWRfaW5wdXQgKmhpZGlucHV0KQoreworCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0X2RldiA9IGhpZGlucHV0LT5pbnB1dDsKKwlzdHJ1Y3QgY3JlYXRpdmVfc2IwNTQwICpjcmVhdGl2ZV9zYjA1NDAgPSBoaWRfZ2V0X2RydmRhdGEoaGlkKTsKKwlpbnQgaTsKKworCWNyZWF0aXZlX3NiMDU0MC0+aW5wdXRfZGV2ID0gaW5wdXRfZGV2OworCisJaW5wdXRfZGV2LT5rZXljb2RlID0gY3JlYXRpdmVfc2IwNTQwLT5rZXltYXA7CisJaW5wdXRfZGV2LT5rZXljb2Rlc2l6ZSA9IHNpemVvZih1bnNpZ25lZCBzaG9ydCk7CisJaW5wdXRfZGV2LT5rZXljb2RlbWF4ID0gQVJSQVlfU0laRShjcmVhdGl2ZV9zYjA1NDAtPmtleW1hcCk7CisKKwlpbnB1dF9kZXYtPmV2Yml0WzBdID0gQklUKEVWX0tFWSkgfCBCSVQoRVZfUkVQKTsKKworCW1lbWNweShjcmVhdGl2ZV9zYjA1NDAtPmtleW1hcCwgY3JlYXRpdmVfc2IwNTQwX2tleV90YWJsZSwKKwkJc2l6ZW9mKGNyZWF0aXZlX3NiMDU0MC0+a2V5bWFwKSk7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3JlYXRpdmVfc2IwNTQwX2tleV90YWJsZSk7IGkrKykKKwkJc2V0X2JpdChjcmVhdGl2ZV9zYjA1NDAtPmtleW1hcFtpXSwgaW5wdXRfZGV2LT5rZXliaXQpOworCWNsZWFyX2JpdChLRVlfUkVTRVJWRUQsIGlucHV0X2Rldi0+a2V5Yml0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNyZWF0aXZlX3NiMDU0MF9pbnB1dF9tYXBwaW5nKHN0cnVjdCBoaWRfZGV2aWNlICpoaWQsCisJCXN0cnVjdCBoaWRfaW5wdXQgKmhpLCBzdHJ1Y3QgaGlkX2ZpZWxkICpmaWVsZCwKKwkJc3RydWN0IGhpZF91c2FnZSAqdXNhZ2UsIHVuc2lnbmVkIGxvbmcgKipiaXQsIGludCAqbWF4KQoreworCS8qCisJICogV2UgYXJlIHJlbWFwcGluZyB0aGUga2V5cyBvdXJzZWx2ZXMsIHNvIGlnbm9yZSB0aGUgaGlkLWlucHV0CisJICoga2V5bWFwIHByb2Nlc3NpbmcuCisJICovCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgaW50IGNyZWF0aXZlX3NiMDU0MF9wcm9iZShzdHJ1Y3QgaGlkX2RldmljZSAqaGlkLAorCQljb25zdCBzdHJ1Y3QgaGlkX2RldmljZV9pZCAqaWQpCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgY3JlYXRpdmVfc2IwNTQwICpjcmVhdGl2ZV9zYjA1NDA7CisKKwljcmVhdGl2ZV9zYjA1NDAgPSBkZXZtX2t6YWxsb2MoJmhpZC0+ZGV2LAorCQlzaXplb2Yoc3RydWN0IGNyZWF0aXZlX3NiMDU0MCksIEdGUF9LRVJORUwpOworCisJaWYgKCFjcmVhdGl2ZV9zYjA1NDApCisJCXJldHVybiAtRU5PTUVNOworCisJY3JlYXRpdmVfc2IwNTQwLT5oaWQgPSBoaWQ7CisKKwkvKiBmb3JjZSBpbnB1dCBhcyBzb21lIHJlbW90ZXMgYnlwYXNzIHRoZSBpbnB1dCByZWdpc3RyYXRpb24gKi8KKwloaWQtPnF1aXJrcyB8PSBISURfUVVJUktfSElESU5QVVRfRk9SQ0U7CisKKwloaWRfc2V0X2RydmRhdGEoaGlkLCBjcmVhdGl2ZV9zYjA1NDApOworCisJcmV0ID0gaGlkX3BhcnNlKGhpZCk7CisJaWYgKHJldCkgeworCQloaWRfZXJyKGhpZCwgInBhcnNlIGZhaWxlZFxuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gaGlkX2h3X3N0YXJ0KGhpZCwgSElEX0NPTk5FQ1RfREVGQVVMVCk7CisJaWYgKHJldCkgeworCQloaWRfZXJyKGhpZCwgImh3IHN0YXJ0IGZhaWxlZFxuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkIGNyZWF0aXZlX3NiMDU0MF9kZXZpY2VzW10gPSB7CisJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0NSRUFUSVZFTEFCUywgVVNCX0RFVklDRV9JRF9DUkVBVElWRV9TQjA1NDApIH0sCisJeyB9Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShoaWQsIGNyZWF0aXZlX3NiMDU0MF9kZXZpY2VzKTsKKworc3RhdGljIHN0cnVjdCBoaWRfZHJpdmVyIGNyZWF0aXZlX3NiMDU0MF9kcml2ZXIgPSB7CisJLm5hbWUgPSAiY3JlYXRpdmUtc2IwNTQwIiwKKwkuaWRfdGFibGUgPSBjcmVhdGl2ZV9zYjA1NDBfZGV2aWNlcywKKwkucmF3X2V2ZW50ID0gY3JlYXRpdmVfc2IwNTQwX3Jhd19ldmVudCwKKwkuaW5wdXRfY29uZmlndXJlZCA9IGNyZWF0aXZlX3NiMDU0MF9pbnB1dF9jb25maWd1cmVkLAorCS5wcm9iZSA9IGNyZWF0aXZlX3NiMDU0MF9wcm9iZSwKKwkuaW5wdXRfbWFwcGluZyA9IGNyZWF0aXZlX3NiMDU0MF9pbnB1dF9tYXBwaW5nLAorfTsKK21vZHVsZV9oaWRfZHJpdmVyKGNyZWF0aXZlX3NiMDU0MF9kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWdmcm0uYyBiL2RyaXZlcnMvaGlkL2hpZC1nZnJtLmMKaW5kZXggODZjMzE3My4uNjk5MTg2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLWdmcm0uYworKysgYi9kcml2ZXJzL2hpZC9oaWQtZ2ZybS5jCkBAIC0xMjMsMTIgKzEyMyw2IEBAIHN0YXRpYyBpbnQgZ2ZybV9wcm9iZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwgY29uc3Qgc3RydWN0IGhpZF9kZXZpY2VfaWQgKmlkKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGdmcm1fcmVtb3ZlKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2KQotewotCWhpZF9od19zdG9wKGhkZXYpOwotCWhpZF9zZXRfZHJ2ZGF0YShoZGV2LCBOVUxMKTsKLX0KLQogc3RhdGljIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkIGdmcm1fZGV2aWNlc1tdID0gewogCXsgSElEX0JMVUVUT09USF9ERVZJQ0UoMHg1OCwgMHgyMDAwKSwKIAkJLmRyaXZlcl9kYXRhID0gR0ZSTTEwMCB9LApAQCAtMTQyLDcgKzEzNiw2IEBAIHN0YXRpYyBzdHJ1Y3QgaGlkX2RyaXZlciBnZnJtX2RyaXZlciA9IHsKIAkubmFtZSA9ICJnZnJtIiwKIAkuaWRfdGFibGUgPSBnZnJtX2RldmljZXMsCiAJLnByb2JlID0gZ2ZybV9wcm9iZSwKLQkucmVtb3ZlID0gZ2ZybV9yZW1vdmUsCiAJLmlucHV0X21hcHBpbmcgPSBnZnJtX2lucHV0X21hcHBpbmcsCiAJLnJhd19ldmVudCA9IGdmcm1fcmF3X2V2ZW50LAogCS5pbnB1dF9jb25maWd1cmVkID0gZ2ZybV9pbnB1dF9jb25maWd1cmVkLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWdvb2dsZS1oYW1tZXIuYyBiL2RyaXZlcnMvaGlkL2hpZC1nb29nbGUtaGFtbWVyLmMKaW5kZXggZWU1ZTBiZC4uODRmOGMxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLWdvb2dsZS1oYW1tZXIuYworKysgYi9kcml2ZXJzL2hpZC9oaWQtZ29vZ2xlLWhhbW1lci5jCkBAIC0xNiw5ICsxNiw5IEBACiAjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogI2luY2x1ZGUgPGxpbnV4L2hpZC5oPgogI2luY2x1ZGUgPGxpbnV4L2xlZHMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjX2NvbW1hbmRzLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fd2FrZXVwLmg+CiAjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWh5cGVydi5jIGIvZHJpdmVycy9oaWQvaGlkLWh5cGVydi5jCmluZGV4IDc3OTU4MzEuLmNjNWIwOWI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtaHlwZXJ2LmMKKysrIGIvZHJpdmVycy9oaWQvaGlkLWh5cGVydi5jCkBAIC0xMDQsOCArMTA0LDggQEAgc3RydWN0IHN5bnRoaGlkX2lucHV0X3JlcG9ydCB7CiAKICNwcmFnbWEgcGFjayhwb3ApCiAKLSNkZWZpbmUgSU5QVVRWU0NfU0VORF9SSU5HX0JVRkZFUl9TSVpFCQkoMTAqUEFHRV9TSVpFKQotI2RlZmluZSBJTlBVVFZTQ19SRUNWX1JJTkdfQlVGRkVSX1NJWkUJCSgxMCpQQUdFX1NJWkUpCisjZGVmaW5lIElOUFVUVlNDX1NFTkRfUklOR19CVUZGRVJfU0laRQkJKDQwICogMTAyNCkKKyNkZWZpbmUgSU5QVVRWU0NfUkVDVl9SSU5HX0JVRkZFUl9TSVpFCQkoNDAgKiAxMDI0KQogCiAKIGVudW0gcGlwZV9wcm90X21zZ190eXBlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1pZHMuaCBiL2RyaXZlcnMvaGlkL2hpZC1pZHMuaAppbmRleCAwYTAwYmUxLi43Njk2OWEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtaWRzLmgKKysrIGIvZHJpdmVycy9oaWQvaGlkLWlkcy5oCkBAIC0zMTQsNiArMzE0LDcgQEAKICNkZWZpbmUgVVNCX1ZFTkRPUl9JRF9DUkVBVElWRUxBQlMJMHgwNDFlCiAjZGVmaW5lIFVTQl9ERVZJQ0VfSURfQ1JFQVRJVkVfU0JfT01OSV9TVVJST1VORF81MQkweDMyMmMKICNkZWZpbmUgVVNCX0RFVklDRV9JRF9QUk9ESUtFWVNfUENNSURJCTB4MjgwMQorI2RlZmluZSBVU0JfREVWSUNFX0lEX0NSRUFUSVZFX1NCMDU0MAkweDMxMDAKIAogI2RlZmluZSBVU0JfVkVORE9SX0lEX0NWVE9VQ0gJCTB4MWZmNwogI2RlZmluZSBVU0JfREVWSUNFX0lEX0NWVE9VQ0hfU0NSRUVOCTB4MDAxMwpAQCAtNTY4LDYgKzU2OSw3IEBACiAjZGVmaW5lIFVTQl9QUk9EVUNUX0lEX0hQX0xPR0lURUNIX09FTV9VU0JfT1BUSUNBTF9NT1VTRV8wQjRBCTB4MGI0YQogI2RlZmluZSBVU0JfUFJPRFVDVF9JRF9IUF9QSVhBUlRfT0VNX1VTQl9PUFRJQ0FMX01PVVNFCQkweDEzNGEKICNkZWZpbmUgVVNCX1BST0RVQ1RfSURfSFBfUElYQVJUX09FTV9VU0JfT1BUSUNBTF9NT1VTRV8wOTRBCTB4MDk0YQorI2RlZmluZSBVU0JfUFJPRFVDVF9JRF9IUF9QSVhBUlRfT0VNX1VTQl9PUFRJQ0FMX01PVVNFXzA5NDEJMHgwOTQxCiAjZGVmaW5lIFVTQl9QUk9EVUNUX0lEX0hQX1BJWEFSVF9PRU1fVVNCX09QVElDQUxfTU9VU0VfMDY0MQkweDA2NDEKIAogI2RlZmluZSBVU0JfVkVORE9SX0lEX0hVSU9OCQkweDI1NmMKQEAgLTc2OSw3ICs3NzEsOCBAQAogI2RlZmluZSBVU0JfREVWSUNFX0lEX0xPR0lURUNIX05BTk9fUkVDRUlWRVIJCTB4YzUyZgogI2RlZmluZSBVU0JfREVWSUNFX0lEX0xPR0lURUNIX1VOSUZZSU5HX1JFQ0VJVkVSXzIJMHhjNTMyCiAjZGVmaW5lIFVTQl9ERVZJQ0VfSURfTE9HSVRFQ0hfTkFOT19SRUNFSVZFUl8yCQkweGM1MzQKLSNkZWZpbmUgVVNCX0RFVklDRV9JRF9MT0dJVEVDSF9OQU5PX1JFQ0VJVkVSX0xJR0hUU1BFRUQJMHhjNTM5CisjZGVmaW5lIFVTQl9ERVZJQ0VfSURfTE9HSVRFQ0hfTkFOT19SRUNFSVZFUl9MSUdIVFNQRUVEXzEJMHhjNTM5CisjZGVmaW5lIFVTQl9ERVZJQ0VfSURfTE9HSVRFQ0hfTkFOT19SRUNFSVZFUl9MSUdIVFNQRUVEXzFfMQkweGM1M2YKICNkZWZpbmUgVVNCX0RFVklDRV9JRF9MT0dJVEVDSF9OQU5PX1JFQ0VJVkVSX1BPV0VSUExBWQkweGM1M2EKICNkZWZpbmUgVVNCX0RFVklDRV9JRF9TUEFDRVRSQVZFTExFUgkweGM2MjMKICNkZWZpbmUgVVNCX0RFVklDRV9JRF9TUEFDRU5BVklHQVRPUgkweGM2MjYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1sZW5vdm8uYyBiL2RyaXZlcnMvaGlkL2hpZC1sZW5vdm8uYwppbmRleCAzNjRiYzdmLi45NmZhMmEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtbGVub3ZvLmMKKysrIGIvZHJpdmVycy9oaWQvaGlkLWxlbm92by5jCkBAIC04NjYsOCArODY2LDYgQEAgc3RhdGljIHZvaWQgbGVub3ZvX3JlbW92ZV90cGtiZChzdHJ1Y3QgaGlkX2RldmljZSAqaGRldikKIAogCWxlZF9jbGFzc2Rldl91bnJlZ2lzdGVyKCZkYXRhX3BvaW50ZXItPmxlZF9taWNtdXRlKTsKIAlsZWRfY2xhc3NkZXZfdW5yZWdpc3RlcigmZGF0YV9wb2ludGVyLT5sZWRfbXV0ZSk7Ci0KLQloaWRfc2V0X2RydmRhdGEoaGRldiwgTlVMTCk7CiB9CiAKIHN0YXRpYyB2b2lkIGxlbm92b19yZW1vdmVfY3B0a2JkKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWxnLmMgYi9kcml2ZXJzL2hpZC9oaWQtbGcuYwppbmRleCA1MDA4YTNkYy4uMGRjN2NkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLWxnLmMKKysrIGIvZHJpdmVycy9oaWQvaGlkLWxnLmMKQEAgLTgxOCw3ICs4MTgsNyBAQCBzdGF0aWMgaW50IGxnX3Byb2JlKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LCBjb25zdCBzdHJ1Y3QgaGlkX2RldmljZV9pZCAqaWQpCiAKIAkJaWYgKCFidWYpIHsKIAkJCXJldCA9IC1FTk9NRU07Ci0JCQlnb3RvIGVycl9mcmVlOworCQkJZ290byBlcnJfc3RvcDsKIAkJfQogCiAJCXJldCA9IGhpZF9od19yYXdfcmVxdWVzdChoZGV2LCBidWZbMF0sIGJ1Ziwgc2l6ZW9mKGNidWYpLApAQCAtODUwLDkgKzg1MCwxMiBAQCBzdGF0aWMgaW50IGxnX3Byb2JlKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LCBjb25zdCBzdHJ1Y3QgaGlkX2RldmljZV9pZCAqaWQpCiAJCXJldCA9IGxnNGZmX2luaXQoaGRldik7CiAKIAlpZiAocmV0KQotCQlnb3RvIGVycl9mcmVlOworCQlnb3RvIGVycl9zdG9wOwogCiAJcmV0dXJuIDA7CisKK2Vycl9zdG9wOgorCWhpZF9od19zdG9wKGhkZXYpOwogZXJyX2ZyZWU6CiAJa2ZyZWUoZHJ2X2RhdGEpOwogCXJldHVybiByZXQ7CkBAIC04NjMsOCArODY2LDcgQEAgc3RhdGljIHZvaWQgbGdfcmVtb3ZlKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2KQogCXN0cnVjdCBsZ19kcnZfZGF0YSAqZHJ2X2RhdGEgPSBoaWRfZ2V0X2RydmRhdGEoaGRldik7CiAJaWYgKGRydl9kYXRhLT5xdWlya3MgJiBMR19GRjQpCiAJCWxnNGZmX2RlaW5pdChoZGV2KTsKLQllbHNlCi0JCWhpZF9od19zdG9wKGhkZXYpOworCWhpZF9od19zdG9wKGhkZXYpOwogCWtmcmVlKGRydl9kYXRhKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWxnNGZmLmMgYi9kcml2ZXJzL2hpZC9oaWQtbGc0ZmYuYwppbmRleCBjZWZiYTAzLi4wM2YwMjIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtbGc0ZmYuYworKysgYi9kcml2ZXJzL2hpZC9oaWQtbGc0ZmYuYwpAQCAtMTQ3Nyw3ICsxNDc3LDYgQEAgaW50IGxnNGZmX2RlaW5pdChzdHJ1Y3QgaGlkX2RldmljZSAqaGlkKQogCQl9CiAJfQogI2VuZGlmCi0JaGlkX2h3X3N0b3AoaGlkKTsKIAlkcnZfZGF0YS0+ZGV2aWNlX3Byb3BzID0gTlVMTDsKIAogCWtmcmVlKGVudHJ5KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1kai5jIGIvZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWRqLmMKaW5kZXggY2M0N2Y5NC4uYmI1MGQ2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWRqLmMKKysrIGIvZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWRqLmMKQEAgLTM4MCw5ICszODAsOSBAQCBzdGF0aWMgY29uc3QgY2hhciBjb25zdW1lcl9kZXNjcmlwdG9yW10gPSB7CiAJMHg3NSwgMHgxMCwJCS8qIFJFUE9SVF9TSVpFICgxNikgICAgICAgICAgICAgICAgICAgICovCiAJMHg5NSwgMHgwMiwJCS8qIFJFUE9SVF9DT1VOVCAoMikgICAgICAgICAgICAgICAgICAgICovCiAJMHgxNSwgMHgwMSwJCS8qIExPR0lDQUxfTUlOICgxKSAgICAgICAgICAgICAgICAgICAgICovCi0JMHgyNiwgMHg4QywgMHgwMiwJLyogTE9HSUNBTF9NQVggKDY1MikgICAgICAgICAgICAgICAgICAgKi8KKwkweDI2LCAweEZGLCAweDAyLAkvKiBMT0dJQ0FMX01BWCAoNzY3KSAgICAgICAgICAgICAgICAgICAqLwogCTB4MTksIDB4MDEsCQkvKiBVU0FHRV9NSU4gKDEpICAgICAgICAgICAgICAgICAgICAgICAqLwotCTB4MkEsIDB4OEMsIDB4MDIsCS8qIFVTQUdFX01BWCAoNjUyKSAgICAgICAgICAgICAgICAgICAgICovCisJMHgyQSwgMHhGRiwgMHgwMiwJLyogVVNBR0VfTUFYICg3NjcpICAgICAgICAgICAgICAgICAgICAgKi8KIAkweDgxLCAweDAwLAkJLyogSU5QVVQgKERhdGEgQXJ5IEFicykgICAgICAgICAgICAgICAgKi8KIAkweEMwLAkJCS8qIEVORF9DT0xMRUNUSU9OICAgICAgICAgICAgICAgICAgICAgICovCiB9OwkJCQkvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtOTU5LDYgKzk1OSw3IEBAIHN0YXRpYyB2b2lkIGxvZ2lfaGlkcHBfcmVjdl9xdWV1ZV9ub3RpZihzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwKIAkJYnJlYWs7CiAJY2FzZSAweDA3OgogCQlkZXZpY2VfdHlwZSA9ICJlUVVBRCBzdGVwIDQgR2FtaW5nIjsKKwkJbG9naV9oaWRwcF9kZXZfY29ubl9ub3RpZl9lcXVhZChoZGV2LCBoaWRwcF9yZXBvcnQsICZ3b3JraXRlbSk7CiAJCWJyZWFrOwogCWNhc2UgMHgwODoKIAkJZGV2aWNlX3R5cGUgPSAiZVFVQUQgc3RlcCA0IGZvciBnYW1lcGFkcyI7CkBAIC05NjgsNyArOTY5LDEyIEBAIHN0YXRpYyB2b2lkIGxvZ2lfaGlkcHBfcmVjdl9xdWV1ZV9ub3RpZihzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwKIAkJbG9naV9oaWRwcF9kZXZfY29ubl9ub3RpZl9lcXVhZChoZGV2LCBoaWRwcF9yZXBvcnQsICZ3b3JraXRlbSk7CiAJCWJyZWFrOwogCWNhc2UgMHgwYzoKLQkJZGV2aWNlX3R5cGUgPSAiZVFVQUQgTGlnaHRzcGVlZCI7CisJCWRldmljZV90eXBlID0gImVRVUFEIExpZ2h0c3BlZWQgMSI7CisJCWxvZ2lfaGlkcHBfZGV2X2Nvbm5fbm90aWZfZXF1YWQoaGRldiwgaGlkcHBfcmVwb3J0LCAmd29ya2l0ZW0pOworCQl3b3JraXRlbS5yZXBvcnRzX3N1cHBvcnRlZCB8PSBTVERfS0VZQk9BUkQ7CisJCWJyZWFrOworCWNhc2UgMHgwZDoKKwkJZGV2aWNlX3R5cGUgPSAiZVFVQUQgTGlnaHRzcGVlZCAxXzEiOwogCQlsb2dpX2hpZHBwX2Rldl9jb25uX25vdGlmX2VxdWFkKGhkZXYsIGhpZHBwX3JlcG9ydCwgJndvcmtpdGVtKTsKIAkJd29ya2l0ZW0ucmVwb3J0c19zdXBwb3J0ZWQgfD0gU1REX0tFWUJPQVJEOwogCQlicmVhazsKQEAgLTE3MzQsMTQgKzE3NDAsMTQgQEAgc3RhdGljIGludCBsb2dpX2RqX3Byb2JlKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LAogCQlpZiAocmV0dmFsIDwgMCkgewogCQkJaGlkX2VycihoZGV2LCAiJXM6IGxvZ2lfZGpfcmVjdl9xdWVyeV9wYWlyZWRfZGV2aWNlcyBlcnJvcjolZFxuIiwKIAkJCQlfX2Z1bmNfXywgcmV0dmFsKTsKLQkJCWdvdG8gbG9naV9kal9yZWN2X3F1ZXJ5X3BhaXJlZF9kZXZpY2VzX2ZhaWxlZDsKKwkJCS8qCisJCQkgKiBUaGlzIGNhbiBoYXBwZW4gd2l0aCBhIEtWTSwgbGV0IHRoZSBwcm9iZSBzdWNjZWVkLAorCQkJICogbG9naV9kal9yZWN2X3F1ZXVlX3Vua25vd25fd29yayB3aWxsIHJldHJ5IGxhdGVyLgorCQkJICovCiAJCX0KIAl9CiAKLQlyZXR1cm4gcmV0dmFsOwotCi1sb2dpX2RqX3JlY3ZfcXVlcnlfcGFpcmVkX2RldmljZXNfZmFpbGVkOgotCWhpZF9od19jbG9zZShoZGV2KTsKKwlyZXR1cm4gMDsKIAogbGxvcGVuX2ZhaWxlZDoKIHN3aXRjaF90b19kal9tb2RlX2ZhaWw6CkBAIC0xODMyLDkgKzE4MzgsMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkIGxvZ2lfZGpfcmVjZWl2ZXJzW10gPSB7CiAJICBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0xPR0lURUNILAogCQkJIFVTQl9ERVZJQ0VfSURfTE9HSVRFQ0hfTkFOT19SRUNFSVZFUl8yKSwKIAkgLmRyaXZlcl9kYXRhID0gcmVjdnJfdHlwZV9oaWRwcH0sCisJeyAvKiBMb2dpdGVjaCBHNzAwKHMpIHJlY2VpdmVyICgweGM1MzEpICovCisJICBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0xPR0lURUNILAorCQkweGM1MzEpLAorCSAuZHJpdmVyX2RhdGEgPSByZWN2cl90eXBlX2dhbWluZ19oaWRwcH0sCiAJeyAvKiBMb2dpdGVjaCBsaWdodHNwZWVkIHJlY2VpdmVyICgweGM1MzkpICovCiAJICBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0xPR0lURUNILAotCQlVU0JfREVWSUNFX0lEX0xPR0lURUNIX05BTk9fUkVDRUlWRVJfTElHSFRTUEVFRCksCisJCVVTQl9ERVZJQ0VfSURfTE9HSVRFQ0hfTkFOT19SRUNFSVZFUl9MSUdIVFNQRUVEXzEpLAorCSAuZHJpdmVyX2RhdGEgPSByZWN2cl90eXBlX2dhbWluZ19oaWRwcH0sCisJeyAvKiBMb2dpdGVjaCBsaWdodHNwZWVkIHJlY2VpdmVyICgweGM1M2YpICovCisJICBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0xPR0lURUNILAorCQlVU0JfREVWSUNFX0lEX0xPR0lURUNIX05BTk9fUkVDRUlWRVJfTElHSFRTUEVFRF8xXzEpLAogCSAuZHJpdmVyX2RhdGEgPSByZWN2cl90eXBlX2dhbWluZ19oaWRwcH0sCiAJeyAvKiBMb2dpdGVjaCAyNyBNSHogSElEKysgMS4wIHJlY2VpdmVyICgweGM1MTMpICovCiAJICBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0xPR0lURUNILCBVU0JfREVWSUNFX0lEX01YMzAwMF9SRUNFSVZFUiksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtbXVsdGl0b3VjaC5jIGIvZHJpdmVycy9oaWQvaGlkLW11bHRpdG91Y2guYwppbmRleCBiNjAzYzE0Li4zY2ZlYjE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtbXVsdGl0b3VjaC5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1tdWx0aXRvdWNoLmMKQEAgLTY4LDYgKzY4LDcgQEAgTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogI2RlZmluZSBNVF9RVUlSS19TVElDS1lfRklOR0VSUwkJQklUKDE2KQogI2RlZmluZSBNVF9RVUlSS19BU1VTX0NVU1RPTV9VUAkJQklUKDE3KQogI2RlZmluZSBNVF9RVUlSS19XSU44X1BUUF9CVVRUT05TCUJJVCgxOCkKKyNkZWZpbmUgTVRfUVVJUktfU0VQQVJBVEVfQVBQX1JFUE9SVAlCSVQoMTkpCiAKICNkZWZpbmUgTVRfSU5QVVRNT0RFX1RPVUNIU0NSRUVOCTB4MDIKICNkZWZpbmUgTVRfSU5QVVRNT0RFX1RPVUNIUEFECQkweDAzCkBAIC0xMDMsNiArMTA0LDcgQEAgc3RydWN0IG10X3VzYWdlcyB7CiBzdHJ1Y3QgbXRfYXBwbGljYXRpb24gewogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIAl1bnNpZ25lZCBpbnQgYXBwbGljYXRpb247CisJdW5zaWduZWQgaW50IHJlcG9ydF9pZDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG10X3VzYWdlczsJLyogbXQgdXNhZ2VzIGxpc3QgKi8KIAogCV9fczMyIHF1aXJrczsKQEAgLTIwMyw2ICsyMDUsNyBAQCBzdGF0aWMgdm9pZCBtdF9wb3N0X3BhcnNlKHN0cnVjdCBtdF9kZXZpY2UgKnRkLCBzdHJ1Y3QgbXRfYXBwbGljYXRpb24gKmFwcCk7CiAjZGVmaW5lIE1UX0NMU19WVEwJCQkJMHgwMTEwCiAjZGVmaW5lIE1UX0NMU19HT09HTEUJCQkJMHgwMTExCiAjZGVmaW5lIE1UX0NMU19SQVpFUl9CTEFERV9TVEVBTFRICQkweDAxMTIKKyNkZWZpbmUgTVRfQ0xTX1NNQVJUX1RFQ0gJCQkweDAxMTMKIAogI2RlZmluZSBNVF9ERUZBVUxUX01BWENPTlRBQ1QJMTAKICNkZWZpbmUgTVRfTUFYX01BWENPTlRBQ1QJMjUwCkBAIC0yNjMsNyArMjY2LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdF9jbGFzcyBtdF9jbGFzc2VzW10gPSB7CiAJCQlNVF9RVUlSS19IT1ZFUklORyB8CiAJCQlNVF9RVUlSS19DT05UQUNUX0NOVF9BQ0NVUkFURSB8CiAJCQlNVF9RVUlSS19TVElDS1lfRklOR0VSUyB8Ci0JCQlNVF9RVUlSS19XSU44X1BUUF9CVVRUT05TIH0sCisJCQlNVF9RVUlSS19XSU44X1BUUF9CVVRUT05TLAorCQkuZXhwb3J0X2FsbF9pbnB1dHMgPSB0cnVlIH0sCiAJeyAubmFtZSA9IE1UX0NMU19FWFBPUlRfQUxMX0lOUFVUUywKIAkJLnF1aXJrcyA9IE1UX1FVSVJLX0FMV0FZU19WQUxJRCB8CiAJCQlNVF9RVUlSS19DT05UQUNUX0NOVF9BQ0NVUkFURSwKQEAgLTM1Myw2ICszNTcsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdF9jbGFzcyBtdF9jbGFzc2VzW10gPSB7CiAJCQlNVF9RVUlSS19DT05UQUNUX0NOVF9BQ0NVUkFURSB8CiAJCQlNVF9RVUlSS19XSU44X1BUUF9CVVRUT05TLAogCX0sCisJeyAubmFtZSA9IE1UX0NMU19TTUFSVF9URUNILAorCQkucXVpcmtzID0gTVRfUVVJUktfQUxXQVlTX1ZBTElEIHwKKwkJCU1UX1FVSVJLX0lHTk9SRV9EVVBMSUNBVEVTIHwKKwkJCU1UX1FVSVJLX0NPTlRBQ1RfQ05UX0FDQ1VSQVRFIHwKKwkJCU1UX1FVSVJLX1NFUEFSQVRFX0FQUF9SRVBPUlQsCisJfSwKIAl7IH0KIH07CiAKQEAgLTUwOSw4ICs1MTksOSBAQCBzdGF0aWMgc3RydWN0IG10X3VzYWdlcyAqbXRfYWxsb2NhdGVfdXNhZ2Uoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgbXRfYXBwbGljYXRpb24gKm10X2FsbG9jYXRlX2FwcGxpY2F0aW9uKHN0cnVjdCBtdF9kZXZpY2UgKnRkLAotCQkJCQkJICAgICAgdW5zaWduZWQgaW50IGFwcGxpY2F0aW9uKQorCQkJCQkJICAgICAgc3RydWN0IGhpZF9yZXBvcnQgKnJlcG9ydCkKIHsKKwl1bnNpZ25lZCBpbnQgYXBwbGljYXRpb24gPSByZXBvcnQtPmFwcGxpY2F0aW9uOwogCXN0cnVjdCBtdF9hcHBsaWNhdGlvbiAqbXRfYXBwbGljYXRpb247CiAKIAltdF9hcHBsaWNhdGlvbiA9IGRldm1fa3phbGxvYygmdGQtPmhkZXYtPmRldiwgc2l6ZW9mKCptdF9hcHBsaWNhdGlvbiksCkBAIC01MzUsNiArNTQ2LDcgQEAgc3RhdGljIHN0cnVjdCBtdF9hcHBsaWNhdGlvbiAqbXRfYWxsb2NhdGVfYXBwbGljYXRpb24oc3RydWN0IG10X2RldmljZSAqdGQsCiAJbXRfYXBwbGljYXRpb24tPnNjYW50aW1lID0gREVGQVVMVF9aRVJPOwogCW10X2FwcGxpY2F0aW9uLT5yYXdfY2MgPSBERUZBVUxUX1pFUk87CiAJbXRfYXBwbGljYXRpb24tPnF1aXJrcyA9IHRkLT5tdGNsYXNzLnF1aXJrczsKKwltdF9hcHBsaWNhdGlvbi0+cmVwb3J0X2lkID0gcmVwb3J0LT5pZDsKIAogCWxpc3RfYWRkX3RhaWwoJm10X2FwcGxpY2F0aW9uLT5saXN0LCAmdGQtPmFwcGxpY2F0aW9ucyk7CiAKQEAgLTU0MiwxOSArNTU0LDIzIEBAIHN0YXRpYyBzdHJ1Y3QgbXRfYXBwbGljYXRpb24gKm10X2FsbG9jYXRlX2FwcGxpY2F0aW9uKHN0cnVjdCBtdF9kZXZpY2UgKnRkLAogfQogCiBzdGF0aWMgc3RydWN0IG10X2FwcGxpY2F0aW9uICptdF9maW5kX2FwcGxpY2F0aW9uKHN0cnVjdCBtdF9kZXZpY2UgKnRkLAotCQkJCQkJICB1bnNpZ25lZCBpbnQgYXBwbGljYXRpb24pCisJCQkJCQkgIHN0cnVjdCBoaWRfcmVwb3J0ICpyZXBvcnQpCiB7CisJdW5zaWduZWQgaW50IGFwcGxpY2F0aW9uID0gcmVwb3J0LT5hcHBsaWNhdGlvbjsKIAlzdHJ1Y3QgbXRfYXBwbGljYXRpb24gKnRtcCwgKm10X2FwcGxpY2F0aW9uID0gTlVMTDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkodG1wLCAmdGQtPmFwcGxpY2F0aW9ucywgbGlzdCkgewogCQlpZiAoYXBwbGljYXRpb24gPT0gdG1wLT5hcHBsaWNhdGlvbikgewotCQkJbXRfYXBwbGljYXRpb24gPSB0bXA7Ci0JCQlicmVhazsKKwkJCWlmICghKHRkLT5tdGNsYXNzLnF1aXJrcyAmIE1UX1FVSVJLX1NFUEFSQVRFX0FQUF9SRVBPUlQpIHx8CisJCQkgICAgdG1wLT5yZXBvcnRfaWQgPT0gcmVwb3J0LT5pZCkgeworCQkJCW10X2FwcGxpY2F0aW9uID0gdG1wOworCQkJCWJyZWFrOworCQkJfQogCQl9CiAJfQogCiAJaWYgKCFtdF9hcHBsaWNhdGlvbikKLQkJbXRfYXBwbGljYXRpb24gPSBtdF9hbGxvY2F0ZV9hcHBsaWNhdGlvbih0ZCwgYXBwbGljYXRpb24pOworCQltdF9hcHBsaWNhdGlvbiA9IG10X2FsbG9jYXRlX2FwcGxpY2F0aW9uKHRkLCByZXBvcnQpOwogCiAJcmV0dXJuIG10X2FwcGxpY2F0aW9uOwogfQpAQCAtNTcxLDcgKzU4Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgbXRfcmVwb3J0X2RhdGEgKm10X2FsbG9jYXRlX3JlcG9ydF9kYXRhKHN0cnVjdCBtdF9kZXZpY2UgKnRkLAogCQlyZXR1cm4gTlVMTDsKIAogCXJkYXRhLT5yZXBvcnQgPSByZXBvcnQ7Ci0JcmRhdGEtPmFwcGxpY2F0aW9uID0gbXRfZmluZF9hcHBsaWNhdGlvbih0ZCwgcmVwb3J0LT5hcHBsaWNhdGlvbik7CisJcmRhdGEtPmFwcGxpY2F0aW9uID0gbXRfZmluZF9hcHBsaWNhdGlvbih0ZCwgcmVwb3J0KTsKIAogCWlmICghcmRhdGEtPmFwcGxpY2F0aW9uKSB7CiAJCWRldm1fa2ZyZWUoJnRkLT5oZGV2LT5kZXYsIHJkYXRhKTsKQEAgLTE1NjEsNiArMTU3Nyw5IEBAIHN0YXRpYyBpbnQgbXRfaW5wdXRfY29uZmlndXJlZChzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwgc3RydWN0IGhpZF9pbnB1dCAqaGkpCiAJY2FzZSBISURfVkRfQVNVU19DVVNUT01fTUVESUFfS0VZUzoKIAkJc3VmZml4ID0gIkN1c3RvbSBNZWRpYSBLZXlzIjsKIAkJYnJlYWs7CisJY2FzZSBISURfREdfUEVOOgorCQlzdWZmaXggPSAiU3R5bHVzIjsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJc3VmZml4ID0gIlVOS05PV04iOwogCQlicmVhazsKQEAgLTIwMjIsNiArMjA0MSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhpZF9kZXZpY2VfaWQgbXRfZGV2aWNlc1tdID0gewogCQlISURfREVWSUNFKEJVU19JMkMsIEhJRF9HUk9VUF9NVUxUSVRPVUNIX1dJTl84LAogCQkJVVNCX1ZFTkRPUl9JRF9TWU5BUFRJQ1MsIDB4ODMyMykgfSwKIAorCS8qIFNtYXJ0IFRlY2ggcGFuZWxzICovCisJeyAuZHJpdmVyX2RhdGEgPSBNVF9DTFNfU01BUlRfVEVDSCwKKwkJTVRfVVNCX0RFVklDRSgweDBiOGMsIDB4MDA5Mil9LAorCiAJLyogU3RhbnR1bSBwYW5lbHMgKi8KIAl7IC5kcml2ZXJfZGF0YSA9IE1UX0NMU19DT05GSURFTkNFLAogCQlNVF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfU1RBTlRVTV9TVE0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtcGljb2xjZF9jb3JlLmMgYi9kcml2ZXJzL2hpZC9oaWQtcGljb2xjZF9jb3JlLmMKaW5kZXggNWY3YTM5YS4uMWI1YzYzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLXBpY29sY2RfY29yZS5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1waWNvbGNkX2NvcmUuYwpAQCAtNTM0LDggKzUzNCw3IEBAIHN0YXRpYyBpbnQgcGljb2xjZF9wcm9iZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwKIAlkYXRhID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHBpY29sY2RfZGF0YSksIEdGUF9LRVJORUwpOwogCWlmIChkYXRhID09IE5VTEwpIHsKIAkJaGlkX2VycihoZGV2LCAiY2FuJ3QgYWxsb2NhdGUgc3BhY2UgZm9yIE1pbmlib3ggUGljb0xDRCBkZXZpY2UgZGF0YVxuIik7Ci0JCWVycm9yID0gLUVOT01FTTsKLQkJZ290byBlcnJfbm9fY2xlYW51cDsKKwkJcmV0dXJuIC1FTk9NRU07CiAJfQogCiAJc3Bpbl9sb2NrX2luaXQoJmRhdGEtPmxvY2spOwpAQCAtNTk3LDkgKzU5Niw2IEBAIHN0YXRpYyBpbnQgcGljb2xjZF9wcm9iZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwKIAloaWRfaHdfc3RvcChoZGV2KTsKIGVycl9jbGVhbnVwX2RhdGE6CiAJa2ZyZWUoZGF0YSk7Ci1lcnJfbm9fY2xlYW51cDoKLQloaWRfc2V0X2RydmRhdGEoaGRldiwgTlVMTCk7Ci0KIAlyZXR1cm4gZXJyb3I7CiB9CiAKQEAgLTYzNSw3ICs2MzEsNiBAQCBzdGF0aWMgdm9pZCBwaWNvbGNkX3JlbW92ZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRldikKIAlwaWNvbGNkX2V4aXRfY2lyKGRhdGEpOwogCXBpY29sY2RfZXhpdF9rZXlzKGRhdGEpOwogCi0JaGlkX3NldF9kcnZkYXRhKGhkZXYsIE5VTEwpOwogCW11dGV4X2Rlc3Ryb3koJmRhdGEtPm11dGV4KTsKIAkvKiBGaW5hbGx5LCBjbGVhbiB1cCB0aGUgcGljb2xjZCBkYXRhIGl0c2VsZiAqLwogCWtmcmVlKGRhdGEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLXByb2Rpa2V5cy5jIGIvZHJpdmVycy9oaWQvaGlkLXByb2Rpa2V5cy5jCmluZGV4IDIxNTQ0ZWIuLjVhM2IzZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL2hpZC1wcm9kaWtleXMuYworKysgYi9kcml2ZXJzL2hpZC9oaWQtcHJvZGlrZXlzLmMKQEAgLTU1MSwxMCArNTUxLDE0IEBAIHN0YXRpYyB2b2lkIHBjbWlkaV9zZXR1cF9leHRyYV9rZXlzKAogCiBzdGF0aWMgaW50IHBjbWlkaV9zZXRfb3BlcmF0aW9uYWwoc3RydWN0IHBjbWlkaV9zbmQgKnBtKQogeworCWludCByYzsKKwogCWlmIChwbS0+aWZudW0gIT0gMSkKIAkJcmV0dXJuIDA7IC8qIG9ubHkgc2V0IHVwIE9OQ0UgZm9yIGludGVyYWNlIDEgKi8KIAotCXBjbWlkaV9nZXRfb3V0cHV0X3JlcG9ydChwbSk7CisJcmMgPSBwY21pZGlfZ2V0X291dHB1dF9yZXBvcnQocG0pOworCWlmIChyYyA8IDApCisJCXJldHVybiByYzsKIAlwY21pZGlfc3VibWl0X291dHB1dF9yZXBvcnQocG0sIDB4YzEpOwogCXJldHVybiAwOwogfQpAQCAtNjgzLDcgKzY4NywxMSBAQCBzdGF0aWMgaW50IHBjbWlkaV9zbmRfaW5pdGlhbGlzZShzdHJ1Y3QgcGNtaWRpX3NuZCAqcG0pCiAJc3Bpbl9sb2NrX2luaXQoJnBtLT5yYXdtaWRpX2luX2xvY2spOwogCiAJaW5pdF9zdXN0YWluX3RpbWVycyhwbSk7Ci0JcGNtaWRpX3NldF9vcGVyYXRpb25hbChwbSk7CisJZXJyID0gcGNtaWRpX3NldF9vcGVyYXRpb25hbChwbSk7CisJaWYgKGVyciA8IDApIHsKKwkJcGtfZXJyb3IoImZhaWxlZCB0byBmaW5kIG91dHB1dCByZXBvcnRcbiIpOworCQlnb3RvIGZhaWxfcmVnaXN0ZXI7CisJfQogCiAJLyogcmVnaXN0ZXIgaXQgKi8KIAllcnIgPSBzbmRfY2FyZF9yZWdpc3RlcihjYXJkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1xdWlya3MuYyBiL2RyaXZlcnMvaGlkL2hpZC1xdWlya3MuYwppbmRleCAxNjZmNDFmLi5jNTBiY2Q5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtcXVpcmtzLmMKKysrIGIvZHJpdmVycy9oaWQvaGlkLXF1aXJrcy5jCkBAIC05Miw2ICs5Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlkX2RldmljZV9pZCBoaWRfcXVpcmtzW10gPSB7CiAJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0hQLCBVU0JfUFJPRFVDVF9JRF9IUF9MT0dJVEVDSF9PRU1fVVNCX09QVElDQUxfTU9VU0VfMEI0QSksIEhJRF9RVUlSS19BTFdBWVNfUE9MTCB9LAogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9IUCwgVVNCX1BST0RVQ1RfSURfSFBfUElYQVJUX09FTV9VU0JfT1BUSUNBTF9NT1VTRSksIEhJRF9RVUlSS19BTFdBWVNfUE9MTCB9LAogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9IUCwgVVNCX1BST0RVQ1RfSURfSFBfUElYQVJUX09FTV9VU0JfT1BUSUNBTF9NT1VTRV8wOTRBKSwgSElEX1FVSVJLX0FMV0FZU19QT0xMIH0sCisJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0hQLCBVU0JfUFJPRFVDVF9JRF9IUF9QSVhBUlRfT0VNX1VTQl9PUFRJQ0FMX01PVVNFXzA5NDEpLCBISURfUVVJUktfQUxXQVlTX1BPTEwgfSwKIAl7IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSFAsIFVTQl9QUk9EVUNUX0lEX0hQX1BJWEFSVF9PRU1fVVNCX09QVElDQUxfTU9VU0VfMDY0MSksIEhJRF9RVUlSS19BTFdBWVNfUE9MTCB9LAogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JREVBQ09NLCBVU0JfREVWSUNFX0lEX0lERUFDT01fSURDNjY4MCksIEhJRF9RVUlSS19NVUxUSV9JTlBVVCB9LAogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JTk5PTUVESUEsIFVTQl9ERVZJQ0VfSURfSU5ORVhfR0VORVNJU19BVEFSSSksIEhJRF9RVUlSS19NVUxUSV9JTlBVVCB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLXNlbnNvci1odWIuYyBiL2RyaXZlcnMvaGlkL2hpZC1zZW5zb3ItaHViLmMKaW5kZXggYmU5MmE2Zi4uOTRjNzM5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLXNlbnNvci1odWIuYworKysgYi9kcml2ZXJzL2hpZC9oaWQtc2Vuc29yLWh1Yi5jCkBAIC03NDIsNyArNzQyLDYgQEAgc3RhdGljIHZvaWQgc2Vuc29yX2h1Yl9yZW1vdmUoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYpCiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRhdGEtPmxvY2ssIGZsYWdzKTsKIAltZmRfcmVtb3ZlX2RldmljZXMoJmhkZXYtPmRldik7Ci0JaGlkX3NldF9kcnZkYXRhKGhkZXYsIE5VTEwpOwogCW11dGV4X2Rlc3Ryb3koJmRhdGEtPm11dGV4KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLXNvbnkuYyBiL2RyaXZlcnMvaGlkL2hpZC1zb255LmMKaW5kZXggNDlkZDJkOS4uNzNjMGY3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLXNvbnkuYworKysgYi9kcml2ZXJzL2hpZC9oaWQtc29ueS5jCkBAIC0yODExLDcgKzI4MTEsNiBAQCBzdGF0aWMgaW50IHNvbnlfaW5wdXRfY29uZmlndXJlZChzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwKIAlzb255X2NhbmNlbF93b3JrX3N5bmMoc2MpOwogCXNvbnlfcmVtb3ZlX2Rldl9saXN0KHNjKTsKIAlzb255X3JlbGVhc2VfZGV2aWNlX2lkKHNjKTsKLQloaWRfaHdfc3RvcChoZGV2KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yODc2LDYgKzI4NzUsNyBAQCBzdGF0aWMgaW50IHNvbnlfcHJvYmUoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkICppZCkKIAkgKi8KIAlpZiAoIShoZGV2LT5jbGFpbWVkICYgSElEX0NMQUlNRURfSU5QVVQpKSB7CiAJCWhpZF9lcnIoaGRldiwgImZhaWxlZCB0byBjbGFpbSBpbnB1dFxuIik7CisJCWhpZF9od19zdG9wKGhkZXYpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZHJhdy5jIGIvZHJpdmVycy9oaWQvaGlkcmF3LmMKaW5kZXggMDA2YmQ2Zi4uYmJjNmVjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkcmF3LmMKKysrIGIvZHJpdmVycy9oaWQvaGlkcmF3LmMKQEAgLTI1Miw3ICsyNTIsNyBAQCBzdGF0aWMgX19wb2xsX3QgaGlkcmF3X3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpCiAKIAlwb2xsX3dhaXQoZmlsZSwgJmxpc3QtPmhpZHJhdy0+d2FpdCwgd2FpdCk7CiAJaWYgKGxpc3QtPmhlYWQgIT0gbGlzdC0+dGFpbCkKLQkJcmV0dXJuIEVQT0xMSU4gfCBFUE9MTFJETk9STTsKKwkJcmV0dXJuIEVQT0xMSU4gfCBFUE9MTFJETk9STSB8IEVQT0xMT1VUOwogCWlmICghbGlzdC0+aGlkcmF3LT5leGlzdCkKIAkJcmV0dXJuIEVQT0xMRVJSIHwgRVBPTExIVVA7CiAJcmV0dXJuIDA7CkBAIC0zNzAsNyArMzcwLDcgQEAgc3RhdGljIGxvbmcgaGlkcmF3X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAogCiAJbXV0ZXhfbG9jaygmbWlub3JzX2xvY2spOwogCWRldiA9IGhpZHJhd190YWJsZVttaW5vcl07Ci0JaWYgKCFkZXYpIHsKKwlpZiAoIWRldiB8fCAhZGV2LT5leGlzdCkgewogCQlyZXQgPSAtRU5PREVWOwogCQlnb3RvIG91dDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9pMmMtaGlkL2kyYy1oaWQtY29yZS5jIGIvZHJpdmVycy9oaWQvaTJjLWhpZC9pMmMtaGlkLWNvcmUuYwppbmRleCA5MDE2NGZlLi4yYTdjNmUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9pMmMtaGlkL2kyYy1oaWQtY29yZS5jCisrKyBiL2RyaXZlcnMvaGlkL2kyYy1oaWQvaTJjLWhpZC1jb3JlLmMKQEAgLTE2OSw5ICsxNjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19oaWRfcXVpcmtzIHsKIAlfX3UxNiBpZFByb2R1Y3Q7CiAJX191MzIgcXVpcmtzOwogfSBpMmNfaGlkX3F1aXJrc1tdID0gewotCXsgVVNCX1ZFTkRPUl9JRF9XRUlEQSwgVVNCX0RFVklDRV9JRF9XRUlEQV84NzUyLAotCQlJMkNfSElEX1FVSVJLX1NFVF9QV1JfV0FLRVVQX0RFViB9LAotCXsgVVNCX1ZFTkRPUl9JRF9XRUlEQSwgVVNCX0RFVklDRV9JRF9XRUlEQV84NzU1LAorCXsgVVNCX1ZFTkRPUl9JRF9XRUlEQSwgSElEX0FOWV9JRCwKIAkJSTJDX0hJRF9RVUlSS19TRVRfUFdSX1dBS0VVUF9ERVYgfSwKIAl7IEkyQ19WRU5ET1JfSURfSEFOVElDSywgSTJDX1BST0RVQ1RfSURfSEFOVElDS181Mjg4LAogCQlJMkNfSElEX1FVSVJLX05PX0lSUV9BRlRFUl9SRVNFVCB8CmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9pbnRlbC1pc2gtaGlkL2lwYy9ody1pc2guaCBiL2RyaXZlcnMvaGlkL2ludGVsLWlzaC1oaWQvaXBjL2h3LWlzaC5oCmluZGV4IDU3OTJhMTAuLjZjMWU2MTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL2ludGVsLWlzaC1oaWQvaXBjL2h3LWlzaC5oCisrKyBiL2RyaXZlcnMvaGlkL2ludGVsLWlzaC1oaWQvaXBjL2h3LWlzaC5oCkBAIC03OCw1ICs3OCw2IEBAIGlycXJldHVybl90IGlzaF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpOwogc3RydWN0IGlzaHRwX2RldmljZSAqaXNoX2Rldl9pbml0KHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKIGludCBpc2hfaHdfc3RhcnQoc3RydWN0IGlzaHRwX2RldmljZSAqZGV2KTsKIHZvaWQgaXNoX2RldmljZV9kaXNhYmxlKHN0cnVjdCBpc2h0cF9kZXZpY2UgKmRldik7CitpbnQgaXNoX2Rpc2FibGVfZG1hKHN0cnVjdCBpc2h0cF9kZXZpY2UgKmRldik7CiAKICNlbmRpZiAvKiBfSVNIVFBfSFdfSVNIX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9pbnRlbC1pc2gtaGlkL2lwYy9pcGMuYyBiL2RyaXZlcnMvaGlkL2ludGVsLWlzaC1oaWQvaXBjL2lwYy5jCmluZGV4IDE4ZmU4YWYuLjhmOGRmZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL2ludGVsLWlzaC1oaWQvaXBjL2lwYy5jCisrKyBiL2RyaXZlcnMvaGlkL2ludGVsLWlzaC1oaWQvaXBjL2lwYy5jCkBAIC02NzIsNyArNjcyLDcgQEAgaXJxcmV0dXJuX3QgaXNoX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKICAqCiAgKiBSZXR1cm46IDAgZm9yIHN1Y2Nlc3MgZWxzZSBlcnJvciBjb2RlLgogICovCi1zdGF0aWMgaW50IGlzaF9kaXNhYmxlX2RtYShzdHJ1Y3QgaXNodHBfZGV2aWNlICpkZXYpCitpbnQgaXNoX2Rpc2FibGVfZG1hKHN0cnVjdCBpc2h0cF9kZXZpY2UgKmRldikKIHsKIAl1bnNpZ25lZCBpbnQJZG1hX2RlbGF5OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9pbnRlbC1pc2gtaGlkL2lwYy9wY2ktaXNoLmMgYi9kcml2ZXJzL2hpZC9pbnRlbC1pc2gtaGlkL2lwYy9wY2ktaXNoLmMKaW5kZXggMjc5NTY3Yi4uNzg0ZGNjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaW50ZWwtaXNoLWhpZC9pcGMvcGNpLWlzaC5jCisrKyBiL2RyaXZlcnMvaGlkL2ludGVsLWlzaC1oaWQvaXBjL3BjaS1pc2guYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAjZGVmaW5lIENSRUFURV9UUkFDRV9QT0lOVFMKQEAgLTk4LDYgKzk5LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpc2hfaW52YWxpZF9wY2lfaWRzW10gPSB7CiAJe30KIH07CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc2hfc2hvdWxkX2VudGVyX2QwaTMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisJcmV0dXJuICFwbV9zdXNwZW5kX3ZpYV9maXJtd2FyZSgpIHx8IHBkZXYtPmRldmljZSA9PSBDSFZfREVWSUNFX0lEOworfQorCiAvKioKICAqIGlzaF9wcm9iZSgpIC0gUENJIGRyaXZlciBwcm9iZSBjYWxsYmFjawogICogQHBkZXY6CXBjaSBkZXZpY2UKQEAgLTE0OCw3ICsxNTQsNiBAQCBzdGF0aWMgaW50IGlzaF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIAkvKiBtYXBwaW5nIElPIGRldmljZSBtZW1vcnkgKi8KIAlody0+bWVtX2FkZHIgPSBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdOwogCWlzaHRwLT5wZGV2ID0gcGRldjsKLQlwZGV2LT5kZXZfZmxhZ3MgfD0gUENJX0RFVl9GTEFHU19OT19EMzsKIAogCS8qIHJlcXVlc3QgYW5kIGVuYWJsZSBpbnRlcnJ1cHQgKi8KIAlyZXQgPSBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMocGRldiwgMSwgMSwgUENJX0lSUV9BTExfVFlQRVMpOwpAQCAtMTg1LDcgKzE5MCw2IEBAIHN0YXRpYyB2b2lkIGlzaF9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJc3RydWN0IGlzaHRwX2RldmljZSAqaXNodHBfZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCiAJaXNodHBfYnVzX3JlbW92ZV9hbGxfY2xpZW50cyhpc2h0cF9kZXYsIGZhbHNlKTsKLQlwZGV2LT5kZXZfZmxhZ3MgJj0gflBDSV9ERVZfRkxBR1NfTk9fRDM7CiAJaXNoX2RldmljZV9kaXNhYmxlKGlzaHRwX2Rldik7CiB9CiAKQEAgLTIwNywxNyArMjExLDEzIEBAIHN0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkIGlzaF9yZXN1bWVfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGlzaF9yZXN1bWVfZGV2aWNlKTsKIAlzdHJ1Y3QgaXNodHBfZGV2aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7Ci0JdWludDMyX3QgZndzdHM7CiAJaW50IHJldDsKIAotCS8qIEdldCBJU0ggRlcgc3RhdHVzICovCi0JZndzdHMgPSBJUENfR0VUX0lTSF9GV1NUUyhkZXYtPm9wcy0+Z2V0X2Z3X3N0YXR1cyhkZXYpKTsKKwkvKiBDaGVjayB0aGUgTk9fRDMgZmxhZyB0byBkaXN0aW5ndWlzaCB0aGUgcmVzdW1lIHBhdGhzICovCisJaWYgKHBkZXYtPmRldl9mbGFncyAmIFBDSV9ERVZfRkxBR1NfTk9fRDMpIHsKKwkJcGRldi0+ZGV2X2ZsYWdzICY9IH5QQ0lfREVWX0ZMQUdTX05PX0QzOworCQlkaXNhYmxlX2lycV93YWtlKHBkZXYtPmlycSk7CiAKLQkvKgotCSAqIElmIGN1cnJlbnRseSwgaW4gSVNIIEZXLCBzZW5zb3IgYXBwIGlzIGxvYWRlZCBvciBiZXlvbmQgdGhhdCwKLQkgKiBpdCBtZWFucyBJU0ggaXNuJ3QgcG93ZXJlZCBvZmYsIGluIHRoaXMgY2FzZSwgc2VuZCBhIHJlc3VtZSBtZXNzYWdlLgotCSAqLwotCWlmIChmd3N0cyA+PSBGV1NUU19TRU5TT1JfQVBQX0xPQURFRCkgewogCQlpc2h0cF9zZW5kX3Jlc3VtZShkZXYpOwogCiAJCS8qIFdhaXRpbmcgdG8gZ2V0IHJlc3VtZSByZXNwb25zZSAqLwpAQCAtMjI1LDE2ICsyMjUsMjAgQEAgc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQgaXNoX3Jlc3VtZV9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJCXJldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZV90aW1lb3V0KGRldi0+cmVzdW1lX3dhaXQsCiAJCQkJIWRldi0+cmVzdW1lX2ZsYWcsCiAJCQkJbXNlY3NfdG9famlmZmllcyhXQUlUX0ZPUl9SRVNVTUVfQUNLX01TKSk7Ci0JfQogCi0JLyoKLQkgKiBJZiBpbiBJU0ggRlcsIHNlbnNvciBhcHAgaXNuJ3QgbG9hZGVkIHlldCwgb3Igbm8gcmVzdW1lIHJlc3BvbnNlLgotCSAqIFRoYXQgbWVhbnMgdGhpcyBwbGF0Zm9ybSBpcyBub3QgUzBpeCBjb21wYXRpYmxlLCBvciBzb21ldGhpbmcgaXMKLQkgKiB3cm9uZyB3aXRoIElTSCBGVy4gU28gb24gcmVzdW1lLCBmdWxsIHJlYm9vdCBvZiBJU0ggcHJvY2Vzc29yIHdpbGwKLQkgKiBoYXBwZW4sIHNvIG5lZWQgdG8gZ28gdGhyb3VnaCBpbml0IHNlcXVlbmNlIGFnYWluLgotCSAqLwotCWlmIChkZXYtPnJlc3VtZV9mbGFnKQorCQkvKgorCQkgKiBJZiB0aGUgZmxhZyBpcyBub3QgY2xlYXJlZCwgc29tZXRoaW5nIGlzIHdyb25nIHdpdGggSVNIIEZXLgorCQkgKiBTbyBvbiByZXN1bWUsIG5lZWQgdG8gZ28gdGhyb3VnaCBpbml0IHNlcXVlbmNlIGFnYWluLgorCQkgKi8KKwkJaWYgKGRldi0+cmVzdW1lX2ZsYWcpCisJCQlpc2hfaW5pdChkZXYpOworCX0gZWxzZSB7CisJCS8qCisJCSAqIFJlc3VtZSBmcm9tIHRoZSBEMywgZnVsbCByZWJvb3Qgb2YgSVNIIHByb2Nlc3NvciB3aWxsIGhhcHBlbiwKKwkJICogc28gbmVlZCB0byBnbyB0aHJvdWdoIGluaXQgc2VxdWVuY2UgYWdhaW4uCisJCSAqLwogCQlpc2hfaW5pdChkZXYpOworCX0KIH0KIAogLyoqCkBAIC0yNTAsMjMgKzI1NCw0MyBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGlzaF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldmljZSkKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2aWNlKTsKIAlzdHJ1Y3QgaXNodHBfZGV2aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CiAKLQllbmFibGVfaXJxX3dha2UocGRldi0+aXJxKTsKLQkvKgotCSAqIElmIHByZXZpb3VzIHN1c3BlbmQgaGFzbid0IGJlZW4gYXNud2VyZWQgdGhlbiBJU0ggaXMgbGlrZWx5IGRlYWQsCi0JICogZG9uJ3QgYXR0ZW1wdCBuZXN0ZWQgbm90aWZpY2F0aW9uCi0JICovCi0JaWYgKGRldi0+c3VzcGVuZF9mbGFnKQotCQlyZXR1cm4JMDsKKwlpZiAoaXNoX3Nob3VsZF9lbnRlcl9kMGkzKHBkZXYpKSB7CisJCS8qCisJCSAqIElmIHByZXZpb3VzIHN1c3BlbmQgaGFzbid0IGJlZW4gYXNud2VyZWQgdGhlbiBJU0ggaXMgbGlrZWx5CisJCSAqIGRlYWQsIGRvbid0IGF0dGVtcHQgbmVzdGVkIG5vdGlmaWNhdGlvbgorCQkgKi8KKwkJaWYgKGRldi0+c3VzcGVuZF9mbGFnKQorCQkJcmV0dXJuCTA7CiAKLQlkZXYtPnJlc3VtZV9mbGFnID0gMDsKLQlkZXYtPnN1c3BlbmRfZmxhZyA9IDE7Ci0JaXNodHBfc2VuZF9zdXNwZW5kKGRldik7CisJCWRldi0+cmVzdW1lX2ZsYWcgPSAwOworCQlkZXYtPnN1c3BlbmRfZmxhZyA9IDE7CisJCWlzaHRwX3NlbmRfc3VzcGVuZChkZXYpOwogCi0JLyogMjUgbXMgc2hvdWxkIGJlIGVub3VnaCBmb3IgbGl2ZSBJU0ggdG8gZmx1c2ggYWxsIElQQyBidWYgKi8KLQlpZiAoZGV2LT5zdXNwZW5kX2ZsYWcpCi0JCXdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZV90aW1lb3V0KGRldi0+c3VzcGVuZF93YWl0LAotCQkJCQkJICFkZXYtPnN1c3BlbmRfZmxhZywKLQkJCQkJCSAgbXNlY3NfdG9famlmZmllcygyNSkpOworCQkvKiAyNSBtcyBzaG91bGQgYmUgZW5vdWdoIGZvciBsaXZlIElTSCB0byBmbHVzaCBhbGwgSVBDIGJ1ZiAqLworCQlpZiAoZGV2LT5zdXNwZW5kX2ZsYWcpCisJCQl3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dChkZXYtPnN1c3BlbmRfd2FpdCwKKwkJCQkJIWRldi0+c3VzcGVuZF9mbGFnLAorCQkJCQltc2Vjc190b19qaWZmaWVzKDI1KSk7CisKKwkJaWYgKGRldi0+c3VzcGVuZF9mbGFnKSB7CisJCQkvKgorCQkJICogSXQgbG9va3MgbGlrZSBGVyBoYWx0LCBjbGVhciB0aGUgRE1BIGJpdCwgYW5kIHB1dAorCQkJICogSVNIIGludG8gRDMsIGFuZCBGVyB3b3VsZCByZXNldCBvbiByZXN1bWUuCisJCQkgKi8KKwkJCWlzaF9kaXNhYmxlX2RtYShkZXYpOworCQl9IGVsc2UgeworCQkJLyogU2V0IHRoZSBOT19EMyBmbGFnLCB0aGUgSVNIIHdvdWxkIGVudGVyIEQwaTMgKi8KKwkJCXBkZXYtPmRldl9mbGFncyB8PSBQQ0lfREVWX0ZMQUdTX05PX0QzOworCisJCQllbmFibGVfaXJxX3dha2UocGRldi0+aXJxKTsKKwkJfQorCX0gZWxzZSB7CisJCS8qCisJCSAqIENsZWFyIHRoZSBETUEgYml0IGJlZm9yZSBwdXR0aW5nIElTSCBpbnRvIEQzLAorCQkgKiBvciBJU0ggRlcgd291bGQgcmVzZXQgYXV0b21hdGljYWxseS4KKwkJICovCisJCWlzaF9kaXNhYmxlX2RtYShkZXYpOworCX0KIAogCXJldHVybiAwOwogfQpAQCAtMjg4LDcgKzMxMiw2IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgaXNoX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCiAJaXNoX3Jlc3VtZV9kZXZpY2UgPSBkZXZpY2U7CiAJZGV2LT5yZXN1bWVfZmxhZyA9IDE7CiAKLQlkaXNhYmxlX2lycV93YWtlKHBkZXYtPmlycSk7CiAJc2NoZWR1bGVfd29yaygmcmVzdW1lX3dvcmspOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC91c2JoaWQvaGlkZGV2LmMgYi9kcml2ZXJzL2hpZC91c2JoaWQvaGlkZGV2LmMKaW5kZXggNGUxMWNjNi4uMWY5YmM0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvdXNiaGlkL2hpZGRldi5jCisrKyBiL2RyaXZlcnMvaGlkL3VzYmhpZC9oaWRkZXYuYwpAQCAtNDI4LDcgKzQyOCw3IEBAIHN0YXRpYyBfX3BvbGxfdCBoaWRkZXZfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqd2FpdCkKIAogCXBvbGxfd2FpdChmaWxlLCAmbGlzdC0+aGlkZGV2LT53YWl0LCB3YWl0KTsKIAlpZiAobGlzdC0+aGVhZCAhPSBsaXN0LT50YWlsKQotCQlyZXR1cm4gRVBPTExJTiB8IEVQT0xMUkROT1JNOworCQlyZXR1cm4gRVBPTExJTiB8IEVQT0xMUkROT1JNIHwgRVBPTExPVVQ7CiAJaWYgKCFsaXN0LT5oaWRkZXYtPmV4aXN0KQogCQlyZXR1cm4gRVBPTExFUlIgfCBFUE9MTEhVUDsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL3dhY29tX3N5cy5jIGIvZHJpdmVycy9oaWQvd2Fjb21fc3lzLmMKaW5kZXggNTNiZGRiNS4uNWRlZDk0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvd2Fjb21fc3lzLmMKKysrIGIvZHJpdmVycy9oaWQvd2Fjb21fc3lzLmMKQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIHZvaWQgd2Fjb21fd2FjX3F1ZXVlX2ZsdXNoKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LAogfQogCiBzdGF0aWMgaW50IHdhY29tX3dhY19wZW5fc2VyaWFsX2VuZm9yY2Uoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsCi0JCXN0cnVjdCBoaWRfcmVwb3J0ICpyZXBvcnQsIHU4ICpyYXdfZGF0YSwgaW50IHNpemUpCisJCXN0cnVjdCBoaWRfcmVwb3J0ICpyZXBvcnQsIHU4ICpyYXdfZGF0YSwgaW50IHJlcG9ydF9zaXplKQogewogCXN0cnVjdCB3YWNvbSAqd2Fjb20gPSBoaWRfZ2V0X2RydmRhdGEoaGRldik7CiAJc3RydWN0IHdhY29tX3dhYyAqd2Fjb21fd2FjID0gJndhY29tLT53YWNvbV93YWM7CkBAIC0xNDksNyArMTQ5LDggQEAgc3RhdGljIGludCB3YWNvbV93YWNfcGVuX3NlcmlhbF9lbmZvcmNlKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LAogCWlmIChmbHVzaCkKIAkJd2Fjb21fd2FjX3F1ZXVlX2ZsdXNoKGhkZXYsICZ3YWNvbV93YWMtPnBlbl9maWZvKTsKIAllbHNlIGlmIChpbnNlcnQpCi0JCXdhY29tX3dhY19xdWV1ZV9pbnNlcnQoaGRldiwgJndhY29tX3dhYy0+cGVuX2ZpZm8sIHJhd19kYXRhLCBzaXplKTsKKwkJd2Fjb21fd2FjX3F1ZXVlX2luc2VydChoZGV2LCAmd2Fjb21fd2FjLT5wZW5fZmlmbywKKwkJCQkgICAgICAgcmF3X2RhdGEsIHJlcG9ydF9zaXplKTsKIAogCXJldHVybiBpbnNlcnQgJiYgIWZsdXNoOwogfQpAQCAtMjE3Niw3ICsyMTc3LDcgQEAgc3RhdGljIHZvaWQgd2Fjb21fdXBkYXRlX25hbWUoc3RydWN0IHdhY29tICp3YWNvbSwgY29uc3QgY2hhciAqc3VmZml4KQogewogCXN0cnVjdCB3YWNvbV93YWMgKndhY29tX3dhYyA9ICZ3YWNvbS0+d2Fjb21fd2FjOwogCXN0cnVjdCB3YWNvbV9mZWF0dXJlcyAqZmVhdHVyZXMgPSAmd2Fjb21fd2FjLT5mZWF0dXJlczsKLQljaGFyIG5hbWVbV0FDT01fTkFNRV9NQVhdOworCWNoYXIgbmFtZVtXQUNPTV9OQU1FX01BWCAtIDIwXTsgLyogTGVhdmUgc29tZSByb29tIGZvciBzdWZmaXhlcyAqLwogCiAJLyogR2VuZXJpYyBkZXZpY2VzIG5hbWUgdW5zcGVjaWZpZWQgKi8KIAlpZiAoKGZlYXR1cmVzLT50eXBlID09IEhJRF9HRU5FUklDKSAmJiAhc3RyY21wKCJXYWNvbSBISUQiLCBmZWF0dXJlcy0+bmFtZSkpIHsKQEAgLTI3MTgsMTQgKzI3MTksMTIgQEAgc3RhdGljIGludCB3YWNvbV9wcm9iZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwKIAl3YWNvbV93YWMtPmZlYXR1cmVzID0gKigoc3RydWN0IHdhY29tX2ZlYXR1cmVzICopaWQtPmRyaXZlcl9kYXRhKTsKIAlmZWF0dXJlcyA9ICZ3YWNvbV93YWMtPmZlYXR1cmVzOwogCi0JaWYgKGZlYXR1cmVzLT5jaGVja19mb3JfaGlkX3R5cGUgJiYgZmVhdHVyZXMtPmhpZF90eXBlICE9IGhkZXYtPnR5cGUpIHsKLQkJZXJyb3IgPSAtRU5PREVWOwotCQlnb3RvIGZhaWw7Ci0JfQorCWlmIChmZWF0dXJlcy0+Y2hlY2tfZm9yX2hpZF90eXBlICYmIGZlYXR1cmVzLT5oaWRfdHlwZSAhPSBoZGV2LT50eXBlKQorCQlyZXR1cm4gLUVOT0RFVjsKIAogCWVycm9yID0ga2ZpZm9fYWxsb2MoJndhY29tX3dhYy0+cGVuX2ZpZm8sIFdBQ09NX1BLR0xFTl9NQVgsIEdGUF9LRVJORUwpOwogCWlmIChlcnJvcikKLQkJZ290byBmYWlsOworCQlyZXR1cm4gZXJyb3I7CiAKIAl3YWNvbV93YWMtPmhpZF9kYXRhLmlucHV0bW9kZSA9IC0xOwogCXdhY29tX3dhYy0+bW9kZV9yZXBvcnQgPSAtMTsKQEAgLTI3NDMsMTIgKzI3NDIsMTIgQEAgc3RhdGljIGludCB3YWNvbV9wcm9iZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwKIAllcnJvciA9IGhpZF9wYXJzZShoZGV2KTsKIAlpZiAoZXJyb3IpIHsKIAkJaGlkX2VycihoZGV2LCAicGFyc2UgZmFpbGVkXG4iKTsKLQkJZ290byBmYWlsOworCQlyZXR1cm4gZXJyb3I7CiAJfQogCiAJZXJyb3IgPSB3YWNvbV9wYXJzZV9hbmRfcmVnaXN0ZXIod2Fjb20sIGZhbHNlKTsKIAlpZiAoZXJyb3IpCi0JCWdvdG8gZmFpbDsKKwkJcmV0dXJuIGVycm9yOwogCiAJaWYgKGhkZXYtPmJ1cyA9PSBCVVNfQkxVRVRPT1RIKSB7CiAJCWVycm9yID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZoZGV2LT5kZXYsICZkZXZfYXR0cl9zcGVlZCk7CkBAIC0yNzU5LDEwICsyNzU4LDYgQEAgc3RhdGljIGludCB3YWNvbV9wcm9iZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwKIAl9CiAKIAlyZXR1cm4gMDsKLQotZmFpbDoKLQloaWRfc2V0X2RydmRhdGEoaGRldiwgTlVMTCk7Ci0JcmV0dXJuIGVycm9yOwogfQogCiBzdGF0aWMgdm9pZCB3YWNvbV9yZW1vdmUoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYpCkBAIC0yNzkxLDggKzI3ODYsNiBAQCBzdGF0aWMgdm9pZCB3YWNvbV9yZW1vdmUoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYpCiAJCXdhY29tX3JlbGVhc2VfcmVzb3VyY2VzKHdhY29tKTsKIAogCWtmaWZvX2ZyZWUoJndhY29tX3dhYy0+cGVuX2ZpZm8pOwotCi0JaGlkX3NldF9kcnZkYXRhKGhkZXYsIE5VTEwpOwogfQogCiAjaWZkZWYgQ09ORklHX1BNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC93YWNvbV93YWMuYyBiL2RyaXZlcnMvaGlkL3dhY29tX3dhYy5jCmluZGV4IDE3MTMyMzUuLjJiMGE1YjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL3dhY29tX3dhYy5jCisrKyBiL2RyaXZlcnMvaGlkL3dhY29tX3dhYy5jCkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGljIGludCB3YWNvbV9kdHVfaXJxKHN0cnVjdCB3YWNvbV93YWMgKndhY29tKQogCiBzdGF0aWMgaW50IHdhY29tX2R0dXNfaXJxKHN0cnVjdCB3YWNvbV93YWMgKndhY29tKQogewotCWNoYXIgKmRhdGEgPSB3YWNvbS0+ZGF0YTsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gd2Fjb20tPmRhdGE7CiAJc3RydWN0IGlucHV0X2RldiAqaW5wdXQgPSB3YWNvbS0+cGVuX2lucHV0OwogCXVuc2lnbmVkIHNob3J0IHByb3gsIHByZXNzdXJlID0gMDsKIApAQCAtNDgzLDYgKzQ4Myw4IEBAIHN0YXRpYyBpbnQgd2Fjb21faW50dW9zX3BhZChzdHJ1Y3Qgd2Fjb21fd2FjICp3YWNvbSkKIAlpbnQgcmluZzEgPSAwLCByaW5nMiA9IDA7CiAJaW50IHN0cmlwMSA9IDAsIHN0cmlwMiA9IDA7CiAJYm9vbCBwcm94ID0gZmFsc2U7CisJYm9vbCB3cmVuY2ggPSBmYWxzZSwga2V5Ym9hcmQgPSBmYWxzZSwgbXV0ZV90b3VjaCA9IGZhbHNlLCBtZW51ID0gZmFsc2UsCisJICAgICBpbmZvID0gZmFsc2U7CiAKIAkvKiBwYWQgcGFja2V0cy4gV29ya3MgYXMgYSBzZWNvbmQgdG9vbCBhbmQgaXMgYWx3YXlzIGluIHByb3ggKi8KIAlpZiAoIShkYXRhWzBdID09IFdBQ09NX1JFUE9SVF9JTlRVT1NQQUQgfHwgZGF0YVswXSA9PSBXQUNPTV9SRVBPUlRfSU5UVU9TNVBBRCB8fApAQCAtNTEyLDEwICs1MTQsMzIgQEAgc3RhdGljIGludCB3YWNvbV9pbnR1b3NfcGFkKHN0cnVjdCB3YWNvbV93YWMgKndhY29tKQogCQlrZXlzID0gKChkYXRhWzNdICYgMHgxQykgPyAxPDwyIDogMCkgfAogCQkgICAgICAgKChkYXRhWzRdICYgMHhFMCkgPyAxPDwxIDogMCkgfAogCQkgICAgICAgKChkYXRhWzRdICYgMHgwNykgPyAxPDwwIDogMCk7CisJCWtleWJvYXJkID0gISEoZGF0YVs0XSAmIDB4RTApOworCQlpbmZvID0gISEoZGF0YVszXSAmIDB4MUMpOworCisJCWlmIChmZWF0dXJlcy0+b1BpZCkgeworCQkJbXV0ZV90b3VjaCA9ICEhKGRhdGFbNF0gJiAweDA3KTsKKwkJCWlmIChtdXRlX3RvdWNoKQorCQkJCXdhY29tLT5zaGFyZWQtPmlzX3RvdWNoX29uID0KKwkJCQkJIXdhY29tLT5zaGFyZWQtPmlzX3RvdWNoX29uOworCQl9IGVsc2UgeworCQkJd3JlbmNoID0gISEoZGF0YVs0XSAmIDB4MDcpOworCQl9CiAJfSBlbHNlIGlmIChmZWF0dXJlcy0+dHlwZSA9PSBXQUNPTV8yN1FIRCkgewogCQlua2V5cyA9IDM7CiAJCWtleXMgPSBkYXRhWzJdICYgMHgwNzsKIAorCQl3cmVuY2ggPSAhIShkYXRhWzJdICYgMHgwMSk7CisJCWtleWJvYXJkID0gISEoZGF0YVsyXSAmIDB4MDIpOworCisJCWlmIChmZWF0dXJlcy0+b1BpZCkgeworCQkJbXV0ZV90b3VjaCA9ICEhKGRhdGFbMl0gJiAweDA0KTsKKwkJCWlmIChtdXRlX3RvdWNoKQorCQkJCXdhY29tLT5zaGFyZWQtPmlzX3RvdWNoX29uID0KKwkJCQkJIXdhY29tLT5zaGFyZWQtPmlzX3RvdWNoX29uOworCQl9IGVsc2UgeworCQkJbWVudSA9ICEhKGRhdGFbMl0gJiAweDA0KTsKKwkJfQogCQlpbnB1dF9yZXBvcnRfYWJzKGlucHV0LCBBQlNfWCwgYmUxNl90b19jcHVwKChfX2JlMTYgKikmZGF0YVs0XSkpOwogCQlpbnB1dF9yZXBvcnRfYWJzKGlucHV0LCBBQlNfWSwgYmUxNl90b19jcHVwKChfX2JlMTYgKikmZGF0YVs2XSkpOwogCQlpbnB1dF9yZXBvcnRfYWJzKGlucHV0LCBBQlNfWiwgYmUxNl90b19jcHVwKChfX2JlMTYgKikmZGF0YVs4XSkpOwpAQCAtNTYxLDYgKzU4NSw5IEBAIHN0YXRpYyBpbnQgd2Fjb21faW50dW9zX3BhZChzdHJ1Y3Qgd2Fjb21fd2FjICp3YWNvbSkKIAkJCWlmIChmZWF0dXJlcy0+dHlwZSA9PSBXQUNPTV8yMkhEKSB7CiAJCQkJbmtleXMgPSAzOwogCQkJCWtleXMgPSBkYXRhWzldICYgMHgwNzsKKworCQkJCWluZm8gPSAhIShkYXRhWzldICYgMHgwMSk7CisJCQkJd3JlbmNoID0gISEoZGF0YVs5XSAmIDB4MDIpOwogCQkJfQogCQl9IGVsc2UgewogCQkJYnV0dG9ucyA9ICgoZGF0YVs2XSAmIDB4MTApIDw8IDUpICB8CkBAIC01NzIsNyArNTk5LDcgQEAgc3RhdGljIGludCB3YWNvbV9pbnR1b3NfcGFkKHN0cnVjdCB3YWNvbV93YWMgKndhY29tKQogCQlzdHJpcDIgPSAoKGRhdGFbM10gJiAweDFmKSA8PCA4KSB8IGRhdGFbNF07CiAJfQogCi0JcHJveCA9IChidXR0b25zICYgfih+MCA8PCBuYnV0dG9ucykpIHwgKGtleXMgJiB+KH4wIDw8IG5rZXlzKSkgfAorCXByb3ggPSAoYnV0dG9ucyAmIH4ofjBVIDw8IG5idXR0b25zKSkgfCAoa2V5cyAmIH4ofjBVIDw8IG5rZXlzKSkgfAogCSAgICAgICAocmluZzEgJiAweDgwKSB8IChyaW5nMiAmIDB4ODApIHwgc3RyaXAxIHwgc3RyaXAyOwogCiAJd2Fjb21fcmVwb3J0X251bWJlcmVkX2J1dHRvbnMoaW5wdXQsIG5idXR0b25zLCBidXR0b25zKTsKQEAgLTU4MCw2ICs2MDcsMTggQEAgc3RhdGljIGludCB3YWNvbV9pbnR1b3NfcGFkKHN0cnVjdCB3YWNvbV93YWMgKndhY29tKQogCWZvciAoaSA9IDA7IGkgPCBua2V5czsgaSsrKQogCQlpbnB1dF9yZXBvcnRfa2V5KGlucHV0LCBLRVlfUFJPRzEgKyBpLCBrZXlzICYgKDEgPDwgaSkpOwogCisJaW5wdXRfcmVwb3J0X2tleShpbnB1dCwgS0VZX0JVVFRPTkNPTkZJRywgd3JlbmNoKTsKKwlpbnB1dF9yZXBvcnRfa2V5KGlucHV0LCBLRVlfT05TQ1JFRU5fS0VZQk9BUkQsIGtleWJvYXJkKTsKKwlpbnB1dF9yZXBvcnRfa2V5KGlucHV0LCBLRVlfQ09OVFJPTFBBTkVMLCBtZW51KTsKKwlpbnB1dF9yZXBvcnRfa2V5KGlucHV0LCBLRVlfSU5GTywgaW5mbyk7CisKKwlpZiAod2Fjb20tPnNoYXJlZCAmJiB3YWNvbS0+c2hhcmVkLT50b3VjaF9pbnB1dCkgeworCQlpbnB1dF9yZXBvcnRfc3dpdGNoKHdhY29tLT5zaGFyZWQtPnRvdWNoX2lucHV0LAorCQkJCSAgICBTV19NVVRFX0RFVklDRSwKKwkJCQkgICAgIXdhY29tLT5zaGFyZWQtPmlzX3RvdWNoX29uKTsKKwkJaW5wdXRfc3luYyh3YWNvbS0+c2hhcmVkLT50b3VjaF9pbnB1dCk7CisJfQorCiAJaW5wdXRfcmVwb3J0X2FicyhpbnB1dCwgQUJTX1JYLCBzdHJpcDEpOwogCWlucHV0X3JlcG9ydF9hYnMoaW5wdXQsIEFCU19SWSwgc3RyaXAyKTsKIApAQCAtMTQ4Myw2ICsxNTIyLDEyIEBAIHN0YXRpYyBpbnQgd2Fjb21fMjRoZHRfaXJxKHN0cnVjdCB3YWNvbV93YWMgKndhY29tKQogCWludCBieXRlX3Blcl9wYWNrZXQgPSBXQUNPTV9CWVRFU19QRVJfMjRIRFRfUEFDS0VUOwogCWludCB5X29mZnNldCA9IDI7CiAKKwlpZiAod2Fjb20tPnNoYXJlZC0+aGFzX211dGVfdG91Y2hfc3dpdGNoICYmCisJICAgICF3YWNvbS0+c2hhcmVkLT5pc190b3VjaF9vbikgeworCQlpZiAoIXdhY29tLT5zaGFyZWQtPnRvdWNoX2Rvd24pCisJCQlyZXR1cm4gMDsKKwl9CisKIAlpZiAod2Fjb20tPmZlYXR1cmVzLnR5cGUgPT0gV0FDT01fMjdRSERUKSB7CiAJCWN1cnJlbnRfbnVtX2NvbnRhY3RzID0gZGF0YVs2M107CiAJCW51bV9jb250YWN0c19sZWZ0ID0gMTA7CkBAIC0yMDUxLDE0ICsyMDk2LDE0IEBAIHN0YXRpYyB2b2lkIHdhY29tX3dhY19wYWRfZXZlbnQoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsIHN0cnVjdCBoaWRfZmllbGQgKmZpZWxkCiAJCSAgICAoaGRldi0+cHJvZHVjdCA9PSAweDM0ZCB8fCBoZGV2LT5wcm9kdWN0ID09IDB4MzRlIHx8ICAvKiBNb2JpbGVTdHVkaW8gUHJvICovCiAJCSAgICAgaGRldi0+cHJvZHVjdCA9PSAweDM1NyB8fCBoZGV2LT5wcm9kdWN0ID09IDB4MzU4IHx8ICAvKiBJbnR1b3MgUHJvIDIgKi8KIAkJICAgICBoZGV2LT5wcm9kdWN0ID09IDB4MzkyIHx8CQkJCSAgLyogSW50dW9zIFBybyAyICovCi0JCSAgICAgaGRldi0+cHJvZHVjdCA9PSAweDM5OSkpIHsJCQkJICAvKiBNb2JpbGVTdHVkaW8gUHJvICovCisJCSAgICAgaGRldi0+cHJvZHVjdCA9PSAweDM5OCB8fCBoZGV2LT5wcm9kdWN0ID09IDB4Mzk5KSkgeyAvKiBNb2JpbGVTdHVkaW8gUHJvICovCiAJCQl2YWx1ZSA9IChmaWVsZC0+bG9naWNhbF9tYXhpbXVtIC0gdmFsdWUpOwogCiAJCQlpZiAoaGRldi0+cHJvZHVjdCA9PSAweDM1NyB8fCBoZGV2LT5wcm9kdWN0ID09IDB4MzU4IHx8CiAJCQkgICAgaGRldi0+cHJvZHVjdCA9PSAweDM5MikKIAkJCQl2YWx1ZSA9IHdhY29tX29mZnNldF9yb3RhdGlvbihpbnB1dCwgdXNhZ2UsIHZhbHVlLCAzLCAxNik7CiAJCQllbHNlIGlmIChoZGV2LT5wcm9kdWN0ID09IDB4MzRkIHx8IGhkZXYtPnByb2R1Y3QgPT0gMHgzNGUgfHwKLQkJCQkgaGRldi0+cHJvZHVjdCA9PSAweDM5OSkKKwkJCQkgaGRldi0+cHJvZHVjdCA9PSAweDM5OCB8fCBoZGV2LT5wcm9kdWN0ID09IDB4Mzk5KQogCQkJCXZhbHVlID0gd2Fjb21fb2Zmc2V0X3JvdGF0aW9uKGlucHV0LCB1c2FnZSwgdmFsdWUsIDEsIDIpOwogCQl9CiAJCWVsc2UgewpAQCAtMzgxNSw2ICszODYwLDE0IEBAIGludCB3YWNvbV9zZXR1cF90b3VjaF9pbnB1dF9jYXBhYmlsaXRpZXMoc3RydWN0IGlucHV0X2RldiAqaW5wdXRfZGV2LAogCQkvKiBmYWxsIHRocm91Z2ggKi8KIAogCWNhc2UgV0FDT01fMjdRSERUOgorCQlpZiAod2Fjb21fd2FjLT5zaGFyZWQtPnRvdWNoLT5wcm9kdWN0ID09IDB4MzJDIHx8CisJCSAgICB3YWNvbV93YWMtPnNoYXJlZC0+dG91Y2gtPnByb2R1Y3QgPT0gMHhGNikgeworCQkJaW5wdXRfZGV2LT5ldmJpdFswXSB8PSBCSVRfTUFTSyhFVl9TVyk7CisJCQlfX3NldF9iaXQoU1dfTVVURV9ERVZJQ0UsIGlucHV0X2Rldi0+c3diaXQpOworCQkJd2Fjb21fd2FjLT5zaGFyZWQtPmhhc19tdXRlX3RvdWNoX3N3aXRjaCA9IHRydWU7CisJCX0KKwkJLyogZmFsbCB0aHJvdWdoICovCisKIAljYXNlIE1UU0NSRUVOOgogCWNhc2UgTVRUUEM6CiAJY2FzZSBNVFRQQ19COgpAQCAtNDA1MCw2ICs0MTAzLDEyIEBAIGludCB3YWNvbV9zZXR1cF9wYWRfaW5wdXRfY2FwYWJpbGl0aWVzKHN0cnVjdCBpbnB1dF9kZXYgKmlucHV0X2RldiwKIAkJX19zZXRfYml0KEtFWV9QUk9HMiwgaW5wdXRfZGV2LT5rZXliaXQpOwogCQlfX3NldF9iaXQoS0VZX1BST0czLCBpbnB1dF9kZXYtPmtleWJpdCk7CiAKKwkJX19zZXRfYml0KEtFWV9PTlNDUkVFTl9LRVlCT0FSRCwgaW5wdXRfZGV2LT5rZXliaXQpOworCQlfX3NldF9iaXQoS0VZX0lORk8sIGlucHV0X2Rldi0+a2V5Yml0KTsKKworCQlpZiAoIWZlYXR1cmVzLT5vUGlkKQorCQkJX19zZXRfYml0KEtFWV9CVVRUT05DT05GSUcsIGlucHV0X2Rldi0+a2V5Yml0KTsKKwogCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhpbnB1dF9kZXYsIEFCU19XSEVFTCwgMCwgNzEsIDAsIDApOwogCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhpbnB1dF9kZXYsIEFCU19USFJPVFRMRSwgMCwgNzEsIDAsIDApOwogCQlicmVhazsKQEAgLTQwNTgsNiArNDExNywxMiBAQCBpbnQgd2Fjb21fc2V0dXBfcGFkX2lucHV0X2NhcGFiaWxpdGllcyhzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dF9kZXYsCiAJCV9fc2V0X2JpdChLRVlfUFJPRzEsIGlucHV0X2Rldi0+a2V5Yml0KTsKIAkJX19zZXRfYml0KEtFWV9QUk9HMiwgaW5wdXRfZGV2LT5rZXliaXQpOwogCQlfX3NldF9iaXQoS0VZX1BST0czLCBpbnB1dF9kZXYtPmtleWJpdCk7CisKKwkJX19zZXRfYml0KEtFWV9PTlNDUkVFTl9LRVlCT0FSRCwgaW5wdXRfZGV2LT5rZXliaXQpOworCQlfX3NldF9iaXQoS0VZX0JVVFRPTkNPTkZJRywgaW5wdXRfZGV2LT5rZXliaXQpOworCisJCWlmICghZmVhdHVyZXMtPm9QaWQpCisJCQlfX3NldF9iaXQoS0VZX0NPTlRST0xQQU5FTCwgaW5wdXRfZGV2LT5rZXliaXQpOwogCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhpbnB1dF9kZXYsIEFCU19YLCAtMjA0OCwgMjA0OCwgMCwgMCk7CiAJCWlucHV0X2Fic19zZXRfcmVzKGlucHV0X2RldiwgQUJTX1gsIDEwMjQpOyAvKiBwb2ludHMvZyAqLwogCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhpbnB1dF9kZXYsIEFCU19ZLCAtMjA0OCwgMjA0OCwgMCwgMCk7CkBAIC00MDcxLDYgKzQxMzYsOSBAQCBpbnQgd2Fjb21fc2V0dXBfcGFkX2lucHV0X2NhcGFiaWxpdGllcyhzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dF9kZXYsCiAJCV9fc2V0X2JpdChLRVlfUFJPRzEsIGlucHV0X2Rldi0+a2V5Yml0KTsKIAkJX19zZXRfYml0KEtFWV9QUk9HMiwgaW5wdXRfZGV2LT5rZXliaXQpOwogCQlfX3NldF9iaXQoS0VZX1BST0czLCBpbnB1dF9kZXYtPmtleWJpdCk7CisKKwkJX19zZXRfYml0KEtFWV9CVVRUT05DT05GSUcsIGlucHV0X2Rldi0+a2V5Yml0KTsKKwkJX19zZXRfYml0KEtFWV9JTkZPLCBpbnB1dF9kZXYtPmtleWJpdCk7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLwogCiAJY2FzZSBXQUNPTV8yMVVYMjoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHNpL2NsaWVudHMvc3NpX3Byb3RvY29sLmMgYi9kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jCmluZGV4IDAyNTNlNzYuLjM2NWI1ZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHNpL2NsaWVudHMvc3NpX3Byb3RvY29sLmMKKysrIGIvZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYwpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRpYyB2b2lkIHNzaXBfc2V0X3J4c3RhdGUoc3RydWN0IHNzaV9wcm90b2NvbCAqc3NpLCB1bnNpZ25lZCBpbnQgc3RhdGUpCiAJCS8qIENNVCBzcGVlY2ggd29ya2Fyb3VuZCAqLwogCQlpZiAoYXRvbWljX3JlYWQoJnNzaS0+dHhfdXNlY250KSkKIAkJCWJyZWFrOwotCQkvKiBPdGhlcndpc2UgZmFsbCB0aHJvdWdoICovCisJCS8qIEVsc2UsIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgUkVDRUlWSU5HOgogCQltb2RfdGltZXIoJnNzaS0+a2VlcF9hbGl2ZSwgamlmZmllcyArCiAJCQkJCQltc2Vjc190b19qaWZmaWVzKFNTSVBfS0FUT1VUKSk7CkBAIC00NjYsOSArNDY2LDEwIEBAIHN0YXRpYyB2b2lkIHNzaXBfa2VlcF9hbGl2ZShzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAkJY2FzZSBTRU5EX1JFQURZOgogCQkJaWYgKGF0b21pY19yZWFkKCZzc2ktPnR4X3VzZWNudCkgPT0gMCkKIAkJCQlicmVhazsKKwkJCS8qIEZhbGwgdGhyb3VnaCAqLwogCQkJLyoKLQkJCSAqIEZhbGwgdGhyb3VnaC4gV29ya2Fyb3VuZCBmb3IgY210LXNwZWVjaAotCQkJICogaW4gdGhhdCBjYXNlIHdlIHJlbGF5IG9uIGF1ZGlvIHRpbWVycy4KKwkJCSAqIFdvcmthcm91bmQgZm9yIGNtdC1zcGVlY2ggaW4gdGhhdCBjYXNlCisJCQkgKiB3ZSByZWxheSBvbiBhdWRpbyB0aW1lcnMuCiAJCQkgKi8KIAkJY2FzZSBTRU5EX0lETEU6CiAJCQlzcGluX3VubG9jaygmc3NpLT5sb2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHNpL2NvbnRyb2xsZXJzL29tYXBfc3NpX2NvcmUuYyBiL2RyaXZlcnMvaHNpL2NvbnRyb2xsZXJzL29tYXBfc3NpX2NvcmUuYwppbmRleCAwY2JhNTY3Li40YmM0YTIwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9oc2kvY29udHJvbGxlcnMvb21hcF9zc2lfY29yZS5jCisrKyBiL2RyaXZlcnMvaHNpL2NvbnRyb2xsZXJzL29tYXBfc3NpX2NvcmUuYwpAQCAtMzcwLDEwICszNzAsOCBAQCBzdGF0aWMgaW50IHNzaV9hZGRfY29udHJvbGxlcihzdHJ1Y3QgaHNpX2NvbnRyb2xsZXIgKnNzaSwKIAlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfZXJyOwogCWVyciA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkLCAiZ2RkX21wdSIpOwotCWlmIChlcnIgPCAwKSB7Ci0JCWRldl9lcnIoJnBkLT5kZXYsICJHREQgSVJRIHJlc291cmNlIG1pc3NpbmdcbiIpOworCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dF9lcnI7Ci0JfQogCW9tYXBfc3NpLT5nZGRfaXJxID0gZXJyOwogCXRhc2tsZXRfaW5pdCgmb21hcF9zc2ktPmdkZF90YXNrbGV0LCBzc2lfZ2RkX3Rhc2tsZXQsCiAJCQkJCQkJKHVuc2lnbmVkIGxvbmcpc3NpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHNpL2NvbnRyb2xsZXJzL29tYXBfc3NpX3BvcnQuYyBiL2RyaXZlcnMvaHNpL2NvbnRyb2xsZXJzL29tYXBfc3NpX3BvcnQuYwppbmRleCAyY2Q5MzExLi5hMGNiNWJlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9oc2kvY29udHJvbGxlcnMvb21hcF9zc2lfcG9ydC5jCisrKyBiL2RyaXZlcnMvaHNpL2NvbnRyb2xsZXJzL29tYXBfc3NpX3BvcnQuYwpAQCAtMTAzOCwxMCArMTAzOCw4IEBAIHN0YXRpYyBpbnQgc3NpX3BvcnRfaXJxKHN0cnVjdCBoc2lfcG9ydCAqcG9ydCwgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGQpCiAJaW50IGVycjsKIAogCWVyciA9IHBsYXRmb3JtX2dldF9pcnEocGQsIDApOwotCWlmIChlcnIgPCAwKSB7Ci0JCWRldl9lcnIoJnBvcnQtPmRldmljZSwgIlBvcnQgSVJRIHJlc291cmNlIG1pc3NpbmdcbiIpOworCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwotCX0KIAlvbWFwX3BvcnQtPmlycSA9IGVycjsKIAllcnIgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKCZwb3J0LT5kZXZpY2UsIG9tYXBfcG9ydC0+aXJxLCBOVUxMLAogCQkJCXNzaV9waW9fdGhyZWFkLCBJUlFGX09ORVNIT1QsICJTU0kgUE9SVCIsIHBvcnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9odi9jaGFubmVsX21nbXQuYyBiL2RyaXZlcnMvaHYvY2hhbm5lbF9tZ210LmMKaW5kZXggYWRkY2VmNS4uOGViMTY3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9odi9jaGFubmVsX21nbXQuYworKysgYi9kcml2ZXJzL2h2L2NoYW5uZWxfbWdtdC5jCkBAIC00MDcsNyArNDA3LDE1IEBAIHZvaWQgaHZfcHJvY2Vzc19jaGFubmVsX3JlbW92YWwoc3RydWN0IHZtYnVzX2NoYW5uZWwgKmNoYW5uZWwpCiAJCWNwdW1hc2tfY2xlYXJfY3B1KGNoYW5uZWwtPnRhcmdldF9jcHUsCiAJCQkJICAmcHJpbWFyeV9jaGFubmVsLT5hbGxvY2VkX2NwdXNfaW5fbm9kZSk7CiAKLQl2bWJ1c19yZWxlYXNlX3JlbGlkKGNoYW5uZWwtPm9mZmVybXNnLmNoaWxkX3JlbGlkKTsKKwkvKgorCSAqIFVwb24gc3VzcGVuZCwgYW4gaW4tdXNlIGh2X3NvY2sgY2hhbm5lbCBpcyBtYXJrZWQgYXMgInJlc2NpbmRlZCIgYW5kCisJICogdGhlIHJlbGlkIGlzIGludmFsaWRhdGVkOyBhZnRlciBoaWJlcm5hdGlvbiwgd2hlbiB0aGUgdXNlci1zcGFjZSBhcHAKKwkgKiBkZXN0cm95cyB0aGUgY2hhbm5lbCwgdGhlIHJlbGlkIGlzIElOVkFMSURfUkVMSUQsIGFuZCBpbiB0aGlzIGNhc2UKKwkgKiBpdCdzIHVubmVjZXNzYXJ5IGFuZCB1bnNhZmUgdG8gcmVsZWFzZSB0aGUgb2xkIHJlbGlkLCBzaW5jZSB0aGUgc2FtZQorCSAqIHJlbGlkIGNhbiByZWZlciB0byBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGNoYW5uZWwgbm93LgorCSAqLworCWlmIChjaGFubmVsLT5vZmZlcm1zZy5jaGlsZF9yZWxpZCAhPSBJTlZBTElEX1JFTElEKQorCQl2bWJ1c19yZWxlYXNlX3JlbGlkKGNoYW5uZWwtPm9mZmVybXNnLmNoaWxkX3JlbGlkKTsKIAogCWZyZWVfY2hhbm5lbChjaGFubmVsKTsKIH0KQEAgLTU0NSw2ICs1NTMsMTAgQEAgc3RhdGljIHZvaWQgdm1idXNfcHJvY2Vzc19vZmZlcihzdHJ1Y3Qgdm1idXNfY2hhbm5lbCAqbmV3Y2hhbm5lbCkKIAogCW11dGV4X2xvY2soJnZtYnVzX2Nvbm5lY3Rpb24uY2hhbm5lbF9tdXRleCk7CiAKKwkvKiBSZW1lbWJlciB0aGUgY2hhbm5lbHMgdGhhdCBzaG91bGQgYmUgY2xlYW5lZCB1cCB1cG9uIHN1c3BlbmQuICovCisJaWYgKGlzX2h2c29ja19jaGFubmVsKG5ld2NoYW5uZWwpIHx8IGlzX3N1Yl9jaGFubmVsKG5ld2NoYW5uZWwpKQorCQlhdG9taWNfaW5jKCZ2bWJ1c19jb25uZWN0aW9uLm5yX2NoYW5fY2xvc2Vfb25fc3VzcGVuZCk7CisKIAkvKgogCSAqIE5vdyB0aGF0IHdlIGhhdmUgYWNxdWlyZWQgdGhlIGNoYW5uZWxfbXV0ZXgsCiAJICogd2UgY2FuIHJlbGVhc2UgdGhlIHBvdGVudGlhbGx5IHJhY2luZyByZXNjaW5kIHRocmVhZC4KQEAgLTg0Nyw2ICs4NTksNjcgQEAgdm9pZCB2bWJ1c19pbml0aWF0ZV91bmxvYWQoYm9vbCBjcmFzaCkKIAkJdm1idXNfd2FpdF9mb3JfdW5sb2FkKCk7CiB9CiAKK3N0YXRpYyB2b2lkIGNoZWNrX3JlYWR5X2Zvcl9yZXN1bWVfZXZlbnQodm9pZCkKK3sKKwkvKgorCSAqIElmIGFsbCB0aGUgb2xkIHByaW1hcnkgY2hhbm5lbHMgaGF2ZSBiZWVuIGZpeGVkIHVwLCB0aGVuIGl0J3Mgc2FmZQorCSAqIHRvIHJlc3VtZS4KKwkgKi8KKwlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmdm1idXNfY29ubmVjdGlvbi5ucl9jaGFuX2ZpeHVwX29uX3Jlc3VtZSkpCisJCWNvbXBsZXRlKCZ2bWJ1c19jb25uZWN0aW9uLnJlYWR5X2Zvcl9yZXN1bWVfZXZlbnQpOworfQorCitzdGF0aWMgdm9pZCB2bWJ1c19zZXR1cF9jaGFubmVsX3N0YXRlKHN0cnVjdCB2bWJ1c19jaGFubmVsICpjaGFubmVsLAorCQkJCSAgICAgIHN0cnVjdCB2bWJ1c19jaGFubmVsX29mZmVyX2NoYW5uZWwgKm9mZmVyKQoreworCS8qCisJICogU2V0dXAgc3RhdGUgZm9yIHNpZ25hbGxpbmcgdGhlIGhvc3QuCisJICovCisJY2hhbm5lbC0+c2lnX2V2ZW50ID0gVk1CVVNfRVZFTlRfQ09OTkVDVElPTl9JRDsKKworCWlmICh2bWJ1c19wcm90b192ZXJzaW9uICE9IFZFUlNJT05fV1MyMDA4KSB7CisJCWNoYW5uZWwtPmlzX2RlZGljYXRlZF9pbnRlcnJ1cHQgPQorCQkJCShvZmZlci0+aXNfZGVkaWNhdGVkX2ludGVycnVwdCAhPSAwKTsKKwkJY2hhbm5lbC0+c2lnX2V2ZW50ID0gb2ZmZXItPmNvbm5lY3Rpb25faWQ7CisJfQorCisJbWVtY3B5KCZjaGFubmVsLT5vZmZlcm1zZywgb2ZmZXIsCisJICAgICAgIHNpemVvZihzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9vZmZlcl9jaGFubmVsKSk7CisJY2hhbm5lbC0+bW9uaXRvcl9ncnAgPSAodTgpb2ZmZXItPm1vbml0b3JpZCAvIDMyOworCWNoYW5uZWwtPm1vbml0b3JfYml0ID0gKHU4KW9mZmVyLT5tb25pdG9yaWQgJSAzMjsKK30KKworLyoKKyAqIGZpbmRfcHJpbWFyeV9jaGFubmVsX2J5X29mZmVyIC0gR2V0IHRoZSBjaGFubmVsIG9iamVjdCBnaXZlbiB0aGUgbmV3IG9mZmVyLgorICogVGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIHJlc3VtZSBwYXRoIG9mIGhpYmVybmF0aW9uLgorICovCitzdGF0aWMgc3RydWN0IHZtYnVzX2NoYW5uZWwgKgorZmluZF9wcmltYXJ5X2NoYW5uZWxfYnlfb2ZmZXIoY29uc3Qgc3RydWN0IHZtYnVzX2NoYW5uZWxfb2ZmZXJfY2hhbm5lbCAqb2ZmZXIpCit7CisJc3RydWN0IHZtYnVzX2NoYW5uZWwgKmNoYW5uZWwgPSBOVUxMLCAqaXRlcjsKKwljb25zdCBndWlkX3QgKmluc3QxLCAqaW5zdDI7CisKKwkvKiBJZ25vcmUgc3ViLWNoYW5uZWwgb2ZmZXJzLiAqLworCWlmIChvZmZlci0+b2ZmZXIuc3ViX2NoYW5uZWxfaW5kZXggIT0gMCkKKwkJcmV0dXJuIE5VTEw7CisKKwltdXRleF9sb2NrKCZ2bWJ1c19jb25uZWN0aW9uLmNoYW5uZWxfbXV0ZXgpOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpdGVyLCAmdm1idXNfY29ubmVjdGlvbi5jaG5fbGlzdCwgbGlzdGVudHJ5KSB7CisJCWluc3QxID0gJml0ZXItPm9mZmVybXNnLm9mZmVyLmlmX2luc3RhbmNlOworCQlpbnN0MiA9ICZvZmZlci0+b2ZmZXIuaWZfaW5zdGFuY2U7CisKKwkJaWYgKGd1aWRfZXF1YWwoaW5zdDEsIGluc3QyKSkgeworCQkJY2hhbm5lbCA9IGl0ZXI7CisJCQlicmVhazsKKwkJfQorCX0KKworCW11dGV4X3VubG9jaygmdm1idXNfY29ubmVjdGlvbi5jaGFubmVsX211dGV4KTsKKworCXJldHVybiBjaGFubmVsOworfQorCiAvKgogICogdm1idXNfb25vZmZlciAtIEhhbmRsZXIgZm9yIGNoYW5uZWwgb2ZmZXJzIGZyb20gdm1idXMgaW4gcGFyZW50IHBhcnRpdGlvbi4KICAqCkBAIC04NTQsMTIgKzkyNyw1OCBAQCB2b2lkIHZtYnVzX2luaXRpYXRlX3VubG9hZChib29sIGNyYXNoKQogc3RhdGljIHZvaWQgdm1idXNfb25vZmZlcihzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9tZXNzYWdlX2hlYWRlciAqaGRyKQogewogCXN0cnVjdCB2bWJ1c19jaGFubmVsX29mZmVyX2NoYW5uZWwgKm9mZmVyOwotCXN0cnVjdCB2bWJ1c19jaGFubmVsICpuZXdjaGFubmVsOworCXN0cnVjdCB2bWJ1c19jaGFubmVsICpvbGRjaGFubmVsLCAqbmV3Y2hhbm5lbDsKKwlzaXplX3Qgb2ZmZXJfc3o7CiAKIAlvZmZlciA9IChzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9vZmZlcl9jaGFubmVsICopaGRyOwogCiAJdHJhY2Vfdm1idXNfb25vZmZlcihvZmZlcik7CiAKKwlvbGRjaGFubmVsID0gZmluZF9wcmltYXJ5X2NoYW5uZWxfYnlfb2ZmZXIob2ZmZXIpOworCisJaWYgKG9sZGNoYW5uZWwgIT0gTlVMTCkgeworCQlhdG9taWNfZGVjKCZ2bWJ1c19jb25uZWN0aW9uLm9mZmVyX2luX3Byb2dyZXNzKTsKKworCQkvKgorCQkgKiBXZSdyZSByZXN1bWluZyBmcm9tIGhpYmVybmF0aW9uOiBhbGwgdGhlIHN1Yi1jaGFubmVsIGFuZAorCQkgKiBodl9zb2NrIGNoYW5uZWxzIHdlIGhhZCBiZWZvcmUgdGhlIGhpYmVybmF0aW9uIHNob3VsZCBoYXZlCisJCSAqIGJlZW4gY2xlYW5lZCB1cCwgYW5kIG5vdyB3ZSBtdXN0IGJlIHNlZWluZyBhIHJlLW9mZmVyZWQKKwkJICogcHJpbWFyeSBjaGFubmVsIHRoYXQgd2UgaGFkIGJlZm9yZSB0aGUgaGliZXJuYXRpb24uCisJCSAqLworCisJCVdBUk5fT04ob2xkY2hhbm5lbC0+b2ZmZXJtc2cuY2hpbGRfcmVsaWQgIT0gSU5WQUxJRF9SRUxJRCk7CisJCS8qIEZpeCB1cCB0aGUgcmVsaWQuICovCisJCW9sZGNoYW5uZWwtPm9mZmVybXNnLmNoaWxkX3JlbGlkID0gb2ZmZXItPmNoaWxkX3JlbGlkOworCisJCW9mZmVyX3N6ID0gc2l6ZW9mKCpvZmZlcik7CisJCWlmIChtZW1jbXAob2ZmZXIsICZvbGRjaGFubmVsLT5vZmZlcm1zZywgb2ZmZXJfc3opID09IDApIHsKKwkJCWNoZWNrX3JlYWR5X2Zvcl9yZXN1bWVfZXZlbnQoKTsKKwkJCXJldHVybjsKKwkJfQorCisJCS8qCisJCSAqIFRoaXMgaXMgbm90IGFuIGVycm9yLCBzaW5jZSB0aGUgaG9zdCBjYW4gYWxzbyBjaGFuZ2UgdGhlCisJCSAqIG90aGVyIGZpZWxkKHMpIG9mIHRoZSBvZmZlciwgZS5nLiBvbiBXUyBSUzUgKEJ1aWxkIDE3NzYzKSwKKwkJICogdGhlIG9mZmVyLT5jb25uZWN0aW9uX2lkIG9mIHRoZSBNZWxsYW5veCBWRiB2bWJ1cyBkZXZpY2UKKwkJICogY2FuIGNoYW5nZSB3aGVuIHRoZSBob3N0IHJlb2ZmZXJzIHRoZSBkZXZpY2UgdXBvbiByZXN1bWUuCisJCSAqLworCQlwcl9kZWJ1Zygidm1idXMgb2ZmZXIgY2hhbmdlZDogcmVsaWQ9JWRcbiIsCisJCQkgb2ZmZXItPmNoaWxkX3JlbGlkKTsKKworCQlwcmludF9oZXhfZHVtcF9kZWJ1ZygiT2xkIHZtYnVzIG9mZmVyOiAiLCBEVU1QX1BSRUZJWF9PRkZTRVQsCisJCQkJICAgICAxNiwgNCwgJm9sZGNoYW5uZWwtPm9mZmVybXNnLCBvZmZlcl9zeiwKKwkJCQkgICAgIGZhbHNlKTsKKwkJcHJpbnRfaGV4X2R1bXBfZGVidWcoIk5ldyB2bWJ1cyBvZmZlcjogIiwgRFVNUF9QUkVGSVhfT0ZGU0VULAorCQkJCSAgICAgMTYsIDQsIG9mZmVyLCBvZmZlcl9zeiwgZmFsc2UpOworCisJCS8qIEZpeCB1cCB0aGUgb2xkIGNoYW5uZWwuICovCisJCXZtYnVzX3NldHVwX2NoYW5uZWxfc3RhdGUob2xkY2hhbm5lbCwgb2ZmZXIpOworCisJCWNoZWNrX3JlYWR5X2Zvcl9yZXN1bWVfZXZlbnQoKTsKKworCQlyZXR1cm47CisJfQorCiAJLyogQWxsb2NhdGUgdGhlIGNoYW5uZWwgb2JqZWN0IGFuZCBzYXZlIHRoaXMgb2ZmZXIuICovCiAJbmV3Y2hhbm5lbCA9IGFsbG9jX2NoYW5uZWwoKTsKIAlpZiAoIW5ld2NoYW5uZWwpIHsKQEAgLTg2OSwyNSArOTg4LDIxIEBAIHN0YXRpYyB2b2lkIHZtYnVzX29ub2ZmZXIoc3RydWN0IHZtYnVzX2NoYW5uZWxfbWVzc2FnZV9oZWFkZXIgKmhkcikKIAkJcmV0dXJuOwogCX0KIAotCS8qCi0JICogU2V0dXAgc3RhdGUgZm9yIHNpZ25hbGxpbmcgdGhlIGhvc3QuCi0JICovCi0JbmV3Y2hhbm5lbC0+c2lnX2V2ZW50ID0gVk1CVVNfRVZFTlRfQ09OTkVDVElPTl9JRDsKLQotCWlmICh2bWJ1c19wcm90b192ZXJzaW9uICE9IFZFUlNJT05fV1MyMDA4KSB7Ci0JCW5ld2NoYW5uZWwtPmlzX2RlZGljYXRlZF9pbnRlcnJ1cHQgPQotCQkJCShvZmZlci0+aXNfZGVkaWNhdGVkX2ludGVycnVwdCAhPSAwKTsKLQkJbmV3Y2hhbm5lbC0+c2lnX2V2ZW50ID0gb2ZmZXItPmNvbm5lY3Rpb25faWQ7Ci0JfQotCi0JbWVtY3B5KCZuZXdjaGFubmVsLT5vZmZlcm1zZywgb2ZmZXIsCi0JICAgICAgIHNpemVvZihzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9vZmZlcl9jaGFubmVsKSk7Ci0JbmV3Y2hhbm5lbC0+bW9uaXRvcl9ncnAgPSAodTgpb2ZmZXItPm1vbml0b3JpZCAvIDMyOwotCW5ld2NoYW5uZWwtPm1vbml0b3JfYml0ID0gKHU4KW9mZmVyLT5tb25pdG9yaWQgJSAzMjsKKwl2bWJ1c19zZXR1cF9jaGFubmVsX3N0YXRlKG5ld2NoYW5uZWwsIG9mZmVyKTsKIAogCXZtYnVzX3Byb2Nlc3Nfb2ZmZXIobmV3Y2hhbm5lbCk7CiB9CiAKK3N0YXRpYyB2b2lkIGNoZWNrX3JlYWR5X2Zvcl9zdXNwZW5kX2V2ZW50KHZvaWQpCit7CisJLyoKKwkgKiBJZiBhbGwgdGhlIHN1Yi1jaGFubmVscyBvciBodl9zb2NrIGNoYW5uZWxzIGhhdmUgYmVlbiBjbGVhbmVkIHVwLAorCSAqIHRoZW4gaXQncyBzYWZlIHRvIHN1c3BlbmQuCisJICovCisJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJnZtYnVzX2Nvbm5lY3Rpb24ubnJfY2hhbl9jbG9zZV9vbl9zdXNwZW5kKSkKKwkJY29tcGxldGUoJnZtYnVzX2Nvbm5lY3Rpb24ucmVhZHlfZm9yX3N1c3BlbmRfZXZlbnQpOworfQorCiAvKgogICogdm1idXNfb25vZmZlcl9yZXNjaW5kIC0gUmVzY2luZCBvZmZlciBoYW5kbGVyLgogICoKQEAgLTg5OCw2ICsxMDEzLDcgQEAgc3RhdGljIHZvaWQgdm1idXNfb25vZmZlcl9yZXNjaW5kKHN0cnVjdCB2bWJ1c19jaGFubmVsX21lc3NhZ2VfaGVhZGVyICpoZHIpCiAJc3RydWN0IHZtYnVzX2NoYW5uZWxfcmVzY2luZF9vZmZlciAqcmVzY2luZDsKIAlzdHJ1Y3Qgdm1idXNfY2hhbm5lbCAqY2hhbm5lbDsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJYm9vbCBjbGVhbl91cF9jaGFuX2Zvcl9zdXNwZW5kOwogCiAJcmVzY2luZCA9IChzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9yZXNjaW5kX29mZmVyICopaGRyOwogCkBAIC05MzcsNiArMTA1Myw4IEBAIHN0YXRpYyB2b2lkIHZtYnVzX29ub2ZmZXJfcmVzY2luZChzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9tZXNzYWdlX2hlYWRlciAqaGRyKQogCQlyZXR1cm47CiAJfQogCisJY2xlYW5fdXBfY2hhbl9mb3Jfc3VzcGVuZCA9IGlzX2h2c29ja19jaGFubmVsKGNoYW5uZWwpIHx8CisJCQkJICAgIGlzX3N1Yl9jaGFubmVsKGNoYW5uZWwpOwogCS8qCiAJICogQmVmb3JlIHNldHRpbmcgY2hhbm5lbC0+cmVzY2luZCBpbiB2bWJ1c19yZXNjaW5kX2NsZWFudXAoKSwgd2UKIAkgKiBzaG91bGQgbWFrZSBzdXJlIHRoZSBjaGFubmVsIGNhbGxiYWNrIGlzIG5vdCBydW5uaW5nIGFueSBtb3JlLgpAQCAtOTYyLDYgKzEwODAsMTAgQEAgc3RhdGljIHZvaWQgdm1idXNfb25vZmZlcl9yZXNjaW5kKHN0cnVjdCB2bWJ1c19jaGFubmVsX21lc3NhZ2VfaGVhZGVyICpoZHIpCiAJaWYgKGNoYW5uZWwtPmRldmljZV9vYmopIHsKIAkJaWYgKGNoYW5uZWwtPmNobl9yZXNjaW5kX2NhbGxiYWNrKSB7CiAJCQljaGFubmVsLT5jaG5fcmVzY2luZF9jYWxsYmFjayhjaGFubmVsKTsKKworCQkJaWYgKGNsZWFuX3VwX2NoYW5fZm9yX3N1c3BlbmQpCisJCQkJY2hlY2tfcmVhZHlfZm9yX3N1c3BlbmRfZXZlbnQoKTsKKwogCQkJcmV0dXJuOwogCQl9CiAJCS8qCkBAIC05OTQsNiArMTExNiwxMSBAQCBzdGF0aWMgdm9pZCB2bWJ1c19vbm9mZmVyX3Jlc2NpbmQoc3RydWN0IHZtYnVzX2NoYW5uZWxfbWVzc2FnZV9oZWFkZXIgKmhkcikKIAkJfQogCQltdXRleF91bmxvY2soJnZtYnVzX2Nvbm5lY3Rpb24uY2hhbm5lbF9tdXRleCk7CiAJfQorCisJLyogVGhlICJjaGFubmVsIiBtYXkgaGF2ZSBiZWVuIGZyZWVkLiBEbyBub3QgYWNjZXNzIGl0IGFueSBsb25nZXIuICovCisKKwlpZiAoY2xlYW5fdXBfY2hhbl9mb3Jfc3VzcGVuZCkKKwkJY2hlY2tfcmVhZHlfZm9yX3N1c3BlbmRfZXZlbnQoKTsKIH0KIAogdm9pZCB2bWJ1c19odnNvY2tfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IHZtYnVzX2NoYW5uZWwgKmNoYW5uZWwpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h2L2Nvbm5lY3Rpb24uYyBiL2RyaXZlcnMvaHYvY29ubmVjdGlvbi5jCmluZGV4IDA5ODI5ZTEuLjZlNGMwMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHYvY29ubmVjdGlvbi5jCisrKyBiL2RyaXZlcnMvaHYvY29ubmVjdGlvbi5jCkBAIC0yNiw2ICsyNiwxMSBAQAogc3RydWN0IHZtYnVzX2Nvbm5lY3Rpb24gdm1idXNfY29ubmVjdGlvbiA9IHsKIAkuY29ubl9zdGF0ZQkJPSBESVNDT05ORUNURUQsCiAJLm5leHRfZ3BhZGxfaGFuZGxlCT0gQVRPTUlDX0lOSVQoMHhFMUUxMCksCisKKwkucmVhZHlfZm9yX3N1c3BlbmRfZXZlbnQ9IENPTVBMRVRJT05fSU5JVElBTElaRVIoCisJCQkJICB2bWJ1c19jb25uZWN0aW9uLnJlYWR5X2Zvcl9zdXNwZW5kX2V2ZW50KSwKKwkucmVhZHlfZm9yX3Jlc3VtZV9ldmVudAk9IENPTVBMRVRJT05fSU5JVElBTElaRVIoCisJCQkJICB2bWJ1c19jb25uZWN0aW9uLnJlYWR5X2Zvcl9yZXN1bWVfZXZlbnQpLAogfTsKIEVYUE9SVF9TWU1CT0xfR1BMKHZtYnVzX2Nvbm5lY3Rpb24pOwogCkBAIC01OSw4ICs2NCw3IEBAIHN0YXRpYyBfX3UzMiB2bWJ1c19nZXRfbmV4dF92ZXJzaW9uKF9fdTMyIGN1cnJlbnRfdmVyc2lvbikKIAl9CiB9CiAKLXN0YXRpYyBpbnQgdm1idXNfbmVnb3RpYXRlX3ZlcnNpb24oc3RydWN0IHZtYnVzX2NoYW5uZWxfbXNnaW5mbyAqbXNnaW5mbywKLQkJCQkJX191MzIgdmVyc2lvbikKK2ludCB2bWJ1c19uZWdvdGlhdGVfdmVyc2lvbihzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9tc2dpbmZvICptc2dpbmZvLCB1MzIgdmVyc2lvbikKIHsKIAlpbnQgcmV0ID0gMDsKIAl1bnNpZ25lZCBpbnQgY3VyX2NwdTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHYvaHYuYyBiL2RyaXZlcnMvaHYvaHYuYwppbmRleCA2MTg4ZmI3Li5mY2M1Mjc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h2L2h2LmMKKysrIGIvZHJpdmVycy9odi9odi5jCkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBodl9zeW5pY19mcmVlKHZvaWQpCiAgKiByZXRyaWV2ZSB0aGUgaW5pdGlhbGl6ZWQgbWVzc2FnZSBhbmQgZXZlbnQgcGFnZXMuICBPdGhlcndpc2UsIHdlIGNyZWF0ZSBhbmQKICAqIGluaXRpYWxpemUgdGhlIG1lc3NhZ2UgYW5kIGV2ZW50IHBhZ2VzLgogICovCi1pbnQgaHZfc3luaWNfaW5pdCh1bnNpZ25lZCBpbnQgY3B1KQordm9pZCBodl9zeW5pY19lbmFibGVfcmVncyh1bnNpZ25lZCBpbnQgY3B1KQogewogCXN0cnVjdCBodl9wZXJfY3B1X2NvbnRleHQgKmh2X2NwdQogCQk9IHBlcl9jcHVfcHRyKGh2X2NvbnRleHQuY3B1X2NvbnRleHQsIGNwdSk7CkBAIC0xOTYsNiArMTk2LDExIEBAIGludCBodl9zeW5pY19pbml0KHVuc2lnbmVkIGludCBjcHUpCiAJc2N0cmwuZW5hYmxlID0gMTsKIAogCWh2X3NldF9zeW5pY19zdGF0ZShzY3RybC5hc191aW50NjQpOworfQorCitpbnQgaHZfc3luaWNfaW5pdCh1bnNpZ25lZCBpbnQgY3B1KQoreworCWh2X3N5bmljX2VuYWJsZV9yZWdzKGNwdSk7CiAKIAlodl9zdGltZXJfaW5pdChjcHUpOwogCkBAIC0yMDUsMjAgKzIxMCw0NSBAQCBpbnQgaHZfc3luaWNfaW5pdCh1bnNpZ25lZCBpbnQgY3B1KQogLyoKICAqIGh2X3N5bmljX2NsZWFudXAgLSBDbGVhbnVwIHJvdXRpbmUgZm9yIGh2X3N5bmljX2luaXQoKS4KICAqLwotaW50IGh2X3N5bmljX2NsZWFudXAodW5zaWduZWQgaW50IGNwdSkKK3ZvaWQgaHZfc3luaWNfZGlzYWJsZV9yZWdzKHVuc2lnbmVkIGludCBjcHUpCiB7CiAJdW5pb24gaHZfc3luaWNfc2ludCBzaGFyZWRfc2ludDsKIAl1bmlvbiBodl9zeW5pY19zaW1wIHNpbXA7CiAJdW5pb24gaHZfc3luaWNfc2llZnAgc2llZnA7CiAJdW5pb24gaHZfc3luaWNfc2NvbnRyb2wgc2N0cmw7CisKKwlodl9nZXRfc3luaW50X3N0YXRlKFZNQlVTX01FU1NBR0VfU0lOVCwgc2hhcmVkX3NpbnQuYXNfdWludDY0KTsKKworCXNoYXJlZF9zaW50Lm1hc2tlZCA9IDE7CisKKwkvKiBOZWVkIHRvIGNvcnJlY3RseSBjbGVhbnVwIGluIHRoZSBjYXNlIG9mIFNNUCEhISAqLworCS8qIERpc2FibGUgdGhlIGludGVycnVwdCAqLworCWh2X3NldF9zeW5pbnRfc3RhdGUoVk1CVVNfTUVTU0FHRV9TSU5ULCBzaGFyZWRfc2ludC5hc191aW50NjQpOworCisJaHZfZ2V0X3NpbXAoc2ltcC5hc191aW50NjQpOworCXNpbXAuc2ltcF9lbmFibGVkID0gMDsKKwlzaW1wLmJhc2Vfc2ltcF9ncGEgPSAwOworCisJaHZfc2V0X3NpbXAoc2ltcC5hc191aW50NjQpOworCisJaHZfZ2V0X3NpZWZwKHNpZWZwLmFzX3VpbnQ2NCk7CisJc2llZnAuc2llZnBfZW5hYmxlZCA9IDA7CisJc2llZnAuYmFzZV9zaWVmcF9ncGEgPSAwOworCisJaHZfc2V0X3NpZWZwKHNpZWZwLmFzX3VpbnQ2NCk7CisKKwkvKiBEaXNhYmxlIHRoZSBnbG9iYWwgc3luaWMgYml0ICovCisJaHZfZ2V0X3N5bmljX3N0YXRlKHNjdHJsLmFzX3VpbnQ2NCk7CisJc2N0cmwuZW5hYmxlID0gMDsKKwlodl9zZXRfc3luaWNfc3RhdGUoc2N0cmwuYXNfdWludDY0KTsKK30KKworaW50IGh2X3N5bmljX2NsZWFudXAodW5zaWduZWQgaW50IGNwdSkKK3sKIAlzdHJ1Y3Qgdm1idXNfY2hhbm5lbCAqY2hhbm5lbCwgKnNjOwogCWJvb2wgY2hhbm5lbF9mb3VuZCA9IGZhbHNlOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlodl9nZXRfc3luaWNfc3RhdGUoc2N0cmwuYXNfdWludDY0KTsKLQlpZiAoc2N0cmwuZW5hYmxlICE9IDEpCi0JCXJldHVybiAtRUZBVUxUOwotCiAJLyoKIAkgKiBTZWFyY2ggZm9yIGNoYW5uZWxzIHdoaWNoIGFyZSBib3VuZCB0byB0aGUgQ1BVIHdlJ3JlIGFib3V0IHRvCiAJICogY2xlYW51cC4gSW4gY2FzZSB3ZSBmaW5kIG9uZSBhbmQgdm1idXMgaXMgc3RpbGwgY29ubmVjdGVkIHdlIG5lZWQgdG8KQEAgLTI0OSwyOSArMjc5LDcgQEAgaW50IGh2X3N5bmljX2NsZWFudXAodW5zaWduZWQgaW50IGNwdSkKIAogCWh2X3N0aW1lcl9jbGVhbnVwKGNwdSk7CiAKLQlodl9nZXRfc3luaW50X3N0YXRlKFZNQlVTX01FU1NBR0VfU0lOVCwgc2hhcmVkX3NpbnQuYXNfdWludDY0KTsKLQotCXNoYXJlZF9zaW50Lm1hc2tlZCA9IDE7Ci0KLQkvKiBOZWVkIHRvIGNvcnJlY3RseSBjbGVhbnVwIGluIHRoZSBjYXNlIG9mIFNNUCEhISAqLwotCS8qIERpc2FibGUgdGhlIGludGVycnVwdCAqLwotCWh2X3NldF9zeW5pbnRfc3RhdGUoVk1CVVNfTUVTU0FHRV9TSU5ULCBzaGFyZWRfc2ludC5hc191aW50NjQpOwotCi0JaHZfZ2V0X3NpbXAoc2ltcC5hc191aW50NjQpOwotCXNpbXAuc2ltcF9lbmFibGVkID0gMDsKLQlzaW1wLmJhc2Vfc2ltcF9ncGEgPSAwOwotCi0JaHZfc2V0X3NpbXAoc2ltcC5hc191aW50NjQpOwotCi0JaHZfZ2V0X3NpZWZwKHNpZWZwLmFzX3VpbnQ2NCk7Ci0Jc2llZnAuc2llZnBfZW5hYmxlZCA9IDA7Ci0Jc2llZnAuYmFzZV9zaWVmcF9ncGEgPSAwOwotCi0JaHZfc2V0X3NpZWZwKHNpZWZwLmFzX3VpbnQ2NCk7Ci0KLQkvKiBEaXNhYmxlIHRoZSBnbG9iYWwgc3luaWMgYml0ICovCi0Jc2N0cmwuZW5hYmxlID0gMDsKLQlodl9zZXRfc3luaWNfc3RhdGUoc2N0cmwuYXNfdWludDY0KTsKKwlodl9zeW5pY19kaXNhYmxlX3JlZ3MoY3B1KTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9odi9odl9iYWxsb29uLmMgYi9kcml2ZXJzL2h2L2h2X2JhbGxvb24uYwppbmRleCA2ZmI0ZWE1Li4zNGJkNzM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h2L2h2X2JhbGxvb24uYworKysgYi9kcml2ZXJzL2h2L2h2X2JhbGxvb24uYwpAQCAtNDk0LDcgKzQ5NCw3IEBAIGVudW0gaHZfZG1fc3RhdGUgewogCiAKIHN0YXRpYyBfX3U4IHJlY3ZfYnVmZmVyW1BBR0VfU0laRV07Ci1zdGF0aWMgX191OCAqc2VuZF9idWZmZXI7CitzdGF0aWMgX191OCBiYWxsb29uX3VwX3NlbmRfYnVmZmVyW1BBR0VfU0laRV07CiAjZGVmaW5lIFBBR0VTX0lOXzJNCTUxMgogI2RlZmluZSBIQV9DSFVOSyAoMzIgKiAxMDI0KQogCkBAIC0xMjkyLDggKzEyOTIsOCBAQCBzdGF0aWMgdm9pZCBiYWxsb29uX3VwKHN0cnVjdCB3b3JrX3N0cnVjdCAqZHVtbXkpCiAJfQogCiAJd2hpbGUgKCFkb25lKSB7Ci0JCWJsX3Jlc3AgPSAoc3RydWN0IGRtX2JhbGxvb25fcmVzcG9uc2UgKilzZW5kX2J1ZmZlcjsKLQkJbWVtc2V0KHNlbmRfYnVmZmVyLCAwLCBQQUdFX1NJWkUpOworCQltZW1zZXQoYmFsbG9vbl91cF9zZW5kX2J1ZmZlciwgMCwgUEFHRV9TSVpFKTsKKwkJYmxfcmVzcCA9IChzdHJ1Y3QgZG1fYmFsbG9vbl9yZXNwb25zZSAqKWJhbGxvb25fdXBfc2VuZF9idWZmZXI7CiAJCWJsX3Jlc3AtPmhkci50eXBlID0gRE1fQkFMTE9PTl9SRVNQT05TRTsKIAkJYmxfcmVzcC0+aGRyLnNpemUgPSBzaXplb2Yoc3RydWN0IGRtX2JhbGxvb25fcmVzcG9uc2UpOwogCQlibF9yZXNwLT5tb3JlX3BhZ2VzID0gMTsKQEAgLTE1NjQsNTggKzE1NjQsMTggQEAgc3RhdGljIHZvaWQgYmFsbG9vbl9vbmNoYW5uZWxjYWxsYmFjayh2b2lkICpjb250ZXh0KQogCiB9CiAKLXN0YXRpYyBpbnQgYmFsbG9vbl9wcm9iZShzdHJ1Y3QgaHZfZGV2aWNlICpkZXYsCi0JCQljb25zdCBzdHJ1Y3QgaHZfdm1idXNfZGV2aWNlX2lkICpkZXZfaWQpCitzdGF0aWMgaW50IGJhbGxvb25fY29ubmVjdF92c3Aoc3RydWN0IGh2X2RldmljZSAqZGV2KQogewotCWludCByZXQ7Ci0JdW5zaWduZWQgbG9uZyB0OwogCXN0cnVjdCBkbV92ZXJzaW9uX3JlcXVlc3QgdmVyc2lvbl9yZXE7CiAJc3RydWN0IGRtX2NhcGFiaWxpdGllcyBjYXBfbXNnOwotCi0jaWZkZWYgQ09ORklHX01FTU9SWV9IT1RQTFVHCi0JZG9faG90X2FkZCA9IGhvdF9hZGQ7Ci0jZWxzZQotCWRvX2hvdF9hZGQgPSBmYWxzZTsKLSNlbmRpZgotCi0JLyoKLQkgKiBGaXJzdCBhbGxvY2F0ZSBhIHNlbmQgYnVmZmVyLgotCSAqLwotCi0Jc2VuZF9idWZmZXIgPSBrbWFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzZW5kX2J1ZmZlcikKLQkJcmV0dXJuIC1FTk9NRU07CisJdW5zaWduZWQgbG9uZyB0OworCWludCByZXQ7CiAKIAlyZXQgPSB2bWJ1c19vcGVuKGRldi0+Y2hhbm5lbCwgZG1fcmluZ19zaXplLCBkbV9yaW5nX3NpemUsIE5VTEwsIDAsCi0JCQliYWxsb29uX29uY2hhbm5lbGNhbGxiYWNrLCBkZXYpOwotCisJCQkgYmFsbG9vbl9vbmNoYW5uZWxjYWxsYmFjaywgZGV2KTsKIAlpZiAocmV0KQotCQlnb3RvIHByb2JlX2Vycm9yMDsKKwkJcmV0dXJuIHJldDsKIAotCWRtX2RldmljZS5kZXYgPSBkZXY7Ci0JZG1fZGV2aWNlLnN0YXRlID0gRE1fSU5JVElBTElaSU5HOwotCWRtX2RldmljZS5uZXh0X3ZlcnNpb24gPSBEWU5NRU1fUFJPVE9DT0xfVkVSU0lPTl9XSU44OwotCWluaXRfY29tcGxldGlvbigmZG1fZGV2aWNlLmhvc3RfZXZlbnQpOwotCWluaXRfY29tcGxldGlvbigmZG1fZGV2aWNlLmNvbmZpZ19ldmVudCk7Ci0JSU5JVF9MSVNUX0hFQUQoJmRtX2RldmljZS5oYV9yZWdpb25fbGlzdCk7Ci0Jc3Bpbl9sb2NrX2luaXQoJmRtX2RldmljZS5oYV9sb2NrKTsKLQlJTklUX1dPUksoJmRtX2RldmljZS5iYWxsb29uX3dyay53cmssIGJhbGxvb25fdXApOwotCUlOSVRfV09SSygmZG1fZGV2aWNlLmhhX3dyay53cmssIGhvdF9hZGRfcmVxKTsKLQlkbV9kZXZpY2UuaG9zdF9zcGVjaWZpZWRfaGFfcmVnaW9uID0gZmFsc2U7Ci0KLQlkbV9kZXZpY2UudGhyZWFkID0KLQkJIGt0aHJlYWRfcnVuKGRtX3RocmVhZF9mdW5jLCAmZG1fZGV2aWNlLCAiaHZfYmFsbG9vbiIpOwotCWlmIChJU19FUlIoZG1fZGV2aWNlLnRocmVhZCkpIHsKLQkJcmV0ID0gUFRSX0VSUihkbV9kZXZpY2UudGhyZWFkKTsKLQkJZ290byBwcm9iZV9lcnJvcjE7Ci0JfQotCi0jaWZkZWYgQ09ORklHX01FTU9SWV9IT1RQTFVHCi0Jc2V0X29ubGluZV9wYWdlX2NhbGxiYWNrKCZodl9vbmxpbmVfcGFnZSk7Ci0JcmVnaXN0ZXJfbWVtb3J5X25vdGlmaWVyKCZodl9tZW1vcnlfbmIpOwotI2VuZGlmCi0KLQlodl9zZXRfZHJ2ZGF0YShkZXYsICZkbV9kZXZpY2UpOwogCS8qCiAJICogSW5pdGlhdGUgdGhlIGhhbmQgc2hha2Ugd2l0aCB0aGUgaG9zdCBhbmQgbmVnb3RpYXRlCiAJICogYSB2ZXJzaW9uIHRoYXQgdGhlIGhvc3QgY2FuIHN1cHBvcnQuIFdlIHN0YXJ0IHdpdGggdGhlCkBAIC0xNjMxLDE2ICsxNTkxLDE1IEBAIHN0YXRpYyBpbnQgYmFsbG9vbl9wcm9iZShzdHJ1Y3QgaHZfZGV2aWNlICpkZXYsCiAJZG1fZGV2aWNlLnZlcnNpb24gPSB2ZXJzaW9uX3JlcS52ZXJzaW9uLnZlcnNpb247CiAKIAlyZXQgPSB2bWJ1c19zZW5kcGFja2V0KGRldi0+Y2hhbm5lbCwgJnZlcnNpb25fcmVxLAotCQkJCXNpemVvZihzdHJ1Y3QgZG1fdmVyc2lvbl9yZXF1ZXN0KSwKLQkJCQkodW5zaWduZWQgbG9uZylOVUxMLAotCQkJCVZNX1BLVF9EQVRBX0lOQkFORCwgMCk7CisJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBkbV92ZXJzaW9uX3JlcXVlc3QpLAorCQkJICAgICAgICh1bnNpZ25lZCBsb25nKU5VTEwsIFZNX1BLVF9EQVRBX0lOQkFORCwgMCk7CiAJaWYgKHJldCkKLQkJZ290byBwcm9iZV9lcnJvcjI7CisJCWdvdG8gb3V0OwogCiAJdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZG1fZGV2aWNlLmhvc3RfZXZlbnQsIDUqSFopOwogCWlmICh0ID09IDApIHsKIAkJcmV0ID0gLUVUSU1FRE9VVDsKLQkJZ290byBwcm9iZV9lcnJvcjI7CisJCWdvdG8gb3V0OwogCX0KIAogCS8qCkBAIC0xNjQ4LDggKzE2MDcsOCBAQCBzdGF0aWMgaW50IGJhbGxvb25fcHJvYmUoc3RydWN0IGh2X2RldmljZSAqZGV2LAogCSAqIGZhaWwgdGhlIHByb2JlIGZ1bmN0aW9uLgogCSAqLwogCWlmIChkbV9kZXZpY2Uuc3RhdGUgPT0gRE1fSU5JVF9FUlJPUikgewotCQlyZXQgPSAtRVRJTUVET1VUOwotCQlnb3RvIHByb2JlX2Vycm9yMjsKKwkJcmV0ID0gLUVQUk9UTzsKKwkJZ290byBvdXQ7CiAJfQogCiAJcHJfaW5mbygiVXNpbmcgRHluYW1pYyBNZW1vcnkgcHJvdG9jb2wgdmVyc2lvbiAldS4ldVxuIiwKQEAgLTE2ODIsMTYgKzE2NDEsMTUgQEAgc3RhdGljIGludCBiYWxsb29uX3Byb2JlKHN0cnVjdCBodl9kZXZpY2UgKmRldiwKIAljYXBfbXNnLm1heF9wYWdlX251bWJlciA9IC0xOwogCiAJcmV0ID0gdm1idXNfc2VuZHBhY2tldChkZXYtPmNoYW5uZWwsICZjYXBfbXNnLAotCQkJCXNpemVvZihzdHJ1Y3QgZG1fY2FwYWJpbGl0aWVzKSwKLQkJCQkodW5zaWduZWQgbG9uZylOVUxMLAotCQkJCVZNX1BLVF9EQVRBX0lOQkFORCwgMCk7CisJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBkbV9jYXBhYmlsaXRpZXMpLAorCQkJICAgICAgICh1bnNpZ25lZCBsb25nKU5VTEwsIFZNX1BLVF9EQVRBX0lOQkFORCwgMCk7CiAJaWYgKHJldCkKLQkJZ290byBwcm9iZV9lcnJvcjI7CisJCWdvdG8gb3V0OwogCiAJdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZG1fZGV2aWNlLmhvc3RfZXZlbnQsIDUqSFopOwogCWlmICh0ID09IDApIHsKIAkJcmV0ID0gLUVUSU1FRE9VVDsKLQkJZ290byBwcm9iZV9lcnJvcjI7CisJCWdvdG8gb3V0OwogCX0KIAogCS8qCkBAIC0xNjk5LDI1ICsxNjU3LDY1IEBAIHN0YXRpYyBpbnQgYmFsbG9vbl9wcm9iZShzdHJ1Y3QgaHZfZGV2aWNlICpkZXYsCiAJICogZmFpbCB0aGUgcHJvYmUgZnVuY3Rpb24uCiAJICovCiAJaWYgKGRtX2RldmljZS5zdGF0ZSA9PSBETV9JTklUX0VSUk9SKSB7Ci0JCXJldCA9IC1FVElNRURPVVQ7Ci0JCWdvdG8gcHJvYmVfZXJyb3IyOworCQlyZXQgPSAtRVBST1RPOworCQlnb3RvIG91dDsKIAl9CiAKKwlyZXR1cm4gMDsKK291dDoKKwl2bWJ1c19jbG9zZShkZXYtPmNoYW5uZWwpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYmFsbG9vbl9wcm9iZShzdHJ1Y3QgaHZfZGV2aWNlICpkZXYsCisJCQkgY29uc3Qgc3RydWN0IGh2X3ZtYnVzX2RldmljZV9pZCAqZGV2X2lkKQoreworCWludCByZXQ7CisKKyNpZmRlZiBDT05GSUdfTUVNT1JZX0hPVFBMVUcKKwlkb19ob3RfYWRkID0gaG90X2FkZDsKKyNlbHNlCisJZG9faG90X2FkZCA9IGZhbHNlOworI2VuZGlmCisJZG1fZGV2aWNlLmRldiA9IGRldjsKKwlkbV9kZXZpY2Uuc3RhdGUgPSBETV9JTklUSUFMSVpJTkc7CisJZG1fZGV2aWNlLm5leHRfdmVyc2lvbiA9IERZTk1FTV9QUk9UT0NPTF9WRVJTSU9OX1dJTjg7CisJaW5pdF9jb21wbGV0aW9uKCZkbV9kZXZpY2UuaG9zdF9ldmVudCk7CisJaW5pdF9jb21wbGV0aW9uKCZkbV9kZXZpY2UuY29uZmlnX2V2ZW50KTsKKwlJTklUX0xJU1RfSEVBRCgmZG1fZGV2aWNlLmhhX3JlZ2lvbl9saXN0KTsKKwlzcGluX2xvY2tfaW5pdCgmZG1fZGV2aWNlLmhhX2xvY2spOworCUlOSVRfV09SSygmZG1fZGV2aWNlLmJhbGxvb25fd3JrLndyaywgYmFsbG9vbl91cCk7CisJSU5JVF9XT1JLKCZkbV9kZXZpY2UuaGFfd3JrLndyaywgaG90X2FkZF9yZXEpOworCWRtX2RldmljZS5ob3N0X3NwZWNpZmllZF9oYV9yZWdpb24gPSBmYWxzZTsKKworI2lmZGVmIENPTkZJR19NRU1PUllfSE9UUExVRworCXNldF9vbmxpbmVfcGFnZV9jYWxsYmFjaygmaHZfb25saW5lX3BhZ2UpOworCXJlZ2lzdGVyX21lbW9yeV9ub3RpZmllcigmaHZfbWVtb3J5X25iKTsKKyNlbmRpZgorCisJaHZfc2V0X2RydmRhdGEoZGV2LCAmZG1fZGV2aWNlKTsKKworCXJldCA9IGJhbGxvb25fY29ubmVjdF92c3AoZGV2KTsKKwlpZiAocmV0ICE9IDApCisJCXJldHVybiByZXQ7CisKIAlkbV9kZXZpY2Uuc3RhdGUgPSBETV9JTklUSUFMSVpFRDsKLQlsYXN0X3Bvc3RfdGltZSA9IGppZmZpZXM7CisKKwlkbV9kZXZpY2UudGhyZWFkID0KKwkJIGt0aHJlYWRfcnVuKGRtX3RocmVhZF9mdW5jLCAmZG1fZGV2aWNlLCAiaHZfYmFsbG9vbiIpOworCWlmIChJU19FUlIoZG1fZGV2aWNlLnRocmVhZCkpIHsKKwkJcmV0ID0gUFRSX0VSUihkbV9kZXZpY2UudGhyZWFkKTsKKwkJZ290byBwcm9iZV9lcnJvcjsKKwl9CiAKIAlyZXR1cm4gMDsKIAotcHJvYmVfZXJyb3IyOgorcHJvYmVfZXJyb3I6CisJdm1idXNfY2xvc2UoZGV2LT5jaGFubmVsKTsKICNpZmRlZiBDT05GSUdfTUVNT1JZX0hPVFBMVUcKKwl1bnJlZ2lzdGVyX21lbW9yeV9ub3RpZmllcigmaHZfbWVtb3J5X25iKTsKIAlyZXN0b3JlX29ubGluZV9wYWdlX2NhbGxiYWNrKCZodl9vbmxpbmVfcGFnZSk7CiAjZW5kaWYKLQlrdGhyZWFkX3N0b3AoZG1fZGV2aWNlLnRocmVhZCk7Ci0KLXByb2JlX2Vycm9yMToKLQl2bWJ1c19jbG9zZShkZXYtPmNoYW5uZWwpOwotcHJvYmVfZXJyb3IwOgotCWtmcmVlKHNlbmRfYnVmZmVyKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xNzM0LDEyICsxNzMyLDExIEBAIHN0YXRpYyBpbnQgYmFsbG9vbl9yZW1vdmUoc3RydWN0IGh2X2RldmljZSAqZGV2KQogCWNhbmNlbF93b3JrX3N5bmMoJmRtLT5iYWxsb29uX3dyay53cmspOwogCWNhbmNlbF93b3JrX3N5bmMoJmRtLT5oYV93cmsud3JrKTsKIAotCXZtYnVzX2Nsb3NlKGRldi0+Y2hhbm5lbCk7CiAJa3RocmVhZF9zdG9wKGRtLT50aHJlYWQpOwotCWtmcmVlKHNlbmRfYnVmZmVyKTsKKwl2bWJ1c19jbG9zZShkZXYtPmNoYW5uZWwpOwogI2lmZGVmIENPTkZJR19NRU1PUllfSE9UUExVRwotCXJlc3RvcmVfb25saW5lX3BhZ2VfY2FsbGJhY2soJmh2X29ubGluZV9wYWdlKTsKIAl1bnJlZ2lzdGVyX21lbW9yeV9ub3RpZmllcigmaHZfbWVtb3J5X25iKTsKKwlyZXN0b3JlX29ubGluZV9wYWdlX2NhbGxiYWNrKCZodl9vbmxpbmVfcGFnZSk7CiAjZW5kaWYKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZG1fZGV2aWNlLmhhX2xvY2ssIGZsYWdzKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaGFzLCB0bXAsICZkbS0+aGFfcmVnaW9uX2xpc3QsIGxpc3QpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHYvaHlwZXJ2X3ZtYnVzLmggYi9kcml2ZXJzL2h2L2h5cGVydl92bWJ1cy5oCmluZGV4IDUwZWFhMWYuLmFmOTM3OWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHYvaHlwZXJ2X3ZtYnVzLmgKKysrIGIvZHJpdmVycy9odi9oeXBlcnZfdm1idXMuaApAQCAtMTY5LDggKzE2OSwxMCBAQCBleHRlcm4gaW50IGh2X3N5bmljX2FsbG9jKHZvaWQpOwogCiBleHRlcm4gdm9pZCBodl9zeW5pY19mcmVlKHZvaWQpOwogCitleHRlcm4gdm9pZCBodl9zeW5pY19lbmFibGVfcmVncyh1bnNpZ25lZCBpbnQgY3B1KTsKIGV4dGVybiBpbnQgaHZfc3luaWNfaW5pdCh1bnNpZ25lZCBpbnQgY3B1KTsKIAorZXh0ZXJuIHZvaWQgaHZfc3luaWNfZGlzYWJsZV9yZWdzKHVuc2lnbmVkIGludCBjcHUpOwogZXh0ZXJuIGludCBodl9zeW5pY19jbGVhbnVwKHVuc2lnbmVkIGludCBjcHUpOwogCiAvKiBJbnRlcmZhY2UgKi8KQEAgLTI1Niw2ICsyNTgsMzIgQEAgc3RydWN0IHZtYnVzX2Nvbm5lY3Rpb24gewogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3b3JrX3F1ZXVlOwogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpoYW5kbGVfcHJpbWFyeV9jaGFuX3dxOwogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpoYW5kbGVfc3ViX2NoYW5fd3E7CisKKwkvKgorCSAqIFRoZSBudW1iZXIgb2Ygc3ViLWNoYW5uZWxzIGFuZCBodl9zb2NrIGNoYW5uZWxzIHRoYXQgc2hvdWxkIGJlCisJICogY2xlYW5lZCB1cCB1cG9uIHN1c3BlbmQ6IHN1Yi1jaGFubmVscyB3aWxsIGJlIHJlLWNyZWF0ZWQgdXBvbgorCSAqIHJlc3VtZSwgYW5kIGh2X3NvY2sgY2hhbm5lbHMgc2hvdWxkIG5vdCBzdXJ2aXZlIHN1c3BlbmQuCisJICovCisJYXRvbWljX3QgbnJfY2hhbl9jbG9zZV9vbl9zdXNwZW5kOworCS8qCisJICogdm1idXNfYnVzX3N1c3BlbmQoKSB3YWl0cyBmb3IgIm5yX2NoYW5fY2xvc2Vfb25fc3VzcGVuZCIgdG8KKwkgKiBkcm9wIHRvIHplcm8uCisJICovCisJc3RydWN0IGNvbXBsZXRpb24gcmVhZHlfZm9yX3N1c3BlbmRfZXZlbnQ7CisKKwkvKgorCSAqIFRoZSBudW1iZXIgb2YgcHJpbWFyeSBjaGFubmVscyB0aGF0IHNob3VsZCBiZSAiZml4ZWQgdXAiCisJICogdXBvbiByZXN1bWU6IHRoZXNlIGNoYW5uZWxzIGFyZSByZS1vZmZlcmVkIHVwb24gcmVzdW1lLCBhbmQgc29tZQorCSAqIGZpZWxkcyBvZiB0aGUgY2hhbm5lbCBvZmZlcnMgKGkuZS4gY2hpbGRfcmVsaWQgYW5kIGNvbm5lY3Rpb25faWQpCisJICogY2FuIGNoYW5nZSwgc28gdGhlIG9sZCBvZmZlcm1zZyBtdXN0IGJlIGZpeGVkIHVwLCBiZWZvcmUgdGhlIHJlc3VtZQorCSAqIGNhbGxiYWNrcyBvZiB0aGUgVlNDIGRyaXZlcnMgc3RhcnQgdG8gZnVydGhlciB0b3VjaCB0aGUgY2hhbm5lbHMuCisJICovCisJYXRvbWljX3QgbnJfY2hhbl9maXh1cF9vbl9yZXN1bWU7CisJLyoKKwkgKiB2bWJ1c19idXNfcmVzdW1lKCkgd2FpdHMgZm9yICJucl9jaGFuX2ZpeHVwX29uX3Jlc3VtZSIgdG8KKwkgKiBkcm9wIHRvIHplcm8uCisJICovCisJc3RydWN0IGNvbXBsZXRpb24gcmVhZHlfZm9yX3Jlc3VtZV9ldmVudDsKIH07CiAKIApAQCAtMjcwLDYgKzI5OCw4IEBAIHN0cnVjdCB2bWJ1c19tc2dpbmZvIHsKIAogZXh0ZXJuIHN0cnVjdCB2bWJ1c19jb25uZWN0aW9uIHZtYnVzX2Nvbm5lY3Rpb247CiAKK2ludCB2bWJ1c19uZWdvdGlhdGVfdmVyc2lvbihzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9tc2dpbmZvICptc2dpbmZvLCB1MzIgdmVyc2lvbik7CisKIHN0YXRpYyBpbmxpbmUgdm9pZCB2bWJ1c19zZW5kX2ludGVycnVwdCh1MzIgcmVsaWQpCiB7CiAJc3luY19zZXRfYml0KHJlbGlkLCB2bWJ1c19jb25uZWN0aW9uLnNlbmRfaW50X3BhZ2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9odi92bWJ1c19kcnYuYyBiL2RyaXZlcnMvaHYvdm1idXNfZHJ2LmMKaW5kZXggZWJkMzVmYy4uMzkxZjBiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9odi92bWJ1c19kcnYuYworKysgYi9kcml2ZXJzL2h2L3ZtYnVzX2Rydi5jCkBAIC0yNCwxMiArMjQsMTQgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC90YXNrX3N0YWNrLmg+CiAKICNpbmNsdWRlIDxhc20vbXNoeXBlcnYuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+CiAjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NyZWVuX2luZm8uaD4KICNpbmNsdWRlIDxsaW51eC9rZGVidWcuaD4KICNpbmNsdWRlIDxsaW51eC9lZmkuaD4KICNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNjb3JlX29wcy5oPgogI2luY2x1ZGUgPGNsb2Nrc291cmNlL2h5cGVydl90aW1lci5oPgogI2luY2x1ZGUgImh5cGVydl92bWJ1cy5oIgogCkBAIC05MTAsNiArOTEyLDQzIEBAIHN0YXRpYyB2b2lkIHZtYnVzX3NodXRkb3duKHN0cnVjdCBkZXZpY2UgKmNoaWxkX2RldmljZSkKIAkJZHJ2LT5zaHV0ZG93bihkZXYpOwogfQogCisvKgorICogdm1idXNfc3VzcGVuZCAtIFN1c3BlbmQgYSB2bWJ1cyBkZXZpY2UKKyAqLworc3RhdGljIGludCB2bWJ1c19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmNoaWxkX2RldmljZSkKK3sKKwlzdHJ1Y3QgaHZfZHJpdmVyICpkcnY7CisJc3RydWN0IGh2X2RldmljZSAqZGV2ID0gZGV2aWNlX3RvX2h2X2RldmljZShjaGlsZF9kZXZpY2UpOworCisJLyogVGhlIGRldmljZSBtYXkgbm90IGJlIGF0dGFjaGVkIHlldCAqLworCWlmICghY2hpbGRfZGV2aWNlLT5kcml2ZXIpCisJCXJldHVybiAwOworCisJZHJ2ID0gZHJ2X3RvX2h2X2RydihjaGlsZF9kZXZpY2UtPmRyaXZlcik7CisJaWYgKCFkcnYtPnN1c3BlbmQpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKworCXJldHVybiBkcnYtPnN1c3BlbmQoZGV2KTsKK30KKworLyoKKyAqIHZtYnVzX3Jlc3VtZSAtIFJlc3VtZSBhIHZtYnVzIGRldmljZQorICovCitzdGF0aWMgaW50IHZtYnVzX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpjaGlsZF9kZXZpY2UpCit7CisJc3RydWN0IGh2X2RyaXZlciAqZHJ2OworCXN0cnVjdCBodl9kZXZpY2UgKmRldiA9IGRldmljZV90b19odl9kZXZpY2UoY2hpbGRfZGV2aWNlKTsKKworCS8qIFRoZSBkZXZpY2UgbWF5IG5vdCBiZSBhdHRhY2hlZCB5ZXQgKi8KKwlpZiAoIWNoaWxkX2RldmljZS0+ZHJpdmVyKQorCQlyZXR1cm4gMDsKKworCWRydiA9IGRydl90b19odl9kcnYoY2hpbGRfZGV2aWNlLT5kcml2ZXIpOworCWlmICghZHJ2LT5yZXN1bWUpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKworCXJldHVybiBkcnYtPnJlc3VtZShkZXYpOworfQogCiAvKgogICogdm1idXNfZGV2aWNlX3JlbGVhc2UgLSBGaW5hbCBjYWxsYmFjayByZWxlYXNlIG9mIHRoZSB2bWJ1cyBjaGlsZCBkZXZpY2UKQEAgLTkyNSw2ICs5NjQsMTQgQEAgc3RhdGljIHZvaWQgdm1idXNfZGV2aWNlX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2aWNlKQogCWtmcmVlKGh2X2Rldik7CiB9CiAKKy8qCisgKiBOb3RlOiB3ZSBtdXN0IHVzZSBTRVRfTk9JUlFfU1lTVEVNX1NMRUVQX1BNX09QUyByYXRoZXIgdGhhbgorICogU0VUX1NZU1RFTV9TTEVFUF9QTV9PUFM6IHNlZSB0aGUgY29tbWVudCBiZWZvcmUgdm1idXNfYnVzX3BtLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgdm1idXNfcG0gPSB7CisJU0VUX05PSVJRX1NZU1RFTV9TTEVFUF9QTV9PUFModm1idXNfc3VzcGVuZCwgdm1idXNfcmVzdW1lKQorfTsKKwogLyogVGhlIG9uZSBhbmQgb25seSBvbmUgKi8KIHN0YXRpYyBzdHJ1Y3QgYnVzX3R5cGUgIGh2X2J1cyA9IHsKIAkubmFtZSA9CQkidm1idXMiLApAQCAtOTM1LDYgKzk4Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgYnVzX3R5cGUgIGh2X2J1cyA9IHsKIAkudWV2ZW50ID0JCXZtYnVzX3VldmVudCwKIAkuZGV2X2dyb3VwcyA9CQl2bWJ1c19kZXZfZ3JvdXBzLAogCS5kcnZfZ3JvdXBzID0JCXZtYnVzX2Rydl9ncm91cHMsCisJLnBtID0JCQkmdm1idXNfcG0sCiB9OwogCiBzdHJ1Y3Qgb25tZXNzYWdlX3dvcmtfY29udGV4dCB7CkBAIC0xMDIyLDYgKzEwNzAsNDEgQEAgdm9pZCB2bWJ1c19vbl9tc2dfZHBjKHVuc2lnbmVkIGxvbmcgZGF0YSkKIAl2bWJ1c19zaWduYWxfZW9tKG1zZywgbWVzc2FnZV90eXBlKTsKIH0KIAorLyoKKyAqIEZha2UgUkVTQ0lORF9DSEFOTkVMIG1lc3NhZ2VzIHRvIGNsZWFuIHVwIGh2X3NvY2sgY2hhbm5lbHMgYnkgZm9yY2UgZm9yCisgKiBoaWJlcm5hdGlvbiwgYmVjYXVzZSBodl9zb2NrIGNvbm5lY3Rpb25zIGNhbiBub3QgcGVyc2lzdCBhY3Jvc3MgaGliZXJuYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkIHZtYnVzX2ZvcmNlX2NoYW5uZWxfcmVzY2luZGVkKHN0cnVjdCB2bWJ1c19jaGFubmVsICpjaGFubmVsKQoreworCXN0cnVjdCBvbm1lc3NhZ2Vfd29ya19jb250ZXh0ICpjdHg7CisJc3RydWN0IHZtYnVzX2NoYW5uZWxfcmVzY2luZF9vZmZlciAqcmVzY2luZDsKKworCVdBUk5fT04oIWlzX2h2c29ja19jaGFubmVsKGNoYW5uZWwpKTsKKworCS8qCisJICogc2l6ZW9mKCpjdHgpIGlzIHNtYWxsIGFuZCB0aGUgYWxsb2NhdGlvbiBzaG91bGQgcmVhbGx5IG5vdCBmYWlsLAorCSAqIG90aGVyd2lzZSB0aGUgc3RhdGUgb2YgdGhlIGh2X3NvY2sgY29ubmVjdGlvbnMgZW5kcyB1cCBpbiBsaW1iby4KKwkgKi8KKwljdHggPSBremFsbG9jKHNpemVvZigqY3R4KSwgR0ZQX0tFUk5FTCB8IF9fR0ZQX05PRkFJTCk7CisKKwkvKgorCSAqIFNvIGZhciwgdGhlc2UgYXJlIG5vdCByZWFsbHkgdXNlZCBieSBMaW51eC4gSnVzdCBzZXQgdGhlbSB0byB0aGUKKwkgKiByZWFzb25hYmxlIHZhbHVlcyBjb25mb3JtaW5nIHRvIHRoZSBkZWZpbml0aW9ucyBvZiB0aGUgZmllbGRzLgorCSAqLworCWN0eC0+bXNnLmhlYWRlci5tZXNzYWdlX3R5cGUgPSAxOworCWN0eC0+bXNnLmhlYWRlci5wYXlsb2FkX3NpemUgPSBzaXplb2YoKnJlc2NpbmQpOworCisJLyogVGhlc2UgdmFsdWVzIGFyZSBhY3R1YWxseSB1c2VkIGJ5IExpbnV4LiAqLworCXJlc2NpbmQgPSAoc3RydWN0IHZtYnVzX2NoYW5uZWxfcmVzY2luZF9vZmZlciAqKWN0eC0+bXNnLnUucGF5bG9hZDsKKwlyZXNjaW5kLT5oZWFkZXIubXNndHlwZSA9IENIQU5ORUxNU0dfUkVTQ0lORF9DSEFOTkVMT0ZGRVI7CisJcmVzY2luZC0+Y2hpbGRfcmVsaWQgPSBjaGFubmVsLT5vZmZlcm1zZy5jaGlsZF9yZWxpZDsKKworCUlOSVRfV09SSygmY3R4LT53b3JrLCB2bWJ1c19vbm1lc3NhZ2Vfd29yayk7CisKKwlxdWV1ZV93b3JrX29uKHZtYnVzX2Nvbm5lY3Rpb24uY29ubmVjdF9jcHUsCisJCSAgICAgIHZtYnVzX2Nvbm5lY3Rpb24ud29ya19xdWV1ZSwKKwkJICAgICAgJmN0eC0+d29yayk7Cit9CiAKIC8qCiAgKiBEaXJlY3QgY2FsbGJhY2sgZm9yIGNoYW5uZWxzIHVzaW5nIG90aGVyIGRlZmVycmVkIHByb2Nlc3NpbmcKQEAgLTIwNDIsNiArMjEyNSwxMjkgQEAgc3RhdGljIGludCB2bWJ1c19hY3BpX2FkZChzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldmljZSkKIAlyZXR1cm4gcmV0X3ZhbDsKIH0KIAorc3RhdGljIGludCB2bWJ1c19idXNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHZtYnVzX2NoYW5uZWwgKmNoYW5uZWwsICpzYzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJd2hpbGUgKGF0b21pY19yZWFkKCZ2bWJ1c19jb25uZWN0aW9uLm9mZmVyX2luX3Byb2dyZXNzKSAhPSAwKSB7CisJCS8qCisJCSAqIFdlIHdhaXQgaGVyZSB1bnRpbCB0aGUgY29tcGxldGlvbiBvZiBhbnkgY2hhbm5lbAorCQkgKiBvZmZlcnMgdGhhdCBhcmUgY3VycmVudGx5IGluIHByb2dyZXNzLgorCQkgKi8KKwkJbXNsZWVwKDEpOworCX0KKworCW11dGV4X2xvY2soJnZtYnVzX2Nvbm5lY3Rpb24uY2hhbm5lbF9tdXRleCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShjaGFubmVsLCAmdm1idXNfY29ubmVjdGlvbi5jaG5fbGlzdCwgbGlzdGVudHJ5KSB7CisJCWlmICghaXNfaHZzb2NrX2NoYW5uZWwoY2hhbm5lbCkpCisJCQljb250aW51ZTsKKworCQl2bWJ1c19mb3JjZV9jaGFubmVsX3Jlc2NpbmRlZChjaGFubmVsKTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZ2bWJ1c19jb25uZWN0aW9uLmNoYW5uZWxfbXV0ZXgpOworCisJLyoKKwkgKiBXYWl0IHVudGlsIGFsbCB0aGUgc3ViLWNoYW5uZWxzIGFuZCBodl9zb2NrIGNoYW5uZWxzIGhhdmUgYmVlbgorCSAqIGNsZWFuZWQgdXAuIFN1Yi1jaGFubmVscyBzaG91bGQgYmUgZGVzdHJveWVkIHVwb24gc3VzcGVuZCwgb3RoZXJ3aXNlCisJICogdGhleSB3b3VsZCBjb25mbGljdCB3aXRoIHRoZSBuZXcgc3ViLWNoYW5uZWxzIHRoYXQgd2lsbCBiZSBjcmVhdGVkCisJICogaW4gdGhlIHJlc3VtZSBwYXRoLiBodl9zb2NrIGNoYW5uZWxzIHNob3VsZCBhbHNvIGJlIGRlc3Ryb3llZCwgYnV0CisJICogYSBodl9zb2NrIGNoYW5uZWwgb2YgYW4gZXN0YWJsaXNoZWQgaHZfc29jayBjb25uZWN0aW9uIGNhbiBub3QgYmUKKwkgKiByZWFsbHkgZGVzdHJveWVkIHNpbmNlIGl0IG1heSBzdGlsbCBiZSByZWZlcmVuY2VkIGJ5IHRoZSB1c2Vyc3BhY2UKKwkgKiBhcHBsaWNhdGlvbiwgc28gd2UganVzdCBmb3JjZSB0aGUgaHZfc29jayBjaGFubmVsIHRvIGJlIHJlc2NpbmRlZAorCSAqIGJ5IHZtYnVzX2ZvcmNlX2NoYW5uZWxfcmVzY2luZGVkKCksIGFuZCB0aGUgdXNlcnNwYWNlIGFwcGxpY2F0aW9uCisJICogd2lsbCB0aG9yb3VnaGx5IGRlc3Ryb3kgdGhlIGNoYW5uZWwgYWZ0ZXIgaGliZXJuYXRpb24uCisJICoKKwkgKiBOb3RlOiB0aGUgY291bnRlciBucl9jaGFuX2Nsb3NlX29uX3N1c3BlbmQgbWF5IG5ldmVyIGdvIGFib3ZlIDAgaWYKKwkgKiB0aGUgVk0gaGFzIG5vIHN1Yi1jaGFubmVsIGFuZCBodl9zb2NrIGNoYW5uZWwsIGUuZy4gYSAxLXZDUFUgVk0uCisJICovCisJaWYgKGF0b21pY19yZWFkKCZ2bWJ1c19jb25uZWN0aW9uLm5yX2NoYW5fY2xvc2Vfb25fc3VzcGVuZCkgPiAwKQorCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZ2bWJ1c19jb25uZWN0aW9uLnJlYWR5X2Zvcl9zdXNwZW5kX2V2ZW50KTsKKworCVdBUk5fT04oYXRvbWljX3JlYWQoJnZtYnVzX2Nvbm5lY3Rpb24ubnJfY2hhbl9maXh1cF9vbl9yZXN1bWUpICE9IDApOworCisJbXV0ZXhfbG9jaygmdm1idXNfY29ubmVjdGlvbi5jaGFubmVsX211dGV4KTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2hhbm5lbCwgJnZtYnVzX2Nvbm5lY3Rpb24uY2huX2xpc3QsIGxpc3RlbnRyeSkgeworCQkvKgorCQkgKiBJbnZhbGlkYXRlIHRoZSBmaWVsZC4gVXBvbiByZXN1bWUsIHZtYnVzX29ub2ZmZXIoKSB3aWxsIGZpeAorCQkgKiB1cCB0aGUgZmllbGQsIGFuZCB0aGUgb3RoZXIgZmllbGRzIChpZiBuZWNlc3NhcnkpLgorCQkgKi8KKwkJY2hhbm5lbC0+b2ZmZXJtc2cuY2hpbGRfcmVsaWQgPSBJTlZBTElEX1JFTElEOworCisJCWlmIChpc19odnNvY2tfY2hhbm5lbChjaGFubmVsKSkgeworCQkJaWYgKCFjaGFubmVsLT5yZXNjaW5kKSB7CisJCQkJcHJfZXJyKCJodl9zb2NrIGNoYW5uZWwgbm90IHJlc2NpbmRlZCFcbiIpOworCQkJCVdBUk5fT05fT05DRSgxKTsKKwkJCX0KKwkJCWNvbnRpbnVlOworCQl9CisKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmNoYW5uZWwtPmxvY2ssIGZsYWdzKTsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShzYywgJmNoYW5uZWwtPnNjX2xpc3QsIHNjX2xpc3QpIHsKKwkJCXByX2VycigiU3ViLWNoYW5uZWwgbm90IGRlbGV0ZWQhXG4iKTsKKwkJCVdBUk5fT05fT05DRSgxKTsKKwkJfQorCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGFubmVsLT5sb2NrLCBmbGFncyk7CisKKwkJYXRvbWljX2luYygmdm1idXNfY29ubmVjdGlvbi5ucl9jaGFuX2ZpeHVwX29uX3Jlc3VtZSk7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZ2bWJ1c19jb25uZWN0aW9uLmNoYW5uZWxfbXV0ZXgpOworCisJdm1idXNfaW5pdGlhdGVfdW5sb2FkKGZhbHNlKTsKKworCXZtYnVzX2Nvbm5lY3Rpb24uY29ubl9zdGF0ZSA9IERJU0NPTk5FQ1RFRDsKKworCS8qIFJlc2V0IHRoZSBldmVudCBmb3IgdGhlIG5leHQgcmVzdW1lLiAqLworCXJlaW5pdF9jb21wbGV0aW9uKCZ2bWJ1c19jb25uZWN0aW9uLnJlYWR5X2Zvcl9yZXN1bWVfZXZlbnQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdm1idXNfYnVzX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHZtYnVzX2NoYW5uZWxfbXNnaW5mbyAqbXNnaW5mbzsKKwlzaXplX3QgbXNnc2l6ZTsKKwlpbnQgcmV0OworCisJLyoKKwkgKiBXZSBvbmx5IHVzZSB0aGUgJ3ZtYnVzX3Byb3RvX3ZlcnNpb24nLCB3aGljaCB3YXMgaW4gdXNlIGJlZm9yZQorCSAqIGhpYmVybmF0aW9uLCB0byByZS1uZWdvdGlhdGUgd2l0aCB0aGUgaG9zdC4KKwkgKi8KKwlpZiAodm1idXNfcHJvdG9fdmVyc2lvbiA9PSBWRVJTSU9OX0lOVkFMIHx8CisJICAgIHZtYnVzX3Byb3RvX3ZlcnNpb24gPT0gMCkgeworCQlwcl9lcnIoIkludmFsaWQgcHJvdG8gdmVyc2lvbiA9IDB4JXhcbiIsIHZtYnVzX3Byb3RvX3ZlcnNpb24pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwltc2dzaXplID0gc2l6ZW9mKCptc2dpbmZvKSArCisJCSAgc2l6ZW9mKHN0cnVjdCB2bWJ1c19jaGFubmVsX2luaXRpYXRlX2NvbnRhY3QpOworCisJbXNnaW5mbyA9IGt6YWxsb2MobXNnc2l6ZSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAobXNnaW5mbyA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJldCA9IHZtYnVzX25lZ290aWF0ZV92ZXJzaW9uKG1zZ2luZm8sIHZtYnVzX3Byb3RvX3ZlcnNpb24pOworCisJa2ZyZWUobXNnaW5mbyk7CisKKwlpZiAocmV0ICE9IDApCisJCXJldHVybiByZXQ7CisKKwlXQVJOX09OKGF0b21pY19yZWFkKCZ2bWJ1c19jb25uZWN0aW9uLm5yX2NoYW5fZml4dXBfb25fcmVzdW1lKSA9PSAwKTsKKworCXZtYnVzX3JlcXVlc3Rfb2ZmZXJzKCk7CisKKwl3YWl0X2Zvcl9jb21wbGV0aW9uKCZ2bWJ1c19jb25uZWN0aW9uLnJlYWR5X2Zvcl9yZXN1bWVfZXZlbnQpOworCisJLyogUmVzZXQgdGhlIGV2ZW50IGZvciB0aGUgbmV4dCBzdXNwZW5kLiAqLworCXJlaW5pdF9jb21wbGV0aW9uKCZ2bWJ1c19jb25uZWN0aW9uLnJlYWR5X2Zvcl9zdXNwZW5kX2V2ZW50KTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkIHZtYnVzX2FjcGlfZGV2aWNlX2lkc1tdID0gewogCXsiVk1CVVMiLCAwfSwKIAl7IlZNQnVzIiwgMH0sCkBAIC0yMDQ5LDYgKzIyNTUsMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCB2bWJ1c19hY3BpX2RldmljZV9pZHNbXSA9IHsKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKGFjcGksIHZtYnVzX2FjcGlfZGV2aWNlX2lkcyk7CiAKKy8qCisgKiBOb3RlOiB3ZSBtdXN0IHVzZSBTRVRfTk9JUlFfU1lTVEVNX1NMRUVQX1BNX09QUyByYXRoZXIgdGhhbgorICogU0VUX1NZU1RFTV9TTEVFUF9QTV9PUFMsIG90aGVyd2lzZSBOSUMgU1ItSU9WIGNhbiBub3Qgd29yaywgYmVjYXVzZSB0aGUKKyAqICJwY2lfZGV2X3BtX29wcyIgdXNlcyB0aGUgIm5vaXJxIiBjYWxsYmFja3M6IGluIHRoZSByZXN1bWUgcGF0aCwgdGhlCisgKiBwY2kgIm5vaXJxIiByZXN0b3JlIGNhbGxiYWNrIHJ1bnMgYmVmb3JlICJub24tbm9pcnEiIGNhbGxiYWNrcyAoc2VlCisgKiByZXN1bWVfdGFyZ2V0X2tlcm5lbCgpIC0+IGRwbV9yZXN1bWVfc3RhcnQoKSwgYW5kIGhpYmVybmF0aW9uX3Jlc3RvcmUoKSAtPgorICogZHBtX3Jlc3VtZV9lbmQoKSkuIFRoaXMgbWVhbnMgdm1idXNfYnVzX3Jlc3VtZSgpIGFuZCB0aGUgcGNpLWh5cGVydidzCisgKiByZXN1bWUgY2FsbGJhY2sgbXVzdCBhbHNvIHJ1biB2aWEgdGhlICJub2lycSIgY2FsbGJhY2tzLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgdm1idXNfYnVzX3BtID0geworCVNFVF9OT0lSUV9TWVNURU1fU0xFRVBfUE1fT1BTKHZtYnVzX2J1c19zdXNwZW5kLCB2bWJ1c19idXNfcmVzdW1lKQorfTsKKwogc3RhdGljIHN0cnVjdCBhY3BpX2RyaXZlciB2bWJ1c19hY3BpX2RyaXZlciA9IHsKIAkubmFtZSA9ICJ2bWJ1cyIsCiAJLmlkcyA9IHZtYnVzX2FjcGlfZGV2aWNlX2lkcywKQEAgLTIwNTYsNiArMjI3NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYWNwaV9kcml2ZXIgdm1idXNfYWNwaV9kcml2ZXIgPSB7CiAJCS5hZGQgPSB2bWJ1c19hY3BpX2FkZCwKIAkJLnJlbW92ZSA9IHZtYnVzX2FjcGlfcmVtb3ZlLAogCX0sCisJLmRydi5wbSA9ICZ2bWJ1c19idXNfcG0sCiB9OwogCiBzdGF0aWMgdm9pZCBodl9rZXhlY19oYW5kbGVyKHZvaWQpCkBAIC0yMDg2LDYgKzIzMDYsNDcgQEAgc3RhdGljIHZvaWQgaHZfY3Jhc2hfaGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAloeXBlcnZfY2xlYW51cCgpOwogfTsKIAorc3RhdGljIGludCBodl9zeW5pY19zdXNwZW5kKHZvaWQpCit7CisJLyoKKwkgKiBXaGVuIHdlIHJlYWNoIGhlcmUsIGFsbCB0aGUgbm9uLWJvb3QgQ1BVcyBoYXZlIGJlZW4gb2ZmbGluZWQsIGFuZAorCSAqIHRoZSBzdGltZXJzIG9uIHRoZW0gaGF2ZSBiZWVuIHVuYm91bmQgaW4gaHZfc3luaWNfY2xlYW51cCgpIC0+CisJICogaHZfc3RpbWVyX2NsZWFudXAoKSAtPiBjbG9ja2V2ZW50c191bmJpbmRfZGV2aWNlKCkuCisJICoKKwkgKiBodl9zeW5pY19zdXNwZW5kKCkgb25seSBydW5zIG9uIENQVTAgd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkLiBIZXJlCisJICogd2UgZG8gbm90IHVuYmluZCB0aGUgc3RpbWVyIG9uIENQVTAgYmVjYXVzZTogMSkgaXQncyB1bm5lY2Vzc2FyeQorCSAqIGJlY2F1c2UgdGhlIGludGVycnVwdHMgcmVtYWluIGRpc2FibGVkIGJldHdlZW4gc3lzY29yZV9zdXNwZW5kKCkKKwkgKiBhbmQgc3lzY29yZV9yZXN1bWUoKTogc2VlIGNyZWF0ZV9pbWFnZSgpIGFuZCByZXN1bWVfdGFyZ2V0X2tlcm5lbCgpOworCSAqIDIpIHRoZSBzdGltZXIgb24gQ1BVMCBpcyBhdXRvbWF0aWNhbGx5IGRpc2FibGVkIGxhdGVyIGJ5CisJICogc3lzY29yZV9zdXNwZW5kKCkgLT4gdGltZWtlZXBpbmdfc3VzcGVuZCgpIC0+IHRpY2tfc3VzcGVuZCgpIC0+IC4uLgorCSAqIC0+IGNsb2NrZXZlbnRzX3NodXRkb3duKCkgLT4gLi4uIC0+IGh2X2NlX3NodXRkb3duKCk7IDMpIGEgd2FybmluZworCSAqIHdvdWxkIGJlIHRyaWdnZXJlZCBpZiB3ZSBjYWxsIGNsb2NrZXZlbnRzX3VuYmluZF9kZXZpY2UoKSwgd2hpY2gKKwkgKiBtYXkgc2xlZXAsIGluIGFuIGludGVycnVwdHMtZGlzYWJsZWQgY29udGV4dC4gU28sIHdlIGludGVudGlvbmFsbHkKKwkgKiBkb24ndCBjYWxsIGh2X3N0aW1lcl9jbGVhbnVwKDApIGhlcmUuCisJICovCisKKwlodl9zeW5pY19kaXNhYmxlX3JlZ3MoMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaHZfc3luaWNfcmVzdW1lKHZvaWQpCit7CisJaHZfc3luaWNfZW5hYmxlX3JlZ3MoMCk7CisKKwkvKgorCSAqIE5vdGU6IHdlIGRvbid0IG5lZWQgdG8gY2FsbCBodl9zdGltZXJfaW5pdCgwKSwgYmVjYXVzZSB0aGUgdGltZXIKKwkgKiBvbiBDUFUwIGlzIG5vdCB1bmJvdW5kIGluIGh2X3N5bmljX3N1c3BlbmQoKSwgYW5kIHRoZSB0aW1lciBpcworCSAqIGF1dG9tYXRpY2FsbHkgcmUtZW5hYmxlZCBpbiB0aW1la2VlcGluZ19yZXN1bWUoKS4KKwkgKi8KK30KKworLyogVGhlIGNhbGxiYWNrcyBydW4gb25seSBvbiBDUFUwLCB3aXRoIGlycXNfZGlzYWJsZWQuICovCitzdGF0aWMgc3RydWN0IHN5c2NvcmVfb3BzIGh2X3N5bmljX3N5c2NvcmVfb3BzID0geworCS5zdXNwZW5kID0gaHZfc3luaWNfc3VzcGVuZCwKKwkucmVzdW1lID0gaHZfc3luaWNfcmVzdW1lLAorfTsKKwogc3RhdGljIGludCBfX2luaXQgaHZfYWNwaV9pbml0KHZvaWQpCiB7CiAJaW50IHJldCwgdDsKQEAgLTIxMTYsNiArMjM3Nyw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGh2X2FjcGlfaW5pdCh2b2lkKQogCWh2X3NldHVwX2tleGVjX2hhbmRsZXIoaHZfa2V4ZWNfaGFuZGxlcik7CiAJaHZfc2V0dXBfY3Jhc2hfaGFuZGxlcihodl9jcmFzaF9oYW5kbGVyKTsKIAorCXJlZ2lzdGVyX3N5c2NvcmVfb3BzKCZodl9zeW5pY19zeXNjb3JlX29wcyk7CisKIAlyZXR1cm4gMDsKIAogY2xlYW51cDoKQEAgLTIxMjgsNiArMjM5MSw4IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCB2bWJ1c19leGl0KHZvaWQpCiB7CiAJaW50IGNwdTsKIAorCXVucmVnaXN0ZXJfc3lzY29yZV9vcHMoJmh2X3N5bmljX3N5c2NvcmVfb3BzKTsKKwogCWh2X3JlbW92ZV9rZXhlY19oYW5kbGVyKCk7CiAJaHZfcmVtb3ZlX2NyYXNoX2hhbmRsZXIoKTsKIAl2bWJ1c19jb25uZWN0aW9uLmNvbm5fc3RhdGUgPSBESVNDT05ORUNURUQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL0tjb25maWcgYi9kcml2ZXJzL2h3bW9uL0tjb25maWcKaW5kZXggMmNhNTY2OC4uMTNhNmI0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9LY29uZmlnCisrKyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwpAQCAtNjcwLDE2ICs2NzAsNiBAQAogCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuIElmIHNvLCB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBpdDg3LgogCi1jb25maWcgU0VOU09SU19KWjQ3NDAKLQl0cmlzdGF0ZSAiSW5nZW5pYyBKWjQ3NDAgU29DIEFEQyBkcml2ZXIiCi0JZGVwZW5kcyBvbiBNQUNIX0paNDc0MCAmJiBNRkRfSlo0NzQwX0FEQwotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciByZWFkaW5nIGFkYyB2YWx1ZXMgZnJvbSB0aGUgQURDSU4KLQkgIHBpbiBvbiBJbmdlbmljIEpaNDc0MCBTb0MgYmFzZWQgYm9hcmRzLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gSWYgc28sIHRoZSBtb2R1bGUgd2lsbCBiZQotCSAgY2FsbGVkIGp6NDc0MC1od21vbi4KLQogY29uZmlnIFNFTlNPUlNfSkM0MgogCXRyaXN0YXRlICJKRURFQyBKQzQyLjQgY29tcGxpYW50IG1lbW9yeSBtb2R1bGUgdGVtcGVyYXR1cmUgc2Vuc29ycyIKIAlkZXBlbmRzIG9uIEkyQwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9NYWtlZmlsZSBiL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKaW5kZXggYzg2Y2U0ZC4uNDBjMDM2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCkBAIC04NSw3ICs4NSw2IEBACiBvYmotJChDT05GSUdfU0VOU09SU19JTkEzMjIxKQkrPSBpbmEzMjIxLm8KIG9iai0kKENPTkZJR19TRU5TT1JTX0lUODcpCSs9IGl0ODcubwogb2JqLSQoQ09ORklHX1NFTlNPUlNfSkM0MikJKz0gamM0Mi5vCi1vYmotJChDT05GSUdfU0VOU09SU19KWjQ3NDApCSs9IGp6NDc0MC1od21vbi5vCiBvYmotJChDT05GSUdfU0VOU09SU19LOFRFTVApCSs9IGs4dGVtcC5vCiBvYmotJChDT05GSUdfU0VOU09SU19LMTBURU1QKQkrPSBrMTB0ZW1wLm8KIG9iai0kKENPTkZJR19TRU5TT1JTX0xJTkVBR0UpCSs9IGxpbmVhZ2UtcGVtLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vano0NzQwLWh3bW9uLmMgYi9kcml2ZXJzL2h3bW9uL2p6NDc0MC1od21vbi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZWM1YmVmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvaHdtb24vano0NzQwLWh3bW9uLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Ci0gKiBKWjQ3NDAgU29DIEhXTU9OIGRyaXZlcgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9pby5oPgotCi0jaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jb3JlLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC9od21vbi5oPgotCi1zdHJ1Y3Qgano0NzQwX2h3bW9uIHsKLQl2b2lkIF9faW9tZW0gKmJhc2U7Ci0JaW50IGlycTsKLQljb25zdCBzdHJ1Y3QgbWZkX2NlbGwgKmNlbGw7Ci0Jc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKLQlzdHJ1Y3QgY29tcGxldGlvbiByZWFkX2NvbXBsZXRpb247Ci0Jc3RydWN0IG11dGV4IGxvY2s7Ci19OwotCi1zdGF0aWMgaXJxcmV0dXJuX3Qgano0NzQwX2h3bW9uX2lycShpbnQgaXJxLCB2b2lkICpkYXRhKQotewotCXN0cnVjdCBqejQ3NDBfaHdtb24gKmh3bW9uID0gZGF0YTsKLQotCWNvbXBsZXRlKCZod21vbi0+cmVhZF9jb21wbGV0aW9uKTsKLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyBzc2l6ZV90IGluMF9pbnB1dF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCSAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZfYXR0ciwgY2hhciAqYnVmKQotewotCXN0cnVjdCBqejQ3NDBfaHdtb24gKmh3bW9uID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0Jc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IGh3bW9uLT5wZGV2OwotCXN0cnVjdCBjb21wbGV0aW9uICpjb21wbGV0aW9uID0gJmh3bW9uLT5yZWFkX2NvbXBsZXRpb247Ci0JbG9uZyB0OwotCXVuc2lnbmVkIGxvbmcgdmFsOwotCWludCByZXQ7Ci0KLQltdXRleF9sb2NrKCZod21vbi0+bG9jayk7Ci0KLQlyZWluaXRfY29tcGxldGlvbihjb21wbGV0aW9uKTsKLQotCWVuYWJsZV9pcnEoaHdtb24tPmlycSk7Ci0JaHdtb24tPmNlbGwtPmVuYWJsZShwZGV2KTsKLQotCXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGVfdGltZW91dChjb21wbGV0aW9uLCBIWik7Ci0KLQlpZiAodCA+IDApIHsKLQkJdmFsID0gcmVhZHcoaHdtb24tPmJhc2UpICYgMHhmZmY7Ci0JCXZhbCA9ICh2YWwgKiAzMzAwKSA+PiAxMjsKLQkJcmV0ID0gc3ByaW50ZihidWYsICIlbHVcbiIsIHZhbCk7Ci0JfSBlbHNlIHsKLQkJcmV0ID0gdCA/IHQgOiAtRVRJTUVET1VUOwotCX0KLQotCWh3bW9uLT5jZWxsLT5kaXNhYmxlKHBkZXYpOwotCWRpc2FibGVfaXJxKGh3bW9uLT5pcnEpOwotCi0JbXV0ZXhfdW5sb2NrKCZod21vbi0+bG9jayk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgREVWSUNFX0FUVFJfUk8oaW4wX2lucHV0KTsKLQotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmp6NDc0MF9hdHRyc1tdID0gewotCSZkZXZfYXR0cl9pbjBfaW5wdXQuYXR0ciwKLQlOVUxMCi19OwotCi1BVFRSSUJVVEVfR1JPVVBTKGp6NDc0MCk7Ci0KLXN0YXRpYyBpbnQgano0NzQwX2h3bW9uX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0JaW50IHJldDsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwotCXN0cnVjdCBqejQ3NDBfaHdtb24gKmh3bW9uOwotCXN0cnVjdCBkZXZpY2UgKmh3bW9uX2RldjsKLQotCWh3bW9uID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpod21vbiksIEdGUF9LRVJORUwpOwotCWlmICghaHdtb24pCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaHdtb24tPmNlbGwgPSBtZmRfZ2V0X2NlbGwocGRldik7Ci0KLQlod21vbi0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaHdtb24tPmlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGdldCBwbGF0Zm9ybSBpcnE6ICVkXG4iLAotCQkJaHdtb24tPmlycSk7Ci0JCXJldHVybiBod21vbi0+aXJxOwotCX0KLQotCWh3bW9uLT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwotCWlmIChJU19FUlIoaHdtb24tPmJhc2UpKQotCQlyZXR1cm4gUFRSX0VSUihod21vbi0+YmFzZSk7Ci0KLQlod21vbi0+cGRldiA9IHBkZXY7Ci0JaW5pdF9jb21wbGV0aW9uKCZod21vbi0+cmVhZF9jb21wbGV0aW9uKTsKLQltdXRleF9pbml0KCZod21vbi0+bG9jayk7Ci0KLQlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKGRldiwgaHdtb24tPmlycSwgano0NzQwX2h3bW9uX2lycSwgMCwKLQkJCSAgICAgICBwZGV2LT5uYW1lLCBod21vbik7Ci0JaWYgKHJldCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBpcnE6ICVkXG4iLCByZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KLQlkaXNhYmxlX2lycShod21vbi0+aXJxKTsKLQotCWh3bW9uX2RldiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKGRldiwgImp6NDc0MCIsIGh3bW9uLAotCQkJCQkJCSAgIGp6NDc0MF9ncm91cHMpOwotCXJldHVybiBQVFJfRVJSX09SX1pFUk8oaHdtb25fZGV2KTsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgano0NzQwX2h3bW9uX2RyaXZlciA9IHsKLQkucHJvYmUJPSBqejQ3NDBfaHdtb25fcHJvYmUsCi0JLmRyaXZlciA9IHsKLQkJLm5hbWUgPSAiano0NzQwLWh3bW9uIiwKLQl9LAotfTsKLQotbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihqejQ3NDBfaHdtb25fZHJpdmVyKTsKLQotTU9EVUxFX0RFU0NSSVBUSU9OKCJKWjQ3NDAgU29DIEhXTU9OIGRyaXZlciIpOwotTU9EVUxFX0FVVEhPUigiTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Iik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1NT0RVTEVfQUxJQVMoInBsYXRmb3JtOmp6NDc0MC1od21vbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL0tjb25maWcgYi9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZwppbmRleCBhMzYyMjQ1Li4xNDZjZTQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZwpAQCAtNDI5LDYgKzQyOSw3IEBACiAJdHJpc3RhdGUgIkF4eGlhIEkyQyBjb250cm9sbGVyIgogCWRlcGVuZHMgb24gQVJDSF9BWFhJQSB8fCBDT01QSUxFX1RFU1QKIAlkZWZhdWx0IEFSQ0hfQVhYSUEKKwlzZWxlY3QgSTJDX1NMQVZFCiAJaGVscAogCSAgU2F5IHllcyBpZiB5b3Ugd2FudCB0byBzdXBwb3J0IHRoZSBJMkMgYnVzIG9uIEF4eGlhIHBsYXRmb3Jtcy4KIApAQCAtOTc3LDcgKzk3OCw3IEBACiAJICB3aWxsIGJlIGNhbGxlZCBpMmMtc2lyZi4KIAogY29uZmlnIEkyQ19TUFJECi0JYm9vbCAiU3ByZWFkdHJ1bSBJMkMgaW50ZXJmYWNlIgorCXRyaXN0YXRlICJTcHJlYWR0cnVtIEkyQyBpbnRlcmZhY2UiCiAJZGVwZW5kcyBvbiBJMkM9eSAmJiBBUkNIX1NQUkQKIAloZWxwCiAJICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUKQEAgLTEzMDksNiArMTMxMCwyMCBAQAogCSAgVGhpcyBzdXBwb3J0IGlzIGFsc28gYXZhaWxhYmxlIGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIGkyYy1lbGVrdG9yLgogCitjb25maWcgSTJDX0lDWQorCXRyaXN0YXRlICJJQ1kgWm9ycm8gY2FyZCIKKwlkZXBlbmRzIG9uIFpPUlJPCisJc2VsZWN0IEkyQ19BTEdPUENGCisJaGVscAorCSAgVGhpcyBzdXBwb3J0cyB0aGUgUENGODU4NCBab3JybyBidXMgSTJDIGFkYXB0ZXIsIGtub3duIGFzIElDWS4KKwkgIFNheSBZIGlmIHlvdSBvd24gc3VjaCBhbiBhZGFwdGVyLgorCisJICBUaGlzIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLWljeS4KKworCSAgSWYgeW91IGhhdmUgYSAyMDE5IGVkaXRpb24gYm9hcmQgd2l0aCBhbiBMVEMyOTkwIHNlbnNvciBhdCBhZGRyZXNzCisJICAweDRjLCBsb2FkaW5nIHRoZSBtb2R1bGUgJ2x0YzI5OTAnIGlzIHN1ZmZpY2llbnQgdG8gZW5hYmxlIGl0LgorCiBjb25maWcgSTJDX01MWENQTEQKIAl0cmlzdGF0ZSAiTWVsbGFub3ggSTJDIGRyaXZlciIKIAlkZXBlbmRzIG9uIFg4Nl82NApAQCAtMTM0NSw3ICsxMzYwLDcgQEAKIAogY29uZmlnIEkyQ19DUk9TX0VDX1RVTk5FTAogCXRyaXN0YXRlICJDaHJvbWVPUyBFQyB0dW5uZWwgSTJDIGJ1cyIKLQlkZXBlbmRzIG9uIE1GRF9DUk9TX0VDCisJZGVwZW5kcyBvbiBDUk9TX0VDCiAJaGVscAogCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IGFuIEkyQyBidXMgdGhhdCB3aWxsIHR1bm5lbCBpMmMgY29tbWFuZHMKIAkgIHRocm91Z2ggdG8gdGhlIG90aGVyIHNpZGUgb2YgdGhlIENocm9tZU9TIEVDIHRvIHRoZSBpMmMgYnVzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvTWFrZWZpbGUgYi9kcml2ZXJzL2kyYy9idXNzZXMvTWFrZWZpbGUKaW5kZXggODBjMjM4OS4uM2FiOGFlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9NYWtlZmlsZQpAQCAtMTQwLDYgKzE0MCw3IEBACiBvYmotJChDT05GSUdfSTJDX0JSQ01TVEIpCSs9IGkyYy1icmNtc3RiLm8KIG9iai0kKENPTkZJR19JMkNfQ1JPU19FQ19UVU5ORUwpCSs9IGkyYy1jcm9zLWVjLXR1bm5lbC5vCiBvYmotJChDT05GSUdfSTJDX0VMRUtUT1IpCSs9IGkyYy1lbGVrdG9yLm8KK29iai0kKENPTkZJR19JMkNfSUNZKQkJKz0gaTJjLWljeS5vCiBvYmotJChDT05GSUdfSTJDX01MWENQTEQpCSs9IGkyYy1tbHhjcGxkLm8KIG9iai0kKENPTkZJR19JMkNfT1BBTCkJCSs9IGkyYy1vcGFsLm8KIG9iai0kKENPTkZJR19JMkNfUENBX0lTQSkJKz0gaTJjLXBjYS1pc2EubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1heHhpYS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1heHhpYS5jCmluZGV4IGZmMzE0MmIuLjAyMTRkYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYXh4aWEuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWF4eGlhLmMKQEAgLTc3LDYgKzc3LDQwIEBACiAJCQkJIE1TVF9TVEFUVVNfSVApCiAjZGVmaW5lIE1TVF9UWF9CWVRFU19YRlJECTB4NTAKICNkZWZpbmUgTVNUX1JYX0JZVEVTX1hGUkQJMHg1NAorI2RlZmluZSBTTFZfQUREUl9ERUNfQ1RMCTB4NTgKKyNkZWZpbmUgICBTTFZfQUREUl9ERUNfR0NFCUJJVCgwKSAgLyogQUNLIHRvIEdlbmVyYWwgQ2FsbCBBZGRyZXNzIGZyb20gb3duIG1hc3RlciAobG9vcGJhY2spICovCisjZGVmaW5lICAgU0xWX0FERFJfREVDX09HQ0UJQklUKDEpICAvKiBBQ0sgdG8gR2VuZXJhbCBDYWxsIEFkZHJlc3MgZnJvbSBleHRlcm5hbCBtYXN0ZXJzICovCisjZGVmaW5lICAgU0xWX0FERFJfREVDX1NBMUUJQklUKDIpICAvKiBBQ0sgdG8gYWRkcl8xIGVuYWJsZWQgKi8KKyNkZWZpbmUgICBTTFZfQUREUl9ERUNfU0ExTQlCSVQoMykgIC8qIDEwLWJpdCBhZGRyZXNzaW5nIGZvciBhZGRyXzEgZW5hYmxlZCAqLworI2RlZmluZSAgIFNMVl9BRERSX0RFQ19TQTJFCUJJVCg0KSAgLyogQUNLIHRvIGFkZHJfMiBlbmFibGVkICovCisjZGVmaW5lICAgU0xWX0FERFJfREVDX1NBMk0JQklUKDUpICAvKiAxMC1iaXQgYWRkcmVzc2luZyBmb3IgYWRkcl8yIGVuYWJsZWQgKi8KKyNkZWZpbmUgU0xWX0FERFJfMQkJMHg1YworI2RlZmluZSBTTFZfQUREUl8yCQkweDYwCisjZGVmaW5lIFNMVl9SWF9DVEwJCTB4NjQKKyNkZWZpbmUgICBTTFZfUlhfQUNTQTEJCUJJVCgwKSAgLyogR2VuZXJhdGUgQUNLIGZvciB3cml0ZXMgdG8gYWRkcl8xICovCisjZGVmaW5lICAgU0xWX1JYX0FDU0EyCQlCSVQoMSkgIC8qIEdlbmVyYXRlIEFDSyBmb3Igd3JpdGVzIHRvIGFkZHJfMiAqLworI2RlZmluZSAgIFNMVl9SWF9BQ0dDQQkJQklUKDIpICAvKiBBQ0sgZGF0YSBwaGFzZSB0cmFuc2ZlcnMgdG8gR2VuZXJhbCBDYWxsIEFkZHJlc3MgKi8KKyNkZWZpbmUgU0xWX0RBVEEJCTB4NjgKKyNkZWZpbmUgU0xWX1JYX0ZJRk8JCTB4NmMKKyNkZWZpbmUgICBTTFZfRklGT19EVjEJCUJJVCgwKSAgLyogRGF0YSBWYWxpZCBmb3IgYWRkcl8xICovCisjZGVmaW5lICAgU0xWX0ZJRk9fRFYyCQlCSVQoMSkgIC8qIERhdGEgVmFsaWQgZm9yIGFkZHJfMiAqLworI2RlZmluZSAgIFNMVl9GSUZPX0FTCQlCSVQoMikgIC8qIChOKUFDSyBTZW50ICovCisjZGVmaW5lICAgU0xWX0ZJRk9fVE5BSwkJQklUKDMpICAvKiBUaW1lb3V0IE5BQ0sgKi8KKyNkZWZpbmUgICBTTFZfRklGT19TVFJDCQlCSVQoNCkgIC8qIEZpcnN0IGJ5dGUgYWZ0ZXIgc3RhcnQgY29uZGl0aW9uIHJlY2VpdmVkICovCisjZGVmaW5lICAgU0xWX0ZJRk9fUlNDCQlCSVQoNSkgIC8qIFJlcGVhdGVkIFN0YXJ0IENvbmRpdGlvbiAqLworI2RlZmluZSAgIFNMVl9GSUZPX1NUUEMJCUJJVCg2KSAgLyogU3RvcCBDb25kaXRpb24gKi8KKyNkZWZpbmUgICBTTFZfRklGT19EVgkJKFNMVl9GSUZPX0RWMSB8IFNMVl9GSUZPX0RWMikKKyNkZWZpbmUgU0xWX0lOVF9FTkFCTEUJCTB4NzAKKyNkZWZpbmUgU0xWX0lOVF9TVEFUVVMJCTB4NzQKKyNkZWZpbmUgICBTTFZfU1RBVFVTX1JGSAlCSVQoMCkgIC8qIEZJRk8gc2VydmljZSAqLworI2RlZmluZSAgIFNMVl9TVEFUVVNfV1RDCUJJVCgxKSAgLyogV3JpdGUgdHJhbnNmZXIgY29tcGxldGUgKi8KKyNkZWZpbmUgICBTTFZfU1RBVFVTX1NSUzEJQklUKDIpICAvKiBTbGF2ZSByZWFkIGZyb20gYWRkciAxICovCisjZGVmaW5lICAgU0xWX1NUQVRVU19TUlJTMQlCSVQoMykgIC8qIFJlcGVhdGVkIHN0YXJ0IGZyb20gYWRkciAxICovCisjZGVmaW5lICAgU0xWX1NUQVRVU19TUk5EMQlCSVQoNCkgIC8qIFJlYWQgcmVxdWVzdCBub3QgZm9sbG93aW5nIHN0YXJ0IGNvbmRpdGlvbiAqLworI2RlZmluZSAgIFNMVl9TVEFUVVNfU1JDMQlCSVQoNSkgIC8qIFJlYWQgY2FuY2VsZWQgKi8KKyNkZWZpbmUgICBTTFZfU1RBVFVTX1NSQVQxCUJJVCg2KSAgLyogU2xhdmUgUmVhZCB0aW1lZCBvdXQgKi8KKyNkZWZpbmUgICBTTFZfU1RBVFVTX1NSRFJFMQlCSVQoNykgIC8qIERhdGEgd3JpdHRlbiBhZnRlciB0aW1lZCBvdXQgKi8KKyNkZWZpbmUgU0xWX1JFQURfRFVNTVkJCTB4NzgKICNkZWZpbmUgU0NMX0hJR0hfUEVSSU9ECQkweDgwCiAjZGVmaW5lIFNDTF9MT1dfUEVSSU9ECQkweDg0CiAjZGVmaW5lIFNQSUtFX0ZMVFJfTEVOCQkweDg4CkBAIC0xMTEsNiArMTQ1LDggQEAgc3RydWN0IGF4eGlhX2kyY19kZXYgewogCXN0cnVjdCBjbGsgKmkyY19jbGs7CiAJdTMyIGJ1c19jbGtfcmF0ZTsKIAlib29sIGxhc3Q7CisJc3RydWN0IGkyY19jbGllbnQgKnNsYXZlOworCWludCBpcnE7CiB9OwogCiBzdGF0aWMgdm9pZCBpMmNfaW50X2Rpc2FibGUoc3RydWN0IGF4eGlhX2kyY19kZXYgKmlkZXYsIHUzMiBtYXNrKQpAQCAtMjc2LDEzICszMTIsNjUgQEAgc3RhdGljIGludCBheHhpYV9pMmNfZmlsbF90eF9maWZvKHN0cnVjdCBheHhpYV9pMmNfZGV2ICppZGV2KQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIGF4eGlhX2kyY19zbHZfZmlmb19ldmVudChzdHJ1Y3QgYXh4aWFfaTJjX2RldiAqaWRldikKK3sKKwl1MzIgZmlmb19zdGF0dXMgPSByZWFkbChpZGV2LT5iYXNlICsgU0xWX1JYX0ZJRk8pOworCXU4IHZhbDsKKworCWRldl9kYmcoaWRldi0+ZGV2LCAic2xhdmUgaXJxIGZpZm9fc3RhdHVzPTB4JXhcbiIsIGZpZm9fc3RhdHVzKTsKKworCWlmIChmaWZvX3N0YXR1cyAmIFNMVl9GSUZPX0RWMSkgeworCQlpZiAoZmlmb19zdGF0dXMgJiBTTFZfRklGT19TVFJDKQorCQkJaTJjX3NsYXZlX2V2ZW50KGlkZXYtPnNsYXZlLAorCQkJCQlJMkNfU0xBVkVfV1JJVEVfUkVRVUVTVEVELCAmdmFsKTsKKworCQl2YWwgPSByZWFkbChpZGV2LT5iYXNlICsgU0xWX0RBVEEpOworCQlpMmNfc2xhdmVfZXZlbnQoaWRldi0+c2xhdmUsIEkyQ19TTEFWRV9XUklURV9SRUNFSVZFRCwgJnZhbCk7CisJfQorCWlmIChmaWZvX3N0YXR1cyAmIFNMVl9GSUZPX1NUUEMpIHsKKwkJcmVhZGwoaWRldi0+YmFzZSArIFNMVl9EQVRBKTsgLyogZHVtbXkgcmVhZCAqLworCQlpMmNfc2xhdmVfZXZlbnQoaWRldi0+c2xhdmUsIEkyQ19TTEFWRV9TVE9QLCAmdmFsKTsKKwl9CisJaWYgKGZpZm9fc3RhdHVzICYgU0xWX0ZJRk9fUlNDKQorCQlyZWFkbChpZGV2LT5iYXNlICsgU0xWX0RBVEEpOyAvKiBkdW1teSByZWFkICovCit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBheHhpYV9pMmNfc2x2X2lzcihzdHJ1Y3QgYXh4aWFfaTJjX2RldiAqaWRldikKK3sKKwl1MzIgc3RhdHVzID0gcmVhZGwoaWRldi0+YmFzZSArIFNMVl9JTlRfU1RBVFVTKTsKKwl1OCB2YWw7CisKKwlkZXZfZGJnKGlkZXYtPmRldiwgInNsYXZlIGlycSBzdGF0dXM9MHgleFxuIiwgc3RhdHVzKTsKKworCWlmIChzdGF0dXMgJiBTTFZfU1RBVFVTX1JGSCkKKwkJYXh4aWFfaTJjX3Nsdl9maWZvX2V2ZW50KGlkZXYpOworCWlmIChzdGF0dXMgJiBTTFZfU1RBVFVTX1NSUzEpIHsKKwkJaTJjX3NsYXZlX2V2ZW50KGlkZXYtPnNsYXZlLCBJMkNfU0xBVkVfUkVBRF9SRVFVRVNURUQsICZ2YWwpOworCQl3cml0ZWwodmFsLCBpZGV2LT5iYXNlICsgU0xWX0RBVEEpOworCX0KKwlpZiAoc3RhdHVzICYgU0xWX1NUQVRVU19TUk5EMSkgeworCQlpMmNfc2xhdmVfZXZlbnQoaWRldi0+c2xhdmUsIEkyQ19TTEFWRV9SRUFEX1BST0NFU1NFRCwgJnZhbCk7CisJCXdyaXRlbCh2YWwsIGlkZXYtPmJhc2UgKyBTTFZfREFUQSk7CisJfQorCWlmIChzdGF0dXMgJiBTTFZfU1RBVFVTX1NSQzEpCisJCWkyY19zbGF2ZV9ldmVudChpZGV2LT5zbGF2ZSwgSTJDX1NMQVZFX1NUT1AsICZ2YWwpOworCisJd3JpdGVsKElOVF9TTFYsIGlkZXYtPmJhc2UgKyBJTlRFUlJVUFRfU1RBVFVTKTsKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKIHN0YXRpYyBpcnFyZXR1cm5fdCBheHhpYV9pMmNfaXNyKGludCBpcnEsIHZvaWQgKl9kZXYpCiB7CiAJc3RydWN0IGF4eGlhX2kyY19kZXYgKmlkZXYgPSBfZGV2OworCWlycXJldHVybl90IHJldCA9IElSUV9OT05FOwogCXUzMiBzdGF0dXM7CiAKLQlpZiAoIShyZWFkbChpZGV2LT5iYXNlICsgSU5URVJSVVBUX1NUQVRVUykgJiBJTlRfTVNUKSkKLQkJcmV0dXJuIElSUV9OT05FOworCXN0YXR1cyA9IHJlYWRsKGlkZXYtPmJhc2UgKyBJTlRFUlJVUFRfU1RBVFVTKTsKKworCWlmIChzdGF0dXMgJiBJTlRfU0xWKQorCQlyZXQgPSBheHhpYV9pMmNfc2x2X2lzcihpZGV2KTsKKwlpZiAoIShzdGF0dXMgJiBJTlRfTVNUKSkKKwkJcmV0dXJuIHJldDsKIAogCS8qIFJlYWQgaW50ZXJydXB0IHN0YXR1cyBiaXRzICovCiAJc3RhdHVzID0gcmVhZGwoaWRldi0+YmFzZSArIE1TVF9JTlRfU1RBVFVTKTsKQEAgLTU4Myw5ICs2NzEsNTggQEAgc3RhdGljIHUzMiBheHhpYV9pMmNfZnVuYyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCiAJcmV0dXJuIGNhcHM7CiB9CiAKK3N0YXRpYyBpbnQgYXh4aWFfaTJjX3JlZ19zbGF2ZShzdHJ1Y3QgaTJjX2NsaWVudCAqc2xhdmUpCit7CisJc3RydWN0IGF4eGlhX2kyY19kZXYgKmlkZXYgPSBpMmNfZ2V0X2FkYXBkYXRhKHNsYXZlLT5hZGFwdGVyKTsKKwl1MzIgc2x2X2ludF9tYXNrID0gU0xWX1NUQVRVU19SRkg7CisJdTMyIGRlY19jdGw7CisKKwlpZiAoaWRldi0+c2xhdmUpCisJCXJldHVybiAtRUJVU1k7CisKKwlpZGV2LT5zbGF2ZSA9IHNsYXZlOworCisJLyogRW5hYmxlIHNsYXZlIG1vZGUgYXMgd2VsbCAqLworCXdyaXRlbChHTE9CQUxfTVNUX0VOIHwgR0xPQkFMX1NMVl9FTiwgaWRldi0+YmFzZSArIEdMT0JBTF9DT05UUk9MKTsKKwl3cml0ZWwoSU5UX01TVCB8IElOVF9TTFYsIGlkZXYtPmJhc2UgKyBJTlRFUlJVUFRfRU5BQkxFKTsKKworCS8qIFNldCBzbGF2ZSBhZGRyZXNzICovCisJZGVjX2N0bCA9IFNMVl9BRERSX0RFQ19TQTFFOworCWlmIChzbGF2ZS0+ZmxhZ3MgJiBJMkNfQ0xJRU5UX1RFTikKKwkJZGVjX2N0bCB8PSBTTFZfQUREUl9ERUNfU0ExTTsKKworCXdyaXRlbChTTFZfUlhfQUNTQTEsIGlkZXYtPmJhc2UgKyBTTFZfUlhfQ1RMKTsKKwl3cml0ZWwoZGVjX2N0bCwgaWRldi0+YmFzZSArIFNMVl9BRERSX0RFQ19DVEwpOworCXdyaXRlbChzbGF2ZS0+YWRkciwgaWRldi0+YmFzZSArIFNMVl9BRERSXzEpOworCisJLyogRW5hYmxlIGludGVycnVwdHMgKi8KKwlzbHZfaW50X21hc2sgfD0gU0xWX1NUQVRVU19TUlMxIHwgU0xWX1NUQVRVU19TUlJTMSB8IFNMVl9TVEFUVVNfU1JORDE7CisJc2x2X2ludF9tYXNrIHw9IFNMVl9TVEFUVVNfU1JDMTsKKwl3cml0ZWwoc2x2X2ludF9tYXNrLCBpZGV2LT5iYXNlICsgU0xWX0lOVF9FTkFCTEUpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXh4aWFfaTJjX3VucmVnX3NsYXZlKHN0cnVjdCBpMmNfY2xpZW50ICpzbGF2ZSkKK3sKKwlzdHJ1Y3QgYXh4aWFfaTJjX2RldiAqaWRldiA9IGkyY19nZXRfYWRhcGRhdGEoc2xhdmUtPmFkYXB0ZXIpOworCisJLyogRGlzYWJsZSBzbGF2ZSBtb2RlICovCisJd3JpdGVsKEdMT0JBTF9NU1RfRU4sIGlkZXYtPmJhc2UgKyBHTE9CQUxfQ09OVFJPTCk7CisJd3JpdGVsKElOVF9NU1QsIGlkZXYtPmJhc2UgKyBJTlRFUlJVUFRfRU5BQkxFKTsKKworCXN5bmNocm9uaXplX2lycShpZGV2LT5pcnEpOworCisJaWRldi0+c2xhdmUgPSBOVUxMOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2FsZ29yaXRobSBheHhpYV9pMmNfYWxnbyA9IHsKIAkubWFzdGVyX3hmZXIgPSBheHhpYV9pMmNfeGZlciwKIAkuZnVuY3Rpb25hbGl0eSA9IGF4eGlhX2kyY19mdW5jLAorCS5yZWdfc2xhdmUgPSBheHhpYV9pMmNfcmVnX3NsYXZlLAorCS51bnJlZ19zbGF2ZSA9IGF4eGlhX2kyY191bnJlZ19zbGF2ZSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2FkYXB0ZXJfcXVpcmtzIGF4eGlhX2kyY19xdWlya3MgPSB7CkBAIC01OTksNyArNzM2LDYgQEAgc3RhdGljIGludCBheHhpYV9pMmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgYXh4aWFfaTJjX2RldiAqaWRldiA9IE5VTEw7CiAJc3RydWN0IHJlc291cmNlICpyZXM7CiAJdm9pZCBfX2lvbWVtICpiYXNlOwotCWludCBpcnE7CiAJaW50IHJldCA9IDA7CiAKIAlpZGV2ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqaWRldiksIEdGUF9LRVJORUwpOwpAQCAtNjExLDEwICs3NDcsMTAgQEAgc3RhdGljIGludCBheHhpYV9pMmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAoSVNfRVJSKGJhc2UpKQogCQlyZXR1cm4gUFRSX0VSUihiYXNlKTsKIAotCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKKwlpZGV2LT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOworCWlmIChpZGV2LT5pcnEgPCAwKSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgIm1pc3NpbmcgaW50ZXJydXB0IHJlc291cmNlXG4iKTsKLQkJcmV0dXJuIGlycTsKKwkJcmV0dXJuIGlkZXYtPmlycTsKIAl9CiAKIAlpZGV2LT5pMmNfY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJpMmMiKTsKQEAgLTY0MywxMCArNzc5LDEwIEBAIHN0YXRpYyBpbnQgYXh4aWFfaTJjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWdvdG8gZXJyb3JfZGlzYWJsZV9jbGs7CiAJfQogCi0JcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBpcnEsIGF4eGlhX2kyY19pc3IsIDAsCisJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBpZGV2LT5pcnEsIGF4eGlhX2kyY19pc3IsIDAsCiAJCQkgICAgICAgcGRldi0+bmFtZSwgaWRldik7CiAJaWYgKHJldCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gY2xhaW0gSVJRJWRcbiIsIGlycSk7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBjbGFpbSBJUlElZFxuIiwgaWRldi0+aXJxKTsKIAkJZ290byBlcnJvcl9kaXNhYmxlX2NsazsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYmNtLWlwcm9jLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWJjbS1pcHJvYy5jCmluZGV4IDE5ZWYyYjAuLjlmZmRmZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYmNtLWlwcm9jLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1iY20taXByb2MuYwpAQCAtODA4LDcgKzgwOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2FsZ29yaXRobSBiY21faXByb2NfYWxnbyA9IHsKIAkudW5yZWdfc2xhdmUgPSBiY21faXByb2NfaTJjX3VucmVnX3NsYXZlLAogfTsKIAotc3RhdGljIHN0cnVjdCBpMmNfYWRhcHRlcl9xdWlya3MgYmNtX2lwcm9jX2kyY19xdWlya3MgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19hZGFwdGVyX3F1aXJrcyBiY21faXByb2NfaTJjX3F1aXJrcyA9IHsKIAkubWF4X3JlYWRfbGVuID0gTV9SWF9NQVhfUkVBRF9MRU4sCiB9OwogCkBAIC05MjIsNyArOTIyLDkgQEAgc3RhdGljIGludCBiY21faXByb2NfaTJjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlhZGFwID0gJmlwcm9jX2kyYy0+YWRhcHRlcjsKIAlpMmNfc2V0X2FkYXBkYXRhKGFkYXAsIGlwcm9jX2kyYyk7Ci0Jc3RybGNweShhZGFwLT5uYW1lLCAiQnJvYWRjb20gaVByb2MgSTJDIGFkYXB0ZXIiLCBzaXplb2YoYWRhcC0+bmFtZSkpOworCXNucHJpbnRmKGFkYXAtPm5hbWUsIHNpemVvZihhZGFwLT5uYW1lKSwKKwkJIkJyb2FkY29tIGlQcm9jICglcykiLAorCQlvZl9ub2RlX2Z1bGxfbmFtZShpcHJvY19pMmMtPmRldmljZS0+b2Zfbm9kZSkpOwogCWFkYXAtPmFsZ28gPSAmYmNtX2lwcm9jX2FsZ287CiAJYWRhcC0+cXVpcmtzID0gJmJjbV9pcHJvY19pMmNfcXVpcmtzOwogCWFkYXAtPmRldi5wYXJlbnQgPSAmcGRldi0+ZGV2OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1iY20yODM1LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWJjbTI4MzUuYwppbmRleCA2Nzc1MmY3Li5lMDFiMmI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWJjbTI4MzUuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWJjbTI4MzUuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogCkBAIC0zODksNyArMzkwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfYWxnb3JpdGhtIGJjbTI4MzVfaTJjX2FsZ28gPSB7CiB9OwogCiAvKgotICogVGhpcyBIVyB3YXMgcmVwb3J0ZWQgdG8gaGF2ZSBwcm9ibGVtcyB3aXRoIGNsb2NrIHN0cmV0Y2hpbmc6CisgKiBUaGUgQkNNMjgzNSB3YXMgcmVwb3J0ZWQgdG8gaGF2ZSBwcm9ibGVtcyB3aXRoIGNsb2NrIHN0cmV0Y2hpbmc6CiAgKiBodHRwOi8vd3d3LmFkdmFtYXRpb24uY29tL2tub3dob3cvcmFzcGJlcnJ5cGkvcnBpLWkyYy1idWcuaHRtbAogICogaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnL2ZvcnVtcy92aWV3dG9waWMucGhwP3A9MTQ2MjcyCiAgKi8KQEAgLTQ3MSwxMSArNDcyLDEyIEBAIHN0YXRpYyBpbnQgYmNtMjgzNV9pMmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpMmNfc2V0X2FkYXBkYXRhKGFkYXAsIGkyY19kZXYpOwogCWFkYXAtPm93bmVyID0gVEhJU19NT0RVTEU7CiAJYWRhcC0+Y2xhc3MgPSBJMkNfQ0xBU1NfREVQUkVDQVRFRDsKLQlzdHJsY3B5KGFkYXAtPm5hbWUsICJiY20yODM1IEkyQyBhZGFwdGVyIiwgc2l6ZW9mKGFkYXAtPm5hbWUpKTsKKwlzbnByaW50ZihhZGFwLT5uYW1lLCBzaXplb2YoYWRhcC0+bmFtZSksICJiY20yODM1ICglcykiLAorCQkgb2Zfbm9kZV9mdWxsX25hbWUocGRldi0+ZGV2Lm9mX25vZGUpKTsKIAlhZGFwLT5hbGdvID0gJmJjbTI4MzVfaTJjX2FsZ287CiAJYWRhcC0+ZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7CiAJYWRhcC0+ZGV2Lm9mX25vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKLQlhZGFwLT5xdWlya3MgPSAmYmNtMjgzNV9pMmNfcXVpcmtzOworCWFkYXAtPnF1aXJrcyA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsKIAogCWJjbTI4MzVfaTJjX3dyaXRlbChpMmNfZGV2LCBCQ00yODM1X0kyQ19DLCAwKTsKIApAQCAtNTAxLDcgKzUwMyw4IEBAIHN0YXRpYyBpbnQgYmNtMjgzNV9pMmNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGJjbTI4MzVfaTJjX29mX21hdGNoW10gPSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJicmNtLGJjbTI4MzUtaTJjIiB9LAorCXsgLmNvbXBhdGlibGUgPSAiYnJjbSxiY20yNzExLWkyYyIgfSwKKwl7IC5jb21wYXRpYmxlID0gImJyY20sYmNtMjgzNS1pMmMiLCAuZGF0YSA9ICZiY20yODM1X2kyY19xdWlya3MgfSwKIAl7fSwKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBiY20yODM1X2kyY19vZl9tYXRjaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWNodC13Yy5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1jaHQtd2MuYwppbmRleCA2NmFmNDRiLi5iOGZkZTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWNodC13Yy5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtY2h0LXdjLmMKQEAgLTE3OCw2ICsxNzgsNTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfYWxnb3JpdGhtIGNodF93Y19pMmNfYWRhcF9hbGdvID0gewogCS5zbWJ1c194ZmVyID0gY2h0X3djX2kyY19hZGFwX3NtYnVzX3hmZXIsCiB9OwogCisvKgorICogV2UgYXJlIGFuIGkyYy1hZGFwdGVyIHdoaWNoIGl0c2VsZiBpcyBwYXJ0IG9mIGFuIGkyYy1jbGllbnQuIFRoaXMgbWVhbnMgdGhhdAorICogdHJhbnNmZXJzIGRvbmUgdGhyb3VnaCB1cyB0YWtlIGFkYXB0ZXItPmJ1c19sb2NrIHR3aWNlLCBvbmNlIGZvciBvdXIgcGFyZW50CisgKiBpMmMtYWRhcHRlciBhbmQgb25jZSB0byB0YWtlIG91ciBvd24gYnVzX2xvY2suIExvY2tkZXAgZG9lcyBub3QgbGlrZSB0aGlzCisgKiBuZXN0ZWQgbG9ja2luZywgdG8gbWFrZSBsb2NrZGVwIGhhcHB5IGluIHRoZSBjYXNlIG9mIGJ1c3NlcyB3aXRoIG11eGVzLCB0aGUKKyAqIGkyYy1jb3JlJ3MgaTJjX2FkYXB0ZXJfbG9ja19idXMgZnVuY3Rpb24gY2FsbHM6CisgKiBydF9tdXRleF9sb2NrX25lc3RlZCgmYWRhcHRlci0+YnVzX2xvY2ssIGkyY19hZGFwdGVyX2RlcHRoKGFkYXB0ZXIpKTsKKyAqCisgKiBCdXQgaTJjX2FkYXB0ZXJfZGVwdGggb25seSB3b3JrcyB3aGVuIHRoZSBkaXJlY3QgcGFyZW50IG9mIHRoZSBhZGFwdGVyIGlzCisgKiBhbm90aGVyIGFkYXB0ZXIsIGFzIGl0IGlzIG9ubHkgbWVhbnQgZm9yIG11eGVzLiBJbiBvdXIgY2FzZSB0aGVyZSBpcyBhbgorICogaTJjLWNsaWVudCBhbmQgTUZEIGluc3RhbnRpYXRlZCBwbGF0Zm9ybV9kZXZpY2UgaW4gdGhlIHBhcmVudC0+Y2hpbGQgY2hhaW4KKyAqIGJldHdlZW4gdGhlIDIgZGV2aWNlcy4KKyAqCisgKiBTbyB3ZSBvdmVycmlkZSB0aGUgZGVmYXVsdCBpMmNfbG9ja19vcGVyYXRpb25zIGFuZCBwYXNzIGEgaGFyZGNvZGVkCisgKiBkZXB0aCBvZiAxIHRvIHJ0X211dGV4X2xvY2tfbmVzdGVkLCB0byBtYWtlIGxvY2tkZXAgaGFwcHkuCisgKgorICogTm90ZSB0aGF0IGlmIHRoZXJlIHdlcmUgdG8gYmUgYSBtdXggYXR0YWNoZWQgdG8gb3VyIGFkYXB0ZXIsIHRoaXMgd291bGQKKyAqIGJyZWFrIHRoaW5ncyBhZ2FpbiBzaW5jZSB0aGUgaTJjLW11eCBjb2RlIGV4cGVjdHMgdGhlIHJvb3QtYWRhcHRlciB0byBoYXZlCisgKiBhIGxvY2tpbmcgZGVwdGggb2YgMC4gQnV0IHdlIGFsd2F5cyBoYXZlIG9ubHkgMSBjbGllbnQgZGlyZWN0bHkgYXR0YWNoZWQKKyAqIGluIHRoZSBmb3JtIG9mIHRoZSBDaGFyZ2VyIElDIHBhaXJlZCB3aXRoIHRoZSBDSFQgV2hpc2tleSBDb3ZlIFBNSUMuCisgKi8KK3N0YXRpYyB2b2lkIGNodF93Y19pMmNfYWRhcF9sb2NrX2J1cyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCisJCQkJIHVuc2lnbmVkIGludCBmbGFncykKK3sKKwlydF9tdXRleF9sb2NrX25lc3RlZCgmYWRhcHRlci0+YnVzX2xvY2ssIDEpOworfQorCitzdGF0aWMgaW50IGNodF93Y19pMmNfYWRhcF90cnlsb2NrX2J1cyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCisJCQkJICAgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXJldHVybiBydF9tdXRleF90cnlsb2NrKCZhZGFwdGVyLT5idXNfbG9jayk7Cit9CisKK3N0YXRpYyB2b2lkIGNodF93Y19pMmNfYWRhcF91bmxvY2tfYnVzKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwKKwkJCQkgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJcnRfbXV0ZXhfdW5sb2NrKCZhZGFwdGVyLT5idXNfbG9jayk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2xvY2tfb3BlcmF0aW9ucyBjaHRfd2NfaTJjX2FkYXBfbG9ja19vcHMgPSB7CisJLmxvY2tfYnVzID0gICAgY2h0X3djX2kyY19hZGFwX2xvY2tfYnVzLAorCS50cnlsb2NrX2J1cyA9IGNodF93Y19pMmNfYWRhcF90cnlsb2NrX2J1cywKKwkudW5sb2NrX2J1cyA9ICBjaHRfd2NfaTJjX2FkYXBfdW5sb2NrX2J1cywKK307CisKIC8qKioqIGlycWNoaXAgZm9yIHRoZSBjbGllbnQgY29ubmVjdGVkIHRvIHRoZSBleHRjaGdyIGkyYyBhZGFwdGVyICoqKiovCiBzdGF0aWMgdm9pZCBjaHRfd2NfaTJjX2lycV9sb2NrKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKIHsKQEAgLTI4Niw2ICszMzEsNyBAQCBzdGF0aWMgaW50IGNodF93Y19pMmNfYWRhcF9pMmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlhZGFwLT5hZGFwdGVyLm93bmVyID0gVEhJU19NT0RVTEU7CiAJYWRhcC0+YWRhcHRlci5jbGFzcyA9IEkyQ19DTEFTU19IV01PTjsKIAlhZGFwLT5hZGFwdGVyLmFsZ28gPSAmY2h0X3djX2kyY19hZGFwX2FsZ287CisJYWRhcC0+YWRhcHRlci5sb2NrX29wcyA9ICZjaHRfd2NfaTJjX2FkYXBfbG9ja19vcHM7CiAJc3RybGNweShhZGFwLT5hZGFwdGVyLm5hbWUsICJQTUlDIEkyQyBBZGFwdGVyIiwKIAkJc2l6ZW9mKGFkYXAtPmFkYXB0ZXIubmFtZSkpOwogCWFkYXAtPmFkYXB0ZXIuZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7CkBAIC0zNjMsOCArNDA5LDcgQEAgc3RhdGljIGludCBjaHRfd2NfaTJjX2FkYXBfaTJjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBjaHRfd2NfaTJjX2FkYXAgKmFkYXAgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAotCWlmIChhZGFwLT5jbGllbnQpCi0JCWkyY191bnJlZ2lzdGVyX2RldmljZShhZGFwLT5jbGllbnQpOworCWkyY191bnJlZ2lzdGVyX2RldmljZShhZGFwLT5jbGllbnQpOwogCWkyY19kZWxfYWRhcHRlcigmYWRhcC0+YWRhcHRlcik7CiAJaXJxX2RvbWFpbl9yZW1vdmUoYWRhcC0+aXJxX2RvbWFpbik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtY3Jvcy1lYy10dW5uZWwuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtY3Jvcy1lYy10dW5uZWwuYwppbmRleCA4MmJjZDlhLi5jNTUxYWE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWNyb3MtZWMtdHVubmVsLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1jcm9zLWVjLXR1bm5lbC5jCkBAIC01LDggKzUsOCBAQAogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19wcm90by5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1kZXNpZ253YXJlLW1hc3Rlci5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1kZXNpZ253YXJlLW1hc3Rlci5jCmluZGV4IGQ0NjQ3OTkuLmU4YjMyODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtZGVzaWdud2FyZS1tYXN0ZXIuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWRlc2lnbndhcmUtbWFzdGVyLmMKQEAgLTY1NSwxNSArNjU1LDExIEBAIHN0YXRpYyBpbnQgaTJjX2R3X2luaXRfcmVjb3ZlcnlfaW5mbyhzdHJ1Y3QgZHdfaTJjX2RldiAqZGV2KQogCXN0cnVjdCBpMmNfYnVzX3JlY292ZXJ5X2luZm8gKnJpbmZvID0gJmRldi0+cmluZm87CiAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwID0gJmRldi0+YWRhcHRlcjsKIAlzdHJ1Y3QgZ3Bpb19kZXNjICpncGlvOwotCWludCByOwogCi0JZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0KGRldi0+ZGV2LCAic2NsIiwgR1BJT0RfT1VUX0hJR0gpOwotCWlmIChJU19FUlIoZ3BpbykpIHsKLQkJciA9IFBUUl9FUlIoZ3Bpbyk7Ci0JCWlmIChyID09IC1FTk9FTlQgfHwgciA9PSAtRU5PU1lTKQotCQkJcmV0dXJuIDA7Ci0JCXJldHVybiByOwotCX0KKwlncGlvID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoZGV2LT5kZXYsICJzY2wiLCBHUElPRF9PVVRfSElHSCk7CisJaWYgKElTX0VSUl9PUl9OVUxMKGdwaW8pKQorCQlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKGdwaW8pOworCiAJcmluZm8tPnNjbF9ncGlvZCA9IGdwaW87CiAKIAlncGlvID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoZGV2LT5kZXYsICJzZGEiLCBHUElPRF9JTik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWRlc2lnbndhcmUtcGNpZHJ2LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWRlc2lnbndhcmUtcGNpZHJ2LmMKaW5kZXggNzY4MTBkZS4uMDUwYWRkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1kZXNpZ253YXJlLXBjaWRydi5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtZGVzaWdud2FyZS1wY2lkcnYuYwpAQCAtMzMsNiArMzMsNyBAQCBlbnVtIGR3X3BjaV9jdGxfaWRfdCB7CiAJYmF5dHJhaWwsCiAJY2hlcnJ5dHJhaWwsCiAJaGFzd2VsbCwKKwllbGtoYXJ0bGFrZSwKIH07CiAKIHN0cnVjdCBkd19zY2xfc2RhX2NmZyB7CkBAIC0xNjgsMTMgKzE2OSwyMCBAQCBzdGF0aWMgc3RydWN0IGR3X3BjaV9jb250cm9sbGVyIGR3X3BjaV9jb250cm9sbGVyc1tdID0gewogCQkuZmxhZ3MgPSBNT0RFTF9DSEVSUllUUkFJTCwKIAkJLnNjbF9zZGFfY2ZnID0gJmJ5dF9jb25maWcsCiAJfSwKKwlbZWxraGFydGxha2VdID0geworCQkuYnVzX251bSA9IC0xLAorCQkuYnVzX2NmZyA9IElOVEVMX01JRF9TVERfQ0ZHIHwgRFdfSUNfQ09OX1NQRUVEX0ZBU1QsCisJCS50eF9maWZvX2RlcHRoID0gMzIsCisJCS5yeF9maWZvX2RlcHRoID0gMzIsCisJCS5mdW5jdGlvbmFsaXR5ID0gSTJDX0ZVTkNfMTBCSVRfQUREUiwKKwkJLmNsa19raHogPSAxMDAwMDAsCisJfSwKIH07CiAKICNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyBpbnQgaTJjX2R3X3BjaV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKLQlzdHJ1Y3QgZHdfaTJjX2RldiAqaV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGR3X2kyY19kZXYgKmlfZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKIAlpX2Rldi0+c3VzcGVuZGVkID0gdHJ1ZTsKIAlpX2Rldi0+ZGlzYWJsZShpX2Rldik7CkBAIC0xODQsOCArMTkyLDcgQEAgc3RhdGljIGludCBpMmNfZHdfcGNpX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogCiBzdGF0aWMgaW50IGkyY19kd19wY2lfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKLQlzdHJ1Y3QgZHdfaTJjX2RldiAqaV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGR3X2kyY19kZXYgKmlfZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJaW50IHJldDsKIAogCXJldCA9IGlfZGV2LT5pbml0KGlfZGV2KTsKQEAgLTIyNyw2ICsyMzQsOCBAQCBzdGF0aWMgaW50IGkyY19kd19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJCXJldHVybiByOwogCX0KIAorCXBjaV9zZXRfbWFzdGVyKHBkZXYpOworCiAJciA9IHBjaW1faW9tYXBfcmVnaW9ucyhwZGV2LCAxIDw8IDAsIHBjaV9uYW1lKHBkZXYpKTsKIAlpZiAocikgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJJL08gbWVtb3J5IHJlbWFwcGluZyBmYWlsZWRcbiIpOwpAQCAtMjM3LDE4ICsyNDYsMjQgQEAgc3RhdGljIGludCBpMmNfZHdfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCWlmICghZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAorCXIgPSBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMocGRldiwgMSwgMSwgUENJX0lSUV9BTExfVFlQRVMpOworCWlmIChyIDwgMCkKKwkJcmV0dXJuIHI7CisKIAlkZXYtPmNsayA9IE5VTEw7CiAJZGV2LT5jb250cm9sbGVyID0gY29udHJvbGxlcjsKIAlkZXYtPmdldF9jbGtfcmF0ZV9raHogPSBpMmNfZHdfZ2V0X2Nsa19yYXRlX2toejsKIAlkZXYtPmJhc2UgPSBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdOwogCWRldi0+ZGV2ID0gJnBkZXYtPmRldjsKLQlkZXYtPmlycSA9IHBkZXYtPmlycTsKKwlkZXYtPmlycSA9IHBjaV9pcnFfdmVjdG9yKHBkZXYsIDApOwogCWRldi0+ZmxhZ3MgfD0gY29udHJvbGxlci0+ZmxhZ3M7CiAKIAlpZiAoY29udHJvbGxlci0+c2V0dXApIHsKIAkJciA9IGNvbnRyb2xsZXItPnNldHVwKHBkZXYsIGNvbnRyb2xsZXIpOwotCQlpZiAocikKKwkJaWYgKHIpIHsKKwkJCXBjaV9mcmVlX2lycV92ZWN0b3JzKHBkZXYpOwogCQkJcmV0dXJuIHI7CisJCX0KIAl9CiAKIAlkZXYtPmZ1bmN0aW9uYWxpdHkgPSBjb250cm9sbGVyLT5mdW5jdGlvbmFsaXR5IHwKQEAgLTI3Niw4ICsyOTEsMTAgQEAgc3RhdGljIGludCBpMmNfZHdfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCWFkYXAtPm5yID0gY29udHJvbGxlci0+YnVzX251bTsKIAogCXIgPSBpMmNfZHdfcHJvYmUoZGV2KTsKLQlpZiAocikKKwlpZiAocikgeworCQlwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTsKIAkJcmV0dXJuIHI7CisJfQogCiAJcG1fcnVudGltZV9zZXRfYXV0b3N1c3BlbmRfZGVsYXkoJnBkZXYtPmRldiwgMTAwMCk7CiAJcG1fcnVudGltZV91c2VfYXV0b3N1c3BlbmQoJnBkZXYtPmRldik7CkBAIC0yOTYsNiArMzEzLDcgQEAgc3RhdGljIHZvaWQgaTJjX2R3X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJcG1fcnVudGltZV9nZXRfbm9yZXN1bWUoJnBkZXYtPmRldik7CiAKIAlpMmNfZGVsX2FkYXB0ZXIoJmRldi0+YWRhcHRlcik7CisJcGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRldik7CiB9CiAKIC8qIHdvcmsgd2l0aCBob3RwbHVnIGFuZCBjb2xkcGx1ZyAqLwpAQCAtMzMxLDYgKzM0OSwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaTJfZGVzaWdud2FyZV9wY2lfaWRzW10gPSB7CiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyMkM1KSwgY2hlcnJ5dHJhaWwgfSwKIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDIyQzYpLCBjaGVycnl0cmFpbCB9LAogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MjJDNyksIGNoZXJyeXRyYWlsIH0sCisJLyogRWxraGFydCBMYWtlIChQU0UgSTJDKSAqLworCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4NGJiOSksIGVsa2hhcnRsYWtlIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg0YmJhKSwgZWxraGFydGxha2UgfSwKKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDRiYmIpLCBlbGtoYXJ0bGFrZSB9LAorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4NGJiYyksIGVsa2hhcnRsYWtlIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg0YmJkKSwgZWxraGFydGxha2UgfSwKKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDRiYmUpLCBlbGtoYXJ0bGFrZSB9LAorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4NGJiZiksIGVsa2hhcnRsYWtlIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg0YmMwKSwgZWxraGFydGxha2UgfSwKIAl7IDAsfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBpMl9kZXNpZ253YXJlX3BjaV9pZHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1kZXNpZ253YXJlLXBsYXRkcnYuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtZGVzaWdud2FyZS1wbGF0ZHJ2LmMKaW5kZXggZGRmYjgxOC4uMTZkZDMzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1kZXNpZ253YXJlLXBsYXRkcnYuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWRlc2lnbndhcmUtcGxhdGRydi5jCkBAIC0yNzksMTIgKzI3OSwxMCBAQCBzdGF0aWMgaW50IGR3X2kyY19wbGF0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGV2KTsKIAogCWRldi0+cnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbF9leGNsdXNpdmUoJnBkZXYtPmRldiwgTlVMTCk7Ci0JaWYgKElTX0VSUihkZXYtPnJzdCkpIHsKLQkJaWYgKFBUUl9FUlIoZGV2LT5yc3QpID09IC1FUFJPQkVfREVGRVIpCi0JCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKLQl9IGVsc2UgewotCQlyZXNldF9jb250cm9sX2RlYXNzZXJ0KGRldi0+cnN0KTsKLQl9CisJaWYgKElTX0VSUihkZXYtPnJzdCkpCisJCXJldHVybiBQVFJfRVJSKGRldi0+cnN0KTsKKworCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoZGV2LT5yc3QpOwogCiAJdCA9ICZkZXYtPnRpbWluZ3M7CiAJaWYgKHBkYXRhKQpAQCAtMzQ2LDggKzM0NCwxMCBAQCBzdGF0aWMgaW50IGR3X2kyY19wbGF0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkvKiBPcHRpb25hbCBpbnRlcmZhY2UgY2xvY2sgKi8KIAlkZXYtPnBjbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWwoJnBkZXYtPmRldiwgInBjbGsiKTsKLQlpZiAoSVNfRVJSKGRldi0+cGNsaykpCi0JCXJldHVybiBQVFJfRVJSKGRldi0+cGNsayk7CisJaWYgKElTX0VSUihkZXYtPnBjbGspKSB7CisJCXJldCA9IFBUUl9FUlIoZGV2LT5wY2xrKTsKKwkJZ290byBleGl0X3Jlc2V0OworCX0KIAogCWRldi0+Y2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsIE5VTEwpOwogCWlmICghaTJjX2R3X3ByZXBhcmVfY2xrKGRldiwgdHJ1ZSkpIHsKQEAgLTQwMCw4ICs0MDAsNyBAQCBzdGF0aWMgaW50IGR3X2kyY19wbGF0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiBleGl0X3Byb2JlOgogCWR3X2kyY19wbGF0X3BtX2NsZWFudXAoZGV2KTsKIGV4aXRfcmVzZXQ6Ci0JaWYgKCFJU19FUlJfT1JfTlVMTChkZXYtPnJzdCkpCi0JCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KGRldi0+cnN0KTsKKwlyZXNldF9jb250cm9sX2Fzc2VydChkZXYtPnJzdCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNDE5LDggKzQxOCw3IEBAIHN0YXRpYyBpbnQgZHdfaTJjX3BsYXRfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcG1fcnVudGltZV9wdXRfc3luYygmcGRldi0+ZGV2KTsKIAlkd19pMmNfcGxhdF9wbV9jbGVhbnVwKGRldik7CiAKLQlpZiAoIUlTX0VSUl9PUl9OVUxMKGRldi0+cnN0KSkKLQkJcmVzZXRfY29udHJvbF9hc3NlcnQoZGV2LT5yc3QpOworCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KGRldi0+cnN0KTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1leHlub3M1LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWV4eW5vczUuYwppbmRleCBlNGU3OTMyLi5lNzUxNGMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWV4eW5vczUuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWV4eW5vczUuYwpAQCAtNzkxLDkgKzc5MSw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zNV9pMmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIGkyYy0+aXJxLCBleHlub3M1X2kyY19pcnEsCi0JCQkJSVJRRl9OT19TVVNQRU5EIHwgSVJRRl9PTkVTSE9ULAotCQkJCWRldl9uYW1lKCZwZGV2LT5kZXYpLCBpMmMpOwotCisJCQkgICAgICAgSVJRRl9OT19TVVNQRU5ELCBkZXZfbmFtZSgmcGRldi0+ZGV2KSwgaTJjKTsKIAlpZiAocmV0ICE9IDApIHsKIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2Fubm90IHJlcXVlc3QgSFMtSTJDIElSUSAlZFxuIiwgaTJjLT5pcnEpOwogCQlnb3RvIGVycl9jbGs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWZzaS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1mc2kuYwppbmRleCBkYTVlYjM5Li5lMGMyNTY5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1mc2kuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWZzaS5jCkBAIC03MDcsOCArNzA3LDEwIEBAIHN0YXRpYyBpbnQgZnNpX2kyY19wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCQljb250aW51ZTsKIAogCQlwb3J0ID0ga3phbGxvYyhzaXplb2YoKnBvcnQpLCBHRlBfS0VSTkVMKTsKLQkJaWYgKCFwb3J0KQorCQlpZiAoIXBvcnQpIHsKKwkJCW9mX25vZGVfcHV0KG5wKTsKIAkJCWJyZWFrOworCQl9CiAKIAkJcG9ydC0+bWFzdGVyID0gaTJjOwogCQlwb3J0LT5wb3J0ID0gcG9ydF9ubzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaGl4NWhkMi5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1oaXg1aGQyLmMKaW5kZXggNGRmMTQzNC4uODQ5N2M3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1oaXg1aGQyLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1oaXg1aGQyLmMKQEAgLTQ0NSw4ICs0NDUsNyBAQCBzdGF0aWMgaW50IGhpeDVoZDJfaTJjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaGl4NWhkMl9pMmNfaW5pdChwcml2KTsKIAogCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRldiwgaXJxLCBoaXg1aGQyX2kyY19pcnEsCi0JCQkgICAgICAgSVJRRl9OT19TVVNQRU5EIHwgSVJRRl9PTkVTSE9ULAotCQkJICAgICAgIGRldl9uYW1lKCZwZGV2LT5kZXYpLCBwcml2KTsKKwkJCSAgICAgICBJUlFGX05PX1NVU1BFTkQsIGRldl9uYW1lKCZwZGV2LT5kZXYpLCBwcml2KTsKIAlpZiAocmV0ICE9IDApIHsKIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2Fubm90IHJlcXVlc3QgSFMtSTJDIElSUSAlZFxuIiwgaXJxKTsKIAkJZ290byBlcnJfY2xrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODAxLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWk4MDEuYwppbmRleCAzNmU5NTU5Li5jMDk3OTFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWk4MDEuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWk4MDEuYwpAQCAtMjkyLDcgKzI5Miw4IEBAIHN0cnVjdCBpODAxX3ByaXYgewogI2RlZmluZSBGRUFUVVJFX0hPU1RfTk9USUZZCUJJVCg1KQogLyogTm90IHJlYWxseSBhIGZlYXR1cmUsIGJ1dCBpdCdzIGNvbnZlbmllbnQgdG8gaGFuZGxlIGl0IGFzIHN1Y2ggKi8KICNkZWZpbmUgRkVBVFVSRV9JREYJCUJJVCgxNSkKLSNkZWZpbmUgRkVBVFVSRV9UQ08JCUJJVCgxNikKKyNkZWZpbmUgRkVBVFVSRV9UQ09fU1BUCQlCSVQoMTYpCisjZGVmaW5lIEZFQVRVUkVfVENPX0NOTAkJQklUKDE3KQogCiBzdGF0aWMgY29uc3QgY2hhciAqaTgwMV9mZWF0dXJlX25hbWVzW10gPSB7CiAJIlNNQnVzIFBFQyIsCkBAIC0xNTAwLDU3ICsxNTAxLDIzIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGk4MDFfZ2V0X2FkYXB0ZXJfY2xhc3Moc3RydWN0IGk4MDFfcHJpdiAqcHJpdikKIH0KICNlbmRpZgogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGl0Y29fd2R0X3BsYXRmb3JtX2RhdGEgdGNvX3BsYXRmb3JtX2RhdGEgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGl0Y29fd2R0X3BsYXRmb3JtX2RhdGEgc3B0X3Rjb19wbGF0Zm9ybV9kYXRhID0gewogCS5uYW1lID0gIkludGVsIFBDSCIsCiAJLnZlcnNpb24gPSA0LAogfTsKIAogc3RhdGljIERFRklORV9TUElOTE9DSyhwMnNiX3NwaW5sb2NrKTsKIAotc3RhdGljIHZvaWQgaTgwMV9hZGRfdGNvKHN0cnVjdCBpODAxX3ByaXYgKnByaXYpCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqCitpODAxX2FkZF90Y29fc3B0KHN0cnVjdCBpODAxX3ByaXYgKnByaXYsIHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2LAorCQkgc3RydWN0IHJlc291cmNlICp0Y29fcmVzKQogewotCXN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2ID0gcHJpdi0+cGNpX2RldjsKLQlzdHJ1Y3QgcmVzb3VyY2UgdGNvX3Jlc1szXSwgKnJlczsKLQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OworCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCXVuc2lnbmVkIGludCBkZXZmbjsKLQl1MzIgdGNvX2Jhc2UsIHRjb19jdGw7Ci0JdTMyIGJhc2VfYWRkciwgY3RybF92YWw7CiAJdTY0IGJhc2U2NF9hZGRyOworCXUzMiBiYXNlX2FkZHI7CiAJdTggaGlkZGVuOwogCi0JaWYgKCEocHJpdi0+ZmVhdHVyZXMgJiBGRUFUVVJFX1RDTykpCi0JCXJldHVybjsKLQotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwY2lfZGV2LCBUQ09CQVNFLCAmdGNvX2Jhc2UpOwotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwY2lfZGV2LCBUQ09DVEwsICZ0Y29fY3RsKTsKLQlpZiAoISh0Y29fY3RsICYgVENPQ1RMX0VOKSkKLQkJcmV0dXJuOwotCi0JbWVtc2V0KHRjb19yZXMsIDAsIHNpemVvZih0Y29fcmVzKSk7Ci0KLQlyZXMgPSAmdGNvX3Jlc1tJQ0hfUkVTX0lPX1RDT107Ci0JcmVzLT5zdGFydCA9IHRjb19iYXNlICYgfjE7Ci0JcmVzLT5lbmQgPSByZXMtPnN0YXJ0ICsgMzIgLSAxOwotCXJlcy0+ZmxhZ3MgPSBJT1JFU09VUkNFX0lPOwotCi0JLyoKLQkgKiBQb3dlciBNYW5hZ2VtZW50IHJlZ2lzdGVycy4KLQkgKi8KLQlkZXZmbiA9IFBDSV9ERVZGTihQQ0lfU0xPVChwY2lfZGV2LT5kZXZmbiksIDIpOwotCXBjaV9idXNfcmVhZF9jb25maWdfZHdvcmQocGNpX2Rldi0+YnVzLCBkZXZmbiwgQUNQSUJBU0UsICZiYXNlX2FkZHIpOwotCi0JcmVzID0gJnRjb19yZXNbSUNIX1JFU19JT19TTUldOwotCXJlcy0+c3RhcnQgPSAoYmFzZV9hZGRyICYgfjEpICsgQUNQSUJBU0VfU01JX09GRjsKLQlyZXMtPmVuZCA9IHJlcy0+c3RhcnQgKyAzOwotCXJlcy0+ZmxhZ3MgPSBJT1JFU09VUkNFX0lPOwotCi0JLyoKLQkgKiBFbmFibGUgdGhlIEFDUEkgSS9PIHNwYWNlLgotCSAqLwotCXBjaV9idXNfcmVhZF9jb25maWdfZHdvcmQocGNpX2Rldi0+YnVzLCBkZXZmbiwgQUNQSUNUUkwsICZjdHJsX3ZhbCk7Ci0JY3RybF92YWwgfD0gQUNQSUNUUkxfRU47Ci0JcGNpX2J1c193cml0ZV9jb25maWdfZHdvcmQocGNpX2Rldi0+YnVzLCBkZXZmbiwgQUNQSUNUUkwsIGN0cmxfdmFsKTsKLQogCS8qCiAJICogV2UgbXVzdCBhY2Nlc3MgdGhlIE5PX1JFQk9PVCBiaXQgb3ZlciB0aGUgUHJpbWFyeSB0byBTaWRlYmFuZAogCSAqIGJyaWRnZSAoUDJTQikuIFRoZSBCSU9TIHByZXZlbnRzIHRoZSBQMlNCIGRldmljZSBmcm9tIGJlaW5nCkBAIC0xNTg2LDE1ICsxNTUzLDc2IEBAIHN0YXRpYyB2b2lkIGk4MDFfYWRkX3RjbyhzdHJ1Y3QgaTgwMV9wcml2ICpwcml2KQogCXJlcy0+ZW5kID0gcmVzLT5zdGFydCArIDM7CiAJcmVzLT5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOwogCi0JcGRldiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9yZXNuZGF0YSgmcGNpX2Rldi0+ZGV2LCAiaVRDT193ZHQiLCAtMSwKLQkJCQkJCSB0Y29fcmVzLCAzLCAmdGNvX3BsYXRmb3JtX2RhdGEsCi0JCQkJCQkgc2l6ZW9mKHRjb19wbGF0Zm9ybV9kYXRhKSk7Ci0JaWYgKElTX0VSUihwZGV2KSkgewotCQlkZXZfd2FybigmcGNpX2Rldi0+ZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBpVENPIGRldmljZVxuIik7Ci0JCXJldHVybjsKLQl9CisJcmV0dXJuIHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9yZXNuZGF0YSgmcGNpX2Rldi0+ZGV2LCAiaVRDT193ZHQiLCAtMSwKKwkJCQkJdGNvX3JlcywgMywgJnNwdF90Y29fcGxhdGZvcm1fZGF0YSwKKwkJCQkJc2l6ZW9mKHNwdF90Y29fcGxhdGZvcm1fZGF0YSkpOworfQogCi0JcHJpdi0+dGNvX3BkZXYgPSBwZGV2Oworc3RhdGljIGNvbnN0IHN0cnVjdCBpdGNvX3dkdF9wbGF0Zm9ybV9kYXRhIGNubF90Y29fcGxhdGZvcm1fZGF0YSA9IHsKKwkubmFtZSA9ICJJbnRlbCBQQ0giLAorCS52ZXJzaW9uID0gNiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICoKK2k4MDFfYWRkX3Rjb19jbmwoc3RydWN0IGk4MDFfcHJpdiAqcHJpdiwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYsCisJCSBzdHJ1Y3QgcmVzb3VyY2UgKnRjb19yZXMpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9yZXNuZGF0YSgmcGNpX2Rldi0+ZGV2LCAiaVRDT193ZHQiLCAtMSwKKwkJCQkJdGNvX3JlcywgMiwgJmNubF90Y29fcGxhdGZvcm1fZGF0YSwKKwkJCQkJc2l6ZW9mKGNubF90Y29fcGxhdGZvcm1fZGF0YSkpOworfQorCitzdGF0aWMgdm9pZCBpODAxX2FkZF90Y28oc3RydWN0IGk4MDFfcHJpdiAqcHJpdikKK3sKKwl1MzIgYmFzZV9hZGRyLCB0Y29fYmFzZSwgdGNvX2N0bCwgY3RybF92YWw7CisJc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYgPSBwcml2LT5wY2lfZGV2OworCXN0cnVjdCByZXNvdXJjZSB0Y29fcmVzWzNdLCAqcmVzOworCXVuc2lnbmVkIGludCBkZXZmbjsKKworCS8qIElmIHdlIGhhdmUgQUNQSSBiYXNlZCB3YXRjaGRvZyB1c2UgdGhhdCBpbnN0ZWFkICovCisJaWYgKGFjcGlfaGFzX3dhdGNoZG9nKCkpCisJCXJldHVybjsKKworCWlmICghKHByaXYtPmZlYXR1cmVzICYgKEZFQVRVUkVfVENPX1NQVCB8IEZFQVRVUkVfVENPX0NOTCkpKQorCQlyZXR1cm47CisKKwlwY2lfcmVhZF9jb25maWdfZHdvcmQocGNpX2RldiwgVENPQkFTRSwgJnRjb19iYXNlKTsKKwlwY2lfcmVhZF9jb25maWdfZHdvcmQocGNpX2RldiwgVENPQ1RMLCAmdGNvX2N0bCk7CisJaWYgKCEodGNvX2N0bCAmIFRDT0NUTF9FTikpCisJCXJldHVybjsKKworCW1lbXNldCh0Y29fcmVzLCAwLCBzaXplb2YodGNvX3JlcykpOworCisJcmVzID0gJnRjb19yZXNbSUNIX1JFU19JT19UQ09dOworCXJlcy0+c3RhcnQgPSB0Y29fYmFzZSAmIH4xOworCXJlcy0+ZW5kID0gcmVzLT5zdGFydCArIDMyIC0gMTsKKwlyZXMtPmZsYWdzID0gSU9SRVNPVVJDRV9JTzsKKworCS8qCisJICogUG93ZXIgTWFuYWdlbWVudCByZWdpc3RlcnMuCisJICovCisJZGV2Zm4gPSBQQ0lfREVWRk4oUENJX1NMT1QocGNpX2Rldi0+ZGV2Zm4pLCAyKTsKKwlwY2lfYnVzX3JlYWRfY29uZmlnX2R3b3JkKHBjaV9kZXYtPmJ1cywgZGV2Zm4sIEFDUElCQVNFLCAmYmFzZV9hZGRyKTsKKworCXJlcyA9ICZ0Y29fcmVzW0lDSF9SRVNfSU9fU01JXTsKKwlyZXMtPnN0YXJ0ID0gKGJhc2VfYWRkciAmIH4xKSArIEFDUElCQVNFX1NNSV9PRkY7CisJcmVzLT5lbmQgPSByZXMtPnN0YXJ0ICsgMzsKKwlyZXMtPmZsYWdzID0gSU9SRVNPVVJDRV9JTzsKKworCS8qCisJICogRW5hYmxlIHRoZSBBQ1BJIEkvTyBzcGFjZS4KKwkgKi8KKwlwY2lfYnVzX3JlYWRfY29uZmlnX2R3b3JkKHBjaV9kZXYtPmJ1cywgZGV2Zm4sIEFDUElDVFJMLCAmY3RybF92YWwpOworCWN0cmxfdmFsIHw9IEFDUElDVFJMX0VOOworCXBjaV9idXNfd3JpdGVfY29uZmlnX2R3b3JkKHBjaV9kZXYtPmJ1cywgZGV2Zm4sIEFDUElDVFJMLCBjdHJsX3ZhbCk7CisKKwlpZiAocHJpdi0+ZmVhdHVyZXMgJiBGRUFUVVJFX1RDT19DTkwpCisJCXByaXYtPnRjb19wZGV2ID0gaTgwMV9hZGRfdGNvX2NubChwcml2LCBwY2lfZGV2LCB0Y29fcmVzKTsKKwllbHNlCisJCXByaXYtPnRjb19wZGV2ID0gaTgwMV9hZGRfdGNvX3NwdChwcml2LCBwY2lfZGV2LCB0Y29fcmVzKTsKKworCWlmIChJU19FUlIocHJpdi0+dGNvX3BkZXYpKQorCQlkZXZfd2FybigmcGNpX2Rldi0+ZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBpVENPIGRldmljZVxuIik7CiB9CiAKICNpZmRlZiBDT05GSUdfQUNQSQpAQCAtMTcwNCwxMyArMTczMiwyMSBAQCBzdGF0aWMgaW50IGk4MDFfcHJvYmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogCXN3aXRjaCAoZGV2LT5kZXZpY2UpIHsKIAljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfU1VOUklTRVBPSU5UX0hfU01CVVM6CiAJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1NVTlJJU0VQT0lOVF9MUF9TTUJVUzoKLQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfQ0FOTk9OTEFLRV9IX1NNQlVTOgotCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9DQU5OT05MQUtFX0xQX1NNQlVTOgogCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9MRVdJU0JVUkdfU01CVVM6CiAJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0xFV0lTQlVSR19TU0tVX1NNQlVTOgotCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9DREZfU01CVVM6CiAJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0ROVl9TTUJVUzoKIAljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfS0FCWUxBS0VfUENIX0hfU01CVVM6CisJCXByaXYtPmZlYXR1cmVzIHw9IEZFQVRVUkVfSTJDX0JMT0NLX1JFQUQ7CisJCXByaXYtPmZlYXR1cmVzIHw9IEZFQVRVUkVfSVJROworCQlwcml2LT5mZWF0dXJlcyB8PSBGRUFUVVJFX1NNQlVTX1BFQzsKKwkJcHJpdi0+ZmVhdHVyZXMgfD0gRkVBVFVSRV9CTE9DS19CVUZGRVI7CisJCXByaXYtPmZlYXR1cmVzIHw9IEZFQVRVUkVfVENPX1NQVDsKKwkJcHJpdi0+ZmVhdHVyZXMgfD0gRkVBVFVSRV9IT1NUX05PVElGWTsKKwkJYnJlYWs7CisKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfQ0FOTk9OTEFLRV9IX1NNQlVTOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9DQU5OT05MQUtFX0xQX1NNQlVTOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9DREZfU01CVVM6CiAJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDRUxBS0VfTFBfU01CVVM6CiAJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0NPTUVUTEFLRV9TTUJVUzoKIAljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfRUxLSEFSVF9MQUtFX1NNQlVTOgpAQCAtMTcyMCw5ICsxNzU2LDcgQEAgc3RhdGljIGludCBpODAxX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAkJcHJpdi0+ZmVhdHVyZXMgfD0gRkVBVFVSRV9JUlE7CiAJCXByaXYtPmZlYXR1cmVzIHw9IEZFQVRVUkVfU01CVVNfUEVDOwogCQlwcml2LT5mZWF0dXJlcyB8PSBGRUFUVVJFX0JMT0NLX0JVRkZFUjsKLQkJLyogSWYgd2UgaGF2ZSBBQ1BJIGJhc2VkIHdhdGNoZG9nIHVzZSB0aGF0IGluc3RlYWQgKi8KLQkJaWYgKCFhY3BpX2hhc193YXRjaGRvZygpKQotCQkJcHJpdi0+ZmVhdHVyZXMgfD0gRkVBVFVSRV9UQ087CisJCXByaXYtPmZlYXR1cmVzIHw9IEZFQVRVUkVfVENPX0NOTDsKIAkJcHJpdi0+ZmVhdHVyZXMgfD0gRkVBVFVSRV9IT1NUX05PVElGWTsKIAkJYnJlYWs7CiAKQEAgLTE5MjEsOCArMTk1NSw3IEBAIHN0YXRpYyBpbnQgaTgwMV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIAogc3RhdGljIGludCBpODAxX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYgPSB0b19wY2lfZGV2KGRldik7Ci0Jc3RydWN0IGk4MDFfcHJpdiAqcHJpdiA9IHBjaV9nZXRfZHJ2ZGF0YShwY2lfZGV2KTsKKwlzdHJ1Y3QgaTgwMV9wcml2ICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKIAlpODAxX2VuYWJsZV9ob3N0X25vdGlmeSgmcHJpdi0+YWRhcHRlcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaWN5LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWljeS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzODJlYjYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWljeS5jCkBAIC0wLDAgKzEsMjMwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIEkyQyBkcml2ZXIgZm9yIHN0YW5kLWFsb25lIFBDRjg1ODQgc3R5bGUgYWRhcHRlcnMgb24gWm9ycm8gY2FyZHMKKyAqCisgKiBPcmlnaW5hbCBJQ1kgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgb24gQW1pbmV0OgorICogaHR0cHM6Ly9hbWluZXQubmV0L3BhY2thZ2UvZG9jcy9oYXJkL2ljeQorICoKKyAqIFRoZXJlIGhhcyBiZWVuIGEgbW9kZXJuIGNvbW11bml0eSByZS1wcmludCBvZiB0aGlzIGRlc2lnbiBpbiAyMDE5OgorICogaHR0cHM6Ly93d3cuYTFrLm9yZy9mb3J1bS9pbmRleC5waHA/dGhyZWFkcy83MDEwNi8KKyAqCisgKiBUaGUgY2FyZCBpcyBiYXNpY2FsbHkgYSBQaGlsaXBzIFBDRjg1ODQgY29ubmVjdGVkIHN0cmFpZ2h0IHRvIHRoZQorICogYmVnaW5uaW5nIG9mIHRoZSBBdXRvQ29uZmlnJ2QgYWRkcmVzcyBzcGFjZSAocmVnaXN0ZXIgUzEgb24gYmFzZSsyKSwKKyAqIHdpdGggL0lOVCBvbiAvSU5UMiBvbiB0aGUgWm9ycm8gYnVzLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBNYXggU3RhdWR0IDxtYXhAZW5wYXMub3JnPgorICoKKyAqIFRoaXMgc3RhcnRlZCBhcyBhIGZvcmsgb2YgaTJjLWVsZWt0b3IuYyBhbmQgaGFzIGV2b2x2ZWQgc2luY2UuCisgKiBUaGFua3MgZ28gdG8gaXRzIGF1dGhvcnMgZm9yIHByb3ZpZGluZyBhIGJhc2UgdG8gZ3JvdyBvbi4KKyAqCisgKgorICogSVJRIHN1cHBvcnQgaXMgY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZC4KKyAqCisgKiBBcyBpdCB0dXJucyBvdXQsIGkyYy1hbGdvLXBjZiBpcyByZWFsbHkgd3JpdHRlbiB3aXRoIGkyYy1lbGVrdG9yJ3MKKyAqIGVkZ2UtdHJpZ2dlcmVkIElTQSBpbnRlcnJ1cHRzIGluIG1pbmQsIHdoaWxlIHRoZSBBbWlnYSdzIFpvcnJvIGJ1cyBoYXMKKyAqIGxldmVsLXRyaWdnZXJlZCBpbnRlcnJ1cHRzLiBUaGlzIG1lYW5zIHRoYXQgb25jZSBhbiBpbnRlcnJ1cHQgb2NjdXJzLCB3ZQorICogaGF2ZSB0byB0ZWxsIHRoZSBQQ0Y4NTg0IHRvIHNodXQgdXAgaW1tZWRpYXRlbHksIG9yIGl0IHdpbGwga2VlcCB0aGUKKyAqIGludGVycnVwdCBsaW5lIGJ1c3kgYW5kIGNhdXNlIGFuIElSUSBzdG9ybS4KKworICogSG93ZXZlciwgYmVjYXVzZSBvZiB0aGUgUENGODU4NCdzIGhvc3Qtc2lkZSBwcm90b2NvbCwgdGhlcmUgaXMgbm8gZ29vZAorICogd2F5IHRvIGp1c3QgcXVpZXRlbiBpdCB3aXRob3V0IHNpZGUgZWZmZWN0cy4gUmF0aGVyLCB3ZSBoYXZlIHRvIHBlcmZvcm0KKyAqIHRoZSBuZXh0IHJlYWQvd3JpdGUgb3BlcmF0aW9uIHN0cmFpZ2h0IGF3YXksIHdoaWNoIHdpbGwgcmVzZXQgdGhlIC9JTlQKKyAqIHBpbi4gVGhpcyBlbnRhaWxzIHJlLWRlc2lnbmluZyB0aGUgY29yZSBvZiBpMmMtYWxnby1wY2YgaW4gdGhlIGZ1dHVyZS4KKyAqIEZvciBub3csIHdlIG5ldmVyIHJlcXVlc3QgYW4gSVJRIGZyb20gdGhlIFBDRjg1ODQsIGFuZCBwb2xsIGl0IGluc3RlYWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisKKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMtYWxnby1wY2YuaD4KKworI2luY2x1ZGUgPGFzbS9hbWlnYWludHMuaD4KKyNpbmNsdWRlIDxsaW51eC96b3Jyby5oPgorCisjaW5jbHVkZSAiLi4vYWxnb3MvaTJjLWFsZ28tcGNmLmgiCisKK3N0cnVjdCBpY3lfaTJjIHsKKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgYWRhcHRlcjsKKworCXZvaWQgX19pb21lbSAqcmVnX3MwOworCXZvaWQgX19pb21lbSAqcmVnX3MxOworCXN0cnVjdCBmd25vZGVfaGFuZGxlICpsdGMyOTkwX2Z3bm9kZTsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqbHRjMjk5MF9jbGllbnQ7Cit9OworCisvKgorICogRnVuY3Rpb25zIGNhbGxlZCBieSBpMmMtYWxnby1wY2YKKyAqLworc3RhdGljIHZvaWQgaWN5X3BjZl9zZXRwY2Yodm9pZCAqZGF0YSwgaW50IGN0bCwgaW50IHZhbCkKK3sKKwlzdHJ1Y3QgaWN5X2kyYyAqaTJjID0gKHN0cnVjdCBpY3lfaTJjICopZGF0YTsKKworCXU4IF9faW9tZW0gKmFkZHJlc3MgPSBjdGwgPyBpMmMtPnJlZ19zMSA6IGkyYy0+cmVnX3MwOworCisJel93cml0ZWIodmFsLCBhZGRyZXNzKTsKK30KKworc3RhdGljIGludCBpY3lfcGNmX2dldHBjZih2b2lkICpkYXRhLCBpbnQgY3RsKQoreworCXN0cnVjdCBpY3lfaTJjICppMmMgPSAoc3RydWN0IGljeV9pMmMgKilkYXRhOworCisJdTggX19pb21lbSAqYWRkcmVzcyA9IGN0bCA/IGkyYy0+cmVnX3MxIDogaTJjLT5yZWdfczA7CisKKwlyZXR1cm4gel9yZWFkYihhZGRyZXNzKTsKK30KKworc3RhdGljIGludCBpY3lfcGNmX2dldG93bih2b2lkICpkYXRhKQoreworCXJldHVybiAweDU1OworfQorCitzdGF0aWMgaW50IGljeV9wY2ZfZ2V0Y2xvY2sodm9pZCAqZGF0YSkKK3sKKwlyZXR1cm4gMHgxYzsKK30KKworc3RhdGljIHZvaWQgaWN5X3BjZl93YWl0Zm9ycGluKHZvaWQgKmRhdGEpCit7CisJdXNsZWVwX3JhbmdlKDUwLCAxNTApOworfQorCisvKgorICogTWFpbiBpMmMtaWN5IHBhcnQKKyAqLworc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0IGljeV9sdGMyOTkwX2FkZHJlc3Nlc1tdID0geworCTB4NGMsIDB4NGQsIDB4NGUsIDB4NGYsIEkyQ19DTElFTlRfRU5ECit9OworCisvKgorICogQWRkaXRpb25hbCBzZW5zb3JzIGV4cG9zZWQgb25jZSB0aGlzIHByb3BlcnR5IGlzIGFwcGxpZWQ6CisgKgorICogaW4xIHdpbGwgYmUgdGhlIHZvbHRhZ2Ugb2YgdGhlIDVWIHJhaWwsIGRpdmlkZWQgYnkgMi4KKyAqIGluMiB3aWxsIGJlIHRoZSB2b2x0YWdlIG9mIHRoZSAxMlYgcmFpbCwgZGl2aWRlZCBieSA0LgorICogdGVtcDMgd2lsbCBiZSBtZWFzdXJlZCB1c2luZyBhIFBDQiBsb29wIG5leHQgdGhlIGNoaXAuCisgKi8KK3N0YXRpYyBjb25zdCB1MzIgaWN5X2x0YzI5OTBfbWVhc19tb2RlW10gPSB7MCwgM307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHJvcGVydHlfZW50cnkgaWN5X2x0YzI5OTBfcHJvcHNbXSA9IHsKKwlQUk9QRVJUWV9FTlRSWV9VMzJfQVJSQVkoImxsdGMsbWVhcy1tb2RlIiwgaWN5X2x0YzI5OTBfbWVhc19tb2RlKSwKKwl7IH0KK307CisKK3N0YXRpYyBpbnQgaWN5X3Byb2JlKHN0cnVjdCB6b3Jyb19kZXYgKnosCisJCSAgICAgY29uc3Qgc3RydWN0IHpvcnJvX2RldmljZV9pZCAqZW50KQoreworCXN0cnVjdCBpY3lfaTJjICppMmM7CisJc3RydWN0IGkyY19hbGdvX3BjZl9kYXRhICphbGdvX2RhdGE7CisJc3RydWN0IGZ3bm9kZV9oYW5kbGUgKm5ld19md25vZGU7CisJc3RydWN0IGkyY19ib2FyZF9pbmZvIGx0YzI5OTBfaW5mbyA9IHsKKwkJLnR5cGUJCT0gImx0YzI5OTAiLAorCQkuYWRkcgkJPSAweDRjLAorCX07CisKKwlpMmMgPSBkZXZtX2t6YWxsb2MoJnotPmRldiwgc2l6ZW9mKCppMmMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWkyYykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlhbGdvX2RhdGEgPSBkZXZtX2t6YWxsb2MoJnotPmRldiwgc2l6ZW9mKCphbGdvX2RhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWFsZ29fZGF0YSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkZXZfc2V0X2RydmRhdGEoJnotPmRldiwgaTJjKTsKKwlpMmMtPmFkYXB0ZXIuZGV2LnBhcmVudCA9ICZ6LT5kZXY7CisJaTJjLT5hZGFwdGVyLm93bmVyID0gVEhJU19NT0RVTEU7CisJLyogaTJjLT5hZGFwdGVyLmFsZ28gYXNzaWduZWQgYnkgaTJjX3BjZl9hZGRfYnVzKCkgKi8KKwlpMmMtPmFkYXB0ZXIuYWxnb19kYXRhID0gYWxnb19kYXRhOworCXN0cmxjcHkoaTJjLT5hZGFwdGVyLm5hbWUsICJJQ1kgSTJDIFpvcnJvIGFkYXB0ZXIiLAorCQlzaXplb2YoaTJjLT5hZGFwdGVyLm5hbWUpKTsKKworCWlmICghZGV2bV9yZXF1ZXN0X21lbV9yZWdpb24oJnotPmRldiwKKwkJCQkgICAgIHotPnJlc291cmNlLnN0YXJ0LAorCQkJCSAgICAgNCwgaTJjLT5hZGFwdGVyLm5hbWUpKQorCQlyZXR1cm4gLUVOWElPOworCisJLyogRHJpdmVyIHByaXZhdGUgZGF0YSAqLworCWkyYy0+cmVnX3MwID0gWlRXT19WQUREUih6LT5yZXNvdXJjZS5zdGFydCk7CisJaTJjLT5yZWdfczEgPSBaVFdPX1ZBRERSKHotPnJlc291cmNlLnN0YXJ0ICsgMik7CisKKwlhbGdvX2RhdGEtPmRhdGEgPSBpMmM7CisJYWxnb19kYXRhLT5zZXRwY2YgICAgID0gaWN5X3BjZl9zZXRwY2Y7CisJYWxnb19kYXRhLT5nZXRwY2YgICAgID0gaWN5X3BjZl9nZXRwY2Y7CisJYWxnb19kYXRhLT5nZXRvd24gICAgID0gaWN5X3BjZl9nZXRvd247CisJYWxnb19kYXRhLT5nZXRjbG9jayAgID0gaWN5X3BjZl9nZXRjbG9jazsKKwlhbGdvX2RhdGEtPndhaXRmb3JwaW4gPSBpY3lfcGNmX3dhaXRmb3JwaW47CisKKwlpZiAoaTJjX3BjZl9hZGRfYnVzKCZpMmMtPmFkYXB0ZXIpKSB7CisJCWRldl9lcnIoJnotPmRldiwgImkyY19wY2ZfYWRkX2J1cygpIGZhaWxlZFxuIik7CisJCXJldHVybiAtRU5YSU87CisJfQorCisJZGV2X2luZm8oJnotPmRldiwgIklDWSBJMkMgY29udHJvbGxlciBhdCAlcGEsIElSUSBub3QgaW1wbGVtZW50ZWRcbiIsCisJCSAmei0+cmVzb3VyY2Uuc3RhcnQpOworCisJLyoKKwkgKiBUaGUgMjAxOSBhMWsub3JnIFBDQnMgaGF2ZSBhbiBMVEMyOTkwIGF0IDB4NGMsIHNvIHN0YXJ0CisJICogaXQgYXV0b21hdGljYWxseSBvbmNlIGx0YzI5OTAgaXMgbW9kcHJvYmVkLgorCSAqCisJICogaW4wIGlzIHRoZSB2b2x0YWdlIG9mIHRoZSBpbnRlcm5hbCA1ViBwb3dlciBzdXBwbHkuCisJICogdGVtcDEgaXMgdGhlIHRlbXBlcmF0dXJlIGluc2lkZSB0aGUgY2hpcC4KKwkgKgorCSAqIFNlZSBwcm9wZXJ0eV9lbnRyeSBhYm92ZSBmb3IgaW4xLCBpbjIsIHRlbXAzLgorCSAqLworCW5ld19md25vZGUgPSBmd25vZGVfY3JlYXRlX3NvZnR3YXJlX25vZGUoaWN5X2x0YzI5OTBfcHJvcHMsIE5VTEwpOworCWlmIChJU19FUlIobmV3X2Z3bm9kZSkpIHsKKwkJZGV2X2luZm8oJnotPmRldiwgIkZhaWxlZCB0byBjcmVhdGUgZndub2RlIGZvciBMVEMyOTkwLCBlcnJvcjogJWxkXG4iLAorCQkJIFBUUl9FUlIobmV3X2Z3bm9kZSkpOworCX0gZWxzZSB7CisJCS8qCisJCSAqIFN0b3JlIHRoZSBmd25vZGUgc28gd2UgY2FuIGRlc3Ryb3kgaXQgb24gLnJlbW92ZSgpLgorCQkgKiBPbmx5IHN0b3JlIGl0IG9uIHN1Y2Nlc3MsIGFzIGZ3bm9kZV9yZW1vdmVfc29mdHdhcmVfbm9kZSgpCisJCSAqIGlzIE5VTEwgc2FmZSwgYnV0IG5vdCBQVFJfRVJSIHNhZmUuCisJCSAqLworCQlpMmMtPmx0YzI5OTBfZndub2RlID0gbmV3X2Z3bm9kZTsKKwkJbHRjMjk5MF9pbmZvLmZ3bm9kZSA9IG5ld19md25vZGU7CisKKwkJaTJjLT5sdGMyOTkwX2NsaWVudCA9CisJCQlpMmNfbmV3X3Byb2JlZF9kZXZpY2UoJmkyYy0+YWRhcHRlciwKKwkJCQkJICAgICAgJmx0YzI5OTBfaW5mbywKKwkJCQkJICAgICAgaWN5X2x0YzI5OTBfYWRkcmVzc2VzLAorCQkJCQkgICAgICBOVUxMKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaWN5X3JlbW92ZShzdHJ1Y3Qgem9ycm9fZGV2ICp6KQoreworCXN0cnVjdCBpY3lfaTJjICppMmMgPSBkZXZfZ2V0X2RydmRhdGEoJnotPmRldik7CisKKwlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoaTJjLT5sdGMyOTkwX2NsaWVudCk7CisJZndub2RlX3JlbW92ZV9zb2Z0d2FyZV9ub2RlKGkyYy0+bHRjMjk5MF9md25vZGUpOworCisJaTJjX2RlbF9hZGFwdGVyKCZpMmMtPmFkYXB0ZXIpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHpvcnJvX2RldmljZV9pZCBpY3lfem9ycm9fdGJsW10gPSB7CisJeyBaT1JST19JRChWTUMsIDE1LCAwKSwgfSwKKwl7IDAgfQorfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRSh6b3JybywgaWN5X3pvcnJvX3RibCk7CisKK3N0YXRpYyBzdHJ1Y3Qgem9ycm9fZHJpdmVyIGljeV9kcml2ZXIgPSB7CisJLm5hbWUgICAgICAgICAgID0gImkyYy1pY3kiLAorCS5pZF90YWJsZSAgICAgICA9IGljeV96b3Jyb190YmwsCisJLnByb2JlICAgICAgICAgID0gaWN5X3Byb2JlLAorCS5yZW1vdmUgICAgICAgICA9IGljeV9yZW1vdmUsCit9OworCittb2R1bGVfZHJpdmVyKGljeV9kcml2ZXIsCisJICAgICAgem9ycm9fcmVnaXN0ZXJfZHJpdmVyLAorCSAgICAgIHpvcnJvX3VucmVnaXN0ZXJfZHJpdmVyKTsKKworTU9EVUxFX0FVVEhPUigiTWF4IFN0YXVkdCA8bWF4QGVucGFzLm9yZz4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiSTJDIGJ1cyB2aWEgUENGODU4NCBvbiBJQ1kgWm9ycm8gY2FyZCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pbXgtbHBpMmMuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaW14LWxwaTJjLmMKaW5kZXggZGMwMGZhYi4uYzkyYjU2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pbXgtbHBpMmMuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWlteC1scGkyYy5jCkBAIC01NDUsNyArNTQ1LDYgQEAgTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbHBpMmNfaW14X29mX21hdGNoKTsKIHN0YXRpYyBpbnQgbHBpMmNfaW14X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IGxwaTJjX2lteF9zdHJ1Y3QgKmxwaTJjX2lteDsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAl1bnNpZ25lZCBpbnQgdGVtcDsKIAlpbnQgaXJxLCByZXQ7CiAKQEAgLTU1Myw4ICs1NTIsNyBAQCBzdGF0aWMgaW50IGxwaTJjX2lteF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghbHBpMmNfaW14KQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JbHBpMmNfaW14LT5iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CisJbHBpMmNfaW14LT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwogCWlmIChJU19FUlIobHBpMmNfaW14LT5iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIobHBpMmNfaW14LT5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pbXguYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaW14LmMKaW5kZXggMTVmNmNkZS4uYTNiNjEzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pbXguYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWlteC5jCkBAIC0yMCw2ICsyMCw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CkBAIC0yNTUsNiArMjU2LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGkyY19pbXhfZHRfaWRzW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaTJjX2lteF9kdF9pZHMpOwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkIGkyY19pbXhfYWNwaV9pZHNbXSA9IHsKKwl7Ik5YUDAwMDEiLCAuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpJnZmNjEwX2kyY19od2RhdGF9LAorCXsgfQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoYWNwaSwgaTJjX2lteF9hY3BpX2lkcyk7CisKIHN0YXRpYyBpbmxpbmUgaW50IGlzX2lteDFfaTJjKHN0cnVjdCBpbXhfaTJjX3N0cnVjdCAqaTJjX2lteCkKIHsKIAlyZXR1cm4gaTJjX2lteC0+aHdkYXRhLT5kZXZ0eXBlID09IElNWDFfSTJDOwpAQCAtMTA0OCwxNCArMTA1NSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19hbGdvcml0aG0gaTJjX2lteF9hbGdvID0gewogCiBzdGF0aWMgaW50IGkyY19pbXhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKLQljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZCA9IG9mX21hdGNoX2RldmljZShpMmNfaW14X2R0X2lkcywKLQkJCQkJCQkgICAmcGRldi0+ZGV2KTsKIAlzdHJ1Y3QgaW14X2kyY19zdHJ1Y3QgKmkyY19pbXg7CiAJc3RydWN0IHJlc291cmNlICpyZXM7CiAJc3RydWN0IGlteGkyY19wbGF0Zm9ybV9kYXRhICpwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoJnBkZXYtPmRldik7CiAJdm9pZCBfX2lvbWVtICpiYXNlOwogCWludCBpcnEsIHJldDsKIAlkbWFfYWRkcl90IHBoeV9hZGRyOworCWNvbnN0IHN0cnVjdCBpbXhfaTJjX2h3ZGF0YSAqbWF0Y2g7CiAKIAlkZXZfZGJnKCZwZGV2LT5kZXYsICI8JXM+XG4iLCBfX2Z1bmNfXyk7CiAKQEAgLTEwNzUsOCArMTA4MSw5IEBAIHN0YXRpYyBpbnQgaTJjX2lteF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghaTJjX2lteCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlpZiAob2ZfaWQpCi0JCWkyY19pbXgtPmh3ZGF0YSA9IG9mX2lkLT5kYXRhOworCW1hdGNoID0gZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOworCWlmIChtYXRjaCkKKwkJaTJjX2lteC0+aHdkYXRhID0gbWF0Y2g7CiAJZWxzZQogCQlpMmNfaW14LT5od2RhdGEgPSAoc3RydWN0IGlteF9pMmNfaHdkYXRhICopCiAJCQkJcGxhdGZvcm1fZ2V0X2RldmljZV9pZChwZGV2KS0+ZHJpdmVyX2RhdGE7CkBAIC0xMDg5LDYgKzEwOTYsNyBAQCBzdGF0aWMgaW50IGkyY19pbXhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpMmNfaW14LT5hZGFwdGVyLm5yCQk9IHBkZXYtPmlkOwogCWkyY19pbXgtPmFkYXB0ZXIuZGV2Lm9mX25vZGUJPSBwZGV2LT5kZXYub2Zfbm9kZTsKIAlpMmNfaW14LT5iYXNlCQkJPSBiYXNlOworCUFDUElfQ09NUEFOSU9OX1NFVCgmaTJjX2lteC0+YWRhcHRlci5kZXYsIEFDUElfQ09NUEFOSU9OKCZwZGV2LT5kZXYpKTsKIAogCS8qIEdldCBJMkMgY2xvY2sgKi8KIAlpMmNfaW14LT5jbGsgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgTlVMTCk7CkBAIC0xMjQ3LDYgKzEyNTUsNyBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpMmNfaW14X2RyaXZlciA9IHsKIAkJLm5hbWUgPSBEUklWRVJfTkFNRSwKIAkJLnBtID0gJmkyY19pbXhfcG1fb3BzLAogCQkub2ZfbWF0Y2hfdGFibGUgPSBpMmNfaW14X2R0X2lkcywKKwkJLmFjcGlfbWF0Y2hfdGFibGUgPSBpMmNfaW14X2FjcGlfaWRzLAogCX0sCiAJLmlkX3RhYmxlID0gaW14X2kyY19kZXZ0eXBlLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaXNtdC5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pc210LmMKaW5kZXggMDJkMjNlZC4uMmY5NWUyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pc210LmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pc210LmMKQEAgLTc4MSw4ICs3ODEsNiBAQCBzdGF0aWMgaW50IGlzbXRfZGV2X2luaXQoc3RydWN0IGlzbXRfcHJpdiAqcHJpdikKIAlpZiAoIXByaXYtPmh3KQogCQlyZXR1cm4gLUVOT01FTTsKIAotCW1lbXNldChwcml2LT5odywgMCwgKElTTVRfREVTQ19FTlRSSUVTICogc2l6ZW9mKHN0cnVjdCBpc210X2Rlc2MpKSk7Ci0KIAlwcml2LT5oZWFkID0gMDsKIAlpbml0X2NvbXBsZXRpb24oJnByaXYtPmNtcCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbXhzLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW14cy5jCmluZGV4IDdkNzkzMTcuLjg5MjI0OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbXhzLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1teHMuYwpAQCAtODAyLDcgKzgwMiw2IEBAIHN0YXRpYyBpbnQgbXhzX2kyY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CiAJc3RydWN0IG14c19pMmNfZGV2ICppMmM7CiAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwOwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCWludCBlcnIsIGlycTsKIAogCWkyYyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqaTJjKSwgR0ZQX0tFUk5FTCk7CkBAIC04MTQsOCArODEzLDcgQEAgc3RhdGljIGludCBteHNfaTJjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWkyYy0+ZGV2X3R5cGUgPSBkZXZpY2VfaWQtPmRyaXZlcl9kYXRhOwogCX0KIAotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JaTJjLT5yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CisJaTJjLT5yZWdzID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwogCWlmIChJU19FUlIoaTJjLT5yZWdzKSkKIAkJcmV0dXJuIFBUUl9FUlIoaTJjLT5yZWdzKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1vY29yZXMuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtb2NvcmVzLmMKaW5kZXggNDExN2YxYS4uY2E4YjNlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1vY29yZXMuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW9jb3Jlcy5jCkBAIC03MDMsOCArNzAzLDkgQEAgc3RhdGljIGludCBvY29yZXNfaTJjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJfQogCiAJaWYgKG9jb3Jlc19hbGdvcml0aG0ubWFzdGVyX3hmZXIgIT0gb2NvcmVzX3hmZXJfcG9sbGluZykgewotCQlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIGlycSwgb2NvcmVzX2lzciwgMCwKLQkJCQkgICAgICAgcGRldi0+bmFtZSwgaTJjKTsKKwkJcmV0ID0gZGV2bV9yZXF1ZXN0X2FueV9jb250ZXh0X2lycSgmcGRldi0+ZGV2LCBpcnEsCisJCQkJCQkgICBvY29yZXNfaXNyLCAwLAorCQkJCQkJICAgcGRldi0+bmFtZSwgaTJjKTsKIAkJaWYgKHJldCkgewogCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ2Fubm90IGNsYWltIElSUVxuIik7CiAJCQlnb3RvIGVycl9jbGs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBpaXg0LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBpaXg0LmMKaW5kZXggY2JhMzI1ZS4uMzBkZWQ2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1waWl4NC5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcGlpeDQuYwpAQCAtNzIsNyArNzIsOCBAQAogI2RlZmluZSBQSUlYNF9CTE9DS19EQVRBCTB4MTQKIAogLyogTXVsdGktcG9ydCBjb25zdGFudHMgKi8KLSNkZWZpbmUgUElJWDRfTUFYX0FEQVBURVJTIDQKKyNkZWZpbmUgUElJWDRfTUFYX0FEQVBURVJTCTQKKyNkZWZpbmUgSFVEU09OMl9NQUlOX1BPUlRTCTIgLyogSFVEU09OMiwgS0VSTkNaIHJlc2VydmVzIHBvcnRzIDMsIDQgKi8KIAogLyogU0I4MDAgY29uc3RhbnRzICovCiAjZGVmaW5lIFNCODAwX1BJSVg0X1NNQl9JRFgJCTB4Y2Q2CkBAIC04MDYsMTAgKzgwNywxMiBAQCBNT0RVTEVfREVWSUNFX1RBQkxFIChwY2ksIHBpaXg0X2lkcyk7CiAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKnBpaXg0X21haW5fYWRhcHRlcnNbUElJWDRfTUFYX0FEQVBURVJTXTsKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKnBpaXg0X2F1eF9hZGFwdGVyOworc3RhdGljIGludCBwaWl4NF9hZGFwdGVyX2NvdW50OwogCiBzdGF0aWMgaW50IHBpaXg0X2FkZF9hZGFwdGVyKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHVuc2lnbmVkIHNob3J0IHNtYmEsCiAJCQkgICAgIGJvb2wgc2I4MDBfbWFpbiwgdTggcG9ydCwgYm9vbCBub3RpZnlfaW1jLAotCQkJICAgICBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKipwYWRhcCkKKwkJCSAgICAgdTggaHdfcG9ydF9uciwgY29uc3QgY2hhciAqbmFtZSwKKwkJCSAgICAgc3RydWN0IGkyY19hZGFwdGVyICoqcGFkYXApCiB7CiAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwOwogCXN0cnVjdCBpMmNfcGlpeDRfYWRhcGRhdGEgKmFkYXBkYXRhOwpAQCAtODQxLDYgKzg0NCwxMiBAQCBzdGF0aWMgaW50IHBpaXg0X2FkZF9hZGFwdGVyKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHVuc2lnbmVkIHNob3J0IHNtYmEsCiAJLyogc2V0IHVwIHRoZSBzeXNmcyBsaW5rYWdlIHRvIG91ciBwYXJlbnQgZGV2aWNlICovCiAJYWRhcC0+ZGV2LnBhcmVudCA9ICZkZXYtPmRldjsKIAorCWlmIChoYXNfYWNwaV9jb21wYW5pb24oJmRldi0+ZGV2KSkgeworCQlhY3BpX3ByZXNldF9jb21wYW5pb24oJmFkYXAtPmRldiwKKwkJCQkgICAgICBBQ1BJX0NPTVBBTklPTigmZGV2LT5kZXYpLAorCQkJCSAgICAgIGh3X3BvcnRfbnIpOworCX0KKwogCXNucHJpbnRmKGFkYXAtPm5hbWUsIHNpemVvZihhZGFwLT5uYW1lKSwKIAkJIlNNQnVzIFBJSVg0IGFkYXB0ZXIlcyBhdCAlMDR4IiwgbmFtZSwgc21iYSk7CiAKQEAgLTg2NSw4ICs4NzQsMTkgQEAgc3RhdGljIGludCBwaWl4NF9hZGRfYWRhcHRlcnNfc2I4MDAoc3RydWN0IHBjaV9kZXYgKmRldiwgdW5zaWduZWQgc2hvcnQgc21iYSwKIAlpbnQgcG9ydDsKIAlpbnQgcmV0dmFsOwogCi0JZm9yIChwb3J0ID0gMDsgcG9ydCA8IFBJSVg0X01BWF9BREFQVEVSUzsgcG9ydCsrKSB7CisJaWYgKGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfQU1EX0tFUk5DWl9TTUJVUyB8fAorCSAgICAoZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9BTURfSFVEU09OMl9TTUJVUyAmJgorCSAgICAgZGV2LT5yZXZpc2lvbiA+PSAweDFGKSkgeworCQlwaWl4NF9hZGFwdGVyX2NvdW50ID0gSFVEU09OMl9NQUlOX1BPUlRTOworCX0gZWxzZSB7CisJCXBpaXg0X2FkYXB0ZXJfY291bnQgPSBQSUlYNF9NQVhfQURBUFRFUlM7CisJfQorCisJZm9yIChwb3J0ID0gMDsgcG9ydCA8IHBpaXg0X2FkYXB0ZXJfY291bnQ7IHBvcnQrKykgeworCQl1OCBod19wb3J0X25yID0gcG9ydCA9PSAwID8gMCA6IHBvcnQgKyAxOworCiAJCXJldHZhbCA9IHBpaXg0X2FkZF9hZGFwdGVyKGRldiwgc21iYSwgdHJ1ZSwgcG9ydCwgbm90aWZ5X2ltYywKKwkJCQkJICAgaHdfcG9ydF9uciwKIAkJCQkJICAgcGlpeDRfbWFpbl9wb3J0X25hbWVzX3NiODAwW3BvcnRdLAogCQkJCQkgICAmcGlpeDRfbWFpbl9hZGFwdGVyc1twb3J0XSk7CiAJCWlmIChyZXR2YWwgPCAwKQpAQCAtOTM3LDggKzk1Nyw4IEBAIHN0YXRpYyBpbnQgcGlpeDRfcHJvYmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogCQkJcmV0dXJuIHJldHZhbDsKIAogCQkvKiBUcnkgdG8gcmVnaXN0ZXIgbWFpbiBTTUJ1cyBhZGFwdGVyLCBnaXZlIHVwIGlmIHdlIGNhbid0ICovCi0JCXJldHZhbCA9IHBpaXg0X2FkZF9hZGFwdGVyKGRldiwgcmV0dmFsLCBmYWxzZSwgMCwgZmFsc2UsICIiLAotCQkJCQkgICAmcGlpeDRfbWFpbl9hZGFwdGVyc1swXSk7CisJCXJldHZhbCA9IHBpaXg0X2FkZF9hZGFwdGVyKGRldiwgcmV0dmFsLCBmYWxzZSwgMCwgZmFsc2UsIDAsCisJCQkJCSAgICIiLCAmcGlpeDRfbWFpbl9hZGFwdGVyc1swXSk7CiAJCWlmIChyZXR2YWwgPCAwKQogCQkJcmV0dXJuIHJldHZhbDsKIAl9CkBAIC05NjQsNyArOTg0LDcgQEAgc3RhdGljIGludCBwaWl4NF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCiAJaWYgKHJldHZhbCA+IDApIHsKIAkJLyogVHJ5IHRvIGFkZCB0aGUgYXV4IGFkYXB0ZXIgaWYgaXQgZXhpc3RzLAogCQkgKiBwaWl4NF9hZGRfYWRhcHRlciB3aWxsIGNsZWFuIHVwIGlmIHRoaXMgZmFpbHMgKi8KLQkJcGlpeDRfYWRkX2FkYXB0ZXIoZGV2LCByZXR2YWwsIGZhbHNlLCAwLCBmYWxzZSwKKwkJcGlpeDRfYWRkX2FkYXB0ZXIoZGV2LCByZXR2YWwsIGZhbHNlLCAwLCBmYWxzZSwgMSwKIAkJCQkgIGlzX3NiODAwID8gcGlpeDRfYXV4X3BvcnRfbmFtZV9zYjgwMCA6ICIiLAogCQkJCSAgJnBpaXg0X2F1eF9hZGFwdGVyKTsKIAl9CkBAIC05ODcsNyArMTAwNyw3IEBAIHN0YXRpYyB2b2lkIHBpaXg0X2FkYXBfcmVtb3ZlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCkKIAogc3RhdGljIHZvaWQgcGlpeDRfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0JaW50IHBvcnQgPSBQSUlYNF9NQVhfQURBUFRFUlM7CisJaW50IHBvcnQgPSBwaWl4NF9hZGFwdGVyX2NvdW50OwogCiAJd2hpbGUgKC0tcG9ydCA+PSAwKSB7CiAJCWlmIChwaWl4NF9tYWluX2FkYXB0ZXJzW3BvcnRdKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXNwcmQuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc3ByZC5jCmluZGV4IDk2MTEyMzUuLmI0MzJlNzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc3ByZC5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc3ByZC5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CkBAIC00NjUsOSArNDY2LDkgQEAgc3RhdGljIGludCBzcHJkX2kyY19jbGtfaW5pdChzdHJ1Y3Qgc3ByZF9pMmMgKmkyY19kZXYpCiAKIAlpMmNfZGV2LT5jbGsgPSBkZXZtX2Nsa19nZXQoaTJjX2Rldi0+ZGV2LCAiZW5hYmxlIik7CiAJaWYgKElTX0VSUihpMmNfZGV2LT5jbGspKSB7Ci0JCWRldl93YXJuKGkyY19kZXYtPmRldiwgImkyYyVkIGNhbid0IGdldCB0aGUgZW5hYmxlIGNsb2NrXG4iLAotCQkJIGkyY19kZXYtPmFkYXAubnIpOwotCQlpMmNfZGV2LT5jbGsgPSBOVUxMOworCQlkZXZfZXJyKGkyY19kZXYtPmRldiwgImkyYyVkIGNhbid0IGdldCB0aGUgZW5hYmxlIGNsb2NrXG4iLAorCQkJaTJjX2Rldi0+YWRhcC5ucik7CisJCXJldHVybiBQVFJfRVJSKGkyY19kZXYtPmNsayk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC00NzcsNyArNDc4LDYgQEAgc3RhdGljIGludCBzcHJkX2kyY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CiAJc3RydWN0IHNwcmRfaTJjICppMmNfZGV2OwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCXUzMiBwcm9wOwogCWludCByZXQ7CiAKQEAgLTQ4Nyw4ICs0ODcsNyBAQCBzdGF0aWMgaW50IHNwcmRfaTJjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKCFpMmNfZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JaTJjX2Rldi0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7CisJaTJjX2Rldi0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKIAlpZiAoSVNfRVJSKGkyY19kZXYtPmJhc2UpKQogCQlyZXR1cm4gUFRSX0VSUihpMmNfZGV2LT5iYXNlKTsKIApAQCAtNTIwLDcgKzUxOSwxMCBAQCBzdGF0aWMgaW50IHNwcmRfaTJjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKGkyY19kZXYtPmJ1c19mcmVxICE9IDEwMDAwMCAmJiBpMmNfZGV2LT5idXNfZnJlcSAhPSA0MDAwMDApCiAJCXJldHVybiAtRUlOVkFMOwogCi0Jc3ByZF9pMmNfY2xrX2luaXQoaTJjX2Rldik7CisJcmV0ID0gc3ByZF9pMmNfY2xrX2luaXQoaTJjX2Rldik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGkyY19kZXYpOwogCiAJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGkyY19kZXYtPmNsayk7CkBAIC02NDQsOCArNjQ2LDcgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc3ByZF9pMmNfZHJpdmVyID0gewogCX0sCiB9OwogCi1zdGF0aWMgaW50IHNwcmRfaTJjX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZzcHJkX2kyY19kcml2ZXIpOwotfQotYXJjaF9pbml0Y2FsbF9zeW5jKHNwcmRfaTJjX2luaXQpOworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzcHJkX2kyY19kcml2ZXIpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNwcmVhZHRydW0gSTJDIG1hc3RlciBjb250cm9sbGVyIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zdG0zMmY3LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXN0bTMyZjcuYwppbmRleCAyNjZkMWMyLi5kMzZjZjA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXN0bTMyZjcuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXN0bTMyZjcuYwpAQCAtMTgwOSw3ICsxODA5LDcgQEAgc3RhdGljIHUzMiBzdG0zMmY3X2kyY19mdW5jKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCkKIAkJSTJDX0ZVTkNfU01CVVNfSTJDX0JMT0NLOwogfQogCi1zdGF0aWMgc3RydWN0IGkyY19hbGdvcml0aG0gc3RtMzJmN19pMmNfYWxnbyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2FsZ29yaXRobSBzdG0zMmY3X2kyY19hbGdvID0gewogCS5tYXN0ZXJfeGZlciA9IHN0bTMyZjdfaTJjX3hmZXIsCiAJLnNtYnVzX3hmZXIgPSBzdG0zMmY3X2kyY19zbWJ1c194ZmVyLAogCS5mdW5jdGlvbmFsaXR5ID0gc3RtMzJmN19pMmNfZnVuYywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc3lucXVhY2VyLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXN5bnF1YWNlci5jCmluZGV4IGY3MjRjOGUuLjM5NzYyZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc3lucXVhY2VyLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zeW5xdWFjZXIuYwpAQCAtNTI2LDcgKzUyNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2FsZ29yaXRobSBzeW5xdWFjZXJfaTJjX2FsZ28gPSB7CiAJLmZ1bmN0aW9uYWxpdHkJPSBzeW5xdWFjZXJfaTJjX2Z1bmN0aW9uYWxpdHksCiB9OwogCi1zdGF0aWMgc3RydWN0IGkyY19hZGFwdGVyIHN5bnF1YWNlcl9pMmNfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfYWRhcHRlciBzeW5xdWFjZXJfaTJjX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLm5hbWUJCT0gInN5bnF1YWNlcl9pMmMtYWRhcHRlciIsCiAJLmFsZ28JCT0gJnN5bnF1YWNlcl9pMmNfYWxnbywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdGFvcy1ldm0uYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdGFvcy1ldm0uYwppbmRleCAzNzM0N2M5Li4wYmZmM2YzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXRhb3MtZXZtLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy10YW9zLWV2bS5jCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCB0YW9zX2RhdGEgewogfTsKIAogLyogVEFPUyBUU0wyNTUwIEVWTSAqLwotc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyB0c2wyNTUwX2luZm8gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19ib2FyZF9pbmZvIHRzbDI1NTBfaW5mbyA9IHsKIAlJMkNfQk9BUkRfSU5GTygidHNsMjU1MCIsIDB4MzkpLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy10ZWdyYS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy10ZWdyYS5jCmluZGV4IDlmY2IxM2IuLmMxNjgzZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdGVncmEuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXRlZ3JhLmMKQEAgLTYzNiw3ICs2MzYsNyBAQCBzdGF0aWMgdm9pZCB0ZWdyYV9kdmNfaW5pdChzdHJ1Y3QgdGVncmFfaTJjX2RldiAqaTJjX2RldikKIAlkdmNfd3JpdGVsKGkyY19kZXYsIHZhbCwgRFZDX0NUUkxfUkVHMSk7CiB9CiAKLXN0YXRpYyBpbnQgdGVncmFfaTJjX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgdGVncmFfaTJjX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgdGVncmFfaTJjX2RldiAqaTJjX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCWludCByZXQ7CkBAIC02NjUsNyArNjY1LDcgQEAgc3RhdGljIGludCB0ZWdyYV9pMmNfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHRlZ3JhX2kyY19ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQorc3RhdGljIGludCBfX21heWJlX3VudXNlZCB0ZWdyYV9pMmNfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgdGVncmFfaTJjX2RldiAqaTJjX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCkBAIC03MTMsMTIgKzcxMyw2IEBAIHN0YXRpYyBpbnQgdGVncmFfaTJjX2luaXQoc3RydWN0IHRlZ3JhX2kyY19kZXYgKmkyY19kZXYsIGJvb2wgY2xrX3JlaW5pdCkKIAl1MzIgdHN1X3RoZDsKIAl1OCB0bG93LCB0aGlnaDsKIAotCWVyciA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMoaTJjX2Rldi0+ZGV2KTsKLQlpZiAoZXJyIDwgMCkgewotCQlkZXZfZXJyKGkyY19kZXYtPmRldiwgInJ1bnRpbWUgcmVzdW1lIGZhaWxlZCAlZFxuIiwgZXJyKTsKLQkJcmV0dXJuIGVycjsKLQl9Ci0KIAlyZXNldF9jb250cm9sX2Fzc2VydChpMmNfZGV2LT5yc3QpOwogCXVkZWxheSgyKTsKIAlyZXNldF9jb250cm9sX2RlYXNzZXJ0KGkyY19kZXYtPnJzdCk7CkBAIC03NzIsNyArNzY2LDcgQEAgc3RhdGljIGludCB0ZWdyYV9pMmNfaW5pdChzdHJ1Y3QgdGVncmFfaTJjX2RldiAqaTJjX2RldiwgYm9vbCBjbGtfcmVpbml0KQogCQlpZiAoZXJyKSB7CiAJCQlkZXZfZXJyKGkyY19kZXYtPmRldiwKIAkJCQkiZmFpbGVkIGNoYW5naW5nIGNsb2NrIHJhdGU6ICVkXG4iLCBlcnIpOwotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gZXJyOwogCQl9CiAJfQogCkBAIC03ODcsMjMgKzc4MSwyMSBAQCBzdGF0aWMgaW50IHRlZ3JhX2kyY19pbml0KHN0cnVjdCB0ZWdyYV9pMmNfZGV2ICppMmNfZGV2LCBib29sIGNsa19yZWluaXQpCiAKIAllcnIgPSB0ZWdyYV9pMmNfZmx1c2hfZmlmb3MoaTJjX2Rldik7CiAJaWYgKGVycikKLQkJZ290byBlcnI7CisJCXJldHVybiBlcnI7CiAKIAlpZiAoaTJjX2Rldi0+aXNfbXVsdGltYXN0ZXJfbW9kZSAmJiBpMmNfZGV2LT5ody0+aGFzX3NsY2dfb3ZlcnJpZGVfcmVnKQogCQlpMmNfd3JpdGVsKGkyY19kZXYsIEkyQ19NU1RfQ09SRV9DTEtFTl9PVlIsIEkyQ19DTEtFTl9PVkVSUklERSk7CiAKIAllcnIgPSB0ZWdyYV9pMmNfd2FpdF9mb3JfY29uZmlnX2xvYWQoaTJjX2Rldik7CiAJaWYgKGVycikKLQkJZ290byBlcnI7CisJCXJldHVybiBlcnI7CiAKIAlpZiAoaTJjX2Rldi0+aXJxX2Rpc2FibGVkKSB7CiAJCWkyY19kZXYtPmlycV9kaXNhYmxlZCA9IGZhbHNlOwogCQllbmFibGVfaXJxKGkyY19kZXYtPmlycSk7CiAJfQogCi1lcnI6Ci0JcG1fcnVudGltZV9wdXQoaTJjX2Rldi0+ZGV2KTsKLQlyZXR1cm4gZXJyOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IHRlZ3JhX2kyY19kaXNhYmxlX3BhY2tldF9tb2RlKHN0cnVjdCB0ZWdyYV9pMmNfZGV2ICppMmNfZGV2KQpAQCAtMTYxNiwxMiArMTYwOCwxNCBAQCBzdGF0aWMgaW50IHRlZ3JhX2kyY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCXBtX3J1bnRpbWVfZW5hYmxlKCZwZGV2LT5kZXYpOwotCWlmICghcG1fcnVudGltZV9lbmFibGVkKCZwZGV2LT5kZXYpKSB7CisJaWYgKCFwbV9ydW50aW1lX2VuYWJsZWQoJnBkZXYtPmRldikpCiAJCXJldCA9IHRlZ3JhX2kyY19ydW50aW1lX3Jlc3VtZSgmcGRldi0+ZGV2KTsKLQkJaWYgKHJldCA8IDApIHsKLQkJCWRldl9lcnIoJnBkZXYtPmRldiwgInJ1bnRpbWUgcmVzdW1lIGZhaWxlZFxuIik7Ci0JCQlnb3RvIHVucHJlcGFyZV9kaXZfY2xrOwotCQl9CisJZWxzZQorCQlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKGkyY19kZXYtPmRldik7CisKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJydW50aW1lIHJlc3VtZSBmYWlsZWRcbiIpOworCQlnb3RvIHVucHJlcGFyZV9kaXZfY2xrOwogCX0KIAogCWlmIChpMmNfZGV2LT5pc19tdWx0aW1hc3Rlcl9tb2RlKSB7CkBAIC0xNjY2LDYgKzE2NjAsOCBAQCBzdGF0aWMgaW50IHRlZ3JhX2kyY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmIChyZXQpCiAJCWdvdG8gcmVsZWFzZV9kbWE7CiAKKwlwbV9ydW50aW1lX3B1dCgmcGRldi0+ZGV2KTsKKwogCXJldHVybiAwOwogCiByZWxlYXNlX2RtYToKQEAgLTE3MTEsOCArMTcwNyw3IEBAIHN0YXRpYyBpbnQgdGVncmFfaTJjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXJldHVybiAwOwogfQogCi0jaWZkZWYgQ09ORklHX1BNX1NMRUVQCi1zdGF0aWMgaW50IHRlZ3JhX2kyY19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgdGVncmFfaTJjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCB0ZWdyYV9pMmNfZGV2ICppMmNfZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKQEAgLTE3MjEsMzggKzE3MTYsNDEgQEAgc3RhdGljIGludCB0ZWdyYV9pMmNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdGVncmFfaTJjX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIHRlZ3JhX2kyY19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCB0ZWdyYV9pMmNfZGV2ICppMmNfZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJaW50IGVycjsKIAorCWVyciA9IHRlZ3JhX2kyY19ydW50aW1lX3Jlc3VtZShkZXYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAllcnIgPSB0ZWdyYV9pMmNfaW5pdChpMmNfZGV2LCBmYWxzZSk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAorCWVyciA9IHRlZ3JhX2kyY19ydW50aW1lX3N1c3BlbmQoZGV2KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCiAJaTJjX21hcmtfYWRhcHRlcl9yZXN1bWVkKCZpMmNfZGV2LT5hZGFwdGVyKTsKIAogCXJldHVybiAwOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgdGVncmFfaTJjX3BtID0gewotCVNFVF9TWVNURU1fU0xFRVBfUE1fT1BTKHRlZ3JhX2kyY19zdXNwZW5kLCB0ZWdyYV9pMmNfcmVzdW1lKQorCVNFVF9OT0lSUV9TWVNURU1fU0xFRVBfUE1fT1BTKHRlZ3JhX2kyY19zdXNwZW5kLCB0ZWdyYV9pMmNfcmVzdW1lKQogCVNFVF9SVU5USU1FX1BNX09QUyh0ZWdyYV9pMmNfcnVudGltZV9zdXNwZW5kLCB0ZWdyYV9pMmNfcnVudGltZV9yZXN1bWUsCiAJCQkgICBOVUxMKQogfTsKIAotI2RlZmluZSBURUdSQV9JMkNfUE0JKCZ0ZWdyYV9pMmNfcG0pCi0jZWxzZQotI2RlZmluZSBURUdSQV9JMkNfUE0JTlVMTAotI2VuZGlmCi0KIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHRlZ3JhX2kyY19kcml2ZXIgPSB7CiAJLnByb2JlICAgPSB0ZWdyYV9pMmNfcHJvYmUsCiAJLnJlbW92ZSAgPSB0ZWdyYV9pMmNfcmVtb3ZlLAogCS5kcml2ZXIgID0gewogCQkubmFtZSAgPSAidGVncmEtaTJjIiwKIAkJLm9mX21hdGNoX3RhYmxlID0gdGVncmFfaTJjX29mX21hdGNoLAotCQkucG0gICAgPSBURUdSQV9JMkNfUE0sCisJCS5wbSAgICA9ICZ0ZWdyYV9pMmNfcG0sCiAJfSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdW5pcGhpZXItZi5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy11bmlwaGllci1mLmMKaW5kZXggN2FjY2EyNS4uNDI0MWFhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy11bmlwaGllci1mLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy11bmlwaGllci1mLmMKQEAgLTEwOCw3ICsxMDgsNiBAQCBzdGF0aWMgdm9pZCB1bmlwaGllcl9maTJjX2ZpbGxfdHhmaWZvKHN0cnVjdCB1bmlwaGllcl9maTJjX3ByaXYgKnByaXYsCiAJCWlmIChmaWZvX3NwYWNlLS0gPD0gMCkKIAkJCWJyZWFrOwogCi0JCWRldl9kYmcoJnByaXYtPmFkYXAuZGV2LCAid3JpdGUgZGF0YTogJTAyeFxuIiwgKnByaXYtPmJ1Zik7CiAJCXdyaXRlbCgqcHJpdi0+YnVmKyssIHByaXYtPm1lbWJhc2UgKyBVTklQSElFUl9GSTJDX0RUVFgpOwogCQlwcml2LT5sZW4tLTsKIAl9CkBAIC0xMjQsNyArMTIzLDYgQEAgc3RhdGljIHZvaWQgdW5pcGhpZXJfZmkyY19kcmFpbl9yeGZpZm8oc3RydWN0IHVuaXBoaWVyX2ZpMmNfcHJpdiAqcHJpdikKIAkJCWJyZWFrOwogCiAJCSpwcml2LT5idWYrKyA9IHJlYWRsKHByaXYtPm1lbWJhc2UgKyBVTklQSElFUl9GSTJDX0RUUlgpOwotCQlkZXZfZGJnKCZwcml2LT5hZGFwLmRldiwgInJlYWQgZGF0YTogJTAyeFxuIiwgcHJpdi0+YnVmWy0xXSk7CiAJCXByaXYtPmxlbi0tOwogCX0KIH0KQEAgLTE0Miw4ICsxNDAsNiBAQCBzdGF0aWMgdm9pZCB1bmlwaGllcl9maTJjX2NsZWFyX2lycXMoc3RydWN0IHVuaXBoaWVyX2ZpMmNfcHJpdiAqcHJpdiwKIAogc3RhdGljIHZvaWQgdW5pcGhpZXJfZmkyY19zdG9wKHN0cnVjdCB1bmlwaGllcl9maTJjX3ByaXYgKnByaXYpCiB7Ci0JZGV2X2RiZygmcHJpdi0+YWRhcC5kZXYsICJzdG9wIGNvbmRpdGlvblxuIik7Ci0KIAlwcml2LT5lbmFibGVkX2lycXMgfD0gVU5JUEhJRVJfRkkyQ19JTlRfU1RPUDsKIAl1bmlwaGllcl9maTJjX3NldF9pcnFzKHByaXYpOwogCXdyaXRlbChVTklQSElFUl9GSTJDX0NSX01TVCB8IFVOSVBISUVSX0ZJMkNfQ1JfU1RPLApAQCAtMTYwLDIxICsxNTYsMTUgQEAgc3RhdGljIGlycXJldHVybl90IHVuaXBoaWVyX2ZpMmNfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAlpcnFfc3RhdHVzID0gcmVhZGwocHJpdi0+bWVtYmFzZSArIFVOSVBISUVSX0ZJMkNfSU5UKTsKIAlpcnFfc3RhdHVzICY9IHByaXYtPmVuYWJsZWRfaXJxczsKIAotCWRldl9kYmcoJnByaXYtPmFkYXAuZGV2LAotCQkiaW50ZXJydXB0OiBlbmFibGVkX2lycXM9JTA0eCwgaXJxX3N0YXR1cz0lMDR4XG4iLAotCQlwcml2LT5lbmFibGVkX2lycXMsIGlycV9zdGF0dXMpOwotCiAJaWYgKGlycV9zdGF0dXMgJiBVTklQSElFUl9GSTJDX0lOVF9TVE9QKQogCQlnb3RvIGNvbXBsZXRlOwogCiAJaWYgKHVubGlrZWx5KGlycV9zdGF0dXMgJiBVTklQSElFUl9GSTJDX0lOVF9BTCkpIHsKLQkJZGV2X2RiZygmcHJpdi0+YWRhcC5kZXYsICJhcmJpdHJhdGlvbiBsb3N0XG4iKTsKIAkJcHJpdi0+ZXJyb3IgPSAtRUFHQUlOOwogCQlnb3RvIGNvbXBsZXRlOwogCX0KIAogCWlmICh1bmxpa2VseShpcnFfc3RhdHVzICYgVU5JUEhJRVJfRkkyQ19JTlRfTkEpKSB7Ci0JCWRldl9kYmcoJnByaXYtPmFkYXAuZGV2LCAiY291bGQgbm90IGdldCBBQ0tcbiIpOwogCQlwcml2LT5lcnJvciA9IC1FTlhJTzsKIAkJaWYgKHByaXYtPmZsYWdzICYgVU5JUEhJRVJfRkkyQ19SRCkgewogCQkJLyoKQEAgLTIxNSwxOCArMjA1LDE0IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB1bmlwaGllcl9maTJjX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJCWlmICh1bmxpa2VseShwcml2LT5mbGFncyAmIFVOSVBISUVSX0ZJMkNfTUFOVUFMX05BQ0spKSB7CiAJCQlpZiAocHJpdi0+bGVuIDw9IFVOSVBISUVSX0ZJMkNfRklGT19TSVpFICYmCiAJCQkgICAgIShwcml2LT5mbGFncyAmIFVOSVBISUVSX0ZJMkNfQllURV9XSVNFKSkgewotCQkJCWRldl9kYmcoJnByaXYtPmFkYXAuZGV2LAotCQkJCQkiZW5hYmxlIHJlYWQgYnl0ZSBjb3VudCBJUlFcbiIpOwogCQkJCXByaXYtPmVuYWJsZWRfaXJxcyB8PSBVTklQSElFUl9GSTJDX0lOVF9SQjsKIAkJCQl1bmlwaGllcl9maTJjX3NldF9pcnFzKHByaXYpOwogCQkJCXByaXYtPmZsYWdzIHw9IFVOSVBISUVSX0ZJMkNfQllURV9XSVNFOwogCQkJfQotCQkJaWYgKHByaXYtPmxlbiA8PSAxKSB7Ci0JCQkJZGV2X2RiZygmcHJpdi0+YWRhcC5kZXYsICJzZXQgTkFDS1xuIik7CisJCQlpZiAocHJpdi0+bGVuIDw9IDEpCiAJCQkJd3JpdGVsKFVOSVBISUVSX0ZJMkNfQ1JfTVNUIHwKIAkJCQkgICAgICAgVU5JUEhJRVJfRkkyQ19DUl9OQUNLLAogCQkJCSAgICAgICBwcml2LT5tZW1iYXNlICsgVU5JUEhJRVJfRkkyQ19DUik7Ci0JCQl9CiAJCX0KIAogCQlnb3RvIGhhbmRsZWQ7CkBAIC0zMzQsMTAgKzMyMCw2IEBAIHN0YXRpYyBpbnQgdW5pcGhpZXJfZmkyY19tYXN0ZXJfeGZlcl9vbmUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLAogCWJvb2wgaXNfcmVhZCA9IG1zZy0+ZmxhZ3MgJiBJMkNfTV9SRDsKIAl1bnNpZ25lZCBsb25nIHRpbWVfbGVmdCwgZmxhZ3M7CiAKLQlkZXZfZGJnKCZhZGFwLT5kZXYsICIlczogYWRkcj0weCUwMngsIGxlbj0lZCwgcmVwZWF0PSVkLCBzdG9wPSVkXG4iLAotCQlpc19yZWFkID8gInJlY2VpdmUiIDogInRyYW5zbWl0IiwgbXNnLT5hZGRyLCBtc2ctPmxlbiwKLQkJcmVwZWF0LCBzdG9wKTsKLQogCXByaXYtPmxlbiA9IG1zZy0+bGVuOwogCXByaXYtPmJ1ZiA9IG1zZy0+YnVmOwogCXByaXYtPmVuYWJsZWRfaXJxcyA9IFVOSVBISUVSX0ZJMkNfSU5UX0ZBVUxUUzsKQEAgLTM1OSw3ICszNDEsNiBAQCBzdGF0aWMgaW50IHVuaXBoaWVyX2ZpMmNfbWFzdGVyX3hmZXJfb25lKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwKIAllbHNlCiAJCXVuaXBoaWVyX2ZpMmNfdHhfaW5pdChwcml2LCBtc2ctPmFkZHIsIHJlcGVhdCk7CiAKLQlkZXZfZGJnKCZhZGFwLT5kZXYsICJzdGFydCBjb25kaXRpb25cbiIpOwogCS8qCiAJICogRm9yIGEgcmVwZWF0ZWQgU1RBUlQgY29uZGl0aW9uLCB3cml0aW5nIGEgc2xhdmUgYWRkcmVzcyB0byB0aGUgRklGTwogCSAqIGtpY2tzIHRoZSBjb250cm9sbGVyLiBTbywgdGhlIFVOSVBISUVSX0ZJMkNfQ1IgcmVnaXN0ZXIgc2hvdWxkIGJlCkBAIC0zODMsNyArMzY0LDYgQEAgc3RhdGljIGludCB1bmlwaGllcl9maTJjX21hc3Rlcl94ZmVyX29uZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsCiAJCXVuaXBoaWVyX2ZpMmNfcmVjb3Zlcihwcml2KTsKIAkJcmV0dXJuIC1FVElNRURPVVQ7CiAJfQotCWRldl9kYmcoJmFkYXAtPmRldiwgImNvbXBsZXRlXG4iKTsKIAogCWlmICh1bmxpa2VseShwcml2LT5mbGFncyAmIFVOSVBISUVSX0ZJMkNfREVGRVJfU1RPUF9DT01QKSkgewogCQl1MzIgc3RhdHVzOwpAQCAtNTM4LDcgKzUxOCw2IEBAIHN0YXRpYyBpbnQgdW5pcGhpZXJfZmkyY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CiAJc3RydWN0IHVuaXBoaWVyX2ZpMmNfcHJpdiAqcHJpdjsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlZ3M7CiAJdTMyIGJ1c19zcGVlZDsKIAl1bnNpZ25lZCBsb25nIGNsa19yYXRlOwogCWludCBpcnEsIHJldDsKQEAgLTU0Nyw4ICs1MjYsNyBAQCBzdGF0aWMgaW50IHVuaXBoaWVyX2ZpMmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAoIXByaXYpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JcmVncyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JcHJpdi0+bWVtYmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlZ3MpOworCXByaXYtPm1lbWJhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7CiAJaWYgKElTX0VSUihwcml2LT5tZW1iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIocHJpdi0+bWVtYmFzZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdW5pcGhpZXIuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdW5pcGhpZXIuYwppbmRleCAwMTczODQwLi4wMjcwMDkwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy11bmlwaGllci5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdW5pcGhpZXIuYwpAQCAtNzEsNyArNzEsNiBAQCBzdGF0aWMgaW50IHVuaXBoaWVyX2kyY194ZmVyX2J5dGUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCB1MzIgdHhkYXRhLAogCXJlaW5pdF9jb21wbGV0aW9uKCZwcml2LT5jb21wKTsKIAogCXR4ZGF0YSB8PSBVTklQSElFUl9JMkNfRFRSTV9JUlFFTjsKLQlkZXZfZGJnKCZhZGFwLT5kZXYsICJ3cml0ZSBkYXRhOiAweCUwNHhcbiIsIHR4ZGF0YSk7CiAJd3JpdGVsKHR4ZGF0YSwgcHJpdi0+bWVtYmFzZSArIFVOSVBISUVSX0kyQ19EVFJNKTsKIAogCXRpbWVfbGVmdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmcHJpdi0+Y29tcCwgYWRhcC0+dGltZW91dCk7CkBAIC04MSw4ICs4MCw2IEBAIHN0YXRpYyBpbnQgdW5pcGhpZXJfaTJjX3hmZXJfYnl0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIHUzMiB0eGRhdGEsCiAJfQogCiAJcnhkYXRhID0gcmVhZGwocHJpdi0+bWVtYmFzZSArIFVOSVBISUVSX0kyQ19EUkVDKTsKLQlkZXZfZGJnKCZhZGFwLT5kZXYsICJyZWFkIGRhdGE6IDB4JTA0eFxuIiwgcnhkYXRhKTsKLQogCWlmIChyeGRhdGFwKQogCQkqcnhkYXRhcCA9IHJ4ZGF0YTsKIApAQCAtOTgsMTQgKzk1LDExIEBAIHN0YXRpYyBpbnQgdW5pcGhpZXJfaTJjX3NlbmRfYnl0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIHUzMiB0eGRhdGEpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWlmICh1bmxpa2VseShyeGRhdGEgJiBVTklQSElFUl9JMkNfRFJFQ19MQUIpKSB7Ci0JCWRldl9kYmcoJmFkYXAtPmRldiwgImFyYml0cmF0aW9uIGxvc3RcbiIpOworCWlmICh1bmxpa2VseShyeGRhdGEgJiBVTklQSElFUl9JMkNfRFJFQ19MQUIpKQogCQlyZXR1cm4gLUVBR0FJTjsKLQl9Ci0JaWYgKHVubGlrZWx5KHJ4ZGF0YSAmIFVOSVBISUVSX0kyQ19EUkVDX0xSQikpIHsKLQkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiY291bGQgbm90IGdldCBBQ0tcbiIpOworCisJaWYgKHVubGlrZWx5KHJ4ZGF0YSAmIFVOSVBISUVSX0kyQ19EUkVDX0xSQikpCiAJCXJldHVybiAtRU5YSU87Ci0JfQogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMTUsNyArMTA5LDYgQEAgc3RhdGljIGludCB1bmlwaGllcl9pMmNfdHgoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCB1MTYgYWRkciwgdTE2IGxlbiwKIHsKIAlpbnQgcmV0OwogCi0JZGV2X2RiZygmYWRhcC0+ZGV2LCAic3RhcnQgY29uZGl0aW9uXG4iKTsKIAlyZXQgPSB1bmlwaGllcl9pMmNfc2VuZF9ieXRlKGFkYXAsIGFkZHIgPDwgMSB8CiAJCQkJICAgICBVTklQSElFUl9JMkNfRFRSTV9TVEEgfAogCQkJCSAgICAgVU5JUEhJRVJfSTJDX0RUUk1fTkFDSyk7CkBAIC0xMzcsNyArMTMwLDYgQEAgc3RhdGljIGludCB1bmlwaGllcl9pMmNfcngoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCB1MTYgYWRkciwgdTE2IGxlbiwKIHsKIAlpbnQgcmV0OwogCi0JZGV2X2RiZygmYWRhcC0+ZGV2LCAic3RhcnQgY29uZGl0aW9uXG4iKTsKIAlyZXQgPSB1bmlwaGllcl9pMmNfc2VuZF9ieXRlKGFkYXAsIGFkZHIgPDwgMSB8CiAJCQkJICAgICBVTklQSElFUl9JMkNfRFRSTV9TVEEgfAogCQkJCSAgICAgVU5JUEhJRVJfSTJDX0RUUk1fTkFDSyB8CkBAIC0xNjEsNyArMTUzLDYgQEAgc3RhdGljIGludCB1bmlwaGllcl9pMmNfcngoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCB1MTYgYWRkciwgdTE2IGxlbiwKIAogc3RhdGljIGludCB1bmlwaGllcl9pMmNfc3RvcChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCiB7Ci0JZGV2X2RiZygmYWRhcC0+ZGV2LCAic3RvcCBjb25kaXRpb25cbiIpOwogCXJldHVybiB1bmlwaGllcl9pMmNfc2VuZF9ieXRlKGFkYXAsIFVOSVBISUVSX0kyQ19EVFJNX1NUTyB8CiAJCQkJICAgICAgVU5JUEhJRVJfSTJDX0RUUk1fTkFDSyk7CiB9CkBAIC0xNzMsOSArMTY0LDYgQEAgc3RhdGljIGludCB1bmlwaGllcl9pMmNfbWFzdGVyX3hmZXJfb25lKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwKIAlib29sIHJlY292ZXJ5ID0gZmFsc2U7CiAJaW50IHJldDsKIAotCWRldl9kYmcoJmFkYXAtPmRldiwgIiVzOiBhZGRyPTB4JTAyeCwgbGVuPSVkLCBzdG9wPSVkXG4iLAotCQlpc19yZWFkID8gInJlY2VpdmUiIDogInRyYW5zbWl0IiwgbXNnLT5hZGRyLCBtc2ctPmxlbiwgc3RvcCk7Ci0KIAlpZiAoaXNfcmVhZCkKIAkJcmV0ID0gdW5pcGhpZXJfaTJjX3J4KGFkYXAsIG1zZy0+YWRkciwgbXNnLT5sZW4sIG1zZy0+YnVmKTsKIAllbHNlCkBAIC0zMjYsNyArMzE0LDYgQEAgc3RhdGljIGludCB1bmlwaGllcl9pMmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwogCXN0cnVjdCB1bmlwaGllcl9pMmNfcHJpdiAqcHJpdjsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlZ3M7CiAJdTMyIGJ1c19zcGVlZDsKIAl1bnNpZ25lZCBsb25nIGNsa19yYXRlOwogCWludCBpcnEsIHJldDsKQEAgLTMzNSw4ICszMjIsNyBAQCBzdGF0aWMgaW50IHVuaXBoaWVyX2kyY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghcHJpdikKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlyZWdzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlwcml2LT5tZW1iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgcmVncyk7CisJcHJpdi0+bWVtYmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKIAlpZiAoSVNfRVJSKHByaXYtPm1lbWJhc2UpKQogCQlyZXR1cm4gUFRSX0VSUihwcml2LT5tZW1iYXNlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvaTJjLWNvcmUtYmFzZS5jIGIvZHJpdmVycy9pMmMvaTJjLWNvcmUtYmFzZS5jCmluZGV4IDcyYjMwMDEuLjVmNmE0OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2kyYy1jb3JlLWJhc2UuYworKysgYi9kcml2ZXJzL2kyYy9pMmMtY29yZS1iYXNlLmMKQEAgLTM1MCwxMyArMzUwLDExIEBAIHN0YXRpYyBpbnQgaTJjX2RldmljZV9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCXJldHVybiAtRU5PREVWOwogCiAJaWYgKGNsaWVudC0+ZmxhZ3MgJiBJMkNfQ0xJRU5UX1dBS0UpIHsKLQkJaW50IHdha2VpcnEgPSAtRU5PRU5UOworCQlpbnQgd2FrZWlycTsKIAotCQlpZiAoZGV2LT5vZl9ub2RlKSB7Ci0JCQl3YWtlaXJxID0gb2ZfaXJxX2dldF9ieW5hbWUoZGV2LT5vZl9ub2RlLCAid2FrZXVwIik7Ci0JCQlpZiAod2FrZWlycSA9PSAtRVBST0JFX0RFRkVSKQotCQkJCXJldHVybiB3YWtlaXJxOwotCQl9CisJCXdha2VpcnEgPSBvZl9pcnFfZ2V0X2J5bmFtZShkZXYtPm9mX25vZGUsICJ3YWtldXAiKTsKKwkJaWYgKHdha2VpcnEgPT0gLUVQUk9CRV9ERUZFUikKKwkJCXJldHVybiB3YWtlaXJxOwogCiAJCWRldmljZV9pbml0X3dha2V1cCgmY2xpZW50LT5kZXYsIHRydWUpOwogCkBAIC05NjYsNyArOTY0LDcgQEAgc3RydWN0IGkyY19jbGllbnQgKmRldm1faTJjX25ld19kdW1teV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LAogRVhQT1JUX1NZTUJPTF9HUEwoZGV2bV9pMmNfbmV3X2R1bW15X2RldmljZSk7CiAKIC8qKgotICogaTJjX25ld19zZWNvbmRhcnlfZGV2aWNlIC0gSGVscGVyIHRvIGdldCB0aGUgaW5zdGFudGlhdGVkIHNlY29uZGFyeSBhZGRyZXNzCisgKiBpMmNfbmV3X2FuY2lsbGFyeV9kZXZpY2UgLSBIZWxwZXIgdG8gZ2V0IHRoZSBpbnN0YW50aWF0ZWQgc2Vjb25kYXJ5IGFkZHJlc3MKICAqIGFuZCBjcmVhdGUgdGhlIGFzc29jaWF0ZWQgZGV2aWNlCiAgKiBAY2xpZW50OiBIYW5kbGUgdG8gdGhlIHByaW1hcnkgY2xpZW50CiAgKiBAbmFtZTogSGFuZGxlIHRvIHNwZWNpZnkgd2hpY2ggc2Vjb25kYXJ5IGFkZHJlc3MgdG8gZ2V0CkBAIC05ODUsOSArOTgzLDkgQEAgRVhQT1JUX1NZTUJPTF9HUEwoZGV2bV9pMmNfbmV3X2R1bW15X2RldmljZSk7CiAgKiBjZWxsIHdob3NlICJyZWctbmFtZXMiIHZhbHVlIG1hdGNoZXMgdGhlIHNsYXZlIG5hbWUuCiAgKgogICogVGhpcyByZXR1cm5zIHRoZSBuZXcgaTJjIGNsaWVudCwgd2hpY2ggc2hvdWxkIGJlIHNhdmVkIGZvciBsYXRlciB1c2Ugd2l0aAotICogaTJjX3VucmVnaXN0ZXJfZGV2aWNlKCk7IG9yIE5VTEwgdG8gaW5kaWNhdGUgYW4gZXJyb3IuCisgKiBpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoKTsgb3IgYW4gRVJSX1BUUiB0byBkZXNjcmliZSB0aGUgZXJyb3IuCiAgKi8KLXN0cnVjdCBpMmNfY2xpZW50ICppMmNfbmV3X3NlY29uZGFyeV9kZXZpY2Uoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKK3N0cnVjdCBpMmNfY2xpZW50ICppMmNfbmV3X2FuY2lsbGFyeV9kZXZpY2Uoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJCQkJCWNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCQl1MTYgZGVmYXVsdF9hZGRyKQogewpAQCAtMTAwMiw5ICsxMDAwLDkgQEAgc3RydWN0IGkyY19jbGllbnQgKmkyY19uZXdfc2Vjb25kYXJ5X2RldmljZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCX0KIAogCWRldl9kYmcoJmNsaWVudC0+YWRhcHRlci0+ZGV2LCAiQWRkcmVzcyBmb3IgJXMgOiAweCV4XG4iLCBuYW1lLCBhZGRyKTsKLQlyZXR1cm4gaTJjX25ld19kdW1teShjbGllbnQtPmFkYXB0ZXIsIGFkZHIpOworCXJldHVybiBpMmNfbmV3X2R1bW15X2RldmljZShjbGllbnQtPmFkYXB0ZXIsIGFkZHIpOwogfQotRVhQT1JUX1NZTUJPTF9HUEwoaTJjX25ld19zZWNvbmRhcnlfZGV2aWNlKTsKK0VYUE9SVF9TWU1CT0xfR1BMKGkyY19uZXdfYW5jaWxsYXJ5X2RldmljZSk7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvaTJjLXNsYXZlLWVlcHJvbS5jIGIvZHJpdmVycy9pMmMvaTJjLXNsYXZlLWVlcHJvbS5jCmluZGV4IGJlNjVkMzguLjkyZmY5OTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2kyYy1zbGF2ZS1lZXByb20uYworKysgYi9kcml2ZXJzL2kyYy9pMmMtc2xhdmUtZWVwcm9tLmMKQEAgLTExLDYgKzExLDEzIEBACiAgKiBwb2ludGVyLCB5ZXQgaW1wbGVtZW50YXRpb24gaXMgZGVmZXJyZWQgdW50aWwgdGhlIG5lZWQgYWN0dWFsbHkgYXJpc2VzLgogICovCiAKKy8qCisgKiBGSVhNRTogV2hhdCB0byBkbyBpZiBvbmx5IDggYml0cyBvZiBhIDE2IGJpdCBhZGRyZXNzIGFyZSBzZW50PworICogVGhlIFNULU0yNEM2NCBzZW5kcyBvbmx5IDB4ZmYgdGhlbi4gTmVlZHMgdmVyaWZpY2F0aW9uIHdpdGggb3RoZXIKKyAqIEVFUFJPTXMsIHRob3VnaC4gV2UgY3VycmVudGx5IHVzZSB0aGUgOCBiaXQgYXMgYSB2YWxpZCBhZGRyZXNzLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTIxLDEyICsyOCwxOCBAQAogCiBzdHJ1Y3QgZWVwcm9tX2RhdGEgewogCXN0cnVjdCBiaW5fYXR0cmlidXRlIGJpbjsKLQlib29sIGZpcnN0X3dyaXRlOwogCXNwaW5sb2NrX3QgYnVmZmVyX2xvY2s7Ci0JdTggYnVmZmVyX2lkeDsKKwl1MTYgYnVmZmVyX2lkeDsKKwl1MTYgYWRkcmVzc19tYXNrOworCXU4IG51bV9hZGRyZXNzX2J5dGVzOworCXU4IGlkeF93cml0ZV9jbnQ7CiAJdTggYnVmZmVyW107CiB9OwogCisjZGVmaW5lIEkyQ19TTEFWRV9CWVRFTEVOIEdFTk1BU0soMTUsIDApCisjZGVmaW5lIEkyQ19TTEFWRV9GTEFHX0FERFIxNiBCSVQoMTYpCisjZGVmaW5lIEkyQ19TTEFWRV9ERVZJQ0VfTUFHSUMoX2xlbiwgX2ZsYWdzKSAoKF9mbGFncykgfCAoX2xlbikpCisKIHN0YXRpYyBpbnQgaTJjX3NsYXZlX2VlcHJvbV9zbGF2ZV9jYihzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCQkJCSAgICAgZW51bSBpMmNfc2xhdmVfZXZlbnQgZXZlbnQsIHU4ICp2YWwpCiB7CkBAIC0zNCwxMiArNDcsMTQgQEAgc3RhdGljIGludCBpMmNfc2xhdmVfZWVwcm9tX3NsYXZlX2NiKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAKIAlzd2l0Y2ggKGV2ZW50KSB7CiAJY2FzZSBJMkNfU0xBVkVfV1JJVEVfUkVDRUlWRUQ6Ci0JCWlmIChlZXByb20tPmZpcnN0X3dyaXRlKSB7Ci0JCQllZXByb20tPmJ1ZmZlcl9pZHggPSAqdmFsOwotCQkJZWVwcm9tLT5maXJzdF93cml0ZSA9IGZhbHNlOworCQlpZiAoZWVwcm9tLT5pZHhfd3JpdGVfY250IDwgZWVwcm9tLT5udW1fYWRkcmVzc19ieXRlcykgeworCQkJaWYgKGVlcHJvbS0+aWR4X3dyaXRlX2NudCA9PSAwKQorCQkJCWVlcHJvbS0+YnVmZmVyX2lkeCA9IDA7CisJCQllZXByb20tPmJ1ZmZlcl9pZHggPSAqdmFsIHwgKGVlcHJvbS0+YnVmZmVyX2lkeCA8PCA4KTsKKwkJCWVlcHJvbS0+aWR4X3dyaXRlX2NudCsrOwogCQl9IGVsc2UgewogCQkJc3Bpbl9sb2NrKCZlZXByb20tPmJ1ZmZlcl9sb2NrKTsKLQkJCWVlcHJvbS0+YnVmZmVyW2VlcHJvbS0+YnVmZmVyX2lkeCsrXSA9ICp2YWw7CisJCQllZXByb20tPmJ1ZmZlcltlZXByb20tPmJ1ZmZlcl9pZHgrKyAmIGVlcHJvbS0+YWRkcmVzc19tYXNrXSA9ICp2YWw7CiAJCQlzcGluX3VubG9jaygmZWVwcm9tLT5idWZmZXJfbG9jayk7CiAJCX0KIAkJYnJlYWs7CkBAIC01MCw3ICs2NSw3IEBAIHN0YXRpYyBpbnQgaTJjX3NsYXZlX2VlcHJvbV9zbGF2ZV9jYihzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCQkvKiBmYWxsdGhyb3VnaCAqLwogCWNhc2UgSTJDX1NMQVZFX1JFQURfUkVRVUVTVEVEOgogCQlzcGluX2xvY2soJmVlcHJvbS0+YnVmZmVyX2xvY2spOwotCQkqdmFsID0gZWVwcm9tLT5idWZmZXJbZWVwcm9tLT5idWZmZXJfaWR4XTsKKwkJKnZhbCA9IGVlcHJvbS0+YnVmZmVyW2VlcHJvbS0+YnVmZmVyX2lkeCAmIGVlcHJvbS0+YWRkcmVzc19tYXNrXTsKIAkJc3Bpbl91bmxvY2soJmVlcHJvbS0+YnVmZmVyX2xvY2spOwogCQkvKgogCQkgKiBEbyBub3QgaW5jcmVtZW50IGJ1ZmZlcl9pZHggaGVyZSwgYmVjYXVzZSB3ZSBkb24ndCBrbm93IGlmCkBAIC02MSw3ICs3Niw3IEBAIHN0YXRpYyBpbnQgaTJjX3NsYXZlX2VlcHJvbV9zbGF2ZV9jYihzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCiAJY2FzZSBJMkNfU0xBVkVfU1RPUDoKIAljYXNlIEkyQ19TTEFWRV9XUklURV9SRVFVRVNURUQ6Ci0JCWVlcHJvbS0+Zmlyc3Rfd3JpdGUgPSB0cnVlOworCQllZXByb20tPmlkeF93cml0ZV9jbnQgPSAwOwogCQlicmVhazsKIAogCWRlZmF1bHQ6CkBAIC0xMDUsMTMgKzEyMCwxNiBAQCBzdGF0aWMgaW50IGkyY19zbGF2ZV9lZXByb21fcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgY29uc3Qgc3RydWN0IGkyY19kZQogewogCXN0cnVjdCBlZXByb21fZGF0YSAqZWVwcm9tOwogCWludCByZXQ7Ci0JdW5zaWduZWQgc2l6ZSA9IGlkLT5kcml2ZXJfZGF0YTsKKwl1bnNpZ25lZCBpbnQgc2l6ZSA9IEZJRUxEX0dFVChJMkNfU0xBVkVfQllURUxFTiwgaWQtPmRyaXZlcl9kYXRhKTsKKwl1bnNpZ25lZCBpbnQgZmxhZ19hZGRyMTYgPSBGSUVMRF9HRVQoSTJDX1NMQVZFX0ZMQUdfQUREUjE2LCBpZC0+ZHJpdmVyX2RhdGEpOwogCiAJZWVwcm9tID0gZGV2bV9remFsbG9jKCZjbGllbnQtPmRldiwgc2l6ZW9mKHN0cnVjdCBlZXByb21fZGF0YSkgKyBzaXplLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWVlcHJvbSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQllZXByb20tPmZpcnN0X3dyaXRlID0gdHJ1ZTsKKwllZXByb20tPmlkeF93cml0ZV9jbnQgPSAwOworCWVlcHJvbS0+bnVtX2FkZHJlc3NfYnl0ZXMgPSBmbGFnX2FkZHIxNiA/IDIgOiAxOworCWVlcHJvbS0+YWRkcmVzc19tYXNrID0gc2l6ZSAtIDE7CiAJc3Bpbl9sb2NrX2luaXQoJmVlcHJvbS0+YnVmZmVyX2xvY2spOwogCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIGVlcHJvbSk7CiAKQEAgLTE0Niw3ICsxNjQsOSBAQCBzdGF0aWMgaW50IGkyY19zbGF2ZV9lZXByb21fcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCBpMmNfc2xhdmVfZWVwcm9tX2lkW10gPSB7Ci0JeyAic2xhdmUtMjRjMDIiLCAyMDQ4IC8gOCB9LAorCXsgInNsYXZlLTI0YzAyIiwgSTJDX1NMQVZFX0RFVklDRV9NQUdJQygyMDQ4IC8gOCwgIDApIH0sCisJeyAic2xhdmUtMjRjMzIiLCBJMkNfU0xBVkVfREVWSUNFX01BR0lDKDMyNzY4IC8gOCwgSTJDX1NMQVZFX0ZMQUdfQUREUjE2KSB9LAorCXsgInNsYXZlLTI0YzY0IiwgSTJDX1NMQVZFX0RFVklDRV9NQUdJQyg2NTUzNiAvIDgsIEkyQ19TTEFWRV9GTEFHX0FERFIxNikgfSwKIAl7IH0KIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKGkyYywgaTJjX3NsYXZlX2VlcHJvbV9pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hY2NlbC9jcm9zX2VjX2FjY2VsX2xlZ2FjeS5jIGIvZHJpdmVycy9paW8vYWNjZWwvY3Jvc19lY19hY2NlbF9sZWdhY3kuYwppbmRleCAzOTAwMmNiLi5mY2MzZjk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9hY2NlbC9jcm9zX2VjX2FjY2VsX2xlZ2FjeS5jCisrKyBiL2RyaXZlcnMvaWlvL2FjY2VsL2Nyb3NfZWNfYWNjZWxfbGVnYWN5LmMKQEAgLTE5LDkgKzE5LDEwIEBACiAjaW5jbHVkZSA8bGludXgvaWlvL3RyaWdnZXJlZF9idWZmZXIuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjX2NvbW1hbmRzLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19wcm90by5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAjZGVmaW5lIERSVl9OQU1FCSJjcm9zLWVjLWFjY2VsLWxlZ2FjeSIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2NvbW1vbi9jcm9zX2VjX3NlbnNvcnMvS2NvbmZpZyBiL2RyaXZlcnMvaWlvL2NvbW1vbi9jcm9zX2VjX3NlbnNvcnMvS2NvbmZpZwppbmRleCBiY2I1OGZiLi5jZGJiMjljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9jb21tb24vY3Jvc19lY19zZW5zb3JzL0tjb25maWcKKysrIGIvZHJpdmVycy9paW8vY29tbW9uL2Nyb3NfZWNfc2Vuc29ycy9LY29uZmlnCkBAIC00LDcgKzQsNyBAQAogIwogY29uZmlnIElJT19DUk9TX0VDX1NFTlNPUlNfQ09SRQogCXRyaXN0YXRlICJDaHJvbWVPUyBFQyBTZW5zb3JzIENvcmUiCi0JZGVwZW5kcyBvbiBTWVNGUyAmJiBNRkRfQ1JPU19FQworCWRlcGVuZHMgb24gU1lTRlMgJiYgQ1JPU19FQwogCXNlbGVjdCBJSU9fQlVGRkVSCiAJc2VsZWN0IElJT19UUklHR0VSRURfQlVGRkVSCiAJaGVscApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vY29tbW9uL2Nyb3NfZWNfc2Vuc29ycy9jcm9zX2VjX2xpZF9hbmdsZS5jIGIvZHJpdmVycy9paW8vY29tbW9uL2Nyb3NfZWNfc2Vuc29ycy9jcm9zX2VjX2xpZF9hbmdsZS5jCmluZGV4IDg3NmRmZDEuLjFkY2MyYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2NvbW1vbi9jcm9zX2VjX3NlbnNvcnMvY3Jvc19lY19saWRfYW5nbGUuYworKysgYi9kcml2ZXJzL2lpby9jb21tb24vY3Jvc19lY19zZW5zb3JzL2Nyb3NfZWNfbGlkX2FuZ2xlLmMKQEAgLTIwLDkgKzIwLDggQEAKICNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dlcmVkX2J1ZmZlci5oPgogI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyX2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lY19jb21tYW5kcy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vY29tbW9uL2Nyb3NfZWNfc2Vuc29ycy9jcm9zX2VjX3NlbnNvcnMuYyBiL2RyaXZlcnMvaWlvL2NvbW1vbi9jcm9zX2VjX3NlbnNvcnMvY3Jvc19lY19zZW5zb3JzLmMKaW5kZXggNmE0OTE5Yy4uYTY5ODc3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9paW8vY29tbW9uL2Nyb3NfZWNfc2Vuc29ycy9jcm9zX2VjX3NlbnNvcnMuYworKysgYi9kcml2ZXJzL2lpby9jb21tb24vY3Jvc19lY19zZW5zb3JzL2Nyb3NfZWNfc2Vuc29ycy5jCkBAIC0xNyw4ICsxNyw5IEBACiAjaW5jbHVkZSA8bGludXgvaWlvL3RyaWdnZXJlZF9idWZmZXIuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjX2NvbW1hbmRzLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9jb21tb24vY3Jvc19lY19zZW5zb3JzL2Nyb3NfZWNfc2Vuc29yc19jb3JlLmMgYi9kcml2ZXJzL2lpby9jb21tb24vY3Jvc19lY19zZW5zb3JzL2Nyb3NfZWNfc2Vuc29yc19jb3JlLmMKaW5kZXggZDQ0YWUxMi4uZDI2MDllNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9paW8vY29tbW9uL2Nyb3NfZWNfc2Vuc29ycy9jcm9zX2VjX3NlbnNvcnNfY29yZS5jCisrKyBiL2RyaXZlcnMvaWlvL2NvbW1vbi9jcm9zX2VjX3NlbnNvcnMvY3Jvc19lY19zZW5zb3JzX2NvcmUuYwpAQCAtMTQsOSArMTQsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dlcl9jb25zdW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAKIHN0YXRpYyBjaGFyICpjcm9zX2VjX2xvY1tdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vbGlnaHQvY3Jvc19lY19saWdodF9wcm94LmMgYi9kcml2ZXJzL2lpby9saWdodC9jcm9zX2VjX2xpZ2h0X3Byb3guYwppbmRleCA0NDMxM2EwLi5jNTI2M2I1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9saWdodC9jcm9zX2VjX2xpZ2h0X3Byb3guYworKysgYi9kcml2ZXJzL2lpby9saWdodC9jcm9zX2VjX2xpZ2h0X3Byb3guYwpAQCAtMTUsOCArMTUsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyX2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lY19jb21tYW5kcy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19wcm90by5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vcHJlc3N1cmUvY3Jvc19lY19iYXJvLmMgYi9kcml2ZXJzL2lpby9wcmVzc3VyZS9jcm9zX2VjX2Jhcm8uYwppbmRleCA3MDE0ODYyLi4yMzU0MzAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9wcmVzc3VyZS9jcm9zX2VjX2Jhcm8uYworKysgYi9kcml2ZXJzL2lpby9wcmVzc3VyZS9jcm9zX2VjX2Jhcm8uYwpAQCAtMTUsOSArMTUsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dlcl9jb25zdW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvS2NvbmZpZyBiL2RyaXZlcnMvaW5maW5pYmFuZC9LY29uZmlnCmluZGV4IDg1ZTEwM2IuLmI0NGIxYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9LY29uZmlnCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9LY29uZmlnCkBAIC01NSw2ICs1NSw3IEBACiAJYm9vbCAiSW5maW5pQmFuZCBvbi1kZW1hbmQgcGFnaW5nIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBJTkZJTklCQU5EX1VTRVJfTUVNCiAJc2VsZWN0IE1NVV9OT1RJRklFUgorCXNlbGVjdCBJTlRFUlZBTF9UUkVFCiAJZGVmYXVsdCB5CiAJLS0taGVscC0tLQogCSAgT24gZGVtYW5kIHBhZ2luZyBzdXBwb3J0IGZvciB0aGUgSW5maW5pQmFuZCBzdWJzeXN0ZW0uCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZGRyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZGRyLmMKaW5kZXggYmY1MzljMy4uNmQ3ZWMzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWRkci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FkZHIuYwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRpYyBpbnQgaWJfbmxfaXBfc2VuZF9tc2coc3RydWN0IHJkbWFfZGV2X2FkZHIgKmRldl9hZGRyLAogCiAJLyogUmVwYWlyIHRoZSBubG1zZyBoZWFkZXIgbGVuZ3RoICovCiAJbmxtc2dfZW5kKHNrYiwgbmxoKTsKLQlyZG1hX25sX211bHRpY2FzdChza2IsIFJETUFfTkxfR1JPVVBfTFMsIEdGUF9LRVJORUwpOworCXJkbWFfbmxfbXVsdGljYXN0KCZpbml0X25ldCwgc2tiLCBSRE1BX05MX0dST1VQX0xTLCBHRlBfS0VSTkVMKTsKIAogCS8qIE1ha2UgdGhlIHJlcXVlc3QgcmV0cnksIHNvIHdoZW4gd2UgZ2V0IHRoZSByZXNwb25zZSBmcm9tIHVzZXJzcGFjZQogCSAqIHdlIHdpbGwgaGF2ZSBzb21ldGhpbmcuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jYWNoZS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY2FjaGUuYwppbmRleCAxOGU0NzZiLi4wMGZiM2VhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jYWNoZS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NhY2hlLmMKQEAgLTgxMCw2ICs4MTAsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlX2dpZF90YWJsZShzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsCiAJaWYgKGxlYWspCiAJCXJldHVybjsKIAorCW11dGV4X2Rlc3Ryb3koJnRhYmxlLT5sb2NrKTsKIAlrZnJlZSh0YWJsZS0+ZGF0YV92ZWMpOwogCWtmcmVlKHRhYmxlKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmMKaW5kZXggYTY4ZDBjYy4uMGUzY2YzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmMKQEAgLTMwNDYsNyArMzA0Niw3IEBAIHN0YXRpYyB2b2lkIGFkZHJfaGFuZGxlcihpbnQgc3RhdHVzLCBzdHJ1Y3Qgc29ja2FkZHIgKnNyY19hZGRyLAogCQlpZiAoc3RhdHVzKQogCQkJcHJfZGVidWdfcmF0ZWxpbWl0ZWQoIlJETUEgQ006IEFERFJfRVJST1I6IGZhaWxlZCB0byBhY3F1aXJlIGRldmljZS4gc3RhdHVzICVkXG4iLAogCQkJCQkgICAgIHN0YXR1cyk7Ci0JfSBlbHNlIHsKKwl9IGVsc2UgaWYgKHN0YXR1cykgewogCQlwcl9kZWJ1Z19yYXRlbGltaXRlZCgiUkRNQSBDTTogQUREUl9FUlJPUjogZmFpbGVkIHRvIHJlc29sdmUgSVAuIHN0YXR1cyAlZFxuIiwgc3RhdHVzKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYV9jb25maWdmcy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hX2NvbmZpZ2ZzLmMKaW5kZXggM2VjMmM0MS4uOGIwYjVhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hX2NvbmZpZ2ZzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hX2NvbmZpZ2ZzLmMKQEAgLTM0MiwxMiArMzQyLDE4IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnZnNfc3Vic3lzdGVtIGNtYV9zdWJzeXMgPSB7CiAKIGludCBfX2luaXQgY21hX2NvbmZpZ2ZzX2luaXQodm9pZCkKIHsKKwlpbnQgcmV0OworCiAJY29uZmlnX2dyb3VwX2luaXQoJmNtYV9zdWJzeXMuc3VfZ3JvdXApOwogCW11dGV4X2luaXQoJmNtYV9zdWJzeXMuc3VfbXV0ZXgpOwotCXJldHVybiBjb25maWdmc19yZWdpc3Rlcl9zdWJzeXN0ZW0oJmNtYV9zdWJzeXMpOworCXJldCA9IGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbSgmY21hX3N1YnN5cyk7CisJaWYgKHJldCkKKwkJbXV0ZXhfZGVzdHJveSgmY21hX3N1YnN5cy5zdV9tdXRleCk7CisJcmV0dXJuIHJldDsKIH0KIAogdm9pZCBfX2V4aXQgY21hX2NvbmZpZ2ZzX2V4aXQodm9pZCkKIHsKIAljb25maWdmc191bnJlZ2lzdGVyX3N1YnN5c3RlbSgmY21hX3N1YnN5cyk7CisJbXV0ZXhfZGVzdHJveSgmY21hX3N1YnN5cy5zdV9tdXRleCk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jb3JlX3ByaXYuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NvcmVfcHJpdi5oCmluZGV4IGJlZWU3YjcuLjNhOGIwOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NvcmVfcHJpdi5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NvcmVfcHJpdi5oCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvY2dyb3VwX3JkbWEuaD4KKyNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPgorI2luY2x1ZGUgPG5ldC9uZXRucy9nZW5lcmljLmg+CiAKICNpbmNsdWRlIDxyZG1hL2liX3ZlcmJzLmg+CiAjaW5jbHVkZSA8cmRtYS9vcGFfYWRkci5oPgpAQCAtNTQsOCArNTYsMjYgQEAgc3RydWN0IHBrZXlfaW5kZXhfcXBfbGlzdCB7CiAJc3RydWN0IGxpc3RfaGVhZCAgICBxcF9saXN0OwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgcmRtYV9kZXZfbmV0IC0gcmRtYSBuZXQgbmFtZXNwYWNlIG1ldGFkYXRhIGZvciBhIG5ldAorICogQG5sX3NvY2s6CVBvaW50ZXIgdG8gbmV0bGluayBzb2NrZXQKKyAqIEBuZXQ6CVBvaW50ZXIgdG8gb3duZXIgbmV0IG5hbWVzcGFjZQorICogQGlkOgkJeGFycmF5IGlkIHRvIGlkZW50aWZ5IHRoZSBuZXQgbmFtZXNwYWNlLgorICovCitzdHJ1Y3QgcmRtYV9kZXZfbmV0IHsKKwlzdHJ1Y3Qgc29jayAqbmxfc29jazsKKwlwb3NzaWJsZV9uZXRfdCBuZXQ7CisJdTMyIGlkOworfTsKKwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgaWJfZGV2X2F0dHJfZ3JvdXA7CiBleHRlcm4gYm9vbCBpYl9kZXZpY2VzX3NoYXJlZF9uZXRuczsKK2V4dGVybiB1bnNpZ25lZCBpbnQgcmRtYV9kZXZfbmV0X2lkOworCitzdGF0aWMgaW5saW5lIHN0cnVjdCByZG1hX2Rldl9uZXQgKnJkbWFfbmV0X3RvX2Rldl9uZXQoc3RydWN0IG5ldCAqbmV0KQoreworCXJldHVybiBuZXRfZ2VuZXJpYyhuZXQsIHJkbWFfZGV2X25ldF9pZCk7Cit9CiAKIGludCBpYl9kZXZpY2VfcmVnaXN0ZXJfc3lzZnMoc3RydWN0IGliX2RldmljZSAqZGV2aWNlKTsKIHZvaWQgaWJfZGV2aWNlX3VucmVnaXN0ZXJfc3lzZnMoc3RydWN0IGliX2RldmljZSAqZGV2aWNlKTsKQEAgLTE3OSw3ICsxOTksNiBAQCB2b2lkIGliX21hZF9jbGVhbnVwKHZvaWQpOwogaW50IGliX3NhX2luaXQodm9pZCk7CiB2b2lkIGliX3NhX2NsZWFudXAodm9pZCk7CiAKLWludCByZG1hX25sX2luaXQodm9pZCk7CiB2b2lkIHJkbWFfbmxfZXhpdCh2b2lkKTsKIAogaW50IGliX25sX2hhbmRsZV9yZXNvbHZlX3Jlc3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwKQEAgLTM2NSw0ICszODQsNyBAQCB2b2lkIGliX3BvcnRfdW5yZWdpc3Rlcl9tb2R1bGVfc3RhdChzdHJ1Y3Qga29iamVjdCAqa29iaik7CiAKIGludCBpYl9kZXZpY2Vfc2V0X25ldG5zX3B1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJICAgIHN0cnVjdCBpYl9kZXZpY2UgKmRldiwgdTMyIG5zX2ZkKTsKKworaW50IHJkbWFfbmxfbmV0X2luaXQoc3RydWN0IHJkbWFfZGV2X25ldCAqcm5ldCk7Cit2b2lkIHJkbWFfbmxfbmV0X2V4aXQoc3RydWN0IHJkbWFfZGV2X25ldCAqcm5ldCk7CiAjZW5kaWYgLyogX0NPUkVfUFJJVl9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jb3VudGVycy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY291bnRlcnMuYwppbmRleCBhZjhjODVkLi42ODBhZDI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jb3VudGVycy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NvdW50ZXJzLmMKQEAgLTU5OSw3ICs1OTksNyBAQCBpbnQgcmRtYV9jb3VudGVyX2dldF9tb2RlKHN0cnVjdCBpYl9kZXZpY2UgKmRldiwgdTggcG9ydCwKIHZvaWQgcmRtYV9jb3VudGVyX2luaXQoc3RydWN0IGliX2RldmljZSAqZGV2KQogewogCXN0cnVjdCByZG1hX3BvcnRfY291bnRlciAqcG9ydF9jb3VudGVyOwotCXUzMiBwb3J0OworCXUzMiBwb3J0LCBpOwogCiAJaWYgKCFkZXYtPnBvcnRfZGF0YSkKIAkJcmV0dXJuOwpAQCAtNjIwLDEzICs2MjAsMTIgQEAgdm9pZCByZG1hX2NvdW50ZXJfaW5pdChzdHJ1Y3QgaWJfZGV2aWNlICpkZXYpCiAJcmV0dXJuOwogCiBmYWlsOgotCXJkbWFfZm9yX2VhY2hfcG9ydChkZXYsIHBvcnQpIHsKKwlmb3IgKGkgPSBwb3J0OyBpID49IHJkbWFfc3RhcnRfcG9ydChkZXYpOyBpLS0pIHsKIAkJcG9ydF9jb3VudGVyID0gJmRldi0+cG9ydF9kYXRhW3BvcnRdLnBvcnRfY291bnRlcjsKIAkJa2ZyZWUocG9ydF9jb3VudGVyLT5oc3RhdHMpOwogCQlwb3J0X2NvdW50ZXItPmhzdGF0cyA9IE5VTEw7CisJCW11dGV4X2Rlc3Ryb3koJnBvcnRfY291bnRlci0+bG9jayk7CiAJfQotCi0JcmV0dXJuOwogfQogCiB2b2lkIHJkbWFfY291bnRlcl9yZWxlYXNlKHN0cnVjdCBpYl9kZXZpY2UgKmRldikKQEAgLTYzNyw1ICs2MzYsNiBAQCB2b2lkIHJkbWFfY291bnRlcl9yZWxlYXNlKHN0cnVjdCBpYl9kZXZpY2UgKmRldikKIAlyZG1hX2Zvcl9lYWNoX3BvcnQoZGV2LCBwb3J0KSB7CiAJCXBvcnRfY291bnRlciA9ICZkZXYtPnBvcnRfZGF0YVtwb3J0XS5wb3J0X2NvdW50ZXI7CiAJCWtmcmVlKHBvcnRfY291bnRlci0+aHN0YXRzKTsKKwkJbXV0ZXhfZGVzdHJveSgmcG9ydF9jb3VudGVyLT5sb2NrKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jcS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY3EuYwppbmRleCA3YzU5OTg3Li5iYmZkZWQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NxLmMKQEAgLTI1Myw2ICsyNTMsMzQgQEAgc3RydWN0IGliX2NxICpfX2liX2FsbG9jX2NxX3VzZXIoc3RydWN0IGliX2RldmljZSAqZGV2LCB2b2lkICpwcml2YXRlLAogRVhQT1JUX1NZTUJPTChfX2liX2FsbG9jX2NxX3VzZXIpOwogCiAvKioKKyAqIF9faWJfYWxsb2NfY3FfYW55IC0gYWxsb2NhdGUgYSBjb21wbGV0aW9uIHF1ZXVlCisgKiBAZGV2OgkJZGV2aWNlIHRvIGFsbG9jYXRlIHRoZSBDUSBmb3IKKyAqIEBwcml2YXRlOgkJZHJpdmVyIHByaXZhdGUgZGF0YSwgYWNjZXNzaWJsZSBmcm9tIGNxLT5jcV9jb250ZXh0CisgKiBAbnJfY3FlOgkJbnVtYmVyIG9mIENRRXMgdG8gYWxsb2NhdGUKKyAqIEBwb2xsX2N0eDoJCWNvbnRleHQgdG8gcG9sbCB0aGUgQ1EgZnJvbQorICogQGNhbGxlcjoJCW1vZHVsZSBvd25lciBuYW1lCisgKgorICogQXR0ZW1wdCB0byBzcHJlYWQgVUxQIENvbXBsZXRpb24gUXVldWVzIG92ZXIgZWFjaCBkZXZpY2UncyBpbnRlcnJ1cHQKKyAqIHZlY3RvcnMuIEEgc2ltcGxlIGJlc3QtZWZmb3J0IG1lY2hhbmlzbSBpcyB1c2VkLgorICovCitzdHJ1Y3QgaWJfY3EgKl9faWJfYWxsb2NfY3FfYW55KHN0cnVjdCBpYl9kZXZpY2UgKmRldiwgdm9pZCAqcHJpdmF0ZSwKKwkJCQlpbnQgbnJfY3FlLCBlbnVtIGliX3BvbGxfY29udGV4dCBwb2xsX2N0eCwKKwkJCQljb25zdCBjaGFyICpjYWxsZXIpCit7CisJc3RhdGljIGF0b21pY190IGNvdW50ZXI7CisJaW50IGNvbXBfdmVjdG9yID0gMDsKKworCWlmIChkZXYtPm51bV9jb21wX3ZlY3RvcnMgPiAxKQorCQljb21wX3ZlY3RvciA9CisJCQlhdG9taWNfaW5jX3JldHVybigmY291bnRlcikgJQorCQkJbWluX3QoaW50LCBkZXYtPm51bV9jb21wX3ZlY3RvcnMsIG51bV9vbmxpbmVfY3B1cygpKTsKKworCXJldHVybiBfX2liX2FsbG9jX2NxX3VzZXIoZGV2LCBwcml2YXRlLCBucl9jcWUsIGNvbXBfdmVjdG9yLCBwb2xsX2N0eCwKKwkJCQkgIGNhbGxlciwgTlVMTCk7Cit9CitFWFBPUlRfU1lNQk9MKF9faWJfYWxsb2NfY3FfYW55KTsKKworLyoqCiAgKiBpYl9mcmVlX2NxX3VzZXIgLSBmcmVlIGEgY29tcGxldGlvbiBxdWV1ZQogICogQGNxOgkJY29tcGxldGlvbiBxdWV1ZSB0byBmcmVlLgogICogQHVkYXRhOglVc2VyIGRhdGEgb3IgTlVMTCBmb3Iga2VybmVsIG9iamVjdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYwppbmRleCBlYTg2NjFhLi45OWM0YTU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYwpAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2UuaD4KICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPgotI2luY2x1ZGUgPG5ldC9uZXRucy9nZW5lcmljLmg+CiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgogI2luY2x1ZGUgPGxpbnV4L2hhc2h0YWJsZS5oPgpAQCAtMTExLDE3ICsxMTAsNyBAQCBzdGF0aWMgdm9pZCBpYl9jbGllbnRfcHV0KHN0cnVjdCBpYl9jbGllbnQgKmNsaWVudCkKICAqLwogI2RlZmluZSBDTElFTlRfREFUQV9SRUdJU1RFUkVEIFhBX01BUktfMQogCi0vKioKLSAqIHN0cnVjdCByZG1hX2Rldl9uZXQgLSByZG1hIG5ldCBuYW1lc3BhY2UgbWV0YWRhdGEgZm9yIGEgbmV0Ci0gKiBAbmV0OglQb2ludGVyIHRvIG93bmVyIG5ldCBuYW1lc3BhY2UKLSAqIEBpZDoJCXhhcnJheSBpZCB0byBpZGVudGlmeSB0aGUgbmV0IG5hbWVzcGFjZS4KLSAqLwotc3RydWN0IHJkbWFfZGV2X25ldCB7Ci0JcG9zc2libGVfbmV0X3QgbmV0OwotCXUzMiBpZDsKLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgcmRtYV9kZXZfbmV0X2lkOwordW5zaWduZWQgaW50IHJkbWFfZGV2X25ldF9pZDsKIAogLyoKICAqIEEgbGlzdCBvZiBuZXQgbmFtZXNwYWNlcyBpcyBtYWludGFpbmVkIGluIGFuIHhhcnJheS4gVGhpcyBpcyBuZWNlc3NhcnkKQEAgLTUxNCw2ICs1MDMsOSBAQCBzdGF0aWMgdm9pZCBpYl9kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCiAJCQkgIHJjdV9oZWFkKTsKIAl9CiAKKwltdXRleF9kZXN0cm95KCZkZXYtPnVucmVnaXN0cmF0aW9uX2xvY2spOworCW11dGV4X2Rlc3Ryb3koJmRldi0+Y29tcGF0X2RldnNfbXV0ZXgpOworCiAJeGFfZGVzdHJveSgmZGV2LT5jb21wYXRfZGV2cyk7CiAJeGFfZGVzdHJveSgmZGV2LT5jbGllbnRfZGF0YSk7CiAJa2ZyZWVfcmN1KGRldiwgcmN1X2hlYWQpOwpAQCAtMTA2MCw3ICsxMDUyLDcgQEAgaW50IHJkbWFfY29tcGF0ZGV2X3NldCh1OCBlbmFibGUpCiAKIHN0YXRpYyB2b2lkIHJkbWFfZGV2X2V4aXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkKIHsKLQlzdHJ1Y3QgcmRtYV9kZXZfbmV0ICpybmV0ID0gbmV0X2dlbmVyaWMobmV0LCByZG1hX2Rldl9uZXRfaWQpOworCXN0cnVjdCByZG1hX2Rldl9uZXQgKnJuZXQgPSByZG1hX25ldF90b19kZXZfbmV0KG5ldCk7CiAJc3RydWN0IGliX2RldmljZSAqZGV2OwogCXVuc2lnbmVkIGxvbmcgaW5kZXg7CiAJaW50IHJldDsKQEAgLTEwOTQsMjUgKzEwODYsMzIgQEAgc3RhdGljIHZvaWQgcmRtYV9kZXZfZXhpdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogCX0KIAl1cF9yZWFkKCZkZXZpY2VzX3J3c2VtKTsKIAorCXJkbWFfbmxfbmV0X2V4aXQocm5ldCk7CiAJeGFfZXJhc2UoJnJkbWFfbmV0cywgcm5ldC0+aWQpOwogfQogCiBzdGF0aWMgX19uZXRfaW5pdCBpbnQgcmRtYV9kZXZfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogewotCXN0cnVjdCByZG1hX2Rldl9uZXQgKnJuZXQgPSBuZXRfZ2VuZXJpYyhuZXQsIHJkbWFfZGV2X25ldF9pZCk7CisJc3RydWN0IHJkbWFfZGV2X25ldCAqcm5ldCA9IHJkbWFfbmV0X3RvX2Rldl9uZXQobmV0KTsKIAl1bnNpZ25lZCBsb25nIGluZGV4OwogCXN0cnVjdCBpYl9kZXZpY2UgKmRldjsKIAlpbnQgcmV0OwogCisJd3JpdGVfcG5ldCgmcm5ldC0+bmV0LCBuZXQpOworCisJcmV0ID0gcmRtYV9ubF9uZXRfaW5pdChybmV0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJLyogTm8gbmVlZCB0byBjcmVhdGUgYW55IGNvbXBhdCBkZXZpY2VzIGluIGRlZmF1bHQgaW5pdF9uZXQuICovCiAJaWYgKG5ldF9lcShuZXQsICZpbml0X25ldCkpCiAJCXJldHVybiAwOwogCi0Jd3JpdGVfcG5ldCgmcm5ldC0+bmV0LCBuZXQpOwotCiAJcmV0ID0geGFfYWxsb2MoJnJkbWFfbmV0cywgJnJuZXQtPmlkLCBybmV0LCB4YV9saW1pdF8zMmIsIEdGUF9LRVJORUwpOwotCWlmIChyZXQpCisJaWYgKHJldCkgeworCQlyZG1hX25sX25ldF9leGl0KHJuZXQpOwogCQlyZXR1cm4gcmV0OworCX0KIAogCWRvd25fcmVhZCgmZGV2aWNlc19yd3NlbSk7CiAJeGFfZm9yX2VhY2hfbWFya2VkICgmZGV2aWNlcywgaW5kZXgsIGRldiwgREVWSUNFX1JFR0lTVEVSRUQpIHsKQEAgLTE5NzQsNiArMTk3Myw3NCBAQCB2b2lkIGliX2Rpc3BhdGNoX2V2ZW50KHN0cnVjdCBpYl9ldmVudCAqZXZlbnQpCiB9CiBFWFBPUlRfU1lNQk9MKGliX2Rpc3BhdGNoX2V2ZW50KTsKIAorc3RhdGljIGludCBpd19xdWVyeV9wb3J0KHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKKwkJCSAgIHU4IHBvcnRfbnVtLAorCQkJICAgc3RydWN0IGliX3BvcnRfYXR0ciAqcG9ydF9hdHRyKQoreworCXN0cnVjdCBpbl9kZXZpY2UgKmluZXRkZXY7CisJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjsKKwlpbnQgZXJyOworCisJbWVtc2V0KHBvcnRfYXR0ciwgMCwgc2l6ZW9mKCpwb3J0X2F0dHIpKTsKKworCW5ldGRldiA9IGliX2RldmljZV9nZXRfbmV0ZGV2KGRldmljZSwgcG9ydF9udW0pOworCWlmICghbmV0ZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWRldl9wdXQobmV0ZGV2KTsKKworCXBvcnRfYXR0ci0+bWF4X210dSA9IElCX01UVV80MDk2OworCXBvcnRfYXR0ci0+YWN0aXZlX210dSA9IGliX210dV9pbnRfdG9fZW51bShuZXRkZXYtPm10dSk7CisKKwlpZiAoIW5ldGlmX2NhcnJpZXJfb2sobmV0ZGV2KSkgeworCQlwb3J0X2F0dHItPnN0YXRlID0gSUJfUE9SVF9ET1dOOworCQlwb3J0X2F0dHItPnBoeXNfc3RhdGUgPSBJQl9QT1JUX1BIWVNfU1RBVEVfRElTQUJMRUQ7CisJfSBlbHNlIHsKKwkJaW5ldGRldiA9IGluX2Rldl9nZXQobmV0ZGV2KTsKKworCQlpZiAoaW5ldGRldiAmJiBpbmV0ZGV2LT5pZmFfbGlzdCkgeworCQkJcG9ydF9hdHRyLT5zdGF0ZSA9IElCX1BPUlRfQUNUSVZFOworCQkJcG9ydF9hdHRyLT5waHlzX3N0YXRlID0gSUJfUE9SVF9QSFlTX1NUQVRFX0xJTktfVVA7CisJCQlpbl9kZXZfcHV0KGluZXRkZXYpOworCQl9IGVsc2UgeworCQkJcG9ydF9hdHRyLT5zdGF0ZSA9IElCX1BPUlRfSU5JVDsKKwkJCXBvcnRfYXR0ci0+cGh5c19zdGF0ZSA9CisJCQkJSUJfUE9SVF9QSFlTX1NUQVRFX1BPUlRfQ09ORklHVVJBVElPTl9UUkFJTklORzsKKwkJfQorCX0KKworCWVyciA9IGRldmljZS0+b3BzLnF1ZXJ5X3BvcnQoZGV2aWNlLCBwb3J0X251bSwgcG9ydF9hdHRyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19pYl9xdWVyeV9wb3J0KHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKKwkJCSAgIHU4IHBvcnRfbnVtLAorCQkJICAgc3RydWN0IGliX3BvcnRfYXR0ciAqcG9ydF9hdHRyKQoreworCXVuaW9uIGliX2dpZCBnaWQgPSB7fTsKKwlpbnQgZXJyOworCisJbWVtc2V0KHBvcnRfYXR0ciwgMCwgc2l6ZW9mKCpwb3J0X2F0dHIpKTsKKworCWVyciA9IGRldmljZS0+b3BzLnF1ZXJ5X3BvcnQoZGV2aWNlLCBwb3J0X251bSwgcG9ydF9hdHRyKTsKKwlpZiAoZXJyIHx8IHBvcnRfYXR0ci0+c3VibmV0X3ByZWZpeCkKKwkJcmV0dXJuIGVycjsKKworCWlmIChyZG1hX3BvcnRfZ2V0X2xpbmtfbGF5ZXIoZGV2aWNlLCBwb3J0X251bSkgIT0KKwkgICAgSUJfTElOS19MQVlFUl9JTkZJTklCQU5EKQorCQlyZXR1cm4gMDsKKworCWVyciA9IGRldmljZS0+b3BzLnF1ZXJ5X2dpZChkZXZpY2UsIHBvcnRfbnVtLCAwLCAmZ2lkKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJcG9ydF9hdHRyLT5zdWJuZXRfcHJlZml4ID0gYmU2NF90b19jcHUoZ2lkLmdsb2JhbC5zdWJuZXRfcHJlZml4KTsKKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKiBpYl9xdWVyeV9wb3J0IC0gUXVlcnkgSUIgcG9ydCBhdHRyaWJ1dGVzCiAgKiBAZGV2aWNlOkRldmljZSB0byBxdWVyeQpAQCAtMTk4NywyNiArMjA1NCwxMyBAQCBpbnQgaWJfcXVlcnlfcG9ydChzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsCiAJCSAgdTggcG9ydF9udW0sCiAJCSAgc3RydWN0IGliX3BvcnRfYXR0ciAqcG9ydF9hdHRyKQogewotCXVuaW9uIGliX2dpZCBnaWQ7Ci0JaW50IGVycjsKLQogCWlmICghcmRtYV9pc19wb3J0X3ZhbGlkKGRldmljZSwgcG9ydF9udW0pKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCW1lbXNldChwb3J0X2F0dHIsIDAsIHNpemVvZigqcG9ydF9hdHRyKSk7Ci0JZXJyID0gZGV2aWNlLT5vcHMucXVlcnlfcG9ydChkZXZpY2UsIHBvcnRfbnVtLCBwb3J0X2F0dHIpOwotCWlmIChlcnIgfHwgcG9ydF9hdHRyLT5zdWJuZXRfcHJlZml4KQotCQlyZXR1cm4gZXJyOwotCi0JaWYgKHJkbWFfcG9ydF9nZXRfbGlua19sYXllcihkZXZpY2UsIHBvcnRfbnVtKSAhPSBJQl9MSU5LX0xBWUVSX0lORklOSUJBTkQpCi0JCXJldHVybiAwOwotCi0JZXJyID0gZGV2aWNlLT5vcHMucXVlcnlfZ2lkKGRldmljZSwgcG9ydF9udW0sIDAsICZnaWQpOwotCWlmIChlcnIpCi0JCXJldHVybiBlcnI7Ci0KLQlwb3J0X2F0dHItPnN1Ym5ldF9wcmVmaXggPSBiZTY0X3RvX2NwdShnaWQuZ2xvYmFsLnN1Ym5ldF9wcmVmaXgpOwotCXJldHVybiAwOworCWlmIChyZG1hX3Byb3RvY29sX2l3YXJwKGRldmljZSwgcG9ydF9udW0pKQorCQlyZXR1cm4gaXdfcXVlcnlfcG9ydChkZXZpY2UsIHBvcnRfbnVtLCBwb3J0X2F0dHIpOworCWVsc2UKKwkJcmV0dXJuIF9faWJfcXVlcnlfcG9ydChkZXZpY2UsIHBvcnRfbnVtLCBwb3J0X2F0dHIpOwogfQogRVhQT1JUX1NZTUJPTChpYl9xdWVyeV9wb3J0KTsKIApAQCAtMjU2Miw2ICsyNjE2LDcgQEAgdm9pZCBpYl9zZXRfZGV2aWNlX29wcyhzdHJ1Y3QgaWJfZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBpYl9kZXZpY2Vfb3BzICpvcHMpCiAJU0VUX0RFVklDRV9PUChkZXZfb3BzLCBnZXRfdmZfY29uZmlnKTsKIAlTRVRfREVWSUNFX09QKGRldl9vcHMsIGdldF92Zl9zdGF0cyk7CiAJU0VUX0RFVklDRV9PUChkZXZfb3BzLCBpbml0X3BvcnQpOworCVNFVF9ERVZJQ0VfT1AoZGV2X29wcywgaW52YWxpZGF0ZV9yYW5nZSk7CiAJU0VUX0RFVklDRV9PUChkZXZfb3BzLCBpd19hY2NlcHQpOwogCVNFVF9ERVZJQ0VfT1AoZGV2X29wcywgaXdfYWRkX3JlZik7CiAJU0VUX0RFVklDRV9PUChkZXZfb3BzLCBpd19jb25uZWN0KTsKQEAgLTI2NjAsMTIgKzI3MTUsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBpYl9jb3JlX2luaXQodm9pZCkKIAkJZ290byBlcnJfY29tcF91bmJvdW5kOwogCX0KIAotCXJldCA9IHJkbWFfbmxfaW5pdCgpOwotCWlmIChyZXQpIHsKLQkJcHJfd2FybigiQ291bGRuJ3QgaW5pdCBJQiBuZXRsaW5rIGludGVyZmFjZTogZXJyICVkXG4iLCByZXQpOwotCQlnb3RvIGVycl9zeXNmczsKLQl9Ci0KIAlyZXQgPSBhZGRyX2luaXQoKTsKIAlpZiAocmV0KSB7CiAJCXByX3dhcm4oIkNvdWxkJ3QgaW5pdCBJQiBhZGRyZXNzIHJlc29sdXRpb25cbiIpOwpAQCAtMjcxMSw4ICsyNzYwLDYgQEAgc3RhdGljIGludCBfX2luaXQgaWJfY29yZV9pbml0KHZvaWQpCiBlcnJfYWRkcjoKIAlhZGRyX2NsZWFudXAoKTsKIGVycl9pYm5sOgotCXJkbWFfbmxfZXhpdCgpOwotZXJyX3N5c2ZzOgogCWNsYXNzX3VucmVnaXN0ZXIoJmliX2NsYXNzKTsKIGVycl9jb21wX3VuYm91bmQ6CiAJZGVzdHJveV93b3JrcXVldWUoaWJfY29tcF91bmJvdW5kX3dxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2Ztcl9wb29sLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9mbXJfcG9vbC5jCmluZGV4IDdkODQxYjYuLmUwOGFlYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2Ztcl9wb29sLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZm1yX3Bvb2wuYwpAQCAtMTQ4LDEzICsxNDgsNiBAQCBzdGF0aWMgdm9pZCBpYl9mbXJfYmF0Y2hfcmVsZWFzZShzdHJ1Y3QgaWJfZm1yX3Bvb2wgKnBvb2wpCiAJCWhsaXN0X2RlbF9pbml0KCZmbXItPmNhY2hlX25vZGUpOwogCQlmbXItPnJlbWFwX2NvdW50ID0gMDsKIAkJbGlzdF9hZGRfdGFpbCgmZm1yLT5mbXItPmxpc3QsICZmbXJfbGlzdCk7Ci0KLSNpZmRlZiBERUJVRwotCQlpZiAoZm1yLT5yZWZfY291bnQgIT0wKSB7Ci0JCQlwcl93YXJuKFBGWCAiVW5tYXBwaW5nIEZNUiAweCUwOHggd2l0aCByZWYgY291bnQgJWRcbiIsCi0JCQkJZm1yLCBmbXItPnJlZl9jb3VudCk7Ci0JCX0KLSNlbmRpZgogCX0KIAogCWxpc3Rfc3BsaWNlX2luaXQoJnBvb2wtPmRpcnR5X2xpc3QsICZ1bm1hcF9saXN0KTsKQEAgLTQ5NiwxMiArNDg5LDYgQEAgdm9pZCBpYl9mbXJfcG9vbF91bm1hcChzdHJ1Y3QgaWJfcG9vbF9mbXIgKmZtcikKIAkJfQogCX0KIAotI2lmZGVmIERFQlVHCi0JaWYgKGZtci0+cmVmX2NvdW50IDwgMCkKLQkJcHJfd2FybihQRlggIkZNUiAlcCBoYXMgcmVmIGNvdW50ICVkIDwgMFxuIiwKLQkJCWZtciwgZm1yLT5yZWZfY291bnQpOwotI2VuZGlmCi0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb29sLT5wb29sX2xvY2ssIGZsYWdzKTsKIH0KIEVYUE9SVF9TWU1CT0woaWJfZm1yX3Bvb2xfdW5tYXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvaXdwbV9tc2cuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2l3cG1fbXNnLmMKaW5kZXggMjQ1MmIwZC4uNDY2ODY5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvaXdwbV9tc2cuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9pd3BtX21zZy5jCkBAIC0xMTIsNyArMTEyLDcgQEAgaW50IGl3cG1fcmVnaXN0ZXJfcGlkKHN0cnVjdCBpd3BtX2Rldl9kYXRhICpwbV9tc2csIHU4IG5sX2NsaWVudCkKIAlwcl9kZWJ1ZygiJXM6IE11bHRpY2FzdGluZyBhIG5sbXNnIChkZXYgPSAlcyBpZm5hbWUgPSAlcyBpd3BtID0gJXMpXG4iLAogCQlfX2Z1bmNfXywgcG1fbXNnLT5kZXZfbmFtZSwgcG1fbXNnLT5pZl9uYW1lLCBpd3BtX3VsaWJfbmFtZSk7CiAKLQlyZXQgPSByZG1hX25sX211bHRpY2FzdChza2IsIFJETUFfTkxfR1JPVVBfSVdQTSwgR0ZQX0tFUk5FTCk7CisJcmV0ID0gcmRtYV9ubF9tdWx0aWNhc3QoJmluaXRfbmV0LCBza2IsIFJETUFfTkxfR1JPVVBfSVdQTSwgR0ZQX0tFUk5FTCk7CiAJaWYgKHJldCkgewogCQlza2IgPSBOVUxMOyAvKiBza2IgaXMgZnJlZWQgaW4gdGhlIG5ldGxpbmsgc2VuZC1vcCBoYW5kbGluZyAqLwogCQlpd3BtX3VzZXJfcGlkID0gSVdQTV9QSURfVU5BVkFJTEFCTEU7CkBAIC0xMjQsOCArMTI0LDcgQEAgaW50IGl3cG1fcmVnaXN0ZXJfcGlkKHN0cnVjdCBpd3BtX2Rldl9kYXRhICpwbV9tc2csIHU4IG5sX2NsaWVudCkKIAlyZXR1cm4gcmV0OwogcGlkX3F1ZXJ5X2Vycm9yOgogCXByX2luZm8oIiVzOiAlcyAoY2xpZW50ID0gJWQpXG4iLCBfX2Z1bmNfXywgZXJyX3N0ciwgbmxfY2xpZW50KTsKLQlpZiAoc2tiKQotCQlkZXZfa2ZyZWVfc2tiKHNrYik7CisJZGV2X2tmcmVlX3NrYihza2IpOwogCWlmIChubG1zZ19yZXF1ZXN0KQogCQlpd3BtX2ZyZWVfbmxtc2dfcmVxdWVzdCgmbmxtc2dfcmVxdWVzdC0+a3JlZik7CiAJcmV0dXJuIHJldDsKQEAgLTIwMiw3ICsyMDEsNyBAQCBpbnQgaXdwbV9hZGRfbWFwcGluZyhzdHJ1Y3QgaXdwbV9zYV9kYXRhICpwbV9tc2csIHU4IG5sX2NsaWVudCkKIAlubG1zZ19lbmQoc2tiLCBubGgpOwogCW5sbXNnX3JlcXVlc3QtPnJlcV9idWZmZXIgPSBwbV9tc2c7CiAKLQlyZXQgPSByZG1hX25sX3VuaWNhc3Rfd2FpdChza2IsIGl3cG1fdXNlcl9waWQpOworCXJldCA9IHJkbWFfbmxfdW5pY2FzdF93YWl0KCZpbml0X25ldCwgc2tiLCBpd3BtX3VzZXJfcGlkKTsKIAlpZiAocmV0KSB7CiAJCXNrYiA9IE5VTEw7IC8qIHNrYiBpcyBmcmVlZCBpbiB0aGUgbmV0bGluayBzZW5kLW9wIGhhbmRsaW5nICovCiAJCWl3cG1fdXNlcl9waWQgPSBJV1BNX1BJRF9VTkRFRklORUQ7CkBAIC0yMTQsOCArMjEzLDcgQEAgaW50IGl3cG1fYWRkX21hcHBpbmcoc3RydWN0IGl3cG1fc2FfZGF0YSAqcG1fbXNnLCB1OCBubF9jbGllbnQpCiBhZGRfbWFwcGluZ19lcnJvcjoKIAlwcl9pbmZvKCIlczogJXMgKGNsaWVudCA9ICVkKVxuIiwgX19mdW5jX18sIGVycl9zdHIsIG5sX2NsaWVudCk7CiBhZGRfbWFwcGluZ19lcnJvcl9ub3dhcm46Ci0JaWYgKHNrYikKLQkJZGV2X2tmcmVlX3NrYihza2IpOworCWRldl9rZnJlZV9za2Ioc2tiKTsKIAlpZiAobmxtc2dfcmVxdWVzdCkKIAkJaXdwbV9mcmVlX25sbXNnX3JlcXVlc3QoJm5sbXNnX3JlcXVlc3QtPmtyZWYpOwogCXJldHVybiByZXQ7CkBAIC0yOTcsNyArMjk1LDcgQEAgaW50IGl3cG1fYWRkX2FuZF9xdWVyeV9tYXBwaW5nKHN0cnVjdCBpd3BtX3NhX2RhdGEgKnBtX21zZywgdTggbmxfY2xpZW50KQogCW5sbXNnX2VuZChza2IsIG5saCk7CiAJbmxtc2dfcmVxdWVzdC0+cmVxX2J1ZmZlciA9IHBtX21zZzsKIAotCXJldCA9IHJkbWFfbmxfdW5pY2FzdF93YWl0KHNrYiwgaXdwbV91c2VyX3BpZCk7CisJcmV0ID0gcmRtYV9ubF91bmljYXN0X3dhaXQoJmluaXRfbmV0LCBza2IsIGl3cG1fdXNlcl9waWQpOwogCWlmIChyZXQpIHsKIAkJc2tiID0gTlVMTDsgLyogc2tiIGlzIGZyZWVkIGluIHRoZSBuZXRsaW5rIHNlbmQtb3AgaGFuZGxpbmcgKi8KIAkJZXJyX3N0ciA9ICJVbmFibGUgdG8gc2VuZCBhIG5sbXNnIjsKQEAgLTMwOCw4ICszMDYsNyBAQCBpbnQgaXdwbV9hZGRfYW5kX3F1ZXJ5X21hcHBpbmcoc3RydWN0IGl3cG1fc2FfZGF0YSAqcG1fbXNnLCB1OCBubF9jbGllbnQpCiBxdWVyeV9tYXBwaW5nX2Vycm9yOgogCXByX2luZm8oIiVzOiAlcyAoY2xpZW50ID0gJWQpXG4iLCBfX2Z1bmNfXywgZXJyX3N0ciwgbmxfY2xpZW50KTsKIHF1ZXJ5X21hcHBpbmdfZXJyb3Jfbm93YXJuOgotCWlmIChza2IpCi0JCWRldl9rZnJlZV9za2Ioc2tiKTsKKwlkZXZfa2ZyZWVfc2tiKHNrYik7CiAJaWYgKG5sbXNnX3JlcXVlc3QpCiAJCWl3cG1fZnJlZV9ubG1zZ19yZXF1ZXN0KCZubG1zZ19yZXF1ZXN0LT5rcmVmKTsKIAlyZXR1cm4gcmV0OwpAQCAtMzY0LDcgKzM2MSw3IEBAIGludCBpd3BtX3JlbW92ZV9tYXBwaW5nKHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlICpsb2NhbF9hZGRyLCB1OCBubF9jbGllbnQpCiAKIAlubG1zZ19lbmQoc2tiLCBubGgpOwogCi0JcmV0ID0gcmRtYV9ubF91bmljYXN0X3dhaXQoc2tiLCBpd3BtX3VzZXJfcGlkKTsKKwlyZXQgPSByZG1hX25sX3VuaWNhc3Rfd2FpdCgmaW5pdF9uZXQsIHNrYiwgaXdwbV91c2VyX3BpZCk7CiAJaWYgKHJldCkgewogCQlza2IgPSBOVUxMOyAvKiBza2IgaXMgZnJlZWQgaW4gdGhlIG5ldGxpbmsgc2VuZC1vcCBoYW5kbGluZyAqLwogCQlpd3BtX3VzZXJfcGlkID0gSVdQTV9QSURfVU5ERUZJTkVEOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvaXdwbV91dGlsLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9pd3BtX3V0aWwuYwppbmRleCA0MTkyOWJiLi4xMzQ5NWI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9pd3BtX3V0aWwuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9pd3BtX3V0aWwuYwpAQCAtNjQ1LDcgKzY0NSw3IEBAIHN0YXRpYyBpbnQgc2VuZF9tYXBpbmZvX251bSh1MzIgbWFwcGluZ19udW0sIHU4IG5sX2NsaWVudCwgaW50IGl3cG1fcGlkKQogCiAJbmxtc2dfZW5kKHNrYiwgbmxoKTsKIAotCXJldCA9IHJkbWFfbmxfdW5pY2FzdChza2IsIGl3cG1fcGlkKTsKKwlyZXQgPSByZG1hX25sX3VuaWNhc3QoJmluaXRfbmV0LCBza2IsIGl3cG1fcGlkKTsKIAlpZiAocmV0KSB7CiAJCXNrYiA9IE5VTEw7CiAJCWVycl9zdHIgPSAiVW5hYmxlIHRvIHNlbmQgYSBubG1zZyI7CkBAIC02NTUsOCArNjU1LDcgQEAgc3RhdGljIGludCBzZW5kX21hcGluZm9fbnVtKHUzMiBtYXBwaW5nX251bSwgdTggbmxfY2xpZW50LCBpbnQgaXdwbV9waWQpCiAJcmV0dXJuIDA7CiBtYXBpbmZvX251bV9lcnJvcjoKIAlwcl9pbmZvKCIlczogJXNcbiIsIF9fZnVuY19fLCBlcnJfc3RyKTsKLQlpZiAoc2tiKQotCQlkZXZfa2ZyZWVfc2tiKHNrYik7CisJZGV2X2tmcmVlX3NrYihza2IpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTY3NCw3ICs2NzMsNyBAQCBzdGF0aWMgaW50IHNlbmRfbmxtc2dfZG9uZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCBubF9jbGllbnQsIGludCBpd3BtX3BpZCkKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCW5saC0+bmxtc2dfdHlwZSA9IE5MTVNHX0RPTkU7Ci0JcmV0ID0gcmRtYV9ubF91bmljYXN0KHNrYiwgaXdwbV9waWQpOworCXJldCA9IHJkbWFfbmxfdW5pY2FzdCgmaW5pdF9uZXQsIHNrYiwgaXdwbV9waWQpOwogCWlmIChyZXQpCiAJCXByX3dhcm4oIiVzIFVuYWJsZSB0byBzZW5kIGEgbmxtc2dcbiIsIF9fZnVuY19fKTsKIAlyZXR1cm4gcmV0OwpAQCAtNzc4LDggKzc3Nyw3IEBAIGludCBpd3BtX3NlbmRfbWFwaW5mbyh1OCBubF9jbGllbnQsIGludCBpd3BtX3BpZCkKIHNlbmRfbWFwcGluZ19pbmZvX2V4aXQ6CiAJaWYgKHJldCkgewogCQlwcl93YXJuKCIlczogJXMgKHJldCA9ICVkKVxuIiwgX19mdW5jX18sIGVycl9zdHIsIHJldCk7Ci0JCWlmIChza2IpCi0JCQlkZXZfa2ZyZWVfc2tiKHNrYik7CisJCWRldl9rZnJlZV9za2Ioc2tiKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAJc2VuZF9ubG1zZ19kb25lKHNrYiwgbmxfY2xpZW50LCBpd3BtX3BpZCk7CkBAIC04MjQsNyArODIyLDcgQEAgaW50IGl3cG1fc2VuZF9oZWxsbyh1OCBubF9jbGllbnQsIGludCBpd3BtX3BpZCwgdTE2IGFiaV92ZXJzaW9uKQogCQlnb3RvIGhlbGxvX251bV9lcnJvcjsKIAlubG1zZ19lbmQoc2tiLCBubGgpOwogCi0JcmV0ID0gcmRtYV9ubF91bmljYXN0KHNrYiwgaXdwbV9waWQpOworCXJldCA9IHJkbWFfbmxfdW5pY2FzdCgmaW5pdF9uZXQsIHNrYiwgaXdwbV9waWQpOwogCWlmIChyZXQpIHsKIAkJc2tiID0gTlVMTDsKIAkJZXJyX3N0ciA9ICJVbmFibGUgdG8gc2VuZCBhIG5sbXNnIjsKQEAgLTgzNCw3ICs4MzIsNiBAQCBpbnQgaXdwbV9zZW5kX2hlbGxvKHU4IG5sX2NsaWVudCwgaW50IGl3cG1fcGlkLCB1MTYgYWJpX3ZlcnNpb24pCiAJcmV0dXJuIDA7CiBoZWxsb19udW1fZXJyb3I6CiAJcHJfaW5mbygiJXM6ICVzXG4iLCBfX2Z1bmNfXywgZXJyX3N0cik7Ci0JaWYgKHNrYikKLQkJZGV2X2tmcmVlX3NrYihza2IpOworCWRldl9rZnJlZV9za2Ioc2tiKTsKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbmV0bGluay5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbmV0bGluay5jCmluZGV4IGVlY2ZjMGIuLjgxZGJkNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL25ldGxpbmsuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9uZXRsaW5rLmMKQEAgLTM2LDIwICszNiwyMiBAQAogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUgPG5ldC9uZXRsaW5rLmg+CiAjaW5jbHVkZSA8bmV0L25ldF9uYW1lc3BhY2UuaD4KKyNpbmNsdWRlIDxuZXQvbmV0bnMvZ2VuZXJpYy5oPgogI2luY2x1ZGUgPG5ldC9zb2NrLmg+CiAjaW5jbHVkZSA8cmRtYS9yZG1hX25ldGxpbmsuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlICJjb3JlX3ByaXYuaCIKIAogc3RhdGljIERFRklORV9NVVRFWChyZG1hX25sX211dGV4KTsKLXN0YXRpYyBzdHJ1Y3Qgc29jayAqbmxzOwogc3RhdGljIHN0cnVjdCB7CiAJY29uc3Qgc3RydWN0IHJkbWFfbmxfY2JzICAgKmNiX3RhYmxlOwogfSByZG1hX25sX3R5cGVzW1JETUFfTkxfTlVNX0NMSUVOVFNdOwogCiBib29sIHJkbWFfbmxfY2hrX2xpc3RlbmVycyh1bnNpZ25lZCBpbnQgZ3JvdXApCiB7Ci0JcmV0dXJuIG5ldGxpbmtfaGFzX2xpc3RlbmVycyhubHMsIGdyb3VwKTsKKwlzdHJ1Y3QgcmRtYV9kZXZfbmV0ICpybmV0ID0gcmRtYV9uZXRfdG9fZGV2X25ldCgmaW5pdF9uZXQpOworCisJcmV0dXJuIG5ldGxpbmtfaGFzX2xpc3RlbmVycyhybmV0LT5ubF9zb2NrLCBncm91cCk7CiB9CiBFWFBPUlRfU1lNQk9MKHJkbWFfbmxfY2hrX2xpc3RlbmVycyk7CiAKQEAgLTczLDEzICs3NSwyMSBAQCBzdGF0aWMgYm9vbCBpc19ubF9tc2dfdmFsaWQodW5zaWduZWQgaW50IHR5cGUsIHVuc2lnbmVkIGludCBvcCkKIAlyZXR1cm4gKG9wIDwgbWF4X251bV9vcHNbdHlwZV0pID8gdHJ1ZSA6IGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCBpc19ubF92YWxpZCh1bnNpZ25lZCBpbnQgdHlwZSwgdW5zaWduZWQgaW50IG9wKQorc3RhdGljIGJvb2wKK2lzX25sX3ZhbGlkKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGludCB0eXBlLCB1bnNpZ25lZCBpbnQgb3ApCiB7CiAJY29uc3Qgc3RydWN0IHJkbWFfbmxfY2JzICpjYl90YWJsZTsKIAogCWlmICghaXNfbmxfbXNnX3ZhbGlkKHR5cGUsIG9wKSkKIAkJcmV0dXJuIGZhbHNlOwogCisJLyoKKwkgKiBDdXJyZW50bHkgb25seSBOTERFViBjbGllbnQgaXMgc3VwcG9ydGluZyBuZXRsaW5rIGNvbW1hbmRzIGluCisJICogbm9uIGluaXRfbmV0IG5ldCBuYW1lc3BhY2UuCisJICovCisJaWYgKHNvY2tfbmV0KHNrYi0+c2spICE9ICZpbml0X25ldCAmJiB0eXBlICE9IFJETUFfTkxfTkxERVYpCisJCXJldHVybiBmYWxzZTsKKwogCWlmICghcmRtYV9ubF90eXBlc1t0eXBlXS5jYl90YWJsZSkgewogCQltdXRleF91bmxvY2soJnJkbWFfbmxfbXV0ZXgpOwogCQlyZXF1ZXN0X21vZHVsZSgicmRtYS1uZXRsaW5rLXN1YnN5cy0lZCIsIHR5cGUpOwpAQCAtMTYxLDcgKzE3MSw3IEBAIHN0YXRpYyBpbnQgcmRtYV9ubF9yY3ZfbXNnKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCXVuc2lnbmVkIGludCBvcCA9IFJETUFfTkxfR0VUX09QKHR5cGUpOwogCWNvbnN0IHN0cnVjdCByZG1hX25sX2NicyAqY2JfdGFibGU7CiAKLQlpZiAoIWlzX25sX3ZhbGlkKGluZGV4LCBvcCkpCisJaWYgKCFpc19ubF92YWxpZChza2IsIGluZGV4LCBvcCkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJY2JfdGFibGUgPSByZG1hX25sX3R5cGVzW2luZGV4XS5jYl90YWJsZTsKQEAgLTE4NSw3ICsxOTUsNyBAQCBzdGF0aWMgaW50IHJkbWFfbmxfcmN2X21zZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKIAkJCS5kdW1wID0gY2JfdGFibGVbb3BdLmR1bXAsCiAJCX07CiAJCWlmIChjLmR1bXApCi0JCQlyZXR1cm4gbmV0bGlua19kdW1wX3N0YXJ0KG5scywgc2tiLCBubGgsICZjKTsKKwkJCXJldHVybiBuZXRsaW5rX2R1bXBfc3RhcnQoc2tiLT5zaywgc2tiLCBubGgsICZjKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC0yNTgsNTIgKzI2OCw2NSBAQCBzdGF0aWMgdm9pZCByZG1hX25sX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCW11dGV4X3VubG9jaygmcmRtYV9ubF9tdXRleCk7CiB9CiAKLWludCByZG1hX25sX3VuaWNhc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHBpZCkKK2ludCByZG1hX25sX3VuaWNhc3Qoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgcGlkKQogeworCXN0cnVjdCByZG1hX2Rldl9uZXQgKnJuZXQgPSByZG1hX25ldF90b19kZXZfbmV0KG5ldCk7CiAJaW50IGVycjsKIAotCWVyciA9IG5ldGxpbmtfdW5pY2FzdChubHMsIHNrYiwgcGlkLCBNU0dfRE9OVFdBSVQpOworCWVyciA9IG5ldGxpbmtfdW5pY2FzdChybmV0LT5ubF9zb2NrLCBza2IsIHBpZCwgTVNHX0RPTlRXQUlUKTsKIAlyZXR1cm4gKGVyciA8IDApID8gZXJyIDogMDsKIH0KIEVYUE9SVF9TWU1CT0wocmRtYV9ubF91bmljYXN0KTsKIAotaW50IHJkbWFfbmxfdW5pY2FzdF93YWl0KHN0cnVjdCBza19idWZmICpza2IsIF9fdTMyIHBpZCkKK2ludCByZG1hX25sX3VuaWNhc3Rfd2FpdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIF9fdTMyIHBpZCkKIHsKKwlzdHJ1Y3QgcmRtYV9kZXZfbmV0ICpybmV0ID0gcmRtYV9uZXRfdG9fZGV2X25ldChuZXQpOwogCWludCBlcnI7CiAKLQllcnIgPSBuZXRsaW5rX3VuaWNhc3QobmxzLCBza2IsIHBpZCwgMCk7CisJZXJyID0gbmV0bGlua191bmljYXN0KHJuZXQtPm5sX3NvY2ssIHNrYiwgcGlkLCAwKTsKIAlyZXR1cm4gKGVyciA8IDApID8gZXJyIDogMDsKIH0KIEVYUE9SVF9TWU1CT0wocmRtYV9ubF91bmljYXN0X3dhaXQpOwogCi1pbnQgcmRtYV9ubF9tdWx0aWNhc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IGdyb3VwLCBnZnBfdCBmbGFncykKK2ludCByZG1hX25sX211bHRpY2FzdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsCisJCSAgICAgIHVuc2lnbmVkIGludCBncm91cCwgZ2ZwX3QgZmxhZ3MpCiB7Ci0JcmV0dXJuIG5sbXNnX211bHRpY2FzdChubHMsIHNrYiwgMCwgZ3JvdXAsIGZsYWdzKTsKKwlzdHJ1Y3QgcmRtYV9kZXZfbmV0ICpybmV0ID0gcmRtYV9uZXRfdG9fZGV2X25ldChuZXQpOworCisJcmV0dXJuIG5sbXNnX211bHRpY2FzdChybmV0LT5ubF9zb2NrLCBza2IsIDAsIGdyb3VwLCBmbGFncyk7CiB9CiBFWFBPUlRfU1lNQk9MKHJkbWFfbmxfbXVsdGljYXN0KTsKIAotaW50IF9faW5pdCByZG1hX25sX2luaXQodm9pZCkKLXsKLQlzdHJ1Y3QgbmV0bGlua19rZXJuZWxfY2ZnIGNmZyA9IHsKLQkJLmlucHV0CT0gcmRtYV9ubF9yY3YsCi0JfTsKLQotCW5scyA9IG5ldGxpbmtfa2VybmVsX2NyZWF0ZSgmaW5pdF9uZXQsIE5FVExJTktfUkRNQSwgJmNmZyk7Ci0JaWYgKCFubHMpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JbmxzLT5za19zbmR0aW1lbyA9IDEwICogSFo7Ci0JcmV0dXJuIDA7Ci19Ci0KIHZvaWQgcmRtYV9ubF9leGl0KHZvaWQpCiB7CiAJaW50IGlkeDsKIAogCWZvciAoaWR4ID0gMDsgaWR4IDwgUkRNQV9OTF9OVU1fQ0xJRU5UUzsgaWR4KyspCi0JCXJkbWFfbmxfdW5yZWdpc3RlcihpZHgpOworCQlXQVJOKHJkbWFfbmxfdHlwZXNbaWR4XS5jYl90YWJsZSwKKwkJICAgICAiTmV0bGluayBjbGllbnQgJWQgd2Fzbid0IHJlbGVhc2VkIHByaW9yIHRvIHVubG9hZGluZyAlc1xuIiwKKwkJICAgICBpZHgsIEtCVUlMRF9NT0ROQU1FKTsKK30KIAotCW5ldGxpbmtfa2VybmVsX3JlbGVhc2UobmxzKTsKK2ludCByZG1hX25sX25ldF9pbml0KHN0cnVjdCByZG1hX2Rldl9uZXQgKnJuZXQpCit7CisJc3RydWN0IG5ldCAqbmV0ID0gcmVhZF9wbmV0KCZybmV0LT5uZXQpOworCXN0cnVjdCBuZXRsaW5rX2tlcm5lbF9jZmcgY2ZnID0geworCQkuaW5wdXQJPSByZG1hX25sX3JjdiwKKwl9OworCXN0cnVjdCBzb2NrICpubHM7CisKKwlubHMgPSBuZXRsaW5rX2tlcm5lbF9jcmVhdGUobmV0LCBORVRMSU5LX1JETUEsICZjZmcpOworCWlmICghbmxzKQorCQlyZXR1cm4gLUVOT01FTTsKKworCW5scy0+c2tfc25kdGltZW8gPSAxMCAqIEhaOworCXJuZXQtPm5sX3NvY2sgPSBubHM7CisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgcmRtYV9ubF9uZXRfZXhpdChzdHJ1Y3QgcmRtYV9kZXZfbmV0ICpybmV0KQoreworCW5ldGxpbmtfa2VybmVsX3JlbGVhc2Uocm5ldC0+bmxfc29jayk7CiB9CiAKIE1PRFVMRV9BTElBU19ORVRfUEZfUFJPVE8oUEZfTkVUTElOSywgTkVUTElOS19SRE1BKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL25sZGV2LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9ubGRldi5jCmluZGV4IDAyMGMyNjkuLjdhNzQ3NDAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9ubGRldi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL25sZGV2LmMKQEAgLTgzMSw3ICs4MzEsNyBAQCBzdGF0aWMgaW50IG5sZGV2X2dldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCW5sbXNnX2VuZChtc2csIG5saCk7CiAKIAlpYl9kZXZpY2VfcHV0KGRldmljZSk7Ci0JcmV0dXJuIHJkbWFfbmxfdW5pY2FzdChtc2csIE5FVExJTktfQ0Ioc2tiKS5wb3J0aWQpOworCXJldHVybiByZG1hX25sX3VuaWNhc3Qoc29ja19uZXQoc2tiLT5zayksIG1zZywgTkVUTElOS19DQihza2IpLnBvcnRpZCk7CiAKIGVycl9mcmVlOgogCW5sbXNnX2ZyZWUobXNnKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCBzdGF0aWMgaW50IG5sZGV2X3BvcnRfZ2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsCiAJbmxtc2dfZW5kKG1zZywgbmxoKTsKIAlpYl9kZXZpY2VfcHV0KGRldmljZSk7CiAKLQlyZXR1cm4gcmRtYV9ubF91bmljYXN0KG1zZywgTkVUTElOS19DQihza2IpLnBvcnRpZCk7CisJcmV0dXJuIHJkbWFfbmxfdW5pY2FzdChzb2NrX25ldChza2ItPnNrKSwgbXNnLCBORVRMSU5LX0NCKHNrYikucG9ydGlkKTsKIAogZXJyX2ZyZWU6CiAJbmxtc2dfZnJlZShtc2cpOwpAQCAtMTA3Myw3ICsxMDczLDcgQEAgc3RhdGljIGludCBubGRldl9yZXNfZ2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsCiAKIAlubG1zZ19lbmQobXNnLCBubGgpOwogCWliX2RldmljZV9wdXQoZGV2aWNlKTsKLQlyZXR1cm4gcmRtYV9ubF91bmljYXN0KG1zZywgTkVUTElOS19DQihza2IpLnBvcnRpZCk7CisJcmV0dXJuIHJkbWFfbmxfdW5pY2FzdChzb2NrX25ldChza2ItPnNrKSwgbXNnLCBORVRMSU5LX0NCKHNrYikucG9ydGlkKTsKIAogZXJyX2ZyZWU6CiAJbmxtc2dfZnJlZShtc2cpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgc3RhdGljIGludCByZXNfZ2V0X2NvbW1vbl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCiAJbmxtc2dfZW5kKG1zZywgbmxoKTsKIAlpYl9kZXZpY2VfcHV0KGRldmljZSk7Ci0JcmV0dXJuIHJkbWFfbmxfdW5pY2FzdChtc2csIE5FVExJTktfQ0Ioc2tiKS5wb3J0aWQpOworCXJldHVybiByZG1hX25sX3VuaWNhc3Qoc29ja19uZXQoc2tiLT5zayksIG1zZywgTkVUTElOS19DQihza2IpLnBvcnRpZCk7CiAKIGVycl9mcmVlOgogCW5sbXNnX2ZyZWUobXNnKTsKQEAgLTE1OTUsNyArMTU5NSw3IEBAIHN0YXRpYyBpbnQgbmxkZXZfZ2V0X2NoYXJkZXYoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsCiAJcHV0X2RldmljZShkYXRhLmNkZXYpOwogCWlmIChpYmRldikKIAkJaWJfZGV2aWNlX3B1dChpYmRldik7Ci0JcmV0dXJuIHJkbWFfbmxfdW5pY2FzdChtc2csIE5FVExJTktfQ0Ioc2tiKS5wb3J0aWQpOworCXJldHVybiByZG1hX25sX3VuaWNhc3Qoc29ja19uZXQoc2tiLT5zayksIG1zZywgTkVUTElOS19DQihza2IpLnBvcnRpZCk7CiAKIG91dF9kYXRhOgogCXB1dF9kZXZpY2UoZGF0YS5jZGV2KTsKQEAgLTE2MzUsNyArMTYzNSw3IEBAIHN0YXRpYyBpbnQgbmxkZXZfc3lzX2dldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCQlyZXR1cm4gZXJyOwogCX0KIAlubG1zZ19lbmQobXNnLCBubGgpOwotCXJldHVybiByZG1hX25sX3VuaWNhc3QobXNnLCBORVRMSU5LX0NCKHNrYikucG9ydGlkKTsKKwlyZXR1cm4gcmRtYV9ubF91bmljYXN0KHNvY2tfbmV0KHNrYi0+c2spLCBtc2csIE5FVExJTktfQ0Ioc2tiKS5wb3J0aWQpOwogfQogCiBzdGF0aWMgaW50IG5sZGV2X3NldF9zeXNfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsCkBAIC0xNzMzLDcgKzE3MzMsNyBAQCBzdGF0aWMgaW50IG5sZGV2X3N0YXRfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsCiAKIAlubG1zZ19lbmQobXNnLCBubGgpOwogCWliX2RldmljZV9wdXQoZGV2aWNlKTsKLQlyZXR1cm4gcmRtYV9ubF91bmljYXN0KG1zZywgTkVUTElOS19DQihza2IpLnBvcnRpZCk7CisJcmV0dXJuIHJkbWFfbmxfdW5pY2FzdChzb2NrX25ldChza2ItPnNrKSwgbXNnLCBORVRMSU5LX0NCKHNrYikucG9ydGlkKTsKIAogZXJyX2ZpbGw6CiAJcmRtYV9jb3VudGVyX3VuYmluZF9xcG4oZGV2aWNlLCBwb3J0LCBxcG4sIGNudG4pOwpAQCAtMTgwMSw3ICsxODAxLDcgQEAgc3RhdGljIGludCBubGRldl9zdGF0X2RlbF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCiAJbmxtc2dfZW5kKG1zZywgbmxoKTsKIAlpYl9kZXZpY2VfcHV0KGRldmljZSk7Ci0JcmV0dXJuIHJkbWFfbmxfdW5pY2FzdChtc2csIE5FVExJTktfQ0Ioc2tiKS5wb3J0aWQpOworCXJldHVybiByZG1hX25sX3VuaWNhc3Qoc29ja19uZXQoc2tiLT5zayksIG1zZywgTkVUTElOS19DQihza2IpLnBvcnRpZCk7CiAKIGVycl9maWxsOgogCXJkbWFfY291bnRlcl9iaW5kX3FwbihkZXZpY2UsIHBvcnQsIHFwbiwgY250bik7CkBAIC0xODkyLDcgKzE4OTIsNyBAQCBzdGF0aWMgaW50IHN0YXRfZ2V0X2RvaXRfZGVmYXVsdF9jb3VudGVyKHN0cnVjdCBza19idWZmICpza2IsCiAJbXV0ZXhfdW5sb2NrKCZzdGF0cy0+bG9jayk7CiAJbmxtc2dfZW5kKG1zZywgbmxoKTsKIAlpYl9kZXZpY2VfcHV0KGRldmljZSk7Ci0JcmV0dXJuIHJkbWFfbmxfdW5pY2FzdChtc2csIE5FVExJTktfQ0Ioc2tiKS5wb3J0aWQpOworCXJldHVybiByZG1hX25sX3VuaWNhc3Qoc29ja19uZXQoc2tiLT5zayksIG1zZywgTkVUTElOS19DQihza2IpLnBvcnRpZCk7CiAKIGVycl90YWJsZToKIAlubGFfbmVzdF9jYW5jZWwobXNnLCB0YWJsZV9hdHRyKTsKQEAgLTE5NjQsNyArMTk2NCw3IEBAIHN0YXRpYyBpbnQgc3RhdF9nZXRfZG9pdF9xcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKIAogCW5sbXNnX2VuZChtc2csIG5saCk7CiAJaWJfZGV2aWNlX3B1dChkZXZpY2UpOwotCXJldHVybiByZG1hX25sX3VuaWNhc3QobXNnLCBORVRMSU5LX0NCKHNrYikucG9ydGlkKTsKKwlyZXR1cm4gcmRtYV9ubF91bmljYXN0KHNvY2tfbmV0KHNrYi0+c2spLCBtc2csIE5FVExJTktfQ0Ioc2tiKS5wb3J0aWQpOwogCiBlcnJfbXNnOgogCW5sbXNnX2ZyZWUobXNnKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3J3LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9ydy5jCmluZGV4IGRjZTA2MTAuLjUzMzczOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3J3LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcncuYwpAQCAtNTgzLDggKzU4MywxMCBAQCB2b2lkIHJkbWFfcndfY3R4X2Rlc3Ryb3koc3RydWN0IHJkbWFfcndfY3R4ICpjdHgsIHN0cnVjdCBpYl9xcCAqcXAsIHU4IHBvcnRfbnVtLAogCQlicmVhazsKIAl9CiAKLQkvKiBQMlBETUEgY29udGV4dHMgZG8gbm90IG5lZWQgdG8gYmUgdW5tYXBwZWQgKi8KLQlpZiAoIWlzX3BjaV9wMnBkbWFfcGFnZShzZ19wYWdlKHNnKSkpCisJaWYgKGlzX3BjaV9wMnBkbWFfcGFnZShzZ19wYWdlKHNnKSkpCisJCXBjaV9wMnBkbWFfdW5tYXBfc2cocXAtPnBkLT5kZXZpY2UtPmRtYV9kZXZpY2UsIHNnLAorCQkJCSAgICBzZ19jbnQsIGRpcik7CisJZWxzZQogCQlpYl9kbWFfdW5tYXBfc2cocXAtPnBkLT5kZXZpY2UsIHNnLCBzZ19jbnQsIGRpcik7CiB9CiBFWFBPUlRfU1lNQk9MKHJkbWFfcndfY3R4X2Rlc3Ryb3kpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc2FfcXVlcnkuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3NhX3F1ZXJ5LmMKaW5kZXggN2Q4MDcxYy4uMTdmYzI5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc2FfcXVlcnkuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9zYV9xdWVyeS5jCkBAIC04NjAsNyArODYwLDcgQEAgc3RhdGljIGludCBpYl9ubF9zZW5kX21zZyhzdHJ1Y3QgaWJfc2FfcXVlcnkgKnF1ZXJ5LCBnZnBfdCBnZnBfbWFzaykKIAkvKiBSZXBhaXIgdGhlIG5sbXNnIGhlYWRlciBsZW5ndGggKi8KIAlubG1zZ19lbmQoc2tiLCBubGgpOwogCi0JcmV0dXJuIHJkbWFfbmxfbXVsdGljYXN0KHNrYiwgUkRNQV9OTF9HUk9VUF9MUywgZ2ZwX21hc2spOworCXJldHVybiByZG1hX25sX211bHRpY2FzdCgmaW5pdF9uZXQsIHNrYiwgUkRNQV9OTF9HUk9VUF9MUywgZ2ZwX21hc2spOwogfQogCiBzdGF0aWMgaW50IGliX25sX21ha2VfcmVxdWVzdChzdHJ1Y3QgaWJfc2FfcXVlcnkgKnF1ZXJ5LCBnZnBfdCBnZnBfbWFzaykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3N5c2ZzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9zeXNmcy5jCmluZGV4IGI0NzcyOTUuLjdhNTBjZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3N5c2ZzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc3lzZnMuYwpAQCAtMjg5LDYgKzI4OSwyNCBAQCBzdGF0aWMgc3NpemVfdCByYXRlX3Nob3coc3RydWN0IGliX3BvcnQgKnAsIHN0cnVjdCBwb3J0X2F0dHJpYnV0ZSAqdW51c2VkLAogCQkgICAgICAgaWJfd2lkdGhfZW51bV90b19pbnQoYXR0ci5hY3RpdmVfd2lkdGgpLCBzcGVlZCk7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyICpwaHlzX3N0YXRlX3RvX3N0cihlbnVtIGliX3BvcnRfcGh5c19zdGF0ZSBwaHlzX3N0YXRlKQoreworCXN0YXRpYyBjb25zdCBjaGFyICogcGh5c19zdGF0ZV9zdHJbXSA9IHsKKwkJIjx1bmtub3duPiIsCisJCSJTbGVlcCIsCisJCSJQb2xsaW5nIiwKKwkJIkRpc2FibGVkIiwKKwkJIlBvcnRDb25maWd1cmF0aW9uVHJhaW5pbmciLAorCQkiTGlua1VwIiwKKwkJIkxpbmtFcnJvclJlY292ZXJ5IiwKKwkJIlBoeSBUZXN0IiwKKwl9OworCisJaWYgKHBoeXNfc3RhdGUgPCBBUlJBWV9TSVpFKHBoeXNfc3RhdGVfc3RyKSkKKwkJcmV0dXJuIHBoeXNfc3RhdGVfc3RyW3BoeXNfc3RhdGVdOworCXJldHVybiAiPHVua25vd24+IjsKK30KKwogc3RhdGljIHNzaXplX3QgcGh5c19zdGF0ZV9zaG93KHN0cnVjdCBpYl9wb3J0ICpwLCBzdHJ1Y3QgcG9ydF9hdHRyaWJ1dGUgKnVudXNlZCwKIAkJCSAgICAgICBjaGFyICpidWYpCiB7CkBAIC0zMDAsMTYgKzMxOCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBoeXNfc3RhdGVfc2hvdyhzdHJ1Y3QgaWJfcG9ydCAqcCwgc3RydWN0IHBvcnRfYXR0cmlidXRlICp1bnVzZWQsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXN3aXRjaCAoYXR0ci5waHlzX3N0YXRlKSB7Ci0JY2FzZSAxOiAgcmV0dXJuIHNwcmludGYoYnVmLCAiMTogU2xlZXBcbiIpOwotCWNhc2UgMjogIHJldHVybiBzcHJpbnRmKGJ1ZiwgIjI6IFBvbGxpbmdcbiIpOwotCWNhc2UgMzogIHJldHVybiBzcHJpbnRmKGJ1ZiwgIjM6IERpc2FibGVkXG4iKTsKLQljYXNlIDQ6ICByZXR1cm4gc3ByaW50ZihidWYsICI0OiBQb3J0Q29uZmlndXJhdGlvblRyYWluaW5nXG4iKTsKLQljYXNlIDU6ICByZXR1cm4gc3ByaW50ZihidWYsICI1OiBMaW5rVXBcbiIpOwotCWNhc2UgNjogIHJldHVybiBzcHJpbnRmKGJ1ZiwgIjY6IExpbmtFcnJvclJlY292ZXJ5XG4iKTsKLQljYXNlIDc6ICByZXR1cm4gc3ByaW50ZihidWYsICI3OiBQaHkgVGVzdFxuIik7Ci0JZGVmYXVsdDogcmV0dXJuIHNwcmludGYoYnVmLCAiJWQ6IDx1bmtub3duPlxuIiwgYXR0ci5waHlzX3N0YXRlKTsKLQl9CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWQ6ICVzXG4iLCBhdHRyLnBoeXNfc3RhdGUsCisJCSAgICAgICBwaHlzX3N0YXRlX3RvX3N0cihhdHRyLnBoeXNfc3RhdGUpKTsKIH0KIAogc3RhdGljIHNzaXplX3QgbGlua19sYXllcl9zaG93KHN0cnVjdCBpYl9wb3J0ICpwLCBzdHJ1Y3QgcG9ydF9hdHRyaWJ1dGUgKnVudXNlZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYwppbmRleCA1NjU1MzY2Li4yNDI0NGEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbS5jCkBAIC01NCwxMCArNTQsNyBAQCBzdGF0aWMgdm9pZCBfX2liX3VtZW1fcmVsZWFzZShzdHJ1Y3QgaWJfZGV2aWNlICpkZXYsIHN0cnVjdCBpYl91bWVtICp1bWVtLCBpbnQgZAogCiAJZm9yX2VhY2hfc2dfcGFnZSh1bWVtLT5zZ19oZWFkLnNnbCwgJnNnX2l0ZXIsIHVtZW0tPnNnX25lbnRzLCAwKSB7CiAJCXBhZ2UgPSBzZ19wYWdlX2l0ZXJfcGFnZSgmc2dfaXRlcik7Ci0JCWlmICh1bWVtLT53cml0YWJsZSAmJiBkaXJ0eSkKLQkJCXB1dF91c2VyX3BhZ2VzX2RpcnR5X2xvY2soJnBhZ2UsIDEpOwotCQllbHNlCi0JCQlwdXRfdXNlcl9wYWdlKHBhZ2UpOworCQlwdXRfdXNlcl9wYWdlc19kaXJ0eV9sb2NrKCZwYWdlLCAxLCB1bWVtLT53cml0YWJsZSAmJiBkaXJ0eSk7CiAJfQogCiAJc2dfZnJlZV90YWJsZSgmdW1lbS0+c2dfaGVhZCk7CkBAIC0xODQsOSArMTgxLDYgQEAgRVhQT1JUX1NZTUJPTChpYl91bWVtX2ZpbmRfYmVzdF9wZ3N6KTsKIC8qKgogICogaWJfdW1lbV9nZXQgLSBQaW4gYW5kIERNQSBtYXAgdXNlcnNwYWNlIG1lbW9yeS4KICAqCi0gKiBJZiBhY2Nlc3MgZmxhZ3MgaW5kaWNhdGUgT0RQIG1lbW9yeSwgYXZvaWQgcGlubmluZy4gSW5zdGVhZCwgc3RvcmVzCi0gKiB0aGUgbW0gZm9yIGZ1dHVyZSBwYWdlIGZhdWx0IGhhbmRsaW5nIGluIGNvbmp1bmN0aW9uIHdpdGggTU1VIG5vdGlmaWVycy4KLSAqCiAgKiBAdWRhdGE6IHVzZXJzcGFjZSBjb250ZXh0IHRvIHBpbiBtZW1vcnkgZm9yCiAgKiBAYWRkcjogdXNlcnNwYWNlIHZpcnR1YWwgYWRkcmVzcyB0byBzdGFydCBhdAogICogQHNpemU6IGxlbmd0aCBvZiByZWdpb24gdG8gcGluCkBAIC0yMzEsMzYgKzIyNSwxOSBAQCBzdHJ1Y3QgaWJfdW1lbSAqaWJfdW1lbV9nZXQoc3RydWN0IGliX3VkYXRhICp1ZGF0YSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCWlmICghY2FuX2RvX21sb2NrKCkpCiAJCXJldHVybiBFUlJfUFRSKC1FUEVSTSk7CiAKLQlpZiAoYWNjZXNzICYgSUJfQUNDRVNTX09OX0RFTUFORCkgewotCQl1bWVtID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGliX3VtZW1fb2RwKSwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghdW1lbSkKLQkJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCQl1bWVtLT5pc19vZHAgPSAxOwotCX0gZWxzZSB7Ci0JCXVtZW0gPSBremFsbG9jKHNpemVvZigqdW1lbSksIEdGUF9LRVJORUwpOwotCQlpZiAoIXVtZW0pCi0JCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQl9CisJaWYgKGFjY2VzcyAmIElCX0FDQ0VTU19PTl9ERU1BTkQpCisJCXJldHVybiBFUlJfUFRSKC1FT1BOT1RTVVBQKTsKIAotCXVtZW0tPmNvbnRleHQgICAgPSBjb250ZXh0OworCXVtZW0gPSBremFsbG9jKHNpemVvZigqdW1lbSksIEdGUF9LRVJORUwpOworCWlmICghdW1lbSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJdW1lbS0+aWJkZXYgPSBjb250ZXh0LT5kZXZpY2U7CiAJdW1lbS0+bGVuZ3RoICAgICA9IHNpemU7CiAJdW1lbS0+YWRkcmVzcyAgICA9IGFkZHI7CiAJdW1lbS0+d3JpdGFibGUgICA9IGliX2FjY2Vzc193cml0YWJsZShhY2Nlc3MpOwogCXVtZW0tPm93bmluZ19tbSA9IG1tID0gY3VycmVudC0+bW07CiAJbW1ncmFiKG1tKTsKIAotCWlmIChhY2Nlc3MgJiBJQl9BQ0NFU1NfT05fREVNQU5EKSB7Ci0JCWlmIChXQVJOX09OX09OQ0UoIWNvbnRleHQtPmludmFsaWRhdGVfcmFuZ2UpKSB7Ci0JCQlyZXQgPSAtRUlOVkFMOwotCQkJZ290byB1bWVtX2tmcmVlOwotCQl9Ci0KLQkJcmV0ID0gaWJfdW1lbV9vZHBfZ2V0KHRvX2liX3VtZW1fb2RwKHVtZW0pLCBhY2Nlc3MpOwotCQlpZiAocmV0KQotCQkJZ290byB1bWVtX2tmcmVlOwotCQlyZXR1cm4gdW1lbTsKLQl9Ci0KIAlwYWdlX2xpc3QgPSAoc3RydWN0IHBhZ2UgKiopIF9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKIAlpZiAoIXBhZ2VfbGlzdCkgewogCQlyZXQgPSAtRU5PTUVNOwpAQCAtMzQ2LDE1ICszMjMsNiBAQCBzdHJ1Y3QgaWJfdW1lbSAqaWJfdW1lbV9nZXQoc3RydWN0IGliX3VkYXRhICp1ZGF0YSwgdW5zaWduZWQgbG9uZyBhZGRyLAogfQogRVhQT1JUX1NZTUJPTChpYl91bWVtX2dldCk7CiAKLXN0YXRpYyB2b2lkIF9faWJfdW1lbV9yZWxlYXNlX3RhaWwoc3RydWN0IGliX3VtZW0gKnVtZW0pCi17Ci0JbW1kcm9wKHVtZW0tPm93bmluZ19tbSk7Ci0JaWYgKHVtZW0tPmlzX29kcCkKLQkJa2ZyZWUodG9faWJfdW1lbV9vZHAodW1lbSkpOwotCWVsc2UKLQkJa2ZyZWUodW1lbSk7Ci19Ci0KIC8qKgogICogaWJfdW1lbV9yZWxlYXNlIC0gcmVsZWFzZSBtZW1vcnkgcGlubmVkIHdpdGggaWJfdW1lbV9nZXQKICAqIEB1bWVtOiB1bWVtIHN0cnVjdCB0byByZWxlYXNlCkBAIC0zNjMsMTcgKzMzMSwxNCBAQCB2b2lkIGliX3VtZW1fcmVsZWFzZShzdHJ1Y3QgaWJfdW1lbSAqdW1lbSkKIHsKIAlpZiAoIXVtZW0pCiAJCXJldHVybjsKKwlpZiAodW1lbS0+aXNfb2RwKQorCQlyZXR1cm4gaWJfdW1lbV9vZHBfcmVsZWFzZSh0b19pYl91bWVtX29kcCh1bWVtKSk7CiAKLQlpZiAodW1lbS0+aXNfb2RwKSB7Ci0JCWliX3VtZW1fb2RwX3JlbGVhc2UodG9faWJfdW1lbV9vZHAodW1lbSkpOwotCQlfX2liX3VtZW1fcmVsZWFzZV90YWlsKHVtZW0pOwotCQlyZXR1cm47Ci0JfQotCi0JX19pYl91bWVtX3JlbGVhc2UodW1lbS0+Y29udGV4dC0+ZGV2aWNlLCB1bWVtLCAxKTsKKwlfX2liX3VtZW1fcmVsZWFzZSh1bWVtLT5pYmRldiwgdW1lbSwgMSk7CiAKIAlhdG9taWM2NF9zdWIoaWJfdW1lbV9udW1fcGFnZXModW1lbSksICZ1bWVtLT5vd25pbmdfbW0tPnBpbm5lZF92bSk7Ci0JX19pYl91bWVtX3JlbGVhc2VfdGFpbCh1bWVtKTsKKwltbWRyb3AodW1lbS0+b3duaW5nX21tKTsKKwlrZnJlZSh1bWVtKTsKIH0KIEVYUE9SVF9TWU1CT0woaWJfdW1lbV9yZWxlYXNlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbV9vZHAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2RwLmMKaW5kZXggYzBlMTVkYi4uZjY3YTMwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbV9vZHAuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtX29kcC5jCkBAIC0zOSw0NCArMzksMTQgQEAKICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8bGludXgvaHVnZXRsYi5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVydmFsX3RyZWVfZ2VuZXJpYy5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVydmFsX3RyZWUuaD4KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CiAKICNpbmNsdWRlIDxyZG1hL2liX3ZlcmJzLmg+CiAjaW5jbHVkZSA8cmRtYS9pYl91bWVtLmg+CiAjaW5jbHVkZSA8cmRtYS9pYl91bWVtX29kcC5oPgogCi0vKgotICogVGhlIGliX3VtZW0gbGlzdCBrZWVwcyB0cmFjayBvZiBtZW1vcnkgcmVnaW9ucyBmb3Igd2hpY2ggdGhlIEhXCi0gKiBkZXZpY2UgcmVxdWVzdCB0byByZWNlaXZlIG5vdGlmaWNhdGlvbiB3aGVuIHRoZSByZWxhdGVkIG1lbW9yeQotICogbWFwcGluZyBpcyBjaGFuZ2VkLgotICoKLSAqIGliX3VtZW1fbG9jayBwcm90ZWN0cyB0aGUgbGlzdC4KLSAqLwotCi1zdGF0aWMgdTY0IG5vZGVfc3RhcnQoc3RydWN0IHVtZW1fb2RwX25vZGUgKm4pCi17Ci0Jc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCA9Ci0JCQljb250YWluZXJfb2Yobiwgc3RydWN0IGliX3VtZW1fb2RwLCBpbnRlcnZhbF90cmVlKTsKLQotCXJldHVybiBpYl91bWVtX3N0YXJ0KHVtZW1fb2RwKTsKLX0KLQotLyogTm90ZSB0aGF0IHRoZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJ2YWxzIGluIHRoZSBpbnRlcnZhbCB0cmVlCi0gKiBjb25zaWRlcnMgdGhlIGVuZGluZyBwb2ludCBhcyBjb250YWluZWQgaW4gdGhlIGludGVydmFsLCB3aGlsZSB0aGUKLSAqIGZ1bmN0aW9uIGliX3VtZW1fZW5kIHJldHVybnMgdGhlIGZpcnN0IGFkZHJlc3Mgd2hpY2ggaXMgbm90IGNvbnRhaW5lZAotICogaW4gdGhlIHVtZW0uCi0gKi8KLXN0YXRpYyB1NjQgbm9kZV9sYXN0KHN0cnVjdCB1bWVtX29kcF9ub2RlICpuKQotewotCXN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9vZHAgPQotCQkJY29udGFpbmVyX29mKG4sIHN0cnVjdCBpYl91bWVtX29kcCwgaW50ZXJ2YWxfdHJlZSk7Ci0KLQlyZXR1cm4gaWJfdW1lbV9lbmQodW1lbV9vZHApIC0gMTsKLX0KLQotSU5URVJWQUxfVFJFRV9ERUZJTkUoc3RydWN0IHVtZW1fb2RwX25vZGUsIHJiLCB1NjQsIF9fc3VidHJlZV9sYXN0LAotCQkgICAgIG5vZGVfc3RhcnQsIG5vZGVfbGFzdCwgc3RhdGljLCByYnRfaWJfdW1lbSkKKyNpbmNsdWRlICJ1dmVyYnMuaCIKIAogc3RhdGljIHZvaWQgaWJfdW1lbV9ub3RpZmllcl9zdGFydF9hY2NvdW50KHN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9vZHApCiB7CkBAIC0xMDQsMzEgKzc0LDM0IEBAIHN0YXRpYyB2b2lkIGliX3VtZW1fbm90aWZpZXJfZW5kX2FjY291bnQoc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCkKIAltdXRleF91bmxvY2soJnVtZW1fb2RwLT51bWVtX211dGV4KTsKIH0KIAotc3RhdGljIGludCBpYl91bWVtX25vdGlmaWVyX3JlbGVhc2VfdHJhbXBvbGluZShzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwLAotCQkJCQkgICAgICAgdTY0IHN0YXJ0LCB1NjQgZW5kLCB2b2lkICpjb29raWUpCi17Ci0JLyoKLQkgKiBJbmNyZWFzZSB0aGUgbnVtYmVyIG9mIG5vdGlmaWVycyBydW5uaW5nLCB0bwotCSAqIHByZXZlbnQgYW55IGZ1cnRoZXIgZmF1bHQgaGFuZGxpbmcgb24gdGhpcyBNUi4KLQkgKi8KLQlpYl91bWVtX25vdGlmaWVyX3N0YXJ0X2FjY291bnQodW1lbV9vZHApOwotCWNvbXBsZXRlX2FsbCgmdW1lbV9vZHAtPm5vdGlmaWVyX2NvbXBsZXRpb24pOwotCXVtZW1fb2RwLT51bWVtLmNvbnRleHQtPmludmFsaWRhdGVfcmFuZ2UoCi0JCXVtZW1fb2RwLCBpYl91bWVtX3N0YXJ0KHVtZW1fb2RwKSwgaWJfdW1lbV9lbmQodW1lbV9vZHApKTsKLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQgaWJfdW1lbV9ub3RpZmllcl9yZWxlYXNlKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAogCQkJCSAgICAgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CiAJc3RydWN0IGliX3Vjb250ZXh0X3Blcl9tbSAqcGVyX21tID0KIAkJY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tLCBtbik7CisJc3RydWN0IHJiX25vZGUgKm5vZGU7CiAKIAlkb3duX3JlYWQoJnBlcl9tbS0+dW1lbV9yd3NlbSk7Ci0JaWYgKHBlcl9tbS0+YWN0aXZlKQotCQlyYnRfaWJfdW1lbV9mb3JfZWFjaF9pbl9yYW5nZSgKLQkJCSZwZXJfbW0tPnVtZW1fdHJlZSwgMCwgVUxMT05HX01BWCwKLQkJCWliX3VtZW1fbm90aWZpZXJfcmVsZWFzZV90cmFtcG9saW5lLCB0cnVlLCBOVUxMKTsKKwlpZiAoIXBlcl9tbS0+bW4udXNlcnMpCisJCWdvdG8gb3V0OworCisJZm9yIChub2RlID0gcmJfZmlyc3RfY2FjaGVkKCZwZXJfbW0tPnVtZW1fdHJlZSk7IG5vZGU7CisJICAgICBub2RlID0gcmJfbmV4dChub2RlKSkgeworCQlzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwID0KKwkJCXJiX2VudHJ5KG5vZGUsIHN0cnVjdCBpYl91bWVtX29kcCwgaW50ZXJ2YWxfdHJlZS5yYik7CisKKwkJLyoKKwkJICogSW5jcmVhc2UgdGhlIG51bWJlciBvZiBub3RpZmllcnMgcnVubmluZywgdG8gcHJldmVudCBhbnkKKwkJICogZnVydGhlciBmYXVsdCBoYW5kbGluZyBvbiB0aGlzIE1SLgorCQkgKi8KKwkJaWJfdW1lbV9ub3RpZmllcl9zdGFydF9hY2NvdW50KHVtZW1fb2RwKTsKKwkJY29tcGxldGVfYWxsKCZ1bWVtX29kcC0+bm90aWZpZXJfY29tcGxldGlvbik7CisJCXVtZW1fb2RwLT51bWVtLmliZGV2LT5vcHMuaW52YWxpZGF0ZV9yYW5nZSgKKwkJCXVtZW1fb2RwLCBpYl91bWVtX3N0YXJ0KHVtZW1fb2RwKSwKKwkJCWliX3VtZW1fZW5kKHVtZW1fb2RwKSk7CisJfQorCitvdXQ6CiAJdXBfcmVhZCgmcGVyX21tLT51bWVtX3J3c2VtKTsKIH0KIApAQCAtMTM2LDcgKzEwOSw3IEBAIHN0YXRpYyBpbnQgaW52YWxpZGF0ZV9yYW5nZV9zdGFydF90cmFtcG9saW5lKHN0cnVjdCBpYl91bWVtX29kcCAqaXRlbSwKIAkJCQkJICAgICB1NjQgc3RhcnQsIHU2NCBlbmQsIHZvaWQgKmNvb2tpZSkKIHsKIAlpYl91bWVtX25vdGlmaWVyX3N0YXJ0X2FjY291bnQoaXRlbSk7Ci0JaXRlbS0+dW1lbS5jb250ZXh0LT5pbnZhbGlkYXRlX3JhbmdlKGl0ZW0sIHN0YXJ0LCBlbmQpOworCWl0ZW0tPnVtZW0uaWJkZXYtPm9wcy5pbnZhbGlkYXRlX3JhbmdlKGl0ZW0sIHN0YXJ0LCBlbmQpOwogCXJldHVybiAwOwogfQogCkBAIC0xNTIsMTAgKzEyNSwxMCBAQCBzdGF0aWMgaW50IGliX3VtZW1fbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAllbHNlIGlmICghZG93bl9yZWFkX3RyeWxvY2soJnBlcl9tbS0+dW1lbV9yd3NlbSkpCiAJCXJldHVybiAtRUFHQUlOOwogCi0JaWYgKCFwZXJfbW0tPmFjdGl2ZSkgeworCWlmICghcGVyX21tLT5tbi51c2VycykgewogCQl1cF9yZWFkKCZwZXJfbW0tPnVtZW1fcndzZW0pOwogCQkvKgotCQkgKiBBdCB0aGlzIHBvaW50IGFjdGl2ZSBpcyBwZXJtYW5lbnRseSBzZXQgYW5kIHZpc2libGUgdG8gdGhpcworCQkgKiBBdCB0aGlzIHBvaW50IHVzZXJzIGlzIHBlcm1hbmVudGx5IHplcm8gYW5kIHZpc2libGUgdG8gdGhpcwogCQkgKiBDUFUgd2l0aG91dCBhIGxvY2ssIHRoYXQgZmFjdCBpcyByZWxpZWQgb24gdG8gc2tpcCB0aGUgdW5sb2NrCiAJCSAqIGluIHJhbmdlX2VuZC4KIAkJICovCkBAIC0xODUsNyArMTU4LDcgQEAgc3RhdGljIHZvaWQgaWJfdW1lbV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX2VuZChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAlzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tICpwZXJfbW0gPQogCQljb250YWluZXJfb2YobW4sIHN0cnVjdCBpYl91Y29udGV4dF9wZXJfbW0sIG1uKTsKIAotCWlmICh1bmxpa2VseSghcGVyX21tLT5hY3RpdmUpKQorCWlmICh1bmxpa2VseSghcGVyX21tLT5tbi51c2VycykpCiAJCXJldHVybjsKIAogCXJidF9pYl91bWVtX2Zvcl9lYWNoX2luX3JhbmdlKCZwZXJfbW0tPnVtZW1fdHJlZSwgcmFuZ2UtPnN0YXJ0LApAQCAtMTk0LDIxMiArMTY3LDI1MCBAQCBzdGF0aWMgdm9pZCBpYl91bWVtX25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAogCXVwX3JlYWQoJnBlcl9tbS0+dW1lbV9yd3NlbSk7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyBpYl91bWVtX25vdGlmaWVycyA9IHsKLQkucmVsZWFzZSAgICAgICAgICAgICAgICAgICAgPSBpYl91bWVtX25vdGlmaWVyX3JlbGVhc2UsCi0JLmludmFsaWRhdGVfcmFuZ2Vfc3RhcnQgICAgID0gaWJfdW1lbV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0LAotCS5pbnZhbGlkYXRlX3JhbmdlX2VuZCAgICAgICA9IGliX3VtZW1fbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9lbmQsCi19OwotCi1zdGF0aWMgdm9pZCBhZGRfdW1lbV90b19wZXJfbW0oc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCkKLXsKLQlzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tICpwZXJfbW0gPSB1bWVtX29kcC0+cGVyX21tOwotCi0JZG93bl93cml0ZSgmcGVyX21tLT51bWVtX3J3c2VtKTsKLQlpZiAobGlrZWx5KGliX3VtZW1fc3RhcnQodW1lbV9vZHApICE9IGliX3VtZW1fZW5kKHVtZW1fb2RwKSkpCi0JCXJidF9pYl91bWVtX2luc2VydCgmdW1lbV9vZHAtPmludGVydmFsX3RyZWUsCi0JCQkJICAgJnBlcl9tbS0+dW1lbV90cmVlKTsKLQl1cF93cml0ZSgmcGVyX21tLT51bWVtX3J3c2VtKTsKLX0KLQotc3RhdGljIHZvaWQgcmVtb3ZlX3VtZW1fZnJvbV9wZXJfbW0oc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCkKLXsKLQlzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tICpwZXJfbW0gPSB1bWVtX29kcC0+cGVyX21tOwotCi0JZG93bl93cml0ZSgmcGVyX21tLT51bWVtX3J3c2VtKTsKLQlpZiAobGlrZWx5KGliX3VtZW1fc3RhcnQodW1lbV9vZHApICE9IGliX3VtZW1fZW5kKHVtZW1fb2RwKSkpCi0JCXJidF9pYl91bWVtX3JlbW92ZSgmdW1lbV9vZHAtPmludGVydmFsX3RyZWUsCi0JCQkJICAgJnBlcl9tbS0+dW1lbV90cmVlKTsKLQljb21wbGV0ZV9hbGwoJnVtZW1fb2RwLT5ub3RpZmllcl9jb21wbGV0aW9uKTsKLQotCXVwX3dyaXRlKCZwZXJfbW0tPnVtZW1fcndzZW0pOwotfQotCi1zdGF0aWMgc3RydWN0IGliX3Vjb250ZXh0X3Blcl9tbSAqYWxsb2NfcGVyX21tKHN0cnVjdCBpYl91Y29udGV4dCAqY3R4LAotCQkJCQkgICAgICAgc3RydWN0IG1tX3N0cnVjdCAqbW0pCitzdGF0aWMgc3RydWN0IG1tdV9ub3RpZmllciAqaWJfdW1lbV9hbGxvY19ub3RpZmllcihzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIHsKIAlzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tICpwZXJfbW07Ci0JaW50IHJldDsKIAogCXBlcl9tbSA9IGt6YWxsb2Moc2l6ZW9mKCpwZXJfbW0pLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXBlcl9tbSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlwZXJfbW0tPmNvbnRleHQgPSBjdHg7Ci0JcGVyX21tLT5tbSA9IG1tOwogCXBlcl9tbS0+dW1lbV90cmVlID0gUkJfUk9PVF9DQUNIRUQ7CiAJaW5pdF9yd3NlbSgmcGVyX21tLT51bWVtX3J3c2VtKTsKLQlwZXJfbW0tPmFjdGl2ZSA9IHRydWU7CiAKKwlXQVJOX09OKG1tICE9IGN1cnJlbnQtPm1tKTsKIAlyY3VfcmVhZF9sb2NrKCk7CiAJcGVyX21tLT50Z2lkID0gZ2V0X3Rhc2tfcGlkKGN1cnJlbnQtPmdyb3VwX2xlYWRlciwgUElEVFlQRV9QSUQpOwogCXJjdV9yZWFkX3VubG9jaygpOwotCi0JV0FSTl9PTihtbSAhPSBjdXJyZW50LT5tbSk7Ci0KLQlwZXJfbW0tPm1uLm9wcyA9ICZpYl91bWVtX25vdGlmaWVyczsKLQlyZXQgPSBtbXVfbm90aWZpZXJfcmVnaXN0ZXIoJnBlcl9tbS0+bW4sIHBlcl9tbS0+bW0pOwotCWlmIChyZXQpIHsKLQkJZGV2X2VycigmY3R4LT5kZXZpY2UtPmRldiwKLQkJCSJGYWlsZWQgdG8gcmVnaXN0ZXIgbW11X25vdGlmaWVyICVkXG4iLCByZXQpOwotCQlnb3RvIG91dF9waWQ7Ci0JfQotCi0JbGlzdF9hZGQoJnBlcl9tbS0+dWNvbnRleHRfbGlzdCwgJmN0eC0+cGVyX21tX2xpc3QpOwotCXJldHVybiBwZXJfbW07Ci0KLW91dF9waWQ6Ci0JcHV0X3BpZChwZXJfbW0tPnRnaWQpOwotCWtmcmVlKHBlcl9tbSk7Ci0JcmV0dXJuIEVSUl9QVFIocmV0KTsKKwlyZXR1cm4gJnBlcl9tbS0+bW47CiB9CiAKLXN0YXRpYyBpbnQgZ2V0X3Blcl9tbShzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwKQorc3RhdGljIHZvaWQgaWJfdW1lbV9mcmVlX25vdGlmaWVyKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uKQogewotCXN0cnVjdCBpYl91Y29udGV4dCAqY3R4ID0gdW1lbV9vZHAtPnVtZW0uY29udGV4dDsKLQlzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tICpwZXJfbW07Ci0KLQkvKgotCSAqIEdlbmVyYWxseSBzcGVha2luZyB3ZSBleHBlY3Qgb25seSBvbmUgb3IgdHdvIHBlcl9tbSBpbiB0aGlzIGxpc3QsCi0JICogc28gbm8gcmVhc29uIHRvIG9wdGltaXplIHRoaXMgc2VhcmNoIHRvZGF5LgotCSAqLwotCW11dGV4X2xvY2soJmN0eC0+cGVyX21tX2xpc3RfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShwZXJfbW0sICZjdHgtPnBlcl9tbV9saXN0LCB1Y29udGV4dF9saXN0KSB7Ci0JCWlmIChwZXJfbW0tPm1tID09IHVtZW1fb2RwLT51bWVtLm93bmluZ19tbSkKLQkJCWdvdG8gZm91bmQ7Ci0JfQotCi0JcGVyX21tID0gYWxsb2NfcGVyX21tKGN0eCwgdW1lbV9vZHAtPnVtZW0ub3duaW5nX21tKTsKLQlpZiAoSVNfRVJSKHBlcl9tbSkpIHsKLQkJbXV0ZXhfdW5sb2NrKCZjdHgtPnBlcl9tbV9saXN0X2xvY2spOwotCQlyZXR1cm4gUFRSX0VSUihwZXJfbW0pOwotCX0KLQotZm91bmQ6Ci0JdW1lbV9vZHAtPnBlcl9tbSA9IHBlcl9tbTsKLQlwZXJfbW0tPm9kcF9tcnNfY291bnQrKzsKLQltdXRleF91bmxvY2soJmN0eC0+cGVyX21tX2xpc3RfbG9jayk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZnJlZV9wZXJfbW0oc3RydWN0IHJjdV9oZWFkICpyY3UpCi17Ci0Ja2ZyZWUoY29udGFpbmVyX29mKHJjdSwgc3RydWN0IGliX3Vjb250ZXh0X3Blcl9tbSwgcmN1KSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHB1dF9wZXJfbW0oc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCkKLXsKLQlzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tICpwZXJfbW0gPSB1bWVtX29kcC0+cGVyX21tOwotCXN0cnVjdCBpYl91Y29udGV4dCAqY3R4ID0gdW1lbV9vZHAtPnVtZW0uY29udGV4dDsKLQlib29sIG5lZWRfZnJlZTsKLQotCW11dGV4X2xvY2soJmN0eC0+cGVyX21tX2xpc3RfbG9jayk7Ci0JdW1lbV9vZHAtPnBlcl9tbSA9IE5VTEw7Ci0JcGVyX21tLT5vZHBfbXJzX2NvdW50LS07Ci0JbmVlZF9mcmVlID0gcGVyX21tLT5vZHBfbXJzX2NvdW50ID09IDA7Ci0JaWYgKG5lZWRfZnJlZSkKLQkJbGlzdF9kZWwoJnBlcl9tbS0+dWNvbnRleHRfbGlzdCk7Ci0JbXV0ZXhfdW5sb2NrKCZjdHgtPnBlcl9tbV9saXN0X2xvY2spOwotCi0JaWYgKCFuZWVkX2ZyZWUpCi0JCXJldHVybjsKLQotCS8qCi0JICogTk9URSEgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIoKSBjYW4gaGFwcGVuIGJldHdlZW4gYSBzdGFydC9lbmQKLQkgKiBjYWxsYmFjaywgcmVzdWx0aW5nIGluIGFuIHN0YXJ0L2VuZCwgYW5kIHRodXMgYW4gdW5iYWxhbmNlZAotCSAqIGxvY2suIFRoaXMgZG9lc24ndCByZWFsbHkgbWF0dGVyIHRvIHVzIHNpbmNlIHdlIGFyZSBhYm91dCB0byBrZnJlZQotCSAqIHRoZSBtZW1vcnkgdGhhdCBob2xkcyB0aGUgbG9jaywgaG93ZXZlciBMT0NLREVQIGRvZXNuJ3QgbGlrZSB0aGlzLgotCSAqLwotCWRvd25fd3JpdGUoJnBlcl9tbS0+dW1lbV9yd3NlbSk7Ci0JcGVyX21tLT5hY3RpdmUgPSBmYWxzZTsKLQl1cF93cml0ZSgmcGVyX21tLT51bWVtX3J3c2VtKTsKKwlzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tICpwZXJfbW0gPQorCQljb250YWluZXJfb2YobW4sIHN0cnVjdCBpYl91Y29udGV4dF9wZXJfbW0sIG1uKTsKIAogCVdBUk5fT04oIVJCX0VNUFRZX1JPT1QoJnBlcl9tbS0+dW1lbV90cmVlLnJiX3Jvb3QpKTsKLQltbXVfbm90aWZpZXJfdW5yZWdpc3Rlcl9ub19yZWxlYXNlKCZwZXJfbW0tPm1uLCBwZXJfbW0tPm1tKTsKKwogCXB1dF9waWQocGVyX21tLT50Z2lkKTsKLQltbXVfbm90aWZpZXJfY2FsbF9zcmN1KCZwZXJfbW0tPnJjdSwgZnJlZV9wZXJfbW0pOworCWtmcmVlKHBlcl9tbSk7CiB9CiAKLXN0cnVjdCBpYl91bWVtX29kcCAqaWJfYWxsb2Nfb2RwX3VtZW0oc3RydWN0IGliX3VtZW1fb2RwICpyb290LAotCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgc2l6ZV90IHNpemUpCitzdGF0aWMgY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9vcHMgaWJfdW1lbV9ub3RpZmllcnMgPSB7CisJLnJlbGVhc2UgICAgICAgICAgICAgICAgICAgID0gaWJfdW1lbV9ub3RpZmllcl9yZWxlYXNlLAorCS5pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0ICAgICA9IGliX3VtZW1fbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydCwKKwkuaW52YWxpZGF0ZV9yYW5nZV9lbmQgICAgICAgPSBpYl91bWVtX25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kLAorCS5hbGxvY19ub3RpZmllcgkJICAgID0gaWJfdW1lbV9hbGxvY19ub3RpZmllciwKKwkuZnJlZV9ub3RpZmllcgkJICAgID0gaWJfdW1lbV9mcmVlX25vdGlmaWVyLAorfTsKKworc3RhdGljIGlubGluZSBpbnQgaWJfaW5pdF91bWVtX29kcChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwKQogewotCXN0cnVjdCBpYl91Y29udGV4dF9wZXJfbW0gKnBlcl9tbSA9IHJvb3QtPnBlcl9tbTsKLQlzdHJ1Y3QgaWJfdWNvbnRleHQgKmN0eCA9IHBlcl9tbS0+Y29udGV4dDsKKwlzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tICpwZXJfbW07CisJc3RydWN0IG1tdV9ub3RpZmllciAqbW47CisJaW50IHJldDsKKworCXVtZW1fb2RwLT51bWVtLmlzX29kcCA9IDE7CisJaWYgKCF1bWVtX29kcC0+aXNfaW1wbGljaXRfb2RwKSB7CisJCXNpemVfdCBwYWdlX3NpemUgPSAxVUwgPDwgdW1lbV9vZHAtPnBhZ2Vfc2hpZnQ7CisJCXNpemVfdCBwYWdlczsKKworCQl1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5zdGFydCA9CisJCQlBTElHTl9ET1dOKHVtZW1fb2RwLT51bWVtLmFkZHJlc3MsIHBhZ2Vfc2l6ZSk7CisJCWlmIChjaGVja19hZGRfb3ZlcmZsb3codW1lbV9vZHAtPnVtZW0uYWRkcmVzcywKKwkJCQkgICAgICAgKHVuc2lnbmVkIGxvbmcpdW1lbV9vZHAtPnVtZW0ubGVuZ3RoLAorCQkJCSAgICAgICAmdW1lbV9vZHAtPmludGVydmFsX3RyZWUubGFzdCkpCisJCQlyZXR1cm4gLUVPVkVSRkxPVzsKKwkJdW1lbV9vZHAtPmludGVydmFsX3RyZWUubGFzdCA9CisJCQlBTElHTih1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5sYXN0LCBwYWdlX3NpemUpOworCQlpZiAodW5saWtlbHkodW1lbV9vZHAtPmludGVydmFsX3RyZWUubGFzdCA8IHBhZ2Vfc2l6ZSkpCisJCQlyZXR1cm4gLUVPVkVSRkxPVzsKKworCQlwYWdlcyA9ICh1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5sYXN0IC0KKwkJCSB1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5zdGFydCkgPj4KKwkJCXVtZW1fb2RwLT5wYWdlX3NoaWZ0OworCQlpZiAoIXBhZ2VzKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJLyoKKwkJICogTm90ZSB0aGF0IHRoZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJ2YWxzIGluIHRoZQorCQkgKiBpbnRlcnZhbCB0cmVlIGNvbnNpZGVycyB0aGUgZW5kaW5nIHBvaW50IGFzIGNvbnRhaW5lZCBpbgorCQkgKiB0aGUgaW50ZXJ2YWwuCisJCSAqLworCQl1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5sYXN0LS07CisKKwkJdW1lbV9vZHAtPnBhZ2VfbGlzdCA9IGt2Y2FsbG9jKAorCQkJcGFnZXMsIHNpemVvZigqdW1lbV9vZHAtPnBhZ2VfbGlzdCksIEdGUF9LRVJORUwpOworCQlpZiAoIXVtZW1fb2RwLT5wYWdlX2xpc3QpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQl1bWVtX29kcC0+ZG1hX2xpc3QgPSBrdmNhbGxvYygKKwkJCXBhZ2VzLCBzaXplb2YoKnVtZW1fb2RwLT5kbWFfbGlzdCksIEdGUF9LRVJORUwpOworCQlpZiAoIXVtZW1fb2RwLT5kbWFfbGlzdCkgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gb3V0X3BhZ2VfbGlzdDsKKwkJfQorCX0KKworCW1uID0gbW11X25vdGlmaWVyX2dldCgmaWJfdW1lbV9ub3RpZmllcnMsIHVtZW1fb2RwLT51bWVtLm93bmluZ19tbSk7CisJaWYgKElTX0VSUihtbikpIHsKKwkJcmV0ID0gUFRSX0VSUihtbik7CisJCWdvdG8gb3V0X2RtYV9saXN0OworCX0KKwl1bWVtX29kcC0+cGVyX21tID0gcGVyX21tID0KKwkJY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tLCBtbik7CisKKwltdXRleF9pbml0KCZ1bWVtX29kcC0+dW1lbV9tdXRleCk7CisJaW5pdF9jb21wbGV0aW9uKCZ1bWVtX29kcC0+bm90aWZpZXJfY29tcGxldGlvbik7CisKKwlpZiAoIXVtZW1fb2RwLT5pc19pbXBsaWNpdF9vZHApIHsKKwkJZG93bl93cml0ZSgmcGVyX21tLT51bWVtX3J3c2VtKTsKKwkJaW50ZXJ2YWxfdHJlZV9pbnNlcnQoJnVtZW1fb2RwLT5pbnRlcnZhbF90cmVlLAorCQkJCSAgICAgJnBlcl9tbS0+dW1lbV90cmVlKTsKKwkJdXBfd3JpdGUoJnBlcl9tbS0+dW1lbV9yd3NlbSk7CisJfQorCW1tZ3JhYih1bWVtX29kcC0+dW1lbS5vd25pbmdfbW0pOworCisJcmV0dXJuIDA7CisKK291dF9kbWFfbGlzdDoKKwlrdmZyZWUodW1lbV9vZHAtPmRtYV9saXN0KTsKK291dF9wYWdlX2xpc3Q6CisJa3ZmcmVlKHVtZW1fb2RwLT5wYWdlX2xpc3QpOworCXJldHVybiByZXQ7Cit9CisKKy8qKgorICogaWJfdW1lbV9vZHBfYWxsb2NfaW1wbGljaXQgLSBBbGxvY2F0ZSBhIHBhcmVudCBpbXBsaWNpdCBPRFAgdW1lbQorICoKKyAqIEltcGxpY2l0IE9EUCB1bWVtcyBkbyBub3QgaGF2ZSBhIFZBIHJhbmdlIGFuZCBkbyBub3QgaGF2ZSBhbnkgcGFnZSBsaXN0cy4KKyAqIFRoZXkgZXhpc3Qgb25seSB0byBob2xkIHRoZSBwZXJfbW0gcmVmZXJlbmNlIHRvIGhlbHAgdGhlIGRyaXZlciBjcmVhdGUKKyAqIGNoaWxkcmVuIHVtZW1zLgorICoKKyAqIEB1ZGF0YTogdWRhdGEgZnJvbSB0aGUgc3lzY2FsbCBiZWluZyB1c2VkIHRvIGNyZWF0ZSB0aGUgdW1lbQorICogQGFjY2VzczogaWJfcmVnX21yIGFjY2VzcyBmbGFncworICovCitzdHJ1Y3QgaWJfdW1lbV9vZHAgKmliX3VtZW1fb2RwX2FsbG9jX2ltcGxpY2l0KHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEsCisJCQkJCSAgICAgICBpbnQgYWNjZXNzKQoreworCXN0cnVjdCBpYl91Y29udGV4dCAqY29udGV4dCA9CisJCWNvbnRhaW5lcl9vZih1ZGF0YSwgc3RydWN0IHV2ZXJic19hdHRyX2J1bmRsZSwgZHJpdmVyX3VkYXRhKQorCQkJLT5jb250ZXh0OworCXN0cnVjdCBpYl91bWVtICp1bWVtOworCXN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9vZHA7CisJaW50IHJldDsKKworCWlmIChhY2Nlc3MgJiBJQl9BQ0NFU1NfSFVHRVRMQikKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisKKwlpZiAoIWNvbnRleHQpCisJCXJldHVybiBFUlJfUFRSKC1FSU8pOworCWlmIChXQVJOX09OX09OQ0UoIWNvbnRleHQtPmRldmljZS0+b3BzLmludmFsaWRhdGVfcmFuZ2UpKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKworCXVtZW1fb2RwID0ga3phbGxvYyhzaXplb2YoKnVtZW1fb2RwKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF1bWVtX29kcCkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJdW1lbSA9ICZ1bWVtX29kcC0+dW1lbTsKKwl1bWVtLT5pYmRldiA9IGNvbnRleHQtPmRldmljZTsKKwl1bWVtLT53cml0YWJsZSA9IGliX2FjY2Vzc193cml0YWJsZShhY2Nlc3MpOworCXVtZW0tPm93bmluZ19tbSA9IGN1cnJlbnQtPm1tOworCXVtZW1fb2RwLT5pc19pbXBsaWNpdF9vZHAgPSAxOworCXVtZW1fb2RwLT5wYWdlX3NoaWZ0ID0gUEFHRV9TSElGVDsKKworCXJldCA9IGliX2luaXRfdW1lbV9vZHAodW1lbV9vZHApOworCWlmIChyZXQpIHsKKwkJa2ZyZWUodW1lbV9vZHApOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOworCX0KKwlyZXR1cm4gdW1lbV9vZHA7Cit9CitFWFBPUlRfU1lNQk9MKGliX3VtZW1fb2RwX2FsbG9jX2ltcGxpY2l0KTsKKworLyoqCisgKiBpYl91bWVtX29kcF9hbGxvY19jaGlsZCAtIEFsbG9jYXRlIGEgY2hpbGQgT0RQIHVtZW0gdW5kZXIgYW4gaW1wbGljaXQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50IE9EUCB1bWVtCisgKgorICogQHJvb3Q6IFRoZSBwYXJlbnQgdW1lbSBlbmNsb3NpbmcgdGhlIGNoaWxkLiBUaGlzIG11c3QgYmUgYWxsb2NhdGVkIHVzaW5nCisgKiAgICAgICAgaWJfYWxsb2NfaW1wbGljaXRfb2RwX3VtZW0oKQorICogQGFkZHI6IFRoZSBzdGFydGluZyB1c2Vyc3BhY2UgVkEKKyAqIEBzaXplOiBUaGUgbGVuZ3RoIG9mIHRoZSB1c2Vyc3BhY2UgVkEKKyAqLworc3RydWN0IGliX3VtZW1fb2RwICppYl91bWVtX29kcF9hbGxvY19jaGlsZChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnJvb3QsCisJCQkJCSAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHNpemVfdCBzaXplKQoreworCS8qCisJICogQ2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgcm9vdCBjYW5ub3QgYmUgZnJlZWQgZHVyaW5nIHRoZSBjYWxsIHRvCisJICogaWJfYWxsb2Nfb2RwX3VtZW0uCisJICovCiAJc3RydWN0IGliX3VtZW1fb2RwICpvZHBfZGF0YTsKIAlzdHJ1Y3QgaWJfdW1lbSAqdW1lbTsKLQlpbnQgcGFnZXMgPSBzaXplID4+IFBBR0VfU0hJRlQ7CiAJaW50IHJldDsKIAorCWlmIChXQVJOX09OKCFyb290LT5pc19pbXBsaWNpdF9vZHApKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwogCW9kcF9kYXRhID0ga3phbGxvYyhzaXplb2YoKm9kcF9kYXRhKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFvZHBfZGF0YSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAJdW1lbSA9ICZvZHBfZGF0YS0+dW1lbTsKLQl1bWVtLT5jb250ZXh0ICAgID0gY3R4OworCXVtZW0tPmliZGV2ID0gcm9vdC0+dW1lbS5pYmRldjsKIAl1bWVtLT5sZW5ndGggICAgID0gc2l6ZTsKIAl1bWVtLT5hZGRyZXNzICAgID0gYWRkcjsKLQlvZHBfZGF0YS0+cGFnZV9zaGlmdCA9IFBBR0VfU0hJRlQ7CiAJdW1lbS0+d3JpdGFibGUgICA9IHJvb3QtPnVtZW0ud3JpdGFibGU7Ci0JdW1lbS0+aXNfb2RwID0gMTsKLQlvZHBfZGF0YS0+cGVyX21tID0gcGVyX21tOwotCXVtZW0tPm93bmluZ19tbSAgPSBwZXJfbW0tPm1tOwotCW1tZ3JhYih1bWVtLT5vd25pbmdfbW0pOworCXVtZW0tPm93bmluZ19tbSAgPSByb290LT51bWVtLm93bmluZ19tbTsKKwlvZHBfZGF0YS0+cGFnZV9zaGlmdCA9IFBBR0VfU0hJRlQ7CiAKLQltdXRleF9pbml0KCZvZHBfZGF0YS0+dW1lbV9tdXRleCk7Ci0JaW5pdF9jb21wbGV0aW9uKCZvZHBfZGF0YS0+bm90aWZpZXJfY29tcGxldGlvbik7Ci0KLQlvZHBfZGF0YS0+cGFnZV9saXN0ID0KLQkJdnphbGxvYyhhcnJheV9zaXplKHBhZ2VzLCBzaXplb2YoKm9kcF9kYXRhLT5wYWdlX2xpc3QpKSk7Ci0JaWYgKCFvZHBfZGF0YS0+cGFnZV9saXN0KSB7Ci0JCXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0X29kcF9kYXRhOworCXJldCA9IGliX2luaXRfdW1lbV9vZHAob2RwX2RhdGEpOworCWlmIChyZXQpIHsKKwkJa2ZyZWUob2RwX2RhdGEpOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KLQotCW9kcF9kYXRhLT5kbWFfbGlzdCA9Ci0JCXZ6YWxsb2MoYXJyYXlfc2l6ZShwYWdlcywgc2l6ZW9mKCpvZHBfZGF0YS0+ZG1hX2xpc3QpKSk7Ci0JaWYgKCFvZHBfZGF0YS0+ZG1hX2xpc3QpIHsKLQkJcmV0ID0gLUVOT01FTTsKLQkJZ290byBvdXRfcGFnZV9saXN0OwotCX0KLQotCS8qCi0JICogQ2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgdGhlIHVtZW1fb2RwIHRoYXQgdGhlIHBlcl9tbSBjYW1lIGZyb20KLQkgKiBjYW5ub3QgYmUgZnJlZWQgZHVyaW5nIHRoZSBjYWxsIHRvIGliX2FsbG9jX29kcF91bWVtLgotCSAqLwotCW11dGV4X2xvY2soJmN0eC0+cGVyX21tX2xpc3RfbG9jayk7Ci0JcGVyX21tLT5vZHBfbXJzX2NvdW50Kys7Ci0JbXV0ZXhfdW5sb2NrKCZjdHgtPnBlcl9tbV9saXN0X2xvY2spOwotCWFkZF91bWVtX3RvX3Blcl9tbShvZHBfZGF0YSk7Ci0KIAlyZXR1cm4gb2RwX2RhdGE7Ci0KLW91dF9wYWdlX2xpc3Q6Ci0JdmZyZWUob2RwX2RhdGEtPnBhZ2VfbGlzdCk7Ci1vdXRfb2RwX2RhdGE6Ci0JbW1kcm9wKHVtZW0tPm93bmluZ19tbSk7Ci0Ja2ZyZWUob2RwX2RhdGEpOwotCXJldHVybiBFUlJfUFRSKHJldCk7CiB9Ci1FWFBPUlRfU1lNQk9MKGliX2FsbG9jX29kcF91bWVtKTsKK0VYUE9SVF9TWU1CT0woaWJfdW1lbV9vZHBfYWxsb2NfY2hpbGQpOwogCi1pbnQgaWJfdW1lbV9vZHBfZ2V0KHN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9vZHAsIGludCBhY2Nlc3MpCisvKioKKyAqIGliX3VtZW1fb2RwX2dldCAtIENyZWF0ZSBhIHVtZW1fb2RwIGZvciBhIHVzZXJzcGFjZSB2YQorICoKKyAqIEB1ZGF0YTogdXNlcnNwYWNlIGNvbnRleHQgdG8gcGluIG1lbW9yeSBmb3IKKyAqIEBhZGRyOiB1c2Vyc3BhY2UgdmlydHVhbCBhZGRyZXNzIHRvIHN0YXJ0IGF0CisgKiBAc2l6ZTogbGVuZ3RoIG9mIHJlZ2lvbiB0byBwaW4KKyAqIEBhY2Nlc3M6IElCX0FDQ0VTU194eHggZmxhZ3MgZm9yIG1lbW9yeSBiZWluZyBwaW5uZWQKKyAqCisgKiBUaGUgZHJpdmVyIHNob3VsZCB1c2Ugd2hlbiB0aGUgYWNjZXNzIGZsYWdzIGluZGljYXRlIE9EUCBtZW1vcnkuIEl0IGF2b2lkcworICogcGlubmluZywgaW5zdGVhZCwgc3RvcmVzIHRoZSBtbSBmb3IgZnV0dXJlIHBhZ2UgZmF1bHQgaGFuZGxpbmcgaW4KKyAqIGNvbmp1bmN0aW9uIHdpdGggTU1VIG5vdGlmaWVycy4KKyAqLworc3RydWN0IGliX3VtZW1fb2RwICppYl91bWVtX29kcF9nZXQoc3RydWN0IGliX3VkYXRhICp1ZGF0YSwgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkJCSAgICBzaXplX3Qgc2l6ZSwgaW50IGFjY2VzcykKIHsKLQlzdHJ1Y3QgaWJfdW1lbSAqdW1lbSA9ICZ1bWVtX29kcC0+dW1lbTsKLQkvKgotCSAqIE5PVEU6IFRoaXMgbXVzdCBjYWxsZWQgaW4gYSBwcm9jZXNzIGNvbnRleHQgd2hlcmUgdW1lbS0+b3duaW5nX21tCi0JICogPT0gY3VycmVudC0+bW0KLQkgKi8KLQlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHVtZW0tPm93bmluZ19tbTsKLQlpbnQgcmV0X3ZhbDsKKwlzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwOworCXN0cnVjdCBpYl91Y29udGV4dCAqY29udGV4dDsKKwlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKKwlpbnQgcmV0OworCisJaWYgKCF1ZGF0YSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTyk7CisKKwljb250ZXh0ID0gY29udGFpbmVyX29mKHVkYXRhLCBzdHJ1Y3QgdXZlcmJzX2F0dHJfYnVuZGxlLCBkcml2ZXJfdWRhdGEpCisJCQkgIC0+Y29udGV4dDsKKwlpZiAoIWNvbnRleHQpCisJCXJldHVybiBFUlJfUFRSKC1FSU8pOworCisJaWYgKFdBUk5fT05fT05DRSghKGFjY2VzcyAmIElCX0FDQ0VTU19PTl9ERU1BTkQpKSB8fAorCSAgICBXQVJOX09OX09OQ0UoIWNvbnRleHQtPmRldmljZS0+b3BzLmludmFsaWRhdGVfcmFuZ2UpKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKworCXVtZW1fb2RwID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGliX3VtZW1fb2RwKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF1bWVtX29kcCkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwl1bWVtX29kcC0+dW1lbS5pYmRldiA9IGNvbnRleHQtPmRldmljZTsKKwl1bWVtX29kcC0+dW1lbS5sZW5ndGggPSBzaXplOworCXVtZW1fb2RwLT51bWVtLmFkZHJlc3MgPSBhZGRyOworCXVtZW1fb2RwLT51bWVtLndyaXRhYmxlID0gaWJfYWNjZXNzX3dyaXRhYmxlKGFjY2Vzcyk7CisJdW1lbV9vZHAtPnVtZW0ub3duaW5nX21tID0gbW0gPSBjdXJyZW50LT5tbTsKIAogCXVtZW1fb2RwLT5wYWdlX3NoaWZ0ID0gUEFHRV9TSElGVDsKIAlpZiAoYWNjZXNzICYgSUJfQUNDRVNTX0hVR0VUTEIpIHsKQEAgLTQxMCw2MyArNDIxLDYzIEBAIGludCBpYl91bWVtX29kcF9nZXQoc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCwgaW50IGFjY2VzcykKIAkJdm1hID0gZmluZF92bWEobW0sIGliX3VtZW1fc3RhcnQodW1lbV9vZHApKTsKIAkJaWYgKCF2bWEgfHwgIWlzX3ZtX2h1Z2V0bGJfcGFnZSh2bWEpKSB7CiAJCQl1cF9yZWFkKCZtbS0+bW1hcF9zZW0pOwotCQkJcmV0dXJuIC1FSU5WQUw7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290byBlcnJfZnJlZTsKIAkJfQogCQloID0gaHN0YXRlX3ZtYSh2bWEpOwogCQl1bWVtX29kcC0+cGFnZV9zaGlmdCA9IGh1Z2VfcGFnZV9zaGlmdChoKTsKIAkJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsKIAl9CiAKLQltdXRleF9pbml0KCZ1bWVtX29kcC0+dW1lbV9tdXRleCk7CisJcmV0ID0gaWJfaW5pdF91bWVtX29kcCh1bWVtX29kcCk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfZnJlZTsKKwlyZXR1cm4gdW1lbV9vZHA7CiAKLQlpbml0X2NvbXBsZXRpb24oJnVtZW1fb2RwLT5ub3RpZmllcl9jb21wbGV0aW9uKTsKLQotCWlmIChpYl91bWVtX29kcF9udW1fcGFnZXModW1lbV9vZHApKSB7Ci0JCXVtZW1fb2RwLT5wYWdlX2xpc3QgPQotCQkJdnphbGxvYyhhcnJheV9zaXplKHNpemVvZigqdW1lbV9vZHAtPnBhZ2VfbGlzdCksCi0JCQkJCSAgIGliX3VtZW1fb2RwX251bV9wYWdlcyh1bWVtX29kcCkpKTsKLQkJaWYgKCF1bWVtX29kcC0+cGFnZV9saXN0KQotCQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkJdW1lbV9vZHAtPmRtYV9saXN0ID0KLQkJCXZ6YWxsb2MoYXJyYXlfc2l6ZShzaXplb2YoKnVtZW1fb2RwLT5kbWFfbGlzdCksCi0JCQkJCSAgIGliX3VtZW1fb2RwX251bV9wYWdlcyh1bWVtX29kcCkpKTsKLQkJaWYgKCF1bWVtX29kcC0+ZG1hX2xpc3QpIHsKLQkJCXJldF92YWwgPSAtRU5PTUVNOwotCQkJZ290byBvdXRfcGFnZV9saXN0OwotCQl9Ci0JfQotCi0JcmV0X3ZhbCA9IGdldF9wZXJfbW0odW1lbV9vZHApOwotCWlmIChyZXRfdmFsKQotCQlnb3RvIG91dF9kbWFfbGlzdDsKLQlhZGRfdW1lbV90b19wZXJfbW0odW1lbV9vZHApOwotCi0JcmV0dXJuIDA7Ci0KLW91dF9kbWFfbGlzdDoKLQl2ZnJlZSh1bWVtX29kcC0+ZG1hX2xpc3QpOwotb3V0X3BhZ2VfbGlzdDoKLQl2ZnJlZSh1bWVtX29kcC0+cGFnZV9saXN0KTsKLQlyZXR1cm4gcmV0X3ZhbDsKK2Vycl9mcmVlOgorCWtmcmVlKHVtZW1fb2RwKTsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOwogfQorRVhQT1JUX1NZTUJPTChpYl91bWVtX29kcF9nZXQpOwogCiB2b2lkIGliX3VtZW1fb2RwX3JlbGVhc2Uoc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCkKIHsKKwlzdHJ1Y3QgaWJfdWNvbnRleHRfcGVyX21tICpwZXJfbW0gPSB1bWVtX29kcC0+cGVyX21tOworCiAJLyoKIAkgKiBFbnN1cmUgdGhhdCBubyBtb3JlIHBhZ2VzIGFyZSBtYXBwZWQgaW4gdGhlIHVtZW0uCiAJICoKIAkgKiBJdCBpcyB0aGUgZHJpdmVyJ3MgcmVzcG9uc2liaWxpdHkgdG8gZW5zdXJlLCBiZWZvcmUgY2FsbGluZyB1cywKIAkgKiB0aGF0IHRoZSBoYXJkd2FyZSB3aWxsIG5vdCBhdHRlbXB0IHRvIGFjY2VzcyB0aGUgTVIgYW55IG1vcmUuCiAJICovCi0JaWJfdW1lbV9vZHBfdW5tYXBfZG1hX3BhZ2VzKHVtZW1fb2RwLCBpYl91bWVtX3N0YXJ0KHVtZW1fb2RwKSwKLQkJCQkgICAgaWJfdW1lbV9lbmQodW1lbV9vZHApKTsKKwlpZiAoIXVtZW1fb2RwLT5pc19pbXBsaWNpdF9vZHApIHsKKwkJaWJfdW1lbV9vZHBfdW5tYXBfZG1hX3BhZ2VzKHVtZW1fb2RwLCBpYl91bWVtX3N0YXJ0KHVtZW1fb2RwKSwKKwkJCQkJICAgIGliX3VtZW1fZW5kKHVtZW1fb2RwKSk7CisJCWt2ZnJlZSh1bWVtX29kcC0+ZG1hX2xpc3QpOworCQlrdmZyZWUodW1lbV9vZHAtPnBhZ2VfbGlzdCk7CisJfQogCi0JcmVtb3ZlX3VtZW1fZnJvbV9wZXJfbW0odW1lbV9vZHApOwotCXB1dF9wZXJfbW0odW1lbV9vZHApOwotCXZmcmVlKHVtZW1fb2RwLT5kbWFfbGlzdCk7Ci0JdmZyZWUodW1lbV9vZHAtPnBhZ2VfbGlzdCk7CisJZG93bl93cml0ZSgmcGVyX21tLT51bWVtX3J3c2VtKTsKKwlpZiAoIXVtZW1fb2RwLT5pc19pbXBsaWNpdF9vZHApIHsKKwkJaW50ZXJ2YWxfdHJlZV9yZW1vdmUoJnVtZW1fb2RwLT5pbnRlcnZhbF90cmVlLAorCQkJCSAgICAgJnBlcl9tbS0+dW1lbV90cmVlKTsKKwkJY29tcGxldGVfYWxsKCZ1bWVtX29kcC0+bm90aWZpZXJfY29tcGxldGlvbik7CisJfQorCS8qCisJICogTk9URSEgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIoKSBjYW4gaGFwcGVuIGJldHdlZW4gYSBzdGFydC9lbmQKKwkgKiBjYWxsYmFjaywgcmVzdWx0aW5nIGluIGEgbWlzc2luZyBlbmQsIGFuZCB0aHVzIGFuIHVuYmFsYW5jZWQKKwkgKiBsb2NrLiBUaGlzIGRvZXNuJ3QgcmVhbGx5IG1hdHRlciB0byB1cyBzaW5jZSB3ZSBhcmUgYWJvdXQgdG8ga2ZyZWUKKwkgKiB0aGUgbWVtb3J5IHRoYXQgaG9sZHMgdGhlIGxvY2ssIGhvd2V2ZXIgTE9DS0RFUCBkb2Vzbid0IGxpa2UgdGhpcy4KKwkgKiBUaHVzIHdlIGNhbGwgdGhlIG1tdV9ub3RpZmllcl9wdXQgdW5kZXIgdGhlIHJ3c2VtIGFuZCB0ZXN0IHRoZQorCSAqIGludGVybmFsIHVzZXJzIGNvdW50IHRvIHJlbGlhYmx5IHNlZSBpZiB3ZSBhcmUgcGFzdCB0aGlzIHBvaW50LgorCSAqLworCW1tdV9ub3RpZmllcl9wdXQoJnBlcl9tbS0+bW4pOworCXVwX3dyaXRlKCZwZXJfbW0tPnVtZW1fcndzZW0pOworCisJbW1kcm9wKHVtZW1fb2RwLT51bWVtLm93bmluZ19tbSk7CisJa2ZyZWUodW1lbV9vZHApOwogfQorRVhQT1JUX1NZTUJPTChpYl91bWVtX29kcF9yZWxlYXNlKTsKIAogLyoKICAqIE1hcCBmb3IgRE1BIGFuZCBpbnNlcnQgYSBzaW5nbGUgcGFnZSBpbnRvIHRoZSBvbi1kZW1hbmQgcGFnaW5nIHBhZ2UgdGFibGVzLgpAQCAtNDkzLDggKzUwNCw3IEBAIHN0YXRpYyBpbnQgaWJfdW1lbV9vZHBfbWFwX2RtYV9zaW5nbGVfcGFnZSgKIAkJdTY0IGFjY2Vzc19tYXNrLAogCQl1bnNpZ25lZCBsb25nIGN1cnJlbnRfc2VxKQogewotCXN0cnVjdCBpYl91Y29udGV4dCAqY29udGV4dCA9IHVtZW1fb2RwLT51bWVtLmNvbnRleHQ7Ci0Jc3RydWN0IGliX2RldmljZSAqZGV2ID0gY29udGV4dC0+ZGV2aWNlOworCXN0cnVjdCBpYl9kZXZpY2UgKmRldiA9IHVtZW1fb2RwLT51bWVtLmliZGV2OwogCWRtYV9hZGRyX3QgZG1hX2FkZHI7CiAJaW50IHJlbW92ZV9leGlzdGluZ19tYXBwaW5nID0gMDsKIAlpbnQgcmV0ID0gMDsKQEAgLTUzNCw3ICs1NDQsNyBAQCBzdGF0aWMgaW50IGliX3VtZW1fb2RwX21hcF9kbWFfc2luZ2xlX3BhZ2UoCiAKIAlpZiAocmVtb3ZlX2V4aXN0aW5nX21hcHBpbmcpIHsKIAkJaWJfdW1lbV9ub3RpZmllcl9zdGFydF9hY2NvdW50KHVtZW1fb2RwKTsKLQkJY29udGV4dC0+aW52YWxpZGF0ZV9yYW5nZSgKKwkJZGV2LT5vcHMuaW52YWxpZGF0ZV9yYW5nZSgKIAkJCXVtZW1fb2RwLAogCQkJaWJfdW1lbV9zdGFydCh1bWVtX29kcCkgKwogCQkJCShwYWdlX2luZGV4IDw8IHVtZW1fb2RwLT5wYWdlX3NoaWZ0KSwKQEAgLTcwNyw3ICs3MTcsNyBAQCB2b2lkIGliX3VtZW1fb2RwX3VubWFwX2RtYV9wYWdlcyhzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwLCB1NjQgdmlydCwKIHsKIAlpbnQgaWR4OwogCXU2NCBhZGRyOwotCXN0cnVjdCBpYl9kZXZpY2UgKmRldiA9IHVtZW1fb2RwLT51bWVtLmNvbnRleHQtPmRldmljZTsKKwlzdHJ1Y3QgaWJfZGV2aWNlICpkZXYgPSB1bWVtX29kcC0+dW1lbS5pYmRldjsKIAogCXZpcnQgPSBtYXhfdCh1NjQsIHZpcnQsIGliX3VtZW1fc3RhcnQodW1lbV9vZHApKTsKIAlib3VuZCA9IG1pbl90KHU2NCwgYm91bmQsIGliX3VtZW1fZW5kKHVtZW1fb2RwKSk7CkBAIC03NjEsMzUgKzc3MSwyMSBAQCBpbnQgcmJ0X2liX3VtZW1fZm9yX2VhY2hfaW5fcmFuZ2Uoc3RydWN0IHJiX3Jvb3RfY2FjaGVkICpyb290LAogCQkJCSAgdm9pZCAqY29va2llKQogewogCWludCByZXRfdmFsID0gMDsKLQlzdHJ1Y3QgdW1lbV9vZHBfbm9kZSAqbm9kZSwgKm5leHQ7CisJc3RydWN0IGludGVydmFsX3RyZWVfbm9kZSAqbm9kZSwgKm5leHQ7CiAJc3RydWN0IGliX3VtZW1fb2RwICp1bWVtOwogCiAJaWYgKHVubGlrZWx5KHN0YXJ0ID09IGxhc3QpKQogCQlyZXR1cm4gcmV0X3ZhbDsKIAotCWZvciAobm9kZSA9IHJidF9pYl91bWVtX2l0ZXJfZmlyc3Qocm9vdCwgc3RhcnQsIGxhc3QgLSAxKTsKKwlmb3IgKG5vZGUgPSBpbnRlcnZhbF90cmVlX2l0ZXJfZmlyc3Qocm9vdCwgc3RhcnQsIGxhc3QgLSAxKTsKIAkJCW5vZGU7IG5vZGUgPSBuZXh0KSB7CiAJCS8qIFRPRE8gbW92ZSB0aGUgYmxvY2thYmxlIGRlY2lzaW9uIHVwIHRvIHRoZSBjYWxsYmFjayAqLwogCQlpZiAoIWJsb2NrYWJsZSkKIAkJCXJldHVybiAtRUFHQUlOOwotCQluZXh0ID0gcmJ0X2liX3VtZW1faXRlcl9uZXh0KG5vZGUsIHN0YXJ0LCBsYXN0IC0gMSk7CisJCW5leHQgPSBpbnRlcnZhbF90cmVlX2l0ZXJfbmV4dChub2RlLCBzdGFydCwgbGFzdCAtIDEpOwogCQl1bWVtID0gY29udGFpbmVyX29mKG5vZGUsIHN0cnVjdCBpYl91bWVtX29kcCwgaW50ZXJ2YWxfdHJlZSk7CiAJCXJldF92YWwgPSBjYih1bWVtLCBzdGFydCwgbGFzdCwgY29va2llKSB8fCByZXRfdmFsOwogCX0KIAogCXJldHVybiByZXRfdmFsOwogfQotRVhQT1JUX1NZTUJPTChyYnRfaWJfdW1lbV9mb3JfZWFjaF9pbl9yYW5nZSk7Ci0KLXN0cnVjdCBpYl91bWVtX29kcCAqcmJ0X2liX3VtZW1fbG9va3VwKHN0cnVjdCByYl9yb290X2NhY2hlZCAqcm9vdCwKLQkJCQkgICAgICAgdTY0IGFkZHIsIHU2NCBsZW5ndGgpCi17Ci0Jc3RydWN0IHVtZW1fb2RwX25vZGUgKm5vZGU7Ci0KLQlub2RlID0gcmJ0X2liX3VtZW1faXRlcl9maXJzdChyb290LCBhZGRyLCBhZGRyICsgbGVuZ3RoIC0gMSk7Ci0JaWYgKG5vZGUpCi0JCXJldHVybiBjb250YWluZXJfb2Yobm9kZSwgc3RydWN0IGliX3VtZW1fb2RwLCBpbnRlcnZhbF90cmVlKTsKLQlyZXR1cm4gTlVMTDsKLQotfQotRVhQT1JUX1NZTUJPTChyYnRfaWJfdW1lbV9sb29rdXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXNlcl9tYWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VzZXJfbWFkLmMKaW5kZXggZmZkZWFmNi4uZDE0MDdmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXNlcl9tYWQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91c2VyX21hZC5jCkBAIC0xMDQyLDcgKzEwNDIsNyBAQCBzdGF0aWMgaW50IGliX3VtYWRfY2xvc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiAJCQkJaWJfdW5yZWdpc3Rlcl9tYWRfYWdlbnQoZmlsZS0+YWdlbnRbaV0pOwogCiAJbXV0ZXhfdW5sb2NrKCZmaWxlLT5wb3J0LT5maWxlX211dGV4KTsKLQorCW11dGV4X2Rlc3Ryb3koJmZpbGUtPm11dGV4KTsKIAlrZnJlZShmaWxlKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19jbWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19jbWQuYwppbmRleCA3ZGRkMGU1Li4xNGE4MGZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfY21kLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX2NtZC5jCkBAIC0yNTIsOSArMjUyLDYgQEAgc3RhdGljIGludCBpYl91dmVyYnNfZ2V0X2NvbnRleHQoc3RydWN0IHV2ZXJic19hdHRyX2J1bmRsZSAqYXR0cnMpCiAJdWNvbnRleHQtPmNsb3NpbmcgPSBmYWxzZTsKIAl1Y29udGV4dC0+Y2xlYW51cF9yZXRyeWFibGUgPSBmYWxzZTsKIAotCW11dGV4X2luaXQoJnVjb250ZXh0LT5wZXJfbW1fbGlzdF9sb2NrKTsKLQlJTklUX0xJU1RfSEVBRCgmdWNvbnRleHQtPnBlcl9tbV9saXN0KTsKLQogCXJldCA9IGdldF91bnVzZWRfZmRfZmxhZ3MoT19DTE9FWEVDKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJfZnJlZTsKQEAgLTI3NSw4ICsyNzIsNiBAQCBzdGF0aWMgaW50IGliX3V2ZXJic19nZXRfY29udGV4dChzdHJ1Y3QgdXZlcmJzX2F0dHJfYnVuZGxlICphdHRycykKIAlyZXQgPSBpYl9kZXYtPm9wcy5hbGxvY191Y29udGV4dCh1Y29udGV4dCwgJmF0dHJzLT5kcml2ZXJfdWRhdGEpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX2ZpbGU7Ci0JaWYgKCEoaWJfZGV2LT5hdHRycy5kZXZpY2VfY2FwX2ZsYWdzICYgSUJfREVWSUNFX09OX0RFTUFORF9QQUdJTkcpKQotCQl1Y29udGV4dC0+aW52YWxpZGF0ZV9yYW5nZSA9IE5VTEw7CiAKIAlyZG1hX3Jlc3RyYWNrX3VhZGQoJnVjb250ZXh0LT5yZXMpOwogCkBAIC0zNDg0LDcgKzM0NzksOCBAQCBzdGF0aWMgaW50IF9fdXZlcmJzX2NyZWF0ZV94c3JxKHN0cnVjdCB1dmVyYnNfYXR0cl9idW5kbGUgKmF0dHJzLAogCiBlcnJfY29weToKIAlpYl9kZXN0cm95X3NycV91c2VyKHNycSwgdXZlcmJzX2dldF9jbGVhcmVkX3VkYXRhKGF0dHJzKSk7Ci0KKwkvKiBJdCB3YXMgcmVsZWFzZWQgaW4gaWJfZGVzdHJveV9zcnFfdXNlciAqLworCXNycSA9IE5VTEw7CiBlcnJfZnJlZToKIAlrZnJlZShzcnEpOwogZXJyX3B1dDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfbWFpbi5jCmluZGV4IDExYzEzYzEuLmRiOTgxMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYwpAQCAtMTIwLDYgKzEyMCw4IEBAIHN0YXRpYyB2b2lkIGliX3V2ZXJic19yZWxlYXNlX2RldihzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCiAKIAl1dmVyYnNfZGVzdHJveV9hcGkoZGV2LT51YXBpKTsKIAljbGVhbnVwX3NyY3Vfc3RydWN0KCZkZXYtPmRpc2Fzc29jaWF0ZV9zcmN1KTsKKwltdXRleF9kZXN0cm95KCZkZXYtPmxpc3RzX211dGV4KTsKKwltdXRleF9kZXN0cm95KCZkZXYtPnhyY2RfdHJlZV9tdXRleCk7CiAJa2ZyZWUoZGV2KTsKIH0KIApAQCAtMjEyLDYgKzIxNCw4IEBAIHZvaWQgaWJfdXZlcmJzX3JlbGVhc2VfZmlsZShzdHJ1Y3Qga3JlZiAqcmVmKQogCiAJaWYgKGZpbGUtPmRpc2Fzc29jaWF0ZV9wYWdlKQogCQlfX2ZyZWVfcGFnZXMoZmlsZS0+ZGlzYXNzb2NpYXRlX3BhZ2UsIDApOworCW11dGV4X2Rlc3Ryb3koJmZpbGUtPnVtYXBfbG9jayk7CisJbXV0ZXhfZGVzdHJveSgmZmlsZS0+dWNvbnRleHRfbG9jayk7CiAJa2ZyZWUoZmlsZSk7CiB9CiAKQEAgLTE0ODcsNiArMTQ5MSw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBpYl91dmVyYnNfY2xlYW51cCh2b2lkKQogCQkJCSBJQl9VVkVSQlNfTlVNX0ZJWEVEX01JTk9SKTsKIAl1bnJlZ2lzdGVyX2NocmRldl9yZWdpb24oZHluYW1pY191dmVyYnNfZGV2LAogCQkJCSBJQl9VVkVSQlNfTlVNX0RZTkFNSUNfTUlOT1IpOworCW1tdV9ub3RpZmllcl9zeW5jaHJvbml6ZSgpOwogfQogCiBtb2R1bGVfaW5pdChpYl91dmVyYnNfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS92ZXJicy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdmVyYnMuYwppbmRleCA5MjM0OWJmLi5mOTc0YjY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS92ZXJicy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3ZlcmJzLmMKQEAgLTIyNTksNiArMjI1OSw3IEBAIGludCBpYl9kZWFsbG9jX3hyY2Qoc3RydWN0IGliX3hyY2QgKnhyY2QsIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEpCiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KKwltdXRleF9kZXN0cm95KCZ4cmNkLT50Z3RfcXBfbXV0ZXgpOwogCiAJcmV0dXJuIHhyY2QtPmRldmljZS0+b3BzLmRlYWxsb2NfeHJjZCh4cmNkLCB1ZGF0YSk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9od19jb3VudGVycy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvaHdfY291bnRlcnMuYwppbmRleCA2MDRiNzE4Li4zNDIxYTBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9od19jb3VudGVycy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL2h3X2NvdW50ZXJzLmMKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBibnh0X3JlX3N0YXRfbmFtZVtdID0gewogCVtCTlhUX1JFX1NFUV9FUlJfTkFLU19SQ1ZEXSAgICAgPSAic2VxX2Vycl9uYWtzX3JjdmQiLAogCVtCTlhUX1JFX01BWF9SRVRSWV9FWENFRURFRF0gICAgPSAibWF4X3JldHJ5X2V4Y2VlZGVkIiwKIAlbQk5YVF9SRV9STlJfTkFLU19SQ1ZEXSAgICAgICAgID0gInJucl9uYWtzX3JjdmQiLAotCVtCTlhUX1JFX01JU1NJTkdfUkVTUF0gICAgICAgICAgPSAibWlzc2luX3Jlc3AiLAorCVtCTlhUX1JFX01JU1NJTkdfUkVTUF0gICAgICAgICAgPSAibWlzc2luZ19yZXNwIiwKIAlbQk5YVF9SRV9VTlJFQ09WRVJBQkxFX0VSUl0gICAgID0gInVucmVjb3ZlcmFibGVfZXJyIiwKIAlbQk5YVF9SRV9CQURfUkVTUF9FUlJdICAgICAgICAgID0gImJhZF9yZXNwX2VyciIsCiAJW0JOWFRfUkVfTE9DQUxfUVBfT1BfRVJSXSAgICAgICA9ICJsb2NhbF9xcF9vcF9lcnIiLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvaWJfdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL2liX3ZlcmJzLmMKaW5kZXggMDk4YWI4OC4uYjQxNDlkYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL2liX3ZlcmJzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvaWJfdmVyYnMuYwpAQCAtMjIwLDEwICsyMjAsMTAgQEAgaW50IGJueHRfcmVfcXVlcnlfcG9ydChzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwgdTggcG9ydF9udW0sCiAKIAlpZiAobmV0aWZfcnVubmluZyhyZGV2LT5uZXRkZXYpICYmIG5ldGlmX2NhcnJpZXJfb2socmRldi0+bmV0ZGV2KSkgewogCQlwb3J0X2F0dHItPnN0YXRlID0gSUJfUE9SVF9BQ1RJVkU7Ci0JCXBvcnRfYXR0ci0+cGh5c19zdGF0ZSA9IDU7CisJCXBvcnRfYXR0ci0+cGh5c19zdGF0ZSA9IElCX1BPUlRfUEhZU19TVEFURV9MSU5LX1VQOwogCX0gZWxzZSB7CiAJCXBvcnRfYXR0ci0+c3RhdGUgPSBJQl9QT1JUX0RPV047Ci0JCXBvcnRfYXR0ci0+cGh5c19zdGF0ZSA9IDM7CisJCXBvcnRfYXR0ci0+cGh5c19zdGF0ZSA9IElCX1BPUlRfUEhZU19TVEFURV9ESVNBQkxFRDsKIAl9CiAJcG9ydF9hdHRyLT5tYXhfbXR1ID0gSUJfTVRVXzQwOTY7CiAJcG9ydF9hdHRyLT5hY3RpdmVfbXR1ID0gaWJvZV9nZXRfbXR1KHJkZXYtPm5ldGRldi0+bXR1KTsKQEAgLTEzOTgsNyArMTM5OCw3IEBAIGludCBibnh0X3JlX2NyZWF0ZV9zcnEoc3RydWN0IGliX3NycSAqaWJfc3JxLAogCQkJZGV2X2VycihyZGV2X3RvX2RldihyZGV2KSwgIlNSUSBjb3B5IHRvIHVkYXRhIGZhaWxlZCEiKTsKIAkJCWJueHRfcXBsaWJfZGVzdHJveV9zcnEoJnJkZXYtPnFwbGliX3JlcywKIAkJCQkJICAgICAgICZzcnEtPnFwbGliX3NycSk7Ci0JCQlnb3RvIGV4aXQ7CisJCQlnb3RvIGZhaWw7CiAJCX0KIAl9CiAJaWYgKG5xKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jCmluZGV4IDAyOWJhYmUuLjMwYTU0ZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmMKQEAgLTE0NzMsNyArMTQ3Myw2IEBAIHN0YXRpYyBpbnQgYm54dF9yZV9pYl9yZWcoc3RydWN0IGJueHRfcmVfZGV2ICpyZGV2KQogCQkJICZyZGV2LT5hY3RpdmVfd2lkdGgpOwogCXNldF9iaXQoQk5YVF9SRV9GTEFHX0lTU1VFX1JPQ0VfU1RBVFMsICZyZGV2LT5mbGFncyk7CiAJYm54dF9yZV9kaXNwYXRjaF9ldmVudCgmcmRldi0+aWJkZXYsIE5VTEwsIDEsIElCX0VWRU5UX1BPUlRfQUNUSVZFKTsKLQlibnh0X3JlX2Rpc3BhdGNoX2V2ZW50KCZyZGV2LT5pYmRldiwgTlVMTCwgMSwgSUJfRVZFTlRfR0lEX0NIQU5HRSk7CiAKIAlyZXR1cm4gMDsKIGZyZWVfc2N0eDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3Byb3ZpZGVyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5jCmluZGV4IGU3NzVjMWEuLmRjZjAyZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3Byb3ZpZGVyLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcHJvdmlkZXIuYwpAQCAtOTkxLDMzICs5OTEsOCBAQCBzdGF0aWMgaW50IGl3Y2hfcXVlcnlfZGV2aWNlKHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LCBzdHJ1Y3QgaWJfZGV2aWNlX2F0dHIgKnBybwogc3RhdGljIGludCBpd2NoX3F1ZXJ5X3BvcnQoc3RydWN0IGliX2RldmljZSAqaWJkZXYsCiAJCQkgICB1OCBwb3J0LCBzdHJ1Y3QgaWJfcG9ydF9hdHRyICpwcm9wcykKIHsKLQlzdHJ1Y3QgaXdjaF9kZXYgKmRldjsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2OwotCXN0cnVjdCBpbl9kZXZpY2UgKmluZXRkZXY7Ci0KIAlwcl9kZWJ1ZygiJXMgaWJkZXYgJXBcbiIsIF9fZnVuY19fLCBpYmRldik7CiAKLQlkZXYgPSB0b19pd2NoX2RldihpYmRldik7Ci0JbmV0ZGV2ID0gZGV2LT5yZGV2LnBvcnRfaW5mby5sbGRldnNbcG9ydC0xXTsKLQotCS8qIHByb3BzIGJlaW5nIHplcm9lZCBieSB0aGUgY2FsbGVyLCBhdm9pZCB6ZXJvaW5nIGl0IGhlcmUgKi8KLQlwcm9wcy0+bWF4X210dSA9IElCX01UVV80MDk2OwotCXByb3BzLT5hY3RpdmVfbXR1ID0gaWJfbXR1X2ludF90b19lbnVtKG5ldGRldi0+bXR1KTsKLQotCWlmICghbmV0aWZfY2Fycmllcl9vayhuZXRkZXYpKQotCQlwcm9wcy0+c3RhdGUgPSBJQl9QT1JUX0RPV047Ci0JZWxzZSB7Ci0JCWluZXRkZXYgPSBpbl9kZXZfZ2V0KG5ldGRldik7Ci0JCWlmIChpbmV0ZGV2KSB7Ci0JCQlpZiAoaW5ldGRldi0+aWZhX2xpc3QpCi0JCQkJcHJvcHMtPnN0YXRlID0gSUJfUE9SVF9BQ1RJVkU7Ci0JCQllbHNlCi0JCQkJcHJvcHMtPnN0YXRlID0gSUJfUE9SVF9JTklUOwotCQkJaW5fZGV2X3B1dChpbmV0ZGV2KTsKLQkJfSBlbHNlCi0JCQlwcm9wcy0+c3RhdGUgPSBJQl9QT1JUX0lOSVQ7Ci0JfQotCiAJcHJvcHMtPnBvcnRfY2FwX2ZsYWdzID0KIAkgICAgSUJfUE9SVF9DTV9TVVAgfAogCSAgICBJQl9QT1JUX1NOTVBfVFVOTkVMX1NVUCB8CkBAIC0xMjczLDggKzEyNDgsMjQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpYl9kZXZpY2Vfb3BzIGl3Y2hfZGV2X29wcyA9IHsKIAlJTklUX1JETUFfT0JKX1NJWkUoaWJfdWNvbnRleHQsIGl3Y2hfdWNvbnRleHQsIGlidWNvbnRleHQpLAogfTsKIAorc3RhdGljIGludCBzZXRfbmV0ZGV2cyhzdHJ1Y3QgaWJfZGV2aWNlICppYl9kZXYsIHN0cnVjdCBjeGlvX3JkZXYgKnJkZXYpCit7CisJaW50IHJldDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCByZGV2LT5wb3J0X2luZm8ubnBvcnRzOyBpKyspIHsKKwkJcmV0ID0gaWJfZGV2aWNlX3NldF9uZXRkZXYoaWJfZGV2LCByZGV2LT5wb3J0X2luZm8ubGxkZXZzW2ldLAorCQkJCQkgICBpICsgMSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKwlyZXR1cm4gMDsKK30KKwogaW50IGl3Y2hfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBpd2NoX2RldiAqZGV2KQogeworCWludCBlcnI7CisKIAlwcl9kZWJ1ZygiJXMgaXdjaF9kZXYgJXBcbiIsIF9fZnVuY19fLCBkZXYpOwogCW1lbXNldCgmZGV2LT5pYmRldi5ub2RlX2d1aWQsIDAsIHNpemVvZihkZXYtPmliZGV2Lm5vZGVfZ3VpZCkpOwogCW1lbWNweSgmZGV2LT5pYmRldi5ub2RlX2d1aWQsIGRldi0+cmRldi50M2NkZXZfcC0+bGxkZXYtPmRldl9hZGRyLCA2KTsKQEAgLTEzMTUsNiArMTMwNiwxMCBAQCBpbnQgaXdjaF9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGl3Y2hfZGV2ICpkZXYpCiAKIAlyZG1hX3NldF9kZXZpY2Vfc3lzZnNfZ3JvdXAoJmRldi0+aWJkZXYsICZpd2NoX2F0dHJfZ3JvdXApOwogCWliX3NldF9kZXZpY2Vfb3BzKCZkZXYtPmliZGV2LCAmaXdjaF9kZXZfb3BzKTsKKwllcnIgPSBzZXRfbmV0ZGV2cygmZGV2LT5pYmRldiwgJmRldi0+cmRldik7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKwogCXJldHVybiBpYl9yZWdpc3Rlcl9kZXZpY2UoJmRldi0+aWJkZXYsICJjeGdiM18lZCIpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjQvcHJvdmlkZXIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiNC9wcm92aWRlci5jCmluZGV4IDVlNTljNTcuLmQzNzNhYzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiNC9wcm92aWRlci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiNC9wcm92aWRlci5jCkBAIC0zMDUsMzIgKzMwNSw4IEBAIHN0YXRpYyBpbnQgYzRpd19xdWVyeV9kZXZpY2Uoc3RydWN0IGliX2RldmljZSAqaWJkZXYsIHN0cnVjdCBpYl9kZXZpY2VfYXR0ciAqcHJvCiBzdGF0aWMgaW50IGM0aXdfcXVlcnlfcG9ydChzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwgdTggcG9ydCwKIAkJCSAgIHN0cnVjdCBpYl9wb3J0X2F0dHIgKnByb3BzKQogewotCXN0cnVjdCBjNGl3X2RldiAqZGV2OwotCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7Ci0Jc3RydWN0IGluX2RldmljZSAqaW5ldGRldjsKLQogCXByX2RlYnVnKCJpYmRldiAlcFxuIiwgaWJkZXYpOwogCi0JZGV2ID0gdG9fYzRpd19kZXYoaWJkZXYpOwotCW5ldGRldiA9IGRldi0+cmRldi5sbGRpLnBvcnRzW3BvcnQtMV07Ci0JLyogcHJvcHMgYmVpbmcgemVyb2VkIGJ5IHRoZSBjYWxsZXIsIGF2b2lkIHplcm9pbmcgaXQgaGVyZSAqLwotCXByb3BzLT5tYXhfbXR1ID0gSUJfTVRVXzQwOTY7Ci0JcHJvcHMtPmFjdGl2ZV9tdHUgPSBpYl9tdHVfaW50X3RvX2VudW0obmV0ZGV2LT5tdHUpOwotCi0JaWYgKCFuZXRpZl9jYXJyaWVyX29rKG5ldGRldikpCi0JCXByb3BzLT5zdGF0ZSA9IElCX1BPUlRfRE9XTjsKLQllbHNlIHsKLQkJaW5ldGRldiA9IGluX2Rldl9nZXQobmV0ZGV2KTsKLQkJaWYgKGluZXRkZXYpIHsKLQkJCWlmIChpbmV0ZGV2LT5pZmFfbGlzdCkKLQkJCQlwcm9wcy0+c3RhdGUgPSBJQl9QT1JUX0FDVElWRTsKLQkJCWVsc2UKLQkJCQlwcm9wcy0+c3RhdGUgPSBJQl9QT1JUX0lOSVQ7Ci0JCQlpbl9kZXZfcHV0KGluZXRkZXYpOwotCQl9IGVsc2UKLQkJCXByb3BzLT5zdGF0ZSA9IElCX1BPUlRfSU5JVDsKLQl9Ci0KIAlwcm9wcy0+cG9ydF9jYXBfZmxhZ3MgPQogCSAgICBJQl9QT1JUX0NNX1NVUCB8CiAJICAgIElCX1BPUlRfU05NUF9UVU5ORUxfU1VQIHwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWZhL2VmYS5oCmluZGV4IDExOWY4ZWZlLi4yMjgzZTQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWZhL2VmYS5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhLmgKQEAgLTE1Niw1ICsxNTYsOCBAQCBpbnQgZWZhX21vZGlmeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsIHN0cnVjdCBpYl9xcF9hdHRyICpxcF9hdHRyLAogCQkgIGludCBxcF9hdHRyX21hc2ssIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEpOwogZW51bSByZG1hX2xpbmtfbGF5ZXIgZWZhX3BvcnRfbGlua19sYXllcihzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwKIAkJCQkJIHU4IHBvcnRfbnVtKTsKK3N0cnVjdCByZG1hX2h3X3N0YXRzICplZmFfYWxsb2NfaHdfc3RhdHMoc3RydWN0IGliX2RldmljZSAqaWJkZXYsIHU4IHBvcnRfbnVtKTsKK2ludCBlZmFfZ2V0X2h3X3N0YXRzKHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LCBzdHJ1Y3QgcmRtYV9od19zdGF0cyAqc3RhdHMsCisJCSAgICAgdTggcG9ydF9udW0sIGludCBpbmRleCk7CiAKICNlbmRpZiAvKiBfRUZBX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWZhL2VmYV9jb20uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhX2NvbS5jCmluZGV4IDJjYjQyNDguLjNjNDEyYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhX2NvbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhX2NvbS5jCkBAIC0xMDksMTcgKzEwOSwxOSBAQCBzdGF0aWMgdTMyIGVmYV9jb21fcmVnX3JlYWQzMihzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsIHUxNiBvZmZzZXQpCiAJfSB3aGlsZSAodGltZV9pc19hZnRlcl9qaWZmaWVzKGV4cF90aW1lKSk7CiAKIAlpZiAocmVhZF9yZXNwLT5yZXFfaWQgIT0gbW1pb19yZWFkLT5zZXFfbnVtKSB7Ci0JCWliZGV2X2VycihlZGV2LT5lZmFfZGV2LAotCQkJICAiUmVhZGluZyByZWdpc3RlciB0aW1lZCBvdXQuIGV4cGVjdGVkOiByZXEgaWRbJXVdIG9mZnNldFslI3hdIGFjdHVhbDogcmVxIGlkWyV1XSBvZmZzZXRbJSN4XVxuIiwKLQkJCSAgbW1pb19yZWFkLT5zZXFfbnVtLCBvZmZzZXQsIHJlYWRfcmVzcC0+cmVxX2lkLAotCQkJICByZWFkX3Jlc3AtPnJlZ19vZmYpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoCisJCQllZGV2LT5lZmFfZGV2LAorCQkJIlJlYWRpbmcgcmVnaXN0ZXIgdGltZWQgb3V0LiBleHBlY3RlZDogcmVxIGlkWyV1XSBvZmZzZXRbJSN4XSBhY3R1YWw6IHJlcSBpZFsldV0gb2Zmc2V0WyUjeF1cbiIsCisJCQltbWlvX3JlYWQtPnNlcV9udW0sIG9mZnNldCwgcmVhZF9yZXNwLT5yZXFfaWQsCisJCQlyZWFkX3Jlc3AtPnJlZ19vZmYpOwogCQllcnIgPSBFRkFfTU1JT19SRUFEX0lOVkFMSUQ7CiAJCWdvdG8gb3V0OwogCX0KIAogCWlmIChyZWFkX3Jlc3AtPnJlZ19vZmYgIT0gb2Zmc2V0KSB7Ci0JCWliZGV2X2VycihlZGV2LT5lZmFfZGV2LAotCQkJICAiUmVhZGluZyByZWdpc3RlciBmYWlsZWQ6IHdyb25nIG9mZnNldCBwcm92aWRlZFxuIik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZCgKKwkJCWVkZXYtPmVmYV9kZXYsCisJCQkiUmVhZGluZyByZWdpc3RlciBmYWlsZWQ6IHdyb25nIG9mZnNldCBwcm92aWRlZFxuIik7CiAJCWVyciA9IEVGQV9NTUlPX1JFQURfSU5WQUxJRDsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMjkzLDkgKzI5NSwxMCBAQCBzdGF0aWMgc3RydWN0IGVmYV9jb21wX2N0eCAqZWZhX2NvbV9nZXRfY29tcF9jdHgoc3RydWN0IGVmYV9jb21fYWRtaW5fcXVldWUgKmFxLAogCXUxNiBjdHhfaWQgPSBjbWRfaWQgJiAoYXEtPmRlcHRoIC0gMSk7CiAKIAlpZiAoYXEtPmNvbXBfY3R4W2N0eF9pZF0ub2NjdXBpZWQgJiYgY2FwdHVyZSkgewotCQlpYmRldl9lcnIoYXEtPmVmYV9kZXYsCi0JCQkgICJDb21wbGV0aW9uIGNvbnRleHQgZm9yIGNvbW1hbmRfaWQgJSN4IGlzIG9jY3VwaWVkXG4iLAotCQkJICBjbWRfaWQpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoCisJCQlhcS0+ZWZhX2RldiwKKwkJCSJDb21wbGV0aW9uIGNvbnRleHQgZm9yIGNvbW1hbmRfaWQgJSN4IGlzIG9jY3VwaWVkXG4iLAorCQkJY21kX2lkKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQogCkBAIC00MDEsNyArNDA0LDcgQEAgc3RhdGljIHN0cnVjdCBlZmFfY29tcF9jdHggKmVmYV9jb21fc3VibWl0X2FkbWluX2NtZChzdHJ1Y3QgZWZhX2NvbV9hZG1pbl9xdWV1ZQogCiAJc3Bpbl9sb2NrKCZhcS0+c3EubG9jayk7CiAJaWYgKCF0ZXN0X2JpdChFRkFfQVFfU1RBVEVfUlVOTklOR19CSVQsICZhcS0+c3RhdGUpKSB7Ci0JCWliZGV2X2VycihhcS0+ZWZhX2RldiwgIkFkbWluIHF1ZXVlIGlzIGNsb3NlZFxuIik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZChhcS0+ZWZhX2RldiwgIkFkbWluIHF1ZXVlIGlzIGNsb3NlZFxuIik7CiAJCXNwaW5fdW5sb2NrKCZhcS0+c3EubG9jayk7CiAJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCX0KQEAgLTUxOSw4ICs1MjIsOSBAQCBzdGF0aWMgaW50IGVmYV9jb21fd2FpdF9hbmRfcHJvY2Vzc19hZG1pbl9jcV9wb2xsaW5nKHN0cnVjdCBlZmFfY29tcF9jdHggKmNvbXBfYwogCQkJYnJlYWs7CiAKIAkJaWYgKHRpbWVfaXNfYmVmb3JlX2ppZmZpZXModGltZW91dCkpIHsKLQkJCWliZGV2X2VycihhcS0+ZWZhX2RldiwKLQkJCQkgICJXYWl0IGZvciBjb21wbGV0aW9uIChwb2xsaW5nKSB0aW1lb3V0XG4iKTsKKwkJCWliZGV2X2Vycl9yYXRlbGltaXRlZCgKKwkJCQlhcS0+ZWZhX2RldiwKKwkJCQkiV2FpdCBmb3IgY29tcGxldGlvbiAocG9sbGluZykgdGltZW91dFxuIik7CiAJCQkvKiBFRkEgZGlkbid0IGhhdmUgYW55IGNvbXBsZXRpb24gKi8KIAkJCWF0b21pYzY0X2luYygmYXEtPnN0YXRzLm5vX2NvbXBsZXRpb24pOwogCkBAIC01NjEsMTcgKzU2NSwxOSBAQCBzdGF0aWMgaW50IGVmYV9jb21fd2FpdF9hbmRfcHJvY2Vzc19hZG1pbl9jcV9pbnRlcnJ1cHRzKHN0cnVjdCBlZmFfY29tcF9jdHggKmNvbQogCQlhdG9taWM2NF9pbmMoJmFxLT5zdGF0cy5ub19jb21wbGV0aW9uKTsKIAogCQlpZiAoY29tcF9jdHgtPnN0YXR1cyA9PSBFRkFfQ01EX0NPTVBMRVRFRCkKLQkJCWliZGV2X2VycihhcS0+ZWZhX2RldiwKLQkJCQkgICJUaGUgZGV2aWNlIHNlbnQgYSBjb21wbGV0aW9uIGJ1dCB0aGUgZHJpdmVyIGRpZG4ndCByZWNlaXZlIGFueSBNU0ktWCBpbnRlcnJ1cHQgZm9yIGFkbWluIGNtZCAlcyglZCkgc3RhdHVzICVkIChjdHg6IDB4JXAsIHNxIHByb2R1Y2VyOiAlZCwgc3EgY29uc3VtZXI6ICVkLCBjcSBjb25zdW1lcjogJWQpXG4iLAotCQkJCSAgZWZhX2NvbV9jbWRfc3RyKGNvbXBfY3R4LT5jbWRfb3Bjb2RlKSwKLQkJCQkgIGNvbXBfY3R4LT5jbWRfb3Bjb2RlLCBjb21wX2N0eC0+c3RhdHVzLAotCQkJCSAgY29tcF9jdHgsIGFxLT5zcS5wYywgYXEtPnNxLmNjLCBhcS0+Y3EuY2MpOworCQkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKAorCQkJCWFxLT5lZmFfZGV2LAorCQkJCSJUaGUgZGV2aWNlIHNlbnQgYSBjb21wbGV0aW9uIGJ1dCB0aGUgZHJpdmVyIGRpZG4ndCByZWNlaXZlIGFueSBNU0ktWCBpbnRlcnJ1cHQgZm9yIGFkbWluIGNtZCAlcyglZCkgc3RhdHVzICVkIChjdHg6IDB4JXAsIHNxIHByb2R1Y2VyOiAlZCwgc3EgY29uc3VtZXI6ICVkLCBjcSBjb25zdW1lcjogJWQpXG4iLAorCQkJCWVmYV9jb21fY21kX3N0cihjb21wX2N0eC0+Y21kX29wY29kZSksCisJCQkJY29tcF9jdHgtPmNtZF9vcGNvZGUsIGNvbXBfY3R4LT5zdGF0dXMsCisJCQkJY29tcF9jdHgsIGFxLT5zcS5wYywgYXEtPnNxLmNjLCBhcS0+Y3EuY2MpOwogCQllbHNlCi0JCQlpYmRldl9lcnIoYXEtPmVmYV9kZXYsCi0JCQkJICAiVGhlIGRldmljZSBkaWRuJ3Qgc2VuZCBhbnkgY29tcGxldGlvbiBmb3IgYWRtaW4gY21kICVzKCVkKSBzdGF0dXMgJWQgKGN0eCAweCVwLCBzcSBwcm9kdWNlcjogJWQsIHNxIGNvbnN1bWVyOiAlZCwgY3EgY29uc3VtZXI6ICVkKVxuIiwKLQkJCQkgIGVmYV9jb21fY21kX3N0cihjb21wX2N0eC0+Y21kX29wY29kZSksCi0JCQkJICBjb21wX2N0eC0+Y21kX29wY29kZSwgY29tcF9jdHgtPnN0YXR1cywKLQkJCQkgIGNvbXBfY3R4LCBhcS0+c3EucGMsIGFxLT5zcS5jYywgYXEtPmNxLmNjKTsKKwkJCWliZGV2X2Vycl9yYXRlbGltaXRlZCgKKwkJCQlhcS0+ZWZhX2RldiwKKwkJCQkiVGhlIGRldmljZSBkaWRuJ3Qgc2VuZCBhbnkgY29tcGxldGlvbiBmb3IgYWRtaW4gY21kICVzKCVkKSBzdGF0dXMgJWQgKGN0eCAweCVwLCBzcSBwcm9kdWNlcjogJWQsIHNxIGNvbnN1bWVyOiAlZCwgY3EgY29uc3VtZXI6ICVkKVxuIiwKKwkJCQllZmFfY29tX2NtZF9zdHIoY29tcF9jdHgtPmNtZF9vcGNvZGUpLAorCQkJCWNvbXBfY3R4LT5jbWRfb3Bjb2RlLCBjb21wX2N0eC0+c3RhdHVzLAorCQkJCWNvbXBfY3R4LCBhcS0+c3EucGMsIGFxLT5zcS5jYywgYXEtPmNxLmNjKTsKIAogCQljbGVhcl9iaXQoRUZBX0FRX1NUQVRFX1JVTk5JTkdfQklULCAmYXEtPnN0YXRlKTsKIAkJZXJyID0gLUVUSU1FOwpAQCAtNjMzLDEwICs2MzksMTEgQEAgaW50IGVmYV9jb21fY21kX2V4ZWMoc3RydWN0IGVmYV9jb21fYWRtaW5fcXVldWUgKmFxLAogCQkgIGNtZC0+YXFfY29tbW9uX2Rlc2NyaXB0b3Iub3Bjb2RlKTsKIAljb21wX2N0eCA9IGVmYV9jb21fc3VibWl0X2FkbWluX2NtZChhcSwgY21kLCBjbWRfc2l6ZSwgY29tcCwgY29tcF9zaXplKTsKIAlpZiAoSVNfRVJSKGNvbXBfY3R4KSkgewotCQlpYmRldl9lcnIoYXEtPmVmYV9kZXYsCi0JCQkgICJGYWlsZWQgdG8gc3VibWl0IGNvbW1hbmQgJXMgKG9wY29kZSAldSkgZXJyICVsZFxuIiwKLQkJCSAgZWZhX2NvbV9jbWRfc3RyKGNtZC0+YXFfY29tbW9uX2Rlc2NyaXB0b3Iub3Bjb2RlKSwKLQkJCSAgY21kLT5hcV9jb21tb25fZGVzY3JpcHRvci5vcGNvZGUsIFBUUl9FUlIoY29tcF9jdHgpKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKAorCQkJYXEtPmVmYV9kZXYsCisJCQkiRmFpbGVkIHRvIHN1Ym1pdCBjb21tYW5kICVzIChvcGNvZGUgJXUpIGVyciAlbGRcbiIsCisJCQllZmFfY29tX2NtZF9zdHIoY21kLT5hcV9jb21tb25fZGVzY3JpcHRvci5vcGNvZGUpLAorCQkJY21kLT5hcV9jb21tb25fZGVzY3JpcHRvci5vcGNvZGUsIFBUUl9FUlIoY29tcF9jdHgpKTsKIAogCQl1cCgmYXEtPmF2YWlsX2NtZHMpOwogCQlyZXR1cm4gUFRSX0VSUihjb21wX2N0eCk7CkBAIC02NDQsMTEgKzY1MSwxMiBAQCBpbnQgZWZhX2NvbV9jbWRfZXhlYyhzdHJ1Y3QgZWZhX2NvbV9hZG1pbl9xdWV1ZSAqYXEsCiAKIAllcnIgPSBlZmFfY29tX3dhaXRfYW5kX3Byb2Nlc3NfYWRtaW5fY3EoY29tcF9jdHgsIGFxKTsKIAlpZiAoZXJyKQotCQlpYmRldl9lcnIoYXEtPmVmYV9kZXYsCi0JCQkgICJGYWlsZWQgdG8gcHJvY2VzcyBjb21tYW5kICVzIChvcGNvZGUgJXUpIGNvbXBfc3RhdHVzICVkIGVyciAlZFxuIiwKLQkJCSAgZWZhX2NvbV9jbWRfc3RyKGNtZC0+YXFfY29tbW9uX2Rlc2NyaXB0b3Iub3Bjb2RlKSwKLQkJCSAgY21kLT5hcV9jb21tb25fZGVzY3JpcHRvci5vcGNvZGUsCi0JCQkgIGNvbXBfY3R4LT5jb21wX3N0YXR1cywgZXJyKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKAorCQkJYXEtPmVmYV9kZXYsCisJCQkiRmFpbGVkIHRvIHByb2Nlc3MgY29tbWFuZCAlcyAob3Bjb2RlICV1KSBjb21wX3N0YXR1cyAlZCBlcnIgJWRcbiIsCisJCQllZmFfY29tX2NtZF9zdHIoY21kLT5hcV9jb21tb25fZGVzY3JpcHRvci5vcGNvZGUpLAorCQkJY21kLT5hcV9jb21tb25fZGVzY3JpcHRvci5vcGNvZGUsIGNvbXBfY3R4LT5jb21wX3N0YXR1cywKKwkJCWVycik7CiAKIAl1cCgmYXEtPmF2YWlsX2NtZHMpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWZhL2VmYV9jb21fY21kLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWZhL2VmYV9jb21fY21kLmMKaW5kZXggNjIzNDVkOC4uYzA3OWYxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VmYS9lZmFfY29tX2NtZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhX2NvbV9jbWQuYwpAQCAtNDQsNyArNDQsOCBAQCBpbnQgZWZhX2NvbV9jcmVhdGVfcXAoc3RydWN0IGVmYV9jb21fZGV2ICplZGV2LAogCQkJICAgICAgIChzdHJ1Y3QgZWZhX2FkbWluX2FjcV9lbnRyeSAqKSZjbWRfY29tcGxldGlvbiwKIAkJCSAgICAgICBzaXplb2YoY21kX2NvbXBsZXRpb24pKTsKIAlpZiAoZXJyKSB7Ci0JCWliZGV2X2VycihlZGV2LT5lZmFfZGV2LCAiRmFpbGVkIHRvIGNyZWF0ZSBxcCBbJWRdXG4iLCBlcnIpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoZWRldi0+ZWZhX2RldiwKKwkJCQkgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBxcCBbJWRdXG4iLCBlcnIpOwogCQlyZXR1cm4gZXJyOwogCX0KIApAQCAtODIsOSArODMsMTAgQEAgaW50IGVmYV9jb21fbW9kaWZ5X3FwKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwKIAkJCSAgICAgICAoc3RydWN0IGVmYV9hZG1pbl9hY3FfZW50cnkgKikmcmVzcCwKIAkJCSAgICAgICBzaXplb2YocmVzcCkpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsCi0JCQkgICJGYWlsZWQgdG8gbW9kaWZ5IHFwLSV1IG1vZGlmeV9tYXNrWyUjeF0gWyVkXVxuIiwKLQkJCSAgY21kLnFwX2hhbmRsZSwgY21kLm1vZGlmeV9tYXNrLCBlcnIpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoCisJCQllZGV2LT5lZmFfZGV2LAorCQkJIkZhaWxlZCB0byBtb2RpZnkgcXAtJXUgbW9kaWZ5X21hc2tbJSN4XSBbJWRdXG4iLAorCQkJY21kLnFwX2hhbmRsZSwgY21kLm1vZGlmeV9tYXNrLCBlcnIpOwogCQlyZXR1cm4gZXJyOwogCX0KIApAQCAtMTA5LDggKzExMSw5IEBAIGludCBlZmFfY29tX3F1ZXJ5X3FwKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwKIAkJCSAgICAgICAoc3RydWN0IGVmYV9hZG1pbl9hY3FfZW50cnkgKikmcmVzcCwKIAkJCSAgICAgICBzaXplb2YocmVzcCkpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsICJGYWlsZWQgdG8gcXVlcnkgcXAtJXUgWyVkXVxuIiwKLQkJCSAgY21kLnFwX2hhbmRsZSwgZXJyKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKGVkZXYtPmVmYV9kZXYsCisJCQkJICAgICAgIkZhaWxlZCB0byBxdWVyeSBxcC0ldSBbJWRdXG4iLAorCQkJCSAgICAgIGNtZC5xcF9oYW5kbGUsIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQogCkBAIC0xMzksOCArMTQyLDkgQEAgaW50IGVmYV9jb21fZGVzdHJveV9xcChzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJCQkgICAgICAgKHN0cnVjdCBlZmFfYWRtaW5fYWNxX2VudHJ5ICopJmNtZF9jb21wbGV0aW9uLAogCQkJICAgICAgIHNpemVvZihjbWRfY29tcGxldGlvbikpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsICJGYWlsZWQgdG8gZGVzdHJveSBxcC0ldSBbJWRdXG4iLAotCQkJICBxcF9jbWQucXBfaGFuZGxlLCBlcnIpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoZWRldi0+ZWZhX2RldiwKKwkJCQkgICAgICAiRmFpbGVkIHRvIGRlc3Ryb3kgcXAtJXUgWyVkXVxuIiwKKwkJCQkgICAgICBxcF9jbWQucXBfaGFuZGxlLCBlcnIpOwogCQlyZXR1cm4gZXJyOwogCX0KIApAQCAtMTczLDcgKzE3Nyw4IEBAIGludCBlZmFfY29tX2NyZWF0ZV9jcShzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJCQkgICAgICAgKHN0cnVjdCBlZmFfYWRtaW5fYWNxX2VudHJ5ICopJmNtZF9jb21wbGV0aW9uLAogCQkJICAgICAgIHNpemVvZihjbWRfY29tcGxldGlvbikpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsICJGYWlsZWQgdG8gY3JlYXRlIGNxWyVkXVxuIiwgZXJyKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKGVkZXYtPmVmYV9kZXYsCisJCQkJICAgICAgIkZhaWxlZCB0byBjcmVhdGUgY3FbJWRdXG4iLCBlcnIpOwogCQlyZXR1cm4gZXJyOwogCX0KIApAQCAtMjAxLDggKzIwNiw5IEBAIGludCBlZmFfY29tX2Rlc3Ryb3lfY3Eoc3RydWN0IGVmYV9jb21fZGV2ICplZGV2LAogCQkJICAgICAgIHNpemVvZihkZXN0cm95X3Jlc3ApKTsKIAogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsICJGYWlsZWQgdG8gZGVzdHJveSBDUS0ldSBbJWRdXG4iLAotCQkJICBwYXJhbXMtPmNxX2lkeCwgZXJyKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKGVkZXYtPmVmYV9kZXYsCisJCQkJICAgICAgIkZhaWxlZCB0byBkZXN0cm95IENRLSV1IFslZF1cbiIsCisJCQkJICAgICAgcGFyYW1zLT5jcV9pZHgsIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQogCkBAIC0yNTAsNyArMjU2LDggQEAgaW50IGVmYV9jb21fcmVnaXN0ZXJfbXIoc3RydWN0IGVmYV9jb21fZGV2ICplZGV2LAogCQkJICAgICAgIChzdHJ1Y3QgZWZhX2FkbWluX2FjcV9lbnRyeSAqKSZjbWRfY29tcGxldGlvbiwKIAkJCSAgICAgICBzaXplb2YoY21kX2NvbXBsZXRpb24pKTsKIAlpZiAoZXJyKSB7Ci0JCWliZGV2X2VycihlZGV2LT5lZmFfZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIG1yIFslZF1cbiIsIGVycik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZChlZGV2LT5lZmFfZGV2LAorCQkJCSAgICAgICJGYWlsZWQgdG8gcmVnaXN0ZXIgbXIgWyVkXVxuIiwgZXJyKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKQEAgLTI3Nyw5ICsyODQsOSBAQCBpbnQgZWZhX2NvbV9kZXJlZ19tcihzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJCQkgICAgICAgKHN0cnVjdCBlZmFfYWRtaW5fYWNxX2VudHJ5ICopJmNtZF9jb21wbGV0aW9uLAogCQkJICAgICAgIHNpemVvZihjbWRfY29tcGxldGlvbikpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsCi0JCQkgICJGYWlsZWQgdG8gZGUtcmVnaXN0ZXIgbXIobGtleS0ldSkgWyVkXVxuIiwKLQkJCSAgbXJfY21kLmxfa2V5LCBlcnIpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoZWRldi0+ZWZhX2RldiwKKwkJCQkgICAgICAiRmFpbGVkIHRvIGRlLXJlZ2lzdGVyIG1yKGxrZXktJXUpIFslZF1cbiIsCisJCQkJICAgICAgbXJfY21kLmxfa2V5LCBlcnIpOwogCQlyZXR1cm4gZXJyOwogCX0KIApAQCAtMzA2LDggKzMxMyw5IEBAIGludCBlZmFfY29tX2NyZWF0ZV9haChzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJCQkgICAgICAgKHN0cnVjdCBlZmFfYWRtaW5fYWNxX2VudHJ5ICopJmNtZF9jb21wbGV0aW9uLAogCQkJICAgICAgIHNpemVvZihjbWRfY29tcGxldGlvbikpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsICJGYWlsZWQgdG8gY3JlYXRlIGFoIGZvciAlcEk2IFslZF1cbiIsCi0JCQkgIGFoX2NtZC5kZXN0X2FkZHIsIGVycik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZChlZGV2LT5lZmFfZGV2LAorCQkJCSAgICAgICJGYWlsZWQgdG8gY3JlYXRlIGFoIGZvciAlcEk2IFslZF1cbiIsCisJCQkJICAgICAgYWhfY21kLmRlc3RfYWRkciwgZXJyKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKQEAgLTMzNCw4ICszNDIsOSBAQCBpbnQgZWZhX2NvbV9kZXN0cm95X2FoKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwKIAkJCSAgICAgICAoc3RydWN0IGVmYV9hZG1pbl9hY3FfZW50cnkgKikmY21kX2NvbXBsZXRpb24sCiAJCQkgICAgICAgc2l6ZW9mKGNtZF9jb21wbGV0aW9uKSk7CiAJaWYgKGVycikgewotCQlpYmRldl9lcnIoZWRldi0+ZWZhX2RldiwgIkZhaWxlZCB0byBkZXN0cm95IGFoLSVkIHBkLSVkIFslZF1cbiIsCi0JCQkgIGFoX2NtZC5haCwgYWhfY21kLnBkLCBlcnIpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoZWRldi0+ZWZhX2RldiwKKwkJCQkgICAgICAiRmFpbGVkIHRvIGRlc3Ryb3kgYWgtJWQgcGQtJWQgWyVkXVxuIiwKKwkJCQkgICAgICBhaF9jbWQuYWgsIGFoX2NtZC5wZCwgZXJyKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKQEAgLTM2Nyw4ICszNzYsOSBAQCBzdGF0aWMgaW50IGVmYV9jb21fZ2V0X2ZlYXR1cmVfZXgoc3RydWN0IGVmYV9jb21fZGV2ICplZGV2LAogCWludCBlcnI7CiAKIAlpZiAoIWVmYV9jb21fY2hlY2tfc3VwcG9ydGVkX2ZlYXR1cmVfaWQoZWRldiwgZmVhdHVyZV9pZCkpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsICJGZWF0dXJlICVkIGlzbid0IHN1cHBvcnRlZFxuIiwKLQkJCSAgZmVhdHVyZV9pZCk7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZChlZGV2LT5lZmFfZGV2LAorCQkJCSAgICAgICJGZWF0dXJlICVkIGlzbid0IHN1cHBvcnRlZFxuIiwKKwkJCQkgICAgICBmZWF0dXJlX2lkKTsKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCX0KIApAQCAtMzk2LDkgKzQwNiwxMCBAQCBzdGF0aWMgaW50IGVmYV9jb21fZ2V0X2ZlYXR1cmVfZXgoc3RydWN0IGVmYV9jb21fZGV2ICplZGV2LAogCQkJICAgICAgIHNpemVvZigqZ2V0X3Jlc3ApKTsKIAogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsCi0JCQkgICJGYWlsZWQgdG8gc3VibWl0IGdldF9mZWF0dXJlIGNvbW1hbmQgJWQgWyVkXVxuIiwKLQkJCSAgZmVhdHVyZV9pZCwgZXJyKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKAorCQkJZWRldi0+ZWZhX2RldiwKKwkJCSJGYWlsZWQgdG8gc3VibWl0IGdldF9mZWF0dXJlIGNvbW1hbmQgJWQgWyVkXVxuIiwKKwkJCWZlYXR1cmVfaWQsIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQogCkBAIC00MjEsOCArNDMyLDkgQEAgaW50IGVmYV9jb21fZ2V0X25ldHdvcmtfYXR0cihzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJZXJyID0gZWZhX2NvbV9nZXRfZmVhdHVyZShlZGV2LCAmcmVzcCwKIAkJCQkgIEVGQV9BRE1JTl9ORVRXT1JLX0FUVFIpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsCi0JCQkgICJGYWlsZWQgdG8gZ2V0IG5ldHdvcmsgYXR0cmlidXRlcyAlZFxuIiwgZXJyKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKGVkZXYtPmVmYV9kZXYsCisJCQkJICAgICAgIkZhaWxlZCB0byBnZXQgbmV0d29yayBhdHRyaWJ1dGVzICVkXG4iLAorCQkJCSAgICAgIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQogCkBAIC00NDEsOCArNDUzLDkgQEAgaW50IGVmYV9jb21fZ2V0X2RldmljZV9hdHRyKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwKIAogCWVyciA9IGVmYV9jb21fZ2V0X2ZlYXR1cmUoZWRldiwgJnJlc3AsIEVGQV9BRE1JTl9ERVZJQ0VfQVRUUik7CiAJaWYgKGVycikgewotCQlpYmRldl9lcnIoZWRldi0+ZWZhX2RldiwgIkZhaWxlZCB0byBnZXQgZGV2aWNlIGF0dHJpYnV0ZXMgJWRcbiIsCi0JCQkgIGVycik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZChlZGV2LT5lZmFfZGV2LAorCQkJCSAgICAgICJGYWlsZWQgdG8gZ2V0IGRldmljZSBhdHRyaWJ1dGVzICVkXG4iLAorCQkJCSAgICAgIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQogCkBAIC00NTYsOSArNDY5LDEwIEBAIGludCBlZmFfY29tX2dldF9kZXZpY2VfYXR0cihzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJcmVzdWx0LT5kYl9iYXIgPSByZXNwLnUuZGV2aWNlX2F0dHIuZGJfYmFyOwogCiAJaWYgKHJlc3VsdC0+YWRtaW5fYXBpX3ZlcnNpb24gPCAxKSB7Ci0JCWliZGV2X2VycihlZGV2LT5lZmFfZGV2LAotCQkJICAiRmFpbGVkIHRvIGdldCBkZXZpY2UgYXR0ciBhcGkgdmVyc2lvbiBbJXUgPCAxXVxuIiwKLQkJCSAgcmVzdWx0LT5hZG1pbl9hcGlfdmVyc2lvbik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZCgKKwkJCWVkZXYtPmVmYV9kZXYsCisJCQkiRmFpbGVkIHRvIGdldCBkZXZpY2UgYXR0ciBhcGkgdmVyc2lvbiBbJXUgPCAxXVxuIiwKKwkJCXJlc3VsdC0+YWRtaW5fYXBpX3ZlcnNpb24pOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTQ2Niw4ICs0ODAsOSBAQCBpbnQgZWZhX2NvbV9nZXRfZGV2aWNlX2F0dHIoc3RydWN0IGVmYV9jb21fZGV2ICplZGV2LAogCWVyciA9IGVmYV9jb21fZ2V0X2ZlYXR1cmUoZWRldiwgJnJlc3AsCiAJCQkJICBFRkFfQURNSU5fUVVFVUVfQVRUUik7CiAJaWYgKGVycikgewotCQlpYmRldl9lcnIoZWRldi0+ZWZhX2RldiwKLQkJCSAgIkZhaWxlZCB0byBnZXQgbmV0d29yayBhdHRyaWJ1dGVzICVkXG4iLCBlcnIpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoZWRldi0+ZWZhX2RldiwKKwkJCQkgICAgICAiRmFpbGVkIHRvIGdldCBxdWV1ZSBhdHRyaWJ1dGVzICVkXG4iLAorCQkJCSAgICAgIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQogCkBAIC00OTcsNyArNTEyLDggQEAgaW50IGVmYV9jb21fZ2V0X2h3X2hpbnRzKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwKIAogCWVyciA9IGVmYV9jb21fZ2V0X2ZlYXR1cmUoZWRldiwgJnJlc3AsIEVGQV9BRE1JTl9IV19ISU5UUyk7CiAJaWYgKGVycikgewotCQlpYmRldl9lcnIoZWRldi0+ZWZhX2RldiwgIkZhaWxlZCB0byBnZXQgaHcgaGludHMgJWRcbiIsIGVycik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZChlZGV2LT5lZmFfZGV2LAorCQkJCSAgICAgICJGYWlsZWQgdG8gZ2V0IGh3IGhpbnRzICVkXG4iLCBlcnIpOwogCQlyZXR1cm4gZXJyOwogCX0KIApAQCAtNTIwLDggKzUzNiw5IEBAIHN0YXRpYyBpbnQgZWZhX2NvbV9zZXRfZmVhdHVyZV9leChzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJaW50IGVycjsKIAogCWlmICghZWZhX2NvbV9jaGVja19zdXBwb3J0ZWRfZmVhdHVyZV9pZChlZGV2LCBmZWF0dXJlX2lkKSkgewotCQlpYmRldl9lcnIoZWRldi0+ZWZhX2RldiwgIkZlYXR1cmUgJWQgaXNuJ3Qgc3VwcG9ydGVkXG4iLAotCQkJICBmZWF0dXJlX2lkKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKGVkZXYtPmVmYV9kZXYsCisJCQkJICAgICAgIkZlYXR1cmUgJWQgaXNuJ3Qgc3VwcG9ydGVkXG4iLAorCQkJCSAgICAgIGZlYXR1cmVfaWQpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCkBAIC01NDUsOSArNTYyLDEwIEBAIHN0YXRpYyBpbnQgZWZhX2NvbV9zZXRfZmVhdHVyZV9leChzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJCQkgICAgICAgc2l6ZW9mKCpzZXRfcmVzcCkpOwogCiAJaWYgKGVycikgewotCQlpYmRldl9lcnIoZWRldi0+ZWZhX2RldiwKLQkJCSAgIkZhaWxlZCB0byBzdWJtaXQgc2V0X2ZlYXR1cmUgY29tbWFuZCAlZCBlcnJvcjogJWRcbiIsCi0JCQkgIGZlYXR1cmVfaWQsIGVycik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZCgKKwkJCWVkZXYtPmVmYV9kZXYsCisJCQkiRmFpbGVkIHRvIHN1Ym1pdCBzZXRfZmVhdHVyZSBjb21tYW5kICVkIGVycm9yOiAlZFxuIiwKKwkJCWZlYXR1cmVfaWQsIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQogCkBAIC01NzQsOCArNTkyLDkgQEAgaW50IGVmYV9jb21fc2V0X2FlbnFfY29uZmlnKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwgdTMyIGdyb3VwcykKIAogCWVyciA9IGVmYV9jb21fZ2V0X2ZlYXR1cmUoZWRldiwgJmdldF9yZXNwLCBFRkFfQURNSU5fQUVOUV9DT05GSUcpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsICJGYWlsZWQgdG8gZ2V0IGFlbnEgYXR0cmlidXRlczogJWRcbiIsCi0JCQkgIGVycik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZChlZGV2LT5lZmFfZGV2LAorCQkJCSAgICAgICJGYWlsZWQgdG8gZ2V0IGFlbnEgYXR0cmlidXRlczogJWRcbiIsCisJCQkJICAgICAgZXJyKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKQEAgLTU4NSw5ICs2MDQsMTAgQEAgaW50IGVmYV9jb21fc2V0X2FlbnFfY29uZmlnKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwgdTMyIGdyb3VwcykKIAkJICBnZXRfcmVzcC51LmFlbnEuZW5hYmxlZF9ncm91cHMpOwogCiAJaWYgKChnZXRfcmVzcC51LmFlbnEuc3VwcG9ydGVkX2dyb3VwcyAmIGdyb3VwcykgIT0gZ3JvdXBzKSB7Ci0JCWliZGV2X2VycihlZGV2LT5lZmFfZGV2LAotCQkJICAiVHJ5aW5nIHRvIHNldCB1bnN1cHBvcnRlZCBhZW5xIGdyb3Vwc1slI3hdIHN1cHBvcnRlZFslI3hdXG4iLAotCQkJICBncm91cHMsIGdldF9yZXNwLnUuYWVucS5zdXBwb3J0ZWRfZ3JvdXBzKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKAorCQkJZWRldi0+ZWZhX2RldiwKKwkJCSJUcnlpbmcgdG8gc2V0IHVuc3VwcG9ydGVkIGFlbnEgZ3JvdXBzWyUjeF0gc3VwcG9ydGVkWyUjeF1cbiIsCisJCQlncm91cHMsIGdldF9yZXNwLnUuYWVucS5zdXBwb3J0ZWRfZ3JvdXBzKTsKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCX0KIApAQCAtNTk1LDggKzYxNSw5IEBAIGludCBlZmFfY29tX3NldF9hZW5xX2NvbmZpZyhzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsIHUzMiBncm91cHMpCiAJZXJyID0gZWZhX2NvbV9zZXRfZmVhdHVyZShlZGV2LCAmc2V0X3Jlc3AsICZjbWQsCiAJCQkJICBFRkFfQURNSU5fQUVOUV9DT05GSUcpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsICJGYWlsZWQgdG8gc2V0IGFlbnEgYXR0cmlidXRlczogJWRcbiIsCi0JCQkgIGVycik7CisJCWliZGV2X2Vycl9yYXRlbGltaXRlZChlZGV2LT5lZmFfZGV2LAorCQkJCSAgICAgICJGYWlsZWQgdG8gc2V0IGFlbnEgYXR0cmlidXRlczogJWRcbiIsCisJCQkJICAgICAgZXJyKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKQEAgLTYxOSw3ICs2NDAsOCBAQCBpbnQgZWZhX2NvbV9hbGxvY19wZChzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJCQkgICAgICAgKHN0cnVjdCBlZmFfYWRtaW5fYWNxX2VudHJ5ICopJnJlc3AsCiAJCQkgICAgICAgc2l6ZW9mKHJlc3ApKTsKIAlpZiAoZXJyKSB7Ci0JCWliZGV2X2VycihlZGV2LT5lZmFfZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIHBkWyVkXVxuIiwgZXJyKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKGVkZXYtPmVmYV9kZXYsCisJCQkJICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBwZFslZF1cbiIsIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQogCkBAIC02NDUsOCArNjY3LDkgQEAgaW50IGVmYV9jb21fZGVhbGxvY19wZChzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJCQkgICAgICAgKHN0cnVjdCBlZmFfYWRtaW5fYWNxX2VudHJ5ICopJnJlc3AsCiAJCQkgICAgICAgc2l6ZW9mKHJlc3ApKTsKIAlpZiAoZXJyKSB7Ci0JCWliZGV2X2VycihlZGV2LT5lZmFfZGV2LCAiRmFpbGVkIHRvIGRlYWxsb2NhdGUgcGQtJXUgWyVkXVxuIiwKLQkJCSAgY21kLnBkLCBlcnIpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoZWRldi0+ZWZhX2RldiwKKwkJCQkgICAgICAiRmFpbGVkIHRvIGRlYWxsb2NhdGUgcGQtJXUgWyVkXVxuIiwKKwkJCQkgICAgICBjbWQucGQsIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQogCkBAIC02NjksNyArNjkyLDggQEAgaW50IGVmYV9jb21fYWxsb2NfdWFyKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwKIAkJCSAgICAgICAoc3RydWN0IGVmYV9hZG1pbl9hY3FfZW50cnkgKikmcmVzcCwKIAkJCSAgICAgICBzaXplb2YocmVzcCkpOwogCWlmIChlcnIpIHsKLQkJaWJkZXZfZXJyKGVkZXYtPmVmYV9kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgdWFyWyVkXVxuIiwgZXJyKTsKKwkJaWJkZXZfZXJyX3JhdGVsaW1pdGVkKGVkZXYtPmVmYV9kZXYsCisJCQkJICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSB1YXJbJWRdXG4iLCBlcnIpOwogCQlyZXR1cm4gZXJyOwogCX0KIApAQCAtNjk1LDEwICs3MTksNDcgQEAgaW50IGVmYV9jb21fZGVhbGxvY191YXIoc3RydWN0IGVmYV9jb21fZGV2ICplZGV2LAogCQkJICAgICAgIChzdHJ1Y3QgZWZhX2FkbWluX2FjcV9lbnRyeSAqKSZyZXNwLAogCQkJICAgICAgIHNpemVvZihyZXNwKSk7CiAJaWYgKGVycikgewotCQlpYmRldl9lcnIoZWRldi0+ZWZhX2RldiwgIkZhaWxlZCB0byBkZWFsbG9jYXRlIHVhci0ldSBbJWRdXG4iLAotCQkJICBjbWQudWFyLCBlcnIpOworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoZWRldi0+ZWZhX2RldiwKKwkJCQkgICAgICAiRmFpbGVkIHRvIGRlYWxsb2NhdGUgdWFyLSV1IFslZF1cbiIsCisJCQkJICAgICAgY21kLnVhciwgZXJyKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKIAlyZXR1cm4gMDsKIH0KKworaW50IGVmYV9jb21fZ2V0X3N0YXRzKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwKKwkJICAgICAgc3RydWN0IGVmYV9jb21fZ2V0X3N0YXRzX3BhcmFtcyAqcGFyYW1zLAorCQkgICAgICB1bmlvbiBlZmFfY29tX2dldF9zdGF0c19yZXN1bHQgKnJlc3VsdCkKK3sKKwlzdHJ1Y3QgZWZhX2NvbV9hZG1pbl9xdWV1ZSAqYXEgPSAmZWRldi0+YXE7CisJc3RydWN0IGVmYV9hZG1pbl9hcV9nZXRfc3RhdHNfY21kIGNtZCA9IHt9OworCXN0cnVjdCBlZmFfYWRtaW5fYWNxX2dldF9zdGF0c19yZXNwIHJlc3A7CisJaW50IGVycjsKKworCWNtZC5hcV9jb21tb25fZGVzY3JpcHRvci5vcGNvZGUgPSBFRkFfQURNSU5fR0VUX1NUQVRTOworCWNtZC50eXBlID0gcGFyYW1zLT50eXBlOworCWNtZC5zY29wZSA9IHBhcmFtcy0+c2NvcGU7CisJY21kLnNjb3BlX21vZGlmaWVyID0gcGFyYW1zLT5zY29wZV9tb2RpZmllcjsKKworCWVyciA9IGVmYV9jb21fY21kX2V4ZWMoYXEsCisJCQkgICAgICAgKHN0cnVjdCBlZmFfYWRtaW5fYXFfZW50cnkgKikmY21kLAorCQkJICAgICAgIHNpemVvZihjbWQpLAorCQkJICAgICAgIChzdHJ1Y3QgZWZhX2FkbWluX2FjcV9lbnRyeSAqKSZyZXNwLAorCQkJICAgICAgIHNpemVvZihyZXNwKSk7CisJaWYgKGVycikgeworCQlpYmRldl9lcnJfcmF0ZWxpbWl0ZWQoCisJCQllZGV2LT5lZmFfZGV2LAorCQkJIkZhaWxlZCB0byBnZXQgc3RhdHMgdHlwZS0ldSBzY29wZS0ldS4ldSBbJWRdXG4iLAorCQkJY21kLnR5cGUsIGNtZC5zY29wZSwgY21kLnNjb3BlX21vZGlmaWVyLCBlcnIpOworCQlyZXR1cm4gZXJyOworCX0KKworCXJlc3VsdC0+YmFzaWNfc3RhdHMudHhfYnl0ZXMgPSByZXNwLmJhc2ljX3N0YXRzLnR4X2J5dGVzOworCXJlc3VsdC0+YmFzaWNfc3RhdHMudHhfcGt0cyA9IHJlc3AuYmFzaWNfc3RhdHMudHhfcGt0czsKKwlyZXN1bHQtPmJhc2ljX3N0YXRzLnJ4X2J5dGVzID0gcmVzcC5iYXNpY19zdGF0cy5yeF9ieXRlczsKKwlyZXN1bHQtPmJhc2ljX3N0YXRzLnJ4X3BrdHMgPSByZXNwLmJhc2ljX3N0YXRzLnJ4X3BrdHM7CisJcmVzdWx0LT5iYXNpY19zdGF0cy5yeF9kcm9wcyA9IHJlc3AuYmFzaWNfc3RhdHMucnhfZHJvcHM7CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhX2NvbV9jbWQuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhX2NvbV9jbWQuaAppbmRleCBhMTE3NDM4Li43ZjZjMTMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWZhL2VmYV9jb21fY21kLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VmYS9lZmFfY29tX2NtZC5oCkBAIC0yMjUsNiArMjI1LDI2IEBAIHN0cnVjdCBlZmFfY29tX2RlYWxsb2NfdWFyX3BhcmFtcyB7CiAJdTE2IHVhcm47CiB9OwogCitzdHJ1Y3QgZWZhX2NvbV9nZXRfc3RhdHNfcGFyYW1zIHsKKwkvKiBzZWUgZW51bSBlZmFfYWRtaW5fZ2V0X3N0YXRzX3R5cGUgKi8KKwl1OCB0eXBlOworCS8qIHNlZSBlbnVtIGVmYV9hZG1pbl9nZXRfc3RhdHNfc2NvcGUgKi8KKwl1OCBzY29wZTsKKwl1MTYgc2NvcGVfbW9kaWZpZXI7Cit9OworCitzdHJ1Y3QgZWZhX2NvbV9iYXNpY19zdGF0cyB7CisJdTY0IHR4X2J5dGVzOworCXU2NCB0eF9wa3RzOworCXU2NCByeF9ieXRlczsKKwl1NjQgcnhfcGt0czsKKwl1NjQgcnhfZHJvcHM7Cit9OworCit1bmlvbiBlZmFfY29tX2dldF9zdGF0c19yZXN1bHQgeworCXN0cnVjdCBlZmFfY29tX2Jhc2ljX3N0YXRzIGJhc2ljX3N0YXRzOworfTsKKwogdm9pZCBlZmFfY29tX3NldF9kbWFfYWRkcihkbWFfYWRkcl90IGFkZHIsIHUzMiAqYWRkcl9oaWdoLCB1MzIgKmFkZHJfbG93KTsKIGludCBlZmFfY29tX2NyZWF0ZV9xcChzdHJ1Y3QgZWZhX2NvbV9kZXYgKmVkZXYsCiAJCSAgICAgIHN0cnVjdCBlZmFfY29tX2NyZWF0ZV9xcF9wYXJhbXMgKnBhcmFtcywKQEAgLTI2Niw1ICsyODYsOCBAQCBpbnQgZWZhX2NvbV9hbGxvY191YXIoc3RydWN0IGVmYV9jb21fZGV2ICplZGV2LAogCQkgICAgICBzdHJ1Y3QgZWZhX2NvbV9hbGxvY191YXJfcmVzdWx0ICpyZXN1bHQpOwogaW50IGVmYV9jb21fZGVhbGxvY191YXIoc3RydWN0IGVmYV9jb21fZGV2ICplZGV2LAogCQkJc3RydWN0IGVmYV9jb21fZGVhbGxvY191YXJfcGFyYW1zICpwYXJhbXMpOworaW50IGVmYV9jb21fZ2V0X3N0YXRzKHN0cnVjdCBlZmFfY29tX2RldiAqZWRldiwKKwkJICAgICAgc3RydWN0IGVmYV9jb21fZ2V0X3N0YXRzX3BhcmFtcyAqcGFyYW1zLAorCQkgICAgICB1bmlvbiBlZmFfY29tX2dldF9zdGF0c19yZXN1bHQgKnJlc3VsdCk7CiAKICNlbmRpZiAvKiBfRUZBX0NPTV9DTURfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhX21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhX21haW4uYwppbmRleCBkZDFjNmQ0Li44Mzg1OGY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWZhL2VmYV9tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VmYS9lZmFfbWFpbi5jCkBAIC0yMDEsNiArMjAxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpYl9kZXZpY2Vfb3BzIGVmYV9kZXZfb3BzID0gewogCS5kcml2ZXJfaWQgPSBSRE1BX0RSSVZFUl9FRkEsCiAJLnV2ZXJic19hYmlfdmVyID0gRUZBX1VWRVJCU19BQklfVkVSU0lPTiwKIAorCS5hbGxvY19od19zdGF0cyA9IGVmYV9hbGxvY19od19zdGF0cywKIAkuYWxsb2NfcGQgPSBlZmFfYWxsb2NfcGQsCiAJLmFsbG9jX3Vjb250ZXh0ID0gZWZhX2FsbG9jX3Vjb250ZXh0LAogCS5jcmVhdGVfYWggPSBlZmFfY3JlYXRlX2FoLApAQCAtMjEyLDYgKzIxMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaWJfZGV2aWNlX29wcyBlZmFfZGV2X29wcyA9IHsKIAkuZGVzdHJveV9haCA9IGVmYV9kZXN0cm95X2FoLAogCS5kZXN0cm95X2NxID0gZWZhX2Rlc3Ryb3lfY3EsCiAJLmRlc3Ryb3lfcXAgPSBlZmFfZGVzdHJveV9xcCwKKwkuZ2V0X2h3X3N0YXRzID0gZWZhX2dldF9od19zdGF0cywKIAkuZ2V0X2xpbmtfbGF5ZXIgPSBlZmFfcG9ydF9saW5rX2xheWVyLAogCS5nZXRfcG9ydF9pbW11dGFibGUgPSBlZmFfZ2V0X3BvcnRfaW1tdXRhYmxlLAogCS5tbWFwID0gZWZhX21tYXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWZhL2VmYV92ZXJicy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VmYS9lZmFfdmVyYnMuYwppbmRleCBkZjc3YmMzLi40ZWRhZTg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWZhL2VmYV92ZXJicy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9lZmEvZWZhX3ZlcmJzLmMKQEAgLTQxLDYgKzQxLDMzIEBAIHN0YXRpYyBpbmxpbmUgdTY0IGdldF9tbWFwX2tleShjb25zdCBzdHJ1Y3QgZWZhX21tYXBfZW50cnkgKmVmYSkKIAkgICAgICAgKCh1NjQpZWZhLT5tbWFwX3BhZ2UgPDwgUEFHRV9TSElGVCk7CiB9CiAKKyNkZWZpbmUgRUZBX0RFRklORV9TVEFUUyhvcCkgXAorCW9wKEVGQV9UWF9CWVRFUywgInR4X2J5dGVzIikgXAorCW9wKEVGQV9UWF9QS1RTLCAidHhfcGt0cyIpIFwKKwlvcChFRkFfUlhfQllURVMsICJyeF9ieXRlcyIpIFwKKwlvcChFRkFfUlhfUEtUUywgInJ4X3BrdHMiKSBcCisJb3AoRUZBX1JYX0RST1BTLCAicnhfZHJvcHMiKSBcCisJb3AoRUZBX1NVQk1JVFRFRF9DTURTLCAic3VibWl0dGVkX2NtZHMiKSBcCisJb3AoRUZBX0NPTVBMRVRFRF9DTURTLCAiY29tcGxldGVkX2NtZHMiKSBcCisJb3AoRUZBX05PX0NPTVBMRVRJT05fQ01EUywgIm5vX2NvbXBsZXRpb25fY21kcyIpIFwKKwlvcChFRkFfS0VFUF9BTElWRV9SQ1ZELCAia2VlcF9hbGl2ZV9yY3ZkIikgXAorCW9wKEVGQV9BTExPQ19QRF9FUlIsICJhbGxvY19wZF9lcnIiKSBcCisJb3AoRUZBX0NSRUFURV9RUF9FUlIsICJjcmVhdGVfcXBfZXJyIikgXAorCW9wKEVGQV9SRUdfTVJfRVJSLCAicmVnX21yX2VyciIpIFwKKwlvcChFRkFfQUxMT0NfVUNPTlRFWFRfRVJSLCAiYWxsb2NfdWNvbnRleHRfZXJyIikgXAorCW9wKEVGQV9DUkVBVEVfQUhfRVJSLCAiY3JlYXRlX2FoX2VyciIpCisKKyNkZWZpbmUgRUZBX1NUQVRTX0VOVU0oZW5hbWUsIG5hbWUpIGVuYW1lLAorI2RlZmluZSBFRkFfU1RBVFNfU1RSKGVuYW1lLCBuYW1lKSBbZW5hbWVdID0gbmFtZSwKKworZW51bSBlZmFfaHdfc3RhdHMgeworCUVGQV9ERUZJTkVfU1RBVFMoRUZBX1NUQVRTX0VOVU0pCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgZWZhX3N0YXRzX25hbWVzW10gPSB7CisJRUZBX0RFRklORV9TVEFUUyhFRkFfU1RBVFNfU1RSKQorfTsKKwogI2RlZmluZSBFRkFfQ0hVTktfUEFZTE9BRF9TSElGVCAgICAgICAxMgogI2RlZmluZSBFRkFfQ0hVTktfUEFZTE9BRF9TSVpFICAgICAgICBCSVQoRUZBX0NIVU5LX1BBWUxPQURfU0hJRlQpCiAjZGVmaW5lIEVGQV9DSFVOS19QQVlMT0FEX1BUUl9TSVpFICAgIDgKQEAgLTEyMSw3ICsxNDgsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBlZmFfYWggKnRvX2VhaChzdHJ1Y3QgaWJfYWggKmliYWgpCiB9CiAKICNkZWZpbmUgZmllbGRfYXZhaWwoeCwgZmxkLCBzeikgKG9mZnNldG9mKHR5cGVvZih4KSwgZmxkKSArIFwKLQkJCQkgc2l6ZW9mKCgodHlwZW9mKHgpICopMCktPmZsZCkgPD0gKHN6KSkKKwkJCQkgRklFTERfU0laRU9GKHR5cGVvZih4KSwgZmxkKSA8PSAoc3opKQogCiAjZGVmaW5lIGlzX3Jlc2VydmVkX2NsZWFyZWQocmVzZXJ2ZWQpIFwKIAkhbWVtY2hyX2ludihyZXNlcnZlZCwgMCwgc2l6ZW9mKHJlc2VydmVkKSkKQEAgLTMwNiw3ICszMzMsNyBAQCBpbnQgZWZhX3F1ZXJ5X3BvcnQoc3RydWN0IGliX2RldmljZSAqaWJkZXYsIHU4IHBvcnQsCiAJcHJvcHMtPmxtYyA9IDE7CiAKIAlwcm9wcy0+c3RhdGUgPSBJQl9QT1JUX0FDVElWRTsKLQlwcm9wcy0+cGh5c19zdGF0ZSA9IDU7CisJcHJvcHMtPnBoeXNfc3RhdGUgPSBJQl9QT1JUX1BIWVNfU1RBVEVfTElOS19VUDsKIAlwcm9wcy0+Z2lkX3RibF9sZW4gPSAxOwogCXByb3BzLT5wa2V5X3RibF9sZW4gPSAxOwogCXByb3BzLT5hY3RpdmVfc3BlZWQgPSBJQl9TUEVFRF9FRFI7CkBAIC0xNDczLDE0ICsxNTAwLDEyIEBAIGludCBlZmFfZGVyZWdfbXIoc3RydWN0IGliX21yICppYm1yLCBzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhKQogCiAJaWJkZXZfZGJnKCZkZXYtPmliZGV2LCAiRGVyZWdpc3RlciBtclslZF1cbiIsIGlibXItPmxrZXkpOwogCi0JaWYgKG1yLT51bWVtKSB7Ci0JCXBhcmFtcy5sX2tleSA9IG1yLT5pYm1yLmxrZXk7Ci0JCWVyciA9IGVmYV9jb21fZGVyZWdfbXIoJmRldi0+ZWRldiwgJnBhcmFtcyk7Ci0JCWlmIChlcnIpCi0JCQlyZXR1cm4gZXJyOwotCX0KLQlpYl91bWVtX3JlbGVhc2UobXItPnVtZW0pOworCXBhcmFtcy5sX2tleSA9IG1yLT5pYm1yLmxrZXk7CisJZXJyID0gZWZhX2NvbV9kZXJlZ19tcigmZGV2LT5lZGV2LCAmcGFyYW1zKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOwogCisJaWJfdW1lbV9yZWxlYXNlKG1yLT51bWVtKTsKIAlrZnJlZShtcik7CiAKIAlyZXR1cm4gMDsKQEAgLTE3MjcsNiArMTc1Miw1NCBAQCB2b2lkIGVmYV9kZXN0cm95X2FoKHN0cnVjdCBpYl9haCAqaWJhaCwgdTMyIGZsYWdzKQogCWVmYV9haF9kZXN0cm95KGRldiwgYWgpOwogfQogCitzdHJ1Y3QgcmRtYV9od19zdGF0cyAqZWZhX2FsbG9jX2h3X3N0YXRzKHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LCB1OCBwb3J0X251bSkKK3sKKwlyZXR1cm4gcmRtYV9hbGxvY19od19zdGF0c19zdHJ1Y3QoZWZhX3N0YXRzX25hbWVzLAorCQkJCQkgIEFSUkFZX1NJWkUoZWZhX3N0YXRzX25hbWVzKSwKKwkJCQkJICBSRE1BX0hXX1NUQVRTX0RFRkFVTFRfTElGRVNQQU4pOworfQorCitpbnQgZWZhX2dldF9od19zdGF0cyhzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwgc3RydWN0IHJkbWFfaHdfc3RhdHMgKnN0YXRzLAorCQkgICAgIHU4IHBvcnRfbnVtLCBpbnQgaW5kZXgpCit7CisJc3RydWN0IGVmYV9jb21fZ2V0X3N0YXRzX3BhcmFtcyBwYXJhbXMgPSB7fTsKKwl1bmlvbiBlZmFfY29tX2dldF9zdGF0c19yZXN1bHQgcmVzdWx0OworCXN0cnVjdCBlZmFfZGV2ICpkZXYgPSB0b19lZGV2KGliZGV2KTsKKwlzdHJ1Y3QgZWZhX2NvbV9iYXNpY19zdGF0cyAqYnM7CisJc3RydWN0IGVmYV9jb21fc3RhdHNfYWRtaW4gKmFzOworCXN0cnVjdCBlZmFfc3RhdHMgKnM7CisJaW50IGVycjsKKworCXBhcmFtcy50eXBlID0gRUZBX0FETUlOX0dFVF9TVEFUU19UWVBFX0JBU0lDOworCXBhcmFtcy5zY29wZSA9IEVGQV9BRE1JTl9HRVRfU1RBVFNfU0NPUEVfQUxMOworCisJZXJyID0gZWZhX2NvbV9nZXRfc3RhdHMoJmRldi0+ZWRldiwgJnBhcmFtcywgJnJlc3VsdCk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWJzID0gJnJlc3VsdC5iYXNpY19zdGF0czsKKwlzdGF0cy0+dmFsdWVbRUZBX1RYX0JZVEVTXSA9IGJzLT50eF9ieXRlczsKKwlzdGF0cy0+dmFsdWVbRUZBX1RYX1BLVFNdID0gYnMtPnR4X3BrdHM7CisJc3RhdHMtPnZhbHVlW0VGQV9SWF9CWVRFU10gPSBicy0+cnhfYnl0ZXM7CisJc3RhdHMtPnZhbHVlW0VGQV9SWF9QS1RTXSA9IGJzLT5yeF9wa3RzOworCXN0YXRzLT52YWx1ZVtFRkFfUlhfRFJPUFNdID0gYnMtPnJ4X2Ryb3BzOworCisJYXMgPSAmZGV2LT5lZGV2LmFxLnN0YXRzOworCXN0YXRzLT52YWx1ZVtFRkFfU1VCTUlUVEVEX0NNRFNdID0gYXRvbWljNjRfcmVhZCgmYXMtPnN1Ym1pdHRlZF9jbWQpOworCXN0YXRzLT52YWx1ZVtFRkFfQ09NUExFVEVEX0NNRFNdID0gYXRvbWljNjRfcmVhZCgmYXMtPmNvbXBsZXRlZF9jbWQpOworCXN0YXRzLT52YWx1ZVtFRkFfTk9fQ09NUExFVElPTl9DTURTXSA9IGF0b21pYzY0X3JlYWQoJmFzLT5ub19jb21wbGV0aW9uKTsKKworCXMgPSAmZGV2LT5zdGF0czsKKwlzdGF0cy0+dmFsdWVbRUZBX0tFRVBfQUxJVkVfUkNWRF0gPSBhdG9taWM2NF9yZWFkKCZzLT5rZWVwX2FsaXZlX3JjdmQpOworCXN0YXRzLT52YWx1ZVtFRkFfQUxMT0NfUERfRVJSXSA9IGF0b21pYzY0X3JlYWQoJnMtPnN3X3N0YXRzLmFsbG9jX3BkX2Vycik7CisJc3RhdHMtPnZhbHVlW0VGQV9DUkVBVEVfUVBfRVJSXSA9IGF0b21pYzY0X3JlYWQoJnMtPnN3X3N0YXRzLmNyZWF0ZV9xcF9lcnIpOworCXN0YXRzLT52YWx1ZVtFRkFfUkVHX01SX0VSUl0gPSBhdG9taWM2NF9yZWFkKCZzLT5zd19zdGF0cy5yZWdfbXJfZXJyKTsKKwlzdGF0cy0+dmFsdWVbRUZBX0FMTE9DX1VDT05URVhUX0VSUl0gPSBhdG9taWM2NF9yZWFkKCZzLT5zd19zdGF0cy5hbGxvY191Y29udGV4dF9lcnIpOworCXN0YXRzLT52YWx1ZVtFRkFfQ1JFQVRFX0FIX0VSUl0gPSBhdG9taWM2NF9yZWFkKCZzLT5zd19zdGF0cy5jcmVhdGVfYWhfZXJyKTsKKworCXJldHVybiBBUlJBWV9TSVpFKGVmYV9zdGF0c19uYW1lcyk7Cit9CisKIGVudW0gcmRtYV9saW5rX2xheWVyIGVmYV9wb3J0X2xpbmtfbGF5ZXIoc3RydWN0IGliX2RldmljZSAqaWJkZXYsCiAJCQkJCSB1OCBwb3J0X251bSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2NoaXAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2NoaXAuYwppbmRleCA2NzA1MmRjLi45YjFmYjg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9jaGlwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvY2hpcC5jCkBAIC00MTAxLDYgKzQxMDEsNyBAQCBkZWZfYWNjZXNzX2licF9jb3VudGVyKHJjX2R1cHJlcSk7CiBkZWZfYWNjZXNzX2licF9jb3VudGVyKHJkbWFfc2VxKTsKIGRlZl9hY2Nlc3NfaWJwX2NvdW50ZXIodW5hbGlnbmVkKTsKIGRlZl9hY2Nlc3NfaWJwX2NvdW50ZXIoc2VxX25ha3MpOworZGVmX2FjY2Vzc19pYnBfY291bnRlcihyY19jcndhaXRzKTsKIAogc3RhdGljIHN0cnVjdCBjbnRyX2VudHJ5IGRldl9jbnRyc1tERVZfQ05UUl9MQVNUXSA9IHsKIFtDX1JDVl9PVkZdID0gUlhFMzJfREVWX0NOVFJfRUxFTShSY3ZPdmVyZmxvdywgUkNWX0JVRl9PVkZMX0NOVCwgQ05UUl9TWU5USCksCkBAIC01MTE5LDYgKzUxMjAsNyBAQCBzdGF0aWMgc3RydWN0IGNudHJfZW50cnkgcG9ydF9jbnRyc1tQT1JUX0NOVFJfTEFTVF0gPSB7CiBbQ19TV19JQlBfUkRNQV9TRVFdID0gU1dfSUJQX0NOVFIoUmRtYVNlcSwgcmRtYV9zZXEpLAogW0NfU1dfSUJQX1VOQUxJR05FRF0gPSBTV19JQlBfQ05UUihVbmFsaWduZWQsIHVuYWxpZ25lZCksCiBbQ19TV19JQlBfU0VRX05BS10gPSBTV19JQlBfQ05UUihTZXFOYWssIHNlcV9uYWtzKSwKK1tDX1NXX0lCUF9SQ19DUldBSVRTXSA9IFNXX0lCUF9DTlRSKFJjQ3JXYWl0LCByY19jcndhaXRzKSwKIFtDX1NXX0NQVV9SQ19BQ0tTXSA9IENOVFJfRUxFTSgiUmNBY2tzIiwgMCwgMCwgQ05UUl9OT1JNQUwsCiAJCQkgICAgICAgYWNjZXNzX3N3X2NwdV9yY19hY2tzKSwKIFtDX1NXX0NQVV9SQ19RQUNLU10gPSBDTlRSX0VMRU0oIlJjUWFja3MiLCAwLCAwLCBDTlRSX05PUk1BTCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2NoaXAuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2NoaXAuaAppbmRleCBiNzZjZjgxLi40Y2E1YWM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9jaGlwLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvY2hpcC5oCkBAIC0xMjQ1LDYgKzEyNDUsNyBAQCBlbnVtIHsKIAlDX1NXX0lCUF9SRE1BX1NFUSwKIAlDX1NXX0lCUF9VTkFMSUdORUQsCiAJQ19TV19JQlBfU0VRX05BSywKKwlDX1NXX0lCUF9SQ19DUldBSVRTLAogCUNfU1dfQ1BVX1JDX0FDS1MsCiAJQ19TV19DUFVfUkNfUUFDS1MsCiAJQ19TV19DUFVfUkNfREVMQVlFRF9DT01QLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvbWFkLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9tYWQuYwppbmRleCAxODRkYmEzLi5kOGZmMDYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9tYWQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9tYWQuYwpAQCAtMjMyNiw3ICsyMzI2LDcgQEAgc3RydWN0IG9wYV9wb3J0X3N0YXR1c19yZXEgewogCV9fYmUzMiB2bF9zZWxlY3RfbWFzazsKIH07CiAKLSNkZWZpbmUgVkxfTUFTS19BTEwJCTB4MDAwMDgwZmYKKyNkZWZpbmUgVkxfTUFTS19BTEwJCTB4MDAwMDAwMDAwMDAwODBmZlVMCiAKIHN0cnVjdCBvcGFfcG9ydF9zdGF0dXNfcnNwIHsKIAlfX3U4IHBvcnRfbnVtOwpAQCAtMjYyNSwxNSArMjYyNSwxNCBAQCBzdGF0aWMgaW50IHBtYV9nZXRfb3BhX2NsYXNzcG9ydGluZm8oc3RydWN0IG9wYV9wbWFfbWFkICpwbXAsCiB9CiAKIHN0YXRpYyB2b2lkIGEwX3BvcnRzdGF0dXMoc3RydWN0IGhmaTFfcHBvcnRkYXRhICpwcGQsCi0JCQkgIHN0cnVjdCBvcGFfcG9ydF9zdGF0dXNfcnNwICpyc3AsIHUzMiB2bF9zZWxlY3RfbWFzaykKKwkJCSAgc3RydWN0IG9wYV9wb3J0X3N0YXR1c19yc3AgKnJzcCkKIHsKIAlpZiAoIWlzX2J4KHBwZC0+ZGQpKSB7CiAJCXVuc2lnbmVkIGxvbmcgdmw7CiAJCXU2NCBzdW1fdmxfeG1pdF93YWl0ID0gMDsKLQkJdTMyIHZsX2FsbF9tYXNrID0gVkxfTUFTS19BTEw7CisJCXVuc2lnbmVkIGxvbmcgdmxfYWxsX21hc2sgPSBWTF9NQVNLX0FMTDsKIAotCQlmb3JfZWFjaF9zZXRfYml0KHZsLCAodW5zaWduZWQgbG9uZyAqKSYodmxfYWxsX21hc2spLAotCQkJCSA4ICogc2l6ZW9mKHZsX2FsbF9tYXNrKSkgeworCQlmb3JfZWFjaF9zZXRfYml0KHZsLCAmdmxfYWxsX21hc2ssIEJJVFNfUEVSX0xPTkcpIHsKIAkJCXU2NCB0bXAgPSBzdW1fdmxfeG1pdF93YWl0ICsKIAkJCQkgIHJlYWRfcG9ydF9jbnRyKHBwZCwgQ19UWF9XQUlUX1ZMLAogCQkJCQkJIGlkeF9mcm9tX3ZsKHZsKSk7CkBAIC0yNzMwLDEyICsyNzI5LDEyIEBAIHN0YXRpYyBpbnQgcG1hX2dldF9vcGFfcG9ydHN0YXR1cyhzdHJ1Y3Qgb3BhX3BtYV9tYWQgKnBtcCwKIAkJKHN0cnVjdCBvcGFfcG9ydF9zdGF0dXNfcmVxICopcG1wLT5kYXRhOwogCXN0cnVjdCBoZmkxX2RldmRhdGEgKmRkID0gZGRfZnJvbV9pYmRldihpYmRldik7CiAJc3RydWN0IG9wYV9wb3J0X3N0YXR1c19yc3AgKnJzcDsKLQl1MzIgdmxfc2VsZWN0X21hc2sgPSBiZTMyX3RvX2NwdShyZXEtPnZsX3NlbGVjdF9tYXNrKTsKKwl1bnNpZ25lZCBsb25nIHZsX3NlbGVjdF9tYXNrID0gYmUzMl90b19jcHUocmVxLT52bF9zZWxlY3RfbWFzayk7CiAJdW5zaWduZWQgbG9uZyB2bDsKIAlzaXplX3QgcmVzcG9uc2VfZGF0YV9zaXplOwogCXUzMiBucG9ydHMgPSBiZTMyX3RvX2NwdShwbXAtPm1hZF9oZHIuYXR0cl9tb2QpID4+IDI0OwogCXU4IHBvcnRfbnVtID0gcmVxLT5wb3J0X251bTsKLQl1OCBudW1fdmxzID0gaHdlaWdodDMyKHZsX3NlbGVjdF9tYXNrKTsKKwl1OCBudW1fdmxzID0gaHdlaWdodDY0KHZsX3NlbGVjdF9tYXNrKTsKIAlzdHJ1Y3QgX3Zsc19wY3RycyAqdmxpbmZvOwogCXN0cnVjdCBoZmkxX2licG9ydCAqaWJwID0gdG9faXBvcnQoaWJkZXYsIHBvcnQpOwogCXN0cnVjdCBoZmkxX3Bwb3J0ZGF0YSAqcHBkID0gcHBkX2Zyb21faWJwKGlicCk7CkBAIC0yNzcwLDcgKzI3NjksNyBAQCBzdGF0aWMgaW50IHBtYV9nZXRfb3BhX3BvcnRzdGF0dXMoc3RydWN0IG9wYV9wbWFfbWFkICpwbXAsCiAKIAloZmkxX3JlYWRfbGlua19xdWFsaXR5KGRkLCAmcnNwLT5saW5rX3F1YWxpdHlfaW5kaWNhdG9yKTsKIAotCXJzcC0+dmxfc2VsZWN0X21hc2sgPSBjcHVfdG9fYmUzMih2bF9zZWxlY3RfbWFzayk7CisJcnNwLT52bF9zZWxlY3RfbWFzayA9IGNwdV90b19iZTMyKCh1MzIpdmxfc2VsZWN0X21hc2spOwogCXJzcC0+cG9ydF94bWl0X2RhdGEgPSBjcHVfdG9fYmU2NChyZWFkX2Rldl9jbnRyKGRkLCBDX0RDX1hNSVRfRkxJVFMsCiAJCQkJCSAgQ05UUl9JTlZBTElEX1ZMKSk7CiAJcnNwLT5wb3J0X3Jjdl9kYXRhID0gY3B1X3RvX2JlNjQocmVhZF9kZXZfY250cihkZCwgQ19EQ19SQ1ZfRkxJVFMsCkBAIC0yODQxLDggKzI4NDAsNyBAQCBzdGF0aWMgaW50IHBtYV9nZXRfb3BhX3BvcnRzdGF0dXMoc3RydWN0IG9wYV9wbWFfbWFkICpwbXAsCiAJICogU28gaW4gdGhlIGZvcl9lYWNoX3NldF9iaXQoKSBsb29wIGJlbG93LCB3ZSBkb24ndCBuZWVkCiAJICogYW55IGFkZGl0aW9uYWwgY2hlY2tzIGZvciB2bC4KIAkgKi8KLQlmb3JfZWFjaF9zZXRfYml0KHZsLCAodW5zaWduZWQgbG9uZyAqKSYodmxfc2VsZWN0X21hc2spLAotCQkJIDggKiBzaXplb2Yodmxfc2VsZWN0X21hc2spKSB7CisJZm9yX2VhY2hfc2V0X2JpdCh2bCwgJnZsX3NlbGVjdF9tYXNrLCBCSVRTX1BFUl9MT05HKSB7CiAJCW1lbXNldCh2bGluZm8sIDAsIHNpemVvZigqdmxpbmZvKSk7CiAKIAkJdG1wID0gcmVhZF9kZXZfY250cihkZCwgQ19EQ19SWF9GTElUX1ZMLCBpZHhfZnJvbV92bCh2bCkpOwpAQCAtMjg4Myw3ICsyODgxLDcgQEAgc3RhdGljIGludCBwbWFfZ2V0X29wYV9wb3J0c3RhdHVzKHN0cnVjdCBvcGFfcG1hX21hZCAqcG1wLAogCQl2ZmkrKzsKIAl9CiAKLQlhMF9wb3J0c3RhdHVzKHBwZCwgcnNwLCB2bF9zZWxlY3RfbWFzayk7CisJYTBfcG9ydHN0YXR1cyhwcGQsIHJzcCk7CiAKIAlpZiAocmVzcF9sZW4pCiAJCSpyZXNwX2xlbiArPSByZXNwb25zZV9kYXRhX3NpemU7CkBAIC0yOTMwLDE2ICsyOTI4LDE0IEBAIHN0YXRpYyB1NjQgZ2V0X2Vycm9yX2NvdW50ZXJfc3VtbWFyeShzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwgdTggcG9ydCwKIAlyZXR1cm4gZXJyb3JfY291bnRlcl9zdW1tYXJ5OwogfQogCi1zdGF0aWMgdm9pZCBhMF9kYXRhY291bnRlcnMoc3RydWN0IGhmaTFfcHBvcnRkYXRhICpwcGQsIHN0cnVjdCBfcG9ydF9kY3RycyAqcnNwLAotCQkJICAgIHUzMiB2bF9zZWxlY3RfbWFzaykKK3N0YXRpYyB2b2lkIGEwX2RhdGFjb3VudGVycyhzdHJ1Y3QgaGZpMV9wcG9ydGRhdGEgKnBwZCwgc3RydWN0IF9wb3J0X2RjdHJzICpyc3ApCiB7CiAJaWYgKCFpc19ieChwcGQtPmRkKSkgewogCQl1bnNpZ25lZCBsb25nIHZsOwogCQl1NjQgc3VtX3ZsX3htaXRfd2FpdCA9IDA7Ci0JCXUzMiB2bF9hbGxfbWFzayA9IFZMX01BU0tfQUxMOworCQl1bnNpZ25lZCBsb25nIHZsX2FsbF9tYXNrID0gVkxfTUFTS19BTEw7CiAKLQkJZm9yX2VhY2hfc2V0X2JpdCh2bCwgKHVuc2lnbmVkIGxvbmcgKikmKHZsX2FsbF9tYXNrKSwKLQkJCQkgOCAqIHNpemVvZih2bF9hbGxfbWFzaykpIHsKKwkJZm9yX2VhY2hfc2V0X2JpdCh2bCwgJnZsX2FsbF9tYXNrLCBCSVRTX1BFUl9MT05HKSB7CiAJCQl1NjQgdG1wID0gc3VtX3ZsX3htaXRfd2FpdCArCiAJCQkJICByZWFkX3BvcnRfY250cihwcGQsIENfVFhfV0FJVF9WTCwKIAkJCQkJCSBpZHhfZnJvbV92bCh2bCkpOwpAQCAtMjk5NCw3ICsyOTkwLDcgQEAgc3RhdGljIGludCBwbWFfZ2V0X29wYV9kYXRhY291bnRlcnMoc3RydWN0IG9wYV9wbWFfbWFkICpwbXAsCiAJdTY0IHBvcnRfbWFzazsKIAl1OCBwb3J0X251bTsKIAl1bnNpZ25lZCBsb25nIHZsOwotCXUzMiB2bF9zZWxlY3RfbWFzazsKKwl1bnNpZ25lZCBsb25nIHZsX3NlbGVjdF9tYXNrOwogCWludCB2Zmk7CiAJdTE2IGxpbmtfd2lkdGg7CiAJdTE2IGxpbmtfc3BlZWQ7CkBAIC0zMDcxLDggKzMwNjcsNyBAQCBzdGF0aWMgaW50IHBtYV9nZXRfb3BhX2RhdGFjb3VudGVycyhzdHJ1Y3Qgb3BhX3BtYV9tYWQgKnBtcCwKIAkgKiBTbyBpbiB0aGUgZm9yX2VhY2hfc2V0X2JpdCgpIGxvb3AgYmVsb3csIHdlIGRvbid0IG5lZWQKIAkgKiBhbnkgYWRkaXRpb25hbCBjaGVja3MgZm9yIHZsLgogCSAqLwotCWZvcl9lYWNoX3NldF9iaXQodmwsICh1bnNpZ25lZCBsb25nICopJih2bF9zZWxlY3RfbWFzayksCi0JCQkgOCAqIHNpemVvZihyZXEtPnZsX3NlbGVjdF9tYXNrKSkgeworCWZvcl9lYWNoX3NldF9iaXQodmwsICZ2bF9zZWxlY3RfbWFzaywgQklUU19QRVJfTE9ORykgewogCQltZW1zZXQodmxpbmZvLCAwLCBzaXplb2YoKnZsaW5mbykpOwogCiAJCXJzcC0+dmxzW3ZmaV0ucG9ydF92bF94bWl0X2RhdGEgPQpAQCAtMzEyMCw3ICszMTE1LDcgQEAgc3RhdGljIGludCBwbWFfZ2V0X29wYV9kYXRhY291bnRlcnMoc3RydWN0IG9wYV9wbWFfbWFkICpwbXAsCiAJCXZmaSsrOwogCX0KIAotCWEwX2RhdGFjb3VudGVycyhwcGQsIHJzcCwgdmxfc2VsZWN0X21hc2spOworCWEwX2RhdGFjb3VudGVycyhwcGQsIHJzcCk7CiAKIAlpZiAocmVzcF9sZW4pCiAJCSpyZXNwX2xlbiArPSByZXNwb25zZV9kYXRhX3NpemU7CkBAIC0zMjE1LDcgKzMyMTAsNyBAQCBzdGF0aWMgaW50IHBtYV9nZXRfb3BhX3BvcnRlcnJvcnMoc3RydWN0IG9wYV9wbWFfbWFkICpwbXAsCiAJc3RydWN0IF92bHNfZWN0cnMgKnZsaW5mbzsKIAl1bnNpZ25lZCBsb25nIHZsOwogCXU2NCBwb3J0X21hc2ssIHRtcDsKLQl1MzIgdmxfc2VsZWN0X21hc2s7CisJdW5zaWduZWQgbG9uZyB2bF9zZWxlY3RfbWFzazsKIAlpbnQgdmZpOwogCiAJcmVxID0gKHN0cnVjdCBvcGFfcG9ydF9lcnJvcl9jb3VudGVyczY0X21zZyAqKXBtcC0+ZGF0YTsKQEAgLTMyNzMsOCArMzI2OCw3IEBAIHN0YXRpYyBpbnQgcG1hX2dldF9vcGFfcG9ydGVycm9ycyhzdHJ1Y3Qgb3BhX3BtYV9tYWQgKnBtcCwKIAl2bGluZm8gPSAmcnNwLT52bHNbMF07CiAJdmZpID0gMDsKIAl2bF9zZWxlY3RfbWFzayA9IGJlMzJfdG9fY3B1KHJlcS0+dmxfc2VsZWN0X21hc2spOwotCWZvcl9lYWNoX3NldF9iaXQodmwsICh1bnNpZ25lZCBsb25nICopJih2bF9zZWxlY3RfbWFzayksCi0JCQkgOCAqIHNpemVvZihyZXEtPnZsX3NlbGVjdF9tYXNrKSkgeworCWZvcl9lYWNoX3NldF9iaXQodmwsICZ2bF9zZWxlY3RfbWFzaywgQklUU19QRVJfTE9ORykgewogCQltZW1zZXQodmxpbmZvLCAwLCBzaXplb2YoKnZsaW5mbykpOwogCQlyc3AtPnZsc1t2ZmldLnBvcnRfdmxfeG1pdF9kaXNjYXJkcyA9CiAJCQljcHVfdG9fYmU2NChyZWFkX3BvcnRfY250cihwcGQsIENfU1dfWE1JVF9EU0NEX1ZMLApAQCAtMzQ4NSw3ICszNDc5LDcgQEAgc3RhdGljIGludCBwbWFfc2V0X29wYV9wb3J0c3RhdHVzKHN0cnVjdCBvcGFfcG1hX21hZCAqcG1wLAogCXUzMiBucG9ydHMgPSBiZTMyX3RvX2NwdShwbXAtPm1hZF9oZHIuYXR0cl9tb2QpID4+IDI0OwogCXU2NCBwb3J0biA9IGJlNjRfdG9fY3B1KHJlcS0+cG9ydF9zZWxlY3RfbWFza1szXSk7CiAJdTMyIGNvdW50ZXJfc2VsZWN0ID0gYmUzMl90b19jcHUocmVxLT5jb3VudGVyX3NlbGVjdF9tYXNrKTsKLQl1MzIgdmxfc2VsZWN0X21hc2sgPSBWTF9NQVNLX0FMTDsgLyogY2xlYXIgYWxsIHBlci12bCBjbnRzICovCisJdW5zaWduZWQgbG9uZyB2bF9zZWxlY3RfbWFzayA9IFZMX01BU0tfQUxMOyAvKiBjbGVhciBhbGwgcGVyLXZsIGNudHMgKi8KIAl1bnNpZ25lZCBsb25nIHZsOwogCiAJaWYgKChucG9ydHMgIT0gMSkgfHwgKHBvcnRuICE9IDEgPDwgcG9ydCkpIHsKQEAgLTM1NzksOCArMzU3Myw3IEBAIHN0YXRpYyBpbnQgcG1hX3NldF9vcGFfcG9ydHN0YXR1cyhzdHJ1Y3Qgb3BhX3BtYV9tYWQgKnBtcCwKIAlpZiAoY291bnRlcl9zZWxlY3QgJiBDU19VTkNPUlJFQ1RBQkxFX0VSUk9SUykKIAkJd3JpdGVfZGV2X2NudHIoZGQsIENfRENfVU5DX0VSUiwgQ05UUl9JTlZBTElEX1ZMLCAwKTsKIAotCWZvcl9lYWNoX3NldF9iaXQodmwsICh1bnNpZ25lZCBsb25nICopJih2bF9zZWxlY3RfbWFzayksCi0JCQkgOCAqIHNpemVvZih2bF9zZWxlY3RfbWFzaykpIHsKKwlmb3JfZWFjaF9zZXRfYml0KHZsLCAmdmxfc2VsZWN0X21hc2ssIEJJVFNfUEVSX0xPTkcpIHsKIAkJaWYgKGNvdW50ZXJfc2VsZWN0ICYgQ1NfUE9SVF9YTUlUX0RBVEEpCiAJCQl3cml0ZV9wb3J0X2NudHIocHBkLCBDX1RYX0ZMSVRfVkwsIGlkeF9mcm9tX3ZsKHZsKSwgMCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3JjLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9yYy5jCmluZGV4IDAyNGE3YzIuLjUxM2E4YWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3JjLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvcmMuYwpAQCAtNTk1LDExICs1OTUsOCBAQCBpbnQgaGZpMV9tYWtlX3JjX3JlcShzdHJ1Y3QgcnZ0X3FwICpxcCwgc3RydWN0IGhmaTFfcGt0X3N0YXRlICpwcykKIAkJY2FzZSBJQl9XUl9TRU5EX1dJVEhfSU1NOgogCQljYXNlIElCX1dSX1NFTkRfV0lUSF9JTlY6CiAJCQkvKiBJZiBubyBjcmVkaXQsIHJldHVybi4gKi8KLQkJCWlmICghKHFwLT5zX2ZsYWdzICYgUlZUX1NfVU5MSU1JVEVEX0NSRURJVCkgJiYKLQkJCSAgICBydnRfY21wX21zbih3cWUtPnNzbiwgcXAtPnNfbHNuICsgMSkgPiAwKSB7Ci0JCQkJcXAtPnNfZmxhZ3MgfD0gUlZUX1NfV0FJVF9TU05fQ1JFRElUOworCQkJaWYgKCFydnRfcmNfY3JlZGl0X2F2YWlsKHFwLCB3cWUpKQogCQkJCWdvdG8gYmFpbDsKLQkJCX0KIAkJCWlmIChsZW4gPiBwbXR1KSB7CiAJCQkJcXAtPnNfc3RhdGUgPSBPUChTRU5EX0ZJUlNUKTsKIAkJCQlsZW4gPSBwbXR1OwpAQCAtNjMyLDExICs2MjksOCBAQCBpbnQgaGZpMV9tYWtlX3JjX3JlcShzdHJ1Y3QgcnZ0X3FwICpxcCwgc3RydWN0IGhmaTFfcGt0X3N0YXRlICpwcykKIAkJCWdvdG8gbm9fZmxvd19jb250cm9sOwogCQljYXNlIElCX1dSX1JETUFfV1JJVEVfV0lUSF9JTU06CiAJCQkvKiBJZiBubyBjcmVkaXQsIHJldHVybi4gKi8KLQkJCWlmICghKHFwLT5zX2ZsYWdzICYgUlZUX1NfVU5MSU1JVEVEX0NSRURJVCkgJiYKLQkJCSAgICBydnRfY21wX21zbih3cWUtPnNzbiwgcXAtPnNfbHNuICsgMSkgPiAwKSB7Ci0JCQkJcXAtPnNfZmxhZ3MgfD0gUlZUX1NfV0FJVF9TU05fQ1JFRElUOworCQkJaWYgKCFydnRfcmNfY3JlZGl0X2F2YWlsKHFwLCB3cWUpKQogCQkJCWdvdG8gYmFpbDsKLQkJCX0KIG5vX2Zsb3dfY29udHJvbDoKIAkJCXB1dF9pYl9yZXRoX3ZhZGRyKAogCQkJCXdxZS0+cmRtYV93ci5yZW1vdGVfYWRkciwKQEAgLTE0ODMsNiArMTQ3NywxMSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfbnVtX3JkX2F0b21pYyhzdHJ1Y3QgcnZ0X3FwICpxcCwgdTMyIHBzbiwKIAkJCXJlcS0+YWNrX3BlbmRpbmcgPSBjdXJfc2VnIC0gcmVxLT5jb21wX3NlZzsKIAkJCXByaXYtPnBlbmRpbmdfdGlkX3Jfc2VncyArPSByZXEtPmFja19wZW5kaW5nOwogCQkJcXAtPnNfbnVtX3JkX2F0b21pYyArPSByZXEtPmFja19wZW5kaW5nOworCQkJdHJhY2VfaGZpMV90aWRfcmVxX3VwZGF0ZV9udW1fcmRfYXRvbWljKHFwLCAwLAorCQkJCQkJCQl3cWUtPndyLm9wY29kZSwKKwkJCQkJCQkJd3FlLT5wc24sCisJCQkJCQkJCXdxZS0+bHBzbiwKKwkJCQkJCQkJcmVxKTsKIAkJfSBlbHNlIHsKIAkJCXByaXYtPnBlbmRpbmdfdGlkX3Jfc2VncyArPSByZXEtPnRvdGFsX3NlZ3M7CiAJCQlxcC0+c19udW1fcmRfYXRvbWljICs9IHJlcS0+dG90YWxfc2VnczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3RpZF9yZG1hLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS90aWRfcmRtYS5jCmluZGV4IDYxNDFmNGUuLmI0ZGNjNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3RpZF9yZG1hLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdGlkX3JkbWEuYwpAQCAtMjY0Niw2ICsyNjQ2LDkgQEAgc3RhdGljIGJvb2wgaGFuZGxlX3JlYWRfa2RldGhfZWZsYWdzKHN0cnVjdCBoZmkxX2N0eHRkYXRhICpyY2QsCiAJdTMyIGZwc247CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZxcC0+cl9sb2NrKTsKKwl0cmFjZV9oZmkxX3JzcF9yZWFkX2tkZXRoX2VmbGFncyhxcCwgaWJwc24pOworCXRyYWNlX2hmaTFfc2VuZGVyX3JlYWRfa2RldGhfZWZsYWdzKHFwKTsKKwl0cmFjZV9oZmkxX3RpZF9yZWFkX3NlbmRlcl9rZGV0aF9lZmxhZ3MocXAsIDApOwogCXNwaW5fbG9jaygmcXAtPnNfbG9jayk7CiAJLyogSWYgdGhlIHBzbiBpcyBvdXQgb2YgdmFsaWQgcmFuZ2UsIGRyb3AgdGhlIHBhY2tldCAqLwogCWlmIChjbXBfcHNuKGlicHNuLCBxcC0+c19sYXN0X3BzbikgPCAwIHx8CkBAIC0yNzEwLDYgKzI3MTMsOCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVfcmVhZF9rZGV0aF9lZmxhZ3Moc3RydWN0IGhmaTFfY3R4dGRhdGEgKnJjZCwKIAkJZ290byBzX3VubG9jazsKIAogCXJlcSA9IHdxZV90b190aWRfcmVxKHdxZSk7CisJdHJhY2VfaGZpMV90aWRfcmVxX3JlYWRfa2RldGhfZWZsYWdzKHFwLCAwLCB3cWUtPndyLm9wY29kZSwgd3FlLT5wc24sCisJCQkJCSAgICAgd3FlLT5scHNuLCByZXEpOwogCXN3aXRjaCAocmN2X3R5cGUpIHsKIAljYXNlIFJIRl9SQ1ZfVFlQRV9FWFBFQ1RFRDoKIAkJc3dpdGNoIChydGUpIHsKQEAgLTI3MjQsNiArMjcyOSw5IEBAIHN0YXRpYyBib29sIGhhbmRsZV9yZWFkX2tkZXRoX2VmbGFncyhzdHJ1Y3QgaGZpMV9jdHh0ZGF0YSAqcmNkLAogCQkJICogcGFja2V0cyB0aGF0IGNvdWxkIGJlIHN0aWxsIGluIHRoZSBmYWJyaWMuCiAJCQkgKi8KIAkJCWZsb3cgPSAmcmVxLT5mbG93c1tyZXEtPmNsZWFyX3RhaWxdOworCQkJdHJhY2VfaGZpMV90aWRfZmxvd19yZWFkX2tkZXRoX2VmbGFncyhxcCwKKwkJCQkJCQkgICAgICByZXEtPmNsZWFyX3RhaWwsCisJCQkJCQkJICAgICAgZmxvdyk7CiAJCQlpZiAocHJpdi0+c19mbGFncyAmIEhGSTFfUl9USURfU1dfUFNOKSB7CiAJCQkJZGlmZiA9IGNtcF9wc24ocHNuLAogCQkJCQkgICAgICAgZmxvdy0+Zmxvd19zdGF0ZS5yX25leHRfcHNuKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3RyYWNlX3RpZC5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdHJhY2VfdGlkLmgKaW5kZXggNDM4OGI1OS4uMzQzZmI5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdHJhY2VfdGlkLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdHJhY2VfdGlkLmgKQEAgLTYyNyw2ICs2MjcsMTIgQEAgREVGSU5FX0VWRU5UKC8qIGV2ZW50ICovCiAJVFBfQVJHUyhxcCwgaW5kZXgsIGZsb3cpCiApOwogCitERUZJTkVfRVZFTlQoLyogZXZlbnQgKi8KKwloZmkxX3RpZF9mbG93X3RlbXBsYXRlLCBoZmkxX3RpZF9mbG93X3JlYWRfa2RldGhfZWZsYWdzLAorCVRQX1BST1RPKHN0cnVjdCBydnRfcXAgKnFwLCBpbnQgaW5kZXgsIHN0cnVjdCB0aWRfcmRtYV9mbG93ICpmbG93KSwKKwlUUF9BUkdTKHFwLCBpbmRleCwgZmxvdykKKyk7CisKIERFQ0xBUkVfRVZFTlRfQ0xBU1MoLyogdGlkX25vZGUgKi8KIAloZmkxX3RpZF9ub2RlX3RlbXBsYXRlLAogCVRQX1BST1RPKHN0cnVjdCBydnRfcXAgKnFwLCBjb25zdCBjaGFyICptc2csIHUzMiBpbmRleCwgdTMyIGJhc2UsCkBAIC04NTEsNiArODU3LDEyIEBAIERFRklORV9FVkVOVCgvKiBldmVudCAqLwogCVRQX0FSR1MocXAsIHBzbikKICk7CiAKK0RFRklORV9FVkVOVCgvKiBldmVudCAqLworCWhmaTFfcmVzcG9uZGVyX2luZm9fdGVtcGxhdGUsIGhmaTFfcnNwX3JlYWRfa2RldGhfZWZsYWdzLAorCVRQX1BST1RPKHN0cnVjdCBydnRfcXAgKnFwLCB1MzIgcHNuKSwKKwlUUF9BUkdTKHFwLCBwc24pCispOworCiBERUNMQVJFX0VWRU5UX0NMQVNTKC8qIHNlbmRlcl9pbmZvICovCiAJaGZpMV9zZW5kZXJfaW5mb190ZW1wbGF0ZSwKIAlUUF9QUk9UTyhzdHJ1Y3QgcnZ0X3FwICpxcCksCkBAIC05NTUsNiArOTY3LDEyIEBAIERFRklORV9FVkVOVCgvKiBldmVudCAqLwogCVRQX0FSR1MocXApCiApOwogCitERUZJTkVfRVZFTlQoLyogZXZlbnQgKi8KKwloZmkxX3NlbmRlcl9pbmZvX3RlbXBsYXRlLCBoZmkxX3NlbmRlcl9yZWFkX2tkZXRoX2VmbGFncywKKwlUUF9QUk9UTyhzdHJ1Y3QgcnZ0X3FwICpxcCksCisJVFBfQVJHUyhxcCkKKyk7CisKIERFQ0xBUkVfRVZFTlRfQ0xBU1MoLyogdGlkX3JlYWRfc2VuZGVyICovCiAJaGZpMV90aWRfcmVhZF9zZW5kZXJfdGVtcGxhdGUsCiAJVFBfUFJPVE8oc3RydWN0IHJ2dF9xcCAqcXAsIGNoYXIgbmV3cmVxKSwKQEAgLTEwMTUsNiArMTAzMywxMiBAQCBERUZJTkVfRVZFTlQoLyogZXZlbnQgKi8KIAlUUF9BUkdTKHFwLCBuZXdyZXEpCiApOwogCitERUZJTkVfRVZFTlQoLyogZXZlbnQgKi8KKwloZmkxX3RpZF9yZWFkX3NlbmRlcl90ZW1wbGF0ZSwgaGZpMV90aWRfcmVhZF9zZW5kZXJfa2RldGhfZWZsYWdzLAorCVRQX1BST1RPKHN0cnVjdCBydnRfcXAgKnFwLCBjaGFyIG5ld3JlcSksCisJVFBfQVJHUyhxcCwgbmV3cmVxKQorKTsKKwogREVDTEFSRV9FVkVOVF9DTEFTUygvKiB0aWRfcmRtYV9yZXF1ZXN0ICovCiAJaGZpMV90aWRfcmRtYV9yZXF1ZXN0X3RlbXBsYXRlLAogCVRQX1BST1RPKHN0cnVjdCBydnRfcXAgKnFwLCBjaGFyIG5ld3JlcSwgdTggb3Bjb2RlLCB1MzIgcHNuLCB1MzIgbHBzbiwKQEAgLTEyMTYsNiArMTI0MCwxMyBAQCBERUZJTkVfRVZFTlQoLyogZXZlbnQgKi8KICk7CiAKIERFRklORV9FVkVOVCgvKiBldmVudCAqLworCWhmaTFfdGlkX3JkbWFfcmVxdWVzdF90ZW1wbGF0ZSwgaGZpMV90aWRfcmVxX3JlYWRfa2RldGhfZWZsYWdzLAorCVRQX1BST1RPKHN0cnVjdCBydnRfcXAgKnFwLCBjaGFyIG5ld3JlcSwgdTggb3Bjb2RlLCB1MzIgcHNuLCB1MzIgbHBzbiwKKwkJIHN0cnVjdCB0aWRfcmRtYV9yZXF1ZXN0ICpyZXEpLAorCVRQX0FSR1MocXAsIG5ld3JlcSwgb3Bjb2RlLCBwc24sIGxwc24sIHJlcSkKKyk7CisKK0RFRklORV9FVkVOVCgvKiBldmVudCAqLwogCWhmaTFfdGlkX3JkbWFfcmVxdWVzdF90ZW1wbGF0ZSwgaGZpMV90aWRfcmVxX21ha2VfcmNfYWNrX3dyaXRlLAogCVRQX1BST1RPKHN0cnVjdCBydnRfcXAgKnFwLCBjaGFyIG5ld3JlcSwgdTggb3Bjb2RlLCB1MzIgcHNuLCB1MzIgbHBzbiwKIAkJIHN0cnVjdCB0aWRfcmRtYV9yZXF1ZXN0ICpyZXEpLApAQCAtMTIyOSw2ICsxMjYwLDEzIEBAIERFRklORV9FVkVOVCgvKiBldmVudCAqLwogCVRQX0FSR1MocXAsIG5ld3JlcSwgb3Bjb2RlLCBwc24sIGxwc24sIHJlcSkKICk7CiAKK0RFRklORV9FVkVOVCgvKiBldmVudCAqLworCWhmaTFfdGlkX3JkbWFfcmVxdWVzdF90ZW1wbGF0ZSwgaGZpMV90aWRfcmVxX3VwZGF0ZV9udW1fcmRfYXRvbWljLAorCVRQX1BST1RPKHN0cnVjdCBydnRfcXAgKnFwLCBjaGFyIG5ld3JlcSwgdTggb3Bjb2RlLCB1MzIgcHNuLCB1MzIgbHBzbiwKKwkJIHN0cnVjdCB0aWRfcmRtYV9yZXF1ZXN0ICpyZXEpLAorCVRQX0FSR1MocXAsIG5ld3JlcSwgb3Bjb2RlLCBwc24sIGxwc24sIHJlcSkKKyk7CisKIERFQ0xBUkVfRVZFTlRfQ0xBU1MoLyogcmNfcmN2X2VyciAqLwogCWhmaTFfcmNfcmN2X2Vycl90ZW1wbGF0ZSwKIAlUUF9QUk9UTyhzdHJ1Y3QgcnZ0X3FwICpxcCwgdTMyIG9wY29kZSwgdTMyIHBzbiwgaW50IGRpZmYpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdXNlcl9wYWdlcy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdXNlcl9wYWdlcy5jCmluZGV4IGI4OWE5YjkuLjQ2OWFjYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3VzZXJfcGFnZXMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS91c2VyX3BhZ2VzLmMKQEAgLTExOCwxMCArMTE4LDcgQEAgaW50IGhmaTFfYWNxdWlyZV91c2VyX3BhZ2VzKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIHZhZGRyLCBzaXplX3QgbnAKIHZvaWQgaGZpMV9yZWxlYXNlX3VzZXJfcGFnZXMoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCBwYWdlICoqcCwKIAkJCSAgICAgc2l6ZV90IG5wYWdlcywgYm9vbCBkaXJ0eSkKIHsKLQlpZiAoZGlydHkpCi0JCXB1dF91c2VyX3BhZ2VzX2RpcnR5X2xvY2socCwgbnBhZ2VzKTsKLQllbHNlCi0JCXB1dF91c2VyX3BhZ2VzKHAsIG5wYWdlcyk7CisJcHV0X3VzZXJfcGFnZXNfZGlydHlfbG9jayhwLCBucGFnZXMsIGRpcnR5KTsKIAogCWlmIChtbSkgeyAvKiBkdXJpbmcgY2xvc2UgYWZ0ZXIgc2lnbmFsLCBtbSBjYW4gYmUgTlVMTCAqLwogCQlhdG9taWM2NF9zdWIobnBhZ2VzLCAmbW0tPnBpbm5lZF92bSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS91c2VyX3NkbWEuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3VzZXJfc2RtYS5oCmluZGV4IDRkODUxMGIuLjk5NzJlMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3VzZXJfc2RtYS5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3VzZXJfc2RtYS5oCkBAIC0xMTAsMTIgKzExMCw2IEBAIGVudW0gcGt0X3Ffc2RtYV9zdGF0ZSB7CiAJU0RNQV9QS1RfUV9ERUZFUlJFRCwKIH07CiAKLS8qCi0gKiBNYXhpbXVtIHJldHJ5IGF0dGVtcHRzIHRvIHN1Ym1pdCBhIFRYIHJlcXVlc3QKLSAqIGJlZm9yZSBwdXR0aW5nIHRoZSBwcm9jZXNzIHRvIHNsZWVwLgotICovCi0jZGVmaW5lIE1BWF9ERUZFUl9SRVRSWV9DT1VOVCAxCi0KICNkZWZpbmUgU0RNQV9JT1dBSVRfVElNRU9VVCAxMDAwIC8qIGluIG1pbGxpc2Vjb25kcyAqLwogCiAjZGVmaW5lIFNETUFfREJHKHJlcSwgZm10LCAuLi4pCQkJCSAgICAgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3ZlcmJzLmMKaW5kZXggNjQ2ZjYxNS4uN2JmZjBhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS92ZXJicy5jCkBAIC04NzQsMTYgKzg3NCwxNyBAQCBpbnQgaGZpMV92ZXJic19zZW5kX2RtYShzdHJ1Y3QgcnZ0X3FwICpxcCwgc3RydWN0IGhmaTFfcGt0X3N0YXRlICpwcywKIAkJCWVsc2UKIAkJCQlwYmMgfD0gKGliX2lzX3NjNShzYzUpIDw8IFBCQ19EQ19JTkZPX1NISUZUKTsKIAotCQkJaWYgKHVubGlrZWx5KGhmaTFfZGJnX3Nob3VsZF9mYXVsdF90eChxcCwgcHMtPm9wY29kZSkpKQotCQkJCXBiYyA9IGhmaTFfZmF1bHRfdHgocXAsIHBzLT5vcGNvZGUsIHBiYyk7CiAJCQlwYmMgPSBjcmVhdGVfcGJjKHBwZCwKIAkJCQkJIHBiYywKIAkJCQkJIHFwLT5zcmF0ZV9tYnBzLAogCQkJCQkgdmwsCiAJCQkJCSBwbGVuKTsKIAotCQkJLyogVXBkYXRlIEhDUkMgYmFzZWQgb24gcGFja2V0IG9wY29kZSAqLwotCQkJcGJjID0gdXBkYXRlX2hjcmMocHMtPm9wY29kZSwgcGJjKTsKKwkJCWlmICh1bmxpa2VseShoZmkxX2RiZ19zaG91bGRfZmF1bHRfdHgocXAsIHBzLT5vcGNvZGUpKSkKKwkJCQlwYmMgPSBoZmkxX2ZhdWx0X3R4KHFwLCBwcy0+b3Bjb2RlLCBwYmMpOworCQkJZWxzZQorCQkJCS8qIFVwZGF0ZSBIQ1JDIGJhc2VkIG9uIHBhY2tldCBvcGNvZGUgKi8KKwkJCQlwYmMgPSB1cGRhdGVfaGNyYyhwcy0+b3Bjb2RlLCBwYmMpOwogCQl9CiAJCXR4LT53cWUgPSBxcC0+c193cWU7CiAJCXJldCA9IGJ1aWxkX3ZlcmJzX3R4X2Rlc2ModHgtPnNkZSwgbGVuLCB0eCwgYWhnX2luZm8sIHBiYyk7CkBAIC0xMDMwLDE3ICsxMDMxLDE3IEBAIGludCBoZmkxX3ZlcmJzX3NlbmRfcGlvKHN0cnVjdCBydnRfcXAgKnFwLCBzdHJ1Y3QgaGZpMV9wa3Rfc3RhdGUgKnBzLAogCQllbHNlCiAJCQlwYmMgfD0gKGliX2lzX3NjNShzYzUpIDw8IFBCQ19EQ19JTkZPX1NISUZUKTsKIAorCQlwYmMgPSBjcmVhdGVfcGJjKHBwZCwgcGJjLCBxcC0+c3JhdGVfbWJwcywgdmwsIHBsZW4pOwogCQlpZiAodW5saWtlbHkoaGZpMV9kYmdfc2hvdWxkX2ZhdWx0X3R4KHFwLCBwcy0+b3Bjb2RlKSkpCiAJCQlwYmMgPSBoZmkxX2ZhdWx0X3R4KHFwLCBwcy0+b3Bjb2RlLCBwYmMpOwotCQlwYmMgPSBjcmVhdGVfcGJjKHBwZCwgcGJjLCBxcC0+c3JhdGVfbWJwcywgdmwsIHBsZW4pOwotCi0JCS8qIFVwZGF0ZSBIQ1JDIGJhc2VkIG9uIHBhY2tldCBvcGNvZGUgKi8KLQkJcGJjID0gdXBkYXRlX2hjcmMocHMtPm9wY29kZSwgcGJjKTsKKwkJZWxzZQorCQkJLyogVXBkYXRlIEhDUkMgYmFzZWQgb24gcGFja2V0IG9wY29kZSAqLworCQkJcGJjID0gdXBkYXRlX2hjcmMocHMtPm9wY29kZSwgcGJjKTsKIAl9CiAJaWYgKGNiKQogCQlpb3dhaXRfcGlvX2luYygmcHJpdi0+c19pb3dhaXQpOwogCXBidWYgPSBzY19idWZmZXJfYWxsb2Moc2MsIHBsZW4sIGNiLCBxcCk7Ci0JaWYgKHVubGlrZWx5KElTX0VSUl9PUl9OVUxMKHBidWYpKSkgeworCWlmIChJU19FUlJfT1JfTlVMTChwYnVmKSkgewogCQlpZiAoY2IpCiAJCQl2ZXJic19waW9fY29tcGxldGUocXAsIDApOwogCQlpZiAoSVNfRVJSKHBidWYpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL0tjb25maWcgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL0tjb25maWcKaW5kZXggNTQ3ODIxOS4uZDYwMmI2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9LY29uZmlnCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvS2NvbmZpZwpAQCAtOCw4ICs4LDYgQEAKIAkgIGlzIHVzZWQgaW4gSGlzaWxpY29uIEhpcDA2IGFuZCBtb3JlIGZ1cnRoZXIgSUNUIFNvQyBiYXNlZCBvbgogCSAgcGxhdGZvcm0gZGV2aWNlLgogCi0JICBUbyBjb21waWxlIEhJUDA2IG9yIEhJUDA4IGRyaXZlciBhcyBtb2R1bGUsIGNob29zZSBNIGhlcmUuCi0KIGNvbmZpZyBJTkZJTklCQU5EX0hOU19ISVAwNgogCXRyaXN0YXRlICJIaXNpbGljb24gSGlwMDYgRmFtaWx5IFJvQ0Ugc3VwcG9ydCIKIAlkZXBlbmRzIG9uIElORklOSUJBTkRfSE5TICYmIEhOUyAmJiBITlNfRFNBRiAmJiBITlNfRU5FVApAQCAtMTcsMTUgKzE1LDkgQEAKIAkgIFJvQ0UgZHJpdmVyIHN1cHBvcnQgZm9yIEhpc2lsaWNvbiBSb0NFIGVuZ2luZSBpbiBIaXNpbGljb24gSGlwMDYgYW5kCiAJICBIaXAwNyBTb0MuIFRoZXNlIFJvQ0UgZW5naW5lcyBhcmUgcGxhdGZvcm0gZGV2aWNlcy4KIAotCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciwgY2hvb3NlIFkgaGVyZTogaWYgSU5GSU5JQkFORF9ITlMgaXMgbSwgdGhpcwotCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGhucy1yb2NlLWh3LXYxCi0KIGNvbmZpZyBJTkZJTklCQU5EX0hOU19ISVAwOAogCXRyaXN0YXRlICJIaXNpbGljb24gSGlwMDggRmFtaWx5IFJvQ0Ugc3VwcG9ydCIKIAlkZXBlbmRzIG9uIElORklOSUJBTkRfSE5TICYmIFBDSSAmJiBITlMzCiAJLS0taGVscC0tLQogCSAgUm9DRSBkcml2ZXIgc3VwcG9ydCBmb3IgSGlzaWxpY29uIFJvQ0UgZW5naW5lIGluIEhpc2lsaWNvbiBIaXAwOCBTb0MuCiAJICBUaGUgUm9DRSBlbmdpbmUgaXMgYSBQQ0kgZGV2aWNlLgotCi0JICBUbyBjb21waWxlIHRoaXMgZHJpdmVyLCBjaG9vc2UgWSBoZXJlOiBpZiBJTkZJTklCQU5EX0hOUyBpcyBtLCB0aGlzCi0JICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaG5zLXJvY2UtaHctdjIuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2FoLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2FoLmMKaW5kZXggY2RkMmFjMi4uOTBlMDhjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9haC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYWguYwpAQCAtNjYsMTEgKzY2LDkgQEAgaW50IGhuc19yb2NlX2NyZWF0ZV9haChzdHJ1Y3QgaWJfYWggKmliYWgsIHN0cnVjdCByZG1hX2FoX2F0dHIgKmFoX2F0dHIsCiAJCQkgICAgIEhOU19ST0NFX1ZMQU5fU0xfU0hJRlQ7CiAJfQogCi0JYWgtPmF2LnBvcnRfcGQgPSBjcHVfdG9fbGUzMih0b19ocl9wZChpYmFoLT5wZCktPnBkbiB8Ci0JCQkJICAgICAocmRtYV9haF9nZXRfcG9ydF9udW0oYWhfYXR0cikgPDwKLQkJCQkgICAgIEhOU19ST0NFX1BPUlRfTlVNX1NISUZUKSk7CisJYWgtPmF2LnBvcnQgPSByZG1hX2FoX2dldF9wb3J0X251bShhaF9hdHRyKTsKIAlhaC0+YXYuZ2lkX2luZGV4ID0gZ3JoLT5zZ2lkX2luZGV4OwotCWFoLT5hdi52bGFuID0gY3B1X3RvX2xlMTYodmxhbl90YWcpOworCWFoLT5hdi52bGFuID0gdmxhbl90YWc7CiAJYWgtPmF2LnZsYW5fZW4gPSB2bGFuX2VuOwogCWRldl9kYmcoZGV2LCAiZ2lkX2luZGV4ID0gMHgleCx2bGFuID0gMHgleFxuIiwgYWgtPmF2LmdpZF9pbmRleCwKIAkJYWgtPmF2LnZsYW4pOwpAQCAtNzksOCArNzcsNyBAQCBpbnQgaG5zX3JvY2VfY3JlYXRlX2FoKHN0cnVjdCBpYl9haCAqaWJhaCwgc3RydWN0IHJkbWFfYWhfYXR0ciAqYWhfYXR0ciwKIAkJYWgtPmF2LnN0YXRfcmF0ZSA9IElCX1JBVEVfMTBfR0JQUzsKIAogCW1lbWNweShhaC0+YXYuZGdpZCwgZ3JoLT5kZ2lkLnJhdywgSE5TX1JPQ0VfR0lEX1NJWkUpOwotCWFoLT5hdi5zbF90Y2xhc3NfZmxvd2xhYmVsID0gY3B1X3RvX2xlMzIocmRtYV9haF9nZXRfc2woYWhfYXR0cikgPDwKLQkJCQkJCSBITlNfUk9DRV9TTF9TSElGVCk7CisJYWgtPmF2LnNsID0gcmRtYV9haF9nZXRfc2woYWhfYXR0cik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTkxLDE3ICs4OCwxMSBAQCBpbnQgaG5zX3JvY2VfcXVlcnlfYWgoc3RydWN0IGliX2FoICppYmFoLCBzdHJ1Y3QgcmRtYV9haF9hdHRyICphaF9hdHRyKQogCiAJbWVtc2V0KGFoX2F0dHIsIDAsIHNpemVvZigqYWhfYXR0cikpOwogCi0JcmRtYV9haF9zZXRfc2woYWhfYXR0ciwgKGxlMzJfdG9fY3B1KGFoLT5hdi5zbF90Y2xhc3NfZmxvd2xhYmVsKSA+PgotCQkJCSBITlNfUk9DRV9TTF9TSElGVCkpOwotCXJkbWFfYWhfc2V0X3BvcnRfbnVtKGFoX2F0dHIsIChsZTMyX3RvX2NwdShhaC0+YXYucG9ydF9wZCkgPj4KLQkJCQkgICAgICAgSE5TX1JPQ0VfUE9SVF9OVU1fU0hJRlQpKTsKKwlyZG1hX2FoX3NldF9zbChhaF9hdHRyLCBhaC0+YXYuc2wpOworCXJkbWFfYWhfc2V0X3BvcnRfbnVtKGFoX2F0dHIsIGFoLT5hdi5wb3J0KTsKIAlyZG1hX2FoX3NldF9zdGF0aWNfcmF0ZShhaF9hdHRyLCBhaC0+YXYuc3RhdF9yYXRlKTsKLQlyZG1hX2FoX3NldF9ncmgoYWhfYXR0ciwgTlVMTCwKLQkJCShsZTMyX3RvX2NwdShhaC0+YXYuc2xfdGNsYXNzX2Zsb3dsYWJlbCkgJgotCQkJIEhOU19ST0NFX0ZMT1dfTEFCRUxfTUFTSyksIGFoLT5hdi5naWRfaW5kZXgsCi0JCQlhaC0+YXYuaG9wX2xpbWl0LAotCQkJKGxlMzJfdG9fY3B1KGFoLT5hdi5zbF90Y2xhc3NfZmxvd2xhYmVsKSA+PgotCQkJIEhOU19ST0NFX1RDTEFTU19TSElGVCkpOworCXJkbWFfYWhfc2V0X2dyaChhaF9hdHRyLCBOVUxMLCBhaC0+YXYuZmxvd2xhYmVsLAorCQkJYWgtPmF2LmdpZF9pbmRleCwgYWgtPmF2LmhvcF9saW1pdCwgYWgtPmF2LnRjbGFzcyk7CiAJcmRtYV9haF9zZXRfZGdpZF9yYXcoYWhfYXR0ciwgYWgtPmF2LmRnaWQpOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2NtZC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9jbWQuYwppbmRleCAwY2QwOWJmLi40NTVkNTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2NtZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfY21kLmMKQEAgLTIxMSw3ICsyMTEsNiBAQCBpbnQgaG5zX3JvY2VfY21kX2luaXQoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCW11dGV4X2luaXQoJmhyX2Rldi0+Y21kLmhjcl9tdXRleCk7CiAJc2VtYV9pbml0KCZocl9kZXYtPmNtZC5wb2xsX3NlbSwgMSk7CiAJaHJfZGV2LT5jbWQudXNlX2V2ZW50cyA9IDA7Ci0JaHJfZGV2LT5jbWQudG9nZ2xlID0gMTsKIAlocl9kZXYtPmNtZC5tYXhfY21kcyA9IENNRF9NQVhfTlVNOwogCWhyX2Rldi0+Y21kLnBvb2wgPSBkbWFfcG9vbF9jcmVhdGUoImhuc19yb2NlX2NtZCIsIGRldiwKIAkJCQkJICAgSE5TX1JPQ0VfTUFJTEJPWF9TSVpFLApAQCAtMjUyLDIzICsyNTEsMTUgQEAgaW50IGhuc19yb2NlX2NtZF91c2VfZXZlbnRzKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldikKIAlocl9jbWQtPnRva2VuX21hc2sgPSBDTURfVE9LRU5fTUFTSzsKIAlocl9jbWQtPnVzZV9ldmVudHMgPSAxOwogCi0JZG93bigmaHJfY21kLT5wb2xsX3NlbSk7Ci0KIAlyZXR1cm4gMDsKIH0KIAogdm9pZCBobnNfcm9jZV9jbWRfdXNlX3BvbGxpbmcoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogewogCXN0cnVjdCBobnNfcm9jZV9jbWRxICpocl9jbWQgPSAmaHJfZGV2LT5jbWQ7Ci0JaW50IGk7Ci0KLQlocl9jbWQtPnVzZV9ldmVudHMgPSAwOwotCi0JZm9yIChpID0gMDsgaSA8IGhyX2NtZC0+bWF4X2NtZHM7ICsraSkKLQkJZG93bigmaHJfY21kLT5ldmVudF9zZW0pOwogCiAJa2ZyZWUoaHJfY21kLT5jb250ZXh0KTsKLQl1cCgmaHJfY21kLT5wb2xsX3NlbSk7CisJaHJfY21kLT51c2VfZXZlbnRzID0gMDsKIH0KIAogc3RydWN0IGhuc19yb2NlX2NtZF9tYWlsYm94CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2NxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2NxLmMKaW5kZXggNGU1MGMyMi4uMjI1NDFkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfY3EuYwpAQCAtODMsNyArODMsNiBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3N3Mmh3X2NxKHN0cnVjdCBobnNfcm9jZV9kZXYgKmRldiwKIAogc3RhdGljIGludCBobnNfcm9jZV9jcV9hbGxvYyhzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsIGludCBuZW50LAogCQkJICAgICBzdHJ1Y3QgaG5zX3JvY2VfbXR0ICpocl9tdHQsCi0JCQkgICAgIHN0cnVjdCBobnNfcm9jZV91YXIgKmhyX3VhciwKIAkJCSAgICAgc3RydWN0IGhuc19yb2NlX2NxICpocl9jcSwgaW50IHZlY3RvcikKIHsKIAlzdHJ1Y3QgaG5zX3JvY2VfY21kX21haWxib3ggKm1haWxib3g7CkBAIC0xNTQsNyArMTUzLDYgQEAgc3RhdGljIGludCBobnNfcm9jZV9jcV9hbGxvYyhzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsIGludCBuZW50LAogCiAJaHJfY3EtPmNvbnNfaW5kZXggPSAwOwogCWhyX2NxLT5hcm1fc24gPSAxOwotCWhyX2NxLT51YXIgPSBocl91YXI7CiAKIAlhdG9taWNfc2V0KCZocl9jcS0+cmVmY291bnQsIDEpOwogCWluaXRfY29tcGxldGlvbigmaHJfY3EtPmZyZWUpOwpAQCAtMjk4LDIxICsyOTYsMTI3IEBAIHN0YXRpYyB2b2lkIGhuc19yb2NlX2liX2ZyZWVfY3FfYnVmKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJCSAgJmJ1Zi0+aHJfYnVmKTsKIH0KIAorc3RhdGljIGludCBjcmVhdGVfdXNlcl9jcShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCisJCQkgIHN0cnVjdCBobnNfcm9jZV9jcSAqaHJfY3EsCisJCQkgIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEsCisJCQkgIHN0cnVjdCBobnNfcm9jZV9pYl9jcmVhdGVfY3FfcmVzcCAqcmVzcCwKKwkJCSAgaW50IGNxX2VudHJpZXMpCit7CisJc3RydWN0IGhuc19yb2NlX2liX2NyZWF0ZV9jcSB1Y21kOworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhyX2Rldi0+ZGV2OworCWludCByZXQ7CisJc3RydWN0IGhuc19yb2NlX3Vjb250ZXh0ICpjb250ZXh0ID0gcmRtYV91ZGF0YV90b19kcnZfY29udGV4dCgKKwkJCQkgICB1ZGF0YSwgc3RydWN0IGhuc19yb2NlX3Vjb250ZXh0LCBpYnVjb250ZXh0KTsKKworCWlmIChpYl9jb3B5X2Zyb21fdWRhdGEoJnVjbWQsIHVkYXRhLCBzaXplb2YodWNtZCkpKSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGNvcHlfZnJvbV91ZGF0YS5cbiIpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwkvKiBHZXQgdXNlciBzcGFjZSBhZGRyZXNzLCB3cml0ZSBpdCBpbnRvIG10dCB0YWJsZSAqLworCXJldCA9IGhuc19yb2NlX2liX2dldF9jcV91bWVtKGhyX2RldiwgdWRhdGEsICZocl9jcS0+aHJfYnVmLAorCQkJCSAgICAgICZocl9jcS0+dW1lbSwgdWNtZC5idWZfYWRkciwKKwkJCQkgICAgICBjcV9lbnRyaWVzKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldF9jcV91bWVtLlxuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJaWYgKChocl9kZXYtPmNhcHMuZmxhZ3MgJiBITlNfUk9DRV9DQVBfRkxBR19SRUNPUkRfREIpICYmCisJICAgICh1ZGF0YS0+b3V0bGVuID49IHNpemVvZigqcmVzcCkpKSB7CisJCXJldCA9IGhuc19yb2NlX2RiX21hcF91c2VyKGNvbnRleHQsIHVkYXRhLCB1Y21kLmRiX2FkZHIsCisJCQkJCSAgICZocl9jcS0+ZGIpOworCQlpZiAocmV0KSB7CisJCQlkZXZfZXJyKGRldiwgImNxIHJlY29yZCBkb29yYmVsbCBtYXAgZmFpbGVkIVxuIik7CisJCQlnb3RvIGVycl9tdHQ7CisJCX0KKwkJaHJfY3EtPmRiX2VuID0gMTsKKwkJcmVzcC0+Y2FwX2ZsYWdzIHw9IEhOU19ST0NFX1NVUFBPUlRfQ1FfUkVDT1JEX0RCOworCX0KKworCXJldHVybiAwOworCitlcnJfbXR0OgorCWhuc19yb2NlX210dF9jbGVhbnVwKGhyX2RldiwgJmhyX2NxLT5ocl9idWYuaHJfbXR0KTsKKwlpYl91bWVtX3JlbGVhc2UoaHJfY3EtPnVtZW0pOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBjcmVhdGVfa2VybmVsX2NxKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKKwkJCSAgICBzdHJ1Y3QgaG5zX3JvY2VfY3EgKmhyX2NxLCBpbnQgY3FfZW50cmllcykKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKKwlzdHJ1Y3QgaG5zX3JvY2VfdWFyICp1YXI7CisJaW50IHJldDsKKworCWlmIChocl9kZXYtPmNhcHMuZmxhZ3MgJiBITlNfUk9DRV9DQVBfRkxBR19SRUNPUkRfREIpIHsKKwkJcmV0ID0gaG5zX3JvY2VfYWxsb2NfZGIoaHJfZGV2LCAmaHJfY3EtPmRiLCAxKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJaHJfY3EtPnNldF9jaV9kYiA9IGhyX2NxLT5kYi5kYl9yZWNvcmQ7CisJCSpocl9jcS0+c2V0X2NpX2RiID0gMDsKKwkJaHJfY3EtPmRiX2VuID0gMTsKKwl9CisKKwkvKiBJbml0IG10dCB0YWJsZSBhbmQgd3JpdGUgYnVmZiBhZGRyZXNzIHRvIG10dCB0YWJsZSAqLworCXJldCA9IGhuc19yb2NlX2liX2FsbG9jX2NxX2J1Zihocl9kZXYsICZocl9jcS0+aHJfYnVmLCBjcV9lbnRyaWVzKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFsbG9jX2NxX2J1Zi5cbiIpOworCQlnb3RvIGVycl9kYjsKKwl9CisKKwl1YXIgPSAmaHJfZGV2LT5wcml2X3VhcjsKKwlocl9jcS0+Y3FfZGJfbCA9IGhyX2Rldi0+cmVnX2Jhc2UgKyBocl9kZXYtPm9kYl9vZmZzZXQgKworCQkJIERCX1JFR19PRkZTRVQgKiB1YXItPmluZGV4OworCisJcmV0dXJuIDA7CisKK2Vycl9kYjoKKwlpZiAoaHJfZGV2LT5jYXBzLmZsYWdzICYgSE5TX1JPQ0VfQ0FQX0ZMQUdfUkVDT1JEX0RCKQorCQlobnNfcm9jZV9mcmVlX2RiKGhyX2RldiwgJmhyX2NxLT5kYik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBkZXN0cm95X3VzZXJfY3Eoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAorCQkJICAgIHN0cnVjdCBobnNfcm9jZV9jcSAqaHJfY3EsCisJCQkgICAgc3RydWN0IGliX3VkYXRhICp1ZGF0YSwKKwkJCSAgICBzdHJ1Y3QgaG5zX3JvY2VfaWJfY3JlYXRlX2NxX3Jlc3AgKnJlc3ApCit7CisJc3RydWN0IGhuc19yb2NlX3Vjb250ZXh0ICpjb250ZXh0ID0gcmRtYV91ZGF0YV90b19kcnZfY29udGV4dCgKKwkJCQkgICB1ZGF0YSwgc3RydWN0IGhuc19yb2NlX3Vjb250ZXh0LCBpYnVjb250ZXh0KTsKKworCWlmICgoaHJfZGV2LT5jYXBzLmZsYWdzICYgSE5TX1JPQ0VfQ0FQX0ZMQUdfUkVDT1JEX0RCKSAmJgorCSAgICAodWRhdGEtPm91dGxlbiA+PSBzaXplb2YoKnJlc3ApKSkKKwkJaG5zX3JvY2VfZGJfdW5tYXBfdXNlcihjb250ZXh0LCAmaHJfY3EtPmRiKTsKKworCWhuc19yb2NlX210dF9jbGVhbnVwKGhyX2RldiwgJmhyX2NxLT5ocl9idWYuaHJfbXR0KTsKKwlpYl91bWVtX3JlbGVhc2UoaHJfY3EtPnVtZW0pOworfQorCitzdGF0aWMgdm9pZCBkZXN0cm95X2tlcm5lbF9jcShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCisJCQkgICAgICBzdHJ1Y3QgaG5zX3JvY2VfY3EgKmhyX2NxKQoreworCWhuc19yb2NlX210dF9jbGVhbnVwKGhyX2RldiwgJmhyX2NxLT5ocl9idWYuaHJfbXR0KTsKKwlobnNfcm9jZV9pYl9mcmVlX2NxX2J1Zihocl9kZXYsICZocl9jcS0+aHJfYnVmLCBocl9jcS0+aWJfY3EuY3FlKTsKKworCWlmIChocl9kZXYtPmNhcHMuZmxhZ3MgJiBITlNfUk9DRV9DQVBfRkxBR19SRUNPUkRfREIpCisJCWhuc19yb2NlX2ZyZWVfZGIoaHJfZGV2LCAmaHJfY3EtPmRiKTsKK30KKwogaW50IGhuc19yb2NlX2liX2NyZWF0ZV9jcShzdHJ1Y3QgaWJfY3EgKmliX2NxLAogCQkJICBjb25zdCBzdHJ1Y3QgaWJfY3FfaW5pdF9hdHRyICphdHRyLAogCQkJICBzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhKQogewogCXN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiA9IHRvX2hyX2RldihpYl9jcS0+ZGV2aWNlKTsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKLQlzdHJ1Y3QgaG5zX3JvY2VfaWJfY3JlYXRlX2NxIHVjbWQ7CiAJc3RydWN0IGhuc19yb2NlX2liX2NyZWF0ZV9jcV9yZXNwIHJlc3AgPSB7fTsKIAlzdHJ1Y3QgaG5zX3JvY2VfY3EgKmhyX2NxID0gdG9faHJfY3EoaWJfY3EpOwotCXN0cnVjdCBobnNfcm9jZV91YXIgKnVhciA9IE5VTEw7CiAJaW50IHZlY3RvciA9IGF0dHItPmNvbXBfdmVjdG9yOwogCWludCBjcV9lbnRyaWVzID0gYXR0ci0+Y3FlOwogCWludCByZXQ7Ci0Jc3RydWN0IGhuc19yb2NlX3Vjb250ZXh0ICpjb250ZXh0ID0gcmRtYV91ZGF0YV90b19kcnZfY29udGV4dCgKLQkJdWRhdGEsIHN0cnVjdCBobnNfcm9jZV91Y29udGV4dCwgaWJ1Y29udGV4dCk7CiAKIAlpZiAoY3FfZW50cmllcyA8IDEgfHwgY3FfZW50cmllcyA+IGhyX2Rldi0+Y2Fwcy5tYXhfY3FlcykgewogCQlkZXZfZXJyKGRldiwgIkNyZWF0IENRIGZhaWxlZC4gZW50cmllcz0lZCwgbWF4PSVkXG4iLApAQCAtMzI4LDYxICs0MzIsMjEgQEAgaW50IGhuc19yb2NlX2liX2NyZWF0ZV9jcShzdHJ1Y3QgaWJfY3EgKmliX2NxLAogCXNwaW5fbG9ja19pbml0KCZocl9jcS0+bG9jayk7CiAKIAlpZiAodWRhdGEpIHsKLQkJaWYgKGliX2NvcHlfZnJvbV91ZGF0YSgmdWNtZCwgdWRhdGEsIHNpemVvZih1Y21kKSkpIHsKLQkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGNvcHlfZnJvbV91ZGF0YS5cbiIpOwotCQkJcmV0ID0gLUVGQVVMVDsKLQkJCWdvdG8gZXJyX2NxOwotCQl9Ci0KLQkJLyogR2V0IHVzZXIgc3BhY2UgYWRkcmVzcywgd3JpdGUgaXQgaW50byBtdHQgdGFibGUgKi8KLQkJcmV0ID0gaG5zX3JvY2VfaWJfZ2V0X2NxX3VtZW0oaHJfZGV2LCB1ZGF0YSwgJmhyX2NxLT5ocl9idWYsCi0JCQkJCSAgICAgICZocl9jcS0+dW1lbSwgdWNtZC5idWZfYWRkciwKLQkJCQkJICAgICAgY3FfZW50cmllcyk7CisJCXJldCA9IGNyZWF0ZV91c2VyX2NxKGhyX2RldiwgaHJfY3EsIHVkYXRhLCAmcmVzcCwgY3FfZW50cmllcyk7CiAJCWlmIChyZXQpIHsKLQkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldF9jcV91bWVtLlxuIik7CisJCQlkZXZfZXJyKGRldiwgIkNyZWF0ZSBjcSBmYWlsZWQgaW4gdXNlciBtb2RlIVxuIik7CiAJCQlnb3RvIGVycl9jcTsKIAkJfQotCi0JCWlmICgoaHJfZGV2LT5jYXBzLmZsYWdzICYgSE5TX1JPQ0VfQ0FQX0ZMQUdfUkVDT1JEX0RCKSAmJgotCQkgICAgKHVkYXRhLT5vdXRsZW4gPj0gc2l6ZW9mKHJlc3ApKSkgewotCQkJcmV0ID0gaG5zX3JvY2VfZGJfbWFwX3VzZXIoY29udGV4dCwgdWRhdGEsIHVjbWQuZGJfYWRkciwKLQkJCQkJCSAgICZocl9jcS0+ZGIpOwotCQkJaWYgKHJldCkgewotCQkJCWRldl9lcnIoZGV2LCAiY3EgcmVjb3JkIGRvb3JiZWxsIG1hcCBmYWlsZWQhXG4iKTsKLQkJCQlnb3RvIGVycl9tdHQ7Ci0JCQl9Ci0JCQlocl9jcS0+ZGJfZW4gPSAxOwotCQkJcmVzcC5jYXBfZmxhZ3MgfD0gSE5TX1JPQ0VfU1VQUE9SVF9DUV9SRUNPUkRfREI7Ci0JCX0KLQotCQkvKiBHZXQgdXNlciBzcGFjZSBwYXJhbWV0ZXJzICovCi0JCXVhciA9ICZjb250ZXh0LT51YXI7CiAJfSBlbHNlIHsKLQkJaWYgKGhyX2Rldi0+Y2Fwcy5mbGFncyAmIEhOU19ST0NFX0NBUF9GTEFHX1JFQ09SRF9EQikgewotCQkJcmV0ID0gaG5zX3JvY2VfYWxsb2NfZGIoaHJfZGV2LCAmaHJfY3EtPmRiLCAxKTsKLQkJCWlmIChyZXQpCi0JCQkJZ290byBlcnJfY3E7Ci0KLQkJCWhyX2NxLT5zZXRfY2lfZGIgPSBocl9jcS0+ZGIuZGJfcmVjb3JkOwotCQkJKmhyX2NxLT5zZXRfY2lfZGIgPSAwOwotCQkJaHJfY3EtPmRiX2VuID0gMTsKLQkJfQotCi0JCS8qIEluaXQgbW10IHRhYmxlIGFuZCB3cml0ZSBidWZmIGFkZHJlc3MgdG8gbXR0IHRhYmxlICovCi0JCXJldCA9IGhuc19yb2NlX2liX2FsbG9jX2NxX2J1Zihocl9kZXYsICZocl9jcS0+aHJfYnVmLAotCQkJCQkgICAgICAgY3FfZW50cmllcyk7CisJCXJldCA9IGNyZWF0ZV9rZXJuZWxfY3EoaHJfZGV2LCBocl9jcSwgY3FfZW50cmllcyk7CiAJCWlmIChyZXQpIHsKLQkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFsbG9jX2NxX2J1Zi5cbiIpOwotCQkJZ290byBlcnJfZGI7CisJCQlkZXZfZXJyKGRldiwgIkNyZWF0ZSBjcSBmYWlsZWQgaW4ga2VybmVsIG1vZGUhXG4iKTsKKwkJCWdvdG8gZXJyX2NxOwogCQl9Ci0KLQkJdWFyID0gJmhyX2Rldi0+cHJpdl91YXI7Ci0JCWhyX2NxLT5jcV9kYl9sID0gaHJfZGV2LT5yZWdfYmFzZSArIGhyX2Rldi0+b2RiX29mZnNldCArCi0JCQkJREJfUkVHX09GRlNFVCAqIHVhci0+aW5kZXg7CiAJfQogCiAJLyogQWxsb2NhdGUgY3EgaW5kZXgsIGZpbGwgY3FfY29udGV4dCAqLwotCXJldCA9IGhuc19yb2NlX2NxX2FsbG9jKGhyX2RldiwgY3FfZW50cmllcywgJmhyX2NxLT5ocl9idWYuaHJfbXR0LCB1YXIsCisJcmV0ID0gaG5zX3JvY2VfY3FfYWxsb2MoaHJfZGV2LCBjcV9lbnRyaWVzLCAmaHJfY3EtPmhyX2J1Zi5ocl9tdHQsCiAJCQkJaHJfY3EsIHZlY3Rvcik7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldiwgIkNyZWF0IENRIC5GYWlsZWQgdG8gY3FfYWxsb2MuXG4iKTsKQEAgLTQxNiwyMCArNDgwLDEwIEBAIGludCBobnNfcm9jZV9pYl9jcmVhdGVfY3Eoc3RydWN0IGliX2NxICppYl9jcSwKIAlobnNfcm9jZV9mcmVlX2NxKGhyX2RldiwgaHJfY3EpOwogCiBlcnJfZGJtYXA6Ci0JaWYgKHVkYXRhICYmIChocl9kZXYtPmNhcHMuZmxhZ3MgJiBITlNfUk9DRV9DQVBfRkxBR19SRUNPUkRfREIpICYmCi0JICAgICh1ZGF0YS0+b3V0bGVuID49IHNpemVvZihyZXNwKSkpCi0JCWhuc19yb2NlX2RiX3VubWFwX3VzZXIoY29udGV4dCwgJmhyX2NxLT5kYik7Ci0KLWVycl9tdHQ6Ci0JaG5zX3JvY2VfbXR0X2NsZWFudXAoaHJfZGV2LCAmaHJfY3EtPmhyX2J1Zi5ocl9tdHQpOwotCWliX3VtZW1fcmVsZWFzZShocl9jcS0+dW1lbSk7Ci0JaWYgKCF1ZGF0YSkKLQkJaG5zX3JvY2VfaWJfZnJlZV9jcV9idWYoaHJfZGV2LCAmaHJfY3EtPmhyX2J1ZiwKLQkJCQkJaHJfY3EtPmliX2NxLmNxZSk7Ci0KLWVycl9kYjoKLQlpZiAoIXVkYXRhICYmIChocl9kZXYtPmNhcHMuZmxhZ3MgJiBITlNfUk9DRV9DQVBfRkxBR19SRUNPUkRfREIpKQotCQlobnNfcm9jZV9mcmVlX2RiKGhyX2RldiwgJmhyX2NxLT5kYik7CisJaWYgKHVkYXRhKQorCQlkZXN0cm95X3VzZXJfY3EoaHJfZGV2LCBocl9jcSwgdWRhdGEsICZyZXNwKTsKKwllbHNlCisJCWRlc3Ryb3lfa2VybmVsX2NxKGhyX2RldiwgaHJfY3EpOwogCiBlcnJfY3E6CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfZGV2aWNlLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2RldmljZS5oCmluZGV4IGE1NDhiMjguLjk2ZDEzMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfZGV2aWNlLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9kZXZpY2UuaApAQCAtODQsNyArODQsNiBAQAogI2RlZmluZSBITlNfUk9DRV9DRVFfRU5UUllfU0laRQkJCTB4NAogI2RlZmluZSBITlNfUk9DRV9BRVFfRU5UUllfU0laRQkJCTB4MTAKIAotLyogNEcvNEsgPSAxTSAqLwogI2RlZmluZSBITlNfUk9DRV9TTF9TSElGVAkJCTI4CiAjZGVmaW5lIEhOU19ST0NFX1RDTEFTU19TSElGVAkJCTIwCiAjZGVmaW5lIEhOU19ST0NFX0ZMT1dfTEFCRUxfTUFTSwkJMHhmZmZmZgpAQCAtMTI4LDYgKzEyNywxMSBAQAogI2RlZmluZSBITlNfUk9DRV9JRFhfUVVFX0VOVFJZX1NaCQk0CiAjZGVmaW5lIFNSUV9EQl9SRUcJCQkJMHgyMzAKIAorLyogVGhlIGNoaXAgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNvbnN1bWVyIGluZGV4IGlzIGNhbGN1bGF0ZWQKKyAqIGFjY29yZGluZyB0byB0d2ljZSB0aGUgYWN0dWFsIEVRIGRlcHRoCisgKi8KKyNkZWZpbmUgRVFfREVQVEhfQ09FRkYJCQkJMgorCiBlbnVtIHsKIAlITlNfUk9DRV9TVVBQT1JUX1JRX1JFQ09SRF9EQiA9IDEgPDwgMCwKIAlITlNfUk9DRV9TVVBQT1JUX1NRX1JFQ09SRF9EQiA9IDEgPDwgMSwKQEAgLTMyMiw3ICszMjYsNyBAQCBzdHJ1Y3QgaG5zX3JvY2VfaGVtX3RhYmxlIHsKIAl1bnNpZ25lZCBsb25nCW51bV9oZW07CiAJLyogSEVNIGVudHJ5IHJlY29yZCBvYmogdG90YWwgbnVtICovCiAJdW5zaWduZWQgbG9uZwludW1fb2JqOwotCS8qU2luZ2xlIG9iaiBzaXplICovCisJLyogU2luZ2xlIG9iaiBzaXplICovCiAJdW5zaWduZWQgbG9uZwlvYmpfc2l6ZTsKIAl1bnNpZ25lZCBsb25nCXRhYmxlX2NodW5rX3NpemU7CiAJaW50CQlsb3dtZW07CkBAIC0zNDMsNyArMzQ3LDcgQEAgc3RydWN0IGhuc19yb2NlX210dCB7CiAKIHN0cnVjdCBobnNfcm9jZV9idWZfcmVnaW9uIHsKIAlpbnQgb2Zmc2V0OyAvKiBwYWdlIG9mZnNldCAqLwotCXUzMiBjb3VudDsgLyogcGFnZSBjb3VudCovCisJdTMyIGNvdW50OyAvKiBwYWdlIGNvdW50ICovCiAJaW50IGhvcG51bTsgLyogYWRkcmVzc2luZyBob3AgbnVtICovCiB9OwogCkBAIC0zODQsMjUgKzM4OCwyNSBAQCBzdHJ1Y3QgaG5zX3JvY2VfbXIgewogCXU2NAkJCXNpemU7IC8qIEFkZHJlc3MgcmFuZ2Ugb2YgTVIgKi8KIAl1MzIJCQlrZXk7IC8qIEtleSBvZiBNUiAqLwogCXUzMgkJCXBkOyAgIC8qIFBEIG51bSBvZiBNUiAqLwotCXUzMgkJCWFjY2VzczsvKiBBY2Nlc3MgcGVybWlzc2lvbiBvZiBNUiAqLworCXUzMgkJCWFjY2VzczsJLyogQWNjZXNzIHBlcm1pc3Npb24gb2YgTVIgKi8KIAl1MzIJCQlucGFnZXM7CiAJaW50CQkJZW5hYmxlZDsgLyogTVIncyBhY3RpdmUgc3RhdHVzICovCiAJaW50CQkJdHlwZTsJLyogTVIncyByZWdpc3RlciB0eXBlICovCi0JdTY0CQkJKnBibF9idWY7LyogTVIncyBQQkwgc3BhY2UgKi8KKwl1NjQJCQkqcGJsX2J1ZjsJLyogTVIncyBQQkwgc3BhY2UgKi8KIAlkbWFfYWRkcl90CQlwYmxfZG1hX2FkZHI7CS8qIE1SJ3MgUEJMIHNwYWNlIFBBICovCi0JdTMyCQkJcGJsX3NpemU7LyogUEEgbnVtYmVyIGluIHRoZSBQQkwgKi8KLQl1NjQJCQlwYmxfYmE7LyogcGFnZSB0YWJsZSBhZGRyZXNzICovCi0JdTMyCQkJbDBfY2h1bmtfbGFzdF9udW07LyogTDAgbGFzdCBudW1iZXIgKi8KLQl1MzIJCQlsMV9jaHVua19sYXN0X251bTsvKiBMMSBsYXN0IG51bWJlciAqLwotCXU2NAkJCSoqcGJsX2J0X2wyOy8qIFBCTCBCVCBMMiAqLwotCXU2NAkJCSoqcGJsX2J0X2wxOy8qIFBCTCBCVCBMMSAqLwotCXU2NAkJCSpwYmxfYnRfbDA7LyogUEJMIEJUIEwwICovCi0JZG1hX2FkZHJfdAkJKnBibF9sMl9kbWFfYWRkcjsvKiBQQkwgQlQgTDIgZG1hIGFkZHIgKi8KLQlkbWFfYWRkcl90CQkqcGJsX2wxX2RtYV9hZGRyOy8qIFBCTCBCVCBMMSBkbWEgYWRkciAqLwotCWRtYV9hZGRyX3QJCXBibF9sMF9kbWFfYWRkcjsvKiBQQkwgQlQgTDAgZG1hIGFkZHIgKi8KLQl1MzIJCQlwYmxfYmFfcGdfc3o7LyogQlQgY2h1bmsgcGFnZSBzaXplICovCi0JdTMyCQkJcGJsX2J1Zl9wZ19zejsvKiBidWYgY2h1bmsgcGFnZSBzaXplICovCi0JdTMyCQkJcGJsX2hvcF9udW07LyogbXVsdGktaG9wIG51bWJlciAqLworCXUzMgkJCXBibF9zaXplOwkvKiBQQSBudW1iZXIgaW4gdGhlIFBCTCAqLworCXU2NAkJCXBibF9iYTsJCS8qIHBhZ2UgdGFibGUgYWRkcmVzcyAqLworCXUzMgkJCWwwX2NodW5rX2xhc3RfbnVtOwkvKiBMMCBsYXN0IG51bWJlciAqLworCXUzMgkJCWwxX2NodW5rX2xhc3RfbnVtOwkvKiBMMSBsYXN0IG51bWJlciAqLworCXU2NAkJCSoqcGJsX2J0X2wyOwkvKiBQQkwgQlQgTDIgKi8KKwl1NjQJCQkqKnBibF9idF9sMTsJLyogUEJMIEJUIEwxICovCisJdTY0CQkJKnBibF9idF9sMDsJLyogUEJMIEJUIEwwICovCisJZG1hX2FkZHJfdAkJKnBibF9sMl9kbWFfYWRkcjsJLyogUEJMIEJUIEwyIGRtYSBhZGRyICovCisJZG1hX2FkZHJfdAkJKnBibF9sMV9kbWFfYWRkcjsJLyogUEJMIEJUIEwxIGRtYSBhZGRyICovCisJZG1hX2FkZHJfdAkJcGJsX2wwX2RtYV9hZGRyOwkvKiBQQkwgQlQgTDAgZG1hIGFkZHIgKi8KKwl1MzIJCQlwYmxfYmFfcGdfc3o7CS8qIEJUIGNodW5rIHBhZ2Ugc2l6ZSAqLworCXUzMgkJCXBibF9idWZfcGdfc3o7CS8qIGJ1ZiBjaHVuayBwYWdlIHNpemUgKi8KKwl1MzIJCQlwYmxfaG9wX251bTsJLyogbXVsdGktaG9wIG51bWJlciAqLwogfTsKIAogc3RydWN0IGhuc19yb2NlX21yX3RhYmxlIHsKQEAgLTQyNSwxNiArNDI5LDE2IEBAIHN0cnVjdCBobnNfcm9jZV93cSB7CiAJdTMyCQltYXhfcG9zdDsKIAlpbnQJCW1heF9nczsKIAlpbnQJCW9mZnNldDsKLQlpbnQJCXdxZV9zaGlmdDsvKiBXUUUgc2l6ZSAqLworCWludAkJd3FlX3NoaWZ0OwkvKiBXUUUgc2l6ZSAqLwogCXUzMgkJaGVhZDsKIAl1MzIJCXRhaWw7CiAJdm9pZCBfX2lvbWVtCSpkYl9yZWdfbDsKIH07CiAKIHN0cnVjdCBobnNfcm9jZV9zZ2UgewotCWludAkJc2dlX2NudDsgIC8qIFNHRSBudW0gKi8KKwlpbnQJCXNnZV9jbnQ7CS8qIFNHRSBudW0gKi8KIAlpbnQJCW9mZnNldDsKLQlpbnQJCXNnZV9zaGlmdDsvKiBTR0Ugc2l6ZSAqLworCWludAkJc2dlX3NoaWZ0OwkvKiBTR0Ugc2l6ZSAqLwogfTsKIAogc3RydWN0IGhuc19yb2NlX2J1Zl9saXN0IHsKQEAgLTU2OSwxNCArNTczLDE2IEBAIHN0cnVjdCBobnNfcm9jZV9yYXFfdGFibGUgewogfTsKIAogc3RydWN0IGhuc19yb2NlX2F2IHsKLQlfX2xlMzIgICAgICBwb3J0X3BkOworCXU4ICAgICAgICAgIHBvcnQ7CiAJdTggICAgICAgICAgZ2lkX2luZGV4OwogCXU4ICAgICAgICAgIHN0YXRfcmF0ZTsKIAl1OCAgICAgICAgICBob3BfbGltaXQ7Ci0JX19sZTMyICAgICAgc2xfdGNsYXNzX2Zsb3dsYWJlbDsKKwl1MzIgICAgICAgICBmbG93bGFiZWw7CisJdTggICAgICAgICAgc2w7CisJdTggICAgICAgICAgdGNsYXNzOwogCXU4ICAgICAgICAgIGRnaWRbSE5TX1JPQ0VfR0lEX1NJWkVdOwogCXU4ICAgICAgICAgIG1hY1tFVEhfQUxFTl07Ci0JX19sZTE2ICAgICAgdmxhbjsKKwl1MTYgICAgICAgICB2bGFuOwogCWJvb2wJICAgIHZsYW5fZW47CiB9OwogCkBAIC02MTgsNyArNjI0LDYgQEAgc3RydWN0IGhuc19yb2NlX2NtZHEgewogCSAqIGNsb3NlIGRldmljZSwgc3dpdGNoIGludG8gcG9sbCBtb2RlKG5vbiBldmVudCBtb2RlKQogCSAqLwogCXU4CQkJdXNlX2V2ZW50czsKLQl1OAkJCXRvZ2dsZTsKIH07CiAKIHN0cnVjdCBobnNfcm9jZV9jbWRfbWFpbGJveCB7CkBAIC02NTIsMTAgKzY1Nyw4IEBAIHN0cnVjdCBobnNfcm9jZV9xcCB7CiAJdTgJCQlyZGJfZW47CiAJdTgJCQlzZGJfZW47CiAJdTMyCQkJZG9vcmJlbGxfcXBuOwotCV9fbGUzMgkJCXNxX3NpZ25hbF9iaXRzOworCXUzMgkJCXNxX3NpZ25hbF9iaXRzOwogCXUzMgkJCXNxX25leHRfd3FlOwotCWludAkJCXNxX21heF93cWVzX3Blcl93cjsKLQlpbnQJCQlzcV9zcGFyZV93cWVzOwogCXN0cnVjdCBobnNfcm9jZV93cQlzcTsKIAogCXN0cnVjdCBpYl91bWVtCQkqdW1lbTsKQEAgLTcwOSw3ICs3MTIsNyBAQCBlbnVtIHsKIH07CiAKIHN0cnVjdCBobnNfcm9jZV9jZXFlIHsKLQl1MzIJCQljb21wOworCV9fbGUzMgkJCWNvbXA7CiB9OwogCiBzdHJ1Y3QgaG5zX3JvY2VfYWVxZSB7CkBAIC03NTIsNyArNzU1LDcgQEAgc3RydWN0IGhuc19yb2NlX2VxIHsKIAlzdHJ1Y3QgaG5zX3JvY2VfZGV2CQkqaHJfZGV2OwogCXZvaWQgX19pb21lbQkJCSpkb29yYmVsbDsKIAotCWludAkJCQl0eXBlX2ZsYWc7LyogQWVxOjEgY2VxOjAgKi8KKwlpbnQJCQkJdHlwZV9mbGFnOyAvKiBBZXE6MSBjZXE6MCAqLwogCWludAkJCQllcW47CiAJdTMyCQkJCWVudHJpZXM7CiAJaW50CQkJCWxvZ19lbnRyaWVzOwpAQCAtNzk4LDIyICs4MDEsMjIgQEAgc3RydWN0IGhuc19yb2NlX2NhcHMgewogCWludAkJbG9jYWxfY2FfYWNrX2RlbGF5OwogCWludAkJbnVtX3VhcnM7CiAJdTMyCQlwaHlfbnVtX3VhcnM7Ci0JdTMyCQltYXhfc3Ffc2c7CS8qIDIgKi8KLQl1MzIJCW1heF9zcV9pbmxpbmU7CS8qIDMyICovCi0JdTMyCQltYXhfcnFfc2c7CS8qIDIgKi8KKwl1MzIJCW1heF9zcV9zZzsKKwl1MzIJCW1heF9zcV9pbmxpbmU7CisJdTMyCQltYXhfcnFfc2c7CiAJdTMyCQltYXhfZXh0ZW5kX3NnOwotCWludAkJbnVtX3FwczsJLyogMjU2ayAqLworCWludAkJbnVtX3FwczsKIAlpbnQgICAgICAgICAgICAgcmVzZXJ2ZWRfcXBzOwogCWludAkJbnVtX3FwY190aW1lcjsKIAlpbnQJCW51bV9jcWNfdGltZXI7CiAJdTMyCQltYXhfc3JxX3NnOwogCWludAkJbnVtX3NycXM7Ci0JdTMyCQltYXhfd3FlczsJLyogMTZrICovCisJdTMyCQltYXhfd3FlczsKIAl1MzIJCW1heF9zcnFzOwogCXUzMgkJbWF4X3NycV93cnM7CiAJdTMyCQltYXhfc3JxX3NnZXM7Ci0JdTMyCQltYXhfc3FfZGVzY19zejsJLyogNjQgKi8KLQl1MzIJCW1heF9ycV9kZXNjX3N6OwkvKiA2NCAqLworCXUzMgkJbWF4X3NxX2Rlc2Nfc3o7CisJdTMyCQltYXhfcnFfZGVzY19zejsKIAl1MzIJCW1heF9zcnFfZGVzY19zejsKIAlpbnQJCW1heF9xcF9pbml0X3JkbWE7CiAJaW50CQltYXhfcXBfZGVzdF9yZG1hOwpAQCAtODI0LDcgKzgyNyw3IEBAIHN0cnVjdCBobnNfcm9jZV9jYXBzIHsKIAlpbnQJCXJlc2VydmVkX2NxczsKIAlpbnQJCXJlc2VydmVkX3NycXM7CiAJdTMyCQltYXhfc3Jxd3FlczsKLQlpbnQJCW51bV9hZXFfdmVjdG9yczsJLyogMSAqLworCWludAkJbnVtX2FlcV92ZWN0b3JzOwogCWludAkJbnVtX2NvbXBfdmVjdG9yczsKIAlpbnQJCW51bV9vdGhlcl92ZWN0b3JzOwogCWludAkJbnVtX210cHRzOwpAQCAtOTA1LDcgKzkwOCw3IEBAIHN0cnVjdCBobnNfcm9jZV9jYXBzIHsKIAl1MzIJCXNsX251bTsKIAl1MzIJCXRzcV9idWZfcGdfc3o7CiAJdTMyCQl0cHFfYnVmX3BnX3N6OwotCXUzMgkJY2h1bmtfc3o7CS8qIGNodW5rIHNpemUgaW4gbm9uIG11bHRpaG9wIG1vZGUqLworCXUzMgkJY2h1bmtfc3o7CS8qIGNodW5rIHNpemUgaW4gbm9uIG11bHRpaG9wIG1vZGUgKi8KIAl1NjQJCWZsYWdzOwogfTsKIApAQCAtOTkxLDE2ICs5OTQsNiBAQCBzdHJ1Y3QgaG5zX3JvY2VfaHcgewogCWNvbnN0IHN0cnVjdCBpYl9kZXZpY2Vfb3BzICpobnNfcm9jZV9kZXZfc3JxX29wczsKIH07CiAKLWVudW0gaG5zX3BoeV9zdGF0ZSB7Ci0JSE5TX1JPQ0VfUEhZX1NMRUVQCQk9IDEsCi0JSE5TX1JPQ0VfUEhZX1BPTExJTkcJCT0gMiwKLQlITlNfUk9DRV9QSFlfRElTQUJMRUQJCT0gMywKLQlITlNfUk9DRV9QSFlfVFJBSU5JTkcJCT0gNCwKLQlITlNfUk9DRV9QSFlfTElOS1VQCQk9IDUsCi0JSE5TX1JPQ0VfUEhZX0xJTktFUlIJCT0gNiwKLQlITlNfUk9DRV9QSFlfVEVTVAkJPSA3Ci19OwotCiBzdHJ1Y3QgaG5zX3JvY2VfZGV2IHsKIAlzdHJ1Y3QgaWJfZGV2aWNlCWliX2RldjsKIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICAqcGRldjsKQEAgLTEwNDUsOCArMTAzOCw4IEBAIHN0cnVjdCBobnNfcm9jZV9kZXYgewogCWludAkJCWxvb3BfaWRjOwogCXUzMgkJCXNkYl9vZmZzZXQ7CiAJdTMyCQkJb2RiX29mZnNldDsKLQlkbWFfYWRkcl90CQl0cHRyX2RtYV9hZGRyOyAvKm9ubHkgZm9yIGh3IHYxKi8KLQl1MzIJCQl0cHRyX3NpemU7IC8qb25seSBmb3IgaHcgdjEqLworCWRtYV9hZGRyX3QJCXRwdHJfZG1hX2FkZHI7CS8qIG9ubHkgZm9yIGh3IHYxICovCisJdTMyCQkJdHB0cl9zaXplOwkvKiBvbmx5IGZvciBodyB2MSAqLwogCWNvbnN0IHN0cnVjdCBobnNfcm9jZV9odyAqaHc7CiAJdm9pZAkJCSpwcml2OwogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICppcnFfd29ya3E7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2hlbS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9oZW0uYwppbmRleCBmNGRhNWJkLi5lODIyMTU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2hlbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfaGVtLmMKQEAgLTQxLDI5ICs0MSw1NyBAQAogCiBib29sIGhuc19yb2NlX2NoZWNrX3doZXRoZXJfbWhvcChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsIHUzMiB0eXBlKQogewotCWlmICgoaHJfZGV2LT5jYXBzLnFwY19ob3BfbnVtICYmIHR5cGUgPT0gSEVNX1RZUEVfUVBDKSB8fAotCSAgICAoaHJfZGV2LT5jYXBzLm1wdF9ob3BfbnVtICYmIHR5cGUgPT0gSEVNX1RZUEVfTVRQVCkgfHwKLQkgICAgKGhyX2Rldi0+Y2Fwcy5jcWNfaG9wX251bSAmJiB0eXBlID09IEhFTV9UWVBFX0NRQykgfHwKLQkgICAgKGhyX2Rldi0+Y2Fwcy5zcnFjX2hvcF9udW0gJiYgdHlwZSA9PSBIRU1fVFlQRV9TUlFDKSB8fAotCSAgICAoaHJfZGV2LT5jYXBzLnNjY2NfaG9wX251bSAmJiB0eXBlID09IEhFTV9UWVBFX1NDQ0MpIHx8Ci0JICAgIChocl9kZXYtPmNhcHMucXBjX3RpbWVyX2hvcF9udW0gJiYgdHlwZSA9PSBIRU1fVFlQRV9RUENfVElNRVIpIHx8Ci0JICAgIChocl9kZXYtPmNhcHMuY3FjX3RpbWVyX2hvcF9udW0gJiYgdHlwZSA9PSBIRU1fVFlQRV9DUUNfVElNRVIpIHx8Ci0JICAgIChocl9kZXYtPmNhcHMuY3FlX2hvcF9udW0gJiYgdHlwZSA9PSBIRU1fVFlQRV9DUUUpIHx8Ci0JICAgIChocl9kZXYtPmNhcHMubXR0X2hvcF9udW0gJiYgdHlwZSA9PSBIRU1fVFlQRV9NVFQpIHx8Ci0JICAgIChocl9kZXYtPmNhcHMuc3Jxd3FlX2hvcF9udW0gJiYgdHlwZSA9PSBIRU1fVFlQRV9TUlFXUUUpIHx8Ci0JICAgIChocl9kZXYtPmNhcHMuaWR4X2hvcF9udW0gJiYgdHlwZSA9PSBIRU1fVFlQRV9JRFgpKQotCQlyZXR1cm4gdHJ1ZTsKKwlpbnQgaG9wX251bSA9IDA7CiAKLQlyZXR1cm4gZmFsc2U7CisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBIRU1fVFlQRV9RUEM6CisJCWhvcF9udW0gPSBocl9kZXYtPmNhcHMucXBjX2hvcF9udW07CisJCWJyZWFrOworCWNhc2UgSEVNX1RZUEVfTVRQVDoKKwkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5tcHRfaG9wX251bTsKKwkJYnJlYWs7CisJY2FzZSBIRU1fVFlQRV9DUUM6CisJCWhvcF9udW0gPSBocl9kZXYtPmNhcHMuY3FjX2hvcF9udW07CisJCWJyZWFrOworCWNhc2UgSEVNX1RZUEVfU1JRQzoKKwkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5zcnFjX2hvcF9udW07CisJCWJyZWFrOworCWNhc2UgSEVNX1RZUEVfU0NDQzoKKwkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5zY2NjX2hvcF9udW07CisJCWJyZWFrOworCWNhc2UgSEVNX1RZUEVfUVBDX1RJTUVSOgorCQlob3BfbnVtID0gaHJfZGV2LT5jYXBzLnFwY190aW1lcl9ob3BfbnVtOworCQlicmVhazsKKwljYXNlIEhFTV9UWVBFX0NRQ19USU1FUjoKKwkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5jcWNfdGltZXJfaG9wX251bTsKKwkJYnJlYWs7CisJY2FzZSBIRU1fVFlQRV9DUUU6CisJCWhvcF9udW0gPSBocl9kZXYtPmNhcHMuY3FlX2hvcF9udW07CisJCWJyZWFrOworCWNhc2UgSEVNX1RZUEVfTVRUOgorCQlob3BfbnVtID0gaHJfZGV2LT5jYXBzLm10dF9ob3BfbnVtOworCQlicmVhazsKKwljYXNlIEhFTV9UWVBFX1NSUVdRRToKKwkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5zcnF3cWVfaG9wX251bTsKKwkJYnJlYWs7CisJY2FzZSBIRU1fVFlQRV9JRFg6CisJCWhvcF9udW0gPSBocl9kZXYtPmNhcHMuaWR4X2hvcF9udW07CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gaG9wX251bSA/IHRydWUgOiBmYWxzZTsKIH0KIAogc3RhdGljIGJvb2wgaG5zX3JvY2VfY2hlY2tfaGVtX251bGwoc3RydWN0IGhuc19yb2NlX2hlbSAqKmhlbSwgdTY0IHN0YXJ0X2lkeCwKLQkJCSAgICB1MzIgYnRfY2h1bmtfbnVtKQorCQkJICAgIHUzMiBidF9jaHVua19udW0sIHU2NCBoZW1fbWF4X251bSkKIHsKLQlpbnQgaTsKKwl1NjQgY2hlY2tfbWF4X251bSA9IHN0YXJ0X2lkeCArIGJ0X2NodW5rX251bTsKKwl1NjQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBidF9jaHVua19udW07IGkrKykKLQkJaWYgKGhlbVtzdGFydF9pZHggKyBpXSkKKwlmb3IgKGkgPSBzdGFydF9pZHg7IChpIDwgY2hlY2tfbWF4X251bSkgJiYgKGkgPCBoZW1fbWF4X251bSk7IGkrKykKKwkJaWYgKGhlbVtpXSkKIAkJCXJldHVybiBmYWxzZTsKIAogCXJldHVybiB0cnVlOwpAQCAtOTIsMTcgKzEyMCwxMyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX2dldF9idF9udW0odTMyIHRhYmxlX3R5cGUsIHUzMiBob3BfbnVtKQogCQlyZXR1cm4gMDsKIH0KIAotaW50IGhuc19yb2NlX2NhbGNfaGVtX21ob3Aoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAotCQkJICAgc3RydWN0IGhuc19yb2NlX2hlbV90YWJsZSAqdGFibGUsIHVuc2lnbmVkIGxvbmcgKm9iaiwKLQkJCSAgIHN0cnVjdCBobnNfcm9jZV9oZW1fbWhvcCAqbWhvcCkKK3N0YXRpYyBpbnQgZ2V0X2hlbV90YWJsZV9jb25maWcoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAorCQkJCXN0cnVjdCBobnNfcm9jZV9oZW1fbWhvcCAqbWhvcCwKKwkJCQl1MzIgdHlwZSkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKLQl1MzIgY2h1bmtfYmFfbnVtOwotCXUzMiB0YWJsZV9pZHg7Ci0JdTMyIGJ0X251bTsKLQl1MzIgY2h1bmtfc2l6ZTsKIAotCXN3aXRjaCAodGFibGUtPnR5cGUpIHsKKwlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIEhFTV9UWVBFX1FQQzoKIAkJbWhvcC0+YnVmX2NodW5rX3NpemUgPSAxIDw8IChocl9kZXYtPmNhcHMucXBjX2J1Zl9wZ19zegogCQkJCQkgICAgICsgUEFHRV9TSElGVCk7CkBAIC0xOTMsMTAgKzIxNywyNiBAQCBpbnQgaG5zX3JvY2VfY2FsY19oZW1fbWhvcChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWRldl9lcnIoZGV2LCAiVGFibGUgJWQgbm90IHN1cHBvcnQgbXVsdGktaG9wIGFkZHJlc3NpbmchXG4iLAotCQkJIHRhYmxlLT50eXBlKTsKKwkJCXR5cGUpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwlyZXR1cm4gMDsKK30KKworaW50IGhuc19yb2NlX2NhbGNfaGVtX21ob3Aoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAorCQkJICAgc3RydWN0IGhuc19yb2NlX2hlbV90YWJsZSAqdGFibGUsIHVuc2lnbmVkIGxvbmcgKm9iaiwKKwkJCSAgIHN0cnVjdCBobnNfcm9jZV9oZW1fbWhvcCAqbWhvcCkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKKwl1MzIgY2h1bmtfYmFfbnVtOworCXUzMiB0YWJsZV9pZHg7CisJdTMyIGJ0X251bTsKKwl1MzIgY2h1bmtfc2l6ZTsKKworCWlmIChnZXRfaGVtX3RhYmxlX2NvbmZpZyhocl9kZXYsIG1ob3AsIHRhYmxlLT50eXBlKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlpZiAoIW9iaikKIAkJcmV0dXJuIDA7CiAKQEAgLTMyNCwxMyArMzY0LDEzIEBAIHN0YXRpYyBpbnQgaG5zX3JvY2Vfc2V0X2hlbShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiB7CiAJc3BpbmxvY2tfdCAqbG9jayA9ICZocl9kZXYtPmJ0X2NtZF9sb2NrOwogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhyX2Rldi0+ZGV2OwotCXVuc2lnbmVkIGxvbmcgZW5kID0gMDsKKwlsb25nIGVuZDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBobnNfcm9jZV9oZW1faXRlciBpdGVyOwogCXZvaWQgX19pb21lbSAqYnRfY21kOwotCXUzMiBidF9jbWRfaF92YWwgPSAwOwotCXUzMiBidF9jbWRfdmFsWzJdOwotCXUzMiBidF9jbWRfbCA9IDA7CisJX19sZTMyIGJ0X2NtZF92YWxbMl07CisJX19sZTMyIGJ0X2NtZF9oID0gMDsKKwlfX2xlMzIgYnRfY21kX2wgPSAwOwogCXU2NCBidF9iYSA9IDA7CiAJaW50IHJldCA9IDA7CiAKQEAgLTM0MCwzMCArMzgwLDIwIEBAIHN0YXRpYyBpbnQgaG5zX3JvY2Vfc2V0X2hlbShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAKIAlzd2l0Y2ggKHRhYmxlLT50eXBlKSB7CiAJY2FzZSBIRU1fVFlQRV9RUEM6Ci0JCXJvY2Vfc2V0X2ZpZWxkKGJ0X2NtZF9oX3ZhbCwgUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX01ERl9NLAotCQkJICAgICAgIFJPQ0VFX0JUX0NNRF9IX1JPQ0VFX0JUX0NNRF9NREZfUywgSEVNX1RZUEVfUVBDKTsKLQkJYnJlYWs7CiAJY2FzZSBIRU1fVFlQRV9NVFBUOgotCQlyb2NlX3NldF9maWVsZChidF9jbWRfaF92YWwsIFJPQ0VFX0JUX0NNRF9IX1JPQ0VFX0JUX0NNRF9NREZfTSwKLQkJCSAgICAgICBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfTURGX1MsCi0JCQkgICAgICAgSEVNX1RZUEVfTVRQVCk7Ci0JCWJyZWFrOwogCWNhc2UgSEVNX1RZUEVfQ1FDOgotCQlyb2NlX3NldF9maWVsZChidF9jbWRfaF92YWwsIFJPQ0VFX0JUX0NNRF9IX1JPQ0VFX0JUX0NNRF9NREZfTSwKLQkJCSAgICAgICBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfTURGX1MsIEhFTV9UWVBFX0NRQyk7Ci0JCWJyZWFrOwogCWNhc2UgSEVNX1RZUEVfU1JRQzoKLQkJcm9jZV9zZXRfZmllbGQoYnRfY21kX2hfdmFsLCBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfTURGX00sCi0JCQkgICAgICAgUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX01ERl9TLAotCQkJICAgICAgIEhFTV9UWVBFX1NSUUMpOworCQlyb2NlX3NldF9maWVsZChidF9jbWRfaCwgUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX01ERl9NLAorCQkJUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX01ERl9TLCB0YWJsZS0+dHlwZSk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVybiByZXQ7CiAJfQotCXJvY2Vfc2V0X2ZpZWxkKGJ0X2NtZF9oX3ZhbCwgUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX0lOX01ERl9NLAorCisJcm9jZV9zZXRfZmllbGQoYnRfY21kX2gsIFJPQ0VFX0JUX0NNRF9IX1JPQ0VFX0JUX0NNRF9JTl9NREZfTSwKIAkJICAgICAgIFJPQ0VFX0JUX0NNRF9IX1JPQ0VFX0JUX0NNRF9JTl9NREZfUywgb2JqKTsKLQlyb2NlX3NldF9iaXQoYnRfY21kX2hfdmFsLCBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfUywgMCk7Ci0Jcm9jZV9zZXRfYml0KGJ0X2NtZF9oX3ZhbCwgUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX0hXX1NZTlNfUywgMSk7CisJcm9jZV9zZXRfYml0KGJ0X2NtZF9oLCBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfUywgMCk7CisJcm9jZV9zZXRfYml0KGJ0X2NtZF9oLCBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfSFdfU1lOU19TLCAxKTsKIAogCS8qIEN1cnJlbnRseSBpdGVyIG9ubHkgYSBjaHVuayAqLwogCWZvciAoaG5zX3JvY2VfaGVtX2ZpcnN0KHRhYmxlLT5oZW1baV0sICZpdGVyKTsKQEAgLTM3NSw3ICs0MDUsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3NldF9oZW0oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQlidF9jbWQgPSBocl9kZXYtPnJlZ19iYXNlICsgUk9DRUVfQlRfQ01EX0hfUkVHOwogCiAJCWVuZCA9IEhXX1NZTkNfVElNRU9VVF9NU0VDUzsKLQkJd2hpbGUgKGVuZCkgeworCQl3aGlsZSAoZW5kID4gMCkgewogCQkJaWYgKCEocmVhZGwoYnRfY21kKSA+PiBCVF9DTURfU1lOQ19TSElGVCkpCiAJCQkJYnJlYWs7CiAKQEAgLTM4OSwxMyArNDE5LDEzIEBAIHN0YXRpYyBpbnQgaG5zX3JvY2Vfc2V0X2hlbShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCQlyZXR1cm4gLUVCVVNZOwogCQl9CiAKLQkJYnRfY21kX2wgPSAodTMyKWJ0X2JhOwotCQlyb2NlX3NldF9maWVsZChidF9jbWRfaF92YWwsIFJPQ0VFX0JUX0NNRF9IX1JPQ0VFX0JUX0NNRF9CQV9IX00sCisJCWJ0X2NtZF9sID0gY3B1X3RvX2xlMzIoYnRfYmEpOworCQlyb2NlX3NldF9maWVsZChidF9jbWRfaCwgUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX0JBX0hfTSwKIAkJCSAgICAgICBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfQkFfSF9TLAogCQkJICAgICAgIGJ0X2JhID4+IEJUX0JBX1NISUZUKTsKIAogCQlidF9jbWRfdmFsWzBdID0gYnRfY21kX2w7Ci0JCWJ0X2NtZF92YWxbMV0gPSBidF9jbWRfaF92YWw7CisJCWJ0X2NtZF92YWxbMV0gPSBidF9jbWRfaDsKIAkJaG5zX3JvY2Vfd3JpdGU2NF9rKGJ0X2NtZF92YWwsCiAJCQkJICAgaHJfZGV2LT5yZWdfYmFzZSArIFJPQ0VFX0JUX0NNRF9MX1JFRyk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUobG9jaywgZmxhZ3MpOwpAQCAtNDU3LDYgKzQ4NywxMiBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3RhYmxlX21ob3BfZ2V0KHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJaWYgKHVubGlrZWx5KGhlbV9pZHggPj0gdGFibGUtPm51bV9oZW0pKSB7CisJCWRldl9lcnIoZGV2LCAiVGFibGUgJWQgZXhjZWVkIGhlbSBsaW10IGlkeCA9ICVsbHUsbWF4ID0gJWx1IVxuIiwKKwkJCSAgICAgdGFibGUtPnR5cGUsIGhlbV9pZHgsIHRhYmxlLT5udW1faGVtKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJbXV0ZXhfbG9jaygmdGFibGUtPm11dGV4KTsKIAogCWlmICh0YWJsZS0+aGVtW2hlbV9pZHhdKSB7CkBAIC02OTMsNyArNzI5LDcgQEAgc3RhdGljIHZvaWQgaG5zX3JvY2VfdGFibGVfbWhvcF9wdXQoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCWlmIChjaGVja193aGV0aGVyX2J0X251bV8yKHRhYmxlLT50eXBlLCBob3BfbnVtKSkgewogCQlzdGFydF9pZHggPSBtaG9wLmwwX2lkeCAqIGNodW5rX2JhX251bTsKIAkJaWYgKGhuc19yb2NlX2NoZWNrX2hlbV9udWxsKHRhYmxlLT5oZW0sIHN0YXJ0X2lkeCwKLQkJCQkJICAgIGNodW5rX2JhX251bSkpIHsKKwkJCQkJICAgIGNodW5rX2JhX251bSwgdGFibGUtPm51bV9oZW0pKSB7CiAJCQlpZiAodGFibGUtPnR5cGUgPCBIRU1fVFlQRV9NVFQgJiYKIAkJCSAgICBocl9kZXYtPmh3LT5jbGVhcl9oZW0oaHJfZGV2LCB0YWJsZSwgb2JqLCAwKSkKIAkJCQlkZXZfd2FybihkZXYsICJDbGVhciBIRU0gYmFzZSBhZGRyZXNzIGZhaWxlZC5cbiIpOwpAQCAtNzA3LDcgKzc0Myw3IEBAIHN0YXRpYyB2b2lkIGhuc19yb2NlX3RhYmxlX21ob3BfcHV0KHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJc3RhcnRfaWR4ID0gbWhvcC5sMF9pZHggKiBjaHVua19iYV9udW0gKiBjaHVua19iYV9udW0gKwogCQkJICAgIG1ob3AubDFfaWR4ICogY2h1bmtfYmFfbnVtOwogCQlpZiAoaG5zX3JvY2VfY2hlY2tfaGVtX251bGwodGFibGUtPmhlbSwgc3RhcnRfaWR4LAotCQkJCQkgICAgY2h1bmtfYmFfbnVtKSkgeworCQkJCQkgICAgY2h1bmtfYmFfbnVtLCB0YWJsZS0+bnVtX2hlbSkpIHsKIAkJCWlmIChocl9kZXYtPmh3LT5jbGVhcl9oZW0oaHJfZGV2LCB0YWJsZSwgb2JqLCAxKSkKIAkJCQlkZXZfd2FybihkZXYsICJDbGVhciBIRU0gYmFzZSBhZGRyZXNzIGZhaWxlZC5cbiIpOwogCkBAIC03OTEsNyArODI3LDggQEAgdm9pZCAqaG5zX3JvY2VfdGFibGVfZmluZChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJfSBlbHNlIHsKIAkJdTMyIHNlZ19zaXplID0gNjQ7IC8qIDggYnl0ZXMgcGVyIEJBIGFuZCA4IEJBIHBlciBzZWdtZW50ICovCiAKLQkJaG5zX3JvY2VfY2FsY19oZW1fbWhvcChocl9kZXYsIHRhYmxlLCAmbWhvcF9vYmosICZtaG9wKTsKKwkJaWYgKGhuc19yb2NlX2NhbGNfaGVtX21ob3AoaHJfZGV2LCB0YWJsZSwgJm1ob3Bfb2JqLCAmbWhvcCkpCisJCQlnb3RvIG91dDsKIAkJLyogbXR0IG1ob3AgKi8KIAkJaSA9IG1ob3AubDBfaWR4OwogCQlqID0gbWhvcC5sMV9pZHg7CkBAIC04NDAsMTEgKzg3NywxMyBAQCBpbnQgaG5zX3JvY2VfdGFibGVfZ2V0X3JhbmdlKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIHsKIAlzdHJ1Y3QgaG5zX3JvY2VfaGVtX21ob3AgbWhvcDsKIAl1bnNpZ25lZCBsb25nIGluYyA9IHRhYmxlLT50YWJsZV9jaHVua19zaXplIC8gdGFibGUtPm9ial9zaXplOwotCXVuc2lnbmVkIGxvbmcgaTsKKwl1bnNpZ25lZCBsb25nIGkgPSAwOwogCWludCByZXQ7CiAKIAlpZiAoaG5zX3JvY2VfY2hlY2tfd2hldGhlcl9taG9wKGhyX2RldiwgdGFibGUtPnR5cGUpKSB7Ci0JCWhuc19yb2NlX2NhbGNfaGVtX21ob3AoaHJfZGV2LCB0YWJsZSwgTlVMTCwgJm1ob3ApOworCQlyZXQgPSBobnNfcm9jZV9jYWxjX2hlbV9taG9wKGhyX2RldiwgdGFibGUsIE5VTEwsICZtaG9wKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZmFpbDsKIAkJaW5jID0gbWhvcC5idF9jaHVua19zaXplIC8gdGFibGUtPm9ial9zaXplOwogCX0KIApAQCAtODc0LDcgKzkxMyw4IEBAIHZvaWQgaG5zX3JvY2VfdGFibGVfcHV0X3JhbmdlKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAl1bnNpZ25lZCBsb25nIGk7CiAKIAlpZiAoaG5zX3JvY2VfY2hlY2tfd2hldGhlcl9taG9wKGhyX2RldiwgdGFibGUtPnR5cGUpKSB7Ci0JCWhuc19yb2NlX2NhbGNfaGVtX21ob3AoaHJfZGV2LCB0YWJsZSwgTlVMTCwgJm1ob3ApOworCQlpZiAoaG5zX3JvY2VfY2FsY19oZW1fbWhvcChocl9kZXYsIHRhYmxlLCBOVUxMLCAmbWhvcCkpCisJCQlyZXR1cm47CiAJCWluYyA9IG1ob3AuYnRfY2h1bmtfc2l6ZSAvIHRhYmxlLT5vYmpfc2l6ZTsKIAl9CiAKQEAgLTg4Nyw3ICs5MjcsNiBAQCBpbnQgaG5zX3JvY2VfaW5pdF9oZW1fdGFibGUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQkJICAgIHVuc2lnbmVkIGxvbmcgb2JqX3NpemUsIHVuc2lnbmVkIGxvbmcgbm9iaiwKIAkJCSAgICBpbnQgdXNlX2xvd21lbSkKIHsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKIAl1bnNpZ25lZCBsb25nIG9ial9wZXJfY2h1bms7CiAJdW5zaWduZWQgbG9uZyBudW1faGVtOwogCkBAIC05MDAsOTkgKzkzOSwyMSBAQCBpbnQgaG5zX3JvY2VfaW5pdF9oZW1fdGFibGUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQlpZiAoIXRhYmxlLT5oZW0pCiAJCQlyZXR1cm4gLUVOT01FTTsKIAl9IGVsc2UgeworCQlzdHJ1Y3QgaG5zX3JvY2VfaGVtX21ob3AgbWhvcCA9IHt9OwogCQl1bnNpZ25lZCBsb25nIGJ1Zl9jaHVua19zaXplOwogCQl1bnNpZ25lZCBsb25nIGJ0X2NodW5rX3NpemU7CiAJCXVuc2lnbmVkIGxvbmcgYnRfY2h1bmtfbnVtOwogCQl1bnNpZ25lZCBsb25nIG51bV9idF9sMCA9IDA7CiAJCXUzMiBob3BfbnVtOwogCi0JCXN3aXRjaCAodHlwZSkgewotCQljYXNlIEhFTV9UWVBFX1FQQzoKLQkJCWJ1Zl9jaHVua19zaXplID0gMSA8PCAoaHJfZGV2LT5jYXBzLnFwY19idWZfcGdfc3oKLQkJCQkJKyBQQUdFX1NISUZUKTsKLQkJCWJ0X2NodW5rX3NpemUgPSAxIDw8IChocl9kZXYtPmNhcHMucXBjX2JhX3BnX3N6Ci0JCQkJCSsgUEFHRV9TSElGVCk7Ci0JCQludW1fYnRfbDAgPSBocl9kZXYtPmNhcHMucXBjX2J0X251bTsKLQkJCWhvcF9udW0gPSBocl9kZXYtPmNhcHMucXBjX2hvcF9udW07Ci0JCQlicmVhazsKLQkJY2FzZSBIRU1fVFlQRV9NVFBUOgotCQkJYnVmX2NodW5rX3NpemUgPSAxIDw8IChocl9kZXYtPmNhcHMubXB0X2J1Zl9wZ19zegotCQkJCQkrIFBBR0VfU0hJRlQpOwotCQkJYnRfY2h1bmtfc2l6ZSA9IDEgPDwgKGhyX2Rldi0+Y2Fwcy5tcHRfYmFfcGdfc3oKLQkJCQkJKyBQQUdFX1NISUZUKTsKLQkJCW51bV9idF9sMCA9IGhyX2Rldi0+Y2Fwcy5tcHRfYnRfbnVtOwotCQkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5tcHRfaG9wX251bTsKLQkJCWJyZWFrOwotCQljYXNlIEhFTV9UWVBFX0NRQzoKLQkJCWJ1Zl9jaHVua19zaXplID0gMSA8PCAoaHJfZGV2LT5jYXBzLmNxY19idWZfcGdfc3oKLQkJCQkJKyBQQUdFX1NISUZUKTsKLQkJCWJ0X2NodW5rX3NpemUgPSAxIDw8IChocl9kZXYtPmNhcHMuY3FjX2JhX3BnX3N6Ci0JCQkJCSsgUEFHRV9TSElGVCk7Ci0JCQludW1fYnRfbDAgPSBocl9kZXYtPmNhcHMuY3FjX2J0X251bTsKLQkJCWhvcF9udW0gPSBocl9kZXYtPmNhcHMuY3FjX2hvcF9udW07Ci0JCQlicmVhazsKLQkJY2FzZSBIRU1fVFlQRV9TQ0NDOgotCQkJYnVmX2NodW5rX3NpemUgPSAxIDw8IChocl9kZXYtPmNhcHMuc2NjY19idWZfcGdfc3oKLQkJCQkJKyBQQUdFX1NISUZUKTsKLQkJCWJ0X2NodW5rX3NpemUgPSAxIDw8IChocl9kZXYtPmNhcHMuc2NjY19iYV9wZ19zegotCQkJCQkrIFBBR0VfU0hJRlQpOwotCQkJbnVtX2J0X2wwID0gaHJfZGV2LT5jYXBzLnNjY2NfYnRfbnVtOwotCQkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5zY2NjX2hvcF9udW07Ci0JCQlicmVhazsKLQkJY2FzZSBIRU1fVFlQRV9RUENfVElNRVI6Ci0JCQlidWZfY2h1bmtfc2l6ZSA9IDEgPDwgKGhyX2Rldi0+Y2Fwcy5xcGNfdGltZXJfYnVmX3BnX3N6Ci0JCQkJCSsgUEFHRV9TSElGVCk7Ci0JCQlidF9jaHVua19zaXplID0gMSA8PCAoaHJfZGV2LT5jYXBzLnFwY190aW1lcl9iYV9wZ19zegotCQkJCQkrIFBBR0VfU0hJRlQpOwotCQkJbnVtX2J0X2wwID0gaHJfZGV2LT5jYXBzLnFwY190aW1lcl9idF9udW07Ci0JCQlob3BfbnVtID0gaHJfZGV2LT5jYXBzLnFwY190aW1lcl9ob3BfbnVtOwotCQkJYnJlYWs7Ci0JCWNhc2UgSEVNX1RZUEVfQ1FDX1RJTUVSOgotCQkJYnVmX2NodW5rX3NpemUgPSAxIDw8IChocl9kZXYtPmNhcHMuY3FjX3RpbWVyX2J1Zl9wZ19zegotCQkJCQkrIFBBR0VfU0hJRlQpOwotCQkJYnRfY2h1bmtfc2l6ZSA9IDEgPDwgKGhyX2Rldi0+Y2Fwcy5jcWNfdGltZXJfYmFfcGdfc3oKLQkJCQkJKyBQQUdFX1NISUZUKTsKLQkJCW51bV9idF9sMCA9IGhyX2Rldi0+Y2Fwcy5jcWNfdGltZXJfYnRfbnVtOwotCQkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5jcWNfdGltZXJfaG9wX251bTsKLQkJCWJyZWFrOwotCQljYXNlIEhFTV9UWVBFX1NSUUM6Ci0JCQlidWZfY2h1bmtfc2l6ZSA9IDEgPDwgKGhyX2Rldi0+Y2Fwcy5zcnFjX2J1Zl9wZ19zegotCQkJCQkrIFBBR0VfU0hJRlQpOwotCQkJYnRfY2h1bmtfc2l6ZSA9IDEgPDwgKGhyX2Rldi0+Y2Fwcy5zcnFjX2JhX3BnX3N6Ci0JCQkJCSsgUEFHRV9TSElGVCk7Ci0JCQludW1fYnRfbDAgPSBocl9kZXYtPmNhcHMuc3JxY19idF9udW07Ci0JCQlob3BfbnVtID0gaHJfZGV2LT5jYXBzLnNycWNfaG9wX251bTsKLQkJCWJyZWFrOwotCQljYXNlIEhFTV9UWVBFX01UVDoKLQkJCWJ1Zl9jaHVua19zaXplID0gMSA8PCAoaHJfZGV2LT5jYXBzLm10dF9iYV9wZ19zegotCQkJCQkrIFBBR0VfU0hJRlQpOwotCQkJYnRfY2h1bmtfc2l6ZSA9IGJ1Zl9jaHVua19zaXplOwotCQkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5tdHRfaG9wX251bTsKLQkJCWJyZWFrOwotCQljYXNlIEhFTV9UWVBFX0NRRToKLQkJCWJ1Zl9jaHVua19zaXplID0gMSA8PCAoaHJfZGV2LT5jYXBzLmNxZV9iYV9wZ19zegotCQkJCQkrIFBBR0VfU0hJRlQpOwotCQkJYnRfY2h1bmtfc2l6ZSA9IGJ1Zl9jaHVua19zaXplOwotCQkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5jcWVfaG9wX251bTsKLQkJCWJyZWFrOwotCQljYXNlIEhFTV9UWVBFX1NSUVdRRToKLQkJCWJ1Zl9jaHVua19zaXplID0gMSA8PCAoaHJfZGV2LT5jYXBzLnNycXdxZV9iYV9wZ19zegotCQkJCQkrIFBBR0VfU0hJRlQpOwotCQkJYnRfY2h1bmtfc2l6ZSA9IGJ1Zl9jaHVua19zaXplOwotCQkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5zcnF3cWVfaG9wX251bTsKLQkJCWJyZWFrOwotCQljYXNlIEhFTV9UWVBFX0lEWDoKLQkJCWJ1Zl9jaHVua19zaXplID0gMSA8PCAoaHJfZGV2LT5jYXBzLmlkeF9iYV9wZ19zegotCQkJCQkrIFBBR0VfU0hJRlQpOwotCQkJYnRfY2h1bmtfc2l6ZSA9IGJ1Zl9jaHVua19zaXplOwotCQkJaG9wX251bSA9IGhyX2Rldi0+Y2Fwcy5pZHhfaG9wX251bTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJZGV2X2VycihkZXYsCi0JCQkgICJUYWJsZSAlZCBub3Qgc3VwcG9ydCB0byBpbml0IGhlbSB0YWJsZSBoZXJlIVxuIiwKLQkJCSAgdHlwZSk7CisJCWlmIChnZXRfaGVtX3RhYmxlX2NvbmZpZyhocl9kZXYsICZtaG9wLCB0eXBlKSkKIAkJCXJldHVybiAtRUlOVkFMOwotCQl9CisKKwkJYnVmX2NodW5rX3NpemUgPSBtaG9wLmJ1Zl9jaHVua19zaXplOworCQlidF9jaHVua19zaXplID0gbWhvcC5idF9jaHVua19zaXplOworCQludW1fYnRfbDAgPSBtaG9wLmJhX2wwX251bTsKKwkJaG9wX251bSA9IG1ob3AuaG9wX251bTsKKwogCQlvYmpfcGVyX2NodW5rID0gYnVmX2NodW5rX3NpemUgLyBvYmpfc2l6ZTsKIAkJbnVtX2hlbSA9IChub2JqICsgb2JqX3Blcl9jaHVuayAtIDEpIC8gb2JqX3Blcl9jaHVuazsKIAkJYnRfY2h1bmtfbnVtID0gYnRfY2h1bmtfc2l6ZSAvIEJBX0JZVEVfTEVOOwpAQCAtMTA3NSw3ICsxMDM2LDggQEAgc3RhdGljIHZvaWQgaG5zX3JvY2VfY2xlYW51cF9taG9wX2hlbV90YWJsZShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJaW50IGk7CiAJdTY0IG9iajsKIAotCWhuc19yb2NlX2NhbGNfaGVtX21ob3AoaHJfZGV2LCB0YWJsZSwgTlVMTCwgJm1ob3ApOworCWlmIChobnNfcm9jZV9jYWxjX2hlbV9taG9wKGhyX2RldiwgdGFibGUsIE5VTEwsICZtaG9wKSkKKwkJcmV0dXJuOwogCWJ1Zl9jaHVua19zaXplID0gdGFibGUtPnR5cGUgPCBIRU1fVFlQRV9NVFQgPyBtaG9wLmJ1Zl9jaHVua19zaXplIDoKIAkJCQkJbWhvcC5idF9jaHVua19zaXplOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2hlbS5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9oZW0uaAppbmRleCBmMWNjYjhmLi44Njc4MzI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2hlbS5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfaGVtLmgKQEAgLTEwMiw5ICsxMDIsOSBAQCBzdHJ1Y3QgaG5zX3JvY2VfaGVtX21ob3AgewogCXUzMglidWZfY2h1bmtfc2l6ZTsKIAl1MzIJYnRfY2h1bmtfc2l6ZTsKIAl1MzIJYmFfbDBfbnVtOwotCXUzMglsMF9pZHg7LyogbGV2ZWwgMCBiYXNlIGFkZHJlc3MgdGFibGUgaW5kZXggKi8KLQl1MzIJbDFfaWR4Oy8qIGxldmVsIDEgYmFzZSBhZGRyZXNzIHRhYmxlIGluZGV4ICovCi0JdTMyCWwyX2lkeDsvKiBsZXZlbCAyIGJhc2UgYWRkcmVzcyB0YWJsZSBpbmRleCAqLworCXUzMglsMF9pZHg7IC8qIGxldmVsIDAgYmFzZSBhZGRyZXNzIHRhYmxlIGluZGV4ICovCisJdTMyCWwxX2lkeDsgLyogbGV2ZWwgMSBiYXNlIGFkZHJlc3MgdGFibGUgaW5kZXggKi8KKwl1MzIJbDJfaWR4OyAvKiBsZXZlbCAyIGJhc2UgYWRkcmVzcyB0YWJsZSBpbmRleCAqLwogfTsKIAogdm9pZCBobnNfcm9jZV9mcmVlX2hlbShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsIHN0cnVjdCBobnNfcm9jZV9oZW0gKmhlbSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2h3X3YxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2h3X3YxLmMKaW5kZXggMTQxMjA1ZS4uNWY3NGJmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9od192MS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfaHdfdjEuYwpAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YxX3Bvc3Rfc2VuZChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJaW50IHBzX29wY29kZSA9IDAsIGkgPSAwOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSAwOwogCXZvaWQgKndxZSA9IE5VTEw7Ci0JdTMyIGRvb3JiZWxsWzJdOworCV9fbGUzMiBkb29yYmVsbFsyXTsKIAlpbnQgbnJlcSA9IDA7CiAJdTMyIGluZCA9IDA7CiAJaW50IHJldCA9IDA7CkBAIC0xNzUsMTMgKzE3NSwxMSBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YxX3Bvc3Rfc2VuZChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJCQlyb2NlX3NldF9maWVsZCh1ZF9zcV93cWUtPnUzMl8zNiwKIAkJCQkgICAgICAgVURfU0VORF9XUUVfVTMyXzM2X0ZMT1dfTEFCRUxfTSwKIAkJCQkgICAgICAgVURfU0VORF9XUUVfVTMyXzM2X0ZMT1dfTEFCRUxfUywKLQkJCQkgICAgICAgYWgtPmF2LnNsX3RjbGFzc19mbG93bGFiZWwgJgotCQkJCSAgICAgICBITlNfUk9DRV9GTE9XX0xBQkVMX01BU0spOworCQkJCSAgICAgICBhaC0+YXYuZmxvd2xhYmVsKTsKIAkJCXJvY2Vfc2V0X2ZpZWxkKHVkX3NxX3dxZS0+dTMyXzM2LAogCQkJCSAgICAgIFVEX1NFTkRfV1FFX1UzMl8zNl9QUklPUklUWV9NLAogCQkJCSAgICAgIFVEX1NFTkRfV1FFX1UzMl8zNl9QUklPUklUWV9TLAotCQkJCSAgICAgIGxlMzJfdG9fY3B1KGFoLT5hdi5zbF90Y2xhc3NfZmxvd2xhYmVsKSA+PgotCQkJCSAgICAgIEhOU19ST0NFX1NMX1NISUZUKTsKKwkJCQkgICAgICBhaC0+YXYuc2wpOwogCQkJcm9jZV9zZXRfZmllbGQodWRfc3Ffd3FlLT51MzJfMzYsCiAJCQkJICAgICAgIFVEX1NFTkRfV1FFX1UzMl8zNl9TR0lEX0lOREVYX00sCiAJCQkJICAgICAgIFVEX1NFTkRfV1FFX1UzMl8zNl9TR0lEX0lOREVYX1MsCkBAIC0xOTUsOCArMTkzLDcgQEAgc3RhdGljIGludCBobnNfcm9jZV92MV9wb3N0X3NlbmQoc3RydWN0IGliX3FwICppYnFwLAogCQkJcm9jZV9zZXRfZmllbGQodWRfc3Ffd3FlLT51MzJfNDAsCiAJCQkJICAgICAgIFVEX1NFTkRfV1FFX1UzMl80MF9UUkFGRklDX0NMQVNTX00sCiAJCQkJICAgICAgIFVEX1NFTkRfV1FFX1UzMl80MF9UUkFGRklDX0NMQVNTX1MsCi0JCQkJICAgICAgIGFoLT5hdi5zbF90Y2xhc3NfZmxvd2xhYmVsID4+Ci0JCQkJICAgICAgIEhOU19ST0NFX1RDTEFTU19TSElGVCk7CisJCQkJICAgICAgIGFoLT5hdi50Y2xhc3MpOwogCiAJCQltZW1jcHkoJnVkX3NxX3dxZS0+ZGdpZFswXSwgJmFoLT5hdi5kZ2lkWzBdLCBHSURfTEVOKTsKIApAQCAtMzM1LDEwICszMzIsMTAgQEAgc3RhdGljIGludCBobnNfcm9jZV92MV9wb3N0X3NlbmQoc3RydWN0IGliX3FwICppYnFwLAogCQkJICAgICAgIFNRX0RPT1JCRUxMX1UzMl84X1FQTl9TLCBxcC0+ZG9vcmJlbGxfcXBuKTsKIAkJcm9jZV9zZXRfYml0KHNxX2RiLnUzMl84LCBTUV9ET09SQkVMTF9IV19TWU5DX1MsIDEpOwogCi0JCWRvb3JiZWxsWzBdID0gbGUzMl90b19jcHUoc3FfZGIudTMyXzQpOwotCQlkb29yYmVsbFsxXSA9IGxlMzJfdG9fY3B1KHNxX2RiLnUzMl84KTsKKwkJZG9vcmJlbGxbMF0gPSBzcV9kYi51MzJfNDsKKwkJZG9vcmJlbGxbMV0gPSBzcV9kYi51MzJfODsKIAotCQlobnNfcm9jZV93cml0ZTY0X2soKF9fbGUzMiAqKWRvb3JiZWxsLCBxcC0+c3EuZGJfcmVnX2wpOworCQlobnNfcm9jZV93cml0ZTY0X2soZG9vcmJlbGwsIHFwLT5zcS5kYl9yZWdfbCk7CiAJCXFwLT5zcV9uZXh0X3dxZSA9IGluZDsKIAl9CiAKQEAgLTM2Myw3ICszNjAsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YxX3Bvc3RfcmVjdihzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2ID0gdG9faHJfZGV2KGlicXAtPmRldmljZSk7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJmhyX2Rldi0+cGRldi0+ZGV2OwogCXN0cnVjdCBobnNfcm9jZV9ycV9kYiBycV9kYjsKLQl1aW50MzJfdCBkb29yYmVsbFsyXSA9IHswfTsKKwlfX2xlMzIgZG9vcmJlbGxbMl0gPSB7MH07CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmaHJfcXAtPnJxLmxvY2ssIGZsYWdzKTsKIAlpbmQgPSBocl9xcC0+cnEuaGVhZCAmIChocl9xcC0+cnEud3FlX2NudCAtIDEpOwpAQCAtNDM3LDExICs0MzQsMTAgQEAgc3RhdGljIGludCBobnNfcm9jZV92MV9wb3N0X3JlY3Yoc3RydWN0IGliX3FwICppYnFwLAogCQkJcm9jZV9zZXRfYml0KHJxX2RiLnUzMl84LCBSUV9ET09SQkVMTF9VMzJfOF9IV19TWU5DX1MsCiAJCQkJICAgICAxKTsKIAotCQkJZG9vcmJlbGxbMF0gPSBsZTMyX3RvX2NwdShycV9kYi51MzJfNCk7Ci0JCQlkb29yYmVsbFsxXSA9IGxlMzJfdG9fY3B1KHJxX2RiLnUzMl84KTsKKwkJCWRvb3JiZWxsWzBdID0gcnFfZGIudTMyXzQ7CisJCQlkb29yYmVsbFsxXSA9IHJxX2RiLnUzMl84OwogCi0JCQlobnNfcm9jZV93cml0ZTY0X2soKF9fbGUzMiAqKWRvb3JiZWxsLAotCQkJCQkgICBocl9xcC0+cnEuZGJfcmVnX2wpOworCQkJaG5zX3JvY2Vfd3JpdGU2NF9rKGRvb3JiZWxsLCBocl9xcC0+cnEuZGJfcmVnX2wpOwogCQl9CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmhyX3FwLT5ycS5sb2NrLCBmbGFncyk7CkBAIC03MTUsNyArNzExLDcgQEAgc3RhdGljIGludCBobnNfcm9jZV92MV9yc3ZfbHBfcXAoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCXN0cnVjdCBpYl9jcSAqY3E7CiAJc3RydWN0IGliX3BkICpwZDsKIAl1bmlvbiBpYl9naWQgZGdpZDsKLQl1NjQgc3VibmV0X3ByZWZpeDsKKwlfX2JlNjQgc3VibmV0X3ByZWZpeDsKIAlpbnQgYXR0cl9tYXNrID0gMDsKIAlpbnQgcmV0OwogCWludCBpLCBqOwpAQCAtOTcxLDcgKzk2Nyw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjFfcmVjcmVhdGVfbHBfcXAoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCXN0cnVjdCBobnNfcm9jZV9mcmVlX21yICpmcmVlX21yOwogCXN0cnVjdCBobnNfcm9jZV92MV9wcml2ICpwcml2OwogCXN0cnVjdCBjb21wbGV0aW9uIGNvbXA7Ci0JdW5zaWduZWQgbG9uZyBlbmQgPSBITlNfUk9DRV9WMV9SRUNSRUFURV9MUF9RUF9USU1FT1VUX01TRUNTOworCWxvbmcgZW5kID0gSE5TX1JPQ0VfVjFfUkVDUkVBVEVfTFBfUVBfVElNRU9VVF9NU0VDUzsKIAogCXByaXYgPSAoc3RydWN0IGhuc19yb2NlX3YxX3ByaXYgKilocl9kZXYtPnByaXY7CiAJZnJlZV9tciA9ICZwcml2LT5mcmVlX21yOwpAQCAtOTkxLDcgKzk4Nyw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjFfcmVjcmVhdGVfbHBfcXAoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCiAJcXVldWVfd29yayhmcmVlX21yLT5mcmVlX21yX3dxLCAmKGxwX3FwX3dvcmstPndvcmspKTsKIAotCXdoaWxlIChlbmQpIHsKKwl3aGlsZSAoZW5kID4gMCkgewogCQlpZiAodHJ5X3dhaXRfZm9yX2NvbXBsZXRpb24oJmNvbXApKQogCQkJcmV0dXJuIDA7CiAJCW1zbGVlcChITlNfUk9DRV9WMV9SRUNSRUFURV9MUF9RUF9XQUlUX1ZBTFVFKTsKQEAgLTExMDksNyArMTEwNSw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjFfZGVyZWdfbXIoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCXN0cnVjdCBobnNfcm9jZV9mcmVlX21yICpmcmVlX21yOwogCXN0cnVjdCBobnNfcm9jZV92MV9wcml2ICpwcml2OwogCXN0cnVjdCBjb21wbGV0aW9uIGNvbXA7Ci0JdW5zaWduZWQgbG9uZyBlbmQgPSBITlNfUk9DRV9WMV9GUkVFX01SX1RJTUVPVVRfTVNFQ1M7CisJbG9uZyBlbmQgPSBITlNfUk9DRV9WMV9GUkVFX01SX1RJTUVPVVRfTVNFQ1M7CiAJdW5zaWduZWQgbG9uZyBzdGFydCA9IGppZmZpZXM7CiAJaW50IG5wYWdlczsKIAlpbnQgcmV0ID0gMDsKQEAgLTExMzksNyArMTEzNSw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjFfZGVyZWdfbXIoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCiAJcXVldWVfd29yayhmcmVlX21yLT5mcmVlX21yX3dxLCAmKG1yX3dvcmstPndvcmspKTsKIAotCXdoaWxlIChlbmQpIHsKKwl3aGlsZSAoZW5kID4gMCkgewogCQlpZiAodHJ5X3dhaXRfZm9yX2NvbXBsZXRpb24oJmNvbXApKQogCQkJZ290byBmcmVlX21yOwogCQltc2xlZXAoSE5TX1JPQ0VfVjFfRlJFRV9NUl9XQUlUX1ZBTFVFKTsKQEAgLTIxNjUsNyArMjE2MSw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjFfcmVxX25vdGlmeV9jcShzdHJ1Y3QgaWJfY3EgKmliY3EsCiB7CiAJc3RydWN0IGhuc19yb2NlX2NxICpocl9jcSA9IHRvX2hyX2NxKGliY3EpOwogCXUzMiBub3RpZmljYXRpb25fZmxhZzsKLQlfX2xlMzIgZG9vcmJlbGxbMl07CisJX19sZTMyIGRvb3JiZWxsWzJdID0ge307CiAKIAlub3RpZmljYXRpb25fZmxhZyA9IChmbGFncyAmIElCX0NRX1NPTElDSVRFRF9NQVNLKSA9PQogCQkJICAgIElCX0NRX1NPTElDSVRFRCA/IENRX0RCX1JFUV9OT1QgOiBDUV9EQl9SRVFfTk9UX1NPTDsKQEAgLTI0MzAsNyArMjQyNiw4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjFfY2xlYXJfaGVtKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmaHJfZGV2LT5wZGV2LT5kZXY7CiAJc3RydWN0IGhuc19yb2NlX3YxX3ByaXYgKnByaXY7Ci0JdW5zaWduZWQgbG9uZyBlbmQgPSAwLCBmbGFncyA9IDA7CisJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7CisJbG9uZyBlbmQgPSBIV19TWU5DX1RJTUVPVVRfTVNFQ1M7CiAJX19sZTMyIGJ0X2NtZF92YWxbMl0gPSB7MH07CiAJdm9pZCBfX2lvbWVtICpidF9jbWQ7CiAJdTY0IGJ0X2JhID0gMDsKQEAgLTI0MzksMTggKzI0MzYsMTIgQEAgc3RhdGljIGludCBobnNfcm9jZV92MV9jbGVhcl9oZW0oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCiAJc3dpdGNoICh0YWJsZS0+dHlwZSkgewogCWNhc2UgSEVNX1RZUEVfUVBDOgotCQlyb2NlX3NldF9maWVsZChidF9jbWRfdmFsWzFdLCBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfTURGX00sCi0JCQlST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfTURGX1MsIEhFTV9UWVBFX1FQQyk7CiAJCWJ0X2JhID0gcHJpdi0+YnRfdGFibGUucXBjX2J1Zi5tYXAgPj4gMTI7CiAJCWJyZWFrOwogCWNhc2UgSEVNX1RZUEVfTVRQVDoKLQkJcm9jZV9zZXRfZmllbGQoYnRfY21kX3ZhbFsxXSwgUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX01ERl9NLAotCQkJUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX01ERl9TLCBIRU1fVFlQRV9NVFBUKTsKIAkJYnRfYmEgPSBwcml2LT5idF90YWJsZS5tdHB0X2J1Zi5tYXAgPj4gMTI7CiAJCWJyZWFrOwogCWNhc2UgSEVNX1RZUEVfQ1FDOgotCQlyb2NlX3NldF9maWVsZChidF9jbWRfdmFsWzFdLCBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfTURGX00sCi0JCQlST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfTURGX1MsIEhFTV9UWVBFX0NRQyk7CiAJCWJ0X2JhID0gcHJpdi0+YnRfdGFibGUuY3FjX2J1Zi5tYXAgPj4gMTI7CiAJCWJyZWFrOwogCWNhc2UgSEVNX1RZUEVfU1JRQzoKQEAgLTI0NTksNiArMjQ1MCw4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjFfY2xlYXJfaGVtKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAlkZWZhdWx0OgogCQlyZXR1cm4gMDsKIAl9CisJcm9jZV9zZXRfZmllbGQoYnRfY21kX3ZhbFsxXSwgUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX01ERl9NLAorCQkJUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX01ERl9TLCB0YWJsZS0+dHlwZSk7CiAJcm9jZV9zZXRfZmllbGQoYnRfY21kX3ZhbFsxXSwgUk9DRUVfQlRfQ01EX0hfUk9DRUVfQlRfQ01EX0lOX01ERl9NLAogCQlST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfSU5fTURGX1MsIG9iaik7CiAJcm9jZV9zZXRfYml0KGJ0X2NtZF92YWxbMV0sIFJPQ0VFX0JUX0NNRF9IX1JPQ0VFX0JUX0NNRF9TLCAwKTsKQEAgLTI0NjgsNyArMjQ2MSw2IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjFfY2xlYXJfaGVtKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAogCWJ0X2NtZCA9IGhyX2Rldi0+cmVnX2Jhc2UgKyBST0NFRV9CVF9DTURfSF9SRUc7CiAKLQllbmQgPSBIV19TWU5DX1RJTUVPVVRfTVNFQ1M7CiAJd2hpbGUgKDEpIHsKIAkJaWYgKHJlYWRsKGJ0X2NtZCkgPj4gQlRfQ01EX1NZTkNfU0hJRlQpIHsKIAkJCWlmICghZW5kKSB7CkBAIC0yNDg0LDcgKzI0NzYsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YxX2NsZWFyX2hlbShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCWVuZCAtPSBIV19TWU5DX1NMRUVQX1RJTUVfSU5URVJWQUw7CiAJfQogCi0JYnRfY21kX3ZhbFswXSA9IChfX2xlMzIpYnRfYmE7CisJYnRfY21kX3ZhbFswXSA9IGNwdV90b19sZTMyKGJ0X2JhKTsKIAlyb2NlX3NldF9maWVsZChidF9jbWRfdmFsWzFdLCBST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfQkFfSF9NLAogCQlST0NFRV9CVF9DTURfSF9ST0NFRV9CVF9DTURfQkFfSF9TLCBidF9iYSA+PiAzMik7CiAJaG5zX3JvY2Vfd3JpdGU2NF9rKGJ0X2NtZF92YWwsIGhyX2Rldi0+cmVnX2Jhc2UgKyBST0NFRV9CVF9DTURfTF9SRUcpOwpAQCAtMjYyNyw3ICsyNjE5LDcgQEAgc3RhdGljIGludCBobnNfcm9jZV92MV9tX3NxcChzdHJ1Y3QgaWJfcXAgKmlicXAsIGNvbnN0IHN0cnVjdCBpYl9xcF9hdHRyICphdHRyLAogCQkJICAgICAgIFFQMUNfQllURVNfMTZfUE9SVF9OVU1fUywgaHJfcXAtPnBoeV9wb3J0KTsKIAkJcm9jZV9zZXRfYml0KGNvbnRleHQtPnFwMWNfYnl0ZXNfMTYsCiAJCQkgICAgIFFQMUNfQllURVNfMTZfU0lHTkFMSU5HX1RZUEVfUywKLQkJCSAgICAgbGUzMl90b19jcHUoaHJfcXAtPnNxX3NpZ25hbF9iaXRzKSk7CisJCQkgICAgIGhyX3FwLT5zcV9zaWduYWxfYml0cyk7CiAJCXJvY2Vfc2V0X2JpdChjb250ZXh0LT5xcDFjX2J5dGVzXzE2LCBRUDFDX0JZVEVTXzE2X1JRX0JBX0ZMR19TLAogCQkJICAgICAxKTsKIAkJcm9jZV9zZXRfYml0KGNvbnRleHQtPnFwMWNfYnl0ZXNfMTYsIFFQMUNfQllURVNfMTZfU1FfQkFfRkxHX1MsCkBAIC0yOTMzLDcgKzI5MjUsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YxX21fcXAoc3RydWN0IGliX3FwICppYnFwLCBjb25zdCBzdHJ1Y3QgaWJfcXBfYXR0ciAqYXR0ciwKIAkJCSAgICAgMSk7CiAJCXJvY2Vfc2V0X2JpdChjb250ZXh0LT5xcGNfYnl0ZXNfMzIsCiAJCQkgICAgIFFQX0NPTlRFWFRfUVBDX0JZVEVfMzJfU0lHTkFMSU5HX1RZUEVfUywKLQkJCSAgICAgbGUzMl90b19jcHUoaHJfcXAtPnNxX3NpZ25hbF9iaXRzKSk7CisJCQkgICAgIGhyX3FwLT5zcV9zaWduYWxfYml0cyk7CiAKIAkJcG9ydCA9IChhdHRyX21hc2sgJiBJQl9RUF9QT1JUKSA/IChhdHRyLT5wb3J0X251bSAtIDEpIDoKIAkJCWhyX3FwLT5wb3J0OwpAQCAtMzU3OCw3ICszNTcwLDcgQEAgc3RhdGljIGludCBobnNfcm9jZV92MV9xX3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwgc3RydWN0IGliX3FwX2F0dHIgKnFwX2F0dHIsCiAJcXBfYXR0ci0+cmV0cnlfY250ID0gcm9jZV9nZXRfZmllbGQoY29udGV4dC0+cXBjX2J5dGVzXzE0OCwKIAkJCSAgICAgUVBfQ09OVEVYVF9RUENfQllURVNfMTQ4X1JFVFJZX0NPVU5UX00sCiAJCQkgICAgIFFQX0NPTlRFWFRfUVBDX0JZVEVTXzE0OF9SRVRSWV9DT1VOVF9TKTsKLQlxcF9hdHRyLT5ybnJfcmV0cnkgPSAodTgpY29udGV4dC0+cm5yX3JldHJ5OworCXFwX2F0dHItPnJucl9yZXRyeSA9ICh1OClsZTMyX3RvX2NwdShjb250ZXh0LT5ybnJfcmV0cnkpOwogCiBkb25lOgogCXFwX2F0dHItPmN1cl9xcF9zdGF0ZSA9IHFwX2F0dHItPnFwX3N0YXRlOwpAQCAtNDAyMSw3ICs0MDEzLDggQEAgc3RhdGljIGludCBobnNfcm9jZV92MV9jZXFfaW50KHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJKytlcS0+Y29uc19pbmRleDsKIAkJY2VxZXNfZm91bmQgPSAxOwogCi0JCWlmIChlcS0+Y29uc19pbmRleCA+IDIgKiBocl9kZXYtPmNhcHMuY2VxZV9kZXB0aCAtIDEpIHsKKwkJaWYgKGVxLT5jb25zX2luZGV4ID4KKwkJICAgIEVRX0RFUFRIX0NPRUZGICogaHJfZGV2LT5jYXBzLmNlcWVfZGVwdGggLSAxKSB7CiAJCQlkZXZfd2FybigmZXEtPmhyX2Rldi0+cGRldi0+ZGV2LAogCQkJCSJjb25zX2luZGV4IG92ZXJmbG93LCBzZXQgYmFjayB0byAwLlxuIik7CiAJCQllcS0+Y29uc19pbmRleCA9IDA7CkBAIC00NTE4LDcgKzQ1MTEsNiBAQCBzdGF0aWMgaW50IGhuc19yb2NlX2dldF9jZmcoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSBOVUxMOwogCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYgPSBOVUxMOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbmV0X25vZGU7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7CiAJaW50IHBvcnRfY250ID0gMDsKIAl1OCBwaHlfcG9ydDsKIAlpbnQgcmV0OwpAQCAtNDU1Nyw4ICs0NTQ5LDcgQEAgc3RhdGljIGludCBobnNfcm9jZV9nZXRfY2ZnKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldikKIAl9CiAKIAkvKiBnZXQgdGhlIG1hcHBlZCByZWdpc3RlciBiYXNlIGFkZHJlc3MgKi8KLQlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UoaHJfZGV2LT5wZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JaHJfZGV2LT5yZWdfYmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7CisJaHJfZGV2LT5yZWdfYmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShocl9kZXYtPnBkZXYsIDApOwogCWlmIChJU19FUlIoaHJfZGV2LT5yZWdfYmFzZSkpCiAJCXJldHVybiBQVFJfRVJSKGhyX2Rldi0+cmVnX2Jhc2UpOwogCkBAIC00NjMzLDEwICs0NjI0LDggQEAgc3RhdGljIGludCBobnNfcm9jZV9nZXRfY2ZnKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldikKIAkvKiBmZXRjaCB0aGUgaW50ZXJydXB0IG51bWJlcnMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgSE5TX1JPQ0VfVjFfTUFYX0lSUV9OVU07IGkrKykgewogCQlocl9kZXYtPmlycVtpXSA9IHBsYXRmb3JtX2dldF9pcnEoaHJfZGV2LT5wZGV2LCBpKTsKLQkJaWYgKGhyX2Rldi0+aXJxW2ldIDw9IDApIHsKLQkJCWRldl9lcnIoZGV2LCAicGxhdGZvcm0gZ2V0IG9mIGlycVs9JWRdIGZhaWxlZCFcbiIsIGkpOworCQlpZiAoaHJfZGV2LT5pcnFbaV0gPD0gMCkKIAkJCXJldHVybiAtRUlOVkFMOwotCQl9CiAJfQogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2h3X3YyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2h3X3YyLmMKaW5kZXggYjc2ZTNiZS4uN2E4OWQ2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9od192Mi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfaHdfdjIuYwpAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfcG9zdF9zZW5kKHN0cnVjdCBpYl9xcCAqaWJxcCwKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKIAlzdHJ1Y3QgaG5zX3JvY2VfdjJfZGIgc3FfZGI7CiAJc3RydWN0IGliX3FwX2F0dHIgYXR0cjsKLQl1bnNpZ25lZCBpbnQgc2dlX2luZCA9IDA7CisJdW5zaWduZWQgaW50IHNnZV9pbmQ7CiAJdW5zaWduZWQgaW50IG93bmVyX2JpdDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXVuc2lnbmVkIGludCBpbmQ7CkBAIC0zOTcsMTggKzM5NywxNSBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX3Bvc3Rfc2VuZChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJCQlyb2NlX3NldF9maWVsZCh1ZF9zcV93cWUtPmJ5dGVfMzYsCiAJCQkJICAgICAgIFYyX1VEX1NFTkRfV1FFX0JZVEVfMzZfVENMQVNTX00sCiAJCQkJICAgICAgIFYyX1VEX1NFTkRfV1FFX0JZVEVfMzZfVENMQVNTX1MsCi0JCQkJICAgICAgIGFoLT5hdi5zbF90Y2xhc3NfZmxvd2xhYmVsID4+Ci0JCQkJICAgICAgIEhOU19ST0NFX1RDTEFTU19TSElGVCk7CisJCQkJICAgICAgIGFoLT5hdi50Y2xhc3MpOwogCQkJcm9jZV9zZXRfZmllbGQodWRfc3Ffd3FlLT5ieXRlXzQwLAogCQkJCSAgICAgICBWMl9VRF9TRU5EX1dRRV9CWVRFXzQwX0ZMT1dfTEFCRUxfTSwKIAkJCQkgICAgICAgVjJfVURfU0VORF9XUUVfQllURV80MF9GTE9XX0xBQkVMX1MsCi0JCQkJICAgICAgIGFoLT5hdi5zbF90Y2xhc3NfZmxvd2xhYmVsICYKLQkJCQkgICAgICAgSE5TX1JPQ0VfRkxPV19MQUJFTF9NQVNLKTsKKwkJCQkgICAgICAgYWgtPmF2LmZsb3dsYWJlbCk7CiAJCQlyb2NlX3NldF9maWVsZCh1ZF9zcV93cWUtPmJ5dGVfNDAsCiAJCQkJICAgICAgIFYyX1VEX1NFTkRfV1FFX0JZVEVfNDBfU0xfTSwKIAkJCQkgICAgICAgVjJfVURfU0VORF9XUUVfQllURV80MF9TTF9TLAotCQkJCSAgICAgIGxlMzJfdG9fY3B1KGFoLT5hdi5zbF90Y2xhc3NfZmxvd2xhYmVsKSA+PgotCQkJCSAgICAgIEhOU19ST0NFX1NMX1NISUZUKTsKKwkJCQkgICAgICAgYWgtPmF2LnNsKTsKIAkJCXJvY2Vfc2V0X2ZpZWxkKHVkX3NxX3dxZS0+Ynl0ZV80MCwKIAkJCQkgICAgICAgVjJfVURfU0VORF9XUUVfQllURV80MF9QT1JUTl9NLAogCQkJCSAgICAgICBWMl9VRF9TRU5EX1dRRV9CWVRFXzQwX1BPUlROX1MsCkBAIC04ODcsOCArODg0LDcgQEAgc3RhdGljIHZvaWQgaG5zX3JvY2VfY21xX2luaXRfcmVncyhzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsIGJvb2wgcmluZ190eXBlKQogCQlyb2NlX3dyaXRlKGhyX2RldiwgUk9DRUVfVFhfQ01RX0JBU0VBRERSX0hfUkVHLAogCQkJICAgdXBwZXJfMzJfYml0cyhkbWEpKTsKIAkJcm9jZV93cml0ZShocl9kZXYsIFJPQ0VFX1RYX0NNUV9ERVBUSF9SRUcsCi0JCQkgIChyaW5nLT5kZXNjX251bSA+PiBITlNfUk9DRV9DTVFfREVTQ19OVU1fUykgfAotCQkJICAgSE5TX1JPQ0VfQ01RX0VOQUJMRSk7CisJCQkgICByaW5nLT5kZXNjX251bSA+PiBITlNfUk9DRV9DTVFfREVTQ19OVU1fUyk7CiAJCXJvY2Vfd3JpdGUoaHJfZGV2LCBST0NFRV9UWF9DTVFfSEVBRF9SRUcsIDApOwogCQlyb2NlX3dyaXRlKGhyX2RldiwgUk9DRUVfVFhfQ01RX1RBSUxfUkVHLCAwKTsKIAl9IGVsc2UgewpAQCAtODk2LDggKzg5Miw3IEBAIHN0YXRpYyB2b2lkIGhuc19yb2NlX2NtcV9pbml0X3JlZ3Moc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LCBib29sIHJpbmdfdHlwZSkKIAkJcm9jZV93cml0ZShocl9kZXYsIFJPQ0VFX1JYX0NNUV9CQVNFQUREUl9IX1JFRywKIAkJCSAgIHVwcGVyXzMyX2JpdHMoZG1hKSk7CiAJCXJvY2Vfd3JpdGUoaHJfZGV2LCBST0NFRV9SWF9DTVFfREVQVEhfUkVHLAotCQkJICAocmluZy0+ZGVzY19udW0gPj4gSE5TX1JPQ0VfQ01RX0RFU0NfTlVNX1MpIHwKLQkJCSAgIEhOU19ST0NFX0NNUV9FTkFCTEUpOworCQkJICAgcmluZy0+ZGVzY19udW0gPj4gSE5TX1JPQ0VfQ01RX0RFU0NfTlVNX1MpOwogCQlyb2NlX3dyaXRlKGhyX2RldiwgUk9DRUVfUlhfQ01RX0hFQURfUkVHLCAwKTsKIAkJcm9jZV93cml0ZShocl9kZXYsIFJPQ0VFX1JYX0NNUV9UQUlMX1JFRywgMCk7CiAJfQpAQCAtMTA0NCw3ICsxMDM5LDcgQEAgc3RhdGljIGludCBfX2huc19yb2NlX2NtcV9zZW5kKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkgKiBJZiB0aGUgY29tbWFuZCBpcyBzeW5jLCB3YWl0IGZvciB0aGUgZmlybXdhcmUgdG8gd3JpdGUgYmFjaywKIAkgKiBpZiBtdWx0aSBkZXNjcmlwdG9ycyB0byBiZSBzZW50LCB1c2UgdGhlIGZpcnN0IG9uZSB0byBjaGVjawogCSAqLwotCWlmICgoZGVzYy0+ZmxhZykgJiBITlNfUk9DRV9DTURfRkxBR19OT19JTlRSKSB7CisJaWYgKGxlMTZfdG9fY3B1KGRlc2MtPmZsYWcpICYgSE5TX1JPQ0VfQ01EX0ZMQUdfTk9fSU5UUikgewogCQlkbyB7CiAJCQlpZiAoaG5zX3JvY2VfY21xX2NzcV9kb25lKGhyX2RldikpCiAJCQkJYnJlYWs7CkBAIC0xMDYxLDcgKzEwNTYsNyBAQCBzdGF0aWMgaW50IF9faG5zX3JvY2VfY21xX3NlbmQoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQkJZGVzY190b191c2UgPSAmY3NxLT5kZXNjW250Y107CiAJCQlkZXNjW2hhbmRsZV0gPSAqZGVzY190b191c2U7CiAJCQlkZXZfZGJnKGhyX2Rldi0+ZGV2LCAiR2V0IGNtcSBkZXNjOlxuIik7Ci0JCQlkZXNjX3JldCA9IGRlc2NbaGFuZGxlXS5yZXR2YWw7CisJCQlkZXNjX3JldCA9IGxlMTZfdG9fY3B1KGRlc2NbaGFuZGxlXS5yZXR2YWwpOwogCQkJaWYgKGRlc2NfcmV0ID09IENNRF9FWEVDX1NVQ0NFU1MpCiAJCQkJcmV0ID0gMDsKIAkJCWVsc2UKQEAgLTExMjQsMzIgKzExMTksMTI0IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfY21xX3F1ZXJ5X2h3X2luZm8oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCQlyZXR1cm4gcmV0OwogCiAJcmVzcCA9IChzdHJ1Y3QgaG5zX3JvY2VfcXVlcnlfdmVyc2lvbiAqKWRlc2MuZGF0YTsKLQlocl9kZXYtPmh3X3JldiA9IGxlMzJfdG9fY3B1KHJlc3AtPnJvY2VlX2h3X3ZlcnNpb24pOworCWhyX2Rldi0+aHdfcmV2ID0gbGUxNl90b19jcHUocmVzcC0+cm9jZWVfaHdfdmVyc2lvbik7CiAJaHJfZGV2LT52ZW5kb3JfaWQgPSBocl9kZXYtPnBjaV9kZXYtPnZlbmRvcjsKIAogCXJldHVybiAwOwogfQogCitzdGF0aWMgYm9vbCBobnNfcm9jZV9mdW5jX2Nscl9jaGtfcnN0KHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldikKK3sKKwlzdHJ1Y3QgaG5zX3JvY2VfdjJfcHJpdiAqcHJpdiA9IChzdHJ1Y3QgaG5zX3JvY2VfdjJfcHJpdiAqKWhyX2Rldi0+cHJpdjsKKwlzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUgPSBwcml2LT5oYW5kbGU7CisJY29uc3Qgc3RydWN0IGhuYWUzX2FlX29wcyAqb3BzID0gaGFuZGxlLT5hZV9hbGdvLT5vcHM7CisJdW5zaWduZWQgbG9uZyByZXNldF9jbnQ7CisJYm9vbCBzd19yZXNldHRpbmc7CisJYm9vbCBod19yZXNldHRpbmc7CisKKwlyZXNldF9jbnQgPSBvcHMtPmFlX2Rldl9yZXNldF9jbnQoaGFuZGxlKTsKKwlod19yZXNldHRpbmcgPSBvcHMtPmdldF9od19yZXNldF9zdGF0KGhhbmRsZSk7CisJc3dfcmVzZXR0aW5nID0gb3BzLT5hZV9kZXZfcmVzZXR0aW5nKGhhbmRsZSk7CisKKwlpZiAocmVzZXRfY250ICE9IGhyX2Rldi0+cmVzZXRfY250IHx8IGh3X3Jlc2V0dGluZyB8fCBzd19yZXNldHRpbmcpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBobnNfcm9jZV9mdW5jX2Nscl9yc3RfcHJjKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwgaW50IHJldHZhbCwKKwkJCQkgICAgICBpbnQgZmxhZykKK3sKKwlzdHJ1Y3QgaG5zX3JvY2VfdjJfcHJpdiAqcHJpdiA9IChzdHJ1Y3QgaG5zX3JvY2VfdjJfcHJpdiAqKWhyX2Rldi0+cHJpdjsKKwlzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUgPSBwcml2LT5oYW5kbGU7CisJY29uc3Qgc3RydWN0IGhuYWUzX2FlX29wcyAqb3BzID0gaGFuZGxlLT5hZV9hbGdvLT5vcHM7CisJdW5zaWduZWQgbG9uZyBpbnN0YW5jZV9zdGFnZTsKKwl1bnNpZ25lZCBsb25nIHJlc2V0X2NudDsKKwl1bnNpZ25lZCBsb25nIGVuZDsKKwlib29sIHN3X3Jlc2V0dGluZzsKKwlib29sIGh3X3Jlc2V0dGluZzsKKworCWluc3RhbmNlX3N0YWdlID0gaGFuZGxlLT5yaW5mby5pbnN0YW5jZV9zdGF0ZTsKKwlyZXNldF9jbnQgPSBvcHMtPmFlX2Rldl9yZXNldF9jbnQoaGFuZGxlKTsKKwlod19yZXNldHRpbmcgPSBvcHMtPmdldF9od19yZXNldF9zdGF0KGhhbmRsZSk7CisJc3dfcmVzZXR0aW5nID0gb3BzLT5hZV9kZXZfcmVzZXR0aW5nKGhhbmRsZSk7CisKKwlpZiAocmVzZXRfY250ICE9IGhyX2Rldi0+cmVzZXRfY250KSB7CisJCWhyX2Rldi0+ZGlzX2RiID0gdHJ1ZTsKKwkJaHJfZGV2LT5pc19yZXNldCA9IHRydWU7CisJCWRldl9pbmZvKGhyX2Rldi0+ZGV2LCAiRnVuYyBjbGVhciBzdWNjZXNzIGFmdGVyIHJlc2V0LlxuIik7CisJfSBlbHNlIGlmIChod19yZXNldHRpbmcpIHsKKwkJaHJfZGV2LT5kaXNfZGIgPSB0cnVlOworCisJCWRldl93YXJuKGhyX2Rldi0+ZGV2LAorCQkJICJGdW5jIGNsZWFyIGlzIHBlbmRpbmcsIGRldmljZSBpbiByZXNldHRpbmcgc3RhdGUuXG4iKTsKKwkJZW5kID0gSE5TX1JPQ0VfVjJfSFdfUlNUX1RJTUVPVVQ7CisJCXdoaWxlIChlbmQpIHsKKwkJCWlmICghb3BzLT5nZXRfaHdfcmVzZXRfc3RhdChoYW5kbGUpKSB7CisJCQkJaHJfZGV2LT5pc19yZXNldCA9IHRydWU7CisJCQkJZGV2X2luZm8oaHJfZGV2LT5kZXYsCisJCQkJCSAiRnVuYyBjbGVhciBzdWNjZXNzIGFmdGVyIHJlc2V0LlxuIik7CisJCQkJcmV0dXJuOworCQkJfQorCQkJbXNsZWVwKEhOU19ST0NFX1YyX0hXX1JTVF9DT01QTEVUSU9OX1dBSVQpOworCQkJZW5kIC09IEhOU19ST0NFX1YyX0hXX1JTVF9DT01QTEVUSU9OX1dBSVQ7CisJCX0KKworCQlkZXZfd2Fybihocl9kZXYtPmRldiwgIkZ1bmMgY2xlYXIgZmFpbGVkLlxuIik7CisJfSBlbHNlIGlmIChzd19yZXNldHRpbmcgJiYgaW5zdGFuY2Vfc3RhZ2UgPT0gSE5TX1JPQ0VfU1RBVEVfSU5JVCkgeworCQlocl9kZXYtPmRpc19kYiA9IHRydWU7CisKKwkJZGV2X3dhcm4oaHJfZGV2LT5kZXYsCisJCQkgIkZ1bmMgY2xlYXIgaXMgcGVuZGluZywgZGV2aWNlIGluIHJlc2V0dGluZyBzdGF0ZS5cbiIpOworCQllbmQgPSBITlNfUk9DRV9WMl9IV19SU1RfVElNRU9VVDsKKwkJd2hpbGUgKGVuZCkgeworCQkJaWYgKG9wcy0+YWVfZGV2X3Jlc2V0X2NudChoYW5kbGUpICE9CisJCQkgICAgaHJfZGV2LT5yZXNldF9jbnQpIHsKKwkJCQlocl9kZXYtPmlzX3Jlc2V0ID0gdHJ1ZTsKKwkJCQlkZXZfaW5mbyhocl9kZXYtPmRldiwKKwkJCQkJICJGdW5jIGNsZWFyIHN1Y2Nlc3MgYWZ0ZXIgc3cgcmVzZXRcbiIpOworCQkJCXJldHVybjsKKwkJCX0KKwkJCW1zbGVlcChITlNfUk9DRV9WMl9IV19SU1RfQ09NUExFVElPTl9XQUlUKTsKKwkJCWVuZCAtPSBITlNfUk9DRV9WMl9IV19SU1RfQ09NUExFVElPTl9XQUlUOworCQl9CisKKwkJZGV2X3dhcm4oaHJfZGV2LT5kZXYsICJGdW5jIGNsZWFyIGZhaWxlZCBiZWNhdXNlIG9mIHVuZmluaXNoZWQgc3cgcmVzZXRcbiIpOworCX0gZWxzZSB7CisJCWlmIChyZXR2YWwgJiYgIWZsYWcpCisJCQlkZXZfd2Fybihocl9kZXYtPmRldiwKKwkJCQkgIkZ1bmMgY2xlYXIgcmVhZCBmYWlsZWQsIHJldCA9ICVkLlxuIiwgcmV0dmFsKTsKKworCQlkZXZfd2Fybihocl9kZXYtPmRldiwgIkZ1bmMgY2xlYXIgZmFpbGVkLlxuIik7CisJfQorfQogc3RhdGljIHZvaWQgaG5zX3JvY2VfZnVuY3Rpb25fY2xlYXIoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogeworCWJvb2wgZmNscl93cml0ZV9mYWlsX2ZsYWcgPSBmYWxzZTsKIAlzdHJ1Y3QgaG5zX3JvY2VfZnVuY19jbGVhciAqcmVzcDsKIAlzdHJ1Y3QgaG5zX3JvY2VfY21xX2Rlc2MgZGVzYzsKIAl1bnNpZ25lZCBsb25nIGVuZDsKLQlpbnQgcmV0OworCWludCByZXQgPSAwOworCisJaWYgKGhuc19yb2NlX2Z1bmNfY2xyX2Noa19yc3QoaHJfZGV2KSkKKwkJZ290byBvdXQ7CiAKIAlobnNfcm9jZV9jbXFfc2V0dXBfYmFzaWNfZGVzYygmZGVzYywgSE5TX1JPQ0VfT1BDX0ZVTkNfQ0xFQVIsIGZhbHNlKTsKIAlyZXNwID0gKHN0cnVjdCBobnNfcm9jZV9mdW5jX2NsZWFyICopZGVzYy5kYXRhOwogCiAJcmV0ID0gaG5zX3JvY2VfY21xX3NlbmQoaHJfZGV2LCAmZGVzYywgMSk7CiAJaWYgKHJldCkgeworCQlmY2xyX3dyaXRlX2ZhaWxfZmxhZyA9IHRydWU7CiAJCWRldl9lcnIoaHJfZGV2LT5kZXYsICJGdW5jIGNsZWFyIHdyaXRlIGZhaWxlZCwgcmV0ID0gJWQuXG4iLAogCQkJIHJldCk7Ci0JCXJldHVybjsKKwkJZ290byBvdXQ7CiAJfQogCiAJbXNsZWVwKEhOU19ST0NFX1YyX1JFQURfRlVOQ19DTEVBUl9GTEFHX0lOVEVSVkFMKTsKIAllbmQgPSBITlNfUk9DRV9WMl9GVU5DX0NMRUFSX1RJTUVPVVRfTVNFQ1M7CiAJd2hpbGUgKGVuZCkgeworCQlpZiAoaG5zX3JvY2VfZnVuY19jbHJfY2hrX3JzdChocl9kZXYpKQorCQkJZ290byBvdXQ7CiAJCW1zbGVlcChITlNfUk9DRV9WMl9SRUFEX0ZVTkNfQ0xFQVJfRkxBR19GQUlMX1dBSVQpOwogCQllbmQgLT0gSE5TX1JPQ0VfVjJfUkVBRF9GVU5DX0NMRUFSX0ZMQUdfRkFJTF9XQUlUOwogCkBAIC0xMTY2LDcgKzEyNTMsOSBAQCBzdGF0aWMgdm9pZCBobnNfcm9jZV9mdW5jdGlvbl9jbGVhcihzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYpCiAJCX0KIAl9CiAKK291dDoKIAlkZXZfZXJyKGhyX2Rldi0+ZGV2LCAiRnVuYyBjbGVhciBmYWlsLlxuIik7CisJaG5zX3JvY2VfZnVuY19jbHJfcnN0X3ByYyhocl9kZXYsIHJldCwgZmNscl93cml0ZV9mYWlsX2ZsYWcpOwogfQogCiBzdGF0aWMgaW50IGhuc19yb2NlX3F1ZXJ5X2Z3X3ZlcihzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYpCkBAIC0xMjk4LDcgKzEzODcsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3NldF92Zl9zd2l0Y2hfcGFyYW0oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCiAJc3d0ID0gKHN0cnVjdCBobnNfcm9jZV92Zl9zd2l0Y2ggKilkZXNjLmRhdGE7CiAJaG5zX3JvY2VfY21xX3NldHVwX2Jhc2ljX2Rlc2MoJmRlc2MsIEhOU19TV0lUQ0hfUEFSQU1FVEVSX0NGRywgdHJ1ZSk7Ci0Jc3d0LT5yb2NlZV9zZWwgfD0gY3B1X3RvX2xlMTYoSE5TX0lDTF9TV0lUQ0hfQ01EX1JPQ0VFX1NFTCk7CisJc3d0LT5yb2NlZV9zZWwgfD0gY3B1X3RvX2xlMzIoSE5TX0lDTF9TV0lUQ0hfQ01EX1JPQ0VFX1NFTCk7CiAJcm9jZV9zZXRfZmllbGQoc3d0LT5mdW5faWQsCiAJCQlWRl9TV0lUQ0hfREFUQV9GVU5fSURfVkZfSURfTSwKIAkJCVZGX1NXSVRDSF9EQVRBX0ZVTl9JRF9WRl9JRF9TLApAQCAtMTMxMCw3ICsxMzk5LDcgQEAgc3RhdGljIGludCBobnNfcm9jZV9zZXRfdmZfc3dpdGNoX3BhcmFtKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJY3B1X3RvX2xlMTYoSE5TX1JPQ0VfQ01EX0ZMQUdfTk9fSU5UUiB8IEhOU19ST0NFX0NNRF9GTEFHX0lOKTsKIAlkZXNjLmZsYWcgJj0gY3B1X3RvX2xlMTYofkhOU19ST0NFX0NNRF9GTEFHX1dSKTsKIAlyb2NlX3NldF9iaXQoc3d0LT5jZmcsIFZGX1NXSVRDSF9EQVRBX0NGR19BTFdfTFBCS19TLCAxKTsKLQlyb2NlX3NldF9iaXQoc3d0LT5jZmcsIFZGX1NXSVRDSF9EQVRBX0NGR19BTFdfTENMX0xQQktfUywgMSk7CisJcm9jZV9zZXRfYml0KHN3dC0+Y2ZnLCBWRl9TV0lUQ0hfREFUQV9DRkdfQUxXX0xDTF9MUEJLX1MsIDApOwogCXJvY2Vfc2V0X2JpdChzd3QtPmNmZywgVkZfU1dJVENIX0RBVEFfQ0ZHX0FMV19EU1RfT1ZSRF9TLCAxKTsKIAogCXJldHVybiBobnNfcm9jZV9jbXFfc2VuZChocl9kZXYsICZkZXNjLCAxKTsKQEAgLTE3MjQsOSArMTgxMywxMCBAQCBzdGF0aWMgaW50IGhuc19yb2NlX2NvbmZpZ19saW5rX3RhYmxlKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJCWRlc2NbaV0uZmxhZyAmPSB+Y3B1X3RvX2xlMTYoSE5TX1JPQ0VfQ01EX0ZMQUdfTkVYVCk7CiAKIAkJaWYgKGkgPT0gMCkgewotCQkJcmVxX2EtPmJhc2VfYWRkcl9sID0gbGlua190YmwtPnRhYmxlLm1hcCAmIDB4ZmZmZmZmZmY7Ci0JCQlyZXFfYS0+YmFzZV9hZGRyX2ggPSAobGlua190YmwtPnRhYmxlLm1hcCA+PiAzMikgJgotCQkJCQkgICAgIDB4ZmZmZmZmZmY7CisJCQlyZXFfYS0+YmFzZV9hZGRyX2wgPQorCQkJCWNwdV90b19sZTMyKGxpbmtfdGJsLT50YWJsZS5tYXAgJiAweGZmZmZmZmZmKTsKKwkJCXJlcV9hLT5iYXNlX2FkZHJfaCA9CisJCQkJY3B1X3RvX2xlMzIobGlua190YmwtPnRhYmxlLm1hcCA+PiAzMik7CiAJCQlyb2NlX3NldF9maWVsZChyZXFfYS0+ZGVwdGhfcGdzel9pbml0X2VuLAogCQkJCSAgICAgICBDRkdfTExNX1FVRV9ERVBUSF9NLAogCQkJCSAgICAgICBDRkdfTExNX1FVRV9ERVBUSF9TLApAQCAtMTczNSwxMyArMTgyNSwxNSBAQCBzdGF0aWMgaW50IGhuc19yb2NlX2NvbmZpZ19saW5rX3RhYmxlKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJCQkgICAgICAgQ0ZHX0xMTV9RVUVfUEdTWl9NLAogCQkJCSAgICAgICBDRkdfTExNX1FVRV9QR1NaX1MsCiAJCQkJICAgICAgIGxpbmtfdGJsLT5wZ19zeik7Ci0JCQlyZXFfYS0+aGVhZF9iYV9sID0gZW50cnlbMF0uYmxrX2JhMDsKLQkJCXJlcV9hLT5oZWFkX2JhX2hfbnh0cHRyID0gZW50cnlbMF0uYmxrX2JhMV9ueHRfcHRyOworCQkJcmVxX2EtPmhlYWRfYmFfbCA9IGNwdV90b19sZTMyKGVudHJ5WzBdLmJsa19iYTApOworCQkJcmVxX2EtPmhlYWRfYmFfaF9ueHRwdHIgPQorCQkJCWNwdV90b19sZTMyKGVudHJ5WzBdLmJsa19iYTFfbnh0X3B0cik7CiAJCQlyb2NlX3NldF9maWVsZChyZXFfYS0+aGVhZF9wdHIsCiAJCQkJICAgICAgIENGR19MTE1fSEVBRF9QVFJfTSwKIAkJCQkgICAgICAgQ0ZHX0xMTV9IRUFEX1BUUl9TLCAwKTsKIAkJfSBlbHNlIHsKLQkJCXJlcV9iLT50YWlsX2JhX2wgPSBlbnRyeVtwYWdlX251bSAtIDFdLmJsa19iYTA7CisJCQlyZXFfYi0+dGFpbF9iYV9sID0KKwkJCQljcHVfdG9fbGUzMihlbnRyeVtwYWdlX251bSAtIDFdLmJsa19iYTApOwogCQkJcm9jZV9zZXRfZmllbGQocmVxX2ItPnRhaWxfYmFfaCwKIAkJCQkgICAgICAgQ0ZHX0xMTV9UQUlMX0JBX0hfTSwKIAkJCQkgICAgICAgQ0ZHX0xMTV9UQUlMX0JBX0hfUywKQEAgLTE4MTcsMTcgKzE5MDksMTMgQEAgc3RhdGljIGludCBobnNfcm9jZV9pbml0X2xpbmtfdGFibGUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCiAJCWxpbmtfdGJsLT5wZ19saXN0W2ldLm1hcCA9IHQ7CiAKLQkJZW50cnlbaV0uYmxrX2JhMCA9ICh0ID4+IDEyKSAmIDB4ZmZmZmZmZmY7Ci0JCXJvY2Vfc2V0X2ZpZWxkKGVudHJ5W2ldLmJsa19iYTFfbnh0X3B0ciwKLQkJCSAgICAgICBITlNfUk9DRV9MSU5LX1RBQkxFX0JBMV9NLAotCQkJICAgICAgIEhOU19ST0NFX0xJTktfVEFCTEVfQkExX1MsCi0JCQkgICAgICAgdCA+PiA0NCk7CisJCWVudHJ5W2ldLmJsa19iYTAgPSAodTMyKSh0ID4+IDEyKTsKKwkJZW50cnlbaV0uYmxrX2JhMV9ueHRfcHRyID0gKHUzMikodCA+PiA0NCk7CiAKIAkJaWYgKGkgPCAocGdfbnVtIC0gMSkpCi0JCQlyb2NlX3NldF9maWVsZChlbnRyeVtpXS5ibGtfYmExX254dF9wdHIsCi0JCQkJICAgICAgIEhOU19ST0NFX0xJTktfVEFCTEVfTlhUX1BUUl9NLAotCQkJCSAgICAgICBITlNfUk9DRV9MSU5LX1RBQkxFX05YVF9QVFJfUywKLQkJCQkgICAgICAgaSArIDEpOworCQkJZW50cnlbaV0uYmxrX2JhMV9ueHRfcHRyIHw9CisJCQkJKGkgKyAxKSA8PCBITlNfUk9DRV9MSU5LX1RBQkxFX05YVF9QVFJfUzsKKwogCX0KIAlsaW5rX3RibC0+bnBhZ2VzID0gcGdfbnVtOwogCWxpbmtfdGJsLT5wZ19zeiA9IGJ1Zl9jaGtfc3o7CkBAIC0xODg4LDcgKzE5NzYsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX2luaXQoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCQlnb3RvIGVycl90cHFfaW5pdF9mYWlsZWQ7CiAJfQogCi0JLyogQWxsb2MgbWVtb3J5IGZvciBRUEMgVGltZXIgYnVmZmVyIHNwYWNlIGNodW5rKi8KKwkvKiBBbGxvYyBtZW1vcnkgZm9yIFFQQyBUaW1lciBidWZmZXIgc3BhY2UgY2h1bmsgKi8KIAlmb3IgKHFwY19jb3VudCA9IDA7IHFwY19jb3VudCA8IGhyX2Rldi0+Y2Fwcy5xcGNfdGltZXJfYnRfbnVtOwogCSAgICAgcXBjX2NvdW50KyspIHsKIAkJcmV0ID0gaG5zX3JvY2VfdGFibGVfZ2V0KGhyX2RldiwgJmhyX2Rldi0+cXBjX3RpbWVyX3RhYmxlLApAQCAtMTg5OSw3ICsxOTg3LDcgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9pbml0KHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldikKIAkJfQogCX0KIAotCS8qIEFsbG9jIG1lbW9yeSBmb3IgQ1FDIFRpbWVyIGJ1ZmZlciBzcGFjZSBjaHVuayovCisJLyogQWxsb2MgbWVtb3J5IGZvciBDUUMgVGltZXIgYnVmZmVyIHNwYWNlIGNodW5rICovCiAJZm9yIChjcWNfY291bnQgPSAwOyBjcWNfY291bnQgPCBocl9kZXYtPmNhcHMuY3FjX3RpbWVyX2J0X251bTsKIAkgICAgIGNxY19jb3VudCsrKSB7CiAJCXJldCA9IGhuc19yb2NlX3RhYmxlX2dldChocl9kZXYsICZocl9kZXYtPmNxY190aW1lcl90YWJsZSwKQEAgLTE5NTIsNyArMjA0MCw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfcXVlcnlfbWJveF9zdGF0dXMoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCWlmIChzdGF0dXMpCiAJCXJldHVybiBzdGF0dXM7CiAKLQlyZXR1cm4gY3B1X3RvX2xlMzIobWJfc3QtPm1iX3N0YXR1c19od19ydW4pOworCXJldHVybiBsZTMyX3RvX2NwdShtYl9zdC0+bWJfc3RhdHVzX2h3X3J1bik7CiB9CiAKIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfY21kX3BlbmRpbmcoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQpAQCAtMTk3OCwxMCArMjA2NiwxMCBAQCBzdGF0aWMgaW50IGhuc19yb2NlX21ib3hfcG9zdChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsIHU2NCBpbl9wYXJhbSwKIAogCWhuc19yb2NlX2NtcV9zZXR1cF9iYXNpY19kZXNjKCZkZXNjLCBITlNfUk9DRV9PUENfUE9TVF9NQiwgZmFsc2UpOwogCi0JbWItPmluX3BhcmFtX2wgPSBjcHVfdG9fbGU2NChpbl9wYXJhbSk7Ci0JbWItPmluX3BhcmFtX2ggPSBjcHVfdG9fbGU2NChpbl9wYXJhbSkgPj4gMzI7Ci0JbWItPm91dF9wYXJhbV9sID0gY3B1X3RvX2xlNjQob3V0X3BhcmFtKTsKLQltYi0+b3V0X3BhcmFtX2ggPSBjcHVfdG9fbGU2NChvdXRfcGFyYW0pID4+IDMyOworCW1iLT5pbl9wYXJhbV9sID0gY3B1X3RvX2xlMzIoaW5fcGFyYW0pOworCW1iLT5pbl9wYXJhbV9oID0gY3B1X3RvX2xlMzIoaW5fcGFyYW0gPj4gMzIpOworCW1iLT5vdXRfcGFyYW1fbCA9IGNwdV90b19sZTMyKG91dF9wYXJhbSk7CisJbWItPm91dF9wYXJhbV9oID0gY3B1X3RvX2xlMzIob3V0X3BhcmFtID4+IDMyKTsKIAltYi0+Y21kX3RhZyA9IGNwdV90b19sZTMyKGluX21vZGlmaWVyIDw8IDggfCBvcCk7CiAJbWItPnRva2VuX2V2ZW50X2VuID0gY3B1X3RvX2xlMzIoZXZlbnQgPDwgMTYgfCB0b2tlbik7CiAKQEAgLTIxMjMsNyArMjIxMSw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfc2V0X21hYyhzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsIHU4IHBoeV9wb3J0LAogCXJvY2Vfc2V0X2ZpZWxkKHNtYWNfdGItPnZmX3NtYWNfaF9yc3YsCiAJCSAgICAgICBDRkdfU01BQ19UQl9WRl9TTUFDX0hfTSwKIAkJICAgICAgIENGR19TTUFDX1RCX1ZGX1NNQUNfSF9TLCByZWdfc21hY19oKTsKLQlzbWFjX3RiLT52Zl9zbWFjX2wgPSByZWdfc21hY19sOworCXNtYWNfdGItPnZmX3NtYWNfbCA9IGNwdV90b19sZTMyKHJlZ19zbWFjX2wpOwogCiAJcmV0dXJuIGhuc19yb2NlX2NtcV9zZW5kKGhyX2RldiwgJmRlc2MsIDEpOwogfQpAQCAtMjQwOSw3ICsyNDk3LDcgQEAgc3RhdGljIHZvaWQgX19obnNfcm9jZV92Ml9jcV9jbGVhbihzdHJ1Y3QgaG5zX3JvY2VfY3EgKmhyX2NxLCB1MzIgcXBuLAogCiAJZm9yIChwcm9kX2luZGV4ID0gaHJfY3EtPmNvbnNfaW5kZXg7IGdldF9zd19jcWVfdjIoaHJfY3EsIHByb2RfaW5kZXgpOwogCSAgICAgKytwcm9kX2luZGV4KSB7Ci0JCWlmIChwcm9kX2luZGV4ID09IGhyX2NxLT5jb25zX2luZGV4ICsgaHJfY3EtPmliX2NxLmNxZSkKKwkJaWYgKHByb2RfaW5kZXggPiBocl9jcS0+Y29uc19pbmRleCArIGhyX2NxLT5pYl9jcS5jcWUpCiAJCQlicmVhazsKIAl9CiAKQEAgLTI0NzgsMjkgKzI1NjYsMjYgQEAgc3RhdGljIHZvaWQgaG5zX3JvY2VfdjJfd3JpdGVfY3FjKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJICAgICAgIFYyX0NRQ19CWVRFXzRfU0hJRlRfUywgaWxvZzIoKHVuc2lnbmVkIGludCluZW50KSk7CiAJcm9jZV9zZXRfZmllbGQoY3FfY29udGV4dC0+Ynl0ZV80X3BnX2NlcW4sIFYyX0NRQ19CWVRFXzRfQ0VRTl9NLAogCQkgICAgICAgVjJfQ1FDX0JZVEVfNF9DRVFOX1MsIHZlY3Rvcik7Ci0JY3FfY29udGV4dC0+Ynl0ZV80X3BnX2NlcW4gPSBjcHVfdG9fbGUzMihjcV9jb250ZXh0LT5ieXRlXzRfcGdfY2Vxbik7CiAKIAlyb2NlX3NldF9maWVsZChjcV9jb250ZXh0LT5ieXRlXzhfY3FuLCBWMl9DUUNfQllURV84X0NRTl9NLAogCQkgICAgICAgVjJfQ1FDX0JZVEVfOF9DUU5fUywgaHJfY3EtPmNxbik7CiAKLQljcV9jb250ZXh0LT5jcWVfY3VyX2Jsa19hZGRyID0gKHUzMikobXR0c1swXSA+PiBQQUdFX0FERFJfU0hJRlQpOwotCWNxX2NvbnRleHQtPmNxZV9jdXJfYmxrX2FkZHIgPQotCQkJCWNwdV90b19sZTMyKGNxX2NvbnRleHQtPmNxZV9jdXJfYmxrX2FkZHIpOworCWNxX2NvbnRleHQtPmNxZV9jdXJfYmxrX2FkZHIgPSBjcHVfdG9fbGUzMihtdHRzWzBdID4+IFBBR0VfQUREUl9TSElGVCk7CiAKIAlyb2NlX3NldF9maWVsZChjcV9jb250ZXh0LT5ieXRlXzE2X2hvcF9hZGRyLAogCQkgICAgICAgVjJfQ1FDX0JZVEVfMTZfQ1FFX0NVUl9CTEtfQUREUl9NLAogCQkgICAgICAgVjJfQ1FDX0JZVEVfMTZfQ1FFX0NVUl9CTEtfQUREUl9TLAotCQkgICAgICAgY3B1X3RvX2xlMzIoKG10dHNbMF0pID4+ICgzMiArIFBBR0VfQUREUl9TSElGVCkpKTsKKwkJICAgICAgIG10dHNbMF0gPj4gKDMyICsgUEFHRV9BRERSX1NISUZUKSk7CiAJcm9jZV9zZXRfZmllbGQoY3FfY29udGV4dC0+Ynl0ZV8xNl9ob3BfYWRkciwKIAkJICAgICAgIFYyX0NRQ19CWVRFXzE2X0NRRV9IT1BfTlVNX00sCiAJCSAgICAgICBWMl9DUUNfQllURV8xNl9DUUVfSE9QX05VTV9TLCBocl9kZXYtPmNhcHMuY3FlX2hvcF9udW0gPT0KIAkJICAgICAgIEhOU19ST0NFX0hPUF9OVU1fMCA/IDAgOiBocl9kZXYtPmNhcHMuY3FlX2hvcF9udW0pOwogCi0JY3FfY29udGV4dC0+Y3FlX254dF9ibGtfYWRkciA9ICh1MzIpKG10dHNbMV0gPj4gUEFHRV9BRERSX1NISUZUKTsKKwljcV9jb250ZXh0LT5jcWVfbnh0X2Jsa19hZGRyID0gY3B1X3RvX2xlMzIobXR0c1sxXSA+PiBQQUdFX0FERFJfU0hJRlQpOwogCXJvY2Vfc2V0X2ZpZWxkKGNxX2NvbnRleHQtPmJ5dGVfMjRfcGdzel9hZGRyLAogCQkgICAgICAgVjJfQ1FDX0JZVEVfMjRfQ1FFX05YVF9CTEtfQUREUl9NLAogCQkgICAgICAgVjJfQ1FDX0JZVEVfMjRfQ1FFX05YVF9CTEtfQUREUl9TLAotCQkgICAgICAgY3B1X3RvX2xlMzIoKG10dHNbMV0pID4+ICgzMiArIFBBR0VfQUREUl9TSElGVCkpKTsKKwkJICAgICAgIG10dHNbMV0gPj4gKDMyICsgUEFHRV9BRERSX1NISUZUKSk7CiAJcm9jZV9zZXRfZmllbGQoY3FfY29udGV4dC0+Ynl0ZV8yNF9wZ3N6X2FkZHIsCiAJCSAgICAgICBWMl9DUUNfQllURV8yNF9DUUVfQkFfUEdfU1pfTSwKIAkJICAgICAgIFYyX0NRQ19CWVRFXzI0X0NRRV9CQV9QR19TWl9TLApAQCAtMjUxMCw3ICsyNTk1LDcgQEAgc3RhdGljIHZvaWQgaG5zX3JvY2VfdjJfd3JpdGVfY3FjKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJICAgICAgIFYyX0NRQ19CWVRFXzI0X0NRRV9CVUZfUEdfU1pfUywKIAkJICAgICAgIGhyX2Rldi0+Y2Fwcy5jcWVfYnVmX3BnX3N6ICsgUEdfU0hJRlRfT0ZGU0VUKTsKIAotCWNxX2NvbnRleHQtPmNxZV9iYSA9ICh1MzIpKGRtYV9oYW5kbGUgPj4gMyk7CisJY3FfY29udGV4dC0+Y3FlX2JhID0gY3B1X3RvX2xlMzIoZG1hX2hhbmRsZSA+PiAzKTsKIAogCXJvY2Vfc2V0X2ZpZWxkKGNxX2NvbnRleHQtPmJ5dGVfNDBfY3FlX2JhLCBWMl9DUUNfQllURV80MF9DUUVfQkFfTSwKIAkJICAgICAgIFYyX0NRQ19CWVRFXzQwX0NRRV9CQV9TLCAoZG1hX2hhbmRsZSA+PiAoMzIgKyAzKSkpOwpAQCAtMjUyMyw3ICsyNjA4LDcgQEAgc3RhdGljIHZvaWQgaG5zX3JvY2VfdjJfd3JpdGVfY3FjKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJICAgICAgIFYyX0NRQ19CWVRFXzQ0X0RCX1JFQ09SRF9BRERSX00sCiAJCSAgICAgICBWMl9DUUNfQllURV80NF9EQl9SRUNPUkRfQUREUl9TLAogCQkgICAgICAgKCh1MzIpaHJfY3EtPmRiLmRtYSkgPj4gMSk7Ci0JY3FfY29udGV4dC0+ZGJfcmVjb3JkX2FkZHIgPSBocl9jcS0+ZGIuZG1hID4+IDMyOworCWNxX2NvbnRleHQtPmRiX3JlY29yZF9hZGRyID0gY3B1X3RvX2xlMzIoaHJfY3EtPmRiLmRtYSA+PiAzMik7CiAKIAlyb2NlX3NldF9maWVsZChjcV9jb250ZXh0LT5ieXRlXzU2X2NxZV9wZXJpb2RfbWF4Y250LAogCQkgICAgICAgVjJfQ1FDX0JZVEVfNTZfQ1FfTUFYX0NOVF9NLApAQCAtMjU0MSw3ICsyNjI2LDcgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9yZXFfbm90aWZ5X2NxKHN0cnVjdCBpYl9jcSAqaWJjcSwKIAlzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYgPSB0b19ocl9kZXYoaWJjcS0+ZGV2aWNlKTsKIAlzdHJ1Y3QgaG5zX3JvY2VfY3EgKmhyX2NxID0gdG9faHJfY3EoaWJjcSk7CiAJdTMyIG5vdGlmaWNhdGlvbl9mbGFnOwotCXUzMiBkb29yYmVsbFsyXTsKKwlfX2xlMzIgZG9vcmJlbGxbMl07CiAKIAlkb29yYmVsbFswXSA9IDA7CiAJZG9vcmJlbGxbMV0gPSAwOwpAQCAtMjY2OCw5ICsyNzUzLDkgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9wb2xsX29uZShzdHJ1Y3QgaG5zX3JvY2VfY3EgKmhyX2NxLAogCQkrK3dxLT50YWlsOwogCX0gZWxzZSBpZiAoKCpjdXJfcXApLT5pYnFwLnNycSkgewogCQlzcnEgPSB0b19ocl9zcnEoKCpjdXJfcXApLT5pYnFwLnNycSk7Ci0JCXdxZV9jdHIgPSBsZTE2X3RvX2NwdShyb2NlX2dldF9maWVsZChjcWUtPmJ5dGVfNCwKLQkJCQkJCSAgICAgVjJfQ1FFX0JZVEVfNF9XUUVfSU5EWF9NLAotCQkJCQkJICAgICBWMl9DUUVfQllURV80X1dRRV9JTkRYX1MpKTsKKwkJd3FlX2N0ciA9ICh1MTYpcm9jZV9nZXRfZmllbGQoY3FlLT5ieXRlXzQsCisJCQkJCSAgICAgIFYyX0NRRV9CWVRFXzRfV1FFX0lORFhfTSwKKwkJCQkJICAgICAgVjJfQ1FFX0JZVEVfNF9XUUVfSU5EWF9TKTsKIAkJd2MtPndyX2lkID0gc3JxLT53cmlkW3dxZV9jdHJdOwogCQlobnNfcm9jZV9mcmVlX3NycV93cWUoc3JxLCB3cWVfY3RyKTsKIAl9IGVsc2UgewpAQCAtMjg2MiwxNSArMjk0NywxNiBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX3BvbGxfb25lKHN0cnVjdCBobnNfcm9jZV9jcSAqaHJfY3EsCiAJCXdjLT5zbWFjWzVdID0gcm9jZV9nZXRfZmllbGQoY3FlLT5ieXRlXzI4LAogCQkJCQkgICAgIFYyX0NRRV9CWVRFXzI4X1NNQUNfNV9NLAogCQkJCQkgICAgIFYyX0NRRV9CWVRFXzI4X1NNQUNfNV9TKTsKKwkJd2MtPndjX2ZsYWdzIHw9IElCX1dDX1dJVEhfU01BQzsKIAkJaWYgKHJvY2VfZ2V0X2JpdChjcWUtPmJ5dGVfMjgsIFYyX0NRRV9CWVRFXzI4X1ZJRF9WTERfUykpIHsKIAkJCXdjLT52bGFuX2lkID0gKHUxNilyb2NlX2dldF9maWVsZChjcWUtPmJ5dGVfMjgsCiAJCQkJCQkJICBWMl9DUUVfQllURV8yOF9WSURfTSwKIAkJCQkJCQkgIFYyX0NRRV9CWVRFXzI4X1ZJRF9TKTsKKwkJCXdjLT53Y19mbGFncyB8PSBJQl9XQ19XSVRIX1ZMQU47CiAJCX0gZWxzZSB7CiAJCQl3Yy0+dmxhbl9pZCA9IDB4ZmZmZjsKIAkJfQogCi0JCXdjLT53Y19mbGFncyB8PSAoSUJfV0NfV0lUSF9WTEFOIHwgSUJfV0NfV0lUSF9TTUFDKTsKIAkJd2MtPm5ldHdvcmtfaGRyX3R5cGUgPSByb2NlX2dldF9maWVsZChjcWUtPmJ5dGVfMjgsCiAJCQkJCQkgICAgVjJfQ1FFX0JZVEVfMjhfUE9SVF9UWVBFX00sCiAJCQkJCQkgICAgVjJfQ1FFX0JZVEVfMjhfUE9SVF9UWVBFX1MpOwpAQCAtMjkwNSw0NiArMjk5MSwxNSBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX3BvbGxfY3Eoc3RydWN0IGliX2NxICppYmNxLCBpbnQgbnVtX2VudHJpZXMsCiAJcmV0dXJuIG5wb2xsZWQ7CiB9CiAKLXN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfc2V0X2hlbShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCi0JCQkgICAgICAgc3RydWN0IGhuc19yb2NlX2hlbV90YWJsZSAqdGFibGUsIGludCBvYmosCi0JCQkgICAgICAgaW50IHN0ZXBfaWR4KQorc3RhdGljIGludCBnZXRfb3BfZm9yX3NldF9oZW0oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LCB1MzIgdHlwZSwKKwkJCSAgICAgIGludCBzdGVwX2lkeCkKIHsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKLQlzdHJ1Y3QgaG5zX3JvY2VfY21kX21haWxib3ggKm1haWxib3g7Ci0Jc3RydWN0IGhuc19yb2NlX2hlbV9pdGVyIGl0ZXI7Ci0Jc3RydWN0IGhuc19yb2NlX2hlbV9taG9wIG1ob3A7Ci0Jc3RydWN0IGhuc19yb2NlX2hlbSAqaGVtOwotCXVuc2lnbmVkIGxvbmcgbWhvcF9vYmogPSBvYmo7Ci0JaW50IGksIGosIGs7Ci0JaW50IHJldCA9IDA7Ci0JdTY0IGhlbV9pZHggPSAwOwotCXU2NCBsMV9pZHggPSAwOwotCXU2NCBidF9iYSA9IDA7Ci0JdTMyIGNodW5rX2JhX251bTsKLQl1MzIgaG9wX251bTsKLQl1MTYgb3AgPSAweGZmOworCWludCBvcDsKIAotCWlmICghaG5zX3JvY2VfY2hlY2tfd2hldGhlcl9taG9wKGhyX2RldiwgdGFibGUtPnR5cGUpKQotCQlyZXR1cm4gMDsKKwlpZiAodHlwZSA9PSBIRU1fVFlQRV9TQ0NDICYmIHN0ZXBfaWR4KQorCQlyZXR1cm4gLUVJTlZBTDsKIAotCWhuc19yb2NlX2NhbGNfaGVtX21ob3AoaHJfZGV2LCB0YWJsZSwgJm1ob3Bfb2JqLCAmbWhvcCk7Ci0JaSA9IG1ob3AubDBfaWR4OwotCWogPSBtaG9wLmwxX2lkeDsKLQlrID0gbWhvcC5sMl9pZHg7Ci0JaG9wX251bSA9IG1ob3AuaG9wX251bTsKLQljaHVua19iYV9udW0gPSBtaG9wLmJ0X2NodW5rX3NpemUgLyA4OwotCi0JaWYgKGhvcF9udW0gPT0gMikgewotCQloZW1faWR4ID0gaSAqIGNodW5rX2JhX251bSAqIGNodW5rX2JhX251bSArIGogKiBjaHVua19iYV9udW0gKwotCQkJICBrOwotCQlsMV9pZHggPSBpICogY2h1bmtfYmFfbnVtICsgajsKLQl9IGVsc2UgaWYgKGhvcF9udW0gPT0gMSkgewotCQloZW1faWR4ID0gaSAqIGNodW5rX2JhX251bSArIGo7Ci0JfSBlbHNlIGlmIChob3BfbnVtID09IEhOU19ST0NFX0hPUF9OVU1fMCkgewotCQloZW1faWR4ID0gaTsKLQl9Ci0KLQlzd2l0Y2ggKHRhYmxlLT50eXBlKSB7CisJc3dpdGNoICh0eXBlKSB7CiAJY2FzZSBIRU1fVFlQRV9RUEM6CiAJCW9wID0gSE5TX1JPQ0VfQ01EX1dSSVRFX1FQQ19CVDA7CiAJCWJyZWFrOwpAQCAtMjk2NywxNSArMzAyMiw1NSBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX3NldF9oZW0oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQlvcCA9IEhOU19ST0NFX0NNRF9XUklURV9DUUNfVElNRVJfQlQwOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlkZXZfd2FybihkZXYsICJUYWJsZSAlZCBub3QgdG8gYmUgd3JpdHRlbiBieSBtYWlsYm94IVxuIiwKLQkJCSB0YWJsZS0+dHlwZSk7Ci0JCXJldHVybiAwOworCQlkZXZfd2Fybihocl9kZXYtPmRldiwKKwkJCSAiVGFibGUgJWQgbm90IHRvIGJlIHdyaXR0ZW4gYnkgbWFpbGJveCFcbiIsIHR5cGUpOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAodGFibGUtPnR5cGUgPT0gSEVNX1RZUEVfU0NDQyAmJiBzdGVwX2lkeCkKKwlyZXR1cm4gb3AgKyBzdGVwX2lkeDsKK30KKworc3RhdGljIGludCBobnNfcm9jZV92Ml9zZXRfaGVtKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKKwkJCSAgICAgICBzdHJ1Y3QgaG5zX3JvY2VfaGVtX3RhYmxlICp0YWJsZSwgaW50IG9iaiwKKwkJCSAgICAgICBpbnQgc3RlcF9pZHgpCit7CisJc3RydWN0IGhuc19yb2NlX2NtZF9tYWlsYm94ICptYWlsYm94OworCXN0cnVjdCBobnNfcm9jZV9oZW1faXRlciBpdGVyOworCXN0cnVjdCBobnNfcm9jZV9oZW1fbWhvcCBtaG9wOworCXN0cnVjdCBobnNfcm9jZV9oZW0gKmhlbTsKKwl1bnNpZ25lZCBsb25nIG1ob3Bfb2JqID0gb2JqOworCWludCBpLCBqLCBrOworCWludCByZXQgPSAwOworCXU2NCBoZW1faWR4ID0gMDsKKwl1NjQgbDFfaWR4ID0gMDsKKwl1NjQgYnRfYmEgPSAwOworCXUzMiBjaHVua19iYV9udW07CisJdTMyIGhvcF9udW07CisJaW50IG9wOworCisJaWYgKCFobnNfcm9jZV9jaGVja193aGV0aGVyX21ob3AoaHJfZGV2LCB0YWJsZS0+dHlwZSkpCiAJCXJldHVybiAwOwogCi0Jb3AgKz0gc3RlcF9pZHg7CisJaG5zX3JvY2VfY2FsY19oZW1fbWhvcChocl9kZXYsIHRhYmxlLCAmbWhvcF9vYmosICZtaG9wKTsKKwlpID0gbWhvcC5sMF9pZHg7CisJaiA9IG1ob3AubDFfaWR4OworCWsgPSBtaG9wLmwyX2lkeDsKKwlob3BfbnVtID0gbWhvcC5ob3BfbnVtOworCWNodW5rX2JhX251bSA9IG1ob3AuYnRfY2h1bmtfc2l6ZSAvIDg7CisKKwlpZiAoaG9wX251bSA9PSAyKSB7CisJCWhlbV9pZHggPSBpICogY2h1bmtfYmFfbnVtICogY2h1bmtfYmFfbnVtICsgaiAqIGNodW5rX2JhX251bSArCisJCQkgIGs7CisJCWwxX2lkeCA9IGkgKiBjaHVua19iYV9udW0gKyBqOworCX0gZWxzZSBpZiAoaG9wX251bSA9PSAxKSB7CisJCWhlbV9pZHggPSBpICogY2h1bmtfYmFfbnVtICsgajsKKwl9IGVsc2UgaWYgKGhvcF9udW0gPT0gSE5TX1JPQ0VfSE9QX05VTV8wKSB7CisJCWhlbV9pZHggPSBpOworCX0KKworCW9wID0gZ2V0X29wX2Zvcl9zZXRfaGVtKGhyX2RldiwgdGFibGUtPnR5cGUsIHN0ZXBfaWR4KTsKKwlpZiAob3AgPT0gLUVJTlZBTCkKKwkJcmV0dXJuIDA7CiAKIAltYWlsYm94ID0gaG5zX3JvY2VfYWxsb2NfY21kX21haWxib3goaHJfZGV2KTsKIAlpZiAoSVNfRVJSKG1haWxib3gpKQpAQCAtMzExOCw2ICszMjEzLDQzIEBAIHN0YXRpYyB2b2lkIHNldF9hY2Nlc3NfZmxhZ3Moc3RydWN0IGhuc19yb2NlX3FwICpocl9xcCwKIAlyb2NlX3NldF9iaXQocXBjX21hc2stPmJ5dGVfNzZfc3Jxbl9vcF9lbiwgVjJfUVBDX0JZVEVfNzZfQVRFX1MsIDApOwogfQogCitzdGF0aWMgdm9pZCBzZXRfcXBjX3dxZV9jbnQoc3RydWN0IGhuc19yb2NlX3FwICpocl9xcCwKKwkJCSAgICBzdHJ1Y3QgaG5zX3JvY2VfdjJfcXBfY29udGV4dCAqY29udGV4dCwKKwkJCSAgICBzdHJ1Y3QgaG5zX3JvY2VfdjJfcXBfY29udGV4dCAqcXBjX21hc2spCit7CisJaWYgKGhyX3FwLT5pYnFwLnFwX3R5cGUgPT0gSUJfUVBUX0dTSSkKKwkJcm9jZV9zZXRfZmllbGQoY29udGV4dC0+Ynl0ZV80X3NxcG5fdHN0LAorCQkJICAgICAgIFYyX1FQQ19CWVRFXzRfU0dFX1NISUZUX00sCisJCQkgICAgICAgVjJfUVBDX0JZVEVfNF9TR0VfU0hJRlRfUywKKwkJCSAgICAgICBpbG9nMigodW5zaWduZWQgaW50KWhyX3FwLT5zZ2Uuc2dlX2NudCkpOworCWVsc2UKKwkJcm9jZV9zZXRfZmllbGQoY29udGV4dC0+Ynl0ZV80X3NxcG5fdHN0LAorCQkJICAgICAgIFYyX1FQQ19CWVRFXzRfU0dFX1NISUZUX00sCisJCQkgICAgICAgVjJfUVBDX0JZVEVfNF9TR0VfU0hJRlRfUywKKwkJCSAgICAgICBocl9xcC0+c3EubWF4X2dzID4KKwkJCSAgICAgICBITlNfUk9DRV9WMl9VQ19SQ19TR0VfTlVNX0lOX1dRRSA/CisJCQkgICAgICAgaWxvZzIoKHVuc2lnbmVkIGludClocl9xcC0+c2dlLnNnZV9jbnQpIDogMCk7CisKKwlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV80X3NxcG5fdHN0LCBWMl9RUENfQllURV80X1NHRV9TSElGVF9NLAorCQkgICAgICAgVjJfUVBDX0JZVEVfNF9TR0VfU0hJRlRfUywgMCk7CisKKwlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsCisJCSAgICAgICBWMl9RUENfQllURV8yMF9TUV9TSElGVF9NLCBWMl9RUENfQllURV8yMF9TUV9TSElGVF9TLAorCQkgICAgICAgaWxvZzIoKHVuc2lnbmVkIGludClocl9xcC0+c3Eud3FlX2NudCkpOworCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsCisJCSAgICAgICBWMl9RUENfQllURV8yMF9TUV9TSElGVF9NLCBWMl9RUENfQllURV8yMF9TUV9TSElGVF9TLCAwKTsKKworCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjBfc21hY19zZ2lkX2lkeCwKKwkJICAgICAgIFYyX1FQQ19CWVRFXzIwX1JRX1NISUZUX00sIFYyX1FQQ19CWVRFXzIwX1JRX1NISUZUX1MsCisJCSAgICAgICAoaHJfcXAtPmlicXAucXBfdHlwZSA9PSBJQl9RUFRfWFJDX0lOSSB8fAorCQkgICAgICAgaHJfcXAtPmlicXAucXBfdHlwZSA9PSBJQl9RUFRfWFJDX1RHVCB8fAorCQkgICAgICAgaHJfcXAtPmlicXAuc3JxKSA/IDAgOgorCQkgICAgICAgaWxvZzIoKHVuc2lnbmVkIGludClocl9xcC0+cnEud3FlX2NudCkpOworCisJcm9jZV9zZXRfZmllbGQocXBjX21hc2stPmJ5dGVfMjBfc21hY19zZ2lkX2lkeCwKKwkJICAgICAgIFYyX1FQQ19CWVRFXzIwX1JRX1NISUZUX00sIFYyX1FQQ19CWVRFXzIwX1JRX1NISUZUX1MsIDApOworfQorCiBzdGF0aWMgdm9pZCBtb2RpZnlfcXBfcmVzZXRfdG9faW5pdChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBpYl9xcF9hdHRyICphdHRyLAogCQkJCSAgICBpbnQgYXR0cl9tYXNrLApAQCAtMzEzOCwyMSArMzI3MCw2IEBAIHN0YXRpYyB2b2lkIG1vZGlmeV9xcF9yZXNldF90b19pbml0KHN0cnVjdCBpYl9xcCAqaWJxcCwKIAlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV80X3NxcG5fdHN0LCBWMl9RUENfQllURV80X1RTVF9NLAogCQkgICAgICAgVjJfUVBDX0JZVEVfNF9UU1RfUywgMCk7CiAKLQlpZiAoaWJxcC0+cXBfdHlwZSA9PSBJQl9RUFRfR1NJKQotCQlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzRfc3Fwbl90c3QsCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfNF9TR0VfU0hJRlRfTSwKLQkJCSAgICAgICBWMl9RUENfQllURV80X1NHRV9TSElGVF9TLAotCQkJICAgICAgIGlsb2cyKCh1bnNpZ25lZCBpbnQpaHJfcXAtPnNnZS5zZ2VfY250KSk7Ci0JZWxzZQotCQlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzRfc3Fwbl90c3QsCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfNF9TR0VfU0hJRlRfTSwKLQkJCSAgICAgICBWMl9RUENfQllURV80X1NHRV9TSElGVF9TLAotCQkJICAgICAgIGhyX3FwLT5zcS5tYXhfZ3MgPiAyID8KLQkJCSAgICAgICBpbG9nMigodW5zaWduZWQgaW50KWhyX3FwLT5zZ2Uuc2dlX2NudCkgOiAwKTsKLQotCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzRfc3Fwbl90c3QsIFYyX1FQQ19CWVRFXzRfU0dFX1NISUZUX00sCi0JCSAgICAgICBWMl9RUENfQllURV80X1NHRV9TSElGVF9TLCAwKTsKLQogCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfNF9zcXBuX3RzdCwgVjJfUVBDX0JZVEVfNF9TUVBOX00sCiAJCSAgICAgICBWMl9RUENfQllURV80X1NRUE5fUywgaHJfcXAtPnFwbik7CiAJcm9jZV9zZXRfZmllbGQocXBjX21hc2stPmJ5dGVfNF9zcXBuX3RzdCwgVjJfUVBDX0JZVEVfNF9TUVBOX00sCkBAIC0zMTY4LDE5ICszMjg1LDcgQEAgc3RhdGljIHZvaWQgbW9kaWZ5X3FwX3Jlc2V0X3RvX2luaXQoc3RydWN0IGliX3FwICppYnFwLAogCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsIFYyX1FQQ19CWVRFXzIwX1JRV1NfTSwKIAkJICAgICAgIFYyX1FQQ19CWVRFXzIwX1JRV1NfUywgMCk7CiAKLQlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsCi0JCSAgICAgICBWMl9RUENfQllURV8yMF9TUV9TSElGVF9NLCBWMl9RUENfQllURV8yMF9TUV9TSElGVF9TLAotCQkgICAgICAgaWxvZzIoKHVuc2lnbmVkIGludClocl9xcC0+c3Eud3FlX2NudCkpOwotCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsCi0JCSAgICAgICBWMl9RUENfQllURV8yMF9TUV9TSElGVF9NLCBWMl9RUENfQllURV8yMF9TUV9TSElGVF9TLCAwKTsKLQotCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjBfc21hY19zZ2lkX2lkeCwKLQkJICAgICAgIFYyX1FQQ19CWVRFXzIwX1JRX1NISUZUX00sIFYyX1FQQ19CWVRFXzIwX1JRX1NISUZUX1MsCi0JCSAgICAgICAoaHJfcXAtPmlicXAucXBfdHlwZSA9PSBJQl9RUFRfWFJDX0lOSSB8fAotCQkgICAgICAgaHJfcXAtPmlicXAucXBfdHlwZSA9PSBJQl9RUFRfWFJDX1RHVCB8fCBpYnFwLT5zcnEpID8gMCA6Ci0JCSAgICAgICBpbG9nMigodW5zaWduZWQgaW50KWhyX3FwLT5ycS53cWVfY250KSk7Ci0Jcm9jZV9zZXRfZmllbGQocXBjX21hc2stPmJ5dGVfMjBfc21hY19zZ2lkX2lkeCwKLQkJICAgICAgIFYyX1FQQ19CWVRFXzIwX1JRX1NISUZUX00sIFYyX1FQQ19CWVRFXzIwX1JRX1NISUZUX1MsIDApOworCXNldF9xcGNfd3FlX2NudChocl9xcCwgY29udGV4dCwgcXBjX21hc2spOwogCiAJLyogTm8gVkxBTiBuZWVkIHRvIHNldCAweEZGRiAqLwogCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjRfbXR1X3RjLCBWMl9RUENfQllURV8yNF9WTEFOX0lEX00sCkBAIC0zMjI1LDcgKzMzMzAsNyBAQCBzdGF0aWMgdm9pZCBtb2RpZnlfcXBfcmVzZXRfdG9faW5pdChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJcm9jZV9zZXRfZmllbGQocXBjX21hc2stPmJ5dGVfNjhfcnFfZGIsCiAJCSAgICAgICBWMl9RUENfQllURV82OF9SUV9EQl9SRUNPUkRfQUREUl9NLAogCQkgICAgICAgVjJfUVBDX0JZVEVfNjhfUlFfREJfUkVDT1JEX0FERFJfUywgMCk7Ci0JY29udGV4dC0+cnFfZGJfcmVjb3JkX2FkZHIgPSBocl9xcC0+cmRiLmRtYSA+PiAzMjsKKwljb250ZXh0LT5ycV9kYl9yZWNvcmRfYWRkciA9IGNwdV90b19sZTMyKGhyX3FwLT5yZGIuZG1hID4+IDMyKTsKIAlxcGNfbWFzay0+cnFfZGJfcmVjb3JkX2FkZHIgPSAwOwogCiAJcm9jZV9zZXRfYml0KGNvbnRleHQtPmJ5dGVfNzZfc3Jxbl9vcF9lbiwgVjJfUVBDX0JZVEVfNzZfUlFJRV9TLApAQCAtMzQ1NiwyMiArMzU2MSw2IEBAIHN0YXRpYyB2b2lkIG1vZGlmeV9xcF9pbml0X3RvX2luaXQoc3RydWN0IGliX3FwICppYnFwLAogCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzRfc3Fwbl90c3QsIFYyX1FQQ19CWVRFXzRfVFNUX00sCiAJCSAgICAgICBWMl9RUENfQllURV80X1RTVF9TLCAwKTsKIAotCWlmIChpYnFwLT5xcF90eXBlID09IElCX1FQVF9HU0kpCi0JCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfNF9zcXBuX3RzdCwKLQkJCSAgICAgICBWMl9RUENfQllURV80X1NHRV9TSElGVF9NLAotCQkJICAgICAgIFYyX1FQQ19CWVRFXzRfU0dFX1NISUZUX1MsCi0JCQkgICAgICAgaWxvZzIoKHVuc2lnbmVkIGludClocl9xcC0+c2dlLnNnZV9jbnQpKTsKLQllbHNlCi0JCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfNF9zcXBuX3RzdCwKLQkJCSAgICAgICBWMl9RUENfQllURV80X1NHRV9TSElGVF9NLAotCQkJICAgICAgIFYyX1FQQ19CWVRFXzRfU0dFX1NISUZUX1MsCi0JCQkgICAgICAgaHJfcXAtPnNxLm1heF9ncyA+Ci0JCQkgICAgICAgSE5TX1JPQ0VfVjJfVUNfUkNfU0dFX05VTV9JTl9XUUUgPwotCQkJICAgICAgIGlsb2cyKCh1bnNpZ25lZCBpbnQpaHJfcXAtPnNnZS5zZ2VfY250KSA6IDApOwotCi0Jcm9jZV9zZXRfZmllbGQocXBjX21hc2stPmJ5dGVfNF9zcXBuX3RzdCwgVjJfUVBDX0JZVEVfNF9TR0VfU0hJRlRfTSwKLQkJICAgICAgIFYyX1FQQ19CWVRFXzRfU0dFX1NISUZUX1MsIDApOwotCiAJaWYgKGF0dHJfbWFzayAmIElCX1FQX0FDQ0VTU19GTEFHUykgewogCQlyb2NlX3NldF9iaXQoY29udGV4dC0+Ynl0ZV83Nl9zcnFuX29wX2VuLCBWMl9RUENfQllURV83Nl9SUkVfUywKIAkJCSAgICAgISEoYXR0ci0+cXBfYWNjZXNzX2ZsYWdzICYgSUJfQUNDRVNTX1JFTU9URV9SRUFEKSk7CkBAIC0zNTA2LDIwICszNTk1LDYgQEAgc3RhdGljIHZvaWQgbW9kaWZ5X3FwX2luaXRfdG9faW5pdChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJCQkgICAgIDApOwogCX0KIAotCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjBfc21hY19zZ2lkX2lkeCwKLQkJICAgICAgIFYyX1FQQ19CWVRFXzIwX1NRX1NISUZUX00sIFYyX1FQQ19CWVRFXzIwX1NRX1NISUZUX1MsCi0JCSAgICAgICBpbG9nMigodW5zaWduZWQgaW50KWhyX3FwLT5zcS53cWVfY250KSk7Ci0Jcm9jZV9zZXRfZmllbGQocXBjX21hc2stPmJ5dGVfMjBfc21hY19zZ2lkX2lkeCwKLQkJICAgICAgIFYyX1FQQ19CWVRFXzIwX1NRX1NISUZUX00sIFYyX1FQQ19CWVRFXzIwX1NRX1NISUZUX1MsIDApOwotCi0Jcm9jZV9zZXRfZmllbGQoY29udGV4dC0+Ynl0ZV8yMF9zbWFjX3NnaWRfaWR4LAotCQkgICAgICAgVjJfUVBDX0JZVEVfMjBfUlFfU0hJRlRfTSwgVjJfUVBDX0JZVEVfMjBfUlFfU0hJRlRfUywKLQkJICAgICAgIChocl9xcC0+aWJxcC5xcF90eXBlID09IElCX1FQVF9YUkNfSU5JIHx8Ci0JCSAgICAgICBocl9xcC0+aWJxcC5xcF90eXBlID09IElCX1FQVF9YUkNfVEdUIHx8IGlicXAtPnNycSkgPyAwIDoKLQkJICAgICAgIGlsb2cyKCh1bnNpZ25lZCBpbnQpaHJfcXAtPnJxLndxZV9jbnQpKTsKLQlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV8yMF9zbWFjX3NnaWRfaWR4LAotCQkgICAgICAgVjJfUVBDX0JZVEVfMjBfUlFfU0hJRlRfTSwgVjJfUVBDX0JZVEVfMjBfUlFfU0hJRlRfUywgMCk7Ci0KIAlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzE2X2J1Zl9iYV9wZ19zeiwgVjJfUVBDX0JZVEVfMTZfUERfTSwKIAkJICAgICAgIFYyX1FQQ19CWVRFXzE2X1BEX1MsIHRvX2hyX3BkKGlicXAtPnBkKS0+cGRuKTsKIAlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV8xNl9idWZfYmFfcGdfc3osIFYyX1FQQ19CWVRFXzE2X1BEX00sCkBAIC0zNjM4LDcgKzM3MTMsNyBAQCBzdGF0aWMgaW50IG1vZGlmeV9xcF9pbml0X3RvX3J0cihzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJfQogCiAJZG1hYyA9ICh1OCAqKWF0dHItPmFoX2F0dHIucm9jZS5kbWFjOwotCWNvbnRleHQtPndxZV9zZ2VfYmEgPSAodTMyKSh3cWVfc2dlX2JhID4+IDMpOworCWNvbnRleHQtPndxZV9zZ2VfYmEgPSBjcHVfdG9fbGUzMih3cWVfc2dlX2JhID4+IDMpOwogCXFwY19tYXNrLT53cWVfc2dlX2JhID0gMDsKIAogCS8qCkBAIC0zNjk0LDcgKzM3NjksNyBAQCBzdGF0aWMgaW50IG1vZGlmeV9xcF9pbml0X3RvX3J0cihzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJCSAgICAgICBWMl9RUENfQllURV8xNl9XUUVfU0dFX0JVRl9QR19TWl9NLAogCQkgICAgICAgVjJfUVBDX0JZVEVfMTZfV1FFX1NHRV9CVUZfUEdfU1pfUywgMCk7CiAKLQljb250ZXh0LT5ycV9jdXJfYmxrX2FkZHIgPSAodTMyKShtdHRzWzBdID4+IFBBR0VfQUREUl9TSElGVCk7CisJY29udGV4dC0+cnFfY3VyX2Jsa19hZGRyID0gY3B1X3RvX2xlMzIobXR0c1swXSA+PiBQQUdFX0FERFJfU0hJRlQpOwogCXFwY19tYXNrLT5ycV9jdXJfYmxrX2FkZHIgPSAwOwogCiAJcm9jZV9zZXRfZmllbGQoY29udGV4dC0+Ynl0ZV85Ml9zcnFfaW5mbywKQEAgLTM3MDUsNyArMzc4MCw3IEBAIHN0YXRpYyBpbnQgbW9kaWZ5X3FwX2luaXRfdG9fcnRyKHN0cnVjdCBpYl9xcCAqaWJxcCwKIAkJICAgICAgIFYyX1FQQ19CWVRFXzkyX1JRX0NVUl9CTEtfQUREUl9NLAogCQkgICAgICAgVjJfUVBDX0JZVEVfOTJfUlFfQ1VSX0JMS19BRERSX1MsIDApOwogCi0JY29udGV4dC0+cnFfbnh0X2Jsa19hZGRyID0gKHUzMikobXR0c1sxXSA+PiBQQUdFX0FERFJfU0hJRlQpOworCWNvbnRleHQtPnJxX254dF9ibGtfYWRkciA9IGNwdV90b19sZTMyKG10dHNbMV0gPj4gUEFHRV9BRERSX1NISUZUKTsKIAlxcGNfbWFzay0+cnFfbnh0X2Jsa19hZGRyID0gMDsKIAogCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMTA0X3JxX3NnZSwKQEAgLTM3MjAsNyArMzc5NSw3IEBAIHN0YXRpYyBpbnQgbW9kaWZ5X3FwX2luaXRfdG9fcnRyKHN0cnVjdCBpYl9xcCAqaWJxcCwKIAkJICAgICAgIFYyX1FQQ19CWVRFXzEzMl9UUlJMX0JBX1MsIGRtYV9oYW5kbGVfMyA+PiA0KTsKIAlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV8xMzJfdHJybCwgVjJfUVBDX0JZVEVfMTMyX1RSUkxfQkFfTSwKIAkJICAgICAgIFYyX1FQQ19CWVRFXzEzMl9UUlJMX0JBX1MsIDApOwotCWNvbnRleHQtPnRycmxfYmEgPSAodTMyKShkbWFfaGFuZGxlXzMgPj4gKDE2ICsgNCkpOworCWNvbnRleHQtPnRycmxfYmEgPSBjcHVfdG9fbGUzMihkbWFfaGFuZGxlXzMgPj4gKDE2ICsgNCkpOwogCXFwY19tYXNrLT50cnJsX2JhID0gMDsKIAlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzE0MF9yYXEsIFYyX1FQQ19CWVRFXzE0MF9UUlJMX0JBX00sCiAJCSAgICAgICBWMl9RUENfQllURV8xNDBfVFJSTF9CQV9TLApAQCAtMzcyOCw3ICszODAzLDcgQEAgc3RhdGljIGludCBtb2RpZnlfcXBfaW5pdF90b19ydHIoc3RydWN0IGliX3FwICppYnFwLAogCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzE0MF9yYXEsIFYyX1FQQ19CWVRFXzE0MF9UUlJMX0JBX00sCiAJCSAgICAgICBWMl9RUENfQllURV8xNDBfVFJSTF9CQV9TLCAwKTsKIAotCWNvbnRleHQtPmlycmxfYmEgPSAodTMyKShkbWFfaGFuZGxlXzIgPj4gNik7CisJY29udGV4dC0+aXJybF9iYSA9IGNwdV90b19sZTMyKGRtYV9oYW5kbGVfMiA+PiA2KTsKIAlxcGNfbWFzay0+aXJybF9iYSA9IDA7CiAJcm9jZV9zZXRfZmllbGQoY29udGV4dC0+Ynl0ZV8yMDhfaXJybCwgVjJfUVBDX0JZVEVfMjA4X0lSUkxfQkFfTSwKIAkJICAgICAgIFYyX1FQQ19CWVRFXzIwOF9JUlJMX0JBX1MsCkBAIC0zODc2LDcgKzM5NTEsNyBAQCBzdGF0aWMgaW50IG1vZGlmeV9xcF9ydHJfdG9fcnRzKHN0cnVjdCBpYl9xcCAqaWJxcCwKIAkgKiB3ZSBzaG91bGQgc2V0IGFsbCBiaXRzIG9mIHRoZSByZWxldmFudCBmaWVsZHMgaW4gY29udGV4dCBtYXNrIHRvCiAJICogMCBhdCB0aGUgc2FtZSB0aW1lLCBlbHNlIHNldCB0aGVtIHRvIDB4MS4KIAkgKi8KLQljb250ZXh0LT5zcV9jdXJfYmxrX2FkZHIgPSAodTMyKShzcV9jdXJfYmxrID4+IFBBR0VfQUREUl9TSElGVCk7CisJY29udGV4dC0+c3FfY3VyX2Jsa19hZGRyID0gY3B1X3RvX2xlMzIoc3FfY3VyX2JsayA+PiBQQUdFX0FERFJfU0hJRlQpOwogCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMTY4X2lycmxfaWR4LAogCQkgICAgICAgVjJfUVBDX0JZVEVfMTY4X1NRX0NVUl9CTEtfQUREUl9NLAogCQkgICAgICAgVjJfUVBDX0JZVEVfMTY4X1NRX0NVUl9CTEtfQUREUl9TLApAQCAtMzg4OCw4ICszOTYzLDggQEAgc3RhdGljIGludCBtb2RpZnlfcXBfcnRyX3RvX3J0cyhzdHJ1Y3QgaWJfcXAgKmlicXAsCiAKIAljb250ZXh0LT5zcV9jdXJfc2dlX2Jsa19hZGRyID0gKChpYnFwLT5xcF90eXBlID09IElCX1FQVF9HU0kpIHx8CiAJCSAgICAgICBocl9xcC0+c3EubWF4X2dzID4gSE5TX1JPQ0VfVjJfVUNfUkNfU0dFX05VTV9JTl9XUUUpID8KLQkJICAgICAgICgodTMyKShzZ2VfY3VyX2JsayA+PgotCQkgICAgICAgUEFHRV9BRERSX1NISUZUKSkgOiAwOworCQkgICAgICAgY3B1X3RvX2xlMzIoc2dlX2N1cl9ibGsgPj4KKwkJICAgICAgIFBBR0VfQUREUl9TSElGVCkgOiAwOwogCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMTg0X2lycmxfaWR4LAogCQkgICAgICAgVjJfUVBDX0JZVEVfMTg0X1NRX0NVUl9TR0VfQkxLX0FERFJfTSwKIAkJICAgICAgIFYyX1FQQ19CWVRFXzE4NF9TUV9DVVJfU0dFX0JMS19BRERSX1MsCkBAIC0zOTAyLDcgKzM5NzcsOCBAQCBzdGF0aWMgaW50IG1vZGlmeV9xcF9ydHJfdG9fcnRzKHN0cnVjdCBpYl9xcCAqaWJxcCwKIAkJICAgICAgIFYyX1FQQ19CWVRFXzE4NF9TUV9DVVJfU0dFX0JMS19BRERSX00sCiAJCSAgICAgICBWMl9RUENfQllURV8xODRfU1FfQ1VSX1NHRV9CTEtfQUREUl9TLCAwKTsKIAotCWNvbnRleHQtPnJ4X3NxX2N1cl9ibGtfYWRkciA9ICh1MzIpKHNxX2N1cl9ibGsgPj4gUEFHRV9BRERSX1NISUZUKTsKKwljb250ZXh0LT5yeF9zcV9jdXJfYmxrX2FkZHIgPQorCQljcHVfdG9fbGUzMihzcV9jdXJfYmxrID4+IFBBR0VfQUREUl9TSElGVCk7CiAJcm9jZV9zZXRfZmllbGQoY29udGV4dC0+Ynl0ZV8yMzJfaXJybF9zZ2UsCiAJCSAgICAgICBWMl9RUENfQllURV8yMzJfUlhfU1FfQ1VSX0JMS19BRERSX00sCiAJCSAgICAgICBWMl9RUENfQllURV8yMzJfUlhfU1FfQ1VSX0JMS19BRERSX1MsCkBAIC0zOTc0LDMwICs0MDUwLDExOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaG5zX3JvY2VfdjJfY2hlY2tfcXBfc3RhdChlbnVtIGliX3FwX3N0YXRlIGN1cl9zdGF0ZSwKIAogfQogCi1zdGF0aWMgaW50IGhuc19yb2NlX3YyX21vZGlmeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsCi0JCQkJIGNvbnN0IHN0cnVjdCBpYl9xcF9hdHRyICphdHRyLAotCQkJCSBpbnQgYXR0cl9tYXNrLCBlbnVtIGliX3FwX3N0YXRlIGN1cl9zdGF0ZSwKLQkJCQkgZW51bSBpYl9xcF9zdGF0ZSBuZXdfc3RhdGUpCitzdGF0aWMgaW50IGhuc19yb2NlX3YyX3NldF9wYXRoKHN0cnVjdCBpYl9xcCAqaWJxcCwKKwkJCQljb25zdCBzdHJ1Y3QgaWJfcXBfYXR0ciAqYXR0ciwKKwkJCQlpbnQgYXR0cl9tYXNrLAorCQkJCXN0cnVjdCBobnNfcm9jZV92Ml9xcF9jb250ZXh0ICpjb250ZXh0LAorCQkJCXN0cnVjdCBobnNfcm9jZV92Ml9xcF9jb250ZXh0ICpxcGNfbWFzaykKIHsKKwljb25zdCBzdHJ1Y3QgaWJfZ2xvYmFsX3JvdXRlICpncmggPSByZG1hX2FoX3JlYWRfZ3JoKCZhdHRyLT5haF9hdHRyKTsKIAlzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYgPSB0b19ocl9kZXYoaWJxcC0+ZGV2aWNlKTsKIAlzdHJ1Y3QgaG5zX3JvY2VfcXAgKmhyX3FwID0gdG9faHJfcXAoaWJxcCk7Ci0Jc3RydWN0IGhuc19yb2NlX3YyX3FwX2NvbnRleHQgKmNvbnRleHQ7Ci0Jc3RydWN0IGhuc19yb2NlX3YyX3FwX2NvbnRleHQgKnFwY19tYXNrOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhyX2Rldi0+ZGV2OwotCWludCByZXQgPSAtRUlOVkFMOworCWNvbnN0IHN0cnVjdCBpYl9naWRfYXR0ciAqZ2lkX2F0dHIgPSBOVUxMOworCWludCBpc19yb2NlX3Byb3RvY29sOworCWJvb2wgaXNfdWRwID0gZmFsc2U7CisJdTE2IHZsYW4gPSAweGZmZmY7CisJdTggaWJfcG9ydDsKKwl1OCBocl9wb3J0OworCWludCByZXQ7CiAKLQljb250ZXh0ID0ga2NhbGxvYygyLCBzaXplb2YoKmNvbnRleHQpLCBHRlBfQVRPTUlDKTsKLQlpZiAoIWNvbnRleHQpCi0JCXJldHVybiAtRU5PTUVNOworCWliX3BvcnQgPSAoYXR0cl9tYXNrICYgSUJfUVBfUE9SVCkgPyBhdHRyLT5wb3J0X251bSA6IGhyX3FwLT5wb3J0ICsgMTsKKwlocl9wb3J0ID0gaWJfcG9ydCAtIDE7CisJaXNfcm9jZV9wcm90b2NvbCA9IHJkbWFfY2FwX2V0aF9haCgmaHJfZGV2LT5pYl9kZXYsIGliX3BvcnQpICYmCisJCQkgICByZG1hX2FoX2dldF9haF9mbGFncygmYXR0ci0+YWhfYXR0cikgJiBJQl9BSF9HUkg7CiAKLQlxcGNfbWFzayA9IGNvbnRleHQgKyAxOwotCS8qCi0JICogSW4gdjIgZW5naW5lLCBzb2Z0d2FyZSBwYXNzIGNvbnRleHQgYW5kIGNvbnRleHQgbWFzayB0byBoYXJkd2FyZQotCSAqIHdoZW4gbW9kaWZ5aW5nIHFwLiBJZiBzb2Z0d2FyZSBuZWVkIG1vZGlmeSBzb21lIGZpZWxkcyBpbiBjb250ZXh0LAotCSAqIHdlIHNob3VsZCBzZXQgYWxsIGJpdHMgb2YgdGhlIHJlbGV2YW50IGZpZWxkcyBpbiBjb250ZXh0IG1hc2sgdG8KLQkgKiAwIGF0IHRoZSBzYW1lIHRpbWUsIGVsc2Ugc2V0IHRoZW0gdG8gMHgxLgotCSAqLwotCW1lbXNldChxcGNfbWFzaywgMHhmZiwgc2l6ZW9mKCpxcGNfbWFzaykpOworCWlmIChpc19yb2NlX3Byb3RvY29sKSB7CisJCWdpZF9hdHRyID0gYXR0ci0+YWhfYXR0ci5ncmguc2dpZF9hdHRyOworCQlyZXQgPSByZG1hX3JlYWRfZ2lkX2wyX2ZpZWxkcyhnaWRfYXR0ciwgJnZsYW4sIE5VTEwpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKworCQlpZiAoZ2lkX2F0dHIpCisJCQlpc191ZHAgPSAoZ2lkX2F0dHItPmdpZF90eXBlID09CisJCQkJIElCX0dJRF9UWVBFX1JPQ0VfVURQX0VOQ0FQKTsKKwl9CisKKwlpZiAodmxhbiA8IFZMQU5fQ0ZJX01BU0spIHsKKwkJcm9jZV9zZXRfYml0KGNvbnRleHQtPmJ5dGVfNzZfc3Jxbl9vcF9lbiwKKwkJCSAgICAgVjJfUVBDX0JZVEVfNzZfUlFfVkxBTl9FTl9TLCAxKTsKKwkJcm9jZV9zZXRfYml0KHFwY19tYXNrLT5ieXRlXzc2X3NycW5fb3BfZW4sCisJCQkgICAgIFYyX1FQQ19CWVRFXzc2X1JRX1ZMQU5fRU5fUywgMCk7CisJCXJvY2Vfc2V0X2JpdChjb250ZXh0LT5ieXRlXzE2OF9pcnJsX2lkeCwKKwkJCSAgICAgVjJfUVBDX0JZVEVfMTY4X1NRX1ZMQU5fRU5fUywgMSk7CisJCXJvY2Vfc2V0X2JpdChxcGNfbWFzay0+Ynl0ZV8xNjhfaXJybF9pZHgsCisJCQkgICAgIFYyX1FQQ19CWVRFXzE2OF9TUV9WTEFOX0VOX1MsIDApOworCX0KKworCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjRfbXR1X3RjLCBWMl9RUENfQllURV8yNF9WTEFOX0lEX00sCisJCSAgICAgICBWMl9RUENfQllURV8yNF9WTEFOX0lEX1MsIHZsYW4pOworCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzI0X210dV90YywgVjJfUVBDX0JZVEVfMjRfVkxBTl9JRF9NLAorCQkgICAgICAgVjJfUVBDX0JZVEVfMjRfVkxBTl9JRF9TLCAwKTsKKworCWlmIChncmgtPnNnaWRfaW5kZXggPj0gaHJfZGV2LT5jYXBzLmdpZF90YWJsZV9sZW5baHJfcG9ydF0pIHsKKwkJZGV2X2Vycihocl9kZXYtPmRldiwgInNnaWRfaW5kZXgoJXUpIHRvbyBsYXJnZS4gbWF4IGlzICVkXG4iLAorCQkJZ3JoLT5zZ2lkX2luZGV4LCBocl9kZXYtPmNhcHMuZ2lkX3RhYmxlX2xlbltocl9wb3J0XSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChhdHRyLT5haF9hdHRyLnR5cGUgIT0gUkRNQV9BSF9BVFRSX1RZUEVfUk9DRSkgeworCQlkZXZfZXJyKGhyX2Rldi0+ZGV2LCAiYWggYXR0ciBpcyBub3QgUkRNQSByb2NlIHR5cGVcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzUyX3VkcHNwbl9kbWFjLCBWMl9RUENfQllURV81Ml9VRFBTUE5fTSwKKwkJICAgICAgIFYyX1FQQ19CWVRFXzUyX1VEUFNQTl9TLAorCQkgICAgICAgaXNfdWRwID8gMHgxMmI3IDogMCk7CisKKwlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV81Ml91ZHBzcG5fZG1hYywgVjJfUVBDX0JZVEVfNTJfVURQU1BOX00sCisJCSAgICAgICBWMl9RUENfQllURV81Ml9VRFBTUE5fUywgMCk7CisKKwlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsCisJCSAgICAgICBWMl9RUENfQllURV8yMF9TR0lEX0lEWF9NLCBWMl9RUENfQllURV8yMF9TR0lEX0lEWF9TLAorCQkgICAgICAgZ3JoLT5zZ2lkX2luZGV4KTsKKworCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsCisJCSAgICAgICBWMl9RUENfQllURV8yMF9TR0lEX0lEWF9NLCBWMl9RUENfQllURV8yMF9TR0lEX0lEWF9TLCAwKTsKKworCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjRfbXR1X3RjLCBWMl9RUENfQllURV8yNF9IT1BfTElNSVRfTSwKKwkJICAgICAgIFYyX1FQQ19CWVRFXzI0X0hPUF9MSU1JVF9TLCBncmgtPmhvcF9saW1pdCk7CisJcm9jZV9zZXRfZmllbGQocXBjX21hc2stPmJ5dGVfMjRfbXR1X3RjLCBWMl9RUENfQllURV8yNF9IT1BfTElNSVRfTSwKKwkJICAgICAgIFYyX1FQQ19CWVRFXzI0X0hPUF9MSU1JVF9TLCAwKTsKKworCWlmIChocl9kZXYtPnBjaV9kZXYtPnJldmlzaW9uID09IDB4MjEgJiYgaXNfdWRwKQorCQlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzI0X210dV90YywgVjJfUVBDX0JZVEVfMjRfVENfTSwKKwkJCSAgICAgICBWMl9RUENfQllURV8yNF9UQ19TLCBncmgtPnRyYWZmaWNfY2xhc3MgPj4gMik7CisJZWxzZQorCQlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzI0X210dV90YywgVjJfUVBDX0JZVEVfMjRfVENfTSwKKwkJCSAgICAgICBWMl9RUENfQllURV8yNF9UQ19TLCBncmgtPnRyYWZmaWNfY2xhc3MpOworCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzI0X210dV90YywgVjJfUVBDX0JZVEVfMjRfVENfTSwKKwkJICAgICAgIFYyX1FQQ19CWVRFXzI0X1RDX1MsIDApOworCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjhfYXRfZmwsIFYyX1FQQ19CWVRFXzI4X0ZMX00sCisJCSAgICAgICBWMl9RUENfQllURV8yOF9GTF9TLCBncmgtPmZsb3dfbGFiZWwpOworCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzI4X2F0X2ZsLCBWMl9RUENfQllURV8yOF9GTF9NLAorCQkgICAgICAgVjJfUVBDX0JZVEVfMjhfRkxfUywgMCk7CisJbWVtY3B5KGNvbnRleHQtPmRnaWQsIGdyaC0+ZGdpZC5yYXcsIHNpemVvZihncmgtPmRnaWQucmF3KSk7CisJbWVtc2V0KHFwY19tYXNrLT5kZ2lkLCAwLCBzaXplb2YoZ3JoLT5kZ2lkLnJhdykpOworCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjhfYXRfZmwsIFYyX1FQQ19CWVRFXzI4X1NMX00sCisJCSAgICAgICBWMl9RUENfQllURV8yOF9TTF9TLCByZG1hX2FoX2dldF9zbCgmYXR0ci0+YWhfYXR0cikpOworCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzI4X2F0X2ZsLCBWMl9RUENfQllURV8yOF9TTF9NLAorCQkgICAgICAgVjJfUVBDX0JZVEVfMjhfU0xfUywgMCk7CisJaHJfcXAtPnNsID0gcmRtYV9haF9nZXRfc2woJmF0dHItPmFoX2F0dHIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaG5zX3JvY2VfdjJfc2V0X2Fic19maWVsZHMoc3RydWN0IGliX3FwICppYnFwLAorCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpYl9xcF9hdHRyICphdHRyLAorCQkJCSAgICAgIGludCBhdHRyX21hc2ssCisJCQkJICAgICAgZW51bSBpYl9xcF9zdGF0ZSBjdXJfc3RhdGUsCisJCQkJICAgICAgZW51bSBpYl9xcF9zdGF0ZSBuZXdfc3RhdGUsCisJCQkJICAgICAgc3RydWN0IGhuc19yb2NlX3YyX3FwX2NvbnRleHQgKmNvbnRleHQsCisJCQkJICAgICAgc3RydWN0IGhuc19yb2NlX3YyX3FwX2NvbnRleHQgKnFwY19tYXNrKQoreworCXN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiA9IHRvX2hyX2RldihpYnFwLT5kZXZpY2UpOworCWludCByZXQgPSAwOworCiAJaWYgKGN1cl9zdGF0ZSA9PSBJQl9RUFNfUkVTRVQgJiYgbmV3X3N0YXRlID09IElCX1FQU19JTklUKSB7CiAJCW1lbXNldChxcGNfbWFzaywgMCwgc2l6ZW9mKCpxcGNfbWFzaykpOwogCQltb2RpZnlfcXBfcmVzZXRfdG9faW5pdChpYnFwLCBhdHRyLCBhdHRyX21hc2ssIGNvbnRleHQsCkBAIC00MDE5LDEzNCArNDE4NCwzMCBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX21vZGlmeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJCS8qIE5vdGhpbmcgKi8KIAkJOwogCX0gZWxzZSB7Ci0JCWRldl9lcnIoZGV2LCAiSWxsZWdhbCBzdGF0ZSBmb3IgUVAhXG4iKTsKKwkJZGV2X2Vycihocl9kZXYtPmRldiwgIklsbGVnYWwgc3RhdGUgZm9yIFFQIVxuIik7CiAJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gb3V0OwogCX0KIAotCS8qIFdoZW4gUVAgc3RhdGUgaXMgZXJyLCBTUSBhbmQgUlEgV1FFIHNob3VsZCBiZSBmbHVzaGVkICovCi0JaWYgKG5ld19zdGF0ZSA9PSBJQl9RUFNfRVJSKSB7Ci0JCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMTYwX3NxX2NpX3BpLAotCQkJICAgICAgIFYyX1FQQ19CWVRFXzE2MF9TUV9QUk9EVUNFUl9JRFhfTSwKLQkJCSAgICAgICBWMl9RUENfQllURV8xNjBfU1FfUFJPRFVDRVJfSURYX1MsCi0JCQkgICAgICAgaHJfcXAtPnNxLmhlYWQpOwotCQlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV8xNjBfc3FfY2lfcGksCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMTYwX1NRX1BST0RVQ0VSX0lEWF9NLAotCQkJICAgICAgIFYyX1FQQ19CWVRFXzE2MF9TUV9QUk9EVUNFUl9JRFhfUywgMCk7CitvdXQ6CisJcmV0dXJuIHJldDsKK30KIAotCQlpZiAoIWlicXAtPnNycSkgewotCQkJcm9jZV9zZXRfZmllbGQoY29udGV4dC0+Ynl0ZV84NF9ycV9jaV9waSwKLQkJCSAgICAgICBWMl9RUENfQllURV84NF9SUV9QUk9EVUNFUl9JRFhfTSwKLQkJCSAgICAgICBWMl9RUENfQllURV84NF9SUV9QUk9EVUNFUl9JRFhfUywKLQkJCSAgICAgICBocl9xcC0+cnEuaGVhZCk7Ci0JCQlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV84NF9ycV9jaV9waSwKLQkJCSAgICAgICBWMl9RUENfQllURV84NF9SUV9QUk9EVUNFUl9JRFhfTSwKLQkJCSAgICAgICBWMl9RUENfQllURV84NF9SUV9QUk9EVUNFUl9JRFhfUywgMCk7Ci0JCX0KLQl9CitzdGF0aWMgaW50IGhuc19yb2NlX3YyX3NldF9vcHRfZmllbGRzKHN0cnVjdCBpYl9xcCAqaWJxcCwKKwkJCQkgICAgICBjb25zdCBzdHJ1Y3QgaWJfcXBfYXR0ciAqYXR0ciwKKwkJCQkgICAgICBpbnQgYXR0cl9tYXNrLAorCQkJCSAgICAgIHN0cnVjdCBobnNfcm9jZV92Ml9xcF9jb250ZXh0ICpjb250ZXh0LAorCQkJCSAgICAgIHN0cnVjdCBobnNfcm9jZV92Ml9xcF9jb250ZXh0ICpxcGNfbWFzaykKK3sKKwlzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYgPSB0b19ocl9kZXYoaWJxcC0+ZGV2aWNlKTsKKwlzdHJ1Y3QgaG5zX3JvY2VfcXAgKmhyX3FwID0gdG9faHJfcXAoaWJxcCk7CisJaW50IHJldCA9IDA7CiAKIAlpZiAoYXR0cl9tYXNrICYgSUJfUVBfQVYpIHsKLQkJY29uc3Qgc3RydWN0IGliX2dsb2JhbF9yb3V0ZSAqZ3JoID0KLQkJCQkJICAgIHJkbWFfYWhfcmVhZF9ncmgoJmF0dHItPmFoX2F0dHIpOwotCQljb25zdCBzdHJ1Y3QgaWJfZ2lkX2F0dHIgKmdpZF9hdHRyID0gTlVMTDsKLQkJaW50IGlzX3JvY2VfcHJvdG9jb2w7Ci0JCXUxNiB2bGFuID0gMHhmZmZmOwotCQl1OCBpYl9wb3J0OwotCQl1OCBocl9wb3J0OwotCi0JCWliX3BvcnQgPSAoYXR0cl9tYXNrICYgSUJfUVBfUE9SVCkgPyBhdHRyLT5wb3J0X251bSA6Ci0JCQkgICBocl9xcC0+cG9ydCArIDE7Ci0JCWhyX3BvcnQgPSBpYl9wb3J0IC0gMTsKLQkJaXNfcm9jZV9wcm90b2NvbCA9IHJkbWFfY2FwX2V0aF9haCgmaHJfZGV2LT5pYl9kZXYsIGliX3BvcnQpICYmCi0JCQkgICAgICAgcmRtYV9haF9nZXRfYWhfZmxhZ3MoJmF0dHItPmFoX2F0dHIpICYgSUJfQUhfR1JIOwotCi0JCWlmIChpc19yb2NlX3Byb3RvY29sKSB7Ci0JCQlnaWRfYXR0ciA9IGF0dHItPmFoX2F0dHIuZ3JoLnNnaWRfYXR0cjsKLQkJCXJldCA9IHJkbWFfcmVhZF9naWRfbDJfZmllbGRzKGdpZF9hdHRyLCAmdmxhbiwgTlVMTCk7Ci0JCQlpZiAocmV0KQotCQkJCWdvdG8gb3V0OwotCQl9Ci0KLQkJaWYgKHZsYW4gPCBWTEFOX0NGSV9NQVNLKSB7Ci0JCQlyb2NlX3NldF9iaXQoY29udGV4dC0+Ynl0ZV83Nl9zcnFuX29wX2VuLAotCQkJCSAgICAgVjJfUVBDX0JZVEVfNzZfUlFfVkxBTl9FTl9TLCAxKTsKLQkJCXJvY2Vfc2V0X2JpdChxcGNfbWFzay0+Ynl0ZV83Nl9zcnFuX29wX2VuLAotCQkJCSAgICAgVjJfUVBDX0JZVEVfNzZfUlFfVkxBTl9FTl9TLCAwKTsKLQkJCXJvY2Vfc2V0X2JpdChjb250ZXh0LT5ieXRlXzE2OF9pcnJsX2lkeCwKLQkJCQkgICAgIFYyX1FQQ19CWVRFXzE2OF9TUV9WTEFOX0VOX1MsIDEpOwotCQkJcm9jZV9zZXRfYml0KHFwY19tYXNrLT5ieXRlXzE2OF9pcnJsX2lkeCwKLQkJCQkgICAgIFYyX1FQQ19CWVRFXzE2OF9TUV9WTEFOX0VOX1MsIDApOwotCQl9Ci0KLQkJcm9jZV9zZXRfZmllbGQoY29udGV4dC0+Ynl0ZV8yNF9tdHVfdGMsCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjRfVkxBTl9JRF9NLAotCQkJICAgICAgIFYyX1FQQ19CWVRFXzI0X1ZMQU5fSURfUywgdmxhbik7Ci0JCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzI0X210dV90YywKLQkJCSAgICAgICBWMl9RUENfQllURV8yNF9WTEFOX0lEX00sCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjRfVkxBTl9JRF9TLCAwKTsKLQotCQlpZiAoZ3JoLT5zZ2lkX2luZGV4ID49IGhyX2Rldi0+Y2Fwcy5naWRfdGFibGVfbGVuW2hyX3BvcnRdKSB7Ci0JCQlkZXZfZXJyKGhyX2Rldi0+ZGV2LAotCQkJCSJzZ2lkX2luZGV4KCV1KSB0b28gbGFyZ2UuIG1heCBpcyAlZFxuIiwKLQkJCQlncmgtPnNnaWRfaW5kZXgsCi0JCQkJaHJfZGV2LT5jYXBzLmdpZF90YWJsZV9sZW5baHJfcG9ydF0pOwotCQkJcmV0ID0gLUVJTlZBTDsKLQkJCWdvdG8gb3V0OwotCQl9Ci0KLQkJaWYgKGF0dHItPmFoX2F0dHIudHlwZSAhPSBSRE1BX0FIX0FUVFJfVFlQRV9ST0NFKSB7Ci0JCQlkZXZfZXJyKGhyX2Rldi0+ZGV2LCAiYWggYXR0ciBpcyBub3QgUkRNQSByb2NlIHR5cGVcbiIpOwotCQkJcmV0ID0gLUVJTlZBTDsKLQkJCWdvdG8gb3V0OwotCQl9Ci0KLQkJcm9jZV9zZXRfZmllbGQoY29udGV4dC0+Ynl0ZV81Ml91ZHBzcG5fZG1hYywKLQkJCSAgIFYyX1FQQ19CWVRFXzUyX1VEUFNQTl9NLCBWMl9RUENfQllURV81Ml9VRFBTUE5fUywKLQkJCSAgIChnaWRfYXR0ci0+Z2lkX3R5cGUgIT0gSUJfR0lEX1RZUEVfUk9DRV9VRFBfRU5DQVApID8KLQkJCSAgIDAgOiAweDEyYjcpOwotCi0JCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzUyX3VkcHNwbl9kbWFjLAotCQkJICAgICAgIFYyX1FQQ19CWVRFXzUyX1VEUFNQTl9NLAotCQkJICAgICAgIFYyX1FQQ19CWVRFXzUyX1VEUFNQTl9TLCAwKTsKLQotCQlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjBfU0dJRF9JRFhfTSwKLQkJCSAgICAgICBWMl9RUENfQllURV8yMF9TR0lEX0lEWF9TLCBncmgtPnNnaWRfaW5kZXgpOwotCi0JCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjBfU0dJRF9JRFhfTSwKLQkJCSAgICAgICBWMl9RUENfQllURV8yMF9TR0lEX0lEWF9TLCAwKTsKLQotCQlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzI0X210dV90YywKLQkJCSAgICAgICBWMl9RUENfQllURV8yNF9IT1BfTElNSVRfTSwKLQkJCSAgICAgICBWMl9RUENfQllURV8yNF9IT1BfTElNSVRfUywgZ3JoLT5ob3BfbGltaXQpOwotCQlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV8yNF9tdHVfdGMsCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjRfSE9QX0xJTUlUX00sCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjRfSE9QX0xJTUlUX1MsIDApOwotCi0JCWlmIChocl9kZXYtPnBjaV9kZXYtPnJldmlzaW9uID09IDB4MjEgJiYKLQkJICAgIGdpZF9hdHRyLT5naWRfdHlwZSA9PSBJQl9HSURfVFlQRV9ST0NFX1VEUF9FTkNBUCkKLQkJCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjRfbXR1X3RjLAotCQkJCSAgICAgICBWMl9RUENfQllURV8yNF9UQ19NLCBWMl9RUENfQllURV8yNF9UQ19TLAotCQkJCSAgICAgICBncmgtPnRyYWZmaWNfY2xhc3MgPj4gMik7Ci0JCWVsc2UKLQkJCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjRfbXR1X3RjLAotCQkJCSAgICAgICBWMl9RUENfQllURV8yNF9UQ19NLCBWMl9RUENfQllURV8yNF9UQ19TLAotCQkJCSAgICAgICBncmgtPnRyYWZmaWNfY2xhc3MpOwotCQlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV8yNF9tdHVfdGMsIFYyX1FQQ19CWVRFXzI0X1RDX00sCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjRfVENfUywgMCk7Ci0JCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjhfYXRfZmwsIFYyX1FQQ19CWVRFXzI4X0ZMX00sCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjhfRkxfUywgZ3JoLT5mbG93X2xhYmVsKTsKLQkJcm9jZV9zZXRfZmllbGQocXBjX21hc2stPmJ5dGVfMjhfYXRfZmwsIFYyX1FQQ19CWVRFXzI4X0ZMX00sCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjhfRkxfUywgMCk7Ci0JCW1lbWNweShjb250ZXh0LT5kZ2lkLCBncmgtPmRnaWQucmF3LCBzaXplb2YoZ3JoLT5kZ2lkLnJhdykpOwotCQltZW1zZXQocXBjX21hc2stPmRnaWQsIDAsIHNpemVvZihncmgtPmRnaWQucmF3KSk7Ci0JCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjhfYXRfZmwsIFYyX1FQQ19CWVRFXzI4X1NMX00sCi0JCQkgICAgICAgVjJfUVBDX0JZVEVfMjhfU0xfUywKLQkJCSAgICAgICByZG1hX2FoX2dldF9zbCgmYXR0ci0+YWhfYXR0cikpOwotCQlyb2NlX3NldF9maWVsZChxcGNfbWFzay0+Ynl0ZV8yOF9hdF9mbCwgVjJfUVBDX0JZVEVfMjhfU0xfTSwKLQkJCSAgICAgICBWMl9RUENfQllURV8yOF9TTF9TLCAwKTsKLQkJaHJfcXAtPnNsID0gcmRtYV9haF9nZXRfc2woJmF0dHItPmFoX2F0dHIpOworCQlyZXQgPSBobnNfcm9jZV92Ml9zZXRfcGF0aChpYnFwLCBhdHRyLCBhdHRyX21hc2ssIGNvbnRleHQsCisJCQkJCSAgIHFwY19tYXNrKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CiAJfQogCiAJaWYgKGF0dHJfbWFzayAmIElCX1FQX1RJTUVPVVQpIHsKQEAgLTQxNTgsNyArNDIxOSw4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfbW9kaWZ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwKIAkJCQkgICAgICAgVjJfUVBDX0JZVEVfMjhfQVRfTSwgVjJfUVBDX0JZVEVfMjhfQVRfUywKIAkJCQkgICAgICAgMCk7CiAJCX0gZWxzZSB7Ci0JCQlkZXZfd2FybihkZXYsICJMb2NhbCBBQ0sgdGltZW91dCBzaGFsbCBiZSAwIHRvIDMwLlxuIik7CisJCQlkZXZfd2Fybihocl9kZXYtPmRldiwKKwkJCQkgIkxvY2FsIEFDSyB0aW1lb3V0IHNoYWxsIGJlIDAgdG8gMzAuXG4iKTsKIAkJfQogCX0KIApAQCAtNDE5Niw2ICs0MjU4LDcgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9tb2RpZnlfcXAoc3RydWN0IGliX3FwICppYnFwLAogCQkJICAgICAgIFYyX1FQQ19CWVRFXzI0NF9STlJfQ05UX1MsIDApOwogCX0KIAorCS8qIFJDJlVDJlVEIHJlcXVpcmVkIGF0dHIgKi8KIAlpZiAoYXR0cl9tYXNrICYgSUJfUVBfU1FfUFNOKSB7CiAJCXJvY2Vfc2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMTcyX3NxX3BzbiwKIAkJCSAgICAgICBWMl9RUENfQllURV8xNzJfU1FfQ1VSX1BTTl9NLApAQCAtNDI5MCwxMSArNDM1Myw4NSBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX21vZGlmeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJfQogCiAJaWYgKGF0dHJfbWFzayAmIElCX1FQX1FLRVkpIHsKLQkJY29udGV4dC0+cWtleV94cmNkID0gYXR0ci0+cWtleTsKKwkJY29udGV4dC0+cWtleV94cmNkID0gY3B1X3RvX2xlMzIoYXR0ci0+cWtleSk7CiAJCXFwY19tYXNrLT5xa2V5X3hyY2QgPSAwOwogCQlocl9xcC0+cWtleSA9IGF0dHItPnFrZXk7CiAJfQogCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgaG5zX3JvY2VfdjJfcmVjb3JkX29wdF9maWVsZHMoc3RydWN0IGliX3FwICppYnFwLAorCQkJCQkgIGNvbnN0IHN0cnVjdCBpYl9xcF9hdHRyICphdHRyLAorCQkJCQkgIGludCBhdHRyX21hc2spCit7CisJc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2ID0gdG9faHJfZGV2KGlicXAtPmRldmljZSk7CisJc3RydWN0IGhuc19yb2NlX3FwICpocl9xcCA9IHRvX2hyX3FwKGlicXApOworCisJaWYgKGF0dHJfbWFzayAmIElCX1FQX0FDQ0VTU19GTEFHUykKKwkJaHJfcXAtPmF0b21pY19yZF9lbiA9IGF0dHItPnFwX2FjY2Vzc19mbGFnczsKKworCWlmIChhdHRyX21hc2sgJiBJQl9RUF9NQVhfREVTVF9SRF9BVE9NSUMpCisJCWhyX3FwLT5yZXNwX2RlcHRoID0gYXR0ci0+bWF4X2Rlc3RfcmRfYXRvbWljOworCWlmIChhdHRyX21hc2sgJiBJQl9RUF9QT1JUKSB7CisJCWhyX3FwLT5wb3J0ID0gYXR0ci0+cG9ydF9udW0gLSAxOworCQlocl9xcC0+cGh5X3BvcnQgPSBocl9kZXYtPmlib2UucGh5X3BvcnRbaHJfcXAtPnBvcnRdOworCX0KK30KKworc3RhdGljIGludCBobnNfcm9jZV92Ml9tb2RpZnlfcXAoc3RydWN0IGliX3FwICppYnFwLAorCQkJCSBjb25zdCBzdHJ1Y3QgaWJfcXBfYXR0ciAqYXR0ciwKKwkJCQkgaW50IGF0dHJfbWFzaywgZW51bSBpYl9xcF9zdGF0ZSBjdXJfc3RhdGUsCisJCQkJIGVudW0gaWJfcXBfc3RhdGUgbmV3X3N0YXRlKQoreworCXN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiA9IHRvX2hyX2RldihpYnFwLT5kZXZpY2UpOworCXN0cnVjdCBobnNfcm9jZV9xcCAqaHJfcXAgPSB0b19ocl9xcChpYnFwKTsKKwlzdHJ1Y3QgaG5zX3JvY2VfdjJfcXBfY29udGV4dCBjdHhbMl07CisJc3RydWN0IGhuc19yb2NlX3YyX3FwX2NvbnRleHQgKmNvbnRleHQgPSBjdHg7CisJc3RydWN0IGhuc19yb2NlX3YyX3FwX2NvbnRleHQgKnFwY19tYXNrID0gY3R4ICsgMTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKKwlpbnQgcmV0OworCisJLyoKKwkgKiBJbiB2MiBlbmdpbmUsIHNvZnR3YXJlIHBhc3MgY29udGV4dCBhbmQgY29udGV4dCBtYXNrIHRvIGhhcmR3YXJlCisJICogd2hlbiBtb2RpZnlpbmcgcXAuIElmIHNvZnR3YXJlIG5lZWQgbW9kaWZ5IHNvbWUgZmllbGRzIGluIGNvbnRleHQsCisJICogd2Ugc2hvdWxkIHNldCBhbGwgYml0cyBvZiB0aGUgcmVsZXZhbnQgZmllbGRzIGluIGNvbnRleHQgbWFzayB0bworCSAqIDAgYXQgdGhlIHNhbWUgdGltZSwgZWxzZSBzZXQgdGhlbSB0byAweDEuCisJICovCisJbWVtc2V0KGNvbnRleHQsIDAsIHNpemVvZigqY29udGV4dCkpOworCW1lbXNldChxcGNfbWFzaywgMHhmZiwgc2l6ZW9mKCpxcGNfbWFzaykpOworCXJldCA9IGhuc19yb2NlX3YyX3NldF9hYnNfZmllbGRzKGlicXAsIGF0dHIsIGF0dHJfbWFzaywgY3VyX3N0YXRlLAorCQkJCQkgbmV3X3N0YXRlLCBjb250ZXh0LCBxcGNfbWFzayk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwkvKiBXaGVuIFFQIHN0YXRlIGlzIGVyciwgU1EgYW5kIFJRIFdRRSBzaG91bGQgYmUgZmx1c2hlZCAqLworCWlmIChuZXdfc3RhdGUgPT0gSUJfUVBTX0VSUikgeworCQlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzE2MF9zcV9jaV9waSwKKwkJCSAgICAgICBWMl9RUENfQllURV8xNjBfU1FfUFJPRFVDRVJfSURYX00sCisJCQkgICAgICAgVjJfUVBDX0JZVEVfMTYwX1NRX1BST0RVQ0VSX0lEWF9TLAorCQkJICAgICAgIGhyX3FwLT5zcS5oZWFkKTsKKwkJcm9jZV9zZXRfZmllbGQocXBjX21hc2stPmJ5dGVfMTYwX3NxX2NpX3BpLAorCQkJICAgICAgIFYyX1FQQ19CWVRFXzE2MF9TUV9QUk9EVUNFUl9JRFhfTSwKKwkJCSAgICAgICBWMl9RUENfQllURV8xNjBfU1FfUFJPRFVDRVJfSURYX1MsIDApOworCisJCWlmICghaWJxcC0+c3JxKSB7CisJCQlyb2NlX3NldF9maWVsZChjb250ZXh0LT5ieXRlXzg0X3JxX2NpX3BpLAorCQkJICAgICAgIFYyX1FQQ19CWVRFXzg0X1JRX1BST0RVQ0VSX0lEWF9NLAorCQkJICAgICAgIFYyX1FQQ19CWVRFXzg0X1JRX1BST0RVQ0VSX0lEWF9TLAorCQkJICAgICAgIGhyX3FwLT5ycS5oZWFkKTsKKwkJCXJvY2Vfc2V0X2ZpZWxkKHFwY19tYXNrLT5ieXRlXzg0X3JxX2NpX3BpLAorCQkJICAgICAgIFYyX1FQQ19CWVRFXzg0X1JRX1BST0RVQ0VSX0lEWF9NLAorCQkJICAgICAgIFYyX1FQQ19CWVRFXzg0X1JRX1BST0RVQ0VSX0lEWF9TLCAwKTsKKwkJfQorCX0KKworCS8qIENvbmZpZ3VyZSB0aGUgb3B0aW9uYWwgZmllbGRzICovCisJcmV0ID0gaG5zX3JvY2VfdjJfc2V0X29wdF9maWVsZHMoaWJxcCwgYXR0ciwgYXR0cl9tYXNrLCBjb250ZXh0LAorCQkJCQkgcXBjX21hc2spOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCiAJcm9jZV9zZXRfYml0KGNvbnRleHQtPmJ5dGVfMTA4X3J4X3JlcWVwc24sIFYyX1FQQ19CWVRFXzEwOF9JTlZfQ1JFRElUX1MsCiAJCSAgICAgaWJxcC0+c3JxID8gMSA6IDApOwogCXJvY2Vfc2V0X2JpdChxcGNfbWFzay0+Ynl0ZV8xMDhfcnhfcmVxZXBzbiwKQEAgLTQzMDcsOCArNDQ0NCw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfbW9kaWZ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwKIAkJICAgICAgIFYyX1FQQ19CWVRFXzYwX1FQX1NUX1MsIDApOwogCiAJLyogU1cgcGFzcyBjb250ZXh0IHRvIEhXICovCi0JcmV0ID0gaG5zX3JvY2VfdjJfcXBfbW9kaWZ5KGhyX2RldiwgY3VyX3N0YXRlLCBuZXdfc3RhdGUsCi0JCQkJICAgIGNvbnRleHQsIGhyX3FwKTsKKwlyZXQgPSBobnNfcm9jZV92Ml9xcF9tb2RpZnkoaHJfZGV2LCBjdXJfc3RhdGUsIG5ld19zdGF0ZSwgY3R4LCBocl9xcCk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldiwgImhuc19yb2NlX3FwX21vZGlmeSBmYWlsZWQoJWQpXG4iLCByZXQpOwogCQlnb3RvIG91dDsKQEAgLTQzMTYsMTUgKzQ0NTIsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX21vZGlmeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAKIAlocl9xcC0+c3RhdGUgPSBuZXdfc3RhdGU7CiAKLQlpZiAoYXR0cl9tYXNrICYgSUJfUVBfQUNDRVNTX0ZMQUdTKQotCQlocl9xcC0+YXRvbWljX3JkX2VuID0gYXR0ci0+cXBfYWNjZXNzX2ZsYWdzOwotCi0JaWYgKGF0dHJfbWFzayAmIElCX1FQX01BWF9ERVNUX1JEX0FUT01JQykKLQkJaHJfcXAtPnJlc3BfZGVwdGggPSBhdHRyLT5tYXhfZGVzdF9yZF9hdG9taWM7Ci0JaWYgKGF0dHJfbWFzayAmIElCX1FQX1BPUlQpIHsKLQkJaHJfcXAtPnBvcnQgPSBhdHRyLT5wb3J0X251bSAtIDE7Ci0JCWhyX3FwLT5waHlfcG9ydCA9IGhyX2Rldi0+aWJvZS5waHlfcG9ydFtocl9xcC0+cG9ydF07Ci0JfQorCWhuc19yb2NlX3YyX3JlY29yZF9vcHRfZmllbGRzKGlicXAsIGF0dHIsIGF0dHJfbWFzayk7CiAKIAlpZiAobmV3X3N0YXRlID09IElCX1FQU19SRVNFVCAmJiAhaWJxcC0+dW9iamVjdCkgewogCQlobnNfcm9jZV92Ml9jcV9jbGVhbih0b19ocl9jcShpYnFwLT5yZWN2X2NxKSwgaHJfcXAtPnFwbiwKQEAgLTQzNDQsNyArNDQ3Miw2IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfbW9kaWZ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwKIAl9CiAKIG91dDoKLQlrZnJlZShjb250ZXh0KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC00Mzk1LDE2ICs0NTIyLDEyIEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfcXVlcnlfcXAoc3RydWN0IGliX3FwICppYnFwLCBzdHJ1Y3QgaWJfcXBfYXR0ciAqcXBfYXR0ciwKIHsKIAlzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYgPSB0b19ocl9kZXYoaWJxcC0+ZGV2aWNlKTsKIAlzdHJ1Y3QgaG5zX3JvY2VfcXAgKmhyX3FwID0gdG9faHJfcXAoaWJxcCk7Ci0Jc3RydWN0IGhuc19yb2NlX3YyX3FwX2NvbnRleHQgKmNvbnRleHQ7CisJc3RydWN0IGhuc19yb2NlX3YyX3FwX2NvbnRleHQgY29udGV4dCA9IHt9OwogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhyX2Rldi0+ZGV2OwogCWludCB0bXBfcXBfc3RhdGU7CiAJaW50IHN0YXRlOwogCWludCByZXQ7CiAKLQljb250ZXh0ID0ga3phbGxvYyhzaXplb2YoKmNvbnRleHQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWNvbnRleHQpCi0JCXJldHVybiAtRU5PTUVNOwotCiAJbWVtc2V0KHFwX2F0dHIsIDAsIHNpemVvZigqcXBfYXR0cikpOwogCW1lbXNldChxcF9pbml0X2F0dHIsIDAsIHNpemVvZigqcXBfaW5pdF9hdHRyKSk7CiAKQEAgLTQ0MTYsMTQgKzQ1MzksMTQgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9xdWVyeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsIHN0cnVjdCBpYl9xcF9hdHRyICpxcF9hdHRyLAogCQlnb3RvIGRvbmU7CiAJfQogCi0JcmV0ID0gaG5zX3JvY2VfdjJfcXVlcnlfcXBjKGhyX2RldiwgaHJfcXAsIGNvbnRleHQpOworCXJldCA9IGhuc19yb2NlX3YyX3F1ZXJ5X3FwYyhocl9kZXYsIGhyX3FwLCAmY29udGV4dCk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldiwgInF1ZXJ5IHFwYyBlcnJvclxuIik7CiAJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gb3V0OwogCX0KIAotCXN0YXRlID0gcm9jZV9nZXRfZmllbGQoY29udGV4dC0+Ynl0ZV82MF9xcHN0X3RlbXBpZCwKKwlzdGF0ZSA9IHJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQuYnl0ZV82MF9xcHN0X3RlbXBpZCwKIAkJCSAgICAgICBWMl9RUENfQllURV82MF9RUF9TVF9NLCBWMl9RUENfQllURV82MF9RUF9TVF9TKTsKIAl0bXBfcXBfc3RhdGUgPSB0b19pYl9xcF9zdCgoZW51bSBobnNfcm9jZV92Ml9xcF9zdGF0ZSlzdGF0ZSk7CiAJaWYgKHRtcF9xcF9zdGF0ZSA9PSAtMSkgewpAQCAtNDQzMyw3ICs0NTU2LDcgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9xdWVyeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsIHN0cnVjdCBpYl9xcF9hdHRyICpxcF9hdHRyLAogCX0KIAlocl9xcC0+c3RhdGUgPSAodTgpdG1wX3FwX3N0YXRlOwogCXFwX2F0dHItPnFwX3N0YXRlID0gKGVudW0gaWJfcXBfc3RhdGUpaHJfcXAtPnN0YXRlOwotCXFwX2F0dHItPnBhdGhfbXR1ID0gKGVudW0gaWJfbXR1KXJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjRfbXR1X3RjLAorCXFwX2F0dHItPnBhdGhfbXR1ID0gKGVudW0gaWJfbXR1KXJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQuYnl0ZV8yNF9tdHVfdGMsCiAJCQkJCQkJVjJfUVBDX0JZVEVfMjRfTVRVX00sCiAJCQkJCQkJVjJfUVBDX0JZVEVfMjRfTVRVX1MpOwogCXFwX2F0dHItPnBhdGhfbWlnX3N0YXRlID0gSUJfTUlHX0FSTUVEOwpAQCAtNDQ0MSwyMCArNDU2NCwyMCBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX3F1ZXJ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwgc3RydWN0IGliX3FwX2F0dHIgKnFwX2F0dHIsCiAJaWYgKGhyX3FwLT5pYnFwLnFwX3R5cGUgPT0gSUJfUVBUX1VEKQogCQlxcF9hdHRyLT5xa2V5ID0gVjJfUUtFWV9WQUw7CiAKLQlxcF9hdHRyLT5ycV9wc24gPSByb2NlX2dldF9maWVsZChjb250ZXh0LT5ieXRlXzEwOF9yeF9yZXFlcHNuLAorCXFwX2F0dHItPnJxX3BzbiA9IHJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQuYnl0ZV8xMDhfcnhfcmVxZXBzbiwKIAkJCQkJIFYyX1FQQ19CWVRFXzEwOF9SWF9SRVFfRVBTTl9NLAogCQkJCQkgVjJfUVBDX0JZVEVfMTA4X1JYX1JFUV9FUFNOX1MpOwotCXFwX2F0dHItPnNxX3BzbiA9ICh1MzIpcm9jZV9nZXRfZmllbGQoY29udGV4dC0+Ynl0ZV8xNzJfc3FfcHNuLAorCXFwX2F0dHItPnNxX3BzbiA9ICh1MzIpcm9jZV9nZXRfZmllbGQoY29udGV4dC5ieXRlXzE3Ml9zcV9wc24sCiAJCQkJCSAgICAgIFYyX1FQQ19CWVRFXzE3Ml9TUV9DVVJfUFNOX00sCiAJCQkJCSAgICAgIFYyX1FQQ19CWVRFXzE3Ml9TUV9DVVJfUFNOX1MpOwotCXFwX2F0dHItPmRlc3RfcXBfbnVtID0gKHU4KXJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfNTZfZHFwbl9lcnIsCisJcXBfYXR0ci0+ZGVzdF9xcF9udW0gPSAodTgpcm9jZV9nZXRfZmllbGQoY29udGV4dC5ieXRlXzU2X2RxcG5fZXJyLAogCQkJCQkJICBWMl9RUENfQllURV81Nl9EUVBOX00sCiAJCQkJCQkgIFYyX1FQQ19CWVRFXzU2X0RRUE5fUyk7Ci0JcXBfYXR0ci0+cXBfYWNjZXNzX2ZsYWdzID0gKChyb2NlX2dldF9iaXQoY29udGV4dC0+Ynl0ZV83Nl9zcnFuX29wX2VuLAotCQkJCSAgICBWMl9RUENfQllURV83Nl9SUkVfUykpIDw8IFYyX1FQX1JXRV9TKSB8Ci0JCQkJICAgICgocm9jZV9nZXRfYml0KGNvbnRleHQtPmJ5dGVfNzZfc3Jxbl9vcF9lbiwKLQkJCQkgICAgVjJfUVBDX0JZVEVfNzZfUldFX1MpKSA8PCBWMl9RUF9SUkVfUykgfAotCQkJCSAgICAoKHJvY2VfZ2V0X2JpdChjb250ZXh0LT5ieXRlXzc2X3NycW5fb3BfZW4sCisJcXBfYXR0ci0+cXBfYWNjZXNzX2ZsYWdzID0gKChyb2NlX2dldF9iaXQoY29udGV4dC5ieXRlXzc2X3NycW5fb3BfZW4sCisJCQkJICAgIFYyX1FQQ19CWVRFXzc2X1JSRV9TKSkgPDwgVjJfUVBfUlJFX1MpIHwKKwkJCQkgICAgKChyb2NlX2dldF9iaXQoY29udGV4dC5ieXRlXzc2X3NycW5fb3BfZW4sCisJCQkJICAgIFYyX1FQQ19CWVRFXzc2X1JXRV9TKSkgPDwgVjJfUVBfUldFX1MpIHwKKwkJCQkgICAgKChyb2NlX2dldF9iaXQoY29udGV4dC5ieXRlXzc2X3NycW5fb3BfZW4sCiAJCQkJICAgIFYyX1FQQ19CWVRFXzc2X0FURV9TKSkgPDwgVjJfUVBfQVRFX1MpOwogCiAJaWYgKGhyX3FwLT5pYnFwLnFwX3R5cGUgPT0gSUJfUVBUX1JDIHx8CkBAIC00NDYzLDQzICs0NTg2LDQzIEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfcXVlcnlfcXAoc3RydWN0IGliX3FwICppYnFwLCBzdHJ1Y3QgaWJfcXBfYXR0ciAqcXBfYXR0ciwKIAkJCQlyZG1hX2FoX3JldHJpZXZlX2dyaCgmcXBfYXR0ci0+YWhfYXR0cik7CiAKIAkJcmRtYV9haF9zZXRfc2woJnFwX2F0dHItPmFoX2F0dHIsCi0JCQkgICAgICAgcm9jZV9nZXRfZmllbGQoY29udGV4dC0+Ynl0ZV8yOF9hdF9mbCwKKwkJCSAgICAgICByb2NlX2dldF9maWVsZChjb250ZXh0LmJ5dGVfMjhfYXRfZmwsCiAJCQkJCSAgICAgIFYyX1FQQ19CWVRFXzI4X1NMX00sCiAJCQkJCSAgICAgIFYyX1FQQ19CWVRFXzI4X1NMX1MpKTsKLQkJZ3JoLT5mbG93X2xhYmVsID0gcm9jZV9nZXRfZmllbGQoY29udGV4dC0+Ynl0ZV8yOF9hdF9mbCwKKwkJZ3JoLT5mbG93X2xhYmVsID0gcm9jZV9nZXRfZmllbGQoY29udGV4dC5ieXRlXzI4X2F0X2ZsLAogCQkJCQkJIFYyX1FQQ19CWVRFXzI4X0ZMX00sCiAJCQkJCQkgVjJfUVBDX0JZVEVfMjhfRkxfUyk7Ci0JCWdyaC0+c2dpZF9pbmRleCA9IHJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjBfc21hY19zZ2lkX2lkeCwKKwkJZ3JoLT5zZ2lkX2luZGV4ID0gcm9jZV9nZXRfZmllbGQoY29udGV4dC5ieXRlXzIwX3NtYWNfc2dpZF9pZHgsCiAJCQkJCQkgVjJfUVBDX0JZVEVfMjBfU0dJRF9JRFhfTSwKIAkJCQkJCSBWMl9RUENfQllURV8yMF9TR0lEX0lEWF9TKTsKLQkJZ3JoLT5ob3BfbGltaXQgPSByb2NlX2dldF9maWVsZChjb250ZXh0LT5ieXRlXzI0X210dV90YywKKwkJZ3JoLT5ob3BfbGltaXQgPSByb2NlX2dldF9maWVsZChjb250ZXh0LmJ5dGVfMjRfbXR1X3RjLAogCQkJCQkJVjJfUVBDX0JZVEVfMjRfSE9QX0xJTUlUX00sCiAJCQkJCQlWMl9RUENfQllURV8yNF9IT1BfTElNSVRfUyk7Ci0JCWdyaC0+dHJhZmZpY19jbGFzcyA9IHJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjRfbXR1X3RjLAorCQlncmgtPnRyYWZmaWNfY2xhc3MgPSByb2NlX2dldF9maWVsZChjb250ZXh0LmJ5dGVfMjRfbXR1X3RjLAogCQkJCQkJICAgIFYyX1FQQ19CWVRFXzI0X1RDX00sCiAJCQkJCQkgICAgVjJfUVBDX0JZVEVfMjRfVENfUyk7CiAKLQkJbWVtY3B5KGdyaC0+ZGdpZC5yYXcsIGNvbnRleHQtPmRnaWQsIHNpemVvZihncmgtPmRnaWQucmF3KSk7CisJCW1lbWNweShncmgtPmRnaWQucmF3LCBjb250ZXh0LmRnaWQsIHNpemVvZihncmgtPmRnaWQucmF3KSk7CiAJfQogCiAJcXBfYXR0ci0+cG9ydF9udW0gPSBocl9xcC0+cG9ydCArIDE7CiAJcXBfYXR0ci0+c3FfZHJhaW5pbmcgPSAwOwotCXFwX2F0dHItPm1heF9yZF9hdG9taWMgPSAxIDw8IHJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQtPmJ5dGVfMjA4X2lycmwsCisJcXBfYXR0ci0+bWF4X3JkX2F0b21pYyA9IDEgPDwgcm9jZV9nZXRfZmllbGQoY29udGV4dC5ieXRlXzIwOF9pcnJsLAogCQkJCQkJICAgICBWMl9RUENfQllURV8yMDhfU1JfTUFYX00sCiAJCQkJCQkgICAgIFYyX1FQQ19CWVRFXzIwOF9TUl9NQVhfUyk7Ci0JcXBfYXR0ci0+bWF4X2Rlc3RfcmRfYXRvbWljID0gMSA8PCByb2NlX2dldF9maWVsZChjb250ZXh0LT5ieXRlXzE0MF9yYXEsCisJcXBfYXR0ci0+bWF4X2Rlc3RfcmRfYXRvbWljID0gMSA8PCByb2NlX2dldF9maWVsZChjb250ZXh0LmJ5dGVfMTQwX3JhcSwKIAkJCQkJCSAgICAgVjJfUVBDX0JZVEVfMTQwX1JSX01BWF9NLAogCQkJCQkJICAgICBWMl9RUENfQllURV8xNDBfUlJfTUFYX1MpOwotCXFwX2F0dHItPm1pbl9ybnJfdGltZXIgPSAodTgpcm9jZV9nZXRfZmllbGQoY29udGV4dC0+Ynl0ZV84MF9ybnJfcnhfY3FuLAorCXFwX2F0dHItPm1pbl9ybnJfdGltZXIgPSAodTgpcm9jZV9nZXRfZmllbGQoY29udGV4dC5ieXRlXzgwX3Jucl9yeF9jcW4sCiAJCQkJCQkgVjJfUVBDX0JZVEVfODBfTUlOX1JOUl9USU1FX00sCiAJCQkJCQkgVjJfUVBDX0JZVEVfODBfTUlOX1JOUl9USU1FX1MpOwotCXFwX2F0dHItPnRpbWVvdXQgPSAodTgpcm9jZV9nZXRfZmllbGQoY29udGV4dC0+Ynl0ZV8yOF9hdF9mbCwKKwlxcF9hdHRyLT50aW1lb3V0ID0gKHU4KXJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQuYnl0ZV8yOF9hdF9mbCwKIAkJCQkJICAgICAgVjJfUVBDX0JZVEVfMjhfQVRfTSwKIAkJCQkJICAgICAgVjJfUVBDX0JZVEVfMjhfQVRfUyk7Ci0JcXBfYXR0ci0+cmV0cnlfY250ID0gcm9jZV9nZXRfZmllbGQoY29udGV4dC0+Ynl0ZV8yMTJfbHNuLAorCXFwX2F0dHItPnJldHJ5X2NudCA9IHJvY2VfZ2V0X2ZpZWxkKGNvbnRleHQuYnl0ZV8yMTJfbHNuLAogCQkJCQkgICAgVjJfUVBDX0JZVEVfMjEyX1JFVFJZX0NOVF9NLAogCQkJCQkgICAgVjJfUVBDX0JZVEVfMjEyX1JFVFJZX0NOVF9TKTsKLQlxcF9hdHRyLT5ybnJfcmV0cnkgPSBjb250ZXh0LT5ycV9ybnJfdGltZXI7CisJcXBfYXR0ci0+cm5yX3JldHJ5ID0gbGUzMl90b19jcHUoY29udGV4dC5ycV9ybnJfdGltZXIpOwogCiBkb25lOgogCXFwX2F0dHItPmN1cl9xcF9zdGF0ZSA9IHFwX2F0dHItPnFwX3N0YXRlOwpAQCAtNDUxOCw3ICs0NjQxLDYgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9xdWVyeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsIHN0cnVjdCBpYl9xcF9hdHRyICpxcF9hdHRyLAogCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZocl9xcC0+bXV0ZXgpOwotCWtmcmVlKGNvbnRleHQpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTQ1MjcsNyArNDY0OSw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfZGVzdHJveV9xcF9jb21tb24oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQkJCQkgc3RydWN0IGliX3VkYXRhICp1ZGF0YSkKIHsKIAlzdHJ1Y3QgaG5zX3JvY2VfY3EgKnNlbmRfY3EsICpyZWN2X2NxOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhyX2Rldi0+ZGV2OworCXN0cnVjdCBpYl9kZXZpY2UgKmliZGV2ID0gJmhyX2Rldi0+aWJfZGV2OwogCWludCByZXQ7CiAKIAlpZiAoaHJfcXAtPmlicXAucXBfdHlwZSA9PSBJQl9RUFRfUkMgJiYgaHJfcXAtPnN0YXRlICE9IElCX1FQU19SRVNFVCkgewpAQCAtNDUzNSw4ICs0NjU3LDcgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9kZXN0cm95X3FwX2NvbW1vbihzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCXJldCA9IGhuc19yb2NlX3YyX21vZGlmeV9xcCgmaHJfcXAtPmlicXAsIE5VTEwsIDAsCiAJCQkJCSAgICBocl9xcC0+c3RhdGUsIElCX1FQU19SRVNFVCk7CiAJCWlmIChyZXQpIHsKLQkJCWRldl9lcnIoZGV2LCAibW9kaWZ5IFFQICUwNmx4IHRvIEVSUiBmYWlsZWQuXG4iLAotCQkJCWhyX3FwLT5xcG4pOworCQkJaWJkZXZfZXJyKGliZGV2LCAibW9kaWZ5IFFQIHRvIFJlc2V0IGZhaWxlZC5cbiIpOwogCQkJcmV0dXJuIHJldDsKIAkJfQogCX0KQEAgLTQ2MDUsNyArNDcyNiw4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfZGVzdHJveV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEpCiAKIAlyZXQgPSBobnNfcm9jZV92Ml9kZXN0cm95X3FwX2NvbW1vbihocl9kZXYsIGhyX3FwLCB1ZGF0YSk7CiAJaWYgKHJldCkgewotCQlkZXZfZXJyKGhyX2Rldi0+ZGV2LCAiRGVzdHJveSBxcCBmYWlsZWQoJWQpXG4iLCByZXQpOworCQlpYmRldl9lcnIoJmhyX2Rldi0+aWJfZGV2LCAiRGVzdHJveSBxcCAweCUwNmx4IGZhaWxlZCglZClcbiIsCisJCQkgIGhyX3FwLT5xcG4sIHJldCk7CiAJCXJldHVybiByZXQ7CiAJfQogCkBAIC00ODI5LDcgKzQ5NTEsNyBAQCBzdGF0aWMgdm9pZCBobnNfcm9jZV92Ml9pbml0X2lycV93b3JrKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIHN0YXRpYyB2b2lkIHNldF9lcV9jb25zX2luZGV4X3YyKHN0cnVjdCBobnNfcm9jZV9lcSAqZXEpCiB7CiAJc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2ID0gZXEtPmhyX2RldjsKLQl1MzIgZG9vcmJlbGxbMl07CisJX19sZTMyIGRvb3JiZWxsWzJdOwogCiAJZG9vcmJlbGxbMF0gPSAwOwogCWRvb3JiZWxsWzFdID0gMDsKQEAgLTQ5MDQsNyArNTAyNiw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfYWVxX2ludChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCQkgICAgICAgc3RydWN0IGhuc19yb2NlX2VxICplcSkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKLQlzdHJ1Y3QgaG5zX3JvY2VfYWVxZSAqYWVxZTsKKwlzdHJ1Y3QgaG5zX3JvY2VfYWVxZSAqYWVxZSA9IG5leHRfYWVxZV9zd192MihlcSk7CiAJaW50IGFlcWVfZm91bmQgPSAwOwogCWludCBldmVudF90eXBlOwogCWludCBzdWJfdHlwZTsKQEAgLTQ5MTIsOCArNTAzNCw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfYWVxX2ludChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJdTMyIHFwbjsKIAl1MzIgY3FuOwogCi0Jd2hpbGUgKChhZXFlID0gbmV4dF9hZXFlX3N3X3YyKGVxKSkpIHsKLQorCXdoaWxlIChhZXFlKSB7CiAJCS8qIE1ha2Ugc3VyZSB3ZSByZWFkIEFFUSBlbnRyeSBhZnRlciB3ZSBoYXZlIGNoZWNrZWQgdGhlCiAJCSAqIG93bmVyc2hpcCBiaXQKIAkJICovCkBAIC00OTc3LDExICs1MDk4LDEyIEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfYWVxX2ludChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCSsrZXEtPmNvbnNfaW5kZXg7CiAJCWFlcWVfZm91bmQgPSAxOwogCi0JCWlmIChlcS0+Y29uc19pbmRleCA+ICgyICogZXEtPmVudHJpZXMgLSAxKSkgewotCQkJZGV2X3dhcm4oZGV2LCAiY29uc19pbmRleCBvdmVyZmxvdywgc2V0IGJhY2sgdG8gMC5cbiIpOworCQlpZiAoZXEtPmNvbnNfaW5kZXggPiAoMiAqIGVxLT5lbnRyaWVzIC0gMSkpCiAJCQllcS0+Y29uc19pbmRleCA9IDA7Ci0JCX0KKwogCQlobnNfcm9jZV92Ml9pbml0X2lycV93b3JrKGhyX2RldiwgZXEsIHFwbiwgY3FuKTsKKworCQlhZXFlID0gbmV4dF9hZXFlX3N3X3YyKGVxKTsKIAl9CiAKIAlzZXRfZXFfY29uc19pbmRleF92MihlcSk7CkBAIC01MDM0LDEyICs1MTU2LDExIEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfY2VxX2ludChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCQkgICAgICAgc3RydWN0IGhuc19yb2NlX2VxICplcSkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKLQlzdHJ1Y3QgaG5zX3JvY2VfY2VxZSAqY2VxZTsKKwlzdHJ1Y3QgaG5zX3JvY2VfY2VxZSAqY2VxZSA9IG5leHRfY2VxZV9zd192MihlcSk7CiAJaW50IGNlcWVfZm91bmQgPSAwOwogCXUzMiBjcW47CiAKLQl3aGlsZSAoKGNlcWUgPSBuZXh0X2NlcWVfc3dfdjIoZXEpKSkgewotCisJd2hpbGUgKGNlcWUpIHsKIAkJLyogTWFrZSBzdXJlIHdlIHJlYWQgQ0VRIGVudHJ5IGFmdGVyIHdlIGhhdmUgY2hlY2tlZCB0aGUKIAkJICogb3duZXJzaGlwIGJpdAogCQkgKi8KQEAgLTUwNTQsMTAgKzUxNzUsMTIgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9jZXFfaW50KHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAkJKytlcS0+Y29uc19pbmRleDsKIAkJY2VxZV9mb3VuZCA9IDE7CiAKLQkJaWYgKGVxLT5jb25zX2luZGV4ID4gKDIgKiBlcS0+ZW50cmllcyAtIDEpKSB7CisJCWlmIChlcS0+Y29uc19pbmRleCA+IChFUV9ERVBUSF9DT0VGRiAqIGVxLT5lbnRyaWVzIC0gMSkpIHsKIAkJCWRldl93YXJuKGRldiwgImNvbnNfaW5kZXggb3ZlcmZsb3csIHNldCBiYWNrIHRvIDAuXG4iKTsKIAkJCWVxLT5jb25zX2luZGV4ID0gMDsKIAkJfQorCisJCWNlcWUgPSBuZXh0X2NlcWVfc3dfdjIoZXEpOwogCX0KIAogCXNldF9lcV9jb25zX2luZGV4X3YyKGVxKTsKQEAgLTUwOTMsMTQgKzUyMTYsMTQgQEAgc3RhdGljIGlycXJldHVybl90IGhuc19yb2NlX3YyX21zaXhfaW50ZXJydXB0X2FibihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJaW50X3N0ID0gcm9jZV9yZWFkKGhyX2RldiwgUk9DRUVfVkZfQUJOX0lOVF9TVF9SRUcpOwogCWludF9lbiA9IHJvY2VfcmVhZChocl9kZXYsIFJPQ0VFX1ZGX0FCTl9JTlRfRU5fUkVHKTsKIAotCWlmIChyb2NlX2dldF9iaXQoaW50X3N0LCBITlNfUk9DRV9WMl9WRl9JTlRfU1RfQUVRX09WRVJGTE9XX1MpKSB7CisJaWYgKGludF9zdCAmIEJJVChITlNfUk9DRV9WMl9WRl9JTlRfU1RfQUVRX09WRVJGTE9XX1MpKSB7CiAJCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gaHJfZGV2LT5wY2lfZGV2OwogCQlzdHJ1Y3QgaG5hZTNfYWVfZGV2ICphZV9kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CiAJCWNvbnN0IHN0cnVjdCBobmFlM19hZV9vcHMgKm9wcyA9IGFlX2Rldi0+b3BzOwogCiAJCWRldl9lcnIoZGV2LCAiQUVRIG92ZXJmbG93IVxuIik7CiAKLQkJcm9jZV9zZXRfYml0KGludF9zdCwgSE5TX1JPQ0VfVjJfVkZfSU5UX1NUX0FFUV9PVkVSRkxPV19TLCAxKTsKKwkJaW50X3N0IHw9IDEgPDwgSE5TX1JPQ0VfVjJfVkZfSU5UX1NUX0FFUV9PVkVSRkxPV19TOwogCQlyb2NlX3dyaXRlKGhyX2RldiwgUk9DRUVfVkZfQUJOX0lOVF9TVF9SRUcsIGludF9zdCk7CiAKIAkJLyogU2V0IHJlc2V0IGxldmVsIGZvciByZXNldF9ldmVudCgpICovCkBAIC01MTEwLDI3ICs1MjMzLDI3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBobnNfcm9jZV92Ml9tc2l4X2ludGVycnVwdF9hYm4oaW50IGlycSwgdm9pZCAqZGV2X2lkKQogCQlpZiAob3BzLT5yZXNldF9ldmVudCkKIAkJCW9wcy0+cmVzZXRfZXZlbnQocGRldiwgTlVMTCk7CiAKLQkJcm9jZV9zZXRfYml0KGludF9lbiwgSE5TX1JPQ0VfVjJfVkZfQUJOX0lOVF9FTl9TLCAxKTsKKwkJaW50X2VuIHw9IDEgPDwgSE5TX1JPQ0VfVjJfVkZfQUJOX0lOVF9FTl9TOwogCQlyb2NlX3dyaXRlKGhyX2RldiwgUk9DRUVfVkZfQUJOX0lOVF9FTl9SRUcsIGludF9lbik7CiAKIAkJaW50X3dvcmsgPSAxOwotCX0gZWxzZSBpZiAocm9jZV9nZXRfYml0KGludF9zdCwJSE5TX1JPQ0VfVjJfVkZfSU5UX1NUX0JVU19FUlJfUykpIHsKKwl9IGVsc2UgaWYgKGludF9zdCAmIEJJVChITlNfUk9DRV9WMl9WRl9JTlRfU1RfQlVTX0VSUl9TKSkgewogCQlkZXZfZXJyKGRldiwgIkJVUyBFUlIhXG4iKTsKIAotCQlyb2NlX3NldF9iaXQoaW50X3N0LCBITlNfUk9DRV9WMl9WRl9JTlRfU1RfQlVTX0VSUl9TLCAxKTsKKwkJaW50X3N0IHw9IDEgPDwgSE5TX1JPQ0VfVjJfVkZfSU5UX1NUX0JVU19FUlJfUzsKIAkJcm9jZV93cml0ZShocl9kZXYsIFJPQ0VFX1ZGX0FCTl9JTlRfU1RfUkVHLCBpbnRfc3QpOwogCi0JCXJvY2Vfc2V0X2JpdChpbnRfZW4sIEhOU19ST0NFX1YyX1ZGX0FCTl9JTlRfRU5fUywgMSk7CisJCWludF9lbiB8PSAxIDw8IEhOU19ST0NFX1YyX1ZGX0FCTl9JTlRfRU5fUzsKIAkJcm9jZV93cml0ZShocl9kZXYsIFJPQ0VFX1ZGX0FCTl9JTlRfRU5fUkVHLCBpbnRfZW4pOwogCiAJCWludF93b3JrID0gMTsKLQl9IGVsc2UgaWYgKHJvY2VfZ2V0X2JpdChpbnRfc3QsCUhOU19ST0NFX1YyX1ZGX0lOVF9TVF9PVEhFUl9FUlJfUykpIHsKKwl9IGVsc2UgaWYgKGludF9zdCAmIEJJVChITlNfUk9DRV9WMl9WRl9JTlRfU1RfT1RIRVJfRVJSX1MpKSB7CiAJCWRldl9lcnIoZGV2LCAiT1RIRVIgRVJSIVxuIik7CiAKLQkJcm9jZV9zZXRfYml0KGludF9zdCwgSE5TX1JPQ0VfVjJfVkZfSU5UX1NUX09USEVSX0VSUl9TLCAxKTsKKwkJaW50X3N0IHw9IDEgPDwgSE5TX1JPQ0VfVjJfVkZfSU5UX1NUX09USEVSX0VSUl9TOwogCQlyb2NlX3dyaXRlKGhyX2RldiwgUk9DRUVfVkZfQUJOX0lOVF9TVF9SRUcsIGludF9zdCk7CiAKLQkJcm9jZV9zZXRfYml0KGludF9lbiwgSE5TX1JPQ0VfVjJfVkZfQUJOX0lOVF9FTl9TLCAxKTsKKwkJaW50X2VuIHw9IDEgPDwgSE5TX1JPQ0VfVjJfVkZfQUJOX0lOVF9FTl9TOwogCQlyb2NlX3dyaXRlKGhyX2RldiwgUk9DRUVfVkZfQUJOX0lOVF9FTl9SRUcsIGludF9lbik7CiAKIAkJaW50X3dvcmsgPSAxOwpAQCAtNTIwMiwxNCArNTMyNSwxMiBAQCBzdGF0aWMgdm9pZCBobnNfcm9jZV9taG9wX2ZyZWVfZXEoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCWJ1Zl9jaGtfc3ogPSAxIDw8IChocl9kZXYtPmNhcHMuZXFlX2J1Zl9wZ19zeiArIFBBR0VfU0hJRlQpOwogCWJ0X2Noa19zeiA9IDEgPDwgKGhyX2Rldi0+Y2Fwcy5lcWVfYmFfcGdfc3ogKyBQQUdFX1NISUZUKTsKIAotCS8qIGhvcF9udW0gPSAwICovCiAJaWYgKG1ob3BfbnVtID09IEhOU19ST0NFX0hPUF9OVU1fMCkgewogCQlkbWFfZnJlZV9jb2hlcmVudChkZXYsICh1bnNpZ25lZCBpbnQpKGVxLT5lbnRyaWVzICoKIAkJCQkgIGVxLT5lcWVfc2l6ZSksIGVxLT5idF9sMCwgZXEtPmwwX2RtYSk7CiAJCXJldHVybjsKIAl9CiAKLQkvKiBob3BfbnVtID0gMSBvciBob3AgPSAyICovCiAJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LCBidF9jaGtfc3osIGVxLT5idF9sMCwgZXEtPmwwX2RtYSk7CiAJaWYgKG1ob3BfbnVtID09IDEpIHsKIAkJZm9yIChpID0gMDsgaSA8IGVxLT5sMF9sYXN0X251bTsgaSsrKSB7CkBAIC01NDQ5LDcgKzU1NzAsNiBAQCBzdGF0aWMgaW50IGhuc19yb2NlX21ob3BfYWxsb2NfZXEoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQkJICAgICAgYnVmX2Noa19zeik7CiAJYnRfbnVtID0gRElWX1JPVU5EX1VQKGJhX251bSwgYnRfY2hrX3N6IC8gQkFfQllURV9MRU4pOwogCi0JLyogaG9wX251bSA9IDAgKi8KIAlpZiAobWhvcF9udW0gPT0gSE5TX1JPQ0VfSE9QX05VTV8wKSB7CiAJCWlmIChlcS0+ZW50cmllcyA+IGJ1Zl9jaGtfc3ogLyBlcS0+ZXFlX3NpemUpIHsKIAkJCWRldl9lcnIoZGV2LCAiZXEgZW50cmllcyAlZCBpcyBsYXJnZXIgdGhhbiBidWZfcGdfc3ohIiwKQEAgLTU1MTUsNyArNTYzNSw4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfbWhvcF9hbGxvY19lcShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCQkJYnJlYWs7CiAJCX0KIAkJZXEtPmN1cl9lcWVfYmEgPSBlcS0+YnVmX2RtYVswXTsKLQkJZXEtPm54dF9lcWVfYmEgPSBlcS0+YnVmX2RtYVsxXTsKKwkJaWYgKGJhX251bSA+IDEpCisJCQllcS0+bnh0X2VxZV9iYSA9IGVxLT5idWZfZG1hWzFdOwogCiAJfSBlbHNlIGlmIChtaG9wX251bSA9PSAyKSB7CiAJCS8qIGFsbG9jIEwxIEJUIGFuZCBidWYgKi8KQEAgLTU1NTYsNyArNTY3Nyw4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfbWhvcF9hbGxvY19lcShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCQkJYnJlYWs7CiAJCX0KIAkJZXEtPmN1cl9lcWVfYmEgPSBlcS0+YnVmX2RtYVswXTsKLQkJZXEtPm54dF9lcWVfYmEgPSBlcS0+YnVmX2RtYVsxXTsKKwkJaWYgKGJhX251bSA+IDEpCisJCQllcS0+bnh0X2VxZV9iYSA9IGVxLT5idWZfZG1hWzFdOwogCX0KIAogCWVxLT5sMF9sYXN0X251bSA9IGkgKyAxOwpAQCAtNTY5OSw2ICs1ODIxLDk1IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfY3JlYXRlX2VxKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IF9faG5zX3JvY2VfcmVxdWVzdF9pcnEoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LCBpbnQgaXJxX251bSwKKwkJCQkgIGludCBjb21wX251bSwgaW50IGFlcV9udW0sIGludCBvdGhlcl9udW0pCit7CisJc3RydWN0IGhuc19yb2NlX2VxX3RhYmxlICplcV90YWJsZSA9ICZocl9kZXYtPmVxX3RhYmxlOworCWludCBpLCBqOworCWludCByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgaXJxX251bTsgaSsrKSB7CisJCWhyX2Rldi0+aXJxX25hbWVzW2ldID0ga3phbGxvYyhITlNfUk9DRV9JTlRfTkFNRV9MRU4sCisJCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKKwkJaWYgKCFocl9kZXYtPmlycV9uYW1lc1tpXSkgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gZXJyX2t6YWxsb2NfZmFpbGVkOworCQl9CisJfQorCisJLyogaXJxIGNvbnRhaW5zOiBhYm5vcm1hbCArIEFFUSArIENFUSAqLworCWZvciAoaiA9IDA7IGogPCBvdGhlcl9udW07IGorKykKKwkJc25wcmludGYoKGNoYXIgKilocl9kZXYtPmlycV9uYW1lc1tqXSwKKwkJCSBITlNfUk9DRV9JTlRfTkFNRV9MRU4sICJobnMtYWJuLSVkIiwgaik7CisKKwlmb3IgKGogPSBvdGhlcl9udW07IGogPCAob3RoZXJfbnVtICsgYWVxX251bSk7IGorKykKKwkJc25wcmludGYoKGNoYXIgKilocl9kZXYtPmlycV9uYW1lc1tqXSwKKwkJCSBITlNfUk9DRV9JTlRfTkFNRV9MRU4sICJobnMtYWVxLSVkIiwKKwkJCSBqIC0gb3RoZXJfbnVtKTsKKworCWZvciAoaiA9IChvdGhlcl9udW0gKyBhZXFfbnVtKTsgaiA8IGlycV9udW07IGorKykKKwkJc25wcmludGYoKGNoYXIgKilocl9kZXYtPmlycV9uYW1lc1tqXSwKKwkJCSBITlNfUk9DRV9JTlRfTkFNRV9MRU4sICJobnMtY2VxLSVkIiwKKwkJCSBqIC0gb3RoZXJfbnVtIC0gYWVxX251bSk7CisKKwlmb3IgKGogPSAwOyBqIDwgaXJxX251bTsgaisrKSB7CisJCWlmIChqIDwgb3RoZXJfbnVtKQorCQkJcmV0ID0gcmVxdWVzdF9pcnEoaHJfZGV2LT5pcnFbal0sCisJCQkJCSAgaG5zX3JvY2VfdjJfbXNpeF9pbnRlcnJ1cHRfYWJuLAorCQkJCQkgIDAsIGhyX2Rldi0+aXJxX25hbWVzW2pdLCBocl9kZXYpOworCisJCWVsc2UgaWYgKGogPCAob3RoZXJfbnVtICsgY29tcF9udW0pKQorCQkJcmV0ID0gcmVxdWVzdF9pcnEoZXFfdGFibGUtPmVxW2ogLSBvdGhlcl9udW1dLmlycSwKKwkJCQkJICBobnNfcm9jZV92Ml9tc2l4X2ludGVycnVwdF9lcSwKKwkJCQkJICAwLCBocl9kZXYtPmlycV9uYW1lc1tqICsgYWVxX251bV0sCisJCQkJCSAgJmVxX3RhYmxlLT5lcVtqIC0gb3RoZXJfbnVtXSk7CisJCWVsc2UKKwkJCXJldCA9IHJlcXVlc3RfaXJxKGVxX3RhYmxlLT5lcVtqIC0gb3RoZXJfbnVtXS5pcnEsCisJCQkJCSAgaG5zX3JvY2VfdjJfbXNpeF9pbnRlcnJ1cHRfZXEsCisJCQkJCSAgMCwgaHJfZGV2LT5pcnFfbmFtZXNbaiAtIGNvbXBfbnVtXSwKKwkJCQkJICAmZXFfdGFibGUtPmVxW2ogLSBvdGhlcl9udW1dKTsKKwkJaWYgKHJldCkgeworCQkJZGV2X2Vycihocl9kZXYtPmRldiwgIlJlcXVlc3QgaXJxIGVycm9yIVxuIik7CisJCQlnb3RvIGVycl9yZXF1ZXN0X2ZhaWxlZDsKKwkJfQorCX0KKworCXJldHVybiAwOworCitlcnJfcmVxdWVzdF9mYWlsZWQ6CisJZm9yIChqIC09IDE7IGogPj0gMDsgai0tKQorCQlpZiAoaiA8IG90aGVyX251bSkKKwkJCWZyZWVfaXJxKGhyX2Rldi0+aXJxW2pdLCBocl9kZXYpOworCQllbHNlCisJCQlmcmVlX2lycShlcV90YWJsZS0+ZXFbaiAtIG90aGVyX251bV0uaXJxLAorCQkJCSAmZXFfdGFibGUtPmVxW2ogLSBvdGhlcl9udW1dKTsKKworZXJyX2t6YWxsb2NfZmFpbGVkOgorCWZvciAoaSAtPSAxOyBpID49IDA7IGktLSkKKwkJa2ZyZWUoaHJfZGV2LT5pcnFfbmFtZXNbaV0pOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgX19obnNfcm9jZV9mcmVlX2lycShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYpCit7CisJaW50IGlycV9udW07CisJaW50IGVxX251bTsKKwlpbnQgaTsKKworCWVxX251bSA9IGhyX2Rldi0+Y2Fwcy5udW1fY29tcF92ZWN0b3JzICsgaHJfZGV2LT5jYXBzLm51bV9hZXFfdmVjdG9yczsKKwlpcnFfbnVtID0gZXFfbnVtICsgaHJfZGV2LT5jYXBzLm51bV9vdGhlcl92ZWN0b3JzOworCisJZm9yIChpID0gMDsgaSA8IGhyX2Rldi0+Y2Fwcy5udW1fb3RoZXJfdmVjdG9yczsgaSsrKQorCQlmcmVlX2lycShocl9kZXYtPmlycVtpXSwgaHJfZGV2KTsKKworCWZvciAoaSA9IDA7IGkgPCBlcV9udW07IGkrKykKKwkJZnJlZV9pcnEoaHJfZGV2LT5lcV90YWJsZS5lcVtpXS5pcnEsICZocl9kZXYtPmVxX3RhYmxlLmVxW2ldKTsKKworCWZvciAoaSA9IDA7IGkgPCBpcnFfbnVtOyBpKyspCisJCWtmcmVlKGhyX2Rldi0+aXJxX25hbWVzW2ldKTsKK30KKwogc3RhdGljIGludCBobnNfcm9jZV92Ml9pbml0X2VxX3RhYmxlKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldikKIHsKIAlzdHJ1Y3QgaG5zX3JvY2VfZXFfdGFibGUgKmVxX3RhYmxlID0gJmhyX2Rldi0+ZXFfdGFibGU7CkBAIC01NzEwLDcgKzU5MjEsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX2luaXRfZXFfdGFibGUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCWludCBvdGhlcl9udW07CiAJaW50IGNvbXBfbnVtOwogCWludCBhZXFfbnVtOwotCWludCBpLCBqLCBrOworCWludCBpOwogCWludCByZXQ7CiAKIAlvdGhlcl9udW0gPSBocl9kZXYtPmNhcHMubnVtX290aGVyX3ZlY3RvcnM7CkBAIC01NzI0LDI3ICs1OTM1LDE4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfaW5pdF9lcV90YWJsZShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYpCiAJaWYgKCFlcV90YWJsZS0+ZXEpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JZm9yIChpID0gMDsgaSA8IGlycV9udW07IGkrKykgewotCQlocl9kZXYtPmlycV9uYW1lc1tpXSA9IGt6YWxsb2MoSE5TX1JPQ0VfSU5UX05BTUVfTEVOLAotCQkJCQkgICAgICAgR0ZQX0tFUk5FTCk7Ci0JCWlmICghaHJfZGV2LT5pcnFfbmFtZXNbaV0pIHsKLQkJCXJldCA9IC1FTk9NRU07Ci0JCQlnb3RvIGVycl9mYWlsZWRfa3phbGxvYzsKLQkJfQotCX0KLQogCS8qIGNyZWF0ZSBlcSAqLwotCWZvciAoaiA9IDA7IGogPCBlcV9udW07IGorKykgewotCQllcSA9ICZlcV90YWJsZS0+ZXFbal07CisJZm9yIChpID0gMDsgaSA8IGVxX251bTsgaSsrKSB7CisJCWVxID0gJmVxX3RhYmxlLT5lcVtpXTsKIAkJZXEtPmhyX2RldiA9IGhyX2RldjsKLQkJZXEtPmVxbiA9IGo7Ci0JCWlmIChqIDwgY29tcF9udW0pIHsKKwkJZXEtPmVxbiA9IGk7CisJCWlmIChpIDwgY29tcF9udW0pIHsKIAkJCS8qIENFUSAqLwogCQkJZXFfY21kID0gSE5TX1JPQ0VfQ01EX0NSRUFURV9DRVFDOwogCQkJZXEtPnR5cGVfZmxhZyA9IEhOU19ST0NFX0NFUTsKIAkJCWVxLT5lbnRyaWVzID0gaHJfZGV2LT5jYXBzLmNlcWVfZGVwdGg7CiAJCQllcS0+ZXFlX3NpemUgPSBITlNfUk9DRV9DRVFfRU5UUllfU0laRTsKLQkJCWVxLT5pcnEgPSBocl9kZXYtPmlycVtqICsgb3RoZXJfbnVtICsgYWVxX251bV07CisJCQllcS0+aXJxID0gaHJfZGV2LT5pcnFbaSArIG90aGVyX251bSArIGFlcV9udW1dOwogCQkJZXEtPmVxX21heF9jbnQgPSBITlNfUk9DRV9DRVFfREVGQVVMVF9CVVJTVF9OVU07CiAJCQllcS0+ZXFfcGVyaW9kID0gSE5TX1JPQ0VfQ0VRX0RFRkFVTFRfSU5URVJWQUw7CiAJCX0gZWxzZSB7CkBAIC01NzUzLDcgKzU5NTUsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX2luaXRfZXFfdGFibGUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCQkJZXEtPnR5cGVfZmxhZyA9IEhOU19ST0NFX0FFUTsKIAkJCWVxLT5lbnRyaWVzID0gaHJfZGV2LT5jYXBzLmFlcWVfZGVwdGg7CiAJCQllcS0+ZXFlX3NpemUgPSBITlNfUk9DRV9BRVFfRU5UUllfU0laRTsKLQkJCWVxLT5pcnEgPSBocl9kZXYtPmlycVtqIC0gY29tcF9udW0gKyBvdGhlcl9udW1dOworCQkJZXEtPmlycSA9IGhyX2Rldi0+aXJxW2kgLSBjb21wX251bSArIG90aGVyX251bV07CiAJCQllcS0+ZXFfbWF4X2NudCA9IEhOU19ST0NFX0FFUV9ERUZBVUxUX0JVUlNUX05VTTsKIAkJCWVxLT5lcV9wZXJpb2QgPSBITlNfUk9DRV9BRVFfREVGQVVMVF9JTlRFUlZBTDsKIAkJfQpAQCAtNTc2OCw0MCArNTk3MCwxMSBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX2luaXRfZXFfdGFibGUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCS8qIGVuYWJsZSBpcnEgKi8KIAlobnNfcm9jZV92Ml9pbnRfbWFza19lbmFibGUoaHJfZGV2LCBlcV9udW0sIEVRX0VOQUJMRSk7CiAKLQkvKiBpcnEgY29udGFpbnM6IGFibm9ybWFsICsgQUVRICsgQ0VRKi8KLQlmb3IgKGsgPSAwOyBrIDwgaXJxX251bTsgaysrKQotCQlpZiAoayA8IG90aGVyX251bSkKLQkJCXNucHJpbnRmKChjaGFyICopaHJfZGV2LT5pcnFfbmFtZXNba10sCi0JCQkJIEhOU19ST0NFX0lOVF9OQU1FX0xFTiwgImhucy1hYm4tJWQiLCBrKTsKLQkJZWxzZSBpZiAoayA8IChvdGhlcl9udW0gKyBhZXFfbnVtKSkKLQkJCXNucHJpbnRmKChjaGFyICopaHJfZGV2LT5pcnFfbmFtZXNba10sCi0JCQkJIEhOU19ST0NFX0lOVF9OQU1FX0xFTiwgImhucy1hZXEtJWQiLAotCQkJCSBrIC0gb3RoZXJfbnVtKTsKLQkJZWxzZQotCQkJc25wcmludGYoKGNoYXIgKilocl9kZXYtPmlycV9uYW1lc1trXSwKLQkJCQkgSE5TX1JPQ0VfSU5UX05BTUVfTEVOLCAiaG5zLWNlcS0lZCIsCi0JCQkJIGsgLSBvdGhlcl9udW0gLSBhZXFfbnVtKTsKLQotCWZvciAoayA9IDA7IGsgPCBpcnFfbnVtOyBrKyspIHsKLQkJaWYgKGsgPCBvdGhlcl9udW0pCi0JCQlyZXQgPSByZXF1ZXN0X2lycShocl9kZXYtPmlycVtrXSwKLQkJCQkJICBobnNfcm9jZV92Ml9tc2l4X2ludGVycnVwdF9hYm4sCi0JCQkJCSAgMCwgaHJfZGV2LT5pcnFfbmFtZXNba10sIGhyX2Rldik7Ci0KLQkJZWxzZSBpZiAoayA8IChvdGhlcl9udW0gKyBjb21wX251bSkpCi0JCQlyZXQgPSByZXF1ZXN0X2lycShlcV90YWJsZS0+ZXFbayAtIG90aGVyX251bV0uaXJxLAotCQkJCQkgIGhuc19yb2NlX3YyX21zaXhfaW50ZXJydXB0X2VxLAotCQkJCQkgIDAsIGhyX2Rldi0+aXJxX25hbWVzW2sgKyBhZXFfbnVtXSwKLQkJCQkJICAmZXFfdGFibGUtPmVxW2sgLSBvdGhlcl9udW1dKTsKLQkJZWxzZQotCQkJcmV0ID0gcmVxdWVzdF9pcnEoZXFfdGFibGUtPmVxW2sgLSBvdGhlcl9udW1dLmlycSwKLQkJCQkJICBobnNfcm9jZV92Ml9tc2l4X2ludGVycnVwdF9lcSwKLQkJCQkJICAwLCBocl9kZXYtPmlycV9uYW1lc1trIC0gY29tcF9udW1dLAotCQkJCQkgICZlcV90YWJsZS0+ZXFbayAtIG90aGVyX251bV0pOwotCQlpZiAocmV0KSB7Ci0JCQlkZXZfZXJyKGRldiwgIlJlcXVlc3QgaXJxIGVycm9yIVxuIik7Ci0JCQlnb3RvIGVycl9yZXF1ZXN0X2lycV9mYWlsOwotCQl9CisJcmV0ID0gX19obnNfcm9jZV9yZXF1ZXN0X2lycShocl9kZXYsIGlycV9udW0sIGNvbXBfbnVtLAorCQkJCSAgICAgYWVxX251bSwgb3RoZXJfbnVtKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiUmVxdWVzdCBpcnEgZmFpbGVkLlxuIik7CisJCWdvdG8gZXJyX3JlcXVlc3RfaXJxX2ZhaWw7CiAJfQogCiAJaHJfZGV2LT5pcnFfd29ya3EgPQpAQCAtNTgwOSwyNiArNTk4MiwyMCBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3YyX2luaXRfZXFfdGFibGUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCWlmICghaHJfZGV2LT5pcnFfd29ya3EpIHsKIAkJZGV2X2VycihkZXYsICJDcmVhdGUgaXJxIHdvcmtxdWV1ZSBmYWlsZWQhXG4iKTsKIAkJcmV0ID0gLUVOT01FTTsKLQkJZ290byBlcnJfcmVxdWVzdF9pcnFfZmFpbDsKKwkJZ290byBlcnJfY3JlYXRlX3dxX2ZhaWw7CiAJfQogCiAJcmV0dXJuIDA7CiAKK2Vycl9jcmVhdGVfd3FfZmFpbDoKKwlfX2huc19yb2NlX2ZyZWVfaXJxKGhyX2Rldik7CisKIGVycl9yZXF1ZXN0X2lycV9mYWlsOgotCWZvciAoayAtPSAxOyBrID49IDA7IGstLSkKLQkJaWYgKGsgPCBvdGhlcl9udW0pCi0JCQlmcmVlX2lycShocl9kZXYtPmlycVtrXSwgaHJfZGV2KTsKLQkJZWxzZQotCQkJZnJlZV9pcnEoZXFfdGFibGUtPmVxW2sgLSBvdGhlcl9udW1dLmlycSwKLQkJCQkgJmVxX3RhYmxlLT5lcVtrIC0gb3RoZXJfbnVtXSk7CisJaG5zX3JvY2VfdjJfaW50X21hc2tfZW5hYmxlKGhyX2RldiwgZXFfbnVtLCBFUV9ESVNBQkxFKTsKIAogZXJyX2NyZWF0ZV9lcV9mYWlsOgotCWZvciAoaiAtPSAxOyBqID49IDA7IGotLSkKLQkJaG5zX3JvY2VfdjJfZnJlZV9lcShocl9kZXYsICZlcV90YWJsZS0+ZXFbal0pOwotCi1lcnJfZmFpbGVkX2t6YWxsb2M6CiAJZm9yIChpIC09IDE7IGkgPj0gMDsgaS0tKQotCQlrZnJlZShocl9kZXYtPmlycV9uYW1lc1tpXSk7CisJCWhuc19yb2NlX3YyX2ZyZWVfZXEoaHJfZGV2LCAmZXFfdGFibGUtPmVxW2ldKTsKIAlrZnJlZShlcV90YWJsZS0+ZXEpOwogCiAJcmV0dXJuIHJldDsKQEAgLTU4MzcsMzAgKzYwMDQsMjIgQEAgc3RhdGljIGludCBobnNfcm9jZV92Ml9pbml0X2VxX3RhYmxlKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldikKIHN0YXRpYyB2b2lkIGhuc19yb2NlX3YyX2NsZWFudXBfZXFfdGFibGUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogewogCXN0cnVjdCBobnNfcm9jZV9lcV90YWJsZSAqZXFfdGFibGUgPSAmaHJfZGV2LT5lcV90YWJsZTsKLQlpbnQgaXJxX251bTsKIAlpbnQgZXFfbnVtOwogCWludCBpOwogCiAJZXFfbnVtID0gaHJfZGV2LT5jYXBzLm51bV9jb21wX3ZlY3RvcnMgKyBocl9kZXYtPmNhcHMubnVtX2FlcV92ZWN0b3JzOwotCWlycV9udW0gPSBlcV9udW0gKyBocl9kZXYtPmNhcHMubnVtX290aGVyX3ZlY3RvcnM7CiAKIAkvKiBEaXNhYmxlIGlycSAqLwogCWhuc19yb2NlX3YyX2ludF9tYXNrX2VuYWJsZShocl9kZXYsIGVxX251bSwgRVFfRElTQUJMRSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgaHJfZGV2LT5jYXBzLm51bV9vdGhlcl92ZWN0b3JzOyBpKyspCi0JCWZyZWVfaXJxKGhyX2Rldi0+aXJxW2ldLCBocl9kZXYpOworCV9faG5zX3JvY2VfZnJlZV9pcnEoaHJfZGV2KTsKIAogCWZvciAoaSA9IDA7IGkgPCBlcV9udW07IGkrKykgewogCQlobnNfcm9jZV92Ml9kZXN0cm95X2VxYyhocl9kZXYsIGkpOwogCi0JCWZyZWVfaXJxKGVxX3RhYmxlLT5lcVtpXS5pcnEsICZlcV90YWJsZS0+ZXFbaV0pOwotCiAJCWhuc19yb2NlX3YyX2ZyZWVfZXEoaHJfZGV2LCAmZXFfdGFibGUtPmVxW2ldKTsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgaXJxX251bTsgaSsrKQotCQlrZnJlZShocl9kZXYtPmlycV9uYW1lc1tpXSk7Ci0KIAlrZnJlZShlcV90YWJsZS0+ZXEpOwogCiAJZmx1c2hfd29ya3F1ZXVlKGhyX2Rldi0+aXJxX3dvcmtxKTsKQEAgLTU5MDQsNyArNjA2Myw3IEBAIHN0YXRpYyB2b2lkIGhuc19yb2NlX3YyX3dyaXRlX3NycWMoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCXJvY2Vfc2V0X2ZpZWxkKHNycV9jb250ZXh0LT5ieXRlXzI0X3dxZV9idF9iYSwKIAkJICAgICAgIFNSUUNfQllURV8yNF9TUlFfV1FFX0JUX0JBX00sCiAJCSAgICAgICBTUlFDX0JZVEVfMjRfU1JRX1dRRV9CVF9CQV9TLAotCQkgICAgICAgY3B1X3RvX2xlMzIoZG1hX2hhbmRsZV93cWUgPj4gMzUpKTsKKwkJICAgICAgIGRtYV9oYW5kbGVfd3FlID4+IDM1KTsKIAogCXJvY2Vfc2V0X2ZpZWxkKHNycV9jb250ZXh0LT5ieXRlXzI4X3Jxd3NfcGQsIFNSUUNfQllURV8yOF9QRF9NLAogCQkgICAgICAgU1JRQ19CWVRFXzI4X1BEX1MsIHBkbik7CkBAIC01OTEyLDIwICs2MDcxLDE4IEBAIHN0YXRpYyB2b2lkIGhuc19yb2NlX3YyX3dyaXRlX3NycWMoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQkgICAgICAgU1JRQ19CWVRFXzI4X1JRV1NfUywgc3JxLT5tYXhfZ3MgPD0gMCA/IDAgOgogCQkgICAgICAgZmxzKHNycS0+bWF4X2dzIC0gMSkpOwogCi0Jc3JxX2NvbnRleHQtPmlkeF9idF9iYSA9ICh1MzIpKGRtYV9oYW5kbGVfaWR4ID4+IDMpOwotCXNycV9jb250ZXh0LT5pZHhfYnRfYmEgPSBjcHVfdG9fbGUzMihzcnFfY29udGV4dC0+aWR4X2J0X2JhKTsKKwlzcnFfY29udGV4dC0+aWR4X2J0X2JhID0gY3B1X3RvX2xlMzIoZG1hX2hhbmRsZV9pZHggPj4gMyk7CiAJcm9jZV9zZXRfZmllbGQoc3JxX2NvbnRleHQtPnJzdl9pZHhfYnRfYmEsCiAJCSAgICAgICBTUlFDX0JZVEVfMzZfU1JRX0lEWF9CVF9CQV9NLAogCQkgICAgICAgU1JRQ19CWVRFXzM2X1NSUV9JRFhfQlRfQkFfUywKLQkJICAgICAgIGNwdV90b19sZTMyKGRtYV9oYW5kbGVfaWR4ID4+IDM1KSk7CisJCSAgICAgICBkbWFfaGFuZGxlX2lkeCA+PiAzNSk7CiAKLQlzcnFfY29udGV4dC0+aWR4X2N1cl9ibGtfYWRkciA9ICh1MzIpKG10dHNfaWR4WzBdID4+IFBBR0VfQUREUl9TSElGVCk7CiAJc3JxX2NvbnRleHQtPmlkeF9jdXJfYmxrX2FkZHIgPQotCQkJCSAgICAgY3B1X3RvX2xlMzIoc3JxX2NvbnRleHQtPmlkeF9jdXJfYmxrX2FkZHIpOworCQljcHVfdG9fbGUzMihtdHRzX2lkeFswXSA+PiBQQUdFX0FERFJfU0hJRlQpOwogCXJvY2Vfc2V0X2ZpZWxkKHNycV9jb250ZXh0LT5ieXRlXzQ0X2lkeGJ1ZnBnc3pfYWRkciwKIAkJICAgICAgIFNSUUNfQllURV80NF9TUlFfSURYX0NVUl9CTEtfQUREUl9NLAogCQkgICAgICAgU1JRQ19CWVRFXzQ0X1NSUV9JRFhfQ1VSX0JMS19BRERSX1MsCi0JCSAgICAgICBjcHVfdG9fbGUzMigobXR0c19pZHhbMF0pID4+ICgzMiArIFBBR0VfQUREUl9TSElGVCkpKTsKKwkJICAgICAgIG10dHNfaWR4WzBdID4+ICgzMiArIFBBR0VfQUREUl9TSElGVCkpOwogCXJvY2Vfc2V0X2ZpZWxkKHNycV9jb250ZXh0LT5ieXRlXzQ0X2lkeGJ1ZnBnc3pfYWRkciwKIAkJICAgICAgIFNSUUNfQllURV80NF9TUlFfSURYX0hPUF9OVU1fTSwKIAkJICAgICAgIFNSUUNfQllURV80NF9TUlFfSURYX0hPUF9OVU1fUywKQEAgLTU5NDEsMTMgKzYwOTgsMTIgQEAgc3RhdGljIHZvaWQgaG5zX3JvY2VfdjJfd3JpdGVfc3JxYyhzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCSAgICAgICBTUlFDX0JZVEVfNDRfU1JRX0lEWF9CVUZfUEdfU1pfUywKIAkJICAgICAgIGhyX2Rldi0+Y2Fwcy5pZHhfYnVmX3BnX3N6KTsKIAotCXNycV9jb250ZXh0LT5pZHhfbnh0X2Jsa19hZGRyID0gKHUzMikobXR0c19pZHhbMV0gPj4gUEFHRV9BRERSX1NISUZUKTsKIAlzcnFfY29udGV4dC0+aWR4X254dF9ibGtfYWRkciA9Ci0JCQkJICAgY3B1X3RvX2xlMzIoc3JxX2NvbnRleHQtPmlkeF9ueHRfYmxrX2FkZHIpOworCQljcHVfdG9fbGUzMihtdHRzX2lkeFsxXSA+PiBQQUdFX0FERFJfU0hJRlQpOwogCXJvY2Vfc2V0X2ZpZWxkKHNycV9jb250ZXh0LT5yc3ZfaWR4bnh0YmxrYWRkciwKIAkJICAgICAgIFNSUUNfQllURV81Ml9TUlFfSURYX05YVF9CTEtfQUREUl9NLAogCQkgICAgICAgU1JRQ19CWVRFXzUyX1NSUV9JRFhfTlhUX0JMS19BRERSX1MsCi0JCSAgICAgICBjcHVfdG9fbGUzMigobXR0c19pZHhbMV0pID4+ICgzMiArIFBBR0VfQUREUl9TSElGVCkpKTsKKwkJICAgICAgIG10dHNfaWR4WzFdID4+ICgzMiArIFBBR0VfQUREUl9TSElGVCkpOwogCXJvY2Vfc2V0X2ZpZWxkKHNycV9jb250ZXh0LT5ieXRlXzU2X3hyY19jcW4sCiAJCSAgICAgICBTUlFDX0JZVEVfNTZfU1JRX1hSQ19DUU5fTSwgU1JRQ19CWVRFXzU2X1NSUV9YUkNfQ1FOX1MsCiAJCSAgICAgICBjcW4pOwpAQCAtNjE0MSw5ICs2Mjk3LDEwIEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfdjJfcG9zdF9zcnFfcmVjdihzdHJ1Y3QgaWJfc3JxICppYnNycSwKIAkJICovCiAJCXdtYigpOwogCi0JCXNycV9kYi5ieXRlXzQgPSBITlNfUk9DRV9WMl9TUlFfREIgPDwgVjJfREJfQllURV80X0NNRF9TIHwKLQkJCQkoc3JxLT5zcnFuICYgVjJfREJfQllURV80X1RBR19NKTsKLQkJc3JxX2RiLnBhcmFtZXRlciA9IHNycS0+aGVhZDsKKwkJc3JxX2RiLmJ5dGVfNCA9CisJCQljcHVfdG9fbGUzMihITlNfUk9DRV9WMl9TUlFfREIgPDwgVjJfREJfQllURV80X0NNRF9TIHwKKwkJCQkgICAgKHNycS0+c3JxbiAmIFYyX0RCX0JZVEVfNF9UQUdfTSkpOworCQlzcnFfZGIucGFyYW1ldGVyID0gY3B1X3RvX2xlMzIoc3JxLT5oZWFkKTsKIAogCQlobnNfcm9jZV93cml0ZTY0KGhyX2RldiwgKF9fbGUzMiAqKSZzcnFfZGIsIHNycS0+ZGJfcmVnX2wpOwogCkBAIC02NDMzLDcgKzY1OTAsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX2h3X3YyX3Jlc2V0X25vdGlmeV91bmluaXQoc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxlKQogCiAJaGFuZGxlLT5yaW5mby5yZXNldF9zdGF0ZSA9IEhOU19ST0NFX1NUQVRFX1JTVF9VTklOSVQ7CiAJZGV2X2luZm8oJmhhbmRsZS0+cGRldi0+ZGV2LCAiSW4gcmVzZXQgcHJvY2VzcyBSb0NFIGNsaWVudCB1bmluaXQuXG4iKTsKLQltc2xlZXAoMTAwKTsKKwltc2xlZXAoSE5TX1JPQ0VfVjJfSFdfUlNUX1VOSU5UX0RFTEFZKTsKIAlfX2huc19yb2NlX2h3X3YyX3VuaW5pdF9pbnN0YW5jZShoYW5kbGUsIGZhbHNlKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9od192Mi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9od192Mi5oCmluZGV4IDQ3OGY1YTUuLjQzMjE5ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfaHdfdjIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2h3X3YyLmgKQEAgLTk2LDcgKzk2LDEwIEBACiAjZGVmaW5lIEhOU19ST0NFX1YyX1VDX1JDX1NHRV9OVU1fSU5fV1FFCTIKICNkZWZpbmUgSE5TX1JPQ0VfVjJfUlNWX1FQUwkJCTgKIAotI2RlZmluZSBITlNfUk9DRV9WMl9IV19SU1RfVElNRU9VVCAgICAgICAgICAgICAxMDAwCisjZGVmaW5lIEhOU19ST0NFX1YyX0hXX1JTVF9USU1FT1VUCQkxMDAwCisjZGVmaW5lIEhOU19ST0NFX1YyX0hXX1JTVF9VTklOVF9ERUxBWQkJMTAwCisKKyNkZWZpbmUgSE5TX1JPQ0VfVjJfSFdfUlNUX0NPTVBMRVRJT05fV0FJVAkyMAogCiAjZGVmaW5lIEhOU19ST0NFX0NPTlRFWFRfSE9QX05VTQkJMQogI2RlZmluZSBITlNfUk9DRV9TQ0NDX0hPUF9OVU0JCQkxCkBAIC0xMjYsOCArMTI5LDYgQEAKICNkZWZpbmUgSE5TX1JPQ0VfQ01EX0ZMQUdfRVJSX0lOVFIJQklUKEhOU19ST0NFX0NNRF9GTEFHX0VSUl9JTlRSX1NISUZUKQogCiAjZGVmaW5lIEhOU19ST0NFX0NNUV9ERVNDX05VTV9TCQkzCi0jZGVmaW5lIEhOU19ST0NFX0NNUV9FTl9CCQkxNgotI2RlZmluZSBITlNfUk9DRV9DTVFfRU5BQkxFCQlCSVQoSE5TX1JPQ0VfQ01RX0VOX0IpCiAKICNkZWZpbmUgSE5TX1JPQ0VfQ01RX1NDQ19DTFJfRE9ORV9DTlQJCTUKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYwppbmRleCAxZTRiYTQ4Li5iNWQxOTZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYwpAQCAtMjYyLDcgKzI2Miw4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfcXVlcnlfcG9ydChzdHJ1Y3QgaWJfZGV2aWNlICppYl9kZXYsIHU4IHBvcnRfbnVtLAogCXByb3BzLT5zdGF0ZSA9IChuZXRpZl9ydW5uaW5nKG5ldF9kZXYpICYmIG5ldGlmX2NhcnJpZXJfb2sobmV0X2RldikpID8KIAkJCUlCX1BPUlRfQUNUSVZFIDogSUJfUE9SVF9ET1dOOwogCXByb3BzLT5waHlzX3N0YXRlID0gKHByb3BzLT5zdGF0ZSA9PSBJQl9QT1JUX0FDVElWRSkgPwotCQkJICAgICBITlNfUk9DRV9QSFlfTElOS1VQIDogSE5TX1JPQ0VfUEhZX0RJU0FCTEVEOworCQkJICAgICBJQl9QT1JUX1BIWVNfU1RBVEVfTElOS19VUCA6CisJCQkgICAgIElCX1BPUlRfUEhZU19TVEFURV9ESVNBQkxFRDsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmhyX2Rldi0+aWJvZS5sb2NrLCBmbGFncyk7CiAKQEAgLTkwMSw2ICs5MDIsNyBAQCBpbnQgaG5zX3JvY2VfaW5pdChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYpCiAJCWdvdG8gZXJyb3JfZmFpbGVkX2NtZF9pbml0OwogCX0KIAorCS8qIEVRIGRlcGVuZHMgb24gcG9sbCBtb2RlLCBldmVudCBtb2RlIGRlcGVuZHMgb24gRVEgKi8KIAlyZXQgPSBocl9kZXYtPmh3LT5pbml0X2VxKGhyX2Rldik7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldiwgImVxIGluaXQgZmFpbGVkIVxuIik7CkBAIC05MTAsOCArOTEyLDkgQEAgaW50IGhuc19yb2NlX2luaXQoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogCWlmIChocl9kZXYtPmNtZF9tb2QpIHsKIAkJcmV0ID0gaG5zX3JvY2VfY21kX3VzZV9ldmVudHMoaHJfZGV2KTsKIAkJaWYgKHJldCkgewotCQkJZGV2X2VycihkZXYsICJTd2l0Y2ggdG8gZXZlbnQtZHJpdmVuIGNtZCBmYWlsZWQhXG4iKTsKLQkJCWdvdG8gZXJyb3JfZmFpbGVkX3VzZV9ldmVudDsKKwkJCWRldl93YXJuKGRldiwKKwkJCQkgIkNtZCBldmVudCAgbW9kZSBmYWlsZWQsIHNldCBiYWNrIHRvIHBvbGwhXG4iKTsKKwkJCWhuc19yb2NlX2NtZF91c2VfcG9sbGluZyhocl9kZXYpOwogCQl9CiAJfQogCkBAIC05NTQsOCArOTU3LDYgQEAgaW50IGhuc19yb2NlX2luaXQoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KQogZXJyb3JfZmFpbGVkX2luaXRfaGVtOgogCWlmIChocl9kZXYtPmNtZF9tb2QpCiAJCWhuc19yb2NlX2NtZF91c2VfcG9sbGluZyhocl9kZXYpOwotCi1lcnJvcl9mYWlsZWRfdXNlX2V2ZW50OgogCWhyX2Rldi0+aHctPmNsZWFudXBfZXEoaHJfZGV2KTsKIAogZXJyb3JfZmFpbGVkX2VxX3RhYmxlOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tci5jCmluZGV4IDU0OWUxYTM4Li41Zjg0MTZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21yLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tci5jCkBAIC0zNDcsNDkgKzM0NywxNzggQEAgc3RhdGljIHZvaWQgaG5zX3JvY2VfbG9vcF9mcmVlKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAltci0+cGJsX2J0X2wwID0gTlVMTDsKIAltci0+cGJsX2wwX2RtYV9hZGRyID0gMDsKIH0KK3N0YXRpYyBpbnQgcGJsXzFob3BfYWxsb2Moc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LCBpbnQgbnBhZ2VzLAorCQkJICAgICAgIHN0cnVjdCBobnNfcm9jZV9tciAqbXIsIHUzMiBwYmxfYnRfc3opCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gaHJfZGV2LT5kZXY7CisKKwlpZiAobnBhZ2VzID4gcGJsX2J0X3N6IC8gOCkgeworCQlkZXZfZXJyKGRldiwgIm5wYWdlcyAlZCBpcyBsYXJnZXIgdGhhbiBidWZfcGdfc3ohIiwKKwkJCW5wYWdlcyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwltci0+cGJsX2J1ZiA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsIG5wYWdlcyAqIDgsCisJCQkJCSAmKG1yLT5wYmxfZG1hX2FkZHIpLAorCQkJCQkgR0ZQX0tFUk5FTCk7CisJaWYgKCFtci0+cGJsX2J1ZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltci0+cGJsX3NpemUgPSBucGFnZXM7CisJbXItPnBibF9iYSA9IG1yLT5wYmxfZG1hX2FkZHI7CisJbXItPnBibF9ob3BfbnVtID0gMTsKKwltci0+cGJsX2JhX3BnX3N6ID0gaHJfZGV2LT5jYXBzLnBibF9iYV9wZ19zejsKKwltci0+cGJsX2J1Zl9wZ19zeiA9IGhyX2Rldi0+Y2Fwcy5wYmxfYnVmX3BnX3N6OworCXJldHVybiAwOworCit9CisKKworc3RhdGljIGludCBwYmxfMmhvcF9hbGxvYyhzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsIGludCBucGFnZXMsCisJCQkgICAgICAgc3RydWN0IGhuc19yb2NlX21yICptciwgdTMyIHBibF9idF9zeikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKKwlpbnQgbnBhZ2VzX2FsbG9jYXRlZDsKKwl1NjQgcGJsX2xhc3RfYnRfbnVtOworCXU2NCBwYmxfYnRfY250ID0gMDsKKwl1NjQgc2l6ZTsKKwlpbnQgaTsKKworCXBibF9sYXN0X2J0X251bSA9IChucGFnZXMgKyBwYmxfYnRfc3ogLyA4IC0gMSkgLyAocGJsX2J0X3N6IC8gOCk7CisKKwkvKiBhbGxvYyBMMSBCVCAqLworCWZvciAoaSA9IDA7IGkgPCBwYmxfYnRfc3ogLyA4OyBpKyspIHsKKwkJaWYgKHBibF9idF9jbnQgKyAxIDwgcGJsX2xhc3RfYnRfbnVtKSB7CisJCQlzaXplID0gcGJsX2J0X3N6OworCQl9IGVsc2UgeworCQkJbnBhZ2VzX2FsbG9jYXRlZCA9IGkgKiAocGJsX2J0X3N6IC8gOCk7CisJCQlzaXplID0gKG5wYWdlcyAtIG5wYWdlc19hbGxvY2F0ZWQpICogODsKKwkJfQorCQltci0+cGJsX2J0X2wxW2ldID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwKKwkJCQkJICAgICYobXItPnBibF9sMV9kbWFfYWRkcltpXSksCisJCQkJCSAgICBHRlBfS0VSTkVMKTsKKwkJaWYgKCFtci0+cGJsX2J0X2wxW2ldKSB7CisJCQlobnNfcm9jZV9sb29wX2ZyZWUoaHJfZGV2LCBtciwgMSwgaSwgMCk7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCisJCSoobXItPnBibF9idF9sMCArIGkpID0gbXItPnBibF9sMV9kbWFfYWRkcltpXTsKKworCQlwYmxfYnRfY250Kys7CisJCWlmIChwYmxfYnRfY250ID49IHBibF9sYXN0X2J0X251bSkKKwkJCWJyZWFrOworCX0KKworCW1yLT5sMF9jaHVua19sYXN0X251bSA9IGkgKyAxOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcGJsXzNob3BfYWxsb2Moc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LCBpbnQgbnBhZ2VzLAorCQkJICAgICAgIHN0cnVjdCBobnNfcm9jZV9tciAqbXIsIHUzMiBwYmxfYnRfc3opCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gaHJfZGV2LT5kZXY7CisJaW50IG1yX2FsbG9jX2RvbmUgPSAwOworCWludCBucGFnZXNfYWxsb2NhdGVkOworCXU2NCBwYmxfbGFzdF9idF9udW07CisJdTY0IHBibF9idF9jbnQgPSAwOworCXU2NCBidF9pZHg7CisJdTY0IHNpemU7CisJaW50IGk7CisJaW50IGogPSAwOworCisJcGJsX2xhc3RfYnRfbnVtID0gKG5wYWdlcyArIHBibF9idF9zeiAvIDggLSAxKSAvIChwYmxfYnRfc3ogLyA4KTsKKworCW1yLT5wYmxfbDJfZG1hX2FkZHIgPSBrY2FsbG9jKHBibF9sYXN0X2J0X251bSwKKwkJCQkgICAgICBzaXplb2YoKm1yLT5wYmxfbDJfZG1hX2FkZHIpLAorCQkJCSAgICAgIEdGUF9LRVJORUwpOworCWlmICghbXItPnBibF9sMl9kbWFfYWRkcikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltci0+cGJsX2J0X2wyID0ga2NhbGxvYyhwYmxfbGFzdF9idF9udW0sCisJCQkJc2l6ZW9mKCptci0+cGJsX2J0X2wyKSwKKwkJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIW1yLT5wYmxfYnRfbDIpCisJCWdvdG8gZXJyX2tjYWxsb2NfYnRfbDI7CisKKwkvKiBhbGxvYyBMMSwgTDIgQlQgKi8KKwlmb3IgKGkgPSAwOyBpIDwgcGJsX2J0X3N6IC8gODsgaSsrKSB7CisJCW1yLT5wYmxfYnRfbDFbaV0gPSBkbWFfYWxsb2NfY29oZXJlbnQoZGV2LCBwYmxfYnRfc3osCisJCQkJCSAgICAmKG1yLT5wYmxfbDFfZG1hX2FkZHJbaV0pLAorCQkJCQkgICAgR0ZQX0tFUk5FTCk7CisJCWlmICghbXItPnBibF9idF9sMVtpXSkgeworCQkJaG5zX3JvY2VfbG9vcF9mcmVlKGhyX2RldiwgbXIsIDEsIGksIDApOworCQkJZ290byBlcnJfZG1hX2FsbG9jX2wwOworCQl9CisKKwkJKihtci0+cGJsX2J0X2wwICsgaSkgPSBtci0+cGJsX2wxX2RtYV9hZGRyW2ldOworCisJCWZvciAoaiA9IDA7IGogPCBwYmxfYnRfc3ogLyA4OyBqKyspIHsKKwkJCWJ0X2lkeCA9IGkgKiBwYmxfYnRfc3ogLyA4ICsgajsKKworCQkJaWYgKHBibF9idF9jbnQgKyAxIDwgcGJsX2xhc3RfYnRfbnVtKSB7CisJCQkJc2l6ZSA9IHBibF9idF9zejsKKwkJCX0gZWxzZSB7CisJCQkJbnBhZ2VzX2FsbG9jYXRlZCA9IGJ0X2lkeCAqCisJCQkJCQkgICAocGJsX2J0X3N6IC8gOCk7CisJCQkJc2l6ZSA9IChucGFnZXMgLSBucGFnZXNfYWxsb2NhdGVkKSAqIDg7CisJCQl9CisJCQltci0+cGJsX2J0X2wyW2J0X2lkeF0gPSBkbWFfYWxsb2NfY29oZXJlbnQoCisJCQkJICAgICAgZGV2LCBzaXplLAorCQkJCSAgICAgICYobXItPnBibF9sMl9kbWFfYWRkcltidF9pZHhdKSwKKwkJCQkgICAgICBHRlBfS0VSTkVMKTsKKwkJCWlmICghbXItPnBibF9idF9sMltidF9pZHhdKSB7CisJCQkJaG5zX3JvY2VfbG9vcF9mcmVlKGhyX2RldiwgbXIsIDIsIGksIGopOworCQkJCWdvdG8gZXJyX2RtYV9hbGxvY19sMDsKKwkJCX0KKworCQkJKihtci0+cGJsX2J0X2wxW2ldICsgaikgPQorCQkJCQltci0+cGJsX2wyX2RtYV9hZGRyW2J0X2lkeF07CisKKwkJCXBibF9idF9jbnQrKzsKKwkJCWlmIChwYmxfYnRfY250ID49IHBibF9sYXN0X2J0X251bSkgeworCQkJCW1yX2FsbG9jX2RvbmUgPSAxOworCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJaWYgKG1yX2FsbG9jX2RvbmUpCisJCQlicmVhazsKKwl9CisKKwltci0+bDBfY2h1bmtfbGFzdF9udW0gPSBpICsgMTsKKwltci0+bDFfY2h1bmtfbGFzdF9udW0gPSBqICsgMTsKKworCisJcmV0dXJuIDA7CisKK2Vycl9kbWFfYWxsb2NfbDA6CisJa2ZyZWUobXItPnBibF9idF9sMik7CisJbXItPnBibF9idF9sMiA9IE5VTEw7CisKK2Vycl9rY2FsbG9jX2J0X2wyOgorCWtmcmVlKG1yLT5wYmxfbDJfZG1hX2FkZHIpOworCW1yLT5wYmxfbDJfZG1hX2FkZHIgPSBOVUxMOworCisJcmV0dXJuIC1FTk9NRU07Cit9CisKIAogLyogUEJMIG11bHRpIGhvcCBhZGRyZXNzaW5nICovCiBzdGF0aWMgaW50IGhuc19yb2NlX21ob3BfYWxsb2Moc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LCBpbnQgbnBhZ2VzLAogCQkJICAgICAgIHN0cnVjdCBobnNfcm9jZV9tciAqbXIpCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gaHJfZGV2LT5kZXY7Ci0JaW50IG1yX2FsbG9jX2RvbmUgPSAwOwotCWludCBucGFnZXNfYWxsb2NhdGVkOwotCWludCBpID0gMCwgaiA9IDA7CiAJdTMyIHBibF9idF9zejsKIAl1MzIgbWhvcF9udW07Ci0JdTY0IHBibF9sYXN0X2J0X251bTsKLQl1NjQgcGJsX2J0X2NudCA9IDA7Ci0JdTY0IGJ0X2lkeDsKLQl1NjQgc2l6ZTsKIAogCW1ob3BfbnVtID0gKG1yLT50eXBlID09IE1SX1RZUEVfRlJNUiA/IDEgOiBocl9kZXYtPmNhcHMucGJsX2hvcF9udW0pOwogCXBibF9idF9zeiA9IDEgPDwgKGhyX2Rldi0+Y2Fwcy5wYmxfYmFfcGdfc3ogKyBQQUdFX1NISUZUKTsKLQlwYmxfbGFzdF9idF9udW0gPSAobnBhZ2VzICsgcGJsX2J0X3N6IC8gOCAtIDEpIC8gKHBibF9idF9zeiAvIDgpOwogCiAJaWYgKG1ob3BfbnVtID09IEhOU19ST0NFX0hPUF9OVU1fMCkKIAkJcmV0dXJuIDA7CiAKLQkvKiBob3BfbnVtID0gMSAqLwotCWlmIChtaG9wX251bSA9PSAxKSB7Ci0JCWlmIChucGFnZXMgPiBwYmxfYnRfc3ogLyA4KSB7Ci0JCQlkZXZfZXJyKGRldiwgIm5wYWdlcyAlZCBpcyBsYXJnZXIgdGhhbiBidWZfcGdfc3ohIiwKLQkJCQlucGFnZXMpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJbXItPnBibF9idWYgPSBkbWFfYWxsb2NfY29oZXJlbnQoZGV2LCBucGFnZXMgKiA4LAotCQkJCQkJICYobXItPnBibF9kbWFfYWRkciksCi0JCQkJCQkgR0ZQX0tFUk5FTCk7Ci0JCWlmICghbXItPnBibF9idWYpCi0JCQlyZXR1cm4gLUVOT01FTTsKLQotCQltci0+cGJsX3NpemUgPSBucGFnZXM7Ci0JCW1yLT5wYmxfYmEgPSBtci0+cGJsX2RtYV9hZGRyOwotCQltci0+cGJsX2hvcF9udW0gPSBtaG9wX251bTsKLQkJbXItPnBibF9iYV9wZ19zeiA9IGhyX2Rldi0+Y2Fwcy5wYmxfYmFfcGdfc3o7Ci0JCW1yLT5wYmxfYnVmX3BnX3N6ID0gaHJfZGV2LT5jYXBzLnBibF9idWZfcGdfc3o7Ci0JCXJldHVybiAwOwotCX0KKwlpZiAobWhvcF9udW0gPT0gMSkKKwkJcmV0dXJuIHBibF8xaG9wX2FsbG9jKGhyX2RldiwgbnBhZ2VzLCBtciwgcGJsX2J0X3N6KTsKIAogCW1yLT5wYmxfbDFfZG1hX2FkZHIgPSBrY2FsbG9jKHBibF9idF9zeiAvIDgsCiAJCQkJICAgICAgc2l6ZW9mKCptci0+cGJsX2wxX2RtYV9hZGRyKSwKQEAgLTQwMiwxMDAgKzUzMSwyMyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX21ob3BfYWxsb2Moc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LCBpbnQgbnBhZ2VzLAogCWlmICghbXItPnBibF9idF9sMSkKIAkJZ290byBlcnJfa2NhbGxvY19idF9sMTsKIAotCWlmIChtaG9wX251bSA9PSAzKSB7Ci0JCW1yLT5wYmxfbDJfZG1hX2FkZHIgPSBrY2FsbG9jKHBibF9sYXN0X2J0X251bSwKLQkJCQkJICAgICAgc2l6ZW9mKCptci0+cGJsX2wyX2RtYV9hZGRyKSwKLQkJCQkJICAgICAgR0ZQX0tFUk5FTCk7Ci0JCWlmICghbXItPnBibF9sMl9kbWFfYWRkcikKLQkJCWdvdG8gZXJyX2tjYWxsb2NfbDJfZG1hOwotCi0JCW1yLT5wYmxfYnRfbDIgPSBrY2FsbG9jKHBibF9sYXN0X2J0X251bSwKLQkJCQkJc2l6ZW9mKCptci0+cGJsX2J0X2wyKSwKLQkJCQkJR0ZQX0tFUk5FTCk7Ci0JCWlmICghbXItPnBibF9idF9sMikKLQkJCWdvdG8gZXJyX2tjYWxsb2NfYnRfbDI7Ci0JfQotCiAJLyogYWxsb2MgTDAgQlQgKi8KIAltci0+cGJsX2J0X2wwID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgcGJsX2J0X3N6LAogCQkJCQkgICAmKG1yLT5wYmxfbDBfZG1hX2FkZHIpLAogCQkJCQkgICBHRlBfS0VSTkVMKTsKIAlpZiAoIW1yLT5wYmxfYnRfbDApCi0JCWdvdG8gZXJyX2RtYV9hbGxvY19sMDsKKwkJZ290byBlcnJfa2NhbGxvY19sMl9kbWE7CiAKIAlpZiAobWhvcF9udW0gPT0gMikgewotCQkvKiBhbGxvYyBMMSBCVCAqLwotCQlmb3IgKGkgPSAwOyBpIDwgcGJsX2J0X3N6IC8gODsgaSsrKSB7Ci0JCQlpZiAocGJsX2J0X2NudCArIDEgPCBwYmxfbGFzdF9idF9udW0pIHsKLQkJCQlzaXplID0gcGJsX2J0X3N6OwotCQkJfSBlbHNlIHsKLQkJCQlucGFnZXNfYWxsb2NhdGVkID0gaSAqIChwYmxfYnRfc3ogLyA4KTsKLQkJCQlzaXplID0gKG5wYWdlcyAtIG5wYWdlc19hbGxvY2F0ZWQpICogODsKLQkJCX0KLQkJCW1yLT5wYmxfYnRfbDFbaV0gPSBkbWFfYWxsb2NfY29oZXJlbnQoZGV2LCBzaXplLAotCQkJCQkJICAgICYobXItPnBibF9sMV9kbWFfYWRkcltpXSksCi0JCQkJCQkgICAgR0ZQX0tFUk5FTCk7Ci0JCQlpZiAoIW1yLT5wYmxfYnRfbDFbaV0pIHsKLQkJCQlobnNfcm9jZV9sb29wX2ZyZWUoaHJfZGV2LCBtciwgMSwgaSwgMCk7Ci0JCQkJZ290byBlcnJfZG1hX2FsbG9jX2wwOwotCQkJfQotCi0JCQkqKG1yLT5wYmxfYnRfbDAgKyBpKSA9IG1yLT5wYmxfbDFfZG1hX2FkZHJbaV07Ci0KLQkJCXBibF9idF9jbnQrKzsKLQkJCWlmIChwYmxfYnRfY250ID49IHBibF9sYXN0X2J0X251bSkKLQkJCQlicmVhazsKLQkJfQotCX0gZWxzZSBpZiAobWhvcF9udW0gPT0gMykgewotCQkvKiBhbGxvYyBMMSwgTDIgQlQgKi8KLQkJZm9yIChpID0gMDsgaSA8IHBibF9idF9zeiAvIDg7IGkrKykgewotCQkJbXItPnBibF9idF9sMVtpXSA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsIHBibF9idF9zeiwKLQkJCQkJCSAgICAmKG1yLT5wYmxfbDFfZG1hX2FkZHJbaV0pLAotCQkJCQkJICAgIEdGUF9LRVJORUwpOwotCQkJaWYgKCFtci0+cGJsX2J0X2wxW2ldKSB7Ci0JCQkJaG5zX3JvY2VfbG9vcF9mcmVlKGhyX2RldiwgbXIsIDEsIGksIDApOwotCQkJCWdvdG8gZXJyX2RtYV9hbGxvY19sMDsKLQkJCX0KLQotCQkJKihtci0+cGJsX2J0X2wwICsgaSkgPSBtci0+cGJsX2wxX2RtYV9hZGRyW2ldOwotCi0JCQlmb3IgKGogPSAwOyBqIDwgcGJsX2J0X3N6IC8gODsgaisrKSB7Ci0JCQkJYnRfaWR4ID0gaSAqIHBibF9idF9zeiAvIDggKyBqOwotCi0JCQkJaWYgKHBibF9idF9jbnQgKyAxIDwgcGJsX2xhc3RfYnRfbnVtKSB7Ci0JCQkJCXNpemUgPSBwYmxfYnRfc3o7Ci0JCQkJfSBlbHNlIHsKLQkJCQkJbnBhZ2VzX2FsbG9jYXRlZCA9IGJ0X2lkeCAqCi0JCQkJCQkJICAgKHBibF9idF9zeiAvIDgpOwotCQkJCQlzaXplID0gKG5wYWdlcyAtIG5wYWdlc19hbGxvY2F0ZWQpICogODsKLQkJCQl9Ci0JCQkJbXItPnBibF9idF9sMltidF9pZHhdID0gZG1hX2FsbG9jX2NvaGVyZW50KAotCQkJCQkgICAgICBkZXYsIHNpemUsCi0JCQkJCSAgICAgICYobXItPnBibF9sMl9kbWFfYWRkcltidF9pZHhdKSwKLQkJCQkJICAgICAgR0ZQX0tFUk5FTCk7Ci0JCQkJaWYgKCFtci0+cGJsX2J0X2wyW2J0X2lkeF0pIHsKLQkJCQkJaG5zX3JvY2VfbG9vcF9mcmVlKGhyX2RldiwgbXIsIDIsIGksIGopOwotCQkJCQlnb3RvIGVycl9kbWFfYWxsb2NfbDA7Ci0JCQkJfQotCi0JCQkJKihtci0+cGJsX2J0X2wxW2ldICsgaikgPQotCQkJCQkJbXItPnBibF9sMl9kbWFfYWRkcltidF9pZHhdOwotCi0JCQkJcGJsX2J0X2NudCsrOwotCQkJCWlmIChwYmxfYnRfY250ID49IHBibF9sYXN0X2J0X251bSkgewotCQkJCQltcl9hbGxvY19kb25lID0gMTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJfQotCi0JCQlpZiAobXJfYWxsb2NfZG9uZSkKLQkJCQlicmVhazsKLQkJfQorCQlpZiAocGJsXzJob3BfYWxsb2MoaHJfZGV2LCBucGFnZXMsIG1yLCBwYmxfYnRfc3opKQorCQkJZ290byBlcnJfa2NhbGxvY19sMl9kbWE7CiAJfQogCi0JbXItPmwwX2NodW5rX2xhc3RfbnVtID0gaSArIDE7Ci0JaWYgKG1ob3BfbnVtID09IDMpCi0JCW1yLT5sMV9jaHVua19sYXN0X251bSA9IGogKyAxOworCWlmIChtaG9wX251bSA9PSAzKSB7CisJCWlmIChwYmxfM2hvcF9hbGxvYyhocl9kZXYsIG5wYWdlcywgbXIsIHBibF9idF9zeikpCisJCQlnb3RvIGVycl9rY2FsbG9jX2wyX2RtYTsKKwl9CisKIAogCW1yLT5wYmxfc2l6ZSA9IG5wYWdlczsKIAltci0+cGJsX2JhID0gbXItPnBibF9sMF9kbWFfYWRkcjsKQEAgLTUwNSwxNCArNTU3LDYgQEAgc3RhdGljIGludCBobnNfcm9jZV9taG9wX2FsbG9jKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwgaW50IG5wYWdlcywKIAogCXJldHVybiAwOwogCi1lcnJfZG1hX2FsbG9jX2wwOgotCWtmcmVlKG1yLT5wYmxfYnRfbDIpOwotCW1yLT5wYmxfYnRfbDIgPSBOVUxMOwotCi1lcnJfa2NhbGxvY19idF9sMjoKLQlrZnJlZShtci0+cGJsX2wyX2RtYV9hZGRyKTsKLQltci0+cGJsX2wyX2RtYV9hZGRyID0gTlVMTDsKLQogZXJyX2tjYWxsb2NfbDJfZG1hOgogCWtmcmVlKG1yLT5wYmxfYnRfbDEpOwogCW1yLT5wYmxfYnRfbDEgPSBOVUxMOwpAQCAtMTE2MSw2ICsxMjA1LDgzIEBAIHN0cnVjdCBpYl9tciAqaG5zX3JvY2VfcmVnX3VzZXJfbXIoc3RydWN0IGliX3BkICpwZCwgdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoLAogCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKK3N0YXRpYyBpbnQgcmVyZWdfbXJfdHJhbnMoc3RydWN0IGliX21yICppYm1yLCBpbnQgZmxhZ3MsCisJCQkgIHU2NCBzdGFydCwgdTY0IGxlbmd0aCwKKwkJCSAgdTY0IHZpcnRfYWRkciwgaW50IG1yX2FjY2Vzc19mbGFncywKKwkJCSAgc3RydWN0IGhuc19yb2NlX2NtZF9tYWlsYm94ICptYWlsYm94LAorCQkJICB1MzIgcGRuLCBzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhKQoreworCXN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiA9IHRvX2hyX2RldihpYm1yLT5kZXZpY2UpOworCXN0cnVjdCBobnNfcm9jZV9tciAqbXIgPSB0b19ocl9tcihpYm1yKTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKKwlpbnQgbnBhZ2VzOworCWludCByZXQ7CisKKwlpZiAobXItPnNpemUgIT0gfjBVTEwpIHsKKwkJbnBhZ2VzID0gaWJfdW1lbV9wYWdlX2NvdW50KG1yLT51bWVtKTsKKworCQlpZiAoaHJfZGV2LT5jYXBzLnBibF9ob3BfbnVtKQorCQkJaG5zX3JvY2VfbWhvcF9mcmVlKGhyX2RldiwgbXIpOworCQllbHNlCisJCQlkbWFfZnJlZV9jb2hlcmVudChkZXYsIG5wYWdlcyAqIDgsCisJCQkJCSAgbXItPnBibF9idWYsIG1yLT5wYmxfZG1hX2FkZHIpOworCX0KKwlpYl91bWVtX3JlbGVhc2UobXItPnVtZW0pOworCisJbXItPnVtZW0gPSBpYl91bWVtX2dldCh1ZGF0YSwgc3RhcnQsIGxlbmd0aCwgbXJfYWNjZXNzX2ZsYWdzLCAwKTsKKwlpZiAoSVNfRVJSKG1yLT51bWVtKSkgeworCQlyZXQgPSBQVFJfRVJSKG1yLT51bWVtKTsKKwkJbXItPnVtZW0gPSBOVUxMOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJbnBhZ2VzID0gaWJfdW1lbV9wYWdlX2NvdW50KG1yLT51bWVtKTsKKworCWlmIChocl9kZXYtPmNhcHMucGJsX2hvcF9udW0pIHsKKwkJcmV0ID0gaG5zX3JvY2VfbWhvcF9hbGxvYyhocl9kZXYsIG5wYWdlcywgbXIpOworCQlpZiAocmV0KQorCQkJZ290byByZWxlYXNlX3VtZW07CisJfSBlbHNlIHsKKwkJbXItPnBibF9idWYgPSBkbWFfYWxsb2NfY29oZXJlbnQoZGV2LCBucGFnZXMgKiA4LAorCQkJCQkJICYobXItPnBibF9kbWFfYWRkciksCisJCQkJCQkgR0ZQX0tFUk5FTCk7CisJCWlmICghbXItPnBibF9idWYpIHsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIHJlbGVhc2VfdW1lbTsKKwkJfQorCX0KKworCXJldCA9IGhyX2Rldi0+aHctPnJlcmVnX3dyaXRlX210cHQoaHJfZGV2LCBtciwgZmxhZ3MsIHBkbiwKKwkJCQkJICAgbXJfYWNjZXNzX2ZsYWdzLCB2aXJ0X2FkZHIsCisJCQkJCSAgIGxlbmd0aCwgbWFpbGJveC0+YnVmKTsKKwlpZiAocmV0KQorCQlnb3RvIHJlbGVhc2VfdW1lbTsKKworCisJcmV0ID0gaG5zX3JvY2VfaWJfdW1lbV93cml0ZV9tcihocl9kZXYsIG1yLCBtci0+dW1lbSk7CisJaWYgKHJldCkgeworCQlpZiAobXItPnNpemUgIT0gfjBVTEwpIHsKKwkJCW5wYWdlcyA9IGliX3VtZW1fcGFnZV9jb3VudChtci0+dW1lbSk7CisKKwkJCWlmIChocl9kZXYtPmNhcHMucGJsX2hvcF9udW0pCisJCQkJaG5zX3JvY2VfbWhvcF9mcmVlKGhyX2RldiwgbXIpOworCQkJZWxzZQorCQkJCWRtYV9mcmVlX2NvaGVyZW50KGRldiwgbnBhZ2VzICogOCwKKwkJCQkJCSAgbXItPnBibF9idWYsCisJCQkJCQkgIG1yLT5wYmxfZG1hX2FkZHIpOworCQl9CisKKwkJZ290byByZWxlYXNlX3VtZW07CisJfQorCisJcmV0dXJuIDA7CisKK3JlbGVhc2VfdW1lbToKKwlpYl91bWVtX3JlbGVhc2UobXItPnVtZW0pOworCXJldHVybiByZXQ7CisKK30KKworCiBpbnQgaG5zX3JvY2VfcmVyZWdfdXNlcl9tcihzdHJ1Y3QgaWJfbXIgKmlibXIsIGludCBmbGFncywgdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoLAogCQkJICAgdTY0IHZpcnRfYWRkciwgaW50IG1yX2FjY2Vzc19mbGFncywgc3RydWN0IGliX3BkICpwZCwKIAkJCSAgIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEpCkBAIC0xMTcxLDcgKzEyOTIsNiBAQCBpbnQgaG5zX3JvY2VfcmVyZWdfdXNlcl9tcihzdHJ1Y3QgaWJfbXIgKmlibXIsIGludCBmbGFncywgdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoLAogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhyX2Rldi0+ZGV2OwogCXVuc2lnbmVkIGxvbmcgbXRwdF9pZHg7CiAJdTMyIHBkbiA9IDA7Ci0JaW50IG5wYWdlczsKIAlpbnQgcmV0OwogCiAJaWYgKCFtci0+ZW5hYmxlZCkKQEAgLTExOTgsNzMgKzEzMTgsMjUgQEAgaW50IGhuc19yb2NlX3JlcmVnX3VzZXJfbXIoc3RydWN0IGliX21yICppYm1yLCBpbnQgZmxhZ3MsIHU2NCBzdGFydCwgdTY0IGxlbmd0aCwKIAkJcGRuID0gdG9faHJfcGQocGQpLT5wZG47CiAKIAlpZiAoZmxhZ3MgJiBJQl9NUl9SRVJFR19UUkFOUykgewotCQlpZiAobXItPnNpemUgIT0gfjBVTEwpIHsKLQkJCW5wYWdlcyA9IGliX3VtZW1fcGFnZV9jb3VudChtci0+dW1lbSk7Ci0KLQkJCWlmIChocl9kZXYtPmNhcHMucGJsX2hvcF9udW0pCi0JCQkJaG5zX3JvY2VfbWhvcF9mcmVlKGhyX2RldiwgbXIpOwotCQkJZWxzZQotCQkJCWRtYV9mcmVlX2NvaGVyZW50KGRldiwgbnBhZ2VzICogOCwgbXItPnBibF9idWYsCi0JCQkJCQkgIG1yLT5wYmxfZG1hX2FkZHIpOwotCQl9Ci0JCWliX3VtZW1fcmVsZWFzZShtci0+dW1lbSk7Ci0KLQkJbXItPnVtZW0gPQotCQkJaWJfdW1lbV9nZXQodWRhdGEsIHN0YXJ0LCBsZW5ndGgsIG1yX2FjY2Vzc19mbGFncywgMCk7Ci0JCWlmIChJU19FUlIobXItPnVtZW0pKSB7Ci0JCQlyZXQgPSBQVFJfRVJSKG1yLT51bWVtKTsKLQkJCW1yLT51bWVtID0gTlVMTDsKKwkJcmV0ID0gcmVyZWdfbXJfdHJhbnMoaWJtciwgZmxhZ3MsCisJCQkJICAgICBzdGFydCwgbGVuZ3RoLAorCQkJCSAgICAgdmlydF9hZGRyLCBtcl9hY2Nlc3NfZmxhZ3MsCisJCQkJICAgICBtYWlsYm94LCBwZG4sIHVkYXRhKTsKKwkJaWYgKHJldCkKIAkJCWdvdG8gZnJlZV9jbWRfbWJveDsKLQkJfQotCQlucGFnZXMgPSBpYl91bWVtX3BhZ2VfY291bnQobXItPnVtZW0pOwotCi0JCWlmIChocl9kZXYtPmNhcHMucGJsX2hvcF9udW0pIHsKLQkJCXJldCA9IGhuc19yb2NlX21ob3BfYWxsb2MoaHJfZGV2LCBucGFnZXMsIG1yKTsKLQkJCWlmIChyZXQpCi0JCQkJZ290byByZWxlYXNlX3VtZW07Ci0JCX0gZWxzZSB7Ci0JCQltci0+cGJsX2J1ZiA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsIG5wYWdlcyAqIDgsCi0JCQkJCQkJICYobXItPnBibF9kbWFfYWRkciksCi0JCQkJCQkJIEdGUF9LRVJORUwpOwotCQkJaWYgKCFtci0+cGJsX2J1ZikgewotCQkJCXJldCA9IC1FTk9NRU07Ci0JCQkJZ290byByZWxlYXNlX3VtZW07Ci0JCQl9Ci0JCX0KLQl9Ci0KLQlyZXQgPSBocl9kZXYtPmh3LT5yZXJlZ193cml0ZV9tdHB0KGhyX2RldiwgbXIsIGZsYWdzLCBwZG4sCi0JCQkJCSAgIG1yX2FjY2Vzc19mbGFncywgdmlydF9hZGRyLAotCQkJCQkgICBsZW5ndGgsIG1haWxib3gtPmJ1Zik7Ci0JaWYgKHJldCkgewotCQlpZiAoZmxhZ3MgJiBJQl9NUl9SRVJFR19UUkFOUykKLQkJCWdvdG8gcmVsZWFzZV91bWVtOwotCQllbHNlCisJfSBlbHNlIHsKKwkJcmV0ID0gaHJfZGV2LT5ody0+cmVyZWdfd3JpdGVfbXRwdChocl9kZXYsIG1yLCBmbGFncywgcGRuLAorCQkJCQkJICAgbXJfYWNjZXNzX2ZsYWdzLCB2aXJ0X2FkZHIsCisJCQkJCQkgICBsZW5ndGgsIG1haWxib3gtPmJ1Zik7CisJCWlmIChyZXQpCiAJCQlnb3RvIGZyZWVfY21kX21ib3g7CiAJfQogCi0JaWYgKGZsYWdzICYgSUJfTVJfUkVSRUdfVFJBTlMpIHsKLQkJcmV0ID0gaG5zX3JvY2VfaWJfdW1lbV93cml0ZV9tcihocl9kZXYsIG1yLCBtci0+dW1lbSk7Ci0JCWlmIChyZXQpIHsKLQkJCWlmIChtci0+c2l6ZSAhPSB+MFVMTCkgewotCQkJCW5wYWdlcyA9IGliX3VtZW1fcGFnZV9jb3VudChtci0+dW1lbSk7Ci0KLQkJCQlpZiAoaHJfZGV2LT5jYXBzLnBibF9ob3BfbnVtKQotCQkJCQlobnNfcm9jZV9taG9wX2ZyZWUoaHJfZGV2LCBtcik7Ci0JCQkJZWxzZQotCQkJCQlkbWFfZnJlZV9jb2hlcmVudChkZXYsIG5wYWdlcyAqIDgsCi0JCQkJCQkJICBtci0+cGJsX2J1ZiwKLQkJCQkJCQkgIG1yLT5wYmxfZG1hX2FkZHIpOwotCQkJfQotCi0JCQlnb3RvIHJlbGVhc2VfdW1lbTsKLQkJfQotCX0KLQogCXJldCA9IGhuc19yb2NlX3N3Mmh3X21wdChocl9kZXYsIG1haWxib3gsIG10cHRfaWR4KTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LCAiU1cySFdfTVBUIGZhaWxlZCAoJWQpXG4iLCByZXQpOwotCQlnb3RvIHJlbGVhc2VfdW1lbTsKKwkJaWJfdW1lbV9yZWxlYXNlKG1yLT51bWVtKTsKKwkJZ290byBmcmVlX2NtZF9tYm94OwogCX0KIAogCW1yLT5lbmFibGVkID0gMTsKQEAgLTEyNzUsOSArMTM0Nyw2IEBAIGludCBobnNfcm9jZV9yZXJlZ191c2VyX21yKHN0cnVjdCBpYl9tciAqaWJtciwgaW50IGZsYWdzLCB1NjQgc3RhcnQsIHU2NCBsZW5ndGgsCiAKIAlyZXR1cm4gMDsKIAotcmVsZWFzZV91bWVtOgotCWliX3VtZW1fcmVsZWFzZShtci0+dW1lbSk7Ci0KIGZyZWVfY21kX21ib3g6CiAJaG5zX3JvY2VfZnJlZV9jbWRfbWFpbGJveChocl9kZXYsIG1haWxib3gpOwogCkBAIC0xMzU3LDcgKzE0MjYsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3NldF9wYWdlKHN0cnVjdCBpYl9tciAqaWJtciwgdTY0IGFkZHIpCiB7CiAJc3RydWN0IGhuc19yb2NlX21yICptciA9IHRvX2hyX21yKGlibXIpOwogCi0JbXItPnBibF9idWZbbXItPm5wYWdlcysrXSA9IGNwdV90b19sZTY0KGFkZHIpOworCW1yLT5wYmxfYnVmW21yLT5ucGFnZXMrK10gPSBhZGRyOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNTI4LDEwICsxNTk3LDkgQEAgc3RhdGljIGludCBobnNfcm9jZV93cml0ZV9tdHIoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQkvKiBTYXZlIHBhZ2UgYWRkciwgbG93IDEyIGJpdHMgOiAwICovCiAJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAJCQlpZiAoaHJfZGV2LT5od19yZXYgPT0gSE5TX1JPQ0VfSFdfVkVSMSkKLQkJCQltdHRzW2ldID0gY3B1X3RvX2xlNjQoYnVmc1tucGFnZV0gPj4KLQkJCQkJCQlQQUdFX0FERFJfU0hJRlQpOworCQkJCW10dHNbaV0gPSBidWZzW25wYWdlXSA+PiBQQUdFX0FERFJfU0hJRlQ7CiAJCQllbHNlCi0JCQkJbXR0c1tpXSA9IGNwdV90b19sZTY0KGJ1ZnNbbnBhZ2VdKTsKKwkJCQltdHRzW2ldID0gYnVmc1tucGFnZV07CiAKIAkJCW5wYWdlKys7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfcXAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfcXAuYwppbmRleCBlMDQyNDAyLi5iZDc4ZmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX3FwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9xcC5jCkBAIC0zMjQsMzEgKzMyNCw0NiBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3NldF9ycV9zaXplKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBobnNfcm9jZV9zZXRfdXNlcl9zcV9zaXplKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKLQkJCQkgICAgIHN0cnVjdCBpYl9xcF9jYXAgKmNhcCwKLQkJCQkgICAgIHN0cnVjdCBobnNfcm9jZV9xcCAqaHJfcXAsCi0JCQkJICAgICBzdHJ1Y3QgaG5zX3JvY2VfaWJfY3JlYXRlX3FwICp1Y21kKQorc3RhdGljIGludCBjaGVja19zcV9zaXplX3dpdGhfaW50ZWdyaXR5KHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKKwkJCQkJc3RydWN0IGliX3FwX2NhcCAqY2FwLAorCQkJCQlzdHJ1Y3QgaG5zX3JvY2VfaWJfY3JlYXRlX3FwICp1Y21kKQogewogCXUzMiByb3VuZHVwX3NxX3N0cmlkZSA9IHJvdW5kdXBfcG93X29mX3R3byhocl9kZXYtPmNhcHMubWF4X3NxX2Rlc2Nfc3opOwogCXU4IG1heF9zcV9zdHJpZGUgPSBpbG9nMihyb3VuZHVwX3NxX3N0cmlkZSk7Ci0JdTMyIGV4X3NnZV9udW07Ci0JdTMyIHBhZ2Vfc2l6ZTsKLQl1MzIgbWF4X2NudDsKIAogCS8qIFNhbml0eSBjaGVjayBTUSBzaXplIGJlZm9yZSBwcm9jZWVkaW5nICovCiAJaWYgKCh1MzIpKDEgPDwgdWNtZC0+bG9nX3NxX2JiX2NvdW50KSA+IGhyX2Rldi0+Y2Fwcy5tYXhfd3FlcyB8fAogCSAgICAgdWNtZC0+bG9nX3NxX3N0cmlkZSA+IG1heF9zcV9zdHJpZGUgfHwKIAkgICAgIHVjbWQtPmxvZ19zcV9zdHJpZGUgPCBITlNfUk9DRV9JQl9NSU5fU1FfU1RSSURFKSB7Ci0JCWRldl9lcnIoaHJfZGV2LT5kZXYsICJjaGVjayBTUSBzaXplIGVycm9yIVxuIik7CisJCWliZGV2X2VycigmaHJfZGV2LT5pYl9kZXYsICJjaGVjayBTUSBzaXplIGVycm9yIVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAogCWlmIChjYXAtPm1heF9zZW5kX3NnZSA+IGhyX2Rldi0+Y2Fwcy5tYXhfc3Ffc2cpIHsKLQkJZGV2X2Vycihocl9kZXYtPmRldiwgIlNRIHNnZSBlcnJvciEgbWF4X3NlbmRfc2dlPSVkXG4iLAotCQkJY2FwLT5tYXhfc2VuZF9zZ2UpOworCQlpYmRldl9lcnIoJmhyX2Rldi0+aWJfZGV2LCAiU1Egc2dlIGVycm9yISBtYXhfc2VuZF9zZ2U9JWRcbiIsCisJCQkgIGNhcC0+bWF4X3NlbmRfc2dlKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaG5zX3JvY2Vfc2V0X3VzZXJfc3Ffc2l6ZShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCisJCQkJICAgICBzdHJ1Y3QgaWJfcXBfY2FwICpjYXAsCisJCQkJICAgICBzdHJ1Y3QgaG5zX3JvY2VfcXAgKmhyX3FwLAorCQkJCSAgICAgc3RydWN0IGhuc19yb2NlX2liX2NyZWF0ZV9xcCAqdWNtZCkKK3sKKwl1MzIgZXhfc2dlX251bTsKKwl1MzIgcGFnZV9zaXplOworCXUzMiBtYXhfY250OworCWludCByZXQ7CisKKwlyZXQgPSBjaGVja19zcV9zaXplX3dpdGhfaW50ZWdyaXR5KGhyX2RldiwgY2FwLCB1Y21kKTsKKwlpZiAocmV0KSB7CisJCWliZGV2X2VycigmaHJfZGV2LT5pYl9kZXYsICJTYW5pdHkgY2hlY2sgc3Egc2l6ZSBmYWlsZWRcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKwogCWhyX3FwLT5zcS53cWVfY250ID0gMSA8PCB1Y21kLT5sb2dfc3FfYmJfY291bnQ7CiAJaHJfcXAtPnNxLndxZV9zaGlmdCA9IHVjbWQtPmxvZ19zcV9zdHJpZGU7CiAKQEAgLTUwMSw0MyArNTE2LDEwIEBAIHN0YXRpYyBpbnQgY2FsY193cWVfYnRfcGFnZV9zaGlmdChzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJcmV0dXJuIGJ0X3BnX3NoaWZ0IC0gUEFHRV9TSElGVDsKIH0KIAotc3RhdGljIGludCBobnNfcm9jZV9zZXRfa2VybmVsX3NxX3NpemUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAotCQkJCSAgICAgICBzdHJ1Y3QgaWJfcXBfY2FwICpjYXAsCi0JCQkJICAgICAgIHN0cnVjdCBobnNfcm9jZV9xcCAqaHJfcXApCitzdGF0aWMgaW50IHNldF9leHRlbmRfc2dlX3BhcmFtKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKKwkJCQlzdHJ1Y3QgaG5zX3JvY2VfcXAgKmhyX3FwKQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhyX2Rldi0+ZGV2OwotCXUzMiBwYWdlX3NpemU7Ci0JdTMyIG1heF9jbnQ7Ci0JaW50IHNpemU7Ci0KLQlpZiAoY2FwLT5tYXhfc2VuZF93ciAgPiBocl9kZXYtPmNhcHMubWF4X3dxZXMgIHx8Ci0JICAgIGNhcC0+bWF4X3NlbmRfc2dlID4gaHJfZGV2LT5jYXBzLm1heF9zcV9zZyB8fAotCSAgICBjYXAtPm1heF9pbmxpbmVfZGF0YSA+IGhyX2Rldi0+Y2Fwcy5tYXhfc3FfaW5saW5lKSB7Ci0JCWRldl9lcnIoZGV2LCAiU1EgV1Igb3Igc2dlIG9yIGlubGluZSBkYXRhIGVycm9yIVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWhyX3FwLT5zcS53cWVfc2hpZnQgPSBpbG9nMihocl9kZXYtPmNhcHMubWF4X3NxX2Rlc2Nfc3opOwotCWhyX3FwLT5zcV9tYXhfd3Flc19wZXJfd3IgPSAxOwotCWhyX3FwLT5zcV9zcGFyZV93cWVzID0gMDsKLQotCWlmIChocl9kZXYtPmNhcHMubWluX3dxZXMpCi0JCW1heF9jbnQgPSBtYXgoY2FwLT5tYXhfc2VuZF93ciwgaHJfZGV2LT5jYXBzLm1pbl93cWVzKTsKLQllbHNlCi0JCW1heF9jbnQgPSBjYXAtPm1heF9zZW5kX3dyOwotCi0JaHJfcXAtPnNxLndxZV9jbnQgPSByb3VuZHVwX3Bvd19vZl90d28obWF4X2NudCk7Ci0JaWYgKCh1MzIpaHJfcXAtPnNxLndxZV9jbnQgPiBocl9kZXYtPmNhcHMubWF4X3dxZXMpIHsKLQkJZGV2X2VycihkZXYsICJ3aGlsZSBzZXR0aW5nIGtlcm5lbCBzcSBzaXplLCBzcS53cWVfY250IHRvbyBsYXJnZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCS8qIEdldCBkYXRhX3NlZyBudW1iZXJzICovCi0JbWF4X2NudCA9IG1heCgxVSwgY2FwLT5tYXhfc2VuZF9zZ2UpOwotCWlmIChocl9kZXYtPmNhcHMubWF4X3NxX3NnIDw9IDIpCi0JCWhyX3FwLT5zcS5tYXhfZ3MgPSByb3VuZHVwX3Bvd19vZl90d28obWF4X2NudCk7Ci0JZWxzZQotCQlocl9xcC0+c3EubWF4X2dzID0gbWF4X2NudDsKIAogCWlmIChocl9xcC0+c3EubWF4X2dzID4gMikgewogCQlocl9xcC0+c2dlLnNnZV9jbnQgPSByb3VuZHVwX3Bvd19vZl90d28oaHJfcXAtPnNxLndxZV9jbnQgKgpAQCAtNTYwLDYgKzU0Miw1MiBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3NldF9rZXJuZWxfc3Ffc2l6ZShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCX0KIAl9CiAKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBobnNfcm9jZV9zZXRfa2VybmVsX3NxX3NpemUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAorCQkJCSAgICAgICBzdHJ1Y3QgaWJfcXBfY2FwICpjYXAsCisJCQkJICAgICAgIHN0cnVjdCBobnNfcm9jZV9xcCAqaHJfcXApCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gaHJfZGV2LT5kZXY7CisJdTMyIHBhZ2Vfc2l6ZTsKKwl1MzIgbWF4X2NudDsKKwlpbnQgc2l6ZTsKKwlpbnQgcmV0OworCisJaWYgKGNhcC0+bWF4X3NlbmRfd3IgID4gaHJfZGV2LT5jYXBzLm1heF93cWVzICB8fAorCSAgICBjYXAtPm1heF9zZW5kX3NnZSA+IGhyX2Rldi0+Y2Fwcy5tYXhfc3Ffc2cgfHwKKwkgICAgY2FwLT5tYXhfaW5saW5lX2RhdGEgPiBocl9kZXYtPmNhcHMubWF4X3NxX2lubGluZSkgeworCQlkZXZfZXJyKGRldiwgIlNRIFdSIG9yIHNnZSBvciBpbmxpbmUgZGF0YSBlcnJvciFcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlocl9xcC0+c3Eud3FlX3NoaWZ0ID0gaWxvZzIoaHJfZGV2LT5jYXBzLm1heF9zcV9kZXNjX3N6KTsKKworCWlmIChocl9kZXYtPmNhcHMubWluX3dxZXMpCisJCW1heF9jbnQgPSBtYXgoY2FwLT5tYXhfc2VuZF93ciwgaHJfZGV2LT5jYXBzLm1pbl93cWVzKTsKKwllbHNlCisJCW1heF9jbnQgPSBjYXAtPm1heF9zZW5kX3dyOworCisJaHJfcXAtPnNxLndxZV9jbnQgPSByb3VuZHVwX3Bvd19vZl90d28obWF4X2NudCk7CisJaWYgKCh1MzIpaHJfcXAtPnNxLndxZV9jbnQgPiBocl9kZXYtPmNhcHMubWF4X3dxZXMpIHsKKwkJZGV2X2VycihkZXYsICJ3aGlsZSBzZXR0aW5nIGtlcm5lbCBzcSBzaXplLCBzcS53cWVfY250IHRvbyBsYXJnZVxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIEdldCBkYXRhX3NlZyBudW1iZXJzICovCisJbWF4X2NudCA9IG1heCgxVSwgY2FwLT5tYXhfc2VuZF9zZ2UpOworCWlmIChocl9kZXYtPmNhcHMubWF4X3NxX3NnIDw9IDIpCisJCWhyX3FwLT5zcS5tYXhfZ3MgPSByb3VuZHVwX3Bvd19vZl90d28obWF4X2NudCk7CisJZWxzZQorCQlocl9xcC0+c3EubWF4X2dzID0gbWF4X2NudDsKKworCXJldCA9IHNldF9leHRlbmRfc2dlX3BhcmFtKGhyX2RldiwgaHJfcXApOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJzZXQgZXh0ZW5kIHNnZSBwYXJhbWV0ZXJzIGZhaWxcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKwogCS8qIEdldCBidWYgc2l6ZSwgU1EgYW5kIFJRIGFyZSBhbGlnbmVkIHRvIFBBR0VfU0laRSAqLwogCXBhZ2Vfc2l6ZSA9IDEgPDwgKGhyX2Rldi0+Y2Fwcy5tdHRfYnVmX3BnX3N6ICsgUEFHRV9TSElGVCk7CiAJaHJfcXAtPnNxLm9mZnNldCA9IDA7CkBAIC02MDcsMTMgKzYzNSw1NyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX3FwX2hhc19ycShzdHJ1Y3QgaWJfcXBfaW5pdF9hdHRyICphdHRyKQogCXJldHVybiAxOwogfQogCitzdGF0aWMgaW50IGFsbG9jX3JxX2lubGluZV9idWYoc3RydWN0IGhuc19yb2NlX3FwICpocl9xcCwKKwkJCSAgICAgICBzdHJ1Y3QgaWJfcXBfaW5pdF9hdHRyICppbml0X2F0dHIpCit7CisJdTMyIG1heF9yZWN2X3NnZSA9IGluaXRfYXR0ci0+Y2FwLm1heF9yZWN2X3NnZTsKKwlzdHJ1Y3QgaG5zX3JvY2VfcmlubF93cWUgKndxZV9saXN0OworCXUzMiB3cWVfY250ID0gaHJfcXAtPnJxLndxZV9jbnQ7CisJaW50IGk7CisKKwkvKiBhbGxvY2F0ZSByZWN2IGlubGluZSBidWYgKi8KKwl3cWVfbGlzdCA9IGtjYWxsb2Mod3FlX2NudCwgc2l6ZW9mKHN0cnVjdCBobnNfcm9jZV9yaW5sX3dxZSksCisJCQkgICBHRlBfS0VSTkVMKTsKKworCWlmICghd3FlX2xpc3QpCisJCWdvdG8gZXJyOworCisJLyogQWxsb2NhdGUgYSBjb250aW51b3VzIGJ1ZmZlciBmb3IgYWxsIGlubGluZSBzZ2Ugd2UgbmVlZCAqLworCXdxZV9saXN0WzBdLnNnX2xpc3QgPSBrY2FsbG9jKHdxZV9jbnQsIChtYXhfcmVjdl9zZ2UgKgorCQkJCSAgICAgIHNpemVvZihzdHJ1Y3QgaG5zX3JvY2VfcmlubF9zZ2UpKSwKKwkJCQkgICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXdxZV9saXN0WzBdLnNnX2xpc3QpCisJCWdvdG8gZXJyX3dxZV9saXN0OworCisJLyogQXNzaWduIGJ1ZmZlcnMgb2Ygc2dfbGlzdCB0byBlYWNoIGlubGluZSB3cWUgKi8KKwlmb3IgKGkgPSAxOyBpIDwgd3FlX2NudDsgaSsrKQorCQl3cWVfbGlzdFtpXS5zZ19saXN0ID0gJndxZV9saXN0WzBdLnNnX2xpc3RbaSAqIG1heF9yZWN2X3NnZV07CisKKwlocl9xcC0+cnFfaW5sX2J1Zi53cWVfbGlzdCA9IHdxZV9saXN0OworCWhyX3FwLT5ycV9pbmxfYnVmLndxZV9jbnQgPSB3cWVfY250OworCisJcmV0dXJuIDA7CisKK2Vycl93cWVfbGlzdDoKKwlrZnJlZSh3cWVfbGlzdCk7CisKK2VycjoKKwlyZXR1cm4gLUVOT01FTTsKK30KKworc3RhdGljIHZvaWQgZnJlZV9ycV9pbmxpbmVfYnVmKHN0cnVjdCBobnNfcm9jZV9xcCAqaHJfcXApCit7CisJa2ZyZWUoaHJfcXAtPnJxX2lubF9idWYud3FlX2xpc3RbMF0uc2dfbGlzdCk7CisJa2ZyZWUoaHJfcXAtPnJxX2lubF9idWYud3FlX2xpc3QpOworfQorCiBzdGF0aWMgaW50IGhuc19yb2NlX2NyZWF0ZV9xcF9jb21tb24oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQkJCSAgICAgc3RydWN0IGliX3BkICppYl9wZCwKIAkJCQkgICAgIHN0cnVjdCBpYl9xcF9pbml0X2F0dHIgKmluaXRfYXR0ciwKIAkJCQkgICAgIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEsIHVuc2lnbmVkIGxvbmcgc3FwbiwKIAkJCQkgICAgIHN0cnVjdCBobnNfcm9jZV9xcCAqaHJfcXApCiB7Ci0JZG1hX2FkZHJfdCAqYnVmX2xpc3RbQVJSQVlfU0laRShocl9xcC0+cmVnaW9ucyldID0geyAwIH07CisJZG1hX2FkZHJfdCAqYnVmX2xpc3RbQVJSQVlfU0laRShocl9xcC0+cmVnaW9ucyldID0geyBOVUxMIH07CiAJc3RydWN0IGRldmljZSAqZGV2ID0gaHJfZGV2LT5kZXY7CiAJc3RydWN0IGhuc19yb2NlX2liX2NyZWF0ZV9xcCB1Y21kOwogCXN0cnVjdCBobnNfcm9jZV9pYl9jcmVhdGVfcXBfcmVzcCByZXNwID0ge307CkBAIC02MzUsOSArNzA3LDkgQEAgc3RhdGljIGludCBobnNfcm9jZV9jcmVhdGVfcXBfY29tbW9uKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAlocl9xcC0+aWJxcC5xcF90eXBlID0gaW5pdF9hdHRyLT5xcF90eXBlOwogCiAJaWYgKGluaXRfYXR0ci0+c3Ffc2lnX3R5cGUgPT0gSUJfU0lHTkFMX0FMTF9XUikKLQkJaHJfcXAtPnNxX3NpZ25hbF9iaXRzID0gY3B1X3RvX2xlMzIoSUJfU0lHTkFMX0FMTF9XUik7CisJCWhyX3FwLT5zcV9zaWduYWxfYml0cyA9IElCX1NJR05BTF9BTExfV1I7CiAJZWxzZQotCQlocl9xcC0+c3Ffc2lnbmFsX2JpdHMgPSBjcHVfdG9fbGUzMihJQl9TSUdOQUxfUkVRX1dSKTsKKwkJaHJfcXAtPnNxX3NpZ25hbF9iaXRzID0gSUJfU0lHTkFMX1JFUV9XUjsKIAogCXJldCA9IGhuc19yb2NlX3NldF9ycV9zaXplKGhyX2RldiwgJmluaXRfYXR0ci0+Y2FwLCB1ZGF0YSwKIAkJCQkgICBobnNfcm9jZV9xcF9oYXNfcnEoaW5pdF9hdHRyKSwgaHJfcXApOwpAQCAtNjQ4LDMzICs3MjAsMTEgQEAgc3RhdGljIGludCBobnNfcm9jZV9jcmVhdGVfcXBfY29tbW9uKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKIAogCWlmICgoaHJfZGV2LT5jYXBzLmZsYWdzICYgSE5TX1JPQ0VfQ0FQX0ZMQUdfUlFfSU5MSU5FKSAmJgogCSAgICBobnNfcm9jZV9xcF9oYXNfcnEoaW5pdF9hdHRyKSkgewotCQkvKiBhbGxvY2F0ZSByZWN2IGlubGluZSBidWYgKi8KLQkJaHJfcXAtPnJxX2lubF9idWYud3FlX2xpc3QgPSBrY2FsbG9jKGhyX3FwLT5ycS53cWVfY250LAotCQkJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBobnNfcm9jZV9yaW5sX3dxZSksCi0JCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKLQkJaWYgKCFocl9xcC0+cnFfaW5sX2J1Zi53cWVfbGlzdCkgewotCQkJcmV0ID0gLUVOT01FTTsKKwkJcmV0ID0gYWxsb2NfcnFfaW5saW5lX2J1Zihocl9xcCwgaW5pdF9hdHRyKTsKKwkJaWYgKHJldCkgeworCQkJZGV2X2VycihkZXYsICJhbGxvY2F0ZSByZWNlaXZlIGlubGluZSBidWZmZXIgZmFpbGVkXG4iKTsKIAkJCWdvdG8gZXJyX291dDsKIAkJfQotCi0JCWhyX3FwLT5ycV9pbmxfYnVmLndxZV9jbnQgPSBocl9xcC0+cnEud3FlX2NudDsKLQotCQkvKiBGaXJzdGx5LCBhbGxvY2F0ZSBhIGxpc3Qgb2Ygc2dlIHNwYWNlIGJ1ZmZlciAqLwotCQlocl9xcC0+cnFfaW5sX2J1Zi53cWVfbGlzdFswXS5zZ19saXN0ID0KLQkJCQkJa2NhbGxvYyhocl9xcC0+cnFfaW5sX2J1Zi53cWVfY250LAotCQkJCQkgICAgICAgaW5pdF9hdHRyLT5jYXAubWF4X3JlY3Zfc2dlICoKLQkJCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgaG5zX3JvY2VfcmlubF9zZ2UpLAotCQkJCQkgICAgICAgR0ZQX0tFUk5FTCk7Ci0JCWlmICghaHJfcXAtPnJxX2lubF9idWYud3FlX2xpc3RbMF0uc2dfbGlzdCkgewotCQkJcmV0ID0gLUVOT01FTTsKLQkJCWdvdG8gZXJyX3dxZV9saXN0OwotCQl9Ci0KLQkJZm9yIChpID0gMTsgaSA8IGhyX3FwLT5ycV9pbmxfYnVmLndxZV9jbnQ7IGkrKykKLQkJCS8qIFNlY29uZGx5LCByZWFsbG9jYXRlIHRoZSBidWZmZXIgKi8KLQkJCWhyX3FwLT5ycV9pbmxfYnVmLndxZV9saXN0W2ldLnNnX2xpc3QgPQotCQkJCSZocl9xcC0+cnFfaW5sX2J1Zi53cWVfbGlzdFswXS5zZ19saXN0W2kgKgotCQkJCWluaXRfYXR0ci0+Y2FwLm1heF9yZWN2X3NnZV07CiAJfQogCiAJcGFnZV9zaGlmdCA9IFBBR0VfU0hJRlQgKyBocl9kZXYtPmNhcHMubXR0X2J1Zl9wZ19zejsKQEAgLTY4MiwxNCArNzMyLDE0IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCWlmIChpYl9jb3B5X2Zyb21fdWRhdGEoJnVjbWQsIHVkYXRhLCBzaXplb2YodWNtZCkpKSB7CiAJCQlkZXZfZXJyKGRldiwgImliX2NvcHlfZnJvbV91ZGF0YSBlcnJvciBmb3IgY3JlYXRlIHFwXG4iKTsKIAkJCXJldCA9IC1FRkFVTFQ7Ci0JCQlnb3RvIGVycl9ycV9zZ2VfbGlzdDsKKwkJCWdvdG8gZXJyX2FsbG9jX3JxX2lubGluZV9idWY7CiAJCX0KIAogCQlyZXQgPSBobnNfcm9jZV9zZXRfdXNlcl9zcV9zaXplKGhyX2RldiwgJmluaXRfYXR0ci0+Y2FwLCBocl9xcCwKIAkJCQkJCSZ1Y21kKTsKIAkJaWYgKHJldCkgewogCQkJZGV2X2VycihkZXYsICJobnNfcm9jZV9zZXRfdXNlcl9zcV9zaXplIGVycm9yIGZvciBjcmVhdGUgcXBcbiIpOwotCQkJZ290byBlcnJfcnFfc2dlX2xpc3Q7CisJCQlnb3RvIGVycl9hbGxvY19ycV9pbmxpbmVfYnVmOwogCQl9CiAKIAkJaHJfcXAtPnVtZW0gPSBpYl91bWVtX2dldCh1ZGF0YSwgdWNtZC5idWZfYWRkciwKQEAgLTY5Nyw3ICs3NDcsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX2NyZWF0ZV9xcF9jb21tb24oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQlpZiAoSVNfRVJSKGhyX3FwLT51bWVtKSkgewogCQkJZGV2X2VycihkZXYsICJpYl91bWVtX2dldCBlcnJvciBmb3IgY3JlYXRlIHFwXG4iKTsKIAkJCXJldCA9IFBUUl9FUlIoaHJfcXAtPnVtZW0pOwotCQkJZ290byBlcnJfcnFfc2dlX2xpc3Q7CisJCQlnb3RvIGVycl9hbGxvY19ycV9pbmxpbmVfYnVmOwogCQl9CiAJCWhyX3FwLT5yZWdpb25fY250ID0gc3BsaXRfd3FlX2J1Zl9yZWdpb24oaHJfZGV2LCBocl9xcCwKIAkJCQlocl9xcC0+cmVnaW9ucywgQVJSQVlfU0laRShocl9xcC0+cmVnaW9ucyksCkBAIC03NTgsMTMgKzgwOCwxMyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX2NyZWF0ZV9xcF9jb21tb24oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQkgICAgSUJfUVBfQ1JFQVRFX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSykgewogCQkJZGV2X2VycihkZXYsICJpbml0X2F0dHItPmNyZWF0ZV9mbGFncyBlcnJvciFcbiIpOwogCQkJcmV0ID0gLUVJTlZBTDsKLQkJCWdvdG8gZXJyX3JxX3NnZV9saXN0OworCQkJZ290byBlcnJfYWxsb2NfcnFfaW5saW5lX2J1ZjsKIAkJfQogCiAJCWlmIChpbml0X2F0dHItPmNyZWF0ZV9mbGFncyAmIElCX1FQX0NSRUFURV9JUE9JQl9VRF9MU08pIHsKIAkJCWRldl9lcnIoZGV2LCAiaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgZXJyb3IhXG4iKTsKIAkJCXJldCA9IC1FSU5WQUw7Ci0JCQlnb3RvIGVycl9ycV9zZ2VfbGlzdDsKKwkJCWdvdG8gZXJyX2FsbG9jX3JxX2lubGluZV9idWY7CiAJCX0KIAogCQkvKiBTZXQgU1Egc2l6ZSAqLwpAQCAtNzcyLDcgKzgyMiw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCQkJCQkgIGhyX3FwKTsKIAkJaWYgKHJldCkgewogCQkJZGV2X2VycihkZXYsICJobnNfcm9jZV9zZXRfa2VybmVsX3NxX3NpemUgZXJyb3IhXG4iKTsKLQkJCWdvdG8gZXJyX3JxX3NnZV9saXN0OworCQkJZ290byBlcnJfYWxsb2NfcnFfaW5saW5lX2J1ZjsKIAkJfQogCiAJCS8qIFFQIGRvb3JiZWxsIHJlZ2lzdGVyIGFkZHJlc3MgKi8KQEAgLTc4Niw3ICs4MzYsNyBAQCBzdGF0aWMgaW50IGhuc19yb2NlX2NyZWF0ZV9xcF9jb21tb24oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCQkJcmV0ID0gaG5zX3JvY2VfYWxsb2NfZGIoaHJfZGV2LCAmaHJfcXAtPnJkYiwgMCk7CiAJCQlpZiAocmV0KSB7CiAJCQkJZGV2X2VycihkZXYsICJycSByZWNvcmQgZG9vcmJlbGwgYWxsb2MgZmFpbGVkIVxuIik7Ci0JCQkJZ290byBlcnJfcnFfc2dlX2xpc3Q7CisJCQkJZ290byBlcnJfYWxsb2NfcnFfaW5saW5lX2J1ZjsKIAkJCX0KIAkJCSpocl9xcC0+cmRiLmRiX3JlY29yZCA9IDA7CiAJCQlocl9xcC0+cmRiX2VuID0gMTsKQEAgLTgyNiwxMSArODc2LDE4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAKIAkJaHJfcXAtPnNxLndyaWQgPSBrY2FsbG9jKGhyX3FwLT5zcS53cWVfY250LCBzaXplb2YodTY0KSwKIAkJCQkJIEdGUF9LRVJORUwpOwotCQlocl9xcC0+cnEud3JpZCA9IGtjYWxsb2MoaHJfcXAtPnJxLndxZV9jbnQsIHNpemVvZih1NjQpLAotCQkJCQkgR0ZQX0tFUk5FTCk7Ci0JCWlmICghaHJfcXAtPnNxLndyaWQgfHwgIWhyX3FwLT5ycS53cmlkKSB7CisJCWlmIChaRVJPX09SX05VTExfUFRSKGhyX3FwLT5zcS53cmlkKSkgewogCQkJcmV0ID0gLUVOT01FTTsKLQkJCWdvdG8gZXJyX3dyaWQ7CisJCQlnb3RvIGVycl9nZXRfYnVmczsKKwkJfQorCisJCWlmIChocl9xcC0+cnEud3FlX2NudCkgeworCQkJaHJfcXAtPnJxLndyaWQgPSBrY2FsbG9jKGhyX3FwLT5ycS53cWVfY250LCBzaXplb2YodTY0KSwKKwkJCQkJCSBHRlBfS0VSTkVMKTsKKwkJCWlmIChaRVJPX09SX05VTExfUFRSKGhyX3FwLT5ycS53cmlkKSkgeworCQkJCXJldCA9IC1FTk9NRU07CisJCQkJZ290byBlcnJfc3Ffd3JpZDsKKwkJCX0KIAkJfQogCX0KIApAQCAtODc1LDcgKzkzMiw3IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJaWYgKHNxcG4pCiAJCWhyX3FwLT5kb29yYmVsbF9xcG4gPSAxOwogCWVsc2UKLQkJaHJfcXAtPmRvb3JiZWxsX3FwbiA9IGNwdV90b19sZTY0KGhyX3FwLT5xcG4pOworCQlocl9xcC0+ZG9vcmJlbGxfcXBuID0gKHUzMilocl9xcC0+cXBuOwogCiAJaWYgKHVkYXRhKSB7CiAJCXJldCA9IGliX2NvcHlfdG9fdWRhdGEodWRhdGEsICZyZXNwLApAQCAtOTE2LDggKzk3Myw4IEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCSAgICBobnNfcm9jZV9xcF9oYXNfcnEoaW5pdF9hdHRyKSkKIAkJCWhuc19yb2NlX2RiX3VubWFwX3VzZXIodWN0eCwgJmhyX3FwLT5yZGIpOwogCX0gZWxzZSB7Ci0JCWtmcmVlKGhyX3FwLT5zcS53cmlkKTsKLQkJa2ZyZWUoaHJfcXAtPnJxLndyaWQpOworCQlpZiAoaHJfcXAtPnJxLndxZV9jbnQpCisJCQlrZnJlZShocl9xcC0+cnEud3JpZCk7CiAJfQogCiBlcnJfc3FfZGJtYXA6CkBAIC05MjgsNiArOTg1LDEwIEBAIHN0YXRpYyBpbnQgaG5zX3JvY2VfY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCiAJCSAgICBobnNfcm9jZV9xcF9oYXNfc3EoaW5pdF9hdHRyKSkKIAkJCWhuc19yb2NlX2RiX3VubWFwX3VzZXIodWN0eCwgJmhyX3FwLT5zZGIpOwogCitlcnJfc3Ffd3JpZDoKKwlpZiAoIXVkYXRhKQorCQlrZnJlZShocl9xcC0+c3Eud3JpZCk7CisKIGVycl9nZXRfYnVmczoKIAlobnNfcm9jZV9mcmVlX2J1Zl9saXN0KGJ1Zl9saXN0LCBocl9xcC0+cmVnaW9uX2NudCk7CiAKQEAgLTk0MSwxMyArMTAwMiwxMCBAQCBzdGF0aWMgaW50IGhuc19yb2NlX2NyZWF0ZV9xcF9jb21tb24oc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCSAgICAoaHJfZGV2LT5jYXBzLmZsYWdzICYgSE5TX1JPQ0VfQ0FQX0ZMQUdfUkVDT1JEX0RCKSkKIAkJaG5zX3JvY2VfZnJlZV9kYihocl9kZXYsICZocl9xcC0+cmRiKTsKIAotZXJyX3JxX3NnZV9saXN0OgotCWlmIChocl9kZXYtPmNhcHMuZmxhZ3MgJiBITlNfUk9DRV9DQVBfRkxBR19SUV9JTkxJTkUpCi0JCWtmcmVlKGhyX3FwLT5ycV9pbmxfYnVmLndxZV9saXN0WzBdLnNnX2xpc3QpOwotCi1lcnJfd3FlX2xpc3Q6Ci0JaWYgKGhyX2Rldi0+Y2Fwcy5mbGFncyAmIEhOU19ST0NFX0NBUF9GTEFHX1JRX0lOTElORSkKLQkJa2ZyZWUoaHJfcXAtPnJxX2lubF9idWYud3FlX2xpc3QpOworZXJyX2FsbG9jX3JxX2lubGluZV9idWY6CisJaWYgKChocl9kZXYtPmNhcHMuZmxhZ3MgJiBITlNfUk9DRV9DQVBfRkxBR19SUV9JTkxJTkUpICYmCisJICAgICBobnNfcm9jZV9xcF9oYXNfcnEoaW5pdF9hdHRyKSkKKwkJZnJlZV9ycV9pbmxpbmVfYnVmKGhyX3FwKTsKIAogZXJyX291dDoKIAlyZXR1cm4gcmV0OwpAQCAtOTU4LDcgKzEwMTYsNyBAQCBzdHJ1Y3QgaWJfcXAgKmhuc19yb2NlX2NyZWF0ZV9xcChzdHJ1Y3QgaWJfcGQgKnBkLAogCQkJCSBzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhKQogewogCXN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiA9IHRvX2hyX2RldihwZC0+ZGV2aWNlKTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBocl9kZXYtPmRldjsKKwlzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiA9ICZocl9kZXYtPmliX2RldjsKIAlzdHJ1Y3QgaG5zX3JvY2Vfc3FwICpocl9zcXA7CiAJc3RydWN0IGhuc19yb2NlX3FwICpocl9xcDsKIAlpbnQgcmV0OwpAQCAtOTcyLDcgKzEwMzAsOCBAQCBzdHJ1Y3QgaWJfcXAgKmhuc19yb2NlX2NyZWF0ZV9xcChzdHJ1Y3QgaWJfcGQgKnBkLAogCQlyZXQgPSBobnNfcm9jZV9jcmVhdGVfcXBfY29tbW9uKGhyX2RldiwgcGQsIGluaXRfYXR0ciwgdWRhdGEsIDAsCiAJCQkJCQlocl9xcCk7CiAJCWlmIChyZXQpIHsKLQkJCWRldl9lcnIoZGV2LCAiQ3JlYXRlIFJDIFFQIGZhaWxlZFxuIik7CisJCQlpYmRldl9lcnIoaWJkZXYsICJDcmVhdGUgUkMgUVAgMHglMDZseCBmYWlsZWQoJWQpXG4iLAorCQkJCSAgaHJfcXAtPnFwbiwgcmV0KTsKIAkJCWtmcmVlKGhyX3FwKTsKIAkJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJCX0KQEAgLTk4NCw3ICsxMDQzLDcgQEAgc3RydWN0IGliX3FwICpobnNfcm9jZV9jcmVhdGVfcXAoc3RydWN0IGliX3BkICpwZCwKIAljYXNlIElCX1FQVF9HU0k6IHsKIAkJLyogVXNlcnNwYWNlIGlzIG5vdCBhbGxvd2VkIHRvIGNyZWF0ZSBzcGVjaWFsIFFQczogKi8KIAkJaWYgKHVkYXRhKSB7Ci0JCQlkZXZfZXJyKGRldiwgIm5vdCBzdXBwb3J0IHVzciBzcGFjZSBHU0lcbiIpOworCQkJaWJkZXZfZXJyKGliZGV2LCAibm90IHN1cHBvcnQgdXNyIHNwYWNlIEdTSVxuIik7CiAJCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAkJfQogCkBAIC0xMDA2LDcgKzEwNjUsNyBAQCBzdHJ1Y3QgaWJfcXAgKmhuc19yb2NlX2NyZWF0ZV9xcChzdHJ1Y3QgaWJfcGQgKnBkLAogCQlyZXQgPSBobnNfcm9jZV9jcmVhdGVfcXBfY29tbW9uKGhyX2RldiwgcGQsIGluaXRfYXR0ciwgdWRhdGEsCiAJCQkJCQlocl9xcC0+aWJxcC5xcF9udW0sIGhyX3FwKTsKIAkJaWYgKHJldCkgewotCQkJZGV2X2VycihkZXYsICJDcmVhdGUgR1NJIFFQIGZhaWxlZCFcbiIpOworCQkJaWJkZXZfZXJyKGliZGV2LCAiQ3JlYXRlIEdTSSBRUCBmYWlsZWQhXG4iKTsKIAkJCWtmcmVlKGhyX3NxcCk7CiAJCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCQl9CkBAIC0xMDE0LDcgKzEwNzMsOCBAQCBzdHJ1Y3QgaWJfcXAgKmhuc19yb2NlX2NyZWF0ZV9xcChzdHJ1Y3QgaWJfcGQgKnBkLAogCQlicmVhazsKIAl9CiAJZGVmYXVsdDp7Ci0JCWRldl9lcnIoZGV2LCAibm90IHN1cHBvcnQgUVAgdHlwZSAlZFxuIiwgaW5pdF9hdHRyLT5xcF90eXBlKTsKKwkJaWJkZXZfZXJyKGliZGV2LCAibm90IHN1cHBvcnQgUVAgdHlwZSAlZFxuIiwKKwkJCSAgaW5pdF9hdHRyLT5xcF90eXBlKTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAJfQogCX0KQEAgLTEwNDAsMjMgKzExMDAsODggQEAgaW50IHRvX2hyX3FwX3R5cGUoaW50IHFwX3R5cGUpCiAJcmV0dXJuIHRyYW5zcG9ydF90eXBlOwogfQogCitzdGF0aWMgaW50IGNoZWNrX210dV92YWxpZGF0ZShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYsCisJCQkgICAgICBzdHJ1Y3QgaG5zX3JvY2VfcXAgKmhyX3FwLAorCQkJICAgICAgc3RydWN0IGliX3FwX2F0dHIgKmF0dHIsIGludCBhdHRyX21hc2spCit7CisJZW51bSBpYl9tdHUgYWN0aXZlX210dTsKKwlpbnQgcDsKKworCXAgPSBhdHRyX21hc2sgJiBJQl9RUF9QT1JUID8gKGF0dHItPnBvcnRfbnVtIC0gMSkgOiBocl9xcC0+cG9ydDsKKwlhY3RpdmVfbXR1ID0gaWJvZV9nZXRfbXR1KGhyX2Rldi0+aWJvZS5uZXRkZXZzW3BdLT5tdHUpOworCisJaWYgKChocl9kZXYtPmNhcHMubWF4X210dSA+PSBJQl9NVFVfMjA0OCAmJgorCSAgICBhdHRyLT5wYXRoX210dSA+IGhyX2Rldi0+Y2Fwcy5tYXhfbXR1KSB8fAorCSAgICBhdHRyLT5wYXRoX210dSA8IElCX01UVV8yNTYgfHwgYXR0ci0+cGF0aF9tdHUgPiBhY3RpdmVfbXR1KSB7CisJCWliZGV2X2VycigmaHJfZGV2LT5pYl9kZXYsCisJCQkiYXR0ciBwYXRoX210dSglZClpbnZhbGlkIHdoaWxlIG1vZGlmeSBxcCIsCisJCQlhdHRyLT5wYXRoX210dSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhuc19yb2NlX2NoZWNrX3FwX2F0dHIoc3RydWN0IGliX3FwICppYnFwLCBzdHJ1Y3QgaWJfcXBfYXR0ciAqYXR0ciwKKwkJCQkgIGludCBhdHRyX21hc2spCit7CisJc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2ID0gdG9faHJfZGV2KGlicXAtPmRldmljZSk7CisJc3RydWN0IGhuc19yb2NlX3FwICpocl9xcCA9IHRvX2hyX3FwKGlicXApOworCWludCBwOworCisJaWYgKChhdHRyX21hc2sgJiBJQl9RUF9QT1JUKSAmJgorCSAgICAoYXR0ci0+cG9ydF9udW0gPT0gMCB8fCBhdHRyLT5wb3J0X251bSA+IGhyX2Rldi0+Y2Fwcy5udW1fcG9ydHMpKSB7CisJCWliZGV2X2VycigmaHJfZGV2LT5pYl9kZXYsCisJCQkiYXR0ciBwb3J0X251bSBpbnZhbGlkLmF0dHItPnBvcnRfbnVtPSVkXG4iLAorCQkJYXR0ci0+cG9ydF9udW0pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoYXR0cl9tYXNrICYgSUJfUVBfUEtFWV9JTkRFWCkgeworCQlwID0gYXR0cl9tYXNrICYgSUJfUVBfUE9SVCA/IChhdHRyLT5wb3J0X251bSAtIDEpIDogaHJfcXAtPnBvcnQ7CisJCWlmIChhdHRyLT5wa2V5X2luZGV4ID49IGhyX2Rldi0+Y2Fwcy5wa2V5X3RhYmxlX2xlbltwXSkgeworCQkJaWJkZXZfZXJyKCZocl9kZXYtPmliX2RldiwKKwkJCQkiYXR0ciBwa2V5X2luZGV4IGludmFsaWQuYXR0ci0+cGtleV9pbmRleD0lZFxuIiwKKwkJCQlhdHRyLT5wa2V5X2luZGV4KTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJfQorCisJaWYgKGF0dHJfbWFzayAmIElCX1FQX01BWF9RUF9SRF9BVE9NSUMgJiYKKwkgICAgYXR0ci0+bWF4X3JkX2F0b21pYyA+IGhyX2Rldi0+Y2Fwcy5tYXhfcXBfaW5pdF9yZG1hKSB7CisJCWliZGV2X2VycigmaHJfZGV2LT5pYl9kZXYsCisJCQkiYXR0ciBtYXhfcmRfYXRvbWljIGludmFsaWQuYXR0ci0+bWF4X3JkX2F0b21pYz0lZFxuIiwKKwkJCWF0dHItPm1heF9yZF9hdG9taWMpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoYXR0cl9tYXNrICYgSUJfUVBfTUFYX0RFU1RfUkRfQVRPTUlDICYmCisJICAgIGF0dHItPm1heF9kZXN0X3JkX2F0b21pYyA+IGhyX2Rldi0+Y2Fwcy5tYXhfcXBfZGVzdF9yZG1hKSB7CisJCWliZGV2X2VycigmaHJfZGV2LT5pYl9kZXYsCisJCQkiYXR0ciBtYXhfZGVzdF9yZF9hdG9taWMgaW52YWxpZC5hdHRyLT5tYXhfZGVzdF9yZF9hdG9taWM9JWRcbiIsCisJCQlhdHRyLT5tYXhfZGVzdF9yZF9hdG9taWMpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoYXR0cl9tYXNrICYgSUJfUVBfUEFUSF9NVFUpCisJCXJldHVybiBjaGVja19tdHVfdmFsaWRhdGUoaHJfZGV2LCBocl9xcCwgYXR0ciwgYXR0cl9tYXNrKTsKKworCXJldHVybiAwOworfQorCiBpbnQgaG5zX3JvY2VfbW9kaWZ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwgc3RydWN0IGliX3FwX2F0dHIgKmF0dHIsCiAJCSAgICAgICBpbnQgYXR0cl9tYXNrLCBzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhKQogewogCXN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiA9IHRvX2hyX2RldihpYnFwLT5kZXZpY2UpOwogCXN0cnVjdCBobnNfcm9jZV9xcCAqaHJfcXAgPSB0b19ocl9xcChpYnFwKTsKIAllbnVtIGliX3FwX3N0YXRlIGN1cl9zdGF0ZSwgbmV3X3N0YXRlOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhyX2Rldi0+ZGV2OwogCWludCByZXQgPSAtRUlOVkFMOwotCWludCBwOwotCWVudW0gaWJfbXR1IGFjdGl2ZV9tdHU7CiAKIAltdXRleF9sb2NrKCZocl9xcC0+bXV0ZXgpOwogCiAJY3VyX3N0YXRlID0gYXR0cl9tYXNrICYgSUJfUVBfQ1VSX1NUQVRFID8KIAkJICAgIGF0dHItPmN1cl9xcF9zdGF0ZSA6IChlbnVtIGliX3FwX3N0YXRlKWhyX3FwLT5zdGF0ZTsKLQluZXdfc3RhdGUgPSBhdHRyX21hc2sgJiBJQl9RUF9TVEFURSA/Ci0JCSAgICBhdHRyLT5xcF9zdGF0ZSA6IGN1cl9zdGF0ZTsKKwluZXdfc3RhdGUgPSBhdHRyX21hc2sgJiBJQl9RUF9TVEFURSA/IGF0dHItPnFwX3N0YXRlIDogY3VyX3N0YXRlOwogCiAJaWYgKGlicXAtPnVvYmplY3QgJiYKIAkgICAgKGF0dHJfbWFzayAmIElCX1FQX1NUQVRFKSAmJiBuZXdfc3RhdGUgPT0gSUJfUVBTX0VSUikgewpAQCAtMTA2Niw2NyArMTE5MSwyNyBAQCBpbnQgaG5zX3JvY2VfbW9kaWZ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwgc3RydWN0IGliX3FwX2F0dHIgKmF0dHIsCiAJCQlpZiAoaHJfcXAtPnJkYl9lbiA9PSAxKQogCQkJCWhyX3FwLT5ycS5oZWFkID0gKihpbnQgKikoaHJfcXAtPnJkYi52aXJ0X2FkZHIpOwogCQl9IGVsc2UgewotCQkJZGV2X3dhcm4oZGV2LCAiZmx1c2ggY3FlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdXNlcnNwYWNlIVxuIik7CisJCQlpYmRldl93YXJuKCZocl9kZXYtPmliX2RldiwKKwkJCQkgICJmbHVzaCBjcWUgaXMgbm90IHN1cHBvcnRlZCBpbiB1c2Vyc3BhY2UhXG4iKTsKIAkJCWdvdG8gb3V0OwogCQl9CiAJfQogCiAJaWYgKCFpYl9tb2RpZnlfcXBfaXNfb2soY3VyX3N0YXRlLCBuZXdfc3RhdGUsIGlicXAtPnFwX3R5cGUsCiAJCQkJYXR0cl9tYXNrKSkgewotCQlkZXZfZXJyKGRldiwgImliX21vZGlmeV9xcF9pc19vayBmYWlsZWRcbiIpOworCQlpYmRldl9lcnIoJmhyX2Rldi0+aWJfZGV2LCAiaWJfbW9kaWZ5X3FwX2lzX29rIGZhaWxlZFxuIik7CiAJCWdvdG8gb3V0OwogCX0KIAotCWlmICgoYXR0cl9tYXNrICYgSUJfUVBfUE9SVCkgJiYKLQkgICAgKGF0dHItPnBvcnRfbnVtID09IDAgfHwgYXR0ci0+cG9ydF9udW0gPiBocl9kZXYtPmNhcHMubnVtX3BvcnRzKSkgewotCQlkZXZfZXJyKGRldiwgImF0dHIgcG9ydF9udW0gaW52YWxpZC5hdHRyLT5wb3J0X251bT0lZFxuIiwKLQkJCWF0dHItPnBvcnRfbnVtKTsKKwlyZXQgPSBobnNfcm9jZV9jaGVja19xcF9hdHRyKGlicXAsIGF0dHIsIGF0dHJfbWFzayk7CisJaWYgKHJldCkKIAkJZ290byBvdXQ7Ci0JfQotCi0JaWYgKGF0dHJfbWFzayAmIElCX1FQX1BLRVlfSU5ERVgpIHsKLQkJcCA9IGF0dHJfbWFzayAmIElCX1FQX1BPUlQgPyAoYXR0ci0+cG9ydF9udW0gLSAxKSA6IGhyX3FwLT5wb3J0OwotCQlpZiAoYXR0ci0+cGtleV9pbmRleCA+PSBocl9kZXYtPmNhcHMucGtleV90YWJsZV9sZW5bcF0pIHsKLQkJCWRldl9lcnIoZGV2LCAiYXR0ciBwa2V5X2luZGV4IGludmFsaWQuYXR0ci0+cGtleV9pbmRleD0lZFxuIiwKLQkJCQlhdHRyLT5wa2V5X2luZGV4KTsKLQkJCWdvdG8gb3V0OwotCQl9Ci0JfQotCi0JaWYgKGF0dHJfbWFzayAmIElCX1FQX1BBVEhfTVRVKSB7Ci0JCXAgPSBhdHRyX21hc2sgJiBJQl9RUF9QT1JUID8gKGF0dHItPnBvcnRfbnVtIC0gMSkgOiBocl9xcC0+cG9ydDsKLQkJYWN0aXZlX210dSA9IGlib2VfZ2V0X210dShocl9kZXYtPmlib2UubmV0ZGV2c1twXS0+bXR1KTsKLQotCQlpZiAoKGhyX2Rldi0+Y2Fwcy5tYXhfbXR1ID09IElCX01UVV80MDk2ICYmCi0JCSAgICBhdHRyLT5wYXRoX210dSA+IElCX01UVV80MDk2KSB8fAotCQkgICAgKGhyX2Rldi0+Y2Fwcy5tYXhfbXR1ID09IElCX01UVV8yMDQ4ICYmCi0JCSAgICBhdHRyLT5wYXRoX210dSA+IElCX01UVV8yMDQ4KSB8fAotCQkgICAgYXR0ci0+cGF0aF9tdHUgPCBJQl9NVFVfMjU2IHx8Ci0JCSAgICBhdHRyLT5wYXRoX210dSA+IGFjdGl2ZV9tdHUpIHsKLQkJCWRldl9lcnIoZGV2LCAiYXR0ciBwYXRoX210dSglZClpbnZhbGlkIHdoaWxlIG1vZGlmeSBxcCIsCi0JCQkJYXR0ci0+cGF0aF9tdHUpOwotCQkJZ290byBvdXQ7Ci0JCX0KLQl9Ci0KLQlpZiAoYXR0cl9tYXNrICYgSUJfUVBfTUFYX1FQX1JEX0FUT01JQyAmJgotCSAgICBhdHRyLT5tYXhfcmRfYXRvbWljID4gaHJfZGV2LT5jYXBzLm1heF9xcF9pbml0X3JkbWEpIHsKLQkJZGV2X2VycihkZXYsICJhdHRyIG1heF9yZF9hdG9taWMgaW52YWxpZC5hdHRyLT5tYXhfcmRfYXRvbWljPSVkXG4iLAotCQkJYXR0ci0+bWF4X3JkX2F0b21pYyk7Ci0JCWdvdG8gb3V0OwotCX0KLQotCWlmIChhdHRyX21hc2sgJiBJQl9RUF9NQVhfREVTVF9SRF9BVE9NSUMgJiYKLQkgICAgYXR0ci0+bWF4X2Rlc3RfcmRfYXRvbWljID4gaHJfZGV2LT5jYXBzLm1heF9xcF9kZXN0X3JkbWEpIHsKLQkJZGV2X2VycihkZXYsICJhdHRyIG1heF9kZXN0X3JkX2F0b21pYyBpbnZhbGlkLmF0dHItPm1heF9kZXN0X3JkX2F0b21pYz0lZFxuIiwKLQkJCWF0dHItPm1heF9kZXN0X3JkX2F0b21pYyk7Ci0JCWdvdG8gb3V0OwotCX0KIAogCWlmIChjdXJfc3RhdGUgPT0gbmV3X3N0YXRlICYmIGN1cl9zdGF0ZSA9PSBJQl9RUFNfUkVTRVQpIHsKIAkJaWYgKGhyX2Rldi0+Y2Fwcy5taW5fd3FlcykgewogCQkJcmV0ID0gLUVQRVJNOwotCQkJZGV2X2VycihkZXYsICJjdXJfc3RhdGU9JWQgbmV3X3N0YXRlPSVkXG4iLCBjdXJfc3RhdGUsCisJCQlpYmRldl9lcnIoJmhyX2Rldi0+aWJfZGV2LAorCQkJCSJjdXJfc3RhdGU9JWQgbmV3X3N0YXRlPSVkXG4iLCBjdXJfc3RhdGUsCiAJCQkJbmV3X3N0YXRlKTsKIAkJfSBlbHNlIHsKIAkJCXJldCA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX3NycS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9zcnEuYwppbmRleCAzOGJiNTQ4Li45NTkxNDU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX3NycS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2Vfc3JxLmMKQEAgLTE3NSw2ICsxNzUsNzYgQEAgc3RhdGljIHZvaWQgaG5zX3JvY2Vfc3JxX2ZyZWUoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAogCWhuc19yb2NlX2JpdG1hcF9mcmVlKCZzcnFfdGFibGUtPmJpdG1hcCwgc3JxLT5zcnFuLCBCSVRNQVBfTk9fUlIpOwogfQogCitzdGF0aWMgaW50IGNyZWF0ZV91c2VyX3NycShzdHJ1Y3QgaG5zX3JvY2Vfc3JxICpzcnEsIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEsCisJCQkgICBpbnQgc3JxX2J1Zl9zaXplKQoreworCXN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiA9IHRvX2hyX2RldihzcnEtPmlic3JxLmRldmljZSk7CisJc3RydWN0IGhuc19yb2NlX2liX2NyZWF0ZV9zcnEgIHVjbWQ7CisJdTMyIHBhZ2Vfc2hpZnQ7CisJdTMyIG5wYWdlczsKKwlpbnQgcmV0OworCisJaWYgKGliX2NvcHlfZnJvbV91ZGF0YSgmdWNtZCwgdWRhdGEsIHNpemVvZih1Y21kKSkpCisJCXJldHVybiAtRUZBVUxUOworCisJc3JxLT51bWVtID0gaWJfdW1lbV9nZXQodWRhdGEsIHVjbWQuYnVmX2FkZHIsIHNycV9idWZfc2l6ZSwgMCwgMCk7CisJaWYgKElTX0VSUihzcnEtPnVtZW0pKQorCQlyZXR1cm4gUFRSX0VSUihzcnEtPnVtZW0pOworCisJbnBhZ2VzID0gKGliX3VtZW1fcGFnZV9jb3VudChzcnEtPnVtZW0pICsKKwkJKDEgPDwgaHJfZGV2LT5jYXBzLnNycXdxZV9idWZfcGdfc3opIC0gMSkgLworCQkoMSA8PCBocl9kZXYtPmNhcHMuc3Jxd3FlX2J1Zl9wZ19zeik7CisJcGFnZV9zaGlmdCA9IFBBR0VfU0hJRlQgKyBocl9kZXYtPmNhcHMuc3Jxd3FlX2J1Zl9wZ19zejsKKwlyZXQgPSBobnNfcm9jZV9tdHRfaW5pdChocl9kZXYsIG5wYWdlcywgcGFnZV9zaGlmdCwgJnNycS0+bXR0KTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl91c2VyX2J1ZjsKKworCXJldCA9IGhuc19yb2NlX2liX3VtZW1fd3JpdGVfbXR0KGhyX2RldiwgJnNycS0+bXR0LCBzcnEtPnVtZW0pOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3VzZXJfc3JxX210dDsKKworCS8qIGNvbmZpZyBpbmRleCBxdWV1ZSBCQSAqLworCXNycS0+aWR4X3F1ZS51bWVtID0gaWJfdW1lbV9nZXQodWRhdGEsIHVjbWQucXVlX2FkZHIsCisJCQkJCXNycS0+aWR4X3F1ZS5idWZfc2l6ZSwgMCwgMCk7CisJaWYgKElTX0VSUihzcnEtPmlkeF9xdWUudW1lbSkpIHsKKwkJZGV2X2Vycihocl9kZXYtPmRldiwgImliX3VtZW1fZ2V0IGVycm9yIGZvciBpbmRleCBxdWV1ZVxuIik7CisJCXJldCA9IFBUUl9FUlIoc3JxLT5pZHhfcXVlLnVtZW0pOworCQlnb3RvIGVycl91c2VyX3NycV9tdHQ7CisJfQorCisJcmV0ID0gaG5zX3JvY2VfbXR0X2luaXQoaHJfZGV2LCBpYl91bWVtX3BhZ2VfY291bnQoc3JxLT5pZHhfcXVlLnVtZW0pLAorCQkJCVBBR0VfU0hJRlQsICZzcnEtPmlkeF9xdWUubXR0KTsKKworCWlmIChyZXQpIHsKKwkJZGV2X2Vycihocl9kZXYtPmRldiwgImhuc19yb2NlX210dF9pbml0IGVycm9yIGZvciBpZHggcXVlXG4iKTsKKwkJZ290byBlcnJfdXNlcl9pZHhfbXR0OworCX0KKworCXJldCA9IGhuc19yb2NlX2liX3VtZW1fd3JpdGVfbXR0KGhyX2RldiwgJnNycS0+aWR4X3F1ZS5tdHQsCisJCQkJCSBzcnEtPmlkeF9xdWUudW1lbSk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGhyX2Rldi0+ZGV2LAorCQkJImhuc19yb2NlX2liX3VtZW1fd3JpdGVfbXR0IGVycm9yIGZvciBpZHggcXVlXG4iKTsKKwkJZ290byBlcnJfdXNlcl9pZHhfYnVmOworCX0KKworCXJldHVybiAwOworCitlcnJfdXNlcl9pZHhfYnVmOgorCWhuc19yb2NlX210dF9jbGVhbnVwKGhyX2RldiwgJnNycS0+aWR4X3F1ZS5tdHQpOworCitlcnJfdXNlcl9pZHhfbXR0OgorCWliX3VtZW1fcmVsZWFzZShzcnEtPmlkeF9xdWUudW1lbSk7CisKK2Vycl91c2VyX3NycV9tdHQ6CisJaG5zX3JvY2VfbXR0X2NsZWFudXAoaHJfZGV2LCAmc3JxLT5tdHQpOworCitlcnJfdXNlcl9idWY6CisJaWJfdW1lbV9yZWxlYXNlKHNycS0+dW1lbSk7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50IGhuc19yb2NlX2NyZWF0ZV9pZHhfcXVlKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBobnNfcm9jZV9zcnEgKnNycSwKIAkJCQkgICB1MzIgcGFnZV9zaGlmdCkKIHsKQEAgLTE5Niw2ICsyNjYsOTMgQEAgc3RhdGljIGludCBobnNfcm9jZV9jcmVhdGVfaWR4X3F1ZShzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaG5zX3JvY2Vfc3JxICpzcnEsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgY3JlYXRlX2tlcm5lbF9zcnEoc3RydWN0IGhuc19yb2NlX3NycSAqc3JxLCBpbnQgc3JxX2J1Zl9zaXplKQoreworCXN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiA9IHRvX2hyX2RldihzcnEtPmlic3JxLmRldmljZSk7CisJdTMyIHBhZ2Vfc2hpZnQgPSBQQUdFX1NISUZUICsgaHJfZGV2LT5jYXBzLnNycXdxZV9idWZfcGdfc3o7CisJaW50IHJldDsKKworCWlmIChobnNfcm9jZV9idWZfYWxsb2MoaHJfZGV2LCBzcnFfYnVmX3NpemUsICgxIDw8IHBhZ2Vfc2hpZnQpICogMiwKKwkJCSAgICAgICAmc3JxLT5idWYsIHBhZ2Vfc2hpZnQpKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXNycS0+aGVhZCA9IDA7CisJc3JxLT50YWlsID0gc3JxLT5tYXggLSAxOworCisJcmV0ID0gaG5zX3JvY2VfbXR0X2luaXQoaHJfZGV2LCBzcnEtPmJ1Zi5ucGFnZXMsIHNycS0+YnVmLnBhZ2Vfc2hpZnQsCisJCQkJJnNycS0+bXR0KTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9rZXJuZWxfYnVmOworCisJcmV0ID0gaG5zX3JvY2VfYnVmX3dyaXRlX210dChocl9kZXYsICZzcnEtPm10dCwgJnNycS0+YnVmKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9rZXJuZWxfc3JxX210dDsKKworCXBhZ2Vfc2hpZnQgPSBQQUdFX1NISUZUICsgaHJfZGV2LT5jYXBzLmlkeF9idWZfcGdfc3o7CisJcmV0ID0gaG5zX3JvY2VfY3JlYXRlX2lkeF9xdWUoc3JxLT5pYnNycS5wZCwgc3JxLCBwYWdlX3NoaWZ0KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoaHJfZGV2LT5kZXYsICJDcmVhdGUgaWR4IHF1ZXVlIGZhaWwoJWQpIVxuIiwgcmV0KTsKKwkJZ290byBlcnJfa2VybmVsX3NycV9tdHQ7CisJfQorCisJLyogSW5pdCBtdHQgdGFibGUgZm9yIGlkeF9xdWUgKi8KKwlyZXQgPSBobnNfcm9jZV9tdHRfaW5pdChocl9kZXYsIHNycS0+aWR4X3F1ZS5pZHhfYnVmLm5wYWdlcywKKwkJCQlzcnEtPmlkeF9xdWUuaWR4X2J1Zi5wYWdlX3NoaWZ0LAorCQkJCSZzcnEtPmlkeF9xdWUubXR0KTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9rZXJuZWxfY3JlYXRlX2lkeDsKKworCS8qIFdyaXRlIGJ1ZmZlciBhZGRyZXNzIGludG8gdGhlIG10dCB0YWJsZSAqLworCXJldCA9IGhuc19yb2NlX2J1Zl93cml0ZV9tdHQoaHJfZGV2LCAmc3JxLT5pZHhfcXVlLm10dCwKKwkJCQkgICAgICZzcnEtPmlkeF9xdWUuaWR4X2J1Zik7CisJaWYgKHJldCkKKwkJZ290byBlcnJfa2VybmVsX2lkeF9idWY7CisKKwlzcnEtPndyaWQgPSBrdm1hbGxvY19hcnJheShzcnEtPm1heCwgc2l6ZW9mKHU2NCksIEdGUF9LRVJORUwpOworCWlmICghc3JxLT53cmlkKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX2tlcm5lbF9pZHhfYnVmOworCX0KKworCXJldHVybiAwOworCitlcnJfa2VybmVsX2lkeF9idWY6CisJaG5zX3JvY2VfbXR0X2NsZWFudXAoaHJfZGV2LCAmc3JxLT5pZHhfcXVlLm10dCk7CisKK2Vycl9rZXJuZWxfY3JlYXRlX2lkeDoKKwlobnNfcm9jZV9idWZfZnJlZShocl9kZXYsIHNycS0+aWR4X3F1ZS5idWZfc2l6ZSwKKwkJCSAgJnNycS0+aWR4X3F1ZS5pZHhfYnVmKTsKKwlrZnJlZShzcnEtPmlkeF9xdWUuYml0bWFwKTsKKworZXJyX2tlcm5lbF9zcnFfbXR0OgorCWhuc19yb2NlX210dF9jbGVhbnVwKGhyX2RldiwgJnNycS0+bXR0KTsKKworZXJyX2tlcm5lbF9idWY6CisJaG5zX3JvY2VfYnVmX2ZyZWUoaHJfZGV2LCBzcnFfYnVmX3NpemUsICZzcnEtPmJ1Zik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBkZXN0cm95X3VzZXJfc3JxKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2RldiwKKwkJCSAgICAgc3RydWN0IGhuc19yb2NlX3NycSAqc3JxKQoreworCWhuc19yb2NlX210dF9jbGVhbnVwKGhyX2RldiwgJnNycS0+aWR4X3F1ZS5tdHQpOworCWliX3VtZW1fcmVsZWFzZShzcnEtPmlkeF9xdWUudW1lbSk7CisJaG5zX3JvY2VfbXR0X2NsZWFudXAoaHJfZGV2LCAmc3JxLT5tdHQpOworCWliX3VtZW1fcmVsZWFzZShzcnEtPnVtZW0pOworfQorCitzdGF0aWMgdm9pZCBkZXN0cm95X2tlcm5lbF9zcnEoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LAorCQkJICAgICAgIHN0cnVjdCBobnNfcm9jZV9zcnEgKnNycSwgaW50IHNycV9idWZfc2l6ZSkKK3sKKwlrdmZyZWUoc3JxLT53cmlkKTsKKwlobnNfcm9jZV9tdHRfY2xlYW51cChocl9kZXYsICZzcnEtPmlkeF9xdWUubXR0KTsKKwlobnNfcm9jZV9idWZfZnJlZShocl9kZXYsIHNycS0+aWR4X3F1ZS5idWZfc2l6ZSwgJnNycS0+aWR4X3F1ZS5pZHhfYnVmKTsKKwlrZnJlZShzcnEtPmlkeF9xdWUuYml0bWFwKTsKKwlobnNfcm9jZV9tdHRfY2xlYW51cChocl9kZXYsICZzcnEtPm10dCk7CisJaG5zX3JvY2VfYnVmX2ZyZWUoaHJfZGV2LCBzcnFfYnVmX3NpemUsICZzcnEtPmJ1Zik7Cit9CisKIGludCBobnNfcm9jZV9jcmVhdGVfc3JxKHN0cnVjdCBpYl9zcnEgKmliX3NycSwKIAkJCXN0cnVjdCBpYl9zcnFfaW5pdF9hdHRyICpzcnFfaW5pdF9hdHRyLAogCQkJc3RydWN0IGliX3VkYXRhICp1ZGF0YSkKQEAgLTIwNSw5ICszNjIsNyBAQCBpbnQgaG5zX3JvY2VfY3JlYXRlX3NycShzdHJ1Y3QgaWJfc3JxICppYl9zcnEsCiAJc3RydWN0IGhuc19yb2NlX3NycSAqc3JxID0gdG9faHJfc3JxKGliX3NycSk7CiAJaW50IHNycV9kZXNjX3NpemU7CiAJaW50IHNycV9idWZfc2l6ZTsKLQl1MzIgcGFnZV9zaGlmdDsKIAlpbnQgcmV0ID0gMDsKLQl1MzIgbnBhZ2VzOwogCXUzMiBjcW47CiAKIAkvKiBDaGVjayB0aGUgYWN0dWFsIFNSUSB3cWUgYW5kIFNSUSBzZ2UgbnVtICovCkBAIC0yMzMsMTE1ICszODgsMTYgQEAgaW50IGhuc19yb2NlX2NyZWF0ZV9zcnEoc3RydWN0IGliX3NycSAqaWJfc3JxLAogCXNycS0+aWR4X3F1ZS5tdHQubXR0X3R5cGUgPSBNVFRfVFlQRV9JRFg7CiAKIAlpZiAodWRhdGEpIHsKLQkJc3RydWN0IGhuc19yb2NlX2liX2NyZWF0ZV9zcnEgIHVjbWQ7Ci0KLQkJaWYgKGliX2NvcHlfZnJvbV91ZGF0YSgmdWNtZCwgdWRhdGEsIHNpemVvZih1Y21kKSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQotCQlzcnEtPnVtZW0gPQotCQkJaWJfdW1lbV9nZXQodWRhdGEsIHVjbWQuYnVmX2FkZHIsIHNycV9idWZfc2l6ZSwgMCwgMCk7Ci0JCWlmIChJU19FUlIoc3JxLT51bWVtKSkKLQkJCXJldHVybiBQVFJfRVJSKHNycS0+dW1lbSk7Ci0KLQkJaWYgKGhyX2Rldi0+Y2Fwcy5zcnF3cWVfYnVmX3BnX3N6KSB7Ci0JCQlucGFnZXMgPSAoaWJfdW1lbV9wYWdlX2NvdW50KHNycS0+dW1lbSkgKwotCQkJCSAgKDEgPDwgaHJfZGV2LT5jYXBzLnNycXdxZV9idWZfcGdfc3opIC0gMSkgLwotCQkJCSAgKDEgPDwgaHJfZGV2LT5jYXBzLnNycXdxZV9idWZfcGdfc3opOwotCQkJcGFnZV9zaGlmdCA9IFBBR0VfU0hJRlQgKyBocl9kZXYtPmNhcHMuc3Jxd3FlX2J1Zl9wZ19zejsKLQkJCXJldCA9IGhuc19yb2NlX210dF9pbml0KGhyX2RldiwgbnBhZ2VzLAotCQkJCQkJcGFnZV9zaGlmdCwKLQkJCQkJCSZzcnEtPm10dCk7Ci0JCX0gZWxzZQotCQkJcmV0ID0gaG5zX3JvY2VfbXR0X2luaXQoaHJfZGV2LAotCQkJCQkJaWJfdW1lbV9wYWdlX2NvdW50KHNycS0+dW1lbSksCi0JCQkJCQlQQUdFX1NISUZULCAmc3JxLT5tdHQpOwotCQlpZiAocmV0KQotCQkJZ290byBlcnJfYnVmOwotCi0JCXJldCA9IGhuc19yb2NlX2liX3VtZW1fd3JpdGVfbXR0KGhyX2RldiwgJnNycS0+bXR0LCBzcnEtPnVtZW0pOwotCQlpZiAocmV0KQotCQkJZ290byBlcnJfc3JxX210dDsKLQotCQkvKiBjb25maWcgaW5kZXggcXVldWUgQkEgKi8KLQkJc3JxLT5pZHhfcXVlLnVtZW0gPSBpYl91bWVtX2dldCh1ZGF0YSwgdWNtZC5xdWVfYWRkciwKLQkJCQkJCXNycS0+aWR4X3F1ZS5idWZfc2l6ZSwgMCwgMCk7Ci0JCWlmIChJU19FUlIoc3JxLT5pZHhfcXVlLnVtZW0pKSB7Ci0JCQlkZXZfZXJyKGhyX2Rldi0+ZGV2LAotCQkJCSJpYl91bWVtX2dldCBlcnJvciBmb3IgaW5kZXggcXVldWVcbiIpOwotCQkJcmV0ID0gUFRSX0VSUihzcnEtPmlkeF9xdWUudW1lbSk7Ci0JCQlnb3RvIGVycl9zcnFfbXR0OwotCQl9Ci0KLQkJaWYgKGhyX2Rldi0+Y2Fwcy5pZHhfYnVmX3BnX3N6KSB7Ci0JCQlucGFnZXMgPSAoaWJfdW1lbV9wYWdlX2NvdW50KHNycS0+aWR4X3F1ZS51bWVtKSArCi0JCQkJICAoMSA8PCBocl9kZXYtPmNhcHMuaWR4X2J1Zl9wZ19zeikgLSAxKSAvCi0JCQkJICAoMSA8PCBocl9kZXYtPmNhcHMuaWR4X2J1Zl9wZ19zeik7Ci0JCQlwYWdlX3NoaWZ0ID0gUEFHRV9TSElGVCArIGhyX2Rldi0+Y2Fwcy5pZHhfYnVmX3BnX3N6OwotCQkJcmV0ID0gaG5zX3JvY2VfbXR0X2luaXQoaHJfZGV2LCBucGFnZXMsCi0JCQkJCQlwYWdlX3NoaWZ0LCAmc3JxLT5pZHhfcXVlLm10dCk7Ci0JCX0gZWxzZSB7Ci0JCQlyZXQgPSBobnNfcm9jZV9tdHRfaW5pdCgKLQkJCQlocl9kZXYsIGliX3VtZW1fcGFnZV9jb3VudChzcnEtPmlkeF9xdWUudW1lbSksCi0JCQkJUEFHRV9TSElGVCwgJnNycS0+aWR4X3F1ZS5tdHQpOwotCQl9Ci0KKwkJcmV0ID0gY3JlYXRlX3VzZXJfc3JxKHNycSwgdWRhdGEsIHNycV9idWZfc2l6ZSk7CiAJCWlmIChyZXQpIHsKLQkJCWRldl9lcnIoaHJfZGV2LT5kZXYsCi0JCQkJImhuc19yb2NlX210dF9pbml0IGVycm9yIGZvciBpZHggcXVlXG4iKTsKLQkJCWdvdG8gZXJyX2lkeF9tdHQ7Ci0JCX0KLQotCQlyZXQgPSBobnNfcm9jZV9pYl91bWVtX3dyaXRlX210dChocl9kZXYsICZzcnEtPmlkeF9xdWUubXR0LAotCQkJCQkJIHNycS0+aWR4X3F1ZS51bWVtKTsKLQkJaWYgKHJldCkgewotCQkJZGV2X2Vycihocl9kZXYtPmRldiwKLQkJCSAgICAgICJobnNfcm9jZV9pYl91bWVtX3dyaXRlX210dCBlcnJvciBmb3IgaWR4IHF1ZVxuIik7Ci0JCQlnb3RvIGVycl9pZHhfYnVmOworCQkJZGV2X2Vycihocl9kZXYtPmRldiwgIkNyZWF0ZSB1c2VyIHNycSBmYWlsZWRcbiIpOworCQkJZ290byBlcnJfc3JxOwogCQl9CiAJfSBlbHNlIHsKLQkJcGFnZV9zaGlmdCA9IFBBR0VfU0hJRlQgKyBocl9kZXYtPmNhcHMuc3Jxd3FlX2J1Zl9wZ19zejsKLQkJaWYgKGhuc19yb2NlX2J1Zl9hbGxvYyhocl9kZXYsIHNycV9idWZfc2l6ZSwKLQkJCQkgICAgICAgKDEgPDwgcGFnZV9zaGlmdCkgKiAyLCAmc3JxLT5idWYsCi0JCQkJICAgICAgIHBhZ2Vfc2hpZnQpKQotCQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkJc3JxLT5oZWFkID0gMDsKLQkJc3JxLT50YWlsID0gc3JxLT5tYXggLSAxOwotCi0JCXJldCA9IGhuc19yb2NlX210dF9pbml0KGhyX2Rldiwgc3JxLT5idWYubnBhZ2VzLAotCQkJCQlzcnEtPmJ1Zi5wYWdlX3NoaWZ0LCAmc3JxLT5tdHQpOwotCQlpZiAocmV0KQotCQkJZ290byBlcnJfYnVmOwotCi0JCXJldCA9IGhuc19yb2NlX2J1Zl93cml0ZV9tdHQoaHJfZGV2LCAmc3JxLT5tdHQsICZzcnEtPmJ1Zik7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycl9zcnFfbXR0OwotCi0JCXBhZ2Vfc2hpZnQgPSBQQUdFX1NISUZUICsgaHJfZGV2LT5jYXBzLmlkeF9idWZfcGdfc3o7Ci0JCXJldCA9IGhuc19yb2NlX2NyZWF0ZV9pZHhfcXVlKGliX3NycS0+cGQsIHNycSwgcGFnZV9zaGlmdCk7CisJCXJldCA9IGNyZWF0ZV9rZXJuZWxfc3JxKHNycSwgc3JxX2J1Zl9zaXplKTsKIAkJaWYgKHJldCkgewotCQkJZGV2X2Vycihocl9kZXYtPmRldiwgIkNyZWF0ZSBpZHggcXVldWUgZmFpbCglZCkhXG4iLAotCQkJCXJldCk7Ci0JCQlnb3RvIGVycl9zcnFfbXR0OwotCQl9Ci0KLQkJLyogSW5pdCBtdHQgdGFibGUgZm9yIGlkeF9xdWUgKi8KLQkJcmV0ID0gaG5zX3JvY2VfbXR0X2luaXQoaHJfZGV2LCBzcnEtPmlkeF9xdWUuaWR4X2J1Zi5ucGFnZXMsCi0JCQkJCXNycS0+aWR4X3F1ZS5pZHhfYnVmLnBhZ2Vfc2hpZnQsCi0JCQkJCSZzcnEtPmlkeF9xdWUubXR0KTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gZXJyX2NyZWF0ZV9pZHg7Ci0KLQkJLyogV3JpdGUgYnVmZmVyIGFkZHJlc3MgaW50byB0aGUgbXR0IHRhYmxlICovCi0JCXJldCA9IGhuc19yb2NlX2J1Zl93cml0ZV9tdHQoaHJfZGV2LCAmc3JxLT5pZHhfcXVlLm10dCwKLQkJCQkJICAgICAmc3JxLT5pZHhfcXVlLmlkeF9idWYpOwotCQlpZiAocmV0KQotCQkJZ290byBlcnJfaWR4X2J1ZjsKLQotCQlzcnEtPndyaWQgPSBrdm1hbGxvY19hcnJheShzcnEtPm1heCwgc2l6ZW9mKHU2NCksIEdGUF9LRVJORUwpOwotCQlpZiAoIXNycS0+d3JpZCkgewotCQkJcmV0ID0gLUVOT01FTTsKLQkJCWdvdG8gZXJyX2lkeF9idWY7CisJCQlkZXZfZXJyKGhyX2Rldi0+ZGV2LCAiQ3JlYXRlIGtlcm5lbCBzcnEgZmFpbGVkXG4iKTsKKwkJCWdvdG8gZXJyX3NycTsKIAkJfQogCX0KIApAQCAtMzU2LDcgKzQxMiw2IEBAIGludCBobnNfcm9jZV9jcmVhdGVfc3JxKHN0cnVjdCBpYl9zcnEgKmliX3NycSwKIAkJZ290byBlcnJfd3JpZDsKIAogCXNycS0+ZXZlbnQgPSBobnNfcm9jZV9pYl9zcnFfZXZlbnQ7Ci0Jc3JxLT5pYnNycS5leHQueHJjLnNycV9udW0gPSBzcnEtPnNycW47CiAJcmVzcC5zcnFuID0gc3JxLT5zcnFuOwogCiAJaWYgKHVkYXRhKSB7CkBAIC0zNzMsMjcgKzQyOCwxMiBAQCBpbnQgaG5zX3JvY2VfY3JlYXRlX3NycShzdHJ1Y3QgaWJfc3JxICppYl9zcnEsCiAJaG5zX3JvY2Vfc3JxX2ZyZWUoaHJfZGV2LCBzcnEpOwogCiBlcnJfd3JpZDoKLQlrdmZyZWUoc3JxLT53cmlkKTsKKwlpZiAodWRhdGEpCisJCWRlc3Ryb3lfdXNlcl9zcnEoaHJfZGV2LCBzcnEpOworCWVsc2UKKwkJZGVzdHJveV9rZXJuZWxfc3JxKGhyX2Rldiwgc3JxLCBzcnFfYnVmX3NpemUpOwogCi1lcnJfaWR4X2J1ZjoKLQlobnNfcm9jZV9tdHRfY2xlYW51cChocl9kZXYsICZzcnEtPmlkeF9xdWUubXR0KTsKLQotZXJyX2lkeF9tdHQ6Ci0JaWJfdW1lbV9yZWxlYXNlKHNycS0+aWR4X3F1ZS51bWVtKTsKLQotZXJyX2NyZWF0ZV9pZHg6Ci0JaG5zX3JvY2VfYnVmX2ZyZWUoaHJfZGV2LCBzcnEtPmlkeF9xdWUuYnVmX3NpemUsCi0JCQkgICZzcnEtPmlkeF9xdWUuaWR4X2J1Zik7Ci0JYml0bWFwX2ZyZWUoc3JxLT5pZHhfcXVlLmJpdG1hcCk7Ci0KLWVycl9zcnFfbXR0OgotCWhuc19yb2NlX210dF9jbGVhbnVwKGhyX2RldiwgJnNycS0+bXR0KTsKLQotZXJyX2J1ZjoKLQlpYl91bWVtX3JlbGVhc2Uoc3JxLT51bWVtKTsKLQlpZiAoIXVkYXRhKQotCQlobnNfcm9jZV9idWZfZnJlZShocl9kZXYsIHNycV9idWZfc2l6ZSwgJnNycS0+YnVmKTsKLQorZXJyX3NycToKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaTQwaXcvaTQwaXdfdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pNDBpdy9pNDBpd192ZXJicy5jCmluZGV4IGQxNjlhODAuLjgwNTY5MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pNDBpdy9pNDBpd192ZXJicy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pNDBpdy9pNDBpd192ZXJicy5jCkBAIC05NywxOCArOTcsNyBAQCBzdGF0aWMgaW50IGk0MGl3X3F1ZXJ5X3BvcnQoc3RydWN0IGliX2RldmljZSAqaWJkZXYsCiAJCQkgICAgdTggcG9ydCwKIAkJCSAgICBzdHJ1Y3QgaWJfcG9ydF9hdHRyICpwcm9wcykKIHsKLQlzdHJ1Y3QgaTQwaXdfZGV2aWNlICppd2RldiA9IHRvX2l3ZGV2KGliZGV2KTsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gaXdkZXYtPm5ldGRldjsKLQotCS8qIHByb3BzIGJlaW5nIHplcm9lZCBieSB0aGUgY2FsbGVyLCBhdm9pZCB6ZXJvaW5nIGl0IGhlcmUgKi8KLQlwcm9wcy0+bWF4X210dSA9IElCX01UVV80MDk2OwotCXByb3BzLT5hY3RpdmVfbXR1ID0gaWJfbXR1X2ludF90b19lbnVtKG5ldGRldi0+bXR1KTsKLQogCXByb3BzLT5saWQgPSAxOwotCWlmIChuZXRpZl9jYXJyaWVyX29rKGl3ZGV2LT5uZXRkZXYpKQotCQlwcm9wcy0+c3RhdGUgPSBJQl9QT1JUX0FDVElWRTsKLQllbHNlCi0JCXByb3BzLT5zdGF0ZSA9IElCX1BPUlRfRE9XTjsKIAlwcm9wcy0+cG9ydF9jYXBfZmxhZ3MgPSBJQl9QT1JUX0NNX1NVUCB8IElCX1BPUlRfUkVJTklUX1NVUCB8CiAJCUlCX1BPUlRfVkVORE9SX0NMQVNTX1NVUCB8IElCX1BPUlRfQk9PVF9NR01UX1NVUDsKIAlwcm9wcy0+Z2lkX3RibF9sZW4gPSAxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jCmluZGV4IDg3OTAxMDEuLjhkMmYxZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMKQEAgLTczNCw3ICs3MzQsOCBAQCBzdGF0aWMgaW50IGliX2xpbmtfcXVlcnlfcG9ydChzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwgdTggcG9ydCwKIAogc3RhdGljIHU4IHN0YXRlX3RvX3BoeXNfc3RhdGUoZW51bSBpYl9wb3J0X3N0YXRlIHN0YXRlKQogewotCXJldHVybiBzdGF0ZSA9PSBJQl9QT1JUX0FDVElWRSA/IDUgOiAzOworCXJldHVybiBzdGF0ZSA9PSBJQl9QT1JUX0FDVElWRSA/CisJCUlCX1BPUlRfUEhZU19TVEFURV9MSU5LX1VQIDogSUJfUE9SVF9QSFlTX1NUQVRFX0RJU0FCTEVEOwogfQogCiBzdGF0aWMgaW50IGV0aF9saW5rX3F1ZXJ5X3BvcnQoc3RydWN0IGliX2RldmljZSAqaWJkZXYsIHU4IHBvcnQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbXIuYwppbmRleCA3NTM0NzkyLi42YWU1MDNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21yLmMKQEAgLTM3Nyw2ICszNzcsNyBAQCBzdGF0aWMgc3RydWN0IGliX3VtZW0gKm1seDRfZ2V0X3VtZW1fbXIoc3RydWN0IGliX3VkYXRhICp1ZGF0YSwgdTY0IHN0YXJ0LAogCSAqIGFnYWluCiAJICovCiAJaWYgKCFpYl9hY2Nlc3Nfd3JpdGFibGUoYWNjZXNzX2ZsYWdzKSkgeworCQl1bnNpZ25lZCBsb25nIHVudGFnZ2VkX3N0YXJ0ID0gdW50YWdnZWRfYWRkcihzdGFydCk7CiAJCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwogCiAJCWRvd25fcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKQEAgLTM4NSw5ICszODYsOSBAQCBzdGF0aWMgc3RydWN0IGliX3VtZW0gKm1seDRfZ2V0X3VtZW1fbXIoc3RydWN0IGliX3VkYXRhICp1ZGF0YSwgdTY0IHN0YXJ0LAogCQkgKiBjb3ZlciB0aGUgbWVtb3J5LCBidXQgZm9yIG5vdyBpdCByZXF1aXJlcyBhIHNpbmdsZSB2bWEgdG8KIAkJICogZW50aXJlbHkgY292ZXIgdGhlIE1SIHRvIHN1cHBvcnQgUk8gbWFwcGluZ3MuCiAJCSAqLwotCQl2bWEgPSBmaW5kX3ZtYShjdXJyZW50LT5tbSwgc3RhcnQpOwotCQlpZiAodm1hICYmIHZtYS0+dm1fZW5kID49IHN0YXJ0ICsgbGVuZ3RoICYmCi0JCSAgICB2bWEtPnZtX3N0YXJ0IDw9IHN0YXJ0KSB7CisJCXZtYSA9IGZpbmRfdm1hKGN1cnJlbnQtPm1tLCB1bnRhZ2dlZF9zdGFydCk7CisJCWlmICh2bWEgJiYgdm1hLT52bV9lbmQgPj0gdW50YWdnZWRfc3RhcnQgKyBsZW5ndGggJiYKKwkJICAgIHZtYS0+dm1fc3RhcnQgPD0gdW50YWdnZWRfc3RhcnQpIHsKIAkJCWlmICh2bWEtPnZtX2ZsYWdzICYgVk1fV1JJVEUpCiAJCQkJYWNjZXNzX2ZsYWdzIHw9IElCX0FDQ0VTU19MT0NBTF9XUklURTsKIAkJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L3FwLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9xcC5jCmluZGV4IDgyYWZmMmYuLmJkNGFhMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L3FwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvcXAuYwpAQCAtMzI1LDcgKzMyNSw3IEBAIHN0YXRpYyBpbnQgc2VuZF93cWVfb3ZlcmhlYWQoZW51bSBtbHg0X2liX3FwX3R5cGUgdHlwZSwgdTMyIGZsYWdzKQogfQogCiBzdGF0aWMgaW50IHNldF9ycV9zaXplKHN0cnVjdCBtbHg0X2liX2RldiAqZGV2LCBzdHJ1Y3QgaWJfcXBfY2FwICpjYXAsCi0JCSAgICAgICBib29sIGlzX3VzZXIsIGludCBoYXNfcnEsIHN0cnVjdCBtbHg0X2liX3FwICpxcCwKKwkJICAgICAgIGJvb2wgaXNfdXNlciwgYm9vbCBoYXNfcnEsIHN0cnVjdCBtbHg0X2liX3FwICpxcCwKIAkJICAgICAgIHUzMiBpbmxfcmVjdl9zeikKIHsKIAkvKiBTYW5pdHkgY2hlY2sgUlEgc2l6ZSBiZWZvcmUgcHJvY2VlZGluZyAqLwpAQCAtNTA2LDEwICs1MDYsMTAgQEAgc3RhdGljIHZvaWQgZnJlZV9wcm94eV9idWZzKHN0cnVjdCBpYl9kZXZpY2UgKmRldiwgc3RydWN0IG1seDRfaWJfcXAgKnFwKQogCWtmcmVlKHFwLT5zcXBfcHJveHlfcmN2KTsKIH0KIAotc3RhdGljIGludCBxcF9oYXNfcnEoc3RydWN0IGliX3FwX2luaXRfYXR0ciAqYXR0cikKK3N0YXRpYyBib29sIHFwX2hhc19ycShzdHJ1Y3QgaWJfcXBfaW5pdF9hdHRyICphdHRyKQogewogCWlmIChhdHRyLT5xcF90eXBlID09IElCX1FQVF9YUkNfSU5JIHx8IGF0dHItPnFwX3R5cGUgPT0gSUJfUVBUX1hSQ19UR1QpCi0JCXJldHVybiAwOworCQlyZXR1cm4gZmFsc2U7CiAKIAlyZXR1cm4gIWF0dHItPnNycTsKIH0KQEAgLTg1NSwxMiArODU1LDE0MyBAQCBzdGF0aWMgdm9pZCBtbHg0X2liX3JlbGVhc2Vfd3FuKHN0cnVjdCBtbHg0X2liX3Vjb250ZXh0ICpjb250ZXh0LAogCW11dGV4X3VubG9jaygmY29udGV4dC0+d3FuX3Jhbmdlc19tdXRleCk7CiB9CiAKLXN0YXRpYyBpbnQgY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgbWx4NF9pYl9kZXYgKmRldiwgc3RydWN0IGliX3BkICpwZCwKLQkJCSAgICBlbnVtIG1seDRfaWJfc291cmNlX3R5cGUgc3JjLAotCQkJICAgIHN0cnVjdCBpYl9xcF9pbml0X2F0dHIgKmluaXRfYXR0ciwKK3N0YXRpYyBpbnQgY3JlYXRlX3JxKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBpYl9xcF9pbml0X2F0dHIgKmluaXRfYXR0ciwKKwkJICAgICBzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhLCBzdHJ1Y3QgbWx4NF9pYl9xcCAqcXApCit7CisJc3RydWN0IG1seDRfaWJfZGV2ICpkZXYgPSB0b19tZGV2KHBkLT5kZXZpY2UpOworCWludCBxcG47CisJaW50IGVycjsKKwlzdHJ1Y3QgbWx4NF9pYl91Y29udGV4dCAqY29udGV4dCA9IHJkbWFfdWRhdGFfdG9fZHJ2X2NvbnRleHQoCisJCXVkYXRhLCBzdHJ1Y3QgbWx4NF9pYl91Y29udGV4dCwgaWJ1Y29udGV4dCk7CisJc3RydWN0IG1seDRfaWJfY3EgKm1jcTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByYW5nZV9zaXplOworCXN0cnVjdCBtbHg0X2liX2NyZWF0ZV93cSB3cTsKKwlzaXplX3QgY29weV9sZW47CisJaW50IHNoaWZ0OworCWludCBuOworCisJcXAtPm1seDRfaWJfcXBfdHlwZSA9IE1MWDRfSUJfUVBUX1JBV19QQUNLRVQ7CisKKwltdXRleF9pbml0KCZxcC0+bXV0ZXgpOworCXNwaW5fbG9ja19pbml0KCZxcC0+c3EubG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJnFwLT5ycS5sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmcXAtPmdpZF9saXN0KTsKKwlJTklUX0xJU1RfSEVBRCgmcXAtPnN0ZWVyaW5nX3J1bGVzKTsKKworCXFwLT5zdGF0ZSA9IElCX1FQU19SRVNFVDsKKworCWNvcHlfbGVuID0gbWluKHNpemVvZihzdHJ1Y3QgbWx4NF9pYl9jcmVhdGVfd3EpLCB1ZGF0YS0+aW5sZW4pOworCisJaWYgKGliX2NvcHlfZnJvbV91ZGF0YSgmd3EsIHVkYXRhLCBjb3B5X2xlbikpIHsKKwkJZXJyID0gLUVGQVVMVDsKKwkJZ290byBlcnI7CisJfQorCisJaWYgKHdxLmNvbXBfbWFzayB8fCB3cS5yZXNlcnZlZFswXSB8fCB3cS5yZXNlcnZlZFsxXSB8fAorCSAgICB3cS5yZXNlcnZlZFsyXSkgeworCQlwcl9kZWJ1ZygidXNlciBjb21tYW5kIGlzbid0IHN1cHBvcnRlZFxuIik7CisJCWVyciA9IC1FT1BOT1RTVVBQOworCQlnb3RvIGVycjsKKwl9CisKKwlpZiAod3EubG9nX3JhbmdlX3NpemUgPiBpbG9nMihkZXYtPmRldi0+Y2Fwcy5tYXhfcnNzX3RibF9zeikpIHsKKwkJcHJfZGVidWcoIldRTiByYW5nZSBzaXplIG11c3QgYmUgZXF1YWwgb3Igc21hbGxlciB0aGFuICVkXG4iLAorCQkJIGRldi0+ZGV2LT5jYXBzLm1heF9yc3NfdGJsX3N6KTsKKwkJZXJyID0gLUVPUE5PVFNVUFA7CisJCWdvdG8gZXJyOworCX0KKwlyYW5nZV9zaXplID0gMSA8PCB3cS5sb2dfcmFuZ2Vfc2l6ZTsKKworCWlmIChpbml0X2F0dHItPmNyZWF0ZV9mbGFncyAmIElCX1FQX0NSRUFURV9TQ0FUVEVSX0ZDUykKKwkJcXAtPmZsYWdzIHw9IE1MWDRfSUJfUVBfU0NBVFRFUl9GQ1M7CisKKwllcnIgPSBzZXRfcnFfc2l6ZShkZXYsICZpbml0X2F0dHItPmNhcCwgdHJ1ZSwgdHJ1ZSwgcXAsIHFwLT5pbmxfcmVjdl9zeik7CisJaWYgKGVycikKKwkJZ290byBlcnI7CisKKwlxcC0+c3Ffbm9fcHJlZmV0Y2ggPSAxOworCXFwLT5zcS53cWVfY250ID0gMTsKKwlxcC0+c3Eud3FlX3NoaWZ0ID0gTUxYNF9JQl9NSU5fU1FfU1RSSURFOworCXFwLT5idWZfc2l6ZSA9IChxcC0+cnEud3FlX2NudCA8PCBxcC0+cnEud3FlX3NoaWZ0KSArCisJCSAgICAgICAocXAtPnNxLndxZV9jbnQgPDwgcXAtPnNxLndxZV9zaGlmdCk7CisKKwlxcC0+dW1lbSA9IGliX3VtZW1fZ2V0KHVkYXRhLCB3cS5idWZfYWRkciwgcXAtPmJ1Zl9zaXplLCAwLCAwKTsKKwlpZiAoSVNfRVJSKHFwLT51bWVtKSkgeworCQllcnIgPSBQVFJfRVJSKHFwLT51bWVtKTsKKwkJZ290byBlcnI7CisJfQorCisJbiA9IGliX3VtZW1fcGFnZV9jb3VudChxcC0+dW1lbSk7CisJc2hpZnQgPSBtbHg0X2liX3VtZW1fY2FsY19vcHRpbWFsX210dF9zaXplKHFwLT51bWVtLCAwLCAmbik7CisJZXJyID0gbWx4NF9tdHRfaW5pdChkZXYtPmRldiwgbiwgc2hpZnQsICZxcC0+bXR0KTsKKworCWlmIChlcnIpCisJCWdvdG8gZXJyX2J1ZjsKKworCWVyciA9IG1seDRfaWJfdW1lbV93cml0ZV9tdHQoZGV2LCAmcXAtPm10dCwgcXAtPnVtZW0pOworCWlmIChlcnIpCisJCWdvdG8gZXJyX210dDsKKworCWVyciA9IG1seDRfaWJfZGJfbWFwX3VzZXIodWRhdGEsIHdxLmRiX2FkZHIsICZxcC0+ZGIpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX210dDsKKwlxcC0+bXFwLnVzYWdlID0gTUxYNF9SRVNfVVNBR0VfVVNFUl9WRVJCUzsKKworCWVyciA9IG1seDRfaWJfYWxsb2Nfd3FuKGNvbnRleHQsIHFwLCByYW5nZV9zaXplLCAmcXBuKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl93cmlkOworCisJZXJyID0gbWx4NF9xcF9hbGxvYyhkZXYtPmRldiwgcXBuLCAmcXAtPm1xcCk7CisJaWYgKGVycikKKwkJZ290byBlcnJfcXBuOworCisJLyoKKwkgKiBIYXJkd2FyZSB3YW50cyBRUE4gd3JpdHRlbiBpbiBiaWctZW5kaWFuIG9yZGVyIChhZnRlcgorCSAqIHNoaWZ0aW5nKSBmb3Igc2VuZCBkb29yYmVsbC4gIFByZWNvbXB1dGUgdGhpcyB2YWx1ZSB0byBzYXZlCisJICogYSBsaXR0bGUgYml0IHdoZW4gcG9zdGluZyBzZW5kcy4KKwkgKi8KKwlxcC0+ZG9vcmJlbGxfcXBuID0gc3dhYjMyKHFwLT5tcXAucXBuIDw8IDgpOworCisJcXAtPm1xcC5ldmVudCA9IG1seDRfaWJfd3FfZXZlbnQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5yZXNldF9mbG93X3Jlc291cmNlX2xvY2ssIGZsYWdzKTsKKwltbHg0X2liX2xvY2tfY3FzKHRvX21jcShpbml0X2F0dHItPnNlbmRfY3EpLAorCQkJIHRvX21jcShpbml0X2F0dHItPnJlY3ZfY3EpKTsKKwkvKiBNYWludGFpbiBkZXZpY2UgdG8gUVBzIGFjY2VzcywgbmVlZGVkIGZvciBmdXJ0aGVyIGhhbmRsaW5nCisJICogdmlhIHJlc2V0IGZsb3cKKwkgKi8KKwlsaXN0X2FkZF90YWlsKCZxcC0+cXBzX2xpc3QsICZkZXYtPnFwX2xpc3QpOworCS8qIE1haW50YWluIENRIHRvIFFQcyBhY2Nlc3MsIG5lZWRlZCBmb3IgZnVydGhlciBoYW5kbGluZworCSAqIHZpYSByZXNldCBmbG93CisJICovCisJbWNxID0gdG9fbWNxKGluaXRfYXR0ci0+c2VuZF9jcSk7CisJbGlzdF9hZGRfdGFpbCgmcXAtPmNxX3NlbmRfbGlzdCwgJm1jcS0+c2VuZF9xcF9saXN0KTsKKwltY3EgPSB0b19tY3EoaW5pdF9hdHRyLT5yZWN2X2NxKTsKKwlsaXN0X2FkZF90YWlsKCZxcC0+Y3FfcmVjdl9saXN0LCAmbWNxLT5yZWN2X3FwX2xpc3QpOworCW1seDRfaWJfdW5sb2NrX2Nxcyh0b19tY3EoaW5pdF9hdHRyLT5zZW5kX2NxKSwKKwkJCSAgIHRvX21jcShpbml0X2F0dHItPnJlY3ZfY3EpKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPnJlc2V0X2Zsb3dfcmVzb3VyY2VfbG9jaywgZmxhZ3MpOworCXJldHVybiAwOworCitlcnJfcXBuOgorCW1seDRfaWJfcmVsZWFzZV93cW4oY29udGV4dCwgcXAsIDApOworZXJyX3dyaWQ6CisJbWx4NF9pYl9kYl91bm1hcF91c2VyKGNvbnRleHQsICZxcC0+ZGIpOworCitlcnJfbXR0OgorCW1seDRfbXR0X2NsZWFudXAoZGV2LT5kZXYsICZxcC0+bXR0KTsKK2Vycl9idWY6CisJaWJfdW1lbV9yZWxlYXNlKHFwLT51bWVtKTsKK2VycjoKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGNyZWF0ZV9xcF9jb21tb24oc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGliX3FwX2luaXRfYXR0ciAqaW5pdF9hdHRyLAogCQkJICAgIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEsIGludCBzcXBuLAogCQkJICAgIHN0cnVjdCBtbHg0X2liX3FwICoqY2FsbGVyX3FwKQogeworCXN0cnVjdCBtbHg0X2liX2RldiAqZGV2ID0gdG9fbWRldihwZC0+ZGV2aWNlKTsKIAlpbnQgcXBuOwogCWludCBlcnI7CiAJc3RydWN0IG1seDRfaWJfc3FwICpzcXAgPSBOVUxMOwpAQCAtODcwLDcgKzEwMDEsNiBAQCBzdGF0aWMgaW50IGNyZWF0ZV9xcF9jb21tb24oc3RydWN0IG1seDRfaWJfZGV2ICpkZXYsIHN0cnVjdCBpYl9wZCAqcGQsCiAJZW51bSBtbHg0X2liX3FwX3R5cGUgcXBfdHlwZSA9IChlbnVtIG1seDRfaWJfcXBfdHlwZSkgaW5pdF9hdHRyLT5xcF90eXBlOwogCXN0cnVjdCBtbHg0X2liX2NxICptY3E7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgcmFuZ2Vfc2l6ZSA9IDA7CiAKIAkvKiBXaGVuIHR1bm5lbGluZyBzcGVjaWFsIHFwcywgd2UgdXNlIGEgcGxhaW4gVUQgcXAgKi8KIAlpZiAoc3FwbikgewpAQCAtOTIxLDE1ICsxMDUxLDEzIEBAIHN0YXRpYyBpbnQgY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgbWx4NF9pYl9kZXYgKmRldiwgc3RydWN0IGliX3BkICpwZCwKIAkJCWlmICghc3FwKQogCQkJCXJldHVybiAtRU5PTUVNOwogCQkJcXAgPSAmc3FwLT5xcDsKLQkJCXFwLT5wcmkudmlkID0gMHhGRkZGOwotCQkJcXAtPmFsdC52aWQgPSAweEZGRkY7CiAJCX0gZWxzZSB7CiAJCQlxcCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBtbHg0X2liX3FwKSwgR0ZQX0tFUk5FTCk7CiAJCQlpZiAoIXFwKQogCQkJCXJldHVybiAtRU5PTUVNOwotCQkJcXAtPnByaS52aWQgPSAweEZGRkY7Ci0JCQlxcC0+YWx0LnZpZCA9IDB4RkZGRjsKIAkJfQorCQlxcC0+cHJpLnZpZCA9IDB4RkZGRjsKKwkJcXAtPmFsdC52aWQgPSAweEZGRkY7CiAJfSBlbHNlCiAJCXFwID0gKmNhbGxlcl9xcDsKIApAQCAtOTQxLDQ4ICsxMDY5LDI0IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgbWx4NF9pYl9kZXYgKmRldiwgc3RydWN0IGliX3BkICpwZCwKIAlJTklUX0xJU1RfSEVBRCgmcXAtPmdpZF9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmcXAtPnN0ZWVyaW5nX3J1bGVzKTsKIAotCXFwLT5zdGF0ZQkgPSBJQl9RUFNfUkVTRVQ7CisJcXAtPnN0YXRlID0gSUJfUVBTX1JFU0VUOwogCWlmIChpbml0X2F0dHItPnNxX3NpZ190eXBlID09IElCX1NJR05BTF9BTExfV1IpCiAJCXFwLT5zcV9zaWduYWxfYml0cyA9IGNwdV90b19iZTMyKE1MWDRfV1FFX0NUUkxfQ1FfVVBEQVRFKTsKIAotCiAJaWYgKHVkYXRhKSB7Ci0JCXVuaW9uIHsKLQkJCXN0cnVjdCBtbHg0X2liX2NyZWF0ZV9xcCBxcDsKLQkJCXN0cnVjdCBtbHg0X2liX2NyZWF0ZV93cSB3cTsKLQkJfSB1Y21kOworCQlzdHJ1Y3QgbWx4NF9pYl9jcmVhdGVfcXAgdWNtZDsKIAkJc2l6ZV90IGNvcHlfbGVuOwogCQlpbnQgc2hpZnQ7CiAJCWludCBuOwogCi0JCWNvcHlfbGVuID0gKHNyYyA9PSBNTFg0X0lCX1FQX1NSQykgPwotCQkJICAgc2l6ZW9mKHN0cnVjdCBtbHg0X2liX2NyZWF0ZV9xcCkgOgotCQkJICAgbWluKHNpemVvZihzdHJ1Y3QgbWx4NF9pYl9jcmVhdGVfd3EpLCB1ZGF0YS0+aW5sZW4pOworCQljb3B5X2xlbiA9IHNpemVvZihzdHJ1Y3QgbWx4NF9pYl9jcmVhdGVfcXApOwogCiAJCWlmIChpYl9jb3B5X2Zyb21fdWRhdGEoJnVjbWQsIHVkYXRhLCBjb3B5X2xlbikpIHsKIAkJCWVyciA9IC1FRkFVTFQ7CiAJCQlnb3RvIGVycjsKIAkJfQogCi0JCWlmIChzcmMgPT0gTUxYNF9JQl9SV1FfU1JDKSB7Ci0JCQlpZiAodWNtZC53cS5jb21wX21hc2sgfHwgdWNtZC53cS5yZXNlcnZlZFswXSB8fAotCQkJICAgIHVjbWQud3EucmVzZXJ2ZWRbMV0gfHwgdWNtZC53cS5yZXNlcnZlZFsyXSkgewotCQkJCXByX2RlYnVnKCJ1c2VyIGNvbW1hbmQgaXNuJ3Qgc3VwcG9ydGVkXG4iKTsKLQkJCQllcnIgPSAtRU9QTk9UU1VQUDsKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQotCQkJaWYgKHVjbWQud3EubG9nX3JhbmdlX3NpemUgPgotCQkJICAgIGlsb2cyKGRldi0+ZGV2LT5jYXBzLm1heF9yc3NfdGJsX3N6KSkgewotCQkJCXByX2RlYnVnKCJXUU4gcmFuZ2Ugc2l6ZSBtdXN0IGJlIGVxdWFsIG9yIHNtYWxsZXIgdGhhbiAlZFxuIiwKLQkJCQkJIGRldi0+ZGV2LT5jYXBzLm1heF9yc3NfdGJsX3N6KTsKLQkJCQllcnIgPSAtRU9QTk9UU1VQUDsKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkJCXJhbmdlX3NpemUgPSAxIDw8IHVjbWQud3EubG9nX3JhbmdlX3NpemU7Ci0JCX0gZWxzZSB7Ci0JCQlxcC0+aW5sX3JlY3Zfc3ogPSB1Y21kLnFwLmlubF9yZWN2X3N6OwotCQl9CisJCXFwLT5pbmxfcmVjdl9zeiA9IHVjbWQuaW5sX3JlY3Zfc3o7CiAKIAkJaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYgSUJfUVBfQ1JFQVRFX1NDQVRURVJfRkNTKSB7CiAJCQlpZiAoIShkZXYtPmRldi0+Y2Fwcy5mbGFncyAmCkBAIC0xMDAwLDMwICsxMTA0LDE0IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgbWx4NF9pYl9kZXYgKmRldiwgc3RydWN0IGliX3BkICpwZCwKIAkJaWYgKGVycikKIAkJCWdvdG8gZXJyOwogCi0JCWlmIChzcmMgPT0gTUxYNF9JQl9RUF9TUkMpIHsKLQkJCXFwLT5zcV9ub19wcmVmZXRjaCA9IHVjbWQucXAuc3Ffbm9fcHJlZmV0Y2g7CisJCXFwLT5zcV9ub19wcmVmZXRjaCA9IHVjbWQuc3Ffbm9fcHJlZmV0Y2g7CiAKLQkJCWVyciA9IHNldF91c2VyX3NxX3NpemUoZGV2LCBxcCwKLQkJCQkJICAgICAgIChzdHJ1Y3QgbWx4NF9pYl9jcmVhdGVfcXAgKikKLQkJCQkJICAgICAgICZ1Y21kKTsKLQkJCWlmIChlcnIpCi0JCQkJZ290byBlcnI7Ci0JCX0gZWxzZSB7Ci0JCQlxcC0+c3Ffbm9fcHJlZmV0Y2ggPSAxOwotCQkJcXAtPnNxLndxZV9jbnQgPSAxOwotCQkJcXAtPnNxLndxZV9zaGlmdCA9IE1MWDRfSUJfTUlOX1NRX1NUUklERTsKLQkJCS8qIEFsbG9jYXRlZCBidWZmZXIgZXhwZWN0cyB0byBoYXZlIGF0IGxlYXN0IHRoYXQgU1EKLQkJCSAqIHNpemUuCi0JCQkgKi8KLQkJCXFwLT5idWZfc2l6ZSA9IChxcC0+cnEud3FlX2NudCA8PCBxcC0+cnEud3FlX3NoaWZ0KSArCi0JCQkJKHFwLT5zcS53cWVfY250IDw8IHFwLT5zcS53cWVfc2hpZnQpOwotCQl9CisJCWVyciA9IHNldF91c2VyX3NxX3NpemUoZGV2LCBxcCwgJnVjbWQpOworCQlpZiAoZXJyKQorCQkJZ290byBlcnI7CiAKIAkJcXAtPnVtZW0gPQotCQkJaWJfdW1lbV9nZXQodWRhdGEsCi0JCQkJICAgIChzcmMgPT0gTUxYNF9JQl9RUF9TUkMpID8gdWNtZC5xcC5idWZfYWRkciA6Ci0JCQkJCQkJICAgICAgdWNtZC53cS5idWZfYWRkciwKLQkJCQkgICAgcXAtPmJ1Zl9zaXplLCAwLCAwKTsKKwkJCWliX3VtZW1fZ2V0KHVkYXRhLCB1Y21kLmJ1Zl9hZGRyLCBxcC0+YnVmX3NpemUsIDAsIDApOwogCQlpZiAoSVNfRVJSKHFwLT51bWVtKSkgewogCQkJZXJyID0gUFRSX0VSUihxcC0+dW1lbSk7CiAJCQlnb3RvIGVycjsKQEAgLTEwNDEsMTEgKzExMjksNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9xcF9jb21tb24oc3RydWN0IG1seDRfaWJfZGV2ICpkZXYsIHN0cnVjdCBpYl9wZCAqcGQsCiAJCQlnb3RvIGVycl9tdHQ7CiAKIAkJaWYgKHFwX2hhc19ycShpbml0X2F0dHIpKSB7Ci0JCQllcnIgPSBtbHg0X2liX2RiX21hcF91c2VyKHVkYXRhLAotCQkJCQkJICAoc3JjID09IE1MWDRfSUJfUVBfU1JDKSA/Ci0JCQkJCQkJICB1Y21kLnFwLmRiX2FkZHIgOgotCQkJCQkJCSAgdWNtZC53cS5kYl9hZGRyLAotCQkJCQkJICAmcXAtPmRiKTsKKwkJCWVyciA9IG1seDRfaWJfZGJfbWFwX3VzZXIodWRhdGEsIHVjbWQuZGJfYWRkciwgJnFwLT5kYik7CiAJCQlpZiAoZXJyKQogCQkJCWdvdG8gZXJyX210dDsKIAkJfQpAQCAtMTExNSwxMCArMTE5OSw2IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgbWx4NF9pYl9kZXYgKmRldiwgc3RydWN0IGliX3BkICpwZCwKIAkJCQlnb3RvIGVycl93cmlkOwogCQkJfQogCQl9Ci0JfSBlbHNlIGlmIChzcmMgPT0gTUxYNF9JQl9SV1FfU1JDKSB7Ci0JCWVyciA9IG1seDRfaWJfYWxsb2Nfd3FuKGNvbnRleHQsIHFwLCByYW5nZV9zaXplLCAmcXBuKTsKLQkJaWYgKGVycikKLQkJCWdvdG8gZXJyX3dyaWQ7CiAJfSBlbHNlIHsKIAkJLyogUmF3IHBhY2tldCBRUE5zIG1heSBub3QgaGF2ZSBiaXRzIDYsNyBzZXQgaW4gdGhlaXIgcXBfbnVtOwogCQkgKiBvdGhlcndpc2UsIHRoZSBXUUUgQmx1ZUZsYW1lIHNldHVwIGZsb3cgd3JvbmdseSBjYXVzZXMKQEAgLTExNTcsOCArMTIzNyw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgbWx4NF9pYl9kZXYgKmRldiwgc3RydWN0IGliX3BkICpwZCwKIAkgKi8KIAlxcC0+ZG9vcmJlbGxfcXBuID0gc3dhYjMyKHFwLT5tcXAucXBuIDw8IDgpOwogCi0JcXAtPm1xcC5ldmVudCA9IChzcmMgPT0gTUxYNF9JQl9RUF9TUkMpID8gbWx4NF9pYl9xcF9ldmVudCA6Ci0JCQkJCQkgIG1seDRfaWJfd3FfZXZlbnQ7CisJcXAtPm1xcC5ldmVudCA9IG1seDRfaWJfcXBfZXZlbnQ7CiAKIAlpZiAoISpjYWxsZXJfcXApCiAJCSpjYWxsZXJfcXAgPSBxcDsKQEAgLTExODYsOCArMTI2NSw2IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3FwX2NvbW1vbihzdHJ1Y3QgbWx4NF9pYl9kZXYgKmRldiwgc3RydWN0IGliX3BkICpwZCwKIAlpZiAoIXNxcG4pIHsKIAkJaWYgKHFwLT5mbGFncyAmIE1MWDRfSUJfUVBfTkVUSUYpCiAJCQltbHg0X2liX3N0ZWVyX3FwX2ZyZWUoZGV2LCBxcG4sIDEpOwotCQllbHNlIGlmIChzcmMgPT0gTUxYNF9JQl9SV1FfU1JDKQotCQkJbWx4NF9pYl9yZWxlYXNlX3dxbihjb250ZXh0LCBxcCwgMCk7CiAJCWVsc2UKIAkJCW1seDRfcXBfcmVsZWFzZV9yYW5nZShkZXYtPmRldiwgcXBuLCAxKTsKIAl9CkBAIC0xNTE4LDggKzE1OTUsNyBAQCBzdGF0aWMgc3RydWN0IGliX3FwICpfbWx4NF9pYl9jcmVhdGVfcXAoc3RydWN0IGliX3BkICpwZCwKIAkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBJQl9RUFRfVUQ6CiAJewotCQllcnIgPSBjcmVhdGVfcXBfY29tbW9uKHRvX21kZXYocGQtPmRldmljZSksIHBkLAlNTFg0X0lCX1FQX1NSQywKLQkJCQkgICAgICAgaW5pdF9hdHRyLCB1ZGF0YSwgMCwgJnFwKTsKKwkJZXJyID0gY3JlYXRlX3FwX2NvbW1vbihwZCwgaW5pdF9hdHRyLCB1ZGF0YSwgMCwgJnFwKTsKIAkJaWYgKGVycikgewogCQkJa2ZyZWUocXApOwogCQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKQEAgLTE1NDksOCArMTYyNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfcXAgKl9tbHg0X2liX2NyZWF0ZV9xcChzdHJ1Y3QgaWJfcGQgKnBkLAogCQkJc3FwbiA9IGdldF9zcXBfbnVtKHRvX21kZXYocGQtPmRldmljZSksIGluaXRfYXR0cik7CiAJCX0KIAotCQllcnIgPSBjcmVhdGVfcXBfY29tbW9uKHRvX21kZXYocGQtPmRldmljZSksIHBkLCBNTFg0X0lCX1FQX1NSQywKLQkJCQkgICAgICAgaW5pdF9hdHRyLCB1ZGF0YSwgc3FwbiwgJnFwKTsKKwkJZXJyID0gY3JlYXRlX3FwX2NvbW1vbihwZCwgaW5pdF9hdHRyLCB1ZGF0YSwgc3FwbiwgJnFwKTsKIAkJaWYgKGVycikKIAkJCXJldHVybiBFUlJfUFRSKGVycik7CiAKQEAgLTQwNDcsOCArNDEyMiw4IEBAIHN0cnVjdCBpYl93cSAqbWx4NF9pYl9jcmVhdGVfd3Eoc3RydWN0IGliX3BkICpwZCwKIAkJCQlzdHJ1Y3QgaWJfd3FfaW5pdF9hdHRyICppbml0X2F0dHIsCiAJCQkJc3RydWN0IGliX3VkYXRhICp1ZGF0YSkKIHsKLQlzdHJ1Y3QgbWx4NF9pYl9kZXYgKmRldjsKLQlzdHJ1Y3QgaWJfcXBfaW5pdF9hdHRyIGliX3FwX2luaXRfYXR0cjsKKwlzdHJ1Y3QgbWx4NF9kZXYgKmRldiA9IHRvX21kZXYocGQtPmRldmljZSktPmRldjsKKwlzdHJ1Y3QgaWJfcXBfaW5pdF9hdHRyIGliX3FwX2luaXRfYXR0ciA9IHt9OwogCXN0cnVjdCBtbHg0X2liX3FwICpxcDsKIAlzdHJ1Y3QgbWx4NF9pYl9jcmVhdGVfd3EgdWNtZDsKIAlpbnQgZXJyLCByZXF1aXJlZF9jbWRfc3o7CkBAIC00MDczLDE0ICs0MTQ4LDEzIEBAIHN0cnVjdCBpYl93cSAqbWx4NF9pYl9jcmVhdGVfd3Eoc3RydWN0IGliX3BkICpwZCwKIAlpZiAodWRhdGEtPm91dGxlbikKIAkJcmV0dXJuIEVSUl9QVFIoLUVPUE5PVFNVUFApOwogCi0JZGV2ID0gdG9fbWRldihwZC0+ZGV2aWNlKTsKLQogCWlmIChpbml0X2F0dHItPndxX3R5cGUgIT0gSUJfV1FUX1JRKSB7CiAJCXByX2RlYnVnKCJ1bnN1cHBvcnRlZCB3cSB0eXBlICVkXG4iLCBpbml0X2F0dHItPndxX3R5cGUpOwogCQlyZXR1cm4gRVJSX1BUUigtRU9QTk9UU1VQUCk7CiAJfQogCi0JaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYgfklCX1dRX0ZMQUdTX1NDQVRURVJfRkNTKSB7CisJaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYgfklCX1dRX0ZMQUdTX1NDQVRURVJfRkNTIHx8CisJICAgICEoZGV2LT5jYXBzLmZsYWdzICYgTUxYNF9ERVZfQ0FQX0ZMQUdfRkNTX0tFRVApKSB7CiAJCXByX2RlYnVnKCJ1bnN1cHBvcnRlZCBjcmVhdGVfZmxhZ3MgJXVcbiIsCiAJCQkgaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MpOwogCQlyZXR1cm4gRVJSX1BUUigtRU9QTk9UU1VQUCk7CkBAIC00MDkzLDcgKzQxNjcsNiBAQCBzdHJ1Y3QgaWJfd3EgKm1seDRfaWJfY3JlYXRlX3dxKHN0cnVjdCBpYl9wZCAqcGQsCiAJcXAtPnByaS52aWQgPSAweEZGRkY7CiAJcXAtPmFsdC52aWQgPSAweEZGRkY7CiAKLQltZW1zZXQoJmliX3FwX2luaXRfYXR0ciwgMCwgc2l6ZW9mKGliX3FwX2luaXRfYXR0cikpOwogCWliX3FwX2luaXRfYXR0ci5xcF9jb250ZXh0ID0gaW5pdF9hdHRyLT53cV9jb250ZXh0OwogCWliX3FwX2luaXRfYXR0ci5xcF90eXBlID0gSUJfUVBUX1JBV19QQUNLRVQ7CiAJaWJfcXBfaW5pdF9hdHRyLmNhcC5tYXhfcmVjdl93ciA9IGluaXRfYXR0ci0+bWF4X3dyOwpAQCAtNDEwNCw4ICs0MTc3LDcgQEAgc3RydWN0IGliX3dxICptbHg0X2liX2NyZWF0ZV93cShzdHJ1Y3QgaWJfcGQgKnBkLAogCWlmIChpbml0X2F0dHItPmNyZWF0ZV9mbGFncyAmIElCX1dRX0ZMQUdTX1NDQVRURVJfRkNTKQogCQlpYl9xcF9pbml0X2F0dHIuY3JlYXRlX2ZsYWdzIHw9IElCX1FQX0NSRUFURV9TQ0FUVEVSX0ZDUzsKIAotCWVyciA9IGNyZWF0ZV9xcF9jb21tb24oZGV2LCBwZCwgTUxYNF9JQl9SV1FfU1JDLCAmaWJfcXBfaW5pdF9hdHRyLAotCQkJICAgICAgIHVkYXRhLCAwLCAmcXApOworCWVyciA9IGNyZWF0ZV9ycShwZCwgJmliX3FwX2luaXRfYXR0ciwgdWRhdGEsIHFwKTsKIAlpZiAoZXJyKSB7CiAJCWtmcmVlKHFwKTsKIAkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L2RldnguYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L2RldnguYwppbmRleCAyNWI2NDgyLi41OTAyMmI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9kZXZ4LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvZGV2eC5jCkBAIC0yMzMsNiArMjMzLDggQEAgc3RhdGljIGJvb2wgaXNfbGVnYWN5X29ial9ldmVudF9udW0odTE2IGV2ZW50X251bSkKIAljYXNlIE1MWDVfRVZFTlRfVFlQRV9TUlFfQ0FUQVNfRVJST1I6CiAJY2FzZSBNTFg1X0VWRU5UX1RZUEVfRENUX0RSQUlORUQ6CiAJY2FzZSBNTFg1X0VWRU5UX1RZUEVfQ09NUDoKKwljYXNlIE1MWDVfRVZFTlRfVFlQRV9EQ1RfS0VZX1ZJT0xBVElPTjoKKwljYXNlIE1MWDVfRVZFTlRfVFlQRV9YUlFfRVJST1I6CiAJCXJldHVybiB0cnVlOwogCWRlZmF1bHQ6CiAJCXJldHVybiBmYWxzZTsKQEAgLTMxNSw4ICszMTcsMTAgQEAgc3RhdGljIHUxNiBnZXRfZXZlbnRfb2JqX3R5cGUodW5zaWduZWQgbG9uZyBldmVudF90eXBlLCBzdHJ1Y3QgbWx4NV9lcWUgKmVxZSkKIAljYXNlIE1MWDVfRVZFTlRfVFlQRV9TUlFfQ0FUQVNfRVJST1I6CiAJCXJldHVybiBlcWUtPmRhdGEucXBfc3JxLnR5cGU7CiAJY2FzZSBNTFg1X0VWRU5UX1RZUEVfQ1FfRVJST1I6CisJY2FzZSBNTFg1X0VWRU5UX1RZUEVfWFJRX0VSUk9SOgogCQlyZXR1cm4gMDsKIAljYXNlIE1MWDVfRVZFTlRfVFlQRV9EQ1RfRFJBSU5FRDoKKwljYXNlIE1MWDVfRVZFTlRfVFlQRV9EQ1RfS0VZX1ZJT0xBVElPTjoKIAkJcmV0dXJuIE1MWDVfRVZFTlRfUVVFVUVfVFlQRV9EQ1Q7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIE1MWDVfR0VUKGFmZmlsaWF0ZWRfZXZlbnRfaGVhZGVyLCAmZXFlLT5kYXRhLCBvYmpfdHlwZSk7CkBAIC01NDIsNiArNTQ2LDggQEAgc3RhdGljIHU2NCBkZXZ4X2dldF9vYmpfaWQoY29uc3Qgdm9pZCAqaW4pCiAJCWJyZWFrOwogCWNhc2UgTUxYNV9DTURfT1BfQVJNX1hSUToKIAljYXNlIE1MWDVfQ01EX09QX1NFVF9YUlFfRENfUEFSQU1TX0VOVFJZOgorCWNhc2UgTUxYNV9DTURfT1BfUkVMRUFTRV9YUlFfRVJST1I6CisJY2FzZSBNTFg1X0NNRF9PUF9NT0RJRllfWFJROgogCQlvYmpfaWQgPSBnZXRfZW5jX29ial9pZChNTFg1X0NNRF9PUF9DUkVBVEVfWFJRLAogCQkJCQlNTFg1X0dFVChhcm1feHJxX2luLCBpbiwgeHJxbikpOwogCQlicmVhazsKQEAgLTc3Niw2ICs3ODIsMTQgQEAgc3RhdGljIGJvb2wgZGV2eF9pc19vYmpfY3JlYXRlX2NtZChjb25zdCB2b2lkICppbiwgdTE2ICpvcGNvZGUpCiAJCQlyZXR1cm4gdHJ1ZTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KKwljYXNlIE1MWDVfQ01EX09QX0NSRUFURV9QU1Y6CisJeworCQl1OCBudW1fcHN2ID0gTUxYNV9HRVQoY3JlYXRlX3Bzdl9pbiwgaW4sIG51bV9wc3YpOworCisJCWlmIChudW1fcHN2ID09IDEpCisJCQlyZXR1cm4gdHJ1ZTsKKwkJcmV0dXJuIGZhbHNlOworCX0KIAlkZWZhdWx0OgogCQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAtODEwLDYgKzgyNCw4IEBAIHN0YXRpYyBib29sIGRldnhfaXNfb2JqX21vZGlmeV9jbWQoY29uc3Qgdm9pZCAqaW4pCiAJY2FzZSBNTFg1X0NNRF9PUF9BUk1fRENUX0ZPUl9LRVlfVklPTEFUSU9OOgogCWNhc2UgTUxYNV9DTURfT1BfQVJNX1hSUToKIAljYXNlIE1MWDVfQ01EX09QX1NFVF9YUlFfRENfUEFSQU1TX0VOVFJZOgorCWNhc2UgTUxYNV9DTURfT1BfUkVMRUFTRV9YUlFfRVJST1I6CisJY2FzZSBNTFg1X0NNRF9PUF9NT0RJRllfWFJROgogCQlyZXR1cm4gdHJ1ZTsKIAljYXNlIE1MWDVfQ01EX09QX1NFVF9GTE9XX1RBQkxFX0VOVFJZOgogCXsKQEAgLTEyMTYsNiArMTIzMiwxMiBAQCBzdGF0aWMgdm9pZCBkZXZ4X29ial9idWlsZF9kZXN0cm95X2NtZCh2b2lkICppbiwgdm9pZCAqb3V0LCB2b2lkICpkaW4sCiAJY2FzZSBNTFg1X0NNRF9PUF9BTExPQ19YUkNEOgogCQlNTFg1X1NFVChnZW5lcmFsX29ial9pbl9jbWRfaGRyLCBkaW4sIG9wY29kZSwgTUxYNV9DTURfT1BfREVBTExPQ19YUkNEKTsKIAkJYnJlYWs7CisJY2FzZSBNTFg1X0NNRF9PUF9DUkVBVEVfUFNWOgorCQlNTFg1X1NFVChnZW5lcmFsX29ial9pbl9jbWRfaGRyLCBkaW4sIG9wY29kZSwKKwkJCSBNTFg1X0NNRF9PUF9ERVNUUk9ZX1BTVik7CisJCU1MWDVfU0VUKGRlc3Ryb3lfcHN2X2luLCBkaW4sIHBzdm4sCisJCQkgTUxYNV9HRVQoY3JlYXRlX3Bzdl9vdXQsIG91dCwgcHN2MF9pbmRleCkpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQkvKiBUaGUgZW50cnkgbXVzdCBtYXRjaCB0byBvbmUgb2YgdGhlIGRldnhfaXNfb2JqX2NyZWF0ZV9jbWQgKi8KIAkJV0FSTl9PTih0cnVlKTsKQEAgLTIyODYsNyArMjMwOCwxMSBAQCBzdGF0aWMgdTMyIGRldnhfZ2V0X29ial9pZF9mcm9tX2V2ZW50KHVuc2lnbmVkIGxvbmcgZXZlbnRfdHlwZSwgdm9pZCAqZGF0YSkKIAljYXNlIE1MWDVfRVZFTlRfVFlQRV9XUV9BQ0NFU1NfRVJST1I6CiAJCW9ial9pZCA9IGJlMzJfdG9fY3B1KGVxZS0+ZGF0YS5xcF9zcnEucXBfc3JxX24pICYgMHhmZmZmZmY7CiAJCWJyZWFrOworCWNhc2UgTUxYNV9FVkVOVF9UWVBFX1hSUV9FUlJPUjoKKwkJb2JqX2lkID0gYmUzMl90b19jcHUoZXFlLT5kYXRhLnhycV9lcnIudHlwZV94cnFuKSAmIDB4ZmZmZmZmOworCQlicmVhazsKIAljYXNlIE1MWDVfRVZFTlRfVFlQRV9EQ1RfRFJBSU5FRDoKKwljYXNlIE1MWDVfRVZFTlRfVFlQRV9EQ1RfS0VZX1ZJT0xBVElPTjoKIAkJb2JqX2lkID0gYmUzMl90b19jcHUoZXFlLT5kYXRhLmRjdC5kY3RuKSAmIDB4ZmZmZmZmOwogCQlicmVhazsKIAljYXNlIE1MWDVfRVZFTlRfVFlQRV9DUV9FUlJPUjoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L2Zsb3cuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L2Zsb3cuYwppbmRleCAxYzhmMDRhLi5iMTk4ZmYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9mbG93LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvZmxvdy5jCkBAIC0zMiw2ICszMiw5IEBAIG1seDVfaWJfZnRfdHlwZV90b19uYW1lc3BhY2UoZW51bSBtbHg1X2liX3VhcGlfZmxvd190YWJsZV90eXBlIHRhYmxlX3R5cGUsCiAJY2FzZSBNTFg1X0lCX1VBUElfRkxPV19UQUJMRV9UWVBFX0ZEQjoKIAkJKm5hbWVzcGFjZSA9IE1MWDVfRkxPV19OQU1FU1BBQ0VfRkRCOwogCQlicmVhazsKKwljYXNlIE1MWDVfSUJfVUFQSV9GTE9XX1RBQkxFX1RZUEVfUkRNQV9SWDoKKwkJKm5hbWVzcGFjZSA9IE1MWDVfRkxPV19OQU1FU1BBQ0VfUkRNQV9SWDsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTAxLDYgKzEwNCwxMSBAQCBzdGF0aWMgaW50IFVWRVJCU19IQU5ETEVSKE1MWDVfSUJfTUVUSE9EX0NSRUFURV9GTE9XKSgKIAlpZiAoZnNfbWF0Y2hlci0+bnNfdHlwZSA9PSBNTFg1X0ZMT1dfTkFNRVNQQUNFX0ZEQiAmJiAhZGVzdF9kZXZ4KQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCS8qIEFsbG93IG9ubHkgREVWWCBvYmplY3Qgb3IgUVAgYXMgZGVzdCB3aGVuIGluc2VydGluZyB0byBSRE1BX1JYICovCisJaWYgKChmc19tYXRjaGVyLT5uc190eXBlID09IE1MWDVfRkxPV19OQU1FU1BBQ0VfUkRNQV9SWCkgJiYKKwkgICAgKCghZGVzdF9kZXZ4ICYmICFkZXN0X3FwKSB8fCAoZGVzdF9kZXZ4ICYmIGRlc3RfcXApKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlpZiAoZGVzdF9kZXZ4KSB7CiAJCWRldnhfb2JqID0gdXZlcmJzX2F0dHJfZ2V0X29iaigKIAkJCWF0dHJzLCBNTFg1X0lCX0FUVFJfQ1JFQVRFX0ZMT1dfREVTVF9ERVZYKTsKQEAgLTExMiw4ICsxMjAsOSBAQCBzdGF0aWMgaW50IFVWRVJCU19IQU5ETEVSKE1MWDVfSUJfTUVUSE9EX0NSRUFURV9GTE9XKSgKIAkJICovCiAJCWlmICghbWx4NV9pYl9kZXZ4X2lzX2Zsb3dfZGVzdChkZXZ4X29iaiwgJmRlc3RfaWQsICZkZXN0X3R5cGUpKQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCS8qIEFsbG93IG9ubHkgZmxvdyB0YWJsZSBhcyBkZXN0IHdoZW4gaW5zZXJ0aW5nIHRvIEZEQiAqLwotCQlpZiAoZnNfbWF0Y2hlci0+bnNfdHlwZSA9PSBNTFg1X0ZMT1dfTkFNRVNQQUNFX0ZEQiAmJgorCQkvKiBBbGxvdyBvbmx5IGZsb3cgdGFibGUgYXMgZGVzdCB3aGVuIGluc2VydGluZyB0byBGREIgb3IgUkRNQV9SWCAqLworCQlpZiAoKGZzX21hdGNoZXItPm5zX3R5cGUgPT0gTUxYNV9GTE9XX05BTUVTUEFDRV9GREIgfHwKKwkJICAgICBmc19tYXRjaGVyLT5uc190eXBlID09IE1MWDVfRkxPV19OQU1FU1BBQ0VfUkRNQV9SWCkgJiYKIAkJICAgIGRlc3RfdHlwZSAhPSBNTFg1X0ZMT1dfREVTVElOQVRJT05fVFlQRV9GTE9XX1RBQkxFKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAJfSBlbHNlIGlmIChkZXN0X3FwKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMKaW5kZXggNGU5ZjE1MC4uODMxNTM5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYwpAQCAtNTM1LDcgKzUzNSw3IEBAIHN0YXRpYyBpbnQgbWx4NV9xdWVyeV9wb3J0X3JvY2Uoc3RydWN0IGliX2RldmljZSAqZGV2aWNlLCB1OCBwb3J0X251bSwKIAlwcm9wcy0+bWF4X21zZ19zeiAgICAgICA9IDEgPDwgTUxYNV9DQVBfR0VOKGRldi0+bWRldiwgbG9nX21heF9tc2cpOwogCXByb3BzLT5wa2V5X3RibF9sZW4gICAgID0gMTsKIAlwcm9wcy0+c3RhdGUgICAgICAgICAgICA9IElCX1BPUlRfRE9XTjsKLQlwcm9wcy0+cGh5c19zdGF0ZSAgICAgICA9IDM7CisJcHJvcHMtPnBoeXNfc3RhdGUgICAgICAgPSBJQl9QT1JUX1BIWVNfU1RBVEVfRElTQUJMRUQ7CiAKIAltbHg1X3F1ZXJ5X25pY192cG9ydF9xa2V5X3Zpb2xfY250cihtZGV2LCAmcWtleV92aW9sX2NudHIpOwogCXByb3BzLT5xa2V5X3Zpb2xfY250ciA9IHFrZXlfdmlvbF9jbnRyOwpAQCAtNTYxLDcgKzU2MSw3IEBAIHN0YXRpYyBpbnQgbWx4NV9xdWVyeV9wb3J0X3JvY2Uoc3RydWN0IGliX2RldmljZSAqZGV2aWNlLCB1OCBwb3J0X251bSwKIAogCWlmIChuZXRpZl9ydW5uaW5nKG5kZXYpICYmIG5ldGlmX2NhcnJpZXJfb2sobmRldikpIHsKIAkJcHJvcHMtPnN0YXRlICAgICAgPSBJQl9QT1JUX0FDVElWRTsKLQkJcHJvcHMtPnBoeXNfc3RhdGUgPSA1OworCQlwcm9wcy0+cGh5c19zdGF0ZSA9IElCX1BPUlRfUEhZU19TVEFURV9MSU5LX1VQOwogCX0KIAogCW5kZXZfaWJfbXR1ID0gaWJvZV9nZXRfbXR1KG5kZXYtPm10dSk7CkBAIC0xODY3LDEwICsxODY3LDYgQEAgc3RhdGljIGludCBtbHg1X2liX2FsbG9jX3Vjb250ZXh0KHN0cnVjdCBpYl91Y29udGV4dCAqdWN0eCwKIAlpZiAoZXJyKQogCQlnb3RvIG91dF9zeXNfcGFnZXM7CiAKLQlpZiAoaWJkZXYtPmF0dHJzLmRldmljZV9jYXBfZmxhZ3MgJiBJQl9ERVZJQ0VfT05fREVNQU5EX1BBR0lORykKLQkJY29udGV4dC0+aWJ1Y29udGV4dC5pbnZhbGlkYXRlX3JhbmdlID0KLQkJCSZtbHg1X2liX2ludmFsaWRhdGVfcmFuZ2U7Ci0KIAlpZiAocmVxLmZsYWdzICYgTUxYNV9JQl9BTExPQ19VQ1RYX0RFVlgpIHsKIAkJZXJyID0gbWx4NV9pYl9kZXZ4X2NyZWF0ZShkZXYsIHRydWUpOwogCQlpZiAoZXJyIDwgMCkKQEAgLTE5OTksMTEgKzE5OTUsNiBAQCBzdGF0aWMgdm9pZCBtbHg1X2liX2RlYWxsb2NfdWNvbnRleHQoc3RydWN0IGliX3Vjb250ZXh0ICppYmNvbnRleHQpCiAJc3RydWN0IG1seDVfaWJfZGV2ICpkZXYgPSB0b19tZGV2KGliY29udGV4dC0+ZGV2aWNlKTsKIAlzdHJ1Y3QgbWx4NV9iZnJlZ19pbmZvICpiZnJlZ2k7CiAKLQkvKiBBbGwgdW1lbSdzIG11c3QgYmUgZGVzdHJveWVkIGJlZm9yZSBkZXN0cm95aW5nIHRoZSB1Y29udGV4dC4gKi8KLQltdXRleF9sb2NrKCZpYmNvbnRleHQtPnBlcl9tbV9saXN0X2xvY2spOwotCVdBUk5fT04oIWxpc3RfZW1wdHkoJmliY29udGV4dC0+cGVyX21tX2xpc3QpKTsKLQltdXRleF91bmxvY2soJmliY29udGV4dC0+cGVyX21tX2xpc3RfbG9jayk7Ci0KIAliZnJlZ2kgPSAmY29udGV4dC0+YmZyZWdpOwogCW1seDVfaWJfZGVhbGxvY190cmFuc3BvcnRfZG9tYWluKGRldiwgY29udGV4dC0+dGRuLCBjb250ZXh0LT5kZXZ4X3VpZCk7CiAKQEAgLTM5ODAsNiArMzk3MSwxMSBAQCBfZ2V0X2Zsb3dfdGFibGUoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsCiAJCSAgICBlc3dfZW5jYXApCiAJCQlmbGFncyB8PSBNTFg1X0ZMT1dfVEFCTEVfVFVOTkVMX0VOX1JFRk9STUFUOwogCQlwcmlvcml0eSA9IEZEQl9CWVBBU1NfUEFUSDsKKwl9IGVsc2UgaWYgKGZzX21hdGNoZXItPm5zX3R5cGUgPT0gTUxYNV9GTE9XX05BTUVTUEFDRV9SRE1BX1JYKSB7CisJCW1heF90YWJsZV9zaXplID0KKwkJCUJJVChNTFg1X0NBUF9GTE9XVEFCTEVfUkRNQV9SWChkZXYtPm1kZXYsCisJCQkJCQkgICAgICAgbG9nX21heF9mdF9zaXplKSk7CisJCXByaW9yaXR5ID0gZnNfbWF0Y2hlci0+cHJpb3JpdHk7CiAJfQogCiAJbWF4X3RhYmxlX3NpemUgPSBtaW5fdChpbnQsIG1heF90YWJsZV9zaXplLCBNTFg1X0ZTX01BWF9FTlRSSUVTKTsKQEAgLTM5OTQsNiArMzk5MCw4IEBAIF9nZXRfZmxvd190YWJsZShzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwKIAkJcHJpbyA9ICZkZXYtPmZsb3dfZGItPmVncmVzc19wcmlvc1twcmlvcml0eV07CiAJZWxzZSBpZiAoZnNfbWF0Y2hlci0+bnNfdHlwZSA9PSBNTFg1X0ZMT1dfTkFNRVNQQUNFX0ZEQikKIAkJcHJpbyA9ICZkZXYtPmZsb3dfZGItPmZkYjsKKwllbHNlIGlmIChmc19tYXRjaGVyLT5uc190eXBlID09IE1MWDVfRkxPV19OQU1FU1BBQ0VfUkRNQV9SWCkKKwkJcHJpbyA9ICZkZXYtPmZsb3dfZGItPnJkbWFfcnhbcHJpb3JpdHldOwogCiAJaWYgKCFwcmlvKQogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKQEAgLTUzMzUsMTEgKzUzMzMsMjEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtbHg1X2liX2NvdW50ZXIgZXh0X3BwY250X2NudHNbXSA9IHsKIAlJTklUX0VYVF9QUENOVF9DT1VOVEVSKHJ4X2ljcmNfZW5jYXBzdWxhdGVkKSwKIH07CiAKK3N0YXRpYyBib29sIGlzX21kZXZfc3dpdGNoZGV2X21vZGUoY29uc3Qgc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYpCit7CisJcmV0dXJuIE1MWDVfRVNXSVRDSF9NQU5BR0VSKG1kZXYpICYmCisJICAgICAgIG1seDVfaWJfZXN3aXRjaF9tb2RlKG1kZXYtPnByaXYuZXN3aXRjaCkgPT0KKwkJICAgICAgIE1MWDVfRVNXSVRDSF9PRkZMT0FEUzsKK30KKwogc3RhdGljIHZvaWQgbWx4NV9pYl9kZWFsbG9jX2NvdW50ZXJzKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2KQogeworCWludCBudW1fY250X3BvcnRzOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IGRldi0+bnVtX3BvcnRzOyBpKyspIHsKKwludW1fY250X3BvcnRzID0gaXNfbWRldl9zd2l0Y2hkZXZfbW9kZShkZXYtPm1kZXYpID8gMSA6IGRldi0+bnVtX3BvcnRzOworCisJZm9yIChpID0gMDsgaSA8IG51bV9jbnRfcG9ydHM7IGkrKykgewogCQlpZiAoZGV2LT5wb3J0W2ldLmNudHMuc2V0X2lkX3ZhbGlkKQogCQkJbWx4NV9jb3JlX2RlYWxsb2NfcV9jb3VudGVyKGRldi0+bWRldiwKIAkJCQkJCSAgICBkZXYtPnBvcnRbaV0uY250cy5zZXRfaWQpOwpAQCAtNTQ0MSwxMyArNTQ0OSwxNSBAQCBzdGF0aWMgdm9pZCBtbHg1X2liX2ZpbGxfY291bnRlcnMoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsCiAKIHN0YXRpYyBpbnQgbWx4NV9pYl9hbGxvY19jb3VudGVycyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldikKIHsKKwlpbnQgbnVtX2NudF9wb3J0czsKIAlpbnQgZXJyID0gMDsKIAlpbnQgaTsKIAlib29sIGlzX3NoYXJlZDsKIAogCWlzX3NoYXJlZCA9IE1MWDVfQ0FQX0dFTihkZXYtPm1kZXYsIGxvZ19tYXhfdWN0eCkgIT0gMDsKKwludW1fY250X3BvcnRzID0gaXNfbWRldl9zd2l0Y2hkZXZfbW9kZShkZXYtPm1kZXYpID8gMSA6IGRldi0+bnVtX3BvcnRzOwogCi0JZm9yIChpID0gMDsgaSA8IGRldi0+bnVtX3BvcnRzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2NudF9wb3J0czsgaSsrKSB7CiAJCWVyciA9IF9fbWx4NV9pYl9hbGxvY19jb3VudGVycyhkZXYsICZkZXYtPnBvcnRbaV0uY250cyk7CiAJCWlmIChlcnIpCiAJCQlnb3RvIGVycl9hbGxvYzsKQEAgLTU0NjcsNyArNTQ3Nyw2IEBAIHN0YXRpYyBpbnQgbWx4NV9pYl9hbGxvY19jb3VudGVycyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldikKIAkJfQogCQlkZXYtPnBvcnRbaV0uY250cy5zZXRfaWRfdmFsaWQgPSB0cnVlOwogCX0KLQogCXJldHVybiAwOwogCiBlcnJfYWxsb2M6CkBAIC01NDc1LDI1ICs1NDg0LDUwIEBAIHN0YXRpYyBpbnQgbWx4NV9pYl9hbGxvY19jb3VudGVycyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldikKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IG1seDVfaWJfY291bnRlcnMgKmdldF9jb3VudGVycyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwKKwkJCQkJCSAgIHU4IHBvcnRfbnVtKQoreworCXJldHVybiBpc19tZGV2X3N3aXRjaGRldl9tb2RlKGRldi0+bWRldikgPyAmZGV2LT5wb3J0WzBdLmNudHMgOgorCQkJCQkJICAgJmRldi0+cG9ydFtwb3J0X251bV0uY250czsKK30KKworLyoqCisgKiBtbHg1X2liX2dldF9jb3VudGVyc19pZCAtIFJldHVybnMgY291bnRlcnMgaWQgdG8gdXNlIGZvciBkZXZpY2UrcG9ydAorICogQGRldjoJUG9pbnRlciB0byBtbHg1IElCIGRldmljZQorICogQHBvcnRfbnVtOglaZXJvIGJhc2VkIHBvcnQgbnVtYmVyCisgKgorICogbWx4NV9pYl9nZXRfY291bnRlcnNfaWQoKSBSZXR1cm5zIGNvdW50ZXJzIHNldCBpZCB0byB1c2UgZm9yIGdpdmVuCisgKiBkZXZpY2UgcG9ydCBjb21iaW5hdGlvbiBpbiBzd2l0Y2hkZXYgYW5kIG5vbiBzd2l0Y2hkZXYgbW9kZSBvZiB0aGUKKyAqIHBhcmVudCBkZXZpY2UuCisgKi8KK3UxNiBtbHg1X2liX2dldF9jb3VudGVyc19pZChzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTggcG9ydF9udW0pCit7CisJY29uc3Qgc3RydWN0IG1seDVfaWJfY291bnRlcnMgKmNudHMgPSBnZXRfY291bnRlcnMoZGV2LCBwb3J0X251bSk7CisKKwlyZXR1cm4gY250cy0+c2V0X2lkOworfQorCiBzdGF0aWMgc3RydWN0IHJkbWFfaHdfc3RhdHMgKm1seDVfaWJfYWxsb2NfaHdfc3RhdHMoc3RydWN0IGliX2RldmljZSAqaWJkZXYsCiAJCQkJCQkgICAgdTggcG9ydF9udW0pCiB7CiAJc3RydWN0IG1seDVfaWJfZGV2ICpkZXYgPSB0b19tZGV2KGliZGV2KTsKLQlzdHJ1Y3QgbWx4NV9pYl9wb3J0ICpwb3J0ID0gJmRldi0+cG9ydFtwb3J0X251bSAtIDFdOworCWNvbnN0IHN0cnVjdCBtbHg1X2liX2NvdW50ZXJzICpjbnRzOworCWJvb2wgaXNfc3dpdGNoZGV2ID0gaXNfbWRldl9zd2l0Y2hkZXZfbW9kZShkZXYtPm1kZXYpOwogCi0JLyogV2Ugc3VwcG9ydCBvbmx5IHBlciBwb3J0IHN0YXRzICovCi0JaWYgKHBvcnRfbnVtID09IDApCisJaWYgKChpc19zd2l0Y2hkZXYgJiYgcG9ydF9udW0pIHx8ICghaXNfc3dpdGNoZGV2ICYmICFwb3J0X251bSkpCiAJCXJldHVybiBOVUxMOwogCi0JcmV0dXJuIHJkbWFfYWxsb2NfaHdfc3RhdHNfc3RydWN0KHBvcnQtPmNudHMubmFtZXMsCi0JCQkJCSAgcG9ydC0+Y250cy5udW1fcV9jb3VudGVycyArCi0JCQkJCSAgcG9ydC0+Y250cy5udW1fY29uZ19jb3VudGVycyArCi0JCQkJCSAgcG9ydC0+Y250cy5udW1fZXh0X3BwY250X2NvdW50ZXJzLAorCWNudHMgPSBnZXRfY291bnRlcnMoZGV2LCBwb3J0X251bSAtIDEpOworCisJcmV0dXJuIHJkbWFfYWxsb2NfaHdfc3RhdHNfc3RydWN0KGNudHMtPm5hbWVzLAorCQkJCQkgIGNudHMtPm51bV9xX2NvdW50ZXJzICsKKwkJCQkJICBjbnRzLT5udW1fY29uZ19jb3VudGVycyArCisJCQkJCSAgY250cy0+bnVtX2V4dF9wcGNudF9jb3VudGVycywKIAkJCQkJICBSRE1BX0hXX1NUQVRTX0RFRkFVTFRfTElGRVNQQU4pOwogfQogCiBzdGF0aWMgaW50IG1seDVfaWJfcXVlcnlfcV9jb3VudGVycyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKLQkJCQkgICAgc3RydWN0IG1seDVfaWJfcG9ydCAqcG9ydCwKKwkJCQkgICAgY29uc3Qgc3RydWN0IG1seDVfaWJfY291bnRlcnMgKmNudHMsCiAJCQkJICAgIHN0cnVjdCByZG1hX2h3X3N0YXRzICpzdGF0cywKIAkJCQkgICAgdTE2IHNldF9pZCkKIHsKQEAgLTU1MTAsOCArNTU0NCw4IEBAIHN0YXRpYyBpbnQgbWx4NV9pYl9xdWVyeV9xX2NvdW50ZXJzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCWlmIChyZXQpCiAJCWdvdG8gZnJlZTsKIAotCWZvciAoaSA9IDA7IGkgPCBwb3J0LT5jbnRzLm51bV9xX2NvdW50ZXJzOyBpKyspIHsKLQkJdmFsID0gKihfX2JlMzIgKikob3V0ICsgcG9ydC0+Y250cy5vZmZzZXRzW2ldKTsKKwlmb3IgKGkgPSAwOyBpIDwgY250cy0+bnVtX3FfY291bnRlcnM7IGkrKykgeworCQl2YWwgPSAqKF9fYmUzMiAqKShvdXQgKyBjbnRzLT5vZmZzZXRzW2ldKTsKIAkJc3RhdHMtPnZhbHVlW2ldID0gKHU2NCliZTMyX3RvX2NwdSh2YWwpOwogCX0KIApAQCAtNTUyMSwxMCArNTU1NSwxMCBAQCBzdGF0aWMgaW50IG1seDVfaWJfcXVlcnlfcV9jb3VudGVycyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKIH0KIAogc3RhdGljIGludCBtbHg1X2liX3F1ZXJ5X2V4dF9wcGNudF9jb3VudGVycyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwKLQkJCQkJICBzdHJ1Y3QgbWx4NV9pYl9wb3J0ICpwb3J0LAotCQkJCQkgIHN0cnVjdCByZG1hX2h3X3N0YXRzICpzdGF0cykKKwkJCQkJICAgIGNvbnN0IHN0cnVjdCBtbHg1X2liX2NvdW50ZXJzICpjbnRzLAorCQkJCQkgICAgc3RydWN0IHJkbWFfaHdfc3RhdHMgKnN0YXRzKQogewotCWludCBvZmZzZXQgPSBwb3J0LT5jbnRzLm51bV9xX2NvdW50ZXJzICsgcG9ydC0+Y250cy5udW1fY29uZ19jb3VudGVyczsKKwlpbnQgb2Zmc2V0ID0gY250cy0+bnVtX3FfY291bnRlcnMgKyBjbnRzLT5udW1fY29uZ19jb3VudGVyczsKIAlpbnQgc3ogPSBNTFg1X1NUX1NaX0JZVEVTKHBwY250X3JlZyk7CiAJaW50IHJldCwgaTsKIAl2b2lkICpvdXQ7CkBAIC01NTM3LDEyICs1NTcxLDEwIEBAIHN0YXRpYyBpbnQgbWx4NV9pYl9xdWVyeV9leHRfcHBjbnRfY291bnRlcnMoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsCiAJaWYgKHJldCkKIAkJZ290byBmcmVlOwogCi0JZm9yIChpID0gMDsgaSA8IHBvcnQtPmNudHMubnVtX2V4dF9wcGNudF9jb3VudGVyczsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGNudHMtPm51bV9leHRfcHBjbnRfY291bnRlcnM7IGkrKykKIAkJc3RhdHMtPnZhbHVlW2kgKyBvZmZzZXRdID0KIAkJCWJlNjRfdG9fY3B1cCgoX19iZTY0ICopKG91dCArCi0JCQkJICAgIHBvcnQtPmNudHMub2Zmc2V0c1tpICsgb2Zmc2V0XSkpOwotCX0KLQorCQkJCSAgICBjbnRzLT5vZmZzZXRzW2kgKyBvZmZzZXRdKSk7CiBmcmVlOgogCWt2ZnJlZShvdXQpOwogCXJldHVybiByZXQ7CkBAIC01NTUzLDcgKzU1ODUsNyBAQCBzdGF0aWMgaW50IG1seDVfaWJfZ2V0X2h3X3N0YXRzKHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LAogCQkJCXU4IHBvcnRfbnVtLCBpbnQgaW5kZXgpCiB7CiAJc3RydWN0IG1seDVfaWJfZGV2ICpkZXYgPSB0b19tZGV2KGliZGV2KTsKLQlzdHJ1Y3QgbWx4NV9pYl9wb3J0ICpwb3J0ID0gJmRldi0+cG9ydFtwb3J0X251bSAtIDFdOworCWNvbnN0IHN0cnVjdCBtbHg1X2liX2NvdW50ZXJzICpjbnRzID0gZ2V0X2NvdW50ZXJzKGRldiwgcG9ydF9udW0gLSAxKTsKIAlzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldjsKIAlpbnQgcmV0LCBudW1fY291bnRlcnM7CiAJdTggbWRldl9wb3J0X251bTsKQEAgLTU1NjEsMTggKzU1OTMsMTcgQEAgc3RhdGljIGludCBtbHg1X2liX2dldF9od19zdGF0cyhzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwKIAlpZiAoIXN0YXRzKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCW51bV9jb3VudGVycyA9IHBvcnQtPmNudHMubnVtX3FfY291bnRlcnMgKwotCQkgICAgICAgcG9ydC0+Y250cy5udW1fY29uZ19jb3VudGVycyArCi0JCSAgICAgICBwb3J0LT5jbnRzLm51bV9leHRfcHBjbnRfY291bnRlcnM7CisJbnVtX2NvdW50ZXJzID0gY250cy0+bnVtX3FfY291bnRlcnMgKworCQkgICAgICAgY250cy0+bnVtX2NvbmdfY291bnRlcnMgKworCQkgICAgICAgY250cy0+bnVtX2V4dF9wcGNudF9jb3VudGVyczsKIAogCS8qIHFfY291bnRlcnMgYXJlIHBlciBJQiBkZXZpY2UsIHF1ZXJ5IHRoZSBtYXN0ZXIgbWRldiAqLwotCXJldCA9IG1seDVfaWJfcXVlcnlfcV9jb3VudGVycyhkZXYtPm1kZXYsIHBvcnQsIHN0YXRzLAotCQkJCSAgICAgICBwb3J0LT5jbnRzLnNldF9pZCk7CisJcmV0ID0gbWx4NV9pYl9xdWVyeV9xX2NvdW50ZXJzKGRldi0+bWRldiwgY250cywgc3RhdHMsIGNudHMtPnNldF9pZCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAogCWlmIChNTFg1X0NBUF9QQ0FNX0ZFQVRVUkUoZGV2LT5tZGV2LCByeF9pY3JjX2VuY2Fwc3VsYXRlZF9jb3VudGVyKSkgewotCQlyZXQgPSAgbWx4NV9pYl9xdWVyeV9leHRfcHBjbnRfY291bnRlcnMoZGV2LCBwb3J0LCBzdGF0cyk7CisJCXJldCA9ICBtbHg1X2liX3F1ZXJ5X2V4dF9wcGNudF9jb3VudGVycyhkZXYsIGNudHMsIHN0YXRzKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQpAQCAtNTU4OSwxMCArNTYyMCwxMCBAQCBzdGF0aWMgaW50IG1seDVfaWJfZ2V0X2h3X3N0YXRzKHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LAogCQl9CiAJCXJldCA9IG1seDVfbGFnX3F1ZXJ5X2NvbmdfY291bnRlcnMoZGV2LT5tZGV2LAogCQkJCQkJICAgc3RhdHMtPnZhbHVlICsKLQkJCQkJCSAgIHBvcnQtPmNudHMubnVtX3FfY291bnRlcnMsCi0JCQkJCQkgICBwb3J0LT5jbnRzLm51bV9jb25nX2NvdW50ZXJzLAotCQkJCQkJICAgcG9ydC0+Y250cy5vZmZzZXRzICsKLQkJCQkJCSAgIHBvcnQtPmNudHMubnVtX3FfY291bnRlcnMpOworCQkJCQkJICAgY250cy0+bnVtX3FfY291bnRlcnMsCisJCQkJCQkgICBjbnRzLT5udW1fY29uZ19jb3VudGVycywKKwkJCQkJCSAgIGNudHMtPm9mZnNldHMgKworCQkJCQkJICAgY250cy0+bnVtX3FfY291bnRlcnMpOwogCiAJCW1seDVfaWJfcHV0X25hdGl2ZV9wb3J0X21kZXYoZGV2LCBwb3J0X251bSk7CiAJCWlmIChyZXQpCkBAIC01NjA3LDIwICs1NjM4LDIyIEBAIHN0YXRpYyBzdHJ1Y3QgcmRtYV9od19zdGF0cyAqCiBtbHg1X2liX2NvdW50ZXJfYWxsb2Nfc3RhdHMoc3RydWN0IHJkbWFfY291bnRlciAqY291bnRlcikKIHsKIAlzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiA9IHRvX21kZXYoY291bnRlci0+ZGV2aWNlKTsKLQlzdHJ1Y3QgbWx4NV9pYl9wb3J0ICpwb3J0ID0gJmRldi0+cG9ydFtjb3VudGVyLT5wb3J0IC0gMV07CisJY29uc3Qgc3RydWN0IG1seDVfaWJfY291bnRlcnMgKmNudHMgPQorCQlnZXRfY291bnRlcnMoZGV2LCBjb3VudGVyLT5wb3J0IC0gMSk7CiAKIAkvKiBRIGNvdW50ZXJzIGFyZSBpbiB0aGUgYmVnaW5uaW5nIG9mIGFsbCBjb3VudGVycyAqLwotCXJldHVybiByZG1hX2FsbG9jX2h3X3N0YXRzX3N0cnVjdChwb3J0LT5jbnRzLm5hbWVzLAotCQkJCQkgIHBvcnQtPmNudHMubnVtX3FfY291bnRlcnMsCisJcmV0dXJuIHJkbWFfYWxsb2NfaHdfc3RhdHNfc3RydWN0KGNudHMtPm5hbWVzLAorCQkJCQkgIGNudHMtPm51bV9xX2NvdW50ZXJzLAogCQkJCQkgIFJETUFfSFdfU1RBVFNfREVGQVVMVF9MSUZFU1BBTik7CiB9CiAKIHN0YXRpYyBpbnQgbWx4NV9pYl9jb3VudGVyX3VwZGF0ZV9zdGF0cyhzdHJ1Y3QgcmRtYV9jb3VudGVyICpjb3VudGVyKQogewogCXN0cnVjdCBtbHg1X2liX2RldiAqZGV2ID0gdG9fbWRldihjb3VudGVyLT5kZXZpY2UpOwotCXN0cnVjdCBtbHg1X2liX3BvcnQgKnBvcnQgPSAmZGV2LT5wb3J0W2NvdW50ZXItPnBvcnQgLSAxXTsKKwljb25zdCBzdHJ1Y3QgbWx4NV9pYl9jb3VudGVycyAqY250cyA9CisJCWdldF9jb3VudGVycyhkZXYsIGNvdW50ZXItPnBvcnQgLSAxKTsKIAotCXJldHVybiBtbHg1X2liX3F1ZXJ5X3FfY291bnRlcnMoZGV2LT5tZGV2LCBwb3J0LAorCXJldHVybiBtbHg1X2liX3F1ZXJ5X3FfY291bnRlcnMoZGV2LT5tZGV2LCBjbnRzLAogCQkJCQljb3VudGVyLT5zdGF0cywgY291bnRlci0+aWQpOwogfQogCkBAIC01Nzk3LDcgKzU4MzAsNiBAQCBzdGF0aWMgdm9pZCBpbml0X2RlbGF5X2Ryb3Aoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYpCiAJCW1seDVfaWJfd2FybihkZXYsICJGYWlsZWQgdG8gaW5pdCBkZWxheSBkcm9wIGRlYnVnZnNcbiIpOwogfQogCi0vKiBUaGUgbWx4NV9pYl9tdWx0aXBvcnRfbXV0ZXggc2hvdWxkIGJlIGhlbGQgd2hlbiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gKi8KIHN0YXRpYyB2b2lkIG1seDVfaWJfdW5iaW5kX3NsYXZlX3BvcnQoc3RydWN0IG1seDVfaWJfZGV2ICppYmRldiwKIAkJCQkgICAgICBzdHJ1Y3QgbWx4NV9pYl9tdWx0aXBvcnRfaW5mbyAqbXBpKQogewpAQCAtNTgwNyw2ICs1ODM5LDggQEAgc3RhdGljIHZvaWQgbWx4NV9pYl91bmJpbmRfc2xhdmVfcG9ydChzdHJ1Y3QgbWx4NV9pYl9kZXYgKmliZGV2LAogCWludCBlcnI7CiAJaW50IGk7CiAKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZtbHg1X2liX211bHRpcG9ydF9tdXRleCk7CisKIAltbHg1X2liX2NsZWFudXBfY29uZ19kZWJ1Z2ZzKGliZGV2LCBwb3J0X251bSk7CiAKIAlzcGluX2xvY2soJnBvcnQtPm1wLm1waV9sb2NrKTsKQEAgLTU4NTYsMTMgKzU4OTAsMTQgQEAgc3RhdGljIHZvaWQgbWx4NV9pYl91bmJpbmRfc2xhdmVfcG9ydChzdHJ1Y3QgbWx4NV9pYl9kZXYgKmliZGV2LAogCWliZGV2LT5wb3J0W3BvcnRfbnVtXS5yb2NlLmxhc3RfcG9ydF9zdGF0ZSA9IElCX1BPUlRfRE9XTjsKIH0KIAotLyogVGhlIG1seDVfaWJfbXVsdGlwb3J0X211dGV4IHNob3VsZCBiZSBoZWxkIHdoZW4gY2FsbGluZyB0aGlzIGZ1bmN0aW9uICovCiBzdGF0aWMgYm9vbCBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydChzdHJ1Y3QgbWx4NV9pYl9kZXYgKmliZGV2LAogCQkJCSAgICBzdHJ1Y3QgbWx4NV9pYl9tdWx0aXBvcnRfaW5mbyAqbXBpKQogewogCXU4IHBvcnRfbnVtID0gbWx4NV9jb3JlX25hdGl2ZV9wb3J0X251bShtcGktPm1kZXYpIC0gMTsKIAlpbnQgZXJyOwogCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmbWx4NV9pYl9tdWx0aXBvcnRfbXV0ZXgpOworCiAJc3Bpbl9sb2NrKCZpYmRldi0+cG9ydFtwb3J0X251bV0ubXAubXBpX2xvY2spOwogCWlmIChpYmRldi0+cG9ydFtwb3J0X251bV0ubXAubXBpKSB7CiAJCW1seDVfaWJfZGJnKGliZGV2LCAicG9ydCAlZCBhbHJlYWR5IGFmZmlsaWF0ZWQuXG4iLApAQCAtNjg5MSw3ICs2OTI2LDcgQEAgc3RhdGljIHZvaWQgKm1seDVfaWJfYWRkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KQogCWRldi0+cG9ydCA9IGtjYWxsb2MobnVtX3BvcnRzLCBzaXplb2YoKmRldi0+cG9ydCksCiAJCQkgICAgIEdGUF9LRVJORUwpOwogCWlmICghZGV2LT5wb3J0KSB7Ci0JCWliX2RlYWxsb2NfZGV2aWNlKChzdHJ1Y3QgaWJfZGV2aWNlICopZGV2KTsKKwkJaWJfZGVhbGxvY19kZXZpY2UoJmRldi0+aWJfZGV2KTsKIAkJcmV0dXJuIE5VTEw7CiAJfQogCkBAIC02OTE4LDYgKzY5NTMsNyBAQCBzdGF0aWMgdm9pZCBtbHg1X2liX3JlbW92ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdm9pZCAqY29udGV4dCkKIAkJCW1seDVfaWJfdW5iaW5kX3NsYXZlX3BvcnQobXBpLT5pYmRldiwgbXBpKTsKIAkJbGlzdF9kZWwoJm1waS0+bGlzdCk7CiAJCW11dGV4X3VubG9jaygmbWx4NV9pYl9tdWx0aXBvcnRfbXV0ZXgpOworCQlrZnJlZShtcGkpOwogCQlyZXR1cm47CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tZW0uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21lbS5jCmluZGV4IGE0MGUwYWIuLmI1YWVjZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21lbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21lbS5jCkBAIC01NiwxOSArNTYsNiBAQCB2b2lkIG1seDVfaWJfY29udF9wYWdlcyhzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwgdTY0IGFkZHIsCiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKIAlpbnQgZW50cnk7CiAKLQlpZiAodW1lbS0+aXNfb2RwKSB7Ci0JCXN0cnVjdCBpYl91bWVtX29kcCAqb2RwID0gdG9faWJfdW1lbV9vZHAodW1lbSk7Ci0JCXVuc2lnbmVkIGludCBwYWdlX3NoaWZ0ID0gb2RwLT5wYWdlX3NoaWZ0OwotCi0JCSpuY29udCA9IGliX3VtZW1fb2RwX251bV9wYWdlcyhvZHApOwotCQkqY291bnQgPSAqbmNvbnQgPDwgKHBhZ2Vfc2hpZnQgLSBQQUdFX1NISUZUKTsKLQkJKnNoaWZ0ID0gcGFnZV9zaGlmdDsKLQkJaWYgKG9yZGVyKQotCQkJKm9yZGVyID0gaWxvZzIocm91bmR1cF9wb3dfb2ZfdHdvKCpuY29udCkpOwotCi0JCXJldHVybjsKLQl9Ci0KIAlhZGRyID0gYWRkciA+PiBQQUdFX1NISUZUOwogCXRtcCA9ICh1bnNpZ25lZCBsb25nKWFkZHI7CiAJbSA9IGZpbmRfZmlyc3RfYml0KCZ0bXAsIEJJVFNfUEVSX0xPTkcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWx4NV9pYi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWx4NV9pYi5oCmluZGV4IDEyNWE1MDcuLjJjZWFlZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21seDVfaWIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tbHg1X2liLmgKQEAgLTIwMCw2ICsyMDAsNyBAQCBzdHJ1Y3QgbWx4NV9pYl9mbG93X2RiIHsKIAlzdHJ1Y3QgbWx4NV9pYl9mbG93X3ByaW8Jc25pZmZlcltNTFg1X0lCX05VTV9TTklGRkVSX0ZUU107CiAJc3RydWN0IG1seDVfaWJfZmxvd19wcmlvCWVncmVzc1tNTFg1X0lCX05VTV9FR1JFU1NfRlRTXTsKIAlzdHJ1Y3QgbWx4NV9pYl9mbG93X3ByaW8JZmRiOworCXN0cnVjdCBtbHg1X2liX2Zsb3dfcHJpbwlyZG1hX3J4W01MWDVfSUJfTlVNX0ZMT1dfRlRdOwogCXN0cnVjdCBtbHg1X2Zsb3dfdGFibGUJCSpsYWdfZGVtdXhfZnQ7CiAJLyogUHJvdGVjdCBmbG93IHN0ZWVyaW5nIGJ5cGFzcyBmbG93IHRhYmxlcwogCSAqIHdoZW4gYWRkL2RlbCBmbG93IHJ1bGVzLgpAQCAtMTQ3Niw2ICsxNDc3LDcgQEAgaW50IGJmcmVnbl90b191YXJfaW5kZXgoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsCiAJCQlib29sIGR5bl9iZnJlZyk7CiAKIGludCBtbHg1X2liX3FwX3NldF9jb3VudGVyKHN0cnVjdCBpYl9xcCAqcXAsIHN0cnVjdCByZG1hX2NvdW50ZXIgKmNvdW50ZXIpOwordTE2IG1seDVfaWJfZ2V0X2NvdW50ZXJzX2lkKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCB1OCBwb3J0X251bSk7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1X2liX2Nhbl91c2VfdW1yKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LAogCQkJCSAgICAgICBib29sIGRvX21vZGlmeV9hdG9taWMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYwppbmRleCAzNDAxZjVmLi4xZWZmMDMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMKQEAgLTc4NCwxOSArNzg0LDM3IEBAIHN0YXRpYyBpbnQgbXJfdW1lbV9nZXQoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEsCiAJCSAgICAgICBpbnQgKm5jb250LCBpbnQgKm9yZGVyKQogewogCXN0cnVjdCBpYl91bWVtICp1OwotCWludCBlcnI7CiAKIAkqdW1lbSA9IE5VTEw7CiAKLQl1ID0gaWJfdW1lbV9nZXQodWRhdGEsIHN0YXJ0LCBsZW5ndGgsIGFjY2Vzc19mbGFncywgMCk7Ci0JZXJyID0gUFRSX0VSUl9PUl9aRVJPKHUpOwotCWlmIChlcnIpIHsKLQkJbWx4NV9pYl9kYmcoZGV2LCAidW1lbSBnZXQgZmFpbGVkICglZClcbiIsIGVycik7Ci0JCXJldHVybiBlcnI7CisJaWYgKGFjY2Vzc19mbGFncyAmIElCX0FDQ0VTU19PTl9ERU1BTkQpIHsKKwkJc3RydWN0IGliX3VtZW1fb2RwICpvZHA7CisKKwkJb2RwID0gaWJfdW1lbV9vZHBfZ2V0KHVkYXRhLCBzdGFydCwgbGVuZ3RoLCBhY2Nlc3NfZmxhZ3MpOworCQlpZiAoSVNfRVJSKG9kcCkpIHsKKwkJCW1seDVfaWJfZGJnKGRldiwgInVtZW0gZ2V0IGZhaWxlZCAoJWxkKVxuIiwKKwkJCQkgICAgUFRSX0VSUihvZHApKTsKKwkJCXJldHVybiBQVFJfRVJSKG9kcCk7CisJCX0KKworCQl1ID0gJm9kcC0+dW1lbTsKKworCQkqcGFnZV9zaGlmdCA9IG9kcC0+cGFnZV9zaGlmdDsKKwkJKm5jb250ID0gaWJfdW1lbV9vZHBfbnVtX3BhZ2VzKG9kcCk7CisJCSpucGFnZXMgPSAqbmNvbnQgPDwgKCpwYWdlX3NoaWZ0IC0gUEFHRV9TSElGVCk7CisJCWlmIChvcmRlcikKKwkJCSpvcmRlciA9IGlsb2cyKHJvdW5kdXBfcG93X29mX3R3bygqbmNvbnQpKTsKKwl9IGVsc2UgeworCQl1ID0gaWJfdW1lbV9nZXQodWRhdGEsIHN0YXJ0LCBsZW5ndGgsIGFjY2Vzc19mbGFncywgMCk7CisJCWlmIChJU19FUlIodSkpIHsKKwkJCW1seDVfaWJfZGJnKGRldiwgInVtZW0gZ2V0IGZhaWxlZCAoJWxkKVxuIiwgUFRSX0VSUih1KSk7CisJCQlyZXR1cm4gUFRSX0VSUih1KTsKKwkJfQorCisJCW1seDVfaWJfY29udF9wYWdlcyh1LCBzdGFydCwgTUxYNV9NS0VZX1BBR0VfU0hJRlRfTUFTSywgbnBhZ2VzLAorCQkJCSAgIHBhZ2Vfc2hpZnQsIG5jb250LCBvcmRlcik7CiAJfQogCi0JbWx4NV9pYl9jb250X3BhZ2VzKHUsIHN0YXJ0LCBNTFg1X01LRVlfUEFHRV9TSElGVF9NQVNLLCBucGFnZXMsCi0JCQkgICBwYWdlX3NoaWZ0LCBuY29udCwgb3JkZXIpOwogCWlmICghKm5wYWdlcykgewogCQltbHg1X2liX3dhcm4oZGV2LCAiYXZvaWQgemVybyByZWdpb25cbiIpOwogCQlpYl91bWVtX3JlbGVhc2UodSk7CkBAIC0xNTk5LDcgKzE2MTcsNyBAQCBzdGF0aWMgdm9pZCBkZXJlZ19tcihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IG1seDVfaWJfbXIgKm1yKQogCQkvKiBXYWl0IGZvciBhbGwgcnVubmluZyBwYWdlLWZhdWx0IGhhbmRsZXJzIHRvIGZpbmlzaC4gKi8KIAkJc3luY2hyb25pemVfc3JjdSgmZGV2LT5tcl9zcmN1KTsKIAkJLyogRGVzdHJveSBhbGwgcGFnZSBtYXBwaW5ncyAqLwotCQlpZiAodW1lbV9vZHAtPnBhZ2VfbGlzdCkKKwkJaWYgKCF1bWVtX29kcC0+aXNfaW1wbGljaXRfb2RwKQogCQkJbWx4NV9pYl9pbnZhbGlkYXRlX3JhbmdlKHVtZW1fb2RwLAogCQkJCQkJIGliX3VtZW1fc3RhcnQodW1lbV9vZHApLAogCQkJCQkJIGliX3VtZW1fZW5kKHVtZW1fb2RwKSk7CkBAIC0xNjEwLDcgKzE2MjgsNyBAQCBzdGF0aWMgdm9pZCBkZXJlZ19tcihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IG1seDVfaWJfbXIgKm1yKQogCQkgKiBzbyB0aGF0IHRoZXJlIHdpbGwgbm90IGJlIGFueSBpbnZhbGlkYXRpb25zIGluCiAJCSAqIGZsaWdodCwgbG9va2luZyBhdCB0aGUgKm1yIHN0cnVjdC4KIAkJICovCi0JCWliX3VtZW1fcmVsZWFzZSh1bWVtKTsKKwkJaWJfdW1lbV9vZHBfcmVsZWFzZSh1bWVtX29kcCk7CiAJCWF0b21pY19zdWIobnBhZ2VzLCAmZGV2LT5tZGV2LT5wcml2LnJlZ19wYWdlcyk7CiAKIAkJLyogQXZvaWQgZG91YmxlLWZyZWVpbmcgdGhlIHVtZW0uICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9vZHAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L29kcC5jCmluZGV4IDBhNTk5MTIuLjJlOWI0MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L29kcC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L29kcC5jCkBAIC0xODQsNyArMTg0LDcgQEAgdm9pZCBtbHg1X29kcF9wb3B1bGF0ZV9rbG0oc3RydWN0IG1seDVfa2xtICpwa2xtLCBzaXplX3Qgb2Zmc2V0LAogCWZvciAoaSA9IDA7IGkgPCBuZW50cmllczsgaSsrLCBwa2xtKyspIHsKIAkJcGtsbS0+YmNvdW50ID0gY3B1X3RvX2JlMzIoTUxYNV9JTVJfTVRUX1NJWkUpOwogCQl2YSA9IChvZmZzZXQgKyBpKSAqIE1MWDVfSU1SX01UVF9TSVpFOwotCQlpZiAob2RwICYmIG9kcC0+dW1lbS5hZGRyZXNzID09IHZhKSB7CisJCWlmIChvZHAgJiYgaWJfdW1lbV9zdGFydChvZHApID09IHZhKSB7CiAJCQlzdHJ1Y3QgbWx4NV9pYl9tciAqbXR0ID0gb2RwLT5wcml2YXRlOwogCiAJCQlwa2xtLT5rZXkgPSBjcHVfdG9fYmUzMihtdHQtPmlibXIubGtleSk7CkBAIC0yMDYsNyArMjA2LDcgQEAgc3RhdGljIHZvaWQgbXJfbGVhZl9mcmVlX2FjdGlvbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJbXItPnBhcmVudCA9IE5VTEw7CiAJc3luY2hyb25pemVfc3JjdSgmbXItPmRldi0+bXJfc3JjdSk7CiAKLQlpYl91bWVtX3JlbGVhc2UoJm9kcC0+dW1lbSk7CisJaWJfdW1lbV9vZHBfcmVsZWFzZShvZHApOwogCWlmIChpbXItPmxpdmUpCiAJCW1seDVfaWJfdXBkYXRlX3hsdChpbXIsIGlkeCwgMSwgMCwKIAkJCQkgICBNTFg1X0lCX1VQRF9YTFRfSU5ESVJFQ1QgfApAQCAtMzg2LDcgKzM4Niw3IEBAIHN0YXRpYyB2b2lkIG1seDVfaWJfcGFnZV9mYXVsdF9yZXN1bWUoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqaW1wbGljaXRfbXJfYWxsb2Moc3RydWN0IGliX3BkICpwZCwKLQkJCQkJICAgIHN0cnVjdCBpYl91bWVtICp1bWVtLAorCQkJCQkgICAgc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCwKIAkJCQkJICAgIGJvb2wga3NtLCBpbnQgYWNjZXNzX2ZsYWdzKQogewogCXN0cnVjdCBtbHg1X2liX2RldiAqZGV2ID0gdG9fbWRldihwZC0+ZGV2aWNlKTsKQEAgLTQwNCw3ICs0MDQsNyBAQCBzdGF0aWMgc3RydWN0IG1seDVfaWJfbXIgKmltcGxpY2l0X21yX2FsbG9jKHN0cnVjdCBpYl9wZCAqcGQsCiAJbXItPmRldiA9IGRldjsKIAltci0+YWNjZXNzX2ZsYWdzID0gYWNjZXNzX2ZsYWdzOwogCW1yLT5tbWtleS5pb3ZhID0gMDsKLQltci0+dW1lbSA9IHVtZW07CisJbXItPnVtZW0gPSAmdW1lbV9vZHAtPnVtZW07CiAKIAlpZiAoa3NtKSB7CiAJCWVyciA9IG1seDVfaWJfdXBkYXRlX3hsdChtciwgMCwKQEAgLTQ2NCwxOCArNDY0LDE3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfdW1lbV9vZHAgKmltcGxpY2l0X21yX2dldF9kYXRhKHN0cnVjdCBtbHg1X2liX21yICptciwKIAkJaWYgKG5lbnRyaWVzKQogCQkJbmVudHJpZXMrKzsKIAl9IGVsc2UgewotCQlvZHAgPSBpYl9hbGxvY19vZHBfdW1lbShvZHBfbXIsIGFkZHIsCi0JCQkJCU1MWDVfSU1SX01UVF9TSVpFKTsKKwkJb2RwID0gaWJfdW1lbV9vZHBfYWxsb2NfY2hpbGQob2RwX21yLCBhZGRyLCBNTFg1X0lNUl9NVFRfU0laRSk7CiAJCWlmIChJU19FUlIob2RwKSkgewogCQkJbXV0ZXhfdW5sb2NrKCZvZHBfbXItPnVtZW1fbXV0ZXgpOwogCQkJcmV0dXJuIEVSUl9DQVNUKG9kcCk7CiAJCX0KIAotCQltdHQgPSBpbXBsaWNpdF9tcl9hbGxvYyhtci0+aWJtci5wZCwgJm9kcC0+dW1lbSwgMCwKKwkJbXR0ID0gaW1wbGljaXRfbXJfYWxsb2MobXItPmlibXIucGQsIG9kcCwgMCwKIAkJCQkJbXItPmFjY2Vzc19mbGFncyk7CiAJCWlmIChJU19FUlIobXR0KSkgewogCQkJbXV0ZXhfdW5sb2NrKCZvZHBfbXItPnVtZW1fbXV0ZXgpOwotCQkJaWJfdW1lbV9yZWxlYXNlKCZvZHAtPnVtZW0pOworCQkJaWJfdW1lbV9vZHBfcmVsZWFzZShvZHApOwogCQkJcmV0dXJuIEVSUl9DQVNUKG10dCk7CiAJCX0KIApAQCAtNDk3LDcgKzQ5Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfdW1lbV9vZHAgKmltcGxpY2l0X21yX2dldF9kYXRhKHN0cnVjdCBtbHg1X2liX21yICptciwKIAlhZGRyICs9IE1MWDVfSU1SX01UVF9TSVpFOwogCWlmICh1bmxpa2VseShhZGRyIDwgaW9fdmlydCArIGJjbnQpKSB7CiAJCW9kcCA9IG9kcF9uZXh0KG9kcCk7Ci0JCWlmIChvZHAgJiYgb2RwLT51bWVtLmFkZHJlc3MgIT0gYWRkcikKKwkJaWYgKG9kcCAmJiBpYl91bWVtX3N0YXJ0KG9kcCkgIT0gYWRkcikKIAkJCW9kcCA9IE5VTEw7CiAJCWdvdG8gbmV4dF9tcjsKIAl9CkBAIC01MjEsMTkgKzUyMCwxOSBAQCBzdHJ1Y3QgbWx4NV9pYl9tciAqbWx4NV9pYl9hbGxvY19pbXBsaWNpdF9tcihzdHJ1Y3QgbWx4NV9pYl9wZCAqcGQsCiAJCQkJCSAgICAgaW50IGFjY2Vzc19mbGFncykKIHsKIAlzdHJ1Y3QgbWx4NV9pYl9tciAqaW1yOwotCXN0cnVjdCBpYl91bWVtICp1bWVtOworCXN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9vZHA7CiAKLQl1bWVtID0gaWJfdW1lbV9nZXQodWRhdGEsIDAsIDAsIGFjY2Vzc19mbGFncywgMCk7Ci0JaWYgKElTX0VSUih1bWVtKSkKLQkJcmV0dXJuIEVSUl9DQVNUKHVtZW0pOworCXVtZW1fb2RwID0gaWJfdW1lbV9vZHBfYWxsb2NfaW1wbGljaXQodWRhdGEsIGFjY2Vzc19mbGFncyk7CisJaWYgKElTX0VSUih1bWVtX29kcCkpCisJCXJldHVybiBFUlJfQ0FTVCh1bWVtX29kcCk7CiAKLQlpbXIgPSBpbXBsaWNpdF9tcl9hbGxvYygmcGQtPmlicGQsIHVtZW0sIDEsIGFjY2Vzc19mbGFncyk7CisJaW1yID0gaW1wbGljaXRfbXJfYWxsb2MoJnBkLT5pYnBkLCB1bWVtX29kcCwgMSwgYWNjZXNzX2ZsYWdzKTsKIAlpZiAoSVNfRVJSKGltcikpIHsKLQkJaWJfdW1lbV9yZWxlYXNlKHVtZW0pOworCQlpYl91bWVtX29kcF9yZWxlYXNlKHVtZW1fb2RwKTsKIAkJcmV0dXJuIEVSUl9DQVNUKGltcik7CiAJfQogCi0JaW1yLT51bWVtID0gdW1lbTsKKwlpbXItPnVtZW0gPSAmdW1lbV9vZHAtPnVtZW07CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmaW1yLT5xX2xlYWZfZnJlZSk7CiAJYXRvbWljX3NldCgmaW1yLT5udW1fbGVhZl9mcmVlLCAwKTsKIAlhdG9taWNfc2V0KCZpbXItPm51bV9wZW5kaW5nX3ByZWZldGNoLCAwKTsKQEAgLTU0MSwzNCArNTQwLDMxIEBAIHN0cnVjdCBtbHg1X2liX21yICptbHg1X2liX2FsbG9jX2ltcGxpY2l0X21yKHN0cnVjdCBtbHg1X2liX3BkICpwZCwKIAlyZXR1cm4gaW1yOwogfQogCi1zdGF0aWMgaW50IG1yX2xlYWZfZnJlZShzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwLCB1NjQgc3RhcnQsIHU2NCBlbmQsCi0JCQl2b2lkICpjb29raWUpCi17Ci0Jc3RydWN0IG1seDVfaWJfbXIgKm1yID0gdW1lbV9vZHAtPnByaXZhdGUsICppbXIgPSBjb29raWU7Ci0KLQlpZiAobXItPnBhcmVudCAhPSBpbXIpCi0JCXJldHVybiAwOwotCi0JaWJfdW1lbV9vZHBfdW5tYXBfZG1hX3BhZ2VzKHVtZW1fb2RwLCBpYl91bWVtX3N0YXJ0KHVtZW1fb2RwKSwKLQkJCQkgICAgaWJfdW1lbV9lbmQodW1lbV9vZHApKTsKLQotCWlmICh1bWVtX29kcC0+ZHlpbmcpCi0JCXJldHVybiAwOwotCi0JV1JJVEVfT05DRSh1bWVtX29kcC0+ZHlpbmcsIDEpOwotCWF0b21pY19pbmMoJmltci0+bnVtX2xlYWZfZnJlZSk7Ci0Jc2NoZWR1bGVfd29yaygmdW1lbV9vZHAtPndvcmspOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHZvaWQgbWx4NV9pYl9mcmVlX2ltcGxpY2l0X21yKHN0cnVjdCBtbHg1X2liX21yICppbXIpCiB7CiAJc3RydWN0IGliX3Vjb250ZXh0X3Blcl9tbSAqcGVyX21tID0gbXJfdG9fcGVyX21tKGltcik7CisJc3RydWN0IHJiX25vZGUgKm5vZGU7CiAKIAlkb3duX3JlYWQoJnBlcl9tbS0+dW1lbV9yd3NlbSk7Ci0JcmJ0X2liX3VtZW1fZm9yX2VhY2hfaW5fcmFuZ2UoJnBlcl9tbS0+dW1lbV90cmVlLCAwLCBVTExPTkdfTUFYLAotCQkJCSAgICAgIG1yX2xlYWZfZnJlZSwgdHJ1ZSwgaW1yKTsKKwlmb3IgKG5vZGUgPSByYl9maXJzdF9jYWNoZWQoJnBlcl9tbS0+dW1lbV90cmVlKTsgbm9kZTsKKwkgICAgIG5vZGUgPSByYl9uZXh0KG5vZGUpKSB7CisJCXN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9vZHAgPQorCQkJcmJfZW50cnkobm9kZSwgc3RydWN0IGliX3VtZW1fb2RwLCBpbnRlcnZhbF90cmVlLnJiKTsKKwkJc3RydWN0IG1seDVfaWJfbXIgKm1yID0gdW1lbV9vZHAtPnByaXZhdGU7CisKKwkJaWYgKG1yLT5wYXJlbnQgIT0gaW1yKQorCQkJY29udGludWU7CisKKwkJaWJfdW1lbV9vZHBfdW5tYXBfZG1hX3BhZ2VzKHVtZW1fb2RwLCBpYl91bWVtX3N0YXJ0KHVtZW1fb2RwKSwKKwkJCQkJICAgIGliX3VtZW1fZW5kKHVtZW1fb2RwKSk7CisKKwkJaWYgKHVtZW1fb2RwLT5keWluZykKKwkJCWNvbnRpbnVlOworCisJCVdSSVRFX09OQ0UodW1lbV9vZHAtPmR5aW5nLCAxKTsKKwkJYXRvbWljX2luYygmaW1yLT5udW1fbGVhZl9mcmVlKTsKKwkJc2NoZWR1bGVfd29yaygmdW1lbV9vZHAtPndvcmspOworCX0KIAl1cF9yZWFkKCZwZXJfbW0tPnVtZW1fcndzZW0pOwogCiAJd2FpdF9ldmVudChpbXItPnFfbGVhZl9mcmVlLCAhYXRvbWljX3JlYWQoJmltci0+bnVtX2xlYWZfZnJlZSkpOwpAQCAtNTg5LDcgKzU4NSw3IEBAIHN0YXRpYyBpbnQgcGFnZWZhdWx0X21yKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9pYl9tciAqbXIsCiAJc3RydWN0IGliX3VtZW1fb2RwICpvZHA7CiAJc2l6ZV90IHNpemU7CiAKLQlpZiAoIW9kcF9tci0+cGFnZV9saXN0KSB7CisJaWYgKG9kcF9tci0+aXNfaW1wbGljaXRfb2RwKSB7CiAJCW9kcCA9IGltcGxpY2l0X21yX2dldF9kYXRhKG1yLCBpb192aXJ0LCBiY250KTsKIAogCQlpZiAoSVNfRVJSKG9kcCkpCkBAIC02MDcsNyArNjAzLDcgQEAgc3RhdGljIGludCBwYWdlZmF1bHRfbXIoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2liX21yICptciwKIAlzdGFydF9pZHggPSAoaW9fdmlydCAtIChtci0+bW1rZXkuaW92YSAmIHBhZ2VfbWFzaykpID4+IHBhZ2Vfc2hpZnQ7CiAJYWNjZXNzX21hc2sgPSBPRFBfUkVBRF9BTExPV0VEX0JJVDsKIAotCWlmIChwcmVmZXRjaCAmJiAhZG93bmdyYWRlICYmICFtci0+dW1lbS0+d3JpdGFibGUpIHsKKwlpZiAocHJlZmV0Y2ggJiYgIWRvd25ncmFkZSAmJiAhb2RwLT51bWVtLndyaXRhYmxlKSB7CiAJCS8qIHByZWZldGNoIHdpdGggd3JpdGUtYWNjZXNzIG11c3QKIAkJICogYmUgc3VwcG9ydGVkIGJ5IHRoZSBNUgogCQkgKi8KQEAgLTYxNSw3ICs2MTEsNyBAQCBzdGF0aWMgaW50IHBhZ2VmYXVsdF9tcihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IG1seDVfaWJfbXIgKm1yLAogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAobXItPnVtZW0tPndyaXRhYmxlICYmICFkb3duZ3JhZGUpCisJaWYgKG9kcC0+dW1lbS53cml0YWJsZSAmJiAhZG93bmdyYWRlKQogCQlhY2Nlc3NfbWFzayB8PSBPRFBfV1JJVEVfQUxMT1dFRF9CSVQ7CiAKIAljdXJyZW50X3NlcSA9IFJFQURfT05DRShvZHAtPm5vdGlmaWVyc19zZXEpOwpAQCAtNjI1LDggKzYyMSw4IEBAIHN0YXRpYyBpbnQgcGFnZWZhdWx0X21yKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9pYl9tciAqbXIsCiAJICovCiAJc21wX3JtYigpOwogCi0JcmV0ID0gaWJfdW1lbV9vZHBfbWFwX2RtYV9wYWdlcyh0b19pYl91bWVtX29kcChtci0+dW1lbSksIGlvX3ZpcnQsIHNpemUsCi0JCQkJCWFjY2Vzc19tYXNrLCBjdXJyZW50X3NlcSk7CisJcmV0ID0gaWJfdW1lbV9vZHBfbWFwX2RtYV9wYWdlcyhvZHAsIGlvX3ZpcnQsIHNpemUsIGFjY2Vzc19tYXNrLAorCQkJCQljdXJyZW50X3NlcSk7CiAKIAlpZiAocmV0IDwgMCkKIAkJZ290byBvdXQ7CkBAIC02MzQsOCArNjMwLDcgQEAgc3RhdGljIGludCBwYWdlZmF1bHRfbXIoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2liX21yICptciwKIAlucCA9IHJldDsKIAogCW11dGV4X2xvY2soJm9kcC0+dW1lbV9tdXRleCk7Ci0JaWYgKCFpYl91bWVtX21tdV9ub3RpZmllcl9yZXRyeSh0b19pYl91bWVtX29kcChtci0+dW1lbSksCi0JCQkJCWN1cnJlbnRfc2VxKSkgeworCWlmICghaWJfdW1lbV9tbXVfbm90aWZpZXJfcmV0cnkob2RwLCBjdXJyZW50X3NlcSkpIHsKIAkJLyoKIAkJICogTm8gbmVlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBNVFRzIHJlYWxseSBiZWxvbmcgdG8KIAkJICogdGhpcyBNUiwgc2luY2UgaWJfdW1lbV9vZHBfbWFwX2RtYV9wYWdlcyBhbHJlYWR5CkBAIC02NjgsNyArNjYzLDcgQEAgc3RhdGljIGludCBwYWdlZmF1bHRfbXIoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2liX21yICptciwKIAogCQlpb192aXJ0ICs9IHNpemU7CiAJCW5leHQgPSBvZHBfbmV4dChvZHApOwotCQlpZiAodW5saWtlbHkoIW5leHQgfHwgbmV4dC0+dW1lbS5hZGRyZXNzICE9IGlvX3ZpcnQpKSB7CisJCWlmICh1bmxpa2VseSghbmV4dCB8fCBpYl91bWVtX3N0YXJ0KG5leHQpICE9IGlvX3ZpcnQpKSB7CiAJCQltbHg1X2liX2RiZyhkZXYsICJuZXh0IGltcGxpY2l0IGxlYWYgcmVtb3ZlZCBhdCAweCVsbHguIGdvdCAlcFxuIiwKIAkJCQkgICAgaW9fdmlydCwgbmV4dCk7CiAJCQlyZXR1cm4gLUVBR0FJTjsKQEAgLTk4NywxNyArOTgyLDYgQEAgc3RhdGljIGludCBwYWdlZmF1bHRfZGF0YV9zZWdtZW50cyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwKIAlyZXR1cm4gcmV0IDwgMCA/IHJldCA6IG5wYWdlczsKIH0KIAotc3RhdGljIGNvbnN0IHUzMiBtbHg1X2liX29kcF9vcGNvZGVfY2FwW10gPSB7Ci0JW01MWDVfT1BDT0RFX1NFTkRdCSAgICAgICA9IElCX09EUF9TVVBQT1JUX1NFTkQsCi0JW01MWDVfT1BDT0RFX1NFTkRfSU1NXQkgICAgICAgPSBJQl9PRFBfU1VQUE9SVF9TRU5ELAotCVtNTFg1X09QQ09ERV9TRU5EX0lOVkFMXSAgICAgICA9IElCX09EUF9TVVBQT1JUX1NFTkQsCi0JW01MWDVfT1BDT0RFX1JETUFfV1JJVEVdICAgICAgID0gSUJfT0RQX1NVUFBPUlRfV1JJVEUsCi0JW01MWDVfT1BDT0RFX1JETUFfV1JJVEVfSU1NXSAgID0gSUJfT0RQX1NVUFBPUlRfV1JJVEUsCi0JW01MWDVfT1BDT0RFX1JETUFfUkVBRF0JICAgICAgID0gSUJfT0RQX1NVUFBPUlRfUkVBRCwKLQlbTUxYNV9PUENPREVfQVRPTUlDX0NTXQkgICAgICAgPSBJQl9PRFBfU1VQUE9SVF9BVE9NSUMsCi0JW01MWDVfT1BDT0RFX0FUT01JQ19GQV0JICAgICAgID0gSUJfT0RQX1NVUFBPUlRfQVRPTUlDLAotfTsKLQogLyoKICAqIFBhcnNlIGluaXRpYXRvciBXUUUuIEFkdmFuY2VzIHRoZSB3cWUgcG9pbnRlciB0byBwb2ludCBhdCB0aGUKICAqIHNjYXR0ZXItZ2F0aGVyIGxpc3QsIGFuZCBzZXQgd3FlX2VuZCB0byB0aGUgZW5kIG9mIHRoZSBXUUUuCkBAIC0xMDA4LDEyICs5OTIsOCBAQCBzdGF0aWMgaW50IG1seDVfaWJfbXJfaW5pdGlhdG9yX3BmYXVsdF9oYW5kbGVyKAogewogCXN0cnVjdCBtbHg1X3dxZV9jdHJsX3NlZyAqY3RybCA9ICp3cWU7CiAJdTE2IHdxZV9pbmRleCA9IHBmYXVsdC0+d3FlLndxZV9pbmRleDsKLQl1MzIgdHJhbnNwb3J0X2NhcHM7CiAJc3RydWN0IG1seDVfYmFzZV9hdiAqYXY7CiAJdW5zaWduZWQgZHMsIG9wY29kZTsKLSNpZiBkZWZpbmVkKERFQlVHKQotCXUzMiBjdHJsX3dxZV9pbmRleCwgY3RybF9xcG47Ci0jZW5kaWYKIAl1MzIgcXBuID0gcXAtPnRyYW5zX3FwLmJhc2UubXFwLnFwbjsKIAogCWRzID0gYmUzMl90b19jcHUoY3RybC0+cXBuX2RzKSAmIE1MWDVfV1FFX0NUUkxfRFNfTUFTSzsKQEAgLTEwMjksNTggKzEwMDksMTcgQEAgc3RhdGljIGludCBtbHg1X2liX21yX2luaXRpYXRvcl9wZmF1bHRfaGFuZGxlcigKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQogCi0jaWYgZGVmaW5lZChERUJVRykKLQljdHJsX3dxZV9pbmRleCA9IChiZTMyX3RvX2NwdShjdHJsLT5vcG1vZF9pZHhfb3Bjb2RlKSAmCi0JCQlNTFg1X1dRRV9DVFJMX1dRRV9JTkRFWF9NQVNLKSA+PgotCQkJTUxYNV9XUUVfQ1RSTF9XUUVfSU5ERVhfU0hJRlQ7Ci0JaWYgKHdxZV9pbmRleCAhPSBjdHJsX3dxZV9pbmRleCkgewotCQltbHg1X2liX2VycihkZXYsICJHb3QgV1FFIHdpdGggaW52YWxpZCB3cWVfaW5kZXguIHdxZV9pbmRleD0weCV4LCBxcG49MHgleCBjdHJsLT53cWVfaW5kZXg9MHgleFxuIiwKLQkJCSAgICB3cWVfaW5kZXgsIHFwbiwKLQkJCSAgICBjdHJsX3dxZV9pbmRleCk7Ci0JCXJldHVybiAtRUZBVUxUOwotCX0KLQotCWN0cmxfcXBuID0gKGJlMzJfdG9fY3B1KGN0cmwtPnFwbl9kcykgJiBNTFg1X1dRRV9DVFJMX1FQTl9NQVNLKSA+PgotCQlNTFg1X1dRRV9DVFJMX1FQTl9TSElGVDsKLQlpZiAocXBuICE9IGN0cmxfcXBuKSB7Ci0JCW1seDVfaWJfZXJyKGRldiwgIkdvdCBXUUUgd2l0aCBpbmNvcnJlY3QgUVAgbnVtYmVyLiB3cWVfaW5kZXg9MHgleCwgcXBuPTB4JXggY3RybC0+cXBuPTB4JXhcbiIsCi0JCQkgICAgd3FlX2luZGV4LCBxcG4sCi0JCQkgICAgY3RybF9xcG4pOwotCQlyZXR1cm4gLUVGQVVMVDsKLQl9Ci0jZW5kaWYgLyogREVCVUcgKi8KLQogCSp3cWVfZW5kID0gKndxZSArIGRzICogTUxYNV9XUUVfRFNfVU5JVFM7CiAJKndxZSArPSBzaXplb2YoKmN0cmwpOwogCiAJb3Bjb2RlID0gYmUzMl90b19jcHUoY3RybC0+b3Btb2RfaWR4X29wY29kZSkgJgogCQkgTUxYNV9XUUVfQ1RSTF9PUENPREVfTUFTSzsKIAotCXN3aXRjaCAocXAtPmlicXAucXBfdHlwZSkgewotCWNhc2UgSUJfUVBUX1hSQ19JTkk6CisJaWYgKHFwLT5pYnFwLnFwX3R5cGUgPT0gSUJfUVBUX1hSQ19JTkkpCiAJCSp3cWUgKz0gc2l6ZW9mKHN0cnVjdCBtbHg1X3dxZV94cmNfc2VnKTsKLQkJdHJhbnNwb3J0X2NhcHMgPSBkZXYtPm9kcF9jYXBzLnBlcl90cmFuc3BvcnRfY2Fwcy54cmNfb2RwX2NhcHM7Ci0JCWJyZWFrOwotCWNhc2UgSUJfUVBUX1JDOgotCQl0cmFuc3BvcnRfY2FwcyA9IGRldi0+b2RwX2NhcHMucGVyX3RyYW5zcG9ydF9jYXBzLnJjX29kcF9jYXBzOwotCQlicmVhazsKLQljYXNlIElCX1FQVF9VRDoKLQkJdHJhbnNwb3J0X2NhcHMgPSBkZXYtPm9kcF9jYXBzLnBlcl90cmFuc3BvcnRfY2Fwcy51ZF9vZHBfY2FwczsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJbWx4NV9pYl9lcnIoZGV2LCAiT0RQIGZhdWx0IG9uIFFQIG9mIGFuIHVuc3VwcG9ydGVkIHRyYW5zcG9ydCAweCV4XG4iLAotCQkJICAgIHFwLT5pYnFwLnFwX3R5cGUpOwotCQlyZXR1cm4gLUVGQVVMVDsKLQl9CiAKLQlpZiAodW5saWtlbHkob3Bjb2RlID49IEFSUkFZX1NJWkUobWx4NV9pYl9vZHBfb3Bjb2RlX2NhcCkgfHwKLQkJICAgICAhKHRyYW5zcG9ydF9jYXBzICYgbWx4NV9pYl9vZHBfb3Bjb2RlX2NhcFtvcGNvZGVdKSkpIHsKLQkJbWx4NV9pYl9lcnIoZGV2LCAiT0RQIGZhdWx0IG9uIFFQIG9mIGFuIHVuc3VwcG9ydGVkIG9wY29kZSAweCV4XG4iLAotCQkJICAgIG9wY29kZSk7Ci0JCXJldHVybiAtRUZBVUxUOwotCX0KLQotCWlmIChxcC0+aWJxcC5xcF90eXBlID09IElCX1FQVF9VRCkgeworCWlmIChxcC0+aWJxcC5xcF90eXBlID09IElCX1FQVF9VRCB8fAorCSAgICBxcC0+cXBfc3ViX3R5cGUgPT0gTUxYNV9JQl9RUFRfRENJKSB7CiAJCWF2ID0gKndxZTsKIAkJaWYgKGF2LT5kcXBfZGN0ICYgY3B1X3RvX2JlMzIoTUxYNV9FWFRFTkRFRF9VRF9BVikpCiAJCQkqd3FlICs9IHNpemVvZihzdHJ1Y3QgbWx4NV9hdik7CkBAIC0xMTQzLDE5ICsxMDgyLDYgQEAgc3RhdGljIGludCBtbHg1X2liX21yX3Jlc3BvbmRlcl9wZmF1bHRfaGFuZGxlcl9ycShzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQogCi0Jc3dpdGNoIChxcC0+aWJxcC5xcF90eXBlKSB7Ci0JY2FzZSBJQl9RUFRfUkM6Ci0JCWlmICghKGRldi0+b2RwX2NhcHMucGVyX3RyYW5zcG9ydF9jYXBzLnJjX29kcF9jYXBzICYKLQkJICAgICAgSUJfT0RQX1NVUFBPUlRfUkVDVikpCi0JCQlnb3RvIGludmFsaWRfdHJhbnNwb3J0X29yX29wY29kZTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLWludmFsaWRfdHJhbnNwb3J0X29yX29wY29kZToKLQkJbWx4NV9pYl9lcnIoZGV2LCAiT0RQIGZhdWx0IG9uIFFQIG9mIGFuIHVuc3VwcG9ydGVkIHRyYW5zcG9ydC4gdHJhbnNwb3J0OiAweCV4XG4iLAotCQkJICAgIHFwLT5pYnFwLnFwX3R5cGUpOwotCQlyZXR1cm4gLUVGQVVMVDsKLQl9Ci0KIAkqd3FlX2VuZCA9IHdxZSArIHdxZV9zaXplOwogCiAJcmV0dXJuIDA7CkBAIC0xMjA1LDcgKzExMzEsNyBAQCBzdGF0aWMgdm9pZCBtbHg1X2liX21yX3dxZV9wZmF1bHRfaGFuZGxlcihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwKIHsKIAlib29sIHNxID0gcGZhdWx0LT50eXBlICYgTUxYNV9QRkFVTFRfUkVRVUVTVE9SOwogCXUxNiB3cWVfaW5kZXggPSBwZmF1bHQtPndxZS53cWVfaW5kZXg7Ci0Jdm9pZCAqd3FlID0gTlVMTCwgKndxZV9lbmQgPSBOVUxMOworCXZvaWQgKndxZSwgKndxZV9zdGFydCA9IE5VTEwsICp3cWVfZW5kID0gTlVMTDsKIAl1MzIgYnl0ZXNfbWFwcGVkLCB0b3RhbF93cWVfYnl0ZXM7CiAJc3RydWN0IG1seDVfY29yZV9yc2NfY29tbW9uICpyZXM7CiAJaW50IHJlc3VtZV93aXRoX2Vycm9yID0gMTsKQEAgLTEyMjYsMTIgKzExNTIsMTMgQEAgc3RhdGljIHZvaWQgbWx4NV9pYl9tcl93cWVfcGZhdWx0X2hhbmRsZXIoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsCiAJCWdvdG8gcmVzb2x2ZV9wYWdlX2ZhdWx0OwogCX0KIAotCXdxZSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwpOwotCWlmICghd3FlKSB7CisJd3FlX3N0YXJ0ID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CisJaWYgKCF3cWVfc3RhcnQpIHsKIAkJbWx4NV9pYl9lcnIoZGV2LCAiRXJyb3IgYWxsb2NhdGluZyBtZW1vcnkgZm9yIElPIHBhZ2UgZmF1bHQgaGFuZGxpbmcuXG4iKTsKIAkJZ290byByZXNvbHZlX3BhZ2VfZmF1bHQ7CiAJfQogCisJd3FlID0gd3FlX3N0YXJ0OwogCXFwID0gKHJlcy0+cmVzID09IE1MWDVfUkVTX1FQKSA/IHJlc190b19xcChyZXMpIDogTlVMTDsKIAlpZiAocXAgJiYgc3EpIHsKIAkJcmV0ID0gbWx4NV9pYl9yZWFkX3VzZXJfd3FlX3NxKHFwLCB3cWVfaW5kZXgsIHdxZSwgUEFHRV9TSVpFLApAQCAtMTI4Niw3ICsxMjEzLDcgQEAgc3RhdGljIHZvaWQgbWx4NV9pYl9tcl93cWVfcGZhdWx0X2hhbmRsZXIoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsCiAJCSAgICBwZmF1bHQtPndxZS53cV9udW0sIHJlc3VtZV93aXRoX2Vycm9yLAogCQkgICAgcGZhdWx0LT50eXBlKTsKIAltbHg1X2NvcmVfcmVzX3B1dChyZXMpOwotCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZyl3cWUpOworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZyl3cWVfc3RhcnQpOwogfQogCiBzdGF0aWMgaW50IHBhZ2VzX2luX3JhbmdlKHU2NCBhZGRyZXNzLCB1MzIgbGVuZ3RoKQpAQCAtMTYxOCw2ICsxNTQ1LDcgQEAgdm9pZCBtbHg1X29kcF9pbml0X21yX2NhY2hlX2VudHJ5KHN0cnVjdCBtbHg1X2NhY2hlX2VudCAqZW50KQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGliX2RldmljZV9vcHMgbWx4NV9pYl9kZXZfb2RwX29wcyA9IHsKIAkuYWR2aXNlX21yID0gbWx4NV9pYl9hZHZpc2VfbXIsCisJLmludmFsaWRhdGVfcmFuZ2UgPSBtbHg1X2liX2ludmFsaWRhdGVfcmFuZ2UsCiB9OwogCiBpbnQgbWx4NV9pYl9vZHBfaW5pdF9vbmUoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9xcC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvcXAuYwppbmRleCA3Mjg2OWZmLi44OTM3ZDcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9xcC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L3FwLmMKQEAgLTMzODYsMTkgKzMzODYsMTYgQEAgc3RhdGljIGludCBfX21seDVfaWJfcXBfc2V0X2NvdW50ZXIoc3RydWN0IGliX3FwICpxcCwKIAlzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiA9IHRvX21kZXYocXAtPmRldmljZSk7CiAJc3RydWN0IG1seDVfaWJfcXAgKm1xcCA9IHRvX21xcChxcCk7CiAJc3RydWN0IG1seDVfcXBfY29udGV4dCBjb250ZXh0ID0ge307Ci0Jc3RydWN0IG1seDVfaWJfcG9ydCAqbWlicG9ydCA9IE5VTEw7CiAJc3RydWN0IG1seDVfaWJfcXBfYmFzZSAqYmFzZTsKIAl1MzIgc2V0X2lkOwogCiAJaWYgKCFNTFg1X0NBUF9HRU4oZGV2LT5tZGV2LCBydHMycnRzX3FwX2NvdW50ZXJzX3NldF9pZCkpCiAJCXJldHVybiAwOwogCi0JaWYgKGNvdW50ZXIpIHsKKwlpZiAoY291bnRlcikKIAkJc2V0X2lkID0gY291bnRlci0+aWQ7Ci0JfSBlbHNlIHsKLQkJbWlicG9ydCA9ICZkZXYtPnBvcnRbbXFwLT5wb3J0IC0gMV07Ci0JCXNldF9pZCA9IG1pYnBvcnQtPmNudHMuc2V0X2lkOwotCX0KKwllbHNlCisJCXNldF9pZCA9IG1seDVfaWJfZ2V0X2NvdW50ZXJzX2lkKGRldiwgbXFwLT5wb3J0IC0gMSk7CiAKIAliYXNlID0gJm1xcC0+dHJhbnNfcXAuYmFzZTsKIAljb250ZXh0LnFwX2NvdW50ZXJfc2V0X3Vzcl9wYWdlICY9IGNwdV90b19iZTMyKDB4ZmZmZmZmKTsKQEAgLTM0NTksNyArMzQ1Niw2IEBAIHN0YXRpYyBpbnQgX19tbHg1X2liX21vZGlmeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJc3RydWN0IG1seDVfaWJfY3EgKnNlbmRfY3EsICpyZWN2X2NxOwogCXN0cnVjdCBtbHg1X3FwX2NvbnRleHQgKmNvbnRleHQ7CiAJc3RydWN0IG1seDVfaWJfcGQgKnBkOwotCXN0cnVjdCBtbHg1X2liX3BvcnQgKm1pYnBvcnQgPSBOVUxMOwogCWVudW0gbWx4NV9xcF9zdGF0ZSBtbHg1X2N1ciwgbWx4NV9uZXc7CiAJZW51bSBtbHg1X3FwX29wdHBhciBvcHRwYXI7CiAJdTMyIHNldF9pZCA9IDA7CkBAIC0zNjI0LDExICszNjIwLDEwIEBAIHN0YXRpYyBpbnQgX19tbHg1X2liX21vZGlmeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsCiAJCWlmIChxcC0+ZmxhZ3MgJiBNTFg1X0lCX1FQX1VOREVSTEFZKQogCQkJcG9ydF9udW0gPSAwOwogCi0JCW1pYnBvcnQgPSAmZGV2LT5wb3J0W3BvcnRfbnVtXTsKIAkJaWYgKGlicXAtPmNvdW50ZXIpCiAJCQlzZXRfaWQgPSBpYnFwLT5jb3VudGVyLT5pZDsKIAkJZWxzZQotCQkJc2V0X2lkID0gbWlicG9ydC0+Y250cy5zZXRfaWQ7CisJCQlzZXRfaWQgPSBtbHg1X2liX2dldF9jb3VudGVyc19pZChkZXYsIHBvcnRfbnVtKTsKIAkJY29udGV4dC0+cXBfY291bnRlcl9zZXRfdXNyX3BhZ2UgfD0KIAkJCWNwdV90b19iZTMyKHNldF9pZCA8PCAyNCk7CiAJfQpAQCAtMzgxNyw2ICszODEyLDggQEAgc3RhdGljIGludCBtbHg1X2liX21vZGlmeV9kY3Qoc3RydWN0IGliX3FwICppYnFwLCBzdHJ1Y3QgaWJfcXBfYXR0ciAqYXR0ciwKIAogCWRjdGMgPSBNTFg1X0FERFJfT0YoY3JlYXRlX2RjdF9pbiwgcXAtPmRjdC5pbiwgZGN0X2NvbnRleHRfZW50cnkpOwogCWlmIChjdXJfc3RhdGUgPT0gSUJfUVBTX1JFU0VUICYmIG5ld19zdGF0ZSA9PSBJQl9RUFNfSU5JVCkgeworCQl1MTYgc2V0X2lkOworCiAJCXJlcXVpcmVkIHw9IElCX1FQX0FDQ0VTU19GTEFHUyB8IElCX1FQX1BLRVlfSU5ERVggfCBJQl9RUF9QT1JUOwogCQlpZiAoIWlzX3ZhbGlkX21hc2soYXR0cl9tYXNrLCByZXF1aXJlZCwgMCkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTM4NDMsNyArMzg0MCw5IEBAIHN0YXRpYyBpbnQgbWx4NV9pYl9tb2RpZnlfZGN0KHN0cnVjdCBpYl9xcCAqaWJxcCwgc3RydWN0IGliX3FwX2F0dHIgKmF0dHIsCiAJCX0KIAkJTUxYNV9TRVQoZGN0YywgZGN0YywgcGtleV9pbmRleCwgYXR0ci0+cGtleV9pbmRleCk7CiAJCU1MWDVfU0VUKGRjdGMsIGRjdGMsIHBvcnQsIGF0dHItPnBvcnRfbnVtKTsKLQkJTUxYNV9TRVQoZGN0YywgZGN0YywgY291bnRlcl9zZXRfaWQsIGRldi0+cG9ydFthdHRyLT5wb3J0X251bSAtIDFdLmNudHMuc2V0X2lkKTsKKworCQlzZXRfaWQgPSBtbHg1X2liX2dldF9jb3VudGVyc19pZChkZXYsIGF0dHItPnBvcnRfbnVtIC0gMSk7CisJCU1MWDVfU0VUKGRjdGMsIGRjdGMsIGNvdW50ZXJfc2V0X2lkLCBzZXRfaWQpOwogCiAJfSBlbHNlIGlmIChjdXJfc3RhdGUgPT0gSUJfUVBTX0lOSVQgJiYgbmV3X3N0YXRlID09IElCX1FQU19SVFIpIHsKIAkJc3RydWN0IG1seDVfaWJfbW9kaWZ5X3FwX3Jlc3AgcmVzcCA9IHt9OwpAQCAtNjM0NSwxMSArNjM0NCwxMyBAQCBpbnQgbWx4NV9pYl9tb2RpZnlfd3Eoc3RydWN0IGliX3dxICp3cSwgc3RydWN0IGliX3dxX2F0dHIgKndxX2F0dHIsCiAJfQogCiAJaWYgKGN1cnJfd3Ffc3RhdGUgPT0gSUJfV1FTX1JFU0VUICYmIHdxX3N0YXRlID09IElCX1dRU19SRFkpIHsKKwkJdTE2IHNldF9pZDsKKworCQlzZXRfaWQgPSBtbHg1X2liX2dldF9jb3VudGVyc19pZChkZXYsIDApOwogCQlpZiAoTUxYNV9DQVBfR0VOKGRldi0+bWRldiwgbW9kaWZ5X3JxX2NvdW50ZXJfc2V0X2lkKSkgewogCQkJTUxYNV9TRVQ2NChtb2RpZnlfcnFfaW4sIGluLCBtb2RpZnlfYml0bWFzaywKIAkJCQkgICBNTFg1X01PRElGWV9SUV9JTl9NT0RJRllfQklUTUFTS19SUV9DT1VOVEVSX1NFVF9JRCk7Ci0JCQlNTFg1X1NFVChycWMsIHJxYywgY291bnRlcl9zZXRfaWQsCi0JCQkJIGRldi0+cG9ydC0+Y250cy5zZXRfaWQpOworCQkJTUxYNV9TRVQocnFjLCBycWMsIGNvdW50ZXJfc2V0X2lkLCBzZXRfaWQpOwogCQl9IGVsc2UKIAkJCWRldl9pbmZvX29uY2UoCiAJCQkJJmRldi0+aWJfZGV2LmRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9vY3JkbWEvb2NyZG1hX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvb2NyZG1hL29jcmRtYV92ZXJicy5jCmluZGV4IGJjY2MxMTMuLmU4MjY3ZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9vY3JkbWEvb2NyZG1hX3ZlcmJzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L29jcmRtYS9vY3JkbWFfdmVyYnMuYwpAQCAtMTYzLDEwICsxNjMsMTAgQEAgaW50IG9jcmRtYV9xdWVyeV9wb3J0KHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LAogCW5ldGRldiA9IGRldi0+bmljX2luZm8ubmV0ZGV2OwogCWlmIChuZXRpZl9ydW5uaW5nKG5ldGRldikgJiYgbmV0aWZfb3Blcl91cChuZXRkZXYpKSB7CiAJCXBvcnRfc3RhdGUgPSBJQl9QT1JUX0FDVElWRTsKLQkJcHJvcHMtPnBoeXNfc3RhdGUgPSA1OworCQlwcm9wcy0+cGh5c19zdGF0ZSA9IElCX1BPUlRfUEhZU19TVEFURV9MSU5LX1VQOwogCX0gZWxzZSB7CiAJCXBvcnRfc3RhdGUgPSBJQl9QT1JUX0RPV047Ci0JCXByb3BzLT5waHlzX3N0YXRlID0gMzsKKwkJcHJvcHMtPnBoeXNfc3RhdGUgPSBJQl9QT1JUX1BIWVNfU1RBVEVfRElTQUJMRUQ7CiAJfQogCXByb3BzLT5tYXhfbXR1ID0gSUJfTVRVXzQwOTY7CiAJcHJvcHMtPmFjdGl2ZV9tdHUgPSBpYm9lX2dldF9tdHUobmV0ZGV2LT5tdHUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FlZHIvbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FlZHIvbWFpbi5jCmluZGV4IGY5N2IzZDYuLjUxMzZiODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xZWRyL21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWVkci9tYWluLmMKQEAgLTgyNiw3ICs4MjYsNyBAQCBzdGF0aWMgaW50IHFlZHJfaW5pdF9odyhzdHJ1Y3QgcWVkcl9kZXYgKmRldikKIAlpZiAocmMpCiAJCWdvdG8gb3V0OwogCi0JZGV2LT5kYl9hZGRyID0gKHZvaWQgX19pb21lbSAqKSh1aW50cHRyX3Qpb3V0X3BhcmFtcy5kcGlfYWRkcjsKKwlkZXYtPmRiX2FkZHIgPSBvdXRfcGFyYW1zLmRwaV9hZGRyOwogCWRldi0+ZGJfcGh5c19hZGRyID0gb3V0X3BhcmFtcy5kcGlfcGh5c19hZGRyOwogCWRldi0+ZGJfc2l6ZSA9IG91dF9wYXJhbXMuZHBpX3NpemU7CiAJZGV2LT5kcGkgPSBvdXRfcGFyYW1zLmRwaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xZWRyL3FlZHIuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xZWRyL3FlZHIuaAppbmRleCBhOTJjYTIyLi4wY2ZkODQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWVkci9xZWRyLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FlZHIvcWVkci5oCkBAIC0yMjksNyArMjI5LDcgQEAgc3RydWN0IHFlZHJfdWNvbnRleHQgewogCXN0cnVjdCBpYl91Y29udGV4dCBpYnVjb250ZXh0OwogCXN0cnVjdCBxZWRyX2RldiAqZGV2OwogCXN0cnVjdCBxZWRyX3BkICpwZDsKLQl1NjQgZHBpX2FkZHI7CisJdm9pZCBfX2lvbWVtICpkcGlfYWRkcjsKIAl1NjQgZHBpX3BoeXNfYWRkcjsKIAl1MzIgZHBpX3NpemU7CiAJdTE2IGRwaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xZWRyL3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWVkci92ZXJicy5jCmluZGV4IDI3ZDkwYTg0Li42ZjNjZTg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWVkci92ZXJicy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xZWRyL3ZlcmJzLmMKQEAgLTIyMSwxMCArMjIxLDEwIEBAIGludCBxZWRyX3F1ZXJ5X3BvcnQoc3RydWN0IGliX2RldmljZSAqaWJkZXYsIHU4IHBvcnQsIHN0cnVjdCBpYl9wb3J0X2F0dHIgKmF0dHIpCiAJLyogKmF0dHIgYmVpbmcgemVyb2VkIGJ5IHRoZSBjYWxsZXIsIGF2b2lkIHplcm9pbmcgaXQgaGVyZSAqLwogCWlmIChyZG1hX3BvcnQtPnBvcnRfc3RhdGUgPT0gUUVEX1JETUFfUE9SVF9VUCkgewogCQlhdHRyLT5zdGF0ZSA9IElCX1BPUlRfQUNUSVZFOwotCQlhdHRyLT5waHlzX3N0YXRlID0gNTsKKwkJYXR0ci0+cGh5c19zdGF0ZSA9IElCX1BPUlRfUEhZU19TVEFURV9MSU5LX1VQOwogCX0gZWxzZSB7CiAJCWF0dHItPnN0YXRlID0gSUJfUE9SVF9ET1dOOwotCQlhdHRyLT5waHlzX3N0YXRlID0gMzsKKwkJYXR0ci0+cGh5c19zdGF0ZSA9IElCX1BPUlRfUEhZU19TVEFURV9ESVNBQkxFRDsKIAl9CiAJYXR0ci0+bWF4X210dSA9IElCX01UVV80MDk2OwogCWF0dHItPmFjdGl2ZV9tdHUgPSBpYm9lX2dldF9tdHUoZGV2LT5uZGV2LT5tdHUpOwpAQCAtMjQ1MSw3ICsyNDUxLDYgQEAgaW50IHFlZHJfZGVzdHJveV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEpCiAJc3RydWN0IHFlZHJfZGV2ICpkZXYgPSBxcC0+ZGV2OwogCXN0cnVjdCBpYl9xcF9hdHRyIGF0dHI7CiAJaW50IGF0dHJfbWFzayA9IDA7Ci0JaW50IHJjID0gMDsKIAogCURQX0RFQlVHKGRldiwgUUVEUl9NU0dfUVAsICJkZXN0cm95IHFwOiBkZXN0cm95aW5nICVwLCBxcCB0eXBlPSVkXG4iLAogCQkgcXAsIHFwLT5xcF90eXBlKTsKQEAgLTI0OTYsNyArMjQ5NSw3IEBAIGludCBxZWRyX2Rlc3Ryb3lfcXAoc3RydWN0IGliX3FwICppYnFwLCBzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhKQogCQl4YV9lcmFzZV9pcnEoJmRldi0+cXBzLCBxcC0+cXBfaWQpOwogCQlrZnJlZShxcCk7CiAJfQotCXJldHVybiByYzsKKwlyZXR1cm4gMDsKIH0KIAogaW50IHFlZHJfY3JlYXRlX2FoKHN0cnVjdCBpYl9haCAqaWJhaCwgc3RydWN0IHJkbWFfYWhfYXR0ciAqYXR0ciwgdTMyIGZsYWdzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfZmlsZV9vcHMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX2ZpbGVfb3BzLmMKaW5kZXggMjdiNmU2Ni4uYjAxNDQyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfZmlsZV9vcHMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl9maWxlX29wcy5jCkBAIC0xNzg5LDcgKzE3ODksNiBAQCBzdGF0aWMgdm9pZCB1bmxvY2tfZXhwZWN0ZWRfdGlkcyhzdHJ1Y3QgcWliX2N0eHRkYXRhICpyY2QpCiAKIHN0YXRpYyBpbnQgcWliX2Nsb3NlKHN0cnVjdCBpbm9kZSAqaW4sIHN0cnVjdCBmaWxlICpmcCkKIHsKLQlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3QgcWliX2ZpbGVkYXRhICpmZDsKIAlzdHJ1Y3QgcWliX2N0eHRkYXRhICpyY2Q7CiAJc3RydWN0IHFpYl9kZXZkYXRhICpkZDsKQEAgLTE4NzMsNyArMTg3Miw3IEBAIHN0YXRpYyBpbnQgcWliX2Nsb3NlKHN0cnVjdCBpbm9kZSAqaW4sIHN0cnVjdCBmaWxlICpmcCkKIAogYmFpbDoKIAlrZnJlZShmZCk7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBxaWJfY3R4dF9pbmZvKHN0cnVjdCBmaWxlICpmcCwgc3RydWN0IHFpYl9jdHh0X2luZm8gX191c2VyICp1aW5mbykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3JjLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl9yYy5jCmluZGV4IDFkNWUyZDQuLmFhZjc0MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3JjLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfcmMuYwpAQCAtMzEzLDExICszMTMsOCBAQCBpbnQgcWliX21ha2VfcmNfcmVxKHN0cnVjdCBydnRfcXAgKnFwLCB1bnNpZ25lZCBsb25nICpmbGFncykKIAkJY2FzZSBJQl9XUl9TRU5EOgogCQljYXNlIElCX1dSX1NFTkRfV0lUSF9JTU06CiAJCQkvKiBJZiBubyBjcmVkaXQsIHJldHVybi4gKi8KLQkJCWlmICghKHFwLT5zX2ZsYWdzICYgUlZUX1NfVU5MSU1JVEVEX0NSRURJVCkgJiYKLQkJCSAgICBydnRfY21wX21zbih3cWUtPnNzbiwgcXAtPnNfbHNuICsgMSkgPiAwKSB7Ci0JCQkJcXAtPnNfZmxhZ3MgfD0gUlZUX1NfV0FJVF9TU05fQ1JFRElUOworCQkJaWYgKCFydnRfcmNfY3JlZGl0X2F2YWlsKHFwLCB3cWUpKQogCQkJCWdvdG8gYmFpbDsKLQkJCX0KIAkJCWlmIChsZW4gPiBwbXR1KSB7CiAJCQkJcXAtPnNfc3RhdGUgPSBPUChTRU5EX0ZJUlNUKTsKIAkJCQlsZW4gPSBwbXR1OwpAQCAtMzQ0LDExICszNDEsOCBAQCBpbnQgcWliX21ha2VfcmNfcmVxKHN0cnVjdCBydnRfcXAgKnFwLCB1bnNpZ25lZCBsb25nICpmbGFncykKIAkJCWdvdG8gbm9fZmxvd19jb250cm9sOwogCQljYXNlIElCX1dSX1JETUFfV1JJVEVfV0lUSF9JTU06CiAJCQkvKiBJZiBubyBjcmVkaXQsIHJldHVybi4gKi8KLQkJCWlmICghKHFwLT5zX2ZsYWdzICYgUlZUX1NfVU5MSU1JVEVEX0NSRURJVCkgJiYKLQkJCSAgICBydnRfY21wX21zbih3cWUtPnNzbiwgcXAtPnNfbHNuICsgMSkgPiAwKSB7Ci0JCQkJcXAtPnNfZmxhZ3MgfD0gUlZUX1NfV0FJVF9TU05fQ1JFRElUOworCQkJaWYgKCFydnRfcmNfY3JlZGl0X2F2YWlsKHFwLCB3cWUpKQogCQkJCWdvdG8gYmFpbDsKLQkJCX0KIG5vX2Zsb3dfY29udHJvbDoKIAkJCW9oZHItPnUucmMucmV0aC52YWRkciA9CiAJCQkJY3B1X3RvX2JlNjQod3FlLT5yZG1hX3dyLnJlbW90ZV9hZGRyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3N5c2ZzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl9zeXNmcy5jCmluZGV4IDkwNTIwNmEuLjM5MjZiZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3N5c2ZzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfc3lzZnMuYwpAQCAtNDM2LDYgKzQzNiw3IEBAIFFJQl9ESUFHQ19BVFRSKGRtYXdhaXQpOwogUUlCX0RJQUdDX0FUVFIodW5hbGlnbmVkKTsKIFFJQl9ESUFHQ19BVFRSKHJjX2R1cHJlcSk7CiBRSUJfRElBR0NfQVRUUihyY19zZXFuYWspOworUUlCX0RJQUdDX0FUVFIocmNfY3J3YWl0cyk7CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpkaWFnY19kZWZhdWx0X2F0dHJpYnV0ZXNbXSA9IHsKIAkmcWliX2RpYWdjX2F0dHJfcmNfcmVzZW5kcy5hdHRyLApAQCAtNDUzLDYgKzQ1NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpkaWFnY19kZWZhdWx0X2F0dHJpYnV0ZXNbXSA9IHsKIAkmcWliX2RpYWdjX2F0dHJfdW5hbGlnbmVkLmF0dHIsCiAJJnFpYl9kaWFnY19hdHRyX3JjX2R1cHJlcS5hdHRyLAogCSZxaWJfZGlhZ2NfYXR0cl9yY19zZXFuYWsuYXR0ciwKKwkmcWliX2RpYWdjX2F0dHJfcmNfY3J3YWl0cy5hdHRyLAogCU5VTEwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3VzZXJfcGFnZXMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3VzZXJfcGFnZXMuYwppbmRleCBiZmJmYmI3Li42YmY3NjRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl91c2VyX3BhZ2VzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdXNlcl9wYWdlcy5jCkBAIC00MCwxMCArNDAsNyBAQAogc3RhdGljIHZvaWQgX19xaWJfcmVsZWFzZV91c2VyX3BhZ2VzKHN0cnVjdCBwYWdlICoqcCwgc2l6ZV90IG51bV9wYWdlcywKIAkJCQkgICAgIGludCBkaXJ0eSkKIHsKLQlpZiAoZGlydHkpCi0JCXB1dF91c2VyX3BhZ2VzX2RpcnR5X2xvY2socCwgbnVtX3BhZ2VzKTsKLQllbHNlCi0JCXB1dF91c2VyX3BhZ2VzKHAsIG51bV9wYWdlcyk7CisJcHV0X3VzZXJfcGFnZXNfZGlydHlfbG9jayhwLCBudW1fcGFnZXMsIGRpcnR5KTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYwppbmRleCAwM2Y1NGViLi5jOWFiZTFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMKQEAgLTg5LDkgKzg5LDE1IEBAIHN0YXRpYyB2b2lkIHVzbmljX2liX2R1bXBfdmYoc3RydWN0IHVzbmljX2liX3ZmICp2ZiwgY2hhciAqYnVmLCBpbnQgYnVmX3N6KQogCiB2b2lkIHVzbmljX2liX2xvZ192ZihzdHJ1Y3QgdXNuaWNfaWJfdmYgKnZmKQogewotCWNoYXIgYnVmWzEwMDBdOwotCXVzbmljX2liX2R1bXBfdmYodmYsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCWNoYXIgKmJ1ZiA9IGt6YWxsb2MoMTAwMCwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuOworCisJdXNuaWNfaWJfZHVtcF92Zih2ZiwgYnVmLCAxMDAwKTsKIAl1c25pY19kYmcoIiVzXG4iLCBidWYpOworCisJa2ZyZWUoYnVmKTsKIH0KIAogLyogU3RhcnQgb2YgbmV0ZGV2IHNlY3Rpb24gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl92ZXJicy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX3ZlcmJzLmMKaW5kZXggZWViMDdiMi4uNTU2YjhlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX3ZlcmJzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX3ZlcmJzLmMKQEAgLTE5NCw3ICsxOTQsNyBAQCBmaW5kX2ZyZWVfdmZfYW5kX2NyZWF0ZV9xcF9ncnAoc3RydWN0IHVzbmljX2liX2RldiAqdXNfaWJkZXYsCiAJCQlyZXR1cm4gRVJSX0NBU1QoZGV2X2xpc3QpOwogCQlmb3IgKGkgPSAwOyBkZXZfbGlzdFtpXTsgaSsrKSB7CiAJCQlkZXYgPSBkZXZfbGlzdFtpXTsKLQkJCXZmID0gcGNpX2dldF9kcnZkYXRhKHRvX3BjaV9kZXYoZGV2KSk7CisJCQl2ZiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCQkJc3Bpbl9sb2NrKCZ2Zi0+bG9jayk7CiAJCQl2bmljID0gdmYtPnZuaWM7CiAJCQlpZiAoIXVzbmljX3ZuaWNfY2hlY2tfcm9vbSh2bmljLCByZXNfc3BlYykpIHsKQEAgLTM1NiwxMyArMzU2LDE0IEBAIGludCB1c25pY19pYl9xdWVyeV9wb3J0KHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LCB1OCBwb3J0LAogCiAJaWYgKCF1c19pYmRldi0+dWZkZXYtPmxpbmtfdXApIHsKIAkJcHJvcHMtPnN0YXRlID0gSUJfUE9SVF9ET1dOOwotCQlwcm9wcy0+cGh5c19zdGF0ZSA9IDM7CisJCXByb3BzLT5waHlzX3N0YXRlID0gSUJfUE9SVF9QSFlTX1NUQVRFX0RJU0FCTEVEOwogCX0gZWxzZSBpZiAoIXVzX2liZGV2LT51ZmRldi0+aW5hZGRyKSB7CiAJCXByb3BzLT5zdGF0ZSA9IElCX1BPUlRfSU5JVDsKLQkJcHJvcHMtPnBoeXNfc3RhdGUgPSA0OworCQlwcm9wcy0+cGh5c19zdGF0ZSA9CisJCQlJQl9QT1JUX1BIWVNfU1RBVEVfUE9SVF9DT05GSUdVUkFUSU9OX1RSQUlOSU5HOwogCX0gZWxzZSB7CiAJCXByb3BzLT5zdGF0ZSA9IElCX1BPUlRfQUNUSVZFOwotCQlwcm9wcy0+cGh5c19zdGF0ZSA9IDU7CisJCXByb3BzLT5waHlzX3N0YXRlID0gSUJfUE9SVF9QSFlTX1NUQVRFX0xJTktfVVA7CiAJfQogCiAJcHJvcHMtPnBvcnRfY2FwX2ZsYWdzID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY191aW9tLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfdWlvbS5jCmluZGV4IDBiMDIzN2QuLjYyZTZmZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY191aW9tLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX3Vpb20uYwpAQCAtNzUsMTAgKzc1LDcgQEAgc3RhdGljIHZvaWQgdXNuaWNfdWlvbV9wdXRfcGFnZXMoc3RydWN0IGxpc3RfaGVhZCAqY2h1bmtfbGlzdCwgaW50IGRpcnR5KQogCQlmb3JfZWFjaF9zZyhjaHVuay0+cGFnZV9saXN0LCBzZywgY2h1bmstPm5lbnRzLCBpKSB7CiAJCQlwYWdlID0gc2dfcGFnZShzZyk7CiAJCQlwYSA9IHNnX3BoeXMoc2cpOwotCQkJaWYgKGRpcnR5KQotCQkJCXB1dF91c2VyX3BhZ2VzX2RpcnR5X2xvY2soJnBhZ2UsIDEpOwotCQkJZWxzZQotCQkJCXB1dF91c2VyX3BhZ2UocGFnZSk7CisJCQlwdXRfdXNlcl9wYWdlc19kaXJ0eV9sb2NrKCZwYWdlLCAxLCBkaXJ0eSk7CiAJCQl1c25pY19kYmcoInBhOiAlcGFcbiIsICZwYSk7CiAJCX0KIAkJa2ZyZWUoY2h1bmspOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGUuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlLmgKaW5kZXggZWNmNmU2NS4uZmIwN2VlZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGUuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZS5oCkBAIC02NSwxMCArNjUsNiBAQAogICovCiAjZGVmaW5lIFJYRV9VVkVSQlNfQUJJX1ZFUlNJT04JCTIKIAotI2RlZmluZSBSRE1BX0xJTktfUEhZU19TVEFURV9MSU5LX1VQCSg1KQotI2RlZmluZSBSRE1BX0xJTktfUEhZU19TVEFURV9ESVNBQkxFRAkoMykKLSNkZWZpbmUgUkRNQV9MSU5LX1BIWVNfU1RBVEVfUE9MTElORwkoMikKLQogI2RlZmluZSBSWEVfUk9DRV9WMl9TUE9SVAkJKDB4YzAwMCkKIAogc3RhdGljIGlubGluZSB1MzIgcnhlX2NyYzMyKHN0cnVjdCByeGVfZGV2ICpyeGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9wYXJhbS5oIGIvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfcGFyYW0uaAppbmRleCAxYWJlZDQ3Li5mZTUyMDczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9wYXJhbS5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX3BhcmFtLmgKQEAgLTE1NCw3ICsxNTQsNyBAQCBlbnVtIHJ4ZV9wb3J0X3BhcmFtIHsKIAlSWEVfUE9SVF9BQ1RJVkVfV0lEVEgJCT0gSUJfV0lEVEhfMVgsCiAJUlhFX1BPUlRfQUNUSVZFX1NQRUVECQk9IDEsCiAJUlhFX1BPUlRfUEtFWV9UQkxfTEVOCQk9IDY0LAotCVJYRV9QT1JUX1BIWVNfU1RBVEUJCT0gMiwKKwlSWEVfUE9SVF9QSFlTX1NUQVRFCQk9IElCX1BPUlRfUEhZU19TVEFURV9QT0xMSU5HLAogCVJYRV9QT1JUX1NVQk5FVF9QUkVGSVgJCT0gMHhmZTgwMDAwMDAwMDAwMDAwVUxMLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX3ZlcmJzLmMKaW5kZXggNGViZGZjZi4uNjIzMTI5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV92ZXJicy5jCkBAIC02OSwxMSArNjksMTEgQEAgc3RhdGljIGludCByeGVfcXVlcnlfcG9ydChzdHJ1Y3QgaWJfZGV2aWNlICpkZXYsCiAJCQkgICAgICAmYXR0ci0+YWN0aXZlX3dpZHRoKTsKIAogCWlmIChhdHRyLT5zdGF0ZSA9PSBJQl9QT1JUX0FDVElWRSkKLQkJYXR0ci0+cGh5c19zdGF0ZSA9IFJETUFfTElOS19QSFlTX1NUQVRFX0xJTktfVVA7CisJCWF0dHItPnBoeXNfc3RhdGUgPSBJQl9QT1JUX1BIWVNfU1RBVEVfTElOS19VUDsKIAllbHNlIGlmIChkZXZfZ2V0X2ZsYWdzKHJ4ZS0+bmRldikgJiBJRkZfVVApCi0JCWF0dHItPnBoeXNfc3RhdGUgPSBSRE1BX0xJTktfUEhZU19TVEFURV9QT0xMSU5HOworCQlhdHRyLT5waHlzX3N0YXRlID0gSUJfUE9SVF9QSFlTX1NUQVRFX1BPTExJTkc7CiAJZWxzZQotCQlhdHRyLT5waHlzX3N0YXRlID0gUkRNQV9MSU5LX1BIWVNfU1RBVEVfRElTQUJMRUQ7CisJCWF0dHItPnBoeXNfc3RhdGUgPSBJQl9QT1JUX1BIWVNfU1RBVEVfRElTQUJMRUQ7CiAKIAltdXRleF91bmxvY2soJnJ4ZS0+dXNkZXZfbG9jayk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21lbS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWVtLmMKaW5kZXggODdhNTYwMy4uZTk5OTgzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWVtLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWVtLmMKQEAgLTYzLDE1ICs2Myw3IEBAIHN0cnVjdCBzaXdfbWVtICpzaXdfbWVtX2lkMm9iaihzdHJ1Y3Qgc2l3X2RldmljZSAqc2RldiwgaW50IHN0YWdfaW5kZXgpCiBzdGF0aWMgdm9pZCBzaXdfZnJlZV9wbGlzdChzdHJ1Y3Qgc2l3X3BhZ2VfY2h1bmsgKmNodW5rLCBpbnQgbnVtX3BhZ2VzLAogCQkJICAgYm9vbCBkaXJ0eSkKIHsKLQlzdHJ1Y3QgcGFnZSAqKnAgPSBjaHVuay0+cGxpc3Q7Ci0KLQl3aGlsZSAobnVtX3BhZ2VzLS0pIHsKLQkJaWYgKCFQYWdlRGlydHkoKnApICYmIGRpcnR5KQotCQkJcHV0X3VzZXJfcGFnZXNfZGlydHlfbG9jayhwLCAxKTsKLQkJZWxzZQotCQkJcHV0X3VzZXJfcGFnZSgqcCk7Ci0JCXArKzsKLQl9CisJcHV0X3VzZXJfcGFnZXNfZGlydHlfbG9jayhjaHVuay0+cGxpc3QsIG51bV9wYWdlcywgZGlydHkpOwogfQogCiB2b2lkIHNpd191bWVtX3JlbGVhc2Uoc3RydWN0IHNpd191bWVtICp1bWVtLCBib29sIGRpcnR5KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfcXBfdHguYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X3FwX3R4LmMKaW5kZXggNDM4YTI5MS4uNWQ5N2JiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfcXBfdHguYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvc3cvc2l3L3Npd19xcF90eC5jCkBAIC03NiwxNiArNzYsMTUgQEAgc3RhdGljIGludCBzaXdfdHJ5XzFzZWcoc3RydWN0IHNpd19pd2FycF90eCAqY190eCwgdm9pZCAqcGFkZHIpCiAJCQlpZiAodW5saWtlbHkoIXApKQogCQkJCXJldHVybiAtRUZBVUxUOwogCi0JCQlidWZmZXIgPSBrbWFwX2F0b21pYyhwKTsKKwkJCWJ1ZmZlciA9IGttYXAocCk7CiAKIAkJCWlmIChsaWtlbHkoUEFHRV9TSVpFIC0gb2ZmID49IGJ5dGVzKSkgewogCQkJCW1lbWNweShwYWRkciwgYnVmZmVyICsgb2ZmLCBieXRlcyk7Ci0JCQkJa3VubWFwX2F0b21pYyhidWZmZXIpOwogCQkJfSBlbHNlIHsKIAkJCQl1bnNpZ25lZCBsb25nIHBhcnQgPSBieXRlcyAtIChQQUdFX1NJWkUgLSBvZmYpOwogCiAJCQkJbWVtY3B5KHBhZGRyLCBidWZmZXIgKyBvZmYsIHBhcnQpOwotCQkJCWt1bm1hcF9hdG9taWMoYnVmZmVyKTsKKwkJCQlrdW5tYXAocCk7CiAKIAkJCQlpZiAoIW1lbS0+aXNfcGJsKQogCQkJCQlwID0gc2l3X2dldF91cGFnZShtZW0tPnVtZW0sCkBAIC05NywxMSArOTYsMTAgQEAgc3RhdGljIGludCBzaXdfdHJ5XzFzZWcoc3RydWN0IHNpd19pd2FycF90eCAqY190eCwgdm9pZCAqcGFkZHIpCiAJCQkJaWYgKHVubGlrZWx5KCFwKSkKIAkJCQkJcmV0dXJuIC1FRkFVTFQ7CiAKLQkJCQlidWZmZXIgPSBrbWFwX2F0b21pYyhwKTsKLQkJCQltZW1jcHkocGFkZHIgKyBwYXJ0LCBidWZmZXIsCi0JCQkJICAgICAgIGJ5dGVzIC0gcGFydCk7Ci0JCQkJa3VubWFwX2F0b21pYyhidWZmZXIpOworCQkJCWJ1ZmZlciA9IGttYXAocCk7CisJCQkJbWVtY3B5KHBhZGRyICsgcGFydCwgYnVmZmVyLCBieXRlcyAtIHBhcnQpOwogCQkJfQorCQkJa3VubWFwKHApOwogCQl9CiAJfQogCXJldHVybiAoaW50KWJ5dGVzOwpAQCAtNTE4LDExICs1MTYsMTIgQEAgc3RhdGljIGludCBzaXdfdHhfaGR0KHN0cnVjdCBzaXdfaXdhcnBfdHggKmNfdHgsIHN0cnVjdCBzb2NrZXQgKnMpCiAJCQkJCQkJY190eC0+bXBhX2NyY19oZCwKIAkJCQkJCQlpb3Zbc2VnXS5pb3ZfYmFzZSwKIAkJCQkJCQlwbGVuKTsKLQkJCQl9IGVsc2UgaWYgKGRvX2NyYykKLQkJCQkJY3J5cHRvX3NoYXNoX3VwZGF0ZSgKLQkJCQkJCWNfdHgtPm1wYV9jcmNfaGQsCi0JCQkJCQlwYWdlX2FkZHJlc3MocCkgKyBmcF9vZmYsCi0JCQkJCQlwbGVuKTsKKwkJCQl9IGVsc2UgaWYgKGRvX2NyYykgeworCQkJCQljcnlwdG9fc2hhc2hfdXBkYXRlKGNfdHgtPm1wYV9jcmNfaGQsCisJCQkJCQkJICAgIGttYXAocCkgKyBmcF9vZmYsCisJCQkJCQkJICAgIHBsZW4pOworCQkJCQlrdW5tYXAocCk7CisJCQkJfQogCQkJfSBlbHNlIHsKIAkJCQl1NjQgdmEgPSBzZ2UtPmxhZGRyICsgc2dlX29mZjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X3ZlcmJzLmMKaW5kZXggZGE1MmM5MC4uODY5ZTAyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvc3cvc2l3L3Npd192ZXJicy5jCkBAIC0yMDYsNyArMjA2LDggQEAgaW50IHNpd19xdWVyeV9wb3J0KHN0cnVjdCBpYl9kZXZpY2UgKmJhc2VfZGV2LCB1OCBwb3J0LAogCWF0dHItPmdpZF90YmxfbGVuID0gMTsKIAlhdHRyLT5tYXhfbXNnX3N6ID0gLTE7CiAJYXR0ci0+bWF4X210dSA9IGliX210dV9pbnRfdG9fZW51bShzZGV2LT5uZXRkZXYtPm10dSk7Ci0JYXR0ci0+cGh5c19zdGF0ZSA9IHNkZXYtPnN0YXRlID09IElCX1BPUlRfQUNUSVZFID8gNSA6IDM7CisJYXR0ci0+cGh5c19zdGF0ZSA9IHNkZXYtPnN0YXRlID09IElCX1BPUlRfQUNUSVZFID8KKwkJSUJfUE9SVF9QSFlTX1NUQVRFX0xJTktfVVAgOiBJQl9QT1JUX1BIWVNfU1RBVEVfRElTQUJMRUQ7CiAJYXR0ci0+cGtleV90YmxfbGVuID0gMTsKIAlhdHRyLT5wb3J0X2NhcF9mbGFncyA9IElCX1BPUlRfQ01fU1VQIHwgSUJfUE9SVF9ERVZJQ0VfTUdNVF9TVVA7CiAJYXR0ci0+c3RhdGUgPSBzZGV2LT5zdGF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmggYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNjc2lfaXNlci5oCmluZGV4IDM5YmYyMTMuLjUyY2U2MzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzY3NpX2lzZXIuaApAQCAtMTAyLDkgKzEwMiwxMCBAQAogCiAvKiBEZWZhdWx0IHN1cHBvcnQgaXMgNTEyS0IgSS9PIHNpemUgKi8KICNkZWZpbmUgSVNFUl9ERUZfTUFYX1NFQ1RPUlMJCTEwMjQKLSNkZWZpbmUgSVNDU0lfSVNFUl9ERUZfU0dfVEFCTEVTSVpFCSgoSVNFUl9ERUZfTUFYX1NFQ1RPUlMgKiA1MTIpID4+IFNISUZUXzRLKQotLyogTWF4aW11bSBzdXBwb3J0IGlzIDhNQiBJL08gc2l6ZSAqLwotI2RlZmluZSBJU0NTSV9JU0VSX01BWF9TR19UQUJMRVNJWkUJKCgxNjM4NCAqIDUxMikgPj4gU0hJRlRfNEspCisjZGVmaW5lIElTQ1NJX0lTRVJfREVGX1NHX1RBQkxFU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSgoSVNFUl9ERUZfTUFYX1NFQ1RPUlMgKiBTRUNUT1JfU0laRSkgPj4gU0hJRlRfNEspCisvKiBNYXhpbXVtIHN1cHBvcnQgaXMgMTZNQiBJL08gc2l6ZSAqLworI2RlZmluZSBJU0NTSV9JU0VSX01BWF9TR19UQUJMRVNJWkUJKCgzMjc2OCAqIFNFQ1RPUl9TSVpFKSA+PiBTSElGVF80SykKIAogI2RlZmluZSBJU0VSX0RFRl9YTUlUX0NNRFNfREVGQVVMVAkJNTEyCiAjaWYgSVNDU0lfREVGX1hNSVRfQ01EU19NQVggPiBJU0VSX0RFRl9YTUlUX0NNRFNfREVGQVVMVApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnB0L2liX3NycHQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwdC9pYl9zcnB0LmMKaW5kZXggMWEwMzlmMS4uZTI1YzcwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnB0L2liX3NycHQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL3NycHQvaWJfc3JwdC5jCkBAIC0xNzY3LDggKzE3NjcsOCBAQCBzdGF0aWMgaW50IHNycHRfY3JlYXRlX2NoX2liKHN0cnVjdCBzcnB0X3JkbWFfY2ggKmNoKQogCQlnb3RvIG91dDsKIAogcmV0cnk6Ci0JY2gtPmNxID0gaWJfYWxsb2NfY3Eoc2Rldi0+ZGV2aWNlLCBjaCwgY2gtPnJxX3NpemUgKyBzcV9zaXplLAotCQkJMCAvKiBYWFg6IHNwcmVhZCBDUXMgKi8sIElCX1BPTExfV09SS1FVRVVFKTsKKwljaC0+Y3EgPSBpYl9hbGxvY19jcV9hbnkoc2Rldi0+ZGV2aWNlLCBjaCwgY2gtPnJxX3NpemUgKyBzcV9zaXplLAorCQkJCSBJQl9QT0xMX1dPUktRVUVVRSk7CiAJaWYgKElTX0VSUihjaC0+Y3EpKSB7CiAJCXJldCA9IFBUUl9FUlIoY2gtPmNxKTsKIAkJcHJfZXJyKCJmYWlsZWQgdG8gY3JlYXRlIENRIGNxZT0gJWQgcmV0PSAlZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvTWFrZWZpbGUgYi9kcml2ZXJzL2lucHV0L01ha2VmaWxlCmluZGV4IDQwZGU2YTcuLmUzNTY1MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9pbnB1dC9NYWtlZmlsZQpAQCAtNiw3ICs2LDcgQEAKICMgRWFjaCBjb25maWd1cmF0aW9uIG9wdGlvbiBlbmFibGVzIGEgbGlzdCBvZiBmaWxlcy4KIAogb2JqLSQoQ09ORklHX0lOUFVUKQkJKz0gaW5wdXQtY29yZS5vCi1pbnB1dC1jb3JlLXkgOj0gaW5wdXQubyBpbnB1dC1jb21wYXQubyBpbnB1dC1tdC5vIGZmLWNvcmUubworaW5wdXQtY29yZS15IDo9IGlucHV0Lm8gaW5wdXQtY29tcGF0Lm8gaW5wdXQtbXQubyBpbnB1dC1wb2xsZXIubyBmZi1jb3JlLm8KIAogb2JqLSQoQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MpCSs9IGZmLW1lbWxlc3Mubwogb2JqLSQoQ09ORklHX0lOUFVUX1BPTExERVYpCSs9IGlucHV0LXBvbGxkZXYubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9ldmRldi5jIGIvZHJpdmVycy9pbnB1dC9ldmRldi5jCmluZGV4IDg2N2MyY2YuLmQ3ZGQ2ZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvZXZkZXYuYworKysgYi9kcml2ZXJzL2lucHV0L2V2ZGV2LmMKQEAgLTI1LDEzICsyNSw2IEBACiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgogI2luY2x1ZGUgImlucHV0LWNvbXBhdC5oIgogCi1lbnVtIGV2ZGV2X2Nsb2NrX3R5cGUgewotCUVWX0NMS19SRUFMID0gMCwKLQlFVl9DTEtfTU9OTywKLQlFVl9DTEtfQk9PVCwKLQlFVl9DTEtfTUFYCi19OwotCiBzdHJ1Y3QgZXZkZXYgewogCWludCBvcGVuOwogCXN0cnVjdCBpbnB1dF9oYW5kbGUgaGFuZGxlOwpAQCAtNTMsNyArNDYsNyBAQCBzdHJ1Y3QgZXZkZXZfY2xpZW50IHsKIAlzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqZmFzeW5jOwogCXN0cnVjdCBldmRldiAqZXZkZXY7CiAJc3RydWN0IGxpc3RfaGVhZCBub2RlOwotCXVuc2lnbmVkIGludCBjbGtfdHlwZTsKKwllbnVtIGlucHV0X2Nsb2NrX3R5cGUgY2xrX3R5cGU7CiAJYm9vbCByZXZva2VkOwogCXVuc2lnbmVkIGxvbmcgKmV2bWFza3NbRVZfQ05UXTsKIAl1bnNpZ25lZCBpbnQgYnVmc2l6ZTsKQEAgLTE0OSwxNyArMTQyLDEwIEBAIHN0YXRpYyB2b2lkIF9fZXZkZXZfZmx1c2hfcXVldWUoc3RydWN0IGV2ZGV2X2NsaWVudCAqY2xpZW50LCB1bnNpZ25lZCBpbnQgdHlwZSkKIAogc3RhdGljIHZvaWQgX19ldmRldl9xdWV1ZV9zeW5fZHJvcHBlZChzdHJ1Y3QgZXZkZXZfY2xpZW50ICpjbGllbnQpCiB7CisJa3RpbWVfdCAqZXZfdGltZSA9IGlucHV0X2dldF90aW1lc3RhbXAoY2xpZW50LT5ldmRldi0+aGFuZGxlLmRldik7CisJc3RydWN0IHRpbWVzcGVjNjQgdHMgPSBrdGltZV90b190aW1lc3BlYzY0KGV2X3RpbWVbY2xpZW50LT5jbGtfdHlwZV0pOwogCXN0cnVjdCBpbnB1dF9ldmVudCBldjsKLQlrdGltZV90IHRpbWU7Ci0Jc3RydWN0IHRpbWVzcGVjNjQgdHM7CiAKLQl0aW1lID0gY2xpZW50LT5jbGtfdHlwZSA9PSBFVl9DTEtfUkVBTCA/Ci0JCQlrdGltZV9nZXRfcmVhbCgpIDoKLQkJCWNsaWVudC0+Y2xrX3R5cGUgPT0gRVZfQ0xLX01PTk8gPwotCQkJCWt0aW1lX2dldCgpIDoKLQkJCQlrdGltZV9nZXRfYm9vdHRpbWUoKTsKLQotCXRzID0ga3RpbWVfdG9fdGltZXNwZWM2NCh0aW1lKTsKIAlldi5pbnB1dF9ldmVudF9zZWMgPSB0cy50dl9zZWM7CiAJZXYuaW5wdXRfZXZlbnRfdXNlYyA9IHRzLnR2X25zZWMgLyBOU0VDX1BFUl9VU0VDOwogCWV2LnR5cGUgPSBFVl9TWU47CkBAIC0xODgsMTggKzE3NCwxOCBAQCBzdGF0aWMgdm9pZCBldmRldl9xdWV1ZV9zeW5fZHJvcHBlZChzdHJ1Y3QgZXZkZXZfY2xpZW50ICpjbGllbnQpCiBzdGF0aWMgaW50IGV2ZGV2X3NldF9jbGtfdHlwZShzdHJ1Y3QgZXZkZXZfY2xpZW50ICpjbGllbnQsIHVuc2lnbmVkIGludCBjbGtpZCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGludCBjbGtfdHlwZTsKKwllbnVtIGlucHV0X2Nsb2NrX3R5cGUgY2xrX3R5cGU7CiAKIAlzd2l0Y2ggKGNsa2lkKSB7CiAKIAljYXNlIENMT0NLX1JFQUxUSU1FOgotCQljbGtfdHlwZSA9IEVWX0NMS19SRUFMOworCQljbGtfdHlwZSA9IElOUFVUX0NMS19SRUFMOwogCQlicmVhazsKIAljYXNlIENMT0NLX01PTk9UT05JQzoKLQkJY2xrX3R5cGUgPSBFVl9DTEtfTU9OTzsKKwkJY2xrX3R5cGUgPSBJTlBVVF9DTEtfTU9OTzsKIAkJYnJlYWs7CiAJY2FzZSBDTE9DS19CT09UVElNRToKLQkJY2xrX3R5cGUgPSBFVl9DTEtfQk9PVDsKKwkJY2xrX3R5cGUgPSBJTlBVVF9DTEtfQk9PVDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0zMDcsMTIgKzI5Myw3IEBAIHN0YXRpYyB2b2lkIGV2ZGV2X2V2ZW50cyhzdHJ1Y3QgaW5wdXRfaGFuZGxlICpoYW5kbGUsCiB7CiAJc3RydWN0IGV2ZGV2ICpldmRldiA9IGhhbmRsZS0+cHJpdmF0ZTsKIAlzdHJ1Y3QgZXZkZXZfY2xpZW50ICpjbGllbnQ7Ci0Ja3RpbWVfdCBldl90aW1lW0VWX0NMS19NQVhdOwotCi0JZXZfdGltZVtFVl9DTEtfTU9OT10gPSBrdGltZV9nZXQoKTsKLQlldl90aW1lW0VWX0NMS19SRUFMXSA9IGt0aW1lX21vbm9fdG9fcmVhbChldl90aW1lW0VWX0NMS19NT05PXSk7Ci0JZXZfdGltZVtFVl9DTEtfQk9PVF0gPSBrdGltZV9tb25vX3RvX2FueShldl90aW1lW0VWX0NMS19NT05PXSwKLQkJCQkJCSBUS19PRkZTX0JPT1QpOworCWt0aW1lX3QgKmV2X3RpbWUgPSBpbnB1dF9nZXRfdGltZXN0YW1wKGhhbmRsZS0+ZGV2KTsKIAogCXJjdV9yZWFkX2xvY2soKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9pbnB1dC1wb2xsZXIuYyBiL2RyaXZlcnMvaW5wdXQvaW5wdXQtcG9sbGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWIzZDI4OQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvaW5wdXQvaW5wdXQtcG9sbGVyLmMKQEAgLTAsMCArMSwyMTMgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKy8qCisgKiBTdXBwb3J0IGZvciBwb2xsaW5nIG1vZGUgZm9yIGlucHV0IGRldmljZXMuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CisjaW5jbHVkZSAiaW5wdXQtcG9sbGVyLmgiCisKK3N0cnVjdCBpbnB1dF9kZXZfcG9sbGVyIHsKKwl2b2lkICgqcG9sbCkoc3RydWN0IGlucHV0X2RldiAqZGV2KTsKKworCXVuc2lnbmVkIGludCBwb2xsX2ludGVydmFsOyAvKiBtc2VjICovCisJdW5zaWduZWQgaW50IHBvbGxfaW50ZXJ2YWxfbWF4OyAvKiBtc2VjICovCisJdW5zaWduZWQgaW50IHBvbGxfaW50ZXJ2YWxfbWluOyAvKiBtc2VjICovCisKKwlzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dDsKKwlzdHJ1Y3QgZGVsYXllZF93b3JrIHdvcms7Cit9OworCitzdGF0aWMgdm9pZCBpbnB1dF9kZXZfcG9sbGVyX3F1ZXVlX3dvcmsoc3RydWN0IGlucHV0X2Rldl9wb2xsZXIgKnBvbGxlcikKK3sKKwl1bnNpZ25lZCBsb25nIGRlbGF5OworCisJZGVsYXkgPSBtc2Vjc190b19qaWZmaWVzKHBvbGxlci0+cG9sbF9pbnRlcnZhbCk7CisJaWYgKGRlbGF5ID49IEhaKQorCQlkZWxheSA9IHJvdW5kX2ppZmZpZXNfcmVsYXRpdmUoZGVsYXkpOworCisJcXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV9mcmVlemFibGVfd3EsICZwb2xsZXItPndvcmssIGRlbGF5KTsKK30KKworc3RhdGljIHZvaWQgaW5wdXRfZGV2X3BvbGxlcl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgaW5wdXRfZGV2X3BvbGxlciAqcG9sbGVyID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpbnB1dF9kZXZfcG9sbGVyLCB3b3JrLndvcmspOworCisJcG9sbGVyLT5wb2xsKHBvbGxlci0+aW5wdXQpOworCWlucHV0X2Rldl9wb2xsZXJfcXVldWVfd29yayhwb2xsZXIpOworfQorCit2b2lkIGlucHV0X2Rldl9wb2xsZXJfZmluYWxpemUoc3RydWN0IGlucHV0X2Rldl9wb2xsZXIgKnBvbGxlcikKK3sKKwlpZiAoIXBvbGxlci0+cG9sbF9pbnRlcnZhbCkKKwkJcG9sbGVyLT5wb2xsX2ludGVydmFsID0gNTAwOworCWlmICghcG9sbGVyLT5wb2xsX2ludGVydmFsX21heCkKKwkJcG9sbGVyLT5wb2xsX2ludGVydmFsX21heCA9IHBvbGxlci0+cG9sbF9pbnRlcnZhbDsKK30KKwordm9pZCBpbnB1dF9kZXZfcG9sbGVyX3N0YXJ0KHN0cnVjdCBpbnB1dF9kZXZfcG9sbGVyICpwb2xsZXIpCit7CisJLyogT25seSBzdGFydCBwb2xsaW5nIGlmIHBvbGxpbmcgaXMgZW5hYmxlZCAqLworCWlmIChwb2xsZXItPnBvbGxfaW50ZXJ2YWwgPiAwKSB7CisJCXBvbGxlci0+cG9sbChwb2xsZXItPmlucHV0KTsKKwkJaW5wdXRfZGV2X3BvbGxlcl9xdWV1ZV93b3JrKHBvbGxlcik7CisJfQorfQorCit2b2lkIGlucHV0X2Rldl9wb2xsZXJfc3RvcChzdHJ1Y3QgaW5wdXRfZGV2X3BvbGxlciAqcG9sbGVyKQoreworCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmcG9sbGVyLT53b3JrKTsKK30KKworaW50IGlucHV0X3NldHVwX3BvbGxpbmcoc3RydWN0IGlucHV0X2RldiAqZGV2LAorCQkJdm9pZCAoKnBvbGxfZm4pKHN0cnVjdCBpbnB1dF9kZXYgKmRldikpCit7CisJc3RydWN0IGlucHV0X2Rldl9wb2xsZXIgKnBvbGxlcjsKKworCXBvbGxlciA9IGt6YWxsb2Moc2l6ZW9mKCpwb2xsZXIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXBvbGxlcikgeworCQkvKgorCQkgKiBXZSB3YW50IHRvIHNob3cgbWVzc2FnZSBldmVuIHRob3VnaCBremFsbG9jKCkgbWF5IGhhdmUKKwkJICogcHJpbnRlZCBiYWNrdHJhY2UgYXMga25vd2luZyB3aGF0IGluc3RhbmNlIG9mIGlucHV0CisJCSAqIGRldmljZSB3ZSB3ZXJlIGRlYWxpbmcgd2l0aCBpcyBoZWxwZnVsLgorCQkgKi8KKwkJZGV2X2VycihkZXYtPmRldi5wYXJlbnQgPzogJmRldi0+ZGV2LAorCQkJIiVzOiB1bmFibGUgdG8gYWxsb2NhdGUgcG9sbGVyIHN0cnVjdHVyZVxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlJTklUX0RFTEFZRURfV09SSygmcG9sbGVyLT53b3JrLCBpbnB1dF9kZXZfcG9sbGVyX3dvcmspOworCXBvbGxlci0+aW5wdXQgPSBkZXY7CisJcG9sbGVyLT5wb2xsID0gcG9sbF9mbjsKKworCWRldi0+cG9sbGVyID0gcG9sbGVyOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChpbnB1dF9zZXR1cF9wb2xsaW5nKTsKKworc3RhdGljIGJvb2wgaW5wdXRfZGV2X2Vuc3VyZV9wb2xsZXIoc3RydWN0IGlucHV0X2RldiAqZGV2KQoreworCWlmICghZGV2LT5wb2xsZXIpIHsKKwkJZGV2X2VycihkZXYtPmRldi5wYXJlbnQgPzogJmRldi0+ZGV2LAorCQkJInBvbGxlciBzdHJ1Y3R1cmUgaGFzIG5vdCBiZWVuIHNldCB1cFxuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBpbnB1dF9zZXRfcG9sbF9pbnRlcnZhbChzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYsIHVuc2lnbmVkIGludCBpbnRlcnZhbCkKK3sKKwlpZiAoaW5wdXRfZGV2X2Vuc3VyZV9wb2xsZXIoZGV2KSkKKwkJZGV2LT5wb2xsZXItPnBvbGxfaW50ZXJ2YWwgPSBpbnRlcnZhbDsKK30KK0VYUE9SVF9TWU1CT0woaW5wdXRfc2V0X3BvbGxfaW50ZXJ2YWwpOworCit2b2lkIGlucHV0X3NldF9taW5fcG9sbF9pbnRlcnZhbChzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYsIHVuc2lnbmVkIGludCBpbnRlcnZhbCkKK3sKKwlpZiAoaW5wdXRfZGV2X2Vuc3VyZV9wb2xsZXIoZGV2KSkKKwkJZGV2LT5wb2xsZXItPnBvbGxfaW50ZXJ2YWxfbWluID0gaW50ZXJ2YWw7Cit9CitFWFBPUlRfU1lNQk9MKGlucHV0X3NldF9taW5fcG9sbF9pbnRlcnZhbCk7CisKK3ZvaWQgaW5wdXRfc2V0X21heF9wb2xsX2ludGVydmFsKHN0cnVjdCBpbnB1dF9kZXYgKmRldiwgdW5zaWduZWQgaW50IGludGVydmFsKQoreworCWlmIChpbnB1dF9kZXZfZW5zdXJlX3BvbGxlcihkZXYpKQorCQlkZXYtPnBvbGxlci0+cG9sbF9pbnRlcnZhbF9tYXggPSBpbnRlcnZhbDsKK30KK0VYUE9SVF9TWU1CT0woaW5wdXRfc2V0X21heF9wb2xsX2ludGVydmFsKTsKKworLyogU1lTRlMgaW50ZXJmYWNlICovCisKK3N0YXRpYyBzc2l6ZV90IGlucHV0X2Rldl9nZXRfcG9sbF9pbnRlcnZhbChzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCSAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCQkgICBjaGFyICpidWYpCit7CisJc3RydWN0IGlucHV0X2RldiAqaW5wdXQgPSB0b19pbnB1dF9kZXYoZGV2KTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBpbnB1dC0+cG9sbGVyLT5wb2xsX2ludGVydmFsKTsKK30KKworc3RhdGljIHNzaXplX3QgaW5wdXRfZGV2X3NldF9wb2xsX2ludGVydmFsKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkJICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJCSAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0ID0gdG9faW5wdXRfZGV2KGRldik7CisJc3RydWN0IGlucHV0X2Rldl9wb2xsZXIgKnBvbGxlciA9IGlucHV0LT5wb2xsZXI7CisJdW5zaWduZWQgaW50IGludGVydmFsOworCWludCBlcnI7CisKKwllcnIgPSBrc3RydG91aW50KGJ1ZiwgMCwgJmludGVydmFsKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJaWYgKGludGVydmFsIDwgcG9sbGVyLT5wb2xsX2ludGVydmFsX21pbikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoaW50ZXJ2YWwgPiBwb2xsZXItPnBvbGxfaW50ZXJ2YWxfbWF4KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW11dGV4X2xvY2soJmlucHV0LT5tdXRleCk7CisKKwlwb2xsZXItPnBvbGxfaW50ZXJ2YWwgPSBpbnRlcnZhbDsKKworCWlmIChpbnB1dC0+dXNlcnMpIHsKKwkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZwb2xsZXItPndvcmspOworCQlpZiAocG9sbGVyLT5wb2xsX2ludGVydmFsID4gMCkKKwkJCWlucHV0X2Rldl9wb2xsZXJfcXVldWVfd29yayhwb2xsZXIpOworCX0KKworCW11dGV4X3VubG9jaygmaW5wdXQtPm11dGV4KTsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIERFVklDRV9BVFRSKHBvbGwsIDA2NDQsCisJCSAgIGlucHV0X2Rldl9nZXRfcG9sbF9pbnRlcnZhbCwgaW5wdXRfZGV2X3NldF9wb2xsX2ludGVydmFsKTsKKworc3RhdGljIHNzaXplX3QgaW5wdXRfZGV2X2dldF9wb2xsX21heChzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dCA9IHRvX2lucHV0X2RldihkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIGlucHV0LT5wb2xsZXItPnBvbGxfaW50ZXJ2YWxfbWF4KTsKK30KKworc3RhdGljIERFVklDRV9BVFRSKG1heCwgMDQ0NCwgaW5wdXRfZGV2X2dldF9wb2xsX21heCwgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IGlucHV0X2Rldl9nZXRfcG9sbF9taW4oc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dCA9IHRvX2lucHV0X2RldihkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIGlucHV0LT5wb2xsZXItPnBvbGxfaW50ZXJ2YWxfbWluKTsKK30KKworc3RhdGljIERFVklDRV9BVFRSKG1pbiwgMDQ0NCwgaW5wdXRfZGV2X2dldF9wb2xsX21pbiwgTlVMTCk7CisKK3N0YXRpYyB1bW9kZV90IGlucHV0X3BvbGxlcl9hdHRyc192aXNpYmxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCQkgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIGludCBuKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGtvYmpfdG9fZGV2KGtvYmopOworCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0ID0gdG9faW5wdXRfZGV2KGRldik7CisKKwlyZXR1cm4gaW5wdXQtPnBvbGxlciA/IGF0dHItPm1vZGUgOiAwOworfQorCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqaW5wdXRfcG9sbGVyX2F0dHJzW10gPSB7CisJJmRldl9hdHRyX3BvbGwuYXR0ciwKKwkmZGV2X2F0dHJfbWF4LmF0dHIsCisJJmRldl9hdHRyX21pbi5hdHRyLAorCU5VTEwKK307CisKK3N0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgaW5wdXRfcG9sbGVyX2F0dHJpYnV0ZV9ncm91cCA9IHsKKwkuaXNfdmlzaWJsZQk9IGlucHV0X3BvbGxlcl9hdHRyc192aXNpYmxlLAorCS5hdHRycwkJPSBpbnB1dF9wb2xsZXJfYXR0cnMsCit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9pbnB1dC1wb2xsZXIuaCBiL2RyaXZlcnMvaW5wdXQvaW5wdXQtcG9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNmY2EwYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvaW5wdXQvaW5wdXQtcG9sbGVyLmgKQEAgLTAsMCArMSwxOCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLworI2lmbmRlZiBfSU5QVVRfUE9MTEVSX0gKKyNkZWZpbmUgX0lOUFVUX1BPTExFUl9ICisKKy8qCisgKiBTdXBwb3J0IGZvciBwb2xsaW5nIG1vZGUgZm9yIGlucHV0IGRldmljZXMuCisgKi8KKyNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgorCitzdHJ1Y3QgaW5wdXRfZGV2X3BvbGxlcjsKKwordm9pZCBpbnB1dF9kZXZfcG9sbGVyX2ZpbmFsaXplKHN0cnVjdCBpbnB1dF9kZXZfcG9sbGVyICpwb2xsZXIpOwordm9pZCBpbnB1dF9kZXZfcG9sbGVyX3N0YXJ0KHN0cnVjdCBpbnB1dF9kZXZfcG9sbGVyICpwb2xsZXIpOwordm9pZCBpbnB1dF9kZXZfcG9sbGVyX3N0b3Aoc3RydWN0IGlucHV0X2Rldl9wb2xsZXIgKnBvbGxlcik7CisKK2V4dGVybiBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGlucHV0X3BvbGxlcl9hdHRyaWJ1dGVfZ3JvdXA7CisKKyNlbmRpZiAvKiBfSU5QVVRfUE9MTEVSX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvaW5wdXQuYyBiL2RyaXZlcnMvaW5wdXQvaW5wdXQuYwppbmRleCA3ZjNjNWZjLi41NTA4NjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2lucHV0LmMKKysrIGIvZHJpdmVycy9pbnB1dC9pbnB1dC5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgogI2luY2x1ZGUgImlucHV0LWNvbXBhdC5oIgorI2luY2x1ZGUgImlucHV0LXBvbGxlci5oIgogCiBNT0RVTEVfQVVUSE9SKCJWb2p0ZWNoIFBhdmxpayA8dm9qdGVjaEBzdXNlLmN6PiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJJbnB1dCBjb3JlIik7CkBAIC0zOTYsNiArMzk3LDEzIEBAIHN0YXRpYyB2b2lkIGlucHV0X2hhbmRsZV9ldmVudChzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYsCiAJCWlmIChkZXYtPm51bV92YWxzID49IDIpCiAJCQlpbnB1dF9wYXNzX3ZhbHVlcyhkZXYsIGRldi0+dmFscywgZGV2LT5udW1fdmFscyk7CiAJCWRldi0+bnVtX3ZhbHMgPSAwOworCQkvKgorCQkgKiBSZXNldCB0aGUgdGltZXN0YW1wIG9uIGZsdXNoIHNvIHdlIHdvbid0IGVuZCB1cAorCQkgKiB3aXRoIGEgc3RhbGUgb25lLiBOb3RlIHdlIG9ubHkgbmVlZCB0byByZXNldCB0aGUKKwkJICogbW9ub2xpdGhpYyBvbmUgYXMgd2UgdXNlIGl0cyBwcmVzZW5jZSB3aGVuIGRlY2lkaW5nCisJCSAqIHdoZXRoZXIgdG8gZ2VuZXJhdGUgYSBzeW50aGV0aWMgdGltZXN0YW1wLgorCQkgKi8KKwkJZGV2LT50aW1lc3RhbXBbSU5QVVRfQ0xLX01PTk9dID0ga3RpbWVfc2V0KDAsIDApOwogCX0gZWxzZSBpZiAoZGV2LT5udW1fdmFscyA+PSBkZXYtPm1heF92YWxzIC0gMikgewogCQlkZXYtPnZhbHNbZGV2LT5udW1fdmFscysrXSA9IGlucHV0X3ZhbHVlX3N5bmM7CiAJCWlucHV0X3Bhc3NfdmFsdWVzKGRldiwgZGV2LT52YWxzLCBkZXYtPm51bV92YWxzKTsKQEAgLTYwMywyMCArNjExLDMxIEBAIGludCBpbnB1dF9vcGVuX2RldmljZShzdHJ1Y3QgaW5wdXRfaGFuZGxlICpoYW5kbGUpCiAKIAloYW5kbGUtPm9wZW4rKzsKIAotCWlmICghZGV2LT51c2VycysrICYmIGRldi0+b3BlbikKLQkJcmV0dmFsID0gZGV2LT5vcGVuKGRldik7CisJaWYgKGRldi0+dXNlcnMrKykgeworCQkvKgorCQkgKiBEZXZpY2UgaXMgYWxyZWFkeSBvcGVuZWQsIHNvIHdlIGNhbiBleGl0IGltbWVkaWF0ZWx5IGFuZAorCQkgKiByZXBvcnQgc3VjY2Vzcy4KKwkJICovCisJCWdvdG8gb3V0OworCX0KIAotCWlmIChyZXR2YWwpIHsKLQkJZGV2LT51c2Vycy0tOwotCQlpZiAoIS0taGFuZGxlLT5vcGVuKSB7CisJaWYgKGRldi0+b3BlbikgeworCQlyZXR2YWwgPSBkZXYtPm9wZW4oZGV2KTsKKwkJaWYgKHJldHZhbCkgeworCQkJZGV2LT51c2Vycy0tOworCQkJaGFuZGxlLT5vcGVuLS07CiAJCQkvKgogCQkJICogTWFrZSBzdXJlIHdlIGFyZSBub3QgZGVsaXZlcmluZyBhbnkgbW9yZSBldmVudHMKIAkJCSAqIHRocm91Z2ggdGhpcyBoYW5kbGUKIAkJCSAqLwogCQkJc3luY2hyb25pemVfcmN1KCk7CisJCQlnb3RvIG91dDsKIAkJfQogCX0KIAorCWlmIChkZXYtPnBvbGxlcikKKwkJaW5wdXRfZGV2X3BvbGxlcl9zdGFydChkZXYtPnBvbGxlcik7CisKICBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPm11dGV4KTsKIAlyZXR1cm4gcmV0dmFsOwpAQCAtNjU1LDggKzY3NCwxMyBAQCB2b2lkIGlucHV0X2Nsb3NlX2RldmljZShzdHJ1Y3QgaW5wdXRfaGFuZGxlICpoYW5kbGUpCiAKIAlfX2lucHV0X3JlbGVhc2VfZGV2aWNlKGhhbmRsZSk7CiAKLQlpZiAoIS0tZGV2LT51c2VycyAmJiBkZXYtPmNsb3NlKQotCQlkZXYtPmNsb3NlKGRldik7CisJaWYgKCEtLWRldi0+dXNlcnMpIHsKKwkJaWYgKGRldi0+cG9sbGVyKQorCQkJaW5wdXRfZGV2X3BvbGxlcl9zdG9wKGRldi0+cG9sbGVyKTsKKworCQlpZiAoZGV2LT5jbG9zZSkKKwkJCWRldi0+Y2xvc2UoZGV2KTsKKwl9CiAKIAlpZiAoIS0taGFuZGxlLT5vcGVuKSB7CiAJCS8qCkBAIC0xNTAyLDYgKzE1MjYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqaW5wdXRfZGV2X2F0dHJfZ3JvdXBzW10gPSB7CiAJJmlucHV0X2Rldl9hdHRyX2dyb3VwLAogCSZpbnB1dF9kZXZfaWRfYXR0cl9ncm91cCwKIAkmaW5wdXRfZGV2X2NhcHNfYXR0cl9ncm91cCwKKwkmaW5wdXRfcG9sbGVyX2F0dHJpYnV0ZV9ncm91cCwKIAlOVUxMCiB9OwogCkBAIC0xNTExLDYgKzE1MzYsNyBAQCBzdGF0aWMgdm9pZCBpbnB1dF9kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCiAKIAlpbnB1dF9mZl9kZXN0cm95KGRldik7CiAJaW5wdXRfbXRfZGVzdHJveV9zbG90cyhkZXYpOworCWtmcmVlKGRldi0+cG9sbGVyKTsKIAlrZnJlZShkZXYtPmFic2luZm8pOwogCWtmcmVlKGRldi0+dmFscyk7CiAJa2ZyZWUoZGV2KTsKQEAgLTE4OTUsNiArMTkyMSw0NiBAQCB2b2lkIGlucHV0X2ZyZWVfZGV2aWNlKHN0cnVjdCBpbnB1dF9kZXYgKmRldikKIEVYUE9SVF9TWU1CT0woaW5wdXRfZnJlZV9kZXZpY2UpOwogCiAvKioKKyAqIGlucHV0X3NldF90aW1lc3RhbXAgLSBzZXQgdGltZXN0YW1wIGZvciBpbnB1dCBldmVudHMKKyAqIEBkZXY6IGlucHV0IGRldmljZSB0byBzZXQgdGltZXN0YW1wIGZvcgorICogQHRpbWVzdGFtcDogdGhlIHRpbWUgYXQgd2hpY2ggdGhlIGV2ZW50IGhhcyBvY2N1cnJlZAorICogICBpbiBDTE9DS19NT05PVE9OSUMKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIHRvIHByb3ZpZGUgdG8gdGhlIGlucHV0IHN5c3RlbSBhIG1vcmUKKyAqIGFjY3VyYXRlIHRpbWUgb2Ygd2hlbiBhbiBldmVudCBhY3R1YWxseSBvY2N1cnJlZC4gVGhlIGRyaXZlciBzaG91bGQKKyAqIGNhbGwgdGhpcyBmdW5jdGlvbiBhcyBzb29uIGFzIGEgdGltZXN0YW1wIGlzIGFjcXVpcmVkIGVuc3VyaW5nCisgKiBjbG9jayBjb252ZXJzaW9ucyBpbiBpbnB1dF9zZXRfdGltZXN0YW1wIGFyZSBkb25lIGNvcnJlY3RseS4KKyAqCisgKiBUaGUgc3lzdGVtIGVudGVyaW5nIHN1c3BlbmQgc3RhdGUgYmV0d2VlbiB0aW1lc3RhbXAgYWNxdWlzaXRpb24gYW5kCisgKiBjYWxsaW5nIGlucHV0X3NldF90aW1lc3RhbXAgY2FuIHJlc3VsdCBpbiBpbmFjY3VyYXRlIGNvbnZlcnNpb25zLgorICovCit2b2lkIGlucHV0X3NldF90aW1lc3RhbXAoc3RydWN0IGlucHV0X2RldiAqZGV2LCBrdGltZV90IHRpbWVzdGFtcCkKK3sKKwlkZXYtPnRpbWVzdGFtcFtJTlBVVF9DTEtfTU9OT10gPSB0aW1lc3RhbXA7CisJZGV2LT50aW1lc3RhbXBbSU5QVVRfQ0xLX1JFQUxdID0ga3RpbWVfbW9ub190b19yZWFsKHRpbWVzdGFtcCk7CisJZGV2LT50aW1lc3RhbXBbSU5QVVRfQ0xLX0JPT1RdID0ga3RpbWVfbW9ub190b19hbnkodGltZXN0YW1wLAorCQkJCQkJCSAgIFRLX09GRlNfQk9PVCk7Cit9CitFWFBPUlRfU1lNQk9MKGlucHV0X3NldF90aW1lc3RhbXApOworCisvKioKKyAqIGlucHV0X2dldF90aW1lc3RhbXAgLSBnZXQgdGltZXN0YW1wIGZvciBpbnB1dCBldmVudHMKKyAqIEBkZXY6IGlucHV0IGRldmljZSB0byBnZXQgdGltZXN0YW1wIGZyb20KKyAqCisgKiBBIHZhbGlkIHRpbWVzdGFtcCBpcyBhIHRpbWVzdGFtcCBvZiBub24temVybyB2YWx1ZS4KKyAqLwora3RpbWVfdCAqaW5wdXRfZ2V0X3RpbWVzdGFtcChzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYpCit7CisJY29uc3Qga3RpbWVfdCBpbnZhbGlkX3RpbWVzdGFtcCA9IGt0aW1lX3NldCgwLCAwKTsKKworCWlmICgha3RpbWVfY29tcGFyZShkZXYtPnRpbWVzdGFtcFtJTlBVVF9DTEtfTU9OT10sIGludmFsaWRfdGltZXN0YW1wKSkKKwkJaW5wdXRfc2V0X3RpbWVzdGFtcChkZXYsIGt0aW1lX2dldCgpKTsKKworCXJldHVybiBkZXYtPnRpbWVzdGFtcDsKK30KK0VYUE9SVF9TWU1CT0woaW5wdXRfZ2V0X3RpbWVzdGFtcCk7CisKKy8qKgogICogaW5wdXRfc2V0X2NhcGFiaWxpdHkgLSBtYXJrIGRldmljZSBhcyBjYXBhYmxlIG9mIGEgY2VydGFpbiBldmVudAogICogQGRldjogZGV2aWNlIHRoYXQgaXMgY2FwYWJsZSBvZiBlbWl0dGluZyBvciBhY2NlcHRpbmcgZXZlbnQKICAqIEB0eXBlOiB0eXBlIG9mIHRoZSBldmVudCAoRVZfS0VZLCBFVl9SRUwsIGV0Yy4uLikKQEAgLTIxMzUsNiArMjIwMSw5IEBAIGludCBpbnB1dF9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGlucHV0X2RldiAqZGV2KQogCWlmICghZGV2LT5zZXRrZXljb2RlKQogCQlkZXYtPnNldGtleWNvZGUgPSBpbnB1dF9kZWZhdWx0X3NldGtleWNvZGU7CiAKKwlpZiAoZGV2LT5wb2xsZXIpCisJCWlucHV0X2Rldl9wb2xsZXJfZmluYWxpemUoZGV2LT5wb2xsZXIpOworCiAJZXJyb3IgPSBkZXZpY2VfYWRkKCZkZXYtPmRldik7CiAJaWYgKGVycm9yKQogCQlnb3RvIGVycl9mcmVlX3ZhbHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2pveXN0aWNrL0tjb25maWcgYi9kcml2ZXJzL2lucHV0L2pveXN0aWNrL0tjb25maWcKaW5kZXggNzJiOTMyOS4uMzEyYjg1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9qb3lzdGljay9LY29uZmlnCisrKyBiL2RyaXZlcnMvaW5wdXQvam95c3RpY2svS2NvbmZpZwpAQCAtMzYyLDQgKzM2MiwxNCBAQAogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCiAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcHhyYy4KIAorY29uZmlnIEpPWVNUSUNLX0ZTSUE2QgorCXRyaXN0YXRlICJGbHlTa3kgRlMtaUE2QiBSQyBSZWNlaXZlciIKKwlzZWxlY3QgU0VSSU8KKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB1c2UgYSBGbHlTa3kgRlMtaTYgUkMgcmVtb3RlIGNvbnRyb2wgYWxvbmcgd2l0aCB0aGUKKwkgIEZTLWlBNkIgUkMgcmVjZWl2ZXIgYXMgYSBqb3lzdGljayBpbnB1dCBkZXZpY2UuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGZzaWE2Yi4KKwogZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvam95c3RpY2svTWFrZWZpbGUgYi9kcml2ZXJzL2lucHV0L2pveXN0aWNrL01ha2VmaWxlCmluZGV4IGRkMDQ5MmUuLjg2NTYwMjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvam95c3RpY2svTWFrZWZpbGUKKysrIGIvZHJpdmVycy9pbnB1dC9qb3lzdGljay9NYWtlZmlsZQpAQCAtMTIsNiArMTIsNyBAQAogb2JqLSQoQ09ORklHX0pPWVNUSUNLX0FOQUxPRykJCSs9IGFuYWxvZy5vCiBvYmotJChDT05GSUdfSk9ZU1RJQ0tfQ09CUkEpCQkrPSBjb2JyYS5vCiBvYmotJChDT05GSUdfSk9ZU1RJQ0tfREI5KQkJKz0gZGI5Lm8KK29iai0kKENPTkZJR19KT1lTVElDS19GU0lBNkIpCQkrPSBmc2lhNmIubwogb2JqLSQoQ09ORklHX0pPWVNUSUNLX0dBTUVDT04pCQkrPSBnYW1lY29uLm8KIG9iai0kKENPTkZJR19KT1lTVElDS19HRjJLKQkJKz0gZ2Yyay5vCiBvYmotJChDT05GSUdfSk9ZU1RJQ0tfR1JJUCkJCSs9IGdyaXAubwpAQCAtMjMsNyArMjQsNyBAQAogb2JqLSQoQ09ORklHX0pPWVNUSUNLX01BR0VMTEFOKQkJKz0gbWFnZWxsYW4ubwogb2JqLSQoQ09ORklHX0pPWVNUSUNLX01BUExFKQkJKz0gbWFwbGVjb250cm9sLm8KIG9iai0kKENPTkZJR19KT1lTVElDS19QU1hQQURfU1BJKQkrPSBwc3hwYWQtc3BpLm8KLW9iai0kKENPTkZJR19KT1lTVElDS19QWFJDKQkJCSs9IHB4cmMubworb2JqLSQoQ09ORklHX0pPWVNUSUNLX1BYUkMpCQkrPSBweHJjLm8KIG9iai0kKENPTkZJR19KT1lTVElDS19TSURFV0lOREVSKQkrPSBzaWRld2luZGVyLm8KIG9iai0kKENPTkZJR19KT1lTVElDS19TUEFDRUJBTEwpCSs9IHNwYWNlYmFsbC5vCiBvYmotJChDT05GSUdfSk9ZU1RJQ0tfU1BBQ0VPUkIpCQkrPSBzcGFjZW9yYi5vCkBAIC0zMiw3ICszMyw3IEBACiBvYmotJChDT05GSUdfSk9ZU1RJQ0tfVFVSQk9HUkFGWCkJKz0gdHVyYm9ncmFmeC5vCiBvYmotJChDT05GSUdfSk9ZU1RJQ0tfVFdJREpPWSkJCSs9IHR3aWRqb3kubwogb2JqLSQoQ09ORklHX0pPWVNUSUNLX1dBUlJJT1IpCQkrPSB3YXJyaW9yLm8KK29iai0kKENPTkZJR19KT1lTVElDS19XQUxLRVJBMDcwMSkJKz0gd2Fsa2VyYTA3MDEubwogb2JqLSQoQ09ORklHX0pPWVNUSUNLX1hQQUQpCQkrPSB4cGFkLm8KIG9iai0kKENPTkZJR19KT1lTVElDS19aSEVOSFVBKQkJKz0gemhlbmh1YS5vCi1vYmotJChDT05GSUdfSk9ZU1RJQ0tfV0FMS0VSQTA3MDEpCSs9IHdhbGtlcmEwNzAxLm8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9qb3lzdGljay9mc2lhNmIuYyBiL2RyaXZlcnMvaW5wdXQvam95c3RpY2svZnNpYTZiLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc4YzRjNwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvaW5wdXQvam95c3RpY2svZnNpYTZiLmMKQEAgLTAsMCArMSwyMzEgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogRlMtaUE2QiBpQnVzIFJDIHJlY2VpdmVyIGRyaXZlcgorICoKKyAqIFRoaXMgZHJpdmVyIHByb3ZpZGVzIGFsbCAxNCBjaGFubmVscyBvZiB0aGUgRmx5U2t5IEZTLWlhNkIgUkMgcmVjZWl2ZXIKKyAqIGFzIGFuYWxvZyB2YWx1ZXMuCisgKgorICogQWRkaXRpb25hbGx5LCB0aGUgY2hhbm5lbHMgY2FuIGJlIGNvbnZlcnRlZCB0byBkaXNjcmV0ZSBzd2l0Y2ggdmFsdWVzLgorICogQnkgZGVmYXVsdCwgaXQgaXMgY29uZmlndXJlZCBmb3IgdGhlIG9mZmljYWwgRlMtaTYgcmVtb3RlIGNvbnRyb2wuCisgKiBJZiB5b3UgdXNlIGEgZGlmZmVyZW50IGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24sIHlvdSBjYW4gY29uZmlndXJlIGl0CisgKiB1c2luZyB0aGUgYHN3aXRjaF9jb25maWdgIHBhcmFtZXRlci4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpby5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjZGVmaW5lIERSSVZFUl9ERVNDCQkiRlMtaUE2QiBpQnVzIFJDIHJlY2VpdmVyIgorCitNT0RVTEVfQVVUSE9SKCJNYXJrdXMgS29jaCA8bWFya3VzQG5vdHN5bmNpbmcubmV0PiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworI2RlZmluZSBJQlVTX1NFUlZPX0NPVU5UCTE0CisKK3N0YXRpYyBjaGFyICpzd2l0Y2hfY29uZmlnID0gIjAwMDAwMDIyMzIwMDAwIjsKK21vZHVsZV9wYXJhbShzd2l0Y2hfY29uZmlnLCBjaGFycCwgMDQ0NCk7CitNT0RVTEVfUEFSTV9ERVNDKHN3aXRjaF9jb25maWcsCisJCSAiQW1vdW50IG9mIHN3aXRjaCBwb3NpdGlvbnMgcGVyIGNoYW5uZWwgKDE0IGNoYXJhY3RlcnMsIDAtMykiKTsKKworc3RhdGljIGludCBmc2lhNmJfYXhlc1tJQlVTX1NFUlZPX0NPVU5UXSA9IHsKKwlBQlNfWCwgQUJTX1ksCisJQUJTX1osIEFCU19SWCwKKwlBQlNfUlksIEFCU19SWiwKKwlBQlNfSEFUMFgsIEFCU19IQVQwWSwKKwlBQlNfSEFUMVgsIEFCU19IQVQxWSwKKwlBQlNfSEFUMlgsIEFCU19IQVQyWSwKKwlBQlNfSEFUM1gsIEFCU19IQVQzWQorfTsKKworZW51bSBpYnVzX3N0YXRlIHsgU1lOQywgQ09MTEVDVCwgUFJPQ0VTUyB9OworCitzdHJ1Y3QgaWJ1c19wYWNrZXQgeworCWVudW0gaWJ1c19zdGF0ZSBzdGF0ZTsKKworCWludCBvZmZzZXQ7CisJdTE2IGlidWY7CisJdTE2IGNoYW5uZWxbSUJVU19TRVJWT19DT1VOVF07Cit9OworCitzdHJ1Y3QgZnNpYTZiIHsKKwlzdHJ1Y3QgaW5wdXRfZGV2ICpkZXY7CisJc3RydWN0IGlidXNfcGFja2V0IHBhY2tldDsKKworCWNoYXIgcGh5c1szMl07Cit9OworCitzdGF0aWMgaXJxcmV0dXJuX3QgZnNpYTZiX3NlcmlvX2lycShzdHJ1Y3Qgc2VyaW8gKnNlcmlvLAorCQkJCSAgICB1bnNpZ25lZCBjaGFyIGRhdGEsIHVuc2lnbmVkIGludCBmbGFncykKK3sKKwlzdHJ1Y3QgZnNpYTZiICpmc2lhNmIgPSBzZXJpb19nZXRfZHJ2ZGF0YShzZXJpbyk7CisJaW50IGk7CisJaW50IHN3X3N0YXRlOworCWludCBzd19pZCA9IEJUTl8wOworCisJZnNpYTZiLT5wYWNrZXQuaWJ1ZiA9IChkYXRhIDw8IDgpIHwgKChmc2lhNmItPnBhY2tldC5pYnVmID4+IDgpICYgMHhGRik7CisKKwlzd2l0Y2ggKGZzaWE2Yi0+cGFja2V0LnN0YXRlKSB7CisJY2FzZSBTWU5DOgorCQlpZiAoZnNpYTZiLT5wYWNrZXQuaWJ1ZiA9PSAweDQwMjApCisJCQlmc2lhNmItPnBhY2tldC5zdGF0ZSA9IENPTExFQ1Q7CisJCWJyZWFrOworCisJY2FzZSBDT0xMRUNUOgorCQlmc2lhNmItPnBhY2tldC5zdGF0ZSA9IFBST0NFU1M7CisJCWJyZWFrOworCisJY2FzZSBQUk9DRVNTOgorCQlmc2lhNmItPnBhY2tldC5jaGFubmVsW2ZzaWE2Yi0+cGFja2V0Lm9mZnNldF0gPQorCQkJCWZzaWE2Yi0+cGFja2V0LmlidWY7CisJCWZzaWE2Yi0+cGFja2V0Lm9mZnNldCsrOworCisJCWlmIChmc2lhNmItPnBhY2tldC5vZmZzZXQgPT0gSUJVU19TRVJWT19DT1VOVCkgeworCQkJZnNpYTZiLT5wYWNrZXQub2Zmc2V0ID0gMDsKKwkJCWZzaWE2Yi0+cGFja2V0LnN0YXRlID0gU1lOQzsKKwkJCWZvciAoaSA9IDA7IGkgPCBJQlVTX1NFUlZPX0NPVU5UOyArK2kpIHsKKwkJCQlpbnB1dF9yZXBvcnRfYWJzKGZzaWE2Yi0+ZGV2LCBmc2lhNmJfYXhlc1tpXSwKKwkJCQkJCSBmc2lhNmItPnBhY2tldC5jaGFubmVsW2ldKTsKKworCQkJCXN3X3N0YXRlID0gMDsKKwkJCQlpZiAoZnNpYTZiLT5wYWNrZXQuY2hhbm5lbFtpXSA+IDE5MDApCisJCQkJCXN3X3N0YXRlID0gMTsKKwkJCQllbHNlIGlmIChmc2lhNmItPnBhY2tldC5jaGFubmVsW2ldIDwgMTEwMCkKKwkJCQkJc3dfc3RhdGUgPSAyOworCisJCQkJc3dpdGNoIChzd2l0Y2hfY29uZmlnW2ldKSB7CisJCQkJY2FzZSAnMyc6CisJCQkJCWlucHV0X3JlcG9ydF9rZXkoZnNpYTZiLT5kZXYsCisJCQkJCQkJIHN3X2lkKyssCisJCQkJCQkJIHN3X3N0YXRlID09IDApOworCQkJCQkvKiBmYWxsLXRocm91Z2ggKi8KKwkJCQljYXNlICcyJzoKKwkJCQkJaW5wdXRfcmVwb3J0X2tleShmc2lhNmItPmRldiwKKwkJCQkJCQkgc3dfaWQrKywKKwkJCQkJCQkgc3dfc3RhdGUgPT0gMSk7CisJCQkJCS8qIGZhbGwtdGhyb3VnaCAqLworCQkJCWNhc2UgJzEnOgorCQkJCQlpbnB1dF9yZXBvcnRfa2V5KGZzaWE2Yi0+ZGV2LAorCQkJCQkJCSBzd19pZCsrLAorCQkJCQkJCSBzd19zdGF0ZSA9PSAyKTsKKwkJCQl9CisJCQl9CisJCQlpbnB1dF9zeW5jKGZzaWE2Yi0+ZGV2KTsKKwkJfSBlbHNlIHsKKwkJCWZzaWE2Yi0+cGFja2V0LnN0YXRlID0gQ09MTEVDVDsKKwkJfQorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpbnQgZnNpYTZiX3NlcmlvX2Nvbm5lY3Qoc3RydWN0IHNlcmlvICpzZXJpbywgc3RydWN0IHNlcmlvX2RyaXZlciAqZHJ2KQoreworCXN0cnVjdCBmc2lhNmIgKmZzaWE2YjsKKwlzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dF9kZXY7CisJaW50IGVycjsKKwlpbnQgaSwgajsKKwlpbnQgc3dfaWQgPSAwOworCisJZnNpYTZiID0ga3phbGxvYyhzaXplb2YoKmZzaWE2YiksIEdGUF9LRVJORUwpOworCWlmICghZnNpYTZiKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZzaWE2Yi0+cGFja2V0LmlidWYgPSAwOworCWZzaWE2Yi0+cGFja2V0Lm9mZnNldCA9IDA7CisJZnNpYTZiLT5wYWNrZXQuc3RhdGUgPSBTWU5DOworCisJc2VyaW9fc2V0X2RydmRhdGEoc2VyaW8sIGZzaWE2Yik7CisKKwlpbnB1dF9kZXYgPSBpbnB1dF9hbGxvY2F0ZV9kZXZpY2UoKTsKKwlpZiAoIWlucHV0X2RldikgeworCQllcnIgPSAtRU5PTUVNOworCQlnb3RvIGZhaWwxOworCX0KKwlmc2lhNmItPmRldiA9IGlucHV0X2RldjsKKworCXNucHJpbnRmKGZzaWE2Yi0+cGh5cywgc2l6ZW9mKGZzaWE2Yi0+cGh5cyksICIlcy9pbnB1dDAiLCBzZXJpby0+cGh5cyk7CisKKwlpbnB1dF9kZXYtPm5hbWUgPSBEUklWRVJfREVTQzsKKwlpbnB1dF9kZXYtPnBoeXMgPSBmc2lhNmItPnBoeXM7CisJaW5wdXRfZGV2LT5pZC5idXN0eXBlID0gQlVTX1JTMjMyOworCWlucHV0X2Rldi0+aWQudmVuZG9yID0gU0VSSU9fRlNJQTZCOworCWlucHV0X2Rldi0+aWQucHJvZHVjdCA9IHNlcmlvLT5pZC5pZDsKKwlpbnB1dF9kZXYtPmlkLnZlcnNpb24gPSAweDAxMDA7CisJaW5wdXRfZGV2LT5kZXYucGFyZW50ID0gJnNlcmlvLT5kZXY7CisKKwlmb3IgKGkgPSAwOyBpIDwgSUJVU19TRVJWT19DT1VOVDsgaSsrKQorCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhpbnB1dF9kZXYsIGZzaWE2Yl9heGVzW2ldLAorCQkJCSAgICAgMTAwMCwgMjAwMCwgMiwgMik7CisKKwkvKiBSZWdpc3RlciBzd2l0Y2ggY29uZmlndXJhdGlvbiAqLworCWZvciAoaSA9IDA7IGkgPCBJQlVTX1NFUlZPX0NPVU5UOyBpKyspIHsKKwkJaWYgKHN3aXRjaF9jb25maWdbaV0gPCAnMCcgfHwgc3dpdGNoX2NvbmZpZ1tpXSA+ICczJykgeworCQkJZGV2X2VycigmZnNpYTZiLT5kZXYtPmRldiwKKwkJCQkiSW52YWxpZCBzd2l0Y2ggY29uZmlndXJhdGlvbiBzdXBwbGllZCBmb3IgZnNpYTZiLlxuIik7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBmYWlsMjsKKwkJfQorCisJCWZvciAoaiA9ICcxJzsgaiA8PSBzd2l0Y2hfY29uZmlnW2ldOyBqKyspIHsKKwkJCWlucHV0X3NldF9jYXBhYmlsaXR5KGlucHV0X2RldiwgRVZfS0VZLCBCVE5fMCArIHN3X2lkKTsKKwkJCXN3X2lkKys7CisJCX0KKwl9CisKKwllcnIgPSBzZXJpb19vcGVuKHNlcmlvLCBkcnYpOworCWlmIChlcnIpCisJCWdvdG8gZmFpbDI7CisKKwllcnIgPSBpbnB1dF9yZWdpc3Rlcl9kZXZpY2UoZnNpYTZiLT5kZXYpOworCWlmIChlcnIpCisJCWdvdG8gZmFpbDM7CisKKwlyZXR1cm4gMDsKKworZmFpbDM6CXNlcmlvX2Nsb3NlKHNlcmlvKTsKK2ZhaWwyOglpbnB1dF9mcmVlX2RldmljZShpbnB1dF9kZXYpOworZmFpbDE6CXNlcmlvX3NldF9kcnZkYXRhKHNlcmlvLCBOVUxMKTsKKwlrZnJlZShmc2lhNmIpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB2b2lkIGZzaWE2Yl9zZXJpb19kaXNjb25uZWN0KHN0cnVjdCBzZXJpbyAqc2VyaW8pCit7CisJc3RydWN0IGZzaWE2YiAqZnNpYTZiID0gc2VyaW9fZ2V0X2RydmRhdGEoc2VyaW8pOworCisJc2VyaW9fY2xvc2Uoc2VyaW8pOworCXNlcmlvX3NldF9kcnZkYXRhKHNlcmlvLCBOVUxMKTsKKwlpbnB1dF91bnJlZ2lzdGVyX2RldmljZShmc2lhNmItPmRldik7CisJa2ZyZWUoZnNpYTZiKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBzZXJpb19kZXZpY2VfaWQgZnNpYTZiX3NlcmlvX2lkc1tdID0geworCXsKKwkJLnR5cGUJPSBTRVJJT19SUzIzMiwKKwkJLnByb3RvCT0gU0VSSU9fRlNJQTZCLAorCQkuaWQJPSBTRVJJT19BTlksCisJCS5leHRyYQk9IFNFUklPX0FOWSwKKwl9LAorCXsgMCB9Cit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFKHNlcmlvLCBmc2lhNmJfc2VyaW9faWRzKTsKKworc3RhdGljIHN0cnVjdCBzZXJpb19kcml2ZXIgZnNpYTZiX3NlcmlvX2RydiA9IHsKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAiZnNpYTZiIgorCX0sCisJLmRlc2NyaXB0aW9uCT0gRFJJVkVSX0RFU0MsCisJLmlkX3RhYmxlCT0gZnNpYTZiX3NlcmlvX2lkcywKKwkuaW50ZXJydXB0CT0gZnNpYTZiX3NlcmlvX2lycSwKKwkuY29ubmVjdAk9IGZzaWE2Yl9zZXJpb19jb25uZWN0LAorCS5kaXNjb25uZWN0CT0gZnNpYTZiX3NlcmlvX2Rpc2Nvbm5lY3QKK307CisKK21vZHVsZV9zZXJpb19kcml2ZXIoZnNpYTZiX3NlcmlvX2RydikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvam95c3RpY2svc2lkZXdpbmRlci5jIGIvZHJpdmVycy9pbnB1dC9qb3lzdGljay9zaWRld2luZGVyLmMKaW5kZXggMDI4NGRhOC4uMTc3N2U2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9qb3lzdGljay9zaWRld2luZGVyLmMKKysrIGIvZHJpdmVycy9pbnB1dC9qb3lzdGljay9zaWRld2luZGVyLmMKQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgX191NjQgc3dfZ2V0X2JpdHModW5zaWduZWQgY2hhciAqYnVmLCBpbnQgcG9zLCBpbnQgbnVtLCBjaGFyIGJpdHMpCiAKIHN0YXRpYyB2b2lkIHN3X2luaXRfZGlnaXRhbChzdHJ1Y3QgZ2FtZXBvcnQgKmdhbWVwb3J0KQogewotCWludCBzZXFbXSA9IHsgMTQwLCAxNDArNzI1LCAxNDArMzAwLCAwIH07CisJc3RhdGljIGNvbnN0IGludCBzZXFbXSA9IHsgMTQwLCAxNDArNzI1LCAxNDArMzAwLCAwIH07CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgaSwgdDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9LY29uZmlnIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9LY29uZmlnCmluZGV4IDkwZThhN2YuLjg5MTFiYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvS2NvbmZpZworKysgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL0tjb25maWcKQEAgLTczMywyMSArNzMzLDEwIEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB4dGtiZC4KIAotY29uZmlnIEtFWUJPQVJEX1c5MFA5MTAKLQl0cmlzdGF0ZSAiVzkwUDkxMCBNYXRyaXggS2V5cGFkIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBBUkNIX1c5MFg5MDAKLQlzZWxlY3QgSU5QVVRfTUFUUklYS01BUAotCWhlbHAKLQkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBtYXRyaXgga2V5cGFkIG9uIGV2YWx1YXRpb24gYm9hcmQKLQkgIGJhc2VkIG9uIFc5MFA5MTAuCi0KLQkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQotCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHc5MHA5MTBfa2V5cGFkLgotCiBjb25maWcgS0VZQk9BUkRfQ1JPU19FQwogCXRyaXN0YXRlICJDaHJvbWVPUyBFQyBrZXlib2FyZCIKIAlzZWxlY3QgSU5QVVRfTUFUUklYS01BUAotCWRlcGVuZHMgb24gTUZEX0NST1NfRUMKKwlkZXBlbmRzIG9uIENST1NfRUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGVuYWJsZSB0aGUgbWF0cml4IGtleWJvYXJkIHVzZWQgYnkgQ2hyb21lT1MgZGV2aWNlcwogCSAgYW5kIGltcGxlbWVudGVkIG9uIHRoZSBDaHJvbWVPUyBFQy4gWW91IG11c3QgZW5hYmxlIG9uZSBidXMgb3B0aW9uCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL01ha2VmaWxlIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9NYWtlZmlsZQppbmRleCAwNmEwYWY2Li45NTEwMzI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvTWFrZWZpbGUKQEAgLTY4LDQgKzY4LDMgQEAKIG9iai0kKENPTkZJR19LRVlCT0FSRF9UTTJfVE9VQ0hLRVkpCSs9IHRtMi10b3VjaGtleS5vCiBvYmotJChDT05GSUdfS0VZQk9BUkRfVFdMNDAzMCkJCSs9IHR3bDQwMzBfa2V5cGFkLm8KIG9iai0kKENPTkZJR19LRVlCT0FSRF9YVEtCRCkJCSs9IHh0a2JkLm8KLW9iai0kKENPTkZJR19LRVlCT0FSRF9XOTBQOTEwKQkJKz0gdzkwcDkxMF9rZXlwYWQubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9hcHBsZXNwaS5jIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9hcHBsZXNwaS5jCmluZGV4IDU4NDI4OWIuLmQzODM5ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvYXBwbGVzcGkuYworKysgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL2FwcGxlc3BpLmMKQEAgLTE3OTcsMzAgKzE3OTcsMTIgQEAgc3RhdGljIGludCBhcHBsZXNwaV9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCiAJLyogc2V0IHVwIGRlYnVnZnMgZW50cmllcyBmb3IgdG91Y2hwYWQgZGltZW5zaW9ucyBsb2dnaW5nICovCiAJYXBwbGVzcGktPmRlYnVnZnNfcm9vdCA9IGRlYnVnZnNfY3JlYXRlX2RpcigiYXBwbGVzcGkiLCBOVUxMKTsKLQlpZiAoSVNfRVJSKGFwcGxlc3BpLT5kZWJ1Z2ZzX3Jvb3QpKSB7Ci0JCWlmIChQVFJfRVJSKGFwcGxlc3BpLT5kZWJ1Z2ZzX3Jvb3QpICE9IC1FTk9ERVYpCi0JCQlkZXZfd2FybigmYXBwbGVzcGktPnNwaS0+ZGV2LAotCQkJCSAiRXJyb3IgY3JlYXRpbmcgZGVidWdmcyByb290IGVudHJ5ICglbGQpXG4iLAotCQkJCSBQVFJfRVJSKGFwcGxlc3BpLT5kZWJ1Z2ZzX3Jvb3QpKTsKLQl9IGVsc2UgewotCQlzdHJ1Y3QgZGVudHJ5ICpyZXQ7CiAKLQkJcmV0ID0gZGVidWdmc19jcmVhdGVfYm9vbCgiZW5hYmxlX3RwX2RpbSIsIDA2MDAsCi0JCQkJCSAgYXBwbGVzcGktPmRlYnVnZnNfcm9vdCwKLQkJCQkJICAmYXBwbGVzcGktPmRlYnVnX3RwX2RpbSk7Ci0JCWlmIChJU19FUlIocmV0KSkKLQkJCWRldl9kYmcoJmFwcGxlc3BpLT5zcGktPmRldiwKLQkJCQkiRXJyb3IgY3JlYXRpbmcgZGVidWdmcyBlbnRyeSBlbmFibGVfdHBfZGltICglbGQpXG4iLAotCQkJCVBUUl9FUlIocmV0KSk7CisJZGVidWdmc19jcmVhdGVfYm9vbCgiZW5hYmxlX3RwX2RpbSIsIDA2MDAsIGFwcGxlc3BpLT5kZWJ1Z2ZzX3Jvb3QsCisJCQkgICAgJmFwcGxlc3BpLT5kZWJ1Z190cF9kaW0pOwogCi0JCXJldCA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoInRwX2RpbSIsIDA0MDAsCi0JCQkJCSAgYXBwbGVzcGktPmRlYnVnZnNfcm9vdCwgYXBwbGVzcGksCi0JCQkJCSAgJmFwcGxlc3BpX3RwX2RpbV9mb3BzKTsKLQkJaWYgKElTX0VSUihyZXQpKQotCQkJZGV2X2RiZygmYXBwbGVzcGktPnNwaS0+ZGV2LAotCQkJCSJFcnJvciBjcmVhdGluZyBkZWJ1Z2ZzIGVudHJ5IHRwX2RpbSAoJWxkKVxuIiwKLQkJCQlQVFJfRVJSKHJldCkpOwotCX0KKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJ0cF9kaW0iLCAwNDAwLCBhcHBsZXNwaS0+ZGVidWdmc19yb290LCBhcHBsZXNwaSwKKwkJCSAgICAmYXBwbGVzcGlfdHBfZGltX2ZvcHMpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL2JjbS1rZXlwYWQuYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvYmNtLWtleXBhZC5jCmluZGV4IGUxY2Y2M2UuLjJiNzcxYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvYmNtLWtleXBhZC5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvYmNtLWtleXBhZC5jCkBAIC00MTMsMTAgKzQxMyw4IEBAIHN0YXRpYyBpbnQgYmNtX2twX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJYmNtX2twX3N0b3Aoa3ApOwogCiAJa3AtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGtwLT5pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIElSUSBzcGVjaWZpZWRcbiIpOworCWlmIChrcC0+aXJxIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJZXJyb3IgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKCZwZGV2LT5kZXYsIGtwLT5pcnEsCiAJCQkJCSAgTlVMTCwgYmNtX2twX2lzcl90aHJlYWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL2Nyb3NfZWNfa2V5Yi5jIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9jcm9zX2VjX2tleWIuYwppbmRleCAzOGNiNmQ4Li44ZDRkOTc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL2Nyb3NfZWNfa2V5Yi5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvY3Jvc19lY19rZXliLmMKQEAgLTIyLDggKzIyLDggQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvc3lzcnEuaD4KICNpbmNsdWRlIDxsaW51eC9pbnB1dC9tYXRyaXhfa2V5cGFkLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19wcm90by5oPgogCiAjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgogCkBAIC0yMjYsNiArMjI2LDggQEAgc3RhdGljIGludCBjcm9zX2VjX2tleWJfd29yayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAogewogCXN0cnVjdCBjcm9zX2VjX2tleWIgKmNrZGV2ID0gY29udGFpbmVyX29mKG5iLCBzdHJ1Y3QgY3Jvc19lY19rZXliLAogCQkJCQkJICBub3RpZmllcik7CisJdWludDhfdCBta2JwX2V2ZW50X3R5cGUgPSBja2Rldi0+ZWMtPmV2ZW50X2RhdGEuZXZlbnRfdHlwZSAmCisJCQkJICBFQ19NS0JQX0VWRU5UX1RZUEVfTUFTSzsKIAl1MzIgdmFsOwogCXVuc2lnbmVkIGludCBldl90eXBlOwogCkBAIC0yMzcsNyArMjM5LDcgQEAgc3RhdGljIGludCBjcm9zX2VjX2tleWJfd29yayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAogCWlmIChxdWV1ZWRfZHVyaW5nX3N1c3BlbmQgJiYgIWRldmljZV9tYXlfd2FrZXVwKGNrZGV2LT5kZXYpKQogCQlyZXR1cm4gTk9USUZZX09LOwogCi0Jc3dpdGNoIChja2Rldi0+ZWMtPmV2ZW50X2RhdGEuZXZlbnRfdHlwZSAmIEVDX01LQlBfRVZFTlRfVFlQRV9NQVNLKSB7CisJc3dpdGNoIChta2JwX2V2ZW50X3R5cGUpIHsKIAljYXNlIEVDX01LQlBfRVZFTlRfS0VZX01BVFJJWDoKIAkJcG1fd2FrZXVwX2V2ZW50KGNrZGV2LT5kZXYsIDApOwogCkBAIC0yNjQsNyArMjY2LDcgQEAgc3RhdGljIGludCBjcm9zX2VjX2tleWJfd29yayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAogCWNhc2UgRUNfTUtCUF9FVkVOVF9TV0lUQ0g6CiAJCXBtX3dha2V1cF9ldmVudChja2Rldi0+ZGV2LCAwKTsKIAotCQlpZiAoY2tkZXYtPmVjLT5ldmVudF9kYXRhLmV2ZW50X3R5cGUgPT0gRUNfTUtCUF9FVkVOVF9CVVRUT04pIHsKKwkJaWYgKG1rYnBfZXZlbnRfdHlwZSA9PSBFQ19NS0JQX0VWRU5UX0JVVFRPTikgewogCQkJdmFsID0gZ2V0X3VuYWxpZ25lZF9sZTMyKAogCQkJCQkmY2tkZXYtPmVjLT5ldmVudF9kYXRhLmRhdGEuYnV0dG9ucyk7CiAJCQlldl90eXBlID0gRVZfS0VZOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9kYXZpbmNpX2tleXNjYW4uYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvZGF2aW5jaV9rZXlzY2FuLmMKaW5kZXggMWQ5NDkyOC4uZjQ4OWNkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9kYXZpbmNpX2tleXNjYW4uYworKysgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL2RhdmluY2lfa2V5c2Nhbi5jCkBAIC0xOTIsNyArMTkyLDYgQEAgc3RhdGljIGludCBfX2luaXQgZGF2aW5jaV9rc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJZGF2aW5jaV9rcy0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKIAlpZiAoZGF2aW5jaV9rcy0+aXJxIDwgMCkgewotCQlkZXZfZXJyKGRldiwgIm5vIGtleSBzY2FuIGlycVxuIik7CiAJCWVycm9yID0gZGF2aW5jaV9rcy0+aXJxOwogCQlnb3RvIGZhaWwyOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvZ3Bpb19rZXlzLmMgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL2dwaW9fa2V5cy5jCmluZGV4IDAzZjRkMTUuLjEzNzNkYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvZ3Bpb19rZXlzLmMKKysrIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9ncGlvX2tleXMuYwpAQCAtMzUxLDEwICszNTEsNyBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqZ3Bpb19rZXlzX2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX2Rpc2FibGVkX3N3aXRjaGVzLmF0dHIsCiAJTlVMTCwKIH07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdwaW9fa2V5c19hdHRyX2dyb3VwID0gewotCS5hdHRycyA9IGdwaW9fa2V5c19hdHRycywKLX07CitBVFRSSUJVVEVfR1JPVVBTKGdwaW9fa2V5cyk7CiAKIHN0YXRpYyB2b2lkIGdwaW9fa2V5c19ncGlvX3JlcG9ydF9ldmVudChzdHJ1Y3QgZ3Bpb19idXR0b25fZGF0YSAqYmRhdGEpCiB7CkBAIC04NTEsMTMgKzg0OCw2IEBAIHN0YXRpYyBpbnQgZ3Bpb19rZXlzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlmd25vZGVfaGFuZGxlX3B1dChjaGlsZCk7CiAKLQllcnJvciA9IGRldm1fZGV2aWNlX2FkZF9ncm91cChkZXYsICZncGlvX2tleXNfYXR0cl9ncm91cCk7Ci0JaWYgKGVycm9yKSB7Ci0JCWRldl9lcnIoZGV2LCAiVW5hYmxlIHRvIGV4cG9ydCBrZXlzL3N3aXRjaGVzLCBlcnJvcjogJWRcbiIsCi0JCQllcnJvcik7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0KIAllcnJvciA9IGlucHV0X3JlZ2lzdGVyX2RldmljZShpbnB1dCk7CiAJaWYgKGVycm9yKSB7CiAJCWRldl9lcnIoZGV2LCAiVW5hYmxlIHRvIHJlZ2lzdGVyIGlucHV0IGRldmljZSwgZXJyb3I6ICVkXG4iLApAQCAtMTAyNiw2ICsxMDE2LDcgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ3Bpb19rZXlzX2RldmljZV9kcml2ZXIgPSB7CiAJCS5uYW1lCT0gImdwaW8ta2V5cyIsCiAJCS5wbQk9ICZncGlvX2tleXNfcG1fb3BzLAogCQkub2ZfbWF0Y2hfdGFibGUgPSBncGlvX2tleXNfb2ZfbWF0Y2gsCisJCS5kZXZfZ3JvdXBzCT0gZ3Bpb19rZXlzX2dyb3VwcywKIAl9CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL2lteF9rZXlwYWQuYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvaW14X2tleXBhZC5jCmluZGV4IDk3NTAwYTIuLjVhNDZkMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvaW14X2tleXBhZC5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvaW14X2tleXBhZC5jCkBAIC00MzAsMTAgKzQzMCw4IEBAIHN0YXRpYyBpbnQgaW14X2tleXBhZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gaXJxIGRlZmluZWQgaW4gcGxhdGZvcm0gZGF0YVxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiBpcnE7Ci0JfQogCiAJaW5wdXRfZGV2ID0gZGV2bV9pbnB1dF9hbGxvY2F0ZV9kZXZpY2UoJnBkZXYtPmRldik7CiAJaWYgKCFpbnB1dF9kZXYpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvbHBjMzJ4eC1rZXlzLmMgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL2xwYzMyeHgta2V5cy5jCmluZGV4IGEzNGUzMjcuLjM0OGFmMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvbHBjMzJ4eC1rZXlzLmMKKysrIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9scGMzMnh4LWtleXMuYwpAQCAtMTcyLDEwICsxNzIsOCBAQCBzdGF0aWMgaW50IGxwYzMyeHhfa3NjYW5fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgcGxhdGZvcm0gaXJxXG4iKTsKKwlpZiAoaXJxIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJa3NjYW5kYXQgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCprc2NhbmRhdCksCiAJCQkJR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL21wcjEyMV90b3VjaGtleS5jIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9tcHIxMjFfdG91Y2hrZXkuYwppbmRleCBlOWNlYWExLi5lZTgwZGU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL21wcjEyMV90b3VjaGtleS5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvbXByMTIxX3RvdWNoa2V5LmMKQEAgLTI1Myw4ICsyNTMsNyBAQCBzdGF0aWMgaW50IG1wcl90b3VjaGtleV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCiAJbXByMTIxLT5jbGllbnQgPSBjbGllbnQ7CiAJbXByMTIxLT5pbnB1dF9kZXYgPSBpbnB1dF9kZXY7Ci0JbXByMTIxLT5rZXljb3VudCA9IGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMl9hcnJheShkZXYsICJsaW51eCxrZXljb2RlcyIsCi0JCQkJCQkJICBOVUxMLCAwKTsKKwltcHIxMjEtPmtleWNvdW50ID0gZGV2aWNlX3Byb3BlcnR5X2NvdW50X3UzMihkZXYsICJsaW51eCxrZXljb2RlcyIpOwogCWlmIChtcHIxMjEtPmtleWNvdW50ID4gTVBSMTIxX01BWF9LRVlfQ09VTlQpIHsKIAkJZGV2X2VycihkZXYsICJ0b28gbWFueSBrZXlzIGRlZmluZWQgKCVkKVxuIiwgbXByMTIxLT5rZXljb3VudCk7CiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9ub21hZGlrLXNrZS1rZXlwYWQuYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvbm9tYWRpay1za2Uta2V5cGFkLmMKaW5kZXggZmEyNjVmZC4uNjA4NDQ2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9ub21hZGlrLXNrZS1rZXlwYWQuYworKysgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL25vbWFkaWstc2tlLWtleXBhZC5jCkBAIC0yMzUsMTAgKzIzNSw4IEBAIHN0YXRpYyBpbnQgX19pbml0IHNrZV9rZXlwYWRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQga2V5cGFkIGlycVxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJaWYgKCFyZXMpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvbnNwaXJlLWtleXBhZC5jIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9uc3BpcmUta2V5cGFkLmMKaW5kZXggNTdlYWM5MS4uNjNkNWU0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9uc3BpcmUta2V5cGFkLmMKKysrIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9uc3BpcmUta2V5cGFkLmMKQEAgLTE2NSwxMCArMTY1LDggQEAgc3RhdGljIGludCBuc3BpcmVfa2V5cGFkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW50IGVycm9yOwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGtleXBhZCBpcnFcbiIpOworCWlmIChpcnEgPCAwKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAKIAlrZXlwYWQgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKHN0cnVjdCBuc3BpcmVfa2V5cGFkKSwKIAkJCSAgICAgIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9vcGVuY29yZXMta2JkLmMgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL29wZW5jb3Jlcy1rYmQuYwppbmRleCAxNTkzNDZjYi4uYjBlYTM4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9vcGVuY29yZXMta2JkLmMKKysrIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9vcGVuY29yZXMta2JkLmMKQEAgLTQ5LDEwICs0OSw4IEBAIHN0YXRpYyBpbnQgb3BlbmNvcmVzX2tiZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibWlzc2luZyBib2FyZCBJUlEgcmVzb3VyY2VcbiIpOworCWlmIChpcnEgPCAwKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAKIAlvcGVuY29yZXNfa2JkID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqb3BlbmNvcmVzX2tiZCksCiAJCQkJICAgICBHRlBfS0VSTkVMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvcG1pYzh4eHgta2V5cGFkLmMgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3BtaWM4eHh4LWtleXBhZC5jCmluZGV4IGQ1Mjk3NjguLjkxZDU4MTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvcG1pYzh4eHgta2V5cGFkLmMKKysrIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9wbWljOHh4eC1rZXlwYWQuYwpAQCAtNTQ0LDE2ICs1NDQsMTIgQEAgc3RhdGljIGludCBwbWljOHh4eF9rcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCWtwLT5rZXlfc2Vuc2VfaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoa3AtPmtleV9zZW5zZV9pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgInVuYWJsZSB0byBnZXQga2V5cGFkIHNlbnNlIGlycVxuIik7CisJaWYgKGtwLT5rZXlfc2Vuc2VfaXJxIDwgMCkKIAkJcmV0dXJuIGtwLT5rZXlfc2Vuc2VfaXJxOwotCX0KIAogCWtwLT5rZXlfc3R1Y2tfaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAxKTsKLQlpZiAoa3AtPmtleV9zdHVja19pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgInVuYWJsZSB0byBnZXQga2V5cGFkIHN0dWNrIGlycVxuIik7CisJaWYgKGtwLT5rZXlfc3R1Y2tfaXJxIDwgMCkKIAkJcmV0dXJuIGtwLT5rZXlfc3R1Y2tfaXJxOwotCX0KIAogCWtwLT5pbnB1dC0+bmFtZSA9ICJQTUlDOFhYWCBrZXlwYWQiOwogCWtwLT5pbnB1dC0+cGh5cyA9ICJwbWljOHh4eF9rZXlwYWQvaW5wdXQwIjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvcHhhMjd4X2tleXBhZC5jIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9weGEyN3hfa2V5cGFkLmMKaW5kZXggMzkwMjM2Ni4uN2U2NTcwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9weGEyN3hfa2V5cGFkLmMKKysrIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9weGEyN3hfa2V5cGFkLmMKQEAgLTcyNywxMCArNzI3LDggQEAgc3RhdGljIGludCBweGEyN3hfa2V5cGFkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGtleXBhZCBpcnFcbiIpOworCWlmIChpcnEgPCAwKQogCQlyZXR1cm4gLUVOWElPOwotCX0KIAogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJaWYgKHJlcyA9PSBOVUxMKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3B4YTkzMF9yb3RhcnkuYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvcHhhOTMwX3JvdGFyeS5jCmluZGV4IDU4NWU3NzYuLmY3NDE0MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvcHhhOTMwX3JvdGFyeS5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvcHhhOTMwX3JvdGFyeS5jCkBAIC04OSwxMCArODksOCBAQCBzdGF0aWMgaW50IHB4YTkzMF9yb3RhcnlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpbnQgZXJyOwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBpcnEgZm9yIHJvdGFyeSBjb250cm9sbGVyXG4iKTsKKwlpZiAoaXJxIDwgMCkKIAkJcmV0dXJuIC1FTlhJTzsKLQl9CiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwogCWlmICghcmVzKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3NoX2tleXNjLmMgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3NoX2tleXNjLmMKaW5kZXggMDhiYTQxYS4uMjdhZDczZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9zaF9rZXlzYy5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvc2hfa2V5c2MuYwpAQCAtMTgxLDEwICsxODEsOCBAQCBzdGF0aWMgaW50IHNoX2tleXNjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJfQogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGlycVxuIik7CisJaWYgKGlycSA8IDApCiAJCWdvdG8gZXJyMDsKLQl9CiAKIAlwcml2ID0ga3phbGxvYyhzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsKIAlpZiAocHJpdiA9PSBOVUxMKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3NudnNfcHdya2V5LmMgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3NudnNfcHdya2V5LmMKaW5kZXggNTM0MmQ4ZC4uZTc2YjdhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9zbnZzX3B3cmtleS5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvc252c19wd3JrZXkuYwpAQCAtMTE4LDEwICsxMTgsOCBAQCBzdGF0aWMgaW50IGlteF9zbnZzX3B3cmtleV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXBkYXRhLT53YWtldXAgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJ3YWtldXAtc291cmNlIik7CiAKIAlwZGF0YS0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAocGRhdGEtPmlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gaXJxIGRlZmluZWQgaW4gcGxhdGZvcm0gZGF0YVxuIik7CisJaWYgKHBkYXRhLT5pcnEgPCAwKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAKIAlyZWdtYXBfdXBkYXRlX2JpdHMocGRhdGEtPnNudnMsIFNOVlNfTFBDUl9SRUcsIFNOVlNfTFBDUl9ERVBfRU4sIFNOVlNfTFBDUl9ERVBfRU4pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3NwZWFyLWtleWJvYXJkLmMgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3NwZWFyLWtleWJvYXJkLmMKaW5kZXggN2QyNWZhMy4uOWI4ZDc4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9zcGVhci1rZXlib2FyZC5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvc3BlYXIta2V5Ym9hcmQuYwpAQCAtMTkxLDEwICsxOTEsOCBAQCBzdGF0aWMgaW50IHNwZWFyX2tiZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWludCBlcnJvcjsKIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm90IGFibGUgdG8gZ2V0IGlycSBmb3IgdGhlIGRldmljZVxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiBpcnE7Ci0JfQogCiAJa2JkID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqa2JkKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFrYmQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvc3Qta2V5c2Nhbi5jIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9zdC1rZXlzY2FuLmMKaW5kZXggZjA5NzEyOC4uMjc1NjJjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9zdC1rZXlzY2FuLmMKKysrIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9zdC1rZXlzY2FuLmMKQEAgLTE4NywxMCArMTg3LDggQEAgc3RhdGljIGludCBrZXlzY2FuX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJa2V5c2Nhbl9zdG9wKGtleXBhZF9kYXRhKTsKIAogCWtleXBhZF9kYXRhLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChrZXlwYWRfZGF0YS0+aXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBJUlEgc3BlY2lmaWVkXG4iKTsKKwlpZiAoa2V5cGFkX2RhdGEtPmlycSA8IDApCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCWVycm9yID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBrZXlwYWRfZGF0YS0+aXJxLCBrZXlzY2FuX2lzciwgMCwKIAkJCQkgcGRldi0+bmFtZSwga2V5cGFkX2RhdGEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC90ZWdyYS1rYmMuYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvdGVncmEta2JjLmMKaW5kZXggYTM3YTdhOS4uZDM0ZDY5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC90ZWdyYS1rYmMuYworKysgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3RlZ3JhLWtiYy5jCkBAIC02MzEsMTAgKzYzMSw4IEBAIHN0YXRpYyBpbnQgdGVncmFfa2JjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJa2JjLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChrYmMtPmlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBrZXlib2FyZCBJUlFcbiIpOworCWlmIChrYmMtPmlycSA8IDApCiAJCXJldHVybiAtRU5YSU87Ci0JfQogCiAJa2JjLT5pZGV2ID0gZGV2bV9pbnB1dF9hbGxvY2F0ZV9kZXZpY2UoJnBkZXYtPmRldik7CiAJaWYgKCFrYmMtPmlkZXYpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvdzkwcDkxMF9rZXlwYWQuYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvdzkwcDkxMF9rZXlwYWQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg4ZDA1ZC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3c5MHA5MTBfa2V5cGFkLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyNjQgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOC0yMDA5IE51dm90b24gdGVjaG5vbG9neSBjb3Jwb3JhdGlvbi4KLSAqCi0gKiBXYW4gWm9uZ1NodW4gPG1jdW9zLmNvbUBnbWFpbC5jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvZXJyLmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2tleXBhZC13OTBwOTEwLmg+Ci0KLS8qIEtleXBhZCBJbnRlcmZhY2UgQ29udHJvbCBSZWdpc3RlcnMgKi8KLSNkZWZpbmUgS1BJX0NPTkYJCTB4MDAKLSNkZWZpbmUgS1BJXzNLQ09ORgkJMHgwNAotI2RlZmluZSBLUElfTFBDT05GCQkweDA4Ci0jZGVmaW5lIEtQSV9TVEFUVVMJCTB4MEMKLQotI2RlZmluZSBJUzFLRVkJCQkoMHgwMSA8PCAxNikKLSNkZWZpbmUgSU5UVFIJCQkoMHgwMSA8PCAyMSkKLSNkZWZpbmUgS0VZMFIJCQkoMHgwZiA8PCAzKQotI2RlZmluZSBLRVkwQwkJCTB4MDcKLSNkZWZpbmUgREVCT1VOQ0VfQklUCQkweDA4Ci0jZGVmaW5lIEtTSVpFMAkJCSgweDAxIDw8IDE2KQotI2RlZmluZSBLU0laRTEJCQkoMHgwMSA8PCAxNykKLSNkZWZpbmUgS1BTRUwJCQkoMHgwMSA8PCAxOSkKLSNkZWZpbmUgRU5LUAkJCSgweDAxIDw8IDE4KQotCi0jZGVmaW5lIEtHRVRfUkFXKG4pCQkoKChuKSAmIEtFWTBSKSA+PiAzKQotI2RlZmluZSBLR0VUX0NPTFVNTihuKQkJKChuKSAmIEtFWTBDKQotCi0jZGVmaW5lIFc5MFA5MTBfTlVNX1JPV1MJOAotI2RlZmluZSBXOTBQOTEwX05VTV9DT0xTCTgKLSNkZWZpbmUgVzkwUDkxMF9ST1dfU0hJRlQJMwotCi1zdHJ1Y3QgdzkwcDkxMF9rZXlwYWQgewotCWNvbnN0IHN0cnVjdCB3OTBwOTEwX2tleXBhZF9wbGF0Zm9ybV9kYXRhICpwZGF0YTsKLQlzdHJ1Y3QgY2xrICpjbGs7Ci0Jc3RydWN0IGlucHV0X2RldiAqaW5wdXRfZGV2OwotCXZvaWQgX19pb21lbSAqbW1pb19iYXNlOwotCWludCBpcnE7Ci0JdW5zaWduZWQgc2hvcnQga2V5bWFwW1c5MFA5MTBfTlVNX1JPV1MgKiBXOTBQOTEwX05VTV9DT0xTXTsKLX07Ci0KLXN0YXRpYyB2b2lkIHc5MHA5MTBfa2V5cGFkX3NjYW5fbWF0cml4KHN0cnVjdCB3OTBwOTEwX2tleXBhZCAqa2V5cGFkLAotCQkJCQkJCXVuc2lnbmVkIGludCBzdGF0dXMpCi17Ci0Jc3RydWN0IGlucHV0X2RldiAqaW5wdXRfZGV2ID0ga2V5cGFkLT5pbnB1dF9kZXY7Ci0JdW5zaWduZWQgaW50IHJvdyA9IEtHRVRfUkFXKHN0YXR1cyk7Ci0JdW5zaWduZWQgaW50IGNvbCA9IEtHRVRfQ09MVU1OKHN0YXR1cyk7Ci0JdW5zaWduZWQgaW50IGNvZGUgPSBNQVRSSVhfU0NBTl9DT0RFKHJvdywgY29sLCBXOTBQOTEwX1JPV19TSElGVCk7Ci0JdW5zaWduZWQgaW50IGtleSA9IGtleXBhZC0+a2V5bWFwW2NvZGVdOwotCi0JaW5wdXRfZXZlbnQoaW5wdXRfZGV2LCBFVl9NU0MsIE1TQ19TQ0FOLCBjb2RlKTsKLQlpbnB1dF9yZXBvcnRfa2V5KGlucHV0X2Rldiwga2V5LCAxKTsKLQlpbnB1dF9zeW5jKGlucHV0X2Rldik7Ci0KLQlpbnB1dF9ldmVudChpbnB1dF9kZXYsIEVWX01TQywgTVNDX1NDQU4sIGNvZGUpOwotCWlucHV0X3JlcG9ydF9rZXkoaW5wdXRfZGV2LCBrZXksIDApOwotCWlucHV0X3N5bmMoaW5wdXRfZGV2KTsKLX0KLQotc3RhdGljIGlycXJldHVybl90IHc5MHA5MTBfa2V5cGFkX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKLXsKLQlzdHJ1Y3QgdzkwcDkxMF9rZXlwYWQgKmtleXBhZCA9IGRldl9pZDsKLQl1bnNpZ25lZCBpbnQgIGtzdGF0dXMsIHZhbDsKLQotCWtzdGF0dXMgPSBfX3Jhd19yZWFkbChrZXlwYWQtPm1taW9fYmFzZSArIEtQSV9TVEFUVVMpOwotCi0JdmFsID0gSU5UVFIgfCBJUzFLRVk7Ci0KLQlpZiAoa3N0YXR1cyAmIHZhbCkKLQkJdzkwcDkxMF9rZXlwYWRfc2Nhbl9tYXRyaXgoa2V5cGFkLCBrc3RhdHVzKTsKLQotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIGludCB3OTBwOTEwX2tleXBhZF9vcGVuKHN0cnVjdCBpbnB1dF9kZXYgKmRldikKLXsKLQlzdHJ1Y3QgdzkwcDkxMF9rZXlwYWQgKmtleXBhZCA9IGlucHV0X2dldF9kcnZkYXRhKGRldik7Ci0JY29uc3Qgc3RydWN0IHc5MHA5MTBfa2V5cGFkX3BsYXRmb3JtX2RhdGEgKnBkYXRhID0ga2V5cGFkLT5wZGF0YTsKLQl1bnNpZ25lZCBpbnQgdmFsLCBjb25maWc7Ci0KLQkvKiBFbmFibGUgdW5pdCBjbG9jayAqLwotCWNsa19lbmFibGUoa2V5cGFkLT5jbGspOwotCi0JdmFsID0gX19yYXdfcmVhZGwoa2V5cGFkLT5tbWlvX2Jhc2UgKyBLUElfQ09ORik7Ci0JdmFsIHw9IChLUFNFTCB8IEVOS1ApOwotCXZhbCAmPSB+KEtTSVpFMCB8IEtTSVpFMSk7Ci0KLQljb25maWcgPSBwZGF0YS0+cHJlc2NhbGUgfCAocGRhdGEtPmRlYm91bmNlIDw8IERFQk9VTkNFX0JJVCk7Ci0KLQl2YWwgfD0gY29uZmlnOwotCi0JX19yYXdfd3JpdGVsKHZhbCwga2V5cGFkLT5tbWlvX2Jhc2UgKyBLUElfQ09ORik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgdzkwcDkxMF9rZXlwYWRfY2xvc2Uoc3RydWN0IGlucHV0X2RldiAqZGV2KQotewotCXN0cnVjdCB3OTBwOTEwX2tleXBhZCAqa2V5cGFkID0gaW5wdXRfZ2V0X2RydmRhdGEoZGV2KTsKLQotCS8qIERpc2FibGUgY2xvY2sgdW5pdCAqLwotCWNsa19kaXNhYmxlKGtleXBhZC0+Y2xrKTsKLX0KLQotc3RhdGljIGludCB3OTBwOTEwX2tleXBhZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCWNvbnN0IHN0cnVjdCB3OTBwOTEwX2tleXBhZF9wbGF0Zm9ybV9kYXRhICpwZGF0YSA9Ci0JCQkJCQlkZXZfZ2V0X3BsYXRkYXRhKCZwZGV2LT5kZXYpOwotCWNvbnN0IHN0cnVjdCBtYXRyaXhfa2V5bWFwX2RhdGEgKmtleW1hcF9kYXRhOwotCXN0cnVjdCB3OTBwOTEwX2tleXBhZCAqa2V5cGFkOwotCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0X2RldjsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQlpbnQgaXJxOwotCWludCBlcnJvcjsKLQotCWlmICghcGRhdGEpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gcGxhdGZvcm0gZGF0YSBkZWZpbmVkXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0Ja2V5bWFwX2RhdGEgPSBwZGF0YS0+a2V5bWFwX2RhdGE7Ci0KLQlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQga2V5cGFkIGlycVxuIik7Ci0JCXJldHVybiAtRU5YSU87Ci0JfQotCi0Ja2V5cGFkID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHc5MHA5MTBfa2V5cGFkKSwgR0ZQX0tFUk5FTCk7Ci0JaW5wdXRfZGV2ID0gaW5wdXRfYWxsb2NhdGVfZGV2aWNlKCk7Ci0JaWYgKCFrZXlwYWQgfHwgIWlucHV0X2RldikgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gYWxsb2NhdGUgZHJpdmVyIGRhdGFcbiIpOwotCQllcnJvciA9IC1FTk9NRU07Ci0JCWdvdG8gZmFpbGVkX2ZyZWU7Ci0JfQotCi0Ja2V5cGFkLT5wZGF0YSA9IHBkYXRhOwotCWtleXBhZC0+aW5wdXRfZGV2ID0gaW5wdXRfZGV2OwotCWtleXBhZC0+aXJxID0gaXJxOwotCi0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlpZiAocmVzID09IE5VTEwpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBJL08gbWVtb3J5XG4iKTsKLQkJZXJyb3IgPSAtRU5YSU87Ci0JCWdvdG8gZmFpbGVkX2ZyZWU7Ci0JfQotCi0JcmVzID0gcmVxdWVzdF9tZW1fcmVnaW9uKHJlcy0+c3RhcnQsIHJlc291cmNlX3NpemUocmVzKSwgcGRldi0+bmFtZSk7Ci0JaWYgKHJlcyA9PSBOVUxMKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZXF1ZXN0IEkvTyBtZW1vcnlcbiIpOwotCQllcnJvciA9IC1FQlVTWTsKLQkJZ290byBmYWlsZWRfZnJlZTsKLQl9Ci0KLQlrZXlwYWQtPm1taW9fYmFzZSA9IGlvcmVtYXAocmVzLT5zdGFydCwgcmVzb3VyY2Vfc2l6ZShyZXMpKTsKLQlpZiAoa2V5cGFkLT5tbWlvX2Jhc2UgPT0gTlVMTCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVtYXAgSS9PIG1lbW9yeVxuIik7Ci0JCWVycm9yID0gLUVOWElPOwotCQlnb3RvIGZhaWxlZF9mcmVlX3JlczsKLQl9Ci0KLQlrZXlwYWQtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgTlVMTCk7Ci0JaWYgKElTX0VSUihrZXlwYWQtPmNsaykpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBrZXlwYWQgY2xvY2tcbiIpOwotCQllcnJvciA9IFBUUl9FUlIoa2V5cGFkLT5jbGspOwotCQlnb3RvIGZhaWxlZF9mcmVlX2lvOwotCX0KLQotCS8qIHNldCBtdWx0aS1mdW5jdGlvbiBwaW4gZm9yIHc5MHA5MTAga3BpLiAqLwotCW1mcF9zZXRfZ3JvdXBpKCZwZGV2LT5kZXYpOwotCi0JaW5wdXRfZGV2LT5uYW1lID0gcGRldi0+bmFtZTsKLQlpbnB1dF9kZXYtPmlkLmJ1c3R5cGUgPSBCVVNfSE9TVDsKLQlpbnB1dF9kZXYtPm9wZW4gPSB3OTBwOTEwX2tleXBhZF9vcGVuOwotCWlucHV0X2Rldi0+Y2xvc2UgPSB3OTBwOTEwX2tleXBhZF9jbG9zZTsKLQlpbnB1dF9kZXYtPmRldi5wYXJlbnQgPSAmcGRldi0+ZGV2OwotCi0JZXJyb3IgPSBtYXRyaXhfa2V5cGFkX2J1aWxkX2tleW1hcChrZXltYXBfZGF0YSwgTlVMTCwKLQkJCQkJICAgVzkwUDkxMF9OVU1fUk9XUywgVzkwUDkxMF9OVU1fQ09MUywKLQkJCQkJICAga2V5cGFkLT5rZXltYXAsIGlucHV0X2Rldik7Ci0JaWYgKGVycm9yKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBidWlsZCBrZXltYXBcbiIpOwotCQlnb3RvIGZhaWxlZF9wdXRfY2xrOwotCX0KLQotCWVycm9yID0gcmVxdWVzdF9pcnEoa2V5cGFkLT5pcnEsIHc5MHA5MTBfa2V5cGFkX2lycV9oYW5kbGVyLAotCQkJICAgIDAsIHBkZXYtPm5hbWUsIGtleXBhZCk7Ci0JaWYgKGVycm9yKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZXF1ZXN0IElSUVxuIik7Ci0JCWdvdG8gZmFpbGVkX3B1dF9jbGs7Ci0JfQotCi0JX19zZXRfYml0KEVWX1JFUCwgaW5wdXRfZGV2LT5ldmJpdCk7Ci0JaW5wdXRfc2V0X2NhcGFiaWxpdHkoaW5wdXRfZGV2LCBFVl9NU0MsIE1TQ19TQ0FOKTsKLQlpbnB1dF9zZXRfZHJ2ZGF0YShpbnB1dF9kZXYsIGtleXBhZCk7Ci0KLQkvKiBSZWdpc3RlciB0aGUgaW5wdXQgZGV2aWNlICovCi0JZXJyb3IgPSBpbnB1dF9yZWdpc3Rlcl9kZXZpY2UoaW5wdXRfZGV2KTsKLQlpZiAoZXJyb3IpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGlucHV0IGRldmljZVxuIik7Ci0JCWdvdG8gZmFpbGVkX2ZyZWVfaXJxOwotCX0KLQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGtleXBhZCk7Ci0JcmV0dXJuIDA7Ci0KLWZhaWxlZF9mcmVlX2lycToKLQlmcmVlX2lycShpcnEsIGtleXBhZCk7Ci1mYWlsZWRfcHV0X2NsazoKLQljbGtfcHV0KGtleXBhZC0+Y2xrKTsKLWZhaWxlZF9mcmVlX2lvOgotCWlvdW5tYXAoa2V5cGFkLT5tbWlvX2Jhc2UpOwotZmFpbGVkX2ZyZWVfcmVzOgotCXJlbGVhc2VfbWVtX3JlZ2lvbihyZXMtPnN0YXJ0LCByZXNvdXJjZV9zaXplKHJlcykpOwotZmFpbGVkX2ZyZWU6Ci0JaW5wdXRfZnJlZV9kZXZpY2UoaW5wdXRfZGV2KTsKLQlrZnJlZShrZXlwYWQpOwotCXJldHVybiBlcnJvcjsKLX0KLQotc3RhdGljIGludCB3OTBwOTEwX2tleXBhZF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlzdHJ1Y3QgdzkwcDkxMF9rZXlwYWQgKmtleXBhZCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotCi0JZnJlZV9pcnEoa2V5cGFkLT5pcnEsIGtleXBhZCk7Ci0KLQljbGtfcHV0KGtleXBhZC0+Y2xrKTsKLQotCWlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKGtleXBhZC0+aW5wdXRfZGV2KTsKLQotCWlvdW5tYXAoa2V5cGFkLT5tbWlvX2Jhc2UpOwotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JcmVsZWFzZV9tZW1fcmVnaW9uKHJlcy0+c3RhcnQsIHJlc291cmNlX3NpemUocmVzKSk7Ci0KLQlrZnJlZShrZXlwYWQpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHc5MHA5MTBfa2V5cGFkX2RyaXZlciA9IHsKLQkucHJvYmUJCT0gdzkwcDkxMF9rZXlwYWRfcHJvYmUsCi0JLnJlbW92ZQkJPSB3OTBwOTEwX2tleXBhZF9yZW1vdmUsCi0JLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gIm51YzkwMC1rcGkiLAotCX0sCi19OwotbW9kdWxlX3BsYXRmb3JtX2RyaXZlcih3OTBwOTEwX2tleXBhZF9kcml2ZXIpOwotCi1NT0RVTEVfQVVUSE9SKCJXYW4gWm9uZ1NodW4gPG1jdW9zLmNvbUBnbWFpbC5jb20+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oInc5MHA5MTAga2V5cGFkIGRyaXZlciIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpudWM5MDAta2V5cGFkIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21hdHJpeC1rZXltYXAuYyBiL2RyaXZlcnMvaW5wdXQvbWF0cml4LWtleW1hcC5jCmluZGV4IGRhMzEyYmUuLjRmYTUzNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWF0cml4LWtleW1hcC5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbWF0cml4LWtleW1hcC5jCkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyBpbnQgbWF0cml4X2tleXBhZF9wYXJzZV9rZXltYXAoY29uc3QgY2hhciAqcHJvcG5hbWUsCiAJaWYgKCFwcm9wbmFtZSkKIAkJcHJvcG5hbWUgPSAibGludXgsa2V5bWFwIjsKIAotCXNpemUgPSBkZXZpY2VfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkoZGV2LCBwcm9wbmFtZSwgTlVMTCwgMCk7CisJc2l6ZSA9IGRldmljZV9wcm9wZXJ0eV9jb3VudF91MzIoZGV2LCBwcm9wbmFtZSk7CiAJaWYgKHNpemUgPD0gMCkgewogCQlkZXZfZXJyKGRldiwgIm1pc3Npbmcgb3IgbWFsZm9ybWVkIHByb3BlcnR5ICVzOiAlZFxuIiwKIAkJCXByb3BuYW1lLCBzaXplKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy84OHBtODB4X29ua2V5LmMgYi9kcml2ZXJzL2lucHV0L21pc2MvODhwbTgweF9vbmtleS5jCmluZGV4IDQ1YTA5NDkuLjUxYzhhMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy84OHBtODB4X29ua2V5LmMKKysrIGIvZHJpdmVycy9pbnB1dC9taXNjLzg4cG04MHhfb25rZXkuYwpAQCAtNzcsNyArNzcsNiBAQCBzdGF0aWMgaW50IHBtODB4X29ua2V5X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlpbmZvLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwogCWlmIChpbmZvLT5pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIk5vIElSUSByZXNvdXJjZSFcbiIpOwogCQllcnIgPSAtRUlOVkFMOwogCQlnb3RvIG91dDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21pc2MvODhwbTg2MHhfb25rZXkuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy84OHBtODYweF9vbmtleS5jCmluZGV4IGNjODc0NDMuLjY4NTk5NWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy84OHBtODYweF9vbmtleS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy84OHBtODYweF9vbmtleS5jCkBAIC02NCwxMCArNjQsOCBAQCBzdGF0aWMgaW50IHBtODYweF9vbmtleV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWludCBpcnEsIHJldDsKIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8gSVJRIHJlc291cmNlIVxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCWluZm8gPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKHN0cnVjdCBwbTg2MHhfb25rZXlfaW5mbyksCiAJCQkgICAgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21pc2MvS2NvbmZpZyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9LY29uZmlnCmluZGV4IGQwN2MxZWIuLjdkOWFlMzk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvS2NvbmZpZworKysgYi9kcml2ZXJzL2lucHV0L21pc2MvS2NvbmZpZwpAQCAtODEzLDEwICs4MTMsMTAgQEAKIAogY29uZmlnIElOUFVUX1NPQ19CVVRUT05fQVJSQVkKIAl0cmlzdGF0ZSAiV2luZG93cy1jb21wYXRpYmxlIFNvQyBCdXR0b24gQXJyYXkiCi0JZGVwZW5kcyBvbiBLRVlCT0FSRF9HUElPCisJZGVwZW5kcyBvbiBLRVlCT0FSRF9HUElPICYmIEFDUEkKIAloZWxwCi0JICBTYXkgWSBoZXJlIGlmIHlvdSBoYXZlIGEgU29DLWJhc2VkIHRhYmxldCB0aGF0IG9yaWdpbmFsbHkKLQkgIHJ1bnMgV2luZG93cyA4LgorCSAgU2F5IFkgaGVyZSBpZiB5b3UgaGF2ZSBhIFNvQy1iYXNlZCB0YWJsZXQgdGhhdCBvcmlnaW5hbGx5IHJ1bnMKKwkgIFdpbmRvd3MgOCBvciBhIE1pY3Jvc29mdCBTdXJmYWNlIEJvb2sgMiwgUHJvIDUsIExhcHRvcCAxIG9yIGxhdGVyLgogCiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzb2NfYnV0dG9uX2FycmF5LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL2FiODUwMC1wb25rZXkuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9hYjg1MDAtcG9ua2V5LmMKaW5kZXggMTJiMThhOC4uZWEzYjgyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9taXNjL2FiODUwMC1wb25rZXkuYworKysgYi9kcml2ZXJzL2lucHV0L21pc2MvYWI4NTAwLXBvbmtleS5jCkBAIC01NSwxNiArNTUsMTIgQEAgc3RhdGljIGludCBhYjg1MDBfcG9ua2V5X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW50IGVycm9yOwogCiAJaXJxX2RiZiA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJPTktFWV9EQkYiKTsKLQlpZiAoaXJxX2RiZiA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8gSVJRIGZvciBPTktFWV9EQkYsIGVycm9yPSVkXG4iLCBpcnFfZGJmKTsKKwlpZiAoaXJxX2RiZiA8IDApCiAJCXJldHVybiBpcnFfZGJmOwotCX0KIAogCWlycV9kYnIgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShwZGV2LCAiT05LRVlfREJSIik7Ci0JaWYgKGlycV9kYnIgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIk5vIElSUSBmb3IgT05LRVlfREJSLCBlcnJvcj0lZFxuIiwgaXJxX2Ricik7CisJaWYgKGlycV9kYnIgPCAwKQogCQlyZXR1cm4gaXJxX2RicjsKLQl9CiAKIAlwb25rZXkgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKHN0cnVjdCBhYjg1MDBfcG9ua2V5KSwKIAkJCSAgICAgIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL2F4cDIweC1wZWsuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9heHAyMHgtcGVrLmMKaW5kZXggZGViZWVhZS4uMTdjMWNjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9taXNjL2F4cDIweC1wZWsuYworKysgYi9kcml2ZXJzL2lucHV0L21pc2MvYXhwMjB4LXBlay5jCkBAIC0xOTUsMTUgKzE5NSwxMiBAQCBERVZJQ0VfQVRUUihzdGFydHVwLCAwNjQ0LCBheHAyMHhfc2hvd19hdHRyX3N0YXJ0dXAsIGF4cDIweF9zdG9yZV9hdHRyX3N0YXJ0dXApOwogREVWSUNFX0FUVFIoc2h1dGRvd24sIDA2NDQsIGF4cDIweF9zaG93X2F0dHJfc2h1dGRvd24sCiAJICAgIGF4cDIweF9zdG9yZV9hdHRyX3NodXRkb3duKTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF4cDIweF9hdHRyaWJ1dGVzW10gPSB7CitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXhwMjB4X2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX3N0YXJ0dXAuYXR0ciwKIAkmZGV2X2F0dHJfc2h1dGRvd24uYXR0ciwKIAlOVUxMLAogfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgYXhwMjB4X2F0dHJpYnV0ZV9ncm91cCA9IHsKLQkuYXR0cnMgPSBheHAyMHhfYXR0cmlidXRlcywKLX07CitBVFRSSUJVVEVfR1JPVVBTKGF4cDIweCk7CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBheHAyMHhfcGVrX2lycShpbnQgaXJxLCB2b2lkICpwd3IpCiB7CkBAIC0yMzIsMjAgKzIyOSwxNCBAQCBzdGF0aWMgaW50IGF4cDIweF9wZWtfcHJvYmVfaW5wdXRfZGV2aWNlKHN0cnVjdCBheHAyMHhfcGVrICpheHAyMHhfcGVrLAogCWludCBlcnJvcjsKIAogCWF4cDIweF9wZWstPmlycV9kYnIgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShwZGV2LCAiUEVLX0RCUiIpOwotCWlmIChheHAyMHhfcGVrLT5pcnFfZGJyIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBJUlEgZm9yIFBFS19EQlIsIGVycm9yPSVkXG4iLAotCQkJCWF4cDIweF9wZWstPmlycV9kYnIpOworCWlmIChheHAyMHhfcGVrLT5pcnFfZGJyIDwgMCkKIAkJcmV0dXJuIGF4cDIweF9wZWstPmlycV9kYnI7Ci0JfQogCWF4cDIweF9wZWstPmlycV9kYnIgPSByZWdtYXBfaXJxX2dldF92aXJxKGF4cDIweC0+cmVnbWFwX2lycWMsCiAJCQkJCQkgIGF4cDIweF9wZWstPmlycV9kYnIpOwogCiAJYXhwMjB4X3Blay0+aXJxX2RiZiA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJQRUtfREJGIik7Ci0JaWYgKGF4cDIweF9wZWstPmlycV9kYmYgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIk5vIElSUSBmb3IgUEVLX0RCRiwgZXJyb3I9JWRcbiIsCi0JCQkJYXhwMjB4X3Blay0+aXJxX2RiZik7CisJaWYgKGF4cDIweF9wZWstPmlycV9kYmYgPCAwKQogCQlyZXR1cm4gYXhwMjB4X3Blay0+aXJxX2RiZjsKLQl9CiAJYXhwMjB4X3Blay0+aXJxX2RiZiA9IHJlZ21hcF9pcnFfZ2V0X3ZpcnEoYXhwMjB4LT5yZWdtYXBfaXJxYywKIAkJCQkJCSAgYXhwMjB4X3Blay0+aXJxX2RiZik7CiAKQEAgLTM1NiwxMyArMzQ3LDYgQEAgc3RhdGljIGludCBheHAyMHhfcGVrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlheHAyMHhfcGVrLT5pbmZvID0gKHN0cnVjdCBheHAyMHhfaW5mbyAqKW1hdGNoLT5kcml2ZXJfZGF0YTsKIAotCWVycm9yID0gZGV2bV9kZXZpY2VfYWRkX2dyb3VwKCZwZGV2LT5kZXYsICZheHAyMHhfYXR0cmlidXRlX2dyb3VwKTsKLQlpZiAoZXJyb3IpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGNyZWF0ZSBzeXNmcyBhdHRyaWJ1dGVzOiAlZFxuIiwKLQkJCWVycm9yKTsKLQkJcmV0dXJuIGVycm9yOwotCX0KLQogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGF4cDIweF9wZWspOwogCiAJcmV0dXJuIDA7CkBAIC00MTEsNiArMzk1LDcgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXhwMjB4X3Bla19kcml2ZXIgPSB7CiAJLmRyaXZlcgkJPSB7CiAJCS5uYW1lCQk9ICJheHAyMHgtcGVrIiwKIAkJLnBtCQk9ICZheHAyMHhfcGVrX3BtX29wcywKKwkJLmRldl9ncm91cHMJPSBheHAyMHhfZ3JvdXBzLAogCX0sCiB9OwogbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihheHAyMHhfcGVrX2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21pc2MvZGE5MDU1X29ua2V5LmMgYi9kcml2ZXJzL2lucHV0L21pc2MvZGE5MDU1X29ua2V5LmMKaW5kZXggYTRmZjQ3OC4uN2EwZDNhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9taXNjL2RhOTA1NV9vbmtleS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9kYTkwNTVfb25rZXkuYwpAQCAtNzYsMTEgKzc2LDggQEAgc3RhdGljIGludCBkYTkwNTVfb25rZXlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpbnQgaXJxLCBlcnI7CiAKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShwZGV2LCAiT05LRVkiKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsCi0JCQkiRmFpbGVkIHRvIGdldCBhbiBJUlEgZm9yIGlucHV0IGRldmljZSwgJWRcbiIsIGlycSk7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCW9ua2V5ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqb25rZXkpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIW9ua2V5KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21pc2MvZGE5MDYzX29ua2V5LmMgYi9kcml2ZXJzL2lucHV0L21pc2MvZGE5MDYzX29ua2V5LmMKaW5kZXggZmQzNTVjZi4uZGFjZTg1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9taXNjL2RhOTA2M19vbmtleS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9kYTkwNjNfb25rZXkuYwpAQCAtMjQ4LDExICsyNDgsOCBAQCBzdGF0aWMgaW50IGRhOTA2M19vbmtleV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJPTktFWSIpOwotCWlmIChpcnEgPCAwKSB7Ci0JCWVycm9yID0gaXJxOwotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IHBsYXRmb3JtIElSUTogJWRcbiIsIGVycm9yKTsKLQkJcmV0dXJuIGVycm9yOwotCX0KKwlpZiAoaXJxIDwgMCkKKwkJcmV0dXJuIGlycTsKIAogCWVycm9yID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmcGRldi0+ZGV2LCBpcnEsCiAJCQkJCSAgTlVMTCwgZGE5MDYzX29ua2V5X2lycV9oYW5kbGVyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL2UzeDAtYnV0dG9uLmMgYi9kcml2ZXJzL2lucHV0L21pc2MvZTN4MC1idXR0b24uYwppbmRleCA0ZDcyMTdmLi5lMmZkZTZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvZTN4MC1idXR0b24uYworKysgYi9kcml2ZXJzL2lucHV0L21pc2MvZTN4MC1idXR0b24uYwpAQCAtNjUsMTggKzY1LDEyIEBAIHN0YXRpYyBpbnQgZTN4MF9idXR0b25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpbnQgZXJyb3I7CiAKIAlpcnFfcHJlc3MgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShwZGV2LCAicHJlc3MiKTsKLQlpZiAoaXJxX3ByZXNzIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBJUlEgZm9yICdwcmVzcycsIGVycm9yPSVkXG4iLAotCQkJaXJxX3ByZXNzKTsKKwlpZiAoaXJxX3ByZXNzIDwgMCkKIAkJcmV0dXJuIGlycV9wcmVzczsKLQl9CiAKIAlpcnFfcmVsZWFzZSA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJyZWxlYXNlIik7Ci0JaWYgKGlycV9yZWxlYXNlIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBJUlEgZm9yICdyZWxlYXNlJywgZXJyb3I9JWRcbiIsCi0JCQlpcnFfcmVsZWFzZSk7CisJaWYgKGlycV9yZWxlYXNlIDwgMCkKIAkJcmV0dXJuIGlycV9yZWxlYXNlOwotCX0KIAogCWlucHV0ID0gZGV2bV9pbnB1dF9hbGxvY2F0ZV9kZXZpY2UoJnBkZXYtPmRldik7CiAJaWYgKCFpbnB1dCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy9oaXNpX3Bvd2Vya2V5LmMgYi9kcml2ZXJzL2lucHV0L21pc2MvaGlzaV9wb3dlcmtleS5jCmluZGV4IGRlZTYyNDUuLmQzYzI5M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy9oaXNpX3Bvd2Vya2V5LmMKKysrIGIvZHJpdmVycy9pbnB1dC9taXNjL2hpc2lfcG93ZXJrZXkuYwpAQCAtOTAsMTIgKzkwLDggQEAgc3RhdGljIGludCBoaTY1eHhfcG93ZXJrZXlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShoaTY1eHhfaXJxX2luZm8pOyBpKyspIHsKIAogCQlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShwZGV2LCBoaTY1eHhfaXJxX2luZm9baV0ubmFtZSk7Ci0JCWlmIChpcnEgPCAwKSB7Ci0JCQllcnJvciA9IGlycTsKLQkJCWRldl9lcnIoZGV2LCAiY291bGRuJ3QgZ2V0IGlycSAlczogJWRcbiIsCi0JCQkJaGk2NXh4X2lycV9pbmZvW2ldLm5hbWUsIGVycm9yKTsKLQkJCXJldHVybiBlcnJvcjsKLQkJfQorCQlpZiAoaXJxIDwgMCkKKwkJCXJldHVybiBpcnE7CiAKIAkJZXJyb3IgPSBkZXZtX3JlcXVlc3RfYW55X2NvbnRleHRfaXJxKGRldiwgaXJxLAogCQkJCQkJICAgICBoaTY1eHhfaXJxX2luZm9baV0uaGFuZGxlciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy9tYXg4OTI1X29ua2V5LmMgYi9kcml2ZXJzL2lucHV0L21pc2MvbWF4ODkyNV9vbmtleS5jCmluZGV4IDdjNDliOGQuLmZmYWI0YTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy9tYXg4OTI1X29ua2V5LmMKKysrIGIvZHJpdmVycy9pbnB1dC9taXNjL21heDg5MjVfb25rZXkuYwpAQCAtNzEsMTYgKzcxLDEyIEBAIHN0YXRpYyBpbnQgbWF4ODkyNV9vbmtleV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWludCBpcnFbMl0sIGVycm9yOwogCiAJaXJxWzBdID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxWzBdIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBJUlEgcmVzb3VyY2UhXG4iKTsKKwlpZiAoaXJxWzBdIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJaXJxWzFdID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAxKTsKLQlpZiAoaXJxWzFdIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBJUlEgcmVzb3VyY2UhXG4iKTsKKwlpZiAoaXJxWzFdIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJaW5mbyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2Yoc3RydWN0IG1heDg5MjVfb25rZXlfaW5mbyksCiAJCQkgICAgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21pc2MvcG04OTQxLXB3cmtleS5jIGIvZHJpdmVycy9pbnB1dC9taXNjL3BtODk0MS1wd3JrZXkuYwppbmRleCAwMTdmODFhLi5jZjgxMDQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvcG04OTQxLXB3cmtleS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9wbTg5NDEtcHdya2V5LmMKQEAgLTIwNSwxMCArMjA1LDggQEAgc3RhdGljIGludCBwbTg5NDFfcHdya2V5X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiBlcnJvcjsKIAogCXB3cmtleS0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAocHdya2V5LT5pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgaXJxXG4iKTsKKwlpZiAocHdya2V5LT5pcnEgPCAwKQogCQlyZXR1cm4gcHdya2V5LT5pcnE7Ci0JfQogCiAJZXJyb3IgPSByZWdtYXBfcmVhZChwd3JrZXktPnJlZ21hcCwgcHdya2V5LT5iYXNlYWRkciArIFBPTl9SRVYyLAogCQkJICAgICZwd3JrZXktPnJldmlzaW9uKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy9yazgwNS1wd3JrZXkuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9yazgwNS1wd3JrZXkuYwppbmRleCA0YTZkNGE1Li4zZmI2NGRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2Mvcms4MDUtcHdya2V5LmMKKysrIGIvZHJpdmVycy9pbnB1dC9taXNjL3JrODA1LXB3cmtleS5jCkBAIC01MywxNiArNTMsMTIgQEAgc3RhdGljIGludCByazgwNV9wd3JrZXlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpbnB1dF9zZXRfY2FwYWJpbGl0eShwd3IsIEVWX0tFWSwgS0VZX1BPV0VSKTsKIAogCWZhbGxfaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoZmFsbF9pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkNhbid0IGdldCBmYWxsIGlycTogJWRcbiIsIGZhbGxfaXJxKTsKKwlpZiAoZmFsbF9pcnEgPCAwKQogCQlyZXR1cm4gZmFsbF9pcnE7Ci0JfQogCiAJcmlzZV9pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDEpOwotCWlmIChyaXNlX2lycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ2FuJ3QgZ2V0IHJpc2UgaXJxOiAlZFxuIiwgcmlzZV9pcnEpOworCWlmIChyaXNlX2lycSA8IDApCiAJCXJldHVybiByaXNlX2lycTsKLQl9CiAKIAllcnIgPSBkZXZtX3JlcXVlc3RfYW55X2NvbnRleHRfaXJxKCZwd3ItPmRldiwgZmFsbF9pcnEsCiAJCQkJCSAgIHB3cmtleV9mYWxsX2lycSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy9zb2NfYnV0dG9uX2FycmF5LmMgYi9kcml2ZXJzL2lucHV0L21pc2Mvc29jX2J1dHRvbl9hcnJheS5jCmluZGV4IDVlNTlmOGU1Li45N2UzNjM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2Mvc29jX2J1dHRvbl9hcnJheS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9zb2NfYnV0dG9uX2FycmF5LmMKQEAgLTI1LDYgKzI1LDExIEBAIHN0cnVjdCBzb2NfYnV0dG9uX2luZm8gewogCWJvb2wgd2FrZXVwOwogfTsKIAorc3RydWN0IHNvY19kZXZpY2VfZGF0YSB7CisJY29uc3Qgc3RydWN0IHNvY19idXR0b25faW5mbyAqYnV0dG9uX2luZm87CisJaW50ICgqY2hlY2spKHN0cnVjdCBkZXZpY2UgKmRldik7Cit9OworCiAvKgogICogU29tZSBvZiB0aGUgYnV0dG9ucyBsaWtlIHZvbHVtZSB1cC9kb3duIGFyZSBhdXRvIHJlcGVhdCwgd2hpbGUgb3RoZXJzCiAgKiBhcmUgbm90LiBUbyBzdXBwb3J0IGJvdGgsIHdlIHJlZ2lzdGVyIHR3byBwbGF0Zm9ybSBkZXZpY2VzLCBhbmQgcHV0CkBAIC04Nyw4ICs5MiwxMyBAQCBzb2NfYnV0dG9uX2RldmljZV9jcmVhdGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCWNvbnRpbnVlOwogCiAJCWdwaW8gPSBzb2NfYnV0dG9uX2xvb2t1cF9ncGlvKCZwZGV2LT5kZXYsIGluZm8tPmFjcGlfaW5kZXgpOwotCQlpZiAoIWdwaW9faXNfdmFsaWQoZ3BpbykpCisJCWlmIChncGlvIDwgMCAmJiBncGlvICE9IC1FTk9FTlQpIHsKKwkJCWVycm9yID0gZ3BpbzsKKwkJCWdvdG8gZXJyX2ZyZWVfbWVtOworCQl9IGVsc2UgaWYgKCFncGlvX2lzX3ZhbGlkKGdwaW8pKSB7CisJCQkvKiBTa2lwIEdQSU8gaWYgbm90IHByZXNlbnQgKi8KIAkJCWNvbnRpbnVlOworCQl9CiAKIAkJZ3Bpb19rZXlzW25fYnV0dG9uc10udHlwZSA9IGluZm8tPmV2ZW50X3R5cGU7CiAJCWdwaW9fa2V5c1tuX2J1dHRvbnNdLmNvZGUgPSBpbmZvLT5ldmVudF9jb2RlOwpAQCAtMTEwLDI1ICsxMjAsMTkgQEAgc29jX2J1dHRvbl9kZXZpY2VfY3JlYXRlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJZ3Bpb19rZXlzX3BkYXRhLT5uYnV0dG9ucyA9IG5fYnV0dG9uczsKIAlncGlvX2tleXNfcGRhdGEtPnJlcCA9IGF1dG9yZXBlYXQ7CiAKLQlwZCA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygiZ3Bpby1rZXlzIiwgUExBVEZPUk1fREVWSURfQVVUTyk7Ci0JaWYgKCFwZCkgewotCQllcnJvciA9IC1FTk9NRU07CisJcGQgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfcmVzbmRhdGEoJnBkZXYtPmRldiwgImdwaW8ta2V5cyIsCisJCQkJCSAgICAgICBQTEFURk9STV9ERVZJRF9BVVRPLCBOVUxMLCAwLAorCQkJCQkgICAgICAgZ3Bpb19rZXlzX3BkYXRhLAorCQkJCQkgICAgICAgc2l6ZW9mKCpncGlvX2tleXNfcGRhdGEpKTsKKwllcnJvciA9IFBUUl9FUlJfT1JfWkVSTyhwZCk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwKKwkJCSJmYWlsZWQgcmVnaXN0ZXJpbmcgZ3Bpby1rZXlzOiAlZFxuIiwgZXJyb3IpOwogCQlnb3RvIGVycl9mcmVlX21lbTsKIAl9CiAKLQllcnJvciA9IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShwZCwgZ3Bpb19rZXlzX3BkYXRhLAotCQkJCQkgc2l6ZW9mKCpncGlvX2tleXNfcGRhdGEpKTsKLQlpZiAoZXJyb3IpCi0JCWdvdG8gZXJyX2ZyZWVfcGRldjsKLQotCWVycm9yID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZCk7Ci0JaWYgKGVycm9yKQotCQlnb3RvIGVycl9mcmVlX3BkZXY7Ci0KIAlyZXR1cm4gcGQ7CiAKLWVycl9mcmVlX3BkZXY6Ci0JcGxhdGZvcm1fZGV2aWNlX3B1dChwZCk7CiBlcnJfZnJlZV9tZW06CiAJZGV2bV9rZnJlZSgmcGRldi0+ZGV2LCBncGlvX2tleXNfcGRhdGEpOwogCXJldHVybiBFUlJfUFRSKGVycm9yKTsKQEAgLTMwOSwyMyArMzEzLDI2IEBAIHN0YXRpYyBpbnQgc29jX2J1dHRvbl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHN0YXRpYyBpbnQgc29jX2J1dHRvbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Ci0JY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICppZDsKLQlzdHJ1Y3Qgc29jX2J1dHRvbl9pbmZvICpidXR0b25faW5mbzsKKwljb25zdCBzdHJ1Y3Qgc29jX2RldmljZV9kYXRhICpkZXZpY2VfZGF0YTsKKwljb25zdCBzdHJ1Y3Qgc29jX2J1dHRvbl9pbmZvICpidXR0b25faW5mbzsKIAlzdHJ1Y3Qgc29jX2J1dHRvbl9kYXRhICpwcml2OwogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkOwogCWludCBpOwogCWludCBlcnJvcjsKIAotCWlkID0gYWNwaV9tYXRjaF9kZXZpY2UoZGV2LT5kcml2ZXItPmFjcGlfbWF0Y2hfdGFibGUsIGRldik7Ci0JaWYgKCFpZCkKLQkJcmV0dXJuIC1FTk9ERVY7CisJZGV2aWNlX2RhdGEgPSBhY3BpX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOworCWlmIChkZXZpY2VfZGF0YSAmJiBkZXZpY2VfZGF0YS0+Y2hlY2spIHsKKwkJZXJyb3IgPSBkZXZpY2VfZGF0YS0+Y2hlY2soZGV2KTsKKwkJaWYgKGVycm9yKQorCQkJcmV0dXJuIGVycm9yOworCX0KIAotCWlmICghaWQtPmRyaXZlcl9kYXRhKSB7CisJaWYgKGRldmljZV9kYXRhICYmIGRldmljZV9kYXRhLT5idXR0b25faW5mbykgeworCQlidXR0b25faW5mbyA9IGRldmljZV9kYXRhLT5idXR0b25faW5mbzsKKwl9IGVsc2UgewogCQlidXR0b25faW5mbyA9IHNvY19idXR0b25fZ2V0X2J1dHRvbl9pbmZvKGRldik7CiAJCWlmIChJU19FUlIoYnV0dG9uX2luZm8pKQogCQkJcmV0dXJuIFBUUl9FUlIoYnV0dG9uX2luZm8pOwotCX0gZWxzZSB7Ci0JCWJ1dHRvbl9pbmZvID0gKHN0cnVjdCBzb2NfYnV0dG9uX2luZm8gKilpZC0+ZHJpdmVyX2RhdGE7CiAJfQogCiAJZXJyb3IgPSBncGlvZF9jb3VudChkZXYsIE5VTEwpOwpAQCAtMzU3LDcgKzM2NCw3IEBAIHN0YXRpYyBpbnQgc29jX2J1dHRvbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghcHJpdi0+Y2hpbGRyZW5bMF0gJiYgIXByaXYtPmNoaWxkcmVuWzFdKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmICghaWQtPmRyaXZlcl9kYXRhKQorCWlmICghZGV2aWNlX2RhdGEgfHwgIWRldmljZV9kYXRhLT5idXR0b25faW5mbykKIAkJZGV2bV9rZnJlZShkZXYsIGJ1dHRvbl9pbmZvKTsKIAogCXJldHVybiAwOwpAQCAtMzY4LDcgKzM3NSw3IEBAIHN0YXRpYyBpbnQgc29jX2J1dHRvbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogICogaXMgZGVmaW5lZCBpbiBzZWN0aW9uIDIuOC43LjIgb2YgIldpbmRvd3MgQUNQSSBEZXNpZ24gR3VpZGUgZm9yIFNvQwogICogUGxhdGZvcm1zIgogICovCi1zdGF0aWMgc3RydWN0IHNvY19idXR0b25faW5mbyBzb2NfYnV0dG9uX1BOUDBDNDBbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2J1dHRvbl9pbmZvIHNvY19idXR0b25fUE5QMEM0MFtdID0gewogCXsgInBvd2VyIiwgMCwgRVZfS0VZLCBLRVlfUE9XRVIsIGZhbHNlLCB0cnVlIH0sCiAJeyAiaG9tZSIsIDEsIEVWX0tFWSwgS0VZX0xFRlRNRVRBLCBmYWxzZSwgdHJ1ZSB9LAogCXsgInZvbHVtZV91cCIsIDIsIEVWX0tFWSwgS0VZX1ZPTFVNRVVQLCB0cnVlLCBmYWxzZSB9LApAQCAtMzc3LDkgKzM4NCw3NyBAQCBzdGF0aWMgc3RydWN0IHNvY19idXR0b25faW5mbyBzb2NfYnV0dG9uX1BOUDBDNDBbXSA9IHsKIAl7IH0KIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2RldmljZV9kYXRhIHNvY19kZXZpY2VfUE5QMEM0MCA9IHsKKwkuYnV0dG9uX2luZm8gPSBzb2NfYnV0dG9uX1BOUDBDNDAsCit9OworCisvKgorICogU3BlY2lhbCBkZXZpY2UgY2hlY2sgZm9yIFN1cmZhY2UgQm9vayAyIGFuZCBTdXJmYWNlIFBybyAoMjAxNykuCisgKiBCb3RoLCB0aGUgU3VyZmFjZSBQcm8gNCAoc3VyZmFjZXBybzNfYnV0dG9uLmMpIGFuZCB0aGUgYWJvdmUgbWVudGlvbmVkCisgKiBkZXZpY2VzIHVzZSBNU0hXMDA0MCBmb3IgcG93ZXIgYW5kIHZvbHVtZSBidXR0b25zLCBob3dldmVyIHRoZSB3YXkgdGhleQorICogaGF2ZSB0byBiZSBhZGRyZXNzZWQgZGlmZmVycy4gTWFrZSBzdXJlIHRoYXQgd2Ugb25seSBsb2FkIHRoaXMgZHJpdmVycworICogZm9yIHRoZSBjb3JyZWN0IGRldmljZXMgYnkgY2hlY2tpbmcgdGhlIE9FTSBQbGF0Zm9ybSBSZXZpc2lvbiBwcm92aWRlZCBieQorICogdGhlIF9EU00gbWV0aG9kLgorICovCisjZGVmaW5lIE1TSFcwMDQwX0RTTV9SRVZJU0lPTgkJMHgwMQorI2RlZmluZSBNU0hXMDA0MF9EU01fR0VUX09NUFIJCTB4MDIJLy8gZ2V0IE9FTSBQbGF0Zm9ybSBSZXZpc2lvbgorc3RhdGljIGNvbnN0IGd1aWRfdCBNU0hXMDA0MF9EU01fVVVJRCA9CisJR1VJRF9JTklUKDB4NmZkMDVjNjksIDB4Y2RlMywgMHg0OWY0LCAweDk1LCAweGVkLCAweGFiLCAweDE2LCAweDY1LAorCQkgIDB4NDksIDB4ODAsIDB4MzUpOworCitzdGF0aWMgaW50IHNvY19kZXZpY2VfY2hlY2tfTVNIVzAwNDAoc3RydWN0IGRldmljZSAqZGV2KQoreworCWFjcGlfaGFuZGxlIGhhbmRsZSA9IEFDUElfSEFORExFKGRldik7CisJdW5pb24gYWNwaV9vYmplY3QgKnJlc3VsdDsKKwl1NjQgb2VtX3BsYXRmb3JtX3JldiA9IDA7CS8vIHZhbGlkIHJldmlzaW9ucyBhcmUgbm9uemVybworCisJLy8gZ2V0IE9FTSBwbGF0Zm9ybSByZXZpc2lvbgorCXJlc3VsdCA9IGFjcGlfZXZhbHVhdGVfZHNtX3R5cGVkKGhhbmRsZSwgJk1TSFcwMDQwX0RTTV9VVUlELAorCQkJCQkgTVNIVzAwNDBfRFNNX1JFVklTSU9OLAorCQkJCQkgTVNIVzAwNDBfRFNNX0dFVF9PTVBSLCBOVUxMLAorCQkJCQkgQUNQSV9UWVBFX0lOVEVHRVIpOworCisJaWYgKHJlc3VsdCkgeworCQlvZW1fcGxhdGZvcm1fcmV2ID0gcmVzdWx0LT5pbnRlZ2VyLnZhbHVlOworCQlBQ1BJX0ZSRUUocmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIElmIHRoZSByZXZpc2lvbiBpcyB6ZXJvIGhlcmUsIHRoZSBfRFNNIGV2YWx1YXRpb24gaGFzIGZhaWxlZC4gVGhpcworCSAqIGluZGljYXRlcyB0aGF0IHdlIGhhdmUgYSBQcm8gNCBvciBCb29rIDEgYW5kIHRoaXMgZHJpdmVyIHNob3VsZCBub3QKKwkgKiBiZSB1c2VkLgorCSAqLworCWlmIChvZW1fcGxhdGZvcm1fcmV2ID09IDApCisJCXJldHVybiAtRU5PREVWOworCisJZGV2X2RiZyhkZXYsICJPRU0gUGxhdGZvcm0gUmV2aXNpb24gJWxsdVxuIiwgb2VtX3BsYXRmb3JtX3Jldik7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEJ1dHRvbiBpbmZvcyBmb3IgTWljcm9zb2Z0IFN1cmZhY2UgQm9vayAyIGFuZCBTdXJmYWNlIFBybyAoMjAxNykuCisgKiBPYnRhaW5lZCBmcm9tIERTRFQvdGVzdGluZy4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfYnV0dG9uX2luZm8gc29jX2J1dHRvbl9NU0hXMDA0MFtdID0geworCXsgInBvd2VyIiwgMCwgRVZfS0VZLCBLRVlfUE9XRVIsIGZhbHNlLCB0cnVlIH0sCisJeyAidm9sdW1lX3VwIiwgMiwgRVZfS0VZLCBLRVlfVk9MVU1FVVAsIHRydWUsIGZhbHNlIH0sCisJeyAidm9sdW1lX2Rvd24iLCA0LCBFVl9LRVksIEtFWV9WT0xVTUVET1dOLCB0cnVlLCBmYWxzZSB9LAorCXsgfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZGV2aWNlX2RhdGEgc29jX2RldmljZV9NU0hXMDA0MCA9IHsKKwkuYnV0dG9uX2luZm8gPSBzb2NfYnV0dG9uX01TSFcwMDQwLAorCS5jaGVjayA9IHNvY19kZXZpY2VfY2hlY2tfTVNIVzAwNDAsCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkIHNvY19idXR0b25fYWNwaV9tYXRjaFtdID0gewotCXsgIlBOUDBDNDAiLCAodW5zaWduZWQgbG9uZylzb2NfYnV0dG9uX1BOUDBDNDAgfSwKKwl7ICJQTlAwQzQwIiwgKHVuc2lnbmVkIGxvbmcpJnNvY19kZXZpY2VfUE5QMEM0MCB9LAogCXsgIkFDUEkwMDExIiwgMCB9LAorCisJLyogTWljcm9zb2Z0IFN1cmZhY2UgRGV2aWNlcyAoNXRoIGFuZCA2dGggZ2VuZXJhdGlvbikgKi8KKwl7ICJNU0hXMDA0MCIsICh1bnNpZ25lZCBsb25nKSZzb2NfZGV2aWNlX01TSFcwMDQwIH0sCisKIAl7IH0KIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy9zdHBtaWMxX29ua2V5LmMgYi9kcml2ZXJzL2lucHV0L21pc2Mvc3RwbWljMV9vbmtleS5jCmluZGV4IDdiNDljOTkuLmQ4ZGMyZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy9zdHBtaWMxX29ua2V5LmMKKysrIGIvZHJpdmVycy9pbnB1dC9taXNjL3N0cG1pYzFfb25rZXkuYwpAQCAtNjEsMTggKzYxLDEyIEBAIHN0YXRpYyBpbnQgc3RwbWljMV9vbmtleV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAogCW9ua2V5LT5pcnFfZmFsbGluZyA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJvbmtleS1mYWxsaW5nIik7Ci0JaWYgKG9ua2V5LT5pcnFfZmFsbGluZyA8IDApIHsKLQkJZGV2X2VycihkZXYsICJmYWlsZWQ6IHJlcXVlc3QgSVJRIG9ua2V5LWZhbGxpbmcgJWRcbiIsCi0JCQlvbmtleS0+aXJxX2ZhbGxpbmcpOworCWlmIChvbmtleS0+aXJxX2ZhbGxpbmcgPCAwKQogCQlyZXR1cm4gb25rZXktPmlycV9mYWxsaW5nOwotCX0KIAogCW9ua2V5LT5pcnFfcmlzaW5nID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgIm9ua2V5LXJpc2luZyIpOwotCWlmIChvbmtleS0+aXJxX3Jpc2luZyA8IDApIHsKLQkJZGV2X2VycihkZXYsICJmYWlsZWQ6IHJlcXVlc3QgSVJRIG9ua2V5LXJpc2luZyAlZFxuIiwKLQkJCW9ua2V5LT5pcnFfcmlzaW5nKTsKKwlpZiAob25rZXktPmlycV9yaXNpbmcgPCAwKQogCQlyZXR1cm4gb25rZXktPmlycV9yaXNpbmc7Ci0JfQogCiAJaWYgKCFkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCAicG93ZXItb2ZmLXRpbWUtc2VjIiwgJnZhbCkpIHsKIAkJaWYgKHZhbCA+IDAgJiYgdmFsIDw9IDE2KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21pc2MvdHBzNjUyMTgtcHdyYnV0dG9uLmMgYi9kcml2ZXJzL2lucHV0L21pc2MvdHBzNjUyMTgtcHdyYnV0dG9uLmMKaW5kZXggYTQ0NTViYi4uZjAxMTQ0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9taXNjL3RwczY1MjE4LXB3cmJ1dHRvbi5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy90cHM2NTIxOC1wd3JidXR0b24uYwpAQCAtMTI0LDEwICsxMjQsOCBAQCBzdGF0aWMgaW50IHRwczY1MjF4X3BiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZGV2aWNlX2luaXRfd2FrZXVwKGRldiwgdHJ1ZSk7CiAKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEgPCAwKSB7Ci0JCWRldl9lcnIoZGV2LCAiTm8gSVJRIHJlc291cmNlIVxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCWVycm9yID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycShkZXYsIGlycSwgTlVMTCwgdHBzNjUyMXhfcGJfaXJxLAogCQkJCQkgIElSUUZfVFJJR0dFUl9SSVNJTkcgfApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL3R3bDYwNDAtdmlicmEuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy90d2w2MDQwLXZpYnJhLmMKaW5kZXggOTMyMzVhMC4uYmY2NjQ0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9taXNjL3R3bDYwNDAtdmlicmEuYworKysgYi9kcml2ZXJzL2lucHV0L21pc2MvdHdsNjA0MC12aWJyYS5jCkBAIC0yNzIsMTAgKzI3Miw4IEBAIHN0YXRpYyBpbnQgdHdsNjA0MF92aWJyYV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCWluZm8tPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGluZm8tPmlycSA8IDApIHsKLQkJZGV2X2VycihpbmZvLT5kZXYsICJpbnZhbGlkIGlycVxuIik7CisJaWYgKGluZm8tPmlycSA8IDApCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCWVycm9yID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmcGRldi0+ZGV2LCBpbmZvLT5pcnEsIE5VTEwsCiAJCQkJCSAgdHdsNjA0MF92aWJfaXJxX2hhbmRsZXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL2FscHMuaCBiL2RyaXZlcnMvaW5wdXQvbW91c2UvYWxwcy5oCmluZGV4IGY0YmFiNjIuLjBhMTA0OGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2UvYWxwcy5oCisrKyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvYWxwcy5oCkBAIC0zMjMsMTggKzMyMyw3IEBAIHN0cnVjdCBhbHBzX2RhdGEgewogCiAjZGVmaW5lIEFMUFNfUVVJUktfVFJBQ0tTVElDS19CVVRUT05TCTEgLyogdHJha2NzdGljayBidXR0b25zIGluIHRyYWNrc3RpY2sgcGFja2V0ICovCiAKLSNpZmRlZiBDT05GSUdfTU9VU0VfUFMyX0FMUFMKIGludCBhbHBzX2RldGVjdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwgYm9vbCBzZXRfcHJvcGVydGllcyk7CiBpbnQgYWxwc19pbml0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlKTsKLSNlbHNlCi1pbmxpbmUgaW50IGFscHNfZGV0ZWN0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlLCBib29sIHNldF9wcm9wZXJ0aWVzKQotewotCXJldHVybiAtRU5PU1lTOwotfQotaW5saW5lIGludCBhbHBzX2luaXQoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpCi17Ci0JcmV0dXJuIC1FTk9TWVM7Ci19Ci0jZW5kaWYgLyogQ09ORklHX01PVVNFX1BTMl9BTFBTICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS9ieWQuaCBiL2RyaXZlcnMvaW5wdXQvbW91c2UvYnlkLmgKaW5kZXggOGNiOTBkOS4uZmYyNzcxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS9ieWQuaAorKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL2J5ZC5oCkBAIC0yLDE4ICsyLDcgQEAKICNpZm5kZWYgX0JZRF9ICiAjZGVmaW5lIF9CWURfSAogCi0jaWZkZWYgQ09ORklHX01PVVNFX1BTMl9CWUQKIGludCBieWRfZGV0ZWN0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlLCBib29sIHNldF9wcm9wZXJ0aWVzKTsKIGludCBieWRfaW5pdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSk7Ci0jZWxzZQotc3RhdGljIGlubGluZSBpbnQgYnlkX2RldGVjdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwgYm9vbCBzZXRfcHJvcGVydGllcykKLXsKLQlyZXR1cm4gLUVOT1NZUzsKLX0KLXN0YXRpYyBpbmxpbmUgaW50IGJ5ZF9pbml0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlKQotewotCXJldHVybiAtRU5PU1lTOwotfQotI2VuZGlmIC8qIENPTkZJR19NT1VTRV9QUzJfQllEICovCiAKICNlbmRpZiAvKiBfQllEX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbW91c2UvY3lhcGEuYyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvY3lhcGEuYwppbmRleCBkZmQzODczLi5jNjc1ZjE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL2N5YXBhLmMKKysrIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9jeWFwYS5jCkBAIC0xMjM4LDEzICsxMjM4LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgY3lhcGFfc3lzZnNfZ3JvdXAgPSB7CiAJLmF0dHJzID0gY3lhcGFfc3lzZnNfZW50cmllcywKIH07CiAKLXN0YXRpYyB2b2lkIGN5YXBhX3JlbW92ZV9zeXNmc19ncm91cCh2b2lkICpkYXRhKQotewotCXN0cnVjdCBjeWFwYSAqY3lhcGEgPSBkYXRhOwotCi0Jc3lzZnNfcmVtb3ZlX2dyb3VwKCZjeWFwYS0+Y2xpZW50LT5kZXYua29iaiwgJmN5YXBhX3N5c2ZzX2dyb3VwKTsKLX0KLQogc3RhdGljIHZvaWQgY3lhcGFfZGlzYWJsZV9yZWd1bGF0b3Iodm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgY3lhcGEgKmN5YXBhID0gZGF0YTsKQEAgLTEzMTIsMTkgKzEzMDUsMTIgQEAgc3RhdGljIGludCBjeWFwYV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCQlyZXR1cm4gZXJyb3I7CiAJfQogCi0JZXJyb3IgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJmRldi0+a29iaiwgJmN5YXBhX3N5c2ZzX2dyb3VwKTsKKwllcnJvciA9IGRldm1fZGV2aWNlX2FkZF9ncm91cChkZXYsICZjeWFwYV9zeXNmc19ncm91cCk7CiAJaWYgKGVycm9yKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBzeXNmcyBlbnRyaWVzOiAlZFxuIiwgZXJyb3IpOwogCQlyZXR1cm4gZXJyb3I7CiAJfQogCi0JZXJyb3IgPSBkZXZtX2FkZF9hY3Rpb24oZGV2LCBjeWFwYV9yZW1vdmVfc3lzZnNfZ3JvdXAsIGN5YXBhKTsKLQlpZiAoZXJyb3IpIHsKLQkJY3lhcGFfcmVtb3ZlX3N5c2ZzX2dyb3VwKGN5YXBhKTsKLQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gYWRkIHN5c2ZzIGNsZWFudXAgYWN0aW9uOiAlZFxuIiwgZXJyb3IpOwotCQlyZXR1cm4gZXJyb3I7Ci0JfQotCiAJZXJyb3IgPSBjeWFwYV9wcmVwYXJlX3dha2V1cF9jb250cm9scyhjeWFwYSk7CiAJaWYgKGVycm9yKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHByZXBhcmUgd2FrZXVwIGNvbnRyb2xzOiAlZFxuIiwgZXJyb3IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS9jeXByZXNzX3BzMi5oIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9jeXByZXNzX3BzMi5oCmluZGV4IDFlYWRkZDguLmJiNDk3OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2UvY3lwcmVzc19wczIuaAorKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL2N5cHJlc3NfcHMyLmgKQEAgLTE3MCwxOCArMTcwLDcgQEAgc3RydWN0IGN5dHBfZGF0YSB7CiB9OwogCiAKLSNpZmRlZiBDT05GSUdfTU9VU0VfUFMyX0NZUFJFU1MKIGludCBjeXByZXNzX2RldGVjdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwgYm9vbCBzZXRfcHJvcGVydGllcyk7CiBpbnQgY3lwcmVzc19pbml0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlKTsKLSNlbHNlCi1pbmxpbmUgaW50IGN5cHJlc3NfZGV0ZWN0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlLCBib29sIHNldF9wcm9wZXJ0aWVzKQotewotCXJldHVybiAtRU5PU1lTOwotfQotaW5saW5lIGludCBjeXByZXNzX2luaXQoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpCi17Ci0JcmV0dXJuIC1FTk9TWVM7Ci19Ci0jZW5kaWYgLyogQ09ORklHX01PVVNFX1BTMl9DWVBSRVNTICovCiAKICNlbmRpZiAgLyogX0NZUFJFU1NfUFMyX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbW91c2UvZWxhbl9pMmNfY29yZS5jIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9lbGFuX2kyY19jb3JlLmMKaW5kZXggZDliMTAzYS4uODcxOWRhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS9lbGFuX2kyY19jb3JlLmMKKysrIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9lbGFuX2kyY19jb3JlLmMKQEAgLTExMzgsMTMgKzExMzgsNiBAQCBzdGF0aWMgdm9pZCBlbGFuX2Rpc2FibGVfcmVndWxhdG9yKHZvaWQgKl9kYXRhKQogCXJlZ3VsYXRvcl9kaXNhYmxlKGRhdGEtPnZjYyk7CiB9CiAKLXN0YXRpYyB2b2lkIGVsYW5fcmVtb3ZlX3N5c2ZzX2dyb3Vwcyh2b2lkICpfZGF0YSkKLXsKLQlzdHJ1Y3QgZWxhbl90cF9kYXRhICpkYXRhID0gX2RhdGE7Ci0KLQlzeXNmc19yZW1vdmVfZ3JvdXBzKCZkYXRhLT5jbGllbnQtPmRldi5rb2JqLCBlbGFuX3N5c2ZzX2dyb3Vwcyk7Ci19Ci0KIHN0YXRpYyBpbnQgZWxhbl9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCQkgICAgICBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqZGV2X2lkKQogewpAQCAtMTE5NCw5ICsxMTg3LDggQEAgc3RhdGljIGludCBlbGFuX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJCXJldHVybiBlcnJvcjsKIAl9CiAKLQllcnJvciA9IGRldm1fYWRkX2FjdGlvbihkZXYsIGVsYW5fZGlzYWJsZV9yZWd1bGF0b3IsIGRhdGEpOworCWVycm9yID0gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRldiwgZWxhbl9kaXNhYmxlX3JlZ3VsYXRvciwgZGF0YSk7CiAJaWYgKGVycm9yKSB7Ci0JCXJlZ3VsYXRvcl9kaXNhYmxlKGRhdGEtPnZjYyk7CiAJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFkZCBkaXNhYmxlIHJlZ3VsYXRvciBhY3Rpb246ICVkXG4iLAogCQkJZXJyb3IpOwogCQlyZXR1cm4gZXJyb3I7CkBAIC0xMjY5LDIwICsxMjYxLDEyIEBAIHN0YXRpYyBpbnQgZWxhbl9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCQlyZXR1cm4gZXJyb3I7CiAJfQogCi0JZXJyb3IgPSBzeXNmc19jcmVhdGVfZ3JvdXBzKCZkZXYtPmtvYmosIGVsYW5fc3lzZnNfZ3JvdXBzKTsKKwllcnJvciA9IGRldm1fZGV2aWNlX2FkZF9ncm91cHMoZGV2LCBlbGFuX3N5c2ZzX2dyb3Vwcyk7CiAJaWYgKGVycm9yKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBzeXNmcyBhdHRyaWJ1dGVzOiAlZFxuIiwgZXJyb3IpOwogCQlyZXR1cm4gZXJyb3I7CiAJfQogCi0JZXJyb3IgPSBkZXZtX2FkZF9hY3Rpb24oZGV2LCBlbGFuX3JlbW92ZV9zeXNmc19ncm91cHMsIGRhdGEpOwotCWlmIChlcnJvcikgewotCQllbGFuX3JlbW92ZV9zeXNmc19ncm91cHMoZGF0YSk7Ci0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFkZCBzeXNmcyBjbGVhbnVwIGFjdGlvbjogJWRcbiIsCi0JCQllcnJvcik7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0KIAllcnJvciA9IGlucHV0X3JlZ2lzdGVyX2RldmljZShkYXRhLT5pbnB1dCk7CiAJaWYgKGVycm9yKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGlucHV0IGRldmljZTogJWRcbiIsIGVycm9yKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbW91c2UvZWxhbnRlY2guaCBiL2RyaXZlcnMvaW5wdXQvbW91c2UvZWxhbnRlY2guaAppbmRleCA0NjM0Mzk5Li5lMGEzZTU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL2VsYW50ZWNoLmgKKysrIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9lbGFudGVjaC5oCkBAIC0xODQsMzIgKzE4NCwxOCBAQCBzdHJ1Y3QgZWxhbnRlY2hfZGF0YSB7CiAJdm9pZCAoKm9yaWdpbmFsX3NldF9yYXRlKShzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwgdW5zaWduZWQgaW50IHJhdGUpOwogfTsKIAotI2lmZGVmIENPTkZJR19NT1VTRV9QUzJfRUxBTlRFQ0gKIGludCBlbGFudGVjaF9kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGJvb2wgc2V0X3Byb3BlcnRpZXMpOwogaW50IGVsYW50ZWNoX2luaXRfcHMyKHN0cnVjdCBwc21vdXNlICpwc21vdXNlKTsKKworI2lmZGVmIENPTkZJR19NT1VTRV9QUzJfRUxBTlRFQ0gKIGludCBlbGFudGVjaF9pbml0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlKTsKICNlbHNlCi1zdGF0aWMgaW5saW5lIGludCBlbGFudGVjaF9kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGJvb2wgc2V0X3Byb3BlcnRpZXMpCi17Ci0JcmV0dXJuIC1FTk9TWVM7Ci19CiBzdGF0aWMgaW5saW5lIGludCBlbGFudGVjaF9pbml0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlKQogewogCXJldHVybiAtRU5PU1lTOwogfQotc3RhdGljIGlubGluZSBpbnQgZWxhbnRlY2hfaW5pdF9wczIoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpCi17Ci0JcmV0dXJuIC1FTk9TWVM7Ci19CiAjZW5kaWYgLyogQ09ORklHX01PVVNFX1BTMl9FTEFOVEVDSCAqLwogCi0jaWYgZGVmaW5lZChDT05GSUdfTU9VU0VfUFMyX0VMQU5URUNIX1NNQlVTKQogaW50IGVsYW50ZWNoX2luaXRfc21idXMoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IGVsYW50ZWNoX2luaXRfc21idXMoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpCi17Ci0JcmV0dXJuIC1FTk9TWVM7Ci19Ci0jZW5kaWYgLyogQ09ORklHX01PVVNFX1BTMl9FTEFOVEVDSF9TTUJVUyAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbW91c2UvaGdway5oIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9oZ3BrLmgKaW5kZXggOThiN2IzOC4uY2UwNDE1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS9oZ3BrLmgKKysrIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9oZ3BrLmgKQEAgLTQ3LDIyICs0NywxNSBAQCBzdHJ1Y3QgaGdwa19kYXRhIHsKIAlpbnQgeHNhd19zZWNvbmRhcnksIHlzYXdfc2Vjb25kYXJ5OyAvKiBqdW1waW5lc3MgZGV0ZWN0aW9uICovCiB9OwogCi0jaWZkZWYgQ09ORklHX01PVVNFX1BTMl9PTFBDCi12b2lkIGhncGtfbW9kdWxlX2luaXQodm9pZCk7CiBpbnQgaGdwa19kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGJvb2wgc2V0X3Byb3BlcnRpZXMpOwogaW50IGhncGtfaW5pdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSk7CisKKyNpZmRlZiBDT05GSUdfTU9VU0VfUFMyX09MUEMKK3ZvaWQgaGdwa19tb2R1bGVfaW5pdCh2b2lkKTsKICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQgaGdwa19tb2R1bGVfaW5pdCh2b2lkKQogewogfQotc3RhdGljIGlubGluZSBpbnQgaGdwa19kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGJvb2wgc2V0X3Byb3BlcnRpZXMpCi17Ci0JcmV0dXJuIC1FTk9ERVY7Ci19Ci1zdGF0aWMgaW5saW5lIGludCBoZ3BrX2luaXQoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpCi17Ci0JcmV0dXJuIC1FTk9ERVY7Ci19CiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL2xpZmVib29rLmggYi9kcml2ZXJzL2lucHV0L21vdXNlL2xpZmVib29rLmgKaW5kZXggNTczZjJjYS4uZDk4OWNjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS9saWZlYm9vay5oCisrKyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvbGlmZWJvb2suaApAQCAtOCwyMiArOCwxNSBAQAogI2lmbmRlZiBfTElGRUJPT0tfSAogI2RlZmluZSBfTElGRUJPT0tfSAogCi0jaWZkZWYgQ09ORklHX01PVVNFX1BTMl9MSUZFQk9PSwotdm9pZCBsaWZlYm9va19tb2R1bGVfaW5pdCh2b2lkKTsKIGludCBsaWZlYm9va19kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGJvb2wgc2V0X3Byb3BlcnRpZXMpOwogaW50IGxpZmVib29rX2luaXQoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpOworCisjaWZkZWYgQ09ORklHX01PVVNFX1BTMl9MSUZFQk9PSwordm9pZCBsaWZlYm9va19tb2R1bGVfaW5pdCh2b2lkKTsKICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQgbGlmZWJvb2tfbW9kdWxlX2luaXQodm9pZCkKIHsKIH0KLXN0YXRpYyBpbmxpbmUgaW50IGxpZmVib29rX2RldGVjdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwgYm9vbCBzZXRfcHJvcGVydGllcykKLXsKLQlyZXR1cm4gLUVOT1NZUzsKLX0KLXN0YXRpYyBpbmxpbmUgaW50IGxpZmVib29rX2luaXQoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpCi17Ci0JcmV0dXJuIC1FTk9TWVM7Ci19CiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL2xvZ2lwczJwcC5oIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9sb2dpcHMycHAuaAppbmRleCA1ZjkzNDQxLi5kZjg4NWM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL2xvZ2lwczJwcC5oCisrKyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvbG9naXBzMnBwLmgKQEAgLTgsMTMgKzgsNiBAQAogI2lmbmRlZiBfTE9HSVBTMlBQX0gKICNkZWZpbmUgX0xPR0lQUzJQUF9ICiAKLSNpZmRlZiBDT05GSUdfTU9VU0VfUFMyX0xPR0lQUzJQUAogaW50IHBzMnBwX2RldGVjdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwgYm9vbCBzZXRfcHJvcGVydGllcyk7Ci0jZWxzZQotc3RhdGljIGlubGluZSBpbnQgcHMycHBfZGV0ZWN0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlLCBib29sIHNldF9wcm9wZXJ0aWVzKQotewotCXJldHVybiAtRU5PU1lTOwotfQotI2VuZGlmIC8qIENPTkZJR19NT1VTRV9QUzJfTE9HSVBTMlBQICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS9weGE5MzBfdHJrYmFsbC5jIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9weGE5MzBfdHJrYmFsbC5jCmluZGV4IDg3YmFjOGMuLjQxYWNkZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2UvcHhhOTMwX3Rya2JhbGwuYworKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL3B4YTkzMF90cmtiYWxsLmMKQEAgLTE0NywxMCArMTQ3LDggQEAgc3RhdGljIGludCBweGE5MzBfdHJrYmFsbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWludCBpcnEsIGVycm9yOwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHRya2JhbGwgaXJxXG4iKTsKKwlpZiAoaXJxIDwgMCkKIAkJcmV0dXJuIC1FTlhJTzsKLQl9CiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwogCWlmICghcmVzKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL3NlbnRlbGljLmggYi9kcml2ZXJzL2lucHV0L21vdXNlL3NlbnRlbGljLmgKaW5kZXggZGM4OGE5My4uMDJjYWMwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS9zZW50ZWxpYy5oCisrKyBiL2RyaXZlcnMvaW5wdXQvbW91c2Uvc2VudGVsaWMuaApAQCAtMTA2LDE5ICsxMDYsOCBAQCBzdHJ1Y3QgZnNwX2RhdGEgewogCXVuc2lnbmVkIGludAlsYXN0X210X2ZncjsJLyogTGFzdCBzZWVuIGZpbmdlcihtdWx0aXRvdWNoKSAqLwogfTsKIAotI2lmZGVmIENPTkZJR19NT1VTRV9QUzJfU0VOVEVMSUMKIGV4dGVybiBpbnQgZnNwX2RldGVjdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwgYm9vbCBzZXRfcHJvcGVydGllcyk7CiBleHRlcm4gaW50IGZzcF9pbml0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlKTsKLSNlbHNlCi1zdGF0aWMgaW5saW5lIGludCBmc3BfZGV0ZWN0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlLCBib29sIHNldF9wcm9wZXJ0aWVzKQotewotCXJldHVybiAtRU5PU1lTOwotfQotc3RhdGljIGlubGluZSBpbnQgZnNwX2luaXQoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpCi17Ci0JcmV0dXJuIC1FTk9TWVM7Ci19Ci0jZW5kaWYKIAogI2VuZGlmCS8qIF9fS0VSTkVMX18gKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS9zeW5hcHRpY3MuYyBiL2RyaXZlcnMvaW5wdXQvbW91c2Uvc3luYXB0aWNzLmMKaW5kZXggNDZiYmU5OS4uNTZmYWUzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS9zeW5hcHRpY3MuYworKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL3N5bmFwdGljcy5jCkBAIC0xOTMsNyArMTkzLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBmb3JjZXBhZF9wbnBfaWRzW10gPSB7CiB9OwogCiAvKgotICogU2VuZCBhIGNvbW1hbmQgdG8gdGhlIHN5bnBhdGljcyB0b3VjaHBhZCBieSBzcGVjaWFsIGNvbW1hbmRzCisgKiBTZW5kIGEgY29tbWFuZCB0byB0aGUgc3luYXB0aWNzIHRvdWNocGFkIGJ5IHNwZWNpYWwgY29tbWFuZHMKICAqLwogc3RhdGljIGludCBzeW5hcHRpY3Nfc2VuZF9jbWQoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIHU4IGNtZCwgdTggKnBhcmFtKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS90b3VjaGtpdF9wczIuaCBiL2RyaXZlcnMvaW5wdXQvbW91c2UvdG91Y2hraXRfcHMyLmgKaW5kZXggNWFjYjc2NC4uYzgwOGZlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS90b3VjaGtpdF9wczIuaAorKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL3RvdWNoa2l0X3BzMi5oCkBAIC05LDE0ICs5LDYgQEAKICNpZm5kZWYgX1RPVUNIS0lUX1BTMl9ICiAjZGVmaW5lIF9UT1VDSEtJVF9QUzJfSAogCi0jaWZkZWYgQ09ORklHX01PVVNFX1BTMl9UT1VDSEtJVAogaW50IHRvdWNoa2l0X3BzMl9kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGJvb2wgc2V0X3Byb3BlcnRpZXMpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IHRvdWNoa2l0X3BzMl9kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsCi0JCQkJICAgICAgYm9vbCBzZXRfcHJvcGVydGllcykKLXsKLQlyZXR1cm4gLUVOT1NZUzsKLX0KLSNlbmRpZiAvKiBDT05GSUdfTU9VU0VfUFMyX1RPVUNIS0lUICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS90cmFja3BvaW50LmggYi9kcml2ZXJzL2lucHV0L21vdXNlL3RyYWNrcG9pbnQuaAppbmRleCA3NzExMGYzLi41Y2I5M2VkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL3RyYWNrcG9pbnQuaAorKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL3RyYWNrcG9pbnQuaApAQCAtMTU1LDE0ICsxNTUsNiBAQCBzdHJ1Y3QgdHJhY2twb2ludF9kYXRhIHsKIAlib29sIGV4dF9kZXY7CiB9OwogCi0jaWZkZWYgQ09ORklHX01PVVNFX1BTMl9UUkFDS1BPSU5UCiBpbnQgdHJhY2twb2ludF9kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGJvb2wgc2V0X3Byb3BlcnRpZXMpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IHRyYWNrcG9pbnRfZGV0ZWN0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlLAotCQkJCSAgICBib29sIHNldF9wcm9wZXJ0aWVzKQotewotCXJldHVybiAtRU5PU1lTOwotfQotI2VuZGlmIC8qIENPTkZJR19NT1VTRV9QUzJfVFJBQ0tQT0lOVCAqLwogCiAjZW5kaWYgLyogX1RSQUNLUE9JTlRfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS92bW1vdXNlLmggYi9kcml2ZXJzL2lucHV0L21vdXNlL3ZtbW91c2UuaAppbmRleCA3NzQ1NDlhMS4uOTAxNTdhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS92bW1vdXNlLmgKKysrIGIvZHJpdmVycy9pbnB1dC9tb3VzZS92bW1vdXNlLmgKQEAgLTgsMjAgKzgsOSBAQAogI2lmbmRlZiBfVk1NT1VTRV9ICiAjZGVmaW5lIF9WTU1PVVNFX0gKIAotI2lmZGVmIENPTkZJR19NT1VTRV9QUzJfVk1NT1VTRQogI2RlZmluZSBWTU1PVVNFX1BTTkFNRSAgIlZpcnR1YWxQUy8yIgogCiBpbnQgdm1tb3VzZV9kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGJvb2wgc2V0X3Byb3BlcnRpZXMpOwogaW50IHZtbW91c2VfaW5pdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSk7Ci0jZWxzZQotc3RhdGljIGlubGluZSBpbnQgdm1tb3VzZV9kZXRlY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGJvb2wgc2V0X3Byb3BlcnRpZXMpCi17Ci0JcmV0dXJuIC1FTk9TWVM7Ci19Ci1zdGF0aWMgaW5saW5lIGludCB2bW1vdXNlX2luaXQoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpCi17Ci0JcmV0dXJuIC1FTk9TWVM7Ci19Ci0jZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3JtaTQvcm1pXzJkX3NlbnNvci5jIGIvZHJpdmVycy9pbnB1dC9ybWk0L3JtaV8yZF9zZW5zb3IuYwppbmRleCBlYTU0OWVmLi5iN2ZlNmViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3JtaTQvcm1pXzJkX3NlbnNvci5jCisrKyBiL2RyaXZlcnMvaW5wdXQvcm1pNC9ybWlfMmRfc2Vuc29yLmMKQEAgLTIwNCw3ICsyMDQsNiBAQCBzdGF0aWMgdm9pZCBybWlfMmRfc2Vuc29yX3NldF9pbnB1dF9wYXJhbXMoc3RydWN0IHJtaV8yZF9zZW5zb3IgKnNlbnNvcikKIAlpZiAoc2Vuc29yLT50b3BidXR0b25wYWQpCiAJCXNldF9iaXQoSU5QVVRfUFJPUF9UT1BCVVRUT05QQUQsIGlucHV0LT5wcm9wYml0KTsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKHJtaV8yZF9zZW5zb3Jfc2V0X2lucHV0X3BhcmFtcyk7CiAKIGludCBybWlfMmRfc2Vuc29yX2NvbmZpZ3VyZV9pbnB1dChzdHJ1Y3Qgcm1pX2Z1bmN0aW9uICpmbiwKIAkJCQkJc3RydWN0IHJtaV8yZF9zZW5zb3IgKnNlbnNvcikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvc2VyaW8vYXJjX3BzMi5jIGIvZHJpdmVycy9pbnB1dC9zZXJpby9hcmNfcHMyLmMKaW5kZXggNDQzMTk0YS4uMGFmOWZiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9zZXJpby9hcmNfcHMyLmMKKysrIGIvZHJpdmVycy9pbnB1dC9zZXJpby9hcmNfcHMyLmMKQEAgLTE4NywxMCArMTg3LDggQEAgc3RhdGljIGludCBhcmNfcHMyX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW50IGVycm9yLCBpZCwgaTsKIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJhcmNfcHMyX2lycSIpOwotCWlmIChpcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIElSUSBkZWZpbmVkXG4iKTsKKwlpZiAoaXJxIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJYXJjX3BzMiA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2Yoc3RydWN0IGFyY19wczJfZGF0YSksCiAJCQkJR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLmMgYi9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLmMKaW5kZXggYjY5NTA5NC4uMjBmZjJiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi5jCisrKyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIuYwpAQCAtNDMyLDYgKzQzMiwyMCBAQCBzdGF0aWMgaW50IGk4MDQyX3N0YXJ0KHN0cnVjdCBzZXJpbyAqc2VyaW8pCiB7CiAJc3RydWN0IGk4MDQyX3BvcnQgKnBvcnQgPSBzZXJpby0+cG9ydF9kYXRhOwogCisJZGV2aWNlX3NldF93YWtldXBfY2FwYWJsZSgmc2VyaW8tPmRldiwgdHJ1ZSk7CisKKwkvKgorCSAqIE9uIHBsYXRmb3JtcyB1c2luZyBzdXNwZW5kLXRvLWlkbGUsIGFsbG93IHRoZSBrZXlib2FyZCB0bworCSAqIHdha2UgdXAgdGhlIHN5c3RlbSBmcm9tIHNsZWVwIGJ5IGVuYWJsaW5nIGtleWJvYXJkIHdha2V1cHMKKwkgKiBieSBkZWZhdWx0LiAgVGhpcyBpcyBjb25zaXN0ZW50IHdpdGgga2V5Ym9hcmQgd2FrZXVwCisJICogYmVoYXZpb3Igb24gbWFueSBwbGF0Zm9ybXMgdXNpbmcgc3VzcGVuZC10by1SQU0gKEFDUEkgUzMpCisJICogYnkgZGVmYXVsdC4KKwkgKi8KKwlpZiAocG1fc3VzcGVuZF9kZWZhdWx0X3MyaWRsZSgpICYmCisJICAgIHNlcmlvID09IGk4MDQyX3BvcnRzW0k4MDQyX0tCRF9QT1JUX05PXS5zZXJpbykgeworCQlkZXZpY2Vfc2V0X3dha2V1cF9lbmFibGUoJnNlcmlvLT5kZXYsIHRydWUpOworCX0KKwogCXNwaW5fbG9ja19pcnEoJmk4MDQyX2xvY2spOwogCXBvcnQtPmV4aXN0cyA9IHRydWU7CiAJc3Bpbl91bmxvY2tfaXJxKCZpODA0Ml9sb2NrKTsKQEAgLTEzOTcsMTcgKzE0MTEsNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaTgwNDJfcmVnaXN0ZXJfcG9ydHModm9pZCkKIAkJCSh1bnNpZ25lZCBsb25nKSBJODA0Ml9DT01NQU5EX1JFRywKIAkJCWk4MDQyX3BvcnRzW2ldLmlycSk7CiAJCXNlcmlvX3JlZ2lzdGVyX3BvcnQoc2VyaW8pOwotCQlkZXZpY2Vfc2V0X3dha2V1cF9jYXBhYmxlKCZzZXJpby0+ZGV2LCB0cnVlKTsKLQotCQkvKgotCQkgKiBPbiBwbGF0Zm9ybXMgdXNpbmcgc3VzcGVuZC10by1pZGxlLCBhbGxvdyB0aGUga2V5Ym9hcmQgdG8KLQkJICogd2FrZSB1cCB0aGUgc3lzdGVtIGZyb20gc2xlZXAgYnkgZW5hYmxpbmcga2V5Ym9hcmQgd2FrZXVwcwotCQkgKiBieSBkZWZhdWx0LiAgVGhpcyBpcyBjb25zaXN0ZW50IHdpdGgga2V5Ym9hcmQgd2FrZXVwCi0JCSAqIGJlaGF2aW9yIG9uIG1hbnkgcGxhdGZvcm1zIHVzaW5nIHN1c3BlbmQtdG8tUkFNIChBQ1BJIFMzKQotCQkgKiBieSBkZWZhdWx0LgotCQkgKi8KLQkJaWYgKHBtX3N1c3BlbmRfZGVmYXVsdF9zMmlkbGUoKSAmJiBpID09IEk4MDQyX0tCRF9QT1JUX05PKQotCQkJZGV2aWNlX3NldF93YWtldXBfZW5hYmxlKCZzZXJpby0+ZGV2LCB0cnVlKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvc2VyaW8vcHMyLWdwaW8uYyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vcHMyLWdwaW8uYwppbmRleCBlMGYxODQ2OS4uODk3MGI0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9zZXJpby9wczItZ3Bpby5jCisrKyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vcHMyLWdwaW8uYwpAQCAtMzY5LDggKzM2OSw2IEBAIHN0YXRpYyBpbnQgcHMyX2dwaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWRydmRhdGEtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CiAJaWYgKGRydmRhdGEtPmlycSA8IDApIHsKLQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IGlycSBmcm9tIHBsYXRmb3JtIHJlc291cmNlOiAlZFxuIiwKLQkJCWRydmRhdGEtPmlycSk7CiAJCWVycm9yID0gZHJ2ZGF0YS0+aXJxOwogCQlnb3RvIGVycl9mcmVlX3NlcmlvOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vODhwbTg2MHgtdHMuYyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vODhwbTg2MHgtdHMuYwppbmRleCAxZDFiYmM4Li44MWEzZWE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuLzg4cG04NjB4LXRzLmMKKysrIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi84OHBtODYweC10cy5jCkBAIC0xODUsMTAgKzE4NSw4IEBAIHN0YXRpYyBpbnQgcG04NjB4X3RvdWNoX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW50IGlycSwgcmV0LCByZXNfeCA9IDAsIGRhdGEgPSAwOwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBJUlEgcmVzb3VyY2UhXG4iKTsKKwlpZiAoaXJxIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJaWYgKHBtODYweF90b3VjaF9kdF9pbml0KHBkZXYsIGNoaXAsICZyZXNfeCkpIHsKIAkJaWYgKHBkYXRhKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL0tjb25maWcgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL0tjb25maWcKaW5kZXggZmI5MWYyZC4uNDZhZDkwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9LY29uZmlnCisrKyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vS2NvbmZpZwpAQCAtMTExMiwxNSArMTExMiw2IEBACiAJICBvciBhbWJpZW50IGxpZ2h0IG1vbml0b3JpbmcpLCB0ZW1wZXJhdHVyZSBhbmQgcmF3IGlucHV0CiAJICB2YWx1ZXMuCiAKLWNvbmZpZyBUT1VDSFNDUkVFTl9XOTBYOTAwCi0JdHJpc3RhdGUgIlc5MFA5MTAgdG91Y2hzY3JlZW4gZHJpdmVyIgotCWRlcGVuZHMgb24gQVJDSF9XOTBYOTAwCi0JaGVscAotCSAgU2F5IFkgaGVyZSBpZiB5b3UgaGF2ZSBhIFc5MFA5MTAgYmFzZWQgdG91Y2hzY3JlZW4uCi0KLQkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQotCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHc5MHA5MTBfdHMuCi0KIGNvbmZpZyBUT1VDSFNDUkVFTl9QQ0FQCiAJdHJpc3RhdGUgIk1vdG9yb2xhIFBDQVAgdG91Y2hzY3JlZW4iCiAJZGVwZW5kcyBvbiBFWlhfUENBUApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9NYWtlZmlsZSBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vTWFrZWZpbGUKaW5kZXggMDg0YTU5Ni4uOTRjNjE2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL01ha2VmaWxlCkBAIC0xMDIsNyArMTAyLDYgQEAKIHdtOTd4eC10cy0kKENPTkZJR19UT1VDSFNDUkVFTl9XTTk3MTMpCSs9IHdtOTcxMy5vCiBvYmotJChDT05GSUdfVE9VQ0hTQ1JFRU5fV005N1hYX01BSU5TVE9ORSkJKz0gbWFpbnN0b25lLXdtOTd4eC5vCiBvYmotJChDT05GSUdfVE9VQ0hTQ1JFRU5fV005N1hYX1pZTE9OSVRFKQkrPSB6eWxvbml0ZS13bTk3eHgubwotb2JqLSQoQ09ORklHX1RPVUNIU0NSRUVOX1c5MFg5MDApCSs9IHc5MHA5MTBfdHMubwogb2JqLSQoQ09ORklHX1RPVUNIU0NSRUVOX1NYODY1NCkJKz0gc3g4NjU0Lm8KIG9iai0kKENPTkZJR19UT1VDSFNDUkVFTl9UUFM2NTA3WCkJKz0gdHBzNjUwN3gtdHMubwogb2JqLSQoQ09ORklHX1RPVUNIU0NSRUVOX1pFVDYyMjMpCSs9IHpldDYyMjMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9hZHM3ODQ2LmMgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2Fkczc4NDYuYwppbmRleCBhY2NiYmU4Li41MWRkYjIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2Fkczc4NDYuYworKysgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2Fkczc4NDYuYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0L3RvdWNoc2NyZWVuLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3BtLmg+CkBAIC0xMjksNiArMTMwLDggQEAgc3RydWN0IGFkczc4NDYgewogCiAJdTE2CQkJcGVuaXJxX3JlY2hlY2tfZGVsYXlfdXNlY3M7CiAKKwlzdHJ1Y3QgdG91Y2hzY3JlZW5fcHJvcGVydGllcyBjb3JlX3Byb3A7CisKIAlzdHJ1Y3QgbXV0ZXgJCWxvY2s7CiAJYm9vbAkJCXN0b3BwZWQ7CS8qIFA6IGxvY2sgKi8KIAlib29sCQkJZGlzYWJsZWQ7CS8qIFA6IGxvY2sgKi8KQEAgLTgyMywxNyArODI2LDEzIEBAIHN0YXRpYyB2b2lkIGFkczc4NDZfcmVwb3J0X3N0YXRlKHN0cnVjdCBhZHM3ODQ2ICp0cykKIAlpZiAoUnQpIHsKIAkJc3RydWN0IGlucHV0X2RldiAqaW5wdXQgPSB0cy0+aW5wdXQ7CiAKLQkJaWYgKHRzLT5zd2FwX3h5KQotCQkJc3dhcCh4LCB5KTsKLQogCQlpZiAoIXRzLT5wZW5kb3duKSB7CiAJCQlpbnB1dF9yZXBvcnRfa2V5KGlucHV0LCBCVE5fVE9VQ0gsIDEpOwogCQkJdHMtPnBlbmRvd24gPSB0cnVlOwogCQkJZGV2X3ZkYmcoJnRzLT5zcGktPmRldiwgIkRPV05cbiIpOwogCQl9CiAKLQkJaW5wdXRfcmVwb3J0X2FicyhpbnB1dCwgQUJTX1gsIHgpOwotCQlpbnB1dF9yZXBvcnRfYWJzKGlucHV0LCBBQlNfWSwgeSk7CisJCXRvdWNoc2NyZWVuX3JlcG9ydF9wb3MoaW5wdXQsICZ0cy0+Y29yZV9wcm9wLCB4LCB5LCBmYWxzZSk7CiAJCWlucHV0X3JlcG9ydF9hYnMoaW5wdXQsIEFCU19QUkVTU1VSRSwgdHMtPnByZXNzdXJlX21heCAtIFJ0KTsKIAogCQlpbnB1dF9zeW5jKGlucHV0KTsKQEAgLTExODUsNiArMTE4NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRzNzg0Nl9wbGF0Zm9ybV9kYXRhICphZHM3ODQ2X3Byb2JlX2R0KHN0cnVjdCBkZXZpY2UgKmRldikKIAlzdHJ1Y3QgYWRzNzg0Nl9wbGF0Zm9ybV9kYXRhICpwZGF0YTsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBkZXYtPm9mX25vZGU7CiAJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7CisJdTMyIHZhbHVlOwogCiAJaWYgKCFub2RlKSB7CiAJCWRldl9lcnIoZGV2LCAiRGV2aWNlIGRvZXMgbm90IGhhdmUgYXNzb2NpYXRlZCBEVCBkYXRhXG4iKTsKQEAgLTEyMjMsMTAgKzEyMjMsMTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZHM3ODQ2X3BsYXRmb3JtX2RhdGEgKmFkczc4NDZfcHJvYmVfZHQoc3RydWN0IGRldmljZSAqZGV2KQogCW9mX3Byb3BlcnR5X3JlYWRfdTE2KG5vZGUsICJ0aSx4LW1heCIsICZwZGF0YS0+eF9tYXgpOwogCW9mX3Byb3BlcnR5X3JlYWRfdTE2KG5vZGUsICJ0aSx5LW1heCIsICZwZGF0YS0+eV9tYXgpOwogCisJLyoKKwkgKiB0b3VjaHNjcmVlbi1tYXgtcHJlc3N1cmUgZ2V0cyBwYXJzZWQgZHVyaW5nCisJICogdG91Y2hzY3JlZW5fcGFyc2VfcHJvcGVydGllcygpCisJICovCiAJb2ZfcHJvcGVydHlfcmVhZF91MTYobm9kZSwgInRpLHByZXNzdXJlLW1pbiIsICZwZGF0YS0+cHJlc3N1cmVfbWluKTsKKwlpZiAoIW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJ0b3VjaHNjcmVlbi1taW4tcHJlc3N1cmUiLCAmdmFsdWUpKQorCQlwZGF0YS0+cHJlc3N1cmVfbWluID0gKHUxNikgdmFsdWU7CiAJb2ZfcHJvcGVydHlfcmVhZF91MTYobm9kZSwgInRpLHByZXNzdXJlLW1heCIsICZwZGF0YS0+cHJlc3N1cmVfbWF4KTsKIAogCW9mX3Byb3BlcnR5X3JlYWRfdTE2KG5vZGUsICJ0aSxkZWJvdW5jZS1tYXgiLCAmcGRhdGEtPmRlYm91bmNlX21heCk7CisJaWYgKCFvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAidG91Y2hzY3JlZW4tYXZlcmFnZS1zYW1wbGVzIiwgJnZhbHVlKSkKKwkJcGRhdGEtPmRlYm91bmNlX21heCA9ICh1MTYpIHZhbHVlOwogCW9mX3Byb3BlcnR5X3JlYWRfdTE2KG5vZGUsICJ0aSxkZWJvdW5jZS10b2wiLCAmcGRhdGEtPmRlYm91bmNlX3RvbCk7CiAJb2ZfcHJvcGVydHlfcmVhZF91MTYobm9kZSwgInRpLGRlYm91bmNlLXJlcCIsICZwZGF0YS0+ZGVib3VuY2VfcmVwKTsKIApAQCAtMTMwOSwxMCArMTMxNyw3IEBAIHN0YXRpYyBpbnQgYWRzNzg0Nl9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCXRzLT5tb2RlbCA9IHBkYXRhLT5tb2RlbCA/IDogNzg0NjsKIAl0cy0+dnJlZl9kZWxheV91c2VjcyA9IHBkYXRhLT52cmVmX2RlbGF5X3VzZWNzID8gOiAxMDA7CiAJdHMtPnhfcGxhdGVfb2htcyA9IHBkYXRhLT54X3BsYXRlX29obXMgPyA6IDQwMDsKLQl0cy0+cHJlc3N1cmVfbWF4ID0gcGRhdGEtPnByZXNzdXJlX21heCA/IDogfjA7Ci0KIAl0cy0+dnJlZl9tdiA9IHBkYXRhLT52cmVmX212OwotCXRzLT5zd2FwX3h5ID0gcGRhdGEtPnN3YXBfeHk7CiAKIAlpZiAocGRhdGEtPmZpbHRlciAhPSBOVUxMKSB7CiAJCWlmIChwZGF0YS0+ZmlsdGVyX2luaXQgIT0gTlVMTCkgewpAQCAtMTM2NCw2ICsxMzY5LDIzIEBAIHN0YXRpYyBpbnQgYWRzNzg0Nl9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCWlucHV0X3NldF9hYnNfcGFyYW1zKGlucHV0X2RldiwgQUJTX1BSRVNTVVJFLAogCQkJcGRhdGEtPnByZXNzdXJlX21pbiwgcGRhdGEtPnByZXNzdXJlX21heCwgMCwgMCk7CiAKKwkvKgorCSAqIFBhcnNlIGNvbW1vbiBmcmFtZXdvcmsgcHJvcGVydGllcy4gTXVzdCBiZSBkb25lIGhlcmUgdG8gZW5zdXJlIHRoZQorCSAqIGNvcnJlY3QgYmVoYXZpb3VyIGluIGNhc2Ugb2YgdXNpbmcgdGhlIGxlZ2FjeSB2ZW5kb3IgYmluZGluZ3MuIFRoZQorCSAqIGdlbmVyYWwgYmluZGluZyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZlbmRvciBzcGVjaWZpYyBvbmUuCisJICovCisJdG91Y2hzY3JlZW5fcGFyc2VfcHJvcGVydGllcyh0cy0+aW5wdXQsIGZhbHNlLCAmdHMtPmNvcmVfcHJvcCk7CisJdHMtPnByZXNzdXJlX21heCA9IGlucHV0X2Fic19nZXRfbWF4KGlucHV0X2RldiwgQUJTX1BSRVNTVVJFKSA/IDogfjA7CisKKwkvKgorCSAqIENoZWNrIGlmIGxlZ2FjeSB0aSxzd2FwLXh5IGJpbmRpbmcgaXMgdXNlZCBpbnN0ZWFkIG9mCisJICogdG91Y2hzY3JlZW4tc3dhcHBlZC14LXkKKwkgKi8KKwlpZiAoIXRzLT5jb3JlX3Byb3Auc3dhcF94X3kgJiYgcGRhdGEtPnN3YXBfeHkpIHsKKwkJc3dhcChpbnB1dF9kZXYtPmFic2luZm9bQUJTX1hdLCBpbnB1dF9kZXYtPmFic2luZm9bQUJTX1ldKTsKKwkJdHMtPmNvcmVfcHJvcC5zd2FwX3hfeSA9IHRydWU7CisJfQorCiAJYWRzNzg0Nl9zZXR1cF9zcGlfbXNnKHRzLCBwZGF0YSk7CiAKIAl0cy0+cmVnID0gcmVndWxhdG9yX2dldCgmc3BpLT5kZXYsICJ2Y2MiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vYXRtZWxfbXh0X3RzLmMgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2F0bWVsX214dF90cy5jCmluZGV4IDRhNWY0ODIuLjI0YzRiNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vYXRtZWxfbXh0X3RzLmMKKysrIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9hdG1lbF9teHRfdHMuYwpAQCAtMjk5MCw4ICsyOTkwLDcgQEAgc3RhdGljIGludCBteHRfcGFyc2VfZGV2aWNlX3Byb3BlcnRpZXMoc3RydWN0IG14dF9kYXRhICpkYXRhKQogCWludCBlcnJvcjsKIAogCWlmIChkZXZpY2VfcHJvcGVydHlfcHJlc2VudChkZXYsIGtleW1hcF9wcm9wZXJ0eSkpIHsKLQkJbl9rZXlzID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KGRldiwga2V5bWFwX3Byb3BlcnR5LAotCQkJCQkJCU5VTEwsIDApOworCQluX2tleXMgPSBkZXZpY2VfcHJvcGVydHlfY291bnRfdTMyKGRldiwga2V5bWFwX3Byb3BlcnR5KTsKIAkJaWYgKG5fa2V5cyA8PSAwKSB7CiAJCQllcnJvciA9IG5fa2V5cyA8IDAgPyBuX2tleXMgOiAtRUlOVkFMOwogCQkJZGV2X2VycihkZXYsICJpbnZhbGlkL21hbGZvcm1lZCAnJXMnIHByb3BlcnR5OiAlZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vYmNtX2lwcm9jX3RzYy5jIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9iY21faXByb2NfdHNjLmMKaW5kZXggNGQxMWIyNy4uN2RlMWZkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9iY21faXByb2NfdHNjLmMKKysrIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9iY21faXByb2NfdHNjLmMKQEAgLTQ4OSwxMCArNDg5LDggQEAgc3RhdGljIGludCBpcHJvY190c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJLyogZ2V0IGludGVycnVwdCAqLwogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAicGxhdGZvcm1fZ2V0X2lycSBmYWlsZWQ6ICVkXG4iLCBpcnEpOworCWlmIChpcnEgPCAwKQogCQlyZXR1cm4gaXJxOwotCX0KIAogCWVycm9yID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBpcnEsCiAJCQkJIGlwcm9jX3RvdWNoc2NyZWVuX2ludGVycnVwdCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vYnUyMTAxM190cy5jIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9idTIxMDEzX3RzLmMKaW5kZXggMWQ3MDNlMi4uMmYxZjBkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9idTIxMDEzX3RzLmMKKysrIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9idTIxMDEzX3RzLmMKQEAgLTQsMjEgKzQsMjEgQEAKICAqIEF1dGhvcjogTmF2ZWVuIEt1bWFyIEcgPG5hdmVlbi5nYWRkaXBhdGlAc3Rlcmljc3Nvbi5jb20+IGZvciBTVC1Fcmljc3NvbgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KLSNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KICNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgotI2luY2x1ZGUgPGxpbnV4L2lucHV0L2J1MjEwMTMuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvaW5wdXQvbXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC90b3VjaHNjcmVlbi5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9vZi5oPgotI2luY2x1ZGUgPGxpbnV4L29mX2dwaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9wcm9wZXJ0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCi0jZGVmaW5lIFBFTl9ET1dOX0lOVFIJMAogI2RlZmluZSBNQVhfRklOR0VSUwkyCiAjZGVmaW5lIFJFU0VUX0RFTEFZCTMwCiAjZGVmaW5lIFBFTlVQX1RJTUVPVVQJKDEwKQpAQCAtMTM3LDY5ICsxMzcsNjMgQEAKICNkZWZpbmUgRFJJVkVSX1RQCSJidTIxMDEzX3RwIgogCiAvKioKLSAqIHN0cnVjdCBidTIxMDEzX3RzX2RhdGEgLSB0b3VjaCBwYW5lbCBkYXRhIHN0cnVjdHVyZQorICogc3RydWN0IGJ1MjEwMTNfdHMgLSB0b3VjaCBwYW5lbCBkYXRhIHN0cnVjdHVyZQogICogQGNsaWVudDogcG9pbnRlciB0byB0aGUgaTJjIGNsaWVudAotICogQHdhaXQ6IHZhcmlhYmxlIHRvIHdhaXRfcXVldWVfaGVhZF90IHN0cnVjdHVyZQotICogQHRvdWNoX3N0b3BwZWQ6IHRvdWNoIHN0b3AgZmxhZwotICogQGNoaXA6IHBvaW50ZXIgdG8gdGhlIHRvdWNoIHBhbmVsIGNvbnRyb2xsZXIKICAqIEBpbl9kZXY6IHBvaW50ZXIgdG8gdGhlIGlucHV0IGRldmljZSBzdHJ1Y3R1cmUKLSAqIEBpbnRyX3BpbjogaW50ZXJydXB0IHBpbiB2YWx1ZQorICogQHByb3BzOiB0aGUgZGV2aWNlIGNvb3JkaW5hdGUgdHJhbnNmb3JtYXRpb24gcHJvcGVydGllcwogICogQHJlZ3VsYXRvcjogcG9pbnRlciB0byB0aGUgUmVndWxhdG9yIHVzZWQgZm9yIHRvdWNoIHNjcmVlbgorICogQGNzX2dwaW9kOiBjaGlwIHNlbGVjdCBHUElPIGxpbmUKKyAqIEBpbnRfZ3Bpb2Q6IHRvdWNoIGludGVycnVwdCBHUElPIGxpbmUKKyAqIEB0b3VjaF94X21heDogbWF4aW11bSBYIGNvb3JkaW5hdGUgcmVwb3J0ZWQgYnkgdGhlIGRldmljZQorICogQHRvdWNoX3lfbWF4OiBtYXhpbXVtIFkgY29vcmRpbmF0ZSByZXBvcnRlZCBieSB0aGUgZGV2aWNlCisgKiBAeF9mbGlwOiBpbmRpY2F0ZXMgdGhhdCB0aGUgZHJpdmVyIHNob3VsZCBpbnZlcnQgWCBjb29yZGluYXRlIGJlZm9yZQorICoJcmVwb3J0aW5nCisgKiBAeV9mbGlwOiBpbmRpY2F0ZXMgdGhhdCB0aGUgZHJpdmVyIHNob3VsZCBpbnZlcnQgWSBjb29yZGluYXRlIGJlZm9yZQorICoJcmVwb3J0aW5nCisgKiBAdG91Y2hfc3RvcHBlZDogdG91Y2ggc3RvcCBmbGFnCiAgKgogICogVG91Y2ggcGFuZWwgZGV2aWNlIGRhdGEgc3RydWN0dXJlCiAgKi8KLXN0cnVjdCBidTIxMDEzX3RzX2RhdGEgeworc3RydWN0IGJ1MjEwMTNfdHMgewogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQ7Ci0Jd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDsKLQljb25zdCBzdHJ1Y3QgYnUyMTAxM19wbGF0Zm9ybV9kZXZpY2UgKmNoaXA7CiAJc3RydWN0IGlucHV0X2RldiAqaW5fZGV2OworCXN0cnVjdCB0b3VjaHNjcmVlbl9wcm9wZXJ0aWVzIHByb3BzOwogCXN0cnVjdCByZWd1bGF0b3IgKnJlZ3VsYXRvcjsKLQl1bnNpZ25lZCBpbnQgaXJxOwotCXVuc2lnbmVkIGludCBpbnRyX3BpbjsKKwlzdHJ1Y3QgZ3Bpb19kZXNjICpjc19ncGlvZDsKKwlzdHJ1Y3QgZ3Bpb19kZXNjICppbnRfZ3Bpb2Q7CisJdTMyIHRvdWNoX3hfbWF4OworCXUzMiB0b3VjaF95X21heDsKKwlib29sIHhfZmxpcDsKKwlib29sIHlfZmxpcDsKIAlib29sIHRvdWNoX3N0b3BwZWQ7CiB9OwogCi0vKioKLSAqIGJ1MjEwMTNfcmVhZF9ibG9ja19kYXRhKCk6IHJlYWQgdGhlIHRvdWNoIGNvLW9yZGluYXRlcwotICogQGRhdGE6IGJ1MjEwMTNfdHNfZGF0YSBzdHJ1Y3R1cmUgcG9pbnRlcgotICogQGJ1ZjogYnl0ZSBwb2ludGVyCi0gKgotICogUmVhZCB0aGUgdG91Y2ggY28tb3JkaW5hdGVzIHVzaW5nIGkyYyByZWFkIGJsb2NrIGludG8gYnVmZmVyCi0gKiBhbmQgcmV0dXJucyBpbnRlZ2VyLgotICovCi1zdGF0aWMgaW50IGJ1MjEwMTNfcmVhZF9ibG9ja19kYXRhKHN0cnVjdCBidTIxMDEzX3RzX2RhdGEgKmRhdGEsIHU4ICpidWYpCitzdGF0aWMgaW50IGJ1MjEwMTNfcmVhZF9ibG9ja19kYXRhKHN0cnVjdCBidTIxMDEzX3RzICp0cywgdTggKmJ1ZikKIHsKIAlpbnQgcmV0LCBpOwogCiAJZm9yIChpID0gMDsgaSA8IEkyQ19SRVRSWV9DT1VOVDsgaSsrKSB7Ci0JCXJldCA9IGkyY19zbWJ1c19yZWFkX2kyY19ibG9ja19kYXRhCi0JCQkoZGF0YS0+Y2xpZW50LCBCVTIxMDEzX1NFTlNPUlNfQlROXzBfN19SRUcsCi0JCQkJTEVOR1RIX09GX0JVRkZFUiwgYnVmKTsKKwkJcmV0ID0gaTJjX3NtYnVzX3JlYWRfaTJjX2Jsb2NrX2RhdGEodHMtPmNsaWVudCwKKwkJCQkJCSAgICBCVTIxMDEzX1NFTlNPUlNfQlROXzBfN19SRUcsCisJCQkJCQkgICAgTEVOR1RIX09GX0JVRkZFUiwgYnVmKTsKIAkJaWYgKHJldCA9PSBMRU5HVEhfT0ZfQlVGRkVSKQogCQkJcmV0dXJuIDA7CiAJfQorCiAJcmV0dXJuIC1FSU5WQUw7CiB9CiAKLS8qKgotICogYnUyMTAxM19kb190b3VjaF9yZXBvcnQoKTogR2V0IHRoZSB0b3VjaCBjby1vcmRpbmF0ZXMKLSAqIEBkYXRhOiBidTIxMDEzX3RzX2RhdGEgc3RydWN0dXJlIHBvaW50ZXIKLSAqCi0gKiBHZXQgdGhlIHRvdWNoIGNvLW9yZGluYXRlcyBmcm9tIHRvdWNoIHNlbnNvciByZWdpc3RlcnMgYW5kIHdyaXRlcwotICogaW50byBkZXZpY2Ugc3RydWN0dXJlIGFuZCByZXR1cm5zIGludGVnZXIuCi0gKi8KLXN0YXRpYyBpbnQgYnUyMTAxM19kb190b3VjaF9yZXBvcnQoc3RydWN0IGJ1MjEwMTNfdHNfZGF0YSAqZGF0YSkKK3N0YXRpYyBpbnQgYnUyMTAxM19kb190b3VjaF9yZXBvcnQoc3RydWN0IGJ1MjEwMTNfdHMgKnRzKQogewotCXU4CWJ1ZltMRU5HVEhfT0ZfQlVGRkVSXTsKLQl1bnNpZ25lZCBpbnQgcG9zX3hbMl0sIHBvc195WzJdOwotCWJvb2wJaGFzX3hfc2Vuc29ycywgaGFzX3lfc2Vuc29yczsKLQlpbnQJZmluZ2VyX2Rvd25fY291bnQgPSAwOwotCWludAlpOworCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0ID0gdHMtPmluX2RldjsKKwlzdHJ1Y3QgaW5wdXRfbXRfcG9zIHBvc1tNQVhfRklOR0VSU107CisJaW50IHNsb3RzW01BWF9GSU5HRVJTXTsKKwl1OCBidWZbTEVOR1RIX09GX0JVRkZFUl07CisJYm9vbCBoYXNfeF9zZW5zb3JzLCBoYXNfeV9zZW5zb3JzOworCWludCBmaW5nZXJfZG93bl9jb3VudCA9IDA7CisJaW50IGk7CiAKLQlpZiAoZGF0YSA9PSBOVUxMKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmIChidTIxMDEzX3JlYWRfYmxvY2tfZGF0YShkYXRhLCBidWYpIDwgMCkKKwlpZiAoYnUyMTAxM19yZWFkX2Jsb2NrX2RhdGEodHMsIGJ1ZikgPCAwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWhhc194X3NlbnNvcnMgPSBod2VpZ2h0MzIoYnVmWzBdICYgQlUyMTAxM19TRU5TT1JTX0VOXzBfNyk7CkBAIC0yMDksNTAxICsyMDMsNDExIEBAIHN0YXRpYyBpbnQgYnUyMTAxM19kb190b3VjaF9yZXBvcnQoc3RydWN0IGJ1MjEwMTNfdHNfZGF0YSAqZGF0YSkKIAkJcmV0dXJuIDA7CiAKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0ZJTkdFUlM7IGkrKykgewotCQljb25zdCB1OCAqcCA9ICZidWZbNCAqIGkgKyAzXTsKLQkJdW5zaWduZWQgaW50IHggPSBwWzBdIDw8IFNISUZUXzIgfCAocFsxXSAmIE1BU0tfQklUUyk7Ci0JCXVuc2lnbmVkIGludCB5ID0gcFsyXSA8PCBTSElGVF8yIHwgKHBbM10gJiBNQVNLX0JJVFMpOwotCQlpZiAoeCA9PSAwIHx8IHkgPT0gMCkKLQkJCWNvbnRpbnVlOwotCQlwb3NfeFtmaW5nZXJfZG93bl9jb3VudF0gPSB4OwotCQlwb3NfeVtmaW5nZXJfZG93bl9jb3VudF0gPSB5OwotCQlmaW5nZXJfZG93bl9jb3VudCsrOworCQljb25zdCB1OCAqZGF0YSA9ICZidWZbNCAqIGkgKyAzXTsKKwkJdW5zaWduZWQgaW50IHgsIHk7CisKKwkJeCA9IGRhdGFbMF0gPDwgU0hJRlRfMiB8IChkYXRhWzFdICYgTUFTS19CSVRTKTsKKwkJeSA9IGRhdGFbMl0gPDwgU0hJRlRfMiB8IChkYXRhWzNdICYgTUFTS19CSVRTKTsKKwkJaWYgKHggIT0gMCAmJiB5ICE9IDApCisJCQl0b3VjaHNjcmVlbl9zZXRfbXRfcG9zKCZwb3NbZmluZ2VyX2Rvd25fY291bnQrK10sCisJCQkJCSAgICAgICAmdHMtPnByb3BzLCB4LCB5KTsKIAl9CiAKLQlpZiAoZmluZ2VyX2Rvd25fY291bnQpIHsKLQkJaWYgKGZpbmdlcl9kb3duX2NvdW50ID09IDIgJiYKLQkJICAgIChhYnMocG9zX3hbMF0gLSBwb3NfeFsxXSkgPCBERUxUQV9NSU4gfHwKLQkJICAgICBhYnMocG9zX3lbMF0gLSBwb3NfeVsxXSkgPCBERUxUQV9NSU4pKSB7Ci0JCQlyZXR1cm4gMDsKLQkJfQorCWlmIChmaW5nZXJfZG93bl9jb3VudCA9PSAyICYmCisJICAgIChhYnMocG9zWzBdLnggLSBwb3NbMV0ueCkgPCBERUxUQV9NSU4gfHwKKwkgICAgIGFicyhwb3NbMF0ueSAtIHBvc1sxXS55KSA8IERFTFRBX01JTikpIHsKKwkJcmV0dXJuIDA7CisJfQogCi0JCWZvciAoaSA9IDA7IGkgPCBmaW5nZXJfZG93bl9jb3VudDsgaSsrKSB7Ci0JCQlpZiAoZGF0YS0+Y2hpcC0+eF9mbGlwKQotCQkJCXBvc194W2ldID0gZGF0YS0+Y2hpcC0+dG91Y2hfeF9tYXggLSBwb3NfeFtpXTsKLQkJCWlmIChkYXRhLT5jaGlwLT55X2ZsaXApCi0JCQkJcG9zX3lbaV0gPSBkYXRhLT5jaGlwLT50b3VjaF95X21heCAtIHBvc195W2ldOworCWlucHV0X210X2Fzc2lnbl9zbG90cyhpbnB1dCwgc2xvdHMsIHBvcywgZmluZ2VyX2Rvd25fY291bnQsIERFTFRBX01JTik7CisJZm9yIChpID0gMDsgaSA8IGZpbmdlcl9kb3duX2NvdW50OyBpKyspIHsKKwkJaW5wdXRfbXRfc2xvdChpbnB1dCwgc2xvdHNbaV0pOworCQlpbnB1dF9tdF9yZXBvcnRfc2xvdF9zdGF0ZShpbnB1dCwgTVRfVE9PTF9GSU5HRVIsIHRydWUpOworCQlpbnB1dF9yZXBvcnRfYWJzKGlucHV0LCBBQlNfTVRfUE9TSVRJT05fWCwgcG9zW2ldLngpOworCQlpbnB1dF9yZXBvcnRfYWJzKGlucHV0LCBBQlNfTVRfUE9TSVRJT05fWSwgcG9zW2ldLnkpOworCX0KIAotCQkJaW5wdXRfcmVwb3J0X2FicyhkYXRhLT5pbl9kZXYsCi0JCQkJCSBBQlNfTVRfUE9TSVRJT05fWCwgcG9zX3hbaV0pOwotCQkJaW5wdXRfcmVwb3J0X2FicyhkYXRhLT5pbl9kZXYsCi0JCQkJCSBBQlNfTVRfUE9TSVRJT05fWSwgcG9zX3lbaV0pOwotCQkJaW5wdXRfbXRfc3luYyhkYXRhLT5pbl9kZXYpOwotCQl9Ci0JfSBlbHNlCi0JCWlucHV0X210X3N5bmMoZGF0YS0+aW5fZGV2KTsKLQotCWlucHV0X3N5bmMoZGF0YS0+aW5fZGV2KTsKKwlpbnB1dF9tdF9zeW5jX2ZyYW1lKGlucHV0KTsKKwlpbnB1dF9zeW5jKGlucHV0KTsKIAogCXJldHVybiAwOwogfQotLyoqCi0gKiBidTIxMDEzX2dwaW9faXJxKCkgLSBncGlvIHRocmVhZCBmdW5jdGlvbiBmb3IgdG91Y2ggaW50ZXJydXB0Ci0gKiBAaXJxOiBpcnEgdmFsdWUKLSAqIEBkZXZpY2VfZGF0YTogdm9pZCBwb2ludGVyCi0gKgotICogVGhpcyBncGlvIHRocmVhZCBmdW5jdGlvbiBmb3IgdG91Y2ggaW50ZXJydXB0Ci0gKiBhbmQgcmV0dXJucyBpcnFyZXR1cm5fdC4KLSAqLworCiBzdGF0aWMgaXJxcmV0dXJuX3QgYnUyMTAxM19ncGlvX2lycShpbnQgaXJxLCB2b2lkICpkZXZpY2VfZGF0YSkKIHsKLQlzdHJ1Y3QgYnUyMTAxM190c19kYXRhICpkYXRhID0gZGV2aWNlX2RhdGE7Ci0Jc3RydWN0IGkyY19jbGllbnQgKmkyYyA9IGRhdGEtPmNsaWVudDsKLQlpbnQgcmV0dmFsOworCXN0cnVjdCBidTIxMDEzX3RzICp0cyA9IGRldmljZV9kYXRhOworCWludCBrZWVwX3BvbGxpbmc7CisJaW50IGVycm9yOwogCiAJZG8gewotCQlyZXR2YWwgPSBidTIxMDEzX2RvX3RvdWNoX3JlcG9ydChkYXRhKTsKLQkJaWYgKHJldHZhbCA8IDApIHsKLQkJCWRldl9lcnIoJmkyYy0+ZGV2LCAiYnUyMTAxM19kb190b3VjaF9yZXBvcnQgZmFpbGVkXG4iKTsKLQkJCXJldHVybiBJUlFfTk9ORTsKKwkJZXJyb3IgPSBidTIxMDEzX2RvX3RvdWNoX3JlcG9ydCh0cyk7CisJCWlmIChlcnJvcikgeworCQkJZGV2X2VycigmdHMtPmNsaWVudC0+ZGV2LCAiJXMgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7CisJCQlicmVhazsKIAkJfQogCi0JCWRhdGEtPmludHJfcGluID0gZ3Bpb19nZXRfdmFsdWUoZGF0YS0+Y2hpcC0+dG91Y2hfcGluKTsKLQkJaWYgKGRhdGEtPmludHJfcGluID09IFBFTl9ET1dOX0lOVFIpCi0JCQl3YWl0X2V2ZW50X3RpbWVvdXQoZGF0YS0+d2FpdCwgZGF0YS0+dG91Y2hfc3RvcHBlZCwKLQkJCQkJICAgbXNlY3NfdG9famlmZmllcygyKSk7Ci0JfSB3aGlsZSAoIWRhdGEtPmludHJfcGluICYmICFkYXRhLT50b3VjaF9zdG9wcGVkKTsKKwkJaWYgKHVubGlrZWx5KHRzLT50b3VjaF9zdG9wcGVkKSkKKwkJCWJyZWFrOworCisJCWtlZXBfcG9sbGluZyA9IHRzLT5pbnRfZ3Bpb2QgPworCQkJZ3Bpb2RfZ2V0X3ZhbHVlKHRzLT5pbnRfZ3Bpb2QpIDogZmFsc2U7CisJCWlmIChrZWVwX3BvbGxpbmcpCisJCQl1c2xlZXBfcmFuZ2UoMjAwMCwgMjUwMCk7CisJfSB3aGlsZSAoa2VlcF9wb2xsaW5nKTsKIAogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIAotLyoqCi0gKiBidTIxMDEzX2luaXRfY2hpcCgpIC0gcG93ZXIgb24gc2VxdWVuY2UgZm9yIHRoZSBidTIxMDEzIGNvbnRyb2xsZXIKLSAqIEBkYXRhOiBkZXZpY2Ugc3RydWN0dXJlIHBvaW50ZXIKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcG93ZXIgb24KLSAqIHRoZSBidTIxMDEzIGNvbnRyb2xsZXIgYW5kIHJldHVybnMgaW50ZWdlci4KLSAqLwotc3RhdGljIGludCBidTIxMDEzX2luaXRfY2hpcChzdHJ1Y3QgYnUyMTAxM190c19kYXRhICpkYXRhKQorc3RhdGljIGludCBidTIxMDEzX2luaXRfY2hpcChzdHJ1Y3QgYnUyMTAxM190cyAqdHMpCiB7Ci0JaW50IHJldHZhbDsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjID0gZGF0YS0+Y2xpZW50OworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0cy0+Y2xpZW50OworCWludCBlcnJvcjsKIAotCXJldHZhbCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoaTJjLCBCVTIxMDEzX1JFU0VUX1JFRywKLQkJCQkJQlUyMTAxM19SRVNFVF9FTkFCTEUpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19SRVNFVCByZWcgd3JpdGUgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIHJldHZhbDsKKwllcnJvciA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBCVTIxMDEzX1JFU0VUX1JFRywKKwkJCQkJICBCVTIxMDEzX1JFU0VUX0VOQUJMRSk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19SRVNFVCByZWcgd3JpdGUgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIGVycm9yOwogCX0KIAltc2xlZXAoUkVTRVRfREVMQVkpOwogCi0JcmV0dmFsID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShpMmMsIEJVMjEwMTNfU0VOU09SXzBfN19SRUcsCi0JCQkJCUJVMjEwMTNfU0VOU09SU19FTl8wXzcpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19TRU5TT1JfMF83IHJlZyB3cml0ZSBmYWlsZWRcbiIpOwotCQlyZXR1cm4gcmV0dmFsOworCWVycm9yID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEJVMjEwMTNfU0VOU09SXzBfN19SRUcsCisJCQkJCSAgQlUyMTAxM19TRU5TT1JTX0VOXzBfNyk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19TRU5TT1JfMF83IHJlZyB3cml0ZSBmYWlsZWRcbiIpOworCQlyZXR1cm4gZXJyb3I7CiAJfQogCi0JcmV0dmFsID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShpMmMsIEJVMjEwMTNfU0VOU09SXzhfMTVfUkVHLAotCQkJCQkJQlUyMTAxM19TRU5TT1JTX0VOXzhfMTUpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19TRU5TT1JfOF8xNSByZWcgd3JpdGUgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIHJldHZhbDsKKwllcnJvciA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBCVTIxMDEzX1NFTlNPUl84XzE1X1JFRywKKwkJCQkJICBCVTIxMDEzX1NFTlNPUlNfRU5fOF8xNSk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19TRU5TT1JfOF8xNSByZWcgd3JpdGUgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIGVycm9yOwogCX0KIAotCXJldHZhbCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoaTJjLCBCVTIxMDEzX1NFTlNPUl8xNl8yM19SRUcsCi0JCQkJCQlCVTIxMDEzX1NFTlNPUlNfRU5fMTZfMjMpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19TRU5TT1JfMTZfMjMgcmVnIHdyaXRlIGZhaWxlZFxuIik7Ci0JCXJldHVybiByZXR2YWw7CisJZXJyb3IgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgQlUyMTAxM19TRU5TT1JfMTZfMjNfUkVHLAorCQkJCQkgIEJVMjEwMTNfU0VOU09SU19FTl8xNl8yMyk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19TRU5TT1JfMTZfMjMgcmVnIHdyaXRlIGZhaWxlZFxuIik7CisJCXJldHVybiBlcnJvcjsKIAl9CiAKLQlyZXR2YWwgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGkyYywgQlUyMTAxM19QT1NfTU9ERTFfUkVHLAotCQkJCShCVTIxMDEzX1BPU19NT0RFMV8wIHwgQlUyMTAxM19QT1NfTU9ERTFfMSkpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19QT1NfTU9ERTEgcmVnIHdyaXRlIGZhaWxlZFxuIik7Ci0JCXJldHVybiByZXR2YWw7CisJZXJyb3IgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgQlUyMTAxM19QT1NfTU9ERTFfUkVHLAorCQkJCQkgIEJVMjEwMTNfUE9TX01PREUxXzAgfAorCQkJCQkJQlUyMTAxM19QT1NfTU9ERTFfMSk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19QT1NfTU9ERTEgcmVnIHdyaXRlIGZhaWxlZFxuIik7CisJCXJldHVybiBlcnJvcjsKIAl9CiAKLQlyZXR2YWwgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGkyYywgQlUyMTAxM19QT1NfTU9ERTJfUkVHLAotCQkJKEJVMjEwMTNfUE9TX01PREUyX1pFUk8gfCBCVTIxMDEzX1BPU19NT0RFMl9BVkcxIHwKLQkJCUJVMjEwMTNfUE9TX01PREUyX0FWRzIgfCBCVTIxMDEzX1BPU19NT0RFMl9FTl9SQVcgfAotCQkJQlUyMTAxM19QT1NfTU9ERTJfTVVMVEkpKTsKLQlpZiAocmV0dmFsIDwgMCkgewotCQlkZXZfZXJyKCZpMmMtPmRldiwgIkJVMjEwMTNfUE9TX01PREUyIHJlZyB3cml0ZSBmYWlsZWRcbiIpOwotCQlyZXR1cm4gcmV0dmFsOworCWVycm9yID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEJVMjEwMTNfUE9TX01PREUyX1JFRywKKwkJCQkJICBCVTIxMDEzX1BPU19NT0RFMl9aRVJPIHwKKwkJCQkJCUJVMjEwMTNfUE9TX01PREUyX0FWRzEgfAorCQkJCQkJQlUyMTAxM19QT1NfTU9ERTJfQVZHMiB8CisJCQkJCQlCVTIxMDEzX1BPU19NT0RFMl9FTl9SQVcgfAorCQkJCQkJQlUyMTAxM19QT1NfTU9ERTJfTVVMVEkpOworCWlmIChlcnJvcikgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkJVMjEwMTNfUE9TX01PREUyIHJlZyB3cml0ZSBmYWlsZWRcbiIpOworCQlyZXR1cm4gZXJyb3I7CiAJfQogCi0JaWYgKGRhdGEtPmNoaXAtPmV4dF9jbGspCi0JCXJldHZhbCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoaTJjLCBCVTIxMDEzX0NMS19NT0RFX1JFRywKLQkJCShCVTIxMDEzX0NMS19NT0RFX0VYVCB8IEJVMjEwMTNfQ0xLX01PREVfQ0FMSUIpKTsKLQllbHNlCi0JCXJldHZhbCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoaTJjLCBCVTIxMDEzX0NMS19NT0RFX1JFRywKLQkJCShCVTIxMDEzX0NMS19NT0RFX0RJViB8IEJVMjEwMTNfQ0xLX01PREVfQ0FMSUIpKTsKLQlpZiAocmV0dmFsIDwgMCkgewotCQlkZXZfZXJyKCZpMmMtPmRldiwgIkJVMjEwMTNfQ0xLX01PREUgcmVnIHdyaXRlIGZhaWxlZFxuIik7Ci0JCXJldHVybiByZXR2YWw7CisJZXJyb3IgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgQlUyMTAxM19DTEtfTU9ERV9SRUcsCisJCQkJCSAgQlUyMTAxM19DTEtfTU9ERV9ESVYgfAorCQkJCQkJQlUyMTAxM19DTEtfTU9ERV9DQUxJQik7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19DTEtfTU9ERSByZWcgd3JpdGUgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIGVycm9yOwogCX0KIAotCXJldHZhbCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoaTJjLCBCVTIxMDEzX0lETEVfUkVHLAotCQkJCShCVTIxMDEzX0lETEVUXzAgfCBCVTIxMDEzX0lETEVfSU5URVJNSVRfRU4pKTsKLQlpZiAocmV0dmFsIDwgMCkgewotCQlkZXZfZXJyKCZpMmMtPmRldiwgIkJVMjEwMTNfSURMRSByZWcgd3JpdGUgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIHJldHZhbDsKKwllcnJvciA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBCVTIxMDEzX0lETEVfUkVHLAorCQkJCQkgIEJVMjEwMTNfSURMRVRfMCB8CisJCQkJCQlCVTIxMDEzX0lETEVfSU5URVJNSVRfRU4pOworCWlmIChlcnJvcikgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkJVMjEwMTNfSURMRSByZWcgd3JpdGUgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIGVycm9yOwogCX0KIAotCXJldHZhbCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoaTJjLCBCVTIxMDEzX0lOVF9NT0RFX1JFRywKLQkJCQkJCUJVMjEwMTNfSU5UX01PREVfTEVWRUwpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19JTlRfTU9ERSByZWcgd3JpdGUgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIHJldHZhbDsKKwllcnJvciA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBCVTIxMDEzX0lOVF9NT0RFX1JFRywKKwkJCQkJICBCVTIxMDEzX0lOVF9NT0RFX0xFVkVMKTsKKwlpZiAoZXJyb3IpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJCVTIxMDEzX0lOVF9NT0RFIHJlZyB3cml0ZSBmYWlsZWRcbiIpOworCQlyZXR1cm4gZXJyb3I7CiAJfQogCi0JcmV0dmFsID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShpMmMsIEJVMjEwMTNfRklMVEVSX1JFRywKLQkJCQkJCShCVTIxMDEzX0RFTFRBXzBfNiB8Ci0JCQkJCQkJQlUyMTAxM19GSUxURVJfRU4pKTsKLQlpZiAocmV0dmFsIDwgMCkgewotCQlkZXZfZXJyKCZpMmMtPmRldiwgIkJVMjEwMTNfRklMVEVSIHJlZyB3cml0ZSBmYWlsZWRcbiIpOwotCQlyZXR1cm4gcmV0dmFsOworCWVycm9yID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEJVMjEwMTNfRklMVEVSX1JFRywKKwkJCQkJICBCVTIxMDEzX0RFTFRBXzBfNiB8CisJCQkJCQlCVTIxMDEzX0ZJTFRFUl9FTik7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19GSUxURVIgcmVnIHdyaXRlIGZhaWxlZFxuIik7CisJCXJldHVybiBlcnJvcjsKIAl9CiAKLQlyZXR2YWwgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGkyYywgQlUyMTAxM19USF9PTl9SRUcsCi0JCQkJCUJVMjEwMTNfVEhfT05fNSk7Ci0JaWYgKHJldHZhbCA8IDApIHsKLQkJZGV2X2VycigmaTJjLT5kZXYsICJCVTIxMDEzX1RIX09OIHJlZyB3cml0ZSBmYWlsZWRcbiIpOwotCQlyZXR1cm4gcmV0dmFsOworCWVycm9yID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEJVMjEwMTNfVEhfT05fUkVHLAorCQkJCQkgIEJVMjEwMTNfVEhfT05fNSk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19USF9PTiByZWcgd3JpdGUgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIGVycm9yOwogCX0KIAotCXJldHZhbCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoaTJjLCBCVTIxMDEzX1RIX09GRl9SRUcsCi0JCQkJQlUyMTAxM19USF9PRkZfNCB8IEJVMjEwMTNfVEhfT0ZGXzMpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19USF9PRkYgcmVnIHdyaXRlIGZhaWxlZFxuIik7Ci0JCXJldHVybiByZXR2YWw7CisJZXJyb3IgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgQlUyMTAxM19USF9PRkZfUkVHLAorCQkJCQkgIEJVMjEwMTNfVEhfT0ZGXzQgfCBCVTIxMDEzX1RIX09GRl8zKTsKKwlpZiAoZXJyb3IpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJCVTIxMDEzX1RIX09GRiByZWcgd3JpdGUgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIGVycm9yOwogCX0KIAotCXJldHZhbCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoaTJjLCBCVTIxMDEzX0dBSU5fUkVHLAotCQkJCQkoQlUyMTAxM19HQUlOXzAgfCBCVTIxMDEzX0dBSU5fMSkpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19HQUlOIHJlZyB3cml0ZSBmYWlsZWRcbiIpOwotCQlyZXR1cm4gcmV0dmFsOworCWVycm9yID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEJVMjEwMTNfR0FJTl9SRUcsCisJCQkJCSAgQlUyMTAxM19HQUlOXzAgfCBCVTIxMDEzX0dBSU5fMSk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19HQUlOIHJlZyB3cml0ZSBmYWlsZWRcbiIpOworCQlyZXR1cm4gZXJyb3I7CiAJfQogCi0JcmV0dmFsID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShpMmMsIEJVMjEwMTNfT0ZGU0VUX01PREVfUkVHLAotCQkJCQlCVTIxMDEzX09GRlNFVF9NT0RFX0RFRkFVTFQpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19PRkZTRVRfTU9ERSByZWcgd3JpdGUgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIHJldHZhbDsKKwllcnJvciA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBCVTIxMDEzX09GRlNFVF9NT0RFX1JFRywKKwkJCQkJICBCVTIxMDEzX09GRlNFVF9NT0RFX0RFRkFVTFQpOworCWlmIChlcnJvcikgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkJVMjEwMTNfT0ZGU0VUX01PREUgcmVnIHdyaXRlIGZhaWxlZFxuIik7CisJCXJldHVybiBlcnJvcjsKIAl9CiAKLQlyZXR2YWwgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGkyYywgQlUyMTAxM19YWV9FREdFX1JFRywKLQkJCQkoQlUyMTAxM19YX0VER0VfMCB8IEJVMjEwMTNfWF9FREdFXzIgfAotCQkJCUJVMjEwMTNfWV9FREdFXzEgfCBCVTIxMDEzX1lfRURHRV8zKSk7Ci0JaWYgKHJldHZhbCA8IDApIHsKLQkJZGV2X2VycigmaTJjLT5kZXYsICJCVTIxMDEzX1hZX0VER0UgcmVnIHdyaXRlIGZhaWxlZFxuIik7Ci0JCXJldHVybiByZXR2YWw7CisJZXJyb3IgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgQlUyMTAxM19YWV9FREdFX1JFRywKKwkJCQkJICBCVTIxMDEzX1hfRURHRV8wIHwKKwkJCQkJCUJVMjEwMTNfWF9FREdFXzIgfAorCQkJCQkJQlUyMTAxM19ZX0VER0VfMSB8CisJCQkJCQlCVTIxMDEzX1lfRURHRV8zKTsKKwlpZiAoZXJyb3IpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJCVTIxMDEzX1hZX0VER0UgcmVnIHdyaXRlIGZhaWxlZFxuIik7CisJCXJldHVybiBlcnJvcjsKIAl9CiAKLQlyZXR2YWwgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGkyYywgQlUyMTAxM19ET05FX1JFRywKLQkJCQkJCQlCVTIxMDEzX0RPTkUpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmkyYy0+ZGV2LCAiQlUyMTAxM19SRUdfRE9ORSByZWcgd3JpdGUgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIHJldHZhbDsKKwllcnJvciA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBCVTIxMDEzX0RPTkVfUkVHLAorCQkJCQkgIEJVMjEwMTNfRE9ORSk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiQlUyMTAxM19SRUdfRE9ORSByZWcgd3JpdGUgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIGVycm9yOwogCX0KIAogCXJldHVybiAwOwogfQogCi0vKioKLSAqIGJ1MjEwMTNfZnJlZV9pcnEoKSAtIGZyZWVzIElSUSByZWdpc3RlcmVkIGZvciB0b3VjaHNjcmVlbgotICogQGJ1MjEwMTNfZGF0YTogZGV2aWNlIHN0cnVjdHVyZSBwb2ludGVyCi0gKgotICogVGhpcyBmdW5jdGlvbiBzaWduYWxzIGludGVycnVwdCB0aHJlYWQgdG8gc3RvcCBwcm9jZXNzaW5nIGFuZAotICogZnJlZXMgaW50ZXJydXB0LgotICovCi1zdGF0aWMgdm9pZCBidTIxMDEzX2ZyZWVfaXJxKHN0cnVjdCBidTIxMDEzX3RzX2RhdGEgKmJ1MjEwMTNfZGF0YSkKK3N0YXRpYyB2b2lkIGJ1MjEwMTNfcG93ZXJfb2ZmKHZvaWQgKl90cykKIHsKLQlidTIxMDEzX2RhdGEtPnRvdWNoX3N0b3BwZWQgPSB0cnVlOwotCXdha2VfdXAoJmJ1MjEwMTNfZGF0YS0+d2FpdCk7Ci0JZnJlZV9pcnEoYnUyMTAxM19kYXRhLT5pcnEsIGJ1MjEwMTNfZGF0YSk7CisJc3RydWN0IGJ1MjEwMTNfdHMgKnRzID0gX3RzOworCisJcmVndWxhdG9yX2Rpc2FibGUodHMtPnJlZ3VsYXRvcik7CiB9CiAKLS8qKgotICogYnUyMTAxM19jc19kaXNhYmxlKCkgLSBkZWNvbmZpZ3VyZXMgdGhlIHRvdWNoIHBhbmVsIGNvbnRyb2xsZXIKLSAqIEBidTIxMDEzX2RhdGE6IGRldmljZSBzdHJ1Y3R1cmUgcG9pbnRlcgotICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBkZWNvbmZpZ3VyZSB0aGUgY2hpcCBzZWxlY3Rpb24KLSAqIGZvciB0b3VjaCBwYW5lbCBjb250cm9sbGVyLgotICovCi1zdGF0aWMgdm9pZCBidTIxMDEzX2NzX2Rpc2FibGUoc3RydWN0IGJ1MjEwMTNfdHNfZGF0YSAqYnUyMTAxM19kYXRhKQorc3RhdGljIHZvaWQgYnUyMTAxM19kaXNhYmxlX2NoaXAodm9pZCAqX3RzKQogewotCWludCBlcnJvcjsKKwlzdHJ1Y3QgYnUyMTAxM190cyAqdHMgPSBfdHM7CiAKLQllcnJvciA9IGdwaW9fZGlyZWN0aW9uX291dHB1dChidTIxMDEzX2RhdGEtPmNoaXAtPmNzX3BpbiwgMCk7Ci0JaWYgKGVycm9yIDwgMCkKLQkJZGV2X3dhcm4oJmJ1MjEwMTNfZGF0YS0+Y2xpZW50LT5kZXYsCi0JCQkgIiVzOiBncGlvIGRpcmVjdGlvbiBmYWlsZWQsIGVycm9yOiAlZFxuIiwKLQkJCSBfX2Z1bmNfXywgZXJyb3IpOwotCWVsc2UKLQkJZ3Bpb19zZXRfdmFsdWUoYnUyMTAxM19kYXRhLT5jaGlwLT5jc19waW4sIDApOwotCi0JZ3Bpb19mcmVlKGJ1MjEwMTNfZGF0YS0+Y2hpcC0+Y3NfcGluKTsKKwlncGlvZF9zZXRfdmFsdWUodHMtPmNzX2dwaW9kLCAwKTsKIH0KIAotI2lmZGVmIENPTkZJR19PRgotc3RhdGljIGNvbnN0IHN0cnVjdCBidTIxMDEzX3BsYXRmb3JtX2RldmljZSAqCi1idTIxMDEzX3BhcnNlX2R0KHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZGV2LT5vZl9ub2RlOwotCXN0cnVjdCBidTIxMDEzX3BsYXRmb3JtX2RldmljZSAqcGRhdGE7Ci0KLQlpZiAoIW5wKSB7Ci0JCWRldl9lcnIoZGV2LCAibm8gZGV2aWNlIHRyZWUgb3IgcGxhdGZvcm0gZGF0YVxuIik7Ci0JCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwotCX0KLQotCXBkYXRhID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwZGF0YSksIEdGUF9LRVJORUwpOwotCWlmICghcGRhdGEpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCi0JcGRhdGEtPnlfZmxpcCA9IHBkYXRhLT54X2ZsaXAgPSBmYWxzZTsKLQotCXBkYXRhLT54X2ZsaXAgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJyb2htLGZsaXAteCIpOwotCXBkYXRhLT55X2ZsaXAgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJyb2htLGZsaXAteSIpOwotCi0Jb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJyb2htLHRvdWNoLW1heC14IiwgJnBkYXRhLT50b3VjaF94X21heCk7Ci0Jb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJyb2htLHRvdWNoLW1heC15IiwgJnBkYXRhLT50b3VjaF95X21heCk7Ci0KLQlwZGF0YS0+dG91Y2hfcGluID0gb2ZfZ2V0X25hbWVkX2dwaW8obnAsICJ0b3VjaC1ncGlvIiwgMCk7Ci0JcGRhdGEtPmNzX3BpbiA9IG9mX2dldF9uYW1lZF9ncGlvKG5wLCAicmVzZXQtZ3BpbyIsIDApOwotCi0JcGRhdGEtPmV4dF9jbGsgPSBmYWxzZTsKLQotCXJldHVybiBwZGF0YTsKLX0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBidTIxMDEzX3BsYXRmb3JtX2RldmljZSAqCi1idTIxMDEzX3BhcnNlX2R0KHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlkZXZfZXJyKGRldiwgIm5vIHBsYXRmb3JtIGRhdGEgYXZhaWxhYmxlXG4iKTsKLQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKLX0KLSNlbmRpZgotCi0vKioKLSAqIGJ1MjEwMTNfcHJvYmUoKSAtIGluaXRpYWxpemVzIHRoZSBpMmMtY2xpZW50IHRvdWNoc2NyZWVuIGRyaXZlcgotICogQGNsaWVudDogaTJjIGNsaWVudCBzdHJ1Y3R1cmUgcG9pbnRlcgotICogQGlkOiBpMmMgZGV2aWNlIGlkIHBvaW50ZXIKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gaW5pdGlhbGl6ZXMgdGhlIGkyYy1jbGllbnQgdG91Y2hzY3JlZW4KLSAqIGRyaXZlciBhbmQgcmV0dXJucyBpbnRlZ2VyLgotICovCiBzdGF0aWMgaW50IGJ1MjEwMTNfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJCSBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCiB7Ci0JY29uc3Qgc3RydWN0IGJ1MjEwMTNfcGxhdGZvcm1fZGV2aWNlICpwZGF0YSA9Ci0JCQkJCWRldl9nZXRfcGxhdGRhdGEoJmNsaWVudC0+ZGV2KTsKLQlzdHJ1Y3QgYnUyMTAxM190c19kYXRhICpidTIxMDEzX2RhdGE7CisJc3RydWN0IGJ1MjEwMTNfdHMgKnRzOwogCXN0cnVjdCBpbnB1dF9kZXYgKmluX2RldjsKKwlzdHJ1Y3QgaW5wdXRfYWJzaW5mbyAqaW5mbzsKKwl1MzIgbWF4X3ggPSAwLCBtYXhfeSA9IDA7CiAJaW50IGVycm9yOwogCiAJaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShjbGllbnQtPmFkYXB0ZXIsCi0JCQkJCUkyQ19GVU5DX1NNQlVTX0JZVEVfREFUQSkpIHsKKwkJCQkgICAgIEkyQ19GVU5DX1NNQlVTX0JZVEVfREFUQSkpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICJpMmMgc21idXMgYnl0ZSBkYXRhIG5vdCBzdXBwb3J0ZWRcbiIpOwogCQlyZXR1cm4gLUVJTzsKIAl9CiAKLQlpZiAoIXBkYXRhKSB7Ci0JCXBkYXRhID0gYnUyMTAxM19wYXJzZV9kdCgmY2xpZW50LT5kZXYpOwotCQlpZiAoSVNfRVJSKHBkYXRhKSkKLQkJCXJldHVybiBQVFJfRVJSKHBkYXRhKTsKLQl9Ci0KLQlpZiAoIWdwaW9faXNfdmFsaWQocGRhdGEtPnRvdWNoX3BpbikpIHsKLQkJZGV2X2VycigmY2xpZW50LT5kZXYsICJpbnZhbGlkIHRvdWNoX3BpbiBzdXBwbGllZFxuIik7CisJaWYgKCFjbGllbnQtPmlycSkgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIk5vIElSUSBzZXQgdXBcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlidTIxMDEzX2RhdGEgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYnUyMTAxM190c19kYXRhKSwgR0ZQX0tFUk5FTCk7Ci0JaW5fZGV2ID0gaW5wdXRfYWxsb2NhdGVfZGV2aWNlKCk7Ci0JaWYgKCFidTIxMDEzX2RhdGEgfHwgIWluX2RldikgeworCXRzID0gZGV2bV9remFsbG9jKCZjbGllbnQtPmRldiwgc2l6ZW9mKCp0cyksIEdGUF9LRVJORUwpOworCWlmICghdHMpCisJCXJldHVybiAtRU5PTUVNOworCisJdHMtPmNsaWVudCA9IGNsaWVudDsKKworCXRzLT54X2ZsaXAgPSBkZXZpY2VfcHJvcGVydHlfcmVhZF9ib29sKCZjbGllbnQtPmRldiwgInJvaG0sZmxpcC14Iik7CisJdHMtPnlfZmxpcCA9IGRldmljZV9wcm9wZXJ0eV9yZWFkX2Jvb2woJmNsaWVudC0+ZGV2LCAicm9obSxmbGlwLXkiKTsKKworCWluX2RldiA9IGRldm1faW5wdXRfYWxsb2NhdGVfZGV2aWNlKCZjbGllbnQtPmRldik7CisJaWYgKCFpbl9kZXYpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICJkZXZpY2UgbWVtb3J5IGFsbG9jIGZhaWxlZFxuIik7Ci0JCWVycm9yID0gLUVOT01FTTsKLQkJZ290byBlcnJfZnJlZV9tZW07CisJCXJldHVybiAtRU5PTUVNOwogCX0KLQotCWJ1MjEwMTNfZGF0YS0+aW5fZGV2ID0gaW5fZGV2OwotCWJ1MjEwMTNfZGF0YS0+Y2hpcCA9IHBkYXRhOwotCWJ1MjEwMTNfZGF0YS0+Y2xpZW50ID0gY2xpZW50OwotCWJ1MjEwMTNfZGF0YS0+aXJxID0gZ3Bpb190b19pcnEocGRhdGEtPnRvdWNoX3Bpbik7Ci0KLQlidTIxMDEzX2RhdGEtPnJlZ3VsYXRvciA9IHJlZ3VsYXRvcl9nZXQoJmNsaWVudC0+ZGV2LCAiYXZkZCIpOwotCWlmIChJU19FUlIoYnUyMTAxM19kYXRhLT5yZWd1bGF0b3IpKSB7Ci0JCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAicmVndWxhdG9yX2dldCBmYWlsZWRcbiIpOwotCQllcnJvciA9IFBUUl9FUlIoYnUyMTAxM19kYXRhLT5yZWd1bGF0b3IpOwotCQlnb3RvIGVycl9mcmVlX21lbTsKLQl9Ci0KLQllcnJvciA9IHJlZ3VsYXRvcl9lbmFibGUoYnUyMTAxM19kYXRhLT5yZWd1bGF0b3IpOwotCWlmIChlcnJvciA8IDApIHsKLQkJZGV2X2VycigmY2xpZW50LT5kZXYsICJyZWd1bGF0b3IgZW5hYmxlIGZhaWxlZFxuIik7Ci0JCWdvdG8gZXJyX3B1dF9yZWd1bGF0b3I7Ci0JfQotCi0JYnUyMTAxM19kYXRhLT50b3VjaF9zdG9wcGVkID0gZmFsc2U7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmYnUyMTAxM19kYXRhLT53YWl0KTsKLQotCS8qIGNvbmZpZ3VyZSB0aGUgZ3BpbyBwaW5zICovCi0JZXJyb3IgPSBncGlvX3JlcXVlc3Rfb25lKHBkYXRhLT5jc19waW4sIEdQSU9GX09VVF9JTklUX0hJR0gsCi0JCQkJICJ0b3VjaHBfcmVzZXQiKTsKLQlpZiAoZXJyb3IgPCAwKSB7Ci0JCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiVW5hYmxlIHRvIHJlcXVlc3QgZ3BpbyByZXNldF9waW5cbiIpOwotCQlnb3RvIGVycl9kaXNhYmxlX3JlZ3VsYXRvcjsKLQl9Ci0KLQkvKiBjb25maWd1cmUgdGhlIHRvdWNoIHBhbmVsIGNvbnRyb2xsZXIgKi8KLQllcnJvciA9IGJ1MjEwMTNfaW5pdF9jaGlwKGJ1MjEwMTNfZGF0YSk7Ci0JaWYgKGVycm9yKSB7Ci0JCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiZXJyb3IgaW4gYnUyMTAxMyBjb25maWdcbiIpOwotCQlnb3RvIGVycl9jc19kaXNhYmxlOwotCX0KKwl0cy0+aW5fZGV2ID0gaW5fZGV2OworCWlucHV0X3NldF9kcnZkYXRhKGluX2RldiwgdHMpOwogCiAJLyogcmVnaXN0ZXIgdGhlIGRldmljZSB0byBpbnB1dCBzdWJzeXN0ZW0gKi8KIAlpbl9kZXYtPm5hbWUgPSBEUklWRVJfVFA7CiAJaW5fZGV2LT5pZC5idXN0eXBlID0gQlVTX0kyQzsKLQlpbl9kZXYtPmRldi5wYXJlbnQgPSAmY2xpZW50LT5kZXY7CiAKLQlfX3NldF9iaXQoRVZfU1lOLCBpbl9kZXYtPmV2Yml0KTsKLQlfX3NldF9iaXQoRVZfS0VZLCBpbl9kZXYtPmV2Yml0KTsKLQlfX3NldF9iaXQoRVZfQUJTLCBpbl9kZXYtPmV2Yml0KTsKKwlkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoJmNsaWVudC0+ZGV2LCAicm9obSx0b3VjaC1tYXgteCIsICZtYXhfeCk7CisJZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKCZjbGllbnQtPmRldiwgInJvaG0sdG91Y2gtbWF4LXkiLCAmbWF4X3kpOwogCi0JaW5wdXRfc2V0X2Fic19wYXJhbXMoaW5fZGV2LCBBQlNfTVRfUE9TSVRJT05fWCwgMCwKLQkJCQkJCXBkYXRhLT50b3VjaF94X21heCwgMCwgMCk7Ci0JaW5wdXRfc2V0X2Fic19wYXJhbXMoaW5fZGV2LCBBQlNfTVRfUE9TSVRJT05fWSwgMCwKLQkJCQkJCXBkYXRhLT50b3VjaF95X21heCwgMCwgMCk7Ci0JaW5wdXRfc2V0X2RydmRhdGEoaW5fZGV2LCBidTIxMDEzX2RhdGEpOworCWlucHV0X3NldF9hYnNfcGFyYW1zKGluX2RldiwgQUJTX01UX1BPU0lUSU9OX1gsIDAsIG1heF94LCAwLCAwKTsKKwlpbnB1dF9zZXRfYWJzX3BhcmFtcyhpbl9kZXYsIEFCU19NVF9QT1NJVElPTl9ZLCAwLCBtYXhfeSwgMCwgMCk7CiAKLQllcnJvciA9IHJlcXVlc3RfdGhyZWFkZWRfaXJxKGJ1MjEwMTNfZGF0YS0+aXJxLCBOVUxMLCBidTIxMDEzX2dwaW9faXJxLAotCQkJCSAgICAgSVJRRl9UUklHR0VSX0ZBTExJTkcgfCBJUlFGX1NIQVJFRCB8Ci0JCQkJCUlSUUZfT05FU0hPVCwKLQkJCQkgICAgIERSSVZFUl9UUCwgYnUyMTAxM19kYXRhKTsKKwl0b3VjaHNjcmVlbl9wYXJzZV9wcm9wZXJ0aWVzKGluX2RldiwgdHJ1ZSwgJnRzLT5wcm9wcyk7CisKKwkvKiBBZGp1c3QgZm9yIHRoZSBsZWdhY3kgImZsaXAiIHByb3BlcnRpZXMsIGlmIHByZXNlbnQgKi8KKwlpZiAoIXRzLT5wcm9wcy5pbnZlcnRfeCAmJgorCSAgICBkZXZpY2VfcHJvcGVydHlfcmVhZF9ib29sKCZjbGllbnQtPmRldiwgInJvaG0sZmxpcC14IikpIHsKKwkJaW5mbyA9ICZpbl9kZXYtPmFic2luZm9bQUJTX01UX1BPU0lUSU9OX1hdOworCQlpbmZvLT5tYXhpbXVtIC09IGluZm8tPm1pbmltdW07CisJCWluZm8tPm1pbmltdW0gPSAwOworCX0KKworCWlmICghdHMtPnByb3BzLmludmVydF95ICYmCisJICAgIGRldmljZV9wcm9wZXJ0eV9yZWFkX2Jvb2woJmNsaWVudC0+ZGV2LCAicm9obSxmbGlwLXkiKSkgeworCQlpbmZvID0gJmluX2Rldi0+YWJzaW5mb1tBQlNfTVRfUE9TSVRJT05fWV07CisJCWluZm8tPm1heGltdW0gLT0gaW5mby0+bWluaW11bTsKKwkJaW5mby0+bWluaW11bSA9IDA7CisJfQorCisJZXJyb3IgPSBpbnB1dF9tdF9pbml0X3Nsb3RzKGluX2RldiwgTUFYX0ZJTkdFUlMsCisJCQkJICAgIElOUFVUX01UX0RJUkVDVCB8IElOUFVUX01UX1RSQUNLIHwKKwkJCQkJSU5QVVRfTVRfRFJPUF9VTlVTRUQpOworCWlmIChlcnJvcikgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIE1UIHNsb3RzIik7CisJCXJldHVybiBlcnJvcjsKKwl9CisKKwl0cy0+cmVndWxhdG9yID0gZGV2bV9yZWd1bGF0b3JfZ2V0KCZjbGllbnQtPmRldiwgImF2ZGQiKTsKKwlpZiAoSVNfRVJSKHRzLT5yZWd1bGF0b3IpKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAicmVndWxhdG9yX2dldCBmYWlsZWRcbiIpOworCQlyZXR1cm4gUFRSX0VSUih0cy0+cmVndWxhdG9yKTsKKwl9CisKKwllcnJvciA9IHJlZ3VsYXRvcl9lbmFibGUodHMtPnJlZ3VsYXRvcik7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAicmVndWxhdG9yIGVuYWJsZSBmYWlsZWRcbiIpOworCQlyZXR1cm4gZXJyb3I7CisJfQorCisJZXJyb3IgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoJmNsaWVudC0+ZGV2LCBidTIxMDEzX3Bvd2VyX29mZiwgdHMpOworCWlmIChlcnJvcikgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgImZhaWxlZCB0byBpbnN0YWxsIHBvd2VyIG9mZiBoYW5kbGVyXG4iKTsKKwkJcmV0dXJuIGVycm9yOworCX0KKworCS8qIE5hbWVkICJDUyIgb24gdGhlIGNoaXAsIERUIGJpbmRpbmcgaXMgInJlc2V0IiAqLworCXRzLT5jc19ncGlvZCA9IGRldm1fZ3Bpb2RfZ2V0KCZjbGllbnQtPmRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOworCWVycm9yID0gUFRSX0VSUl9PUl9aRVJPKHRzLT5jc19ncGlvZCk7CisJaWYgKGVycm9yKSB7CisJCWlmIChlcnJvciAhPSAtRVBST0JFX0RFRkVSKQorCQkJZGV2X2VycigmY2xpZW50LT5kZXYsICJmYWlsZWQgdG8gZ2V0IENTIEdQSU9cbiIpOworCQlyZXR1cm4gZXJyb3I7CisJfQorCWdwaW9kX3NldF9jb25zdW1lcl9uYW1lKHRzLT5jc19ncGlvZCwgIkJVMjEwMTMgQ1MiKTsKKworCWVycm9yID0gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KCZjbGllbnQtPmRldiwKKwkJCQkJIGJ1MjEwMTNfZGlzYWJsZV9jaGlwLCB0cyk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAorCQkJImZhaWxlZCB0byBpbnN0YWxsIGNoaXAgZGlzYWJsZSBoYW5kbGVyXG4iKTsKKwkJcmV0dXJuIGVycm9yOworCX0KKworCS8qIE5hbWVkICJJTlQiIG9uIHRoZSBjaGlwLCBEVCBiaW5kaW5nIGlzICJ0b3VjaCIgKi8KKwl0cy0+aW50X2dwaW9kID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoJmNsaWVudC0+ZGV2LAorCQkJCQkJInRvdWNoIiwgR1BJT0RfSU4pOworCWVycm9yID0gUFRSX0VSUl9PUl9aRVJPKHRzLT5pbnRfZ3Bpb2QpOworCWlmIChlcnJvcikgeworCQlpZiAoZXJyb3IgIT0gLUVQUk9CRV9ERUZFUikKKwkJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiZmFpbGVkIHRvIGdldCBJTlQgR1BJT1xuIik7CisJCXJldHVybiBlcnJvcjsKKwl9CisKKwlpZiAodHMtPmludF9ncGlvZCkKKwkJZ3Bpb2Rfc2V0X2NvbnN1bWVyX25hbWUodHMtPmludF9ncGlvZCwgIkJVMjEwMTMgSU5UIik7CisKKwkvKiBjb25maWd1cmUgdGhlIHRvdWNoIHBhbmVsIGNvbnRyb2xsZXIgKi8KKwllcnJvciA9IGJ1MjEwMTNfaW5pdF9jaGlwKHRzKTsKKwlpZiAoZXJyb3IpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJlcnJvciBpbiBidTIxMDEzIGNvbmZpZ1xuIik7CisJCXJldHVybiBlcnJvcjsKKwl9CisKKwllcnJvciA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoJmNsaWVudC0+ZGV2LCBjbGllbnQtPmlycSwKKwkJCQkJICBOVUxMLCBidTIxMDEzX2dwaW9faXJxLAorCQkJCQkgIElSUUZfT05FU0hPVCwgRFJJVkVSX1RQLCB0cyk7CiAJaWYgKGVycm9yKSB7CiAJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAicmVxdWVzdCBpcnEgJWQgZmFpbGVkXG4iLAotCQkJYnUyMTAxM19kYXRhLT5pcnEpOwotCQlnb3RvIGVycl9jc19kaXNhYmxlOworCQkJY2xpZW50LT5pcnEpOworCQlyZXR1cm4gZXJyb3I7CiAJfQogCiAJZXJyb3IgPSBpbnB1dF9yZWdpc3Rlcl9kZXZpY2UoaW5fZGV2KTsKIAlpZiAoZXJyb3IpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgaW5wdXQgZGV2aWNlXG4iKTsKLQkJZ290byBlcnJfZnJlZV9pcnE7CisJCXJldHVybiBlcnJvcjsKIAl9CiAKLQlkZXZpY2VfaW5pdF93YWtldXAoJmNsaWVudC0+ZGV2LCBwZGF0YS0+d2FrZXVwKTsKLQlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBidTIxMDEzX2RhdGEpOworCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIHRzKTsKIAogCXJldHVybiAwOwotCi1lcnJfZnJlZV9pcnE6Ci0JYnUyMTAxM19mcmVlX2lycShidTIxMDEzX2RhdGEpOwotZXJyX2NzX2Rpc2FibGU6Ci0JYnUyMTAxM19jc19kaXNhYmxlKGJ1MjEwMTNfZGF0YSk7Ci1lcnJfZGlzYWJsZV9yZWd1bGF0b3I6Ci0JcmVndWxhdG9yX2Rpc2FibGUoYnUyMTAxM19kYXRhLT5yZWd1bGF0b3IpOwotZXJyX3B1dF9yZWd1bGF0b3I6Ci0JcmVndWxhdG9yX3B1dChidTIxMDEzX2RhdGEtPnJlZ3VsYXRvcik7Ci1lcnJfZnJlZV9tZW06Ci0JaW5wdXRfZnJlZV9kZXZpY2UoaW5fZGV2KTsKLQlrZnJlZShidTIxMDEzX2RhdGEpOwotCi0JcmV0dXJuIGVycm9yOwogfQotLyoqCi0gKiBidTIxMDEzX3JlbW92ZSgpIC0gcmVtb3ZlcyB0aGUgaTJjLWNsaWVudCB0b3VjaHNjcmVlbiBkcml2ZXIKLSAqIEBjbGllbnQ6IGkyYyBjbGllbnQgc3RydWN0dXJlIHBvaW50ZXIKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHVzZXMgdG8gcmVtb3ZlIHRoZSBpMmMtY2xpZW50Ci0gKiB0b3VjaHNjcmVlbiBkcml2ZXIgYW5kIHJldHVybnMgaW50ZWdlci4KLSAqLworCiBzdGF0aWMgaW50IGJ1MjEwMTNfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiB7Ci0Jc3RydWN0IGJ1MjEwMTNfdHNfZGF0YSAqYnUyMTAxM19kYXRhID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisJc3RydWN0IGJ1MjEwMTNfdHMgKnRzID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CiAKLQlidTIxMDEzX2ZyZWVfaXJxKGJ1MjEwMTNfZGF0YSk7Ci0KLQlidTIxMDEzX2NzX2Rpc2FibGUoYnUyMTAxM19kYXRhKTsKLQotCWlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKGJ1MjEwMTNfZGF0YS0+aW5fZGV2KTsKLQotCXJlZ3VsYXRvcl9kaXNhYmxlKGJ1MjEwMTNfZGF0YS0+cmVndWxhdG9yKTsKLQlyZWd1bGF0b3JfcHV0KGJ1MjEwMTNfZGF0YS0+cmVndWxhdG9yKTsKLQotCWtmcmVlKGJ1MjEwMTNfZGF0YSk7CisJLyogTWFrZSBzdXJlIElSUSB3aWxsIGV4aXQgcXVpY2tseSBldmVuIGlmIHRoZXJlIGlzIGNvbnRhY3QgKi8KKwl0cy0+dG91Y2hfc3RvcHBlZCA9IHRydWU7CisJLyogVGhlIHJlc291cmNlcyB3aWxsIGJlIGZyZWVkIGJ5IGRldm0gKi8KIAogCXJldHVybiAwOwogfQogCi0jaWZkZWYgQ09ORklHX1BNCi0vKioKLSAqIGJ1MjEwMTNfc3VzcGVuZCgpIC0gc3VzcGVuZCB0aGUgdG91Y2ggc2NyZWVuIGNvbnRyb2xsZXIKLSAqIEBkZXY6IHBvaW50ZXIgdG8gZGV2aWNlIHN0cnVjdHVyZQotICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBzdXNwZW5kIHRoZQotICogdG91Y2ggcGFuZWwgY29udHJvbGxlciBhbmQgcmV0dXJucyBpbnRlZ2VyCi0gKi8KLXN0YXRpYyBpbnQgYnUyMTAxM19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgYnUyMTAxM19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgYnUyMTAxM190c19kYXRhICpidTIxMDEzX2RhdGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gYnUyMTAxM19kYXRhLT5jbGllbnQ7CisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKKwlzdHJ1Y3QgYnUyMTAxM190cyAqdHMgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKIAotCWJ1MjEwMTNfZGF0YS0+dG91Y2hfc3RvcHBlZCA9IHRydWU7Ci0JaWYgKGRldmljZV9tYXlfd2FrZXVwKCZjbGllbnQtPmRldikpCi0JCWVuYWJsZV9pcnFfd2FrZShidTIxMDEzX2RhdGEtPmlycSk7Ci0JZWxzZQotCQlkaXNhYmxlX2lycShidTIxMDEzX2RhdGEtPmlycSk7CisJdHMtPnRvdWNoX3N0b3BwZWQgPSB0cnVlOworCW1iKCk7CisJZGlzYWJsZV9pcnEoY2xpZW50LT5pcnEpOwogCi0JcmVndWxhdG9yX2Rpc2FibGUoYnUyMTAxM19kYXRhLT5yZWd1bGF0b3IpOworCWlmICghZGV2aWNlX21heV93YWtldXAoJmNsaWVudC0+ZGV2KSkKKwkJcmVndWxhdG9yX2Rpc2FibGUodHMtPnJlZ3VsYXRvcik7CiAKIAlyZXR1cm4gMDsKIH0KIAotLyoqCi0gKiBidTIxMDEzX3Jlc3VtZSgpIC0gcmVzdW1lIHRoZSB0b3VjaCBzY3JlZW4gY29udHJvbGxlcgotICogQGRldjogcG9pbnRlciB0byBkZXZpY2Ugc3RydWN0dXJlCi0gKgotICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJlc3VtZSB0aGUgdG91Y2ggcGFuZWwKLSAqIGNvbnRyb2xsZXIgYW5kIHJldHVybnMgaW50ZWdlci4KLSAqLwotc3RhdGljIGludCBidTIxMDEzX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGJ1MjEwMTNfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgYnUyMTAxM190c19kYXRhICpidTIxMDEzX2RhdGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gYnUyMTAxM19kYXRhLT5jbGllbnQ7Ci0JaW50IHJldHZhbDsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gdG9faTJjX2NsaWVudChkZXYpOworCXN0cnVjdCBidTIxMDEzX3RzICp0cyA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOworCWludCBlcnJvcjsKIAotCXJldHZhbCA9IHJlZ3VsYXRvcl9lbmFibGUoYnUyMTAxM19kYXRhLT5yZWd1bGF0b3IpOwotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiYnUyMTAxMyByZWd1bGF0b3IgZW5hYmxlIGZhaWxlZFxuIik7Ci0JCXJldHVybiByZXR2YWw7CisJaWYgKCFkZXZpY2VfbWF5X3dha2V1cCgmY2xpZW50LT5kZXYpKSB7CisJCWVycm9yID0gcmVndWxhdG9yX2VuYWJsZSh0cy0+cmVndWxhdG9yKTsKKwkJaWYgKGVycm9yKSB7CisJCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKKwkJCQkiZmFpbGVkIHRvIHJlLWVuYWJsZSByZWd1bGF0b3Igd2hlbiByZXN1bWluZ1xuIik7CisJCQlyZXR1cm4gZXJyb3I7CisJCX0KKworCQllcnJvciA9IGJ1MjEwMTNfaW5pdF9jaGlwKHRzKTsKKwkJaWYgKGVycm9yKSB7CisJCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKKwkJCQkiZmFpbGVkIHRvIHJlaW5pdGlhbGl6ZSBjaGlwIHdoZW4gcmVzdW1pbmdcbiIpOworCQkJcmV0dXJuIGVycm9yOworCQl9CiAJfQogCi0JcmV0dmFsID0gYnUyMTAxM19pbml0X2NoaXAoYnUyMTAxM19kYXRhKTsKLQlpZiAocmV0dmFsIDwgMCkgewotCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgImJ1MjEwMTMgY29udHJvbGxlciBjb25maWcgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIHJldHZhbDsKLQl9Ci0KLQlidTIxMDEzX2RhdGEtPnRvdWNoX3N0b3BwZWQgPSBmYWxzZTsKLQotCWlmIChkZXZpY2VfbWF5X3dha2V1cCgmY2xpZW50LT5kZXYpKQotCQlkaXNhYmxlX2lycV93YWtlKGJ1MjEwMTNfZGF0YS0+aXJxKTsKLQllbHNlCi0JCWVuYWJsZV9pcnEoYnUyMTAxM19kYXRhLT5pcnEpOworCXRzLT50b3VjaF9zdG9wcGVkID0gZmFsc2U7CisJbWIoKTsKKwllbmFibGVfaXJxKGNsaWVudC0+aXJxKTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgYnUyMTAxM19kZXZfcG1fb3BzID0gewotCS5zdXNwZW5kID0gYnUyMTAxM19zdXNwZW5kLAotCS5yZXN1bWUgID0gYnUyMTAxM19yZXN1bWUsCi19OwotI2VuZGlmCitzdGF0aWMgU0lNUExFX0RFVl9QTV9PUFMoYnUyMTAxM19kZXZfcG1fb3BzLCBidTIxMDEzX3N1c3BlbmQsIGJ1MjEwMTNfcmVzdW1lKTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIGJ1MjEwMTNfaWRbXSA9IHsKIAl7IERSSVZFUl9UUCwgMCB9LApAQCAtNzE0LDkgKzYxOCw3IEBAIE1PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCBidTIxMDEzX2lkKTsKIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBidTIxMDEzX2RyaXZlciA9IHsKIAkuZHJpdmVyCT0gewogCQkubmFtZQk9CURSSVZFUl9UUCwKLSNpZmRlZiBDT05GSUdfUE0KIAkJLnBtCT0JJmJ1MjEwMTNfZGV2X3BtX29wcywKLSNlbmRpZgogCX0sCiAJLnByb2JlCQk9CWJ1MjEwMTNfcHJvYmUsCiAJLnJlbW92ZQkJPQlidTIxMDEzX3JlbW92ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vZWR0LWZ0NXgwNi5jIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9lZHQtZnQ1eDA2LmMKaW5kZXggM2NjNDM0MS4uNTUyNWYxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9lZHQtZnQ1eDA2LmMKKysrIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9lZHQtZnQ1eDA2LmMKQEAgLTc2NCw4ICs3NjQsNiBAQCBlZHRfZnQ1eDA2X3RzX3ByZXBhcmVfZGVidWdmcyhzdHJ1Y3QgZWR0X2Z0NXgwNl90c19kYXRhICp0c2RhdGEsCiAJCQkgICAgICBjb25zdCBjaGFyICpkZWJ1Z2ZzX25hbWUpCiB7CiAJdHNkYXRhLT5kZWJ1Z19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoZGVidWdmc19uYW1lLCBOVUxMKTsKLQlpZiAoIXRzZGF0YS0+ZGVidWdfZGlyKQotCQlyZXR1cm47CiAKIAlkZWJ1Z2ZzX2NyZWF0ZV91MTYoIm51bV94IiwgU19JUlVTUiwgdHNkYXRhLT5kZWJ1Z19kaXIsICZ0c2RhdGEtPm51bV94KTsKIAlkZWJ1Z2ZzX2NyZWF0ZV91MTYoIm51bV95IiwgU19JUlVTUiwgdHNkYXRhLT5kZWJ1Z19kaXIsICZ0c2RhdGEtPm51bV95KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vZnNsLWlteDI1LXRjcS5jIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9mc2wtaW14MjUtdGNxLmMKaW5kZXggMWQ2YzhmNC4uNjBhNzI0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9mc2wtaW14MjUtdGNxLmMKKysrIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9mc2wtaW14MjUtdGNxLmMKQEAgLTUwMyw3ICs1MDMsNiBAQCBzdGF0aWMgaW50IG14MjVfdGNxX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IGlucHV0X2RldiAqaWRldjsKIAlzdHJ1Y3QgbXgyNV90Y3FfcHJpdiAqcHJpdjsKIAlzdHJ1Y3QgbXgyNV90c2FkYyAqdHNhZGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2LT5wYXJlbnQpOwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCXZvaWQgX19pb21lbSAqbWVtOwogCWludCBlcnJvcjsKIApAQCAtNTEyLDggKzUxMSw3IEBAIHN0YXRpYyBpbnQgbXgyNV90Y3FfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcmV0dXJuIC1FTk9NRU07CiAJcHJpdi0+ZGV2ID0gZGV2OwogCi0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQltZW0gPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOworCW1lbSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKIAlpZiAoSVNfRVJSKG1lbSkpCiAJCXJldHVybiBQVFJfRVJSKG1lbSk7CiAKQEAgLTUyOCwxMCArNTI2LDggQEAgc3RhdGljIGludCBteDI1X3RjcV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCXByaXYtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKHByaXYtPmlycSA8PSAwKSB7Ci0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBJUlFcbiIpOworCWlmIChwcml2LT5pcnEgPD0gMCkKIAkJcmV0dXJuIHByaXYtPmlycTsKLQl9CiAKIAlpZGV2ID0gZGV2bV9pbnB1dF9hbGxvY2F0ZV9kZXZpY2UoZGV2KTsKIAlpZiAoIWlkZXYpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vaGlkZWVwLmMgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2hpZGVlcC5jCmluZGV4IDg0ZmJiZjQuLmRkYWQ0YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vaGlkZWVwLmMKKysrIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9oaWRlZXAuYwpAQCAtODExLDggKzgxMSw3IEBAIHN0YXRpYyBpbnQgaGlkZWVwX2luaXRfaW5wdXQoc3RydWN0IGhpZGVlcF90cyAqdHMpCiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKLQl0cy0+a2V5X251bSA9IGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMl9hcnJheShkZXYsICJsaW51eCxrZXljb2RlcyIsCi0JCQkJCQkgICAgIE5VTEwsIDApOworCXRzLT5rZXlfbnVtID0gZGV2aWNlX3Byb3BlcnR5X2NvdW50X3UzMihkZXYsICJsaW51eCxrZXljb2RlcyIpOwogCWlmICh0cy0+a2V5X251bSA+IEhJREVFUF9LRVlfTUFYKSB7CiAJCWRldl9lcnIoZGV2LCAidG9vIG1hbnkga2V5cyBkZWZpbmVkOiAlZFxuIiwKIAkJCXRzLT5rZXlfbnVtKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vaW14NnVsX3RzYy5jIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9pbXg2dWxfdHNjLmMKaW5kZXggZTA0ZWVjZC4uOWVkMjU4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9pbXg2dWxfdHNjLmMKKysrIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9pbXg2dWxfdHNjLmMKQEAgLTQzMCwxNiArNDMwLDEyIEBAIHN0YXRpYyBpbnQgaW14NnVsX3RzY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCXRzY19pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmICh0c2NfaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyB0c2MgaXJxIHJlc291cmNlP1xuIik7CisJaWYgKHRzY19pcnEgPCAwKQogCQlyZXR1cm4gdHNjX2lycTsKLQl9CiAKIAlhZGNfaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAxKTsKLQlpZiAoYWRjX2lycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gYWRjIGlycSByZXNvdXJjZT9cbiIpOworCWlmIChhZGNfaXJxIDwgMCkKIAkJcmV0dXJuIGFkY19pcnE7Ci0JfQogCiAJZXJyID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSh0c2MtPmRldiwgdHNjX2lycSwKIAkJCQkJTlVMTCwgdHNjX2lycV9mbiwgSVJRRl9PTkVTSE9ULApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9scGMzMnh4X3RzLmMgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2xwYzMyeHhfdHMuYwppbmRleCA1NjdlZDY0Li5iMmNkOTQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2xwYzMyeHhfdHMuYworKysgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2xwYzMyeHhfdHMuYwpAQCAtMjEyLDEwICsyMTIsOCBAQCBzdGF0aWMgaW50IGxwYzMyeHhfdHNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkNhbid0IGdldCBpbnRlcnJ1cHQgcmVzb3VyY2VcbiIpOworCWlmIChpcnEgPCAwKQogCQlyZXR1cm4gaXJxOwotCX0KIAogCXRzYyA9IGt6YWxsb2Moc2l6ZW9mKCp0c2MpLCBHRlBfS0VSTkVMKTsKIAlpbnB1dCA9IGlucHV0X2FsbG9jYXRlX2RldmljZSgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9teHMtbHJhZGMtdHMuYyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vbXhzLWxyYWRjLXRzLmMKaW5kZXggNTkzYjhkMy4uOWUzNmZlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9teHMtbHJhZGMtdHMuYworKysgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL214cy1scmFkYy10cy5jCkBAIC02MDYsNyArNjA2LDYgQEAgc3RhdGljIGludCBteHNfbHJhZGNfdHNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBkZXYtPnBhcmVudC0+b2Zfbm9kZTsKIAlzdHJ1Y3QgbXhzX2xyYWRjICpscmFkYyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYtPnBhcmVudCk7CiAJc3RydWN0IG14c19scmFkY190cyAqdHM7Ci0Jc3RydWN0IHJlc291cmNlICppb3JlczsKIAlpbnQgcmV0LCBpcnEsIHZpcnEsIGk7CiAJdTMyIHRzX3dpcmVzID0gMCwgYWRhcHQ7CiAKQEAgLTYyMCwxMiArNjE5LDkgQEAgc3RhdGljIGludCBteHNfbHJhZGNfdHNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl0cy0+ZGV2ID0gZGV2OwogCXNwaW5fbG9ja19pbml0KCZ0cy0+bG9jayk7CiAKLQlpb3JlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JaWYgKCFpb3JlcykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JdHMtPmJhc2UgPSBkZXZtX2lvcmVtYXAoZGV2LCBpb3Jlcy0+c3RhcnQsIHJlc291cmNlX3NpemUoaW9yZXMpKTsKLQlpZiAoIXRzLT5iYXNlKQotCQlyZXR1cm4gLUVOT01FTTsKKwl0cy0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKwlpZiAoSVNfRVJSKHRzLT5iYXNlKSkKKwkJcmV0dXJuIFBUUl9FUlIodHMtPmJhc2UpOwogCiAJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobm9kZSwgImZzbCxscmFkYy10b3VjaHNjcmVlbi13aXJlcyIsCiAJCQkJICAgJnRzX3dpcmVzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vc3VuNGktdHMuYyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vc3VuNGktdHMuYwppbmRleCBmMTFiYTdmLi4wYWYwZmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3N1bjRpLXRzLmMKKysrIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9zdW40aS10cy5jCkBAIC0zMDAsOCArMzAwLDcgQEAgc3RhdGljIGludCBzdW40aV90c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlpbnB1dF9zZXRfZHJ2ZGF0YSh0cy0+aW5wdXQsIHRzKTsKIAl9CiAKLQl0cy0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsCi0JCQkgICAgICBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApKTsKKwl0cy0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKIAlpZiAoSVNfRVJSKHRzLT5iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIodHMtPmJhc2UpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3RzNDgwMC10cy5jIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi90czQ4MDAtdHMuYwppbmRleCBmZWQ3M2VlLi41YjRmNTM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3RzNDgwMC10cy5jCisrKyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vdHM0ODAwLXRzLmMKQEAgLTE0OCw3ICsxNDgsNiBAQCBzdGF0aWMgaW50IHRzNDgwMF90c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBpbnB1dF9wb2xsZWRfZGV2ICpwb2xsX2RldjsKIAlzdHJ1Y3QgdHM0ODAwX3RzICp0czsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAlpbnQgZXJyb3I7CiAKIAl0cyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnRzKSwgR0ZQX0tFUk5FTCk7CkBAIC0xNTksOCArMTU4LDcgQEAgc3RhdGljIGludCB0czQ4MDBfdHNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JdHMtPmJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKKwl0cy0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKIAlpZiAoSVNfRVJSKHRzLT5iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIodHMtPmJhc2UpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3c5MHA5MTBfdHMuYyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vdzkwcDkxMF90cy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODkzZDdmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vdzkwcDkxMF90cy5jCisrKyAvZGV2L251bGwKQEAgLTEsMzMxICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDggTnV2b3RvbiB0ZWNobm9sb2d5IGNvcnBvcmF0aW9uLgotICoKLSAqIFdhbiBab25nU2h1biA8bWN1b3MuY29tQGdtYWlsLmNvbT4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9pby5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgotI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotCi0vKiBBREMgY29udHJvbGxlciBiaXQgZGVmaW5lcyAqLwotI2RlZmluZSBBRENfREVMQVkJMHhmMDAKLSNkZWZpbmUgQURDX0RPV04JMHgwMQotI2RlZmluZSBBRENfVFNDX1kJKDB4MDEgPDwgOCkKLSNkZWZpbmUgQURDX1RTQ19YCSgweDAwIDw8IDgpCi0jZGVmaW5lIFRTQ19GT1VSV0lSRQkofigweDAzIDw8IDEpKQotI2RlZmluZSBBRENfQ0xLX0VOCSgweDAxIDw8IDI4KQkvKiBBREMgY2xvY2sgZW5hYmxlICovCi0jZGVmaW5lIEFEQ19SRUFEX0NPTgkoMHgwMSA8PCAxMikKLSNkZWZpbmUgQURDX0NPTlYJKDB4MDEgPDwgMTMpCi0jZGVmaW5lIEFEQ19TRU1JQVVUTwkoMHgwMSA8PCAxNCkKLSNkZWZpbmUgQURDX1dBSVRUUklHCSgweDAzIDw8IDE0KQotI2RlZmluZSBBRENfUlNUMQkoMHgwMSA8PCAxNikKLSNkZWZpbmUgQURDX1JTVDAJKDB4MDAgPDwgMTYpCi0jZGVmaW5lIEFEQ19FTgkJKDB4MDEgPDwgMTcpCi0jZGVmaW5lIEFEQ19JTlQJCSgweDAxIDw8IDE4KQotI2RlZmluZSBXVF9JTlQJCSgweDAxIDw8IDIwKQotI2RlZmluZSBBRENfSU5UX0VOCSgweDAxIDw8IDIxKQotI2RlZmluZSBMVkRfSU5UX0VOCSgweDAxIDw8IDIyKQotI2RlZmluZSBXVF9JTlRfRU4JKDB4MDEgPDwgMjMpCi0jZGVmaW5lIEFEQ19ESVYJCSgweDA0IDw8IDEpCS8qIGRpdiA9IDYgKi8KLQotZW51bSB0c19zdGF0ZSB7Ci0JVFNfV0FJVF9ORVdfUEFDS0VULAkvKiBXZSBhcmUgd2FpdGluZyBuZXh0IHRvdWNoIHJlcG9ydCAqLwotCVRTX1dBSVRfWF9DT09SRCwJLyogV2UgYXJlIHdhaXRpbmcgZm9yIEFEQyB0byByZXBvcnQgWCBjb29yZCAqLwotCVRTX1dBSVRfWV9DT09SRCwJLyogV2UgYXJlIHdhaXRpbmcgZm9yIEFEQyB0byByZXBvcnQgWSBjb29yZCAqLwotCVRTX0lETEUsCQkvKiBJbnB1dCBkZXZpY2UgaXMgY2xvc2VkLCBkb24ndCBkbyBhbnl0aGluZyAqLwotfTsKLQotc3RydWN0IHc5MHA5MTBfdHMgewotCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0OwotCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOwotCXN0cnVjdCBjbGsgKmNsazsKLQlpbnQgaXJxX251bTsKLQl2b2lkIF9faW9tZW0gKnRzX3JlZzsKLQlzcGlubG9ja190IGxvY2s7Ci0JZW51bSB0c19zdGF0ZSBzdGF0ZTsKLX07Ci0KLXN0YXRpYyB2b2lkIHc5MHA5MTBfcmVwb3J0X2V2ZW50KHN0cnVjdCB3OTBwOTEwX3RzICp3OTBwOTEwX3RzLCBib29sIGRvd24pCi17Ci0Jc3RydWN0IGlucHV0X2RldiAqZGV2ID0gdzkwcDkxMF90cy0+aW5wdXQ7Ci0KLQlpZiAoZG93bikgewotCQlpbnB1dF9yZXBvcnRfYWJzKGRldiwgQUJTX1gsCi0JCQkJIF9fcmF3X3JlYWRsKHc5MHA5MTBfdHMtPnRzX3JlZyArIDB4MGMpKTsKLQkJaW5wdXRfcmVwb3J0X2FicyhkZXYsIEFCU19ZLAotCQkJCSBfX3Jhd19yZWFkbCh3OTBwOTEwX3RzLT50c19yZWcgKyAweDEwKSk7Ci0JfQotCi0JaW5wdXRfcmVwb3J0X2tleShkZXYsIEJUTl9UT1VDSCwgZG93bik7Ci0JaW5wdXRfc3luYyhkZXYpOwotfQotCi1zdGF0aWMgdm9pZCB3OTBwOTEwX3ByZXBhcmVfeF9yZWFkaW5nKHN0cnVjdCB3OTBwOTEwX3RzICp3OTBwOTEwX3RzKQotewotCXVuc2lnbmVkIGxvbmcgY3RscmVnOwotCi0JX19yYXdfd3JpdGVsKEFEQ19UU0NfWCwgdzkwcDkxMF90cy0+dHNfcmVnICsgMHgwNCk7Ci0JY3RscmVnID0gX19yYXdfcmVhZGwodzkwcDkxMF90cy0+dHNfcmVnKTsKLQljdGxyZWcgJj0gfihBRENfV0FJVFRSSUcgfCBXVF9JTlQgfCBXVF9JTlRfRU4pOwotCWN0bHJlZyB8PSBBRENfU0VNSUFVVE8gfCBBRENfSU5UX0VOIHwgQURDX0NPTlY7Ci0JX19yYXdfd3JpdGVsKGN0bHJlZywgdzkwcDkxMF90cy0+dHNfcmVnKTsKLQotCXc5MHA5MTBfdHMtPnN0YXRlID0gVFNfV0FJVF9YX0NPT1JEOwotfQotCi1zdGF0aWMgdm9pZCB3OTBwOTEwX3ByZXBhcmVfeV9yZWFkaW5nKHN0cnVjdCB3OTBwOTEwX3RzICp3OTBwOTEwX3RzKQotewotCXVuc2lnbmVkIGxvbmcgY3RscmVnOwotCi0JX19yYXdfd3JpdGVsKEFEQ19UU0NfWSwgdzkwcDkxMF90cy0+dHNfcmVnICsgMHgwNCk7Ci0JY3RscmVnID0gX19yYXdfcmVhZGwodzkwcDkxMF90cy0+dHNfcmVnKTsKLQljdGxyZWcgJj0gfihBRENfV0FJVFRSSUcgfCBBRENfSU5UIHwgV1RfSU5UX0VOKTsKLQljdGxyZWcgfD0gQURDX1NFTUlBVVRPIHwgQURDX0lOVF9FTiB8IEFEQ19DT05WOwotCV9fcmF3X3dyaXRlbChjdGxyZWcsIHc5MHA5MTBfdHMtPnRzX3JlZyk7Ci0KLQl3OTBwOTEwX3RzLT5zdGF0ZSA9IFRTX1dBSVRfWV9DT09SRDsKLX0KLQotc3RhdGljIHZvaWQgdzkwcDkxMF9wcmVwYXJlX25leHRfcGFja2V0KHN0cnVjdCB3OTBwOTEwX3RzICp3OTBwOTEwX3RzKQotewotCXVuc2lnbmVkIGxvbmcgY3RscmVnOwotCi0JY3RscmVnID0gX19yYXdfcmVhZGwodzkwcDkxMF90cy0+dHNfcmVnKTsKLQljdGxyZWcgJj0gfihBRENfSU5UIHwgQURDX0lOVF9FTiB8IEFEQ19TRU1JQVVUTyB8IEFEQ19DT05WKTsKLQljdGxyZWcgfD0gQURDX1dBSVRUUklHIHwgV1RfSU5UX0VOOwotCV9fcmF3X3dyaXRlbChjdGxyZWcsIHc5MHA5MTBfdHMtPnRzX3JlZyk7Ci0KLQl3OTBwOTEwX3RzLT5zdGF0ZSA9IFRTX1dBSVRfTkVXX1BBQ0tFVDsKLX0KLQotc3RhdGljIGlycXJldHVybl90IHc5MHA5MTBfdHNfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKLXsKLQlzdHJ1Y3QgdzkwcDkxMF90cyAqdzkwcDkxMF90cyA9IGRldl9pZDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnc5MHA5MTBfdHMtPmxvY2ssIGZsYWdzKTsKLQotCXN3aXRjaCAodzkwcDkxMF90cy0+c3RhdGUpIHsKLQljYXNlIFRTX1dBSVRfTkVXX1BBQ0tFVDoKLQkJLyoKLQkJICogVGhlIGNvbnRyb2xsZXIgb25seSBnZW5lcmF0ZXMgaW50ZXJydXB0cyB3aGVuIHBlbgotCQkgKiBpcyBkb3duLgotCQkgKi8KLQkJZGVsX3RpbWVyKCZ3OTBwOTEwX3RzLT50aW1lcik7Ci0JCXc5MHA5MTBfcHJlcGFyZV94X3JlYWRpbmcodzkwcDkxMF90cyk7Ci0JCWJyZWFrOwotCi0KLQljYXNlIFRTX1dBSVRfWF9DT09SRDoKLQkJdzkwcDkxMF9wcmVwYXJlX3lfcmVhZGluZyh3OTBwOTEwX3RzKTsKLQkJYnJlYWs7Ci0KLQljYXNlIFRTX1dBSVRfWV9DT09SRDoKLQkJdzkwcDkxMF9yZXBvcnRfZXZlbnQodzkwcDkxMF90cywgdHJ1ZSk7Ci0JCXc5MHA5MTBfcHJlcGFyZV9uZXh0X3BhY2tldCh3OTBwOTEwX3RzKTsKLQkJbW9kX3RpbWVyKCZ3OTBwOTEwX3RzLT50aW1lciwgamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwKSk7Ci0JCWJyZWFrOwotCi0JY2FzZSBUU19JRExFOgotCQlicmVhazsKLQl9Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3OTBwOTEwX3RzLT5sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyB2b2lkIHc5MHA5MTBfY2hlY2tfcGVuX3VwKHN0cnVjdCB0aW1lcl9saXN0ICp0KQotewotCXN0cnVjdCB3OTBwOTEwX3RzICp3OTBwOTEwX3RzID0gZnJvbV90aW1lcih3OTBwOTEwX3RzLCB0LCB0aW1lcik7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZ3OTBwOTEwX3RzLT5sb2NrLCBmbGFncyk7Ci0KLQlpZiAodzkwcDkxMF90cy0+c3RhdGUgPT0gVFNfV0FJVF9ORVdfUEFDS0VUICYmCi0JICAgICEoX19yYXdfcmVhZGwodzkwcDkxMF90cy0+dHNfcmVnICsgMHgwNCkgJiBBRENfRE9XTikpIHsKLQotCQl3OTBwOTEwX3JlcG9ydF9ldmVudCh3OTBwOTEwX3RzLCBmYWxzZSk7Ci0JfQotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdzkwcDkxMF90cy0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgaW50IHc5MHA5MTBfb3BlbihzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYpCi17Ci0Jc3RydWN0IHc5MHA5MTBfdHMgKnc5MHA5MTBfdHMgPSBpbnB1dF9nZXRfZHJ2ZGF0YShkZXYpOwotCXVuc2lnbmVkIGxvbmcgdmFsOwotCi0JLyogZW5hYmxlIHRoZSBBREMgY2xvY2sgKi8KLQljbGtfZW5hYmxlKHc5MHA5MTBfdHMtPmNsayk7Ci0KLQlfX3Jhd193cml0ZWwoQURDX1JTVDEsIHc5MHA5MTBfdHMtPnRzX3JlZyk7Ci0JbXNsZWVwKDEpOwotCV9fcmF3X3dyaXRlbChBRENfUlNUMCwgdzkwcDkxMF90cy0+dHNfcmVnKTsKLQltc2xlZXAoMSk7Ci0KLQkvKiBzZXQgZGVsYXkgYW5kIHNjcmVlbiB0eXBlICovCi0JdmFsID0gX19yYXdfcmVhZGwodzkwcDkxMF90cy0+dHNfcmVnICsgMHgwNCk7Ci0JX19yYXdfd3JpdGVsKHZhbCAmIFRTQ19GT1VSV0lSRSwgdzkwcDkxMF90cy0+dHNfcmVnICsgMHgwNCk7Ci0JX19yYXdfd3JpdGVsKEFEQ19ERUxBWSwgdzkwcDkxMF90cy0+dHNfcmVnICsgMHgwOCk7Ci0KLQl3OTBwOTEwX3RzLT5zdGF0ZSA9IFRTX1dBSVRfTkVXX1BBQ0tFVDsKLQl3bWIoKTsKLQotCS8qIHNldCB0cmlnZ2VyIG1vZGUgKi8KLQl2YWwgPSBfX3Jhd19yZWFkbCh3OTBwOTEwX3RzLT50c19yZWcpOwotCXZhbCB8PSBBRENfV0FJVFRSSUcgfCBBRENfRElWIHwgQURDX0VOIHwgV1RfSU5UX0VOOwotCV9fcmF3X3dyaXRlbCh2YWwsIHc5MHA5MTBfdHMtPnRzX3JlZyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgdzkwcDkxMF9jbG9zZShzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYpCi17Ci0Jc3RydWN0IHc5MHA5MTBfdHMgKnc5MHA5MTBfdHMgPSBpbnB1dF9nZXRfZHJ2ZGF0YShkZXYpOwotCXVuc2lnbmVkIGxvbmcgdmFsOwotCi0JLyogZGlzYWJsZSB0cmlnZ2VyIG1vZGUgKi8KLQotCXNwaW5fbG9ja19pcnEoJnc5MHA5MTBfdHMtPmxvY2spOwotCi0JdzkwcDkxMF90cy0+c3RhdGUgPSBUU19JRExFOwotCi0JdmFsID0gX19yYXdfcmVhZGwodzkwcDkxMF90cy0+dHNfcmVnKTsKLQl2YWwgJj0gfihBRENfV0FJVFRSSUcgfCBBRENfRElWIHwgQURDX0VOIHwgV1RfSU5UX0VOIHwgQURDX0lOVF9FTik7Ci0JX19yYXdfd3JpdGVsKHZhbCwgdzkwcDkxMF90cy0+dHNfcmVnKTsKLQotCXNwaW5fdW5sb2NrX2lycSgmdzkwcDkxMF90cy0+bG9jayk7Ci0KLQkvKiBOb3cgdGhhdCBpbnRlcnJ1cHRzIGFyZSBzaHV0IG9mZiB3ZSBjYW4gc2FmZWx5IGRlbGV0ZSB0aW1lciAqLwotCWRlbF90aW1lcl9zeW5jKCZ3OTBwOTEwX3RzLT50aW1lcik7Ci0KLQkvKiBzdG9wIHRoZSBBREMgY2xvY2sgKi8KLQljbGtfZGlzYWJsZSh3OTBwOTEwX3RzLT5jbGspOwotfQotCi1zdGF0aWMgaW50IHc5MHg5MDB0c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCB3OTBwOTEwX3RzICp3OTBwOTEwX3RzOwotCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0X2RldjsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQlpbnQgZXJyOwotCi0JdzkwcDkxMF90cyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB3OTBwOTEwX3RzKSwgR0ZQX0tFUk5FTCk7Ci0JaW5wdXRfZGV2ID0gaW5wdXRfYWxsb2NhdGVfZGV2aWNlKCk7Ci0JaWYgKCF3OTBwOTEwX3RzIHx8ICFpbnB1dF9kZXYpIHsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBmYWlsMTsKLQl9Ci0KLQl3OTBwOTEwX3RzLT5pbnB1dCA9IGlucHV0X2RldjsKLQl3OTBwOTEwX3RzLT5zdGF0ZSA9IFRTX0lETEU7Ci0Jc3Bpbl9sb2NrX2luaXQoJnc5MHA5MTBfdHMtPmxvY2spOwotCXRpbWVyX3NldHVwKCZ3OTBwOTEwX3RzLT50aW1lciwgdzkwcDkxMF9jaGVja19wZW5fdXAsIDApOwotCi0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlpZiAoIXJlcykgewotCQllcnIgPSAtRU5YSU87Ci0JCWdvdG8gZmFpbDE7Ci0JfQotCi0JaWYgKCFyZXF1ZXN0X21lbV9yZWdpb24ocmVzLT5zdGFydCwgcmVzb3VyY2Vfc2l6ZShyZXMpLAotCQkJCXBkZXYtPm5hbWUpKSB7Ci0JCWVyciA9IC1FQlVTWTsKLQkJZ290byBmYWlsMTsKLQl9Ci0KLQl3OTBwOTEwX3RzLT50c19yZWcgPSBpb3JlbWFwKHJlcy0+c3RhcnQsIHJlc291cmNlX3NpemUocmVzKSk7Ci0JaWYgKCF3OTBwOTEwX3RzLT50c19yZWcpIHsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBmYWlsMjsKLQl9Ci0KLQl3OTBwOTEwX3RzLT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsIE5VTEwpOwotCWlmIChJU19FUlIodzkwcDkxMF90cy0+Y2xrKSkgewotCQllcnIgPSBQVFJfRVJSKHc5MHA5MTBfdHMtPmNsayk7Ci0JCWdvdG8gZmFpbDM7Ci0JfQotCi0JaW5wdXRfZGV2LT5uYW1lID0gIlc5MFA5MTAgVG91Y2hTY3JlZW4iOwotCWlucHV0X2Rldi0+cGh5cyA9ICJ3OTBwOTEwdHMvZXZlbnQwIjsKLQlpbnB1dF9kZXYtPmlkLmJ1c3R5cGUgPSBCVVNfSE9TVDsKLQlpbnB1dF9kZXYtPmlkLnZlbmRvciAgPSAweDAwMDU7Ci0JaW5wdXRfZGV2LT5pZC5wcm9kdWN0ID0gMHgwMDAxOwotCWlucHV0X2Rldi0+aWQudmVyc2lvbiA9IDB4MDEwMDsKLQlpbnB1dF9kZXYtPmRldi5wYXJlbnQgPSAmcGRldi0+ZGV2OwotCWlucHV0X2Rldi0+b3BlbiA9IHc5MHA5MTBfb3BlbjsKLQlpbnB1dF9kZXYtPmNsb3NlID0gdzkwcDkxMF9jbG9zZTsKLQotCWlucHV0X2Rldi0+ZXZiaXRbMF0gPSBCSVRfTUFTSyhFVl9LRVkpIHwgQklUX01BU0soRVZfQUJTKTsKLQlpbnB1dF9kZXYtPmtleWJpdFtCSVRfV09SRChCVE5fVE9VQ0gpXSA9IEJJVF9NQVNLKEJUTl9UT1VDSCk7Ci0KLQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhpbnB1dF9kZXYsIEFCU19YLCAwLCAweDQwMCwgMCwgMCk7Ci0JaW5wdXRfc2V0X2Fic19wYXJhbXMoaW5wdXRfZGV2LCBBQlNfWSwgMCwgMHg0MDAsIDAsIDApOwotCi0JaW5wdXRfc2V0X2RydmRhdGEoaW5wdXRfZGV2LCB3OTBwOTEwX3RzKTsKLQotCXc5MHA5MTBfdHMtPmlycV9udW0gPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChyZXF1ZXN0X2lycSh3OTBwOTEwX3RzLT5pcnFfbnVtLCB3OTBwOTEwX3RzX2ludGVycnVwdCwKLQkJCTAsICJ3OTBwOTEwdHMiLCB3OTBwOTEwX3RzKSkgewotCQllcnIgPSAtRUJVU1k7Ci0JCWdvdG8gZmFpbDQ7Ci0JfQotCi0JZXJyID0gaW5wdXRfcmVnaXN0ZXJfZGV2aWNlKHc5MHA5MTBfdHMtPmlucHV0KTsKLQlpZiAoZXJyKQotCQlnb3RvIGZhaWw1OwotCi0JcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgdzkwcDkxMF90cyk7Ci0KLQlyZXR1cm4gMDsKLQotZmFpbDU6CWZyZWVfaXJxKHc5MHA5MTBfdHMtPmlycV9udW0sIHc5MHA5MTBfdHMpOwotZmFpbDQ6CWNsa19wdXQodzkwcDkxMF90cy0+Y2xrKTsKLWZhaWwzOglpb3VubWFwKHc5MHA5MTBfdHMtPnRzX3JlZyk7Ci1mYWlsMjoJcmVsZWFzZV9tZW1fcmVnaW9uKHJlcy0+c3RhcnQsIHJlc291cmNlX3NpemUocmVzKSk7Ci1mYWlsMToJaW5wdXRfZnJlZV9kZXZpY2UoaW5wdXRfZGV2KTsKLQlrZnJlZSh3OTBwOTEwX3RzKTsKLQlyZXR1cm4gZXJyOwotfQotCi1zdGF0aWMgaW50IHc5MHg5MDB0c19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlzdHJ1Y3QgdzkwcDkxMF90cyAqdzkwcDkxMF90cyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotCi0JZnJlZV9pcnEodzkwcDkxMF90cy0+aXJxX251bSwgdzkwcDkxMF90cyk7Ci0JZGVsX3RpbWVyX3N5bmMoJnc5MHA5MTBfdHMtPnRpbWVyKTsKLQlpb3VubWFwKHc5MHA5MTBfdHMtPnRzX3JlZyk7Ci0KLQljbGtfcHV0KHc5MHA5MTBfdHMtPmNsayk7Ci0KLQlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwotCXJlbGVhc2VfbWVtX3JlZ2lvbihyZXMtPnN0YXJ0LCByZXNvdXJjZV9zaXplKHJlcykpOwotCi0JaW5wdXRfdW5yZWdpc3Rlcl9kZXZpY2UodzkwcDkxMF90cy0+aW5wdXQpOwotCWtmcmVlKHc5MHA5MTBfdHMpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHc5MHg5MDB0c19kcml2ZXIgPSB7Ci0JLnByb2JlCQk9IHc5MHg5MDB0c19wcm9iZSwKLQkucmVtb3ZlCQk9IHc5MHg5MDB0c19yZW1vdmUsCi0JLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gIm51YzkwMC10cyIsCi0JfSwKLX07Ci1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHc5MHg5MDB0c19kcml2ZXIpOwotCi1NT0RVTEVfQVVUSE9SKCJXYW4gWm9uZ1NodW4gPG1jdW9zLmNvbUBnbWFpbC5jb20+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oInc5MHA5MTAgdG91Y2ggc2NyZWVuIGRyaXZlciEiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06bnVjOTAwLXRzIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3dhY29tX3c4MDAxLmMgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3dhY29tX3c4MDAxLmMKaW5kZXggMzcxNWQxZS4uNjkxMjg1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi93YWNvbV93ODAwMS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vd2Fjb21fdzgwMDEuYwpAQCAtMjcsNiArMjcsOCBAQCBNT0RVTEVfQVVUSE9SKCJKYXlhIEt1bWFyIDxqYXlha3VtYXIubGttbEBnbWFpbC5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogCisjZGVmaW5lIFc4MDAxX01BWF9QSFlTCQk0MgorCiAjZGVmaW5lIFc4MDAxX01BWF9MRU5HVEgJMTMKICNkZWZpbmUgVzgwMDFfTEVBRF9NQVNLCQkweDgwCiAjZGVmaW5lIFc4MDAxX0xFQURfQllURQkJMHg4MApAQCAtODksNyArOTEsNyBAQCBzdHJ1Y3QgdzgwMDEgewogCXVuc2lnbmVkIGNoYXIgcmVzcG9uc2VfdHlwZTsKIAl1bnNpZ25lZCBjaGFyIHJlc3BvbnNlW1c4MDAxX01BWF9MRU5HVEhdOwogCXVuc2lnbmVkIGNoYXIgZGF0YVtXODAwMV9NQVhfTEVOR1RIXTsKLQljaGFyIHBoeXNbMzJdOworCWNoYXIgcGh5c1tXODAwMV9NQVhfUEhZU107CiAJaW50IHR5cGU7CiAJdW5zaWduZWQgaW50IHBrdGxlbjsKIAl1MTYgbWF4X3RvdWNoX3g7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdS5jIGIvZHJpdmVycy9pb21tdS9hbWRfaW9tbXUuYwppbmRleCAxZWQzYjk4Li45Nzk3NWJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdS5jCisrKyBiL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11LmMKQEAgLTI3NTQsNiArMjc1NCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgYW1kX2lvbW11X2RtYV9vcHMgPSB7CiAJLm1hcF9zZwkJPSBtYXBfc2csCiAJLnVubWFwX3NnCT0gdW5tYXBfc2csCiAJLmRtYV9zdXBwb3J0ZWQJPSBhbWRfaW9tbXVfZG1hX3N1cHBvcnRlZCwKKwkubW1hcAkJPSBkbWFfY29tbW9uX21tYXAsCisJLmdldF9zZ3RhYmxlCT0gZG1hX2NvbW1vbl9nZXRfc2d0YWJsZSwKIH07CiAKIHN0YXRpYyBpbnQgaW5pdF9yZXNlcnZlZF9pb3ZhX3Jhbmdlcyh2b2lkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jIGIvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jCmluZGV4IGMzZWYwY2MuLmIxOGFhYzRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L2FybS1zbW11LmMKKysrIGIvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGludCBfX2ZpbmRfbGVnYWN5X21hc3Rlcl9waGFuZGxlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKIAlpbnQgZXJyOwogCiAJb2ZfZm9yX2VhY2hfcGhhbmRsZShpdCwgZXJyLCBkZXYtPm9mX25vZGUsICJtbXUtbWFzdGVycyIsCi0JCQkgICAgIiNzdHJlYW0taWQtY2VsbHMiLCAwKQorCQkJICAgICIjc3RyZWFtLWlkLWNlbGxzIiwgLTEpCiAJCWlmIChpdC0+bm9kZSA9PSBucCkgewogCQkJKih2b2lkICoqKWRhdGEgPSBkZXY7CiAJCQlyZXR1cm4gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvZG1hLWlvbW11LmMgYi9kcml2ZXJzL2lvbW11L2RtYS1pb21tdS5jCmluZGV4IDhmNDEyYWYuLmYzMjEyNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvZG1hLWlvbW11LmMKKysrIGIvZHJpdmVycy9pb21tdS9kbWEtaW9tbXUuYwpAQCAtNTQ4LDE1ICs1NDgsNiBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKipfX2lvbW11X2RtYV9hbGxvY19wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIHBhZ2VzOwogfQogCi1zdGF0aWMgc3RydWN0IHBhZ2UgKipfX2lvbW11X2RtYV9nZXRfcGFnZXModm9pZCAqY3B1X2FkZHIpCi17Ci0Jc3RydWN0IHZtX3N0cnVjdCAqYXJlYSA9IGZpbmRfdm1fYXJlYShjcHVfYWRkcik7Ci0KLQlpZiAoIWFyZWEgfHwgIWFyZWEtPnBhZ2VzKQotCQlyZXR1cm4gTlVMTDsKLQlyZXR1cm4gYXJlYS0+cGFnZXM7Ci19Ci0KIC8qKgogICogaW9tbXVfZG1hX2FsbG9jX3JlbWFwIC0gQWxsb2NhdGUgYW5kIG1hcCBhIGJ1ZmZlciBjb250aWd1b3VzIGluIElPVkEgc3BhY2UKICAqIEBkZXY6IERldmljZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yLiBNdXN0IGJlIGEgcmVhbCBkZXZpY2UKQEAgLTYyNCw3ICs2MTUsNyBAQCBzdGF0aWMgdm9pZCAqaW9tbXVfZG1hX2FsbG9jX3JlbWFwKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJCQk8IHNpemUpCiAJCWdvdG8gb3V0X2ZyZWVfc2c7CiAKLQl2YWRkciA9IGRtYV9jb21tb25fcGFnZXNfcmVtYXAocGFnZXMsIHNpemUsIFZNX1VTRVJNQVAsIHByb3QsCisJdmFkZHIgPSBkbWFfY29tbW9uX3BhZ2VzX3JlbWFwKHBhZ2VzLCBzaXplLCBwcm90LAogCQkJX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKIAlpZiAoIXZhZGRyKQogCQlnb3RvIG91dF91bm1hcDsKQEAgLTk0NSwxMCArOTM2LDEwIEBAIHN0YXRpYyB2b2lkIF9faW9tbXVfZG1hX2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgdm9pZCAqY3B1X2FkZHIpCiAJCSAqIElmIGl0IHRoZSBhZGRyZXNzIGlzIHJlbWFwcGVkLCB0aGVuIGl0J3MgZWl0aGVyIG5vbi1jb2hlcmVudAogCQkgKiBvciBoaWdobWVtIENNQSwgb3IgYW4gaW9tbXVfZG1hX2FsbG9jX3JlbWFwKCkgY29uc3RydWN0aW9uLgogCQkgKi8KLQkJcGFnZXMgPSBfX2lvbW11X2RtYV9nZXRfcGFnZXMoY3B1X2FkZHIpOworCQlwYWdlcyA9IGRtYV9jb21tb25fZmluZF9wYWdlcyhjcHVfYWRkcik7CiAJCWlmICghcGFnZXMpCiAJCQlwYWdlID0gdm1hbGxvY190b19wYWdlKGNwdV9hZGRyKTsKLQkJZG1hX2NvbW1vbl9mcmVlX3JlbWFwKGNwdV9hZGRyLCBhbGxvY19zaXplLCBWTV9VU0VSTUFQKTsKKwkJZG1hX2NvbW1vbl9mcmVlX3JlbWFwKGNwdV9hZGRyLCBhbGxvY19zaXplKTsKIAl9IGVsc2UgewogCQkvKiBMb3dtZW0gbWVhbnMgYSBjb2hlcmVudCBhdG9taWMgb3IgQ01BIGFsbG9jYXRpb24gKi8KIAkJcGFnZSA9IHZpcnRfdG9fcGFnZShjcHVfYWRkcik7CkBAIC05ODYsNyArOTc3LDcgQEAgc3RhdGljIHZvaWQgKmlvbW11X2RtYV9hbGxvY19wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCQlwZ3Byb3RfdCBwcm90ID0gZG1hX3BncHJvdChkZXYsIFBBR0VfS0VSTkVMLCBhdHRycyk7CiAKIAkJY3B1X2FkZHIgPSBkbWFfY29tbW9uX2NvbnRpZ3VvdXNfcmVtYXAocGFnZSwgYWxsb2Nfc2l6ZSwKLQkJCQlWTV9VU0VSTUFQLCBwcm90LCBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOworCQkJCXByb3QsIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7CiAJCWlmICghY3B1X2FkZHIpCiAJCQlnb3RvIG91dF9mcmVlX3BhZ2VzOwogCkBAIC0xMDUyLDcgKzEwNDMsNyBAQCBzdGF0aWMgaW50IGlvbW11X2RtYV9tbWFwKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCXJldHVybiAtRU5YSU87CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfRE1BX1JFTUFQKSAmJiBpc192bWFsbG9jX2FkZHIoY3B1X2FkZHIpKSB7Ci0JCXN0cnVjdCBwYWdlICoqcGFnZXMgPSBfX2lvbW11X2RtYV9nZXRfcGFnZXMoY3B1X2FkZHIpOworCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzID0gZG1hX2NvbW1vbl9maW5kX3BhZ2VzKGNwdV9hZGRyKTsKIAogCQlpZiAocGFnZXMpCiAJCQlyZXR1cm4gX19pb21tdV9kbWFfbW1hcChwYWdlcywgc2l6ZSwgdm1hKTsKQEAgLTEwNzQsNyArMTA2NSw3IEBAIHN0YXRpYyBpbnQgaW9tbXVfZG1hX2dldF9zZ3RhYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNnX3RhYmxlICpzZ3QsCiAJaW50IHJldDsKIAogCWlmIChJU19FTkFCTEVEKENPTkZJR19ETUFfUkVNQVApICYmIGlzX3ZtYWxsb2NfYWRkcihjcHVfYWRkcikpIHsKLQkJc3RydWN0IHBhZ2UgKipwYWdlcyA9IF9faW9tbXVfZG1hX2dldF9wYWdlcyhjcHVfYWRkcik7CisJCXN0cnVjdCBwYWdlICoqcGFnZXMgPSBkbWFfY29tbW9uX2ZpbmRfcGFnZXMoY3B1X2FkZHIpOwogCiAJCWlmIChwYWdlcykgewogCQkJcmV0dXJuIHNnX2FsbG9jX3RhYmxlX2Zyb21fcGFnZXMoc2d0LCBwYWdlcywKQEAgLTEwOTMsNiArMTA4NCwxMyBAQCBzdGF0aWMgaW50IGlvbW11X2RtYV9nZXRfc2d0YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzZ190YWJsZSAqc2d0LAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlvbW11X2RtYV9nZXRfbWVyZ2VfYm91bmRhcnkoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiA9IGlvbW11X2dldF9kbWFfZG9tYWluKGRldik7CisKKwlyZXR1cm4gKDFVTCA8PCBfX2Zmcyhkb21haW4tPnBnc2l6ZV9iaXRtYXApKSAtIDE7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgaW9tbXVfZG1hX29wcyA9IHsKIAkuYWxsb2MJCQk9IGlvbW11X2RtYV9hbGxvYywKIAkuZnJlZQkJCT0gaW9tbXVfZG1hX2ZyZWUsCkBAIC0xMTA4LDYgKzExMDYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIGlvbW11X2RtYV9vcHMgPSB7CiAJLnN5bmNfc2dfZm9yX2RldmljZQk9IGlvbW11X2RtYV9zeW5jX3NnX2Zvcl9kZXZpY2UsCiAJLm1hcF9yZXNvdXJjZQkJPSBpb21tdV9kbWFfbWFwX3Jlc291cmNlLAogCS51bm1hcF9yZXNvdXJjZQkJPSBpb21tdV9kbWFfdW5tYXBfcmVzb3VyY2UsCisJLmdldF9tZXJnZV9ib3VuZGFyeQk9IGlvbW11X2RtYV9nZXRfbWVyZ2VfYm91bmRhcnksCiB9OwogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jIGIvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jCmluZGV4IDg3ZGUwYjkuLjNmOTc0OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYworKysgYi9kcml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMKQEAgLTM3ODUsNiArMzc4NSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgaW50ZWxfZG1hX29wcyA9IHsKIAkubWFwX3Jlc291cmNlID0gaW50ZWxfbWFwX3Jlc291cmNlLAogCS51bm1hcF9yZXNvdXJjZSA9IGludGVsX3VubWFwX3Jlc291cmNlLAogCS5kbWFfc3VwcG9ydGVkID0gZG1hX2RpcmVjdF9zdXBwb3J0ZWQsCisJLm1tYXAgPSBkbWFfY29tbW9uX21tYXAsCisJLmdldF9zZ3RhYmxlID0gZG1hX2NvbW1vbl9nZXRfc2d0YWJsZSwKIH07CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L210a19pb21tdV92MS5jIGIvZHJpdmVycy9pb21tdS9tdGtfaW9tbXVfdjEuYwppbmRleCAyMTBiMWM3Li5iNWVmZDZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L210a19pb21tdV92MS5jCisrKyBiL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11X3YxLmMKQEAgLTQyNyw3ICs0MjcsNyBAQCBzdGF0aWMgaW50IG10a19pb21tdV9hZGRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlpbnQgZXJyOwogCiAJb2ZfZm9yX2VhY2hfcGhhbmRsZSgmaXQsIGVyciwgZGV2LT5vZl9ub2RlLCAiaW9tbXVzIiwKLQkJCSIjaW9tbXUtY2VsbHMiLCAwKSB7CisJCQkiI2lvbW11LWNlbGxzIiwgLTEpIHsKIAkJaW50IGNvdW50ID0gb2ZfcGhhbmRsZV9pdGVyYXRvcl9hcmdzKCZpdCwgaW9tbXVfc3BlYy5hcmdzLAogCQkJCQlNQVhfUEhBTkRMRV9BUkdTKTsKIAkJaW9tbXVfc3BlYy5ucCA9IG9mX25vZGVfZ2V0KGl0Lm5vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pcnFjaGlwL0tjb25maWcgYi9kcml2ZXJzL2lycWNoaXAvS2NvbmZpZwppbmRleCA4MGUxMGY0Li5jY2JiODk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lycWNoaXAvS2NvbmZpZworKysgYi9kcml2ZXJzL2lycWNoaXAvS2NvbmZpZwpAQCAtMzE1LDYgKzMxNSwxOCBAQAogCWRlcGVuZHMgb24gTUFDSF9JTkdFTklDCiAJZGVmYXVsdCB5CiAKK2NvbmZpZyBJTkdFTklDX1RDVV9JUlEKKwlib29sICJJbmdlbmljIEpaNDd4eCBUQ1UgaW50ZXJydXB0IGNvbnRyb2xsZXIiCisJZGVmYXVsdCBNQUNIX0lOR0VOSUMKKwlkZXBlbmRzIG9uIE1JUFMgfHwgQ09NUElMRV9URVNUCisJc2VsZWN0IE1GRF9TWVNDT04KKwlzZWxlY3QgR0VORVJJQ19JUlFfQ0hJUAorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIGludGVycnVwdHMgaW4gdGhlIFRpbWVyL0NvdW50ZXIgVW5pdCAoVENVKSBvZiB0aGUgSW5nZW5pYworCSAgSlo0N3h4IFNvQ3MuCisKKwkgIElmIHVuc3VyZSwgc2F5IE4uCisKIGNvbmZpZyBSRU5FU0FTX0g4MzAwSF9JTlRDCiAgICAgICAgIGJvb2wKIAlzZWxlY3QgSVJRX0RPTUFJTgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pcnFjaGlwL01ha2VmaWxlIGIvZHJpdmVycy9pcnFjaGlwL01ha2VmaWxlCmluZGV4IDhkMGZjZWMuLmNjN2M0MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXJxY2hpcC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2lycWNoaXAvTWFrZWZpbGUKQEAgLTc1LDYgKzc1LDcgQEAKIG9iai0kKENPTkZJR19SRU5FU0FTX0g4U19JTlRDKQkJKz0gaXJxLXJlbmVzYXMtaDhzLm8KIG9iai0kKENPTkZJR19BUkNIX1NBMTEwMCkJCSs9IGlycS1zYTExeDAubwogb2JqLSQoQ09ORklHX0lOR0VOSUNfSVJRKQkJKz0gaXJxLWluZ2VuaWMubworb2JqLSQoQ09ORklHX0lOR0VOSUNfVENVX0lSUSkJCSs9IGlycS1pbmdlbmljLXRjdS5vCiBvYmotJChDT05GSUdfSU1YX0dQQ1YyKQkJCSs9IGlycS1pbXgtZ3BjdjIubwogb2JqLSQoQ09ORklHX1BJQzMyX0VWSUMpCQkrPSBpcnEtcGljMzItZXZpYy5vCiBvYmotJChDT05GSUdfTVNDQ19PQ0VMT1RfSVJRKQkJKz0gaXJxLW1zY2Mtb2NlbG90Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXJxY2hpcC9pcnEtaW5nZW5pYy10Y3UuYyBiL2RyaXZlcnMvaXJxY2hpcC9pcnEtaW5nZW5pYy10Y3UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDA1Y2VmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9pcnFjaGlwL2lycS1pbmdlbmljLXRjdS5jCkBAIC0wLDAgKzEsMTgyIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIEpaNDd4eCBTb0NzIFRDVSBJUlEgZHJpdmVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgUGF1bCBDZXJjdWVpbCA8cGF1bEBjcmFwb3VpbGxvdS5uZXQ+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lycWNoaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnFjaGlwL2NoYWluZWRfaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2luZ2VuaWMtdGN1Lmg+CisjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCitzdHJ1Y3QgaW5nZW5pY190Y3UgeworCXN0cnVjdCByZWdtYXAgKm1hcDsKKwlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGlycV9kb21haW4gKmRvbWFpbjsKKwl1bnNpZ25lZCBpbnQgbmJfcGFyZW50X2lycXM7CisJdTMyIHBhcmVudF9pcnFzWzNdOworfTsKKworc3RhdGljIHZvaWQgaW5nZW5pY190Y3VfaW50Y19jYXNjYWRlKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKK3sKKwlzdHJ1Y3QgaXJxX2NoaXAgKmlycV9jaGlwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwKCZkZXNjLT5pcnFfZGF0YSk7CisJc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiA9IGlycV9kZXNjX2dldF9oYW5kbGVyX2RhdGEoZGVzYyk7CisJc3RydWN0IGlycV9jaGlwX2dlbmVyaWMgKmdjID0gaXJxX2dldF9kb21haW5fZ2VuZXJpY19jaGlwKGRvbWFpbiwgMCk7CisJc3RydWN0IHJlZ21hcCAqbWFwID0gZ2MtPnByaXZhdGU7CisJdWludDMyX3QgaXJxX3JlZywgaXJxX21hc2s7CisJdW5zaWduZWQgaW50IGk7CisKKwlyZWdtYXBfcmVhZChtYXAsIFRDVV9SRUdfVEZSLCAmaXJxX3JlZyk7CisJcmVnbWFwX3JlYWQobWFwLCBUQ1VfUkVHX1RNUiwgJmlycV9tYXNrKTsKKworCWNoYWluZWRfaXJxX2VudGVyKGlycV9jaGlwLCBkZXNjKTsKKworCWlycV9yZWcgJj0gfmlycV9tYXNrOworCisJZm9yX2VhY2hfc2V0X2JpdChpLCAodW5zaWduZWQgbG9uZyAqKSZpcnFfcmVnLCAzMikKKwkJZ2VuZXJpY19oYW5kbGVfaXJxKGlycV9saW5lYXJfcmV2bWFwKGRvbWFpbiwgaSkpOworCisJY2hhaW5lZF9pcnFfZXhpdChpcnFfY2hpcCwgZGVzYyk7Cit9CisKK3N0YXRpYyB2b2lkIGluZ2VuaWNfdGN1X2djX3VubWFza19lbmFibGVfcmVnKHN0cnVjdCBpcnFfZGF0YSAqZCkKK3sKKwlzdHJ1Y3QgaXJxX2NoaXBfZ2VuZXJpYyAqZ2MgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKKwlzdHJ1Y3QgaXJxX2NoaXBfdHlwZSAqY3QgPSBpcnFfZGF0YV9nZXRfY2hpcF90eXBlKGQpOworCXN0cnVjdCByZWdtYXAgKm1hcCA9IGdjLT5wcml2YXRlOworCXUzMiBtYXNrID0gZC0+bWFzazsKKworCWlycV9nY19sb2NrKGdjKTsKKwlyZWdtYXBfd3JpdGUobWFwLCBjdC0+cmVncy5hY2ssIG1hc2spOworCXJlZ21hcF93cml0ZShtYXAsIGN0LT5yZWdzLmVuYWJsZSwgbWFzayk7CisJKmN0LT5tYXNrX2NhY2hlIHw9IG1hc2s7CisJaXJxX2djX3VubG9jayhnYyk7Cit9CisKK3N0YXRpYyB2b2lkIGluZ2VuaWNfdGN1X2djX21hc2tfZGlzYWJsZV9yZWcoc3RydWN0IGlycV9kYXRhICpkKQoreworCXN0cnVjdCBpcnFfY2hpcF9nZW5lcmljICpnYyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpOworCXN0cnVjdCBpcnFfY2hpcF90eXBlICpjdCA9IGlycV9kYXRhX2dldF9jaGlwX3R5cGUoZCk7CisJc3RydWN0IHJlZ21hcCAqbWFwID0gZ2MtPnByaXZhdGU7CisJdTMyIG1hc2sgPSBkLT5tYXNrOworCisJaXJxX2djX2xvY2soZ2MpOworCXJlZ21hcF93cml0ZShtYXAsIGN0LT5yZWdzLmRpc2FibGUsIG1hc2spOworCSpjdC0+bWFza19jYWNoZSAmPSB+bWFzazsKKwlpcnFfZ2NfdW5sb2NrKGdjKTsKK30KKworc3RhdGljIHZvaWQgaW5nZW5pY190Y3VfZ2NfbWFza19kaXNhYmxlX3JlZ19hbmRfYWNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKK3sKKwlzdHJ1Y3QgaXJxX2NoaXBfZ2VuZXJpYyAqZ2MgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKKwlzdHJ1Y3QgaXJxX2NoaXBfdHlwZSAqY3QgPSBpcnFfZGF0YV9nZXRfY2hpcF90eXBlKGQpOworCXN0cnVjdCByZWdtYXAgKm1hcCA9IGdjLT5wcml2YXRlOworCXUzMiBtYXNrID0gZC0+bWFzazsKKworCWlycV9nY19sb2NrKGdjKTsKKwlyZWdtYXBfd3JpdGUobWFwLCBjdC0+cmVncy5hY2ssIG1hc2spOworCXJlZ21hcF93cml0ZShtYXAsIGN0LT5yZWdzLmRpc2FibGUsIG1hc2spOworCWlycV9nY191bmxvY2soZ2MpOworfQorCitzdGF0aWMgaW50IF9faW5pdCBpbmdlbmljX3RjdV9pcnFfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAorCQkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhcmVudCkKK3sKKwlzdHJ1Y3QgaXJxX2NoaXBfZ2VuZXJpYyAqZ2M7CisJc3RydWN0IGlycV9jaGlwX3R5cGUgKmN0OworCXN0cnVjdCBpbmdlbmljX3RjdSAqdGN1OworCXN0cnVjdCByZWdtYXAgKm1hcDsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0LCBpcnFzOworCisJbWFwID0gZGV2aWNlX25vZGVfdG9fcmVnbWFwKG5wKTsKKwlpZiAoSVNfRVJSKG1hcCkpCisJCXJldHVybiBQVFJfRVJSKG1hcCk7CisKKwl0Y3UgPSBremFsbG9jKHNpemVvZigqdGN1KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF0Y3UpCisJCXJldHVybiAtRU5PTUVNOworCisJdGN1LT5tYXAgPSBtYXA7CisKKwlpcnFzID0gb2ZfcHJvcGVydHlfY291bnRfZWxlbXNfb2Zfc2l6ZShucCwgImludGVycnVwdHMiLCBzaXplb2YodTMyKSk7CisJaWYgKGlycXMgPCAwIHx8IGlycXMgPiBBUlJBWV9TSVpFKHRjdS0+cGFyZW50X2lycXMpKSB7CisJCXByX2NyaXQoIiVzOiBJbnZhbGlkICdpbnRlcnJ1cHRzJyBwcm9wZXJ0eVxuIiwgX19mdW5jX18pOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGVycl9mcmVlX3RjdTsKKwl9CisKKwl0Y3UtPm5iX3BhcmVudF9pcnFzID0gaXJxczsKKworCXRjdS0+ZG9tYWluID0gaXJxX2RvbWFpbl9hZGRfbGluZWFyKG5wLCAzMiwgJmlycV9nZW5lcmljX2NoaXBfb3BzLAorCQkJCQkgICAgTlVMTCk7CisJaWYgKCF0Y3UtPmRvbWFpbikgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVycl9mcmVlX3RjdTsKKwl9CisKKwlyZXQgPSBpcnFfYWxsb2NfZG9tYWluX2dlbmVyaWNfY2hpcHModGN1LT5kb21haW4sIDMyLCAxLCAiVENVIiwKKwkJCQkJICAgICBoYW5kbGVfbGV2ZWxfaXJxLCAwLAorCQkJCQkgICAgIElSUV9OT1BST0JFIHwgSVJRX0xFVkVMLCAwKTsKKwlpZiAocmV0KSB7CisJCXByX2NyaXQoIiVzOiBJbnZhbGlkICdpbnRlcnJ1cHRzJyBwcm9wZXJ0eVxuIiwgX19mdW5jX18pOworCQlnb3RvIG91dF9kb21haW5fcmVtb3ZlOworCX0KKworCWdjID0gaXJxX2dldF9kb21haW5fZ2VuZXJpY19jaGlwKHRjdS0+ZG9tYWluLCAwKTsKKwljdCA9IGdjLT5jaGlwX3R5cGVzOworCisJZ2MtPndha2VfZW5hYmxlZCA9IElSUV9NU0soMzIpOworCWdjLT5wcml2YXRlID0gdGN1LT5tYXA7CisKKwljdC0+cmVncy5kaXNhYmxlID0gVENVX1JFR19UTVNSOworCWN0LT5yZWdzLmVuYWJsZSA9IFRDVV9SRUdfVE1DUjsKKwljdC0+cmVncy5hY2sgPSBUQ1VfUkVHX1RGQ1I7CisJY3QtPmNoaXAuaXJxX3VubWFzayA9IGluZ2VuaWNfdGN1X2djX3VubWFza19lbmFibGVfcmVnOworCWN0LT5jaGlwLmlycV9tYXNrID0gaW5nZW5pY190Y3VfZ2NfbWFza19kaXNhYmxlX3JlZzsKKwljdC0+Y2hpcC5pcnFfbWFza19hY2sgPSBpbmdlbmljX3RjdV9nY19tYXNrX2Rpc2FibGVfcmVnX2FuZF9hY2s7CisJY3QtPmNoaXAuZmxhZ3MgPSBJUlFDSElQX01BU0tfT05fU1VTUEVORCB8IElSUUNISVBfU0tJUF9TRVRfV0FLRTsKKworCS8qIE1hc2sgYWxsIElSUXMgYnkgZGVmYXVsdCAqLworCXJlZ21hcF93cml0ZSh0Y3UtPm1hcCwgVENVX1JFR19UTVNSLCBJUlFfTVNLKDMyKSk7CisKKwkvKgorCSAqIE9uIEpaNDc0MCwgdGltZXIgMCBhbmQgdGltZXIgMSBoYXZlIHRoZWlyIG93biBpbnRlcnJ1cHQgbGluZTsKKwkgKiB0aW1lcnMgMi03IHNoYXJlIG9uZSBpbnRlcnJ1cHQuCisJICogT24gU29DcyA+PSBKWjQ3NzAsIHRpbWVyIDUgaGFzIGl0cyBvd24gaW50ZXJydXB0IGxpbmU7CisJICogdGltZXJzIDAtNCBhbmQgNi03IHNoYXJlIG9uZSBzaW5nbGUgaW50ZXJydXB0LgorCSAqCisJICogVG8ga2VlcCB0aGluZ3Mgc2ltcGxlLCB3ZSBqdXN0IHJlZ2lzdGVyIHRoZSBzYW1lIGhhbmRsZXIgdG8KKwkgKiBhbGwgcGFyZW50IGludGVycnVwdHMuIFRoZSBoYW5kbGVyIHdpbGwgcHJvcGVybHkgZGV0ZWN0IHdoaWNoCisJICogY2hhbm5lbCBmaXJlZCB0aGUgaW50ZXJydXB0LgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBpcnFzOyBpKyspIHsKKwkJdGN1LT5wYXJlbnRfaXJxc1tpXSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCBpKTsKKwkJaWYgKCF0Y3UtPnBhcmVudF9pcnFzW2ldKSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290byBvdXRfdW5tYXBfaXJxczsKKwkJfQorCisJCWlycV9zZXRfY2hhaW5lZF9oYW5kbGVyX2FuZF9kYXRhKHRjdS0+cGFyZW50X2lycXNbaV0sCisJCQkJCQkgaW5nZW5pY190Y3VfaW50Y19jYXNjYWRlLAorCQkJCQkJIHRjdS0+ZG9tYWluKTsKKwl9CisKKwlyZXR1cm4gMDsKKworb3V0X3VubWFwX2lycXM6CisJZm9yICg7IGkgPiAwOyBpLS0pCisJCWlycV9kaXNwb3NlX21hcHBpbmcodGN1LT5wYXJlbnRfaXJxc1tpIC0gMV0pOworb3V0X2RvbWFpbl9yZW1vdmU6CisJaXJxX2RvbWFpbl9yZW1vdmUodGN1LT5kb21haW4pOworZXJyX2ZyZWVfdGN1OgorCWtmcmVlKHRjdSk7CisJcmV0dXJuIHJldDsKK30KK0lSUUNISVBfREVDTEFSRShqejQ3NDBfdGN1X2lycSwgImluZ2VuaWMsano0NzQwLXRjdSIsIGluZ2VuaWNfdGN1X2lycV9pbml0KTsKK0lSUUNISVBfREVDTEFSRShqejQ3MjViX3RjdV9pcnEsICJpbmdlbmljLGp6NDcyNWItdGN1IiwgaW5nZW5pY190Y3VfaXJxX2luaXQpOworSVJRQ0hJUF9ERUNMQVJFKGp6NDc3MF90Y3VfaXJxLCAiaW5nZW5pYyxqejQ3NzAtdGN1IiwgaW5nZW5pY190Y3VfaXJxX2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWlsYm94L2FybWFkYS0zN3h4LXJ3dG0tbWFpbGJveC5jIGIvZHJpdmVycy9tYWlsYm94L2FybWFkYS0zN3h4LXJ3dG0tbWFpbGJveC5jCmluZGV4IDk3ZjkwZTkuLjE5ZjA4NjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWFpbGJveC9hcm1hZGEtMzd4eC1yd3RtLW1haWxib3guYworKysgYi9kcml2ZXJzL21haWxib3gvYXJtYWRhLTM3eHgtcnd0bS1tYWlsYm94LmMKQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgaW50IGFybWFkYV8zN3h4X21ib3hfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAltYm94LT5jb250cm9sbGVyLm9wcyA9ICZhMzd4eF9tYm94X29wczsKIAltYm94LT5jb250cm9sbGVyLnR4ZG9uZV9pcnEgPSB0cnVlOwogCi0JcmV0ID0gbWJveF9jb250cm9sbGVyX3JlZ2lzdGVyKCZtYm94LT5jb250cm9sbGVyKTsKKwlyZXQgPSBkZXZtX21ib3hfY29udHJvbGxlcl9yZWdpc3RlcihtYm94LT5kZXYsICZtYm94LT5jb250cm9sbGVyKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgIkNvdWxkIG5vdCByZWdpc3RlciBtYWlsYm94IGNvbnRyb2xsZXJcbiIpOwogCQlyZXR1cm4gcmV0OwpAQCAtMTkwLDE3ICsxOTAsNiBAQCBzdGF0aWMgaW50IGFybWFkYV8zN3h4X21ib3hfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGFybWFkYV8zN3h4X21ib3hfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IGEzN3h4X21ib3ggKm1ib3ggPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQotCWlmICghbWJveCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQltYm94X2NvbnRyb2xsZXJfdW5yZWdpc3RlcigmbWJveC0+Y29udHJvbGxlcik7Ci0KLQlyZXR1cm4gMDsKLX0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXJtYWRhXzM3eHhfbWJveF9tYXRjaFtdID0gewogCXsgLmNvbXBhdGlibGUgPSAibWFydmVsbCxhcm1hZGEtMzcwMC1yd3RtLW1haWxib3giIH0sCkBAIC0yMTEsNyArMjAwLDYgQEAgTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYXJtYWRhXzM3eHhfbWJveF9tYXRjaCk7CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFybWFkYV8zN3h4X21ib3hfZHJpdmVyID0gewogCS5wcm9iZQk9IGFybWFkYV8zN3h4X21ib3hfcHJvYmUsCi0JLnJlbW92ZQk9IGFybWFkYV8zN3h4X21ib3hfcmVtb3ZlLAogCS5kcml2ZXIJPSB7CiAJCS5uYW1lCQk9IERSSVZFUl9OQU1FLAogCQkub2ZfbWF0Y2hfdGFibGUJPSBhcm1hZGFfMzd4eF9tYm94X21hdGNoLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWlsYm94L210ay1jbWRxLW1haWxib3guYyBiL2RyaXZlcnMvbWFpbGJveC9tdGstY21kcS1tYWlsYm94LmMKaW5kZXggMDBkNTIxOS4uOWE2Y2U5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tYWlsYm94L210ay1jbWRxLW1haWxib3guYworKysgYi9kcml2ZXJzL21haWxib3gvbXRrLWNtZHEtbWFpbGJveC5jCkBAIC0xOCwxMCArMTgsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KIAogI2RlZmluZSBDTURRX09QX0NPREVfTUFTSwkJKDB4ZmYgPDwgQ01EUV9PUF9DT0RFX1NISUZUKQotI2RlZmluZSBDTURRX0lSUV9NQVNLCQkJMHhmZmZmCiAjZGVmaW5lIENNRFFfTlVNX0NNRCh0KQkJCSh0LT5jbWRfYnVmX3NpemUgLyBDTURRX0lOU1RfU0laRSkKIAogI2RlZmluZSBDTURRX0NVUlJfSVJRX1NUQVRVUwkJMHgxMAorI2RlZmluZSBDTURRX1NZTkNfVE9LRU5fVVBEQVRFCQkweDY4CiAjZGVmaW5lIENNRFFfVEhSX1NMT1RfQ1lDTEVTCQkweDMwCiAjZGVmaW5lIENNRFFfVEhSX0JBU0UJCQkweDEwMAogI2RlZmluZSBDTURRX1RIUl9TSVpFCQkJMHg4MApAQCAtNzIsNiArNzIsNyBAQCBzdHJ1Y3QgY21kcSB7CiAJdm9pZCBfX2lvbWVtCQkqYmFzZTsKIAl1MzIJCQlpcnE7CiAJdTMyCQkJdGhyZWFkX25yOworCXUzMgkJCWlycV9tYXNrOwogCXN0cnVjdCBjbWRxX3RocmVhZAkqdGhyZWFkOwogCXN0cnVjdCBjbGsJCSpjbG9jazsKIAlib29sCQkJc3VzcGVuZGVkOwpAQCAtMTA0LDggKzEwNSwxMiBAQCBzdGF0aWMgdm9pZCBjbWRxX3RocmVhZF9yZXN1bWUoc3RydWN0IGNtZHFfdGhyZWFkICp0aHJlYWQpCiAKIHN0YXRpYyB2b2lkIGNtZHFfaW5pdChzdHJ1Y3QgY21kcSAqY21kcSkKIHsKKwlpbnQgaTsKKwogCVdBUk5fT04oY2xrX2VuYWJsZShjbWRxLT5jbG9jaykgPCAwKTsKIAl3cml0ZWwoQ01EUV9USFJfQUNUSVZFX1NMT1RfQ1lDTEVTLCBjbWRxLT5iYXNlICsgQ01EUV9USFJfU0xPVF9DWUNMRVMpOworCWZvciAoaSA9IDA7IGkgPD0gQ01EUV9NQVhfRVZFTlQ7IGkrKykKKwkJd3JpdGVsKGksIGNtZHEtPmJhc2UgKyBDTURRX1NZTkNfVE9LRU5fVVBEQVRFKTsKIAljbGtfZGlzYWJsZShjbWRxLT5jbG9jayk7CiB9CiAKQEAgLTI4NSwxMSArMjkwLDExIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBjbWRxX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldikKIAl1bnNpZ25lZCBsb25nIGlycV9zdGF0dXMsIGZsYWdzID0gMEw7CiAJaW50IGJpdDsKIAotCWlycV9zdGF0dXMgPSByZWFkbChjbWRxLT5iYXNlICsgQ01EUV9DVVJSX0lSUV9TVEFUVVMpICYgQ01EUV9JUlFfTUFTSzsKLQlpZiAoIShpcnFfc3RhdHVzIF4gQ01EUV9JUlFfTUFTSykpCisJaXJxX3N0YXR1cyA9IHJlYWRsKGNtZHEtPmJhc2UgKyBDTURRX0NVUlJfSVJRX1NUQVRVUykgJiBjbWRxLT5pcnFfbWFzazsKKwlpZiAoIShpcnFfc3RhdHVzIF4gY21kcS0+aXJxX21hc2spKQogCQlyZXR1cm4gSVJRX05PTkU7CiAKLQlmb3JfZWFjaF9jbGVhcl9iaXQoYml0LCAmaXJxX3N0YXR1cywgZmxzKENNRFFfSVJRX01BU0spKSB7CisJZm9yX2VhY2hfY2xlYXJfYml0KGJpdCwgJmlycV9zdGF0dXMsIGNtZHEtPnRocmVhZF9ucikgewogCQlzdHJ1Y3QgY21kcV90aHJlYWQgKnRocmVhZCA9ICZjbWRxLT50aHJlYWRbYml0XTsKIAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmdGhyZWFkLT5jaGFuLT5sb2NrLCBmbGFncyk7CkBAIC00NzMsNiArNDc4LDkgQEAgc3RhdGljIGludCBjbWRxX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBpcnFcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CisKKwljbWRxLT50aHJlYWRfbnIgPSAodTMyKSh1bnNpZ25lZCBsb25nKW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOworCWNtZHEtPmlycV9tYXNrID0gR0VOTUFTSyhjbWRxLT50aHJlYWRfbnIgLSAxLCAwKTsKIAllcnIgPSBkZXZtX3JlcXVlc3RfaXJxKGRldiwgY21kcS0+aXJxLCBjbWRxX2lycV9oYW5kbGVyLCBJUlFGX1NIQVJFRCwKIAkJCSAgICAgICAibXRrX2NtZHEiLCBjbWRxKTsKIAlpZiAoZXJyIDwgMCkgewpAQCAtNDg5LDcgKzQ5Nyw2IEBAIHN0YXRpYyBpbnQgY21kcV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gUFRSX0VSUihjbWRxLT5jbG9jayk7CiAJfQogCi0JY21kcS0+dGhyZWFkX25yID0gKHUzMikodW5zaWduZWQgbG9uZylvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTsKIAljbWRxLT5tYm94LmRldiA9IGRldjsKIAljbWRxLT5tYm94LmNoYW5zID0gZGV2bV9rY2FsbG9jKGRldiwgY21kcS0+dGhyZWFkX25yLAogCQkJCQlzaXplb2YoKmNtZHEtPm1ib3guY2hhbnMpLCBHRlBfS0VSTkVMKTsKQEAgLTUzNyw2ICs1NDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgY21kcV9wbV9vcHMgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGNtZHFfb2ZfaWRzW10gPSB7CiAJey5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1nY2UiLCAuZGF0YSA9ICh2b2lkICopMTZ9LAorCXsuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxODMtZ2NlIiwgLmRhdGEgPSAodm9pZCAqKTI0fSwKIAl7fQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWlsYm94L3Fjb20tYXBjcy1pcGMtbWFpbGJveC5jIGIvZHJpdmVycy9tYWlsYm94L3Fjb20tYXBjcy1pcGMtbWFpbGJveC5jCmluZGV4IDcwNWUxN2EuLmVlZWJhZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWFpbGJveC9xY29tLWFwY3MtaXBjLW1haWxib3guYworKysgYi9kcml2ZXJzL21haWxib3gvcWNvbS1hcGNzLWlwYy1tYWlsYm94LmMKQEAgLTI4LDcgKzI4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGFwY3NfcmVnbWFwX2NvbmZpZyA9IHsKIAkucmVnX2JpdHMgPSAzMiwKIAkucmVnX3N0cmlkZSA9IDQsCiAJLnZhbF9iaXRzID0gMzIsCi0JLm1heF9yZWdpc3RlciA9IDB4MTAwMCwKKwkubWF4X3JlZ2lzdGVyID0gMHhGRkMsCiAJLmZhc3RfaW8gPSB0cnVlLAogfTsKIApAQCAtNDcsNyArNDcsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1ib3hfY2hhbl9vcHMgcWNvbV9hcGNzX2lwY19vcHMgPSB7CiAKIHN0YXRpYyBpbnQgcWNvbV9hcGNzX2lwY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewotCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBwZGV2LT5kZXYub2Zfbm9kZTsKIAlzdHJ1Y3QgcWNvbV9hcGNzX2lwYyAqYXBjczsKIAlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7CiAJc3RydWN0IHJlc291cmNlICpyZXM7CkBAIC01NSw2ICs1NCwxMSBAQCBzdGF0aWMgaW50IHFjb21fYXBjc19pcGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl2b2lkIF9faW9tZW0gKmJhc2U7CiAJdW5zaWduZWQgbG9uZyBpOwogCWludCByZXQ7CisJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhcGNzX2Nsa19tYXRjaF90YWJsZVtdID0geworCQl7IC5jb21wYXRpYmxlID0gInFjb20sbXNtODkxNi1hcGNzLWtwc3MtZ2xvYmFsIiwgfSwKKwkJeyAuY29tcGF0aWJsZSA9ICJxY29tLHFjczQwNC1hcGNzLWFwcHMtZ2xvYmFsIiwgfSwKKwkJe30KKwl9OwogCiAJYXBjcyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmFwY3MpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWFwY3MpCkBAIC04OSwxMCArOTMsMTEgQEAgc3RhdGljIGludCBxY29tX2FwY3NfaXBjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiByZXQ7CiAJfQogCi0JaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAicWNvbSxtc204OTE2LWFwY3Mta3Bzcy1nbG9iYWwiKSkgeworCWlmIChvZl9tYXRjaF9kZXZpY2UoYXBjc19jbGtfbWF0Y2hfdGFibGUsICZwZGV2LT5kZXYpKSB7CiAJCWFwY3MtPmNsayA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9kYXRhKCZwZGV2LT5kZXYsCiAJCQkJCQkJICAicWNvbS1hcGNzLW1zbTg5MTYtY2xrIiwKLQkJCQkJCQkgIC0xLCBOVUxMLCAwKTsKKwkJCQkJCQkgIFBMQVRGT1JNX0RFVklEX05PTkUsCisJCQkJCQkJICBOVUxMLCAwKTsKIAkJaWYgKElTX0VSUihhcGNzLT5jbGspKQogCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIEFQQ1MgY2xrXG4iKTsKIAl9CkBAIC0xMTgsNyArMTIzLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHFjb21fYXBjc19pcGNfb2ZfbWF0Y2hbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gInFjb20sbXNtODk5Ni1hcGNzLWhtc3MtZ2xvYmFsIiwgLmRhdGEgPSAodm9pZCAqKTE2IH0sCiAJeyAuY29tcGF0aWJsZSA9ICJxY29tLG1zbTg5OTgtYXBjcy1obXNzLWdsb2JhbCIsIC5kYXRhID0gKHZvaWQgKik4IH0sCiAJeyAuY29tcGF0aWJsZSA9ICJxY29tLHFjczQwNC1hcGNzLWFwcHMtZ2xvYmFsIiwgLmRhdGEgPSAodm9pZCAqKTggfSwKKwl7IC5jb21wYXRpYmxlID0gInFjb20sc2M3MTgwLWFwc3Mtc2hhcmVkIiwgLmRhdGEgPSAodm9pZCAqKTEyIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJxY29tLHNkbTg0NS1hcHNzLXNoYXJlZCIsIC5kYXRhID0gKHZvaWQgKikxMiB9LAorCXsgLmNvbXBhdGlibGUgPSAicWNvbSxzbTgxNTAtYXBzcy1zaGFyZWQiLCAuZGF0YSA9ICh2b2lkICopMTIgfSwKKwl7IC5jb21wYXRpYmxlID0gInFjb20saXBxODA3NC1hcGNzLWFwcHMtZ2xvYmFsIiwgLmRhdGEgPSAodm9pZCAqKTggfSwKIAl7fQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHFjb21fYXBjc19pcGNfb2ZfbWF0Y2gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9LY29uZmlnIGIvZHJpdmVycy9tZC9LY29uZmlnCmluZGV4IDM4MzQzMzIuLmFhOTg5NTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvS2NvbmZpZworKysgYi9kcml2ZXJzL21kL0tjb25maWcKQEAgLTI3MSw2ICsyNzEsNyBAQAogCWRlcGVuZHMgb24gQkxLX0RFVl9ETQogCXNlbGVjdCBDUllQVE8KIAlzZWxlY3QgQ1JZUFRPX0NCQworCXNlbGVjdCBDUllQVE9fRVNTSVYKIAktLS1oZWxwLS0tCiAJICBUaGlzIGRldmljZS1tYXBwZXIgdGFyZ2V0IGFsbG93cyB5b3UgdG8gY3JlYXRlIGEgZGV2aWNlIHRoYXQKIAkgIHRyYW5zcGFyZW50bHkgZW5jcnlwdHMgdGhlIGRhdGEgb24gaXQuIFlvdSdsbCBuZWVkIHRvIGFjdGl2YXRlCkBAIC0zNDYsNiArMzQ3LDIwIEBACiAgICAgICAgICBvdmVyIHRpbWUuICBVc2VmdWwgZm9yIG1haW50YWluaW5nIGNhY2hlIGNvaGVyZW5jeSB3aGVuIHVzaW5nCiAgICAgICAgICB2ZW5kb3Igc25hcHNob3RzLgogCitjb25maWcgRE1fQ0xPTkUKKyAgICAgICB0cmlzdGF0ZSAiQ2xvbmUgdGFyZ2V0IChFWFBFUklNRU5UQUwpIgorICAgICAgIGRlcGVuZHMgb24gQkxLX0RFVl9ETQorICAgICAgIGRlZmF1bHQgbgorICAgICAgIHNlbGVjdCBETV9QRVJTSVNURU5UX0RBVEEKKyAgICAgICAtLS1oZWxwLS0tCisgICAgICAgICBkbS1jbG9uZSBwcm9kdWNlcyBhIG9uZS10by1vbmUgY29weSBvZiBhbiBleGlzdGluZywgcmVhZC1vbmx5IHNvdXJjZQorICAgICAgICAgZGV2aWNlIGludG8gYSB3cml0YWJsZSBkZXN0aW5hdGlvbiBkZXZpY2UuIFRoZSBjbG9uZWQgZGV2aWNlIGlzCisgICAgICAgICB2aXNpYmxlL21vdW50YWJsZSBpbW1lZGlhdGVseSBhbmQgdGhlIGNvcHkgb2YgdGhlIHNvdXJjZSBkZXZpY2UgdG8gdGhlCisgICAgICAgICBkZXN0aW5hdGlvbiBkZXZpY2UgaGFwcGVucyBpbiB0aGUgYmFja2dyb3VuZCwgaW4gcGFyYWxsZWwgd2l0aCB1c2VyCisgICAgICAgICBJL08uCisKKyAgICAgICAgIElmIHVuc3VyZSwgc2F5IE4uCisKIGNvbmZpZyBETV9NSVJST1IKICAgICAgICB0cmlzdGF0ZSAiTWlycm9yIHRhcmdldCIKICAgICAgICBkZXBlbmRzIG9uIEJMS19ERVZfRE0KQEAgLTQ5MCw2ICs1MDUsMTggQEAKIAogCSAgSWYgdW5zdXJlLCBzYXkgTi4KIAorY29uZmlnIERNX1ZFUklUWV9WRVJJRllfUk9PVEhBU0hfU0lHCisJZGVmX2Jvb2wgbgorCWJvb2wgIlZlcml0eSBkYXRhIGRldmljZSByb290IGhhc2ggc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBzdXBwb3J0IgorCWRlcGVuZHMgb24gRE1fVkVSSVRZCisJc2VsZWN0IFNZU1RFTV9EQVRBX1ZFUklGSUNBVElPTgorCSAgaGVscAorCSAgQWRkIGFiaWxpdHkgZm9yIGRtLXZlcml0eSBkZXZpY2UgdG8gYmUgdmFsaWRhdGVkIGlmIHRoZQorCSAgcHJlLWdlbmVyYXRlZCB0cmVlIG9mIGNyeXB0b2dyYXBoaWMgY2hlY2tzdW1zIHBhc3NlZCBoYXMgYSBwa2NzIzcKKwkgIHNpZ25hdHVyZSBmaWxlIHRoYXQgY2FuIHZhbGlkYXRlIHRoZSByb290aGFzaCBvZiB0aGUgdHJlZS4KKworCSAgSWYgdW5zdXJlLCBzYXkgTi4KKwogY29uZmlnIERNX1ZFUklUWV9GRUMKIAlib29sICJWZXJpdHkgZm9yd2FyZCBlcnJvciBjb3JyZWN0aW9uIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBETV9WRVJJVFkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvTWFrZWZpbGUgYi9kcml2ZXJzL21kL01ha2VmaWxlCmluZGV4IGJlN2E2ZWIuLmQ5MWE3ZWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvbWQvTWFrZWZpbGUKQEAgLTE4LDYgKzE4LDcgQEAKIAkJICAgIGRtLWNhY2hlLWJhY2tncm91bmQtdHJhY2tlci5vCiBkbS1jYWNoZS1zbXEteSAgICs9IGRtLWNhY2hlLXBvbGljeS1zbXEubwogZG0tZXJhLXkJKz0gZG0tZXJhLXRhcmdldC5vCitkbS1jbG9uZS15CSs9IGRtLWNsb25lLXRhcmdldC5vIGRtLWNsb25lLW1ldGFkYXRhLm8KIGRtLXZlcml0eS15CSs9IGRtLXZlcml0eS10YXJnZXQubwogbWQtbW9kLXkJKz0gbWQubyBtZC1iaXRtYXAubwogcmFpZDQ1Ni15CSs9IHJhaWQ1Lm8gcmFpZDUtY2FjaGUubyByYWlkNS1wcGwubwpAQCAtNjUsNiArNjYsNyBAQAogb2JqLSQoQ09ORklHX0RNX0NBQ0hFKQkJKz0gZG0tY2FjaGUubwogb2JqLSQoQ09ORklHX0RNX0NBQ0hFX1NNUSkJKz0gZG0tY2FjaGUtc21xLm8KIG9iai0kKENPTkZJR19ETV9FUkEpCQkrPSBkbS1lcmEubworb2JqLSQoQ09ORklHX0RNX0NMT05FKQkJKz0gZG0tY2xvbmUubwogb2JqLSQoQ09ORklHX0RNX0xPR19XUklURVMpCSs9IGRtLWxvZy13cml0ZXMubwogb2JqLSQoQ09ORklHX0RNX0lOVEVHUklUWSkJKz0gZG0taW50ZWdyaXR5Lm8KIG9iai0kKENPTkZJR19ETV9aT05FRCkJCSs9IGRtLXpvbmVkLm8KQEAgLTgxLDMgKzgzLDcgQEAKIGlmZXEgKCQoQ09ORklHX0RNX1ZFUklUWV9GRUMpLHkpCiBkbS12ZXJpdHktb2JqcwkJCSs9IGRtLXZlcml0eS1mZWMubwogZW5kaWYKKworaWZlcSAoJChDT05GSUdfRE1fVkVSSVRZX1ZFUklGWV9ST09USEFTSF9TSUcpLHkpCitkbS12ZXJpdHktb2JqcwkJCSs9IGRtLXZlcml0eS12ZXJpZnktc2lnLm8KK2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLWJ1ZmlvLmMgYi9kcml2ZXJzL21kL2RtLWJ1ZmlvLmMKaW5kZXggMmE0OGVhMy4uMmQ1MTljMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9kbS1idWZpby5jCisrKyBiL2RyaXZlcnMvbWQvZG0tYnVmaW8uYwpAQCAtMzMsNyArMzMsOCBAQAogCiAjZGVmaW5lIERNX0JVRklPX01FTU9SWV9QRVJDRU5UCQkyCiAjZGVmaW5lIERNX0JVRklPX1ZNQUxMT0NfUEVSQ0VOVAkyNQotI2RlZmluZSBETV9CVUZJT19XUklURUJBQ0tfUEVSQ0VOVAk3NQorI2RlZmluZSBETV9CVUZJT19XUklURUJBQ0tfUkFUSU8JMworI2RlZmluZSBETV9CVUZJT19MT1dfV0FURVJNQVJLX1JBVElPCTE2CiAKIC8qCiAgKiBDaGVjayBidWZmZXIgYWdlcyBpbiB0aGlzIGludGVydmFsIChzZWNvbmRzKQpAQCAtMTMyLDEyICsxMzMsMTQgQEAgZW51bSBkYXRhX21vZGUgewogc3RydWN0IGRtX2J1ZmZlciB7CiAJc3RydWN0IHJiX25vZGUgbm9kZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxydV9saXN0OworCXN0cnVjdCBsaXN0X2hlYWQgZ2xvYmFsX2xpc3Q7CiAJc2VjdG9yX3QgYmxvY2s7CiAJdm9pZCAqZGF0YTsKIAl1bnNpZ25lZCBjaGFyIGRhdGFfbW9kZTsJCS8qIERBVEFfTU9ERV8qICovCiAJdW5zaWduZWQgY2hhciBsaXN0X21vZGU7CQkvKiBMSVNUXyogKi8KIAlibGtfc3RhdHVzX3QgcmVhZF9lcnJvcjsKIAlibGtfc3RhdHVzX3Qgd3JpdGVfZXJyb3I7CisJdW5zaWduZWQgYWNjZXNzZWQ7CiAJdW5zaWduZWQgaG9sZF9jb3VudDsKIAl1bnNpZ25lZCBsb25nIHN0YXRlOwogCXVuc2lnbmVkIGxvbmcgbGFzdF9hY2Nlc3NlZDsKQEAgLTE5Miw3ICsxOTUsMTEgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgZG1fYnVmaW9fY2FjaGVfc2l6ZTsKICAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcgZG1fYnVmaW9fY2FjaGVfc2l6ZV9sYXRjaDsKIAotc3RhdGljIERFRklORV9TUElOTE9DSyhwYXJhbV9zcGlubG9jayk7CitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGdsb2JhbF9zcGlubG9jayk7CisKK3N0YXRpYyBMSVNUX0hFQUQoZ2xvYmFsX3F1ZXVlKTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2xvYmFsX251bSA9IDA7CiAKIC8qCiAgKiBCdWZmZXJzIGFyZSBmcmVlZCBhZnRlciB0aGlzIHRpbWVvdXQKQEAgLTIwOSwxMSArMjE2LDYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgZG1fYnVmaW9fY3VycmVudF9hbGxvY2F0ZWQ7CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAvKgotICogUGVyLWNsaWVudCBjYWNoZTogZG1fYnVmaW9fY2FjaGVfc2l6ZSAvIGRtX2J1ZmlvX2NsaWVudF9jb3VudAotICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBkbV9idWZpb19jYWNoZV9zaXplX3Blcl9jbGllbnQ7Ci0KLS8qCiAgKiBUaGUgY3VycmVudCBudW1iZXIgb2YgY2xpZW50cy4KICAqLwogc3RhdGljIGludCBkbV9idWZpb19jbGllbnRfY291bnQ7CkBAIC0yMjQsMTEgKzIyNiwxNSBAQCBzdGF0aWMgaW50IGRtX2J1ZmlvX2NsaWVudF9jb3VudDsKIHN0YXRpYyBMSVNUX0hFQUQoZG1fYnVmaW9fYWxsX2NsaWVudHMpOwogCiAvKgotICogVGhpcyBtdXRleCBwcm90ZWN0cyBkbV9idWZpb19jYWNoZV9zaXplX2xhdGNoLAotICogZG1fYnVmaW9fY2FjaGVfc2l6ZV9wZXJfY2xpZW50IGFuZCBkbV9idWZpb19jbGllbnRfY291bnQKKyAqIFRoaXMgbXV0ZXggcHJvdGVjdHMgZG1fYnVmaW9fY2FjaGVfc2l6ZV9sYXRjaCBhbmQgZG1fYnVmaW9fY2xpZW50X2NvdW50CiAgKi8KIHN0YXRpYyBERUZJTkVfTVVURVgoZG1fYnVmaW9fY2xpZW50c19sb2NrKTsKIAorc3RhdGljIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpkbV9idWZpb193cTsKK3N0YXRpYyBzdHJ1Y3QgZGVsYXllZF93b3JrIGRtX2J1ZmlvX2NsZWFudXBfb2xkX3dvcms7CitzdGF0aWMgc3RydWN0IHdvcmtfc3RydWN0IGRtX2J1ZmlvX3JlcGxhY2VtZW50X3dvcms7CisKKwogI2lmZGVmIENPTkZJR19ETV9ERUJVR19CTE9DS19TVEFDS19UUkFDSU5HCiBzdGF0aWMgdm9pZCBidWZmZXJfcmVjb3JkX3N0YWNrKHN0cnVjdCBkbV9idWZmZXIgKmIpCiB7CkBAIC0yODUsMTUgKzI5MSwyMyBAQCBzdGF0aWMgdm9pZCBfX3JlbW92ZShzdHJ1Y3QgZG1fYnVmaW9fY2xpZW50ICpjLCBzdHJ1Y3QgZG1fYnVmZmVyICpiKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1zdGF0aWMgdm9pZCBhZGp1c3RfdG90YWxfYWxsb2NhdGVkKHVuc2lnbmVkIGNoYXIgZGF0YV9tb2RlLCBsb25nIGRpZmYpCitzdGF0aWMgdm9pZCBhZGp1c3RfdG90YWxfYWxsb2NhdGVkKHN0cnVjdCBkbV9idWZmZXIgKmIsIGJvb2wgdW5saW5rKQogeworCXVuc2lnbmVkIGNoYXIgZGF0YV9tb2RlOworCWxvbmcgZGlmZjsKKwogCXN0YXRpYyB1bnNpZ25lZCBsb25nICogY29uc3QgY2xhc3NfcHRyW0RBVEFfTU9ERV9MSU1JVF0gPSB7CiAJCSZkbV9idWZpb19hbGxvY2F0ZWRfa21lbV9jYWNoZSwKIAkJJmRtX2J1ZmlvX2FsbG9jYXRlZF9nZXRfZnJlZV9wYWdlcywKIAkJJmRtX2J1ZmlvX2FsbG9jYXRlZF92bWFsbG9jLAogCX07CiAKLQlzcGluX2xvY2soJnBhcmFtX3NwaW5sb2NrKTsKKwlkYXRhX21vZGUgPSBiLT5kYXRhX21vZGU7CisJZGlmZiA9IChsb25nKWItPmMtPmJsb2NrX3NpemU7CisJaWYgKHVubGluaykKKwkJZGlmZiA9IC1kaWZmOworCisJc3Bpbl9sb2NrKCZnbG9iYWxfc3BpbmxvY2spOwogCiAJKmNsYXNzX3B0cltkYXRhX21vZGVdICs9IGRpZmY7CiAKQEAgLTMwMiw3ICszMTYsMTkgQEAgc3RhdGljIHZvaWQgYWRqdXN0X3RvdGFsX2FsbG9jYXRlZCh1bnNpZ25lZCBjaGFyIGRhdGFfbW9kZSwgbG9uZyBkaWZmKQogCWlmIChkbV9idWZpb19jdXJyZW50X2FsbG9jYXRlZCA+IGRtX2J1ZmlvX3BlYWtfYWxsb2NhdGVkKQogCQlkbV9idWZpb19wZWFrX2FsbG9jYXRlZCA9IGRtX2J1ZmlvX2N1cnJlbnRfYWxsb2NhdGVkOwogCi0Jc3Bpbl91bmxvY2soJnBhcmFtX3NwaW5sb2NrKTsKKwliLT5hY2Nlc3NlZCA9IDE7CisKKwlpZiAoIXVubGluaykgeworCQlsaXN0X2FkZCgmYi0+Z2xvYmFsX2xpc3QsICZnbG9iYWxfcXVldWUpOworCQlnbG9iYWxfbnVtKys7CisJCWlmIChkbV9idWZpb19jdXJyZW50X2FsbG9jYXRlZCA+IGRtX2J1ZmlvX2NhY2hlX3NpemUpCisJCQlxdWV1ZV93b3JrKGRtX2J1ZmlvX3dxLCAmZG1fYnVmaW9fcmVwbGFjZW1lbnRfd29yayk7CisJfSBlbHNlIHsKKwkJbGlzdF9kZWwoJmItPmdsb2JhbF9saXN0KTsKKwkJZ2xvYmFsX251bS0tOworCX0KKworCXNwaW5fdW5sb2NrKCZnbG9iYWxfc3BpbmxvY2spOwogfQogCiAvKgpAQCAtMzIzLDkgKzM0OSw2IEBAIHN0YXRpYyB2b2lkIF9fY2FjaGVfc2l6ZV9yZWZyZXNoKHZvaWQpCiAJCQkgICAgICBkbV9idWZpb19kZWZhdWx0X2NhY2hlX3NpemUpOwogCQlkbV9idWZpb19jYWNoZV9zaXplX2xhdGNoID0gZG1fYnVmaW9fZGVmYXVsdF9jYWNoZV9zaXplOwogCX0KLQotCWRtX2J1ZmlvX2NhY2hlX3NpemVfcGVyX2NsaWVudCA9IGRtX2J1ZmlvX2NhY2hlX3NpemVfbGF0Y2ggLwotCQkJCQkgKGRtX2J1ZmlvX2NsaWVudF9jb3VudCA/IDogMSk7CiB9CiAKIC8qCkBAIC00MzEsOCArNDU0LDYgQEAgc3RhdGljIHN0cnVjdCBkbV9idWZmZXIgKmFsbG9jX2J1ZmZlcihzdHJ1Y3QgZG1fYnVmaW9fY2xpZW50ICpjLCBnZnBfdCBnZnBfbWFzaykKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JYWRqdXN0X3RvdGFsX2FsbG9jYXRlZChiLT5kYXRhX21vZGUsIChsb25nKWMtPmJsb2NrX3NpemUpOwotCiAjaWZkZWYgQ09ORklHX0RNX0RFQlVHX0JMT0NLX1NUQUNLX1RSQUNJTkcKIAliLT5zdGFja19sZW4gPSAwOwogI2VuZGlmCkBAIC00NDYsOCArNDY3LDYgQEAgc3RhdGljIHZvaWQgZnJlZV9idWZmZXIoc3RydWN0IGRtX2J1ZmZlciAqYikKIHsKIAlzdHJ1Y3QgZG1fYnVmaW9fY2xpZW50ICpjID0gYi0+YzsKIAotCWFkanVzdF90b3RhbF9hbGxvY2F0ZWQoYi0+ZGF0YV9tb2RlLCAtKGxvbmcpYy0+YmxvY2tfc2l6ZSk7Ci0KIAlmcmVlX2J1ZmZlcl9kYXRhKGMsIGItPmRhdGEsIGItPmRhdGFfbW9kZSk7CiAJa21lbV9jYWNoZV9mcmVlKGMtPnNsYWJfYnVmZmVyLCBiKTsKIH0KQEAgLTQ2NSw2ICs0ODQsOCBAQCBzdGF0aWMgdm9pZCBfX2xpbmtfYnVmZmVyKHN0cnVjdCBkbV9idWZmZXIgKmIsIHNlY3Rvcl90IGJsb2NrLCBpbnQgZGlydHkpCiAJbGlzdF9hZGQoJmItPmxydV9saXN0LCAmYy0+bHJ1W2RpcnR5XSk7CiAJX19pbnNlcnQoYi0+YywgYik7CiAJYi0+bGFzdF9hY2Nlc3NlZCA9IGppZmZpZXM7CisKKwlhZGp1c3RfdG90YWxfYWxsb2NhdGVkKGIsIGZhbHNlKTsKIH0KIAogLyoKQEAgLTQ3OSw2ICs1MDAsOCBAQCBzdGF0aWMgdm9pZCBfX3VubGlua19idWZmZXIoc3RydWN0IGRtX2J1ZmZlciAqYikKIAljLT5uX2J1ZmZlcnNbYi0+bGlzdF9tb2RlXS0tOwogCV9fcmVtb3ZlKGItPmMsIGIpOwogCWxpc3RfZGVsKCZiLT5scnVfbGlzdCk7CisKKwlhZGp1c3RfdG90YWxfYWxsb2NhdGVkKGIsIHRydWUpOwogfQogCiAvKgpAQCAtNDg4LDYgKzUxMSw4IEBAIHN0YXRpYyB2b2lkIF9fcmVsaW5rX2xydShzdHJ1Y3QgZG1fYnVmZmVyICpiLCBpbnQgZGlydHkpCiB7CiAJc3RydWN0IGRtX2J1ZmlvX2NsaWVudCAqYyA9IGItPmM7CiAKKwliLT5hY2Nlc3NlZCA9IDE7CisKIAlCVUdfT04oIWMtPm5fYnVmZmVyc1tiLT5saXN0X21vZGVdKTsKIAogCWMtPm5fYnVmZmVyc1tiLT5saXN0X21vZGVdLS07CkBAIC05MDcsMzYgKzkzMiw2IEBAIHN0YXRpYyB2b2lkIF9fd3JpdGVfZGlydHlfYnVmZmVyc19hc3luYyhzdHJ1Y3QgZG1fYnVmaW9fY2xpZW50ICpjLCBpbnQgbm9fd2FpdCwKIH0KIAogLyoKLSAqIEdldCB3cml0ZWJhY2sgdGhyZXNob2xkIGFuZCBidWZmZXIgbGltaXQgZm9yIGEgZ2l2ZW4gY2xpZW50LgotICovCi1zdGF0aWMgdm9pZCBfX2dldF9tZW1vcnlfbGltaXQoc3RydWN0IGRtX2J1ZmlvX2NsaWVudCAqYywKLQkJCSAgICAgICB1bnNpZ25lZCBsb25nICp0aHJlc2hvbGRfYnVmZmVycywKLQkJCSAgICAgICB1bnNpZ25lZCBsb25nICpsaW1pdF9idWZmZXJzKQotewotCXVuc2lnbmVkIGxvbmcgYnVmZmVyczsKLQotCWlmICh1bmxpa2VseShSRUFEX09OQ0UoZG1fYnVmaW9fY2FjaGVfc2l6ZSkgIT0gZG1fYnVmaW9fY2FjaGVfc2l6ZV9sYXRjaCkpIHsKLQkJaWYgKG11dGV4X3RyeWxvY2soJmRtX2J1ZmlvX2NsaWVudHNfbG9jaykpIHsKLQkJCV9fY2FjaGVfc2l6ZV9yZWZyZXNoKCk7Ci0JCQltdXRleF91bmxvY2soJmRtX2J1ZmlvX2NsaWVudHNfbG9jayk7Ci0JCX0KLQl9Ci0KLQlidWZmZXJzID0gZG1fYnVmaW9fY2FjaGVfc2l6ZV9wZXJfY2xpZW50OwotCWlmIChsaWtlbHkoYy0+c2VjdG9yc19wZXJfYmxvY2tfYml0cyA+PSAwKSkKLQkJYnVmZmVycyA+Pj0gYy0+c2VjdG9yc19wZXJfYmxvY2tfYml0cyArIFNFQ1RPUl9TSElGVDsKLQllbHNlCi0JCWJ1ZmZlcnMgLz0gYy0+YmxvY2tfc2l6ZTsKLQotCWlmIChidWZmZXJzIDwgYy0+bWluaW11bV9idWZmZXJzKQotCQlidWZmZXJzID0gYy0+bWluaW11bV9idWZmZXJzOwotCi0JKmxpbWl0X2J1ZmZlcnMgPSBidWZmZXJzOwotCSp0aHJlc2hvbGRfYnVmZmVycyA9IG11bHRfZnJhYyhidWZmZXJzLAotCQkJCSAgICAgICBETV9CVUZJT19XUklURUJBQ0tfUEVSQ0VOVCwgMTAwKTsKLX0KLQotLyoKICAqIENoZWNrIGlmIHdlJ3JlIG92ZXIgd2F0ZXJtYXJrLgogICogSWYgd2UgYXJlIG92ZXIgdGhyZXNob2xkX2J1ZmZlcnMsIHN0YXJ0IGZyZWVpbmcgYnVmZmVycy4KICAqIElmIHdlJ3JlIG92ZXIgImxpbWl0X2J1ZmZlcnMiLCBibG9jayB1bnRpbCB3ZSBnZXQgdW5kZXIgdGhlIGxpbWl0LgpAQCAtOTQ0LDIzICs5MzksNyBAQCBzdGF0aWMgdm9pZCBfX2dldF9tZW1vcnlfbGltaXQoc3RydWN0IGRtX2J1ZmlvX2NsaWVudCAqYywKIHN0YXRpYyB2b2lkIF9fY2hlY2tfd2F0ZXJtYXJrKHN0cnVjdCBkbV9idWZpb19jbGllbnQgKmMsCiAJCQkgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICp3cml0ZV9saXN0KQogewotCXVuc2lnbmVkIGxvbmcgdGhyZXNob2xkX2J1ZmZlcnMsIGxpbWl0X2J1ZmZlcnM7Ci0KLQlfX2dldF9tZW1vcnlfbGltaXQoYywgJnRocmVzaG9sZF9idWZmZXJzLCAmbGltaXRfYnVmZmVycyk7Ci0KLQl3aGlsZSAoYy0+bl9idWZmZXJzW0xJU1RfQ0xFQU5dICsgYy0+bl9idWZmZXJzW0xJU1RfRElSVFldID4KLQkgICAgICAgbGltaXRfYnVmZmVycykgewotCi0JCXN0cnVjdCBkbV9idWZmZXIgKmIgPSBfX2dldF91bmNsYWltZWRfYnVmZmVyKGMpOwotCi0JCWlmICghYikKLQkJCXJldHVybjsKLQotCQlfX2ZyZWVfYnVmZmVyX3dha2UoYik7Ci0JCWNvbmRfcmVzY2hlZCgpOwotCX0KLQotCWlmIChjLT5uX2J1ZmZlcnNbTElTVF9ESVJUWV0gPiB0aHJlc2hvbGRfYnVmZmVycykKKwlpZiAoYy0+bl9idWZmZXJzW0xJU1RfRElSVFldID4gYy0+bl9idWZmZXJzW0xJU1RfQ0xFQU5dICogRE1fQlVGSU9fV1JJVEVCQUNLX1JBVElPKQogCQlfX3dyaXRlX2RpcnR5X2J1ZmZlcnNfYXN5bmMoYywgMSwgd3JpdGVfbGlzdCk7CiB9CiAKQEAgLTE4NDEsNiArMTgyMCw3NCBAQCBzdGF0aWMgdm9pZCBfX2V2aWN0X29sZF9idWZmZXJzKHN0cnVjdCBkbV9idWZpb19jbGllbnQgKmMsIHVuc2lnbmVkIGxvbmcgYWdlX2h6KQogCWRtX2J1ZmlvX3VubG9jayhjKTsKIH0KIAorc3RhdGljIHZvaWQgZG9fZ2xvYmFsX2NsZWFudXAoc3RydWN0IHdvcmtfc3RydWN0ICp3KQoreworCXN0cnVjdCBkbV9idWZpb19jbGllbnQgKmxvY2tlZF9jbGllbnQgPSBOVUxMOworCXN0cnVjdCBkbV9idWZpb19jbGllbnQgKmN1cnJlbnRfY2xpZW50OworCXN0cnVjdCBkbV9idWZmZXIgKmI7CisJdW5zaWduZWQgc3BpbmxvY2tfaG9sZF9jb3VudDsKKwl1bnNpZ25lZCBsb25nIHRocmVzaG9sZCA9IGRtX2J1ZmlvX2NhY2hlX3NpemUgLQorCQlkbV9idWZpb19jYWNoZV9zaXplIC8gRE1fQlVGSU9fTE9XX1dBVEVSTUFSS19SQVRJTzsKKwl1bnNpZ25lZCBsb25nIGxvb3BzID0gZ2xvYmFsX251bSAqIDI7CisKKwltdXRleF9sb2NrKCZkbV9idWZpb19jbGllbnRzX2xvY2spOworCisJd2hpbGUgKDEpIHsKKwkJY29uZF9yZXNjaGVkKCk7CisKKwkJc3Bpbl9sb2NrKCZnbG9iYWxfc3BpbmxvY2spOworCQlpZiAodW5saWtlbHkoZG1fYnVmaW9fY3VycmVudF9hbGxvY2F0ZWQgPD0gdGhyZXNob2xkKSkKKwkJCWJyZWFrOworCisJCXNwaW5sb2NrX2hvbGRfY291bnQgPSAwOworZ2V0X25leHQ6CisJCWlmICghbG9vcHMtLSkKKwkJCWJyZWFrOworCQlpZiAodW5saWtlbHkobGlzdF9lbXB0eSgmZ2xvYmFsX3F1ZXVlKSkpCisJCQlicmVhazsKKwkJYiA9IGxpc3RfZW50cnkoZ2xvYmFsX3F1ZXVlLnByZXYsIHN0cnVjdCBkbV9idWZmZXIsIGdsb2JhbF9saXN0KTsKKworCQlpZiAoYi0+YWNjZXNzZWQpIHsKKwkJCWItPmFjY2Vzc2VkID0gMDsKKwkJCWxpc3RfbW92ZSgmYi0+Z2xvYmFsX2xpc3QsICZnbG9iYWxfcXVldWUpOworCQkJaWYgKGxpa2VseSgrK3NwaW5sb2NrX2hvbGRfY291bnQgPCAxNikpCisJCQkJZ290byBnZXRfbmV4dDsKKwkJCXNwaW5fdW5sb2NrKCZnbG9iYWxfc3BpbmxvY2spOworCQkJY29udGludWU7CisJCX0KKworCQljdXJyZW50X2NsaWVudCA9IGItPmM7CisJCWlmICh1bmxpa2VseShjdXJyZW50X2NsaWVudCAhPSBsb2NrZWRfY2xpZW50KSkgeworCQkJaWYgKGxvY2tlZF9jbGllbnQpCisJCQkJZG1fYnVmaW9fdW5sb2NrKGxvY2tlZF9jbGllbnQpOworCisJCQlpZiAoIWRtX2J1ZmlvX3RyeWxvY2soY3VycmVudF9jbGllbnQpKSB7CisJCQkJc3Bpbl91bmxvY2soJmdsb2JhbF9zcGlubG9jayk7CisJCQkJZG1fYnVmaW9fbG9jayhjdXJyZW50X2NsaWVudCk7CisJCQkJbG9ja2VkX2NsaWVudCA9IGN1cnJlbnRfY2xpZW50OworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQlsb2NrZWRfY2xpZW50ID0gY3VycmVudF9jbGllbnQ7CisJCX0KKworCQlzcGluX3VubG9jaygmZ2xvYmFsX3NwaW5sb2NrKTsKKworCQlpZiAodW5saWtlbHkoIV9fdHJ5X2V2aWN0X2J1ZmZlcihiLCBHRlBfS0VSTkVMKSkpIHsKKwkJCXNwaW5fbG9jaygmZ2xvYmFsX3NwaW5sb2NrKTsKKwkJCWxpc3RfbW92ZSgmYi0+Z2xvYmFsX2xpc3QsICZnbG9iYWxfcXVldWUpOworCQkJc3Bpbl91bmxvY2soJmdsb2JhbF9zcGlubG9jayk7CisJCX0KKwl9CisKKwlzcGluX3VubG9jaygmZ2xvYmFsX3NwaW5sb2NrKTsKKworCWlmIChsb2NrZWRfY2xpZW50KQorCQlkbV9idWZpb191bmxvY2sobG9ja2VkX2NsaWVudCk7CisKKwltdXRleF91bmxvY2soJmRtX2J1ZmlvX2NsaWVudHNfbG9jayk7Cit9CisKIHN0YXRpYyB2b2lkIGNsZWFudXBfb2xkX2J1ZmZlcnModm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIG1heF9hZ2VfaHogPSBnZXRfbWF4X2FnZV9oeigpOwpAQCAtMTg1NiwxNCArMTkwMywxMSBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwX29sZF9idWZmZXJzKHZvaWQpCiAJbXV0ZXhfdW5sb2NrKCZkbV9idWZpb19jbGllbnRzX2xvY2spOwogfQogCi1zdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmRtX2J1ZmlvX3dxOwotc3RhdGljIHN0cnVjdCBkZWxheWVkX3dvcmsgZG1fYnVmaW9fd29yazsKLQogc3RhdGljIHZvaWQgd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpCiB7CiAJY2xlYW51cF9vbGRfYnVmZmVycygpOwogCi0JcXVldWVfZGVsYXllZF93b3JrKGRtX2J1ZmlvX3dxLCAmZG1fYnVmaW9fd29yaywKKwlxdWV1ZV9kZWxheWVkX3dvcmsoZG1fYnVmaW9fd3EsICZkbV9idWZpb19jbGVhbnVwX29sZF93b3JrLAogCQkJICAgRE1fQlVGSU9fV09SS19USU1FUl9TRUNTICogSFopOwogfQogCkBAIC0xOTA1LDggKzE5NDksOSBAQCBzdGF0aWMgaW50IF9faW5pdCBkbV9idWZpb19pbml0KHZvaWQpCiAJaWYgKCFkbV9idWZpb193cSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlJTklUX0RFTEFZRURfV09SSygmZG1fYnVmaW9fd29yaywgd29ya19mbik7Ci0JcXVldWVfZGVsYXllZF93b3JrKGRtX2J1ZmlvX3dxLCAmZG1fYnVmaW9fd29yaywKKwlJTklUX0RFTEFZRURfV09SSygmZG1fYnVmaW9fY2xlYW51cF9vbGRfd29yaywgd29ya19mbik7CisJSU5JVF9XT1JLKCZkbV9idWZpb19yZXBsYWNlbWVudF93b3JrLCBkb19nbG9iYWxfY2xlYW51cCk7CisJcXVldWVfZGVsYXllZF93b3JrKGRtX2J1ZmlvX3dxLCAmZG1fYnVmaW9fY2xlYW51cF9vbGRfd29yaywKIAkJCSAgIERNX0JVRklPX1dPUktfVElNRVJfU0VDUyAqIEhaKTsKIAogCXJldHVybiAwOwpAQCAtMTkxOSw3ICsxOTY0LDggQEAgc3RhdGljIHZvaWQgX19leGl0IGRtX2J1ZmlvX2V4aXQodm9pZCkKIHsKIAlpbnQgYnVnID0gMDsKIAotCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZG1fYnVmaW9fd29yayk7CisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkbV9idWZpb19jbGVhbnVwX29sZF93b3JrKTsKKwlmbHVzaF93b3JrcXVldWUoZG1fYnVmaW9fd3EpOwogCWRlc3Ryb3lfd29ya3F1ZXVlKGRtX2J1ZmlvX3dxKTsKIAogCWlmIChkbV9idWZpb19jbGllbnRfY291bnQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tY2xvbmUtbWV0YWRhdGEuYyBiL2RyaXZlcnMvbWQvZG0tY2xvbmUtbWV0YWRhdGEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmM4YzFkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZC9kbS1jbG9uZS1tZXRhZGF0YS5jCkBAIC0wLDAgKzEsOTY0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFycmlrdG8sIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvcndzZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UtbWFwcGVyLmg+CisKKyNpbmNsdWRlICJwZXJzaXN0ZW50LWRhdGEvZG0tYml0c2V0LmgiCisjaW5jbHVkZSAicGVyc2lzdGVudC1kYXRhL2RtLXNwYWNlLW1hcC5oIgorI2luY2x1ZGUgInBlcnNpc3RlbnQtZGF0YS9kbS1ibG9jay1tYW5hZ2VyLmgiCisjaW5jbHVkZSAicGVyc2lzdGVudC1kYXRhL2RtLXRyYW5zYWN0aW9uLW1hbmFnZXIuaCIKKworI2luY2x1ZGUgImRtLWNsb25lLW1ldGFkYXRhLmgiCisKKyNkZWZpbmUgRE1fTVNHX1BSRUZJWCAiY2xvbmUgbWV0YWRhdGEiCisKKyNkZWZpbmUgU1VQRVJCTE9DS19MT0NBVElPTiAwCisjZGVmaW5lIFNVUEVSQkxPQ0tfTUFHSUMgMHg4YWYyN2Y2NAorI2RlZmluZSBTVVBFUkJMT0NLX0NTVU1fWE9SIDI1NzY0OTQ5MgorCisjZGVmaW5lIERNX0NMT05FX01BWF9DT05DVVJSRU5UX0xPQ0tTIDUKKworI2RlZmluZSBVVUlEX0xFTiAxNgorCisvKiBNaW4gYW5kIG1heCBkbS1jbG9uZSBtZXRhZGF0YSB2ZXJzaW9ucyBzdXBwb3J0ZWQgKi8KKyNkZWZpbmUgRE1fQ0xPTkVfTUlOX01FVEFEQVRBX1ZFUlNJT04gMQorI2RlZmluZSBETV9DTE9ORV9NQVhfTUVUQURBVEFfVkVSU0lPTiAxCisKKy8qCisgKiBPbi1kaXNrIG1ldGFkYXRhIGxheW91dAorICovCitzdHJ1Y3Qgc3VwZXJibG9ja19kaXNrIHsKKwlfX2xlMzIgY3N1bTsKKwlfX2xlMzIgZmxhZ3M7CisJX19sZTY0IGJsb2NrbnI7CisKKwlfX3U4IHV1aWRbVVVJRF9MRU5dOworCV9fbGU2NCBtYWdpYzsKKwlfX2xlMzIgdmVyc2lvbjsKKworCV9fdTggbWV0YWRhdGFfc3BhY2VfbWFwX3Jvb3RbU1BBQ0VfTUFQX1JPT1RfU0laRV07CisKKwlfX2xlNjQgcmVnaW9uX3NpemU7CisJX19sZTY0IHRhcmdldF9zaXplOworCisJX19sZTY0IGJpdHNldF9yb290OworfSBfX3BhY2tlZDsKKworLyoKKyAqIFJlZ2lvbiBhbmQgRGlydHkgYml0bWFwcy4KKyAqCisgKiBkbS1jbG9uZSBsb2dpY2FsbHkgc3BsaXRzIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRldmljZXMgaW4gcmVnaW9ucyBvZgorICogZml4ZWQgc2l6ZS4gVGhlIGRlc3RpbmF0aW9uIGRldmljZSdzIHJlZ2lvbnMgYXJlIGdyYWR1YWxseSBoeWRyYXRlZCwgaS5lLiwKKyAqIHdlIGNvcHkgKGNsb25lKSB0aGUgc291cmNlJ3MgcmVnaW9ucyB0byB0aGUgZGVzdGluYXRpb24gZGV2aWNlLiBFdmVudHVhbGx5LAorICogYWxsIHJlZ2lvbnMgd2lsbCBnZXQgaHlkcmF0ZWQgYW5kIGFsbCBJL08gd2lsbCBiZSBzZXJ2ZWQgZnJvbSB0aGUKKyAqIGRlc3RpbmF0aW9uIGRldmljZS4KKyAqCisgKiBXZSBtYWludGFpbiBhbiBvbi1kaXNrIGJpdG1hcCB3aGljaCB0cmFja3MgdGhlIHN0YXRlIG9mIGVhY2ggb2YgdGhlCisgKiBkZXN0aW5hdGlvbiBkZXZpY2UncyByZWdpb25zLCBpLmUuLCB3aGV0aGVyIHRoZXkgYXJlIGh5ZHJhdGVkIG9yIG5vdC4KKyAqCisgKiBUbyBzYXZlIGNvbnN0YW50bHkgZG9pbmcgbG9vayB1cHMgb24gZGlzayB3ZSBrZWVwIGFuIGluIGNvcmUgY29weSBvZiB0aGUKKyAqIG9uLWRpc2sgYml0bWFwLCB0aGUgcmVnaW9uX21hcC4KKyAqCisgKiBUbyBmdXJ0aGVyIHJlZHVjZSBtZXRhZGF0YSBJL08gb3ZlcmhlYWQgd2UgdXNlIGEgc2Vjb25kIGJpdG1hcCwgdGhlIGRtYXAKKyAqIChkaXJ0eSBiaXRtYXApLCB3aGljaCB0cmFja3MgdGhlIGRpcnR5IHdvcmRzLCBpLmUuIGxvbmdzLCBvZiB0aGUgcmVnaW9uX21hcC4KKyAqCisgKiBXaGVuIGEgcmVnaW9uIGZpbmlzaGVzIGh5ZHJhdGluZyBkbS1jbG9uZSBjYWxscworICogZG1fY2xvbmVfc2V0X3JlZ2lvbl9oeWRyYXRlZCgpLCBvciBmb3IgZGlzY2FyZCByZXF1ZXN0cworICogZG1fY2xvbmVfY29uZF9zZXRfcmFuZ2UoKSwgd2hpY2ggc2V0cyB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHJlZ2lvbl9tYXAKKyAqIGFuZCBkbWFwLgorICoKKyAqIER1cmluZyBhIG1ldGFkYXRhIGNvbW1pdCB3ZSBzY2FuIHRoZSBkbWFwIGZvciBkaXJ0eSByZWdpb25fbWFwIHdvcmRzIChsb25ncykKKyAqIGFuZCB1cGRhdGUgYWNjb3JkaW5nbHkgdGhlIG9uLWRpc2sgbWV0YWRhdGEuIFRodXMsIHdlIGRvbid0IGhhdmUgdG8gZmx1c2ggdG8KKyAqIGRpc2sgdGhlIHdob2xlIHJlZ2lvbl9tYXAuIFdlIGNhbiBqdXN0IGZsdXNoIHRoZSBkaXJ0eSByZWdpb25fbWFwIHdvcmRzLgorICoKKyAqIFdlIHVzZSBhIGRpcnR5IGJpdG1hcCwgd2hpY2ggaXMgc21hbGxlciB0aGFuIHRoZSBvcmlnaW5hbCByZWdpb25fbWFwLCB0bworICogcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtb3J5IGFjY2Vzc2VzIGR1cmluZyBhIG1ldGFkYXRhIGNvbW1pdC4gQXMgZG0tYml0c2V0CisgKiBhY2Nlc3NlcyB0aGUgb24tZGlzayBiaXRtYXAgaW4gNjQtYml0IHdvcmQgZ3JhbnVsYXJpdHksIHRoZXJlIGlzIG5vCisgKiBzaWduaWZpY2FudCBiZW5lZml0IGluIHRyYWNraW5nIHRoZSBkaXJ0eSByZWdpb25fbWFwIGJpdHMgd2l0aCBhIHNtYWxsZXIKKyAqIGdyYW51bGFyaXR5LgorICoKKyAqIFdlIGNvdWxkIHVwZGF0ZSBkaXJlY3RseSB0aGUgb24tZGlzayBiaXRtYXAsIHdoZW4gZG0tY2xvbmUgY2FsbHMgZWl0aGVyCisgKiBkbV9jbG9uZV9zZXRfcmVnaW9uX2h5ZHJhdGVkKCkgb3IgZG1fY2xvbmVfY29uZF9zZXRfcmFuZ2UoKSwgYnV0cyB0aGlzCisgKiBpbnNlcnRzIHNpZ25pZmljYW50IG1ldGFkYXRhIEkvTyBvdmVyaGVhZCBpbiBkbS1jbG9uZSdzIEkvTyBwYXRoLiBBbHNvLCBhcworICogdGhlc2UgdHdvIGZ1bmN0aW9ucyBkb24ndCBibG9jaywgd2UgY2FuIGNhbGwgdGhlbSBpbiBpbnRlcnJ1cHQgY29udGV4dCwKKyAqIGUuZy4sIGluIGEgaG9va2VkIG92ZXJ3cml0ZSBiaW8ncyBjb21wbGV0aW9uIHJvdXRpbmUsIGFuZCBmdXJ0aGVyIHJlZHVjZSB0aGUKKyAqIEkvTyBjb21wbGV0aW9uIGxhdGVuY3kuCisgKgorICogV2UgbWFpbnRhaW4gdHdvIGRpcnR5IGJpdG1hcHMuIER1cmluZyBhIG1ldGFkYXRhIGNvbW1pdCB3ZSBhdG9taWNhbGx5IHN3YXAKKyAqIHRoZSBjdXJyZW50bHkgdXNlZCBkbWFwIHdpdGggdGhlIHVudXNlZCBvbmUuIFRoaXMgYWxsb3dzIHRoZSBtZXRhZGF0YSB1cGRhdGUKKyAqIGZ1bmN0aW9ucyB0byBydW4gY29uY3VycmVudGx5IHdpdGggYW4gb25nb2luZyBjb21taXQuCisgKi8KK3N0cnVjdCBkaXJ0eV9tYXAgeworCXVuc2lnbmVkIGxvbmcgKmRpcnR5X3dvcmRzOworCXVuc2lnbmVkIGludCBjaGFuZ2VkOworfTsKKworc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhIHsKKwkvKiBUaGUgbWV0YWRhdGEgYmxvY2sgZGV2aWNlICovCisJc3RydWN0IGJsb2NrX2RldmljZSAqYmRldjsKKworCXNlY3Rvcl90IHRhcmdldF9zaXplOworCXNlY3Rvcl90IHJlZ2lvbl9zaXplOworCXVuc2lnbmVkIGxvbmcgbnJfcmVnaW9uczsKKwl1bnNpZ25lZCBsb25nIG5yX3dvcmRzOworCisJLyogU3BpbmxvY2sgcHJvdGVjdGluZyB0aGUgcmVnaW9uIGFuZCBkaXJ0eSBiaXRtYXBzLiAqLworCXNwaW5sb2NrX3QgYml0bWFwX2xvY2s7CisJc3RydWN0IGRpcnR5X21hcCBkbWFwWzJdOworCXN0cnVjdCBkaXJ0eV9tYXAgKmN1cnJlbnRfZG1hcDsKKworCS8qCisJICogSW4gY29yZSBjb3B5IG9mIHRoZSBvbi1kaXNrIGJpdG1hcCB0byBzYXZlIGNvbnN0YW50bHkgZG9pbmcgbG9vayB1cHMKKwkgKiBvbiBkaXNrLgorCSAqLworCXVuc2lnbmVkIGxvbmcgKnJlZ2lvbl9tYXA7CisKKwkvKiBQcm90ZWN0ZWQgYnkgYml0bWFwX2xvY2sgKi8KKwl1bnNpZ25lZCBpbnQgcmVhZF9vbmx5OworCisJc3RydWN0IGRtX2Jsb2NrX21hbmFnZXIgKmJtOworCXN0cnVjdCBkbV9zcGFjZV9tYXAgKnNtOworCXN0cnVjdCBkbV90cmFuc2FjdGlvbl9tYW5hZ2VyICp0bTsKKworCXN0cnVjdCByd19zZW1hcGhvcmUgbG9jazsKKworCXN0cnVjdCBkbV9kaXNrX2JpdHNldCBiaXRzZXRfaW5mbzsKKwlkbV9ibG9ja190IGJpdHNldF9yb290OworCisJLyoKKwkgKiBSZWFkaW5nIHRoZSBzcGFjZSBtYXAgcm9vdCBjYW4gZmFpbCwgc28gd2UgcmVhZCBpdCBpbnRvIHRoaXMKKwkgKiBidWZmZXIgYmVmb3JlIHRoZSBzdXBlcmJsb2NrIGlzIGxvY2tlZCBhbmQgdXBkYXRlZC4KKwkgKi8KKwlfX3U4IG1ldGFkYXRhX3NwYWNlX21hcF9yb290W1NQQUNFX01BUF9ST09UX1NJWkVdOworCisJYm9vbCBoeWRyYXRpb25fZG9uZToxOworCWJvb2wgZmFpbF9pbzoxOworfTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICogU3VwZXJibG9jayB2YWxpZGF0aW9uLgorICovCitzdGF0aWMgdm9pZCBzYl9wcmVwYXJlX2Zvcl93cml0ZShzdHJ1Y3QgZG1fYmxvY2tfdmFsaWRhdG9yICp2LAorCQkJCSBzdHJ1Y3QgZG1fYmxvY2sgKmIsIHNpemVfdCBzYl9ibG9ja19zaXplKQoreworCXN0cnVjdCBzdXBlcmJsb2NrX2Rpc2sgKnNiOworCXUzMiBjc3VtOworCisJc2IgPSBkbV9ibG9ja19kYXRhKGIpOworCXNiLT5ibG9ja25yID0gY3B1X3RvX2xlNjQoZG1fYmxvY2tfbG9jYXRpb24oYikpOworCisJY3N1bSA9IGRtX2JtX2NoZWNrc3VtKCZzYi0+ZmxhZ3MsIHNiX2Jsb2NrX3NpemUgLSBzaXplb2YoX19sZTMyKSwKKwkJCSAgICAgIFNVUEVSQkxPQ0tfQ1NVTV9YT1IpOworCXNiLT5jc3VtID0gY3B1X3RvX2xlMzIoY3N1bSk7Cit9CisKK3N0YXRpYyBpbnQgc2JfY2hlY2soc3RydWN0IGRtX2Jsb2NrX3ZhbGlkYXRvciAqdiwgc3RydWN0IGRtX2Jsb2NrICpiLAorCQkgICAgc2l6ZV90IHNiX2Jsb2NrX3NpemUpCit7CisJc3RydWN0IHN1cGVyYmxvY2tfZGlzayAqc2I7CisJdTMyIGNzdW0sIG1ldGFkYXRhX3ZlcnNpb247CisKKwlzYiA9IGRtX2Jsb2NrX2RhdGEoYik7CisKKwlpZiAoZG1fYmxvY2tfbG9jYXRpb24oYikgIT0gbGU2NF90b19jcHUoc2ItPmJsb2NrbnIpKSB7CisJCURNRVJSKCJTdXBlcmJsb2NrIGNoZWNrIGZhaWxlZDogYmxvY2tuciAlbGx1LCBleHBlY3RlZCAlbGx1IiwKKwkJICAgICAgbGU2NF90b19jcHUoc2ItPmJsb2NrbnIpLAorCQkgICAgICAodW5zaWduZWQgbG9uZyBsb25nKWRtX2Jsb2NrX2xvY2F0aW9uKGIpKTsKKwkJcmV0dXJuIC1FTk9UQkxLOworCX0KKworCWlmIChsZTY0X3RvX2NwdShzYi0+bWFnaWMpICE9IFNVUEVSQkxPQ0tfTUFHSUMpIHsKKwkJRE1FUlIoIlN1cGVyYmxvY2sgY2hlY2sgZmFpbGVkOiBtYWdpYyAlbGx1LCBleHBlY3RlZCAlbGx1IiwKKwkJICAgICAgbGU2NF90b19jcHUoc2ItPm1hZ2ljKSwKKwkJICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylTVVBFUkJMT0NLX01BR0lDKTsKKwkJcmV0dXJuIC1FSUxTRVE7CisJfQorCisJY3N1bSA9IGRtX2JtX2NoZWNrc3VtKCZzYi0+ZmxhZ3MsIHNiX2Jsb2NrX3NpemUgLSBzaXplb2YoX19sZTMyKSwKKwkJCSAgICAgIFNVUEVSQkxPQ0tfQ1NVTV9YT1IpOworCWlmIChzYi0+Y3N1bSAhPSBjcHVfdG9fbGUzMihjc3VtKSkgeworCQlETUVSUigiU3VwZXJibG9jayBjaGVjayBmYWlsZWQ6IGNoZWNrc3VtICV1LCBleHBlY3RlZCAldSIsCisJCSAgICAgIGNzdW0sIGxlMzJfdG9fY3B1KHNiLT5jc3VtKSk7CisJCXJldHVybiAtRUlMU0VROworCX0KKworCS8qIENoZWNrIG1ldGFkYXRhIHZlcnNpb24gKi8KKwltZXRhZGF0YV92ZXJzaW9uID0gbGUzMl90b19jcHUoc2ItPnZlcnNpb24pOworCWlmIChtZXRhZGF0YV92ZXJzaW9uIDwgRE1fQ0xPTkVfTUlOX01FVEFEQVRBX1ZFUlNJT04gfHwKKwkgICAgbWV0YWRhdGFfdmVyc2lvbiA+IERNX0NMT05FX01BWF9NRVRBREFUQV9WRVJTSU9OKSB7CisJCURNRVJSKCJDbG9uZSBtZXRhZGF0YSB2ZXJzaW9uICV1IGZvdW5kLCBidXQgb25seSB2ZXJzaW9ucyBiZXR3ZWVuICV1IGFuZCAldSBzdXBwb3J0ZWQuIiwKKwkJICAgICAgbWV0YWRhdGFfdmVyc2lvbiwgRE1fQ0xPTkVfTUlOX01FVEFEQVRBX1ZFUlNJT04sCisJCSAgICAgIERNX0NMT05FX01BWF9NRVRBREFUQV9WRVJTSU9OKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZG1fYmxvY2tfdmFsaWRhdG9yIHNiX3ZhbGlkYXRvciA9IHsKKwkubmFtZSA9ICJzdXBlcmJsb2NrIiwKKwkucHJlcGFyZV9mb3Jfd3JpdGUgPSBzYl9wcmVwYXJlX2Zvcl93cml0ZSwKKwkuY2hlY2sgPSBzYl9jaGVjaworfTsKKworLyoKKyAqIENoZWNrIGlmIHRoZSBzdXBlcmJsb2NrIGlzIGZvcm1hdHRlZCBvciBub3QuIFdlIGNvbnNpZGVyIHRoZSBzdXBlcmJsb2NrIHRvCisgKiBiZSBmb3JtYXR0ZWQgaW4gY2FzZSB3ZSBmaW5kIG5vbi16ZXJvIGJ5dGVzIGluIGl0LgorICovCitzdGF0aWMgaW50IF9fc3VwZXJibG9ja19hbGxfemVyb2VzKHN0cnVjdCBkbV9ibG9ja19tYW5hZ2VyICpibSwgYm9vbCAqZm9ybWF0dGVkKQoreworCWludCByOworCXVuc2lnbmVkIGludCBpLCBucl93b3JkczsKKwlzdHJ1Y3QgZG1fYmxvY2sgKnNibG9jazsKKwlfX2xlNjQgKmRhdGFfbGUsIHplcm8gPSBjcHVfdG9fbGU2NCgwKTsKKworCS8qCisJICogV2UgZG9uJ3QgdXNlIGEgdmFsaWRhdG9yIGhlcmUgYmVjYXVzZSB0aGUgc3VwZXJibG9jayBjb3VsZCBiZSBhbGwKKwkgKiB6ZXJvZXMuCisJICovCisJciA9IGRtX2JtX3JlYWRfbG9jayhibSwgU1VQRVJCTE9DS19MT0NBVElPTiwgTlVMTCwgJnNibG9jayk7CisJaWYgKHIpIHsKKwkJRE1FUlIoIkZhaWxlZCB0byByZWFkX2xvY2sgc3VwZXJibG9jayIpOworCQlyZXR1cm4gcjsKKwl9CisKKwlkYXRhX2xlID0gZG1fYmxvY2tfZGF0YShzYmxvY2spOworCSpmb3JtYXR0ZWQgPSBmYWxzZTsKKworCS8qIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBibG9jayBzaXplIGlzIGEgbXVsdGlwbGUgb2YgOCBieXRlcyAqLworCUJVR19PTihkbV9ibV9ibG9ja19zaXplKGJtKSAlIHNpemVvZihfX2xlNjQpKTsKKwlucl93b3JkcyA9IGRtX2JtX2Jsb2NrX3NpemUoYm0pIC8gc2l6ZW9mKF9fbGU2NCk7CisJZm9yIChpID0gMDsgaSA8IG5yX3dvcmRzOyBpKyspIHsKKwkJaWYgKGRhdGFfbGVbaV0gIT0gemVybykgeworCQkJKmZvcm1hdHRlZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0KKworCWRtX2JtX3VubG9jayhzYmxvY2spOworCisJcmV0dXJuIDA7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAqIExvdy1sZXZlbCBtZXRhZGF0YSBoYW5kbGluZy4KKyAqLworc3RhdGljIGlubGluZSBpbnQgc3VwZXJibG9ja19yZWFkX2xvY2soc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQsCisJCQkJICAgICAgIHN0cnVjdCBkbV9ibG9jayAqKnNibG9jaykKK3sKKwlyZXR1cm4gZG1fYm1fcmVhZF9sb2NrKGNtZC0+Ym0sIFNVUEVSQkxPQ0tfTE9DQVRJT04sICZzYl92YWxpZGF0b3IsIHNibG9jayk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHN1cGVyYmxvY2tfd3JpdGVfbG9jayhzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCwKKwkJCQkJc3RydWN0IGRtX2Jsb2NrICoqc2Jsb2NrKQoreworCXJldHVybiBkbV9ibV93cml0ZV9sb2NrKGNtZC0+Ym0sIFNVUEVSQkxPQ0tfTE9DQVRJT04sICZzYl92YWxpZGF0b3IsIHNibG9jayk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHN1cGVyYmxvY2tfd3JpdGVfbG9ja196ZXJvKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLAorCQkJCQkgICAgIHN0cnVjdCBkbV9ibG9jayAqKnNibG9jaykKK3sKKwlyZXR1cm4gZG1fYm1fd3JpdGVfbG9ja196ZXJvKGNtZC0+Ym0sIFNVUEVSQkxPQ0tfTE9DQVRJT04sICZzYl92YWxpZGF0b3IsIHNibG9jayk7Cit9CisKK3N0YXRpYyBpbnQgX19jb3B5X3NtX3Jvb3Qoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpCit7CisJaW50IHI7CisJc2l6ZV90IHJvb3Rfc2l6ZTsKKworCXIgPSBkbV9zbV9yb290X3NpemUoY21kLT5zbSwgJnJvb3Rfc2l6ZSk7CisJaWYgKHIpCisJCXJldHVybiByOworCisJcmV0dXJuIGRtX3NtX2NvcHlfcm9vdChjbWQtPnNtLCAmY21kLT5tZXRhZGF0YV9zcGFjZV9tYXBfcm9vdCwgcm9vdF9zaXplKTsKK30KKworLyogU2F2ZSBkbS1jbG9uZSBtZXRhZGF0YSBpbiBzdXBlcmJsb2NrICovCitzdGF0aWMgdm9pZCBfX3ByZXBhcmVfc3VwZXJibG9jayhzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCwKKwkJCQkgc3RydWN0IHN1cGVyYmxvY2tfZGlzayAqc2IpCit7CisJc2ItPmZsYWdzID0gY3B1X3RvX2xlMzIoMFVMKTsKKworCS8qIEZJWE1FOiBVVUlEIGlzIGN1cnJlbnRseSB1bnVzZWQgKi8KKwltZW1zZXQoc2ItPnV1aWQsIDAsIHNpemVvZihzYi0+dXVpZCkpOworCisJc2ItPm1hZ2ljID0gY3B1X3RvX2xlNjQoU1VQRVJCTE9DS19NQUdJQyk7CisJc2ItPnZlcnNpb24gPSBjcHVfdG9fbGUzMihETV9DTE9ORV9NQVhfTUVUQURBVEFfVkVSU0lPTik7CisKKwkvKiBTYXZlIHRoZSBtZXRhZGF0YSBzcGFjZV9tYXAgcm9vdCAqLworCW1lbWNweSgmc2ItPm1ldGFkYXRhX3NwYWNlX21hcF9yb290LCAmY21kLT5tZXRhZGF0YV9zcGFjZV9tYXBfcm9vdCwKKwkgICAgICAgc2l6ZW9mKGNtZC0+bWV0YWRhdGFfc3BhY2VfbWFwX3Jvb3QpKTsKKworCXNiLT5yZWdpb25fc2l6ZSA9IGNwdV90b19sZTY0KGNtZC0+cmVnaW9uX3NpemUpOworCXNiLT50YXJnZXRfc2l6ZSA9IGNwdV90b19sZTY0KGNtZC0+dGFyZ2V0X3NpemUpOworCXNiLT5iaXRzZXRfcm9vdCA9IGNwdV90b19sZTY0KGNtZC0+Yml0c2V0X3Jvb3QpOworfQorCitzdGF0aWMgaW50IF9fb3Blbl9tZXRhZGF0YShzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCkKK3sKKwlpbnQgcjsKKwlzdHJ1Y3QgZG1fYmxvY2sgKnNibG9jazsKKwlzdHJ1Y3Qgc3VwZXJibG9ja19kaXNrICpzYjsKKworCXIgPSBzdXBlcmJsb2NrX3JlYWRfbG9jayhjbWQsICZzYmxvY2spOworCisJaWYgKHIpIHsKKwkJRE1FUlIoIkZhaWxlZCB0byByZWFkX2xvY2sgc3VwZXJibG9jayIpOworCQlyZXR1cm4gcjsKKwl9CisKKwlzYiA9IGRtX2Jsb2NrX2RhdGEoc2Jsb2NrKTsKKworCS8qIFZlcmlmeSB0aGF0IHRhcmdldF9zaXplIGFuZCByZWdpb25fc2l6ZSBoYXZlbid0IGNoYW5nZWQuICovCisJaWYgKGNtZC0+cmVnaW9uX3NpemUgIT0gbGU2NF90b19jcHUoc2ItPnJlZ2lvbl9zaXplKSB8fAorCSAgICBjbWQtPnRhcmdldF9zaXplICE9IGxlNjRfdG9fY3B1KHNiLT50YXJnZXRfc2l6ZSkpIHsKKwkJRE1FUlIoIlJlZ2lvbiBhbmQvb3IgdGFyZ2V0IHNpemUgZG9uJ3QgbWF0Y2ggdGhlIG9uZXMgaW4gbWV0YWRhdGEiKTsKKwkJciA9IC1FSU5WQUw7CisJCWdvdG8gb3V0X3dpdGhfbG9jazsKKwl9CisKKwlyID0gZG1fdG1fb3Blbl93aXRoX3NtKGNtZC0+Ym0sIFNVUEVSQkxPQ0tfTE9DQVRJT04sCisJCQkgICAgICAgc2ItPm1ldGFkYXRhX3NwYWNlX21hcF9yb290LAorCQkJICAgICAgIHNpemVvZihzYi0+bWV0YWRhdGFfc3BhY2VfbWFwX3Jvb3QpLAorCQkJICAgICAgICZjbWQtPnRtLCAmY21kLT5zbSk7CisKKwlpZiAocikgeworCQlETUVSUigiZG1fdG1fb3Blbl93aXRoX3NtIGZhaWxlZCIpOworCQlnb3RvIG91dF93aXRoX2xvY2s7CisJfQorCisJZG1fZGlza19iaXRzZXRfaW5pdChjbWQtPnRtLCAmY21kLT5iaXRzZXRfaW5mbyk7CisJY21kLT5iaXRzZXRfcm9vdCA9IGxlNjRfdG9fY3B1KHNiLT5iaXRzZXRfcm9vdCk7CisKK291dF93aXRoX2xvY2s6CisJZG1fYm1fdW5sb2NrKHNibG9jayk7CisKKwlyZXR1cm4gcjsKK30KKworc3RhdGljIGludCBfX2Zvcm1hdF9tZXRhZGF0YShzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCkKK3sKKwlpbnQgcjsKKwlzdHJ1Y3QgZG1fYmxvY2sgKnNibG9jazsKKwlzdHJ1Y3Qgc3VwZXJibG9ja19kaXNrICpzYjsKKworCXIgPSBkbV90bV9jcmVhdGVfd2l0aF9zbShjbWQtPmJtLCBTVVBFUkJMT0NLX0xPQ0FUSU9OLCAmY21kLT50bSwgJmNtZC0+c20pOworCWlmIChyKSB7CisJCURNRVJSKCJGYWlsZWQgdG8gY3JlYXRlIHRyYW5zYWN0aW9uIG1hbmFnZXIiKTsKKwkJcmV0dXJuIHI7CisJfQorCisJZG1fZGlza19iaXRzZXRfaW5pdChjbWQtPnRtLCAmY21kLT5iaXRzZXRfaW5mbyk7CisKKwlyID0gZG1fYml0c2V0X2VtcHR5KCZjbWQtPmJpdHNldF9pbmZvLCAmY21kLT5iaXRzZXRfcm9vdCk7CisJaWYgKHIpIHsKKwkJRE1FUlIoIkZhaWxlZCB0byBjcmVhdGUgZW1wdHkgb24tZGlzayBiaXRzZXQiKTsKKwkJZ290byBlcnJfd2l0aF90bTsKKwl9CisKKwlyID0gZG1fYml0c2V0X3Jlc2l6ZSgmY21kLT5iaXRzZXRfaW5mbywgY21kLT5iaXRzZXRfcm9vdCwgMCwKKwkJCSAgICAgY21kLT5ucl9yZWdpb25zLCBmYWxzZSwgJmNtZC0+Yml0c2V0X3Jvb3QpOworCWlmIChyKSB7CisJCURNRVJSKCJGYWlsZWQgdG8gcmVzaXplIG9uLWRpc2sgYml0c2V0IHRvICVsdSBlbnRyaWVzIiwgY21kLT5ucl9yZWdpb25zKTsKKwkJZ290byBlcnJfd2l0aF90bTsKKwl9CisKKwkvKiBGbHVzaCB0byBkaXNrIGFsbCBibG9ja3MsIGV4Y2VwdCB0aGUgc3VwZXJibG9jayAqLworCXIgPSBkbV90bV9wcmVfY29tbWl0KGNtZC0+dG0pOworCWlmIChyKSB7CisJCURNRVJSKCJkbV90bV9wcmVfY29tbWl0IGZhaWxlZCIpOworCQlnb3RvIGVycl93aXRoX3RtOworCX0KKworCXIgPSBfX2NvcHlfc21fcm9vdChjbWQpOworCWlmIChyKSB7CisJCURNRVJSKCJfX2NvcHlfc21fcm9vdCBmYWlsZWQiKTsKKwkJZ290byBlcnJfd2l0aF90bTsKKwl9CisKKwlyID0gc3VwZXJibG9ja193cml0ZV9sb2NrX3plcm8oY21kLCAmc2Jsb2NrKTsKKwlpZiAocikgeworCQlETUVSUigiRmFpbGVkIHRvIHdyaXRlX2xvY2sgc3VwZXJibG9jayIpOworCQlnb3RvIGVycl93aXRoX3RtOworCX0KKworCXNiID0gZG1fYmxvY2tfZGF0YShzYmxvY2spOworCV9fcHJlcGFyZV9zdXBlcmJsb2NrKGNtZCwgc2IpOworCXIgPSBkbV90bV9jb21taXQoY21kLT50bSwgc2Jsb2NrKTsKKwlpZiAocikgeworCQlETUVSUigiRmFpbGVkIHRvIGNvbW1pdCBzdXBlcmJsb2NrIik7CisJCWdvdG8gZXJyX3dpdGhfdG07CisJfQorCisJcmV0dXJuIDA7CisKK2Vycl93aXRoX3RtOgorCWRtX3NtX2Rlc3Ryb3koY21kLT5zbSk7CisJZG1fdG1fZGVzdHJveShjbWQtPnRtKTsKKworCXJldHVybiByOworfQorCitzdGF0aWMgaW50IF9fb3Blbl9vcl9mb3JtYXRfbWV0YWRhdGEoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQsIGJvb2wgbWF5X2Zvcm1hdF9kZXZpY2UpCit7CisJaW50IHI7CisJYm9vbCBmb3JtYXR0ZWQgPSBmYWxzZTsKKworCXIgPSBfX3N1cGVyYmxvY2tfYWxsX3plcm9lcyhjbWQtPmJtLCAmZm9ybWF0dGVkKTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwlpZiAoIWZvcm1hdHRlZCkKKwkJcmV0dXJuIG1heV9mb3JtYXRfZGV2aWNlID8gX19mb3JtYXRfbWV0YWRhdGEoY21kKSA6IC1FUEVSTTsKKworCXJldHVybiBfX29wZW5fbWV0YWRhdGEoY21kKTsKK30KKworc3RhdGljIGludCBfX2NyZWF0ZV9wZXJzaXN0ZW50X2RhdGFfc3RydWN0dXJlcyhzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCwKKwkJCQkJICAgICAgIGJvb2wgbWF5X2Zvcm1hdF9kZXZpY2UpCit7CisJaW50IHI7CisKKwkvKiBDcmVhdGUgYmxvY2sgbWFuYWdlciAqLworCWNtZC0+Ym0gPSBkbV9ibG9ja19tYW5hZ2VyX2NyZWF0ZShjbWQtPmJkZXYsCisJCQkJCSBETV9DTE9ORV9NRVRBREFUQV9CTE9DS19TSVpFIDw8IFNFQ1RPUl9TSElGVCwKKwkJCQkJIERNX0NMT05FX01BWF9DT05DVVJSRU5UX0xPQ0tTKTsKKwlpZiAoSVNfRVJSKGNtZC0+Ym0pKSB7CisJCURNRVJSKCJGYWlsZWQgdG8gY3JlYXRlIGJsb2NrIG1hbmFnZXIiKTsKKwkJcmV0dXJuIFBUUl9FUlIoY21kLT5ibSk7CisJfQorCisJciA9IF9fb3Blbl9vcl9mb3JtYXRfbWV0YWRhdGEoY21kLCBtYXlfZm9ybWF0X2RldmljZSk7CisJaWYgKHIpCisJCWRtX2Jsb2NrX21hbmFnZXJfZGVzdHJveShjbWQtPmJtKTsKKworCXJldHVybiByOworfQorCitzdGF0aWMgdm9pZCBfX2Rlc3Ryb3lfcGVyc2lzdGVudF9kYXRhX3N0cnVjdHVyZXMoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpCit7CisJZG1fc21fZGVzdHJveShjbWQtPnNtKTsKKwlkbV90bV9kZXN0cm95KGNtZC0+dG0pOworCWRtX2Jsb2NrX21hbmFnZXJfZGVzdHJveShjbWQtPmJtKTsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitzdGF0aWMgc2l6ZV90IGJpdG1hcF9zaXplKHVuc2lnbmVkIGxvbmcgbnJfYml0cykKK3sKKwlyZXR1cm4gQklUU19UT19MT05HUyhucl9iaXRzKSAqIHNpemVvZihsb25nKTsKK30KKworc3RhdGljIGludCBkaXJ0eV9tYXBfaW5pdChzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCkKK3sKKwljbWQtPmRtYXBbMF0uY2hhbmdlZCA9IDA7CisJY21kLT5kbWFwWzBdLmRpcnR5X3dvcmRzID0ga3Z6YWxsb2MoYml0bWFwX3NpemUoY21kLT5ucl93b3JkcyksIEdGUF9LRVJORUwpOworCisJaWYgKCFjbWQtPmRtYXBbMF0uZGlydHlfd29yZHMpIHsKKwkJRE1FUlIoIkZhaWxlZCB0byBhbGxvY2F0ZSBkaXJ0eSBiaXRtYXAiKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJY21kLT5kbWFwWzFdLmNoYW5nZWQgPSAwOworCWNtZC0+ZG1hcFsxXS5kaXJ0eV93b3JkcyA9IGt2emFsbG9jKGJpdG1hcF9zaXplKGNtZC0+bnJfd29yZHMpLCBHRlBfS0VSTkVMKTsKKworCWlmICghY21kLT5kbWFwWzFdLmRpcnR5X3dvcmRzKSB7CisJCURNRVJSKCJGYWlsZWQgdG8gYWxsb2NhdGUgZGlydHkgYml0bWFwIik7CisJCWt2ZnJlZShjbWQtPmRtYXBbMF0uZGlydHlfd29yZHMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwljbWQtPmN1cnJlbnRfZG1hcCA9ICZjbWQtPmRtYXBbMF07CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZGlydHlfbWFwX2V4aXQoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpCit7CisJa3ZmcmVlKGNtZC0+ZG1hcFswXS5kaXJ0eV93b3Jkcyk7CisJa3ZmcmVlKGNtZC0+ZG1hcFsxXS5kaXJ0eV93b3Jkcyk7Cit9CisKK3N0YXRpYyBpbnQgX19sb2FkX2JpdHNldF9pbl9jb3JlKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kKQoreworCWludCByOworCXVuc2lnbmVkIGxvbmcgaTsKKwlzdHJ1Y3QgZG1fYml0c2V0X2N1cnNvciBjOworCisJLyogRmx1c2ggYml0c2V0IGNhY2hlICovCisJciA9IGRtX2JpdHNldF9mbHVzaCgmY21kLT5iaXRzZXRfaW5mbywgY21kLT5iaXRzZXRfcm9vdCwgJmNtZC0+Yml0c2V0X3Jvb3QpOworCWlmIChyKQorCQlyZXR1cm4gcjsKKworCXIgPSBkbV9iaXRzZXRfY3Vyc29yX2JlZ2luKCZjbWQtPmJpdHNldF9pbmZvLCBjbWQtPmJpdHNldF9yb290LCBjbWQtPm5yX3JlZ2lvbnMsICZjKTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwlmb3IgKGkgPSAwOyA7IGkrKykgeworCQlpZiAoZG1fYml0c2V0X2N1cnNvcl9nZXRfdmFsdWUoJmMpKQorCQkJX19zZXRfYml0KGksIGNtZC0+cmVnaW9uX21hcCk7CisJCWVsc2UKKwkJCV9fY2xlYXJfYml0KGksIGNtZC0+cmVnaW9uX21hcCk7CisKKwkJaWYgKGkgPj0gKGNtZC0+bnJfcmVnaW9ucyAtIDEpKQorCQkJYnJlYWs7CisKKwkJciA9IGRtX2JpdHNldF9jdXJzb3JfbmV4dCgmYyk7CisKKwkJaWYgKHIpCisJCQlicmVhazsKKwl9CisKKwlkbV9iaXRzZXRfY3Vyc29yX2VuZCgmYyk7CisKKwlyZXR1cm4gcjsKK30KKworc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpkbV9jbG9uZV9tZXRhZGF0YV9vcGVuKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsCisJCQkJCQkgc2VjdG9yX3QgdGFyZ2V0X3NpemUsCisJCQkJCQkgc2VjdG9yX3QgcmVnaW9uX3NpemUpCit7CisJaW50IHI7CisJc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQ7CisKKwljbWQgPSBremFsbG9jKHNpemVvZigqY21kKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjbWQpIHsKKwkJRE1FUlIoIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGRtLWNsb25lIG1ldGFkYXRhIik7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCX0KKworCWNtZC0+YmRldiA9IGJkZXY7CisJY21kLT50YXJnZXRfc2l6ZSA9IHRhcmdldF9zaXplOworCWNtZC0+cmVnaW9uX3NpemUgPSByZWdpb25fc2l6ZTsKKwljbWQtPm5yX3JlZ2lvbnMgPSBkbV9zZWN0b3JfZGl2X3VwKGNtZC0+dGFyZ2V0X3NpemUsIGNtZC0+cmVnaW9uX3NpemUpOworCWNtZC0+bnJfd29yZHMgPSBCSVRTX1RPX0xPTkdTKGNtZC0+bnJfcmVnaW9ucyk7CisKKwlpbml0X3J3c2VtKCZjbWQtPmxvY2spOworCXNwaW5fbG9ja19pbml0KCZjbWQtPmJpdG1hcF9sb2NrKTsKKwljbWQtPnJlYWRfb25seSA9IDA7CisJY21kLT5mYWlsX2lvID0gZmFsc2U7CisJY21kLT5oeWRyYXRpb25fZG9uZSA9IGZhbHNlOworCisJY21kLT5yZWdpb25fbWFwID0ga3ZtYWxsb2MoYml0bWFwX3NpemUoY21kLT5ucl9yZWdpb25zKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjbWQtPnJlZ2lvbl9tYXApIHsKKwkJRE1FUlIoIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIHJlZ2lvbiBiaXRtYXAiKTsKKwkJciA9IC1FTk9NRU07CisJCWdvdG8gb3V0X3dpdGhfbWQ7CisJfQorCisJciA9IF9fY3JlYXRlX3BlcnNpc3RlbnRfZGF0YV9zdHJ1Y3R1cmVzKGNtZCwgdHJ1ZSk7CisJaWYgKHIpCisJCWdvdG8gb3V0X3dpdGhfcmVnaW9uX21hcDsKKworCXIgPSBfX2xvYWRfYml0c2V0X2luX2NvcmUoY21kKTsKKwlpZiAocikgeworCQlETUVSUigiRmFpbGVkIHRvIGxvYWQgb24tZGlzayByZWdpb24gbWFwIik7CisJCWdvdG8gb3V0X3dpdGhfcGRzOworCX0KKworCXIgPSBkaXJ0eV9tYXBfaW5pdChjbWQpOworCWlmIChyKQorCQlnb3RvIG91dF93aXRoX3BkczsKKworCWlmIChiaXRtYXBfZnVsbChjbWQtPnJlZ2lvbl9tYXAsIGNtZC0+bnJfcmVnaW9ucykpCisJCWNtZC0+aHlkcmF0aW9uX2RvbmUgPSB0cnVlOworCisJcmV0dXJuIGNtZDsKKworb3V0X3dpdGhfcGRzOgorCV9fZGVzdHJveV9wZXJzaXN0ZW50X2RhdGFfc3RydWN0dXJlcyhjbWQpOworCitvdXRfd2l0aF9yZWdpb25fbWFwOgorCWt2ZnJlZShjbWQtPnJlZ2lvbl9tYXApOworCitvdXRfd2l0aF9tZDoKKwlrZnJlZShjbWQpOworCisJcmV0dXJuIEVSUl9QVFIocik7Cit9CisKK3ZvaWQgZG1fY2xvbmVfbWV0YWRhdGFfY2xvc2Uoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpCit7CisJaWYgKCFjbWQtPmZhaWxfaW8pCisJCV9fZGVzdHJveV9wZXJzaXN0ZW50X2RhdGFfc3RydWN0dXJlcyhjbWQpOworCisJZGlydHlfbWFwX2V4aXQoY21kKTsKKwlrdmZyZWUoY21kLT5yZWdpb25fbWFwKTsKKwlrZnJlZShjbWQpOworfQorCitib29sIGRtX2Nsb25lX2lzX2h5ZHJhdGlvbl9kb25lKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kKQoreworCXJldHVybiBjbWQtPmh5ZHJhdGlvbl9kb25lOworfQorCitib29sIGRtX2Nsb25lX2lzX3JlZ2lvbl9oeWRyYXRlZChzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCwgdW5zaWduZWQgbG9uZyByZWdpb25fbnIpCit7CisJcmV0dXJuIGRtX2Nsb25lX2lzX2h5ZHJhdGlvbl9kb25lKGNtZCkgfHwgdGVzdF9iaXQocmVnaW9uX25yLCBjbWQtPnJlZ2lvbl9tYXApOworfQorCitib29sIGRtX2Nsb25lX2lzX3JhbmdlX2h5ZHJhdGVkKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLAorCQkJCXVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbnJfcmVnaW9ucykKK3sKKwl1bnNpZ25lZCBsb25nIGJpdDsKKworCWlmIChkbV9jbG9uZV9pc19oeWRyYXRpb25fZG9uZShjbWQpKQorCQlyZXR1cm4gdHJ1ZTsKKworCWJpdCA9IGZpbmRfbmV4dF96ZXJvX2JpdChjbWQtPnJlZ2lvbl9tYXAsIGNtZC0+bnJfcmVnaW9ucywgc3RhcnQpOworCisJcmV0dXJuIChiaXQgPj0gKHN0YXJ0ICsgbnJfcmVnaW9ucykpOworfQorCit1bnNpZ25lZCBsb25nIGRtX2Nsb25lX25yX29mX2h5ZHJhdGVkX3JlZ2lvbnMoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpCit7CisJcmV0dXJuIGJpdG1hcF93ZWlnaHQoY21kLT5yZWdpb25fbWFwLCBjbWQtPm5yX3JlZ2lvbnMpOworfQorCit1bnNpZ25lZCBsb25nIGRtX2Nsb25lX2ZpbmRfbmV4dF91bmh5ZHJhdGVkX3JlZ2lvbihzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCwKKwkJCQkJCSAgIHVuc2lnbmVkIGxvbmcgc3RhcnQpCit7CisJcmV0dXJuIGZpbmRfbmV4dF96ZXJvX2JpdChjbWQtPnJlZ2lvbl9tYXAsIGNtZC0+bnJfcmVnaW9ucywgc3RhcnQpOworfQorCitzdGF0aWMgaW50IF9fdXBkYXRlX21ldGFkYXRhX3dvcmQoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQsIHVuc2lnbmVkIGxvbmcgd29yZCkKK3sKKwlpbnQgcjsKKwl1bnNpZ25lZCBsb25nIGluZGV4ID0gd29yZCAqIEJJVFNfUEVSX0xPTkc7CisJdW5zaWduZWQgbG9uZyBtYXhfaW5kZXggPSBtaW4oY21kLT5ucl9yZWdpb25zLCAod29yZCArIDEpICogQklUU19QRVJfTE9ORyk7CisKKwl3aGlsZSAoaW5kZXggPCBtYXhfaW5kZXgpIHsKKwkJaWYgKHRlc3RfYml0KGluZGV4LCBjbWQtPnJlZ2lvbl9tYXApKSB7CisJCQlyID0gZG1fYml0c2V0X3NldF9iaXQoJmNtZC0+Yml0c2V0X2luZm8sIGNtZC0+Yml0c2V0X3Jvb3QsCisJCQkJCSAgICAgIGluZGV4LCAmY21kLT5iaXRzZXRfcm9vdCk7CisKKwkJCWlmIChyKSB7CisJCQkJRE1FUlIoImRtX2JpdHNldF9zZXRfYml0IGZhaWxlZCIpOworCQkJCXJldHVybiByOworCQkJfQorCQl9CisJCWluZGV4Kys7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19tZXRhZGF0YV9jb21taXQoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpCit7CisJaW50IHI7CisJc3RydWN0IGRtX2Jsb2NrICpzYmxvY2s7CisJc3RydWN0IHN1cGVyYmxvY2tfZGlzayAqc2I7CisKKwkvKiBGbHVzaCBiaXRzZXQgY2FjaGUgKi8KKwlyID0gZG1fYml0c2V0X2ZsdXNoKCZjbWQtPmJpdHNldF9pbmZvLCBjbWQtPmJpdHNldF9yb290LCAmY21kLT5iaXRzZXRfcm9vdCk7CisJaWYgKHIpIHsKKwkJRE1FUlIoImRtX2JpdHNldF9mbHVzaCBmYWlsZWQiKTsKKwkJcmV0dXJuIHI7CisJfQorCisJLyogRmx1c2ggdG8gZGlzayBhbGwgYmxvY2tzLCBleGNlcHQgdGhlIHN1cGVyYmxvY2sgKi8KKwlyID0gZG1fdG1fcHJlX2NvbW1pdChjbWQtPnRtKTsKKwlpZiAocikgeworCQlETUVSUigiZG1fdG1fcHJlX2NvbW1pdCBmYWlsZWQiKTsKKwkJcmV0dXJuIHI7CisJfQorCisJLyogU2F2ZSB0aGUgc3BhY2UgbWFwIHJvb3QgaW4gY21kLT5tZXRhZGF0YV9zcGFjZV9tYXBfcm9vdCAqLworCXIgPSBfX2NvcHlfc21fcm9vdChjbWQpOworCWlmIChyKSB7CisJCURNRVJSKCJfX2NvcHlfc21fcm9vdCBmYWlsZWQiKTsKKwkJcmV0dXJuIHI7CisJfQorCisJLyogTG9jayB0aGUgc3VwZXJibG9jayAqLworCXIgPSBzdXBlcmJsb2NrX3dyaXRlX2xvY2tfemVybyhjbWQsICZzYmxvY2spOworCWlmIChyKSB7CisJCURNRVJSKCJGYWlsZWQgdG8gd3JpdGVfbG9jayBzdXBlcmJsb2NrIik7CisJCXJldHVybiByOworCX0KKworCS8qIFNhdmUgdGhlIG1ldGFkYXRhIGluIHN1cGVyYmxvY2sgKi8KKwlzYiA9IGRtX2Jsb2NrX2RhdGEoc2Jsb2NrKTsKKwlfX3ByZXBhcmVfc3VwZXJibG9jayhjbWQsIHNiKTsKKworCS8qIFVubG9jayBzdXBlcmJsb2NrIGFuZCBjb21taXQgaXQgdG8gZGlzayAqLworCXIgPSBkbV90bV9jb21taXQoY21kLT50bSwgc2Jsb2NrKTsKKwlpZiAocikgeworCQlETUVSUigiRmFpbGVkIHRvIGNvbW1pdCBzdXBlcmJsb2NrIik7CisJCXJldHVybiByOworCX0KKworCS8qCisJICogRklYTUU6IEZpbmQgYSBtb3JlIGVmZmljaWVudCB3YXkgdG8gY2hlY2sgaWYgdGhlIGh5ZHJhdGlvbiBpcyBkb25lLgorCSAqLworCWlmIChiaXRtYXBfZnVsbChjbWQtPnJlZ2lvbl9tYXAsIGNtZC0+bnJfcmVnaW9ucykpCisJCWNtZC0+aHlkcmF0aW9uX2RvbmUgPSB0cnVlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19mbHVzaF9kbWFwKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLCBzdHJ1Y3QgZGlydHlfbWFwICpkbWFwKQoreworCWludCByOworCXVuc2lnbmVkIGxvbmcgd29yZCwgZmxhZ3M7CisKKwl3b3JkID0gMDsKKwlkbyB7CisJCXdvcmQgPSBmaW5kX25leHRfYml0KGRtYXAtPmRpcnR5X3dvcmRzLCBjbWQtPm5yX3dvcmRzLCB3b3JkKTsKKworCQlpZiAod29yZCA9PSBjbWQtPm5yX3dvcmRzKQorCQkJYnJlYWs7CisKKwkJciA9IF9fdXBkYXRlX21ldGFkYXRhX3dvcmQoY21kLCB3b3JkKTsKKworCQlpZiAocikKKwkJCXJldHVybiByOworCisJCV9fY2xlYXJfYml0KHdvcmQsIGRtYXAtPmRpcnR5X3dvcmRzKTsKKwkJd29yZCsrOworCX0gd2hpbGUgKHdvcmQgPCBjbWQtPm5yX3dvcmRzKTsKKworCXIgPSBfX21ldGFkYXRhX2NvbW1pdChjbWQpOworCisJaWYgKHIpCisJCXJldHVybiByOworCisJLyogVXBkYXRlIHRoZSBjaGFuZ2VkIGZsYWcgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSgmY21kLT5iaXRtYXBfbG9jaywgZmxhZ3MpOworCWRtYXAtPmNoYW5nZWQgPSAwOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNtZC0+Yml0bWFwX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiAwOworfQorCitpbnQgZG1fY2xvbmVfbWV0YWRhdGFfY29tbWl0KHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kKQoreworCWludCByID0gLUVQRVJNOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGRpcnR5X21hcCAqZG1hcCwgKm5leHRfZG1hcDsKKworCWRvd25fd3JpdGUoJmNtZC0+bG9jayk7CisKKwlpZiAoY21kLT5mYWlsX2lvIHx8IGRtX2JtX2lzX3JlYWRfb25seShjbWQtPmJtKSkKKwkJZ290byBvdXQ7CisKKwkvKiBHZXQgY3VycmVudCBkaXJ0eSBiaXRtYXAgKi8KKwlkbWFwID0gY21kLT5jdXJyZW50X2RtYXA7CisKKwkvKiBHZXQgbmV4dCBkaXJ0eSBiaXRtYXAgKi8KKwluZXh0X2RtYXAgPSAoZG1hcCA9PSAmY21kLT5kbWFwWzBdKSA/ICZjbWQtPmRtYXBbMV0gOiAmY21kLT5kbWFwWzBdOworCisJLyoKKwkgKiBUaGUgbGFzdCBjb21taXQgZmFpbGVkLCBzbyB3ZSBkb24ndCBoYXZlIGEgY2xlYW4gZGlydHktYml0bWFwIHRvCisJICogdXNlLgorCSAqLworCWlmIChXQVJOX09OKG5leHRfZG1hcC0+Y2hhbmdlZCkpIHsKKwkJciA9IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKworCS8qIFN3YXAgZGlydHkgYml0bWFwcyAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZjbWQtPmJpdG1hcF9sb2NrLCBmbGFncyk7CisJY21kLT5jdXJyZW50X2RtYXAgPSBuZXh0X2RtYXA7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY21kLT5iaXRtYXBfbG9jaywgZmxhZ3MpOworCisJLyoKKwkgKiBObyBvbmUgaXMgYWNjZXNzaW5nIHRoZSBvbGQgZGlydHkgYml0bWFwIGFueW1vcmUsIHNvIHdlIGNhbiBmbHVzaAorCSAqIGl0LgorCSAqLworCXIgPSBfX2ZsdXNoX2RtYXAoY21kLCBkbWFwKTsKK291dDoKKwl1cF93cml0ZSgmY21kLT5sb2NrKTsKKworCXJldHVybiByOworfQorCitpbnQgZG1fY2xvbmVfc2V0X3JlZ2lvbl9oeWRyYXRlZChzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCwgdW5zaWduZWQgbG9uZyByZWdpb25fbnIpCit7CisJaW50IHIgPSAwOworCXN0cnVjdCBkaXJ0eV9tYXAgKmRtYXA7CisJdW5zaWduZWQgbG9uZyB3b3JkLCBmbGFnczsKKworCXdvcmQgPSByZWdpb25fbnIgLyBCSVRTX1BFUl9MT05HOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNtZC0+Yml0bWFwX2xvY2ssIGZsYWdzKTsKKworCWlmIChjbWQtPnJlYWRfb25seSkgeworCQlyID0gLUVQRVJNOworCQlnb3RvIG91dDsKKwl9CisKKwlkbWFwID0gY21kLT5jdXJyZW50X2RtYXA7CisKKwlfX3NldF9iaXQod29yZCwgZG1hcC0+ZGlydHlfd29yZHMpOworCV9fc2V0X2JpdChyZWdpb25fbnIsIGNtZC0+cmVnaW9uX21hcCk7CisJZG1hcC0+Y2hhbmdlZCA9IDE7CisKK291dDoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbWQtPmJpdG1hcF9sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gcjsKK30KKworaW50IGRtX2Nsb25lX2NvbmRfc2V0X3JhbmdlKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAorCQkJICAgIHVuc2lnbmVkIGxvbmcgbnJfcmVnaW9ucykKK3sKKwlpbnQgciA9IDA7CisJc3RydWN0IGRpcnR5X21hcCAqZG1hcDsKKwl1bnNpZ25lZCBsb25nIHdvcmQsIHJlZ2lvbl9uciwgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY21kLT5iaXRtYXBfbG9jaywgZmxhZ3MpOworCisJaWYgKGNtZC0+cmVhZF9vbmx5KSB7CisJCXIgPSAtRVBFUk07CisJCWdvdG8gb3V0OworCX0KKworCWRtYXAgPSBjbWQtPmN1cnJlbnRfZG1hcDsKKwlmb3IgKHJlZ2lvbl9uciA9IHN0YXJ0OyByZWdpb25fbnIgPCAoc3RhcnQgKyBucl9yZWdpb25zKTsgcmVnaW9uX25yKyspIHsKKwkJaWYgKCF0ZXN0X2JpdChyZWdpb25fbnIsIGNtZC0+cmVnaW9uX21hcCkpIHsKKwkJCXdvcmQgPSByZWdpb25fbnIgLyBCSVRTX1BFUl9MT05HOworCQkJX19zZXRfYml0KHdvcmQsIGRtYXAtPmRpcnR5X3dvcmRzKTsKKwkJCV9fc2V0X2JpdChyZWdpb25fbnIsIGNtZC0+cmVnaW9uX21hcCk7CisJCQlkbWFwLT5jaGFuZ2VkID0gMTsKKwkJfQorCX0KK291dDoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbWQtPmJpdG1hcF9sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gcjsKK30KKworLyoKKyAqIFdBUk5JTkc6IFRoaXMgbXVzdCBub3QgYmUgY2FsbGVkIGNvbmN1cnJlbnRseSB3aXRoIGVpdGhlcgorICogZG1fY2xvbmVfc2V0X3JlZ2lvbl9oeWRyYXRlZCgpIG9yIGRtX2Nsb25lX2NvbmRfc2V0X3JhbmdlKCksIGFzIGl0IGNoYW5nZXMKKyAqIGNtZC0+cmVnaW9uX21hcCB3aXRob3V0IHRha2luZyB0aGUgY21kLT5iaXRtYXBfbG9jayBzcGlubG9jay4gVGhlIG9ubHkKKyAqIGV4Y2VwdGlvbiBpcyBhZnRlciBzZXR0aW5nIHRoZSBtZXRhZGF0YSB0byByZWFkLW9ubHkgbW9kZSwgdXNpbmcKKyAqIGRtX2Nsb25lX21ldGFkYXRhX3NldF9yZWFkX29ubHkoKS4KKyAqCisgKiBXZSBkb24ndCB0YWtlIHRoZSBzcGlubG9jayBiZWNhdXNlIF9fbG9hZF9iaXRzZXRfaW5fY29yZSgpIGRvZXMgSS9PLCBzbyBpdAorICogbWF5IGJsb2NrLgorICovCitpbnQgZG1fY2xvbmVfcmVsb2FkX2luX2NvcmVfYml0c2V0KHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kKQoreworCWludCByID0gLUVJTlZBTDsKKworCWRvd25fd3JpdGUoJmNtZC0+bG9jayk7CisKKwlpZiAoY21kLT5mYWlsX2lvKQorCQlnb3RvIG91dDsKKworCXIgPSBfX2xvYWRfYml0c2V0X2luX2NvcmUoY21kKTsKK291dDoKKwl1cF93cml0ZSgmY21kLT5sb2NrKTsKKworCXJldHVybiByOworfQorCitib29sIGRtX2Nsb25lX2NoYW5nZWRfdGhpc190cmFuc2FjdGlvbihzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCkKK3sKKwlib29sIHI7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjbWQtPmJpdG1hcF9sb2NrLCBmbGFncyk7CisJciA9IGNtZC0+ZG1hcFswXS5jaGFuZ2VkIHx8IGNtZC0+ZG1hcFsxXS5jaGFuZ2VkOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNtZC0+Yml0bWFwX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByOworfQorCitpbnQgZG1fY2xvbmVfbWV0YWRhdGFfYWJvcnQoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpCit7CisJaW50IHIgPSAtRVBFUk07CisKKwlkb3duX3dyaXRlKCZjbWQtPmxvY2spOworCisJaWYgKGNtZC0+ZmFpbF9pbyB8fCBkbV9ibV9pc19yZWFkX29ubHkoY21kLT5ibSkpCisJCWdvdG8gb3V0OworCisJX19kZXN0cm95X3BlcnNpc3RlbnRfZGF0YV9zdHJ1Y3R1cmVzKGNtZCk7CisKKwlyID0gX19jcmVhdGVfcGVyc2lzdGVudF9kYXRhX3N0cnVjdHVyZXMoY21kLCBmYWxzZSk7CisJaWYgKHIpIHsKKwkJLyogSWYgc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2UgY2FuIG5laXRoZXIgd3JpdGUgbm9yIHJlYWQgdGhlIG1ldGFkYXRhICovCisJCWNtZC0+ZmFpbF9pbyA9IHRydWU7CisJfQorb3V0OgorCXVwX3dyaXRlKCZjbWQtPmxvY2spOworCisJcmV0dXJuIHI7Cit9CisKK3ZvaWQgZG1fY2xvbmVfbWV0YWRhdGFfc2V0X3JlYWRfb25seShzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZG93bl93cml0ZSgmY21kLT5sb2NrKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjbWQtPmJpdG1hcF9sb2NrLCBmbGFncyk7CisJY21kLT5yZWFkX29ubHkgPSAxOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNtZC0+Yml0bWFwX2xvY2ssIGZsYWdzKTsKKworCWlmICghY21kLT5mYWlsX2lvKQorCQlkbV9ibV9zZXRfcmVhZF9vbmx5KGNtZC0+Ym0pOworCisJdXBfd3JpdGUoJmNtZC0+bG9jayk7Cit9CisKK3ZvaWQgZG1fY2xvbmVfbWV0YWRhdGFfc2V0X3JlYWRfd3JpdGUoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRvd25fd3JpdGUoJmNtZC0+bG9jayk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY21kLT5iaXRtYXBfbG9jaywgZmxhZ3MpOworCWNtZC0+cmVhZF9vbmx5ID0gMDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbWQtPmJpdG1hcF9sb2NrLCBmbGFncyk7CisKKwlpZiAoIWNtZC0+ZmFpbF9pbykKKwkJZG1fYm1fc2V0X3JlYWRfd3JpdGUoY21kLT5ibSk7CisKKwl1cF93cml0ZSgmY21kLT5sb2NrKTsKK30KKworaW50IGRtX2Nsb25lX2dldF9mcmVlX21ldGFkYXRhX2Jsb2NrX2NvdW50KHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLAorCQkJCQkgICBkbV9ibG9ja190ICpyZXN1bHQpCit7CisJaW50IHIgPSAtRUlOVkFMOworCisJZG93bl9yZWFkKCZjbWQtPmxvY2spOworCisJaWYgKCFjbWQtPmZhaWxfaW8pCisJCXIgPSBkbV9zbV9nZXRfbnJfZnJlZShjbWQtPnNtLCByZXN1bHQpOworCisJdXBfcmVhZCgmY21kLT5sb2NrKTsKKworCXJldHVybiByOworfQorCitpbnQgZG1fY2xvbmVfZ2V0X21ldGFkYXRhX2Rldl9zaXplKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLAorCQkJCSAgIGRtX2Jsb2NrX3QgKnJlc3VsdCkKK3sKKwlpbnQgciA9IC1FSU5WQUw7CisKKwlkb3duX3JlYWQoJmNtZC0+bG9jayk7CisKKwlpZiAoIWNtZC0+ZmFpbF9pbykKKwkJciA9IGRtX3NtX2dldF9ucl9ibG9ja3MoY21kLT5zbSwgcmVzdWx0KTsKKworCXVwX3JlYWQoJmNtZC0+bG9jayk7CisKKwlyZXR1cm4gcjsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tY2xvbmUtbWV0YWRhdGEuaCBiL2RyaXZlcnMvbWQvZG0tY2xvbmUtbWV0YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzRiZmYwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZC9kbS1jbG9uZS1tZXRhZGF0YS5oCkBAIC0wLDAgKzEsMTU4IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFycmlrdG8sIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCisjaWZuZGVmIERNX0NMT05FX01FVEFEQVRBX0gKKyNkZWZpbmUgRE1fQ0xPTkVfTUVUQURBVEFfSAorCisjaW5jbHVkZSAicGVyc2lzdGVudC1kYXRhL2RtLWJsb2NrLW1hbmFnZXIuaCIKKyNpbmNsdWRlICJwZXJzaXN0ZW50LWRhdGEvZG0tc3BhY2UtbWFwLW1ldGFkYXRhLmgiCisKKyNkZWZpbmUgRE1fQ0xPTkVfTUVUQURBVEFfQkxPQ0tfU0laRSBETV9TTV9NRVRBREFUQV9CTE9DS19TSVpFCisKKy8qCisgKiBUaGUgbWV0YWRhdGEgZGV2aWNlIGlzIGN1cnJlbnRseSBsaW1pdGVkIGluIHNpemUuCisgKi8KKyNkZWZpbmUgRE1fQ0xPTkVfTUVUQURBVEFfTUFYX1NFQ1RPUlMgRE1fU01fTUVUQURBVEFfTUFYX1NFQ1RPUlMKKworLyoKKyAqIEEgbWV0YWRhdGEgZGV2aWNlIGxhcmdlciB0aGFuIDE2R0IgdHJpZ2dlcnMgYSB3YXJuaW5nLgorICovCisjZGVmaW5lIERNX0NMT05FX01FVEFEQVRBX01BWF9TRUNUT1JTX1dBUk5JTkcgKDE2ICogKDEwMjQgKiAxMDI0ICogMTAyNCA+PiBTRUNUT1JfU0hJRlQpKQorCisjZGVmaW5lIFNQQUNFX01BUF9ST09UX1NJWkUgMTI4CisKKy8qIGRtLWNsb25lIG1ldGFkYXRhICovCitzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGE7CisKKy8qCisgKiBTZXQgcmVnaW9uIHN0YXR1cyB0byBoeWRyYXRlZC4KKyAqCisgKiBAY21kOiBUaGUgZG0tY2xvbmUgbWV0YWRhdGEKKyAqIEByZWdpb25fbnI6IFRoZSByZWdpb24gbnVtYmVyCisgKgorICogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGJsb2NrLCBzbyBpdCdzIHNhZmUgdG8gY2FsbCBpdCBmcm9tIGludGVycnVwdCBjb250ZXh0LgorICovCitpbnQgZG1fY2xvbmVfc2V0X3JlZ2lvbl9oeWRyYXRlZChzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCwgdW5zaWduZWQgbG9uZyByZWdpb25fbnIpOworCisvKgorICogU2V0IHN0YXR1cyBvZiBhbGwgcmVnaW9ucyBpbiB0aGUgcHJvdmlkZWQgcmFuZ2UgdG8gaHlkcmF0ZWQsIGlmIG5vdCBhbHJlYWR5CisgKiBoeWRyYXRlZC4KKyAqCisgKiBAY21kOiBUaGUgZG0tY2xvbmUgbWV0YWRhdGEKKyAqIEBzdGFydDogU3RhcnRpbmcgcmVnaW9uIG51bWJlcgorICogQG5yX3JlZ2lvbnM6IE51bWJlciBvZiByZWdpb25zIGluIHRoZSByYW5nZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gZG9lc24ndCBibG9jaywgc28gaXQncyBzYWZlIHRvIGNhbGwgaXQgZnJvbSBpbnRlcnJ1cHQgY29udGV4dC4KKyAqLworaW50IGRtX2Nsb25lX2NvbmRfc2V0X3JhbmdlKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAorCQkJICAgIHVuc2lnbmVkIGxvbmcgbnJfcmVnaW9ucyk7CisKKy8qCisgKiBSZWFkIGV4aXN0aW5nIG9yIGNyZWF0ZSBmcmVzaCBtZXRhZGF0YS4KKyAqCisgKiBAYmRldjogVGhlIGRldmljZSBzdG9yaW5nIHRoZSBtZXRhZGF0YQorICogQHRhcmdldF9zaXplOiBUaGUgdGFyZ2V0IHNpemUKKyAqIEByZWdpb25fc2l6ZTogVGhlIHJlZ2lvbiBzaXplCisgKgorICogQHJldHVybnM6IFRoZSBkbS1jbG9uZSBtZXRhZGF0YQorICoKKyAqIFRoaXMgZnVuY3Rpb24gcmVhZHMgdGhlIHN1cGVyYmxvY2sgb2YgQGJkZXYgYW5kIGNoZWNrcyBpZiBpdCdzIGFsbCB6ZXJvZXMuCisgKiBJZiBpdCBpcywgaXQgZm9ybWF0cyBAYmRldiBhbmQgY3JlYXRlcyBmcmVzaCBtZXRhZGF0YS4gSWYgaXQgaXNuJ3QsIGl0CisgKiB2YWxpZGF0ZXMgdGhlIG1ldGFkYXRhIHN0b3JlZCBpbiBAYmRldi4KKyAqLworc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpkbV9jbG9uZV9tZXRhZGF0YV9vcGVuKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsCisJCQkJCQkgc2VjdG9yX3QgdGFyZ2V0X3NpemUsCisJCQkJCQkgc2VjdG9yX3QgcmVnaW9uX3NpemUpOworCisvKgorICogRnJlZSB0aGUgcmVzb3VyY2VzIHJlbGF0ZWQgdG8gbWV0YWRhdGEgbWFuYWdlbWVudC4KKyAqLwordm9pZCBkbV9jbG9uZV9tZXRhZGF0YV9jbG9zZShzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCk7CisKKy8qCisgKiBDb21taXQgZG0tY2xvbmUgbWV0YWRhdGEgdG8gZGlzay4KKyAqLworaW50IGRtX2Nsb25lX21ldGFkYXRhX2NvbW1pdChzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCk7CisKKy8qCisgKiBSZWxvYWQgdGhlIGluIGNvcmUgY29weSBvZiB0aGUgb24tZGlzayBiaXRtYXAuCisgKgorICogVGhpcyBzaG91bGQgYmUgdXNlZCBhZnRlciBhYm9ydGluZyBhIG1ldGFkYXRhIHRyYW5zYWN0aW9uIGFuZCBzZXR0aW5nIHRoZQorICogbWV0YWRhdGEgdG8gcmVhZC1vbmx5LCB0byBpbnZhbGlkYXRlIHRoZSBpbi1jb3JlIGNhY2hlIGFuZCBtYWtlIGl0IG1hdGNoIHRoZQorICogb24tZGlzayBtZXRhZGF0YS4KKyAqCisgKiBXQVJOSU5HOiBJdCBtdXN0IG5vdCBiZSBjYWxsZWQgY29uY3VycmVudGx5IHdpdGggZWl0aGVyCisgKiBkbV9jbG9uZV9zZXRfcmVnaW9uX2h5ZHJhdGVkKCkgb3IgZG1fY2xvbmVfY29uZF9zZXRfcmFuZ2UoKSwgYXMgaXQgdXBkYXRlcworICogdGhlIHJlZ2lvbiBiaXRtYXAgd2l0aG91dCB0YWtpbmcgdGhlIHJlbGV2YW50IHNwaW5sb2NrLiBXZSBkb24ndCB0YWtlIHRoZQorICogc3BpbmxvY2sgYmVjYXVzZSBkbV9jbG9uZV9yZWxvYWRfaW5fY29yZV9iaXRzZXQoKSBkb2VzIEkvTywgc28gaXQgbWF5IGJsb2NrLgorICoKKyAqIEJ1dCwgaXQncyBzYWZlIHRvIHVzZSBpdCBhZnRlciBjYWxsaW5nIGRtX2Nsb25lX21ldGFkYXRhX3NldF9yZWFkX29ubHkoKSwKKyAqIGJlY2F1c2UgdGhlIGxhdHRlciBzZXRzIHRoZSBtZXRhZGF0YSB0byByZWFkLW9ubHkgbW9kZS4gQm90aAorICogZG1fY2xvbmVfc2V0X3JlZ2lvbl9oeWRyYXRlZCgpIGFuZCBkbV9jbG9uZV9jb25kX3NldF9yYW5nZSgpIHJlZnVzZSB0byB0b3VjaAorICogdGhlIHJlZ2lvbiBiaXRtYXAsIGFmdGVyIGNhbGxpbmcgZG1fY2xvbmVfbWV0YWRhdGFfc2V0X3JlYWRfb25seSgpLgorICovCitpbnQgZG1fY2xvbmVfcmVsb2FkX2luX2NvcmVfYml0c2V0KHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kKTsKKworLyoKKyAqIENoZWNrIHdoZXRoZXIgZG0tY2xvbmUncyBtZXRhZGF0YSBjaGFuZ2VkIHRoaXMgdHJhbnNhY3Rpb24uCisgKi8KK2Jvb2wgZG1fY2xvbmVfY2hhbmdlZF90aGlzX3RyYW5zYWN0aW9uKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kKTsKKworLyoKKyAqIEFib3J0IGN1cnJlbnQgbWV0YWRhdGEgdHJhbnNhY3Rpb24gYW5kIHJvbGxiYWNrIG1ldGFkYXRhIHRvIHRoZSBsYXN0CisgKiBjb21taXR0ZWQgdHJhbnNhY3Rpb24uCisgKi8KK2ludCBkbV9jbG9uZV9tZXRhZGF0YV9hYm9ydChzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCk7CisKKy8qCisgKiBTd2l0Y2hlcyBtZXRhZGF0YSB0byBhIHJlYWQgb25seSBtb2RlLiBPbmNlIHJlYWQtb25seSBtb2RlIGhhcyBiZWVuIGVudGVyZWQKKyAqIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHdpbGwgcmV0dXJuIC1FUEVSTToKKyAqCisgKiAgIGRtX2Nsb25lX21ldGFkYXRhX2NvbW1pdCgpCisgKiAgIGRtX2Nsb25lX3NldF9yZWdpb25faHlkcmF0ZWQoKQorICogICBkbV9jbG9uZV9jb25kX3NldF9yYW5nZSgpCisgKiAgIGRtX2Nsb25lX21ldGFkYXRhX2Fib3J0KCkKKyAqLwordm9pZCBkbV9jbG9uZV9tZXRhZGF0YV9zZXRfcmVhZF9vbmx5KHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kKTsKK3ZvaWQgZG1fY2xvbmVfbWV0YWRhdGFfc2V0X3JlYWRfd3JpdGUoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpOworCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBoeWRyYXRpb24gb2YgdGhlIGRlc3RpbmF0aW9uIGRldmljZSBpcyBmaW5pc2hlZC4KKyAqLworYm9vbCBkbV9jbG9uZV9pc19oeWRyYXRpb25fZG9uZShzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZCk7CisKKy8qCisgKiBSZXR1cm5zIHRydWUgaWYgcmVnaW9uIEByZWdpb25fbnIgaXMgaHlkcmF0ZWQuCisgKi8KK2Jvb2wgZG1fY2xvbmVfaXNfcmVnaW9uX2h5ZHJhdGVkKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLCB1bnNpZ25lZCBsb25nIHJlZ2lvbl9ucik7CisKKy8qCisgKiBSZXR1cm5zIHRydWUgaWYgYWxsIHRoZSByZWdpb25zIGluIHRoZSByYW5nZSBhcmUgaHlkcmF0ZWQuCisgKi8KK2Jvb2wgZG1fY2xvbmVfaXNfcmFuZ2VfaHlkcmF0ZWQoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQsCisJCQkJdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBucl9yZWdpb25zKTsKKworLyoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBoeWRyYXRlZCByZWdpb25zLgorICovCit1bnNpZ25lZCBsb25nIGRtX2Nsb25lX25yX29mX2h5ZHJhdGVkX3JlZ2lvbnMoc3RydWN0IGRtX2Nsb25lX21ldGFkYXRhICpjbWQpOworCisvKgorICogUmV0dXJucyB0aGUgZmlyc3QgdW5oeWRyYXRlZCByZWdpb24gd2l0aCByZWdpb25fbnIgPj0gQHN0YXJ0CisgKi8KK3Vuc2lnbmVkIGxvbmcgZG1fY2xvbmVfZmluZF9uZXh0X3VuaHlkcmF0ZWRfcmVnaW9uKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLAorCQkJCQkJICAgdW5zaWduZWQgbG9uZyBzdGFydCk7CisKKy8qCisgKiBHZXQgdGhlIG51bWJlciBvZiBmcmVlIG1ldGFkYXRhIGJsb2Nrcy4KKyAqLworaW50IGRtX2Nsb25lX2dldF9mcmVlX21ldGFkYXRhX2Jsb2NrX2NvdW50KHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLCBkbV9ibG9ja190ICpyZXN1bHQpOworCisvKgorICogR2V0IHRoZSB0b3RhbCBudW1iZXIgb2YgbWV0YWRhdGEgYmxvY2tzLgorICovCitpbnQgZG1fY2xvbmVfZ2V0X21ldGFkYXRhX2Rldl9zaXplKHN0cnVjdCBkbV9jbG9uZV9tZXRhZGF0YSAqY21kLCBkbV9ibG9ja190ICpyZXN1bHQpOworCisjZW5kaWYgLyogRE1fQ0xPTkVfTUVUQURBVEFfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1jbG9uZS10YXJnZXQuYyBiL2RyaXZlcnMvbWQvZG0tY2xvbmUtdGFyZ2V0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q2ZjllOQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWQvZG0tY2xvbmUtdGFyZ2V0LmMKQEAgLTAsMCArMSwyMTkxIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFycmlrdG8sIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9iaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9oYXNoLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L2xvZzIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9kbS1pby5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvYXRvbWljLmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CisjaW5jbHVkZSA8bGludXgva2Rldl90Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L21lbXBvb2wuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2Jsa190eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RtLWtjb3B5ZC5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorI2luY2x1ZGUgPGxpbnV4L2JhY2tpbmctZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLW1hcHBlci5oPgorCisjaW5jbHVkZSAiZG0uaCIKKyNpbmNsdWRlICJkbS1jbG9uZS1tZXRhZGF0YS5oIgorCisjZGVmaW5lIERNX01TR19QUkVGSVggImNsb25lIgorCisvKgorICogTWluaW11bSBhbmQgbWF4aW11bSBhbGxvd2VkIHJlZ2lvbiBzaXplcworICovCisjZGVmaW5lIE1JTl9SRUdJT05fU0laRSAoMSA8PCAzKSAgLyogNEtCICovCisjZGVmaW5lIE1BWF9SRUdJT05fU0laRSAoMSA8PCAyMSkgLyogMUdCICovCisKKyNkZWZpbmUgTUlOX0hZRFJBVElPTlMgMjU2IC8qIFNpemUgb2YgaHlkcmF0aW9uIG1lbXBvb2wgKi8KKyNkZWZpbmUgREVGQVVMVF9IWURSQVRJT05fVEhSRVNIT0xEIDEgLyogMSByZWdpb24gKi8KKyNkZWZpbmUgREVGQVVMVF9IWURSQVRJT05fQkFUQ0hfU0laRSAxIC8qIEh5ZHJhdGUgaW4gYmF0Y2hlcyBvZiAxIHJlZ2lvbiAqLworCisjZGVmaW5lIENPTU1JVF9QRVJJT0QgSFogLyogMSBzZWMgKi8KKworLyoKKyAqIEh5ZHJhdGlvbiBoYXNoIHRhYmxlIHNpemU6IDEgPDwgSEFTSF9UQUJMRV9CSVRTCisgKi8KKyNkZWZpbmUgSEFTSF9UQUJMRV9CSVRTIDE1CisKK0RFQ0xBUkVfRE1fS0NPUFlEX1RIUk9UVExFX1dJVEhfTU9EVUxFX1BBUk0oY2xvbmVfaHlkcmF0aW9uX3Rocm90dGxlLAorCSJBIHBlcmNlbnRhZ2Ugb2YgdGltZSBhbGxvY2F0ZWQgZm9yIGh5ZHJhdGluZyByZWdpb25zIik7CisKKy8qIFNsYWIgY2FjaGUgZm9yIHN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICovCitzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKl9oeWRyYXRpb25fY2FjaGU7CisKKy8qIGRtLWNsb25lIG1ldGFkYXRhIG1vZGVzICovCitlbnVtIGNsb25lX21ldGFkYXRhX21vZGUgeworCUNNX1dSSVRFLAkJLyogbWV0YWRhdGEgbWF5IGJlIGNoYW5nZWQgKi8KKwlDTV9SRUFEX09OTFksCQkvKiBtZXRhZGF0YSBtYXkgbm90IGJlIGNoYW5nZWQgKi8KKwlDTV9GQUlMLAkJLyogYWxsIG1ldGFkYXRhIEkvTyBmYWlscyAqLworfTsKKworc3RydWN0IGhhc2hfdGFibGVfYnVja2V0OworCitzdHJ1Y3QgY2xvbmUgeworCXN0cnVjdCBkbV90YXJnZXQgKnRpOworCXN0cnVjdCBkbV90YXJnZXRfY2FsbGJhY2tzIGNhbGxiYWNrczsKKworCXN0cnVjdCBkbV9kZXYgKm1ldGFkYXRhX2RldjsKKwlzdHJ1Y3QgZG1fZGV2ICpkZXN0X2RldjsKKwlzdHJ1Y3QgZG1fZGV2ICpzb3VyY2VfZGV2OworCisJdW5zaWduZWQgbG9uZyBucl9yZWdpb25zOworCXNlY3Rvcl90IHJlZ2lvbl9zaXplOworCXVuc2lnbmVkIGludCByZWdpb25fc2hpZnQ7CisKKwkvKgorCSAqIEEgbWV0YWRhdGEgY29tbWl0IGFuZCB0aGUgYWN0aW9ucyB0YWtlbiBpbiBjYXNlIGl0IGZhaWxzIHNob3VsZCBydW4KKwkgKiBhcyBhIHNpbmdsZSBhdG9taWMgc3RlcC4KKwkgKi8KKwlzdHJ1Y3QgbXV0ZXggY29tbWl0X2xvY2s7CisKKwlzdHJ1Y3QgZG1fY2xvbmVfbWV0YWRhdGEgKmNtZDsKKworCS8qIFJlZ2lvbiBoeWRyYXRpb24gaGFzaCB0YWJsZSAqLworCXN0cnVjdCBoYXNoX3RhYmxlX2J1Y2tldCAqaHQ7CisKKwlhdG9taWNfdCBpb3NfaW5fZmxpZ2h0OworCisJd2FpdF9xdWV1ZV9oZWFkX3QgaHlkcmF0aW9uX3N0b3BwZWQ7CisKKwltZW1wb29sX3QgaHlkcmF0aW9uX3Bvb2w7CisKKwl1bnNpZ25lZCBsb25nIGxhc3RfY29tbWl0X2ppZmZpZXM7CisKKwkvKgorCSAqIFdlIGRlZmVyIGluY29taW5nIFdSSVRFIGJpb3MgZm9yIHJlZ2lvbnMgdGhhdCBhcmUgbm90IGh5ZHJhdGVkLAorCSAqIHVudGlsIGFmdGVyIHRoZXNlIHJlZ2lvbnMgaGF2ZSBiZWVuIGh5ZHJhdGVkLgorCSAqCisJICogQWxzbywgd2UgZGVmZXIgUkVRX0ZVQSBhbmQgUkVRX1BSRUZMVVNIIGJpb3MsIHVudGlsIGFmdGVyIHRoZQorCSAqIG1ldGFkYXRhIGhhdmUgYmVlbiBjb21taXR0ZWQuCisJICovCisJc3BpbmxvY2tfdCBsb2NrOworCXN0cnVjdCBiaW9fbGlzdCBkZWZlcnJlZF9iaW9zOworCXN0cnVjdCBiaW9fbGlzdCBkZWZlcnJlZF9kaXNjYXJkX2Jpb3M7CisJc3RydWN0IGJpb19saXN0IGRlZmVycmVkX2ZsdXNoX2Jpb3M7CisJc3RydWN0IGJpb19saXN0IGRlZmVycmVkX2ZsdXNoX2NvbXBsZXRpb25zOworCisJLyogTWF4aW11bSBudW1iZXIgb2YgcmVnaW9ucyBiZWluZyBjb3BpZWQgZHVyaW5nIGJhY2tncm91bmQgaHlkcmF0aW9uLiAqLworCXVuc2lnbmVkIGludCBoeWRyYXRpb25fdGhyZXNob2xkOworCisJLyogTnVtYmVyIG9mIHJlZ2lvbnMgdG8gYmF0Y2ggdG9nZXRoZXIgZHVyaW5nIGJhY2tncm91bmQgaHlkcmF0aW9uLiAqLworCXVuc2lnbmVkIGludCBoeWRyYXRpb25fYmF0Y2hfc2l6ZTsKKworCS8qIFdoaWNoIHJlZ2lvbiB0byBoeWRyYXRlIG5leHQgKi8KKwl1bnNpZ25lZCBsb25nIGh5ZHJhdGlvbl9vZmZzZXQ7CisKKwlhdG9taWNfdCBoeWRyYXRpb25zX2luX2ZsaWdodDsKKworCS8qCisJICogU2F2ZSBhIGNvcHkgb2YgdGhlIHRhYmxlIGxpbmUgcmF0aGVyIHRoYW4gcmVjb25zdHJ1Y3RpbmcgaXQgZm9yIHRoZQorCSAqIHN0YXR1cy4KKwkgKi8KKwl1bnNpZ25lZCBpbnQgbnJfY3RyX2FyZ3M7CisJY29uc3QgY2hhciAqKmN0cl9hcmdzOworCisJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOworCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrZXI7CisJc3RydWN0IGRlbGF5ZWRfd29yayB3YWtlcjsKKworCXN0cnVjdCBkbV9rY29weWRfY2xpZW50ICprY29weWRfY2xpZW50OworCisJZW51bSBjbG9uZV9tZXRhZGF0YV9tb2RlIG1vZGU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKK307CisKKy8qCisgKiBkbS1jbG9uZSBmbGFncworICovCisjZGVmaW5lIERNX0NMT05FX0RJU0NBUkRfUEFTU0RPV04gMAorI2RlZmluZSBETV9DTE9ORV9IWURSQVRJT05fRU5BQkxFRCAxCisjZGVmaW5lIERNX0NMT05FX0hZRFJBVElPTl9TVVNQRU5ERUQgMgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKiBNZXRhZGF0YSBmYWlsdXJlIGhhbmRsaW5nLgorICovCitzdGF0aWMgZW51bSBjbG9uZV9tZXRhZGF0YV9tb2RlIGdldF9jbG9uZV9tb2RlKHN0cnVjdCBjbG9uZSAqY2xvbmUpCit7CisJcmV0dXJuIFJFQURfT05DRShjbG9uZS0+bW9kZSk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpjbG9uZV9kZXZpY2VfbmFtZShzdHJ1Y3QgY2xvbmUgKmNsb25lKQoreworCXJldHVybiBkbV90YWJsZV9kZXZpY2VfbmFtZShjbG9uZS0+dGktPnRhYmxlKTsKK30KKworc3RhdGljIHZvaWQgX19zZXRfY2xvbmVfbW9kZShzdHJ1Y3QgY2xvbmUgKmNsb25lLCBlbnVtIGNsb25lX21ldGFkYXRhX21vZGUgbmV3X21vZGUpCit7CisJY29uc3QgY2hhciAqZGVzY3NbXSA9IHsKKwkJInJlYWQtd3JpdGUiLAorCQkicmVhZC1vbmx5IiwKKwkJImZhaWwiCisJfTsKKworCWVudW0gY2xvbmVfbWV0YWRhdGFfbW9kZSBvbGRfbW9kZSA9IGdldF9jbG9uZV9tb2RlKGNsb25lKTsKKworCS8qIE5ldmVyIG1vdmUgb3V0IG9mIGZhaWwgbW9kZSAqLworCWlmIChvbGRfbW9kZSA9PSBDTV9GQUlMKQorCQluZXdfbW9kZSA9IENNX0ZBSUw7CisKKwlzd2l0Y2ggKG5ld19tb2RlKSB7CisJY2FzZSBDTV9GQUlMOgorCWNhc2UgQ01fUkVBRF9PTkxZOgorCQlkbV9jbG9uZV9tZXRhZGF0YV9zZXRfcmVhZF9vbmx5KGNsb25lLT5jbWQpOworCQlicmVhazsKKworCWNhc2UgQ01fV1JJVEU6CisJCWRtX2Nsb25lX21ldGFkYXRhX3NldF9yZWFkX3dyaXRlKGNsb25lLT5jbWQpOworCQlicmVhazsKKwl9CisKKwlXUklURV9PTkNFKGNsb25lLT5tb2RlLCBuZXdfbW9kZSk7CisKKwlpZiAobmV3X21vZGUgIT0gb2xkX21vZGUpIHsKKwkJZG1fdGFibGVfZXZlbnQoY2xvbmUtPnRpLT50YWJsZSk7CisJCURNSU5GTygiJXM6IFN3aXRjaGluZyB0byAlcyBtb2RlIiwgY2xvbmVfZGV2aWNlX25hbWUoY2xvbmUpLAorCQkgICAgICAgZGVzY3NbKGludCluZXdfbW9kZV0pOworCX0KK30KKworc3RhdGljIHZvaWQgX19hYm9ydF90cmFuc2FjdGlvbihzdHJ1Y3QgY2xvbmUgKmNsb25lKQoreworCWNvbnN0IGNoYXIgKmRldl9uYW1lID0gY2xvbmVfZGV2aWNlX25hbWUoY2xvbmUpOworCisJaWYgKGdldF9jbG9uZV9tb2RlKGNsb25lKSA+PSBDTV9SRUFEX09OTFkpCisJCXJldHVybjsKKworCURNRVJSKCIlczogQWJvcnRpbmcgY3VycmVudCBtZXRhZGF0YSB0cmFuc2FjdGlvbiIsIGRldl9uYW1lKTsKKwlpZiAoZG1fY2xvbmVfbWV0YWRhdGFfYWJvcnQoY2xvbmUtPmNtZCkpIHsKKwkJRE1FUlIoIiVzOiBGYWlsZWQgdG8gYWJvcnQgbWV0YWRhdGEgdHJhbnNhY3Rpb24iLCBkZXZfbmFtZSk7CisJCV9fc2V0X2Nsb25lX21vZGUoY2xvbmUsIENNX0ZBSUwpOworCX0KK30KKworc3RhdGljIHZvaWQgX19yZWxvYWRfaW5fY29yZV9iaXRzZXQoc3RydWN0IGNsb25lICpjbG9uZSkKK3sKKwljb25zdCBjaGFyICpkZXZfbmFtZSA9IGNsb25lX2RldmljZV9uYW1lKGNsb25lKTsKKworCWlmIChnZXRfY2xvbmVfbW9kZShjbG9uZSkgPT0gQ01fRkFJTCkKKwkJcmV0dXJuOworCisJLyogUmVsb2FkIHRoZSBvbi1kaXNrIGJpdHNldCAqLworCURNSU5GTygiJXM6IFJlbG9hZGluZyBvbi1kaXNrIGJpdG1hcCIsIGRldl9uYW1lKTsKKwlpZiAoZG1fY2xvbmVfcmVsb2FkX2luX2NvcmVfYml0c2V0KGNsb25lLT5jbWQpKSB7CisJCURNRVJSKCIlczogRmFpbGVkIHRvIHJlbG9hZCBvbi1kaXNrIGJpdG1hcCIsIGRldl9uYW1lKTsKKwkJX19zZXRfY2xvbmVfbW9kZShjbG9uZSwgQ01fRkFJTCk7CisJfQorfQorCitzdGF0aWMgdm9pZCBfX21ldGFkYXRhX29wZXJhdGlvbl9mYWlsZWQoc3RydWN0IGNsb25lICpjbG9uZSwgY29uc3QgY2hhciAqb3AsIGludCByKQoreworCURNRVJSKCIlczogTWV0YWRhdGEgb3BlcmF0aW9uIGAlcycgZmFpbGVkOiBlcnJvciA9ICVkIiwKKwkgICAgICBjbG9uZV9kZXZpY2VfbmFtZShjbG9uZSksIG9wLCByKTsKKworCV9fYWJvcnRfdHJhbnNhY3Rpb24oY2xvbmUpOworCV9fc2V0X2Nsb25lX21vZGUoY2xvbmUsIENNX1JFQURfT05MWSk7CisKKwkvKgorCSAqIGRtX2Nsb25lX3JlbG9hZF9pbl9jb3JlX2JpdHNldCgpIG1heSBydW4gY29uY3VycmVudGx5IHdpdGggZWl0aGVyCisJICogZG1fY2xvbmVfc2V0X3JlZ2lvbl9oeWRyYXRlZCgpIG9yIGRtX2Nsb25lX2NvbmRfc2V0X3JhbmdlKCksIGJ1dAorCSAqIGl0J3Mgc2FmZSBhcyB3ZSBoYXZlIGFscmVhZHkgc2V0IHRoZSBtZXRhZGF0YSB0byByZWFkLW9ubHkgbW9kZS4KKwkgKi8KKwlfX3JlbG9hZF9pbl9jb3JlX2JpdHNldChjbG9uZSk7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogV2FrZSB1cCBhbnlvbmUgd2FpdGluZyBmb3IgcmVnaW9uIGh5ZHJhdGlvbnMgdG8gc3RvcCAqLworc3RhdGljIGlubGluZSB2b2lkIHdha2V1cF9oeWRyYXRpb25fd2FpdGVycyhzdHJ1Y3QgY2xvbmUgKmNsb25lKQoreworCXdha2VfdXBfYWxsKCZjbG9uZS0+aHlkcmF0aW9uX3N0b3BwZWQpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgd2FrZV93b3JrZXIoc3RydWN0IGNsb25lICpjbG9uZSkKK3sKKwlxdWV1ZV93b3JrKGNsb25lLT53cSwgJmNsb25lLT53b3JrZXIpOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKiBiaW8gaGVscGVyIGZ1bmN0aW9ucy4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHJlbWFwX3RvX3NvdXJjZShzdHJ1Y3QgY2xvbmUgKmNsb25lLCBzdHJ1Y3QgYmlvICpiaW8pCit7CisJYmlvX3NldF9kZXYoYmlvLCBjbG9uZS0+c291cmNlX2Rldi0+YmRldik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1hcF90b19kZXN0KHN0cnVjdCBjbG9uZSAqY2xvbmUsIHN0cnVjdCBiaW8gKmJpbykKK3sKKwliaW9fc2V0X2RldihiaW8sIGNsb25lLT5kZXN0X2Rldi0+YmRldik7Cit9CisKK3N0YXRpYyBib29sIGJpb190cmlnZ2Vyc19jb21taXQoc3RydWN0IGNsb25lICpjbG9uZSwgc3RydWN0IGJpbyAqYmlvKQoreworCXJldHVybiBvcF9pc19mbHVzaChiaW8tPmJpX29wZikgJiYKKwkJZG1fY2xvbmVfY2hhbmdlZF90aGlzX3RyYW5zYWN0aW9uKGNsb25lLT5jbWQpOworfQorCisvKiBHZXQgdGhlIGFkZHJlc3Mgb2YgdGhlIHJlZ2lvbiBpbiBzZWN0b3JzICovCitzdGF0aWMgaW5saW5lIHNlY3Rvcl90IHJlZ2lvbl90b19zZWN0b3Ioc3RydWN0IGNsb25lICpjbG9uZSwgdW5zaWduZWQgbG9uZyByZWdpb25fbnIpCit7CisJcmV0dXJuIChyZWdpb25fbnIgPDwgY2xvbmUtPnJlZ2lvbl9zaGlmdCk7Cit9CisKKy8qIEdldCB0aGUgcmVnaW9uIG51bWJlciBvZiB0aGUgYmlvICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgYmlvX3RvX3JlZ2lvbihzdHJ1Y3QgY2xvbmUgKmNsb25lLCBzdHJ1Y3QgYmlvICpiaW8pCit7CisJcmV0dXJuIChiaW8tPmJpX2l0ZXIuYmlfc2VjdG9yID4+IGNsb25lLT5yZWdpb25fc2hpZnQpOworfQorCisvKiBHZXQgdGhlIHJlZ2lvbiByYW5nZSBjb3ZlcmVkIGJ5IHRoZSBiaW8gKi8KK3N0YXRpYyB2b2lkIGJpb19yZWdpb25fcmFuZ2Uoc3RydWN0IGNsb25lICpjbG9uZSwgc3RydWN0IGJpbyAqYmlvLAorCQkJICAgICB1bnNpZ25lZCBsb25nICpycywgdW5zaWduZWQgbG9uZyAqcmUpCit7CisJKnJzID0gZG1fc2VjdG9yX2Rpdl91cChiaW8tPmJpX2l0ZXIuYmlfc2VjdG9yLCBjbG9uZS0+cmVnaW9uX3NpemUpOworCSpyZSA9IGJpb19lbmRfc2VjdG9yKGJpbykgPj4gY2xvbmUtPnJlZ2lvbl9zaGlmdDsKK30KKworLyogQ2hlY2sgd2hldGhlciBhIGJpbyBvdmVyd3JpdGVzIGEgcmVnaW9uICovCitzdGF0aWMgaW5saW5lIGJvb2wgaXNfb3ZlcndyaXRlX2JpbyhzdHJ1Y3QgY2xvbmUgKmNsb25lLCBzdHJ1Y3QgYmlvICpiaW8pCit7CisJcmV0dXJuIChiaW9fZGF0YV9kaXIoYmlvKSA9PSBXUklURSAmJiBiaW9fc2VjdG9ycyhiaW8pID09IGNsb25lLT5yZWdpb25fc2l6ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGZhaWxfYmlvcyhzdHJ1Y3QgYmlvX2xpc3QgKmJpb3MsIGJsa19zdGF0dXNfdCBzdGF0dXMpCit7CisJc3RydWN0IGJpbyAqYmlvOworCisJd2hpbGUgKChiaW8gPSBiaW9fbGlzdF9wb3AoYmlvcykpKSB7CisJCWJpby0+Ymlfc3RhdHVzID0gc3RhdHVzOworCQliaW9fZW5kaW8oYmlvKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHN1Ym1pdF9iaW9zKHN0cnVjdCBiaW9fbGlzdCAqYmlvcykKK3sKKwlzdHJ1Y3QgYmlvICpiaW87CisJc3RydWN0IGJsa19wbHVnIHBsdWc7CisKKwlibGtfc3RhcnRfcGx1ZygmcGx1Zyk7CisKKwl3aGlsZSAoKGJpbyA9IGJpb19saXN0X3BvcChiaW9zKSkpCisJCWdlbmVyaWNfbWFrZV9yZXF1ZXN0KGJpbyk7CisKKwlibGtfZmluaXNoX3BsdWcoJnBsdWcpOworfQorCisvKgorICogU3VibWl0IGJpbyB0byB0aGUgdW5kZXJseWluZyBkZXZpY2UuCisgKgorICogSWYgdGhlIGJpbyB0cmlnZ2VycyBhIGNvbW1pdCwgZGVsYXkgaXQsIHVudGlsIGFmdGVyIHRoZSBtZXRhZGF0YSBoYXZlIGJlZW4KKyAqIGNvbW1pdHRlZC4KKyAqCisgKiBOT1RFOiBUaGUgYmlvIHJlbWFwcGluZyBtdXN0IGJlIHBlcmZvcm1lZCBieSB0aGUgY2FsbGVyLgorICovCitzdGF0aWMgdm9pZCBpc3N1ZV9iaW8oc3RydWN0IGNsb25lICpjbG9uZSwgc3RydWN0IGJpbyAqYmlvKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlpZiAoIWJpb190cmlnZ2Vyc19jb21taXQoY2xvbmUsIGJpbykpIHsKKwkJZ2VuZXJpY19tYWtlX3JlcXVlc3QoYmlvKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogSWYgdGhlIG1ldGFkYXRhIG1vZGUgaXMgUk8gb3IgRkFJTCB3ZSB3b24ndCBiZSBhYmxlIHRvIGNvbW1pdCB0aGUKKwkgKiBtZXRhZGF0YSwgc28gd2UgY29tcGxldGUgdGhlIGJpbyB3aXRoIGFuIGVycm9yLgorCSAqLworCWlmICh1bmxpa2VseShnZXRfY2xvbmVfbW9kZShjbG9uZSkgPj0gQ01fUkVBRF9PTkxZKSkgeworCQliaW9faW9fZXJyb3IoYmlvKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogQmF0Y2ggdG9nZXRoZXIgYW55IGJpb3MgdGhhdCB0cmlnZ2VyIGNvbW1pdHMgYW5kIHRoZW4gaXNzdWUgYSBzaW5nbGUKKwkgKiBjb21taXQgZm9yIHRoZW0gaW4gcHJvY2Vzc19kZWZlcnJlZF9mbHVzaF9iaW9zKCkuCisJICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNsb25lLT5sb2NrLCBmbGFncyk7CisJYmlvX2xpc3RfYWRkKCZjbG9uZS0+ZGVmZXJyZWRfZmx1c2hfYmlvcywgYmlvKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbG9uZS0+bG9jaywgZmxhZ3MpOworCisJd2FrZV93b3JrZXIoY2xvbmUpOworfQorCisvKgorICogUmVtYXAgYmlvIHRvIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UgYW5kIHN1Ym1pdCBpdC4KKyAqCisgKiBJZiB0aGUgYmlvIHRyaWdnZXJzIGEgY29tbWl0LCBkZWxheSBpdCwgdW50aWwgYWZ0ZXIgdGhlIG1ldGFkYXRhIGhhdmUgYmVlbgorICogY29tbWl0dGVkLgorICovCitzdGF0aWMgdm9pZCByZW1hcF9hbmRfaXNzdWUoc3RydWN0IGNsb25lICpjbG9uZSwgc3RydWN0IGJpbyAqYmlvKQoreworCXJlbWFwX3RvX2Rlc3QoY2xvbmUsIGJpbyk7CisJaXNzdWVfYmlvKGNsb25lLCBiaW8pOworfQorCisvKgorICogSXNzdWUgYmlvcyB0aGF0IGhhdmUgYmVlbiBkZWZlcnJlZCB1bnRpbCBhZnRlciB0aGVpciByZWdpb24gaGFzIGZpbmlzaGVkCisgKiBoeWRyYXRpbmcuCisgKgorICogV2UgZGVsZWdhdGUgdGhlIGJpbyBzdWJtaXNzaW9uIHRvIHRoZSB3b3JrZXIgdGhyZWFkLCBzbyB0aGlzIGlzIHNhZmUgdG8gY2FsbAorICogZnJvbSBpbnRlcnJ1cHQgY29udGV4dC4KKyAqLworc3RhdGljIHZvaWQgaXNzdWVfZGVmZXJyZWRfYmlvcyhzdHJ1Y3QgY2xvbmUgKmNsb25lLCBzdHJ1Y3QgYmlvX2xpc3QgKmJpb3MpCit7CisJc3RydWN0IGJpbyAqYmlvOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGJpb19saXN0IGZsdXNoX2Jpb3MgPSBCSU9fRU1QVFlfTElTVDsKKwlzdHJ1Y3QgYmlvX2xpc3Qgbm9ybWFsX2Jpb3MgPSBCSU9fRU1QVFlfTElTVDsKKworCWlmIChiaW9fbGlzdF9lbXB0eShiaW9zKSkKKwkJcmV0dXJuOworCisJd2hpbGUgKChiaW8gPSBiaW9fbGlzdF9wb3AoYmlvcykpKSB7CisJCWlmIChiaW9fdHJpZ2dlcnNfY29tbWl0KGNsb25lLCBiaW8pKQorCQkJYmlvX2xpc3RfYWRkKCZmbHVzaF9iaW9zLCBiaW8pOworCQllbHNlCisJCQliaW9fbGlzdF9hZGQoJm5vcm1hbF9iaW9zLCBiaW8pOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZjbG9uZS0+bG9jaywgZmxhZ3MpOworCWJpb19saXN0X21lcmdlKCZjbG9uZS0+ZGVmZXJyZWRfYmlvcywgJm5vcm1hbF9iaW9zKTsKKwliaW9fbGlzdF9tZXJnZSgmY2xvbmUtPmRlZmVycmVkX2ZsdXNoX2Jpb3MsICZmbHVzaF9iaW9zKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbG9uZS0+bG9jaywgZmxhZ3MpOworCisJd2FrZV93b3JrZXIoY2xvbmUpOworfQorCitzdGF0aWMgdm9pZCBjb21wbGV0ZV9vdmVyd3JpdGVfYmlvKHN0cnVjdCBjbG9uZSAqY2xvbmUsIHN0cnVjdCBiaW8gKmJpbykKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJLyoKKwkgKiBJZiB0aGUgYmlvIGhhcyB0aGUgUkVRX0ZVQSBmbGFnIHNldCB3ZSBtdXN0IGNvbW1pdCB0aGUgbWV0YWRhdGEKKwkgKiBiZWZvcmUgc2lnbmFsaW5nIGl0cyBjb21wbGV0aW9uLgorCSAqCisJICogY29tcGxldGVfb3ZlcndyaXRlX2JpbygpIGlzIG9ubHkgY2FsbGVkIGJ5IGh5ZHJhdGlvbl9jb21wbGV0ZSgpLAorCSAqIGFmdGVyIGhhdmluZyBzdWNjZXNzZnVsbHkgdXBkYXRlZCB0aGUgbWV0YWRhdGEuIFRoaXMgbWVhbnMgd2UgZG9uJ3QKKwkgKiBuZWVkIHRvIGNhbGwgZG1fY2xvbmVfY2hhbmdlZF90aGlzX3RyYW5zYWN0aW9uKCkgdG8gY2hlY2sgaWYgdGhlCisJICogbWV0YWRhdGEgaGFzIGNoYW5nZWQgYW5kIHRodXMgd2UgY2FuIGF2b2lkIHRha2luZyB0aGUgbWV0YWRhdGEgc3BpbgorCSAqIGxvY2suCisJICovCisJaWYgKCEoYmlvLT5iaV9vcGYgJiBSRVFfRlVBKSkgeworCQliaW9fZW5kaW8oYmlvKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogSWYgdGhlIG1ldGFkYXRhIG1vZGUgaXMgUk8gb3IgRkFJTCB3ZSB3b24ndCBiZSBhYmxlIHRvIGNvbW1pdCB0aGUKKwkgKiBtZXRhZGF0YSwgc28gd2UgY29tcGxldGUgdGhlIGJpbyB3aXRoIGFuIGVycm9yLgorCSAqLworCWlmICh1bmxpa2VseShnZXRfY2xvbmVfbW9kZShjbG9uZSkgPj0gQ01fUkVBRF9PTkxZKSkgeworCQliaW9faW9fZXJyb3IoYmlvKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogQmF0Y2ggdG9nZXRoZXIgYW55IGJpb3MgdGhhdCB0cmlnZ2VyIGNvbW1pdHMgYW5kIHRoZW4gaXNzdWUgYSBzaW5nbGUKKwkgKiBjb21taXQgZm9yIHRoZW0gaW4gcHJvY2Vzc19kZWZlcnJlZF9mbHVzaF9iaW9zKCkuCisJICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNsb25lLT5sb2NrLCBmbGFncyk7CisJYmlvX2xpc3RfYWRkKCZjbG9uZS0+ZGVmZXJyZWRfZmx1c2hfY29tcGxldGlvbnMsIGJpbyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2xvbmUtPmxvY2ssIGZsYWdzKTsKKworCXdha2Vfd29ya2VyKGNsb25lKTsKK30KKworc3RhdGljIHZvaWQgdHJpbV9iaW8oc3RydWN0IGJpbyAqYmlvLCBzZWN0b3JfdCBzZWN0b3IsIHVuc2lnbmVkIGludCBsZW4pCit7CisJYmlvLT5iaV9pdGVyLmJpX3NlY3RvciA9IHNlY3RvcjsKKwliaW8tPmJpX2l0ZXIuYmlfc2l6ZSA9IHRvX2J5dGVzKGxlbik7Cit9CisKK3N0YXRpYyB2b2lkIGNvbXBsZXRlX2Rpc2NhcmRfYmlvKHN0cnVjdCBjbG9uZSAqY2xvbmUsIHN0cnVjdCBiaW8gKmJpbywgYm9vbCBzdWNjZXNzKQoreworCXVuc2lnbmVkIGxvbmcgcnMsIHJlOworCisJLyoKKwkgKiBJZiB0aGUgZGVzdGluYXRpb24gZGV2aWNlIHN1cHBvcnRzIGRpc2NhcmRzLCByZW1hcCBhbmQgdHJpbSB0aGUKKwkgKiBkaXNjYXJkIGJpbyBhbmQgcGFzcyBpdCBkb3duLiBPdGhlcndpc2UgY29tcGxldGUgdGhlIGJpbworCSAqIGltbWVkaWF0ZWx5LgorCSAqLworCWlmICh0ZXN0X2JpdChETV9DTE9ORV9ESVNDQVJEX1BBU1NET1dOLCAmY2xvbmUtPmZsYWdzKSAmJiBzdWNjZXNzKSB7CisJCXJlbWFwX3RvX2Rlc3QoY2xvbmUsIGJpbyk7CisJCWJpb19yZWdpb25fcmFuZ2UoY2xvbmUsIGJpbywgJnJzLCAmcmUpOworCQl0cmltX2JpbyhiaW8sIHJzIDw8IGNsb25lLT5yZWdpb25fc2hpZnQsCisJCQkgKHJlIC0gcnMpIDw8IGNsb25lLT5yZWdpb25fc2hpZnQpOworCQlnZW5lcmljX21ha2VfcmVxdWVzdChiaW8pOworCX0gZWxzZQorCQliaW9fZW5kaW8oYmlvKTsKK30KKworc3RhdGljIHZvaWQgcHJvY2Vzc19kaXNjYXJkX2JpbyhzdHJ1Y3QgY2xvbmUgKmNsb25lLCBzdHJ1Y3QgYmlvICpiaW8pCit7CisJdW5zaWduZWQgbG9uZyBycywgcmUsIGZsYWdzOworCisJYmlvX3JlZ2lvbl9yYW5nZShjbG9uZSwgYmlvLCAmcnMsICZyZSk7CisJQlVHX09OKHJlID4gY2xvbmUtPm5yX3JlZ2lvbnMpOworCisJaWYgKHVubGlrZWx5KHJzID09IHJlKSkgeworCQliaW9fZW5kaW8oYmlvKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogVGhlIGNvdmVyZWQgcmVnaW9ucyBhcmUgYWxyZWFkeSBoeWRyYXRlZCBzbyB3ZSBqdXN0IG5lZWQgdG8gcGFzcworCSAqIGRvd24gdGhlIGRpc2NhcmQuCisJICovCisJaWYgKGRtX2Nsb25lX2lzX3JhbmdlX2h5ZHJhdGVkKGNsb25lLT5jbWQsIHJzLCByZSAtIHJzKSkgeworCQljb21wbGV0ZV9kaXNjYXJkX2JpbyhjbG9uZSwgYmlvLCB0cnVlKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogSWYgdGhlIG1ldGFkYXRhIG1vZGUgaXMgUk8gb3IgRkFJTCB3ZSB3b24ndCBiZSBhYmxlIHRvIHVwZGF0ZSB0aGUKKwkgKiBtZXRhZGF0YSBmb3IgdGhlIHJlZ2lvbnMgY292ZXJlZCBieSB0aGUgZGlzY2FyZCBzbyB3ZSBqdXN0IGlnbm9yZQorCSAqIGl0LgorCSAqLworCWlmICh1bmxpa2VseShnZXRfY2xvbmVfbW9kZShjbG9uZSkgPj0gQ01fUkVBRF9PTkxZKSkgeworCQliaW9fZW5kaW8oYmlvKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogRGVmZXIgZGlzY2FyZCBwcm9jZXNzaW5nLgorCSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZjbG9uZS0+bG9jaywgZmxhZ3MpOworCWJpb19saXN0X2FkZCgmY2xvbmUtPmRlZmVycmVkX2Rpc2NhcmRfYmlvcywgYmlvKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbG9uZS0+bG9jaywgZmxhZ3MpOworCisJd2FrZV93b3JrZXIoY2xvbmUpOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKiBkbS1jbG9uZSByZWdpb24gaHlkcmF0aW9ucy4KKyAqLworc3RydWN0IGRtX2Nsb25lX3JlZ2lvbl9oeWRyYXRpb24geworCXN0cnVjdCBjbG9uZSAqY2xvbmU7CisJdW5zaWduZWQgbG9uZyByZWdpb25fbnI7CisKKwlzdHJ1Y3QgYmlvICpvdmVyd3JpdGVfYmlvOworCWJpb19lbmRfaW9fdCAqb3ZlcndyaXRlX2Jpb19lbmRfaW87CisKKwlzdHJ1Y3QgYmlvX2xpc3QgZGVmZXJyZWRfYmlvczsKKworCWJsa19zdGF0dXNfdCBzdGF0dXM7CisKKwkvKiBVc2VkIGJ5IGh5ZHJhdGlvbiBiYXRjaGluZyAqLworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKworCS8qIFVzZWQgYnkgaHlkcmF0aW9uIGhhc2ggdGFibGUgKi8KKwlzdHJ1Y3QgaGxpc3Rfbm9kZSBoOworfTsKKworLyoKKyAqIEh5ZHJhdGlvbiBoYXNoIHRhYmxlIGltcGxlbWVudGF0aW9uLgorICoKKyAqIElkZWFsbHkgd2Ugd291bGQgbGlrZSB0byB1c2UgbGlzdF9ibCwgd2hpY2ggdXNlcyBiaXQgc3BpbiBsb2NrcyBhbmQgZW1wbG95cworICogdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdCBvZiB0aGUgbGlzdCBoZWFkIHRvIGxvY2sgdGhlIGNvcnJlc3BvbmRpbmcgYnVja2V0LAorICogcmVkdWNpbmcgdGhlIG1lbW9yeSBvdmVyaGVhZCBmb3IgdGhlIGxvY2tzLiBCdXQsIGN1cnJlbnRseSwgbGlzdF9ibCBhbmQgYml0CisgKiBzcGluIGxvY2tzIGRvbid0IHN1cHBvcnQgSVJRIHNhZmUgdmVyc2lvbnMuIFNpbmNlIHdlIGhhdmUgdG8gdGFrZSB0aGUgbG9jaworICogaW4gYm90aCBwcm9jZXNzIGFuZCBpbnRlcnJ1cHQgY29udGV4dCwgd2UgbXVzdCBmYWxsIGJhY2sgdG8gdXNpbmcgcmVndWxhcgorICogc3BpbiBsb2Nrczsgb25lIHBlciBoYXNoIHRhYmxlIGJ1Y2tldC4KKyAqLworc3RydWN0IGhhc2hfdGFibGVfYnVja2V0IHsKKwlzdHJ1Y3QgaGxpc3RfaGVhZCBoZWFkOworCisJLyogU3BpbmxvY2sgcHJvdGVjdGluZyB0aGUgYnVja2V0ICovCisJc3BpbmxvY2tfdCBsb2NrOworfTsKKworI2RlZmluZSBidWNrZXRfbG9ja19pcnFzYXZlKGJ1Y2tldCwgZmxhZ3MpIFwKKwlzcGluX2xvY2tfaXJxc2F2ZSgmKGJ1Y2tldCktPmxvY2ssIGZsYWdzKQorCisjZGVmaW5lIGJ1Y2tldF91bmxvY2tfaXJxcmVzdG9yZShidWNrZXQsIGZsYWdzKSBcCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmKGJ1Y2tldCktPmxvY2ssIGZsYWdzKQorCitzdGF0aWMgaW50IGhhc2hfdGFibGVfaW5pdChzdHJ1Y3QgY2xvbmUgKmNsb25lKQoreworCXVuc2lnbmVkIGludCBpLCBzejsKKwlzdHJ1Y3QgaGFzaF90YWJsZV9idWNrZXQgKmJ1Y2tldDsKKworCXN6ID0gMSA8PCBIQVNIX1RBQkxFX0JJVFM7CisKKwljbG9uZS0+aHQgPSBrdm1hbGxvYyhzeiAqIHNpemVvZihzdHJ1Y3QgaGFzaF90YWJsZV9idWNrZXQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNsb25lLT5odCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlmb3IgKGkgPSAwOyBpIDwgc3o7IGkrKykgeworCQlidWNrZXQgPSBjbG9uZS0+aHQgKyBpOworCisJCUlOSVRfSExJU1RfSEVBRCgmYnVja2V0LT5oZWFkKTsKKwkJc3Bpbl9sb2NrX2luaXQoJmJ1Y2tldC0+bG9jayk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGhhc2hfdGFibGVfZXhpdChzdHJ1Y3QgY2xvbmUgKmNsb25lKQoreworCWt2ZnJlZShjbG9uZS0+aHQpOworfQorCitzdGF0aWMgc3RydWN0IGhhc2hfdGFibGVfYnVja2V0ICpnZXRfaGFzaF90YWJsZV9idWNrZXQoc3RydWN0IGNsb25lICpjbG9uZSwKKwkJCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHJlZ2lvbl9ucikKK3sKKwlyZXR1cm4gJmNsb25lLT5odFtoYXNoX2xvbmcocmVnaW9uX25yLCBIQVNIX1RBQkxFX0JJVFMpXTsKK30KKworLyoKKyAqIFNlYXJjaCBoYXNoIHRhYmxlIGZvciBhIGh5ZHJhdGlvbiB3aXRoIGhkLT5yZWdpb25fbnIgPT0gcmVnaW9uX25yCisgKgorICogTk9URTogTXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgYnVja2V0IGxvY2sgaGVsZAorICovCitzdHJ1Y3QgZG1fY2xvbmVfcmVnaW9uX2h5ZHJhdGlvbiAqX19oYXNoX2ZpbmQoc3RydWN0IGhhc2hfdGFibGVfYnVja2V0ICpidWNrZXQsCisJCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgcmVnaW9uX25yKQoreworCXN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICpoZDsKKworCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KGhkLCAmYnVja2V0LT5oZWFkLCBoKSB7CisJCWlmIChoZC0+cmVnaW9uX25yID09IHJlZ2lvbl9ucikKKwkJCXJldHVybiBoZDsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworLyoKKyAqIEluc2VydCBhIGh5ZHJhdGlvbiBpbnRvIHRoZSBoYXNoIHRhYmxlLgorICoKKyAqIE5PVEU6IE11c3QgYmUgY2FsbGVkIHdpdGggdGhlIGJ1Y2tldCBsb2NrIGhlbGQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2luc2VydF9yZWdpb25faHlkcmF0aW9uKHN0cnVjdCBoYXNoX3RhYmxlX2J1Y2tldCAqYnVja2V0LAorCQkJCQkgICAgIHN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICpoZCkKK3sKKwlobGlzdF9hZGRfaGVhZCgmaGQtPmgsICZidWNrZXQtPmhlYWQpOworfQorCisvKgorICogVGhpcyBmdW5jdGlvbiBpbnNlcnRzIGEgaHlkcmF0aW9uIGludG8gdGhlIGhhc2ggdGFibGUsIHVubGVzcyBzb21lb25lIGVsc2UKKyAqIG1hbmFnZWQgdG8gaW5zZXJ0IGEgaHlkcmF0aW9uIGZvciB0aGUgc2FtZSByZWdpb24gZmlyc3QuIEluIHRoZSBsYXR0ZXIgY2FzZQorICogaXQgcmV0dXJucyB0aGUgZXhpc3RpbmcgaHlkcmF0aW9uIGRlc2NyaXB0b3IgZm9yIHRoaXMgcmVnaW9uLgorICoKKyAqIE5PVEU6IE11c3QgYmUgY2FsbGVkIHdpdGggdGhlIGh5ZHJhdGlvbiBoYXNoIHRhYmxlIGxvY2sgaGVsZC4KKyAqLworc3RhdGljIHN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICoKK19fZmluZF9vcl9pbnNlcnRfcmVnaW9uX2h5ZHJhdGlvbihzdHJ1Y3QgaGFzaF90YWJsZV9idWNrZXQgKmJ1Y2tldCwKKwkJCQkgIHN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICpoZCkKK3sKKwlzdHJ1Y3QgZG1fY2xvbmVfcmVnaW9uX2h5ZHJhdGlvbiAqaGQyOworCisJaGQyID0gX19oYXNoX2ZpbmQoYnVja2V0LCBoZC0+cmVnaW9uX25yKTsKKwlpZiAoaGQyKQorCQlyZXR1cm4gaGQyOworCisJX19pbnNlcnRfcmVnaW9uX2h5ZHJhdGlvbihidWNrZXQsIGhkKTsKKworCXJldHVybiBoZDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBBbGxvY2F0ZSBhIGh5ZHJhdGlvbiAqLworc3RhdGljIHN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICphbGxvY19oeWRyYXRpb24oc3RydWN0IGNsb25lICpjbG9uZSkKK3sKKwlzdHJ1Y3QgZG1fY2xvbmVfcmVnaW9uX2h5ZHJhdGlvbiAqaGQ7CisKKwkvKgorCSAqIEFsbG9jYXRlIGEgaHlkcmF0aW9uIGZyb20gdGhlIGh5ZHJhdGlvbiBtZW1wb29sLgorCSAqIFRoaXMgbWlnaHQgYmxvY2sgYnV0IGl0IGNhbid0IGZhaWwuCisJICovCisJaGQgPSBtZW1wb29sX2FsbG9jKCZjbG9uZS0+aHlkcmF0aW9uX3Bvb2wsIEdGUF9OT0lPKTsKKwloZC0+Y2xvbmUgPSBjbG9uZTsKKworCXJldHVybiBoZDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGZyZWVfaHlkcmF0aW9uKHN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICpoZCkKK3sKKwltZW1wb29sX2ZyZWUoaGQsICZoZC0+Y2xvbmUtPmh5ZHJhdGlvbl9wb29sKTsKK30KKworLyogSW5pdGlhbGl6ZSBhIGh5ZHJhdGlvbiAqLworc3RhdGljIHZvaWQgaHlkcmF0aW9uX2luaXQoc3RydWN0IGRtX2Nsb25lX3JlZ2lvbl9oeWRyYXRpb24gKmhkLCB1bnNpZ25lZCBsb25nIHJlZ2lvbl9ucikKK3sKKwloZC0+cmVnaW9uX25yID0gcmVnaW9uX25yOworCWhkLT5vdmVyd3JpdGVfYmlvID0gTlVMTDsKKwliaW9fbGlzdF9pbml0KCZoZC0+ZGVmZXJyZWRfYmlvcyk7CisJaGQtPnN0YXR1cyA9IDA7CisKKwlJTklUX0xJU1RfSEVBRCgmaGQtPmxpc3QpOworCUlOSVRfSExJU1RfTk9ERSgmaGQtPmgpOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKiBVcGRhdGUgZG0tY2xvbmUncyBtZXRhZGF0YSBhZnRlciBhIHJlZ2lvbiBoYXMgZmluaXNoZWQgaHlkcmF0aW5nIGFuZCByZW1vdmUKKyAqIGh5ZHJhdGlvbiBmcm9tIHRoZSBoYXNoIHRhYmxlLgorICovCitzdGF0aWMgaW50IGh5ZHJhdGlvbl91cGRhdGVfbWV0YWRhdGEoc3RydWN0IGRtX2Nsb25lX3JlZ2lvbl9oeWRyYXRpb24gKmhkKQoreworCWludCByID0gMDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBoYXNoX3RhYmxlX2J1Y2tldCAqYnVja2V0OworCXN0cnVjdCBjbG9uZSAqY2xvbmUgPSBoZC0+Y2xvbmU7CisKKwlpZiAodW5saWtlbHkoZ2V0X2Nsb25lX21vZGUoY2xvbmUpID49IENNX1JFQURfT05MWSkpCisJCXIgPSAtRVBFUk07CisKKwkvKiBVcGRhdGUgdGhlIG1ldGFkYXRhICovCisJaWYgKGxpa2VseSghcikgJiYgaGQtPnN0YXR1cyA9PSBCTEtfU1RTX09LKQorCQlyID0gZG1fY2xvbmVfc2V0X3JlZ2lvbl9oeWRyYXRlZChjbG9uZS0+Y21kLCBoZC0+cmVnaW9uX25yKTsKKworCWJ1Y2tldCA9IGdldF9oYXNoX3RhYmxlX2J1Y2tldChjbG9uZSwgaGQtPnJlZ2lvbl9ucik7CisKKwkvKiBSZW1vdmUgaHlkcmF0aW9uIGZyb20gaGFzaCB0YWJsZSAqLworCWJ1Y2tldF9sb2NrX2lycXNhdmUoYnVja2V0LCBmbGFncyk7CisJaGxpc3RfZGVsKCZoZC0+aCk7CisJYnVja2V0X3VubG9ja19pcnFyZXN0b3JlKGJ1Y2tldCwgZmxhZ3MpOworCisJcmV0dXJuIHI7Cit9CisKKy8qCisgKiBDb21wbGV0ZSBhIHJlZ2lvbidzIGh5ZHJhdGlvbjoKKyAqCisgKgkxLiBVcGRhdGUgZG0tY2xvbmUncyBtZXRhZGF0YS4KKyAqCTIuIFJlbW92ZSBoeWRyYXRpb24gZnJvbSBoYXNoIHRhYmxlLgorICoJMy4gQ29tcGxldGUgb3ZlcndyaXRlIGJpby4KKyAqCTQuIElzc3VlIGRlZmVycmVkIGJpb3MuCisgKgk1LiBJZiB0aGlzIHdhcyB0aGUgbGFzdCBoeWRyYXRpb24sIHdha2UgdXAgYW55b25lIHdhaXRpbmcgZm9yCisgKgkgICBoeWRyYXRpb25zIHRvIGZpbmlzaC4KKyAqLworc3RhdGljIHZvaWQgaHlkcmF0aW9uX2NvbXBsZXRlKHN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICpoZCkKK3sKKwlpbnQgcjsKKwlibGtfc3RhdHVzX3Qgc3RhdHVzOworCXN0cnVjdCBjbG9uZSAqY2xvbmUgPSBoZC0+Y2xvbmU7CisKKwlyID0gaHlkcmF0aW9uX3VwZGF0ZV9tZXRhZGF0YShoZCk7CisKKwlpZiAoaGQtPnN0YXR1cyA9PSBCTEtfU1RTX09LICYmIGxpa2VseSghcikpIHsKKwkJaWYgKGhkLT5vdmVyd3JpdGVfYmlvKQorCQkJY29tcGxldGVfb3ZlcndyaXRlX2JpbyhjbG9uZSwgaGQtPm92ZXJ3cml0ZV9iaW8pOworCisJCWlzc3VlX2RlZmVycmVkX2Jpb3MoY2xvbmUsICZoZC0+ZGVmZXJyZWRfYmlvcyk7CisJfSBlbHNlIHsKKwkJc3RhdHVzID0gciA/IEJMS19TVFNfSU9FUlIgOiBoZC0+c3RhdHVzOworCisJCWlmIChoZC0+b3ZlcndyaXRlX2JpbykKKwkJCWJpb19saXN0X2FkZCgmaGQtPmRlZmVycmVkX2Jpb3MsIGhkLT5vdmVyd3JpdGVfYmlvKTsKKworCQlmYWlsX2Jpb3MoJmhkLT5kZWZlcnJlZF9iaW9zLCBzdGF0dXMpOworCX0KKworCWZyZWVfaHlkcmF0aW9uKGhkKTsKKworCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjbG9uZS0+aHlkcmF0aW9uc19pbl9mbGlnaHQpKQorCQl3YWtldXBfaHlkcmF0aW9uX3dhaXRlcnMoY2xvbmUpOworfQorCitzdGF0aWMgdm9pZCBoeWRyYXRpb25fa2NvcHlkX2NhbGxiYWNrKGludCByZWFkX2VyciwgdW5zaWduZWQgbG9uZyB3cml0ZV9lcnIsIHZvaWQgKmNvbnRleHQpCit7CisJYmxrX3N0YXR1c190IHN0YXR1czsKKworCXN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICp0bXAsICpoZCA9IGNvbnRleHQ7CisJc3RydWN0IGNsb25lICpjbG9uZSA9IGhkLT5jbG9uZTsKKworCUxJU1RfSEVBRChiYXRjaGVkX2h5ZHJhdGlvbnMpOworCisJaWYgKHJlYWRfZXJyIHx8IHdyaXRlX2VycikgeworCQlETUVSUl9MSU1JVCgiJXM6IGh5ZHJhdGlvbiBmYWlsZWQiLCBjbG9uZV9kZXZpY2VfbmFtZShjbG9uZSkpOworCQlzdGF0dXMgPSBCTEtfU1RTX0lPRVJSOworCX0gZWxzZSB7CisJCXN0YXR1cyA9IEJMS19TVFNfT0s7CisJfQorCWxpc3Rfc3BsaWNlX3RhaWwoJmhkLT5saXN0LCAmYmF0Y2hlZF9oeWRyYXRpb25zKTsKKworCWhkLT5zdGF0dXMgPSBzdGF0dXM7CisJaHlkcmF0aW9uX2NvbXBsZXRlKGhkKTsKKworCS8qIENvbXBsZXRlIGJhdGNoZWQgaHlkcmF0aW9ucyAqLworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShoZCwgdG1wLCAmYmF0Y2hlZF9oeWRyYXRpb25zLCBsaXN0KSB7CisJCWhkLT5zdGF0dXMgPSBzdGF0dXM7CisJCWh5ZHJhdGlvbl9jb21wbGV0ZShoZCk7CisJfQorCisJLyogQ29udGludWUgYmFja2dyb3VuZCBoeWRyYXRpb24sIGlmIHRoZXJlIGlzIG5vIEkvTyBpbi1mbGlnaHQgKi8KKwlpZiAodGVzdF9iaXQoRE1fQ0xPTkVfSFlEUkFUSU9OX0VOQUJMRUQsICZjbG9uZS0+ZmxhZ3MpICYmCisJICAgICFhdG9taWNfcmVhZCgmY2xvbmUtPmlvc19pbl9mbGlnaHQpKQorCQl3YWtlX3dvcmtlcihjbG9uZSk7Cit9CisKK3N0YXRpYyB2b2lkIGh5ZHJhdGlvbl9jb3B5KHN0cnVjdCBkbV9jbG9uZV9yZWdpb25faHlkcmF0aW9uICpoZCwgdW5zaWduZWQgaW50IG5yX3JlZ2lvbnMpCit7CisJdW5zaWduZWQgbG9uZyByZWdpb25fc3RhcnQsIHJlZ2lvbl9lbmQ7CisJc2VjdG9yX3QgdGFpbF9zaXplLCByZWdpb25fc2l6ZSwgdG90YWxfc2l6ZTsKKwlzdHJ1Y3QgZG1faW9fcmVnaW9uIGZyb20sIHRvOworCXN0cnVjdCBjbG9uZSAqY2xvbmUgPSBoZC0+Y2xvbmU7CisKKwlyZWdpb25fc2l6ZSA9IGNsb25lLT5yZWdpb25fc2l6ZTsKKwlyZWdpb25fc3RhcnQgPSBoZC0+cmVnaW9uX25yOworCXJlZ2lvbl9lbmQgPSByZWdpb25fc3RhcnQgKyBucl9yZWdpb25zIC0gMTsKKworCXRvdGFsX3NpemUgPSAobnJfcmVnaW9ucyAtIDEpIDw8IGNsb25lLT5yZWdpb25fc2hpZnQ7CisKKwlpZiAocmVnaW9uX2VuZCA9PSBjbG9uZS0+bnJfcmVnaW9ucyAtIDEpIHsKKwkJLyoKKwkJICogVGhlIGxhc3QgcmVnaW9uIG9mIHRoZSB0YXJnZXQgbWlnaHQgYmUgc21hbGxlciB0aGFuCisJCSAqIHJlZ2lvbl9zaXplLgorCQkgKi8KKwkJdGFpbF9zaXplID0gY2xvbmUtPnRpLT5sZW4gJiAocmVnaW9uX3NpemUgLSAxKTsKKwkJaWYgKCF0YWlsX3NpemUpCisJCQl0YWlsX3NpemUgPSByZWdpb25fc2l6ZTsKKwl9IGVsc2UgeworCQl0YWlsX3NpemUgPSByZWdpb25fc2l6ZTsKKwl9CisKKwl0b3RhbF9zaXplICs9IHRhaWxfc2l6ZTsKKworCWZyb20uYmRldiA9IGNsb25lLT5zb3VyY2VfZGV2LT5iZGV2OworCWZyb20uc2VjdG9yID0gcmVnaW9uX3RvX3NlY3RvcihjbG9uZSwgcmVnaW9uX3N0YXJ0KTsKKwlmcm9tLmNvdW50ID0gdG90YWxfc2l6ZTsKKworCXRvLmJkZXYgPSBjbG9uZS0+ZGVzdF9kZXYtPmJkZXY7CisJdG8uc2VjdG9yID0gZnJvbS5zZWN0b3I7CisJdG8uY291bnQgPSBmcm9tLmNvdW50OworCisJLyogSXNzdWUgY29weSAqLworCWF0b21pY19hZGQobnJfcmVnaW9ucywgJmNsb25lLT5oeWRyYXRpb25zX2luX2ZsaWdodCk7CisJZG1fa2NvcHlkX2NvcHkoY2xvbmUtPmtjb3B5ZF9jbGllbnQsICZmcm9tLCAxLCAmdG8sIDAsCisJCSAgICAgICBoeWRyYXRpb25fa2NvcHlkX2NhbGxiYWNrLCBoZCk7Cit9CisKK3N0YXRpYyB2b2lkIG92ZXJ3cml0ZV9lbmRpbyhzdHJ1Y3QgYmlvICpiaW8pCit7CisJc3RydWN0IGRtX2Nsb25lX3JlZ2lvbl9oeWRyYXRpb24gKmhkID0gYmlvLT5iaV9wcml2YXRlOworCisJYmlvLT5iaV9lbmRfaW8gPSBoZC0+b3ZlcndyaXRlX2Jpb19lbmRfaW87CisJaGQtPnN0YXR1cyA9IGJpby0+Ymlfc3RhdHVzOworCisJaHlkcmF0aW9uX2NvbXBsZXRlKGhkKTsKK30KKworc3RhdGljIHZvaWQgaHlkcmF0aW9uX292ZXJ3cml0ZShzdHJ1Y3QgZG1fY2xvbmVfcmVnaW9uX2h5ZHJhdGlvbiAqaGQsIHN0cnVjdCBiaW8gKmJpbykKK3sKKwkvKgorCSAqIFdlIGRvbid0IG5lZWQgdG8gc2F2ZSBhbmQgcmVzdG9yZSBiaW8tPmJpX3ByaXZhdGUgYmVjYXVzZSBkZXZpY2UKKwkgKiBtYXBwZXIgY29yZSBnZW5lcmF0ZXMgYSBuZXcgYmlvIGZvciB1cyB0byB1c2UsIHdpdGggY2xlYW4KKwkgKiBiaV9wcml2YXRlLgorCSAqLworCWhkLT5vdmVyd3JpdGVfYmlvID0gYmlvOworCWhkLT5vdmVyd3JpdGVfYmlvX2VuZF9pbyA9IGJpby0+YmlfZW5kX2lvOworCisJYmlvLT5iaV9lbmRfaW8gPSBvdmVyd3JpdGVfZW5kaW87CisJYmlvLT5iaV9wcml2YXRlID0gaGQ7CisKKwlhdG9taWNfaW5jKCZoZC0+Y2xvbmUtPmh5ZHJhdGlvbnNfaW5fZmxpZ2h0KTsKKwlnZW5lcmljX21ha2VfcmVxdWVzdChiaW8pOworfQorCisvKgorICogSHlkcmF0ZSBiaW8ncyByZWdpb24uCisgKgorICogVGhpcyBmdW5jdGlvbiBzdGFydHMgdGhlIGh5ZHJhdGlvbiBvZiB0aGUgYmlvJ3MgcmVnaW9uIGFuZCBwdXRzIHRoZSBiaW8gaW4KKyAqIHRoZSBsaXN0IG9mIGRlZmVycmVkIGJpb3MgZm9yIHRoaXMgcmVnaW9uLiBJbiBjYXNlLCBieSB0aGUgdGltZSB0aGlzCisgKiBmdW5jdGlvbiBpcyBjYWxsZWQsIHRoZSByZWdpb24gaGFzIGZpbmlzaGVkIGh5ZHJhdGluZyBpdCdzIHN1Ym1pdHRlZCB0byB0aGUKKyAqIGRlc3RpbmF0aW9uIGRldmljZS4KKyAqCisgKiBOT1RFOiBUaGUgYmlvIHJlbWFwcGluZyBtdXN0IGJlIHBlcmZvcm1lZCBieSB0aGUgY2FsbGVyLgorICovCitzdGF0aWMgdm9pZCBoeWRyYXRlX2Jpb19yZWdpb24oc3RydWN0IGNsb25lICpjbG9uZSwgc3RydWN0IGJpbyAqYmlvKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyByZWdpb25fbnI7CisJc3RydWN0IGhhc2hfdGFibGVfYnVja2V0ICpidWNrZXQ7CisJc3RydWN0IGRtX2Nsb25lX3JlZ2lvbl9oeWRyYXRpb24gKmhkLCAqaGQyOworCisJcmVnaW9uX25yID0gYmlvX3RvX3JlZ2lvbihjbG9uZSwgYmlvKTsKKwlidWNrZXQgPSBnZXRfaGFzaF90YWJsZV9idWNrZXQoY2xvbmUsIHJlZ2lvbl9ucik7CisKKwlidWNrZXRfbG9ja19pcnFzYXZlKGJ1Y2tldCwgZmxhZ3MpOworCisJaGQgPSBfX2hhc2hfZmluZChidWNrZXQsIHJlZ2lvbl9ucik7CisJaWYgKGhkKSB7CisJCS8qIFNvbWVvbmUgZWxzZSBpcyBoeWRyYXRpbmcgdGhlIHJlZ2lvbiAqLworCQliaW9fbGlzdF9hZGQoJmhkLT5kZWZlcnJlZF9iaW9zLCBiaW8pOworCQlidWNrZXRfdW5sb2NrX2lycXJlc3RvcmUoYnVja2V0LCBmbGFncyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoZG1fY2xvbmVfaXNfcmVnaW9uX2h5ZHJhdGVkKGNsb25lLT5jbWQsIHJlZ2lvbl9ucikpIHsKKwkJLyogVGhlIHJlZ2lvbiBoYXMgYmVlbiBoeWRyYXRlZCAqLworCQlidWNrZXRfdW5sb2NrX2lycXJlc3RvcmUoYnVja2V0LCBmbGFncyk7CisJCWlzc3VlX2JpbyhjbG9uZSwgYmlvKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogV2UgbXVzdCBhbGxvY2F0ZSBhIGh5ZHJhdGlvbiBkZXNjcmlwdG9yIGFuZCBzdGFydCB0aGUgaHlkcmF0aW9uIG9mCisJICogdGhlIGNvcnJlc3BvbmRpbmcgcmVnaW9uLgorCSAqLworCWJ1Y2tldF91bmxvY2tfaXJxcmVzdG9yZShidWNrZXQsIGZsYWdzKTsKKworCWhkID0gYWxsb2NfaHlkcmF0aW9uKGNsb25lKTsKKwloeWRyYXRpb25faW5pdChoZCwgcmVnaW9uX25yKTsKKworCWJ1Y2tldF9sb2NrX2lycXNhdmUoYnVja2V0LCBmbGFncyk7CisKKwkvKiBDaGVjayBpZiB0aGUgcmVnaW9uIGhhcyBiZWVuIGh5ZHJhdGVkIGluIHRoZSBtZWFudGltZS4gKi8KKwlpZiAoZG1fY2xvbmVfaXNfcmVnaW9uX2h5ZHJhdGVkKGNsb25lLT5jbWQsIHJlZ2lvbl9ucikpIHsKKwkJYnVja2V0X3VubG9ja19pcnFyZXN0b3JlKGJ1Y2tldCwgZmxhZ3MpOworCQlmcmVlX2h5ZHJhdGlvbihoZCk7CisJCWlzc3VlX2JpbyhjbG9uZSwgYmlvKTsKKwkJcmV0dXJuOworCX0KKworCWhkMiA9IF9fZmluZF9vcl9pbnNlcnRfcmVnaW9uX2h5ZHJhdGlvbihidWNrZXQsIGhkKTsKKwlpZiAoaGQyICE9IGhkKSB7CisJCS8qIFNvbWVvbmUgZWxzZSBzdGFydGVkIHRoZSByZWdpb24ncyBoeWRyYXRpb24uICovCisJCWJpb19saXN0X2FkZCgmaGQyLT5kZWZlcnJlZF9iaW9zLCBiaW8pOworCQlidWNrZXRfdW5sb2NrX2lycXJlc3RvcmUoYnVja2V0LCBmbGFncyk7CisJCWZyZWVfaHlkcmF0aW9uKGhkKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogSWYgdGhlIG1ldGFkYXRhIG1vZGUgaXMgUk8gb3IgRkFJTCB0aGVuIHRoZXJlIGlzIG5vIHBvaW50IHN0YXJ0aW5nIGEKKwkgKiBoeWRyYXRpb24sIHNpbmNlIHdlIHdpbGwgbm90IGJlIGFibGUgdG8gdXBkYXRlIHRoZSBtZXRhZGF0YSB3aGVuIHRoZQorCSAqIGh5ZHJhdGlvbiBmaW5pc2hlcy4KKwkgKi8KKwlpZiAodW5saWtlbHkoZ2V0X2Nsb25lX21vZGUoY2xvbmUpID49IENNX1JFQURfT05MWSkpIHsKKwkJaGxpc3RfZGVsKCZoZC0+aCk7CisJCWJ1Y2tldF91bmxvY2tfaXJxcmVzdG9yZShidWNrZXQsIGZsYWdzKTsKKwkJZnJlZV9oeWRyYXRpb24oaGQpOworCQliaW9faW9fZXJyb3IoYmlvKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogU3RhcnQgcmVnaW9uIGh5ZHJhdGlvbi4KKwkgKgorCSAqIElmIGEgYmlvIG92ZXJ3cml0ZXMgYSByZWdpb24sIGkuZS4sIGl0cyBzaXplIGlzIGVxdWFsIHRvIHRoZQorCSAqIHJlZ2lvbidzIHNpemUsIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byBjb3B5IHRoZSByZWdpb24gZnJvbSB0aGUgc291cmNlCisJICogdG8gdGhlIGRlc3RpbmF0aW9uIGRldmljZS4KKwkgKi8KKwlpZiAoaXNfb3ZlcndyaXRlX2JpbyhjbG9uZSwgYmlvKSkgeworCQlidWNrZXRfdW5sb2NrX2lycXJlc3RvcmUoYnVja2V0LCBmbGFncyk7CisJCWh5ZHJhdGlvbl9vdmVyd3JpdGUoaGQsIGJpbyk7CisJfSBlbHNlIHsKKwkJYmlvX2xpc3RfYWRkKCZoZC0+ZGVmZXJyZWRfYmlvcywgYmlvKTsKKwkJYnVja2V0X3VubG9ja19pcnFyZXN0b3JlKGJ1Y2tldCwgZmxhZ3MpOworCQloeWRyYXRpb25fY29weShoZCwgMSk7CisJfQorfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKiBCYWNrZ3JvdW5kIGh5ZHJhdGlvbnMuCisgKi8KKworLyoKKyAqIEJhdGNoIHJlZ2lvbiBoeWRyYXRpb25zLgorICoKKyAqIFRvIGJldHRlciB1dGlsaXplIGRldmljZSBiYW5kd2lkdGggd2UgYmF0Y2ggdG9nZXRoZXIgdGhlIGh5ZHJhdGlvbiBvZgorICogYWRqYWNlbnQgcmVnaW9ucy4gVGhpcyBhbGxvd3MgdXMgdG8gdXNlIHNtYWxsIHJlZ2lvbiBzaXplcywgZS5nLiwgNEtCLCB3aGljaAorICogaXMgZ29vZCBmb3Igc21hbGwsIHJhbmRvbSB3cml0ZSBwZXJmb3JtYW5jZSAoYmVjYXVzZSBvZiB0aGUgb3ZlcndyaXRpbmcgb2YKKyAqIHVuLWh5ZHJhdGVkIHJlZ2lvbnMpIGFuZCBhdCB0aGUgc2FtZSB0aW1lIGlzc3VlIGJpZyBjb3B5IHJlcXVlc3RzIHRvIGtjb3B5ZAorICogdG8gYWNoaWV2ZSBoaWdoIGh5ZHJhdGlvbiBiYW5kd2lkdGguCisgKi8KK3N0cnVjdCBiYXRjaF9pbmZvIHsKKwlzdHJ1Y3QgZG1fY2xvbmVfcmVnaW9uX2h5ZHJhdGlvbiAqaGVhZDsKKwl1bnNpZ25lZCBpbnQgbnJfYmF0Y2hlZF9yZWdpb25zOworfTsKKworc3RhdGljIHZvaWQgX19iYXRjaF9oeWRyYXRpb24oc3RydWN0IGJhdGNoX2luZm8gKmJhdGNoLAorCQkJICAgICAgc3RydWN0IGRtX2Nsb25lX3JlZ2lvbl9oeWRyYXRpb24gKmhkKQoreworCXN0cnVjdCBjbG9uZSAqY2xvbmUgPSBoZC0+Y2xvbmU7CisJdW5zaWduZWQgaW50IG1heF9iYXRjaF9zaXplID0gUkVBRF9PTkNFKGNsb25lLT5oeWRyYXRpb25fYmF0Y2hfc2l6ZSk7CisKKwlpZiAoYmF0Y2gtPmhlYWQpIHsKKwkJLyogVHJ5IHRvIGV4dGVuZCB0aGUgY3VycmVudCBiYXRjaCAqLworCQlpZiAoYmF0Y2gtPm5yX2JhdGNoZWRfcmVnaW9ucyA8IG1heF9iYXRjaF9zaXplICYmCisJCSAgICAoYmF0Y2gtPmhlYWQtPnJlZ2lvbl9uciArIGJhdGNoLT5ucl9iYXRjaGVkX3JlZ2lvbnMpID09IGhkLT5yZWdpb25fbnIpIHsKKwkJCWxpc3RfYWRkX3RhaWwoJmhkLT5saXN0LCAmYmF0Y2gtPmhlYWQtPmxpc3QpOworCQkJYmF0Y2gtPm5yX2JhdGNoZWRfcmVnaW9ucysrOworCQkJaGQgPSBOVUxMOworCQl9CisKKwkJLyogQ2hlY2sgaWYgd2Ugc2hvdWxkIGlzc3VlIHRoZSBjdXJyZW50IGJhdGNoICovCisJCWlmIChiYXRjaC0+bnJfYmF0Y2hlZF9yZWdpb25zID49IG1heF9iYXRjaF9zaXplIHx8IGhkKSB7CisJCQloeWRyYXRpb25fY29weShiYXRjaC0+aGVhZCwgYmF0Y2gtPm5yX2JhdGNoZWRfcmVnaW9ucyk7CisJCQliYXRjaC0+aGVhZCA9IE5VTEw7CisJCQliYXRjaC0+bnJfYmF0Y2hlZF9yZWdpb25zID0gMDsKKwkJfQorCX0KKworCWlmICghaGQpCisJCXJldHVybjsKKworCS8qIFdlIHRyZWF0IG1heCBiYXRjaCBzaXplcyBvZiB6ZXJvIGFuZCBvbmUgZXF1aXZhbGVudGx5ICovCisJaWYgKG1heF9iYXRjaF9zaXplIDw9IDEpIHsKKwkJaHlkcmF0aW9uX2NvcHkoaGQsIDEpOworCQlyZXR1cm47CisJfQorCisJLyogU3RhcnQgYSBuZXcgYmF0Y2ggKi8KKwlCVUdfT04oIWxpc3RfZW1wdHkoJmhkLT5saXN0KSk7CisJYmF0Y2gtPmhlYWQgPSBoZDsKKwliYXRjaC0+bnJfYmF0Y2hlZF9yZWdpb25zID0gMTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGFydF9uZXh0X2h5ZHJhdGlvbihzdHJ1Y3QgY2xvbmUgKmNsb25lLAorCQkJCQkgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsCisJCQkJCSAgICBzdHJ1Y3QgYmF0Y2hfaW5mbyAqYmF0Y2gpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgaGFzaF90YWJsZV9idWNrZXQgKmJ1Y2tldDsKKwlzdHJ1Y3QgZG1fY2xvbmVfcmVnaW9uX2h5ZHJhdGlvbiAqaGQ7CisJdW5zaWduZWQgbG9uZyBucl9yZWdpb25zID0gY2xvbmUtPm5yX3JlZ2lvbnM7CisKKwloZCA9IGFsbG9jX2h5ZHJhdGlvbihjbG9uZSk7CisKKwkvKiBUcnkgdG8gZmluZCBhIHJlZ2lvbiB0byBoeWRyYXRlLiAqLworCWRvIHsKKwkJb2Zmc2V0ID0gZG1fY2xvbmVfZmluZF9uZXh0X3VuaHlkcmF0ZWRfcmVnaW9uKGNsb25lLT5jbWQsIG9mZnNldCk7CisJCWlmIChvZmZzZXQgPT0gbnJfcmVnaW9ucykKKwkJCWJyZWFrOworCisJCWJ1Y2tldCA9IGdldF9oYXNoX3RhYmxlX2J1Y2tldChjbG9uZSwgb2Zmc2V0KTsKKwkJYnVja2V0X2xvY2tfaXJxc2F2ZShidWNrZXQsIGZsYWdzKTsKKworCQlpZiAoIWRtX2Nsb25lX2lzX3JlZ2lvbl9oeWRyYXRlZChjbG9uZS0+Y21kLCBvZmZzZXQpICYmCisJCSAgICAhX19oYXNoX2ZpbmQoYnVja2V0LCBvZmZzZXQpKSB7CisJCQloeWRyYXRpb25faW5pdChoZCwgb2Zmc2V0KTsKKwkJCV9faW5zZXJ0X3JlZ2lvbl9oeWRyYXRpb24oYnVja2V0LCBoZCk7CisJCQlidWNrZXRfdW5sb2NrX2lycXJlc3RvcmUoYnVja2V0LCBmbGFncyk7CisKKwkJCS8qIEJhdGNoIGh5ZHJhdGlvbiAqLworCQkJX19iYXRjaF9oeWRyYXRpb24oYmF0Y2gsIGhkKTsKKworCQkJcmV0dXJuIChvZmZzZXQgKyAxKTsKKwkJfQorCisJCWJ1Y2tldF91bmxvY2tfaXJxcmVzdG9yZShidWNrZXQsIGZsYWdzKTsKKworCX0gd2hpbGUgKCsrb2Zmc2V0IDwgbnJfcmVnaW9ucyk7CisKKwlpZiAoaGQpCisJCWZyZWVfaHlkcmF0aW9uKGhkKTsKKworCXJldHVybiBvZmZzZXQ7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIHNlYXJjaGVzIGZvciByZWdpb25zIHRoYXQgc3RpbGwgcmVzaWRlIGluIHRoZSBzb3VyY2UgZGV2aWNlCisgKiBhbmQgc3RhcnRzIHRoZWlyIGh5ZHJhdGlvbi4KKyAqLworc3RhdGljIHZvaWQgZG9faHlkcmF0aW9uKHN0cnVjdCBjbG9uZSAqY2xvbmUpCit7CisJdW5zaWduZWQgaW50IGN1cnJlbnRfdm9sdW1lOworCXVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBucl9yZWdpb25zID0gY2xvbmUtPm5yX3JlZ2lvbnM7CisKKwlzdHJ1Y3QgYmF0Y2hfaW5mbyBiYXRjaCA9IHsKKwkJLmhlYWQgPSBOVUxMLAorCQkubnJfYmF0Y2hlZF9yZWdpb25zID0gMCwKKwl9OworCisJaWYgKHVubGlrZWx5KGdldF9jbG9uZV9tb2RlKGNsb25lKSA+PSBDTV9SRUFEX09OTFkpKQorCQlyZXR1cm47CisKKwlpZiAoZG1fY2xvbmVfaXNfaHlkcmF0aW9uX2RvbmUoY2xvbmUtPmNtZCkpCisJCXJldHVybjsKKworCS8qCisJICogQXZvaWQgcmFjZSB3aXRoIGRldmljZSBzdXNwZW5zaW9uLgorCSAqLworCWF0b21pY19pbmMoJmNsb25lLT5oeWRyYXRpb25zX2luX2ZsaWdodCk7CisKKwkvKgorCSAqIE1ha2Ugc3VyZSBhdG9taWNfaW5jKCkgaXMgb3JkZXJlZCBiZWZvcmUgdGVzdF9iaXQoKSwgb3RoZXJ3aXNlIHdlCisJICogbWlnaHQgcmFjZSB3aXRoIGNsb25lX3Bvc3RzdXNwZW5kKCkgYW5kIHN0YXJ0IGEgcmVnaW9uIGh5ZHJhdGlvbgorCSAqIGFmdGVyIHRoZSB0YXJnZXQgaGFzIGJlZW4gc3VzcGVuZGVkLgorCSAqCisJICogVGhpcyBpcyBwYWlyZWQgd2l0aCB0aGUgc21wX21iX19hZnRlcl9hdG9taWMoKSBpbgorCSAqIGNsb25lX3Bvc3RzdXNwZW5kKCkuCisJICovCisJc21wX21iX19hZnRlcl9hdG9taWMoKTsKKworCW9mZnNldCA9IGNsb25lLT5oeWRyYXRpb25fb2Zmc2V0OworCXdoaWxlIChsaWtlbHkoIXRlc3RfYml0KERNX0NMT05FX0hZRFJBVElPTl9TVVNQRU5ERUQsICZjbG9uZS0+ZmxhZ3MpKSAmJgorCSAgICAgICAhYXRvbWljX3JlYWQoJmNsb25lLT5pb3NfaW5fZmxpZ2h0KSAmJgorCSAgICAgICB0ZXN0X2JpdChETV9DTE9ORV9IWURSQVRJT05fRU5BQkxFRCwgJmNsb25lLT5mbGFncykgJiYKKwkgICAgICAgb2Zmc2V0IDwgbnJfcmVnaW9ucykgeworCQljdXJyZW50X3ZvbHVtZSA9IGF0b21pY19yZWFkKCZjbG9uZS0+aHlkcmF0aW9uc19pbl9mbGlnaHQpOworCQljdXJyZW50X3ZvbHVtZSArPSBiYXRjaC5ucl9iYXRjaGVkX3JlZ2lvbnM7CisKKwkJaWYgKGN1cnJlbnRfdm9sdW1lID4gUkVBRF9PTkNFKGNsb25lLT5oeWRyYXRpb25fdGhyZXNob2xkKSkKKwkJCWJyZWFrOworCisJCW9mZnNldCA9IF9fc3RhcnRfbmV4dF9oeWRyYXRpb24oY2xvbmUsIG9mZnNldCwgJmJhdGNoKTsKKwl9CisKKwlpZiAoYmF0Y2guaGVhZCkKKwkJaHlkcmF0aW9uX2NvcHkoYmF0Y2guaGVhZCwgYmF0Y2gubnJfYmF0Y2hlZF9yZWdpb25zKTsKKworCWlmIChvZmZzZXQgPj0gbnJfcmVnaW9ucykKKwkJb2Zmc2V0ID0gMDsKKworCWNsb25lLT5oeWRyYXRpb25fb2Zmc2V0ID0gb2Zmc2V0OworCisJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNsb25lLT5oeWRyYXRpb25zX2luX2ZsaWdodCkpCisJCXdha2V1cF9oeWRyYXRpb25fd2FpdGVycyhjbG9uZSk7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIGJvb2wgbmVlZF9jb21taXRfZHVlX3RvX3RpbWUoc3RydWN0IGNsb25lICpjbG9uZSkKK3sKKwlyZXR1cm4gIXRpbWVfaW5fcmFuZ2UoamlmZmllcywgY2xvbmUtPmxhc3RfY29tbWl0X2ppZmZpZXMsCisJCQkgICAgICBjbG9uZS0+bGFzdF9jb21taXRfamlmZmllcyArIENPTU1JVF9QRVJJT0QpOworfQorCisvKgorICogQSBub24temVybyByZXR1cm4gaW5kaWNhdGVzIHJlYWQtb25seSBvciBmYWlsIG1vZGUuCisgKi8KK3N0YXRpYyBpbnQgY29tbWl0X21ldGFkYXRhKHN0cnVjdCBjbG9uZSAqY2xvbmUpCit7CisJaW50IHIgPSAwOworCisJbXV0ZXhfbG9jaygmY2xvbmUtPmNvbW1pdF9sb2NrKTsKKworCWlmICghZG1fY2xvbmVfY2hhbmdlZF90aGlzX3RyYW5zYWN0aW9uKGNsb25lLT5jbWQpKQorCQlnb3RvIG91dDsKKworCWlmICh1bmxpa2VseShnZXRfY2xvbmVfbW9kZShjbG9uZSkgPj0gQ01fUkVBRF9PTkxZKSkgeworCQlyID0gLUVQRVJNOworCQlnb3RvIG91dDsKKwl9CisKKwlyID0gZG1fY2xvbmVfbWV0YWRhdGFfY29tbWl0KGNsb25lLT5jbWQpOworCisJaWYgKHVubGlrZWx5KHIpKSB7CisJCV9fbWV0YWRhdGFfb3BlcmF0aW9uX2ZhaWxlZChjbG9uZSwgImRtX2Nsb25lX21ldGFkYXRhX2NvbW1pdCIsIHIpOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoZG1fY2xvbmVfaXNfaHlkcmF0aW9uX2RvbmUoY2xvbmUtPmNtZCkpCisJCWRtX3RhYmxlX2V2ZW50KGNsb25lLT50aS0+dGFibGUpOworb3V0OgorCW11dGV4X3VubG9jaygmY2xvbmUtPmNvbW1pdF9sb2NrKTsKKworCXJldHVybiByOworfQorCitzdGF0aWMgdm9pZCBwcm9jZXNzX2RlZmVycmVkX2Rpc2NhcmRzKHN0cnVjdCBjbG9uZSAqY2xvbmUpCit7CisJaW50IHIgPSAtRVBFUk07CisJc3RydWN0IGJpbyAqYmlvOworCXN0cnVjdCBibGtfcGx1ZyBwbHVnOworCXVuc2lnbmVkIGxvbmcgcnMsIHJlLCBmbGFnczsKKwlzdHJ1Y3QgYmlvX2xpc3QgZGlzY2FyZHMgPSBCSU9fRU1QVFlfTElTVDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjbG9uZS0+bG9jaywgZmxhZ3MpOworCWJpb19saXN0X21lcmdlKCZkaXNjYXJkcywgJmNsb25lLT5kZWZlcnJlZF9kaXNjYXJkX2Jpb3MpOworCWJpb19saXN0X2luaXQoJmNsb25lLT5kZWZlcnJlZF9kaXNjYXJkX2Jpb3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNsb25lLT5sb2NrLCBmbGFncyk7CisKKwlpZiAoYmlvX2xpc3RfZW1wdHkoJmRpc2NhcmRzKSkKKwkJcmV0dXJuOworCisJaWYgKHVubGlrZWx5KGdldF9jbG9uZV9tb2RlKGNsb25lKSA+PSBDTV9SRUFEX09OTFkpKQorCQlnb3RvIG91dDsKKworCS8qIFVwZGF0ZSB0aGUgbWV0YWRhdGEgKi8KKwliaW9fbGlzdF9mb3JfZWFjaChiaW8sICZkaXNjYXJkcykgeworCQliaW9fcmVnaW9uX3JhbmdlKGNsb25lLCBiaW8sICZycywgJnJlKTsKKwkJLyoKKwkJICogQSBkaXNjYXJkIHJlcXVlc3QgbWlnaHQgY292ZXIgcmVnaW9ucyB0aGF0IGhhdmUgYmVlbiBhbHJlYWR5CisJCSAqIGh5ZHJhdGVkLiBUaGVyZSBpcyBubyBuZWVkIHRvIHVwZGF0ZSB0aGUgbWV0YWRhdGEgZm9yIHRoZXNlCisJCSAqIHJlZ2lvbnMuCisJCSAqLworCQlyID0gZG1fY2xvbmVfY29uZF9zZXRfcmFuZ2UoY2xvbmUtPmNtZCwgcnMsIHJlIC0gcnMpOworCisJCWlmICh1bmxpa2VseShyKSkKKwkJCWJyZWFrOworCX0KK291dDoKKwlibGtfc3RhcnRfcGx1ZygmcGx1Zyk7CisJd2hpbGUgKChiaW8gPSBiaW9fbGlzdF9wb3AoJmRpc2NhcmRzKSkpCisJCWNvbXBsZXRlX2Rpc2NhcmRfYmlvKGNsb25lLCBiaW8sIHIgPT0gMCk7CisJYmxrX2ZpbmlzaF9wbHVnKCZwbHVnKTsKK30KKworc3RhdGljIHZvaWQgcHJvY2Vzc19kZWZlcnJlZF9iaW9zKHN0cnVjdCBjbG9uZSAqY2xvbmUpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgYmlvX2xpc3QgYmlvcyA9IEJJT19FTVBUWV9MSVNUOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNsb25lLT5sb2NrLCBmbGFncyk7CisJYmlvX2xpc3RfbWVyZ2UoJmJpb3MsICZjbG9uZS0+ZGVmZXJyZWRfYmlvcyk7CisJYmlvX2xpc3RfaW5pdCgmY2xvbmUtPmRlZmVycmVkX2Jpb3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNsb25lLT5sb2NrLCBmbGFncyk7CisKKwlpZiAoYmlvX2xpc3RfZW1wdHkoJmJpb3MpKQorCQlyZXR1cm47CisKKwlzdWJtaXRfYmlvcygmYmlvcyk7Cit9CisKK3N0YXRpYyB2b2lkIHByb2Nlc3NfZGVmZXJyZWRfZmx1c2hfYmlvcyhzdHJ1Y3QgY2xvbmUgKmNsb25lKQoreworCXN0cnVjdCBiaW8gKmJpbzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBiaW9fbGlzdCBiaW9zID0gQklPX0VNUFRZX0xJU1Q7CisJc3RydWN0IGJpb19saXN0IGJpb19jb21wbGV0aW9ucyA9IEJJT19FTVBUWV9MSVNUOworCisJLyoKKwkgKiBJZiB0aGVyZSBhcmUgYW55IGRlZmVycmVkIGZsdXNoIGJpb3MsIHdlIG11c3QgY29tbWl0IHRoZSBtZXRhZGF0YQorCSAqIGJlZm9yZSBpc3N1aW5nIHRoZW0gb3Igc2lnbmFsaW5nIHRoZWlyIGNvbXBsZXRpb24uCisJICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNsb25lLT5sb2NrLCBmbGFncyk7CisJYmlvX2xpc3RfbWVyZ2UoJmJpb3MsICZjbG9uZS0+ZGVmZXJyZWRfZmx1c2hfYmlvcyk7CisJYmlvX2xpc3RfaW5pdCgmY2xvbmUtPmRlZmVycmVkX2ZsdXNoX2Jpb3MpOworCisJYmlvX2xpc3RfbWVyZ2UoJmJpb19jb21wbGV0aW9ucywgJmNsb25lLT5kZWZlcnJlZF9mbHVzaF9jb21wbGV0aW9ucyk7CisJYmlvX2xpc3RfaW5pdCgmY2xvbmUtPmRlZmVycmVkX2ZsdXNoX2NvbXBsZXRpb25zKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbG9uZS0+bG9jaywgZmxhZ3MpOworCisJaWYgKGJpb19saXN0X2VtcHR5KCZiaW9zKSAmJiBiaW9fbGlzdF9lbXB0eSgmYmlvX2NvbXBsZXRpb25zKSAmJgorCSAgICAhKGRtX2Nsb25lX2NoYW5nZWRfdGhpc190cmFuc2FjdGlvbihjbG9uZS0+Y21kKSAmJiBuZWVkX2NvbW1pdF9kdWVfdG9fdGltZShjbG9uZSkpKQorCQlyZXR1cm47CisKKwlpZiAoY29tbWl0X21ldGFkYXRhKGNsb25lKSkgeworCQliaW9fbGlzdF9tZXJnZSgmYmlvcywgJmJpb19jb21wbGV0aW9ucyk7CisKKwkJd2hpbGUgKChiaW8gPSBiaW9fbGlzdF9wb3AoJmJpb3MpKSkKKwkJCWJpb19pb19lcnJvcihiaW8pOworCisJCXJldHVybjsKKwl9CisKKwljbG9uZS0+bGFzdF9jb21taXRfamlmZmllcyA9IGppZmZpZXM7CisKKwl3aGlsZSAoKGJpbyA9IGJpb19saXN0X3BvcCgmYmlvX2NvbXBsZXRpb25zKSkpCisJCWJpb19lbmRpbyhiaW8pOworCisJd2hpbGUgKChiaW8gPSBiaW9fbGlzdF9wb3AoJmJpb3MpKSkKKwkJZ2VuZXJpY19tYWtlX3JlcXVlc3QoYmlvKTsKK30KKworc3RhdGljIHZvaWQgZG9fd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgY2xvbmUgKmNsb25lID0gY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqY2xvbmUpLCB3b3JrZXIpOworCisJcHJvY2Vzc19kZWZlcnJlZF9iaW9zKGNsb25lKTsKKwlwcm9jZXNzX2RlZmVycmVkX2Rpc2NhcmRzKGNsb25lKTsKKworCS8qCisJICogcHJvY2Vzc19kZWZlcnJlZF9mbHVzaF9iaW9zKCk6CisJICoKKwkgKiAgIC0gQ29tbWl0IG1ldGFkYXRhCisJICoKKwkgKiAgIC0gUHJvY2VzcyBkZWZlcnJlZCBSRVFfRlVBIGNvbXBsZXRpb25zCisJICoKKwkgKiAgIC0gUHJvY2VzcyBkZWZlcnJlZCBSRVFfUFJFRkxVU0ggYmlvcworCSAqLworCXByb2Nlc3NfZGVmZXJyZWRfZmx1c2hfYmlvcyhjbG9uZSk7CisKKwkvKiBCYWNrZ3JvdW5kIGh5ZHJhdGlvbiAqLworCWRvX2h5ZHJhdGlvbihjbG9uZSk7Cit9CisKKy8qCisgKiBDb21taXQgcGVyaW9kaWNhbGx5IHNvIHRoYXQgbm90IHRvbyBtdWNoIHVud3JpdHRlbiBkYXRhIGJ1aWxkcyB1cC4KKyAqCisgKiBBbHNvLCByZXN0YXJ0IGJhY2tncm91bmQgaHlkcmF0aW9uLCBpZiBpdCBoYXMgYmVlbiBzdG9wcGVkIGJ5IGluLWZsaWdodCBJL08uCisgKi8KK3N0YXRpYyB2b2lkIGRvX3dha2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgY2xvbmUgKmNsb25lID0gY29udGFpbmVyX29mKHRvX2RlbGF5ZWRfd29yayh3b3JrKSwgc3RydWN0IGNsb25lLCB3YWtlcik7CisKKwl3YWtlX3dvcmtlcihjbG9uZSk7CisJcXVldWVfZGVsYXllZF93b3JrKGNsb25lLT53cSwgJmNsb25lLT53YWtlciwgQ09NTUlUX1BFUklPRCk7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAqIFRhcmdldCBtZXRob2RzCisgKi8KK3N0YXRpYyBpbnQgY2xvbmVfbWFwKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdHJ1Y3QgYmlvICpiaW8pCit7CisJc3RydWN0IGNsb25lICpjbG9uZSA9IHRpLT5wcml2YXRlOworCXVuc2lnbmVkIGxvbmcgcmVnaW9uX25yOworCisJYXRvbWljX2luYygmY2xvbmUtPmlvc19pbl9mbGlnaHQpOworCisJaWYgKHVubGlrZWx5KGdldF9jbG9uZV9tb2RlKGNsb25lKSA9PSBDTV9GQUlMKSkKKwkJcmV0dXJuIERNX01BUElPX0tJTEw7CisKKwkvKgorCSAqIFJFUV9QUkVGTFVTSCBiaW9zIGNhcnJ5IG5vIGRhdGE6CisJICoKKwkgKiAtIENvbW1pdCBtZXRhZGF0YSwgaWYgY2hhbmdlZAorCSAqCisJICogLSBQYXNzIGRvd24gdG8gZGVzdGluYXRpb24gZGV2aWNlCisJICovCisJaWYgKGJpby0+Ymlfb3BmICYgUkVRX1BSRUZMVVNIKSB7CisJCXJlbWFwX2FuZF9pc3N1ZShjbG9uZSwgYmlvKTsKKwkJcmV0dXJuIERNX01BUElPX1NVQk1JVFRFRDsKKwl9CisKKwliaW8tPmJpX2l0ZXIuYmlfc2VjdG9yID0gZG1fdGFyZ2V0X29mZnNldCh0aSwgYmlvLT5iaV9pdGVyLmJpX3NlY3Rvcik7CisKKwkvKgorCSAqIGRtLWNsb25lIGludGVycHJldHMgZGlzY2FyZHMgYW5kIHBlcmZvcm1zIGEgZmFzdCBoeWRyYXRpb24gb2YgdGhlCisJICogZGlzY2FyZGVkIHJlZ2lvbnMsIGkuZS4sIHdlIHNraXAgdGhlIGNvcHkgZnJvbSB0aGUgc291cmNlIGRldmljZSBhbmQKKwkgKiBqdXN0IG1hcmsgdGhlIHJlZ2lvbnMgYXMgaHlkcmF0ZWQuCisJICovCisJaWYgKGJpb19vcChiaW8pID09IFJFUV9PUF9ESVNDQVJEKSB7CisJCXByb2Nlc3NfZGlzY2FyZF9iaW8oY2xvbmUsIGJpbyk7CisJCXJldHVybiBETV9NQVBJT19TVUJNSVRURUQ7CisJfQorCisJLyoKKwkgKiBJZiB0aGUgYmlvJ3MgcmVnaW9uIGlzIGh5ZHJhdGVkLCByZWRpcmVjdCBpdCB0byB0aGUgZGVzdGluYXRpb24KKwkgKiBkZXZpY2UuCisJICoKKwkgKiBJZiB0aGUgcmVnaW9uIGlzIG5vdCBoeWRyYXRlZCBhbmQgdGhlIGJpbyBpcyBhIFJFQUQsIHJlZGlyZWN0IGl0IHRvCisJICogdGhlIHNvdXJjZSBkZXZpY2UuCisJICoKKwkgKiBFbHNlLCBkZWZlciBXUklURSBiaW8gdW50aWwgYWZ0ZXIgaXRzIHJlZ2lvbiBoYXMgYmVlbiBoeWRyYXRlZCBhbmQKKwkgKiBzdGFydCB0aGUgcmVnaW9uJ3MgaHlkcmF0aW9uIGltbWVkaWF0ZWx5LgorCSAqLworCXJlZ2lvbl9uciA9IGJpb190b19yZWdpb24oY2xvbmUsIGJpbyk7CisJaWYgKGRtX2Nsb25lX2lzX3JlZ2lvbl9oeWRyYXRlZChjbG9uZS0+Y21kLCByZWdpb25fbnIpKSB7CisJCXJlbWFwX2FuZF9pc3N1ZShjbG9uZSwgYmlvKTsKKwkJcmV0dXJuIERNX01BUElPX1NVQk1JVFRFRDsKKwl9IGVsc2UgaWYgKGJpb19kYXRhX2RpcihiaW8pID09IFJFQUQpIHsKKwkJcmVtYXBfdG9fc291cmNlKGNsb25lLCBiaW8pOworCQlyZXR1cm4gRE1fTUFQSU9fUkVNQVBQRUQ7CisJfQorCisJcmVtYXBfdG9fZGVzdChjbG9uZSwgYmlvKTsKKwloeWRyYXRlX2Jpb19yZWdpb24oY2xvbmUsIGJpbyk7CisKKwlyZXR1cm4gRE1fTUFQSU9fU1VCTUlUVEVEOworfQorCitzdGF0aWMgaW50IGNsb25lX2VuZGlvKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdHJ1Y3QgYmlvICpiaW8sIGJsa19zdGF0dXNfdCAqZXJyb3IpCit7CisJc3RydWN0IGNsb25lICpjbG9uZSA9IHRpLT5wcml2YXRlOworCisJYXRvbWljX2RlYygmY2xvbmUtPmlvc19pbl9mbGlnaHQpOworCisJcmV0dXJuIERNX0VORElPX0RPTkU7Cit9CisKK3N0YXRpYyB2b2lkIGVtaXRfZmxhZ3Moc3RydWN0IGNsb25lICpjbG9uZSwgY2hhciAqcmVzdWx0LCB1bnNpZ25lZCBpbnQgbWF4bGVuLAorCQkgICAgICAgc3NpemVfdCAqc3pfcHRyKQoreworCXNzaXplX3Qgc3ogPSAqc3pfcHRyOworCXVuc2lnbmVkIGludCBjb3VudDsKKworCWNvdW50ID0gIXRlc3RfYml0KERNX0NMT05FX0hZRFJBVElPTl9FTkFCTEVELCAmY2xvbmUtPmZsYWdzKTsKKwljb3VudCArPSAhdGVzdF9iaXQoRE1fQ0xPTkVfRElTQ0FSRF9QQVNTRE9XTiwgJmNsb25lLT5mbGFncyk7CisKKwlETUVNSVQoIiV1ICIsIGNvdW50KTsKKworCWlmICghdGVzdF9iaXQoRE1fQ0xPTkVfSFlEUkFUSU9OX0VOQUJMRUQsICZjbG9uZS0+ZmxhZ3MpKQorCQlETUVNSVQoIm5vX2h5ZHJhdGlvbiAiKTsKKworCWlmICghdGVzdF9iaXQoRE1fQ0xPTkVfRElTQ0FSRF9QQVNTRE9XTiwgJmNsb25lLT5mbGFncykpCisJCURNRU1JVCgibm9fZGlzY2FyZF9wYXNzZG93biAiKTsKKworCSpzel9wdHIgPSBzejsKK30KKworc3RhdGljIHZvaWQgZW1pdF9jb3JlX2FyZ3Moc3RydWN0IGNsb25lICpjbG9uZSwgY2hhciAqcmVzdWx0LAorCQkJICAgdW5zaWduZWQgaW50IG1heGxlbiwgc3NpemVfdCAqc3pfcHRyKQoreworCXNzaXplX3Qgc3ogPSAqc3pfcHRyOworCXVuc2lnbmVkIGludCBjb3VudCA9IDQ7CisKKwlETUVNSVQoIiV1IGh5ZHJhdGlvbl90aHJlc2hvbGQgJXUgaHlkcmF0aW9uX2JhdGNoX3NpemUgJXUgIiwgY291bnQsCisJICAgICAgIFJFQURfT05DRShjbG9uZS0+aHlkcmF0aW9uX3RocmVzaG9sZCksCisJICAgICAgIFJFQURfT05DRShjbG9uZS0+aHlkcmF0aW9uX2JhdGNoX3NpemUpKTsKKworCSpzel9wdHIgPSBzejsKK30KKworLyoKKyAqIFN0YXR1cyBmb3JtYXQ6CisgKgorICogPG1ldGFkYXRhIGJsb2NrIHNpemU+IDwjdXNlZCBtZXRhZGF0YSBibG9ja3M+LzwjdG90YWwgbWV0YWRhdGEgYmxvY2tzPgorICogPGNsb25lIHJlZ2lvbiBzaXplPiA8I2h5ZHJhdGVkIHJlZ2lvbnM+LzwjdG90YWwgcmVnaW9ucz4gPCNoeWRyYXRpbmcgcmVnaW9ucz4KKyAqIDwjZmVhdHVyZXM+IDxmZWF0dXJlcz4qIDwjY29yZSBhcmdzPiA8Y29yZSBhcmdzPiogPGNsb25lIG1ldGFkYXRhIG1vZGU+CisgKi8KK3N0YXRpYyB2b2lkIGNsb25lX3N0YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLAorCQkJIHVuc2lnbmVkIGludCBzdGF0dXNfZmxhZ3MsIGNoYXIgKnJlc3VsdCwKKwkJCSB1bnNpZ25lZCBpbnQgbWF4bGVuKQoreworCWludCByOworCXVuc2lnbmVkIGludCBpOworCXNzaXplX3Qgc3ogPSAwOworCWRtX2Jsb2NrX3QgbnJfZnJlZV9tZXRhZGF0YV9ibG9ja3MgPSAwOworCWRtX2Jsb2NrX3QgbnJfbWV0YWRhdGFfYmxvY2tzID0gMDsKKwljaGFyIGJ1ZltCREVWTkFNRV9TSVpFXTsKKwlzdHJ1Y3QgY2xvbmUgKmNsb25lID0gdGktPnByaXZhdGU7CisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIFNUQVRVU1RZUEVfSU5GTzoKKwkJaWYgKGdldF9jbG9uZV9tb2RlKGNsb25lKSA9PSBDTV9GQUlMKSB7CisJCQlETUVNSVQoIkZhaWwiKTsKKwkJCWJyZWFrOworCQl9CisKKwkJLyogQ29tbWl0IHRvIGVuc3VyZSBzdGF0aXN0aWNzIGFyZW4ndCBvdXQtb2YtZGF0ZSAqLworCQlpZiAoIShzdGF0dXNfZmxhZ3MgJiBETV9TVEFUVVNfTk9GTFVTSF9GTEFHKSAmJiAhZG1fc3VzcGVuZGVkKHRpKSkKKwkJCSh2b2lkKSBjb21taXRfbWV0YWRhdGEoY2xvbmUpOworCisJCXIgPSBkbV9jbG9uZV9nZXRfZnJlZV9tZXRhZGF0YV9ibG9ja19jb3VudChjbG9uZS0+Y21kLCAmbnJfZnJlZV9tZXRhZGF0YV9ibG9ja3MpOworCisJCWlmIChyKSB7CisJCQlETUVSUigiJXM6IGRtX2Nsb25lX2dldF9mcmVlX21ldGFkYXRhX2Jsb2NrX2NvdW50IHJldHVybmVkICVkIiwKKwkJCSAgICAgIGNsb25lX2RldmljZV9uYW1lKGNsb25lKSwgcik7CisJCQlnb3RvIGVycm9yOworCQl9CisKKwkJciA9IGRtX2Nsb25lX2dldF9tZXRhZGF0YV9kZXZfc2l6ZShjbG9uZS0+Y21kLCAmbnJfbWV0YWRhdGFfYmxvY2tzKTsKKworCQlpZiAocikgeworCQkJRE1FUlIoIiVzOiBkbV9jbG9uZV9nZXRfbWV0YWRhdGFfZGV2X3NpemUgcmV0dXJuZWQgJWQiLAorCQkJICAgICAgY2xvbmVfZGV2aWNlX25hbWUoY2xvbmUpLCByKTsKKwkJCWdvdG8gZXJyb3I7CisJCX0KKworCQlETUVNSVQoIiV1ICVsbHUvJWxsdSAlbGx1ICVsdS8lbHUgJXUgIiwKKwkJICAgICAgIERNX0NMT05FX01FVEFEQVRBX0JMT0NLX1NJWkUsCisJCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKShucl9tZXRhZGF0YV9ibG9ja3MgLSBucl9mcmVlX21ldGFkYXRhX2Jsb2NrcyksCisJCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKW5yX21ldGFkYXRhX2Jsb2NrcywKKwkJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpY2xvbmUtPnJlZ2lvbl9zaXplLAorCQkgICAgICAgZG1fY2xvbmVfbnJfb2ZfaHlkcmF0ZWRfcmVnaW9ucyhjbG9uZS0+Y21kKSwKKwkJICAgICAgIGNsb25lLT5ucl9yZWdpb25zLAorCQkgICAgICAgYXRvbWljX3JlYWQoJmNsb25lLT5oeWRyYXRpb25zX2luX2ZsaWdodCkpOworCisJCWVtaXRfZmxhZ3MoY2xvbmUsIHJlc3VsdCwgbWF4bGVuLCAmc3opOworCQllbWl0X2NvcmVfYXJncyhjbG9uZSwgcmVzdWx0LCBtYXhsZW4sICZzeik7CisKKwkJc3dpdGNoIChnZXRfY2xvbmVfbW9kZShjbG9uZSkpIHsKKwkJY2FzZSBDTV9XUklURToKKwkJCURNRU1JVCgicnciKTsKKwkJCWJyZWFrOworCQljYXNlIENNX1JFQURfT05MWToKKwkJCURNRU1JVCgicm8iKTsKKwkJCWJyZWFrOworCQljYXNlIENNX0ZBSUw6CisJCQlETUVNSVQoIkZhaWwiKTsKKwkJfQorCisJCWJyZWFrOworCisJY2FzZSBTVEFUVVNUWVBFX1RBQkxFOgorCQlmb3JtYXRfZGV2X3QoYnVmLCBjbG9uZS0+bWV0YWRhdGFfZGV2LT5iZGV2LT5iZF9kZXYpOworCQlETUVNSVQoIiVzICIsIGJ1Zik7CisKKwkJZm9ybWF0X2Rldl90KGJ1ZiwgY2xvbmUtPmRlc3RfZGV2LT5iZGV2LT5iZF9kZXYpOworCQlETUVNSVQoIiVzICIsIGJ1Zik7CisKKwkJZm9ybWF0X2Rldl90KGJ1ZiwgY2xvbmUtPnNvdXJjZV9kZXYtPmJkZXYtPmJkX2Rldik7CisJCURNRU1JVCgiJXMiLCBidWYpOworCisJCWZvciAoaSA9IDA7IGkgPCBjbG9uZS0+bnJfY3RyX2FyZ3M7IGkrKykKKwkJCURNRU1JVCgiICVzIiwgY2xvbmUtPmN0cl9hcmdzW2ldKTsKKwl9CisKKwlyZXR1cm47CisKK2Vycm9yOgorCURNRU1JVCgiRXJyb3IiKTsKK30KKworc3RhdGljIGludCBjbG9uZV9pc19jb25nZXN0ZWQoc3RydWN0IGRtX3RhcmdldF9jYWxsYmFja3MgKmNiLCBpbnQgYmRpX2JpdHMpCit7CisJc3RydWN0IHJlcXVlc3RfcXVldWUgKmRlc3RfcSwgKnNvdXJjZV9xOworCXN0cnVjdCBjbG9uZSAqY2xvbmUgPSBjb250YWluZXJfb2YoY2IsIHN0cnVjdCBjbG9uZSwgY2FsbGJhY2tzKTsKKworCXNvdXJjZV9xID0gYmRldl9nZXRfcXVldWUoY2xvbmUtPnNvdXJjZV9kZXYtPmJkZXYpOworCWRlc3RfcSA9IGJkZXZfZ2V0X3F1ZXVlKGNsb25lLT5kZXN0X2Rldi0+YmRldik7CisKKwlyZXR1cm4gKGJkaV9jb25nZXN0ZWQoZGVzdF9xLT5iYWNraW5nX2Rldl9pbmZvLCBiZGlfYml0cykgfAorCQliZGlfY29uZ2VzdGVkKHNvdXJjZV9xLT5iYWNraW5nX2Rldl9pbmZvLCBiZGlfYml0cykpOworfQorCitzdGF0aWMgc2VjdG9yX3QgZ2V0X2Rldl9zaXplKHN0cnVjdCBkbV9kZXYgKmRldikKK3sKKwlyZXR1cm4gaV9zaXplX3JlYWQoZGV2LT5iZGV2LT5iZF9pbm9kZSkgPj4gU0VDVE9SX1NISUZUOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKiBDb25zdHJ1Y3QgYSBjbG9uZSBkZXZpY2UgbWFwcGluZzoKKyAqCisgKiBjbG9uZSA8bWV0YWRhdGEgZGV2PiA8ZGVzdGluYXRpb24gZGV2PiA8c291cmNlIGRldj4gPHJlZ2lvbiBzaXplPgorICoJWzwjZmVhdHVyZSBhcmdzPiBbPGZlYXR1cmUgYXJnPl0qIFs8I2NvcmUgYXJncz4gW2tleSB2YWx1ZV0qXV0KKyAqCisgKiBtZXRhZGF0YSBkZXY6IEZhc3QgZGV2aWNlIGhvbGRpbmcgdGhlIHBlcnNpc3RlbnQgbWV0YWRhdGEKKyAqIGRlc3RpbmF0aW9uIGRldjogVGhlIGRlc3RpbmF0aW9uIGRldmljZSwgd2hpY2ggd2lsbCBiZWNvbWUgYSBjbG9uZSBvZiB0aGUKKyAqICAgICAgICAgICAgICAgICAgc291cmNlIGRldmljZQorICogc291cmNlIGRldjogVGhlIHJlYWQtb25seSBzb3VyY2UgZGV2aWNlIHRoYXQgZ2V0cyBjbG9uZWQKKyAqIHJlZ2lvbiBzaXplOiBkbS1jbG9uZSB1bml0IHNpemUgaW4gc2VjdG9ycworICoKKyAqICNmZWF0dXJlIGFyZ3M6IE51bWJlciBvZiBmZWF0dXJlIGFyZ3VtZW50cyBwYXNzZWQKKyAqIGZlYXR1cmUgYXJnczogRS5nLiBub19oeWRyYXRpb24sIG5vX2Rpc2NhcmRfcGFzc2Rvd24KKyAqCisgKiAjY29yZSBhcmd1bWVudHM6IEFuIGV2ZW4gbnVtYmVyIG9mIGNvcmUgYXJndW1lbnRzCisgKiBjb3JlIGFyZ3VtZW50czogS2V5L3ZhbHVlIHBhaXJzIGZvciB0dW5pbmcgdGhlIGNvcmUKKyAqCQkgICBFLmcuICdoeWRyYXRpb25fdGhyZXNob2xkIDI1NicKKyAqLworc3RhdGljIGludCBwYXJzZV9mZWF0dXJlX2FyZ3Moc3RydWN0IGRtX2FyZ19zZXQgKmFzLCBzdHJ1Y3QgY2xvbmUgKmNsb25lKQoreworCWludCByOworCXVuc2lnbmVkIGludCBhcmdjOworCWNvbnN0IGNoYXIgKmFyZ19uYW1lOworCXN0cnVjdCBkbV90YXJnZXQgKnRpID0gY2xvbmUtPnRpOworCisJY29uc3Qgc3RydWN0IGRtX2FyZyBhcmdzID0geworCQkubWluID0gMCwKKwkJLm1heCA9IDIsCisJCS5lcnJvciA9ICJJbnZhbGlkIG51bWJlciBvZiBmZWF0dXJlIGFyZ3VtZW50cyIKKwl9OworCisJLyogTm8gZmVhdHVyZSBhcmd1bWVudHMgc3VwcGxpZWQgKi8KKwlpZiAoIWFzLT5hcmdjKQorCQlyZXR1cm4gMDsKKworCXIgPSBkbV9yZWFkX2FyZ19ncm91cCgmYXJncywgYXMsICZhcmdjLCAmdGktPmVycm9yKTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwl3aGlsZSAoYXJnYykgeworCQlhcmdfbmFtZSA9IGRtX3NoaWZ0X2FyZyhhcyk7CisJCWFyZ2MtLTsKKworCQlpZiAoIXN0cmNhc2VjbXAoYXJnX25hbWUsICJub19oeWRyYXRpb24iKSkgeworCQkJX19jbGVhcl9iaXQoRE1fQ0xPTkVfSFlEUkFUSU9OX0VOQUJMRUQsICZjbG9uZS0+ZmxhZ3MpOworCQl9IGVsc2UgaWYgKCFzdHJjYXNlY21wKGFyZ19uYW1lLCAibm9fZGlzY2FyZF9wYXNzZG93biIpKSB7CisJCQlfX2NsZWFyX2JpdChETV9DTE9ORV9ESVNDQVJEX1BBU1NET1dOLCAmY2xvbmUtPmZsYWdzKTsKKwkJfSBlbHNlIHsKKwkJCXRpLT5lcnJvciA9ICJJbnZhbGlkIGZlYXR1cmUgYXJndW1lbnQiOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwYXJzZV9jb3JlX2FyZ3Moc3RydWN0IGRtX2FyZ19zZXQgKmFzLCBzdHJ1Y3QgY2xvbmUgKmNsb25lKQoreworCWludCByOworCXVuc2lnbmVkIGludCBhcmdjOworCXVuc2lnbmVkIGludCB2YWx1ZTsKKwljb25zdCBjaGFyICphcmdfbmFtZTsKKwlzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSA9IGNsb25lLT50aTsKKworCWNvbnN0IHN0cnVjdCBkbV9hcmcgYXJncyA9IHsKKwkJLm1pbiA9IDAsCisJCS5tYXggPSA0LAorCQkuZXJyb3IgPSAiSW52YWxpZCBudW1iZXIgb2YgY29yZSBhcmd1bWVudHMiCisJfTsKKworCS8qIEluaXRpYWxpemUgY29yZSBhcmd1bWVudHMgKi8KKwljbG9uZS0+aHlkcmF0aW9uX2JhdGNoX3NpemUgPSBERUZBVUxUX0hZRFJBVElPTl9CQVRDSF9TSVpFOworCWNsb25lLT5oeWRyYXRpb25fdGhyZXNob2xkID0gREVGQVVMVF9IWURSQVRJT05fVEhSRVNIT0xEOworCisJLyogTm8gY29yZSBhcmd1bWVudHMgc3VwcGxpZWQgKi8KKwlpZiAoIWFzLT5hcmdjKQorCQlyZXR1cm4gMDsKKworCXIgPSBkbV9yZWFkX2FyZ19ncm91cCgmYXJncywgYXMsICZhcmdjLCAmdGktPmVycm9yKTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwlpZiAoYXJnYyAmIDEpIHsKKwkJdGktPmVycm9yID0gIk51bWJlciBvZiBjb3JlIGFyZ3VtZW50cyBtdXN0IGJlIGV2ZW4iOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwl3aGlsZSAoYXJnYykgeworCQlhcmdfbmFtZSA9IGRtX3NoaWZ0X2FyZyhhcyk7CisJCWFyZ2MgLT0gMjsKKworCQlpZiAoIXN0cmNhc2VjbXAoYXJnX25hbWUsICJoeWRyYXRpb25fdGhyZXNob2xkIikpIHsKKwkJCWlmIChrc3RydG91aW50KGRtX3NoaWZ0X2FyZyhhcyksIDEwLCAmdmFsdWUpKSB7CisJCQkJdGktPmVycm9yID0gIkludmFsaWQgdmFsdWUgZm9yIGFyZ3VtZW50IGBoeWRyYXRpb25fdGhyZXNob2xkJyI7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCQljbG9uZS0+aHlkcmF0aW9uX3RocmVzaG9sZCA9IHZhbHVlOworCQl9IGVsc2UgaWYgKCFzdHJjYXNlY21wKGFyZ19uYW1lLCAiaHlkcmF0aW9uX2JhdGNoX3NpemUiKSkgeworCQkJaWYgKGtzdHJ0b3VpbnQoZG1fc2hpZnRfYXJnKGFzKSwgMTAsICZ2YWx1ZSkpIHsKKwkJCQl0aS0+ZXJyb3IgPSAiSW52YWxpZCB2YWx1ZSBmb3IgYXJndW1lbnQgYGh5ZHJhdGlvbl9iYXRjaF9zaXplJyI7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCQljbG9uZS0+aHlkcmF0aW9uX2JhdGNoX3NpemUgPSB2YWx1ZTsKKwkJfSBlbHNlIHsKKwkJCXRpLT5lcnJvciA9ICJJbnZhbGlkIGNvcmUgYXJndW1lbnQiOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwYXJzZV9yZWdpb25fc2l6ZShzdHJ1Y3QgY2xvbmUgKmNsb25lLCBzdHJ1Y3QgZG1fYXJnX3NldCAqYXMsIGNoYXIgKiplcnJvcikKK3sKKwlpbnQgcjsKKwl1bnNpZ25lZCBpbnQgcmVnaW9uX3NpemU7CisJc3RydWN0IGRtX2FyZyBhcmc7CisKKwlhcmcubWluID0gTUlOX1JFR0lPTl9TSVpFOworCWFyZy5tYXggPSBNQVhfUkVHSU9OX1NJWkU7CisJYXJnLmVycm9yID0gIkludmFsaWQgcmVnaW9uIHNpemUiOworCisJciA9IGRtX3JlYWRfYXJnKCZhcmcsIGFzLCAmcmVnaW9uX3NpemUsIGVycm9yKTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwkvKiBDaGVjayByZWdpb24gc2l6ZSBpcyBhIHBvd2VyIG9mIDIgKi8KKwlpZiAoIWlzX3Bvd2VyX29mXzIocmVnaW9uX3NpemUpKSB7CisJCSplcnJvciA9ICJSZWdpb24gc2l6ZSBpcyBub3QgYSBwb3dlciBvZiAyIjsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogVmFsaWRhdGUgdGhlIHJlZ2lvbiBzaXplIGFnYWluc3QgdGhlIGRldmljZSBsb2dpY2FsIGJsb2NrIHNpemUgKi8KKwlpZiAocmVnaW9uX3NpemUgJSAoYmRldl9sb2dpY2FsX2Jsb2NrX3NpemUoY2xvbmUtPnNvdXJjZV9kZXYtPmJkZXYpID4+IDkpIHx8CisJICAgIHJlZ2lvbl9zaXplICUgKGJkZXZfbG9naWNhbF9ibG9ja19zaXplKGNsb25lLT5kZXN0X2Rldi0+YmRldikgPj4gOSkpIHsKKwkJKmVycm9yID0gIlJlZ2lvbiBzaXplIGlzIG5vdCBhIG11bHRpcGxlIG9mIGRldmljZSBsb2dpY2FsIGJsb2NrIHNpemUiOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwljbG9uZS0+cmVnaW9uX3NpemUgPSByZWdpb25fc2l6ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZhbGlkYXRlX25yX3JlZ2lvbnModW5zaWduZWQgbG9uZyBuLCBjaGFyICoqZXJyb3IpCit7CisJLyoKKwkgKiBkbV9iaXRzZXQgcmVzdHJpY3RzIHVzIHRvIDJeMzIgcmVnaW9ucy4gdGVzdF9iaXQgJiBjby4gcmVzdHJpY3QgdXMKKwkgKiBmdXJ0aGVyIHRvIDJeMzEgcmVnaW9ucy4KKwkgKi8KKwlpZiAobiA+ICgxVUwgPDwgMzEpKSB7CisJCSplcnJvciA9ICJUb28gbWFueSByZWdpb25zLiBDb25zaWRlciBpbmNyZWFzaW5nIHRoZSByZWdpb24gc2l6ZSI7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBhcnNlX21ldGFkYXRhX2RldihzdHJ1Y3QgY2xvbmUgKmNsb25lLCBzdHJ1Y3QgZG1fYXJnX3NldCAqYXMsIGNoYXIgKiplcnJvcikKK3sKKwlpbnQgcjsKKwlzZWN0b3JfdCBtZXRhZGF0YV9kZXZfc2l6ZTsKKwljaGFyIGJbQkRFVk5BTUVfU0laRV07CisKKwlyID0gZG1fZ2V0X2RldmljZShjbG9uZS0+dGksIGRtX3NoaWZ0X2FyZyhhcyksIEZNT0RFX1JFQUQgfCBGTU9ERV9XUklURSwKKwkJCSAgJmNsb25lLT5tZXRhZGF0YV9kZXYpOworCWlmIChyKSB7CisJCSplcnJvciA9ICJFcnJvciBvcGVuaW5nIG1ldGFkYXRhIGRldmljZSI7CisJCXJldHVybiByOworCX0KKworCW1ldGFkYXRhX2Rldl9zaXplID0gZ2V0X2Rldl9zaXplKGNsb25lLT5tZXRhZGF0YV9kZXYpOworCWlmIChtZXRhZGF0YV9kZXZfc2l6ZSA+IERNX0NMT05FX01FVEFEQVRBX01BWF9TRUNUT1JTX1dBUk5JTkcpCisJCURNV0FSTigiTWV0YWRhdGEgZGV2aWNlICVzIGlzIGxhcmdlciB0aGFuICV1IHNlY3RvcnM6IGV4Y2VzcyBzcGFjZSB3aWxsIG5vdCBiZSB1c2VkLiIsCisJCSAgICAgICBiZGV2bmFtZShjbG9uZS0+bWV0YWRhdGFfZGV2LT5iZGV2LCBiKSwgRE1fQ0xPTkVfTUVUQURBVEFfTUFYX1NFQ1RPUlMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VfZGVzdF9kZXYoc3RydWN0IGNsb25lICpjbG9uZSwgc3RydWN0IGRtX2FyZ19zZXQgKmFzLCBjaGFyICoqZXJyb3IpCit7CisJaW50IHI7CisJc2VjdG9yX3QgZGVzdF9kZXZfc2l6ZTsKKworCXIgPSBkbV9nZXRfZGV2aWNlKGNsb25lLT50aSwgZG1fc2hpZnRfYXJnKGFzKSwgRk1PREVfUkVBRCB8IEZNT0RFX1dSSVRFLAorCQkJICAmY2xvbmUtPmRlc3RfZGV2KTsKKwlpZiAocikgeworCQkqZXJyb3IgPSAiRXJyb3Igb3BlbmluZyBkZXN0aW5hdGlvbiBkZXZpY2UiOworCQlyZXR1cm4gcjsKKwl9CisKKwlkZXN0X2Rldl9zaXplID0gZ2V0X2Rldl9zaXplKGNsb25lLT5kZXN0X2Rldik7CisJaWYgKGRlc3RfZGV2X3NpemUgPCBjbG9uZS0+dGktPmxlbikgeworCQlkbV9wdXRfZGV2aWNlKGNsb25lLT50aSwgY2xvbmUtPmRlc3RfZGV2KTsKKwkJKmVycm9yID0gIkRldmljZSBzaXplIGxhcmdlciB0aGFuIGRlc3RpbmF0aW9uIGRldmljZSI7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBhcnNlX3NvdXJjZV9kZXYoc3RydWN0IGNsb25lICpjbG9uZSwgc3RydWN0IGRtX2FyZ19zZXQgKmFzLCBjaGFyICoqZXJyb3IpCit7CisJaW50IHI7CisJc2VjdG9yX3Qgc291cmNlX2Rldl9zaXplOworCisJciA9IGRtX2dldF9kZXZpY2UoY2xvbmUtPnRpLCBkbV9zaGlmdF9hcmcoYXMpLCBGTU9ERV9SRUFELAorCQkJICAmY2xvbmUtPnNvdXJjZV9kZXYpOworCWlmIChyKSB7CisJCSplcnJvciA9ICJFcnJvciBvcGVuaW5nIHNvdXJjZSBkZXZpY2UiOworCQlyZXR1cm4gcjsKKwl9CisKKwlzb3VyY2VfZGV2X3NpemUgPSBnZXRfZGV2X3NpemUoY2xvbmUtPnNvdXJjZV9kZXYpOworCWlmIChzb3VyY2VfZGV2X3NpemUgPCBjbG9uZS0+dGktPmxlbikgeworCQlkbV9wdXRfZGV2aWNlKGNsb25lLT50aSwgY2xvbmUtPnNvdXJjZV9kZXYpOworCQkqZXJyb3IgPSAiRGV2aWNlIHNpemUgbGFyZ2VyIHRoYW4gc291cmNlIGRldmljZSI7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNvcHlfY3RyX2FyZ3Moc3RydWN0IGNsb25lICpjbG9uZSwgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjaGFyICoqZXJyb3IpCit7CisJdW5zaWduZWQgaW50IGk7CisJY29uc3QgY2hhciAqKmNvcHk7CisKKwljb3B5ID0ga2NhbGxvYyhhcmdjLCBzaXplb2YoKmNvcHkpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNvcHkpCisJCWdvdG8gZXJyb3I7CisKKwlmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7CisJCWNvcHlbaV0gPSBrc3RyZHVwKGFyZ3ZbaV0sIEdGUF9LRVJORUwpOworCisJCWlmICghY29weVtpXSkgeworCQkJd2hpbGUgKGktLSkKKwkJCQlrZnJlZShjb3B5W2ldKTsKKwkJCWtmcmVlKGNvcHkpOworCQkJZ290byBlcnJvcjsKKwkJfQorCX0KKworCWNsb25lLT5ucl9jdHJfYXJncyA9IGFyZ2M7CisJY2xvbmUtPmN0cl9hcmdzID0gY29weTsKKwlyZXR1cm4gMDsKKworZXJyb3I6CisJKmVycm9yID0gIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRhYmxlIGxpbmUiOworCXJldHVybiAtRU5PTUVNOworfQorCitzdGF0aWMgaW50IGNsb25lX2N0cihzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgdW5zaWduZWQgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWludCByOworCXN0cnVjdCBjbG9uZSAqY2xvbmU7CisJc3RydWN0IGRtX2FyZ19zZXQgYXM7CisKKwlpZiAoYXJnYyA8IDQpIHsKKwkJdGktPmVycm9yID0gIkludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyI7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWFzLmFyZ2MgPSBhcmdjOworCWFzLmFyZ3YgPSBhcmd2OworCisJY2xvbmUgPSBremFsbG9jKHNpemVvZigqY2xvbmUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNsb25lKSB7CisJCXRpLT5lcnJvciA9ICJGYWlsZWQgdG8gYWxsb2NhdGUgY2xvbmUgc3RydWN0dXJlIjsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJY2xvbmUtPnRpID0gdGk7CisKKwkvKiBJbml0aWFsaXplIGRtLWNsb25lIGZsYWdzICovCisJX19zZXRfYml0KERNX0NMT05FX0hZRFJBVElPTl9FTkFCTEVELCAmY2xvbmUtPmZsYWdzKTsKKwlfX3NldF9iaXQoRE1fQ0xPTkVfSFlEUkFUSU9OX1NVU1BFTkRFRCwgJmNsb25lLT5mbGFncyk7CisJX19zZXRfYml0KERNX0NMT05FX0RJU0NBUkRfUEFTU0RPV04sICZjbG9uZS0+ZmxhZ3MpOworCisJciA9IHBhcnNlX21ldGFkYXRhX2RldihjbG9uZSwgJmFzLCAmdGktPmVycm9yKTsKKwlpZiAocikKKwkJZ290byBvdXRfd2l0aF9jbG9uZTsKKworCXIgPSBwYXJzZV9kZXN0X2RldihjbG9uZSwgJmFzLCAmdGktPmVycm9yKTsKKwlpZiAocikKKwkJZ290byBvdXRfd2l0aF9tZXRhX2RldjsKKworCXIgPSBwYXJzZV9zb3VyY2VfZGV2KGNsb25lLCAmYXMsICZ0aS0+ZXJyb3IpOworCWlmIChyKQorCQlnb3RvIG91dF93aXRoX2Rlc3RfZGV2OworCisJciA9IHBhcnNlX3JlZ2lvbl9zaXplKGNsb25lLCAmYXMsICZ0aS0+ZXJyb3IpOworCWlmIChyKQorCQlnb3RvIG91dF93aXRoX3NvdXJjZV9kZXY7CisKKwljbG9uZS0+cmVnaW9uX3NoaWZ0ID0gX19mZnMoY2xvbmUtPnJlZ2lvbl9zaXplKTsKKwljbG9uZS0+bnJfcmVnaW9ucyA9IGRtX3NlY3Rvcl9kaXZfdXAodGktPmxlbiwgY2xvbmUtPnJlZ2lvbl9zaXplKTsKKworCXIgPSB2YWxpZGF0ZV9ucl9yZWdpb25zKGNsb25lLT5ucl9yZWdpb25zLCAmdGktPmVycm9yKTsKKwlpZiAocikKKwkJZ290byBvdXRfd2l0aF9zb3VyY2VfZGV2OworCisJciA9IGRtX3NldF90YXJnZXRfbWF4X2lvX2xlbih0aSwgY2xvbmUtPnJlZ2lvbl9zaXplKTsKKwlpZiAocikgeworCQl0aS0+ZXJyb3IgPSAiRmFpbGVkIHRvIHNldCBtYXggaW8gbGVuIjsKKwkJZ290byBvdXRfd2l0aF9zb3VyY2VfZGV2OworCX0KKworCXIgPSBwYXJzZV9mZWF0dXJlX2FyZ3MoJmFzLCBjbG9uZSk7CisJaWYgKHIpCisJCWdvdG8gb3V0X3dpdGhfc291cmNlX2RldjsKKworCXIgPSBwYXJzZV9jb3JlX2FyZ3MoJmFzLCBjbG9uZSk7CisJaWYgKHIpCisJCWdvdG8gb3V0X3dpdGhfc291cmNlX2RldjsKKworCS8qIExvYWQgbWV0YWRhdGEgKi8KKwljbG9uZS0+Y21kID0gZG1fY2xvbmVfbWV0YWRhdGFfb3BlbihjbG9uZS0+bWV0YWRhdGFfZGV2LT5iZGV2LCB0aS0+bGVuLAorCQkJCQkgICAgY2xvbmUtPnJlZ2lvbl9zaXplKTsKKwlpZiAoSVNfRVJSKGNsb25lLT5jbWQpKSB7CisJCXRpLT5lcnJvciA9ICJGYWlsZWQgdG8gbG9hZCBtZXRhZGF0YSI7CisJCXIgPSBQVFJfRVJSKGNsb25lLT5jbWQpOworCQlnb3RvIG91dF93aXRoX3NvdXJjZV9kZXY7CisJfQorCisJX19zZXRfY2xvbmVfbW9kZShjbG9uZSwgQ01fV1JJVEUpOworCisJaWYgKGdldF9jbG9uZV9tb2RlKGNsb25lKSAhPSBDTV9XUklURSkgeworCQl0aS0+ZXJyb3IgPSAiVW5hYmxlIHRvIGdldCB3cml0ZSBhY2Nlc3MgdG8gbWV0YWRhdGEsIHBsZWFzZSBjaGVjay9yZXBhaXIgbWV0YWRhdGEiOworCQlyID0gLUVQRVJNOworCQlnb3RvIG91dF93aXRoX21ldGFkYXRhOworCX0KKworCWNsb25lLT5sYXN0X2NvbW1pdF9qaWZmaWVzID0gamlmZmllczsKKworCS8qIEFsbG9jYXRlIGh5ZHJhdGlvbiBoYXNoIHRhYmxlICovCisJciA9IGhhc2hfdGFibGVfaW5pdChjbG9uZSk7CisJaWYgKHIpIHsKKwkJdGktPmVycm9yID0gIkZhaWxlZCB0byBhbGxvY2F0ZSBoeWRyYXRpb24gaGFzaCB0YWJsZSI7CisJCWdvdG8gb3V0X3dpdGhfbWV0YWRhdGE7CisJfQorCisJYXRvbWljX3NldCgmY2xvbmUtPmlvc19pbl9mbGlnaHQsIDApOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmNsb25lLT5oeWRyYXRpb25fc3RvcHBlZCk7CisJc3Bpbl9sb2NrX2luaXQoJmNsb25lLT5sb2NrKTsKKwliaW9fbGlzdF9pbml0KCZjbG9uZS0+ZGVmZXJyZWRfYmlvcyk7CisJYmlvX2xpc3RfaW5pdCgmY2xvbmUtPmRlZmVycmVkX2Rpc2NhcmRfYmlvcyk7CisJYmlvX2xpc3RfaW5pdCgmY2xvbmUtPmRlZmVycmVkX2ZsdXNoX2Jpb3MpOworCWJpb19saXN0X2luaXQoJmNsb25lLT5kZWZlcnJlZF9mbHVzaF9jb21wbGV0aW9ucyk7CisJY2xvbmUtPmh5ZHJhdGlvbl9vZmZzZXQgPSAwOworCWF0b21pY19zZXQoJmNsb25lLT5oeWRyYXRpb25zX2luX2ZsaWdodCwgMCk7CisKKwljbG9uZS0+d3EgPSBhbGxvY193b3JrcXVldWUoImRtLSIgRE1fTVNHX1BSRUZJWCwgV1FfTUVNX1JFQ0xBSU0sIDApOworCWlmICghY2xvbmUtPndxKSB7CisJCXRpLT5lcnJvciA9ICJGYWlsZWQgdG8gYWxsb2NhdGUgd29ya3F1ZXVlIjsKKwkJciA9IC1FTk9NRU07CisJCWdvdG8gb3V0X3dpdGhfaHQ7CisJfQorCisJSU5JVF9XT1JLKCZjbG9uZS0+d29ya2VyLCBkb193b3JrZXIpOworCUlOSVRfREVMQVlFRF9XT1JLKCZjbG9uZS0+d2FrZXIsIGRvX3dha2VyKTsKKworCWNsb25lLT5rY29weWRfY2xpZW50ID0gZG1fa2NvcHlkX2NsaWVudF9jcmVhdGUoJmRtX2tjb3B5ZF90aHJvdHRsZSk7CisJaWYgKElTX0VSUihjbG9uZS0+a2NvcHlkX2NsaWVudCkpIHsKKwkJciA9IFBUUl9FUlIoY2xvbmUtPmtjb3B5ZF9jbGllbnQpOworCQlnb3RvIG91dF93aXRoX3dxOworCX0KKworCXIgPSBtZW1wb29sX2luaXRfc2xhYl9wb29sKCZjbG9uZS0+aHlkcmF0aW9uX3Bvb2wsIE1JTl9IWURSQVRJT05TLAorCQkJCSAgIF9oeWRyYXRpb25fY2FjaGUpOworCWlmIChyKSB7CisJCXRpLT5lcnJvciA9ICJGYWlsZWQgdG8gY3JlYXRlIGRtX2Nsb25lX3JlZ2lvbl9oeWRyYXRpb24gbWVtb3J5IHBvb2wiOworCQlnb3RvIG91dF93aXRoX2tjb3B5ZDsKKwl9CisKKwkvKiBTYXZlIGEgY29weSBvZiB0aGUgdGFibGUgbGluZSAqLworCXIgPSBjb3B5X2N0cl9hcmdzKGNsb25lLCBhcmdjIC0gMywgKGNvbnN0IGNoYXIgKiopYXJndiArIDMsICZ0aS0+ZXJyb3IpOworCWlmIChyKQorCQlnb3RvIG91dF93aXRoX21lbXBvb2w7CisKKwltdXRleF9pbml0KCZjbG9uZS0+Y29tbWl0X2xvY2spOworCWNsb25lLT5jYWxsYmFja3MuY29uZ2VzdGVkX2ZuID0gY2xvbmVfaXNfY29uZ2VzdGVkOworCWRtX3RhYmxlX2FkZF90YXJnZXRfY2FsbGJhY2tzKHRpLT50YWJsZSwgJmNsb25lLT5jYWxsYmFja3MpOworCisJLyogRW5hYmxlIGZsdXNoZXMgKi8KKwl0aS0+bnVtX2ZsdXNoX2Jpb3MgPSAxOworCXRpLT5mbHVzaF9zdXBwb3J0ZWQgPSB0cnVlOworCisJLyogRW5hYmxlIGRpc2NhcmRzICovCisJdGktPmRpc2NhcmRzX3N1cHBvcnRlZCA9IHRydWU7CisJdGktPm51bV9kaXNjYXJkX2Jpb3MgPSAxOworCisJdGktPnByaXZhdGUgPSBjbG9uZTsKKworCXJldHVybiAwOworCitvdXRfd2l0aF9tZW1wb29sOgorCW1lbXBvb2xfZXhpdCgmY2xvbmUtPmh5ZHJhdGlvbl9wb29sKTsKK291dF93aXRoX2tjb3B5ZDoKKwlkbV9rY29weWRfY2xpZW50X2Rlc3Ryb3koY2xvbmUtPmtjb3B5ZF9jbGllbnQpOworb3V0X3dpdGhfd3E6CisJZGVzdHJveV93b3JrcXVldWUoY2xvbmUtPndxKTsKK291dF93aXRoX2h0OgorCWhhc2hfdGFibGVfZXhpdChjbG9uZSk7CitvdXRfd2l0aF9tZXRhZGF0YToKKwlkbV9jbG9uZV9tZXRhZGF0YV9jbG9zZShjbG9uZS0+Y21kKTsKK291dF93aXRoX3NvdXJjZV9kZXY6CisJZG1fcHV0X2RldmljZSh0aSwgY2xvbmUtPnNvdXJjZV9kZXYpOworb3V0X3dpdGhfZGVzdF9kZXY6CisJZG1fcHV0X2RldmljZSh0aSwgY2xvbmUtPmRlc3RfZGV2KTsKK291dF93aXRoX21ldGFfZGV2OgorCWRtX3B1dF9kZXZpY2UodGksIGNsb25lLT5tZXRhZGF0YV9kZXYpOworb3V0X3dpdGhfY2xvbmU6CisJa2ZyZWUoY2xvbmUpOworCisJcmV0dXJuIHI7Cit9CisKK3N0YXRpYyB2b2lkIGNsb25lX2R0cihzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwlzdHJ1Y3QgY2xvbmUgKmNsb25lID0gdGktPnByaXZhdGU7CisKKwltdXRleF9kZXN0cm95KCZjbG9uZS0+Y29tbWl0X2xvY2spOworCisJZm9yIChpID0gMDsgaSA8IGNsb25lLT5ucl9jdHJfYXJnczsgaSsrKQorCQlrZnJlZShjbG9uZS0+Y3RyX2FyZ3NbaV0pOworCWtmcmVlKGNsb25lLT5jdHJfYXJncyk7CisKKwltZW1wb29sX2V4aXQoJmNsb25lLT5oeWRyYXRpb25fcG9vbCk7CisJZG1fa2NvcHlkX2NsaWVudF9kZXN0cm95KGNsb25lLT5rY29weWRfY2xpZW50KTsKKwlkZXN0cm95X3dvcmtxdWV1ZShjbG9uZS0+d3EpOworCWhhc2hfdGFibGVfZXhpdChjbG9uZSk7CisJZG1fY2xvbmVfbWV0YWRhdGFfY2xvc2UoY2xvbmUtPmNtZCk7CisJZG1fcHV0X2RldmljZSh0aSwgY2xvbmUtPnNvdXJjZV9kZXYpOworCWRtX3B1dF9kZXZpY2UodGksIGNsb25lLT5kZXN0X2Rldik7CisJZG1fcHV0X2RldmljZSh0aSwgY2xvbmUtPm1ldGFkYXRhX2Rldik7CisKKwlrZnJlZShjbG9uZSk7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIHZvaWQgY2xvbmVfcG9zdHN1c3BlbmQoc3RydWN0IGRtX3RhcmdldCAqdGkpCit7CisJc3RydWN0IGNsb25lICpjbG9uZSA9IHRpLT5wcml2YXRlOworCisJLyoKKwkgKiBUbyBzdWNjZXNzZnVsbHkgc3VzcGVuZCB0aGUgZGV2aWNlOgorCSAqCisJICoJLSBXZSBjYW5jZWwgdGhlIGRlbGF5ZWQgd29yayBmb3IgcGVyaW9kaWMgY29tbWl0cyBhbmQgd2FpdCBmb3IKKwkgKgkgIGl0IHRvIGZpbmlzaC4KKwkgKgorCSAqCS0gV2Ugc3RvcCB0aGUgYmFja2dyb3VuZCBoeWRyYXRpb24sIGkuZS4gd2UgcHJldmVudCBuZXcgcmVnaW9uCisJICoJICBoeWRyYXRpb25zIGZyb20gc3RhcnRpbmcuCisJICoKKwkgKgktIFdlIHdhaXQgZm9yIGFueSBpbi1mbGlnaHQgaHlkcmF0aW9ucyB0byBmaW5pc2guCisJICoKKwkgKgktIFdlIGZsdXNoIHRoZSB3b3JrcXVldWUuCisJICoKKwkgKgktIFdlIGNvbW1pdCB0aGUgbWV0YWRhdGEuCisJICovCisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZjbG9uZS0+d2FrZXIpOworCisJc2V0X2JpdChETV9DTE9ORV9IWURSQVRJT05fU1VTUEVOREVELCAmY2xvbmUtPmZsYWdzKTsKKworCS8qCisJICogTWFrZSBzdXJlIHNldF9iaXQoKSBpcyBvcmRlcmVkIGJlZm9yZSBhdG9taWNfcmVhZCgpLCBvdGhlcndpc2Ugd2UKKwkgKiBtaWdodCByYWNlIHdpdGggZG9faHlkcmF0aW9uKCkgYW5kIG1pc3Mgc29tZSBzdGFydGVkIHJlZ2lvbgorCSAqIGh5ZHJhdGlvbnMuCisJICoKKwkgKiBUaGlzIGlzIHBhaXJlZCB3aXRoIHNtcF9tYl9fYWZ0ZXJfYXRvbWljKCkgaW4gZG9faHlkcmF0aW9uKCkuCisJICovCisJc21wX21iX19hZnRlcl9hdG9taWMoKTsKKworCXdhaXRfZXZlbnQoY2xvbmUtPmh5ZHJhdGlvbl9zdG9wcGVkLCAhYXRvbWljX3JlYWQoJmNsb25lLT5oeWRyYXRpb25zX2luX2ZsaWdodCkpOworCWZsdXNoX3dvcmtxdWV1ZShjbG9uZS0+d3EpOworCisJKHZvaWQpIGNvbW1pdF9tZXRhZGF0YShjbG9uZSk7Cit9CisKK3N0YXRpYyB2b2lkIGNsb25lX3Jlc3VtZShzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSkKK3sKKwlzdHJ1Y3QgY2xvbmUgKmNsb25lID0gdGktPnByaXZhdGU7CisKKwljbGVhcl9iaXQoRE1fQ0xPTkVfSFlEUkFUSU9OX1NVU1BFTkRFRCwgJmNsb25lLT5mbGFncyk7CisJZG9fd2FrZXIoJmNsb25lLT53YWtlci53b3JrKTsKK30KKworc3RhdGljIGJvb2wgYmRldl9zdXBwb3J0c19kaXNjYXJkcyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQoreworCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRfcXVldWUoYmRldik7CisKKwlyZXR1cm4gKHEgJiYgYmxrX3F1ZXVlX2Rpc2NhcmQocSkpOworfQorCisvKgorICogSWYgZGlzY2FyZF9wYXNzZG93biB3YXMgZW5hYmxlZCB2ZXJpZnkgdGhhdCB0aGUgZGVzdGluYXRpb24gZGV2aWNlIHN1cHBvcnRzCisgKiBkaXNjYXJkcy4gRGlzYWJsZSBkaXNjYXJkX3Bhc3Nkb3duIGlmIG5vdC4KKyAqLworc3RhdGljIHZvaWQgZGlzYWJsZV9wYXNzZG93bl9pZl9ub3Rfc3VwcG9ydGVkKHN0cnVjdCBjbG9uZSAqY2xvbmUpCit7CisJc3RydWN0IGJsb2NrX2RldmljZSAqZGVzdF9kZXYgPSBjbG9uZS0+ZGVzdF9kZXYtPmJkZXY7CisJc3RydWN0IHF1ZXVlX2xpbWl0cyAqZGVzdF9saW1pdHMgPSAmYmRldl9nZXRfcXVldWUoZGVzdF9kZXYpLT5saW1pdHM7CisJY29uc3QgY2hhciAqcmVhc29uID0gTlVMTDsKKwljaGFyIGJ1ZltCREVWTkFNRV9TSVpFXTsKKworCWlmICghdGVzdF9iaXQoRE1fQ0xPTkVfRElTQ0FSRF9QQVNTRE9XTiwgJmNsb25lLT5mbGFncykpCisJCXJldHVybjsKKworCWlmICghYmRldl9zdXBwb3J0c19kaXNjYXJkcyhkZXN0X2RldikpCisJCXJlYXNvbiA9ICJkaXNjYXJkIHVuc3VwcG9ydGVkIjsKKwllbHNlIGlmIChkZXN0X2xpbWl0cy0+bWF4X2Rpc2NhcmRfc2VjdG9ycyA8IGNsb25lLT5yZWdpb25fc2l6ZSkKKwkJcmVhc29uID0gIm1heCBkaXNjYXJkIHNlY3RvcnMgc21hbGxlciB0aGFuIGEgcmVnaW9uIjsKKworCWlmIChyZWFzb24pIHsKKwkJRE1XQVJOKCJEZXN0aW5hdGlvbiBkZXZpY2UgKCVzKSAlczogRGlzYWJsaW5nIGRpc2NhcmQgcGFzc2Rvd24uIiwKKwkJICAgICAgIGJkZXZuYW1lKGRlc3RfZGV2LCBidWYpLCByZWFzb24pOworCQljbGVhcl9iaXQoRE1fQ0xPTkVfRElTQ0FSRF9QQVNTRE9XTiwgJmNsb25lLT5mbGFncyk7CisJfQorfQorCitzdGF0aWMgdm9pZCBzZXRfZGlzY2FyZF9saW1pdHMoc3RydWN0IGNsb25lICpjbG9uZSwgc3RydWN0IHF1ZXVlX2xpbWl0cyAqbGltaXRzKQoreworCXN0cnVjdCBibG9ja19kZXZpY2UgKmRlc3RfYmRldiA9IGNsb25lLT5kZXN0X2Rldi0+YmRldjsKKwlzdHJ1Y3QgcXVldWVfbGltaXRzICpkZXN0X2xpbWl0cyA9ICZiZGV2X2dldF9xdWV1ZShkZXN0X2JkZXYpLT5saW1pdHM7CisKKwlpZiAoIXRlc3RfYml0KERNX0NMT05FX0RJU0NBUkRfUEFTU0RPV04sICZjbG9uZS0+ZmxhZ3MpKSB7CisJCS8qIE5vIHBhc3Nkb3duIGlzIGRvbmUgc28gd2Ugc2V0IG91ciBvd24gdmlydHVhbCBsaW1pdHMgKi8KKwkJbGltaXRzLT5kaXNjYXJkX2dyYW51bGFyaXR5ID0gY2xvbmUtPnJlZ2lvbl9zaXplIDw8IFNFQ1RPUl9TSElGVDsKKwkJbGltaXRzLT5tYXhfZGlzY2FyZF9zZWN0b3JzID0gcm91bmRfZG93bihVSU5UX01BWCA+PiBTRUNUT1JfU0hJRlQsIGNsb25lLT5yZWdpb25fc2l6ZSk7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIGNsb25lX2l0ZXJhdGVfZGV2aWNlcygpIGlzIHN0YWNraW5nIGJvdGggdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24KKwkgKiBkZXZpY2UgbGltaXRzIGJ1dCBkaXNjYXJkcyBhcmVuJ3QgcGFzc2VkIHRvIHRoZSBzb3VyY2UgZGV2aWNlLCBzbworCSAqIGluaGVyaXQgZGVzdGluYXRpb24ncyBsaW1pdHMuCisJICovCisJbGltaXRzLT5tYXhfZGlzY2FyZF9zZWN0b3JzID0gZGVzdF9saW1pdHMtPm1heF9kaXNjYXJkX3NlY3RvcnM7CisJbGltaXRzLT5tYXhfaHdfZGlzY2FyZF9zZWN0b3JzID0gZGVzdF9saW1pdHMtPm1heF9od19kaXNjYXJkX3NlY3RvcnM7CisJbGltaXRzLT5kaXNjYXJkX2dyYW51bGFyaXR5ID0gZGVzdF9saW1pdHMtPmRpc2NhcmRfZ3JhbnVsYXJpdHk7CisJbGltaXRzLT5kaXNjYXJkX2FsaWdubWVudCA9IGRlc3RfbGltaXRzLT5kaXNjYXJkX2FsaWdubWVudDsKKwlsaW1pdHMtPmRpc2NhcmRfbWlzYWxpZ25lZCA9IGRlc3RfbGltaXRzLT5kaXNjYXJkX21pc2FsaWduZWQ7CisJbGltaXRzLT5tYXhfZGlzY2FyZF9zZWdtZW50cyA9IGRlc3RfbGltaXRzLT5tYXhfZGlzY2FyZF9zZWdtZW50czsKK30KKworc3RhdGljIHZvaWQgY2xvbmVfaW9faGludHMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0cnVjdCBxdWV1ZV9saW1pdHMgKmxpbWl0cykKK3sKKwlzdHJ1Y3QgY2xvbmUgKmNsb25lID0gdGktPnByaXZhdGU7CisJdTY0IGlvX29wdF9zZWN0b3JzID0gbGltaXRzLT5pb19vcHQgPj4gU0VDVE9SX1NISUZUOworCisJLyoKKwkgKiBJZiB0aGUgc3lzdGVtLWRldGVybWluZWQgc3RhY2tlZCBsaW1pdHMgYXJlIGNvbXBhdGlibGUgd2l0aAorCSAqIGRtLWNsb25lJ3MgcmVnaW9uIHNpemUgKGlvX29wdCBpcyBhIGZhY3RvcikgZG8gbm90IG92ZXJyaWRlIHRoZW0uCisJICovCisJaWYgKGlvX29wdF9zZWN0b3JzIDwgY2xvbmUtPnJlZ2lvbl9zaXplIHx8CisJICAgIGRvX2Rpdihpb19vcHRfc2VjdG9ycywgY2xvbmUtPnJlZ2lvbl9zaXplKSkgeworCQlibGtfbGltaXRzX2lvX21pbihsaW1pdHMsIGNsb25lLT5yZWdpb25fc2l6ZSA8PCBTRUNUT1JfU0hJRlQpOworCQlibGtfbGltaXRzX2lvX29wdChsaW1pdHMsIGNsb25lLT5yZWdpb25fc2l6ZSA8PCBTRUNUT1JfU0hJRlQpOworCX0KKworCWRpc2FibGVfcGFzc2Rvd25faWZfbm90X3N1cHBvcnRlZChjbG9uZSk7CisJc2V0X2Rpc2NhcmRfbGltaXRzKGNsb25lLCBsaW1pdHMpOworfQorCitzdGF0aWMgaW50IGNsb25lX2l0ZXJhdGVfZGV2aWNlcyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwKKwkJCQkgaXRlcmF0ZV9kZXZpY2VzX2NhbGxvdXRfZm4gZm4sIHZvaWQgKmRhdGEpCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgY2xvbmUgKmNsb25lID0gdGktPnByaXZhdGU7CisJc3RydWN0IGRtX2RldiAqZGVzdF9kZXYgPSBjbG9uZS0+ZGVzdF9kZXY7CisJc3RydWN0IGRtX2RldiAqc291cmNlX2RldiA9IGNsb25lLT5zb3VyY2VfZGV2OworCisJcmV0ID0gZm4odGksIHNvdXJjZV9kZXYsIDAsIHRpLT5sZW4sIGRhdGEpOworCWlmICghcmV0KQorCQlyZXQgPSBmbih0aSwgZGVzdF9kZXYsIDAsIHRpLT5sZW4sIGRhdGEpOworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBkbS1jbG9uZSBtZXNzYWdlIGZ1bmN0aW9ucy4KKyAqLworc3RhdGljIHZvaWQgc2V0X2h5ZHJhdGlvbl90aHJlc2hvbGQoc3RydWN0IGNsb25lICpjbG9uZSwgdW5zaWduZWQgaW50IG5yX3JlZ2lvbnMpCit7CisJV1JJVEVfT05DRShjbG9uZS0+aHlkcmF0aW9uX3RocmVzaG9sZCwgbnJfcmVnaW9ucyk7CisKKwkvKgorCSAqIElmIHVzZXIgc3BhY2Ugc2V0cyBoeWRyYXRpb25fdGhyZXNob2xkIHRvIHplcm8gdGhlbiB0aGUgaHlkcmF0aW9uCisJICogd2lsbCBzdG9wLiBJZiBhdCBhIGxhdGVyIHRpbWUgdGhlIGh5ZHJhdGlvbl90aHJlc2hvbGQgaXMgaW5jcmVhc2VkCisJICogd2UgbXVzdCByZXN0YXJ0IHRoZSBoeWRyYXRpb24gcHJvY2VzcyBieSB3YWtpbmcgdXAgdGhlIHdvcmtlci4KKwkgKi8KKwl3YWtlX3dvcmtlcihjbG9uZSk7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9oeWRyYXRpb25fYmF0Y2hfc2l6ZShzdHJ1Y3QgY2xvbmUgKmNsb25lLCB1bnNpZ25lZCBpbnQgbnJfcmVnaW9ucykKK3sKKwlXUklURV9PTkNFKGNsb25lLT5oeWRyYXRpb25fYmF0Y2hfc2l6ZSwgbnJfcmVnaW9ucyk7Cit9CisKK3N0YXRpYyB2b2lkIGVuYWJsZV9oeWRyYXRpb24oc3RydWN0IGNsb25lICpjbG9uZSkKK3sKKwlpZiAoIXRlc3RfYW5kX3NldF9iaXQoRE1fQ0xPTkVfSFlEUkFUSU9OX0VOQUJMRUQsICZjbG9uZS0+ZmxhZ3MpKQorCQl3YWtlX3dvcmtlcihjbG9uZSk7Cit9CisKK3N0YXRpYyB2b2lkIGRpc2FibGVfaHlkcmF0aW9uKHN0cnVjdCBjbG9uZSAqY2xvbmUpCit7CisJY2xlYXJfYml0KERNX0NMT05FX0hZRFJBVElPTl9FTkFCTEVELCAmY2xvbmUtPmZsYWdzKTsKK30KKworc3RhdGljIGludCBjbG9uZV9tZXNzYWdlKHN0cnVjdCBkbV90YXJnZXQgKnRpLCB1bnNpZ25lZCBpbnQgYXJnYywgY2hhciAqKmFyZ3YsCisJCQkgY2hhciAqcmVzdWx0LCB1bnNpZ25lZCBpbnQgbWF4bGVuKQoreworCXN0cnVjdCBjbG9uZSAqY2xvbmUgPSB0aS0+cHJpdmF0ZTsKKwl1bnNpZ25lZCBpbnQgdmFsdWU7CisKKwlpZiAoIWFyZ2MpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFzdHJjYXNlY21wKGFyZ3ZbMF0sICJlbmFibGVfaHlkcmF0aW9uIikpIHsKKwkJZW5hYmxlX2h5ZHJhdGlvbihjbG9uZSk7CisJCXJldHVybiAwOworCX0KKworCWlmICghc3RyY2FzZWNtcChhcmd2WzBdLCAiZGlzYWJsZV9oeWRyYXRpb24iKSkgeworCQlkaXNhYmxlX2h5ZHJhdGlvbihjbG9uZSk7CisJCXJldHVybiAwOworCX0KKworCWlmIChhcmdjICE9IDIpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFzdHJjYXNlY21wKGFyZ3ZbMF0sICJoeWRyYXRpb25fdGhyZXNob2xkIikpIHsKKwkJaWYgKGtzdHJ0b3VpbnQoYXJndlsxXSwgMTAsICZ2YWx1ZSkpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlzZXRfaHlkcmF0aW9uX3RocmVzaG9sZChjbG9uZSwgdmFsdWUpOworCisJCXJldHVybiAwOworCX0KKworCWlmICghc3RyY2FzZWNtcChhcmd2WzBdLCAiaHlkcmF0aW9uX2JhdGNoX3NpemUiKSkgeworCQlpZiAoa3N0cnRvdWludChhcmd2WzFdLCAxMCwgJnZhbHVlKSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCXNldF9oeWRyYXRpb25fYmF0Y2hfc2l6ZShjbG9uZSwgdmFsdWUpOworCisJCXJldHVybiAwOworCX0KKworCURNRVJSKCIlczogVW5zdXBwb3J0ZWQgbWVzc2FnZSBgJXMnIiwgY2xvbmVfZGV2aWNlX25hbWUoY2xvbmUpLCBhcmd2WzBdKTsKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIHN0cnVjdCB0YXJnZXRfdHlwZSBjbG9uZV90YXJnZXQgPSB7CisJLm5hbWUgPSAiY2xvbmUiLAorCS52ZXJzaW9uID0gezEsIDAsIDB9LAorCS5tb2R1bGUgPSBUSElTX01PRFVMRSwKKwkuY3RyID0gY2xvbmVfY3RyLAorCS5kdHIgPSAgY2xvbmVfZHRyLAorCS5tYXAgPSBjbG9uZV9tYXAsCisJLmVuZF9pbyA9IGNsb25lX2VuZGlvLAorCS5wb3N0c3VzcGVuZCA9IGNsb25lX3Bvc3RzdXNwZW5kLAorCS5yZXN1bWUgPSBjbG9uZV9yZXN1bWUsCisJLnN0YXR1cyA9IGNsb25lX3N0YXR1cywKKwkubWVzc2FnZSA9IGNsb25lX21lc3NhZ2UsCisJLmlvX2hpbnRzID0gY2xvbmVfaW9faGludHMsCisJLml0ZXJhdGVfZGV2aWNlcyA9IGNsb25lX2l0ZXJhdGVfZGV2aWNlcywKK307CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogTW9kdWxlIGZ1bmN0aW9ucyAqLworc3RhdGljIGludCBfX2luaXQgZG1fY2xvbmVfaW5pdCh2b2lkKQoreworCWludCByOworCisJX2h5ZHJhdGlvbl9jYWNoZSA9IEtNRU1fQ0FDSEUoZG1fY2xvbmVfcmVnaW9uX2h5ZHJhdGlvbiwgMCk7CisJaWYgKCFfaHlkcmF0aW9uX2NhY2hlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXIgPSBkbV9yZWdpc3Rlcl90YXJnZXQoJmNsb25lX3RhcmdldCk7CisJaWYgKHIgPCAwKSB7CisJCURNRVJSKCJGYWlsZWQgdG8gcmVnaXN0ZXIgY2xvbmUgdGFyZ2V0Iik7CisJCXJldHVybiByOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgZG1fY2xvbmVfZXhpdCh2b2lkKQoreworCWRtX3VucmVnaXN0ZXJfdGFyZ2V0KCZjbG9uZV90YXJnZXQpOworCisJa21lbV9jYWNoZV9kZXN0cm95KF9oeWRyYXRpb25fY2FjaGUpOworCV9oeWRyYXRpb25fY2FjaGUgPSBOVUxMOworfQorCisvKiBNb2R1bGUgaG9va3MgKi8KK21vZHVsZV9pbml0KGRtX2Nsb25lX2luaXQpOworbW9kdWxlX2V4aXQoZG1fY2xvbmVfZXhpdCk7CisKK01PRFVMRV9ERVNDUklQVElPTihETV9OQU1FICIgY2xvbmUgdGFyZ2V0Iik7CitNT0RVTEVfQVVUSE9SKCJOaWtvcyBUc2lyb25pcyA8bnRzaXJvbmlzQGFycmlrdG8uY29tPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1jcnlwdC5jIGIvZHJpdmVycy9tZC9kbS1jcnlwdC5jCmluZGV4IGQ1MjE2YmMuLmY4N2Y2NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tY3J5cHQuYworKysgYi9kcml2ZXJzL21kL2RtLWNyeXB0LmMKQEAgLTk4LDExICs5OCw2IEBAIHN0cnVjdCBjcnlwdF9pdl9vcGVyYXRpb25zIHsKIAkJICAgIHN0cnVjdCBkbV9jcnlwdF9yZXF1ZXN0ICpkbXJlcSk7CiB9OwogCi1zdHJ1Y3QgaXZfZXNzaXZfcHJpdmF0ZSB7Ci0Jc3RydWN0IGNyeXB0b19zaGFzaCAqaGFzaF90Zm07Ci0JdTggKnNhbHQ7Ci19OwotCiBzdHJ1Y3QgaXZfYmVuYmlfcHJpdmF0ZSB7CiAJaW50IHNoaWZ0OwogfTsKQEAgLTEyMCwxMCArMTE1LDYgQEAgc3RydWN0IGl2X3Rjd19wcml2YXRlIHsKIAl1OCAqd2hpdGVuaW5nOwogfTsKIAotc3RydWN0IGl2X2Vib2l2X3ByaXZhdGUgewotCXN0cnVjdCBjcnlwdG9fY2lwaGVyICp0Zm07Ci19OwotCiAvKgogICogQ3J5cHQ6IG1hcHMgYSBsaW5lYXIgcmFuZ2Ugb2YgYSBibG9jayBkZXZpY2UKICAqIGFuZCBlbmNyeXB0cyAvIGRlY3J5cHRzIGF0IHRoZSBzYW1lIHRpbWUuCkBAIC0xNTIsMjYgKzE0MywyMSBAQCBzdHJ1Y3QgY3J5cHRfY29uZmlnIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKndyaXRlX3RocmVhZDsKIAlzdHJ1Y3QgcmJfcm9vdCB3cml0ZV90cmVlOwogCi0JY2hhciAqY2lwaGVyOwogCWNoYXIgKmNpcGhlcl9zdHJpbmc7CiAJY2hhciAqY2lwaGVyX2F1dGg7CiAJY2hhciAqa2V5X3N0cmluZzsKIAogCWNvbnN0IHN0cnVjdCBjcnlwdF9pdl9vcGVyYXRpb25zICppdl9nZW5fb3BzOwogCXVuaW9uIHsKLQkJc3RydWN0IGl2X2Vzc2l2X3ByaXZhdGUgZXNzaXY7CiAJCXN0cnVjdCBpdl9iZW5iaV9wcml2YXRlIGJlbmJpOwogCQlzdHJ1Y3QgaXZfbG1rX3ByaXZhdGUgbG1rOwogCQlzdHJ1Y3QgaXZfdGN3X3ByaXZhdGUgdGN3OwotCQlzdHJ1Y3QgaXZfZWJvaXZfcHJpdmF0ZSBlYm9pdjsKIAl9IGl2X2dlbl9wcml2YXRlOwogCXU2NCBpdl9vZmZzZXQ7CiAJdW5zaWduZWQgaW50IGl2X3NpemU7CiAJdW5zaWduZWQgc2hvcnQgaW50IHNlY3Rvcl9zaXplOwogCXVuc2lnbmVkIGNoYXIgc2VjdG9yX3NoaWZ0OwogCi0JLyogRVNTSVY6IHN0cnVjdCBjcnlwdG9fY2lwaGVyICplc3Npdl90Zm0gKi8KLQl2b2lkICppdl9wcml2YXRlOwogCXVuaW9uIHsKIAkJc3RydWN0IGNyeXB0b19za2NpcGhlciAqKnRmbXM7CiAJCXN0cnVjdCBjcnlwdG9fYWVhZCAqKnRmbXNfYWVhZDsKQEAgLTMyOSwxNTcgKzMxNSwxNSBAQCBzdGF0aWMgaW50IGNyeXB0X2l2X3BsYWluNjRiZV9nZW4oc3RydWN0IGNyeXB0X2NvbmZpZyAqY2MsIHU4ICppdiwKIAlyZXR1cm4gMDsKIH0KIAotLyogSW5pdGlhbGlzZSBFU1NJViAtIGNvbXB1dGUgc2FsdCBidXQgbm8gbG9jYWwgbWVtb3J5IGFsbG9jYXRpb25zICovCi1zdGF0aWMgaW50IGNyeXB0X2l2X2Vzc2l2X2luaXQoc3RydWN0IGNyeXB0X2NvbmZpZyAqY2MpCi17Ci0Jc3RydWN0IGl2X2Vzc2l2X3ByaXZhdGUgKmVzc2l2ID0gJmNjLT5pdl9nZW5fcHJpdmF0ZS5lc3NpdjsKLQlTSEFTSF9ERVNDX09OX1NUQUNLKGRlc2MsIGVzc2l2LT5oYXNoX3RmbSk7Ci0Jc3RydWN0IGNyeXB0b19jaXBoZXIgKmVzc2l2X3RmbTsKLQlpbnQgZXJyOwotCi0JZGVzYy0+dGZtID0gZXNzaXYtPmhhc2hfdGZtOwotCi0JZXJyID0gY3J5cHRvX3NoYXNoX2RpZ2VzdChkZXNjLCBjYy0+a2V5LCBjYy0+a2V5X3NpemUsIGVzc2l2LT5zYWx0KTsKLQlzaGFzaF9kZXNjX3plcm8oZGVzYyk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKLQotCWVzc2l2X3RmbSA9IGNjLT5pdl9wcml2YXRlOwotCi0JZXJyID0gY3J5cHRvX2NpcGhlcl9zZXRrZXkoZXNzaXZfdGZtLCBlc3Npdi0+c2FsdCwKLQkJCSAgICBjcnlwdG9fc2hhc2hfZGlnZXN0c2l6ZShlc3Npdi0+aGFzaF90Zm0pKTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qIFdpcGUgc2FsdCBhbmQgcmVzZXQga2V5IGRlcml2ZWQgZnJvbSB2b2x1bWUga2V5ICovCi1zdGF0aWMgaW50IGNyeXB0X2l2X2Vzc2l2X3dpcGUoc3RydWN0IGNyeXB0X2NvbmZpZyAqY2MpCi17Ci0Jc3RydWN0IGl2X2Vzc2l2X3ByaXZhdGUgKmVzc2l2ID0gJmNjLT5pdl9nZW5fcHJpdmF0ZS5lc3NpdjsKLQl1bnNpZ25lZCBzYWx0X3NpemUgPSBjcnlwdG9fc2hhc2hfZGlnZXN0c2l6ZShlc3Npdi0+aGFzaF90Zm0pOwotCXN0cnVjdCBjcnlwdG9fY2lwaGVyICplc3Npdl90Zm07Ci0JaW50IHIsIGVyciA9IDA7Ci0KLQltZW1zZXQoZXNzaXYtPnNhbHQsIDAsIHNhbHRfc2l6ZSk7Ci0KLQllc3Npdl90Zm0gPSBjYy0+aXZfcHJpdmF0ZTsKLQlyID0gY3J5cHRvX2NpcGhlcl9zZXRrZXkoZXNzaXZfdGZtLCBlc3Npdi0+c2FsdCwgc2FsdF9zaXplKTsKLQlpZiAocikKLQkJZXJyID0gcjsKLQotCXJldHVybiBlcnI7Ci19Ci0KLS8qIEFsbG9jYXRlIHRoZSBjaXBoZXIgZm9yIEVTU0lWICovCi1zdGF0aWMgc3RydWN0IGNyeXB0b19jaXBoZXIgKmFsbG9jX2Vzc2l2X2NpcGhlcihzdHJ1Y3QgY3J5cHRfY29uZmlnICpjYywKLQkJCQkJCXN0cnVjdCBkbV90YXJnZXQgKnRpLAotCQkJCQkJY29uc3QgdTggKnNhbHQsCi0JCQkJCQl1bnNpZ25lZCBpbnQgc2FsdHNpemUpCi17Ci0Jc3RydWN0IGNyeXB0b19jaXBoZXIgKmVzc2l2X3RmbTsKLQlpbnQgZXJyOwotCi0JLyogU2V0dXAgdGhlIGVzc2l2X3RmbSB3aXRoIHRoZSBnaXZlbiBzYWx0ICovCi0JZXNzaXZfdGZtID0gY3J5cHRvX2FsbG9jX2NpcGhlcihjYy0+Y2lwaGVyLCAwLCAwKTsKLQlpZiAoSVNfRVJSKGVzc2l2X3RmbSkpIHsKLQkJdGktPmVycm9yID0gIkVycm9yIGFsbG9jYXRpbmcgY3J5cHRvIHRmbSBmb3IgRVNTSVYiOwotCQlyZXR1cm4gZXNzaXZfdGZtOwotCX0KLQotCWlmIChjcnlwdG9fY2lwaGVyX2Jsb2Nrc2l6ZShlc3Npdl90Zm0pICE9IGNjLT5pdl9zaXplKSB7Ci0JCXRpLT5lcnJvciA9ICJCbG9jayBzaXplIG9mIEVTU0lWIGNpcGhlciBkb2VzICIKLQkJCSAgICAibm90IG1hdGNoIElWIHNpemUgb2YgYmxvY2sgY2lwaGVyIjsKLQkJY3J5cHRvX2ZyZWVfY2lwaGVyKGVzc2l2X3RmbSk7Ci0JCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwotCX0KLQotCWVyciA9IGNyeXB0b19jaXBoZXJfc2V0a2V5KGVzc2l2X3RmbSwgc2FsdCwgc2FsdHNpemUpOwotCWlmIChlcnIpIHsKLQkJdGktPmVycm9yID0gIkZhaWxlZCB0byBzZXQga2V5IGZvciBFU1NJViBjaXBoZXIiOwotCQljcnlwdG9fZnJlZV9jaXBoZXIoZXNzaXZfdGZtKTsKLQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKLQl9Ci0KLQlyZXR1cm4gZXNzaXZfdGZtOwotfQotCi1zdGF0aWMgdm9pZCBjcnlwdF9pdl9lc3Npdl9kdHIoc3RydWN0IGNyeXB0X2NvbmZpZyAqY2MpCi17Ci0Jc3RydWN0IGNyeXB0b19jaXBoZXIgKmVzc2l2X3RmbTsKLQlzdHJ1Y3QgaXZfZXNzaXZfcHJpdmF0ZSAqZXNzaXYgPSAmY2MtPml2X2dlbl9wcml2YXRlLmVzc2l2OwotCi0JY3J5cHRvX2ZyZWVfc2hhc2goZXNzaXYtPmhhc2hfdGZtKTsKLQllc3Npdi0+aGFzaF90Zm0gPSBOVUxMOwotCi0Ja3pmcmVlKGVzc2l2LT5zYWx0KTsKLQllc3Npdi0+c2FsdCA9IE5VTEw7Ci0KLQllc3Npdl90Zm0gPSBjYy0+aXZfcHJpdmF0ZTsKLQotCWlmIChlc3Npdl90Zm0pCi0JCWNyeXB0b19mcmVlX2NpcGhlcihlc3Npdl90Zm0pOwotCi0JY2MtPml2X3ByaXZhdGUgPSBOVUxMOwotfQotCi1zdGF0aWMgaW50IGNyeXB0X2l2X2Vzc2l2X2N0cihzdHJ1Y3QgY3J5cHRfY29uZmlnICpjYywgc3RydWN0IGRtX3RhcmdldCAqdGksCi0JCQkgICAgICBjb25zdCBjaGFyICpvcHRzKQotewotCXN0cnVjdCBjcnlwdG9fY2lwaGVyICplc3Npdl90Zm0gPSBOVUxMOwotCXN0cnVjdCBjcnlwdG9fc2hhc2ggKmhhc2hfdGZtID0gTlVMTDsKLQl1OCAqc2FsdCA9IE5VTEw7Ci0JaW50IGVycjsKLQotCWlmICghb3B0cykgewotCQl0aS0+ZXJyb3IgPSAiRGlnZXN0IGFsZ29yaXRobSBtaXNzaW5nIGZvciBFU1NJViBtb2RlIjsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogQWxsb2NhdGUgaGFzaCBhbGdvcml0aG0gKi8KLQloYXNoX3RmbSA9IGNyeXB0b19hbGxvY19zaGFzaChvcHRzLCAwLCAwKTsKLQlpZiAoSVNfRVJSKGhhc2hfdGZtKSkgewotCQl0aS0+ZXJyb3IgPSAiRXJyb3IgaW5pdGlhbGl6aW5nIEVTU0lWIGhhc2giOwotCQllcnIgPSBQVFJfRVJSKGhhc2hfdGZtKTsKLQkJZ290byBiYWQ7Ci0JfQotCi0Jc2FsdCA9IGt6YWxsb2MoY3J5cHRvX3NoYXNoX2RpZ2VzdHNpemUoaGFzaF90Zm0pLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXNhbHQpIHsKLQkJdGktPmVycm9yID0gIkVycm9yIGttYWxsb2Npbmcgc2FsdCBzdG9yYWdlIGluIEVTU0lWIjsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBiYWQ7Ci0JfQotCi0JY2MtPml2X2dlbl9wcml2YXRlLmVzc2l2LnNhbHQgPSBzYWx0OwotCWNjLT5pdl9nZW5fcHJpdmF0ZS5lc3Npdi5oYXNoX3RmbSA9IGhhc2hfdGZtOwotCi0JZXNzaXZfdGZtID0gYWxsb2NfZXNzaXZfY2lwaGVyKGNjLCB0aSwgc2FsdCwKLQkJCQkgICAgICAgY3J5cHRvX3NoYXNoX2RpZ2VzdHNpemUoaGFzaF90Zm0pKTsKLQlpZiAoSVNfRVJSKGVzc2l2X3RmbSkpIHsKLQkJY3J5cHRfaXZfZXNzaXZfZHRyKGNjKTsKLQkJcmV0dXJuIFBUUl9FUlIoZXNzaXZfdGZtKTsKLQl9Ci0JY2MtPml2X3ByaXZhdGUgPSBlc3Npdl90Zm07Ci0KLQlyZXR1cm4gMDsKLQotYmFkOgotCWlmIChoYXNoX3RmbSAmJiAhSVNfRVJSKGhhc2hfdGZtKSkKLQkJY3J5cHRvX2ZyZWVfc2hhc2goaGFzaF90Zm0pOwotCWtmcmVlKHNhbHQpOwotCXJldHVybiBlcnI7Ci19Ci0KIHN0YXRpYyBpbnQgY3J5cHRfaXZfZXNzaXZfZ2VuKHN0cnVjdCBjcnlwdF9jb25maWcgKmNjLCB1OCAqaXYsCiAJCQkgICAgICBzdHJ1Y3QgZG1fY3J5cHRfcmVxdWVzdCAqZG1yZXEpCiB7Ci0Jc3RydWN0IGNyeXB0b19jaXBoZXIgKmVzc2l2X3RmbSA9IGNjLT5pdl9wcml2YXRlOwotCisJLyoKKwkgKiBFU1NJViBlbmNyeXB0aW9uIG9mIHRoZSBJViBpcyBub3cgaGFuZGxlZCBieSB0aGUgY3J5cHRvIEFQSSwKKwkgKiBzbyBqdXN0IHBhc3MgdGhlIHBsYWluIHNlY3RvciBudW1iZXIgaGVyZS4KKwkgKi8KIAltZW1zZXQoaXYsIDAsIGNjLT5pdl9zaXplKTsKIAkqKF9fbGU2NCAqKWl2ID0gY3B1X3RvX2xlNjQoZG1yZXEtPml2X3NlY3Rvcik7Ci0JY3J5cHRvX2NpcGhlcl9lbmNyeXB0X29uZShlc3Npdl90Zm0sIGl2LCBpdik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTg0Nyw2NSArNjkxLDQ3IEBAIHN0YXRpYyBpbnQgY3J5cHRfaXZfcmFuZG9tX2dlbihzdHJ1Y3QgY3J5cHRfY29uZmlnICpjYywgdTggKml2LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBjcnlwdF9pdl9lYm9pdl9kdHIoc3RydWN0IGNyeXB0X2NvbmZpZyAqY2MpCi17Ci0Jc3RydWN0IGl2X2Vib2l2X3ByaXZhdGUgKmVib2l2ID0gJmNjLT5pdl9nZW5fcHJpdmF0ZS5lYm9pdjsKLQotCWNyeXB0b19mcmVlX2NpcGhlcihlYm9pdi0+dGZtKTsKLQllYm9pdi0+dGZtID0gTlVMTDsKLX0KLQogc3RhdGljIGludCBjcnlwdF9pdl9lYm9pdl9jdHIoc3RydWN0IGNyeXB0X2NvbmZpZyAqY2MsIHN0cnVjdCBkbV90YXJnZXQgKnRpLAogCQkJICAgIGNvbnN0IGNoYXIgKm9wdHMpCiB7Ci0Jc3RydWN0IGl2X2Vib2l2X3ByaXZhdGUgKmVib2l2ID0gJmNjLT5pdl9nZW5fcHJpdmF0ZS5lYm9pdjsKLQlzdHJ1Y3QgY3J5cHRvX2NpcGhlciAqdGZtOwotCi0JdGZtID0gY3J5cHRvX2FsbG9jX2NpcGhlcihjYy0+Y2lwaGVyLCAwLCAwKTsKLQlpZiAoSVNfRVJSKHRmbSkpIHsKLQkJdGktPmVycm9yID0gIkVycm9yIGFsbG9jYXRpbmcgY3J5cHRvIHRmbSBmb3IgRUJPSVYiOwotCQlyZXR1cm4gUFRSX0VSUih0Zm0pOwotCX0KLQotCWlmIChjcnlwdG9fY2lwaGVyX2Jsb2Nrc2l6ZSh0Zm0pICE9IGNjLT5pdl9zaXplKSB7Ci0JCXRpLT5lcnJvciA9ICJCbG9jayBzaXplIG9mIEVCT0lWIGNpcGhlciBkb2VzICIKLQkJCSAgICAibm90IG1hdGNoIElWIHNpemUgb2YgYmxvY2sgY2lwaGVyIjsKLQkJY3J5cHRvX2ZyZWVfY2lwaGVyKHRmbSk7CisJaWYgKHRlc3RfYml0KENSWVBUX01PREVfSU5URUdSSVRZX0FFQUQsICZjYy0+Y2lwaGVyX2ZsYWdzKSkgeworCQl0aS0+ZXJyb3IgPSAiQUVBRCB0cmFuc2Zvcm1zIG5vdCBzdXBwb3J0ZWQgZm9yIEVCT0lWIjsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JZWJvaXYtPnRmbSA9IHRmbTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBjcnlwdF9pdl9lYm9pdl9pbml0KHN0cnVjdCBjcnlwdF9jb25maWcgKmNjKQotewotCXN0cnVjdCBpdl9lYm9pdl9wcml2YXRlICplYm9pdiA9ICZjYy0+aXZfZ2VuX3ByaXZhdGUuZWJvaXY7Ci0JaW50IGVycjsKLQotCWVyciA9IGNyeXB0b19jaXBoZXJfc2V0a2V5KGVib2l2LT50Zm0sIGNjLT5rZXksIGNjLT5rZXlfc2l6ZSk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKKwlpZiAoY3J5cHRvX3NrY2lwaGVyX2Jsb2Nrc2l6ZShhbnlfdGZtKGNjKSkgIT0gY2MtPml2X3NpemUpIHsKKwkJdGktPmVycm9yID0gIkJsb2NrIHNpemUgb2YgRUJPSVYgY2lwaGVyIGRvZXMgIgorCQkJICAgICJub3QgbWF0Y2ggSVYgc2l6ZSBvZiBibG9jayBjaXBoZXIiOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBjcnlwdF9pdl9lYm9pdl93aXBlKHN0cnVjdCBjcnlwdF9jb25maWcgKmNjKQotewotCS8qIENhbGxlZCBhZnRlciBjYy0+a2V5IGlzIHNldCB0byByYW5kb20ga2V5IGluIGNyeXB0X3dpcGUoKSAqLwotCXJldHVybiBjcnlwdF9pdl9lYm9pdl9pbml0KGNjKTsKLX0KLQogc3RhdGljIGludCBjcnlwdF9pdl9lYm9pdl9nZW4oc3RydWN0IGNyeXB0X2NvbmZpZyAqY2MsIHU4ICppdiwKIAkJCSAgICBzdHJ1Y3QgZG1fY3J5cHRfcmVxdWVzdCAqZG1yZXEpCiB7Ci0Jc3RydWN0IGl2X2Vib2l2X3ByaXZhdGUgKmVib2l2ID0gJmNjLT5pdl9nZW5fcHJpdmF0ZS5lYm9pdjsKKwl1OCBidWZbTUFYX0NJUEhFUl9CTE9DS1NJWkVdIF9fYWxpZ25lZChfX2FsaWdub2ZfXyhfX2xlNjQpKTsKKwlzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCAqcmVxOworCXN0cnVjdCBzY2F0dGVybGlzdCBzcmMsIGRzdDsKKwlzdHJ1Y3QgY3J5cHRvX3dhaXQgd2FpdDsKKwlpbnQgZXJyOwogCi0JbWVtc2V0KGl2LCAwLCBjYy0+aXZfc2l6ZSk7Ci0JKihfX2xlNjQgKilpdiA9IGNwdV90b19sZTY0KGRtcmVxLT5pdl9zZWN0b3IgKiBjYy0+c2VjdG9yX3NpemUpOwotCWNyeXB0b19jaXBoZXJfZW5jcnlwdF9vbmUoZWJvaXYtPnRmbSwgaXYsIGl2KTsKKwlyZXEgPSBza2NpcGhlcl9yZXF1ZXN0X2FsbG9jKGFueV90Zm0oY2MpLCBHRlBfS0VSTkVMIHwgR0ZQX05PRlMpOworCWlmICghcmVxKQorCQlyZXR1cm4gLUVOT01FTTsKIAotCXJldHVybiAwOworCW1lbXNldChidWYsIDAsIGNjLT5pdl9zaXplKTsKKwkqKF9fbGU2NCAqKWJ1ZiA9IGNwdV90b19sZTY0KGRtcmVxLT5pdl9zZWN0b3IgKiBjYy0+c2VjdG9yX3NpemUpOworCisJc2dfaW5pdF9vbmUoJnNyYywgcGFnZV9hZGRyZXNzKFpFUk9fUEFHRSgwKSksIGNjLT5pdl9zaXplKTsKKwlzZ19pbml0X29uZSgmZHN0LCBpdiwgY2MtPml2X3NpemUpOworCXNrY2lwaGVyX3JlcXVlc3Rfc2V0X2NyeXB0KHJlcSwgJnNyYywgJmRzdCwgY2MtPml2X3NpemUsIGJ1Zik7CisJc2tjaXBoZXJfcmVxdWVzdF9zZXRfY2FsbGJhY2socmVxLCAwLCBjcnlwdG9fcmVxX2RvbmUsICZ3YWl0KTsKKwllcnIgPSBjcnlwdG9fd2FpdF9yZXEoY3J5cHRvX3NrY2lwaGVyX2VuY3J5cHQocmVxKSwgJndhaXQpOworCXNrY2lwaGVyX3JlcXVlc3RfZnJlZShyZXEpOworCisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBjcnlwdF9pdl9vcGVyYXRpb25zIGNyeXB0X2l2X3BsYWluX29wcyA9IHsKQEAgLTkyMSwxMCArNzQ3LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjcnlwdF9pdl9vcGVyYXRpb25zIGNyeXB0X2l2X3BsYWluNjRiZV9vcHMgPSB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGNyeXB0X2l2X29wZXJhdGlvbnMgY3J5cHRfaXZfZXNzaXZfb3BzID0gewotCS5jdHIgICAgICAgPSBjcnlwdF9pdl9lc3Npdl9jdHIsCi0JLmR0ciAgICAgICA9IGNyeXB0X2l2X2Vzc2l2X2R0ciwKLQkuaW5pdCAgICAgID0gY3J5cHRfaXZfZXNzaXZfaW5pdCwKLQkud2lwZSAgICAgID0gY3J5cHRfaXZfZXNzaXZfd2lwZSwKIAkuZ2VuZXJhdG9yID0gY3J5cHRfaXZfZXNzaXZfZ2VuCiB9OwogCkBAIC05NjIsOSArNzg0LDYgQEAgc3RhdGljIHN0cnVjdCBjcnlwdF9pdl9vcGVyYXRpb25zIGNyeXB0X2l2X3JhbmRvbV9vcHMgPSB7CiAKIHN0YXRpYyBzdHJ1Y3QgY3J5cHRfaXZfb3BlcmF0aW9ucyBjcnlwdF9pdl9lYm9pdl9vcHMgPSB7CiAJLmN0cgkgICA9IGNyeXB0X2l2X2Vib2l2X2N0ciwKLQkuZHRyCSAgID0gY3J5cHRfaXZfZWJvaXZfZHRyLAotCS5pbml0CSAgID0gY3J5cHRfaXZfZWJvaXZfaW5pdCwKLQkud2lwZQkgICA9IGNyeXB0X2l2X2Vib2l2X3dpcGUsCiAJLmdlbmVyYXRvciA9IGNyeXB0X2l2X2Vib2l2X2dlbgogfTsKIApAQCAtMjMyMCw3ICsyMTM5LDYgQEAgc3RhdGljIHZvaWQgY3J5cHRfZHRyKHN0cnVjdCBkbV90YXJnZXQgKnRpKQogCWlmIChjYy0+ZGV2KQogCQlkbV9wdXRfZGV2aWNlKHRpLCBjYy0+ZGV2KTsKIAotCWt6ZnJlZShjYy0+Y2lwaGVyKTsKIAlremZyZWUoY2MtPmNpcGhlcl9zdHJpbmcpOwogCWt6ZnJlZShjYy0+a2V5X3N0cmluZyk7CiAJa3pmcmVlKGNjLT5jaXBoZXJfYXV0aCk7CkBAIC0yNDAyLDUyICsyMjIwLDYgQEAgc3RhdGljIGludCBjcnlwdF9jdHJfaXZtb2RlKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBjb25zdCBjaGFyICppdm1vZGUpCiB9CiAKIC8qCi0gKiBXb3JrYXJvdW5kIHRvIHBhcnNlIGNpcGhlciBhbGdvcml0aG0gZnJvbSBjcnlwdG8gQVBJIHNwZWMuCi0gKiBUaGUgY2MtPmNpcGhlciBpcyBjdXJyZW50bHkgdXNlZCBvbmx5IGluIEVTU0lWLgotICogVGhpcyBzaG91bGQgYmUgcHJvYmFibHkgZG9uZSBieSBjcnlwdG8tYXBpIGNhbGxzIChvbmNlIGF2YWlsYWJsZS4uLikKLSAqLwotc3RhdGljIGludCBjcnlwdF9jdHJfYmxrZGV2X2NpcGhlcihzdHJ1Y3QgY3J5cHRfY29uZmlnICpjYykKLXsKLQljb25zdCBjaGFyICphbGdfbmFtZSA9IE5VTEw7Ci0JY2hhciAqc3RhcnQsICplbmQ7Ci0KLQlpZiAoY3J5cHRfaW50ZWdyaXR5X2FlYWQoY2MpKSB7Ci0JCWFsZ19uYW1lID0gY3J5cHRvX3RmbV9hbGdfbmFtZShjcnlwdG9fYWVhZF90Zm0oYW55X3RmbV9hZWFkKGNjKSkpOwotCQlpZiAoIWFsZ19uYW1lKQotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCWlmIChjcnlwdF9pbnRlZ3JpdHlfaG1hYyhjYykpIHsKLQkJCWFsZ19uYW1lID0gc3RyY2hyKGFsZ19uYW1lLCAnLCcpOwotCQkJaWYgKCFhbGdfbmFtZSkKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlhbGdfbmFtZSsrOwotCX0gZWxzZSB7Ci0JCWFsZ19uYW1lID0gY3J5cHRvX3RmbV9hbGdfbmFtZShjcnlwdG9fc2tjaXBoZXJfdGZtKGFueV90Zm0oY2MpKSk7Ci0JCWlmICghYWxnX25hbWUpCi0JCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlzdGFydCA9IHN0cmNocihhbGdfbmFtZSwgJygnKTsKLQllbmQgPSBzdHJjaHIoYWxnX25hbWUsICcpJyk7Ci0KLQlpZiAoIXN0YXJ0ICYmICFlbmQpIHsKLQkJY2MtPmNpcGhlciA9IGtzdHJkdXAoYWxnX25hbWUsIEdGUF9LRVJORUwpOwotCQlyZXR1cm4gY2MtPmNpcGhlciA/IDAgOiAtRU5PTUVNOwotCX0KLQotCWlmICghc3RhcnQgfHwgIWVuZCB8fCArK3N0YXJ0ID49IGVuZCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQljYy0+Y2lwaGVyID0ga3phbGxvYyhlbmQgLSBzdGFydCArIDEsIEdGUF9LRVJORUwpOwotCWlmICghY2MtPmNpcGhlcikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlzdHJuY3B5KGNjLT5jaXBoZXIsIHN0YXJ0LCBlbmQgLSBzdGFydCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoKICAqIFdvcmthcm91bmQgdG8gcGFyc2UgSE1BQyBhbGdvcml0aG0gZnJvbSBBRUFEIGNyeXB0byBBUEkgc3BlYy4KICAqIFRoZSBITUFDIGlzIG5lZWRlZCB0byBjYWxjdWxhdGUgdGFnIHNpemUgKEhNQUMgZGlnZXN0IHNpemUpLgogICogVGhpcyBzaG91bGQgYmUgcHJvYmFibHkgZG9uZSBieSBjcnlwdG8tYXBpIGNhbGxzIChvbmNlIGF2YWlsYWJsZS4uLikKQEAgLTI0OTAsNyArMjI2Miw3IEBAIHN0YXRpYyBpbnQgY3J5cHRfY3RyX2NpcGhlcl9uZXcoc3RydWN0IGRtX3RhcmdldCAqdGksIGNoYXIgKmNpcGhlcl9pbiwgY2hhciAqa2V5CiAJCQkJY2hhciAqKml2bW9kZSwgY2hhciAqKml2b3B0cykKIHsKIAlzdHJ1Y3QgY3J5cHRfY29uZmlnICpjYyA9IHRpLT5wcml2YXRlOwotCWNoYXIgKnRtcCwgKmNpcGhlcl9hcGk7CisJY2hhciAqdG1wLCAqY2lwaGVyX2FwaSwgYnVmW0NSWVBUT19NQVhfQUxHX05BTUVdOwogCWludCByZXQgPSAtRUlOVkFMOwogCiAJY2MtPnRmbXNfY291bnQgPSAxOwpAQCAtMjUxNiw5ICsyMjg4LDMyIEBAIHN0YXRpYyBpbnQgY3J5cHRfY3RyX2NpcGhlcl9uZXcoc3RydWN0IGRtX3RhcmdldCAqdGksIGNoYXIgKmNpcGhlcl9pbiwgY2hhciAqa2V5CiAJLyogVGhlIHJlc3QgaXMgY3J5cHRvIEFQSSBzcGVjICovCiAJY2lwaGVyX2FwaSA9IHRtcDsKIAorCS8qIEFsbG9jIEFFQUQsIGNhbiBiZSB1c2VkIG9ubHkgaW4gbmV3IGZvcm1hdC4gKi8KKwlpZiAoY3J5cHRfaW50ZWdyaXR5X2FlYWQoY2MpKSB7CisJCXJldCA9IGNyeXB0X2N0cl9hdXRoX2NpcGhlcihjYywgY2lwaGVyX2FwaSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQl0aS0+ZXJyb3IgPSAiSW52YWxpZCBBRUFEIGNpcGhlciBzcGVjIjsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJfQorCiAJaWYgKCppdm1vZGUgJiYgIXN0cmNtcCgqaXZtb2RlLCAibG1rIikpCiAJCWNjLT50Zm1zX2NvdW50ID0gNjQ7CiAKKwlpZiAoKml2bW9kZSAmJiAhc3RyY21wKCppdm1vZGUsICJlc3NpdiIpKSB7CisJCWlmICghKml2b3B0cykgeworCQkJdGktPmVycm9yID0gIkRpZ2VzdCBhbGdvcml0aG0gbWlzc2luZyBmb3IgRVNTSVYgbW9kZSI7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlyZXQgPSBzbnByaW50ZihidWYsIENSWVBUT19NQVhfQUxHX05BTUUsICJlc3NpdiglcywlcykiLAorCQkJICAgICAgIGNpcGhlcl9hcGksICppdm9wdHMpOworCQlpZiAocmV0IDwgMCB8fCByZXQgPj0gQ1JZUFRPX01BWF9BTEdfTkFNRSkgeworCQkJdGktPmVycm9yID0gIkNhbm5vdCBhbGxvY2F0ZSBjaXBoZXIgc3RyaW5nIjsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCWNpcGhlcl9hcGkgPSBidWY7CisJfQorCiAJY2MtPmtleV9wYXJ0cyA9IGNjLT50Zm1zX2NvdW50OwogCiAJLyogQWxsb2NhdGUgY2lwaGVyICovCkBAIC0yNTI4LDIzICsyMzIzLDExIEBAIHN0YXRpYyBpbnQgY3J5cHRfY3RyX2NpcGhlcl9uZXcoc3RydWN0IGRtX3RhcmdldCAqdGksIGNoYXIgKmNpcGhlcl9pbiwgY2hhciAqa2V5CiAJCXJldHVybiByZXQ7CiAJfQogCi0JLyogQWxsb2MgQUVBRCwgY2FuIGJlIHVzZWQgb25seSBpbiBuZXcgZm9ybWF0LiAqLwotCWlmIChjcnlwdF9pbnRlZ3JpdHlfYWVhZChjYykpIHsKLQkJcmV0ID0gY3J5cHRfY3RyX2F1dGhfY2lwaGVyKGNjLCBjaXBoZXJfYXBpKTsKLQkJaWYgKHJldCA8IDApIHsKLQkJCXRpLT5lcnJvciA9ICJJbnZhbGlkIEFFQUQgY2lwaGVyIHNwZWMiOwotCQkJcmV0dXJuIC1FTk9NRU07Ci0JCX0KKwlpZiAoY3J5cHRfaW50ZWdyaXR5X2FlYWQoY2MpKQogCQljYy0+aXZfc2l6ZSA9IGNyeXB0b19hZWFkX2l2c2l6ZShhbnlfdGZtX2FlYWQoY2MpKTsKLQl9IGVsc2UKKwllbHNlCiAJCWNjLT5pdl9zaXplID0gY3J5cHRvX3NrY2lwaGVyX2l2c2l6ZShhbnlfdGZtKGNjKSk7CiAKLQlyZXQgPSBjcnlwdF9jdHJfYmxrZGV2X2NpcGhlcihjYyk7Ci0JaWYgKHJldCA8IDApIHsKLQkJdGktPmVycm9yID0gIkNhbm5vdCBhbGxvY2F0ZSBjaXBoZXIgc3RyaW5nIjsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI1NzksMTAgKzIzNjIsNiBAQCBzdGF0aWMgaW50IGNyeXB0X2N0cl9jaXBoZXJfb2xkKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBjaGFyICpjaXBoZXJfaW4sIGNoYXIgKmtleQogCX0KIAljYy0+a2V5X3BhcnRzID0gY2MtPnRmbXNfY291bnQ7CiAKLQljYy0+Y2lwaGVyID0ga3N0cmR1cChjaXBoZXIsIEdGUF9LRVJORUwpOwotCWlmICghY2MtPmNpcGhlcikKLQkJZ290byBiYWRfbWVtOwotCiAJY2hhaW5tb2RlID0gc3Ryc2VwKCZ0bXAsICItIik7CiAJKml2bW9kZSA9IHN0cnNlcCgmdG1wLCAiOiIpOwogCSppdm9wdHMgPSB0bXA7CkBAIC0yNjA1LDkgKzIzODQsMTkgQEAgc3RhdGljIGludCBjcnlwdF9jdHJfY2lwaGVyX29sZChzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgY2hhciAqY2lwaGVyX2luLCBjaGFyICprZXkKIAlpZiAoIWNpcGhlcl9hcGkpCiAJCWdvdG8gYmFkX21lbTsKIAotCXJldCA9IHNucHJpbnRmKGNpcGhlcl9hcGksIENSWVBUT19NQVhfQUxHX05BTUUsCi0JCSAgICAgICAiJXMoJXMpIiwgY2hhaW5tb2RlLCBjaXBoZXIpOwotCWlmIChyZXQgPCAwKSB7CisJaWYgKCppdm1vZGUgJiYgIXN0cmNtcCgqaXZtb2RlLCAiZXNzaXYiKSkgeworCQlpZiAoISppdm9wdHMpIHsKKwkJCXRpLT5lcnJvciA9ICJEaWdlc3QgYWxnb3JpdGhtIG1pc3NpbmcgZm9yIEVTU0lWIG1vZGUiOworCQkJa2ZyZWUoY2lwaGVyX2FwaSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlyZXQgPSBzbnByaW50ZihjaXBoZXJfYXBpLCBDUllQVE9fTUFYX0FMR19OQU1FLAorCQkJICAgICAgICJlc3NpdiglcyglcyksJXMpIiwgY2hhaW5tb2RlLCBjaXBoZXIsICppdm9wdHMpOworCX0gZWxzZSB7CisJCXJldCA9IHNucHJpbnRmKGNpcGhlcl9hcGksIENSWVBUT19NQVhfQUxHX05BTUUsCisJCQkgICAgICAgIiVzKCVzKSIsIGNoYWlubW9kZSwgY2lwaGVyKTsKKwl9CisJaWYgKHJldCA8IDAgfHwgcmV0ID49IENSWVBUT19NQVhfQUxHX05BTUUpIHsKIAkJa2ZyZWUoY2lwaGVyX2FwaSk7CiAJCWdvdG8gYmFkX21lbTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLWludGVncml0eS5jIGIvZHJpdmVycy9tZC9kbS1pbnRlZ3JpdHkuYwppbmRleCA5MTE4YWI4Li5kYWI0NDQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLWludGVncml0eS5jCisrKyBiL2RyaXZlcnMvbWQvZG0taW50ZWdyaXR5LmMKQEAgLTM0NSw2ICszNDUsMTQgQEAgc3RhdGljIHZvaWQgX19ERUJVR19ieXRlcyhfX3U4ICpieXRlcywgc2l6ZV90IGxlbiwgY29uc3QgY2hhciAqbXNnLCAuLi4pCiAjZGVmaW5lIERFQlVHX2J5dGVzKGJ5dGVzLCBsZW4sIG1zZywgLi4uKQlkbyB7IH0gd2hpbGUgKDApCiAjZW5kaWYKIAorc3RhdGljIHZvaWQgZG1faW50ZWdyaXR5X3ByZXBhcmUoc3RydWN0IHJlcXVlc3QgKnJxKQoreworfQorCitzdGF0aWMgdm9pZCBkbV9pbnRlZ3JpdHlfY29tcGxldGUoc3RydWN0IHJlcXVlc3QgKnJxLCB1bnNpZ25lZCBpbnQgbnJfYnl0ZXMpCit7Cit9CisKIC8qCiAgKiBETSBJbnRlZ3JpdHkgcHJvZmlsZSwgcHJvdGVjdGlvbiBpcyBwZXJmb3JtZWQgbGF5ZXIgYWJvdmUgKGRtLWNyeXB0KQogICovCkBAIC0zNTIsNiArMzYwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBibGtfaW50ZWdyaXR5X3Byb2ZpbGUgZG1faW50ZWdyaXR5X3Byb2ZpbGUgPSB7CiAJLm5hbWUJCQk9ICJETS1ESUYtRVhULVRBRyIsCiAJLmdlbmVyYXRlX2ZuCQk9IE5VTEwsCiAJLnZlcmlmeV9mbgkJPSBOVUxMLAorCS5wcmVwYXJlX2ZuCQk9IGRtX2ludGVncml0eV9wcmVwYXJlLAorCS5jb21wbGV0ZV9mbgkJPSBkbV9pbnRlZ3JpdHlfY29tcGxldGUsCiB9OwogCiBzdGF0aWMgdm9pZCBkbV9pbnRlZ3JpdHlfbWFwX2NvbnRpbnVlKHN0cnVjdCBkbV9pbnRlZ3JpdHlfaW8gKmRpbywgYm9vbCBmcm9tX21hcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLWlvY3RsLmMgYi9kcml2ZXJzL21kL2RtLWlvY3RsLmMKaW5kZXggMWUwM2JjOC4uYWM4M2Y1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9kbS1pb2N0bC5jCisrKyBiL2RyaXZlcnMvbWQvZG0taW9jdGwuYwpAQCAtNjAxLDE3ICs2MDEsMjcgQEAgc3RhdGljIHZvaWQgbGlzdF92ZXJzaW9uX2dldF9pbmZvKHN0cnVjdCB0YXJnZXRfdHlwZSAqdHQsIHZvaWQgKnBhcmFtKQogICAgIGluZm8tPnZlcnMgPSBhbGlnbl9wdHIoKCh2b2lkICopICsraW5mby0+dmVycykgKyBzdHJsZW4odHQtPm5hbWUpICsgMSk7CiB9CiAKLXN0YXRpYyBpbnQgbGlzdF92ZXJzaW9ucyhzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGRtX2lvY3RsICpwYXJhbSwgc2l6ZV90IHBhcmFtX3NpemUpCitzdGF0aWMgaW50IF9fbGlzdF92ZXJzaW9ucyhzdHJ1Y3QgZG1faW9jdGwgKnBhcmFtLCBzaXplX3QgcGFyYW1fc2l6ZSwgY29uc3QgY2hhciAqbmFtZSkKIHsKIAlzaXplX3QgbGVuLCBuZWVkZWQgPSAwOwogCXN0cnVjdCBkbV90YXJnZXRfdmVyc2lvbnMgKnZlcnM7CiAJc3RydWN0IHZlcnNfaXRlciBpdGVyX2luZm87CisJc3RydWN0IHRhcmdldF90eXBlICp0dCA9IE5VTEw7CisKKwlpZiAobmFtZSkgeworCQl0dCA9IGRtX2dldF90YXJnZXRfdHlwZShuYW1lKTsKKwkJaWYgKCF0dCkKKwkJCXJldHVybiAtRUlOVkFMOworCX0KIAogCS8qCiAJICogTG9vcCB0aHJvdWdoIGFsbCB0aGUgZGV2aWNlcyB3b3JraW5nIG91dCBob3cgbXVjaAogCSAqIHNwYWNlIHdlIG5lZWQuCiAJICovCi0JZG1fdGFyZ2V0X2l0ZXJhdGUobGlzdF92ZXJzaW9uX2dldF9uZWVkZWQsICZuZWVkZWQpOworCWlmICghdHQpCisJCWRtX3RhcmdldF9pdGVyYXRlKGxpc3RfdmVyc2lvbl9nZXRfbmVlZGVkLCAmbmVlZGVkKTsKKwllbHNlCisJCWxpc3RfdmVyc2lvbl9nZXRfbmVlZGVkKHR0LCAmbmVlZGVkKTsKIAogCS8qCiAJICogR3JhYiBvdXIgb3V0cHV0IGJ1ZmZlci4KQEAgLTYzMiwxMyArNjQyLDI4IEBAIHN0YXRpYyBpbnQgbGlzdF92ZXJzaW9ucyhzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGRtX2lvY3RsICpwYXJhbSwgc2l6ZV90IHBhcmFtCiAJLyoKIAkgKiBOb3cgbG9vcCB0aHJvdWdoIGZpbGxpbmcgb3V0IHRoZSBuYW1lcyAmIHZlcnNpb25zLgogCSAqLwotCWRtX3RhcmdldF9pdGVyYXRlKGxpc3RfdmVyc2lvbl9nZXRfaW5mbywgJml0ZXJfaW5mbyk7CisJaWYgKCF0dCkKKwkJZG1fdGFyZ2V0X2l0ZXJhdGUobGlzdF92ZXJzaW9uX2dldF9pbmZvLCAmaXRlcl9pbmZvKTsKKwllbHNlCisJCWxpc3RfdmVyc2lvbl9nZXRfaW5mbyh0dCwgJml0ZXJfaW5mbyk7CiAJcGFyYW0tPmZsYWdzIHw9IGl0ZXJfaW5mby5mbGFnczsKIAogIG91dDoKKwlpZiAodHQpCisJCWRtX3B1dF90YXJnZXRfdHlwZSh0dCk7CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgbGlzdF92ZXJzaW9ucyhzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGRtX2lvY3RsICpwYXJhbSwgc2l6ZV90IHBhcmFtX3NpemUpCit7CisJcmV0dXJuIF9fbGlzdF92ZXJzaW9ucyhwYXJhbSwgcGFyYW1fc2l6ZSwgTlVMTCk7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X3RhcmdldF92ZXJzaW9uKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgZG1faW9jdGwgKnBhcmFtLCBzaXplX3QgcGFyYW1fc2l6ZSkKK3sKKwlyZXR1cm4gX19saXN0X3ZlcnNpb25zKHBhcmFtLCBwYXJhbV9zaXplLCBwYXJhbS0+bmFtZSk7Cit9CisKIHN0YXRpYyBpbnQgY2hlY2tfbmFtZShjb25zdCBjaGFyICpuYW1lKQogewogCWlmIChzdHJjaHIobmFtZSwgJy8nKSkgewpAQCAtMTU5Miw3ICsxNjE3LDcgQEAgc3RhdGljIGludCB0YXJnZXRfbWVzc2FnZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGRtX2lvY3RsICpwYXJhbSwgc2l6ZV90IHBhcmEKIAl9CiAKIAl0aSA9IGRtX3RhYmxlX2ZpbmRfdGFyZ2V0KHRhYmxlLCB0bXNnLT5zZWN0b3IpOwotCWlmICghZG1fdGFyZ2V0X2lzX3ZhbGlkKHRpKSkgeworCWlmICghdGkpIHsKIAkJRE1XQVJOKCJUYXJnZXQgbWVzc2FnZSBzZWN0b3Igb3V0c2lkZSBkZXZpY2UuIik7CiAJCXIgPSAtRUlOVkFMOwogCX0gZWxzZSBpZiAodGktPnR5cGUtPm1lc3NhZ2UpCkBAIC0xNjY0LDYgKzE2ODksNyBAQCBzdGF0aWMgaW9jdGxfZm4gbG9va3VwX2lvY3RsKHVuc2lnbmVkIGludCBjbWQsIGludCAqaW9jdGxfZmxhZ3MpCiAJCXtETV9UQVJHRVRfTVNHX0NNRCwgMCwgdGFyZ2V0X21lc3NhZ2V9LAogCQl7RE1fREVWX1NFVF9HRU9NRVRSWV9DTUQsIDAsIGRldl9zZXRfZ2VvbWV0cnl9LAogCQl7RE1fREVWX0FSTV9QT0xMLCBJT0NUTF9GTEFHU19OT19QQVJBTVMsIGRldl9hcm1fcG9sbH0sCisJCXtETV9HRVRfVEFSR0VUX1ZFUlNJT04sIDAsIGdldF90YXJnZXRfdmVyc2lvbn0sCiAJfTsKIAogCWlmICh1bmxpa2VseShjbWQgPj0gQVJSQVlfU0laRShfaW9jdGxzKSkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXJhaWQuYyBiL2RyaXZlcnMvbWQvZG0tcmFpZC5jCmluZGV4IDFmOTMzZGQuLmIwYWE1OTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tcmFpZC5jCisrKyBiL2RyaXZlcnMvbWQvZG0tcmFpZC5jCkBAIC0zNzM4LDE4ICszNzM4LDE4IEBAIHN0YXRpYyBpbnQgcmFpZF9pdGVyYXRlX2RldmljZXMoc3RydWN0IGRtX3RhcmdldCAqdGksCiBzdGF0aWMgdm9pZCByYWlkX2lvX2hpbnRzKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdHJ1Y3QgcXVldWVfbGltaXRzICpsaW1pdHMpCiB7CiAJc3RydWN0IHJhaWRfc2V0ICpycyA9IHRpLT5wcml2YXRlOwotCXVuc2lnbmVkIGludCBjaHVua19zaXplID0gdG9fYnl0ZXMocnMtPm1kLmNodW5rX3NlY3RvcnMpOworCXVuc2lnbmVkIGludCBjaHVua19zaXplX2J5dGVzID0gdG9fYnl0ZXMocnMtPm1kLmNodW5rX3NlY3RvcnMpOwogCi0JYmxrX2xpbWl0c19pb19taW4obGltaXRzLCBjaHVua19zaXplKTsKLQlibGtfbGltaXRzX2lvX29wdChsaW1pdHMsIGNodW5rX3NpemUgKiBtZGRldl9kYXRhX3N0cmlwZXMocnMpKTsKKwlibGtfbGltaXRzX2lvX21pbihsaW1pdHMsIGNodW5rX3NpemVfYnl0ZXMpOworCWJsa19saW1pdHNfaW9fb3B0KGxpbWl0cywgY2h1bmtfc2l6ZV9ieXRlcyAqIG1kZGV2X2RhdGFfc3RyaXBlcyhycykpOwogCiAJLyoKIAkgKiBSQUlEMSBhbmQgUkFJRDEwIHBlcnNvbmFsaXRpZXMgcmVxdWlyZSBiaW8gc3BsaXR0aW5nLAogCSAqIFJBSUQwLzQvNS82IGRvbid0IGFuZCBwcm9jZXNzIGxhcmdlIGRpc2NhcmQgYmlvcyBwcm9wZXJseS4KIAkgKi8KIAlpZiAocnNfaXNfcmFpZDEocnMpIHx8IHJzX2lzX3JhaWQxMChycykpIHsKLQkJbGltaXRzLT5kaXNjYXJkX2dyYW51bGFyaXR5ID0gY2h1bmtfc2l6ZTsKLQkJbGltaXRzLT5tYXhfZGlzY2FyZF9zZWN0b3JzID0gY2h1bmtfc2l6ZTsKKwkJbGltaXRzLT5kaXNjYXJkX2dyYW51bGFyaXR5ID0gY2h1bmtfc2l6ZV9ieXRlczsKKwkJbGltaXRzLT5tYXhfZGlzY2FyZF9zZWN0b3JzID0gcnMtPm1kLmNodW5rX3NlY3RvcnM7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXJhaWQxLmMgYi9kcml2ZXJzL21kL2RtLXJhaWQxLmMKaW5kZXggNWE1MTE1MS4uMDg5YWVkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9kbS1yYWlkMS5jCisrKyBiL2RyaXZlcnMvbWQvZG0tcmFpZDEuYwpAQCAtODc4LDEyICs4NzgsOSBAQCBzdGF0aWMgc3RydWN0IG1pcnJvcl9zZXQgKmFsbG9jX2NvbnRleHQodW5zaWduZWQgaW50IG5yX21pcnJvcnMsCiAJCQkJCXN0cnVjdCBkbV90YXJnZXQgKnRpLAogCQkJCQlzdHJ1Y3QgZG1fZGlydHlfbG9nICpkbCkKIHsKLQlzaXplX3QgbGVuOwotCXN0cnVjdCBtaXJyb3Jfc2V0ICptcyA9IE5VTEw7CisJc3RydWN0IG1pcnJvcl9zZXQgKm1zID0KKwkJa3phbGxvYyhzdHJ1Y3Rfc2l6ZShtcywgbWlycm9yLCBucl9taXJyb3JzKSwgR0ZQX0tFUk5FTCk7CiAKLQlsZW4gPSBzaXplb2YoKm1zKSArIChzaXplb2YobXMtPm1pcnJvclswXSkgKiBucl9taXJyb3JzKTsKLQotCW1zID0ga3phbGxvYyhsZW4sIEdGUF9LRVJORUwpOwogCWlmICghbXMpIHsKIAkJdGktPmVycm9yID0gIkNhbm5vdCBhbGxvY2F0ZSBtaXJyb3IgY29udGV4dCI7CiAJCXJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1zdGF0cy5jIGIvZHJpdmVycy9tZC9kbS1zdGF0cy5jCmluZGV4IDQ1YjkyYTMuLjcxNDE3MDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tc3RhdHMuYworKysgYi9kcml2ZXJzL21kL2RtLXN0YXRzLmMKQEAgLTI2Miw3ICsyNjIsNyBAQCBzdGF0aWMgaW50IGRtX3N0YXRzX2NyZWF0ZShzdHJ1Y3QgZG1fc3RhdHMgKnN0YXRzLCBzZWN0b3JfdCBzdGFydCwgc2VjdG9yX3QgZW5kLAogCWlmIChuX2VudHJpZXMgIT0gKHNpemVfdCluX2VudHJpZXMgfHwgIShzaXplX3QpKG5fZW50cmllcyArIDEpKQogCQlyZXR1cm4gLUVPVkVSRkxPVzsKIAotCXNoYXJlZF9hbGxvY19zaXplID0gc2l6ZW9mKHN0cnVjdCBkbV9zdGF0KSArIChzaXplX3Qpbl9lbnRyaWVzICogc2l6ZW9mKHN0cnVjdCBkbV9zdGF0X3NoYXJlZCk7CisJc2hhcmVkX2FsbG9jX3NpemUgPSBzdHJ1Y3Rfc2l6ZShzLCBzdGF0X3NoYXJlZCwgbl9lbnRyaWVzKTsKIAlpZiAoKHNoYXJlZF9hbGxvY19zaXplIC0gc2l6ZW9mKHN0cnVjdCBkbV9zdGF0KSkgLyBzaXplb2Yoc3RydWN0IGRtX3N0YXRfc2hhcmVkKSAhPSBuX2VudHJpZXMpCiAJCXJldHVybiAtRU9WRVJGTE9XOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXRhYmxlLmMgYi9kcml2ZXJzL21kL2RtLXRhYmxlLmMKaW5kZXggODgyMDkzMS4uNTJlMDQ5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9kbS10YWJsZS5jCisrKyBiL2RyaXZlcnMvbWQvZG0tdGFibGUuYwpAQCAtMTYzLDEwICsxNjMsOCBAQCBzdGF0aWMgaW50IGFsbG9jX3RhcmdldHMoc3RydWN0IGRtX3RhYmxlICp0LCB1bnNpZ25lZCBpbnQgbnVtKQogCiAJLyoKIAkgKiBBbGxvY2F0ZSBib3RoIHRoZSB0YXJnZXQgYXJyYXkgYW5kIG9mZnNldCBhcnJheSBhdCBvbmNlLgotCSAqIEFwcGVuZCBhbiBlbXB0eSBlbnRyeSB0byBjYXRjaCBzZWN0b3JzIGJleW9uZCB0aGUgZW5kIG9mCi0JICogdGhlIGRldmljZS4KIAkgKi8KLQluX2hpZ2hzID0gKHNlY3Rvcl90ICopIGRtX3ZjYWxsb2MobnVtICsgMSwgc2l6ZW9mKHN0cnVjdCBkbV90YXJnZXQpICsKKwluX2hpZ2hzID0gKHNlY3Rvcl90ICopIGRtX3ZjYWxsb2MobnVtLCBzaXplb2Yoc3RydWN0IGRtX3RhcmdldCkgKwogCQkJCQkgIHNpemVvZihzZWN0b3JfdCkpOwogCWlmICghbl9oaWdocykKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC0xMzU5LDcgKzEzNTcsNyBAQCBzdHJ1Y3QgZG1fdGFyZ2V0ICpkbV90YWJsZV9nZXRfdGFyZ2V0KHN0cnVjdCBkbV90YWJsZSAqdCwgdW5zaWduZWQgaW50IGluZGV4KQogLyoKICAqIFNlYXJjaCB0aGUgYnRyZWUgZm9yIHRoZSBjb3JyZWN0IHRhcmdldC4KICAqCi0gKiBDYWxsZXIgc2hvdWxkIGNoZWNrIHJldHVybmVkIHBvaW50ZXIgd2l0aCBkbV90YXJnZXRfaXNfdmFsaWQoKQorICogQ2FsbGVyIHNob3VsZCBjaGVjayByZXR1cm5lZCBwb2ludGVyIGZvciBOVUxMCiAgKiB0byB0cmFwIEkvTyBiZXlvbmQgZW5kIG9mIGRldmljZS4KICAqLwogc3RydWN0IGRtX3RhcmdldCAqZG1fdGFibGVfZmluZF90YXJnZXQoc3RydWN0IGRtX3RhYmxlICp0LCBzZWN0b3JfdCBzZWN0b3IpCkBAIC0xMzY4LDcgKzEzNjYsNyBAQCBzdHJ1Y3QgZG1fdGFyZ2V0ICpkbV90YWJsZV9maW5kX3RhcmdldChzdHJ1Y3QgZG1fdGFibGUgKnQsIHNlY3Rvcl90IHNlY3RvcikKIAlzZWN0b3JfdCAqbm9kZTsKIAogCWlmICh1bmxpa2VseShzZWN0b3IgPj0gZG1fdGFibGVfZ2V0X3NpemUodCkpKQotCQlyZXR1cm4gJnQtPnRhcmdldHNbdC0+bnVtX3RhcmdldHNdOworCQlyZXR1cm4gTlVMTDsKIAogCWZvciAobCA9IDA7IGwgPCB0LT5kZXB0aDsgbCsrKSB7CiAJCW4gPSBnZXRfY2hpbGQobiwgayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXZlcml0eS10YXJnZXQuYyBiL2RyaXZlcnMvbWQvZG0tdmVyaXR5LXRhcmdldC5jCmluZGV4IGVhMjRmZjAuLjRmYjMzZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tdmVyaXR5LXRhcmdldC5jCisrKyBiL2RyaXZlcnMvbWQvZG0tdmVyaXR5LXRhcmdldC5jCkBAIC0xNSw3ICsxNSw3IEBACiAKICNpbmNsdWRlICJkbS12ZXJpdHkuaCIKICNpbmNsdWRlICJkbS12ZXJpdHktZmVjLmgiCi0KKyNpbmNsdWRlICJkbS12ZXJpdHktdmVyaWZ5LXNpZy5oIgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgogCkBAIC0zMyw3ICszMyw4IEBACiAjZGVmaW5lIERNX1ZFUklUWV9PUFRfSUdOX1pFUk9FUwkiaWdub3JlX3plcm9fYmxvY2tzIgogI2RlZmluZSBETV9WRVJJVFlfT1BUX0FUX01PU1RfT05DRQkiY2hlY2tfYXRfbW9zdF9vbmNlIgogCi0jZGVmaW5lIERNX1ZFUklUWV9PUFRTX01BWAkJKDIgKyBETV9WRVJJVFlfT1BUU19GRUMpCisjZGVmaW5lIERNX1ZFUklUWV9PUFRTX01BWAkJKDIgKyBETV9WRVJJVFlfT1BUU19GRUMgKyBcCisJCQkJCSBETV9WRVJJVFlfUk9PVF9IQVNIX1ZFUklGSUNBVElPTl9PUFRTKQogCiBzdGF0aWMgdW5zaWduZWQgZG1fdmVyaXR5X3ByZWZldGNoX2NsdXN0ZXIgPSBETV9WRVJJVFlfREVGQVVMVF9QUkVGRVRDSF9TSVpFOwogCkBAIC03MTMsNiArNzE0LDggQEAgc3RhdGljIHZvaWQgdmVyaXR5X3N0YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLAogCQkJYXJncysrOwogCQlpZiAodi0+dmFsaWRhdGVkX2Jsb2NrcykKIAkJCWFyZ3MrKzsKKwkJaWYgKHYtPnNpZ25hdHVyZV9rZXlfZGVzYykKKwkJCWFyZ3MgKz0gRE1fVkVSSVRZX1JPT1RfSEFTSF9WRVJJRklDQVRJT05fT1BUUzsKIAkJaWYgKCFhcmdzKQogCQkJcmV0dXJuOwogCQlETUVNSVQoIiAldSIsIGFyZ3MpOwpAQCAtNzM0LDYgKzczNyw5IEBAIHN0YXRpYyB2b2lkIHZlcml0eV9zdGF0dXMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwKIAkJaWYgKHYtPnZhbGlkYXRlZF9ibG9ja3MpCiAJCQlETUVNSVQoIiAiIERNX1ZFUklUWV9PUFRfQVRfTU9TVF9PTkNFKTsKIAkJc3ogPSB2ZXJpdHlfZmVjX3N0YXR1c190YWJsZSh2LCBzeiwgcmVzdWx0LCBtYXhsZW4pOworCQlpZiAodi0+c2lnbmF0dXJlX2tleV9kZXNjKQorCQkJRE1FTUlUKCIgIiBETV9WRVJJVFlfUk9PVF9IQVNIX1ZFUklGSUNBVElPTl9PUFRfU0lHX0tFWQorCQkJCSIgJXMiLCB2LT5zaWduYXR1cmVfa2V5X2Rlc2MpOwogCQlicmVhazsKIAl9CiB9CkBAIC03OTksNiArODA1LDggQEAgc3RhdGljIHZvaWQgdmVyaXR5X2R0cihzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSkKIAogCXZlcml0eV9mZWNfZHRyKHYpOwogCisJa2ZyZWUodi0+c2lnbmF0dXJlX2tleV9kZXNjKTsKKwogCWtmcmVlKHYpOwogfQogCkBAIC04NTQsNyArODYyLDggQEAgc3RhdGljIGludCB2ZXJpdHlfYWxsb2NfemVyb19kaWdlc3Qoc3RydWN0IGRtX3Zlcml0eSAqdikKIAlyZXR1cm4gcjsKIH0KIAotc3RhdGljIGludCB2ZXJpdHlfcGFyc2Vfb3B0X2FyZ3Moc3RydWN0IGRtX2FyZ19zZXQgKmFzLCBzdHJ1Y3QgZG1fdmVyaXR5ICp2KQorc3RhdGljIGludCB2ZXJpdHlfcGFyc2Vfb3B0X2FyZ3Moc3RydWN0IGRtX2FyZ19zZXQgKmFzLCBzdHJ1Y3QgZG1fdmVyaXR5ICp2LAorCQkJCSBzdHJ1Y3QgZG1fdmVyaXR5X3NpZ19vcHRzICp2ZXJpZnlfYXJncykKIHsKIAlpbnQgcjsKIAl1bnNpZ25lZCBhcmdjOwpAQCAtOTAzLDYgKzkxMiwxNCBAQCBzdGF0aWMgaW50IHZlcml0eV9wYXJzZV9vcHRfYXJncyhzdHJ1Y3QgZG1fYXJnX3NldCAqYXMsIHN0cnVjdCBkbV92ZXJpdHkgKnYpCiAJCQlpZiAocikKIAkJCQlyZXR1cm4gcjsKIAkJCWNvbnRpbnVlOworCQl9IGVsc2UgaWYgKHZlcml0eV92ZXJpZnlfaXNfc2lnX29wdF9hcmcoYXJnX25hbWUpKSB7CisJCQlyID0gdmVyaXR5X3ZlcmlmeV9zaWdfcGFyc2Vfb3B0X2FyZ3MoYXMsIHYsCisJCQkJCQkJICAgICB2ZXJpZnlfYXJncywKKwkJCQkJCQkgICAgICZhcmdjLCBhcmdfbmFtZSk7CisJCQlpZiAocikKKwkJCQlyZXR1cm4gcjsKKwkJCWNvbnRpbnVlOworCiAJCX0KIAogCQl0aS0+ZXJyb3IgPSAiVW5yZWNvZ25pemVkIHZlcml0eSBmZWF0dXJlIHJlcXVlc3QiOwpAQCAtOTI5LDYgKzk0Niw3IEBAIHN0YXRpYyBpbnQgdmVyaXR5X3BhcnNlX29wdF9hcmdzKHN0cnVjdCBkbV9hcmdfc2V0ICphcywgc3RydWN0IGRtX3Zlcml0eSAqdikKIHN0YXRpYyBpbnQgdmVyaXR5X2N0cihzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgdW5zaWduZWQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IGRtX3Zlcml0eSAqdjsKKwlzdHJ1Y3QgZG1fdmVyaXR5X3NpZ19vcHRzIHZlcmlmeV9hcmdzID0gezB9OwogCXN0cnVjdCBkbV9hcmdfc2V0IGFzOwogCXVuc2lnbmVkIGludCBudW07CiAJdW5zaWduZWQgbG9uZyBsb25nIG51bV9sbDsKQEAgLTkzNiw2ICs5NTQsNyBAQCBzdGF0aWMgaW50IHZlcml0eV9jdHIoc3RydWN0IGRtX3RhcmdldCAqdGksIHVuc2lnbmVkIGFyZ2MsIGNoYXIgKiphcmd2KQogCWludCBpOwogCXNlY3Rvcl90IGhhc2hfcG9zaXRpb247CiAJY2hhciBkdW1teTsKKwljaGFyICpyb290X2hhc2hfZGlnZXN0X3RvX3ZhbGlkYXRlOwogCiAJdiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkbV92ZXJpdHkpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXYpIHsKQEAgLTEwNjksNiArMTA4OCw3IEBAIHN0YXRpYyBpbnQgdmVyaXR5X2N0cihzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgdW5zaWduZWQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXIgPSAtRUlOVkFMOwogCQlnb3RvIGJhZDsKIAl9CisJcm9vdF9oYXNoX2RpZ2VzdF90b192YWxpZGF0ZSA9IGFyZ3ZbOF07CiAKIAlpZiAoc3RyY21wKGFyZ3ZbOV0sICItIikpIHsKIAkJdi0+c2FsdF9zaXplID0gc3RybGVuKGFyZ3ZbOV0pIC8gMjsKQEAgLTEwOTQsMTEgKzExMTQsMjAgQEAgc3RhdGljIGludCB2ZXJpdHlfY3RyKHN0cnVjdCBkbV90YXJnZXQgKnRpLCB1bnNpZ25lZCBhcmdjLCBjaGFyICoqYXJndikKIAkJYXMuYXJnYyA9IGFyZ2M7CiAJCWFzLmFyZ3YgPSBhcmd2OwogCi0JCXIgPSB2ZXJpdHlfcGFyc2Vfb3B0X2FyZ3MoJmFzLCB2KTsKKwkJciA9IHZlcml0eV9wYXJzZV9vcHRfYXJncygmYXMsIHYsICZ2ZXJpZnlfYXJncyk7CiAJCWlmIChyIDwgMCkKIAkJCWdvdG8gYmFkOwogCX0KIAorCS8qIFJvb3QgaGFzaCBzaWduYXR1cmUgaXMgIGEgb3B0aW9uYWwgcGFyYW1ldGVyKi8KKwlyID0gdmVyaXR5X3ZlcmlmeV9yb290X2hhc2gocm9vdF9oYXNoX2RpZ2VzdF90b192YWxpZGF0ZSwKKwkJCQkgICAgc3RybGVuKHJvb3RfaGFzaF9kaWdlc3RfdG9fdmFsaWRhdGUpLAorCQkJCSAgICB2ZXJpZnlfYXJncy5zaWcsCisJCQkJICAgIHZlcmlmeV9hcmdzLnNpZ19zaXplKTsKKwlpZiAociA8IDApIHsKKwkJdGktPmVycm9yID0gIlJvb3QgaGFzaCB2ZXJpZmljYXRpb24gZmFpbGVkIjsKKwkJZ290byBiYWQ7CisJfQogCXYtPmhhc2hfcGVyX2Jsb2NrX2JpdHMgPQogCQlfX2ZscygoMSA8PCB2LT5oYXNoX2Rldl9ibG9ja19iaXRzKSAvIHYtPmRpZ2VzdF9zaXplKTsKIApAQCAtMTE2NCw5ICsxMTkzLDEzIEBAIHN0YXRpYyBpbnQgdmVyaXR5X2N0cihzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgdW5zaWduZWQgYXJnYywgY2hhciAqKmFyZ3YpCiAJdGktPnBlcl9pb19kYXRhX3NpemUgPSByb3VuZHVwKHRpLT5wZXJfaW9fZGF0YV9zaXplLAogCQkJCSAgICAgICBfX2FsaWdub2ZfXyhzdHJ1Y3QgZG1fdmVyaXR5X2lvKSk7CiAKKwl2ZXJpdHlfdmVyaWZ5X3NpZ19vcHRzX2NsZWFudXAoJnZlcmlmeV9hcmdzKTsKKwogCXJldHVybiAwOwogCiBiYWQ6CisKKwl2ZXJpdHlfdmVyaWZ5X3NpZ19vcHRzX2NsZWFudXAoJnZlcmlmeV9hcmdzKTsKIAl2ZXJpdHlfZHRyKHRpKTsKIAogCXJldHVybiByOwpAQCAtMTE3NCw3ICsxMjA3LDcgQEAgc3RhdGljIGludCB2ZXJpdHlfY3RyKHN0cnVjdCBkbV90YXJnZXQgKnRpLCB1bnNpZ25lZCBhcmdjLCBjaGFyICoqYXJndikKIAogc3RhdGljIHN0cnVjdCB0YXJnZXRfdHlwZSB2ZXJpdHlfdGFyZ2V0ID0gewogCS5uYW1lCQk9ICJ2ZXJpdHkiLAotCS52ZXJzaW9uCT0gezEsIDQsIDB9LAorCS52ZXJzaW9uCT0gezEsIDUsIDB9LAogCS5tb2R1bGUJCT0gVEhJU19NT0RVTEUsCiAJLmN0cgkJPSB2ZXJpdHlfY3RyLAogCS5kdHIJCT0gdmVyaXR5X2R0ciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tdmVyaXR5LXZlcmlmeS1zaWcuYyBiL2RyaXZlcnMvbWQvZG0tdmVyaXR5LXZlcmlmeS1zaWcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTRlNDNkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZC9kbS12ZXJpdHktdmVyaWZ5LXNpZy5jCkBAIC0wLDAgKzEsMTMzIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uCisgKgorICogQXV0aG9yOiAgSmFza2FyYW4gU2luZ2ggS2h1cmFuYSA8amFza2FyYW5raHVyYW5hQGxpbnV4Lm1pY3Jvc29mdC5jb20+CisgKgorICovCisjaW5jbHVkZSA8bGludXgvZGV2aWNlLW1hcHBlci5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcmlmaWNhdGlvbi5oPgorI2luY2x1ZGUgPGtleXMvdXNlci10eXBlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSAiZG0tdmVyaXR5LmgiCisjaW5jbHVkZSAiZG0tdmVyaXR5LXZlcmlmeS1zaWcuaCIKKworI2RlZmluZSBETV9WRVJJVFlfVkVSSUZZX0VSUihzKSBETV9WRVJJVFlfUk9PVF9IQVNIX1ZFUklGSUNBVElPTiAiICIgcworCitzdGF0aWMgYm9vbCByZXF1aXJlX3NpZ25hdHVyZXM7Cittb2R1bGVfcGFyYW0ocmVxdWlyZV9zaWduYXR1cmVzLCBib29sLCBmYWxzZSk7CitNT0RVTEVfUEFSTV9ERVNDKHJlcXVpcmVfc2lnbmF0dXJlcywKKwkJIlZlcmlmeSB0aGUgcm9vdGhhc2ggb2YgZG0tdmVyaXR5IGhhc2ggdHJlZSIpOworCisjZGVmaW5lIERNX1ZFUklUWV9JU19TSUdfRk9SQ0VfRU5BQkxFRCgpIFwKKwkocmVxdWlyZV9zaWduYXR1cmVzICE9IGZhbHNlKQorCitib29sIHZlcml0eV92ZXJpZnlfaXNfc2lnX29wdF9hcmcoY29uc3QgY2hhciAqYXJnX25hbWUpCit7CisJcmV0dXJuICghc3RyY2FzZWNtcChhcmdfbmFtZSwKKwkJCSAgICBETV9WRVJJVFlfUk9PVF9IQVNIX1ZFUklGSUNBVElPTl9PUFRfU0lHX0tFWSkpOworfQorCitzdGF0aWMgaW50IHZlcml0eV92ZXJpZnlfZ2V0X3NpZ19mcm9tX2tleShjb25zdCBjaGFyICprZXlfZGVzYywKKwkJCQkJc3RydWN0IGRtX3Zlcml0eV9zaWdfb3B0cyAqc2lnX29wdHMpCit7CisJc3RydWN0IGtleSAqa2V5OworCWNvbnN0IHN0cnVjdCB1c2VyX2tleV9wYXlsb2FkICp1a3A7CisJaW50IHJldCA9IDA7CisKKwlrZXkgPSByZXF1ZXN0X2tleSgma2V5X3R5cGVfdXNlciwKKwkJCWtleV9kZXNjLCBOVUxMKTsKKwlpZiAoSVNfRVJSKGtleSkpCisJCXJldHVybiBQVFJfRVJSKGtleSk7CisKKwlkb3duX3JlYWQoJmtleS0+c2VtKTsKKworCXVrcCA9IHVzZXJfa2V5X3BheWxvYWRfbG9ja2VkKGtleSk7CisJaWYgKCF1a3ApIHsKKwkJcmV0ID0gLUVLRVlSRVZPS0VEOworCQlnb3RvIGVuZDsKKwl9CisKKwlzaWdfb3B0cy0+c2lnID0ga21hbGxvYyh1a3AtPmRhdGFsZW4sIEdGUF9LRVJORUwpOworCWlmICghc2lnX29wdHMtPnNpZykgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVuZDsKKwl9CisJc2lnX29wdHMtPnNpZ19zaXplID0gdWtwLT5kYXRhbGVuOworCisJbWVtY3B5KHNpZ19vcHRzLT5zaWcsIHVrcC0+ZGF0YSwgc2lnX29wdHMtPnNpZ19zaXplKTsKKworZW5kOgorCXVwX3JlYWQoJmtleS0+c2VtKTsKKwlrZXlfcHV0KGtleSk7CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQgdmVyaXR5X3ZlcmlmeV9zaWdfcGFyc2Vfb3B0X2FyZ3Moc3RydWN0IGRtX2FyZ19zZXQgKmFzLAorCQkJCSAgICAgc3RydWN0IGRtX3Zlcml0eSAqdiwKKwkJCQkgICAgIHN0cnVjdCBkbV92ZXJpdHlfc2lnX29wdHMgKnNpZ19vcHRzLAorCQkJCSAgICAgdW5zaWduZWQgaW50ICphcmdjLAorCQkJCSAgICAgY29uc3QgY2hhciAqYXJnX25hbWUpCit7CisJc3RydWN0IGRtX3RhcmdldCAqdGkgPSB2LT50aTsKKwlpbnQgcmV0ID0gMDsKKwljb25zdCBjaGFyICpzaWdfa2V5ID0gTlVMTDsKKworCWlmICghKmFyZ2MpIHsKKwkJdGktPmVycm9yID0gRE1fVkVSSVRZX1ZFUklGWV9FUlIoIlNpZ25hdHVyZSBrZXkgbm90IHNwZWNpZmllZCIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzaWdfa2V5ID0gZG1fc2hpZnRfYXJnKGFzKTsKKwkoKmFyZ2MpLS07CisKKwlyZXQgPSB2ZXJpdHlfdmVyaWZ5X2dldF9zaWdfZnJvbV9rZXkoc2lnX2tleSwgc2lnX29wdHMpOworCWlmIChyZXQgPCAwKQorCQl0aS0+ZXJyb3IgPSBETV9WRVJJVFlfVkVSSUZZX0VSUigiSW52YWxpZCBrZXkgc3BlY2lmaWVkIik7CisKKwl2LT5zaWduYXR1cmVfa2V5X2Rlc2MgPSBrc3RyZHVwKHNpZ19rZXksIEdGUF9LRVJORUwpOworCWlmICghdi0+c2lnbmF0dXJlX2tleV9kZXNjKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiB2ZXJpZnlfdmVyaWZ5X3Jvb3RoYXNoIC0gVmVyaWZ5IHRoZSByb290IGhhc2ggb2YgdGhlIHZlcml0eSBoYXNoIGRldmljZQorICoJCQkgICAgIHVzaW5nIGJ1aWx0aW4gdHJ1c3RlZCBrZXlzLgorICoKKyAqIEByb290X2hhc2g6IEZvciB2ZXJpdHksIHRoZSByb290aGFzaC9kYXRhIHRvIGJlIHZlcmlmaWVkLgorICogQHJvb3RfaGFzaF9sZW46IFNpemUgb2YgdGhlIHJvb3RoYXNoL2RhdGEgdG8gYmUgdmVyaWZpZWQuCisgKiBAc2lnX2RhdGE6IFRoZSB0cnVzdGVkIHNpZ25hdHVyZSB0aGF0IHZlcmlmaWVzIHRoZSByb290aGFzaC9kYXRhLgorICogQHNpZ19sZW46IFNpemUgb2YgdGhlIHNpZ25hdHVyZS4KKyAqCisgKi8KK2ludCB2ZXJpdHlfdmVyaWZ5X3Jvb3RfaGFzaChjb25zdCB2b2lkICpyb290X2hhc2gsIHNpemVfdCByb290X2hhc2hfbGVuLAorCQkJICAgIGNvbnN0IHZvaWQgKnNpZ19kYXRhLCBzaXplX3Qgc2lnX2xlbikKK3sKKwlpbnQgcmV0OworCisJaWYgKCFyb290X2hhc2ggfHwgcm9vdF9oYXNoX2xlbiA9PSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICghc2lnX2RhdGEgIHx8IHNpZ19sZW4gPT0gMCkgeworCQlpZiAoRE1fVkVSSVRZX0lTX1NJR19GT1JDRV9FTkFCTEVEKCkpCisJCQlyZXR1cm4gLUVOT0tFWTsKKwkJZWxzZQorCQkJcmV0dXJuIDA7CisJfQorCisJcmV0ID0gdmVyaWZ5X3BrY3M3X3NpZ25hdHVyZShyb290X2hhc2gsIHJvb3RfaGFzaF9sZW4sIHNpZ19kYXRhLAorCQkJCXNpZ19sZW4sIE5VTEwsIFZFUklGWUlOR19VTlNQRUNJRklFRF9TSUdOQVRVUkUsCisJCQkJTlVMTCwgTlVMTCk7CisKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIHZlcml0eV92ZXJpZnlfc2lnX29wdHNfY2xlYW51cChzdHJ1Y3QgZG1fdmVyaXR5X3NpZ19vcHRzICpzaWdfb3B0cykKK3sKKwlrZnJlZShzaWdfb3B0cy0+c2lnKTsKKwlzaWdfb3B0cy0+c2lnID0gTlVMTDsKKwlzaWdfb3B0cy0+c2lnX3NpemUgPSAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS12ZXJpdHktdmVyaWZ5LXNpZy5oIGIvZHJpdmVycy9tZC9kbS12ZXJpdHktdmVyaWZ5LXNpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YjE1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21kL2RtLXZlcml0eS12ZXJpZnktc2lnLmgKQEAgLTAsMCArMSw2MCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgTWljcm9zb2Z0IENvcnBvcmF0aW9uLgorICoKKyAqIEF1dGhvcjogIEphc2thcmFuIFNpbmdoIEtodXJhbmEgPGphc2thcmFua2h1cmFuYUBsaW51eC5taWNyb3NvZnQuY29tPgorICoKKyAqLworI2lmbmRlZiBETV9WRVJJVFlfU0lHX1ZFUklGSUNBVElPTl9ICisjZGVmaW5lIERNX1ZFUklUWV9TSUdfVkVSSUZJQ0FUSU9OX0gKKworI2RlZmluZSBETV9WRVJJVFlfUk9PVF9IQVNIX1ZFUklGSUNBVElPTiAiRE0gVmVyaXR5IFNpZyBWZXJpZmljYXRpb24iCisjZGVmaW5lIERNX1ZFUklUWV9ST09UX0hBU0hfVkVSSUZJQ0FUSU9OX09QVF9TSUdfS0VZICJyb290X2hhc2hfc2lnX2tleV9kZXNjIgorCitzdHJ1Y3QgZG1fdmVyaXR5X3NpZ19vcHRzIHsKKwl1bnNpZ25lZCBpbnQgc2lnX3NpemU7CisJdTggKnNpZzsKK307CisKKyNpZmRlZiBDT05GSUdfRE1fVkVSSVRZX1ZFUklGWV9ST09USEFTSF9TSUcKKworI2RlZmluZSBETV9WRVJJVFlfUk9PVF9IQVNIX1ZFUklGSUNBVElPTl9PUFRTIDIKKworaW50IHZlcml0eV92ZXJpZnlfcm9vdF9oYXNoKGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBkYXRhX2xlbiwKKwkJCSAgICBjb25zdCB2b2lkICpzaWdfZGF0YSwgc2l6ZV90IHNpZ19sZW4pOworYm9vbCB2ZXJpdHlfdmVyaWZ5X2lzX3NpZ19vcHRfYXJnKGNvbnN0IGNoYXIgKmFyZ19uYW1lKTsKKworaW50IHZlcml0eV92ZXJpZnlfc2lnX3BhcnNlX29wdF9hcmdzKHN0cnVjdCBkbV9hcmdfc2V0ICphcywgc3RydWN0IGRtX3Zlcml0eSAqdiwKKwkJCQkgICAgc3RydWN0IGRtX3Zlcml0eV9zaWdfb3B0cyAqc2lnX29wdHMsCisJCQkJICAgIHVuc2lnbmVkIGludCAqYXJnYywgY29uc3QgY2hhciAqYXJnX25hbWUpOworCit2b2lkIHZlcml0eV92ZXJpZnlfc2lnX29wdHNfY2xlYW51cChzdHJ1Y3QgZG1fdmVyaXR5X3NpZ19vcHRzICpzaWdfb3B0cyk7CisKKyNlbHNlCisKKyNkZWZpbmUgRE1fVkVSSVRZX1JPT1RfSEFTSF9WRVJJRklDQVRJT05fT1BUUyAwCisKK2ludCB2ZXJpdHlfdmVyaWZ5X3Jvb3RfaGFzaChjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgZGF0YV9sZW4sCisJCQkgICAgY29uc3Qgdm9pZCAqc2lnX2RhdGEsIHNpemVfdCBzaWdfbGVuKQoreworCXJldHVybiAwOworfQorCitib29sIHZlcml0eV92ZXJpZnlfaXNfc2lnX29wdF9hcmcoY29uc3QgY2hhciAqYXJnX25hbWUpCit7CisJcmV0dXJuIGZhbHNlOworfQorCitpbnQgdmVyaXR5X3ZlcmlmeV9zaWdfcGFyc2Vfb3B0X2FyZ3Moc3RydWN0IGRtX2FyZ19zZXQgKmFzLCBzdHJ1Y3QgZG1fdmVyaXR5ICp2LAorCQkJCSAgICBzdHJ1Y3QgZG1fdmVyaXR5X3NpZ19vcHRzICpzaWdfb3B0cywKKwkJCQkgICAgdW5zaWduZWQgaW50ICphcmdjLCBjb25zdCBjaGFyICphcmdfbmFtZSkKK3sKKwlyZXR1cm4gLUVJTlZBTDsKK30KKwordm9pZCB2ZXJpdHlfdmVyaWZ5X3NpZ19vcHRzX2NsZWFudXAoc3RydWN0IGRtX3Zlcml0eV9zaWdfb3B0cyAqc2lnX29wdHMpCit7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfRE1fVkVSSVRZX1ZFUklGWV9ST09USEFTSF9TSUcgKi8KKyNlbmRpZiAvKiBETV9WRVJJVFlfU0lHX1ZFUklGSUNBVElPTl9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXZlcml0eS5oIGIvZHJpdmVycy9tZC9kbS12ZXJpdHkuaAppbmRleCBlZWFmOTQwLi42NDFiOWUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLXZlcml0eS5oCisrKyBiL2RyaXZlcnMvbWQvZG0tdmVyaXR5LmgKQEAgLTYzLDYgKzYzLDggQEAgc3RydWN0IGRtX3Zlcml0eSB7CiAKIAlzdHJ1Y3QgZG1fdmVyaXR5X2ZlYyAqZmVjOwkvKiBmb3J3YXJkIGVycm9yIGNvcnJlY3Rpb24gKi8KIAl1bnNpZ25lZCBsb25nICp2YWxpZGF0ZWRfYmxvY2tzOyAvKiBiaXRzZXQgYmxvY2tzIHZhbGlkYXRlZCAqLworCisJY2hhciAqc2lnbmF0dXJlX2tleV9kZXNjOyAvKiBzaWduYXR1cmUga2V5cmluZyByZWZlcmVuY2UgKi8KIH07CiAKIHN0cnVjdCBkbV92ZXJpdHlfaW8gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS13cml0ZWNhY2hlLmMgYi9kcml2ZXJzL21kL2RtLXdyaXRlY2FjaGUuYwppbmRleCAxY2IxMzdmLi5kMDZiOGFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLXdyaXRlY2FjaGUuYworKysgYi9kcml2ZXJzL21kL2RtLXdyaXRlY2FjaGUuYwpAQCAtMTkwLDcgKzE5MCw2IEBAIHN0cnVjdCB3cml0ZWJhY2tfc3RydWN0IHsKIAlzdHJ1Y3QgZG1fd3JpdGVjYWNoZSAqd2M7CiAJc3RydWN0IHdjX2VudHJ5ICoqd2NfbGlzdDsKIAl1bnNpZ25lZCB3Y19saXN0X247Ci0Jc3RydWN0IHBhZ2UgKnBhZ2U7CiAJc3RydWN0IHdjX2VudHJ5ICp3Y19saXN0X2lubGluZVtXQl9MSVNUX0lOTElORV07CiAJc3RydWN0IGJpbyBiaW87CiB9OwpAQCAtNzI3LDcgKzcyNiw4IEBAIHN0YXRpYyB2b2lkIHdyaXRlY2FjaGVfZmx1c2goc3RydWN0IGRtX3dyaXRlY2FjaGUgKndjKQogCX0KIAl3cml0ZWNhY2hlX2NvbW1pdF9mbHVzaGVkKHdjKTsKIAotCXdyaXRlY2FjaGVfd2FpdF9mb3JfaW9zKHdjLCBXUklURSk7CisJaWYgKCFXQ19NT0RFX1BNRU0od2MpKQorCQl3cml0ZWNhY2hlX3dhaXRfZm9yX2lvcyh3YywgV1JJVEUpOwogCiAJd2MtPnNlcV9jb3VudCsrOwogCXBtZW1fYXNzaWduKHNiKHdjKS0+c2VxX2NvdW50LCBjcHVfdG9fbGU2NCh3Yy0+c2VxX2NvdW50KSk7CkBAIC0xNTYxLDcgKzE1NjEsNyBAQCBzdGF0aWMgdm9pZCB3cml0ZWNhY2hlX3dyaXRlYmFjayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGRtX3dyaXRlY2FjaGUgKndjID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkbV93cml0ZWNhY2hlLCB3cml0ZWJhY2tfd29yayk7CiAJc3RydWN0IGJsa19wbHVnIHBsdWc7Ci0Jc3RydWN0IHdjX2VudHJ5ICplLCAqZiwgKmc7CisJc3RydWN0IHdjX2VudHJ5ICpmLCAqZywgKmUgPSBOVUxMOwogCXN0cnVjdCByYl9ub2RlICpub2RlLCAqbmV4dF9ub2RlOwogCXN0cnVjdCBsaXN0X2hlYWQgc2tpcHBlZDsKIAlzdHJ1Y3Qgd3JpdGViYWNrX2xpc3Qgd2JsOwpAQCAtMTU5OCw3ICsxNTk4LDE0IEBAIHN0YXRpYyB2b2lkIHdyaXRlY2FjaGVfd3JpdGViYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJCWJyZWFrOwogCQl9CiAKLQkJZSA9IGNvbnRhaW5lcl9vZih3Yy0+bHJ1LnByZXYsIHN0cnVjdCB3Y19lbnRyeSwgbHJ1KTsKKwkJaWYgKHVubGlrZWx5KHdjLT53cml0ZWJhY2tfYWxsKSkgeworCQkJaWYgKHVubGlrZWx5KCFlKSkgeworCQkJCXdyaXRlY2FjaGVfZmx1c2god2MpOworCQkJCWUgPSBjb250YWluZXJfb2YocmJfZmlyc3QoJndjLT50cmVlKSwgc3RydWN0IHdjX2VudHJ5LCByYl9ub2RlKTsKKwkJCX0gZWxzZQorCQkJCWUgPSBnOworCQl9IGVsc2UKKwkJCWUgPSBjb250YWluZXJfb2Yod2MtPmxydS5wcmV2LCBzdHJ1Y3Qgd2NfZW50cnksIGxydSk7CiAJCUJVR19PTihlLT53cml0ZV9pbl9wcm9ncmVzcyk7CiAJCWlmICh1bmxpa2VseSghd3JpdGVjYWNoZV9lbnRyeV9pc19jb21taXR0ZWQod2MsIGUpKSkgewogCQkJd3JpdGVjYWNoZV9mbHVzaCh3Yyk7CkBAIC0xNjI5LDggKzE2MzYsOCBAQCBzdGF0aWMgdm9pZCB3cml0ZWNhY2hlX3dyaXRlYmFjayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQlpZiAodW5saWtlbHkoIW5leHRfbm9kZSkpCiAJCQkJYnJlYWs7CiAJCQlnID0gY29udGFpbmVyX29mKG5leHRfbm9kZSwgc3RydWN0IHdjX2VudHJ5LCByYl9ub2RlKTsKLQkJCWlmIChyZWFkX29yaWdpbmFsX3NlY3Rvcih3YywgZykgPT0KLQkJCSAgICByZWFkX29yaWdpbmFsX3NlY3Rvcih3YywgZikpIHsKKwkJCWlmICh1bmxpa2VseShyZWFkX29yaWdpbmFsX3NlY3Rvcih3YywgZykgPT0KKwkJCSAgICByZWFkX29yaWdpbmFsX3NlY3Rvcih3YywgZikpKSB7CiAJCQkJZiA9IGc7CiAJCQkJY29udGludWU7CiAJCQl9CkBAIC0xNjU5LDggKzE2NjYsMTQgQEAgc3RhdGljIHZvaWQgd3JpdGVjYWNoZV93cml0ZWJhY2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQkJZy0+d2NfbGlzdF9jb250aWd1b3VzID0gQklPX01BWF9QQUdFUzsKIAkJCWYgPSBnOwogCQkJZS0+d2NfbGlzdF9jb250aWd1b3VzKys7Ci0JCQlpZiAodW5saWtlbHkoZS0+d2NfbGlzdF9jb250aWd1b3VzID09IEJJT19NQVhfUEFHRVMpKQorCQkJaWYgKHVubGlrZWx5KGUtPndjX2xpc3RfY29udGlndW91cyA9PSBCSU9fTUFYX1BBR0VTKSkgeworCQkJCWlmICh1bmxpa2VseSh3Yy0+d3JpdGViYWNrX2FsbCkpIHsKKwkJCQkJbmV4dF9ub2RlID0gcmJfbmV4dCgmZi0+cmJfbm9kZSk7CisJCQkJCWlmIChsaWtlbHkobmV4dF9ub2RlKSkKKwkJCQkJCWcgPSBjb250YWluZXJfb2YobmV4dF9ub2RlLCBzdHJ1Y3Qgd2NfZW50cnksIHJiX25vZGUpOworCQkJCX0KIAkJCQlicmVhazsKKwkJCX0KIAkJfQogCQljb25kX3Jlc2NoZWQoKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXpvbmVkLXRhcmdldC5jIGIvZHJpdmVycy9tZC9kbS16b25lZC10YXJnZXQuYwppbmRleCAzMTQ3OGZlLi5kM2JjYzQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLXpvbmVkLXRhcmdldC5jCisrKyBiL2RyaXZlcnMvbWQvZG0tem9uZWQtdGFyZ2V0LmMKQEAgLTEzNCw4ICsxMzQsNiBAQCBzdGF0aWMgaW50IGRtel9zdWJtaXRfYmlvKHN0cnVjdCBkbXpfdGFyZ2V0ICpkbXosIHN0cnVjdCBkbV96b25lICp6b25lLAogCiAJcmVmY291bnRfaW5jKCZiaW9jdHgtPnJlZik7CiAJZ2VuZXJpY19tYWtlX3JlcXVlc3QoY2xvbmUpOwotCWlmIChjbG9uZS0+Ymlfc3RhdHVzID09IEJMS19TVFNfSU9FUlIpCi0JCXJldHVybiAtRUlPOwogCiAJaWYgKGJpb19vcChiaW8pID09IFJFUV9PUF9XUklURSAmJiBkbXpfaXNfc2VxKHpvbmUpKQogCQl6b25lLT53cF9ibG9jayArPSBucl9ibG9ja3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLmMgYi9kcml2ZXJzL21kL2RtLmMKaW5kZXggZDBiZWVmMC4uMWE1ZTMyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9kbS5jCisrKyBiL2RyaXZlcnMvbWQvZG0uYwpAQCAtNDU3LDcgKzQ1Nyw3IEBAIHN0YXRpYyBpbnQgZG1fYmxrX3JlcG9ydF96b25lcyhzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgc2VjdG9yX3Qgc2VjdG9yLAogCQlyZXR1cm4gLUVJTzsKIAogCXRndCA9IGRtX3RhYmxlX2ZpbmRfdGFyZ2V0KG1hcCwgc2VjdG9yKTsKLQlpZiAoIWRtX3RhcmdldF9pc192YWxpZCh0Z3QpKSB7CisJaWYgKCF0Z3QpIHsKIAkJcmV0ID0gLUVJTzsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTA3Miw3ICsxMDcyLDcgQEAgc3RhdGljIHN0cnVjdCBkbV90YXJnZXQgKmRtX2RheF9nZXRfbGl2ZV90YXJnZXQoc3RydWN0IG1hcHBlZF9kZXZpY2UgKm1kLAogCQlyZXR1cm4gTlVMTDsKIAogCXRpID0gZG1fdGFibGVfZmluZF90YXJnZXQobWFwLCBzZWN0b3IpOwotCWlmICghZG1fdGFyZ2V0X2lzX3ZhbGlkKHRpKSkKKwlpZiAoIXRpKQogCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiB0aTsKQEAgLTE1NzIsNyArMTU3Miw3IEBAIHN0YXRpYyBpbnQgX19zcGxpdF9hbmRfcHJvY2Vzc19ub25fZmx1c2goc3RydWN0IGNsb25lX2luZm8gKmNpKQogCWludCByOwogCiAJdGkgPSBkbV90YWJsZV9maW5kX3RhcmdldChjaS0+bWFwLCBjaS0+c2VjdG9yKTsKLQlpZiAoIWRtX3RhcmdldF9pc192YWxpZCh0aSkpCisJaWYgKCF0aSkKIAkJcmV0dXJuIC1FSU87CiAKIAlpZiAoX19wcm9jZXNzX2Fibm9ybWFsX2lvKGNpLCB0aSwgJnIpKQpAQCAtMTc0OCw3ICsxNzQ4LDcgQEAgc3RhdGljIGJsa19xY190IGRtX3Byb2Nlc3NfYmlvKHN0cnVjdCBtYXBwZWRfZGV2aWNlICptZCwKIAogCWlmICghdGkpIHsKIAkJdGkgPSBkbV90YWJsZV9maW5kX3RhcmdldChtYXAsIGJpby0+YmlfaXRlci5iaV9zZWN0b3IpOwotCQlpZiAodW5saWtlbHkoIXRpIHx8ICFkbV90YXJnZXRfaXNfdmFsaWQodGkpKSkgeworCQlpZiAodW5saWtlbHkoIXRpKSkgewogCQkJYmlvX2lvX2Vycm9yKGJpbyk7CiAJCQlyZXR1cm4gcmV0OwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLmggYi9kcml2ZXJzL21kL2RtLmgKaW5kZXggMDQ3NTY3My4uZDdjNGY2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9kbS5oCisrKyBiL2RyaXZlcnMvbWQvZG0uaApAQCAtODYsMTEgKzg2LDYgQEAgc3RydWN0IHRhcmdldF90eXBlICpkbV9nZXRfaW1tdXRhYmxlX3RhcmdldF90eXBlKHN0cnVjdCBtYXBwZWRfZGV2aWNlICptZCk7CiBpbnQgZG1fc2V0dXBfbWRfcXVldWUoc3RydWN0IG1hcHBlZF9kZXZpY2UgKm1kLCBzdHJ1Y3QgZG1fdGFibGUgKnQpOwogCiAvKgotICogVG8gY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGRtX3RhYmxlX2ZpbmRfdGFyZ2V0KCkuCi0gKi8KLSNkZWZpbmUgZG1fdGFyZ2V0X2lzX3ZhbGlkKHQpICgodCktPnRhYmxlKQotCi0vKgogICogVG8gY2hlY2sgd2hldGhlciB0aGUgdGFyZ2V0IHR5cGUgaXMgYmlvLWJhc2VkIG9yIG5vdCAocmVxdWVzdC1iYXNlZCkuCiAgKi8KICNkZWZpbmUgZG1fdGFyZ2V0X2Jpb19iYXNlZCh0KSAoKHQpLT50eXBlLT5tYXAgIT0gTlVMTCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLXNwYWNlLW1hcC1jb21tb24uYyBiL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLXNwYWNlLW1hcC1jb21tb24uYwppbmRleCBiOGE2MjE4Li5iZDY4ZjZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1zcGFjZS1tYXAtY29tbW9uLmMKKysrIGIvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tc3BhY2UtbWFwLWNvbW1vbi5jCkBAIC0zNjksMTAgKzM2OSw2IEBAIGludCBzbV9sbF9maW5kX2ZyZWVfYmxvY2soc3RydWN0IGxsX2Rpc2sgKmxsLCBkbV9ibG9ja190IGJlZ2luLAogCQkJICovCiAJCQlkbV90bV91bmxvY2sobGwtPnRtLCBibGspOwogCQkJY29udGludWU7Ci0KLQkJfSBlbHNlIGlmIChyIDwgMCkgewotCQkJZG1fdG1fdW5sb2NrKGxsLT50bSwgYmxrKTsKLQkJCXJldHVybiByOwogCQl9CiAKIAkJZG1fdG1fdW5sb2NrKGxsLT50bSwgYmxrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL2Fkdjc0OHgvYWR2NzQ4eC1jb3JlLmMgYi9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NDh4L2Fkdjc0OHgtY29yZS5jCmluZGV4IDBhNDdkNDcuLjIzZTAyZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvaTJjL2Fkdjc0OHgvYWR2NzQ4eC1jb3JlLmMKKysrIGIvZHJpdmVycy9tZWRpYS9pMmMvYWR2NzQ4eC9hZHY3NDh4LWNvcmUuYwpAQCAtMTgzLDE0ICsxODMsMTQgQEAgc3RhdGljIGludCBhZHY3NDh4X2luaXRpYWxpc2VfY2xpZW50cyhzdHJ1Y3QgYWR2NzQ4eF9zdGF0ZSAqc3RhdGUpCiAJaW50IHJldDsKIAogCWZvciAoaSA9IEFEVjc0OFhfUEFHRV9EUExMOyBpIDwgQURWNzQ4WF9QQUdFX01BWDsgKytpKSB7Ci0JCXN0YXRlLT5pMmNfY2xpZW50c1tpXSA9IGkyY19uZXdfc2Vjb25kYXJ5X2RldmljZSgKKwkJc3RhdGUtPmkyY19jbGllbnRzW2ldID0gaTJjX25ld19hbmNpbGxhcnlfZGV2aWNlKAogCQkJCXN0YXRlLT5jbGllbnQsCiAJCQkJYWR2NzQ4eF9kZWZhdWx0X2FkZHJlc3Nlc1tpXS5uYW1lLAogCQkJCWFkdjc0OHhfZGVmYXVsdF9hZGRyZXNzZXNbaV0uZGVmYXVsdF9hZGRyKTsKIAotCQlpZiAoc3RhdGUtPmkyY19jbGllbnRzW2ldID09IE5VTEwpIHsKKwkJaWYgKElTX0VSUihzdGF0ZS0+aTJjX2NsaWVudHNbaV0pKSB7CiAJCQlhZHZfZXJyKHN0YXRlLCAiZmFpbGVkIHRvIGNyZWF0ZSBpMmMgY2xpZW50ICV1XG4iLCBpKTsKLQkJCXJldHVybiAtRU5PTUVNOworCQkJcmV0dXJuIFBUUl9FUlIoc3RhdGUtPmkyY19jbGllbnRzW2ldKTsKIAkJfQogCiAJCXJldCA9IGFkdjc0OHhfY29uZmlndXJlX3JlZ21hcChzdGF0ZSwgaSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NjA0LmMgYi9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NjA0LmMKaW5kZXggMjhhODRiZi4uMmRlZGQ2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvYWR2NzYwNC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL2Fkdjc2MDQuYwpAQCAtMjg2MiwxMCArMjg2Miw4IEBAIHN0YXRpYyB2b2lkIGFkdjc2eHhfdW5yZWdpc3Rlcl9jbGllbnRzKHN0cnVjdCBhZHY3Nnh4X3N0YXRlICpzdGF0ZSkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIAotCWZvciAoaSA9IDE7IGkgPCBBUlJBWV9TSVpFKHN0YXRlLT5pMmNfY2xpZW50cyk7ICsraSkgewotCQlpZiAoc3RhdGUtPmkyY19jbGllbnRzW2ldKQotCQkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKHN0YXRlLT5pMmNfY2xpZW50c1tpXSk7Ci0JfQorCWZvciAoaSA9IDE7IGkgPCBBUlJBWV9TSVpFKHN0YXRlLT5pMmNfY2xpZW50cyk7ICsraSkKKwkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKHN0YXRlLT5pMmNfY2xpZW50c1tpXSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCAqYWR2NzZ4eF9kdW1teV9jbGllbnQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwKQEAgLTI4NzgsMTQgKzI4NzYsMTQgQEAgc3RhdGljIHN0cnVjdCBpMmNfY2xpZW50ICphZHY3Nnh4X2R1bW15X2NsaWVudChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLAogCXN0cnVjdCBpMmNfY2xpZW50ICpuZXdfY2xpZW50OwogCiAJaWYgKHBkYXRhICYmIHBkYXRhLT5pMmNfYWRkcmVzc2VzW3BhZ2VdKQotCQluZXdfY2xpZW50ID0gaTJjX25ld19kdW1teShjbGllbnQtPmFkYXB0ZXIsCisJCW5ld19jbGllbnQgPSBpMmNfbmV3X2R1bW15X2RldmljZShjbGllbnQtPmFkYXB0ZXIsCiAJCQkJCSAgIHBkYXRhLT5pMmNfYWRkcmVzc2VzW3BhZ2VdKTsKIAllbHNlCi0JCW5ld19jbGllbnQgPSBpMmNfbmV3X3NlY29uZGFyeV9kZXZpY2UoY2xpZW50LAorCQluZXdfY2xpZW50ID0gaTJjX25ld19hbmNpbGxhcnlfZGV2aWNlKGNsaWVudCwKIAkJCQlhZHY3Nnh4X2RlZmF1bHRfYWRkcmVzc2VzW3BhZ2VdLm5hbWUsCiAJCQkJYWR2NzZ4eF9kZWZhdWx0X2FkZHJlc3Nlc1twYWdlXS5kZWZhdWx0X2FkZHIpOwogCi0JaWYgKG5ld19jbGllbnQpCisJaWYgKCFJU19FUlIobmV3X2NsaWVudCkpCiAJCWlvX3dyaXRlKHNkLCBpb19yZWcsIG5ld19jbGllbnQtPmFkZHIgPDwgMSk7CiAKIAlyZXR1cm4gbmV3X2NsaWVudDsKQEAgLTM1MTYsMTUgKzM1MTQsMTkgQEAgc3RhdGljIGludCBhZHY3Nnh4X3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJfQogCiAJZm9yIChpID0gMTsgaSA8IEFEVjc2WFhfUEFHRV9NQVg7ICsraSkgeworCQlzdHJ1Y3QgaTJjX2NsaWVudCAqZHVtbXlfY2xpZW50OworCiAJCWlmICghKEJJVChpKSAmIHN0YXRlLT5pbmZvLT5wYWdlX21hc2spKQogCQkJY29udGludWU7CiAKLQkJc3RhdGUtPmkyY19jbGllbnRzW2ldID0gYWR2NzZ4eF9kdW1teV9jbGllbnQoc2QsIGkpOwotCQlpZiAoIXN0YXRlLT5pMmNfY2xpZW50c1tpXSkgewotCQkJZXJyID0gLUVJTlZBTDsKKwkJZHVtbXlfY2xpZW50ID0gYWR2NzZ4eF9kdW1teV9jbGllbnQoc2QsIGkpOworCQlpZiAoSVNfRVJSKGR1bW15X2NsaWVudCkpIHsKKwkJCWVyciA9IFBUUl9FUlIoZHVtbXlfY2xpZW50KTsKIAkJCXY0bDJfZXJyKHNkLCAiZmFpbGVkIHRvIGNyZWF0ZSBpMmMgY2xpZW50ICV1XG4iLCBpKTsKIAkJCWdvdG8gZXJyX2kyYzsKIAkJfQorCisJCXN0YXRlLT5pMmNfY2xpZW50c1tpXSA9IGR1bW15X2NsaWVudDsKIAl9CiAKIAlJTklUX0RFTEFZRURfV09SSygmc3RhdGUtPmRlbGF5ZWRfd29ya19lbmFibGVfaG90cGx1ZywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vS2NvbmZpZyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vS2NvbmZpZwppbmRleCA4M2E3ODUwLi5mMWY2MTQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL0tjb25maWcKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9LY29uZmlnCkBAIC01NDcsMTAgKzU0Nyw5IEBACiAKIGNvbmZpZyBWSURFT19DUk9TX0VDX0NFQwogCXRyaXN0YXRlICJDaHJvbWVPUyBFQyBDRUMgZHJpdmVyIgotCWRlcGVuZHMgb24gTUZEX0NST1NfRUMKKwlkZXBlbmRzIG9uIENST1NfRUMKIAlzZWxlY3QgQ0VDX0NPUkUKIAlzZWxlY3QgQ0VDX05PVElGSUVSCi0Jc2VsZWN0IENIUk9NRV9QTEFURk9STVMKIAlzZWxlY3QgQ1JPU19FQ19QUk9UTwogCWhlbHAKIAkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IHdpbGwgZ2V0IHN1cHBvcnQgZm9yIHRoZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9jcm9zLWVjLWNlYy9jcm9zLWVjLWNlYy5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9jcm9zLWVjLWNlYy9jcm9zLWVjLWNlYy5jCmluZGV4IDc2YWI4M2YuLjRhM2IzODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY3Jvcy1lYy1jZWMvY3Jvcy1lYy1jZWMuYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2Nyb3MtZWMtY2VjL2Nyb3MtZWMtY2VjLmMKQEAgLTE0LDEwICsxNCwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L2NlYy5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19wcm90by5oPgogI2luY2x1ZGUgPG1lZGlhL2NlYy5oPgogI2luY2x1ZGUgPG1lZGlhL2NlYy1ub3RpZmllci5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KIAogI2RlZmluZSBEUlZfTkFNRQkiY3Jvcy1lYy1jZWMiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmLWRtYS1jb250aWcuYyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmLWRtYS1jb250aWcuYwppbmRleCA3NmI0YWM3Li5hZWIyZjQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1Zi1kbWEtY29udGlnLmMKKysrIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYtZG1hLWNvbnRpZy5jCkBAIC0xNTcsNiArMTU3LDcgQEAgc3RhdGljIHZvaWQgdmlkZW9idWZfZG1hX2NvbnRpZ191c2VyX3B1dChzdHJ1Y3QgdmlkZW9idWZfZG1hX2NvbnRpZ19tZW1vcnkgKm1lbSkKIHN0YXRpYyBpbnQgdmlkZW9idWZfZG1hX2NvbnRpZ191c2VyX2dldChzdHJ1Y3QgdmlkZW9idWZfZG1hX2NvbnRpZ19tZW1vcnkgKm1lbSwKIAkJCQkJc3RydWN0IHZpZGVvYnVmX2J1ZmZlciAqdmIpCiB7CisJdW5zaWduZWQgbG9uZyB1bnRhZ2dlZF9iYWRkciA9IHVudGFnZ2VkX2FkZHIodmItPmJhZGRyKTsKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IGN1cnJlbnQtPm1tOwogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwogCXVuc2lnbmVkIGxvbmcgcHJldl9wZm4sIHRoaXNfcGZuOwpAQCAtMTY0LDIyICsxNjUsMjIgQEAgc3RhdGljIGludCB2aWRlb2J1Zl9kbWFfY29udGlnX3VzZXJfZ2V0KHN0cnVjdCB2aWRlb2J1Zl9kbWFfY29udGlnX21lbW9yeSAqbWVtLAogCXVuc2lnbmVkIGludCBvZmZzZXQ7CiAJaW50IHJldDsKIAotCW9mZnNldCA9IHZiLT5iYWRkciAmIH5QQUdFX01BU0s7CisJb2Zmc2V0ID0gdW50YWdnZWRfYmFkZHIgJiB+UEFHRV9NQVNLOwogCW1lbS0+c2l6ZSA9IFBBR0VfQUxJR04odmItPnNpemUgKyBvZmZzZXQpOwogCXJldCA9IC1FSU5WQUw7CiAKIAlkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAKLQl2bWEgPSBmaW5kX3ZtYShtbSwgdmItPmJhZGRyKTsKKwl2bWEgPSBmaW5kX3ZtYShtbSwgdW50YWdnZWRfYmFkZHIpOwogCWlmICghdm1hKQogCQlnb3RvIG91dF91cDsKIAotCWlmICgodmItPmJhZGRyICsgbWVtLT5zaXplKSA+IHZtYS0+dm1fZW5kKQorCWlmICgodW50YWdnZWRfYmFkZHIgKyBtZW0tPnNpemUpID4gdm1hLT52bV9lbmQpCiAJCWdvdG8gb3V0X3VwOwogCiAJcGFnZXNfZG9uZSA9IDA7CiAJcHJldl9wZm4gPSAwOyAvKiBraWxsIHdhcm5pbmcgKi8KLQl1c2VyX2FkZHJlc3MgPSB2Yi0+YmFkZHI7CisJdXNlcl9hZGRyZXNzID0gdW50YWdnZWRfYmFkZHI7CiAKIAl3aGlsZSAocGFnZXNfZG9uZSA8IChtZW0tPnNpemUgPj4gUEFHRV9TSElGVCkpIHsKIAkJcmV0ID0gZm9sbG93X3Bmbih2bWEsIHVzZXJfYWRkcmVzcywgJnRoaXNfcGZuKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkLzg4cG04MDAuYyBiL2RyaXZlcnMvbWZkLzg4cG04MDAuYwppbmRleCBmMmQ5ZmI0Li40ZThkMGQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC84OHBtODAwLmMKKysrIGIvZHJpdmVycy9tZmQvODhwbTgwMC5jCkBAIC00MjUsMTAgKzQyNSwxMCBAQCBzdGF0aWMgaW50IHBtODAwX3BhZ2VzX2luaXQoc3RydWN0IHBtODB4X2NoaXAgKmNoaXApCiAJCXJldHVybiAtRU5PREVWOwogCiAJLyogUE04MDAgYmxvY2sgcG93ZXIgcGFnZSAqLwotCXN1YmNoaXAtPnBvd2VyX3BhZ2UgPSBpMmNfbmV3X2R1bW15KGNsaWVudC0+YWRhcHRlciwKKwlzdWJjaGlwLT5wb3dlcl9wYWdlID0gaTJjX25ld19kdW1teV9kZXZpY2UoY2xpZW50LT5hZGFwdGVyLAogCQkJCQkgICAgc3ViY2hpcC0+cG93ZXJfcGFnZV9hZGRyKTsKLQlpZiAoc3ViY2hpcC0+cG93ZXJfcGFnZSA9PSBOVUxMKSB7Ci0JCXJldCA9IC1FTk9ERVY7CisJaWYgKElTX0VSUihzdWJjaGlwLT5wb3dlcl9wYWdlKSkgeworCQlyZXQgPSBQVFJfRVJSKHN1YmNoaXAtPnBvd2VyX3BhZ2UpOwogCQlnb3RvIG91dDsKIAl9CiAKQEAgLTQ0NCwxMCArNDQ0LDEwIEBAIHN0YXRpYyBpbnQgcG04MDBfcGFnZXNfaW5pdChzdHJ1Y3QgcG04MHhfY2hpcCAqY2hpcCkKIAlpMmNfc2V0X2NsaWVudGRhdGEoc3ViY2hpcC0+cG93ZXJfcGFnZSwgY2hpcCk7CiAKIAkvKiBQTTgwMCBibG9jayBHUEFEQyAqLwotCXN1YmNoaXAtPmdwYWRjX3BhZ2UgPSBpMmNfbmV3X2R1bW15KGNsaWVudC0+YWRhcHRlciwKKwlzdWJjaGlwLT5ncGFkY19wYWdlID0gaTJjX25ld19kdW1teV9kZXZpY2UoY2xpZW50LT5hZGFwdGVyLAogCQkJCQkgICAgc3ViY2hpcC0+Z3BhZGNfcGFnZV9hZGRyKTsKLQlpZiAoc3ViY2hpcC0+Z3BhZGNfcGFnZSA9PSBOVUxMKSB7Ci0JCXJldCA9IC1FTk9ERVY7CisJaWYgKElTX0VSUihzdWJjaGlwLT5ncGFkY19wYWdlKSkgeworCQlyZXQgPSBQVFJfRVJSKHN1YmNoaXAtPmdwYWRjX3BhZ2UpOwogCQlnb3RvIG91dDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkLzg4cG04NjB4LWNvcmUuYyBiL2RyaXZlcnMvbWZkLzg4cG04NjB4LWNvcmUuYwppbmRleCA5ZTBiZDEzLi5jOWJhZTcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC84OHBtODYweC1jb3JlLmMKKysrIGIvZHJpdmVycy9tZmQvODhwbTg2MHgtY29yZS5jCkBAIC0xMTc4LDEyICsxMTc4LDEyIEBAIHN0YXRpYyBpbnQgcG04NjB4X3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiAJICovCiAJaWYgKHBkYXRhLT5jb21wYW5pb25fYWRkciAmJiAocGRhdGEtPmNvbXBhbmlvbl9hZGRyICE9IGNsaWVudC0+YWRkcikpIHsKIAkJY2hpcC0+Y29tcGFuaW9uX2FkZHIgPSBwZGF0YS0+Y29tcGFuaW9uX2FkZHI7Ci0JCWNoaXAtPmNvbXBhbmlvbiA9IGkyY19uZXdfZHVtbXkoY2hpcC0+Y2xpZW50LT5hZGFwdGVyLAorCQljaGlwLT5jb21wYW5pb24gPSBpMmNfbmV3X2R1bW15X2RldmljZShjaGlwLT5jbGllbnQtPmFkYXB0ZXIsCiAJCQkJCQljaGlwLT5jb21wYW5pb25fYWRkcik7Ci0JCWlmICghY2hpcC0+Y29tcGFuaW9uKSB7CisJCWlmIChJU19FUlIoY2hpcC0+Y29tcGFuaW9uKSkgewogCQkJZGV2X2VycigmY2xpZW50LT5kZXYsCiAJCQkJIkZhaWxlZCB0byBhbGxvY2F0ZSBJMkMgY29tcGFuaW9uIGRldmljZVxuIik7Ci0JCQlyZXR1cm4gLUVOT0RFVjsKKwkJCXJldHVybiBQVFJfRVJSKGNoaXAtPmNvbXBhbmlvbik7CiAJCX0KIAkJY2hpcC0+cmVnbWFwX2NvbXBhbmlvbiA9IHJlZ21hcF9pbml0X2kyYyhjaGlwLT5jb21wYW5pb24sCiAJCQkJCQkJJnBtODYweF9yZWdtYXBfY29uZmlnKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL0tjb25maWcgYi9kcml2ZXJzL21mZC9LY29uZmlnCmluZGV4IGM4Y2JkZTUuLmFlMjRkM2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL0tjb25maWcKKysrIGIvZHJpdmVycy9tZmQvS2NvbmZpZwpAQCAtMjExLDI2ICsyMTEsMTggQEAKIAkgIGNvbXBvbmVudHMgbGlrZSByZWd1bGF0b3JzIG9yIHRoZSBQRUsgKFBvd2VyIEVuYWJsZSBLZXkpIHVuZGVyIHRoZQogCSAgY29ycmVzcG9uZGluZyBtZW51cy4KIAotY29uZmlnIE1GRF9DUk9TX0VDCi0JdHJpc3RhdGUgIkNocm9tZU9TIEVtYmVkZGVkIENvbnRyb2xsZXIiCitjb25maWcgTUZEX0NST1NfRUNfREVWCisJdHJpc3RhdGUgIkNocm9tZU9TIEVtYmVkZGVkIENvbnRyb2xsZXIgbXVsdGlmdW5jdGlvbiBkZXZpY2UiCiAJc2VsZWN0IE1GRF9DT1JFCi0Jc2VsZWN0IENIUk9NRV9QTEFURk9STVMKLQlzZWxlY3QgQ1JPU19FQ19QUk9UTwotCWRlcGVuZHMgb24gWDg2IHx8IEFSTSB8fCBBUk02NCB8fCBDT01QSUxFX1RFU1QKKwlkZXBlbmRzIG9uIENST1NfRUMKKwlkZWZhdWx0IENST1NfRUMKIAloZWxwCi0JICBJZiB5b3Ugc2F5IFkgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBDaHJvbWVPUyBFbWJlZGRlZAotCSAgQ29udHJvbGxlciAoRUMpIHByb3ZpZGluZyBrZXlib2FyZCwgYmF0dGVyeSBhbmQgcG93ZXIgc2VydmljZXMuCi0JICBZb3UgYWxzbyBuZWVkIHRvIGVuYWJsZSB0aGUgZHJpdmVyIGZvciB0aGUgYnVzIHlvdSBhcmUgdXNpbmcuIFRoZQotCSAgcHJvdG9jb2wgZm9yIHRhbGtpbmcgdG8gdGhlIEVDIGlzIGRlZmluZWQgYnkgdGhlIGJ1cyBkcml2ZXIuCisJICBTZWxlY3QgdGhpcyB0byBnZXQgc3VwcG9ydCBmb3IgQ2hyb21lT1MgRW1iZWRkZWQgQ29udHJvbGxlcgorCSAgc3ViLWRldmljZXMuIFRoaXMgZHJpdmVyIHdpbGwgaW5zdGFudGlhdGUgYWRkaXRpb25hbCBkcml2ZXJzIHN1Y2gKKwkgIGFzIFJUQywgVVNCUEQsIGV0Yy4gYnV0IHlvdSBoYXZlIHRvIHNlbGVjdCB0aGUgaW5kaXZpZHVhbCBkcml2ZXJzLgogCi1jb25maWcgTUZEX0NST1NfRUNfQ0hBUkRFVgotCXRyaXN0YXRlICJDaHJvbWUgT1MgRW1iZWRkZWQgQ29udHJvbGxlciB1c2Vyc3BhY2UgZGV2aWNlIGludGVyZmFjZSIKLQlkZXBlbmRzIG9uIE1GRF9DUk9TX0VDCi0JLS0taGVscC0tLQotCSAgVGhpcyBkcml2ZXIgYWRkcyBzdXBwb3J0IHRvIHRhbGsgd2l0aCB0aGUgQ2hyb21lT1MgRUMgZnJvbSB1c2Vyc3BhY2UuCi0KLQkgIElmIHlvdSBoYXZlIGEgc3VwcG9ydGVkIENocm9tZWJvb2ssIGNob29zZSBZIG9yIE0gaGVyZS4KLQkgIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgY3Jvc19lY19kZXYuCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmUKKwkgIGNhbGxlZCBjcm9zLWVjLWRldi4KIAogY29uZmlnIE1GRF9NQURFUkEKIAl0cmlzdGF0ZSAiQ2lycnVzIExvZ2ljIE1hZGVyYSBjb2RlY3MiCkBAIC01OTcsNiArNTg5LDE3IEBACiAJICBTZWxlY3QgdGhpcyBvcHRpb24gZm9yIHN1cHBvcnRpbmcgRG9sbGFyIENvdmUgKFRJIHZlcnNpb24pIFBNSUMKIAkgIGRldmljZSB0aGF0IGlzIGZvdW5kIG9uIHNvbWUgSW50ZWwgQ2hlcnJ5IFRyYWlsIHN5c3RlbXMuCiAKK2NvbmZpZyBJTlRFTF9TT0NfUE1JQ19NUkZMRAorCXRyaXN0YXRlICJTdXBwb3J0IGZvciBJbnRlbCBNZXJyaWZpZWxkIEJhc2luIENvdmUgUE1JQyIKKwlkZXBlbmRzIG9uIEdQSU9MSUIKKwlkZXBlbmRzIG9uIEFDUEkKKwlkZXBlbmRzIG9uIElOVEVMX1NDVV9JUEMKKwlzZWxlY3QgTUZEX0NPUkUKKwlzZWxlY3QgUkVHTUFQX0lSUQorCWhlbHAKKwkgIFNlbGVjdCB0aGlzIG9wdGlvbiBmb3Igc3VwcG9ydGluZyBCYXNpbiBDb3ZlIFBNSUMgZGV2aWNlCisJICB0aGF0IGlzIGZvdW5kIG9uIEludGVsIE1lcnJpZmllbGQgc3lzdGVtcy4KKwogY29uZmlnIE1GRF9JTlRFTF9MUFNTCiAJdHJpc3RhdGUKIAlzZWxlY3QgQ09NTU9OX0NMSwpAQCAtNjQ5LDE1ICs2NTIsNiBAQAogCSAgaG9zdCBtYW55IGRpZmZlcmVudCB0eXBlcyBvZiBNT0RVTGJ1cyBkYXVnaHRlcmJvYXJkcywgaW5jbHVkaW5nCiAJICBDQU4gYW5kIEdQSU8gY29udHJvbGxlcnMuCiAKLWNvbmZpZyBNRkRfSlo0NzQwX0FEQwotCWJvb2wgIkphbnogSlo0NzQwIEFEQyBjb3JlIgotCXNlbGVjdCBNRkRfQ09SRQotCXNlbGVjdCBHRU5FUklDX0lSUV9DSElQCi0JZGVwZW5kcyBvbiBNQUNIX0paNDc0MAotCWhlbHAKLQkgIFNheSB5ZXMgaGVyZSBpZiB5b3Ugd2FudCBzdXBwb3J0IGZvciB0aGUgQURDIHVuaXQgaW4gdGhlIEpaNDc0MCBTb0MuCi0JICBUaGlzIGRyaXZlciBpcyBuZWNlc3NhcnkgZm9yIGp6NDc0MC1iYXR0ZXJ5IGFuZCBqejQ3NDAtaHdtb24gZHJpdmVyLgotCiBjb25maWcgTUZEX0tFTVBMRAogCXRyaXN0YXRlICJLb250cm9uIG1vZHVsZSBQTEQgZGV2aWNlIgogCXNlbGVjdCBNRkRfQ09SRQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvTWFrZWZpbGUgYi9kcml2ZXJzL21mZC9NYWtlZmlsZQppbmRleCBmMDI2YWRhLi5jMTA2N2VhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL21mZC9NYWtlZmlsZQpAQCAtMTMsOSArMTMsNyBAQAogb2JqLSQoQ09ORklHX0FSQ0hfQkNNMjgzNSkJKz0gYmNtMjgzNS1wbS5vCiBvYmotJChDT05GSUdfTUZEX0JDTTU5MFhYKQkrPSBiY201OTB4eC5vCiBvYmotJChDT05GSUdfTUZEX0JEOTU3MU1XVikJKz0gYmQ5NTcxbXd2Lm8KLWNyb3NfZWNfY29yZS1vYmpzCQk6PSBjcm9zX2VjLm8KLW9iai0kKENPTkZJR19NRkRfQ1JPU19FQykJKz0gY3Jvc19lY19jb3JlLm8KLW9iai0kKENPTkZJR19NRkRfQ1JPU19FQ19DSEFSREVWKSArPSBjcm9zX2VjX2Rldi5vCitvYmotJChDT05GSUdfTUZEX0NST1NfRUNfREVWKQkrPSBjcm9zX2VjX2Rldi5vCiBvYmotJChDT05GSUdfTUZEX0VYWU5PU19MUEFTUykJKz0gZXh5bm9zLWxwYXNzLm8KIAogb2JqLSQoQ09ORklHX0hUQ19QQVNJQzMpCSs9IGh0Yy1wYXNpYzMubwpAQCAtMTkxLDcgKzE4OSw2IEBACiBvYmotJChDT05GSUdfTFBDX0lDSCkJCSs9IGxwY19pY2gubwogb2JqLSQoQ09ORklHX01GRF9SREMzMjFYKQkrPSByZGMzMjF4LXNvdXRoYnJpZGdlLm8KIG9iai0kKENPTkZJR19NRkRfSkFOWl9DTU9ESU8pCSs9IGphbnotY21vZGlvLm8KLW9iai0kKENPTkZJR19NRkRfSlo0NzQwX0FEQykJKz0gano0NzQwLWFkYy5vCiBvYmotJChDT05GSUdfTUZEX1RQUzY1ODZYKQkrPSB0cHM2NTg2eC5vCiBvYmotJChDT05GSUdfTUZEX1ZYODU1KQkJKz0gdng4NTUubwogb2JqLSQoQ09ORklHX01GRF9XTDEyNzNfQ09SRSkJKz0gd2wxMjczLWNvcmUubwpAQCAtMjQxLDcgKzIzOCw5IEBACiBvYmotJChDT05GSUdfSU5URUxfU09DX1BNSUNfQlhUV0MpCSs9IGludGVsX3NvY19wbWljX2J4dHdjLm8KIG9iai0kKENPTkZJR19JTlRFTF9TT0NfUE1JQ19DSFRXQykJKz0gaW50ZWxfc29jX3BtaWNfY2h0d2Mubwogb2JqLSQoQ09ORklHX0lOVEVMX1NPQ19QTUlDX0NIVERDX1RJKQkrPSBpbnRlbF9zb2NfcG1pY19jaHRkY190aS5vCi1vYmotJChDT05GSUdfTUZEX01UNjM5NykJKz0gbXQ2Mzk3LWNvcmUubworbXQ2Mzk3LW9ianMJOj0gbXQ2Mzk3LWNvcmUubyBtdDYzOTctaXJxLm8KK29iai0kKENPTkZJR19NRkRfTVQ2Mzk3KQkrPSBtdDYzOTcubworb2JqLSQoQ09ORklHX0lOVEVMX1NPQ19QTUlDX01SRkxEKQkrPSBpbnRlbF9zb2NfcG1pY19tcmZsZC5vCiAKIG9iai0kKENPTkZJR19NRkRfQUxURVJBX0ExMFNSKQkrPSBhbHRlcmEtYTEwc3Iubwogb2JqLSQoQ09ORklHX01GRF9BTFRFUkFfU1lTTUdSKSArPSBhbHRlcmEtc3lzbWdyLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2FiMzEwMC1jb3JlLmMgYi9kcml2ZXJzL21mZC9hYjMxMDAtY29yZS5jCmluZGV4IDlmM2RiYzMuLjU3NzIzZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL2FiMzEwMC1jb3JlLmMKKysrIGIvZHJpdmVycy9tZmQvYWIzMTAwLWNvcmUuYwpAQCAtODY1LDEwICs4NjUsMTAgQEAgc3RhdGljIGludCBhYjMxMDBfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJICZhYjMxMDAtPmNoaXBfbmFtZVswXSk7CiAKIAkvKiBBdHRhY2ggYSBzZWNvbmQgZHVtbXkgaTJjX2NsaWVudCB0byB0aGUgdGVzdCByZWdpc3RlciBhZGRyZXNzICovCi0JYWIzMTAwLT50ZXN0cmVnX2NsaWVudCA9IGkyY19uZXdfZHVtbXkoY2xpZW50LT5hZGFwdGVyLAorCWFiMzEwMC0+dGVzdHJlZ19jbGllbnQgPSBpMmNfbmV3X2R1bW15X2RldmljZShjbGllbnQtPmFkYXB0ZXIsCiAJCQkJCSAgICAgICBjbGllbnQtPmFkZHIgKyAxKTsKLQlpZiAoIWFiMzEwMC0+dGVzdHJlZ19jbGllbnQpIHsKLQkJZXJyID0gLUVOT01FTTsKKwlpZiAoSVNfRVJSKGFiMzEwMC0+dGVzdHJlZ19jbGllbnQpKSB7CisJCWVyciA9IFBUUl9FUlIoYWIzMTAwLT50ZXN0cmVnX2NsaWVudCk7CiAJCWdvdG8gZXhpdF9ub190ZXN0cmVnX2NsaWVudDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2FiODUwMC1kZWJ1Z2ZzLmMgYi9kcml2ZXJzL21mZC9hYjg1MDAtZGVidWdmcy5jCmluZGV4IDU2N2EzNGIuLmY0ZTI2YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL2FiODUwMC1kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9tZmQvYWI4NTAwLWRlYnVnZnMuYwpAQCAtMjY4MCwxNiArMjY4MCwxMiBAQCBzdGF0aWMgaW50IGFiODUwMF9kZWJ1Z19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGYpCiAJaXJxX2FiODUwMCA9IHJlcy0+c3RhcnQ7CiAKIAlpcnFfZmlyc3QgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShwbGYsICJJUlFfRklSU1QiKTsKLQlpZiAoaXJxX2ZpcnN0IDwgMCkgewotCQlkZXZfZXJyKCZwbGYtPmRldiwgIkZpcnN0IGlycSBub3QgZm91bmQsIGVyciAlZFxuIiwgaXJxX2ZpcnN0KTsKKwlpZiAoaXJxX2ZpcnN0IDwgMCkKIAkJcmV0dXJuIGlycV9maXJzdDsKLQl9CiAKIAlpcnFfbGFzdCA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBsZiwgIklSUV9MQVNUIik7Ci0JaWYgKGlycV9sYXN0IDwgMCkgewotCQlkZXZfZXJyKCZwbGYtPmRldiwgIkxhc3QgaXJxIG5vdCBmb3VuZCwgZXJyICVkXG4iLCBpcnFfbGFzdCk7CisJaWYgKGlycV9sYXN0IDwgMCkKIAkJcmV0dXJuIGlycV9sYXN0OwotCX0KIAogCWFiODUwMF9kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoQUI4NTAwX05BTUVfU1RSSU5HLCBOVUxMKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvYXNpYzMuYyBiL2RyaXZlcnMvbWZkL2FzaWMzLmMKaW5kZXggODNiMThjOS4uYTZiZDIxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvYXNpYzMuYworKysgYi9kcml2ZXJzL21mZC9hc2ljMy5jCkBAIC0xNSw3ICsxNSw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9kcml2ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2JjbTU5MHh4LmMgYi9kcml2ZXJzL21mZC9iY201OTB4eC5jCmluZGV4IDFhZWI1ZTQuLmJmYWM1ZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL2JjbTU5MHh4LmMKKysrIGIvZHJpdmVycy9tZmQvYmNtNTkweHguYwpAQCAtNjEsMTEgKzYxLDExIEBAIHN0YXRpYyBpbnQgYmNtNTkweHhfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmNfcHJpLAogCX0KIAogCS8qIFNlY29uZGFyeSBJMkMgc2xhdmUgYWRkcmVzcyBpcyB0aGUgYmFzZSBhZGRyZXNzIHdpdGggQSgyKSBhc3NlcnRlZCAqLwotCWJjbTU5MHh4LT5pMmNfc2VjID0gaTJjX25ld19kdW1teShpMmNfcHJpLT5hZGFwdGVyLAorCWJjbTU5MHh4LT5pMmNfc2VjID0gaTJjX25ld19kdW1teV9kZXZpY2UoaTJjX3ByaS0+YWRhcHRlciwKIAkJCQkJICBpMmNfcHJpLT5hZGRyIHwgQklUKDIpKTsKLQlpZiAoIWJjbTU5MHh4LT5pMmNfc2VjKSB7CisJaWYgKElTX0VSUihiY201OTB4eC0+aTJjX3NlYykpIHsKIAkJZGV2X2VycigmaTJjX3ByaS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBzZWNvbmRhcnkgSTJDIGRldmljZVxuIik7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXR1cm4gUFRSX0VSUihiY201OTB4eC0+aTJjX3NlYyk7CiAJfQogCWkyY19zZXRfY2xpZW50ZGF0YShiY201OTB4eC0+aTJjX3NlYywgYmNtNTkweHgpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9jcm9zX2VjLmMgYi9kcml2ZXJzL21mZC9jcm9zX2VjLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhOWFjNTIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9tZmQvY3Jvc19lYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMjc5ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBDaHJvbWVPUyBFQyBtdWx0aS1mdW5jdGlvbiBkZXZpY2UKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMKLSAqCi0gKiBUaGUgQ2hyb21lT1MgRUMgbXVsdGkgZnVuY3Rpb24gZGV2aWNlIGlzIHVzZWQgdG8gbXV4IGFsbCB0aGUgcmVxdWVzdHMKLSAqIHRvIHRoZSBFQyBkZXZpY2UgZm9yIGl0cyBtdWx0aXBsZSBmZWF0dXJlczoga2V5Ym9hcmQgY29udHJvbGxlciwKLSAqIGJhdHRlcnkgY2hhcmdpbmcgYW5kIHJlZ3VsYXRvciBjb250cm9sLCBmaXJtd2FyZSB1cGRhdGUuCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jb3JlLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+Ci0jaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgotCi0jZGVmaW5lIENST1NfRUNfREVWX0VDX0lOREVYIDAKLSNkZWZpbmUgQ1JPU19FQ19ERVZfUERfSU5ERVggMQotCi1zdGF0aWMgc3RydWN0IGNyb3NfZWNfcGxhdGZvcm0gZWNfcCA9IHsKLQkuZWNfbmFtZSA9IENST1NfRUNfREVWX05BTUUsCi0JLmNtZF9vZmZzZXQgPSBFQ19DTURfUEFTU1RIUlVfT0ZGU0VUKENST1NfRUNfREVWX0VDX0lOREVYKSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY3Jvc19lY19wbGF0Zm9ybSBwZF9wID0gewotCS5lY19uYW1lID0gQ1JPU19FQ19ERVZfUERfTkFNRSwKLQkuY21kX29mZnNldCA9IEVDX0NNRF9QQVNTVEhSVV9PRkZTRVQoQ1JPU19FQ19ERVZfUERfSU5ERVgpLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCBlY19jZWxsID0gewotCS5uYW1lID0gImNyb3MtZWMtZGV2IiwKLQkucGxhdGZvcm1fZGF0YSA9ICZlY19wLAotCS5wZGF0YV9zaXplID0gc2l6ZW9mKGVjX3ApLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCBlY19wZF9jZWxsID0gewotCS5uYW1lID0gImNyb3MtZWMtZGV2IiwKLQkucGxhdGZvcm1fZGF0YSA9ICZwZF9wLAotCS5wZGF0YV9zaXplID0gc2l6ZW9mKHBkX3ApLAotfTsKLQotc3RhdGljIGlycXJldHVybl90IGVjX2lycV90aHJlYWQoaW50IGlycSwgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiA9IGRhdGE7Ci0JYm9vbCB3YWtlX2V2ZW50ID0gdHJ1ZTsKLQlpbnQgcmV0OwotCi0JcmV0ID0gY3Jvc19lY19nZXRfbmV4dF9ldmVudChlY19kZXYsICZ3YWtlX2V2ZW50KTsKLQotCS8qCi0JICogU2lnbmFsIG9ubHkgaWYgd2FrZSBob3N0IGV2ZW50cyBvciBhbnkgaW50ZXJydXB0IGlmCi0JICogY3Jvc19lY19nZXRfbmV4dF9ldmVudCgpIHJldHVybmVkIGFuIGVycm9yIChkZWZhdWx0IHZhbHVlIGZvcgotCSAqIHdha2VfZXZlbnQgaXMgdHJ1ZSkKLQkgKi8KLQlpZiAod2FrZV9ldmVudCAmJiBkZXZpY2VfbWF5X3dha2V1cChlY19kZXYtPmRldikpCi0JCXBtX3dha2V1cF9ldmVudChlY19kZXYtPmRldiwgMCk7Ci0KLQlpZiAocmV0ID4gMCkKLQkJYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbigmZWNfZGV2LT5ldmVudF9ub3RpZmllciwKLQkJCQkJICAgICAwLCBlY19kZXYpOwotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIGludCBjcm9zX2VjX3NsZWVwX2V2ZW50KHN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2LCB1OCBzbGVlcF9ldmVudCkKLXsKLQlpbnQgcmV0OwotCXN0cnVjdCB7Ci0JCXN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgbXNnOwotCQl1bmlvbiB7Ci0JCQlzdHJ1Y3QgZWNfcGFyYW1zX2hvc3Rfc2xlZXBfZXZlbnQgcmVxMDsKLQkJCXN0cnVjdCBlY19wYXJhbXNfaG9zdF9zbGVlcF9ldmVudF92MSByZXExOwotCQkJc3RydWN0IGVjX3Jlc3BvbnNlX2hvc3Rfc2xlZXBfZXZlbnRfdjEgcmVzcDE7Ci0JCX0gdTsKLQl9IF9fcGFja2VkIGJ1ZjsKLQotCW1lbXNldCgmYnVmLCAwLCBzaXplb2YoYnVmKSk7Ci0KLQlpZiAoZWNfZGV2LT5ob3N0X3NsZWVwX3YxKSB7Ci0JCWJ1Zi51LnJlcTEuc2xlZXBfZXZlbnQgPSBzbGVlcF9ldmVudDsKLQkJYnVmLnUucmVxMS5zdXNwZW5kX3BhcmFtcy5zbGVlcF90aW1lb3V0X21zID0KLQkJCQlFQ19IT1NUX1NMRUVQX1RJTUVPVVRfREVGQVVMVDsKLQotCQlidWYubXNnLm91dHNpemUgPSBzaXplb2YoYnVmLnUucmVxMSk7Ci0JCWlmICgoc2xlZXBfZXZlbnQgPT0gSE9TVF9TTEVFUF9FVkVOVF9TM19SRVNVTUUpIHx8Ci0JCSAgICAoc2xlZXBfZXZlbnQgPT0gSE9TVF9TTEVFUF9FVkVOVF9TMElYX1JFU1VNRSkpCi0JCQlidWYubXNnLmluc2l6ZSA9IHNpemVvZihidWYudS5yZXNwMSk7Ci0KLQkJYnVmLm1zZy52ZXJzaW9uID0gMTsKLQotCX0gZWxzZSB7Ci0JCWJ1Zi51LnJlcTAuc2xlZXBfZXZlbnQgPSBzbGVlcF9ldmVudDsKLQkJYnVmLm1zZy5vdXRzaXplID0gc2l6ZW9mKGJ1Zi51LnJlcTApOwotCX0KLQotCWJ1Zi5tc2cuY29tbWFuZCA9IEVDX0NNRF9IT1NUX1NMRUVQX0VWRU5UOwotCi0JcmV0ID0gY3Jvc19lY19jbWRfeGZlcihlY19kZXYsICZidWYubXNnKTsKLQotCS8qIEZvciBub3csIHJlcG9ydCBmYWlsdXJlIHRvIHRyYW5zaXRpb24gdG8gUzBpeCB3aXRoIGEgd2FybmluZy4gKi8KLQlpZiAocmV0ID49IDAgJiYgZWNfZGV2LT5ob3N0X3NsZWVwX3YxICYmCi0JICAgIChzbGVlcF9ldmVudCA9PSBIT1NUX1NMRUVQX0VWRU5UX1MwSVhfUkVTVU1FKSkgewotCQllY19kZXYtPmxhc3RfcmVzdW1lX3Jlc3VsdCA9Ci0JCQlidWYudS5yZXNwMS5yZXN1bWVfcmVzcG9uc2Uuc2xlZXBfdHJhbnNpdGlvbnM7Ci0KLQkJV0FSTl9PTkNFKGJ1Zi51LnJlc3AxLnJlc3VtZV9yZXNwb25zZS5zbGVlcF90cmFuc2l0aW9ucyAmCi0JCQkgIEVDX0hPU1RfUkVTVU1FX1NMRUVQX1RJTUVPVVQsCi0JCQkgICJFQyBkZXRlY3RlZCBzbGVlcCB0cmFuc2l0aW9uIHRpbWVvdXQuIFRvdGFsIHNscF9zMCB0cmFuc2l0aW9uczogJWQiLAotCQkJICBidWYudS5yZXNwMS5yZXN1bWVfcmVzcG9uc2Uuc2xlZXBfdHJhbnNpdGlvbnMgJgotCQkJICBFQ19IT1NUX1JFU1VNRV9TTEVFUF9UUkFOU0lUSU9OU19NQVNLKTsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1pbnQgY3Jvc19lY19yZWdpc3RlcihzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldikKLXsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBlY19kZXYtPmRldjsKLQlpbnQgZXJyID0gMDsKLQotCUJMT0NLSU5HX0lOSVRfTk9USUZJRVJfSEVBRCgmZWNfZGV2LT5ldmVudF9ub3RpZmllcik7Ci0KLQllY19kZXYtPm1heF9yZXF1ZXN0ID0gc2l6ZW9mKHN0cnVjdCBlY19wYXJhbXNfaGVsbG8pOwotCWVjX2Rldi0+bWF4X3Jlc3BvbnNlID0gc2l6ZW9mKHN0cnVjdCBlY19yZXNwb25zZV9nZXRfcHJvdG9jb2xfaW5mbyk7Ci0JZWNfZGV2LT5tYXhfcGFzc3RocnUgPSAwOwotCi0JZWNfZGV2LT5kaW4gPSBkZXZtX2t6YWxsb2MoZGV2LCBlY19kZXYtPmRpbl9zaXplLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWVjX2Rldi0+ZGluKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWVjX2Rldi0+ZG91dCA9IGRldm1fa3phbGxvYyhkZXYsIGVjX2Rldi0+ZG91dF9zaXplLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWVjX2Rldi0+ZG91dCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQltdXRleF9pbml0KCZlY19kZXYtPmxvY2spOwotCi0JZXJyID0gY3Jvc19lY19xdWVyeV9hbGwoZWNfZGV2KTsKLQlpZiAoZXJyKSB7Ci0JCWRldl9lcnIoZGV2LCAiQ2Fubm90IGlkZW50aWZ5IHRoZSBFQzogZXJyb3IgJWRcbiIsIGVycik7Ci0JCXJldHVybiBlcnI7Ci0JfQotCi0JaWYgKGVjX2Rldi0+aXJxKSB7Ci0JCWVyciA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoZGV2LCBlY19kZXYtPmlycSwgTlVMTCwKLQkJCQllY19pcnFfdGhyZWFkLCBJUlFGX1RSSUdHRVJfTE9XIHwgSVJRRl9PTkVTSE9ULAotCQkJCSJjaHJvbWVvcy1lYyIsIGVjX2Rldik7Ci0JCWlmIChlcnIpIHsKLQkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3QgSVJRICVkOiAlZCIsCi0JCQkJZWNfZGV2LT5pcnEsIGVycik7Ci0JCQlyZXR1cm4gZXJyOwotCQl9Ci0JfQotCi0JZXJyID0gZGV2bV9tZmRfYWRkX2RldmljZXMoZWNfZGV2LT5kZXYsIFBMQVRGT1JNX0RFVklEX0FVVE8sICZlY19jZWxsLAotCQkJCSAgIDEsIE5VTEwsIGVjX2Rldi0+aXJxLCBOVUxMKTsKLQlpZiAoZXJyKSB7Ci0JCWRldl9lcnIoZGV2LAotCQkJIkZhaWxlZCB0byByZWdpc3RlciBFbWJlZGRlZCBDb250cm9sbGVyIHN1YmRldmljZSAlZFxuIiwKLQkJCWVycik7Ci0JCXJldHVybiBlcnI7Ci0JfQotCi0JaWYgKGVjX2Rldi0+bWF4X3Bhc3N0aHJ1KSB7Ci0JCS8qCi0JCSAqIFJlZ2lzdGVyIGEgUEQgZGV2aWNlIGFzIHdlbGwgb24gdG9wIG9mIHRoaXMgZGV2aWNlLgotCQkgKiBXZSBtYWtlIHRoZSBmb2xsb3dpbmcgYXNzdW1wdGlvbnM6Ci0JCSAqIC0gYmVoaW5kIGFuIEVDLCB3ZSBoYXZlIGEgcGQKLQkJICogLSBvbmx5IG9uZSBkZXZpY2UgYWRkZWQuCi0JCSAqIC0gdGhlIEVDIGlzIHJlc3BvbnNpdmUgYXQgaW5pdCB0aW1lIChpdCBpcyBub3QgdHJ1ZSBmb3IgYQotCQkgKiAgIHNlbnNvciBodWIuCi0JCSAqLwotCQllcnIgPSBkZXZtX21mZF9hZGRfZGV2aWNlcyhlY19kZXYtPmRldiwgUExBVEZPUk1fREVWSURfQVVUTywKLQkJCQkgICAgICAmZWNfcGRfY2VsbCwgMSwgTlVMTCwgZWNfZGV2LT5pcnEsIE5VTEwpOwotCQlpZiAoZXJyKSB7Ci0JCQlkZXZfZXJyKGRldiwKLQkJCQkiRmFpbGVkIHRvIHJlZ2lzdGVyIFBvd2VyIERlbGl2ZXJ5IHN1YmRldmljZSAlZFxuIiwKLQkJCQllcnIpOwotCQkJcmV0dXJuIGVycjsKLQkJfQotCX0KLQotCWlmIChJU19FTkFCTEVEKENPTkZJR19PRikgJiYgZGV2LT5vZl9ub2RlKSB7Ci0JCWVyciA9IGRldm1fb2ZfcGxhdGZvcm1fcG9wdWxhdGUoZGV2KTsKLQkJaWYgKGVycikgewotCQkJbWZkX3JlbW92ZV9kZXZpY2VzKGRldik7Ci0JCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byByZWdpc3RlciBzdWItZGV2aWNlc1xuIik7Ci0JCQlyZXR1cm4gZXJyOwotCQl9Ci0JfQotCi0JLyoKLQkgKiBDbGVhciBzbGVlcCBldmVudCAtIHRoaXMgd2lsbCBmYWlsIGhhcm1sZXNzbHkgb24gcGxhdGZvcm1zIHRoYXQKLQkgKiBkb24ndCBpbXBsZW1lbnQgdGhlIHNsZWVwIGV2ZW50IGhvc3QgY29tbWFuZC4KLQkgKi8KLQllcnIgPSBjcm9zX2VjX3NsZWVwX2V2ZW50KGVjX2RldiwgMCk7Ci0JaWYgKGVyciA8IDApCi0JCWRldl9kYmcoZWNfZGV2LT5kZXYsICJFcnJvciAlZCBjbGVhcmluZyBzbGVlcCBldmVudCB0byBlYyIsCi0JCQllcnIpOwotCi0JZGV2X2luZm8oZGV2LCAiQ2hyb21lIEVDIGRldmljZSByZWdpc3RlcmVkXG4iKTsKLQotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTChjcm9zX2VjX3JlZ2lzdGVyKTsKLQotI2lmZGVmIENPTkZJR19QTV9TTEVFUAotaW50IGNyb3NfZWNfc3VzcGVuZChzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldikKLXsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBlY19kZXYtPmRldjsKLQlpbnQgcmV0OwotCXU4IHNsZWVwX2V2ZW50OwotCi0Jc2xlZXBfZXZlbnQgPSAoIUlTX0VOQUJMRUQoQ09ORklHX0FDUEkpIHx8IHBtX3N1c3BlbmRfdmlhX2Zpcm13YXJlKCkpID8KLQkJICAgICAgSE9TVF9TTEVFUF9FVkVOVF9TM19TVVNQRU5EIDoKLQkJICAgICAgSE9TVF9TTEVFUF9FVkVOVF9TMElYX1NVU1BFTkQ7Ci0KLQlyZXQgPSBjcm9zX2VjX3NsZWVwX2V2ZW50KGVjX2Rldiwgc2xlZXBfZXZlbnQpOwotCWlmIChyZXQgPCAwKQotCQlkZXZfZGJnKGVjX2Rldi0+ZGV2LCAiRXJyb3IgJWQgc2VuZGluZyBzdXNwZW5kIGV2ZW50IHRvIGVjIiwKLQkJCXJldCk7Ci0KLQlpZiAoZGV2aWNlX21heV93YWtldXAoZGV2KSkKLQkJZWNfZGV2LT53YWtlX2VuYWJsZWQgPSAhZW5hYmxlX2lycV93YWtlKGVjX2Rldi0+aXJxKTsKLQotCWRpc2FibGVfaXJxKGVjX2Rldi0+aXJxKTsKLQllY19kZXYtPndhc193YWtlX2RldmljZSA9IGVjX2Rldi0+d2FrZV9lbmFibGVkOwotCWVjX2Rldi0+c3VzcGVuZGVkID0gdHJ1ZTsKLQotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTChjcm9zX2VjX3N1c3BlbmQpOwotCi1zdGF0aWMgdm9pZCBjcm9zX2VjX3JlcG9ydF9ldmVudHNfZHVyaW5nX3N1c3BlbmQoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYpCi17Ci0Jd2hpbGUgKGVjX2Rldi0+bWticF9ldmVudF9zdXBwb3J0ZWQgJiYKLQkgICAgICAgY3Jvc19lY19nZXRfbmV4dF9ldmVudChlY19kZXYsIE5VTEwpID4gMCkKLQkJYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbigmZWNfZGV2LT5ldmVudF9ub3RpZmllciwKLQkJCQkJICAgICAxLCBlY19kZXYpOwotfQotCi1pbnQgY3Jvc19lY19yZXN1bWUoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYpCi17Ci0JaW50IHJldDsKLQl1OCBzbGVlcF9ldmVudDsKLQotCWVjX2Rldi0+c3VzcGVuZGVkID0gZmFsc2U7Ci0JZW5hYmxlX2lycShlY19kZXYtPmlycSk7Ci0KLQlzbGVlcF9ldmVudCA9ICghSVNfRU5BQkxFRChDT05GSUdfQUNQSSkgfHwgcG1fc3VzcGVuZF92aWFfZmlybXdhcmUoKSkgPwotCQkgICAgICBIT1NUX1NMRUVQX0VWRU5UX1MzX1JFU1VNRSA6Ci0JCSAgICAgIEhPU1RfU0xFRVBfRVZFTlRfUzBJWF9SRVNVTUU7Ci0KLQlyZXQgPSBjcm9zX2VjX3NsZWVwX2V2ZW50KGVjX2Rldiwgc2xlZXBfZXZlbnQpOwotCWlmIChyZXQgPCAwKQotCQlkZXZfZGJnKGVjX2Rldi0+ZGV2LCAiRXJyb3IgJWQgc2VuZGluZyByZXN1bWUgZXZlbnQgdG8gZWMiLAotCQkJcmV0KTsKLQotCWlmIChlY19kZXYtPndha2VfZW5hYmxlZCkgewotCQlkaXNhYmxlX2lycV93YWtlKGVjX2Rldi0+aXJxKTsKLQkJZWNfZGV2LT53YWtlX2VuYWJsZWQgPSAwOwotCX0KLQkvKgotCSAqIExldCB0aGUgbWZkIGRldmljZXMga25vdyBhYm91dCBldmVudHMgdGhhdCBvY2N1ciBkdXJpbmcKLQkgKiBzdXNwZW5kLiBUaGlzIHdheSB0aGUgY2xpZW50cyBrbm93IHdoYXQgdG8gZG8gd2l0aCB0aGVtLgotCSAqLwotCWNyb3NfZWNfcmVwb3J0X2V2ZW50c19kdXJpbmdfc3VzcGVuZChlY19kZXYpOwotCi0KLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0woY3Jvc19lY19yZXN1bWUpOwotCi0jZW5kaWYKLQotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJDaHJvbWVPUyBFQyBjb3JlIGRyaXZlciIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvY3Jvc19lY19kZXYuYyBiL2RyaXZlcnMvbWZkL2Nyb3NfZWNfZGV2LmMKaW5kZXggNDFkY2NjZS4uNmU2ZGZkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvY3Jvc19lY19kZXYuYworKysgYi9kcml2ZXJzL21mZC9jcm9zX2VjX2Rldi5jCkBAIC01LDczICs1LDExMiBAQAogICogQ29weXJpZ2h0IChDKSAyMDE0IEdvb2dsZSwgSW5jLgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2RfZGV2aWNldGFibGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BtLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NoYXJkZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgotCi0jaW5jbHVkZSAiY3Jvc19lY19kZXYuaCIKIAogI2RlZmluZSBEUlZfTkFNRSAiY3Jvcy1lYy1kZXYiCiAKLS8qIERldmljZSB2YXJpYWJsZXMgKi8KLSNkZWZpbmUgQ1JPU19NQVhfREVWIDEyOAotc3RhdGljIGludCBlY19tYWpvcjsKLQogc3RhdGljIHN0cnVjdCBjbGFzcyBjcm9zX2NsYXNzID0gewogCS5vd25lciAgICAgICAgICA9IFRISVNfTU9EVUxFLAogCS5uYW1lICAgICAgICAgICA9ICJjaHJvbWVvcyIsCiB9OwogCi0vKiBCYXNpYyBjb21tdW5pY2F0aW9uICovCi1zdGF0aWMgaW50IGVjX2dldF92ZXJzaW9uKHN0cnVjdCBjcm9zX2VjX2RldiAqZWMsIGNoYXIgKnN0ciwgaW50IG1heGxlbikKLXsKLQlzdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X3ZlcnNpb24gKnJlc3A7Ci0Jc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjdXJyZW50X2ltYWdlX25hbWVbXSA9IHsKLQkJInVua25vd24iLCAicmVhZC1vbmx5IiwgInJlYWQtd3JpdGUiLCAiaW52YWxpZCIsCi0JfTsKLQlzdHJ1Y3QgY3Jvc19lY19jb21tYW5kICptc2c7Ci0JaW50IHJldDsKKy8qKgorICogY3Jvc19mZWF0dXJlX3RvX25hbWUgLSBDck9TIGZlYXR1cmUgaWQgdG8gbmFtZS9zaG9ydCBkZXNjcmlwdGlvbi4KKyAqIEBpZDogVGhlIGZlYXR1cmUgaWRlbnRpZmllci4KKyAqIEBuYW1lOiBEZXZpY2UgbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIGZlYXR1cmUgaWQuCisgKiBAZGVzYzogU2hvcnQgbmFtZSB0aGF0IHdpbGwgYmUgZGlzcGxheWVkLgorICovCitzdHJ1Y3QgY3Jvc19mZWF0dXJlX3RvX25hbWUgeworCXVuc2lnbmVkIGludCBpZDsKKwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IGNoYXIgKmRlc2M7Cit9OwogCi0JbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZykgKyBzaXplb2YoKnJlc3ApLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW1zZykKLQkJcmV0dXJuIC1FTk9NRU07CisvKioKKyAqIGNyb3NfZmVhdHVyZV90b19jZWxscyAtIENyT1MgZmVhdHVyZSBpZCB0byBtZmQgY2VsbHMgYXNzb2NpYXRpb24uCisgKiBAaWQ6IFRoZSBmZWF0dXJlIGlkZW50aWZpZXIuCisgKiBAbWZkX2NlbGxzOiBQb2ludGVyIHRvIHRoZSBhcnJheSBvZiBtZmQgY2VsbHMgdGhhdCBuZWVkcyB0byBiZSBhZGRlZC4KKyAqIEBudW1fY2VsbHM6IE51bWJlciBvZiBtZmQgY2VsbHMgaW50byB0aGUgYXJyYXkuCisgKi8KK3N0cnVjdCBjcm9zX2ZlYXR1cmVfdG9fY2VsbHMgeworCXVuc2lnbmVkIGludCBpZDsKKwljb25zdCBzdHJ1Y3QgbWZkX2NlbGwgKm1mZF9jZWxsczsKKwl1bnNpZ25lZCBpbnQgbnVtX2NlbGxzOworfTsKIAotCW1zZy0+dmVyc2lvbiA9IDA7Ci0JbXNnLT5jb21tYW5kID0gRUNfQ01EX0dFVF9WRVJTSU9OICsgZWMtPmNtZF9vZmZzZXQ7Ci0JbXNnLT5pbnNpemUgPSBzaXplb2YoKnJlc3ApOwotCW1zZy0+b3V0c2l6ZSA9IDA7CitzdGF0aWMgY29uc3Qgc3RydWN0IGNyb3NfZmVhdHVyZV90b19uYW1lIGNyb3NfbWN1X2RldmljZXNbXSA9IHsKKwl7CisJCS5pZAk9IEVDX0ZFQVRVUkVfRklOR0VSUFJJTlQsCisJCS5uYW1lCT0gQ1JPU19FQ19ERVZfRlBfTkFNRSwKKwkJLmRlc2MJPSAiRmluZ2VycHJpbnQiLAorCX0sCisJeworCQkuaWQJPSBFQ19GRUFUVVJFX0lTSCwKKwkJLm5hbWUJPSBDUk9TX0VDX0RFVl9JU0hfTkFNRSwKKwkJLmRlc2MJPSAiSW50ZWdyYXRlZCBTZW5zb3IgSHViIiwKKwl9LAorCXsKKwkJLmlkCT0gRUNfRkVBVFVSRV9TQ1AsCisJCS5uYW1lCT0gQ1JPU19FQ19ERVZfU0NQX05BTUUsCisJCS5kZXNjCT0gIlN5c3RlbSBDb250cm9sIFByb2Nlc3NvciIsCisJfSwKKwl7CisJCS5pZAk9IEVDX0ZFQVRVUkVfVE9VQ0hQQUQsCisJCS5uYW1lCT0gQ1JPU19FQ19ERVZfVFBfTkFNRSwKKwkJLmRlc2MJPSAiVG91Y2hwYWQiLAorCX0sCit9OwogCi0JcmV0ID0gY3Jvc19lY19jbWRfeGZlcihlYy0+ZWNfZGV2LCBtc2cpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIGV4aXQ7CitzdGF0aWMgY29uc3Qgc3RydWN0IG1mZF9jZWxsIGNyb3NfZWNfY2VjX2NlbGxzW10gPSB7CisJeyAubmFtZSA9ICJjcm9zLWVjLWNlYyIsIH0sCit9OwogCi0JaWYgKG1zZy0+cmVzdWx0ICE9IEVDX1JFU19TVUNDRVNTKSB7Ci0JCXNucHJpbnRmKHN0ciwgbWF4bGVuLAotCQkJICIlc1xuVW5rbm93biBFQyB2ZXJzaW9uOiBFQyByZXR1cm5lZCAlZFxuIiwKLQkJCSBDUk9TX0VDX0RFVl9WRVJTSU9OLCBtc2ctPnJlc3VsdCk7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8gZXhpdDsKLQl9CitzdGF0aWMgY29uc3Qgc3RydWN0IG1mZF9jZWxsIGNyb3NfZWNfcnRjX2NlbGxzW10gPSB7CisJeyAubmFtZSA9ICJjcm9zLWVjLXJ0YyIsIH0sCit9OwogCi0JcmVzcCA9IChzdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X3ZlcnNpb24gKiltc2ctPmRhdGE7Ci0JaWYgKHJlc3AtPmN1cnJlbnRfaW1hZ2UgPj0gQVJSQVlfU0laRShjdXJyZW50X2ltYWdlX25hbWUpKQotCQlyZXNwLT5jdXJyZW50X2ltYWdlID0gMzsgLyogaW52YWxpZCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCBjcm9zX3VzYnBkX2NoYXJnZXJfY2VsbHNbXSA9IHsKKwl7IC5uYW1lID0gImNyb3MtdXNicGQtY2hhcmdlciIsIH0sCisJeyAubmFtZSA9ICJjcm9zLXVzYnBkLWxvZ2dlciIsIH0sCit9OwogCi0Jc25wcmludGYoc3RyLCBtYXhsZW4sICIlc1xuJXNcbiVzXG4lc1xuIiwgQ1JPU19FQ19ERVZfVkVSU0lPTiwKLQkJIHJlc3AtPnZlcnNpb25fc3RyaW5nX3JvLCByZXNwLT52ZXJzaW9uX3N0cmluZ19ydywKLQkJIGN1cnJlbnRfaW1hZ2VfbmFtZVtyZXNwLT5jdXJyZW50X2ltYWdlXSk7CitzdGF0aWMgY29uc3Qgc3RydWN0IGNyb3NfZmVhdHVyZV90b19jZWxscyBjcm9zX3N1YmRldmljZXNbXSA9IHsKKwl7CisJCS5pZAkJPSBFQ19GRUFUVVJFX0NFQywKKwkJLm1mZF9jZWxscwk9IGNyb3NfZWNfY2VjX2NlbGxzLAorCQkubnVtX2NlbGxzCT0gQVJSQVlfU0laRShjcm9zX2VjX2NlY19jZWxscyksCisJfSwKKwl7CisJCS5pZAkJPSBFQ19GRUFUVVJFX1JUQywKKwkJLm1mZF9jZWxscwk9IGNyb3NfZWNfcnRjX2NlbGxzLAorCQkubnVtX2NlbGxzCT0gQVJSQVlfU0laRShjcm9zX2VjX3J0Y19jZWxscyksCisJfSwKKwl7CisJCS5pZAkJPSBFQ19GRUFUVVJFX1VTQl9QRCwKKwkJLm1mZF9jZWxscwk9IGNyb3NfdXNicGRfY2hhcmdlcl9jZWxscywKKwkJLm51bV9jZWxscwk9IEFSUkFZX1NJWkUoY3Jvc191c2JwZF9jaGFyZ2VyX2NlbGxzKSwKKwl9LAorfTsKIAotCXJldCA9IDA7Ci1leGl0OgotCWtmcmVlKG1zZyk7Ci0JcmV0dXJuIHJldDsKLX0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgY3Jvc19lY19wbGF0Zm9ybV9jZWxsc1tdID0geworCXsgLm5hbWUgPSAiY3Jvcy1lYy1jaGFyZGV2IiwgfSwKKwl7IC5uYW1lID0gImNyb3MtZWMtZGVidWdmcyIsIH0sCisJeyAubmFtZSA9ICJjcm9zLWVjLWxpZ2h0YmFyIiwgfSwKKwl7IC5uYW1lID0gImNyb3MtZWMtc3lzZnMiLCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCBjcm9zX2VjX3ZiY19jZWxsc1tdID0geworCXsgLm5hbWUgPSAiY3Jvcy1lYy12YmMiLCB9Cit9OwogCiBzdGF0aWMgaW50IGNyb3NfZWNfY2hlY2tfZmVhdHVyZXMoc3RydWN0IGNyb3NfZWNfZGV2ICplYywgaW50IGZlYXR1cmUpCiB7CkBAIC04MCwxOCArMTE5LDE1IEBAIHN0YXRpYyBpbnQgY3Jvc19lY19jaGVja19mZWF0dXJlcyhzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjLCBpbnQgZmVhdHVyZSkKIAogCWlmIChlYy0+ZmVhdHVyZXNbMF0gPT0gLTFVICYmIGVjLT5mZWF0dXJlc1sxXSA9PSAtMVUpIHsKIAkJLyogZmVhdHVyZXMgYml0bWFwIG5vdCByZWFkIHlldCAqLwotCi0JCW1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpICsgc2l6ZW9mKGVjLT5mZWF0dXJlcyksIEdGUF9LRVJORUwpOworCQltc2cgPSBremFsbG9jKHNpemVvZigqbXNnKSArIHNpemVvZihlYy0+ZmVhdHVyZXMpLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFtc2cpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAotCQltc2ctPnZlcnNpb24gPSAwOwogCQltc2ctPmNvbW1hbmQgPSBFQ19DTURfR0VUX0ZFQVRVUkVTICsgZWMtPmNtZF9vZmZzZXQ7CiAJCW1zZy0+aW5zaXplID0gc2l6ZW9mKGVjLT5mZWF0dXJlcyk7Ci0JCW1zZy0+b3V0c2l6ZSA9IDA7CiAKLQkJcmV0ID0gY3Jvc19lY19jbWRfeGZlcihlYy0+ZWNfZGV2LCBtc2cpOwotCQlpZiAocmV0IDwgMCB8fCBtc2ctPnJlc3VsdCAhPSBFQ19SRVNfU1VDQ0VTUykgeworCQlyZXQgPSBjcm9zX2VjX2NtZF94ZmVyX3N0YXR1cyhlYy0+ZWNfZGV2LCBtc2cpOworCQlpZiAocmV0IDwgMCkgewogCQkJZGV2X3dhcm4oZWMtPmRldiwgImNhbm5vdCBnZXQgRUMgZmVhdHVyZXM6ICVkLyVkXG4iLAogCQkJCSByZXQsIG1zZy0+cmVzdWx0KTsKIAkJCW1lbXNldChlYy0+ZmVhdHVyZXMsIDAsIHNpemVvZihlYy0+ZmVhdHVyZXMpKTsKQEAgLTEwOCwxNDIgKzE0NCw2IEBAIHN0YXRpYyBpbnQgY3Jvc19lY19jaGVja19mZWF0dXJlcyhzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjLCBpbnQgZmVhdHVyZSkKIAlyZXR1cm4gZWMtPmZlYXR1cmVzW2ZlYXR1cmUgLyAzMl0gJiBFQ19GRUFUVVJFX01BU0tfMChmZWF0dXJlKTsKIH0KIAotLyogRGV2aWNlIGZpbGUgb3BzICovCi1zdGF0aWMgaW50IGVjX2RldmljZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQotewotCXN0cnVjdCBjcm9zX2VjX2RldiAqZWMgPSBjb250YWluZXJfb2YoaW5vZGUtPmlfY2RldiwKLQkJCQkJICAgICAgc3RydWN0IGNyb3NfZWNfZGV2LCBjZGV2KTsKLQlmaWxwLT5wcml2YXRlX2RhdGEgPSBlYzsKLQlub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBlY19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHNzaXplX3QgZWNfZGV2aWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWZmZXIsCi0JCQkgICAgICBzaXplX3QgbGVuZ3RoLCBsb2ZmX3QgKm9mZnNldCkKLXsKLQlzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotCWNoYXIgbXNnW3NpemVvZihzdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X3ZlcnNpb24pICsKLQkJIHNpemVvZihDUk9TX0VDX0RFVl9WRVJTSU9OKV07Ci0Jc2l6ZV90IGNvdW50OwotCWludCByZXQ7Ci0KLQlpZiAoKm9mZnNldCAhPSAwKQotCQlyZXR1cm4gMDsKLQotCXJldCA9IGVjX2dldF92ZXJzaW9uKGVjLCBtc2csIHNpemVvZihtc2cpKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JY291bnQgPSBtaW4obGVuZ3RoLCBzdHJsZW4obXNnKSk7Ci0KLQlpZiAoY29weV90b191c2VyKGJ1ZmZlciwgbXNnLCBjb3VudCkpCi0JCXJldHVybiAtRUZBVUxUOwotCi0JKm9mZnNldCA9IGNvdW50OwotCXJldHVybiBjb3VudDsKLX0KLQotLyogSW9jdGxzICovCi1zdGF0aWMgbG9uZyBlY19kZXZpY2VfaW9jdGxfeGNtZChzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjLCB2b2lkIF9fdXNlciAqYXJnKQotewotCWxvbmcgcmV0OwotCXN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgdV9jbWQ7Ci0Jc3RydWN0IGNyb3NfZWNfY29tbWFuZCAqc19jbWQ7Ci0KLQlpZiAoY29weV9mcm9tX3VzZXIoJnVfY21kLCBhcmcsIHNpemVvZih1X2NtZCkpKQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCWlmICgodV9jbWQub3V0c2l6ZSA+IEVDX01BWF9NU0dfQllURVMpIHx8Ci0JICAgICh1X2NtZC5pbnNpemUgPiBFQ19NQVhfTVNHX0JZVEVTKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlzX2NtZCA9IGttYWxsb2Moc2l6ZW9mKCpzX2NtZCkgKyBtYXgodV9jbWQub3V0c2l6ZSwgdV9jbWQuaW5zaXplKSwKLQkJCUdGUF9LRVJORUwpOwotCWlmICghc19jbWQpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaWYgKGNvcHlfZnJvbV91c2VyKHNfY21kLCBhcmcsIHNpemVvZigqc19jbWQpICsgdV9jbWQub3V0c2l6ZSkpIHsKLQkJcmV0ID0gLUVGQVVMVDsKLQkJZ290byBleGl0OwotCX0KLQotCWlmICh1X2NtZC5vdXRzaXplICE9IHNfY21kLT5vdXRzaXplIHx8Ci0JICAgIHVfY21kLmluc2l6ZSAhPSBzX2NtZC0+aW5zaXplKSB7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8gZXhpdDsKLQl9Ci0KLQlzX2NtZC0+Y29tbWFuZCArPSBlYy0+Y21kX29mZnNldDsKLQlyZXQgPSBjcm9zX2VjX2NtZF94ZmVyKGVjLT5lY19kZXYsIHNfY21kKTsKLQkvKiBPbmx5IGNvcHkgZGF0YSB0byB1c2VybGFuZCBpZiBkYXRhIHdhcyByZWNlaXZlZC4gKi8KLQlpZiAocmV0IDwgMCkKLQkJZ290byBleGl0OwotCi0JaWYgKGNvcHlfdG9fdXNlcihhcmcsIHNfY21kLCBzaXplb2YoKnNfY21kKSArIHNfY21kLT5pbnNpemUpKQotCQlyZXQgPSAtRUZBVUxUOwotZXhpdDoKLQlrZnJlZShzX2NtZCk7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGxvbmcgZWNfZGV2aWNlX2lvY3RsX3JlYWRtZW0oc3RydWN0IGNyb3NfZWNfZGV2ICplYywgdm9pZCBfX3VzZXIgKmFyZykKLXsKLQlzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiA9IGVjLT5lY19kZXY7Ci0Jc3RydWN0IGNyb3NfZWNfcmVhZG1lbSBzX21lbSA9IHsgfTsKLQlsb25nIG51bTsKLQotCS8qIE5vdCBldmVyeSBwbGF0Zm9ybSBzdXBwb3J0cyBkaXJlY3QgcmVhZHMgKi8KLQlpZiAoIWVjX2Rldi0+Y21kX3JlYWRtZW0pCi0JCXJldHVybiAtRU5PVFRZOwotCi0JaWYgKGNvcHlfZnJvbV91c2VyKCZzX21lbSwgYXJnLCBzaXplb2Yoc19tZW0pKSkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQludW0gPSBlY19kZXYtPmNtZF9yZWFkbWVtKGVjX2Rldiwgc19tZW0ub2Zmc2V0LCBzX21lbS5ieXRlcywKLQkJCQkgIHNfbWVtLmJ1ZmZlcik7Ci0JaWYgKG51bSA8PSAwKQotCQlyZXR1cm4gbnVtOwotCi0JaWYgKGNvcHlfdG9fdXNlcigodm9pZCBfX3VzZXIgKilhcmcsICZzX21lbSwgc2l6ZW9mKHNfbWVtKSkpCi0JCXJldHVybiAtRUZBVUxUOwotCi0JcmV0dXJuIG51bTsKLX0KLQotc3RhdGljIGxvbmcgZWNfZGV2aWNlX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJICAgIHVuc2lnbmVkIGxvbmcgYXJnKQotewotCXN0cnVjdCBjcm9zX2VjX2RldiAqZWMgPSBmaWxwLT5wcml2YXRlX2RhdGE7Ci0KLQlpZiAoX0lPQ19UWVBFKGNtZCkgIT0gQ1JPU19FQ19ERVZfSU9DKQotCQlyZXR1cm4gLUVOT1RUWTsKLQotCXN3aXRjaCAoY21kKSB7Ci0JY2FzZSBDUk9TX0VDX0RFVl9JT0NYQ01EOgotCQlyZXR1cm4gZWNfZGV2aWNlX2lvY3RsX3hjbWQoZWMsICh2b2lkIF9fdXNlciAqKWFyZyk7Ci0JY2FzZSBDUk9TX0VDX0RFVl9JT0NSRE1FTToKLQkJcmV0dXJuIGVjX2RldmljZV9pb2N0bF9yZWFkbWVtKGVjLCAodm9pZCBfX3VzZXIgKilhcmcpOwotCX0KLQotCXJldHVybiAtRU5PVFRZOwotfQotCi0vKiBNb2R1bGUgaW5pdGlhbGl6YXRpb24gKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHMgPSB7Ci0JLm9wZW4gPSBlY19kZXZpY2Vfb3BlbiwKLQkucmVsZWFzZSA9IGVjX2RldmljZV9yZWxlYXNlLAotCS5yZWFkID0gZWNfZGV2aWNlX3JlYWQsCi0JLnVubG9ja2VkX2lvY3RsID0gZWNfZGV2aWNlX2lvY3RsLAotI2lmZGVmIENPTkZJR19DT01QQVQKLQkuY29tcGF0X2lvY3RsID0gZWNfZGV2aWNlX2lvY3RsLAotI2VuZGlmCi19OwotCiBzdGF0aWMgdm9pZCBjcm9zX2VjX2NsYXNzX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2KQogewogCWtmcmVlKHRvX2Nyb3NfZWNfZGV2KGRldikpOwpAQCAtMjc2LDggKzE3Niw4IEBAIHN0YXRpYyB2b2lkIGNyb3NfZWNfc2Vuc29yc19yZWdpc3RlcihzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjKQogCXBhcmFtcyA9IChzdHJ1Y3QgZWNfcGFyYW1zX21vdGlvbl9zZW5zZSAqKW1zZy0+ZGF0YTsKIAlwYXJhbXMtPmNtZCA9IE1PVElPTlNFTlNFX0NNRF9EVU1QOwogCi0JcmV0ID0gY3Jvc19lY19jbWRfeGZlcihlYy0+ZWNfZGV2LCBtc2cpOwotCWlmIChyZXQgPCAwIHx8IG1zZy0+cmVzdWx0ICE9IEVDX1JFU19TVUNDRVNTKSB7CisJcmV0ID0gY3Jvc19lY19jbWRfeGZlcl9zdGF0dXMoZWMtPmVjX2RldiwgbXNnKTsKKwlpZiAocmV0IDwgMCkgewogCQlkZXZfd2FybihlYy0+ZGV2LCAiY2Fubm90IGdldCBFQyBzZW5zb3IgaW5mb3JtYXRpb246ICVkLyVkXG4iLAogCQkJIHJldCwgbXNnLT5yZXN1bHQpOwogCQlnb3RvIGVycm9yOwpAQCAtMzA0LDggKzIwNCw4IEBAIHN0YXRpYyB2b2lkIGNyb3NfZWNfc2Vuc29yc19yZWdpc3RlcihzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjKQogCWZvciAoaSA9IDA7IGkgPCBzZW5zb3JfbnVtOyBpKyspIHsKIAkJcGFyYW1zLT5jbWQgPSBNT1RJT05TRU5TRV9DTURfSU5GTzsKIAkJcGFyYW1zLT5pbmZvLnNlbnNvcl9udW0gPSBpOwotCQlyZXQgPSBjcm9zX2VjX2NtZF94ZmVyKGVjLT5lY19kZXYsIG1zZyk7Ci0JCWlmIChyZXQgPCAwIHx8IG1zZy0+cmVzdWx0ICE9IEVDX1JFU19TVUNDRVNTKSB7CisJCXJldCA9IGNyb3NfZWNfY21kX3hmZXJfc3RhdHVzKGVjLT5lY19kZXYsIG1zZyk7CisJCWlmIChyZXQgPCAwKSB7CiAJCQlkZXZfd2FybihlYy0+ZGV2LCAibm8gaW5mbyBmb3IgRUMgc2Vuc29yICVkIDogJWQvJWRcbiIsCiAJCQkJIGksIHJldCwgbXNnLT5yZXN1bHQpOwogCQkJY29udGludWU7CkBAIC00MjksMzcgKzMyOSwxMiBAQCBzdGF0aWMgdm9pZCBjcm9zX2VjX2FjY2VsX2xlZ2FjeV9yZWdpc3RlcihzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjKQogCSAqIFJlZ2lzdGVyIDIgYWNjZWxlcm9tZXRlcnMsIHdlIHdpbGwgZmFpbCBpbiB0aGUgSUlPIGRyaXZlciBpZiB0aGVyZQogCSAqIGFyZSBubyBzZW5zb3JzLgogCSAqLwotCXJldCA9IG1mZF9hZGRfZGV2aWNlcyhlYy0+ZGV2LCBQTEFURk9STV9ERVZJRF9BVVRPLAotCQkJICAgICAgY3Jvc19lY19hY2NlbF9sZWdhY3lfY2VsbHMsCi0JCQkgICAgICBBUlJBWV9TSVpFKGNyb3NfZWNfYWNjZWxfbGVnYWN5X2NlbGxzKSwKLQkJCSAgICAgIE5VTEwsIDAsIE5VTEwpOworCXJldCA9IG1mZF9hZGRfaG90cGx1Z19kZXZpY2VzKGVjLT5kZXYsIGNyb3NfZWNfYWNjZWxfbGVnYWN5X2NlbGxzLAorCQkJCSAgICAgIEFSUkFZX1NJWkUoY3Jvc19lY19hY2NlbF9sZWdhY3lfY2VsbHMpKTsKIAlpZiAocmV0KQogCQlkZXZfZXJyKGVjX2Rldi0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBFQyBzZW5zb3JzXG4iKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCBjcm9zX2VjX2NlY19jZWxsc1tdID0gewotCXsgLm5hbWUgPSAiY3Jvcy1lYy1jZWMiIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgY3Jvc19lY19ydGNfY2VsbHNbXSA9IHsKLQl7IC5uYW1lID0gImNyb3MtZWMtcnRjIiB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG1mZF9jZWxsIGNyb3NfdXNicGRfY2hhcmdlcl9jZWxsc1tdID0gewotCXsgLm5hbWUgPSAiY3Jvcy11c2JwZC1jaGFyZ2VyIiB9LAotCXsgLm5hbWUgPSAiY3Jvcy11c2JwZC1sb2dnZXIiIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG1mZF9jZWxsIGNyb3NfZWNfcGxhdGZvcm1fY2VsbHNbXSA9IHsKLQl7IC5uYW1lID0gImNyb3MtZWMtZGVidWdmcyIgfSwKLQl7IC5uYW1lID0gImNyb3MtZWMtbGlnaHRiYXIiIH0sCi0JeyAubmFtZSA9ICJjcm9zLWVjLXN5c2ZzIiB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCBjcm9zX2VjX3ZiY19jZWxsc1tdID0gewotCXsgLm5hbWUgPSAiY3Jvcy1lYy12YmMiIH0KLX07Ci0KIHN0YXRpYyBpbnQgZWNfZGV2aWNlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJaW50IHJldHZhbCA9IC1FTk9NRU07CkBAIC00NjcsNiArMzQyLDcgQEAgc3RhdGljIGludCBlY19kZXZpY2VfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwogCXN0cnVjdCBjcm9zX2VjX3BsYXRmb3JtICplY19wbGF0Zm9ybSA9IGRldl9nZXRfcGxhdGRhdGEoZGV2KTsKIAlzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjID0ga3phbGxvYyhzaXplb2YoKmVjKSwgR0ZQX0tFUk5FTCk7CisJaW50IGk7CiAKIAlpZiAoIWVjKQogCQlyZXR1cm4gcmV0dmFsOwpAQCAtNDc4LDU3ICszNTQsMjcgQEAgc3RhdGljIGludCBlY19kZXZpY2VfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAllYy0+ZmVhdHVyZXNbMF0gPSAtMVU7IC8qIE5vdCBjYWNoZWQgeWV0ICovCiAJZWMtPmZlYXR1cmVzWzFdID0gLTFVOyAvKiBOb3QgY2FjaGVkIHlldCAqLwogCWRldmljZV9pbml0aWFsaXplKCZlYy0+Y2xhc3NfZGV2KTsKLQljZGV2X2luaXQoJmVjLT5jZGV2LCAmZm9wcyk7CiAKLQkvKiBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYWN0dWFsbHkgYSBGaW5nZXJwcmludCBNQ1UgcmF0aGVyIHRoYW4gYW4gRUMgKi8KLQlpZiAoY3Jvc19lY19jaGVja19mZWF0dXJlcyhlYywgRUNfRkVBVFVSRV9GSU5HRVJQUklOVCkpIHsKLQkJZGV2X2luZm8oZGV2LCAiQ3JPUyBGaW5nZXJwcmludCBNQ1UgZGV0ZWN0ZWQuXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjcm9zX21jdV9kZXZpY2VzKTsgaSsrKSB7CiAJCS8qCi0JCSAqIEhlbHAgdXNlcnNwYWNlIGRpZmZlcmVudGlhdGluZyBFQ3MgZnJvbSBGUCBNQ1UsCi0JCSAqIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb2Jpbmcgb3JkZXIuCisJCSAqIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhY3R1YWxseSBhIGRlZGljYXRlZCBNQ1UgcmF0aGVyCisJCSAqIHRoYW4gYW4gc3RhbmRhcmQgRUMuCiAJCSAqLwotCQllY19wbGF0Zm9ybS0+ZWNfbmFtZSA9IENST1NfRUNfREVWX0ZQX05BTUU7Ci0JfQotCi0JLyoKLQkgKiBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYWN0dWFsbHkgYW4gSW50ZWdyYXRlZCBTZW5zb3IgSHViIChJU0gpCi0JICogcmF0aGVyIHRoYW4gYW4gRUMuCi0JICovCi0JaWYgKGNyb3NfZWNfY2hlY2tfZmVhdHVyZXMoZWMsIEVDX0ZFQVRVUkVfSVNIKSkgewotCQlkZXZfaW5mbyhkZXYsICJDck9TIElTSCBNQ1UgZGV0ZWN0ZWQuXG4iKTsKLQkJLyoKLQkJICogSGVscCB1c2Vyc3BhY2UgZGlmZmVyZW50aWF0aW5nIEVDcyBmcm9tIElTSCBNQ1UsCi0JCSAqIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb2Jpbmcgb3JkZXIuCi0JCSAqLwotCQllY19wbGF0Zm9ybS0+ZWNfbmFtZSA9IENST1NfRUNfREVWX0lTSF9OQU1FOwotCX0KLQotCS8qIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhY3R1YWxseSBhIFRvdWNocGFkIE1DVSByYXRoZXIgdGhhbiBhbiBFQyAqLwotCWlmIChjcm9zX2VjX2NoZWNrX2ZlYXR1cmVzKGVjLCBFQ19GRUFUVVJFX1RPVUNIUEFEKSkgewotCQlkZXZfaW5mbyhkZXYsICJDck9TIFRvdWNocGFkIE1DVSBkZXRlY3RlZC5cbiIpOwotCQkvKgotCQkgKiBIZWxwIHVzZXJzcGFjZSBkaWZmZXJlbnRpYXRpbmcgRUNzIGZyb20gVFAgTUNVLAotCQkgKiByZWdhcmRsZXNzIG9mIHRoZSBwcm9iaW5nIG9yZGVyLgotCQkgKi8KLQkJZWNfcGxhdGZvcm0tPmVjX25hbWUgPSBDUk9TX0VDX0RFVl9UUF9OQU1FOwotCX0KLQotCS8qIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhY3R1YWxseSBhIFNDUCByYXRoZXIgdGhhbiBhbiBFQy4gKi8KLQlpZiAoY3Jvc19lY19jaGVja19mZWF0dXJlcyhlYywgRUNfRkVBVFVSRV9TQ1ApKSB7Ci0JCWRldl9pbmZvKGRldiwgIkNyT1MgU0NQIE1DVSBkZXRlY3RlZC5cbiIpOwotCQkvKgotCQkgKiBIZWxwIHVzZXJzcGFjZSBkaWZmZXJlbnRpYXRpbmcgRUNzIGZyb20gU0NQLAotCQkgKiByZWdhcmRsZXNzIG9mIHRoZSBwcm9iaW5nIG9yZGVyLgotCQkgKi8KLQkJZWNfcGxhdGZvcm0tPmVjX25hbWUgPSBDUk9TX0VDX0RFVl9TQ1BfTkFNRTsKKwkJaWYgKGNyb3NfZWNfY2hlY2tfZmVhdHVyZXMoZWMsIGNyb3NfbWN1X2RldmljZXNbaV0uaWQpKSB7CisJCQlkZXZfaW5mbyhkZXYsICJDck9TICVzIE1DVSBkZXRlY3RlZFxuIiwKKwkJCQkgY3Jvc19tY3VfZGV2aWNlc1tpXS5kZXNjKTsKKwkJCS8qCisJCQkgKiBIZWxwIHVzZXJzcGFjZSBkaWZmZXJlbnRpYXRpbmcgRUNzIGZyb20gb3RoZXIgTUNVLAorCQkJICogcmVnYXJkbGVzcyBvZiB0aGUgcHJvYmluZyBvcmRlci4KKwkJCSAqLworCQkJZWNfcGxhdGZvcm0tPmVjX25hbWUgPSBjcm9zX21jdV9kZXZpY2VzW2ldLm5hbWU7CisJCQlicmVhazsKKwkJfQogCX0KIAogCS8qCiAJICogQWRkIHRoZSBjbGFzcyBkZXZpY2UKLQkgKiBMaW5rIHRvIHRoZSBjaGFyYWN0ZXIgZGV2aWNlIGZvciBjcmVhdGluZyB0aGUgL2RldiBlbnRyeQotCSAqIGluIGRldnRtcGZzLgogCSAqLwotCWVjLT5jbGFzc19kZXYuZGV2dCA9IE1LREVWKGVjX21ham9yLCBwZGV2LT5pZCk7CiAJZWMtPmNsYXNzX2Rldi5jbGFzcyA9ICZjcm9zX2NsYXNzOwogCWVjLT5jbGFzc19kZXYucGFyZW50ID0gZGV2OwogCWVjLT5jbGFzc19kZXYucmVsZWFzZSA9IGNyb3NfZWNfY2xhc3NfcmVsZWFzZTsKQEAgLTUzOSw2ICszODUsMTAgQEAgc3RhdGljIGludCBlY19kZXZpY2VfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJZ290byBmYWlsZWQ7CiAJfQogCisJcmV0dmFsID0gZGV2aWNlX2FkZCgmZWMtPmNsYXNzX2Rldik7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWQ7CisKIAkvKiBjaGVjayB3aGV0aGVyIHRoaXMgRUMgaXMgYSBzZW5zb3IgaHViLiAqLwogCWlmIChjcm9zX2VjX2NoZWNrX2ZlYXR1cmVzKGVjLCBFQ19GRUFUVVJFX01PVElPTl9TRU5TRSkpCiAJCWNyb3NfZWNfc2Vuc29yc19yZWdpc3RlcihlYyk7CkBAIC01NDYsNTMgKzM5NiwyOSBAQCBzdGF0aWMgaW50IGVjX2RldmljZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQkvKiBXb3JrYXJvdWQgZm9yIG9sZGVyIEVDIGZpcm13YXJlICovCiAJCWNyb3NfZWNfYWNjZWxfbGVnYWN5X3JlZ2lzdGVyKGVjKTsKIAotCS8qIENoZWNrIHdoZXRoZXIgdGhpcyBFQyBpbnN0YW5jZSBoYXMgQ0VDIGhvc3QgY29tbWFuZCBzdXBwb3J0ICovCi0JaWYgKGNyb3NfZWNfY2hlY2tfZmVhdHVyZXMoZWMsIEVDX0ZFQVRVUkVfQ0VDKSkgewotCQlyZXR2YWwgPSBtZmRfYWRkX2RldmljZXMoZWMtPmRldiwgUExBVEZPUk1fREVWSURfQVVUTywKLQkJCQkJIGNyb3NfZWNfY2VjX2NlbGxzLAotCQkJCQkgQVJSQVlfU0laRShjcm9zX2VjX2NlY19jZWxscyksCi0JCQkJCSBOVUxMLCAwLCBOVUxMKTsKLQkJaWYgKHJldHZhbCkKLQkJCWRldl9lcnIoZWMtPmRldiwKLQkJCQkiZmFpbGVkIHRvIGFkZCBjcm9zLWVjLWNlYyBkZXZpY2U6ICVkXG4iLAotCQkJCXJldHZhbCk7CisJLyoKKwkgKiBUaGUgZm9sbG93aW5nIHN1YmRldmljZXMgY2FuIGJlIGRldGVjdGVkIGJ5IHNlbmRpbmcgdGhlCisJICogRUNfRkVBVFVSRV9HRVRfQ01EIEVtYmVkZGVkIENvbnRyb2xsZXIgZGV2aWNlLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNyb3Nfc3ViZGV2aWNlcyk7IGkrKykgeworCQlpZiAoY3Jvc19lY19jaGVja19mZWF0dXJlcyhlYywgY3Jvc19zdWJkZXZpY2VzW2ldLmlkKSkgeworCQkJcmV0dmFsID0gbWZkX2FkZF9ob3RwbHVnX2RldmljZXMoZWMtPmRldiwKKwkJCQkJCWNyb3Nfc3ViZGV2aWNlc1tpXS5tZmRfY2VsbHMsCisJCQkJCQljcm9zX3N1YmRldmljZXNbaV0ubnVtX2NlbGxzKTsKKwkJCWlmIChyZXR2YWwpCisJCQkJZGV2X2VycihlYy0+ZGV2LAorCQkJCQkiZmFpbGVkIHRvIGFkZCAlcyBzdWJkZXZpY2U6ICVkXG4iLAorCQkJCQljcm9zX3N1YmRldmljZXNbaV0ubWZkX2NlbGxzLT5uYW1lLAorCQkJCQlyZXR2YWwpOworCQl9CiAJfQogCi0JLyogQ2hlY2sgd2hldGhlciB0aGlzIEVDIGluc3RhbmNlIGhhcyBSVEMgaG9zdCBjb21tYW5kIHN1cHBvcnQgKi8KLQlpZiAoY3Jvc19lY19jaGVja19mZWF0dXJlcyhlYywgRUNfRkVBVFVSRV9SVEMpKSB7Ci0JCXJldHZhbCA9IG1mZF9hZGRfZGV2aWNlcyhlYy0+ZGV2LCBQTEFURk9STV9ERVZJRF9BVVRPLAotCQkJCQkgY3Jvc19lY19ydGNfY2VsbHMsCi0JCQkJCSBBUlJBWV9TSVpFKGNyb3NfZWNfcnRjX2NlbGxzKSwKLQkJCQkJIE5VTEwsIDAsIE5VTEwpOwotCQlpZiAocmV0dmFsKQotCQkJZGV2X2VycihlYy0+ZGV2LAotCQkJCSJmYWlsZWQgdG8gYWRkIGNyb3MtZWMtcnRjIGRldmljZTogJWRcbiIsCi0JCQkJcmV0dmFsKTsKLQl9Ci0KLQkvKiBDaGVjayB3aGV0aGVyIHRoaXMgRUMgaW5zdGFuY2UgaGFzIHRoZSBQRCBjaGFyZ2UgbWFuYWdlciAqLwotCWlmIChjcm9zX2VjX2NoZWNrX2ZlYXR1cmVzKGVjLCBFQ19GRUFUVVJFX1VTQl9QRCkpIHsKLQkJcmV0dmFsID0gbWZkX2FkZF9kZXZpY2VzKGVjLT5kZXYsIFBMQVRGT1JNX0RFVklEX0FVVE8sCi0JCQkJCSBjcm9zX3VzYnBkX2NoYXJnZXJfY2VsbHMsCi0JCQkJCSBBUlJBWV9TSVpFKGNyb3NfdXNicGRfY2hhcmdlcl9jZWxscyksCi0JCQkJCSBOVUxMLCAwLCBOVUxMKTsKLQkJaWYgKHJldHZhbCkKLQkJCWRldl9lcnIoZWMtPmRldiwKLQkJCQkiZmFpbGVkIHRvIGFkZCBjcm9zLXVzYnBkLWNoYXJnZXIgZGV2aWNlOiAlZFxuIiwKLQkJCQlyZXR2YWwpOwotCX0KLQotCS8qIFdlIGNhbiBub3cgYWRkIHRoZSBzeXNmcyBjbGFzcywgd2Uga25vdyB3aGljaCBwYXJhbWV0ZXIgdG8gc2hvdyAqLwotCXJldHZhbCA9IGNkZXZfZGV2aWNlX2FkZCgmZWMtPmNkZXYsICZlYy0+Y2xhc3NfZGV2KTsKLQlpZiAocmV0dmFsKSB7Ci0JCWRldl9lcnIoZGV2LCAiY2Rldl9kZXZpY2VfYWRkIGZhaWxlZCA9PiAlZFxuIiwgcmV0dmFsKTsKLQkJZ290byBmYWlsZWQ7Ci0JfQotCi0JcmV0dmFsID0gbWZkX2FkZF9kZXZpY2VzKGVjLT5kZXYsIFBMQVRGT1JNX0RFVklEX0FVVE8sCi0JCQkJIGNyb3NfZWNfcGxhdGZvcm1fY2VsbHMsCi0JCQkJIEFSUkFZX1NJWkUoY3Jvc19lY19wbGF0Zm9ybV9jZWxscyksCi0JCQkJIE5VTEwsIDAsIE5VTEwpOworCS8qCisJICogVGhlIGZvbGxvd2luZyBzdWJkZXZpY2VzIGNhbm5vdCBiZSBkZXRlY3RlZCBieSBzZW5kaW5nIHRoZQorCSAqIEVDX0ZFQVRVUkVfR0VUX0NNRCB0byB0aGUgRW1iZWRkZWQgQ29udHJvbGxlciBkZXZpY2UuCisJICovCisJcmV0dmFsID0gbWZkX2FkZF9ob3RwbHVnX2RldmljZXMoZWMtPmRldiwgY3Jvc19lY19wbGF0Zm9ybV9jZWxscywKKwkJCQkJIEFSUkFZX1NJWkUoY3Jvc19lY19wbGF0Zm9ybV9jZWxscykpOwogCWlmIChyZXR2YWwpCiAJCWRldl93YXJuKGVjLT5kZXYsCiAJCQkgImZhaWxlZCB0byBhZGQgY3Jvcy1lYyBwbGF0Zm9ybSBkZXZpY2VzOiAlZFxuIiwKQEAgLTYwMSwxMCArNDI3LDggQEAgc3RhdGljIGludCBlY19kZXZpY2VfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkvKiBDaGVjayB3aGV0aGVyIHRoaXMgRUMgaW5zdGFuY2UgaGFzIGEgVkJDIE5WUkFNICovCiAJbm9kZSA9IGVjLT5lY19kZXYtPmRldi0+b2Zfbm9kZTsKIAlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUsICJnb29nbGUsaGFzLXZiYy1udnJhbSIpKSB7Ci0JCXJldHZhbCA9IG1mZF9hZGRfZGV2aWNlcyhlYy0+ZGV2LCBQTEFURk9STV9ERVZJRF9BVVRPLAotCQkJCQkgY3Jvc19lY192YmNfY2VsbHMsCi0JCQkJCSBBUlJBWV9TSVpFKGNyb3NfZWNfdmJjX2NlbGxzKSwKLQkJCQkJIE5VTEwsIDAsIE5VTEwpOworCQlyZXR2YWwgPSBtZmRfYWRkX2hvdHBsdWdfZGV2aWNlcyhlYy0+ZGV2LCBjcm9zX2VjX3ZiY19jZWxscywKKwkJCQkJCUFSUkFZX1NJWkUoY3Jvc19lY192YmNfY2VsbHMpKTsKIAkJaWYgKHJldHZhbCkKIAkJCWRldl93YXJuKGVjLT5kZXYsICJmYWlsZWQgdG8gYWRkIFZCQyBkZXZpY2VzOiAlZFxuIiwKIAkJCQkgcmV0dmFsKTsKQEAgLTYyMiw3ICs0NDYsNiBAQCBzdGF0aWMgaW50IGVjX2RldmljZV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjID0gZGV2X2dldF9kcnZkYXRhKCZwZGV2LT5kZXYpOwogCiAJbWZkX3JlbW92ZV9kZXZpY2VzKGVjLT5kZXYpOwotCWNkZXZfZGVsKCZlYy0+Y2Rldik7CiAJZGV2aWNlX3VucmVnaXN0ZXIoJmVjLT5jbGFzc19kZXYpOwogCXJldHVybiAwOwogfQpAQCAtNjQ1LDcgKzQ2OCw2IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGNyb3NfZWNfZGV2X2RyaXZlciA9IHsKIHN0YXRpYyBpbnQgX19pbml0IGNyb3NfZWNfZGV2X2luaXQodm9pZCkKIHsKIAlpbnQgcmV0OwotCWRldl90IGRldiA9IDA7CiAKIAlyZXQgID0gY2xhc3NfcmVnaXN0ZXIoJmNyb3NfY2xhc3MpOwogCWlmIChyZXQpIHsKQEAgLTY1MywxNCArNDc1LDYgQEAgc3RhdGljIGludCBfX2luaXQgY3Jvc19lY19kZXZfaW5pdCh2b2lkKQogCQlyZXR1cm4gcmV0OwogCX0KIAotCS8qIEdldCBhIHJhbmdlIG9mIG1pbm9yIG51bWJlcnMgKHN0YXJ0aW5nIHdpdGggMCkgdG8gd29yayB3aXRoICovCi0JcmV0ID0gYWxsb2NfY2hyZGV2X3JlZ2lvbigmZGV2LCAwLCBDUk9TX01BWF9ERVYsIENST1NfRUNfREVWX05BTUUpOwotCWlmIChyZXQgPCAwKSB7Ci0JCXByX2VycihDUk9TX0VDX0RFVl9OQU1FICI6IGFsbG9jX2NocmRldl9yZWdpb24oKSBmYWlsZWRcbiIpOwotCQlnb3RvIGZhaWxlZF9jaHJkZXZyZWc7Ci0JfQotCWVjX21ham9yID0gTUFKT1IoZGV2KTsKLQogCS8qIFJlZ2lzdGVyIHRoZSBkcml2ZXIgKi8KIAlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmNyb3NfZWNfZGV2X2RyaXZlcik7CiAJaWYgKHJldCA8IDApIHsKQEAgLTY3MCw4ICs0ODQsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjcm9zX2VjX2Rldl9pbml0KHZvaWQpCiAJcmV0dXJuIDA7CiAKIGZhaWxlZF9kZXZyZWc6Ci0JdW5yZWdpc3Rlcl9jaHJkZXZfcmVnaW9uKE1LREVWKGVjX21ham9yLCAwKSwgQ1JPU19NQVhfREVWKTsKLWZhaWxlZF9jaHJkZXZyZWc6CiAJY2xhc3NfdW5yZWdpc3RlcigmY3Jvc19jbGFzcyk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTY3OSw3ICs0OTEsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjcm9zX2VjX2Rldl9pbml0KHZvaWQpCiBzdGF0aWMgdm9pZCBfX2V4aXQgY3Jvc19lY19kZXZfZXhpdCh2b2lkKQogewogCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZjcm9zX2VjX2Rldl9kcml2ZXIpOwotCXVucmVnaXN0ZXJfY2hyZGV2KGVjX21ham9yLCBDUk9TX0VDX0RFVl9OQU1FKTsKIAljbGFzc191bnJlZ2lzdGVyKCZjcm9zX2NsYXNzKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvY3Jvc19lY19kZXYuaCBiL2RyaXZlcnMvbWZkL2Nyb3NfZWNfZGV2LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhNDJjM2UuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9tZmQvY3Jvc19lY19kZXYuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCi0vKgotICogY3Jvc19lY19kZXYgLSBleHBvc2UgdGhlIENocm9tZSBPUyBFbWJlZGRlZCBDb250cm9sbGVyIHRvIHVzZXJzcGFjZQotICoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBHb29nbGUsIEluYy4KLSAqLwotCi0jaWZuZGVmIF9DUk9TX0VDX0RFVl9IXwotI2RlZmluZSBfQ1JPU19FQ19ERVZfSF8KLQotI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgotCi0jZGVmaW5lIENST1NfRUNfREVWX1ZFUlNJT04gIjEuMC4wIgotCi0vKioKLSAqIHN0cnVjdCBjcm9zX2VjX3JlYWRtZW0gLSBTdHJ1Y3QgdXNlZCB0byByZWFkIG1hcHBlZCBtZW1vcnkuCi0gKiBAb2Zmc2V0OiBXaXRoaW4gRUNfTFBDX0FERFJfTUVNTUFQIHJlZ2lvbi4KLSAqIEBieXRlczogTnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQuIFplcm8gbWVhbnMgInJlYWQgYSBzdHJpbmciIChpbmNsdWRpbmcgJ1wwJykKLSAqICAgICAgICAgQXQgbW9zdCBvbmx5IEVDX01FTU1BUF9TSVpFIGJ5dGVzIGNhbiBiZSByZWFkLgotICogQGJ1ZmZlcjogV2hlcmUgdG8gc3RvcmUgdGhlIHJlc3VsdC4gVGhlIGlvY3RsIHJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcwotICogICAgICAgICByZWFkIG9yIG5lZ2F0aXZlIG9uIGVycm9yLgotICovCi1zdHJ1Y3QgY3Jvc19lY19yZWFkbWVtIHsKLQl1aW50MzJfdCBvZmZzZXQ7Ci0JdWludDMyX3QgYnl0ZXM7Ci0JdWludDhfdCBidWZmZXJbRUNfTUVNTUFQX1NJWkVdOwotfTsKLQotI2RlZmluZSBDUk9TX0VDX0RFVl9JT0MgICAgICAgMHhFQwotI2RlZmluZSBDUk9TX0VDX0RFVl9JT0NYQ01EICAgX0lPV1IoQ1JPU19FQ19ERVZfSU9DLCAwLCBzdHJ1Y3QgY3Jvc19lY19jb21tYW5kKQotI2RlZmluZSBDUk9TX0VDX0RFVl9JT0NSRE1FTSAgX0lPV1IoQ1JPU19FQ19ERVZfSU9DLCAxLCBzdHJ1Y3QgY3Jvc19lY19yZWFkbWVtKQotCi0jZW5kaWYgLyogX0NST1NfRUNfREVWX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9kYTkxNTAtY29yZS5jIGIvZHJpdmVycy9tZmQvZGE5MTUwLWNvcmUuYwppbmRleCAxMzAzMzA2Li43ZjBhYTFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9kYTkxNTAtY29yZS5jCisrKyBiL2RyaXZlcnMvbWZkL2RhOTE1MC1jb3JlLmMKQEAgLTQyMCwxMCArNDIwLDEwIEBAIHN0YXRpYyBpbnQgZGE5MTUwX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJcWlmX2FkZHIgPSBkYTkxNTBfcmVnX3JlYWQoZGE5MTUwLCBEQTkxNTBfQ09SRTJXSVJFX0NUUkxfQSk7CiAJcWlmX2FkZHIgPSAocWlmX2FkZHIgJiBEQTkxNTBfQ09SRV9CQVNFX0FERFJfTUFTSykgPj4gMTsKIAlxaWZfYWRkciB8PSBEQTkxNTBfUUlGX0kyQ19BRERSX0xTQjsKLQlkYTkxNTAtPmNvcmVfcWlmID0gaTJjX25ld19kdW1teShjbGllbnQtPmFkYXB0ZXIsIHFpZl9hZGRyKTsKLQlpZiAoIWRhOTE1MC0+Y29yZV9xaWYpIHsKKwlkYTkxNTAtPmNvcmVfcWlmID0gaTJjX25ld19kdW1teV9kZXZpY2UoY2xpZW50LT5hZGFwdGVyLCBxaWZfYWRkcik7CisJaWYgKElTX0VSUihkYTkxNTAtPmNvcmVfcWlmKSkgewogCQlkZXZfZXJyKGRhOTE1MC0+ZGV2LCAiRmFpbGVkIHRvIGF0dGFjaCBRSUYgY2xpZW50XG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCXJldHVybiBQVFJfRVJSKGRhOTE1MC0+Y29yZV9xaWYpOwogCX0KIAogCWkyY19zZXRfY2xpZW50ZGF0YShkYTkxNTAtPmNvcmVfcWlmLCBkYTkxNTApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvZGF2aW5jaV92b2ljZWNvZGVjLmMgYi9kcml2ZXJzL21mZC9kYXZpbmNpX3ZvaWNlY29kZWMuYwppbmRleCAxM2NhNzIwLi5lNWM4YmM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9kYXZpbmNpX3ZvaWNlY29kZWMuYworKysgYi9kcml2ZXJzL21mZC9kYXZpbmNpX3ZvaWNlY29kZWMuYwpAQCAtMTksNyArMTksNiBAQAogI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgogCiAjaW5jbHVkZSA8bGludXgvbWZkL2RhdmluY2lfdm9pY2Vjb2RlYy5oPgotI2luY2x1ZGUgPG1hY2gvaGFyZHdhcmUuaD4KIAogc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGRhdmluY2lfdmNfcmVnbWFwID0gewogCS5yZWdfYml0cyA9IDMyLApAQCAtMzEsNiArMzAsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBkYXZpbmNpX3ZjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IGRhdmluY2lfdmMgKmRhdmluY2lfdmM7CiAJc3RydWN0IHJlc291cmNlICpyZXM7CiAJc3RydWN0IG1mZF9jZWxsICpjZWxsID0gTlVMTDsKKwlkbWFfYWRkcl90IGZpZm9fYmFzZTsKIAlpbnQgcmV0OwogCiAJZGF2aW5jaV92YyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LApAQCAtNDgsNiArNDgsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBkYXZpbmNpX3ZjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwogCisJZmlmb19iYXNlID0gKGRtYV9hZGRyX3QpcmVzLT5zdGFydDsKIAlkYXZpbmNpX3ZjLT5iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CiAJaWYgKElTX0VSUihkYXZpbmNpX3ZjLT5iYXNlKSkgewogCQlyZXQgPSBQVFJfRVJSKGRhdmluY2lfdmMtPmJhc2UpOwpAQCAtNzAsOCArNzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBkYXZpbmNpX3ZjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJfQogCiAJZGF2aW5jaV92Yy0+ZGF2aW5jaV92Y2lmLmRtYV90eF9jaGFubmVsID0gcmVzLT5zdGFydDsKLQlkYXZpbmNpX3ZjLT5kYXZpbmNpX3ZjaWYuZG1hX3R4X2FkZHIgPQotCQkoZG1hX2FkZHJfdCkoaW9fdjJwKGRhdmluY2lfdmMtPmJhc2UpICsgREFWSU5DSV9WQ19XRklGTyk7CisJZGF2aW5jaV92Yy0+ZGF2aW5jaV92Y2lmLmRtYV90eF9hZGRyID0gZmlmb19iYXNlICsgREFWSU5DSV9WQ19XRklGTzsKIAogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX0RNQSwgMSk7CiAJaWYgKCFyZXMpIHsKQEAgLTgxLDggKzgxLDcgQEAgc3RhdGljIGludCBfX2luaXQgZGF2aW5jaV92Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCWRhdmluY2lfdmMtPmRhdmluY2lfdmNpZi5kbWFfcnhfY2hhbm5lbCA9IHJlcy0+c3RhcnQ7Ci0JZGF2aW5jaV92Yy0+ZGF2aW5jaV92Y2lmLmRtYV9yeF9hZGRyID0KLQkJKGRtYV9hZGRyX3QpKGlvX3YycChkYXZpbmNpX3ZjLT5iYXNlKSArIERBVklOQ0lfVkNfUkZJRk8pOworCWRhdmluY2lfdmMtPmRhdmluY2lfdmNpZi5kbWFfcnhfYWRkciA9IGZpZm9fYmFzZSArIERBVklOQ0lfVkNfUkZJRk87CiAKIAlkYXZpbmNpX3ZjLT5kZXYgPSAmcGRldi0+ZGV2OwogCWRhdmluY2lfdmMtPnBkZXYgPSBwZGV2OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvZGI4NTAwLXByY211LmMgYi9kcml2ZXJzL21mZC9kYjg1MDAtcHJjbXUuYwppbmRleCA5MGUwZjIxLi4wZTAxOWNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9kYjg1MDAtcHJjbXUuYworKysgYi9kcml2ZXJzL21mZC9kYjg1MDAtcHJjbXUuYwpAQCAtMTY5NSwyMSArMTY5NSw0MSBAQCBzdGF0aWMgbG9uZyByb3VuZF9jbG9ja19yYXRlKHU4IGNsb2NrLCB1bnNpZ25lZCBsb25nIHJhdGUpCiAJcmV0dXJuIHJvdW5kZWRfcmF0ZTsKIH0KIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgYXJtc3NfZnJlcXNbXSA9IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGRiODUwMF9hcm1zc19mcmVxc1tdID0gewogCTIwMDAwMDAwMCwKIAk0MDAwMDAwMDAsCiAJODAwMDAwMDAwLAogCTk5ODQwMDAwMAogfTsKIAorLyogVGhlIERCODUyMCBoYXMgc2xpZ2h0bHkgaGlnaGVyIEFSTVNTIG1heCBmcmVxdWVuY3kgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGRiODUyMF9hcm1zc19mcmVxc1tdID0geworCTIwMDAwMDAwMCwKKwk0MDAwMDAwMDAsCisJODAwMDAwMDAwLAorCTExNTIwMDAwMDAKK307CisKKworCiBzdGF0aWMgbG9uZyByb3VuZF9hcm1zc19yYXRlKHVuc2lnbmVkIGxvbmcgcmF0ZSkKIHsKIAl1bnNpZ25lZCBsb25nIGZyZXEgPSAwOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgKmZyZXFzOworCWludCBuZnJlcXM7CiAJaW50IGk7CiAKKwlpZiAoZndfaW5mby52ZXJzaW9uLnByb2plY3QgPT0gUFJDTVVfRldfUFJPSkVDVF9VODUyMCkgeworCQlmcmVxcyA9IGRiODUyMF9hcm1zc19mcmVxczsKKwkJbmZyZXFzID0gQVJSQVlfU0laRShkYjg1MjBfYXJtc3NfZnJlcXMpOworCX0gZWxzZSB7CisJCWZyZXFzID0gZGI4NTAwX2FybXNzX2ZyZXFzOworCQluZnJlcXMgPSBBUlJBWV9TSVpFKGRiODUwMF9hcm1zc19mcmVxcyk7CisJfQorCiAJLyogRmluZCB0aGUgY29ycmVzcG9uZGluZyBhcm0gb3BwIGZyb20gdGhlIGNwdWZyZXEgdGFibGUuICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYXJtc3NfZnJlcXMpOyBpKyspIHsKLQkJZnJlcSA9IGFybXNzX2ZyZXFzW2ldOworCWZvciAoaSA9IDA7IGkgPCBuZnJlcXM7IGkrKykgeworCQlmcmVxID0gZnJlcXNbaV07CiAJCWlmIChyYXRlIDw9IGZyZXEpCiAJCQlicmVhazsKIAl9CkBAIC0xODU0LDExICsxODc0LDIxIEBAIHN0YXRpYyBpbnQgc2V0X2FybXNzX3JhdGUodW5zaWduZWQgbG9uZyByYXRlKQogewogCXVuc2lnbmVkIGxvbmcgZnJlcTsKIAl1OCBvcHBzW10gPSB7IEFSTV9FWFRDTEssIEFSTV81MF9PUFAsIEFSTV8xMDBfT1BQLCBBUk1fTUFYX09QUCB9OworCWNvbnN0IHVuc2lnbmVkIGxvbmcgKmZyZXFzOworCWludCBuZnJlcXM7CiAJaW50IGk7CiAKKwlpZiAoZndfaW5mby52ZXJzaW9uLnByb2plY3QgPT0gUFJDTVVfRldfUFJPSkVDVF9VODUyMCkgeworCQlmcmVxcyA9IGRiODUyMF9hcm1zc19mcmVxczsKKwkJbmZyZXFzID0gQVJSQVlfU0laRShkYjg1MjBfYXJtc3NfZnJlcXMpOworCX0gZWxzZSB7CisJCWZyZXFzID0gZGI4NTAwX2FybXNzX2ZyZXFzOworCQluZnJlcXMgPSBBUlJBWV9TSVpFKGRiODUwMF9hcm1zc19mcmVxcyk7CisJfQorCiAJLyogRmluZCB0aGUgY29ycmVzcG9uZGluZyBhcm0gb3BwIGZyb20gdGhlIGNwdWZyZXEgdGFibGUuICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYXJtc3NfZnJlcXMpOyBpKyspIHsKLQkJZnJlcSA9IGFybXNzX2ZyZXFzW2ldOworCWZvciAoaSA9IDA7IGkgPCBuZnJlcXM7IGkrKykgeworCQlmcmVxID0gZnJlcXNbaV07CiAJCWlmIChyYXRlID09IGZyZXEpCiAJCQlicmVhazsKIAl9CkBAIC0zMTMwLDEwICszMTYwLDggQEAgc3RhdGljIGludCBkYjg1MDBfcHJjbXVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl3cml0ZWwoQUxMX01CT1hfQklUUywgUFJDTV9BUk1fSVQxX0NMUik7CiAKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEgPD0gMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBwcmNtdSBpcnEgcHJvdmlkZWRcbiIpOworCWlmIChpcnEgPD0gMCkKIAkJcmV0dXJuIGlycTsKLQl9CiAKIAllcnIgPSByZXF1ZXN0X3RocmVhZGVkX2lycShpcnEsIHByY211X2lycV9oYW5kbGVyLAogCSAgICAgICAgcHJjbXVfaXJxX3RocmVhZF9mbiwgSVJRRl9OT19TVVNQRU5ELCAicHJjbXUiLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2V6eC1wY2FwLmMgYi9kcml2ZXJzL21mZC9lengtcGNhcC5jCmluZGV4IGY1MDVlM2UuLjcwZmExOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL2V6eC1wY2FwLmMKKysrIGIvZHJpdmVycy9tZmQvZXp4LXBjYXAuYwpAQCAtMzUsNyArMzUsNyBAQCBzdHJ1Y3QgcGNhcF9jaGlwIHsKIAogCS8qIElPICovCiAJdTMyIGJ1ZjsKLQlzdHJ1Y3QgbXV0ZXggaW9fbXV0ZXg7CisJc3BpbmxvY2tfdCBpb19sb2NrOwogCiAJLyogSVJRICovCiAJdW5zaWduZWQgaW50IGlycV9iYXNlOwpAQCAtNDgsNyArNDgsNyBAQCBzdHJ1Y3QgcGNhcF9jaGlwIHsKIAlzdHJ1Y3QgcGNhcF9hZGNfcmVxdWVzdCAqYWRjX3F1ZXVlW1BDQVBfQURDX01BWFFdOwogCXU4IGFkY19oZWFkOwogCXU4IGFkY190YWlsOwotCXN0cnVjdCBtdXRleCBhZGNfbXV0ZXg7CisJc3BpbmxvY2tfdCBhZGNfbG9jazsKIH07CiAKIC8qIElPICovCkBAIC03NiwxNCArNzYsMTUgQEAgc3RhdGljIGludCBlenhfcGNhcF9wdXRnZXQoc3RydWN0IHBjYXBfY2hpcCAqcGNhcCwgdTMyICpkYXRhKQogCiBpbnQgZXp4X3BjYXBfd3JpdGUoc3RydWN0IHBjYXBfY2hpcCAqcGNhcCwgdTggcmVnX251bSwgdTMyIHZhbHVlKQogeworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHJldDsKIAotCW11dGV4X2xvY2soJnBjYXAtPmlvX211dGV4KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcGNhcC0+aW9fbG9jaywgZmxhZ3MpOwogCXZhbHVlICY9IFBDQVBfUkVHSVNURVJfVkFMVUVfTUFTSzsKIAl2YWx1ZSB8PSBQQ0FQX1JFR0lTVEVSX1dSSVRFX09QX0JJVAogCQl8IChyZWdfbnVtIDw8IFBDQVBfUkVHSVNURVJfQUREUkVTU19TSElGVCk7CiAJcmV0ID0gZXp4X3BjYXBfcHV0Z2V0KHBjYXAsICZ2YWx1ZSk7Ci0JbXV0ZXhfdW5sb2NrKCZwY2FwLT5pb19tdXRleCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGNhcC0+aW9fbG9jaywgZmxhZ3MpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTkxLDE0ICs5MiwxNSBAQCBFWFBPUlRfU1lNQk9MX0dQTChlenhfcGNhcF93cml0ZSk7CiAKIGludCBlenhfcGNhcF9yZWFkKHN0cnVjdCBwY2FwX2NoaXAgKnBjYXAsIHU4IHJlZ19udW0sIHUzMiAqdmFsdWUpCiB7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcmV0OwogCi0JbXV0ZXhfbG9jaygmcGNhcC0+aW9fbXV0ZXgpOworCXNwaW5fbG9ja19pcnFzYXZlKCZwY2FwLT5pb19sb2NrLCBmbGFncyk7CiAJKnZhbHVlID0gUENBUF9SRUdJU1RFUl9SRUFEX09QX0JJVAogCQl8IChyZWdfbnVtIDw8IFBDQVBfUkVHSVNURVJfQUREUkVTU19TSElGVCk7CiAKIAlyZXQgPSBlenhfcGNhcF9wdXRnZXQocGNhcCwgdmFsdWUpOwotCW11dGV4X3VubG9jaygmcGNhcC0+aW9fbXV0ZXgpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBjYXAtPmlvX2xvY2ssIGZsYWdzKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xMDYsMTEgKzEwOCwxMiBAQCBFWFBPUlRfU1lNQk9MX0dQTChlenhfcGNhcF9yZWFkKTsKIAogaW50IGV6eF9wY2FwX3NldF9iaXRzKHN0cnVjdCBwY2FwX2NoaXAgKnBjYXAsIHU4IHJlZ19udW0sIHUzMiBtYXNrLCB1MzIgdmFsKQogeworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHJldDsKIAl1MzIgdG1wID0gUENBUF9SRUdJU1RFUl9SRUFEX09QX0JJVCB8CiAJCShyZWdfbnVtIDw8IFBDQVBfUkVHSVNURVJfQUREUkVTU19TSElGVCk7CiAKLQltdXRleF9sb2NrKCZwY2FwLT5pb19tdXRleCk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnBjYXAtPmlvX2xvY2ssIGZsYWdzKTsKIAlyZXQgPSBlenhfcGNhcF9wdXRnZXQocGNhcCwgJnRtcCk7CiAJaWYgKHJldCkKIAkJZ290byBvdXRfdW5sb2NrOwpAQCAtMTIxLDcgKzEyNCw3IEBAIGludCBlenhfcGNhcF9zZXRfYml0cyhzdHJ1Y3QgcGNhcF9jaGlwICpwY2FwLCB1OCByZWdfbnVtLCB1MzIgbWFzaywgdTMyIHZhbCkKIAogCXJldCA9IGV6eF9wY2FwX3B1dGdldChwY2FwLCAmdG1wKTsKIG91dF91bmxvY2s6Ci0JbXV0ZXhfdW5sb2NrKCZwY2FwLT5pb19tdXRleCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGNhcC0+aW9fbG9jaywgZmxhZ3MpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTIxMiwxNCArMjE1LDE1IEBAIHN0YXRpYyB2b2lkIHBjYXBfaXJxX2hhbmRsZXIoc3RydWN0IGlycV9kZXNjICpkZXNjKQogLyogQURDICovCiB2b2lkIHBjYXBfc2V0X3RzX2JpdHMoc3RydWN0IHBjYXBfY2hpcCAqcGNhcCwgdTMyIGJpdHMpCiB7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1MzIgdG1wOwogCi0JbXV0ZXhfbG9jaygmcGNhcC0+YWRjX211dGV4KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcGNhcC0+YWRjX2xvY2ssIGZsYWdzKTsKIAllenhfcGNhcF9yZWFkKHBjYXAsIFBDQVBfUkVHX0FEQywgJnRtcCk7CiAJdG1wICY9IH4oUENBUF9BRENfVFNfTV9NQVNLIHwgUENBUF9BRENfVFNfUkVGX0xPV1BXUik7CiAJdG1wIHw9IGJpdHMgJiAoUENBUF9BRENfVFNfTV9NQVNLIHwgUENBUF9BRENfVFNfUkVGX0xPV1BXUik7CiAJZXp4X3BjYXBfd3JpdGUocGNhcCwgUENBUF9SRUdfQURDLCB0bXApOwotCW11dGV4X3VubG9jaygmcGNhcC0+YWRjX211dGV4KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwY2FwLT5hZGNfbG9jaywgZmxhZ3MpOwogfQogRVhQT1JUX1NZTUJPTF9HUEwocGNhcF9zZXRfdHNfYml0cyk7CiAKQEAgLTIzNCwxNSArMjM4LDE2IEBAIHN0YXRpYyB2b2lkIHBjYXBfZGlzYWJsZV9hZGMoc3RydWN0IHBjYXBfY2hpcCAqcGNhcCkKIAogc3RhdGljIHZvaWQgcGNhcF9hZGNfdHJpZ2dlcihzdHJ1Y3QgcGNhcF9jaGlwICpwY2FwKQogeworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdTMyIHRtcDsKIAl1OCBoZWFkOwogCi0JbXV0ZXhfbG9jaygmcGNhcC0+YWRjX211dGV4KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcGNhcC0+YWRjX2xvY2ssIGZsYWdzKTsKIAloZWFkID0gcGNhcC0+YWRjX2hlYWQ7CiAJaWYgKCFwY2FwLT5hZGNfcXVldWVbaGVhZF0pIHsKIAkJLyogcXVldWUgaXMgZW1wdHksIHNhdmUgcG93ZXIgKi8KIAkJcGNhcF9kaXNhYmxlX2FkYyhwY2FwKTsKLQkJbXV0ZXhfdW5sb2NrKCZwY2FwLT5hZGNfbXV0ZXgpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwY2FwLT5hZGNfbG9jaywgZmxhZ3MpOwogCQlyZXR1cm47CiAJfQogCS8qIHN0YXJ0IGNvbnZlcnNpb24gb24gcmVxdWVzdGVkIGJhbmssIHNhdmUgVFNfTSBiaXRzICovCkBAIC0yNTQsNyArMjU5LDcgQEAgc3RhdGljIHZvaWQgcGNhcF9hZGNfdHJpZ2dlcihzdHJ1Y3QgcGNhcF9jaGlwICpwY2FwKQogCQl0bXAgfD0gUENBUF9BRENfQURfU0VMMTsKIAogCWV6eF9wY2FwX3dyaXRlKHBjYXAsIFBDQVBfUkVHX0FEQywgdG1wKTsKLQltdXRleF91bmxvY2soJnBjYXAtPmFkY19tdXRleCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGNhcC0+YWRjX2xvY2ssIGZsYWdzKTsKIAllenhfcGNhcF93cml0ZShwY2FwLCBQQ0FQX1JFR19BRFIsIFBDQVBfQURSX0FTQyk7CiB9CiAKQEAgLTI2NSwxMSArMjcwLDExIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBwY2FwX2FkY19pcnEoaW50IGlycSwgdm9pZCAqX3BjYXApCiAJdTE2IHJlc1syXTsKIAl1MzIgdG1wOwogCi0JbXV0ZXhfbG9jaygmcGNhcC0+YWRjX211dGV4KTsKKwlzcGluX2xvY2soJnBjYXAtPmFkY19sb2NrKTsKIAlyZXEgPSBwY2FwLT5hZGNfcXVldWVbcGNhcC0+YWRjX2hlYWRdOwogCiAJaWYgKFdBUk4oIXJlcSwgImFkYyBpcnEgd2l0aG91dCBwZW5kaW5nIHJlcXVlc3RcbiIpKSB7Ci0JCW11dGV4X3VubG9jaygmcGNhcC0+YWRjX211dGV4KTsKKwkJc3Bpbl91bmxvY2soJnBjYXAtPmFkY19sb2NrKTsKIAkJcmV0dXJuIElSUV9IQU5ETEVEOwogCX0KIApAQCAtMjg1LDcgKzI5MCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBwY2FwX2FkY19pcnEoaW50IGlycSwgdm9pZCAqX3BjYXApCiAKIAlwY2FwLT5hZGNfcXVldWVbcGNhcC0+YWRjX2hlYWRdID0gTlVMTDsKIAlwY2FwLT5hZGNfaGVhZCA9IChwY2FwLT5hZGNfaGVhZCArIDEpICYgKFBDQVBfQURDX01BWFEgLSAxKTsKLQltdXRleF91bmxvY2soJnBjYXAtPmFkY19tdXRleCk7CisJc3Bpbl91bmxvY2soJnBjYXAtPmFkY19sb2NrKTsKIAogCS8qIHBhc3MgdGhlIHJlc3VsdHMgYW5kIHJlbGVhc2UgbWVtb3J5ICovCiAJcmVxLT5jYWxsYmFjayhyZXEtPmRhdGEsIHJlcyk7CkBAIC0zMDEsNiArMzA2LDcgQEAgaW50IHBjYXBfYWRjX2FzeW5jKHN0cnVjdCBwY2FwX2NoaXAgKnBjYXAsIHU4IGJhbmssIHUzMiBmbGFncywgdTggY2hbXSwKIAkJCQkJCXZvaWQgKmNhbGxiYWNrLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBwY2FwX2FkY19yZXF1ZXN0ICpyZXE7CisJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CiAKIAkvKiBUaGlzIHdpbGwgYmUgZnJlZWQgYWZ0ZXIgd2UgaGF2ZSBhIHJlc3VsdCAqLwogCXJlcSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBwY2FwX2FkY19yZXF1ZXN0KSwgR0ZQX0tFUk5FTCk7CkBAIC0zMTQsMTUgKzMyMCwxNSBAQCBpbnQgcGNhcF9hZGNfYXN5bmMoc3RydWN0IHBjYXBfY2hpcCAqcGNhcCwgdTggYmFuaywgdTMyIGZsYWdzLCB1OCBjaFtdLAogCXJlcS0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKIAlyZXEtPmRhdGEgPSBkYXRhOwogCi0JbXV0ZXhfbG9jaygmcGNhcC0+YWRjX211dGV4KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcGNhcC0+YWRjX2xvY2ssIGlycV9mbGFncyk7CiAJaWYgKHBjYXAtPmFkY19xdWV1ZVtwY2FwLT5hZGNfdGFpbF0pIHsKLQkJbXV0ZXhfdW5sb2NrKCZwY2FwLT5hZGNfbXV0ZXgpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwY2FwLT5hZGNfbG9jaywgaXJxX2ZsYWdzKTsKIAkJa2ZyZWUocmVxKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAJcGNhcC0+YWRjX3F1ZXVlW3BjYXAtPmFkY190YWlsXSA9IHJlcTsKIAlwY2FwLT5hZGNfdGFpbCA9IChwY2FwLT5hZGNfdGFpbCArIDEpICYgKFBDQVBfQURDX01BWFEgLSAxKTsKLQltdXRleF91bmxvY2soJnBjYXAtPmFkY19tdXRleCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGNhcC0+YWRjX2xvY2ssIGlycV9mbGFncyk7CiAKIAkvKiBzdGFydCBjb252ZXJzaW9uICovCiAJcGNhcF9hZGNfdHJpZ2dlcihwY2FwKTsKQEAgLTM4OSwxNiArMzk1LDE3IEBAIHN0YXRpYyBpbnQgcGNhcF9hZGRfc3ViZGV2KHN0cnVjdCBwY2FwX2NoaXAgKnBjYXAsCiBzdGF0aWMgaW50IGV6eF9wY2FwX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogewogCXN0cnVjdCBwY2FwX2NoaXAgKnBjYXAgPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBpOwogCiAJLyogcmVtb3ZlIGFsbCByZWdpc3RlcmVkIHN1YmRldnMgKi8KIAlkZXZpY2VfZm9yX2VhY2hfY2hpbGQoJnNwaS0+ZGV2LCBOVUxMLCBwY2FwX3JlbW92ZV9zdWJkZXYpOwogCiAJLyogY2xlYW51cCBBREMgKi8KLQltdXRleF9sb2NrKCZwY2FwLT5hZGNfbXV0ZXgpOworCXNwaW5fbG9ja19pcnFzYXZlKCZwY2FwLT5hZGNfbG9jaywgZmxhZ3MpOwogCWZvciAoaSA9IDA7IGkgPCBQQ0FQX0FEQ19NQVhROyBpKyspCiAJCWtmcmVlKHBjYXAtPmFkY19xdWV1ZVtpXSk7Ci0JbXV0ZXhfdW5sb2NrKCZwY2FwLT5hZGNfbXV0ZXgpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBjYXAtPmFkY19sb2NrLCBmbGFncyk7CiAKIAkvKiBjbGVhbnVwIGlycWNoaXAgKi8KIAlmb3IgKGkgPSBwY2FwLT5pcnFfYmFzZTsgaSA8IChwY2FwLT5pcnFfYmFzZSArIFBDQVBfTklSUVMpOyBpKyspCkBAIC00MjYsOCArNDMzLDggQEAgc3RhdGljIGludCBlenhfcGNhcF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCQlnb3RvIHJldDsKIAl9CiAKLQltdXRleF9pbml0KCZwY2FwLT5pb19tdXRleCk7Ci0JbXV0ZXhfaW5pdCgmcGNhcC0+YWRjX211dGV4KTsKKwlzcGluX2xvY2tfaW5pdCgmcGNhcC0+aW9fbG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJnBjYXAtPmFkY19sb2NrKTsKIAlJTklUX1dPUksoJnBjYXAtPmlzcl93b3JrLCBwY2FwX2lzcl93b3JrKTsKIAlJTklUX1dPUksoJnBjYXAtPm1zcl93b3JrLCBwY2FwX21zcl93b3JrKTsKIAlzcGlfc2V0X2RydmRhdGEoc3BpLCBwY2FwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2ZzbC1pbXgyNS10c2FkYy5jIGIvZHJpdmVycy9tZmQvZnNsLWlteDI1LXRzYWRjLmMKaW5kZXggMjA3OTFjYS4uYTAxNmIzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvZnNsLWlteDI1LXRzYWRjLmMKKysrIGIvZHJpdmVycy9tZmQvZnNsLWlteDI1LXRzYWRjLmMKQEAgLTY5LDEwICs2OSw4IEBAIHN0YXRpYyBpbnQgbXgyNV90c2FkY19zZXR1cF9pcnEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAlpbnQgaXJxOwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDw9IDApIHsKLQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IGlycVxuIik7CisJaWYgKGlycSA8PSAwKQogCQlyZXR1cm4gaXJxOwotCX0KIAogCXRzYWRjLT5kb21haW4gPSBpcnFfZG9tYWluX2FkZF9zaW1wbGUobnAsIDIsIDAsICZteDI1X3RzYWRjX2RvbWFpbl9vcHMsCiAJCQkJCSAgICAgIHRzYWRjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2h0Yy1pMmNwbGQuYyBiL2RyaXZlcnMvbWZkL2h0Yy1pMmNwbGQuYwppbmRleCAzNzA1MTlhLi44YWQ2NzY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9odGMtaTJjcGxkLmMKKysrIGIvZHJpdmVycy9tZmQvaHRjLWkyY3BsZC5jCkBAIC0zODUsOCArMzg1LDcgQEAgc3RhdGljIHZvaWQgaHRjcGxkX3VucmVnaXN0ZXJfY2hpcF9pMmMoCiAJaHRjcGxkID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJY2hpcCA9ICZodGNwbGQtPmNoaXBbY2hpcF9pbmRleF07CiAKLQlpZiAoY2hpcC0+Y2xpZW50KQotCQlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoY2hpcC0+Y2xpZW50KTsKKwlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoY2hpcC0+Y2xpZW50KTsKIH0KIAogc3RhdGljIGludCBodGNwbGRfcmVnaXN0ZXJfY2hpcF9ncGlvKApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvaW50ZWwtbHBzcy1hY3BpLmMgYi9kcml2ZXJzL21mZC9pbnRlbC1scHNzLWFjcGkuYwppbmRleCA2MWZmYjhiLi5jOGZlMzM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9pbnRlbC1scHNzLWFjcGkuYworKysgYi9kcml2ZXJzL21mZC9pbnRlbC1scHNzLWFjcGkuYwpAQCAtMTgsNiArMTgsMTAgQEAKIAogI2luY2x1ZGUgImludGVsLWxwc3MuaCIKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9scHNzX3BsYXRmb3JtX2luZm8gc3B0X2luZm8gPSB7CisJLmNsa19yYXRlID0gMTIwMDAwMDAwLAorfTsKKwogc3RhdGljIHN0cnVjdCBwcm9wZXJ0eV9lbnRyeSBzcHRfaTJjX3Byb3BlcnRpZXNbXSA9IHsKIAlQUk9QRVJUWV9FTlRSWV9VMzIoImkyYy1zZGEtaG9sZC10aW1lLW5zIiwgMjMwKSwKIAl7IH0sCkBAIC0yOCw2ICszMiwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2xwc3NfcGxhdGZvcm1faW5mbyBzcHRfaTJjX2luZm8gPSB7CiAJLnByb3BlcnRpZXMgPSBzcHRfaTJjX3Byb3BlcnRpZXMsCiB9OwogCitzdGF0aWMgc3RydWN0IHByb3BlcnR5X2VudHJ5IHVhcnRfcHJvcGVydGllc1tdID0geworCVBST1BFUlRZX0VOVFJZX1UzMigicmVnLWlvLXdpZHRoIiwgNCksCisJUFJPUEVSVFlfRU5UUllfVTMyKCJyZWctc2hpZnQiLCAyKSwKKwlQUk9QRVJUWV9FTlRSWV9CT09MKCJzbnBzLHVhcnQtMTY1NTAtY29tcGF0aWJsZSIpLAorCXsgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfbHBzc19wbGF0Zm9ybV9pbmZvIHNwdF91YXJ0X2luZm8gPSB7CisJLmNsa19yYXRlID0gMTIwMDAwMDAwLAorCS5jbGtfY29uX2lkID0gImJhdWRjbGsiLAorCS5wcm9wZXJ0aWVzID0gdWFydF9wcm9wZXJ0aWVzLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9scHNzX3BsYXRmb3JtX2luZm8gYnh0X2luZm8gPSB7CiAJLmNsa19yYXRlID0gMTAwMDAwMDAwLAogfTsKQEAgLTU4LDggKzc1LDE3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfbHBzc19wbGF0Zm9ybV9pbmZvIGFwbF9pMmNfaW5mbyA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCBpbnRlbF9scHNzX2FjcGlfaWRzW10gPSB7CiAJLyogU1BUICovCisJeyAiSU5UMzQ0MCIsIChrZXJuZWxfdWxvbmdfdCkmc3B0X2luZm8gfSwKKwl7ICJJTlQzNDQxIiwgKGtlcm5lbF91bG9uZ190KSZzcHRfaW5mbyB9LAorCXsgIklOVDM0NDIiLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pMmNfaW5mbyB9LAorCXsgIklOVDM0NDMiLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pMmNfaW5mbyB9LAorCXsgIklOVDM0NDQiLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pMmNfaW5mbyB9LAorCXsgIklOVDM0NDUiLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pMmNfaW5mbyB9LAogCXsgIklOVDM0NDYiLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pMmNfaW5mbyB9LAogCXsgIklOVDM0NDciLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pMmNfaW5mbyB9LAorCXsgIklOVDM0NDgiLCAoa2VybmVsX3Vsb25nX3QpJnNwdF91YXJ0X2luZm8gfSwKKwl7ICJJTlQzNDQ5IiwgKGtlcm5lbF91bG9uZ190KSZzcHRfdWFydF9pbmZvIH0sCisJeyAiSU5UMzQ0QSIsIChrZXJuZWxfdWxvbmdfdCkmc3B0X3VhcnRfaW5mbyB9LAogCS8qIEJYVCAqLwogCXsgIjgwODYwQUFDIiwgKGtlcm5lbF91bG9uZ190KSZieHRfaTJjX2luZm8gfSwKIAl7ICI4MDg2MEFCQyIsIChrZXJuZWxfdWxvbmdfdCkmYnh0X2luZm8gfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2ludGVsLWxwc3MtcGNpLmMgYi9kcml2ZXJzL21mZC9pbnRlbC1scHNzLXBjaS5jCmluZGV4IGFkZTZlMWMuLjkzNTVkYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL2ludGVsLWxwc3MtcGNpLmMKKysrIGIvZHJpdmVycy9tZmQvaW50ZWwtbHBzcy1wY2kuYwpAQCAtMzUsNiArMzUsOCBAQCBzdGF0aWMgaW50IGludGVsX2xwc3NfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCWluZm8tPm1lbSA9ICZwZGV2LT5yZXNvdXJjZVswXTsKIAlpbmZvLT5pcnEgPSBwZGV2LT5pcnE7CiAKKwlwZGV2LT5kM2NvbGRfZGVsYXkgPSAwOworCiAJLyogUHJvYmFibHkgaXQgaXMgZW5vdWdoIHRvIHNldCB0aGlzIGZvciBpRE1BIGNhcGFibGUgZGV2aWNlcyBvbmx5ICovCiAJcGNpX3NldF9tYXN0ZXIocGRldik7CiAJcGNpX3RyeV9zZXRfbXdpKHBkZXYpOwpAQCAtMjU2LDYgKzI1OCwyOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaW50ZWxfbHBzc19wY2lfaWRzW10gPSB7CiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg5ZGVhKSwgKGtlcm5lbF91bG9uZ190KSZjbmxfaTJjX2luZm8gfSwKIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDlkZWIpLCAoa2VybmVsX3Vsb25nX3QpJmNubF9pMmNfaW5mbyB9LAogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWRmYiksIChrZXJuZWxfdWxvbmdfdCkmc3B0X2luZm8gfSwKKwkvKiBUR0wtTFAgKi8KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweGEwYTgpLCAoa2VybmVsX3Vsb25nX3QpJmJ4dF91YXJ0X2luZm8gfSwKKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweGEwYTkpLCAoa2VybmVsX3Vsb25nX3QpJmJ4dF91YXJ0X2luZm8gfSwKKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweGEwYWEpLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pbmZvIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMGFiKSwgKGtlcm5lbF91bG9uZ190KSZzcHRfaW5mbyB9LAorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTBjNSksIChrZXJuZWxfdWxvbmdfdCkmc3B0X2kyY19pbmZvIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMGM2KSwgKGtlcm5lbF91bG9uZ190KSZzcHRfaTJjX2luZm8gfSwKKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweGEwYzcpLCAoa2VybmVsX3Vsb25nX3QpJmJ4dF91YXJ0X2luZm8gfSwKKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweGEwZDgpLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pMmNfaW5mbyB9LAorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTBkOSksIChrZXJuZWxfdWxvbmdfdCkmc3B0X2kyY19pbmZvIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMGRhKSwgKGtlcm5lbF91bG9uZ190KSZieHRfdWFydF9pbmZvIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMGRiKSwgKGtlcm5lbF91bG9uZ190KSZieHRfdWFydF9pbmZvIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMGRjKSwgKGtlcm5lbF91bG9uZ190KSZieHRfdWFydF9pbmZvIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMGRkKSwgKGtlcm5lbF91bG9uZ190KSZieHRfdWFydF9pbmZvIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMGRlKSwgKGtlcm5lbF91bG9uZ190KSZzcHRfaW5mbyB9LAorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTBkZiksIChrZXJuZWxfdWxvbmdfdCkmc3B0X2luZm8gfSwKKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweGEwZTgpLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pMmNfaW5mbyB9LAorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTBlOSksIChrZXJuZWxfdWxvbmdfdCkmc3B0X2kyY19pbmZvIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMGVhKSwgKGtlcm5lbF91bG9uZ190KSZzcHRfaTJjX2luZm8gfSwKKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweGEwZWIpLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pMmNfaW5mbyB9LAorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTBmYiksIChrZXJuZWxfdWxvbmdfdCkmc3B0X2luZm8gfSwKKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweGEwZmQpLCAoa2VybmVsX3Vsb25nX3QpJnNwdF9pbmZvIH0sCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMGZlKSwgKGtlcm5lbF91bG9uZ190KSZzcHRfaW5mbyB9LAogCS8qIFNQVC1IICovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMTI3KSwgKGtlcm5lbF91bG9uZ190KSZzcHRfdWFydF9pbmZvIH0sCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMTI4KSwgKGtlcm5lbF91bG9uZ190KSZzcHRfdWFydF9pbmZvIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9pbnRlbC1scHNzLmMgYi9kcml2ZXJzL21mZC9pbnRlbC1scHNzLmMKaW5kZXggMjc3ZjQ4Zi4uYmZlNGZmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvaW50ZWwtbHBzcy5jCisrKyBiL2RyaXZlcnMvbWZkL2ludGVsLWxwc3MuYwpAQCAtNDcsMTAgKzQ3LDEwIEBACiAjZGVmaW5lIExQU1NfUFJJVl9JRExFTFRSCQkweDE0CiAKICNkZWZpbmUgTFBTU19QUklWX0xUUl9SRVEJCUJJVCgxNSkKLSNkZWZpbmUgTFBTU19QUklWX0xUUl9TQ0FMRV9NQVNLCTB4YzAwCi0jZGVmaW5lIExQU1NfUFJJVl9MVFJfU0NBTEVfMVVTCQkweDgwMAotI2RlZmluZSBMUFNTX1BSSVZfTFRSX1NDQUxFXzMyVVMJMHhjMDAKLSNkZWZpbmUgTFBTU19QUklWX0xUUl9WQUxVRV9NQVNLCTB4M2ZmCisjZGVmaW5lIExQU1NfUFJJVl9MVFJfU0NBTEVfTUFTSwlHRU5NQVNLKDExLCAxMCkKKyNkZWZpbmUgTFBTU19QUklWX0xUUl9TQ0FMRV8xVVMJCSgyIDw8IDEwKQorI2RlZmluZSBMUFNTX1BSSVZfTFRSX1NDQUxFXzMyVVMJKDMgPDwgMTApCisjZGVmaW5lIExQU1NfUFJJVl9MVFJfVkFMVUVfTUFTSwlHRU5NQVNLKDksIDApCiAKICNkZWZpbmUgTFBTU19QUklWX1NTUF9SRUcJCTB4MjAKICNkZWZpbmUgTFBTU19QUklWX1NTUF9SRUdfRElTX0RNQV9GSU4JQklUKDApCkBAIC01OSw4ICs1OSw4IEBACiAKICNkZWZpbmUgTFBTU19QUklWX0NBUFMJCQkweGZjCiAjZGVmaW5lIExQU1NfUFJJVl9DQVBTX05PX0lETUEJCUJJVCg4KQorI2RlZmluZSBMUFNTX1BSSVZfQ0FQU19UWVBFX01BU0sJR0VOTUFTSyg3LCA0KQogI2RlZmluZSBMUFNTX1BSSVZfQ0FQU19UWVBFX1NISUZUCTQKLSNkZWZpbmUgTFBTU19QUklWX0NBUFNfVFlQRV9NQVNLCSgweGYgPDwgTFBTU19QUklWX0NBUFNfVFlQRV9TSElGVCkKIAogLyogVGhpcyBtYXRjaGVzIHRoZSB0eXBlIGZpZWxkIGluIENBUFMgcmVnaXN0ZXIgKi8KIGVudW0gaW50ZWxfbHBzc19kZXZfdHlwZSB7CkBAIC0xMjgsMTcgKzEyOCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgaW50ZWxfbHBzc19zcGlfY2VsbCA9IHsKIHN0YXRpYyBERUZJTkVfSURBKGludGVsX2xwc3NfZGV2aWRfaWRhKTsKIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICppbnRlbF9scHNzX2RlYnVnZnM7CiAKLXN0YXRpYyBpbnQgaW50ZWxfbHBzc19yZXF1ZXN0X2RtYV9tb2R1bGUoY29uc3QgY2hhciAqbmFtZSkKLXsKLQlzdGF0aWMgYm9vbCBpbnRlbF9scHNzX2RtYV9yZXF1ZXN0ZWQ7Ci0KLQlpZiAoaW50ZWxfbHBzc19kbWFfcmVxdWVzdGVkKQotCQlyZXR1cm4gMDsKLQotCWludGVsX2xwc3NfZG1hX3JlcXVlc3RlZCA9IHRydWU7Ci0JcmV0dXJuIHJlcXVlc3RfbW9kdWxlKCIlcyIsIG5hbWUpOwotfQotCiBzdGF0aWMgdm9pZCBpbnRlbF9scHNzX2NhY2hlX2x0cihzdHJ1Y3QgaW50ZWxfbHBzcyAqbHBzcykKIHsKIAlscHNzLT5hY3RpdmVfbHRyID0gcmVhZGwobHBzcy0+cHJpdiArIExQU1NfUFJJVl9BQ1RJVkVMVFIpOwpAQCAtNDI5LDE2ICs0MTgsNiBAQCBpbnQgaW50ZWxfbHBzc19wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWRldl93YXJuKGRldiwgIkZhaWxlZCB0byBjcmVhdGUgZGVidWdmcyBlbnRyaWVzXG4iKTsKIAogCWlmIChpbnRlbF9scHNzX2hhc19pZG1hKGxwc3MpKSB7Ci0JCS8qCi0JCSAqIEVuc3VyZSB0aGUgRE1BIGRyaXZlciBpcyBsb2FkZWQgYmVmb3JlIHRoZSBob3N0Ci0JCSAqIGNvbnRyb2xsZXIgZGV2aWNlIGFwcGVhcnMsIHNvIHRoYXQgdGhlIGhvc3QgY29udHJvbGxlcgotCQkgKiBkcml2ZXIgY2FuIHJlcXVlc3QgaXRzIERNQSBjaGFubmVscyBhcyBlYXJseSBhcwotCQkgKiBwb3NzaWJsZS4KLQkJICoKLQkJICogSWYgdGhlIERNQSBtb2R1bGUgaXMgbm90IHRoZXJlIHRoYXQncyBPSyBhcyB3ZWxsLgotCQkgKi8KLQkJaW50ZWxfbHBzc19yZXF1ZXN0X2RtYV9tb2R1bGUoTFBTU19JRE1BNjRfRFJJVkVSX05BTUUpOwotCiAJCXJldCA9IG1mZF9hZGRfZGV2aWNlcyhkZXYsIGxwc3MtPmRldmlkLCAmaW50ZWxfbHBzc19pZG1hNjRfY2VsbCwKIAkJCQkgICAgICAxLCBpbmZvLT5tZW0sIGluZm8tPmlycSwgTlVMTCk7CiAJCWlmIChyZXQpCkBAIC01NTQsMyArNTMzLDExIEBAIE1PRFVMRV9BVVRIT1IoIkhlaWtraSBLcm9nZXJ1cyA8aGVpa2tpLmtyb2dlcnVzQGxpbnV4LmludGVsLmNvbT4iKTsKIE1PRFVMRV9BVVRIT1IoIkphcmtrbyBOaWt1bGEgPGphcmtrby5uaWt1bGFAbGludXguaW50ZWwuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJJbnRlbCBMUFNTIGNvcmUgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CisvKgorICogRW5zdXJlIHRoZSBETUEgZHJpdmVyIGlzIGxvYWRlZCBiZWZvcmUgdGhlIGhvc3QgY29udHJvbGxlciBkZXZpY2UgYXBwZWFycywKKyAqIHNvIHRoYXQgdGhlIGhvc3QgY29udHJvbGxlciBkcml2ZXIgY2FuIHJlcXVlc3QgaXRzIERNQSBjaGFubmVscyBhcyBlYXJseQorICogYXMgcG9zc2libGUuCisgKgorICogSWYgdGhlIERNQSBtb2R1bGUgaXMgbm90IHRoZXJlIHRoYXQncyBPSyBhcyB3ZWxsLgorICovCitNT0RVTEVfU09GVERFUCgicHJlOiBwbGF0Zm9ybToiIExQU1NfSURNQTY0X0RSSVZFUl9OQU1FKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2ludGVsX3NvY19wbWljX2J4dHdjLmMgYi9kcml2ZXJzL21mZC9pbnRlbF9zb2NfcG1pY19ieHR3Yy5jCmluZGV4IDYzMTBjM2IuLjczOWNmYjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL2ludGVsX3NvY19wbWljX2J4dHdjLmMKKysrIGIvZHJpdmVycy9tZmQvaW50ZWxfc29jX3BtaWNfYnh0d2MuYwpAQCAtNDUwLDEwICs0NTAsOCBAQCBzdGF0aWMgaW50IGJ4dHdjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJcmV0ID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAocmV0IDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJJbnZhbGlkIElSUVxuIik7CisJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7Ci0JfQogCXBtaWMtPmlycSA9IHJldDsKIAogCWRldl9zZXRfZHJ2ZGF0YSgmcGRldi0+ZGV2LCBwbWljKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2ludGVsX3NvY19wbWljX21yZmxkLmMgYi9kcml2ZXJzL21mZC9pbnRlbF9zb2NfcG1pY19tcmZsZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2YTE1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21mZC9pbnRlbF9zb2NfcG1pY19tcmZsZC5jCkBAIC0wLDAgKzEsMTU3IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIERldmljZSBhY2Nlc3MgZm9yIEJhc2luIENvdmUgUE1JQworICoKKyAqIENvcHlyaWdodCAoYykgMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uCisgKiBBdXRob3I6IEFuZHkgU2hldmNoZW5rbyA8YW5kcml5LnNoZXZjaGVua29AbGludXguaW50ZWwuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2NvcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvaW50ZWxfc29jX3BtaWMuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvaW50ZWxfc29jX3BtaWNfbXJmbGQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKworI2luY2x1ZGUgPGFzbS9pbnRlbF9zY3VfaXBjLmg+CisKKy8qCisgKiBMZXZlbCAyIElSUXMKKyAqCisgKiBGaXJtd2FyZSBvbiB0aGUgc3lzdGVtcyB3aXRoIEJhc2luIENvdmUgUE1JQyBzZXJ2aWNlcyBMZXZlbCAxIElSUXMKKyAqIHdpdGhvdXQgYW4gYXNzaXN0YW5jZS4gVGh1cywgZWFjaCBvZiB0aGUgTGV2ZWwgMSBJUlEgaXMgcmVwcmVzZW50ZWQKKyAqIGFzIGEgc2VwYXJhdGUgUlRFIGluIElPQVBJQy4KKyAqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBpcnFfbGV2ZWwyX3Jlc291cmNlc1tdID0geworCURFRklORV9SRVNfSVJRKDApLCAvKiBwb3dlciBidXR0b24gKi8KKwlERUZJTkVfUkVTX0lSUSgwKSwgLyogVE1VICovCisJREVGSU5FX1JFU19JUlEoMCksIC8qIHRoZXJtYWwgKi8KKwlERUZJTkVfUkVTX0lSUSgwKSwgLyogQkNVICovCisJREVGSU5FX1JFU19JUlEoMCksIC8qIEFEQyAqLworCURFRklORV9SRVNfSVJRKDApLCAvKiBjaGFyZ2VyICovCisJREVGSU5FX1JFU19JUlEoMCksIC8qIEdQSU8gKi8KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgYmNvdmVfZGV2W10gPSB7CisJeworCQkubmFtZSA9ICJtcmZsZF9iY292ZV9wd3JidG4iLAorCQkubnVtX3Jlc291cmNlcyA9IDEsCisJCS5yZXNvdXJjZXMgPSAmaXJxX2xldmVsMl9yZXNvdXJjZXNbMF0sCisJfSwgeworCQkubmFtZSA9ICJtcmZsZF9iY292ZV90bXUiLAorCQkubnVtX3Jlc291cmNlcyA9IDEsCisJCS5yZXNvdXJjZXMgPSAmaXJxX2xldmVsMl9yZXNvdXJjZXNbMV0sCisJfSwgeworCQkubmFtZSA9ICJtcmZsZF9iY292ZV90aGVybWFsIiwKKwkJLm51bV9yZXNvdXJjZXMgPSAxLAorCQkucmVzb3VyY2VzID0gJmlycV9sZXZlbDJfcmVzb3VyY2VzWzJdLAorCX0sIHsKKwkJLm5hbWUgPSAibXJmbGRfYmNvdmVfYmN1IiwKKwkJLm51bV9yZXNvdXJjZXMgPSAxLAorCQkucmVzb3VyY2VzID0gJmlycV9sZXZlbDJfcmVzb3VyY2VzWzNdLAorCX0sIHsKKwkJLm5hbWUgPSAibXJmbGRfYmNvdmVfYWRjIiwKKwkJLm51bV9yZXNvdXJjZXMgPSAxLAorCQkucmVzb3VyY2VzID0gJmlycV9sZXZlbDJfcmVzb3VyY2VzWzRdLAorCX0sIHsKKwkJLm5hbWUgPSAibXJmbGRfYmNvdmVfY2hhcmdlciIsCisJCS5udW1fcmVzb3VyY2VzID0gMSwKKwkJLnJlc291cmNlcyA9ICZpcnFfbGV2ZWwyX3Jlc291cmNlc1s1XSwKKwl9LCB7CisJCS5uYW1lID0gIm1yZmxkX2Jjb3ZlX3B3cnNyYyIsCisJCS5udW1fcmVzb3VyY2VzID0gMSwKKwkJLnJlc291cmNlcyA9ICZpcnFfbGV2ZWwyX3Jlc291cmNlc1s1XSwKKwl9LCB7CisJCS5uYW1lID0gIm1yZmxkX2Jjb3ZlX2dwaW8iLAorCQkubnVtX3Jlc291cmNlcyA9IDEsCisJCS5yZXNvdXJjZXMgPSAmaXJxX2xldmVsMl9yZXNvdXJjZXNbNl0sCisJfSwKKwl7CS5uYW1lID0gIm1yZmxkX2Jjb3ZlX3JlZ2lvbiIsIH0sCit9OworCitzdGF0aWMgaW50IGJjb3ZlX2lwY19ieXRlX3JlZ19yZWFkKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWcsCisJCQkJICAgIHVuc2lnbmVkIGludCAqdmFsKQoreworCXU4IGlwY19vdXQ7CisJaW50IHJldDsKKworCXJldCA9IGludGVsX3NjdV9pcGNfaW9yZWFkOChyZWcsICZpcGNfb3V0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJKnZhbCA9IGlwY19vdXQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNvdmVfaXBjX2J5dGVfcmVnX3dyaXRlKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWcsCisJCQkJICAgICB1bnNpZ25lZCBpbnQgdmFsKQoreworCXU4IGlwY19pbiA9IHZhbDsKKwlpbnQgcmV0OworCisJcmV0ID0gaW50ZWxfc2N1X2lwY19pb3dyaXRlOChyZWcsIGlwY19pbik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgYmNvdmVfcmVnbWFwX2NvbmZpZyA9IHsKKwkucmVnX2JpdHMgPSAxNiwKKwkudmFsX2JpdHMgPSA4LAorCS5tYXhfcmVnaXN0ZXIgPSAweGZmLAorCS5yZWdfd3JpdGUgPSBiY292ZV9pcGNfYnl0ZV9yZWdfd3JpdGUsCisJLnJlZ19yZWFkID0gYmNvdmVfaXBjX2J5dGVfcmVnX3JlYWQsCit9OworCitzdGF0aWMgaW50IGJjb3ZlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKwlzdHJ1Y3QgaW50ZWxfc29jX3BtaWMgKnBtaWM7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKworCXBtaWMgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnBtaWMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXBtaWMpCisJCXJldHVybiAtRU5PTUVNOworCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcG1pYyk7CisJcG1pYy0+ZGV2ID0gJnBkZXYtPmRldjsKKworCXBtaWMtPnJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoZGV2LCBOVUxMLCBwbWljLCAmYmNvdmVfcmVnbWFwX2NvbmZpZyk7CisJaWYgKElTX0VSUihwbWljLT5yZWdtYXApKQorCQlyZXR1cm4gUFRSX0VSUihwbWljLT5yZWdtYXApOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaXJxX2xldmVsMl9yZXNvdXJjZXMpOyBpKyspIHsKKwkJcmV0ID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCBpKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCWlycV9sZXZlbDJfcmVzb3VyY2VzW2ldLnN0YXJ0ID0gcmV0OworCQlpcnFfbGV2ZWwyX3Jlc291cmNlc1tpXS5lbmQgPSByZXQ7CisJfQorCisJcmV0dXJuIGRldm1fbWZkX2FkZF9kZXZpY2VzKGRldiwgUExBVEZPUk1fREVWSURfTk9ORSwKKwkJCQkgICAgYmNvdmVfZGV2LCBBUlJBWV9TSVpFKGJjb3ZlX2RldiksCisJCQkJICAgIE5VTEwsIDAsIE5VTEwpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkIGJjb3ZlX2FjcGlfaWRzW10gPSB7CisJeyAiSU5UQzEwMEUiIH0sCisJe30KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKGFjcGksIGJjb3ZlX2FjcGlfaWRzKTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYmNvdmVfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImludGVsX3NvY19wbWljX21yZmxkIiwKKwkJLmFjcGlfbWF0Y2hfdGFibGUgPSBiY292ZV9hY3BpX2lkcywKKwl9LAorCS5wcm9iZSA9IGJjb3ZlX3Byb2JlLAorfTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYmNvdmVfZHJpdmVyKTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJJUEMgZHJpdmVyIGZvciBJbnRlbCBTb0MgQmFzaW4gQ292ZSBQTUlDIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9qejQ3NDAtYWRjLmMgYi9kcml2ZXJzL21mZC9qejQ3NDAtYWRjLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4MmYxNjkuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9tZmQvano0NzQwLWFkYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMzI0ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAsIExhcnMtUGV0ZXIgQ2xhdXNlbiA8bGFyc0BtZXRhZm9vLmRlPgotICogSlo0NzQwIFNvQyBBREMgZHJpdmVyCi0gKgotICogVGhpcyBkcml2ZXIgc3luY2hyb25pemVzIGFjY2VzcyB0byB0aGUgSlo0NzQwIEFEQyBjb3JlIGJldHdlZW4gdGhlCi0gKiBKWjQ3NDAgYmF0dGVyeSBhbmQgaHdtb24gZHJpdmVycy4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZXJyLmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9pcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KLQotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jb3JlLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC9qejQ3NDAtYWRjLmg+Ci0KLQotI2RlZmluZSBKWl9SRUdfQURDX0VOQUJMRQkweDAwCi0jZGVmaW5lIEpaX1JFR19BRENfQ0ZHCQkweDA0Ci0jZGVmaW5lIEpaX1JFR19BRENfQ1RSTAkJMHgwOAotI2RlZmluZSBKWl9SRUdfQURDX1NUQVRVUwkweDBjCi0KLSNkZWZpbmUgSlpfUkVHX0FEQ19UT1VDSFNDUkVFTl9CQVNFCTB4MTAKLSNkZWZpbmUgSlpfUkVHX0FEQ19CQVRURVJZX0JBU0UJMHgxYwotI2RlZmluZSBKWl9SRUdfQURDX0hXTU9OX0JBU0UJMHgyMAotCi0jZGVmaW5lIEpaX0FEQ19FTkFCTEVfVE9VQ0gJQklUKDIpCi0jZGVmaW5lIEpaX0FEQ19FTkFCTEVfQkFUVEVSWQlCSVQoMSkKLSNkZWZpbmUgSlpfQURDX0VOQUJMRV9BRENJTglCSVQoMCkKLQotZW51bSB7Ci0JSlpfQURDX0lSUV9BRENJTiA9IDAsCi0JSlpfQURDX0lSUV9CQVRURVJZLAotCUpaX0FEQ19JUlFfVE9VQ0gsCi0JSlpfQURDX0lSUV9QRU5VUCwKLQlKWl9BRENfSVJRX1BFTkRPV04sCi19OwotCi1zdHJ1Y3Qgano0NzQwX2FkYyB7Ci0Jc3RydWN0IHJlc291cmNlICptZW07Ci0Jdm9pZCBfX2lvbWVtICpiYXNlOwotCi0JaW50IGlycTsKLQlzdHJ1Y3QgaXJxX2NoaXBfZ2VuZXJpYyAqZ2M7Ci0KLQlzdHJ1Y3QgY2xrICpjbGs7Ci0JYXRvbWljX3QgY2xrX3JlZjsKLQotCXNwaW5sb2NrX3QgbG9jazsKLX07Ci0KLXN0YXRpYyB2b2lkIGp6NDc0MF9hZGNfaXJxX2RlbXV4KHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKLXsKLQlzdHJ1Y3QgaXJxX2NoaXBfZ2VuZXJpYyAqZ2MgPSBpcnFfZGVzY19nZXRfaGFuZGxlcl9kYXRhKGRlc2MpOwotCXVpbnQ4X3Qgc3RhdHVzOwotCXVuc2lnbmVkIGludCBpOwotCi0Jc3RhdHVzID0gcmVhZGIoZ2MtPnJlZ19iYXNlICsgSlpfUkVHX0FEQ19TVEFUVVMpOwotCi0JZm9yIChpID0gMDsgaSA8IDU7ICsraSkgewotCQlpZiAoc3RhdHVzICYgQklUKGkpKQotCQkJZ2VuZXJpY19oYW5kbGVfaXJxKGdjLT5pcnFfYmFzZSArIGkpOwotCX0KLX0KLQotCi0vKiBSZWZjb3VudGluZyBmb3IgdGhlIEFEQyBjbG9jayBpcyBkb25lIGluIGhlcmUgaW5zdGVhZCBvZiBpbiB0aGUgY2xvY2sKLSAqIGZyYW1ld29yaywgYmVjYXVzZSBpdCBpcyB0aGUgb25seSBjbG9jayB3aGljaCBpcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZQotICogZGV2aWNlcyBhbmQgdGh1cyBpcyB0aGUgb25seSBjbG9jayB3aGljaCBuZWVkcyByZWZjb3VudGluZyAqLwotc3RhdGljIGlubGluZSB2b2lkIGp6NDc0MF9hZGNfY2xrX2VuYWJsZShzdHJ1Y3Qgano0NzQwX2FkYyAqYWRjKQotewotCWlmIChhdG9taWNfaW5jX3JldHVybigmYWRjLT5jbGtfcmVmKSA9PSAxKQotCQljbGtfcHJlcGFyZV9lbmFibGUoYWRjLT5jbGspOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgano0NzQwX2FkY19jbGtfZGlzYWJsZShzdHJ1Y3Qgano0NzQwX2FkYyAqYWRjKQotewotCWlmIChhdG9taWNfZGVjX3JldHVybigmYWRjLT5jbGtfcmVmKSA9PSAwKQotCQljbGtfZGlzYWJsZV91bnByZXBhcmUoYWRjLT5jbGspOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgano0NzQwX2FkY19zZXRfZW5hYmxlZChzdHJ1Y3Qgano0NzQwX2FkYyAqYWRjLCBpbnQgZW5naW5lLAotCWJvb2wgZW5hYmxlZCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVpbnQ4X3QgdmFsOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmFkYy0+bG9jaywgZmxhZ3MpOwotCi0JdmFsID0gcmVhZGIoYWRjLT5iYXNlICsgSlpfUkVHX0FEQ19FTkFCTEUpOwotCWlmIChlbmFibGVkKQotCQl2YWwgfD0gQklUKGVuZ2luZSk7Ci0JZWxzZQotCQl2YWwgJj0gfkJJVChlbmdpbmUpOwotCXdyaXRlYih2YWwsIGFkYy0+YmFzZSArIEpaX1JFR19BRENfRU5BQkxFKTsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkYy0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgaW50IGp6NDc0MF9hZGNfY2VsbF9lbmFibGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlzdHJ1Y3Qgano0NzQwX2FkYyAqYWRjID0gZGV2X2dldF9kcnZkYXRhKHBkZXYtPmRldi5wYXJlbnQpOwotCi0Jano0NzQwX2FkY19jbGtfZW5hYmxlKGFkYyk7Ci0Jano0NzQwX2FkY19zZXRfZW5hYmxlZChhZGMsIHBkZXYtPmlkLCB0cnVlKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGp6NDc0MF9hZGNfY2VsbF9kaXNhYmxlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IGp6NDc0MF9hZGMgKmFkYyA9IGRldl9nZXRfZHJ2ZGF0YShwZGV2LT5kZXYucGFyZW50KTsKLQotCWp6NDc0MF9hZGNfc2V0X2VuYWJsZWQoYWRjLCBwZGV2LT5pZCwgZmFsc2UpOwotCWp6NDc0MF9hZGNfY2xrX2Rpc2FibGUoYWRjKTsKLQotCXJldHVybiAwOwotfQotCi1pbnQgano0NzQwX2FkY19zZXRfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdWludDMyX3QgbWFzaywgdWludDMyX3QgdmFsKQotewotCXN0cnVjdCBqejQ3NDBfYWRjICphZGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVpbnQzMl90IGNmZzsKLQotCWlmICghYWRjKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZhZGMtPmxvY2ssIGZsYWdzKTsKLQotCWNmZyA9IHJlYWRsKGFkYy0+YmFzZSArIEpaX1JFR19BRENfQ0ZHKTsKLQotCWNmZyAmPSB+bWFzazsKLQljZmcgfD0gdmFsOwotCi0Jd3JpdGVsKGNmZywgYWRjLT5iYXNlICsgSlpfUkVHX0FEQ19DRkcpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRjLT5sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKGp6NDc0MF9hZGNfc2V0X2NvbmZpZyk7Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugano0NzQwX2h3bW9uX3Jlc291cmNlc1tdID0gewotCXsKLQkJLnN0YXJ0ID0gSlpfQURDX0lSUV9BRENJTiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCi0JfSwKLQl7Ci0JCS5zdGFydAk9IEpaX1JFR19BRENfSFdNT05fQkFTRSwKLQkJLmVuZAk9IEpaX1JFR19BRENfSFdNT05fQkFTRSArIDMsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi19OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGp6NDc0MF9iYXR0ZXJ5X3Jlc291cmNlc1tdID0gewotCXsKLQkJLnN0YXJ0ID0gSlpfQURDX0lSUV9CQVRURVJZLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKLQl9LAotCXsKLQkJLnN0YXJ0CT0gSlpfUkVHX0FEQ19CQVRURVJZX0JBU0UsCi0JCS5lbmQJPSBKWl9SRUdfQURDX0JBVFRFUllfQkFTRSArIDMsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG1mZF9jZWxsIGp6NDc0MF9hZGNfY2VsbHNbXSA9IHsKLQl7Ci0JCS5pZCA9IDAsCi0JCS5uYW1lID0gImp6NDc0MC1od21vbiIsCi0JCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRShqejQ3NDBfaHdtb25fcmVzb3VyY2VzKSwKLQkJLnJlc291cmNlcyA9IGp6NDc0MF9od21vbl9yZXNvdXJjZXMsCi0KLQkJLmVuYWJsZSA9IGp6NDc0MF9hZGNfY2VsbF9lbmFibGUsCi0JCS5kaXNhYmxlID0gano0NzQwX2FkY19jZWxsX2Rpc2FibGUsCi0JfSwKLQl7Ci0JCS5pZCA9IDEsCi0JCS5uYW1lID0gImp6NDc0MC1iYXR0ZXJ5IiwKLQkJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKGp6NDc0MF9iYXR0ZXJ5X3Jlc291cmNlcyksCi0JCS5yZXNvdXJjZXMgPSBqejQ3NDBfYmF0dGVyeV9yZXNvdXJjZXMsCi0KLQkJLmVuYWJsZSA9IGp6NDc0MF9hZGNfY2VsbF9lbmFibGUsCi0JCS5kaXNhYmxlID0gano0NzQwX2FkY19jZWxsX2Rpc2FibGUsCi0JfSwKLX07Ci0KLXN0YXRpYyBpbnQgano0NzQwX2FkY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBpcnFfY2hpcF9nZW5lcmljICpnYzsKLQlzdHJ1Y3QgaXJxX2NoaXBfdHlwZSAqY3Q7Ci0Jc3RydWN0IGp6NDc0MF9hZGMgKmFkYzsKLQlzdHJ1Y3QgcmVzb3VyY2UgKm1lbV9iYXNlOwotCWludCByZXQ7Ci0JaW50IGlycV9iYXNlOwotCi0JYWRjID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqYWRjKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFhZGMpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JYWRjLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChhZGMtPmlycSA8IDApIHsKLQkJcmV0ID0gYWRjLT5pcnE7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBnZXQgcGxhdGZvcm0gaXJxOiAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlpcnFfYmFzZSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMSk7Ci0JaWYgKGlycV9iYXNlIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IGlycSBiYXNlOiAlZFxuIiwgaXJxX2Jhc2UpOwotCQlyZXR1cm4gaXJxX2Jhc2U7Ci0JfQotCi0JbWVtX2Jhc2UgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwotCWlmICghbWVtX2Jhc2UpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGdldCBwbGF0Zm9ybSBtbWlvIHJlc291cmNlXG4iKTsKLQkJcmV0dXJuIC1FTk9FTlQ7Ci0JfQotCi0JLyogT25seSByZXF1ZXN0IHRoZSBzaGFyZWQgcmVnaXN0ZXJzIGZvciB0aGUgTUZEIGRyaXZlciAqLwotCWFkYy0+bWVtID0gcmVxdWVzdF9tZW1fcmVnaW9uKG1lbV9iYXNlLT5zdGFydCwgSlpfUkVHX0FEQ19TVEFUVVMsCi0JCQkJCXBkZXYtPm5hbWUpOwotCWlmICghYWRjLT5tZW0pIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3QgbW1pbyBtZW1vcnkgcmVnaW9uXG4iKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9Ci0KLQlhZGMtPmJhc2UgPSBpb3JlbWFwX25vY2FjaGUoYWRjLT5tZW0tPnN0YXJ0LCByZXNvdXJjZV9zaXplKGFkYy0+bWVtKSk7Ci0JaWYgKCFhZGMtPmJhc2UpIHsKLQkJcmV0ID0gLUVCVVNZOwotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gaW9yZW1hcCBtbWlvIG1lbW9yeVxuIik7Ci0JCWdvdG8gZXJyX3JlbGVhc2VfbWVtX3JlZ2lvbjsKLQl9Ci0KLQlhZGMtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgImFkYyIpOwotCWlmIChJU19FUlIoYWRjLT5jbGspKSB7Ci0JCXJldCA9IFBUUl9FUlIoYWRjLT5jbGspOwotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IGNsb2NrOiAlZFxuIiwgcmV0KTsKLQkJZ290byBlcnJfaW91bm1hcDsKLQl9Ci0KLQlzcGluX2xvY2tfaW5pdCgmYWRjLT5sb2NrKTsKLQlhdG9taWNfc2V0KCZhZGMtPmNsa19yZWYsIDApOwotCi0JcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgYWRjKTsKLQotCWdjID0gaXJxX2FsbG9jX2dlbmVyaWNfY2hpcCgiSU5UQyIsIDEsIGlycV9iYXNlLCBhZGMtPmJhc2UsCi0JCWhhbmRsZV9sZXZlbF9pcnEpOwotCi0JY3QgPSBnYy0+Y2hpcF90eXBlczsKLQljdC0+cmVncy5tYXNrID0gSlpfUkVHX0FEQ19DVFJMOwotCWN0LT5yZWdzLmFjayA9IEpaX1JFR19BRENfU1RBVFVTOwotCWN0LT5jaGlwLmlycV9tYXNrID0gaXJxX2djX21hc2tfc2V0X2JpdDsKLQljdC0+Y2hpcC5pcnFfdW5tYXNrID0gaXJxX2djX21hc2tfY2xyX2JpdDsKLQljdC0+Y2hpcC5pcnFfYWNrID0gaXJxX2djX2Fja19zZXRfYml0OwotCi0JaXJxX3NldHVwX2dlbmVyaWNfY2hpcChnYywgSVJRX01TSyg1KSwgSVJRX0dDX0lOSVRfTUFTS19DQUNIRSwgMCwKLQkJCQlJUlFfTk9QUk9CRSB8IElSUV9MRVZFTCk7Ci0KLQlhZGMtPmdjID0gZ2M7Ci0KLQlpcnFfc2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0YShhZGMtPmlycSwgano0NzQwX2FkY19pcnFfZGVtdXgsIGdjKTsKLQotCXdyaXRlYigweDAwLCBhZGMtPmJhc2UgKyBKWl9SRUdfQURDX0VOQUJMRSk7Ci0Jd3JpdGViKDB4ZmYsIGFkYy0+YmFzZSArIEpaX1JFR19BRENfQ1RSTCk7Ci0KLQlyZXQgPSBtZmRfYWRkX2RldmljZXMoJnBkZXYtPmRldiwgMCwgano0NzQwX2FkY19jZWxscywKLQkJCSAgICAgIEFSUkFZX1NJWkUoano0NzQwX2FkY19jZWxscyksIG1lbV9iYXNlLAotCQkJICAgICAgaXJxX2Jhc2UsIE5VTEwpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIGVycl9jbGtfcHV0OwotCi0JcmV0dXJuIDA7Ci0KLWVycl9jbGtfcHV0OgotCWNsa19wdXQoYWRjLT5jbGspOwotZXJyX2lvdW5tYXA6Ci0JaW91bm1hcChhZGMtPmJhc2UpOwotZXJyX3JlbGVhc2VfbWVtX3JlZ2lvbjoKLQlyZWxlYXNlX21lbV9yZWdpb24oYWRjLT5tZW0tPnN0YXJ0LCByZXNvdXJjZV9zaXplKGFkYy0+bWVtKSk7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBqejQ3NDBfYWRjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBqejQ3NDBfYWRjICphZGMgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQotCW1mZF9yZW1vdmVfZGV2aWNlcygmcGRldi0+ZGV2KTsKLQotCWlycV9yZW1vdmVfZ2VuZXJpY19jaGlwKGFkYy0+Z2MsIElSUV9NU0soNSksIElSUV9OT1BST0JFIHwgSVJRX0xFVkVMLCAwKTsKLQlrZnJlZShhZGMtPmdjKTsKLQlpcnFfc2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0YShhZGMtPmlycSwgTlVMTCwgTlVMTCk7Ci0KLQlpb3VubWFwKGFkYy0+YmFzZSk7Ci0JcmVsZWFzZV9tZW1fcmVnaW9uKGFkYy0+bWVtLT5zdGFydCwgcmVzb3VyY2Vfc2l6ZShhZGMtPm1lbSkpOwotCi0JY2xrX3B1dChhZGMtPmNsayk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgano0NzQwX2FkY19kcml2ZXIgPSB7Ci0JLnByb2JlCT0gano0NzQwX2FkY19wcm9iZSwKLQkucmVtb3ZlID0gano0NzQwX2FkY19yZW1vdmUsCi0JLmRyaXZlciA9IHsKLQkJLm5hbWUgPSAiano0NzQwLWFkYyIsCi0JfSwKLX07Ci0KLW1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoano0NzQwX2FkY19kcml2ZXIpOwotCi1NT0RVTEVfREVTQ1JJUFRJT04oIkpaNDc0MCBTb0MgQURDIGRyaXZlciIpOwotTU9EVUxFX0FVVEhPUigiTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Iik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1NT0RVTEVfQUxJQVMoInBsYXRmb3JtOmp6NDc0MC1hZGMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL21heDE0NTc3LmMgYi9kcml2ZXJzL21mZC9tYXgxNDU3Ny5jCmluZGV4IGViYjEzZDUuLmZkODg2NGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL21heDE0NTc3LmMKKysrIGIvZHJpdmVycy9tZmQvbWF4MTQ1NzcuYwpAQCAtMjk3LDExICsyOTcsMTEgQEAgc3RhdGljIGludCBtYXg3NzgzNl9pbml0KHN0cnVjdCBtYXgxNDU3NyAqbWF4MTQ1NzcpCiAJaW50IHJldDsKIAl1OCBpbnRzcmNfbWFzazsKIAotCW1heDE0NTc3LT5pMmNfcG1pYyA9IGkyY19uZXdfZHVtbXkobWF4MTQ1NzctPmkyYy0+YWRhcHRlciwKKwltYXgxNDU3Ny0+aTJjX3BtaWMgPSBpMmNfbmV3X2R1bW15X2RldmljZShtYXgxNDU3Ny0+aTJjLT5hZGFwdGVyLAogCQkJSTJDX0FERFJfUE1JQyk7Ci0JaWYgKCFtYXgxNDU3Ny0+aTJjX3BtaWMpIHsKKwlpZiAoSVNfRVJSKG1heDE0NTc3LT5pMmNfcG1pYykpIHsKIAkJZGV2X2VycihtYXgxNDU3Ny0+ZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIFBNSUMgSTJDIGRldmljZVxuIik7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXR1cm4gUFRSX0VSUihtYXgxNDU3Ny0+aTJjX3BtaWMpOwogCX0KIAlpMmNfc2V0X2NsaWVudGRhdGEobWF4MTQ1NzctPmkyY19wbWljLCBtYXgxNDU3Nyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL21heDc3NjIwLmMgYi9kcml2ZXJzL21mZC9tYXg3NzYyMC5jCmluZGV4IDBjMjg5NjUuLmE4NTFmZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL21heDc3NjIwLmMKKysrIGIvZHJpdmVycy9tZmQvbWF4Nzc2MjAuYwpAQCAtNDE2LDggKzQxNiwxMCBAQCBzdGF0aWMgaW50IG1heDc3NjIwX2luaXRpYWxpc2VfZnBzKHN0cnVjdCBtYXg3NzYyMF9jaGlwICpjaGlwKQogCiAJZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShmcHNfbnAsIGZwc19jaGlsZCkgewogCQlyZXQgPSBtYXg3NzYyMF9jb25maWdfZnBzKGNoaXAsIGZwc19jaGlsZCk7Ci0JCWlmIChyZXQgPCAwKQorCQlpZiAocmV0IDwgMCkgeworCQkJb2Zfbm9kZV9wdXQoZnBzX2NoaWxkKTsKIAkJCXJldHVybiByZXQ7CisJCX0KIAl9CiAKIAljb25maWcgPSBjaGlwLT5lbmFibGVfZ2xvYmFsX2xwbSA/IE1BWDc3NjIwX09OT0ZGQ05GRzJfU0xQX0xQTV9NU0sgOiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvbWF4Nzc2OTMuYyBiL2RyaXZlcnMvbWZkL21heDc3NjkzLmMKaW5kZXggOTAxZDk5ZC4uNTk2ZWQ4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvbWF4Nzc2OTMuYworKysgYi9kcml2ZXJzL21mZC9tYXg3NzY5My5jCkBAIC0xODMsMTcgKzE4MywxNyBAQCBzdGF0aWMgaW50IG1heDc3NjkzX2kyY19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjLAogCX0gZWxzZQogCQlkZXZfaW5mbyhtYXg3NzY5My0+ZGV2LCAiZGV2aWNlIElEOiAweCV4XG4iLCByZWdfZGF0YSk7CiAKLQltYXg3NzY5My0+aTJjX211aWMgPSBpMmNfbmV3X2R1bW15KGkyYy0+YWRhcHRlciwgSTJDX0FERFJfTVVJQyk7Ci0JaWYgKCFtYXg3NzY5My0+aTJjX211aWMpIHsKKwltYXg3NzY5My0+aTJjX211aWMgPSBpMmNfbmV3X2R1bW15X2RldmljZShpMmMtPmFkYXB0ZXIsIEkyQ19BRERSX01VSUMpOworCWlmIChJU19FUlIobWF4Nzc2OTMtPmkyY19tdWljKSkgewogCQlkZXZfZXJyKG1heDc3NjkzLT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgSTJDIGRldmljZSBmb3IgTVVJQ1xuIik7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXR1cm4gUFRSX0VSUihtYXg3NzY5My0+aTJjX211aWMpOwogCX0KIAlpMmNfc2V0X2NsaWVudGRhdGEobWF4Nzc2OTMtPmkyY19tdWljLCBtYXg3NzY5Myk7CiAKLQltYXg3NzY5My0+aTJjX2hhcHRpYyA9IGkyY19uZXdfZHVtbXkoaTJjLT5hZGFwdGVyLCBJMkNfQUREUl9IQVBUSUMpOwotCWlmICghbWF4Nzc2OTMtPmkyY19oYXB0aWMpIHsKKwltYXg3NzY5My0+aTJjX2hhcHRpYyA9IGkyY19uZXdfZHVtbXlfZGV2aWNlKGkyYy0+YWRhcHRlciwgSTJDX0FERFJfSEFQVElDKTsKKwlpZiAoSVNfRVJSKG1heDc3NjkzLT5pMmNfaGFwdGljKSkgewogCQlkZXZfZXJyKG1heDc3NjkzLT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgSTJDIGRldmljZSBmb3IgSGFwdGljXG4iKTsKLQkJcmV0ID0gLUVOT0RFVjsKKwkJcmV0ID0gUFRSX0VSUihtYXg3NzY5My0+aTJjX2hhcHRpYyk7CiAJCWdvdG8gZXJyX2kyY19oYXB0aWM7CiAJfQogCWkyY19zZXRfY2xpZW50ZGF0YShtYXg3NzY5My0+aTJjX2hhcHRpYywgbWF4Nzc2OTMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvbWF4Nzc4NDMuYyBiL2RyaXZlcnMvbWZkL21heDc3ODQzLmMKaW5kZXggMjVjYmIyMi4uMjA5ZWUyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvbWF4Nzc4NDMuYworKysgYi9kcml2ZXJzL21mZC9tYXg3Nzg0My5jCkBAIC03MCwxMSArNzAsMTEgQEAgc3RhdGljIGludCBtYXg3Nzg0M19jaGdfaW5pdChzdHJ1Y3QgbWF4Nzc2OTNfZGV2ICptYXg3Nzg0MykKIHsKIAlpbnQgcmV0OwogCi0JbWF4Nzc4NDMtPmkyY19jaGcgPSBpMmNfbmV3X2R1bW15KG1heDc3ODQzLT5pMmMtPmFkYXB0ZXIsIEkyQ19BRERSX0NIRyk7Ci0JaWYgKCFtYXg3Nzg0My0+aTJjX2NoZykgeworCW1heDc3ODQzLT5pMmNfY2hnID0gaTJjX25ld19kdW1teV9kZXZpY2UobWF4Nzc4NDMtPmkyYy0+YWRhcHRlciwgSTJDX0FERFJfQ0hHKTsKKwlpZiAoSVNfRVJSKG1heDc3ODQzLT5pMmNfY2hnKSkgewogCQlkZXZfZXJyKCZtYXg3Nzg0My0+aTJjLT5kZXYsCiAJCQkJIkNhbm5vdCBhbGxvY2F0ZSBJMkMgZGV2aWNlIGZvciBDaGFyZ2VyXG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCXJldHVybiBQVFJfRVJSKG1heDc3ODQzLT5pMmNfY2hnKTsKIAl9CiAJaTJjX3NldF9jbGllbnRkYXRhKG1heDc3ODQzLT5pMmNfY2hnLCBtYXg3Nzg0Myk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL21heDg5MDcuYyBiL2RyaXZlcnMvbWZkL21heDg5MDcuYwppbmRleCBjYzAxZjcwLi5kNDRiYWFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9tYXg4OTA3LmMKKysrIGIvZHJpdmVycy9tZmQvbWF4ODkwNy5jCkBAIC0yMTQsOSArMjE0LDkgQEAgc3RhdGljIGludCBtYXg4OTA3X2kyY19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjLAogCQlnb3RvIGVycl9yZWdtYXBfZ2VuOwogCX0KIAotCW1heDg5MDctPmkyY19ydGMgPSBpMmNfbmV3X2R1bW15KGkyYy0+YWRhcHRlciwgTUFYODkwN19SVENfSTJDX0FERFIpOwotCWlmICghbWF4ODkwNy0+aTJjX3J0YykgewotCQlyZXQgPSAtRU5PTUVNOworCW1heDg5MDctPmkyY19ydGMgPSBpMmNfbmV3X2R1bW15X2RldmljZShpMmMtPmFkYXB0ZXIsIE1BWDg5MDdfUlRDX0kyQ19BRERSKTsKKwlpZiAoSVNfRVJSKG1heDg5MDctPmkyY19ydGMpKSB7CisJCXJldCA9IFBUUl9FUlIobWF4ODkwNy0+aTJjX3J0Yyk7CiAJCWdvdG8gZXJyX2R1bW15X3J0YzsKIAl9CiAJaTJjX3NldF9jbGllbnRkYXRhKG1heDg5MDctPmkyY19ydGMsIG1heDg5MDcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvbWF4ODkyNS1pMmMuYyBiL2RyaXZlcnMvbWZkL21heDg5MjUtaTJjLmMKaW5kZXggMjBiYjE5Yi4uMTE0ZTkwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvbWF4ODkyNS1pMmMuYworKysgYi9kcml2ZXJzL21mZC9tYXg4OTI1LWkyYy5jCkBAIC0xNzYsMTggKzE3NiwxOCBAQCBzdGF0aWMgaW50IG1heDg5MjVfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAlkZXZfc2V0X2RydmRhdGEoY2hpcC0+ZGV2LCBjaGlwKTsKIAltdXRleF9pbml0KCZjaGlwLT5pb19sb2NrKTsKIAotCWNoaXAtPnJ0YyA9IGkyY19uZXdfZHVtbXkoY2hpcC0+aTJjLT5hZGFwdGVyLCBSVENfSTJDX0FERFIpOwotCWlmICghY2hpcC0+cnRjKSB7CisJY2hpcC0+cnRjID0gaTJjX25ld19kdW1teV9kZXZpY2UoY2hpcC0+aTJjLT5hZGFwdGVyLCBSVENfSTJDX0FERFIpOworCWlmIChJU19FUlIoY2hpcC0+cnRjKSkgewogCQlkZXZfZXJyKGNoaXAtPmRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBJMkMgZGV2aWNlIGZvciBSVENcbiIpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJcmV0dXJuIFBUUl9FUlIoY2hpcC0+cnRjKTsKIAl9CiAJaTJjX3NldF9jbGllbnRkYXRhKGNoaXAtPnJ0YywgY2hpcCk7CiAKLQljaGlwLT5hZGMgPSBpMmNfbmV3X2R1bW15KGNoaXAtPmkyYy0+YWRhcHRlciwgQURDX0kyQ19BRERSKTsKLQlpZiAoIWNoaXAtPmFkYykgeworCWNoaXAtPmFkYyA9IGkyY19uZXdfZHVtbXlfZGV2aWNlKGNoaXAtPmkyYy0+YWRhcHRlciwgQURDX0kyQ19BRERSKTsKKwlpZiAoSVNfRVJSKGNoaXAtPmFkYykpIHsKIAkJZGV2X2VycihjaGlwLT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgSTJDIGRldmljZSBmb3IgQURDXG4iKTsKIAkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGNoaXAtPnJ0Yyk7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXR1cm4gUFRSX0VSUihjaGlwLT5hZGMpOwogCX0KIAlpMmNfc2V0X2NsaWVudGRhdGEoY2hpcC0+YWRjLCBjaGlwKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvbWF4ODk5Ny5jIGIvZHJpdmVycy9tZmQvbWF4ODk5Ny5jCmluZGV4IDhjMDZjMDkuLjY4ZDhmMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL21heDg5OTcuYworKysgYi9kcml2ZXJzL21mZC9tYXg4OTk3LmMKQEAgLTE4NSwyNSArMTg1LDI1IEBAIHN0YXRpYyBpbnQgbWF4ODk5N19pMmNfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmkyYywKIAogCW11dGV4X2luaXQoJm1heDg5OTctPmlvbG9jayk7CiAKLQltYXg4OTk3LT5ydGMgPSBpMmNfbmV3X2R1bW15KGkyYy0+YWRhcHRlciwgSTJDX0FERFJfUlRDKTsKLQlpZiAoIW1heDg5OTctPnJ0YykgeworCW1heDg5OTctPnJ0YyA9IGkyY19uZXdfZHVtbXlfZGV2aWNlKGkyYy0+YWRhcHRlciwgSTJDX0FERFJfUlRDKTsKKwlpZiAoSVNfRVJSKG1heDg5OTctPnJ0YykpIHsKIAkJZGV2X2VycihtYXg4OTk3LT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgSTJDIGRldmljZSBmb3IgUlRDXG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCXJldHVybiBQVFJfRVJSKG1heDg5OTctPnJ0Yyk7CiAJfQogCWkyY19zZXRfY2xpZW50ZGF0YShtYXg4OTk3LT5ydGMsIG1heDg5OTcpOwogCi0JbWF4ODk5Ny0+aGFwdGljID0gaTJjX25ld19kdW1teShpMmMtPmFkYXB0ZXIsIEkyQ19BRERSX0hBUFRJQyk7Ci0JaWYgKCFtYXg4OTk3LT5oYXB0aWMpIHsKKwltYXg4OTk3LT5oYXB0aWMgPSBpMmNfbmV3X2R1bW15X2RldmljZShpMmMtPmFkYXB0ZXIsIEkyQ19BRERSX0hBUFRJQyk7CisJaWYgKElTX0VSUihtYXg4OTk3LT5oYXB0aWMpKSB7CiAJCWRldl9lcnIobWF4ODk5Ny0+ZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIEkyQyBkZXZpY2UgZm9yIEhhcHRpY1xuIik7Ci0JCXJldCA9IC1FTk9ERVY7CisJCXJldCA9IFBUUl9FUlIobWF4ODk5Ny0+aGFwdGljKTsKIAkJZ290byBlcnJfaTJjX2hhcHRpYzsKIAl9CiAJaTJjX3NldF9jbGllbnRkYXRhKG1heDg5OTctPmhhcHRpYywgbWF4ODk5Nyk7CiAKLQltYXg4OTk3LT5tdWljID0gaTJjX25ld19kdW1teShpMmMtPmFkYXB0ZXIsIEkyQ19BRERSX01VSUMpOwotCWlmICghbWF4ODk5Ny0+bXVpYykgeworCW1heDg5OTctPm11aWMgPSBpMmNfbmV3X2R1bW15X2RldmljZShpMmMtPmFkYXB0ZXIsIEkyQ19BRERSX01VSUMpOworCWlmIChJU19FUlIobWF4ODk5Ny0+bXVpYykpIHsKIAkJZGV2X2VycihtYXg4OTk3LT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgSTJDIGRldmljZSBmb3IgTVVJQ1xuIik7Ci0JCXJldCA9IC1FTk9ERVY7CisJCXJldCA9IFBUUl9FUlIobWF4ODk5Ny0+bXVpYyk7CiAJCWdvdG8gZXJyX2kyY19tdWljOwogCX0KIAlpMmNfc2V0X2NsaWVudGRhdGEobWF4ODk5Ny0+bXVpYywgbWF4ODk5Nyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9tYXg4OTk4LmMgYi9kcml2ZXJzL21mZC9tYXg4OTk4LmMKaW5kZXggNTY0MDlkZi4uNzg1ZjhlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvbWF4ODk5OC5jCisrKyBiL2RyaXZlcnMvbWZkL21heDg5OTguYwpAQCAtMTk1LDEwICsxOTUsMTAgQEAgc3RhdGljIGludCBtYXg4OTk4X2kyY19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjLAogCX0KIAltdXRleF9pbml0KCZtYXg4OTk4LT5pb2xvY2spOwogCi0JbWF4ODk5OC0+cnRjID0gaTJjX25ld19kdW1teShpMmMtPmFkYXB0ZXIsIFJUQ19JMkNfQUREUik7Ci0JaWYgKCFtYXg4OTk4LT5ydGMpIHsKKwltYXg4OTk4LT5ydGMgPSBpMmNfbmV3X2R1bW15X2RldmljZShpMmMtPmFkYXB0ZXIsIFJUQ19JMkNfQUREUik7CisJaWYgKElTX0VSUihtYXg4OTk4LT5ydGMpKSB7CiAJCWRldl9lcnIoJmkyYy0+ZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIEkyQyBkZXZpY2UgZm9yIFJUQ1xuIik7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXR1cm4gUFRSX0VSUihtYXg4OTk4LT5ydGMpOwogCX0KIAlpMmNfc2V0X2NsaWVudGRhdGEobWF4ODk5OC0+cnRjLCBtYXg4OTk4KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvbXQ2Mzk3LWNvcmUuYyBiL2RyaXZlcnMvbWZkL210NjM5Ny1jb3JlLmMKaW5kZXggMzM3YmNjYy4uMzEwZGFlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvbXQ2Mzk3LWNvcmUuYworKysgYi9kcml2ZXJzL21mZC9tdDYzOTctY29yZS5jCkBAIC01LDM0ICs1LDM0IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9jb3JlLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL210NjM5Ny9jb3JlLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL210NjMyMy9jb3JlLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL210NjM5Ny9yZWdpc3RlcnMuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvbXQ2Mzk3L2NvcmUuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvbXQ2MzIzL3JlZ2lzdGVycy5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9tdDYzOTcvcmVnaXN0ZXJzLmg+CisKKyNkZWZpbmUgTVQ2MzIzX1JUQ19CQVNFCQkweDgwMDAKKyNkZWZpbmUgTVQ2MzIzX1JUQ19TSVpFCQkweDQwCiAKICNkZWZpbmUgTVQ2Mzk3X1JUQ19CQVNFCQkweGUwMDAKICNkZWZpbmUgTVQ2Mzk3X1JUQ19TSVpFCQkweDNlCiAKLSNkZWZpbmUgTVQ2MzIzX0NJRF9DT0RFCQkweDIzCi0jZGVmaW5lIE1UNjM5MV9DSURfQ09ERQkJMHg5MQotI2RlZmluZSBNVDYzOTdfQ0lEX0NPREUJCTB4OTcKKyNkZWZpbmUgTVQ2MzIzX1BXUkNfQkFTRQkweDgwMDAKKyNkZWZpbmUgTVQ2MzIzX1BXUkNfU0laRQkweDQwCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgbXQ2MzIzX3J0Y19yZXNvdXJjZXNbXSA9IHsKKwlERUZJTkVfUkVTX01FTShNVDYzMjNfUlRDX0JBU0UsIE1UNjMyM19SVENfU0laRSksCisJREVGSU5FX1JFU19JUlEoTVQ2MzIzX0lSUV9TVEFUVVNfUlRDKSwKK307CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgbXQ2Mzk3X3J0Y19yZXNvdXJjZXNbXSA9IHsKLQl7Ci0JCS5zdGFydCA9IE1UNjM5N19SVENfQkFTRSwKLQkJLmVuZCAgID0gTVQ2Mzk3X1JUQ19CQVNFICsgTVQ2Mzk3X1JUQ19TSVpFLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLnN0YXJ0ID0gTVQ2Mzk3X0lSUV9SVEMsCi0JCS5lbmQgICA9IE1UNjM5N19JUlFfUlRDLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKLQl9LAorCURFRklORV9SRVNfTUVNKE1UNjM5N19SVENfQkFTRSwgTVQ2Mzk3X1JUQ19TSVpFKSwKKwlERUZJTkVfUkVTX0lSUShNVDYzOTdfSVJRX1JUQyksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJlc291cmNlIG10NjMyM19rZXlzX3Jlc291cmNlc1tdID0gewpAQCAtNDUsOCArNDUsMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJjZSBtdDYzOTdfa2V5c19yZXNvdXJjZXNbXSA9IHsKIAlERUZJTkVfUkVTX0lSUShNVDYzOTdfSVJRX0hPTUVLRVkpLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJjZSBtdDYzMjNfcHdyY19yZXNvdXJjZXNbXSA9IHsKKwlERUZJTkVfUkVTX01FTShNVDYzMjNfUFdSQ19CQVNFLCBNVDYzMjNfUFdSQ19TSVpFKSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgbXQ2MzIzX2RldnNbXSA9IHsKIAl7CisJCS5uYW1lID0gIm10NjMyMy1ydGMiLAorCQkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUobXQ2MzIzX3J0Y19yZXNvdXJjZXMpLAorCQkucmVzb3VyY2VzID0gbXQ2MzIzX3J0Y19yZXNvdXJjZXMsCisJCS5vZl9jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NjMyMy1ydGMiLAorCX0sIHsKIAkJLm5hbWUgPSAibXQ2MzIzLXJlZ3VsYXRvciIsCiAJCS5vZl9jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NjMyMy1yZWd1bGF0b3IiCiAJfSwgewpAQCAtNTcsNiArNjYsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCBtdDYzMjNfZGV2c1tdID0gewogCQkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUobXQ2MzIzX2tleXNfcmVzb3VyY2VzKSwKIAkJLnJlc291cmNlcyA9IG10NjMyM19rZXlzX3Jlc291cmNlcywKIAkJLm9mX2NvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2MzIzLWtleXMiCisJfSwgeworCQkubmFtZSA9ICJtdDYzMjMtcHdyYyIsCisJCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRShtdDYzMjNfcHdyY19yZXNvdXJjZXMpLAorCQkucmVzb3VyY2VzID0gbXQ2MzIzX3B3cmNfcmVzb3VyY2VzLAorCQkub2ZfY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDYzMjMtcHdyYyIKIAl9LAogfTsKIApAQCAtODYsMTQ4ICsxMDAsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1mZF9jZWxsIG10NjM5N19kZXZzW10gPSB7CiAJfQogfTsKIAotc3RhdGljIHZvaWQgbXQ2Mzk3X2lycV9sb2NrKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKLXsKLQlzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOwotCi0JbXV0ZXhfbG9jaygmbXQ2Mzk3LT5pcnFsb2NrKTsKLX0KLQotc3RhdGljIHZvaWQgbXQ2Mzk3X2lycV9zeW5jX3VubG9jayhzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEpCi17Ci0Jc3RydWN0IG10NjM5N19jaGlwICptdDYzOTcgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkYXRhKTsKLQotCXJlZ21hcF93cml0ZShtdDYzOTctPnJlZ21hcCwgbXQ2Mzk3LT5pbnRfY29uWzBdLAotCQkgICAgIG10NjM5Ny0+aXJxX21hc2tzX2N1clswXSk7Ci0JcmVnbWFwX3dyaXRlKG10NjM5Ny0+cmVnbWFwLCBtdDYzOTctPmludF9jb25bMV0sCi0JCSAgICAgbXQ2Mzk3LT5pcnFfbWFza3NfY3VyWzFdKTsKLQotCW11dGV4X3VubG9jaygmbXQ2Mzk3LT5pcnFsb2NrKTsKLX0KLQotc3RhdGljIHZvaWQgbXQ2Mzk3X2lycV9kaXNhYmxlKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKLXsKLQlzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOwotCWludCBzaGlmdCA9IGRhdGEtPmh3aXJxICYgMHhmOwotCWludCByZWcgPSBkYXRhLT5od2lycSA+PiA0OwotCi0JbXQ2Mzk3LT5pcnFfbWFza3NfY3VyW3JlZ10gJj0gfkJJVChzaGlmdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIG10NjM5N19pcnFfZW5hYmxlKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKLXsKLQlzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOwotCWludCBzaGlmdCA9IGRhdGEtPmh3aXJxICYgMHhmOwotCWludCByZWcgPSBkYXRhLT5od2lycSA+PiA0OwotCi0JbXQ2Mzk3LT5pcnFfbWFza3NfY3VyW3JlZ10gfD0gQklUKHNoaWZ0KTsKLX0KLQotI2lmZGVmIENPTkZJR19QTV9TTEVFUAotc3RhdGljIGludCBtdDYzOTdfaXJxX3NldF93YWtlKHN0cnVjdCBpcnFfZGF0YSAqaXJxX2RhdGEsIHVuc2lnbmVkIGludCBvbikKLXsKLQlzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGlycV9kYXRhKTsKLQlpbnQgc2hpZnQgPSBpcnFfZGF0YS0+aHdpcnEgJiAweGY7Ci0JaW50IHJlZyA9IGlycV9kYXRhLT5od2lycSA+PiA0OwotCi0JaWYgKG9uKQotCQltdDYzOTctPndha2VfbWFza1tyZWddIHw9IEJJVChzaGlmdCk7Ci0JZWxzZQotCQltdDYzOTctPndha2VfbWFza1tyZWddICY9IH5CSVQoc2hpZnQpOwotCi0JcmV0dXJuIDA7Ci19Ci0jZWxzZQotI2RlZmluZSBtdDYzOTdfaXJxX3NldF93YWtlIE5VTEwKLSNlbmRpZgotCi1zdGF0aWMgc3RydWN0IGlycV9jaGlwIG10NjM5N19pcnFfY2hpcCA9IHsKLQkubmFtZSA9ICJtdDYzOTctaXJxIiwKLQkuaXJxX2J1c19sb2NrID0gbXQ2Mzk3X2lycV9sb2NrLAotCS5pcnFfYnVzX3N5bmNfdW5sb2NrID0gbXQ2Mzk3X2lycV9zeW5jX3VubG9jaywKLQkuaXJxX2VuYWJsZSA9IG10NjM5N19pcnFfZW5hYmxlLAotCS5pcnFfZGlzYWJsZSA9IG10NjM5N19pcnFfZGlzYWJsZSwKLQkuaXJxX3NldF93YWtlID0gbXQ2Mzk3X2lycV9zZXRfd2FrZSwKLX07Ci0KLXN0YXRpYyB2b2lkIG10NjM5N19pcnFfaGFuZGxlX3JlZyhzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NywgaW50IHJlZywKLQkJaW50IGlycWJhc2UpCi17Ci0JdW5zaWduZWQgaW50IHN0YXR1czsKLQlpbnQgaSwgaXJxLCByZXQ7Ci0KLQlyZXQgPSByZWdtYXBfcmVhZChtdDYzOTctPnJlZ21hcCwgcmVnLCAmc3RhdHVzKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIobXQ2Mzk3LT5kZXYsICJGYWlsZWQgdG8gcmVhZCBpcnEgc3RhdHVzOiAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0JCWlmIChzdGF0dXMgJiBCSVQoaSkpIHsKLQkJCWlycSA9IGlycV9maW5kX21hcHBpbmcobXQ2Mzk3LT5pcnFfZG9tYWluLCBpcnFiYXNlICsgaSk7Ci0JCQlpZiAoaXJxKQotCQkJCWhhbmRsZV9uZXN0ZWRfaXJxKGlycSk7Ci0JCX0KLQl9Ci0KLQlyZWdtYXBfd3JpdGUobXQ2Mzk3LT5yZWdtYXAsIHJlZywgc3RhdHVzKTsKLX0KLQotc3RhdGljIGlycXJldHVybl90IG10NjM5N19pcnFfdGhyZWFkKGludCBpcnEsIHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IG10NjM5N19jaGlwICptdDYzOTcgPSBkYXRhOwotCi0JbXQ2Mzk3X2lycV9oYW5kbGVfcmVnKG10NjM5NywgbXQ2Mzk3LT5pbnRfc3RhdHVzWzBdLCAwKTsKLQltdDYzOTdfaXJxX2hhbmRsZV9yZWcobXQ2Mzk3LCBtdDYzOTctPmludF9zdGF0dXNbMV0sIDE2KTsKLQotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIGludCBtdDYzOTdfaXJxX2RvbWFpbl9tYXAoc3RydWN0IGlycV9kb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEsCi0JCQkJCWlycV9od19udW1iZXJfdCBodykKLXsKLQlzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NyA9IGQtPmhvc3RfZGF0YTsKLQotCWlycV9zZXRfY2hpcF9kYXRhKGlycSwgbXQ2Mzk3KTsKLQlpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCAmbXQ2Mzk3X2lycV9jaGlwLCBoYW5kbGVfbGV2ZWxfaXJxKTsKLQlpcnFfc2V0X25lc3RlZF90aHJlYWQoaXJxLCAxKTsKLQlpcnFfc2V0X25vcHJvYmUoaXJxKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGlycV9kb21haW5fb3BzIG10NjM5N19pcnFfZG9tYWluX29wcyA9IHsKLQkubWFwID0gbXQ2Mzk3X2lycV9kb21haW5fbWFwLAotfTsKLQotc3RhdGljIGludCBtdDYzOTdfaXJxX2luaXQoc3RydWN0IG10NjM5N19jaGlwICptdDYzOTcpCi17Ci0JaW50IHJldDsKLQotCW11dGV4X2luaXQoJm10NjM5Ny0+aXJxbG9jayk7Ci0KLQkvKiBNYXNrIGFsbCBpbnRlcnJ1cHQgc291cmNlcyAqLwotCXJlZ21hcF93cml0ZShtdDYzOTctPnJlZ21hcCwgbXQ2Mzk3LT5pbnRfY29uWzBdLCAweDApOwotCXJlZ21hcF93cml0ZShtdDYzOTctPnJlZ21hcCwgbXQ2Mzk3LT5pbnRfY29uWzFdLCAweDApOwotCi0JbXQ2Mzk3LT5pcnFfZG9tYWluID0gaXJxX2RvbWFpbl9hZGRfbGluZWFyKG10NjM5Ny0+ZGV2LT5vZl9ub2RlLAotCQlNVDYzOTdfSVJRX05SLCAmbXQ2Mzk3X2lycV9kb21haW5fb3BzLCBtdDYzOTcpOwotCWlmICghbXQ2Mzk3LT5pcnFfZG9tYWluKSB7Ci0JCWRldl9lcnIobXQ2Mzk3LT5kZXYsICJjb3VsZCBub3QgY3JlYXRlIGlycSBkb21haW5cbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKLQl9Ci0KLQlyZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKG10NjM5Ny0+ZGV2LCBtdDYzOTctPmlycSwgTlVMTCwKLQkJbXQ2Mzk3X2lycV90aHJlYWQsIElSUUZfT05FU0hPVCwgIm10NjM5Ny1wbWljIiwgbXQ2Mzk3KTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIobXQ2Mzk3LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgaXJxPSVkOyBlcnI6ICVkXG4iLAotCQkJbXQ2Mzk3LT5pcnEsIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KICNpZmRlZiBDT05GSUdfUE1fU0xFRVAKIHN0YXRpYyBpbnQgbXQ2Mzk3X2lycV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKQEAgLTI5MCw3ICsxNjIsNyBAQCBzdGF0aWMgaW50IG10NjM5N19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gcG1pYy0+aXJxOwogCiAJc3dpdGNoIChpZCAmIDB4ZmYpIHsKLQljYXNlIE1UNjMyM19DSURfQ09ERToKKwljYXNlIE1UNjMyM19DSElQX0lEOgogCQlwbWljLT5pbnRfY29uWzBdID0gTVQ2MzIzX0lOVF9DT04wOwogCQlwbWljLT5pbnRfY29uWzFdID0gTVQ2MzIzX0lOVF9DT04xOwogCQlwbWljLT5pbnRfc3RhdHVzWzBdID0gTVQ2MzIzX0lOVF9TVEFUVVMwOwpAQCAtMzA0LDggKzE3Niw4IEBAIHN0YXRpYyBpbnQgbXQ2Mzk3X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQkJCSAgIDAsIHBtaWMtPmlycV9kb21haW4pOwogCQlicmVhazsKIAotCWNhc2UgTVQ2Mzk3X0NJRF9DT0RFOgotCWNhc2UgTVQ2MzkxX0NJRF9DT0RFOgorCWNhc2UgTVQ2MzkxX0NISVBfSUQ6CisJY2FzZSBNVDYzOTdfQ0hJUF9JRDoKIAkJcG1pYy0+aW50X2NvblswXSA9IE1UNjM5N19JTlRfQ09OMDsKIAkJcG1pYy0+aW50X2NvblsxXSA9IE1UNjM5N19JTlRfQ09OMTsKIAkJcG1pYy0+aW50X3N0YXR1c1swXSA9IE1UNjM5N19JTlRfU1RBVFVTMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL210NjM5Ny1pcnEuYyBiL2RyaXZlcnMvbWZkL210NjM5Ny1pcnEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmQzY2UxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZmQvbXQ2Mzk3LWlycS5jCkBAIC0wLDAgKzEsMTgxIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLy8KKy8vIENvcHlyaWdodCAoYykgMjAxOSBNZWRpYVRlayBJbmMuCisKKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9tdDYzMjMvY29yZS5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9tdDYzMjMvcmVnaXN0ZXJzLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL210NjM5Ny9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL210NjM5Ny9yZWdpc3RlcnMuaD4KKworc3RhdGljIHZvaWQgbXQ2Mzk3X2lycV9sb2NrKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKK3sKKwlzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOworCisJbXV0ZXhfbG9jaygmbXQ2Mzk3LT5pcnFsb2NrKTsKK30KKworc3RhdGljIHZvaWQgbXQ2Mzk3X2lycV9zeW5jX3VubG9jayhzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEpCit7CisJc3RydWN0IG10NjM5N19jaGlwICptdDYzOTcgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkYXRhKTsKKworCXJlZ21hcF93cml0ZShtdDYzOTctPnJlZ21hcCwgbXQ2Mzk3LT5pbnRfY29uWzBdLAorCQkgICAgIG10NjM5Ny0+aXJxX21hc2tzX2N1clswXSk7CisJcmVnbWFwX3dyaXRlKG10NjM5Ny0+cmVnbWFwLCBtdDYzOTctPmludF9jb25bMV0sCisJCSAgICAgbXQ2Mzk3LT5pcnFfbWFza3NfY3VyWzFdKTsKKworCW11dGV4X3VubG9jaygmbXQ2Mzk3LT5pcnFsb2NrKTsKK30KKworc3RhdGljIHZvaWQgbXQ2Mzk3X2lycV9kaXNhYmxlKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKK3sKKwlzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOworCWludCBzaGlmdCA9IGRhdGEtPmh3aXJxICYgMHhmOworCWludCByZWcgPSBkYXRhLT5od2lycSA+PiA0OworCisJbXQ2Mzk3LT5pcnFfbWFza3NfY3VyW3JlZ10gJj0gfkJJVChzaGlmdCk7Cit9CisKK3N0YXRpYyB2b2lkIG10NjM5N19pcnFfZW5hYmxlKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKK3sKKwlzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOworCWludCBzaGlmdCA9IGRhdGEtPmh3aXJxICYgMHhmOworCWludCByZWcgPSBkYXRhLT5od2lycSA+PiA0OworCisJbXQ2Mzk3LT5pcnFfbWFza3NfY3VyW3JlZ10gfD0gQklUKHNoaWZ0KTsKK30KKworI2lmZGVmIENPTkZJR19QTV9TTEVFUAorc3RhdGljIGludCBtdDYzOTdfaXJxX3NldF93YWtlKHN0cnVjdCBpcnFfZGF0YSAqaXJxX2RhdGEsIHVuc2lnbmVkIGludCBvbikKK3sKKwlzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGlycV9kYXRhKTsKKwlpbnQgc2hpZnQgPSBpcnFfZGF0YS0+aHdpcnEgJiAweGY7CisJaW50IHJlZyA9IGlycV9kYXRhLT5od2lycSA+PiA0OworCisJaWYgKG9uKQorCQltdDYzOTctPndha2VfbWFza1tyZWddIHw9IEJJVChzaGlmdCk7CisJZWxzZQorCQltdDYzOTctPndha2VfbWFza1tyZWddICY9IH5CSVQoc2hpZnQpOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorI2RlZmluZSBtdDYzOTdfaXJxX3NldF93YWtlIE5VTEwKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IGlycV9jaGlwIG10NjM5N19pcnFfY2hpcCA9IHsKKwkubmFtZSA9ICJtdDYzOTctaXJxIiwKKwkuaXJxX2J1c19sb2NrID0gbXQ2Mzk3X2lycV9sb2NrLAorCS5pcnFfYnVzX3N5bmNfdW5sb2NrID0gbXQ2Mzk3X2lycV9zeW5jX3VubG9jaywKKwkuaXJxX2VuYWJsZSA9IG10NjM5N19pcnFfZW5hYmxlLAorCS5pcnFfZGlzYWJsZSA9IG10NjM5N19pcnFfZGlzYWJsZSwKKwkuaXJxX3NldF93YWtlID0gbXQ2Mzk3X2lycV9zZXRfd2FrZSwKK307CisKK3N0YXRpYyB2b2lkIG10NjM5N19pcnFfaGFuZGxlX3JlZyhzdHJ1Y3QgbXQ2Mzk3X2NoaXAgKm10NjM5NywgaW50IHJlZywKKwkJCQkgIGludCBpcnFiYXNlKQoreworCXVuc2lnbmVkIGludCBzdGF0dXM7CisJaW50IGksIGlycSwgcmV0OworCisJcmV0ID0gcmVnbWFwX3JlYWQobXQ2Mzk3LT5yZWdtYXAsIHJlZywgJnN0YXR1cyk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKG10NjM5Ny0+ZGV2LCAiRmFpbGVkIHRvIHJlYWQgaXJxIHN0YXR1czogJWRcbiIsIHJldCk7CisJCXJldHVybjsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgeworCQlpZiAoc3RhdHVzICYgQklUKGkpKSB7CisJCQlpcnEgPSBpcnFfZmluZF9tYXBwaW5nKG10NjM5Ny0+aXJxX2RvbWFpbiwgaXJxYmFzZSArIGkpOworCQkJaWYgKGlycSkKKwkJCQloYW5kbGVfbmVzdGVkX2lycShpcnEpOworCQl9CisJfQorCisJcmVnbWFwX3dyaXRlKG10NjM5Ny0+cmVnbWFwLCByZWcsIHN0YXR1cyk7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBtdDYzOTdfaXJxX3RocmVhZChpbnQgaXJxLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBtdDYzOTdfY2hpcCAqbXQ2Mzk3ID0gZGF0YTsKKworCW10NjM5N19pcnFfaGFuZGxlX3JlZyhtdDYzOTcsIG10NjM5Ny0+aW50X3N0YXR1c1swXSwgMCk7CisJbXQ2Mzk3X2lycV9oYW5kbGVfcmVnKG10NjM5NywgbXQ2Mzk3LT5pbnRfc3RhdHVzWzFdLCAxNik7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpbnQgbXQ2Mzk3X2lycV9kb21haW5fbWFwKHN0cnVjdCBpcnFfZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaXJxLAorCQkJCSBpcnFfaHdfbnVtYmVyX3QgaHcpCit7CisJc3RydWN0IG10NjM5N19jaGlwICptdDYzOTcgPSBkLT5ob3N0X2RhdGE7CisKKwlpcnFfc2V0X2NoaXBfZGF0YShpcnEsIG10NjM5Nyk7CisJaXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKGlycSwgJm10NjM5N19pcnFfY2hpcCwgaGFuZGxlX2xldmVsX2lycSk7CisJaXJxX3NldF9uZXN0ZWRfdGhyZWFkKGlycSwgMSk7CisJaXJxX3NldF9ub3Byb2JlKGlycSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBtdDYzOTdfaXJxX2RvbWFpbl9vcHMgPSB7CisJLm1hcCA9IG10NjM5N19pcnFfZG9tYWluX21hcCwKK307CisKK2ludCBtdDYzOTdfaXJxX2luaXQoc3RydWN0IG10NjM5N19jaGlwICpjaGlwKQoreworCWludCByZXQ7CisKKwltdXRleF9pbml0KCZjaGlwLT5pcnFsb2NrKTsKKworCXN3aXRjaCAoY2hpcC0+Y2hpcF9pZCkgeworCWNhc2UgTVQ2MzIzX0NISVBfSUQ6CisJCWNoaXAtPmludF9jb25bMF0gPSBNVDYzMjNfSU5UX0NPTjA7CisJCWNoaXAtPmludF9jb25bMV0gPSBNVDYzMjNfSU5UX0NPTjE7CisJCWNoaXAtPmludF9zdGF0dXNbMF0gPSBNVDYzMjNfSU5UX1NUQVRVUzA7CisJCWNoaXAtPmludF9zdGF0dXNbMV0gPSBNVDYzMjNfSU5UX1NUQVRVUzE7CisJCWJyZWFrOworCisJY2FzZSBNVDYzOTFfQ0hJUF9JRDoKKwljYXNlIE1UNjM5N19DSElQX0lEOgorCQljaGlwLT5pbnRfY29uWzBdID0gTVQ2Mzk3X0lOVF9DT04wOworCQljaGlwLT5pbnRfY29uWzFdID0gTVQ2Mzk3X0lOVF9DT04xOworCQljaGlwLT5pbnRfc3RhdHVzWzBdID0gTVQ2Mzk3X0lOVF9TVEFUVVMwOworCQljaGlwLT5pbnRfc3RhdHVzWzFdID0gTVQ2Mzk3X0lOVF9TVEFUVVMxOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCWRldl9lcnIoY2hpcC0+ZGV2LCAidW5zdXBwb3J0ZWQgY2hpcDogMHgleFxuIiwgY2hpcC0+Y2hpcF9pZCk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCS8qIE1hc2sgYWxsIGludGVycnVwdCBzb3VyY2VzICovCisJcmVnbWFwX3dyaXRlKGNoaXAtPnJlZ21hcCwgY2hpcC0+aW50X2NvblswXSwgMHgwKTsKKwlyZWdtYXBfd3JpdGUoY2hpcC0+cmVnbWFwLCBjaGlwLT5pbnRfY29uWzFdLCAweDApOworCisJY2hpcC0+aXJxX2RvbWFpbiA9IGlycV9kb21haW5fYWRkX2xpbmVhcihjaGlwLT5kZXYtPm9mX25vZGUsCisJCQkJCQkgTVQ2Mzk3X0lSUV9OUiwKKwkJCQkJCSAmbXQ2Mzk3X2lycV9kb21haW5fb3BzLAorCQkJCQkJIGNoaXApOworCWlmICghY2hpcC0+aXJxX2RvbWFpbikgeworCQlkZXZfZXJyKGNoaXAtPmRldiwgImNvdWxkIG5vdCBjcmVhdGUgaXJxIGRvbWFpblxuIik7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoY2hpcC0+ZGV2LCBjaGlwLT5pcnEsIE5VTEwsCisJCQkJCW10NjM5N19pcnFfdGhyZWFkLCBJUlFGX09ORVNIT1QsCisJCQkJCSJtdDYzOTctcG1pYyIsIGNoaXApOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihjaGlwLT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgaXJxPSVkOyBlcnI6ICVkXG4iLAorCQkJY2hpcC0+aXJxLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvcGFsbWFzLmMgYi9kcml2ZXJzL21mZC9wYWxtYXMuYwppbmRleCA2ODE4ZmYzLi5mNWIzZmE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9wYWxtYXMuYworKysgYi9kcml2ZXJzL21mZC9wYWxtYXMuYwpAQCAtNTQ5LDEyICs1NDksMTIgQEAgc3RhdGljIGludCBwYWxtYXNfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMsCiAJCQlwYWxtYXMtPmkyY19jbGllbnRzW2ldID0gaTJjOwogCQllbHNlIHsKIAkJCXBhbG1hcy0+aTJjX2NsaWVudHNbaV0gPQotCQkJCQlpMmNfbmV3X2R1bW15KGkyYy0+YWRhcHRlciwKKwkJCQkJaTJjX25ld19kdW1teV9kZXZpY2UoaTJjLT5hZGFwdGVyLAogCQkJCQkJCWkyYy0+YWRkciArIGkpOwotCQkJaWYgKCFwYWxtYXMtPmkyY19jbGllbnRzW2ldKSB7CisJCQlpZiAoSVNfRVJSKHBhbG1hcy0+aTJjX2NsaWVudHNbaV0pKSB7CiAJCQkJZGV2X2VycihwYWxtYXMtPmRldiwKIAkJCQkJImNhbid0IGF0dGFjaCBjbGllbnQgJWRcbiIsIGkpOwotCQkJCXJldCA9IC1FTk9NRU07CisJCQkJcmV0ID0gUFRSX0VSUihwYWxtYXMtPmkyY19jbGllbnRzW2ldKTsKIAkJCQlnb3RvIGVycl9pMmM7CiAJCQl9CiAJCQlwYWxtYXMtPmkyY19jbGllbnRzW2ldLT5kZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvcWNvbV9ycG0uYyBiL2RyaXZlcnMvbWZkL3Fjb21fcnBtLmMKaW5kZXggNGQ3ZTkwMC4uNzFiYzM0YjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL3Fjb21fcnBtLmMKKysrIGIvZHJpdmVycy9tZmQvcWNvbV9ycG0uYwpAQCAtNTYxLDIyICs1NjEsMTYgQEAgc3RhdGljIGludCBxY29tX3JwbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWNsa19wcmVwYXJlX2VuYWJsZShycG0tPnJhbWNsayk7IC8qIEFjY2VwdHMgTlVMTCAqLwogCiAJaXJxX2FjayA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJhY2siKTsKLQlpZiAoaXJxX2FjayA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAicmVxdWlyZWQgYWNrIGludGVycnVwdCBtaXNzaW5nXG4iKTsKKwlpZiAoaXJxX2FjayA8IDApCiAJCXJldHVybiBpcnFfYWNrOwotCX0KIAogCWlycV9lcnIgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShwZGV2LCAiZXJyIik7Ci0JaWYgKGlycV9lcnIgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgInJlcXVpcmVkIGVyciBpbnRlcnJ1cHQgbWlzc2luZ1xuIik7CisJaWYgKGlycV9lcnIgPCAwKQogCQlyZXR1cm4gaXJxX2VycjsKLQl9CiAKIAlpcnFfd2FrZXVwID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgIndha2V1cCIpOwotCWlmIChpcnFfd2FrZXVwIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJyZXF1aXJlZCB3YWtldXAgaW50ZXJydXB0IG1pc3NpbmdcbiIpOworCWlmIChpcnFfd2FrZXVwIDwgMCkKIAkJcmV0dXJuIGlycV93YWtldXA7Ci0JfQogCiAJbWF0Y2ggPSBvZl9tYXRjaF9kZXZpY2UocWNvbV9ycG1fb2ZfbWF0Y2gsICZwZGV2LT5kZXYpOwogCWlmICghbWF0Y2gpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9zbTUwMS5jIGIvZHJpdmVycy9tZmQvc201MDEuYwppbmRleCA5YjliMDZkLi4xNTQyNzBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9zbTUwMS5jCisrKyBiL2RyaXZlcnMvbWZkL3NtNTAxLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2kyYy1ncGlvLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9kcml2ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvL21hY2hpbmUuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAKQEAgLTEzOTQsMTAgKzEzOTUsOCBAQCBzdGF0aWMgaW50IHNtNTAxX3BsYXRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQogCXNtLT5wbGF0ZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoJmRldi0+ZGV2KTsKIAogCXJldCA9IHBsYXRmb3JtX2dldF9pcnEoZGV2LCAwKTsKLQlpZiAocmV0IDwgMCkgewotCQlkZXZfZXJyKCZkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgaXJxIHJlc291cmNlXG4iKTsKKwlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJfcmVzOwotCX0KIAlzbS0+aXJxID0gcmV0OwogCiAJc20tPmlvX3JlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShkZXYsIElPUkVTT1VSQ0VfTUVNLCAxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL3N5c2Nvbi5jIGIvZHJpdmVycy9tZmQvc3lzY29uLmMKaW5kZXggYjY1ZTU4NS4uNjYwNzIzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvc3lzY29uLmMKKysrIGIvZHJpdmVycy9tZmQvc3lzY29uLmMKQEAgLTQwLDcgKzQwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHN5c2Nvbl9yZWdtYXBfY29uZmlnID0gewogCS5yZWdfc3RyaWRlID0gNCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3Qgc3lzY29uICpvZl9zeXNjb25fcmVnaXN0ZXIoc3RydWN0IGRldmljZV9ub2RlICpucCkKK3N0YXRpYyBzdHJ1Y3Qgc3lzY29uICpvZl9zeXNjb25fcmVnaXN0ZXIoc3RydWN0IGRldmljZV9ub2RlICpucCwgYm9vbCBjaGVja19jbGspCiB7CiAJc3RydWN0IGNsayAqY2xrOwogCXN0cnVjdCBzeXNjb24gKnN5c2NvbjsKQEAgLTUxLDkgKzUxLDYgQEAgc3RhdGljIHN0cnVjdCBzeXNjb24gKm9mX3N5c2Nvbl9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCXN0cnVjdCByZWdtYXBfY29uZmlnIHN5c2Nvbl9jb25maWcgPSBzeXNjb25fcmVnbWFwX2NvbmZpZzsKIAlzdHJ1Y3QgcmVzb3VyY2UgcmVzOwogCi0JaWYgKCFvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgInN5c2NvbiIpKQotCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKLQogCXN5c2NvbiA9IGt6YWxsb2Moc2l6ZW9mKCpzeXNjb24pLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXN5c2NvbikKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CkBAIC0xMTcsMTYgKzExNCwxOCBAQCBzdGF0aWMgc3RydWN0IHN5c2NvbiAqb2Zfc3lzY29uX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJCWdvdG8gZXJyX3JlZ21hcDsKIAl9CiAKLQljbGsgPSBvZl9jbGtfZ2V0KG5wLCAwKTsKLQlpZiAoSVNfRVJSKGNsaykpIHsKLQkJcmV0ID0gUFRSX0VSUihjbGspOwotCQkvKiBjbG9jayBpcyBvcHRpb25hbCAqLwotCQlpZiAocmV0ICE9IC1FTk9FTlQpCi0JCQlnb3RvIGVycl9jbGs7Ci0JfSBlbHNlIHsKLQkJcmV0ID0gcmVnbWFwX21taW9fYXR0YWNoX2NsayhyZWdtYXAsIGNsayk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycl9hdHRhY2g7CisJaWYgKGNoZWNrX2NsaykgeworCQljbGsgPSBvZl9jbGtfZ2V0KG5wLCAwKTsKKwkJaWYgKElTX0VSUihjbGspKSB7CisJCQlyZXQgPSBQVFJfRVJSKGNsayk7CisJCQkvKiBjbG9jayBpcyBvcHRpb25hbCAqLworCQkJaWYgKHJldCAhPSAtRU5PRU5UKQorCQkJCWdvdG8gZXJyX2NsazsKKwkJfSBlbHNlIHsKKwkJCXJldCA9IHJlZ21hcF9tbWlvX2F0dGFjaF9jbGsocmVnbWFwLCBjbGspOworCQkJaWYgKHJldCkKKwkJCQlnb3RvIGVycl9hdHRhY2g7CisJCX0KIAl9CiAKIAlzeXNjb24tPnJlZ21hcCA9IHJlZ21hcDsKQEAgLTE1MCw3ICsxNDksOCBAQCBzdGF0aWMgc3RydWN0IHN5c2NvbiAqb2Zfc3lzY29uX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KIAotc3RydWN0IHJlZ21hcCAqc3lzY29uX25vZGVfdG9fcmVnbWFwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCitzdGF0aWMgc3RydWN0IHJlZ21hcCAqZGV2aWNlX25vZGVfZ2V0X3JlZ21hcChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAorCQkJCQkgICAgIGJvb2wgY2hlY2tfY2xrKQogewogCXN0cnVjdCBzeXNjb24gKmVudHJ5LCAqc3lzY29uID0gTlVMTDsKIApAQCAtMTY1LDEzICsxNjUsMjcgQEAgc3RydWN0IHJlZ21hcCAqc3lzY29uX25vZGVfdG9fcmVnbWFwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJc3Bpbl91bmxvY2soJnN5c2Nvbl9saXN0X3Nsb2NrKTsKIAogCWlmICghc3lzY29uKQotCQlzeXNjb24gPSBvZl9zeXNjb25fcmVnaXN0ZXIobnApOworCQlzeXNjb24gPSBvZl9zeXNjb25fcmVnaXN0ZXIobnAsIGNoZWNrX2Nsayk7CiAKIAlpZiAoSVNfRVJSKHN5c2NvbikpCiAJCXJldHVybiBFUlJfQ0FTVChzeXNjb24pOwogCiAJcmV0dXJuIHN5c2Nvbi0+cmVnbWFwOwogfQorCitzdHJ1Y3QgcmVnbWFwICpkZXZpY2Vfbm9kZV90b19yZWdtYXAoc3RydWN0IGRldmljZV9ub2RlICpucCkKK3sKKwlyZXR1cm4gZGV2aWNlX25vZGVfZ2V0X3JlZ21hcChucCwgZmFsc2UpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZGV2aWNlX25vZGVfdG9fcmVnbWFwKTsKKworc3RydWN0IHJlZ21hcCAqc3lzY29uX25vZGVfdG9fcmVnbWFwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCit7CisJaWYgKCFvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgInN5c2NvbiIpKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKworCXJldHVybiBkZXZpY2Vfbm9kZV9nZXRfcmVnbWFwKG5wLCB0cnVlKTsKK30KIEVYUE9SVF9TWU1CT0xfR1BMKHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCk7CiAKIHN0cnVjdCByZWdtYXAgKnN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X2NvbXBhdGlibGUoY29uc3QgY2hhciAqcykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL3RpbWJlcmRhbGUuYyBiL2RyaXZlcnMvbWZkL3RpbWJlcmRhbGUuYwppbmRleCA2MGMxMjJlLi5mYWVjYmNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC90aW1iZXJkYWxlLmMKKysrIGIvZHJpdmVycy9tZmQvdGltYmVyZGFsZS5jCkBAIC02MjYsOCArNjI2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCB0aW1iZXJkYWxlX2NlbGxzX2JhcjJbXSA9IHsKIHN0YXRpYyBzc2l6ZV90IHNob3dfZndfdmVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJY2hhciAqYnVmKQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwotCXN0cnVjdCB0aW1iZXJkYWxlX2RldmljZSAqcHJpdiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgdGltYmVyZGFsZV9kZXZpY2UgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkLiVkLiVkXG4iLCBwcml2LT5mdy5tYWpvciwgcHJpdi0+ZncubWlub3IsCiAJCXByaXYtPmZ3LmNvbmZpZyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC90cHM4MDAzMS5jIGIvZHJpdmVycy9tZmQvdHBzODAwMzEuYwppbmRleCA4NjUyNTdhLi45MDc0NTJiOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvdHBzODAwMzEuYworKysgYi9kcml2ZXJzL21mZC90cHM4MDAzMS5jCkBAIC00MzcsMTIgKzQzNywxMSBAQCBzdGF0aWMgaW50IHRwczgwMDMxX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJCWlmICh0cHM4MDAzMV9zbGF2ZV9hZGRyZXNzW2ldID09IGNsaWVudC0+YWRkcikKIAkJCXRwczgwMDMxLT5jbGllbnRzW2ldID0gY2xpZW50OwogCQllbHNlCi0JCQl0cHM4MDAzMS0+Y2xpZW50c1tpXSA9IGkyY19uZXdfZHVtbXkoY2xpZW50LT5hZGFwdGVyLAotCQkJCQkJdHBzODAwMzFfc2xhdmVfYWRkcmVzc1tpXSk7Ci0JCWlmICghdHBzODAwMzEtPmNsaWVudHNbaV0pIHsKKwkJCXRwczgwMDMxLT5jbGllbnRzW2ldID0gZGV2bV9pMmNfbmV3X2R1bW15X2RldmljZSgmY2xpZW50LT5kZXYsCisJCQkJCQljbGllbnQtPmFkYXB0ZXIsIHRwczgwMDMxX3NsYXZlX2FkZHJlc3NbaV0pOworCQlpZiAoSVNfRVJSKHRwczgwMDMxLT5jbGllbnRzW2ldKSkgewogCQkJZGV2X2VycigmY2xpZW50LT5kZXYsICJjYW4ndCBhdHRhY2ggY2xpZW50ICVkXG4iLCBpKTsKLQkJCXJldCA9IC1FTk9NRU07Ci0JCQlnb3RvIGZhaWxfY2xpZW50X3JlZzsKKwkJCXJldHVybiBQVFJfRVJSKHRwczgwMDMxLT5jbGllbnRzW2ldKTsKIAkJfQogCiAJCWkyY19zZXRfY2xpZW50ZGF0YSh0cHM4MDAzMS0+Y2xpZW50c1tpXSwgdHBzODAwMzEpOwpAQCAtNDUyLDcgKzQ1MSw3IEBAIHN0YXRpYyBpbnQgdHBzODAwMzFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJCXJldCA9IFBUUl9FUlIodHBzODAwMzEtPnJlZ21hcFtpXSk7CiAJCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKIAkJCQkicmVnbWFwICVkIGluaXQgZmFpbGVkLCBlcnIgJWRcbiIsIGksIHJldCk7Ci0JCQlnb3RvIGZhaWxfY2xpZW50X3JlZzsKKwkJCXJldHVybiByZXQ7CiAJCX0KIAl9CiAKQEAgLTQ2MSw3ICs0NjAsNyBAQCBzdGF0aWMgaW50IHRwczgwMDMxX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJaWYgKHJldCA8IDApIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsCiAJCQkiU2lsaWNvbiB2ZXJzaW9uIG51bWJlciByZWFkIGZhaWxlZDogJWRcbiIsIHJldCk7Ci0JCWdvdG8gZmFpbF9jbGllbnRfcmVnOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXJldCA9IHRwczgwMDMxX3JlYWQoJmNsaWVudC0+ZGV2LCBUUFM4MDAzMV9TTEFWRV9JRDMsCkBAIC00NjksNyArNDY4LDcgQEAgc3RhdGljIGludCB0cHM4MDAzMV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAogCQkJIlNpbGljb24gZWVwcm9tIHZlcnNpb24gcmVhZCBmYWlsZWQ6ICVkXG4iLCByZXQpOwotCQlnb3RvIGZhaWxfY2xpZW50X3JlZzsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIAlkZXZfaW5mbygmY2xpZW50LT5kZXYsICJFUyB2ZXJzaW9uIDB4JTAyeCBhbmQgRVBST00gdmVyc2lvbiAweCUwMnhcbiIsCkBAIC00ODIsNyArNDgxLDcgQEAgc3RhdGljIGludCB0cHM4MDAzMV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCXJldCA9IHRwczgwMDMxX2lycV9pbml0KHRwczgwMDMxLCBjbGllbnQtPmlycSwgcGRhdGEtPmlycV9iYXNlKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiSVJRIGluaXQgZmFpbGVkOiAlZFxuIiwgcmV0KTsKLQkJZ290byBmYWlsX2NsaWVudF9yZWc7CisJCXJldHVybiByZXQ7CiAJfQogCiAJdHBzODAwMzFfcHVwZF9pbml0KHRwczgwMDMxLCBwZGF0YSk7CkBAIC01MDYsMTIgKzUwNSw2IEBAIHN0YXRpYyBpbnQgdHBzODAwMzFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAogZmFpbF9tZmRfYWRkOgogCXJlZ21hcF9kZWxfaXJxX2NoaXAoY2xpZW50LT5pcnEsIHRwczgwMDMxLT5pcnFfZGF0YSk7Ci0KLWZhaWxfY2xpZW50X3JlZzoKLQlmb3IgKGkgPSAwOyBpIDwgVFBTODAwMzFfTlVNX1NMQVZFUzsgaSsrKSB7Ci0JCWlmICh0cHM4MDAzMS0+Y2xpZW50c1tpXSAgJiYgKHRwczgwMDMxLT5jbGllbnRzW2ldICE9IGNsaWVudCkpCi0JCQlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UodHBzODAwMzEtPmNsaWVudHNbaV0pOwotCX0KIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC90d2wtY29yZS5jIGIvZHJpdmVycy9tZmQvdHdsLWNvcmUuYwppbmRleCA0NDhkOTM5Li4yMGNmOGNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC90d2wtY29yZS5jCisrKyBiL2RyaXZlcnMvbWZkL3R3bC1jb3JlLmMKQEAgLTExNDEsMTIgKzExNDEsMTIgQEAgdHdsX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKIAkJaWYgKGkgPT0gMCkgewogCQkJdHdsLT5jbGllbnQgPSBjbGllbnQ7CiAJCX0gZWxzZSB7Ci0JCQl0d2wtPmNsaWVudCA9IGkyY19uZXdfZHVtbXkoY2xpZW50LT5hZGFwdGVyLAorCQkJdHdsLT5jbGllbnQgPSBpMmNfbmV3X2R1bW15X2RldmljZShjbGllbnQtPmFkYXB0ZXIsCiAJCQkJCQkgICAgY2xpZW50LT5hZGRyICsgaSk7Ci0JCQlpZiAoIXR3bC0+Y2xpZW50KSB7CisJCQlpZiAoSVNfRVJSKHR3bC0+Y2xpZW50KSkgewogCQkJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAogCQkJCQkiY2FuJ3QgYXR0YWNoIGNsaWVudCAlZFxuIiwgaSk7Ci0JCQkJc3RhdHVzID0gLUVOT01FTTsKKwkJCQlzdGF0dXMgPSBQVFJfRVJSKHR3bC0+Y2xpZW50KTsKIAkJCQlnb3RvIGZhaWw7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9jeGwvbWFpbi5jIGIvZHJpdmVycy9taXNjL2N4bC9tYWluLmMKaW5kZXggNDgyYTJjMS4uNDNiMzEyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2N4bC9tYWluLmMKKysrIGIvZHJpdmVycy9taXNjL2N4bC9tYWluLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC90YXNrLmg+CiAKICNpbmNsdWRlIDxhc20vY3B1dGFibGUuaD4KKyNpbmNsdWRlIDxhc20vbW11Lmg+CiAjaW5jbHVkZSA8bWlzYy9jeGwtYmFzZS5oPgogCiAjaW5jbHVkZSAiY3hsLmgiCkBAIC0zMTUsNiArMzE2LDkgQEAgc3RhdGljIGludCBfX2luaXQgaW5pdF9jeGwodm9pZCkKIHsKIAlpbnQgcmMgPSAwOwogCisJaWYgKCF0bGJpZV9jYXBhYmxlKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCWlmICgocmMgPSBjeGxfZmlsZV9pbml0KCkpKQogCQlyZXR1cm4gcmM7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9lZXByb20vYXQyNC5jIGIvZHJpdmVycy9taXNjL2VlcHJvbS9hdDI0LmMKaW5kZXggNTE4OTQ1Yi4uMmNjY2Q4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2VlcHJvbS9hdDI0LmMKKysrIGIvZHJpdmVycy9taXNjL2VlcHJvbS9hdDI0LmMKQEAgLTE0LDcgKzE0LDYgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbG9nMi5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9wZXJ0eS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL29jeGwvbWFpbi5jIGIvZHJpdmVycy9taXNjL29jeGwvbWFpbi5jCmluZGV4IDcyMTBkOWUuLmVmNzNjZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9vY3hsL21haW4uYworKysgYi9kcml2ZXJzL21pc2Mvb2N4bC9tYWluLmMKQEAgLTIsMTIgKzIsMTYgQEAKIC8vIENvcHlyaWdodCAyMDE3IElCTSBDb3JwLgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGFzbS9tbXUuaD4KICNpbmNsdWRlICJvY3hsX2ludGVybmFsLmgiCiAKIHN0YXRpYyBpbnQgX19pbml0IGluaXRfb2N4bCh2b2lkKQogewogCWludCByYyA9IDA7CiAKKwlpZiAoIXRsYmllX2NhcGFibGUpCisJCXJldHVybiAtRUlOVkFMOworCiAJcmMgPSBvY3hsX2ZpbGVfaW5pdCgpOwogCWlmIChyYykKIAkJcmV0dXJuIHJjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL3NnaS1ncnUvZ3J1ZmlsZS5jIGIvZHJpdmVycy9taXNjL3NnaS1ncnUvZ3J1ZmlsZS5jCmluZGV4IGEyYTE0MmEuLjlkMDQyMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9zZ2ktZ3J1L2dydWZpbGUuYworKysgYi9kcml2ZXJzL21pc2Mvc2dpLWdydS9ncnVmaWxlLmMKQEAgLTU3Myw2ICs1NzMsNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgZ3J1X2V4aXQodm9pZCkKIAlncnVfZnJlZV90YWJsZXMoKTsKIAltaXNjX2RlcmVnaXN0ZXIoJmdydV9taXNjZGV2KTsKIAlncnVfcHJvY19leGl0KCk7CisJbW11X25vdGlmaWVyX3N5bmNocm9uaXplKCk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGdydV9mb3BzID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL3NnaS1ncnUvZ3J1dGFibGVzLmggYi9kcml2ZXJzL21pc2Mvc2dpLWdydS9ncnV0YWJsZXMuaAppbmRleCA0MzgxOTFjLi5hN2U0NGIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2Mvc2dpLWdydS9ncnV0YWJsZXMuaAorKysgYi9kcml2ZXJzL21pc2Mvc2dpLWdydS9ncnV0YWJsZXMuaApAQCAtMzA3LDEwICszMDcsOCBAQCBzdHJ1Y3QgZ3J1X21tX3RyYWNrZXIgewkJCQkvKiBwYWNrIHRvIHJlZHVjZSBzaXplICovCiAKIHN0cnVjdCBncnVfbW1fc3RydWN0IHsKIAlzdHJ1Y3QgbW11X25vdGlmaWVyCW1zX25vdGlmaWVyOwotCWF0b21pY190CQltc19yZWZjbnQ7CiAJc3BpbmxvY2tfdAkJbXNfYXNpZF9sb2NrOwkvKiBwcm90ZWN0cyBBU0lEIGFzc2lnbm1lbnQgKi8KIAlhdG9taWNfdAkJbXNfcmFuZ2VfYWN0aXZlOy8qIG51bSByYW5nZV9pbnZhbHMgYWN0aXZlICovCi0JY2hhcgkJCW1zX3JlbGVhc2VkOwogCXdhaXRfcXVldWVfaGVhZF90CW1zX3dhaXRfcXVldWU7CiAJREVDTEFSRV9CSVRNQVAobXNfYXNpZG1hcCwgR1JVX01BWF9HUlVTKTsKIAlzdHJ1Y3QgZ3J1X21tX3RyYWNrZXIJbXNfYXNpZHNbR1JVX01BWF9HUlVTXTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9zZ2ktZ3J1L2dydXRsYnB1cmdlLmMgYi9kcml2ZXJzL21pc2Mvc2dpLWdydS9ncnV0bGJwdXJnZS5jCmluZGV4IDU5YmEwYWQuLjEwOTIxY2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9zZ2ktZ3J1L2dydXRsYnB1cmdlLmMKKysrIGIvZHJpdmVycy9taXNjL3NnaS1ncnUvZ3J1dGxicHVyZ2UuYwpAQCAtMjM1LDgzICsyMzUsNDcgQEAgc3RhdGljIHZvaWQgZ3J1X2ludmFsaWRhdGVfcmFuZ2VfZW5kKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAogCQlnbXMsIHJhbmdlLT5zdGFydCwgcmFuZ2UtPmVuZCk7CiB9CiAKLXN0YXRpYyB2b2lkIGdydV9yZWxlYXNlKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSkKK3N0YXRpYyBzdHJ1Y3QgbW11X25vdGlmaWVyICpncnVfYWxsb2Nfbm90aWZpZXIoc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0Jc3RydWN0IGdydV9tbV9zdHJ1Y3QgKmdtcyA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGdydV9tbV9zdHJ1Y3QsCi0JCQkJCQkgbXNfbm90aWZpZXIpOworCXN0cnVjdCBncnVfbW1fc3RydWN0ICpnbXM7CiAKLQlnbXMtPm1zX3JlbGVhc2VkID0gMTsKLQlncnVfZGJnKGdydWRldiwgImdtcyAlcFxuIiwgZ21zKTsKKwlnbXMgPSBremFsbG9jKHNpemVvZigqZ21zKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFnbXMpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCVNUQVQoZ21zX2FsbG9jKTsKKwlzcGluX2xvY2tfaW5pdCgmZ21zLT5tc19hc2lkX2xvY2spOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmdtcy0+bXNfd2FpdF9xdWV1ZSk7CisKKwlyZXR1cm4gJmdtcy0+bXNfbm90aWZpZXI7CiB9CiAKK3N0YXRpYyB2b2lkIGdydV9mcmVlX25vdGlmaWVyKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uKQoreworCWtmcmVlKGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGdydV9tbV9zdHJ1Y3QsIG1zX25vdGlmaWVyKSk7CisJU1RBVChnbXNfZnJlZSk7Cit9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyBncnVfbW11b3BzID0gewogCS5pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0CT0gZ3J1X2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQsCiAJLmludmFsaWRhdGVfcmFuZ2VfZW5kCT0gZ3J1X2ludmFsaWRhdGVfcmFuZ2VfZW5kLAotCS5yZWxlYXNlCQk9IGdydV9yZWxlYXNlLAorCS5hbGxvY19ub3RpZmllcgkJPSBncnVfYWxsb2Nfbm90aWZpZXIsCisJLmZyZWVfbm90aWZpZXIJCT0gZ3J1X2ZyZWVfbm90aWZpZXIsCiB9OwogCi0vKiBNb3ZlIHRoaXMgdG8gdGhlIGJhc2ljIG1tdV9ub3RpZmllciBmaWxlLiBCdXQgZm9yIG5vdy4uLiAqLwotc3RhdGljIHN0cnVjdCBtbXVfbm90aWZpZXIgKm1tdV9maW5kX29wcyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwKLQkJCWNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzICpvcHMpCi17Ci0Jc3RydWN0IG1tdV9ub3RpZmllciAqbW4sICpncnVfbW4gPSBOVUxMOwotCi0JaWYgKG1tLT5tbXVfbm90aWZpZXJfbW0pIHsKLQkJcmN1X3JlYWRfbG9jaygpOwotCQlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UobW4sICZtbS0+bW11X25vdGlmaWVyX21tLT5saXN0LAotCQkJCQkgaGxpc3QpCi0JCSAgICBpZiAobW4tPm9wcyA9PSBvcHMpIHsKLQkJCWdydV9tbiA9IG1uOwotCQkJYnJlYWs7Ci0JCX0KLQkJcmN1X3JlYWRfdW5sb2NrKCk7Ci0JfQotCXJldHVybiBncnVfbW47Ci19Ci0KIHN0cnVjdCBncnVfbW1fc3RydWN0ICpncnVfcmVnaXN0ZXJfbW11X25vdGlmaWVyKHZvaWQpCiB7Ci0Jc3RydWN0IGdydV9tbV9zdHJ1Y3QgKmdtczsKIAlzdHJ1Y3QgbW11X25vdGlmaWVyICptbjsKLQlpbnQgZXJyOwogCi0JbW4gPSBtbXVfZmluZF9vcHMoY3VycmVudC0+bW0sICZncnVfbW11b3BzKTsKLQlpZiAobW4pIHsKLQkJZ21zID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgZ3J1X21tX3N0cnVjdCwgbXNfbm90aWZpZXIpOwotCQlhdG9taWNfaW5jKCZnbXMtPm1zX3JlZmNudCk7Ci0JfSBlbHNlIHsKLQkJZ21zID0ga3phbGxvYyhzaXplb2YoKmdtcyksIEdGUF9LRVJORUwpOwotCQlpZiAoIWdtcykKLQkJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCQlTVEFUKGdtc19hbGxvYyk7Ci0JCXNwaW5fbG9ja19pbml0KCZnbXMtPm1zX2FzaWRfbG9jayk7Ci0JCWdtcy0+bXNfbm90aWZpZXIub3BzID0gJmdydV9tbXVvcHM7Ci0JCWF0b21pY19zZXQoJmdtcy0+bXNfcmVmY250LCAxKTsKLQkJaW5pdF93YWl0cXVldWVfaGVhZCgmZ21zLT5tc193YWl0X3F1ZXVlKTsKLQkJZXJyID0gX19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoJmdtcy0+bXNfbm90aWZpZXIsIGN1cnJlbnQtPm1tKTsKLQkJaWYgKGVycikKLQkJCWdvdG8gZXJyb3I7Ci0JfQotCWlmIChnbXMpCi0JCWdydV9kYmcoZ3J1ZGV2LCAiZ21zICVwLCByZWZjbnQgJWRcbiIsIGdtcywKLQkJCWF0b21pY19yZWFkKCZnbXMtPm1zX3JlZmNudCkpOwotCXJldHVybiBnbXM7Ci1lcnJvcjoKLQlrZnJlZShnbXMpOwotCXJldHVybiBFUlJfUFRSKGVycik7CisJbW4gPSBtbXVfbm90aWZpZXJfZ2V0X2xvY2tlZCgmZ3J1X21tdW9wcywgY3VycmVudC0+bW0pOworCWlmIChJU19FUlIobW4pKQorCQlyZXR1cm4gRVJSX0NBU1QobW4pOworCisJcmV0dXJuIGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGdydV9tbV9zdHJ1Y3QsIG1zX25vdGlmaWVyKTsKIH0KIAogdm9pZCBncnVfZHJvcF9tbXVfbm90aWZpZXIoc3RydWN0IGdydV9tbV9zdHJ1Y3QgKmdtcykKIHsKLQlncnVfZGJnKGdydWRldiwgImdtcyAlcCwgcmVmY250ICVkLCByZWxlYXNlZCAlZFxuIiwgZ21zLAotCQlhdG9taWNfcmVhZCgmZ21zLT5tc19yZWZjbnQpLCBnbXMtPm1zX3JlbGVhc2VkKTsKLQlpZiAoYXRvbWljX2RlY19yZXR1cm4oJmdtcy0+bXNfcmVmY250KSA9PSAwKSB7Ci0JCWlmICghZ21zLT5tc19yZWxlYXNlZCkKLQkJCW1tdV9ub3RpZmllcl91bnJlZ2lzdGVyKCZnbXMtPm1zX25vdGlmaWVyLCBjdXJyZW50LT5tbSk7Ci0JCWtmcmVlKGdtcyk7Ci0JCVNUQVQoZ21zX2ZyZWUpOwotCX0KKwltbXVfbm90aWZpZXJfcHV0KCZnbXMtPm1zX25vdGlmaWVyKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2NvcmUvcXVldWUuYyBiL2RyaXZlcnMvbW1jL2NvcmUvcXVldWUuYwppbmRleCA3MTAyZTJlLi45ZWRjMDg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21tYy9jb3JlL3F1ZXVlLmMKKysrIGIvZHJpdmVycy9tbWMvY29yZS9xdWV1ZS5jCkBAIC0yMSw2ICsyMSw4IEBACiAjaW5jbHVkZSAiY2FyZC5oIgogI2luY2x1ZGUgImhvc3QuaCIKIAorI2RlZmluZSBNTUNfRE1BX01BUF9NRVJHRV9TRUdNRU5UUwk1MTIKKwogc3RhdGljIGlubGluZSBib29sIG1tY19jcWVfZGNtZF9idXN5KHN0cnVjdCBtbWNfcXVldWUgKm1xKQogewogCS8qIEFsbG93IG9ubHkgMSBEQ01EIGF0IGEgdGltZSAqLwpAQCAtMTkzLDYgKzE5NSwxMiBAQCBzdGF0aWMgdm9pZCBtbWNfcXVldWVfc2V0dXBfZGlzY2FyZChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwKIAkJYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfU0VDRVJBU0UsIHEpOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IG1tY19nZXRfbWF4X3NlZ21lbnRzKHN0cnVjdCBtbWNfaG9zdCAqaG9zdCkKK3sKKwlyZXR1cm4gaG9zdC0+Y2FuX2RtYV9tYXBfbWVyZ2UgPyBNTUNfRE1BX01BUF9NRVJHRV9TRUdNRU5UUyA6CisJCQkJCSBob3N0LT5tYXhfc2VnczsKK30KKwogLyoqCiAgKiBtbWNfaW5pdF9yZXF1ZXN0KCkgLSBpbml0aWFsaXplIHRoZSBNTUMtc3BlY2lmaWMgcGVyLXJlcXVlc3QgZGF0YQogICogQHE6IHRoZSByZXF1ZXN0IHF1ZXVlCkBAIC0yMDYsNyArMjE0LDcgQEAgc3RhdGljIGludCBfX21tY19pbml0X3JlcXVlc3Qoc3RydWN0IG1tY19xdWV1ZSAqbXEsIHN0cnVjdCByZXF1ZXN0ICpyZXEsCiAJc3RydWN0IG1tY19jYXJkICpjYXJkID0gbXEtPmNhcmQ7CiAJc3RydWN0IG1tY19ob3N0ICpob3N0ID0gY2FyZC0+aG9zdDsKIAotCW1xX3JxLT5zZyA9IG1tY19hbGxvY19zZyhob3N0LT5tYXhfc2VncywgZ2ZwKTsKKwltcV9ycS0+c2cgPSBtbWNfYWxsb2Nfc2cobW1jX2dldF9tYXhfc2VnbWVudHMoaG9zdCksIGdmcCk7CiAJaWYgKCFtcV9ycS0+c2cpCiAJCXJldHVybiAtRU5PTUVNOwogCkBAIC0zNjIsMTMgKzM3MCwyMyBAQCBzdGF0aWMgdm9pZCBtbWNfc2V0dXBfcXVldWUoc3RydWN0IG1tY19xdWV1ZSAqbXEsIHN0cnVjdCBtbWNfY2FyZCAqY2FyZCkKIAkJYmxrX3F1ZXVlX2JvdW5jZV9saW1pdChtcS0+cXVldWUsIEJMS19CT1VOQ0VfSElHSCk7CiAJYmxrX3F1ZXVlX21heF9od19zZWN0b3JzKG1xLT5xdWV1ZSwKIAkJbWluKGhvc3QtPm1heF9ibGtfY291bnQsIGhvc3QtPm1heF9yZXFfc2l6ZSAvIDUxMikpOwotCWJsa19xdWV1ZV9tYXhfc2VnbWVudHMobXEtPnF1ZXVlLCBob3N0LT5tYXhfc2Vncyk7CisJaWYgKGhvc3QtPmNhbl9kbWFfbWFwX21lcmdlKQorCQlXQVJOKCFibGtfcXVldWVfY2FuX3VzZV9kbWFfbWFwX21lcmdpbmcobXEtPnF1ZXVlLAorCQkJCQkJCW1tY19kZXYoaG9zdCkpLAorCQkgICAgICJtZXJnaW5nIHdhcyBhZHZlcnRpc2VkIGJ1dCBub3QgcG9zc2libGUiKTsKKwlibGtfcXVldWVfbWF4X3NlZ21lbnRzKG1xLT5xdWV1ZSwgbW1jX2dldF9tYXhfc2VnbWVudHMoaG9zdCkpOwogCiAJaWYgKG1tY19jYXJkX21tYyhjYXJkKSkKIAkJYmxvY2tfc2l6ZSA9IGNhcmQtPmV4dF9jc2QuZGF0YV9zZWN0b3Jfc2l6ZTsKIAogCWJsa19xdWV1ZV9sb2dpY2FsX2Jsb2NrX3NpemUobXEtPnF1ZXVlLCBibG9ja19zaXplKTsKLQlibGtfcXVldWVfbWF4X3NlZ21lbnRfc2l6ZShtcS0+cXVldWUsCisJLyoKKwkgKiBBZnRlciBibGtfcXVldWVfY2FuX3VzZV9kbWFfbWFwX21lcmdpbmcoKSB3YXMgY2FsbGVkIHdpdGggc3VjY2VlZCwKKwkgKiBzaW5jZSBpdCBjYWxscyBibGtfcXVldWVfdmlydF9ib3VuZGFyeSgpLCB0aGUgbW1jIHNob3VsZCBub3QgY2FsbAorCSAqIGJvdGggYmxrX3F1ZXVlX21heF9zZWdtZW50X3NpemUoKS4KKwkgKi8KKwlpZiAoIWhvc3QtPmNhbl9kbWFfbWFwX21lcmdlKQorCQlibGtfcXVldWVfbWF4X3NlZ21lbnRfc2l6ZShtcS0+cXVldWUsCiAJCQlyb3VuZF9kb3duKGhvc3QtPm1heF9zZWdfc2l6ZSwgYmxvY2tfc2l6ZSkpOwogCiAJZG1hX3NldF9tYXhfc2VnX3NpemUobW1jX2Rldihob3N0KSwgcXVldWVfbWF4X3NlZ21lbnRfc2l6ZShtcS0+cXVldWUpKTsKQEAgLTM4MSw2ICszOTksMTEgQEAgc3RhdGljIHZvaWQgbW1jX3NldHVwX3F1ZXVlKHN0cnVjdCBtbWNfcXVldWUgKm1xLCBzdHJ1Y3QgbW1jX2NhcmQgKmNhcmQpCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmbXEtPndhaXQpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgbW1jX21lcmdlX2NhcGFibGUoc3RydWN0IG1tY19ob3N0ICpob3N0KQoreworCXJldHVybiBob3N0LT5jYXBzMiAmIE1NQ19DQVAyX01FUkdFX0NBUEFCTEU7Cit9CisKIC8qIFNldCBxdWV1ZSBkZXB0aCB0byBnZXQgYSByZWFzb25hYmxlIHZhbHVlIGZvciBxLT5ucl9yZXF1ZXN0cyAqLwogI2RlZmluZSBNTUNfUVVFVUVfREVQVEggNjQKIApAQCAtNDE4LDYgKzQ0MSwxOCBAQCBpbnQgbW1jX2luaXRfcXVldWUoc3RydWN0IG1tY19xdWV1ZSAqbXEsIHN0cnVjdCBtbWNfY2FyZCAqY2FyZCkKIAltcS0+dGFnX3NldC5jbWRfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbW1jX3F1ZXVlX3JlcSk7CiAJbXEtPnRhZ19zZXQuZHJpdmVyX2RhdGEgPSBtcTsKIAorCS8qCisJICogU2luY2UgYmxrX21xX2FsbG9jX3RhZ19zZXQoKSBjYWxscyAuaW5pdF9yZXF1ZXN0KCkgb2YgbW1jX21xX29wcywKKwkgKiB0aGUgaG9zdC0+Y2FuX2RtYV9tYXBfbWVyZ2Ugc2hvdWxkIGJlIHNldCBiZWZvcmUgdG8gZ2V0IG1heF9zZWdzCisJICogZnJvbSBtbWNfZ2V0X21heF9zZWdtZW50cygpLgorCSAqLworCWlmIChtbWNfbWVyZ2VfY2FwYWJsZShob3N0KSAmJgorCSAgICBob3N0LT5tYXhfc2VncyA8IE1NQ19ETUFfTUFQX01FUkdFX1NFR01FTlRTICYmCisJICAgIGRtYV9nZXRfbWVyZ2VfYm91bmRhcnkobW1jX2Rldihob3N0KSkpCisJCWhvc3QtPmNhbl9kbWFfbWFwX21lcmdlID0gMTsKKwllbHNlCisJCWhvc3QtPmNhbl9kbWFfbWFwX21lcmdlID0gMDsKKwogCXJldCA9IGJsa19tcV9hbGxvY190YWdfc2V0KCZtcS0+dGFnX3NldCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3QvcmVuZXNhc19zZGhpX2ludGVybmFsX2RtYWMuYyBiL2RyaXZlcnMvbW1jL2hvc3QvcmVuZXNhc19zZGhpX2ludGVybmFsX2RtYWMuYwppbmRleCA3NTFmZTkxLi5hNjZmOGQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21tYy9ob3N0L3JlbmVzYXNfc2RoaV9pbnRlcm5hbF9kbWFjLmMKKysrIGIvZHJpdmVycy9tbWMvaG9zdC9yZW5lc2FzX3NkaGlfaW50ZXJuYWxfZG1hYy5jCkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZW5lc2FzX3NkaGlfb2ZfZGF0YSBvZl9yY2FyX2dlbjNfY29tcGF0aWJsZSA9IHsKIAkJCSAgVE1JT19NTUNfSEFWRV9DQlNZIHwgVE1JT19NTUNfTUlOX1JDQVIyLAogCS5jYXBhYmlsaXRpZXMJPSBNTUNfQ0FQX1NEX0hJR0hTUEVFRCB8IE1NQ19DQVBfU0RJT19JUlEgfAogCQkJICBNTUNfQ0FQX0NNRDIzLAotCS5jYXBhYmlsaXRpZXMyCT0gTU1DX0NBUDJfTk9fV1JJVEVfUFJPVEVDVCwKKwkuY2FwYWJpbGl0aWVzMgk9IE1NQ19DQVAyX05PX1dSSVRFX1BST1RFQ1QgfCBNTUNfQ0FQMl9NRVJHRV9DQVBBQkxFLAogCS5idXNfc2hpZnQJPSAyLAogCS5zY2Nfb2Zmc2V0CT0gMHgxMDAwLAogCS50YXBzCQk9IHJjYXJfZ2VuM19zY2NfdGFwcywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL0tjb25maWcgYi9kcml2ZXJzL210ZC9LY29uZmlnCmluZGV4IDgwYTZlMmQuLjQyZDQwMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL0tjb25maWcKKysrIGIvZHJpdmVycy9tdGQvS2NvbmZpZwpAQCAtMjMsNzMgKzIzLDYgQEAKIAkgIFdBUk5JTkc6IHNvbWUgb2YgdGhlIHRlc3RzIHdpbGwgRVJBU0UgZW50aXJlIE1URCBkZXZpY2Ugd2hpY2ggdGhleQogCSAgdGVzdC4gRG8gbm90IHVzZSB0aGVzZSB0ZXN0cyB1bmxlc3MgeW91IHJlYWxseSBrbm93IHdoYXQgeW91IGRvLgogCi1jb25maWcgTVREX0NNRExJTkVfUEFSVFMKLQl0cmlzdGF0ZSAiQ29tbWFuZCBsaW5lIHBhcnRpdGlvbiB0YWJsZSBwYXJzaW5nIgotCWRlcGVuZHMgb24gTVRECi0JaGVscAotCSAgQWxsb3cgZ2VuZXJpYyBjb25maWd1cmF0aW9uIG9mIHRoZSBNVEQgcGFydGl0aW9uIHRhYmxlcyB2aWEgdGhlIGtlcm5lbAotCSAgY29tbWFuZCBsaW5lLiBNdWx0aXBsZSBmbGFzaCByZXNvdXJjZXMgYXJlIHN1cHBvcnRlZCBmb3IgaGFyZHdhcmUgd2hlcmUKLQkgIGRpZmZlcmVudCBraW5kcyBvZiBmbGFzaCBtZW1vcnkgYXJlIGF2YWlsYWJsZS4KLQotCSAgWW91IHdpbGwgc3RpbGwgbmVlZCB0aGUgcGFyc2luZyBmdW5jdGlvbnMgdG8gYmUgY2FsbGVkIGJ5IHRoZSBkcml2ZXIKLQkgIGZvciB5b3VyIHBhcnRpY3VsYXIgZGV2aWNlLiBJdCB3b24ndCBoYXBwZW4gYXV0b21hdGljYWxseS4gVGhlCi0JICBTQTExMDAgbWFwIGRyaXZlciAoQ09ORklHX01URF9TQTExMDApIGhhcyBhbiBvcHRpb24gZm9yIHRoaXMsIGZvcgotCSAgZXhhbXBsZS4KLQotCSAgVGhlIGZvcm1hdCBmb3IgdGhlIGNvbW1hbmQgbGluZSBpcyBhcyBmb2xsb3dzOgotCi0JICBtdGRwYXJ0cz08bXRkZGVmPls7PG10ZGRlZl0KLQkgIDxtdGRkZWY+ICA6PSA8bXRkLWlkPjo8cGFydGRlZj5bLDxwYXJ0ZGVmPl0KLQkgIDxwYXJ0ZGVmPiA6PSA8c2l6ZT5bQG9mZnNldF1bPG5hbWU+XVtyb10KLQkgIDxtdGQtaWQ+ICA6PSB1bmlxdWUgaWQgdXNlZCBpbiBtYXBwaW5nIGRyaXZlci9kZXZpY2UKLQkgIDxzaXplPiAgICA6PSBzdGFuZGFyZCBsaW51eCBtZW1zaXplIE9SICItIiB0byBkZW5vdGUgYWxsCi0JICByZW1haW5pbmcgc3BhY2UKLQkgIDxuYW1lPiAgICA6PSAoTkFNRSkKLQotCSAgRHVlIHRvIHRoZSB3YXkgTGludXggaGFuZGxlcyB0aGUgY29tbWFuZCBsaW5lLCBubyBzcGFjZXMgYXJlCi0JICBhbGxvd2VkIGluIHRoZSBwYXJ0aXRpb24gZGVmaW5pdGlvbiwgaW5jbHVkaW5nIG10ZCBpZCdzIGFuZCBwYXJ0aXRpb24KLQkgIG5hbWVzLgotCi0JICBFeGFtcGxlczoKLQotCSAgMSBmbGFzaCByZXNvdXJjZSAobXRkLWlkICJzYTExMDAiKSwgd2l0aCAxIHNpbmdsZSB3cml0YWJsZSBwYXJ0aXRpb246Ci0JICBtdGRwYXJ0cz1zYTExMDA6LQotCi0JICBTYW1lIGZsYXNoLCBidXQgMiBuYW1lZCBwYXJ0aXRpb25zLCB0aGUgZmlyc3Qgb25lIGJlaW5nIHJlYWQtb25seToKLQkgIG10ZHBhcnRzPXNhMTEwMDoyNTZrKEFSTWJvb3Qpcm8sLShyb290KQotCi0JICBJZiB1bnN1cmUsIHNheSAnTicuCi0KLWNvbmZpZyBNVERfT0ZfUEFSVFMKLQl0cmlzdGF0ZSAiT3BlbkZpcm13YXJlIHBhcnRpdGlvbmluZyBpbmZvcm1hdGlvbiBzdXBwb3J0IgotCWRlZmF1bHQgeQotCWRlcGVuZHMgb24gT0YKLQloZWxwCi0JICBUaGlzIHByb3ZpZGVzIGEgcGFydGl0aW9uIHBhcnNpbmcgZnVuY3Rpb24gd2hpY2ggZGVyaXZlcwotCSAgdGhlIHBhcnRpdGlvbiBtYXAgZnJvbSB0aGUgY2hpbGRyZW4gb2YgdGhlIGZsYXNoIG5vZGUsCi0JICBhcyBkZXNjcmliZWQgaW4gRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL210ZC9wYXJ0aXRpb24udHh0LgotCi1jb25maWcgTVREX0FSN19QQVJUUwotCXRyaXN0YXRlICJUSSBBUjcgcGFydGl0aW9uaW5nIHN1cHBvcnQiCi0JaGVscAotCSAgVEkgQVI3IHBhcnRpdGlvbmluZyBzdXBwb3J0Ci0KLWNvbmZpZyBNVERfQkNNNjNYWF9QQVJUUwotCXRyaXN0YXRlICJCQ002M1hYIENGRSBwYXJ0aXRpb25pbmcgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIEJDTTYzWFggfHwgQk1JUFNfR0VORVJJQyB8fCBDT01QSUxFX1RFU1QKLQlzZWxlY3QgQ1JDMzIKLQlzZWxlY3QgTVREX1BBUlNFUl9JTUFHRVRBRwotCWhlbHAKLQkgIFRoaXMgcHJvdmlkZXMgcGFydGl0aW9uIHBhcnNpbmcgZm9yIEJDTTYzeHggZGV2aWNlcyB3aXRoIENGRQotCSAgYm9vdGxvYWRlcnMuCi0KLWNvbmZpZyBNVERfQkNNNDdYWF9QQVJUUwotCXRyaXN0YXRlICJCQ000N1hYIHBhcnRpdGlvbmluZyBzdXBwb3J0IgotCWRlcGVuZHMgb24gQkNNNDdYWCB8fCBBUkNIX0JDTV81MzAxWAotCWhlbHAKLQkgIFRoaXMgcHJvdmlkZXMgcGFydGl0aW9ucyBwYXJzZXIgZm9yIGRldmljZXMgYmFzZWQgb24gQkNNNDd4eAotCSAgYm9hcmRzLgotCiBtZW51ICJQYXJ0aXRpb24gcGFyc2VycyIKIHNvdXJjZSAiZHJpdmVycy9tdGQvcGFyc2Vycy9LY29uZmlnIgogZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvTWFrZWZpbGUgYi9kcml2ZXJzL210ZC9NYWtlZmlsZQppbmRleCA2MmQ2NDlhLi41NmNjNjBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL210ZC9NYWtlZmlsZQpAQCAtNywxMSArNyw2IEBACiBvYmotJChDT05GSUdfTVREKQkJKz0gbXRkLm8KIG10ZC15CQkJCTo9IG10ZGNvcmUubyBtdGRzdXBlci5vIG10ZGNvbmNhdC5vIG10ZHBhcnQubyBtdGRjaGFyLm8KIAotb2JqLSQoQ09ORklHX01URF9PRl9QQVJUUykJKz0gb2ZwYXJ0Lm8KLW9iai0kKENPTkZJR19NVERfQ01ETElORV9QQVJUUykgKz0gY21kbGluZXBhcnQubwotb2JqLSQoQ09ORklHX01URF9BUjdfUEFSVFMpCSs9IGFyN3BhcnQubwotb2JqLSQoQ09ORklHX01URF9CQ002M1hYX1BBUlRTKQkrPSBiY202M3h4cGFydC5vCi1vYmotJChDT05GSUdfTVREX0JDTTQ3WFhfUEFSVFMpCSs9IGJjbTQ3eHhwYXJ0Lm8KIG9iai15CQkJCSs9IHBhcnNlcnMvCiAKICMgJ1VzZXJzJyAtIGNvZGUgd2hpY2ggcHJlc2VudHMgZnVuY3Rpb25hbGl0eSB0byB1c2Vyc3BhY2UuCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9jaGlwcy9jZmlfY21kc2V0XzAwMDIuYyBiL2RyaXZlcnMvbXRkL2NoaXBzL2NmaV9jbWRzZXRfMDAwMi5jCmluZGV4IGY0ZGE3YmQuLmNmOGM4YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL2NoaXBzL2NmaV9jbWRzZXRfMDAwMi5jCisrKyBiL2RyaXZlcnMvbXRkL2NoaXBzL2NmaV9jbWRzZXRfMDAwMi5jCkBAIC02MSw3ICs2MSw5IEBACiAKIHN0YXRpYyBpbnQgY2ZpX2FtZHN0ZF9yZWFkIChzdHJ1Y3QgbXRkX2luZm8gKiwgbG9mZl90LCBzaXplX3QsIHNpemVfdCAqLCB1X2NoYXIgKik7CiBzdGF0aWMgaW50IGNmaV9hbWRzdGRfd3JpdGVfd29yZHMoc3RydWN0IG10ZF9pbmZvICosIGxvZmZfdCwgc2l6ZV90LCBzaXplX3QgKiwgY29uc3QgdV9jaGFyICopOworI2lmICFGT1JDRV9XT1JEX1dSSVRFCiBzdGF0aWMgaW50IGNmaV9hbWRzdGRfd3JpdGVfYnVmZmVycyhzdHJ1Y3QgbXRkX2luZm8gKiwgbG9mZl90LCBzaXplX3QsIHNpemVfdCAqLCBjb25zdCB1X2NoYXIgKik7CisjZW5kaWYKIHN0YXRpYyBpbnQgY2ZpX2FtZHN0ZF9lcmFzZV9jaGlwKHN0cnVjdCBtdGRfaW5mbyAqLCBzdHJ1Y3QgZXJhc2VfaW5mbyAqKTsKIHN0YXRpYyBpbnQgY2ZpX2FtZHN0ZF9lcmFzZV92YXJzaXplKHN0cnVjdCBtdGRfaW5mbyAqLCBzdHJ1Y3QgZXJhc2VfaW5mbyAqKTsKIHN0YXRpYyB2b2lkIGNmaV9hbWRzdGRfc3luYyAoc3RydWN0IG10ZF9pbmZvICopOwpAQCAtMjU2LDYgKzI1OCw3IEBAIHN0YXRpYyB2b2lkIGZpeHVwX2FtZF9ib290YmxvY2soc3RydWN0IG10ZF9pbmZvICptdGQpCiB9CiAjZW5kaWYKIAorI2lmICFGT1JDRV9XT1JEX1dSSVRFCiBzdGF0aWMgdm9pZCBmaXh1cF91c2Vfd3JpdGVfYnVmZmVycyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKIHsKIAlzdHJ1Y3QgbWFwX2luZm8gKm1hcCA9IG10ZC0+cHJpdjsKQEAgLTI2NSw2ICsyNjgsNyBAQCBzdGF0aWMgdm9pZCBmaXh1cF91c2Vfd3JpdGVfYnVmZmVycyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKIAkJbXRkLT5fd3JpdGUgPSBjZmlfYW1kc3RkX3dyaXRlX2J1ZmZlcnM7CiAJfQogfQorI2VuZGlmIC8qICFGT1JDRV9XT1JEX1dSSVRFICovCiAKIC8qIEF0bWVsIGNoaXBzIGRvbid0IHVzZSB0aGUgc2FtZSBQUkkgZm9ybWF0IGFzIEFNRCBjaGlwcyAqLwogc3RhdGljIHZvaWQgZml4dXBfY29udmVydF9hdG1lbF9wcmkoc3RydWN0IG10ZF9pbmZvICptdGQpCkBAIC0xNjM3LDExICsxNjQxLDExIEBAIHN0YXRpYyBpbnQgY2ZpX2FtZHN0ZF9sb2NrX3VzZXJfcHJvdF9yZWcoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBmcm9tLAogCQkJCSAgIGRvX290cF9sb2NrLCAxKTsKIH0KIAotc3RhdGljIGludCBfX3hpcHJhbSBkb193cml0ZV9vbmV3b3JkKHN0cnVjdCBtYXBfaW5mbyAqbWFwLCBzdHJ1Y3QgZmxjaGlwICpjaGlwLAotCQkJCSAgICAgdW5zaWduZWQgbG9uZyBhZHIsIG1hcF93b3JkIGRhdHVtLAotCQkJCSAgICAgaW50IG1vZGUpCitzdGF0aWMgaW50IF9feGlwcmFtIGRvX3dyaXRlX29uZXdvcmRfb25jZShzdHJ1Y3QgbWFwX2luZm8gKm1hcCwKKwkJCQkJICBzdHJ1Y3QgZmxjaGlwICpjaGlwLAorCQkJCQkgIHVuc2lnbmVkIGxvbmcgYWRyLCBtYXBfd29yZCBkYXR1bSwKKwkJCQkJICBpbnQgbW9kZSwgc3RydWN0IGNmaV9wcml2YXRlICpjZmkpCiB7Ci0Jc3RydWN0IGNmaV9wcml2YXRlICpjZmkgPSBtYXAtPmZsZHJ2X3ByaXY7CiAJdW5zaWduZWQgbG9uZyB0aW1lbyA9IGppZmZpZXMgKyBIWjsKIAkvKgogCSAqIFdlIHVzZSBhIDFtcyArIDEgamlmZmllcyBnZW5lcmljIHRpbWVvdXQgZm9yIHdyaXRlcyAobW9zdCBkZXZpY2VzCkBAIC0xNjU0LDQyICsxNjU4LDcgQEAgc3RhdGljIGludCBfX3hpcHJhbSBkb193cml0ZV9vbmV3b3JkKHN0cnVjdCBtYXBfaW5mbyAqbWFwLCBzdHJ1Y3QgZmxjaGlwICpjaGlwLAogCSAqLwogCXVuc2lnbmVkIGxvbmcgdVdyaXRlVGltZW91dCA9IChIWiAvIDEwMDApICsgMTsKIAlpbnQgcmV0ID0gMDsKLQltYXBfd29yZCBvbGRkOwotCWludCByZXRyeV9jbnQgPSAwOwogCi0JYWRyICs9IGNoaXAtPnN0YXJ0OwotCi0JbXV0ZXhfbG9jaygmY2hpcC0+bXV0ZXgpOwotCXJldCA9IGdldF9jaGlwKG1hcCwgY2hpcCwgYWRyLCBtb2RlKTsKLQlpZiAocmV0KSB7Ci0JCW11dGV4X3VubG9jaygmY2hpcC0+bXV0ZXgpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCXByX2RlYnVnKCJNVEQgJXMoKTogV1JJVEUgMHglLjhseCgweCUuOGx4KVxuIiwKLQkJIF9fZnVuY19fLCBhZHIsIGRhdHVtLnhbMF0pOwotCi0JaWYgKG1vZGUgPT0gRkxfT1RQX1dSSVRFKQotCQlvdHBfZW50ZXIobWFwLCBjaGlwLCBhZHIsIG1hcF9iYW5rd2lkdGgobWFwKSk7Ci0KLQkvKgotCSAqIENoZWNrIGZvciBhIE5PUCBmb3IgdGhlIGNhc2Ugd2hlbiB0aGUgZGF0dW0gdG8gd3JpdGUgaXMgYWxyZWFkeQotCSAqIHByZXNlbnQgLSBpdCBzYXZlcyB0aW1lIGFuZCB3b3JrcyBhcm91bmQgYnVnZ3kgY2hpcHMgdGhhdCBjb3JydXB0Ci0JICogZGF0YSBhdCBvdGhlciBsb2NhdGlvbnMgd2hlbiAweGZmIGlzIHdyaXR0ZW4gdG8gYSBsb2NhdGlvbiB0aGF0Ci0JICogYWxyZWFkeSBjb250YWlucyAweGZmLgotCSAqLwotCW9sZGQgPSBtYXBfcmVhZChtYXAsIGFkcik7Ci0JaWYgKG1hcF93b3JkX2VxdWFsKG1hcCwgb2xkZCwgZGF0dW0pKSB7Ci0JCXByX2RlYnVnKCJNVEQgJXMoKTogTk9QXG4iLAotCQkgICAgICAgX19mdW5jX18pOwotCQlnb3RvIG9wX2RvbmU7Ci0JfQotCi0JWElQX0lOVkFMX0NBQ0hFRF9SQU5HRShtYXAsIGFkciwgbWFwX2Jhbmt3aWR0aChtYXApKTsKLQlFTkFCTEVfVlBQKG1hcCk7Ci0JeGlwX2Rpc2FibGUobWFwLCBjaGlwLCBhZHIpOwotCi0gcmV0cnk6CiAJY2ZpX3NlbmRfZ2VuX2NtZCgweEFBLCBjZmktPmFkZHJfdW5sb2NrMSwgY2hpcC0+c3RhcnQsIG1hcCwgY2ZpLCBjZmktPmRldmljZV90eXBlLCBOVUxMKTsKIAljZmlfc2VuZF9nZW5fY21kKDB4NTUsIGNmaS0+YWRkcl91bmxvY2syLCBjaGlwLT5zdGFydCwgbWFwLCBjZmksIGNmaS0+ZGV2aWNlX3R5cGUsIE5VTEwpOwogCWNmaV9zZW5kX2dlbl9jbWQoMHhBMCwgY2ZpLT5hZGRyX3VubG9jazEsIGNoaXAtPnN0YXJ0LCBtYXAsIGNmaSwgY2ZpLT5kZXZpY2VfdHlwZSwgTlVMTCk7CkBAIC0xNzE3LDQwICsxNjg2LDEyNSBAQCBzdGF0aWMgaW50IF9feGlwcmFtIGRvX3dyaXRlX29uZXdvcmQoc3RydWN0IG1hcF9pbmZvICptYXAsIHN0cnVjdCBmbGNoaXAgKmNoaXAsCiAJCQljb250aW51ZTsKIAkJfQogCisJCS8qCisJCSAqIFdlIGNoZWNrICJ0aW1lX2FmdGVyIiBhbmQgIiFjaGlwX2dvb2QiIGJlZm9yZSBjaGVja2luZworCQkgKiAiY2hpcF9nb29kIiB0byBhdm9pZCB0aGUgZmFpbHVyZSBkdWUgdG8gc2NoZWR1bGluZy4KKwkJICovCiAJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvKSAmJgotCQkgICAgIWNoaXBfcmVhZHkobWFwLCBjaGlwLCBhZHIpKSB7CisJCSAgICAhY2hpcF9nb29kKG1hcCwgY2hpcCwgYWRyLCBkYXR1bSkpIHsKIAkJCXhpcF9lbmFibGUobWFwLCBjaGlwLCBhZHIpOwogCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiTVREICVzKCk6IHNvZnR3YXJlIHRpbWVvdXRcbiIsIF9fZnVuY19fKTsKIAkJCXhpcF9kaXNhYmxlKG1hcCwgY2hpcCwgYWRyKTsKKwkJCXJldCA9IC1FSU87CiAJCQlicmVhazsKIAkJfQogCi0JCWlmIChjaGlwX3JlYWR5KG1hcCwgY2hpcCwgYWRyKSkKKwkJaWYgKGNoaXBfZ29vZChtYXAsIGNoaXAsIGFkciwgZGF0dW0pKQogCQkJYnJlYWs7CiAKIAkJLyogTGF0ZW5jeSBpc3N1ZXMuIERyb3AgdGhlIGxvY2ssIHdhaXQgYSB3aGlsZSBhbmQgcmV0cnkgKi8KIAkJVURFTEFZKG1hcCwgY2hpcCwgYWRyLCAxKTsKIAl9Ci0JLyogRGlkIHdlIHN1Y2NlZWQ/ICovCi0JaWYgKCFjaGlwX2dvb2QobWFwLCBjaGlwLCBhZHIsIGRhdHVtKSkgeworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBfX3hpcHJhbSBkb193cml0ZV9vbmV3b3JkX3N0YXJ0KHN0cnVjdCBtYXBfaW5mbyAqbWFwLAorCQkJCQkgICBzdHJ1Y3QgZmxjaGlwICpjaGlwLAorCQkJCQkgICB1bnNpZ25lZCBsb25nIGFkciwgaW50IG1vZGUpCit7CisJaW50IHJldCA9IDA7CisKKwltdXRleF9sb2NrKCZjaGlwLT5tdXRleCk7CisKKwlyZXQgPSBnZXRfY2hpcChtYXAsIGNoaXAsIGFkciwgbW9kZSk7CisJaWYgKHJldCkgeworCQltdXRleF91bmxvY2soJmNoaXAtPm11dGV4KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAobW9kZSA9PSBGTF9PVFBfV1JJVEUpCisJCW90cF9lbnRlcihtYXAsIGNoaXAsIGFkciwgbWFwX2Jhbmt3aWR0aChtYXApKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIF9feGlwcmFtIGRvX3dyaXRlX29uZXdvcmRfZG9uZShzdHJ1Y3QgbWFwX2luZm8gKm1hcCwKKwkJCQkJICAgc3RydWN0IGZsY2hpcCAqY2hpcCwKKwkJCQkJICAgdW5zaWduZWQgbG9uZyBhZHIsIGludCBtb2RlKQoreworCWlmIChtb2RlID09IEZMX09UUF9XUklURSkKKwkJb3RwX2V4aXQobWFwLCBjaGlwLCBhZHIsIG1hcF9iYW5rd2lkdGgobWFwKSk7CisKKwljaGlwLT5zdGF0ZSA9IEZMX1JFQURZOworCURJU0FCTEVfVlBQKG1hcCk7CisJcHV0X2NoaXAobWFwLCBjaGlwLCBhZHIpOworCisJbXV0ZXhfdW5sb2NrKCZjaGlwLT5tdXRleCk7Cit9CisKK3N0YXRpYyBpbnQgX194aXByYW0gZG9fd3JpdGVfb25ld29yZF9yZXRyeShzdHJ1Y3QgbWFwX2luZm8gKm1hcCwKKwkJCQkJICAgc3RydWN0IGZsY2hpcCAqY2hpcCwKKwkJCQkJICAgdW5zaWduZWQgbG9uZyBhZHIsIG1hcF93b3JkIGRhdHVtLAorCQkJCQkgICBpbnQgbW9kZSkKK3sKKwlzdHJ1Y3QgY2ZpX3ByaXZhdGUgKmNmaSA9IG1hcC0+ZmxkcnZfcHJpdjsKKwlpbnQgcmV0ID0gMDsKKwltYXBfd29yZCBvbGRkOworCWludCByZXRyeV9jbnQgPSAwOworCisJLyoKKwkgKiBDaGVjayBmb3IgYSBOT1AgZm9yIHRoZSBjYXNlIHdoZW4gdGhlIGRhdHVtIHRvIHdyaXRlIGlzIGFscmVhZHkKKwkgKiBwcmVzZW50IC0gaXQgc2F2ZXMgdGltZSBhbmQgd29ya3MgYXJvdW5kIGJ1Z2d5IGNoaXBzIHRoYXQgY29ycnVwdAorCSAqIGRhdGEgYXQgb3RoZXIgbG9jYXRpb25zIHdoZW4gMHhmZiBpcyB3cml0dGVuIHRvIGEgbG9jYXRpb24gdGhhdAorCSAqIGFscmVhZHkgY29udGFpbnMgMHhmZi4KKwkgKi8KKwlvbGRkID0gbWFwX3JlYWQobWFwLCBhZHIpOworCWlmIChtYXBfd29yZF9lcXVhbChtYXAsIG9sZGQsIGRhdHVtKSkgeworCQlwcl9kZWJ1ZygiTVREICVzKCk6IE5PUFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gcmV0OworCX0KKworCVhJUF9JTlZBTF9DQUNIRURfUkFOR0UobWFwLCBhZHIsIG1hcF9iYW5rd2lkdGgobWFwKSk7CisJRU5BQkxFX1ZQUChtYXApOworCXhpcF9kaXNhYmxlKG1hcCwgY2hpcCwgYWRyKTsKKworIHJldHJ5OgorCXJldCA9IGRvX3dyaXRlX29uZXdvcmRfb25jZShtYXAsIGNoaXAsIGFkciwgZGF0dW0sIG1vZGUsIGNmaSk7CisJaWYgKHJldCkgewogCQkvKiByZXNldCBvbiBhbGwgZmFpbHVyZXMuICovCiAJCWNmaV9jaGVja19lcnJfc3RhdHVzKG1hcCwgY2hpcCwgYWRyKTsKIAkJbWFwX3dyaXRlKG1hcCwgQ01EKDB4RjApLCBjaGlwLT5zdGFydCk7CiAJCS8qIEZJWE1FIC0gc2hvdWxkIGhhdmUgcmVzZXQgZGVsYXkgYmVmb3JlIGNvbnRpbnVpbmcgKi8KIAotCQlpZiAoKytyZXRyeV9jbnQgPD0gTUFYX1JFVFJJRVMpCisJCWlmICgrK3JldHJ5X2NudCA8PSBNQVhfUkVUUklFUykgeworCQkJcmV0ID0gMDsKIAkJCWdvdG8gcmV0cnk7Ci0KLQkJcmV0ID0gLUVJTzsKKwkJfQogCX0KIAl4aXBfZW5hYmxlKG1hcCwgY2hpcCwgYWRyKTsKLSBvcF9kb25lOgotCWlmIChtb2RlID09IEZMX09UUF9XUklURSkKLQkJb3RwX2V4aXQobWFwLCBjaGlwLCBhZHIsIG1hcF9iYW5rd2lkdGgobWFwKSk7Ci0JY2hpcC0+c3RhdGUgPSBGTF9SRUFEWTsKLQlESVNBQkxFX1ZQUChtYXApOwotCXB1dF9jaGlwKG1hcCwgY2hpcCwgYWRyKTsKLQltdXRleF91bmxvY2soJmNoaXAtPm11dGV4KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgX194aXByYW0gZG9fd3JpdGVfb25ld29yZChzdHJ1Y3QgbWFwX2luZm8gKm1hcCwgc3RydWN0IGZsY2hpcCAqY2hpcCwKKwkJCQkgICAgIHVuc2lnbmVkIGxvbmcgYWRyLCBtYXBfd29yZCBkYXR1bSwKKwkJCQkgICAgIGludCBtb2RlKQoreworCWludCByZXQgPSAwOworCisJYWRyICs9IGNoaXAtPnN0YXJ0OworCisJcHJfZGVidWcoIk1URCAlcygpOiBXUklURSAweCUuOGx4KDB4JS44bHgpXG4iLCBfX2Z1bmNfXywgYWRyLAorCQkgZGF0dW0ueFswXSk7CisKKwlyZXQgPSBkb193cml0ZV9vbmV3b3JkX3N0YXJ0KG1hcCwgY2hpcCwgYWRyLCBtb2RlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gZG9fd3JpdGVfb25ld29yZF9yZXRyeShtYXAsIGNoaXAsIGFkciwgZGF0dW0sIG1vZGUpOworCisJZG9fd3JpdGVfb25ld29yZF9kb25lKG1hcCwgY2hpcCwgYWRyLCBtb2RlKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xODc5LDYgKzE5MzMsNzggQEAgc3RhdGljIGludCBjZmlfYW1kc3RkX3dyaXRlX3dvcmRzKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgdG8sIHNpemVfdCBsZW4sCiAJcmV0dXJuIDA7CiB9CiAKKyNpZiAhRk9SQ0VfV09SRF9XUklURQorc3RhdGljIGludCBfX3hpcHJhbSBkb193cml0ZV9idWZmZXJfd2FpdChzdHJ1Y3QgbWFwX2luZm8gKm1hcCwKKwkJCQkJIHN0cnVjdCBmbGNoaXAgKmNoaXAsIHVuc2lnbmVkIGxvbmcgYWRyLAorCQkJCQkgbWFwX3dvcmQgZGF0dW0pCit7CisJdW5zaWduZWQgbG9uZyB0aW1lbzsKKwl1bnNpZ25lZCBsb25nIHVfd3JpdGVfdGltZW91dDsKKwlpbnQgcmV0ID0gMDsKKworCS8qCisJICogVGltZW91dCBpcyBjYWxjdWxhdGVkIGFjY29yZGluZyB0byBDRkkgZGF0YSwgaWYgYXZhaWxhYmxlLgorCSAqIFNlZSBtb3JlIGNvbW1lbnRzIGluIGNmaV9jbWRzZXRfMDAwMigpLgorCSAqLworCXVfd3JpdGVfdGltZW91dCA9IHVzZWNzX3RvX2ppZmZpZXMoY2hpcC0+YnVmZmVyX3dyaXRlX3RpbWVfbWF4KTsKKwl0aW1lbyA9IGppZmZpZXMgKyB1X3dyaXRlX3RpbWVvdXQ7CisKKwlmb3IgKDs7KSB7CisJCWlmIChjaGlwLT5zdGF0ZSAhPSBGTF9XUklUSU5HKSB7CisJCQkvKiBTb21lb25lJ3Mgc3VzcGVuZGVkIHRoZSB3cml0ZS4gU2xlZXAgKi8KKwkJCURFQ0xBUkVfV0FJVFFVRVVFKHdhaXQsIGN1cnJlbnQpOworCisJCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1VOSU5URVJSVVBUSUJMRSk7CisJCQlhZGRfd2FpdF9xdWV1ZSgmY2hpcC0+d3EsICZ3YWl0KTsKKwkJCW11dGV4X3VubG9jaygmY2hpcC0+bXV0ZXgpOworCQkJc2NoZWR1bGUoKTsKKwkJCXJlbW92ZV93YWl0X3F1ZXVlKCZjaGlwLT53cSwgJndhaXQpOworCQkJdGltZW8gPSBqaWZmaWVzICsgKEhaIC8gMik7IC8qIEZJWE1FICovCisJCQltdXRleF9sb2NrKCZjaGlwLT5tdXRleCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qCisJCSAqIFdlIGNoZWNrICJ0aW1lX2FmdGVyIiBhbmQgIiFjaGlwX2dvb2QiIGJlZm9yZSBjaGVja2luZworCQkgKiAiY2hpcF9nb29kIiB0byBhdm9pZCB0aGUgZmFpbHVyZSBkdWUgdG8gc2NoZWR1bGluZy4KKwkJICovCisJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvKSAmJgorCQkgICAgIWNoaXBfZ29vZChtYXAsIGNoaXAsIGFkciwgZGF0dW0pKSB7CisJCQlyZXQgPSAtRUlPOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAoY2hpcF9nb29kKG1hcCwgY2hpcCwgYWRyLCBkYXR1bSkpCisJCQlicmVhazsKKworCQkvKiBMYXRlbmN5IGlzc3Vlcy4gRHJvcCB0aGUgbG9jaywgd2FpdCBhIHdoaWxlIGFuZCByZXRyeSAqLworCQlVREVMQVkobWFwLCBjaGlwLCBhZHIsIDEpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIF9feGlwcmFtIGRvX3dyaXRlX2J1ZmZlcl9yZXNldChzdHJ1Y3QgbWFwX2luZm8gKm1hcCwKKwkJCQkJICAgc3RydWN0IGZsY2hpcCAqY2hpcCwKKwkJCQkJICAgc3RydWN0IGNmaV9wcml2YXRlICpjZmkpCit7CisJLyoKKwkgKiBSZWNvdmVyeSBmcm9tIHdyaXRlLWJ1ZmZlciBwcm9ncmFtbWluZyBmYWlsdXJlcyByZXF1aXJlcworCSAqIHRoZSB3cml0ZS10by1idWZmZXItcmVzZXQgc2VxdWVuY2UuICBTaW5jZSB0aGUgbGFzdCBwYXJ0CisJICogb2YgdGhlIHNlcXVlbmNlIGFsc28gd29ya3MgYXMgYSBub3JtYWwgcmVzZXQsIHdlIGNhbiBydW4KKwkgKiB0aGUgc2FtZSBjb21tYW5kcyByZWdhcmRsZXNzIG9mIHdoeSB3ZSBhcmUgaGVyZS4KKwkgKiBTZWUgZS5nLgorCSAqIGh0dHA6Ly93d3cuc3BhbnNpb24uY29tL1N1cHBvcnQvQXBwbGljYXRpb24lMjBOb3Rlcy9NaXJyb3JCaXRfV3JpdGVfQnVmZmVyX1Byb2dfUGFnZV9CdWZmZXJfUmVhZF9BTi5wZGYKKwkgKi8KKwljZmlfc2VuZF9nZW5fY21kKDB4QUEsIGNmaS0+YWRkcl91bmxvY2sxLCBjaGlwLT5zdGFydCwgbWFwLCBjZmksCisJCQkgY2ZpLT5kZXZpY2VfdHlwZSwgTlVMTCk7CisJY2ZpX3NlbmRfZ2VuX2NtZCgweDU1LCBjZmktPmFkZHJfdW5sb2NrMiwgY2hpcC0+c3RhcnQsIG1hcCwgY2ZpLAorCQkJIGNmaS0+ZGV2aWNlX3R5cGUsIE5VTEwpOworCWNmaV9zZW5kX2dlbl9jbWQoMHhGMCwgY2ZpLT5hZGRyX3VubG9jazEsIGNoaXAtPnN0YXJ0LCBtYXAsIGNmaSwKKwkJCSBjZmktPmRldmljZV90eXBlLCBOVUxMKTsKKworCS8qIEZJWE1FIC0gc2hvdWxkIGhhdmUgcmVzZXQgZGVsYXkgYmVmb3JlIGNvbnRpbnVpbmcgKi8KK30KIAogLyoKICAqIEZJWE1FOiBpbnRlcmxlYXZlZCBtb2RlIG5vdCB0ZXN0ZWQsIGFuZCBwcm9iYWJseSBub3Qgc3VwcG9ydGVkIQpAQCAtMTg4OCwxMyArMjAxNCw2IEBAIHN0YXRpYyBpbnQgX194aXByYW0gZG9fd3JpdGVfYnVmZmVyKHN0cnVjdCBtYXBfaW5mbyAqbWFwLCBzdHJ1Y3QgZmxjaGlwICpjaGlwLAogCQkJCSAgICBpbnQgbGVuKQogewogCXN0cnVjdCBjZmlfcHJpdmF0ZSAqY2ZpID0gbWFwLT5mbGRydl9wcml2OwotCXVuc2lnbmVkIGxvbmcgdGltZW8gPSBqaWZmaWVzICsgSFo7Ci0JLyoKLQkgKiBUaW1lb3V0IGlzIGNhbGN1bGF0ZWQgYWNjb3JkaW5nIHRvIENGSSBkYXRhLCBpZiBhdmFpbGFibGUuCi0JICogU2VlIG1vcmUgY29tbWVudHMgaW4gY2ZpX2NtZHNldF8wMDAyKCkuCi0JICovCi0JdW5zaWduZWQgbG9uZyB1V3JpdGVUaW1lb3V0ID0KLQkJCQl1c2Vjc190b19qaWZmaWVzKGNoaXAtPmJ1ZmZlcl93cml0ZV90aW1lX21heCk7CiAJaW50IHJldCA9IC1FSU87CiAJdW5zaWduZWQgbG9uZyBjbWRfYWRyOwogCWludCB6LCB3b3JkczsKQEAgLTE5NTEsNjMgKzIwNzAsMTYgQEAgc3RhdGljIGludCBfX3hpcHJhbSBkb193cml0ZV9idWZmZXIoc3RydWN0IG1hcF9pbmZvICptYXAsIHN0cnVjdCBmbGNoaXAgKmNoaXAsCiAJCQkJYWRyLCBtYXBfYmFua3dpZHRoKG1hcCksCiAJCQkJY2hpcC0+d29yZF93cml0ZV90aW1lKTsKIAotCXRpbWVvID0gamlmZmllcyArIHVXcml0ZVRpbWVvdXQ7Ci0KLQlmb3IgKDs7KSB7Ci0JCWlmIChjaGlwLT5zdGF0ZSAhPSBGTF9XUklUSU5HKSB7Ci0JCQkvKiBTb21lb25lJ3Mgc3VzcGVuZGVkIHRoZSB3cml0ZS4gU2xlZXAgKi8KLQkJCURFQ0xBUkVfV0FJVFFVRVVFKHdhaXQsIGN1cnJlbnQpOwotCi0JCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1VOSU5URVJSVVBUSUJMRSk7Ci0JCQlhZGRfd2FpdF9xdWV1ZSgmY2hpcC0+d3EsICZ3YWl0KTsKLQkJCW11dGV4X3VubG9jaygmY2hpcC0+bXV0ZXgpOwotCQkJc2NoZWR1bGUoKTsKLQkJCXJlbW92ZV93YWl0X3F1ZXVlKCZjaGlwLT53cSwgJndhaXQpOwotCQkJdGltZW8gPSBqaWZmaWVzICsgKEhaIC8gMik7IC8qIEZJWE1FICovCi0JCQltdXRleF9sb2NrKCZjaGlwLT5tdXRleCk7Ci0JCQljb250aW51ZTsKLQkJfQotCi0JCS8qCi0JCSAqIFdlIGNoZWNrICJ0aW1lX2FmdGVyIiBhbmQgIiFjaGlwX2dvb2QiIGJlZm9yZSBjaGVja2luZyAiY2hpcF9nb29kIiB0byBhdm9pZAotCQkgKiB0aGUgZmFpbHVyZSBkdWUgdG8gc2NoZWR1bGluZy4KLQkJICovCi0JCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvKSAmJgotCQkgICAgIWNoaXBfZ29vZChtYXAsIGNoaXAsIGFkciwgZGF0dW0pKQotCQkJYnJlYWs7Ci0KLQkJaWYgKGNoaXBfZ29vZChtYXAsIGNoaXAsIGFkciwgZGF0dW0pKSB7Ci0JCQl4aXBfZW5hYmxlKG1hcCwgY2hpcCwgYWRyKTsKLQkJCWdvdG8gb3BfZG9uZTsKLQkJfQotCi0JCS8qIExhdGVuY3kgaXNzdWVzLiBEcm9wIHRoZSBsb2NrLCB3YWl0IGEgd2hpbGUgYW5kIHJldHJ5ICovCi0JCVVERUxBWShtYXAsIGNoaXAsIGFkciwgMSk7CisJcmV0ID0gZG9fd3JpdGVfYnVmZmVyX3dhaXQobWFwLCBjaGlwLCBhZHIsIGRhdHVtKTsKKwlpZiAocmV0KSB7CisJCWNmaV9jaGVja19lcnJfc3RhdHVzKG1hcCwgY2hpcCwgYWRyKTsKKwkJZG9fd3JpdGVfYnVmZmVyX3Jlc2V0KG1hcCwgY2hpcCwgY2ZpKTsKKwkJcHJfZXJyKCJNVEQgJXMoKTogc29mdHdhcmUgdGltZW91dCwgYWRkcmVzczoweCUuOGx4LlxuIiwKKwkJICAgICAgIF9fZnVuY19fLCBhZHIpOwogCX0KIAotCS8qCi0JICogUmVjb3ZlcnkgZnJvbSB3cml0ZS1idWZmZXIgcHJvZ3JhbW1pbmcgZmFpbHVyZXMgcmVxdWlyZXMKLQkgKiB0aGUgd3JpdGUtdG8tYnVmZmVyLXJlc2V0IHNlcXVlbmNlLiAgU2luY2UgdGhlIGxhc3QgcGFydAotCSAqIG9mIHRoZSBzZXF1ZW5jZSBhbHNvIHdvcmtzIGFzIGEgbm9ybWFsIHJlc2V0LCB3ZSBjYW4gcnVuCi0JICogdGhlIHNhbWUgY29tbWFuZHMgcmVnYXJkbGVzcyBvZiB3aHkgd2UgYXJlIGhlcmUuCi0JICogU2VlIGUuZy4KLQkgKiBodHRwOi8vd3d3LnNwYW5zaW9uLmNvbS9TdXBwb3J0L0FwcGxpY2F0aW9uJTIwTm90ZXMvTWlycm9yQml0X1dyaXRlX0J1ZmZlcl9Qcm9nX1BhZ2VfQnVmZmVyX1JlYWRfQU4ucGRmCi0JICovCi0JY2ZpX2NoZWNrX2Vycl9zdGF0dXMobWFwLCBjaGlwLCBhZHIpOwotCWNmaV9zZW5kX2dlbl9jbWQoMHhBQSwgY2ZpLT5hZGRyX3VubG9jazEsIGNoaXAtPnN0YXJ0LCBtYXAsIGNmaSwKLQkJCSBjZmktPmRldmljZV90eXBlLCBOVUxMKTsKLQljZmlfc2VuZF9nZW5fY21kKDB4NTUsIGNmaS0+YWRkcl91bmxvY2syLCBjaGlwLT5zdGFydCwgbWFwLCBjZmksCi0JCQkgY2ZpLT5kZXZpY2VfdHlwZSwgTlVMTCk7Ci0JY2ZpX3NlbmRfZ2VuX2NtZCgweEYwLCBjZmktPmFkZHJfdW5sb2NrMSwgY2hpcC0+c3RhcnQsIG1hcCwgY2ZpLAotCQkJIGNmaS0+ZGV2aWNlX3R5cGUsIE5VTEwpOwogCXhpcF9lbmFibGUobWFwLCBjaGlwLCBhZHIpOwotCS8qIEZJWE1FIC0gc2hvdWxkIGhhdmUgcmVzZXQgZGVsYXkgYmVmb3JlIGNvbnRpbnVpbmcgKi8KIAotCXByaW50ayhLRVJOX1dBUk5JTkcgIk1URCAlcygpOiBzb2Z0d2FyZSB0aW1lb3V0LCBhZGRyZXNzOjB4JS44bHguXG4iLAotCSAgICAgICBfX2Z1bmNfXywgYWRyKTsKLQotCXJldCA9IC1FSU87Ci0gb3BfZG9uZToKIAljaGlwLT5zdGF0ZSA9IEZMX1JFQURZOwogCURJU0FCTEVfVlBQKG1hcCk7CiAJcHV0X2NoaXAobWFwLCBjaGlwLCBhZHIpOwpAQCAtMjA5MSw2ICsyMTYzLDcgQEAgc3RhdGljIGludCBjZmlfYW1kc3RkX3dyaXRlX2J1ZmZlcnMoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCB0bywgc2l6ZV90IGxlbiwKIAogCXJldHVybiAwOwogfQorI2VuZGlmIC8qICFGT1JDRV9XT1JEX1dSSVRFICovCiAKIC8qCiAgKiBXYWl0IGZvciB0aGUgZmxhc2ggY2hpcCB0byBiZWNvbWUgcmVhZHkgdG8gd3JpdGUgZGF0YQpAQCAtMjM0NCw3ICsyNDE3LDcgQEAgc3RhdGljIGludCBfX3hpcHJhbSBkb19lcmFzZV9jaGlwKHN0cnVjdCBtYXBfaW5mbyAqbWFwLCBzdHJ1Y3QgZmxjaGlwICpjaGlwKQogCWFkciA9IGNmaS0+YWRkcl91bmxvY2sxOwogCiAJbXV0ZXhfbG9jaygmY2hpcC0+bXV0ZXgpOwotCXJldCA9IGdldF9jaGlwKG1hcCwgY2hpcCwgYWRyLCBGTF9XUklUSU5HKTsKKwlyZXQgPSBnZXRfY2hpcChtYXAsIGNoaXAsIGFkciwgRkxfRVJBU0lORyk7CiAJaWYgKHJldCkgewogCQltdXRleF91bmxvY2soJmNoaXAtPm11dGV4KTsKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL2NoaXBzL2dlbl9wcm9iZS5jIGIvZHJpdmVycy9tdGQvY2hpcHMvZ2VuX3Byb2JlLmMKaW5kZXggODM5ZWQ0MC4uZTViZDNjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvY2hpcHMvZ2VuX3Byb2JlLmMKKysrIGIvZHJpdmVycy9tdGQvY2hpcHMvZ2VuX3Byb2JlLmMKQEAgLTIwLDcgKzIwLDcgQEAgc3RhdGljIGludCBnZW5wcm9iZV9uZXdfY2hpcChzdHJ1Y3QgbWFwX2luZm8gKm1hcCwgc3RydWN0IGNoaXBfcHJvYmUgKmNwLAogCiBzdHJ1Y3QgbXRkX2luZm8gKm10ZF9kb19jaGlwX3Byb2JlKHN0cnVjdCBtYXBfaW5mbyAqbWFwLCBzdHJ1Y3QgY2hpcF9wcm9iZSAqY3ApCiB7Ci0Jc3RydWN0IG10ZF9pbmZvICptdGQgPSBOVUxMOworCXN0cnVjdCBtdGRfaW5mbyAqbXRkOwogCXN0cnVjdCBjZmlfcHJpdmF0ZSAqY2ZpOwogCiAJLyogRmlyc3QgcHJvYmUgdGhlIG1hcCB0byBzZWUgaWYgd2UgaGF2ZSBDRkkgc3R1ZmYgdGhlcmUuICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9kZXZpY2VzL0tjb25maWcgYi9kcml2ZXJzL210ZC9kZXZpY2VzL0tjb25maWcKaW5kZXggNDlhYmJjNS4uZjk2Mjg3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvZGV2aWNlcy9LY29uZmlnCisrKyBiL2RyaXZlcnMvbXRkL2RldmljZXMvS2NvbmZpZwpAQCAtNzksMjQgKzc5LDYgQEAKIAkgIG90aGVyIGtleSBwcm9kdWN0IGRhdGEuICBUaGUgc2Vjb25kIGhhbGYgaXMgcHJvZ3JhbW1lZCB3aXRoIGEKIAkgIHVuaXF1ZS10by1lYWNoLWNoaXAgYml0IHBhdHRlcm4gYXQgdGhlIGZhY3RvcnkuCiAKLWNvbmZpZyBNVERfTTI1UDgwCi0JdHJpc3RhdGUgIlN1cHBvcnQgbW9zdCBTUEkgRmxhc2ggY2hpcHMgKEFUMjZERiwgTTI1UCwgVzI1WCwgLi4uKSIKLQlkZXBlbmRzIG9uIFNQSV9NQVNURVIgJiYgTVREX1NQSV9OT1IKLQlzZWxlY3QgU1BJX01FTQotCWhlbHAKLQkgIFRoaXMgZW5hYmxlcyBhY2Nlc3MgdG8gbW9zdCBtb2Rlcm4gU1BJIGZsYXNoIGNoaXBzLCB1c2VkIGZvcgotCSAgcHJvZ3JhbSBhbmQgZGF0YSBzdG9yYWdlLiAgIFNlcmllcyBzdXBwb3J0ZWQgaW5jbHVkZSBBdG1lbCBBVDI2REYsCi0JICBTcGFuc2lvbiBTMjVTTCwgU1NUIDI1VkYsIFNUIE0yNVAsIGFuZCBXaW5ib25kIFcyNVguICBPdGhlciBjaGlwcwotCSAgYXJlIHN1cHBvcnRlZCBhcyB3ZWxsLiAgU2VlIHRoZSBkcml2ZXIgc291cmNlIGZvciB0aGUgY3VycmVudCBsaXN0LAotCSAgb3IgdG8gYWRkIG90aGVyIGNoaXBzLgotCi0JICBOb3RlIHRoYXQgdGhlIG9yaWdpbmFsIERhdGFGbGFzaCBjaGlwcyAoQVQ0NSBzZXJpZXMsIG5vdCBBVDI2REYpLAotCSAgbmVlZCBhbiBlbnRpcmVseSBkaWZmZXJlbnQgZHJpdmVyLgotCi0JICBTZXQgdXAgeW91ciBzcGkgZGV2aWNlcyB3aXRoIHRoZSByaWdodCBib2FyZC1zcGVjaWZpYyBwbGF0Zm9ybSBkYXRhLAotCSAgaWYgeW91IHdhbnQgdG8gc3BlY2lmeSBkZXZpY2UgcGFydGl0aW9uaW5nIG9yIHRvIHVzZSBhIGRldmljZSB3aGljaAotCSAgZG9lc24ndCBzdXBwb3J0IHRoZSBKRURFQyBJRCBpbnN0cnVjdGlvbi4KLQogY29uZmlnIE1URF9NQ0hQMjNLMjU2CiAJdHJpc3RhdGUgIk1pY3JvY2hpcCAyM0syNTYgU1JBTSIKIAlkZXBlbmRzIG9uIFNQSV9NQVNURVIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL2RldmljZXMvTWFrZWZpbGUgYi9kcml2ZXJzL210ZC9kZXZpY2VzL01ha2VmaWxlCmluZGV4IDk0ODk1ZWFiLi45OTFjOGQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9kZXZpY2VzL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvbXRkL2RldmljZXMvTWFrZWZpbGUKQEAgLTEyLDcgKzEyLDYgQEAKIG9iai0kKENPTkZJR19NVERfTEFSVCkJCSs9IGxhcnQubwogb2JqLSQoQ09ORklHX01URF9CTE9DSzJNVEQpCSs9IGJsb2NrMm10ZC5vCiBvYmotJChDT05GSUdfTVREX0RBVEFGTEFTSCkJKz0gbXRkX2RhdGFmbGFzaC5vCi1vYmotJChDT05GSUdfTVREX00yNVA4MCkJKz0gbTI1cDgwLm8KIG9iai0kKENPTkZJR19NVERfTUNIUDIzSzI1NikJKz0gbWNocDIzazI1Ni5vCiBvYmotJChDT05GSUdfTVREX1NQRUFSX1NNSSkJKz0gc3BlYXJfc21pLm8KIG9iai0kKENPTkZJR19NVERfU1NUMjVMKQkrPSBzc3QyNWwubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvZGV2aWNlcy9tMjVwODAuYyBiL2RyaXZlcnMvbXRkL2RldmljZXMvbTI1cDgwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1MDg4ODYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9tdGQvZGV2aWNlcy9tMjVwODAuYworKysgL2Rldi9udWxsCkBAIC0xLDM0NyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogTVREIFNQSSBkcml2ZXIgZm9yIFNUIE0yNVB4eCAoYW5kIHNpbWlsYXIpIHNlcmlhbCBmbGFzaCBjaGlwcwotICoKLSAqIEF1dGhvcjogTWlrZSBMYXZlbmRlciwgbWlrZUBzdGVyb2lkbWljcm9zLmNvbQotICoKLSAqIENvcHlyaWdodCAoYykgMjAwNSwgSW50ZWMgQXV0b21hdGlvbiBJbmMuCi0gKgotICogU29tZSBwYXJ0cyBhcmUgYmFzZWQgb24gbGFydC5jIGJ5IEFicmFoYW0gVmFuIERlciBNZXJ3ZQotICoKLSAqIENsZWFuZWQgdXAgYW5kIGdlbmVyYWxpemVkIGJhc2VkIG9uIG10ZF9kYXRhZmxhc2guYwotICovCi0KLSNpbmNsdWRlIDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgotCi0jaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgotI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpL3NwaS1tZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9zcGkvZmxhc2guaD4KLSNpbmNsdWRlIDxsaW51eC9tdGQvc3BpLW5vci5oPgotCi1zdHJ1Y3QgbTI1cCB7Ci0Jc3RydWN0IHNwaV9tZW0JCSpzcGltZW07Ci0Jc3RydWN0IHNwaV9ub3IJCXNwaV9ub3I7Ci19OwotCi1zdGF0aWMgaW50IG0yNXA4MF9yZWFkX3JlZyhzdHJ1Y3Qgc3BpX25vciAqbm9yLCB1OCBjb2RlLCB1OCAqdmFsLCBpbnQgbGVuKQotewotCXN0cnVjdCBtMjVwICpmbGFzaCA9IG5vci0+cHJpdjsKLQlzdHJ1Y3Qgc3BpX21lbV9vcCBvcCA9IFNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoY29kZSwgMSksCi0JCQkJCSAgU1BJX01FTV9PUF9OT19BRERSLAotCQkJCQkgIFNQSV9NRU1fT1BfTk9fRFVNTVksCi0JCQkJCSAgU1BJX01FTV9PUF9EQVRBX0lOKGxlbiwgTlVMTCwgMSkpOwotCXZvaWQgKnNjcmF0Y2hidWY7Ci0JaW50IHJldDsKLQotCXNjcmF0Y2hidWYgPSBrbWFsbG9jKGxlbiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzY3JhdGNoYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW9wLmRhdGEuYnVmLmluID0gc2NyYXRjaGJ1ZjsKLQlyZXQgPSBzcGlfbWVtX2V4ZWNfb3AoZmxhc2gtPnNwaW1lbSwgJm9wKTsKLQlpZiAocmV0IDwgMCkKLQkJZGV2X2VycigmZmxhc2gtPnNwaW1lbS0+c3BpLT5kZXYsICJlcnJvciAlZCByZWFkaW5nICV4XG4iLCByZXQsCi0JCQljb2RlKTsKLQllbHNlCi0JCW1lbWNweSh2YWwsIHNjcmF0Y2hidWYsIGxlbik7Ci0KLQlrZnJlZShzY3JhdGNoYnVmKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgbTI1cDgwX3dyaXRlX3JlZyhzdHJ1Y3Qgc3BpX25vciAqbm9yLCB1OCBvcGNvZGUsIHU4ICpidWYsIGludCBsZW4pCi17Ci0Jc3RydWN0IG0yNXAgKmZsYXNoID0gbm9yLT5wcml2OwotCXN0cnVjdCBzcGlfbWVtX29wIG9wID0gU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChvcGNvZGUsIDEpLAotCQkJCQkgIFNQSV9NRU1fT1BfTk9fQUREUiwKLQkJCQkJICBTUElfTUVNX09QX05PX0RVTU1ZLAotCQkJCQkgIFNQSV9NRU1fT1BfREFUQV9PVVQobGVuLCBOVUxMLCAxKSk7Ci0Jdm9pZCAqc2NyYXRjaGJ1ZjsKLQlpbnQgcmV0OwotCi0Jc2NyYXRjaGJ1ZiA9IGttZW1kdXAoYnVmLCBsZW4sIEdGUF9LRVJORUwpOwotCWlmICghc2NyYXRjaGJ1ZikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlvcC5kYXRhLmJ1Zi5vdXQgPSBzY3JhdGNoYnVmOwotCXJldCA9IHNwaV9tZW1fZXhlY19vcChmbGFzaC0+c3BpbWVtLCAmb3ApOwotCWtmcmVlKHNjcmF0Y2hidWYpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHNzaXplX3QgbTI1cDgwX3dyaXRlKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCB0bywgc2l6ZV90IGxlbiwKLQkJCSAgICBjb25zdCB1X2NoYXIgKmJ1ZikKLXsKLQlzdHJ1Y3QgbTI1cCAqZmxhc2ggPSBub3ItPnByaXY7Ci0Jc3RydWN0IHNwaV9tZW1fb3Agb3AgPQotCQkJU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChub3ItPnByb2dyYW1fb3Bjb2RlLCAxKSwKLQkJCQkgICBTUElfTUVNX09QX0FERFIobm9yLT5hZGRyX3dpZHRoLCB0bywgMSksCi0JCQkJICAgU1BJX01FTV9PUF9OT19EVU1NWSwKLQkJCQkgICBTUElfTUVNX09QX0RBVEFfT1VUKGxlbiwgYnVmLCAxKSk7Ci0JaW50IHJldDsKLQotCS8qIGdldCB0cmFuc2ZlciBwcm90b2NvbHMuICovCi0Jb3AuY21kLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfaW5zdF9uYml0cyhub3ItPndyaXRlX3Byb3RvKTsKLQlvcC5hZGRyLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfYWRkcl9uYml0cyhub3ItPndyaXRlX3Byb3RvKTsKLQlvcC5kYXRhLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfZGF0YV9uYml0cyhub3ItPndyaXRlX3Byb3RvKTsKLQotCWlmIChub3ItPnByb2dyYW1fb3Bjb2RlID09IFNQSU5PUl9PUF9BQUlfV1AgJiYgbm9yLT5zc3Rfd3JpdGVfc2Vjb25kKQotCQlvcC5hZGRyLm5ieXRlcyA9IDA7Ci0KLQlyZXQgPSBzcGlfbWVtX2FkanVzdF9vcF9zaXplKGZsYXNoLT5zcGltZW0sICZvcCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQlvcC5kYXRhLm5ieXRlcyA9IGxlbiA8IG9wLmRhdGEubmJ5dGVzID8gbGVuIDogb3AuZGF0YS5uYnl0ZXM7Ci0KLQlyZXQgPSBzcGlfbWVtX2V4ZWNfb3AoZmxhc2gtPnNwaW1lbSwgJm9wKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcmV0dXJuIG9wLmRhdGEubmJ5dGVzOwotfQotCi0vKgotICogUmVhZCBhbiBhZGRyZXNzIHJhbmdlIGZyb20gdGhlIG5vciBjaGlwLiAgVGhlIGFkZHJlc3MgcmFuZ2UKLSAqIG1heSBiZSBhbnkgc2l6ZSBwcm92aWRlZCBpdCBpcyB3aXRoaW4gdGhlIHBoeXNpY2FsIGJvdW5kYXJpZXMuCi0gKi8KLXN0YXRpYyBzc2l6ZV90IG0yNXA4MF9yZWFkKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBmcm9tLCBzaXplX3QgbGVuLAotCQkJICAgdV9jaGFyICpidWYpCi17Ci0Jc3RydWN0IG0yNXAgKmZsYXNoID0gbm9yLT5wcml2OwotCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KLQkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQobm9yLT5yZWFkX29wY29kZSwgMSksCi0JCQkJICAgU1BJX01FTV9PUF9BRERSKG5vci0+YWRkcl93aWR0aCwgZnJvbSwgMSksCi0JCQkJICAgU1BJX01FTV9PUF9EVU1NWShub3ItPnJlYWRfZHVtbXksIDEpLAotCQkJCSAgIFNQSV9NRU1fT1BfREFUQV9JTihsZW4sIGJ1ZiwgMSkpOwotCXNpemVfdCByZW1haW5pbmcgPSBsZW47Ci0JaW50IHJldDsKLQotCS8qIGdldCB0cmFuc2ZlciBwcm90b2NvbHMuICovCi0Jb3AuY21kLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfaW5zdF9uYml0cyhub3ItPnJlYWRfcHJvdG8pOwotCW9wLmFkZHIuYnVzd2lkdGggPSBzcGlfbm9yX2dldF9wcm90b2NvbF9hZGRyX25iaXRzKG5vci0+cmVhZF9wcm90byk7Ci0Jb3AuZHVtbXkuYnVzd2lkdGggPSBvcC5hZGRyLmJ1c3dpZHRoOwotCW9wLmRhdGEuYnVzd2lkdGggPSBzcGlfbm9yX2dldF9wcm90b2NvbF9kYXRhX25iaXRzKG5vci0+cmVhZF9wcm90byk7Ci0KLQkvKiBjb252ZXJ0IHRoZSBkdW1teSBjeWNsZXMgdG8gdGhlIG51bWJlciBvZiBieXRlcyAqLwotCW9wLmR1bW15Lm5ieXRlcyA9IChub3ItPnJlYWRfZHVtbXkgKiBvcC5kdW1teS5idXN3aWR0aCkgLyA4OwotCi0Jd2hpbGUgKHJlbWFpbmluZykgewotCQlvcC5kYXRhLm5ieXRlcyA9IHJlbWFpbmluZyA8IFVJTlRfTUFYID8gcmVtYWluaW5nIDogVUlOVF9NQVg7Ci0JCXJldCA9IHNwaV9tZW1fYWRqdXN0X29wX3NpemUoZmxhc2gtPnNwaW1lbSwgJm9wKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0KLQkJcmV0ID0gc3BpX21lbV9leGVjX29wKGZsYXNoLT5zcGltZW0sICZvcCk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCi0JCW9wLmFkZHIudmFsICs9IG9wLmRhdGEubmJ5dGVzOwotCQlyZW1haW5pbmcgLT0gb3AuZGF0YS5uYnl0ZXM7Ci0JCW9wLmRhdGEuYnVmLmluICs9IG9wLmRhdGEubmJ5dGVzOwotCX0KLQotCXJldHVybiBsZW47Ci19Ci0KLS8qCi0gKiBib2FyZCBzcGVjaWZpYyBzZXR1cCBzaG91bGQgaGF2ZSBlbnN1cmVkIHRoZSBTUEkgY2xvY2sgdXNlZCBoZXJlCi0gKiBtYXRjaGVzIHdoYXQgdGhlIFJFQUQgY29tbWFuZCBzdXBwb3J0cywgYXQgbGVhc3QgdW50aWwgdGhpcyBkcml2ZXIKLSAqIHVuZGVyc3RhbmRzIEZBU1RfUkVBRCAoZm9yIGNsb2NrcyBvdmVyIDI1IE1IeikuCi0gKi8KLXN0YXRpYyBpbnQgbTI1cF9wcm9iZShzdHJ1Y3Qgc3BpX21lbSAqc3BpbWVtKQotewotCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBzcGltZW0tPnNwaTsKLQlzdHJ1Y3QgZmxhc2hfcGxhdGZvcm1fZGF0YQkqZGF0YTsKLQlzdHJ1Y3QgbTI1cCAqZmxhc2g7Ci0Jc3RydWN0IHNwaV9ub3IgKm5vcjsKLQlzdHJ1Y3Qgc3BpX25vcl9od2NhcHMgaHdjYXBzID0gewotCQkubWFzayA9IFNOT1JfSFdDQVBTX1JFQUQgfAotCQkJU05PUl9IV0NBUFNfUkVBRF9GQVNUIHwKLQkJCVNOT1JfSFdDQVBTX1BQLAotCX07Ci0JY2hhciAqZmxhc2hfbmFtZTsKLQlpbnQgcmV0OwotCi0JZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoJnNwaW1lbS0+c3BpLT5kZXYpOwotCi0JZmxhc2ggPSBkZXZtX2t6YWxsb2MoJnNwaW1lbS0+c3BpLT5kZXYsIHNpemVvZigqZmxhc2gpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWZsYXNoKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW5vciA9ICZmbGFzaC0+c3BpX25vcjsKLQotCS8qIGluc3RhbGwgdGhlIGhvb2tzICovCi0Jbm9yLT5yZWFkID0gbTI1cDgwX3JlYWQ7Ci0Jbm9yLT53cml0ZSA9IG0yNXA4MF93cml0ZTsKLQlub3ItPndyaXRlX3JlZyA9IG0yNXA4MF93cml0ZV9yZWc7Ci0Jbm9yLT5yZWFkX3JlZyA9IG0yNXA4MF9yZWFkX3JlZzsKLQotCW5vci0+ZGV2ID0gJnNwaW1lbS0+c3BpLT5kZXY7Ci0Jc3BpX25vcl9zZXRfZmxhc2hfbm9kZShub3IsIHNwaS0+ZGV2Lm9mX25vZGUpOwotCW5vci0+cHJpdiA9IGZsYXNoOwotCi0Jc3BpX21lbV9zZXRfZHJ2ZGF0YShzcGltZW0sIGZsYXNoKTsKLQlmbGFzaC0+c3BpbWVtID0gc3BpbWVtOwotCi0JaWYgKHNwaS0+bW9kZSAmIFNQSV9SWF9PQ1RBTCkgewotCQlod2NhcHMubWFzayB8PSBTTk9SX0hXQ0FQU19SRUFEXzFfMV84OwotCi0JCWlmIChzcGktPm1vZGUgJiBTUElfVFhfT0NUQUwpCi0JCQlod2NhcHMubWFzayB8PSAoU05PUl9IV0NBUFNfUkVBRF8xXzhfOCB8Ci0JCQkJCVNOT1JfSFdDQVBTX1BQXzFfMV84IHwKLQkJCQkJU05PUl9IV0NBUFNfUFBfMV84XzgpOwotCX0gZWxzZSBpZiAoc3BpLT5tb2RlICYgU1BJX1JYX1FVQUQpIHsKLQkJaHdjYXBzLm1hc2sgfD0gU05PUl9IV0NBUFNfUkVBRF8xXzFfNDsKLQotCQlpZiAoc3BpLT5tb2RlICYgU1BJX1RYX1FVQUQpCi0JCQlod2NhcHMubWFzayB8PSAoU05PUl9IV0NBUFNfUkVBRF8xXzRfNCB8Ci0JCQkJCVNOT1JfSFdDQVBTX1BQXzFfMV80IHwKLQkJCQkJU05PUl9IV0NBUFNfUFBfMV80XzQpOwotCX0gZWxzZSBpZiAoc3BpLT5tb2RlICYgU1BJX1JYX0RVQUwpIHsKLQkJaHdjYXBzLm1hc2sgfD0gU05PUl9IV0NBUFNfUkVBRF8xXzFfMjsKLQotCQlpZiAoc3BpLT5tb2RlICYgU1BJX1RYX0RVQUwpCi0JCQlod2NhcHMubWFzayB8PSBTTk9SX0hXQ0FQU19SRUFEXzFfMl8yOwotCX0KLQotCWlmIChkYXRhICYmIGRhdGEtPm5hbWUpCi0JCW5vci0+bXRkLm5hbWUgPSBkYXRhLT5uYW1lOwotCi0JaWYgKCFub3ItPm10ZC5uYW1lKQotCQlub3ItPm10ZC5uYW1lID0gc3BpX21lbV9nZXRfbmFtZShzcGltZW0pOwotCi0JLyogRm9yIHNvbWUgKGhpc3RvcmljYWw/KSByZWFzb24gbWFueSBwbGF0Zm9ybXMgcHJvdmlkZSB0d28gZGlmZmVyZW50Ci0JICogbmFtZXMgaW4gZmxhc2hfcGxhdGZvcm1fZGF0YTogIm5hbWUiIGFuZCAidHlwZSIuIFF1aXRlIG9mdGVuIG5hbWUgaXMKLQkgKiBzZXQgdG8gIm0yNXA4MCIgYW5kIHRoZW4gInR5cGUiIHByb3ZpZGVzIGEgcmVhbCBjaGlwIG5hbWUuCi0JICogSWYgdGhhdCdzIHRoZSBjYXNlLCByZXNwZWN0ICJ0eXBlIiBhbmQgaWdub3JlIGEgIm5hbWUiLgotCSAqLwotCWlmIChkYXRhICYmIGRhdGEtPnR5cGUpCi0JCWZsYXNoX25hbWUgPSBkYXRhLT50eXBlOwotCWVsc2UgaWYgKCFzdHJjbXAoc3BpLT5tb2RhbGlhcywgInNwaS1ub3IiKSkKLQkJZmxhc2hfbmFtZSA9IE5VTEw7IC8qIGF1dG8tZGV0ZWN0ICovCi0JZWxzZQotCQlmbGFzaF9uYW1lID0gc3BpLT5tb2RhbGlhczsKLQotCXJldCA9IHNwaV9ub3Jfc2Nhbihub3IsIGZsYXNoX25hbWUsICZod2NhcHMpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXR1cm4gbXRkX2RldmljZV9yZWdpc3Rlcigmbm9yLT5tdGQsIGRhdGEgPyBkYXRhLT5wYXJ0cyA6IE5VTEwsCi0JCQkJICAgZGF0YSA/IGRhdGEtPm5yX3BhcnRzIDogMCk7Ci19Ci0KLQotc3RhdGljIGludCBtMjVwX3JlbW92ZShzdHJ1Y3Qgc3BpX21lbSAqc3BpbWVtKQotewotCXN0cnVjdCBtMjVwCSpmbGFzaCA9IHNwaV9tZW1fZ2V0X2RydmRhdGEoc3BpbWVtKTsKLQotCXNwaV9ub3JfcmVzdG9yZSgmZmxhc2gtPnNwaV9ub3IpOwotCi0JLyogQ2xlYW4gdXAgTVREIHN0dWZmLiAqLwotCXJldHVybiBtdGRfZGV2aWNlX3VucmVnaXN0ZXIoJmZsYXNoLT5zcGlfbm9yLm10ZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIG0yNXBfc2h1dGRvd24oc3RydWN0IHNwaV9tZW0gKnNwaW1lbSkKLXsKLQlzdHJ1Y3QgbTI1cCAqZmxhc2ggPSBzcGlfbWVtX2dldF9kcnZkYXRhKHNwaW1lbSk7Ci0KLQlzcGlfbm9yX3Jlc3RvcmUoJmZsYXNoLT5zcGlfbm9yKTsKLX0KLS8qCi0gKiBEbyBOT1QgYWRkIHRvIHRoaXMgYXJyYXkgd2l0aG91dCByZWFkaW5nIHRoZSBmb2xsb3dpbmc6Ci0gKgotICogSGlzdG9yaWNhbGx5LCBtYW55IGZsYXNoIGRldmljZXMgYXJlIGJvdW5kIHRvIHRoaXMgZHJpdmVyIGJ5IHRoZWlyIG5hbWUuIEJ1dAotICogc2luY2UgbW9zdCBvZiB0aGVzZSBmbGFzaCBhcmUgY29tcGF0aWJsZSB0byBzb21lIGV4dGVudCwgYW5kIHRoZWlyCi0gKiBkaWZmZXJlbmNlcyBjYW4gb2Z0ZW4gYmUgZGlmZmVyZW50aWF0ZWQgYnkgdGhlIEpFREVDIHJlYWQtSUQgY29tbWFuZCwgd2UKLSAqIGVuY291cmFnZSBuZXcgdXNlcnMgdG8gYWRkIHN1cHBvcnQgdG8gdGhlIHNwaS1ub3IgbGlicmFyeSwgYW5kIHNpbXBseSBiaW5kCi0gKiBhZ2FpbnN0IGEgZ2VuZXJpYyBzdHJpbmcgaGVyZSAoZS5nLiwgImplZGVjLHNwaS1ub3IiKS4KLSAqCi0gKiBNYW55IGZsYXNoIG5hbWVzIGFyZSBrZXB0IGhlcmUgaW4gdGhpcyBsaXN0IChhcyB3ZWxsIGFzIGluIHNwaS1ub3IuYykgdG8KLSAqIGtlZXAgdGhlbSBhdmFpbGFibGUgYXMgbW9kdWxlIGFsaWFzZXMgZm9yIGV4aXN0aW5nIHBsYXRmb3Jtcy4KLSAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIG0yNXBfaWRzW10gPSB7Ci0JLyoKLQkgKiBBbGxvdyBub24tRFQgcGxhdGZvcm0gZGV2aWNlcyB0byBiaW5kIHRvIHRoZSAic3BpLW5vciIgbW9kYWxpYXMsIGFuZAotCSAqIGhhY2sgYXJvdW5kIHRoZSBmYWN0IHRoYXQgdGhlIFNQSSBjb3JlIGRvZXMgbm90IHByb3ZpZGUgdWV2ZW50Ci0JICogbWF0Y2hpbmcgZm9yIC5vZl9tYXRjaF90YWJsZQotCSAqLwotCXsic3BpLW5vciJ9LAotCi0JLyoKLQkgKiBFbnRyaWVzIG5vdCB1c2VkIGluIERUcyB0aGF0IHNob3VsZCBiZSBzYWZlIHRvIGRyb3AgYWZ0ZXIgcmVwbGFjaW5nCi0JICogdGhlbSB3aXRoICJzcGktbm9yIiBpbiBwbGF0Zm9ybSBkYXRhLgotCSAqLwotCXsiczI1c2wwNjRhIn0sCXsidzI1eDE2In0sCXsibTI1cDEwIn0sCXsibTI1cHg2NCJ9LAotCi0JLyoKLQkgKiBFbnRyaWVzIHRoYXQgd2VyZSB1c2VkIGluIERUcyB3aXRob3V0ICJqZWRlYyxzcGktbm9yIiBmYWxsYmFjayBhbmQKLQkgKiBzaG91bGQgYmUga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLQkgKi8KLQl7ImF0MjVkZjMyMWEifSwJeyJhdDI1ZGY2NDEifSwJeyJhdDI2ZGYwODFhIn0sCi0JeyJteDI1bDQwMDVhIn0sCXsibXgyNWwxNjA2ZSJ9LAl7Im14MjVsNjQwNWQifSwJeyJteDI1bDEyODA1ZCJ9LAotCXsibXgyNWwyNTYzNWUifSx7Im14NjZsNTEyMzVsIn0sCi0JeyJuMjVxMDY0In0sCXsibjI1cTEyOGExMSJ9LAl7Im4yNXExMjhhMTMifSwJeyJuMjVxNTEyYSJ9LAotCXsiczI1ZmwyNTZzMSJ9LAl7InMyNWZsNTEycyJ9LAl7InMyNXNsMTI4MDEifSwJeyJzMjVmbDAwOGsifSwKLQl7InMyNWZsMDY0ayJ9LAotCXsic3N0MjV2ZjA0MGIifSx7InNzdDI1dmYwMTZiIn0seyJzc3QyNXZmMDMyYiJ9LHsic3N0MjV3ZjA0MCJ9LAotCXsibTI1cDQwIn0sCXsibTI1cDgwIn0sCXsibTI1cDE2In0sCXsibTI1cDMyIn0sCi0JeyJtMjVwNjQifSwJeyJtMjVwMTI4In0sCi0JeyJ3MjV4ODAifSwJeyJ3MjV4MzIifSwJeyJ3MjVxMzIifSwJeyJ3MjVxMzJkdyJ9LAotCXsidzI1cTgwYmwifSwJeyJ3MjVxMTI4In0sCXsidzI1cTI1NiJ9LAotCi0JLyogRmxhc2hlcyB0aGF0IGNhbid0IGJlIGRldGVjdGVkIHVzaW5nIEpFREVDICovCi0JeyJtMjVwMDUtbm9uamVkZWMifSwJeyJtMjVwMTAtbm9uamVkZWMifSwJeyJtMjVwMjAtbm9uamVkZWMifSwKLQl7Im0yNXA0MC1ub25qZWRlYyJ9LAl7Im0yNXA4MC1ub25qZWRlYyJ9LAl7Im0yNXAxNi1ub25qZWRlYyJ9LAotCXsibTI1cDMyLW5vbmplZGVjIn0sCXsibTI1cDY0LW5vbmplZGVjIn0sCXsibTI1cDEyOC1ub25qZWRlYyJ9LAotCi0JLyogRXZlcnNwaW4gTVJBTXMgKG5vbi1KRURFQykgKi8KLQl7ICJtcjI1aDEyOCIgfSwgLyogMTI4IEtpYiwgNDAgTUh6ICovCi0JeyAibXIyNWgyNTYiIH0sIC8qIDI1NiBLaWIsIDQwIE1IeiAqLwotCXsgIm1yMjVoMTAiIH0sICAvKiAgIDEgTWliLCA0MCBNSHogKi8KLQl7ICJtcjI1aDQwIiB9LCAgLyogICA0IE1pYiwgNDAgTUh6ICovCi0KLQl7IH0sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShzcGksIG0yNXBfaWRzKTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbTI1cF9vZl90YWJsZVtdID0gewotCS8qCi0JICogR2VuZXJpYyBjb21wYXRpYmlsaXR5IGZvciBTUEkgTk9SIHRoYXQgY2FuIGJlIGlkZW50aWZpZWQgYnkgdGhlCi0JICogSkVERUMgUkVBRCBJRCBvcGNvZGUgKDB4OUYpLiBVc2UgdGhpcywgaWYgcG9zc2libGUuCi0JICovCi0JeyAuY29tcGF0aWJsZSA9ICJqZWRlYyxzcGktbm9yIiB9LAotCXt9Ci19OwotTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbTI1cF9vZl90YWJsZSk7Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3BpX21lbV9kcml2ZXIgbTI1cDgwX2RyaXZlciA9IHsKLQkuc3BpZHJ2ID0gewotCQkuZHJpdmVyID0gewotCQkJLm5hbWUJPSAibTI1cDgwIiwKLQkJCS5vZl9tYXRjaF90YWJsZSA9IG0yNXBfb2ZfdGFibGUsCi0JCX0sCi0JCS5pZF90YWJsZQk9IG0yNXBfaWRzLAotCX0sCi0JLnByb2JlCT0gbTI1cF9wcm9iZSwKLQkucmVtb3ZlCT0gbTI1cF9yZW1vdmUsCi0JLnNodXRkb3duCT0gbTI1cF9zaHV0ZG93biwKLQotCS8qIFJFVklTSVQ6IG1hbnkgb2YgdGhlc2UgY2hpcHMgaGF2ZSBkZWVwIHBvd2VyLWRvd24gbW9kZXMsIHdoaWNoCi0JICogc2hvdWxkIGNsZWFybHkgYmUgZW50ZXJlZCBvbiBzdXNwZW5kKCkgdG8gbWluaW1pemUgcG93ZXIgdXNlLgotCSAqIEFuZCBhbHNvIHdoZW4gdGhleSdyZSBvdGhlcndpc2UgaWRsZS4uLgotCSAqLwotfTsKLQotbW9kdWxlX3NwaV9tZW1fZHJpdmVyKG0yNXA4MF9kcml2ZXIpOwotCi1NT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1NT0RVTEVfQVVUSE9SKCJNaWtlIExhdmVuZGVyIik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIk1URCBTUEkgZHJpdmVyIGZvciBTVCBNMjVQeHggZmxhc2ggY2hpcHMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL2RldmljZXMvcGhyYW0uYyBiL2RyaXZlcnMvbXRkL2RldmljZXMvcGhyYW0uYwppbmRleCBjNDY3Mjg2Li45MzFlNWMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9kZXZpY2VzL3BocmFtLmMKKysrIGIvZHJpdmVycy9tdGQvZGV2aWNlcy9waHJhbS5jCkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIGludCBwaHJhbV9wYXJhbV9jYWxsKGNvbnN0IGNoYXIgKnZhbCwgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSAqa3ApCiAjZW5kaWYKIH0KIAotbW9kdWxlX3BhcmFtX2NhbGwocGhyYW0sIHBocmFtX3BhcmFtX2NhbGwsIE5VTEwsIE5VTEwsIDAwMCk7Cittb2R1bGVfcGFyYW1fY2FsbChwaHJhbSwgcGhyYW1fcGFyYW1fY2FsbCwgTlVMTCwgTlVMTCwgMDIwMCk7CiBNT0RVTEVfUEFSTV9ERVNDKHBocmFtLCAiTWVtb3J5IHJlZ2lvbiB0byBtYXAuIFwicGhyYW09PG5hbWU+LDxzdGFydD4sPGxlbmd0aD5cIiIpOwogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL2RldmljZXMvcG1jNTUxLmMgYi9kcml2ZXJzL210ZC9kZXZpY2VzL3BtYzU1MS5jCmluZGV4IDNiODlhYjIuLjY1OTdmYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL2RldmljZXMvcG1jNTUxLmMKKysrIGIvZHJpdmVycy9tdGQvZGV2aWNlcy9wbWM1NTEuYwpAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRpYyBpbnQgcG1jNTUxX3BvaW50KHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbiwKIHN0YXRpYyBpbnQgcG1jNTUxX2VyYXNlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgZXJhc2VfaW5mbyAqaW5zdHIpCiB7CiAJc3RydWN0IG15cHJpdiAqcHJpdiA9IG10ZC0+cHJpdjsKLQl1MzIgc29mZl9oaSwgc29mZl9sbzsJLyogc3RhcnQgYWRkcmVzcyBvZmZzZXQgaGkvbG8gKi8KKwl1MzIgc29mZl9oaTsJCS8qIHN0YXJ0IGFkZHJlc3Mgb2Zmc2V0IGhpICovCiAJdTMyIGVvZmZfaGksIGVvZmZfbG87CS8qIGVuZCBhZGRyZXNzIG9mZnNldCBoaS9sbyAqLwogCXVuc2lnbmVkIGxvbmcgZW5kOwogCXVfY2hhciAqcHRyOwpAQCAtMTUwLDcgKzE1MCw2IEBAIHN0YXRpYyBpbnQgcG1jNTUxX2VyYXNlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgZXJhc2VfaW5mbyAqaW5zdHIpCiAJZW9mZl9oaSA9IGVuZCAmIH4ocHJpdi0+YXNpemUgLSAxKTsKIAlzb2ZmX2hpID0gaW5zdHItPmFkZHIgJiB+KHByaXYtPmFzaXplIC0gMSk7CiAJZW9mZl9sbyA9IGVuZCAmIChwcml2LT5hc2l6ZSAtIDEpOwotCXNvZmZfbG8gPSBpbnN0ci0+YWRkciAmIChwcml2LT5hc2l6ZSAtIDEpOwogCiAJcG1jNTUxX3BvaW50KG10ZCwgaW5zdHItPmFkZHIsIGluc3RyLT5sZW4sICZyZXRsZW4sCiAJCSAgICAgKHZvaWQgKiopJnB0ciwgTlVMTCk7CkBAIC0yMjUsNyArMjI0LDcgQEAgc3RhdGljIGludCBwbWM1NTFfcmVhZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IGZyb20sIHNpemVfdCBsZW4sCiAJCQlzaXplX3QgKiByZXRsZW4sIHVfY2hhciAqIGJ1ZikKIHsKIAlzdHJ1Y3QgbXlwcml2ICpwcml2ID0gbXRkLT5wcml2OwotCXUzMiBzb2ZmX2hpLCBzb2ZmX2xvOwkvKiBzdGFydCBhZGRyZXNzIG9mZnNldCBoaS9sbyAqLworCXUzMiBzb2ZmX2hpOwkJLyogc3RhcnQgYWRkcmVzcyBvZmZzZXQgaGkgKi8KIAl1MzIgZW9mZl9oaSwgZW9mZl9sbzsJLyogZW5kIGFkZHJlc3Mgb2Zmc2V0IGhpL2xvICovCiAJdW5zaWduZWQgbG9uZyBlbmQ7CiAJdV9jaGFyICpwdHI7CkBAIC0yMzksNyArMjM4LDYgQEAgc3RhdGljIGludCBwbWM1NTFfcmVhZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IGZyb20sIHNpemVfdCBsZW4sCiAJZW5kID0gZnJvbSArIGxlbiAtIDE7CiAJc29mZl9oaSA9IGZyb20gJiB+KHByaXYtPmFzaXplIC0gMSk7CiAJZW9mZl9oaSA9IGVuZCAmIH4ocHJpdi0+YXNpemUgLSAxKTsKLQlzb2ZmX2xvID0gZnJvbSAmIChwcml2LT5hc2l6ZSAtIDEpOwogCWVvZmZfbG8gPSBlbmQgJiAocHJpdi0+YXNpemUgLSAxKTsKIAogCXBtYzU1MV9wb2ludChtdGQsIGZyb20sIGxlbiwgcmV0bGVuLCAodm9pZCAqKikmcHRyLCBOVUxMKTsKQEAgLTI4Miw3ICsyODAsNyBAQCBzdGF0aWMgaW50IHBtYzU1MV93cml0ZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IHRvLCBzaXplX3QgbGVuLAogCQkJc2l6ZV90ICogcmV0bGVuLCBjb25zdCB1X2NoYXIgKiBidWYpCiB7CiAJc3RydWN0IG15cHJpdiAqcHJpdiA9IG10ZC0+cHJpdjsKLQl1MzIgc29mZl9oaSwgc29mZl9sbzsJLyogc3RhcnQgYWRkcmVzcyBvZmZzZXQgaGkvbG8gKi8KKwl1MzIgc29mZl9oaTsJCS8qIHN0YXJ0IGFkZHJlc3Mgb2Zmc2V0IGhpICovCiAJdTMyIGVvZmZfaGksIGVvZmZfbG87CS8qIGVuZCBhZGRyZXNzIG9mZnNldCBoaS9sbyAqLwogCXVuc2lnbmVkIGxvbmcgZW5kOwogCXVfY2hhciAqcHRyOwpAQCAtMjk2LDcgKzI5NCw2IEBAIHN0YXRpYyBpbnQgcG1jNTUxX3dyaXRlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgdG8sIHNpemVfdCBsZW4sCiAJZW5kID0gdG8gKyBsZW4gLSAxOwogCXNvZmZfaGkgPSB0byAmIH4ocHJpdi0+YXNpemUgLSAxKTsKIAllb2ZmX2hpID0gZW5kICYgfihwcml2LT5hc2l6ZSAtIDEpOwotCXNvZmZfbG8gPSB0byAmIChwcml2LT5hc2l6ZSAtIDEpOwogCWVvZmZfbG8gPSBlbmQgJiAocHJpdi0+YXNpemUgLSAxKTsKIAogCXBtYzU1MV9wb2ludChtdGQsIHRvLCBsZW4sIHJldGxlbiwgKHZvaWQgKiopJnB0ciwgTlVMTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9tYXBzL3Bpc21vLmMgYi9kcml2ZXJzL210ZC9tYXBzL3Bpc21vLmMKaW5kZXggNzg4ZDQ5OS4uOTQ2YmE4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbWFwcy9waXNtby5jCisrKyBiL2RyaXZlcnMvbXRkL21hcHMvcGlzbW8uYwpAQCAtMjExLDEzICsyMTEsMTIgQEAgc3RhdGljIGludCBwaXNtb19yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKIHN0YXRpYyBpbnQgcGlzbW9fcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJICAgICAgIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKIHsKLQlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIgPSB0b19pMmNfYWRhcHRlcihjbGllbnQtPmRldi5wYXJlbnQpOwogCXN0cnVjdCBwaXNtb19wZGF0YSAqcGRhdGEgPSBjbGllbnQtPmRldi5wbGF0Zm9ybV9kYXRhOwogCXN0cnVjdCBwaXNtb19lZXByb20gZWVwcm9tOwogCXN0cnVjdCBwaXNtb19kYXRhICpwaXNtbzsKIAlpbnQgcmV0LCBpOwogCi0JaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShhZGFwdGVyLCBJMkNfRlVOQ19JMkMpKSB7CisJaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShjbGllbnQtPmFkYXB0ZXIsIEkyQ19GVU5DX0kyQykpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICJmdW5jdGlvbmFsaXR5IG1pc21hdGNoXG4iKTsKIAkJcmV0dXJuIC1FSU87CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbWFwcy9weGEyeHgtZmxhc2guYyBiL2RyaXZlcnMvbXRkL21hcHMvcHhhMnh4LWZsYXNoLmMKaW5kZXggY2ViYjM0Ni4uN2Q5Njc1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbWFwcy9weGEyeHgtZmxhc2guYworKysgYi9kcml2ZXJzL210ZC9tYXBzL3B4YTJ4eC1mbGFzaC5jCkBAIC02OCw4ICs2OCw3IEBAIHN0YXRpYyBpbnQgcHhhMnh4X2ZsYXNoX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCSAgICAgICBpbmZvLT5tYXAubmFtZSk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KLQlpbmZvLT5tYXAuY2FjaGVkID0KLQkJaW9yZW1hcF9jYWNoZWQoaW5mby0+bWFwLnBoeXMsIGluZm8tPm1hcC5zaXplKTsKKwlpbmZvLT5tYXAuY2FjaGVkID0gaW9yZW1hcF9jYWNoZShpbmZvLT5tYXAucGh5cywgaW5mby0+bWFwLnNpemUpOwogCWlmICghaW5mby0+bWFwLmNhY2hlZCkKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiRmFpbGVkIHRvIGlvcmVtYXAgY2FjaGVkICVzXG4iLAogCQkgICAgICAgaW5mby0+bWFwLm5hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbXRkY29yZS5jIGIvZHJpdmVycy9tdGQvbXRkY29yZS5jCmluZGV4IDQwODYxNWYuLjZjYzdlY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL210ZGNvcmUuYworKysgYi9kcml2ZXJzL210ZC9tdGRjb3JlLmMKQEAgLTMzNSw2ICszMzUsODIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSBtdGRfZGV2dHlwZSA9IHsKIAkucmVsZWFzZQk9IG10ZF9yZWxlYXNlLAogfTsKIAorc3RhdGljIGludCBtdGRfcGFydGlkX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwKQoreworCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gcy0+cHJpdmF0ZTsKKworCXNlcV9wcmludGYocywgIiVzXG4iLCBtdGQtPmRiZy5wYXJ0aWQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbXRkX3BhcnRpZF9kZWJ1Z2ZzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIG10ZF9wYXJ0aWRfc2hvdywgaW5vZGUtPmlfcHJpdmF0ZSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG10ZF9wYXJ0aWRfZGVidWdfZm9wcyA9IHsKKwkub3BlbiAgICAgICAgICAgPSBtdGRfcGFydGlkX2RlYnVnZnNfb3BlbiwKKwkucmVhZCAgICAgICAgICAgPSBzZXFfcmVhZCwKKwkubGxzZWVrICAgICAgICAgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgICAgICAgID0gc2luZ2xlX3JlbGVhc2UsCit9OworCitzdGF0aWMgaW50IG10ZF9wYXJ0bmFtZV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcCkKK3sKKwlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9IHMtPnByaXZhdGU7CisKKwlzZXFfcHJpbnRmKHMsICIlc1xuIiwgbXRkLT5kYmcucGFydG5hbWUpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbXRkX3BhcnRuYW1lX2RlYnVnZnNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgbXRkX3BhcnRuYW1lX3Nob3csIGlub2RlLT5pX3ByaXZhdGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtdGRfcGFydG5hbWVfZGVidWdfZm9wcyA9IHsKKwkub3BlbiAgICAgICAgICAgPSBtdGRfcGFydG5hbWVfZGVidWdmc19vcGVuLAorCS5yZWFkICAgICAgICAgICA9IHNlcV9yZWFkLAorCS5sbHNlZWsgICAgICAgICA9IHNlcV9sc2VlaywKKwkucmVsZWFzZSAgICAgICAgPSBzaW5nbGVfcmVsZWFzZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpkZnNfZGlyX210ZDsKKworc3RhdGljIHZvaWQgbXRkX2RlYnVnZnNfcG9wdWxhdGUoc3RydWN0IG10ZF9pbmZvICptdGQpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJm10ZC0+ZGV2OworCXN0cnVjdCBkZW50cnkgKnJvb3QsICpkZW50OworCisJaWYgKElTX0VSUl9PUl9OVUxMKGRmc19kaXJfbXRkKSkKKwkJcmV0dXJuOworCisJcm9vdCA9IGRlYnVnZnNfY3JlYXRlX2RpcihkZXZfbmFtZShkZXYpLCBkZnNfZGlyX210ZCk7CisJaWYgKElTX0VSUl9PUl9OVUxMKHJvb3QpKSB7CisJCWRldl9kYmcoZGV2LCAid29uJ3Qgc2hvdyBkYXRhIGluIGRlYnVnZnNcbiIpOworCQlyZXR1cm47CisJfQorCisJbXRkLT5kYmcuZGZzX2RpciA9IHJvb3Q7CisKKwlpZiAobXRkLT5kYmcucGFydGlkKSB7CisJCWRlbnQgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJwYXJ0aWQiLCAwNDAwLCByb290LCBtdGQsCisJCQkJCSAgICZtdGRfcGFydGlkX2RlYnVnX2ZvcHMpOworCQlpZiAoSVNfRVJSX09SX05VTEwoZGVudCkpCisJCQlkZXZfZXJyKGRldiwgImNhbid0IGNyZWF0ZSBkZWJ1Z2ZzIGVudHJ5IGZvciBwYXJ0aWRcbiIpOworCX0KKworCWlmIChtdGQtPmRiZy5wYXJ0bmFtZSkgeworCQlkZW50ID0gZGVidWdmc19jcmVhdGVfZmlsZSgicGFydG5hbWUiLCAwNDAwLCByb290LCBtdGQsCisJCQkJCSAgICZtdGRfcGFydG5hbWVfZGVidWdfZm9wcyk7CisJCWlmIChJU19FUlJfT1JfTlVMTChkZW50KSkKKwkJCWRldl9lcnIoZGV2LAorCQkJCSJjYW4ndCBjcmVhdGUgZGVidWdmcyBlbnRyeSBmb3IgcGFydG5hbWVcbiIpOworCX0KK30KKwogI2lmbmRlZiBDT05GSUdfTU1VCiB1bnNpZ25lZCBtdGRfbW1hcF9jYXBhYmlsaXRpZXMoc3RydWN0IG10ZF9pbmZvICptdGQpCiB7CkBAIC01MTIsOCArNTg4LDYgQEAgc3RhdGljIGludCBtdGRfbnZtZW1fYWRkKHN0cnVjdCBtdGRfaW5mbyAqbXRkKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGRlbnRyeSAqZGZzX2Rpcl9tdGQ7Ci0KIC8qKgogICoJYWRkX210ZF9kZXZpY2UgLSByZWdpc3RlciBhbiBNVEQgZGV2aWNlCiAgKglAbXRkOiBwb2ludGVyIHRvIG5ldyBNVEQgZGV2aWNlIGluZm8gc3RydWN0dXJlCkBAIC02MDcsMTMgKzY4MSw3IEBAIGludCBhZGRfbXRkX2RldmljZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKIAlpZiAoZXJyb3IpCiAJCWdvdG8gZmFpbF9udm1lbV9hZGQ7CiAKLQlpZiAoIUlTX0VSUl9PUl9OVUxMKGRmc19kaXJfbXRkKSkgewotCQltdGQtPmRiZy5kZnNfZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKGRldl9uYW1lKCZtdGQtPmRldiksIGRmc19kaXJfbXRkKTsKLQkJaWYgKElTX0VSUl9PUl9OVUxMKG10ZC0+ZGJnLmRmc19kaXIpKSB7Ci0JCQlwcl9kZWJ1ZygibXRkIGRldmljZSAlcyB3b24ndCBzaG93IGRhdGEgaW4gZGVidWdmc1xuIiwKLQkJCQkgZGV2X25hbWUoJm10ZC0+ZGV2KSk7Ci0JCX0KLQl9CisJbXRkX2RlYnVnZnNfcG9wdWxhdGUobXRkKTsKIAogCWRldmljZV9jcmVhdGUoJm10ZF9jbGFzcywgbXRkLT5kZXYucGFyZW50LCBNVERfREVWVChpKSArIDEsIE5VTEwsCiAJCSAgICAgICJtdGQlZHJvIiwgaSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9tdGRzdXBlci5jIGIvZHJpdmVycy9tdGQvbXRkc3VwZXIuYwppbmRleCAzZjlhM2I3Li5jM2UyMDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9tdGRzdXBlci5jCisrKyBiL2RyaXZlcnMvbXRkL210ZHN1cGVyLmMKQEAgLTE5NCwxOTUgKzE5NCw2IEBAIGludCBnZXRfdHJlZV9tdGQoc3RydWN0IGZzX2NvbnRleHQgKmZjLAogRVhQT1JUX1NZTUJPTF9HUEwoZ2V0X3RyZWVfbXRkKTsKIAogLyoKLSAqIGNvbXBhcmUgc3VwZXJibG9ja3MgdG8gc2VlIGlmIHRoZXkncmUgZXF1aXZhbGVudAotICogLSB0aGV5IGFyZSBpZiB0aGUgdW5kZXJseWluZyBNVEQgZGV2aWNlIGlzIHRoZSBzYW1lCi0gKi8KLXN0YXRpYyBpbnQgZ2V0X3NiX210ZF9jb21wYXJlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKl9tdGQpCi17Ci0Jc3RydWN0IG10ZF9pbmZvICptdGQgPSBfbXRkOwotCi0JaWYgKHNiLT5zX210ZCA9PSBtdGQpIHsKLQkJcHJfZGVidWcoIk1URFNCOiBNYXRjaCBvbiBkZXZpY2UgJWQgKFwiJXNcIilcbiIsCi0JCSAgICAgIG10ZC0+aW5kZXgsIG10ZC0+bmFtZSk7Ci0JCXJldHVybiAxOwotCX0KLQotCXByX2RlYnVnKCJNVERTQjogTm8gbWF0Y2gsIGRldmljZSAlZCAoXCIlc1wiKSwgZGV2aWNlICVkIChcIiVzXCIpXG4iLAotCSAgICAgIHNiLT5zX210ZC0+aW5kZXgsIHNiLT5zX210ZC0+bmFtZSwgbXRkLT5pbmRleCwgbXRkLT5uYW1lKTsKLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIG1hcmsgdGhlIHN1cGVyYmxvY2sgYnkgdGhlIE1URCBkZXZpY2UgaXQgaXMgdXNpbmcKLSAqIC0gc2V0IHRoZSBkZXZpY2UgbnVtYmVyIHRvIGJlIHRoZSBjb3JyZWN0IE1URCBibG9jayBkZXZpY2UgZm9yIHBlc3VwZXJzdGVuY2UKLSAqICAgb2YgTkZTIGV4cG9ydHMKLSAqLwotc3RhdGljIGludCBnZXRfc2JfbXRkX3NldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpfbXRkKQotewotCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gX210ZDsKLQotCXNiLT5zX210ZCA9IG10ZDsKLQlzYi0+c19kZXYgPSBNS0RFVihNVERfQkxPQ0tfTUFKT1IsIG10ZC0+aW5kZXgpOwotCXNiLT5zX2JkaSA9IGJkaV9nZXQobXRkX2JkaSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIGdldCBhIHN1cGVyYmxvY2sgb24gYW4gTVRELWJhY2tlZCBmaWxlc3lzdGVtCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICptb3VudF9tdGRfYXV4KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLCBpbnQgZmxhZ3MsCi0JCQkgIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhLAotCQkJICBzdHJ1Y3QgbXRkX2luZm8gKm10ZCwKLQkJCSAgaW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICosIHZvaWQgKiwgaW50KSkKLXsKLQlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiOwotCWludCByZXQ7Ci0KLQlzYiA9IHNnZXQoZnNfdHlwZSwgZ2V0X3NiX210ZF9jb21wYXJlLCBnZXRfc2JfbXRkX3NldCwgZmxhZ3MsIG10ZCk7Ci0JaWYgKElTX0VSUihzYikpCi0JCWdvdG8gb3V0X2Vycm9yOwotCi0JaWYgKHNiLT5zX3Jvb3QpCi0JCWdvdG8gYWxyZWFkeV9tb3VudGVkOwotCi0JLyogZnJlc2ggbmV3IHN1cGVyYmxvY2sgKi8KLQlwcl9kZWJ1ZygiTVREU0I6IE5ldyBzdXBlcmJsb2NrIGZvciBkZXZpY2UgJWQgKFwiJXNcIilcbiIsCi0JICAgICAgbXRkLT5pbmRleCwgbXRkLT5uYW1lKTsKLQotCXJldCA9IGZpbGxfc3VwZXIoc2IsIGRhdGEsIGZsYWdzICYgU0JfU0lMRU5UID8gMSA6IDApOwotCWlmIChyZXQgPCAwKSB7Ci0JCWRlYWN0aXZhdGVfbG9ja2VkX3N1cGVyKHNiKTsKLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKLQl9Ci0KLQkvKiBnbyAqLwotCXNiLT5zX2ZsYWdzIHw9IFNCX0FDVElWRTsKLQlyZXR1cm4gZGdldChzYi0+c19yb290KTsKLQotCS8qIG5ldyBtb3VudHBvaW50IGZvciBhbiBhbHJlYWR5IG1vdW50ZWQgc3VwZXJibG9jayAqLwotYWxyZWFkeV9tb3VudGVkOgotCXByX2RlYnVnKCJNVERTQjogRGV2aWNlICVkIChcIiVzXCIpIGlzIGFscmVhZHkgbW91bnRlZFxuIiwKLQkgICAgICBtdGQtPmluZGV4LCBtdGQtPm5hbWUpOwotCXB1dF9tdGRfZGV2aWNlKG10ZCk7Ci0JcmV0dXJuIGRnZXQoc2ItPnNfcm9vdCk7Ci0KLW91dF9lcnJvcjoKLQlwdXRfbXRkX2RldmljZShtdGQpOwotCXJldHVybiBFUlJfQ0FTVChzYik7Ci19Ci0KLS8qCi0gKiBnZXQgYSBzdXBlcmJsb2NrIG9uIGFuIE1URC1iYWNrZWQgZmlsZXN5c3RlbSBieSBNVEQgZGV2aWNlIG51bWJlcgotICovCi1zdGF0aWMgc3RydWN0IGRlbnRyeSAqbW91bnRfbXRkX25yKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLCBpbnQgZmxhZ3MsCi0JCQkgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEsIGludCBtdGRuciwKLQkJCSBpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqLCBpbnQpKQotewotCXN0cnVjdCBtdGRfaW5mbyAqbXRkOwotCi0JbXRkID0gZ2V0X210ZF9kZXZpY2UoTlVMTCwgbXRkbnIpOwotCWlmIChJU19FUlIobXRkKSkgewotCQlwcl9kZWJ1ZygiTVREU0I6IERldmljZSAjJXUgZG9lc24ndCBhcHBlYXIgdG8gZXhpc3RcbiIsIG10ZG5yKTsKLQkJcmV0dXJuIEVSUl9DQVNUKG10ZCk7Ci0JfQotCi0JcmV0dXJuIG1vdW50X210ZF9hdXgoZnNfdHlwZSwgZmxhZ3MsIGRldl9uYW1lLCBkYXRhLCBtdGQsIGZpbGxfc3VwZXIpOwotfQotCi0vKgotICogc2V0IHVwIGFuIE1URC1iYXNlZCBzdXBlcmJsb2NrCi0gKi8KLXN0cnVjdCBkZW50cnkgKm1vdW50X210ZChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwgaW50IGZsYWdzLAotCSAgICAgICBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAqZGF0YSwKLQkgICAgICAgaW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICosIHZvaWQgKiwgaW50KSkKLXsKLSNpZmRlZiBDT05GSUdfQkxPQ0sKLQlzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2OwotCWludCByZXQsIG1ham9yOwotI2VuZGlmCi0JaW50IG10ZG5yOwotCi0JaWYgKCFkZXZfbmFtZSkKLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci0KLQlwcl9kZWJ1ZygiTVREU0I6IGRldl9uYW1lIFwiJXNcIlxuIiwgZGV2X25hbWUpOwotCi0JLyogdGhlIHByZWZlcnJlZCB3YXkgb2YgbW91bnRpbmcgaW4gZnV0dXJlOyBlc3BlY2lhbGx5IHdoZW4KLQkgKiBDT05GSUdfQkxPQ0s9biAtIHdlIHNwZWNpZnkgdGhlIHVuZGVybHlpbmcgTVREIGRldmljZSBieSBudW1iZXIgb3IKLQkgKiBieSBuYW1lLCBzbyB0aGF0IHdlIGRvbid0IHJlcXVpcmUgYmxvY2sgZGV2aWNlIHN1cHBvcnQgdG8gYmUgcHJlc2VudAotCSAqIGluIHRoZSBrZXJuZWwuICovCi0JaWYgKGRldl9uYW1lWzBdID09ICdtJyAmJiBkZXZfbmFtZVsxXSA9PSAndCcgJiYgZGV2X25hbWVbMl0gPT0gJ2QnKSB7Ci0JCWlmIChkZXZfbmFtZVszXSA9PSAnOicpIHsKLQkJCXN0cnVjdCBtdGRfaW5mbyAqbXRkOwotCi0JCQkvKiBtb3VudCBieSBNVEQgZGV2aWNlIG5hbWUgKi8KLQkJCXByX2RlYnVnKCJNVERTQjogbXRkOiUlcywgbmFtZSBcIiVzXCJcbiIsCi0JCQkgICAgICBkZXZfbmFtZSArIDQpOwotCi0JCQltdGQgPSBnZXRfbXRkX2RldmljZV9ubShkZXZfbmFtZSArIDQpOwotCQkJaWYgKCFJU19FUlIobXRkKSkKLQkJCQlyZXR1cm4gbW91bnRfbXRkX2F1eCgKLQkJCQkJZnNfdHlwZSwgZmxhZ3MsCi0JCQkJCWRldl9uYW1lLCBkYXRhLCBtdGQsCi0JCQkJCWZpbGxfc3VwZXIpOwotCi0JCQlwcmludGsoS0VSTl9OT1RJQ0UgIk1URDoiCi0JCQkgICAgICAgIiBNVEQgZGV2aWNlIHdpdGggbmFtZSBcIiVzXCIgbm90IGZvdW5kLlxuIiwKLQkJCSAgICAgICBkZXZfbmFtZSArIDQpOwotCi0JCX0gZWxzZSBpZiAoaXNkaWdpdChkZXZfbmFtZVszXSkpIHsKLQkJCS8qIG1vdW50IGJ5IE1URCBkZXZpY2UgbnVtYmVyIG5hbWUgKi8KLQkJCWNoYXIgKmVuZHB0cjsKLQotCQkJbXRkbnIgPSBzaW1wbGVfc3RydG91bChkZXZfbmFtZSArIDMsICZlbmRwdHIsIDApOwotCQkJaWYgKCEqZW5kcHRyKSB7Ci0JCQkJLyogSXQgd2FzIGEgdmFsaWQgbnVtYmVyICovCi0JCQkJcHJfZGVidWcoIk1URFNCOiBtdGQlJWQsIG10ZG5yICVkXG4iLAotCQkJCSAgICAgIG10ZG5yKTsKLQkJCQlyZXR1cm4gbW91bnRfbXRkX25yKGZzX3R5cGUsIGZsYWdzLAotCQkJCQkJICAgICBkZXZfbmFtZSwgZGF0YSwKLQkJCQkJCSAgICAgbXRkbnIsIGZpbGxfc3VwZXIpOwotCQkJfQotCQl9Ci0JfQotCi0jaWZkZWYgQ09ORklHX0JMT0NLCi0JLyogdHJ5IHRoZSBvbGQgd2F5IC0gdGhlIGhhY2sgd2hlcmUgd2UgYWxsb3dlZCB1c2VycyB0byBtb3VudAotCSAqIC9kZXYvbXRkYmxvY2skKG4pIGJ1dCBkaWRuJ3QgYWN0dWFsbHkgX3VzZV8gdGhlIGJsb2NrZGV2Ci0JICovCi0JYmRldiA9IGxvb2t1cF9iZGV2KGRldl9uYW1lKTsKLQlpZiAoSVNfRVJSKGJkZXYpKSB7Ci0JCXJldCA9IFBUUl9FUlIoYmRldik7Ci0JCXByX2RlYnVnKCJNVERTQjogbG9va3VwX2JkZXYoKSByZXR1cm5lZCAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKLQl9Ci0JcHJfZGVidWcoIk1URFNCOiBsb29rdXBfYmRldigpIHJldHVybmVkIDBcbiIpOwotCi0JcmV0ID0gLUVJTlZBTDsKLQotCW1ham9yID0gTUFKT1IoYmRldi0+YmRfZGV2KTsKLQltdGRuciA9IE1JTk9SKGJkZXYtPmJkX2Rldik7Ci0JYmRwdXQoYmRldik7Ci0KLQlpZiAobWFqb3IgIT0gTVREX0JMT0NLX01BSk9SKQotCQlnb3RvIG5vdF9hbl9NVERfZGV2aWNlOwotCi0JcmV0dXJuIG1vdW50X210ZF9ucihmc190eXBlLCBmbGFncywgZGV2X25hbWUsIGRhdGEsIG10ZG5yLCBmaWxsX3N1cGVyKTsKLQotbm90X2FuX01URF9kZXZpY2U6Ci0jZW5kaWYgLyogQ09ORklHX0JMT0NLICovCi0KLQlpZiAoIShmbGFncyAmIFNCX1NJTEVOVCkpCi0JCXByaW50ayhLRVJOX05PVElDRQotCQkgICAgICAgIk1URDogQXR0ZW1wdCB0byBtb3VudCBub24tTVREIGRldmljZSBcIiVzXCJcbiIsCi0JCSAgICAgICBkZXZfbmFtZSk7Ci0JcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci19Ci0KLUVYUE9SVF9TWU1CT0xfR1BMKG1vdW50X210ZCk7Ci0KLS8qCiAgKiBkZXN0cm95IGFuIE1URC1iYXNlZCBzdXBlcmJsb2NrCiAgKi8KIHZvaWQga2lsbF9tdGRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvb25lbmFuZC9vbmVuYW5kX2Jhc2UuYyBiL2RyaXZlcnMvbXRkL25hbmQvb25lbmFuZC9vbmVuYW5kX2Jhc2UuYwppbmRleCBlMDgyZDYzLi43N2JkMzJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL29uZW5hbmQvb25lbmFuZF9iYXNlLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9vbmVuYW5kL29uZW5hbmRfYmFzZS5jCkBAIC0zODgwLDYgKzM4ODAsOSBAQCBpbnQgb25lbmFuZF9zY2FuKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgbWF4Y2hpcHMpCiAJCWlmICghdGhpcy0+b29iX2J1ZikgewogCQkJaWYgKHRoaXMtPm9wdGlvbnMgJiBPTkVOQU5EX1BBR0VCVUZfQUxMT0MpIHsKIAkJCQl0aGlzLT5vcHRpb25zICY9IH5PTkVOQU5EX1BBR0VCVUZfQUxMT0M7CisjaWZkZWYgQ09ORklHX01URF9PTkVOQU5EX1ZFUklGWV9XUklURQorCQkJCWtmcmVlKHRoaXMtPnZlcmlmeV9idWYpOworI2VuZGlmCiAJCQkJa2ZyZWUodGhpcy0+cGFnZV9idWYpOwogCQkJfQogCQkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9LY29uZmlnIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvS2NvbmZpZwppbmRleCA1YTcxMWQ4Li5lNTlkZTNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9LY29uZmlnCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L0tjb25maWcKQEAgLTM1MSwxNCArMzUxLDYgQEAKIAloZWxwCiAJICBFbmFibGVzIHN1cHBvcnQgZm9yIE5BTkQgRmxhc2ggY2hpcHMgd2lyZWQgb250byBTb2NyYXRlcyBib2FyZC4KIAotY29uZmlnIE1URF9OQU5EX05VQzkwMAotCXRyaXN0YXRlICJOdXZvdG9uIE5VQzl4eC93OTBwOTEwIE5BTkQgY29udHJvbGxlciIKLQlkZXBlbmRzIG9uIEFSQ0hfVzkwWDkwMCB8fCBDT01QSUxFX1RFU1QKLQlkZXBlbmRzIG9uIEhBU19JT01FTQotCWhlbHAKLQkgIFRoaXMgZW5hYmxlcyB0aGUgZHJpdmVyIGZvciB0aGUgTkFORCBGbGFzaCBvbiBldmFsdWF0aW9uIGJvYXJkIGJhc2VkCi0JICBvbiB3OTBwOTEwIC8gTlVDOXh4LgotCiBzb3VyY2UgImRyaXZlcnMvbXRkL25hbmQvcmF3L2luZ2VuaWMvS2NvbmZpZyIKIAogY29uZmlnIE1URF9OQU5EX0ZTTUMKQEAgLTQwNyw2ICszOTksMTIgQEAKIAkgIEVuYWJsZXMgc3VwcG9ydCBmb3IgTkFORCBjb250cm9sbGVyIG9uIE1USyBTb0NzLgogCSAgVGhpcyBjb250cm9sbGVyIGlzIGZvdW5kIG9uIG10Mjd4eCwgbXQ4MXh4LCBtdDY1eHggU29Dcy4KIAorY29uZmlnIE1URF9OQU5EX01YSUMKKwl0cmlzdGF0ZSAiTWFjcm9uaXggcmF3IE5BTkQgY29udHJvbGxlciIKKwlkZXBlbmRzIG9uIEhBU19JT01FTSB8fCBDT01QSUxFX1RFU1QKKwloZWxwCisJICBUaGlzIHNlbGVjdHMgdGhlIE1hY3Jvbml4IHJhdyBOQU5EIGNvbnRyb2xsZXIgZHJpdmVyLgorCiBjb25maWcgTVREX05BTkRfVEVHUkEKIAl0cmlzdGF0ZSAiTlZJRElBIFRlZ3JhIE5BTkQgY29udHJvbGxlciIKIAlkZXBlbmRzIG9uIEFSQ0hfVEVHUkEgfHwgQ09NUElMRV9URVNUCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9NYWtlZmlsZSBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L01ha2VmaWxlCmluZGV4IGVmYWY1Y2QuLmE5ODcyMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L01ha2VmaWxlCkBAIC00MSw3ICs0MSw2IEBACiBvYmotJChDT05GSUdfTVREX05BTkRfTVhDKQkJKz0gbXhjX25hbmQubwogb2JqLSQoQ09ORklHX01URF9OQU5EX1NPQ1JBVEVTKQkJKz0gc29jcmF0ZXNfbmFuZC5vCiBvYmotJChDT05GSUdfTVREX05BTkRfVFhYOU5ERk1DKQkrPSB0eHg5bmRmbWMubwotb2JqLSQoQ09ORklHX01URF9OQU5EX05VQzkwMCkJCSs9IG51YzkwMF9uYW5kLm8KIG9iai0kKENPTkZJR19NVERfTkFORF9NUEM1MTIxX05GQykJKz0gbXBjNTEyMV9uZmMubwogb2JqLSQoQ09ORklHX01URF9OQU5EX1ZGNjEwX05GQykJKz0gdmY2MTBfbmZjLm8KIG9iai0kKENPTkZJR19NVERfTkFORF9SSUNPSCkJCSs9IHI4NTIubwpAQCAtNTQsNiArNTMsNyBAQAogb2JqLSQoQ09ORklHX01URF9OQU5EX0JSQ01OQU5EKQkJKz0gYnJjbW5hbmQvCiBvYmotJChDT05GSUdfTVREX05BTkRfUUNPTSkJCSs9IHFjb21fbmFuZGMubwogb2JqLSQoQ09ORklHX01URF9OQU5EX01USykJCSs9IG10a19lY2MubyBtdGtfbmFuZC5vCitvYmotJChDT05GSUdfTVREX05BTkRfTVhJQykJCSs9IG14aWNfbmFuZC5vCiBvYmotJChDT05GSUdfTVREX05BTkRfVEVHUkEpCQkrPSB0ZWdyYV9uYW5kLm8KIG9iai0kKENPTkZJR19NVERfTkFORF9TVE0zMl9GTUMyKQkrPSBzdG0zMl9mbWMyX25hbmQubwogb2JqLSQoQ09ORklHX01URF9OQU5EX01FU09OKQkJKz0gbWVzb25fbmFuZC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9icmNtbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYwppbmRleCAzMzMxMGI4Li4xNWVmMzBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9icmNtbmFuZC5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMKQEAgLTE3OTIsNiArMTc5Miw3IEBAIHN0YXRpYyBpbnQgYnJjbXN0Yl9uYW5kX3ZlcmlmeV9lcmFzZWRfcGFnZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwKIAlpbnQgYml0ZmxpcHMgPSAwOwogCWludCBwYWdlID0gYWRkciA+PiBjaGlwLT5wYWdlX3NoaWZ0OwogCWludCByZXQ7CisJdm9pZCAqZWNjX2NodW5rOwogCiAJaWYgKCFidWYpCiAJCWJ1ZiA9IG5hbmRfZ2V0X2RhdGFfYnVmKGNoaXApOwpAQCAtMTgwNCw3ICsxODA1LDkgQEAgc3RhdGljIGludCBicmNtc3RiX25hbmRfdmVyaWZ5X2VyYXNlZF9wYWdlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLAogCQlyZXR1cm4gcmV0OwogCiAJZm9yIChpID0gMDsgaSA8IGNoaXAtPmVjYy5zdGVwczsgaSsrLCBvb2IgKz0gc2FzKSB7Ci0JCXJldCA9IG5hbmRfY2hlY2tfZXJhc2VkX2VjY19jaHVuayhidWYsIGNoaXAtPmVjYy5zaXplLAorCQllY2NfY2h1bmsgPSBidWYgKyBjaGlwLT5lY2Muc2l6ZSAqIGk7CisJCXJldCA9IG5hbmRfY2hlY2tfZXJhc2VkX2VjY19jaHVuayhlY2NfY2h1bmssCisJCQkJCQkgIGNoaXAtPmVjYy5zaXplLAogCQkJCQkJICBvb2IsIHNhcywgTlVMTCwgMCwKIAkJCQkJCSAgY2hpcC0+ZWNjLnN0cmVuZ3RoKTsKIAkJaWYgKHJldCA8IDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9pbmdlbmljL0tjb25maWcgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9pbmdlbmljL0tjb25maWcKaW5kZXggNjZiN2NmZi4uZTMwZmViNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW5nZW5pYy9LY29uZmlnCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2luZ2VuaWMvS2NvbmZpZwpAQCAtMSwxMSArMSw0IEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLWNvbmZpZyBNVERfTkFORF9KWjQ3NDAKLQl0cmlzdGF0ZSAiSlo0NzQwIE5BTkQgY29udHJvbGxlciIKLQlkZXBlbmRzIG9uIE1BQ0hfSlo0NzQwIHx8IENPTVBJTEVfVEVTVAotCWRlcGVuZHMgb24gSEFTX0lPTUVNCi0JaGVscAotCSAgRW5hYmxlcyBzdXBwb3J0IGZvciBOQU5EIEZsYXNoIG9uIEpaNDc0MCBTb0MgYmFzZWQgYm9hcmRzLgotCiBjb25maWcgTVREX05BTkRfSlo0NzgwCiAJdHJpc3RhdGUgIkpaNDc4MCBOQU5EIGNvbnRyb2xsZXIiCiAJZGVwZW5kcyBvbiBKWjQ3ODBfTkVNQwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW5nZW5pYy9NYWtlZmlsZSBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2luZ2VuaWMvTWFrZWZpbGUKaW5kZXggYjYzZDM2OC4uNGM1M2Y1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW5nZW5pYy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9pbmdlbmljL01ha2VmaWxlCkBAIC0xLDUgKzEsNCBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci1vYmotJChDT05GSUdfTVREX05BTkRfSlo0NzQwKSArPSBqejQ3NDBfbmFuZC5vCiBvYmotJChDT05GSUdfTVREX05BTkRfSlo0NzgwKSArPSBpbmdlbmljX25hbmQubwogCiBpbmdlbmljX25hbmQteSArPSBpbmdlbmljX25hbmRfZHJ2Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2luZ2VuaWMvaW5nZW5pY19uYW5kX2Rydi5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW5nZW5pYy9pbmdlbmljX25hbmRfZHJ2LmMKaW5kZXggZDdiN2MwZi4uNDlhZmViZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW5nZW5pYy9pbmdlbmljX25hbmRfZHJ2LmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW5nZW5pYy9pbmdlbmljX25hbmRfZHJ2LmMKQEAgLTMxMCw3ICszMTAsNiBAQCBzdGF0aWMgaW50IGluZ2VuaWNfbmFuZF9pbml0X2NoaXAoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwogCXN0cnVjdCBpbmdlbmljX25hbmQgKm5hbmQ7CiAJc3RydWN0IGluZ2VuaWNfbmFuZF9jcyAqY3M7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7CiAJc3RydWN0IG5hbmRfY2hpcCAqY2hpcDsKIAlzdHJ1Y3QgbXRkX2luZm8gKm10ZDsKIAljb25zdCBfX2JlMzIgKnJlZzsKQEAgLTMyNiw4ICszMjUsNyBAQCBzdGF0aWMgaW50IGluZ2VuaWNfbmFuZF9pbml0X2NoaXAoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAogCWp6NDc4MF9uZW1jX3NldF90eXBlKG5mYy0+ZGV2LCBjcy0+YmFuaywgSlo0NzgwX05FTUNfQkFOS19OQU5EKTsKIAotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgY2hpcG5yKTsKLQljcy0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7CisJY3MtPmJhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgY2hpcG5yKTsKIAlpZiAoSVNfRVJSKGNzLT5iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIoY3MtPmJhc2UpOwogCkBAIC00MTgsNiArNDE2LDcgQEAgc3RhdGljIGludCBpbmdlbmljX25hbmRfaW5pdF9jaGlwcyhzdHJ1Y3QgaW5nZW5pY19uZmMgKm5mYywKIAkJcmV0ID0gaW5nZW5pY19uYW5kX2luaXRfY2hpcChwZGV2LCBuZmMsIG5wLCBpKTsKIAkJaWYgKHJldCkgewogCQkJaW5nZW5pY19uYW5kX2NsZWFudXBfY2hpcHMobmZjKTsKKwkJCW9mX25vZGVfcHV0KG5wKTsKIAkJCXJldHVybiByZXQ7CiAJCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW5nZW5pYy9qejQ3NDBfbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW5nZW5pYy9qejQ3NDBfbmFuZC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2RmNjc0Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2luZ2VuaWMvano0NzQwX25hbmQuYworKysgL2Rldi9udWxsCkBAIC0xLDUzNiArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Ci0gKiAgSlo0NzQwIFNvQyBOQU5EIGNvbnRyb2xsZXIgZHJpdmVyCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotCi0jaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgotI2luY2x1ZGUgPGxpbnV4L210ZC9yYXduYW5kLmg+Ci0jaW5jbHVkZSA8bGludXgvbXRkL3BhcnRpdGlvbnMuaD4KLQotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLQotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvano0NzQwL2p6NDc0MF9uYW5kLmg+Ci0KLSNkZWZpbmUgSlpfUkVHX05BTkRfQ1RSTAkweDUwCi0jZGVmaW5lIEpaX1JFR19OQU5EX0VDQ19DVFJMCTB4MTAwCi0jZGVmaW5lIEpaX1JFR19OQU5EX0RBVEEJMHgxMDQKLSNkZWZpbmUgSlpfUkVHX05BTkRfUEFSMAkweDEwOAotI2RlZmluZSBKWl9SRUdfTkFORF9QQVIxCTB4MTBDCi0jZGVmaW5lIEpaX1JFR19OQU5EX1BBUjIJMHgxMTAKLSNkZWZpbmUgSlpfUkVHX05BTkRfSVJRX1NUQVQJMHgxMTQKLSNkZWZpbmUgSlpfUkVHX05BTkRfSVJRX0NUUkwJMHgxMTgKLSNkZWZpbmUgSlpfUkVHX05BTkRfRVJSKHgpCSgweDExQyArICgoeCkgPDwgMikpCi0KLSNkZWZpbmUgSlpfTkFORF9FQ0NfQ1RSTF9QQVJfUkVBRFkJQklUKDQpCi0jZGVmaW5lIEpaX05BTkRfRUNDX0NUUkxfRU5DT0RJTkcJQklUKDMpCi0jZGVmaW5lIEpaX05BTkRfRUNDX0NUUkxfUlMJCUJJVCgyKQotI2RlZmluZSBKWl9OQU5EX0VDQ19DVFJMX1JFU0VUCQlCSVQoMSkKLSNkZWZpbmUgSlpfTkFORF9FQ0NfQ1RSTF9FTkFCTEUJCUJJVCgwKQotCi0jZGVmaW5lIEpaX05BTkRfU1RBVFVTX0VSUl9DT1VOVAkoQklUKDMxKSB8IEJJVCgzMCkgfCBCSVQoMjkpKQotI2RlZmluZSBKWl9OQU5EX1NUQVRVU19QQURfRklOSVNICUJJVCg0KQotI2RlZmluZSBKWl9OQU5EX1NUQVRVU19ERUNfRklOSVNICUJJVCgzKQotI2RlZmluZSBKWl9OQU5EX1NUQVRVU19FTkNfRklOSVNICUJJVCgyKQotI2RlZmluZSBKWl9OQU5EX1NUQVRVU19VTkNPUl9FUlJPUglCSVQoMSkKLSNkZWZpbmUgSlpfTkFORF9TVEFUVVNfRVJST1IJCUJJVCgwKQotCi0jZGVmaW5lIEpaX05BTkRfQ1RSTF9FTkFCTEVfQ0hJUCh4KSBCSVQoKHgpIDw8IDEpCi0jZGVmaW5lIEpaX05BTkRfQ1RSTF9BU1NFUlRfQ0hJUCh4KSBCSVQoKCh4KSA8PCAxKSArIDEpCi0jZGVmaW5lIEpaX05BTkRfQ1RSTF9BU1NFUlRfQ0hJUF9NQVNLIDB4YWEKLQotI2RlZmluZSBKWl9OQU5EX01FTV9DTURfT0ZGU0VUIDB4MDgwMDAKLSNkZWZpbmUgSlpfTkFORF9NRU1fQUREUl9PRkZTRVQgMHgxMDAwMAotCi1zdHJ1Y3QganpfbmFuZCB7Ci0Jc3RydWN0IG5hbmRfY2hpcCBjaGlwOwotCXZvaWQgX19pb21lbSAqYmFzZTsKLQlzdHJ1Y3QgcmVzb3VyY2UgKm1lbTsKLQotCXVuc2lnbmVkIGNoYXIgYmFua3NbSlpfTkFORF9OVU1fQkFOS1NdOwotCXZvaWQgX19pb21lbSAqYmFua19iYXNlW0paX05BTkRfTlVNX0JBTktTXTsKLQlzdHJ1Y3QgcmVzb3VyY2UgKmJhbmtfbWVtW0paX05BTkRfTlVNX0JBTktTXTsKLQotCWludCBzZWxlY3RlZF9iYW5rOwotCi0Jc3RydWN0IGdwaW9fZGVzYyAqYnVzeV9ncGlvOwotCWJvb2wgaXNfcmVhZGluZzsKLX07Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGp6X25hbmQgKm10ZF90b19qel9uYW5kKHN0cnVjdCBtdGRfaW5mbyAqbXRkKQotewotCXJldHVybiBjb250YWluZXJfb2YobXRkX3RvX25hbmQobXRkKSwgc3RydWN0IGp6X25hbmQsIGNoaXApOwotfQotCi1zdGF0aWMgdm9pZCBqel9uYW5kX3NlbGVjdF9jaGlwKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsIGludCBjaGlwbnIpCi17Ci0Jc3RydWN0IGp6X25hbmQgKm5hbmQgPSBtdGRfdG9fanpfbmFuZChuYW5kX3RvX210ZChjaGlwKSk7Ci0JdWludDMyX3QgY3RybDsKLQlpbnQgYmFua25yOwotCi0JY3RybCA9IHJlYWRsKG5hbmQtPmJhc2UgKyBKWl9SRUdfTkFORF9DVFJMKTsKLQljdHJsICY9IH5KWl9OQU5EX0NUUkxfQVNTRVJUX0NISVBfTUFTSzsKLQotCWlmIChjaGlwbnIgPT0gLTEpIHsKLQkJYmFua25yID0gLTE7Ci0JfSBlbHNlIHsKLQkJYmFua25yID0gbmFuZC0+YmFua3NbY2hpcG5yXSAtIDE7Ci0JCWNoaXAtPmxlZ2FjeS5JT19BRERSX1IgPSBuYW5kLT5iYW5rX2Jhc2VbYmFua25yXTsKLQkJY2hpcC0+bGVnYWN5LklPX0FERFJfVyA9IG5hbmQtPmJhbmtfYmFzZVtiYW5rbnJdOwotCX0KLQl3cml0ZWwoY3RybCwgbmFuZC0+YmFzZSArIEpaX1JFR19OQU5EX0NUUkwpOwotCi0JbmFuZC0+c2VsZWN0ZWRfYmFuayA9IGJhbmtucjsKLX0KLQotc3RhdGljIHZvaWQganpfbmFuZF9jbWRfY3RybChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCBpbnQgZGF0LAotCQkJICAgICB1bnNpZ25lZCBpbnQgY3RybCkKLXsKLQlzdHJ1Y3QganpfbmFuZCAqbmFuZCA9IG10ZF90b19qel9uYW5kKG5hbmRfdG9fbXRkKGNoaXApKTsKLQl1aW50MzJfdCByZWc7Ci0Jdm9pZCBfX2lvbWVtICpiYW5rX2Jhc2UgPSBuYW5kLT5iYW5rX2Jhc2VbbmFuZC0+c2VsZWN0ZWRfYmFua107Ci0KLQlCVUdfT04obmFuZC0+c2VsZWN0ZWRfYmFuayA8IDApOwotCi0JaWYgKGN0cmwgJiBOQU5EX0NUUkxfQ0hBTkdFKSB7Ci0JCUJVR19PTigoY3RybCAmIE5BTkRfQUxFKSAmJiAoY3RybCAmIE5BTkRfQ0xFKSk7Ci0JCWlmIChjdHJsICYgTkFORF9BTEUpCi0JCQliYW5rX2Jhc2UgKz0gSlpfTkFORF9NRU1fQUREUl9PRkZTRVQ7Ci0JCWVsc2UgaWYgKGN0cmwgJiBOQU5EX0NMRSkKLQkJCWJhbmtfYmFzZSArPSBKWl9OQU5EX01FTV9DTURfT0ZGU0VUOwotCQljaGlwLT5sZWdhY3kuSU9fQUREUl9XID0gYmFua19iYXNlOwotCi0JCXJlZyA9IHJlYWRsKG5hbmQtPmJhc2UgKyBKWl9SRUdfTkFORF9DVFJMKTsKLQkJaWYgKGN0cmwgJiBOQU5EX05DRSkKLQkJCXJlZyB8PSBKWl9OQU5EX0NUUkxfQVNTRVJUX0NISVAobmFuZC0+c2VsZWN0ZWRfYmFuayk7Ci0JCWVsc2UKLQkJCXJlZyAmPSB+SlpfTkFORF9DVFJMX0FTU0VSVF9DSElQKG5hbmQtPnNlbGVjdGVkX2JhbmspOwotCQl3cml0ZWwocmVnLCBuYW5kLT5iYXNlICsgSlpfUkVHX05BTkRfQ1RSTCk7Ci0JfQotCWlmIChkYXQgIT0gTkFORF9DTURfTk9ORSkKLQkJd3JpdGViKGRhdCwgY2hpcC0+bGVnYWN5LklPX0FERFJfVyk7Ci19Ci0KLXN0YXRpYyBpbnQganpfbmFuZF9kZXZfcmVhZHkoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKLXsKLQlzdHJ1Y3QganpfbmFuZCAqbmFuZCA9IG10ZF90b19qel9uYW5kKG5hbmRfdG9fbXRkKGNoaXApKTsKLQlyZXR1cm4gZ3Bpb2RfZ2V0X3ZhbHVlX2NhbnNsZWVwKG5hbmQtPmJ1c3lfZ3Bpbyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGp6X25hbmRfaHdjdGwoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgaW50IG1vZGUpCi17Ci0Jc3RydWN0IGp6X25hbmQgKm5hbmQgPSBtdGRfdG9fanpfbmFuZChuYW5kX3RvX210ZChjaGlwKSk7Ci0JdWludDMyX3QgcmVnOwotCi0Jd3JpdGVsKDAsIG5hbmQtPmJhc2UgKyBKWl9SRUdfTkFORF9JUlFfU1RBVCk7Ci0JcmVnID0gcmVhZGwobmFuZC0+YmFzZSArIEpaX1JFR19OQU5EX0VDQ19DVFJMKTsKLQotCXJlZyB8PSBKWl9OQU5EX0VDQ19DVFJMX1JFU0VUOwotCXJlZyB8PSBKWl9OQU5EX0VDQ19DVFJMX0VOQUJMRTsKLQlyZWcgfD0gSlpfTkFORF9FQ0NfQ1RSTF9SUzsKLQotCXN3aXRjaCAobW9kZSkgewotCWNhc2UgTkFORF9FQ0NfUkVBRDoKLQkJcmVnICY9IH5KWl9OQU5EX0VDQ19DVFJMX0VOQ09ESU5HOwotCQluYW5kLT5pc19yZWFkaW5nID0gdHJ1ZTsKLQkJYnJlYWs7Ci0JY2FzZSBOQU5EX0VDQ19XUklURToKLQkJcmVnIHw9IEpaX05BTkRfRUNDX0NUUkxfRU5DT0RJTkc7Ci0JCW5hbmQtPmlzX3JlYWRpbmcgPSBmYWxzZTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfQotCi0Jd3JpdGVsKHJlZywgbmFuZC0+YmFzZSArIEpaX1JFR19OQU5EX0VDQ19DVFJMKTsKLX0KLQotc3RhdGljIGludCBqel9uYW5kX2NhbGN1bGF0ZV9lY2NfcnMoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgY29uc3QgdWludDhfdCAqZGF0LAotCQkJCSAgICB1aW50OF90ICplY2NfY29kZSkKLXsKLQlzdHJ1Y3QganpfbmFuZCAqbmFuZCA9IG10ZF90b19qel9uYW5kKG5hbmRfdG9fbXRkKGNoaXApKTsKLQl1aW50MzJfdCByZWcsIHN0YXR1czsKLQlpbnQgaTsKLQl1bnNpZ25lZCBpbnQgdGltZW91dCA9IDEwMDA7Ci0Jc3RhdGljIHVpbnQ4X3QgZW1wdHlfYmxvY2tfZWNjW10gPSB7MHhjZCwgMHg5ZCwgMHg5MCwgMHg1OCwgMHhmNCwKLQkJCQkJCTB4OGIsIDB4ZmYsIDB4YjcsIDB4NmZ9OwotCi0JaWYgKG5hbmQtPmlzX3JlYWRpbmcpCi0JCXJldHVybiAwOwotCi0JZG8gewotCQlzdGF0dXMgPSByZWFkbChuYW5kLT5iYXNlICsgSlpfUkVHX05BTkRfSVJRX1NUQVQpOwotCX0gd2hpbGUgKCEoc3RhdHVzICYgSlpfTkFORF9TVEFUVVNfRU5DX0ZJTklTSCkgJiYgLS10aW1lb3V0KTsKLQotCWlmICh0aW1lb3V0ID09IDApCi0JICAgIHJldHVybiAtMTsKLQotCXJlZyA9IHJlYWRsKG5hbmQtPmJhc2UgKyBKWl9SRUdfTkFORF9FQ0NfQ1RSTCk7Ci0JcmVnICY9IH5KWl9OQU5EX0VDQ19DVFJMX0VOQUJMRTsKLQl3cml0ZWwocmVnLCBuYW5kLT5iYXNlICsgSlpfUkVHX05BTkRfRUNDX0NUUkwpOwotCi0JZm9yIChpID0gMDsgaSA8IDk7ICsraSkKLQkJZWNjX2NvZGVbaV0gPSByZWFkYihuYW5kLT5iYXNlICsgSlpfUkVHX05BTkRfUEFSMCArIGkpOwotCi0JLyogSWYgdGhlIHdyaXR0ZW4gZGF0YSBpcyBjb21wbGV0bHkgMHhmZiwgd2UgYWxzbyB3YW50IHRvIHdyaXRlIDB4ZmYgYXMKLQkgKiBlY2MsIG90aGVyd2lzZSB3ZSB3aWxsIGdldCBpbiB0cm91YmxlIHdoZW4gZG9pbmcgc3VicGFnZSB3cml0ZXMuICovCi0JaWYgKG1lbWNtcChlY2NfY29kZSwgZW1wdHlfYmxvY2tfZWNjLCA5KSA9PSAwKQotCQltZW1zZXQoZWNjX2NvZGUsIDB4ZmYsIDkpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGp6X25hbmRfY29ycmVjdF9kYXRhKHVpbnQ4X3QgKmRhdCwgaW50IGluZGV4LCBpbnQgbWFzaykKLXsKLQlpbnQgb2Zmc2V0ID0gaW5kZXggJiAweDc7Ci0JdWludDE2X3QgZGF0YTsKLQotCWluZGV4ICs9IChpbmRleCA+PiAzKTsKLQotCWRhdGEgPSBkYXRbaW5kZXhdOwotCWRhdGEgfD0gZGF0W2luZGV4KzFdIDw8IDg7Ci0KLQltYXNrIF49IChkYXRhID4+IG9mZnNldCkgJiAweDFmZjsKLQlkYXRhICY9IH4oMHgxZmYgPDwgb2Zmc2V0KTsKLQlkYXRhIHw9IChtYXNrIDw8IG9mZnNldCk7Ci0KLQlkYXRbaW5kZXhdID0gZGF0YSAmIDB4ZmY7Ci0JZGF0W2luZGV4KzFdID0gKGRhdGEgPj4gOCkgJiAweGZmOwotfQotCi1zdGF0aWMgaW50IGp6X25hbmRfY29ycmVjdF9lY2NfcnMoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgdWludDhfdCAqZGF0LAotCQkJCSAgdWludDhfdCAqcmVhZF9lY2MsIHVpbnQ4X3QgKmNhbGNfZWNjKQotewotCXN0cnVjdCBqel9uYW5kICpuYW5kID0gbXRkX3RvX2p6X25hbmQobmFuZF90b19tdGQoY2hpcCkpOwotCWludCBpLCBlcnJvcl9jb3VudCwgaW5kZXg7Ci0JdWludDMyX3QgcmVnLCBzdGF0dXMsIGVycm9yOwotCXVuc2lnbmVkIGludCB0aW1lb3V0ID0gMTAwMDsKLQotCWZvciAoaSA9IDA7IGkgPCA5OyArK2kpCi0JCXdyaXRlYihyZWFkX2VjY1tpXSwgbmFuZC0+YmFzZSArIEpaX1JFR19OQU5EX1BBUjAgKyBpKTsKLQotCXJlZyA9IHJlYWRsKG5hbmQtPmJhc2UgKyBKWl9SRUdfTkFORF9FQ0NfQ1RSTCk7Ci0JcmVnIHw9IEpaX05BTkRfRUNDX0NUUkxfUEFSX1JFQURZOwotCXdyaXRlbChyZWcsIG5hbmQtPmJhc2UgKyBKWl9SRUdfTkFORF9FQ0NfQ1RSTCk7Ci0KLQlkbyB7Ci0JCXN0YXR1cyA9IHJlYWRsKG5hbmQtPmJhc2UgKyBKWl9SRUdfTkFORF9JUlFfU1RBVCk7Ci0JfSB3aGlsZSAoIShzdGF0dXMgJiBKWl9OQU5EX1NUQVRVU19ERUNfRklOSVNIKSAmJiAtLXRpbWVvdXQpOwotCi0JaWYgKHRpbWVvdXQgPT0gMCkKLQkJcmV0dXJuIC1FVElNRURPVVQ7Ci0KLQlyZWcgPSByZWFkbChuYW5kLT5iYXNlICsgSlpfUkVHX05BTkRfRUNDX0NUUkwpOwotCXJlZyAmPSB+SlpfTkFORF9FQ0NfQ1RSTF9FTkFCTEU7Ci0Jd3JpdGVsKHJlZywgbmFuZC0+YmFzZSArIEpaX1JFR19OQU5EX0VDQ19DVFJMKTsKLQotCWlmIChzdGF0dXMgJiBKWl9OQU5EX1NUQVRVU19FUlJPUikgewotCQlpZiAoc3RhdHVzICYgSlpfTkFORF9TVEFUVVNfVU5DT1JfRVJST1IpCi0JCQlyZXR1cm4gLUVCQURNU0c7Ci0KLQkJZXJyb3JfY291bnQgPSAoc3RhdHVzICYgSlpfTkFORF9TVEFUVVNfRVJSX0NPVU5UKSA+PiAyOTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgZXJyb3JfY291bnQ7ICsraSkgewotCQkJZXJyb3IgPSByZWFkbChuYW5kLT5iYXNlICsgSlpfUkVHX05BTkRfRVJSKGkpKTsKLQkJCWluZGV4ID0gKChlcnJvciA+PiAxNikgJiAweDFmZikgLSAxOwotCQkJaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCA1MTIpCi0JCQkJanpfbmFuZF9jb3JyZWN0X2RhdGEoZGF0LCBpbmRleCwgZXJyb3IgJiAweDFmZik7Ci0JCX0KLQotCQlyZXR1cm4gZXJyb3JfY291bnQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQganpfbmFuZF9pb3JlbWFwX3Jlc291cmNlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0JY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHJlc291cmNlICoqcmVzLCB2b2lkIF9faW9tZW0gKipiYXNlKQotewotCWludCByZXQ7Ci0KLQkqcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShwZGV2LCBJT1JFU09VUkNFX01FTSwgbmFtZSk7Ci0JaWYgKCEqcmVzKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBnZXQgcGxhdGZvcm0gJXMgbWVtb3J5XG4iLCBuYW1lKTsKLQkJcmV0ID0gLUVOWElPOwotCQlnb3RvIGVycjsKLQl9Ci0KLQkqcmVzID0gcmVxdWVzdF9tZW1fcmVnaW9uKCgqcmVzKS0+c3RhcnQsIHJlc291cmNlX3NpemUoKnJlcyksCi0JCQkJcGRldi0+bmFtZSk7Ci0JaWYgKCEqcmVzKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byByZXF1ZXN0ICVzIG1lbW9yeSByZWdpb25cbiIsIG5hbWUpOwotCQlyZXQgPSAtRUJVU1k7Ci0JCWdvdG8gZXJyOwotCX0KLQotCSpiYXNlID0gaW9yZW1hcCgoKnJlcyktPnN0YXJ0LCByZXNvdXJjZV9zaXplKCpyZXMpKTsKLQlpZiAoISpiYXNlKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBpb3JlbWFwICVzIG1lbW9yeSByZWdpb25cbiIsIG5hbWUpOwotCQlyZXQgPSAtRUJVU1k7Ci0JCWdvdG8gZXJyX3JlbGVhc2VfbWVtOwotCX0KLQotCXJldHVybiAwOwotCi1lcnJfcmVsZWFzZV9tZW06Ci0JcmVsZWFzZV9tZW1fcmVnaW9uKCgqcmVzKS0+c3RhcnQsIHJlc291cmNlX3NpemUoKnJlcykpOwotZXJyOgotCSpyZXMgPSBOVUxMOwotCSpiYXNlID0gTlVMTDsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQganpfbmFuZF9pb3VubWFwX3Jlc291cmNlKHN0cnVjdCByZXNvdXJjZSAqcmVzLAotCQkJCQkgICAgdm9pZCBfX2lvbWVtICpiYXNlKQotewotCWlvdW5tYXAoYmFzZSk7Ci0JcmVsZWFzZV9tZW1fcmVnaW9uKHJlcy0+c3RhcnQsIHJlc291cmNlX3NpemUocmVzKSk7Ci19Ci0KLXN0YXRpYyBpbnQganpfbmFuZF9kZXRlY3RfYmFuayhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQkJICAgICAgIHN0cnVjdCBqel9uYW5kICpuYW5kLCB1bnNpZ25lZCBjaGFyIGJhbmssCi0JCQkgICAgICAgc2l6ZV90IGNoaXBuciwgdWludDhfdCAqbmFuZF9tYWZfaWQsCi0JCQkgICAgICAgdWludDhfdCAqbmFuZF9kZXZfaWQpCi17Ci0JaW50IHJldDsKLQljaGFyIHJlc19uYW1lWzZdOwotCXVpbnQzMl90IGN0cmw7Ci0Jc3RydWN0IG5hbmRfY2hpcCAqY2hpcCA9ICZuYW5kLT5jaGlwOwotCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQoY2hpcCk7Ci0Jc3RydWN0IG5hbmRfbWVtb3J5X29yZ2FuaXphdGlvbiAqbWVtb3JnOwotCXU4IGlkWzJdOwotCi0JbWVtb3JnID0gbmFuZGRldl9nZXRfbWVtb3JnKCZjaGlwLT5iYXNlKTsKLQotCS8qIFJlcXVlc3QgSS9PIHJlc291cmNlLiAqLwotCXNwcmludGYocmVzX25hbWUsICJiYW5rJWQiLCBiYW5rKTsKLQlyZXQgPSBqel9uYW5kX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgcmVzX25hbWUsCi0JCQkJCSZuYW5kLT5iYW5rX21lbVtiYW5rIC0gMV0sCi0JCQkJCSZuYW5kLT5iYW5rX2Jhc2VbYmFuayAtIDFdKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JLyogRW5hYmxlIGNoaXAgaW4gYmFuay4gKi8KLQljdHJsID0gcmVhZGwobmFuZC0+YmFzZSArIEpaX1JFR19OQU5EX0NUUkwpOwotCWN0cmwgfD0gSlpfTkFORF9DVFJMX0VOQUJMRV9DSElQKGJhbmsgLSAxKTsKLQl3cml0ZWwoY3RybCwgbmFuZC0+YmFzZSArIEpaX1JFR19OQU5EX0NUUkwpOwotCi0JaWYgKGNoaXBuciA9PSAwKSB7Ci0JCS8qIERldGVjdCBmaXJzdCBjaGlwLiAqLwotCQlyZXQgPSBuYW5kX3NjYW4oY2hpcCwgMSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIG5vdGZvdW5kX2lkOwotCi0JCS8qIFJldHJpZXZlIHRoZSBJRHMgZnJvbSB0aGUgZmlyc3QgY2hpcC4gKi8KLQkJbmFuZF9zZWxlY3RfdGFyZ2V0KGNoaXAsIDApOwotCQluYW5kX3Jlc2V0X29wKGNoaXApOwotCQluYW5kX3JlYWRpZF9vcChjaGlwLCAwLCBpZCwgc2l6ZW9mKGlkKSk7Ci0JCSpuYW5kX21hZl9pZCA9IGlkWzBdOwotCQkqbmFuZF9kZXZfaWQgPSBpZFsxXTsKLQl9IGVsc2UgewotCQkvKiBEZXRlY3QgYWRkaXRpb25hbCBjaGlwLiAqLwotCQluYW5kX3NlbGVjdF90YXJnZXQoY2hpcCwgY2hpcG5yKTsKLQkJbmFuZF9yZXNldF9vcChjaGlwKTsKLQkJbmFuZF9yZWFkaWRfb3AoY2hpcCwgMCwgaWQsIHNpemVvZihpZCkpOwotCQlpZiAoKm5hbmRfbWFmX2lkICE9IGlkWzBdIHx8ICpuYW5kX2Rldl9pZCAhPSBpZFsxXSkgewotCQkJcmV0ID0gLUVOT0RFVjsKLQkJCWdvdG8gbm90Zm91bmRfaWQ7Ci0JCX0KLQotCQkvKiBVcGRhdGUgc2l6ZSBvZiB0aGUgTVRELiAqLwotCQltZW1vcmctPm50YXJnZXRzKys7Ci0JCW10ZC0+c2l6ZSArPSBuYW5kZGV2X3RhcmdldF9zaXplKCZjaGlwLT5iYXNlKTsKLQl9Ci0KLQlkZXZfaW5mbygmcGRldi0+ZGV2LCAiRm91bmQgY2hpcCAlenUgb24gYmFuayAlaVxuIiwgY2hpcG5yLCBiYW5rKTsKLQlyZXR1cm4gMDsKLQotbm90Zm91bmRfaWQ6Ci0JZGV2X2luZm8oJnBkZXYtPmRldiwgIk5vIGNoaXAgZm91bmQgb24gYmFuayAlaVxuIiwgYmFuayk7Ci0JY3RybCAmPSB+KEpaX05BTkRfQ1RSTF9FTkFCTEVfQ0hJUChiYW5rIC0gMSkpOwotCXdyaXRlbChjdHJsLCBuYW5kLT5iYXNlICsgSlpfUkVHX05BTkRfQ1RSTCk7Ci0JanpfbmFuZF9pb3VubWFwX3Jlc291cmNlKG5hbmQtPmJhbmtfbWVtW2JhbmsgLSAxXSwKLQkJCQkgbmFuZC0+YmFua19iYXNlW2JhbmsgLSAxXSk7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBqel9uYW5kX2F0dGFjaF9jaGlwKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXApCi17Ci0Jc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5kX3RvX210ZChjaGlwKTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBtdGQtPmRldi5wYXJlbnQ7Ci0Jc3RydWN0IGp6X25hbmRfcGxhdGZvcm1fZGF0YSAqcGRhdGEgPSBkZXZfZ2V0X3BsYXRkYXRhKGRldik7Ci0Jc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOwotCi0JaWYgKHBkYXRhICYmIHBkYXRhLT5pZGVudF9jYWxsYmFjaykKLQkJcGRhdGEtPmlkZW50X2NhbGxiYWNrKHBkZXYsIG10ZCwgJnBkYXRhLT5wYXJ0aXRpb25zLAotCQkJCSAgICAgICZwZGF0YS0+bnVtX3BhcnRpdGlvbnMpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmFuZF9jb250cm9sbGVyX29wcyBqel9uYW5kX2NvbnRyb2xsZXJfb3BzID0gewotCS5hdHRhY2hfY2hpcCA9IGp6X25hbmRfYXR0YWNoX2NoaXAsCi19OwotCi1zdGF0aWMgaW50IGp6X25hbmRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlpbnQgcmV0OwotCXN0cnVjdCBqel9uYW5kICpuYW5kOwotCXN0cnVjdCBuYW5kX2NoaXAgKmNoaXA7Ci0Jc3RydWN0IG10ZF9pbmZvICptdGQ7Ci0Jc3RydWN0IGp6X25hbmRfcGxhdGZvcm1fZGF0YSAqcGRhdGEgPSBkZXZfZ2V0X3BsYXRkYXRhKCZwZGV2LT5kZXYpOwotCXNpemVfdCBjaGlwbnIsIGJhbmtfaWR4OwotCXVpbnQ4X3QgbmFuZF9tYWZfaWQgPSAwLCBuYW5kX2Rldl9pZCA9IDA7Ci0KLQluYW5kID0ga3phbGxvYyhzaXplb2YoKm5hbmQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW5hbmQpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JcmV0ID0ganpfbmFuZF9pb3JlbWFwX3Jlc291cmNlKHBkZXYsICJtbWlvIiwgJm5hbmQtPm1lbSwgJm5hbmQtPmJhc2UpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2ZyZWU7Ci0KLQluYW5kLT5idXN5X2dwaW8gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbCgmcGRldi0+ZGV2LCAiYnVzeSIsIEdQSU9EX0lOKTsKLQlpZiAoSVNfRVJSKG5hbmQtPmJ1c3lfZ3BpbykpIHsKLQkJcmV0ID0gUFRSX0VSUihuYW5kLT5idXN5X2dwaW8pOwotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBidXN5IGdwaW8gJWRcbiIsCi0JCSAgICByZXQpOwotCQlnb3RvIGVycl9pb3VubWFwX21taW87Ci0JfQotCi0JY2hpcAkJPSAmbmFuZC0+Y2hpcDsKLQltdGQJCT0gbmFuZF90b19tdGQoY2hpcCk7Ci0JbXRkLT5kZXYucGFyZW50ID0gJnBkZXYtPmRldjsKLQltdGQtPm5hbWUJPSAiano0NzQwLW5hbmQiOwotCi0JY2hpcC0+ZWNjLmh3Y3RsCQk9IGp6X25hbmRfaHdjdGw7Ci0JY2hpcC0+ZWNjLmNhbGN1bGF0ZQk9IGp6X25hbmRfY2FsY3VsYXRlX2VjY19yczsKLQljaGlwLT5lY2MuY29ycmVjdAk9IGp6X25hbmRfY29ycmVjdF9lY2NfcnM7Ci0JY2hpcC0+ZWNjLm1vZGUJCT0gTkFORF9FQ0NfSFdfT09CX0ZJUlNUOwotCWNoaXAtPmVjYy5zaXplCQk9IDUxMjsKLQljaGlwLT5lY2MuYnl0ZXMJCT0gOTsKLQljaGlwLT5lY2Muc3RyZW5ndGgJPSA0OwotCWNoaXAtPmVjYy5vcHRpb25zCT0gTkFORF9FQ0NfR0VORVJJQ19FUkFTRURfQ0hFQ0s7Ci0KLQljaGlwLT5sZWdhY3kuY2hpcF9kZWxheSA9IDUwOwotCWNoaXAtPmxlZ2FjeS5jbWRfY3RybCA9IGp6X25hbmRfY21kX2N0cmw7Ci0JY2hpcC0+bGVnYWN5LnNlbGVjdF9jaGlwID0ganpfbmFuZF9zZWxlY3RfY2hpcDsKLQljaGlwLT5sZWdhY3kuZHVtbXlfY29udHJvbGxlci5vcHMgPSAmanpfbmFuZF9jb250cm9sbGVyX29wczsKLQotCWlmIChuYW5kLT5idXN5X2dwaW8pCi0JCWNoaXAtPmxlZ2FjeS5kZXZfcmVhZHkgPSBqel9uYW5kX2Rldl9yZWFkeTsKLQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIG5hbmQpOwotCi0JLyogV2UgYXJlIGdvaW5nIHRvIGF1dG9kZXRlY3QgTkFORCBjaGlwcyBpbiB0aGUgYmFua3Mgc3BlY2lmaWVkIGluIHRoZQotCSAqIHBsYXRmb3JtIGRhdGEuIEFsdGhvdWdoIG5hbmRfc2Nhbl9pZGVudCgpIGNhbiBkZXRlY3QgbXVsdGlwbGUgY2hpcHMsCi0JICogaXQgcmVxdWlyZXMgdGhvc2UgY2hpcHMgdG8gYmUgbnVtYmVyZWQgY29uc2VjdWl0aXZlbHksIHdoaWNoIGlzIG5vdAotCSAqIGFsd2F5cyB0aGUgY2FzZSBmb3IgZXh0ZXJuYWwgbWVtb3J5IGJhbmtzLiBBbmQgYSBmaXhlZCBjaGlwLXRvLWJhbmsKLQkgKiBtYXBwaW5nIGlzIG5vdCBwcmFjdGljYWwgZWl0aGVyLCBzaW5jZSBmb3IgZXhhbXBsZSBEaW5nb28gdW5pdHMKLQkgKiBwcm9kdWNlZCBhdCBkaWZmZXJlbnQgdGltZXMgaGF2ZSBOQU5EIGNoaXBzIGluIGRpZmZlcmVudCBiYW5rcy4KLQkgKi8KLQljaGlwbnIgPSAwOwotCWZvciAoYmFua19pZHggPSAwOyBiYW5rX2lkeCA8IEpaX05BTkRfTlVNX0JBTktTOyBiYW5rX2lkeCsrKSB7Ci0JCXVuc2lnbmVkIGNoYXIgYmFuazsKLQotCQkvKiBJZiB0aGVyZSBpcyBubyBwbGF0Zm9ybSBkYXRhLCBsb29rIGZvciBOQU5EIGluIGJhbmsgMSwKLQkJICogd2hpY2ggaXMgdGhlIG1vc3QgbGlrZWx5IGJhbmsgc2luY2UgaXQgaXMgdGhlIG9ubHkgb25lCi0JCSAqIHRoYXQgY2FuIGJlIGJvb3RlZCBmcm9tLgotCQkgKi8KLQkJYmFuayA9IHBkYXRhID8gcGRhdGEtPmJhbmtzW2JhbmtfaWR4XSA6IGJhbmtfaWR4IF4gMTsKLQkJaWYgKGJhbmsgPT0gMCkKLQkJCWJyZWFrOwotCQlpZiAoYmFuayA+IEpaX05BTkRfTlVNX0JBTktTKSB7Ci0JCQlkZXZfd2FybigmcGRldi0+ZGV2LAotCQkJCSJTa2lwcGluZyBub24tZXhpc3RpbmcgYmFuazogJWRcbiIsIGJhbmspOwotCQkJY29udGludWU7Ci0JCX0KLQkJLyogVGhlIGRldGVjdGlvbiByb3V0aW5lIHdpbGwgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBjYWxsCi0JCSAqIGp6X25hbmRfc2VsZWN0X2NoaXAoKSwgc28gbmFuZC0+YmFua3MgaGFzIHRvIGNvbnRhaW4gdGhlCi0JCSAqIGJhbmsgd2UncmUgY2hlY2tpbmcuCi0JCSAqLwotCQluYW5kLT5iYW5rc1tjaGlwbnJdID0gYmFuazsKLQkJaWYgKGp6X25hbmRfZGV0ZWN0X2JhbmsocGRldiwgbmFuZCwgYmFuaywgY2hpcG5yLAotCQkJCQkmbmFuZF9tYWZfaWQsICZuYW5kX2Rldl9pZCkgPT0gMCkKLQkJCWNoaXBucisrOwotCQllbHNlCi0JCQluYW5kLT5iYW5rc1tjaGlwbnJdID0gMDsKLQl9Ci0JaWYgKGNoaXBuciA9PSAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIk5vIE5BTkQgY2hpcHMgZm91bmRcbiIpOwotCQlnb3RvIGVycl9pb3VubWFwX21taW87Ci0JfQotCi0JcmV0ID0gbXRkX2RldmljZV9yZWdpc3RlcihtdGQsIHBkYXRhID8gcGRhdGEtPnBhcnRpdGlvbnMgOiBOVUxMLAotCQkJCSAgcGRhdGEgPyBwZGF0YS0+bnVtX3BhcnRpdGlvbnMgOiAwKTsKLQotCWlmIChyZXQpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGFkZCBtdGQgZGV2aWNlXG4iKTsKLQkJZ290byBlcnJfY2xlYW51cF9uYW5kOwotCX0KLQotCWRldl9pbmZvKCZwZGV2LT5kZXYsICJTdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCBKWjQ3NDAgTkFORCBkcml2ZXJcbiIpOwotCi0JcmV0dXJuIDA7Ci0KLWVycl9jbGVhbnVwX25hbmQ6Ci0JbmFuZF9jbGVhbnVwKGNoaXApOwotCXdoaWxlIChjaGlwbnItLSkgewotCQl1bnNpZ25lZCBjaGFyIGJhbmsgPSBuYW5kLT5iYW5rc1tjaGlwbnJdOwotCQlqel9uYW5kX2lvdW5tYXBfcmVzb3VyY2UobmFuZC0+YmFua19tZW1bYmFuayAtIDFdLAotCQkJCQkgbmFuZC0+YmFua19iYXNlW2JhbmsgLSAxXSk7Ci0JfQotCXdyaXRlbCgwLCBuYW5kLT5iYXNlICsgSlpfUkVHX05BTkRfQ1RSTCk7Ci1lcnJfaW91bm1hcF9tbWlvOgotCWp6X25hbmRfaW91bm1hcF9yZXNvdXJjZShuYW5kLT5tZW0sIG5hbmQtPmJhc2UpOwotZXJyX2ZyZWU6Ci0Ja2ZyZWUobmFuZCk7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBqel9uYW5kX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBqel9uYW5kICpuYW5kID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Ci0Jc2l6ZV90IGk7Ci0KLQluYW5kX3JlbGVhc2UoJm5hbmQtPmNoaXApOwotCi0JLyogRGVhc3NlcnQgYW5kIGRpc2FibGUgYWxsIGNoaXBzICovCi0Jd3JpdGVsKDAsIG5hbmQtPmJhc2UgKyBKWl9SRUdfTkFORF9DVFJMKTsKLQotCWZvciAoaSA9IDA7IGkgPCBKWl9OQU5EX05VTV9CQU5LUzsgKytpKSB7Ci0JCXVuc2lnbmVkIGNoYXIgYmFuayA9IG5hbmQtPmJhbmtzW2ldOwotCQlpZiAoYmFuayAhPSAwKSB7Ci0JCQlqel9uYW5kX2lvdW5tYXBfcmVzb3VyY2UobmFuZC0+YmFua19tZW1bYmFuayAtIDFdLAotCQkJCQkJIG5hbmQtPmJhbmtfYmFzZVtiYW5rIC0gMV0pOwotCQl9Ci0JfQotCi0JanpfbmFuZF9pb3VubWFwX3Jlc291cmNlKG5hbmQtPm1lbSwgbmFuZC0+YmFzZSk7Ci0KLQlrZnJlZShuYW5kKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBqel9uYW5kX2RyaXZlciA9IHsKLQkucHJvYmUgPSBqel9uYW5kX3Byb2JlLAotCS5yZW1vdmUgPSBqel9uYW5kX3JlbW92ZSwKLQkuZHJpdmVyID0gewotCQkubmFtZSA9ICJqejQ3NDAtbmFuZCIsCi0JfSwKLX07Ci0KLW1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoanpfbmFuZF9kcml2ZXIpOwotCi1NT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1NT0RVTEVfQVVUSE9SKCJMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiTkFORCBjb250cm9sbGVyIGRyaXZlciBmb3IgSlo0NzQwIFNvQyIpOwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpqejQ3NDAtbmFuZCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jCmluZGV4IGVhNTdkZGMuLjFiODJiNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKQEAgLTEzMjAsNiArMTMyMCw3IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX25hbmRfY2hpcHNfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCXJldCA9IG1lc29uX25mY19uYW5kX2NoaXBfaW5pdChkZXYsIG5mYywgbmFuZF9ucCk7CiAJCWlmIChyZXQpIHsKIAkJCW1lc29uX25mY19uYW5kX2NoaXBfY2xlYW51cChuZmMpOworCQkJb2Zfbm9kZV9wdXQobmFuZF9ucCk7CiAJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbXhpY19uYW5kLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9teGljX25hbmQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDQ5ZTZjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbXhpY19uYW5kLmMKQEAgLTAsMCArMSw1ODIgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IE1hY3Jvbml4IEludGVybmF0aW9uYWwgQ28uLCBMdGQuCisgKgorICogQXV0aG9yOgorICoJTWFzb24gWWFuZyA8bWFzb25jY3lhbmdAbXhpYy5jb20udHc+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9yYXduYW5kLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfZWNjLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNpbmNsdWRlICJpbnRlcm5hbHMuaCIKKworI2RlZmluZSBIQ19DRkcJCQkweDAKKyNkZWZpbmUgSENfQ0ZHX0lGX0NGRyh4KQkoKHgpIDw8IDI3KQorI2RlZmluZSBIQ19DRkdfRFVBTF9TTEFWRQlCSVQoMzEpCisjZGVmaW5lIEhDX0NGR19JTkRJVklEVUFMCUJJVCgzMCkKKyNkZWZpbmUgSENfQ0ZHX05JTyh4KQkJKCgoeCkgLyA0KSA8PCAyNykKKyNkZWZpbmUgSENfQ0ZHX1RZUEUocywgdCkJKCh0KSA8PCAoMjMgKyAoKHMpICogMikpKQorI2RlZmluZSBIQ19DRkdfVFlQRV9TUElfTk9SCTAKKyNkZWZpbmUgSENfQ0ZHX1RZUEVfU1BJX05BTkQJMQorI2RlZmluZSBIQ19DRkdfVFlQRV9TUElfUkFNCTIKKyNkZWZpbmUgSENfQ0ZHX1RZUEVfUkFXX05BTkQJMworI2RlZmluZSBIQ19DRkdfU0xWX0FDVCh4KQkoKHgpIDw8IDIxKQorI2RlZmluZSBIQ19DRkdfQ0xLX1BIX0VOCUJJVCgyMCkKKyNkZWZpbmUgSENfQ0ZHX0NMS19QT0xfSU5WCUJJVCgxOSkKKyNkZWZpbmUgSENfQ0ZHX0JJR19FTkRJQU4JQklUKDE4KQorI2RlZmluZSBIQ19DRkdfREFUQV9QQVNTCUJJVCgxNykKKyNkZWZpbmUgSENfQ0ZHX0lETEVfU0lPX0xWTCh4KQkoKHgpIDw8IDE2KQorI2RlZmluZSBIQ19DRkdfTUFOX1NUQVJUX0VOCUJJVCgzKQorI2RlZmluZSBIQ19DRkdfTUFOX1NUQVJUCUJJVCgyKQorI2RlZmluZSBIQ19DRkdfTUFOX0NTX0VOCUJJVCgxKQorI2RlZmluZSBIQ19DRkdfTUFOX0NTX0FTU0VSVAlCSVQoMCkKKworI2RlZmluZSBJTlRfU1RTCQkJMHg0CisjZGVmaW5lIElOVF9TVFNfRU4JCTB4OAorI2RlZmluZSBJTlRfU0lHX0VOCQkweGMKKyNkZWZpbmUgSU5UX1NUU19BTEwJCUdFTk1BU0soMzEsIDApCisjZGVmaW5lIElOVF9SRFlfUElOCQlCSVQoMjYpCisjZGVmaW5lIElOVF9SRFlfU1IJCUJJVCgyNSkKKyNkZWZpbmUgSU5UX0xOUl9TVVNQCQlCSVQoMjQpCisjZGVmaW5lIElOVF9FQ0NfRVJSCQlCSVQoMTcpCisjZGVmaW5lIElOVF9DUkNfRVJSCQlCSVQoMTYpCisjZGVmaW5lIElOVF9MV1JfRElTCQlCSVQoMTIpCisjZGVmaW5lIElOVF9MUkRfRElTCQlCSVQoMTEpCisjZGVmaW5lIElOVF9TRE1BX0lOVAkJQklUKDEwKQorI2RlZmluZSBJTlRfRE1BX0ZJTklTSAkJQklUKDkpCisjZGVmaW5lIElOVF9SWF9OT1RfRlVMTAkJQklUKDMpCisjZGVmaW5lIElOVF9SWF9OT1RfRU1QVFkJQklUKDIpCisjZGVmaW5lIElOVF9UWF9OT1RfRlVMTAkJQklUKDEpCisjZGVmaW5lIElOVF9UWF9FTVBUWQkJQklUKDApCisKKyNkZWZpbmUgSENfRU4JCQkweDEwCisjZGVmaW5lIEhDX0VOX0JJVAkJQklUKDApCisKKyNkZWZpbmUgVFhEKHgpCQkJKDB4MTQgKyAoKHgpICogNCkpCisjZGVmaW5lIFJYRAkJCTB4MjQKKworI2RlZmluZSBTU19DVFJMKHMpCQkoMHgzMCArICgocykgKiA0KSkKKyNkZWZpbmUgTFJEX0NGRwkJCTB4NDQKKyNkZWZpbmUgTFdSX0NGRwkJCTB4ODAKKyNkZWZpbmUgUldXX0NGRwkJCTB4NzAKKyNkZWZpbmUgT1BfUkVBRAkJCUJJVCgyMykKKyNkZWZpbmUgT1BfRFVNTVlfQ1lDKHgpCQkoKHgpIDw8IDE3KQorI2RlZmluZSBPUF9BRERSX0JZVEVTKHgpCSgoeCkgPDwgMTQpCisjZGVmaW5lIE9QX0NNRF9CWVRFUyh4KQkJKCgoeCkgLSAxKSA8PCAxMykKKyNkZWZpbmUgT1BfT0NUQV9DUkNfRU4JCUJJVCgxMikKKyNkZWZpbmUgT1BfRFFTX0VOCQlCSVQoMTEpCisjZGVmaW5lIE9QX0VOSENfRU4JCUJJVCgxMCkKKyNkZWZpbmUgT1BfUFJFQU1CTEVfRU4JCUJJVCg5KQorI2RlZmluZSBPUF9EQVRBX0REUgkJQklUKDgpCisjZGVmaW5lIE9QX0RBVEFfQlVTVyh4KQkJKCh4KSA8PCA2KQorI2RlZmluZSBPUF9BRERSX0REUgkJQklUKDUpCisjZGVmaW5lIE9QX0FERFJfQlVTVyh4KQkJKCh4KSA8PCAzKQorI2RlZmluZSBPUF9DTURfRERSCQlCSVQoMikKKyNkZWZpbmUgT1BfQ01EX0JVU1coeCkJCSh4KQorI2RlZmluZSBPUF9CVVNXXzEJCTAKKyNkZWZpbmUgT1BfQlVTV18yCQkxCisjZGVmaW5lIE9QX0JVU1dfNAkJMgorI2RlZmluZSBPUF9CVVNXXzgJCTMKKworI2RlZmluZSBPQ1RBX0NSQwkJMHgzOAorI2RlZmluZSBPQ1RBX0NSQ19JTl9FTihzKQlCSVQoMyArICgocykgKiAxNikpCisjZGVmaW5lIE9DVEFfQ1JDX0NIVU5LKHMsIHgpCSgoZmxzKCh4KSAvIDMyKSkgPDwgKDEgKyAoKHMpICogMTYpKSkKKyNkZWZpbmUgT0NUQV9DUkNfT1VUX0VOKHMpCUJJVCgwICsgKChzKSAqIDE2KSkKKworI2RlZmluZSBPTkZJX0RJTl9DTlQocykJCSgweDNjICsgKHMpKQorCisjZGVmaW5lIExSRF9DVFJMCQkweDQ4CisjZGVmaW5lIFJXV19DVFJMCQkweDc0CisjZGVmaW5lIExXUl9DVFJMCQkweDg0CisjZGVmaW5lIExNT0RFX0VOCQlCSVQoMzEpCisjZGVmaW5lIExNT0RFX1NMVl9BQ1QoeCkJKCh4KSA8PCAyMSkKKyNkZWZpbmUgTE1PREVfQ01EMSh4KQkJKCh4KSA8PCA4KQorI2RlZmluZSBMTU9ERV9DTUQwKHgpCQkoeCkKKworI2RlZmluZSBMUkRfQUREUgkJMHg0YworI2RlZmluZSBMV1JfQUREUgkJMHg4OAorI2RlZmluZSBMUkRfUkFOR0UJCTB4NTAKKyNkZWZpbmUgTFdSX1JBTkdFCQkweDhjCisKKyNkZWZpbmUgQVhJX1NMVl9BRERSCQkweDU0CisKKyNkZWZpbmUgRE1BQ19SRF9DRkcJCTB4NTgKKyNkZWZpbmUgRE1BQ19XUl9DRkcJCTB4OTQKKyNkZWZpbmUgRE1BQ19DRkdfUEVSSVBIX0VOCUJJVCgzMSkKKyNkZWZpbmUgRE1BQ19DRkdfQUxMRkxVU0hfRU4JQklUKDMwKQorI2RlZmluZSBETUFDX0NGR19MQVNURkxVU0hfRU4JQklUKDI5KQorI2RlZmluZSBETUFDX0NGR19RRSh4KQkJKCgoeCkgKyAxKSA8PCAxNikKKyNkZWZpbmUgRE1BQ19DRkdfQlVSU1RfTEVOKHgpCSgoKHgpICsgMSkgPDwgMTIpCisjZGVmaW5lIERNQUNfQ0ZHX0JVUlNUX1NaKHgpCSgoeCkgPDwgOCkKKyNkZWZpbmUgRE1BQ19DRkdfRElSX1JFQUQJQklUKDEpCisjZGVmaW5lIERNQUNfQ0ZHX1NUQVJUCQlCSVQoMCkKKworI2RlZmluZSBETUFDX1JEX0NOVAkJMHg1YworI2RlZmluZSBETUFDX1dSX0NOVAkJMHg5OAorCisjZGVmaW5lIFNETUFfQUREUgkJMHg2MAorCisjZGVmaW5lIERNQU1fQ0ZHCQkweDY0CisjZGVmaW5lIERNQU1fQ0ZHX1NUQVJUCQlCSVQoMzEpCisjZGVmaW5lIERNQU1fQ0ZHX0NPTlQJCUJJVCgzMCkKKyNkZWZpbmUgRE1BTV9DRkdfU0RNQV9HQVAoeCkJKGZscygoeCkgLyA4MTkyKSA8PCAyKQorI2RlZmluZSBETUFNX0NGR19ESVJfUkVBRAlCSVQoMSkKKyNkZWZpbmUgRE1BTV9DRkdfRU4JCUJJVCgwKQorCisjZGVmaW5lIERNQU1fQ05UCQkweDY4CisKKyNkZWZpbmUgTE5SX1RJTUVSX1RICQkweDZjCisKKyNkZWZpbmUgUkRNX0NGRzAJCTB4NzgKKyNkZWZpbmUgUkRNX0NGRzBfUE9MWSh4KQkoeCkKKworI2RlZmluZSBSRE1fQ0ZHMQkJMHg3YworI2RlZmluZSBSRE1fQ0ZHMV9SRE1fRU4JCUJJVCgzMSkKKyNkZWZpbmUgUkRNX0NGRzFfU0VFRCh4KQkoeCkKKworI2RlZmluZSBMV1JfU1VTUF9DVFJMCQkweDkwCisjZGVmaW5lIExXUl9TVVNQX0NUUkxfRU4JQklUKDMxKQorCisjZGVmaW5lIERNQVNfQ1RSTAkJMHg5YworI2RlZmluZSBETUFTX0NUUkxfRU4JCUJJVCgzMSkKKyNkZWZpbmUgRE1BU19DVFJMX0RJUl9SRUFECUJJVCgzMCkKKworI2RlZmluZSBEQVRBX1NUUk9CCQkweGEwCisjZGVmaW5lIERBVEFfU1RST0JfRURPX0VOCUJJVCgyKQorI2RlZmluZSBEQVRBX1NUUk9CX0lOVl9QT0wJQklUKDEpCisjZGVmaW5lIERBVEFfU1RST0JfREVMQVlfMkNZQwlCSVQoMCkKKworI2RlZmluZSBJRExZX0NPREUoeCkJCSgweGE0ICsgKCh4KSAqIDQpKQorI2RlZmluZSBJRExZX0NPREVfVkFMKHgsIHYpCSgodikgPDwgKCgoeCkgJSA0KSAqIDgpKQorCisjZGVmaW5lIEdQSU8JCQkweGM0CisjZGVmaW5lIEdQSU9fUFQoeCkJCUJJVCgzICsgKCh4KSAqIDE2KSkKKyNkZWZpbmUgR1BJT19SRVNFVCh4KQkJQklUKDIgKyAoKHgpICogMTYpKQorI2RlZmluZSBHUElPX0hPTERCKHgpCQlCSVQoMSArICgoeCkgKiAxNikpCisjZGVmaW5lIEdQSU9fV1BCKHgpCQlCSVQoKHgpICogMTYpCisKKyNkZWZpbmUgSENfVkVSCQkJMHhkMAorCisjZGVmaW5lIEhXX1RFU1QoeCkJCSgweGUwICsgKCh4KSAqIDQpKQorCisjZGVmaW5lIE1YSUNfTkZDX01BWF9DTEtfSFoJNTAwMDAwMDAKKyNkZWZpbmUgSVJRX1RJTUVPVVQJCTEwMDAKKworc3RydWN0IG14aWNfbmFuZF9jdGxyIHsKKwlzdHJ1Y3QgY2xrICpwc19jbGs7CisJc3RydWN0IGNsayAqc2VuZF9jbGs7CisJc3RydWN0IGNsayAqc2VuZF9kbHlfY2xrOworCXN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRlOworCXZvaWQgX19pb21lbSAqcmVnczsKKwlzdHJ1Y3QgbmFuZF9jb250cm9sbGVyIGNvbnRyb2xsZXI7CisJc3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCBuYW5kX2NoaXAgY2hpcDsKK307CisKK3N0YXRpYyBpbnQgbXhpY19uZmNfY2xrX2VuYWJsZShzdHJ1Y3QgbXhpY19uYW5kX2N0bHIgKm5mYykKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKG5mYy0+cHNfY2xrKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKG5mYy0+c2VuZF9jbGspOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3BzX2NsazsKKworCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPnNlbmRfZGx5X2Nsayk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfc2VuZF9kbHlfY2xrOworCisJcmV0dXJuIHJldDsKKworZXJyX3NlbmRfZGx5X2NsazoKKwljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5zZW5kX2Nsayk7CitlcnJfcHNfY2xrOgorCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPnBzX2Nsayk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBteGljX25mY19jbGtfZGlzYWJsZShzdHJ1Y3QgbXhpY19uYW5kX2N0bHIgKm5mYykKK3sKKwljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5zZW5kX2Nsayk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+c2VuZF9kbHlfY2xrKTsKKwljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5wc19jbGspOworfQorCitzdGF0aWMgdm9pZCBteGljX25mY19zZXRfaW5wdXRfZGVsYXkoc3RydWN0IG14aWNfbmFuZF9jdGxyICpuZmMsIHU4IGlkbHlfY29kZSkKK3sKKwl3cml0ZWwoSURMWV9DT0RFX1ZBTCgwLCBpZGx5X2NvZGUpIHwKKwkgICAgICAgSURMWV9DT0RFX1ZBTCgxLCBpZGx5X2NvZGUpIHwKKwkgICAgICAgSURMWV9DT0RFX1ZBTCgyLCBpZGx5X2NvZGUpIHwKKwkgICAgICAgSURMWV9DT0RFX1ZBTCgzLCBpZGx5X2NvZGUpLAorCSAgICAgICBuZmMtPnJlZ3MgKyBJRExZX0NPREUoMCkpOworCXdyaXRlbChJRExZX0NPREVfVkFMKDQsIGlkbHlfY29kZSkgfAorCSAgICAgICBJRExZX0NPREVfVkFMKDUsIGlkbHlfY29kZSkgfAorCSAgICAgICBJRExZX0NPREVfVkFMKDYsIGlkbHlfY29kZSkgfAorCSAgICAgICBJRExZX0NPREVfVkFMKDcsIGlkbHlfY29kZSksCisJICAgICAgIG5mYy0+cmVncyArIElETFlfQ09ERSgxKSk7Cit9CisKK3N0YXRpYyBpbnQgbXhpY19uZmNfY2xrX3NldHVwKHN0cnVjdCBteGljX25hbmRfY3RsciAqbmZjLCB1bnNpZ25lZCBsb25nIGZyZXEpCit7CisJaW50IHJldDsKKworCXJldCA9IGNsa19zZXRfcmF0ZShuZmMtPnNlbmRfY2xrLCBmcmVxKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gY2xrX3NldF9yYXRlKG5mYy0+c2VuZF9kbHlfY2xrLCBmcmVxKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyoKKwkgKiBBIGNvbnN0YW50IGRlbGF5IHJhbmdlIGZyb20gMHgwIH4gMHgxRiBmb3IgaW5wdXQgZGVsYXksCisJICogdGhlIHVuaXQgaXMgNzggcHMsIHRoZSBtYXggaW5wdXQgZGVsYXkgaXMgMi40MTggbnMuCisJICovCisJbXhpY19uZmNfc2V0X2lucHV0X2RlbGF5KG5mYywgMHhmKTsKKworCS8qCisJICogUGhhc2UgZGVncmVlID0gMzYwICogZnJlcSAqIG91dHB1dC1kZWxheQorCSAqIHdoZXJlIG91dHB1dC1kZWxheSBpcyBhIGNvbnN0YW50IHZhbHVlIDEgbnMgaW4gRlBHQS4KKwkgKgorCSAqIEdldCBQaGFzZSBkZWdyZWUgPSAzNjAgKiBmcmVxICogMSBucworCSAqICAgICAgICAgICAgICAgICAgPSAzNjAgKiBmcmVxICogMSBzZWMgLyAxMDAwMDAwMDAwCisJICogICAgICAgICAgICAgICAgICA9IDkgKiBmcmVxIC8gMjUwMDAwMDAKKwkgKi8KKwlyZXQgPSBjbGtfc2V0X3BoYXNlKG5mYy0+c2VuZF9kbHlfY2xrLCA5ICogZnJlcSAvIDI1MDAwMDAwKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbXhpY19uZmNfc2V0X2ZyZXEoc3RydWN0IG14aWNfbmFuZF9jdGxyICpuZmMsIHVuc2lnbmVkIGxvbmcgZnJlcSkKK3sKKwlpbnQgcmV0OworCisJaWYgKGZyZXEgPiBNWElDX05GQ19NQVhfQ0xLX0haKQorCQlmcmVxID0gTVhJQ19ORkNfTUFYX0NMS19IWjsKKworCW14aWNfbmZjX2Nsa19kaXNhYmxlKG5mYyk7CisJcmV0ID0gbXhpY19uZmNfY2xrX3NldHVwKG5mYywgZnJlcSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IG14aWNfbmZjX2Nsa19lbmFibGUobmZjKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBteGljX25mY19pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBteGljX25hbmRfY3RsciAqbmZjID0gZGV2X2lkOworCXUzMiBzdHM7CisKKwlzdHMgPSByZWFkbChuZmMtPnJlZ3MgKyBJTlRfU1RTKTsKKwlpZiAoc3RzICYgSU5UX1JEWV9QSU4pCisJCWNvbXBsZXRlKCZuZmMtPmNvbXBsZXRlKTsKKwllbHNlCisJCXJldHVybiBJUlFfTk9ORTsKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIHZvaWQgbXhpY19uZmNfaHdfaW5pdChzdHJ1Y3QgbXhpY19uYW5kX2N0bHIgKm5mYykKK3sKKwl3cml0ZWwoSENfQ0ZHX05JTyg4KSB8IEhDX0NGR19UWVBFKDEsIEhDX0NGR19UWVBFX1JBV19OQU5EKSB8CisJICAgICAgIEhDX0NGR19TTFZfQUNUKDApIHwgSENfQ0ZHX01BTl9DU19FTiB8CisJICAgICAgIEhDX0NGR19JRExFX1NJT19MVkwoMSksIG5mYy0+cmVncyArIEhDX0NGRyk7CisJd3JpdGVsKElOVF9TVFNfQUxMLCBuZmMtPnJlZ3MgKyBJTlRfU1RTX0VOKTsKKwl3cml0ZWwoSU5UX1JEWV9QSU4sIG5mYy0+cmVncyArIElOVF9TSUdfRU4pOworCXdyaXRlbCgweDAsIG5mYy0+cmVncyArIE9ORklfRElOX0NOVCgwKSk7CisJd3JpdGVsKDAsIG5mYy0+cmVncyArIExSRF9DRkcpOworCXdyaXRlbCgwLCBuZmMtPnJlZ3MgKyBMUkRfQ1RSTCk7CisJd3JpdGVsKDB4MCwgbmZjLT5yZWdzICsgSENfRU4pOworfQorCitzdGF0aWMgdm9pZCBteGljX25mY19jc19lbmFibGUoc3RydWN0IG14aWNfbmFuZF9jdGxyICpuZmMpCit7CisJd3JpdGVsKHJlYWRsKG5mYy0+cmVncyArIEhDX0NGRykgfCBIQ19DRkdfTUFOX0NTX0VOLAorCSAgICAgICBuZmMtPnJlZ3MgKyBIQ19DRkcpOworCXdyaXRlbChIQ19DRkdfTUFOX0NTX0FTU0VSVCB8IHJlYWRsKG5mYy0+cmVncyArIEhDX0NGRyksCisJICAgICAgIG5mYy0+cmVncyArIEhDX0NGRyk7Cit9CisKK3N0YXRpYyB2b2lkIG14aWNfbmZjX2NzX2Rpc2FibGUoc3RydWN0IG14aWNfbmFuZF9jdGxyICpuZmMpCit7CisJd3JpdGVsKH5IQ19DRkdfTUFOX0NTX0FTU0VSVCAmIHJlYWRsKG5mYy0+cmVncyArIEhDX0NGRyksCisJICAgICAgIG5mYy0+cmVncyArIEhDX0NGRyk7Cit9CisKK3N0YXRpYyBpbnQgIG14aWNfbmZjX3dhaXRfcmVhZHkoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKK3sKKwlzdHJ1Y3QgbXhpY19uYW5kX2N0bHIgKm5mYyA9IG5hbmRfZ2V0X2NvbnRyb2xsZXJfZGF0YShjaGlwKTsKKwlpbnQgcmV0OworCisJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZuZmMtPmNvbXBsZXRlLAorCQkJCQkgIG1zZWNzX3RvX2ppZmZpZXMoSVJRX1RJTUVPVVQpKTsKKwlpZiAoIXJldCkgeworCQlkZXZfZXJyKG5mYy0+ZGV2LCAibmFuZCBkZXZpY2UgdGltZW91dFxuIik7CisJCXJldHVybiAtRVRJTUVET1VUOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG14aWNfbmZjX2RhdGFfeGZlcihzdHJ1Y3QgbXhpY19uYW5kX2N0bHIgKm5mYywgY29uc3Qgdm9pZCAqdHhidWYsCisJCQkgICAgICB2b2lkICpyeGJ1ZiwgdW5zaWduZWQgaW50IGxlbikKK3sKKwl1bnNpZ25lZCBpbnQgcG9zID0gMDsKKworCXdoaWxlIChwb3MgPCBsZW4pIHsKKwkJdW5zaWduZWQgaW50IG5ieXRlcyA9IGxlbiAtIHBvczsKKwkJdTMyIGRhdGEgPSAweGZmZmZmZmZmOworCQl1MzIgc3RzOworCQlpbnQgcmV0OworCisJCWlmIChuYnl0ZXMgPiA0KQorCQkJbmJ5dGVzID0gNDsKKworCQlpZiAodHhidWYpCisJCQltZW1jcHkoJmRhdGEsIHR4YnVmICsgcG9zLCBuYnl0ZXMpOworCisJCXJldCA9IHJlYWRsX3BvbGxfdGltZW91dChuZmMtPnJlZ3MgKyBJTlRfU1RTLCBzdHMsCisJCQkJCSBzdHMgJiBJTlRfVFhfRU1QVFksIDAsIFVTRUNfUEVSX1NFQyk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCXdyaXRlbChkYXRhLCBuZmMtPnJlZ3MgKyBUWEQobmJ5dGVzICUgNCkpOworCisJCXJldCA9IHJlYWRsX3BvbGxfdGltZW91dChuZmMtPnJlZ3MgKyBJTlRfU1RTLCBzdHMsCisJCQkJCSBzdHMgJiBJTlRfVFhfRU1QVFksIDAsIFVTRUNfUEVSX1NFQyk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCXJldCA9IHJlYWRsX3BvbGxfdGltZW91dChuZmMtPnJlZ3MgKyBJTlRfU1RTLCBzdHMsCisJCQkJCSBzdHMgJiBJTlRfUlhfTk9UX0VNUFRZLCAwLAorCQkJCQkgVVNFQ19QRVJfU0VDKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJZGF0YSA9IHJlYWRsKG5mYy0+cmVncyArIFJYRCk7CisJCWlmIChyeGJ1ZikgeworCQkJZGF0YSA+Pj0gKDggKiAoNCAtIG5ieXRlcykpOworCQkJbWVtY3B5KHJ4YnVmICsgcG9zLCAmZGF0YSwgbmJ5dGVzKTsKKwkJfQorCQlpZiAocmVhZGwobmZjLT5yZWdzICsgSU5UX1NUUykgJiBJTlRfUlhfTk9UX0VNUFRZKQorCQkJZGV2X3dhcm4obmZjLT5kZXYsICJSWCBGSUZPIG5vdCBlbXB0eVxuIik7CisKKwkJcG9zICs9IG5ieXRlczsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBteGljX25mY19leGVjX29wKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCisJCQkgICAgY29uc3Qgc3RydWN0IG5hbmRfb3BlcmF0aW9uICpvcCwgYm9vbCBjaGVja19vbmx5KQoreworCXN0cnVjdCBteGljX25hbmRfY3RsciAqbmZjID0gbmFuZF9nZXRfY29udHJvbGxlcl9kYXRhKGNoaXApOworCWNvbnN0IHN0cnVjdCBuYW5kX29wX2luc3RyICppbnN0ciA9IE5VTEw7CisJaW50IHJldCA9IDA7CisJdW5zaWduZWQgaW50IG9wX2lkOworCisJbXhpY19uZmNfY3NfZW5hYmxlKG5mYyk7CisJaW5pdF9jb21wbGV0aW9uKCZuZmMtPmNvbXBsZXRlKTsKKwlmb3IgKG9wX2lkID0gMDsgb3BfaWQgPCBvcC0+bmluc3Ryczsgb3BfaWQrKykgeworCQlpbnN0ciA9ICZvcC0+aW5zdHJzW29wX2lkXTsKKworCQlzd2l0Y2ggKGluc3RyLT50eXBlKSB7CisJCWNhc2UgTkFORF9PUF9DTURfSU5TVFI6CisJCQl3cml0ZWwoMCwgbmZjLT5yZWdzICsgSENfRU4pOworCQkJd3JpdGVsKEhDX0VOX0JJVCwgbmZjLT5yZWdzICsgSENfRU4pOworCQkJd3JpdGVsKE9QX0NNRF9CVVNXKE9QX0JVU1dfOCkgfCAgT1BfRFVNTVlfQ1lDKDB4M0YpIHwKKwkJCSAgICAgICBPUF9DTURfQllURVMoMCksIG5mYy0+cmVncyArIFNTX0NUUkwoMCkpOworCisJCQlyZXQgPSBteGljX25mY19kYXRhX3hmZXIobmZjLAorCQkJCQkJICZpbnN0ci0+Y3R4LmNtZC5vcGNvZGUsCisJCQkJCQkgTlVMTCwgMSk7CisJCQlicmVhazsKKworCQljYXNlIE5BTkRfT1BfQUREUl9JTlNUUjoKKwkJCXdyaXRlbChPUF9BRERSX0JVU1coT1BfQlVTV184KSB8IE9QX0RVTU1ZX0NZQygweDNGKSB8CisJCQkgICAgICAgT1BfQUREUl9CWVRFUyhpbnN0ci0+Y3R4LmFkZHIubmFkZHJzKSwKKwkJCSAgICAgICBuZmMtPnJlZ3MgKyBTU19DVFJMKDApKTsKKwkJCXJldCA9IG14aWNfbmZjX2RhdGFfeGZlcihuZmMsCisJCQkJCQkgaW5zdHItPmN0eC5hZGRyLmFkZHJzLCBOVUxMLAorCQkJCQkJIGluc3RyLT5jdHguYWRkci5uYWRkcnMpOworCQkJYnJlYWs7CisKKwkJY2FzZSBOQU5EX09QX0RBVEFfSU5fSU5TVFI6CisJCQl3cml0ZWwoMHgwLCBuZmMtPnJlZ3MgKyBPTkZJX0RJTl9DTlQoMCkpOworCQkJd3JpdGVsKE9QX0RBVEFfQlVTVyhPUF9CVVNXXzgpIHwgT1BfRFVNTVlfQ1lDKDB4M0YpIHwKKwkJCSAgICAgICBPUF9SRUFELCBuZmMtPnJlZ3MgKyBTU19DVFJMKDApKTsKKwkJCXJldCA9IG14aWNfbmZjX2RhdGFfeGZlcihuZmMsIE5VTEwsCisJCQkJCQkgaW5zdHItPmN0eC5kYXRhLmJ1Zi5pbiwKKwkJCQkJCSBpbnN0ci0+Y3R4LmRhdGEubGVuKTsKKwkJCWJyZWFrOworCisJCWNhc2UgTkFORF9PUF9EQVRBX09VVF9JTlNUUjoKKwkJCXdyaXRlbChpbnN0ci0+Y3R4LmRhdGEubGVuLAorCQkJICAgICAgIG5mYy0+cmVncyArIE9ORklfRElOX0NOVCgwKSk7CisJCQl3cml0ZWwoT1BfREFUQV9CVVNXKE9QX0JVU1dfOCkgfCBPUF9EVU1NWV9DWUMoMHgzRiksCisJCQkgICAgICAgbmZjLT5yZWdzICsgU1NfQ1RSTCgwKSk7CisJCQlyZXQgPSBteGljX25mY19kYXRhX3hmZXIobmZjLAorCQkJCQkJIGluc3RyLT5jdHguZGF0YS5idWYub3V0LCBOVUxMLAorCQkJCQkJIGluc3RyLT5jdHguZGF0YS5sZW4pOworCQkJYnJlYWs7CisKKwkJY2FzZSBOQU5EX09QX1dBSVRSRFlfSU5TVFI6CisJCQlyZXQgPSBteGljX25mY193YWl0X3JlYWR5KGNoaXApOworCQkJYnJlYWs7CisJCX0KKwl9CisJbXhpY19uZmNfY3NfZGlzYWJsZShuZmMpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBteGljX25mY19zZXR1cF9kYXRhX2ludGVyZmFjZShzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCBpbnQgY2hpcG5yLAorCQkJCQkgY29uc3Qgc3RydWN0IG5hbmRfZGF0YV9pbnRlcmZhY2UgKmNvbmYpCit7CisJc3RydWN0IG14aWNfbmFuZF9jdGxyICpuZmMgPSBuYW5kX2dldF9jb250cm9sbGVyX2RhdGEoY2hpcCk7CisJY29uc3Qgc3RydWN0IG5hbmRfc2RyX3RpbWluZ3MgKnNkcjsKKwl1bnNpZ25lZCBsb25nIGZyZXE7CisJaW50IHJldDsKKworCXNkciA9IG5hbmRfZ2V0X3Nkcl90aW1pbmdzKGNvbmYpOworCWlmIChJU19FUlIoc2RyKSkKKwkJcmV0dXJuIFBUUl9FUlIoc2RyKTsKKworCWlmIChjaGlwbnIgPT0gTkFORF9EQVRBX0lGQUNFX0NIRUNLX09OTFkpCisJCXJldHVybiAwOworCisJZnJlcSA9IE5TRUNfUEVSX1NFQyAvIChzZHItPnRSQ19taW4gLyAxMDAwKTsKKworCXJldCA9ICBteGljX25mY19zZXRfZnJlcShuZmMsIGZyZXEpOworCWlmIChyZXQpCisJCWRldl9lcnIobmZjLT5kZXYsICJzZXQgZnJlcTolbGQgZmFpbGVkXG4iLCBmcmVxKTsKKworCWlmIChzZHItPnRSQ19taW4gPCAzMDAwMCkKKwkJd3JpdGVsKERBVEFfU1RST0JfRURPX0VOLCBuZmMtPnJlZ3MgKyBEQVRBX1NUUk9CKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG5hbmRfY29udHJvbGxlcl9vcHMgbXhpY19uYW5kX2NvbnRyb2xsZXJfb3BzID0geworCS5leGVjX29wID0gbXhpY19uZmNfZXhlY19vcCwKKwkuc2V0dXBfZGF0YV9pbnRlcmZhY2UgPSBteGljX25mY19zZXR1cF9kYXRhX2ludGVyZmFjZSwKK307CisKK3N0YXRpYyBpbnQgbXhpY19uZmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5hbmRfbnAsICpucCA9IHBkZXYtPmRldi5vZl9ub2RlOworCXN0cnVjdCBtdGRfaW5mbyAqbXRkOworCXN0cnVjdCBteGljX25hbmRfY3RsciAqbmZjOworCXN0cnVjdCBuYW5kX2NoaXAgKm5hbmRfY2hpcDsKKwlpbnQgZXJyOworCWludCBpcnE7CisKKwluZmMgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKHN0cnVjdCBteGljX25hbmRfY3RsciksCisJCQkgICBHRlBfS0VSTkVMKTsKKwlpZiAoIW5mYykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwluZmMtPnBzX2NsayA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCAicHMiKTsKKwlpZiAoSVNfRVJSKG5mYy0+cHNfY2xrKSkKKwkJcmV0dXJuIFBUUl9FUlIobmZjLT5wc19jbGspOworCisJbmZjLT5zZW5kX2NsayA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCAic2VuZCIpOworCWlmIChJU19FUlIobmZjLT5zZW5kX2NsaykpCisJCXJldHVybiBQVFJfRVJSKG5mYy0+c2VuZF9jbGspOworCisJbmZjLT5zZW5kX2RseV9jbGsgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgInNlbmRfZGx5Iik7CisJaWYgKElTX0VSUihuZmMtPnNlbmRfZGx5X2NsaykpCisJCXJldHVybiBQVFJfRVJSKG5mYy0+c2VuZF9kbHlfY2xrKTsKKworCW5mYy0+cmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKwlpZiAoSVNfRVJSKG5mYy0+cmVncykpCisJCXJldHVybiBQVFJfRVJSKG5mYy0+cmVncyk7CisKKwluYW5kX2NoaXAgPSAmbmZjLT5jaGlwOworCW10ZCA9IG5hbmRfdG9fbXRkKG5hbmRfY2hpcCk7CisJbXRkLT5kZXYucGFyZW50ID0gJnBkZXYtPmRldjsKKworCWZvcl9lYWNoX2NoaWxkX29mX25vZGUobnAsIG5hbmRfbnApCisJCW5hbmRfc2V0X2ZsYXNoX25vZGUobmFuZF9jaGlwLCBuYW5kX25wKTsKKworCW5hbmRfY2hpcC0+cHJpdiA9IG5mYzsKKwluZmMtPmRldiA9ICZwZGV2LT5kZXY7CisJbmZjLT5jb250cm9sbGVyLm9wcyA9ICZteGljX25hbmRfY29udHJvbGxlcl9vcHM7CisJbmFuZF9jb250cm9sbGVyX2luaXQoJm5mYy0+Y29udHJvbGxlcik7CisJbmFuZF9jaGlwLT5jb250cm9sbGVyID0gJm5mYy0+Y29udHJvbGxlcjsKKworCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJaWYgKGlycSA8IDApIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJldHJpZXZlIGlycVxuIik7CisJCXJldHVybiBpcnE7CisJfQorCisJbXhpY19uZmNfaHdfaW5pdChuZmMpOworCisJZXJyID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBpcnEsIG14aWNfbmZjX2lzciwKKwkJCSAgICAgICAwLCAibXhpYy1uZmMiLCBuZmMpOworCWlmIChlcnIpCisJCWdvdG8gZmFpbDsKKworCWVyciA9IG5hbmRfc2NhbihuYW5kX2NoaXAsIDEpOworCWlmIChlcnIpCisJCWdvdG8gZmFpbDsKKworCWVyciA9IG10ZF9kZXZpY2VfcmVnaXN0ZXIobXRkLCBOVUxMLCAwKTsKKwlpZiAoZXJyKQorCQlnb3RvIGZhaWw7CisKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBuZmMpOworCXJldHVybiAwOworCitmYWlsOgorCW14aWNfbmZjX2Nsa19kaXNhYmxlKG5mYyk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBteGljX25mY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgbXhpY19uYW5kX2N0bHIgKm5mYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJbmFuZF9yZWxlYXNlKCZuZmMtPmNoaXApOworCW14aWNfbmZjX2Nsa19kaXNhYmxlKG5mYyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG14aWNfbmZjX29mX2lkc1tdID0geworCXsgLmNvbXBhdGlibGUgPSAibXhpYyxtdWx0aS1pdGZjLXYwMDktbmFuZC1jb250cm9sbGVyIiwgfSwKKwl7fSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBteGljX25mY19vZl9pZHMpOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBteGljX25mY19kcml2ZXIgPSB7CisJLnByb2JlID0gbXhpY19uZmNfcHJvYmUsCisJLnJlbW92ZSA9IG14aWNfbmZjX3JlbW92ZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJteGljLW5mYyIsCisJCS5vZl9tYXRjaF90YWJsZSA9IG14aWNfbmZjX29mX2lkcywKKwl9LAorfTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobXhpY19uZmNfZHJpdmVyKTsKKworTU9EVUxFX0FVVEhPUigiTWFzb24gWWFuZyA8bWFzb25jY3lhbmdAbXhpYy5jb20udHc+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIk1hY3Jvbml4IHJhdyBOQU5EIGNvbnRyb2xsZXIgZHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2Jhc2UuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmFzZS5jCmluZGV4IDkxZjA0NmQuLjVjMmMzMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmFzZS5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmFzZS5jCkBAIC00MTEyLDcgKzQxMTIsNyBAQCBzdGF0aWMgaW50IG5hbmRfd3JpdGVfb29iKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgdG8sCiAJCQkgIHN0cnVjdCBtdGRfb29iX29wcyAqb3BzKQogewogCXN0cnVjdCBuYW5kX2NoaXAgKmNoaXAgPSBtdGRfdG9fbmFuZChtdGQpOwotCWludCByZXQgPSAtRU5PVFNVUFA7CisJaW50IHJldDsKIAogCW9wcy0+cmV0bGVuID0gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9iYnQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmJ0LmMKaW5kZXggMmVmMTVlZi4uOTYwNDVkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9iYnQuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2JidC5jCkBAIC0xMjMyLDcgKzEyMzIsNyBAQCBzdGF0aWMgaW50IG5hbmRfc2Nhbl9iYnQoc3RydWN0IG5hbmRfY2hpcCAqdGhpcywgc3RydWN0IG5hbmRfYmJ0X2Rlc2NyICpiZCkKIAlpZiAoIXRkKSB7CiAJCWlmICgocmVzID0gbmFuZF9tZW1vcnlfYmJ0KHRoaXMsIGJkKSkpIHsKIAkJCXByX2VycigibmFuZF9iYnQ6IGNhbid0IHNjYW4gZmxhc2ggYW5kIGJ1aWxkIHRoZSBSQU0tYmFzZWQgQkJUXG4iKTsKLQkJCWdvdG8gZXJyOworCQkJZ290byBlcnJfZnJlZV9iYnQ7CiAJCX0KIAkJcmV0dXJuIDA7CiAJfQpAQCAtMTI0NSw3ICsxMjQ1LDcgQEAgc3RhdGljIGludCBuYW5kX3NjYW5fYmJ0KHN0cnVjdCBuYW5kX2NoaXAgKnRoaXMsIHN0cnVjdCBuYW5kX2JidF9kZXNjciAqYmQpCiAJYnVmID0gdm1hbGxvYyhsZW4pOwogCWlmICghYnVmKSB7CiAJCXJlcyA9IC1FTk9NRU07Ci0JCWdvdG8gZXJyOworCQlnb3RvIGVycl9mcmVlX2JidDsKIAl9CiAKIAkvKiBJcyB0aGUgYmJ0IGF0IGEgZ2l2ZW4gcGFnZT8gKi8KQEAgLTEyNTgsNyArMTI1OCw3IEBAIHN0YXRpYyBpbnQgbmFuZF9zY2FuX2JidChzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzLCBzdHJ1Y3QgbmFuZF9iYnRfZGVzY3IgKmJkKQogCiAJcmVzID0gY2hlY2tfY3JlYXRlKHRoaXMsIGJ1ZiwgYmQpOwogCWlmIChyZXMpCi0JCWdvdG8gZXJyOworCQlnb3RvIGVycl9mcmVlX2J1ZjsKIAogCS8qIFByZXZlbnQgdGhlIGJidCByZWdpb25zIGZyb20gZXJhc2luZyAvIHdyaXRpbmcgKi8KIAltYXJrX2JidF9yZWdpb24odGhpcywgdGQpOwpAQCAtMTI2OCw3ICsxMjY4LDkgQEAgc3RhdGljIGludCBuYW5kX3NjYW5fYmJ0KHN0cnVjdCBuYW5kX2NoaXAgKnRoaXMsIHN0cnVjdCBuYW5kX2JidF9kZXNjciAqYmQpCiAJdmZyZWUoYnVmKTsKIAlyZXR1cm4gMDsKIAotZXJyOgorZXJyX2ZyZWVfYnVmOgorCXZmcmVlKGJ1Zik7CitlcnJfZnJlZV9iYnQ6CiAJa2ZyZWUodGhpcy0+YmJ0KTsKIAl0aGlzLT5iYnQgPSBOVUxMOwogCXJldHVybiByZXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9udWM5MDBfbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbnVjOTAwX25hbmQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTNiZjdiMi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9udWM5MDBfbmFuZC5jCisrKyAvZGV2L251bGwKQEAgLTEsMzA0ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAwOSBOdXZvdG9uIHRlY2hub2xvZ3kgY29ycG9yYXRpb24uCi0gKgotICogV2FuIFpvbmdTaHVuIDxtY3Vvcy5jb21AZ21haWwuY29tPgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgotI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgotCi0jaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgotI2luY2x1ZGUgPGxpbnV4L210ZC9yYXduYW5kLmg+Ci0jaW5jbHVkZSA8bGludXgvbXRkL3BhcnRpdGlvbnMuaD4KLQotI2RlZmluZSBSRUdfRk1JQ1NSICAgCTB4MDAKLSNkZWZpbmUgUkVHX1NNQ1NSICAgIAkweGEwCi0jZGVmaW5lIFJFR19TTUlTUiAgICAJMHhhYwotI2RlZmluZSBSRUdfU01DTUQgICAgCTB4YjAKLSNkZWZpbmUgUkVHX1NNQUREUiAgIAkweGI0Ci0jZGVmaW5lIFJFR19TTURBVEEgICAJMHhiOAotCi0jZGVmaW5lIFJFU0VUX0ZNSQkweDAxCi0jZGVmaW5lIE5BTkRfRU4JCTB4MDgKLSNkZWZpbmUgUkVBRFlCVVNZCSgweDAxIDw8IDE4KQotCi0jZGVmaW5lIFNXUlNUCQkweDAxCi0jZGVmaW5lIFBTSVpFCQkoMHgwMSA8PCAzKQotI2RlZmluZSBETUFSV0VOCQkoMHgwMyA8PCAxKQotI2RlZmluZSBCVVNXSUQJCSgweDAxIDw8IDQpCi0jZGVmaW5lIEVDQzRFTgkJKDB4MDEgPDwgNSkKLSNkZWZpbmUgV1AJCSgweDAxIDw8IDI0KQotI2RlZmluZSBOQU5EQ1MJCSgweDAxIDw8IDI1KQotI2RlZmluZSBFTkRBRERSCQkoMHgwMSA8PCAzMSkKLQotI2RlZmluZSByZWFkX2RhdGFfcmVnKGRldikJCVwKLQlfX3Jhd19yZWFkbCgoZGV2KS0+cmVnICsgUkVHX1NNREFUQSkKLQotI2RlZmluZSB3cml0ZV9kYXRhX3JlZyhkZXYsIHZhbCkJXAotCV9fcmF3X3dyaXRlbCgodmFsKSwgKGRldiktPnJlZyArIFJFR19TTURBVEEpCi0KLSNkZWZpbmUgd3JpdGVfY21kX3JlZyhkZXYsIHZhbCkJCVwKLQlfX3Jhd193cml0ZWwoKHZhbCksIChkZXYpLT5yZWcgKyBSRUdfU01DTUQpCi0KLSNkZWZpbmUgd3JpdGVfYWRkcl9yZWcoZGV2LCB2YWwpCVwKLQlfX3Jhd193cml0ZWwoKHZhbCksIChkZXYpLT5yZWcgKyBSRUdfU01BRERSKQotCi1zdHJ1Y3QgbnVjOTAwX25hbmQgewotCXN0cnVjdCBuYW5kX2NoaXAgY2hpcDsKLQl2b2lkIF9faW9tZW0gKnJlZzsKLQlzdHJ1Y3QgY2xrICpjbGs7Ci0Jc3BpbmxvY2tfdCBsb2NrOwotfTsKLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgbnVjOTAwX25hbmQgKm10ZF90b19udWM5MDAoc3RydWN0IG10ZF9pbmZvICptdGQpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihtdGRfdG9fbmFuZChtdGQpLCBzdHJ1Y3QgbnVjOTAwX25hbmQsIGNoaXApOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG10ZF9wYXJ0aXRpb24gcGFydGl0aW9uc1tdID0gewotCXsKLQkgLm5hbWUgPSAiTkFORCBGUyAwIiwKLQkgLm9mZnNldCA9IDAsCi0JIC5zaXplID0gOCAqIDEwMjQgKiAxMDI0Ci0JfSwKLQl7Ci0JIC5uYW1lID0gIk5BTkQgRlMgMSIsCi0JIC5vZmZzZXQgPSBNVERQQVJUX09GU19BUFBFTkQsCi0JIC5zaXplID0gTVREUEFSVF9TSVpfRlVMTAotCX0KLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIG51YzkwMF9uYW5kX3JlYWRfYnl0ZShzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQotewotCXVuc2lnbmVkIGNoYXIgcmV0OwotCXN0cnVjdCBudWM5MDBfbmFuZCAqbmFuZCA9IG10ZF90b19udWM5MDAobmFuZF90b19tdGQoY2hpcCkpOwotCi0JcmV0ID0gKHVuc2lnbmVkIGNoYXIpcmVhZF9kYXRhX3JlZyhuYW5kKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyB2b2lkIG51YzkwMF9uYW5kX3JlYWRfYnVmKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCi0JCQkJIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGxlbikKLXsKLQlpbnQgaTsKLQlzdHJ1Y3QgbnVjOTAwX25hbmQgKm5hbmQgPSBtdGRfdG9fbnVjOTAwKG5hbmRfdG9fbXRkKGNoaXApKTsKLQotCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKLQkJYnVmW2ldID0gKHVuc2lnbmVkIGNoYXIpcmVhZF9kYXRhX3JlZyhuYW5kKTsKLX0KLQotc3RhdGljIHZvaWQgbnVjOTAwX25hbmRfd3JpdGVfYnVmKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCi0JCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4pCi17Ci0JaW50IGk7Ci0Jc3RydWN0IG51YzkwMF9uYW5kICpuYW5kID0gbXRkX3RvX251YzkwMChuYW5kX3RvX210ZChjaGlwKSk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCi0JCXdyaXRlX2RhdGFfcmVnKG5hbmQsIGJ1ZltpXSk7Ci19Ci0KLXN0YXRpYyBpbnQgbnVjOTAwX2NoZWNrX3JiKHN0cnVjdCBudWM5MDBfbmFuZCAqbmFuZCkKLXsKLQl1bnNpZ25lZCBpbnQgdmFsOwotCXNwaW5fbG9jaygmbmFuZC0+bG9jayk7Ci0JdmFsID0gX19yYXdfcmVhZGwobmFuZC0+cmVnICsgUkVHX1NNSVNSKTsKLQl2YWwgJj0gUkVBRFlCVVNZOwotCXNwaW5fdW5sb2NrKCZuYW5kLT5sb2NrKTsKLQotCXJldHVybiB2YWw7Ci19Ci0KLXN0YXRpYyBpbnQgbnVjOTAwX25hbmRfZGV2cmVhZHkoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKLXsKLQlzdHJ1Y3QgbnVjOTAwX25hbmQgKm5hbmQgPSBtdGRfdG9fbnVjOTAwKG5hbmRfdG9fbXRkKGNoaXApKTsKLQlpbnQgcmVhZHk7Ci0KLQlyZWFkeSA9IChudWM5MDBfY2hlY2tfcmIobmFuZCkpID8gMSA6IDA7Ci0JcmV0dXJuIHJlYWR5OwotfQotCi1zdGF0aWMgdm9pZCBudWM5MDBfbmFuZF9jb21tYW5kX2xwKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCi0JCQkJICAgdW5zaWduZWQgaW50IGNvbW1hbmQsCi0JCQkJICAgaW50IGNvbHVtbiwgaW50IHBhZ2VfYWRkcikKLXsKLQlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9IG5hbmRfdG9fbXRkKGNoaXApOwotCXN0cnVjdCBudWM5MDBfbmFuZCAqbmFuZCA9IG10ZF90b19udWM5MDAobXRkKTsKLQotCWlmIChjb21tYW5kID09IE5BTkRfQ01EX1JFQURPT0IpIHsKLQkJY29sdW1uICs9IG10ZC0+d3JpdGVzaXplOwotCQljb21tYW5kID0gTkFORF9DTURfUkVBRDA7Ci0JfQotCi0Jd3JpdGVfY21kX3JlZyhuYW5kLCBjb21tYW5kICYgMHhmZik7Ci0KLQlpZiAoY29sdW1uICE9IC0xIHx8IHBhZ2VfYWRkciAhPSAtMSkgewotCi0JCWlmIChjb2x1bW4gIT0gLTEpIHsKLQkJCWlmIChjaGlwLT5vcHRpb25zICYgTkFORF9CVVNXSURUSF8xNiAmJgotCQkJCQkhbmFuZF9vcGNvZGVfOGJpdHMoY29tbWFuZCkpCi0JCQkJY29sdW1uID4+PSAxOwotCQkJd3JpdGVfYWRkcl9yZWcobmFuZCwgY29sdW1uKTsKLQkJCXdyaXRlX2FkZHJfcmVnKG5hbmQsIGNvbHVtbiA+PiA4IHwgRU5EQUREUik7Ci0JCX0KLQkJaWYgKHBhZ2VfYWRkciAhPSAtMSkgewotCQkJd3JpdGVfYWRkcl9yZWcobmFuZCwgcGFnZV9hZGRyKTsKLQotCQkJaWYgKGNoaXAtPm9wdGlvbnMgJiBOQU5EX1JPV19BRERSXzMpIHsKLQkJCQl3cml0ZV9hZGRyX3JlZyhuYW5kLCBwYWdlX2FkZHIgPj4gOCk7Ci0JCQkJd3JpdGVfYWRkcl9yZWcobmFuZCwgcGFnZV9hZGRyID4+IDE2IHwgRU5EQUREUik7Ci0JCQl9IGVsc2UgewotCQkJCXdyaXRlX2FkZHJfcmVnKG5hbmQsIHBhZ2VfYWRkciA+PiA4IHwgRU5EQUREUik7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQlzd2l0Y2ggKGNvbW1hbmQpIHsKLQljYXNlIE5BTkRfQ01EX0NBQ0hFRFBST0c6Ci0JY2FzZSBOQU5EX0NNRF9QQUdFUFJPRzoKLQljYXNlIE5BTkRfQ01EX0VSQVNFMToKLQljYXNlIE5BTkRfQ01EX0VSQVNFMjoKLQljYXNlIE5BTkRfQ01EX1NFUUlOOgotCWNhc2UgTkFORF9DTURfUk5ESU46Ci0JY2FzZSBOQU5EX0NNRF9TVEFUVVM6Ci0JCXJldHVybjsKLQotCWNhc2UgTkFORF9DTURfUkVTRVQ6Ci0JCWlmIChjaGlwLT5sZWdhY3kuZGV2X3JlYWR5KQotCQkJYnJlYWs7Ci0JCXVkZWxheShjaGlwLT5sZWdhY3kuY2hpcF9kZWxheSk7Ci0KLQkJd3JpdGVfY21kX3JlZyhuYW5kLCBOQU5EX0NNRF9TVEFUVVMpOwotCQl3cml0ZV9jbWRfcmVnKG5hbmQsIGNvbW1hbmQpOwotCi0JCXdoaWxlICghbnVjOTAwX2NoZWNrX3JiKG5hbmQpKQotCQkJOwotCi0JCXJldHVybjsKLQotCWNhc2UgTkFORF9DTURfUk5ET1VUOgotCQl3cml0ZV9jbWRfcmVnKG5hbmQsIE5BTkRfQ01EX1JORE9VVFNUQVJUKTsKLQkJcmV0dXJuOwotCi0JY2FzZSBOQU5EX0NNRF9SRUFEMDoKLQkJd3JpdGVfY21kX3JlZyhuYW5kLCBOQU5EX0NNRF9SRUFEU1RBUlQpOwotCQkvKiBmYWxsIHRocm91Z2ggKi8KLQotCWRlZmF1bHQ6Ci0KLQkJaWYgKCFjaGlwLT5sZWdhY3kuZGV2X3JlYWR5KSB7Ci0JCQl1ZGVsYXkoY2hpcC0+bGVnYWN5LmNoaXBfZGVsYXkpOwotCQkJcmV0dXJuOwotCQl9Ci0JfQotCi0JLyogQXBwbHkgdGhpcyBzaG9ydCBkZWxheSBhbHdheXMgdG8gZW5zdXJlIHRoYXQgd2UgZG8gd2FpdCB0V0IgaW4KLQkgKiBhbnkgY2FzZSBvbiBhbnkgbWFjaGluZS4gKi8KLQluZGVsYXkoMTAwKTsKLQotCXdoaWxlICghY2hpcC0+bGVnYWN5LmRldl9yZWFkeShjaGlwKSkKLQkJOwotfQotCi0KLXN0YXRpYyB2b2lkIG51YzkwMF9uYW5kX2VuYWJsZShzdHJ1Y3QgbnVjOTAwX25hbmQgKm5hbmQpCi17Ci0JdW5zaWduZWQgaW50IHZhbDsKLQlzcGluX2xvY2soJm5hbmQtPmxvY2spOwotCV9fcmF3X3dyaXRlbChSRVNFVF9GTUksIChuYW5kLT5yZWcgKyBSRUdfRk1JQ1NSKSk7Ci0KLQl2YWwgPSBfX3Jhd19yZWFkbChuYW5kLT5yZWcgKyBSRUdfRk1JQ1NSKTsKLQotCWlmICghKHZhbCAmIE5BTkRfRU4pKQotCQlfX3Jhd193cml0ZWwodmFsIHwgTkFORF9FTiwgbmFuZC0+cmVnICsgUkVHX0ZNSUNTUik7Ci0KLQl2YWwgPSBfX3Jhd19yZWFkbChuYW5kLT5yZWcgKyBSRUdfU01DU1IpOwotCi0JdmFsICY9IH4oU1dSU1R8UFNJWkV8RE1BUldFTnxCVVNXSUR8RUNDNEVOfE5BTkRDUyk7Ci0JdmFsIHw9IFdQOwotCi0JX19yYXdfd3JpdGVsKHZhbCwgbmFuZC0+cmVnICsgUkVHX1NNQ1NSKTsKLQotCXNwaW5fdW5sb2NrKCZuYW5kLT5sb2NrKTsKLX0KLQotc3RhdGljIGludCBudWM5MDBfbmFuZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBudWM5MDBfbmFuZCAqbnVjOTAwX25hbmQ7Ci0Jc3RydWN0IG5hbmRfY2hpcCAqY2hpcDsKLQlzdHJ1Y3QgbXRkX2luZm8gKm10ZDsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQotCW51YzkwMF9uYW5kID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZihzdHJ1Y3QgbnVjOTAwX25hbmQpLAotCQkJCSAgIEdGUF9LRVJORUwpOwotCWlmICghbnVjOTAwX25hbmQpCi0JCXJldHVybiAtRU5PTUVNOwotCWNoaXAgPSAmKG51YzkwMF9uYW5kLT5jaGlwKTsKLQltdGQgPSBuYW5kX3RvX210ZChjaGlwKTsKLQotCW10ZC0+ZGV2LnBhcmVudAkJPSAmcGRldi0+ZGV2OwotCXNwaW5fbG9ja19pbml0KCZudWM5MDBfbmFuZC0+bG9jayk7Ci0KLQludWM5MDBfbmFuZC0+Y2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsIE5VTEwpOwotCWlmIChJU19FUlIobnVjOTAwX25hbmQtPmNsaykpCi0JCXJldHVybiAtRU5PRU5UOwotCWNsa19lbmFibGUobnVjOTAwX25hbmQtPmNsayk7Ci0KLQljaGlwLT5sZWdhY3kuY21kZnVuYwk9IG51YzkwMF9uYW5kX2NvbW1hbmRfbHA7Ci0JY2hpcC0+bGVnYWN5LmRldl9yZWFkeQk9IG51YzkwMF9uYW5kX2RldnJlYWR5OwotCWNoaXAtPmxlZ2FjeS5yZWFkX2J5dGUJPSBudWM5MDBfbmFuZF9yZWFkX2J5dGU7Ci0JY2hpcC0+bGVnYWN5LndyaXRlX2J1Zgk9IG51YzkwMF9uYW5kX3dyaXRlX2J1ZjsKLQljaGlwLT5sZWdhY3kucmVhZF9idWYJPSBudWM5MDBfbmFuZF9yZWFkX2J1ZjsKLQljaGlwLT5sZWdhY3kuY2hpcF9kZWxheQk9IDUwOwotCWNoaXAtPm9wdGlvbnMJCT0gMDsKLQljaGlwLT5lY2MubW9kZQkJPSBOQU5EX0VDQ19TT0ZUOwotCWNoaXAtPmVjYy5hbGdvCQk9IE5BTkRfRUNDX0hBTU1JTkc7Ci0KLQlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwotCW51YzkwMF9uYW5kLT5yZWcgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKLQlpZiAoSVNfRVJSKG51YzkwMF9uYW5kLT5yZWcpKQotCQlyZXR1cm4gUFRSX0VSUihudWM5MDBfbmFuZC0+cmVnKTsKLQotCW51YzkwMF9uYW5kX2VuYWJsZShudWM5MDBfbmFuZCk7Ci0KLQlpZiAobmFuZF9zY2FuKGNoaXAsIDEpKQotCQlyZXR1cm4gLUVOWElPOwotCi0JbXRkX2RldmljZV9yZWdpc3RlcihtdGQsIHBhcnRpdGlvbnMsIEFSUkFZX1NJWkUocGFydGl0aW9ucykpOwotCi0JcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgbnVjOTAwX25hbmQpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbnVjOTAwX25hbmRfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IG51YzkwMF9uYW5kICpudWM5MDBfbmFuZCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotCi0JbmFuZF9yZWxlYXNlKCZudWM5MDBfbmFuZC0+Y2hpcCk7Ci0JY2xrX2Rpc2FibGUobnVjOTAwX25hbmQtPmNsayk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbnVjOTAwX25hbmRfZHJpdmVyID0gewotCS5wcm9iZQkJPSBudWM5MDBfbmFuZF9wcm9iZSwKLQkucmVtb3ZlCQk9IG51YzkwMF9uYW5kX3JlbW92ZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAibnVjOTAwLWZtaSIsCi0JfSwKLX07Ci0KLW1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobnVjOTAwX25hbmRfZHJpdmVyKTsKLQotTU9EVUxFX0FVVEhPUigiV2FuIFpvbmdTaHVuIDxtY3Vvcy5jb21AZ21haWwuY29tPiIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJ3OTBwOTEwL05VQzl4eCBuYW5kIGRyaXZlciEiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06bnVjOTAwLWZtaSIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvb21hcDIuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L29tYXAyLmMKaW5kZXggOGQ4ODFhMi4uNmVjNjVmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvb21hcDIuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9vbWFwMi5jCkBAIC0xNTAxLDcgKzE1MDEsNyBAQCBzdGF0aWMgaW50IG9tYXBfZWxtX2NvcnJlY3RfZGF0YShzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCB1X2NoYXIgKmRhdGEsCiAJCX0KIAogCQkvKiBVcGRhdGUgbnVtYmVyIG9mIGNvcnJlY3RhYmxlIGVycm9ycyAqLwotCQlzdGF0ICs9IGVycl92ZWNbaV0uZXJyb3JfY291bnQ7CisJCXN0YXQgPSBtYXhfdCh1bnNpZ25lZCBpbnQsIHN0YXQsIGVycl92ZWNbaV0uZXJyb3JfY291bnQpOwogCiAJCS8qIFVwZGF0ZSBwYWdlIGRhdGEgd2l0aCBzZWN0b3Igc2l6ZSAqLwogCQlkYXRhICs9IGVjYy0+c2l6ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L294bmFzX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L294bmFzX25hbmQuYwppbmRleCAzMGM1MWY3Li5jNDNjYjRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9veG5hc19uYW5kLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvb3huYXNfbmFuZC5jCkBAIC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIGludCBveG5hc19uYW5kX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQkJICAgIEdGUF9LRVJORUwpOwogCQlpZiAoIWNoaXApIHsKIAkJCWVyciA9IC1FTk9NRU07Ci0JCQlnb3RvIGVycl9jbGtfdW5wcmVwYXJlOworCQkJZ290byBlcnJfcmVsZWFzZV9jaGlsZDsKIAkJfQogCiAJCWNoaXAtPmNvbnRyb2xsZXIgPSAmb3huYXMtPmJhc2U7CkBAIC0xMzcsMTIgKzEzNywxMiBAQCBzdGF0aWMgaW50IG94bmFzX25hbmRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJLyogU2NhbiB0byBmaW5kIGV4aXN0ZW5jZSBvZiB0aGUgZGV2aWNlICovCiAJCWVyciA9IG5hbmRfc2NhbihjaGlwLCAxKTsKIAkJaWYgKGVycikKLQkJCWdvdG8gZXJyX2Nsa191bnByZXBhcmU7CisJCQlnb3RvIGVycl9yZWxlYXNlX2NoaWxkOwogCiAJCWVyciA9IG10ZF9kZXZpY2VfcmVnaXN0ZXIobXRkLCBOVUxMLCAwKTsKIAkJaWYgKGVycikgewogCQkJbmFuZF9yZWxlYXNlKGNoaXApOwotCQkJZ290byBlcnJfY2xrX3VucHJlcGFyZTsKKwkJCWdvdG8gZXJyX3JlbGVhc2VfY2hpbGQ7CiAJCX0KIAogCQlveG5hcy0+Y2hpcHNbbmNoaXBzXSA9IGNoaXA7CkBAIC0xNTksNiArMTU5LDggQEAgc3RhdGljIGludCBveG5hc19uYW5kX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlyZXR1cm4gMDsKIAorZXJyX3JlbGVhc2VfY2hpbGQ6CisJb2Zfbm9kZV9wdXQobmFuZF9ucCk7CiBlcnJfY2xrX3VucHJlcGFyZToKIAljbGtfZGlzYWJsZV91bnByZXBhcmUob3huYXMtPmNsayk7CiAJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L3I4NTIuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3I4NTIuYwppbmRleCBkYWUwZDIzLi43Nzc3NDI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9yODUyLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvcjg1Mi5jCkBAIC05OTgsNyArOTk4LDcgQEAgc3RhdGljIHZvaWQgcjg1Ml9zaHV0ZG93bihzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldikKICNpZmRlZiBDT05GSUdfUE1fU0xFRVAKIHN0YXRpYyBpbnQgcjg1Ml9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldmljZSkKIHsKLQlzdHJ1Y3Qgcjg1Ml9kZXZpY2UgKmRldiA9IHBjaV9nZXRfZHJ2ZGF0YSh0b19wY2lfZGV2KGRldmljZSkpOworCXN0cnVjdCByODUyX2RldmljZSAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7CiAKIAlpZiAoZGV2LT5jdGxyZWcgJiBSODUyX0NUTF9DQVJERU5BQkxFKQogCQlyZXR1cm4gLUVCVVNZOwpAQCAtMTAxOSw3ICsxMDE5LDcgQEAgc3RhdGljIGludCByODUyX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2aWNlKQogCiBzdGF0aWMgaW50IHI4NTJfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldmljZSkKIHsKLQlzdHJ1Y3Qgcjg1Ml9kZXZpY2UgKmRldiA9IHBjaV9nZXRfZHJ2ZGF0YSh0b19wY2lfZGV2KGRldmljZSkpOworCXN0cnVjdCByODUyX2RldmljZSAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7CiAKIAlyODUyX2Rpc2FibGVfaXJxcyhkZXYpOwogCXI4NTJfY2FyZF91cGRhdGVfcHJlc2VudChkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvc3RtMzJfZm1jMl9uYW5kLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9zdG0zMl9mbWMyX25hbmQuYwppbmRleCBlNjNhY2MwLi44Y2M4NTJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9zdG0zMl9mbWMyX25hbmQuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9zdG0zMl9mbWMyX25hbmQuYwpAQCAtMTQyNywyMSArMTQyNywxNiBAQCBzdGF0aWMgdm9pZCBzdG0zMl9mbWMyX2NhbGNfdGltaW5ncyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLAogCXN0cnVjdCBzdG0zMl9mbWMyX3RpbWluZ3MgKnRpbXMgPSAmbmFuZC0+dGltaW5nczsKIAl1bnNpZ25lZCBsb25nIGhjbGsgPSBjbGtfZ2V0X3JhdGUoZm1jMi0+Y2xrKTsKIAl1bnNpZ25lZCBsb25nIGhjbGtwID0gTlNFQ19QRVJfU0VDIC8gKGhjbGsgLyAxMDAwKTsKLQlpbnQgdGFyLCB0Y2xyLCB0aGl6LCB0d2FpdCwgdHNldF9tZW0sIHRzZXRfYXR0LCB0aG9sZF9tZW0sIHRob2xkX2F0dDsKKwl1bnNpZ25lZCBsb25nIHRpbWluZywgdGFyLCB0Y2xyLCB0aGl6LCB0d2FpdDsKKwl1bnNpZ25lZCBsb25nIHRzZXRfbWVtLCB0c2V0X2F0dCwgdGhvbGRfbWVtLCB0aG9sZF9hdHQ7CiAKLQl0YXIgPSBoY2xrcDsKLQlpZiAodGFyIDwgc2RydC0+dEFSX21pbikKLQkJdGFyID0gc2RydC0+dEFSX21pbjsKLQl0aW1zLT50YXIgPSBESVZfUk9VTkRfVVAodGFyLCBoY2xrcCkgLSAxOwotCWlmICh0aW1zLT50YXIgPiBGTUMyX1BDUl9USU1JTkdfTUFTSykKLQkJdGltcy0+dGFyID0gRk1DMl9QQ1JfVElNSU5HX01BU0s7CisJdGFyID0gbWF4X3QodW5zaWduZWQgbG9uZywgaGNsa3AsIHNkcnQtPnRBUl9taW4pOworCXRpbWluZyA9IERJVl9ST1VORF9VUCh0YXIsIGhjbGtwKSAtIDE7CisJdGltcy0+dGFyID0gbWluX3QodW5zaWduZWQgbG9uZywgdGltaW5nLCBGTUMyX1BDUl9USU1JTkdfTUFTSyk7CiAKLQl0Y2xyID0gaGNsa3A7Ci0JaWYgKHRjbHIgPCBzZHJ0LT50Q0xSX21pbikKLQkJdGNsciA9IHNkcnQtPnRDTFJfbWluOwotCXRpbXMtPnRjbHIgPSBESVZfUk9VTkRfVVAodGNsciwgaGNsa3ApIC0gMTsKLQlpZiAodGltcy0+dGNsciA+IEZNQzJfUENSX1RJTUlOR19NQVNLKQotCQl0aW1zLT50Y2xyID0gRk1DMl9QQ1JfVElNSU5HX01BU0s7CisJdGNsciA9IG1heF90KHVuc2lnbmVkIGxvbmcsIGhjbGtwLCBzZHJ0LT50Q0xSX21pbik7CisJdGltaW5nID0gRElWX1JPVU5EX1VQKHRjbHIsIGhjbGtwKSAtIDE7CisJdGltcy0+dGNsciA9IG1pbl90KHVuc2lnbmVkIGxvbmcsIHRpbWluZywgRk1DMl9QQ1JfVElNSU5HX01BU0spOwogCiAJdGltcy0+dGhpeiA9IEZNQzJfVEhJWjsKIAl0aGl6ID0gKHRpbXMtPnRoaXogKyAxKSAqIGhjbGtwOwpAQCAtMTQ1MSwxOCArMTQ0NiwxMSBAQCBzdGF0aWMgdm9pZCBzdG0zMl9mbWMyX2NhbGNfdGltaW5ncyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLAogCSAqIHRXQUlUID4gdFdQCiAJICogdFdBSVQgPiB0UkVBICsgdElPCiAJICovCi0JdHdhaXQgPSBoY2xrcDsKLQlpZiAodHdhaXQgPCBzZHJ0LT50UlBfbWluKQotCQl0d2FpdCA9IHNkcnQtPnRSUF9taW47Ci0JaWYgKHR3YWl0IDwgc2RydC0+dFdQX21pbikKLQkJdHdhaXQgPSBzZHJ0LT50V1BfbWluOwotCWlmICh0d2FpdCA8IHNkcnQtPnRSRUFfbWF4ICsgRk1DMl9USU8pCi0JCXR3YWl0ID0gc2RydC0+dFJFQV9tYXggKyBGTUMyX1RJTzsKLQl0aW1zLT50d2FpdCA9IERJVl9ST1VORF9VUCh0d2FpdCwgaGNsa3ApOwotCWlmICh0aW1zLT50d2FpdCA9PSAwKQotCQl0aW1zLT50d2FpdCA9IDE7Ci0JZWxzZSBpZiAodGltcy0+dHdhaXQgPiBGTUMyX1BNRU1fUEFUVF9USU1JTkdfTUFTSykKLQkJdGltcy0+dHdhaXQgPSBGTUMyX1BNRU1fUEFUVF9USU1JTkdfTUFTSzsKKwl0d2FpdCA9IG1heF90KHVuc2lnbmVkIGxvbmcsIGhjbGtwLCBzZHJ0LT50UlBfbWluKTsKKwl0d2FpdCA9IG1heF90KHVuc2lnbmVkIGxvbmcsIHR3YWl0LCBzZHJ0LT50V1BfbWluKTsKKwl0d2FpdCA9IG1heF90KHVuc2lnbmVkIGxvbmcsIHR3YWl0LCBzZHJ0LT50UkVBX21heCArIEZNQzJfVElPKTsKKwl0aW1pbmcgPSBESVZfUk9VTkRfVVAodHdhaXQsIGhjbGtwKTsKKwl0aW1zLT50d2FpdCA9IGNsYW1wX3ZhbCh0aW1pbmcsIDEsIEZNQzJfUE1FTV9QQVRUX1RJTUlOR19NQVNLKTsKIAogCS8qCiAJICogdFNFVFVQX01FTSA+IHRDUyAtIHRXQUlUCkBAIC0xNDc3LDIwICsxNDY1LDE1IEBAIHN0YXRpYyB2b2lkIHN0bTMyX2ZtYzJfY2FsY190aW1pbmdzKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCiAJaWYgKHR3YWl0ID4gdGhpeiAmJiAoc2RydC0+dERTX21pbiA+IHR3YWl0IC0gdGhpeikgJiYKIAkgICAgKHRzZXRfbWVtIDwgc2RydC0+dERTX21pbiAtICh0d2FpdCAtIHRoaXopKSkKIAkJdHNldF9tZW0gPSBzZHJ0LT50RFNfbWluIC0gKHR3YWl0IC0gdGhpeik7Ci0JdGltcy0+dHNldF9tZW0gPSBESVZfUk9VTkRfVVAodHNldF9tZW0sIGhjbGtwKTsKLQlpZiAodGltcy0+dHNldF9tZW0gPT0gMCkKLQkJdGltcy0+dHNldF9tZW0gPSAxOwotCWVsc2UgaWYgKHRpbXMtPnRzZXRfbWVtID4gRk1DMl9QTUVNX1BBVFRfVElNSU5HX01BU0spCi0JCXRpbXMtPnRzZXRfbWVtID0gRk1DMl9QTUVNX1BBVFRfVElNSU5HX01BU0s7CisJdGltaW5nID0gRElWX1JPVU5EX1VQKHRzZXRfbWVtLCBoY2xrcCk7CisJdGltcy0+dHNldF9tZW0gPSBjbGFtcF92YWwodGltaW5nLCAxLCBGTUMyX1BNRU1fUEFUVF9USU1JTkdfTUFTSyk7CiAKIAkvKgogCSAqIHRIT0xEX01FTSA+IHRDSAogCSAqIHRIT0xEX01FTSA+IHRSRUggLSB0U0VUVVBfTUVNCiAJICogdEhPTERfTUVNID4gbWF4KHRSQywgdFdDKSAtICh0U0VUVVBfTUVNICsgdFdBSVQpCiAJICovCi0JdGhvbGRfbWVtID0gaGNsa3A7Ci0JaWYgKHRob2xkX21lbSA8IHNkcnQtPnRDSF9taW4pCi0JCXRob2xkX21lbSA9IHNkcnQtPnRDSF9taW47CisJdGhvbGRfbWVtID0gbWF4X3QodW5zaWduZWQgbG9uZywgaGNsa3AsIHNkcnQtPnRDSF9taW4pOwogCWlmIChzZHJ0LT50UkVIX21pbiA+IHRzZXRfbWVtICYmCiAJICAgICh0aG9sZF9tZW0gPCBzZHJ0LT50UkVIX21pbiAtIHRzZXRfbWVtKSkKIAkJdGhvbGRfbWVtID0gc2RydC0+dFJFSF9taW4gLSB0c2V0X21lbTsKQEAgLTE1MDAsMTEgKzE0ODMsOCBAQCBzdGF0aWMgdm9pZCBzdG0zMl9mbWMyX2NhbGNfdGltaW5ncyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLAogCWlmICgoc2RydC0+dFdDX21pbiA+IHRzZXRfbWVtICsgdHdhaXQpICYmCiAJICAgICh0aG9sZF9tZW0gPCBzZHJ0LT50V0NfbWluIC0gKHRzZXRfbWVtICsgdHdhaXQpKSkKIAkJdGhvbGRfbWVtID0gc2RydC0+dFdDX21pbiAtICh0c2V0X21lbSArIHR3YWl0KTsKLQl0aW1zLT50aG9sZF9tZW0gPSBESVZfUk9VTkRfVVAodGhvbGRfbWVtLCBoY2xrcCk7Ci0JaWYgKHRpbXMtPnRob2xkX21lbSA9PSAwKQotCQl0aW1zLT50aG9sZF9tZW0gPSAxOwotCWVsc2UgaWYgKHRpbXMtPnRob2xkX21lbSA+IEZNQzJfUE1FTV9QQVRUX1RJTUlOR19NQVNLKQotCQl0aW1zLT50aG9sZF9tZW0gPSBGTUMyX1BNRU1fUEFUVF9USU1JTkdfTUFTSzsKKwl0aW1pbmcgPSBESVZfUk9VTkRfVVAodGhvbGRfbWVtLCBoY2xrcCk7CisJdGltcy0+dGhvbGRfbWVtID0gY2xhbXBfdmFsKHRpbWluZywgMSwgRk1DMl9QTUVNX1BBVFRfVElNSU5HX01BU0spOwogCiAJLyoKIAkgKiB0U0VUVVBfQVRUID4gdENTIC0gdFdBSVQKQEAgLTE1MjYsMTEgKzE1MDYsOCBAQCBzdGF0aWMgdm9pZCBzdG0zMl9mbWMyX2NhbGNfdGltaW5ncyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLAogCWlmICh0d2FpdCA+IHRoaXogJiYgKHNkcnQtPnREU19taW4gPiB0d2FpdCAtIHRoaXopICYmCiAJICAgICh0c2V0X2F0dCA8IHNkcnQtPnREU19taW4gLSAodHdhaXQgLSB0aGl6KSkpCiAJCXRzZXRfYXR0ID0gc2RydC0+dERTX21pbiAtICh0d2FpdCAtIHRoaXopOwotCXRpbXMtPnRzZXRfYXR0ID0gRElWX1JPVU5EX1VQKHRzZXRfYXR0LCBoY2xrcCk7Ci0JaWYgKHRpbXMtPnRzZXRfYXR0ID09IDApCi0JCXRpbXMtPnRzZXRfYXR0ID0gMTsKLQllbHNlIGlmICh0aW1zLT50c2V0X2F0dCA+IEZNQzJfUE1FTV9QQVRUX1RJTUlOR19NQVNLKQotCQl0aW1zLT50c2V0X2F0dCA9IEZNQzJfUE1FTV9QQVRUX1RJTUlOR19NQVNLOworCXRpbWluZyA9IERJVl9ST1VORF9VUCh0c2V0X2F0dCwgaGNsa3ApOworCXRpbXMtPnRzZXRfYXR0ID0gY2xhbXBfdmFsKHRpbWluZywgMSwgRk1DMl9QTUVNX1BBVFRfVElNSU5HX01BU0spOwogCiAJLyoKIAkgKiB0SE9MRF9BVFQgPiB0QUxICkBAIC0xNTQ1LDE3ICsxNTIyLDExIEBAIHN0YXRpYyB2b2lkIHN0bTMyX2ZtYzJfY2FsY190aW1pbmdzKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCiAJICogdEhPTERfQVRUID4gdFJDIC0gKHRTRVRVUF9BVFQgKyB0V0FJVCkKIAkgKiB0SE9MRF9BVFQgPiB0V0MgLSAodFNFVFVQX0FUVCArIHRXQUlUKQogCSAqLwotCXRob2xkX2F0dCA9IGhjbGtwOwotCWlmICh0aG9sZF9hdHQgPCBzZHJ0LT50QUxIX21pbikKLQkJdGhvbGRfYXR0ID0gc2RydC0+dEFMSF9taW47Ci0JaWYgKHRob2xkX2F0dCA8IHNkcnQtPnRDSF9taW4pCi0JCXRob2xkX2F0dCA9IHNkcnQtPnRDSF9taW47Ci0JaWYgKHRob2xkX2F0dCA8IHNkcnQtPnRDTEhfbWluKQotCQl0aG9sZF9hdHQgPSBzZHJ0LT50Q0xIX21pbjsKLQlpZiAodGhvbGRfYXR0IDwgc2RydC0+dENPSF9taW4pCi0JCXRob2xkX2F0dCA9IHNkcnQtPnRDT0hfbWluOwotCWlmICh0aG9sZF9hdHQgPCBzZHJ0LT50REhfbWluKQotCQl0aG9sZF9hdHQgPSBzZHJ0LT50REhfbWluOworCXRob2xkX2F0dCA9IG1heF90KHVuc2lnbmVkIGxvbmcsIGhjbGtwLCBzZHJ0LT50QUxIX21pbik7CisJdGhvbGRfYXR0ID0gbWF4X3QodW5zaWduZWQgbG9uZywgdGhvbGRfYXR0LCBzZHJ0LT50Q0hfbWluKTsKKwl0aG9sZF9hdHQgPSBtYXhfdCh1bnNpZ25lZCBsb25nLCB0aG9sZF9hdHQsIHNkcnQtPnRDTEhfbWluKTsKKwl0aG9sZF9hdHQgPSBtYXhfdCh1bnNpZ25lZCBsb25nLCB0aG9sZF9hdHQsIHNkcnQtPnRDT0hfbWluKTsKKwl0aG9sZF9hdHQgPSBtYXhfdCh1bnNpZ25lZCBsb25nLCB0aG9sZF9hdHQsIHNkcnQtPnRESF9taW4pOwogCWlmICgoc2RydC0+dFdCX21heCArIEZNQzJfVElPICsgRk1DMl9UU1lOQyA+IHRzZXRfbWVtKSAmJgogCSAgICAodGhvbGRfYXR0IDwgc2RydC0+dFdCX21heCArIEZNQzJfVElPICsgRk1DMl9UU1lOQyAtIHRzZXRfbWVtKSkKIAkJdGhvbGRfYXR0ID0gc2RydC0+dFdCX21heCArIEZNQzJfVElPICsgRk1DMl9UU1lOQyAtIHRzZXRfbWVtOwpAQCAtMTU3NCwxMSArMTU0NSw4IEBAIHN0YXRpYyB2b2lkIHN0bTMyX2ZtYzJfY2FsY190aW1pbmdzKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCiAJaWYgKChzZHJ0LT50V0NfbWluID4gdHNldF9hdHQgKyB0d2FpdCkgJiYKIAkgICAgKHRob2xkX2F0dCA8IHNkcnQtPnRXQ19taW4gLSAodHNldF9hdHQgKyB0d2FpdCkpKQogCQl0aG9sZF9hdHQgPSBzZHJ0LT50V0NfbWluIC0gKHRzZXRfYXR0ICsgdHdhaXQpOwotCXRpbXMtPnRob2xkX2F0dCA9IERJVl9ST1VORF9VUCh0aG9sZF9hdHQsIGhjbGtwKTsKLQlpZiAodGltcy0+dGhvbGRfYXR0ID09IDApCi0JCXRpbXMtPnRob2xkX2F0dCA9IDE7Ci0JZWxzZSBpZiAodGltcy0+dGhvbGRfYXR0ID4gRk1DMl9QTUVNX1BBVFRfVElNSU5HX01BU0spCi0JCXRpbXMtPnRob2xkX2F0dCA9IEZNQzJfUE1FTV9QQVRUX1RJTUlOR19NQVNLOworCXRpbWluZyA9IERJVl9ST1VORF9VUCh0aG9sZF9hdHQsIGhjbGtwKTsKKwl0aW1zLT50aG9sZF9hdHQgPSBjbGFtcF92YWwodGltaW5nLCAxLCBGTUMyX1BNRU1fUEFUVF9USU1JTkdfTUFTSyk7CiB9CiAKIHN0YXRpYyBpbnQgc3RtMzJfZm1jMl9zZXR1cF9pbnRlcmZhY2Uoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgaW50IGNoaXBuciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L3RhbmdvX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3RhbmdvX25hbmQuYwppbmRleCBiM2YyY2FiLi45YWNmMmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy90YW5nb19uYW5kLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvdGFuZ29fbmFuZC5jCkBAIC02NTksNiArNjU5LDcgQEAgc3RhdGljIGludCB0YW5nb19uYW5kX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWVyciA9IGNoaXBfaW5pdCgmcGRldi0+ZGV2LCBucCk7CiAJCWlmIChlcnIpIHsKIAkJCXRhbmdvX25hbmRfcmVtb3ZlKHBkZXYpOworCQkJb2Zfbm9kZV9wdXQobnApOwogCQkJcmV0dXJuIGVycjsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L3ZmNjEwX25mYy5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvdmY2MTBfbmZjLmMKaW5kZXggZTRmZThjNC4uNmIzOTlhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvdmY2MTBfbmZjLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvdmY2MTBfbmZjLmMKQEAgLTg2Miw2ICs4NjIsNyBAQCBzdGF0aWMgaW50IHZmNjEwX25mY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQkJCWRldl9lcnIobmZjLT5kZXYsCiAJCQkJCSJPbmx5IG9uZSBOQU5EIGNoaXAgc3VwcG9ydGVkIVxuIik7CiAJCQkJZXJyID0gLUVJTlZBTDsKKwkJCQlvZl9ub2RlX3B1dChjaGlsZCk7CiAJCQkJZ290byBlcnJfZGlzYWJsZV9jbGs7CiAJCQl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3BhcnNlcnMvS2NvbmZpZyBiL2RyaXZlcnMvbXRkL3BhcnNlcnMvS2NvbmZpZwppbmRleCAxNzZiNzVhLi5mOTgzNjNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9wYXJzZXJzL0tjb25maWcKKysrIGIvZHJpdmVycy9tdGQvcGFyc2Vycy9LY29uZmlnCkBAIC0xLDQgKzEsNzIgQEAKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorY29uZmlnIE1URF9BUjdfUEFSVFMKKwl0cmlzdGF0ZSAiVEkgQVI3IHBhcnRpdGlvbmluZyBwYXJzZXIiCisJaGVscAorCSAgVEkgQVI3IHBhcnRpdGlvbmluZyBwYXJzZXIgc3VwcG9ydAorCitjb25maWcgTVREX0JDTTQ3WFhfUEFSVFMKKwl0cmlzdGF0ZSAiQkNNNDdYWCBwYXJ0aXRpb25pbmcgcGFyc2VyIgorCWRlcGVuZHMgb24gQkNNNDdYWCB8fCBBUkNIX0JDTV81MzAxWAorCWhlbHAKKwkgIFRoaXMgcHJvdmlkZXMgcGFydGl0aW9ucyBwYXJzZXIgZm9yIGRldmljZXMgYmFzZWQgb24gQkNNNDd4eAorCSAgYm9hcmRzLgorCitjb25maWcgTVREX0JDTTYzWFhfUEFSVFMKKwl0cmlzdGF0ZSAiQkNNNjNYWCBDRkUgcGFydGl0aW9uaW5nIHBhcnNlciIKKwlkZXBlbmRzIG9uIEJDTTYzWFggfHwgQk1JUFNfR0VORVJJQyB8fCBDT01QSUxFX1RFU1QKKwlzZWxlY3QgQ1JDMzIKKwlzZWxlY3QgTVREX1BBUlNFUl9JTUFHRVRBRworCWhlbHAKKwkgIFRoaXMgcHJvdmlkZXMgcGFydGl0aW9uIHBhcnNpbmcgZm9yIEJDTTYzeHggZGV2aWNlcyB3aXRoIENGRQorCSAgYm9vdGxvYWRlcnMuCisKK2NvbmZpZyBNVERfQ01ETElORV9QQVJUUworCXRyaXN0YXRlICJDb21tYW5kIGxpbmUgcGFydGl0aW9uIHRhYmxlIHBhcnNpbmciCisJZGVwZW5kcyBvbiBNVEQKKwloZWxwCisJICBBbGxvdyBnZW5lcmljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIE1URCBwYXJ0aXRpb24gdGFibGVzIHZpYSB0aGUga2VybmVsCisJICBjb21tYW5kIGxpbmUuIE11bHRpcGxlIGZsYXNoIHJlc291cmNlcyBhcmUgc3VwcG9ydGVkIGZvciBoYXJkd2FyZSB3aGVyZQorCSAgZGlmZmVyZW50IGtpbmRzIG9mIGZsYXNoIG1lbW9yeSBhcmUgYXZhaWxhYmxlLgorCisJICBZb3Ugd2lsbCBzdGlsbCBuZWVkIHRoZSBwYXJzaW5nIGZ1bmN0aW9ucyB0byBiZSBjYWxsZWQgYnkgdGhlIGRyaXZlcgorCSAgZm9yIHlvdXIgcGFydGljdWxhciBkZXZpY2UuIEl0IHdvbid0IGhhcHBlbiBhdXRvbWF0aWNhbGx5LiBUaGUKKwkgIFNBMTEwMCBtYXAgZHJpdmVyIChDT05GSUdfTVREX1NBMTEwMCkgaGFzIGFuIG9wdGlvbiBmb3IgdGhpcywgZm9yCisJICBleGFtcGxlLgorCisJICBUaGUgZm9ybWF0IGZvciB0aGUgY29tbWFuZCBsaW5lIGlzIGFzIGZvbGxvd3M6CisKKwkgIG10ZHBhcnRzPTxtdGRkZWY+Wzs8bXRkZGVmXQorCSAgPG10ZGRlZj4gIDo9IDxtdGQtaWQ+OjxwYXJ0ZGVmPlssPHBhcnRkZWY+XQorCSAgPHBhcnRkZWY+IDo9IDxzaXplPltAb2Zmc2V0XVs8bmFtZT5dW3JvXQorCSAgPG10ZC1pZD4gIDo9IHVuaXF1ZSBpZCB1c2VkIGluIG1hcHBpbmcgZHJpdmVyL2RldmljZQorCSAgPHNpemU+ICAgIDo9IHN0YW5kYXJkIGxpbnV4IG1lbXNpemUgT1IgIi0iIHRvIGRlbm90ZSBhbGwKKwkgIHJlbWFpbmluZyBzcGFjZQorCSAgPG5hbWU+ICAgIDo9IChOQU1FKQorCisJICBEdWUgdG8gdGhlIHdheSBMaW51eCBoYW5kbGVzIHRoZSBjb21tYW5kIGxpbmUsIG5vIHNwYWNlcyBhcmUKKwkgIGFsbG93ZWQgaW4gdGhlIHBhcnRpdGlvbiBkZWZpbml0aW9uLCBpbmNsdWRpbmcgbXRkIGlkJ3MgYW5kIHBhcnRpdGlvbgorCSAgbmFtZXMuCisKKwkgIEV4YW1wbGVzOgorCisJICAxIGZsYXNoIHJlc291cmNlIChtdGQtaWQgInNhMTEwMCIpLCB3aXRoIDEgc2luZ2xlIHdyaXRhYmxlIHBhcnRpdGlvbjoKKwkgIG10ZHBhcnRzPXNhMTEwMDotCisKKwkgIFNhbWUgZmxhc2gsIGJ1dCAyIG5hbWVkIHBhcnRpdGlvbnMsIHRoZSBmaXJzdCBvbmUgYmVpbmcgcmVhZC1vbmx5OgorCSAgbXRkcGFydHM9c2ExMTAwOjI1NmsoQVJNYm9vdClybywtKHJvb3QpCisKKwkgIElmIHVuc3VyZSwgc2F5ICdOJy4KKworY29uZmlnIE1URF9PRl9QQVJUUworCXRyaXN0YXRlICJPcGVuRmlybXdhcmUgKGRldmljZSB0cmVlKSBwYXJ0aXRpb25pbmcgcGFyc2VyIgorCWRlZmF1bHQgeQorCWRlcGVuZHMgb24gT0YKKwloZWxwCisJICBUaGlzIHByb3ZpZGVzIGEgb3BlbiBmaXJtd2FyZSBkZXZpY2UgdHJlZSBwYXJ0aXRpb24gcGFyc2VyCisJICB3aGljaCBkZXJpdmVzIHRoZSBwYXJ0aXRpb24gbWFwIGZyb20gdGhlIGNoaWxkcmVuIG9mIHRoZQorCSAgZmxhc2ggbWVtb3J5IG5vZGUsIGFzIGRlc2NyaWJlZCBpbgorCSAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL210ZC9wYXJ0aXRpb24udHh0LgorCiBjb25maWcgTVREX1BBUlNFUl9JTUFHRVRBRwogCXRyaXN0YXRlICJQYXJzZXIgZm9yIEJDTTk2M1hYIEltYWdlIFRhZyBmb3JtYXQgcGFydGl0aW9ucyIKIAlkZXBlbmRzIG9uIEJDTTYzWFggfHwgQk1JUFNfR0VORVJJQyB8fCBDT01QSUxFX1RFU1QKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3BhcnNlcnMvTWFrZWZpbGUgYi9kcml2ZXJzL210ZC9wYXJzZXJzL01ha2VmaWxlCmluZGV4IGRkNTY2YmQuLmIwYzVmNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3BhcnNlcnMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9tdGQvcGFyc2Vycy9NYWtlZmlsZQpAQCAtMSw0ICsxLDkgQEAKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorb2JqLSQoQ09ORklHX01URF9BUjdfUEFSVFMpCQkrPSBhcjdwYXJ0Lm8KK29iai0kKENPTkZJR19NVERfQkNNNDdYWF9QQVJUUykJCSs9IGJjbTQ3eHhwYXJ0Lm8KK29iai0kKENPTkZJR19NVERfQkNNNjNYWF9QQVJUUykJCSs9IGJjbTYzeHhwYXJ0Lm8KK29iai0kKENPTkZJR19NVERfQ01ETElORV9QQVJUUykJCSs9IGNtZGxpbmVwYXJ0Lm8KK29iai0kKENPTkZJR19NVERfT0ZfUEFSVFMpCQkrPSBvZnBhcnQubwogb2JqLSQoQ09ORklHX01URF9QQVJTRVJfSU1BR0VUQUcpCSs9IHBhcnNlcl9pbWFnZXRhZy5vCiBvYmotJChDT05GSUdfTVREX0FGU19QQVJUUykJCSs9IGFmcy5vCiBvYmotJChDT05GSUdfTVREX1BBUlNFUl9UUlgpCQkrPSBwYXJzZXJfdHJ4Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL2FyN3BhcnQuYyBiL2RyaXZlcnMvbXRkL3BhcnNlcnMvYXI3cGFydC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL210ZC9hcjdwYXJ0LmMKcmVuYW1lIHRvIGRyaXZlcnMvbXRkL3BhcnNlcnMvYXI3cGFydC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9iY200N3h4cGFydC5jIGIvZHJpdmVycy9tdGQvcGFyc2Vycy9iY200N3h4cGFydC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL210ZC9iY200N3h4cGFydC5jCnJlbmFtZSB0byBkcml2ZXJzL210ZC9wYXJzZXJzL2JjbTQ3eHhwYXJ0LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL2JjbTYzeHhwYXJ0LmMgYi9kcml2ZXJzL210ZC9wYXJzZXJzL2JjbTYzeHhwYXJ0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvbXRkL2JjbTYzeHhwYXJ0LmMKcmVuYW1lIHRvIGRyaXZlcnMvbXRkL3BhcnNlcnMvYmNtNjN4eHBhcnQuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvY21kbGluZXBhcnQuYyBiL2RyaXZlcnMvbXRkL3BhcnNlcnMvY21kbGluZXBhcnQuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9tdGQvY21kbGluZXBhcnQuYwpyZW5hbWUgdG8gZHJpdmVycy9tdGQvcGFyc2Vycy9jbWRsaW5lcGFydC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9vZnBhcnQuYyBiL2RyaXZlcnMvbXRkL3BhcnNlcnMvb2ZwYXJ0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvbXRkL29mcGFydC5jCnJlbmFtZSB0byBkcml2ZXJzL210ZC9wYXJzZXJzL29mcGFydC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9zbV9mdGwuYyBiL2RyaXZlcnMvbXRkL3NtX2Z0bC5jCmluZGV4IGRmYzQ3YTQuLjQ3NDRiZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3NtX2Z0bC5jCisrKyBiL2RyaXZlcnMvbXRkL3NtX2Z0bC5jCkBAIC03NzQsOCArNzc0LDExIEBAIHN0YXRpYyBpbnQgc21faW5pdF96b25lKHN0cnVjdCBzbV9mdGwgKmZ0bCwgaW50IHpvbmVfbnVtKQogCQkJY29udGludWU7CiAKIAkJLyogUmVhZCB0aGUgb29iIG9mIGZpcnN0IHNlY3RvciAqLwotCQlpZiAoc21fcmVhZF9zZWN0b3IoZnRsLCB6b25lX251bSwgYmxvY2ssIDAsIE5VTEwsICZvb2IpKQorCQlpZiAoc21fcmVhZF9zZWN0b3IoZnRsLCB6b25lX251bSwgYmxvY2ssIDAsIE5VTEwsICZvb2IpKSB7CisJCQlrZmlmb19mcmVlKCZ6b25lLT5mcmVlX3NlY3RvcnMpOworCQkJa2ZyZWUoem9uZS0+bGJhX3RvX3BoeXNfdGFibGUpOwogCQkJcmV0dXJuIC1FSU87CisJCX0KIAogCQkvKiBUZXN0IHRvIHNlZSBpZiBibG9jayBpcyBlcmFzZWQuIEl0IGlzIGVub3VnaCB0byB0ZXN0CiAJCQlmaXJzdCBzZWN0b3IsIGJlY2F1c2UgZXJhc2UgaGFwcGVucyBpbiBvbmUgc2hvdCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpLW5vci9LY29uZmlnIGIvZHJpdmVycy9tdGQvc3BpLW5vci9LY29uZmlnCmluZGV4IDZkZTgzMjcuLmYyMzdmY2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvS2NvbmZpZworKysgYi9kcml2ZXJzL210ZC9zcGktbm9yL0tjb25maWcKQEAgLTIsNiArMiw4IEBACiBtZW51Y29uZmlnIE1URF9TUElfTk9SCiAJdHJpc3RhdGUgIlNQSS1OT1IgZGV2aWNlIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBNVEQKKwlkZXBlbmRzIG9uIE1URCAmJiBTUElfTUFTVEVSCisJc2VsZWN0IFNQSV9NRU0KIAloZWxwCiAJICBUaGlzIGlzIHRoZSBmcmFtZXdvcmsgZm9yIHRoZSBTUEkgTk9SIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IHRoZSBTUEkKIAkgIGRldmljZSBkcml2ZXJzIGFuZCB0aGUgU1BJLU5PUiBkZXZpY2UgZHJpdmVyLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpLW5vci9hc3BlZWQtc21jLmMgYi9kcml2ZXJzL210ZC9zcGktbm9yL2FzcGVlZC1zbWMuYwppbmRleCAxOWI4NzU3Li4wMDljMWRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9zcGktbm9yL2FzcGVlZC1zbWMuYworKysgYi9kcml2ZXJzL210ZC9zcGktbm9yL2FzcGVlZC1zbWMuYwpAQCAtODM2LDggKzgzNiwxMCBAQCBzdGF0aWMgaW50IGFzcGVlZF9zbWNfc2V0dXBfZmxhc2goc3RydWN0IGFzcGVlZF9zbWNfY29udHJvbGxlciAqY29udHJvbGxlciwKIAkJY29udHJvbGxlci0+Y2hpcHNbY3NdID0gY2hpcDsKIAl9CiAKLQlpZiAocmV0KQorCWlmIChyZXQpIHsKKwkJb2Zfbm9kZV9wdXQoY2hpbGQpOwogCQlhc3BlZWRfc21jX3VucmVnaXN0ZXIoY29udHJvbGxlcik7CisJfQogCiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY2FkZW5jZS1xdWFkc3BpLmMgYi9kcml2ZXJzL210ZC9zcGktbm9yL2NhZGVuY2UtcXVhZHNwaS5jCmluZGV4IDY3ZjE1YTEuLjdiZWY2MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY2FkZW5jZS1xdWFkc3BpLmMKKysrIGIvZHJpdmVycy9tdGQvc3BpLW5vci9jYWRlbmNlLXF1YWRzcGkuYwpAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC0yNDEsMjMgKzI0MiwxMyBAQCBzdHJ1Y3QgY3FzcGlfZHJpdmVyX3BsYXRkYXRhIHsKIAogI2RlZmluZSBDUVNQSV9JUlFfU1RBVFVTX01BU0sJCTB4MUZGRkYKIAotc3RhdGljIGludCBjcXNwaV93YWl0X2Zvcl9iaXQodm9pZCBfX2lvbWVtICpyZWcsIGNvbnN0IHUzMiBtYXNrLCBib29sIGNsZWFyKQorc3RhdGljIGludCBjcXNwaV93YWl0X2Zvcl9iaXQodm9pZCBfX2lvbWVtICpyZWcsIGNvbnN0IHUzMiBtYXNrLCBib29sIGNscikKIHsKLQl1bnNpZ25lZCBsb25nIGVuZCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKENRU1BJX1RJTUVPVVRfTVMpOwogCXUzMiB2YWw7CiAKLQl3aGlsZSAoMSkgewotCQl2YWwgPSByZWFkbChyZWcpOwotCQlpZiAoY2xlYXIpCi0JCQl2YWwgPSB+dmFsOwotCQl2YWwgJj0gbWFzazsKLQotCQlpZiAodmFsID09IG1hc2spCi0JCQlyZXR1cm4gMDsKLQotCQlpZiAodGltZV9hZnRlcihqaWZmaWVzLCBlbmQpKQotCQkJcmV0dXJuIC1FVElNRURPVVQ7Ci0JfQorCXJldHVybiByZWFkbF9yZWxheGVkX3BvbGxfdGltZW91dChyZWcsIHZhbCwKKwkJCQkJICAoKChjbHIgPyB+dmFsIDogdmFsKSAmIG1hc2spID09IG1hc2spLAorCQkJCQkgIDEwLCBDUVNQSV9USU1FT1VUX01TICogMTAwMCk7CiB9CiAKIHN0YXRpYyBib29sIGNxc3BpX2lzX2lkbGUoc3RydWN0IGNxc3BpX3N0ICpjcXNwaSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvaGlzaS1zZmMuYyBiL2RyaXZlcnMvbXRkL3NwaS1ub3IvaGlzaS1zZmMuYwppbmRleCBkZWE0M2VhLi42ZGFjOWRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9zcGktbm9yL2hpc2ktc2ZjLmMKKysrIGIvZHJpdmVycy9tdGQvc3BpLW5vci9oaXNpLXNmYy5jCkBAIC00MDEsNiArNDAxLDcgQEAgc3RhdGljIGludCBoaXNpX3NwaV9ub3JfcmVnaXN0ZXJfYWxsKHN0cnVjdCBoaWZtY19ob3N0ICpob3N0KQogCiAJCWlmIChob3N0LT5udW1fY2hpcCA9PSBISUZNQ19NQVhfQ0hJUF9OVU0pIHsKIAkJCWRldl93YXJuKGRldiwgIkZsYXNoIGRldmljZSBudW1iZXIgZXhjZWVkcyB0aGUgbWF4aW11bSBjaGlwc2VsZWN0IG51bWJlclxuIik7CisJCQlvZl9ub2RlX3B1dChucCk7CiAJCQlicmVhazsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvaW50ZWwtc3BpLXBjaS5jIGIvZHJpdmVycy9tdGQvc3BpLW5vci9pbnRlbC1zcGktcGNpLmMKaW5kZXggYjgzYzRhYjYuLjNjZGE4ZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvaW50ZWwtc3BpLXBjaS5jCisrKyBiL2RyaXZlcnMvbXRkL3NwaS1ub3IvaW50ZWwtc3BpLXBjaS5jCkBAIC02NSw2ICs2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpbnRlbF9zcGlfcGNpX2lkc1tdID0gewogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MTllMCksICh1bnNpZ25lZCBsb25nKSZieHRfaW5mbyB9LAogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MzRhNCksICh1bnNpZ25lZCBsb25nKSZieHRfaW5mbyB9LAogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4NGIyNCksICh1bnNpZ25lZCBsb25nKSZieHRfaW5mbyB9LAorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTBhNCksICh1bnNpZ25lZCBsb25nKSZieHRfaW5mbyB9LAogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTFhNCksICh1bnNpZ25lZCBsb25nKSZieHRfaW5mbyB9LAogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTIyNCksICh1bnNpZ25lZCBsb25nKSZieHRfaW5mbyB9LAogCXsgfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvaW50ZWwtc3BpLmMgYi9kcml2ZXJzL210ZC9zcGktbm9yL2ludGVsLXNwaS5jCmluZGV4IDFjY2YyM2YuLjQzZTU1YTJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9zcGktbm9yL2ludGVsLXNwaS5jCisrKyBiL2RyaXZlcnMvbXRkL3NwaS1ub3IvaW50ZWwtc3BpLmMKQEAgLTYyMSw2ICs2MjEsOCBAQCBzdGF0aWMgc3NpemVfdCBpbnRlbF9zcGlfcmVhZChzdHJ1Y3Qgc3BpX25vciAqbm9yLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbiwKIAlzd2l0Y2ggKG5vci0+cmVhZF9vcGNvZGUpIHsKIAljYXNlIFNQSU5PUl9PUF9SRUFEOgogCWNhc2UgU1BJTk9SX09QX1JFQURfRkFTVDoKKwljYXNlIFNQSU5PUl9PUF9SRUFEXzRCOgorCWNhc2UgU1BJTk9SX09QX1JFQURfRkFTVF80QjoKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9zcGktbm9yL3NwaS1ub3IuYyBiL2RyaXZlcnMvbXRkL3NwaS1ub3Ivc3BpLW5vci5jCmluZGV4IDY1NGJkYzQuLjFkODYyMWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3Ivc3BpLW5vci5jCisrKyBiL2RyaXZlcnMvbXRkL3NwaS1ub3Ivc3BpLW5vci5jCkBAIC0xOSw2ICsxOSw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC90YXNrX3N0YWNrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpL2ZsYXNoLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL3NwaS1ub3IuaD4KIApAQCAtMzksNzEgKzQwLDYgQEAKICNkZWZpbmUgU1BJX05PUl9NQVhfSURfTEVOCTYKICNkZWZpbmUgU1BJX05PUl9NQVhfQUREUl9XSURUSAk0CiAKLXN0cnVjdCBzcGlfbm9yX3JlYWRfY29tbWFuZCB7Ci0JdTgJCQludW1fbW9kZV9jbG9ja3M7Ci0JdTgJCQludW1fd2FpdF9zdGF0ZXM7Ci0JdTgJCQlvcGNvZGU7Ci0JZW51bSBzcGlfbm9yX3Byb3RvY29sCXByb3RvOwotfTsKLQotc3RydWN0IHNwaV9ub3JfcHBfY29tbWFuZCB7Ci0JdTgJCQlvcGNvZGU7Ci0JZW51bSBzcGlfbm9yX3Byb3RvY29sCXByb3RvOwotfTsKLQotZW51bSBzcGlfbm9yX3JlYWRfY29tbWFuZF9pbmRleCB7Ci0JU05PUl9DTURfUkVBRCwKLQlTTk9SX0NNRF9SRUFEX0ZBU1QsCi0JU05PUl9DTURfUkVBRF8xXzFfMV9EVFIsCi0KLQkvKiBEdWFsIFNQSSAqLwotCVNOT1JfQ01EX1JFQURfMV8xXzIsCi0JU05PUl9DTURfUkVBRF8xXzJfMiwKLQlTTk9SX0NNRF9SRUFEXzJfMl8yLAotCVNOT1JfQ01EX1JFQURfMV8yXzJfRFRSLAotCi0JLyogUXVhZCBTUEkgKi8KLQlTTk9SX0NNRF9SRUFEXzFfMV80LAotCVNOT1JfQ01EX1JFQURfMV80XzQsCi0JU05PUl9DTURfUkVBRF80XzRfNCwKLQlTTk9SX0NNRF9SRUFEXzFfNF80X0RUUiwKLQotCS8qIE9jdGFsIFNQSSAqLwotCVNOT1JfQ01EX1JFQURfMV8xXzgsCi0JU05PUl9DTURfUkVBRF8xXzhfOCwKLQlTTk9SX0NNRF9SRUFEXzhfOF84LAotCVNOT1JfQ01EX1JFQURfMV84XzhfRFRSLAotCi0JU05PUl9DTURfUkVBRF9NQVgKLX07Ci0KLWVudW0gc3BpX25vcl9wcF9jb21tYW5kX2luZGV4IHsKLQlTTk9SX0NNRF9QUCwKLQotCS8qIFF1YWQgU1BJICovCi0JU05PUl9DTURfUFBfMV8xXzQsCi0JU05PUl9DTURfUFBfMV80XzQsCi0JU05PUl9DTURfUFBfNF80XzQsCi0KLQkvKiBPY3RhbCBTUEkgKi8KLQlTTk9SX0NNRF9QUF8xXzFfOCwKLQlTTk9SX0NNRF9QUF8xXzhfOCwKLQlTTk9SX0NNRF9QUF84XzhfOCwKLQotCVNOT1JfQ01EX1BQX01BWAotfTsKLQotc3RydWN0IHNwaV9ub3JfZmxhc2hfcGFyYW1ldGVyIHsKLQl1NjQJCQkJc2l6ZTsKLQl1MzIJCQkJcGFnZV9zaXplOwotCi0Jc3RydWN0IHNwaV9ub3JfaHdjYXBzCQlod2NhcHM7Ci0Jc3RydWN0IHNwaV9ub3JfcmVhZF9jb21tYW5kCXJlYWRzW1NOT1JfQ01EX1JFQURfTUFYXTsKLQlzdHJ1Y3Qgc3BpX25vcl9wcF9jb21tYW5kCXBhZ2VfcHJvZ3JhbXNbU05PUl9DTURfUFBfTUFYXTsKLQotCWludCAoKnF1YWRfZW5hYmxlKShzdHJ1Y3Qgc3BpX25vciAqbm9yKTsKLX07Ci0KIHN0cnVjdCBzZmRwX3BhcmFtZXRlcl9oZWFkZXIgewogCXU4CQlpZF9sc2I7CiAJdTgJCW1pbm9yOwpAQCAtMjE4LDE2ICsxNTQsMjYgQEAgc3RydWN0IHNmZHBfYmZwdCB7CiAKIC8qKgogICogc3RydWN0IHNwaV9ub3JfZml4dXBzIC0gU1BJIE5PUiBmaXh1cCBob29rcworICogQGRlZmF1bHRfaW5pdDogY2FsbGVkIGFmdGVyIGRlZmF1bHQgZmxhc2ggcGFyYW1ldGVycyBpbml0LiBVc2VkIHRvIHR3ZWFrCisgKiAgICAgICAgICAgICAgICBmbGFzaCBwYXJhbWV0ZXJzIHdoZW4gaW5mb3JtYXRpb24gcHJvdmlkZWQgYnkgdGhlIGZsYXNoX2luZm8KKyAqICAgICAgICAgICAgICAgIHRhYmxlIGlzIGluY29tcGxldGUgb3Igd3JvbmcuCiAgKiBAcG9zdF9iZnB0OiBjYWxsZWQgYWZ0ZXIgdGhlIEJGUFQgdGFibGUgaGFzIGJlZW4gcGFyc2VkCisgKiBAcG9zdF9zZmRwOiBjYWxsZWQgYWZ0ZXIgU0ZEUCBoYXMgYmVlbiBwYXJzZWQgKGlzIGFsc28gY2FsbGVkIGZvciBTUEkgTk9ScworICogICAgICAgICAgICAgdGhhdCBkbyBub3Qgc3VwcG9ydCBSRFNGRFApLiBUeXBpY2FsbHkgdXNlZCB0byB0d2VhayB2YXJpb3VzCisgKiAgICAgICAgICAgICBwYXJhbWV0ZXJzIHRoYXQgY291bGQgbm90IGJlIGV4dHJhY3RlZCBieSBvdGhlciBtZWFucyAoaS5lLgorICogICAgICAgICAgICAgd2hlbiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSB0aGUgU0ZEUC9mbGFzaF9pbmZvIHRhYmxlcyBhcmUKKyAqICAgICAgICAgICAgIGluY29tcGxldGUgb3Igd3JvbmcpLgogICoKICAqIFRob3NlIGhvb2tzIGNhbiBiZSB1c2VkIHRvIHR3ZWFrIHRoZSBTUEkgTk9SIGNvbmZpZ3VyYXRpb24gd2hlbiB0aGUgU0ZEUAogICogdGFibGUgaXMgYnJva2VuIG9yIG5vdCBhdmFpbGFibGUuCiAgKi8KIHN0cnVjdCBzcGlfbm9yX2ZpeHVwcyB7CisJdm9pZCAoKmRlZmF1bHRfaW5pdCkoc3RydWN0IHNwaV9ub3IgKm5vcik7CiAJaW50ICgqcG9zdF9iZnB0KShzdHJ1Y3Qgc3BpX25vciAqbm9yLAogCQkJIGNvbnN0IHN0cnVjdCBzZmRwX3BhcmFtZXRlcl9oZWFkZXIgKmJmcHRfaGVhZGVyLAogCQkJIGNvbnN0IHN0cnVjdCBzZmRwX2JmcHQgKmJmcHQsCiAJCQkgc3RydWN0IHNwaV9ub3JfZmxhc2hfcGFyYW1ldGVyICpwYXJhbXMpOworCXZvaWQgKCpwb3N0X3NmZHApKHN0cnVjdCBzcGlfbm9yICpub3IpOwogfTsKIAogc3RydWN0IGZsYXNoX2luZm8gewpAQCAtMjY1LDYgKzIxMSwxNCBAQCBzdHJ1Y3QgZmxhc2hfaW5mbyB7CiAJCQkJCSAqIGJpdC4gTXVzdCBiZSB1c2VkIHdpdGgKIAkJCQkJICogU1BJX05PUl9IQVNfTE9DSy4KIAkJCQkJICovCisjZGVmaW5lIFNQSV9OT1JfWFNSX1JEWQkJQklUKDEwKQkvKgorCQkJCQkgKiBTM0FOIGZsYXNoZXMgaGF2ZSBzcGVjaWZpYyBvcGNvZGUgdG8KKwkJCQkJICogcmVhZCB0aGUgc3RhdHVzIHJlZ2lzdGVyLgorCQkJCQkgKiBGbGFncyBTUElfTk9SX1hTUl9SRFkgYW5kIFNQSV9TM0FOCisJCQkJCSAqIHVzZSB0aGUgc2FtZSBiaXQgYXMgb25lIGltcGxpZXMgdGhlCisJCQkJCSAqIG90aGVyLCBidXQgd2Ugd2lsbCBnZXQgcmlkIG9mCisJCQkJCSAqIFNQSV9TM0FOIHNvb24uCisJCQkJCSAqLwogI2RlZmluZQlTUElfUzNBTgkJQklUKDEwKQkvKgogCQkJCQkgKiBYaWxpbnggU3BhcnRhbiAzQU4gSW4tU3lzdGVtIEZsYXNoCiAJCQkJCSAqIChNRlIgY2Fubm90IGJlIHVzZWQgZm9yIHByb2JpbmcKQEAgLTI4MiwxMiArMjM2LDE1OCBAQCBzdHJ1Y3QgZmxhc2hfaW5mbyB7CiAKIAkvKiBQYXJ0IHNwZWNpZmljIGZpeHVwIGhvb2tzLiAqLwogCWNvbnN0IHN0cnVjdCBzcGlfbm9yX2ZpeHVwcyAqZml4dXBzOwotCi0JaW50CSgqcXVhZF9lbmFibGUpKHN0cnVjdCBzcGlfbm9yICpub3IpOwogfTsKIAogI2RlZmluZSBKRURFQ19NRlIoaW5mbykJKChpbmZvKS0+aWRbMF0pCiAKKy8qKgorICogc3BpX25vcl9zcGltZW1feGZlcl9kYXRhKCkgLSBoZWxwZXIgZnVuY3Rpb24gdG8gcmVhZC93cml0ZSBkYXRhIHRvCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXNoJ3MgbWVtb3J5IHJlZ2lvbgorICogQG5vcjogICAgICAgIHBvaW50ZXIgdG8gJ3N0cnVjdCBzcGlfbm9yJworICogQG9wOiAgICAgICAgIHBvaW50ZXIgdG8gJ3N0cnVjdCBzcGlfbWVtX29wJyB0ZW1wbGF0ZSBmb3IgdHJhbnNmZXIKKyAqCisgKiBSZXR1cm46IG51bWJlciBvZiBieXRlcyB0cmFuc2ZlcnJlZCBvbiBzdWNjZXNzLCAtZXJybm8gb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBzc2l6ZV90IHNwaV9ub3Jfc3BpbWVtX3hmZXJfZGF0YShzdHJ1Y3Qgc3BpX25vciAqbm9yLAorCQkJCQlzdHJ1Y3Qgc3BpX21lbV9vcCAqb3ApCit7CisJYm9vbCB1c2Vib3VuY2VidWYgPSBmYWxzZTsKKwl2b2lkICpyZGJ1ZiA9IE5VTEw7CisJY29uc3Qgdm9pZCAqYnVmOworCWludCByZXQ7CisKKwlpZiAob3AtPmRhdGEuZGlyID09IFNQSV9NRU1fREFUQV9JTikKKwkJYnVmID0gb3AtPmRhdGEuYnVmLmluOworCWVsc2UKKwkJYnVmID0gb3AtPmRhdGEuYnVmLm91dDsKKworCWlmIChvYmplY3RfaXNfb25fc3RhY2soYnVmKSB8fCAhdmlydF9hZGRyX3ZhbGlkKGJ1ZikpCisJCXVzZWJvdW5jZWJ1ZiA9IHRydWU7CisKKwlpZiAodXNlYm91bmNlYnVmKSB7CisJCWlmIChvcC0+ZGF0YS5uYnl0ZXMgPiBub3ItPmJvdW5jZWJ1Zl9zaXplKQorCQkJb3AtPmRhdGEubmJ5dGVzID0gbm9yLT5ib3VuY2VidWZfc2l6ZTsKKworCQlpZiAob3AtPmRhdGEuZGlyID09IFNQSV9NRU1fREFUQV9JTikgeworCQkJcmRidWYgPSBvcC0+ZGF0YS5idWYuaW47CisJCQlvcC0+ZGF0YS5idWYuaW4gPSBub3ItPmJvdW5jZWJ1ZjsKKwkJfSBlbHNlIHsKKwkJCW9wLT5kYXRhLmJ1Zi5vdXQgPSBub3ItPmJvdW5jZWJ1ZjsKKwkJCW1lbWNweShub3ItPmJvdW5jZWJ1ZiwgYnVmLAorCQkJICAgICAgIG9wLT5kYXRhLm5ieXRlcyk7CisJCX0KKwl9CisKKwlyZXQgPSBzcGlfbWVtX2FkanVzdF9vcF9zaXplKG5vci0+c3BpbWVtLCBvcCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHNwaV9tZW1fZXhlY19vcChub3ItPnNwaW1lbSwgb3ApOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpZiAodXNlYm91bmNlYnVmICYmIG9wLT5kYXRhLmRpciA9PSBTUElfTUVNX0RBVEFfSU4pCisJCW1lbWNweShyZGJ1Ziwgbm9yLT5ib3VuY2VidWYsIG9wLT5kYXRhLm5ieXRlcyk7CisKKwlyZXR1cm4gb3AtPmRhdGEubmJ5dGVzOworfQorCisvKioKKyAqIHNwaV9ub3Jfc3BpbWVtX3JlYWRfZGF0YSgpIC0gcmVhZCBkYXRhIGZyb20gZmxhc2gncyBtZW1vcnkgcmVnaW9uIHZpYQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGktbWVtCisgKiBAbm9yOiAgICAgICAgcG9pbnRlciB0byAnc3RydWN0IHNwaV9ub3InCisgKiBAZnJvbTogICAgICAgb2Zmc2V0IHRvIHJlYWQgZnJvbQorICogQGxlbjogICAgICAgIG51bWJlciBvZiBieXRlcyB0byByZWFkCisgKiBAYnVmOiAgICAgICAgcG9pbnRlciB0byBkc3QgYnVmZmVyCisgKgorICogUmV0dXJuOiBudW1iZXIgb2YgYnl0ZXMgcmVhZCBzdWNjZXNzZnVsbHksIC1lcnJubyBvdGhlcndpc2UKKyAqLworc3RhdGljIHNzaXplX3Qgc3BpX25vcl9zcGltZW1fcmVhZF9kYXRhKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBmcm9tLAorCQkJCQlzaXplX3QgbGVuLCB1OCAqYnVmKQoreworCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KKwkJU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChub3ItPnJlYWRfb3Bjb2RlLCAxKSwKKwkJCSAgIFNQSV9NRU1fT1BfQUREUihub3ItPmFkZHJfd2lkdGgsIGZyb20sIDEpLAorCQkJICAgU1BJX01FTV9PUF9EVU1NWShub3ItPnJlYWRfZHVtbXksIDEpLAorCQkJICAgU1BJX01FTV9PUF9EQVRBX0lOKGxlbiwgYnVmLCAxKSk7CisKKwkvKiBnZXQgdHJhbnNmZXIgcHJvdG9jb2xzLiAqLworCW9wLmNtZC5idXN3aWR0aCA9IHNwaV9ub3JfZ2V0X3Byb3RvY29sX2luc3RfbmJpdHMobm9yLT5yZWFkX3Byb3RvKTsKKwlvcC5hZGRyLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfYWRkcl9uYml0cyhub3ItPnJlYWRfcHJvdG8pOworCW9wLmR1bW15LmJ1c3dpZHRoID0gb3AuYWRkci5idXN3aWR0aDsKKwlvcC5kYXRhLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfZGF0YV9uYml0cyhub3ItPnJlYWRfcHJvdG8pOworCisJLyogY29udmVydCB0aGUgZHVtbXkgY3ljbGVzIHRvIHRoZSBudW1iZXIgb2YgYnl0ZXMgKi8KKwlvcC5kdW1teS5uYnl0ZXMgPSAobm9yLT5yZWFkX2R1bW15ICogb3AuZHVtbXkuYnVzd2lkdGgpIC8gODsKKworCXJldHVybiBzcGlfbm9yX3NwaW1lbV94ZmVyX2RhdGEobm9yLCAmb3ApOworfQorCisvKioKKyAqIHNwaV9ub3JfcmVhZF9kYXRhKCkgLSByZWFkIGRhdGEgZnJvbSBmbGFzaCBtZW1vcnkKKyAqIEBub3I6ICAgICAgICBwb2ludGVyIHRvICdzdHJ1Y3Qgc3BpX25vcicKKyAqIEBmcm9tOiAgICAgICBvZmZzZXQgdG8gcmVhZCBmcm9tCisgKiBAbGVuOiAgICAgICAgbnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQKKyAqIEBidWY6ICAgICAgICBwb2ludGVyIHRvIGRzdCBidWZmZXIKKyAqCisgKiBSZXR1cm46IG51bWJlciBvZiBieXRlcyByZWFkIHN1Y2Nlc3NmdWxseSwgLWVycm5vIG90aGVyd2lzZQorICovCitzdGF0aWMgc3NpemVfdCBzcGlfbm9yX3JlYWRfZGF0YShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbiwKKwkJCQkgdTggKmJ1ZikKK3sKKwlpZiAobm9yLT5zcGltZW0pCisJCXJldHVybiBzcGlfbm9yX3NwaW1lbV9yZWFkX2RhdGEobm9yLCBmcm9tLCBsZW4sIGJ1Zik7CisKKwlyZXR1cm4gbm9yLT5yZWFkKG5vciwgZnJvbSwgbGVuLCBidWYpOworfQorCisvKioKKyAqIHNwaV9ub3Jfc3BpbWVtX3dyaXRlX2RhdGEoKSAtIHdyaXRlIGRhdGEgdG8gZmxhc2ggbWVtb3J5IHZpYQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BpLW1lbQorICogQG5vcjogICAgICAgIHBvaW50ZXIgdG8gJ3N0cnVjdCBzcGlfbm9yJworICogQHRvOiAgICAgICAgIG9mZnNldCB0byB3cml0ZSB0bworICogQGxlbjogICAgICAgIG51bWJlciBvZiBieXRlcyB0byB3cml0ZQorICogQGJ1ZjogICAgICAgIHBvaW50ZXIgdG8gc3JjIGJ1ZmZlcgorICoKKyAqIFJldHVybjogbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gc3VjY2Vzc2Z1bGx5LCAtZXJybm8gb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBzc2l6ZV90IHNwaV9ub3Jfc3BpbWVtX3dyaXRlX2RhdGEoc3RydWN0IHNwaV9ub3IgKm5vciwgbG9mZl90IHRvLAorCQkJCQkgc2l6ZV90IGxlbiwgY29uc3QgdTggKmJ1ZikKK3sKKwlzdHJ1Y3Qgc3BpX21lbV9vcCBvcCA9CisJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQobm9yLT5wcm9ncmFtX29wY29kZSwgMSksCisJCQkgICBTUElfTUVNX09QX0FERFIobm9yLT5hZGRyX3dpZHRoLCB0bywgMSksCisJCQkgICBTUElfTUVNX09QX05PX0RVTU1ZLAorCQkJICAgU1BJX01FTV9PUF9EQVRBX09VVChsZW4sIGJ1ZiwgMSkpOworCisJb3AuY21kLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfaW5zdF9uYml0cyhub3ItPndyaXRlX3Byb3RvKTsKKwlvcC5hZGRyLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfYWRkcl9uYml0cyhub3ItPndyaXRlX3Byb3RvKTsKKwlvcC5kYXRhLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfZGF0YV9uYml0cyhub3ItPndyaXRlX3Byb3RvKTsKKworCWlmIChub3ItPnByb2dyYW1fb3Bjb2RlID09IFNQSU5PUl9PUF9BQUlfV1AgJiYgbm9yLT5zc3Rfd3JpdGVfc2Vjb25kKQorCQlvcC5hZGRyLm5ieXRlcyA9IDA7CisKKwlyZXR1cm4gc3BpX25vcl9zcGltZW1feGZlcl9kYXRhKG5vciwgJm9wKTsKK30KKworLyoqCisgKiBzcGlfbm9yX3dyaXRlX2RhdGEoKSAtIHdyaXRlIGRhdGEgdG8gZmxhc2ggbWVtb3J5CisgKiBAbm9yOiAgICAgICAgcG9pbnRlciB0byAnc3RydWN0IHNwaV9ub3InCisgKiBAdG86ICAgICAgICAgb2Zmc2V0IHRvIHdyaXRlIHRvCisgKiBAbGVuOiAgICAgICAgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlCisgKiBAYnVmOiAgICAgICAgcG9pbnRlciB0byBzcmMgYnVmZmVyCisgKgorICogUmV0dXJuOiBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBzdWNjZXNzZnVsbHksIC1lcnJubyBvdGhlcndpc2UKKyAqLworc3RhdGljIHNzaXplX3Qgc3BpX25vcl93cml0ZV9kYXRhKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCB0bywgc2l6ZV90IGxlbiwKKwkJCQkgIGNvbnN0IHU4ICpidWYpCit7CisJaWYgKG5vci0+c3BpbWVtKQorCQlyZXR1cm4gc3BpX25vcl9zcGltZW1fd3JpdGVfZGF0YShub3IsIHRvLCBsZW4sIGJ1Zik7CisKKwlyZXR1cm4gbm9yLT53cml0ZShub3IsIHRvLCBsZW4sIGJ1Zik7Cit9CisKIC8qCiAgKiBSZWFkIHRoZSBzdGF0dXMgcmVnaXN0ZXIsIHJldHVybmluZyBpdHMgdmFsdWUgaW4gdGhlIGxvY2F0aW9uCiAgKiBSZXR1cm4gdGhlIHN0YXR1cyByZWdpc3RlciB2YWx1ZS4KQEAgLTI5NiwxNSArMzk2LDI1IEBAIHN0cnVjdCBmbGFzaF9pbmZvIHsKIHN0YXRpYyBpbnQgcmVhZF9zcihzdHJ1Y3Qgc3BpX25vciAqbm9yKQogewogCWludCByZXQ7Ci0JdTggdmFsOwogCi0JcmV0ID0gbm9yLT5yZWFkX3JlZyhub3IsIFNQSU5PUl9PUF9SRFNSLCAmdmFsLCAxKTsKKwlpZiAobm9yLT5zcGltZW0pIHsKKwkJc3RydWN0IHNwaV9tZW1fb3Agb3AgPQorCQkJU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChTUElOT1JfT1BfUkRTUiwgMSksCisJCQkJICAgU1BJX01FTV9PUF9OT19BRERSLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fRFVNTVksCisJCQkJICAgU1BJX01FTV9PUF9EQVRBX0lOKDEsIG5vci0+Ym91bmNlYnVmLCAxKSk7CisKKwkJcmV0ID0gc3BpX21lbV9leGVjX29wKG5vci0+c3BpbWVtLCAmb3ApOworCX0gZWxzZSB7CisJCXJldCA9IG5vci0+cmVhZF9yZWcobm9yLCBTUElOT1JfT1BfUkRTUiwgbm9yLT5ib3VuY2VidWYsIDEpOworCX0KKwogCWlmIChyZXQgPCAwKSB7CiAJCXByX2VycigiZXJyb3IgJWQgcmVhZGluZyBTUlxuIiwgKGludCkgcmV0KTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZXR1cm4gdmFsOworCXJldHVybiBub3ItPmJvdW5jZWJ1ZlswXTsKIH0KIAogLyoKQEAgLTMxNSwxNSArNDI1LDI1IEBAIHN0YXRpYyBpbnQgcmVhZF9zcihzdHJ1Y3Qgc3BpX25vciAqbm9yKQogc3RhdGljIGludCByZWFkX2ZzcihzdHJ1Y3Qgc3BpX25vciAqbm9yKQogewogCWludCByZXQ7Ci0JdTggdmFsOwogCi0JcmV0ID0gbm9yLT5yZWFkX3JlZyhub3IsIFNQSU5PUl9PUF9SREZTUiwgJnZhbCwgMSk7CisJaWYgKG5vci0+c3BpbWVtKSB7CisJCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KKwkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoU1BJTk9SX09QX1JERlNSLCAxKSwKKwkJCQkgICBTUElfTUVNX09QX05PX0FERFIsCisJCQkJICAgU1BJX01FTV9PUF9OT19EVU1NWSwKKwkJCQkgICBTUElfTUVNX09QX0RBVEFfSU4oMSwgbm9yLT5ib3VuY2VidWYsIDEpKTsKKworCQlyZXQgPSBzcGlfbWVtX2V4ZWNfb3Aobm9yLT5zcGltZW0sICZvcCk7CisJfSBlbHNlIHsKKwkJcmV0ID0gbm9yLT5yZWFkX3JlZyhub3IsIFNQSU5PUl9PUF9SREZTUiwgbm9yLT5ib3VuY2VidWYsIDEpOworCX0KKwogCWlmIChyZXQgPCAwKSB7CiAJCXByX2VycigiZXJyb3IgJWQgcmVhZGluZyBGU1JcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7CiAJfQogCi0JcmV0dXJuIHZhbDsKKwlyZXR1cm4gbm9yLT5ib3VuY2VidWZbMF07CiB9CiAKIC8qCkBAIC0zMzQsMTUgKzQ1NCwyNSBAQCBzdGF0aWMgaW50IHJlYWRfZnNyKHN0cnVjdCBzcGlfbm9yICpub3IpCiBzdGF0aWMgaW50IHJlYWRfY3Ioc3RydWN0IHNwaV9ub3IgKm5vcikKIHsKIAlpbnQgcmV0OwotCXU4IHZhbDsKIAotCXJldCA9IG5vci0+cmVhZF9yZWcobm9yLCBTUElOT1JfT1BfUkRDUiwgJnZhbCwgMSk7CisJaWYgKG5vci0+c3BpbWVtKSB7CisJCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KKwkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoU1BJTk9SX09QX1JEQ1IsIDEpLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fQUREUiwKKwkJCQkgICBTUElfTUVNX09QX05PX0RVTU1ZLAorCQkJCSAgIFNQSV9NRU1fT1BfREFUQV9JTigxLCBub3ItPmJvdW5jZWJ1ZiwgMSkpOworCisJCXJldCA9IHNwaV9tZW1fZXhlY19vcChub3ItPnNwaW1lbSwgJm9wKTsKKwl9IGVsc2UgeworCQlyZXQgPSBub3ItPnJlYWRfcmVnKG5vciwgU1BJTk9SX09QX1JEQ1IsIG5vci0+Ym91bmNlYnVmLCAxKTsKKwl9CisKIAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKG5vci0+ZGV2LCAiZXJyb3IgJWQgcmVhZGluZyBDUlxuIiwgcmV0KTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZXR1cm4gdmFsOworCXJldHVybiBub3ItPmJvdW5jZWJ1ZlswXTsKIH0KIAogLyoKQEAgLTM1MSw4ICs0ODEsMTggQEAgc3RhdGljIGludCByZWFkX2NyKHN0cnVjdCBzcGlfbm9yICpub3IpCiAgKi8KIHN0YXRpYyBpbnQgd3JpdGVfc3Ioc3RydWN0IHNwaV9ub3IgKm5vciwgdTggdmFsKQogewotCW5vci0+Y21kX2J1ZlswXSA9IHZhbDsKLQlyZXR1cm4gbm9yLT53cml0ZV9yZWcobm9yLCBTUElOT1JfT1BfV1JTUiwgbm9yLT5jbWRfYnVmLCAxKTsKKwlub3ItPmJvdW5jZWJ1ZlswXSA9IHZhbDsKKwlpZiAobm9yLT5zcGltZW0pIHsKKwkJc3RydWN0IHNwaV9tZW1fb3Agb3AgPQorCQkJU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChTUElOT1JfT1BfV1JTUiwgMSksCisJCQkJICAgU1BJX01FTV9PUF9OT19BRERSLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fRFVNTVksCisJCQkJICAgU1BJX01FTV9PUF9EQVRBX0lOKDEsIG5vci0+Ym91bmNlYnVmLCAxKSk7CisKKwkJcmV0dXJuIHNwaV9tZW1fZXhlY19vcChub3ItPnNwaW1lbSwgJm9wKTsKKwl9CisKKwlyZXR1cm4gbm9yLT53cml0ZV9yZWcobm9yLCBTUElOT1JfT1BfV1JTUiwgbm9yLT5ib3VuY2VidWYsIDEpOwogfQogCiAvKgpAQCAtMzYxLDYgKzUwMSwxNiBAQCBzdGF0aWMgaW50IHdyaXRlX3NyKHN0cnVjdCBzcGlfbm9yICpub3IsIHU4IHZhbCkKICAqLwogc3RhdGljIGludCB3cml0ZV9lbmFibGUoc3RydWN0IHNwaV9ub3IgKm5vcikKIHsKKwlpZiAobm9yLT5zcGltZW0pIHsKKwkJc3RydWN0IHNwaV9tZW1fb3Agb3AgPQorCQkJU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChTUElOT1JfT1BfV1JFTiwgMSksCisJCQkJICAgU1BJX01FTV9PUF9OT19BRERSLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fRFVNTVksCisJCQkJICAgU1BJX01FTV9PUF9OT19EQVRBKTsKKworCQlyZXR1cm4gc3BpX21lbV9leGVjX29wKG5vci0+c3BpbWVtLCAmb3ApOworCX0KKwogCXJldHVybiBub3ItPndyaXRlX3JlZyhub3IsIFNQSU5PUl9PUF9XUkVOLCBOVUxMLCAwKTsKIH0KIApAQCAtMzY5LDYgKzUxOSwxNiBAQCBzdGF0aWMgaW50IHdyaXRlX2VuYWJsZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQogICovCiBzdGF0aWMgaW50IHdyaXRlX2Rpc2FibGUoc3RydWN0IHNwaV9ub3IgKm5vcikKIHsKKwlpZiAobm9yLT5zcGltZW0pIHsKKwkJc3RydWN0IHNwaV9tZW1fb3Agb3AgPQorCQkJU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChTUElOT1JfT1BfV1JESSwgMSksCisJCQkJICAgU1BJX01FTV9PUF9OT19BRERSLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fRFVNTVksCisJCQkJICAgU1BJX01FTV9PUF9OT19EQVRBKTsKKworCQlyZXR1cm4gc3BpX21lbV9leGVjX29wKG5vci0+c3BpbWVtLCAmb3ApOworCX0KKwogCXJldHVybiBub3ItPndyaXRlX3JlZyhub3IsIFNQSU5PUl9PUF9XUkRJLCBOVUxMLCAwKTsKIH0KIApAQCAtNDM5LDI0ICs1OTksMTIgQEAgc3RhdGljIHU4IHNwaV9ub3JfY29udmVydF8zdG80X2VyYXNlKHU4IG9wY29kZSkKIAogc3RhdGljIHZvaWQgc3BpX25vcl9zZXRfNGJ5dGVfb3Bjb2RlcyhzdHJ1Y3Qgc3BpX25vciAqbm9yKQogewotCS8qIERvIHNvbWUgbWFudWZhY3R1cmVyIGZpeHVwcyBmaXJzdCAqLwotCXN3aXRjaCAoSkVERUNfTUZSKG5vci0+aW5mbykpIHsKLQljYXNlIFNOT1JfTUZSX1NQQU5TSU9OOgotCQkvKiBObyBzbWFsbCBzZWN0b3IgZXJhc2UgZm9yIDQtYnl0ZSBjb21tYW5kIHNldCAqLwotCQlub3ItPmVyYXNlX29wY29kZSA9IFNQSU5PUl9PUF9TRTsKLQkJbm9yLT5tdGQuZXJhc2VzaXplID0gbm9yLT5pbmZvLT5zZWN0b3Jfc2l6ZTsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlicmVhazsKLQl9Ci0KIAlub3ItPnJlYWRfb3Bjb2RlID0gc3BpX25vcl9jb252ZXJ0XzN0bzRfcmVhZChub3ItPnJlYWRfb3Bjb2RlKTsKIAlub3ItPnByb2dyYW1fb3Bjb2RlID0gc3BpX25vcl9jb252ZXJ0XzN0bzRfcHJvZ3JhbShub3ItPnByb2dyYW1fb3Bjb2RlKTsKIAlub3ItPmVyYXNlX29wY29kZSA9IHNwaV9ub3JfY29udmVydF8zdG80X2VyYXNlKG5vci0+ZXJhc2Vfb3Bjb2RlKTsKIAogCWlmICghc3BpX25vcl9oYXNfdW5pZm9ybV9lcmFzZShub3IpKSB7Ci0JCXN0cnVjdCBzcGlfbm9yX2VyYXNlX21hcCAqbWFwID0gJm5vci0+ZXJhc2VfbWFwOworCQlzdHJ1Y3Qgc3BpX25vcl9lcmFzZV9tYXAgKm1hcCA9ICZub3ItPnBhcmFtcy5lcmFzZV9tYXA7CiAJCXN0cnVjdCBzcGlfbm9yX2VyYXNlX3R5cGUgKmVyYXNlOwogCQlpbnQgaTsKIApAQCAtNDY4LDYzICs2MTYsMTMxIEBAIHN0YXRpYyB2b2lkIHNwaV9ub3Jfc2V0XzRieXRlX29wY29kZXMoc3RydWN0IHNwaV9ub3IgKm5vcikKIAl9CiB9CiAKLS8qIEVuYWJsZS9kaXNhYmxlIDQtYnl0ZSBhZGRyZXNzaW5nIG1vZGUuICovCi1zdGF0aWMgaW50IHNldF80Ynl0ZShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBib29sIGVuYWJsZSkKK3N0YXRpYyBpbnQgbWFjcm9uaXhfc2V0XzRieXRlKHN0cnVjdCBzcGlfbm9yICpub3IsIGJvb2wgZW5hYmxlKQogewotCWludCBzdGF0dXM7Ci0JYm9vbCBuZWVkX3dyZW4gPSBmYWxzZTsKLQl1OCBjbWQ7CisJaWYgKG5vci0+c3BpbWVtKSB7CisJCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KKwkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoZW5hYmxlID8KKwkJCQkJCSAgU1BJTk9SX09QX0VONEIgOgorCQkJCQkJICBTUElOT1JfT1BfRVg0QiwKKwkJCQkJCSAgMSksCisJCQkJICBTUElfTUVNX09QX05PX0FERFIsCisJCQkJICBTUElfTUVNX09QX05PX0RVTU1ZLAorCQkJCSAgU1BJX01FTV9PUF9OT19EQVRBKTsKIAotCXN3aXRjaCAoSkVERUNfTUZSKG5vci0+aW5mbykpIHsKLQljYXNlIFNOT1JfTUZSX1NUOgotCWNhc2UgU05PUl9NRlJfTUlDUk9OOgotCQkvKiBTb21lIE1pY3JvbiBuZWVkIFdSRU4gY29tbWFuZDsgYWxsIHdpbGwgYWNjZXB0IGl0ICovCi0JCW5lZWRfd3JlbiA9IHRydWU7Ci0JCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgU05PUl9NRlJfTUFDUk9OSVg6Ci0JY2FzZSBTTk9SX01GUl9XSU5CT05EOgotCQlpZiAobmVlZF93cmVuKQotCQkJd3JpdGVfZW5hYmxlKG5vcik7Ci0KLQkJY21kID0gZW5hYmxlID8gU1BJTk9SX09QX0VONEIgOiBTUElOT1JfT1BfRVg0QjsKLQkJc3RhdHVzID0gbm9yLT53cml0ZV9yZWcobm9yLCBjbWQsIE5VTEwsIDApOwotCQlpZiAobmVlZF93cmVuKQotCQkJd3JpdGVfZGlzYWJsZShub3IpOwotCi0JCWlmICghc3RhdHVzICYmICFlbmFibGUgJiYKLQkJICAgIEpFREVDX01GUihub3ItPmluZm8pID09IFNOT1JfTUZSX1dJTkJPTkQpIHsKLQkJCS8qCi0JCQkgKiBPbiBXaW5ib25kIFcyNVEyNTZGViwgbGVhdmluZyA0Ynl0ZSBtb2RlIGNhdXNlcwotCQkJICogdGhlIEV4dGVuZGVkIEFkZHJlc3MgUmVnaXN0ZXIgdG8gYmUgc2V0IHRvIDEsIHNvIGFsbAotCQkJICogMy1ieXRlLWFkZHJlc3MgcmVhZHMgY29tZSBmcm9tIHRoZSBzZWNvbmQgMTZNLgotCQkJICogV2UgbXVzdCBjbGVhciB0aGUgcmVnaXN0ZXIgdG8gZW5hYmxlIG5vcm1hbCBiZWhhdmlvci4KLQkJCSAqLwotCQkJd3JpdGVfZW5hYmxlKG5vcik7Ci0JCQlub3ItPmNtZF9idWZbMF0gPSAwOwotCQkJbm9yLT53cml0ZV9yZWcobm9yLCBTUElOT1JfT1BfV1JFQVIsIG5vci0+Y21kX2J1ZiwgMSk7Ci0JCQl3cml0ZV9kaXNhYmxlKG5vcik7Ci0JCX0KLQotCQlyZXR1cm4gc3RhdHVzOwotCWRlZmF1bHQ6Ci0JCS8qIFNwYW5zaW9uIHN0eWxlICovCi0JCW5vci0+Y21kX2J1ZlswXSA9IGVuYWJsZSA8PCA3OwotCQlyZXR1cm4gbm9yLT53cml0ZV9yZWcobm9yLCBTUElOT1JfT1BfQlJXUiwgbm9yLT5jbWRfYnVmLCAxKTsKKwkJcmV0dXJuIHNwaV9tZW1fZXhlY19vcChub3ItPnNwaW1lbSwgJm9wKTsKIAl9CisKKwlyZXR1cm4gbm9yLT53cml0ZV9yZWcobm9yLCBlbmFibGUgPyBTUElOT1JfT1BfRU40QiA6IFNQSU5PUl9PUF9FWDRCLAorCQkJICAgICAgTlVMTCwgMCk7Cit9CisKK3N0YXRpYyBpbnQgc3RfbWljcm9uX3NldF80Ynl0ZShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBib29sIGVuYWJsZSkKK3sKKwlpbnQgcmV0OworCisJd3JpdGVfZW5hYmxlKG5vcik7CisJcmV0ID0gbWFjcm9uaXhfc2V0XzRieXRlKG5vciwgZW5hYmxlKTsKKwl3cml0ZV9kaXNhYmxlKG5vcik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHNwYW5zaW9uX3NldF80Ynl0ZShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBib29sIGVuYWJsZSkKK3sKKwlub3ItPmJvdW5jZWJ1ZlswXSA9IGVuYWJsZSA8PCA3OworCisJaWYgKG5vci0+c3BpbWVtKSB7CisJCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KKwkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoU1BJTk9SX09QX0JSV1IsIDEpLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fQUREUiwKKwkJCQkgICBTUElfTUVNX09QX05PX0RVTU1ZLAorCQkJCSAgIFNQSV9NRU1fT1BfREFUQV9PVVQoMSwgbm9yLT5ib3VuY2VidWYsIDEpKTsKKworCQlyZXR1cm4gc3BpX21lbV9leGVjX29wKG5vci0+c3BpbWVtLCAmb3ApOworCX0KKworCXJldHVybiBub3ItPndyaXRlX3JlZyhub3IsIFNQSU5PUl9PUF9CUldSLCBub3ItPmJvdW5jZWJ1ZiwgMSk7Cit9CisKK3N0YXRpYyBpbnQgc3BpX25vcl93cml0ZV9lYXIoc3RydWN0IHNwaV9ub3IgKm5vciwgdTggZWFyKQoreworCW5vci0+Ym91bmNlYnVmWzBdID0gZWFyOworCisJaWYgKG5vci0+c3BpbWVtKSB7CisJCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KKwkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoU1BJTk9SX09QX1dSRUFSLCAxKSwKKwkJCQkgICBTUElfTUVNX09QX05PX0FERFIsCisJCQkJICAgU1BJX01FTV9PUF9OT19EVU1NWSwKKwkJCQkgICBTUElfTUVNX09QX0RBVEFfT1VUKDEsIG5vci0+Ym91bmNlYnVmLCAxKSk7CisKKwkJcmV0dXJuIHNwaV9tZW1fZXhlY19vcChub3ItPnNwaW1lbSwgJm9wKTsKKwl9CisKKwlyZXR1cm4gbm9yLT53cml0ZV9yZWcobm9yLCBTUElOT1JfT1BfV1JFQVIsIG5vci0+Ym91bmNlYnVmLCAxKTsKK30KKworc3RhdGljIGludCB3aW5ib25kX3NldF80Ynl0ZShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBib29sIGVuYWJsZSkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gbWFjcm9uaXhfc2V0XzRieXRlKG5vciwgZW5hYmxlKTsKKwlpZiAocmV0IHx8IGVuYWJsZSkKKwkJcmV0dXJuIHJldDsKKworCS8qCisJICogT24gV2luYm9uZCBXMjVRMjU2RlYsIGxlYXZpbmcgNGJ5dGUgbW9kZSBjYXVzZXMgdGhlIEV4dGVuZGVkIEFkZHJlc3MKKwkgKiBSZWdpc3RlciB0byBiZSBzZXQgdG8gMSwgc28gYWxsIDMtYnl0ZS1hZGRyZXNzIHJlYWRzIGNvbWUgZnJvbSB0aGUKKwkgKiBzZWNvbmQgMTZNLiBXZSBtdXN0IGNsZWFyIHRoZSByZWdpc3RlciB0byBlbmFibGUgbm9ybWFsIGJlaGF2aW9yLgorCSAqLworCXdyaXRlX2VuYWJsZShub3IpOworCXJldCA9IHNwaV9ub3Jfd3JpdGVfZWFyKG5vciwgMCk7CisJd3JpdGVfZGlzYWJsZShub3IpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBzcGlfbm9yX3hyZWFkX3NyKHN0cnVjdCBzcGlfbm9yICpub3IsIHU4ICpzcikKK3sKKwlpZiAobm9yLT5zcGltZW0pIHsKKwkJc3RydWN0IHNwaV9tZW1fb3Agb3AgPQorCQkJU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChTUElOT1JfT1BfWFJEU1IsIDEpLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fQUREUiwKKwkJCQkgICBTUElfTUVNX09QX05PX0RVTU1ZLAorCQkJCSAgIFNQSV9NRU1fT1BfREFUQV9JTigxLCBzciwgMSkpOworCisJCXJldHVybiBzcGlfbWVtX2V4ZWNfb3Aobm9yLT5zcGltZW0sICZvcCk7CisJfQorCisJcmV0dXJuIG5vci0+cmVhZF9yZWcobm9yLCBTUElOT1JfT1BfWFJEU1IsIHNyLCAxKTsKIH0KIAogc3RhdGljIGludCBzM2FuX3NyX3JlYWR5KHN0cnVjdCBzcGlfbm9yICpub3IpCiB7CiAJaW50IHJldDsKLQl1OCB2YWw7CiAKLQlyZXQgPSBub3ItPnJlYWRfcmVnKG5vciwgU1BJTk9SX09QX1hSRFNSLCAmdmFsLCAxKTsKKwlyZXQgPSBzcGlfbm9yX3hyZWFkX3NyKG5vciwgbm9yLT5ib3VuY2VidWYpOwogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIobm9yLT5kZXYsICJlcnJvciAlZCByZWFkaW5nIFhSRFNSXG4iLCAoaW50KSByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldHVybiAhISh2YWwgJiBYU1JfUkRZKTsKKwlyZXR1cm4gISEobm9yLT5ib3VuY2VidWZbMF0gJiBYU1JfUkRZKTsKK30KKworc3RhdGljIGludCBzcGlfbm9yX2NsZWFyX3NyKHN0cnVjdCBzcGlfbm9yICpub3IpCit7CisJaWYgKG5vci0+c3BpbWVtKSB7CisJCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KKwkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoU1BJTk9SX09QX0NMU1IsIDEpLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fQUREUiwKKwkJCQkgICBTUElfTUVNX09QX05PX0RVTU1ZLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fREFUQSk7CisKKwkJcmV0dXJuIHNwaV9tZW1fZXhlY19vcChub3ItPnNwaW1lbSwgJm9wKTsKKwl9CisKKwlyZXR1cm4gbm9yLT53cml0ZV9yZWcobm9yLCBTUElOT1JfT1BfQ0xTUiwgTlVMTCwgMCk7CiB9CiAKIHN0YXRpYyBpbnQgc3BpX25vcl9zcl9yZWFkeShzdHJ1Y3Qgc3BpX25vciAqbm9yKQpAQCAtNTM5LDEzICs3NTUsMjggQEAgc3RhdGljIGludCBzcGlfbm9yX3NyX3JlYWR5KHN0cnVjdCBzcGlfbm9yICpub3IpCiAJCWVsc2UKIAkJCWRldl9lcnIobm9yLT5kZXYsICJQcm9ncmFtbWluZyBFcnJvciBvY2N1cnJlZFxuIik7CiAKLQkJbm9yLT53cml0ZV9yZWcobm9yLCBTUElOT1JfT1BfQ0xTUiwgTlVMTCwgMCk7CisJCXNwaV9ub3JfY2xlYXJfc3Iobm9yKTsKIAkJcmV0dXJuIC1FSU87CiAJfQogCiAJcmV0dXJuICEoc3IgJiBTUl9XSVApOwogfQogCitzdGF0aWMgaW50IHNwaV9ub3JfY2xlYXJfZnNyKHN0cnVjdCBzcGlfbm9yICpub3IpCit7CisJaWYgKG5vci0+c3BpbWVtKSB7CisJCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KKwkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoU1BJTk9SX09QX0NMRlNSLCAxKSwKKwkJCQkgICBTUElfTUVNX09QX05PX0FERFIsCisJCQkJICAgU1BJX01FTV9PUF9OT19EVU1NWSwKKwkJCQkgICBTUElfTUVNX09QX05PX0RBVEEpOworCisJCXJldHVybiBzcGlfbWVtX2V4ZWNfb3Aobm9yLT5zcGltZW0sICZvcCk7CisJfQorCisJcmV0dXJuIG5vci0+d3JpdGVfcmVnKG5vciwgU1BJTk9SX09QX0NMRlNSLCBOVUxMLCAwKTsKK30KKwogc3RhdGljIGludCBzcGlfbm9yX2Zzcl9yZWFkeShzdHJ1Y3Qgc3BpX25vciAqbm9yKQogewogCWludCBmc3IgPSByZWFkX2Zzcihub3IpOwpAQCAtNTYyLDcgKzc5Myw3IEBAIHN0YXRpYyBpbnQgc3BpX25vcl9mc3JfcmVhZHkoc3RydWN0IHNwaV9ub3IgKm5vcikKIAkJCWRldl9lcnIobm9yLT5kZXYsCiAJCQkiQXR0ZW1wdGVkIHRvIG1vZGlmeSBhIHByb3RlY3RlZCBzZWN0b3IuXG4iKTsKIAotCQlub3ItPndyaXRlX3JlZyhub3IsIFNQSU5PUl9PUF9DTEZTUiwgTlVMTCwgMCk7CisJCXNwaV9ub3JfY2xlYXJfZnNyKG5vcik7CiAJCXJldHVybiAtRUlPOwogCX0KIApAQCAtNjMwLDYgKzg2MSwxNiBAQCBzdGF0aWMgaW50IGVyYXNlX2NoaXAoc3RydWN0IHNwaV9ub3IgKm5vcikKIHsKIAlkZXZfZGJnKG5vci0+ZGV2LCAiICVsbGRLaUJcbiIsIChsb25nIGxvbmcpKG5vci0+bXRkLnNpemUgPj4gMTApKTsKIAorCWlmIChub3ItPnNwaW1lbSkgeworCQlzdHJ1Y3Qgc3BpX21lbV9vcCBvcCA9CisJCQlTUElfTUVNX09QKFNQSV9NRU1fT1BfQ01EKFNQSU5PUl9PUF9DSElQX0VSQVNFLCAxKSwKKwkJCQkgICBTUElfTUVNX09QX05PX0FERFIsCisJCQkJICAgU1BJX01FTV9PUF9OT19EVU1NWSwKKwkJCQkgICBTUElfTUVNX09QX05PX0RBVEEpOworCisJCXJldHVybiBzcGlfbWVtX2V4ZWNfb3Aobm9yLT5zcGltZW0sICZvcCk7CisJfQorCiAJcmV0dXJuIG5vci0+d3JpdGVfcmVnKG5vciwgU1BJTk9SX09QX0NISVBfRVJBU0UsIE5VTEwsIDApOwogfQogCkBAIC02NjYsMTAgKzkwNyw5IEBAIHN0YXRpYyB2b2lkIHNwaV9ub3JfdW5sb2NrX2FuZF91bnByZXAoc3RydWN0IHNwaV9ub3IgKm5vciwgZW51bSBzcGlfbm9yX29wcyBvcHMpCiAgKiBBZGRyIGNhbiBzYWZlbHkgYmUgdW5zaWduZWQgaW50LCB0aGUgYmlnZ2VzdCBTM0FOIGRldmljZSBpcyBzbWFsbGVyIHRoYW4KICAqIDQgTWlCLgogICovCi1zdGF0aWMgbG9mZl90IHNwaV9ub3JfczNhbl9hZGRyX2NvbnZlcnQoc3RydWN0IHNwaV9ub3IgKm5vciwgdW5zaWduZWQgaW50IGFkZHIpCitzdGF0aWMgdTMyIHMzYW5fY29udmVydF9hZGRyKHN0cnVjdCBzcGlfbm9yICpub3IsIHUzMiBhZGRyKQogewotCXVuc2lnbmVkIGludCBvZmZzZXQ7Ci0JdW5zaWduZWQgaW50IHBhZ2U7CisJdTMyIG9mZnNldCwgcGFnZTsKIAogCW9mZnNldCA9IGFkZHIgJSBub3ItPnBhZ2Vfc2l6ZTsKIAlwYWdlID0gYWRkciAvIG5vci0+cGFnZV9zaXplOwpAQCAtNjc4LDMwICs5MTgsNDcgQEAgc3RhdGljIGxvZmZfdCBzcGlfbm9yX3MzYW5fYWRkcl9jb252ZXJ0KHN0cnVjdCBzcGlfbm9yICpub3IsIHVuc2lnbmVkIGludCBhZGRyKQogCXJldHVybiBwYWdlIHwgb2Zmc2V0OwogfQogCitzdGF0aWMgdTMyIHNwaV9ub3JfY29udmVydF9hZGRyKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBhZGRyKQoreworCWlmICghbm9yLT5wYXJhbXMuY29udmVydF9hZGRyKQorCQlyZXR1cm4gYWRkcjsKKworCXJldHVybiBub3ItPnBhcmFtcy5jb252ZXJ0X2FkZHIobm9yLCBhZGRyKTsKK30KKwogLyoKICAqIEluaXRpYXRlIHRoZSBlcmFzdXJlIG9mIGEgc2luZ2xlIHNlY3RvcgogICovCiBzdGF0aWMgaW50IHNwaV9ub3JfZXJhc2Vfc2VjdG9yKHN0cnVjdCBzcGlfbm9yICpub3IsIHUzMiBhZGRyKQogewotCXU4IGJ1ZltTUElfTk9SX01BWF9BRERSX1dJRFRIXTsKIAlpbnQgaTsKIAotCWlmIChub3ItPmZsYWdzICYgU05PUl9GX1MzQU5fQUREUl9ERUZBVUxUKQotCQlhZGRyID0gc3BpX25vcl9zM2FuX2FkZHJfY29udmVydChub3IsIGFkZHIpOworCWFkZHIgPSBzcGlfbm9yX2NvbnZlcnRfYWRkcihub3IsIGFkZHIpOwogCiAJaWYgKG5vci0+ZXJhc2UpCiAJCXJldHVybiBub3ItPmVyYXNlKG5vciwgYWRkcik7CiAKKwlpZiAobm9yLT5zcGltZW0pIHsKKwkJc3RydWN0IHNwaV9tZW1fb3Agb3AgPQorCQkJU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChub3ItPmVyYXNlX29wY29kZSwgMSksCisJCQkJICAgU1BJX01FTV9PUF9BRERSKG5vci0+YWRkcl93aWR0aCwgYWRkciwgMSksCisJCQkJICAgU1BJX01FTV9PUF9OT19EVU1NWSwKKwkJCQkgICBTUElfTUVNX09QX05PX0RBVEEpOworCisJCXJldHVybiBzcGlfbWVtX2V4ZWNfb3Aobm9yLT5zcGltZW0sICZvcCk7CisJfQorCiAJLyoKIAkgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uLCBpZiBkcml2ZXIgZG9lc24ndCBoYXZlIGEgc3BlY2lhbGl6ZWQgSFcKIAkgKiBjb250cm9sCiAJICovCiAJZm9yIChpID0gbm9yLT5hZGRyX3dpZHRoIC0gMTsgaSA+PSAwOyBpLS0pIHsKLQkJYnVmW2ldID0gYWRkciAmIDB4ZmY7CisJCW5vci0+Ym91bmNlYnVmW2ldID0gYWRkciAmIDB4ZmY7CiAJCWFkZHIgPj49IDg7CiAJfQogCi0JcmV0dXJuIG5vci0+d3JpdGVfcmVnKG5vciwgbm9yLT5lcmFzZV9vcGNvZGUsIGJ1Ziwgbm9yLT5hZGRyX3dpZHRoKTsKKwlyZXR1cm4gbm9yLT53cml0ZV9yZWcobm9yLCBub3ItPmVyYXNlX29wY29kZSwgbm9yLT5ib3VuY2VidWYsCisJCQkgICAgICBub3ItPmFkZHJfd2lkdGgpOwogfQogCiAvKioKQEAgLTg3Niw3ICsxMTMzLDcgQEAgc3RhdGljIGludCBzcGlfbm9yX2luaXRfZXJhc2VfY21kX2xpc3Qoc3RydWN0IHNwaV9ub3IgKm5vciwKIAkJCQkgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqZXJhc2VfbGlzdCwKIAkJCQkgICAgICAgdTY0IGFkZHIsIHUzMiBsZW4pCiB7Ci0JY29uc3Qgc3RydWN0IHNwaV9ub3JfZXJhc2VfbWFwICptYXAgPSAmbm9yLT5lcmFzZV9tYXA7CisJY29uc3Qgc3RydWN0IHNwaV9ub3JfZXJhc2VfbWFwICptYXAgPSAmbm9yLT5wYXJhbXMuZXJhc2VfbWFwOwogCWNvbnN0IHN0cnVjdCBzcGlfbm9yX2VyYXNlX3R5cGUgKmVyYXNlLCAqcHJldl9lcmFzZSA9IE5VTEw7CiAJc3RydWN0IHNwaV9ub3JfZXJhc2VfcmVnaW9uICpyZWdpb247CiAJc3RydWN0IHNwaV9ub3JfZXJhc2VfY29tbWFuZCAqY21kID0gTlVMTDsKQEAgLTEzNDksNiArMTYwNiwxMiBAQCBzdGF0aWMgaW50IHN0bV9pc19sb2NrZWQoc3RydWN0IHNwaV9ub3IgKm5vciwgbG9mZl90IG9mcywgdWludDY0X3QgbGVuKQogCXJldHVybiBzdG1faXNfbG9ja2VkX3NyKG5vciwgb2ZzLCBsZW4sIHN0YXR1cyk7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX25vcl9sb2NraW5nX29wcyBzdG1fbG9ja2luZ19vcHMgPSB7CisJLmxvY2sgPSBzdG1fbG9jaywKKwkudW5sb2NrID0gc3RtX3VubG9jaywKKwkuaXNfbG9ja2VkID0gc3RtX2lzX2xvY2tlZCwKK307CisKIHN0YXRpYyBpbnQgc3BpX25vcl9sb2NrKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3Qgb2ZzLCB1aW50NjRfdCBsZW4pCiB7CiAJc3RydWN0IHNwaV9ub3IgKm5vciA9IG10ZF90b19zcGlfbm9yKG10ZCk7CkBAIC0xMzU4LDcgKzE2MjEsNyBAQCBzdGF0aWMgaW50IHNwaV9ub3JfbG9jayhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IG9mcywgdWludDY0X3QgbGVuKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSBub3ItPmZsYXNoX2xvY2sobm9yLCBvZnMsIGxlbik7CisJcmV0ID0gbm9yLT5wYXJhbXMubG9ja2luZ19vcHMtPmxvY2sobm9yLCBvZnMsIGxlbik7CiAKIAlzcGlfbm9yX3VubG9ja19hbmRfdW5wcmVwKG5vciwgU1BJX05PUl9PUFNfVU5MT0NLKTsKIAlyZXR1cm4gcmV0OwpAQCAtMTM3Myw3ICsxNjM2LDcgQEAgc3RhdGljIGludCBzcGlfbm9yX3VubG9jayhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IG9mcywgdWludDY0X3QgbGVuKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSBub3ItPmZsYXNoX3VubG9jayhub3IsIG9mcywgbGVuKTsKKwlyZXQgPSBub3ItPnBhcmFtcy5sb2NraW5nX29wcy0+dW5sb2NrKG5vciwgb2ZzLCBsZW4pOwogCiAJc3BpX25vcl91bmxvY2tfYW5kX3VucHJlcChub3IsIFNQSV9OT1JfT1BTX0xPQ0spOwogCXJldHVybiByZXQ7CkBAIC0xMzg4LDcgKzE2NTEsNyBAQCBzdGF0aWMgaW50IHNwaV9ub3JfaXNfbG9ja2VkKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3Qgb2ZzLCB1aW50NjRfdCBsZW4pCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IG5vci0+Zmxhc2hfaXNfbG9ja2VkKG5vciwgb2ZzLCBsZW4pOworCXJldCA9IG5vci0+cGFyYW1zLmxvY2tpbmdfb3BzLT5pc19sb2NrZWQobm9yLCBvZnMsIGxlbik7CiAKIAlzcGlfbm9yX3VubG9ja19hbmRfdW5wcmVwKG5vciwgU1BJX05PUl9PUFNfTE9DSyk7CiAJcmV0dXJuIHJldDsKQEAgLTE0MDYsNyArMTY2OSwxOCBAQCBzdGF0aWMgaW50IHdyaXRlX3NyX2NyKHN0cnVjdCBzcGlfbm9yICpub3IsIHU4ICpzcl9jcikKIAogCXdyaXRlX2VuYWJsZShub3IpOwogCi0JcmV0ID0gbm9yLT53cml0ZV9yZWcobm9yLCBTUElOT1JfT1BfV1JTUiwgc3JfY3IsIDIpOworCWlmIChub3ItPnNwaW1lbSkgeworCQlzdHJ1Y3Qgc3BpX21lbV9vcCBvcCA9CisJCQlTUElfTUVNX09QKFNQSV9NRU1fT1BfQ01EKFNQSU5PUl9PUF9XUlNSLCAxKSwKKwkJCQkgICBTUElfTUVNX09QX05PX0FERFIsCisJCQkJICAgU1BJX01FTV9PUF9OT19EVU1NWSwKKwkJCQkgICBTUElfTUVNX09QX0RBVEFfT1VUKDIsIHNyX2NyLCAxKSk7CisKKwkJcmV0ID0gc3BpX21lbV9leGVjX29wKG5vci0+c3BpbWVtLCAmb3ApOworCX0gZWxzZSB7CisJCXJldCA9IG5vci0+d3JpdGVfcmVnKG5vciwgU1BJTk9SX09QX1dSU1IsIHNyX2NyLCAyKTsKKwl9CisKIAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKG5vci0+ZGV2LAogCQkJImVycm9yIHdoaWxlIHdyaXRpbmcgY29uZmlndXJhdGlvbiByZWdpc3RlclxuIik7CkBAIC0xNDg1LDkgKzE3NTksMTEgQEAgc3RhdGljIGludCBtYWNyb25peF9xdWFkX2VuYWJsZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQogICovCiBzdGF0aWMgaW50IHNwYW5zaW9uX3F1YWRfZW5hYmxlKHN0cnVjdCBzcGlfbm9yICpub3IpCiB7Ci0JdTggc3JfY3JbMl0gPSB7MCwgQ1JfUVVBRF9FTl9TUEFOfTsKKwl1OCAqc3JfY3IgPSBub3ItPmJvdW5jZWJ1ZjsKIAlpbnQgcmV0OwogCisJc3JfY3JbMF0gPSAwOworCXNyX2NyWzFdID0gQ1JfUVVBRF9FTl9TUEFOOwogCXJldCA9IHdyaXRlX3NyX2NyKG5vciwgc3JfY3IpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0xNTE3LDcgKzE3OTMsNyBAQCBzdGF0aWMgaW50IHNwYW5zaW9uX3F1YWRfZW5hYmxlKHN0cnVjdCBzcGlfbm9yICpub3IpCiAgKi8KIHN0YXRpYyBpbnQgc3BhbnNpb25fbm9fcmVhZF9jcl9xdWFkX2VuYWJsZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQogewotCXU4IHNyX2NyWzJdOworCXU4ICpzcl9jciA9IG5vci0+Ym91bmNlYnVmOwogCWludCByZXQ7CiAKIAkvKiBLZWVwIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBTdGF0dXMgUmVnaXN0ZXIuICovCkBAIC0xNTQ4LDcgKzE4MjQsNyBAQCBzdGF0aWMgaW50IHNwYW5zaW9uX25vX3JlYWRfY3JfcXVhZF9lbmFibGUoc3RydWN0IHNwaV9ub3IgKm5vcikKIHN0YXRpYyBpbnQgc3BhbnNpb25fcmVhZF9jcl9xdWFkX2VuYWJsZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IG5vci0+ZGV2OwotCXU4IHNyX2NyWzJdOworCXU4ICpzcl9jciA9IG5vci0+Ym91bmNlYnVmOwogCWludCByZXQ7CiAKIAkvKiBDaGVjayBjdXJyZW50IFF1YWQgRW5hYmxlIGJpdCB2YWx1ZS4gKi8KQEAgLTE1ODUsNiArMTg2MSwzNiBAQCBzdGF0aWMgaW50IHNwYW5zaW9uX3JlYWRfY3JfcXVhZF9lbmFibGUoc3RydWN0IHNwaV9ub3IgKm5vcikKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBzcGlfbm9yX3dyaXRlX3NyMihzdHJ1Y3Qgc3BpX25vciAqbm9yLCB1OCAqc3IyKQoreworCWlmIChub3ItPnNwaW1lbSkgeworCQlzdHJ1Y3Qgc3BpX21lbV9vcCBvcCA9CisJCQlTUElfTUVNX09QKFNQSV9NRU1fT1BfQ01EKFNQSU5PUl9PUF9XUlNSMiwgMSksCisJCQkJICAgU1BJX01FTV9PUF9OT19BRERSLAorCQkJCSAgIFNQSV9NRU1fT1BfTk9fRFVNTVksCisJCQkJICAgU1BJX01FTV9PUF9EQVRBX09VVCgxLCBzcjIsIDEpKTsKKworCQlyZXR1cm4gc3BpX21lbV9leGVjX29wKG5vci0+c3BpbWVtLCAmb3ApOworCX0KKworCXJldHVybiBub3ItPndyaXRlX3JlZyhub3IsIFNQSU5PUl9PUF9XUlNSMiwgc3IyLCAxKTsKK30KKworc3RhdGljIGludCBzcGlfbm9yX3JlYWRfc3IyKHN0cnVjdCBzcGlfbm9yICpub3IsIHU4ICpzcjIpCit7CisJaWYgKG5vci0+c3BpbWVtKSB7CisJCXN0cnVjdCBzcGlfbWVtX29wIG9wID0KKwkJCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoU1BJTk9SX09QX1JEU1IyLCAxKSwKKwkJCQkgICBTUElfTUVNX09QX05PX0FERFIsCisJCQkJICAgU1BJX01FTV9PUF9OT19EVU1NWSwKKwkJCQkgICBTUElfTUVNX09QX0RBVEFfSU4oMSwgc3IyLCAxKSk7CisKKwkJcmV0dXJuIHNwaV9tZW1fZXhlY19vcChub3ItPnNwaW1lbSwgJm9wKTsKKwl9CisKKwlyZXR1cm4gbm9yLT5yZWFkX3JlZyhub3IsIFNQSU5PUl9PUF9SRFNSMiwgc3IyLCAxKTsKK30KKwogLyoqCiAgKiBzcjJfYml0N19xdWFkX2VuYWJsZSgpIC0gc2V0IFFFIGJpdCBpbiBTdGF0dXMgUmVnaXN0ZXIgMi4KICAqIEBub3I6CXBvaW50ZXIgdG8gYSAnc3RydWN0IHNwaV9ub3InCkBAIC0xNTk5LDIyICsxOTA1LDIyIEBAIHN0YXRpYyBpbnQgc3BhbnNpb25fcmVhZF9jcl9xdWFkX2VuYWJsZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQogICovCiBzdGF0aWMgaW50IHNyMl9iaXQ3X3F1YWRfZW5hYmxlKHN0cnVjdCBzcGlfbm9yICpub3IpCiB7Ci0JdTggc3IyOworCXU4ICpzcjIgPSBub3ItPmJvdW5jZWJ1ZjsKIAlpbnQgcmV0OwogCiAJLyogQ2hlY2sgY3VycmVudCBRdWFkIEVuYWJsZSBiaXQgdmFsdWUuICovCi0JcmV0ID0gbm9yLT5yZWFkX3JlZyhub3IsIFNQSU5PUl9PUF9SRFNSMiwgJnNyMiwgMSk7CisJcmV0ID0gc3BpX25vcl9yZWFkX3NyMihub3IsIHNyMik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKLQlpZiAoc3IyICYgU1IyX1FVQURfRU5fQklUNykKKwlpZiAoKnNyMiAmIFNSMl9RVUFEX0VOX0JJVDcpCiAJCXJldHVybiAwOwogCiAJLyogVXBkYXRlIHRoZSBRdWFkIEVuYWJsZSBiaXQuICovCi0Jc3IyIHw9IFNSMl9RVUFEX0VOX0JJVDc7CisJKnNyMiB8PSBTUjJfUVVBRF9FTl9CSVQ3OwogCiAJd3JpdGVfZW5hYmxlKG5vcik7CiAKLQlyZXQgPSBub3ItPndyaXRlX3JlZyhub3IsIFNQSU5PUl9PUF9XUlNSMiwgJnNyMiwgMSk7CisJcmV0ID0gc3BpX25vcl93cml0ZV9zcjIobm9yLCBzcjIpOwogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIobm9yLT5kZXYsICJlcnJvciB3aGlsZSB3cml0aW5nIHN0YXR1cyByZWdpc3RlciAyXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xNjI3LDggKzE5MzMsOCBAQCBzdGF0aWMgaW50IHNyMl9iaXQ3X3F1YWRfZW5hYmxlKHN0cnVjdCBzcGlfbm9yICpub3IpCiAJfQogCiAJLyogUmVhZCBiYWNrIGFuZCBjaGVjayBpdC4gKi8KLQlyZXQgPSBub3ItPnJlYWRfcmVnKG5vciwgU1BJTk9SX09QX1JEU1IyLCAmc3IyLCAxKTsKLQlpZiAoIShyZXQgPiAwICYmIChzcjIgJiBTUjJfUVVBRF9FTl9CSVQ3KSkpIHsKKwlyZXQgPSBzcGlfbm9yX3JlYWRfc3IyKG5vciwgc3IyKTsKKwlpZiAoIShyZXQgPiAwICYmICgqc3IyICYgU1IyX1FVQURfRU5fQklUNykpKSB7CiAJCWRldl9lcnIobm9yLT5kZXYsICJTUjIgUXVhZCBiaXQgbm90IHNldFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE2ODcsNyArMTk5Myw3IEBAIHN0YXRpYyBpbnQgc3BpX25vcl9zcGFuc2lvbl9jbGVhcl9zcl9icChzdHJ1Y3Qgc3BpX25vciAqbm9yKQogewogCWludCByZXQ7CiAJdTggbWFzayA9IFNSX0JQMiB8IFNSX0JQMSB8IFNSX0JQMDsKLQl1OCBzcl9jclsyXSA9IHswfTsKKwl1OCAqc3JfY3IgPSAgbm9yLT5ib3VuY2VidWY7CiAKIAkvKiBDaGVjayBjdXJyZW50IFF1YWQgRW5hYmxlIGJpdCB2YWx1ZS4gKi8KIAlyZXQgPSByZWFkX2NyKG5vcik7CkBAIC0xODIyLDYgKzIxMjgsMjEgQEAgc3RhdGljIHN0cnVjdCBzcGlfbm9yX2ZpeHVwcyBteDI1bDI1NjM1X2ZpeHVwcyA9IHsKIAkucG9zdF9iZnB0ID0gbXgyNWwyNTYzNV9wb3N0X2JmcHRfZml4dXBzLAogfTsKIAorc3RhdGljIHZvaWQgZ2QyNXEyNTZfZGVmYXVsdF9pbml0KHN0cnVjdCBzcGlfbm9yICpub3IpCit7CisJLyoKKwkgKiBTb21lIG1hbnVmYWN0dXJlciBsaWtlIEdpZ2FEZXZpY2UgbWF5IHVzZSBkaWZmZXJlbnQKKwkgKiBiaXQgdG8gc2V0IFFFIG9uIGRpZmZlcmVudCBtZW1vcmllcywgc28gdGhlIE1GUiBjYW4ndAorCSAqIGluZGljYXRlIHRoZSBxdWFkX2VuYWJsZSBtZXRob2QgZm9yIHRoaXMgY2FzZSwgd2UgbmVlZAorCSAqIHRvIHNldCBpdCBpbiB0aGUgZGVmYXVsdF9pbml0IGZpeHVwIGhvb2suCisJICovCisJbm9yLT5wYXJhbXMucXVhZF9lbmFibGUgPSBtYWNyb25peF9xdWFkX2VuYWJsZTsKK30KKworc3RhdGljIHN0cnVjdCBzcGlfbm9yX2ZpeHVwcyBnZDI1cTI1Nl9maXh1cHMgPSB7CisJLmRlZmF1bHRfaW5pdCA9IGdkMjVxMjU2X2RlZmF1bHRfaW5pdCwKK307CisKIC8qIE5PVEU6IGRvdWJsZSBjaGVjayBjb21tYW5kIHNldHMgYW5kIG1lbW9yeSBvcmdhbml6YXRpb24gd2hlbiB5b3UgYWRkCiAgKiBtb3JlIG5vciBjaGlwcy4gIFRoaXMgY3VycmVudCBsaXN0IGZvY3Vzc2VzIG9uIG5ld2VyIGNoaXBzLCB3aGljaAogICogaGF2ZSBiZWVuIGNvbnZlcmdpbmcgb24gY29tbWFuZCBzZXRzIHdoaWNoIGluY2x1ZGluZyBKRURFQyBJRC4KQEAgLTE5MTQsNyArMjIzNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxhc2hfaW5mbyBzcGlfbm9yX2lkc1tdID0gewogCQkiZ2QyNXEyNTYiLCBJTkZPKDB4Yzg0MDE5LCAwLCA2NCAqIDEwMjQsIDUxMiwKIAkJCVNFQ1RfNEsgfCBTUElfTk9SX0RVQUxfUkVBRCB8IFNQSV9OT1JfUVVBRF9SRUFEIHwKIAkJCVNQSV9OT1JfNEJfT1BDT0RFUyB8IFNQSV9OT1JfSEFTX0xPQ0sgfCBTUElfTk9SX0hBU19UQikKLQkJCS5xdWFkX2VuYWJsZSA9IG1hY3Jvbml4X3F1YWRfZW5hYmxlLAorCQkJLmZpeHVwcyA9ICZnZDI1cTI1Nl9maXh1cHMsCiAJfSwKIAogCS8qIEludGVsL051bW9ueXggLS0geHh4czMzYiAqLwpAQCAtMTk4OCwxMyArMjMwOSwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZsYXNoX2luZm8gc3BpX25vcl9pZHNbXSA9IHsKIAl7ICJuMjVxMTI4YTEzIiwgIElORk8oMHgyMGJhMTgsIDAsIDY0ICogMTAyNCwgIDI1NiwgU0VDVF80SyB8IFNQSV9OT1JfUVVBRF9SRUFEKSB9LAogCXsgIm4yNXEyNTZhIiwgICAgSU5GTygweDIwYmExOSwgMCwgNjQgKiAxMDI0LCAgNTEyLCBTRUNUXzRLIHwgU1BJX05PUl9EVUFMX1JFQUQgfCBTUElfTk9SX1FVQURfUkVBRCkgfSwKIAl7ICJuMjVxMjU2YXgxIiwgIElORk8oMHgyMGJiMTksIDAsIDY0ICogMTAyNCwgIDUxMiwgU0VDVF80SyB8IFNQSV9OT1JfUVVBRF9SRUFEKSB9LAotCXsgIm4yNXE1MTJhIiwgICAgSU5GTygweDIwYmIyMCwgMCwgNjQgKiAxMDI0LCAxMDI0LCBTRUNUXzRLIHwgVVNFX0ZTUiB8IFNQSV9OT1JfUVVBRF9SRUFEKSB9LAogCXsgIm4yNXE1MTJheDMiLCAgSU5GTygweDIwYmEyMCwgMCwgNjQgKiAxMDI0LCAxMDI0LCBTRUNUXzRLIHwgVVNFX0ZTUiB8IFNQSV9OT1JfUVVBRF9SRUFEKSB9LAogCXsgIm4yNXEwMCIsICAgICAgSU5GTygweDIwYmEyMSwgMCwgNjQgKiAxMDI0LCAyMDQ4LCBTRUNUXzRLIHwgVVNFX0ZTUiB8IFNQSV9OT1JfUVVBRF9SRUFEIHwgTk9fQ0hJUF9FUkFTRSkgfSwKIAl7ICJuMjVxMDBhIiwgICAgIElORk8oMHgyMGJiMjEsIDAsIDY0ICogMTAyNCwgMjA0OCwgU0VDVF80SyB8IFVTRV9GU1IgfCBTUElfTk9SX1FVQURfUkVBRCB8IE5PX0NISVBfRVJBU0UpIH0sCiAJeyAibXQyNXFsMDJnIiwgICBJTkZPKDB4MjBiYTIyLCAwLCA2NCAqIDEwMjQsIDQwOTYsCiAJCQkgICAgICBTRUNUXzRLIHwgVVNFX0ZTUiB8IFNQSV9OT1JfUVVBRF9SRUFEIHwKIAkJCSAgICAgIE5PX0NISVBfRVJBU0UpIH0sCisJeyAibXQyNXF1NTEyYSAobjI1cTUxMmEpIiwgSU5GTygweDIwYmIyMCwgMCwgNjQgKiAxMDI0LCAxMDI0LAorCQkJCQlTRUNUXzRLIHwgVVNFX0ZTUiB8IFNQSV9OT1JfRFVBTF9SRUFEIHwKKwkJCQkJU1BJX05PUl9RVUFEX1JFQUQgfAorCQkJCQlTUElfTk9SXzRCX09QQ09ERVMpIH0sCiAJeyAibXQyNXF1MDJnIiwgICBJTkZPKDB4MjBiYjIyLCAwLCA2NCAqIDEwMjQsIDQwOTYsIFNFQ1RfNEsgfCBVU0VfRlNSIHwgU1BJX05PUl9RVUFEX1JFQUQgfCBOT19DSElQX0VSQVNFKSB9LAogCiAJLyogTWljcm9uICovCkBAIC0yMDAzLDYgKzIzMjcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZsYXNoX2luZm8gc3BpX25vcl9pZHNbXSA9IHsKIAkJCVNFQ1RfNEsgfCBVU0VfRlNSIHwgU1BJX05PUl9PQ1RBTF9SRUFEIHwKIAkJCVNQSV9OT1JfNEJfT1BDT0RFUykKIAl9LAorCXsgIm10MzV4dTAyZyIsICBJTkZPKDB4MmM1YjFjLCAwLCAxMjggKiAxMDI0LCAyMDQ4LAorCQkJICAgICBTRUNUXzRLIHwgVVNFX0ZTUiB8IFNQSV9OT1JfT0NUQUxfUkVBRCB8CisJCQkgICAgIFNQSV9OT1JfNEJfT1BDT0RFUykgfSwKIAogCS8qIFBNQyAqLwogCXsgInBtMjVsdjUxMiIsICAgSU5GTygwLCAgICAgICAgMCwgMzIgKiAxMDI0LCAgICAyLCBTRUNUXzRLX1BNQykgfSwKQEAgLTIwMjIsNyArMjM0OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxhc2hfaW5mbyBzcGlfbm9yX2lkc1tdID0gewogCXsgInMyNWZsMjU2czEiLCBJTkZPKDB4MDEwMjE5LCAweDRkMDEsICA2NCAqIDEwMjQsIDUxMiwgU1BJX05PUl9EVUFMX1JFQUQgfCBTUElfTk9SX1FVQURfUkVBRCB8IFVTRV9DTFNSKSB9LAogCXsgInMyNWZsNTEycyIsICBJTkZPNigweDAxMDIyMCwgMHg0ZDAwODAsIDI1NiAqIDEwMjQsIDI1NiwKIAkJCVNQSV9OT1JfRFVBTF9SRUFEIHwgU1BJX05PUl9RVUFEX1JFQUQgfAotCQkJU1BJX05PUl9IQVNfTE9DSyB8IFNQSV9OT1JfSEFTX1RCIHwgVVNFX0NMU1IpIH0sCisJCQlTUElfTk9SX0hBU19MT0NLIHwgVVNFX0NMU1IpIH0sCiAJeyAiczI1ZnM1MTJzIiwgIElORk82KDB4MDEwMjIwLCAweDRkMDA4MSwgMjU2ICogMTAyNCwgMjU2LCBTUElfTk9SX0RVQUxfUkVBRCB8IFNQSV9OT1JfUVVBRF9SRUFEIHwgVVNFX0NMU1IpIH0sCiAJeyAiczcwZmwwMWdzIiwgIElORk8oMHgwMTAyMjEsIDB4NGQwMCwgMjU2ICogMTAyNCwgMjU2LCAwKSB9LAogCXsgInMyNXNsMTI4MDAiLCBJTkZPKDB4MDEyMDE4LCAweDAzMDAsIDI1NiAqIDEwMjQsICA2NCwgMCkgfSwKQEAgLTIwNjAsNiArMjM4Nyw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxhc2hfaW5mbyBzcGlfbm9yX2lkc1tdID0gewogCXsgInNzdDI1d2YwNDBiIiwgSU5GTygweDYyMTYxMywgMCwgNjQgKiAxMDI0LCAgOCwgU0VDVF80SykgfSwKIAl7ICJzc3QyNXdmMDQwIiwgIElORk8oMHhiZjI1MDQsIDAsIDY0ICogMTAyNCwgIDgsIFNFQ1RfNEsgfCBTU1RfV1JJVEUpIH0sCiAJeyAic3N0MjV3ZjA4MCIsICBJTkZPKDB4YmYyNTA1LCAwLCA2NCAqIDEwMjQsIDE2LCBTRUNUXzRLIHwgU1NUX1dSSVRFKSB9LAorCXsgInNzdDI2d2YwMTZiIiwgSU5GTygweGJmMjY1MSwgMCwgNjQgKiAxMDI0LCAzMiwgU0VDVF80SyB8CisJCQkgICAgICBTUElfTk9SX0RVQUxfUkVBRCB8IFNQSV9OT1JfUVVBRF9SRUFEKSB9LAogCXsgInNzdDI2dmYwNjRiIiwgSU5GTygweGJmMjY0MywgMCwgNjQgKiAxMDI0LCAxMjgsIFNFQ1RfNEsgfCBTUElfTk9SX0RVQUxfUkVBRCB8IFNQSV9OT1JfUVVBRF9SRUFEKSB9LAogCiAJLyogU1QgTWljcm9lbGVjdHJvbmljcyAtLSBuZXdlciBwcm9kdWN0aW9uIG1heSBoYXZlIGZlYXR1cmUgdXBkYXRlcyAqLwpAQCAtMjE1MSw2ICsyNDgwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmbGFzaF9pbmZvIHNwaV9ub3JfaWRzW10gPSB7CiAJeyAidzI1cTgwYmwiLCBJTkZPKDB4ZWY0MDE0LCAwLCA2NCAqIDEwMjQsICAxNiwgU0VDVF80SykgfSwKIAl7ICJ3MjVxMTI4IiwgSU5GTygweGVmNDAxOCwgMCwgNjQgKiAxMDI0LCAyNTYsIFNFQ1RfNEspIH0sCiAJeyAidzI1cTI1NiIsIElORk8oMHhlZjQwMTksIDAsIDY0ICogMTAyNCwgNTEyLCBTRUNUXzRLIHwgU1BJX05PUl9EVUFMX1JFQUQgfCBTUElfTk9SX1FVQURfUkVBRCkgfSwKKwl7ICJ3MjVxMjU2anZtIiwgSU5GTygweGVmNzAxOSwgMCwgNjQgKiAxMDI0LCA1MTIsCisJCQkgICAgIFNFQ1RfNEsgfCBTUElfTk9SX0RVQUxfUkVBRCB8IFNQSV9OT1JfUVVBRF9SRUFEKSB9LAogCXsgIncyNW01MTJqdiIsIElORk8oMHhlZjcxMTksIDAsIDY0ICogMTAyNCwgMTAyNCwKIAkJCVNFQ1RfNEsgfCBTUElfTk9SX1FVQURfUkVBRCB8IFNQSV9OT1JfRFVBTF9SRUFEKSB9LAogCkBAIC0yMTc3LDEwICsyNTA4LDIxIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxhc2hfaW5mbyBzcGlfbm9yX2lkc1tdID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBmbGFzaF9pbmZvICpzcGlfbm9yX3JlYWRfaWQoc3RydWN0IHNwaV9ub3IgKm5vcikKIHsKIAlpbnQJCQl0bXA7Ci0JdTgJCQlpZFtTUElfTk9SX01BWF9JRF9MRU5dOworCXU4CQkJKmlkID0gbm9yLT5ib3VuY2VidWY7CiAJY29uc3Qgc3RydWN0IGZsYXNoX2luZm8JKmluZm87CiAKLQl0bXAgPSBub3ItPnJlYWRfcmVnKG5vciwgU1BJTk9SX09QX1JESUQsIGlkLCBTUElfTk9SX01BWF9JRF9MRU4pOworCWlmIChub3ItPnNwaW1lbSkgeworCQlzdHJ1Y3Qgc3BpX21lbV9vcCBvcCA9CisJCQlTUElfTUVNX09QKFNQSV9NRU1fT1BfQ01EKFNQSU5PUl9PUF9SRElELCAxKSwKKwkJCQkgICBTUElfTUVNX09QX05PX0FERFIsCisJCQkJICAgU1BJX01FTV9PUF9OT19EVU1NWSwKKwkJCQkgICBTUElfTUVNX09QX0RBVEFfSU4oU1BJX05PUl9NQVhfSURfTEVOLCBpZCwgMSkpOworCisJCXRtcCA9IHNwaV9tZW1fZXhlY19vcChub3ItPnNwaW1lbSwgJm9wKTsKKwl9IGVsc2UgeworCQl0bXAgPSBub3ItPnJlYWRfcmVnKG5vciwgU1BJTk9SX09QX1JESUQsIGlkLAorCQkJCSAgICBTUElfTk9SX01BWF9JRF9MRU4pOworCX0KIAlpZiAodG1wIDwgMCkgewogCQlkZXZfZXJyKG5vci0+ZGV2LCAiZXJyb3IgJWQgcmVhZGluZyBKRURFQyBJRFxuIiwgdG1wKTsKIAkJcmV0dXJuIEVSUl9QVFIodG1wKTsKQEAgLTIyMTMsMTAgKzI1NTUsOSBAQCBzdGF0aWMgaW50IHNwaV9ub3JfcmVhZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IGZyb20sIHNpemVfdCBsZW4sCiAJd2hpbGUgKGxlbikgewogCQlsb2ZmX3QgYWRkciA9IGZyb207CiAKLQkJaWYgKG5vci0+ZmxhZ3MgJiBTTk9SX0ZfUzNBTl9BRERSX0RFRkFVTFQpCi0JCQlhZGRyID0gc3BpX25vcl9zM2FuX2FkZHJfY29udmVydChub3IsIGFkZHIpOworCQlhZGRyID0gc3BpX25vcl9jb252ZXJ0X2FkZHIobm9yLCBhZGRyKTsKIAotCQlyZXQgPSBub3ItPnJlYWQobm9yLCBhZGRyLCBsZW4sIGJ1Zik7CisJCXJldCA9IHNwaV9ub3JfcmVhZF9kYXRhKG5vciwgYWRkciwgbGVuLCBidWYpOwogCQlpZiAocmV0ID09IDApIHsKIAkJCS8qIFdlIHNob3VsZG4ndCBzZWUgMC1sZW5ndGggcmVhZHMgKi8KIAkJCXJldCA9IC1FSU87CkBAIC0yMjYxLDcgKzI2MDIsNyBAQCBzdGF0aWMgaW50IHNzdF93cml0ZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IHRvLCBzaXplX3QgbGVuLAogCQlub3ItPnByb2dyYW1fb3Bjb2RlID0gU1BJTk9SX09QX0JQOwogCiAJCS8qIHdyaXRlIG9uZSBieXRlLiAqLwotCQlyZXQgPSBub3ItPndyaXRlKG5vciwgdG8sIDEsIGJ1Zik7CisJCXJldCA9IHNwaV9ub3Jfd3JpdGVfZGF0YShub3IsIHRvLCAxLCBidWYpOwogCQlpZiAocmV0IDwgMCkKIAkJCWdvdG8gc3N0X3dyaXRlX2VycjsKIAkJV0FSTihyZXQgIT0gMSwgIldoaWxlIHdyaXRpbmcgMSBieXRlIHdyaXR0ZW4gJWkgYnl0ZXNcbiIsCkBAIC0yMjc3LDcgKzI2MTgsNyBAQCBzdGF0aWMgaW50IHNzdF93cml0ZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IHRvLCBzaXplX3QgbGVuLAogCQlub3ItPnByb2dyYW1fb3Bjb2RlID0gU1BJTk9SX09QX0FBSV9XUDsKIAogCQkvKiB3cml0ZSB0d28gYnl0ZXMuICovCi0JCXJldCA9IG5vci0+d3JpdGUobm9yLCB0bywgMiwgYnVmICsgYWN0dWFsKTsKKwkJcmV0ID0gc3BpX25vcl93cml0ZV9kYXRhKG5vciwgdG8sIDIsIGJ1ZiArIGFjdHVhbCk7CiAJCWlmIChyZXQgPCAwKQogCQkJZ290byBzc3Rfd3JpdGVfZXJyOwogCQlXQVJOKHJldCAhPSAyLCAiV2hpbGUgd3JpdGluZyAyIGJ5dGVzIHdyaXR0ZW4gJWkgYnl0ZXNcbiIsCkBAIC0yMzAwLDcgKzI2NDEsNyBAQCBzdGF0aWMgaW50IHNzdF93cml0ZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IHRvLCBzaXplX3QgbGVuLAogCQl3cml0ZV9lbmFibGUobm9yKTsKIAogCQlub3ItPnByb2dyYW1fb3Bjb2RlID0gU1BJTk9SX09QX0JQOwotCQlyZXQgPSBub3ItPndyaXRlKG5vciwgdG8sIDEsIGJ1ZiArIGFjdHVhbCk7CisJCXJldCA9IHNwaV9ub3Jfd3JpdGVfZGF0YShub3IsIHRvLCAxLCBidWYgKyBhY3R1YWwpOwogCQlpZiAocmV0IDwgMCkKIAkJCWdvdG8gc3N0X3dyaXRlX2VycjsKIAkJV0FSTihyZXQgIT0gMSwgIldoaWxlIHdyaXRpbmcgMSBieXRlIHdyaXR0ZW4gJWkgYnl0ZXNcbiIsCkBAIC0yMzU4LDExICsyNjk5LDEwIEBAIHN0YXRpYyBpbnQgc3BpX25vcl93cml0ZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IHRvLCBzaXplX3QgbGVuLAogCQlwYWdlX3JlbWFpbiA9IG1pbl90KHNpemVfdCwKIAkJCQkgICAgbm9yLT5wYWdlX3NpemUgLSBwYWdlX29mZnNldCwgbGVuIC0gaSk7CiAKLQkJaWYgKG5vci0+ZmxhZ3MgJiBTTk9SX0ZfUzNBTl9BRERSX0RFRkFVTFQpCi0JCQlhZGRyID0gc3BpX25vcl9zM2FuX2FkZHJfY29udmVydChub3IsIGFkZHIpOworCQlhZGRyID0gc3BpX25vcl9jb252ZXJ0X2FkZHIobm9yLCBhZGRyKTsKIAogCQl3cml0ZV9lbmFibGUobm9yKTsKLQkJcmV0ID0gbm9yLT53cml0ZShub3IsIGFkZHIsIHBhZ2VfcmVtYWluLCBidWYgKyBpKTsKKwkJcmV0ID0gc3BpX25vcl93cml0ZV9kYXRhKG5vciwgYWRkciwgcGFnZV9yZW1haW4sIGJ1ZiArIGkpOwogCQlpZiAocmV0IDwgMCkKIAkJCWdvdG8gd3JpdGVfZXJyOwogCQl3cml0dGVuID0gcmV0OwpAQCAtMjM4MSw4ICsyNzIxLDEwIEBAIHN0YXRpYyBpbnQgc3BpX25vcl93cml0ZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IHRvLCBzaXplX3QgbGVuLAogCiBzdGF0aWMgaW50IHNwaV9ub3JfY2hlY2soc3RydWN0IHNwaV9ub3IgKm5vcikKIHsKLQlpZiAoIW5vci0+ZGV2IHx8ICFub3ItPnJlYWQgfHwgIW5vci0+d3JpdGUgfHwKLQkJIW5vci0+cmVhZF9yZWcgfHwgIW5vci0+d3JpdGVfcmVnKSB7CisJaWYgKCFub3ItPmRldiB8fAorCSAgICAoIW5vci0+c3BpbWVtICYmCisJICAgICghbm9yLT5yZWFkIHx8ICFub3ItPndyaXRlIHx8ICFub3ItPnJlYWRfcmVnIHx8CisJICAgICAgIW5vci0+d3JpdGVfcmVnKSkpIHsKIAkJcHJfZXJyKCJzcGktbm9yOiBwbGVhc2UgZmlsbCBhbGwgdGhlIG5lY2Vzc2FyeSBmaWVsZHMhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMjM5MCwxMiArMjczMiwxMiBAQCBzdGF0aWMgaW50IHNwaV9ub3JfY2hlY2soc3RydWN0IHNwaV9ub3IgKm5vcikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzM2FuX25vcl9zY2FuKHN0cnVjdCBzcGlfbm9yICpub3IpCitzdGF0aWMgaW50IHMzYW5fbm9yX3NldHVwKHN0cnVjdCBzcGlfbm9yICpub3IsCisJCQkgIGNvbnN0IHN0cnVjdCBzcGlfbm9yX2h3Y2FwcyAqaHdjYXBzKQogewogCWludCByZXQ7Ci0JdTggdmFsOwogCi0JcmV0ID0gbm9yLT5yZWFkX3JlZyhub3IsIFNQSU5PUl9PUF9YUkRTUiwgJnZhbCwgMSk7CisJcmV0ID0gc3BpX25vcl94cmVhZF9zcihub3IsIG5vci0+Ym91bmNlYnVmKTsKIAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKG5vci0+ZGV2LCAiZXJyb3IgJWQgcmVhZGluZyBYUkRTUlxuIiwgKGludCkgcmV0KTsKIAkJcmV0dXJuIHJldDsKQEAgLTI0MTcsNyArMjc1OSw3IEBAIHN0YXRpYyBpbnQgczNhbl9ub3Jfc2NhbihzdHJ1Y3Qgc3BpX25vciAqbm9yKQogCSAqIFRoZSBjdXJyZW50IGFkZHJlc3NpbmcgbW9kZSBjYW4gYmUgcmVhZCBmcm9tIHRoZSBYUkRTUiByZWdpc3RlcgogCSAqIGFuZCBzaG91bGQgbm90IGJlIGNoYW5nZWQsIGJlY2F1c2UgaXMgYSBkZXN0cnVjdGl2ZSBvcGVyYXRpb24uCiAJICovCi0JaWYgKHZhbCAmIFhTUl9QQUdFU0laRSkgeworCWlmIChub3ItPmJvdW5jZWJ1ZlswXSAmIFhTUl9QQUdFU0laRSkgewogCQkvKiBGbGFzaCBpbiBQb3dlciBvZiAyIG1vZGUgKi8KIAkJbm9yLT5wYWdlX3NpemUgPSAobm9yLT5wYWdlX3NpemUgPT0gMjY0KSA/IDI1NiA6IDUxMjsKIAkJbm9yLT5tdGQud3JpdGVidWZzaXplID0gbm9yLT5wYWdlX3NpemU7CkBAIC0yNDI1LDcgKzI3NjcsOCBAQCBzdGF0aWMgaW50IHMzYW5fbm9yX3NjYW4oc3RydWN0IHNwaV9ub3IgKm5vcikKIAkJbm9yLT5tdGQuZXJhc2VzaXplID0gOCAqIG5vci0+cGFnZV9zaXplOwogCX0gZWxzZSB7CiAJCS8qIEZsYXNoIGluIERlZmF1bHQgYWRkcmVzc2luZyBtb2RlICovCi0JCW5vci0+ZmxhZ3MgfD0gU05PUl9GX1MzQU5fQUREUl9ERUZBVUxUOworCQlub3ItPnBhcmFtcy5jb252ZXJ0X2FkZHIgPSBzM2FuX2NvbnZlcnRfYWRkcjsKKwkJbm9yLT5tdGQuZXJhc2VzaXplID0gbm9yLT5pbmZvLT5zZWN0b3Jfc2l6ZTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTI1MjUsMTEgKzI4NjgsMTEgQEAgc3RhdGljIGludCBzcGlfbm9yX3JlYWRfcmF3KHN0cnVjdCBzcGlfbm9yICpub3IsIHUzMiBhZGRyLCBzaXplX3QgbGVuLCB1OCAqYnVmKQogCWludCByZXQ7CiAKIAl3aGlsZSAobGVuKSB7Ci0JCXJldCA9IG5vci0+cmVhZChub3IsIGFkZHIsIGxlbiwgYnVmKTsKLQkJaWYgKCFyZXQgfHwgcmV0ID4gbGVuKQotCQkJcmV0dXJuIC1FSU87CisJCXJldCA9IHNwaV9ub3JfcmVhZF9kYXRhKG5vciwgYWRkciwgbGVuLCBidWYpOwogCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CisJCWlmICghcmV0IHx8IHJldCA+IGxlbikKKwkJCXJldHVybiAtRUlPOwogCiAJCWJ1ZiArPSByZXQ7CiAJCWFkZHIgKz0gcmV0OwpAQCAtMjU3NSw2ICsyOTE4LDEyNiBAQCBzdGF0aWMgaW50IHNwaV9ub3JfcmVhZF9zZmRwKHN0cnVjdCBzcGlfbm9yICpub3IsIHUzMiBhZGRyLAogfQogCiAvKioKKyAqIHNwaV9ub3Jfc3BpbWVtX2NoZWNrX29wIC0gY2hlY2sgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdXBwb3J0ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgY29udHJvbGxlcgorICpAbm9yOiAgICAgICAgcG9pbnRlciB0byBhICdzdHJ1Y3Qgc3BpX25vcicKKyAqQG9wOiAgICAgICAgIHBvaW50ZXIgdG8gb3AgdGVtcGxhdGUgdG8gYmUgY2hlY2tlZAorICoKKyAqIFJldHVybnMgMCBpZiBvcGVyYXRpb24gaXMgc3VwcG9ydGVkLCAtRU5PVFNVUFAgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50IHNwaV9ub3Jfc3BpbWVtX2NoZWNrX29wKHN0cnVjdCBzcGlfbm9yICpub3IsCisJCQkJICAgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQoreworCS8qCisJICogRmlyc3QgdGVzdCB3aXRoIDQgYWRkcmVzcyBieXRlcy4gVGhlIG9wY29kZSBpdHNlbGYgbWlnaHQKKwkgKiBiZSBhIDNCIGFkZHJlc3Npbmcgb3Bjb2RlIGJ1dCB3ZSBkb24ndCBjYXJlLCBiZWNhdXNlCisJICogU1BJIGNvbnRyb2xsZXIgaW1wbGVtZW50YXRpb24gc2hvdWxkIG5vdCBjaGVjayB0aGUgb3Bjb2RlLAorCSAqIGJ1dCBqdXN0IHRoZSBzZXF1ZW5jZS4KKwkgKi8KKwlvcC0+YWRkci5uYnl0ZXMgPSA0OworCWlmICghc3BpX21lbV9zdXBwb3J0c19vcChub3ItPnNwaW1lbSwgb3ApKSB7CisJCWlmIChub3ItPm10ZC5zaXplID4gU1pfMTZNKQorCQkJcmV0dXJuIC1FTk9UU1VQUDsKKworCQkvKiBJZiBmbGFzaCBzaXplIDw9IDE2TUIsIDMgYWRkcmVzcyBieXRlcyBhcmUgc3VmZmljaWVudCAqLworCQlvcC0+YWRkci5uYnl0ZXMgPSAzOworCQlpZiAoIXNwaV9tZW1fc3VwcG9ydHNfb3Aobm9yLT5zcGltZW0sIG9wKSkKKwkJCXJldHVybiAtRU5PVFNVUFA7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogc3BpX25vcl9zcGltZW1fY2hlY2tfcmVhZG9wIC0gY2hlY2sgaWYgdGhlIHJlYWQgb3AgaXMgc3VwcG9ydGVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSBjb250cm9sbGVyCisgKkBub3I6ICAgICAgICAgcG9pbnRlciB0byBhICdzdHJ1Y3Qgc3BpX25vcicKKyAqQHJlYWQ6ICAgICAgICBwb2ludGVyIHRvIG9wIHRlbXBsYXRlIHRvIGJlIGNoZWNrZWQKKyAqCisgKiBSZXR1cm5zIDAgaWYgb3BlcmF0aW9uIGlzIHN1cHBvcnRlZCwgLUVOT1RTVVBQIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGludCBzcGlfbm9yX3NwaW1lbV9jaGVja19yZWFkb3Aoc3RydWN0IHNwaV9ub3IgKm5vciwKKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IHNwaV9ub3JfcmVhZF9jb21tYW5kICpyZWFkKQoreworCXN0cnVjdCBzcGlfbWVtX29wIG9wID0gU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChyZWFkLT5vcGNvZGUsIDEpLAorCQkJCQkgIFNQSV9NRU1fT1BfQUREUigzLCAwLCAxKSwKKwkJCQkJICBTUElfTUVNX09QX0RVTU1ZKDAsIDEpLAorCQkJCQkgIFNQSV9NRU1fT1BfREFUQV9JTigwLCBOVUxMLCAxKSk7CisKKwlvcC5jbWQuYnVzd2lkdGggPSBzcGlfbm9yX2dldF9wcm90b2NvbF9pbnN0X25iaXRzKHJlYWQtPnByb3RvKTsKKwlvcC5hZGRyLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfYWRkcl9uYml0cyhyZWFkLT5wcm90byk7CisJb3AuZGF0YS5idXN3aWR0aCA9IHNwaV9ub3JfZ2V0X3Byb3RvY29sX2RhdGFfbmJpdHMocmVhZC0+cHJvdG8pOworCW9wLmR1bW15LmJ1c3dpZHRoID0gb3AuYWRkci5idXN3aWR0aDsKKwlvcC5kdW1teS5uYnl0ZXMgPSAocmVhZC0+bnVtX21vZGVfY2xvY2tzICsgcmVhZC0+bnVtX3dhaXRfc3RhdGVzKSAqCisJCQkgIG9wLmR1bW15LmJ1c3dpZHRoIC8gODsKKworCXJldHVybiBzcGlfbm9yX3NwaW1lbV9jaGVja19vcChub3IsICZvcCk7Cit9CisKKy8qKgorICogc3BpX25vcl9zcGltZW1fY2hlY2tfcHAgLSBjaGVjayBpZiB0aGUgcGFnZSBwcm9ncmFtIG9wIGlzIHN1cHBvcnRlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICBieSBjb250cm9sbGVyCisgKkBub3I6ICAgICAgICAgcG9pbnRlciB0byBhICdzdHJ1Y3Qgc3BpX25vcicKKyAqQHBwOiAgICAgICAgICBwb2ludGVyIHRvIG9wIHRlbXBsYXRlIHRvIGJlIGNoZWNrZWQKKyAqCisgKiBSZXR1cm5zIDAgaWYgb3BlcmF0aW9uIGlzIHN1cHBvcnRlZCwgLUVOT1RTVVBQIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGludCBzcGlfbm9yX3NwaW1lbV9jaGVja19wcChzdHJ1Y3Qgc3BpX25vciAqbm9yLAorCQkJCSAgIGNvbnN0IHN0cnVjdCBzcGlfbm9yX3BwX2NvbW1hbmQgKnBwKQoreworCXN0cnVjdCBzcGlfbWVtX29wIG9wID0gU1BJX01FTV9PUChTUElfTUVNX09QX0NNRChwcC0+b3Bjb2RlLCAxKSwKKwkJCQkJICBTUElfTUVNX09QX0FERFIoMywgMCwgMSksCisJCQkJCSAgU1BJX01FTV9PUF9OT19EVU1NWSwKKwkJCQkJICBTUElfTUVNX09QX0RBVEFfT1VUKDAsIE5VTEwsIDEpKTsKKworCW9wLmNtZC5idXN3aWR0aCA9IHNwaV9ub3JfZ2V0X3Byb3RvY29sX2luc3RfbmJpdHMocHAtPnByb3RvKTsKKwlvcC5hZGRyLmJ1c3dpZHRoID0gc3BpX25vcl9nZXRfcHJvdG9jb2xfYWRkcl9uYml0cyhwcC0+cHJvdG8pOworCW9wLmRhdGEuYnVzd2lkdGggPSBzcGlfbm9yX2dldF9wcm90b2NvbF9kYXRhX25iaXRzKHBwLT5wcm90byk7CisKKwlyZXR1cm4gc3BpX25vcl9zcGltZW1fY2hlY2tfb3Aobm9yLCAmb3ApOworfQorCisvKioKKyAqIHNwaV9ub3Jfc3BpbWVtX2FkanVzdF9od2NhcHMgLSBGaW5kIG9wdGltYWwgUmVhZC9Xcml0ZSBwcm90b2NvbAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VkIG9uIFNQSSBjb250cm9sbGVyIGNhcGFiaWxpdGllcworICogQG5vcjogICAgICAgIHBvaW50ZXIgdG8gYSAnc3RydWN0IHNwaV9ub3InCisgKiBAaHdjYXBzOiAgICAgcG9pbnRlciB0byByZXN1bHRpbmcgY2FwYWJpbGl0aWVzIGFmdGVyIGFkanVzdGluZworICogICAgICAgICAgICAgIGFjY29yZGluZyB0byBjb250cm9sbGVyIGFuZCBmbGFzaCdzIGNhcGFiaWxpdHkKKyAqLworc3RhdGljIHZvaWQKK3NwaV9ub3Jfc3BpbWVtX2FkanVzdF9od2NhcHMoc3RydWN0IHNwaV9ub3IgKm5vciwgdTMyICpod2NhcHMpCit7CisJc3RydWN0IHNwaV9ub3JfZmxhc2hfcGFyYW1ldGVyICpwYXJhbXMgPSAgJm5vci0+cGFyYW1zOworCXVuc2lnbmVkIGludCBjYXA7CisKKwkvKiBEVFIgbW9kZXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LCBtYXNrIHRoZW0gYWxsLiAqLworCSpod2NhcHMgJj0gflNOT1JfSFdDQVBTX0RUUjsKKworCS8qIFgtWC1YIG1vZGVzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCwgbWFzayB0aGVtIGFsbC4gKi8KKwkqaHdjYXBzICY9IH5TTk9SX0hXQ0FQU19YX1hfWDsKKworCWZvciAoY2FwID0gMDsgY2FwIDwgc2l6ZW9mKCpod2NhcHMpICogQklUU19QRVJfQllURTsgY2FwKyspIHsKKwkJaW50IHJkaWR4LCBwcGlkeDsKKworCQlpZiAoISgqaHdjYXBzICYgQklUKGNhcCkpKQorCQkJY29udGludWU7CisKKwkJcmRpZHggPSBzcGlfbm9yX2h3Y2Fwc19yZWFkMmNtZChCSVQoY2FwKSk7CisJCWlmIChyZGlkeCA+PSAwICYmCisJCSAgICBzcGlfbm9yX3NwaW1lbV9jaGVja19yZWFkb3Aobm9yLCAmcGFyYW1zLT5yZWFkc1tyZGlkeF0pKQorCQkJKmh3Y2FwcyAmPSB+QklUKGNhcCk7CisKKwkJcHBpZHggPSBzcGlfbm9yX2h3Y2Fwc19wcDJjbWQoQklUKGNhcCkpOworCQlpZiAocHBpZHggPCAwKQorCQkJY29udGludWU7CisKKwkJaWYgKHNwaV9ub3Jfc3BpbWVtX2NoZWNrX3BwKG5vciwKKwkJCQkJICAgICZwYXJhbXMtPnBhZ2VfcHJvZ3JhbXNbcHBpZHhdKSkKKwkJCSpod2NhcHMgJj0gfkJJVChjYXApOworCX0KK30KKworLyoqCiAgKiBzcGlfbm9yX3JlYWRfc2ZkcF9kbWFfdW5zYWZlKCkgLSByZWFkIFNlcmlhbCBGbGFzaCBEaXNjb3ZlcmFibGUgUGFyYW1ldGVycy4KICAqIEBub3I6CXBvaW50ZXIgdG8gYSAnc3RydWN0IHNwaV9ub3InCiAgKiBAYWRkcjoJb2Zmc2V0IGluIHRoZSBTRkRQIGFyZWEgdG8gc3RhcnQgcmVhZGluZyBkYXRhIGZyb20KQEAgLTI4OTIsNyArMzM1NSw3IEBAIHN0YXRpYyBpbnQgc3BpX25vcl9wYXJzZV9iZnB0KHN0cnVjdCBzcGlfbm9yICpub3IsCiAJCQkgICAgICBjb25zdCBzdHJ1Y3Qgc2ZkcF9wYXJhbWV0ZXJfaGVhZGVyICpiZnB0X2hlYWRlciwKIAkJCSAgICAgIHN0cnVjdCBzcGlfbm9yX2ZsYXNoX3BhcmFtZXRlciAqcGFyYW1zKQogewotCXN0cnVjdCBzcGlfbm9yX2VyYXNlX21hcCAqbWFwID0gJm5vci0+ZXJhc2VfbWFwOworCXN0cnVjdCBzcGlfbm9yX2VyYXNlX21hcCAqbWFwID0gJnBhcmFtcy0+ZXJhc2VfbWFwOwogCXN0cnVjdCBzcGlfbm9yX2VyYXNlX3R5cGUgKmVyYXNlX3R5cGUgPSBtYXAtPmVyYXNlX3R5cGU7CiAJc3RydWN0IHNmZHBfYmZwdCBiZnB0OwogCXNpemVfdCBsZW47CkBAIC0yOTczLDcgKzM0MzYsNyBAQCBzdGF0aWMgaW50IHNwaV9ub3JfcGFyc2VfYmZwdChzdHJ1Y3Qgc3BpX25vciAqbm9yLAogCSAqIEVyYXNlIFR5cGVzIGRlZmluZWQgaW4gdGhlIGJmcHQgdGFibGUuCiAJICovCiAJZXJhc2VfbWFzayA9IDA7Ci0JbWVtc2V0KCZub3ItPmVyYXNlX21hcCwgMCwgc2l6ZW9mKG5vci0+ZXJhc2VfbWFwKSk7CisJbWVtc2V0KCZwYXJhbXMtPmVyYXNlX21hcCwgMCwgc2l6ZW9mKHBhcmFtcy0+ZXJhc2VfbWFwKSk7CiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc2ZkcF9iZnB0X2VyYXNlcyk7IGkrKykgewogCQljb25zdCBzdHJ1Y3Qgc2ZkcF9iZnB0X2VyYXNlICplciA9ICZzZmRwX2JmcHRfZXJhc2VzW2ldOwogCQl1MzIgZXJhc2VzaXplOwpAQCAtMzI0OCwxNCArMzcxMSwxOCBAQCBzcGlfbm9yX3JlZ2lvbl9jaGVja19vdmVybGF5KHN0cnVjdCBzcGlfbm9yX2VyYXNlX3JlZ2lvbiAqcmVnaW9uLAogLyoqCiAgKiBzcGlfbm9yX2luaXRfbm9uX3VuaWZvcm1fZXJhc2VfbWFwKCkgLSBpbml0aWFsaXplIHRoZSBub24tdW5pZm9ybSBlcmFzZSBtYXAKICAqIEBub3I6CXBvaW50ZXIgdG8gYSAnc3RydWN0IHNwaV9ub3InCisgKiBAcGFyYW1zOiAgICAgcG9pbnRlciB0byBhIGR1cGxpY2F0ZSAnc3RydWN0IHNwaV9ub3JfZmxhc2hfcGFyYW1ldGVyJyB0aGF0IGlzCisgKiAgICAgICAgICAgICAgdXNlZCBmb3Igc3RvcmluZyBTRkRQIHBhcnNlZCBkYXRhCiAgKiBAc21wdDoJcG9pbnRlciB0byB0aGUgc2VjdG9yIG1hcCBwYXJhbWV0ZXIgdGFibGUKICAqCiAgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLWVycm5vIG90aGVyd2lzZS4KICAqLwotc3RhdGljIGludCBzcGlfbm9yX2luaXRfbm9uX3VuaWZvcm1fZXJhc2VfbWFwKHN0cnVjdCBzcGlfbm9yICpub3IsCi0JCQkJCSAgICAgIGNvbnN0IHUzMiAqc21wdCkKK3N0YXRpYyBpbnQKK3NwaV9ub3JfaW5pdF9ub25fdW5pZm9ybV9lcmFzZV9tYXAoc3RydWN0IHNwaV9ub3IgKm5vciwKKwkJCQkgICBzdHJ1Y3Qgc3BpX25vcl9mbGFzaF9wYXJhbWV0ZXIgKnBhcmFtcywKKwkJCQkgICBjb25zdCB1MzIgKnNtcHQpCiB7Ci0Jc3RydWN0IHNwaV9ub3JfZXJhc2VfbWFwICptYXAgPSAmbm9yLT5lcmFzZV9tYXA7CisJc3RydWN0IHNwaV9ub3JfZXJhc2VfbWFwICptYXAgPSAmcGFyYW1zLT5lcmFzZV9tYXA7CiAJc3RydWN0IHNwaV9ub3JfZXJhc2VfdHlwZSAqZXJhc2UgPSBtYXAtPmVyYXNlX3R5cGU7CiAJc3RydWN0IHNwaV9ub3JfZXJhc2VfcmVnaW9uICpyZWdpb247CiAJdTY0IG9mZnNldDsKQEAgLTMzMzQsNiArMzgwMSw4IEBAIHN0YXRpYyBpbnQgc3BpX25vcl9pbml0X25vbl91bmlmb3JtX2VyYXNlX21hcChzdHJ1Y3Qgc3BpX25vciAqbm9yLAogICogc3BpX25vcl9wYXJzZV9zbXB0KCkgLSBwYXJzZSBTZWN0b3IgTWFwIFBhcmFtZXRlciBUYWJsZQogICogQG5vcjoJCXBvaW50ZXIgdG8gYSAnc3RydWN0IHNwaV9ub3InCiAgKiBAc21wdF9oZWFkZXI6CXNlY3RvciBtYXAgcGFyYW1ldGVyIHRhYmxlIGhlYWRlcgorICogQHBhcmFtczoJCXBvaW50ZXIgdG8gYSBkdXBsaWNhdGUgJ3N0cnVjdCBzcGlfbm9yX2ZsYXNoX3BhcmFtZXRlcicKKyAqICAgICAgICAgICAgICAgICAgICAgIHRoYXQgaXMgdXNlZCBmb3Igc3RvcmluZyBTRkRQIHBhcnNlZCBkYXRhCiAgKgogICogVGhpcyB0YWJsZSBpcyBvcHRpb25hbCwgYnV0IHdoZW4gYXZhaWxhYmxlLCB3ZSBwYXJzZSBpdCB0byBpZGVudGlmeSB0aGUKICAqIGxvY2F0aW9uIGFuZCBzaXplIG9mIHNlY3RvcnMgd2l0aGluIHRoZSBtYWluIGRhdGEgYXJyYXkgb2YgdGhlIGZsYXNoIG1lbW9yeQpAQCAtMzM0Miw3ICszODExLDggQEAgc3RhdGljIGludCBzcGlfbm9yX2luaXRfbm9uX3VuaWZvcm1fZXJhc2VfbWFwKHN0cnVjdCBzcGlfbm9yICpub3IsCiAgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLWVycm5vIG90aGVyd2lzZS4KICAqLwogc3RhdGljIGludCBzcGlfbm9yX3BhcnNlX3NtcHQoc3RydWN0IHNwaV9ub3IgKm5vciwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBzZmRwX3BhcmFtZXRlcl9oZWFkZXIgKnNtcHRfaGVhZGVyKQorCQkJICAgICAgY29uc3Qgc3RydWN0IHNmZHBfcGFyYW1ldGVyX2hlYWRlciAqc21wdF9oZWFkZXIsCisJCQkgICAgICBzdHJ1Y3Qgc3BpX25vcl9mbGFzaF9wYXJhbWV0ZXIgKnBhcmFtcykKIHsKIAljb25zdCB1MzIgKnNlY3Rvcl9tYXA7CiAJdTMyICpzbXB0OwpAQCAtMzM3MSwxMSArMzg0MSwxMSBAQCBzdGF0aWMgaW50IHNwaV9ub3JfcGFyc2Vfc21wdChzdHJ1Y3Qgc3BpX25vciAqbm9yLAogCQlnb3RvIG91dDsKIAl9CiAKLQlyZXQgPSBzcGlfbm9yX2luaXRfbm9uX3VuaWZvcm1fZXJhc2VfbWFwKG5vciwgc2VjdG9yX21hcCk7CisJcmV0ID0gc3BpX25vcl9pbml0X25vbl91bmlmb3JtX2VyYXNlX21hcChub3IsIHBhcmFtcywgc2VjdG9yX21hcCk7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKLQlzcGlfbm9yX3JlZ2lvbnNfc29ydF9lcmFzZV90eXBlcygmbm9yLT5lcmFzZV9tYXApOworCXNwaV9ub3JfcmVnaW9uc19zb3J0X2VyYXNlX3R5cGVzKCZwYXJhbXMtPmVyYXNlX21hcCk7CiAJLyogZmFsbCB0aHJvdWdoICovCiBvdXQ6CiAJa2ZyZWUoc21wdCk7CkBAIC0zNDMxLDcgKzM5MDEsNyBAQCBzdGF0aWMgaW50IHNwaV9ub3JfcGFyc2VfNGJhaXQoc3RydWN0IHNwaV9ub3IgKm5vciwKIAkJeyAwdSAvKiBub3QgdXNlZCAqLywJCUJJVCgxMikgfSwKIAl9OwogCXN0cnVjdCBzcGlfbm9yX3BwX2NvbW1hbmQgKnBhcmFtc19wcCA9IHBhcmFtcy0+cGFnZV9wcm9ncmFtczsKLQlzdHJ1Y3Qgc3BpX25vcl9lcmFzZV9tYXAgKm1hcCA9ICZub3ItPmVyYXNlX21hcDsKKwlzdHJ1Y3Qgc3BpX25vcl9lcmFzZV9tYXAgKm1hcCA9ICZwYXJhbXMtPmVyYXNlX21hcDsKIAlzdHJ1Y3Qgc3BpX25vcl9lcmFzZV90eXBlICplcmFzZV90eXBlID0gbWFwLT5lcmFzZV90eXBlOwogCXUzMiAqZHdvcmRzOwogCXNpemVfdCBsZW47CkBAIC0zNDUzLDcgKzM5MjMsNyBAQCBzdGF0aWMgaW50IHNwaV9ub3JfcGFyc2VfNGJhaXQoc3RydWN0IHNwaV9ub3IgKm5vciwKIAlhZGRyID0gU0ZEUF9QQVJBTV9IRUFERVJfUFRQKHBhcmFtX2hlYWRlcik7CiAJcmV0ID0gc3BpX25vcl9yZWFkX3NmZHAobm9yLCBhZGRyLCBsZW4sIGR3b3Jkcyk7CiAJaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwkJZ290byBvdXQ7CiAKIAkvKiBGaXggZW5kaWFubmVzcyBvZiB0aGUgNEJBSVQgRFdPUkRzLiAqLwogCWZvciAoaSA9IDA7IGkgPCBTRkRQXzRCQUlUX0RXT1JEX01BWDsgaSsrKQpAQCAtMzY2MSw3ICs0MTMxLDcgQEAgc3RhdGljIGludCBzcGlfbm9yX3BhcnNlX3NmZHAoc3RydWN0IHNwaV9ub3IgKm5vciwKIAogCQlzd2l0Y2ggKFNGRFBfUEFSQU1fSEVBREVSX0lEKHBhcmFtX2hlYWRlcikpIHsKIAkJY2FzZSBTRkRQX1NFQ1RPUl9NQVBfSUQ6Ci0JCQllcnIgPSBzcGlfbm9yX3BhcnNlX3NtcHQobm9yLCBwYXJhbV9oZWFkZXIpOworCQkJZXJyID0gc3BpX25vcl9wYXJzZV9zbXB0KG5vciwgcGFyYW1faGVhZGVyLCBwYXJhbXMpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBTRkRQXzRCQUlUX0lEOgpAQCAtMzY5MCwxMzMgKzQxNjAsNyBAQCBzdGF0aWMgaW50IHNwaV9ub3JfcGFyc2Vfc2ZkcChzdHJ1Y3Qgc3BpX25vciAqbm9yLAogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBpbnQgc3BpX25vcl9pbml0X3BhcmFtcyhzdHJ1Y3Qgc3BpX25vciAqbm9yLAotCQkJICAgICAgIHN0cnVjdCBzcGlfbm9yX2ZsYXNoX3BhcmFtZXRlciAqcGFyYW1zKQotewotCXN0cnVjdCBzcGlfbm9yX2VyYXNlX21hcCAqbWFwID0gJm5vci0+ZXJhc2VfbWFwOwotCWNvbnN0IHN0cnVjdCBmbGFzaF9pbmZvICppbmZvID0gbm9yLT5pbmZvOwotCXU4IGksIGVyYXNlX21hc2s7Ci0KLQkvKiBTZXQgbGVnYWN5IGZsYXNoIHBhcmFtZXRlcnMgYXMgZGVmYXVsdC4gKi8KLQltZW1zZXQocGFyYW1zLCAwLCBzaXplb2YoKnBhcmFtcykpOwotCi0JLyogU2V0IFNQSSBOT1Igc2l6ZXMuICovCi0JcGFyYW1zLT5zaXplID0gKHU2NClpbmZvLT5zZWN0b3Jfc2l6ZSAqIGluZm8tPm5fc2VjdG9yczsKLQlwYXJhbXMtPnBhZ2Vfc2l6ZSA9IGluZm8tPnBhZ2Vfc2l6ZTsKLQotCS8qIChGYXN0KSBSZWFkIHNldHRpbmdzLiAqLwotCXBhcmFtcy0+aHdjYXBzLm1hc2sgfD0gU05PUl9IV0NBUFNfUkVBRDsKLQlzcGlfbm9yX3NldF9yZWFkX3NldHRpbmdzKCZwYXJhbXMtPnJlYWRzW1NOT1JfQ01EX1JFQURdLAotCQkJCSAgMCwgMCwgU1BJTk9SX09QX1JFQUQsCi0JCQkJICBTTk9SX1BST1RPXzFfMV8xKTsKLQotCWlmICghKGluZm8tPmZsYWdzICYgU1BJX05PUl9OT19GUikpIHsKLQkJcGFyYW1zLT5od2NhcHMubWFzayB8PSBTTk9SX0hXQ0FQU19SRUFEX0ZBU1Q7Ci0JCXNwaV9ub3Jfc2V0X3JlYWRfc2V0dGluZ3MoJnBhcmFtcy0+cmVhZHNbU05PUl9DTURfUkVBRF9GQVNUXSwKLQkJCQkJICAwLCA4LCBTUElOT1JfT1BfUkVBRF9GQVNULAotCQkJCQkgIFNOT1JfUFJPVE9fMV8xXzEpOwotCX0KLQotCWlmIChpbmZvLT5mbGFncyAmIFNQSV9OT1JfRFVBTF9SRUFEKSB7Ci0JCXBhcmFtcy0+aHdjYXBzLm1hc2sgfD0gU05PUl9IV0NBUFNfUkVBRF8xXzFfMjsKLQkJc3BpX25vcl9zZXRfcmVhZF9zZXR0aW5ncygmcGFyYW1zLT5yZWFkc1tTTk9SX0NNRF9SRUFEXzFfMV8yXSwKLQkJCQkJICAwLCA4LCBTUElOT1JfT1BfUkVBRF8xXzFfMiwKLQkJCQkJICBTTk9SX1BST1RPXzFfMV8yKTsKLQl9Ci0KLQlpZiAoaW5mby0+ZmxhZ3MgJiBTUElfTk9SX1FVQURfUkVBRCkgewotCQlwYXJhbXMtPmh3Y2Fwcy5tYXNrIHw9IFNOT1JfSFdDQVBTX1JFQURfMV8xXzQ7Ci0JCXNwaV9ub3Jfc2V0X3JlYWRfc2V0dGluZ3MoJnBhcmFtcy0+cmVhZHNbU05PUl9DTURfUkVBRF8xXzFfNF0sCi0JCQkJCSAgMCwgOCwgU1BJTk9SX09QX1JFQURfMV8xXzQsCi0JCQkJCSAgU05PUl9QUk9UT18xXzFfNCk7Ci0JfQotCi0JaWYgKGluZm8tPmZsYWdzICYgU1BJX05PUl9PQ1RBTF9SRUFEKSB7Ci0JCXBhcmFtcy0+aHdjYXBzLm1hc2sgfD0gU05PUl9IV0NBUFNfUkVBRF8xXzFfODsKLQkJc3BpX25vcl9zZXRfcmVhZF9zZXR0aW5ncygmcGFyYW1zLT5yZWFkc1tTTk9SX0NNRF9SRUFEXzFfMV84XSwKLQkJCQkJICAwLCA4LCBTUElOT1JfT1BfUkVBRF8xXzFfOCwKLQkJCQkJICBTTk9SX1BST1RPXzFfMV84KTsKLQl9Ci0KLQkvKiBQYWdlIFByb2dyYW0gc2V0dGluZ3MuICovCi0JcGFyYW1zLT5od2NhcHMubWFzayB8PSBTTk9SX0hXQ0FQU19QUDsKLQlzcGlfbm9yX3NldF9wcF9zZXR0aW5ncygmcGFyYW1zLT5wYWdlX3Byb2dyYW1zW1NOT1JfQ01EX1BQXSwKLQkJCQlTUElOT1JfT1BfUFAsIFNOT1JfUFJPVE9fMV8xXzEpOwotCi0JLyoKLQkgKiBTZWN0b3IgRXJhc2Ugc2V0dGluZ3MuIFNvcnQgRXJhc2UgVHlwZXMgaW4gYXNjZW5kaW5nIG9yZGVyLCB3aXRoIHRoZQotCSAqIHNtYWxsZXN0IGVyYXNlIHNpemUgc3RhcnRpbmcgYXQgQklUKDApLgotCSAqLwotCWVyYXNlX21hc2sgPSAwOwotCWkgPSAwOwotCWlmIChpbmZvLT5mbGFncyAmIFNFQ1RfNEtfUE1DKSB7Ci0JCWVyYXNlX21hc2sgfD0gQklUKGkpOwotCQlzcGlfbm9yX3NldF9lcmFzZV90eXBlKCZtYXAtPmVyYXNlX3R5cGVbaV0sIDQwOTZ1LAotCQkJCSAgICAgICBTUElOT1JfT1BfQkVfNEtfUE1DKTsKLQkJaSsrOwotCX0gZWxzZSBpZiAoaW5mby0+ZmxhZ3MgJiBTRUNUXzRLKSB7Ci0JCWVyYXNlX21hc2sgfD0gQklUKGkpOwotCQlzcGlfbm9yX3NldF9lcmFzZV90eXBlKCZtYXAtPmVyYXNlX3R5cGVbaV0sIDQwOTZ1LAotCQkJCSAgICAgICBTUElOT1JfT1BfQkVfNEspOwotCQlpKys7Ci0JfQotCWVyYXNlX21hc2sgfD0gQklUKGkpOwotCXNwaV9ub3Jfc2V0X2VyYXNlX3R5cGUoJm1hcC0+ZXJhc2VfdHlwZVtpXSwgaW5mby0+c2VjdG9yX3NpemUsCi0JCQkgICAgICAgU1BJTk9SX09QX1NFKTsKLQlzcGlfbm9yX2luaXRfdW5pZm9ybV9lcmFzZV9tYXAobWFwLCBlcmFzZV9tYXNrLCBwYXJhbXMtPnNpemUpOwotCi0JLyogU2VsZWN0IHRoZSBwcm9jZWR1cmUgdG8gc2V0IHRoZSBRdWFkIEVuYWJsZSBiaXQuICovCi0JaWYgKHBhcmFtcy0+aHdjYXBzLm1hc2sgJiAoU05PUl9IV0NBUFNfUkVBRF9RVUFEIHwKLQkJCQkgICBTTk9SX0hXQ0FQU19QUF9RVUFEKSkgewotCQlzd2l0Y2ggKEpFREVDX01GUihpbmZvKSkgewotCQljYXNlIFNOT1JfTUZSX01BQ1JPTklYOgotCQkJcGFyYW1zLT5xdWFkX2VuYWJsZSA9IG1hY3Jvbml4X3F1YWRfZW5hYmxlOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBTTk9SX01GUl9TVDoKLQkJY2FzZSBTTk9SX01GUl9NSUNST046Ci0JCQlicmVhazsKLQotCQlkZWZhdWx0OgotCQkJLyogS2VwdCBvbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHB1cnBvc2UuICovCi0JCQlwYXJhbXMtPnF1YWRfZW5hYmxlID0gc3BhbnNpb25fcXVhZF9lbmFibGU7Ci0JCQlicmVhazsKLQkJfQotCi0JCS8qCi0JCSAqIFNvbWUgbWFudWZhY3R1cmVyIGxpa2UgR2lnYURldmljZSBtYXkgdXNlIGRpZmZlcmVudAotCQkgKiBiaXQgdG8gc2V0IFFFIG9uIGRpZmZlcmVudCBtZW1vcmllcywgc28gdGhlIE1GUiBjYW4ndAotCQkgKiBpbmRpY2F0ZSB0aGUgcXVhZF9lbmFibGUgbWV0aG9kIGZvciB0aGlzIGNhc2UsIHdlIG5lZWQKLQkJICogc2V0IGl0IGluIGZsYXNoIGluZm8gbGlzdC4KLQkJICovCi0JCWlmIChpbmZvLT5xdWFkX2VuYWJsZSkKLQkJCXBhcmFtcy0+cXVhZF9lbmFibGUgPSBpbmZvLT5xdWFkX2VuYWJsZTsKLQl9Ci0KLQlpZiAoKGluZm8tPmZsYWdzICYgKFNQSV9OT1JfRFVBTF9SRUFEIHwgU1BJX05PUl9RVUFEX1JFQUQpKSAmJgotCSAgICAhKGluZm8tPmZsYWdzICYgU1BJX05PUl9TS0lQX1NGRFApKSB7Ci0JCXN0cnVjdCBzcGlfbm9yX2ZsYXNoX3BhcmFtZXRlciBzZmRwX3BhcmFtczsKLQkJc3RydWN0IHNwaV9ub3JfZXJhc2VfbWFwIHByZXZfbWFwOwotCi0JCW1lbWNweSgmc2ZkcF9wYXJhbXMsIHBhcmFtcywgc2l6ZW9mKHNmZHBfcGFyYW1zKSk7Ci0JCW1lbWNweSgmcHJldl9tYXAsICZub3ItPmVyYXNlX21hcCwgc2l6ZW9mKHByZXZfbWFwKSk7Ci0KLQkJaWYgKHNwaV9ub3JfcGFyc2Vfc2ZkcChub3IsICZzZmRwX3BhcmFtcykpIHsKLQkJCW5vci0+YWRkcl93aWR0aCA9IDA7Ci0JCQlub3ItPmZsYWdzICY9IH5TTk9SX0ZfNEJfT1BDT0RFUzsKLQkJCS8qIHJlc3RvcmUgcHJldmlvdXMgZXJhc2UgbWFwICovCi0JCQltZW1jcHkoJm5vci0+ZXJhc2VfbWFwLCAmcHJldl9tYXAsCi0JCQkgICAgICAgc2l6ZW9mKG5vci0+ZXJhc2VfbWFwKSk7Ci0JCX0gZWxzZSB7Ci0JCQltZW1jcHkocGFyYW1zLCAmc2ZkcF9wYXJhbXMsIHNpemVvZigqcGFyYW1zKSk7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCBzcGlfbm9yX3NlbGVjdF9yZWFkKHN0cnVjdCBzcGlfbm9yICpub3IsCi0JCQkgICAgICAgY29uc3Qgc3RydWN0IHNwaV9ub3JfZmxhc2hfcGFyYW1ldGVyICpwYXJhbXMsCiAJCQkgICAgICAgdTMyIHNoYXJlZF9od2NhcHMpCiB7CiAJaW50IGNtZCwgYmVzdF9tYXRjaCA9IGZscyhzaGFyZWRfaHdjYXBzICYgU05PUl9IV0NBUFNfUkVBRF9NQVNLKSAtIDE7CkBAIC0zODI5LDcgKzQxNzMsNyBAQCBzdGF0aWMgaW50IHNwaV9ub3Jfc2VsZWN0X3JlYWQoc3RydWN0IHNwaV9ub3IgKm5vciwKIAlpZiAoY21kIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlyZWFkID0gJnBhcmFtcy0+cmVhZHNbY21kXTsKKwlyZWFkID0gJm5vci0+cGFyYW1zLnJlYWRzW2NtZF07CiAJbm9yLT5yZWFkX29wY29kZSA9IHJlYWQtPm9wY29kZTsKIAlub3ItPnJlYWRfcHJvdG8gPSByZWFkLT5wcm90bzsKIApAQCAtMzg0OCw3ICs0MTkyLDYgQEAgc3RhdGljIGludCBzcGlfbm9yX3NlbGVjdF9yZWFkKHN0cnVjdCBzcGlfbm9yICpub3IsCiB9CiAKIHN0YXRpYyBpbnQgc3BpX25vcl9zZWxlY3RfcHAoc3RydWN0IHNwaV9ub3IgKm5vciwKLQkJCSAgICAgY29uc3Qgc3RydWN0IHNwaV9ub3JfZmxhc2hfcGFyYW1ldGVyICpwYXJhbXMsCiAJCQkgICAgIHUzMiBzaGFyZWRfaHdjYXBzKQogewogCWludCBjbWQsIGJlc3RfbWF0Y2ggPSBmbHMoc2hhcmVkX2h3Y2FwcyAmIFNOT1JfSFdDQVBTX1BQX01BU0spIC0gMTsKQEAgLTM4NjEsNyArNDIwNCw3IEBAIHN0YXRpYyBpbnQgc3BpX25vcl9zZWxlY3RfcHAoc3RydWN0IHNwaV9ub3IgKm5vciwKIAlpZiAoY21kIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlwcCA9ICZwYXJhbXMtPnBhZ2VfcHJvZ3JhbXNbY21kXTsKKwlwcCA9ICZub3ItPnBhcmFtcy5wYWdlX3Byb2dyYW1zW2NtZF07CiAJbm9yLT5wcm9ncmFtX29wY29kZSA9IHBwLT5vcGNvZGU7CiAJbm9yLT53cml0ZV9wcm90byA9IHBwLT5wcm90bzsKIAlyZXR1cm4gMDsKQEAgLTM5MjAsMTEgKzQyNjMsMTIgQEAgc3BpX25vcl9zZWxlY3RfdW5pZm9ybV9lcmFzZShzdHJ1Y3Qgc3BpX25vcl9lcmFzZV9tYXAgKm1hcCwKIAlyZXR1cm4gZXJhc2U7CiB9CiAKLXN0YXRpYyBpbnQgc3BpX25vcl9zZWxlY3RfZXJhc2Uoc3RydWN0IHNwaV9ub3IgKm5vciwgdTMyIHdhbnRlZF9zaXplKQorc3RhdGljIGludCBzcGlfbm9yX3NlbGVjdF9lcmFzZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQogewotCXN0cnVjdCBzcGlfbm9yX2VyYXNlX21hcCAqbWFwID0gJm5vci0+ZXJhc2VfbWFwOworCXN0cnVjdCBzcGlfbm9yX2VyYXNlX21hcCAqbWFwID0gJm5vci0+cGFyYW1zLmVyYXNlX21hcDsKIAljb25zdCBzdHJ1Y3Qgc3BpX25vcl9lcmFzZV90eXBlICplcmFzZSA9IE5VTEw7CiAJc3RydWN0IG10ZF9pbmZvICptdGQgPSAmbm9yLT5tdGQ7CisJdTMyIHdhbnRlZF9zaXplID0gbm9yLT5pbmZvLT5zZWN0b3Jfc2l6ZTsKIAlpbnQgaTsKIAogCS8qCkBAIC0zOTY3LDEyICs0MzExLDExIEBAIHN0YXRpYyBpbnQgc3BpX25vcl9zZWxlY3RfZXJhc2Uoc3RydWN0IHNwaV9ub3IgKm5vciwgdTMyIHdhbnRlZF9zaXplKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNwaV9ub3Jfc2V0dXAoc3RydWN0IHNwaV9ub3IgKm5vciwKLQkJCSBjb25zdCBzdHJ1Y3Qgc3BpX25vcl9mbGFzaF9wYXJhbWV0ZXIgKnBhcmFtcywKLQkJCSBjb25zdCBzdHJ1Y3Qgc3BpX25vcl9od2NhcHMgKmh3Y2FwcykKK3N0YXRpYyBpbnQgc3BpX25vcl9kZWZhdWx0X3NldHVwKHN0cnVjdCBzcGlfbm9yICpub3IsCisJCQkJIGNvbnN0IHN0cnVjdCBzcGlfbm9yX2h3Y2FwcyAqaHdjYXBzKQogeworCXN0cnVjdCBzcGlfbm9yX2ZsYXNoX3BhcmFtZXRlciAqcGFyYW1zID0gJm5vci0+cGFyYW1zOwogCXUzMiBpZ25vcmVkX21hc2ssIHNoYXJlZF9tYXNrOwotCWJvb2wgZW5hYmxlX3F1YWRfaW87CiAJaW50IGVycjsKIAogCS8qCkBAIC0zOTgxLDIwICs0MzI0LDI5IEBAIHN0YXRpYyBpbnQgc3BpX25vcl9zZXR1cChzdHJ1Y3Qgc3BpX25vciAqbm9yLAogCSAqLwogCXNoYXJlZF9tYXNrID0gaHdjYXBzLT5tYXNrICYgcGFyYW1zLT5od2NhcHMubWFzazsKIAotCS8qIFNQSSBuLW4tbiBwcm90b2NvbHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiAqLwotCWlnbm9yZWRfbWFzayA9IChTTk9SX0hXQ0FQU19SRUFEXzJfMl8yIHwKLQkJCVNOT1JfSFdDQVBTX1JFQURfNF80XzQgfAotCQkJU05PUl9IV0NBUFNfUkVBRF84XzhfOCB8Ci0JCQlTTk9SX0hXQ0FQU19QUF80XzRfNCB8Ci0JCQlTTk9SX0hXQ0FQU19QUF84XzhfOCk7Ci0JaWYgKHNoYXJlZF9tYXNrICYgaWdub3JlZF9tYXNrKSB7Ci0JCWRldl9kYmcobm9yLT5kZXYsCi0JCQkiU1BJIG4tbi1uIHByb3RvY29scyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuXG4iKTsKLQkJc2hhcmVkX21hc2sgJj0gfmlnbm9yZWRfbWFzazsKKwlpZiAobm9yLT5zcGltZW0pIHsKKwkJLyoKKwkJICogV2hlbiBjYWxsZWQgZnJvbSBzcGlfbm9yX3Byb2JlKCksIGFsbCBjYXBzIGFyZSBzZXQgYW5kIHdlCisJCSAqIG5lZWQgdG8gZGlzY2FyZCBzb21lIG9mIHRoZW0gYmFzZWQgb24gd2hhdCB0aGUgU1BJCisJCSAqIGNvbnRyb2xsZXIgYWN0dWFsbHkgc3VwcG9ydHMgKHVzaW5nIHNwaV9tZW1fc3VwcG9ydHNfb3AoKSkuCisJCSAqLworCQlzcGlfbm9yX3NwaW1lbV9hZGp1c3RfaHdjYXBzKG5vciwgJnNoYXJlZF9tYXNrKTsKKwl9IGVsc2UgeworCQkvKgorCQkgKiBTUEkgbi1uLW4gcHJvdG9jb2xzIGFyZSBub3Qgc3VwcG9ydGVkIHdoZW4gdGhlIFNQSQorCQkgKiBjb250cm9sbGVyIGRpcmVjdGx5IGltcGxlbWVudHMgdGhlIHNwaV9ub3IgaW50ZXJmYWNlLgorCQkgKiBZZXQgYW5vdGhlciByZWFzb24gdG8gc3dpdGNoIHRvIHNwaS1tZW0uCisJCSAqLworCQlpZ25vcmVkX21hc2sgPSBTTk9SX0hXQ0FQU19YX1hfWDsKKwkJaWYgKHNoYXJlZF9tYXNrICYgaWdub3JlZF9tYXNrKSB7CisJCQlkZXZfZGJnKG5vci0+ZGV2LAorCQkJCSJTUEkgbi1uLW4gcHJvdG9jb2xzIGFyZSBub3Qgc3VwcG9ydGVkLlxuIik7CisJCQlzaGFyZWRfbWFzayAmPSB+aWdub3JlZF9tYXNrOworCQl9CiAJfQogCiAJLyogU2VsZWN0IHRoZSAoRmFzdCkgUmVhZCBjb21tYW5kLiAqLwotCWVyciA9IHNwaV9ub3Jfc2VsZWN0X3JlYWQobm9yLCBwYXJhbXMsIHNoYXJlZF9tYXNrKTsKKwllcnIgPSBzcGlfbm9yX3NlbGVjdF9yZWFkKG5vciwgc2hhcmVkX21hc2spOwogCWlmIChlcnIpIHsKIAkJZGV2X2Vycihub3ItPmRldiwKIAkJCSJjYW4ndCBzZWxlY3QgcmVhZCBzZXR0aW5ncyBzdXBwb3J0ZWQgYnkgYm90aCB0aGUgU1BJIGNvbnRyb2xsZXIgYW5kIG1lbW9yeS5cbiIpOwpAQCAtNDAwMiw3ICs0MzU0LDcgQEAgc3RhdGljIGludCBzcGlfbm9yX3NldHVwKHN0cnVjdCBzcGlfbm9yICpub3IsCiAJfQogCiAJLyogU2VsZWN0IHRoZSBQYWdlIFByb2dyYW0gY29tbWFuZC4gKi8KLQllcnIgPSBzcGlfbm9yX3NlbGVjdF9wcChub3IsIHBhcmFtcywgc2hhcmVkX21hc2spOworCWVyciA9IHNwaV9ub3Jfc2VsZWN0X3BwKG5vciwgc2hhcmVkX21hc2spOwogCWlmIChlcnIpIHsKIAkJZGV2X2Vycihub3ItPmRldiwKIAkJCSJjYW4ndCBzZWxlY3Qgd3JpdGUgc2V0dGluZ3Mgc3VwcG9ydGVkIGJ5IGJvdGggdGhlIFNQSSBjb250cm9sbGVyIGFuZCBtZW1vcnkuXG4iKTsKQEAgLTQwMTAsMzAgKzQzNjIsMzI1IEBAIHN0YXRpYyBpbnQgc3BpX25vcl9zZXR1cChzdHJ1Y3Qgc3BpX25vciAqbm9yLAogCX0KIAogCS8qIFNlbGVjdCB0aGUgU2VjdG9yIEVyYXNlIGNvbW1hbmQuICovCi0JZXJyID0gc3BpX25vcl9zZWxlY3RfZXJhc2Uobm9yLCBub3ItPmluZm8tPnNlY3Rvcl9zaXplKTsKKwllcnIgPSBzcGlfbm9yX3NlbGVjdF9lcmFzZShub3IpOwogCWlmIChlcnIpIHsKIAkJZGV2X2Vycihub3ItPmRldiwKIAkJCSJjYW4ndCBzZWxlY3QgZXJhc2Ugc2V0dGluZ3Mgc3VwcG9ydGVkIGJ5IGJvdGggdGhlIFNQSSBjb250cm9sbGVyIGFuZCBtZW1vcnkuXG4iKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKLQkvKiBFbmFibGUgUXVhZCBJL08gaWYgbmVlZGVkLiAqLwotCWVuYWJsZV9xdWFkX2lvID0gKHNwaV9ub3JfZ2V0X3Byb3RvY29sX3dpZHRoKG5vci0+cmVhZF9wcm90bykgPT0gNCB8fAotCQkJICBzcGlfbm9yX2dldF9wcm90b2NvbF93aWR0aChub3ItPndyaXRlX3Byb3RvKSA9PSA0KTsKLQlpZiAoZW5hYmxlX3F1YWRfaW8gJiYgcGFyYW1zLT5xdWFkX2VuYWJsZSkKLQkJbm9yLT5xdWFkX2VuYWJsZSA9IHBhcmFtcy0+cXVhZF9lbmFibGU7Ci0JZWxzZQotCQlub3ItPnF1YWRfZW5hYmxlID0gTlVMTDsKLQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHNwaV9ub3Jfc2V0dXAoc3RydWN0IHNwaV9ub3IgKm5vciwKKwkJCSBjb25zdCBzdHJ1Y3Qgc3BpX25vcl9od2NhcHMgKmh3Y2FwcykKK3sKKwlpZiAoIW5vci0+cGFyYW1zLnNldHVwKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBub3ItPnBhcmFtcy5zZXR1cChub3IsIGh3Y2Fwcyk7Cit9CisKK3N0YXRpYyB2b2lkIG1hY3Jvbml4X3NldF9kZWZhdWx0X2luaXQoc3RydWN0IHNwaV9ub3IgKm5vcikKK3sKKwlub3ItPnBhcmFtcy5xdWFkX2VuYWJsZSA9IG1hY3Jvbml4X3F1YWRfZW5hYmxlOworCW5vci0+cGFyYW1zLnNldF80Ynl0ZSA9IG1hY3Jvbml4X3NldF80Ynl0ZTsKK30KKworc3RhdGljIHZvaWQgc3RfbWljcm9uX3NldF9kZWZhdWx0X2luaXQoc3RydWN0IHNwaV9ub3IgKm5vcikKK3sKKwlub3ItPmZsYWdzIHw9IFNOT1JfRl9IQVNfTE9DSzsKKwlub3ItPnBhcmFtcy5xdWFkX2VuYWJsZSA9IE5VTEw7CisJbm9yLT5wYXJhbXMuc2V0XzRieXRlID0gc3RfbWljcm9uX3NldF80Ynl0ZTsKK30KKworc3RhdGljIHZvaWQgd2luYm9uZF9zZXRfZGVmYXVsdF9pbml0KHN0cnVjdCBzcGlfbm9yICpub3IpCit7CisJbm9yLT5wYXJhbXMuc2V0XzRieXRlID0gd2luYm9uZF9zZXRfNGJ5dGU7Cit9CisKKy8qKgorICogc3BpX25vcl9tYW51ZmFjdHVyZXJfaW5pdF9wYXJhbXMoKSAtIEluaXRpYWxpemUgdGhlIGZsYXNoJ3MgcGFyYW1ldGVycyBhbmQKKyAqIHNldHRpbmdzIGJhc2VkIG9uIE1GUiByZWdpc3RlciBhbmQgLT5kZWZhdWx0X2luaXQoKSBob29rLgorICogQG5vcjoJcG9pbnRlciB0byBhICdzdHJ1Y3Qgc3BpLW5vcicuCisgKi8KK3N0YXRpYyB2b2lkIHNwaV9ub3JfbWFudWZhY3R1cmVyX2luaXRfcGFyYW1zKHN0cnVjdCBzcGlfbm9yICpub3IpCit7CisJLyogSW5pdCBmbGFzaCBwYXJhbWV0ZXJzIGJhc2VkIG9uIE1GUiAqLworCXN3aXRjaCAoSkVERUNfTUZSKG5vci0+aW5mbykpIHsKKwljYXNlIFNOT1JfTUZSX01BQ1JPTklYOgorCQltYWNyb25peF9zZXRfZGVmYXVsdF9pbml0KG5vcik7CisJCWJyZWFrOworCisJY2FzZSBTTk9SX01GUl9TVDoKKwljYXNlIFNOT1JfTUZSX01JQ1JPTjoKKwkJc3RfbWljcm9uX3NldF9kZWZhdWx0X2luaXQobm9yKTsKKwkJYnJlYWs7CisKKwljYXNlIFNOT1JfTUZSX1dJTkJPTkQ6CisJCXdpbmJvbmRfc2V0X2RlZmF1bHRfaW5pdChub3IpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworCWlmIChub3ItPmluZm8tPmZpeHVwcyAmJiBub3ItPmluZm8tPmZpeHVwcy0+ZGVmYXVsdF9pbml0KQorCQlub3ItPmluZm8tPmZpeHVwcy0+ZGVmYXVsdF9pbml0KG5vcik7Cit9CisKKy8qKgorICogc3BpX25vcl9zZmRwX2luaXRfcGFyYW1zKCkgLSBJbml0aWFsaXplIHRoZSBmbGFzaCdzIHBhcmFtZXRlcnMgYW5kIHNldHRpbmdzCisgKiBiYXNlZCBvbiBKRVNEMjE2IFNGRFAgc3RhbmRhcmQuCisgKiBAbm9yOglwb2ludGVyIHRvIGEgJ3N0cnVjdCBzcGktbm9yJy4KKyAqCisgKiBUaGUgbWV0aG9kIGhhcyBhIHJvbGwtYmFjayBtZWNoYW5pc206IGluIGNhc2UgdGhlIFNGRFAgcGFyc2luZyBmYWlscywgdGhlCisgKiBsZWdhY3kgZmxhc2ggcGFyYW1ldGVycyBhbmQgc2V0dGluZ3Mgd2lsbCBiZSByZXN0b3JlZC4KKyAqLworc3RhdGljIHZvaWQgc3BpX25vcl9zZmRwX2luaXRfcGFyYW1zKHN0cnVjdCBzcGlfbm9yICpub3IpCit7CisJc3RydWN0IHNwaV9ub3JfZmxhc2hfcGFyYW1ldGVyIHNmZHBfcGFyYW1zOworCisJbWVtY3B5KCZzZmRwX3BhcmFtcywgJm5vci0+cGFyYW1zLCBzaXplb2Yoc2ZkcF9wYXJhbXMpKTsKKworCWlmIChzcGlfbm9yX3BhcnNlX3NmZHAobm9yLCAmc2ZkcF9wYXJhbXMpKSB7CisJCW5vci0+YWRkcl93aWR0aCA9IDA7CisJCW5vci0+ZmxhZ3MgJj0gflNOT1JfRl80Ql9PUENPREVTOworCX0gZWxzZSB7CisJCW1lbWNweSgmbm9yLT5wYXJhbXMsICZzZmRwX3BhcmFtcywgc2l6ZW9mKG5vci0+cGFyYW1zKSk7CisJfQorfQorCisvKioKKyAqIHNwaV9ub3JfaW5mb19pbml0X3BhcmFtcygpIC0gSW5pdGlhbGl6ZSB0aGUgZmxhc2gncyBwYXJhbWV0ZXJzIGFuZCBzZXR0aW5ncworICogYmFzZWQgb24gbm9yLT5pbmZvIGRhdGEuCisgKiBAbm9yOglwb2ludGVyIHRvIGEgJ3N0cnVjdCBzcGktbm9yJy4KKyAqLworc3RhdGljIHZvaWQgc3BpX25vcl9pbmZvX2luaXRfcGFyYW1zKHN0cnVjdCBzcGlfbm9yICpub3IpCit7CisJc3RydWN0IHNwaV9ub3JfZmxhc2hfcGFyYW1ldGVyICpwYXJhbXMgPSAmbm9yLT5wYXJhbXM7CisJc3RydWN0IHNwaV9ub3JfZXJhc2VfbWFwICptYXAgPSAmcGFyYW1zLT5lcmFzZV9tYXA7CisJY29uc3Qgc3RydWN0IGZsYXNoX2luZm8gKmluZm8gPSBub3ItPmluZm87CisJc3RydWN0IGRldmljZV9ub2RlICpucCA9IHNwaV9ub3JfZ2V0X2ZsYXNoX25vZGUobm9yKTsKKwl1OCBpLCBlcmFzZV9tYXNrOworCisJLyogSW5pdGlhbGl6ZSBsZWdhY3kgZmxhc2ggcGFyYW1ldGVycyBhbmQgc2V0dGluZ3MuICovCisJcGFyYW1zLT5xdWFkX2VuYWJsZSA9IHNwYW5zaW9uX3F1YWRfZW5hYmxlOworCXBhcmFtcy0+c2V0XzRieXRlID0gc3BhbnNpb25fc2V0XzRieXRlOworCXBhcmFtcy0+c2V0dXAgPSBzcGlfbm9yX2RlZmF1bHRfc2V0dXA7CisKKwkvKiBTZXQgU1BJIE5PUiBzaXplcy4gKi8KKwlwYXJhbXMtPnNpemUgPSAodTY0KWluZm8tPnNlY3Rvcl9zaXplICogaW5mby0+bl9zZWN0b3JzOworCXBhcmFtcy0+cGFnZV9zaXplID0gaW5mby0+cGFnZV9zaXplOworCisJaWYgKCEoaW5mby0+ZmxhZ3MgJiBTUElfTk9SX05PX0ZSKSkgeworCQkvKiBEZWZhdWx0IHRvIEZhc3QgUmVhZCBmb3IgRFQgYW5kIG5vbi1EVCBwbGF0Zm9ybSBkZXZpY2VzLiAqLworCQlwYXJhbXMtPmh3Y2Fwcy5tYXNrIHw9IFNOT1JfSFdDQVBTX1JFQURfRkFTVDsKKworCQkvKiBNYXNrIG91dCBGYXN0IFJlYWQgaWYgbm90IHJlcXVlc3RlZCBhdCBEVCBpbnN0YW50aWF0aW9uLiAqLworCQlpZiAobnAgJiYgIW9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgIm0yNXAsZmFzdC1yZWFkIikpCisJCQlwYXJhbXMtPmh3Y2Fwcy5tYXNrICY9IH5TTk9SX0hXQ0FQU19SRUFEX0ZBU1Q7CisJfQorCisJLyogKEZhc3QpIFJlYWQgc2V0dGluZ3MuICovCisJcGFyYW1zLT5od2NhcHMubWFzayB8PSBTTk9SX0hXQ0FQU19SRUFEOworCXNwaV9ub3Jfc2V0X3JlYWRfc2V0dGluZ3MoJnBhcmFtcy0+cmVhZHNbU05PUl9DTURfUkVBRF0sCisJCQkJICAwLCAwLCBTUElOT1JfT1BfUkVBRCwKKwkJCQkgIFNOT1JfUFJPVE9fMV8xXzEpOworCisJaWYgKHBhcmFtcy0+aHdjYXBzLm1hc2sgJiBTTk9SX0hXQ0FQU19SRUFEX0ZBU1QpCisJCXNwaV9ub3Jfc2V0X3JlYWRfc2V0dGluZ3MoJnBhcmFtcy0+cmVhZHNbU05PUl9DTURfUkVBRF9GQVNUXSwKKwkJCQkJICAwLCA4LCBTUElOT1JfT1BfUkVBRF9GQVNULAorCQkJCQkgIFNOT1JfUFJPVE9fMV8xXzEpOworCisJaWYgKGluZm8tPmZsYWdzICYgU1BJX05PUl9EVUFMX1JFQUQpIHsKKwkJcGFyYW1zLT5od2NhcHMubWFzayB8PSBTTk9SX0hXQ0FQU19SRUFEXzFfMV8yOworCQlzcGlfbm9yX3NldF9yZWFkX3NldHRpbmdzKCZwYXJhbXMtPnJlYWRzW1NOT1JfQ01EX1JFQURfMV8xXzJdLAorCQkJCQkgIDAsIDgsIFNQSU5PUl9PUF9SRUFEXzFfMV8yLAorCQkJCQkgIFNOT1JfUFJPVE9fMV8xXzIpOworCX0KKworCWlmIChpbmZvLT5mbGFncyAmIFNQSV9OT1JfUVVBRF9SRUFEKSB7CisJCXBhcmFtcy0+aHdjYXBzLm1hc2sgfD0gU05PUl9IV0NBUFNfUkVBRF8xXzFfNDsKKwkJc3BpX25vcl9zZXRfcmVhZF9zZXR0aW5ncygmcGFyYW1zLT5yZWFkc1tTTk9SX0NNRF9SRUFEXzFfMV80XSwKKwkJCQkJICAwLCA4LCBTUElOT1JfT1BfUkVBRF8xXzFfNCwKKwkJCQkJICBTTk9SX1BST1RPXzFfMV80KTsKKwl9CisKKwlpZiAoaW5mby0+ZmxhZ3MgJiBTUElfTk9SX09DVEFMX1JFQUQpIHsKKwkJcGFyYW1zLT5od2NhcHMubWFzayB8PSBTTk9SX0hXQ0FQU19SRUFEXzFfMV84OworCQlzcGlfbm9yX3NldF9yZWFkX3NldHRpbmdzKCZwYXJhbXMtPnJlYWRzW1NOT1JfQ01EX1JFQURfMV8xXzhdLAorCQkJCQkgIDAsIDgsIFNQSU5PUl9PUF9SRUFEXzFfMV84LAorCQkJCQkgIFNOT1JfUFJPVE9fMV8xXzgpOworCX0KKworCS8qIFBhZ2UgUHJvZ3JhbSBzZXR0aW5ncy4gKi8KKwlwYXJhbXMtPmh3Y2Fwcy5tYXNrIHw9IFNOT1JfSFdDQVBTX1BQOworCXNwaV9ub3Jfc2V0X3BwX3NldHRpbmdzKCZwYXJhbXMtPnBhZ2VfcHJvZ3JhbXNbU05PUl9DTURfUFBdLAorCQkJCVNQSU5PUl9PUF9QUCwgU05PUl9QUk9UT18xXzFfMSk7CisKKwkvKgorCSAqIFNlY3RvciBFcmFzZSBzZXR0aW5ncy4gU29ydCBFcmFzZSBUeXBlcyBpbiBhc2NlbmRpbmcgb3JkZXIsIHdpdGggdGhlCisJICogc21hbGxlc3QgZXJhc2Ugc2l6ZSBzdGFydGluZyBhdCBCSVQoMCkuCisJICovCisJZXJhc2VfbWFzayA9IDA7CisJaSA9IDA7CisJaWYgKGluZm8tPmZsYWdzICYgU0VDVF80S19QTUMpIHsKKwkJZXJhc2VfbWFzayB8PSBCSVQoaSk7CisJCXNwaV9ub3Jfc2V0X2VyYXNlX3R5cGUoJm1hcC0+ZXJhc2VfdHlwZVtpXSwgNDA5NnUsCisJCQkJICAgICAgIFNQSU5PUl9PUF9CRV80S19QTUMpOworCQlpKys7CisJfSBlbHNlIGlmIChpbmZvLT5mbGFncyAmIFNFQ1RfNEspIHsKKwkJZXJhc2VfbWFzayB8PSBCSVQoaSk7CisJCXNwaV9ub3Jfc2V0X2VyYXNlX3R5cGUoJm1hcC0+ZXJhc2VfdHlwZVtpXSwgNDA5NnUsCisJCQkJICAgICAgIFNQSU5PUl9PUF9CRV80Syk7CisJCWkrKzsKKwl9CisJZXJhc2VfbWFzayB8PSBCSVQoaSk7CisJc3BpX25vcl9zZXRfZXJhc2VfdHlwZSgmbWFwLT5lcmFzZV90eXBlW2ldLCBpbmZvLT5zZWN0b3Jfc2l6ZSwKKwkJCSAgICAgICBTUElOT1JfT1BfU0UpOworCXNwaV9ub3JfaW5pdF91bmlmb3JtX2VyYXNlX21hcChtYXAsIGVyYXNlX21hc2ssIHBhcmFtcy0+c2l6ZSk7Cit9CisKK3N0YXRpYyB2b2lkIHNwYW5zaW9uX3Bvc3Rfc2ZkcF9maXh1cHMoc3RydWN0IHNwaV9ub3IgKm5vcikKK3sKKwlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9ICZub3ItPm10ZDsKKworCWlmIChtdGQtPnNpemUgPD0gU1pfMTZNKQorCQlyZXR1cm47CisKKwlub3ItPmZsYWdzIHw9IFNOT1JfRl80Ql9PUENPREVTOworCS8qIE5vIHNtYWxsIHNlY3RvciBlcmFzZSBmb3IgNC1ieXRlIGNvbW1hbmQgc2V0ICovCisJbm9yLT5lcmFzZV9vcGNvZGUgPSBTUElOT1JfT1BfU0U7CisJbm9yLT5tdGQuZXJhc2VzaXplID0gbm9yLT5pbmZvLT5zZWN0b3Jfc2l6ZTsKK30KKworc3RhdGljIHZvaWQgczNhbl9wb3N0X3NmZHBfZml4dXBzKHN0cnVjdCBzcGlfbm9yICpub3IpCit7CisJbm9yLT5wYXJhbXMuc2V0dXAgPSBzM2FuX25vcl9zZXR1cDsKK30KKworLyoqCisgKiBzcGlfbm9yX3Bvc3Rfc2ZkcF9maXh1cHMoKSAtIFVwZGF0ZXMgdGhlIGZsYXNoJ3MgcGFyYW1ldGVycyBhbmQgc2V0dGluZ3MKKyAqIGFmdGVyIFNGRFAgaGFzIGJlZW4gcGFyc2VkIChpcyBhbHNvIGNhbGxlZCBmb3IgU1BJIE5PUnMgdGhhdCBkbyBub3QKKyAqIHN1cHBvcnQgUkRTRkRQKS4KKyAqIEBub3I6CXBvaW50ZXIgdG8gYSAnc3RydWN0IHNwaV9ub3InCisgKgorICogVHlwaWNhbGx5IHVzZWQgdG8gdHdlYWsgdmFyaW91cyBwYXJhbWV0ZXJzIHRoYXQgY291bGQgbm90IGJlIGV4dHJhY3RlZCBieQorICogb3RoZXIgbWVhbnMgKGkuZS4gd2hlbiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSB0aGUgU0ZEUC9mbGFzaF9pbmZvIHRhYmxlcworICogYXJlIGluY29tcGxldGUgb3Igd3JvbmcpLgorICovCitzdGF0aWMgdm9pZCBzcGlfbm9yX3Bvc3Rfc2ZkcF9maXh1cHMoc3RydWN0IHNwaV9ub3IgKm5vcikKK3sKKwlzd2l0Y2ggKEpFREVDX01GUihub3ItPmluZm8pKSB7CisJY2FzZSBTTk9SX01GUl9TUEFOU0lPTjoKKwkJc3BhbnNpb25fcG9zdF9zZmRwX2ZpeHVwcyhub3IpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworCWlmIChub3ItPmluZm8tPmZsYWdzICYgU1BJX1MzQU4pCisJCXMzYW5fcG9zdF9zZmRwX2ZpeHVwcyhub3IpOworCisJaWYgKG5vci0+aW5mby0+Zml4dXBzICYmIG5vci0+aW5mby0+Zml4dXBzLT5wb3N0X3NmZHApCisJCW5vci0+aW5mby0+Zml4dXBzLT5wb3N0X3NmZHAobm9yKTsKK30KKworLyoqCisgKiBzcGlfbm9yX2xhdGVfaW5pdF9wYXJhbXMoKSAtIExhdGUgaW5pdGlhbGl6YXRpb24gb2YgZGVmYXVsdCBmbGFzaCBwYXJhbWV0ZXJzLgorICogQG5vcjoJcG9pbnRlciB0byBhICdzdHJ1Y3Qgc3BpX25vcicKKyAqCisgKiBVc2VkIHRvIHNldCBkZWZhdWx0IGZsYXNoIHBhcmFtZXRlcnMgYW5kIHNldHRpbmdzIHdoZW4gdGhlIC0+ZGVmYXVsdF9pbml0KCkKKyAqIGhvb2sgb3IgdGhlIFNGRFAgcGFyc2VyIGxldCB2b2lkcy4KKyAqLworc3RhdGljIHZvaWQgc3BpX25vcl9sYXRlX2luaXRfcGFyYW1zKHN0cnVjdCBzcGlfbm9yICpub3IpCit7CisJLyoKKwkgKiBOT1IgcHJvdGVjdGlvbiBzdXBwb3J0LiBXaGVuIGxvY2tpbmdfb3BzIGFyZSBub3QgcHJvdmlkZWQsIHdlIHBpY2sKKwkgKiB0aGUgZGVmYXVsdCBvbmVzLgorCSAqLworCWlmIChub3ItPmZsYWdzICYgU05PUl9GX0hBU19MT0NLICYmICFub3ItPnBhcmFtcy5sb2NraW5nX29wcykKKwkJbm9yLT5wYXJhbXMubG9ja2luZ19vcHMgPSAmc3RtX2xvY2tpbmdfb3BzOworfQorCisvKioKKyAqIHNwaV9ub3JfaW5pdF9wYXJhbXMoKSAtIEluaXRpYWxpemUgdGhlIGZsYXNoJ3MgcGFyYW1ldGVycyBhbmQgc2V0dGluZ3MuCisgKiBAbm9yOglwb2ludGVyIHRvIGEgJ3N0cnVjdCBzcGktbm9yJy4KKyAqCisgKiBUaGUgZmxhc2ggcGFyYW1ldGVycyBhbmQgc2V0dGluZ3MgYXJlIGluaXRpYWxpemVkIGJhc2VkIG9uIGEgc2VxdWVuY2Ugb2YKKyAqIGNhbGxzIHRoYXQgYXJlIG9yZGVyZWQgYnkgcHJpb3JpdHk6CisgKgorICogMS8gRGVmYXVsdCBmbGFzaCBwYXJhbWV0ZXJzIGluaXRpYWxpemF0aW9uLiBUaGUgaW5pdGlhbGl6YXRpb25zIGFyZSBkb25lCisgKiAgICBiYXNlZCBvbiBub3ItPmluZm8gZGF0YToKKyAqCQlzcGlfbm9yX2luZm9faW5pdF9wYXJhbXMoKQorICoKKyAqIHdoaWNoIGNhbiBiZSBvdmVyd3JpdHRlbiBieToKKyAqIDIvIE1hbnVmYWN0dXJlciBmbGFzaCBwYXJhbWV0ZXJzIGluaXRpYWxpemF0aW9uLiBUaGUgaW5pdGlhbGl6YXRpb25zIGFyZQorICogICAgZG9uZSBiYXNlZCBvbiBNRlIgcmVnaXN0ZXIsIG9yIHdoZW4gdGhlIGRlY2lzaW9ucyBjYW4gbm90IGJlIGRvbmUgc29sZWx5CisgKiAgICBiYXNlZCBvbiBNRlIsIGJ5IHVzaW5nIHNwZWNpZmljIGZsYXNoX2luZm8gdHdlZWtzLCAtPmRlZmF1bHRfaW5pdCgpOgorICoJCXNwaV9ub3JfbWFudWZhY3R1cmVyX2luaXRfcGFyYW1zKCkKKyAqCisgKiB3aGljaCBjYW4gYmUgb3ZlcndyaXR0ZW4gYnk6CisgKiAzLyBTRkRQIGZsYXNoIHBhcmFtZXRlcnMgaW5pdGlhbGl6YXRpb24uIEpFU0QyMTYgU0ZEUCBpcyBhIHN0YW5kYXJkIGFuZAorICogICAgc2hvdWxkIGJlIG1vcmUgYWNjdXJhdGUgdGhhdCB0aGUgYWJvdmUuCisgKgkJc3BpX25vcl9zZmRwX2luaXRfcGFyYW1zKCkKKyAqCisgKiAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoZXJlIGlzIGEgLT5wb3N0X2JmcHQoKSBmaXh1cCBob29rIHRoYXQgY2FuIG92ZXJ3cml0ZQorICogICAgdGhlIGZsYXNoIHBhcmFtZXRlcnMgYW5kIHNldHRpbmdzIGltbWVkaWF0ZWx5IGFmdGVyIHBhcnNpbmcgdGhlIEJhc2ljCisgKiAgICBGbGFzaCBQYXJhbWV0ZXIgVGFibGUuCisgKgorICogd2hpY2ggY2FuIGJlIG92ZXJ3cml0dGVuIGJ5OgorICogNC8gUG9zdCBTRkRQIGZsYXNoIHBhcmFtZXRlcnMgaW5pdGlhbGl6YXRpb24uIFVzZWQgdG8gdHdlYWsgdmFyaW91cworICogICAgcGFyYW1ldGVycyB0aGF0IGNvdWxkIG5vdCBiZSBleHRyYWN0ZWQgYnkgb3RoZXIgbWVhbnMgKGkuZS4gd2hlbgorICogICAgaW5mb3JtYXRpb24gcHJvdmlkZWQgYnkgdGhlIFNGRFAvZmxhc2hfaW5mbyB0YWJsZXMgYXJlIGluY29tcGxldGUgb3IKKyAqICAgIHdyb25nKS4KKyAqCQlzcGlfbm9yX3Bvc3Rfc2ZkcF9maXh1cHMoKQorICoKKyAqIDUvIExhdGUgZGVmYXVsdCBmbGFzaCBwYXJhbWV0ZXJzIGluaXRpYWxpemF0aW9uLCB1c2VkIHdoZW4gdGhlCisgKiAtPmRlZmF1bHRfaW5pdCgpIGhvb2sgb3IgdGhlIFNGRFAgcGFyc2VyIGRvIG5vdCBzZXQgc3BlY2lmaWMgcGFyYW1zLgorICoJCXNwaV9ub3JfbGF0ZV9pbml0X3BhcmFtcygpCisgKi8KK3N0YXRpYyB2b2lkIHNwaV9ub3JfaW5pdF9wYXJhbXMoc3RydWN0IHNwaV9ub3IgKm5vcikKK3sKKwlzcGlfbm9yX2luZm9faW5pdF9wYXJhbXMobm9yKTsKKworCXNwaV9ub3JfbWFudWZhY3R1cmVyX2luaXRfcGFyYW1zKG5vcik7CisKKwlpZiAoKG5vci0+aW5mby0+ZmxhZ3MgJiAoU1BJX05PUl9EVUFMX1JFQUQgfCBTUElfTk9SX1FVQURfUkVBRCkpICYmCisJICAgICEobm9yLT5pbmZvLT5mbGFncyAmIFNQSV9OT1JfU0tJUF9TRkRQKSkKKwkJc3BpX25vcl9zZmRwX2luaXRfcGFyYW1zKG5vcik7CisKKwlzcGlfbm9yX3Bvc3Rfc2ZkcF9maXh1cHMobm9yKTsKKworCXNwaV9ub3JfbGF0ZV9pbml0X3BhcmFtcyhub3IpOworfQorCisvKioKKyAqIHNwaV9ub3JfcXVhZF9lbmFibGUoKSAtIGVuYWJsZSBRdWFkIEkvTyBpZiBuZWVkZWQuCisgKiBAbm9yOiAgICAgICAgICAgICAgICBwb2ludGVyIHRvIGEgJ3N0cnVjdCBzcGlfbm9yJworICoKKyAqIFJldHVybjogMCBvbiBzdWNjZXNzLCAtZXJybm8gb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50IHNwaV9ub3JfcXVhZF9lbmFibGUoc3RydWN0IHNwaV9ub3IgKm5vcikKK3sKKwlpZiAoIW5vci0+cGFyYW1zLnF1YWRfZW5hYmxlKQorCQlyZXR1cm4gMDsKKworCWlmICghKHNwaV9ub3JfZ2V0X3Byb3RvY29sX3dpZHRoKG5vci0+cmVhZF9wcm90bykgPT0gNCB8fAorCSAgICAgIHNwaV9ub3JfZ2V0X3Byb3RvY29sX3dpZHRoKG5vci0+d3JpdGVfcHJvdG8pID09IDQpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBub3ItPnBhcmFtcy5xdWFkX2VuYWJsZShub3IpOworfQorCiBzdGF0aWMgaW50IHNwaV9ub3JfaW5pdChzdHJ1Y3Qgc3BpX25vciAqbm9yKQogewogCWludCBlcnI7CiAKIAlpZiAobm9yLT5jbGVhcl9zcl9icCkgewotCQlpZiAobm9yLT5xdWFkX2VuYWJsZSA9PSBzcGFuc2lvbl9xdWFkX2VuYWJsZSkKKwkJaWYgKG5vci0+cGFyYW1zLnF1YWRfZW5hYmxlID09IHNwYW5zaW9uX3F1YWRfZW5hYmxlKQogCQkJbm9yLT5jbGVhcl9zcl9icCA9IHNwaV9ub3Jfc3BhbnNpb25fY2xlYXJfc3JfYnA7CiAKIAkJZXJyID0gbm9yLT5jbGVhcl9zcl9icChub3IpOwpAQCAtNDA0NCwxMiArNDY5MSwxMCBAQCBzdGF0aWMgaW50IHNwaV9ub3JfaW5pdChzdHJ1Y3Qgc3BpX25vciAqbm9yKQogCQl9CiAJfQogCi0JaWYgKG5vci0+cXVhZF9lbmFibGUpIHsKLQkJZXJyID0gbm9yLT5xdWFkX2VuYWJsZShub3IpOwotCQlpZiAoZXJyKSB7Ci0JCQlkZXZfZXJyKG5vci0+ZGV2LCAicXVhZCBtb2RlIG5vdCBzdXBwb3J0ZWRcbiIpOwotCQkJcmV0dXJuIGVycjsKLQkJfQorCWVyciA9IHNwaV9ub3JfcXVhZF9lbmFibGUobm9yKTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIobm9yLT5kZXYsICJxdWFkIG1vZGUgbm90IHN1cHBvcnRlZFxuIik7CisJCXJldHVybiBlcnI7CiAJfQogCiAJaWYgKG5vci0+YWRkcl93aWR0aCA9PSA0ICYmICEobm9yLT5mbGFncyAmIFNOT1JfRl80Ql9PUENPREVTKSkgewpAQCAtNDA2Miw3ICs0NzA3LDcgQEAgc3RhdGljIGludCBzcGlfbm9yX2luaXQoc3RydWN0IHNwaV9ub3IgKm5vcikKIAkJICovCiAJCVdBUk5fT05DRShub3ItPmZsYWdzICYgU05PUl9GX0JST0tFTl9SRVNFVCwKIAkJCSAgImVuYWJsaW5nIHJlc2V0IGhhY2s7IG1heSBub3QgcmVjb3ZlciBmcm9tIHVuZXhwZWN0ZWQgcmVib290c1xuIik7Ci0JCXNldF80Ynl0ZShub3IsIHRydWUpOworCQlub3ItPnBhcmFtcy5zZXRfNGJ5dGUobm9yLCB0cnVlKTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTQwODYsNyArNDczMSw3IEBAIHZvaWQgc3BpX25vcl9yZXN0b3JlKHN0cnVjdCBzcGlfbm9yICpub3IpCiAJLyogcmVzdG9yZSB0aGUgYWRkcmVzc2luZyBtb2RlICovCiAJaWYgKG5vci0+YWRkcl93aWR0aCA9PSA0ICYmICEobm9yLT5mbGFncyAmIFNOT1JfRl80Ql9PUENPREVTKSAmJgogCSAgICBub3ItPmZsYWdzICYgU05PUl9GX0JST0tFTl9SRVNFVCkKLQkJc2V0XzRieXRlKG5vciwgZmFsc2UpOworCQlub3ItPnBhcmFtcy5zZXRfNGJ5dGUobm9yLCBmYWxzZSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzcGlfbm9yX3Jlc3RvcmUpOwogCkBAIC00MTAyLDE0ICs0NzQ3LDkxIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxhc2hfaW5mbyAqc3BpX25vcl9tYXRjaF9pZChjb25zdCBjaGFyICpuYW1lKQogCXJldHVybiBOVUxMOwogfQogCitzdGF0aWMgaW50IHNwaV9ub3Jfc2V0X2FkZHJfd2lkdGgoc3RydWN0IHNwaV9ub3IgKm5vcikKK3sKKwlpZiAobm9yLT5hZGRyX3dpZHRoKSB7CisJCS8qIGFscmVhZHkgY29uZmlndXJlZCBmcm9tIFNGRFAgKi8KKwl9IGVsc2UgaWYgKG5vci0+aW5mby0+YWRkcl93aWR0aCkgeworCQlub3ItPmFkZHJfd2lkdGggPSBub3ItPmluZm8tPmFkZHJfd2lkdGg7CisJfSBlbHNlIGlmIChub3ItPm10ZC5zaXplID4gMHgxMDAwMDAwKSB7CisJCS8qIGVuYWJsZSA0LWJ5dGUgYWRkcmVzc2luZyBpZiB0aGUgZGV2aWNlIGV4Y2VlZHMgMTZNaUIgKi8KKwkJbm9yLT5hZGRyX3dpZHRoID0gNDsKKwl9IGVsc2UgeworCQlub3ItPmFkZHJfd2lkdGggPSAzOworCX0KKworCWlmIChub3ItPmFkZHJfd2lkdGggPiBTUElfTk9SX01BWF9BRERSX1dJRFRIKSB7CisJCWRldl9lcnIobm9yLT5kZXYsICJhZGRyZXNzIHdpZHRoIGlzIHRvbyBsYXJnZTogJXVcbiIsCisJCQlub3ItPmFkZHJfd2lkdGgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBTZXQgNGJ5dGUgb3Bjb2RlcyB3aGVuIHBvc3NpYmxlLiAqLworCWlmIChub3ItPmFkZHJfd2lkdGggPT0gNCAmJiBub3ItPmZsYWdzICYgU05PUl9GXzRCX09QQ09ERVMgJiYKKwkgICAgIShub3ItPmZsYWdzICYgU05PUl9GX0hBU180QkFJVCkpCisJCXNwaV9ub3Jfc2V0XzRieXRlX29wY29kZXMobm9yKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBzcGlfbm9yX2RlYnVnZnNfaW5pdChzdHJ1Y3Qgc3BpX25vciAqbm9yLAorCQkJCSBjb25zdCBzdHJ1Y3QgZmxhc2hfaW5mbyAqaW5mbykKK3sKKwlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9ICZub3ItPm10ZDsKKworCW10ZC0+ZGJnLnBhcnRuYW1lID0gaW5mby0+bmFtZTsKKwltdGQtPmRiZy5wYXJ0aWQgPSBkZXZtX2thc3ByaW50Zihub3ItPmRldiwgR0ZQX0tFUk5FTCwgInNwaS1ub3I6JSpwaE4iLAorCQkJCQkgaW5mby0+aWRfbGVuLCBpbmZvLT5pZCk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmxhc2hfaW5mbyAqc3BpX25vcl9nZXRfZmxhc2hfaW5mbyhzdHJ1Y3Qgc3BpX25vciAqbm9yLAorCQkJCQkJICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisJY29uc3Qgc3RydWN0IGZsYXNoX2luZm8gKmluZm8gPSBOVUxMOworCisJaWYgKG5hbWUpCisJCWluZm8gPSBzcGlfbm9yX21hdGNoX2lkKG5hbWUpOworCS8qIFRyeSB0byBhdXRvLWRldGVjdCBpZiBjaGlwIG5hbWUgd2Fzbid0IHNwZWNpZmllZCBvciBub3QgZm91bmQgKi8KKwlpZiAoIWluZm8pCisJCWluZm8gPSBzcGlfbm9yX3JlYWRfaWQobm9yKTsKKwlpZiAoSVNfRVJSX09SX05VTEwoaW5mbykpCisJCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOworCisJLyoKKwkgKiBJZiBjYWxsZXIgaGFzIHNwZWNpZmllZCBuYW1lIG9mIGZsYXNoIG1vZGVsIHRoYXQgY2FuIG5vcm1hbGx5IGJlCisJICogZGV0ZWN0ZWQgdXNpbmcgSkVERUMsIGxldCdzIHZlcmlmeSBpdC4KKwkgKi8KKwlpZiAobmFtZSAmJiBpbmZvLT5pZF9sZW4pIHsKKwkJY29uc3Qgc3RydWN0IGZsYXNoX2luZm8gKmppbmZvOworCisJCWppbmZvID0gc3BpX25vcl9yZWFkX2lkKG5vcik7CisJCWlmIChJU19FUlIoamluZm8pKSB7CisJCQlyZXR1cm4gamluZm87CisJCX0gZWxzZSBpZiAoamluZm8gIT0gaW5mbykgeworCQkJLyoKKwkJCSAqIEpFREVDIGtub3dzIGJldHRlciwgc28gb3ZlcndyaXRlIHBsYXRmb3JtIElELiBXZQorCQkJICogY2FuJ3QgdHJ1c3QgcGFydGl0aW9ucyBhbnkgbG9uZ2VyLCBidXQgd2UnbGwgbGV0CisJCQkgKiBtdGQgYXBwbHkgdGhlbSBhbnl3YXksIHNpbmNlIHNvbWUgcGFydGl0aW9ucyBtYXkgYmUKKwkJCSAqIG1hcmtlZCByZWFkLW9ubHksIGFuZCB3ZSBkb24ndCB3YW50IHRvIGxvc2UgdGhhdAorCQkJICogaW5mb3JtYXRpb24sIGV2ZW4gaWYgaXQncyBub3QgMTAwJSBhY2N1cmF0ZS4KKwkJCSAqLworCQkJZGV2X3dhcm4obm9yLT5kZXYsICJmb3VuZCAlcywgZXhwZWN0ZWQgJXNcbiIsCisJCQkJIGppbmZvLT5uYW1lLCBpbmZvLT5uYW1lKTsKKwkJCWluZm8gPSBqaW5mbzsKKwkJfQorCX0KKworCXJldHVybiBpbmZvOworfQorCiBpbnQgc3BpX25vcl9zY2FuKHN0cnVjdCBzcGlfbm9yICpub3IsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCSBjb25zdCBzdHJ1Y3Qgc3BpX25vcl9od2NhcHMgKmh3Y2FwcykKIHsKLQlzdHJ1Y3Qgc3BpX25vcl9mbGFzaF9wYXJhbWV0ZXIgcGFyYW1zOwotCWNvbnN0IHN0cnVjdCBmbGFzaF9pbmZvICppbmZvID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgZmxhc2hfaW5mbyAqaW5mbzsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBub3ItPmRldjsKIAlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9ICZub3ItPm10ZDsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gc3BpX25vcl9nZXRfZmxhc2hfbm9kZShub3IpOworCXN0cnVjdCBzcGlfbm9yX2ZsYXNoX3BhcmFtZXRlciAqcGFyYW1zID0gJm5vci0+cGFyYW1zOwogCWludCByZXQ7CiAJaW50IGk7CiAKQEAgLTQxMjIsNDAgKzQ4NDQsMjggQEAgaW50IHNwaV9ub3Jfc2NhbihzdHJ1Y3Qgc3BpX25vciAqbm9yLCBjb25zdCBjaGFyICpuYW1lLAogCW5vci0+cmVhZF9wcm90byA9IFNOT1JfUFJPVE9fMV8xXzE7CiAJbm9yLT53cml0ZV9wcm90byA9IFNOT1JfUFJPVE9fMV8xXzE7CiAKLQlpZiAobmFtZSkKLQkJaW5mbyA9IHNwaV9ub3JfbWF0Y2hfaWQobmFtZSk7Ci0JLyogVHJ5IHRvIGF1dG8tZGV0ZWN0IGlmIGNoaXAgbmFtZSB3YXNuJ3Qgc3BlY2lmaWVkIG9yIG5vdCBmb3VuZCAqLwotCWlmICghaW5mbykKLQkJaW5mbyA9IHNwaV9ub3JfcmVhZF9pZChub3IpOwotCWlmIChJU19FUlJfT1JfTlVMTChpbmZvKSkKLQkJcmV0dXJuIC1FTk9FTlQ7Ci0KIAkvKgotCSAqIElmIGNhbGxlciBoYXMgc3BlY2lmaWVkIG5hbWUgb2YgZmxhc2ggbW9kZWwgdGhhdCBjYW4gbm9ybWFsbHkgYmUKLQkgKiBkZXRlY3RlZCB1c2luZyBKRURFQywgbGV0J3MgdmVyaWZ5IGl0LgorCSAqIFdlIG5lZWQgdGhlIGJvdW5jZSBidWZmZXIgZWFybHkgdG8gcmVhZC93cml0ZSByZWdpc3RlcnMgd2hlbiBnb2luZworCSAqIHRocm91Z2ggdGhlIHNwaS1tZW0gbGF5ZXIgKGJ1ZmZlcnMgaGF2ZSB0byBiZSBETUEtYWJsZSkuCisJICogRm9yIHNwaS1tZW0gZHJpdmVycywgd2UnbGwgcmVhbGxvY2F0ZSBhIG5ldyBidWZmZXIgaWYKKwkgKiBub3ItPnBhZ2Vfc2l6ZSB0dXJucyBvdXQgdG8gYmUgZ3JlYXRlciB0aGFuIFBBR0VfU0laRSAod2hpY2gKKwkgKiBzaG91bGRuJ3QgaGFwcGVuIGJlZm9yZSBsb25nIHNpbmNlIE5PUiBwYWdlcyBhcmUgdXN1YWxseSBsZXNzCisJICogdGhhbiAxS0IpIGFmdGVyIHNwaV9ub3Jfc2NhbigpIHJldHVybnMuCiAJICovCi0JaWYgKG5hbWUgJiYgaW5mby0+aWRfbGVuKSB7Ci0JCWNvbnN0IHN0cnVjdCBmbGFzaF9pbmZvICpqaW5mbzsKKwlub3ItPmJvdW5jZWJ1Zl9zaXplID0gUEFHRV9TSVpFOworCW5vci0+Ym91bmNlYnVmID0gZGV2bV9rbWFsbG9jKGRldiwgbm9yLT5ib3VuY2VidWZfc2l6ZSwKKwkJCQkgICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIW5vci0+Ym91bmNlYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKIAotCQlqaW5mbyA9IHNwaV9ub3JfcmVhZF9pZChub3IpOwotCQlpZiAoSVNfRVJSKGppbmZvKSkgewotCQkJcmV0dXJuIFBUUl9FUlIoamluZm8pOwotCQl9IGVsc2UgaWYgKGppbmZvICE9IGluZm8pIHsKLQkJCS8qCi0JCQkgKiBKRURFQyBrbm93cyBiZXR0ZXIsIHNvIG92ZXJ3cml0ZSBwbGF0Zm9ybSBJRC4gV2UKLQkJCSAqIGNhbid0IHRydXN0IHBhcnRpdGlvbnMgYW55IGxvbmdlciwgYnV0IHdlJ2xsIGxldAotCQkJICogbXRkIGFwcGx5IHRoZW0gYW55d2F5LCBzaW5jZSBzb21lIHBhcnRpdGlvbnMgbWF5IGJlCi0JCQkgKiBtYXJrZWQgcmVhZC1vbmx5LCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBsb3NlIHRoYXQKLQkJCSAqIGluZm9ybWF0aW9uLCBldmVuIGlmIGl0J3Mgbm90IDEwMCUgYWNjdXJhdGUuCi0JCQkgKi8KLQkJCWRldl93YXJuKGRldiwgImZvdW5kICVzLCBleHBlY3RlZCAlc1xuIiwKLQkJCQkgamluZm8tPm5hbWUsIGluZm8tPm5hbWUpOwotCQkJaW5mbyA9IGppbmZvOwotCQl9Ci0JfQorCWluZm8gPSBzcGlfbm9yX2dldF9mbGFzaF9pbmZvKG5vciwgbmFtZSk7CisJaWYgKElTX0VSUihpbmZvKSkKKwkJcmV0dXJuIFBUUl9FUlIoaW5mbyk7CiAKIAlub3ItPmluZm8gPSBpbmZvOwogCisJc3BpX25vcl9kZWJ1Z2ZzX2luaXQobm9yLCBpbmZvKTsKKwogCW11dGV4X2luaXQoJm5vci0+bG9jayk7CiAKIAkvKgpAQCAtNDE2Myw5ICs0ODczLDEyIEBAIGludCBzcGlfbm9yX3NjYW4oc3RydWN0IHNwaV9ub3IgKm5vciwgY29uc3QgY2hhciAqbmFtZSwKIAkgKiBzcGlfbm9yX3dhaXRfdGlsbF9yZWFkeSgpLiBYaWxpbnggUzNBTiBzaGFyZSBNRlIKIAkgKiB3aXRoIEF0bWVsIHNwaS1ub3IKIAkgKi8KLQlpZiAoaW5mby0+ZmxhZ3MgJiBTUElfUzNBTikKKwlpZiAoaW5mby0+ZmxhZ3MgJiBTUElfTk9SX1hTUl9SRFkpCiAJCW5vci0+ZmxhZ3MgfD0gIFNOT1JfRl9SRUFEWV9YU1JfUkRZOwogCisJaWYgKGluZm8tPmZsYWdzICYgU1BJX05PUl9IQVNfTE9DSykKKwkJbm9yLT5mbGFncyB8PSBTTk9SX0ZfSEFTX0xPQ0s7CisKIAkvKgogCSAqIEF0bWVsLCBTU1QsIEludGVsL051bW9ueXgsIGFuZCBvdGhlcnMgc2VyaWFsIE5PUiB0ZW5kIHRvIHBvd2VyIHVwCiAJICogd2l0aCB0aGUgc29mdHdhcmUgcHJvdGVjdGlvbiBiaXRzIHNldC4KQEAgLTQxNzYsMTAgKzQ4ODksOCBAQCBpbnQgc3BpX25vcl9zY2FuKHN0cnVjdCBzcGlfbm9yICpub3IsIGNvbnN0IGNoYXIgKm5hbWUsCiAJICAgIG5vci0+aW5mby0+ZmxhZ3MgJiBTUElfTk9SX0hBU19MT0NLKQogCQlub3ItPmNsZWFyX3NyX2JwID0gc3BpX25vcl9jbGVhcl9zcl9icDsKIAotCS8qIFBhcnNlIHRoZSBTZXJpYWwgRmxhc2ggRGlzY292ZXJhYmxlIFBhcmFtZXRlcnMgdGFibGUuICovCi0JcmV0ID0gc3BpX25vcl9pbml0X3BhcmFtcyhub3IsICZwYXJhbXMpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJLyogSW5pdCBmbGFzaCBwYXJhbWV0ZXJzIGJhc2VkIG9uIGZsYXNoX2luZm8gc3RydWN0IGFuZCBTRkRQICovCisJc3BpX25vcl9pbml0X3BhcmFtcyhub3IpOwogCiAJaWYgKCFtdGQtPm5hbWUpCiAJCW10ZC0+bmFtZSA9IGRldl9uYW1lKGRldik7CkBAIC00MTg3LDIxICs0ODk4LDEyIEBAIGludCBzcGlfbm9yX3NjYW4oc3RydWN0IHNwaV9ub3IgKm5vciwgY29uc3QgY2hhciAqbmFtZSwKIAltdGQtPnR5cGUgPSBNVERfTk9SRkxBU0g7CiAJbXRkLT53cml0ZXNpemUgPSAxOwogCW10ZC0+ZmxhZ3MgPSBNVERfQ0FQX05PUkZMQVNIOwotCW10ZC0+c2l6ZSA9IHBhcmFtcy5zaXplOworCW10ZC0+c2l6ZSA9IHBhcmFtcy0+c2l6ZTsKIAltdGQtPl9lcmFzZSA9IHNwaV9ub3JfZXJhc2U7CiAJbXRkLT5fcmVhZCA9IHNwaV9ub3JfcmVhZDsKIAltdGQtPl9yZXN1bWUgPSBzcGlfbm9yX3Jlc3VtZTsKIAotCS8qIE5PUiBwcm90ZWN0aW9uIHN1cHBvcnQgZm9yIFNUbWljcm8vTWljcm9uIGNoaXBzIGFuZCBzaW1pbGFyICovCi0JaWYgKEpFREVDX01GUihpbmZvKSA9PSBTTk9SX01GUl9TVCB8fAotCSAgICBKRURFQ19NRlIoaW5mbykgPT0gU05PUl9NRlJfTUlDUk9OIHx8Ci0JICAgIGluZm8tPmZsYWdzICYgU1BJX05PUl9IQVNfTE9DSykgewotCQlub3ItPmZsYXNoX2xvY2sgPSBzdG1fbG9jazsKLQkJbm9yLT5mbGFzaF91bmxvY2sgPSBzdG1fdW5sb2NrOwotCQlub3ItPmZsYXNoX2lzX2xvY2tlZCA9IHN0bV9pc19sb2NrZWQ7Ci0JfQotCi0JaWYgKG5vci0+Zmxhc2hfbG9jayAmJiBub3ItPmZsYXNoX3VubG9jayAmJiBub3ItPmZsYXNoX2lzX2xvY2tlZCkgeworCWlmIChub3ItPnBhcmFtcy5sb2NraW5nX29wcykgewogCQltdGQtPl9sb2NrID0gc3BpX25vcl9sb2NrOwogCQltdGQtPl91bmxvY2sgPSBzcGlfbm9yX3VubG9jazsKIAkJbXRkLT5faXNfbG9ja2VkID0gc3BpX25vcl9pc19sb2NrZWQ7CkBAIC00MjI2LDY4ICs0OTI4LDI4IEBAIGludCBzcGlfbm9yX3NjYW4oc3RydWN0IHNwaV9ub3IgKm5vciwgY29uc3QgY2hhciAqbmFtZSwKIAkJbXRkLT5mbGFncyB8PSBNVERfTk9fRVJBU0U7CiAKIAltdGQtPmRldi5wYXJlbnQgPSBkZXY7Ci0Jbm9yLT5wYWdlX3NpemUgPSBwYXJhbXMucGFnZV9zaXplOworCW5vci0+cGFnZV9zaXplID0gcGFyYW1zLT5wYWdlX3NpemU7CiAJbXRkLT53cml0ZWJ1ZnNpemUgPSBub3ItPnBhZ2Vfc2l6ZTsKIAotCWlmIChucCkgewotCQkvKiBJZiB3ZSB3ZXJlIGluc3RhbnRpYXRlZCBieSBEVCwgdXNlIGl0ICovCi0JCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJtMjVwLGZhc3QtcmVhZCIpKQotCQkJcGFyYW1zLmh3Y2Fwcy5tYXNrIHw9IFNOT1JfSFdDQVBTX1JFQURfRkFTVDsKLQkJZWxzZQotCQkJcGFyYW1zLmh3Y2Fwcy5tYXNrICY9IH5TTk9SX0hXQ0FQU19SRUFEX0ZBU1Q7Ci0JfSBlbHNlIHsKLQkJLyogSWYgd2Ugd2VyZW4ndCBpbnN0YW50aWF0ZWQgYnkgRFQsIGRlZmF1bHQgdG8gZmFzdC1yZWFkICovCi0JCXBhcmFtcy5od2NhcHMubWFzayB8PSBTTk9SX0hXQ0FQU19SRUFEX0ZBU1Q7Ci0JfQotCiAJaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgImJyb2tlbi1mbGFzaC1yZXNldCIpKQogCQlub3ItPmZsYWdzIHw9IFNOT1JfRl9CUk9LRU5fUkVTRVQ7CiAKLQkvKiBTb21lIGRldmljZXMgY2Fubm90IGRvIGZhc3QtcmVhZCwgbm8gbWF0dGVyIHdoYXQgRFQgdGVsbHMgdXMgKi8KLQlpZiAoaW5mby0+ZmxhZ3MgJiBTUElfTk9SX05PX0ZSKQotCQlwYXJhbXMuaHdjYXBzLm1hc2sgJj0gflNOT1JfSFdDQVBTX1JFQURfRkFTVDsKLQogCS8qCiAJICogQ29uZmlndXJlIHRoZSBTUEkgbWVtb3J5OgogCSAqIC0gc2VsZWN0IG9wIGNvZGVzIGZvciAoRmFzdCkgUmVhZCwgUGFnZSBQcm9ncmFtIGFuZCBTZWN0b3IgRXJhc2UuCiAJICogLSBzZXQgdGhlIG51bWJlciBvZiBkdW1teSBjeWNsZXMgKG1vZGUgY3ljbGVzICsgd2FpdCBzdGF0ZXMpLgogCSAqIC0gc2V0IHRoZSBTUEkgcHJvdG9jb2xzIGZvciByZWdpc3RlciBhbmQgbWVtb3J5IGFjY2Vzc2VzLgotCSAqIC0gc2V0IHRoZSBRdWFkIEVuYWJsZSBiaXQgaWYgbmVlZGVkIChyZXF1aXJlZCBieSBTUEkgeC15LTQgcHJvdG9zKS4KIAkgKi8KLQlyZXQgPSBzcGlfbm9yX3NldHVwKG5vciwgJnBhcmFtcywgaHdjYXBzKTsKKwlyZXQgPSBzcGlfbm9yX3NldHVwKG5vciwgaHdjYXBzKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaWYgKG5vci0+YWRkcl93aWR0aCkgewotCQkvKiBhbHJlYWR5IGNvbmZpZ3VyZWQgZnJvbSBTRkRQICovCi0JfSBlbHNlIGlmIChpbmZvLT5hZGRyX3dpZHRoKSB7Ci0JCW5vci0+YWRkcl93aWR0aCA9IGluZm8tPmFkZHJfd2lkdGg7Ci0JfSBlbHNlIGlmIChtdGQtPnNpemUgPiAweDEwMDAwMDApIHsKLQkJLyogZW5hYmxlIDQtYnl0ZSBhZGRyZXNzaW5nIGlmIHRoZSBkZXZpY2UgZXhjZWVkcyAxNk1pQiAqLwotCQlub3ItPmFkZHJfd2lkdGggPSA0OwotCX0gZWxzZSB7Ci0JCW5vci0+YWRkcl93aWR0aCA9IDM7Ci0JfQotCi0JaWYgKGluZm8tPmZsYWdzICYgU1BJX05PUl80Ql9PUENPREVTIHx8Ci0JICAgIChKRURFQ19NRlIoaW5mbykgPT0gU05PUl9NRlJfU1BBTlNJT04gJiYgbXRkLT5zaXplID4gU1pfMTZNKSkKKwlpZiAoaW5mby0+ZmxhZ3MgJiBTUElfTk9SXzRCX09QQ09ERVMpCiAJCW5vci0+ZmxhZ3MgfD0gU05PUl9GXzRCX09QQ09ERVM7CiAKLQlpZiAobm9yLT5hZGRyX3dpZHRoID09IDQgJiYgbm9yLT5mbGFncyAmIFNOT1JfRl80Ql9PUENPREVTICYmCi0JICAgICEobm9yLT5mbGFncyAmIFNOT1JfRl9IQVNfNEJBSVQpKQotCQlzcGlfbm9yX3NldF80Ynl0ZV9vcGNvZGVzKG5vcik7Ci0KLQlpZiAobm9yLT5hZGRyX3dpZHRoID4gU1BJX05PUl9NQVhfQUREUl9XSURUSCkgewotCQlkZXZfZXJyKGRldiwgImFkZHJlc3Mgd2lkdGggaXMgdG9vIGxhcmdlOiAldVxuIiwKLQkJCW5vci0+YWRkcl93aWR0aCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChpbmZvLT5mbGFncyAmIFNQSV9TM0FOKSB7Ci0JCXJldCA9IHMzYW5fbm9yX3NjYW4obm9yKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JfQorCXJldCA9IHNwaV9ub3Jfc2V0X2FkZHJfd2lkdGgobm9yKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJLyogU2VuZCBhbGwgdGhlIHJlcXVpcmVkIFNQSSBmbGFzaCBjb21tYW5kcyB0byBpbml0aWFsaXplIGRldmljZSAqLwogCXJldCA9IHNwaV9ub3JfaW5pdChub3IpOwpAQCAtNDMxNyw2ICs0OTc5LDE3NCBAQCBpbnQgc3BpX25vcl9zY2FuKHN0cnVjdCBzcGlfbm9yICpub3IsIGNvbnN0IGNoYXIgKm5hbWUsCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzcGlfbm9yX3NjYW4pOwogCitzdGF0aWMgaW50IHNwaV9ub3JfcHJvYmUoc3RydWN0IHNwaV9tZW0gKnNwaW1lbSkKK3sKKwlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gc3BpbWVtLT5zcGk7CisJc3RydWN0IGZsYXNoX3BsYXRmb3JtX2RhdGEgKmRhdGEgPSBkZXZfZ2V0X3BsYXRkYXRhKCZzcGktPmRldik7CisJc3RydWN0IHNwaV9ub3IgKm5vcjsKKwkvKgorCSAqIEVuYWJsZSBhbGwgY2FwcyBieSBkZWZhdWx0LiBUaGUgY29yZSB3aWxsIG1hc2sgdGhlbSBhZnRlcgorCSAqIGNoZWNraW5nIHdoYXQncyByZWFsbHkgc3VwcG9ydGVkIHVzaW5nIHNwaV9tZW1fc3VwcG9ydHNfb3AoKS4KKwkgKi8KKwljb25zdCBzdHJ1Y3Qgc3BpX25vcl9od2NhcHMgaHdjYXBzID0geyAubWFzayA9IFNOT1JfSFdDQVBTX0FMTCB9OworCWNoYXIgKmZsYXNoX25hbWU7CisJaW50IHJldDsKKworCW5vciA9IGRldm1fa3phbGxvYygmc3BpLT5kZXYsIHNpemVvZigqbm9yKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFub3IpCisJCXJldHVybiAtRU5PTUVNOworCisJbm9yLT5zcGltZW0gPSBzcGltZW07CisJbm9yLT5kZXYgPSAmc3BpLT5kZXY7CisJc3BpX25vcl9zZXRfZmxhc2hfbm9kZShub3IsIHNwaS0+ZGV2Lm9mX25vZGUpOworCisJc3BpX21lbV9zZXRfZHJ2ZGF0YShzcGltZW0sIG5vcik7CisKKwlpZiAoZGF0YSAmJiBkYXRhLT5uYW1lKQorCQlub3ItPm10ZC5uYW1lID0gZGF0YS0+bmFtZTsKKworCWlmICghbm9yLT5tdGQubmFtZSkKKwkJbm9yLT5tdGQubmFtZSA9IHNwaV9tZW1fZ2V0X25hbWUoc3BpbWVtKTsKKworCS8qCisJICogRm9yIHNvbWUgKGhpc3RvcmljYWw/KSByZWFzb24gbWFueSBwbGF0Zm9ybXMgcHJvdmlkZSB0d28gZGlmZmVyZW50CisJICogbmFtZXMgaW4gZmxhc2hfcGxhdGZvcm1fZGF0YTogIm5hbWUiIGFuZCAidHlwZSIuIFF1aXRlIG9mdGVuIG5hbWUgaXMKKwkgKiBzZXQgdG8gIm0yNXA4MCIgYW5kIHRoZW4gInR5cGUiIHByb3ZpZGVzIGEgcmVhbCBjaGlwIG5hbWUuCisJICogSWYgdGhhdCdzIHRoZSBjYXNlLCByZXNwZWN0ICJ0eXBlIiBhbmQgaWdub3JlIGEgIm5hbWUiLgorCSAqLworCWlmIChkYXRhICYmIGRhdGEtPnR5cGUpCisJCWZsYXNoX25hbWUgPSBkYXRhLT50eXBlOworCWVsc2UgaWYgKCFzdHJjbXAoc3BpLT5tb2RhbGlhcywgInNwaS1ub3IiKSkKKwkJZmxhc2hfbmFtZSA9IE5VTEw7IC8qIGF1dG8tZGV0ZWN0ICovCisJZWxzZQorCQlmbGFzaF9uYW1lID0gc3BpLT5tb2RhbGlhczsKKworCXJldCA9IHNwaV9ub3Jfc2Nhbihub3IsIGZsYXNoX25hbWUsICZod2NhcHMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwkvKgorCSAqIE5vbmUgb2YgdGhlIGV4aXN0aW5nIHBhcnRzIGhhdmUgPiA1MTJCIHBhZ2VzLCBidXQgbGV0J3MgcGxheSBzYWZlCisJICogYW5kIGFkZCB0aGlzIGxvZ2ljIHNvIHRoYXQgaWYgYW55b25lIGV2ZXIgYWRkcyBzdXBwb3J0IGZvciBzdWNoCisJICogYSBOT1Igd2UgZG9uJ3QgZW5kIHVwIHdpdGggYnVmZmVyIG92ZXJmbG93cy4KKwkgKi8KKwlpZiAobm9yLT5wYWdlX3NpemUgPiBQQUdFX1NJWkUpIHsKKwkJbm9yLT5ib3VuY2VidWZfc2l6ZSA9IG5vci0+cGFnZV9zaXplOworCQlkZXZtX2tmcmVlKG5vci0+ZGV2LCBub3ItPmJvdW5jZWJ1Zik7CisJCW5vci0+Ym91bmNlYnVmID0gZGV2bV9rbWFsbG9jKG5vci0+ZGV2LAorCQkJCQkgICAgICBub3ItPmJvdW5jZWJ1Zl9zaXplLAorCQkJCQkgICAgICBHRlBfS0VSTkVMKTsKKwkJaWYgKCFub3ItPmJvdW5jZWJ1ZikKKwkJCXJldHVybiAtRU5PTUVNOworCX0KKworCXJldHVybiBtdGRfZGV2aWNlX3JlZ2lzdGVyKCZub3ItPm10ZCwgZGF0YSA/IGRhdGEtPnBhcnRzIDogTlVMTCwKKwkJCQkgICBkYXRhID8gZGF0YS0+bnJfcGFydHMgOiAwKTsKK30KKworc3RhdGljIGludCBzcGlfbm9yX3JlbW92ZShzdHJ1Y3Qgc3BpX21lbSAqc3BpbWVtKQoreworCXN0cnVjdCBzcGlfbm9yICpub3IgPSBzcGlfbWVtX2dldF9kcnZkYXRhKHNwaW1lbSk7CisKKwlzcGlfbm9yX3Jlc3RvcmUobm9yKTsKKworCS8qIENsZWFuIHVwIE1URCBzdHVmZi4gKi8KKwlyZXR1cm4gbXRkX2RldmljZV91bnJlZ2lzdGVyKCZub3ItPm10ZCk7Cit9CisKK3N0YXRpYyB2b2lkIHNwaV9ub3Jfc2h1dGRvd24oc3RydWN0IHNwaV9tZW0gKnNwaW1lbSkKK3sKKwlzdHJ1Y3Qgc3BpX25vciAqbm9yID0gc3BpX21lbV9nZXRfZHJ2ZGF0YShzcGltZW0pOworCisJc3BpX25vcl9yZXN0b3JlKG5vcik7Cit9CisKKy8qCisgKiBEbyBOT1QgYWRkIHRvIHRoaXMgYXJyYXkgd2l0aG91dCByZWFkaW5nIHRoZSBmb2xsb3dpbmc6CisgKgorICogSGlzdG9yaWNhbGx5LCBtYW55IGZsYXNoIGRldmljZXMgYXJlIGJvdW5kIHRvIHRoaXMgZHJpdmVyIGJ5IHRoZWlyIG5hbWUuIEJ1dAorICogc2luY2UgbW9zdCBvZiB0aGVzZSBmbGFzaCBhcmUgY29tcGF0aWJsZSB0byBzb21lIGV4dGVudCwgYW5kIHRoZWlyCisgKiBkaWZmZXJlbmNlcyBjYW4gb2Z0ZW4gYmUgZGlmZmVyZW50aWF0ZWQgYnkgdGhlIEpFREVDIHJlYWQtSUQgY29tbWFuZCwgd2UKKyAqIGVuY291cmFnZSBuZXcgdXNlcnMgdG8gYWRkIHN1cHBvcnQgdG8gdGhlIHNwaS1ub3IgbGlicmFyeSwgYW5kIHNpbXBseSBiaW5kCisgKiBhZ2FpbnN0IGEgZ2VuZXJpYyBzdHJpbmcgaGVyZSAoZS5nLiwgImplZGVjLHNwaS1ub3IiKS4KKyAqCisgKiBNYW55IGZsYXNoIG5hbWVzIGFyZSBrZXB0IGhlcmUgaW4gdGhpcyBsaXN0IChhcyB3ZWxsIGFzIGluIHNwaS1ub3IuYykgdG8KKyAqIGtlZXAgdGhlbSBhdmFpbGFibGUgYXMgbW9kdWxlIGFsaWFzZXMgZm9yIGV4aXN0aW5nIHBsYXRmb3Jtcy4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIHNwaV9ub3JfZGV2X2lkc1tdID0geworCS8qCisJICogQWxsb3cgbm9uLURUIHBsYXRmb3JtIGRldmljZXMgdG8gYmluZCB0byB0aGUgInNwaS1ub3IiIG1vZGFsaWFzLCBhbmQKKwkgKiBoYWNrIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHRoZSBTUEkgY29yZSBkb2VzIG5vdCBwcm92aWRlIHVldmVudAorCSAqIG1hdGNoaW5nIGZvciAub2ZfbWF0Y2hfdGFibGUKKwkgKi8KKwl7InNwaS1ub3IifSwKKworCS8qCisJICogRW50cmllcyBub3QgdXNlZCBpbiBEVHMgdGhhdCBzaG91bGQgYmUgc2FmZSB0byBkcm9wIGFmdGVyIHJlcGxhY2luZworCSAqIHRoZW0gd2l0aCAic3BpLW5vciIgaW4gcGxhdGZvcm0gZGF0YS4KKwkgKi8KKwl7InMyNXNsMDY0YSJ9LAl7IncyNXgxNiJ9LAl7Im0yNXAxMCJ9LAl7Im0yNXB4NjQifSwKKworCS8qCisJICogRW50cmllcyB0aGF0IHdlcmUgdXNlZCBpbiBEVHMgd2l0aG91dCAiamVkZWMsc3BpLW5vciIgZmFsbGJhY2sgYW5kCisJICogc2hvdWxkIGJlIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisJICovCisJeyJhdDI1ZGYzMjFhIn0sCXsiYXQyNWRmNjQxIn0sCXsiYXQyNmRmMDgxYSJ9LAorCXsibXgyNWw0MDA1YSJ9LAl7Im14MjVsMTYwNmUifSwJeyJteDI1bDY0MDVkIn0sCXsibXgyNWwxMjgwNWQifSwKKwl7Im14MjVsMjU2MzVlIn0seyJteDY2bDUxMjM1bCJ9LAorCXsibjI1cTA2NCJ9LAl7Im4yNXExMjhhMTEifSwJeyJuMjVxMTI4YTEzIn0sCXsibjI1cTUxMmEifSwKKwl7InMyNWZsMjU2czEifSwJeyJzMjVmbDUxMnMifSwJeyJzMjVzbDEyODAxIn0sCXsiczI1ZmwwMDhrIn0sCisJeyJzMjVmbDA2NGsifSwKKwl7InNzdDI1dmYwNDBiIn0seyJzc3QyNXZmMDE2YiJ9LHsic3N0MjV2ZjAzMmIifSx7InNzdDI1d2YwNDAifSwKKwl7Im0yNXA0MCJ9LAl7Im0yNXA4MCJ9LAl7Im0yNXAxNiJ9LAl7Im0yNXAzMiJ9LAorCXsibTI1cDY0In0sCXsibTI1cDEyOCJ9LAorCXsidzI1eDgwIn0sCXsidzI1eDMyIn0sCXsidzI1cTMyIn0sCXsidzI1cTMyZHcifSwKKwl7IncyNXE4MGJsIn0sCXsidzI1cTEyOCJ9LAl7IncyNXEyNTYifSwKKworCS8qIEZsYXNoZXMgdGhhdCBjYW4ndCBiZSBkZXRlY3RlZCB1c2luZyBKRURFQyAqLworCXsibTI1cDA1LW5vbmplZGVjIn0sCXsibTI1cDEwLW5vbmplZGVjIn0sCXsibTI1cDIwLW5vbmplZGVjIn0sCisJeyJtMjVwNDAtbm9uamVkZWMifSwJeyJtMjVwODAtbm9uamVkZWMifSwJeyJtMjVwMTYtbm9uamVkZWMifSwKKwl7Im0yNXAzMi1ub25qZWRlYyJ9LAl7Im0yNXA2NC1ub25qZWRlYyJ9LAl7Im0yNXAxMjgtbm9uamVkZWMifSwKKworCS8qIEV2ZXJzcGluIE1SQU1zIChub24tSkVERUMpICovCisJeyAibXIyNWgxMjgiIH0sIC8qIDEyOCBLaWIsIDQwIE1IeiAqLworCXsgIm1yMjVoMjU2IiB9LCAvKiAyNTYgS2liLCA0MCBNSHogKi8KKwl7ICJtcjI1aDEwIiB9LCAgLyogICAxIE1pYiwgNDAgTUh6ICovCisJeyAibXIyNWg0MCIgfSwgIC8qICAgNCBNaWIsIDQwIE1IeiAqLworCisJeyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCBzcGlfbm9yX2Rldl9pZHMpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzcGlfbm9yX29mX3RhYmxlW10gPSB7CisJLyoKKwkgKiBHZW5lcmljIGNvbXBhdGliaWxpdHkgZm9yIFNQSSBOT1IgdGhhdCBjYW4gYmUgaWRlbnRpZmllZCBieSB0aGUKKwkgKiBKRURFQyBSRUFEIElEIG9wY29kZSAoMHg5RikuIFVzZSB0aGlzLCBpZiBwb3NzaWJsZS4KKwkgKi8KKwl7IC5jb21wYXRpYmxlID0gImplZGVjLHNwaS1ub3IiIH0sCisJeyAvKiBzZW50aW5lbCAqLyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNwaV9ub3Jfb2ZfdGFibGUpOworCisvKgorICogUkVWSVNJVDogbWFueSBvZiB0aGVzZSBjaGlwcyBoYXZlIGRlZXAgcG93ZXItZG93biBtb2Rlcywgd2hpY2gKKyAqIHNob3VsZCBjbGVhcmx5IGJlIGVudGVyZWQgb24gc3VzcGVuZCgpIHRvIG1pbmltaXplIHBvd2VyIHVzZS4KKyAqIEFuZCBhbHNvIHdoZW4gdGhleSdyZSBvdGhlcndpc2UgaWRsZS4uLgorICovCitzdGF0aWMgc3RydWN0IHNwaV9tZW1fZHJpdmVyIHNwaV9ub3JfZHJpdmVyID0geworCS5zcGlkcnYgPSB7CisJCS5kcml2ZXIgPSB7CisJCQkubmFtZSA9ICJzcGktbm9yIiwKKwkJCS5vZl9tYXRjaF90YWJsZSA9IHNwaV9ub3Jfb2ZfdGFibGUsCisJCX0sCisJCS5pZF90YWJsZSA9IHNwaV9ub3JfZGV2X2lkcywKKwl9LAorCS5wcm9iZSA9IHNwaV9ub3JfcHJvYmUsCisJLnJlbW92ZSA9IHNwaV9ub3JfcmVtb3ZlLAorCS5zaHV0ZG93biA9IHNwaV9ub3Jfc2h1dGRvd24sCit9OworbW9kdWxlX3NwaV9tZW1fZHJpdmVyKHNwaV9ub3JfZHJpdmVyKTsKKwogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwogTU9EVUxFX0FVVEhPUigiSHVhbmcgU2hpamllIDxzaGlqaWU4QGdtYWlsLmNvbT4iKTsKIE1PRFVMRV9BVVRIT1IoIk1pa2UgTGF2ZW5kZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3ViaS9ibG9jay5jIGIvZHJpdmVycy9tdGQvdWJpL2Jsb2NrLmMKaW5kZXggNjAyNTM5OC4uZTFhMmFlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvdWJpL2Jsb2NrLmMKKysrIGIvZHJpdmVycy9tdGQvdWJpL2Jsb2NrLmMKQEAgLTM0NSwxNSArMzQ1LDM2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmxrX21xX29wcyB1YmlibG9ja19tcV9vcHMgPSB7CiAJLmluaXRfcmVxdWVzdAk9IHViaWJsb2NrX2luaXRfcmVxdWVzdCwKIH07CiAKK3N0YXRpYyBpbnQgY2FsY19kaXNrX2NhcGFjaXR5KHN0cnVjdCB1Ymlfdm9sdW1lX2luZm8gKnZpLCB1NjQgKmRpc2tfY2FwYWNpdHkpCit7CisJdTY0IHNpemUgPSB2aS0+dXNlZF9ieXRlcyA+PiA5OworCisJaWYgKHZpLT51c2VkX2J5dGVzICUgNTEyKSB7CisJCXByX3dhcm4oIlVCSTogYmxvY2s6IHZvbHVtZSBzaXplIGlzIG5vdCBhIG11bHRpcGxlIG9mIDUxMiwgIgorCQkJImxhc3QgJWxsdSBieXRlcyBhcmUgaWdub3JlZCFcbiIsCisJCQl2aS0+dXNlZF9ieXRlcyAtIChzaXplIDw8IDkpKTsKKwl9CisKKwlpZiAoKHNlY3Rvcl90KXNpemUgIT0gc2l6ZSkKKwkJcmV0dXJuIC1FRkJJRzsKKworCSpkaXNrX2NhcGFjaXR5ID0gc2l6ZTsKKworCXJldHVybiAwOworfQorCiBpbnQgdWJpYmxvY2tfY3JlYXRlKHN0cnVjdCB1Ymlfdm9sdW1lX2luZm8gKnZpKQogewogCXN0cnVjdCB1YmlibG9jayAqZGV2OwogCXN0cnVjdCBnZW5kaXNrICpnZDsKLQl1NjQgZGlza19jYXBhY2l0eSA9IHZpLT51c2VkX2J5dGVzID4+IDk7CisJdTY0IGRpc2tfY2FwYWNpdHk7CiAJaW50IHJldDsKIAotCWlmICgoc2VjdG9yX3QpZGlza19jYXBhY2l0eSAhPSBkaXNrX2NhcGFjaXR5KQotCQlyZXR1cm4gLUVGQklHOworCXJldCA9IGNhbGNfZGlza19jYXBhY2l0eSh2aSwgJmRpc2tfY2FwYWNpdHkpOworCWlmIChyZXQpIHsKKwkJcmV0dXJuIHJldDsKKwl9CisKIAkvKiBDaGVjayB0aGF0IHRoZSB2b2x1bWUgaXNuJ3QgYWxyZWFkeSBoYW5kbGVkICovCiAJbXV0ZXhfbG9jaygmZGV2aWNlc19tdXRleCk7CiAJaWYgKGZpbmRfZGV2X25vbG9jayh2aS0+dWJpX251bSwgdmktPnZvbF9pZCkpIHsKQEAgLTUwNyw3ICs1MjgsOCBAQCBpbnQgdWJpYmxvY2tfcmVtb3ZlKHN0cnVjdCB1Ymlfdm9sdW1lX2luZm8gKnZpKQogc3RhdGljIGludCB1YmlibG9ja19yZXNpemUoc3RydWN0IHViaV92b2x1bWVfaW5mbyAqdmkpCiB7CiAJc3RydWN0IHViaWJsb2NrICpkZXY7Ci0JdTY0IGRpc2tfY2FwYWNpdHkgPSB2aS0+dXNlZF9ieXRlcyA+PiA5OworCXU2NCBkaXNrX2NhcGFjaXR5OworCWludCByZXQ7CiAKIAkvKgogCSAqIE5lZWQgdG8gbG9jayB0aGUgZGV2aWNlIGxpc3QgdW50aWwgd2Ugc3RvcCB1c2luZyB0aGUgZGV2aWNlLApAQCAtNTIwLDExICs1NDIsMTYgQEAgc3RhdGljIGludCB1YmlibG9ja19yZXNpemUoc3RydWN0IHViaV92b2x1bWVfaW5mbyAqdmkpCiAJCW11dGV4X3VubG9jaygmZGV2aWNlc19tdXRleCk7CiAJCXJldHVybiAtRU5PREVWOwogCX0KLQlpZiAoKHNlY3Rvcl90KWRpc2tfY2FwYWNpdHkgIT0gZGlza19jYXBhY2l0eSkgeworCisJcmV0ID0gY2FsY19kaXNrX2NhcGFjaXR5KHZpLCAmZGlza19jYXBhY2l0eSk7CisJaWYgKHJldCkgewogCQltdXRleF91bmxvY2soJmRldmljZXNfbXV0ZXgpOwotCQlkZXZfd2FybihkaXNrX3RvX2RldihkZXYtPmdkKSwgInRoZSB2b2x1bWUgaXMgdG9vIGJpZyAoJWQgTEVCcyksIGNhbm5vdCByZXNpemUiLAotCQkJIHZpLT5zaXplKTsKLQkJcmV0dXJuIC1FRkJJRzsKKwkJaWYgKHJldCA9PSAtRUZCSUcpIHsKKwkJCWRldl93YXJuKGRpc2tfdG9fZGV2KGRldi0+Z2QpLAorCQkJCSAidGhlIHZvbHVtZSBpcyB0b28gYmlnICglZCBMRUJzKSwgY2Fubm90IHJlc2l6ZSIsCisJCQkJIHZpLT5zaXplKTsKKwkJfQorCQlyZXR1cm4gcmV0OwogCX0KIAogCW11dGV4X2xvY2soJmRldi0+ZGV2X211dGV4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3ViaS9mYXN0bWFwLXdsLmMgYi9kcml2ZXJzL210ZC91YmkvZmFzdG1hcC13bC5jCmluZGV4IGQ5ZTJlM2EuLmM0NGM4NDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3ViaS9mYXN0bWFwLXdsLmMKKysrIGIvZHJpdmVycy9tdGQvdWJpL2Zhc3RtYXAtd2wuYwpAQCAtMTk2LDcgKzE5Niw3IEBAIHN0YXRpYyBpbnQgcHJvZHVjZV9mcmVlX3BlYihzdHJ1Y3QgdWJpX2RldmljZSAqdWJpKQogICovCiBpbnQgdWJpX3dsX2dldF9wZWIoc3RydWN0IHViaV9kZXZpY2UgKnViaSkKIHsKLQlpbnQgcmV0LCByZXRyaWVkID0gMDsKKwlpbnQgcmV0LCBhdHRlbXB0cyA9IDA7CiAJc3RydWN0IHViaV9mbV9wb29sICpwb29sID0gJnViaS0+Zm1fcG9vbDsKIAlzdHJ1Y3QgdWJpX2ZtX3Bvb2wgKndsX3Bvb2wgPSAmdWJpLT5mbV93bF9wb29sOwogCkBAIC0yMjEsMTIgKzIyMSwxMiBAQCBpbnQgdWJpX3dsX2dldF9wZWIoc3RydWN0IHViaV9kZXZpY2UgKnViaSkKIAogCWlmIChwb29sLT51c2VkID09IHBvb2wtPnNpemUpIHsKIAkJc3Bpbl91bmxvY2soJnViaS0+d2xfbG9jayk7Ci0JCWlmIChyZXRyaWVkKSB7CisJCWF0dGVtcHRzKys7CisJCWlmIChhdHRlbXB0cyA9PSAxMCkgewogCQkJdWJpX2Vycih1YmksICJVbmFibGUgdG8gZ2V0IGEgZnJlZSBQRUIgZnJvbSB1c2VyIFdMIHBvb2wiKTsKIAkJCXJldCA9IC1FTk9TUEM7CiAJCQlnb3RvIG91dDsKIAkJfQotCQlyZXRyaWVkID0gMTsKIAkJdXBfcmVhZCgmdWJpLT5mbV9lYmFfc2VtKTsKIAkJcmV0ID0gcHJvZHVjZV9mcmVlX3BlYih1YmkpOwogCQlpZiAocmV0IDwgMCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvdWJpL3dsLmMgYi9kcml2ZXJzL210ZC91Ymkvd2wuYwppbmRleCA5NDk3MDBhLi4zZmNkZWZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC91Ymkvd2wuYworKysgYi9kcml2ZXJzL210ZC91Ymkvd2wuYwpAQCAtNzEwLDYgKzcxMCwxMiBAQCBzdGF0aWMgaW50IHdlYXJfbGV2ZWxpbmdfd29ya2VyKHN0cnVjdCB1YmlfZGV2aWNlICp1YmksIHN0cnVjdCB1Ymlfd29yayAqd3JrLAogCQlpZiAoIWUyKQogCQkJZ290byBvdXRfY2FuY2VsOwogCisJCS8qCisJCSAqIEFuY2hvciBtb3ZlIHdpdGhpbiB0aGUgYW5jaG9yIGFyZWEgaXMgdXNlbGVzcy4KKwkJICovCisJCWlmIChlMi0+cG51bSA8IFVCSV9GTV9NQVhfU1RBUlQpCisJCQlnb3RvIG91dF9jYW5jZWw7CisKIAkJc2VsZl9jaGVja19pbl93bF90cmVlKHViaSwgZTEsICZ1YmktPnVzZWQpOwogCQlyYl9lcmFzZSgmZTEtPnUucmIsICZ1YmktPnVzZWQpOwogCQlkYmdfd2woImFuY2hvci1tb3ZlIFBFQiAlZCB0byBQRUIgJWQiLCBlMS0+cG51bSwgZTItPnBudW0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvaHdfYXRsL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvaHdfYXRsL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDVmYTI4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2h3X2F0bC9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAotIyBrYnVpbGQgcmVxdWlyZXMgTWFrZWZpbGUgaW4gYSBkaXJlY3RvcnkgdG8gYnVpbGQgaW5kaXZpZHVhbCBvYmplY3RzCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9lMTAwMGUvZTEwMDAuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2UxMDAwZS9lMTAwMC5oCmluZGV4IDM0Y2Q2NzkuLjZjNTFiMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2UxMDAwZS9lMTAwMC5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2UxMDAwZS9lMTAwMC5oCkBAIC0xMyw3ICsxMyw2IEBACiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgPGxpbnV4L2NyYzMyLmg+CiAjaW5jbHVkZSA8bGludXgvaWZfdmxhbi5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWVjb3VudGVyLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9qbWUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ptZS5jCmluZGV4IDZkNTJjZjUuLjI1YWE0MDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ptZS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ptZS5jCkBAIC0xNCw3ICsxNCw2IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLWFzcG0uaD4KICNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9ldGhlcmRldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2V0aHRvb2wuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hY2NlbC9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hY2NlbC9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc4NTEyZS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWNjZWwvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotc3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjKS8uLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RpYWcvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGlhZy9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc4NTEyZS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGlhZy9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci1zdWJkaXItY2NmbGFncy15ICs9IC1JJChzcmMpLy4uCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3ODUxMmUuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLXN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyYykvLi4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veHNrL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZWU0Mjk5Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1zdWJkaXItY2NmbGFncy15ICs9IC1JJChzcmMpLy4uLy4uCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3ODUxMmUuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLXN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyYykvLi4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZwZ2EvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3ODUxMmUuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZwZ2EvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotc3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjKS8uLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzg1MTJlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci1zdWJkaXItY2NmbGFncy15ICs9IC1JJChzcmMpLy4uCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc4NTEyZS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLXN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyYykvLi4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9ybC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3JsLmMKaW5kZXggYmM4NmRmZi4uMDFjMzgwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3JsLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3JsLmMKQEAgLTE4OCw4ICsxODgsNyBAQCBpbnQgbWx4NV9ybF9hZGRfcmF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgKmluZGV4LAogCQkvKiBuZXcgcmF0ZSBsaW1pdCAqLwogCQllcnIgPSBtbHg1X3NldF9wcF9yYXRlX2xpbWl0X2NtZChkZXYsIGVudHJ5LT5pbmRleCwgcmwpOwogCQlpZiAoZXJyKSB7Ci0JCQltbHg1X2NvcmVfZXJyKGRldiwgIkZhaWxlZCBjb25maWd1cmluZyByYXRlIGxpbWl0KGVyciAlZCk6IFwKLQkJCQkgICAgICByYXRlICV1LCBtYXhfYnVyc3Rfc3ogJXUsIHR5cGljYWxfcGt0X3N6ICV1XG4iLAorCQkJbWx4NV9jb3JlX2VycihkZXYsICJGYWlsZWQgY29uZmlndXJpbmcgcmF0ZSBsaW1pdChlcnIgJWQpOiByYXRlICV1LCBtYXhfYnVyc3Rfc3ogJXUsIHR5cGljYWxfcGt0X3N6ICV1XG4iLAogCQkJCSAgICAgIGVyciwgcmwtPnJhdGUsIHJsLT5tYXhfYnVyc3Rfc3osCiAJCQkJICAgICAgcmwtPnR5cGljYWxfcGt0X3N6KTsKIAkJCWdvdG8gb3V0OwpAQCAtMjE4LDggKzIxNyw3IEBAIHZvaWQgbWx4NV9ybF9yZW1vdmVfcmF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9yYXRlX2xpbWl0ICpybCkKIAltdXRleF9sb2NrKCZ0YWJsZS0+cmxfbG9jayk7CiAJZW50cnkgPSBmaW5kX3JsX2VudHJ5KHRhYmxlLCBybCk7CiAJaWYgKCFlbnRyeSB8fCAhZW50cnktPnJlZmNvdW50KSB7Ci0JCW1seDVfY29yZV93YXJuKGRldiwgIlJhdGUgJXUsIG1heF9idXJzdF9zeiAldSB0eXBpY2FsX3BrdF9zeiAldSBcCi0JCQkgICAgICAgYXJlIG5vdCBjb25maWd1cmVkXG4iLAorCQltbHg1X2NvcmVfd2FybihkZXYsICJSYXRlICV1LCBtYXhfYnVyc3Rfc3ogJXUgdHlwaWNhbF9wa3Rfc3ogJXUgYXJlIG5vdCBjb25maWd1cmVkXG4iLAogCQkJICAgICAgIHJsLT5yYXRlLCBybC0+bWF4X2J1cnN0X3N6LCBybC0+dHlwaWNhbF9wa3Rfc3opOwogCQlnb3RvIG91dDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2JwZi9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvYnBmL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDVmYTI4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvYnBmL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0jIGtidWlsZCByZXF1aXJlcyBNYWtlZmlsZSBpbiBhIGRpcmVjdG9yeSB0byBidWlsZCBpbmRpdmlkdWFsIG9iamVjdHMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwNWZhMjguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLSMga2J1aWxkIHJlcXVpcmVzIE1ha2VmaWxlIGluIGEgZGlyZWN0b3J5IHRvIGJ1aWxkIGluZGl2aWR1YWwgb2JqZWN0cwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBjb3JlL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBjb3JlL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDVmYTI4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwY29yZS9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAotIyBrYnVpbGQgcmVxdWlyZXMgTWFrZWZpbGUgaW4gYSBkaXJlY3RvcnkgdG8gYnVpbGQgaW5kaXZpZHVhbCBvYmplY3RzCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcGNvcmUvbmZwNjAwMC9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwY29yZS9uZnA2MDAwL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDVmYTI4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwY29yZS9uZnA2MDAwL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0jIGtidWlsZCByZXF1aXJlcyBNYWtlZmlsZSBpbiBhIGRpcmVjdG9yeSB0byBidWlsZCBpbmRpdmlkdWFsIG9iamVjdHMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmljL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uaWMvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwNWZhMjguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uaWMvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLSMga2J1aWxkIHJlcXVpcmVzIE1ha2VmaWxlIGluIGEgZGlyZWN0b3J5IHRvIGJ1aWxkIGluZGl2aWR1YWwgb2JqZWN0cwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfcmRtYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfcmRtYS5jCmluZGV4IDE1OGFjMDcuLjM4YjFmNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX3JkbWEuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9yZG1hLmMKQEAgLTc5OCw5ICs3OTgsOCBAQCBzdGF0aWMgaW50IHFlZF9yZG1hX2FkZF91c2VyKHZvaWQgKnJkbWFfY3h0LAogCS8qIENhbGN1bGF0ZSB0aGUgY29ycmVzcG9uZGluZyBEUEkgYWRkcmVzcyAqLwogCWRwaV9zdGFydF9vZmZzZXQgPSBwX2h3Zm4tPmRwaV9zdGFydF9vZmZzZXQ7CiAKLQlvdXRfcGFyYW1zLT5kcGlfYWRkciA9ICh1NjQpKCh1OCBfX2lvbWVtICopcF9od2ZuLT5kb29yYmVsbHMgKwotCQkJCSAgICAgZHBpX3N0YXJ0X29mZnNldCArCi0JCQkJICAgICAoKG91dF9wYXJhbXMtPmRwaSkgKiBwX2h3Zm4tPmRwaV9zaXplKSk7CisJb3V0X3BhcmFtcy0+ZHBpX2FkZHIgPSBwX2h3Zm4tPmRvb3JiZWxscyArIGRwaV9zdGFydF9vZmZzZXQgKworCQkJICAgICAgIG91dF9wYXJhbXMtPmRwaSAqIHBfaHdmbi0+ZHBpX3NpemU7CiAKIAlvdXRfcGFyYW1zLT5kcGlfcGh5c19hZGRyID0gcF9od2ZuLT5kYl9waHlzX2FkZHIgKwogCQkJCSAgICBkcGlfc3RhcnRfb2Zmc2V0ICsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMKaW5kZXggMGVmMDFkYi4uNzRmODFmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9wcmVmZXRjaC5oPgotI2luY2x1ZGUgPGxpbnV4L3BjaS1hc3BtLmg+CiAjaW5jbHVkZSA8bGludXgvaXB2Ni5oPgogI2luY2x1ZGUgPG5ldC9pcDZfY2hlY2tzdW0uaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ltYXgvaTI0MDBtL3R4LmMgYi9kcml2ZXJzL25ldC93aW1heC9pMjQwMG0vdHguYwppbmRleCBlYmQ2NGUwLi4xMjU1MzAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aW1heC9pMjQwMG0vdHguYworKysgYi9kcml2ZXJzL25ldC93aW1heC9pMjQwMG0vdHguYwpAQCAtNjU0LDggKzY1NCw3IEBAIHZvaWQgaTI0MDBtX3R4X2Nsb3NlKHN0cnVjdCBpMjQwMG0gKmkyNDAwbSkKIAlwYWRkaW5nID0gYWxpZ25lZF9zaXplIC0gdHhfbXNnX21vdmVkLT5zaXplOwogCWlmIChwYWRkaW5nID4gMCkgewogCQlwYWRfYnVmID0gaTI0MDBtX3R4X2ZpZm9fcHVzaChpMjQwMG0sIHBhZGRpbmcsIDAsIDApOwotCQlpZiAodW5saWtlbHkoV0FSTl9PTihwYWRfYnVmID09IE5VTEwKLQkJCQkgICAgIHx8IHBhZF9idWYgPT0gVEFJTF9GVUxMKSkpIHsKKwkJaWYgKFdBUk5fT04ocGFkX2J1ZiA9PSBOVUxMIHx8IHBhZF9idWYgPT0gVEFJTF9GVUxMKSkgewogCQkJLyogVGhpcyBzaG91bGQgbm90IGhhcHBlbiAtLSBhcHBlbmQgc2hvdWxkIHZlcmlmeQogCQkJICogdGhlcmUgaXMgYWx3YXlzIHNwYWNlIGxlZnQgYXQgbGVhc3QgdG8gYXBwZW5kCiAJCQkgKiB0eF9ibG9ja19zaXplICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvcGNpLmMKaW5kZXggYzYxNTZjYy4uZDVlZTMyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL3BjaS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9wY2kuYwpAQCAtMTgsNyArMTgsNiBAQAogCiAjaW5jbHVkZSA8bGludXgvbmw4MDIxMS5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgotI2luY2x1ZGUgPGxpbnV4L3BjaS1hc3BtLmg+CiAjaW5jbHVkZSA8bGludXgvZXRoZXJkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlICIuLi9hdGguaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUtbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LW1hYy5jCmluZGV4IGI4MmRhNzUuLjRmYmNjN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUtbWFjLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS1tYWMuYwpAQCAtMTgsNyArMTgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS80OTY1LW1hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS1tYWMuYwppbmRleCBmYTJjMDI4Li5mZmI3MDViIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS80OTY1LW1hYy5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUtbWFjLmMKQEAgLTE4LDcgKzE4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLWFzcG0uaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL3RyYW5zLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvdHJhbnMuYwppbmRleCA1YWI4N2E4Li5mOGExZjk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvdHJhbnMuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvdHJhbnMuYwpAQCAtNjIsNyArNjIsNiBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udGIvaHcvYW1kL250Yl9od19hbWQuYyBiL2RyaXZlcnMvbnRiL2h3L2FtZC9udGJfaHdfYW1kLmMKaW5kZXggMjg1OWNjOS4uMTU2YzJhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9udGIvaHcvYW1kL250Yl9od19hbWQuYworKysgYi9kcml2ZXJzL250Yi9ody9hbWQvbnRiX2h3X2FtZC5jCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBpbnQgbmRldl9td190b19iYXIoc3RydWN0IGFtZF9udGJfZGV2ICpuZGV2LCBpbnQgaWR4KQogCWlmIChpZHggPCAwIHx8IGlkeCA+IG5kZXYtPm13X2NvdW50KQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXJldHVybiAxIDw8IGlkeDsKKwlyZXR1cm4gbmRldi0+ZGV2X2RhdGEtPm13X2lkeCA8PCBpZHg7CiB9CiAKIHN0YXRpYyBpbnQgYW1kX250Yl9td19jb3VudChzdHJ1Y3QgbnRiX2RldiAqbnRiLCBpbnQgcGlkeCkKQEAgLTkwOSw3ICs5MDksNyBAQCBzdGF0aWMgaW50IGFtZF9pbml0X250YihzdHJ1Y3QgYW1kX250Yl9kZXYgKm5kZXYpCiB7CiAJdm9pZCBfX2lvbWVtICptbWlvID0gbmRldi0+c2VsZl9tbWlvOwogCi0JbmRldi0+bXdfY291bnQgPSBBTURfTVdfQ05UOworCW5kZXYtPm13X2NvdW50ID0gbmRldi0+ZGV2X2RhdGEtPm13X2NvdW50OwogCW5kZXYtPnNwYWRfY291bnQgPSBBTURfU1BBRFNfQ05UOwogCW5kZXYtPmRiX2NvdW50ID0gQU1EX0RCX0NOVDsKIApAQCAtMTA2OSw2ICsxMDY5LDggQEAgc3RhdGljIGludCBhbWRfbnRiX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJZ290byBlcnJfbmRldjsKIAl9CiAKKwluZGV2LT5kZXZfZGF0YSA9IChzdHJ1Y3QgbnRiX2Rldl9kYXRhICopaWQtPmRyaXZlcl9kYXRhOworCiAJbmRldl9pbml0X3N0cnVjdChuZGV2LCBwZGV2KTsKIAogCXJjID0gYW1kX250Yl9pbml0X3BjaShuZGV2LCBwZGV2KTsKQEAgLTExMjMsOSArMTEyNSwyMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBhbWRfbnRiX2RlYnVnZnNfaW5mbyA9IHsKIAkucmVhZCA9IG5kZXZfZGVidWdmc19yZWFkLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBudGJfZGV2X2RhdGEgZGV2X2RhdGFbXSA9IHsKKwl7IC8qIGZvciBkZXZpY2UgMTQ1YiAqLworCQkubXdfY291bnQgPSAzLAorCQkubXdfaWR4ID0gMSwKKwl9LAorCXsgLyogZm9yIGRldmljZSAxNDhiICovCisJCS5td19jb3VudCA9IDIsCisJCS5td19pZHggPSAyLAorCX0sCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYW1kX250Yl9wY2lfdGJsW10gPSB7Ci0Je1BDSV9WREVWSUNFKEFNRCwgUENJX0RFVklDRV9JRF9BTURfTlRCKX0sCi0JezB9CisJeyBQQ0lfVkRFVklDRShBTUQsIDB4MTQ1YiksIChrZXJuZWxfdWxvbmdfdCkmZGV2X2RhdGFbMF0gfSwKKwl7IFBDSV9WREVWSUNFKEFNRCwgMHgxNDhiKSwgKGtlcm5lbF91bG9uZ190KSZkZXZfZGF0YVsxXSB9LAorCXsgMCwgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBhbWRfbnRiX3BjaV90YmwpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL250Yi9ody9hbWQvbnRiX2h3X2FtZC5oIGIvZHJpdmVycy9udGIvaHcvYW1kL250Yl9od19hbWQuaAppbmRleCA4ZjM2MTdhLi4xMzlhMzA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL250Yi9ody9hbWQvbnRiX2h3X2FtZC5oCisrKyBiL2RyaXZlcnMvbnRiL2h3L2FtZC9udGJfaHdfYW1kLmgKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlIDxsaW51eC9udGIuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KIAotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FNRF9OVEIJMHgxNDVCCiAjZGVmaW5lIEFNRF9MSU5LX0hCX1RJTUVPVVQJbXNlY3NfdG9famlmZmllcygxMDAwKQogI2RlZmluZSBBTURfTElOS19TVEFUVVNfT0ZGU0VUCTB4NjgKICNkZWZpbmUgTlRCX0xJTl9TVEFfQUNUSVZFX0JJVAkweDAwMDAwMDAyCkBAIC05Myw3ICs5Miw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfd3JpdGU2NCh1NjQgdmFsLCB2b2lkIF9faW9tZW0gKm1taW8pCiAKIGVudW0gewogCS8qIEFNRCBOVEIgQ2FwYWJpbGl0eSAqLwotCUFNRF9NV19DTlQJCT0gMywKIAlBTURfREJfQ05UCQk9IDE2LAogCUFNRF9NU0lYX1ZFQ1RPUl9DTlQJPSAyNCwKIAlBTURfU1BBRFNfQ05UCQk9IDE2LApAQCAtMTcwLDYgKzE2OCwxMSBAQCBlbnVtIHsKIAlBTURfUEVFUl9PRkZTRVQJCT0gMHg0MDAsCiB9OwogCitzdHJ1Y3QgbnRiX2Rldl9kYXRhIHsKKwljb25zdCB1bnNpZ25lZCBjaGFyIG13X2NvdW50OworCWNvbnN0IHVuc2lnbmVkIGludCBtd19pZHg7Cit9OworCiBzdHJ1Y3QgYW1kX250Yl9kZXY7CiAKIHN0cnVjdCBhbWRfbnRiX3ZlYyB7CkBAIC0xODUsNiArMTg4LDcgQEAgc3RydWN0IGFtZF9udGJfZGV2IHsKIAl1MzIgY250bF9zdGE7CiAJdTMyIHBlZXJfc3RhOwogCisJc3RydWN0IG50Yl9kZXZfZGF0YSAqZGV2X2RhdGE7CiAJdW5zaWduZWQgY2hhciBtd19jb3VudDsKIAl1bnNpZ25lZCBjaGFyIHNwYWRfY291bnQ7CiAJdW5zaWduZWQgY2hhciBkYl9jb3VudDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnRiL2h3L2lkdC9LY29uZmlnIGIvZHJpdmVycy9udGIvaHcvaWR0L0tjb25maWcKaW5kZXggYmZjN2NhYy4uYzc5YjU0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9udGIvaHcvaWR0L0tjb25maWcKKysrIGIvZHJpdmVycy9udGIvaHcvaWR0L0tjb25maWcKQEAgLTQsMTEgKzQsMTEgQEAKIAlkZXBlbmRzIG9uIFBDSQogCXNlbGVjdCBIV01PTgogCWhlbHAKLQkgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTlRCIG9mIGNhcHBhYmxlIElEVCBQQ0llLXN3aXRjaGVzLgorCSBUaGlzIGRyaXZlciBzdXBwb3J0cyBOVEIgb2YgY2FwYWJsZSBJRFQgUENJZS1zd2l0Y2hlcy4KIAogCSBTb21lIG9mIHRoZSBwcmUtaW5pdGlhbGl6YXRpb25zIG11c3QgYmUgbWFkZSBiZWZvcmUgSURUIFBDSWUtc3dpdGNoCi0JIGV4cG9zZXMgaXQgTlQtZnVuY3Rpb25zIGNvcnJlY3RseS4gSXQgc2hvdWxkIGJlIGRvbmUgYnkgZWl0aGVyIHByb3BlcgotCSBpbml0aWFsaXNhdGlvbiBvZiBFRVBST00gY29ubmVjdGVkIHRvIG1hc3RlciBzbWJ1cyBvZiB0aGUgc3dpdGNoIG9yCisJIGV4cG9zZXMgaXRzIE5ULWZ1bmN0aW9ucyBjb3JyZWN0bHkuIEl0IHNob3VsZCBiZSBkb25lIGJ5IGVpdGhlciBwcm9wZXIKKwkgaW5pdGlhbGl6YXRpb24gb2YgRUVQUk9NIGNvbm5lY3RlZCB0byBtYXN0ZXIgU01idXMgb2YgdGhlIHN3aXRjaCBvcgogCSBieSBCSU9TIHVzaW5nIHNsYXZlLVNNQnVzIGludGVyZmFjZSBjaGFuZ2luZyBjb3JyZXNwb25kaW5nIHJlZ2lzdGVycwogCSB2YWx1ZS4gRXZpZGVudGx5IGl0IG11c3QgYmUgZG9uZSBiZWZvcmUgUENJIGJ1cyBlbnVtZXJhdGlvbiBpcwogCSBmaW5pc2hlZCBpbiBMaW51eCBrZXJuZWwuCmRpZmYgLS1naXQgYS9kcml2ZXJzL250Yi9ody9tc2NjL250Yl9od19zd2l0Y2h0ZWMuYyBiL2RyaXZlcnMvbnRiL2h3L21zY2MvbnRiX2h3X3N3aXRjaHRlYy5jCmluZGV4IGY0OTU5NDUuLjg2ZmZhNzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbnRiL2h3L21zY2MvbnRiX2h3X3N3aXRjaHRlYy5jCisrKyBiL2RyaXZlcnMvbnRiL2h3L21zY2MvbnRiX2h3X3N3aXRjaHRlYy5jCkBAIC0zMDYsNyArMzA2LDcgQEAgc3RhdGljIGludCBzd2l0Y2h0ZWNfbnRiX213X3NldF90cmFucyhzdHJ1Y3QgbnRiX2RldiAqbnRiLCBpbnQgcGlkeCwgaW50IHdpZHgsCiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CiAKLQlpZiAoYWRkciA9PSAwIHx8IHNpemUgPT0gMCkgeworCWlmIChzaXplID09IDApIHsKIAkJaWYgKHdpZHggPCBucl9kaXJlY3RfbXcpCiAJCQlzd2l0Y2h0ZWNfbnRiX213X2Nscl9kaXJlY3Qoc25kZXYsIHdpZHgpOwogCQllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL250Yi9udGJfdHJhbnNwb3J0LmMgYi9kcml2ZXJzL250Yi9udGJfdHJhbnNwb3J0LmMKaW5kZXggNDBjOTBjYS4uMDBhNWQ1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9udGIvbnRiX3RyYW5zcG9ydC5jCisrKyBiL2RyaXZlcnMvbnRiL250Yl90cmFuc3BvcnQuYwpAQCAtMjkyLDcgKzI5Miw3IEBAIHN0YXRpYyBpbnQgbnRiX3RyYW5zcG9ydF9idXNfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LAogc3RhdGljIGludCBudGJfdHJhbnNwb3J0X2J1c19wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJY29uc3Qgc3RydWN0IG50Yl90cmFuc3BvcnRfY2xpZW50ICpjbGllbnQ7Ci0JaW50IHJjID0gLUVJTlZBTDsKKwlpbnQgcmM7CiAKIAlnZXRfZGV2aWNlKGRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnRiL3Rlc3QvbnRiX3BlcmYuYyBiL2RyaXZlcnMvbnRiL3Rlc3QvbnRiX3BlcmYuYwppbmRleCBkMDI4MzMxLi5lOWI3YzJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL250Yi90ZXN0L250Yl9wZXJmLmMKKysrIGIvZHJpdmVycy9udGIvdGVzdC9udGJfcGVyZi5jCkBAIC0xMzc4LDcgKzEzNzgsNyBAQCBzdGF0aWMgaW50IHBlcmZfc2V0dXBfcGVlcl9tdyhzdHJ1Y3QgcGVyZl9wZWVyICpwZWVyKQogCWludCByZXQ7CiAKIAkvKiBHZXQgb3V0Ym91bmQgTVcgcGFyYW1ldGVycyBhbmQgbWFwIGl0ICovCi0JcmV0ID0gbnRiX3BlZXJfbXdfZ2V0X2FkZHIocGVyZi0+bnRiLCBwZWVyLT5naWR4LCAmcGh5c19hZGRyLAorCXJldCA9IG50Yl9wZWVyX213X2dldF9hZGRyKHBlcmYtPm50YiwgcGVyZi0+Z2lkeCwgJnBoeXNfYWRkciwKIAkJCQkgICAmcGVlci0+b3V0YnVmX3NpemUpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL252ZGltbS9LY29uZmlnIGIvZHJpdmVycy9udmRpbW0vS2NvbmZpZwppbmRleCBhNWZkZTE1Li4zNmFmN2FmIDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9LY29uZmlnCisrKyBiL2RyaXZlcnMvbnZkaW1tL0tjb25maWcKQEAgLTExOCw0ICsxMTgsMTYgQEAKIAlkZXBlbmRzIG9uIEVOQ1JZUFRFRF9LRVlTCiAJZGVwZW5kcyBvbiAoTElCTlZESU1NPUVOQ1JZUFRFRF9LRVlTKSB8fCBMSUJOVkRJTU09bQogCitjb25maWcgTlZESU1NX1RFU1RfQlVJTEQKKwl0cmlzdGF0ZSAiQnVpbGQgdGhlIHVuaXQgdGVzdCBjb3JlIgorCWRlcGVuZHMgb24gbQorCWRlcGVuZHMgb24gQ09NUElMRV9URVNUICYmIFg4Nl82NAorCWRlZmF1bHQgbSBpZiBDT01QSUxFX1RFU1QKKwloZWxwCisJICBCdWlsZCB0aGUgY29yZSBvZiB0aGUgdW5pdCB0ZXN0IGluZnJhc3RydWN0dXJlLiBUaGUgcmVzdWx0IG9mCisJICB0aGlzIGJ1aWxkIGlzIG5vbi1mdW5jdGlvbmFsIGZvciB1bml0IHRlc3QgZXhlY3V0aW9uLCBidXQgaXQKKwkgIG90aGVyd2lzZSBoZWxwcyBjYXRjaCBidWlsZCBlcnJvcnMgaW5kdWNlZCBieSBjaGFuZ2VzIHRvIHRoZQorCSAgY29yZSBkZXZtX21lbXJlbWFwX3BhZ2VzKCkgaW1wbGVtZW50YXRpb24gYW5kIG90aGVyCisJICBpbmZyYXN0cnVjdHVyZS4KKwogZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1tL01ha2VmaWxlIGIvZHJpdmVycy9udmRpbW0vTWFrZWZpbGUKaW5kZXggY2VmZTIzMy4uMjkyMDNmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9udmRpbW0vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9udmRpbW0vTWFrZWZpbGUKQEAgLTI5LDMgKzI5LDcgQEAKIGxpYm52ZGltbS0kKENPTkZJR19OVkRJTU1fUEZOKSArPSBwZm5fZGV2cy5vCiBsaWJudmRpbW0tJChDT05GSUdfTlZESU1NX0RBWCkgKz0gZGF4X2RldnMubwogbGlibnZkaW1tLSQoQ09ORklHX05WRElNTV9LRVlTKSArPSBzZWN1cml0eS5vCisKK1RPT0xTIDo9IC4uLy4uL3Rvb2xzCitURVNUX1NSQyA6PSAkKFRPT0xTKS90ZXN0aW5nL252ZGltbS90ZXN0CitvYmotJChDT05GSUdfTlZESU1NX1RFU1RfQlVJTEQpICs9ICQoVEVTVF9TUkMpL2lvbWFwLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1tL2J1cy5jIGIvZHJpdmVycy9udmRpbW0vYnVzLmMKaW5kZXggNzk4YzVjNC4uNzVhNThhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9udmRpbW0vYnVzLmMKKysrIGIvZHJpdmVycy9udmRpbW0vYnVzLmMKQEAgLTk1LDEwICs5NSw5IEBAIHN0YXRpYyBpbnQgbnZkaW1tX2J1c19wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmMgPSBuZF9kcnYtPnByb2JlKGRldik7CiAJZGVidWdfbnZkaW1tX3VubG9jayhkZXYpOwogCi0JaWYgKHJjID09IDApCi0JCW5kX3JlZ2lvbl9wcm9iZV9zdWNjZXNzKG52ZGltbV9idXMsIGRldik7Ci0JZWxzZQotCQluZF9yZWdpb25fZGlzYWJsZShudmRpbW1fYnVzLCBkZXYpOworCWlmICgocmMgPT0gMCB8fCByYyA9PSAtRU9QTk9UU1VQUCkgJiYKKwkJCWRldi0+cGFyZW50ICYmIGlzX25kX3JlZ2lvbihkZXYtPnBhcmVudCkpCisJCW5kX3JlZ2lvbl9hZHZhbmNlX3NlZWRzKHRvX25kX3JlZ2lvbihkZXYtPnBhcmVudCksIGRldik7CiAJbnZkaW1tX2J1c19wcm9iZV9lbmQobnZkaW1tX2J1cyk7CiAKIAlkZXZfZGJnKCZudmRpbW1fYnVzLT5kZXYsICJFTkQ6ICVzLnByb2JlKCVzKSA9ICVkXG4iLCBkZXYtPmRyaXZlci0+bmFtZSwKQEAgLTEyMSw3ICsxMjAsNiBAQCBzdGF0aWMgaW50IG52ZGltbV9idXNfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKIAkJcmMgPSBuZF9kcnYtPnJlbW92ZShkZXYpOwogCQlkZWJ1Z19udmRpbW1fdW5sb2NrKGRldik7CiAJfQotCW5kX3JlZ2lvbl9kaXNhYmxlKG52ZGltbV9idXMsIGRldik7CiAKIAlkZXZfZGJnKCZudmRpbW1fYnVzLT5kZXYsICIlcy5yZW1vdmUoJXMpID0gJWRcbiIsIGRldi0+ZHJpdmVyLT5uYW1lLAogCQkJZGV2X25hbWUoZGV2KSwgcmMpOwpAQCAtNDAwLDcgKzM5OCw3IEBAIHN0YXRpYyBpbnQgY2hpbGRfdW5yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCiAKIAkJLyogV2UgYXJlIHNodXR0aW5nIGRvd24uIE1ha2Ugc3RhdGUgZnJvemVuIGFydGlmaWNpYWxseS4gKi8KIAkJbnZkaW1tX2J1c19sb2NrKGRldik7Ci0JCW52ZGltbS0+c2VjLnN0YXRlID0gTlZESU1NX1NFQ1VSSVRZX0ZST1pFTjsKKwkJc2V0X2JpdChOVkRJTU1fU0VDVVJJVFlfRlJPWkVOLCAmbnZkaW1tLT5zZWMuZmxhZ3MpOwogCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5ERF9XT1JLX1BFTkRJTkcsICZudmRpbW0tPmZsYWdzKSkKIAkJCWRldl9wdXQgPSB0cnVlOwogCQludmRpbW1fYnVzX3VubG9jayhkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udmRpbW0vZGltbV9kZXZzLmMgYi9kcml2ZXJzL252ZGltbS9kaW1tX2RldnMuYwppbmRleCAyOWEwNjVlLi4xOTZhYTQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9kaW1tX2RldnMuYworKysgYi9kcml2ZXJzL252ZGltbS9kaW1tX2RldnMuYwpAQCAtMzcyLDEwNiArMzcyLDI2IEBAIF9fd2VhayBzc2l6ZV90IHNlY3VyaXR5X3Nob3coc3RydWN0IGRldmljZSAqZGV2LAogewogCXN0cnVjdCBudmRpbW0gKm52ZGltbSA9IHRvX252ZGltbShkZXYpOwogCi0Jc3dpdGNoIChudmRpbW0tPnNlYy5zdGF0ZSkgewotCWNhc2UgTlZESU1NX1NFQ1VSSVRZX0RJU0FCTEVEOgorCWlmICh0ZXN0X2JpdChOVkRJTU1fU0VDVVJJVFlfRElTQUJMRUQsICZudmRpbW0tPnNlYy5mbGFncykpCiAJCXJldHVybiBzcHJpbnRmKGJ1ZiwgImRpc2FibGVkXG4iKTsKLQljYXNlIE5WRElNTV9TRUNVUklUWV9VTkxPQ0tFRDoKKwlpZiAodGVzdF9iaXQoTlZESU1NX1NFQ1VSSVRZX1VOTE9DS0VELCAmbnZkaW1tLT5zZWMuZmxhZ3MpKQogCQlyZXR1cm4gc3ByaW50ZihidWYsICJ1bmxvY2tlZFxuIik7Ci0JY2FzZSBOVkRJTU1fU0VDVVJJVFlfTE9DS0VEOgorCWlmICh0ZXN0X2JpdChOVkRJTU1fU0VDVVJJVFlfTE9DS0VELCAmbnZkaW1tLT5zZWMuZmxhZ3MpKQogCQlyZXR1cm4gc3ByaW50ZihidWYsICJsb2NrZWRcbiIpOwotCWNhc2UgTlZESU1NX1NFQ1VSSVRZX0ZST1pFTjoKLQkJcmV0dXJuIHNwcmludGYoYnVmLCAiZnJvemVuXG4iKTsKLQljYXNlIE5WRElNTV9TRUNVUklUWV9PVkVSV1JJVEU6CisJaWYgKHRlc3RfYml0KE5WRElNTV9TRUNVUklUWV9PVkVSV1JJVEUsICZudmRpbW0tPnNlYy5mbGFncykpCiAJCXJldHVybiBzcHJpbnRmKGJ1ZiwgIm92ZXJ3cml0ZVxuIik7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FTk9UVFk7Ci0JfQotCiAJcmV0dXJuIC1FTk9UVFk7CiB9CiAKLSNkZWZpbmUgT1BTCQkJCQkJCVwKLQlDKCBPUF9GUkVFWkUsCQkiZnJlZXplIiwJCTEpLAlcCi0JQyggT1BfRElTQUJMRSwJCSJkaXNhYmxlIiwJCTIpLAlcCi0JQyggT1BfVVBEQVRFLAkJInVwZGF0ZSIsCQkzKSwJXAotCUMoIE9QX0VSQVNFLAkJImVyYXNlIiwJCTIpLAlcCi0JQyggT1BfT1ZFUldSSVRFLAkib3ZlcndyaXRlIiwJCTIpLAlcCi0JQyggT1BfTUFTVEVSX1VQREFURSwJIm1hc3Rlcl91cGRhdGUiLAkzKSwJXAotCUMoIE9QX01BU1RFUl9FUkFTRSwJIm1hc3Rlcl9lcmFzZSIsCQkyKQotI3VuZGVmIEMKLSNkZWZpbmUgQyhhLCBiLCBjKSBhCi1lbnVtIG52ZGltbXNlY19vcF9pZHMgeyBPUFMgfTsKLSN1bmRlZiBDCi0jZGVmaW5lIEMoYSwgYiwgYykgeyBiLCBjIH0KLXN0YXRpYyBzdHJ1Y3QgewotCWNvbnN0IGNoYXIgKm5hbWU7Ci0JaW50IGFyZ3M7Ci19IG9wc1tdID0geyBPUFMgfTsKLSN1bmRlZiBDCi0KLSNkZWZpbmUgU0VDX0NNRF9TSVpFIDMyCi0jZGVmaW5lIEtFWV9JRF9TSVpFIDEwCi0KLXN0YXRpYyBzc2l6ZV90IF9fc2VjdXJpdHlfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCitzdGF0aWMgc3NpemVfdCBmcm96ZW5fc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7CiAJc3RydWN0IG52ZGltbSAqbnZkaW1tID0gdG9fbnZkaW1tKGRldik7Ci0Jc3NpemVfdCByYzsKLQljaGFyIGNtZFtTRUNfQ01EX1NJWkUrMV0sIGtleXN0cltLRVlfSURfU0laRSsxXSwKLQkJbmtleXN0cltLRVlfSURfU0laRSsxXTsKLQl1bnNpZ25lZCBpbnQga2V5LCBuZXdrZXk7Ci0JaW50IGk7CiAKLQlpZiAoYXRvbWljX3JlYWQoJm52ZGltbS0+YnVzeSkpCi0JCXJldHVybiAtRUJVU1k7Ci0KLQlyYyA9IHNzY2FuZihidWYsICIlIl9fc3RyaW5naWZ5KFNFQ19DTURfU0laRSkicyIKLQkJCSIgJSJfX3N0cmluZ2lmeShLRVlfSURfU0laRSkicyIKLQkJCSIgJSJfX3N0cmluZ2lmeShLRVlfSURfU0laRSkicyIsCi0JCQljbWQsIGtleXN0ciwgbmtleXN0cik7Ci0JaWYgKHJjIDwgMSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUob3BzKTsgaSsrKQotCQlpZiAoc3lzZnNfc3RyZXEoY21kLCBvcHNbaV0ubmFtZSkpCi0JCQlicmVhazsKLQlpZiAoaSA+PSBBUlJBWV9TSVpFKG9wcykpCi0JCXJldHVybiAtRUlOVkFMOwotCWlmIChvcHNbaV0uYXJncyA+IDEpCi0JCXJjID0ga3N0cnRvdWludChrZXlzdHIsIDAsICZrZXkpOwotCWlmIChyYyA+PSAwICYmIG9wc1tpXS5hcmdzID4gMikKLQkJcmMgPSBrc3RydG91aW50KG5rZXlzdHIsIDAsICZuZXdrZXkpOwotCWlmIChyYyA8IDApCi0JCXJldHVybiByYzsKLQotCWlmIChpID09IE9QX0ZSRUVaRSkgewotCQlkZXZfZGJnKGRldiwgImZyZWV6ZVxuIik7Ci0JCXJjID0gbnZkaW1tX3NlY3VyaXR5X2ZyZWV6ZShudmRpbW0pOwotCX0gZWxzZSBpZiAoaSA9PSBPUF9ESVNBQkxFKSB7Ci0JCWRldl9kYmcoZGV2LCAiZGlzYWJsZSAldVxuIiwga2V5KTsKLQkJcmMgPSBudmRpbW1fc2VjdXJpdHlfZGlzYWJsZShudmRpbW0sIGtleSk7Ci0JfSBlbHNlIGlmIChpID09IE9QX1VQREFURSkgewotCQlkZXZfZGJnKGRldiwgInVwZGF0ZSAldSAldVxuIiwga2V5LCBuZXdrZXkpOwotCQlyYyA9IG52ZGltbV9zZWN1cml0eV91cGRhdGUobnZkaW1tLCBrZXksIG5ld2tleSwgTlZESU1NX1VTRVIpOwotCX0gZWxzZSBpZiAoaSA9PSBPUF9FUkFTRSkgewotCQlkZXZfZGJnKGRldiwgImVyYXNlICV1XG4iLCBrZXkpOwotCQlyYyA9IG52ZGltbV9zZWN1cml0eV9lcmFzZShudmRpbW0sIGtleSwgTlZESU1NX1VTRVIpOwotCX0gZWxzZSBpZiAoaSA9PSBPUF9PVkVSV1JJVEUpIHsKLQkJZGV2X2RiZyhkZXYsICJvdmVyd3JpdGUgJXVcbiIsIGtleSk7Ci0JCXJjID0gbnZkaW1tX3NlY3VyaXR5X292ZXJ3cml0ZShudmRpbW0sIGtleSk7Ci0JfSBlbHNlIGlmIChpID09IE9QX01BU1RFUl9VUERBVEUpIHsKLQkJZGV2X2RiZyhkZXYsICJtYXN0ZXJfdXBkYXRlICV1ICV1XG4iLCBrZXksIG5ld2tleSk7Ci0JCXJjID0gbnZkaW1tX3NlY3VyaXR5X3VwZGF0ZShudmRpbW0sIGtleSwgbmV3a2V5LAotCQkJCU5WRElNTV9NQVNURVIpOwotCX0gZWxzZSBpZiAoaSA9PSBPUF9NQVNURVJfRVJBU0UpIHsKLQkJZGV2X2RiZyhkZXYsICJtYXN0ZXJfZXJhc2UgJXVcbiIsIGtleSk7Ci0JCXJjID0gbnZkaW1tX3NlY3VyaXR5X2VyYXNlKG52ZGltbSwga2V5LAotCQkJCU5WRElNTV9NQVNURVIpOwotCX0gZWxzZQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmIChyYyA9PSAwKQotCQlyYyA9IGxlbjsKLQlyZXR1cm4gcmM7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIHRlc3RfYml0KE5WRElNTV9TRUNVUklUWV9GUk9aRU4sCisJCQkJJm52ZGltbS0+c2VjLmZsYWdzKSk7CiB9CitzdGF0aWMgREVWSUNFX0FUVFJfUk8oZnJvemVuKTsKIAogc3RhdGljIHNzaXplX3Qgc2VjdXJpdHlfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQpAQCAtNDg3LDcgKzQwNyw3IEBAIHN0YXRpYyBzc2l6ZV90IHNlY3VyaXR5X3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAluZF9kZXZpY2VfbG9jayhkZXYpOwogCW52ZGltbV9idXNfbG9jayhkZXYpOwogCXdhaXRfbnZkaW1tX2J1c19wcm9iZV9pZGxlKGRldik7Ci0JcmMgPSBfX3NlY3VyaXR5X3N0b3JlKGRldiwgYnVmLCBsZW4pOworCXJjID0gbnZkaW1tX3NlY3VyaXR5X3N0b3JlKGRldiwgYnVmLCBsZW4pOwogCW52ZGltbV9idXNfdW5sb2NrKGRldik7CiAJbmRfZGV2aWNlX3VubG9jayhkZXYpOwogCkBAIC01MDEsNiArNDIxLDcgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKm52ZGltbV9hdHRyaWJ1dGVzW10gPSB7CiAJJmRldl9hdHRyX2NvbW1hbmRzLmF0dHIsCiAJJmRldl9hdHRyX2F2YWlsYWJsZV9zbG90cy5hdHRyLAogCSZkZXZfYXR0cl9zZWN1cml0eS5hdHRyLAorCSZkZXZfYXR0cl9mcm96ZW4uYXR0ciwKIAlOVUxMLAogfTsKIApAQCAtNTA5LDE3ICs0MzAsMjQgQEAgc3RhdGljIHVtb2RlX3QgbnZkaW1tX3Zpc2libGUoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBhdHRyaWJ1dGUgKmEsIGludCBuKQogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihrb2JqLCB0eXBlb2YoKmRldiksIGtvYmopOwogCXN0cnVjdCBudmRpbW0gKm52ZGltbSA9IHRvX252ZGltbShkZXYpOwogCi0JaWYgKGEgIT0gJmRldl9hdHRyX3NlY3VyaXR5LmF0dHIpCisJaWYgKGEgIT0gJmRldl9hdHRyX3NlY3VyaXR5LmF0dHIgJiYgYSAhPSAmZGV2X2F0dHJfZnJvemVuLmF0dHIpCiAJCXJldHVybiBhLT5tb2RlOwotCWlmIChudmRpbW0tPnNlYy5zdGF0ZSA8IDApCisJaWYgKCFudmRpbW0tPnNlYy5mbGFncykKIAkJcmV0dXJuIDA7Ci0JLyogQXJlIHRoZXJlIGFueSBzdGF0ZSBtdXRhdGlvbiBvcHM/ICovCi0JaWYgKG52ZGltbS0+c2VjLm9wcy0+ZnJlZXplIHx8IG52ZGltbS0+c2VjLm9wcy0+ZGlzYWJsZQotCQkJfHwgbnZkaW1tLT5zZWMub3BzLT5jaGFuZ2Vfa2V5Ci0JCQl8fCBudmRpbW0tPnNlYy5vcHMtPmVyYXNlCi0JCQl8fCBudmRpbW0tPnNlYy5vcHMtPm92ZXJ3cml0ZSkKKworCWlmIChhID09ICZkZXZfYXR0cl9zZWN1cml0eS5hdHRyKSB7CisJCS8qIEFyZSB0aGVyZSBhbnkgc3RhdGUgbXV0YXRpb24gb3BzIChtYWtlIHdyaXRhYmxlKT8gKi8KKwkJaWYgKG52ZGltbS0+c2VjLm9wcy0+ZnJlZXplIHx8IG52ZGltbS0+c2VjLm9wcy0+ZGlzYWJsZQorCQkJCXx8IG52ZGltbS0+c2VjLm9wcy0+Y2hhbmdlX2tleQorCQkJCXx8IG52ZGltbS0+c2VjLm9wcy0+ZXJhc2UKKwkJCQl8fCBudmRpbW0tPnNlYy5vcHMtPm92ZXJ3cml0ZSkKKwkJCXJldHVybiBhLT5tb2RlOworCQlyZXR1cm4gMDQ0NDsKKwl9CisKKwlpZiAobnZkaW1tLT5zZWMub3BzLT5mcmVlemUpCiAJCXJldHVybiBhLT5tb2RlOwotCXJldHVybiAwNDQ0OworCXJldHVybiAwOwogfQogCiBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIG52ZGltbV9hdHRyaWJ1dGVfZ3JvdXAgPSB7CkBAIC01NjksOCArNDk3LDggQEAgc3RydWN0IG52ZGltbSAqX19udmRpbW1fY3JlYXRlKHN0cnVjdCBudmRpbW1fYnVzICpudmRpbW1fYnVzLAogCSAqIGF0dHJpYnV0ZSB2aXNpYmlsaXR5LgogCSAqLwogCS8qIGdldCBzZWN1cml0eSBzdGF0ZSBhbmQgZXh0ZW5kZWQgKG1hc3Rlcikgc3RhdGUgKi8KLQludmRpbW0tPnNlYy5zdGF0ZSA9IG52ZGltbV9zZWN1cml0eV9zdGF0ZShudmRpbW0sIE5WRElNTV9VU0VSKTsKLQludmRpbW0tPnNlYy5leHRfc3RhdGUgPSBudmRpbW1fc2VjdXJpdHlfc3RhdGUobnZkaW1tLCBOVkRJTU1fTUFTVEVSKTsKKwludmRpbW0tPnNlYy5mbGFncyA9IG52ZGltbV9zZWN1cml0eV9mbGFncyhudmRpbW0sIE5WRElNTV9VU0VSKTsKKwludmRpbW0tPnNlYy5leHRfZmxhZ3MgPSBudmRpbW1fc2VjdXJpdHlfZmxhZ3MobnZkaW1tLCBOVkRJTU1fTUFTVEVSKTsKIAluZF9kZXZpY2VfcmVnaXN0ZXIoZGV2KTsKIAogCXJldHVybiBudmRpbW07CkBAIC01ODgsNyArNTE2LDcgQEAgaW50IG52ZGltbV9zZWN1cml0eV9zZXR1cF9ldmVudHMoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBudmRpbW0gKm52ZGltbSA9IHRvX252ZGltbShkZXYpOwogCi0JaWYgKG52ZGltbS0+c2VjLnN0YXRlIDwgMCB8fCAhbnZkaW1tLT5zZWMub3BzCisJaWYgKCFudmRpbW0tPnNlYy5mbGFncyB8fCAhbnZkaW1tLT5zZWMub3BzCiAJCQl8fCAhbnZkaW1tLT5zZWMub3BzLT5vdmVyd3JpdGUpCiAJCXJldHVybiAwOwogCW52ZGltbS0+c2VjLm92ZXJ3cml0ZV9zdGF0ZSA9IHN5c2ZzX2dldF9kaXJlbnQoZGV2LT5rb2JqLnNkLCAic2VjdXJpdHkiKTsKQEAgLTYxNCw3ICs1NDIsNyBAQCBpbnQgbnZkaW1tX3NlY3VyaXR5X2ZyZWV6ZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0pCiAJaWYgKCFudmRpbW0tPnNlYy5vcHMgfHwgIW52ZGltbS0+c2VjLm9wcy0+ZnJlZXplKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKLQlpZiAobnZkaW1tLT5zZWMuc3RhdGUgPCAwKQorCWlmICghbnZkaW1tLT5zZWMuZmxhZ3MpCiAJCXJldHVybiAtRUlPOwogCiAJaWYgKHRlc3RfYml0KE5ERF9TRUNVUklUWV9PVkVSV1JJVEUsICZudmRpbW0tPmZsYWdzKSkgewpAQCAtNjIzLDcgKzU1MSw3IEBAIGludCBudmRpbW1fc2VjdXJpdHlfZnJlZXplKHN0cnVjdCBudmRpbW0gKm52ZGltbSkKIAl9CiAKIAlyYyA9IG52ZGltbS0+c2VjLm9wcy0+ZnJlZXplKG52ZGltbSk7Ci0JbnZkaW1tLT5zZWMuc3RhdGUgPSBudmRpbW1fc2VjdXJpdHlfc3RhdGUobnZkaW1tLCBOVkRJTU1fVVNFUik7CisJbnZkaW1tLT5zZWMuZmxhZ3MgPSBudmRpbW1fc2VjdXJpdHlfZmxhZ3MobnZkaW1tLCBOVkRJTU1fVVNFUik7CiAKIAlyZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL252ZGltbS9sYWJlbC5jIGIvZHJpdmVycy9udmRpbW0vbGFiZWwuYwppbmRleCA3M2UxOTdiLi40N2E0ODI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9sYWJlbC5jCisrKyBiL2RyaXZlcnMvbnZkaW1tL2xhYmVsLmMKQEAgLTM1MywxMSArMzUzLDYgQEAgc3RhdGljIGJvb2wgc2xvdF92YWxpZChzdHJ1Y3QgbnZkaW1tX2RydmRhdGEgKm5kZCwKIAlpZiAoc2xvdCAhPSBfX2xlMzJfdG9fY3B1KG5kX2xhYmVsLT5zbG90KSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JLyogY2hlY2sgdGhhdCBEUEEgYWxsb2NhdGlvbnMgYXJlIHBhZ2UgYWxpZ25lZCAqLwotCWlmICgoX19sZTY0X3RvX2NwdShuZF9sYWJlbC0+ZHBhKQotCQkJCXwgX19sZTY0X3RvX2NwdShuZF9sYWJlbC0+cmF3c2l6ZSkpICUgU1pfNEspCi0JCXJldHVybiBmYWxzZTsKLQogCS8qIGNoZWNrIGNoZWNrc3VtICovCiAJaWYgKG5hbWVzcGFjZV9sYWJlbF9oYXMobmRkLCBjaGVja3N1bSkpIHsKIAkJdTY0IHN1bSwgc3VtX3NhdmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL252ZGltbS9uYW1lc3BhY2VfZGV2cy5jIGIvZHJpdmVycy9udmRpbW0vbmFtZXNwYWNlX2RldnMuYwppbmRleCBhMTZlNTIyLi40MzQwMTMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9uYW1lc3BhY2VfZGV2cy5jCisrKyBiL2RyaXZlcnMvbnZkaW1tL25hbWVzcGFjZV9kZXZzLmMKQEAgLTEwMDYsMTAgKzEwMDYsMTAgQEAgc3RhdGljIHNzaXplX3QgX19zaXplX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBsb25nIHZhbCkKIAkJcmV0dXJuIC1FTlhJTzsKIAl9CiAKLQlkaXZfdTY0X3JlbSh2YWwsIFNaXzRLICogbmRfcmVnaW9uLT5uZHJfbWFwcGluZ3MsICZyZW1haW5kZXIpOworCWRpdl91NjRfcmVtKHZhbCwgUEFHRV9TSVpFICogbmRfcmVnaW9uLT5uZHJfbWFwcGluZ3MsICZyZW1haW5kZXIpOwogCWlmIChyZW1haW5kZXIpIHsKLQkJZGV2X2RiZyhkZXYsICIlbGx1IGlzIG5vdCAlZEsgYWxpZ25lZFxuIiwgdmFsLAotCQkJCShTWl80SyAqIG5kX3JlZ2lvbi0+bmRyX21hcHBpbmdzKSAvIFNaXzFLKTsKKwkJZGV2X2RiZyhkZXYsICIlbGx1IGlzIG5vdCAlbGRLIGFsaWduZWRcbiIsIHZhbCwKKwkJCQkoUEFHRV9TSVpFICogbmRfcmVnaW9uLT5uZHJfbWFwcGluZ3MpIC8gU1pfMUspOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTI0NjIsNiArMjQ2MiwyNyBAQCBzdGF0aWMgc3RydWN0IGRldmljZSAqKmNyZWF0ZV9uYW1lc3BhY2VzKHN0cnVjdCBuZF9yZWdpb24gKm5kX3JlZ2lvbikKIAlyZXR1cm4gZGV2czsKIH0KIAorc3RhdGljIHZvaWQgZGVhY3RpdmF0ZV9sYWJlbHModm9pZCAqcmVnaW9uKQoreworCXN0cnVjdCBuZF9yZWdpb24gKm5kX3JlZ2lvbiA9IHJlZ2lvbjsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBuZF9yZWdpb24tPm5kcl9tYXBwaW5nczsgaSsrKSB7CisJCXN0cnVjdCBuZF9tYXBwaW5nICpuZF9tYXBwaW5nID0gJm5kX3JlZ2lvbi0+bWFwcGluZ1tpXTsKKwkJc3RydWN0IG52ZGltbV9kcnZkYXRhICpuZGQgPSBuZF9tYXBwaW5nLT5uZGQ7CisJCXN0cnVjdCBudmRpbW0gKm52ZGltbSA9IG5kX21hcHBpbmctPm52ZGltbTsKKworCQltdXRleF9sb2NrKCZuZF9tYXBwaW5nLT5sb2NrKTsKKwkJbmRfbWFwcGluZ19mcmVlX2xhYmVscyhuZF9tYXBwaW5nKTsKKwkJbXV0ZXhfdW5sb2NrKCZuZF9tYXBwaW5nLT5sb2NrKTsKKworCQlwdXRfbmRkKG5kZCk7CisJCW5kX21hcHBpbmctPm5kZCA9IE5VTEw7CisJCWlmIChuZGQpCisJCQlhdG9taWNfZGVjKCZudmRpbW0tPmJ1c3kpOworCX0KK30KKwogc3RhdGljIGludCBpbml0X2FjdGl2ZV9sYWJlbHMoc3RydWN0IG5kX3JlZ2lvbiAqbmRfcmVnaW9uKQogewogCWludCBpOwpAQCAtMjUxOSwxNiArMjU0MCwxNyBAQCBzdGF0aWMgaW50IGluaXRfYWN0aXZlX2xhYmVscyhzdHJ1Y3QgbmRfcmVnaW9uICpuZF9yZWdpb24pCiAJCQltdXRleF91bmxvY2soJm5kX21hcHBpbmctPmxvY2spOwogCQl9CiAKLQkJaWYgKGogPj0gY291bnQpCi0JCQljb250aW51ZTsKKwkJaWYgKGogPCBjb3VudCkKKwkJCWJyZWFrOworCX0KIAotCQltdXRleF9sb2NrKCZuZF9tYXBwaW5nLT5sb2NrKTsKLQkJbmRfbWFwcGluZ19mcmVlX2xhYmVscyhuZF9tYXBwaW5nKTsKLQkJbXV0ZXhfdW5sb2NrKCZuZF9tYXBwaW5nLT5sb2NrKTsKKwlpZiAoaSA8IG5kX3JlZ2lvbi0+bmRyX21hcHBpbmdzKSB7CisJCWRlYWN0aXZhdGVfbGFiZWxzKG5kX3JlZ2lvbik7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAotCXJldHVybiAwOworCXJldHVybiBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoJm5kX3JlZ2lvbi0+ZGV2LCBkZWFjdGl2YXRlX2xhYmVscywKKwkJCW5kX3JlZ2lvbik7CiB9CiAKIGludCBuZF9yZWdpb25fcmVnaXN0ZXJfbmFtZXNwYWNlcyhzdHJ1Y3QgbmRfcmVnaW9uICpuZF9yZWdpb24sIGludCAqZXJyKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udmRpbW0vbmQtY29yZS5oIGIvZHJpdmVycy9udmRpbW0vbmQtY29yZS5oCmluZGV4IDBhYzUyYjYuLjI1ZmExMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbnZkaW1tL25kLWNvcmUuaAorKysgYi9kcml2ZXJzL252ZGltbS9uZC1jb3JlLmgKQEAgLTM5LDUzICszOSw0MCBAQCBzdHJ1Y3QgbnZkaW1tIHsKIAljb25zdCBjaGFyICpkaW1tX2lkOwogCXN0cnVjdCB7CiAJCWNvbnN0IHN0cnVjdCBudmRpbW1fc2VjdXJpdHlfb3BzICpvcHM7Ci0JCWVudW0gbnZkaW1tX3NlY3VyaXR5X3N0YXRlIHN0YXRlOwotCQllbnVtIG52ZGltbV9zZWN1cml0eV9zdGF0ZSBleHRfc3RhdGU7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJCXVuc2lnbmVkIGxvbmcgZXh0X2ZsYWdzOwogCQl1bnNpZ25lZCBpbnQgb3ZlcndyaXRlX3RtbzsKIAkJc3RydWN0IGtlcm5mc19ub2RlICpvdmVyd3JpdGVfc3RhdGU7CiAJfSBzZWM7CiAJc3RydWN0IGRlbGF5ZWRfd29yayBkd29yazsKIH07CiAKLXN0YXRpYyBpbmxpbmUgZW51bSBudmRpbW1fc2VjdXJpdHlfc3RhdGUgbnZkaW1tX3NlY3VyaXR5X3N0YXRlKAorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIG52ZGltbV9zZWN1cml0eV9mbGFncygKIAkJc3RydWN0IG52ZGltbSAqbnZkaW1tLCBlbnVtIG52ZGltbV9wYXNzcGhyYXNlX3R5cGUgcHR5cGUpCiB7Ci0JaWYgKCFudmRpbW0tPnNlYy5vcHMpCi0JCXJldHVybiAtRU5YSU87CisJdTY0IGZsYWdzOworCWNvbnN0IHU2NCBzdGF0ZV9mbGFncyA9IDFVTCA8PCBOVkRJTU1fU0VDVVJJVFlfRElTQUJMRUQKKwkJfCAxVUwgPDwgTlZESU1NX1NFQ1VSSVRZX0xPQ0tFRAorCQl8IDFVTCA8PCBOVkRJTU1fU0VDVVJJVFlfVU5MT0NLRUQKKwkJfCAxVUwgPDwgTlZESU1NX1NFQ1VSSVRZX09WRVJXUklURTsKIAotCXJldHVybiBudmRpbW0tPnNlYy5vcHMtPnN0YXRlKG52ZGltbSwgcHR5cGUpOworCWlmICghbnZkaW1tLT5zZWMub3BzKQorCQlyZXR1cm4gMDsKKworCWZsYWdzID0gbnZkaW1tLT5zZWMub3BzLT5nZXRfZmxhZ3MobnZkaW1tLCBwdHlwZSk7CisJLyogZGlzYWJsZWQsIGxvY2tlZCwgdW5sb2NrZWQsIGFuZCBvdmVyd3JpdGUgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSAqLworCWRldl9XQVJOX09OQ0UoJm52ZGltbS0+ZGV2LCBod2VpZ2h0NjQoZmxhZ3MgJiBzdGF0ZV9mbGFncykgPiAxLAorCQkJInJlcG9ydGVkIGludmFsaWQgc2VjdXJpdHkgc3RhdGU6ICUjbGx4XG4iLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgZmxhZ3MpOworCXJldHVybiBmbGFnczsKIH0KIGludCBudmRpbW1fc2VjdXJpdHlfZnJlZXplKHN0cnVjdCBudmRpbW0gKm52ZGltbSk7CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfTlZESU1NX0tFWVMpCi1pbnQgbnZkaW1tX3NlY3VyaXR5X2Rpc2FibGUoc3RydWN0IG52ZGltbSAqbnZkaW1tLCB1bnNpZ25lZCBpbnQga2V5aWQpOwotaW50IG52ZGltbV9zZWN1cml0eV91cGRhdGUoc3RydWN0IG52ZGltbSAqbnZkaW1tLCB1bnNpZ25lZCBpbnQga2V5aWQsCi0JCXVuc2lnbmVkIGludCBuZXdfa2V5aWQsCi0JCWVudW0gbnZkaW1tX3Bhc3NwaHJhc2VfdHlwZSBwYXNzX3R5cGUpOwotaW50IG52ZGltbV9zZWN1cml0eV9lcmFzZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sIHVuc2lnbmVkIGludCBrZXlpZCwKLQkJZW51bSBudmRpbW1fcGFzc3BocmFzZV90eXBlIHBhc3NfdHlwZSk7Ci1pbnQgbnZkaW1tX3NlY3VyaXR5X292ZXJ3cml0ZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sIHVuc2lnbmVkIGludCBrZXlpZCk7Citzc2l6ZV90IG52ZGltbV9zZWN1cml0eV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbik7CiB2b2lkIG52ZGltbV9zZWN1cml0eV9vdmVyd3JpdGVfcXVlcnkoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKICNlbHNlCi1zdGF0aWMgaW5saW5lIGludCBudmRpbW1fc2VjdXJpdHlfZGlzYWJsZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sCi0JCXVuc2lnbmVkIGludCBrZXlpZCkKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci1zdGF0aWMgaW5saW5lIGludCBudmRpbW1fc2VjdXJpdHlfdXBkYXRlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwKLQkJdW5zaWduZWQgaW50IGtleWlkLAotCQl1bnNpZ25lZCBpbnQgbmV3X2tleWlkLAotCQllbnVtIG52ZGltbV9wYXNzcGhyYXNlX3R5cGUgcGFzc190eXBlKQotewotCXJldHVybiAtRU9QTk9UU1VQUDsKLX0KLXN0YXRpYyBpbmxpbmUgaW50IG52ZGltbV9zZWN1cml0eV9lcmFzZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sCi0JCXVuc2lnbmVkIGludCBrZXlpZCwKLQkJZW51bSBudmRpbW1fcGFzc3BocmFzZV90eXBlIHBhc3NfdHlwZSkKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci1zdGF0aWMgaW5saW5lIGludCBudmRpbW1fc2VjdXJpdHlfb3ZlcndyaXRlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwKLQkJdW5zaWduZWQgaW50IGtleWlkKQorc3RhdGljIGlubGluZSBzc2l6ZV90IG52ZGltbV9zZWN1cml0eV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKIHsKIAlyZXR1cm4gLUVPUE5PVFNVUFA7CiB9CkBAIC0xMjgsMTMgKzExNSwxMiBAQCBpbnQgX19pbml0IG52ZGltbV9idXNfaW5pdCh2b2lkKTsKIHZvaWQgbnZkaW1tX2J1c19leGl0KHZvaWQpOwogdm9pZCBudmRpbW1fZGV2c19leGl0KHZvaWQpOwogdm9pZCBuZF9yZWdpb25fZGV2c19leGl0KHZvaWQpOwotdm9pZCBuZF9yZWdpb25fcHJvYmVfc3VjY2VzcyhzdHJ1Y3QgbnZkaW1tX2J1cyAqbnZkaW1tX2J1cywgc3RydWN0IGRldmljZSAqZGV2KTsKIHN0cnVjdCBuZF9yZWdpb247Cit2b2lkIG5kX3JlZ2lvbl9hZHZhbmNlX3NlZWRzKHN0cnVjdCBuZF9yZWdpb24gKm5kX3JlZ2lvbiwgc3RydWN0IGRldmljZSAqZGV2KTsKIHZvaWQgbmRfcmVnaW9uX2NyZWF0ZV9uc19zZWVkKHN0cnVjdCBuZF9yZWdpb24gKm5kX3JlZ2lvbik7CiB2b2lkIG5kX3JlZ2lvbl9jcmVhdGVfYnR0X3NlZWQoc3RydWN0IG5kX3JlZ2lvbiAqbmRfcmVnaW9uKTsKIHZvaWQgbmRfcmVnaW9uX2NyZWF0ZV9wZm5fc2VlZChzdHJ1Y3QgbmRfcmVnaW9uICpuZF9yZWdpb24pOwogdm9pZCBuZF9yZWdpb25fY3JlYXRlX2RheF9zZWVkKHN0cnVjdCBuZF9yZWdpb24gKm5kX3JlZ2lvbik7Ci12b2lkIG5kX3JlZ2lvbl9kaXNhYmxlKHN0cnVjdCBudmRpbW1fYnVzICpudmRpbW1fYnVzLCBzdHJ1Y3QgZGV2aWNlICpkZXYpOwogaW50IG52ZGltbV9idXNfY3JlYXRlX25kY3RsKHN0cnVjdCBudmRpbW1fYnVzICpudmRpbW1fYnVzKTsKIHZvaWQgbnZkaW1tX2J1c19kZXN0cm95X25kY3RsKHN0cnVjdCBudmRpbW1fYnVzICpudmRpbW1fYnVzKTsKIHZvaWQgbmRfc3luY2hyb25pemUodm9pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL252ZGltbS9uZC5oIGIvZHJpdmVycy9udmRpbW0vbmQuaAppbmRleCAxYjk5NTU2Li5lODlhZjRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9uZC5oCisrKyBiL2RyaXZlcnMvbnZkaW1tL25kLmgKQEAgLTM3NSw2ICszNzUsMTAgQEAgdW5zaWduZWQgaW50IHBtZW1fc2VjdG9yX3NpemUoc3RydWN0IG5kX25hbWVzcGFjZV9jb21tb24gKm5kbnMpOwogdm9pZCBudmRpbW1fYmFkYmxvY2tzX3BvcHVsYXRlKHN0cnVjdCBuZF9yZWdpb24gKm5kX3JlZ2lvbiwKIAkJc3RydWN0IGJhZGJsb2NrcyAqYmIsIGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKICNpZiBJU19FTkFCTEVEKENPTkZJR19ORF9DTEFJTSkKKworLyogbWF4IHN0cnVjdCBwYWdlIHNpemUgaW5kZXBlbmRlbnQgb2Yga2VybmVsIGNvbmZpZyAqLworI2RlZmluZSBNQVhfU1RSVUNUX1BBR0VfU0laRSA2NAorCiBpbnQgbnZkaW1tX3NldHVwX3BmbihzdHJ1Y3QgbmRfcGZuICpuZF9wZm4sIHN0cnVjdCBkZXZfcGFnZW1hcCAqcGdtYXApOwogaW50IGRldm1fbnNpb19lbmFibGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbmRfbmFtZXNwYWNlX2lvICpuc2lvKTsKIHZvaWQgZGV2bV9uc2lvX2Rpc2FibGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbmRfbmFtZXNwYWNlX2lvICpuc2lvKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1tL29mX3BtZW0uYyBiL2RyaXZlcnMvbnZkaW1tL29mX3BtZW0uYwppbmRleCBhMGM4ZGNmLi45NzE4N2Q2IDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9vZl9wbWVtLmMKKysrIGIvZHJpdmVycy9udmRpbW0vb2ZfcG1lbS5jCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBpbnQgb2ZfcG1lbV9yZWdpb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlwcml2LT5idXNfZGVzYy5hdHRyX2dyb3VwcyA9IGJ1c19hdHRyX2dyb3VwczsKLQlwcml2LT5idXNfZGVzYy5wcm92aWRlcl9uYW1lID0gIm9mX3BtZW0iOworCXByaXYtPmJ1c19kZXNjLnByb3ZpZGVyX25hbWUgPSBrc3RyZHVwKHBkZXYtPm5hbWUsIEdGUF9LRVJORUwpOwogCXByaXYtPmJ1c19kZXNjLm1vZHVsZSA9IFRISVNfTU9EVUxFOwogCXByaXYtPmJ1c19kZXNjLm9mX25vZGUgPSBucDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9udmRpbW0vcGZuLmggYi9kcml2ZXJzL252ZGltbS9wZm4uaAppbmRleCA3MzgxNjczLi5hY2IxOTUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9wZm4uaAorKysgYi9kcml2ZXJzL252ZGltbS9wZm4uaApAQCAtMjksNyArMjksMTAgQEAgc3RydWN0IG5kX3Bmbl9zYiB7CiAJLyogbWlub3ItdmVyc2lvbi0yIHJlY29yZCB0aGUgYmFzZSBhbGlnbm1lbnQgb2YgdGhlIG1hcHBpbmcgKi8KIAlfX2xlMzIgYWxpZ247CiAJLyogbWlub3ItdmVyc2lvbi0zIGd1YXJhbnRlZSB0aGUgcGFkZGluZyBhbmQgZmxhZ3MgYXJlIHplcm8gKi8KLQl1OCBwYWRkaW5nWzQwMDBdOworCS8qIG1pbm9yLXZlcnNpb24tNCByZWNvcmQgdGhlIHBhZ2Ugc2l6ZSBhbmQgc3RydWN0IHBhZ2Ugc2l6ZSAqLworCV9fbGUzMiBwYWdlX3NpemU7CisJX19sZTE2IHBhZ2Vfc3RydWN0X3NpemU7CisJdTggcGFkZGluZ1szOTk0XTsKIAlfX2xlNjQgY2hlY2tzdW07CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL252ZGltbS9wZm5fZGV2cy5jIGIvZHJpdmVycy9udmRpbW0vcGZuX2RldnMuYwppbmRleCBjYjk4YjhmLi5iYjljYzVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9wZm5fZGV2cy5jCisrKyBiL2RyaXZlcnMvbnZkaW1tL3Bmbl9kZXZzLmMKQEAgLTQ2MCw2ICs0NjAsMTEgQEAgaW50IG5kX3Bmbl92YWxpZGF0ZShzdHJ1Y3QgbmRfcGZuICpuZF9wZm4sIGNvbnN0IGNoYXIgKnNpZykKIAlpZiAoX19sZTE2X3RvX2NwdShwZm5fc2ItPnZlcnNpb25fbWlub3IpIDwgMikKIAkJcGZuX3NiLT5hbGlnbiA9IDA7CiAKKwlpZiAoX19sZTE2X3RvX2NwdShwZm5fc2ItPnZlcnNpb25fbWlub3IpIDwgNCkgeworCQlwZm5fc2ItPnBhZ2Vfc3RydWN0X3NpemUgPSBjcHVfdG9fbGUxNig2NCk7CisJCXBmbl9zYi0+cGFnZV9zaXplID0gY3B1X3RvX2xlMzIoUEFHRV9TSVpFKTsKKwl9CisKIAlzd2l0Y2ggKGxlMzJfdG9fY3B1KHBmbl9zYi0+bW9kZSkpIHsKIAljYXNlIFBGTl9NT0RFX1JBTToKIAljYXNlIFBGTl9NT0RFX1BNRU06CkBAIC00NzUsNiArNDgwLDIyIEBAIGludCBuZF9wZm5fdmFsaWRhdGUoc3RydWN0IG5kX3BmbiAqbmRfcGZuLCBjb25zdCBjaGFyICpzaWcpCiAJCWFsaWduID0gMVVMIDw8IGlsb2cyKG9mZnNldCk7CiAJbW9kZSA9IGxlMzJfdG9fY3B1KHBmbl9zYi0+bW9kZSk7CiAKKwlpZiAoKGxlMzJfdG9fY3B1KHBmbl9zYi0+cGFnZV9zaXplKSA+IFBBR0VfU0laRSkgJiYKKwkJCShtb2RlID09IFBGTl9NT0RFX1BNRU0pKSB7CisJCWRldl9lcnIoJm5kX3Bmbi0+ZGV2LAorCQkJCSJpbml0IGZhaWxlZCwgcGFnZSBzaXplIG1pc21hdGNoICVkXG4iLAorCQkJCWxlMzJfdG9fY3B1KHBmbl9zYi0+cGFnZV9zaXplKSk7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwl9CisKKwlpZiAoKGxlMTZfdG9fY3B1KHBmbl9zYi0+cGFnZV9zdHJ1Y3Rfc2l6ZSkgPCBzaXplb2Yoc3RydWN0IHBhZ2UpKSAmJgorCQkJKG1vZGUgPT0gUEZOX01PREVfUE1FTSkpIHsKKwkJZGV2X2VycigmbmRfcGZuLT5kZXYsCisJCQkJImluaXQgZmFpbGVkLCBzdHJ1Y3QgcGFnZSBzaXplIG1pc21hdGNoICVkXG4iLAorCQkJCWxlMTZfdG9fY3B1KHBmbl9zYi0+cGFnZV9zdHJ1Y3Rfc2l6ZSkpOworCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJfQorCiAJaWYgKCFuZF9wZm4tPnV1aWQpIHsKIAkJLyoKIAkJICogV2hlbiBwcm9iaW5nIGEgbmFtZXBhY2UgdmlhIG5kX3Bmbl9wcm9iZSgpIHRoZSB1dWlkCkBAIC03MDMsOCArNzI0LDE2IEBAIHN0YXRpYyBpbnQgbmRfcGZuX2luaXQoc3RydWN0IG5kX3BmbiAqbmRfcGZuKQogCQkgKiBUaGUgYWx0bWFwIHNob3VsZCBiZSBwYWRkZWQgb3V0IHRvIHRoZSBibG9jayBzaXplIHVzZWQKIAkJICogd2hlbiBwb3B1bGF0aW5nIHRoZSB2bWVtbWFwLiBUaGlzICpzaG91bGQqIGJlIGVxdWFsIHRvCiAJCSAqIFBNRF9TSVpFIGZvciBtb3N0IGFyY2hpdGVjdHVyZXMuCisJCSAqCisJCSAqIEFsc28gbWFrZSBzdXJlIHNpemUgb2Ygc3RydWN0IHBhZ2UgaXMgbGVzcyB0aGFuIDY0LiBXZQorCQkgKiB3YW50IHRvIG1ha2Ugc3VyZSB3ZSB1c2UgbGFyZ2UgZW5vdWdoIHNpemUgaGVyZSBzbyB0aGF0CisJCSAqIHdlIGRvbid0IGhhdmUgYSBkeW5hbWljIHJlc2VydmUgc3BhY2UgZGVwZW5kaW5nIG9uCisJCSAqIHN0cnVjdCBwYWdlIHNpemUuIEJ1dCB3ZSBhbHNvIHdhbnQgdG8gbWFrZSBzdXJlIHdlIG5vdGljZQorCQkgKiB3aGVuIHdlIGVuZCB1cCBhZGRpbmcgbmV3IGVsZW1lbnRzIHRvIHN0cnVjdCBwYWdlLgogCQkgKi8KLQkJb2Zmc2V0ID0gQUxJR04oc3RhcnQgKyBTWl84SyArIDY0ICogbnBmbnMsIGFsaWduKSAtIHN0YXJ0OworCQlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBwYWdlKSA+IE1BWF9TVFJVQ1RfUEFHRV9TSVpFKTsKKwkJb2Zmc2V0ID0gQUxJR04oc3RhcnQgKyBTWl84SyArIE1BWF9TVFJVQ1RfUEFHRV9TSVpFICogbnBmbnMsIGFsaWduKQorCQkJLSBzdGFydDsKIAl9IGVsc2UgaWYgKG5kX3Bmbi0+bW9kZSA9PSBQRk5fTU9ERV9SQU0pCiAJCW9mZnNldCA9IEFMSUdOKHN0YXJ0ICsgU1pfOEssIGFsaWduKSAtIHN0YXJ0OwogCWVsc2UKQEAgLTcyNCw5ICs3NTMsMTEgQEAgc3RhdGljIGludCBuZF9wZm5faW5pdChzdHJ1Y3QgbmRfcGZuICpuZF9wZm4pCiAJbWVtY3B5KHBmbl9zYi0+dXVpZCwgbmRfcGZuLT51dWlkLCAxNik7CiAJbWVtY3B5KHBmbl9zYi0+cGFyZW50X3V1aWQsIG5kX2Rldl90b191dWlkKCZuZG5zLT5kZXYpLCAxNik7CiAJcGZuX3NiLT52ZXJzaW9uX21ham9yID0gY3B1X3RvX2xlMTYoMSk7Ci0JcGZuX3NiLT52ZXJzaW9uX21pbm9yID0gY3B1X3RvX2xlMTYoMyk7CisJcGZuX3NiLT52ZXJzaW9uX21pbm9yID0gY3B1X3RvX2xlMTYoNCk7CiAJcGZuX3NiLT5lbmRfdHJ1bmMgPSBjcHVfdG9fbGUzMihlbmRfdHJ1bmMpOwogCXBmbl9zYi0+YWxpZ24gPSBjcHVfdG9fbGUzMihuZF9wZm4tPmFsaWduKTsKKwlwZm5fc2ItPnBhZ2Vfc3RydWN0X3NpemUgPSBjcHVfdG9fbGUxNihNQVhfU1RSVUNUX1BBR0VfU0laRSk7CisJcGZuX3NiLT5wYWdlX3NpemUgPSBjcHVfdG9fbGUzMihQQUdFX1NJWkUpOwogCWNoZWNrc3VtID0gbmRfc2JfY2hlY2tzdW0oKHN0cnVjdCBuZF9nZW5fc2IgKikgcGZuX3NiKTsKIAlwZm5fc2ItPmNoZWNrc3VtID0gY3B1X3RvX2xlNjQoY2hlY2tzdW0pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL252ZGltbS9wbWVtLmMgYi9kcml2ZXJzL252ZGltbS9wbWVtLmMKaW5kZXggNGMxMjFkZC4uZjlmNzZmNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbnZkaW1tL3BtZW0uYworKysgYi9kcml2ZXJzL252ZGltbS9wbWVtLmMKQEAgLTQ5MCw2ICs0OTAsNyBAQCBzdGF0aWMgaW50IHBtZW1fYXR0YWNoX2Rpc2soc3RydWN0IGRldmljZSAqZGV2LAogCiBzdGF0aWMgaW50IG5kX3BtZW1fcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQogeworCWludCByZXQ7CiAJc3RydWN0IG5kX25hbWVzcGFjZV9jb21tb24gKm5kbnM7CiAKIAluZG5zID0gbnZkaW1tX25hbWVzcGFjZV9jb21tb25fcHJvYmUoZGV2KTsKQEAgLTUwNSwxMiArNTA2LDMyIEBAIHN0YXRpYyBpbnQgbmRfcG1lbV9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJaWYgKGlzX25kX3BmbihkZXYpKQogCQlyZXR1cm4gcG1lbV9hdHRhY2hfZGlzayhkZXYsIG5kbnMpOwogCi0JLyogaWYgd2UgZmluZCBhIHZhbGlkIGluZm8tYmxvY2sgd2UnbGwgY29tZSBiYWNrIGFzIHRoYXQgcGVyc29uYWxpdHkgKi8KLQlpZiAobmRfYnR0X3Byb2JlKGRldiwgbmRucykgPT0gMCB8fCBuZF9wZm5fcHJvYmUoZGV2LCBuZG5zKSA9PSAwCi0JCQl8fCBuZF9kYXhfcHJvYmUoZGV2LCBuZG5zKSA9PSAwKQorCXJldCA9IG5kX2J0dF9wcm9iZShkZXYsIG5kbnMpOworCWlmIChyZXQgPT0gMCkKIAkJcmV0dXJuIC1FTlhJTzsKIAotCS8qIC4uLm90aGVyd2lzZSB3ZSdyZSBqdXN0IGEgcmF3IHBtZW0gZGV2aWNlICovCisJLyoKKwkgKiBXZSBoYXZlIHR3byBmYWlsdXJlIGNvbmRpdGlvbnMgaGVyZSwgdGhlcmUgaXMgbm8KKwkgKiBpbmZvIHJlc2VydmVyIGJsb2NrIG9yIHdlIGZvdW5kIGEgdmFsaWQgaW5mbyByZXNlcnZlIGJsb2NrCisJICogYnV0IGZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBwZm4gc3VwZXJibG9jay4KKwkgKgorCSAqIEZvciB0aGUgZmlyc3QgY2FzZSBjb25zaWRlciBuYW1lc3BhY2UgYXMgYSByYXcgcG1lbSBuYW1lc3BhY2UKKwkgKiBhbmQgYXR0YWNoIGEgZGlzay4KKwkgKgorCSAqIEZvciB0aGUgbGF0dGVyLCBjb25zaWRlciB0aGlzIGEgc3VjY2VzcyBhbmQgYWR2YW5jZSB0aGUgbmFtZXNwYWNlCisJICogc2VlZC4KKwkgKi8KKwlyZXQgPSBuZF9wZm5fcHJvYmUoZGV2LCBuZG5zKTsKKwlpZiAocmV0ID09IDApCisJCXJldHVybiAtRU5YSU87CisJZWxzZSBpZiAocmV0ID09IC1FT1BOT1RTVVBQKQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gbmRfZGF4X3Byb2JlKGRldiwgbmRucyk7CisJaWYgKHJldCA9PSAwKQorCQlyZXR1cm4gLUVOWElPOworCWVsc2UgaWYgKHJldCA9PSAtRU9QTk9UU1VQUCkKKwkJcmV0dXJuIHJldDsKIAlyZXR1cm4gcG1lbV9hdHRhY2hfZGlzayhkZXYsIG5kbnMpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL252ZGltbS9yZWdpb25fZGV2cy5jIGIvZHJpdmVycy9udmRpbW0vcmVnaW9uX2RldnMuYwppbmRleCBhZjMwY2JlLi4zZmQ2YjU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9yZWdpb25fZGV2cy5jCisrKyBiL2RyaXZlcnMvbnZkaW1tL3JlZ2lvbl9kZXZzLmMKQEAgLTcxNSw4NSArNzE1LDM3IEBAIHZvaWQgbmRfbWFwcGluZ19mcmVlX2xhYmVscyhzdHJ1Y3QgbmRfbWFwcGluZyAqbmRfbWFwcGluZykKIH0KIAogLyoKLSAqIFVwb24gc3VjY2Vzc2Z1bCBwcm9iZS9yZW1vdmUsIHRha2UvcmVsZWFzZSBhIHJlZmVyZW5jZSBvbiB0aGUKLSAqIGFzc29jaWF0ZWQgaW50ZXJsZWF2ZSBzZXQgKGlmIHByZXNlbnQpLCBhbmQgcGxhbnQgbmV3IGJ0dCArIG5hbWVzcGFjZQotICogc2VlZHMuICBBbHNvLCBvbiB0aGUgcmVtb3ZhbCBvZiBhIEJMSyByZWdpb24sIG5vdGlmeSB0aGUgcHJvdmlkZXIgdG8KLSAqIGRpc2FibGUgdGhlIHJlZ2lvbi4KKyAqIFdoZW4gYSBuYW1lc3BhY2UgaXMgYWN0aXZhdGVkIGNyZWF0ZSBuZXcgc2VlZHMgZm9yIHRoZSBuZXh0CisgKiBuYW1lc3BhY2UsIG9yIG5hbWVzcGFjZS1wZXJzb25hbGl0eSB0byBiZSBjb25maWd1cmVkLgogICovCi1zdGF0aWMgdm9pZCBuZF9yZWdpb25fbm90aWZ5X2RyaXZlcl9hY3Rpb24oc3RydWN0IG52ZGltbV9idXMgKm52ZGltbV9idXMsCi0JCXN0cnVjdCBkZXZpY2UgKmRldiwgYm9vbCBwcm9iZSkKK3ZvaWQgbmRfcmVnaW9uX2FkdmFuY2Vfc2VlZHMoc3RydWN0IG5kX3JlZ2lvbiAqbmRfcmVnaW9uLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IG5kX3JlZ2lvbiAqbmRfcmVnaW9uOwotCi0JaWYgKCFwcm9iZSAmJiBpc19uZF9yZWdpb24oZGV2KSkgewotCQlpbnQgaTsKLQotCQluZF9yZWdpb24gPSB0b19uZF9yZWdpb24oZGV2KTsKLQkJZm9yIChpID0gMDsgaSA8IG5kX3JlZ2lvbi0+bmRyX21hcHBpbmdzOyBpKyspIHsKLQkJCXN0cnVjdCBuZF9tYXBwaW5nICpuZF9tYXBwaW5nID0gJm5kX3JlZ2lvbi0+bWFwcGluZ1tpXTsKLQkJCXN0cnVjdCBudmRpbW1fZHJ2ZGF0YSAqbmRkID0gbmRfbWFwcGluZy0+bmRkOwotCQkJc3RydWN0IG52ZGltbSAqbnZkaW1tID0gbmRfbWFwcGluZy0+bnZkaW1tOwotCi0JCQltdXRleF9sb2NrKCZuZF9tYXBwaW5nLT5sb2NrKTsKLQkJCW5kX21hcHBpbmdfZnJlZV9sYWJlbHMobmRfbWFwcGluZyk7Ci0JCQltdXRleF91bmxvY2soJm5kX21hcHBpbmctPmxvY2spOwotCi0JCQlwdXRfbmRkKG5kZCk7Ci0JCQluZF9tYXBwaW5nLT5uZGQgPSBOVUxMOwotCQkJaWYgKG5kZCkKLQkJCQlhdG9taWNfZGVjKCZudmRpbW0tPmJ1c3kpOwotCQl9Ci0JfQotCWlmIChkZXYtPnBhcmVudCAmJiBpc19uZF9yZWdpb24oZGV2LT5wYXJlbnQpICYmIHByb2JlKSB7Ci0JCW5kX3JlZ2lvbiA9IHRvX25kX3JlZ2lvbihkZXYtPnBhcmVudCk7Ci0JCW52ZGltbV9idXNfbG9jayhkZXYpOwotCQlpZiAobmRfcmVnaW9uLT5uc19zZWVkID09IGRldikKLQkJCW5kX3JlZ2lvbl9jcmVhdGVfbnNfc2VlZChuZF9yZWdpb24pOwotCQludmRpbW1fYnVzX3VubG9jayhkZXYpOwotCX0KLQlpZiAoaXNfbmRfYnR0KGRldikgJiYgcHJvYmUpIHsKKwludmRpbW1fYnVzX2xvY2soZGV2KTsKKwlpZiAobmRfcmVnaW9uLT5uc19zZWVkID09IGRldikgeworCQluZF9yZWdpb25fY3JlYXRlX25zX3NlZWQobmRfcmVnaW9uKTsKKwl9IGVsc2UgaWYgKGlzX25kX2J0dChkZXYpKSB7CiAJCXN0cnVjdCBuZF9idHQgKm5kX2J0dCA9IHRvX25kX2J0dChkZXYpOwogCi0JCW5kX3JlZ2lvbiA9IHRvX25kX3JlZ2lvbihkZXYtPnBhcmVudCk7Ci0JCW52ZGltbV9idXNfbG9jayhkZXYpOwogCQlpZiAobmRfcmVnaW9uLT5idHRfc2VlZCA9PSBkZXYpCiAJCQluZF9yZWdpb25fY3JlYXRlX2J0dF9zZWVkKG5kX3JlZ2lvbik7CiAJCWlmIChuZF9yZWdpb24tPm5zX3NlZWQgPT0gJm5kX2J0dC0+bmRucy0+ZGV2KQogCQkJbmRfcmVnaW9uX2NyZWF0ZV9uc19zZWVkKG5kX3JlZ2lvbik7Ci0JCW52ZGltbV9idXNfdW5sb2NrKGRldik7Ci0JfQotCWlmIChpc19uZF9wZm4oZGV2KSAmJiBwcm9iZSkgeworCX0gZWxzZSBpZiAoaXNfbmRfcGZuKGRldikpIHsKIAkJc3RydWN0IG5kX3BmbiAqbmRfcGZuID0gdG9fbmRfcGZuKGRldik7CiAKLQkJbmRfcmVnaW9uID0gdG9fbmRfcmVnaW9uKGRldi0+cGFyZW50KTsKLQkJbnZkaW1tX2J1c19sb2NrKGRldik7CiAJCWlmIChuZF9yZWdpb24tPnBmbl9zZWVkID09IGRldikKIAkJCW5kX3JlZ2lvbl9jcmVhdGVfcGZuX3NlZWQobmRfcmVnaW9uKTsKIAkJaWYgKG5kX3JlZ2lvbi0+bnNfc2VlZCA9PSAmbmRfcGZuLT5uZG5zLT5kZXYpCiAJCQluZF9yZWdpb25fY3JlYXRlX25zX3NlZWQobmRfcmVnaW9uKTsKLQkJbnZkaW1tX2J1c191bmxvY2soZGV2KTsKLQl9Ci0JaWYgKGlzX25kX2RheChkZXYpICYmIHByb2JlKSB7CisJfSBlbHNlIGlmIChpc19uZF9kYXgoZGV2KSkgewogCQlzdHJ1Y3QgbmRfZGF4ICpuZF9kYXggPSB0b19uZF9kYXgoZGV2KTsKIAotCQluZF9yZWdpb24gPSB0b19uZF9yZWdpb24oZGV2LT5wYXJlbnQpOwotCQludmRpbW1fYnVzX2xvY2soZGV2KTsKIAkJaWYgKG5kX3JlZ2lvbi0+ZGF4X3NlZWQgPT0gZGV2KQogCQkJbmRfcmVnaW9uX2NyZWF0ZV9kYXhfc2VlZChuZF9yZWdpb24pOwogCQlpZiAobmRfcmVnaW9uLT5uc19zZWVkID09ICZuZF9kYXgtPm5kX3Bmbi5uZG5zLT5kZXYpCiAJCQluZF9yZWdpb25fY3JlYXRlX25zX3NlZWQobmRfcmVnaW9uKTsKLQkJbnZkaW1tX2J1c191bmxvY2soZGV2KTsKIAl9Ci19Ci0KLXZvaWQgbmRfcmVnaW9uX3Byb2JlX3N1Y2Nlc3Moc3RydWN0IG52ZGltbV9idXMgKm52ZGltbV9idXMsIHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQluZF9yZWdpb25fbm90aWZ5X2RyaXZlcl9hY3Rpb24obnZkaW1tX2J1cywgZGV2LCB0cnVlKTsKLX0KLQotdm9pZCBuZF9yZWdpb25fZGlzYWJsZShzdHJ1Y3QgbnZkaW1tX2J1cyAqbnZkaW1tX2J1cywgc3RydWN0IGRldmljZSAqZGV2KQotewotCW5kX3JlZ2lvbl9ub3RpZnlfZHJpdmVyX2FjdGlvbihudmRpbW1fYnVzLCBkZXYsIGZhbHNlKTsKKwludmRpbW1fYnVzX3VubG9jayhkZXYpOwogfQogCiBzdGF0aWMgc3NpemVfdCBtYXBwaW5nTihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZiwgaW50IG4pCkBAIC05OTIsMTAgKzk0NCwxMCBAQCBzdGF0aWMgc3RydWN0IG5kX3JlZ2lvbiAqbmRfcmVnaW9uX2NyZWF0ZShzdHJ1Y3QgbnZkaW1tX2J1cyAqbnZkaW1tX2J1cywKIAkJc3RydWN0IG5kX21hcHBpbmdfZGVzYyAqbWFwcGluZyA9ICZuZHJfZGVzYy0+bWFwcGluZ1tpXTsKIAkJc3RydWN0IG52ZGltbSAqbnZkaW1tID0gbWFwcGluZy0+bnZkaW1tOwogCi0JCWlmICgobWFwcGluZy0+c3RhcnQgfCBtYXBwaW5nLT5zaXplKSAlIFNaXzRLKSB7Ci0JCQlkZXZfZXJyKCZudmRpbW1fYnVzLT5kZXYsICIlczogJXMgbWFwcGluZyVkIGlzIG5vdCA0SyBhbGlnbmVkXG4iLAotCQkJCQljYWxsZXIsIGRldl9uYW1lKCZudmRpbW0tPmRldiksIGkpOwotCisJCWlmICgobWFwcGluZy0+c3RhcnQgfCBtYXBwaW5nLT5zaXplKSAlIFBBR0VfU0laRSkgeworCQkJZGV2X2VycigmbnZkaW1tX2J1cy0+ZGV2LAorCQkJCSIlczogJXMgbWFwcGluZyVkIGlzIG5vdCAlbGQgYWxpZ25lZFxuIiwKKwkJCQljYWxsZXIsIGRldl9uYW1lKCZudmRpbW0tPmRldiksIGksIFBBR0VfU0laRSk7CiAJCQlyZXR1cm4gTlVMTDsKIAkJfQogCkBAIC0xMDI1LDEwICs5NzcsOSBAQCBzdGF0aWMgc3RydWN0IG5kX3JlZ2lvbiAqbmRfcmVnaW9uX2NyZWF0ZShzdHJ1Y3QgbnZkaW1tX2J1cyAqbnZkaW1tX2J1cywKIAkJfQogCQlyZWdpb25fYnVmID0gbmRicjsKIAl9IGVsc2UgewotCQluZF9yZWdpb24gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbmRfcmVnaW9uKQotCQkJCSsgc2l6ZW9mKHN0cnVjdCBuZF9tYXBwaW5nKQotCQkJCSogbmRyX2Rlc2MtPm51bV9tYXBwaW5ncywKLQkJCQlHRlBfS0VSTkVMKTsKKwkJbmRfcmVnaW9uID0ga3phbGxvYyhzdHJ1Y3Rfc2l6ZShuZF9yZWdpb24sIG1hcHBpbmcsCisJCQkJCQluZHJfZGVzYy0+bnVtX21hcHBpbmdzKSwKKwkJCQkgICAgR0ZQX0tFUk5FTCk7CiAJCXJlZ2lvbl9idWYgPSBuZF9yZWdpb247CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL252ZGltbS9zZWN1cml0eS5jIGIvZHJpdmVycy9udmRpbW0vc2VjdXJpdHkuYwppbmRleCBhNTcwZjIyLi45ZTQ1YjIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9zZWN1cml0eS5jCisrKyBiL2RyaXZlcnMvbnZkaW1tL3NlY3VyaXR5LmMKQEAgLTE1OCw3ICsxNTgsNyBAQCBzdGF0aWMgaW50IG52ZGltbV9rZXlfcmV2YWxpZGF0ZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0pCiAJfQogCiAJbnZkaW1tX3B1dF9rZXkoa2V5KTsKLQludmRpbW0tPnNlYy5zdGF0ZSA9IG52ZGltbV9zZWN1cml0eV9zdGF0ZShudmRpbW0sIE5WRElNTV9VU0VSKTsKKwludmRpbW0tPnNlYy5mbGFncyA9IG52ZGltbV9zZWN1cml0eV9mbGFncyhudmRpbW0sIE5WRElNTV9VU0VSKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRpYyBpbnQgX19udmRpbW1fc2VjdXJpdHlfdW5sb2NrKHN0cnVjdCBudmRpbW0gKm52ZGltbSkKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZudmRpbW1fYnVzLT5yZWNvbmZpZ19tdXRleCk7CiAKIAlpZiAoIW52ZGltbS0+c2VjLm9wcyB8fCAhbnZkaW1tLT5zZWMub3BzLT51bmxvY2sKLQkJCXx8IG52ZGltbS0+c2VjLnN0YXRlIDwgMCkKKwkJCXx8ICFudmRpbW0tPnNlYy5mbGFncykKIAkJcmV0dXJuIC1FSU87CiAKIAlpZiAodGVzdF9iaXQoTkREX1NFQ1VSSVRZX09WRVJXUklURSwgJm52ZGltbS0+ZmxhZ3MpKSB7CkBAIC0xODksNyArMTg5LDcgQEAgc3RhdGljIGludCBfX252ZGltbV9zZWN1cml0eV91bmxvY2soc3RydWN0IG52ZGltbSAqbnZkaW1tKQogCSAqIGZyZWV6ZSBvZiB0aGUgc2VjdXJpdHkgY29uZmlndXJhdGlvbi4gSS5lLiBpZiB0aGUgT1MgZG9lcyBub3QKIAkgKiBoYXZlIHRoZSBrZXksIHNlY3VyaXR5IGlzIGJlaW5nIG1hbmFnZWQgcHJlLU9TLgogCSAqLwotCWlmIChudmRpbW0tPnNlYy5zdGF0ZSA9PSBOVkRJTU1fU0VDVVJJVFlfVU5MT0NLRUQpIHsKKwlpZiAodGVzdF9iaXQoTlZESU1NX1NFQ1VSSVRZX1VOTE9DS0VELCAmbnZkaW1tLT5zZWMuZmxhZ3MpKSB7CiAJCWlmICgha2V5X3JldmFsaWRhdGUpCiAJCQlyZXR1cm4gMDsKIApAQCAtMjAyLDcgKzIwMiw3IEBAIHN0YXRpYyBpbnQgX19udmRpbW1fc2VjdXJpdHlfdW5sb2NrKHN0cnVjdCBudmRpbW0gKm52ZGltbSkKIAkJCXJjID09IDAgPyAic3VjY2VzcyIgOiAiZmFpbCIpOwogCiAJbnZkaW1tX3B1dF9rZXkoa2V5KTsKLQludmRpbW0tPnNlYy5zdGF0ZSA9IG52ZGltbV9zZWN1cml0eV9zdGF0ZShudmRpbW0sIE5WRElNTV9VU0VSKTsKKwludmRpbW0tPnNlYy5mbGFncyA9IG52ZGltbV9zZWN1cml0eV9mbGFncyhudmRpbW0sIE5WRElNTV9VU0VSKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTIxNyw3ICsyMTcsMjUgQEAgaW50IG52ZGltbV9zZWN1cml0eV91bmxvY2soc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiByYzsKIH0KIAotaW50IG52ZGltbV9zZWN1cml0eV9kaXNhYmxlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwgdW5zaWduZWQgaW50IGtleWlkKQorc3RhdGljIGludCBjaGVja19zZWN1cml0eV9zdGF0ZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0pCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJm52ZGltbS0+ZGV2OworCisJaWYgKHRlc3RfYml0KE5WRElNTV9TRUNVUklUWV9GUk9aRU4sICZudmRpbW0tPnNlYy5mbGFncykpIHsKKwkJZGV2X2RiZyhkZXYsICJJbmNvcnJlY3Qgc2VjdXJpdHkgc3RhdGU6ICUjbHhcbiIsCisJCQkJbnZkaW1tLT5zZWMuZmxhZ3MpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwlpZiAodGVzdF9iaXQoTkREX1NFQ1VSSVRZX09WRVJXUklURSwgJm52ZGltbS0+ZmxhZ3MpKSB7CisJCWRldl9kYmcoZGV2LCAiU2VjdXJpdHkgb3BlcmF0aW9uIGluIHByb2dyZXNzLlxuIik7CisJCXJldHVybiAtRUJVU1k7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2VjdXJpdHlfZGlzYWJsZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sIHVuc2lnbmVkIGludCBrZXlpZCkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmbnZkaW1tLT5kZXY7CiAJc3RydWN0IG52ZGltbV9idXMgKm52ZGltbV9idXMgPSB3YWxrX3RvX252ZGltbV9idXMoZGV2KTsKQEAgLTIyOSwxOSArMjQ3LDEyIEBAIGludCBudmRpbW1fc2VjdXJpdHlfZGlzYWJsZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sIHVuc2lnbmVkIGludCBrZXlpZCkKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZudmRpbW1fYnVzLT5yZWNvbmZpZ19tdXRleCk7CiAKIAlpZiAoIW52ZGltbS0+c2VjLm9wcyB8fCAhbnZkaW1tLT5zZWMub3BzLT5kaXNhYmxlCi0JCQl8fCBudmRpbW0tPnNlYy5zdGF0ZSA8IDApCisJCQl8fCAhbnZkaW1tLT5zZWMuZmxhZ3MpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAotCWlmIChudmRpbW0tPnNlYy5zdGF0ZSA+PSBOVkRJTU1fU0VDVVJJVFlfRlJPWkVOKSB7Ci0JCWRldl9kYmcoZGV2LCAiSW5jb3JyZWN0IHNlY3VyaXR5IHN0YXRlOiAlZFxuIiwKLQkJCQludmRpbW0tPnNlYy5zdGF0ZSk7Ci0JCXJldHVybiAtRUlPOwotCX0KLQotCWlmICh0ZXN0X2JpdChORERfU0VDVVJJVFlfT1ZFUldSSVRFLCAmbnZkaW1tLT5mbGFncykpIHsKLQkJZGV2X2RiZyhkZXYsICJTZWN1cml0eSBvcGVyYXRpb24gaW4gcHJvZ3Jlc3MuXG4iKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9CisJcmMgPSBjaGVja19zZWN1cml0eV9zdGF0ZShudmRpbW0pOworCWlmIChyYykKKwkJcmV0dXJuIHJjOwogCiAJZGF0YSA9IG52ZGltbV9nZXRfdXNlcl9rZXlfcGF5bG9hZChudmRpbW0sIGtleWlkLAogCQkJTlZESU1NX0JBU0VfS0VZLCAma2V5KTsKQEAgLTI1MywxMSArMjY0LDExIEBAIGludCBudmRpbW1fc2VjdXJpdHlfZGlzYWJsZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sIHVuc2lnbmVkIGludCBrZXlpZCkKIAkJCXJjID09IDAgPyAic3VjY2VzcyIgOiAiZmFpbCIpOwogCiAJbnZkaW1tX3B1dF9rZXkoa2V5KTsKLQludmRpbW0tPnNlYy5zdGF0ZSA9IG52ZGltbV9zZWN1cml0eV9zdGF0ZShudmRpbW0sIE5WRElNTV9VU0VSKTsKKwludmRpbW0tPnNlYy5mbGFncyA9IG52ZGltbV9zZWN1cml0eV9mbGFncyhudmRpbW0sIE5WRElNTV9VU0VSKTsKIAlyZXR1cm4gcmM7CiB9CiAKLWludCBudmRpbW1fc2VjdXJpdHlfdXBkYXRlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwgdW5zaWduZWQgaW50IGtleWlkLAorc3RhdGljIGludCBzZWN1cml0eV91cGRhdGUoc3RydWN0IG52ZGltbSAqbnZkaW1tLCB1bnNpZ25lZCBpbnQga2V5aWQsCiAJCXVuc2lnbmVkIGludCBuZXdfa2V5aWQsCiAJCWVudW0gbnZkaW1tX3Bhc3NwaHJhc2VfdHlwZSBwYXNzX3R5cGUpCiB7CkBAIC0yNzEsMTQgKzI4MiwxMiBAQCBpbnQgbnZkaW1tX3NlY3VyaXR5X3VwZGF0ZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sIHVuc2lnbmVkIGludCBrZXlpZCwKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZudmRpbW1fYnVzLT5yZWNvbmZpZ19tdXRleCk7CiAKIAlpZiAoIW52ZGltbS0+c2VjLm9wcyB8fCAhbnZkaW1tLT5zZWMub3BzLT5jaGFuZ2Vfa2V5Ci0JCQl8fCBudmRpbW0tPnNlYy5zdGF0ZSA8IDApCisJCQl8fCAhbnZkaW1tLT5zZWMuZmxhZ3MpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAotCWlmIChudmRpbW0tPnNlYy5zdGF0ZSA+PSBOVkRJTU1fU0VDVVJJVFlfRlJPWkVOKSB7Ci0JCWRldl9kYmcoZGV2LCAiSW5jb3JyZWN0IHNlY3VyaXR5IHN0YXRlOiAlZFxuIiwKLQkJCQludmRpbW0tPnNlYy5zdGF0ZSk7Ci0JCXJldHVybiAtRUlPOwotCX0KKwlyYyA9IGNoZWNrX3NlY3VyaXR5X3N0YXRlKG52ZGltbSk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CiAKIAlkYXRhID0gbnZkaW1tX2dldF91c2VyX2tleV9wYXlsb2FkKG52ZGltbSwga2V5aWQsCiAJCQlOVkRJTU1fQkFTRV9LRVksICZrZXkpOwpAQCAtMzAxLDE1ICszMTAsMTUgQEAgaW50IG52ZGltbV9zZWN1cml0eV91cGRhdGUoc3RydWN0IG52ZGltbSAqbnZkaW1tLCB1bnNpZ25lZCBpbnQga2V5aWQsCiAJbnZkaW1tX3B1dF9rZXkobmV3a2V5KTsKIAludmRpbW1fcHV0X2tleShrZXkpOwogCWlmIChwYXNzX3R5cGUgPT0gTlZESU1NX01BU1RFUikKLQkJbnZkaW1tLT5zZWMuZXh0X3N0YXRlID0gbnZkaW1tX3NlY3VyaXR5X3N0YXRlKG52ZGltbSwKKwkJbnZkaW1tLT5zZWMuZXh0X2ZsYWdzID0gbnZkaW1tX3NlY3VyaXR5X2ZsYWdzKG52ZGltbSwKIAkJCQlOVkRJTU1fTUFTVEVSKTsKIAllbHNlCi0JCW52ZGltbS0+c2VjLnN0YXRlID0gbnZkaW1tX3NlY3VyaXR5X3N0YXRlKG52ZGltbSwKKwkJbnZkaW1tLT5zZWMuZmxhZ3MgPSBudmRpbW1fc2VjdXJpdHlfZmxhZ3MobnZkaW1tLAogCQkJCU5WRElNTV9VU0VSKTsKIAlyZXR1cm4gcmM7CiB9CiAKLWludCBudmRpbW1fc2VjdXJpdHlfZXJhc2Uoc3RydWN0IG52ZGltbSAqbnZkaW1tLCB1bnNpZ25lZCBpbnQga2V5aWQsCitzdGF0aWMgaW50IHNlY3VyaXR5X2VyYXNlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwgdW5zaWduZWQgaW50IGtleWlkLAogCQllbnVtIG52ZGltbV9wYXNzcGhyYXNlX3R5cGUgcGFzc190eXBlKQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZudmRpbW0tPmRldjsKQEAgLTMyMiwyNiArMzMxLDE0IEBAIGludCBudmRpbW1fc2VjdXJpdHlfZXJhc2Uoc3RydWN0IG52ZGltbSAqbnZkaW1tLCB1bnNpZ25lZCBpbnQga2V5aWQsCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmbnZkaW1tX2J1cy0+cmVjb25maWdfbXV0ZXgpOwogCiAJaWYgKCFudmRpbW0tPnNlYy5vcHMgfHwgIW52ZGltbS0+c2VjLm9wcy0+ZXJhc2UKLQkJCXx8IG52ZGltbS0+c2VjLnN0YXRlIDwgMCkKKwkJCXx8ICFudmRpbW0tPnNlYy5mbGFncykKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCi0JaWYgKGF0b21pY19yZWFkKCZudmRpbW0tPmJ1c3kpKSB7Ci0JCWRldl9kYmcoZGV2LCAiVW5hYmxlIHRvIHNlY3VyZSBlcmFzZSB3aGlsZSBESU1NIGFjdGl2ZS5cbiIpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KKwlyYyA9IGNoZWNrX3NlY3VyaXR5X3N0YXRlKG52ZGltbSk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CiAKLQlpZiAobnZkaW1tLT5zZWMuc3RhdGUgPj0gTlZESU1NX1NFQ1VSSVRZX0ZST1pFTikgewotCQlkZXZfZGJnKGRldiwgIkluY29ycmVjdCBzZWN1cml0eSBzdGF0ZTogJWRcbiIsCi0JCQkJbnZkaW1tLT5zZWMuc3RhdGUpOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQlpZiAodGVzdF9iaXQoTkREX1NFQ1VSSVRZX09WRVJXUklURSwgJm52ZGltbS0+ZmxhZ3MpKSB7Ci0JCWRldl9kYmcoZGV2LCAiU2VjdXJpdHkgb3BlcmF0aW9uIGluIHByb2dyZXNzLlxuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCi0JaWYgKG52ZGltbS0+c2VjLmV4dF9zdGF0ZSAhPSBOVkRJTU1fU0VDVVJJVFlfVU5MT0NLRUQKKwlpZiAoIXRlc3RfYml0KE5WRElNTV9TRUNVUklUWV9VTkxPQ0tFRCwgJm52ZGltbS0+c2VjLmV4dF9mbGFncykKIAkJCSYmIHBhc3NfdHlwZSA9PSBOVkRJTU1fTUFTVEVSKSB7CiAJCWRldl9kYmcoZGV2LAogCQkJIkF0dGVtcHQgdG8gc2VjdXJlIGVyYXNlIGluIHdyb25nIG1hc3RlciBzdGF0ZS5cbiIpOwpAQCAtMzU5LDExICszNTYsMTEgQEAgaW50IG52ZGltbV9zZWN1cml0eV9lcmFzZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sIHVuc2lnbmVkIGludCBrZXlpZCwKIAkJCXJjID09IDAgPyAic3VjY2VzcyIgOiAiZmFpbCIpOwogCiAJbnZkaW1tX3B1dF9rZXkoa2V5KTsKLQludmRpbW0tPnNlYy5zdGF0ZSA9IG52ZGltbV9zZWN1cml0eV9zdGF0ZShudmRpbW0sIE5WRElNTV9VU0VSKTsKKwludmRpbW0tPnNlYy5mbGFncyA9IG52ZGltbV9zZWN1cml0eV9mbGFncyhudmRpbW0sIE5WRElNTV9VU0VSKTsKIAlyZXR1cm4gcmM7CiB9CiAKLWludCBudmRpbW1fc2VjdXJpdHlfb3ZlcndyaXRlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwgdW5zaWduZWQgaW50IGtleWlkKQorc3RhdGljIGludCBzZWN1cml0eV9vdmVyd3JpdGUoc3RydWN0IG52ZGltbSAqbnZkaW1tLCB1bnNpZ25lZCBpbnQga2V5aWQpCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJm52ZGltbS0+ZGV2OwogCXN0cnVjdCBudmRpbW1fYnVzICpudmRpbW1fYnVzID0gd2Fsa190b19udmRpbW1fYnVzKGRldik7CkBAIC0zNzUsMjkgKzM3MiwxNyBAQCBpbnQgbnZkaW1tX3NlY3VyaXR5X292ZXJ3cml0ZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sIHVuc2lnbmVkIGludCBrZXlpZCkKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZudmRpbW1fYnVzLT5yZWNvbmZpZ19tdXRleCk7CiAKIAlpZiAoIW52ZGltbS0+c2VjLm9wcyB8fCAhbnZkaW1tLT5zZWMub3BzLT5vdmVyd3JpdGUKLQkJCXx8IG52ZGltbS0+c2VjLnN0YXRlIDwgMCkKKwkJCXx8ICFudmRpbW0tPnNlYy5mbGFncykKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCi0JaWYgKGF0b21pY19yZWFkKCZudmRpbW0tPmJ1c3kpKSB7Ci0JCWRldl9kYmcoZGV2LCAiVW5hYmxlIHRvIG92ZXJ3cml0ZSB3aGlsZSBESU1NIGFjdGl2ZS5cbiIpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQogCWlmIChkZXYtPmRyaXZlciA9PSBOVUxMKSB7CiAJCWRldl9kYmcoZGV2LCAiVW5hYmxlIHRvIG92ZXJ3cml0ZSB3aGlsZSBESU1NIGFjdGl2ZS5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAobnZkaW1tLT5zZWMuc3RhdGUgPj0gTlZESU1NX1NFQ1VSSVRZX0ZST1pFTikgewotCQlkZXZfZGJnKGRldiwgIkluY29ycmVjdCBzZWN1cml0eSBzdGF0ZTogJWRcbiIsCi0JCQkJbnZkaW1tLT5zZWMuc3RhdGUpOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQlpZiAodGVzdF9iaXQoTkREX1NFQ1VSSVRZX09WRVJXUklURSwgJm52ZGltbS0+ZmxhZ3MpKSB7Ci0JCWRldl9kYmcoZGV2LCAiU2VjdXJpdHkgb3BlcmF0aW9uIGluIHByb2dyZXNzLlxuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQorCXJjID0gY2hlY2tfc2VjdXJpdHlfc3RhdGUobnZkaW1tKTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKIAogCWRhdGEgPSBudmRpbW1fZ2V0X3VzZXJfa2V5X3BheWxvYWQobnZkaW1tLCBrZXlpZCwKIAkJCU5WRElNTV9CQVNFX0tFWSwgJmtleSk7CkBAIC00MTIsNyArMzk3LDcgQEAgaW50IG52ZGltbV9zZWN1cml0eV9vdmVyd3JpdGUoc3RydWN0IG52ZGltbSAqbnZkaW1tLCB1bnNpZ25lZCBpbnQga2V5aWQpCiAJaWYgKHJjID09IDApIHsKIAkJc2V0X2JpdChORERfU0VDVVJJVFlfT1ZFUldSSVRFLCAmbnZkaW1tLT5mbGFncyk7CiAJCXNldF9iaXQoTkREX1dPUktfUEVORElORywgJm52ZGltbS0+ZmxhZ3MpOwotCQludmRpbW0tPnNlYy5zdGF0ZSA9IE5WRElNTV9TRUNVUklUWV9PVkVSV1JJVEU7CisJCXNldF9iaXQoTlZESU1NX1NFQ1VSSVRZX09WRVJXUklURSwgJm52ZGltbS0+c2VjLmZsYWdzKTsKIAkJLyoKIAkJICogTWFrZSBzdXJlIHdlIGRvbid0IGxvc2UgZGV2aWNlIHdoaWxlIGRvaW5nIG92ZXJ3cml0ZQogCQkgKiBxdWVyeS4KQEAgLTQ0Myw3ICs0MjgsNyBAQCB2b2lkIF9fbnZkaW1tX3NlY3VyaXR5X292ZXJ3cml0ZV9xdWVyeShzdHJ1Y3QgbnZkaW1tICpudmRpbW0pCiAJdG1vID0gbnZkaW1tLT5zZWMub3ZlcndyaXRlX3RtbzsKIAogCWlmICghbnZkaW1tLT5zZWMub3BzIHx8ICFudmRpbW0tPnNlYy5vcHMtPnF1ZXJ5X292ZXJ3cml0ZQotCQkJfHwgbnZkaW1tLT5zZWMuc3RhdGUgPCAwKQorCQkJfHwgIW52ZGltbS0+c2VjLmZsYWdzKQogCQlyZXR1cm47CiAKIAlyYyA9IG52ZGltbS0+c2VjLm9wcy0+cXVlcnlfb3ZlcndyaXRlKG52ZGltbSk7CkBAIC00NjcsOCArNDUyLDggQEAgdm9pZCBfX252ZGltbV9zZWN1cml0eV9vdmVyd3JpdGVfcXVlcnkoc3RydWN0IG52ZGltbSAqbnZkaW1tKQogCWNsZWFyX2JpdChORERfU0VDVVJJVFlfT1ZFUldSSVRFLCAmbnZkaW1tLT5mbGFncyk7CiAJY2xlYXJfYml0KE5ERF9XT1JLX1BFTkRJTkcsICZudmRpbW0tPmZsYWdzKTsKIAlwdXRfZGV2aWNlKCZudmRpbW0tPmRldik7Ci0JbnZkaW1tLT5zZWMuc3RhdGUgPSBudmRpbW1fc2VjdXJpdHlfc3RhdGUobnZkaW1tLCBOVkRJTU1fVVNFUik7Ci0JbnZkaW1tLT5zZWMuZXh0X3N0YXRlID0gbnZkaW1tX3NlY3VyaXR5X3N0YXRlKG52ZGltbSwgTlZESU1NX01BU1RFUik7CisJbnZkaW1tLT5zZWMuZmxhZ3MgPSBudmRpbW1fc2VjdXJpdHlfZmxhZ3MobnZkaW1tLCBOVkRJTU1fVVNFUik7CisJbnZkaW1tLT5zZWMuZmxhZ3MgPSBudmRpbW1fc2VjdXJpdHlfZmxhZ3MobnZkaW1tLCBOVkRJTU1fTUFTVEVSKTsKIH0KIAogdm9pZCBudmRpbW1fc2VjdXJpdHlfb3ZlcndyaXRlX3F1ZXJ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKQEAgLTQ4MCwzICs0NjUsODUgQEAgdm9pZCBudmRpbW1fc2VjdXJpdHlfb3ZlcndyaXRlX3F1ZXJ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlfX252ZGltbV9zZWN1cml0eV9vdmVyd3JpdGVfcXVlcnkobnZkaW1tKTsKIAludmRpbW1fYnVzX3VubG9jaygmbnZkaW1tLT5kZXYpOwogfQorCisjZGVmaW5lIE9QUwkJCQkJCQlcCisJQyggT1BfRlJFRVpFLAkJImZyZWV6ZSIsCQkxKSwJXAorCUMoIE9QX0RJU0FCTEUsCQkiZGlzYWJsZSIsCQkyKSwJXAorCUMoIE9QX1VQREFURSwJCSJ1cGRhdGUiLAkJMyksCVwKKwlDKCBPUF9FUkFTRSwJCSJlcmFzZSIsCQkyKSwJXAorCUMoIE9QX09WRVJXUklURSwJIm92ZXJ3cml0ZSIsCQkyKSwJXAorCUMoIE9QX01BU1RFUl9VUERBVEUsCSJtYXN0ZXJfdXBkYXRlIiwJMyksCVwKKwlDKCBPUF9NQVNURVJfRVJBU0UsCSJtYXN0ZXJfZXJhc2UiLAkJMikKKyN1bmRlZiBDCisjZGVmaW5lIEMoYSwgYiwgYykgYQorZW51bSBudmRpbW1zZWNfb3BfaWRzIHsgT1BTIH07CisjdW5kZWYgQworI2RlZmluZSBDKGEsIGIsIGMpIHsgYiwgYyB9CitzdGF0aWMgc3RydWN0IHsKKwljb25zdCBjaGFyICpuYW1lOworCWludCBhcmdzOworfSBvcHNbXSA9IHsgT1BTIH07CisjdW5kZWYgQworCisjZGVmaW5lIFNFQ19DTURfU0laRSAzMgorI2RlZmluZSBLRVlfSURfU0laRSAxMAorCitzc2l6ZV90IG52ZGltbV9zZWN1cml0eV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlzdHJ1Y3QgbnZkaW1tICpudmRpbW0gPSB0b19udmRpbW0oZGV2KTsKKwlzc2l6ZV90IHJjOworCWNoYXIgY21kW1NFQ19DTURfU0laRSsxXSwga2V5c3RyW0tFWV9JRF9TSVpFKzFdLAorCQlua2V5c3RyW0tFWV9JRF9TSVpFKzFdOworCXVuc2lnbmVkIGludCBrZXksIG5ld2tleTsKKwlpbnQgaTsKKworCXJjID0gc3NjYW5mKGJ1ZiwgIiUiX19zdHJpbmdpZnkoU0VDX0NNRF9TSVpFKSJzIgorCQkJIiAlIl9fc3RyaW5naWZ5KEtFWV9JRF9TSVpFKSJzIgorCQkJIiAlIl9fc3RyaW5naWZ5KEtFWV9JRF9TSVpFKSJzIiwKKwkJCWNtZCwga2V5c3RyLCBua2V5c3RyKTsKKwlpZiAocmMgPCAxKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShvcHMpOyBpKyspCisJCWlmIChzeXNmc19zdHJlcShjbWQsIG9wc1tpXS5uYW1lKSkKKwkJCWJyZWFrOworCWlmIChpID49IEFSUkFZX1NJWkUob3BzKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKG9wc1tpXS5hcmdzID4gMSkKKwkJcmMgPSBrc3RydG91aW50KGtleXN0ciwgMCwgJmtleSk7CisJaWYgKHJjID49IDAgJiYgb3BzW2ldLmFyZ3MgPiAyKQorCQlyYyA9IGtzdHJ0b3VpbnQobmtleXN0ciwgMCwgJm5ld2tleSk7CisJaWYgKHJjIDwgMCkKKwkJcmV0dXJuIHJjOworCisJaWYgKGkgPT0gT1BfRlJFRVpFKSB7CisJCWRldl9kYmcoZGV2LCAiZnJlZXplXG4iKTsKKwkJcmMgPSBudmRpbW1fc2VjdXJpdHlfZnJlZXplKG52ZGltbSk7CisJfSBlbHNlIGlmIChpID09IE9QX0RJU0FCTEUpIHsKKwkJZGV2X2RiZyhkZXYsICJkaXNhYmxlICV1XG4iLCBrZXkpOworCQlyYyA9IHNlY3VyaXR5X2Rpc2FibGUobnZkaW1tLCBrZXkpOworCX0gZWxzZSBpZiAoaSA9PSBPUF9VUERBVEUgfHwgaSA9PSBPUF9NQVNURVJfVVBEQVRFKSB7CisJCWRldl9kYmcoZGV2LCAiJXMgJXUgJXVcbiIsIG9wc1tpXS5uYW1lLCBrZXksIG5ld2tleSk7CisJCXJjID0gc2VjdXJpdHlfdXBkYXRlKG52ZGltbSwga2V5LCBuZXdrZXksIGkgPT0gT1BfVVBEQVRFCisJCQkJPyBOVkRJTU1fVVNFUiA6IE5WRElNTV9NQVNURVIpOworCX0gZWxzZSBpZiAoaSA9PSBPUF9FUkFTRSB8fCBpID09IE9QX01BU1RFUl9FUkFTRSkgeworCQlkZXZfZGJnKGRldiwgIiVzICV1XG4iLCBvcHNbaV0ubmFtZSwga2V5KTsKKwkJaWYgKGF0b21pY19yZWFkKCZudmRpbW0tPmJ1c3kpKSB7CisJCQlkZXZfZGJnKGRldiwgIlVuYWJsZSB0byBzZWN1cmUgZXJhc2Ugd2hpbGUgRElNTSBhY3RpdmUuXG4iKTsKKwkJCXJldHVybiAtRUJVU1k7CisJCX0KKwkJcmMgPSBzZWN1cml0eV9lcmFzZShudmRpbW0sIGtleSwgaSA9PSBPUF9FUkFTRQorCQkJCT8gTlZESU1NX1VTRVIgOiBOVkRJTU1fTUFTVEVSKTsKKwl9IGVsc2UgaWYgKGkgPT0gT1BfT1ZFUldSSVRFKSB7CisJCWRldl9kYmcoZGV2LCAib3ZlcndyaXRlICV1XG4iLCBrZXkpOworCQlpZiAoYXRvbWljX3JlYWQoJm52ZGltbS0+YnVzeSkpIHsKKwkJCWRldl9kYmcoZGV2LCAiVW5hYmxlIHRvIG92ZXJ3cml0ZSB3aGlsZSBESU1NIGFjdGl2ZS5cbiIpOworCQkJcmV0dXJuIC1FQlVTWTsKKwkJfQorCQlyYyA9IHNlY3VyaXR5X292ZXJ3cml0ZShudmRpbW0sIGtleSk7CisJfSBlbHNlCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHJjID09IDApCisJCXJjID0gbGVuOworCXJldHVybiByYzsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYyBiL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYwppbmRleCAxZWRlMTc2Li4xMDhmNjBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMKKysrIGIvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jCkBAIC02NjYsOCArNjY2LDYgQEAgc3RhdGljIGlubGluZSBibGtfc3RhdHVzX3QgbnZtZV9zZXR1cF9ydyhzdHJ1Y3QgbnZtZV9ucyAqbnMsCiAJCQlpZiAoV0FSTl9PTl9PTkNFKCFudm1lX25zX2hhc19waShucykpKQogCQkJCXJldHVybiBCTEtfU1RTX05PVFNVUFA7CiAJCQljb250cm9sIHw9IE5WTUVfUldfUFJJTkZPX1BSQUNUOwotCQl9IGVsc2UgaWYgKHJlcV9vcChyZXEpID09IFJFUV9PUF9XUklURSkgewotCQkJdDEwX3BpX3ByZXBhcmUocmVxLCBucy0+cGlfdHlwZSk7CiAJCX0KIAogCQlzd2l0Y2ggKG5zLT5waV90eXBlKSB7CkBAIC02OTAsMTMgKzY4OCw2IEBAIHN0YXRpYyBpbmxpbmUgYmxrX3N0YXR1c190IG52bWVfc2V0dXBfcncoc3RydWN0IG52bWVfbnMgKm5zLAogCiB2b2lkIG52bWVfY2xlYW51cF9jbWQoc3RydWN0IHJlcXVlc3QgKnJlcSkKIHsKLQlpZiAoYmxrX2ludGVncml0eV9ycShyZXEpICYmIHJlcV9vcChyZXEpID09IFJFUV9PUF9SRUFEICYmCi0JICAgIG52bWVfcmVxKHJlcSktPnN0YXR1cyA9PSAwKSB7Ci0JCXN0cnVjdCBudm1lX25zICpucyA9IHJlcS0+cnFfZGlzay0+cHJpdmF0ZV9kYXRhOwotCi0JCXQxMF9waV9jb21wbGV0ZShyZXEsIG5zLT5waV90eXBlLAotCQkJCWJsa19ycV9ieXRlcyhyZXEpID4+IG5zLT5sYmFfc2hpZnQpOwotCX0KIAlpZiAocmVxLT5ycV9mbGFncyAmIFJRRl9TUEVDSUFMX1BBWUxPQUQpIHsKIAkJc3RydWN0IG52bWVfbnMgKm5zID0gcmVxLT5ycV9kaXNrLT5wcml2YXRlX2RhdGE7CiAJCXN0cnVjdCBwYWdlICpwYWdlID0gcmVxLT5zcGVjaWFsX3ZlYy5idl9wYWdlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lL2hvc3QvcGNpLmMgYi9kcml2ZXJzL252bWUvaG9zdC9wY2kuYwppbmRleCA2YjRkN2IwLi5jMDgwOGY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUvaG9zdC9wY2kuYworKysgYi9kcml2ZXJzL252bWUvaG9zdC9wY2kuYwpAQCAtNTQ5LDggKzU0OSwxMCBAQCBzdGF0aWMgdm9pZCBudm1lX3VubWFwX2RhdGEoc3RydWN0IG52bWVfZGV2ICpkZXYsIHN0cnVjdCByZXF1ZXN0ICpyZXEpCiAKIAlXQVJOX09OX09OQ0UoIWlvZC0+bmVudHMpOwogCi0JLyogUDJQRE1BIHJlcXVlc3RzIGRvIG5vdCBuZWVkIHRvIGJlIHVubWFwcGVkICovCi0JaWYgKCFpc19wY2lfcDJwZG1hX3BhZ2Uoc2dfcGFnZShpb2QtPnNnKSkpCisJaWYgKGlzX3BjaV9wMnBkbWFfcGFnZShzZ19wYWdlKGlvZC0+c2cpKSkKKwkJcGNpX3AycGRtYV91bm1hcF9zZyhkZXYtPmRldiwgaW9kLT5zZywgaW9kLT5uZW50cywKKwkJCQkgICAgcnFfZG1hX2RpcihyZXEpKTsKKwllbHNlCiAJCWRtYV91bm1hcF9zZyhkZXYtPmRldiwgaW9kLT5zZywgaW9kLT5uZW50cywgcnFfZG1hX2RpcihyZXEpKTsKIAogCkBAIC04MzQsOCArODM2LDggQEAgc3RhdGljIGJsa19zdGF0dXNfdCBudm1lX21hcF9kYXRhKHN0cnVjdCBudm1lX2RldiAqZGV2LCBzdHJ1Y3QgcmVxdWVzdCAqcmVxLAogCQlnb3RvIG91dDsKIAogCWlmIChpc19wY2lfcDJwZG1hX3BhZ2Uoc2dfcGFnZShpb2QtPnNnKSkpCi0JCW5yX21hcHBlZCA9IHBjaV9wMnBkbWFfbWFwX3NnKGRldi0+ZGV2LCBpb2QtPnNnLCBpb2QtPm5lbnRzLAotCQkJCQkgICAgICBycV9kbWFfZGlyKHJlcSkpOworCQlucl9tYXBwZWQgPSBwY2lfcDJwZG1hX21hcF9zZ19hdHRycyhkZXYtPmRldiwgaW9kLT5zZywKKwkJCQlpb2QtPm5lbnRzLCBycV9kbWFfZGlyKHJlcSksIERNQV9BVFRSX05PX1dBUk4pOwogCWVsc2UKIAkJbnJfbWFwcGVkID0gZG1hX21hcF9zZ19hdHRycyhkZXYtPmRldiwgaW9kLT5zZywgaW9kLT5uZW50cywKIAkJCQkJICAgICBycV9kbWFfZGlyKHJlcSksIERNQV9BVFRSX05PX1dBUk4pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9vZi9iYXNlLmMgYi9kcml2ZXJzL29mL2Jhc2UuYwppbmRleCA1NWU3ZjViLi4xZDY2N2ViIDEwMDY0NAotLS0gYS9kcml2ZXJzL29mL2Jhc2UuYworKysgYi9kcml2ZXJzL29mL2Jhc2UuYwpAQCAtMTI4Niw2ICsxMjg2LDEzIEBAIGludCBvZl9waGFuZGxlX2l0ZXJhdG9yX2luaXQoc3RydWN0IG9mX3BoYW5kbGVfaXRlcmF0b3IgKml0LAogCiAJbWVtc2V0KGl0LCAwLCBzaXplb2YoKml0KSk7CiAKKwkvKgorCSAqIG9uZSBvZiBjZWxsX2NvdW50IG9yIGNlbGxzX25hbWUgbXVzdCBiZSBwcm92aWRlZCB0byBkZXRlcm1pbmUgdGhlCisJICogYXJndW1lbnQgbGVuZ3RoLgorCSAqLworCWlmIChjZWxsX2NvdW50IDwgMCAmJiAhY2VsbHNfbmFtZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlsaXN0ID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCBsaXN0X25hbWUsICZzaXplKTsKIAlpZiAoIWxpc3QpCiAJCXJldHVybiAtRU5PRU5UOwpAQCAtMTMzNSwxMSArMTM0MiwyMCBAQCBpbnQgb2ZfcGhhbmRsZV9pdGVyYXRvcl9uZXh0KHN0cnVjdCBvZl9waGFuZGxlX2l0ZXJhdG9yICppdCkKIAogCQkJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGl0LT5ub2RlLCBpdC0+Y2VsbHNfbmFtZSwKIAkJCQkJCSAmY291bnQpKSB7Ci0JCQkJcHJfZXJyKCIlcE9GOiBjb3VsZCBub3QgZ2V0ICVzIGZvciAlcE9GXG4iLAotCQkJCSAgICAgICBpdC0+cGFyZW50LAotCQkJCSAgICAgICBpdC0+Y2VsbHNfbmFtZSwKLQkJCQkgICAgICAgaXQtPm5vZGUpOwotCQkJCWdvdG8gZXJyOworCQkJCS8qCisJCQkJICogSWYgYm90aCBjZWxsX2NvdW50IGFuZCBjZWxsc19uYW1lIGlzIGdpdmVuLAorCQkJCSAqIGZhbGwgYmFjayB0byBjZWxsX2NvdW50IGluIGFic2VuY2UKKwkJCQkgKiBvZiB0aGUgY2VsbHNfbmFtZSBwcm9wZXJ0eQorCQkJCSAqLworCQkJCWlmIChpdC0+Y2VsbF9jb3VudCA+PSAwKSB7CisJCQkJCWNvdW50ID0gaXQtPmNlbGxfY291bnQ7CisJCQkJfSBlbHNlIHsKKwkJCQkJcHJfZXJyKCIlcE9GOiBjb3VsZCBub3QgZ2V0ICVzIGZvciAlcE9GXG4iLAorCQkJCQkgICAgICAgaXQtPnBhcmVudCwKKwkJCQkJICAgICAgIGl0LT5jZWxsc19uYW1lLAorCQkJCQkgICAgICAgaXQtPm5vZGUpOworCQkJCQlnb3RvIGVycjsKKwkJCQl9CiAJCQl9CiAJCX0gZWxzZSB7CiAJCQljb3VudCA9IGl0LT5jZWxsX2NvdW50OwpAQCAtMTUwMywxMCArMTUxOSwxNyBAQCBpbnQgb2ZfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3MoY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCwgY29uc3QgY2hhciAqbGlzdF9uYQogCQkJCWNvbnN0IGNoYXIgKmNlbGxzX25hbWUsIGludCBpbmRleCwKIAkJCQlzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzICpvdXRfYXJncykKIHsKKwlpbnQgY2VsbF9jb3VudCA9IC0xOworCiAJaWYgKGluZGV4IDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JcmV0dXJuIF9fb2ZfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3MobnAsIGxpc3RfbmFtZSwgY2VsbHNfbmFtZSwgMCwKLQkJCQkJICAgIGluZGV4LCBvdXRfYXJncyk7CisKKwkvKiBJZiBjZWxsc19uYW1lIGlzIE5VTEwgd2UgYXNzdW1lIGEgY2VsbCBjb3VudCBvZiAwICovCisJaWYgKCFjZWxsc19uYW1lKQorCQljZWxsX2NvdW50ID0gMDsKKworCXJldHVybiBfX29mX3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzKG5wLCBsaXN0X25hbWUsIGNlbGxzX25hbWUsCisJCQkJCSAgICBjZWxsX2NvdW50LCBpbmRleCwgb3V0X2FyZ3MpOwogfQogRVhQT1JUX1NZTUJPTChvZl9wYXJzZV9waGFuZGxlX3dpdGhfYXJncyk7CiAKQEAgLTE1ODgsNyArMTYxMSw3IEBAIGludCBvZl9wYXJzZV9waGFuZGxlX3dpdGhfYXJnc19tYXAoY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCwKIAlpZiAoIXBhc3NfbmFtZSkKIAkJZ290byBmcmVlOwogCi0JcmV0ID0gX19vZl9wYXJzZV9waGFuZGxlX3dpdGhfYXJncyhucCwgbGlzdF9uYW1lLCBjZWxsc19uYW1lLCAwLCBpbmRleCwKKwlyZXQgPSBfX29mX3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzKG5wLCBsaXN0X25hbWUsIGNlbGxzX25hbWUsIC0xLCBpbmRleCwKIAkJCQkJICAgb3V0X2FyZ3MpOwogCWlmIChyZXQpCiAJCWdvdG8gZnJlZTsKQEAgLTE3NTYsNyArMTc3OSwyNCBAQCBpbnQgb2ZfY291bnRfcGhhbmRsZV93aXRoX2FyZ3MoY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCwgY29uc3QgY2hhciAqbGlzdF9uYQogCXN0cnVjdCBvZl9waGFuZGxlX2l0ZXJhdG9yIGl0OwogCWludCByYywgY3VyX2luZGV4ID0gMDsKIAotCXJjID0gb2ZfcGhhbmRsZV9pdGVyYXRvcl9pbml0KCZpdCwgbnAsIGxpc3RfbmFtZSwgY2VsbHNfbmFtZSwgMCk7CisJLyoKKwkgKiBJZiBjZWxsc19uYW1lIGlzIE5VTEwgd2UgYXNzdW1lIGEgY2VsbCBjb3VudCBvZiAwLiBUaGlzIG1ha2VzCisJICogY291bnRpbmcgdGhlIHBoYW5kbGVzIHRyaXZpYWwgYXMgZWFjaCAzMmJpdCB3b3JkIGluIHRoZSBsaXN0IGlzIGEKKwkgKiBwaGFuZGxlIGFuZCBubyBhcmd1bWVudHMgYXJlIHRvIGNvbnNpZGVyLiBTbyB3ZSBkb24ndCBpdGVyYXRlIHRocm91Z2gKKwkgKiB0aGUgbGlzdCBidXQganVzdCB1c2UgdGhlIGxlbmd0aCB0byBkZXRlcm1pbmUgdGhlIHBoYW5kbGUgY291bnQuCisJICovCisJaWYgKCFjZWxsc19uYW1lKSB7CisJCWNvbnN0IF9fYmUzMiAqbGlzdDsKKwkJaW50IHNpemU7CisKKwkJbGlzdCA9IG9mX2dldF9wcm9wZXJ0eShucCwgbGlzdF9uYW1lLCAmc2l6ZSk7CisJCWlmICghbGlzdCkKKwkJCXJldHVybiAtRU5PRU5UOworCisJCXJldHVybiBzaXplIC8gc2l6ZW9mKCpsaXN0KTsKKwl9CisKKwlyYyA9IG9mX3BoYW5kbGVfaXRlcmF0b3JfaW5pdCgmaXQsIG5wLCBsaXN0X25hbWUsIGNlbGxzX25hbWUsIC0xKTsKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9vZi91bml0dGVzdC5jIGIvZHJpdmVycy9vZi91bml0dGVzdC5jCmluZGV4IGU2YjE3NTMuLjQ4MGEyMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvb2YvdW5pdHRlc3QuYworKysgYi9kcml2ZXJzL29mL3VuaXR0ZXN0LmMKQEAgLTEwNDQsOCArMTA0NCwxMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfdW5pdHRlc3RfcGxhdGZvcm1fcG9wdWxhdGUodm9pZCkKIAl0ZXN0X2J1cyA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsKCZ0ZXN0X2J1c19pbmZvKTsKIAlyYyA9IFBUUl9FUlJfT1JfWkVSTyh0ZXN0X2J1cyk7CiAJdW5pdHRlc3QoIXJjLCAidGVzdGJ1cyByZWdpc3RyYXRpb24gZmFpbGVkOyByYz0laVxuIiwgcmMpOwotCWlmIChyYykKKwlpZiAocmMpIHsKKwkJb2Zfbm9kZV9wdXQobnApOwogCQlyZXR1cm47CisJfQogCXRlc3RfYnVzLT5kZXYub2Zfbm9kZSA9IG5wOwogCiAJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGFyaXNjL2NjaW8tZG1hLmMgYi9kcml2ZXJzL3BhcmlzYy9jY2lvLWRtYS5jCmluZGV4IDIxN2YxNWEuLmFkMjkwZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGFyaXNjL2NjaW8tZG1hLmMKKysrIGIvZHJpdmVycy9wYXJpc2MvY2Npby1kbWEuYwpAQCAtMTAyNCw2ICsxMDI0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBjY2lvX29wcyA9IHsKIAkudW5tYXBfcGFnZSA9CQljY2lvX3VubWFwX3BhZ2UsCiAJLm1hcF9zZyA9IAkJY2Npb19tYXBfc2csCiAJLnVubWFwX3NnID0gCQljY2lvX3VubWFwX3NnLAorCS5nZXRfc2d0YWJsZSA9CQlkbWFfY29tbW9uX2dldF9zZ3RhYmxlLAogfTsKIAogI2lmZGVmIENPTkZJR19QUk9DX0ZTCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BhcmlzYy9zYmFfaW9tbXUuYyBiL2RyaXZlcnMvcGFyaXNjL3NiYV9pb21tdS5jCmluZGV4IDI5NjY2OGMuLmVkNTA1MDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGFyaXNjL3NiYV9pb21tdS5jCisrKyBiL2RyaXZlcnMvcGFyaXNjL3NiYV9pb21tdS5jCkBAIC0xMDg0LDYgKzEwODQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIHNiYV9vcHMgPSB7CiAJLnVubWFwX3BhZ2UgPQkJc2JhX3VubWFwX3BhZ2UsCiAJLm1hcF9zZyA9CQlzYmFfbWFwX3NnLAogCS51bm1hcF9zZyA9CQlzYmFfdW5tYXBfc2csCisJLmdldF9zZ3RhYmxlID0JCWRtYV9jb21tb25fZ2V0X3NndGFibGUsCiB9OwogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL0tjb25maWcgYi9kcml2ZXJzL3BjaS9LY29uZmlnCmluZGV4IGMzMTNkZTkuLmEzMDRmNWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL0tjb25maWcKKysrIGIvZHJpdmVycy9wY2kvS2NvbmZpZwpAQCAtNTIsNyArNTIsNyBAQAogCSAgIElmIHlvdSBkb24ndCBrbm93IHdoYXQgdG8gZG8gaGVyZSwgc2F5IFkuCiAKIGNvbmZpZyBQQ0lfTVNJX0lSUV9ET01BSU4KLQlkZWZfYm9vbCBBUkMgfHwgQVJNIHx8IEFSTTY0IHx8IFg4NgorCWRlZl9ib29sIEFSQyB8fCBBUk0gfHwgQVJNNjQgfHwgWDg2IHx8IFJJU0NWCiAJZGVwZW5kcyBvbiBQQ0lfTVNJCiAJc2VsZWN0IEdFTkVSSUNfTVNJX0lSUV9ET01BSU4KIApAQCAtMTcwLDcgKzE3MCw3IEBACiAKIAkgIE1hbnkgUENJZSByb290IGNvbXBsZXhlcyBkbyBub3Qgc3VwcG9ydCBQMlAgdHJhbnNhY3Rpb25zIGFuZAogCSAgaXQncyBoYXJkIHRvIHRlbGwgd2hpY2ggc3VwcG9ydCBpdCBhdCBhbGwsIHNvIGF0IHRoaXMgdGltZSwKLQkgIFAyUCBETUEgdHJhbnNhdGlvbnMgbXVzdCBiZSBiZXR3ZWVuIGRldmljZXMgYmVoaW5kIHRoZSBzYW1lIHJvb3QKKwkgIFAyUCBETUEgdHJhbnNhY3Rpb25zIG11c3QgYmUgYmV0d2VlbiBkZXZpY2VzIGJlaGluZCB0aGUgc2FtZSByb290CiAJICBwb3J0LgogCiAJICBJZiB1bnN1cmUsIHNheSBOLgpAQCAtMTgxLDcgKzE4MSw3IEBACiAKIGNvbmZpZyBQQ0lfSFlQRVJWCiAgICAgICAgIHRyaXN0YXRlICJIeXBlci1WIFBDSSBGcm9udGVuZCIKLSAgICAgICAgZGVwZW5kcyBvbiBYODYgJiYgSFlQRVJWICYmIFBDSV9NU0kgJiYgUENJX01TSV9JUlFfRE9NQUlOICYmIFg4Nl82NAorICAgICAgICBkZXBlbmRzIG9uIFg4Nl82NCAmJiBIWVBFUlYgJiYgUENJX01TSSAmJiBQQ0lfTVNJX0lSUV9ET01BSU4gJiYgU1lTRlMKIAlzZWxlY3QgUENJX0hZUEVSVl9JTlRFUkZBQ0UKICAgICAgICAgaGVscAogICAgICAgICAgIFRoZSBQQ0kgZGV2aWNlIGZyb250ZW5kIGRyaXZlciBhbGxvd3MgdGhlIGtlcm5lbCB0byBpbXBvcnQgYXJiaXRyYXJ5CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9hY2Nlc3MuYyBiL2RyaXZlcnMvcGNpL2FjY2Vzcy5jCmluZGV4IDU0NDkyMmYuLjJmY2NiNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2FjY2Vzcy5jCisrKyBiL2RyaXZlcnMvcGNpL2FjY2Vzcy5jCkBAIC0zMzYsMTUgKzMzNiw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBjaWVfY2FwX3ZlcnNpb24oY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikKIAlyZXR1cm4gcGNpZV9jYXBzX3JlZyhkZXYpICYgUENJX0VYUF9GTEFHU19WRVJTOwogfQogCi1zdGF0aWMgYm9vbCBwY2llX2Rvd25zdHJlYW1fcG9ydChjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2KQotewotCWludCB0eXBlID0gcGNpX3BjaWVfdHlwZShkZXYpOwotCi0JcmV0dXJuIHR5cGUgPT0gUENJX0VYUF9UWVBFX1JPT1RfUE9SVCB8fAotCSAgICAgICB0eXBlID09IFBDSV9FWFBfVFlQRV9ET1dOU1RSRUFNIHx8Ci0JICAgICAgIHR5cGUgPT0gUENJX0VYUF9UWVBFX1BDSUVfQlJJREdFOwotfQotCiBib29sIHBjaWVfY2FwX2hhc19sbmtjdGwoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikKIHsKIAlpbnQgdHlwZSA9IHBjaV9wY2llX3R5cGUoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2J1cy5jIGIvZHJpdmVycy9wY2kvYnVzLmMKaW5kZXggNDk1MDU5ZC4uOGU0MGIzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvYnVzLmMKKysrIGIvZHJpdmVycy9wY2kvYnVzLmMKQEAgLTQxNywxMSArNDE3LDkgQEAgc3RydWN0IHBjaV9idXMgKnBjaV9idXNfZ2V0KHN0cnVjdCBwY2lfYnVzICpidXMpCiAJCWdldF9kZXZpY2UoJmJ1cy0+ZGV2KTsKIAlyZXR1cm4gYnVzOwogfQotRVhQT1JUX1NZTUJPTChwY2lfYnVzX2dldCk7CiAKIHZvaWQgcGNpX2J1c19wdXQoc3RydWN0IHBjaV9idXMgKmJ1cykKIHsKIAlpZiAoYnVzKQogCQlwdXRfZGV2aWNlKCZidXMtPmRldik7CiB9Ci1FWFBPUlRfU1lNQk9MKHBjaV9idXNfcHV0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL0tjb25maWcgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9LY29uZmlnCmluZGV4IDZlYTc3OGEuLjBiYTk4OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL0tjb25maWcKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvS2NvbmZpZwpAQCAtMTMxLDEzICsxMzEsMjkgQEAKIAkgIERlc2lnbldhcmUgY29yZSBmdW5jdGlvbnMgdG8gaW1wbGVtZW50IHRoZSBkcml2ZXIuCiAKIGNvbmZpZyBQQ0lfTEFZRVJTQ0FQRQotCWJvb2wgIkZyZWVzY2FsZSBMYXllcnNjYXBlIFBDSWUgY29udHJvbGxlciIKKwlib29sICJGcmVlc2NhbGUgTGF5ZXJzY2FwZSBQQ0llIGNvbnRyb2xsZXIgLSBIb3N0IG1vZGUiCiAJZGVwZW5kcyBvbiBPRiAmJiAoQVJNIHx8IEFSQ0hfTEFZRVJTQ0FQRSB8fCBDT01QSUxFX1RFU1QpCiAJZGVwZW5kcyBvbiBQQ0lfTVNJX0lSUV9ET01BSU4KIAlzZWxlY3QgTUZEX1NZU0NPTgogCXNlbGVjdCBQQ0lFX0RXX0hPU1QKIAloZWxwCi0JICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IFBDSWUgY29udHJvbGxlciBzdXBwb3J0IG9uIExheWVyc2NhcGUgU29Dcy4KKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIFBDSWUgY29udHJvbGxlciBzdXBwb3J0IG9uIExheWVyc2NhcGUKKwkgIFNvQ3MgdG8gd29yayBpbiBIb3N0IG1vZGUuCisJICBUaGlzIGNvbnRyb2xsZXIgY2FuIHdvcmsgZWl0aGVyIGFzIEVQIG9yIFJDLiBUaGUgUkNXW0hPU1RfQUdUX1BFWF0KKwkgIGRldGVybWluZXMgd2hpY2ggUENJZSBjb250cm9sbGVyIHdvcmtzIGluIEVQIG1vZGUgYW5kIHdoaWNoIFBDSWUKKwkgIGNvbnRyb2xsZXIgd29ya3MgaW4gUkMgbW9kZS4KKworY29uZmlnIFBDSV9MQVlFUlNDQVBFX0VQCisJYm9vbCAiRnJlZXNjYWxlIExheWVyc2NhcGUgUENJZSBjb250cm9sbGVyIC0gRW5kcG9pbnQgbW9kZSIKKwlkZXBlbmRzIG9uIE9GICYmIChBUk0gfHwgQVJDSF9MQVlFUlNDQVBFIHx8IENPTVBJTEVfVEVTVCkKKwlkZXBlbmRzIG9uIFBDSV9FTkRQT0lOVAorCXNlbGVjdCBQQ0lFX0RXX0VQCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byBlbmFibGUgUENJZSBjb250cm9sbGVyIHN1cHBvcnQgb24gTGF5ZXJzY2FwZQorCSAgU29DcyB0byB3b3JrIGluIEVuZHBvaW50IG1vZGUuCisJICBUaGlzIGNvbnRyb2xsZXIgY2FuIHdvcmsgZWl0aGVyIGFzIEVQIG9yIFJDLiBUaGUgUkNXW0hPU1RfQUdUX1BFWF0KKwkgIGRldGVybWluZXMgd2hpY2ggUENJZSBjb250cm9sbGVyIHdvcmtzIGluIEVQIG1vZGUgYW5kIHdoaWNoIFBDSWUKKwkgIGNvbnRyb2xsZXIgd29ya3MgaW4gUkMgbW9kZS4KIAogY29uZmlnIFBDSV9ISVNJCiAJZGVwZW5kcyBvbiBPRiAmJiAoQVJNNjQgfHwgQ09NUElMRV9URVNUKQpAQCAtMjIwLDYgKzIzNiwxNiBAQAogCSAgYW5kIHRoZXJlZm9yZSB0aGUgZHJpdmVyIHJlLXVzZXMgdGhlIERlc2lnbldhcmUgY29yZSBmdW5jdGlvbnMgdG8KIAkgIGltcGxlbWVudCB0aGUgZHJpdmVyLgogCitjb25maWcgUENJRV9URUdSQTE5NAorCXRyaXN0YXRlICJOVklESUEgVGVncmExOTQgKGFuZCBsYXRlcikgUENJZSBjb250cm9sbGVyIgorCWRlcGVuZHMgb24gQVJDSF9URUdSQV8xOTRfU09DIHx8IENPTVBJTEVfVEVTVAorCWRlcGVuZHMgb24gUENJX01TSV9JUlFfRE9NQUlOCisJc2VsZWN0IFBDSUVfRFdfSE9TVAorCXNlbGVjdCBQSFlfVEVHUkExOTRfUDJVCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCBzdXBwb3J0IGZvciBEZXNpZ25XYXJlIGNvcmUgYmFzZWQgUENJZSBob3N0CisJICBjb250cm9sbGVyIGZvdW5kIGluIE5WSURJQSBUZWdyYTE5NCBTb0MuCisKIGNvbmZpZyBQQ0lFX1VOSVBISUVSCiAJYm9vbCAiU29jaW9uZXh0IFVuaVBoaWVyIFBDSWUgY29udHJvbGxlcnMiCiAJZGVwZW5kcyBvbiBBUkNIX1VOSVBISUVSIHx8IENPTVBJTEVfVEVTVApAQCAtMjMwLDQgKzI1NiwxNiBAQAogCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCBQQ0llIGNvbnRyb2xsZXIgc3VwcG9ydCBvbiBVbmlQaGllciBTb0NzLgogCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTEQyMCBhbmQgUFhzMyBTb0NzLgogCitjb25maWcgUENJRV9BTAorCWJvb2wgIkFtYXpvbiBBbm5hcHVybmEgTGFicyBQQ0llIGNvbnRyb2xsZXIiCisJZGVwZW5kcyBvbiBPRiAmJiAoQVJNNjQgfHwgQ09NUElMRV9URVNUKQorCWRlcGVuZHMgb24gUENJX01TSV9JUlFfRE9NQUlOCisJc2VsZWN0IFBDSUVfRFdfSE9TVAorCWhlbHAKKwkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHN1cHBvcnQgb2YgdGhlIEFtYXpvbidzIEFubmFwdXJuYSBMYWJzIFBDSWUKKwkgIGNvbnRyb2xsZXIgSVAgb24gQW1hem9uIFNvQ3MuIFRoZSBQQ0llIGNvbnRyb2xsZXIgdXNlcyB0aGUgRGVzaWduV2FyZQorCSAgY29yZSBwbHVzIEFubmFwdXJuYSBMYWJzIHByb3ByaWV0YXJ5IGhhcmR3YXJlIHdyYXBwZXJzLiBUaGlzIGlzCisJICByZXF1aXJlZCBvbmx5IGZvciBEVC1iYXNlZCBwbGF0Zm9ybXMuIEFDUEkgcGxhdGZvcm1zIHdpdGggdGhlCisJICBBbm5hcHVybmEgTGFicyBQQ0llIGNvbnRyb2xsZXIgZG9uJ3QgbmVlZCB0byBlbmFibGUgdGhpcy4KKwogZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvTWFrZWZpbGUgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9NYWtlZmlsZQppbmRleCBiMDg1ZGZkLi42OWZhZmYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9NYWtlZmlsZQpAQCAtOCwxMyArOCwxNSBAQAogb2JqLSQoQ09ORklHX1BDSV9JTVg2KSArPSBwY2ktaW14Ni5vCiBvYmotJChDT05GSUdfUENJRV9TUEVBUjEzWFgpICs9IHBjaWUtc3BlYXIxM3h4Lm8KIG9iai0kKENPTkZJR19QQ0lfS0VZU1RPTkUpICs9IHBjaS1rZXlzdG9uZS5vCi1vYmotJChDT05GSUdfUENJX0xBWUVSU0NBUEUpICs9IHBjaS1sYXllcnNjYXBlLm8gcGNpLWxheWVyc2NhcGUtZXAubworb2JqLSQoQ09ORklHX1BDSV9MQVlFUlNDQVBFKSArPSBwY2ktbGF5ZXJzY2FwZS5vCitvYmotJChDT05GSUdfUENJX0xBWUVSU0NBUEVfRVApICs9IHBjaS1sYXllcnNjYXBlLWVwLm8KIG9iai0kKENPTkZJR19QQ0lFX1FDT00pICs9IHBjaWUtcWNvbS5vCiBvYmotJChDT05GSUdfUENJRV9BUk1BREFfOEspICs9IHBjaWUtYXJtYWRhOGsubwogb2JqLSQoQ09ORklHX1BDSUVfQVJUUEVDNikgKz0gcGNpZS1hcnRwZWM2Lm8KIG9iai0kKENPTkZJR19QQ0lFX0tJUklOKSArPSBwY2llLWtpcmluLm8KIG9iai0kKENPTkZJR19QQ0lFX0hJU0lfU1RCKSArPSBwY2llLWhpc3RiLm8KIG9iai0kKENPTkZJR19QQ0lfTUVTT04pICs9IHBjaS1tZXNvbi5vCitvYmotJChDT05GSUdfUENJRV9URUdSQTE5NCkgKz0gcGNpZS10ZWdyYTE5NC5vCiBvYmotJChDT05GSUdfUENJRV9VTklQSElFUikgKz0gcGNpZS11bmlwaGllci5vCiAKICMgVGhlIGZvbGxvd2luZyBkcml2ZXJzIGFyZSBmb3IgZGV2aWNlcyB0aGF0IHVzZSB0aGUgZ2VuZXJpYyBBQ1BJCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMKaW5kZXggY2VlNWYyZi4uMTRhNmJhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWV4eW5vcy5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1leHlub3MuYwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGV4eW5vc19wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAllcC0+cGh5ID0gZGV2bV9vZl9waHlfZ2V0KGRldiwgbnAsIE5VTEwpOwogCWlmIChJU19FUlIoZXAtPnBoeSkpIHsKLQkJaWYgKFBUUl9FUlIoZXAtPnBoeSkgPT0gLUVQUk9CRV9ERUZFUikKKwkJaWYgKFBUUl9FUlIoZXAtPnBoeSkgIT0gLUVOT0RFVikKIAkJCXJldHVybiBQVFJfRVJSKGVwLT5waHkpOwogCiAJCWVwLT5waHkgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKaW5kZXggOWI1Y2I1Yi4uYWNmYmQzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jCkBAIC01Nyw2ICs1Nyw3IEBAIGVudW0gaW14Nl9wY2llX3ZhcmlhbnRzIHsKIHN0cnVjdCBpbXg2X3BjaWVfZHJ2ZGF0YSB7CiAJZW51bSBpbXg2X3BjaWVfdmFyaWFudHMgdmFyaWFudDsKIAl1MzIgZmxhZ3M7CisJaW50IGRiaV9sZW5ndGg7CiB9OwogCiBzdHJ1Y3QgaW14Nl9wY2llIHsKQEAgLTExNzMsOCArMTE3NCw4IEBAIHN0YXRpYyBpbnQgaW14Nl9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlpbXg2X3BjaWUtPnZwY2llID0gZGV2bV9yZWd1bGF0b3JfZ2V0X29wdGlvbmFsKCZwZGV2LT5kZXYsICJ2cGNpZSIpOwogCWlmIChJU19FUlIoaW14Nl9wY2llLT52cGNpZSkpIHsKLQkJaWYgKFBUUl9FUlIoaW14Nl9wY2llLT52cGNpZSkgPT0gLUVQUk9CRV9ERUZFUikKLQkJCXJldHVybiAtRVBST0JFX0RFRkVSOworCQlpZiAoUFRSX0VSUihpbXg2X3BjaWUtPnZwY2llKSAhPSAtRU5PREVWKQorCQkJcmV0dXJuIFBUUl9FUlIoaW14Nl9wY2llLT52cGNpZSk7CiAJCWlteDZfcGNpZS0+dnBjaWUgPSBOVUxMOwogCX0KIApAQCAtMTIxMiw2ICsxMjEzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbXg2X3BjaWVfZHJ2ZGF0YSBkcnZkYXRhW10gPSB7CiAJCS52YXJpYW50ID0gSU1YNlEsCiAJCS5mbGFncyA9IElNWDZfUENJRV9GTEFHX0lNWDZfUEhZIHwKIAkJCSBJTVg2X1BDSUVfRkxBR19JTVg2X1NQRUVEX0NIQU5HRSwKKwkJLmRiaV9sZW5ndGggPSAweDIwMCwKIAl9LAogCVtJTVg2U1hdID0gewogCQkudmFyaWFudCA9IElNWDZTWCwKQEAgLTEyNTQsNiArMTI1NiwzNyBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpbXg2X3BjaWVfZHJpdmVyID0gewogCS5zaHV0ZG93biA9IGlteDZfcGNpZV9zaHV0ZG93biwKIH07CiAKK3N0YXRpYyB2b2lkIGlteDZfcGNpZV9xdWlyayhzdHJ1Y3QgcGNpX2RldiAqZGV2KQoreworCXN0cnVjdCBwY2lfYnVzICpidXMgPSBkZXYtPmJ1czsKKwlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1cy0+c3lzZGF0YTsKKworCS8qIEJ1cyBwYXJlbnQgaXMgdGhlIFBDSSBicmlkZ2UsIGl0cyBwYXJlbnQgaXMgdGhpcyBwbGF0Zm9ybSBkcml2ZXIgKi8KKwlpZiAoIWJ1cy0+ZGV2LnBhcmVudCB8fCAhYnVzLT5kZXYucGFyZW50LT5wYXJlbnQpCisJCXJldHVybjsKKworCS8qIE1ha2Ugc3VyZSB3ZSBvbmx5IHF1aXJrIGRldmljZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZHJpdmVyICovCisJaWYgKGJ1cy0+ZGV2LnBhcmVudC0+cGFyZW50LT5kcml2ZXIgIT0gJmlteDZfcGNpZV9kcml2ZXIuZHJpdmVyKQorCQlyZXR1cm47CisKKwlpZiAoYnVzLT5udW1iZXIgPT0gcHAtPnJvb3RfYnVzX25yKSB7CisJCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOworCQlzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUgPSB0b19pbXg2X3BjaWUocGNpKTsKKworCQkvKgorCQkgKiBMaW1pdCBjb25maWcgbGVuZ3RoIHRvIGF2b2lkIHRoZSBrZXJuZWwgcmVhZGluZyBiZXlvbmQKKwkJICogdGhlIHJlZ2lzdGVyIHNldCBhbmQgY2F1c2luZyBhbiBhYm9ydCBvbiBpLk1YIDZRdWFkCisJCSAqLworCQlpZiAoaW14Nl9wY2llLT5kcnZkYXRhLT5kYmlfbGVuZ3RoKSB7CisJCQlkZXYtPmNmZ19zaXplID0gaW14Nl9wY2llLT5kcnZkYXRhLT5kYmlfbGVuZ3RoOworCQkJZGV2X2luZm8oJmRldi0+ZGV2LCAiTGltaXRpbmcgY2ZnX3NpemUgdG8gJWRcbiIsCisJCQkJCWRldi0+Y2ZnX3NpemUpOworCQl9CisJfQorfQorREVDTEFSRV9QQ0lfRklYVVBfQ0xBU1NfSEVBREVSKFBDSV9WRU5ET1JfSURfU1lOT1BTWVMsIDB4YWJjZCwKKwkJCVBDSV9DTEFTU19CUklER0VfUENJLCA4LCBpbXg2X3BjaWVfcXVpcmspOworCiBzdGF0aWMgaW50IF9faW5pdCBpbXg2X3BjaWVfaW5pdCh2b2lkKQogewogI2lmZGVmIENPTkZJR19BUk0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1sYXllcnNjYXBlLWVwLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbGF5ZXJzY2FwZS1lcC5jCmluZGV4IGJlNjFkOTYuLmNhOWFhNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1sYXllcnNjYXBlLWVwLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWxheWVyc2NhcGUtZXAuYwpAQCAtNDQsNiArNDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcGNfZmVhdHVyZXMgbHNfcGNpZV9lcGNfZmVhdHVyZXMgPSB7CiAJLmxpbmt1cF9ub3RpZmllciA9IGZhbHNlLAogCS5tc2lfY2FwYWJsZSA9IHRydWUsCiAJLm1zaXhfY2FwYWJsZSA9IGZhbHNlLAorCS5iYXJfZml4ZWRfNjRiaXQgPSAoMSA8PCBCQVJfMikgfCAoMSA8PCBCQVJfNCksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcGNfZmVhdHVyZXMqCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMKaW5kZXggM2FiNThmMC4uMWVlZGEyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hbC5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYwpAQCAtOTEsMyArOTEsMzY4IEBAIHN0cnVjdCBwY2lfZWNhbV9vcHMgYWxfcGNpZV9vcHMgPSB7CiB9OwogCiAjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfQUNQSSkgJiYgZGVmaW5lZChDT05GSUdfUENJX1FVSVJLUykgKi8KKworI2lmZGVmIENPTkZJR19QQ0lFX0FMCisKKyNpbmNsdWRlIDxsaW51eC9vZl9wY2kuaD4KKyNpbmNsdWRlICJwY2llLWRlc2lnbndhcmUuaCIKKworI2RlZmluZSBBTF9QQ0lFX1JFVl9JRF8yCTIKKyNkZWZpbmUgQUxfUENJRV9SRVZfSURfMwkzCisjZGVmaW5lIEFMX1BDSUVfUkVWX0lEXzQJNAorCisjZGVmaW5lIEFYSV9CQVNFX09GRlNFVAkJMHgwCisKKyNkZWZpbmUgREVWSUNFX0lEX09GRlNFVAkweDE2YworCisjZGVmaW5lIERFVklDRV9SRVZfSUQJCQkweDAKKyNkZWZpbmUgREVWSUNFX1JFVl9JRF9ERVZfSURfTUFTSwlHRU5NQVNLKDMxLCAxNikKKworI2RlZmluZSBERVZJQ0VfUkVWX0lEX0RFVl9JRF9YNAkJMAorI2RlZmluZSBERVZJQ0VfUkVWX0lEX0RFVl9JRF9YOAkJMgorI2RlZmluZSBERVZJQ0VfUkVWX0lEX0RFVl9JRF9YMTYJNAorCisjZGVmaW5lIE9CX0NUUkxfUkVWMV8yX09GRlNFVAkweDAwNDAKKyNkZWZpbmUgT0JfQ1RSTF9SRVYzXzVfT0ZGU0VUCTB4MDAzMAorCisjZGVmaW5lIENGR19UQVJHRVRfQlVTCQkJMHgwCisjZGVmaW5lIENGR19UQVJHRVRfQlVTX01BU0tfTUFTSwlHRU5NQVNLKDcsIDApCisjZGVmaW5lIENGR19UQVJHRVRfQlVTX0JVU05VTV9NQVNLCUdFTk1BU0soMTUsIDgpCisKKyNkZWZpbmUgQ0ZHX0NPTlRST0wJCQkweDQKKyNkZWZpbmUgQ0ZHX0NPTlRST0xfU1VCQlVTX01BU0sJCUdFTk1BU0soMTUsIDgpCisjZGVmaW5lIENGR19DT05UUk9MX1NFQ19CVVNfTUFTSwlHRU5NQVNLKDIzLCAxNikKKworc3RydWN0IGFsX3BjaWVfcmVnX29mZnNldHMgeworCXVuc2lnbmVkIGludCBvYl9jdHJsOworfTsKKworc3RydWN0IGFsX3BjaWVfdGFyZ2V0X2J1c19jZmcgeworCXU4IHJlZ192YWw7CisJdTggcmVnX21hc2s7CisJdTggZWNhbV9tYXNrOworfTsKKworc3RydWN0IGFsX3BjaWUgeworCXN0cnVjdCBkd19wY2llICpwY2k7CisJdm9pZCBfX2lvbWVtICpjb250cm9sbGVyX2Jhc2U7IC8qIGJhc2Ugb2YgUENJZSB1bml0IChub3QgRFcgY29yZSkgKi8KKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJcmVzb3VyY2Vfc2l6ZV90IGVjYW1fc2l6ZTsKKwl1bnNpZ25lZCBpbnQgY29udHJvbGxlcl9yZXZfaWQ7CisJc3RydWN0IGFsX3BjaWVfcmVnX29mZnNldHMgcmVnX29mZnNldHM7CisJc3RydWN0IGFsX3BjaWVfdGFyZ2V0X2J1c19jZmcgdGFyZ2V0X2J1c19jZmc7Cit9OworCisjZGVmaW5lIFBDSUVfRUNBTV9ERVZGTih4KQkJKCgoeCkgJiAweGZmKSA8PCAxMikKKworI2RlZmluZSB0b19hbF9wY2llKHgpCQlkZXZfZ2V0X2RydmRhdGEoKHgpLT5kZXYpCisKK3N0YXRpYyBpbmxpbmUgdTMyIGFsX3BjaWVfY29udHJvbGxlcl9yZWFkbChzdHJ1Y3QgYWxfcGNpZSAqcGNpZSwgdTMyIG9mZnNldCkKK3sKKwlyZXR1cm4gcmVhZGxfcmVsYXhlZChwY2llLT5jb250cm9sbGVyX2Jhc2UgKyBvZmZzZXQpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWxfcGNpZV9jb250cm9sbGVyX3dyaXRlbChzdHJ1Y3QgYWxfcGNpZSAqcGNpZSwgdTMyIG9mZnNldCwKKwkJCQkJICAgICB1MzIgdmFsKQoreworCXdyaXRlbF9yZWxheGVkKHZhbCwgcGNpZS0+Y29udHJvbGxlcl9iYXNlICsgb2Zmc2V0KTsKK30KKworc3RhdGljIGludCBhbF9wY2llX3Jldl9pZF9nZXQoc3RydWN0IGFsX3BjaWUgKnBjaWUsIHVuc2lnbmVkIGludCAqcmV2X2lkKQoreworCXUzMiBkZXZfcmV2X2lkX3ZhbDsKKwl1MzIgZGV2X2lkX3ZhbDsKKworCWRldl9yZXZfaWRfdmFsID0gYWxfcGNpZV9jb250cm9sbGVyX3JlYWRsKHBjaWUsIEFYSV9CQVNFX09GRlNFVCArCisJCQkJCQkgIERFVklDRV9JRF9PRkZTRVQgKworCQkJCQkJICBERVZJQ0VfUkVWX0lEKTsKKwlkZXZfaWRfdmFsID0gRklFTERfR0VUKERFVklDRV9SRVZfSURfREVWX0lEX01BU0ssIGRldl9yZXZfaWRfdmFsKTsKKworCXN3aXRjaCAoZGV2X2lkX3ZhbCkgeworCWNhc2UgREVWSUNFX1JFVl9JRF9ERVZfSURfWDQ6CisJCSpyZXZfaWQgPSBBTF9QQ0lFX1JFVl9JRF8yOworCQlicmVhazsKKwljYXNlIERFVklDRV9SRVZfSURfREVWX0lEX1g4OgorCQkqcmV2X2lkID0gQUxfUENJRV9SRVZfSURfMzsKKwkJYnJlYWs7CisJY2FzZSBERVZJQ0VfUkVWX0lEX0RFVl9JRF9YMTY6CisJCSpyZXZfaWQgPSBBTF9QQ0lFX1JFVl9JRF80OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlkZXZfZXJyKHBjaWUtPmRldiwgIlVuc3VwcG9ydGVkIGRldl9pZF92YWwgKDB4JXgpXG4iLAorCQkJZGV2X2lkX3ZhbCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldl9kYmcocGNpZS0+ZGV2LCAiZGV2X2lkX3ZhbDogMHgleFxuIiwgZGV2X2lkX3ZhbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhbF9wY2llX3JlZ19vZmZzZXRzX3NldChzdHJ1Y3QgYWxfcGNpZSAqcGNpZSkKK3sKKwlzd2l0Y2ggKHBjaWUtPmNvbnRyb2xsZXJfcmV2X2lkKSB7CisJY2FzZSBBTF9QQ0lFX1JFVl9JRF8yOgorCQlwY2llLT5yZWdfb2Zmc2V0cy5vYl9jdHJsID0gT0JfQ1RSTF9SRVYxXzJfT0ZGU0VUOworCQlicmVhazsKKwljYXNlIEFMX1BDSUVfUkVWX0lEXzM6CisJY2FzZSBBTF9QQ0lFX1JFVl9JRF80OgorCQlwY2llLT5yZWdfb2Zmc2V0cy5vYl9jdHJsID0gT0JfQ1RSTF9SRVYzXzVfT0ZGU0VUOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlkZXZfZXJyKHBjaWUtPmRldiwgIlVuc3VwcG9ydGVkIGNvbnRyb2xsZXIgcmV2X2lkOiAweCV4XG4iLAorCQkJcGNpZS0+Y29udHJvbGxlcl9yZXZfaWQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFsX3BjaWVfdGFyZ2V0X2J1c19zZXQoc3RydWN0IGFsX3BjaWUgKnBjaWUsCisJCQkJCSAgdTggdGFyZ2V0X2J1cywKKwkJCQkJICB1OCBtYXNrX3RhcmdldF9idXMpCit7CisJdTMyIHJlZzsKKworCXJlZyA9IEZJRUxEX1BSRVAoQ0ZHX1RBUkdFVF9CVVNfTUFTS19NQVNLLCBtYXNrX3RhcmdldF9idXMpIHwKKwkgICAgICBGSUVMRF9QUkVQKENGR19UQVJHRVRfQlVTX0JVU05VTV9NQVNLLCB0YXJnZXRfYnVzKTsKKworCWFsX3BjaWVfY29udHJvbGxlcl93cml0ZWwocGNpZSwgQVhJX0JBU0VfT0ZGU0VUICsKKwkJCQkgIHBjaWUtPnJlZ19vZmZzZXRzLm9iX2N0cmwgKyBDRkdfVEFSR0VUX0JVUywKKwkJCQkgIHJlZyk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW9tZW0gKmFsX3BjaWVfY29uZl9hZGRyX21hcChzdHJ1Y3QgYWxfcGNpZSAqcGNpZSwKKwkJCQkJICAgdW5zaWduZWQgaW50IGJ1c25yLAorCQkJCQkgICB1bnNpZ25lZCBpbnQgZGV2Zm4pCit7CisJc3RydWN0IGFsX3BjaWVfdGFyZ2V0X2J1c19jZmcgKnRhcmdldF9idXNfY2ZnID0gJnBjaWUtPnRhcmdldF9idXNfY2ZnOworCXVuc2lnbmVkIGludCBidXNucl9lY2FtID0gYnVzbnIgJiB0YXJnZXRfYnVzX2NmZy0+ZWNhbV9tYXNrOworCXVuc2lnbmVkIGludCBidXNucl9yZWcgPSBidXNuciAmIHRhcmdldF9idXNfY2ZnLT5yZWdfbWFzazsKKwlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZwY2llLT5wY2ktPnBwOworCXZvaWQgX19pb21lbSAqcGNpX2Jhc2VfYWRkcjsKKworCXBjaV9iYXNlX2FkZHIgPSAodm9pZCBfX2lvbWVtICopKCh1aW50cHRyX3QpcHAtPnZhX2NmZzBfYmFzZSArCisJCQkJCSAoYnVzbnJfZWNhbSA8PCAyMCkgKworCQkJCQkgUENJRV9FQ0FNX0RFVkZOKGRldmZuKSk7CisKKwlpZiAoYnVzbnJfcmVnICE9IHRhcmdldF9idXNfY2ZnLT5yZWdfdmFsKSB7CisJCWRldl9kYmcocGNpZS0+cGNpLT5kZXYsICJDaGFuZ2luZyB0YXJnZXQgYnVzIGJ1c251bSB2YWwgZnJvbSAweCV4IHRvIDB4JXhcbiIsCisJCQl0YXJnZXRfYnVzX2NmZy0+cmVnX3ZhbCwgYnVzbnJfcmVnKTsKKwkJdGFyZ2V0X2J1c19jZmctPnJlZ192YWwgPSBidXNucl9yZWc7CisJCWFsX3BjaWVfdGFyZ2V0X2J1c19zZXQocGNpZSwKKwkJCQkgICAgICAgdGFyZ2V0X2J1c19jZmctPnJlZ192YWwsCisJCQkJICAgICAgIHRhcmdldF9idXNfY2ZnLT5yZWdfbWFzayk7CisJfQorCisJcmV0dXJuIHBjaV9iYXNlX2FkZHI7Cit9CisKK3N0YXRpYyBpbnQgYWxfcGNpZV9yZF9vdGhlcl9jb25mKHN0cnVjdCBwY2llX3BvcnQgKnBwLCBzdHJ1Y3QgcGNpX2J1cyAqYnVzLAorCQkJCSB1bnNpZ25lZCBpbnQgZGV2Zm4sIGludCB3aGVyZSwgaW50IHNpemUsCisJCQkJIHUzMiAqdmFsKQoreworCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOworCXN0cnVjdCBhbF9wY2llICpwY2llID0gdG9fYWxfcGNpZShwY2kpOworCXVuc2lnbmVkIGludCBidXNuciA9IGJ1cy0+bnVtYmVyOworCXZvaWQgX19pb21lbSAqcGNpX2FkZHI7CisJaW50IHJjOworCisJcGNpX2FkZHIgPSBhbF9wY2llX2NvbmZfYWRkcl9tYXAocGNpZSwgYnVzbnIsIGRldmZuKTsKKworCXJjID0gZHdfcGNpZV9yZWFkKHBjaV9hZGRyICsgd2hlcmUsIHNpemUsIHZhbCk7CisKKwlkZXZfZGJnKHBjaS0+ZGV2LCAiJWQtYnl0ZSBjb25maWcgcmVhZCBmcm9tICUwNHg6JTAyeDolMDJ4LiVkIG9mZnNldCAweCV4IChwY2lfYWRkcjogMHglcHgpIC0gdmFsOjB4JXhcbiIsCisJCXNpemUsIHBjaV9kb21haW5fbnIoYnVzKSwgYnVzLT5udW1iZXIsCisJCVBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLCB3aGVyZSwKKwkJKHBjaV9hZGRyICsgd2hlcmUpLCAqdmFsKTsKKworCXJldHVybiByYzsKK30KKworc3RhdGljIGludCBhbF9wY2llX3dyX290aGVyX2NvbmYoc3RydWN0IHBjaWVfcG9ydCAqcHAsIHN0cnVjdCBwY2lfYnVzICpidXMsCisJCQkJIHVuc2lnbmVkIGludCBkZXZmbiwgaW50IHdoZXJlLCBpbnQgc2l6ZSwKKwkJCQkgdTMyIHZhbCkKK3sKKwlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKKwlzdHJ1Y3QgYWxfcGNpZSAqcGNpZSA9IHRvX2FsX3BjaWUocGNpKTsKKwl1bnNpZ25lZCBpbnQgYnVzbnIgPSBidXMtPm51bWJlcjsKKwl2b2lkIF9faW9tZW0gKnBjaV9hZGRyOworCWludCByYzsKKworCXBjaV9hZGRyID0gYWxfcGNpZV9jb25mX2FkZHJfbWFwKHBjaWUsIGJ1c25yLCBkZXZmbik7CisKKwlyYyA9IGR3X3BjaWVfd3JpdGUocGNpX2FkZHIgKyB3aGVyZSwgc2l6ZSwgdmFsKTsKKworCWRldl9kYmcocGNpLT5kZXYsICIlZC1ieXRlIGNvbmZpZyB3cml0ZSB0byAlMDR4OiUwMng6JTAyeC4lZCBvZmZzZXQgMHgleCAocGNpX2FkZHI6IDB4JXB4KSAtIHZhbDoweCV4XG4iLAorCQlzaXplLCBwY2lfZG9tYWluX25yKGJ1cyksIGJ1cy0+bnVtYmVyLAorCQlQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwgd2hlcmUsCisJCShwY2lfYWRkciArIHdoZXJlKSwgdmFsKTsKKworCXJldHVybiByYzsKK30KKworc3RhdGljIHZvaWQgYWxfcGNpZV9jb25maWdfcHJlcGFyZShzdHJ1Y3QgYWxfcGNpZSAqcGNpZSkKK3sKKwlzdHJ1Y3QgYWxfcGNpZV90YXJnZXRfYnVzX2NmZyAqdGFyZ2V0X2J1c19jZmc7CisJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpZS0+cGNpLT5wcDsKKwl1bnNpZ25lZCBpbnQgZWNhbV9idXNfbWFzazsKKwl1MzIgY2ZnX2NvbnRyb2xfb2Zmc2V0OworCXU4IHN1Ym9yZGluYXRlX2J1czsKKwl1OCBzZWNvbmRhcnlfYnVzOworCXUzMiBjZmdfY29udHJvbDsKKwl1MzIgcmVnOworCisJdGFyZ2V0X2J1c19jZmcgPSAmcGNpZS0+dGFyZ2V0X2J1c19jZmc7CisKKwllY2FtX2J1c19tYXNrID0gKHBjaWUtPmVjYW1fc2l6ZSA+PiAyMCkgLSAxOworCWlmIChlY2FtX2J1c19tYXNrID4gMjU1KSB7CisJCWRldl93YXJuKHBjaWUtPmRldiwgIkVDQU0gd2luZG93IHNpemUgaXMgbGFyZ2VyIHRoYW4gMjU2TUIuIEN1dHRpbmcgb2ZmIGF0IDI1NlxuIik7CisJCWVjYW1fYnVzX21hc2sgPSAyNTU7CisJfQorCisJLyogVGhpcyBwb3J0aW9uIGlzIHRha2VuIGZyb20gdGhlIHRyYW5zYWN0aW9uIGFkZHJlc3MgKi8KKwl0YXJnZXRfYnVzX2NmZy0+ZWNhbV9tYXNrID0gZWNhbV9idXNfbWFzazsKKwkvKiBUaGlzIHBvcnRpb24gaXMgdGFrZW4gZnJvbSB0aGUgY2ZnX3RhcmdldF9idXMgcmVnICovCisJdGFyZ2V0X2J1c19jZmctPnJlZ19tYXNrID0gfnRhcmdldF9idXNfY2ZnLT5lY2FtX21hc2s7CisJdGFyZ2V0X2J1c19jZmctPnJlZ192YWwgPSBwcC0+YnVzbi0+c3RhcnQgJiB0YXJnZXRfYnVzX2NmZy0+cmVnX21hc2s7CisKKwlhbF9wY2llX3RhcmdldF9idXNfc2V0KHBjaWUsIHRhcmdldF9idXNfY2ZnLT5yZWdfdmFsLAorCQkJICAgICAgIHRhcmdldF9idXNfY2ZnLT5yZWdfbWFzayk7CisKKwlzZWNvbmRhcnlfYnVzID0gcHAtPmJ1c24tPnN0YXJ0ICsgMTsKKwlzdWJvcmRpbmF0ZV9idXMgPSBwcC0+YnVzbi0+ZW5kOworCisJLyogU2V0IHRoZSB2YWxpZCB2YWx1ZXMgb2Ygc2Vjb25kYXJ5IGFuZCBzdWJvcmRpbmF0ZSBidXNlcyAqLworCWNmZ19jb250cm9sX29mZnNldCA9IEFYSV9CQVNFX09GRlNFVCArIHBjaWUtPnJlZ19vZmZzZXRzLm9iX2N0cmwgKworCQkJICAgICBDRkdfQ09OVFJPTDsKKworCWNmZ19jb250cm9sID0gYWxfcGNpZV9jb250cm9sbGVyX3JlYWRsKHBjaWUsIGNmZ19jb250cm9sX29mZnNldCk7CisKKwlyZWcgPSBjZmdfY29udHJvbCAmCisJICAgICAgfihDRkdfQ09OVFJPTF9TRUNfQlVTX01BU0sgfCBDRkdfQ09OVFJPTF9TVUJCVVNfTUFTSyk7CisKKwlyZWcgfD0gRklFTERfUFJFUChDRkdfQ09OVFJPTF9TVUJCVVNfTUFTSywgc3Vib3JkaW5hdGVfYnVzKSB8CisJICAgICAgIEZJRUxEX1BSRVAoQ0ZHX0NPTlRST0xfU0VDX0JVU19NQVNLLCBzZWNvbmRhcnlfYnVzKTsKKworCWFsX3BjaWVfY29udHJvbGxlcl93cml0ZWwocGNpZSwgY2ZnX2NvbnRyb2xfb2Zmc2V0LCByZWcpOworfQorCitzdGF0aWMgaW50IGFsX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQoreworCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOworCXN0cnVjdCBhbF9wY2llICpwY2llID0gdG9fYWxfcGNpZShwY2kpOworCWludCByYzsKKworCXJjID0gYWxfcGNpZV9yZXZfaWRfZ2V0KHBjaWUsICZwY2llLT5jb250cm9sbGVyX3Jldl9pZCk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlyYyA9IGFsX3BjaWVfcmVnX29mZnNldHNfc2V0KHBjaWUpOworCWlmIChyYykKKwkJcmV0dXJuIHJjOworCisJYWxfcGNpZV9jb25maWdfcHJlcGFyZShwY2llKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfaG9zdF9vcHMgYWxfcGNpZV9ob3N0X29wcyA9IHsKKwkucmRfb3RoZXJfY29uZiA9IGFsX3BjaWVfcmRfb3RoZXJfY29uZiwKKwkud3Jfb3RoZXJfY29uZiA9IGFsX3BjaWVfd3Jfb3RoZXJfY29uZiwKKwkuaG9zdF9pbml0ID0gYWxfcGNpZV9ob3N0X2luaXQsCit9OworCitzdGF0aWMgaW50IGFsX2FkZF9wY2llX3BvcnQoc3RydWN0IHBjaWVfcG9ydCAqcHAsCisJCQkgICAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCWludCByZXQ7CisKKwlwcC0+b3BzID0gJmFsX3BjaWVfaG9zdF9vcHM7CisKKwlyZXQgPSBkd19wY2llX2hvc3RfaW5pdChwcCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIGhvc3RcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfb3BzIGR3X3BjaWVfb3BzID0geworfTsKKworc3RhdGljIGludCBhbF9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKwlzdHJ1Y3QgcmVzb3VyY2UgKmNvbnRyb2xsZXJfcmVzOworCXN0cnVjdCByZXNvdXJjZSAqZWNhbV9yZXM7CisJc3RydWN0IHJlc291cmNlICpkYmlfcmVzOworCXN0cnVjdCBhbF9wY2llICphbF9wY2llOworCXN0cnVjdCBkd19wY2llICpwY2k7CisKKwlhbF9wY2llID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCphbF9wY2llKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFhbF9wY2llKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXBjaSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcGNpKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwY2kpCisJCXJldHVybiAtRU5PTUVNOworCisJcGNpLT5kZXYgPSBkZXY7CisJcGNpLT5vcHMgPSAmZHdfcGNpZV9vcHM7CisKKwlhbF9wY2llLT5wY2kgPSBwY2k7CisJYWxfcGNpZS0+ZGV2ID0gZGV2OworCisJZGJpX3JlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZV9ieW5hbWUocGRldiwgSU9SRVNPVVJDRV9NRU0sICJkYmkiKTsKKwlwY2ktPmRiaV9iYXNlID0gZGV2bV9wY2lfcmVtYXBfY2ZnX3Jlc291cmNlKGRldiwgZGJpX3Jlcyk7CisJaWYgKElTX0VSUihwY2ktPmRiaV9iYXNlKSkgeworCQlkZXZfZXJyKGRldiwgImNvdWxkbid0IHJlbWFwIGRiaSBiYXNlICVwUlxuIiwgZGJpX3Jlcyk7CisJCXJldHVybiBQVFJfRVJSKHBjaS0+ZGJpX2Jhc2UpOworCX0KKworCWVjYW1fcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShwZGV2LCBJT1JFU09VUkNFX01FTSwgImNvbmZpZyIpOworCWlmICghZWNhbV9yZXMpIHsKKwkJZGV2X2VycihkZXYsICJjb3VsZG4ndCBmaW5kICdjb25maWcnIHJlZyBpbiBEVFxuIik7CisJCXJldHVybiAtRU5PRU5UOworCX0KKwlhbF9wY2llLT5lY2FtX3NpemUgPSByZXNvdXJjZV9zaXplKGVjYW1fcmVzKTsKKworCWNvbnRyb2xsZXJfcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShwZGV2LCBJT1JFU09VUkNFX01FTSwKKwkJCQkJCSAgICAgICJjb250cm9sbGVyIik7CisJYWxfcGNpZS0+Y29udHJvbGxlcl9iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgY29udHJvbGxlcl9yZXMpOworCWlmIChJU19FUlIoYWxfcGNpZS0+Y29udHJvbGxlcl9iYXNlKSkgeworCQlkZXZfZXJyKGRldiwgImNvdWxkbid0IHJlbWFwIGNvbnRyb2xsZXIgYmFzZSAlcFJcbiIsCisJCQljb250cm9sbGVyX3Jlcyk7CisJCXJldHVybiBQVFJfRVJSKGFsX3BjaWUtPmNvbnRyb2xsZXJfYmFzZSk7CisJfQorCisJZGV2X2RiZyhkZXYsICJGcm9tIERUOiBkYmlfYmFzZTogJXBSLCBjb250cm9sbGVyX2Jhc2U6ICVwUlxuIiwKKwkJZGJpX3JlcywgY29udHJvbGxlcl9yZXMpOworCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgYWxfcGNpZSk7CisKKwlyZXR1cm4gYWxfYWRkX3BjaWVfcG9ydCgmcGNpLT5wcCwgcGRldik7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFsX3BjaWVfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImFtYXpvbixhbC1hbHBpbmUtdjItcGNpZSIsCisJfSwKKwl7IC5jb21wYXRpYmxlID0gImFtYXpvbixhbC1hbHBpbmUtdjMtcGNpZSIsCisJfSwKKwl7fSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFsX3BjaWVfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lCT0gImFsLXBjaWUiLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBhbF9wY2llX29mX21hdGNoLAorCQkuc3VwcHJlc3NfYmluZF9hdHRycyA9IHRydWUsCisJfSwKKwkucHJvYmUgPSBhbF9wY2llX3Byb2JlLAorfTsKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGFsX3BjaWVfZHJpdmVyKTsKKworI2VuZGlmIC8qIENPTkZJR19QQ0lFX0FMKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJtYWRhOGsuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJtYWRhOGsuYwppbmRleCAzZDU1ZGM3Li40OTU5NjU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFybWFkYThrLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hcm1hZGE4ay5jCkBAIC0xMTgsMTEgKzExOCwxMCBAQCBzdGF0aWMgaW50IGFybWFkYThrX3BjaWVfc2V0dXBfcGh5cyhzdHJ1Y3QgYXJtYWRhOGtfcGNpZSAqcGNpZSkKIAogCWZvciAoaSA9IDA7IGkgPCBBUk1BREE4S19QQ0lFX01BWF9MQU5FUzsgaSsrKSB7CiAJCXBjaWUtPnBoeVtpXSA9IGRldm1fb2ZfcGh5X2dldF9ieV9pbmRleChkZXYsIG5vZGUsIGkpOwotCQlpZiAoSVNfRVJSKHBjaWUtPnBoeVtpXSkgJiYKLQkJICAgIChQVFJfRVJSKHBjaWUtPnBoeVtpXSkgPT0gLUVQUk9CRV9ERUZFUikpCi0JCQlyZXR1cm4gUFRSX0VSUihwY2llLT5waHlbaV0pOwotCiAJCWlmIChJU19FUlIocGNpZS0+cGh5W2ldKSkgeworCQkJaWYgKFBUUl9FUlIocGNpZS0+cGh5W2ldKSAhPSAtRU5PREVWKQorCQkJCXJldHVybiBQVFJfRVJSKHBjaWUtPnBoeVtpXSk7CisKIAkJCXBjaWUtPnBoeVtpXSA9IE5VTEw7CiAJCQljb250aW51ZTsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLWVwLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtZXAuYwppbmRleCAyYmY1YTM1Li4zZGQyZTI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtZXAuYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtZXAuYwpAQCAtNDAsMzkgKzQwLDYgQEAgdm9pZCBkd19wY2llX2VwX3Jlc2V0X2JhcihzdHJ1Y3QgZHdfcGNpZSAqcGNpLCBlbnVtIHBjaV9iYXJubyBiYXIpCiAJX19kd19wY2llX2VwX3Jlc2V0X2JhcihwY2ksIGJhciwgMCk7CiB9CiAKLXN0YXRpYyB1OCBfX2R3X3BjaWVfZXBfZmluZF9uZXh0X2NhcChzdHJ1Y3QgZHdfcGNpZSAqcGNpLCB1OCBjYXBfcHRyLAotCQkJICAgICAgdTggY2FwKQotewotCXU4IGNhcF9pZCwgbmV4dF9jYXBfcHRyOwotCXUxNiByZWc7Ci0KLQlpZiAoIWNhcF9wdHIpCi0JCXJldHVybiAwOwotCi0JcmVnID0gZHdfcGNpZV9yZWFkd19kYmkocGNpLCBjYXBfcHRyKTsKLQljYXBfaWQgPSAocmVnICYgMHgwMGZmKTsKLQotCWlmIChjYXBfaWQgPiBQQ0lfQ0FQX0lEX01BWCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoY2FwX2lkID09IGNhcCkKLQkJcmV0dXJuIGNhcF9wdHI7Ci0KLQluZXh0X2NhcF9wdHIgPSAocmVnICYgMHhmZjAwKSA+PiA4OwotCXJldHVybiBfX2R3X3BjaWVfZXBfZmluZF9uZXh0X2NhcChwY2ksIG5leHRfY2FwX3B0ciwgY2FwKTsKLX0KLQotc3RhdGljIHU4IGR3X3BjaWVfZXBfZmluZF9jYXBhYmlsaXR5KHN0cnVjdCBkd19wY2llICpwY2ksIHU4IGNhcCkKLXsKLQl1OCBuZXh0X2NhcF9wdHI7Ci0JdTE2IHJlZzsKLQotCXJlZyA9IGR3X3BjaWVfcmVhZHdfZGJpKHBjaSwgUENJX0NBUEFCSUxJVFlfTElTVCk7Ci0JbmV4dF9jYXBfcHRyID0gKHJlZyAmIDB4MDBmZik7Ci0KLQlyZXR1cm4gX19kd19wY2llX2VwX2ZpbmRfbmV4dF9jYXAocGNpLCBuZXh0X2NhcF9wdHIsIGNhcCk7Ci19Ci0KIHN0YXRpYyBpbnQgZHdfcGNpZV9lcF93cml0ZV9oZWFkZXIoc3RydWN0IHBjaV9lcGMgKmVwYywgdTggZnVuY19ubywKIAkJCQkgICBzdHJ1Y3QgcGNpX2VwZl9oZWFkZXIgKmhkcikKIHsKQEAgLTUzMSw2ICs0OTgsNyBAQCBpbnQgZHdfcGNpZV9lcF9pbml0KHN0cnVjdCBkd19wY2llX2VwICplcCkKIAlpbnQgcmV0OwogCXUzMiByZWc7CiAJdm9pZCAqYWRkcjsKKwl1OCBoZHJfdHlwZTsKIAl1bnNpZ25lZCBpbnQgbmJhcnM7CiAJdW5zaWduZWQgaW50IG9mZnNldDsKIAlzdHJ1Y3QgcGNpX2VwYyAqZXBjOwpAQCAtNTk1LDYgKzU2MywxMyBAQCBpbnQgZHdfcGNpZV9lcF9pbml0KHN0cnVjdCBkd19wY2llX2VwICplcCkKIAlpZiAoZXAtPm9wcy0+ZXBfaW5pdCkKIAkJZXAtPm9wcy0+ZXBfaW5pdChlcCk7CiAKKwloZHJfdHlwZSA9IGR3X3BjaWVfcmVhZGJfZGJpKHBjaSwgUENJX0hFQURFUl9UWVBFKTsKKwlpZiAoaGRyX3R5cGUgIT0gUENJX0hFQURFUl9UWVBFX05PUk1BTCkgeworCQlkZXZfZXJyKHBjaS0+ZGV2LCAiUENJZSBjb250cm9sbGVyIGlzIG5vdCBzZXQgdG8gRVAgbW9kZSAoaGRyX3R5cGU6MHgleCkhXG4iLAorCQkJaGRyX3R5cGUpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKIAlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3U4KG5wLCAibWF4LWZ1bmN0aW9ucyIsICZlcGMtPm1heF9mdW5jdGlvbnMpOwogCWlmIChyZXQgPCAwKQogCQllcGMtPm1heF9mdW5jdGlvbnMgPSAxOwpAQCAtNjEyLDkgKzU4Nyw5IEBAIGludCBkd19wY2llX2VwX2luaXQoc3RydWN0IGR3X3BjaWVfZXAgKmVwKQogCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byByZXNlcnZlIG1lbW9yeSBmb3IgTVNJL01TSS1YXG4iKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCWVwLT5tc2lfY2FwID0gZHdfcGNpZV9lcF9maW5kX2NhcGFiaWxpdHkocGNpLCBQQ0lfQ0FQX0lEX01TSSk7CisJZXAtPm1zaV9jYXAgPSBkd19wY2llX2ZpbmRfY2FwYWJpbGl0eShwY2ksIFBDSV9DQVBfSURfTVNJKTsKIAotCWVwLT5tc2l4X2NhcCA9IGR3X3BjaWVfZXBfZmluZF9jYXBhYmlsaXR5KHBjaSwgUENJX0NBUF9JRF9NU0lYKTsKKwllcC0+bXNpeF9jYXAgPSBkd19wY2llX2ZpbmRfY2FwYWJpbGl0eShwY2ksIFBDSV9DQVBfSURfTVNJWCk7CiAKIAlvZmZzZXQgPSBkd19wY2llX2VwX2ZpbmRfZXh0X2NhcGFiaWxpdHkocGNpLCBQQ0lfRVhUX0NBUF9JRF9SRUJBUik7CiAJaWYgKG9mZnNldCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLWhvc3QuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0LmMKaW5kZXggZjkzMjUyZC4uMGYzNmE5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLWhvc3QuYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jCkBAIC0zMjMsNiArMzIzLDcgQEAgaW50IGR3X3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQogCXN0cnVjdCBwY2lfYnVzICpjaGlsZDsKIAlzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2U7CiAJc3RydWN0IHJlc291cmNlICpjZmdfcmVzOworCXUzMiBoZHJfdHlwZTsKIAlpbnQgcmV0OwogCiAJcmF3X3NwaW5fbG9ja19pbml0KCZwY2ktPnBwLmxvY2spOwpAQCAtNDY0LDYgKzQ2NSwyMSBAQCBpbnQgZHdfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCiAJCQlnb3RvIGVycl9mcmVlX21zaTsKIAl9CiAKKwlyZXQgPSBkd19wY2llX3JkX293bl9jb25mKHBwLCBQQ0lfSEVBREVSX1RZUEUsIDEsICZoZHJfdHlwZSk7CisJaWYgKHJldCAhPSBQQ0lCSU9TX1NVQ0NFU1NGVUwpIHsKKwkJZGV2X2VycihwY2ktPmRldiwgIkZhaWxlZCByZWFkaW5nIFBDSV9IRUFERVJfVFlQRSBjZmcgc3BhY2UgcmVnIChyZXQ6IDB4JXgpXG4iLAorCQkJcmV0KTsKKwkJcmV0ID0gcGNpYmlvc19lcnJfdG9fZXJybm8ocmV0KTsKKwkJZ290byBlcnJfZnJlZV9tc2k7CisJfQorCWlmIChoZHJfdHlwZSAhPSBQQ0lfSEVBREVSX1RZUEVfQlJJREdFKSB7CisJCWRldl9lcnIocGNpLT5kZXYsCisJCQkiUENJZSBjb250cm9sbGVyIGlzIG5vdCBzZXQgdG8gYnJpZGdlIHR5cGUgKGhkcl90eXBlOiAweCV4KSFcbiIsCisJCQloZHJfdHlwZSk7CisJCXJldCA9IC1FSU87CisJCWdvdG8gZXJyX2ZyZWVfbXNpOworCX0KKwogCXBwLT5yb290X2J1c19uciA9IHBwLT5idXNuLT5zdGFydDsKIAogCWJyaWRnZS0+ZGV2LnBhcmVudCA9IGRldjsKQEAgLTYyOCw2ICs2NDQsMTIgQEAgdm9pZCBkd19wY2llX3NldHVwX3JjKHN0cnVjdCBwY2llX3BvcnQgKnBwKQogCXUzMiB2YWwsIGN0cmwsIG51bV9jdHJsczsKIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKIAorCS8qCisJICogRW5hYmxlIERCSSByZWFkLW9ubHkgcmVnaXN0ZXJzIGZvciB3cml0aW5nL3VwZGF0aW5nIGNvbmZpZ3VyYXRpb24uCisJICogV3JpdGUgcGVybWlzc2lvbiBnZXRzIGRpc2FibGVkIHRvd2FyZHMgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uLgorCSAqLworCWR3X3BjaWVfZGJpX3JvX3dyX2VuKHBjaSk7CisKIAlkd19wY2llX3NldHVwKHBjaSk7CiAKIAlpZiAoIXBwLT5vcHMtPm1zaV9ob3N0X2luaXQpIHsKQEAgLTY1MCwxMiArNjcyLDEwIEBAIHZvaWQgZHdfcGNpZV9zZXR1cF9yYyhzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKIAlkd19wY2llX3dyaXRlbF9kYmkocGNpLCBQQ0lfQkFTRV9BRERSRVNTXzEsIDB4MDAwMDAwMDApOwogCiAJLyogU2V0dXAgaW50ZXJydXB0IHBpbnMgKi8KLQlkd19wY2llX2RiaV9yb193cl9lbihwY2kpOwogCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUENJX0lOVEVSUlVQVF9MSU5FKTsKIAl2YWwgJj0gMHhmZmZmMDBmZjsKIAl2YWwgfD0gMHgwMDAwMDEwMDsKIAlkd19wY2llX3dyaXRlbF9kYmkocGNpLCBQQ0lfSU5URVJSVVBUX0xJTkUsIHZhbCk7Ci0JZHdfcGNpZV9kYmlfcm9fd3JfZGlzKHBjaSk7CiAKIAkvKiBTZXR1cCBidXMgbnVtYmVycyAqLwogCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUENJX1BSSU1BUllfQlVTKTsKQEAgLTY4NywxNSArNzA3LDEzIEBAIHZvaWQgZHdfcGNpZV9zZXR1cF9yYyhzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKIAogCWR3X3BjaWVfd3Jfb3duX2NvbmYocHAsIFBDSV9CQVNFX0FERFJFU1NfMCwgNCwgMCk7CiAKLQkvKiBFbmFibGUgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhlIERCSSByZWFkLW9ubHkgcmVnaXN0ZXIgKi8KLQlkd19wY2llX2RiaV9yb193cl9lbihwY2kpOwogCS8qIFByb2dyYW0gY29ycmVjdCBjbGFzcyBmb3IgUkMgKi8KIAlkd19wY2llX3dyX293bl9jb25mKHBwLCBQQ0lfQ0xBU1NfREVWSUNFLCAyLCBQQ0lfQ0xBU1NfQlJJREdFX1BDSSk7Ci0JLyogQmV0dGVyIGRpc2FibGUgd3JpdGUgcGVybWlzc2lvbiByaWdodCBhZnRlciB0aGUgdXBkYXRlICovCi0JZHdfcGNpZV9kYmlfcm9fd3JfZGlzKHBjaSk7CiAKIAlkd19wY2llX3JkX293bl9jb25mKHBwLCBQQ0lFX0xJTktfV0lEVEhfU1BFRURfQ09OVFJPTCwgNCwgJnZhbCk7CiAJdmFsIHw9IFBPUlRfTE9HSUNfU1BFRURfQ0hBTkdFOwogCWR3X3BjaWVfd3Jfb3duX2NvbmYocHAsIFBDSUVfTElOS19XSURUSF9TUEVFRF9DT05UUk9MLCA0LCB2YWwpOworCisJZHdfcGNpZV9kYmlfcm9fd3JfZGlzKHBjaSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChkd19wY2llX3NldHVwX3JjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmMKaW5kZXggN2QyNTEwMi4uODIwNDg4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmMKQEAgLTE0LDYgKzE0LDg2IEBACiAKICNpbmNsdWRlICJwY2llLWRlc2lnbndhcmUuaCIKIAorLyoKKyAqIFRoZXNlIGludGVyZmFjZXMgcmVzZW1ibGUgdGhlIHBjaV9maW5kXypjYXBhYmlsaXR5KCkgaW50ZXJmYWNlcywgYnV0IHRoZXNlCisgKiBhcmUgZm9yIGNvbmZpZ3VyaW5nIGhvc3QgY29udHJvbGxlcnMsIHdoaWNoIGFyZSBicmlkZ2VzICp0byogUENJIGRldmljZXMgYnV0CisgKiBhcmUgbm90IFBDSSBkZXZpY2VzIHRoZW1zZWx2ZXMuCisgKi8KK3N0YXRpYyB1OCBfX2R3X3BjaWVfZmluZF9uZXh0X2NhcChzdHJ1Y3QgZHdfcGNpZSAqcGNpLCB1OCBjYXBfcHRyLAorCQkJCSAgdTggY2FwKQoreworCXU4IGNhcF9pZCwgbmV4dF9jYXBfcHRyOworCXUxNiByZWc7CisKKwlpZiAoIWNhcF9wdHIpCisJCXJldHVybiAwOworCisJcmVnID0gZHdfcGNpZV9yZWFkd19kYmkocGNpLCBjYXBfcHRyKTsKKwljYXBfaWQgPSAocmVnICYgMHgwMGZmKTsKKworCWlmIChjYXBfaWQgPiBQQ0lfQ0FQX0lEX01BWCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoY2FwX2lkID09IGNhcCkKKwkJcmV0dXJuIGNhcF9wdHI7CisKKwluZXh0X2NhcF9wdHIgPSAocmVnICYgMHhmZjAwKSA+PiA4OworCXJldHVybiBfX2R3X3BjaWVfZmluZF9uZXh0X2NhcChwY2ksIG5leHRfY2FwX3B0ciwgY2FwKTsKK30KKwordTggZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkoc3RydWN0IGR3X3BjaWUgKnBjaSwgdTggY2FwKQoreworCXU4IG5leHRfY2FwX3B0cjsKKwl1MTYgcmVnOworCisJcmVnID0gZHdfcGNpZV9yZWFkd19kYmkocGNpLCBQQ0lfQ0FQQUJJTElUWV9MSVNUKTsKKwluZXh0X2NhcF9wdHIgPSAocmVnICYgMHgwMGZmKTsKKworCXJldHVybiBfX2R3X3BjaWVfZmluZF9uZXh0X2NhcChwY2ksIG5leHRfY2FwX3B0ciwgY2FwKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGR3X3BjaWVfZmluZF9jYXBhYmlsaXR5KTsKKworc3RhdGljIHUxNiBkd19wY2llX2ZpbmRfbmV4dF9leHRfY2FwYWJpbGl0eShzdHJ1Y3QgZHdfcGNpZSAqcGNpLCB1MTYgc3RhcnQsCisJCQkJCSAgICB1OCBjYXApCit7CisJdTMyIGhlYWRlcjsKKwlpbnQgdHRsOworCWludCBwb3MgPSBQQ0lfQ0ZHX1NQQUNFX1NJWkU7CisKKwkvKiBtaW5pbXVtIDggYnl0ZXMgcGVyIGNhcGFiaWxpdHkgKi8KKwl0dGwgPSAoUENJX0NGR19TUEFDRV9FWFBfU0laRSAtIFBDSV9DRkdfU1BBQ0VfU0laRSkgLyA4OworCisJaWYgKHN0YXJ0KQorCQlwb3MgPSBzdGFydDsKKworCWhlYWRlciA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgcG9zKTsKKwkvKgorCSAqIElmIHdlIGhhdmUgbm8gY2FwYWJpbGl0aWVzLCB0aGlzIGlzIGluZGljYXRlZCBieSBjYXAgSUQsCisJICogY2FwIHZlcnNpb24gYW5kIG5leHQgcG9pbnRlciBhbGwgYmVpbmcgMC4KKwkgKi8KKwlpZiAoaGVhZGVyID09IDApCisJCXJldHVybiAwOworCisJd2hpbGUgKHR0bC0tID4gMCkgeworCQlpZiAoUENJX0VYVF9DQVBfSUQoaGVhZGVyKSA9PSBjYXAgJiYgcG9zICE9IHN0YXJ0KQorCQkJcmV0dXJuIHBvczsKKworCQlwb3MgPSBQQ0lfRVhUX0NBUF9ORVhUKGhlYWRlcik7CisJCWlmIChwb3MgPCBQQ0lfQ0ZHX1NQQUNFX1NJWkUpCisJCQlicmVhazsKKworCQloZWFkZXIgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIHBvcyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3UxNiBkd19wY2llX2ZpbmRfZXh0X2NhcGFiaWxpdHkoc3RydWN0IGR3X3BjaWUgKnBjaSwgdTggY2FwKQoreworCXJldHVybiBkd19wY2llX2ZpbmRfbmV4dF9leHRfY2FwYWJpbGl0eShwY2ksIDAsIGNhcCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChkd19wY2llX2ZpbmRfZXh0X2NhcGFiaWxpdHkpOworCiBpbnQgZHdfcGNpZV9yZWFkKHZvaWQgX19pb21lbSAqYWRkciwgaW50IHNpemUsIHUzMiAqdmFsKQogewogCWlmICghSVNfQUxJR05FRCgodWludHB0cl90KWFkZHIsIHNpemUpKSB7CkBAIC0zNzYsMTAgKzQ1NiwxMSBAQCBpbnQgZHdfcGNpZV93YWl0X2Zvcl9saW5rKHN0cnVjdCBkd19wY2llICpwY2kpCiAJCXVzbGVlcF9yYW5nZShMSU5LX1dBSVRfVVNMRUVQX01JTiwgTElOS19XQUlUX1VTTEVFUF9NQVgpOwogCX0KIAotCWRldl9lcnIocGNpLT5kZXYsICJQaHkgbGluayBuZXZlciBjYW1lIHVwXG4iKTsKKwlkZXZfaW5mbyhwY2ktPmRldiwgIlBoeSBsaW5rIG5ldmVyIGNhbWUgdXBcbiIpOwogCiAJcmV0dXJuIC1FVElNRURPVVQ7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChkd19wY2llX3dhaXRfZm9yX2xpbmspOwogCiBpbnQgZHdfcGNpZV9saW5rX3VwKHN0cnVjdCBkd19wY2llICpwY2kpCiB7CkBAIC00MjMsOCArNTA0LDEwIEBAIHZvaWQgZHdfcGNpZV9zZXR1cChzdHJ1Y3QgZHdfcGNpZSAqcGNpKQogCiAKIAlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgIm51bS1sYW5lcyIsICZsYW5lcyk7Ci0JaWYgKHJldCkKLQkJbGFuZXMgPSAwOworCWlmIChyZXQpIHsKKwkJZGV2X2RiZyhwY2ktPmRldiwgInByb3BlcnR5IG51bS1sYW5lcyBpc24ndCBmb3VuZFxuIik7CisJCXJldHVybjsKKwl9CiAKIAkvKiBTZXQgdGhlIG51bWJlciBvZiBsYW5lcyAqLwogCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUENJRV9QT1JUX0xJTktfQ09OVFJPTCk7CkBAIC00NjYsNCArNTQ5LDExIEBAIHZvaWQgZHdfcGNpZV9zZXR1cChzdHJ1Y3QgZHdfcGNpZSAqcGNpKQogCQlicmVhazsKIAl9CiAJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgUENJRV9MSU5LX1dJRFRIX1NQRUVEX0NPTlRST0wsIHZhbCk7CisKKwlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5wLCAic25wcyxlbmFibGUtY2RtLWNoZWNrIikpIHsKKwkJdmFsID0gZHdfcGNpZV9yZWFkbF9kYmkocGNpLCBQQ0lFX1BMX0NIS19SRUdfQ09OVFJPTF9TVEFUVVMpOworCQl2YWwgfD0gUENJRV9QTF9DSEtfUkVHX0NIS19SRUdfQ09OVElOVU9VUyB8CisJCSAgICAgICBQQ0lFX1BMX0NIS19SRUdfQ0hLX1JFR19TVEFSVDsKKwkJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgUENJRV9QTF9DSEtfUkVHX0NPTlRST0xfU1RBVFVTLCB2YWwpOworCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS5oIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmgKaW5kZXggZmZlZDA4NC4uNWExOGU5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmgKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmgKQEAgLTg2LDYgKzg2LDE1IEBACiAjZGVmaW5lIFBDSUVfTUlTQ19DT05UUk9MXzFfT0ZGCQkweDhCQwogI2RlZmluZSBQQ0lFX0RCSV9ST19XUl9FTgkJQklUKDApCiAKKyNkZWZpbmUgUENJRV9QTF9DSEtfUkVHX0NPTlRST0xfU1RBVFVTCQkJMHhCMjAKKyNkZWZpbmUgUENJRV9QTF9DSEtfUkVHX0NIS19SRUdfU1RBUlQJCQlCSVQoMCkKKyNkZWZpbmUgUENJRV9QTF9DSEtfUkVHX0NIS19SRUdfQ09OVElOVU9VUwkJQklUKDEpCisjZGVmaW5lIFBDSUVfUExfQ0hLX1JFR19DSEtfUkVHX0NPTVBBUklTT05fRVJST1IJQklUKDE2KQorI2RlZmluZSBQQ0lFX1BMX0NIS19SRUdfQ0hLX1JFR19MT0dJQ19FUlJPUgkJQklUKDE3KQorI2RlZmluZSBQQ0lFX1BMX0NIS19SRUdfQ0hLX1JFR19DT01QTEVURQkJQklUKDE4KQorCisjZGVmaW5lIFBDSUVfUExfQ0hLX1JFR19FUlJfQUREUgkJCTB4QjI4CisKIC8qCiAgKiBpQVRVIFVucm9sbC1zcGVjaWZpYyByZWdpc3RlciBkZWZpbml0aW9ucwogICogRnJvbSA0LjgwIGNvcmUgdmVyc2lvbiB0aGUgYWRkcmVzcyB0cmFuc2xhdGlvbiB3aWxsIGJlIG1hZGUgYnkgdW5yb2xsCkBAIC0yNTEsNiArMjYwLDkgQEAgc3RydWN0IGR3X3BjaWUgewogI2RlZmluZSB0b19kd19wY2llX2Zyb21fZXAoZW5kcG9pbnQpICAgXAogCQljb250YWluZXJfb2YoKGVuZHBvaW50KSwgc3RydWN0IGR3X3BjaWUsIGVwKQogCit1OCBkd19wY2llX2ZpbmRfY2FwYWJpbGl0eShzdHJ1Y3QgZHdfcGNpZSAqcGNpLCB1OCBjYXApOwordTE2IGR3X3BjaWVfZmluZF9leHRfY2FwYWJpbGl0eShzdHJ1Y3QgZHdfcGNpZSAqcGNpLCB1OCBjYXApOworCiBpbnQgZHdfcGNpZV9yZWFkKHZvaWQgX19pb21lbSAqYWRkciwgaW50IHNpemUsIHUzMiAqdmFsKTsKIGludCBkd19wY2llX3dyaXRlKHZvaWQgX19pb21lbSAqYWRkciwgaW50IHNpemUsIHUzMiB2YWwpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc3RiLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc3RiLmMKaW5kZXggOTU0YmMyYjcuLjgxMWI1YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzdGIuYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc3RiLmMKQEAgLTM0MCw4ICszNDAsOCBAQCBzdGF0aWMgaW50IGhpc3RiX3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWhpcGNpZS0+dnBjaWUgPSBkZXZtX3JlZ3VsYXRvcl9nZXRfb3B0aW9uYWwoZGV2LCAidnBjaWUiKTsKIAlpZiAoSVNfRVJSKGhpcGNpZS0+dnBjaWUpKSB7Ci0JCWlmIChQVFJfRVJSKGhpcGNpZS0+dnBjaWUpID09IC1FUFJPQkVfREVGRVIpCi0JCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKKwkJaWYgKFBUUl9FUlIoaGlwY2llLT52cGNpZSkgIT0gLUVOT0RFVikKKwkJCXJldHVybiBQVFJfRVJSKGhpcGNpZS0+dnBjaWUpOwogCQloaXBjaWUtPnZwY2llID0gTlVMTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUta2lyaW4uYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUta2lyaW4uYwppbmRleCA4ZGYxOTE0Li5jMTk2MTdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWtpcmluLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1raXJpbi5jCkBAIC00MzYsNyArNDM2LDcgQEAgc3RhdGljIGludCBraXJpbl9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBkd19wY2llX29wcyBraXJpbl9kd19wY2llX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHdfcGNpZV9vcHMga2lyaW5fZHdfcGNpZV9vcHMgPSB7CiAJLnJlYWRfZGJpID0ga2lyaW5fcGNpZV9yZWFkX2RiaSwKIAkud3JpdGVfZGJpID0ga2lyaW5fcGNpZV93cml0ZV9kYmksCiAJLmxpbmtfdXAgPSBraXJpbl9wY2llX2xpbmtfdXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg5ZjVhYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdGVncmExOTQuYwpAQCAtMCwwICsxLDE3MzIgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIFBDSWUgaG9zdCBjb250cm9sbGVyIGRyaXZlciBmb3IgVGVncmExOTQgU29DCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE5IE5WSURJQSBDb3Jwb3JhdGlvbi4KKyAqCisgKiBBdXRob3I6IFZpZHlhIFNhZ2FyIDx2aWR5YXNAbnZpZGlhLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9sbC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZ3Bpby5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KKyNpbmNsdWRlIDxsaW51eC9waW5jdHJsL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CisjaW5jbHVkZSA8bGludXgvcmVzb3VyY2UuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgInBjaWUtZGVzaWdud2FyZS5oIgorI2luY2x1ZGUgPHNvYy90ZWdyYS9icG1wLmg+CisjaW5jbHVkZSA8c29jL3RlZ3JhL2JwbXAtYWJpLmg+CisjaW5jbHVkZSAiLi4vLi4vcGNpLmgiCisKKyNkZWZpbmUgQVBQTF9QSU5NVVgJCQkJMHgwCisjZGVmaW5lIEFQUExfUElOTVVYX1BFWF9SU1QJCQlCSVQoMCkKKyNkZWZpbmUgQVBQTF9QSU5NVVhfQ0xLUkVRX09WRVJSSURFX0VOCQlCSVQoMikKKyNkZWZpbmUgQVBQTF9QSU5NVVhfQ0xLUkVRX09WRVJSSURFCQlCSVQoMykKKyNkZWZpbmUgQVBQTF9QSU5NVVhfQ0xLX09VVFBVVF9JTl9PVkVSUklERV9FTglCSVQoNCkKKyNkZWZpbmUgQVBQTF9QSU5NVVhfQ0xLX09VVFBVVF9JTl9PVkVSUklERQlCSVQoNSkKKyNkZWZpbmUgQVBQTF9QSU5NVVhfQ0xLUkVRX09VVF9PVlJEX0VOCQlCSVQoOSkKKyNkZWZpbmUgQVBQTF9QSU5NVVhfQ0xLUkVRX09VVF9PVlJECQlCSVQoMTApCisKKyNkZWZpbmUgQVBQTF9DVFJMCQkJCTB4NAorI2RlZmluZSBBUFBMX0NUUkxfU1lTX1BSRV9ERVRfU1RBVEUJCUJJVCg2KQorI2RlZmluZSBBUFBMX0NUUkxfTFRTU01fRU4JCQlCSVQoNykKKyNkZWZpbmUgQVBQTF9DVFJMX0hXX0hPVF9SU1RfRU4JCQlCSVQoMjApCisjZGVmaW5lIEFQUExfQ1RSTF9IV19IT1RfUlNUX01PREVfTUFTSwkJR0VOTUFTSygxLCAwKQorI2RlZmluZSBBUFBMX0NUUkxfSFdfSE9UX1JTVF9NT0RFX1NISUZUCQkyMgorI2RlZmluZSBBUFBMX0NUUkxfSFdfSE9UX1JTVF9NT0RFX0lNRFRfUlNUCTB4MQorCisjZGVmaW5lIEFQUExfSU5UUl9FTl9MMF8wCQkJMHg4CisjZGVmaW5lIEFQUExfSU5UUl9FTl9MMF8wX0xJTktfU1RBVEVfSU5UX0VOCUJJVCgwKQorI2RlZmluZSBBUFBMX0lOVFJfRU5fTDBfMF9NU0lfUkNWX0lOVF9FTglCSVQoNCkKKyNkZWZpbmUgQVBQTF9JTlRSX0VOX0wwXzBfSU5UX0lOVF9FTgkJQklUKDgpCisjZGVmaW5lIEFQUExfSU5UUl9FTl9MMF8wX0NETV9SRUdfQ0hLX0lOVF9FTglCSVQoMTkpCisjZGVmaW5lIEFQUExfSU5UUl9FTl9MMF8wX1NZU19JTlRSX0VOCQlCSVQoMzApCisjZGVmaW5lIEFQUExfSU5UUl9FTl9MMF8wX1NZU19NU0lfSU5UUl9FTglCSVQoMzEpCisKKyNkZWZpbmUgQVBQTF9JTlRSX1NUQVRVU19MMAkJCTB4QworI2RlZmluZSBBUFBMX0lOVFJfU1RBVFVTX0wwX0xJTktfU1RBVEVfSU5UCUJJVCgwKQorI2RlZmluZSBBUFBMX0lOVFJfU1RBVFVTX0wwX0lOVF9JTlQJCUJJVCg4KQorI2RlZmluZSBBUFBMX0lOVFJfU1RBVFVTX0wwX0NETV9SRUdfQ0hLX0lOVAlCSVQoMTgpCisKKyNkZWZpbmUgQVBQTF9JTlRSX0VOX0wxXzBfMAkJCQkweDFDCisjZGVmaW5lIEFQUExfSU5UUl9FTl9MMV8wXzBfTElOS19SRVFfUlNUX05PVF9JTlRfRU4JQklUKDEpCisKKyNkZWZpbmUgQVBQTF9JTlRSX1NUQVRVU19MMV8wXzAJCQkJMHgyMAorI2RlZmluZSBBUFBMX0lOVFJfU1RBVFVTX0wxXzBfMF9MSU5LX1JFUV9SU1RfTk9UX0NIR0VECUJJVCgxKQorCisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfMQkJCTB4MkMKKyNkZWZpbmUgQVBQTF9JTlRSX1NUQVRVU19MMV8yCQkJMHgzMAorI2RlZmluZSBBUFBMX0lOVFJfU1RBVFVTX0wxXzMJCQkweDM0CisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfNgkJCTB4M0MKKyNkZWZpbmUgQVBQTF9JTlRSX1NUQVRVU19MMV83CQkJMHg0MAorCisjZGVmaW5lIEFQUExfSU5UUl9FTl9MMV84XzAJCQkweDQ0CisjZGVmaW5lIEFQUExfSU5UUl9FTl9MMV84X0JXX01HVF9JTlRfRU4JCUJJVCgyKQorI2RlZmluZSBBUFBMX0lOVFJfRU5fTDFfOF9BVVRPX0JXX0lOVF9FTglCSVQoMykKKyNkZWZpbmUgQVBQTF9JTlRSX0VOX0wxXzhfSU5UWF9FTgkJQklUKDExKQorI2RlZmluZSBBUFBMX0lOVFJfRU5fTDFfOF9BRVJfSU5UX0VOCQlCSVQoMTUpCisKKyNkZWZpbmUgQVBQTF9JTlRSX1NUQVRVU19MMV84XzAJCQkweDRDCisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfOF8wX0VETUFfSU5UX01BU0sJR0VOTUFTSygxMSwgNikKKyNkZWZpbmUgQVBQTF9JTlRSX1NUQVRVU19MMV84XzBfQldfTUdUX0lOVF9TVFMJQklUKDIpCisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfOF8wX0FVVE9fQldfSU5UX1NUUwlCSVQoMykKKworI2RlZmluZSBBUFBMX0lOVFJfU1RBVFVTX0wxXzkJCQkweDU0CisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfMTAJCQkweDU4CisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfMTEJCQkweDY0CisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfMTMJCQkweDc0CisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfMTQJCQkweDc4CisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfMTUJCQkweDdDCisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfMTcJCQkweDg4CisKKyNkZWZpbmUgQVBQTF9JTlRSX0VOX0wxXzE4CQkJCTB4OTAKKyNkZWZpbmUgQVBQTF9JTlRSX0VOX0wxXzE4X0NETV9SRUdfQ0hLX0NNUExUCQlCSVQoMikKKyNkZWZpbmUgQVBQTF9JTlRSX0VOX0wxXzE4X0NETV9SRUdfQ0hLX0NNUF9FUlIJCUJJVCgxKQorI2RlZmluZSBBUFBMX0lOVFJfRU5fTDFfMThfQ0RNX1JFR19DSEtfTE9HSUNfRVJSCUJJVCgwKQorCisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfMTgJCQkJMHg5NAorI2RlZmluZSBBUFBMX0lOVFJfU1RBVFVTX0wxXzE4X0NETV9SRUdfQ0hLX0NNUExUCUJJVCgyKQorI2RlZmluZSBBUFBMX0lOVFJfU1RBVFVTX0wxXzE4X0NETV9SRUdfQ0hLX0NNUF9FUlIJQklUKDEpCisjZGVmaW5lIEFQUExfSU5UUl9TVEFUVVNfTDFfMThfQ0RNX1JFR19DSEtfTE9HSUNfRVJSCUJJVCgwKQorCisjZGVmaW5lIEFQUExfTVNJX0NUUkxfMgkJCQkweEIwCisKKyNkZWZpbmUgQVBQTF9MVFJfTVNHXzEJCQkJMHhDNAorI2RlZmluZSBMVFJfTVNHX1JFUQkJCQlCSVQoMTUpCisjZGVmaW5lIExUUl9NU1RfTk9fU05PT1BfU0hJRlQJCQkxNgorCisjZGVmaW5lIEFQUExfTFRSX01TR18yCQkJCTB4QzgKKyNkZWZpbmUgQVBQTF9MVFJfTVNHXzJfTFRSX01TR19SRVFfU1RBVEUJQklUKDMpCisKKyNkZWZpbmUgQVBQTF9MSU5LX1NUQVRVUwkJCTB4Q0MKKyNkZWZpbmUgQVBQTF9MSU5LX1NUQVRVU19SRExIX0xJTktfVVAJCUJJVCgwKQorCisjZGVmaW5lIEFQUExfREVCVUcJCQkJMHhEMAorI2RlZmluZSBBUFBMX0RFQlVHX1BNX0xJTktTVF9JTl9MMl9MQVQJCUJJVCgyMSkKKyNkZWZpbmUgQVBQTF9ERUJVR19QTV9MSU5LU1RfSU5fTDAJCTB4MTEKKyNkZWZpbmUgQVBQTF9ERUJVR19MVFNTTV9TVEFURV9NQVNLCQlHRU5NQVNLKDgsIDMpCisjZGVmaW5lIEFQUExfREVCVUdfTFRTU01fU1RBVEVfU0hJRlQJCTMKKyNkZWZpbmUgTFRTU01fU1RBVEVfUFJFX0RFVEVDVAkJCTUKKworI2RlZmluZSBBUFBMX1JBRE1fU1RBVFVTCQkJMHhFNAorI2RlZmluZSBBUFBMX1BNX1hNVF9UVVJOT0ZGX1NUQVRFCQlCSVQoMCkKKworI2RlZmluZSBBUFBMX0RNX1RZUEUJCQkJMHgxMDAKKyNkZWZpbmUgQVBQTF9ETV9UWVBFX01BU0sJCQlHRU5NQVNLKDMsIDApCisjZGVmaW5lIEFQUExfRE1fVFlQRV9SUAkJCQkweDQKKyNkZWZpbmUgQVBQTF9ETV9UWVBFX0VQCQkJCTB4MAorCisjZGVmaW5lIEFQUExfQ0ZHX0JBU0VfQUREUgkJCTB4MTA0CisjZGVmaW5lIEFQUExfQ0ZHX0JBU0VfQUREUl9NQVNLCQkJR0VOTUFTSygzMSwgMTIpCisKKyNkZWZpbmUgQVBQTF9DRkdfSUFUVV9ETUFfQkFTRV9BRERSCQkweDEwOAorI2RlZmluZSBBUFBMX0NGR19JQVRVX0RNQV9CQVNFX0FERFJfTUFTSwlHRU5NQVNLKDMxLCAxOCkKKworI2RlZmluZSBBUFBMX0NGR19NSVNDCQkJCTB4MTEwCisjZGVmaW5lIEFQUExfQ0ZHX01JU0NfU0xWX0VQX01PREUJCUJJVCgxNCkKKyNkZWZpbmUgQVBQTF9DRkdfTUlTQ19BUkNBQ0hFX01BU0sJCUdFTk1BU0soMTMsIDEwKQorI2RlZmluZSBBUFBMX0NGR19NSVNDX0FSQ0FDSEVfU0hJRlQJCTEwCisjZGVmaW5lIEFQUExfQ0ZHX01JU0NfQVJDQUNIRV9WQUwJCTMKKworI2RlZmluZSBBUFBMX0NGR19TTENHX09WRVJSSURFCQkJMHgxMTQKKyNkZWZpbmUgQVBQTF9DRkdfU0xDR19PVkVSUklERV9TTENHX0VOX01BU1RFUglCSVQoMCkKKworI2RlZmluZSBBUFBMX0NBUl9SRVNFVF9PVlJECQkJCTB4MTJDCisjZGVmaW5lIEFQUExfQ0FSX1JFU0VUX09WUkRfQ1lBX09WRVJSSURFX0NPUkVfUlNUX04JQklUKDApCisKKyNkZWZpbmUgSU9fQkFTRV9JT19ERUNPREUJCQkJQklUKDApCisjZGVmaW5lIElPX0JBU0VfSU9fREVDT0RFX0JJVDgJCQkJQklUKDgpCisKKyNkZWZpbmUgQ0ZHX1BSRUZfTUVNX0xJTUlUX0JBU0VfTUVNX0RFQ09ERQkJQklUKDApCisjZGVmaW5lIENGR19QUkVGX01FTV9MSU1JVF9CQVNFX01FTV9MSU1JVF9ERUNPREUJQklUKDE2KQorCisjZGVmaW5lIENGR19USU1FUl9DVFJMX01BWF9GVU5DX05VTV9PRkYJMHg3MTgKKyNkZWZpbmUgQ0ZHX1RJTUVSX0NUUkxfQUNLX05BS19TSElGVAkoMTkpCisKKyNkZWZpbmUgRVZFTlRfQ09VTlRFUl9BTExfQ0xFQVIJCTB4MworI2RlZmluZSBFVkVOVF9DT1VOVEVSX0VOQUJMRV9BTEwJMHg3CisjZGVmaW5lIEVWRU5UX0NPVU5URVJfRU5BQkxFX1NISUZUCTIKKyNkZWZpbmUgRVZFTlRfQ09VTlRFUl9FVkVOVF9TRUxfTUFTSwlHRU5NQVNLKDcsIDApCisjZGVmaW5lIEVWRU5UX0NPVU5URVJfRVZFTlRfU0VMX1NISUZUCTE2CisjZGVmaW5lIEVWRU5UX0NPVU5URVJfRVZFTlRfVHhfTDBTCTB4MgorI2RlZmluZSBFVkVOVF9DT1VOVEVSX0VWRU5UX1J4X0wwUwkweDMKKyNkZWZpbmUgRVZFTlRfQ09VTlRFUl9FVkVOVF9MMQkJMHg1CisjZGVmaW5lIEVWRU5UX0NPVU5URVJfRVZFTlRfTDFfMQkweDcKKyNkZWZpbmUgRVZFTlRfQ09VTlRFUl9FVkVOVF9MMV8yCTB4OAorI2RlZmluZSBFVkVOVF9DT1VOVEVSX0dST1VQX1NFTF9TSElGVAkyNAorI2RlZmluZSBFVkVOVF9DT1VOVEVSX0dST1VQXzUJCTB4NQorCisjZGVmaW5lIFBPUlRfTE9HSUNfQUNLX0ZfQVNQTV9DVFJMCQkJMHg3MEMKKyNkZWZpbmUgRU5URVJfQVNQTQkJCQkJQklUKDMwKQorI2RlZmluZSBMMFNfRU5UUkFOQ0VfTEFUX1NISUZUCQkJCTI0CisjZGVmaW5lIEwwU19FTlRSQU5DRV9MQVRfTUFTSwkJCQlHRU5NQVNLKDI2LCAyNCkKKyNkZWZpbmUgTDFfRU5UUkFOQ0VfTEFUX1NISUZUCQkJCTI3CisjZGVmaW5lIEwxX0VOVFJBTkNFX0xBVF9NQVNLCQkJCUdFTk1BU0soMjksIDI3KQorI2RlZmluZSBOX0ZUU19TSElGVAkJCQkJOAorI2RlZmluZSBOX0ZUU19NQVNLCQkJCQlHRU5NQVNLKDcsIDApCisjZGVmaW5lIE5fRlRTX1ZBTAkJCQkJNTIKKworI2RlZmluZSBQT1JUX0xPR0lDX0dFTjJfQ1RSTAkJCQkweDgwQworI2RlZmluZSBQT1JUX0xPR0lDX0dFTjJfQ1RSTF9ESVJFQ1RfU1BFRURfQ0hBTkdFCUJJVCgxNykKKyNkZWZpbmUgRlRTX01BU0sJCQkJCUdFTk1BU0soNywgMCkKKyNkZWZpbmUgRlRTX1ZBTAkJCQkJCTUyCisKKyNkZWZpbmUgUE9SVF9MT0dJQ19NU0lfQ1RSTF9JTlRfMF9FTgkJMHg4MjgKKworI2RlZmluZSBHRU4zX0VRX0NPTlRST0xfT0ZGCQkJMHg4YTgKKyNkZWZpbmUgR0VOM19FUV9DT05UUk9MX09GRl9QU0VUX1JFUV9WRUNfU0hJRlQJOAorI2RlZmluZSBHRU4zX0VRX0NPTlRST0xfT0ZGX1BTRVRfUkVRX1ZFQ19NQVNLCUdFTk1BU0soMjMsIDgpCisjZGVmaW5lIEdFTjNfRVFfQ09OVFJPTF9PRkZfRkJfTU9ERV9NQVNLCUdFTk1BU0soMywgMCkKKworI2RlZmluZSBHRU4zX1JFTEFURURfT0ZGCQkJMHg4OTAKKyNkZWZpbmUgR0VOM19SRUxBVEVEX09GRl9HRU4zX1pSWERDX05PTkNPTVBMCUJJVCgwKQorI2RlZmluZSBHRU4zX1JFTEFURURfT0ZGX0dFTjNfRVFfRElTQUJMRQlCSVQoMTYpCisjZGVmaW5lIEdFTjNfUkVMQVRFRF9PRkZfUkFURV9TSEFET1dfU0VMX1NISUZUCTI0CisjZGVmaW5lIEdFTjNfUkVMQVRFRF9PRkZfUkFURV9TSEFET1dfU0VMX01BU0sJR0VOTUFTSygyNSwgMjQpCisKKyNkZWZpbmUgUE9SVF9MT0dJQ19BTUJBX0VSUk9SX1JFU1BPTlNFX0RFRkFVTFQJMHg4RDAKKyNkZWZpbmUgQU1CQV9FUlJPUl9SRVNQT05TRV9DUlNfU0hJRlQJCTMKKyNkZWZpbmUgQU1CQV9FUlJPUl9SRVNQT05TRV9DUlNfTUFTSwkJR0VOTUFTSygxLCAwKQorI2RlZmluZSBBTUJBX0VSUk9SX1JFU1BPTlNFX0NSU19PS0FZCQkwCisjZGVmaW5lIEFNQkFfRVJST1JfUkVTUE9OU0VfQ1JTX09LQVlfRkZGRkZGRkYJMQorI2RlZmluZSBBTUJBX0VSUk9SX1JFU1BPTlNFX0NSU19PS0FZX0ZGRkYwMDAxCTIKKworI2RlZmluZSBQT1JUX0xPR0lDX01TSVhfRE9PUkJFTEwJCQkweDk0OAorCisjZGVmaW5lIENBUF9TUENJRV9DQVBfT0ZGCQkJMHgxNTQKKyNkZWZpbmUgQ0FQX1NQQ0lFX0NBUF9PRkZfRFNQX1RYX1BSRVNFVDBfTUFTSwlHRU5NQVNLKDMsIDApCisjZGVmaW5lIENBUF9TUENJRV9DQVBfT0ZGX1VTUF9UWF9QUkVTRVQwX01BU0sJR0VOTUFTSygxMSwgOCkKKyNkZWZpbmUgQ0FQX1NQQ0lFX0NBUF9PRkZfVVNQX1RYX1BSRVNFVDBfU0hJRlQJOAorCisjZGVmaW5lIFBNRV9BQ0tfVElNRU9VVCAxMDAwMAorCisjZGVmaW5lIExUU1NNX1RJTUVPVVQgNTAwMDAJLyogNTBtcyAqLworCisjZGVmaW5lIEdFTjNfR0VONF9FUV9QUkVTRVRfSU5JVAk1CisKKyNkZWZpbmUgR0VOMV9DT1JFX0NMS19GUkVRCTYyNTAwMDAwCisjZGVmaW5lIEdFTjJfQ09SRV9DTEtfRlJFUQkxMjUwMDAwMDAKKyNkZWZpbmUgR0VOM19DT1JFX0NMS19GUkVRCTI1MDAwMDAwMAorI2RlZmluZSBHRU40X0NPUkVfQ0xLX0ZSRVEJNTAwMDAwMDAwCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgcGNpZV9nZW5fZnJlcVtdID0geworCUdFTjFfQ09SRV9DTEtfRlJFUSwKKwlHRU4yX0NPUkVfQ0xLX0ZSRVEsCisJR0VOM19DT1JFX0NMS19GUkVRLAorCUdFTjRfQ09SRV9DTEtfRlJFUQorfTsKKworc3RhdGljIGNvbnN0IHUzMiBldmVudF9jbnRyX2N0cmxfb2Zmc2V0W10gPSB7CisJMHgxZDgsCisJMHgxYTgsCisJMHgxYTgsCisJMHgxYTgsCisJMHgxYzQsCisJMHgxZDgKK307CisKK3N0YXRpYyBjb25zdCB1MzIgZXZlbnRfY250cl9kYXRhX29mZnNldFtdID0geworCTB4MWRjLAorCTB4MWFjLAorCTB4MWFjLAorCTB4MWFjLAorCTB4MWM4LAorCTB4MWRjCit9OworCitzdHJ1Y3QgdGVncmFfcGNpZV9kdyB7CisJc3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCByZXNvdXJjZSAqYXBwbF9yZXM7CisJc3RydWN0IHJlc291cmNlICpkYmlfcmVzOworCXN0cnVjdCByZXNvdXJjZSAqYXR1X2RtYV9yZXM7CisJdm9pZCBfX2lvbWVtICphcHBsX2Jhc2U7CisJc3RydWN0IGNsayAqY29yZV9jbGs7CisJc3RydWN0IHJlc2V0X2NvbnRyb2wgKmNvcmVfYXBiX3JzdDsKKwlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqY29yZV9yc3Q7CisJc3RydWN0IGR3X3BjaWUgcGNpOworCXN0cnVjdCB0ZWdyYV9icG1wICpicG1wOworCisJYm9vbCBzdXBwb3J0c19jbGtyZXE7CisJYm9vbCBlbmFibGVfY2RtX2NoZWNrOworCWJvb2wgbGlua19zdGF0ZTsKKwlib29sIHVwZGF0ZV9mY19maXh1cDsKKwl1OCBpbml0X2xpbmtfd2lkdGg7CisJdTMyIG1zaV9jdHJsX2ludDsKKwl1MzIgbnVtX2xhbmVzOworCXUzMiBtYXhfc3BlZWQ7CisJdTMyIGNpZDsKKwl1MzIgY2ZnX2xpbmtfY2FwX2wxc3ViOworCXUzMiBwY2llX2NhcF9iYXNlOworCXUzMiBhc3BtX2NtcnQ7CisJdTMyIGFzcG1fcHdyX29uX3Q7CisJdTMyIGFzcG1fbDBzX2VudGVyX2xhdDsKKworCXN0cnVjdCByZWd1bGF0b3IgKnBleF9jdGxfc3VwcGx5OworCXN0cnVjdCByZWd1bGF0b3IgKnNsb3RfY3RsXzN2MzsKKwlzdHJ1Y3QgcmVndWxhdG9yICpzbG90X2N0bF8xMnY7CisKKwl1bnNpZ25lZCBpbnQgcGh5X2NvdW50OworCXN0cnVjdCBwaHkgKipwaHlzOworCisJc3RydWN0IGRlbnRyeSAqZGVidWdmczsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnRvX3RlZ3JhX3BjaWUoc3RydWN0IGR3X3BjaWUgKnBjaSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHBjaSwgc3RydWN0IHRlZ3JhX3BjaWVfZHcsIHBjaSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcHBsX3dyaXRlbChzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSwgY29uc3QgdTMyIHZhbHVlLAorCQkJICAgICAgIGNvbnN0IHUzMiByZWcpCit7CisJd3JpdGVsX3JlbGF4ZWQodmFsdWUsIHBjaWUtPmFwcGxfYmFzZSArIHJlZyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTMyIGFwcGxfcmVhZGwoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUsIGNvbnN0IHUzMiByZWcpCit7CisJcmV0dXJuIHJlYWRsX3JlbGF4ZWQocGNpZS0+YXBwbF9iYXNlICsgcmVnKTsKK30KKworc3RydWN0IHRlZ3JhX3BjaWVfc29jIHsKKwllbnVtIGR3X3BjaWVfZGV2aWNlX21vZGUgbW9kZTsKK307CisKK3N0YXRpYyB2b2lkIGFwcGx5X2JhZF9saW5rX3dvcmthcm91bmQoc3RydWN0IHBjaWVfcG9ydCAqcHApCit7CisJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7CisJc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUgPSB0b190ZWdyYV9wY2llKHBjaSk7CisJdTMyIGN1cnJlbnRfbGlua193aWR0aDsKKwl1MTYgdmFsOworCisJLyoKKwkgKiBOT1RFOi0gU2luY2UgdGhpcyBzY2VuYXJpbyBpcyB1bmNvbW1vbiBhbmQgbGluayBhcyBzdWNoIGlzIG5vdAorCSAqIHN0YWJsZSBhbnl3YXksIG5vdCB3YWl0aW5nIHRvIGNvbmZpcm0gaWYgbGluayBpcyByZWFsbHkKKwkgKiB0cmFuc2l0aW9uaW5nIHRvIEdlbi0yIHNwZWVkCisJICovCisJdmFsID0gZHdfcGNpZV9yZWFkd19kYmkocGNpLCBwY2llLT5wY2llX2NhcF9iYXNlICsgUENJX0VYUF9MTktTVEEpOworCWlmICh2YWwgJiBQQ0lfRVhQX0xOS1NUQV9MQk1TKSB7CisJCWN1cnJlbnRfbGlua193aWR0aCA9ICh2YWwgJiBQQ0lfRVhQX0xOS1NUQV9OTFcpID4+CisJCQkJICAgICBQQ0lfRVhQX0xOS1NUQV9OTFdfU0hJRlQ7CisJCWlmIChwY2llLT5pbml0X2xpbmtfd2lkdGggPiBjdXJyZW50X2xpbmtfd2lkdGgpIHsKKwkJCWRldl93YXJuKHBjaS0+ZGV2LCAiUENJZSBsaW5rIGlzIGJhZCwgd2lkdGggcmVkdWNlZFxuIik7CisJCQl2YWwgPSBkd19wY2llX3JlYWR3X2RiaShwY2ksIHBjaWUtPnBjaWVfY2FwX2Jhc2UgKworCQkJCQkJUENJX0VYUF9MTktDVEwyKTsKKwkJCXZhbCAmPSB+UENJX0VYUF9MTktDVEwyX1RMUzsKKwkJCXZhbCB8PSBQQ0lfRVhQX0xOS0NUTDJfVExTXzJfNUdUOworCQkJZHdfcGNpZV93cml0ZXdfZGJpKHBjaSwgcGNpZS0+cGNpZV9jYXBfYmFzZSArCisJCQkJCSAgIFBDSV9FWFBfTE5LQ1RMMiwgdmFsKTsKKworCQkJdmFsID0gZHdfcGNpZV9yZWFkd19kYmkocGNpLCBwY2llLT5wY2llX2NhcF9iYXNlICsKKwkJCQkJCVBDSV9FWFBfTE5LQ1RMKTsKKwkJCXZhbCB8PSBQQ0lfRVhQX0xOS0NUTF9STDsKKwkJCWR3X3BjaWVfd3JpdGV3X2RiaShwY2ksIHBjaWUtPnBjaWVfY2FwX2Jhc2UgKworCQkJCQkgICBQQ0lfRVhQX0xOS0NUTCwgdmFsKTsKKwkJfQorCX0KK30KKworc3RhdGljIGlycXJldHVybl90IHRlZ3JhX3BjaWVfcnBfaXJxX2hhbmRsZXIoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpCit7CisJc3RydWN0IGR3X3BjaWUgKnBjaSA9ICZwY2llLT5wY2k7CisJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKKwl1MzIgdmFsLCB0bXA7CisJdTE2IHZhbF93OworCisJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0lOVFJfU1RBVFVTX0wwKTsKKwlpZiAodmFsICYgQVBQTF9JTlRSX1NUQVRVU19MMF9MSU5LX1NUQVRFX0lOVCkgeworCQl2YWwgPSBhcHBsX3JlYWRsKHBjaWUsIEFQUExfSU5UUl9TVEFUVVNfTDFfMF8wKTsKKwkJaWYgKHZhbCAmIEFQUExfSU5UUl9TVEFUVVNfTDFfMF8wX0xJTktfUkVRX1JTVF9OT1RfQ0hHRUQpIHsKKwkJCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9JTlRSX1NUQVRVU19MMV8wXzApOworCisJCQkvKiBTQlIgJiBTdXJwcmlzZSBMaW5rIERvd24gV0FSICovCisJCQl2YWwgPSBhcHBsX3JlYWRsKHBjaWUsIEFQUExfQ0FSX1JFU0VUX09WUkQpOworCQkJdmFsICY9IH5BUFBMX0NBUl9SRVNFVF9PVlJEX0NZQV9PVkVSUklERV9DT1JFX1JTVF9OOworCQkJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0NBUl9SRVNFVF9PVlJEKTsKKwkJCXVkZWxheSgxKTsKKwkJCXZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9DQVJfUkVTRVRfT1ZSRCk7CisJCQl2YWwgfD0gQVBQTF9DQVJfUkVTRVRfT1ZSRF9DWUFfT1ZFUlJJREVfQ09SRV9SU1RfTjsKKwkJCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9DQVJfUkVTRVRfT1ZSRCk7CisKKwkJCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUE9SVF9MT0dJQ19HRU4yX0NUUkwpOworCQkJdmFsIHw9IFBPUlRfTE9HSUNfR0VOMl9DVFJMX0RJUkVDVF9TUEVFRF9DSEFOR0U7CisJCQlkd19wY2llX3dyaXRlbF9kYmkocGNpLCBQT1JUX0xPR0lDX0dFTjJfQ1RSTCwgdmFsKTsKKwkJfQorCX0KKworCWlmICh2YWwgJiBBUFBMX0lOVFJfU1RBVFVTX0wwX0lOVF9JTlQpIHsKKwkJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0lOVFJfU1RBVFVTX0wxXzhfMCk7CisJCWlmICh2YWwgJiBBUFBMX0lOVFJfU1RBVFVTX0wxXzhfMF9BVVRPX0JXX0lOVF9TVFMpIHsKKwkJCWFwcGxfd3JpdGVsKHBjaWUsCisJCQkJICAgIEFQUExfSU5UUl9TVEFUVVNfTDFfOF8wX0FVVE9fQldfSU5UX1NUUywKKwkJCQkgICAgQVBQTF9JTlRSX1NUQVRVU19MMV84XzApOworCQkJYXBwbHlfYmFkX2xpbmtfd29ya2Fyb3VuZChwcCk7CisJCX0KKwkJaWYgKHZhbCAmIEFQUExfSU5UUl9TVEFUVVNfTDFfOF8wX0JXX01HVF9JTlRfU1RTKSB7CisJCQlhcHBsX3dyaXRlbChwY2llLAorCQkJCSAgICBBUFBMX0lOVFJfU1RBVFVTX0wxXzhfMF9CV19NR1RfSU5UX1NUUywKKwkJCQkgICAgQVBQTF9JTlRSX1NUQVRVU19MMV84XzApOworCisJCQl2YWxfdyA9IGR3X3BjaWVfcmVhZHdfZGJpKHBjaSwgcGNpZS0+cGNpZV9jYXBfYmFzZSArCisJCQkJCQkgIFBDSV9FWFBfTE5LU1RBKTsKKwkJCWRldl9kYmcocGNpLT5kZXYsICJMaW5rIFNwZWVkIDogR2VuLSV1XG4iLCB2YWxfdyAmCisJCQkJUENJX0VYUF9MTktTVEFfQ0xTKTsKKwkJfQorCX0KKworCXZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9JTlRSX1NUQVRVU19MMCk7CisJaWYgKHZhbCAmIEFQUExfSU5UUl9TVEFUVVNfTDBfQ0RNX1JFR19DSEtfSU5UKSB7CisJCXZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9JTlRSX1NUQVRVU19MMV8xOCk7CisJCXRtcCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUENJRV9QTF9DSEtfUkVHX0NPTlRST0xfU1RBVFVTKTsKKwkJaWYgKHZhbCAmIEFQUExfSU5UUl9TVEFUVVNfTDFfMThfQ0RNX1JFR19DSEtfQ01QTFQpIHsKKwkJCWRldl9pbmZvKHBjaS0+ZGV2LCAiQ0RNIGNoZWNrIGNvbXBsZXRlXG4iKTsKKwkJCXRtcCB8PSBQQ0lFX1BMX0NIS19SRUdfQ0hLX1JFR19DT01QTEVURTsKKwkJfQorCQlpZiAodmFsICYgQVBQTF9JTlRSX1NUQVRVU19MMV8xOF9DRE1fUkVHX0NIS19DTVBfRVJSKSB7CisJCQlkZXZfZXJyKHBjaS0+ZGV2LCAiQ0RNIGNvbXBhcmlzb24gbWlzbWF0Y2hcbiIpOworCQkJdG1wIHw9IFBDSUVfUExfQ0hLX1JFR19DSEtfUkVHX0NPTVBBUklTT05fRVJST1I7CisJCX0KKwkJaWYgKHZhbCAmIEFQUExfSU5UUl9TVEFUVVNfTDFfMThfQ0RNX1JFR19DSEtfTE9HSUNfRVJSKSB7CisJCQlkZXZfZXJyKHBjaS0+ZGV2LCAiQ0RNIExvZ2ljIGVycm9yXG4iKTsKKwkJCXRtcCB8PSBQQ0lFX1BMX0NIS19SRUdfQ0hLX1JFR19MT0dJQ19FUlJPUjsKKwkJfQorCQlkd19wY2llX3dyaXRlbF9kYmkocGNpLCBQQ0lFX1BMX0NIS19SRUdfQ09OVFJPTF9TVEFUVVMsIHRtcCk7CisJCXRtcCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUENJRV9QTF9DSEtfUkVHX0VSUl9BRERSKTsKKwkJZGV2X2VycihwY2ktPmRldiwgIkNETSBFcnJvciBBZGRyZXNzIE9mZnNldCA9IDB4JTA4WFxuIiwgdG1wKTsKKwl9CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCB0ZWdyYV9wY2llX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSA9IGFyZzsKKworCXJldHVybiB0ZWdyYV9wY2llX3JwX2lycV9oYW5kbGVyKHBjaWUpOworfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfZHdfcmRfb3duX2NvbmYoc3RydWN0IHBjaWVfcG9ydCAqcHAsIGludCB3aGVyZSwgaW50IHNpemUsCisJCQkJICAgICB1MzIgKnZhbCkKK3sKKwlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKKworCS8qCisJICogVGhpcyBpcyBhbiBlbmRwb2ludCBtb2RlIHNwZWNpZmljIHJlZ2lzdGVyIGhhcHBlbiB0byBhcHBlYXIgZXZlbgorCSAqIHdoZW4gY29udHJvbGxlciBpcyBvcGVyYXRpbmcgaW4gcm9vdCBwb3J0IG1vZGUgYW5kIHN5c3RlbSBoYW5ncworCSAqIHdoZW4gaXQgaXMgYWNjZXNzZWQgd2l0aCBsaW5rIGJlaW5nIGluIEFTUE0tTDEgc3RhdGUuCisJICogU28gc2tpcCBhY2Nlc3NpbmcgaXQgYWx0b2dldGhlcgorCSAqLworCWlmICh3aGVyZSA9PSBQT1JUX0xPR0lDX01TSVhfRE9PUkJFTEwpIHsKKwkJKnZhbCA9IDB4MDAwMDAwMDA7CisJCXJldHVybiBQQ0lCSU9TX1NVQ0NFU1NGVUw7CisJfQorCisJcmV0dXJuIGR3X3BjaWVfcmVhZChwY2ktPmRiaV9iYXNlICsgd2hlcmUsIHNpemUsIHZhbCk7Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcGNpZV9kd193cl9vd25fY29uZihzdHJ1Y3QgcGNpZV9wb3J0ICpwcCwgaW50IHdoZXJlLCBpbnQgc2l6ZSwKKwkJCQkgICAgIHUzMiB2YWwpCit7CisJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7CisKKwkvKgorCSAqIFRoaXMgaXMgYW4gZW5kcG9pbnQgbW9kZSBzcGVjaWZpYyByZWdpc3RlciBoYXBwZW4gdG8gYXBwZWFyIGV2ZW4KKwkgKiB3aGVuIGNvbnRyb2xsZXIgaXMgb3BlcmF0aW5nIGluIHJvb3QgcG9ydCBtb2RlIGFuZCBzeXN0ZW0gaGFuZ3MKKwkgKiB3aGVuIGl0IGlzIGFjY2Vzc2VkIHdpdGggbGluayBiZWluZyBpbiBBU1BNLUwxIHN0YXRlLgorCSAqIFNvIHNraXAgYWNjZXNzaW5nIGl0IGFsdG9nZXRoZXIKKwkgKi8KKwlpZiAod2hlcmUgPT0gUE9SVF9MT0dJQ19NU0lYX0RPT1JCRUxMKQorCQlyZXR1cm4gUENJQklPU19TVUNDRVNTRlVMOworCisJcmV0dXJuIGR3X3BjaWVfd3JpdGUocGNpLT5kYmlfYmFzZSArIHdoZXJlLCBzaXplLCB2YWwpOworfQorCisjaWYgZGVmaW5lZChDT05GSUdfUENJRUFTUE0pCitzdGF0aWMgdm9pZCBkaXNhYmxlX2FzcG1fbDExKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQoreworCXUzMiB2YWw7CisKKwl2YWwgPSBkd19wY2llX3JlYWRsX2RiaSgmcGNpZS0+cGNpLCBwY2llLT5jZmdfbGlua19jYXBfbDFzdWIpOworCXZhbCAmPSB+UENJX0wxU1NfQ0FQX0FTUE1fTDFfMTsKKwlkd19wY2llX3dyaXRlbF9kYmkoJnBjaWUtPnBjaSwgcGNpZS0+Y2ZnX2xpbmtfY2FwX2wxc3ViLCB2YWwpOworfQorCitzdGF0aWMgdm9pZCBkaXNhYmxlX2FzcG1fbDEyKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQoreworCXUzMiB2YWw7CisKKwl2YWwgPSBkd19wY2llX3JlYWRsX2RiaSgmcGNpZS0+cGNpLCBwY2llLT5jZmdfbGlua19jYXBfbDFzdWIpOworCXZhbCAmPSB+UENJX0wxU1NfQ0FQX0FTUE1fTDFfMjsKKwlkd19wY2llX3dyaXRlbF9kYmkoJnBjaWUtPnBjaSwgcGNpZS0+Y2ZnX2xpbmtfY2FwX2wxc3ViLCB2YWwpOworfQorCitzdGF0aWMgaW5saW5lIHUzMiBldmVudF9jb3VudGVyX3Byb2coc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUsIHUzMiBldmVudCkKK3sKKwl1MzIgdmFsOworCisJdmFsID0gZHdfcGNpZV9yZWFkbF9kYmkoJnBjaWUtPnBjaSwgZXZlbnRfY250cl9jdHJsX29mZnNldFtwY2llLT5jaWRdKTsKKwl2YWwgJj0gfihFVkVOVF9DT1VOVEVSX0VWRU5UX1NFTF9NQVNLIDw8IEVWRU5UX0NPVU5URVJfRVZFTlRfU0VMX1NISUZUKTsKKwl2YWwgfD0gRVZFTlRfQ09VTlRFUl9HUk9VUF81IDw8IEVWRU5UX0NPVU5URVJfR1JPVVBfU0VMX1NISUZUOworCXZhbCB8PSBldmVudCA8PCBFVkVOVF9DT1VOVEVSX0VWRU5UX1NFTF9TSElGVDsKKwl2YWwgfD0gRVZFTlRfQ09VTlRFUl9FTkFCTEVfQUxMIDw8IEVWRU5UX0NPVU5URVJfRU5BQkxFX1NISUZUOworCWR3X3BjaWVfd3JpdGVsX2RiaSgmcGNpZS0+cGNpLCBldmVudF9jbnRyX2N0cmxfb2Zmc2V0W3BjaWUtPmNpZF0sIHZhbCk7CisJdmFsID0gZHdfcGNpZV9yZWFkbF9kYmkoJnBjaWUtPnBjaSwgZXZlbnRfY250cl9kYXRhX29mZnNldFtwY2llLT5jaWRdKTsKKworCXJldHVybiB2YWw7Cit9CisKK3N0YXRpYyBpbnQgYXNwbV9zdGF0ZV9jbnQoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llID0gKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICopCisJCQkJICAgICBkZXZfZ2V0X2RydmRhdGEocy0+cHJpdmF0ZSk7CisJdTMyIHZhbDsKKworCXNlcV9wcmludGYocywgIlR4IEwwcyBlbnRyeSBjb3VudCA6ICV1XG4iLAorCQkgICBldmVudF9jb3VudGVyX3Byb2cocGNpZSwgRVZFTlRfQ09VTlRFUl9FVkVOVF9UeF9MMFMpKTsKKworCXNlcV9wcmludGYocywgIlJ4IEwwcyBlbnRyeSBjb3VudCA6ICV1XG4iLAorCQkgICBldmVudF9jb3VudGVyX3Byb2cocGNpZSwgRVZFTlRfQ09VTlRFUl9FVkVOVF9SeF9MMFMpKTsKKworCXNlcV9wcmludGYocywgIkxpbmsgTDEgZW50cnkgY291bnQgOiAldVxuIiwKKwkJICAgZXZlbnRfY291bnRlcl9wcm9nKHBjaWUsIEVWRU5UX0NPVU5URVJfRVZFTlRfTDEpKTsKKworCXNlcV9wcmludGYocywgIkxpbmsgTDEuMSBlbnRyeSBjb3VudCA6ICV1XG4iLAorCQkgICBldmVudF9jb3VudGVyX3Byb2cocGNpZSwgRVZFTlRfQ09VTlRFUl9FVkVOVF9MMV8xKSk7CisKKwlzZXFfcHJpbnRmKHMsICJMaW5rIEwxLjIgZW50cnkgY291bnQgOiAldVxuIiwKKwkJICAgZXZlbnRfY291bnRlcl9wcm9nKHBjaWUsIEVWRU5UX0NPVU5URVJfRVZFTlRfTDFfMikpOworCisJLyogQ2xlYXIgYWxsIGNvdW50ZXJzICovCisJZHdfcGNpZV93cml0ZWxfZGJpKCZwY2llLT5wY2ksIGV2ZW50X2NudHJfY3RybF9vZmZzZXRbcGNpZS0+Y2lkXSwKKwkJCSAgIEVWRU5UX0NPVU5URVJfQUxMX0NMRUFSKTsKKworCS8qIFJlLWVuYWJsZSBjb3VudGluZyAqLworCXZhbCA9IEVWRU5UX0NPVU5URVJfRU5BQkxFX0FMTCA8PCBFVkVOVF9DT1VOVEVSX0VOQUJMRV9TSElGVDsKKwl2YWwgfD0gRVZFTlRfQ09VTlRFUl9HUk9VUF81IDw8IEVWRU5UX0NPVU5URVJfR1JPVVBfU0VMX1NISUZUOworCWR3X3BjaWVfd3JpdGVsX2RiaSgmcGNpZS0+cGNpLCBldmVudF9jbnRyX2N0cmxfb2Zmc2V0W3BjaWUtPmNpZF0sIHZhbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaW5pdF9ob3N0X2FzcG0oc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpCit7CisJc3RydWN0IGR3X3BjaWUgKnBjaSA9ICZwY2llLT5wY2k7CisJdTMyIHZhbDsKKworCXZhbCA9IGR3X3BjaWVfZmluZF9leHRfY2FwYWJpbGl0eShwY2ksIFBDSV9FWFRfQ0FQX0lEX0wxU1MpOworCXBjaWUtPmNmZ19saW5rX2NhcF9sMXN1YiA9IHZhbCArIFBDSV9MMVNTX0NBUDsKKworCS8qIEVuYWJsZSBBU1BNIGNvdW50ZXJzICovCisJdmFsID0gRVZFTlRfQ09VTlRFUl9FTkFCTEVfQUxMIDw8IEVWRU5UX0NPVU5URVJfRU5BQkxFX1NISUZUOworCXZhbCB8PSBFVkVOVF9DT1VOVEVSX0dST1VQXzUgPDwgRVZFTlRfQ09VTlRFUl9HUk9VUF9TRUxfU0hJRlQ7CisJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgZXZlbnRfY250cl9jdHJsX29mZnNldFtwY2llLT5jaWRdLCB2YWwpOworCisJLyogUHJvZ3JhbSBUX2NtcnQgYW5kIFRfcHdyX29uIHZhbHVlcyAqLworCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgcGNpZS0+Y2ZnX2xpbmtfY2FwX2wxc3ViKTsKKwl2YWwgJj0gfihQQ0lfTDFTU19DQVBfQ01fUkVTVE9SRV9USU1FIHwgUENJX0wxU1NfQ0FQX1BfUFdSX09OX1ZBTFVFKTsKKwl2YWwgfD0gKHBjaWUtPmFzcG1fY21ydCA8PCA4KTsKKwl2YWwgfD0gKHBjaWUtPmFzcG1fcHdyX29uX3QgPDwgMTkpOworCWR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIHBjaWUtPmNmZ19saW5rX2NhcF9sMXN1YiwgdmFsKTsKKworCS8qIFByb2dyYW0gTDBzIGFuZCBMMSBlbnRyYW5jZSBsYXRlbmNpZXMgKi8KKwl2YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIFBPUlRfTE9HSUNfQUNLX0ZfQVNQTV9DVFJMKTsKKwl2YWwgJj0gfkwwU19FTlRSQU5DRV9MQVRfTUFTSzsKKwl2YWwgfD0gKHBjaWUtPmFzcG1fbDBzX2VudGVyX2xhdCA8PCBMMFNfRU5UUkFOQ0VfTEFUX1NISUZUKTsKKwl2YWwgfD0gRU5URVJfQVNQTTsKKwlkd19wY2llX3dyaXRlbF9kYmkocGNpLCBQT1JUX0xPR0lDX0FDS19GX0FTUE1fQ1RSTCwgdmFsKTsKK30KKworc3RhdGljIGludCBpbml0X2RlYnVnZnMoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpCit7CisJc3RydWN0IGRlbnRyeSAqZDsKKworCWQgPSBkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUocGNpZS0+ZGV2LCAiYXNwbV9zdGF0ZV9jbnQiLAorCQkJCQlwY2llLT5kZWJ1Z2ZzLCBhc3BtX3N0YXRlX2NudCk7CisJaWYgKElTX0VSUl9PUl9OVUxMKGQpKQorCQlkZXZfZXJyKHBjaWUtPmRldiwKKwkJCSJGYWlsZWQgdG8gY3JlYXRlIGRlYnVnZnMgZmlsZSBcImFzcG1fc3RhdGVfY250XCJcbiIpOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGRpc2FibGVfYXNwbV9sMTIoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpIHsgcmV0dXJuOyB9CitzdGF0aWMgaW5saW5lIHZvaWQgZGlzYWJsZV9hc3BtX2wxMShzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSkgeyByZXR1cm47IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0X2hvc3RfYXNwbShzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSkgeyByZXR1cm47IH0KK3N0YXRpYyBpbmxpbmUgaW50IGluaXRfZGVidWdmcyhzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSkgeyByZXR1cm4gMDsgfQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX3N5c3RlbV9pbnRlcnJ1cHRzKHN0cnVjdCBwY2llX3BvcnQgKnBwKQoreworCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOworCXN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llID0gdG9fdGVncmFfcGNpZShwY2kpOworCXUzMiB2YWw7CisJdTE2IHZhbF93OworCisJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0lOVFJfRU5fTDBfMCk7CisJdmFsIHw9IEFQUExfSU5UUl9FTl9MMF8wX0xJTktfU1RBVEVfSU5UX0VOOworCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9JTlRSX0VOX0wwXzApOworCisJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0lOVFJfRU5fTDFfMF8wKTsKKwl2YWwgfD0gQVBQTF9JTlRSX0VOX0wxXzBfMF9MSU5LX1JFUV9SU1RfTk9UX0lOVF9FTjsKKwlhcHBsX3dyaXRlbChwY2llLCB2YWwsIEFQUExfSU5UUl9FTl9MMV8wXzApOworCisJaWYgKHBjaWUtPmVuYWJsZV9jZG1fY2hlY2spIHsKKwkJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0lOVFJfRU5fTDBfMCk7CisJCXZhbCB8PSBBUFBMX0lOVFJfRU5fTDBfMF9DRE1fUkVHX0NIS19JTlRfRU47CisJCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9JTlRSX0VOX0wwXzApOworCisJCXZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9JTlRSX0VOX0wxXzE4KTsKKwkJdmFsIHw9IEFQUExfSU5UUl9FTl9MMV8xOF9DRE1fUkVHX0NIS19DTVBfRVJSOworCQl2YWwgfD0gQVBQTF9JTlRSX0VOX0wxXzE4X0NETV9SRUdfQ0hLX0xPR0lDX0VSUjsKKwkJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0lOVFJfRU5fTDFfMTgpOworCX0KKworCXZhbF93ID0gZHdfcGNpZV9yZWFkd19kYmkoJnBjaWUtPnBjaSwgcGNpZS0+cGNpZV9jYXBfYmFzZSArCisJCQkJICBQQ0lfRVhQX0xOS1NUQSk7CisJcGNpZS0+aW5pdF9saW5rX3dpZHRoID0gKHZhbF93ICYgUENJX0VYUF9MTktTVEFfTkxXKSA+PgorCQkJCVBDSV9FWFBfTE5LU1RBX05MV19TSElGVDsKKworCXZhbF93ID0gZHdfcGNpZV9yZWFkd19kYmkoJnBjaWUtPnBjaSwgcGNpZS0+cGNpZV9jYXBfYmFzZSArCisJCQkJICBQQ0lfRVhQX0xOS0NUTCk7CisJdmFsX3cgfD0gUENJX0VYUF9MTktDVExfTEJNSUU7CisJZHdfcGNpZV93cml0ZXdfZGJpKCZwY2llLT5wY2ksIHBjaWUtPnBjaWVfY2FwX2Jhc2UgKyBQQ0lfRVhQX0xOS0NUTCwKKwkJCSAgIHZhbF93KTsKK30KKworc3RhdGljIHZvaWQgdGVncmFfcGNpZV9lbmFibGVfbGVnYWN5X2ludGVycnVwdHMoc3RydWN0IHBjaWVfcG9ydCAqcHApCit7CisJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7CisJc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUgPSB0b190ZWdyYV9wY2llKHBjaSk7CisJdTMyIHZhbDsKKworCS8qIEVuYWJsZSBsZWdhY3kgaW50ZXJydXB0IGdlbmVyYXRpb24gKi8KKwl2YWwgPSBhcHBsX3JlYWRsKHBjaWUsIEFQUExfSU5UUl9FTl9MMF8wKTsKKwl2YWwgfD0gQVBQTF9JTlRSX0VOX0wwXzBfU1lTX0lOVFJfRU47CisJdmFsIHw9IEFQUExfSU5UUl9FTl9MMF8wX0lOVF9JTlRfRU47CisJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0lOVFJfRU5fTDBfMCk7CisKKwl2YWwgPSBhcHBsX3JlYWRsKHBjaWUsIEFQUExfSU5UUl9FTl9MMV84XzApOworCXZhbCB8PSBBUFBMX0lOVFJfRU5fTDFfOF9JTlRYX0VOOworCXZhbCB8PSBBUFBMX0lOVFJfRU5fTDFfOF9BVVRPX0JXX0lOVF9FTjsKKwl2YWwgfD0gQVBQTF9JTlRSX0VOX0wxXzhfQldfTUdUX0lOVF9FTjsKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfUENJRUFFUikpCisJCXZhbCB8PSBBUFBMX0lOVFJfRU5fTDFfOF9BRVJfSU5UX0VOOworCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9JTlRSX0VOX0wxXzhfMCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX21zaV9pbnRlcnJ1cHRzKHN0cnVjdCBwY2llX3BvcnQgKnBwKQoreworCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOworCXN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llID0gdG9fdGVncmFfcGNpZShwY2kpOworCXUzMiB2YWw7CisKKwlkd19wY2llX21zaV9pbml0KHBwKTsKKworCS8qIEVuYWJsZSBNU0kgaW50ZXJydXB0IGdlbmVyYXRpb24gKi8KKwl2YWwgPSBhcHBsX3JlYWRsKHBjaWUsIEFQUExfSU5UUl9FTl9MMF8wKTsKKwl2YWwgfD0gQVBQTF9JTlRSX0VOX0wwXzBfU1lTX01TSV9JTlRSX0VOOworCXZhbCB8PSBBUFBMX0lOVFJfRU5fTDBfMF9NU0lfUkNWX0lOVF9FTjsKKwlhcHBsX3dyaXRlbChwY2llLCB2YWwsIEFQUExfSU5UUl9FTl9MMF8wKTsKK30KKworc3RhdGljIHZvaWQgdGVncmFfcGNpZV9lbmFibGVfaW50ZXJydXB0cyhzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKK3sKKwlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKKwlzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSA9IHRvX3RlZ3JhX3BjaWUocGNpKTsKKworCS8qIENsZWFyIGludGVycnVwdCBzdGF0dXNlcyBiZWZvcmUgZW5hYmxpbmcgaW50ZXJydXB0cyAqLworCWFwcGxfd3JpdGVsKHBjaWUsIDB4RkZGRkZGRkYsIEFQUExfSU5UUl9TVEFUVVNfTDApOworCWFwcGxfd3JpdGVsKHBjaWUsIDB4RkZGRkZGRkYsIEFQUExfSU5UUl9TVEFUVVNfTDFfMF8wKTsKKwlhcHBsX3dyaXRlbChwY2llLCAweEZGRkZGRkZGLCBBUFBMX0lOVFJfU1RBVFVTX0wxXzEpOworCWFwcGxfd3JpdGVsKHBjaWUsIDB4RkZGRkZGRkYsIEFQUExfSU5UUl9TVEFUVVNfTDFfMik7CisJYXBwbF93cml0ZWwocGNpZSwgMHhGRkZGRkZGRiwgQVBQTF9JTlRSX1NUQVRVU19MMV8zKTsKKwlhcHBsX3dyaXRlbChwY2llLCAweEZGRkZGRkZGLCBBUFBMX0lOVFJfU1RBVFVTX0wxXzYpOworCWFwcGxfd3JpdGVsKHBjaWUsIDB4RkZGRkZGRkYsIEFQUExfSU5UUl9TVEFUVVNfTDFfNyk7CisJYXBwbF93cml0ZWwocGNpZSwgMHhGRkZGRkZGRiwgQVBQTF9JTlRSX1NUQVRVU19MMV84XzApOworCWFwcGxfd3JpdGVsKHBjaWUsIDB4RkZGRkZGRkYsIEFQUExfSU5UUl9TVEFUVVNfTDFfOSk7CisJYXBwbF93cml0ZWwocGNpZSwgMHhGRkZGRkZGRiwgQVBQTF9JTlRSX1NUQVRVU19MMV8xMCk7CisJYXBwbF93cml0ZWwocGNpZSwgMHhGRkZGRkZGRiwgQVBQTF9JTlRSX1NUQVRVU19MMV8xMSk7CisJYXBwbF93cml0ZWwocGNpZSwgMHhGRkZGRkZGRiwgQVBQTF9JTlRSX1NUQVRVU19MMV8xMyk7CisJYXBwbF93cml0ZWwocGNpZSwgMHhGRkZGRkZGRiwgQVBQTF9JTlRSX1NUQVRVU19MMV8xNCk7CisJYXBwbF93cml0ZWwocGNpZSwgMHhGRkZGRkZGRiwgQVBQTF9JTlRSX1NUQVRVU19MMV8xNSk7CisJYXBwbF93cml0ZWwocGNpZSwgMHhGRkZGRkZGRiwgQVBQTF9JTlRSX1NUQVRVU19MMV8xNyk7CisKKwl0ZWdyYV9wY2llX2VuYWJsZV9zeXN0ZW1faW50ZXJydXB0cyhwcCk7CisJdGVncmFfcGNpZV9lbmFibGVfbGVnYWN5X2ludGVycnVwdHMocHApOworCWlmIChJU19FTkFCTEVEKENPTkZJR19QQ0lfTVNJKSkKKwkJdGVncmFfcGNpZV9lbmFibGVfbXNpX2ludGVycnVwdHMocHApOworfQorCitzdGF0aWMgdm9pZCBjb25maWdfZ2VuM19nZW40X2VxX3ByZXNldHMoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpCit7CisJc3RydWN0IGR3X3BjaWUgKnBjaSA9ICZwY2llLT5wY2k7CisJdTMyIHZhbCwgb2Zmc2V0LCBpOworCisJLyogUHJvZ3JhbSBpbml0IHByZXNldCAqLworCWZvciAoaSA9IDA7IGkgPCBwY2llLT5udW1fbGFuZXM7IGkrKykgeworCQlkd19wY2llX3JlYWQocGNpLT5kYmlfYmFzZSArIENBUF9TUENJRV9DQVBfT0ZGCisJCQkJICsgKGkgKiAyKSwgMiwgJnZhbCk7CisJCXZhbCAmPSB+Q0FQX1NQQ0lFX0NBUF9PRkZfRFNQX1RYX1BSRVNFVDBfTUFTSzsKKwkJdmFsIHw9IEdFTjNfR0VONF9FUV9QUkVTRVRfSU5JVDsKKwkJdmFsICY9IH5DQVBfU1BDSUVfQ0FQX09GRl9VU1BfVFhfUFJFU0VUMF9NQVNLOworCQl2YWwgfD0gKEdFTjNfR0VONF9FUV9QUkVTRVRfSU5JVCA8PAorCQkJICAgQ0FQX1NQQ0lFX0NBUF9PRkZfVVNQX1RYX1BSRVNFVDBfU0hJRlQpOworCQlkd19wY2llX3dyaXRlKHBjaS0+ZGJpX2Jhc2UgKyBDQVBfU1BDSUVfQ0FQX09GRgorCQkJCSArIChpICogMiksIDIsIHZhbCk7CisKKwkJb2Zmc2V0ID0gZHdfcGNpZV9maW5kX2V4dF9jYXBhYmlsaXR5KHBjaSwKKwkJCQkJCSAgICAgUENJX0VYVF9DQVBfSURfUExfMTZHVCkgKworCQkJCVBDSV9QTF8xNkdUX0xFX0NUUkw7CisJCWR3X3BjaWVfcmVhZChwY2ktPmRiaV9iYXNlICsgb2Zmc2V0ICsgaSwgMSwgJnZhbCk7CisJCXZhbCAmPSB+UENJX1BMXzE2R1RfTEVfQ1RSTF9EU1BfVFhfUFJFU0VUX01BU0s7CisJCXZhbCB8PSBHRU4zX0dFTjRfRVFfUFJFU0VUX0lOSVQ7CisJCXZhbCAmPSB+UENJX1BMXzE2R1RfTEVfQ1RSTF9VU1BfVFhfUFJFU0VUX01BU0s7CisJCXZhbCB8PSAoR0VOM19HRU40X0VRX1BSRVNFVF9JTklUIDw8CisJCQlQQ0lfUExfMTZHVF9MRV9DVFJMX1VTUF9UWF9QUkVTRVRfU0hJRlQpOworCQlkd19wY2llX3dyaXRlKHBjaS0+ZGJpX2Jhc2UgKyBvZmZzZXQgKyBpLCAxLCB2YWwpOworCX0KKworCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgR0VOM19SRUxBVEVEX09GRik7CisJdmFsICY9IH5HRU4zX1JFTEFURURfT0ZGX1JBVEVfU0hBRE9XX1NFTF9NQVNLOworCWR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIEdFTjNfUkVMQVRFRF9PRkYsIHZhbCk7CisKKwl2YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIEdFTjNfRVFfQ09OVFJPTF9PRkYpOworCXZhbCAmPSB+R0VOM19FUV9DT05UUk9MX09GRl9QU0VUX1JFUV9WRUNfTUFTSzsKKwl2YWwgfD0gKDB4M2ZmIDw8IEdFTjNfRVFfQ09OVFJPTF9PRkZfUFNFVF9SRVFfVkVDX1NISUZUKTsKKwl2YWwgJj0gfkdFTjNfRVFfQ09OVFJPTF9PRkZfRkJfTU9ERV9NQVNLOworCWR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIEdFTjNfRVFfQ09OVFJPTF9PRkYsIHZhbCk7CisKKwl2YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIEdFTjNfUkVMQVRFRF9PRkYpOworCXZhbCAmPSB+R0VOM19SRUxBVEVEX09GRl9SQVRFX1NIQURPV19TRUxfTUFTSzsKKwl2YWwgfD0gKDB4MSA8PCBHRU4zX1JFTEFURURfT0ZGX1JBVEVfU0hBRE9XX1NFTF9TSElGVCk7CisJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgR0VOM19SRUxBVEVEX09GRiwgdmFsKTsKKworCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgR0VOM19FUV9DT05UUk9MX09GRik7CisJdmFsICY9IH5HRU4zX0VRX0NPTlRST0xfT0ZGX1BTRVRfUkVRX1ZFQ19NQVNLOworCXZhbCB8PSAoMHgzNjAgPDwgR0VOM19FUV9DT05UUk9MX09GRl9QU0VUX1JFUV9WRUNfU0hJRlQpOworCXZhbCAmPSB+R0VOM19FUV9DT05UUk9MX09GRl9GQl9NT0RFX01BU0s7CisJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgR0VOM19FUV9DT05UUk9MX09GRiwgdmFsKTsKKworCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgR0VOM19SRUxBVEVEX09GRik7CisJdmFsICY9IH5HRU4zX1JFTEFURURfT0ZGX1JBVEVfU0hBRE9XX1NFTF9NQVNLOworCWR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIEdFTjNfUkVMQVRFRF9PRkYsIHZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfcHJlcGFyZV9ob3N0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQoreworCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOworCXN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llID0gdG9fdGVncmFfcGNpZShwY2kpOworCXUzMiB2YWw7CisKKwl2YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIFBDSV9JT19CQVNFKTsKKwl2YWwgJj0gfihJT19CQVNFX0lPX0RFQ09ERSB8IElPX0JBU0VfSU9fREVDT0RFX0JJVDgpOworCWR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIFBDSV9JT19CQVNFLCB2YWwpOworCisJdmFsID0gZHdfcGNpZV9yZWFkbF9kYmkocGNpLCBQQ0lfUFJFRl9NRU1PUllfQkFTRSk7CisJdmFsIHw9IENGR19QUkVGX01FTV9MSU1JVF9CQVNFX01FTV9ERUNPREU7CisJdmFsIHw9IENGR19QUkVGX01FTV9MSU1JVF9CQVNFX01FTV9MSU1JVF9ERUNPREU7CisJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgUENJX1BSRUZfTUVNT1JZX0JBU0UsIHZhbCk7CisKKwlkd19wY2llX3dyaXRlbF9kYmkocGNpLCBQQ0lfQkFTRV9BRERSRVNTXzAsIDApOworCisJLyogQ29uZmlndXJlIEZUUyAqLworCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUE9SVF9MT0dJQ19BQ0tfRl9BU1BNX0NUUkwpOworCXZhbCAmPSB+KE5fRlRTX01BU0sgPDwgTl9GVFNfU0hJRlQpOworCXZhbCB8PSBOX0ZUU19WQUwgPDwgTl9GVFNfU0hJRlQ7CisJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgUE9SVF9MT0dJQ19BQ0tfRl9BU1BNX0NUUkwsIHZhbCk7CisKKwl2YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIFBPUlRfTE9HSUNfR0VOMl9DVFJMKTsKKwl2YWwgJj0gfkZUU19NQVNLOworCXZhbCB8PSBGVFNfVkFMOworCWR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIFBPUlRfTE9HSUNfR0VOMl9DVFJMLCB2YWwpOworCisJLyogRW5hYmxlIGFzIDB4RkZGRjAwMDEgcmVzcG9uc2UgZm9yIENSUyAqLworCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUE9SVF9MT0dJQ19BTUJBX0VSUk9SX1JFU1BPTlNFX0RFRkFVTFQpOworCXZhbCAmPSB+KEFNQkFfRVJST1JfUkVTUE9OU0VfQ1JTX01BU0sgPDwgQU1CQV9FUlJPUl9SRVNQT05TRV9DUlNfU0hJRlQpOworCXZhbCB8PSAoQU1CQV9FUlJPUl9SRVNQT05TRV9DUlNfT0tBWV9GRkZGMDAwMSA8PAorCQlBTUJBX0VSUk9SX1JFU1BPTlNFX0NSU19TSElGVCk7CisJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgUE9SVF9MT0dJQ19BTUJBX0VSUk9SX1JFU1BPTlNFX0RFRkFVTFQsIHZhbCk7CisKKwkvKiBDb25maWd1cmUgTWF4IFNwZWVkIGZyb20gRFQgKi8KKwlpZiAocGNpZS0+bWF4X3NwZWVkICYmIHBjaWUtPm1heF9zcGVlZCAhPSAtRUlOVkFMKSB7CisJCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgcGNpZS0+cGNpZV9jYXBfYmFzZSArCisJCQkJCVBDSV9FWFBfTE5LQ0FQKTsKKwkJdmFsICY9IH5QQ0lfRVhQX0xOS0NBUF9TTFM7CisJCXZhbCB8PSBwY2llLT5tYXhfc3BlZWQ7CisJCWR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIHBjaWUtPnBjaWVfY2FwX2Jhc2UgKyBQQ0lfRVhQX0xOS0NBUCwKKwkJCQkgICB2YWwpOworCX0KKworCS8qIENvbmZpZ3VyZSBNYXggbGFuZSB3aWR0aCBmcm9tIERUICovCisJdmFsID0gZHdfcGNpZV9yZWFkbF9kYmkocGNpLCBwY2llLT5wY2llX2NhcF9iYXNlICsgUENJX0VYUF9MTktDQVApOworCXZhbCAmPSB+UENJX0VYUF9MTktDQVBfTUxXOworCXZhbCB8PSAocGNpZS0+bnVtX2xhbmVzIDw8IFBDSV9FWFBfTE5LU1RBX05MV19TSElGVCk7CisJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgcGNpZS0+cGNpZV9jYXBfYmFzZSArIFBDSV9FWFBfTE5LQ0FQLCB2YWwpOworCisJY29uZmlnX2dlbjNfZ2VuNF9lcV9wcmVzZXRzKHBjaWUpOworCisJaW5pdF9ob3N0X2FzcG0ocGNpZSk7CisKKwl2YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIEdFTjNfUkVMQVRFRF9PRkYpOworCXZhbCAmPSB+R0VOM19SRUxBVEVEX09GRl9HRU4zX1pSWERDX05PTkNPTVBMOworCWR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIEdFTjNfUkVMQVRFRF9PRkYsIHZhbCk7CisKKwlpZiAocGNpZS0+dXBkYXRlX2ZjX2ZpeHVwKSB7CisJCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgQ0ZHX1RJTUVSX0NUUkxfTUFYX0ZVTkNfTlVNX09GRik7CisJCXZhbCB8PSAweDEgPDwgQ0ZHX1RJTUVSX0NUUkxfQUNLX05BS19TSElGVDsKKwkJZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgQ0ZHX1RJTUVSX0NUUkxfTUFYX0ZVTkNfTlVNX09GRiwgdmFsKTsKKwl9CisKKwlkd19wY2llX3NldHVwX3JjKHBwKTsKKworCWNsa19zZXRfcmF0ZShwY2llLT5jb3JlX2NsaywgR0VONF9DT1JFX0NMS19GUkVRKTsKKworCS8qIEFzc2VydCBSU1QgKi8KKwl2YWwgPSBhcHBsX3JlYWRsKHBjaWUsIEFQUExfUElOTVVYKTsKKwl2YWwgJj0gfkFQUExfUElOTVVYX1BFWF9SU1Q7CisJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX1BJTk1VWCk7CisKKwl1c2xlZXBfcmFuZ2UoMTAwLCAyMDApOworCisJLyogRW5hYmxlIExUU1NNICovCisJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0NUUkwpOworCXZhbCB8PSBBUFBMX0NUUkxfTFRTU01fRU47CisJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0NUUkwpOworCisJLyogRGUtYXNzZXJ0IFJTVCAqLworCXZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9QSU5NVVgpOworCXZhbCB8PSBBUFBMX1BJTk1VWF9QRVhfUlNUOworCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9QSU5NVVgpOworCisJbXNsZWVwKDEwMCk7Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcGNpZV9kd19ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCit7CisJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7CisJc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUgPSB0b190ZWdyYV9wY2llKHBjaSk7CisJdTMyIHZhbCwgdG1wLCBvZmZzZXQsIHNwZWVkOworCisJdGVncmFfcGNpZV9wcmVwYXJlX2hvc3QocHApOworCisJaWYgKGR3X3BjaWVfd2FpdF9mb3JfbGluayhwY2kpKSB7CisJCS8qCisJCSAqIFRoZXJlIGFyZSBzb21lIGVuZHBvaW50cyB3aGljaCBjYW4ndCBnZXQgdGhlIGxpbmsgdXAgaWYKKwkJICogcm9vdCBwb3J0IGhhcyBEYXRhIExpbmsgRmVhdHVyZSAoRExGKSBlbmFibGVkLgorCQkgKiBSZWZlciBTcGVjIHJldiA0LjAgdmVyIDEuMCBzZWMgMy40LjIgJiA3LjcuNCBmb3IgbW9yZSBpbmZvCisJCSAqIG9uIFNjYWxlZCBGbG93IENvbnRyb2wgYW5kIERMRi4KKwkJICogU28sIG5lZWQgdG8gY29uZmlybSB0aGF0IGlzIGluZGVlZCB0aGUgY2FzZSBoZXJlIGFuZCBhdHRlbXB0CisJCSAqIGxpbmsgdXAgb25jZSBhZ2FpbiB3aXRoIERMRiBkaXNhYmxlZC4KKwkJICovCisJCXZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9ERUJVRyk7CisJCXZhbCAmPSBBUFBMX0RFQlVHX0xUU1NNX1NUQVRFX01BU0s7CisJCXZhbCA+Pj0gQVBQTF9ERUJVR19MVFNTTV9TVEFURV9TSElGVDsKKwkJdG1wID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0xJTktfU1RBVFVTKTsKKwkJdG1wICY9IEFQUExfTElOS19TVEFUVVNfUkRMSF9MSU5LX1VQOworCQlpZiAoISh2YWwgPT0gMHgxMSAmJiAhdG1wKSkgeworCQkJLyogTGluayBpcyBkb3duIGZvciBhbGwgZ29vZCByZWFzb25zICovCisJCQlyZXR1cm4gMDsKKwkJfQorCisJCWRldl9pbmZvKHBjaS0+ZGV2LCAiTGluayBpcyBkb3duIGluIERMTCIpOworCQlkZXZfaW5mbyhwY2ktPmRldiwgIlRyeWluZyBhZ2FpbiB3aXRoIERMRkUgZGlzYWJsZWRcbiIpOworCQkvKiBEaXNhYmxlIExUU1NNICovCisJCXZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9DVFJMKTsKKwkJdmFsICY9IH5BUFBMX0NUUkxfTFRTU01fRU47CisJCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9DVFJMKTsKKworCQlyZXNldF9jb250cm9sX2Fzc2VydChwY2llLT5jb3JlX3JzdCk7CisJCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocGNpZS0+Y29yZV9yc3QpOworCisJCW9mZnNldCA9IGR3X3BjaWVfZmluZF9leHRfY2FwYWJpbGl0eShwY2ksIFBDSV9FWFRfQ0FQX0lEX0RMRik7CisJCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgb2Zmc2V0ICsgUENJX0RMRl9DQVApOworCQl2YWwgJj0gflBDSV9ETEZfRVhDSEFOR0VfRU5BQkxFOworCQlkd19wY2llX3dyaXRlbF9kYmkocGNpLCBvZmZzZXQsIHZhbCk7CisKKwkJdGVncmFfcGNpZV9wcmVwYXJlX2hvc3QocHApOworCisJCWlmIChkd19wY2llX3dhaXRfZm9yX2xpbmsocGNpKSkKKwkJCXJldHVybiAwOworCX0KKworCXNwZWVkID0gZHdfcGNpZV9yZWFkd19kYmkocGNpLCBwY2llLT5wY2llX2NhcF9iYXNlICsgUENJX0VYUF9MTktTVEEpICYKKwkJUENJX0VYUF9MTktTVEFfQ0xTOworCWNsa19zZXRfcmF0ZShwY2llLT5jb3JlX2NsaywgcGNpZV9nZW5fZnJlcVtzcGVlZCAtIDFdKTsKKworCXRlZ3JhX3BjaWVfZW5hYmxlX2ludGVycnVwdHMocHApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcGNpZV9kd19saW5rX3VwKHN0cnVjdCBkd19wY2llICpwY2kpCit7CisJc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUgPSB0b190ZWdyYV9wY2llKHBjaSk7CisJdTMyIHZhbCA9IGR3X3BjaWVfcmVhZHdfZGJpKHBjaSwgcGNpZS0+cGNpZV9jYXBfYmFzZSArIFBDSV9FWFBfTE5LU1RBKTsKKworCXJldHVybiAhISh2YWwgJiBQQ0lfRVhQX0xOS1NUQV9ETExMQSk7Cit9CisKK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfc2V0X21zaV92ZWNfbnVtKHN0cnVjdCBwY2llX3BvcnQgKnBwKQoreworCXBwLT5udW1fdmVjdG9ycyA9IE1BWF9NU0lfSVJRUzsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkd19wY2llX29wcyB0ZWdyYV9kd19wY2llX29wcyA9IHsKKwkubGlua191cCA9IHRlZ3JhX3BjaWVfZHdfbGlua191cCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZHdfcGNpZV9ob3N0X29wcyB0ZWdyYV9wY2llX2R3X2hvc3Rfb3BzID0geworCS5yZF9vd25fY29uZiA9IHRlZ3JhX3BjaWVfZHdfcmRfb3duX2NvbmYsCisJLndyX293bl9jb25mID0gdGVncmFfcGNpZV9kd193cl9vd25fY29uZiwKKwkuaG9zdF9pbml0ID0gdGVncmFfcGNpZV9kd19ob3N0X2luaXQsCisJLnNldF9udW1fdmVjdG9ycyA9IHRlZ3JhX3BjaWVfc2V0X21zaV92ZWNfbnVtLAorfTsKKworc3RhdGljIHZvaWQgdGVncmFfcGNpZV9kaXNhYmxlX3BoeShzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSkKK3sKKwl1bnNpZ25lZCBpbnQgcGh5X2NvdW50ID0gcGNpZS0+cGh5X2NvdW50OworCisJd2hpbGUgKHBoeV9jb3VudC0tKSB7CisJCXBoeV9wb3dlcl9vZmYocGNpZS0+cGh5c1twaHlfY291bnRdKTsKKwkJcGh5X2V4aXQocGNpZS0+cGh5c1twaHlfY291bnRdKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcGNpZV9lbmFibGVfcGh5KHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQoreworCXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgcGNpZS0+cGh5X2NvdW50OyBpKyspIHsKKwkJcmV0ID0gcGh5X2luaXQocGNpZS0+cGh5c1tpXSk7CisJCWlmIChyZXQgPCAwKQorCQkJZ290byBwaHlfcG93ZXJfb2ZmOworCisJCXJldCA9IHBoeV9wb3dlcl9vbihwY2llLT5waHlzW2ldKTsKKwkJaWYgKHJldCA8IDApCisJCQlnb3RvIHBoeV9leGl0OworCX0KKworCXJldHVybiAwOworCitwaHlfcG93ZXJfb2ZmOgorCXdoaWxlIChpLS0pIHsKKwkJcGh5X3Bvd2VyX29mZihwY2llLT5waHlzW2ldKTsKK3BoeV9leGl0OgorCQlwaHlfZXhpdChwY2llLT5waHlzW2ldKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfZHdfcGFyc2VfZHQoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpCit7CisJc3RydWN0IGRldmljZV9ub2RlICpucCA9IHBjaWUtPmRldi0+b2Zfbm9kZTsKKwlpbnQgcmV0OworCisJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJudmlkaWEsYXNwbS1jbXJ0LXVzIiwgJnBjaWUtPmFzcG1fY21ydCk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2luZm8ocGNpZS0+ZGV2LCAiRmFpbGVkIHRvIHJlYWQgQVNQTSBUX2NtcnQ6ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAibnZpZGlhLGFzcG0tcHdyLW9uLXQtdXMiLAorCQkJCSAgICZwY2llLT5hc3BtX3B3cl9vbl90KTsKKwlpZiAocmV0IDwgMCkKKwkJZGV2X2luZm8ocGNpZS0+ZGV2LCAiRmFpbGVkIHRvIHJlYWQgQVNQTSBQb3dlciBPbiB0aW1lOiAlZFxuIiwKKwkJCSByZXQpOworCisJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJudmlkaWEsYXNwbS1sMHMtZW50cmFuY2UtbGF0ZW5jeS11cyIsCisJCQkJICAgJnBjaWUtPmFzcG1fbDBzX2VudGVyX2xhdCk7CisJaWYgKHJldCA8IDApCisJCWRldl9pbmZvKHBjaWUtPmRldiwKKwkJCSAiRmFpbGVkIHRvIHJlYWQgQVNQTSBMMHMgRW50cmFuY2UgbGF0ZW5jeTogJWRcbiIsIHJldCk7CisKKwlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgIm51bS1sYW5lcyIsICZwY2llLT5udW1fbGFuZXMpOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIocGNpZS0+ZGV2LCAiRmFpbGVkIHRvIHJlYWQgbnVtLWxhbmVzOiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlwY2llLT5tYXhfc3BlZWQgPSBvZl9wY2lfZ2V0X21heF9saW5rX3NwZWVkKG5wKTsKKworCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyX2luZGV4KG5wLCAibnZpZGlhLGJwbXAiLCAxLCAmcGNpZS0+Y2lkKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIocGNpZS0+ZGV2LCAiRmFpbGVkIHRvIHJlYWQgQ29udHJvbGxlci1JRDogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gb2ZfcHJvcGVydHlfY291bnRfc3RyaW5ncyhucCwgInBoeS1uYW1lcyIpOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIocGNpZS0+ZGV2LCAiRmFpbGVkIHRvIGZpbmQgUEhZIGVudHJpZXM6ICVkXG4iLAorCQkJcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisJcGNpZS0+cGh5X2NvdW50ID0gcmV0OworCisJaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgIm52aWRpYSx1cGRhdGUtZmMtZml4dXAiKSkKKwkJcGNpZS0+dXBkYXRlX2ZjX2ZpeHVwID0gdHJ1ZTsKKworCXBjaWUtPnN1cHBvcnRzX2Nsa3JlcSA9CisJCW9mX3Byb3BlcnR5X3JlYWRfYm9vbChwY2llLT5kZXYtPm9mX25vZGUsICJzdXBwb3J0cy1jbGtyZXEiKTsKKworCXBjaWUtPmVuYWJsZV9jZG1fY2hlY2sgPQorCQlvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJzbnBzLGVuYWJsZS1jZG0tY2hlY2siKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfYnBtcF9zZXRfY3RybF9zdGF0ZShzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSwKKwkJCQkJICBib29sIGVuYWJsZSkKK3sKKwlzdHJ1Y3QgbXJxX3VwaHlfcmVzcG9uc2UgcmVzcDsKKwlzdHJ1Y3QgdGVncmFfYnBtcF9tZXNzYWdlIG1zZzsKKwlzdHJ1Y3QgbXJxX3VwaHlfcmVxdWVzdCByZXE7CisKKwkvKiBDb250cm9sbGVyLTUgZG9lc24ndCBuZWVkIHRvIGhhdmUgaXRzIHN0YXRlIHNldCBieSBCUE1QLUZXICovCisJaWYgKHBjaWUtPmNpZCA9PSA1KQorCQlyZXR1cm4gMDsKKworCW1lbXNldCgmcmVxLCAwLCBzaXplb2YocmVxKSk7CisJbWVtc2V0KCZyZXNwLCAwLCBzaXplb2YocmVzcCkpOworCisJcmVxLmNtZCA9IENNRF9VUEhZX1BDSUVfQ09OVFJPTExFUl9TVEFURTsKKwlyZXEuY29udHJvbGxlcl9zdGF0ZS5wY2llX2NvbnRyb2xsZXIgPSBwY2llLT5jaWQ7CisJcmVxLmNvbnRyb2xsZXJfc3RhdGUuZW5hYmxlID0gZW5hYmxlOworCisJbWVtc2V0KCZtc2csIDAsIHNpemVvZihtc2cpKTsKKwltc2cubXJxID0gTVJRX1VQSFk7CisJbXNnLnR4LmRhdGEgPSAmcmVxOworCW1zZy50eC5zaXplID0gc2l6ZW9mKHJlcSk7CisJbXNnLnJ4LmRhdGEgPSAmcmVzcDsKKwltc2cucnguc2l6ZSA9IHNpemVvZihyZXNwKTsKKworCXJldHVybiB0ZWdyYV9icG1wX3RyYW5zZmVyKHBjaWUtPmJwbXAsICZtc2cpOworfQorCitzdGF0aWMgdm9pZCB0ZWdyYV9wY2llX2Rvd25zdHJlYW1fZGV2X3RvX0QwKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQoreworCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaWUtPnBjaS5wcDsKKwlzdHJ1Y3QgcGNpX2J1cyAqY2hpbGQsICpyb290X2J1cyA9IE5VTEw7CisJc3RydWN0IHBjaV9kZXYgKnBkZXY7CisKKwkvKgorCSAqIGxpbmsgZG9lc24ndCBnbyBpbnRvIEwyIHN0YXRlIHdpdGggc29tZSBvZiB0aGUgZW5kcG9pbnRzIHdpdGggVGVncmEKKwkgKiBpZiB0aGV5IGFyZSBub3QgaW4gRDAgc3RhdGUuIFNvLCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGltbWVkaWF0ZQorCSAqIGRvd25zdHJlYW0gZGV2aWNlcyBhcmUgaW4gRDAgc3RhdGUgYmVmb3JlIHNlbmRpbmcgUE1FX1R1cm5PZmYgdG8gcHV0CisJICogbGluayBpbnRvIEwyIHN0YXRlLgorCSAqIFRoaXMgaXMgYXMgcGVyIFBDSSBFeHByZXNzIEJhc2UgcjQuMCB2MS4wIFNlcHRlbWJlciAyNy0yMDE3LAorCSAqIDUuMiBMaW5rIFN0YXRlIFBvd2VyIE1hbmFnZW1lbnQgKFBhZ2UgIzQyOCkuCisJICovCisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNoaWxkLCAmcHAtPnJvb3RfYnVzLT5jaGlsZHJlbiwgbm9kZSkgeworCQkvKiBCcmluZyBkb3duc3RyZWFtIGRldmljZXMgdG8gRDAgaWYgdGhleSBhcmUgbm90IGFscmVhZHkgaW4gKi8KKwkJaWYgKGNoaWxkLT5wYXJlbnQgPT0gcHAtPnJvb3RfYnVzKSB7CisJCQlyb290X2J1cyA9IGNoaWxkOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIXJvb3RfYnVzKSB7CisJCWRldl9lcnIocGNpZS0+ZGV2LCAiRmFpbGVkIHRvIGZpbmQgZG93bnN0cmVhbSBkZXZpY2VzXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnkocGRldiwgJnJvb3RfYnVzLT5kZXZpY2VzLCBidXNfbGlzdCkgeworCQlpZiAoUENJX1NMT1QocGRldi0+ZGV2Zm4pID09IDApIHsKKwkJCWlmIChwY2lfc2V0X3Bvd2VyX3N0YXRlKHBkZXYsIFBDSV9EMCkpCisJCQkJZGV2X2VycihwY2llLT5kZXYsCisJCQkJCSJGYWlsZWQgdG8gdHJhbnNpdGlvbiAlcyB0byBEMCBzdGF0ZVxuIiwKKwkJCQkJZGV2X25hbWUoJnBkZXYtPmRldikpOworCQl9CisJfQorfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfZ2V0X3Nsb3RfcmVndWxhdG9ycyhzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSkKK3sKKwlwY2llLT5zbG90X2N0bF8zdjMgPSBkZXZtX3JlZ3VsYXRvcl9nZXRfb3B0aW9uYWwocGNpZS0+ZGV2LCAidnBjaWUzdjMiKTsKKwlpZiAoSVNfRVJSKHBjaWUtPnNsb3RfY3RsXzN2MykpIHsKKwkJaWYgKFBUUl9FUlIocGNpZS0+c2xvdF9jdGxfM3YzKSAhPSAtRU5PREVWKQorCQkJcmV0dXJuIFBUUl9FUlIocGNpZS0+c2xvdF9jdGxfM3YzKTsKKworCQlwY2llLT5zbG90X2N0bF8zdjMgPSBOVUxMOworCX0KKworCXBjaWUtPnNsb3RfY3RsXzEydiA9IGRldm1fcmVndWxhdG9yX2dldF9vcHRpb25hbChwY2llLT5kZXYsICJ2cGNpZTEydiIpOworCWlmIChJU19FUlIocGNpZS0+c2xvdF9jdGxfMTJ2KSkgeworCQlpZiAoUFRSX0VSUihwY2llLT5zbG90X2N0bF8xMnYpICE9IC1FTk9ERVYpCisJCQlyZXR1cm4gUFRSX0VSUihwY2llLT5zbG90X2N0bF8xMnYpOworCisJCXBjaWUtPnNsb3RfY3RsXzEydiA9IE5VTEw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcGNpZV9lbmFibGVfc2xvdF9yZWd1bGF0b3JzKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQoreworCWludCByZXQ7CisKKwlpZiAocGNpZS0+c2xvdF9jdGxfM3YzKSB7CisJCXJldCA9IHJlZ3VsYXRvcl9lbmFibGUocGNpZS0+c2xvdF9jdGxfM3YzKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWRldl9lcnIocGNpZS0+ZGV2LAorCQkJCSJGYWlsZWQgdG8gZW5hYmxlIDMuM1Ygc2xvdCBzdXBwbHk6ICVkXG4iLCByZXQpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCWlmIChwY2llLT5zbG90X2N0bF8xMnYpIHsKKwkJcmV0ID0gcmVndWxhdG9yX2VuYWJsZShwY2llLT5zbG90X2N0bF8xMnYpOworCQlpZiAocmV0IDwgMCkgeworCQkJZGV2X2VycihwY2llLT5kZXYsCisJCQkJIkZhaWxlZCB0byBlbmFibGUgMTJWIHNsb3Qgc3VwcGx5OiAlZFxuIiwgcmV0KTsKKwkJCWdvdG8gZmFpbF8xMnZfZW5hYmxlOworCQl9CisJfQorCisJLyoKKwkgKiBBY2NvcmRpbmcgdG8gUENJIEV4cHJlc3MgQ2FyZCBFbGVjdHJvbWVjaGFuaWNhbCBTcGVjaWZpY2F0aW9uCisJICogUmV2aXNpb24gMS4xLCBUYWJsZS0yLjQsIFRfUFZQRVJMIChQb3dlciBzdGFibGUgdG8gUEVSU1QjIGluYWN0aXZlKQorCSAqIHNob3VsZCBiZSBhIG1pbmltdW0gb2YgMTAwbXMuCisJICovCisJaWYgKHBjaWUtPnNsb3RfY3RsXzN2MyB8fCBwY2llLT5zbG90X2N0bF8xMnYpCisJCW1zbGVlcCgxMDApOworCisJcmV0dXJuIDA7CisKK2ZhaWxfMTJ2X2VuYWJsZToKKwlpZiAocGNpZS0+c2xvdF9jdGxfM3YzKQorCQlyZWd1bGF0b3JfZGlzYWJsZShwY2llLT5zbG90X2N0bF8zdjMpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZGlzYWJsZV9zbG90X3JlZ3VsYXRvcnMoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpCit7CisJaWYgKHBjaWUtPnNsb3RfY3RsXzEydikKKwkJcmVndWxhdG9yX2Rpc2FibGUocGNpZS0+c2xvdF9jdGxfMTJ2KTsKKwlpZiAocGNpZS0+c2xvdF9jdGxfM3YzKQorCQlyZWd1bGF0b3JfZGlzYWJsZShwY2llLT5zbG90X2N0bF8zdjMpOworfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfY29uZmlnX2NvbnRyb2xsZXIoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUsCisJCQkJCWJvb2wgZW5faHdfaG90X3JzdCkKK3sKKwlpbnQgcmV0OworCXUzMiB2YWw7CisKKwlyZXQgPSB0ZWdyYV9wY2llX2JwbXBfc2V0X2N0cmxfc3RhdGUocGNpZSwgdHJ1ZSk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKHBjaWUtPmRldiwKKwkJCSJGYWlsZWQgdG8gZW5hYmxlIGNvbnRyb2xsZXIgJXU6ICVkXG4iLCBwY2llLT5jaWQsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gdGVncmFfcGNpZV9lbmFibGVfc2xvdF9yZWd1bGF0b3JzKHBjaWUpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGZhaWxfc2xvdF9yZWdfZW47CisKKwlyZXQgPSByZWd1bGF0b3JfZW5hYmxlKHBjaWUtPnBleF9jdGxfc3VwcGx5KTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKHBjaWUtPmRldiwgIkZhaWxlZCB0byBlbmFibGUgcmVndWxhdG9yOiAlZFxuIiwgcmV0KTsKKwkJZ290byBmYWlsX3JlZ19lbjsKKwl9CisKKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUocGNpZS0+Y29yZV9jbGspOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihwY2llLT5kZXYsICJGYWlsZWQgdG8gZW5hYmxlIGNvcmUgY2xvY2s6ICVkXG4iLCByZXQpOworCQlnb3RvIGZhaWxfY29yZV9jbGs7CisJfQorCisJcmV0ID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChwY2llLT5jb3JlX2FwYl9yc3QpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihwY2llLT5kZXYsICJGYWlsZWQgdG8gZGVhc3NlcnQgY29yZSBBUEIgcmVzZXQ6ICVkXG4iLAorCQkJcmV0KTsKKwkJZ290byBmYWlsX2NvcmVfYXBiX3JzdDsKKwl9CisKKwlpZiAoZW5faHdfaG90X3JzdCkgeworCQkvKiBFbmFibGUgSFdfSE9UX1JTVCBtb2RlICovCisJCXZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9DVFJMKTsKKwkJdmFsICY9IH4oQVBQTF9DVFJMX0hXX0hPVF9SU1RfTU9ERV9NQVNLIDw8CisJCQkgQVBQTF9DVFJMX0hXX0hPVF9SU1RfTU9ERV9TSElGVCk7CisJCXZhbCB8PSBBUFBMX0NUUkxfSFdfSE9UX1JTVF9FTjsKKwkJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0NUUkwpOworCX0KKworCXJldCA9IHRlZ3JhX3BjaWVfZW5hYmxlX3BoeShwY2llKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIocGNpZS0+ZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBQSFk6ICVkXG4iLCByZXQpOworCQlnb3RvIGZhaWxfcGh5OworCX0KKworCS8qIFVwZGF0ZSBDRkcgYmFzZSBhZGRyZXNzICovCisJYXBwbF93cml0ZWwocGNpZSwgcGNpZS0+ZGJpX3Jlcy0+c3RhcnQgJiBBUFBMX0NGR19CQVNFX0FERFJfTUFTSywKKwkJICAgIEFQUExfQ0ZHX0JBU0VfQUREUik7CisKKwkvKiBDb25maWd1cmUgdGhpcyBjb3JlIGZvciBSUCBtb2RlIG9wZXJhdGlvbiAqLworCWFwcGxfd3JpdGVsKHBjaWUsIEFQUExfRE1fVFlQRV9SUCwgQVBQTF9ETV9UWVBFKTsKKworCWFwcGxfd3JpdGVsKHBjaWUsIDB4MCwgQVBQTF9DRkdfU0xDR19PVkVSUklERSk7CisKKwl2YWwgPSBhcHBsX3JlYWRsKHBjaWUsIEFQUExfQ1RSTCk7CisJYXBwbF93cml0ZWwocGNpZSwgdmFsIHwgQVBQTF9DVFJMX1NZU19QUkVfREVUX1NUQVRFLCBBUFBMX0NUUkwpOworCisJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0NGR19NSVNDKTsKKwl2YWwgfD0gKEFQUExfQ0ZHX01JU0NfQVJDQUNIRV9WQUwgPDwgQVBQTF9DRkdfTUlTQ19BUkNBQ0hFX1NISUZUKTsKKwlhcHBsX3dyaXRlbChwY2llLCB2YWwsIEFQUExfQ0ZHX01JU0MpOworCisJaWYgKCFwY2llLT5zdXBwb3J0c19jbGtyZXEpIHsKKwkJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX1BJTk1VWCk7CisJCXZhbCB8PSBBUFBMX1BJTk1VWF9DTEtSRVFfT1VUX09WUkRfRU47CisJCXZhbCB8PSBBUFBMX1BJTk1VWF9DTEtSRVFfT1VUX09WUkQ7CisJCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9QSU5NVVgpOworCX0KKworCS8qIFVwZGF0ZSBpQVRVX0RNQSBiYXNlIGFkZHJlc3MgKi8KKwlhcHBsX3dyaXRlbChwY2llLAorCQkgICAgcGNpZS0+YXR1X2RtYV9yZXMtPnN0YXJ0ICYgQVBQTF9DRkdfSUFUVV9ETUFfQkFTRV9BRERSX01BU0ssCisJCSAgICBBUFBMX0NGR19JQVRVX0RNQV9CQVNFX0FERFIpOworCisJcmVzZXRfY29udHJvbF9kZWFzc2VydChwY2llLT5jb3JlX3JzdCk7CisKKwlwY2llLT5wY2llX2NhcF9iYXNlID0gZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkoJnBjaWUtPnBjaSwKKwkJCQkJCSAgICAgIFBDSV9DQVBfSURfRVhQKTsKKworCS8qIERpc2FibGUgQVNQTS1MMVNTIGFkdmVydGlzZW1lbnQgYXMgdGhlcmUgaXMgbm8gQ0xLUkVRIHJvdXRpbmcgKi8KKwlpZiAoIXBjaWUtPnN1cHBvcnRzX2Nsa3JlcSkgeworCQlkaXNhYmxlX2FzcG1fbDExKHBjaWUpOworCQlkaXNhYmxlX2FzcG1fbDEyKHBjaWUpOworCX0KKworCXJldHVybiByZXQ7CisKK2ZhaWxfcGh5OgorCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KHBjaWUtPmNvcmVfYXBiX3JzdCk7CitmYWlsX2NvcmVfYXBiX3JzdDoKKwljbGtfZGlzYWJsZV91bnByZXBhcmUocGNpZS0+Y29yZV9jbGspOworZmFpbF9jb3JlX2NsazoKKwlyZWd1bGF0b3JfZGlzYWJsZShwY2llLT5wZXhfY3RsX3N1cHBseSk7CitmYWlsX3JlZ19lbjoKKwl0ZWdyYV9wY2llX2Rpc2FibGVfc2xvdF9yZWd1bGF0b3JzKHBjaWUpOworZmFpbF9zbG90X3JlZ19lbjoKKwl0ZWdyYV9wY2llX2JwbXBfc2V0X2N0cmxfc3RhdGUocGNpZSwgZmFsc2UpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBfX2RlaW5pdF9jb250cm9sbGVyKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQoreworCWludCByZXQ7CisKKwlyZXQgPSByZXNldF9jb250cm9sX2Fzc2VydChwY2llLT5jb3JlX3JzdCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKHBjaWUtPmRldiwgIkZhaWxlZCB0byBhc3NlcnQgXCJjb3JlXCIgcmVzZXQ6ICVkXG4iLAorCQkJcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwl0ZWdyYV9wY2llX2Rpc2FibGVfcGh5KHBjaWUpOworCisJcmV0ID0gcmVzZXRfY29udHJvbF9hc3NlcnQocGNpZS0+Y29yZV9hcGJfcnN0KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIocGNpZS0+ZGV2LCAiRmFpbGVkIHRvIGFzc2VydCBBUEIgcmVzZXQ6ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCWNsa19kaXNhYmxlX3VucHJlcGFyZShwY2llLT5jb3JlX2Nsayk7CisKKwlyZXQgPSByZWd1bGF0b3JfZGlzYWJsZShwY2llLT5wZXhfY3RsX3N1cHBseSk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKHBjaWUtPmRldiwgIkZhaWxlZCB0byBkaXNhYmxlIHJlZ3VsYXRvcjogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJdGVncmFfcGNpZV9kaXNhYmxlX3Nsb3RfcmVndWxhdG9ycyhwY2llKTsKKworCXJldCA9IHRlZ3JhX3BjaWVfYnBtcF9zZXRfY3RybF9zdGF0ZShwY2llLCBmYWxzZSk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKHBjaWUtPmRldiwgIkZhaWxlZCB0byBkaXNhYmxlIGNvbnRyb2xsZXIgJWQ6ICVkXG4iLAorCQkJcGNpZS0+Y2lkLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcGNpZV9pbml0X2NvbnRyb2xsZXIoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpCit7CisJc3RydWN0IGR3X3BjaWUgKnBjaSA9ICZwY2llLT5wY2k7CisJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKKwlpbnQgcmV0OworCisJcmV0ID0gdGVncmFfcGNpZV9jb25maWdfY29udHJvbGxlcihwY2llLCBmYWxzZSk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlwcC0+b3BzID0gJnRlZ3JhX3BjaWVfZHdfaG9zdF9vcHM7CisKKwlyZXQgPSBkd19wY2llX2hvc3RfaW5pdChwcCk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihwY2llLT5kZXYsICJGYWlsZWQgdG8gYWRkIFBDSWUgcG9ydDogJWRcbiIsIHJldCk7CisJCWdvdG8gZmFpbF9ob3N0X2luaXQ7CisJfQorCisJcmV0dXJuIDA7CisKK2ZhaWxfaG9zdF9pbml0OgorCXJldHVybiBfX2RlaW5pdF9jb250cm9sbGVyKHBjaWUpOworfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfdHJ5X2xpbmtfbDIoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpCit7CisJdTMyIHZhbDsKKworCWlmICghdGVncmFfcGNpZV9kd19saW5rX3VwKCZwY2llLT5wY2kpKQorCQlyZXR1cm4gMDsKKworCXZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9SQURNX1NUQVRVUyk7CisJdmFsIHw9IEFQUExfUE1fWE1UX1RVUk5PRkZfU1RBVEU7CisJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX1JBRE1fU1RBVFVTKTsKKworCXJldHVybiByZWFkbF9wb2xsX3RpbWVvdXRfYXRvbWljKHBjaWUtPmFwcGxfYmFzZSArIEFQUExfREVCVUcsIHZhbCwKKwkJCQkgdmFsICYgQVBQTF9ERUJVR19QTV9MSU5LU1RfSU5fTDJfTEFULAorCQkJCSAxLCBQTUVfQUNLX1RJTUVPVVQpOworfQorCitzdGF0aWMgdm9pZCB0ZWdyYV9wY2llX2R3X3BtZV90dXJub2ZmKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQoreworCXUzMiBkYXRhOworCWludCBlcnI7CisKKwlpZiAoIXRlZ3JhX3BjaWVfZHdfbGlua191cCgmcGNpZS0+cGNpKSkgeworCQlkZXZfZGJnKHBjaWUtPmRldiwgIlBDSWUgbGluayBpcyBub3QgdXAuLi4hXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWlmICh0ZWdyYV9wY2llX3RyeV9saW5rX2wyKHBjaWUpKSB7CisJCWRldl9pbmZvKHBjaWUtPmRldiwgIkxpbmsgZGlkbid0IHRyYW5zaXRpb24gdG8gTDIgc3RhdGVcbiIpOworCQkvKgorCQkgKiBUWCBsYW5lIGNsb2NrIGZyZXEgd2lsbCByZXNldCB0byBHZW4xIG9ubHkgaWYgbGluayBpcyBpbiBMMgorCQkgKiBvciBkZXRlY3Qgc3RhdGUuCisJCSAqIFNvIGFwcGx5IHBleF9yc3QgdG8gZW5kIHBvaW50IHRvIGZvcmNlIFJQIHRvIGdvIGludG8gZGV0ZWN0CisJCSAqIHN0YXRlCisJCSAqLworCQlkYXRhID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX1BJTk1VWCk7CisJCWRhdGEgJj0gfkFQUExfUElOTVVYX1BFWF9SU1Q7CisJCWFwcGxfd3JpdGVsKHBjaWUsIGRhdGEsIEFQUExfUElOTVVYKTsKKworCQllcnIgPSByZWFkbF9wb2xsX3RpbWVvdXRfYXRvbWljKHBjaWUtPmFwcGxfYmFzZSArIEFQUExfREVCVUcsCisJCQkJCQlkYXRhLAorCQkJCQkJKChkYXRhICYKKwkJCQkJCUFQUExfREVCVUdfTFRTU01fU1RBVEVfTUFTSykgPj4KKwkJCQkJCUFQUExfREVCVUdfTFRTU01fU1RBVEVfU0hJRlQpID09CisJCQkJCQlMVFNTTV9TVEFURV9QUkVfREVURUNULAorCQkJCQkJMSwgTFRTU01fVElNRU9VVCk7CisJCWlmIChlcnIpIHsKKwkJCWRldl9pbmZvKHBjaWUtPmRldiwgIkxpbmsgZGlkbid0IGdvIHRvIGRldGVjdCBzdGF0ZVxuIik7CisJCX0gZWxzZSB7CisJCQkvKiBEaXNhYmxlIExUU1NNIGFmdGVyIGxpbmsgaXMgaW4gZGV0ZWN0IHN0YXRlICovCisJCQlkYXRhID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0NUUkwpOworCQkJZGF0YSAmPSB+QVBQTF9DVFJMX0xUU1NNX0VOOworCQkJYXBwbF93cml0ZWwocGNpZSwgZGF0YSwgQVBQTF9DVFJMKTsKKwkJfQorCX0KKwkvKgorCSAqIERCSSByZWdpc3RlcnMgbWF5IG5vdCBiZSBhY2Nlc3NpYmxlIGFmdGVyIHRoaXMgYXMgUExMLUUgd291bGQgYmUKKwkgKiBkb3duIGRlcGVuZGluZyBvbiBob3cgQ0xLUkVRIGlzIHB1bGxlZCBieSBlbmQgcG9pbnQKKwkgKi8KKwlkYXRhID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX1BJTk1VWCk7CisJZGF0YSB8PSAoQVBQTF9QSU5NVVhfQ0xLUkVRX09WRVJSSURFX0VOIHwgQVBQTF9QSU5NVVhfQ0xLUkVRX09WRVJSSURFKTsKKwkvKiBDdXQgUkVGQ0xLIHRvIHNsb3QgKi8KKwlkYXRhIHw9IEFQUExfUElOTVVYX0NMS19PVVRQVVRfSU5fT1ZFUlJJREVfRU47CisJZGF0YSAmPSB+QVBQTF9QSU5NVVhfQ0xLX09VVFBVVF9JTl9PVkVSUklERTsKKwlhcHBsX3dyaXRlbChwY2llLCBkYXRhLCBBUFBMX1BJTk1VWCk7Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcGNpZV9kZWluaXRfY29udHJvbGxlcihzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSkKK3sKKwl0ZWdyYV9wY2llX2Rvd25zdHJlYW1fZGV2X3RvX0QwKHBjaWUpOworCWR3X3BjaWVfaG9zdF9kZWluaXQoJnBjaWUtPnBjaS5wcCk7CisJdGVncmFfcGNpZV9kd19wbWVfdHVybm9mZihwY2llKTsKKworCXJldHVybiBfX2RlaW5pdF9jb250cm9sbGVyKHBjaWUpOworfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfY29uZmlnX3JwKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQoreworCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaWUtPnBjaS5wcDsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2llLT5kZXY7CisJY2hhciAqbmFtZTsKKwlpbnQgcmV0OworCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BDSV9NU0kpKSB7CisJCXBwLT5tc2lfaXJxID0gb2ZfaXJxX2dldF9ieW5hbWUoZGV2LT5vZl9ub2RlLCAibXNpIik7CisJCWlmICghcHAtPm1zaV9pcnEpIHsKKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBNU0kgaW50ZXJydXB0XG4iKTsKKwkJCXJldHVybiAtRU5PREVWOworCQl9CisJfQorCisJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKKworCXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2KTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgcnVudGltZSBzeW5jIGZvciBQQ0llIGRldjogJWRcbiIsCisJCQlyZXQpOworCQlnb3RvIGZhaWxfcG1fZ2V0X3N5bmM7CisJfQorCisJcmV0ID0gcGluY3RybF9wbV9zZWxlY3RfZGVmYXVsdF9zdGF0ZShkZXYpOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGNvbmZpZ3VyZSBzaWRlYmFuZCBwaW5zOiAlZFxuIiwgcmV0KTsKKwkJZ290byBmYWlsX3BpbmN0cmw7CisJfQorCisJdGVncmFfcGNpZV9pbml0X2NvbnRyb2xsZXIocGNpZSk7CisKKwlwY2llLT5saW5rX3N0YXRlID0gdGVncmFfcGNpZV9kd19saW5rX3VwKCZwY2llLT5wY2kpOworCWlmICghcGNpZS0+bGlua19zdGF0ZSkgeworCQlyZXQgPSAtRU5PTUVESVVNOworCQlnb3RvIGZhaWxfaG9zdF9pbml0OworCX0KKworCW5hbWUgPSBkZXZtX2thc3ByaW50ZihkZXYsIEdGUF9LRVJORUwsICIlcE9GUCIsIGRldi0+b2Zfbm9kZSk7CisJaWYgKCFuYW1lKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZmFpbF9ob3N0X2luaXQ7CisJfQorCisJcGNpZS0+ZGVidWdmcyA9IGRlYnVnZnNfY3JlYXRlX2RpcihuYW1lLCBOVUxMKTsKKwlpZiAoIXBjaWUtPmRlYnVnZnMpCisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGNyZWF0ZSBkZWJ1Z2ZzXG4iKTsKKwllbHNlCisJCWluaXRfZGVidWdmcyhwY2llKTsKKworCXJldHVybiByZXQ7CisKK2ZhaWxfaG9zdF9pbml0OgorCXRlZ3JhX3BjaWVfZGVpbml0X2NvbnRyb2xsZXIocGNpZSk7CitmYWlsX3BpbmN0cmw6CisJcG1fcnVudGltZV9wdXRfc3luYyhkZXYpOworZmFpbF9wbV9nZXRfc3luYzoKKwlwbV9ydW50aW1lX2Rpc2FibGUoZGV2KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfZHdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCByZXNvdXJjZSAqYXR1X2RtYV9yZXM7CisJc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWU7CisJc3RydWN0IHJlc291cmNlICpkYmlfcmVzOworCXN0cnVjdCBwY2llX3BvcnQgKnBwOworCXN0cnVjdCBkd19wY2llICpwY2k7CisJc3RydWN0IHBoeSAqKnBoeXM7CisJY2hhciAqbmFtZTsKKwlpbnQgcmV0OworCXUzMiBpOworCisJcGNpZSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcGNpZSksIEdGUF9LRVJORUwpOworCWlmICghcGNpZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwY2kgPSAmcGNpZS0+cGNpOworCXBjaS0+ZGV2ID0gJnBkZXYtPmRldjsKKwlwY2ktPm9wcyA9ICZ0ZWdyYV9kd19wY2llX29wczsKKwlwcCA9ICZwY2ktPnBwOworCXBjaWUtPmRldiA9ICZwZGV2LT5kZXY7CisKKwlyZXQgPSB0ZWdyYV9wY2llX2R3X3BhcnNlX2R0KHBjaWUpOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHBhcnNlIGRldmljZSB0cmVlOiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXQgPSB0ZWdyYV9wY2llX2dldF9zbG90X3JlZ3VsYXRvcnMocGNpZSk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IHNsb3QgcmVndWxhdG9yczogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcGNpZS0+cGV4X2N0bF9zdXBwbHkgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoZGV2LCAidmRkaW8tcGV4LWN0bCIpOworCWlmIChJU19FUlIocGNpZS0+cGV4X2N0bF9zdXBwbHkpKSB7CisJCXJldCA9IFBUUl9FUlIocGNpZS0+cGV4X2N0bF9zdXBwbHkpOworCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCisJCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgcmVndWxhdG9yOiAlbGRcbiIsCisJCQkJUFRSX0VSUihwY2llLT5wZXhfY3RsX3N1cHBseSkpOworCQlyZXR1cm4gcmV0OworCX0KKworCXBjaWUtPmNvcmVfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgImNvcmUiKTsKKwlpZiAoSVNfRVJSKHBjaWUtPmNvcmVfY2xrKSkgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgY29yZSBjbG9jazogJWxkXG4iLAorCQkJUFRSX0VSUihwY2llLT5jb3JlX2NsaykpOworCQlyZXR1cm4gUFRSX0VSUihwY2llLT5jb3JlX2Nsayk7CisJfQorCisJcGNpZS0+YXBwbF9yZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElPUkVTT1VSQ0VfTUVNLAorCQkJCQkJICAgICAgImFwcGwiKTsKKwlpZiAoIXBjaWUtPmFwcGxfcmVzKSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGZpbmQgXCJhcHBsXCIgcmVnaW9uXG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJcGNpZS0+YXBwbF9iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgcGNpZS0+YXBwbF9yZXMpOworCWlmIChJU19FUlIocGNpZS0+YXBwbF9iYXNlKSkKKwkJcmV0dXJuIFBUUl9FUlIocGNpZS0+YXBwbF9iYXNlKTsKKworCXBjaWUtPmNvcmVfYXBiX3JzdCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXQoZGV2LCAiYXBiIik7CisJaWYgKElTX0VSUihwY2llLT5jb3JlX2FwYl9yc3QpKSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBBUEIgcmVzZXQ6ICVsZFxuIiwKKwkJCVBUUl9FUlIocGNpZS0+Y29yZV9hcGJfcnN0KSk7CisJCXJldHVybiBQVFJfRVJSKHBjaWUtPmNvcmVfYXBiX3JzdCk7CisJfQorCisJcGh5cyA9IGRldm1fa2NhbGxvYyhkZXYsIHBjaWUtPnBoeV9jb3VudCwgc2l6ZW9mKCpwaHlzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwaHlzKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAoaSA9IDA7IGkgPCBwY2llLT5waHlfY291bnQ7IGkrKykgeworCQluYW1lID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICJwMnUtJXUiLCBpKTsKKwkJaWYgKCFuYW1lKSB7CisJCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBjcmVhdGUgUDJVIHN0cmluZ1xuIik7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCQlwaHlzW2ldID0gZGV2bV9waHlfZ2V0KGRldiwgbmFtZSk7CisJCWtmcmVlKG5hbWUpOworCQlpZiAoSVNfRVJSKHBoeXNbaV0pKSB7CisJCQlyZXQgPSBQVFJfRVJSKHBoeXNbaV0pOworCQkJaWYgKHJldCAhPSAtRVBST0JFX0RFRkVSKQorCQkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBQSFk6ICVkXG4iLCByZXQpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCXBjaWUtPnBoeXMgPSBwaHlzOworCisJZGJpX3JlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZV9ieW5hbWUocGRldiwgSU9SRVNPVVJDRV9NRU0sICJkYmkiKTsKKwlpZiAoIWRiaV9yZXMpIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZmluZCBcImRiaVwiIHJlZ2lvblxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKwlwY2llLT5kYmlfcmVzID0gZGJpX3JlczsKKworCXBjaS0+ZGJpX2Jhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBkYmlfcmVzKTsKKwlpZiAoSVNfRVJSKHBjaS0+ZGJpX2Jhc2UpKQorCQlyZXR1cm4gUFRSX0VSUihwY2ktPmRiaV9iYXNlKTsKKworCS8qIFRlZ3JhIEhXIGxvY2F0ZXMgREJJMiBhdCBhIGZpeGVkIG9mZnNldCBmcm9tIERCSSAqLworCXBjaS0+ZGJpX2Jhc2UyID0gcGNpLT5kYmlfYmFzZSArIDB4MTAwMDsKKworCWF0dV9kbWFfcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShwZGV2LCBJT1JFU09VUkNFX01FTSwKKwkJCQkJCSAgICJhdHVfZG1hIik7CisJaWYgKCFhdHVfZG1hX3JlcykgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBmaW5kIFwiYXR1X2RtYVwiIHJlZ2lvblxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKwlwY2llLT5hdHVfZG1hX3JlcyA9IGF0dV9kbWFfcmVzOworCisJcGNpLT5hdHVfYmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIGF0dV9kbWFfcmVzKTsKKwlpZiAoSVNfRVJSKHBjaS0+YXR1X2Jhc2UpKQorCQlyZXR1cm4gUFRSX0VSUihwY2ktPmF0dV9iYXNlKTsKKworCXBjaWUtPmNvcmVfcnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldChkZXYsICJjb3JlIik7CisJaWYgKElTX0VSUihwY2llLT5jb3JlX3JzdCkpIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IGNvcmUgcmVzZXQ6ICVsZFxuIiwKKwkJCVBUUl9FUlIocGNpZS0+Y29yZV9yc3QpKTsKKwkJcmV0dXJuIFBUUl9FUlIocGNpZS0+Y29yZV9yc3QpOworCX0KKworCXBwLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShwZGV2LCAiaW50ciIpOworCWlmICghcHAtPmlycSkgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgXCJpbnRyXCIgaW50ZXJydXB0XG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIHBwLT5pcnEsIHRlZ3JhX3BjaWVfaXJxX2hhbmRsZXIsCisJCQkgICAgICAgSVJRRl9TSEFSRUQsICJ0ZWdyYS1wY2llLWludHIiLCBwY2llKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3QgSVJRICVkOiAlZFxuIiwgcHAtPmlycSwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlwY2llLT5icG1wID0gdGVncmFfYnBtcF9nZXQoZGV2KTsKKwlpZiAoSVNfRVJSKHBjaWUtPmJwbXApKQorCQlyZXR1cm4gUFRSX0VSUihwY2llLT5icG1wKTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHBjaWUpOworCisJcmV0ID0gdGVncmFfcGNpZV9jb25maWdfcnAocGNpZSk7CisJaWYgKHJldCAmJiByZXQgIT0gLUVOT01FRElVTSkKKwkJZ290byBmYWlsOworCWVsc2UKKwkJcmV0dXJuIDA7CisKK2ZhaWw6CisJdGVncmFfYnBtcF9wdXQocGNpZS0+YnBtcCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB0ZWdyYV9wY2llX2R3X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlpZiAoIXBjaWUtPmxpbmtfc3RhdGUpCisJCXJldHVybiAwOworCisJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHBjaWUtPmRlYnVnZnMpOworCXRlZ3JhX3BjaWVfZGVpbml0X2NvbnRyb2xsZXIocGNpZSk7CisJcG1fcnVudGltZV9wdXRfc3luYyhwY2llLT5kZXYpOworCXBtX3J1bnRpbWVfZGlzYWJsZShwY2llLT5kZXYpOworCXRlZ3JhX2JwbXBfcHV0KHBjaWUtPmJwbXApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcGNpZV9kd19zdXNwZW5kX2xhdGUoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdTMyIHZhbDsKKworCWlmICghcGNpZS0+bGlua19zdGF0ZSkKKwkJcmV0dXJuIDA7CisKKwkvKiBFbmFibGUgSFdfSE9UX1JTVCBtb2RlICovCisJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0NUUkwpOworCXZhbCAmPSB+KEFQUExfQ1RSTF9IV19IT1RfUlNUX01PREVfTUFTSyA8PAorCQkgQVBQTF9DVFJMX0hXX0hPVF9SU1RfTU9ERV9TSElGVCk7CisJdmFsIHw9IEFQUExfQ1RSTF9IV19IT1RfUlNUX0VOOworCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9DVFJMKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfZHdfc3VzcGVuZF9ub2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCWlmICghcGNpZS0+bGlua19zdGF0ZSkKKwkJcmV0dXJuIDA7CisKKwkvKiBTYXZlIE1TSSBpbnRlcnJ1cHQgdmVjdG9yICovCisJcGNpZS0+bXNpX2N0cmxfaW50ID0gZHdfcGNpZV9yZWFkbF9kYmkoJnBjaWUtPnBjaSwKKwkJCQkJICAgICAgIFBPUlRfTE9HSUNfTVNJX0NUUkxfSU5UXzBfRU4pOworCXRlZ3JhX3BjaWVfZG93bnN0cmVhbV9kZXZfdG9fRDAocGNpZSk7CisJdGVncmFfcGNpZV9kd19wbWVfdHVybm9mZihwY2llKTsKKworCXJldHVybiBfX2RlaW5pdF9jb250cm9sbGVyKHBjaWUpOworfQorCitzdGF0aWMgaW50IHRlZ3JhX3BjaWVfZHdfcmVzdW1lX25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludCByZXQ7CisKKwlpZiAoIXBjaWUtPmxpbmtfc3RhdGUpCisJCXJldHVybiAwOworCisJcmV0ID0gdGVncmFfcGNpZV9jb25maWdfY29udHJvbGxlcihwY2llLCB0cnVlKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHRlZ3JhX3BjaWVfZHdfaG9zdF9pbml0KCZwY2llLT5wY2kucHApOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGluaXQgaG9zdDogJWRcbiIsIHJldCk7CisJCWdvdG8gZmFpbF9ob3N0X2luaXQ7CisJfQorCisJLyogUmVzdG9yZSBNU0kgaW50ZXJydXB0IHZlY3RvciAqLworCWR3X3BjaWVfd3JpdGVsX2RiaSgmcGNpZS0+cGNpLCBQT1JUX0xPR0lDX01TSV9DVFJMX0lOVF8wX0VOLAorCQkJICAgcGNpZS0+bXNpX2N0cmxfaW50KTsKKworCXJldHVybiAwOworCitmYWlsX2hvc3RfaW5pdDoKKwlyZXR1cm4gX19kZWluaXRfY29udHJvbGxlcihwY2llKTsKK30KKworc3RhdGljIGludCB0ZWdyYV9wY2llX2R3X3Jlc3VtZV9lYXJseShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1MzIgdmFsOworCisJaWYgKCFwY2llLT5saW5rX3N0YXRlKQorCQlyZXR1cm4gMDsKKworCS8qIERpc2FibGUgSFdfSE9UX1JTVCBtb2RlICovCisJdmFsID0gYXBwbF9yZWFkbChwY2llLCBBUFBMX0NUUkwpOworCXZhbCAmPSB+KEFQUExfQ1RSTF9IV19IT1RfUlNUX01PREVfTUFTSyA8PAorCQkgQVBQTF9DVFJMX0hXX0hPVF9SU1RfTU9ERV9TSElGVCk7CisJdmFsIHw9IEFQUExfQ1RSTF9IV19IT1RfUlNUX01PREVfSU1EVF9SU1QgPDwKKwkgICAgICAgQVBQTF9DVFJMX0hXX0hPVF9SU1RfTU9ERV9TSElGVDsKKwl2YWwgJj0gfkFQUExfQ1RSTF9IV19IT1RfUlNUX0VOOworCWFwcGxfd3JpdGVsKHBjaWUsIHZhbCwgQVBQTF9DVFJMKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB0ZWdyYV9wY2llX2R3X3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWlmICghcGNpZS0+bGlua19zdGF0ZSkKKwkJcmV0dXJuOworCisJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHBjaWUtPmRlYnVnZnMpOworCXRlZ3JhX3BjaWVfZG93bnN0cmVhbV9kZXZfdG9fRDAocGNpZSk7CisKKwlkaXNhYmxlX2lycShwY2llLT5wY2kucHAuaXJxKTsKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfUENJX01TSSkpCisJCWRpc2FibGVfaXJxKHBjaWUtPnBjaS5wcC5tc2lfaXJxKTsKKworCXRlZ3JhX3BjaWVfZHdfcG1lX3R1cm5vZmYocGNpZSk7CisJX19kZWluaXRfY29udHJvbGxlcihwY2llKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdGVncmFfcGNpZV9kd19vZl9tYXRjaFtdID0geworCXsKKwkJLmNvbXBhdGlibGUgPSAibnZpZGlhLHRlZ3JhMTk0LXBjaWUiLAorCX0sCisJe30sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgdGVncmFfcGNpZV9kd19wbV9vcHMgPSB7CisJLnN1c3BlbmRfbGF0ZSA9IHRlZ3JhX3BjaWVfZHdfc3VzcGVuZF9sYXRlLAorCS5zdXNwZW5kX25vaXJxID0gdGVncmFfcGNpZV9kd19zdXNwZW5kX25vaXJxLAorCS5yZXN1bWVfbm9pcnEgPSB0ZWdyYV9wY2llX2R3X3Jlc3VtZV9ub2lycSwKKwkucmVzdW1lX2Vhcmx5ID0gdGVncmFfcGNpZV9kd19yZXN1bWVfZWFybHksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB0ZWdyYV9wY2llX2R3X2RyaXZlciA9IHsKKwkucHJvYmUgPSB0ZWdyYV9wY2llX2R3X3Byb2JlLAorCS5yZW1vdmUgPSB0ZWdyYV9wY2llX2R3X3JlbW92ZSwKKwkuc2h1dGRvd24gPSB0ZWdyYV9wY2llX2R3X3NodXRkb3duLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lCT0gInRlZ3JhMTk0LXBjaWUiLAorCQkucG0gPSAmdGVncmFfcGNpZV9kd19wbV9vcHMsCisJCS5vZl9tYXRjaF90YWJsZSA9IHRlZ3JhX3BjaWVfZHdfb2ZfbWF0Y2gsCisJfSwKK307Cittb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHRlZ3JhX3BjaWVfZHdfZHJpdmVyKTsKKworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdGVncmFfcGNpZV9kd19vZl9tYXRjaCk7CisKK01PRFVMRV9BVVRIT1IoIlZpZHlhIFNhZ2FyIDx2aWR5YXNAbnZpZGlhLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiTlZJRElBIFBDSWUgaG9zdCBjb250cm9sbGVyIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1jb21tb24uYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWhvc3QtY29tbW9uLmMKaW5kZXggYzc0Mjg4MS4uYzhjYjljNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1jb21tb24uYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1ob3N0LWNvbW1vbi5jCkBAIC00Myw5ICs0Myw4IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2NvbmZpZ193aW5kb3cgKmdlbl9wY2lfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWdvdG8gZXJyX291dDsKIAl9CiAKLQllcnIgPSBkZXZtX2FkZF9hY3Rpb24oZGV2LCBnZW5fcGNpX3VubWFwX2NmZywgY2ZnKTsKKwllcnIgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoZGV2LCBnZW5fcGNpX3VubWFwX2NmZywgY2ZnKTsKIAlpZiAoZXJyKSB7Ci0JCWdlbl9wY2lfdW5tYXBfY2ZnKGNmZyk7CiAJCWdvdG8gZXJyX291dDsKIAl9CiAJcmV0dXJuIGNmZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMKaW5kZXggMGNhNzNjOC4uZjFmMzAwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMKQEAgLTI4MDksNiArMjgwOSw0OCBAQCBzdGF0aWMgdm9pZCBwdXRfaHZwY2lidXMoc3RydWN0IGh2X3BjaWJ1c19kZXZpY2UgKmhidXMpCiAJCWNvbXBsZXRlKCZoYnVzLT5yZW1vdmVfZXZlbnQpOwogfQogCisjZGVmaW5lIEhWUENJX0RPTV9NQVBfU0laRSAoNjQgKiAxMDI0KQorc3RhdGljIERFQ0xBUkVfQklUTUFQKGh2cGNpX2RvbV9tYXAsIEhWUENJX0RPTV9NQVBfU0laRSk7CisKKy8qCisgKiBQQ0kgZG9tYWluIG51bWJlciAwIGlzIHVzZWQgYnkgZW11bGF0ZWQgZGV2aWNlcyBvbiBHZW4xIFZNcywgc28gZGVmaW5lIDAKKyAqIGFzIGludmFsaWQgZm9yIHBhc3N0aHJvdWdoIFBDSSBkZXZpY2VzIG9mIHRoaXMgZHJpdmVyLgorICovCisjZGVmaW5lIEhWUENJX0RPTV9JTlZBTElEIDAKKworLyoqCisgKiBodl9nZXRfZG9tX251bSgpIC0gR2V0IGEgdmFsaWQgUENJIGRvbWFpbiBudW1iZXIKKyAqIENoZWNrIGlmIHRoZSBQQ0kgZG9tYWluIG51bWJlciBpcyBpbiB1c2UsIGFuZCByZXR1cm4gYW5vdGhlciBudW1iZXIgaWYKKyAqIGl0IGlzIGluIHVzZS4KKyAqCisgKiBAZG9tOiBSZXF1ZXN0ZWQgZG9tYWluIG51bWJlcgorICoKKyAqIHJldHVybjogZG9tYWluIG51bWJlciBvbiBzdWNjZXNzLCBIVlBDSV9ET01fSU5WQUxJRCBvbiBmYWlsdXJlCisgKi8KK3N0YXRpYyB1MTYgaHZfZ2V0X2RvbV9udW0odTE2IGRvbSkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWlmICh0ZXN0X2FuZF9zZXRfYml0KGRvbSwgaHZwY2lfZG9tX21hcCkgPT0gMCkKKwkJcmV0dXJuIGRvbTsKKworCWZvcl9lYWNoX2NsZWFyX2JpdChpLCBodnBjaV9kb21fbWFwLCBIVlBDSV9ET01fTUFQX1NJWkUpIHsKKwkJaWYgKHRlc3RfYW5kX3NldF9iaXQoaSwgaHZwY2lfZG9tX21hcCkgPT0gMCkKKwkJCXJldHVybiBpOworCX0KKworCXJldHVybiBIVlBDSV9ET01fSU5WQUxJRDsKK30KKworLyoqCisgKiBodl9wdXRfZG9tX251bSgpIC0gTWFyayB0aGUgUENJIGRvbWFpbiBudW1iZXIgYXMgZnJlZQorICogQGRvbTogRG9tYWluIG51bWJlciB0byBiZSBmcmVlZAorICovCitzdGF0aWMgdm9pZCBodl9wdXRfZG9tX251bSh1MTYgZG9tKQoreworCWNsZWFyX2JpdChkb20sIGh2cGNpX2RvbV9tYXApOworfQorCiAvKioKICAqIGh2X3BjaV9wcm9iZSgpIC0gTmV3IFZNQnVzIGNoYW5uZWwgcHJvYmUsIGZvciBhIHJvb3QgUENJIGJ1cwogICogQGhkZXY6CVZNQnVzJ3MgdHJhY2tpbmcgc3RydWN0IGZvciB0aGlzIHJvb3QgUENJIGJ1cwpAQCAtMjgyMCw2ICsyODYyLDcgQEAgc3RhdGljIGludCBodl9wY2lfcHJvYmUoc3RydWN0IGh2X2RldmljZSAqaGRldiwKIAkJCWNvbnN0IHN0cnVjdCBodl92bWJ1c19kZXZpY2VfaWQgKmRldl9pZCkKIHsKIAlzdHJ1Y3QgaHZfcGNpYnVzX2RldmljZSAqaGJ1czsKKwl1MTYgZG9tX3JlcSwgZG9tOwogCWNoYXIgKm5hbWU7CiAJaW50IHJldDsKIApAQCAtMjgzNSwxOSArMjg3OCwzNCBAQCBzdGF0aWMgaW50IGh2X3BjaV9wcm9iZShzdHJ1Y3QgaHZfZGV2aWNlICpoZGV2LAogCWhidXMtPnN0YXRlID0gaHZfcGNpYnVzX2luaXQ7CiAKIAkvKgotCSAqIFRoZSBQQ0kgYnVzICJkb21haW4iIGlzIHdoYXQgaXMgY2FsbGVkICJzZWdtZW50IiBpbiBBQ1BJIGFuZAotCSAqIG90aGVyIHNwZWNzLiAgUHVsbCBpdCBmcm9tIHRoZSBpbnN0YW5jZSBJRCwgdG8gZ2V0IHNvbWV0aGluZwotCSAqIHVuaXF1ZS4gIEJ5dGVzIDggYW5kIDkgYXJlIHdoYXQgaXMgdXNlZCBpbiBXaW5kb3dzIGd1ZXN0cywgc28KLQkgKiBkbyB0aGUgc2FtZSB0aGluZyBmb3IgY29uc2lzdGVuY3kuICBOb3RlIHRoYXQsIHNpbmNlIHRoaXMgY29kZQotCSAqIG9ubHkgcnVucyBpbiBhIEh5cGVyLVYgVk0sIEh5cGVyLVYgY2FuIChhbmQgZG9lcykgZ3VhcmFudGVlCi0JICogdGhhdCAoMSkgdGhlIG9ubHkgZG9tYWluIGluIHVzZSBmb3Igc29tZXRoaW5nIHRoYXQgbG9va3MgbGlrZQotCSAqIGEgcGh5c2ljYWwgUENJIGJ1cyAod2hpY2ggaXMgYWN0dWFsbHkgZW11bGF0ZWQgYnkgdGhlCi0JICogaHlwZXJ2aXNvcikgaXMgZG9tYWluIDAgYW5kICgyKSB0aGVyZSB3aWxsIGJlIG5vIG92ZXJsYXAKLQkgKiBiZXR3ZWVuIGRvbWFpbnMgZGVyaXZlZCBmcm9tIHRoZXNlIGluc3RhbmNlIElEcyBpbiB0aGUgc2FtZQotCSAqIFZNLgorCSAqIFRoZSBQQ0kgYnVzICJkb21haW4iIGlzIHdoYXQgaXMgY2FsbGVkICJzZWdtZW50IiBpbiBBQ1BJIGFuZCBvdGhlcgorCSAqIHNwZWNzLiBQdWxsIGl0IGZyb20gdGhlIGluc3RhbmNlIElELCB0byBnZXQgc29tZXRoaW5nIHVzdWFsbHkKKwkgKiB1bmlxdWUuIEluIHJhcmUgY2FzZXMgb2YgY29sbGlzaW9uLCB3ZSB3aWxsIGZpbmQgb3V0IGFub3RoZXIgbnVtYmVyCisJICogbm90IGluIHVzZS4KKwkgKgorCSAqIE5vdGUgdGhhdCwgc2luY2UgdGhpcyBjb2RlIG9ubHkgcnVucyBpbiBhIEh5cGVyLVYgVk0sIEh5cGVyLVYKKwkgKiB0b2dldGhlciB3aXRoIHRoaXMgZ3Vlc3QgZHJpdmVyIGNhbiBndWFyYW50ZWUgdGhhdCAoMSkgVGhlIG9ubHkKKwkgKiBkb21haW4gdXNlZCBieSBHZW4xIFZNcyBmb3Igc29tZXRoaW5nIHRoYXQgbG9va3MgbGlrZSBhIHBoeXNpY2FsCisJICogUENJIGJ1cyAod2hpY2ggaXMgYWN0dWFsbHkgZW11bGF0ZWQgYnkgdGhlIGh5cGVydmlzb3IpIGlzIGRvbWFpbiAwLgorCSAqICgyKSBUaGVyZSB3aWxsIGJlIG5vIG92ZXJsYXAgYmV0d2VlbiBkb21haW5zIChhZnRlciBmaXhpbmcgcG9zc2libGUKKwkgKiBjb2xsaXNpb25zKSBpbiB0aGUgc2FtZSBWTS4KIAkgKi8KLQloYnVzLT5zeXNkYXRhLmRvbWFpbiA9IGhkZXYtPmRldl9pbnN0YW5jZS5iWzldIHwKLQkJCSAgICAgICBoZGV2LT5kZXZfaW5zdGFuY2UuYls4XSA8PCA4OworCWRvbV9yZXEgPSBoZGV2LT5kZXZfaW5zdGFuY2UuYls1XSA8PCA4IHwgaGRldi0+ZGV2X2luc3RhbmNlLmJbNF07CisJZG9tID0gaHZfZ2V0X2RvbV9udW0oZG9tX3JlcSk7CisKKwlpZiAoZG9tID09IEhWUENJX0RPTV9JTlZBTElEKSB7CisJCWRldl9lcnIoJmhkZXYtPmRldmljZSwKKwkJCSJVbmFibGUgdG8gdXNlIGRvbSMgMHglaHggb3Igb3RoZXIgbnVtYmVycyIsIGRvbV9yZXEpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGZyZWVfYnVzOworCX0KKworCWlmIChkb20gIT0gZG9tX3JlcSkKKwkJZGV2X2luZm8oJmhkZXYtPmRldmljZSwKKwkJCSAiUENJIGRvbSMgMHglaHggaGFzIGNvbGxpc2lvbiwgdXNpbmcgMHglaHgiLAorCQkJIGRvbV9yZXEsIGRvbSk7CisKKwloYnVzLT5zeXNkYXRhLmRvbWFpbiA9IGRvbTsKIAogCWhidXMtPmhkZXYgPSBoZGV2OwogCXJlZmNvdW50X3NldCgmaGJ1cy0+cmVtb3ZlX2xvY2ssIDEpOwpAQCAtMjg2Miw3ICsyOTIwLDcgQEAgc3RhdGljIGludCBodl9wY2lfcHJvYmUoc3RydWN0IGh2X2RldmljZSAqaGRldiwKIAkJCQkJICAgaGJ1cy0+c3lzZGF0YS5kb21haW4pOwogCWlmICghaGJ1cy0+d3EpIHsKIAkJcmV0ID0gLUVOT01FTTsKLQkJZ290byBmcmVlX2J1czsKKwkJZ290byBmcmVlX2RvbTsKIAl9CiAKIAlyZXQgPSB2bWJ1c19vcGVuKGhkZXYtPmNoYW5uZWwsIHBjaV9yaW5nX3NpemUsIHBjaV9yaW5nX3NpemUsIE5VTEwsIDAsCkBAIC0yOTQ2LDYgKzMwMDQsOCBAQCBzdGF0aWMgaW50IGh2X3BjaV9wcm9iZShzdHJ1Y3QgaHZfZGV2aWNlICpoZGV2LAogCXZtYnVzX2Nsb3NlKGhkZXYtPmNoYW5uZWwpOwogZGVzdHJveV93cToKIAlkZXN0cm95X3dvcmtxdWV1ZShoYnVzLT53cSk7CitmcmVlX2RvbToKKwlodl9wdXRfZG9tX251bShoYnVzLT5zeXNkYXRhLmRvbWFpbik7CiBmcmVlX2J1czoKIAlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpaGJ1cyk7CiAJcmV0dXJuIHJldDsKQEAgLTMwMDgsOCArMzA2OCw4IEBAIHN0YXRpYyBpbnQgaHZfcGNpX3JlbW92ZShzdHJ1Y3QgaHZfZGV2aWNlICpoZGV2KQogCQkvKiBSZW1vdmUgdGhlIGJ1cyBmcm9tIFBDSSdzIHBvaW50IG9mIHZpZXcuICovCiAJCXBjaV9sb2NrX3Jlc2Nhbl9yZW1vdmUoKTsKIAkJcGNpX3N0b3Bfcm9vdF9idXMoaGJ1cy0+cGNpX2J1cyk7Ci0JCXBjaV9yZW1vdmVfcm9vdF9idXMoaGJ1cy0+cGNpX2J1cyk7CiAJCWh2X3BjaV9yZW1vdmVfc2xvdHMoaGJ1cyk7CisJCXBjaV9yZW1vdmVfcm9vdF9idXMoaGJ1cy0+cGNpX2J1cyk7CiAJCXBjaV91bmxvY2tfcmVzY2FuX3JlbW92ZSgpOwogCQloYnVzLT5zdGF0ZSA9IGh2X3BjaWJ1c19yZW1vdmVkOwogCX0KQEAgLTMwMjcsNiArMzA4Nyw5IEBAIHN0YXRpYyBpbnQgaHZfcGNpX3JlbW92ZShzdHJ1Y3QgaHZfZGV2aWNlICpoZGV2KQogCXB1dF9odnBjaWJ1cyhoYnVzKTsKIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCZoYnVzLT5yZW1vdmVfZXZlbnQpOwogCWRlc3Ryb3lfd29ya3F1ZXVlKGhidXMtPndxKTsKKworCWh2X3B1dF9kb21fbnVtKGhidXMtPnN5c2RhdGEuZG9tYWluKTsKKwogCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZyloYnVzKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTMwNTgsNiArMzEyMSw5IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2h2X3BjaV9kcnYodm9pZCkKIAogc3RhdGljIGludCBfX2luaXQgaW5pdF9odl9wY2lfZHJ2KHZvaWQpCiB7CisJLyogU2V0IHRoZSBpbnZhbGlkIGRvbWFpbiBudW1iZXIncyBiaXQsIHNvIGl0IHdpbGwgbm90IGJlIHVzZWQgKi8KKwlzZXRfYml0KEhWUENJX0RPTV9JTlZBTElELCBodnBjaV9kb21fbWFwKTsKKwogCS8qIEluaXRpYWxpemUgUENJIGJsb2NrIHIvdyBpbnRlcmZhY2UgKi8KIAlodnBjaV9ibG9ja19vcHMucmVhZF9ibG9jayA9IGh2X3JlYWRfY29uZmlnX2Jsb2NrOwogCWh2cGNpX2Jsb2NrX29wcy53cml0ZV9ibG9jayA9IGh2X3dyaXRlX2NvbmZpZ19ibG9jazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXRlZ3JhLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10ZWdyYS5jCmluZGV4IDlhOTE3YjIuLjY3M2ExNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXRlZ3JhLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGVncmEuYwpAQCAtMjIzNywxNCArMjIzNywxNSBAQCBzdGF0aWMgaW50IHRlZ3JhX3BjaWVfcGFyc2VfZHQoc3RydWN0IHRlZ3JhX3BjaWUgKnBjaWUpCiAJCWVyciA9IG9mX3BjaV9nZXRfZGV2Zm4ocG9ydCk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBwYXJzZSBhZGRyZXNzOiAlZFxuIiwgZXJyKTsKLQkJCXJldHVybiBlcnI7CisJCQlnb3RvIGVycl9ub2RlX3B1dDsKIAkJfQogCiAJCWluZGV4ID0gUENJX1NMT1QoZXJyKTsKIAogCQlpZiAoaW5kZXggPCAxIHx8IGluZGV4ID4gc29jLT5udW1fcG9ydHMpIHsKIAkJCWRldl9lcnIoZGV2LCAiaW52YWxpZCBwb3J0IG51bWJlcjogJWRcbiIsIGluZGV4KTsKLQkJCXJldHVybiAtRUlOVkFMOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyX25vZGVfcHV0OwogCQl9CiAKIAkJaW5kZXgtLTsKQEAgLTIyNTMsMTIgKzIyNTQsMTMgQEAgc3RhdGljIGludCB0ZWdyYV9wY2llX3BhcnNlX2R0KHN0cnVjdCB0ZWdyYV9wY2llICpwY2llKQogCQlpZiAoZXJyIDwgMCkgewogCQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcGFyc2UgIyBvZiBsYW5lczogJWRcbiIsCiAJCQkJZXJyKTsKLQkJCXJldHVybiBlcnI7CisJCQlnb3RvIGVycl9ub2RlX3B1dDsKIAkJfQogCiAJCWlmICh2YWx1ZSA+IDE2KSB7CiAJCQlkZXZfZXJyKGRldiwgImludmFsaWQgIyBvZiBsYW5lczogJXVcbiIsIHZhbHVlKTsKLQkJCXJldHVybiAtRUlOVkFMOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyX25vZGVfcHV0OwogCQl9CiAKIAkJbGFuZXMgfD0gdmFsdWUgPDwgKGluZGV4IDw8IDMpOwpAQCAtMjI3MiwxMyArMjI3NCwxNSBAQCBzdGF0aWMgaW50IHRlZ3JhX3BjaWVfcGFyc2VfZHQoc3RydWN0IHRlZ3JhX3BjaWUgKnBjaWUpCiAJCWxhbmUgKz0gdmFsdWU7CiAKIAkJcnAgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnJwKSwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghcnApCi0JCQlyZXR1cm4gLUVOT01FTTsKKwkJaWYgKCFycCkgeworCQkJZXJyID0gLUVOT01FTTsKKwkJCWdvdG8gZXJyX25vZGVfcHV0OworCQl9CiAKIAkJZXJyID0gb2ZfYWRkcmVzc190b19yZXNvdXJjZShwb3J0LCAwLCAmcnAtPnJlZ3MpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcGFyc2UgYWRkcmVzczogJWRcbiIsIGVycik7Ci0JCQlyZXR1cm4gZXJyOworCQkJZ290byBlcnJfbm9kZV9wdXQ7CiAJCX0KIAogCQlJTklUX0xJU1RfSEVBRCgmcnAtPmxpc3QpOwpAQCAtMjMzMCw2ICsyMzM0LDEwIEBAIHN0YXRpYyBpbnQgdGVncmFfcGNpZV9wYXJzZV9kdChzdHJ1Y3QgdGVncmFfcGNpZSAqcGNpZSkKIAkJcmV0dXJuIGVycjsKIAogCXJldHVybiAwOworCitlcnJfbm9kZV9wdXQ6CisJb2Zfbm9kZV9wdXQocG9ydCk7CisJcmV0dXJuIGVycjsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1pcHJvYy1wbGF0Zm9ybS5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWlwcm9jLXBsYXRmb3JtLmMKaW5kZXggNWEzNTUwYi4uOWVlNjIwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWlwcm9jLXBsYXRmb3JtLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWlwcm9jLXBsYXRmb3JtLmMKQEAgLTkzLDEyICs5Myw5IEBAIHN0YXRpYyBpbnQgaXByb2NfcGNpZV9wbHRmbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXBjaWUtPm5lZWRfaWJfY2ZnID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKG5wLCAiZG1hLXJhbmdlcyIpOwogCiAJLyogUEhZIHVzZSBpcyBvcHRpb25hbCAqLwotCXBjaWUtPnBoeSA9IGRldm1fcGh5X2dldChkZXYsICJwY2llLXBoeSIpOwotCWlmIChJU19FUlIocGNpZS0+cGh5KSkgewotCQlpZiAoUFRSX0VSUihwY2llLT5waHkpID09IC1FUFJPQkVfREVGRVIpCi0JCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKLQkJcGNpZS0+cGh5ID0gTlVMTDsKLQl9CisJcGNpZS0+cGh5ID0gZGV2bV9waHlfb3B0aW9uYWxfZ2V0KGRldiwgInBjaWUtcGh5Iik7CisJaWYgKElTX0VSUihwY2llLT5waHkpKQorCQlyZXR1cm4gUFRSX0VSUihwY2llLT5waHkpOwogCiAJcmV0ID0gZGV2bV9vZl9wY2lfZ2V0X2hvc3RfYnJpZGdlX3Jlc291cmNlcyhkZXYsIDAsIDB4ZmYsICZyZXNvdXJjZXMsCiAJCQkJCQkgICAgJmlvYmFzZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbWVkaWF0ZWsuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tZWRpYXRlay5jCmluZGV4IDgwNjAxZTEuLjYyNmE3YzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tZWRpYXRlay5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tZWRpYXRlay5jCkBAIC03Myw2ICs3Myw3IEBACiAjZGVmaW5lIFBDSUVfTVNJX1ZFQ1RPUgkJMHgwYzAKIAogI2RlZmluZSBQQ0lFX0NPTkZfVkVORF9JRAkweDEwMAorI2RlZmluZSBQQ0lFX0NPTkZfREVWSUNFX0lECTB4MTAyCiAjZGVmaW5lIFBDSUVfQ09ORl9DTEFTU19JRAkweDEwNgogCiAjZGVmaW5lIFBDSUVfSU5UX01BU0sJCTB4NDIwCkBAIC0xNDEsMTIgKzE0MiwxNiBAQCBzdHJ1Y3QgbXRrX3BjaWVfcG9ydDsKIC8qKgogICogc3RydWN0IG10a19wY2llX3NvYyAtIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBob3N0IGdlbmVyYXRpb25zCiAgKiBAbmVlZF9maXhfY2xhc3NfaWQ6IHdoZXRoZXIgdGhpcyBob3N0J3MgY2xhc3MgSUQgbmVlZGVkIHRvIGJlIGZpeGVkIG9yIG5vdAorICogQG5lZWRfZml4X2RldmljZV9pZDogd2hldGhlciB0aGlzIGhvc3QncyBkZXZpY2UgSUQgbmVlZGVkIHRvIGJlIGZpeGVkIG9yIG5vdAorICogQGRldmljZV9pZDogZGV2aWNlIElEIHdoaWNoIHRoaXMgaG9zdCBuZWVkIHRvIGJlIGZpeGVkCiAgKiBAb3BzOiBwb2ludGVyIHRvIGNvbmZpZ3VyYXRpb24gYWNjZXNzIGZ1bmN0aW9ucwogICogQHN0YXJ0dXA6IHBvaW50ZXIgdG8gY29udHJvbGxlciBzZXR0aW5nIGZ1bmN0aW9ucwogICogQHNldHVwX2lycTogcG9pbnRlciB0byBpbml0aWFsaXplIElSUSBmdW5jdGlvbnMKICAqLwogc3RydWN0IG10a19wY2llX3NvYyB7CiAJYm9vbCBuZWVkX2ZpeF9jbGFzc19pZDsKKwlib29sIG5lZWRfZml4X2RldmljZV9pZDsKKwl1bnNpZ25lZCBpbnQgZGV2aWNlX2lkOwogCXN0cnVjdCBwY2lfb3BzICpvcHM7CiAJaW50ICgqc3RhcnR1cCkoc3RydWN0IG10a19wY2llX3BvcnQgKnBvcnQpOwogCWludCAoKnNldHVwX2lycSkoc3RydWN0IG10a19wY2llX3BvcnQgKnBvcnQsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSk7CkBAIC02MzAsOCArNjM1LDYgQEAgc3RhdGljIHZvaWQgbXRrX3BjaWVfaW50cl9oYW5kbGVyKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKIAl9CiAKIAljaGFpbmVkX2lycV9leGl0KGlycWNoaXAsIGRlc2MpOwotCi0JcmV0dXJuOwogfQogCiBzdGF0aWMgaW50IG10a19wY2llX3NldHVwX2lycShzdHJ1Y3QgbXRrX3BjaWVfcG9ydCAqcG9ydCwKQEAgLTY5Niw2ICs2OTksOSBAQCBzdGF0aWMgaW50IG10a19wY2llX3N0YXJ0dXBfcG9ydF92MihzdHJ1Y3QgbXRrX3BjaWVfcG9ydCAqcG9ydCkKIAkJd3JpdGV3KHZhbCwgcG9ydC0+YmFzZSArIFBDSUVfQ09ORl9DTEFTU19JRCk7CiAJfQogCisJaWYgKHNvYy0+bmVlZF9maXhfZGV2aWNlX2lkKQorCQl3cml0ZXcoc29jLT5kZXZpY2VfaWQsIHBvcnQtPmJhc2UgKyBQQ0lFX0NPTkZfREVWSUNFX0lEKTsKKwogCS8qIDEwMG1zIHRpbWVvdXQgdmFsdWUgc2hvdWxkIGJlIGVub3VnaCBmb3IgR2VuMS8yIHRyYWluaW5nICovCiAJZXJyID0gcmVhZGxfcG9sbF90aW1lb3V0KHBvcnQtPmJhc2UgKyBQQ0lFX0xJTktfU1RBVFVTX1YyLCB2YWwsCiAJCQkJICEhKHZhbCAmIFBDSUVfUE9SVF9MSU5LVVBfVjIpLCAyMCwKQEAgLTEyMTYsMTEgKzEyMjIsMjEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfcGNpZV9zb2MgbXRrX3BjaWVfc29jX210NzYyMiA9IHsKIAkuc2V0dXBfaXJxID0gbXRrX3BjaWVfc2V0dXBfaXJxLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfcGNpZV9zb2MgbXRrX3BjaWVfc29jX210NzYyOSA9IHsKKwkubmVlZF9maXhfY2xhc3NfaWQgPSB0cnVlLAorCS5uZWVkX2ZpeF9kZXZpY2VfaWQgPSB0cnVlLAorCS5kZXZpY2VfaWQgPSBQQ0lfREVWSUNFX0lEX01FRElBVEVLXzc2MjksCisJLm9wcyA9ICZtdGtfcGNpZV9vcHNfdjIsCisJLnN0YXJ0dXAgPSBtdGtfcGNpZV9zdGFydHVwX3BvcnRfdjIsCisJLnNldHVwX2lycSA9IG10a19wY2llX3NldHVwX2lycSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10a19wY2llX2lkc1tdID0gewogCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQyNzAxLXBjaWUiLCAuZGF0YSA9ICZtdGtfcGNpZV9zb2NfdjEgfSwKIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzYyMy1wY2llIiwgLmRhdGEgPSAmbXRrX3BjaWVfc29jX3YxIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDI3MTItcGNpZSIsIC5kYXRhID0gJm10a19wY2llX3NvY19tdDI3MTIgfSwKIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzYyMi1wY2llIiwgLmRhdGEgPSAmbXRrX3BjaWVfc29jX210NzYyMiB9LAorCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ3NjI5LXBjaWUiLCAuZGF0YSA9ICZtdGtfcGNpZV9zb2NfbXQ3NjI5IH0sCiAJe30sCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVpbC5jCmluZGV4IDY3MmU2MzMuLmE0NWE2NDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVpbC5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVpbC5jCkBAIC04OCw2ICs4OCw3IEBACiAjZGVmaW5lICBBTUFQX0NUUkxfVFlQRV9NQVNLCQkzCiAKICNkZWZpbmUgUEFCX0VYVF9QRVhfQU1BUF9TSVpFTih3aW4pCVBBQl9FWFRfUkVHX0FERFIoMHhiZWYwLCB3aW4pCisjZGVmaW5lIFBBQl9FWFRfUEVYX0FNQVBfQVhJX1dJTih3aW4pCVBBQl9FWFRfUkVHX0FERFIoMHhiNGEwLCB3aW4pCiAjZGVmaW5lIFBBQl9QRVhfQU1BUF9BWElfV0lOKHdpbikJUEFCX1JFR19BRERSKDB4NGJhNCwgd2luKQogI2RlZmluZSBQQUJfUEVYX0FNQVBfUEVYX1dJTl9MKHdpbikJUEFCX1JFR19BRERSKDB4NGJhOCwgd2luKQogI2RlZmluZSBQQUJfUEVYX0FNQVBfUEVYX1dJTl9IKHdpbikJUEFCX1JFR19BRERSKDB4NGJhYywgd2luKQpAQCAtNDYyLDcgKzQ2Myw3IEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfcGNpZV9wYXJzZV9kdChzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSkKIH0KIAogc3RhdGljIHZvaWQgcHJvZ3JhbV9pYl93aW5kb3dzKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llLCBpbnQgd2luX251bSwKLQkJCSAgICAgICB1NjQgcGNpX2FkZHIsIHUzMiB0eXBlLCB1NjQgc2l6ZSkKKwkJCSAgICAgICB1NjQgY3B1X2FkZHIsIHU2NCBwY2lfYWRkciwgdTMyIHR5cGUsIHU2NCBzaXplKQogewogCXUzMiB2YWx1ZTsKIAl1NjQgc2l6ZTY0ID0gfihzaXplIC0gMSk7CkBAIC00ODIsNyArNDgzLDEwIEBAIHN0YXRpYyB2b2lkIHByb2dyYW1faWJfd2luZG93cyhzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSwgaW50IHdpbl9udW0sCiAJY3NyX3dyaXRlbChwY2llLCB1cHBlcl8zMl9iaXRzKHNpemU2NCksCiAJCSAgIFBBQl9FWFRfUEVYX0FNQVBfU0laRU4od2luX251bSkpOwogCi0JY3NyX3dyaXRlbChwY2llLCBwY2lfYWRkciwgUEFCX1BFWF9BTUFQX0FYSV9XSU4od2luX251bSkpOworCWNzcl93cml0ZWwocGNpZSwgbG93ZXJfMzJfYml0cyhjcHVfYWRkciksCisJCSAgIFBBQl9QRVhfQU1BUF9BWElfV0lOKHdpbl9udW0pKTsKKwljc3Jfd3JpdGVsKHBjaWUsIHVwcGVyXzMyX2JpdHMoY3B1X2FkZHIpLAorCQkgICBQQUJfRVhUX1BFWF9BTUFQX0FYSV9XSU4od2luX251bSkpOwogCiAJY3NyX3dyaXRlbChwY2llLCBsb3dlcl8zMl9iaXRzKHBjaV9hZGRyKSwKIAkJICAgUEFCX1BFWF9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7CkBAIC02MjQsNyArNjI4LDcgQEAgc3RhdGljIGludCBtb2JpdmVpbF9ob3N0X2luaXQoc3RydWN0IG1vYml2ZWlsX3BjaWUgKnBjaWUpCiAJCQkgICBDRkdfV0lORE9XX1RZUEUsIHJlc291cmNlX3NpemUocGNpZS0+b2JfaW9fcmVzKSk7CiAKIAkvKiBtZW1vcnkgaW5ib3VuZCB0cmFuc2xhdGlvbiB3aW5kb3cgKi8KLQlwcm9ncmFtX2liX3dpbmRvd3MocGNpZSwgV0lOX05VTV8wLCAwLCBNRU1fV0lORE9XX1RZUEUsIElCX1dJTl9TSVpFKTsKKwlwcm9ncmFtX2liX3dpbmRvd3MocGNpZSwgV0lOX05VTV8wLCAwLCAwLCBNRU1fV0lORE9XX1RZUEUsIElCX1dJTl9TSVpFKTsKIAogCS8qIEdldCB0aGUgSS9PIGFuZCBtZW1vcnkgcmFuZ2VzIGZyb20gRFQgKi8KIAlyZXNvdXJjZV9saXN0X2Zvcl9lYWNoX2VudHJ5KHdpbiwgJnBjaWUtPnJlc291cmNlcykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tjaGlwLWhvc3QuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmMKaW5kZXggOGQyMGYxNy4uZWY4ZTY3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tjaGlwLWhvc3QuYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jCkBAIC02MDgsMjkgKzYwOCwyOSBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX3BjaWVfcGFyc2VfaG9zdF9kdChzdHJ1Y3Qgcm9ja2NoaXBfcGNpZSAqcm9ja2NoaXApCiAKIAlyb2NrY2hpcC0+dnBjaWUxMnYgPSBkZXZtX3JlZ3VsYXRvcl9nZXRfb3B0aW9uYWwoZGV2LCAidnBjaWUxMnYiKTsKIAlpZiAoSVNfRVJSKHJvY2tjaGlwLT52cGNpZTEydikpIHsKLQkJaWYgKFBUUl9FUlIocm9ja2NoaXAtPnZwY2llMTJ2KSA9PSAtRVBST0JFX0RFRkVSKQotCQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CisJCWlmIChQVFJfRVJSKHJvY2tjaGlwLT52cGNpZTEydikgIT0gLUVOT0RFVikKKwkJCXJldHVybiBQVFJfRVJSKHJvY2tjaGlwLT52cGNpZTEydik7CiAJCWRldl9pbmZvKGRldiwgIm5vIHZwY2llMTJ2IHJlZ3VsYXRvciBmb3VuZFxuIik7CiAJfQogCiAJcm9ja2NoaXAtPnZwY2llM3YzID0gZGV2bV9yZWd1bGF0b3JfZ2V0X29wdGlvbmFsKGRldiwgInZwY2llM3YzIik7CiAJaWYgKElTX0VSUihyb2NrY2hpcC0+dnBjaWUzdjMpKSB7Ci0JCWlmIChQVFJfRVJSKHJvY2tjaGlwLT52cGNpZTN2MykgPT0gLUVQUk9CRV9ERUZFUikKLQkJCXJldHVybiAtRVBST0JFX0RFRkVSOworCQlpZiAoUFRSX0VSUihyb2NrY2hpcC0+dnBjaWUzdjMpICE9IC1FTk9ERVYpCisJCQlyZXR1cm4gUFRSX0VSUihyb2NrY2hpcC0+dnBjaWUzdjMpOwogCQlkZXZfaW5mbyhkZXYsICJubyB2cGNpZTN2MyByZWd1bGF0b3IgZm91bmRcbiIpOwogCX0KIAogCXJvY2tjaGlwLT52cGNpZTF2OCA9IGRldm1fcmVndWxhdG9yX2dldF9vcHRpb25hbChkZXYsICJ2cGNpZTF2OCIpOwogCWlmIChJU19FUlIocm9ja2NoaXAtPnZwY2llMXY4KSkgewotCQlpZiAoUFRSX0VSUihyb2NrY2hpcC0+dnBjaWUxdjgpID09IC1FUFJPQkVfREVGRVIpCi0JCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKKwkJaWYgKFBUUl9FUlIocm9ja2NoaXAtPnZwY2llMXY4KSAhPSAtRU5PREVWKQorCQkJcmV0dXJuIFBUUl9FUlIocm9ja2NoaXAtPnZwY2llMXY4KTsKIAkJZGV2X2luZm8oZGV2LCAibm8gdnBjaWUxdjggcmVndWxhdG9yIGZvdW5kXG4iKTsKIAl9CiAKIAlyb2NrY2hpcC0+dnBjaWUwdjkgPSBkZXZtX3JlZ3VsYXRvcl9nZXRfb3B0aW9uYWwoZGV2LCAidnBjaWUwdjkiKTsKIAlpZiAoSVNfRVJSKHJvY2tjaGlwLT52cGNpZTB2OSkpIHsKLQkJaWYgKFBUUl9FUlIocm9ja2NoaXAtPnZwY2llMHY5KSA9PSAtRVBST0JFX0RFRkVSKQotCQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CisJCWlmIChQVFJfRVJSKHJvY2tjaGlwLT52cGNpZTB2OSkgIT0gLUVOT0RFVikKKwkJCXJldHVybiBQVFJfRVJSKHJvY2tjaGlwLT52cGNpZTB2OSk7CiAJCWRldl9pbmZvKGRldiwgIm5vIHZwY2llMHY5IHJlZ3VsYXRvciBmb3VuZFxuIik7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3ZtZC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci92bWQuYwppbmRleCA0NTc1ZTBjLi5hMzVkM2YzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3ZtZC5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvdm1kLmMKQEAgLTMxLDYgKzMxLDkgQEAKICNkZWZpbmUgUENJX1JFR19WTUxPQ0sJCTB4NzAKICNkZWZpbmUgTUIyX1NIQURPV19FTih2bWxvY2spCSh2bWxvY2sgJiAweDIpCiAKKyNkZWZpbmUgTUIyX1NIQURPV19PRkZTRVQJMHgyMDAwCisjZGVmaW5lIE1CMl9TSEFET1dfU0laRQkJMTYKKwogZW51bSB2bWRfZmVhdHVyZXMgewogCS8qCiAJICogRGV2aWNlIG1heSBjb250YWluIHJlZ2lzdGVycyB3aGljaCBoaW50IHRoZSBwaHlzaWNhbCBsb2NhdGlvbiBvZiB0aGUKQEAgLTk0LDYgKzk3LDcgQEAgc3RydWN0IHZtZF9kZXYgewogCXN0cnVjdCByZXNvdXJjZQkJcmVzb3VyY2VzWzNdOwogCXN0cnVjdCBpcnFfZG9tYWluCSppcnFfZG9tYWluOwogCXN0cnVjdCBwY2lfYnVzCQkqYnVzOworCXU4CQkJYnVzbl9zdGFydDsKIAogCXN0cnVjdCBkbWFfbWFwX29wcwlkbWFfb3BzOwogCXN0cnVjdCBkbWFfZG9tYWluCWRtYV9kb21haW47CkBAIC00NDAsNyArNDQ0LDggQEAgc3RhdGljIGNoYXIgX19pb21lbSAqdm1kX2NmZ19hZGRyKHN0cnVjdCB2bWRfZGV2ICp2bWQsIHN0cnVjdCBwY2lfYnVzICpidXMsCiAJCQkJICB1bnNpZ25lZCBpbnQgZGV2Zm4sIGludCByZWcsIGludCBsZW4pCiB7CiAJY2hhciBfX2lvbWVtICphZGRyID0gdm1kLT5jZmdiYXIgKwotCQkJICAgICAoYnVzLT5udW1iZXIgPDwgMjApICsgKGRldmZuIDw8IDEyKSArIHJlZzsKKwkJCSAgICAgKChidXMtPm51bWJlciAtIHZtZC0+YnVzbl9zdGFydCkgPDwgMjApICsKKwkJCSAgICAgKGRldmZuIDw8IDEyKSArIHJlZzsKIAogCWlmICgoYWRkciAtIHZtZC0+Y2ZnYmFyKSArIGxlbiA+PQogCSAgICByZXNvdXJjZV9zaXplKCZ2bWQtPmRldi0+cmVzb3VyY2VbVk1EX0NGR0JBUl0pKQpAQCAtNTYzLDcgKzU2OCw3IEBAIHN0YXRpYyBpbnQgdm1kX2VuYWJsZV9kb21haW4oc3RydWN0IHZtZF9kZXYgKnZtZCwgdW5zaWduZWQgbG9uZyBmZWF0dXJlcykKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCUxJU1RfSEVBRChyZXNvdXJjZXMpOwogCXJlc291cmNlX3NpemVfdCBvZmZzZXRbMl0gPSB7MH07Ci0JcmVzb3VyY2Vfc2l6ZV90IG1lbWJhcjJfb2Zmc2V0ID0gMHgyMDAwLCBidXNuX3N0YXJ0ID0gMDsKKwlyZXNvdXJjZV9zaXplX3QgbWVtYmFyMl9vZmZzZXQgPSAweDIwMDA7CiAJc3RydWN0IHBjaV9idXMgKmNoaWxkOwogCiAJLyoKQEAgLTU3Niw3ICs1ODEsNyBAQCBzdGF0aWMgaW50IHZtZF9lbmFibGVfZG9tYWluKHN0cnVjdCB2bWRfZGV2ICp2bWQsIHVuc2lnbmVkIGxvbmcgZmVhdHVyZXMpCiAJCXUzMiB2bWxvY2s7CiAJCWludCByZXQ7CiAKLQkJbWVtYmFyMl9vZmZzZXQgPSAweDIwMTg7CisJCW1lbWJhcjJfb2Zmc2V0ID0gTUIyX1NIQURPV19PRkZTRVQgKyBNQjJfU0hBRE9XX1NJWkU7CiAJCXJldCA9IHBjaV9yZWFkX2NvbmZpZ19kd29yZCh2bWQtPmRldiwgUENJX1JFR19WTUxPQ0ssICZ2bWxvY2spOwogCQlpZiAocmV0IHx8IHZtbG9jayA9PSB+MCkKIAkJCXJldHVybiAtRU5PREVWOwpAQCAtNTg4LDkgKzU5Myw5IEBAIHN0YXRpYyBpbnQgdm1kX2VuYWJsZV9kb21haW4oc3RydWN0IHZtZF9kZXYgKnZtZCwgdW5zaWduZWQgbG9uZyBmZWF0dXJlcykKIAkJCWlmICghbWVtYmFyMikKIAkJCQlyZXR1cm4gLUVOT01FTTsKIAkJCW9mZnNldFswXSA9IHZtZC0+ZGV2LT5yZXNvdXJjZVtWTURfTUVNQkFSMV0uc3RhcnQgLQotCQkJCQkJcmVhZHEobWVtYmFyMiArIDB4MjAwOCk7CisJCQkJCXJlYWRxKG1lbWJhcjIgKyBNQjJfU0hBRE9XX09GRlNFVCk7CiAJCQlvZmZzZXRbMV0gPSB2bWQtPmRldi0+cmVzb3VyY2VbVk1EX01FTUJBUjJdLnN0YXJ0IC0KLQkJCQkJCXJlYWRxKG1lbWJhcjIgKyAweDIwMTApOworCQkJCQlyZWFkcShtZW1iYXIyICsgTUIyX1NIQURPV19PRkZTRVQgKyA4KTsKIAkJCXBjaV9pb3VubWFwKHZtZC0+ZGV2LCBtZW1iYXIyKTsKIAkJfQogCX0KQEAgLTYwNiwxNCArNjExLDE0IEBAIHN0YXRpYyBpbnQgdm1kX2VuYWJsZV9kb21haW4oc3RydWN0IHZtZF9kZXYgKnZtZCwgdW5zaWduZWQgbG9uZyBmZWF0dXJlcykKIAkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKHZtZC0+ZGV2LCBQQ0lfUkVHX1ZNQ09ORklHLCAmdm1jb25maWcpOwogCQlpZiAoQlVTX1JFU1RSSUNUX0NBUCh2bWNhcCkgJiYKIAkJICAgIChCVVNfUkVTVFJJQ1RfQ0ZHKHZtY29uZmlnKSA9PSAweDEpKQotCQkJYnVzbl9zdGFydCA9IDEyODsKKwkJCXZtZC0+YnVzbl9zdGFydCA9IDEyODsKIAl9CiAKIAlyZXMgPSAmdm1kLT5kZXYtPnJlc291cmNlW1ZNRF9DRkdCQVJdOwogCXZtZC0+cmVzb3VyY2VzWzBdID0gKHN0cnVjdCByZXNvdXJjZSkgewogCQkubmFtZSAgPSAiVk1EIENGR0JBUiIsCi0JCS5zdGFydCA9IGJ1c25fc3RhcnQsCi0JCS5lbmQgICA9IGJ1c25fc3RhcnQgKyAocmVzb3VyY2Vfc2l6ZShyZXMpID4+IDIwKSAtIDEsCisJCS5zdGFydCA9IHZtZC0+YnVzbl9zdGFydCwKKwkJLmVuZCAgID0gdm1kLT5idXNuX3N0YXJ0ICsgKHJlc291cmNlX3NpemUocmVzKSA+PiAyMCkgLSAxLAogCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVUyB8IElPUkVTT1VSQ0VfUENJX0ZJWEVELAogCX07CiAKQEAgLTY4MSw4ICs2ODYsOCBAQCBzdGF0aWMgaW50IHZtZF9lbmFibGVfZG9tYWluKHN0cnVjdCB2bWRfZGV2ICp2bWQsIHVuc2lnbmVkIGxvbmcgZmVhdHVyZXMpCiAJcGNpX2FkZF9yZXNvdXJjZV9vZmZzZXQoJnJlc291cmNlcywgJnZtZC0+cmVzb3VyY2VzWzFdLCBvZmZzZXRbMF0pOwogCXBjaV9hZGRfcmVzb3VyY2Vfb2Zmc2V0KCZyZXNvdXJjZXMsICZ2bWQtPnJlc291cmNlc1syXSwgb2Zmc2V0WzFdKTsKIAotCXZtZC0+YnVzID0gcGNpX2NyZWF0ZV9yb290X2J1cygmdm1kLT5kZXYtPmRldiwgYnVzbl9zdGFydCwgJnZtZF9vcHMsCi0JCQkJICAgICAgIHNkLCAmcmVzb3VyY2VzKTsKKwl2bWQtPmJ1cyA9IHBjaV9jcmVhdGVfcm9vdF9idXMoJnZtZC0+ZGV2LT5kZXYsIHZtZC0+YnVzbl9zdGFydCwKKwkJCQkgICAgICAgJnZtZF9vcHMsIHNkLCAmcmVzb3VyY2VzKTsKIAlpZiAoIXZtZC0+YnVzKSB7CiAJCXBjaV9mcmVlX3Jlc291cmNlX2xpc3QoJnJlc291cmNlcyk7CiAJCWlycV9kb21haW5fcmVtb3ZlKHZtZC0+aXJxX2RvbWFpbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL2NwY2lfaG90cGx1Z19jb3JlLmMgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL2NwY2lfaG90cGx1Z19jb3JlLmMKaW5kZXggNjAzZWFkZi4uZDA1NTlkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9jcGNpX2hvdHBsdWdfY29yZS5jCisrKyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BjaV9ob3RwbHVnX2NvcmUuYwpAQCAtNTYzLDcgKzU2Myw2IEBAIGNsZWFudXBfc2xvdHModm9pZCkKIAl9CiBjbGVhbnVwX251bGw6CiAJdXBfd3JpdGUoJmxpc3RfcndzZW0pOwotCXJldHVybjsKIH0KIAogaW50CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL2NwcXBocF9jb3JlLmMgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL2NwcXBocF9jb3JlLmMKaW5kZXggMTZiYmIxOC4uYjhhYWNiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9jcHFwaHBfY29yZS5jCisrKyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BxcGhwX2NvcmUuYwpAQCAtMTczLDcgKzE3Myw2IEBAIHN0YXRpYyB2b2lkIHBjaV9wcmludF9JUlFfcm91dGUodm9pZCkKIAkJZGJnKCIlZCAlZCAlZCAlZFxuIiwgdGJ1cywgdGRldmljZSA+PiAzLCB0ZGV2aWNlICYgMHg3LCB0c2xvdCk7CiAKIAl9Ci0JcmV0dXJuOwogfQogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BxcGhwX2N0cmwuYyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BxcGhwX2N0cmwuYwppbmRleCBiN2Y0ZTFmLi42OGRlOTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL2NwcXBocF9jdHJsLmMKKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9jcHFwaHBfY3RybC5jCkBAIC0xODcyLDggKzE4NzIsNiBAQCBzdGF0aWMgdm9pZCBpbnRlcnJ1cHRfZXZlbnRfaGFuZGxlcihzdHJ1Y3QgY29udHJvbGxlciAqY3RybCkKIAkJCX0KIAkJfQkJLyogRW5kIG9mIEZPUiBsb29wICovCiAJfQotCi0JcmV0dXJuOwogfQogCiAKQEAgLTE5NDMsOCArMTk0MSw2IEBAIHZvaWQgY3BxaHBfcHVzaGJ1dHRvbl90aHJlYWQoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAKIAkJcF9zbG90LT5zdGF0ZSA9IFNUQVRJQ19TVEFURTsKIAl9Ci0KLQlyZXR1cm47CiB9CiAKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG90cGx1Zy9jcHFwaHBfbnZyYW0uaCBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BxcGhwX252cmFtLmgKaW5kZXggOTE4ZmY4ZC4uNzBlODc5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9jcHFwaHBfbnZyYW0uaAorKysgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL2NwcXBocF9udnJhbS5oCkBAIC0xNiwxMCArMTYsNyBAQAogCiAjaWZuZGVmIENPTkZJR19IT1RQTFVHX1BDSV9DT01QQVFfTlZSQU0KIAotc3RhdGljIGlubGluZSB2b2lkIGNvbXBhcV9udnJhbV9pbml0KHZvaWQgX19pb21lbSAqcm9tX3N0YXJ0KQotewotCXJldHVybjsKLX0KK3N0YXRpYyBpbmxpbmUgdm9pZCBjb21wYXFfbnZyYW1faW5pdCh2b2lkIF9faW9tZW0gKnJvbV9zdGFydCkgeyB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IGNvbXBhcV9udnJhbV9sb2FkKHZvaWQgX19pb21lbSAqcm9tX3N0YXJ0LCBzdHJ1Y3QgY29udHJvbGxlciAqY3RybCkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvaWJtcGhwX3Jlcy5jIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9pYm1waHBfcmVzLmMKaW5kZXggNWU4Y2FmNy4uNWM5M2FhMTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvaWJtcGhwX3Jlcy5jCisrKyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvaWJtcGhwX3Jlcy5jCkBAIC0xOTQxLDYgKzE5NDEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCB1cGRhdGVfYnJpZGdlX3JhbmdlcyhzdHJ1Y3QgYnVzX25vZGUgKipidXMpCiAJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBQQ0lfSEVBREVSX1RZUEVfQlJJREdFOgogCQkJCQkJZnVuY3Rpb24gPSAweDg7CisJCQkJCQkvKiBmYWxsIHRocm91Z2ggKi8KIAkJCQkJY2FzZSBQQ0lfSEVBREVSX1RZUEVfTVVMVElCUklER0U6CiAJCQkJCQkvKiBXZSBhc3N1bWUgaGVyZSB0aGF0IG9ubHkgMSBidXMgYmVoaW5kIHRoZSBicmlkZ2UKIAkJCQkJCSAgIFRPIERPOiBhZGQgZnVuY3Rpb25hbGl0eSBmb3Igc2V2ZXJhbDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwLmggYi9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocC5oCmluZGV4IDhjNTFhMDQuLjY1NGM5NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwLmgKKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHAuaApAQCAtMTEwLDkgKzExMCw5IEBAIHN0cnVjdCBjb250cm9sbGVyIHsKICAqCiAgKiBAT0ZGX1NUQVRFOiBzbG90IGlzIHBvd2VyZWQgb2ZmLCBubyBzdWJvcmRpbmF0ZSBkZXZpY2VzIGFyZSBlbnVtZXJhdGVkCiAgKiBAQkxJTktJTkdPTl9TVEFURTogc2xvdCB3aWxsIGJlIHBvd2VyZWQgb24gYWZ0ZXIgdGhlIDUgc2Vjb25kIGRlbGF5LAotICoJZ3JlZW4gbGVkIGlzIGJsaW5raW5nCisgKglQb3dlciBJbmRpY2F0b3IgaXMgYmxpbmtpbmcKICAqIEBCTElOS0lOR09GRl9TVEFURTogc2xvdCB3aWxsIGJlIHBvd2VyZWQgb2ZmIGFmdGVyIHRoZSA1IHNlY29uZCBkZWxheSwKLSAqCWdyZWVuIGxlZCBpcyBibGlua2luZworICoJUG93ZXIgSW5kaWNhdG9yIGlzIGJsaW5raW5nCiAgKiBAUE9XRVJPTl9TVEFURTogc2xvdCBpcyBjdXJyZW50bHkgcG93ZXJpbmcgb24KICAqIEBQT1dFUk9GRl9TVEFURTogc2xvdCBpcyBjdXJyZW50bHkgcG93ZXJpbmcgb2ZmCiAgKiBAT05fU1RBVEU6IHNsb3QgaXMgcG93ZXJlZCBvbiwgc3Vib3JkaW5hdGUgZGV2aWNlcyBoYXZlIGJlZW4gZW51bWVyYXRlZApAQCAtMTY3LDEyICsxNjcsMTEgQEAgaW50IHBjaWVocF9wb3dlcl9vbl9zbG90KHN0cnVjdCBjb250cm9sbGVyICpjdHJsKTsKIHZvaWQgcGNpZWhwX3Bvd2VyX29mZl9zbG90KHN0cnVjdCBjb250cm9sbGVyICpjdHJsKTsKIHZvaWQgcGNpZWhwX2dldF9wb3dlcl9zdGF0dXMoc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwsIHU4ICpzdGF0dXMpOwogCi12b2lkIHBjaWVocF9zZXRfYXR0ZW50aW9uX3N0YXR1cyhzdHJ1Y3QgY29udHJvbGxlciAqY3RybCwgdTggc3RhdHVzKTsKKyNkZWZpbmUgSU5ESUNBVE9SX05PT1AgLTEJLyogTGVhdmUgaW5kaWNhdG9yIHVuY2hhbmdlZCAqLwordm9pZCBwY2llaHBfc2V0X2luZGljYXRvcnMoc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwsIGludCBwd3IsIGludCBhdHRuKTsKKwogdm9pZCBwY2llaHBfZ2V0X2xhdGNoX3N0YXR1cyhzdHJ1Y3QgY29udHJvbGxlciAqY3RybCwgdTggKnN0YXR1cyk7CiBpbnQgcGNpZWhwX3F1ZXJ5X3Bvd2VyX2ZhdWx0KHN0cnVjdCBjb250cm9sbGVyICpjdHJsKTsKLXZvaWQgcGNpZWhwX2dyZWVuX2xlZF9vbihzdHJ1Y3QgY29udHJvbGxlciAqY3RybCk7Ci12b2lkIHBjaWVocF9ncmVlbl9sZWRfb2ZmKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKTsKLXZvaWQgcGNpZWhwX2dyZWVuX2xlZF9ibGluayhzdHJ1Y3QgY29udHJvbGxlciAqY3RybCk7CiBib29sIHBjaWVocF9jYXJkX3ByZXNlbnQoc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpOwogYm9vbCBwY2llaHBfY2FyZF9wcmVzZW50X29yX2xpbmtfYWN0aXZlKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKTsKIGludCBwY2llaHBfY2hlY2tfbGlua19zdGF0dXMoc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfY29yZS5jIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfY29yZS5jCmluZGV4IDZhZDBkODYuLmIzMTIyYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2NvcmUuYworKysgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocF9jb3JlLmMKQEAgLTk1LDE1ICs5NSwyMCBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwX3Nsb3Qoc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpCiB9CiAKIC8qCi0gKiBzZXRfYXR0ZW50aW9uX3N0YXR1cyAtIFR1cm5zIHRoZSBBbWJlciBMRUQgZm9yIGEgc2xvdCBvbiwgb2ZmIG9yIGJsaW5rCisgKiBzZXRfYXR0ZW50aW9uX3N0YXR1cyAtIFR1cm5zIHRoZSBBdHRlbnRpb24gSW5kaWNhdG9yIG9uLCBvZmYgb3IgYmxpbmtpbmcKICAqLwogc3RhdGljIGludCBzZXRfYXR0ZW50aW9uX3N0YXR1cyhzdHJ1Y3QgaG90cGx1Z19zbG90ICpob3RwbHVnX3Nsb3QsIHU4IHN0YXR1cykKIHsKIAlzdHJ1Y3QgY29udHJvbGxlciAqY3RybCA9IHRvX2N0cmwoaG90cGx1Z19zbG90KTsKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGN0cmwtPnBjaWUtPnBvcnQ7CiAKKwlpZiAoc3RhdHVzKQorCQlzdGF0dXMgPDw9IFBDSV9FWFBfU0xUQ1RMX0FUVE5fSU5EX1NISUZUOworCWVsc2UKKwkJc3RhdHVzID0gUENJX0VYUF9TTFRDVExfQVRUTl9JTkRfT0ZGOworCiAJcGNpX2NvbmZpZ19wbV9ydW50aW1lX2dldChwZGV2KTsKLQlwY2llaHBfc2V0X2F0dGVudGlvbl9zdGF0dXMoY3RybCwgc3RhdHVzKTsKKwlwY2llaHBfc2V0X2luZGljYXRvcnMoY3RybCwgSU5ESUNBVE9SX05PT1AsIHN0YXR1cyk7CiAJcGNpX2NvbmZpZ19wbV9ydW50aW1lX3B1dChwZGV2KTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2N0cmwuYyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2N0cmwuYwppbmRleCA2MzFjZWQwLi4yMWFmN2IxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfY3RybC5jCisrKyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2N0cmwuYwpAQCAtMzAsNyArMzAsMTAgQEAKIAogc3RhdGljIHZvaWQgc2V0X3Nsb3Rfb2ZmKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQogewotCS8qIHR1cm4gb2ZmIHNsb3QsIHR1cm4gb24gQW1iZXIgTEVELCB0dXJuIG9mZiBHcmVlbiBMRUQgaWYgc3VwcG9ydGVkKi8KKwkvKgorCSAqIFR1cm4gb2ZmIHNsb3QsIHR1cm4gb24gYXR0ZW50aW9uIGluZGljYXRvciwgdHVybiBvZmYgcG93ZXIKKwkgKiBpbmRpY2F0b3IKKwkgKi8KIAlpZiAoUE9XRVJfQ1RSTChjdHJsKSkgewogCQlwY2llaHBfcG93ZXJfb2ZmX3Nsb3QoY3RybCk7CiAKQEAgLTQyLDggKzQ1LDggQEAgc3RhdGljIHZvaWQgc2V0X3Nsb3Rfb2ZmKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQogCQltc2xlZXAoMTAwMCk7CiAJfQogCi0JcGNpZWhwX2dyZWVuX2xlZF9vZmYoY3RybCk7Ci0JcGNpZWhwX3NldF9hdHRlbnRpb25fc3RhdHVzKGN0cmwsIDEpOworCXBjaWVocF9zZXRfaW5kaWNhdG9ycyhjdHJsLCBQQ0lfRVhQX1NMVENUTF9QV1JfSU5EX09GRiwKKwkJCSAgICAgIFBDSV9FWFBfU0xUQ1RMX0FUVE5fSU5EX09OKTsKIH0KIAogLyoqCkBAIC02NSw3ICs2OCw4IEBAIHN0YXRpYyBpbnQgYm9hcmRfYWRkZWQoc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpCiAJCQlyZXR1cm4gcmV0dmFsOwogCX0KIAotCXBjaWVocF9ncmVlbl9sZWRfYmxpbmsoY3RybCk7CisJcGNpZWhwX3NldF9pbmRpY2F0b3JzKGN0cmwsIFBDSV9FWFBfU0xUQ1RMX1BXUl9JTkRfQkxJTkssCisJCQkgICAgICBJTkRJQ0FUT1JfTk9PUCk7CiAKIAkvKiBDaGVjayBsaW5rIHRyYWluaW5nIHN0YXR1cyAqLwogCXJldHZhbCA9IHBjaWVocF9jaGVja19saW5rX3N0YXR1cyhjdHJsKTsKQEAgLTkwLDggKzk0LDggQEAgc3RhdGljIGludCBib2FyZF9hZGRlZChzdHJ1Y3QgY29udHJvbGxlciAqY3RybCkKIAkJfQogCX0KIAotCXBjaWVocF9ncmVlbl9sZWRfb24oY3RybCk7Ci0JcGNpZWhwX3NldF9hdHRlbnRpb25fc3RhdHVzKGN0cmwsIDApOworCXBjaWVocF9zZXRfaW5kaWNhdG9ycyhjdHJsLCBQQ0lfRVhQX1NMVENUTF9QV1JfSU5EX09OLAorCQkJICAgICAgUENJX0VYUF9TTFRDVExfQVRUTl9JTkRfT0ZGKTsKIAlyZXR1cm4gMDsKIAogZXJyX2V4aXQ6CkBAIC0xMDAsNyArMTA0LDcgQEAgc3RhdGljIGludCBib2FyZF9hZGRlZChzdHJ1Y3QgY29udHJvbGxlciAqY3RybCkKIH0KIAogLyoqCi0gKiByZW1vdmVfYm9hcmQgLSBUdXJucyBvZmYgc2xvdCBhbmQgTEVEcworICogcmVtb3ZlX2JvYXJkIC0gVHVybiBvZmYgc2xvdCBhbmQgUG93ZXIgSW5kaWNhdG9yCiAgKiBAY3RybDogUENJZSBob3RwbHVnIGNvbnRyb2xsZXIgd2hlcmUgYm9hcmQgaXMgYmVpbmcgcmVtb3ZlZAogICogQHNhZmVfcmVtb3ZhbDogd2hldGhlciB0aGUgYm9hcmQgaXMgc2FmZWx5IHJlbW92ZWQgKHZlcnN1cyBzdXJwcmlzZSByZW1vdmVkKQogICovCkBAIC0xMjMsOCArMTI3LDggQEAgc3RhdGljIHZvaWQgcmVtb3ZlX2JvYXJkKHN0cnVjdCBjb250cm9sbGVyICpjdHJsLCBib29sIHNhZmVfcmVtb3ZhbCkKIAkJCSAgICZjdHJsLT5wZW5kaW5nX2V2ZW50cyk7CiAJfQogCi0JLyogdHVybiBvZmYgR3JlZW4gTEVEICovCi0JcGNpZWhwX2dyZWVuX2xlZF9vZmYoY3RybCk7CisJcGNpZWhwX3NldF9pbmRpY2F0b3JzKGN0cmwsIFBDSV9FWFBfU0xUQ1RMX1BXUl9JTkRfT0ZGLAorCQkJICAgICAgSU5ESUNBVE9SX05PT1ApOwogfQogCiBzdGF0aWMgaW50IHBjaWVocF9lbmFibGVfc2xvdChzdHJ1Y3QgY29udHJvbGxlciAqY3RybCk7CkBAIC0xNzEsOSArMTc1LDkgQEAgdm9pZCBwY2llaHBfaGFuZGxlX2J1dHRvbl9wcmVzcyhzdHJ1Y3QgY29udHJvbGxlciAqY3RybCkKIAkJCWN0cmxfaW5mbyhjdHJsLCAiU2xvdCglcykgUG93ZXJpbmcgb24gZHVlIHRvIGJ1dHRvbiBwcmVzc1xuIiwKIAkJCQkgIHNsb3RfbmFtZShjdHJsKSk7CiAJCX0KLQkJLyogYmxpbmsgZ3JlZW4gTEVEIGFuZCB0dXJuIG9mZiBhbWJlciAqLwotCQlwY2llaHBfZ3JlZW5fbGVkX2JsaW5rKGN0cmwpOwotCQlwY2llaHBfc2V0X2F0dGVudGlvbl9zdGF0dXMoY3RybCwgMCk7CisJCS8qIGJsaW5rIHBvd2VyIGluZGljYXRvciBhbmQgdHVybiBvZmYgYXR0ZW50aW9uICovCisJCXBjaWVocF9zZXRfaW5kaWNhdG9ycyhjdHJsLCBQQ0lfRVhQX1NMVENUTF9QV1JfSU5EX0JMSU5LLAorCQkJCSAgICAgIFBDSV9FWFBfU0xUQ1RMX0FUVE5fSU5EX09GRik7CiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmY3RybC0+YnV0dG9uX3dvcmssIDUgKiBIWik7CiAJCWJyZWFrOwogCWNhc2UgQkxJTktJTkdPRkZfU1RBVEU6CkBAIC0xODcsMTIgKzE5MSwxMyBAQCB2b2lkIHBjaWVocF9oYW5kbGVfYnV0dG9uX3ByZXNzKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQogCQljYW5jZWxfZGVsYXllZF93b3JrKCZjdHJsLT5idXR0b25fd29yayk7CiAJCWlmIChjdHJsLT5zdGF0ZSA9PSBCTElOS0lOR09GRl9TVEFURSkgewogCQkJY3RybC0+c3RhdGUgPSBPTl9TVEFURTsKLQkJCXBjaWVocF9ncmVlbl9sZWRfb24oY3RybCk7CisJCQlwY2llaHBfc2V0X2luZGljYXRvcnMoY3RybCwgUENJX0VYUF9TTFRDVExfUFdSX0lORF9PTiwKKwkJCQkJICAgICAgUENJX0VYUF9TTFRDVExfQVRUTl9JTkRfT0ZGKTsKIAkJfSBlbHNlIHsKIAkJCWN0cmwtPnN0YXRlID0gT0ZGX1NUQVRFOwotCQkJcGNpZWhwX2dyZWVuX2xlZF9vZmYoY3RybCk7CisJCQlwY2llaHBfc2V0X2luZGljYXRvcnMoY3RybCwgUENJX0VYUF9TTFRDVExfUFdSX0lORF9PRkYsCisJCQkJCSAgICAgIFBDSV9FWFBfU0xUQ1RMX0FUVE5fSU5EX09GRik7CiAJCX0KLQkJcGNpZWhwX3NldF9hdHRlbnRpb25fc3RhdHVzKGN0cmwsIDApOwogCQljdHJsX2luZm8oY3RybCwgIlNsb3QoJXMpOiBBY3Rpb24gY2FuY2VsZWQgZHVlIHRvIGJ1dHRvbiBwcmVzc1xuIiwKIAkJCSAgc2xvdF9uYW1lKGN0cmwpKTsKIAkJYnJlYWs7CkBAIC0zMTAsNyArMzE1LDkgQEAgc3RhdGljIGludCBwY2llaHBfZW5hYmxlX3Nsb3Qoc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpCiAJcG1fcnVudGltZV9nZXRfc3luYygmY3RybC0+cGNpZS0+cG9ydC0+ZGV2KTsKIAlyZXQgPSBfX3BjaWVocF9lbmFibGVfc2xvdChjdHJsKTsKIAlpZiAocmV0ICYmIEFUVE5fQlVUVE4oY3RybCkpCi0JCXBjaWVocF9ncmVlbl9sZWRfb2ZmKGN0cmwpOyAvKiBtYXkgYmUgYmxpbmtpbmcgKi8KKwkJLyogbWF5IGJlIGJsaW5raW5nICovCisJCXBjaWVocF9zZXRfaW5kaWNhdG9ycyhjdHJsLCBQQ0lfRVhQX1NMVENUTF9QV1JfSU5EX09GRiwKKwkJCQkgICAgICBJTkRJQ0FUT1JfTk9PUCk7CiAJcG1fcnVudGltZV9wdXQoJmN0cmwtPnBjaWUtPnBvcnQtPmRldik7CiAKIAltdXRleF9sb2NrKCZjdHJsLT5zdGF0ZV9sb2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2hwYy5jIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfaHBjLmMKaW5kZXggYmQ5OTBlMy4uMWE1MjJjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfaHBjLmMKKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfaHBjLmMKQEAgLTQxOCw2NSArNDE4LDQwIEBAIGludCBwY2llaHBfc2V0X3Jhd19pbmRpY2F0b3Jfc3RhdHVzKHN0cnVjdCBob3RwbHVnX3Nsb3QgKmhvdHBsdWdfc2xvdCwKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBwY2llaHBfc2V0X2F0dGVudGlvbl9zdGF0dXMoc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwsIHU4IHZhbHVlKQorLyoqCisgKiBwY2llaHBfc2V0X2luZGljYXRvcnMoKSAtIHNldCBhdHRlbnRpb24gaW5kaWNhdG9yLCBwb3dlciBpbmRpY2F0b3IsIG9yIGJvdGgKKyAqIEBjdHJsOiBQQ0llIGhvdHBsdWcgY29udHJvbGxlcgorICogQHB3cjogb25lIG9mOgorICoJUENJX0VYUF9TTFRDVExfUFdSX0lORF9PTgorICoJUENJX0VYUF9TTFRDVExfUFdSX0lORF9CTElOSworICoJUENJX0VYUF9TTFRDVExfUFdSX0lORF9PRkYKKyAqIEBhdHRuOiBvbmUgb2Y6CisgKglQQ0lfRVhQX1NMVENUTF9BVFROX0lORF9PTgorICoJUENJX0VYUF9TTFRDVExfQVRUTl9JTkRfQkxJTksKKyAqCVBDSV9FWFBfU0xUQ1RMX0FUVE5fSU5EX09GRgorICoKKyAqIEVpdGhlciBAcHdyIG9yIEBhdHRuIGNhbiBhbHNvIGJlIElORElDQVRPUl9OT09QIHRvIGxlYXZlIHRoYXQgaW5kaWNhdG9yCisgKiB1bmNoYW5nZWQuCisgKi8KK3ZvaWQgcGNpZWhwX3NldF9pbmRpY2F0b3JzKHN0cnVjdCBjb250cm9sbGVyICpjdHJsLCBpbnQgcHdyLCBpbnQgYXR0bikKIHsKLQl1MTYgc2xvdF9jbWQ7CisJdTE2IGNtZCA9IDAsIG1hc2sgPSAwOwogCi0JaWYgKCFBVFROX0xFRChjdHJsKSkKLQkJcmV0dXJuOwotCi0Jc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgMDoJCS8qIHR1cm4gb2ZmICovCi0JCXNsb3RfY21kID0gUENJX0VYUF9TTFRDVExfQVRUTl9JTkRfT0ZGOwotCQlicmVhazsKLQljYXNlIDE6CQkvKiB0dXJuIG9uICovCi0JCXNsb3RfY21kID0gUENJX0VYUF9TTFRDVExfQVRUTl9JTkRfT047Ci0JCWJyZWFrOwotCWNhc2UgMjoJCS8qIHR1cm4gYmxpbmsgKi8KLQkJc2xvdF9jbWQgPSBQQ0lfRVhQX1NMVENUTF9BVFROX0lORF9CTElOSzsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuOworCWlmIChQV1JfTEVEKGN0cmwpICYmIHB3ciAhPSBJTkRJQ0FUT1JfTk9PUCkgeworCQljbWQgfD0gKHB3ciAmIFBDSV9FWFBfU0xUQ1RMX1BJQyk7CisJCW1hc2sgfD0gUENJX0VYUF9TTFRDVExfUElDOwogCX0KLQlwY2llX3dyaXRlX2NtZF9ub3dhaXQoY3RybCwgc2xvdF9jbWQsIFBDSV9FWFBfU0xUQ1RMX0FJQyk7Ci0JY3RybF9kYmcoY3RybCwgIiVzOiBTTE9UQ1RSTCAleCB3cml0ZSBjbWQgJXhcbiIsIF9fZnVuY19fLAotCQkgcGNpX3BjaWVfY2FwKGN0cmwtPnBjaWUtPnBvcnQpICsgUENJX0VYUF9TTFRDVEwsIHNsb3RfY21kKTsKLX0KIAotdm9pZCBwY2llaHBfZ3JlZW5fbGVkX29uKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQotewotCWlmICghUFdSX0xFRChjdHJsKSkKLQkJcmV0dXJuOworCWlmIChBVFROX0xFRChjdHJsKSAmJiBhdHRuICE9IElORElDQVRPUl9OT09QKSB7CisJCWNtZCB8PSAoYXR0biAmIFBDSV9FWFBfU0xUQ1RMX0FJQyk7CisJCW1hc2sgfD0gUENJX0VYUF9TTFRDVExfQUlDOworCX0KIAotCXBjaWVfd3JpdGVfY21kX25vd2FpdChjdHJsLCBQQ0lfRVhQX1NMVENUTF9QV1JfSU5EX09OLAotCQkJICAgICAgUENJX0VYUF9TTFRDVExfUElDKTsKLQljdHJsX2RiZyhjdHJsLCAiJXM6IFNMT1RDVFJMICV4IHdyaXRlIGNtZCAleFxuIiwgX19mdW5jX18sCi0JCSBwY2lfcGNpZV9jYXAoY3RybC0+cGNpZS0+cG9ydCkgKyBQQ0lfRVhQX1NMVENUTCwKLQkJIFBDSV9FWFBfU0xUQ1RMX1BXUl9JTkRfT04pOwotfQotCi12b2lkIHBjaWVocF9ncmVlbl9sZWRfb2ZmKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQotewotCWlmICghUFdSX0xFRChjdHJsKSkKLQkJcmV0dXJuOwotCi0JcGNpZV93cml0ZV9jbWRfbm93YWl0KGN0cmwsIFBDSV9FWFBfU0xUQ1RMX1BXUl9JTkRfT0ZGLAotCQkJICAgICAgUENJX0VYUF9TTFRDVExfUElDKTsKLQljdHJsX2RiZyhjdHJsLCAiJXM6IFNMT1RDVFJMICV4IHdyaXRlIGNtZCAleFxuIiwgX19mdW5jX18sCi0JCSBwY2lfcGNpZV9jYXAoY3RybC0+cGNpZS0+cG9ydCkgKyBQQ0lfRVhQX1NMVENUTCwKLQkJIFBDSV9FWFBfU0xUQ1RMX1BXUl9JTkRfT0ZGKTsKLX0KLQotdm9pZCBwY2llaHBfZ3JlZW5fbGVkX2JsaW5rKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQotewotCWlmICghUFdSX0xFRChjdHJsKSkKLQkJcmV0dXJuOwotCi0JcGNpZV93cml0ZV9jbWRfbm93YWl0KGN0cmwsIFBDSV9FWFBfU0xUQ1RMX1BXUl9JTkRfQkxJTkssCi0JCQkgICAgICBQQ0lfRVhQX1NMVENUTF9QSUMpOwotCWN0cmxfZGJnKGN0cmwsICIlczogU0xPVENUUkwgJXggd3JpdGUgY21kICV4XG4iLCBfX2Z1bmNfXywKLQkJIHBjaV9wY2llX2NhcChjdHJsLT5wY2llLT5wb3J0KSArIFBDSV9FWFBfU0xUQ1RMLAotCQkgUENJX0VYUF9TTFRDVExfUFdSX0lORF9CTElOSyk7CisJaWYgKGNtZCkgeworCQlwY2llX3dyaXRlX2NtZF9ub3dhaXQoY3RybCwgY21kLCBtYXNrKTsKKwkJY3RybF9kYmcoY3RybCwgIiVzOiBTTE9UQ1RSTCAleCB3cml0ZSBjbWQgJXhcbiIsIF9fZnVuY19fLAorCQkJIHBjaV9wY2llX2NhcChjdHJsLT5wY2llLT5wb3J0KSArIFBDSV9FWFBfU0xUQ1RMLCBjbWQpOworCX0KIH0KIAogaW50IHBjaWVocF9wb3dlcl9vbl9zbG90KHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQpAQCAtNjM4LDggKzYxMyw4IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBwY2llaHBfaXN0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAlpZiAoKGV2ZW50cyAmIFBDSV9FWFBfU0xUU1RBX1BGRCkgJiYgIWN0cmwtPnBvd2VyX2ZhdWx0X2RldGVjdGVkKSB7CiAJCWN0cmwtPnBvd2VyX2ZhdWx0X2RldGVjdGVkID0gMTsKIAkJY3RybF9lcnIoY3RybCwgIlNsb3QoJXMpOiBQb3dlciBmYXVsdFxuIiwgc2xvdF9uYW1lKGN0cmwpKTsKLQkJcGNpZWhwX3NldF9hdHRlbnRpb25fc3RhdHVzKGN0cmwsIDEpOwotCQlwY2llaHBfZ3JlZW5fbGVkX29mZihjdHJsKTsKKwkJcGNpZWhwX3NldF9pbmRpY2F0b3JzKGN0cmwsIFBDSV9FWFBfU0xUQ1RMX1BXUl9JTkRfT0ZGLAorCQkJCSAgICAgIFBDSV9FWFBfU0xUQ1RMX0FUVE5fSU5EX09OKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG90cGx1Zy9wbnZfcGhwLmMgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL3Budl9waHAuYwppbmRleCA2NzU4ZmQ3Li5kN2IyYjQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3Budl9waHAuYworKysgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL3Budl9waHAuYwpAQCAtNDE5LDkgKzQxOSwyMSBAQCBzdGF0aWMgaW50IHBudl9waHBfZ2V0X2F0dGVudGlvbl9zdGF0ZShzdHJ1Y3QgaG90cGx1Z19zbG90ICpzbG90LCB1OCAqc3RhdGUpCiBzdGF0aWMgaW50IHBudl9waHBfc2V0X2F0dGVudGlvbl9zdGF0ZShzdHJ1Y3QgaG90cGx1Z19zbG90ICpzbG90LCB1OCBzdGF0ZSkKIHsKIAlzdHJ1Y3QgcG52X3BocF9zbG90ICpwaHBfc2xvdCA9IHRvX3Budl9waHBfc2xvdChzbG90KTsKKwlzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlID0gcGhwX3Nsb3QtPnBkZXY7CisJdTE2IG5ldywgbWFzazsKIAotCS8qIEZJWE1FOiBNYWtlIGl0IHJlYWwgb25jZSBmaXJtd2FyZSBzdXBwb3J0cyBpdCAqLwogCXBocF9zbG90LT5hdHRlbnRpb25fc3RhdGUgPSBzdGF0ZTsKKwlpZiAoIWJyaWRnZSkKKwkJcmV0dXJuIDA7CisKKwltYXNrID0gUENJX0VYUF9TTFRDVExfQUlDOworCisJaWYgKHN0YXRlKQorCQluZXcgPSBQQ0lfRVhQX1NMVENUTF9BVFROX0lORF9PTjsKKwllbHNlCisJCW5ldyA9IFBDSV9FWFBfU0xUQ1RMX0FUVE5fSU5EX09GRjsKKworCXBjaWVfY2FwYWJpbGl0eV9jbGVhcl9hbmRfc2V0X3dvcmQoYnJpZGdlLCBQQ0lfRVhQX1NMVENUTCwgbWFzaywgbmV3KTsKIAogCXJldHVybiAwOwogfQpAQCAtNTExLDYgKzUyMywzNyBAQCBzdGF0aWMgaW50IHBudl9waHBfZW5hYmxlKHN0cnVjdCBwbnZfcGhwX3Nsb3QgKnBocF9zbG90LCBib29sIHJlc2NhbikKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBwbnZfcGhwX3Jlc2V0X3Nsb3Qoc3RydWN0IGhvdHBsdWdfc2xvdCAqc2xvdCwgaW50IHByb2JlKQoreworCXN0cnVjdCBwbnZfcGhwX3Nsb3QgKnBocF9zbG90ID0gdG9fcG52X3BocF9zbG90KHNsb3QpOworCXN0cnVjdCBwY2lfZGV2ICpicmlkZ2UgPSBwaHBfc2xvdC0+cGRldjsKKwl1aW50MTZfdCBzdHM7CisKKwkvKgorCSAqIFRoZSBDQVBJIGZvbGtzIHdhbnQgcG52X3BocCB0byBkcml2ZSBPcGVuQ0FQSSBzbG90cworCSAqIHdoaWNoIGRvbid0IGhhdmUgYSBicmlkZ2UuIE9ubHkgY2xhaW0gdG8gc3VwcG9ydAorCSAqIHJlc2V0X3Nsb3QoKSBpZiB3ZSBoYXZlIGEgYnJpZGdlIGRldmljZSAoZm9yIG5vdy4uLikKKwkgKi8KKwlpZiAocHJvYmUpCisJCXJldHVybiAhYnJpZGdlOworCisJLyogbWFzayBvdXIgaW50ZXJydXB0IHdoaWxlIHJlc2V0dGluZyB0aGUgYnJpZGdlICovCisJaWYgKHBocF9zbG90LT5pcnEgPiAwKQorCQlkaXNhYmxlX2lycShwaHBfc2xvdC0+aXJxKTsKKworCXBjaV9icmlkZ2Vfc2Vjb25kYXJ5X2J1c19yZXNldChicmlkZ2UpOworCisJLyogY2xlYXIgYW55IHN0YXRlIGNoYW5nZXMgdGhhdCBoYXBwZW5lZCBkdWUgdG8gdGhlIHJlc2V0ICovCisJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChwaHBfc2xvdC0+cGRldiwgUENJX0VYUF9TTFRTVEEsICZzdHMpOworCXN0cyAmPSAoUENJX0VYUF9TTFRTVEFfUERDIHwgUENJX0VYUF9TTFRTVEFfRExMU0MpOworCXBjaWVfY2FwYWJpbGl0eV93cml0ZV93b3JkKHBocF9zbG90LT5wZGV2LCBQQ0lfRVhQX1NMVFNUQSwgc3RzKTsKKworCWlmIChwaHBfc2xvdC0+aXJxID4gMCkKKwkJZW5hYmxlX2lycShwaHBfc2xvdC0+aXJxKTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHBudl9waHBfZW5hYmxlX3Nsb3Qoc3RydWN0IGhvdHBsdWdfc2xvdCAqc2xvdCkKIHsKIAlzdHJ1Y3QgcG52X3BocF9zbG90ICpwaHBfc2xvdCA9IHRvX3Budl9waHBfc2xvdChzbG90KTsKQEAgLTU0OCw2ICs1OTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhvdHBsdWdfc2xvdF9vcHMgcGhwX3Nsb3Rfb3BzID0gewogCS5zZXRfYXR0ZW50aW9uX3N0YXR1cwk9IHBudl9waHBfc2V0X2F0dGVudGlvbl9zdGF0ZSwKIAkuZW5hYmxlX3Nsb3QJCT0gcG52X3BocF9lbmFibGVfc2xvdCwKIAkuZGlzYWJsZV9zbG90CQk9IHBudl9waHBfZGlzYWJsZV9zbG90LAorCS5yZXNldF9zbG90CQk9IHBudl9waHBfcmVzZXRfc2xvdCwKIH07CiAKIHN0YXRpYyB2b2lkIHBudl9waHBfcmVsZWFzZShzdHJ1Y3QgcG52X3BocF9zbG90ICpwaHBfc2xvdCkKQEAgLTcyMSw2ICs3NjUsMTIgQEAgc3RhdGljIGlycXJldHVybl90IHBudl9waHBfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRhdGEpCiAJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChwZGV2LCBQQ0lfRVhQX1NMVFNUQSwgJnN0cyk7CiAJc3RzICY9IChQQ0lfRVhQX1NMVFNUQV9QREMgfCBQQ0lfRVhQX1NMVFNUQV9ETExTQyk7CiAJcGNpZV9jYXBhYmlsaXR5X3dyaXRlX3dvcmQocGRldiwgUENJX0VYUF9TTFRTVEEsIHN0cyk7CisKKwlwY2lfZGJnKHBkZXYsICJQQ0kgc2xvdCBbJXNdOiBIUCBpbnQhIERMQWN0OiAlZCwgUHJlc0RldDogJWRcbiIsCisJCQlwaHBfc2xvdC0+bmFtZSwKKwkJCSEhKHN0cyAmIFBDSV9FWFBfU0xUU1RBX0RMTFNDKSwKKwkJCSEhKHN0cyAmIFBDSV9FWFBfU0xUU1RBX1BEQykpOworCiAJaWYgKHN0cyAmIFBDSV9FWFBfU0xUU1RBX0RMTFNDKSB7CiAJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQocGRldiwgUENJX0VYUF9MTktTVEEsICZsc3RzKTsKIAkJYWRkZWQgPSAhIShsc3RzICYgUENJX0VYUF9MTktTVEFfRExMTEEpOwpAQCAtNzM1LDYgKzc4NSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBwbnZfcGhwX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkYXRhKQogCiAJCWFkZGVkID0gISEocHJlc2VuY2UgPT0gT1BBTF9QQ0lfU0xPVF9QUkVTRU5UKTsKIAl9IGVsc2UgeworCQlwY2lfZGJnKHBkZXYsICJQQ0kgc2xvdCBbJXNdOiBTcHVyaW91cyBJUlE/XG4iLCBwaHBfc2xvdC0+bmFtZSk7CiAJCXJldHVybiBJUlFfTk9ORTsKIAl9CiAKQEAgLTk1NSw2ICsxMDA2LDkgQEAgc3RhdGljIGludCBfX2luaXQgcG52X3BocF9pbml0KHZvaWQpCiAJZm9yX2VhY2hfY29tcGF0aWJsZV9ub2RlKGRuLCBOVUxMLCAiaWJtLGlvZGEyLXBoYiIpCiAJCXBudl9waHBfcmVnaXN0ZXIoZG4pOwogCisJZm9yX2VhY2hfY29tcGF0aWJsZV9ub2RlKGRuLCBOVUxMLCAiaWJtLGlvZGEzLXBoYiIpCisJCXBudl9waHBfcmVnaXN0ZXIoZG4pOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTk2NCw2ICsxMDE4LDkgQEAgc3RhdGljIHZvaWQgX19leGl0IHBudl9waHBfZXhpdCh2b2lkKQogCiAJZm9yX2VhY2hfY29tcGF0aWJsZV9ub2RlKGRuLCBOVUxMLCAiaWJtLGlvZGEyLXBoYiIpCiAJCXBudl9waHBfdW5yZWdpc3Rlcihkbik7CisKKwlmb3JfZWFjaF9jb21wYXRpYmxlX25vZGUoZG4sIE5VTEwsICJpYm0saW9kYTMtcGhiIikKKwkJcG52X3BocF91bnJlZ2lzdGVyKGRuKTsKIH0KIAogbW9kdWxlX2luaXQocG52X3BocF9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcnBhZGxwYXJfY29yZS5jIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9ycGFkbHBhcl9jb3JlLmMKaW5kZXggMTgyZjllMy4uOTc3OTQ2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9ycGFkbHBhcl9jb3JlLmMKKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9ycGFkbHBhcl9jb3JlLmMKQEAgLTQ3Myw3ICs0NzMsNiBAQCBpbnQgX19pbml0IHJwYWRscGFyX2lvX2luaXQodm9pZCkKIHZvaWQgcnBhZGxwYXJfaW9fZXhpdCh2b2lkKQogewogCWRscGFyX3N5c2ZzX2V4aXQoKTsKLQlyZXR1cm47CiB9CiAKIG1vZHVsZV9pbml0KHJwYWRscGFyX2lvX2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG90cGx1Zy9ycGFwaHBfY29yZS5jIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9ycGFwaHBfY29yZS5jCmluZGV4IGJjZDVkMzUuLjE4NjI3YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcnBhcGhwX2NvcmUuYworKysgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL3JwYXBocF9jb3JlLmMKQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgaW50IHJwYXBocF9jaGVja19kcmNfcHJvcHNfdjIoc3RydWN0IGRldmljZV9ub2RlICpkbiwgY2hhciAqZHJjX25hbWUsCiAJc3RydWN0IG9mX2RyY19pbmZvIGRyYzsKIAljb25zdCBfX2JlMzIgKnZhbHVlOwogCWNoYXIgY2VsbF9kcmNfbmFtZVtNQVhfRFJDX05BTUVfTEVOXTsKLQlpbnQgaiwgZm5kaXQ7CisJaW50IGo7CiAKIAlpbmZvID0gb2ZfZmluZF9wcm9wZXJ0eShkbi0+cGFyZW50LCAiaWJtLGRyYy1pbmZvIiwgTlVMTCk7CiAJaWYgKGluZm8gPT0gTlVMTCkKQEAgLTI0NSwxNyArMjQ1LDEzIEBAIHN0YXRpYyBpbnQgcnBhcGhwX2NoZWNrX2RyY19wcm9wc192MihzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuLCBjaGFyICpkcmNfbmFtZSwKIAogCQkvKiBTaG91bGQgbm93IGtub3cgZW5kIG9mIGN1cnJlbnQgZW50cnkgKi8KIAotCQlpZiAobXlfaW5kZXggPiBkcmMubGFzdF9kcmNfaW5kZXgpCi0JCQljb250aW51ZTsKLQotCQlmbmRpdCA9IDE7Ci0JCWJyZWFrOworCQkvKiBGb3VuZCBpdCAqLworCQlpZiAobXlfaW5kZXggPD0gZHJjLmxhc3RfZHJjX2luZGV4KSB7CisJCQlzcHJpbnRmKGNlbGxfZHJjX25hbWUsICIlcyVkIiwgZHJjLmRyY19uYW1lX3ByZWZpeCwKKwkJCQlteV9pbmRleCk7CisJCQlicmVhazsKKwkJfQogCX0KLQkvKiBGb3VuZCBpdCAqLwotCi0JaWYgKGZuZGl0KQotCQlzcHJpbnRmKGNlbGxfZHJjX25hbWUsICIlcyVkIiwgZHJjLmRyY19uYW1lX3ByZWZpeCwgCi0JCQlteV9pbmRleCk7CiAKIAlpZiAoKChkcmNfbmFtZSA9PSBOVUxMKSB8fAogCSAgICAgKGRyY19uYW1lICYmICFzdHJjbXAoZHJjX25hbWUsIGNlbGxfZHJjX25hbWUpKSkgJiYKQEAgLTQxMiw3ICs0MDgsNiBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgY2xlYW51cF9zbG90cyh2b2lkKQogCQlwY2lfaHBfZGVyZWdpc3Rlcigmc2xvdC0+aG90cGx1Z19zbG90KTsKIAkJZGVhbGxvY19zbG90X3N0cnVjdChzbG90KTsKIAl9Ci0JcmV0dXJuOwogfQogCiBzdGF0aWMgaW50IF9faW5pdCBycGFwaHBfaW5pdCh2b2lkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaW92LmMgYi9kcml2ZXJzL3BjaS9pb3YuYwppbmRleCA1MjVmZDNmMi4uYjNmOTcyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaW92LmMKKysrIGIvZHJpdmVycy9wY2kvaW92LmMKQEAgLTI0MCw2ICsyNDAsMTczIEBAIHZvaWQgcGNpX2lvdl9yZW1vdmVfdmlydGZuKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBpZCkKIAlwY2lfZGV2X3B1dChkZXYpOwogfQogCitzdGF0aWMgc3NpemVfdCBzcmlvdl90b3RhbHZmc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkgICBjaGFyICpidWYpCit7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIldVxuIiwgcGNpX3NyaW92X2dldF90b3RhbHZmcyhwZGV2KSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHNyaW92X251bXZmc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiV1XG4iLCBwZGV2LT5zcmlvdi0+bnVtX1ZGcyk7Cit9CisKKy8qCisgKiBudW1fdmZzID4gMDsgbnVtYmVyIG9mIFZGcyB0byBlbmFibGUKKyAqIG51bV92ZnMgPSAwOyBkaXNhYmxlIGFsbCBWRnMKKyAqCisgKiBOb3RlOiBTUklPViBzcGVjIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgVkYKKyAqCSBkaXNhYmxlLCBzbyBpdCdzIGFsbCBvciBub25lLgorICovCitzdGF0aWMgc3NpemVfdCBzcmlvdl9udW12ZnNfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKK3sKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKKwlpbnQgcmV0OworCXUxNiBudW1fdmZzOworCisJcmV0ID0ga3N0cnRvdTE2KGJ1ZiwgMCwgJm51bV92ZnMpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKG51bV92ZnMgPiBwY2lfc3Jpb3ZfZ2V0X3RvdGFsdmZzKHBkZXYpKQorCQlyZXR1cm4gLUVSQU5HRTsKKworCWRldmljZV9sb2NrKCZwZGV2LT5kZXYpOworCisJaWYgKG51bV92ZnMgPT0gcGRldi0+c3Jpb3YtPm51bV9WRnMpCisJCWdvdG8gZXhpdDsKKworCS8qIGlzIFBGIGRyaXZlciBsb2FkZWQgdy9jYWxsYmFjayAqLworCWlmICghcGRldi0+ZHJpdmVyIHx8ICFwZGV2LT5kcml2ZXItPnNyaW92X2NvbmZpZ3VyZSkgeworCQlwY2lfaW5mbyhwZGV2LCAiRHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgU1JJT1YgY29uZmlndXJhdGlvbiB2aWEgc3lzZnNcbiIpOworCQlyZXQgPSAtRU5PRU5UOworCQlnb3RvIGV4aXQ7CisJfQorCisJaWYgKG51bV92ZnMgPT0gMCkgeworCQkvKiBkaXNhYmxlIFZGcyAqLworCQlyZXQgPSBwZGV2LT5kcml2ZXItPnNyaW92X2NvbmZpZ3VyZShwZGV2LCAwKTsKKwkJZ290byBleGl0OworCX0KKworCS8qIGVuYWJsZSBWRnMgKi8KKwlpZiAocGRldi0+c3Jpb3YtPm51bV9WRnMpIHsKKwkJcGNpX3dhcm4ocGRldiwgIiVkIFZGcyBhbHJlYWR5IGVuYWJsZWQuIERpc2FibGUgYmVmb3JlIGVuYWJsaW5nICVkIFZGc1xuIiwKKwkJCSBwZGV2LT5zcmlvdi0+bnVtX1ZGcywgbnVtX3Zmcyk7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBleGl0OworCX0KKworCXJldCA9IHBkZXYtPmRyaXZlci0+c3Jpb3ZfY29uZmlndXJlKHBkZXYsIG51bV92ZnMpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGV4aXQ7CisKKwlpZiAocmV0ICE9IG51bV92ZnMpCisJCXBjaV93YXJuKHBkZXYsICIlZCBWRnMgcmVxdWVzdGVkOyBvbmx5ICVkIGVuYWJsZWRcbiIsCisJCQkgbnVtX3ZmcywgcmV0KTsKKworZXhpdDoKKwlkZXZpY2VfdW5sb2NrKCZwZGV2LT5kZXYpOworCisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHNyaW92X29mZnNldF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiV1XG4iLCBwZGV2LT5zcmlvdi0+b2Zmc2V0KTsKK30KKworc3RhdGljIHNzaXplX3Qgc3Jpb3Zfc3RyaWRlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkgY2hhciAqYnVmKQoreworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJXVcbiIsIHBkZXYtPnNyaW92LT5zdHJpZGUpOworfQorCitzdGF0aWMgc3NpemVfdCBzcmlvdl92Zl9kZXZpY2Vfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCSAgICBjaGFyICpidWYpCit7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIleFxuIiwgcGRldi0+c3Jpb3YtPnZmX2RldmljZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHNyaW92X2RyaXZlcnNfYXV0b3Byb2JlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJCSAgICBjaGFyICpidWYpCit7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIldVxuIiwgcGRldi0+c3Jpb3YtPmRyaXZlcnNfYXV0b3Byb2JlKTsKK30KKworc3RhdGljIHNzaXplX3Qgc3Jpb3ZfZHJpdmVyc19hdXRvcHJvYmVfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCQkgICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOworCWJvb2wgZHJpdmVyc19hdXRvcHJvYmU7CisKKwlpZiAoa3N0cnRvYm9vbChidWYsICZkcml2ZXJzX2F1dG9wcm9iZSkgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXBkZXYtPnNyaW92LT5kcml2ZXJzX2F1dG9wcm9iZSA9IGRyaXZlcnNfYXV0b3Byb2JlOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgREVWSUNFX0FUVFJfUk8oc3Jpb3ZfdG90YWx2ZnMpOworc3RhdGljIERFVklDRV9BVFRSX1JXKHNyaW92X251bXZmcyk7CitzdGF0aWMgREVWSUNFX0FUVFJfUk8oc3Jpb3Zfb2Zmc2V0KTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9STyhzcmlvdl9zdHJpZGUpOworc3RhdGljIERFVklDRV9BVFRSX1JPKHNyaW92X3ZmX2RldmljZSk7CitzdGF0aWMgREVWSUNFX0FUVFJfUlcoc3Jpb3ZfZHJpdmVyc19hdXRvcHJvYmUpOworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqc3Jpb3ZfZGV2X2F0dHJzW10gPSB7CisJJmRldl9hdHRyX3NyaW92X3RvdGFsdmZzLmF0dHIsCisJJmRldl9hdHRyX3NyaW92X251bXZmcy5hdHRyLAorCSZkZXZfYXR0cl9zcmlvdl9vZmZzZXQuYXR0ciwKKwkmZGV2X2F0dHJfc3Jpb3Zfc3RyaWRlLmF0dHIsCisJJmRldl9hdHRyX3NyaW92X3ZmX2RldmljZS5hdHRyLAorCSZkZXZfYXR0cl9zcmlvdl9kcml2ZXJzX2F1dG9wcm9iZS5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgdW1vZGVfdCBzcmlvdl9hdHRyc19hcmVfdmlzaWJsZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqYSwgaW50IG4pCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0ga29ial90b19kZXYoa29iaik7CisKKwlpZiAoIWRldl9pc19wZihkZXYpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBhLT5tb2RlOworfQorCitjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHNyaW92X2Rldl9hdHRyX2dyb3VwID0geworCS5hdHRycyA9IHNyaW92X2Rldl9hdHRycywKKwkuaXNfdmlzaWJsZSA9IHNyaW92X2F0dHJzX2FyZV92aXNpYmxlLAorfTsKKwogaW50IF9fd2VhayBwY2liaW9zX3NyaW92X2VuYWJsZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdTE2IG51bV92ZnMpCiB7CiAJcmV0dXJuIDA7CkBAIC01NTcsOCArNzI0LDggQEAgc3RhdGljIHZvaWQgc3Jpb3ZfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCWN0cmwgfD0gaW92LT5jdHJsICYgUENJX1NSSU9WX0NUUkxfQVJJOwogCXBjaV93cml0ZV9jb25maWdfd29yZChkZXYsIGlvdi0+cG9zICsgUENJX1NSSU9WX0NUUkwsIGN0cmwpOwogCi0JZm9yIChpID0gUENJX0lPVl9SRVNPVVJDRVM7IGkgPD0gUENJX0lPVl9SRVNPVVJDRV9FTkQ7IGkrKykKLQkJcGNpX3VwZGF0ZV9yZXNvdXJjZShkZXYsIGkpOworCWZvciAoaSA9IDA7IGkgPCBQQ0lfU1JJT1ZfTlVNX0JBUlM7IGkrKykKKwkJcGNpX3VwZGF0ZV9yZXNvdXJjZShkZXYsIGkgKyBQQ0lfSU9WX1JFU09VUkNFUyk7CiAKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgaW92LT5wb3MgKyBQQ0lfU1JJT1ZfU1lTX1BHU0laRSwgaW92LT5wZ3N6KTsKIAlwY2lfaW92X3NldF9udW12ZnMoZGV2LCBpb3YtPm51bV9WRnMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvb2YuYyBiL2RyaXZlcnMvcGNpL29mLmMKaW5kZXggYmM3YjI3YS4uMzY4OTFlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvb2YuYworKysgYi9kcml2ZXJzL3BjaS9vZi5jCkBAIC0zNTMsNyArMzUzLDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoZGV2bV9vZl9wY2lfZ2V0X2hvc3RfYnJpZGdlX3Jlc291cmNlcyk7CiAvKioKICAqIG9mX2lycV9wYXJzZV9wY2kgLSBSZXNvbHZlIHRoZSBpbnRlcnJ1cHQgZm9yIGEgUENJIGRldmljZQogICogQHBkZXY6ICAgICAgIHRoZSBkZXZpY2Ugd2hvc2UgaW50ZXJydXB0IGlzIHRvIGJlIHJlc29sdmVkCi0gKiBAb3V0X2lycTogICAgc3RydWN0dXJlIG9mX2lycSBmaWxsZWQgYnkgdGhpcyBmdW5jdGlvbgorICogQG91dF9pcnE6ICAgIHN0cnVjdHVyZSBvZl9waGFuZGxlX2FyZ3MgZmlsbGVkIGJ5IHRoaXMgZnVuY3Rpb24KICAqCiAgKiBUaGlzIGZ1bmN0aW9uIHJlc29sdmVzIHRoZSBQQ0kgaW50ZXJydXB0IGZvciBhIGdpdmVuIFBDSSBkZXZpY2UuIElmIGEKICAqIGRldmljZS1ub2RlIGV4aXN0cyBmb3IgYSBnaXZlbiBwY2lfZGV2LCBpdCB3aWxsIHVzZSBub3JtYWwgT0YgdHJlZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcDJwZG1hLmMgYi9kcml2ZXJzL3BjaS9wMnBkbWEuYwppbmRleCAyMzQ0NzYyLi4wNjA4YWFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wMnBkbWEuYworKysgYi9kcml2ZXJzL3BjaS9wMnBkbWEuYwpAQCAtMTgsMTMgKzE4LDMyIEBACiAjaW5jbHVkZSA8bGludXgvcGVyY3B1LXJlZmNvdW50Lmg+CiAjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2J1Zi5oPgotI2luY2x1ZGUgPGxpbnV4L2lvbW11Lmg+CisjaW5jbHVkZSA8bGludXgveGFycmF5Lmg+CisKK2VudW0gcGNpX3AycGRtYV9tYXBfdHlwZSB7CisJUENJX1AyUERNQV9NQVBfVU5LTk9XTiA9IDAsCisJUENJX1AyUERNQV9NQVBfTk9UX1NVUFBPUlRFRCwKKwlQQ0lfUDJQRE1BX01BUF9CVVNfQUREUiwKKwlQQ0lfUDJQRE1BX01BUF9USFJVX0hPU1RfQlJJREdFLAorfTsKIAogc3RydWN0IHBjaV9wMnBkbWEgewogCXN0cnVjdCBnZW5fcG9vbCAqcG9vbDsKIAlib29sIHAycG1lbV9wdWJsaXNoZWQ7CisJc3RydWN0IHhhcnJheSBtYXBfdHlwZXM7CiB9OwogCitzdHJ1Y3QgcGNpX3AycGRtYV9wYWdlbWFwIHsKKwlzdHJ1Y3QgZGV2X3BhZ2VtYXAgcGdtYXA7CisJc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyOworCXU2NCBidXNfb2Zmc2V0OworfTsKKworc3RhdGljIHN0cnVjdCBwY2lfcDJwZG1hX3BhZ2VtYXAgKnRvX3AycF9wZ21hcChzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKQoreworCXJldHVybiBjb250YWluZXJfb2YocGdtYXAsIHN0cnVjdCBwY2lfcDJwZG1hX3BhZ2VtYXAsIHBnbWFwKTsKK30KKwogc3RhdGljIHNzaXplX3Qgc2l6ZV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkgY2hhciAqYnVmKQogewpAQCAtODcsNiArMTA2LDcgQEAgc3RhdGljIHZvaWQgcGNpX3AycGRtYV9yZWxlYXNlKHZvaWQgKmRhdGEpCiAKIAlnZW5fcG9vbF9kZXN0cm95KHAycGRtYS0+cG9vbCk7CiAJc3lzZnNfcmVtb3ZlX2dyb3VwKCZwZGV2LT5kZXYua29iaiwgJnAycG1lbV9ncm91cCk7CisJeGFfZGVzdHJveSgmcDJwZG1hLT5tYXBfdHlwZXMpOwogfQogCiBzdGF0aWMgaW50IHBjaV9wMnBkbWFfc2V0dXAoc3RydWN0IHBjaV9kZXYgKnBkZXYpCkBAIC05OCw2ICsxMTgsOCBAQCBzdGF0aWMgaW50IHBjaV9wMnBkbWFfc2V0dXAoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJaWYgKCFwMnApCiAJCXJldHVybiAtRU5PTUVNOwogCisJeGFfaW5pdCgmcDJwLT5tYXBfdHlwZXMpOworCiAJcDJwLT5wb29sID0gZ2VuX3Bvb2xfY3JlYXRlKFBBR0VfU0hJRlQsIGRldl90b19ub2RlKCZwZGV2LT5kZXYpKTsKIAlpZiAoIXAycC0+cG9vbCkKIAkJZ290byBvdXQ7CkBAIC0xMzUsNiArMTU3LDcgQEAgc3RhdGljIGludCBwY2lfcDJwZG1hX3NldHVwKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogaW50IHBjaV9wMnBkbWFfYWRkX3Jlc291cmNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgYmFyLCBzaXplX3Qgc2l6ZSwKIAkJCSAgICB1NjQgb2Zmc2V0KQogeworCXN0cnVjdCBwY2lfcDJwZG1hX3BhZ2VtYXAgKnAycF9wZ21hcDsKIAlzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwOwogCXZvaWQgKmFkZHI7CiAJaW50IGVycm9yOwpAQCAtMTU3LDE0ICsxODAsMTggQEAgaW50IHBjaV9wMnBkbWFfYWRkX3Jlc291cmNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgYmFyLCBzaXplX3Qgc2l6ZSwKIAkJCXJldHVybiBlcnJvcjsKIAl9CiAKLQlwZ21hcCA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnBnbWFwKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFwZ21hcCkKKwlwMnBfcGdtYXAgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpwMnBfcGdtYXApLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXAycF9wZ21hcCkKIAkJcmV0dXJuIC1FTk9NRU07CisKKwlwZ21hcCA9ICZwMnBfcGdtYXAtPnBnbWFwOwogCXBnbWFwLT5yZXMuc3RhcnQgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgYmFyKSArIG9mZnNldDsKIAlwZ21hcC0+cmVzLmVuZCA9IHBnbWFwLT5yZXMuc3RhcnQgKyBzaXplIC0gMTsKIAlwZ21hcC0+cmVzLmZsYWdzID0gcGNpX3Jlc291cmNlX2ZsYWdzKHBkZXYsIGJhcik7CiAJcGdtYXAtPnR5cGUgPSBNRU1PUllfREVWSUNFX1BDSV9QMlBETUE7Ci0JcGdtYXAtPnBjaV9wMnBkbWFfYnVzX29mZnNldCA9IHBjaV9idXNfYWRkcmVzcyhwZGV2LCBiYXIpIC0KKworCXAycF9wZ21hcC0+cHJvdmlkZXIgPSBwZGV2OworCXAycF9wZ21hcC0+YnVzX29mZnNldCA9IHBjaV9idXNfYWRkcmVzcyhwZGV2LCBiYXIpIC0KIAkJcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIGJhcik7CiAKIAlhZGRyID0gZGV2bV9tZW1yZW1hcF9wYWdlcygmcGRldi0+ZGV2LCBwZ21hcCk7CkBAIC0yNDYsMTggKzI3MywzMSBAQCBzdGF0aWMgdm9pZCBzZXFfYnVmX3ByaW50X2J1c19kZXZmbihzdHJ1Y3Qgc2VxX2J1ZiAqYnVmLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAlzZXFfYnVmX3ByaW50ZihidWYsICIlczsiLCBwY2lfbmFtZShwZGV2KSk7CiB9CiAKLS8qCi0gKiBJZiB3ZSBjYW4ndCBmaW5kIGEgY29tbW9uIHVwc3RyZWFtIGJyaWRnZSB0YWtlIGEgbG9vayBhdCB0aGUgcm9vdAotICogY29tcGxleCBhbmQgY29tcGFyZSBpdCB0byBhIHdoaXRlbGlzdCBvZiBrbm93biBnb29kIGhhcmR3YXJlLgotICovCi1zdGF0aWMgYm9vbCByb290X2NvbXBsZXhfd2hpdGVsaXN0KHN0cnVjdCBwY2lfZGV2ICpkZXYpCi17Ci0Jc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqaG9zdCA9IHBjaV9maW5kX2hvc3RfYnJpZGdlKGRldi0+YnVzKTsKLQlzdHJ1Y3QgcGNpX2RldiAqcm9vdCA9IHBjaV9nZXRfc2xvdChob3N0LT5idXMsIFBDSV9ERVZGTigwLCAwKSk7Ci0JdW5zaWduZWQgc2hvcnQgdmVuZG9yLCBkZXZpY2U7CitzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9wMnBkbWFfd2hpdGVsaXN0X2VudHJ5IHsKKwl1bnNpZ25lZCBzaG9ydCB2ZW5kb3I7CisJdW5zaWduZWQgc2hvcnQgZGV2aWNlOworCWVudW0geworCQlSRVFfU0FNRV9IT1NUX0JSSURHRQk9IDEgPDwgMCwKKwl9IGZsYWdzOworfSBwY2lfcDJwZG1hX3doaXRlbGlzdFtdID0geworCS8qIEFNRCBaRU4gKi8KKwl7UENJX1ZFTkRPUl9JRF9BTUQsCTB4MTQ1MCwJMH0sCiAKLQlpZiAoaW9tbXVfcHJlc2VudChkZXYtPmRldi5idXMpKQotCQlyZXR1cm4gZmFsc2U7CisJLyogSW50ZWwgWGVvbiBFNS9Db3JlIGk3ICovCisJe1BDSV9WRU5ET1JfSURfSU5URUwsCTB4M2MwMCwgUkVRX1NBTUVfSE9TVF9CUklER0V9LAorCXtQQ0lfVkVORE9SX0lEX0lOVEVMLAkweDNjMDEsIFJFUV9TQU1FX0hPU1RfQlJJREdFfSwKKwkvKiBJbnRlbCBYZW9uIEU3IHYzL1hlb24gRTUgdjMvQ29yZSBpNyAqLworCXtQQ0lfVkVORE9SX0lEX0lOVEVMLAkweDJmMDAsIFJFUV9TQU1FX0hPU1RfQlJJREdFfSwKKwl7UENJX1ZFTkRPUl9JRF9JTlRFTCwJMHgyZjAxLCBSRVFfU0FNRV9IT1NUX0JSSURHRX0sCisJe30KK307CisKK3N0YXRpYyBib29sIF9faG9zdF9icmlkZ2Vfd2hpdGVsaXN0KHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmhvc3QsCisJCQkJICAgIGJvb2wgc2FtZV9ob3N0X2JyaWRnZSkKK3sKKwlzdHJ1Y3QgcGNpX2RldiAqcm9vdCA9IHBjaV9nZXRfc2xvdChob3N0LT5idXMsIFBDSV9ERVZGTigwLCAwKSk7CisJY29uc3Qgc3RydWN0IHBjaV9wMnBkbWFfd2hpdGVsaXN0X2VudHJ5ICplbnRyeTsKKwl1bnNpZ25lZCBzaG9ydCB2ZW5kb3IsIGRldmljZTsKIAogCWlmICghcm9vdCkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMjY2LDY1ICszMDYsNDkgQEAgc3RhdGljIGJvb2wgcm9vdF9jb21wbGV4X3doaXRlbGlzdChzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCWRldmljZSA9IHJvb3QtPmRldmljZTsKIAlwY2lfZGV2X3B1dChyb290KTsKIAotCS8qIEFNRCBaRU4gaG9zdCBicmlkZ2VzIGNhbiBkbyBwZWVyIHRvIHBlZXIgKi8KLQlpZiAodmVuZG9yID09IFBDSV9WRU5ET1JfSURfQU1EICYmIGRldmljZSA9PSAweDE0NTApCisJZm9yIChlbnRyeSA9IHBjaV9wMnBkbWFfd2hpdGVsaXN0OyBlbnRyeS0+dmVuZG9yOyBlbnRyeSsrKSB7CisJCWlmICh2ZW5kb3IgIT0gZW50cnktPnZlbmRvciB8fCBkZXZpY2UgIT0gZW50cnktPmRldmljZSkKKwkJCWNvbnRpbnVlOworCQlpZiAoZW50cnktPmZsYWdzICYgUkVRX1NBTUVfSE9TVF9CUklER0UgJiYgIXNhbWVfaG9zdF9icmlkZ2UpCisJCQlyZXR1cm4gZmFsc2U7CisKIAkJcmV0dXJuIHRydWU7CisJfQogCiAJcmV0dXJuIGZhbHNlOwogfQogCiAvKgotICogRmluZCB0aGUgZGlzdGFuY2UgdGhyb3VnaCB0aGUgbmVhcmVzdCBjb21tb24gdXBzdHJlYW0gYnJpZGdlIGJldHdlZW4KLSAqIHR3byBQQ0kgZGV2aWNlcy4KLSAqCi0gKiBJZiB0aGUgdHdvIGRldmljZXMgYXJlIHRoZSBzYW1lIGRldmljZSB0aGVuIDAgd2lsbCBiZSByZXR1cm5lZC4KLSAqCi0gKiBJZiB0aGVyZSBhcmUgdHdvIHZpcnR1YWwgZnVuY3Rpb25zIG9mIHRoZSBzYW1lIGRldmljZSBiZWhpbmQgdGhlIHNhbWUKLSAqIGJyaWRnZSBwb3J0IHRoZW4gMiB3aWxsIGJlIHJldHVybmVkIChvbmUgc3RlcCBkb3duIHRvIHRoZSBQQ0llIHN3aXRjaCwKLSAqIHRoZW4gb25lIHN0ZXAgYmFjayB0byB0aGUgc2FtZSBkZXZpY2UpLgotICoKLSAqIEluIHRoZSBjYXNlIHdoZXJlIHR3byBkZXZpY2VzIGFyZSBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgUENJZSBzd2l0Y2gsIHRoZQotICogdmFsdWUgNCB3aWxsIGJlIHJldHVybmVkLiBUaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSBmb2xsb3dpbmcgUENJIHRyZWU6Ci0gKgotICogICAgIC0rICBSb290IFBvcnQKLSAqICAgICAgXCsgU3dpdGNoIFVwc3RyZWFtIFBvcnQKLSAqICAgICAgICstKyBTd2l0Y2ggRG93bnN0cmVhbSBQb3J0Ci0gKiAgICAgICArIFwtIERldmljZSBBCi0gKiAgICAgICBcLSsgU3dpdGNoIERvd25zdHJlYW0gUG9ydAotICogICAgICAgICBcLSBEZXZpY2UgQgotICoKLSAqIFRoZSBkaXN0YW5jZSBpcyA0IGJlY2F1c2Ugd2UgdHJhdmVyc2UgZnJvbSBEZXZpY2UgQSB0aHJvdWdoIHRoZSBkb3duc3RyZWFtCi0gKiBwb3J0IG9mIHRoZSBzd2l0Y2gsIHRvIHRoZSBjb21tb24gdXBzdHJlYW0gcG9ydCwgYmFjayB1cCB0byB0aGUgc2Vjb25kCi0gKiBkb3duc3RyZWFtIHBvcnQgYW5kIHRoZW4gdG8gRGV2aWNlIEIuCi0gKgotICogQW55IHR3byBkZXZpY2VzIHRoYXQgZG9uJ3QgaGF2ZSBhIGNvbW1vbiB1cHN0cmVhbSBicmlkZ2Ugd2lsbCByZXR1cm4gLTEuCi0gKiBJbiB0aGlzIHdheSBkZXZpY2VzIG9uIHNlcGFyYXRlIFBDSWUgcm9vdCBwb3J0cyB3aWxsIGJlIHJlamVjdGVkLCB3aGljaAotICogaXMgd2hhdCB3ZSB3YW50IGZvciBwZWVyLXRvLXBlZXIgc2VlaW5nIGVhY2ggUENJZSByb290IHBvcnQgZGVmaW5lcyBhCi0gKiBzZXBhcmF0ZSBoaWVyYXJjaHkgZG9tYWluIGFuZCB0aGVyZSdzIG5vIHdheSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgcm9vdAotICogY29tcGxleCBzdXBwb3J0cyBmb3J3YXJkaW5nIGJldHdlZW4gdGhlbS4KLSAqCi0gKiBJbiB0aGUgY2FzZSB3aGVyZSB0d28gZGV2aWNlcyBhcmUgY29ubmVjdGVkIHRvIGRpZmZlcmVudCBQQ0llIHN3aXRjaGVzLAotICogdGhpcyBmdW5jdGlvbiB3aWxsIHN0aWxsIHJldHVybiBhIHBvc2l0aXZlIGRpc3RhbmNlIGFzIGxvbmcgYXMgYm90aAotICogc3dpdGNoZXMgZXZlbnR1YWxseSBoYXZlIGEgY29tbW9uIHVwc3RyZWFtIGJyaWRnZS4gTm90ZSB0aGlzIGNvdmVycwotICogdGhlIGNhc2Ugb2YgdXNpbmcgbXVsdGlwbGUgUENJZSBzd2l0Y2hlcyB0byBhY2hpZXZlIGEgZGVzaXJlZCBsZXZlbCBvZgotICogZmFuLW91dCBmcm9tIGEgcm9vdCBwb3J0LiBUaGUgZXhhY3QgZGlzdGFuY2Ugd2lsbCBiZSBhIGZ1bmN0aW9uIG9mIHRoZQotICogbnVtYmVyIG9mIHN3aXRjaGVzIGJldHdlZW4gRGV2aWNlIEEgYW5kIERldmljZSBCLgotICoKLSAqIElmIGEgYnJpZGdlIHdoaWNoIGhhcyBhbnkgQUNTIHJlZGlyZWN0aW9uIGJpdHMgc2V0IGlzIGluIHRoZSBwYXRoCi0gKiB0aGVuIHRoaXMgZnVuY3Rpb25zIHdpbGwgcmV0dXJuIC0yLiBUaGlzIGlzIHNvIHdlIHJlamVjdCBhbnkKLSAqIGNhc2VzIHdoZXJlIHRoZSBUTFBzIGFyZSBmb3J3YXJkZWQgdXAgaW50byB0aGUgcm9vdCBjb21wbGV4LgotICogSW4gdGhpcyBjYXNlLCBhIGxpc3Qgb2YgYWxsIGluZnJpbmdpbmcgYnJpZGdlIGFkZHJlc3NlcyB3aWxsIGJlCi0gKiBwb3B1bGF0ZWQgaW4gYWNzX2xpc3QgKGFzc3VtaW5nIGl0J3Mgbm9uLW51bGwpIGZvciBwcmludGsgcHVycG9zZXMuCisgKiBJZiB3ZSBjYW4ndCBmaW5kIGEgY29tbW9uIHVwc3RyZWFtIGJyaWRnZSB0YWtlIGEgbG9vayBhdCB0aGUgcm9vdAorICogY29tcGxleCBhbmQgY29tcGFyZSBpdCB0byBhIHdoaXRlbGlzdCBvZiBrbm93biBnb29kIGhhcmR3YXJlLgogICovCi1zdGF0aWMgaW50IHVwc3RyZWFtX2JyaWRnZV9kaXN0YW5jZShzdHJ1Y3QgcGNpX2RldiAqcHJvdmlkZXIsCi0JCQkJICAgIHN0cnVjdCBwY2lfZGV2ICpjbGllbnQsCi0JCQkJICAgIHN0cnVjdCBzZXFfYnVmICphY3NfbGlzdCkKK3N0YXRpYyBib29sIGhvc3RfYnJpZGdlX3doaXRlbGlzdChzdHJ1Y3QgcGNpX2RldiAqYSwgc3RydWN0IHBjaV9kZXYgKmIpCit7CisJc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqaG9zdF9hID0gcGNpX2ZpbmRfaG9zdF9icmlkZ2UoYS0+YnVzKTsKKwlzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpob3N0X2IgPSBwY2lfZmluZF9ob3N0X2JyaWRnZShiLT5idXMpOworCisJaWYgKGhvc3RfYSA9PSBob3N0X2IpCisJCXJldHVybiBfX2hvc3RfYnJpZGdlX3doaXRlbGlzdChob3N0X2EsIHRydWUpOworCisJaWYgKF9faG9zdF9icmlkZ2Vfd2hpdGVsaXN0KGhvc3RfYSwgZmFsc2UpICYmCisJICAgIF9faG9zdF9icmlkZ2Vfd2hpdGVsaXN0KGhvc3RfYiwgZmFsc2UpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGVudW0gcGNpX3AycGRtYV9tYXBfdHlwZQorX191cHN0cmVhbV9icmlkZ2VfZGlzdGFuY2Uoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLCBzdHJ1Y3QgcGNpX2RldiAqY2xpZW50LAorCQlpbnQgKmRpc3QsIGJvb2wgKmFjc19yZWRpcmVjdHMsIHN0cnVjdCBzZXFfYnVmICphY3NfbGlzdCkKIHsKIAlzdHJ1Y3QgcGNpX2RldiAqYSA9IHByb3ZpZGVyLCAqYiA9IGNsaWVudCwgKmJiOwogCWludCBkaXN0X2EgPSAwOwogCWludCBkaXN0X2IgPSAwOwogCWludCBhY3NfY250ID0gMDsKIAorCWlmIChhY3NfcmVkaXJlY3RzKQorCQkqYWNzX3JlZGlyZWN0cyA9IGZhbHNlOworCiAJLyoKIAkgKiBOb3RlLCB3ZSBkb24ndCBuZWVkIHRvIHRha2UgcmVmZXJlbmNlcyB0byBkZXZpY2VzIHJldHVybmVkIGJ5CiAJICogcGNpX3Vwc3RyZWFtX2JyaWRnZSgpIHNlZWluZyB3ZSBob2xkIGEgcmVmZXJlbmNlIHRvIGEgY2hpbGQKQEAgLTM1MywxNSArMzc3LDEwIEBAIHN0YXRpYyBpbnQgdXBzdHJlYW1fYnJpZGdlX2Rpc3RhbmNlKHN0cnVjdCBwY2lfZGV2ICpwcm92aWRlciwKIAkJZGlzdF9hKys7CiAJfQogCi0JLyoKLQkgKiBBbGxvdyB0aGUgY29ubmVjdGlvbiBpZiBib3RoIGRldmljZXMgYXJlIG9uIGEgd2hpdGVsaXN0ZWQgcm9vdAotCSAqIGNvbXBsZXgsIGJ1dCBhZGQgYW4gYXJiaXRyYXJ5IGxhcmdlIHZhbHVlIHRvIHRoZSBkaXN0YW5jZS4KLQkgKi8KLQlpZiAocm9vdF9jb21wbGV4X3doaXRlbGlzdChwcm92aWRlcikgJiYKLQkgICAgcm9vdF9jb21wbGV4X3doaXRlbGlzdChjbGllbnQpKQotCQlyZXR1cm4gMHgxMDAwICsgZGlzdF9hICsgZGlzdF9iOworCWlmIChkaXN0KQorCQkqZGlzdCA9IGRpc3RfYSArIGRpc3RfYjsKIAotCXJldHVybiAtMTsKKwlyZXR1cm4gUENJX1AyUERNQV9NQVBfVEhSVV9IT1NUX0JSSURHRTsKIAogY2hlY2tfYl9wYXRoX2FjczoKIAliYiA9IGI7CkBAIC0zNzgsMzMgKzM5NywxMTAgQEAgc3RhdGljIGludCB1cHN0cmVhbV9icmlkZ2VfZGlzdGFuY2Uoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLAogCQliYiA9IHBjaV91cHN0cmVhbV9icmlkZ2UoYmIpOwogCX0KIAotCWlmIChhY3NfY250KQotCQlyZXR1cm4gLTI7CisJaWYgKGRpc3QpCisJCSpkaXN0ID0gZGlzdF9hICsgZGlzdF9iOwogCi0JcmV0dXJuIGRpc3RfYSArIGRpc3RfYjsKKwlpZiAoYWNzX2NudCkgeworCQlpZiAoYWNzX3JlZGlyZWN0cykKKwkJCSphY3NfcmVkaXJlY3RzID0gdHJ1ZTsKKworCQlyZXR1cm4gUENJX1AyUERNQV9NQVBfVEhSVV9IT1NUX0JSSURHRTsKKwl9CisKKwlyZXR1cm4gUENJX1AyUERNQV9NQVBfQlVTX0FERFI7CiB9CiAKLXN0YXRpYyBpbnQgdXBzdHJlYW1fYnJpZGdlX2Rpc3RhbmNlX3dhcm4oc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLAotCQkJCQkgc3RydWN0IHBjaV9kZXYgKmNsaWVudCkKK3N0YXRpYyB1bnNpZ25lZCBsb25nIG1hcF90eXBlc19pZHgoc3RydWN0IHBjaV9kZXYgKmNsaWVudCkKK3sKKwlyZXR1cm4gKHBjaV9kb21haW5fbnIoY2xpZW50LT5idXMpIDw8IDE2KSB8CisJCShjbGllbnQtPmJ1cy0+bnVtYmVyIDw8IDgpIHwgY2xpZW50LT5kZXZmbjsKK30KKworLyoKKyAqIEZpbmQgdGhlIGRpc3RhbmNlIHRocm91Z2ggdGhlIG5lYXJlc3QgY29tbW9uIHVwc3RyZWFtIGJyaWRnZSBiZXR3ZWVuCisgKiB0d28gUENJIGRldmljZXMuCisgKgorICogSWYgdGhlIHR3byBkZXZpY2VzIGFyZSB0aGUgc2FtZSBkZXZpY2UgdGhlbiAwIHdpbGwgYmUgcmV0dXJuZWQuCisgKgorICogSWYgdGhlcmUgYXJlIHR3byB2aXJ0dWFsIGZ1bmN0aW9ucyBvZiB0aGUgc2FtZSBkZXZpY2UgYmVoaW5kIHRoZSBzYW1lCisgKiBicmlkZ2UgcG9ydCB0aGVuIDIgd2lsbCBiZSByZXR1cm5lZCAob25lIHN0ZXAgZG93biB0byB0aGUgUENJZSBzd2l0Y2gsCisgKiB0aGVuIG9uZSBzdGVwIGJhY2sgdG8gdGhlIHNhbWUgZGV2aWNlKS4KKyAqCisgKiBJbiB0aGUgY2FzZSB3aGVyZSB0d28gZGV2aWNlcyBhcmUgY29ubmVjdGVkIHRvIHRoZSBzYW1lIFBDSWUgc3dpdGNoLCB0aGUKKyAqIHZhbHVlIDQgd2lsbCBiZSByZXR1cm5lZC4gVGhpcyBjb3JyZXNwb25kcyB0byB0aGUgZm9sbG93aW5nIFBDSSB0cmVlOgorICoKKyAqICAgICAtKyAgUm9vdCBQb3J0CisgKiAgICAgIFwrIFN3aXRjaCBVcHN0cmVhbSBQb3J0CisgKiAgICAgICArLSsgU3dpdGNoIERvd25zdHJlYW0gUG9ydAorICogICAgICAgKyBcLSBEZXZpY2UgQQorICogICAgICAgXC0rIFN3aXRjaCBEb3duc3RyZWFtIFBvcnQKKyAqICAgICAgICAgXC0gRGV2aWNlIEIKKyAqCisgKiBUaGUgZGlzdGFuY2UgaXMgNCBiZWNhdXNlIHdlIHRyYXZlcnNlIGZyb20gRGV2aWNlIEEgdGhyb3VnaCB0aGUgZG93bnN0cmVhbQorICogcG9ydCBvZiB0aGUgc3dpdGNoLCB0byB0aGUgY29tbW9uIHVwc3RyZWFtIHBvcnQsIGJhY2sgdXAgdG8gdGhlIHNlY29uZAorICogZG93bnN0cmVhbSBwb3J0IGFuZCB0aGVuIHRvIERldmljZSBCLgorICoKKyAqIEFueSB0d28gZGV2aWNlcyB0aGF0IGNhbm5vdCBjb21tdW5pY2F0ZSB1c2luZyBwMnBkbWEgd2lsbCByZXR1cm4KKyAqIFBDSV9QMlBETUFfTUFQX05PVF9TVVBQT1JURUQuCisgKgorICogQW55IHR3byBkZXZpY2VzIHRoYXQgaGF2ZSBhIGRhdGEgcGF0aCB0aGF0IGdvZXMgdGhyb3VnaCB0aGUgaG9zdCBicmlkZ2UKKyAqIHdpbGwgY29uc3VsdCBhIHdoaXRlbGlzdC4gSWYgdGhlIGhvc3QgYnJpZGdlcyBhcmUgb24gdGhlIHdoaXRlbGlzdCwKKyAqIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gUENJX1AyUERNQV9NQVBfVEhSVV9IT1NUX0JSSURHRS4KKyAqCisgKiBJZiBlaXRoZXIgYnJpZGdlIGlzIG5vdCBvbiB0aGUgd2hpdGVsaXN0IHRoaXMgZnVuY3Rpb24gcmV0dXJucworICogUENJX1AyUERNQV9NQVBfTk9UX1NVUFBPUlRFRC4KKyAqCisgKiBJZiBhIGJyaWRnZSB3aGljaCBoYXMgYW55IEFDUyByZWRpcmVjdGlvbiBiaXRzIHNldCBpcyBpbiB0aGUgcGF0aCwKKyAqIGFjc19yZWRpcmVjdHMgd2lsbCBiZSBzZXQgdG8gdHJ1ZS4gSW4gdGhpcyBjYXNlLCBhIGxpc3Qgb2YgYWxsIGluZnJpbmdpbmcKKyAqIGJyaWRnZSBhZGRyZXNzZXMgd2lsbCBiZSBwb3B1bGF0ZWQgaW4gYWNzX2xpc3QgKGFzc3VtaW5nIGl0J3Mgbm9uLW51bGwpCisgKiBmb3IgcHJpbnRrIHB1cnBvc2VzLgorICovCitzdGF0aWMgZW51bSBwY2lfcDJwZG1hX21hcF90eXBlCit1cHN0cmVhbV9icmlkZ2VfZGlzdGFuY2Uoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLCBzdHJ1Y3QgcGNpX2RldiAqY2xpZW50LAorCQlpbnQgKmRpc3QsIGJvb2wgKmFjc19yZWRpcmVjdHMsIHN0cnVjdCBzZXFfYnVmICphY3NfbGlzdCkKK3sKKwllbnVtIHBjaV9wMnBkbWFfbWFwX3R5cGUgbWFwX3R5cGU7CisKKwltYXBfdHlwZSA9IF9fdXBzdHJlYW1fYnJpZGdlX2Rpc3RhbmNlKHByb3ZpZGVyLCBjbGllbnQsIGRpc3QsCisJCQkJCSAgICAgIGFjc19yZWRpcmVjdHMsIGFjc19saXN0KTsKKworCWlmIChtYXBfdHlwZSA9PSBQQ0lfUDJQRE1BX01BUF9USFJVX0hPU1RfQlJJREdFKSB7CisJCWlmICghaG9zdF9icmlkZ2Vfd2hpdGVsaXN0KHByb3ZpZGVyLCBjbGllbnQpKQorCQkJbWFwX3R5cGUgPSBQQ0lfUDJQRE1BX01BUF9OT1RfU1VQUE9SVEVEOworCX0KKworCWlmIChwcm92aWRlci0+cDJwZG1hKQorCQl4YV9zdG9yZSgmcHJvdmlkZXItPnAycGRtYS0+bWFwX3R5cGVzLCBtYXBfdHlwZXNfaWR4KGNsaWVudCksCisJCQkgeGFfbWtfdmFsdWUobWFwX3R5cGUpLCBHRlBfS0VSTkVMKTsKKworCXJldHVybiBtYXBfdHlwZTsKK30KKworc3RhdGljIGVudW0gcGNpX3AycGRtYV9tYXBfdHlwZQordXBzdHJlYW1fYnJpZGdlX2Rpc3RhbmNlX3dhcm4oc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLCBzdHJ1Y3QgcGNpX2RldiAqY2xpZW50LAorCQkJICAgICAgaW50ICpkaXN0KQogewogCXN0cnVjdCBzZXFfYnVmIGFjc19saXN0OworCWJvb2wgYWNzX3JlZGlyZWN0czsKIAlpbnQgcmV0OwogCiAJc2VxX2J1Zl9pbml0KCZhY3NfbGlzdCwga21hbGxvYyhQQUdFX1NJWkUsIEdGUF9LRVJORUwpLCBQQUdFX1NJWkUpOwogCWlmICghYWNzX2xpc3QuYnVmZmVyKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXJldCA9IHVwc3RyZWFtX2JyaWRnZV9kaXN0YW5jZShwcm92aWRlciwgY2xpZW50LCAmYWNzX2xpc3QpOwotCWlmIChyZXQgPT0gLTIpIHsKLQkJcGNpX3dhcm4oY2xpZW50LCAiY2Fubm90IGJlIHVzZWQgZm9yIHBlZXItdG8tcGVlciBETUEgYXMgQUNTIHJlZGlyZWN0IGlzIHNldCBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHByb3ZpZGVyICglcylcbiIsCisJcmV0ID0gdXBzdHJlYW1fYnJpZGdlX2Rpc3RhbmNlKHByb3ZpZGVyLCBjbGllbnQsIGRpc3QsICZhY3NfcmVkaXJlY3RzLAorCQkJCSAgICAgICAmYWNzX2xpc3QpOworCWlmIChhY3NfcmVkaXJlY3RzKSB7CisJCXBjaV93YXJuKGNsaWVudCwgIkFDUyByZWRpcmVjdCBpcyBzZXQgYmV0d2VlbiB0aGUgY2xpZW50IGFuZCBwcm92aWRlciAoJXMpXG4iLAogCQkJIHBjaV9uYW1lKHByb3ZpZGVyKSk7CiAJCS8qIERyb3AgZmluYWwgc2VtaWNvbG9uICovCiAJCWFjc19saXN0LmJ1ZmZlclthY3NfbGlzdC5sZW4tMV0gPSAwOwogCQlwY2lfd2FybihjbGllbnQsICJ0byBkaXNhYmxlIEFDUyByZWRpcmVjdCBmb3IgdGhpcyBwYXRoLCBhZGQgdGhlIGtlcm5lbCBwYXJhbWV0ZXI6IHBjaT1kaXNhYmxlX2Fjc19yZWRpcj0lc1xuIiwKIAkJCSBhY3NfbGlzdC5idWZmZXIpOworCX0KIAotCX0gZWxzZSBpZiAocmV0IDwgMCkgewotCQlwY2lfd2FybihjbGllbnQsICJjYW5ub3QgYmUgdXNlZCBmb3IgcGVlci10by1wZWVyIERNQSBhcyB0aGUgY2xpZW50IGFuZCBwcm92aWRlciAoJXMpIGRvIG5vdCBzaGFyZSBhbiB1cHN0cmVhbSBicmlkZ2VcbiIsCisJaWYgKHJldCA9PSBQQ0lfUDJQRE1BX01BUF9OT1RfU1VQUE9SVEVEKSB7CisJCXBjaV93YXJuKGNsaWVudCwgImNhbm5vdCBiZSB1c2VkIGZvciBwZWVyLXRvLXBlZXIgRE1BIGFzIHRoZSBjbGllbnQgYW5kIHByb3ZpZGVyICglcykgZG8gbm90IHNoYXJlIGFuIHVwc3RyZWFtIGJyaWRnZSBvciB3aGl0ZWxpc3RlZCBob3N0IGJyaWRnZVxuIiwKIAkJCSBwY2lfbmFtZShwcm92aWRlcikpOwogCX0KIApAQCAtNDIxLDIyICs1MTcsMjIgQEAgc3RhdGljIGludCB1cHN0cmVhbV9icmlkZ2VfZGlzdGFuY2Vfd2FybihzdHJ1Y3QgcGNpX2RldiAqcHJvdmlkZXIsCiAgKiBAbnVtX2NsaWVudHM6IG51bWJlciBvZiBjbGllbnRzIGluIHRoZSBhcnJheQogICogQHZlcmJvc2U6IGlmIHRydWUsIHByaW50IHdhcm5pbmdzIGZvciBkZXZpY2VzIHdoZW4gd2UgcmV0dXJuIC0xCiAgKgotICogUmV0dXJucyAtMSBpZiBhbnkgb2YgdGhlIGNsaWVudHMgYXJlIG5vdCBjb21wYXRpYmxlIChiZWhpbmQgdGhlIHNhbWUKLSAqIHJvb3QgcG9ydCBhcyB0aGUgcHJvdmlkZXIpLCBvdGhlcndpc2UgcmV0dXJucyBhIHBvc2l0aXZlIG51bWJlciB3aGVyZQotICogYSBsb3dlciBudW1iZXIgaXMgdGhlIHByZWZlcmFibGUgY2hvaWNlLiAoSWYgdGhlcmUncyBvbmUgY2xpZW50Ci0gKiB0aGF0J3MgdGhlIHNhbWUgYXMgdGhlIHByb3ZpZGVyIGl0IHdpbGwgcmV0dXJuIDAsIHdoaWNoIGlzIGJlc3QgY2hvaWNlKS4KKyAqIFJldHVybnMgLTEgaWYgYW55IG9mIHRoZSBjbGllbnRzIGFyZSBub3QgY29tcGF0aWJsZSwgb3RoZXJ3aXNlIHJldHVybnMgYQorICogcG9zaXRpdmUgbnVtYmVyIHdoZXJlIGEgbG93ZXIgbnVtYmVyIGlzIHRoZSBwcmVmZXJhYmxlIGNob2ljZS4gKElmIHRoZXJlJ3MKKyAqIG9uZSBjbGllbnQgdGhhdCdzIHRoZSBzYW1lIGFzIHRoZSBwcm92aWRlciBpdCB3aWxsIHJldHVybiAwLCB3aGljaCBpcyBiZXN0CisgKiBjaG9pY2UpLgogICoKLSAqIEZvciBub3csICJjb21wYXRpYmxlIiBtZWFucyB0aGUgcHJvdmlkZXIgYW5kIHRoZSBjbGllbnRzIGFyZSBhbGwgYmVoaW5kCi0gKiB0aGUgc2FtZSBQQ0kgcm9vdCBwb3J0LiBUaGlzIGN1dHMgb3V0IGNhc2VzIHRoYXQgbWF5IHdvcmsgYnV0IGlzIHNhZmVzdAotICogZm9yIHRoZSB1c2VyLiBGdXR1cmUgd29yayBjYW4gZXhwYW5kIHRoaXMgdG8gd2hpdGUtbGlzdCByb290IGNvbXBsZXhlcyB0aGF0Ci0gKiBjYW4gc2FmZWx5IGZvcndhcmQgYmV0d2VlbiBlYWNoIHBvcnRzLgorICogImNvbXBhdGlibGUiIG1lYW5zIHRoZSBwcm92aWRlciBhbmQgdGhlIGNsaWVudHMgYXJlIGVpdGhlciBhbGwgYmVoaW5kCisgKiB0aGUgc2FtZSBQQ0kgcm9vdCBwb3J0IG9yIHRoZSBob3N0IGJyaWRnZXMgY29ubmVjdGVkIHRvIGVhY2ggb2YgdGhlIGRldmljZXMKKyAqIGFyZSBsaXN0ZWQgaW4gdGhlICdwY2lfcDJwZG1hX3doaXRlbGlzdCcuCiAgKi8KIGludCBwY2lfcDJwZG1hX2Rpc3RhbmNlX21hbnkoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLCBzdHJ1Y3QgZGV2aWNlICoqY2xpZW50cywKIAkJCSAgICAgaW50IG51bV9jbGllbnRzLCBib29sIHZlcmJvc2UpCiB7CiAJYm9vbCBub3Rfc3VwcG9ydGVkID0gZmFsc2U7CiAJc3RydWN0IHBjaV9kZXYgKnBjaV9jbGllbnQ7Ci0JaW50IGRpc3RhbmNlID0gMDsKKwlpbnQgdG90YWxfZGlzdCA9IDA7CisJaW50IGRpc3RhbmNlOwogCWludCBpLCByZXQ7CiAKIAlpZiAobnVtX2NsaWVudHMgPT0gMCkKQEAgLTQ2MSwyNiArNTU3LDI2IEBAIGludCBwY2lfcDJwZG1hX2Rpc3RhbmNlX21hbnkoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLCBzdHJ1Y3QgZGV2aWNlICoqY2xpZW50cywKIAogCQlpZiAodmVyYm9zZSkKIAkJCXJldCA9IHVwc3RyZWFtX2JyaWRnZV9kaXN0YW5jZV93YXJuKHByb3ZpZGVyLAotCQkJCQkJCSAgICBwY2lfY2xpZW50KTsKKwkJCQkJcGNpX2NsaWVudCwgJmRpc3RhbmNlKTsKIAkJZWxzZQogCQkJcmV0ID0gdXBzdHJlYW1fYnJpZGdlX2Rpc3RhbmNlKHByb3ZpZGVyLCBwY2lfY2xpZW50LAotCQkJCQkJICAgICAgIE5VTEwpOworCQkJCQkJICAgICAgICZkaXN0YW5jZSwgTlVMTCwgTlVMTCk7CiAKIAkJcGNpX2Rldl9wdXQocGNpX2NsaWVudCk7CiAKLQkJaWYgKHJldCA8IDApCisJCWlmIChyZXQgPT0gUENJX1AyUERNQV9NQVBfTk9UX1NVUFBPUlRFRCkKIAkJCW5vdF9zdXBwb3J0ZWQgPSB0cnVlOwogCiAJCWlmIChub3Rfc3VwcG9ydGVkICYmICF2ZXJib3NlKQogCQkJYnJlYWs7CiAKLQkJZGlzdGFuY2UgKz0gcmV0OworCQl0b3RhbF9kaXN0ICs9IGRpc3RhbmNlOwogCX0KIAogCWlmIChub3Rfc3VwcG9ydGVkKQogCQlyZXR1cm4gLTE7CiAKLQlyZXR1cm4gZGlzdGFuY2U7CisJcmV0dXJuIHRvdGFsX2Rpc3Q7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChwY2lfcDJwZG1hX2Rpc3RhbmNlX21hbnkpOwogCkBAIC03MDYsMjEgKzgwMiwxOSBAQCB2b2lkIHBjaV9wMnBtZW1fcHVibGlzaChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgYm9vbCBwdWJsaXNoKQogfQogRVhQT1JUX1NZTUJPTF9HUEwocGNpX3AycG1lbV9wdWJsaXNoKTsKIAotLyoqCi0gKiBwY2lfcDJwZG1hX21hcF9zZyAtIG1hcCBhIFBDSSBwZWVyLXRvLXBlZXIgc2NhdHRlcmxpc3QgZm9yIERNQQotICogQGRldjogZGV2aWNlIGRvaW5nIHRoZSBETUEgcmVxdWVzdAotICogQHNnOiBzY2F0dGVyIGxpc3QgdG8gbWFwCi0gKiBAbmVudHM6IGVsZW1lbnRzIGluIHRoZSBzY2F0dGVybGlzdAotICogQGRpcjogRE1BIGRpcmVjdGlvbgotICoKLSAqIFNjYXR0ZXJsaXN0cyBtYXBwZWQgd2l0aCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgdW5tYXBwZWQgaW4gYW55IHdheS4KLSAqCi0gKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgU0cgZW50cmllcyBtYXBwZWQgb3IgMCBvbiBlcnJvci4KLSAqLwotaW50IHBjaV9wMnBkbWFfbWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgaW50IG5lbnRzLAotCQkgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCitzdGF0aWMgZW51bSBwY2lfcDJwZG1hX21hcF90eXBlIHBjaV9wMnBkbWFfbWFwX3R5cGUoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLAorCQkJCQkJICAgIHN0cnVjdCBwY2lfZGV2ICpjbGllbnQpCiB7Ci0Jc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcDsKKwlpZiAoIXByb3ZpZGVyLT5wMnBkbWEpCisJCXJldHVybiBQQ0lfUDJQRE1BX01BUF9OT1RfU1VQUE9SVEVEOworCisJcmV0dXJuIHhhX3RvX3ZhbHVlKHhhX2xvYWQoJnByb3ZpZGVyLT5wMnBkbWEtPm1hcF90eXBlcywKKwkJCQkgICBtYXBfdHlwZXNfaWR4KGNsaWVudCkpKTsKK30KKworc3RhdGljIGludCBfX3BjaV9wMnBkbWFfbWFwX3NnKHN0cnVjdCBwY2lfcDJwZG1hX3BhZ2VtYXAgKnAycF9wZ21hcCwKKwkJc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmVudHMpCit7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOwogCXBoeXNfYWRkcl90IHBhZGRyOwogCWludCBpOwpAQCAtNzM2LDE2ICs4MzAsODAgQEAgaW50IHBjaV9wMnBkbWFfbWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgaW50IG5lbnRzLAogCQlyZXR1cm4gMDsKIAogCWZvcl9lYWNoX3NnKHNnLCBzLCBuZW50cywgaSkgewotCQlwZ21hcCA9IHNnX3BhZ2UocyktPnBnbWFwOwogCQlwYWRkciA9IHNnX3BoeXMocyk7CiAKLQkJcy0+ZG1hX2FkZHJlc3MgPSBwYWRkciAtIHBnbWFwLT5wY2lfcDJwZG1hX2J1c19vZmZzZXQ7CisJCXMtPmRtYV9hZGRyZXNzID0gcGFkZHIgLSBwMnBfcGdtYXAtPmJ1c19vZmZzZXQ7CiAJCXNnX2RtYV9sZW4ocykgPSBzLT5sZW5ndGg7CiAJfQogCiAJcmV0dXJuIG5lbnRzOwogfQotRVhQT1JUX1NZTUJPTF9HUEwocGNpX3AycGRtYV9tYXBfc2cpOworCisvKioKKyAqIHBjaV9wMnBkbWFfbWFwX3NnIC0gbWFwIGEgUENJIHBlZXItdG8tcGVlciBzY2F0dGVybGlzdCBmb3IgRE1BCisgKiBAZGV2OiBkZXZpY2UgZG9pbmcgdGhlIERNQSByZXF1ZXN0CisgKiBAc2c6IHNjYXR0ZXIgbGlzdCB0byBtYXAKKyAqIEBuZW50czogZWxlbWVudHMgaW4gdGhlIHNjYXR0ZXJsaXN0CisgKiBAZGlyOiBETUEgZGlyZWN0aW9uCisgKiBAYXR0cnM6IERNQSBhdHRyaWJ1dGVzIHBhc3NlZCB0byBkbWFfbWFwX3NnKCkgKGlmIGNhbGxlZCkKKyAqCisgKiBTY2F0dGVybGlzdHMgbWFwcGVkIHdpdGggdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgdW5tYXBwZWQgdXNpbmcKKyAqIHBjaV9wMnBkbWFfdW5tYXBfc2dfYXR0cnMoKS4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgU0cgZW50cmllcyBtYXBwZWQgb3IgMCBvbiBlcnJvci4KKyAqLworaW50IHBjaV9wMnBkbWFfbWFwX3NnX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKKwkJaW50IG5lbnRzLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCit7CisJc3RydWN0IHBjaV9wMnBkbWFfcGFnZW1hcCAqcDJwX3BnbWFwID0KKwkJdG9fcDJwX3BnbWFwKHNnX3BhZ2Uoc2cpLT5wZ21hcCk7CisJc3RydWN0IHBjaV9kZXYgKmNsaWVudDsKKworCWlmIChXQVJOX09OX09OQ0UoIWRldl9pc19wY2koZGV2KSkpCisJCXJldHVybiAwOworCisJY2xpZW50ID0gdG9fcGNpX2RldihkZXYpOworCisJc3dpdGNoIChwY2lfcDJwZG1hX21hcF90eXBlKHAycF9wZ21hcC0+cHJvdmlkZXIsIGNsaWVudCkpIHsKKwljYXNlIFBDSV9QMlBETUFfTUFQX1RIUlVfSE9TVF9CUklER0U6CisJCXJldHVybiBkbWFfbWFwX3NnX2F0dHJzKGRldiwgc2csIG5lbnRzLCBkaXIsIGF0dHJzKTsKKwljYXNlIFBDSV9QMlBETUFfTUFQX0JVU19BRERSOgorCQlyZXR1cm4gX19wY2lfcDJwZG1hX21hcF9zZyhwMnBfcGdtYXAsIGRldiwgc2csIG5lbnRzKTsKKwlkZWZhdWx0OgorCQlXQVJOX09OX09OQ0UoMSk7CisJCXJldHVybiAwOworCX0KK30KK0VYUE9SVF9TWU1CT0xfR1BMKHBjaV9wMnBkbWFfbWFwX3NnX2F0dHJzKTsKKworLyoqCisgKiBwY2lfcDJwZG1hX3VubWFwX3NnIC0gdW5tYXAgYSBQQ0kgcGVlci10by1wZWVyIHNjYXR0ZXJsaXN0IHRoYXQgd2FzCisgKgltYXBwZWQgd2l0aCBwY2lfcDJwZG1hX21hcF9zZygpCisgKiBAZGV2OiBkZXZpY2UgZG9pbmcgdGhlIERNQSByZXF1ZXN0CisgKiBAc2c6IHNjYXR0ZXIgbGlzdCB0byBtYXAKKyAqIEBuZW50czogbnVtYmVyIG9mIGVsZW1lbnRzIHJldHVybmVkIGJ5IHBjaV9wMnBkbWFfbWFwX3NnKCkKKyAqIEBkaXI6IERNQSBkaXJlY3Rpb24KKyAqIEBhdHRyczogRE1BIGF0dHJpYnV0ZXMgcGFzc2VkIHRvIGRtYV91bm1hcF9zZygpIChpZiBjYWxsZWQpCisgKi8KK3ZvaWQgcGNpX3AycGRtYV91bm1hcF9zZ19hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCisJCWludCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQoreworCXN0cnVjdCBwY2lfcDJwZG1hX3BhZ2VtYXAgKnAycF9wZ21hcCA9CisJCXRvX3AycF9wZ21hcChzZ19wYWdlKHNnKS0+cGdtYXApOworCWVudW0gcGNpX3AycGRtYV9tYXBfdHlwZSBtYXBfdHlwZTsKKwlzdHJ1Y3QgcGNpX2RldiAqY2xpZW50OworCisJaWYgKFdBUk5fT05fT05DRSghZGV2X2lzX3BjaShkZXYpKSkKKwkJcmV0dXJuOworCisJY2xpZW50ID0gdG9fcGNpX2RldihkZXYpOworCisJbWFwX3R5cGUgPSBwY2lfcDJwZG1hX21hcF90eXBlKHAycF9wZ21hcC0+cHJvdmlkZXIsIGNsaWVudCk7CisKKwlpZiAobWFwX3R5cGUgPT0gUENJX1AyUERNQV9NQVBfVEhSVV9IT1NUX0JSSURHRSkKKwkJZG1hX3VubWFwX3NnX2F0dHJzKGRldiwgc2csIG5lbnRzLCBkaXIsIGF0dHJzKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHBjaV9wMnBkbWFfdW5tYXBfc2dfYXR0cnMpOwogCiAvKioKICAqIHBjaV9wMnBkbWFfZW5hYmxlX3N0b3JlIC0gcGFyc2UgYSBjb25maWdmcy9zeXNmcyBhdHRyaWJ1dGUgc3RvcmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS1hY3BpLmMgYi9kcml2ZXJzL3BjaS9wY2ktYWNwaS5jCmluZGV4IDQ1MDQ5ZjUuLjBjMDJkNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3BjaS1hY3BpLmMKKysrIGIvZHJpdmVycy9wY2kvcGNpLWFjcGkuYwpAQCAtMTQsNyArMTQsNiBAQAogI2luY2x1ZGUgPGxpbnV4L21zaS5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaV9ob3RwbHVnLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLWFzcG0uaD4KICNpbmNsdWRlIDxsaW51eC9wY2ktYWNwaS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9xb3MuaD4KQEAgLTExOCw4ICsxMTcsNTggQEAgcGh5c19hZGRyX3QgYWNwaV9wY2lfcm9vdF9nZXRfbWNmZ19hZGRyKGFjcGlfaGFuZGxlIGhhbmRsZSkKIAlyZXR1cm4gKHBoeXNfYWRkcl90KW1jZmdfYWRkcjsKIH0KIAorLyogX0hQWCBQQ0kgU2V0dGluZyBSZWNvcmQgKFR5cGUgMCk7IHNhbWUgYXMgX0hQUCAqLworc3RydWN0IGhweF90eXBlMCB7CisJdTMyIHJldmlzaW9uOwkJLyogTm90IHByZXNlbnQgaW4gX0hQUCAqLworCXU4ICBjYWNoZV9saW5lX3NpemU7CS8qIE5vdCBhcHBsaWNhYmxlIHRvIFBDSWUgKi8KKwl1OCAgbGF0ZW5jeV90aW1lcjsJLyogTm90IGFwcGxpY2FibGUgdG8gUENJZSAqLworCXU4ICBlbmFibGVfc2VycjsKKwl1OCAgZW5hYmxlX3BlcnI7Cit9OworCitzdGF0aWMgc3RydWN0IGhweF90eXBlMCBwY2lfZGVmYXVsdF90eXBlMCA9IHsKKwkucmV2aXNpb24gPSAxLAorCS5jYWNoZV9saW5lX3NpemUgPSA4LAorCS5sYXRlbmN5X3RpbWVyID0gMHg0MCwKKwkuZW5hYmxlX3NlcnIgPSAwLAorCS5lbmFibGVfcGVyciA9IDAsCit9OworCitzdGF0aWMgdm9pZCBwcm9ncmFtX2hweF90eXBlMChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3QgaHB4X3R5cGUwICpocHgpCit7CisJdTE2IHBjaV9jbWQsIHBjaV9iY3RsOworCisJaWYgKCFocHgpCisJCWhweCA9ICZwY2lfZGVmYXVsdF90eXBlMDsKKworCWlmIChocHgtPnJldmlzaW9uID4gMSkgeworCQlwY2lfd2FybihkZXYsICJQQ0kgc2V0dGluZ3MgcmV2ICVkIG5vdCBzdXBwb3J0ZWQ7IHVzaW5nIGRlZmF1bHRzXG4iLAorCQkJIGhweC0+cmV2aXNpb24pOworCQlocHggPSAmcGNpX2RlZmF1bHRfdHlwZTA7CisJfQorCisJcGNpX3dyaXRlX2NvbmZpZ19ieXRlKGRldiwgUENJX0NBQ0hFX0xJTkVfU0laRSwgaHB4LT5jYWNoZV9saW5lX3NpemUpOworCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYsIFBDSV9MQVRFTkNZX1RJTUVSLCBocHgtPmxhdGVuY3lfdGltZXIpOworCXBjaV9yZWFkX2NvbmZpZ193b3JkKGRldiwgUENJX0NPTU1BTkQsICZwY2lfY21kKTsKKwlpZiAoaHB4LT5lbmFibGVfc2VycikKKwkJcGNpX2NtZCB8PSBQQ0lfQ09NTUFORF9TRVJSOworCWlmIChocHgtPmVuYWJsZV9wZXJyKQorCQlwY2lfY21kIHw9IFBDSV9DT01NQU5EX1BBUklUWTsKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQoZGV2LCBQQ0lfQ09NTUFORCwgcGNpX2NtZCk7CisKKwkvKiBQcm9ncmFtIGJyaWRnZSBjb250cm9sIHZhbHVlICovCisJaWYgKChkZXYtPmNsYXNzID4+IDgpID09IFBDSV9DTEFTU19CUklER0VfUENJKSB7CisJCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYsIFBDSV9TRUNfTEFURU5DWV9USU1FUiwKKwkJCQkgICAgICBocHgtPmxhdGVuY3lfdGltZXIpOworCQlwY2lfcmVhZF9jb25maWdfd29yZChkZXYsIFBDSV9CUklER0VfQ09OVFJPTCwgJnBjaV9iY3RsKTsKKwkJaWYgKGhweC0+ZW5hYmxlX3BlcnIpCisJCQlwY2lfYmN0bCB8PSBQQ0lfQlJJREdFX0NUTF9QQVJJVFk7CisJCXBjaV93cml0ZV9jb25maWdfd29yZChkZXYsIFBDSV9CUklER0VfQ09OVFJPTCwgcGNpX2JjdGwpOworCX0KK30KKwogc3RhdGljIGFjcGlfc3RhdHVzIGRlY29kZV90eXBlMF9ocHhfcmVjb3JkKHVuaW9uIGFjcGlfb2JqZWN0ICpyZWNvcmQsCi0JCQkJCSAgIHN0cnVjdCBocHBfdHlwZTAgKmhweDApCisJCQkJCSAgIHN0cnVjdCBocHhfdHlwZTAgKmhweDApCiB7CiAJaW50IGk7CiAJdW5pb24gYWNwaV9vYmplY3QgKmZpZWxkcyA9IHJlY29yZC0+cGFja2FnZS5lbGVtZW50czsKQEAgLTE0Niw4ICsxOTUsMzAgQEAgc3RhdGljIGFjcGlfc3RhdHVzIGRlY29kZV90eXBlMF9ocHhfcmVjb3JkKHVuaW9uIGFjcGlfb2JqZWN0ICpyZWNvcmQsCiAJcmV0dXJuIEFFX09LOwogfQogCisvKiBfSFBYIFBDSS1YIFNldHRpbmcgUmVjb3JkIChUeXBlIDEpICovCitzdHJ1Y3QgaHB4X3R5cGUxIHsKKwl1MzIgcmV2aXNpb247CisJdTggIG1heF9tZW1fcmVhZDsKKwl1OCAgYXZnX21heF9zcGxpdDsKKwl1MTYgdG90X21heF9zcGxpdDsKK307CisKK3N0YXRpYyB2b2lkIHByb2dyYW1faHB4X3R5cGUxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHN0cnVjdCBocHhfdHlwZTEgKmhweCkKK3sKKwlpbnQgcG9zOworCisJaWYgKCFocHgpCisJCXJldHVybjsKKworCXBvcyA9IHBjaV9maW5kX2NhcGFiaWxpdHkoZGV2LCBQQ0lfQ0FQX0lEX1BDSVgpOworCWlmICghcG9zKQorCQlyZXR1cm47CisKKwlwY2lfd2FybihkZXYsICJQQ0ktWCBzZXR0aW5ncyBub3Qgc3VwcG9ydGVkXG4iKTsKK30KKwogc3RhdGljIGFjcGlfc3RhdHVzIGRlY29kZV90eXBlMV9ocHhfcmVjb3JkKHVuaW9uIGFjcGlfb2JqZWN0ICpyZWNvcmQsCi0JCQkJCSAgIHN0cnVjdCBocHBfdHlwZTEgKmhweDEpCisJCQkJCSAgIHN0cnVjdCBocHhfdHlwZTEgKmhweDEpCiB7CiAJaW50IGk7CiAJdW5pb24gYWNwaV9vYmplY3QgKmZpZWxkcyA9IHJlY29yZC0+cGFja2FnZS5lbGVtZW50czsKQEAgLTE3Myw4ICsyNDQsMTMwIEBAIHN0YXRpYyBhY3BpX3N0YXR1cyBkZWNvZGVfdHlwZTFfaHB4X3JlY29yZCh1bmlvbiBhY3BpX29iamVjdCAqcmVjb3JkLAogCXJldHVybiBBRV9PSzsKIH0KIAorc3RhdGljIGJvb2wgcGNpZV9yb290X3JjYl9zZXQoc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwlzdHJ1Y3QgcGNpX2RldiAqcnAgPSBwY2llX2ZpbmRfcm9vdF9wb3J0KGRldik7CisJdTE2IGxua2N0bDsKKworCWlmICghcnApCisJCXJldHVybiBmYWxzZTsKKworCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQocnAsIFBDSV9FWFBfTE5LQ1RMLCAmbG5rY3RsKTsKKwlpZiAobG5rY3RsICYgUENJX0VYUF9MTktDVExfUkNCKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKworLyogX0hQWCBQQ0kgRXhwcmVzcyBTZXR0aW5nIFJlY29yZCAoVHlwZSAyKSAqLworc3RydWN0IGhweF90eXBlMiB7CisJdTMyIHJldmlzaW9uOworCXUzMiB1bmNfZXJyX21hc2tfYW5kOworCXUzMiB1bmNfZXJyX21hc2tfb3I7CisJdTMyIHVuY19lcnJfc2V2ZXJfYW5kOworCXUzMiB1bmNfZXJyX3NldmVyX29yOworCXUzMiBjb3JfZXJyX21hc2tfYW5kOworCXUzMiBjb3JfZXJyX21hc2tfb3I7CisJdTMyIGFkdl9lcnJfY2FwX2FuZDsKKwl1MzIgYWR2X2Vycl9jYXBfb3I7CisJdTE2IHBjaV9leHBfZGV2Y3RsX2FuZDsKKwl1MTYgcGNpX2V4cF9kZXZjdGxfb3I7CisJdTE2IHBjaV9leHBfbG5rY3RsX2FuZDsKKwl1MTYgcGNpX2V4cF9sbmtjdGxfb3I7CisJdTMyIHNlY191bmNfZXJyX3NldmVyX2FuZDsKKwl1MzIgc2VjX3VuY19lcnJfc2V2ZXJfb3I7CisJdTMyIHNlY191bmNfZXJyX21hc2tfYW5kOworCXUzMiBzZWNfdW5jX2Vycl9tYXNrX29yOworfTsKKworc3RhdGljIHZvaWQgcHJvZ3JhbV9ocHhfdHlwZTIoc3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IGhweF90eXBlMiAqaHB4KQoreworCWludCBwb3M7CisJdTMyIHJlZzMyOworCisJaWYgKCFocHgpCisJCXJldHVybjsKKworCWlmICghcGNpX2lzX3BjaWUoZGV2KSkKKwkJcmV0dXJuOworCisJaWYgKGhweC0+cmV2aXNpb24gPiAxKSB7CisJCXBjaV93YXJuKGRldiwgIlBDSWUgc2V0dGluZ3MgcmV2ICVkIG5vdCBzdXBwb3J0ZWRcbiIsCisJCQkgaHB4LT5yZXZpc2lvbik7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIERvbid0IGFsbG93IF9IUFggdG8gY2hhbmdlIE1QUyBvciBNUlJTIHNldHRpbmdzLiAgV2UgbWFuYWdlCisJICogdGhvc2UgdG8gbWFrZSBzdXJlIHRoZXkncmUgY29uc2lzdGVudCB3aXRoIHRoZSByZXN0IG9mIHRoZQorCSAqIHBsYXRmb3JtLgorCSAqLworCWhweC0+cGNpX2V4cF9kZXZjdGxfYW5kIHw9IFBDSV9FWFBfREVWQ1RMX1BBWUxPQUQgfAorCQkJCSAgICBQQ0lfRVhQX0RFVkNUTF9SRUFEUlE7CisJaHB4LT5wY2lfZXhwX2RldmN0bF9vciAmPSB+KFBDSV9FWFBfREVWQ1RMX1BBWUxPQUQgfAorCQkJCSAgICBQQ0lfRVhQX0RFVkNUTF9SRUFEUlEpOworCisJLyogSW5pdGlhbGl6ZSBEZXZpY2UgQ29udHJvbCBSZWdpc3RlciAqLworCXBjaWVfY2FwYWJpbGl0eV9jbGVhcl9hbmRfc2V0X3dvcmQoZGV2LCBQQ0lfRVhQX0RFVkNUTCwKKwkJCX5ocHgtPnBjaV9leHBfZGV2Y3RsX2FuZCwgaHB4LT5wY2lfZXhwX2RldmN0bF9vcik7CisKKwkvKiBJbml0aWFsaXplIExpbmsgQ29udHJvbCBSZWdpc3RlciAqLworCWlmIChwY2llX2NhcF9oYXNfbG5rY3RsKGRldikpIHsKKworCQkvKgorCQkgKiBJZiB0aGUgUm9vdCBQb3J0IHN1cHBvcnRzIFJlYWQgQ29tcGxldGlvbiBCb3VuZGFyeSBvZgorCQkgKiAxMjgsIHNldCBSQ0IgdG8gMTI4LiAgT3RoZXJ3aXNlLCBjbGVhciBpdC4KKwkJICovCisJCWhweC0+cGNpX2V4cF9sbmtjdGxfYW5kIHw9IFBDSV9FWFBfTE5LQ1RMX1JDQjsKKwkJaHB4LT5wY2lfZXhwX2xua2N0bF9vciAmPSB+UENJX0VYUF9MTktDVExfUkNCOworCQlpZiAocGNpZV9yb290X3JjYl9zZXQoZGV2KSkKKwkJCWhweC0+cGNpX2V4cF9sbmtjdGxfb3IgfD0gUENJX0VYUF9MTktDVExfUkNCOworCisJCXBjaWVfY2FwYWJpbGl0eV9jbGVhcl9hbmRfc2V0X3dvcmQoZGV2LCBQQ0lfRVhQX0xOS0NUTCwKKwkJCX5ocHgtPnBjaV9leHBfbG5rY3RsX2FuZCwgaHB4LT5wY2lfZXhwX2xua2N0bF9vcik7CisJfQorCisJLyogRmluZCBBZHZhbmNlZCBFcnJvciBSZXBvcnRpbmcgRW5oYW5jZWQgQ2FwYWJpbGl0eSAqLworCXBvcyA9IHBjaV9maW5kX2V4dF9jYXBhYmlsaXR5KGRldiwgUENJX0VYVF9DQVBfSURfRVJSKTsKKwlpZiAoIXBvcykKKwkJcmV0dXJuOworCisJLyogSW5pdGlhbGl6ZSBVbmNvcnJlY3RhYmxlIEVycm9yIE1hc2sgUmVnaXN0ZXIgKi8KKwlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCBwb3MgKyBQQ0lfRVJSX1VOQ09SX01BU0ssICZyZWczMik7CisJcmVnMzIgPSAocmVnMzIgJiBocHgtPnVuY19lcnJfbWFza19hbmQpIHwgaHB4LT51bmNfZXJyX21hc2tfb3I7CisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIHBvcyArIFBDSV9FUlJfVU5DT1JfTUFTSywgcmVnMzIpOworCisJLyogSW5pdGlhbGl6ZSBVbmNvcnJlY3RhYmxlIEVycm9yIFNldmVyaXR5IFJlZ2lzdGVyICovCisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgcG9zICsgUENJX0VSUl9VTkNPUl9TRVZFUiwgJnJlZzMyKTsKKwlyZWczMiA9IChyZWczMiAmIGhweC0+dW5jX2Vycl9zZXZlcl9hbmQpIHwgaHB4LT51bmNfZXJyX3NldmVyX29yOworCXBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCBwb3MgKyBQQ0lfRVJSX1VOQ09SX1NFVkVSLCByZWczMik7CisKKwkvKiBJbml0aWFsaXplIENvcnJlY3RhYmxlIEVycm9yIE1hc2sgUmVnaXN0ZXIgKi8KKwlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCBwb3MgKyBQQ0lfRVJSX0NPUl9NQVNLLCAmcmVnMzIpOworCXJlZzMyID0gKHJlZzMyICYgaHB4LT5jb3JfZXJyX21hc2tfYW5kKSB8IGhweC0+Y29yX2Vycl9tYXNrX29yOworCXBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCBwb3MgKyBQQ0lfRVJSX0NPUl9NQVNLLCByZWczMik7CisKKwkvKiBJbml0aWFsaXplIEFkdmFuY2VkIEVycm9yIENhcGFiaWxpdGllcyBhbmQgQ29udHJvbCBSZWdpc3RlciAqLworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIHBvcyArIFBDSV9FUlJfQ0FQLCAmcmVnMzIpOworCXJlZzMyID0gKHJlZzMyICYgaHB4LT5hZHZfZXJyX2NhcF9hbmQpIHwgaHB4LT5hZHZfZXJyX2NhcF9vcjsKKworCS8qIERvbid0IGVuYWJsZSBFQ1JDIGdlbmVyYXRpb24gb3IgY2hlY2tpbmcgaWYgdW5zdXBwb3J0ZWQgKi8KKwlpZiAoIShyZWczMiAmIFBDSV9FUlJfQ0FQX0VDUkNfR0VOQykpCisJCXJlZzMyICY9IH5QQ0lfRVJSX0NBUF9FQ1JDX0dFTkU7CisJaWYgKCEocmVnMzIgJiBQQ0lfRVJSX0NBUF9FQ1JDX0NIS0MpKQorCQlyZWczMiAmPSB+UENJX0VSUl9DQVBfRUNSQ19DSEtFOworCXBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCBwb3MgKyBQQ0lfRVJSX0NBUCwgcmVnMzIpOworCisJLyoKKwkgKiBGSVhNRTogVGhlIGZvbGxvd2luZyB0d28gcmVnaXN0ZXJzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4KKwkgKgorCSAqICAgbyBTZWNvbmRhcnkgVW5jb3JyZWN0YWJsZSBFcnJvciBTZXZlcml0eSBSZWdpc3RlcgorCSAqICAgbyBTZWNvbmRhcnkgVW5jb3JyZWN0YWJsZSBFcnJvciBNYXNrIFJlZ2lzdGVyCisJICovCit9CisKIHN0YXRpYyBhY3BpX3N0YXR1cyBkZWNvZGVfdHlwZTJfaHB4X3JlY29yZCh1bmlvbiBhY3BpX29iamVjdCAqcmVjb3JkLAotCQkJCQkgICBzdHJ1Y3QgaHBwX3R5cGUyICpocHgyKQorCQkJCQkgICBzdHJ1Y3QgaHB4X3R5cGUyICpocHgyKQogewogCWludCBpOwogCXVuaW9uIGFjcGlfb2JqZWN0ICpmaWVsZHMgPSByZWNvcmQtPnBhY2thZ2UuZWxlbWVudHM7CkBAIC0yMTMsNiArNDA2LDE2NCBAQCBzdGF0aWMgYWNwaV9zdGF0dXMgZGVjb2RlX3R5cGUyX2hweF9yZWNvcmQodW5pb24gYWNwaV9vYmplY3QgKnJlY29yZCwKIAlyZXR1cm4gQUVfT0s7CiB9CiAKKy8qIF9IUFggUENJIEV4cHJlc3MgU2V0dGluZyBSZWNvcmQgKFR5cGUgMykgKi8KK3N0cnVjdCBocHhfdHlwZTMgeworCXUxNiBkZXZpY2VfdHlwZTsKKwl1MTYgZnVuY3Rpb25fdHlwZTsKKwl1MTYgY29uZmlnX3NwYWNlX2xvY2F0aW9uOworCXUxNiBwY2lfZXhwX2NhcF9pZDsKKwl1MTYgcGNpX2V4cF9jYXBfdmVyOworCXUxNiBwY2lfZXhwX3ZlbmRvcl9pZDsKKwl1MTYgZHZzZWNfaWQ7CisJdTE2IGR2c2VjX3JldjsKKwl1MTYgbWF0Y2hfb2Zmc2V0OworCXUzMiBtYXRjaF9tYXNrX2FuZDsKKwl1MzIgbWF0Y2hfdmFsdWU7CisJdTE2IHJlZ19vZmZzZXQ7CisJdTMyIHJlZ19tYXNrX2FuZDsKKwl1MzIgcmVnX21hc2tfb3I7Cit9OworCitlbnVtIGhweF90eXBlM19kZXZfdHlwZSB7CisJSFBYX1RZUEVfRU5EUE9JTlQJPSBCSVQoMCksCisJSFBYX1RZUEVfTEVHX0VORAk9IEJJVCgxKSwKKwlIUFhfVFlQRV9SQ19FTkQJCT0gQklUKDIpLAorCUhQWF9UWVBFX1JDX0VDCQk9IEJJVCgzKSwKKwlIUFhfVFlQRV9ST09UX1BPUlQJPSBCSVQoNCksCisJSFBYX1RZUEVfVVBTVFJFQU0JPSBCSVQoNSksCisJSFBYX1RZUEVfRE9XTlNUUkVBTQk9IEJJVCg2KSwKKwlIUFhfVFlQRV9QQ0lfQlJJREdFCT0gQklUKDcpLAorCUhQWF9UWVBFX1BDSUVfQlJJREdFCT0gQklUKDgpLAorfTsKKworc3RhdGljIHUxNiBocHgzX2RldmljZV90eXBlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJdTE2IHBjaWVfdHlwZSA9IHBjaV9wY2llX3R5cGUoZGV2KTsKKwljb25zdCBpbnQgcGNpZV90b19ocHgzX3R5cGVbXSA9IHsKKwkJW1BDSV9FWFBfVFlQRV9FTkRQT0lOVF0gICAgPSBIUFhfVFlQRV9FTkRQT0lOVCwKKwkJW1BDSV9FWFBfVFlQRV9MRUdfRU5EXSAgICAgPSBIUFhfVFlQRV9MRUdfRU5ELAorCQlbUENJX0VYUF9UWVBFX1JDX0VORF0gICAgICA9IEhQWF9UWVBFX1JDX0VORCwKKwkJW1BDSV9FWFBfVFlQRV9SQ19FQ10gICAgICAgPSBIUFhfVFlQRV9SQ19FQywKKwkJW1BDSV9FWFBfVFlQRV9ST09UX1BPUlRdICAgPSBIUFhfVFlQRV9ST09UX1BPUlQsCisJCVtQQ0lfRVhQX1RZUEVfVVBTVFJFQU1dICAgID0gSFBYX1RZUEVfVVBTVFJFQU0sCisJCVtQQ0lfRVhQX1RZUEVfRE9XTlNUUkVBTV0gID0gSFBYX1RZUEVfRE9XTlNUUkVBTSwKKwkJW1BDSV9FWFBfVFlQRV9QQ0lfQlJJREdFXSAgPSBIUFhfVFlQRV9QQ0lfQlJJREdFLAorCQlbUENJX0VYUF9UWVBFX1BDSUVfQlJJREdFXSA9IEhQWF9UWVBFX1BDSUVfQlJJREdFLAorCX07CisKKwlpZiAocGNpZV90eXBlID49IEFSUkFZX1NJWkUocGNpZV90b19ocHgzX3R5cGUpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBwY2llX3RvX2hweDNfdHlwZVtwY2llX3R5cGVdOworfQorCitlbnVtIGhweF90eXBlM19mbl90eXBlIHsKKwlIUFhfRk5fTk9STUFMCQk9IEJJVCgwKSwKKwlIUFhfRk5fU1JJT1ZfUEhZUwk9IEJJVCgxKSwKKwlIUFhfRk5fU1JJT1ZfVklSVAk9IEJJVCgyKSwKK307CisKK3N0YXRpYyB1OCBocHgzX2Z1bmN0aW9uX3R5cGUoc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwlpZiAoZGV2LT5pc192aXJ0Zm4pCisJCXJldHVybiBIUFhfRk5fU1JJT1ZfVklSVDsKKwllbHNlIGlmIChwY2lfZmluZF9leHRfY2FwYWJpbGl0eShkZXYsIFBDSV9FWFRfQ0FQX0lEX1NSSU9WKSA+IDApCisJCXJldHVybiBIUFhfRk5fU1JJT1ZfUEhZUzsKKwllbHNlCisJCXJldHVybiBIUFhfRk5fTk9STUFMOworfQorCitzdGF0aWMgYm9vbCBocHgzX2NhcF92ZXJfbWF0Y2hlcyh1OCBwY2llX2NhcF9pZCwgdTggaHB4M19jYXBfaWQpCit7CisJdTggY2FwX3ZlciA9IGhweDNfY2FwX2lkICYgMHhmOworCisJaWYgKChocHgzX2NhcF9pZCAmIEJJVCg0KSkgJiYgY2FwX3ZlciA+PSBwY2llX2NhcF9pZCkKKwkJcmV0dXJuIHRydWU7CisJZWxzZSBpZiAoY2FwX3ZlciA9PSBwY2llX2NhcF9pZCkKKwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK2VudW0gaHB4X3R5cGUzX2NmZ19sb2MgeworCUhQWF9DRkdfUENJQ0ZHCQk9IDAsCisJSFBYX0NGR19QQ0lFX0NBUAk9IDEsCisJSFBYX0NGR19QQ0lFX0NBUF9FWFQJPSAyLAorCUhQWF9DRkdfVkVORF9DQVAJPSAzLAorCUhQWF9DRkdfRFZTRUMJCT0gNCwKKwlIUFhfQ0ZHX01BWCwKK307CisKK3N0YXRpYyB2b2lkIHByb2dyYW1faHB4X3R5cGUzX3JlZ2lzdGVyKHN0cnVjdCBwY2lfZGV2ICpkZXYsCisJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBocHhfdHlwZTMgKnJlZykKK3sKKwl1MzIgbWF0Y2hfcmVnLCB3cml0ZV9yZWcsIGhlYWRlciwgb3JpZ192YWx1ZTsKKwl1MTYgcG9zOworCisJaWYgKCEoaHB4M19kZXZpY2VfdHlwZShkZXYpICYgcmVnLT5kZXZpY2VfdHlwZSkpCisJCXJldHVybjsKKworCWlmICghKGhweDNfZnVuY3Rpb25fdHlwZShkZXYpICYgcmVnLT5mdW5jdGlvbl90eXBlKSkKKwkJcmV0dXJuOworCisJc3dpdGNoIChyZWctPmNvbmZpZ19zcGFjZV9sb2NhdGlvbikgeworCWNhc2UgSFBYX0NGR19QQ0lDRkc6CisJCXBvcyA9IDA7CisJCWJyZWFrOworCWNhc2UgSFBYX0NGR19QQ0lFX0NBUDoKKwkJcG9zID0gcGNpX2ZpbmRfY2FwYWJpbGl0eShkZXYsIHJlZy0+cGNpX2V4cF9jYXBfaWQpOworCQlpZiAocG9zID09IDApCisJCQlyZXR1cm47CisKKwkJYnJlYWs7CisJY2FzZSBIUFhfQ0ZHX1BDSUVfQ0FQX0VYVDoKKwkJcG9zID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkoZGV2LCByZWctPnBjaV9leHBfY2FwX2lkKTsKKwkJaWYgKHBvcyA9PSAwKQorCQkJcmV0dXJuOworCisJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIHBvcywgJmhlYWRlcik7CisJCWlmICghaHB4M19jYXBfdmVyX21hdGNoZXMoUENJX0VYVF9DQVBfVkVSKGhlYWRlciksCisJCQkJCSAgcmVnLT5wY2lfZXhwX2NhcF92ZXIpKQorCQkJcmV0dXJuOworCisJCWJyZWFrOworCWNhc2UgSFBYX0NGR19WRU5EX0NBUDoJLyogRmFsbCB0aHJvdWdoICovCisJY2FzZSBIUFhfQ0ZHX0RWU0VDOgkvKiBGYWxsIHRocm91Z2ggKi8KKwlkZWZhdWx0OgorCQlwY2lfd2FybihkZXYsICJFbmNvdW50ZXJlZCBfSFBYIHR5cGUgMyB3aXRoIHVuc3VwcG9ydGVkIGNvbmZpZyBzcGFjZSBsb2NhdGlvbiIpOworCQlyZXR1cm47CisJfQorCisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgcG9zICsgcmVnLT5tYXRjaF9vZmZzZXQsICZtYXRjaF9yZWcpOworCisJaWYgKChtYXRjaF9yZWcgJiByZWctPm1hdGNoX21hc2tfYW5kKSAhPSByZWctPm1hdGNoX3ZhbHVlKQorCQlyZXR1cm47CisKKwlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCBwb3MgKyByZWctPnJlZ19vZmZzZXQsICZ3cml0ZV9yZWcpOworCW9yaWdfdmFsdWUgPSB3cml0ZV9yZWc7CisJd3JpdGVfcmVnICY9IHJlZy0+cmVnX21hc2tfYW5kOworCXdyaXRlX3JlZyB8PSByZWctPnJlZ19tYXNrX29yOworCisJaWYgKG9yaWdfdmFsdWUgPT0gd3JpdGVfcmVnKQorCQlyZXR1cm47CisKKwlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgcG9zICsgcmVnLT5yZWdfb2Zmc2V0LCB3cml0ZV9yZWcpOworCisJcGNpX2RiZyhkZXYsICJBcHBsaWVkIF9IUFgzIGF0IFsweCV4XTogMHglMDh4IC0+IDB4JTA4eCIsCisJCXBvcywgb3JpZ192YWx1ZSwgd3JpdGVfcmVnKTsKK30KKworc3RhdGljIHZvaWQgcHJvZ3JhbV9ocHhfdHlwZTMoc3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IGhweF90eXBlMyAqaHB4KQoreworCWlmICghaHB4KQorCQlyZXR1cm47CisKKwlpZiAoIXBjaV9pc19wY2llKGRldikpCisJCXJldHVybjsKKworCXByb2dyYW1faHB4X3R5cGUzX3JlZ2lzdGVyKGRldiwgaHB4KTsKK30KKwogc3RhdGljIHZvaWQgcGFyc2VfaHB4M19yZWdpc3RlcihzdHJ1Y3QgaHB4X3R5cGUzICpocHgzX3JlZywKIAkJCQl1bmlvbiBhY3BpX29iamVjdCAqcmVnX2ZpZWxkcykKIHsKQEAgLTIzMyw4ICs1ODQsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9ocHgzX3JlZ2lzdGVyKHN0cnVjdCBocHhfdHlwZTMgKmhweDNfcmVnLAogfQogCiBzdGF0aWMgYWNwaV9zdGF0dXMgcHJvZ3JhbV90eXBlM19ocHhfcmVjb3JkKHN0cnVjdCBwY2lfZGV2ICpkZXYsCi0JCQkJCSAgIHVuaW9uIGFjcGlfb2JqZWN0ICpyZWNvcmQsCi0JCQkJCSAgIGNvbnN0IHN0cnVjdCBob3RwbHVnX3Byb2dyYW1fb3BzICpocF9vcHMpCisJCQkJCSAgIHVuaW9uIGFjcGlfb2JqZWN0ICpyZWNvcmQpCiB7CiAJdW5pb24gYWNwaV9vYmplY3QgKmZpZWxkcyA9IHJlY29yZC0+cGFja2FnZS5lbGVtZW50czsKIAl1MzIgZGVzY19jb3VudCwgZXhwZWN0ZWRfbGVuZ3RoLCByZXZpc2lvbjsKQEAgLTI1OCw3ICs2MDgsNyBAQCBzdGF0aWMgYWNwaV9zdGF0dXMgcHJvZ3JhbV90eXBlM19ocHhfcmVjb3JkKHN0cnVjdCBwY2lfZGV2ICpkZXYsCiAJCWZvciAoaSA9IDA7IGkgPCBkZXNjX2NvdW50OyBpKyspIHsKIAkJCXJlZ19maWVsZHMgPSBmaWVsZHMgKyAzICsgaSAqIDE0OwogCQkJcGFyc2VfaHB4M19yZWdpc3RlcigmaHB4MywgcmVnX2ZpZWxkcyk7Ci0JCQlocF9vcHMtPnByb2dyYW1fdHlwZTMoZGV2LCAmaHB4Myk7CisJCQlwcm9ncmFtX2hweF90eXBlMyhkZXYsICZocHgzKTsKIAkJfQogCiAJCWJyZWFrOwpAQCAtMjcxLDE1ICs2MjEsMTQgQEAgc3RhdGljIGFjcGlfc3RhdHVzIHByb2dyYW1fdHlwZTNfaHB4X3JlY29yZChzdHJ1Y3QgcGNpX2RldiAqZGV2LAogCXJldHVybiBBRV9PSzsKIH0KIAotc3RhdGljIGFjcGlfc3RhdHVzIGFjcGlfcnVuX2hweChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBhY3BpX2hhbmRsZSBoYW5kbGUsCi0JCQkJY29uc3Qgc3RydWN0IGhvdHBsdWdfcHJvZ3JhbV9vcHMgKmhwX29wcykKK3N0YXRpYyBhY3BpX3N0YXR1cyBhY3BpX3J1bl9ocHgoc3RydWN0IHBjaV9kZXYgKmRldiwgYWNwaV9oYW5kbGUgaGFuZGxlKQogewogCWFjcGlfc3RhdHVzIHN0YXR1czsKIAlzdHJ1Y3QgYWNwaV9idWZmZXIgYnVmZmVyID0ge0FDUElfQUxMT0NBVEVfQlVGRkVSLCBOVUxMfTsKIAl1bmlvbiBhY3BpX29iamVjdCAqcGFja2FnZSwgKnJlY29yZCwgKmZpZWxkczsKLQlzdHJ1Y3QgaHBwX3R5cGUwIGhweDA7Ci0Jc3RydWN0IGhwcF90eXBlMSBocHgxOwotCXN0cnVjdCBocHBfdHlwZTIgaHB4MjsKKwlzdHJ1Y3QgaHB4X3R5cGUwIGhweDA7CisJc3RydWN0IGhweF90eXBlMSBocHgxOworCXN0cnVjdCBocHhfdHlwZTIgaHB4MjsKIAl1MzIgdHlwZTsKIAlpbnQgaTsKIApAQCAtMzE0LDI0ICs2NjMsMjQgQEAgc3RhdGljIGFjcGlfc3RhdHVzIGFjcGlfcnVuX2hweChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBhY3BpX2hhbmRsZSBoYW5kbGUsCiAJCQlzdGF0dXMgPSBkZWNvZGVfdHlwZTBfaHB4X3JlY29yZChyZWNvcmQsICZocHgwKTsKIAkJCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkKIAkJCQlnb3RvIGV4aXQ7Ci0JCQlocF9vcHMtPnByb2dyYW1fdHlwZTAoZGV2LCAmaHB4MCk7CisJCQlwcm9ncmFtX2hweF90eXBlMChkZXYsICZocHgwKTsKIAkJCWJyZWFrOwogCQljYXNlIDE6CiAJCQltZW1zZXQoJmhweDEsIDAsIHNpemVvZihocHgxKSk7CiAJCQlzdGF0dXMgPSBkZWNvZGVfdHlwZTFfaHB4X3JlY29yZChyZWNvcmQsICZocHgxKTsKIAkJCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkKIAkJCQlnb3RvIGV4aXQ7Ci0JCQlocF9vcHMtPnByb2dyYW1fdHlwZTEoZGV2LCAmaHB4MSk7CisJCQlwcm9ncmFtX2hweF90eXBlMShkZXYsICZocHgxKTsKIAkJCWJyZWFrOwogCQljYXNlIDI6CiAJCQltZW1zZXQoJmhweDIsIDAsIHNpemVvZihocHgyKSk7CiAJCQlzdGF0dXMgPSBkZWNvZGVfdHlwZTJfaHB4X3JlY29yZChyZWNvcmQsICZocHgyKTsKIAkJCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkKIAkJCQlnb3RvIGV4aXQ7Ci0JCQlocF9vcHMtPnByb2dyYW1fdHlwZTIoZGV2LCAmaHB4Mik7CisJCQlwcm9ncmFtX2hweF90eXBlMihkZXYsICZocHgyKTsKIAkJCWJyZWFrOwogCQljYXNlIDM6Ci0JCQlzdGF0dXMgPSBwcm9ncmFtX3R5cGUzX2hweF9yZWNvcmQoZGV2LCByZWNvcmQsIGhwX29wcyk7CisJCQlzdGF0dXMgPSBwcm9ncmFtX3R5cGUzX2hweF9yZWNvcmQoZGV2LCByZWNvcmQpOwogCQkJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKQogCQkJCWdvdG8gZXhpdDsKIAkJCWJyZWFrOwpAQCAtMzQ3LDE2ICs2OTYsMTUgQEAgc3RhdGljIGFjcGlfc3RhdHVzIGFjcGlfcnVuX2hweChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBhY3BpX2hhbmRsZSBoYW5kbGUsCiAJcmV0dXJuIHN0YXR1czsKIH0KIAotc3RhdGljIGFjcGlfc3RhdHVzIGFjcGlfcnVuX2hwcChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBhY3BpX2hhbmRsZSBoYW5kbGUsCi0JCQkJY29uc3Qgc3RydWN0IGhvdHBsdWdfcHJvZ3JhbV9vcHMgKmhwX29wcykKK3N0YXRpYyBhY3BpX3N0YXR1cyBhY3BpX3J1bl9ocHAoc3RydWN0IHBjaV9kZXYgKmRldiwgYWNwaV9oYW5kbGUgaGFuZGxlKQogewogCWFjcGlfc3RhdHVzIHN0YXR1czsKIAlzdHJ1Y3QgYWNwaV9idWZmZXIgYnVmZmVyID0geyBBQ1BJX0FMTE9DQVRFX0JVRkZFUiwgTlVMTCB9OwogCXVuaW9uIGFjcGlfb2JqZWN0ICpwYWNrYWdlLCAqZmllbGRzOwotCXN0cnVjdCBocHBfdHlwZTAgaHBwMDsKKwlzdHJ1Y3QgaHB4X3R5cGUwIGhweDA7CiAJaW50IGk7CiAKLQltZW1zZXQoJmhwcDAsIDAsIHNpemVvZihocHAwKSk7CisJbWVtc2V0KCZocHgwLCAwLCBzaXplb2YoaHB4MCkpOwogCiAJc3RhdHVzID0gYWNwaV9ldmFsdWF0ZV9vYmplY3QoaGFuZGxlLCAiX0hQUCIsIE5VTEwsICZidWZmZXIpOwogCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkKQEAgLTM3NywyNiArNzI1LDI0IEBAIHN0YXRpYyBhY3BpX3N0YXR1cyBhY3BpX3J1bl9ocHAoc3RydWN0IHBjaV9kZXYgKmRldiwgYWNwaV9oYW5kbGUgaGFuZGxlLAogCQl9CiAJfQogCi0JaHBwMC5yZXZpc2lvbiAgICAgICAgPSAxOwotCWhwcDAuY2FjaGVfbGluZV9zaXplID0gZmllbGRzWzBdLmludGVnZXIudmFsdWU7Ci0JaHBwMC5sYXRlbmN5X3RpbWVyICAgPSBmaWVsZHNbMV0uaW50ZWdlci52YWx1ZTsKLQlocHAwLmVuYWJsZV9zZXJyICAgICA9IGZpZWxkc1syXS5pbnRlZ2VyLnZhbHVlOwotCWhwcDAuZW5hYmxlX3BlcnIgICAgID0gZmllbGRzWzNdLmludGVnZXIudmFsdWU7CisJaHB4MC5yZXZpc2lvbiAgICAgICAgPSAxOworCWhweDAuY2FjaGVfbGluZV9zaXplID0gZmllbGRzWzBdLmludGVnZXIudmFsdWU7CisJaHB4MC5sYXRlbmN5X3RpbWVyICAgPSBmaWVsZHNbMV0uaW50ZWdlci52YWx1ZTsKKwlocHgwLmVuYWJsZV9zZXJyICAgICA9IGZpZWxkc1syXS5pbnRlZ2VyLnZhbHVlOworCWhweDAuZW5hYmxlX3BlcnIgICAgID0gZmllbGRzWzNdLmludGVnZXIudmFsdWU7CiAKLQlocF9vcHMtPnByb2dyYW1fdHlwZTAoZGV2LCAmaHBwMCk7CisJcHJvZ3JhbV9ocHhfdHlwZTAoZGV2LCAmaHB4MCk7CiAKIGV4aXQ6CiAJa2ZyZWUoYnVmZmVyLnBvaW50ZXIpOwogCXJldHVybiBzdGF0dXM7CiB9CiAKLS8qIHBjaV9nZXRfaHBfcGFyYW1zCisvKiBwY2lfYWNwaV9wcm9ncmFtX2hwX3BhcmFtcwogICoKICAqIEBkZXYgLSB0aGUgcGNpX2RldiBmb3Igd2hpY2ggd2Ugd2FudCBwYXJhbWV0ZXJzCi0gKiBAaHBwIC0gYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIKICAqLwotaW50IHBjaV9hY3BpX3Byb2dyYW1faHBfcGFyYW1zKHN0cnVjdCBwY2lfZGV2ICpkZXYsCi0JCQkgICAgICAgY29uc3Qgc3RydWN0IGhvdHBsdWdfcHJvZ3JhbV9vcHMgKmhwX29wcykKK2ludCBwY2lfYWNwaV9wcm9ncmFtX2hwX3BhcmFtcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogewogCWFjcGlfc3RhdHVzIHN0YXR1czsKIAlhY3BpX2hhbmRsZSBoYW5kbGUsIHBoYW5kbGU7CkBAIC00MTksMTAgKzc2NSwxMCBAQCBpbnQgcGNpX2FjcGlfcHJvZ3JhbV9ocF9wYXJhbXMoc3RydWN0IHBjaV9kZXYgKmRldiwKIAkgKiB0aGlzIHBjaSBkZXYuCiAJICovCiAJd2hpbGUgKGhhbmRsZSkgewotCQlzdGF0dXMgPSBhY3BpX3J1bl9ocHgoZGV2LCBoYW5kbGUsIGhwX29wcyk7CisJCXN0YXR1cyA9IGFjcGlfcnVuX2hweChkZXYsIGhhbmRsZSk7CiAJCWlmIChBQ1BJX1NVQ0NFU1Moc3RhdHVzKSkKIAkJCXJldHVybiAwOwotCQlzdGF0dXMgPSBhY3BpX3J1bl9ocHAoZGV2LCBoYW5kbGUsIGhwX29wcyk7CisJCXN0YXR1cyA9IGFjcGlfcnVuX2hwcChkZXYsIGhhbmRsZSk7CiAJCWlmIChBQ1BJX1NVQ0NFU1Moc3RhdHVzKSkKIAkJCXJldHVybiAwOwogCQlpZiAoYWNwaV9pc19yb290X2JyaWRnZShoYW5kbGUpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWJyaWRnZS1lbXVsLmMgYi9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuYwppbmRleCAwNjA4M2I4Li41ZmQ5MDEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuYworKysgYi9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuYwpAQCAtMzgsNyArMzgsNyBAQCBzdHJ1Y3QgcGNpX2JyaWRnZV9yZWdfYmVoYXZpb3IgewogCXUzMiByc3ZkOwogfTsKIAotY29uc3Qgc3RhdGljIHN0cnVjdCBwY2lfYnJpZGdlX3JlZ19iZWhhdmlvciBwY2lfcmVnc19iZWhhdmlvcltdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfYnJpZGdlX3JlZ19iZWhhdmlvciBwY2lfcmVnc19iZWhhdmlvcltdID0gewogCVtQQ0lfVkVORE9SX0lEIC8gNF0gPSB7IC5ybyA9IH4wIH0sCiAJW1BDSV9DT01NQU5EIC8gNF0gPSB7CiAJCS5ydyA9IChQQ0lfQ09NTUFORF9JTyB8IFBDSV9DT01NQU5EX01FTU9SWSB8CkBAIC0xNzMsNyArMTczLDcgQEAgY29uc3Qgc3RhdGljIHN0cnVjdCBwY2lfYnJpZGdlX3JlZ19iZWhhdmlvciBwY2lfcmVnc19iZWhhdmlvcltdID0gewogCX0sCiB9OwogCi1jb25zdCBzdGF0aWMgc3RydWN0IHBjaV9icmlkZ2VfcmVnX2JlaGF2aW9yIHBjaWVfY2FwX3JlZ3NfYmVoYXZpb3JbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2JyaWRnZV9yZWdfYmVoYXZpb3IgcGNpZV9jYXBfcmVnc19iZWhhdmlvcltdID0gewogCVtQQ0lfQ0FQX0xJU1RfSUQgLyA0XSA9IHsKIAkJLyoKIAkJICogQ2FwYWJpbGl0eSBJRCwgTmV4dCBDYXBhYmlsaXR5IFBvaW50ZXIgYW5kCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2ktc3lzZnMuYyBiL2RyaXZlcnMvcGNpL3BjaS1zeXNmcy5jCmluZGV4IDk2NWM3MjEuLjc5MzQxMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3BjaS1zeXNmcy5jCisrKyBiL2RyaXZlcnMvcGNpL3BjaS1zeXNmcy5jCkBAIC00NjQsOSArNDY0LDcgQEAgc3RhdGljIHNzaXplX3QgZGV2X3Jlc2Nhbl9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJfQogCXJldHVybiBjb3VudDsKIH0KLXN0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfcmVzY2FuX2F0dHIgPSBfX0FUVFIocmVzY2FuLAotCQkJCQkJCShTX0lXVVNSfFNfSVdHUlApLAotCQkJCQkJCU5VTEwsIGRldl9yZXNjYW5fc3RvcmUpOworc3RhdGljIERFVklDRV9BVFRSX1dPKGRldl9yZXNjYW4pOwogCiBzdGF0aWMgc3NpemVfdCByZW1vdmVfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJCSAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKQEAgLTQ4MCwxMyArNDc4LDEyIEBAIHN0YXRpYyBzc2l6ZV90IHJlbW92ZV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQlwY2lfc3RvcF9hbmRfcmVtb3ZlX2J1c19kZXZpY2VfbG9ja2VkKHRvX3BjaV9kZXYoZGV2KSk7CiAJcmV0dXJuIGNvdW50OwogfQotc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9yZW1vdmVfYXR0ciA9IF9fQVRUUl9JR05PUkVfTE9DS0RFUChyZW1vdmUsCi0JCQkJCQkJKFNfSVdVU1J8U19JV0dSUCksCi0JCQkJCQkJTlVMTCwgcmVtb3ZlX3N0b3JlKTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9JR05PUkVfTE9DS0RFUChyZW1vdmUsIDAyMjAsIE5VTEwsCisJCQkJICByZW1vdmVfc3RvcmUpOwogCi1zdGF0aWMgc3NpemVfdCBkZXZfYnVzX3Jlc2Nhbl9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCQkJICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAotCQkJCSAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKK3N0YXRpYyBzc2l6ZV90IGJ1c19yZXNjYW5fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQogewogCXVuc2lnbmVkIGxvbmcgdmFsOwogCXN0cnVjdCBwY2lfYnVzICpidXMgPSB0b19wY2lfYnVzKGRldik7CkBAIC01MDQsNyArNTAxLDcgQEAgc3RhdGljIHNzaXplX3QgZGV2X2J1c19yZXNjYW5fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCX0KIAlyZXR1cm4gY291bnQ7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIocmVzY2FuLCAoU19JV1VTUnxTX0lXR1JQKSwgTlVMTCwgZGV2X2J1c19yZXNjYW5fc3RvcmUpOworc3RhdGljIERFVklDRV9BVFRSX1dPKGJ1c19yZXNjYW4pOwogCiAjaWYgZGVmaW5lZChDT05GSUdfUE0pICYmIGRlZmluZWQoQ09ORklHX0FDUEkpCiBzdGF0aWMgc3NpemVfdCBkM2NvbGRfYWxsb3dlZF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCkBAIC01NTEsMTU0ICs1NDgsNiBAQCBzdGF0aWMgc3NpemVfdCBkZXZzcGVjX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAogc3RhdGljIERFVklDRV9BVFRSX1JPKGRldnNwZWMpOwogI2VuZGlmCiAKLSNpZmRlZiBDT05GSUdfUENJX0lPVgotc3RhdGljIHNzaXplX3Qgc3Jpb3ZfdG90YWx2ZnNfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCQkJICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCi0JCQkJICAgY2hhciAqYnVmKQotewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwotCi0JcmV0dXJuIHNwcmludGYoYnVmLCAiJXVcbiIsIHBjaV9zcmlvdl9nZXRfdG90YWx2ZnMocGRldikpOwotfQotCi0KLXN0YXRpYyBzc2l6ZV90IHNyaW92X251bXZmc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQkgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCi0JCQkJIGNoYXIgKmJ1ZikKLXsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKLQotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiV1XG4iLCBwZGV2LT5zcmlvdi0+bnVtX1ZGcyk7Ci19Ci0KLS8qCi0gKiBudW1fdmZzID4gMDsgbnVtYmVyIG9mIFZGcyB0byBlbmFibGUKLSAqIG51bV92ZnMgPSAwOyBkaXNhYmxlIGFsbCBWRnMKLSAqCi0gKiBOb3RlOiBTUklPViBzcGVjIGRvZXNuJ3QgYWxsb3cgcGFydGlhbCBWRgotICogICAgICAgZGlzYWJsZSwgc28gaXQncyBhbGwgb3Igbm9uZS4KLSAqLwotc3RhdGljIHNzaXplX3Qgc3Jpb3ZfbnVtdmZzX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQkgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAotCQkJCSAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCi17Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0JaW50IHJldDsKLQl1MTYgbnVtX3ZmczsKLQotCXJldCA9IGtzdHJ0b3UxNihidWYsIDAsICZudW1fdmZzKTsKLQlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKLQotCWlmIChudW1fdmZzID4gcGNpX3NyaW92X2dldF90b3RhbHZmcyhwZGV2KSkKLQkJcmV0dXJuIC1FUkFOR0U7Ci0KLQlkZXZpY2VfbG9jaygmcGRldi0+ZGV2KTsKLQotCWlmIChudW1fdmZzID09IHBkZXYtPnNyaW92LT5udW1fVkZzKQotCQlnb3RvIGV4aXQ7Ci0KLQkvKiBpcyBQRiBkcml2ZXIgbG9hZGVkIHcvY2FsbGJhY2sgKi8KLQlpZiAoIXBkZXYtPmRyaXZlciB8fCAhcGRldi0+ZHJpdmVyLT5zcmlvdl9jb25maWd1cmUpIHsKLQkJcGNpX2luZm8ocGRldiwgIkRyaXZlciBkb2Vzbid0IHN1cHBvcnQgU1JJT1YgY29uZmlndXJhdGlvbiB2aWEgc3lzZnNcbiIpOwotCQlyZXQgPSAtRU5PRU5UOwotCQlnb3RvIGV4aXQ7Ci0JfQotCi0JaWYgKG51bV92ZnMgPT0gMCkgewotCQkvKiBkaXNhYmxlIFZGcyAqLwotCQlyZXQgPSBwZGV2LT5kcml2ZXItPnNyaW92X2NvbmZpZ3VyZShwZGV2LCAwKTsKLQkJZ290byBleGl0OwotCX0KLQotCS8qIGVuYWJsZSBWRnMgKi8KLQlpZiAocGRldi0+c3Jpb3YtPm51bV9WRnMpIHsKLQkJcGNpX3dhcm4ocGRldiwgIiVkIFZGcyBhbHJlYWR5IGVuYWJsZWQuIERpc2FibGUgYmVmb3JlIGVuYWJsaW5nICVkIFZGc1xuIiwKLQkJCSBwZGV2LT5zcmlvdi0+bnVtX1ZGcywgbnVtX3Zmcyk7Ci0JCXJldCA9IC1FQlVTWTsKLQkJZ290byBleGl0OwotCX0KLQotCXJldCA9IHBkZXYtPmRyaXZlci0+c3Jpb3ZfY29uZmlndXJlKHBkZXYsIG51bV92ZnMpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIGV4aXQ7Ci0KLQlpZiAocmV0ICE9IG51bV92ZnMpCi0JCXBjaV93YXJuKHBkZXYsICIlZCBWRnMgcmVxdWVzdGVkOyBvbmx5ICVkIGVuYWJsZWRcbiIsCi0JCQkgbnVtX3ZmcywgcmV0KTsKLQotZXhpdDoKLQlkZXZpY2VfdW5sb2NrKCZwZGV2LT5kZXYpOwotCi0JaWYgKHJldCA8IDApCi0JCXJldHVybiByZXQ7Ci0KLQlyZXR1cm4gY291bnQ7Ci19Ci0KLXN0YXRpYyBzc2l6ZV90IHNyaW92X29mZnNldF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQkgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCi0JCQkJIGNoYXIgKmJ1ZikKLXsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKLQotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiV1XG4iLCBwZGV2LT5zcmlvdi0+b2Zmc2V0KTsKLX0KLQotc3RhdGljIHNzaXplX3Qgc3Jpb3Zfc3RyaWRlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAotCQkJCSBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKLQkJCQkgY2hhciAqYnVmKQotewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwotCi0JcmV0dXJuIHNwcmludGYoYnVmLCAiJXVcbiIsIHBkZXYtPnNyaW92LT5zdHJpZGUpOwotfQotCi1zdGF0aWMgc3NpemVfdCBzcmlvdl92Zl9kZXZpY2Vfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCQkJICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAotCQkJCSAgICBjaGFyICpidWYpCi17Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0KLQlyZXR1cm4gc3ByaW50ZihidWYsICIleFxuIiwgcGRldi0+c3Jpb3YtPnZmX2RldmljZSk7Ci19Ci0KLXN0YXRpYyBzc2l6ZV90IHNyaW92X2RyaXZlcnNfYXV0b3Byb2JlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAotCQkJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCi0JCQkJCSAgICBjaGFyICpidWYpCi17Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7Ci0KLQlyZXR1cm4gc3ByaW50ZihidWYsICIldVxuIiwgcGRldi0+c3Jpb3YtPmRyaXZlcnNfYXV0b3Byb2JlKTsKLX0KLQotc3RhdGljIHNzaXplX3Qgc3Jpb3ZfZHJpdmVyc19hdXRvcHJvYmVfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAotCQkJCQkgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAotCQkJCQkgICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQotewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwotCWJvb2wgZHJpdmVyc19hdXRvcHJvYmU7Ci0KLQlpZiAoa3N0cnRvYm9vbChidWYsICZkcml2ZXJzX2F1dG9wcm9iZSkgPCAwKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXBkZXYtPnNyaW92LT5kcml2ZXJzX2F1dG9wcm9iZSA9IGRyaXZlcnNfYXV0b3Byb2JlOwotCi0JcmV0dXJuIGNvdW50OwotfQotCi1zdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgc3Jpb3ZfdG90YWx2ZnNfYXR0ciA9IF9fQVRUUl9STyhzcmlvdl90b3RhbHZmcyk7Ci1zdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgc3Jpb3ZfbnVtdmZzX2F0dHIgPQotCQlfX0FUVFIoc3Jpb3ZfbnVtdmZzLCAoU19JUlVHT3xTX0lXVVNSfFNfSVdHUlApLAotCQkgICAgICAgc3Jpb3ZfbnVtdmZzX3Nob3csIHNyaW92X251bXZmc19zdG9yZSk7Ci1zdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgc3Jpb3Zfb2Zmc2V0X2F0dHIgPSBfX0FUVFJfUk8oc3Jpb3Zfb2Zmc2V0KTsKLXN0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBzcmlvdl9zdHJpZGVfYXR0ciA9IF9fQVRUUl9STyhzcmlvdl9zdHJpZGUpOwotc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIHNyaW92X3ZmX2RldmljZV9hdHRyID0gX19BVFRSX1JPKHNyaW92X3ZmX2RldmljZSk7Ci1zdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgc3Jpb3ZfZHJpdmVyc19hdXRvcHJvYmVfYXR0ciA9Ci0JCV9fQVRUUihzcmlvdl9kcml2ZXJzX2F1dG9wcm9iZSwgKFNfSVJVR098U19JV1VTUnxTX0lXR1JQKSwKLQkJICAgICAgIHNyaW92X2RyaXZlcnNfYXV0b3Byb2JlX3Nob3csIHNyaW92X2RyaXZlcnNfYXV0b3Byb2JlX3N0b3JlKTsKLSNlbmRpZiAvKiBDT05GSUdfUENJX0lPViAqLwotCiBzdGF0aWMgc3NpemVfdCBkcml2ZXJfb3ZlcnJpZGVfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCQkJCSAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkJICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKQEAgLTc5Miw3ICs2NDEsNyBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcGNpZV9kZXZfYXR0cnNbXSA9IHsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpwY2lidXNfYXR0cnNbXSA9IHsKLQkmZGV2X2F0dHJfcmVzY2FuLmF0dHIsCisJJmRldl9hdHRyX2J1c19yZXNjYW4uYXR0ciwKIAkmZGV2X2F0dHJfY3B1YWZmaW5pdHkuYXR0ciwKIAkmZGV2X2F0dHJfY3B1bGlzdGFmZmluaXR5LmF0dHIsCiAJTlVMTCwKQEAgLTgyMCw3ICs2NjksNyBAQCBzdGF0aWMgc3NpemVfdCBib290X3ZnYV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCSEhKHBkZXYtPnJlc291cmNlW1BDSV9ST01fUkVTT1VSQ0VdLmZsYWdzICYKIAkJICAgSU9SRVNPVVJDRV9ST01fU0hBRE9XKSk7CiB9Ci1zdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgdmdhX2F0dHIgPSBfX0FUVFJfUk8oYm9vdF92Z2EpOworc3RhdGljIERFVklDRV9BVFRSX1JPKGJvb3RfdmdhKTsKIAogc3RhdGljIHNzaXplX3QgcGNpX3JlYWRfY29uZmlnKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJCSAgICAgICBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYmluX2F0dHIsIGNoYXIgKmJ1ZiwKQEAgLTkwNiw2ICs3NTUsMTEgQEAgc3RhdGljIHNzaXplX3QgcGNpX3dyaXRlX2NvbmZpZyhzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJdW5zaWduZWQgaW50IHNpemUgPSBjb3VudDsKIAlsb2ZmX3QgaW5pdF9vZmYgPSBvZmY7CiAJdTggKmRhdGEgPSAodTggKikgYnVmOworCWludCByZXQ7CisKKwlyZXQgPSBzZWN1cml0eV9sb2NrZWRfZG93bihMT0NLRE9XTl9QQ0lfQUNDRVNTKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJaWYgKG9mZiA+IGRldi0+Y2ZnX3NpemUpCiAJCXJldHVybiAwOwpAQCAtMTA4NSw3ICs5MzksNyBAQCB2b2lkIHBjaV9jcmVhdGVfbGVnYWN5X2ZpbGVzKHN0cnVjdCBwY2lfYnVzICpiKQogCXN5c2ZzX2Jpbl9hdHRyX2luaXQoYi0+bGVnYWN5X2lvKTsKIAliLT5sZWdhY3lfaW8tPmF0dHIubmFtZSA9ICJsZWdhY3lfaW8iOwogCWItPmxlZ2FjeV9pby0+c2l6ZSA9IDB4ZmZmZjsKLQliLT5sZWdhY3lfaW8tPmF0dHIubW9kZSA9IFNfSVJVU1IgfCBTX0lXVVNSOworCWItPmxlZ2FjeV9pby0+YXR0ci5tb2RlID0gMDYwMDsKIAliLT5sZWdhY3lfaW8tPnJlYWQgPSBwY2lfcmVhZF9sZWdhY3lfaW87CiAJYi0+bGVnYWN5X2lvLT53cml0ZSA9IHBjaV93cml0ZV9sZWdhY3lfaW87CiAJYi0+bGVnYWN5X2lvLT5tbWFwID0gcGNpX21tYXBfbGVnYWN5X2lvOwpAQCAtMTA5OSw3ICs5NTMsNyBAQCB2b2lkIHBjaV9jcmVhdGVfbGVnYWN5X2ZpbGVzKHN0cnVjdCBwY2lfYnVzICpiKQogCXN5c2ZzX2Jpbl9hdHRyX2luaXQoYi0+bGVnYWN5X21lbSk7CiAJYi0+bGVnYWN5X21lbS0+YXR0ci5uYW1lID0gImxlZ2FjeV9tZW0iOwogCWItPmxlZ2FjeV9tZW0tPnNpemUgPSAxMDI0KjEwMjQ7Ci0JYi0+bGVnYWN5X21lbS0+YXR0ci5tb2RlID0gU19JUlVTUiB8IFNfSVdVU1I7CisJYi0+bGVnYWN5X21lbS0+YXR0ci5tb2RlID0gMDYwMDsKIAliLT5sZWdhY3lfbWVtLT5tbWFwID0gcGNpX21tYXBfbGVnYWN5X21lbTsKIAlwY2lfYWRqdXN0X2xlZ2FjeV9hdHRyKGIsIHBjaV9tbWFwX21lbSk7CiAJZXJyb3IgPSBkZXZpY2VfY3JlYXRlX2Jpbl9maWxlKCZiLT5kZXYsIGItPmxlZ2FjeV9tZW0pOwpAQCAtMTE2Nyw2ICsxMDIxLDExIEBAIHN0YXRpYyBpbnQgcGNpX21tYXBfcmVzb3VyY2Uoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLAogCWludCBiYXIgPSAodW5zaWduZWQgbG9uZylhdHRyLT5wcml2YXRlOwogCWVudW0gcGNpX21tYXBfc3RhdGUgbW1hcF90eXBlOwogCXN0cnVjdCByZXNvdXJjZSAqcmVzID0gJnBkZXYtPnJlc291cmNlW2Jhcl07CisJaW50IHJldDsKKworCXJldCA9IHNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX1BDSV9BQ0NFU1MpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAlpZiAocmVzLT5mbGFncyAmIElPUkVTT1VSQ0VfTUVNICYmIGlvbWVtX2lzX2V4Y2x1c2l2ZShyZXMtPnN0YXJ0KSkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xMjQzLDYgKzExMDIsMTIgQEAgc3RhdGljIHNzaXplX3QgcGNpX3dyaXRlX3Jlc291cmNlX2lvKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJCQkgICAgIHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYsCiAJCQkJICAgICBsb2ZmX3Qgb2ZmLCBzaXplX3QgY291bnQpCiB7CisJaW50IHJldDsKKworCXJldCA9IHNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX1BDSV9BQ0NFU1MpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAlyZXR1cm4gcGNpX3Jlc291cmNlX2lvKGZpbHAsIGtvYmosIGF0dHIsIGJ1Ziwgb2ZmLCBjb3VudCwgdHJ1ZSk7CiB9CiAKQEAgLTEzMDYsNyArMTE3MSw3IEBAIHN0YXRpYyBpbnQgcGNpX2NyZWF0ZV9hdHRyKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbnVtLCBpbnQgd3JpdGVfY29tYmluZSkKIAkJfQogCX0KIAlyZXNfYXR0ci0+YXR0ci5uYW1lID0gcmVzX2F0dHJfbmFtZTsKLQlyZXNfYXR0ci0+YXR0ci5tb2RlID0gU19JUlVTUiB8IFNfSVdVU1I7CisJcmVzX2F0dHItPmF0dHIubW9kZSA9IDA2MDA7CiAJcmVzX2F0dHItPnNpemUgPSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIG51bSk7CiAJcmVzX2F0dHItPnByaXZhdGUgPSAodm9pZCAqKSh1bnNpZ25lZCBsb25nKW51bTsKIAlyZXR2YWwgPSBzeXNmc19jcmVhdGVfYmluX2ZpbGUoJnBkZXYtPmRldi5rb2JqLCByZXNfYXR0cik7CkBAIC0xNDE5LDcgKzEyODQsNyBAQCBzdGF0aWMgc3NpemVfdCBwY2lfcmVhZF9yb20oc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2JqZWN0ICprb2JqLAogc3RhdGljIGNvbnN0IHN0cnVjdCBiaW5fYXR0cmlidXRlIHBjaV9jb25maWdfYXR0ciA9IHsKIAkuYXR0ciA9CXsKIAkJLm5hbWUgPSAiY29uZmlnIiwKLQkJLm1vZGUgPSBTX0lSVUdPIHwgU19JV1VTUiwKKwkJLm1vZGUgPSAwNjQ0LAogCX0sCiAJLnNpemUgPSBQQ0lfQ0ZHX1NQQUNFX1NJWkUsCiAJLnJlYWQgPSBwY2lfcmVhZF9jb25maWcsCkBAIC0xNDI5LDcgKzEyOTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJpbl9hdHRyaWJ1dGUgcGNpX2NvbmZpZ19hdHRyID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBiaW5fYXR0cmlidXRlIHBjaWVfY29uZmlnX2F0dHIgPSB7CiAJLmF0dHIgPQl7CiAJCS5uYW1lID0gImNvbmZpZyIsCi0JCS5tb2RlID0gU19JUlVHTyB8IFNfSVdVU1IsCisJCS5tb2RlID0gMDY0NCwKIAl9LAogCS5zaXplID0gUENJX0NGR19TUEFDRV9FWFBfU0laRSwKIAkucmVhZCA9IHBjaV9yZWFkX2NvbmZpZywKQEAgLTE0NTgsNyArMTMyMyw3IEBAIHN0YXRpYyBzc2l6ZV90IHJlc2V0X3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJcmV0dXJuIGNvdW50OwogfQogCi1zdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgcmVzZXRfYXR0ciA9IF9fQVRUUihyZXNldCwgMDIwMCwgTlVMTCwgcmVzZXRfc3RvcmUpOworc3RhdGljIERFVklDRV9BVFRSKHJlc2V0LCAwMjAwLCBOVUxMLCByZXNldF9zdG9yZSk7CiAKIHN0YXRpYyBpbnQgcGNpX2NyZWF0ZV9jYXBhYmlsaXRpZXNfc3lzZnMoc3RydWN0IHBjaV9kZXYgKmRldikKIHsKQEAgLTE0NjgsNyArMTMzMyw3IEBAIHN0YXRpYyBpbnQgcGNpX2NyZWF0ZV9jYXBhYmlsaXRpZXNfc3lzZnMoc3RydWN0IHBjaV9kZXYgKmRldikKIAlwY2llX2FzcG1fY3JlYXRlX3N5c2ZzX2Rldl9maWxlcyhkZXYpOwogCiAJaWYgKGRldi0+cmVzZXRfZm4pIHsKLQkJcmV0dmFsID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZkZXYtPmRldiwgJnJlc2V0X2F0dHIpOworCQlyZXR2YWwgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoJmRldi0+ZGV2LCAmZGV2X2F0dHJfcmVzZXQpOwogCQlpZiAocmV0dmFsKQogCQkJZ290byBlcnJvcjsKIAl9CkBAIC0xNTExLDcgKzEzNzYsNyBAQCBpbnQgX19tdXN0X2NoZWNrIHBjaV9jcmVhdGVfc3lzZnNfZGV2X2ZpbGVzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCQlzeXNmc19iaW5fYXR0cl9pbml0KGF0dHIpOwogCQlhdHRyLT5zaXplID0gcm9tX3NpemU7CiAJCWF0dHItPmF0dHIubmFtZSA9ICJyb20iOwotCQlhdHRyLT5hdHRyLm1vZGUgPSBTX0lSVVNSIHwgU19JV1VTUjsKKwkJYXR0ci0+YXR0ci5tb2RlID0gMDYwMDsKIAkJYXR0ci0+cmVhZCA9IHBjaV9yZWFkX3JvbTsKIAkJYXR0ci0+d3JpdGUgPSBwY2lfd3JpdGVfcm9tOwogCQlyZXR2YWwgPSBzeXNmc19jcmVhdGVfYmluX2ZpbGUoJnBkZXYtPmRldi5rb2JqLCBhdHRyKTsKQEAgLTE1NTMsNyArMTQxOCw3IEBAIHN0YXRpYyB2b2lkIHBjaV9yZW1vdmVfY2FwYWJpbGl0aWVzX3N5c2ZzKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAJcGNpZV92cGRfcmVtb3ZlX3N5c2ZzX2Rldl9maWxlcyhkZXYpOwogCXBjaWVfYXNwbV9yZW1vdmVfc3lzZnNfZGV2X2ZpbGVzKGRldik7CiAJaWYgKGRldi0+cmVzZXRfZm4pIHsKLQkJZGV2aWNlX3JlbW92ZV9maWxlKCZkZXYtPmRldiwgJnJlc2V0X2F0dHIpOworCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoJmRldi0+ZGV2LCAmZGV2X2F0dHJfcmVzZXQpOwogCQlkZXYtPnJlc2V0X2ZuID0gMDsKIAl9CiB9CkBAIC0xNjA2LDcgKzE0NzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwY2lfc3lzZnNfaW5pdCh2b2lkKQogbGF0ZV9pbml0Y2FsbChwY2lfc3lzZnNfaW5pdCk7CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpwY2lfZGV2X2Rldl9hdHRyc1tdID0gewotCSZ2Z2FfYXR0ci5hdHRyLAorCSZkZXZfYXR0cl9ib290X3ZnYS5hdHRyLAogCU5VTEwsCiB9OwogCkBAIC0xNjE2LDcgKzE0ODEsNyBAQCBzdGF0aWMgdW1vZGVfdCBwY2lfZGV2X2F0dHJzX2FyZV92aXNpYmxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGtvYmpfdG9fZGV2KGtvYmopOwogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwogCi0JaWYgKGEgPT0gJnZnYV9hdHRyLmF0dHIpCisJaWYgKGEgPT0gJmRldl9hdHRyX2Jvb3RfdmdhLmF0dHIpCiAJCWlmICgocGRldi0+Y2xhc3MgPj4gOCkgIT0gUENJX0NMQVNTX0RJU1BMQVlfVkdBKQogCQkJcmV0dXJuIDA7CiAKQEAgLTE2MjQsOCArMTQ4OSw4IEBAIHN0YXRpYyB1bW9kZV90IHBjaV9kZXZfYXR0cnNfYXJlX3Zpc2libGUoc3RydWN0IGtvYmplY3QgKmtvYmosCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpwY2lfZGV2X2hwX2F0dHJzW10gPSB7Ci0JJmRldl9yZW1vdmVfYXR0ci5hdHRyLAotCSZkZXZfcmVzY2FuX2F0dHIuYXR0ciwKKwkmZGV2X2F0dHJfcmVtb3ZlLmF0dHIsCisJJmRldl9hdHRyX2Rldl9yZXNjYW4uYXR0ciwKIAlOVUxMLAogfTsKIApAQCAtMTY5NywzNCArMTU2Miw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHBjaV9kZXZfaHBfYXR0cl9ncm91cCA9IHsKIAkuaXNfdmlzaWJsZSA9IHBjaV9kZXZfaHBfYXR0cnNfYXJlX3Zpc2libGUsCiB9OwogCi0jaWZkZWYgQ09ORklHX1BDSV9JT1YKLXN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpzcmlvdl9kZXZfYXR0cnNbXSA9IHsKLQkmc3Jpb3ZfdG90YWx2ZnNfYXR0ci5hdHRyLAotCSZzcmlvdl9udW12ZnNfYXR0ci5hdHRyLAotCSZzcmlvdl9vZmZzZXRfYXR0ci5hdHRyLAotCSZzcmlvdl9zdHJpZGVfYXR0ci5hdHRyLAotCSZzcmlvdl92Zl9kZXZpY2VfYXR0ci5hdHRyLAotCSZzcmlvdl9kcml2ZXJzX2F1dG9wcm9iZV9hdHRyLmF0dHIsCi0JTlVMTCwKLX07Ci0KLXN0YXRpYyB1bW9kZV90IHNyaW92X2F0dHJzX2FyZV92aXNpYmxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAotCQkJCSAgICAgICBzdHJ1Y3QgYXR0cmlidXRlICphLCBpbnQgbikKLXsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBrb2JqX3RvX2Rldihrb2JqKTsKLQotCWlmICghZGV2X2lzX3BmKGRldikpCi0JCXJldHVybiAwOwotCi0JcmV0dXJuIGEtPm1vZGU7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHNyaW92X2Rldl9hdHRyX2dyb3VwID0gewotCS5hdHRycyA9IHNyaW92X2Rldl9hdHRycywKLQkuaXNfdmlzaWJsZSA9IHNyaW92X2F0dHJzX2FyZV92aXNpYmxlLAotfTsKLSNlbmRpZiAvKiBDT05GSUdfUENJX0lPViAqLwotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBwY2lfZGV2X2F0dHJfZ3JvdXAgPSB7CiAJLmF0dHJzID0gcGNpX2Rldl9kZXZfYXR0cnMsCiAJLmlzX3Zpc2libGUgPSBwY2lfZGV2X2F0dHJzX2FyZV92aXNpYmxlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLmMgYi9kcml2ZXJzL3BjaS9wY2kuYwppbmRleCAxYjI3YjVhLi5lNzk4MmFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2kuYworKysgYi9kcml2ZXJzL3BjaS9wY2kuYwpAQCAtODkwLDggKzg5MCw4IEBAIHN0YXRpYyBpbnQgcGNpX3Jhd19zZXRfcG93ZXJfc3RhdGUoc3RydWN0IHBjaV9kZXYgKmRldiwgcGNpX3Bvd2VyX3Qgc3RhdGUpCiAKIAlwY2lfcmVhZF9jb25maWdfd29yZChkZXYsIGRldi0+cG1fY2FwICsgUENJX1BNX0NUUkwsICZwbWNzcik7CiAJZGV2LT5jdXJyZW50X3N0YXRlID0gKHBtY3NyICYgUENJX1BNX0NUUkxfU1RBVEVfTUFTSyk7Ci0JaWYgKGRldi0+Y3VycmVudF9zdGF0ZSAhPSBzdGF0ZSAmJiBwcmludGtfcmF0ZWxpbWl0KCkpCi0JCXBjaV9pbmZvKGRldiwgIlJlZnVzZWQgdG8gY2hhbmdlIHBvd2VyIHN0YXRlLCBjdXJyZW50bHkgaW4gRCVkXG4iLAorCWlmIChkZXYtPmN1cnJlbnRfc3RhdGUgIT0gc3RhdGUpCisJCXBjaV9pbmZvX3JhdGVsaW1pdGVkKGRldiwgIlJlZnVzZWQgdG8gY2hhbmdlIHBvd2VyIHN0YXRlLCBjdXJyZW50bHkgaW4gRCVkXG4iLAogCQkJIGRldi0+Y3VycmVudF9zdGF0ZSk7CiAKIAkvKgpAQCAtMTQ0Myw3ICsxNDQzLDcgQEAgc3RhdGljIHZvaWQgcGNpX3Jlc3RvcmVfcmViYXJfc3RhdGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwZGV2LCBwb3MgKyBQQ0lfUkVCQVJfQ1RSTCwgJmN0cmwpOwogCQliYXJfaWR4ID0gY3RybCAmIFBDSV9SRUJBUl9DVFJMX0JBUl9JRFg7CiAJCXJlcyA9IHBkZXYtPnJlc291cmNlICsgYmFyX2lkeDsKLQkJc2l6ZSA9IG9yZGVyX2Jhc2VfMigocmVzb3VyY2Vfc2l6ZShyZXMpID4+IDIwKSB8IDEpIC0gMTsKKwkJc2l6ZSA9IGlsb2cyKHJlc291cmNlX3NpemUocmVzKSkgLSAyMDsKIAkJY3RybCAmPSB+UENJX1JFQkFSX0NUUkxfQkFSX1NJWkU7CiAJCWN0cmwgfD0gc2l6ZSA8PCBQQ0lfUkVCQVJfQ1RSTF9CQVJfU0hJRlQ7CiAJCXBjaV93cml0ZV9jb25maWdfZHdvcmQocGRldiwgcG9zICsgUENJX1JFQkFSX0NUUkwsIGN0cmwpOwpAQCAtMzU4MSw3ICszNTgxLDcgQEAgaW50IHBjaV9lbmFibGVfYXRvbWljX29wc190b19yb290KHN0cnVjdCBwY2lfZGV2ICpkZXYsIHUzMiBjYXBfbWFzaykKIAkJfQogCiAJCS8qIEVuc3VyZSB1cHN0cmVhbSBwb3J0cyBkb24ndCBibG9jayBBdG9taWNPcHMgb24gZWdyZXNzICovCi0JCWlmICghYnJpZGdlLT5oYXNfc2Vjb25kYXJ5X2xpbmspIHsKKwkJaWYgKHBjaV9wY2llX3R5cGUoYnJpZGdlKSA9PSBQQ0lfRVhQX1RZUEVfVVBTVFJFQU0pIHsKIAkJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX2R3b3JkKGJyaWRnZSwgUENJX0VYUF9ERVZDVEwyLAogCQkJCQkJICAgJmN0bDIpOwogCQkJaWYgKGN0bDIgJiBQQ0lfRVhQX0RFVkNUTDJfQVRPTUlDX0VHUkVTU19CTE9DSykKQEAgLTU5MjMsOCArNTkyMywxOSBAQCByZXNvdXJjZV9zaXplX3QgX193ZWFrIHBjaWJpb3NfZGVmYXVsdF9hbGlnbm1lbnQodm9pZCkKIAlyZXR1cm4gMDsKIH0KIAotI2RlZmluZSBSRVNPVVJDRV9BTElHTk1FTlRfUEFSQU1fU0laRSBDT01NQU5EX0xJTkVfU0laRQotc3RhdGljIGNoYXIgcmVzb3VyY2VfYWxpZ25tZW50X3BhcmFtW1JFU09VUkNFX0FMSUdOTUVOVF9QQVJBTV9TSVpFXSA9IHswfTsKKy8qCisgKiBBcmNoZXMgdGhhdCBkb24ndCB3YW50IHRvIGV4cG9zZSBzdHJ1Y3QgcmVzb3VyY2UgdG8gdXNlcmxhbmQgYXMtaXMgaW4KKyAqIHN5c2ZzIGFuZCAvcHJvYyBjYW4gaW1wbGVtZW50IHRoZWlyIG93biBwY2lfcmVzb3VyY2VfdG9fdXNlcigpLgorICovCit2b2lkIF9fd2VhayBwY2lfcmVzb3VyY2VfdG9fdXNlcihjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgYmFyLAorCQkJCSBjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgKnJzcmMsCisJCQkJIHJlc291cmNlX3NpemVfdCAqc3RhcnQsIHJlc291cmNlX3NpemVfdCAqZW5kKQoreworCSpzdGFydCA9IHJzcmMtPnN0YXJ0OworCSplbmQgPSByc3JjLT5lbmQ7Cit9CisKK3N0YXRpYyBjaGFyICpyZXNvdXJjZV9hbGlnbm1lbnRfcGFyYW07CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHJlc291cmNlX2FsaWdubWVudF9sb2NrKTsKIAogLyoqCkBAIC01OTQ1LDcgKzU5NTYsNyBAQCBzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90IHBjaV9zcGVjaWZpZWRfcmVzb3VyY2VfYWxpZ25tZW50KHN0cnVjdCBwY2lfZGV2ICpkZXYsCiAKIAlzcGluX2xvY2soJnJlc291cmNlX2FsaWdubWVudF9sb2NrKTsKIAlwID0gcmVzb3VyY2VfYWxpZ25tZW50X3BhcmFtOwotCWlmICghKnAgJiYgIWFsaWduKQorCWlmICghcCB8fCAhKnApCiAJCWdvdG8gb3V0OwogCWlmIChwY2lfaGFzX2ZsYWcoUENJX1BST0JFX09OTFkpKSB7CiAJCWFsaWduID0gMDsKQEAgLTYxMDksMzUgKzYxMjAsNDEgQEAgdm9pZCBwY2lfcmVhc3NpZ25kZXZfcmVzb3VyY2VfYWxpZ25tZW50KHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAJfQogfQogCi1zdGF0aWMgc3NpemVfdCBwY2lfc2V0X3Jlc291cmNlX2FsaWdubWVudF9wYXJhbShjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKLXsKLQlpZiAoY291bnQgPiBSRVNPVVJDRV9BTElHTk1FTlRfUEFSQU1fU0laRSAtIDEpCi0JCWNvdW50ID0gUkVTT1VSQ0VfQUxJR05NRU5UX1BBUkFNX1NJWkUgLSAxOwotCXNwaW5fbG9jaygmcmVzb3VyY2VfYWxpZ25tZW50X2xvY2spOwotCXN0cm5jcHkocmVzb3VyY2VfYWxpZ25tZW50X3BhcmFtLCBidWYsIGNvdW50KTsKLQlyZXNvdXJjZV9hbGlnbm1lbnRfcGFyYW1bY291bnRdID0gJ1wwJzsKLQlzcGluX3VubG9jaygmcmVzb3VyY2VfYWxpZ25tZW50X2xvY2spOwotCXJldHVybiBjb3VudDsKLX0KLQotc3RhdGljIHNzaXplX3QgcGNpX2dldF9yZXNvdXJjZV9hbGlnbm1lbnRfcGFyYW0oY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSkKLXsKLQlzaXplX3QgY291bnQ7Ci0Jc3Bpbl9sb2NrKCZyZXNvdXJjZV9hbGlnbm1lbnRfbG9jayk7Ci0JY291bnQgPSBzbnByaW50ZihidWYsIHNpemUsICIlcyIsIHJlc291cmNlX2FsaWdubWVudF9wYXJhbSk7Ci0Jc3Bpbl91bmxvY2soJnJlc291cmNlX2FsaWdubWVudF9sb2NrKTsKLQlyZXR1cm4gY291bnQ7Ci19Ci0KIHN0YXRpYyBzc2l6ZV90IHJlc291cmNlX2FsaWdubWVudF9zaG93KHN0cnVjdCBidXNfdHlwZSAqYnVzLCBjaGFyICpidWYpCiB7Ci0JcmV0dXJuIHBjaV9nZXRfcmVzb3VyY2VfYWxpZ25tZW50X3BhcmFtKGJ1ZiwgUEFHRV9TSVpFKTsKKwlzaXplX3QgY291bnQgPSAwOworCisJc3Bpbl9sb2NrKCZyZXNvdXJjZV9hbGlnbm1lbnRfbG9jayk7CisJaWYgKHJlc291cmNlX2FsaWdubWVudF9wYXJhbSkKKwkJY291bnQgPSBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVzIiwgcmVzb3VyY2VfYWxpZ25tZW50X3BhcmFtKTsKKwlzcGluX3VubG9jaygmcmVzb3VyY2VfYWxpZ25tZW50X2xvY2spOworCisJLyoKKwkgKiBXaGVuIHNldCBieSB0aGUgY29tbWFuZCBsaW5lLCByZXNvdXJjZV9hbGlnbm1lbnRfcGFyYW0gd2lsbCBub3QKKwkgKiBoYXZlIGEgdHJhaWxpbmcgbGluZSBmZWVkLCB3aGljaCBpcyB1Z2x5LiBTbyBjb25kaXRpb25hbGx5IGFkZAorCSAqIGl0IGhlcmUuCisJICovCisJaWYgKGNvdW50ID49IDIgJiYgYnVmW2NvdW50IC0gMl0gIT0gJ1xuJyAmJiBjb3VudCA8IFBBR0VfU0laRSAtIDEpIHsKKwkJYnVmW2NvdW50IC0gMV0gPSAnXG4nOworCQlidWZbY291bnQrK10gPSAwOworCX0KKworCXJldHVybiBjb3VudDsKIH0KIAogc3RhdGljIHNzaXplX3QgcmVzb3VyY2VfYWxpZ25tZW50X3N0b3JlKHN0cnVjdCBidXNfdHlwZSAqYnVzLAogCQkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKLQlyZXR1cm4gcGNpX3NldF9yZXNvdXJjZV9hbGlnbm1lbnRfcGFyYW0oYnVmLCBjb3VudCk7CisJY2hhciAqcGFyYW0gPSBrc3RybmR1cChidWYsIGNvdW50LCBHRlBfS0VSTkVMKTsKKworCWlmICghcGFyYW0pCisJCXJldHVybiAtRU5PTUVNOworCisJc3Bpbl9sb2NrKCZyZXNvdXJjZV9hbGlnbm1lbnRfbG9jayk7CisJa2ZyZWUocmVzb3VyY2VfYWxpZ25tZW50X3BhcmFtKTsKKwlyZXNvdXJjZV9hbGlnbm1lbnRfcGFyYW0gPSBwYXJhbTsKKwlzcGluX3VubG9jaygmcmVzb3VyY2VfYWxpZ25tZW50X2xvY2spOworCXJldHVybiBjb3VudDsKIH0KIAogc3RhdGljIEJVU19BVFRSX1JXKHJlc291cmNlX2FsaWdubWVudCk7CkBAIC02MjY2LDggKzYyODMsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwY2lfc2V0dXAoY2hhciAqc3RyKQogCQkJfSBlbHNlIGlmICghc3RybmNtcChzdHIsICJjYm1lbXNpemU9IiwgMTApKSB7CiAJCQkJcGNpX2NhcmRidXNfbWVtX3NpemUgPSBtZW1wYXJzZShzdHIgKyAxMCwgJnN0cik7CiAJCQl9IGVsc2UgaWYgKCFzdHJuY21wKHN0ciwgInJlc291cmNlX2FsaWdubWVudD0iLCAxOSkpIHsKLQkJCQlwY2lfc2V0X3Jlc291cmNlX2FsaWdubWVudF9wYXJhbShzdHIgKyAxOSwKLQkJCQkJCQlzdHJsZW4oc3RyICsgMTkpKTsKKwkJCQlyZXNvdXJjZV9hbGlnbm1lbnRfcGFyYW0gPSBzdHIgKyAxOTsKIAkJCX0gZWxzZSBpZiAoIXN0cm5jbXAoc3RyLCAiZWNyYz0iLCA1KSkgewogCQkJCXBjaWVfZWNyY19nZXRfcG9saWN5KHN0ciArIDUpOwogCQkJfSBlbHNlIGlmICghc3RybmNtcChzdHIsICJocGlvc2l6ZT0iLCA5KSkgewpAQCAtNjMwMiwxNSArNjMxOCwxOCBAQCBzdGF0aWMgaW50IF9faW5pdCBwY2lfc2V0dXAoY2hhciAqc3RyKQogZWFybHlfcGFyYW0oInBjaSIsIHBjaV9zZXR1cCk7CiAKIC8qCi0gKiAnZGlzYWJsZV9hY3NfcmVkaXJfcGFyYW0nIGlzIGluaXRpYWxpemVkIGluIHBjaV9zZXR1cCgpLCBhYm92ZSwgdG8gcG9pbnQKLSAqIHRvIGRhdGEgaW4gdGhlIF9faW5pdGRhdGEgc2VjdGlvbiB3aGljaCB3aWxsIGJlIGZyZWVkIGFmdGVyIHRoZSBpbml0Ci0gKiBzZXF1ZW5jZSBpcyBjb21wbGV0ZS4gV2UgY2FuJ3QgYWxsb2NhdGUgbWVtb3J5IGluIHBjaV9zZXR1cCgpIGJlY2F1c2Ugc29tZQotICogYXJjaGl0ZWN0dXJlcyBkbyBub3QgaGF2ZSBhbnkgbWVtb3J5IGFsbG9jYXRpb24gc2VydmljZSBhdmFpbGFibGUgZHVyaW5nCi0gKiBhbiBlYXJseV9wYXJhbSgpIGNhbGwuIFNvIHdlIGFsbG9jYXRlIG1lbW9yeSBhbmQgY29weSB0aGUgdmFyaWFibGUgaGVyZQotICogYmVmb3JlIHRoZSBpbml0IHNlY3Rpb24gaXMgZnJlZWQuCisgKiAncmVzb3VyY2VfYWxpZ25tZW50X3BhcmFtJyBhbmQgJ2Rpc2FibGVfYWNzX3JlZGlyX3BhcmFtJyBhcmUgaW5pdGlhbGl6ZWQKKyAqIGluIHBjaV9zZXR1cCgpLCBhYm92ZSwgdG8gcG9pbnQgdG8gZGF0YSBpbiB0aGUgX19pbml0ZGF0YSBzZWN0aW9uIHdoaWNoCisgKiB3aWxsIGJlIGZyZWVkIGFmdGVyIHRoZSBpbml0IHNlcXVlbmNlIGlzIGNvbXBsZXRlLiBXZSBjYW4ndCBhbGxvY2F0ZSBtZW1vcnkKKyAqIGluIHBjaV9zZXR1cCgpIGJlY2F1c2Ugc29tZSBhcmNoaXRlY3R1cmVzIGRvIG5vdCBoYXZlIGFueSBtZW1vcnkgYWxsb2NhdGlvbgorICogc2VydmljZSBhdmFpbGFibGUgZHVyaW5nIGFuIGVhcmx5X3BhcmFtKCkgY2FsbC4gU28gd2UgYWxsb2NhdGUgbWVtb3J5IGFuZAorICogY29weSB0aGUgdmFyaWFibGUgaGVyZSBiZWZvcmUgdGhlIGluaXQgc2VjdGlvbiBpcyBmcmVlZC4KKyAqCiAgKi8KIHN0YXRpYyBpbnQgX19pbml0IHBjaV9yZWFsbG9jX3NldHVwX3BhcmFtcyh2b2lkKQogeworCXJlc291cmNlX2FsaWdubWVudF9wYXJhbSA9IGtzdHJkdXAocmVzb3VyY2VfYWxpZ25tZW50X3BhcmFtLAorCQkJCQkgICBHRlBfS0VSTkVMKTsKIAlkaXNhYmxlX2Fjc19yZWRpcl9wYXJhbSA9IGtzdHJkdXAoZGlzYWJsZV9hY3NfcmVkaXJfcGFyYW0sIEdGUF9LRVJORUwpOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2kuaCBiL2RyaXZlcnMvcGNpL3BjaS5oCmluZGV4IGQyMmQxYjguLjNmNjk0N2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3BjaS5oCisrKyBiL2RyaXZlcnMvcGNpL3BjaS5oCkBAIC0zOSw2ICszOSwxMSBAQCBpbnQgcGNpX3Byb2JlX3Jlc2V0X2Z1bmN0aW9uKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogaW50IHBjaV9icmlkZ2Vfc2Vjb25kYXJ5X2J1c19yZXNldChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIGludCBwY2lfYnVzX2Vycm9yX3Jlc2V0KHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogCisjZGVmaW5lIFBDSV9QTV9EMl9ERUxBWSAgICAgICAgIDIwMAorI2RlZmluZSBQQ0lfUE1fRDNfV0FJVCAgICAgICAgICAxMAorI2RlZmluZSBQQ0lfUE1fRDNDT0xEX1dBSVQgICAgICAxMDAKKyNkZWZpbmUgUENJX1BNX0JVU19XQUlUICAgICAgICAgNTAKKwogLyoqCiAgKiBzdHJ1Y3QgcGNpX3BsYXRmb3JtX3BtX29wcyAtIEZpcm13YXJlIFBNIGNhbGxiYWNrcwogICoKQEAgLTg0LDYgKzg5LDggQEAgdm9pZCBwY2lfcG93ZXJfdXAoc3RydWN0IHBjaV9kZXYgKmRldik7CiB2b2lkIHBjaV9kaXNhYmxlX2VuYWJsZWRfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogaW50IHBjaV9maW5pc2hfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogdm9pZCBwY2llX2NsZWFyX3Jvb3RfcG1lX3N0YXR1cyhzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKK2Jvb2wgcGNpX2NoZWNrX3BtZV9zdGF0dXMoc3RydWN0IHBjaV9kZXYgKmRldik7Cit2b2lkIHBjaV9wbWVfd2FrZXVwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKIGludCBfX3BjaV9wbWVfd2FrZXVwKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHZvaWQgKmlnbik7CiB2b2lkIHBjaV9wbWVfcmVzdG9yZShzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIGJvb2wgcGNpX2Rldl9uZWVkX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKQEAgLTExOCwxMSArMTI1LDI1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwY2lfcG93ZXJfbWFuYWdlYWJsZShzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldikKIAlyZXR1cm4gIXBjaV9oYXNfc3Vib3JkaW5hdGUocGNpX2RldikgfHwgcGNpX2Rldi0+YnJpZGdlX2QzOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgcGNpZV9kb3duc3RyZWFtX3BvcnQoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwlpbnQgdHlwZSA9IHBjaV9wY2llX3R5cGUoZGV2KTsKKworCXJldHVybiB0eXBlID09IFBDSV9FWFBfVFlQRV9ST09UX1BPUlQgfHwKKwkgICAgICAgdHlwZSA9PSBQQ0lfRVhQX1RZUEVfRE9XTlNUUkVBTSB8fAorCSAgICAgICB0eXBlID09IFBDSV9FWFBfVFlQRV9QQ0lFX0JSSURHRTsKK30KKwogaW50IHBjaV92cGRfaW5pdChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIHZvaWQgcGNpX3ZwZF9yZWxlYXNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogdm9pZCBwY2llX3ZwZF9jcmVhdGVfc3lzZnNfZGV2X2ZpbGVzKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogdm9pZCBwY2llX3ZwZF9yZW1vdmVfc3lzZnNfZGV2X2ZpbGVzKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogCisvKiBQQ0kgVmlydHVhbCBDaGFubmVsICovCitpbnQgcGNpX3NhdmVfdmNfc3RhdGUoc3RydWN0IHBjaV9kZXYgKmRldik7Cit2b2lkIHBjaV9yZXN0b3JlX3ZjX3N0YXRlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwordm9pZCBwY2lfYWxsb2NhdGVfdmNfc2F2ZV9idWZmZXJzKHN0cnVjdCBwY2lfZGV2ICpkZXYpOworCiAvKiBQQ0kgL3Byb2MgZnVuY3Rpb25zICovCiAjaWZkZWYgQ09ORklHX1BST0NfRlMKIGludCBwY2lfcHJvY19hdHRhY2hfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwpAQCAtMTk2LDYgKzIxNyw5IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpwY2lidXNfZ3JvdXBzW107CiBleHRlcm4gY29uc3Qgc3RydWN0IGRldmljZV90eXBlIHBjaV9kZXZfdHlwZTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpwY2lfYnVzX2dyb3Vwc1tdOwogCitleHRlcm4gdW5zaWduZWQgbG9uZyBwY2lfaG90cGx1Z19pb19zaXplOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcGNpX2hvdHBsdWdfbWVtX3NpemU7CitleHRlcm4gdW5zaWduZWQgbG9uZyBwY2lfaG90cGx1Z19idXNfc2l6ZTsKIAogLyoqCiAgKiBwY2lfbWF0Y2hfb25lX2RldmljZSAtIFRlbGwgaWYgYSBQQ0kgZGV2aWNlIHN0cnVjdHVyZSBoYXMgYSBtYXRjaGluZwpAQCAtMjM2LDYgKzI2MCw5IEBAIGVudW0gcGNpX2Jhcl90eXBlIHsKIAlwY2lfYmFyX21lbTY0LAkJLyogQSA2NC1iaXQgbWVtb3J5IEJBUiAqLwogfTsKIAorc3RydWN0IGRldmljZSAqcGNpX2dldF9ob3N0X2JyaWRnZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldik7Cit2b2lkIHBjaV9wdXRfaG9zdF9icmlkZ2VfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldik7CisKIGludCBwY2lfY29uZmlndXJlX2V4dGVuZGVkX3RhZ3Moc3RydWN0IHBjaV9kZXYgKmRldiwgdm9pZCAqaWduKTsKIGJvb2wgcGNpX2J1c19yZWFkX2Rldl92ZW5kb3JfaWQoc3RydWN0IHBjaV9idXMgKmJ1cywgaW50IGRldmZuLCB1MzIgKnBsLAogCQkJCWludCBjcnNfdGltZW91dCk7CkBAIC0yNTYsNiArMjgzLDggQEAgYm9vbCBwY2lfYnVzX2NsaXBfcmVzb3VyY2Uoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IGlkeCk7CiAKIHZvaWQgcGNpX3JlYXNzaWduZGV2X3Jlc291cmNlX2FsaWdubWVudChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIHZvaWQgcGNpX2Rpc2FibGVfYnJpZGdlX3dpbmRvdyhzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKK3N0cnVjdCBwY2lfYnVzICpwY2lfYnVzX2dldChzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKK3ZvaWQgcGNpX2J1c19wdXQoc3RydWN0IHBjaV9idXMgKmJ1cyk7CiAKIC8qIFBDSWUgbGluayBpbmZvcm1hdGlvbiAqLwogI2RlZmluZSBQQ0lFX1NQRUVEMlNUUihzcGVlZCkgXApAQCAtMjc5LDYgKzMwOCw3IEBAIHUzMiBwY2llX2JhbmR3aWR0aF9jYXBhYmxlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGVudW0gcGNpX2J1c19zcGVlZCAqc3BlZWQsCiAJCQkgICBlbnVtIHBjaWVfbGlua193aWR0aCAqd2lkdGgpOwogdm9pZCBfX3BjaWVfcHJpbnRfbGlua19zdGF0dXMoc3RydWN0IHBjaV9kZXYgKmRldiwgYm9vbCB2ZXJib3NlKTsKIHZvaWQgcGNpZV9yZXBvcnRfZG93bnRyYWluaW5nKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwordm9pZCBwY2llX3VwZGF0ZV9saW5rX3NwZWVkKHN0cnVjdCBwY2lfYnVzICpidXMsIHUxNiBsaW5rX3N0YXR1cyk7CiAKIC8qIFNpbmdsZSBSb290IEkvTyBWaXJ0dWFsaXphdGlvbiAqLwogc3RydWN0IHBjaV9zcmlvdiB7CkBAIC00MTgsMTEgKzQ0OCwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGNpX3Jlc3RvcmVfZHBjX3N0YXRlKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHt9CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19QQ0lfQVRTCisvKiBBZGRyZXNzIFRyYW5zbGF0aW9uIFNlcnZpY2UgKi8KK3ZvaWQgcGNpX2F0c19pbml0KHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogdm9pZCBwY2lfcmVzdG9yZV9hdHNfc3RhdGUoc3RydWN0IHBjaV9kZXYgKmRldik7CiAjZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHBjaV9yZXN0b3JlX2F0c19zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqZGV2KQotewotfQorc3RhdGljIGlubGluZSB2b2lkIHBjaV9hdHNfaW5pdChzdHJ1Y3QgcGNpX2RldiAqZCkgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgcGNpX3Jlc3RvcmVfYXRzX3N0YXRlKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgfQogI2VuZGlmIC8qIENPTkZJR19QQ0lfQVRTICovCiAKICNpZmRlZiBDT05GSUdfUENJX0lPVgpAQCAtNDMzLDcgKzQ2NCw3IEBAIHZvaWQgcGNpX2lvdl91cGRhdGVfcmVzb3VyY2Uoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHJlc25vKTsKIHJlc291cmNlX3NpemVfdCBwY2lfc3Jpb3ZfcmVzb3VyY2VfYWxpZ25tZW50KHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCByZXNubyk7CiB2b2lkIHBjaV9yZXN0b3JlX2lvdl9zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIGludCBwY2lfaW92X2J1c19yYW5nZShzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKLQorZXh0ZXJuIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgc3Jpb3ZfZGV2X2F0dHJfZ3JvdXA7CiAjZWxzZQogc3RhdGljIGlubGluZSBpbnQgcGNpX2lvdl9pbml0KHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7CkBAIC01MTgsMTAgKzU0OSwyMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGNpZV9hc3BtX2NyZWF0ZV9zeXNmc19kZXZfZmlsZXMoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsgfQogc3RhdGljIGlubGluZSB2b2lkIHBjaWVfYXNwbV9yZW1vdmVfc3lzZnNfZGV2X2ZpbGVzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KSB7IH0KICNlbmRpZgogCisjaWZkZWYgQ09ORklHX1BDSUVfRUNSQwordm9pZCBwY2llX3NldF9lY3JjX2NoZWNraW5nKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwordm9pZCBwY2llX2VjcmNfZ2V0X3BvbGljeShjaGFyICpzdHIpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBwY2llX3NldF9lY3JjX2NoZWNraW5nKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgfQorc3RhdGljIGlubGluZSB2b2lkIHBjaWVfZWNyY19nZXRfcG9saWN5KGNoYXIgKnN0cikgeyB9CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19QQ0lFX1BUTQogdm9pZCBwY2lfcHRtX2luaXQoc3RydWN0IHBjaV9kZXYgKmRldik7CitpbnQgcGNpX2VuYWJsZV9wdG0oc3RydWN0IHBjaV9kZXYgKmRldiwgdTggKmdyYW51bGFyaXR5KTsKICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQgcGNpX3B0bV9pbml0KHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgfQorc3RhdGljIGlubGluZSBpbnQgcGNpX2VuYWJsZV9wdG0oc3RydWN0IHBjaV9kZXYgKmRldiwgdTggKmdyYW51bGFyaXR5KQoreyByZXR1cm4gLUVJTlZBTDsgfQogI2VuZGlmCiAKIHN0cnVjdCBwY2lfZGV2X3Jlc2V0X21ldGhvZHMgewpAQCAtNTU4LDYgKzYwMCwxMCBAQCBzdHJ1Y3QgZGV2aWNlX25vZGU7CiBpbnQgb2ZfcGNpX3BhcnNlX2J1c19yYW5nZShzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsIHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKIGludCBvZl9nZXRfcGNpX2RvbWFpbl9ucihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpOwogaW50IG9mX3BjaV9nZXRfbWF4X2xpbmtfc3BlZWQoc3RydWN0IGRldmljZV9ub2RlICpub2RlKTsKK3ZvaWQgcGNpX3NldF9vZl9ub2RlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwordm9pZCBwY2lfcmVsZWFzZV9vZl9ub2RlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwordm9pZCBwY2lfc2V0X2J1c19vZl9ub2RlKHN0cnVjdCBwY2lfYnVzICpidXMpOwordm9pZCBwY2lfcmVsZWFzZV9idXNfb2Zfbm9kZShzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKIAogI2Vsc2UKIHN0YXRpYyBpbmxpbmUgaW50CkBAIC01NzcsNiArNjIzLDExIEBAIG9mX3BjaV9nZXRfbWF4X2xpbmtfc3BlZWQoc3RydWN0IGRldmljZV9ub2RlICpub2RlKQogewogCXJldHVybiAtRUlOVkFMOwogfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcGNpX3NldF9vZl9ub2RlKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgfQorc3RhdGljIGlubGluZSB2b2lkIHBjaV9yZWxlYXNlX29mX25vZGUoc3RydWN0IHBjaV9kZXYgKmRldikgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgcGNpX3NldF9idXNfb2Zfbm9kZShzdHJ1Y3QgcGNpX2J1cyAqYnVzKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBwY2lfcmVsZWFzZV9idXNfb2Zfbm9kZShzdHJ1Y3QgcGNpX2J1cyAqYnVzKSB7IH0KICNlbmRpZiAvKiBDT05GSUdfT0YgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX09GX0FERFJFU1MpCkBAIC02MDcsNCArNjU4LDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwY2lfYWVyX2NsZWFyX2ZhdGFsX3N0YXR1cyhzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBwY2lfYWVyX2NsZWFyX2RldmljZV9zdGF0dXMoc3RydWN0IHBjaV9kZXYgKmRldikgeyB9CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19BQ1BJCitpbnQgcGNpX2FjcGlfcHJvZ3JhbV9ocF9wYXJhbXMoc3RydWN0IHBjaV9kZXYgKmRldik7CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgcGNpX2FjcGlfcHJvZ3JhbV9ocF9wYXJhbXMoc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwlyZXR1cm4gLUVOT0RFVjsKK30KKyNlbmRpZgorCiAjZW5kaWYgLyogRFJJVkVSU19QQ0lfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpZS9hc3BtLmMgYi9kcml2ZXJzL3BjaS9wY2llL2FzcG0uYwppbmRleCA0NjRmOGY5Li42NTJlZjIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2llL2FzcG0uYworKysgYi9kcml2ZXJzL3BjaS9wY2llL2FzcG0uYwpAQCAtMTgsNyArMTgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgIi4uL3BjaS5oIgogCiAjaWZkZWYgTU9EVUxFX1BBUkFNX1BSRUZJWApAQCAtOTEzLDEwICs5MTIsMTAgQEAgdm9pZCBwY2llX2FzcG1faW5pdF9saW5rX3N0YXRlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCiAJLyoKIAkgKiBXZSBhbGxvY2F0ZSBwY2llX2xpbmtfc3RhdGUgZm9yIHRoZSBjb21wb25lbnQgb24gdGhlIHVwc3RyZWFtCi0JICogZW5kIG9mIGEgTGluaywgc28gdGhlcmUncyBub3RoaW5nIHRvIGRvIHVubGVzcyB0aGlzIGRldmljZSBoYXMgYQotCSAqIExpbmsgb24gaXRzIHNlY29uZGFyeSBzaWRlLgorCSAqIGVuZCBvZiBhIExpbmssIHNvIHRoZXJlJ3Mgbm90aGluZyB0byBkbyB1bmxlc3MgdGhpcyBkZXZpY2UgaXMKKwkgKiBkb3duc3RyZWFtIHBvcnQuCiAJICovCi0JaWYgKCFwZGV2LT5oYXNfc2Vjb25kYXJ5X2xpbmspCisJaWYgKCFwY2llX2Rvd25zdHJlYW1fcG9ydChwZGV2KSkKIAkJcmV0dXJuOwogCiAJLyogVklBIGhhcyBhIHN0cmFuZ2UgY2hpcHNldCwgcm9vdCBwb3J0IGlzIHVuZGVyIGEgYnJpZGdlICovCkBAIC0xMDcwLDcgKzEwNjksNyBAQCBzdGF0aWMgaW50IF9fcGNpX2Rpc2FibGVfbGlua19zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IHN0YXRlLCBib29sIHNlbSkKIAlpZiAoIXBjaV9pc19wY2llKHBkZXYpKQogCQlyZXR1cm4gMDsKIAotCWlmIChwZGV2LT5oYXNfc2Vjb25kYXJ5X2xpbmspCisJaWYgKHBjaWVfZG93bnN0cmVhbV9wb3J0KHBkZXYpKQogCQlwYXJlbnQgPSBwZGV2OwogCWlmICghcGFyZW50IHx8ICFwYXJlbnQtPmxpbmtfc3RhdGUpCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpZS9lcnIuYyBiL2RyaXZlcnMvcGNpL3BjaWUvZXJyLmMKaW5kZXggNzczMTk3YS4uYjBlNjA0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpZS9lcnIuYworKysgYi9kcml2ZXJzL3BjaS9wY2llL2Vyci5jCkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHBjaV9lcnNfcmVzdWx0X3QgcmVzZXRfbGluayhzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1MzIgc2VydmljZSkKIAlkcml2ZXIgPSBwY2llX3BvcnRfZmluZF9zZXJ2aWNlKGRldiwgc2VydmljZSk7CiAJaWYgKGRyaXZlciAmJiBkcml2ZXItPnJlc2V0X2xpbmspIHsKIAkJc3RhdHVzID0gZHJpdmVyLT5yZXNldF9saW5rKGRldik7Ci0JfSBlbHNlIGlmIChkZXYtPmhhc19zZWNvbmRhcnlfbGluaykgeworCX0gZWxzZSBpZiAocGNpZV9kb3duc3RyZWFtX3BvcnQoZGV2KSkgewogCQlzdGF0dXMgPSBkZWZhdWx0X3Jlc2V0X2xpbmsoZGV2KTsKIAl9IGVsc2UgewogCQlwY2lfcHJpbnRrKEtFUk5fREVCVUcsIGRldiwgIm5vIGxpbmstcmVzZXQgc3VwcG9ydCBhdCB1cHN0cmVhbSBkZXZpY2UgJXNcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wcm9iZS5jIGIvZHJpdmVycy9wY2kvcHJvYmUuYwppbmRleCBkYmVlYjM4Li4zZDUyNzFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wcm9iZS5jCisrKyBiL2RyaXZlcnMvcGNpL3Byb2JlLmMKQEAgLTE0MjYsMjYgKzE0MjYsMzggQEAgdm9pZCBzZXRfcGNpZV9wb3J0X3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJcGNpX3JlYWRfY29uZmlnX3dvcmQocGRldiwgcG9zICsgUENJX0VYUF9ERVZDQVAsICZyZWcxNik7CiAJcGRldi0+cGNpZV9tcHNzID0gcmVnMTYgJiBQQ0lfRVhQX0RFVkNBUF9QQVlMT0FEOwogCisJcGFyZW50ID0gcGNpX3Vwc3RyZWFtX2JyaWRnZShwZGV2KTsKKwlpZiAoIXBhcmVudCkKKwkJcmV0dXJuOworCiAJLyoKLQkgKiBBIFJvb3QgUG9ydCBvciBhIFBDSS10by1QQ0llIGJyaWRnZSBpcyBhbHdheXMgdGhlIHVwc3RyZWFtIGVuZAotCSAqIG9mIGEgTGluay4gIE5vIFBDSWUgY29tcG9uZW50IGhhcyB0d28gTGlua3MuICBUd28gTGlua3MgYXJlCi0JICogY29ubmVjdGVkIGJ5IGEgU3dpdGNoIHRoYXQgaGFzIGEgUG9ydCBvbiBlYWNoIExpbmsgYW5kIGludGVybmFsCi0JICogbG9naWMgdG8gY29ubmVjdCB0aGUgdHdvIFBvcnRzLgorCSAqIFNvbWUgc3lzdGVtcyBkbyBub3QgaWRlbnRpZnkgdGhlaXIgdXBzdHJlYW0vZG93bnN0cmVhbSBwb3J0cworCSAqIGNvcnJlY3RseSBzbyBkZXRlY3QgaW1wb3NzaWJsZSBjb25maWd1cmF0aW9ucyBoZXJlIGFuZCBjb3JyZWN0CisJICogdGhlIHBvcnQgdHlwZSBhY2NvcmRpbmdseS4KIAkgKi8KIAl0eXBlID0gcGNpX3BjaWVfdHlwZShwZGV2KTsKLQlpZiAodHlwZSA9PSBQQ0lfRVhQX1RZUEVfUk9PVF9QT1JUIHx8Ci0JICAgIHR5cGUgPT0gUENJX0VYUF9UWVBFX1BDSUVfQlJJREdFKQotCQlwZGV2LT5oYXNfc2Vjb25kYXJ5X2xpbmsgPSAxOwotCWVsc2UgaWYgKHR5cGUgPT0gUENJX0VYUF9UWVBFX1VQU1RSRUFNIHx8Ci0JCSB0eXBlID09IFBDSV9FWFBfVFlQRV9ET1dOU1RSRUFNKSB7Ci0JCXBhcmVudCA9IHBjaV91cHN0cmVhbV9icmlkZ2UocGRldik7Ci0KKwlpZiAodHlwZSA9PSBQQ0lfRVhQX1RZUEVfRE9XTlNUUkVBTSkgewogCQkvKgotCQkgKiBVc3VhbGx5IHRoZXJlJ3MgYW4gdXBzdHJlYW0gZGV2aWNlIChSb290IFBvcnQgb3IgU3dpdGNoCi0JCSAqIERvd25zdHJlYW0gUG9ydCksIGJ1dCB3ZSBjYW4ndCBhc3N1bWUgb25lIGV4aXN0cy4KKwkJICogSWYgcGRldiBjbGFpbXMgdG8gYmUgZG93bnN0cmVhbSBwb3J0IGJ1dCB0aGUgcGFyZW50CisJCSAqIGRldmljZSBpcyBhbHNvIGRvd25zdHJlYW0gcG9ydCBhc3N1bWUgcGRldiBpcyBhY3R1YWxseQorCQkgKiB1cHN0cmVhbSBwb3J0LgogCQkgKi8KLQkJaWYgKHBhcmVudCAmJiAhcGFyZW50LT5oYXNfc2Vjb25kYXJ5X2xpbmspCi0JCQlwZGV2LT5oYXNfc2Vjb25kYXJ5X2xpbmsgPSAxOworCQlpZiAocGNpZV9kb3duc3RyZWFtX3BvcnQocGFyZW50KSkgeworCQkJcGNpX2luZm8ocGRldiwgImNsYWltcyB0byBiZSBkb3duc3RyZWFtIHBvcnQgYnV0IGlzIGFjdGluZyBhcyB1cHN0cmVhbSBwb3J0LCBjb3JyZWN0aW5nIHR5cGVcbiIpOworCQkJcGRldi0+cGNpZV9mbGFnc19yZWcgJj0gflBDSV9FWFBfRkxBR1NfVFlQRTsKKwkJCXBkZXYtPnBjaWVfZmxhZ3NfcmVnIHw9IFBDSV9FWFBfVFlQRV9VUFNUUkVBTTsKKwkJfQorCX0gZWxzZSBpZiAodHlwZSA9PSBQQ0lfRVhQX1RZUEVfVVBTVFJFQU0pIHsKKwkJLyoKKwkJICogSWYgcGRldiBjbGFpbXMgdG8gYmUgdXBzdHJlYW0gcG9ydCBidXQgdGhlIHBhcmVudAorCQkgKiBkZXZpY2UgaXMgYWxzbyB1cHN0cmVhbSBwb3J0IGFzc3VtZSBwZGV2IGlzIGFjdHVhbGx5CisJCSAqIGRvd25zdHJlYW0gcG9ydC4KKwkJICovCisJCWlmIChwY2lfcGNpZV90eXBlKHBhcmVudCkgPT0gUENJX0VYUF9UWVBFX1VQU1RSRUFNKSB7CisJCQlwY2lfaW5mbyhwZGV2LCAiY2xhaW1zIHRvIGJlIHVwc3RyZWFtIHBvcnQgYnV0IGlzIGFjdGluZyBhcyBkb3duc3RyZWFtIHBvcnQsIGNvcnJlY3RpbmcgdHlwZVxuIik7CisJCQlwZGV2LT5wY2llX2ZsYWdzX3JlZyAmPSB+UENJX0VYUF9GTEFHU19UWVBFOworCQkJcGRldi0+cGNpZV9mbGFnc19yZWcgfD0gUENJX0VYUF9UWVBFX0RPV05TVFJFQU07CisJCX0KIAl9CiB9CiAKQEAgLTE5MTUsMjc1ICsxOTI3LDYgQEAgc3RhdGljIHZvaWQgcGNpX2NvbmZpZ3VyZV9tcHMoc3RydWN0IHBjaV9kZXYgKmRldikKIAkJIHBfbXBzLCBtcHMsIG1wc3MpOwogfQogCi1zdGF0aWMgc3RydWN0IGhwcF90eXBlMCBwY2lfZGVmYXVsdF90eXBlMCA9IHsKLQkucmV2aXNpb24gPSAxLAotCS5jYWNoZV9saW5lX3NpemUgPSA4LAotCS5sYXRlbmN5X3RpbWVyID0gMHg0MCwKLQkuZW5hYmxlX3NlcnIgPSAwLAotCS5lbmFibGVfcGVyciA9IDAsCi19OwotCi1zdGF0aWMgdm9pZCBwcm9ncmFtX2hwcF90eXBlMChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3QgaHBwX3R5cGUwICpocHApCi17Ci0JdTE2IHBjaV9jbWQsIHBjaV9iY3RsOwotCi0JaWYgKCFocHApCi0JCWhwcCA9ICZwY2lfZGVmYXVsdF90eXBlMDsKLQotCWlmIChocHAtPnJldmlzaW9uID4gMSkgewotCQlwY2lfd2FybihkZXYsICJQQ0kgc2V0dGluZ3MgcmV2ICVkIG5vdCBzdXBwb3J0ZWQ7IHVzaW5nIGRlZmF1bHRzXG4iLAotCQkJIGhwcC0+cmV2aXNpb24pOwotCQlocHAgPSAmcGNpX2RlZmF1bHRfdHlwZTA7Ci0JfQotCi0JcGNpX3dyaXRlX2NvbmZpZ19ieXRlKGRldiwgUENJX0NBQ0hFX0xJTkVfU0laRSwgaHBwLT5jYWNoZV9saW5lX3NpemUpOwotCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYsIFBDSV9MQVRFTkNZX1RJTUVSLCBocHAtPmxhdGVuY3lfdGltZXIpOwotCXBjaV9yZWFkX2NvbmZpZ193b3JkKGRldiwgUENJX0NPTU1BTkQsICZwY2lfY21kKTsKLQlpZiAoaHBwLT5lbmFibGVfc2VycikKLQkJcGNpX2NtZCB8PSBQQ0lfQ09NTUFORF9TRVJSOwotCWlmIChocHAtPmVuYWJsZV9wZXJyKQotCQlwY2lfY21kIHw9IFBDSV9DT01NQU5EX1BBUklUWTsKLQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoZGV2LCBQQ0lfQ09NTUFORCwgcGNpX2NtZCk7Ci0KLQkvKiBQcm9ncmFtIGJyaWRnZSBjb250cm9sIHZhbHVlICovCi0JaWYgKChkZXYtPmNsYXNzID4+IDgpID09IFBDSV9DTEFTU19CUklER0VfUENJKSB7Ci0JCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYsIFBDSV9TRUNfTEFURU5DWV9USU1FUiwKLQkJCQkgICAgICBocHAtPmxhdGVuY3lfdGltZXIpOwotCQlwY2lfcmVhZF9jb25maWdfd29yZChkZXYsIFBDSV9CUklER0VfQ09OVFJPTCwgJnBjaV9iY3RsKTsKLQkJaWYgKGhwcC0+ZW5hYmxlX3BlcnIpCi0JCQlwY2lfYmN0bCB8PSBQQ0lfQlJJREdFX0NUTF9QQVJJVFk7Ci0JCXBjaV93cml0ZV9jb25maWdfd29yZChkZXYsIFBDSV9CUklER0VfQ09OVFJPTCwgcGNpX2JjdGwpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgcHJvZ3JhbV9ocHBfdHlwZTEoc3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IGhwcF90eXBlMSAqaHBwKQotewotCWludCBwb3M7Ci0KLQlpZiAoIWhwcCkKLQkJcmV0dXJuOwotCi0JcG9zID0gcGNpX2ZpbmRfY2FwYWJpbGl0eShkZXYsIFBDSV9DQVBfSURfUENJWCk7Ci0JaWYgKCFwb3MpCi0JCXJldHVybjsKLQotCXBjaV93YXJuKGRldiwgIlBDSS1YIHNldHRpbmdzIG5vdCBzdXBwb3J0ZWRcbiIpOwotfQotCi1zdGF0aWMgYm9vbCBwY2llX3Jvb3RfcmNiX3NldChzdHJ1Y3QgcGNpX2RldiAqZGV2KQotewotCXN0cnVjdCBwY2lfZGV2ICpycCA9IHBjaWVfZmluZF9yb290X3BvcnQoZGV2KTsKLQl1MTYgbG5rY3RsOwotCi0JaWYgKCFycCkKLQkJcmV0dXJuIGZhbHNlOwotCi0JcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChycCwgUENJX0VYUF9MTktDVEwsICZsbmtjdGwpOwotCWlmIChsbmtjdGwgJiBQQ0lfRVhQX0xOS0NUTF9SQ0IpCi0JCXJldHVybiB0cnVlOwotCi0JcmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgdm9pZCBwcm9ncmFtX2hwcF90eXBlMihzdHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3QgaHBwX3R5cGUyICpocHApCi17Ci0JaW50IHBvczsKLQl1MzIgcmVnMzI7Ci0KLQlpZiAoIWhwcCkKLQkJcmV0dXJuOwotCi0JaWYgKCFwY2lfaXNfcGNpZShkZXYpKQotCQlyZXR1cm47Ci0KLQlpZiAoaHBwLT5yZXZpc2lvbiA+IDEpIHsKLQkJcGNpX3dhcm4oZGV2LCAiUENJZSBzZXR0aW5ncyByZXYgJWQgbm90IHN1cHBvcnRlZFxuIiwKLQkJCSBocHAtPnJldmlzaW9uKTsKLQkJcmV0dXJuOwotCX0KLQotCS8qCi0JICogRG9uJ3QgYWxsb3cgX0hQWCB0byBjaGFuZ2UgTVBTIG9yIE1SUlMgc2V0dGluZ3MuICBXZSBtYW5hZ2UKLQkgKiB0aG9zZSB0byBtYWtlIHN1cmUgdGhleSdyZSBjb25zaXN0ZW50IHdpdGggdGhlIHJlc3Qgb2YgdGhlCi0JICogcGxhdGZvcm0uCi0JICovCi0JaHBwLT5wY2lfZXhwX2RldmN0bF9hbmQgfD0gUENJX0VYUF9ERVZDVExfUEFZTE9BRCB8Ci0JCQkJICAgIFBDSV9FWFBfREVWQ1RMX1JFQURSUTsKLQlocHAtPnBjaV9leHBfZGV2Y3RsX29yICY9IH4oUENJX0VYUF9ERVZDVExfUEFZTE9BRCB8Ci0JCQkJICAgIFBDSV9FWFBfREVWQ1RMX1JFQURSUSk7Ci0KLQkvKiBJbml0aWFsaXplIERldmljZSBDb250cm9sIFJlZ2lzdGVyICovCi0JcGNpZV9jYXBhYmlsaXR5X2NsZWFyX2FuZF9zZXRfd29yZChkZXYsIFBDSV9FWFBfREVWQ1RMLAotCQkJfmhwcC0+cGNpX2V4cF9kZXZjdGxfYW5kLCBocHAtPnBjaV9leHBfZGV2Y3RsX29yKTsKLQotCS8qIEluaXRpYWxpemUgTGluayBDb250cm9sIFJlZ2lzdGVyICovCi0JaWYgKHBjaWVfY2FwX2hhc19sbmtjdGwoZGV2KSkgewotCi0JCS8qCi0JCSAqIElmIHRoZSBSb290IFBvcnQgc3VwcG9ydHMgUmVhZCBDb21wbGV0aW9uIEJvdW5kYXJ5IG9mCi0JCSAqIDEyOCwgc2V0IFJDQiB0byAxMjguICBPdGhlcndpc2UsIGNsZWFyIGl0LgotCQkgKi8KLQkJaHBwLT5wY2lfZXhwX2xua2N0bF9hbmQgfD0gUENJX0VYUF9MTktDVExfUkNCOwotCQlocHAtPnBjaV9leHBfbG5rY3RsX29yICY9IH5QQ0lfRVhQX0xOS0NUTF9SQ0I7Ci0JCWlmIChwY2llX3Jvb3RfcmNiX3NldChkZXYpKQotCQkJaHBwLT5wY2lfZXhwX2xua2N0bF9vciB8PSBQQ0lfRVhQX0xOS0NUTF9SQ0I7Ci0KLQkJcGNpZV9jYXBhYmlsaXR5X2NsZWFyX2FuZF9zZXRfd29yZChkZXYsIFBDSV9FWFBfTE5LQ1RMLAotCQkJfmhwcC0+cGNpX2V4cF9sbmtjdGxfYW5kLCBocHAtPnBjaV9leHBfbG5rY3RsX29yKTsKLQl9Ci0KLQkvKiBGaW5kIEFkdmFuY2VkIEVycm9yIFJlcG9ydGluZyBFbmhhbmNlZCBDYXBhYmlsaXR5ICovCi0JcG9zID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkoZGV2LCBQQ0lfRVhUX0NBUF9JRF9FUlIpOwotCWlmICghcG9zKQotCQlyZXR1cm47Ci0KLQkvKiBJbml0aWFsaXplIFVuY29ycmVjdGFibGUgRXJyb3IgTWFzayBSZWdpc3RlciAqLwotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIHBvcyArIFBDSV9FUlJfVU5DT1JfTUFTSywgJnJlZzMyKTsKLQlyZWczMiA9IChyZWczMiAmIGhwcC0+dW5jX2Vycl9tYXNrX2FuZCkgfCBocHAtPnVuY19lcnJfbWFza19vcjsKLQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgcG9zICsgUENJX0VSUl9VTkNPUl9NQVNLLCByZWczMik7Ci0KLQkvKiBJbml0aWFsaXplIFVuY29ycmVjdGFibGUgRXJyb3IgU2V2ZXJpdHkgUmVnaXN0ZXIgKi8KLQlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCBwb3MgKyBQQ0lfRVJSX1VOQ09SX1NFVkVSLCAmcmVnMzIpOwotCXJlZzMyID0gKHJlZzMyICYgaHBwLT51bmNfZXJyX3NldmVyX2FuZCkgfCBocHAtPnVuY19lcnJfc2V2ZXJfb3I7Ci0JcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIHBvcyArIFBDSV9FUlJfVU5DT1JfU0VWRVIsIHJlZzMyKTsKLQotCS8qIEluaXRpYWxpemUgQ29ycmVjdGFibGUgRXJyb3IgTWFzayBSZWdpc3RlciAqLwotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIHBvcyArIFBDSV9FUlJfQ09SX01BU0ssICZyZWczMik7Ci0JcmVnMzIgPSAocmVnMzIgJiBocHAtPmNvcl9lcnJfbWFza19hbmQpIHwgaHBwLT5jb3JfZXJyX21hc2tfb3I7Ci0JcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIHBvcyArIFBDSV9FUlJfQ09SX01BU0ssIHJlZzMyKTsKLQotCS8qIEluaXRpYWxpemUgQWR2YW5jZWQgRXJyb3IgQ2FwYWJpbGl0aWVzIGFuZCBDb250cm9sIFJlZ2lzdGVyICovCi0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgcG9zICsgUENJX0VSUl9DQVAsICZyZWczMik7Ci0JcmVnMzIgPSAocmVnMzIgJiBocHAtPmFkdl9lcnJfY2FwX2FuZCkgfCBocHAtPmFkdl9lcnJfY2FwX29yOwotCi0JLyogRG9uJ3QgZW5hYmxlIEVDUkMgZ2VuZXJhdGlvbiBvciBjaGVja2luZyBpZiB1bnN1cHBvcnRlZCAqLwotCWlmICghKHJlZzMyICYgUENJX0VSUl9DQVBfRUNSQ19HRU5DKSkKLQkJcmVnMzIgJj0gflBDSV9FUlJfQ0FQX0VDUkNfR0VORTsKLQlpZiAoIShyZWczMiAmIFBDSV9FUlJfQ0FQX0VDUkNfQ0hLQykpCi0JCXJlZzMyICY9IH5QQ0lfRVJSX0NBUF9FQ1JDX0NIS0U7Ci0JcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIHBvcyArIFBDSV9FUlJfQ0FQLCByZWczMik7Ci0KLQkvKgotCSAqIEZJWE1FOiBUaGUgZm9sbG93aW5nIHR3byByZWdpc3RlcnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LgotCSAqCi0JICogICBvIFNlY29uZGFyeSBVbmNvcnJlY3RhYmxlIEVycm9yIFNldmVyaXR5IFJlZ2lzdGVyCi0JICogICBvIFNlY29uZGFyeSBVbmNvcnJlY3RhYmxlIEVycm9yIE1hc2sgUmVnaXN0ZXIKLQkgKi8KLX0KLQotc3RhdGljIHUxNiBocHgzX2RldmljZV90eXBlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCi17Ci0JdTE2IHBjaWVfdHlwZSA9IHBjaV9wY2llX3R5cGUoZGV2KTsKLQljb25zdCBpbnQgcGNpZV90b19ocHgzX3R5cGVbXSA9IHsKLQkJW1BDSV9FWFBfVFlQRV9FTkRQT0lOVF0gICAgPSBIUFhfVFlQRV9FTkRQT0lOVCwKLQkJW1BDSV9FWFBfVFlQRV9MRUdfRU5EXSAgICAgPSBIUFhfVFlQRV9MRUdfRU5ELAotCQlbUENJX0VYUF9UWVBFX1JDX0VORF0gICAgICA9IEhQWF9UWVBFX1JDX0VORCwKLQkJW1BDSV9FWFBfVFlQRV9SQ19FQ10gICAgICAgPSBIUFhfVFlQRV9SQ19FQywKLQkJW1BDSV9FWFBfVFlQRV9ST09UX1BPUlRdICAgPSBIUFhfVFlQRV9ST09UX1BPUlQsCi0JCVtQQ0lfRVhQX1RZUEVfVVBTVFJFQU1dICAgID0gSFBYX1RZUEVfVVBTVFJFQU0sCi0JCVtQQ0lfRVhQX1RZUEVfRE9XTlNUUkVBTV0gID0gSFBYX1RZUEVfRE9XTlNUUkVBTSwKLQkJW1BDSV9FWFBfVFlQRV9QQ0lfQlJJREdFXSAgPSBIUFhfVFlQRV9QQ0lfQlJJREdFLAotCQlbUENJX0VYUF9UWVBFX1BDSUVfQlJJREdFXSA9IEhQWF9UWVBFX1BDSUVfQlJJREdFLAotCX07Ci0KLQlpZiAocGNpZV90eXBlID49IEFSUkFZX1NJWkUocGNpZV90b19ocHgzX3R5cGUpKQotCQlyZXR1cm4gMDsKLQotCXJldHVybiBwY2llX3RvX2hweDNfdHlwZVtwY2llX3R5cGVdOwotfQotCi1zdGF0aWMgdTggaHB4M19mdW5jdGlvbl90eXBlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCi17Ci0JaWYgKGRldi0+aXNfdmlydGZuKQotCQlyZXR1cm4gSFBYX0ZOX1NSSU9WX1ZJUlQ7Ci0JZWxzZSBpZiAocGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkoZGV2LCBQQ0lfRVhUX0NBUF9JRF9TUklPVikgPiAwKQotCQlyZXR1cm4gSFBYX0ZOX1NSSU9WX1BIWVM7Ci0JZWxzZQotCQlyZXR1cm4gSFBYX0ZOX05PUk1BTDsKLX0KLQotc3RhdGljIGJvb2wgaHB4M19jYXBfdmVyX21hdGNoZXModTggcGNpZV9jYXBfaWQsIHU4IGhweDNfY2FwX2lkKQotewotCXU4IGNhcF92ZXIgPSBocHgzX2NhcF9pZCAmIDB4ZjsKLQotCWlmICgoaHB4M19jYXBfaWQgJiBCSVQoNCkpICYmIGNhcF92ZXIgPj0gcGNpZV9jYXBfaWQpCi0JCXJldHVybiB0cnVlOwotCWVsc2UgaWYgKGNhcF92ZXIgPT0gcGNpZV9jYXBfaWQpCi0JCXJldHVybiB0cnVlOwotCi0JcmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgdm9pZCBwcm9ncmFtX2hweF90eXBlM19yZWdpc3RlcihzdHJ1Y3QgcGNpX2RldiAqZGV2LAotCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaHB4X3R5cGUzICpyZWcpCi17Ci0JdTMyIG1hdGNoX3JlZywgd3JpdGVfcmVnLCBoZWFkZXIsIG9yaWdfdmFsdWU7Ci0JdTE2IHBvczsKLQotCWlmICghKGhweDNfZGV2aWNlX3R5cGUoZGV2KSAmIHJlZy0+ZGV2aWNlX3R5cGUpKQotCQlyZXR1cm47Ci0KLQlpZiAoIShocHgzX2Z1bmN0aW9uX3R5cGUoZGV2KSAmIHJlZy0+ZnVuY3Rpb25fdHlwZSkpCi0JCXJldHVybjsKLQotCXN3aXRjaCAocmVnLT5jb25maWdfc3BhY2VfbG9jYXRpb24pIHsKLQljYXNlIEhQWF9DRkdfUENJQ0ZHOgotCQlwb3MgPSAwOwotCQlicmVhazsKLQljYXNlIEhQWF9DRkdfUENJRV9DQVA6Ci0JCXBvcyA9IHBjaV9maW5kX2NhcGFiaWxpdHkoZGV2LCByZWctPnBjaV9leHBfY2FwX2lkKTsKLQkJaWYgKHBvcyA9PSAwKQotCQkJcmV0dXJuOwotCi0JCWJyZWFrOwotCWNhc2UgSFBYX0NGR19QQ0lFX0NBUF9FWFQ6Ci0JCXBvcyA9IHBjaV9maW5kX2V4dF9jYXBhYmlsaXR5KGRldiwgcmVnLT5wY2lfZXhwX2NhcF9pZCk7Ci0JCWlmIChwb3MgPT0gMCkKLQkJCXJldHVybjsKLQotCQlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCBwb3MsICZoZWFkZXIpOwotCQlpZiAoIWhweDNfY2FwX3Zlcl9tYXRjaGVzKFBDSV9FWFRfQ0FQX1ZFUihoZWFkZXIpLAotCQkJCQkgIHJlZy0+cGNpX2V4cF9jYXBfdmVyKSkKLQkJCXJldHVybjsKLQotCQlicmVhazsKLQljYXNlIEhQWF9DRkdfVkVORF9DQVA6CS8qIEZhbGwgdGhyb3VnaCAqLwotCWNhc2UgSFBYX0NGR19EVlNFQzoJLyogRmFsbCB0aHJvdWdoICovCi0JZGVmYXVsdDoKLQkJcGNpX3dhcm4oZGV2LCAiRW5jb3VudGVyZWQgX0hQWCB0eXBlIDMgd2l0aCB1bnN1cHBvcnRlZCBjb25maWcgc3BhY2UgbG9jYXRpb24iKTsKLQkJcmV0dXJuOwotCX0KLQotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIHBvcyArIHJlZy0+bWF0Y2hfb2Zmc2V0LCAmbWF0Y2hfcmVnKTsKLQotCWlmICgobWF0Y2hfcmVnICYgcmVnLT5tYXRjaF9tYXNrX2FuZCkgIT0gcmVnLT5tYXRjaF92YWx1ZSkKLQkJcmV0dXJuOwotCi0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgcG9zICsgcmVnLT5yZWdfb2Zmc2V0LCAmd3JpdGVfcmVnKTsKLQlvcmlnX3ZhbHVlID0gd3JpdGVfcmVnOwotCXdyaXRlX3JlZyAmPSByZWctPnJlZ19tYXNrX2FuZDsKLQl3cml0ZV9yZWcgfD0gcmVnLT5yZWdfbWFza19vcjsKLQotCWlmIChvcmlnX3ZhbHVlID09IHdyaXRlX3JlZykKLQkJcmV0dXJuOwotCi0JcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIHBvcyArIHJlZy0+cmVnX29mZnNldCwgd3JpdGVfcmVnKTsKLQotCXBjaV9kYmcoZGV2LCAiQXBwbGllZCBfSFBYMyBhdCBbMHgleF06IDB4JTA4eCAtPiAweCUwOHgiLAotCQlwb3MsIG9yaWdfdmFsdWUsIHdyaXRlX3JlZyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHByb2dyYW1faHB4X3R5cGUzKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHN0cnVjdCBocHhfdHlwZTMgKmhweDMpCi17Ci0JaWYgKCFocHgzKQotCQlyZXR1cm47Ci0KLQlpZiAoIXBjaV9pc19wY2llKGRldikpCi0JCXJldHVybjsKLQotCXByb2dyYW1faHB4X3R5cGUzX3JlZ2lzdGVyKGRldiwgaHB4Myk7Ci19Ci0KIGludCBwY2lfY29uZmlndXJlX2V4dGVuZGVkX3RhZ3Moc3RydWN0IHBjaV9kZXYgKmRldiwgdm9pZCAqaWduKQogewogCXN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmhvc3Q7CkBAIC0yMzY0LDEzICsyMTA3LDYgQEAgc3RhdGljIHZvaWQgcGNpX2NvbmZpZ3VyZV9zZXJyKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAKIHN0YXRpYyB2b2lkIHBjaV9jb25maWd1cmVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0Jc3RhdGljIGNvbnN0IHN0cnVjdCBob3RwbHVnX3Byb2dyYW1fb3BzIGhwX29wcyA9IHsKLQkJLnByb2dyYW1fdHlwZTAgPSBwcm9ncmFtX2hwcF90eXBlMCwKLQkJLnByb2dyYW1fdHlwZTEgPSBwcm9ncmFtX2hwcF90eXBlMSwKLQkJLnByb2dyYW1fdHlwZTIgPSBwcm9ncmFtX2hwcF90eXBlMiwKLQkJLnByb2dyYW1fdHlwZTMgPSBwcm9ncmFtX2hweF90eXBlMywKLQl9OwotCiAJcGNpX2NvbmZpZ3VyZV9tcHMoZGV2KTsKIAlwY2lfY29uZmlndXJlX2V4dGVuZGVkX3RhZ3MoZGV2LCBOVUxMKTsKIAlwY2lfY29uZmlndXJlX3JlbGF4ZWRfb3JkZXJpbmcoZGV2KTsKQEAgLTIzNzgsNyArMjExNCw3IEBAIHN0YXRpYyB2b2lkIHBjaV9jb25maWd1cmVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAJcGNpX2NvbmZpZ3VyZV9lZXRscF9wcmVmaXgoZGV2KTsKIAlwY2lfY29uZmlndXJlX3NlcnIoZGV2KTsKIAotCXBjaV9hY3BpX3Byb2dyYW1faHBfcGFyYW1zKGRldiwgJmhwX29wcyk7CisJcGNpX2FjcGlfcHJvZ3JhbV9ocF9wYXJhbXMoZGV2KTsKIH0KIAogc3RhdGljIHZvaWQgcGNpX3JlbGVhc2VfY2FwYWJpbGl0aWVzKHN0cnVjdCBwY2lfZGV2ICpkZXYpCkBAIC0yNzU5LDEyICsyNDk1LDggQEAgc3RhdGljIGludCBvbmx5X29uZV9jaGlsZChzdHJ1Y3QgcGNpX2J1cyAqYnVzKQogCSAqIEEgUENJZSBEb3duc3RyZWFtIFBvcnQgbm9ybWFsbHkgbGVhZHMgdG8gYSBMaW5rIHdpdGggb25seSBEZXZpY2UKIAkgKiAwIG9uIGl0IChQQ0llIHNwZWMgcjMuMSwgc2VjIDcuMy4xKS4gIEFzIGFuIG9wdGltaXphdGlvbiwgc2NhbgogCSAqIG9ubHkgZm9yIERldmljZSAwIGluIHRoYXQgc2l0dWF0aW9uLgotCSAqCi0JICogQ2hlY2tpbmcgaGFzX3NlY29uZGFyeV9saW5rIGlzIGEgaGFjayB0byBpZGVudGlmeSBEb3duc3RyZWFtCi0JICogUG9ydHMgYmVjYXVzZSBzb21ldGltZXMgU3dpdGNoZXMgYXJlIGNvbmZpZ3VyZWQgc3VjaCB0aGF0IHRoZQotCSAqIFBDSWUgUG9ydCBUeXBlIGxhYmVscyBhcmUgYmFja3dhcmRzLgogCSAqLwotCWlmIChicmlkZ2UgJiYgcGNpX2lzX3BjaWUoYnJpZGdlKSAmJiBicmlkZ2UtPmhhc19zZWNvbmRhcnlfbGluaykKKwlpZiAoYnJpZGdlICYmIHBjaV9pc19wY2llKGJyaWRnZSkgJiYgcGNpZV9kb3duc3RyZWFtX3BvcnQoYnJpZGdlKSkKIAkJcmV0dXJuIDE7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3Byb2MuYyBiL2RyaXZlcnMvcGNpL3Byb2MuYwppbmRleCBmZTdmZTY3Li41NDk1NTM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wcm9jLmMKKysrIGIvZHJpdmVycy9wY2kvcHJvYy5jCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9jYXBhYmlsaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgogI2luY2x1ZGUgInBjaS5oIgogCkBAIC0xMTUsNyArMTE2LDExIEBAIHN0YXRpYyBzc2l6ZV90IHByb2NfYnVzX3BjaV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gUERFX0RBVEEoaW5vKTsKIAlpbnQgcG9zID0gKnBwb3M7CiAJaW50IHNpemUgPSBkZXYtPmNmZ19zaXplOwotCWludCBjbnQ7CisJaW50IGNudCwgcmV0OworCisJcmV0ID0gc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fUENJX0FDQ0VTUyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCWlmIChwb3MgPj0gc2l6ZSkKIAkJcmV0dXJuIDA7CkBAIC0xOTYsNiArMjAxLDEwIEBAIHN0YXRpYyBsb25nIHByb2NfYnVzX3BjaV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwKICNlbmRpZiAvKiBIQVZFX1BDSV9NTUFQICovCiAJaW50IHJldCA9IDA7CiAKKwlyZXQgPSBzZWN1cml0eV9sb2NrZWRfZG93bihMT0NLRE9XTl9QQ0lfQUNDRVNTKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJc3dpdGNoIChjbWQpIHsKIAljYXNlIFBDSUlPQ19DT05UUk9MTEVSOgogCQlyZXQgPSBwY2lfZG9tYWluX25yKGRldi0+YnVzKTsKQEAgLTIzOCw3ICsyNDcsOCBAQCBzdGF0aWMgaW50IHByb2NfYnVzX3BjaV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAlzdHJ1Y3QgcGNpX2ZpbHBfcHJpdmF0ZSAqZnByaXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJaW50IGksIHJldCwgd3JpdGVfY29tYmluZSA9IDAsIHJlc19iaXQgPSBJT1JFU09VUkNFX01FTTsKIAotCWlmICghY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKKwlpZiAoIWNhcGFibGUoQ0FQX1NZU19SQVdJTykgfHwKKwkgICAgc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fUENJX0FDQ0VTUykpCiAJCXJldHVybiAtRVBFUk07CiAKIAlpZiAoZnByaXYtPm1tYXBfc3RhdGUgPT0gcGNpX21tYXBfaW8pIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3F1aXJrcy5jIGIvZHJpdmVycy9wY2kvcXVpcmtzLmMKaW5kZXggNDRjNGFlMS4uMzIwMjU1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcXVpcmtzLmMKKysrIGIvZHJpdmVycy9wY2kvcXVpcmtzLmMKQEAgLTIwLDcgKzIwLDYgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KICNpbmNsdWRlIDxsaW51eC9kbWkuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgva3RpbWUuaD4KQEAgLTI1OTMsNiArMjU5Miw1OSBAQCBERUNMQVJFX1BDSV9GSVhVUF9FQVJMWShQQ0lfVkVORE9SX0lEX05WSURJQSwKIAkJCW52ZW5ldF9tc2lfZGlzYWJsZSk7CiAKIC8qCisgKiBQQ0llIHNwZWMgcjQuMCBzZWMgNy43LjEuMiBhbmQgc2VjIDcuNy4yLjIgc2F5IHRoYXQgaWYgTVNJL01TSS1YIGlzIGVuYWJsZWQsCisgKiB0aGVuIHRoZSBkZXZpY2UgY2FuJ3QgdXNlIElOVHggaW50ZXJydXB0cy4gVGVncmEncyBQQ0llIHJvb3QgcG9ydHMgZG9uJ3QKKyAqIGdlbmVyYXRlIE1TSSBpbnRlcnJ1cHRzIGZvciBQTUUgYW5kIEFFUiBldmVudHMgaW5zdGVhZCBvbmx5IElOVHggaW50ZXJydXB0cworICogYXJlIGdlbmVyYXRlZC4gVGhvdWdoIFRlZ3JhJ3MgUENJZSByb290IHBvcnRzIGNhbiBnZW5lcmF0ZSBNU0kgaW50ZXJydXB0cworICogZm9yIG90aGVyIGV2ZW50cywgc2luY2UgUENJZSBzcGVjaWZpY2lhdGlvbiBkb2Vzbid0IHN1cHBvcnQgdXNpbmcgYSBtaXggb2YKKyAqIElOVHggYW5kIE1TSS9NU0ktWCwgaXQgaXMgcmVxdWlyZWQgdG8gZGlzYWJsZSBNU0kgaW50ZXJydXB0cyB0byBhdm9pZCBwb3J0CisgKiBzZXJ2aWNlIGRyaXZlcnMgcmVnaXN0ZXJpbmcgdGhlaXIgcmVzcGVjdGl2ZSBJU1JzIGZvciBNU0lzLgorICovCitzdGF0aWMgdm9pZCBwY2lfcXVpcmtfbnZpZGlhX3RlZ3JhX2Rpc2FibGVfcnBfbXNpKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJZGV2LT5ub19tc2kgPSAxOworfQorREVDTEFSRV9QQ0lfRklYVVBfQ0xBU1NfRUFSTFkoUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MWFkMCwKKwkJCSAgICAgIFBDSV9DTEFTU19CUklER0VfUENJLCA4LAorCQkJICAgICAgcGNpX3F1aXJrX252aWRpYV90ZWdyYV9kaXNhYmxlX3JwX21zaSk7CitERUNMQVJFX1BDSV9GSVhVUF9DTEFTU19FQVJMWShQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgxYWQxLAorCQkJICAgICAgUENJX0NMQVNTX0JSSURHRV9QQ0ksIDgsCisJCQkgICAgICBwY2lfcXVpcmtfbnZpZGlhX3RlZ3JhX2Rpc2FibGVfcnBfbXNpKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0NMQVNTX0VBUkxZKFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDFhZDIsCisJCQkgICAgICBQQ0lfQ0xBU1NfQlJJREdFX1BDSSwgOCwKKwkJCSAgICAgIHBjaV9xdWlya19udmlkaWFfdGVncmFfZGlzYWJsZV9ycF9tc2kpOworREVDTEFSRV9QQ0lfRklYVVBfQ0xBU1NfRUFSTFkoUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MGJmMCwKKwkJCSAgICAgIFBDSV9DTEFTU19CUklER0VfUENJLCA4LAorCQkJICAgICAgcGNpX3F1aXJrX252aWRpYV90ZWdyYV9kaXNhYmxlX3JwX21zaSk7CitERUNMQVJFX1BDSV9GSVhVUF9DTEFTU19FQVJMWShQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgwYmYxLAorCQkJICAgICAgUENJX0NMQVNTX0JSSURHRV9QQ0ksIDgsCisJCQkgICAgICBwY2lfcXVpcmtfbnZpZGlhX3RlZ3JhX2Rpc2FibGVfcnBfbXNpKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0NMQVNTX0VBUkxZKFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDBlMWMsCisJCQkgICAgICBQQ0lfQ0xBU1NfQlJJREdFX1BDSSwgOCwKKwkJCSAgICAgIHBjaV9xdWlya19udmlkaWFfdGVncmFfZGlzYWJsZV9ycF9tc2kpOworREVDTEFSRV9QQ0lfRklYVVBfQ0xBU1NfRUFSTFkoUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MGUxZCwKKwkJCSAgICAgIFBDSV9DTEFTU19CUklER0VfUENJLCA4LAorCQkJICAgICAgcGNpX3F1aXJrX252aWRpYV90ZWdyYV9kaXNhYmxlX3JwX21zaSk7CitERUNMQVJFX1BDSV9GSVhVUF9DTEFTU19FQVJMWShQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgwZTEyLAorCQkJICAgICAgUENJX0NMQVNTX0JSSURHRV9QQ0ksIDgsCisJCQkgICAgICBwY2lfcXVpcmtfbnZpZGlhX3RlZ3JhX2Rpc2FibGVfcnBfbXNpKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0NMQVNTX0VBUkxZKFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDBlMTMsCisJCQkgICAgICBQQ0lfQ0xBU1NfQlJJREdFX1BDSSwgOCwKKwkJCSAgICAgIHBjaV9xdWlya19udmlkaWFfdGVncmFfZGlzYWJsZV9ycF9tc2kpOworREVDTEFSRV9QQ0lfRklYVVBfQ0xBU1NfRUFSTFkoUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MGZhZSwKKwkJCSAgICAgIFBDSV9DTEFTU19CUklER0VfUENJLCA4LAorCQkJICAgICAgcGNpX3F1aXJrX252aWRpYV90ZWdyYV9kaXNhYmxlX3JwX21zaSk7CitERUNMQVJFX1BDSV9GSVhVUF9DTEFTU19FQVJMWShQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgwZmFmLAorCQkJICAgICAgUENJX0NMQVNTX0JSSURHRV9QQ0ksIDgsCisJCQkgICAgICBwY2lfcXVpcmtfbnZpZGlhX3RlZ3JhX2Rpc2FibGVfcnBfbXNpKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0NMQVNTX0VBUkxZKFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDEwZTUsCisJCQkgICAgICBQQ0lfQ0xBU1NfQlJJREdFX1BDSSwgOCwKKwkJCSAgICAgIHBjaV9xdWlya19udmlkaWFfdGVncmFfZGlzYWJsZV9ycF9tc2kpOworREVDTEFSRV9QQ0lfRklYVVBfQ0xBU1NfRUFSTFkoUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MTBlNiwKKwkJCSAgICAgIFBDSV9DTEFTU19CUklER0VfUENJLCA4LAorCQkJICAgICAgcGNpX3F1aXJrX252aWRpYV90ZWdyYV9kaXNhYmxlX3JwX21zaSk7CisKKy8qCiAgKiBTb21lIHZlcnNpb25zIG9mIHRoZSBNQ1A1NSBicmlkZ2UgZnJvbSBOdmlkaWEgaGF2ZSBhIGxlZ2FjeSBJUlEgcm91dGluZwogICogY29uZmlnIHJlZ2lzdGVyLiAgVGhpcyByZWdpc3RlciBjb250cm9scyB0aGUgcm91dGluZyBvZiBsZWdhY3kKICAqIGludGVycnVwdHMgZnJvbSBkZXZpY2VzIHRoYXQgcm91dGUgdGhyb3VnaCB0aGUgTUNQNTUuICBJZiB0aGlzIHJlZ2lzdGVyCkBAIC0yOTI1LDYgKzI5NzcsMjQgQEAgREVDTEFSRV9QQ0lfRklYVVBfRklOQUwoUENJX1ZFTkRPUl9JRF9BVFRBTlNJQywgMHgxMGExLAogCQkJcXVpcmtfbXNpX2ludHhfZGlzYWJsZV9xY2FfYnVnKTsKIERFQ0xBUkVfUENJX0ZJWFVQX0ZJTkFMKFBDSV9WRU5ET1JfSURfQVRUQU5TSUMsIDB4ZTA5MSwKIAkJCXF1aXJrX21zaV9pbnR4X2Rpc2FibGVfcWNhX2J1Zyk7CisKKy8qCisgKiBBbWF6b24ncyBBbm5hcHVybmEgTGFicyAxYzM2OjAwMzEgUm9vdCBQb3J0cyBkb24ndCBzdXBwb3J0IE1TSS1YLCBzbyBpdAorICogc2hvdWxkIGJlIGRpc2FibGVkIG9uIHBsYXRmb3JtcyB3aGVyZSB0aGUgZGV2aWNlIChtaXN0YWtlbmx5KSBhZHZlcnRpc2VzIGl0LgorICoKKyAqIE5vdGljZSB0aGF0IHRoaXMgcXVpcmsgYWxzbyBkaXNhYmxlcyBNU0kgKHdoaWNoIG1heSB3b3JrLCBidXQgaGFzbid0IGJlZW4KKyAqIHRlc3RlZCksIHNpbmNlIGN1cnJlbnRseSB0aGVyZSBpcyBubyBzdGFuZGFyZCB3YXkgdG8gZGlzYWJsZSBvbmx5IE1TSS1YLgorICoKKyAqIFRoZSAwMDMxIGRldmljZSBpZCBpcyByZXVzZWQgZm9yIG90aGVyIG5vbiBSb290IFBvcnQgZGV2aWNlIHR5cGVzLAorICogdGhlcmVmb3JlIHRoZSBxdWlyayBpcyByZWdpc3RlcmVkIGZvciB0aGUgUENJX0NMQVNTX0JSSURHRV9QQ0kgY2xhc3MuCisgKi8KK3N0YXRpYyB2b2lkIHF1aXJrX2FsX21zaV9kaXNhYmxlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJZGV2LT5ub19tc2kgPSAxOworCXBjaV93YXJuKGRldiwgIkRpc2FibGluZyBNU0kvTVNJLVhcbiIpOworfQorREVDTEFSRV9QQ0lfRklYVVBfQ0xBU1NfRklOQUwoUENJX1ZFTkRPUl9JRF9BTUFaT05fQU5OQVBVUk5BX0xBQlMsIDB4MDAzMSwKKwkJCSAgICAgIFBDSV9DTEFTU19CUklER0VfUENJLCA4LCBxdWlya19hbF9tc2lfZGlzYWJsZSk7CiAjZW5kaWYgLyogQ09ORklHX1BDSV9NU0kgKi8KIAogLyoKQEAgLTQzNjYsNiArNDQzNiwyNCBAQCBzdGF0aWMgaW50IHBjaV9xdWlya19xY29tX3JwX2FjcyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1MTYgYWNzX2ZsYWdzKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgcGNpX3F1aXJrX2FsX2FjcyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1MTYgYWNzX2ZsYWdzKQoreworCWlmIChwY2lfcGNpZV90eXBlKGRldikgIT0gUENJX0VYUF9UWVBFX1JPT1RfUE9SVCkKKwkJcmV0dXJuIC1FTk9UVFk7CisKKwkvKgorCSAqIEFtYXpvbidzIEFubmFwdXJuYSBMYWJzIHJvb3QgcG9ydHMgZG9uJ3QgaW5jbHVkZSBhbiBBQ1MgY2FwYWJpbGl0eSwKKwkgKiBidXQgZG8gaW5jbHVkZSBBQ1MtbGlrZSBmdW5jdGlvbmFsaXR5LiBUaGUgaGFyZHdhcmUgZG9lc24ndCBzdXBwb3J0CisJICogcGVlci10by1wZWVyIHRyYW5zYWN0aW9ucyB2aWEgdGhlIHJvb3QgcG9ydCBhbmQgZWFjaCBoYXMgYSB1bmlxdWUKKwkgKiBzZWdtZW50IG51bWJlci4KKwkgKgorCSAqIEFkZGl0aW9uYWxseSwgdGhlIHJvb3QgcG9ydHMgY2Fubm90IHNlbmQgdHJhZmZpYyB0byBlYWNoIG90aGVyLgorCSAqLworCWFjc19mbGFncyAmPSB+KFBDSV9BQ1NfU1YgfCBQQ0lfQUNTX1JSIHwgUENJX0FDU19DUiB8IFBDSV9BQ1NfVUYpOworCisJcmV0dXJuIGFjc19mbGFncyA/IDAgOiAxOworfQorCiAvKgogICogU3VucmlzZSBQb2ludCBQQ0ggcm9vdCBwb3J0cyBpbXBsZW1lbnQgQUNTLCBidXQgdW5mb3J0dW5hdGVseSBhcyBzaG93biBpbgogICogdGhlIGRhdGFzaGVldCAoSW50ZWwgMTAwIFNlcmllcyBDaGlwc2V0IEZhbWlseSBQQ0ggRGF0YXNoZWV0LCBWb2wuIDIsCkBAIC00NDY2LDYgKzQ1NTQsMTkgQEAgc3RhdGljIGludCBwY2lfcXVpcmtfbWZfZW5kcG9pbnRfYWNzKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHUxNiBhY3NfZmxhZ3MpCiAJcmV0dXJuIGFjc19mbGFncyA/IDAgOiAxOwogfQogCitzdGF0aWMgaW50IHBjaV9xdWlya19icmNtX2FjcyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1MTYgYWNzX2ZsYWdzKQoreworCS8qCisJICogaVByb2MgUEFYQiBSb290IFBvcnRzIGRvbid0IGFkdmVydGlzZSBhbiBBQ1MgY2FwYWJpbGl0eSwgYnV0CisJICogdGhleSBkbyBub3QgYWxsb3cgcGVlci10by1wZWVyIHRyYW5zYWN0aW9ucyBiZXR3ZWVuIFJvb3QgUG9ydHMuCisJICogQWxsb3cgZWFjaCBSb290IFBvcnQgdG8gYmUgaW4gYSBzZXBhcmF0ZSBJT01NVSBncm91cCBieSBtYXNraW5nCisJICogU1YvUlIvQ1IvVUYgYml0cy4KKwkgKi8KKwlhY3NfZmxhZ3MgJj0gfihQQ0lfQUNTX1NWIHwgUENJX0FDU19SUiB8IFBDSV9BQ1NfQ1IgfCBQQ0lfQUNTX1VGKTsKKworCXJldHVybiBhY3NfZmxhZ3MgPyAwIDogMTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2X2Fjc19lbmFibGVkIHsKIAl1MTYgdmVuZG9yOwogCXUxNiBkZXZpY2U7CkBAIC00NTU5LDYgKzQ2NjAsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZfYWNzX2VuYWJsZWQgewogCXsgUENJX1ZFTkRPUl9JRF9BTVBFUkUsIDB4RTAwQSwgcGNpX3F1aXJrX3hnZW5lX2FjcyB9LAogCXsgUENJX1ZFTkRPUl9JRF9BTVBFUkUsIDB4RTAwQiwgcGNpX3F1aXJrX3hnZW5lX2FjcyB9LAogCXsgUENJX1ZFTkRPUl9JRF9BTVBFUkUsIDB4RTAwQywgcGNpX3F1aXJrX3hnZW5lX2FjcyB9LAorCXsgUENJX1ZFTkRPUl9JRF9CUk9BRENPTSwgMHhENzE0LCBwY2lfcXVpcmtfYnJjbV9hY3MgfSwKKwkvKiBBbWF6b24gQW5uYXB1cm5hIExhYnMgKi8KKwl7IFBDSV9WRU5ET1JfSURfQU1BWk9OX0FOTkFQVVJOQV9MQUJTLCAweDAwMzEsIHBjaV9xdWlya19hbF9hY3MgfSwKIAl7IDAgfQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvc2VhcmNoLmMgYi9kcml2ZXJzL3BjaS9zZWFyY2guYwppbmRleCA3ZjRlNjU4Li5iYWRlMTQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9zZWFyY2guYworKysgYi9kcml2ZXJzL3BjaS9zZWFyY2guYwpAQCAtMTUsNyArMTUsNiBAQAogI2luY2x1ZGUgInBjaS5oIgogCiBERUNMQVJFX1JXU0VNKHBjaV9idXNfc2VtKTsKLUVYUE9SVF9TWU1CT0xfR1BMKHBjaV9idXNfc2VtKTsKIAogLyoKICAqIHBjaV9mb3JfZWFjaF9kbWFfYWxpYXMgLSBJdGVyYXRlIG92ZXIgRE1BIGFsaWFzZXMgZm9yIGEgZGV2aWNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYyBiL2RyaXZlcnMvcGNpL3NldHVwLWJ1cy5jCmluZGV4IDc5YjFmYTYuLmU3ZGJlMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3NldHVwLWJ1cy5jCisrKyBiL2RyaXZlcnMvcGNpL3NldHVwLWJ1cy5jCkBAIC0xNjYyLDggKzE2NjIsOCBAQCBzdGF0aWMgaW50IGlvdl9yZXNvdXJjZXNfdW5hc3NpZ25lZChzdHJ1Y3QgcGNpX2RldiAqZGV2LCB2b2lkICpkYXRhKQogCWludCBpOwogCWJvb2wgKnVuYXNzaWduZWQgPSBkYXRhOwogCi0JZm9yIChpID0gUENJX0lPVl9SRVNPVVJDRVM7IGkgPD0gUENJX0lPVl9SRVNPVVJDRV9FTkQ7IGkrKykgewotCQlzdHJ1Y3QgcmVzb3VyY2UgKnIgPSAmZGV2LT5yZXNvdXJjZVtpXTsKKwlmb3IgKGkgPSAwOyBpIDwgUENJX1NSSU9WX05VTV9CQVJTOyBpKyspIHsKKwkJc3RydWN0IHJlc291cmNlICpyID0gJmRldi0+cmVzb3VyY2VbaSArIFBDSV9JT1ZfUkVTT1VSQ0VTXTsKIAkJc3RydWN0IHBjaV9idXNfcmVnaW9uIHJlZ2lvbjsKIAogCQkvKiBOb3QgYXNzaWduZWQgb3IgcmVqZWN0ZWQgYnkga2VybmVsPyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvc3lzY2FsbC5jIGIvZHJpdmVycy9wY2kvc3lzY2FsbC5jCmluZGV4IGQ5NjYyNmMuLjMxZTM5NTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3N5c2NhbGwuYworKysgYi9kcml2ZXJzL3BjaS9zeXNjYWxsLmMKQEAgLTcsNiArNyw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvc3lzY2FsbHMuaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAjaW5jbHVkZSAicGNpLmgiCkBAIC05MCw3ICs5MSw4IEBAIFNZU0NBTExfREVGSU5FNShwY2ljb25maWdfd3JpdGUsIHVuc2lnbmVkIGxvbmcsIGJ1cywgdW5zaWduZWQgbG9uZywgZGZuLAogCXUzMiBkd29yZDsKIAlpbnQgZXJyID0gMDsKIAotCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKKwlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikgfHwKKwkgICAgc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fUENJX0FDQ0VTUykpCiAJCXJldHVybiAtRVBFUk07CiAKIAlkZXYgPSBwY2lfZ2V0X2RvbWFpbl9idXNfYW5kX3Nsb3QoMCwgYnVzLCBkZm4pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvdmMuYyBiL2RyaXZlcnMvcGNpL3ZjLmMKaW5kZXggNWFjZDljMC4uNTQ4NmY4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvdmMuYworKysgYi9kcml2ZXJzL3BjaS92Yy5jCkBAIC0xMyw2ICsxMyw4IEBACiAjaW5jbHVkZSA8bGludXgvcGNpX3JlZ3MuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCisjaW5jbHVkZSAicGNpLmgiCisKIC8qKgogICogcGNpX3ZjX3NhdmVfcmVzdG9yZV9kd29yZHMgLSBTYXZlIG9yIHJlc3RvcmUgYSBzZXJpZXMgb2YgZHdvcmRzCiAgKiBAZGV2OiBkZXZpY2UKQEAgLTEwNSw3ICsxMDcsNyBAQCBzdGF0aWMgdm9pZCBwY2lfdmNfZW5hYmxlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwb3MsIGludCByZXMpCiAJc3RydWN0IHBjaV9kZXYgKmxpbmsgPSBOVUxMOwogCiAJLyogRW5hYmxlIFZDcyBmcm9tIHRoZSBkb3duc3RyZWFtIGRldmljZSAqLwotCWlmICghZGV2LT5oYXNfc2Vjb25kYXJ5X2xpbmspCisJaWYgKCFwY2lfaXNfcGNpZShkZXYpIHx8ICFwY2llX2Rvd25zdHJlYW1fcG9ydChkZXYpKQogCQlyZXR1cm47CiAKIAljdHJsX3BvcyA9IHBvcyArIFBDSV9WQ19SRVNfQ1RSTCArIChyZXMgKiBQQ0lfQ0FQX1ZDX1BFUl9WQ19TSVpFT0YpOwpAQCAtNDA5LDcgKzQxMSw2IEBAIHZvaWQgcGNpX3Jlc3RvcmVfdmNfc3RhdGUoc3RydWN0IHBjaV9kZXYgKmRldikKICAqIEZvciBlYWNoIHR5cGUgb2YgVkMgY2FwYWJpbGl0eSwgVkMvVkM5L01GVkMsIGZpbmQgdGhlIGNhcGFiaWxpdHksIHNpemUKICAqIGl0LCBhbmQgYWxsb2NhdGUgYSBidWZmZXIgZm9yIHNhdmUvcmVzdG9yZS4KICAqLwotCiB2b2lkIHBjaV9hbGxvY2F0ZV92Y19zYXZlX2J1ZmZlcnMoc3RydWN0IHBjaV9kZXYgKmRldikKIHsKIAlpbnQgaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3ZwZC5jIGIvZHJpdmVycy9wY2kvdnBkLmMKaW5kZXggNDk2M2MyZTIuLjc5MTVkMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3ZwZC5jCisrKyBiL2RyaXZlcnMvcGNpL3ZwZC5jCkBAIC01NzEsNiArNTcxLDEyIEBAIERFQ0xBUkVfUENJX0ZJWFVQX0ZJTkFMKFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCAweDAwNWYsIHF1aXJrX2JsYWNrbGlzdF92cGQpOwogREVDTEFSRV9QQ0lfRklYVVBfRklOQUwoUENJX1ZFTkRPUl9JRF9BVFRBTlNJQywgUENJX0FOWV9JRCwKIAkJcXVpcmtfYmxhY2tsaXN0X3ZwZCk7CiBERUNMQVJFX1BDSV9GSVhVUF9GSU5BTChQQ0lfVkVORE9SX0lEX1FMT0dJQywgMHgyMjYxLCBxdWlya19ibGFja2xpc3RfdnBkKTsKKy8qCisgKiBUaGUgQW1hem9uIEFubmFwdXJuYSBMYWJzIDB4MDAzMSBkZXZpY2UgaWQgaXMgcmV1c2VkIGZvciBvdGhlciBub24gUm9vdCBQb3J0CisgKiBkZXZpY2UgdHlwZXMsIHNvIHRoZSBxdWlyayBpcyByZWdpc3RlcmVkIGZvciB0aGUgUENJX0NMQVNTX0JSSURHRV9QQ0kgY2xhc3MuCisgKi8KK0RFQ0xBUkVfUENJX0ZJWFVQX0NMQVNTX0ZJTkFMKFBDSV9WRU5ET1JfSURfQU1BWk9OX0FOTkFQVVJOQV9MQUJTLCAweDAwMzEsCisJCQkgICAgICBQQ0lfQ0xBU1NfQlJJREdFX1BDSSwgOCwgcXVpcmtfYmxhY2tsaXN0X3ZwZCk7CiAKIC8qCiAgKiBGb3IgQnJvYWRjb20gNTcwNiwgNTcwOCwgNTcwOSByZXYuIEEgbmljcywgYW55IHJlYWQgYmV5b25kIHRoZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvY2lzdHBsLmMgYi9kcml2ZXJzL3BjbWNpYS9jaXN0cGwuYwppbmRleCBhYmQwMjk5Li42MjkzNTlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9jaXN0cGwuYworKysgYi9kcml2ZXJzL3BjbWNpYS9jaXN0cGwuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CiAjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgogCkBAIC0xNTc1LDYgKzE1NzYsMTAgQEAgc3RhdGljIHNzaXplX3QgcGNjYXJkX3N0b3JlX2NpcyhzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnM7CiAJaW50IGVycm9yOwogCisJZXJyb3IgPSBzZWN1cml0eV9sb2NrZWRfZG93bihMT0NLRE9XTl9QQ01DSUFfQ0lTKTsKKwlpZiAoZXJyb3IpCisJCXJldHVybiBlcnJvcjsKKwogCXMgPSB0b19zb2NrZXQoY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBkZXZpY2UsIGtvYmopKTsKIAogCWlmIChvZmYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9tb3Rvcm9sYS9waHktY3BjYXAtdXNiLmMgYi9kcml2ZXJzL3BoeS9tb3Rvcm9sYS9waHktY3BjYXAtdXNiLmMKaW5kZXggNjYwMWFkMC4uZWFkMDZjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waHkvbW90b3JvbGEvcGh5LWNwY2FwLXVzYi5jCisrKyBiL2RyaXZlcnMvcGh5L21vdG9yb2xhL3BoeS1jcGNhcC11c2IuYwpAQCAtMjMxLDggKzIzMSw5IEBAIHN0YXRpYyB2b2lkIGNwY2FwX3VzYl9kZXRlY3Qoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQkJZ290byBvdXRfZXJyOwogCiAJCWVycm9yID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRkYXRhLT5yZWcsIENQQ0FQX1JFR19VU0JDMywKLQkJCQkJICAgQ1BDQVBfQklUX1ZCVVNTVEJZX0VOLAotCQkJCQkgICBDUENBUF9CSVRfVkJVU1NUQllfRU4pOworCQkJCQkgICBDUENBUF9CSVRfVkJVU1NUQllfRU4gfAorCQkJCQkgICBDUENBUF9CSVRfVkJVU0VOX1NQSSwKKwkJCQkJICAgQ1BDQVBfQklUX1ZCVVNFTl9TUEkpOwogCQlpZiAoZXJyb3IpCiAJCQlnb3RvIG91dF9lcnI7CiAKQEAgLTI0MCw3ICsyNDEsOCBAQCBzdGF0aWMgdm9pZCBjcGNhcF91c2JfZGV0ZWN0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAl9CiAKIAllcnJvciA9IHJlZ21hcF91cGRhdGVfYml0cyhkZGF0YS0+cmVnLCBDUENBUF9SRUdfVVNCQzMsCi0JCQkJICAgQ1BDQVBfQklUX1ZCVVNTVEJZX0VOLCAwKTsKKwkJCQkgICBDUENBUF9CSVRfVkJVU1NUQllfRU4gfAorCQkJCSAgIENQQ0FQX0JJVF9WQlVTRU5fU1BJLCAwKTsKIAlpZiAoZXJyb3IpCiAJCWdvdG8gb3V0X2VycjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvdGVncmEvS2NvbmZpZyBiL2RyaXZlcnMvcGh5L3RlZ3JhL0tjb25maWcKaW5kZXggZTUxNjk2Ny4uZjk4MTdjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9waHkvdGVncmEvS2NvbmZpZworKysgYi9kcml2ZXJzL3BoeS90ZWdyYS9LY29uZmlnCkBAIC03LDMgKzcsMTAgQEAKIAogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsCiAJICBiZSBjYWxsZWQgcGh5LXRlZ3JhLXh1c2IuCisKK2NvbmZpZyBQSFlfVEVHUkExOTRfUDJVCisJdHJpc3RhdGUgIk5WSURJQSBUZWdyYTE5NCBQSVBFMlVQSFkgUEhZIGRyaXZlciIKKwlkZXBlbmRzIG9uIEFSQ0hfVEVHUkFfMTk0X1NPQyB8fCBDT01QSUxFX1RFU1QKKwlzZWxlY3QgR0VORVJJQ19QSFkKKwloZWxwCisJICBFbmFibGUgdGhpcyB0byBzdXBwb3J0IHRoZSBQMlUgKFBJUEUgdG8gVVBIWSkgdGhhdCBpcyBwYXJ0IG9mIFRlZ3JhIDE5eCBTT0NzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvdGVncmEvTWFrZWZpbGUgYi9kcml2ZXJzL3BoeS90ZWdyYS9NYWtlZmlsZQppbmRleCA2NGNjYWVhLi4zMjBkZDM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BoeS90ZWdyYS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3BoeS90ZWdyYS9NYWtlZmlsZQpAQCAtNiwzICs2LDQgQEAKIHBoeS10ZWdyYS14dXNiLSQoQ09ORklHX0FSQ0hfVEVHUkFfMTMyX1NPQykgKz0geHVzYi10ZWdyYTEyNC5vCiBwaHktdGVncmEteHVzYi0kKENPTkZJR19BUkNIX1RFR1JBXzIxMF9TT0MpICs9IHh1c2ItdGVncmEyMTAubwogcGh5LXRlZ3JhLXh1c2ItJChDT05GSUdfQVJDSF9URUdSQV8xODZfU09DKSArPSB4dXNiLXRlZ3JhMTg2Lm8KK29iai0kKENPTkZJR19QSFlfVEVHUkExOTRfUDJVKSArPSBwaHktdGVncmExOTQtcDJ1Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L3RlZ3JhL3BoeS10ZWdyYTE5NC1wMnUuYyBiL2RyaXZlcnMvcGh5L3RlZ3JhL3BoeS10ZWdyYTE5NC1wMnUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDQyYmVkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9waHkvdGVncmEvcGh5LXRlZ3JhMTk0LXAydS5jCkBAIC0wLDAgKzEsMTIwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKKy8qCisgKiBQMlUgKFBJUEUgdG8gVVBIWSkgZHJpdmVyIGZvciBUZWdyYSBUMTk0IFNvQworICoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBOVklESUEgQ29ycG9yYXRpb24uCisgKgorICogQXV0aG9yOiBWaWR5YSBTYWdhciA8dmlkeWFzQG52aWRpYS5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KKworI2RlZmluZSBQMlVfUEVSSU9ESUNfRVFfQ1RSTF9HRU4zCTB4YzAKKyNkZWZpbmUgUDJVX1BFUklPRElDX0VRX0NUUkxfR0VOM19QRVJJT0RJQ19FUV9FTgkJQklUKDApCisjZGVmaW5lIFAyVV9QRVJJT0RJQ19FUV9DVFJMX0dFTjNfSU5JVF9QUkVTRVRfRVFfVFJBSU5fRU4JQklUKDEpCisjZGVmaW5lIFAyVV9QRVJJT0RJQ19FUV9DVFJMX0dFTjQJMHhjNAorI2RlZmluZSBQMlVfUEVSSU9ESUNfRVFfQ1RSTF9HRU40X0lOSVRfUFJFU0VUX0VRX1RSQUlOX0VOCUJJVCgxKQorCisjZGVmaW5lIFAyVV9SWF9ERUJPVU5DRV9USU1FCQkJCTB4YTQKKyNkZWZpbmUgUDJVX1JYX0RFQk9VTkNFX1RJTUVfREVCT1VOQ0VfVElNRVJfTUFTSwkweGZmZmYKKyNkZWZpbmUgUDJVX1JYX0RFQk9VTkNFX1RJTUVfREVCT1VOQ0VfVElNRVJfVkFMCQkxNjAKKworc3RydWN0IHRlZ3JhX3AydSB7CisJdm9pZCBfX2lvbWVtICpiYXNlOworfTsKKworc3RhdGljIGlubGluZSB2b2lkIHAydV93cml0ZWwoc3RydWN0IHRlZ3JhX3AydSAqcGh5LCBjb25zdCB1MzIgdmFsdWUsCisJCQkgICAgICBjb25zdCB1MzIgcmVnKQoreworCXdyaXRlbF9yZWxheGVkKHZhbHVlLCBwaHktPmJhc2UgKyByZWcpOworfQorCitzdGF0aWMgaW5saW5lIHUzMiBwMnVfcmVhZGwoc3RydWN0IHRlZ3JhX3AydSAqcGh5LCBjb25zdCB1MzIgcmVnKQoreworCXJldHVybiByZWFkbF9yZWxheGVkKHBoeS0+YmFzZSArIHJlZyk7Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcDJ1X3Bvd2VyX29uKHN0cnVjdCBwaHkgKngpCit7CisJc3RydWN0IHRlZ3JhX3AydSAqcGh5ID0gcGh5X2dldF9kcnZkYXRhKHgpOworCXUzMiB2YWw7CisKKwl2YWwgPSBwMnVfcmVhZGwocGh5LCBQMlVfUEVSSU9ESUNfRVFfQ1RSTF9HRU4zKTsKKwl2YWwgJj0gflAyVV9QRVJJT0RJQ19FUV9DVFJMX0dFTjNfUEVSSU9ESUNfRVFfRU47CisJdmFsIHw9IFAyVV9QRVJJT0RJQ19FUV9DVFJMX0dFTjNfSU5JVF9QUkVTRVRfRVFfVFJBSU5fRU47CisJcDJ1X3dyaXRlbChwaHksIHZhbCwgUDJVX1BFUklPRElDX0VRX0NUUkxfR0VOMyk7CisKKwl2YWwgPSBwMnVfcmVhZGwocGh5LCBQMlVfUEVSSU9ESUNfRVFfQ1RSTF9HRU40KTsKKwl2YWwgfD0gUDJVX1BFUklPRElDX0VRX0NUUkxfR0VONF9JTklUX1BSRVNFVF9FUV9UUkFJTl9FTjsKKwlwMnVfd3JpdGVsKHBoeSwgdmFsLCBQMlVfUEVSSU9ESUNfRVFfQ1RSTF9HRU40KTsKKworCXZhbCA9IHAydV9yZWFkbChwaHksIFAyVV9SWF9ERUJPVU5DRV9USU1FKTsKKwl2YWwgJj0gflAyVV9SWF9ERUJPVU5DRV9USU1FX0RFQk9VTkNFX1RJTUVSX01BU0s7CisJdmFsIHw9IFAyVV9SWF9ERUJPVU5DRV9USU1FX0RFQk9VTkNFX1RJTUVSX1ZBTDsKKwlwMnVfd3JpdGVsKHBoeSwgdmFsLCBQMlVfUlhfREVCT1VOQ0VfVElNRSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlfb3BzIG9wcyA9IHsKKwkucG93ZXJfb24gPSB0ZWdyYV9wMnVfcG93ZXJfb24sCisJLm93bmVyID0gVEhJU19NT0RVTEUsCit9OworCitzdGF0aWMgaW50IHRlZ3JhX3AydV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBwaHlfcHJvdmlkZXIgKnBoeV9wcm92aWRlcjsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBwaHkgKmdlbmVyaWNfcGh5OworCXN0cnVjdCB0ZWdyYV9wMnUgKnBoeTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKworCXBoeSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcGh5KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwaHkpCisJCXJldHVybiAtRU5PTUVNOworCisJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShwZGV2LCBJT1JFU09VUkNFX01FTSwgImN0bCIpOworCXBoeS0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7CisJaWYgKElTX0VSUihwaHktPmJhc2UpKQorCQlyZXR1cm4gUFRSX0VSUihwaHktPmJhc2UpOworCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcGh5KTsKKworCWdlbmVyaWNfcGh5ID0gZGV2bV9waHlfY3JlYXRlKGRldiwgTlVMTCwgJm9wcyk7CisJaWYgKElTX0VSUihnZW5lcmljX3BoeSkpCisJCXJldHVybiBQVFJfRVJSKGdlbmVyaWNfcGh5KTsKKworCXBoeV9zZXRfZHJ2ZGF0YShnZW5lcmljX3BoeSwgcGh5KTsKKworCXBoeV9wcm92aWRlciA9IGRldm1fb2ZfcGh5X3Byb3ZpZGVyX3JlZ2lzdGVyKGRldiwgb2ZfcGh5X3NpbXBsZV94bGF0ZSk7CisJaWYgKElTX0VSUihwaHlfcHJvdmlkZXIpKQorCQlyZXR1cm4gUFRSX0VSUihwaHlfcHJvdmlkZXIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRlZ3JhX3AydV9pZF90YWJsZVtdID0geworCXsKKwkJLmNvbXBhdGlibGUgPSAibnZpZGlhLHRlZ3JhMTk0LXAydSIsCisJfSwKKwl7fQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRlZ3JhX3AydV9pZF90YWJsZSk7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHRlZ3JhX3AydV9kcml2ZXIgPSB7CisJLnByb2JlID0gdGVncmFfcDJ1X3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gInRlZ3JhMTk0LXAydSIsCisJCS5vZl9tYXRjaF90YWJsZSA9IHRlZ3JhX3AydV9pZF90YWJsZSwKKwl9LAorfTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIodGVncmFfcDJ1X2RyaXZlcik7CisKK01PRFVMRV9BVVRIT1IoIlZpZHlhIFNhZ2FyIDx2aWR5YXNAbnZpZGlhLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiTlZJRElBIFRlZ3JhMTk0IFBJUEUyVVBIWSBQSFkgZHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS90aS9waHktYW02NTQtc2VyZGVzLmMgYi9kcml2ZXJzL3BoeS90aS9waHktYW02NTQtc2VyZGVzLmMKaW5kZXggZjE0ZjFmMC4uODhhMDQ3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waHkvdGkvcGh5LWFtNjU0LXNlcmRlcy5jCisrKyBiL2RyaXZlcnMvcGh5L3RpL3BoeS1hbTY1NC1zZXJkZXMuYwpAQCAtMzM1LDYgKzMzNSw3IEBAIHN0YXRpYyBpbnQgc2VyZGVzX2FtNjU0X2Nsa19tdXhfc2V0X3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpodywgdTggaW5kZXgpCiB7CiAJc3RydWN0IHNlcmRlc19hbTY1NF9jbGtfbXV4ICptdXggPSB0b19zZXJkZXNfYW02NTRfY2xrX211eChodyk7CiAJc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gbXV4LT5yZWdtYXA7CisJY29uc3QgY2hhciAqbmFtZSA9IGNsa19od19nZXRfbmFtZShodyk7CiAJdW5zaWduZWQgaW50IHJlZyA9IG11eC0+cmVnOwogCWludCBjbGtfaWQgPSBtdXgtPmNsa19pZDsKIAlpbnQgcGFyZW50c1tTRVJERVNfTlVNX0NMT0NLU107CkBAIC0zNzQsOCArMzc1LDcgQEAgc3RhdGljIGludCBzZXJkZXNfYW02NTRfY2xrX211eF9zZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3LCB1OCBpbmRleCkKIAkJICogVGhpcyBjYW4gbmV2ZXIgaGFwcGVuLCB1bmxlc3Mgd2UgbWlzc2VkCiAJCSAqIGEgdmFsaWQgY29tYmluYXRpb24gaW4gc2VyZGVzX2FtNjU0X211eF90YWJsZS4KIAkJICovCi0JCVdBUk4oMSwgIkZhaWxlZCB0byBmaW5kIHRoZSBwYXJlbnQgb2YgJXMgY2xvY2tcbiIsCi0JCSAgICAgaHctPmluaXQtPm5hbWUpOworCQlXQVJOKDEsICJGYWlsZWQgdG8gZmluZCB0aGUgcGFyZW50IG9mICVzIGNsb2NrXG4iLCBuYW1lKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL0tjb25maWcgYi9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL0tjb25maWcKaW5kZXggNGNmNTQxNy4uZGU4YjE4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9LY29uZmlnCisrKyBiL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvS2NvbmZpZwpAQCAtMjMsMyArMjMsMTEgQEAKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGVuYWJsZSBwaW4gY29udHJvbGxlciBzdXBwb3J0IGZvciBBc3BlZWQncyA1dGgKIAkgIGdlbmVyYXRpb24gU29Dcy4gR1BJTyBpcyBwcm92aWRlZCBieSBhIHNlcGFyYXRlIEdQSU8gZHJpdmVyLgorCitjb25maWcgUElOQ1RSTF9BU1BFRURfRzYKKwlib29sICJBc3BlZWQgRzYgU29DIHBpbiBjb250cm9sIgorCWRlcGVuZHMgb24gKE1BQ0hfQVNQRUVEX0c2IHx8IENPTVBJTEVfVEVTVCkgJiYgT0YKKwlzZWxlY3QgUElOQ1RSTF9BU1BFRUQKKwloZWxwCisJICBTYXkgWSBoZXJlIHRvIGVuYWJsZSBwaW4gY29udHJvbGxlciBzdXBwb3J0IGZvciBBc3BlZWQncyA2dGgKKwkgIGdlbmVyYXRpb24gU29Dcy4gR1BJTyBpcyBwcm92aWRlZCBieSBhIHNlcGFyYXRlIEdQSU8gZHJpdmVyLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9NYWtlZmlsZSBiL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvTWFrZWZpbGUKaW5kZXggZWE4OTYyNi4uNDg5ZWExNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL01ha2VmaWxlCkBAIC01LDMgKzUsNCBAQAogb2JqLSQoQ09ORklHX1BJTkNUUkxfQVNQRUVEKQkrPSBwaW5jdHJsLWFzcGVlZC5vIHBpbm11eC1hc3BlZWQubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQVNQRUVEX0c0KQkrPSBwaW5jdHJsLWFzcGVlZC1nNC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9BU1BFRURfRzUpCSs9IHBpbmN0cmwtYXNwZWVkLWc1Lm8KK29iai0kKENPTkZJR19QSU5DVFJMX0FTUEVFRF9HNikJKz0gcGluY3RybC1hc3BlZWQtZzYubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9waW5jdHJsLWFzcGVlZC1nNC5jIGIvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9waW5jdHJsLWFzcGVlZC1nNC5jCmluZGV4IDIyMjU2NTcuLjk1ZWE1OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvcGluY3RybC1hc3BlZWQtZzQuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3BpbmN0cmwtYXNwZWVkLWc0LmMKQEAgLTIxLDYgKzIxLDEzIEBACiAjaW5jbHVkZSAicGlubXV4LWFzcGVlZC5oIgogI2luY2x1ZGUgInBpbmN0cmwtYXNwZWVkLmgiCiAKKy8qIFdyYXAgc29tZSBvZiB0aGUgY29tbW9uIG1hY3JvcyBmb3IgY2xhcml0eSAqLworI2RlZmluZSBTSUdfRVhQUl9ERUNMX1NJTkdMRShzaWcsIGZ1bmMsIC4uLikgXAorCVNJR19FWFBSX0RFQ0woc2lnLCBmdW5jLCBmdW5jLCBfX1ZBX0FSR1NfXykKKworI2RlZmluZSBTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFIFNJR19FWFBSX0xJU1RfREVDTF9TRVNHCisjZGVmaW5lIFNJR19FWFBSX0xJU1RfREVDTF9EVUFMIFNJR19FWFBSX0xJU1RfREVDTF9ERVNHCisKIC8qCiAgKiBUaGUgIk11bHRpLWZ1bmN0aW9uIFBpbnMgTWFwcGluZyBhbmQgQ29udHJvbCIgdGFibGUgaW4gdGhlIFNvQyBkYXRhc2hlZXQKICAqIHJlZmVyZW5jZXMgcmVnaXN0ZXJzIGJ5IHRoZSBkZXZpY2Uvb2Zmc2V0IG1uZW1vbmljLiBUaGUgcmVnaXN0ZXIgbWFjcm9zCkBAIC04MCwxNiArODcsMTYgQEAgU1NTRl9QSU5fREVDTChFNiwgR1BJT0EzLCBUSU1FUjQsIFNJR19ERVNDX1NFVChTQ1U4MCwgMykpOwogI2RlZmluZSBJMkM5X0RFU0MJU0lHX0RFU0NfU0VUKFNDVTkwLCAyMikKIAogI2RlZmluZSBDNSA0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNDTDksIEkyQzksIEkyQzlfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFRJTUVSNSwgVElNRVI1LCBTSUdfREVTQ19TRVQoU0NVODAsIDQpKTsKLU1TX1BJTl9ERUNMKEM1LCBHUElPQTQsIFNDTDksIFRJTUVSNSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEM1LCBTQ0w5LCBJMkM5LCBJMkM5X0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDNSwgVElNRVI1LCBUSU1FUjUsIFNJR19ERVNDX1NFVChTQ1U4MCwgNCkpOworUElOX0RFQ0xfMihDNSwgR1BJT0E0LCBTQ0w5LCBUSU1FUjUpOwogCiBGVU5DX0dST1VQX0RFQ0woVElNRVI1LCBDNSk7CiAKICNkZWZpbmUgQjQgNQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTREE5LCBJMkM5LCBJMkM5X0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUSU1FUjYsIFRJTUVSNiwgU0lHX0RFU0NfU0VUKFNDVTgwLCA1KSk7Ci1NU19QSU5fREVDTChCNCwgR1BJT0E1LCBTREE5LCBUSU1FUjYpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCNCwgU0RBOSwgSTJDOSwgSTJDOV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjQsIFRJTUVSNiwgVElNRVI2LCBTSUdfREVTQ19TRVQoU0NVODAsIDUpKTsKK1BJTl9ERUNMXzIoQjQsIEdQSU9BNSwgU0RBOSwgVElNRVI2KTsKIAogRlVOQ19HUk9VUF9ERUNMKFRJTUVSNiwgQjQpOwogRlVOQ19HUk9VUF9ERUNMKEkyQzksIEM1LCBCNCk7CkBAIC05NywxNiArMTA0LDE2IEBAIEZVTkNfR1JPVVBfREVDTChJMkM5LCBDNSwgQjQpOwogI2RlZmluZSBNRElPMl9ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMikKIAogI2RlZmluZSBBMyA2Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE1EQzIsIE1ESU8yLCBNRElPMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVElNRVI3LCBUSU1FUjcsIFNJR19ERVNDX1NFVChTQ1U4MCwgNikpOwotTVNfUElOX0RFQ0woQTMsIEdQSU9BNiwgTURDMiwgVElNRVI3KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTMsIE1EQzIsIE1ESU8yLCBNRElPMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTMsIFRJTUVSNywgVElNRVI3LCBTSUdfREVTQ19TRVQoU0NVODAsIDYpKTsKK1BJTl9ERUNMXzIoQTMsIEdQSU9BNiwgTURDMiwgVElNRVI3KTsKIAogRlVOQ19HUk9VUF9ERUNMKFRJTUVSNywgQTMpOwogCiAjZGVmaW5lIEQ1IDcKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTURJTzIsIE1ESU8yLCBNRElPMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVElNRVI4LCBUSU1FUjgsIFNJR19ERVNDX1NFVChTQ1U4MCwgNykpOwotTVNfUElOX0RFQ0woRDUsIEdQSU9BNywgTURJTzIsIFRJTUVSOCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQ1LCBNRElPMiwgTURJTzIsIE1ESU8yX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShENSwgVElNRVI4LCBUSU1FUjgsIFNJR19ERVNDX1NFVChTQ1U4MCwgNykpOworUElOX0RFQ0xfMihENSwgR1BJT0E3LCBNRElPMiwgVElNRVI4KTsKIAogRlVOQ19HUk9VUF9ERUNMKFRJTUVSOCwgRDUpOwogRlVOQ19HUk9VUF9ERUNMKE1ESU8yLCBBMywgRDUpOwpAQCAtMTI0LDE4ICsxMzEsMTggQEAgU1NTRl9QSU5fREVDTChIMTgsIEdQSU9CMiwgU0FMVDMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMTApKTsKIFNTU0ZfUElOX0RFQ0woRjE4LCBHUElPQjMsIFNBTFQ0LCBTSUdfREVTQ19TRVQoU0NVODAsIDExKSk7CiAKICNkZWZpbmUgRTE5IDEyCi1TSUdfRVhQUl9ERUNMKExQQ1JTVCwgTFBDUlNULCBTSUdfREVTQ19TRVQoU0NVODAsIDEyKSk7Ci1TSUdfRVhQUl9ERUNMKExQQ1JTVCwgTFBDUlNUUywgU0lHX0RFU0NfU0VUKEhXX1NUUkFQMSwgMTQpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKExQQ1JTVCwgTFBDUlNULCBMUENSU1RTKTsKLVNTX1BJTl9ERUNMKEUxOSwgR1BJT0I0LCBMUENSU1QpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoTFBDUlNULCBMUENSU1QsIFNJR19ERVNDX1NFVChTQ1U4MCwgMTIpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKExQQ1JTVCwgTFBDUlNUUywgU0lHX0RFU0NfU0VUKEhXX1NUUkFQMSwgMTQpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEUxOSwgTFBDUlNULCBMUENSU1QsIExQQ1JTVFMpOworUElOX0RFQ0xfMShFMTksIEdQSU9CNCwgTFBDUlNUKTsKIAogRlVOQ19HUk9VUF9ERUNMKExQQ1JTVCwgRTE5KTsKIAogI2RlZmluZSBIMTkgMTMKICNkZWZpbmUgSDE5X0RFU0MgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4MCwgMTMpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKExQQ1BELCBMUENQRCwgSDE5X0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMUENTTUksIExQQ1NNSSwgSDE5X0RFU0MpOwotTVNfUElOX0RFQ0woSDE5LCBHUElPQjUsIExQQ1BELCBMUENTTUkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShIMTksIExQQ1BELCBMUENQRCwgSDE5X0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShIMTksIExQQ1NNSSwgTFBDU01JLCBIMTlfREVTQyk7CitQSU5fREVDTF8yKEgxOSwgR1BJT0I1LCBMUENQRCwgTFBDU01JKTsKIAogRlVOQ19HUk9VUF9ERUNMKExQQ1BELCBIMTkpOwogRlVOQ19HUk9VUF9ERUNMKExQQ1NNSSwgSDE5KTsKQEAgLTE0NCwxNCArMTUxLDE0IEBAIEZVTkNfR1JPVVBfREVDTChMUENTTUksIEgxOSk7CiBTU1NGX1BJTl9ERUNMKEgyMCwgR1BJT0I2LCBMUENQTUUsIFNJR19ERVNDX1NFVChTQ1U4MCwgMTQpKTsKIAogI2RlZmluZSBFMTggMTUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRVhUUlNULCBFWFRSU1QsCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxOCwgRVhUUlNULCBFWFRSU1QsCiAJCVNJR19ERVNDX1NFVChTQ1U4MCwgMTUpLAogCQlTSUdfREVTQ19CSVQoU0NVOTAsIDMxLCAwKSwKIAkJU0lHX0RFU0NfU0VUKFNDVTNDLCAzKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNQSUNTMSwgU1BJQ1MxLAorU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMTgsIFNQSUNTMSwgU1BJQ1MxLAogCQlTSUdfREVTQ19TRVQoU0NVODAsIDE1KSwKIAkJU0lHX0RFU0NfU0VUKFNDVTkwLCAzMSkpOwotTVNfUElOX0RFQ0woRTE4LCBHUElPQjcsIEVYVFJTVCwgU1BJQ1MxKTsKK1BJTl9ERUNMXzIoRTE4LCBHUElPQjcsIEVYVFJTVCwgU1BJQ1MxKTsKIAogRlVOQ19HUk9VUF9ERUNMKEVYVFJTVCwgRTE4KTsKIEZVTkNfR1JPVVBfREVDTChTUElDUzEsIEUxOCk7CkBAIC0xNjAsNTYgKzE2Nyw1NiBAQCBGVU5DX0dST1VQX0RFQ0woU1BJQ1MxLCBFMTgpOwogI2RlZmluZSBJMkMxMF9ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMjMpCiAKICNkZWZpbmUgQzQgMTYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0QxQ0xLLCBTRDEsIFNEMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0NMMTAsIEkyQzEwLCBJMkMxMF9ERVNDKTsKLU1TX1BJTl9ERUNMKEM0LCBHUElPQzAsIFNEMUNMSywgU0NMMTApOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDNCwgU0QxQ0xLLCBTRDEsIFNEMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzQsIFNDTDEwLCBJMkMxMCwgSTJDMTBfREVTQyk7CitQSU5fREVDTF8yKEM0LCBHUElPQzAsIFNEMUNMSywgU0NMMTApOwogCiAjZGVmaW5lIEIzIDE3Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMUNNRCwgU0QxLCBTRDFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEQTEwLCBJMkMxMCwgSTJDMTBfREVTQyk7Ci1NU19QSU5fREVDTChCMywgR1BJT0MxLCBTRDFDTUQsIFNEQTEwKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjMsIFNEMUNNRCwgU0QxLCBTRDFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIzLCBTREExMCwgSTJDMTAsIEkyQzEwX0RFU0MpOworUElOX0RFQ0xfMihCMywgR1BJT0MxLCBTRDFDTUQsIFNEQTEwKTsKIAogRlVOQ19HUk9VUF9ERUNMKEkyQzEwLCBDNCwgQjMpOwogCiAjZGVmaW5lIEkyQzExX0RFU0MJU0lHX0RFU0NfU0VUKFNDVTkwLCAyNCkKIAogI2RlZmluZSBBMiAxOAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDFEQVQwLCBTRDEsIFNEMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0NMMTEsIEkyQzExLCBJMkMxMV9ERVNDKTsKLU1TX1BJTl9ERUNMKEEyLCBHUElPQzIsIFNEMURBVDAsIFNDTDExKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTIsIFNEMURBVDAsIFNEMSwgU0QxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMiwgU0NMMTEsIEkyQzExLCBJMkMxMV9ERVNDKTsKK1BJTl9ERUNMXzIoQTIsIEdQSU9DMiwgU0QxREFUMCwgU0NMMTEpOwogCiAjZGVmaW5lIEU1IDE5Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMURBVDEsIFNEMSwgU0QxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTREExMSwgSTJDMTEsIEkyQzExX0RFU0MpOwotTVNfUElOX0RFQ0woRTUsIEdQSU9DMywgU0QxREFUMSwgU0RBMTEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFNSwgU0QxREFUMSwgU0QxLCBTRDFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEU1LCBTREExMSwgSTJDMTEsIEkyQzExX0RFU0MpOworUElOX0RFQ0xfMihFNSwgR1BJT0MzLCBTRDFEQVQxLCBTREExMSk7CiAKIEZVTkNfR1JPVVBfREVDTChJMkMxMSwgQTIsIEU1KTsKIAogI2RlZmluZSBJMkMxMl9ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMjUpCiAKICNkZWZpbmUgRDQgMjAKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0QxREFUMiwgU0QxLCBTRDFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNDTDEyLCBJMkMxMiwgSTJDMTJfREVTQyk7Ci1NU19QSU5fREVDTChENCwgR1BJT0M0LCBTRDFEQVQyLCBTQ0wxMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQ0LCBTRDFEQVQyLCBTRDEsIFNEMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDQsIFNDTDEyLCBJMkMxMiwgSTJDMTJfREVTQyk7CitQSU5fREVDTF8yKEQ0LCBHUElPQzQsIFNEMURBVDIsIFNDTDEyKTsKIAogI2RlZmluZSBDMyAyMQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDFEQVQzLCBTRDEsIFNEMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBMTIsIEkyQzEyLCBJMkMxMl9ERVNDKTsKLU1TX1BJTl9ERUNMKEMzLCBHUElPQzUsIFNEMURBVDMsIFNEQTEyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzMsIFNEMURBVDMsIFNEMSwgU0QxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMywgU0RBMTIsIEkyQzEyLCBJMkMxMl9ERVNDKTsKK1BJTl9ERUNMXzIoQzMsIEdQSU9DNSwgU0QxREFUMywgU0RBMTIpOwogCiBGVU5DX0dST1VQX0RFQ0woSTJDMTIsIEQ0LCBDMyk7CiAKICNkZWZpbmUgSTJDMTNfREVTQwlTSUdfREVTQ19TRVQoU0NVOTAsIDI2KQogCiAjZGVmaW5lIEIyIDIyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMUNELCBTRDEsIFNEMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0NMMTMsIEkyQzEzLCBJMkMxM19ERVNDKTsKLU1TX1BJTl9ERUNMKEIyLCBHUElPQzYsIFNEMUNELCBTQ0wxMyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIyLCBTRDFDRCwgU0QxLCBTRDFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIyLCBTQ0wxMywgSTJDMTMsIEkyQzEzX0RFU0MpOworUElOX0RFQ0xfMihCMiwgR1BJT0M2LCBTRDFDRCwgU0NMMTMpOwogCiAjZGVmaW5lIEExIDIzCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMVdQLCBTRDEsIFNEMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBMTMsIEkyQzEzLCBJMkMxM19ERVNDKTsKLU1TX1BJTl9ERUNMKEExLCBHUElPQzcsIFNEMVdQLCBTREExMyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExLCBTRDFXUCwgU0QxLCBTRDFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExLCBTREExMywgSTJDMTMsIEkyQzEzX0RFU0MpOworUElOX0RFQ0xfMihBMSwgR1BJT0M3LCBTRDFXUCwgU0RBMTMpOwogCiBGVU5DX0dST1VQX0RFQ0woSTJDMTMsIEIyLCBBMSk7CiBGVU5DX0dST1VQX0RFQ0woU0QxLCBDNCwgQjMsIEEyLCBFNSwgRDQsIEMzLCBCMiwgQTEpOwpAQCAtMjE5LDcyICsyMjYsNzIgQEAgRlVOQ19HUk9VUF9ERUNMKFNEMSwgQzQsIEIzLCBBMiwgRTUsIEQ0LCBDMywgQjIsIEExKTsKICNkZWZpbmUgR1BJRDBfREVTQwlTSUdfREVTQ19TRVQoU0NVOEMsIDgpCiAKICNkZWZpbmUgQTE4IDI0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMkNMSywgU0QyLCBTRDJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQwSU4sIEdQSUQwLCBHUElEMF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDBJTiwgR1BJRCwgR1BJRF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUQwSU4sIEdQSUQwLCBHUElEKTsKLU1TX1BJTl9ERUNMKEExOCwgR1BJT0QwLCBTRDJDTEssIEdQSUQwSU4pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMTgsIFNEMkNMSywgU0QyLCBTRDJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElEMElOLCBHUElEMCwgR1BJRDBfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElEMElOLCBHUElELCBHUElEX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQTE4LCBHUElEMElOLCBHUElEMCwgR1BJRCk7CitQSU5fREVDTF8yKEExOCwgR1BJT0QwLCBTRDJDTEssIEdQSUQwSU4pOwogCiAjZGVmaW5lIEQxNiAyNQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDJDTUQsIFNEMiwgU0QyX0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElEME9VVCwgR1BJRDAsIEdQSUQwX0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElEME9VVCwgR1BJRCwgR1BJRF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUQwT1VULCBHUElEMCwgR1BJRCk7Ci1NU19QSU5fREVDTChEMTYsIEdQSU9EMSwgU0QyQ01ELCBHUElEME9VVCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxNiwgU0QyQ01ELCBTRDIsIFNEMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQwT1VULCBHUElEMCwgR1BJRDBfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElEME9VVCwgR1BJRCwgR1BJRF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEQxNiwgR1BJRDBPVVQsIEdQSUQwLCBHUElEKTsKK1BJTl9ERUNMXzIoRDE2LCBHUElPRDEsIFNEMkNNRCwgR1BJRDBPVVQpOwogCiBGVU5DX0dST1VQX0RFQ0woR1BJRDAsIEExOCwgRDE2KTsKIAogI2RlZmluZSBHUElEMl9ERVNDCVNJR19ERVNDX1NFVChTQ1U4QywgOSkKIAogI2RlZmluZSBCMTcgMjYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0QyREFUMCwgU0QyLCBTRDJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQySU4sIEdQSUQyLCBHUElEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDJJTiwgR1BJRCwgR1BJRF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUQySU4sIEdQSUQyLCBHUElEKTsKLU1TX1BJTl9ERUNMKEIxNywgR1BJT0QyLCBTRDJEQVQwLCBHUElEMklOKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjE3LCBTRDJEQVQwLCBTRDIsIFNEMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQySU4sIEdQSUQyLCBHUElEMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQySU4sIEdQSUQsIEdQSURfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChCMTcsIEdQSUQySU4sIEdQSUQyLCBHUElEKTsKK1BJTl9ERUNMXzIoQjE3LCBHUElPRDIsIFNEMkRBVDAsIEdQSUQySU4pOwogCiAjZGVmaW5lIEExNyAyNwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDJEQVQxLCBTRDIsIFNEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDJPVVQsIEdQSUQyLCBHUElEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDJPVVQsIEdQSUQsIEdQSURfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElEMk9VVCwgR1BJRDIsIEdQSUQpOwotTVNfUElOX0RFQ0woQTE3LCBHUElPRDMsIFNEMkRBVDEsIEdQSUQyT1VUKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTE3LCBTRDJEQVQxLCBTRDIsIFNEMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQyT1VULCBHUElEMiwgR1BJRDJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElEMk9VVCwgR1BJRCwgR1BJRF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEExNywgR1BJRDJPVVQsIEdQSUQyLCBHUElEKTsKK1BJTl9ERUNMXzIoQTE3LCBHUElPRDMsIFNEMkRBVDEsIEdQSUQyT1VUKTsKIAogRlVOQ19HUk9VUF9ERUNMKEdQSUQyLCBCMTcsIEExNyk7CiAKICNkZWZpbmUgR1BJRDRfREVTQwlTSUdfREVTQ19TRVQoU0NVOEMsIDEwKQogCiAjZGVmaW5lIEMxNiAyOAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDJEQVQyLCBTRDIsIFNEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDRJTiwgR1BJRDQsIEdQSUQ0X0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElENElOLCBHUElELCBHUElEX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoR1BJRDRJTiwgR1BJRDQsIEdQSUQpOwotTVNfUElOX0RFQ0woQzE2LCBHUElPRDQsIFNEMkRBVDIsIEdQSUQ0SU4pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTYsIFNEMkRBVDIsIFNEMiwgU0QyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDRJTiwgR1BJRDQsIEdQSUQ0X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDRJTiwgR1BJRCwgR1BJRF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEMxNiwgR1BJRDRJTiwgR1BJRDQsIEdQSUQpOworUElOX0RFQ0xfMihDMTYsIEdQSU9ENCwgU0QyREFUMiwgR1BJRDRJTik7CiAKICNkZWZpbmUgQjE2IDI5Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMkRBVDMsIFNEMiwgU0QyX0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElENE9VVCwgR1BJRDQsIEdQSUQ0X0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElENE9VVCwgR1BJRCwgR1BJRF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUQ0T1VULCBHUElENCwgR1BJRCk7Ci1NU19QSU5fREVDTChCMTYsIEdQSU9ENSwgU0QyREFUMywgR1BJRDRPVVQpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMTYsIFNEMkRBVDMsIFNEMiwgU0QyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDRPVVQsIEdQSUQ0LCBHUElENF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQ0T1VULCBHUElELCBHUElEX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQjE2LCBHUElENE9VVCwgR1BJRDQsIEdQSUQpOworUElOX0RFQ0xfMihCMTYsIEdQSU9ENSwgU0QyREFUMywgR1BJRDRPVVQpOwogCiBGVU5DX0dST1VQX0RFQ0woR1BJRDQsIEMxNiwgQjE2KTsKIAogI2RlZmluZSBHUElENl9ERVNDCVNJR19ERVNDX1NFVChTQ1U4QywgMTEpCiAKICNkZWZpbmUgQTE2IDMwCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMkNELCBTRDIsIFNEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDZJTiwgR1BJRDYsIEdQSUQ2X0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElENklOLCBHUElELCBHUElEX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoR1BJRDZJTiwgR1BJRDYsIEdQSUQpOwotTVNfUElOX0RFQ0woQTE2LCBHUElPRDYsIFNEMkNELCBHUElENklOKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTE2LCBTRDJDRCwgU0QyLCBTRDJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElENklOLCBHUElENiwgR1BJRDZfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElENklOLCBHUElELCBHUElEX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQTE2LCBHUElENklOLCBHUElENiwgR1BJRCk7CitQSU5fREVDTF8yKEExNiwgR1BJT0Q2LCBTRDJDRCwgR1BJRDZJTik7CiAKICNkZWZpbmUgRTE1IDMxCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMldQLCBTRDIsIFNEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDZPVVQsIEdQSUQ2LCBHUElENl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDZPVVQsIEdQSUQsIEdQSURfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElENk9VVCwgR1BJRDYsIEdQSUQpOwotTVNfUElOX0RFQ0woRTE1LCBHUElPRDcsIFNEMldQLCBHUElENk9VVCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxNSwgU0QyV1AsIFNEMiwgU0QyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDZPVVQsIEdQSUQ2LCBHUElENl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQ2T1VULCBHUElELCBHUElEX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoRTE1LCBHUElENk9VVCwgR1BJRDYsIEdQSUQpOworUElOX0RFQ0xfMihFMTUsIEdQSU9ENywgU0QyV1AsIEdQSUQ2T1VUKTsKIAogRlVOQ19HUk9VUF9ERUNMKEdQSUQ2LCBBMTYsIEUxNSk7CiBGVU5DX0dST1VQX0RFQ0woU0QyLCBBMTgsIEQxNiwgQjE3LCBBMTcsIEMxNiwgQjE2LCBBMTYsIEUxNSk7CkBAIC0yOTcsNzcgKzMwNCw3NyBAQCBGVU5DX0dST1VQX0RFQ0woR1BJRCwgQTE4LCBEMTYsIEIxNywgQTE3LCBDMTYsIEIxNiwgQTE2LCBFMTUpOwogI2RlZmluZSBHUElFNl9ERVNDICAgICAgU0lHX0RFU0NfU0VUKFNDVThDLCAxNSkKIAogI2RlZmluZSBEMTUgMzIKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkNUUzMsIE5DVFMzLCBTSUdfREVTQ19TRVQoU0NVODAsIDE2KSk7Ci1TSUdfRVhQUl9ERUNMKEdQSUUwSU4sIEdQSUUwLCBHUElFMF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRTBJTiwgR1BJRSwgR1BJRV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUUwSU4sIEdQSUUwLCBHUElFKTsKLU1TX1BJTl9ERUNMKEQxNSwgR1BJT0UwLCBOQ1RTMywgR1BJRTBJTik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxNSwgTkNUUzMsIE5DVFMzLCBTSUdfREVTQ19TRVQoU0NVODAsIDE2KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFMElOLCBHUElFMCwgR1BJRTBfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFMElOLCBHUElFLCBHUElFX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoRDE1LCBHUElFMElOLCBHUElFMCwgR1BJRSk7CitQSU5fREVDTF8yKEQxNSwgR1BJT0UwLCBOQ1RTMywgR1BJRTBJTik7CiAKIEZVTkNfR1JPVVBfREVDTChOQ1RTMywgRDE1KTsKIAogI2RlZmluZSBDMTUgMzMKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRDRDMsIE5EQ0QzLCBTSUdfREVTQ19TRVQoU0NVODAsIDE3KSk7Ci1TSUdfRVhQUl9ERUNMKEdQSUUwT1VULCBHUElFMCwgR1BJRTBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUUwT1VULCBHUElFLCBHUElFX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoR1BJRTBPVVQsIEdQSUUwLCBHUElFKTsKLU1TX1BJTl9ERUNMKEMxNSwgR1BJT0UxLCBORENEMywgR1BJRTBPVVQpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTUsIE5EQ0QzLCBORENEMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAxNykpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTBPVVQsIEdQSUUwLCBHUElFMF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUUwT1VULCBHUElFLCBHUElFX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQzE1LCBHUElFME9VVCwgR1BJRTAsIEdQSUUpOworUElOX0RFQ0xfMihDMTUsIEdQSU9FMSwgTkRDRDMsIEdQSUUwT1VUKTsKIAogRlVOQ19HUk9VUF9ERUNMKE5EQ0QzLCBDMTUpOwogRlVOQ19HUk9VUF9ERUNMKEdQSUUwLCBEMTUsIEMxNSk7CiAKICNkZWZpbmUgQjE1IDM0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5EU1IzLCBORFNSMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAxOCkpOwotU0lHX0VYUFJfREVDTChHUElFMklOLCBHUElFMiwgR1BJRTJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUUySU4sIEdQSUUsIEdQSUVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElFMklOLCBHUElFMiwgR1BJRSk7Ci1NU19QSU5fREVDTChCMTUsIEdQSU9FMiwgTkRTUjMsIEdQSUUySU4pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMTUsIE5EU1IzLCBORFNSMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAxOCkpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTJJTiwgR1BJRTIsIEdQSUUyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTJJTiwgR1BJRSwgR1BJRV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEIxNSwgR1BJRTJJTiwgR1BJRTIsIEdQSUUpOworUElOX0RFQ0xfMihCMTUsIEdQSU9FMiwgTkRTUjMsIEdQSUUySU4pOwogCiBGVU5DX0dST1VQX0RFQ0woTkRTUjMsIEIxNSk7CiAKICNkZWZpbmUgQTE1IDM1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5SSTMsIE5SSTMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMTkpKTsKLVNJR19FWFBSX0RFQ0woR1BJRTJPVVQsIEdQSUUyLCBHUElFMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRTJPVVQsIEdQSUUsIEdQSUVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElFMk9VVCwgR1BJRTIsIEdQSUUpOwotTVNfUElOX0RFQ0woQTE1LCBHUElPRTMsIE5SSTMsIEdQSUUyT1VUKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTE1LCBOUkkzLCBOUkkzLCBTSUdfREVTQ19TRVQoU0NVODAsIDE5KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFMk9VVCwgR1BJRTIsIEdQSUUyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTJPVVQsIEdQSUUsIEdQSUVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChBMTUsIEdQSUUyT1VULCBHUElFMiwgR1BJRSk7CitQSU5fREVDTF8yKEExNSwgR1BJT0UzLCBOUkkzLCBHUElFMk9VVCk7CiAKIEZVTkNfR1JPVVBfREVDTChOUkkzLCBBMTUpOwogRlVOQ19HUk9VUF9ERUNMKEdQSUUyLCBCMTUsIEExNSk7CiAKICNkZWZpbmUgRTE0IDM2Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5EVFIzLCBORFRSMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAyMCkpOwotU0lHX0VYUFJfREVDTChHUElFNElOLCBHUElFNCwgR1BJRTRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUU0SU4sIEdQSUUsIEdQSUVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElFNElOLCBHUElFNCwgR1BJRSk7Ci1NU19QSU5fREVDTChFMTQsIEdQSU9FNCwgTkRUUjMsIEdQSUU0SU4pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMTQsIE5EVFIzLCBORFRSMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAyMCkpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTRJTiwgR1BJRTQsIEdQSUU0X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTRJTiwgR1BJRSwgR1BJRV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEUxNCwgR1BJRTRJTiwgR1BJRTQsIEdQSUUpOworUElOX0RFQ0xfMihFMTQsIEdQSU9FNCwgTkRUUjMsIEdQSUU0SU4pOwogCiBGVU5DX0dST1VQX0RFQ0woTkRUUjMsIEUxNCk7CiAKICNkZWZpbmUgRDE0IDM3Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5SVFMzLCBOUlRTMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAyMSkpOwotU0lHX0VYUFJfREVDTChHUElFNE9VVCwgR1BJRTQsIEdQSUU0X0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElFNE9VVCwgR1BJRSwgR1BJRV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUU0T1VULCBHUElFNCwgR1BJRSk7Ci1NU19QSU5fREVDTChEMTQsIEdQSU9FNSwgTlJUUzMsIEdQSUU0T1VUKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDE0LCBOUlRTMywgTlJUUzMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjEpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUU0T1VULCBHUElFNCwgR1BJRTRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFNE9VVCwgR1BJRSwgR1BJRV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEQxNCwgR1BJRTRPVVQsIEdQSUU0LCBHUElFKTsKK1BJTl9ERUNMXzIoRDE0LCBHUElPRTUsIE5SVFMzLCBHUElFNE9VVCk7CiAKIEZVTkNfR1JPVVBfREVDTChOUlRTMywgRDE0KTsKIEZVTkNfR1JPVVBfREVDTChHUElFNCwgRTE0LCBEMTQpOwogCiAjZGVmaW5lIEMxNCAzOAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUWEQzLCBUWEQzLCBTSUdfREVTQ19TRVQoU0NVODAsIDIyKSk7Ci1TSUdfRVhQUl9ERUNMKEdQSUU2SU4sIEdQSUU2LCBHUElFNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRTZJTiwgR1BJRSwgR1BJRV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUU2SU4sIEdQSUU2LCBHUElFKTsKLU1TX1BJTl9ERUNMKEMxNCwgR1BJT0U2LCBUWEQzLCBHUElFNklOKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzE0LCBUWEQzLCBUWEQzLCBTSUdfREVTQ19TRVQoU0NVODAsIDIyKSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFNklOLCBHUElFNiwgR1BJRTZfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFNklOLCBHUElFLCBHUElFX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQzE0LCBHUElFNklOLCBHUElFNiwgR1BJRSk7CitQSU5fREVDTF8yKEMxNCwgR1BJT0U2LCBUWEQzLCBHUElFNklOKTsKIAogRlVOQ19HUk9VUF9ERUNMKFRYRDMsIEMxNCk7CiAKICNkZWZpbmUgQjE0IDM5Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJYRDMsIFJYRDMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjMpKTsKLVNJR19FWFBSX0RFQ0woR1BJRTZPVVQsIEdQSUU2LCBHUElFNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRTZPVVQsIEdQSUUsIEdQSUVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElFNk9VVCwgR1BJRTYsIEdQSUUpOwotTVNfUElOX0RFQ0woQjE0LCBHUElPRTcsIFJYRDMsIEdQSUU2T1VUKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjE0LCBSWEQzLCBSWEQzLCBTSUdfREVTQ19TRVQoU0NVODAsIDIzKSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFNk9VVCwgR1BJRTYsIEdQSUU2X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTZPVVQsIEdQSUUsIEdQSUVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChCMTQsIEdQSUU2T1VULCBHUElFNiwgR1BJRSk7CitQSU5fREVDTF8yKEIxNCwgR1BJT0U3LCBSWEQzLCBHUElFNk9VVCk7CiAKIEZVTkNfR1JPVVBfREVDTChSWEQzLCBCMTQpOwogRlVOQ19HUk9VUF9ERUNMKEdQSUU2LCBDMTQsIEIxNCk7CkBAIC0zNzgsMjkgKzM4NSwyOSBAQCBTU1NGX1BJTl9ERUNMKEQxOCwgR1BJT0YwLCBOQ1RTNCwgU0lHX0RFU0NfU0VUKFNDVTgwLCAyNCkpOwogI2RlZmluZSBBQ1BJX0RFU0MgICAgICAgU0lHX0RFU0NfQklUKEhXX1NUUkFQMSwgMTksIDApCiAKICNkZWZpbmUgQjE5IDQxCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5EQ0Q0LCBORENENCwgU0lHX0RFU0NfU0VUKFNDVTgwLCAyNSkpOwotU0lHX0VYUFJfREVDTChTSU9QQkksIFNJT1BCSSwgU0lHX0RFU0NfU0VUKFNDVUE0LCAxMikpOwotU0lHX0VYUFJfREVDTChTSU9QQkksIEFDUEksIEFDUElfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChTSU9QQkksIFNJT1BCSSwgQUNQSSk7Ci1NU19QSU5fREVDTChCMTksIEdQSU9GMSwgTkRDRDQsIFNJT1BCSSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxOSwgTkRDRDQsIE5EQ0Q0LCBTSUdfREVTQ19TRVQoU0NVODAsIDI1KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTSU9QQkksIFNJT1BCSSwgU0lHX0RFU0NfU0VUKFNDVUE0LCAxMikpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUEJJLCBBQ1BJLCBBQ1BJX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQjE5LCBTSU9QQkksIFNJT1BCSSwgQUNQSSk7CitQSU5fREVDTF8yKEIxOSwgR1BJT0YxLCBORENENCwgU0lPUEJJKTsKIEZVTkNfR1JPVVBfREVDTChORENENCwgQjE5KTsKIEZVTkNfR1JPVVBfREVDTChTSU9QQkksIEIxOSk7CiAKICNkZWZpbmUgQTIwIDQyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5EU1I0LCBORFNSNCwgU0lHX0RFU0NfU0VUKFNDVTgwLCAyNikpOwotU0lHX0VYUFJfREVDTChTSU9QV1JHRCwgU0lPUFdSR0QsIFNJR19ERVNDX1NFVChTQ1VBNCwgMTIpKTsKLVNJR19FWFBSX0RFQ0woU0lPUFdSR0QsIEFDUEksIEFDUElfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChTSU9QV1JHRCwgU0lPUFdSR0QsIEFDUEkpOwotTVNfUElOX0RFQ0woQTIwLCBHUElPRjIsIE5EU1I0LCBTSU9QV1JHRCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEEyMCwgTkRTUjQsIE5EU1I0LCBTSUdfREVTQ19TRVQoU0NVODAsIDI2KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTSU9QV1JHRCwgU0lPUFdSR0QsIFNJR19ERVNDX1NFVChTQ1VBNCwgMTIpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT1BXUkdELCBBQ1BJLCBBQ1BJX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQTIwLCBTSU9QV1JHRCwgU0lPUFdSR0QsIEFDUEkpOworUElOX0RFQ0xfMihBMjAsIEdQSU9GMiwgTkRTUjQsIFNJT1BXUkdEKTsKIEZVTkNfR1JPVVBfREVDTChORFNSNCwgQTIwKTsKIEZVTkNfR1JPVVBfREVDTChTSU9QV1JHRCwgQTIwKTsKIAogI2RlZmluZSBEMTcgNDMKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTlJJNCwgTlJJNCwgU0lHX0RFU0NfU0VUKFNDVTgwLCAyNykpOwotU0lHX0VYUFJfREVDTChTSU9QQk8sIFNJT1BCTywgU0lHX0RFU0NfU0VUKFNDVUE0LCAxNCkpOwotU0lHX0VYUFJfREVDTChTSU9QQk8sIEFDUEksIEFDUElfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChTSU9QQk8sIFNJT1BCTywgQUNQSSk7Ci1NU19QSU5fREVDTChEMTcsIEdQSU9GMywgTlJJNCwgU0lPUEJPKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDE3LCBOUkk0LCBOUkk0LCBTSUdfREVTQ19TRVQoU0NVODAsIDI3KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTSU9QQk8sIFNJT1BCTywgU0lHX0RFU0NfU0VUKFNDVUE0LCAxNCkpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUEJPLCBBQ1BJLCBBQ1BJX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoRDE3LCBTSU9QQk8sIFNJT1BCTywgQUNQSSk7CitQSU5fREVDTF8yKEQxNywgR1BJT0YzLCBOUkk0LCBTSU9QQk8pOwogRlVOQ19HUk9VUF9ERUNMKE5SSTQsIEQxNyk7CiBGVU5DX0dST1VQX0RFQ0woU0lPUEJPLCBEMTcpOwogCkBAIC00MDgsMTEgKzQxNSwxMSBAQCBGVU5DX0dST1VQX0RFQ0woU0lPUEJPLCBEMTcpOwogU1NTRl9QSU5fREVDTChCMTgsIEdQSU9GNCwgTkRUUjQsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjgpKTsKIAogI2RlZmluZSBBMTkgNDUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRUUzQsIE5EVFM0LCBTSUdfREVTQ19TRVQoU0NVODAsIDI5KSk7Ci1TSUdfRVhQUl9ERUNMKFNJT1NDSSwgU0lPU0NJLCBTSUdfREVTQ19TRVQoU0NVQTQsIDE1KSk7Ci1TSUdfRVhQUl9ERUNMKFNJT1NDSSwgQUNQSSwgQUNQSV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFNJT1NDSSwgU0lPU0NJLCBBQ1BJKTsKLU1TX1BJTl9ERUNMKEExOSwgR1BJT0Y1LCBORFRTNCwgU0lPU0NJKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTE5LCBORFRTNCwgTkRUUzQsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjkpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT1NDSSwgU0lPU0NJLCBTSUdfREVTQ19TRVQoU0NVQTQsIDE1KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTSU9TQ0ksIEFDUEksIEFDUElfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChBMTksIFNJT1NDSSwgU0lPU0NJLCBBQ1BJKTsKK1BJTl9ERUNMXzIoQTE5LCBHUElPRjUsIE5EVFM0LCBTSU9TQ0kpOwogRlVOQ19HUk9VUF9ERUNMKE5EVFM0LCBBMTkpOwogRlVOQ19HUk9VUF9ERUNMKFNJT1NDSSwgQTE5KTsKIApAQCAtNDM1LDE3ICs0NDIsMTcgQEAgU1NTRl9QSU5fREVDTChEMTMsIEdQSU9HMiwgU0dQU0kwLCBTSUdfREVTQ19TRVQoU0NVODQsIDIpKTsKIFNTU0ZfUElOX0RFQ0woQzEzLCBHUElPRzMsIFNHUFNJMSwgU0lHX0RFU0NfU0VUKFNDVTg0LCAzKSk7CiAKICNkZWZpbmUgQjEzIDUyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE9TQ0NMSywgT1NDQ0xLLCBTSUdfREVTQ19TRVQoU0NVMkMsIDEpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoV0RUUlNUMSwgV0RUUlNUMSwgU0lHX0RFU0NfU0VUKFNDVTg0LCA0KSk7Ci1NU19QSU5fREVDTChCMTMsIEdQSU9HNCwgT1NDQ0xLLCBXRFRSU1QxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjEzLCBPU0NDTEssIE9TQ0NMSywgU0lHX0RFU0NfU0VUKFNDVTJDLCAxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxMywgV0RUUlNUMSwgV0RUUlNUMSwgU0lHX0RFU0NfU0VUKFNDVTg0LCA0KSk7CitQSU5fREVDTF8yKEIxMywgR1BJT0c0LCBPU0NDTEssIFdEVFJTVDEpOwogCiBGVU5DX0dST1VQX0RFQ0woT1NDQ0xLLCBCMTMpOwogRlVOQ19HUk9VUF9ERUNMKFdEVFJTVDEsIEIxMyk7CiAKICNkZWZpbmUgWTIxIDUzCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFVTQkNLSSwgVVNCQ0tJLCBTSUdfREVTQ19TRVQoSFdfU1RSQVAxLCAyMykpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXRFRSU1QyLCBXRFRSU1QyLCBTSUdfREVTQ19TRVQoU0NVODQsIDUpKTsKLU1TX1BJTl9ERUNMKFkyMSwgR1BJT0c1LCBVU0JDS0ksIFdEVFJTVDIpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShZMjEsIFVTQkNLSSwgVVNCQ0tJLCBTSUdfREVTQ19TRVQoSFdfU1RSQVAxLCAyMykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShZMjEsIFdEVFJTVDIsIFdEVFJTVDIsIFNJR19ERVNDX1NFVChTQ1U4NCwgNSkpOworUElOX0RFQ0xfMihZMjEsIEdQSU9HNSwgVVNCQ0tJLCBXRFRSU1QyKTsKIAogRlVOQ19HUk9VUF9ERUNMKFVTQkNLSSwgWTIxKTsKIEZVTkNfR1JPVVBfREVDTChXRFRSU1QyLCBZMjEpOwpAQCAtNDYyLDYwICs0NjksNjAgQEAgU1NTRl9QSU5fREVDTChVMTgsIEdQSU9HNywgRkxXUCwgU0lHX0RFU0NfU0VUKFNDVTg0LCA3KSk7CiAjZGVmaW5lIEJPT1RfU1JDX05PUgl7IEFTUEVFRF9JUF9TQ1UsIEhXX1NUUkFQMSwgR0VOTUFTSygxLCAwKSwgMCwgMCB9CiAKICNkZWZpbmUgQTggNTYKLVNJR19FWFBSX0RFQ0woUk9NRDgsIFJPTTE2LCBST00xNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NRDgsIFJPTTE2UywgRkxBU0hfV0lERSwgQk9PVF9TUkNfTk9SKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFJPTUQ4LCBST00xNiwgUk9NMTZTKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkNUUzYsIE5DVFM2LCBVQVJUNl9ERVNDKTsKLU1TX1BJTl9ERUNMKEE4LCBHUElPSDAsIFJPTUQ4LCBOQ1RTNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01EOCwgUk9NMTYsIFJPTTE2X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NRDgsIFJPTTE2UywgRkxBU0hfV0lERSwgQk9PVF9TUkNfTk9SKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEE4LCBST01EOCwgUk9NMTYsIFJPTTE2Uyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEE4LCBOQ1RTNiwgTkNUUzYsIFVBUlQ2X0RFU0MpOworUElOX0RFQ0xfMihBOCwgR1BJT0gwLCBST01EOCwgTkNUUzYpOwogCiAjZGVmaW5lIEM3IDU3Ci1TSUdfRVhQUl9ERUNMKFJPTUQ5LCBST00xNiwgUk9NMTZfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUQ5LCBST00xNlMsIEZMQVNIX1dJREUsIEJPT1RfU1JDX05PUik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01EOSwgUk9NMTYsIFJPTTE2Uyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5EQ0Q2LCBORENENiwgVUFSVDZfREVTQyk7Ci1NU19QSU5fREVDTChDNywgR1BJT0gxLCBST01EOSwgTkRDRDYpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NRDksIFJPTTE2LCBST00xNl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQ5LCBST00xNlMsIEZMQVNIX1dJREUsIEJPT1RfU1JDX05PUik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChDNywgUk9NRDksIFJPTTE2LCBST00xNlMpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDNywgTkRDRDYsIE5EQ0Q2LCBVQVJUNl9ERVNDKTsKK1BJTl9ERUNMXzIoQzcsIEdQSU9IMSwgUk9NRDksIE5EQ0Q2KTsKIAogI2RlZmluZSBCNyA1OAotU0lHX0VYUFJfREVDTChST01EMTAsIFJPTTE2LCBST00xNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NRDEwLCBST00xNlMsIEZMQVNIX1dJREUsIEJPT1RfU1JDX05PUik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01EMTAsIFJPTTE2LCBST00xNlMpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShORFNSNiwgTkRTUjYsIFVBUlQ2X0RFU0MpOwotTVNfUElOX0RFQ0woQjcsIEdQSU9IMiwgUk9NRDEwLCBORFNSNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01EMTAsIFJPTTE2LCBST00xNl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQxMCwgUk9NMTZTLCBGTEFTSF9XSURFLCBCT09UX1NSQ19OT1IpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQjcsIFJPTUQxMCwgUk9NMTYsIFJPTTE2Uyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEI3LCBORFNSNiwgTkRTUjYsIFVBUlQ2X0RFU0MpOworUElOX0RFQ0xfMihCNywgR1BJT0gyLCBST01EMTAsIE5EU1I2KTsKIAogI2RlZmluZSBBNyA1OQotU0lHX0VYUFJfREVDTChST01EMTEsIFJPTTE2LCBST00xNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NRDExLCBST00xNlMsIEZMQVNIX1dJREUsIEJPT1RfU1JDX05PUik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01EMTEsIFJPTTE2LCBST00xNlMpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOUkk2LCBOUkk2LCBVQVJUNl9ERVNDKTsKLU1TX1BJTl9ERUNMKEE3LCBHUElPSDMsIFJPTUQxMSwgTlJJNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01EMTEsIFJPTTE2LCBST00xNl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQxMSwgUk9NMTZTLCBGTEFTSF9XSURFLCBCT09UX1NSQ19OT1IpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQTcsIFJPTUQxMSwgUk9NMTYsIFJPTTE2Uyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEE3LCBOUkk2LCBOUkk2LCBVQVJUNl9ERVNDKTsKK1BJTl9ERUNMXzIoQTcsIEdQSU9IMywgUk9NRDExLCBOUkk2KTsKIAogI2RlZmluZSBENyA2MAotU0lHX0VYUFJfREVDTChST01EMTIsIFJPTTE2LCBST00xNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NRDEyLCBST00xNlMsIEZMQVNIX1dJREUsIEJPT1RfU1JDX05PUik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01EMTIsIFJPTTE2LCBST00xNlMpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShORFRSNiwgTkRUUjYsIFVBUlQ2X0RFU0MpOwotTVNfUElOX0RFQ0woRDcsIEdQSU9INCwgUk9NRDEyLCBORFRSNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01EMTIsIFJPTTE2LCBST00xNl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQxMiwgUk9NMTZTLCBGTEFTSF9XSURFLCBCT09UX1NSQ19OT1IpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoRDcsIFJPTUQxMiwgUk9NMTYsIFJPTTE2Uyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQ3LCBORFRSNiwgTkRUUjYsIFVBUlQ2X0RFU0MpOworUElOX0RFQ0xfMihENywgR1BJT0g0LCBST01EMTIsIE5EVFI2KTsKIAogI2RlZmluZSBCNiA2MQotU0lHX0VYUFJfREVDTChST01EMTMsIFJPTTE2LCBST00xNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NRDEzLCBST00xNlMsIEZMQVNIX1dJREUsIEJPT1RfU1JDX05PUik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01EMTMsIFJPTTE2LCBST00xNlMpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOUlRTNiwgTlJUUzYsIFVBUlQ2X0RFU0MpOwotTVNfUElOX0RFQ0woQjYsIEdQSU9INSwgUk9NRDEzLCBOUlRTNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01EMTMsIFJPTTE2LCBST00xNl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQxMywgUk9NMTZTLCBGTEFTSF9XSURFLCBCT09UX1NSQ19OT1IpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQjYsIFJPTUQxMywgUk9NMTYsIFJPTTE2Uyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEI2LCBOUlRTNiwgTlJUUzYsIFVBUlQ2X0RFU0MpOworUElOX0RFQ0xfMihCNiwgR1BJT0g1LCBST01EMTMsIE5SVFM2KTsKIAogI2RlZmluZSBBNiA2MgotU0lHX0VYUFJfREVDTChST01EMTQsIFJPTTE2LCBST00xNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NRDE0LCBST00xNlMsIEZMQVNIX1dJREUsIEJPT1RfU1JDX05PUik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01EMTQsIFJPTTE2LCBST00xNlMpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUWEQ2LCBUWEQ2LCBVQVJUNl9ERVNDKTsKLU1TX1BJTl9ERUNMKEE2LCBHUElPSDYsIFJPTUQxNCwgVFhENik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01EMTQsIFJPTTE2LCBST00xNl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQxNCwgUk9NMTZTLCBGTEFTSF9XSURFLCBCT09UX1NSQ19OT1IpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQTYsIFJPTUQxNCwgUk9NMTYsIFJPTTE2Uyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEE2LCBUWEQ2LCBUWEQ2LCBVQVJUNl9ERVNDKTsKK1BJTl9ERUNMXzIoQTYsIEdQSU9INiwgUk9NRDE0LCBUWEQ2KTsKIAogI2RlZmluZSBFNyA2MwotU0lHX0VYUFJfREVDTChST01EMTUsIFJPTTE2LCBST00xNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NRDE1LCBST00xNlMsIEZMQVNIX1dJREUsIEJPT1RfU1JDX05PUik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01EMTUsIFJPTTE2LCBST00xNlMpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSWEQ2LCBSWEQ2LCBVQVJUNl9ERVNDKTsKLU1TX1BJTl9ERUNMKEU3LCBHUElPSDcsIFJPTUQxNSwgUlhENik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01EMTUsIFJPTTE2LCBST00xNl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQxNSwgUk9NMTZTLCBGTEFTSF9XSURFLCBCT09UX1NSQ19OT1IpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoRTcsIFJPTUQxNSwgUk9NMTYsIFJPTTE2Uyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEU3LCBSWEQ2LCBSWEQ2LCBVQVJUNl9ERVNDKTsKK1BJTl9ERUNMXzIoRTcsIEdQSU9INywgUk9NRDE1LCBSWEQ2KTsKIAogRlVOQ19HUk9VUF9ERUNMKFVBUlQ2LCBBOCwgQzcsIEI3LCBBNywgRDcsIEI2LCBBNiwgRTcpOwogCkBAIC01MjcsNzAgKzUzNCw3OCBAQCBGVU5DX0dST1VQX0RFQ0woVUFSVDYsIEE4LCBDNywgQjcsIEE3LCBENywgQjYsIEE2LCBFNyk7CiAJeyBBU1BFRURfSVBfU0NVLCBIV19TVFJBUDEsIEdFTk1BU0soMTMsIDEyKSwgMywgMCB9CiAKICNkZWZpbmUgQzIyIDY0Ci1TSUdfRVhQUl9ERUNMKFNZU0NTLCBTUEkxREVCVUcsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1lTQ1MsIFNQSTFQQVNTVEhSVSwgU1BJMVBBU1NUSFJVX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoU1lTQ1MsIFNQSTFERUJVRywgU1BJMVBBU1NUSFJVKTsKLVNTX1BJTl9ERUNMKEMyMiwgR1BJT0kwLCBTWVNDUyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNDUywgU1BJMURFQlVHLCBTUEkxREVCVUdfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNDUywgU1BJMVBBU1NUSFJVLCBTUEkxUEFTU1RIUlVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChDMjIsIFNZU0NTLCBTUEkxREVCVUcsIFNQSTFQQVNTVEhSVSk7CitQSU5fREVDTF8xKEMyMiwgR1BJT0kwLCBTWVNDUyk7CiAKICNkZWZpbmUgRzE4IDY1Ci1TSUdfRVhQUl9ERUNMKFNZU0NLLCBTUEkxREVCVUcsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1lTQ0ssIFNQSTFQQVNTVEhSVSwgU1BJMVBBU1NUSFJVX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoU1lTQ0ssIFNQSTFERUJVRywgU1BJMVBBU1NUSFJVKTsKLVNTX1BJTl9ERUNMKEcxOCwgR1BJT0kxLCBTWVNDSyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNDSywgU1BJMURFQlVHLCBTUEkxREVCVUdfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNDSywgU1BJMVBBU1NUSFJVLCBTUEkxUEFTU1RIUlVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHMTgsIFNZU0NLLCBTUEkxREVCVUcsIFNQSTFQQVNTVEhSVSk7CitQSU5fREVDTF8xKEcxOCwgR1BJT0kxLCBTWVNDSyk7CiAKICNkZWZpbmUgRDE5IDY2Ci1TSUdfRVhQUl9ERUNMKFNZU0RPLCBTUEkxREVCVUcsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1lTRE8sIFNQSTFQQVNTVEhSVSwgU1BJMVBBU1NUSFJVX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoU1lTRE8sIFNQSTFERUJVRywgU1BJMVBBU1NUSFJVKTsKLVNTX1BJTl9ERUNMKEQxOSwgR1BJT0kyLCBTWVNETyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNETywgU1BJMURFQlVHLCBTUEkxREVCVUdfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNETywgU1BJMVBBU1NUSFJVLCBTUEkxUEFTU1RIUlVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChEMTksIFNZU0RPLCBTUEkxREVCVUcsIFNQSTFQQVNTVEhSVSk7CitQSU5fREVDTF8xKEQxOSwgR1BJT0kyLCBTWVNETyk7CiAKICNkZWZpbmUgQzIwIDY3Ci1TSUdfRVhQUl9ERUNMKFNZU0RJLCBTUEkxREVCVUcsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1lTREksIFNQSTFQQVNTVEhSVSwgU1BJMVBBU1NUSFJVX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoU1lTREksIFNQSTFERUJVRywgU1BJMVBBU1NUSFJVKTsKLVNTX1BJTl9ERUNMKEMyMCwgR1BJT0kzLCBTWVNESSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNESSwgU1BJMURFQlVHLCBTUEkxREVCVUdfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNESSwgU1BJMVBBU1NUSFJVLCBTUEkxUEFTU1RIUlVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChDMjAsIFNZU0RJLCBTUEkxREVCVUcsIFNQSTFQQVNTVEhSVSk7CitQSU5fREVDTF8xKEMyMCwgR1BJT0kzLCBTWVNESSk7CiAKICNkZWZpbmUgVkJfREVTQwlTSUdfREVTQ19TRVQoSFdfU1RSQVAxLCA1KQogCiAjZGVmaW5lIEIyMiA2OAotU0lHX0VYUFJfREVDTChTUEkxQ1MwLCBTUEkxLCBTUEkxX0RFU0MpOwotU0lHX0VYUFJfREVDTChTUEkxQ1MwLCBTUEkxREVCVUcsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1BJMUNTMCwgU1BJMVBBU1NUSFJVLCBTUEkxUEFTU1RIUlVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woU1BJMUNTMCwgU0lHX0VYUFJfUFRSKFNQSTFDUzAsIFNQSTEpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoU1BJMUNTMCwgU1BJMSwgU1BJMV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNQSTFDUzAsIFNQSTFERUJVRywgU1BJMURFQlVHX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1BJMUNTMCwgU1BJMVBBU1NUSFJVLCBTUEkxUEFTU1RIUlVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woU1BJMUNTMCwgU1BJMSwKKwkJCSAgICBTSUdfRVhQUl9QVFIoU1BJMUNTMCwgU1BJMSksCiAJCQkgICAgU0lHX0VYUFJfUFRSKFNQSTFDUzAsIFNQSTFERUJVRyksCiAJCQkgICAgU0lHX0VYUFJfUFRSKFNQSTFDUzAsIFNQSTFQQVNTVEhSVSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWQkNTLCBWR0FCSU9TX1JPTSwgVkJfREVTQyk7Ci1NU19QSU5fREVDTChCMjIsIEdQSU9JNCwgU1BJMUNTMCwgVkJDUyk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKEIyMiwgU1BJMUNTMCwgU1BJMSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIyMiwgVkJDUywgVkdBQklPU19ST00sIFZCX0RFU0MpOworUElOX0RFQ0xfMihCMjIsIEdQSU9JNCwgU1BJMUNTMCwgVkJDUyk7CiAKICNkZWZpbmUgRzE5IDY5Ci1TSUdfRVhQUl9ERUNMKFNQSTFDSywgU1BJMSwgU1BJMV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1BJMUNLLCBTUEkxREVCVUcsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1BJMUNLLCBTUEkxUEFTU1RIUlUsIFNQSTFQQVNTVEhSVV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChTUEkxQ0ssIFNJR19FWFBSX1BUUihTUEkxQ0ssIFNQSTEpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoU1BJMUNLLCBTUEkxLCBTUEkxX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1BJMUNLLCBTUEkxREVCVUcsIFNQSTFERUJVR19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNQSTFDSywgU1BJMVBBU1NUSFJVLCBTUEkxUEFTU1RIUlVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woU1BJMUNLLCBTUEkxLAorCQkJICAgIFNJR19FWFBSX1BUUihTUEkxQ0ssIFNQSTEpLAogCQkJICAgIFNJR19FWFBSX1BUUihTUEkxQ0ssIFNQSTFERUJVRyksCiAJCQkgICAgU0lHX0VYUFJfUFRSKFNQSTFDSywgU1BJMVBBU1NUSFJVKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZCQ0ssIFZHQUJJT1NfUk9NLCBWQl9ERVNDKTsKLU1TX1BJTl9ERUNMKEcxOSwgR1BJT0k1LCBTUEkxQ0ssIFZCQ0spOworU0lHX0VYUFJfTElTVF9BTElBUyhHMTksIFNQSTFDSywgU1BJMSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEcxOSwgVkJDSywgVkdBQklPU19ST00sIFZCX0RFU0MpOworUElOX0RFQ0xfMihHMTksIEdQSU9JNSwgU1BJMUNLLCBWQkNLKTsKIAogI2RlZmluZSBDMTggNzAKLVNJR19FWFBSX0RFQ0woU1BJMURPLCBTUEkxLCBTUEkxX0RFU0MpOwotU0lHX0VYUFJfREVDTChTUEkxRE8sIFNQSTFERUJVRywgU1BJMURFQlVHX0RFU0MpOwotU0lHX0VYUFJfREVDTChTUEkxRE8sIFNQSTFQQVNTVEhSVSwgU1BJMVBBU1NUSFJVX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFNQSTFETywgU0lHX0VYUFJfUFRSKFNQSTFETywgU1BJMSksCitTSUdfRVhQUl9ERUNMX1NJTkdMRShTUEkxRE8sIFNQSTEsIFNQSTFfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTUEkxRE8sIFNQSTFERUJVRywgU1BJMURFQlVHX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1BJMURPLCBTUEkxUEFTU1RIUlUsIFNQSTFQQVNTVEhSVV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChTUEkxRE8sIFNQSTEsCisJCQkgICAgU0lHX0VYUFJfUFRSKFNQSTFETywgU1BJMSksCiAJCQkgICAgU0lHX0VYUFJfUFRSKFNQSTFETywgU1BJMURFQlVHKSwKIAkJCSAgICBTSUdfRVhQUl9QVFIoU1BJMURPLCBTUEkxUEFTU1RIUlUpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVkJETywgVkdBQklPU19ST00sIFZCX0RFU0MpOwotTVNfUElOX0RFQ0woQzE4LCBHUElPSTYsIFNQSTFETywgVkJETyk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKEMxOCwgU1BJMURPLCBTUEkxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzE4LCBWQkRPLCBWR0FCSU9TX1JPTSwgVkJfREVTQyk7CitQSU5fREVDTF8yKEMxOCwgR1BJT0k2LCBTUEkxRE8sIFZCRE8pOwogCiAjZGVmaW5lIEUyMCA3MQotU0lHX0VYUFJfREVDTChTUEkxREksIFNQSTEsIFNQSTFfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFNQSTFESSwgU1BJMURFQlVHLCBTUEkxREVCVUdfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFNQSTFESSwgU1BJMVBBU1NUSFJVLCBTUEkxUEFTU1RIUlVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woU1BJMURJLCBTSUdfRVhQUl9QVFIoU1BJMURJLCBTUEkxKSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNQSTFESSwgU1BJMSwgU1BJMV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNQSTFESSwgU1BJMURFQlVHLCBTUEkxREVCVUdfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTUEkxREksIFNQSTFQQVNTVEhSVSwgU1BJMVBBU1NUSFJVX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFNQSTFESSwgU1BJMSwKKwkJCSAgICBTSUdfRVhQUl9QVFIoU1BJMURJLCBTUEkxKSwKIAkJCSAgICBTSUdfRVhQUl9QVFIoU1BJMURJLCBTUEkxREVCVUcpLAogCQkJICAgIFNJR19FWFBSX1BUUihTUEkxREksIFNQSTFQQVNTVEhSVSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWQkRJLCBWR0FCSU9TX1JPTSwgVkJfREVTQyk7Ci1NU19QSU5fREVDTChFMjAsIEdQSU9JNywgU1BJMURJLCBWQkRJKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoRTIwLCBTUEkxREksIFNQSTEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMjAsIFZCREksIFZHQUJJT1NfUk9NLCBWQl9ERVNDKTsKK1BJTl9ERUNMXzIoRTIwLCBHUElPSTcsIFNQSTFESSwgVkJESSk7CiAKIEZVTkNfR1JPVVBfREVDTChTUEkxLCBCMjIsIEcxOSwgQzE4LCBFMjApOwogRlVOQ19HUk9VUF9ERUNMKFNQSTFERUJVRywgQzIyLCBHMTgsIEQxOSwgQzIwLCBCMjIsIEcxOSwgQzE4LCBFMjApOwpAQCAtNjI0LDQ4ICs2MzksNDggQEAgU1NTRl9QSU5fREVDTChUMSwgR1BJT0o3LCBERENEQVQsIFNJR19ERVNDX1NFVChTQ1U4NCwgMTUpKTsKICNkZWZpbmUgSTJDNV9ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMTgpCiAKICNkZWZpbmUgRTMgODAKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0NMNSwgSTJDNSwgSTJDNV9ERVNDKTsKLVNTX1BJTl9ERUNMKEUzLCBHUElPSzAsIFNDTDUpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMywgU0NMNSwgSTJDNSwgSTJDNV9ERVNDKTsKK1BJTl9ERUNMXzEoRTMsIEdQSU9LMCwgU0NMNSk7CiAKICNkZWZpbmUgRDIgODEKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBNSwgSTJDNSwgSTJDNV9ERVNDKTsKLVNTX1BJTl9ERUNMKEQyLCBHUElPSzEsIFNEQTUpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMiwgU0RBNSwgSTJDNSwgSTJDNV9ERVNDKTsKK1BJTl9ERUNMXzEoRDIsIEdQSU9LMSwgU0RBNSk7CiAKIEZVTkNfR1JPVVBfREVDTChJMkM1LCBFMywgRDIpOwogCiAjZGVmaW5lIEkyQzZfREVTQwlTSUdfREVTQ19TRVQoU0NVOTAsIDE5KQogCiAjZGVmaW5lIEMxIDgyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNDTDYsIEkyQzYsIEkyQzZfREVTQyk7Ci1TU19QSU5fREVDTChDMSwgR1BJT0syLCBTQ0w2KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzEsIFNDTDYsIEkyQzYsIEkyQzZfREVTQyk7CitQSU5fREVDTF8xKEMxLCBHUElPSzIsIFNDTDYpOwogCiAjZGVmaW5lIEY0IDgzCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEQTYsIEkyQzYsIEkyQzZfREVTQyk7Ci1TU19QSU5fREVDTChGNCwgR1BJT0szLCBTREE2KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjQsIFNEQTYsIEkyQzYsIEkyQzZfREVTQyk7CitQSU5fREVDTF8xKEY0LCBHUElPSzMsIFNEQTYpOwogCiBGVU5DX0dST1VQX0RFQ0woSTJDNiwgQzEsIEY0KTsKIAogI2RlZmluZSBJMkM3X0RFU0MJU0lHX0RFU0NfU0VUKFNDVTkwLCAyMCkKIAogI2RlZmluZSBFMiA4NAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0w3LCBJMkM3LCBJMkM3X0RFU0MpOwotU1NfUElOX0RFQ0woRTIsIEdQSU9LNCwgU0NMNyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUyLCBTQ0w3LCBJMkM3LCBJMkM3X0RFU0MpOworUElOX0RFQ0xfMShFMiwgR1BJT0s0LCBTQ0w3KTsKIAogI2RlZmluZSBEMSA4NQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTREE3LCBJMkM3LCBJMkM3X0RFU0MpOwotU1NfUElOX0RFQ0woRDEsIEdQSU9LNSwgU0RBNyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxLCBTREE3LCBJMkM3LCBJMkM3X0RFU0MpOworUElOX0RFQ0xfMShEMSwgR1BJT0s1LCBTREE3KTsKIAogRlVOQ19HUk9VUF9ERUNMKEkyQzcsIEUyLCBEMSk7CiAKICNkZWZpbmUgSTJDOF9ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMjEpCiAKICNkZWZpbmUgRzUgODYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0NMOCwgSTJDOCwgSTJDOF9ERVNDKTsKLVNTX1BJTl9ERUNMKEc1LCBHUElPSzYsIFNDTDgpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHNSwgU0NMOCwgSTJDOCwgSTJDOF9ERVNDKTsKK1BJTl9ERUNMXzEoRzUsIEdQSU9LNiwgU0NMOCk7CiAKICNkZWZpbmUgRjMgODcKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBOCwgSTJDOCwgSTJDOF9ERVNDKTsKLVNTX1BJTl9ERUNMKEYzLCBHUElPSzcsIFNEQTgpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShGMywgU0RBOCwgSTJDOCwgSTJDOF9ERVNDKTsKK1BJTl9ERUNMXzEoRjMsIEdQSU9LNywgU0RBOCk7CiAKIEZVTkNfR1JPVVBfREVDTChJMkM4LCBHNSwgRjMpOwogCkBAIC02NzgsMjk3ICs2OTMsMzQxIEBAIFNTU0ZfUElOX0RFQ0woVTEsIEdQSU9MMCwgTkNUUzEsIFNJR19ERVNDX1NFVChTQ1U4NCwgMTYpKTsKIAogI2RlZmluZSBUNSA4OQogI2RlZmluZSBUNV9ERVNDICAgICAgICAgU0lHX0RFU0NfU0VUKFNDVTg0LCAxNykKLVNJR19FWFBSX0RFQ0woVlBJREUsIFZQSTE4LCBWUEkxOF9ERVNDLCBUNV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJREUsIFZQSTI0LCBWUEkyNF9ERVNDLCBUNV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJREUsIFZQSTMwLCBWUEkzMF9ERVNDLCBUNV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUElERSwgU0lHX0VYUFJfUFRSKFZQSURFLCBWUEkxOCksCi0JCVNJR19FWFBSX1BUUihWUElERSwgVlBJMjQpLAotCQlTSUdfRVhQUl9QVFIoVlBJREUsIFZQSTMwKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5EQ0QxLCBORENEMSwgVDVfREVTQyk7Ci1NU19QSU5fREVDTChUNSwgR1BJT0wxLCBWUElERSwgTkRDRDEpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJREUsIFZQSTE4LCBWUEkxOF9ERVNDLCBUNV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSURFLCBWUEkyNCwgVlBJMjRfREVTQywgVDVfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElERSwgVlBJMzAsIFZQSTMwX0RFU0MsIFQ1X0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQSURFLCBWUEksCisJCSAgIFNJR19FWFBSX1BUUihWUElERSwgVlBJMTgpLAorCQkgICBTSUdfRVhQUl9QVFIoVlBJREUsIFZQSTI0KSwKKwkJICAgU0lHX0VYUFJfUFRSKFZQSURFLCBWUEkzMCkpOworU0lHX0VYUFJfTElTVF9BTElBUyhUNSwgVlBJREUsIFZQSSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFQ1LCBORENEMSwgTkRDRDEsIFQ1X0RFU0MpOworUElOX0RFQ0xfMihUNSwgR1BJT0wxLCBWUElERSwgTkRDRDEpOwogRlVOQ19HUk9VUF9ERUNMKE5EQ0QxLCBUNSk7CiAKICNkZWZpbmUgVTMgOTAKICNkZWZpbmUgVTNfREVTQyAgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4NCwgMTgpCi1TSUdfRVhQUl9ERUNMKFZQSU9ERCwgVlBJMTgsIFZQSTE4X0RFU0MsIFUzX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUElPREQsIFZQSTI0LCBWUEkyNF9ERVNDLCBVM19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJT0RELCBWUEkzMCwgVlBJMzBfREVTQywgVTNfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBJT0RELCBTSUdfRVhQUl9QVFIoVlBJT0RELCBWUEkxOCksCitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElPREQsIFZQSTE4LCBWUEkxOF9ERVNDLCBVM19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSU9ERCwgVlBJMjQsIFZQSTI0X0RFU0MsIFUzX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0RELCBWUEkzMCwgVlBJMzBfREVTQywgVTNfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBJT0RELCBWUEksCisJCVNJR19FWFBSX1BUUihWUElPREQsIFZQSTE4KSwKIAkJU0lHX0VYUFJfUFRSKFZQSU9ERCwgVlBJMjQpLAogCQlTSUdfRVhQUl9QVFIoVlBJT0RELCBWUEkzMCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShORFNSMSwgTkRTUjEsIFUzX0RFU0MpOwotTVNfUElOX0RFQ0woVTMsIEdQSU9MMiwgVlBJT0RELCBORFNSMSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFUzLCBWUElPREQsIFZQSSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFUzLCBORFNSMSwgTkRTUjEsIFUzX0RFU0MpOworUElOX0RFQ0xfMihVMywgR1BJT0wyLCBWUElPREQsIE5EU1IxKTsKIEZVTkNfR1JPVVBfREVDTChORFNSMSwgVTMpOwogCiAjZGVmaW5lIFYxIDkxCiAjZGVmaW5lIFYxX0RFU0MgICAgICAgICBTSUdfREVTQ19TRVQoU0NVODQsIDE5KQotU0lHX0VYUFJfREVDTChWUElIUywgVlBJMTgsIFZQSTE4X0RFU0MsIFYxX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUElIUywgVlBJMjQsIFZQSTI0X0RFU0MsIFYxX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUElIUywgVlBJMzAsIFZQSTMwX0RFU0MsIFYxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQSUhTLCBTSUdfRVhQUl9QVFIoVlBJSFMsIFZQSTE4KSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSUhTLCBWUEkxOCwgVlBJMThfREVTQywgVjFfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElIUywgVlBJMjQsIFZQSTI0X0RFU0MsIFYxX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJSFMsIFZQSTMwLCBWUEkzMF9ERVNDLCBWMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUElIUywgVlBJLAorCQlTSUdfRVhQUl9QVFIoVlBJSFMsIFZQSTE4KSwKIAkJU0lHX0VYUFJfUFRSKFZQSUhTLCBWUEkyNCksCiAJCVNJR19FWFBSX1BUUihWUElIUywgVlBJMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTlJJMSwgTlJJMSwgVjFfREVTQyk7Ci1NU19QSU5fREVDTChWMSwgR1BJT0wzLCBWUElIUywgTlJJMSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFYxLCBWUElIUywgVlBJKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVjEsIE5SSTEsIE5SSTEsIFYxX0RFU0MpOworUElOX0RFQ0xfMihWMSwgR1BJT0wzLCBWUElIUywgTlJJMSk7CiBGVU5DX0dST1VQX0RFQ0woTlJJMSwgVjEpOwogCiAjZGVmaW5lIFU0IDkyCiAjZGVmaW5lIFU0X0RFU0MgICAgICAgICBTSUdfREVTQ19TRVQoU0NVODQsIDIwKQotU0lHX0VYUFJfREVDTChWUElWUywgVlBJMTgsIFZQSTE4X0RFU0MsIFU0X0RFU0MpOwotU0lHX0VYUFJfREVDTChWUElWUywgVlBJMjQsIFZQSTI0X0RFU0MsIFU0X0RFU0MpOwotU0lHX0VYUFJfREVDTChWUElWUywgVlBJMzAsIFZQSTMwX0RFU0MsIFU0X0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQSVZTLCBTSUdfRVhQUl9QVFIoVlBJVlMsIFZQSTE4KSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSVZTLCBWUEkxOCwgVlBJMThfREVTQywgVTRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElWUywgVlBJMjQsIFZQSTI0X0RFU0MsIFU0X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJVlMsIFZQSTMwLCBWUEkzMF9ERVNDLCBVNF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUElWUywgVlBJLAorCQlTSUdfRVhQUl9QVFIoVlBJVlMsIFZQSTE4KSwKIAkJU0lHX0VYUFJfUFRSKFZQSVZTLCBWUEkyNCksCiAJCVNJR19FWFBSX1BUUihWUElWUywgVlBJMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRUUjEsIE5EVFIxLCBVNF9ERVNDKTsKLU1TX1BJTl9ERUNMKFU0LCBHUElPTDQsIFZQSVZTLCBORFRSMSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFU0LCBWUElWUywgVlBJKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVTQsIE5EVFIxLCBORFRSMSwgVTRfREVTQyk7CitQSU5fREVDTF8yKFU0LCBHUElPTDQsIFZQSVZTLCBORFRSMSk7CiBGVU5DX0dST1VQX0RFQ0woTkRUUjEsIFU0KTsKIAogI2RlZmluZSBWMiA5MwogI2RlZmluZSBWMl9ERVNDICAgICAgICAgU0lHX0RFU0NfU0VUKFNDVTg0LCAyMSkKLVNJR19FWFBSX0RFQ0woVlBJQ0xLLCBWUEkxOCwgVlBJMThfREVTQywgVjJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSUNMSywgVlBJMjQsIFZQSTI0X0RFU0MsIFYyX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUElDTEssIFZQSTMwLCBWUEkzMF9ERVNDLCBWMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUElDTEssIFNJR19FWFBSX1BUUihWUElDTEssIFZQSTE4KSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSUNMSywgVlBJMTgsIFZQSTE4X0RFU0MsIFYyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJQ0xLLCBWUEkyNCwgVlBJMjRfREVTQywgVjJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElDTEssIFZQSTMwLCBWUEkzMF9ERVNDLCBWMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUElDTEssIFZQSSwKKwkJU0lHX0VYUFJfUFRSKFZQSUNMSywgVlBJMTgpLAogCQlTSUdfRVhQUl9QVFIoVlBJQ0xLLCBWUEkyNCksCiAJCVNJR19FWFBSX1BUUihWUElDTEssIFZQSTMwKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5SVFMxLCBOUlRTMSwgVjJfREVTQyk7Ci1NU19QSU5fREVDTChWMiwgR1BJT0w1LCBWUElDTEssIE5SVFMxKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoVjIsIFZQSUNMSywgVlBJKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVjIsIE5SVFMxLCBOUlRTMSwgVjJfREVTQyk7CitQSU5fREVDTF8yKFYyLCBHUElPTDUsIFZQSUNMSywgTlJUUzEpOwogRlVOQ19HUk9VUF9ERUNMKE5SVFMxLCBWMik7CiAKICNkZWZpbmUgVzEgOTQKICNkZWZpbmUgVzFfREVTQyAgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4NCwgMjIpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUIwLCBWUEkzMCwgVlBJMzBfREVTQywgVzFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFRYRDEsIFRYRDEsIFcxX0RFU0MpOwotTVNfUElOX0RFQ0woVzEsIEdQSU9MNiwgVlBJQjAsIFRYRDEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXMSwgVlBJQjAsIFZQSTMwLCBWUEkzMF9ERVNDLCBXMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVzEsIFRYRDEsIFRYRDEsIFcxX0RFU0MpOworUElOX0RFQ0xfMihXMSwgR1BJT0w2LCBWUElCMCwgVFhEMSk7CiBGVU5DX0dST1VQX0RFQ0woVFhEMSwgVzEpOwogCiAjZGVmaW5lIFU1IDk1CiAjZGVmaW5lIFU1X0RFU0MgICAgICAgICBTSUdfREVTQ19TRVQoU0NVODQsIDIzKQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElCMSwgVlBJMzAsIFZQSTMwX0RFU0MsIFU1X0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSWEQxLCBSWEQxLCBVNV9ERVNDKTsKLU1TX1BJTl9ERUNMKFU1LCBHUElPTDcsIFZQSUIxLCBSWEQxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVTUsIFZQSUIxLCBWUEkzMCwgVlBJMzBfREVTQywgVTVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFU1LCBSWEQxLCBSWEQxLCBVNV9ERVNDKTsKK1BJTl9ERUNMXzIoVTUsIEdQSU9MNywgVlBJQjEsIFJYRDEpOwogRlVOQ19HUk9VUF9ERUNMKFJYRDEsIFU1KTsKIAogI2RlZmluZSBWMyA5NgogI2RlZmluZSBWM19ERVNDCQlTSUdfREVTQ19TRVQoU0NVODQsIDI0KQotU0lHX0VYUFJfREVDTChWUElPQjIsIFZQSTE4LCBWUEkxOF9ERVNDLCBWM19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJT0IyLCBWUEkyNCwgVlBJMjRfREVTQywgVjNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSU9CMiwgVlBJMzAsIFZQSTMwX0RFU0MsIFYzX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CMiwgU0lHX0VYUFJfUFRSKFZQSU9CMiwgVlBJMTgpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0IyLCBWUEkxOCwgVlBJMThfREVTQywgVjNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElPQjIsIFZQSTI0LCBWUEkyNF9ERVNDLCBWM19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSU9CMiwgVlBJMzAsIFZQSTMwX0RFU0MsIFYzX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CMiwgVlBJLAorCQlTSUdfRVhQUl9QVFIoVlBJT0IyLCBWUEkxOCksCiAJCVNJR19FWFBSX1BUUihWUElPQjIsIFZQSTI0KSwKIAkJU0lHX0VYUFJfUFRSKFZQSU9CMiwgVlBJMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkNUUzIsIE5DVFMyLCBWM19ERVNDKTsKLU1TX1BJTl9ERUNMKFYzLCBHUElPTTAsIFZQSU9CMiwgTkNUUzIpOworU0lHX0VYUFJfTElTVF9BTElBUyhWMywgVlBJT0IyLCBWUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWMywgTkNUUzIsIE5DVFMyLCBWM19ERVNDKTsKK1BJTl9ERUNMXzIoVjMsIEdQSU9NMCwgVlBJT0IyLCBOQ1RTMik7CiBGVU5DX0dST1VQX0RFQ0woTkNUUzIsIFYzKTsKIAogI2RlZmluZSBXMiA5NwogI2RlZmluZSBXMl9ERVNDCQlTSUdfREVTQ19TRVQoU0NVODQsIDI1KQotU0lHX0VYUFJfREVDTChWUElPQjMsIFZQSTE4LCBWUEkxOF9ERVNDLCBXMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJT0IzLCBWUEkyNCwgVlBJMjRfREVTQywgVzJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSU9CMywgVlBJMzAsIFZQSTMwX0RFU0MsIFcyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CMywgU0lHX0VYUFJfUFRSKFZQSU9CMywgVlBJMTgpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0IzLCBWUEkxOCwgVlBJMThfREVTQywgVzJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElPQjMsIFZQSTI0LCBWUEkyNF9ERVNDLCBXMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSU9CMywgVlBJMzAsIFZQSTMwX0RFU0MsIFcyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CMywgVlBJLAorCQlTSUdfRVhQUl9QVFIoVlBJT0IzLCBWUEkxOCksCiAJCVNJR19FWFBSX1BUUihWUElPQjMsIFZQSTI0KSwKIAkJU0lHX0VYUFJfUFRSKFZQSU9CMywgVlBJMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRDRDIsIE5EQ0QyLCBXMl9ERVNDKTsKLU1TX1BJTl9ERUNMKFcyLCBHUElPTTEsIFZQSU9CMywgTkRDRDIpOworU0lHX0VYUFJfTElTVF9BTElBUyhXMiwgVlBJT0IzLCBWUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXMiwgTkRDRDIsIE5EQ0QyLCBXMl9ERVNDKTsKK1BJTl9ERUNMXzIoVzIsIEdQSU9NMSwgVlBJT0IzLCBORENEMik7CiBGVU5DX0dST1VQX0RFQ0woTkRDRDIsIFcyKTsKIAogI2RlZmluZSBZMSA5OAogI2RlZmluZSBZMV9ERVNDCQlTSUdfREVTQ19TRVQoU0NVODQsIDI2KQotU0lHX0VYUFJfREVDTChWUElPQjQsIFZQSTE4LCBWUEkxOF9ERVNDLCBZMV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJT0I0LCBWUEkyNCwgVlBJMjRfREVTQywgWTFfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSU9CNCwgVlBJMzAsIFZQSTMwX0RFU0MsIFkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CNCwgU0lHX0VYUFJfUFRSKFZQSU9CNCwgVlBJMTgpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0I0LCBWUEkxOCwgVlBJMThfREVTQywgWTFfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElPQjQsIFZQSTI0LCBWUEkyNF9ERVNDLCBZMV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSU9CNCwgVlBJMzAsIFZQSTMwX0RFU0MsIFkxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CNCwgVlBJLAorCQlTSUdfRVhQUl9QVFIoVlBJT0I0LCBWUEkxOCksCiAJCVNJR19FWFBSX1BUUihWUElPQjQsIFZQSTI0KSwKIAkJU0lHX0VYUFJfUFRSKFZQSU9CNCwgVlBJMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRTUjIsIE5EU1IyLCBZMV9ERVNDKTsKLU1TX1BJTl9ERUNMKFkxLCBHUElPTTIsIFZQSU9CNCwgTkRTUjIpOworU0lHX0VYUFJfTElTVF9BTElBUyhZMSwgVlBJT0I0LCBWUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShZMSwgTkRTUjIsIE5EU1IyLCBZMV9ERVNDKTsKK1BJTl9ERUNMXzIoWTEsIEdQSU9NMiwgVlBJT0I0LCBORFNSMik7CiBGVU5DX0dST1VQX0RFQ0woTkRTUjIsIFkxKTsKIAogI2RlZmluZSBWNCA5OQogI2RlZmluZSBWNF9ERVNDCQlTSUdfREVTQ19TRVQoU0NVODQsIDI3KQotU0lHX0VYUFJfREVDTChWUElPQjUsIFZQSTE4LCBWUEkxOF9ERVNDLCBWNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJT0I1LCBWUEkyNCwgVlBJMjRfREVTQywgVjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSU9CNSwgVlBJMzAsIFZQSTMwX0RFU0MsIFY0X0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CNSwgU0lHX0VYUFJfUFRSKFZQSU9CNSwgVlBJMTgpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0I1LCBWUEkxOCwgVlBJMThfREVTQywgVjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElPQjUsIFZQSTI0LCBWUEkyNF9ERVNDLCBWNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSU9CNSwgVlBJMzAsIFZQSTMwX0RFU0MsIFY0X0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CNSwgVlBJLAorCQlTSUdfRVhQUl9QVFIoVlBJT0I1LCBWUEkxOCksCiAJCVNJR19FWFBSX1BUUihWUElPQjUsIFZQSTI0KSwKIAkJU0lHX0VYUFJfUFRSKFZQSU9CNSwgVlBJMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTlJJMiwgTlJJMiwgVjRfREVTQyk7Ci1NU19QSU5fREVDTChWNCwgR1BJT00zLCBWUElPQjUsIE5SSTIpOworU0lHX0VYUFJfTElTVF9BTElBUyhWNCwgVlBJT0I1LCBWUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWNCwgTlJJMiwgTlJJMiwgVjRfREVTQyk7CitQSU5fREVDTF8yKFY0LCBHUElPTTMsIFZQSU9CNSwgTlJJMik7CiBGVU5DX0dST1VQX0RFQ0woTlJJMiwgVjQpOwogCiAjZGVmaW5lIFczIDEwMAogI2RlZmluZSBXM19ERVNDCQlTSUdfREVTQ19TRVQoU0NVODQsIDI4KQotU0lHX0VYUFJfREVDTChWUElPQjYsIFZQSTE4LCBWUEkxOF9ERVNDLCBXM19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJT0I2LCBWUEkyNCwgVlBJMjRfREVTQywgVzNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSU9CNiwgVlBJMzAsIFZQSTMwX0RFU0MsIFczX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CNiwgU0lHX0VYUFJfUFRSKFZQSU9CNiwgVlBJMTgpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0I2LCBWUEkxOCwgVlBJMThfREVTQywgVzNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElPQjYsIFZQSTI0LCBWUEkyNF9ERVNDLCBXM19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSU9CNiwgVlBJMzAsIFZQSTMwX0RFU0MsIFczX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9CNiwgVlBJLAorCQlTSUdfRVhQUl9QVFIoVlBJT0I2LCBWUEkxOCksCiAJCVNJR19FWFBSX1BUUihWUElPQjYsIFZQSTI0KSwKIAkJU0lHX0VYUFJfUFRSKFZQSU9CNiwgVlBJMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRUUjIsIE5EVFIyLCBXM19ERVNDKTsKLU1TX1BJTl9ERUNMKFczLCBHUElPTTQsIFZQSU9CNiwgTkRUUjIpOworU0lHX0VYUFJfTElTVF9BTElBUyhXMywgVlBJT0I2LCBWUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXMywgTkRUUjIsIE5EVFIyLCBXM19ERVNDKTsKK1BJTl9ERUNMXzIoVzMsIEdQSU9NNCwgVlBJT0I2LCBORFRSMik7CiBGVU5DX0dST1VQX0RFQ0woTkRUUjIsIFczKTsKIAogI2RlZmluZSBZMiAxMDEKICNkZWZpbmUgWTJfREVTQwkJU0lHX0RFU0NfU0VUKFNDVTg0LCAyOSkKLVNJR19FWFBSX0RFQ0woVlBJT0I3LCBWUEkxOCwgVlBJMThfREVTQywgWTJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSU9CNywgVlBJMjQsIFZQSTI0X0RFU0MsIFkyX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUElPQjcsIFZQSTMwLCBWUEkzMF9ERVNDLCBZMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUElPQjcsIFNJR19FWFBSX1BUUihWUElPQjcsIFZQSTE4KSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSU9CNywgVlBJMTgsIFZQSTE4X0RFU0MsIFkyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0I3LCBWUEkyNCwgVlBJMjRfREVTQywgWTJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElPQjcsIFZQSTMwLCBWUEkzMF9ERVNDLCBZMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUElPQjcsIFZQSSwKKwkJU0lHX0VYUFJfUFRSKFZQSU9CNywgVlBJMTgpLAogCQlTSUdfRVhQUl9QVFIoVlBJT0I3LCBWUEkyNCksCiAJCVNJR19FWFBSX1BUUihWUElPQjcsIFZQSTMwKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5SVFMyLCBOUlRTMiwgWTJfREVTQyk7Ci1NU19QSU5fREVDTChZMiwgR1BJT001LCBWUElPQjcsIE5SVFMyKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoWTIsIFZQSU9CNywgVlBJKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoWTIsIE5SVFMyLCBOUlRTMiwgWTJfREVTQyk7CitQSU5fREVDTF8yKFkyLCBHUElPTTUsIFZQSU9CNywgTlJUUzIpOwogRlVOQ19HUk9VUF9ERUNMKE5SVFMyLCBZMik7CiAKICNkZWZpbmUgQUExIDEwMgogI2RlZmluZSBBQTFfREVTQwlTSUdfREVTQ19TRVQoU0NVODQsIDMwKQotU0lHX0VYUFJfREVDTChWUElPQjgsIFZQSTE4LCBWUEkxOF9ERVNDLCBBQTFfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSU9COCwgVlBJMjQsIFZQSTI0X0RFU0MsIEFBMV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJT0I4LCBWUEkzMCwgVlBJMzBfREVTQywgQUExX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9COCwgU0lHX0VYUFJfUFRSKFZQSU9COCwgVlBJMTgpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0I4LCBWUEkxOCwgVlBJMThfREVTQywgQUExX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0I4LCBWUEkyNCwgVlBJMjRfREVTQywgQUExX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0I4LCBWUEkzMCwgVlBJMzBfREVTQywgQUExX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQSU9COCwgVlBJLAorCQlTSUdfRVhQUl9QVFIoVlBJT0I4LCBWUEkxOCksCiAJCVNJR19FWFBSX1BUUihWUElPQjgsIFZQSTI0KSwKIAkJU0lHX0VYUFJfUFRSKFZQSU9COCwgVlBJMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVFhEMiwgVFhEMiwgQUExX0RFU0MpOwotTVNfUElOX0RFQ0woQUExLCBHUElPTTYsIFZQSU9COCwgVFhEMik7CitTSUdfRVhQUl9MSVNUX0FMSUFTKEFBMSwgVlBJT0I4LCBWUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQTEsIFRYRDIsIFRYRDIsIEFBMV9ERVNDKTsKK1BJTl9ERUNMXzIoQUExLCBHUElPTTYsIFZQSU9COCwgVFhEMik7CiBGVU5DX0dST1VQX0RFQ0woVFhEMiwgQUExKTsKIAogI2RlZmluZSBWNSAxMDMKICNkZWZpbmUgVjVfREVTQwkJU0lHX0RFU0NfU0VUKFNDVTg0LCAzMSkKLVNJR19FWFBSX0RFQ0woVlBJT0I5LCBWUEkxOCwgVlBJMThfREVTQywgVjVfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSU9COSwgVlBJMjQsIFZQSTI0X0RFU0MsIFY1X0RFU0MpOwotU0lHX0VYUFJfREVDTChWUElPQjksIFZQSTMwLCBWUEkzMF9ERVNDLCBWNV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUElPQjksIFNJR19FWFBSX1BUUihWUElPQjksIFZQSTE4KSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSU9COSwgVlBJMTgsIFZQSTE4X0RFU0MsIFY1X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJT0I5LCBWUEkyNCwgVlBJMjRfREVTQywgVjVfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElPQjksIFZQSTMwLCBWUEkzMF9ERVNDLCBWNV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUElPQjksIFZQSSwKKwkJU0lHX0VYUFJfUFRSKFZQSU9COSwgVlBJMTgpLAogCQlTSUdfRVhQUl9QVFIoVlBJT0I5LCBWUEkyNCksCiAJCVNJR19FWFBSX1BUUihWUElPQjksIFZQSTMwKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJYRDIsIFJYRDIsIFY1X0RFU0MpOwotTVNfUElOX0RFQ0woVjUsIEdQSU9NNywgVlBJT0I5LCBSWEQyKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoVjUsIFZQSU9COSwgVlBJKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVjUsIFJYRDIsIFJYRDIsIFY1X0RFU0MpOworUElOX0RFQ0xfMihWNSwgR1BJT003LCBWUElPQjksIFJYRDIpOwogRlVOQ19HUk9VUF9ERUNMKFJYRDIsIFY1KTsKIAogI2RlZmluZSBXNCAxMDQKICNkZWZpbmUgVzRfREVTQyAgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4OCwgMCkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVlBJRzAsIFZQSTMwLCBWUEkzMF9ERVNDLCBXNF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUFdNMCwgUFdNMCwgVzRfREVTQyk7Ci1NU19QSU5fREVDTChXNCwgR1BJT04wLCBWUElHMCwgUFdNMCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFc0LCBWUElHMCwgVlBJMzAsIFZQSTMwX0RFU0MsIFc0X0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXNCwgUFdNMCwgUFdNMCwgVzRfREVTQyk7CitQSU5fREVDTF8yKFc0LCBHUElPTjAsIFZQSUcwLCBQV00wKTsKIEZVTkNfR1JPVVBfREVDTChQV00wLCBXNCk7CiAKICNkZWZpbmUgWTMgMTA1CiAjZGVmaW5lIFkzX0RFU0MgICAgICAgICBTSUdfREVTQ19TRVQoU0NVODgsIDEpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUcxLCBWUEkzMCwgVlBJMzBfREVTQywgWTNfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFBXTTEsIFBXTTEsIFkzX0RFU0MpOwotTVNfUElOX0RFQ0woWTMsIEdQSU9OMSwgVlBJRzEsIFBXTTEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShZMywgVlBJRzEsIFZQSTMwLCBWUEkzMF9ERVNDLCBZM19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoWTMsIFBXTTEsIFBXTTEsIFkzX0RFU0MpOworUElOX0RFQ0xfMihZMywgR1BJT04xLCBWUElHMSwgUFdNMSk7CiBGVU5DX0dST1VQX0RFQ0woUFdNMSwgWTMpOwogCiAjZGVmaW5lIEFBMiAxMDYKICNkZWZpbmUgQUEyX0RFU0MgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4OCwgMikKLVNJR19FWFBSX0RFQ0woVlBJRzIsIFZQSTE4LCBWUEkxOF9ERVNDLCBBQTJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSUcyLCBWUEkyNCwgVlBJMjRfREVTQywgQUEyX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUElHMiwgVlBJMzAsIFZQSTMwX0RFU0MsIEFBMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUElHMiwgU0lHX0VYUFJfUFRSKFZQSUcyLCBWUEkxOCksCitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElHMiwgVlBJMTgsIFZQSTE4X0RFU0MsIEFBMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSUcyLCBWUEkyNCwgVlBJMjRfREVTQywgQUEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJRzIsIFZQSTMwLCBWUEkzMF9ERVNDLCBBQTJfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBJRzIsIFZQSSwKKwkJU0lHX0VYUFJfUFRSKFZQSUcyLCBWUEkxOCksCiAJCVNJR19FWFBSX1BUUihWUElHMiwgVlBJMjQpLAogCQlTSUdfRVhQUl9QVFIoVlBJRzIsIFZQSTMwKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFBXTTIsIFBXTTIsIEFBMl9ERVNDKTsKLU1TX1BJTl9ERUNMKEFBMiwgR1BJT04yLCBWUElHMiwgUFdNMik7CitTSUdfRVhQUl9MSVNUX0FMSUFTKEFBMiwgVlBJRzIsIFZQSSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFBMiwgUFdNMiwgUFdNMiwgQUEyX0RFU0MpOworUElOX0RFQ0xfMihBQTIsIEdQSU9OMiwgVlBJRzIsIFBXTTIpOwogRlVOQ19HUk9VUF9ERUNMKFBXTTIsIEFBMik7CiAKICNkZWZpbmUgQUIxIDEwNwogI2RlZmluZSBBQjFfREVTQyAgICAgICAgU0lHX0RFU0NfU0VUKFNDVTg4LCAzKQotU0lHX0VYUFJfREVDTChWUElHMywgVlBJMTgsIFZQSTE4X0RFU0MsIEFCMV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJRzMsIFZQSTI0LCBWUEkyNF9ERVNDLCBBQjFfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQSUczLCBWUEkzMCwgVlBJMzBfREVTQywgQUIxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQSUczLCBTSUdfRVhQUl9QVFIoVlBJRzMsIFZQSTE4KSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSUczLCBWUEkxOCwgVlBJMThfREVTQywgQUIxX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJRzMsIFZQSTI0LCBWUEkyNF9ERVNDLCBBQjFfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElHMywgVlBJMzAsIFZQSTMwX0RFU0MsIEFCMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUElHMywgVlBJLAorCQlTSUdfRVhQUl9QVFIoVlBJRzMsIFZQSTE4KSwKIAkJU0lHX0VYUFJfUFRSKFZQSUczLCBWUEkyNCksCiAJCVNJR19FWFBSX1BUUihWUElHMywgVlBJMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUFdNMywgUFdNMywgQUIxX0RFU0MpOwotTVNfUElOX0RFQ0woQUIxLCBHUElPTjMsIFZQSUczLCBQV00zKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoQUIxLCBWUElHMywgVlBJKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUIxLCBQV00zLCBQV00zLCBBQjFfREVTQyk7CitQSU5fREVDTF8yKEFCMSwgR1BJT04zLCBWUElHMywgUFdNMyk7CiBGVU5DX0dST1VQX0RFQ0woUFdNMywgQUIxKTsKIAogI2RlZmluZSBXNSAxMDgKICNkZWZpbmUgVzVfREVTQyAgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4OCwgNCkKLVNJR19FWFBSX0RFQ0woVlBJRzQsIFZQSTE4LCBWUEkxOF9ERVNDLCBXNV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJRzQsIFZQSTI0LCBWUEkyNF9ERVNDLCBXNV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJRzQsIFZQSTMwLCBWUEkzMF9ERVNDLCBXNV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUElHNCwgU0lHX0VYUFJfUFRSKFZQSUc0LCBWUEkxOCksCitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElHNCwgVlBJMTgsIFZQSTE4X0RFU0MsIFc1X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJRzQsIFZQSTI0LCBWUEkyNF9ERVNDLCBXNV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSUc0LCBWUEkzMCwgVlBJMzBfREVTQywgVzVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBJRzQsIFZQSSwKKwkJU0lHX0VYUFJfUFRSKFZQSUc0LCBWUEkxOCksCiAJCVNJR19FWFBSX1BUUihWUElHNCwgVlBJMjQpLAogCQlTSUdfRVhQUl9QVFIoVlBJRzQsIFZQSTMwKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFBXTTQsIFBXTTQsIFc1X0RFU0MpOwotTVNfUElOX0RFQ0woVzUsIEdQSU9ONCwgVlBJRzQsIFBXTTQpOworU0lHX0VYUFJfTElTVF9BTElBUyhXNSwgVlBJRzQsIFZQSSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFc1LCBQV000LCBQV000LCBXNV9ERVNDKTsKK1BJTl9ERUNMXzIoVzUsIEdQSU9ONCwgVlBJRzQsIFBXTTQpOwogRlVOQ19HUk9VUF9ERUNMKFBXTTQsIFc1KTsKIAogI2RlZmluZSBZNCAxMDkKICNkZWZpbmUgWTRfREVTQyAgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4OCwgNSkKLVNJR19FWFBSX0RFQ0woVlBJRzUsIFZQSTE4LCBWUEkxOF9ERVNDLCBZNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJRzUsIFZQSTI0LCBWUEkyNF9ERVNDLCBZNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBJRzUsIFZQSTMwLCBWUEkzMF9ERVNDLCBZNF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUElHNSwgU0lHX0VYUFJfUFRSKFZQSUc1LCBWUEkxOCksCitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElHNSwgVlBJMTgsIFZQSTE4X0RFU0MsIFk0X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJRzUsIFZQSTI0LCBWUEkyNF9ERVNDLCBZNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSUc1LCBWUEkzMCwgVlBJMzBfREVTQywgWTRfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBJRzUsIFZQSSwKKwkJU0lHX0VYUFJfUFRSKFZQSUc1LCBWUEkxOCksCiAJCVNJR19FWFBSX1BUUihWUElHNSwgVlBJMjQpLAogCQlTSUdfRVhQUl9QVFIoVlBJRzUsIFZQSTMwKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFBXTTUsIFBXTTUsIFk0X0RFU0MpOwotTVNfUElOX0RFQ0woWTQsIEdQSU9ONSwgVlBJRzUsIFBXTTUpOworU0lHX0VYUFJfTElTVF9BTElBUyhZNCwgVlBJRzUsIFZQSSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFk0LCBQV001LCBQV001LCBZNF9ERVNDKTsKK1BJTl9ERUNMXzIoWTQsIEdQSU9ONSwgVlBJRzUsIFBXTTUpOwogRlVOQ19HUk9VUF9ERUNMKFBXTTUsIFk0KTsKIAogI2RlZmluZSBBQTMgMTEwCiAjZGVmaW5lIEFBM19ERVNDICAgICAgICBTSUdfREVTQ19TRVQoU0NVODgsIDYpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUc2LCBWUEkzMCwgVlBJMzBfREVTQywgQUEzX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQV002LCBQV002LCBBQTNfREVTQyk7Ci1NU19QSU5fREVDTChBQTMsIEdQSU9ONiwgVlBJRzYsIFBXTTYpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQTMsIFZQSUc2LCBWUEkzMCwgVlBJMzBfREVTQywgQUEzX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQTMsIFBXTTYsIFBXTTYsIEFBM19ERVNDKTsKK1BJTl9ERUNMXzIoQUEzLCBHUElPTjYsIFZQSUc2LCBQV002KTsKIEZVTkNfR1JPVVBfREVDTChQV002LCBBQTMpOwogCiAjZGVmaW5lIEFCMiAxMTEKICNkZWZpbmUgQUIyX0RFU0MgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4OCwgNykKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVlBJRzcsIFZQSTMwLCBWUEkzMF9ERVNDLCBBQjJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFBXTTcsIFBXTTcsIEFCMl9ERVNDKTsKLU1TX1BJTl9ERUNMKEFCMiwgR1BJT043LCBWUElHNywgUFdNNyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFCMiwgVlBJRzcsIFZQSTMwLCBWUEkzMF9ERVNDLCBBQjJfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFCMiwgUFdNNywgUFdNNywgQUIyX0RFU0MpOworUElOX0RFQ0xfMihBQjIsIEdQSU9ONywgVlBJRzcsIFBXTTcpOwogRlVOQ19HUk9VUF9ERUNMKFBXTTcsIEFCMik7CiAKICNkZWZpbmUgVjYgMTEyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUc4LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCA4KSk7Ci1TU19QSU5fREVDTChWNiwgR1BJT08wLCBWUElHOCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFY2LCBWUElHOCwgVlBJMjQsIFZQSTI0X0RFU0MsIFNJR19ERVNDX1NFVChTQ1U4OCwgOCkpOworUElOX0RFQ0xfMShWNiwgR1BJT08wLCBWUElHOCk7CiAKICNkZWZpbmUgWTUgMTEzCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUc5LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCA5KSk7Ci1TU19QSU5fREVDTChZNSwgR1BJT08xLCBWUElHOSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFk1LCBWUElHOSwgVlBJMjQsIFZQSTI0X0RFU0MsIFNJR19ERVNDX1NFVChTQ1U4OCwgOSkpOworUElOX0RFQ0xfMShZNSwgR1BJT08xLCBWUElHOSk7CiAKICNkZWZpbmUgQUE0IDExNAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElSMCwgVlBJMzAsIFZQSTMwX0RFU0MsIFNJR19ERVNDX1NFVChTQ1U4OCwgMTApKTsKLVNTX1BJTl9ERUNMKEFBNCwgR1BJT08yLCBWUElSMCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFBNCwgVlBJUjAsIFZQSTMwLCBWUEkzMF9ERVNDLAorCQkJICBTSUdfREVTQ19TRVQoU0NVODgsIDEwKSk7CitQSU5fREVDTF8xKEFBNCwgR1BJT08yLCBWUElSMCk7CiAKICNkZWZpbmUgQUIzIDExNQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElSMSwgVlBJMzAsIFZQSTMwX0RFU0MsIFNJR19ERVNDX1NFVChTQ1U4OCwgMTEpKTsKLVNTX1BJTl9ERUNMKEFCMywgR1BJT08zLCBWUElSMSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFCMywgVlBJUjEsIFZQSTMwLCBWUEkzMF9ERVNDLAorCQkJICBTSUdfREVTQ19TRVQoU0NVODgsIDExKSk7CitQSU5fREVDTF8xKEFCMywgR1BJT08zLCBWUElSMSk7CiAKICNkZWZpbmUgVzYgMTE2Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSVIyLCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCAxMikpOwotU1NfUElOX0RFQ0woVzYsIEdQSU9PNCwgVlBJUjIpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXNiwgVlBJUjIsIFZQSTI0LCBWUEkyNF9ERVNDLAorCQkJICBTSUdfREVTQ19TRVQoU0NVODgsIDEyKSk7CitQSU5fREVDTF8xKFc2LCBHUElPTzQsIFZQSVIyKTsKIAogI2RlZmluZSBBQTUgMTE3Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSVIzLCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCAxMykpOwotU1NfUElOX0RFQ0woQUE1LCBHUElPTzUsIFZQSVIzKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUE1LCBWUElSMywgVlBJMjQsIFZQSTI0X0RFU0MsCisJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMTMpKTsKK1BJTl9ERUNMXzEoQUE1LCBHUElPTzUsIFZQSVIzKTsKIAogI2RlZmluZSBBQjQgMTE4Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSVI0LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCAxNCkpOwotU1NfUElOX0RFQ0woQUI0LCBHUElPTzYsIFZQSVI0KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUI0LCBWUElSNCwgVlBJMjQsIFZQSTI0X0RFU0MsCisJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMTQpKTsKK1BJTl9ERUNMXzEoQUI0LCBHUElPTzYsIFZQSVI0KTsKIAogI2RlZmluZSBWNyAxMTkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVlBJUjUsIFZQSTI0LCBWUEkyNF9ERVNDLCBTSUdfREVTQ19TRVQoU0NVODgsIDE1KSk7Ci1TU19QSU5fREVDTChWNywgR1BJT083LCBWUElSNSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFY3LCBWUElSNSwgVlBJMjQsIFZQSTI0X0RFU0MsCisJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMTUpKTsKK1BJTl9ERUNMXzEoVjcsIEdQSU9PNywgVlBJUjUpOwogCiAjZGVmaW5lIFk2IDEyMAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElSNiwgVlBJMjQsIFZQSTI0X0RFU0MsIFNJR19ERVNDX1NFVChTQ1U4OCwgMTYpKTsKLVNTX1BJTl9ERUNMKFk2LCBHUElPUDAsIFZQSVI2KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoWTYsIFZQSVI2LCBWUEkyNCwgVlBJMjRfREVTQywKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTg4LCAxNikpOworUElOX0RFQ0xfMShZNiwgR1BJT1AwLCBWUElSNik7CiAKICNkZWZpbmUgQUI1IDEyMQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElSNywgVlBJMjQsIFZQSTI0X0RFU0MsIFNJR19ERVNDX1NFVChTQ1U4OCwgMTcpKTsKLVNTX1BJTl9ERUNMKEFCNSwgR1BJT1AxLCBWUElSNyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFCNSwgVlBJUjcsIFZQSTI0LCBWUEkyNF9ERVNDLAorCQkJICBTSUdfREVTQ19TRVQoU0NVODgsIDE3KSk7CitQSU5fREVDTF8xKEFCNSwgR1BJT1AxLCBWUElSNyk7CiAKICNkZWZpbmUgVzcgMTIyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSVI4LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCAxOCkpOwotU1NfUElOX0RFQ0woVzcsIEdQSU9QMiwgVlBJUjgpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXNywgVlBJUjgsIFZQSTI0LCBWUEkyNF9ERVNDLAorCQkJICBTSUdfREVTQ19TRVQoU0NVODgsIDE4KSk7CitQSU5fREVDTF8xKFc3LCBHUElPUDIsIFZQSVI4KTsKIAogI2RlZmluZSBBQTYgMTIzCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSVI5LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCAxOSkpOwotU1NfUElOX0RFQ0woQUE2LCBHUElPUDMsIFZQSVI5KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUE2LCBWUElSOSwgVlBJMjQsIFZQSTI0X0RFU0MsCisJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMTkpKTsKK1BJTl9ERUNMXzEoQUE2LCBHUElPUDMsIFZQSVI5KTsKIAogRlVOQ19HUk9VUF9ERUNMKFZQSTE4LCBUNSwgVTMsIFYxLCBVNCwgVjIsIFYzLCBXMiwgWTEsIFY0LCBXMywgWTIsIEFBMSwgVjUsCiAJCUFBMjIsIFc1LCBZNCwgQUEzLCBBQjIpOwpAQCAtOTc5LDEyICsxMDM4LDEyIEBAIEZVTkNfR1JPVVBfREVDTChWUEkzMCwgVDUsIFUzLCBWMSwgVTQsIFYyLCBXMSwgVTUsIFYzLCBXMiwgWTEsIFY0LCBXMywgWTIsIEFBMSwKIAkJVjUsIFc0LCBZMywgQUEyMiwgVzUsIFk0LCBBQTMsIEFCMiwgQUE0LCBBQjMpOwogCiAjZGVmaW5lIEFCNiAxMjQKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1A0LCBHUElPUDQpOwotTVNfUElOX0RFQ0xfKEFCNiwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1A0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFCNiwgR1BJT1A0LCBHUElPUDQpOworUElOX0RFQ0xfKEFCNiwgU0lHX0VYUFJfTElTVF9QVFIoQUI2LCBHUElPUDQpKTsKIAogI2RlZmluZSBZNyAxMjUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1A1LCBHUElPUDUpOwotTVNfUElOX0RFQ0xfKFk3LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPUDUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoWTcsIEdQSU9QNSwgR1BJT1A1KTsKK1BJTl9ERUNMXyhZNywgU0lHX0VYUFJfTElTVF9QVFIoWTcsIEdQSU9QNSkpOwogCiAjZGVmaW5lIEFBNyAxMjYKIFNTU0ZfUElOX0RFQ0woQUE3LCBHUElPUDYsIEJNQ0lOVCwgU0lHX0RFU0NfU0VUKFNDVTg4LCAyMikpOwpAQCAtOTk1LDM2ICsxMDU0LDM2IEBAIFNTU0ZfUElOX0RFQ0woQUI3LCBHUElPUDcsIEZMQUNLLCBTSUdfREVTQ19TRVQoU0NVODgsIDIzKSk7CiAjZGVmaW5lIEkyQzNfREVTQwlTSUdfREVTQ19TRVQoU0NVOTAsIDE2KQogCiAjZGVmaW5lIEQzIDEyOAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0wzLCBJMkMzLCBJMkMzX0RFU0MpOwotU1NfUElOX0RFQ0woRDMsIEdQSU9RMCwgU0NMMyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQzLCBTQ0wzLCBJMkMzLCBJMkMzX0RFU0MpOworUElOX0RFQ0xfMShEMywgR1BJT1EwLCBTQ0wzKTsKIAogI2RlZmluZSBDMiAxMjkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBMywgSTJDMywgSTJDM19ERVNDKTsKLVNTX1BJTl9ERUNMKEMyLCBHUElPUTEsIFNEQTMpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMiwgU0RBMywgSTJDMywgSTJDM19ERVNDKTsKK1BJTl9ERUNMXzEoQzIsIEdQSU9RMSwgU0RBMyk7CiAKIEZVTkNfR1JPVVBfREVDTChJMkMzLCBEMywgQzIpOwogCiAjZGVmaW5lIEkyQzRfREVTQwlTSUdfREVTQ19TRVQoU0NVOTAsIDE3KQogCiAjZGVmaW5lIEIxIDEzMAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0w0LCBJMkM0LCBJMkM0X0RFU0MpOwotU1NfUElOX0RFQ0woQjEsIEdQSU9RMiwgU0NMNCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxLCBTQ0w0LCBJMkM0LCBJMkM0X0RFU0MpOworUElOX0RFQ0xfMShCMSwgR1BJT1EyLCBTQ0w0KTsKIAogI2RlZmluZSBGNSAxMzEKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBNCwgSTJDNCwgSTJDNF9ERVNDKTsKLVNTX1BJTl9ERUNMKEY1LCBHUElPUTMsIFNEQTQpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShGNSwgU0RBNCwgSTJDNCwgSTJDNF9ERVNDKTsKK1BJTl9ERUNMXzEoRjUsIEdQSU9RMywgU0RBNCk7CiAKIEZVTkNfR1JPVVBfREVDTChJMkM0LCBCMSwgRjUpOwogCiAjZGVmaW5lIEkyQzE0X0RFU0MJU0lHX0RFU0NfU0VUKFNDVTkwLCAyNykKIAogI2RlZmluZSBINCAxMzIKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0NMMTQsIEkyQzE0LCBJMkMxNF9ERVNDKTsKLVNTX1BJTl9ERUNMKEg0LCBHUElPUTQsIFNDTDE0KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoSDQsIFNDTDE0LCBJMkMxNCwgSTJDMTRfREVTQyk7CitQSU5fREVDTF8xKEg0LCBHUElPUTQsIFNDTDE0KTsKIAogI2RlZmluZSBIMyAxMzMKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBMTQsIEkyQzE0LCBJMkMxNF9ERVNDKTsKLVNTX1BJTl9ERUNMKEgzLCBHUElPUTUsIFNEQTE0KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoSDMsIFNEQTE0LCBJMkMxNCwgSTJDMTRfREVTQyk7CitQSU5fREVDTF8xKEgzLCBHUElPUTUsIFNEQTE0KTsKIAogRlVOQ19HUk9VUF9ERUNMKEkyQzE0LCBINCwgSDMpOwogCkBAIC0xMDM5LDEyICsxMDk4LDEyIEBAIEZVTkNfR1JPVVBfREVDTChJMkMxNCwgSDQsIEgzKTsKICNkZWZpbmUgVVNCMTFIM19ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMjgpCiAKICNkZWZpbmUgSDIgMTM0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFVTQjExSERQMywgVVNCMTFIMywgVVNCMTFIM19ERVNDKTsKLVNTX1BJTl9ERUNMKEgyLCBHUElPUTYsIFVTQjExSERQMyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEgyLCBVU0IxMUhEUDMsIFVTQjExSDMsIFVTQjExSDNfREVTQyk7CitQSU5fREVDTF8xKEgyLCBHUElPUTYsIFVTQjExSERQMyk7CiAKICNkZWZpbmUgSDEgMTM1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFVTQjExSEROMywgVVNCMTFIMywgVVNCMTFIM19ERVNDKTsKLVNTX1BJTl9ERUNMKEgxLCBHUElPUTcsIFVTQjExSEROMyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEgxLCBVU0IxMUhETjMsIFVTQjExSDMsIFVTQjExSDNfREVTQyk7CitQSU5fREVDTF8xKEgxLCBHUElPUTcsIFVTQjExSEROMyk7CiAKICNkZWZpbmUgVjIwIDEzNgogU1NTRl9QSU5fREVDTChWMjAsIEdQSU9SMCwgUk9NQ1MxLCBTSUdfREVTQ19TRVQoU0NVODgsIDI0KSk7CkBAIC0xMDY3LDMwMyArMTEyNiwzMzMgQEAgU1NTRl9QSU5fREVDTChVMTksIEdQSU9SMywgUk9NQ1M0LCBTSUdfREVTQ19TRVQoU0NVODgsIDI3KSk7CiAKICNkZWZpbmUgVjIxIDE0MAogI2RlZmluZSBWMjFfREVTQwlTSUdfREVTQ19TRVQoU0NVODgsIDI4KQotU0lHX0VYUFJfREVDTChST01BMjQsIFJPTTgsIFYyMV9ERVNDLCBWUE9fT0ZGXzEyKTsKLVNJR19FWFBSX0RFQ0woUk9NQTI0LCBST00xNiwgVjIxX0RFU0MsIFZQT19PRkZfMTIpOwotU0lHX0VYUFJfREVDTChST01BMjQsIFJPTTE2UywgVjIxX0RFU0MsIFZQT19PRkZfMTIpOwotU0lHX0VYUFJfTElTVF9ERUNMKFJPTUEyNCwgU0lHX0VYUFJfUFRSKFJPTUEyNCwgUk9NOCksCitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMjQsIFJPTTgsIFYyMV9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUEyNCwgUk9NMTYsIFYyMV9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUEyNCwgUk9NMTZTLCBWMjFfREVTQywgVlBPX09GRl8xMik7CitTSUdfRVhQUl9MSVNUX0RFQ0woUk9NQTI0LCBST00sCisJCVNJR19FWFBSX1BUUihST01BMjQsIFJPTTgpLAogCQlTSUdfRVhQUl9QVFIoUk9NQTI0LCBST00xNiksCiAJCVNJR19FWFBSX1BUUihST01BMjQsIFJPTTE2UykpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUE9SNiwgVlBPMjQsIFYyMV9ERVNDLCBWUE9fMjRfT0ZGKTsKLU1TX1BJTl9ERUNMKFYyMSwgR1BJT1I0LCBST01BMjQsIFZQT1I2KTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoVjIxLCBST01BMjQsIFJPTSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFYyMSwgVlBPUjYsIFZQTzI0LCBWMjFfREVTQywgVlBPXzI0X09GRik7CitQSU5fREVDTF8yKFYyMSwgR1BJT1I0LCBST01BMjQsIFZQT1I2KTsKIAogI2RlZmluZSBXMjIgMTQxCiAjZGVmaW5lIFcyMl9ERVNDCVNJR19ERVNDX1NFVChTQ1U4OCwgMjkpCi1TSUdfRVhQUl9ERUNMKFJPTUEyNSwgUk9NOCwgVzIyX0RFU0MsIFZQT19PRkZfMTIpOwotU0lHX0VYUFJfREVDTChST01BMjUsIFJPTTE2LCBXMjJfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9ERUNMKFJPTUEyNSwgUk9NMTZTLCBXMjJfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woUk9NQTI1LCBTSUdfRVhQUl9QVFIoUk9NQTI1LCBST004KSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUEyNSwgUk9NOCwgVzIyX0RFU0MsIFZQT19PRkZfMTIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTI1LCBST00xNiwgVzIyX0RFU0MsIFZQT19PRkZfMTIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTI1LCBST00xNlMsIFcyMl9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0xJU1RfREVDTChST01BMjUsIFJPTSwKKwkJU0lHX0VYUFJfUFRSKFJPTUEyNSwgUk9NOCksCiAJCVNJR19FWFBSX1BUUihST01BMjUsIFJPTTE2KSwKIAkJU0lHX0VYUFJfUFRSKFJPTUEyNSwgUk9NMTZTKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQT1I3LCBWUE8yNCwgVzIyX0RFU0MsIFZQT18yNF9PRkYpOwotTVNfUElOX0RFQ0woVzIyLCBHUElPUjUsIFJPTUEyNSwgVlBPUjcpOworU0lHX0VYUFJfTElTVF9BTElBUyhXMjIsIFJPTUEyNSwgUk9NKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVzIyLCBWUE9SNywgVlBPMjQsIFcyMl9ERVNDLCBWUE9fMjRfT0ZGKTsKK1BJTl9ERUNMXzIoVzIyLCBHUElPUjUsIFJPTUEyNSwgVlBPUjcpOwogCiAjZGVmaW5lIEM2IDE0MgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShNREMxLCBNRElPMSwgU0lHX0RFU0NfU0VUKFNDVTg4LCAzMCkpOwotU1NfUElOX0RFQ0woQzYsIEdQSU9SNiwgTURDMSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEM2LCBNREMxLCBNRElPMSwgU0lHX0RFU0NfU0VUKFNDVTg4LCAzMCkpOworUElOX0RFQ0xfMShDNiwgR1BJT1I2LCBNREMxKTsKIAogI2RlZmluZSBBNSAxNDMKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTURJTzEsIE1ESU8xLCBTSUdfREVTQ19TRVQoU0NVODgsIDMxKSk7Ci1TU19QSU5fREVDTChBNSwgR1BJT1I3LCBNRElPMSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEE1LCBNRElPMSwgTURJTzEsIFNJR19ERVNDX1NFVChTQ1U4OCwgMzEpKTsKK1BJTl9ERUNMXzEoQTUsIEdQSU9SNywgTURJTzEpOwogCiBGVU5DX0dST1VQX0RFQ0woTURJTzEsIEM2LCBBNSk7CiAKICNkZWZpbmUgVTIxIDE0NAogI2RlZmluZSBVMjFfREVTQyAgICAgICAgU0lHX0RFU0NfU0VUKFNDVThDLCAwKQotU0lHX0VYUFJfREVDTChST01ENCwgUk9NOCwgVTIxX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUQ0LCBST00xNiwgVTIxX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUQ0LCBST00xNlMsIFUyMV9ERVNDLCBWUE9PRkYwX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFJPTUQ0LCBTSUdfRVhQUl9QVFIoUk9NRDQsIFJPTTgpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NRDQsIFJPTTgsIFUyMV9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NRDQsIFJPTTE2LCBVMjFfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQ0LCBST00xNlMsIFUyMV9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFJPTUQ0LCBST00sCisJCVNJR19FWFBSX1BUUihST01ENCwgUk9NOCksCiAJCVNJR19FWFBSX1BUUihST01ENCwgUk9NMTYpLAogCQlTSUdfRVhQUl9QVFIoUk9NRDQsIFJPTTE2UykpOwotU0lHX0VYUFJfREVDTChWUE9ERSwgVlBPMTIsIFUyMV9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPREUsIFZQTzI0LCBVMjFfREVTQywgVlBPMTJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChWUE9ERSwgVlBPMTIsIFZQTzI0KTsKLU1TX1BJTl9ERUNMKFUyMSwgR1BJT1MwLCBST01ENCwgVlBPREUpOworU0lHX0VYUFJfTElTVF9BTElBUyhVMjEsIFJPTUQ0LCBST00pOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPREUsIFZQTzEyLCBVMjFfREVTQywgVlBPMTJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9ERSwgVlBPMjQsIFUyMV9ERVNDLCBWUE8xMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFUyMSwgVlBPREUsIFZQTzEyLCBWUE8yNCk7CitQSU5fREVDTF8yKFUyMSwgR1BJT1MwLCBST01ENCwgVlBPREUpOwogCiAjZGVmaW5lIFQxOSAxNDUKICNkZWZpbmUgVDE5X0RFU0MgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4QywgMSkKLVNJR19FWFBSX0RFQ0woUk9NRDUsIFJPTTgsIFQxOV9ERVNDLCBWUE9PRkYwX0RFU0MpOwotU0lHX0VYUFJfREVDTChST01ENSwgUk9NMTYsIFQxOV9ERVNDLCBWUE9PRkYwX0RFU0MpOwotU0lHX0VYUFJfREVDTChST01ENSwgUk9NMTZTLCBUMTlfREVTQywgVlBPT0ZGMF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChST01ENSwgU0lHX0VYUFJfUFRSKFJPTUQ1LCBST004KSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQ1LCBST004LCBUMTlfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQ1LCBST00xNiwgVDE5X0RFU0MsIFZQT09GRjBfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01ENSwgUk9NMTZTLCBUMTlfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChST01ENSwgUk9NLAorCQlTSUdfRVhQUl9QVFIoUk9NRDUsIFJPTTgpLAogCQlTSUdfRVhQUl9QVFIoUk9NRDUsIFJPTTE2KSwKIAkJU0lHX0VYUFJfUFRSKFJPTUQ1LCBST00xNlMpKTsKLVNJR19FWFBSX0RFQ0woVlBPSFMsIFZQTzEyLCBUMTlfREVTQywgVlBPMTJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0hTLCBWUE8yNCwgVDE5X0RFU0MsIFZQTzI0X0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVlBPSFMsIFZQTzEyLCBWUE8yNCk7Ci1NU19QSU5fREVDTChUMTksIEdQSU9TMSwgUk9NRDUsIFZQT0hTKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoVDE5LCBST01ENSwgUk9NKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0hTLCBWUE8xMiwgVDE5X0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPSFMsIFZQTzI0LCBUMTlfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChUMTksIFZQT0hTLCBWUE8xMiwgVlBPMjQpOworUElOX0RFQ0xfMihUMTksIEdQSU9TMSwgUk9NRDUsIFZQT0hTKTsKIAogI2RlZmluZSBWMjIgMTQ2CiAjZGVmaW5lIFYyMl9ERVNDICAgICAgICBTSUdfREVTQ19TRVQoU0NVOEMsIDIpCi1TSUdfRVhQUl9ERUNMKFJPTUQ2LCBST004LCBWMjJfREVTQywgVlBPT0ZGMF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NRDYsIFJPTTE2LCBWMjJfREVTQywgVlBPT0ZGMF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NRDYsIFJPTTE2UywgVjIyX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woUk9NRDYsIFNJR19FWFBSX1BUUihST01ENiwgUk9NOCksCitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01ENiwgUk9NOCwgVjIyX0RFU0MsIFZQT09GRjBfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01ENiwgUk9NMTYsIFYyMl9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NRDYsIFJPTTE2UywgVjIyX0RFU0MsIFZQT09GRjBfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woUk9NRDYsIFJPTSwKKwkJU0lHX0VYUFJfUFRSKFJPTUQ2LCBST004KSwKIAkJU0lHX0VYUFJfUFRSKFJPTUQ2LCBST00xNiksCiAJCVNJR19FWFBSX1BUUihST01ENiwgUk9NMTZTKSk7Ci1TSUdfRVhQUl9ERUNMKFZQT1ZTLCBWUE8xMiwgVjIyX0RFU0MsIFZQTzEyX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9WUywgVlBPMjQsIFYyMl9ERVNDLCBWUE8yNF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFZQT1ZTLCBWUE8xMiwgVlBPMjQpOwotTVNfUElOX0RFQ0woVjIyLCBHUElPUzIsIFJPTUQ2LCBWUE9WUyk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFYyMiwgUk9NRDYsIFJPTSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9WUywgVlBPMTIsIFYyMl9ERVNDLCBWUE8xMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1ZTLCBWUE8yNCwgVjIyX0RFU0MsIFZQTzI0X0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVjIyLCBWUE9WUywgVlBPMTIsIFZQTzI0KTsKK1BJTl9ERUNMXzIoVjIyLCBHUElPUzIsIFJPTUQ2LCBWUE9WUyk7CiAKICNkZWZpbmUgVTIwIDE0NwogI2RlZmluZSBVMjBfREVTQyAgICAgICAgU0lHX0RFU0NfU0VUKFNDVThDLCAzKQotU0lHX0VYUFJfREVDTChST01ENywgUk9NOCwgVTIwX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUQ3LCBST00xNiwgVTIwX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUQ3LCBST00xNlMsIFUyMF9ERVNDLCBWUE9PRkYwX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFJPTUQ3LCBTSUdfRVhQUl9QVFIoUk9NRDcsIFJPTTgpLAorU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NRDcsIFJPTTgsIFUyMF9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NRDcsIFJPTTE2LCBVMjBfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUQ3LCBST00xNlMsIFUyMF9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFJPTUQ3LCBST00sCisJCVNJR19FWFBSX1BUUihST01ENywgUk9NOCksCiAJCVNJR19FWFBSX1BUUihST01ENywgUk9NMTYpLAogCQlTSUdfRVhQUl9QVFIoUk9NRDcsIFJPTTE2UykpOwotU0lHX0VYUFJfREVDTChWUE9DTEssIFZQTzEyLCBVMjBfREVTQywgVlBPMTJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0NMSywgVlBPMjQsIFUyMF9ERVNDLCBWUE8yNF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFZQT0NMSywgVlBPMTIsIFZQTzI0KTsKLU1TX1BJTl9ERUNMKFUyMCwgR1BJT1MzLCBST01ENywgVlBPQ0xLKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoVTIwLCBST01ENywgUk9NKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0NMSywgVlBPMTIsIFUyMF9ERVNDLCBWUE8xMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0NMSywgVlBPMjQsIFUyMF9ERVNDLCBWUE8yNF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFUyMCwgVlBPQ0xLLCBWUE8xMiwgVlBPMjQpOworUElOX0RFQ0xfMihVMjAsIEdQSU9TMywgUk9NRDcsIFZQT0NMSyk7CiAKICNkZWZpbmUgUjE4IDE0OAogI2RlZmluZSBST01PRV9ERVNDICAgICAgU0lHX0RFU0NfU0VUKFNDVThDLCA0KQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPUzQsIEdQSU9TNCk7Ci1TSUdfRVhQUl9ERUNMKFJPTU9FLCBST004LCBST01PRV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NT0UsIFJPTTE2LCBST01PRV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NT0UsIFJPTTE2UywgUk9NT0VfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woUk9NT0UsIFNJR19FWFBSX1BUUihST01PRSwgUk9NOCksCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFIxOCwgR1BJT1M0LCBHUElPUzQpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NT0UsIFJPTTgsIFJPTU9FX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NT0UsIFJPTTE2LCBST01PRV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTU9FLCBST00xNlMsIFJPTU9FX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFJPTU9FLCBST00sCisJCVNJR19FWFBSX1BUUihST01PRSwgUk9NOCksCiAJCVNJR19FWFBSX1BUUihST01PRSwgUk9NMTYpLAogCQlTSUdfRVhQUl9QVFIoUk9NT0UsIFJPTTE2UykpOwotTVNfUElOX0RFQ0xfKFIxOCwgU0lHX0VYUFJfTElTVF9QVFIoUk9NT0UpLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPUzQpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUjE4LCBST01PRSwgUk9NKTsKK1BJTl9ERUNMXyhSMTgsIFNJR19FWFBSX0xJU1RfUFRSKFIxOCwgUk9NT0UpLCBTSUdfRVhQUl9MSVNUX1BUUihSMTgsIEdQSU9TNCkpOwogCiAjZGVmaW5lIE4yMSAxNDkKICNkZWZpbmUgUk9NV0VfREVTQyAgICAgIFNJR19ERVNDX1NFVChTQ1U4QywgNSkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1M1LCBHUElPUzUpOwotU0lHX0VYUFJfREVDTChST01XRSwgUk9NOCwgUk9NV0VfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTVdFLCBST00xNiwgUk9NV0VfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTVdFLCBST00xNlMsIFJPTVdFX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFJPTVdFLCBTSUdfRVhQUl9QVFIoUk9NV0UsIFJPTTgpLAorU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOMjEsIEdQSU9TNSwgR1BJT1M1KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTVdFLCBST004LCBST01XRV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTVdFLCBST00xNiwgUk9NV0VfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01XRSwgUk9NMTZTLCBST01XRV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChST01XRSwgUk9NLAorCQlTSUdfRVhQUl9QVFIoUk9NV0UsIFJPTTgpLAogCQlTSUdfRVhQUl9QVFIoUk9NV0UsIFJPTTE2KSwKIAkJU0lHX0VYUFJfUFRSKFJPTVdFLCBST00xNlMpKTsKLU1TX1BJTl9ERUNMXyhOMjEsIFNJR19FWFBSX0xJU1RfUFRSKFJPTVdFKSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1M1KSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKE4yMSwgUk9NV0UsIFJPTSk7CitQSU5fREVDTF8oTjIxLCBTSUdfRVhQUl9MSVNUX1BUUihOMjEsIFJPTVdFKSwgU0lHX0VYUFJfTElTVF9QVFIoTjIxLCBHUElPUzUpKTsKIAogI2RlZmluZSBMMjIgMTUwCiAjZGVmaW5lIEwyMl9ERVNDICAgICAgICBTSUdfREVTQ19TRVQoU0NVOEMsIDYpCi1TSUdfRVhQUl9ERUNMKFJPTUEyMiwgUk9NOCwgTDIyX0RFU0MsIFZQT19PRkZfMTIpOwotU0lHX0VYUFJfREVDTChST01BMjIsIFJPTTE2LCBMMjJfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9ERUNMKFJPTUEyMiwgUk9NMTZTLCBMMjJfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woUk9NQTIyLCBTSUdfRVhQUl9QVFIoUk9NQTIyLCBST004KSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUEyMiwgUk9NOCwgTDIyX0RFU0MsIFZQT19PRkZfMTIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTIyLCBST00xNiwgTDIyX0RFU0MsIFZQT19PRkZfMTIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTIyLCBST00xNlMsIEwyMl9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0xJU1RfREVDTChST01BMjIsIFJPTSwKKwkJU0lHX0VYUFJfUFRSKFJPTUEyMiwgUk9NOCksCiAJCVNJR19FWFBSX1BUUihST01BMjIsIFJPTTE2KSwKIAkJU0lHX0VYUFJfUFRSKFJPTUEyMiwgUk9NMTZTKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQT1I0LCBWUE8yNCwgTDIyX0RFU0MsIFZQT18yNF9PRkYpOwotTVNfUElOX0RFQ0woTDIyLCBHUElPUzYsIFJPTUEyMiwgVlBPUjQpOworU0lHX0VYUFJfTElTVF9BTElBUyhMMjIsIFJPTUEyMiwgUk9NKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTDIyLCBWUE9SNCwgVlBPMjQsIEwyMl9ERVNDLCBWUE9fMjRfT0ZGKTsKK1BJTl9ERUNMXzIoTDIyLCBHUElPUzYsIFJPTUEyMiwgVlBPUjQpOwogCiAjZGVmaW5lIEsxOCAxNTEKICNkZWZpbmUgSzE4X0RFU0MJU0lHX0RFU0NfU0VUKFNDVThDLCA3KQotU0lHX0VYUFJfREVDTChST01BMjMsIFJPTTgsIEsxOF9ERVNDLCBWUE9fT0ZGXzEyKTsKLVNJR19FWFBSX0RFQ0woUk9NQTIzLCBST00xNiwgSzE4X0RFU0MsIFZQT19PRkZfMTIpOwotU0lHX0VYUFJfREVDTChST01BMjMsIFJPTTE2UywgSzE4X0RFU0MsIFZQT19PRkZfMTIpOwotU0lHX0VYUFJfTElTVF9ERUNMKFJPTUEyMywgU0lHX0VYUFJfUFRSKFJPTUEyMywgUk9NOCksCitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMjMsIFJPTTgsIEsxOF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUEyMywgUk9NMTYsIEsxOF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUEyMywgUk9NMTZTLCBLMThfREVTQywgVlBPX09GRl8xMik7CitTSUdfRVhQUl9MSVNUX0RFQ0woUk9NQTIzLCBST00sCisJCVNJR19FWFBSX1BUUihST01BMjMsIFJPTTgpLAogCQlTSUdfRVhQUl9QVFIoUk9NQTIzLCBST00xNiksCiAJCVNJR19FWFBSX1BUUihST01BMjMsIFJPTTE2UykpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUE9SNSwgVlBPMjQsIEsxOF9ERVNDLCBWUE9fMjRfT0ZGKTsKLU1TX1BJTl9ERUNMKEsxOCwgR1BJT1M3LCBST01BMjMsIFZQT1I1KTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoSzE4LCBST01BMjMsIFJPTSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEsxOCwgVlBPUjUsIFZQTzI0LCBLMThfREVTQywgVlBPXzI0X09GRik7CitQSU5fREVDTF8yKEsxOCwgR1BJT1M3LCBST01BMjMsIFZQT1I1KTsKIAogI2RlZmluZSBSTUlJMV9ERVNDICAgICAgU0lHX0RFU0NfQklUKEhXX1NUUkFQMSwgNiwgMCkKIAogI2RlZmluZSBBMTIgMTUyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9UMCwgR1BJT1QwLCBTSUdfREVTQ19TRVQoU0NVQTAsIDApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFUWEVOLCBSTUlJMSwgUk1JSTFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVRYQ0ssIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oQTEyLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVDApLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMVRYRU4pLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFUWENLKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExMiwgR1BJT1QwLCBHUElPVDAsIFNJR19ERVNDX1NFVChTQ1VBMCwgMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMTIsIFJNSUkxVFhFTiwgUk1JSTEsIFJNSUkxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMTIsIFJHTUlJMVRYQ0ssIFJHTUlJMSk7CitQSU5fREVDTF8oQTEyLCBTSUdfRVhQUl9MSVNUX1BUUihBMTIsIEdQSU9UMCksCisJICBTSUdfRVhQUl9MSVNUX1BUUihBMTIsIFJNSUkxVFhFTiksCisJICBTSUdfRVhQUl9MSVNUX1BUUihBMTIsIFJHTUlJMVRYQ0spKTsKIAogI2RlZmluZSBCMTIgMTUzCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9UMSwgR1BJT1QxLCBTSUdfREVTQ19TRVQoU0NVQTAsIDEpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSEIxMiwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFUWENUTCwgUkdNSUkxKTsKLU1TX1BJTl9ERUNMXyhCMTIsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9UMSksIFNJR19FWFBSX0xJU1RfUFRSKERBU0hCMTIpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFUWENUTCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMTIsIEdQSU9UMSwgR1BJT1QxLCBTSUdfREVTQ19TRVQoU0NVQTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjEyLCBEQVNIQjEyLCBSTUlJMSwgUk1JSTFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxMiwgUkdNSUkxVFhDVEwsIFJHTUlJMSk7CitQSU5fREVDTF8oQjEyLCBTSUdfRVhQUl9MSVNUX1BUUihCMTIsIEdQSU9UMSksIFNJR19FWFBSX0xJU1RfUFRSKEIxMiwgREFTSEIxMiksCisJCVNJR19FWFBSX0xJU1RfUFRSKEIxMiwgUkdNSUkxVFhDVEwpKTsKIAogI2RlZmluZSBDMTIgMTU0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9UMiwgR1BJT1QyLCBTSUdfREVTQ19TRVQoU0NVQTAsIDIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFUWEQwLCBSTUlJMSwgUk1JSTFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVRYRDAsIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oQzEyLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVDIpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMVRYRDApLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFUWEQwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMxMiwgR1BJT1QyLCBHUElPVDIsIFNJR19ERVNDX1NFVChTQ1VBMCwgMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTIsIFJNSUkxVFhEMCwgUk1JSTEsIFJNSUkxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTIsIFJHTUlJMVRYRDAsIFJHTUlJMSk7CitQSU5fREVDTF8oQzEyLCBTSUdfRVhQUl9MSVNUX1BUUihDMTIsIEdQSU9UMiksCisJICBTSUdfRVhQUl9MSVNUX1BUUihDMTIsIFJNSUkxVFhEMCksCisJICBTSUdfRVhQUl9MSVNUX1BUUihDMTIsIFJHTUlJMVRYRDApKTsKIAogI2RlZmluZSBEMTIgMTU1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9UMywgR1BJT1QzLCBTSUdfREVTQ19TRVQoU0NVQTAsIDMpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFUWEQxLCBSTUlJMSwgUk1JSTFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVRYRDEsIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oRDEyLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVDMpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMVRYRDEpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFUWEQxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxMiwgR1BJT1QzLCBHUElPVDMsIFNJR19ERVNDX1NFVChTQ1VBMCwgMykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMTIsIFJNSUkxVFhEMSwgUk1JSTEsIFJNSUkxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMTIsIFJHTUlJMVRYRDEsIFJHTUlJMSk7CitQSU5fREVDTF8oRDEyLCBTSUdfRVhQUl9MSVNUX1BUUihEMTIsIEdQSU9UMyksCisJICBTSUdfRVhQUl9MSVNUX1BUUihEMTIsIFJNSUkxVFhEMSksCisJICBTSUdfRVhQUl9MSVNUX1BUUihEMTIsIFJHTUlJMVRYRDEpKTsKIAogI2RlZmluZSBFMTIgMTU2Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9UNCwgR1BJT1Q0LCBTSUdfREVTQ19TRVQoU0NVQTAsIDQpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSEUxMiwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFUWEQyLCBSR01JSTEpOwotTVNfUElOX0RFQ0xfKEUxMiwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1Q0KSwgU0lHX0VYUFJfTElTVF9QVFIoREFTSEUxMiksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMVRYRDIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTEyLCBHUElPVDQsIEdQSU9UNCwgU0lHX0RFU0NfU0VUKFNDVUEwLCA0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxMiwgREFTSEUxMiwgUk1JSTEsIFJNSUkxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMTIsIFJHTUlJMVRYRDIsIFJHTUlJMSk7CitQSU5fREVDTF8oRTEyLCBTSUdfRVhQUl9MSVNUX1BUUihFMTIsIEdQSU9UNCksIFNJR19FWFBSX0xJU1RfUFRSKEUxMiwgREFTSEUxMiksCisJCVNJR19FWFBSX0xJU1RfUFRSKEUxMiwgUkdNSUkxVFhEMikpOwogCiAjZGVmaW5lIEExMyAxNTcKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1Q1LCBHUElPVDUsIFNJR19ERVNDX1NFVChTQ1VBMCwgNSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIQTEzLCBSTUlJMSwgUk1JSTFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVRYRDMsIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oQTEzLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVDUpLCBTSUdfRVhQUl9MSVNUX1BUUihEQVNIQTEzKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkxVFhEMykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMTMsIEdQSU9UNSwgR1BJT1Q1LCBTSUdfREVTQ19TRVQoU0NVQTAsIDUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTEzLCBEQVNIQTEzLCBSTUlJMSwgUk1JSTFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExMywgUkdNSUkxVFhEMywgUkdNSUkxKTsKK1BJTl9ERUNMXyhBMTMsIFNJR19FWFBSX0xJU1RfUFRSKEExMywgR1BJT1Q1KSwgU0lHX0VYUFJfTElTVF9QVFIoQTEzLCBEQVNIQTEzKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoQTEzLCBSR01JSTFUWEQzKSk7CiAKICNkZWZpbmUgUk1JSTJfREVTQyAgICAgIFNJR19ERVNDX0JJVChIV19TVFJBUDEsIDcsIDApCiAKICNkZWZpbmUgRDkgMTU4Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9UNiwgR1BJT1Q2LCBTSUdfREVTQ19TRVQoU0NVQTAsIDYpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTJUWEVOLCBSTUlJMiwgUk1JSTJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMlRYQ0ssIFJHTUlJMik7Ci1NU19QSU5fREVDTF8oRDksIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9UNiksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkyVFhFTiksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMlRYQ0spKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDksIEdQSU9UNiwgR1BJT1Q2LCBTSUdfREVTQ19TRVQoU0NVQTAsIDYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDksIFJNSUkyVFhFTiwgUk1JSTIsIFJNSUkyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEOSwgUkdNSUkyVFhDSywgUkdNSUkyKTsKK1BJTl9ERUNMXyhEOSwgU0lHX0VYUFJfTElTVF9QVFIoRDksIEdQSU9UNiksIFNJR19FWFBSX0xJU1RfUFRSKEQ5LCBSTUlJMlRYRU4pLAorCQlTSUdfRVhQUl9MSVNUX1BUUihEOSwgUkdNSUkyVFhDSykpOwogCiAjZGVmaW5lIEU5IDE1OQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVDcsIEdQSU9UNywgU0lHX0RFU0NfU0VUKFNDVUEwLCA3KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKERBU0hFOSwgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJUWENUTCwgUkdNSUkyKTsKLU1TX1BJTl9ERUNMXyhFOSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1Q3KSwgU0lHX0VYUFJfTElTVF9QVFIoREFTSEU5KSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyVFhDVEwpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTksIEdQSU9UNywgR1BJT1Q3LCBTSUdfREVTQ19TRVQoU0NVQTAsIDcpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTksIERBU0hFOSwgUk1JSTIsIFJNSUkyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFOSwgUkdNSUkyVFhDVEwsIFJHTUlJMik7CitQSU5fREVDTF8oRTksIFNJR19FWFBSX0xJU1RfUFRSKEU5LCBHUElPVDcpLCBTSUdfRVhQUl9MSVNUX1BUUihFOSwgREFTSEU5KSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoRTksIFJHTUlJMlRYQ1RMKSk7CiAKICNkZWZpbmUgQTEwIDE2MAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVTAsIEdQSU9VMCwgU0lHX0RFU0NfU0VUKFNDVUEwLCA4KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkyVFhEMCwgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJUWEQwLCBSR01JSTIpOwotTVNfUElOX0RFQ0xfKEExMCwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1UwKSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTJUWEQwKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyVFhEMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMTAsIEdQSU9VMCwgR1BJT1UwLCBTSUdfREVTQ19TRVQoU0NVQTAsIDgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTEwLCBSTUlJMlRYRDAsIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTEwLCBSR01JSTJUWEQwLCBSR01JSTIpOworUElOX0RFQ0xfKEExMCwgU0lHX0VYUFJfTElTVF9QVFIoQTEwLCBHUElPVTApLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQTEwLCBSTUlJMlRYRDApLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQTEwLCBSR01JSTJUWEQwKSk7CiAKICNkZWZpbmUgQjEwIDE2MQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVTEsIEdQSU9VMSwgU0lHX0RFU0NfU0VUKFNDVUEwLCA5KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkyVFhEMSwgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJUWEQxLCBSR01JSTIpOwotTVNfUElOX0RFQ0xfKEIxMCwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1UxKSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTJUWEQxKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyVFhEMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMTAsIEdQSU9VMSwgR1BJT1UxLCBTSUdfREVTQ19TRVQoU0NVQTAsIDkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjEwLCBSTUlJMlRYRDEsIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjEwLCBSR01JSTJUWEQxLCBSR01JSTIpOworUElOX0RFQ0xfKEIxMCwgU0lHX0VYUFJfTElTVF9QVFIoQjEwLCBHUElPVTEpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQjEwLCBSTUlJMlRYRDEpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQjEwLCBSR01JSTJUWEQxKSk7CiAKICNkZWZpbmUgQzEwIDE2MgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVTIsIEdQSU9VMiwgU0lHX0RFU0NfU0VUKFNDVUEwLCAxMCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIQzEwLCBSTUlJMiwgUk1JSTJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMlRYRDIsIFJHTUlJMik7Ci1NU19QSU5fREVDTF8oQzEwLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVTIpLCBTSUdfRVhQUl9MSVNUX1BUUihEQVNIQzEwKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyVFhEMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTAsIEdQSU9VMiwgR1BJT1UyLCBTSUdfREVTQ19TRVQoU0NVQTAsIDEwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMxMCwgREFTSEMxMCwgUk1JSTIsIFJNSUkyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTAsIFJHTUlJMlRYRDIsIFJHTUlJMik7CitQSU5fREVDTF8oQzEwLCBTSUdfRVhQUl9MSVNUX1BUUihDMTAsIEdQSU9VMiksIFNJR19FWFBSX0xJU1RfUFRSKEMxMCwgREFTSEMxMCksCisJCVNJR19FWFBSX0xJU1RfUFRSKEMxMCwgUkdNSUkyVFhEMikpOwogCiAjZGVmaW5lIEQxMCAxNjMKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1UzLCBHUElPVTMsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTEpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSEQxMCwgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJUWEQzLCBSR01JSTIpOwotTVNfUElOX0RFQ0xfKEQxMCwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1UzKSwgU0lHX0VYUFJfTElTVF9QVFIoREFTSEQxMCksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMlRYRDMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDEwLCBHUElPVTMsIEdQSU9VMywgU0lHX0RFU0NfU0VUKFNDVUEwLCAxMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMTAsIERBU0hEMTAsIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDEwLCBSR01JSTJUWEQzLCBSR01JSTIpOworUElOX0RFQ0xfKEQxMCwgU0lHX0VYUFJfTElTVF9QVFIoRDEwLCBHUElPVTMpLCBTSUdfRVhQUl9MSVNUX1BUUihEMTAsIERBU0hEMTApLAorCQlTSUdfRVhQUl9MSVNUX1BUUihEMTAsIFJHTUlJMlRYRDMpKTsKIAogI2RlZmluZSBFMTEgMTY0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9VNCwgR1BJT1U0LCBTSUdfREVTQ19TRVQoU0NVQTAsIDEyKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkxUkNMSywgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFSWENLLCBSR01JSTEpOwotTVNfUElOX0RFQ0xfKEUxMSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1U0KSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTFSQ0xLKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkxUlhDSykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMTEsIEdQSU9VNCwgR1BJT1U0LCBTSUdfREVTQ19TRVQoU0NVQTAsIDEyKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxMSwgUk1JSTFSQ0xLLCBSTUlJMSwgUk1JSTFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxMSwgUkdNSUkxUlhDSywgUkdNSUkxKTsKK1BJTl9ERUNMXyhFMTEsIFNJR19FWFBSX0xJU1RfUFRSKEUxMSwgR1BJT1U0KSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEUxMSwgUk1JSTFSQ0xLKSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEUxMSwgUkdNSUkxUlhDSykpOwogCiAjZGVmaW5lIEQxMSAxNjUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1U1LCBHUElPVTUsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTMpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSEQxMSwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFSWENUTCwgUkdNSUkxKTsKLU1TX1BJTl9ERUNMXyhEMTEsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9VNSksIFNJR19FWFBSX0xJU1RfUFRSKERBU0hEMTEpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFSWENUTCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMTEsIEdQSU9VNSwgR1BJT1U1LCBTSUdfREVTQ19TRVQoU0NVQTAsIDEzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxMSwgREFTSEQxMSwgUk1JSTEsIFJNSUkxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMTEsIFJHTUlJMVJYQ1RMLCBSR01JSTEpOworUElOX0RFQ0xfKEQxMSwgU0lHX0VYUFJfTElTVF9QVFIoRDExLCBHUElPVTUpLCBTSUdfRVhQUl9MSVNUX1BUUihEMTEsIERBU0hEMTEpLAorCQlTSUdfRVhQUl9MSVNUX1BUUihEMTEsIFJHTUlJMVJYQ1RMKSk7CiAKICNkZWZpbmUgQzExIDE2NgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVTYsIEdQSU9VNiwgU0lHX0RFU0NfU0VUKFNDVUEwLCAxNCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSTUlJMVJYRDAsIFJNSUkxLCBSTUlJMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUkdNSUkxUlhEMCwgUkdNSUkxKTsKLU1TX1BJTl9ERUNMXyhDMTEsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9VNiksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkxUlhEMCksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMVJYRDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzExLCBHUElPVTYsIEdQSU9VNiwgU0lHX0RFU0NfU0VUKFNDVUEwLCAxNCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTEsIFJNSUkxUlhEMCwgUk1JSTEsIFJNSUkxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTEsIFJHTUlJMVJYRDAsIFJHTUlJMSk7CitQSU5fREVDTF8oQzExLCBTSUdfRVhQUl9MSVNUX1BUUihDMTEsIEdQSU9VNiksCisJICBTSUdfRVhQUl9MSVNUX1BUUihDMTEsIFJNSUkxUlhEMCksCisJICBTSUdfRVhQUl9MSVNUX1BUUihDMTEsIFJHTUlJMVJYRDApKTsKIAogI2RlZmluZSBCMTEgMTY3Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9VNywgR1BJT1U3LCBTSUdfREVTQ19TRVQoU0NVQTAsIDE1KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkxUlhEMSwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFSWEQxLCBSR01JSTEpOwotTVNfUElOX0RFQ0xfKEIxMSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1U3KSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTFSWEQxKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkxUlhEMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMTEsIEdQSU9VNywgR1BJT1U3LCBTSUdfREVTQ19TRVQoU0NVQTAsIDE1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxMSwgUk1JSTFSWEQxLCBSTUlJMSwgUk1JSTFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxMSwgUkdNSUkxUlhEMSwgUkdNSUkxKTsKK1BJTl9ERUNMXyhCMTEsIFNJR19FWFBSX0xJU1RfUFRSKEIxMSwgR1BJT1U3KSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEIxMSwgUk1JSTFSWEQxKSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEIxMSwgUkdNSUkxUlhEMSkpOwogCiAjZGVmaW5lIEExMSAxNjgKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1YwLCBHUElPVjAsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTYpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFDUlNEViwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFSWEQyLCBSR01JSTEpOwotTVNfUElOX0RFQ0xfKEExMSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1YwKSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTFDUlNEViksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMVJYRDIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTExLCBHUElPVjAsIEdQSU9WMCwgU0lHX0RFU0NfU0VUKFNDVUEwLCAxNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMTEsIFJNSUkxQ1JTRFYsIFJNSUkxLCBSTUlJMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTExLCBSR01JSTFSWEQyLCBSR01JSTEpOworUElOX0RFQ0xfKEExMSwgU0lHX0VYUFJfTElTVF9QVFIoQTExLCBHUElPVjApLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQTExLCBSTUlJMUNSU0RWKSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEExMSwgUkdNSUkxUlhEMikpOwogCiAjZGVmaW5lIEUxMCAxNjkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1YxLCBHUElPVjEsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTcpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFSWEVSLCBSTUlJMSwgUk1JSTFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVJYRDMsIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oRTEwLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVjEpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMVJYRVIpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFSWEQzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxMCwgR1BJT1YxLCBHUElPVjEsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTcpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTEwLCBSTUlJMVJYRVIsIFJNSUkxLCBSTUlJMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTEwLCBSR01JSTFSWEQzLCBSR01JSTEpOworUElOX0RFQ0xfKEUxMCwgU0lHX0VYUFJfTElTVF9QVFIoRTEwLCBHUElPVjEpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoRTEwLCBSTUlJMVJYRVIpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoRTEwLCBSR01JSTFSWEQzKSk7CiAKICNkZWZpbmUgQzkgMTcwCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9WMiwgR1BJT1YyLCBTSUdfREVTQ19TRVQoU0NVQTAsIDE4KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkyUkNMSywgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJSWENLLCBSR01JSTIpOwotTVNfUElOX0RFQ0xfKEM5LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVjIpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMlJDTEspLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTJSWENLKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEM5LCBHUElPVjIsIEdQSU9WMiwgU0lHX0RFU0NfU0VUKFNDVUEwLCAxOCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDOSwgUk1JSTJSQ0xLLCBSTUlJMiwgUk1JSTJfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEM5LCBSR01JSTJSWENLLCBSR01JSTIpOworUElOX0RFQ0xfKEM5LCBTSUdfRVhQUl9MSVNUX1BUUihDOSwgR1BJT1YyKSwgU0lHX0VYUFJfTElTVF9QVFIoQzksIFJNSUkyUkNMSyksCisJCVNJR19FWFBSX0xJU1RfUFRSKEM5LCBSR01JSTJSWENLKSk7CiAKICNkZWZpbmUgQjkgMTcxCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9WMywgR1BJT1YzLCBTSUdfREVTQ19TRVQoU0NVQTAsIDE5KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKERBU0hCOSwgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJSWENUTCwgUkdNSUkyKTsKLU1TX1BJTl9ERUNMXyhCOSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1YzKSwgU0lHX0VYUFJfTElTVF9QVFIoREFTSEI5KSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyUlhDVEwpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjksIEdQSU9WMywgR1BJT1YzLCBTSUdfREVTQ19TRVQoU0NVQTAsIDE5KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEI5LCBEQVNIQjksIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjksIFJHTUlJMlJYQ1RMLCBSR01JSTIpOworUElOX0RFQ0xfKEI5LCBTSUdfRVhQUl9MSVNUX1BUUihCOSwgR1BJT1YzKSwgU0lHX0VYUFJfTElTVF9QVFIoQjksIERBU0hCOSksCisJCVNJR19FWFBSX0xJU1RfUFRSKEI5LCBSR01JSTJSWENUTCkpOwogCiAjZGVmaW5lIEE5IDE3MgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVjQsIEdQSU9WNCwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyMCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSTUlJMlJYRDAsIFJNSUkyLCBSTUlJMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUkdNSUkyUlhEMCwgUkdNSUkyKTsKLU1TX1BJTl9ERUNMXyhBOSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1Y0KSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTJSWEQwKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyUlhEMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBOSwgR1BJT1Y0LCBHUElPVjQsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTksIFJNSUkyUlhEMCwgUk1JSTIsIFJNSUkyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBOSwgUkdNSUkyUlhEMCwgUkdNSUkyKTsKK1BJTl9ERUNMXyhBOSwgU0lHX0VYUFJfTElTVF9QVFIoQTksIEdQSU9WNCksIFNJR19FWFBSX0xJU1RfUFRSKEE5LCBSTUlJMlJYRDApLAorCQlTSUdfRVhQUl9MSVNUX1BUUihBOSwgUkdNSUkyUlhEMCkpOwogCiAjZGVmaW5lIEU4IDE3MwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVjUsIEdQSU9WNSwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyMSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSTUlJMlJYRDEsIFJNSUkyLCBSTUlJMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUkdNSUkyUlhEMSwgUkdNSUkyKTsKLU1TX1BJTl9ERUNMXyhFOCwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1Y1KSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTJSWEQxKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyUlhEMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFOCwgR1BJT1Y1LCBHUElPVjUsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTgsIFJNSUkyUlhEMSwgUk1JSTIsIFJNSUkyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFOCwgUkdNSUkyUlhEMSwgUkdNSUkyKTsKK1BJTl9ERUNMXyhFOCwgU0lHX0VYUFJfTElTVF9QVFIoRTgsIEdQSU9WNSksIFNJR19FWFBSX0xJU1RfUFRSKEU4LCBSTUlJMlJYRDEpLAorCQlTSUdfRVhQUl9MSVNUX1BUUihFOCwgUkdNSUkyUlhEMSkpOwogCiAjZGVmaW5lIEQ4IDE3NAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVjYsIEdQSU9WNiwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyMikpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSTUlJMkNSU0RWLCBSTUlJMiwgUk1JSTJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMlJYRDIsIFJHTUlJMik7Ci1NU19QSU5fREVDTF8oRDgsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9WNiksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkyQ1JTRFYpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTJSWEQyKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQ4LCBHUElPVjYsIEdQSU9WNiwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEOCwgUk1JSTJDUlNEViwgUk1JSTIsIFJNSUkyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEOCwgUkdNSUkyUlhEMiwgUkdNSUkyKTsKK1BJTl9ERUNMXyhEOCwgU0lHX0VYUFJfTElTVF9QVFIoRDgsIEdQSU9WNiksIFNJR19FWFBSX0xJU1RfUFRSKEQ4LCBSTUlJMkNSU0RWKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoRDgsIFJHTUlJMlJYRDIpKTsKIAogI2RlZmluZSBDOCAxNzUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1Y3LCBHUElPVjcsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjMpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTJSWEVSLCBSTUlJMiwgUk1JSTJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMlJYRDMsIFJHTUlJMik7Ci1NU19QSU5fREVDTF8oQzgsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9WNyksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkyUlhFUiksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMlJYRDMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzgsIEdQSU9WNywgR1BJT1Y3LCBTSUdfREVTQ19TRVQoU0NVQTAsIDIzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEM4LCBSTUlJMlJYRVIsIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzgsIFJHTUlJMlJYRDMsIFJHTUlJMik7CitQSU5fREVDTF8oQzgsIFNJR19FWFBSX0xJU1RfUFRSKEM4LCBHUElPVjcpLCBTSUdfRVhQUl9MSVNUX1BUUihDOCwgUk1JSTJSWEVSKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoQzgsIFJHTUlJMlJYRDMpKTsKIAogRlVOQ19HUk9VUF9ERUNMKFJNSUkxLCBBMTIsIEIxMiwgQzEyLCBEMTIsIEUxMiwgQTEzLCBFMTEsIEQxMSwgQzExLCBCMTEsIEExMSwKIAkJRTEwKTsKQEAgLTEzNzQsMzU0ICsxNDYzLDM5MCBAQCBGVU5DX0dST1VQX0RFQ0woUk1JSTIsIEQ5LCBFOSwgQTEwLCBCMTAsIEMxMCwgRDEwLCBDOSwgQjksIEE5LCBFOCwgRDgsIEM4KTsKIEZVTkNfR1JPVVBfREVDTChSR01JSTIsIEQ5LCBFOSwgQTEwLCBCMTAsIEMxMCwgRDEwLCBDOSwgQjksIEE5LCBFOCwgRDgsIEM4KTsKIAogI2RlZmluZSBMNSAxNzYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1cwLCBHUElPVzAsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjQpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDMCwgQURDMCk7Ci1NU19QSU5fREVDTF8oTDUsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9XMCksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTDUsIEdQSU9XMCwgR1BJT1cwLCBTSUdfREVTQ19TRVQoU0NVQTAsIDI0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEw1LCBBREMwLCBBREMwKTsKK1BJTl9ERUNMXyhMNSwgU0lHX0VYUFJfTElTVF9QVFIoTDUsIEdQSU9XMCksIFNJR19FWFBSX0xJU1RfUFRSKEw1LCBBREMwKSk7CiBGVU5DX0dST1VQX0RFQ0woQURDMCwgTDUpOwogCiAjZGVmaW5lIEw0IDE3NwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVzEsIEdQSU9XMSwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyNSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREMxLCBBREMxKTsKLU1TX1BJTl9ERUNMXyhMNCwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1cxKSwgU0lHX0VYUFJfTElTVF9QVFIoQURDMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMNCwgR1BJT1cxLCBHUElPVzEsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTDQsIEFEQzEsIEFEQzEpOworUElOX0RFQ0xfKEw0LCBTSUdfRVhQUl9MSVNUX1BUUihMNCwgR1BJT1cxKSwgU0lHX0VYUFJfTElTVF9QVFIoTDQsIEFEQzEpKTsKIEZVTkNfR1JPVVBfREVDTChBREMxLCBMNCk7CiAKICNkZWZpbmUgTDMgMTc4Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9XMiwgR1BJT1cyLCBTSUdfREVTQ19TRVQoU0NVQTAsIDI2KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFEQzIsIEFEQzIpOwotTVNfUElOX0RFQ0xfKEwzLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVzIpLCBTSUdfRVhQUl9MSVNUX1BUUihBREMyKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEwzLCBHUElPVzIsIEdQSU9XMiwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMMywgQURDMiwgQURDMik7CitQSU5fREVDTF8oTDMsIFNJR19FWFBSX0xJU1RfUFRSKEwzLCBHUElPVzIpLCBTSUdfRVhQUl9MSVNUX1BUUihMMywgQURDMikpOwogRlVOQ19HUk9VUF9ERUNMKEFEQzIsIEwzKTsKIAogI2RlZmluZSBMMiAxNzkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1czLCBHUElPVzMsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjcpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDMywgQURDMyk7Ci1NU19QSU5fREVDTF8oTDIsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9XMyksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTDIsIEdQSU9XMywgR1BJT1czLCBTSUdfREVTQ19TRVQoU0NVQTAsIDI3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEwyLCBBREMzLCBBREMzKTsKK1BJTl9ERUNMXyhMMiwgU0lHX0VYUFJfTElTVF9QVFIoTDIsIEdQSU9XMyksIFNJR19FWFBSX0xJU1RfUFRSKEwyLCBBREMzKSk7CiBGVU5DX0dST1VQX0RFQ0woQURDMywgTDIpOwogCiAjZGVmaW5lIEwxIDE4MAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVzQsIEdQSU9XNCwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyOCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREM0LCBBREM0KTsKLU1TX1BJTl9ERUNMXyhMMSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1c0KSwgU0lHX0VYUFJfTElTVF9QVFIoQURDNCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMMSwgR1BJT1c0LCBHUElPVzQsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTDEsIEFEQzQsIEFEQzQpOworUElOX0RFQ0xfKEwxLCBTSUdfRVhQUl9MSVNUX1BUUihMMSwgR1BJT1c0KSwgU0lHX0VYUFJfTElTVF9QVFIoTDEsIEFEQzQpKTsKIEZVTkNfR1JPVVBfREVDTChBREM0LCBMMSk7CiAKICNkZWZpbmUgTTUgMTgxCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9XNSwgR1BJT1c1LCBTSUdfREVTQ19TRVQoU0NVQTAsIDI5KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFEQzUsIEFEQzUpOwotTVNfUElOX0RFQ0xfKE01LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVzUpLCBTSUdfRVhQUl9MSVNUX1BUUihBREM1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE01LCBHUElPVzUsIEdQSU9XNSwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyOSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShNNSwgQURDNSwgQURDNSk7CitQSU5fREVDTF8oTTUsIFNJR19FWFBSX0xJU1RfUFRSKE01LCBHUElPVzUpLCBTSUdfRVhQUl9MSVNUX1BUUihNNSwgQURDNSkpOwogRlVOQ19HUk9VUF9ERUNMKEFEQzUsIE01KTsKIAogI2RlZmluZSBNNCAxODIKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1c2LCBHUElPVzYsIFNJR19ERVNDX1NFVChTQ1VBMCwgMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDNiwgQURDNik7Ci1NU19QSU5fREVDTF8oTTQsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9XNiksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTTQsIEdQSU9XNiwgR1BJT1c2LCBTSUdfREVTQ19TRVQoU0NVQTAsIDMwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE00LCBBREM2LCBBREM2KTsKK1BJTl9ERUNMXyhNNCwgU0lHX0VYUFJfTElTVF9QVFIoTTQsIEdQSU9XNiksIFNJR19FWFBSX0xJU1RfUFRSKE00LCBBREM2KSk7CiBGVU5DX0dST1VQX0RFQ0woQURDNiwgTTQpOwogCiAjZGVmaW5lIE0zIDE4MwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVzcsIEdQSU9XNywgU0lHX0RFU0NfU0VUKFNDVUEwLCAzMSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREM3LCBBREM3KTsKLU1TX1BJTl9ERUNMXyhNMywgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1c3KSwgU0lHX0VYUFJfTElTVF9QVFIoQURDNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShNMywgR1BJT1c3LCBHUElPVzcsIFNJR19ERVNDX1NFVChTQ1VBMCwgMzEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTTMsIEFEQzcsIEFEQzcpOworUElOX0RFQ0xfKE0zLCBTSUdfRVhQUl9MSVNUX1BUUihNMywgR1BJT1c3KSwgU0lHX0VYUFJfTElTVF9QVFIoTTMsIEFEQzcpKTsKIEZVTkNfR1JPVVBfREVDTChBREM3LCBNMyk7CiAKICNkZWZpbmUgTTIgMTg0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9YMCwgR1BJT1gwLCBTSUdfREVTQ19TRVQoU0NVQTQsIDApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDOCwgQURDOCk7Ci1NU19QSU5fREVDTF8oTTIsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9YMCksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTTIsIEdQSU9YMCwgR1BJT1gwLCBTSUdfREVTQ19TRVQoU0NVQTQsIDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTTIsIEFEQzgsIEFEQzgpOworUElOX0RFQ0xfKE0yLCBTSUdfRVhQUl9MSVNUX1BUUihNMiwgR1BJT1gwKSwgU0lHX0VYUFJfTElTVF9QVFIoTTIsIEFEQzgpKTsKIEZVTkNfR1JPVVBfREVDTChBREM4LCBNMik7CiAKICNkZWZpbmUgTTEgMTg1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9YMSwgR1BJT1gxLCBTSUdfREVTQ19TRVQoU0NVQTQsIDEpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDOSwgQURDOSk7Ci1NU19QSU5fREVDTF8oTTEsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9YMSksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTTEsIEdQSU9YMSwgR1BJT1gxLCBTSUdfREVTQ19TRVQoU0NVQTQsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTTEsIEFEQzksIEFEQzkpOworUElOX0RFQ0xfKE0xLCBTSUdfRVhQUl9MSVNUX1BUUihNMSwgR1BJT1gxKSwgU0lHX0VYUFJfTElTVF9QVFIoTTEsIEFEQzkpKTsKIEZVTkNfR1JPVVBfREVDTChBREM5LCBNMSk7CiAKICNkZWZpbmUgTjUgMTg2Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9YMiwgR1BJT1gyLCBTSUdfREVTQ19TRVQoU0NVQTQsIDIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDMTAsIEFEQzEwKTsKLU1TX1BJTl9ERUNMXyhONSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1gyKSwgU0lHX0VYUFJfTElTVF9QVFIoQURDMTApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTjUsIEdQSU9YMiwgR1BJT1gyLCBTSUdfREVTQ19TRVQoU0NVQTQsIDIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTjUsIEFEQzEwLCBBREMxMCk7CitQSU5fREVDTF8oTjUsIFNJR19FWFBSX0xJU1RfUFRSKE41LCBHUElPWDIpLCBTSUdfRVhQUl9MSVNUX1BUUihONSwgQURDMTApKTsKIEZVTkNfR1JPVVBfREVDTChBREMxMCwgTjUpOwogCiAjZGVmaW5lIE40IDE4NwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPWDMsIEdQSU9YMywgU0lHX0RFU0NfU0VUKFNDVUE0LCAzKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFEQzExLCBBREMxMSk7Ci1NU19QSU5fREVDTF8oTjQsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9YMyksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzExKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE40LCBHUElPWDMsIEdQSU9YMywgU0lHX0RFU0NfU0VUKFNDVUE0LCAzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE40LCBBREMxMSwgQURDMTEpOworUElOX0RFQ0xfKE40LCBTSUdfRVhQUl9MSVNUX1BUUihONCwgR1BJT1gzKSwgU0lHX0VYUFJfTElTVF9QVFIoTjQsIEFEQzExKSk7CiBGVU5DX0dST1VQX0RFQ0woQURDMTEsIE40KTsKIAogI2RlZmluZSBOMyAxODgKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1g0LCBHUElPWDQsIFNJR19ERVNDX1NFVChTQ1VBNCwgNCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREMxMiwgQURDMTIpOwotTVNfUElOX0RFQ0xfKE4zLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPWDQpLCBTSUdfRVhQUl9MSVNUX1BUUihBREMxMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOMywgR1BJT1g0LCBHUElPWDQsIFNJR19ERVNDX1NFVChTQ1VBNCwgNCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOMywgQURDMTIsIEFEQzEyKTsKK1BJTl9ERUNMXyhOMywgU0lHX0VYUFJfTElTVF9QVFIoTjMsIEdQSU9YNCksIFNJR19FWFBSX0xJU1RfUFRSKE4zLCBBREMxMikpOwogRlVOQ19HUk9VUF9ERUNMKEFEQzEyLCBOMyk7CiAKICNkZWZpbmUgTjIgMTg5Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9YNSwgR1BJT1g1LCBTSUdfREVTQ19TRVQoU0NVQTQsIDUpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDMTMsIEFEQzEzKTsKLU1TX1BJTl9ERUNMXyhOMiwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1g1KSwgU0lHX0VYUFJfTElTVF9QVFIoQURDMTMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTjIsIEdQSU9YNSwgR1BJT1g1LCBTSUdfREVTQ19TRVQoU0NVQTQsIDUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTjIsIEFEQzEzLCBBREMxMyk7CitQSU5fREVDTF8oTjIsIFNJR19FWFBSX0xJU1RfUFRSKE4yLCBHUElPWDUpLCBTSUdfRVhQUl9MSVNUX1BUUihOMiwgQURDMTMpKTsKIEZVTkNfR1JPVVBfREVDTChBREMxMywgTjIpOwogCiAjZGVmaW5lIE4xIDE5MAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPWDYsIEdQSU9YNiwgU0lHX0RFU0NfU0VUKFNDVUE0LCA2KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFEQzE0LCBBREMxNCk7Ci1NU19QSU5fREVDTF8oTjEsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9YNiksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzE0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE4xLCBHUElPWDYsIEdQSU9YNiwgU0lHX0RFU0NfU0VUKFNDVUE0LCA2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE4xLCBBREMxNCwgQURDMTQpOworUElOX0RFQ0xfKE4xLCBTSUdfRVhQUl9MSVNUX1BUUihOMSwgR1BJT1g2KSwgU0lHX0VYUFJfTElTVF9QVFIoTjEsIEFEQzE0KSk7CiBGVU5DX0dST1VQX0RFQ0woQURDMTQsIE4xKTsKIAogI2RlZmluZSBQNSAxOTEKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1g3LCBHUElPWDcsIFNJR19ERVNDX1NFVChTQ1VBNCwgNykpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREMxNSwgQURDMTUpOwotTVNfUElOX0RFQ0xfKFA1LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPWDcpLCBTSUdfRVhQUl9MSVNUX1BUUihBREMxNSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQNSwgR1BJT1g3LCBHUElPWDcsIFNJR19ERVNDX1NFVChTQ1VBNCwgNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQNSwgQURDMTUsIEFEQzE1KTsKK1BJTl9ERUNMXyhQNSwgU0lHX0VYUFJfTElTVF9QVFIoUDUsIEdQSU9YNyksIFNJR19FWFBSX0xJU1RfUFRSKFA1LCBBREMxNSkpOwogRlVOQ19HUk9VUF9ERUNMKEFEQzE1LCBQNSk7CiAKICNkZWZpbmUgQzIxIDE5MgotU0lHX0VYUFJfREVDTChTSU9TMywgU0lPUzMsIFNJR19ERVNDX1NFVChTQ1VBNCwgOCkpOwotU0lHX0VYUFJfREVDTChTSU9TMywgQUNQSSwgQUNQSV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFNJT1MzLCBTSU9TMywgQUNQSSk7Ci1TU19QSU5fREVDTChDMjEsIEdQSU9ZMCwgU0lPUzMpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUzMsIFNJT1MzLCBTSUdfREVTQ19TRVQoU0NVQTQsIDgpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT1MzLCBBQ1BJLCBBQ1BJX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQzIxLCBTSU9TMywgU0lPUzMsIEFDUEkpOworUElOX0RFQ0xfMShDMjEsIEdQSU9ZMCwgU0lPUzMpOwogRlVOQ19HUk9VUF9ERUNMKFNJT1MzLCBDMjEpOwogCiAjZGVmaW5lIEYyMCAxOTMKLVNJR19FWFBSX0RFQ0woU0lPUzUsIFNJT1M1LCBTSUdfREVTQ19TRVQoU0NVQTQsIDkpKTsKLVNJR19FWFBSX0RFQ0woU0lPUzUsIEFDUEksIEFDUElfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChTSU9TNSwgU0lPUzUsIEFDUEkpOwotU1NfUElOX0RFQ0woRjIwLCBHUElPWTEsIFNJT1M1KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT1M1LCBTSU9TNSwgU0lHX0RFU0NfU0VUKFNDVUE0LCA5KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTSU9TNSwgQUNQSSwgQUNQSV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEYyMCwgU0lPUzUsIFNJT1M1LCBBQ1BJKTsKK1BJTl9ERUNMXzEoRjIwLCBHUElPWTEsIFNJT1M1KTsKIEZVTkNfR1JPVVBfREVDTChTSU9TNSwgRjIwKTsKIAogI2RlZmluZSBHMjAgMTk0Ci1TSUdfRVhQUl9ERUNMKFNJT1BXUkVRLCBTSU9QV1JFUSwgU0lHX0RFU0NfU0VUKFNDVUE0LCAxMCkpOwotU0lHX0VYUFJfREVDTChTSU9QV1JFUSwgQUNQSSwgQUNQSV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFNJT1BXUkVRLCBTSU9QV1JFUSwgQUNQSSk7Ci1TU19QSU5fREVDTChHMjAsIEdQSU9ZMiwgU0lPUFdSRVEpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUFdSRVEsIFNJT1BXUkVRLCBTSUdfREVTQ19TRVQoU0NVQTQsIDEwKSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTSU9QV1JFUSwgQUNQSSwgQUNQSV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEcyMCwgU0lPUFdSRVEsIFNJT1BXUkVRLCBBQ1BJKTsKK1BJTl9ERUNMXzEoRzIwLCBHUElPWTIsIFNJT1BXUkVRKTsKIEZVTkNfR1JPVVBfREVDTChTSU9QV1JFUSwgRzIwKTsKIAogI2RlZmluZSBLMjAgMTk1Ci1TSUdfRVhQUl9ERUNMKFNJT09OQ1RSTCwgU0lPT05DVFJMLCBTSUdfREVTQ19TRVQoU0NVQTQsIDExKSk7Ci1TSUdfRVhQUl9ERUNMKFNJT09OQ1RSTCwgQUNQSSwgQUNQSV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFNJT09OQ1RSTCwgU0lPT05DVFJMLCBBQ1BJKTsKLVNTX1BJTl9ERUNMKEsyMCwgR1BJT1kzLCBTSU9PTkNUUkwpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPT05DVFJMLCBTSU9PTkNUUkwsIFNJR19ERVNDX1NFVChTQ1VBNCwgMTEpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT09OQ1RSTCwgQUNQSSwgQUNQSV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEsyMCwgU0lPT05DVFJMLCBTSU9PTkNUUkwsIEFDUEkpOworUElOX0RFQ0xfMShLMjAsIEdQSU9ZMywgU0lPT05DVFJMKTsKIEZVTkNfR1JPVVBfREVDTChTSU9PTkNUUkwsIEsyMCk7CiAKIEZVTkNfR1JPVVBfREVDTChBQ1BJLCBCMTksIEEyMCwgRDE3LCBBMTksIEMyMSwgRjIwLCBHMjAsIEsyMCk7CiAKICNkZWZpbmUgUjIyIDIwMAogI2RlZmluZSBSMjJfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDE2KQotU0lHX0VYUFJfREVDTChST01BMiwgUk9NOCwgUjIyX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUEyLCBST00xNiwgUjIyX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BMiwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9CMCwgVlBPMTIsIFIyMl9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjAsIFZQTzI0LCBSMjJfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0IwLCBWUE9PRkYxLCBSMjJfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CMCwgU0lHX0VYUFJfUFRSKFZQT0IwLCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9CMCwgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPQjAsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKFIyMiwgR1BJT1owLCBST01BMiwgVlBPQjApOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTIsIFJPTTgsIFIyMl9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTIsIFJPTTE2LCBSMjJfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFIyMiwgUk9NQTIsIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0IwLCBWUE8xMiwgUjIyX0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjAsIFZQTzI0LCBSMjJfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CMCwgVlBPT0ZGMSwgUjIyX0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjAsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0IwLCBWUE8xMiksCisJCVNJR19FWFBSX1BUUihWUE9CMCwgVlBPMjQpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjAsIFZQT09GRjEpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUjIyLCBWUE9CMCwgVlBPKTsKK1BJTl9ERUNMXzIoUjIyLCBHUElPWjAsIFJPTUEyLCBWUE9CMCk7CiAKICNkZWZpbmUgUDE4IDIwMQogI2RlZmluZSBQMThfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDE3KQotU0lHX0VYUFJfREVDTChST01BMywgUk9NOCwgUDE4X0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUEzLCBST00xNiwgUDE4X0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BMywgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9CMSwgVlBPMTIsIFAxOF9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjEsIFZQTzI0LCBQMThfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0IxLCBWUE9PRkYxLCBQMThfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CMSwgU0lHX0VYUFJfUFRSKFZQT0IxLCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9CMSwgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPQjEsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKFAxOCwgR1BJT1oxLCBST01BMywgVlBPQjEpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTMsIFJPTTgsIFAxOF9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTMsIFJPTTE2LCBQMThfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFAxOCwgUk9NQTMsIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0IxLCBWUE8xMiwgUDE4X0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjEsIFZQTzI0LCBQMThfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CMSwgVlBPT0ZGMSwgUDE4X0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjEsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0IxLCBWUE8xMiksCisJCVNJR19FWFBSX1BUUihWUE9CMSwgVlBPMjQpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjEsIFZQT09GRjEpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUDE4LCBWUE9CMSwgVlBPKTsKK1BJTl9ERUNMXzIoUDE4LCBHUElPWjEsIFJPTUEzLCBWUE9CMSk7CiAKICNkZWZpbmUgUDE5IDIwMgogI2RlZmluZSBQMTlfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDE4KQotU0lHX0VYUFJfREVDTChST01BNCwgUk9NOCwgUDE5X0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUE0LCBST00xNiwgUDE5X0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BNCwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9CMiwgVlBPMTIsIFAxOV9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjIsIFZQTzI0LCBQMTlfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0IyLCBWUE9PRkYxLCBQMTlfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CMiwgU0lHX0VYUFJfUFRSKFZQT0IyLCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9CMiwgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPQjIsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKFAxOSwgR1BJT1oyLCBST01BNCwgVlBPQjIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTQsIFJPTTgsIFAxOV9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTQsIFJPTTE2LCBQMTlfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFAxOSwgUk9NQTQsIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0IyLCBWUE8xMiwgUDE5X0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjIsIFZQTzI0LCBQMTlfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CMiwgVlBPT0ZGMSwgUDE5X0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjIsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0IyLCBWUE8xMiksCisJCVNJR19FWFBSX1BUUihWUE9CMiwgVlBPMjQpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjIsIFZQT09GRjEpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUDE5LCBWUE9CMiwgVlBPKTsKK1BJTl9ERUNMXzIoUDE5LCBHUElPWjIsIFJPTUE0LCBWUE9CMik7CiAKICNkZWZpbmUgUDIwIDIwMwogI2RlZmluZSBQMjBfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDE5KQotU0lHX0VYUFJfREVDTChST01BNSwgUk9NOCwgUDIwX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUE1LCBST00xNiwgUDIwX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BNSwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9CMywgVlBPMTIsIFAyMF9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjMsIFZQTzI0LCBQMjBfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0IzLCBWUE9PRkYxLCBQMjBfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CMywgU0lHX0VYUFJfUFRSKFZQT0IzLCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9CMywgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPQjMsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKFAyMCwgR1BJT1ozLCBST01BNSwgVlBPQjMpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTUsIFJPTTgsIFAyMF9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTUsIFJPTTE2LCBQMjBfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFAyMCwgUk9NQTUsIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0IzLCBWUE8xMiwgUDIwX0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjMsIFZQTzI0LCBQMjBfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CMywgVlBPT0ZGMSwgUDIwX0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjMsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0IzLCBWUE8xMiksCisJCVNJR19FWFBSX1BUUihWUE9CMywgVlBPMjQpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjMsIFZQT09GRjEpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUDIwLCBWUE9CMywgVlBPKTsKK1BJTl9ERUNMXzIoUDIwLCBHUElPWjMsIFJPTUE1LCBWUE9CMyk7CiAKICNkZWZpbmUgUDIxIDIwNAogI2RlZmluZSBQMjFfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDIwKQotU0lHX0VYUFJfREVDTChST01BNiwgUk9NOCwgUDIxX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUE2LCBST00xNiwgUDIxX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BNiwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9CNCwgVlBPMTIsIFAyMV9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjQsIFZQTzI0LCBQMjFfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0I0LCBWUE9PRkYxLCBQMjFfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CNCwgU0lHX0VYUFJfUFRSKFZQT0I0LCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9CNCwgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPQjQsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKFAyMSwgR1BJT1o0LCBST01BNiwgVlBPQjQpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTYsIFJPTTgsIFAyMV9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTYsIFJPTTE2LCBQMjFfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFAyMSwgUk9NQTYsIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I0LCBWUE8xMiwgUDIxX0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjQsIFZQTzI0LCBQMjFfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CNCwgVlBPT0ZGMSwgUDIxX0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjQsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0I0LCBWUE8xMiksCisJCVNJR19FWFBSX1BUUihWUE9CNCwgVlBPMjQpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjQsIFZQT09GRjEpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUDIxLCBWUE9CNCwgVlBPKTsKK1BJTl9ERUNMXzIoUDIxLCBHUElPWjQsIFJPTUE2LCBWUE9CNCk7CiAKICNkZWZpbmUgUDIyIDIwNQogI2RlZmluZSBQMjJfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDIxKQotU0lHX0VYUFJfREVDTChST01BNywgUk9NOCwgUDIyX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUE3LCBST00xNiwgUDIyX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BNywgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9CNSwgVlBPMTIsIFAyMl9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjUsIFZQTzI0LCBQMjJfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0I1LCBWUE9PRkYxLCBQMjJfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CNSwgU0lHX0VYUFJfUFRSKFZQT0I1LCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9CNSwgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPQjUsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKFAyMiwgR1BJT1o1LCBST01BNywgVlBPQjUpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTcsIFJPTTgsIFAyMl9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTcsIFJPTTE2LCBQMjJfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFAyMiwgUk9NQTcsIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I1LCBWUE8xMiwgUDIyX0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjUsIFZQTzI0LCBQMjJfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CNSwgVlBPT0ZGMSwgUDIyX0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjUsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0I1LCBWUE8xMiksCisJCVNJR19FWFBSX1BUUihWUE9CNSwgVlBPMjQpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjUsIFZQT09GRjEpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUDIyLCBWUE9CNSwgVlBPKTsKK1BJTl9ERUNMXzIoUDIyLCBHUElPWjUsIFJPTUE3LCBWUE9CNSk7CiAKICNkZWZpbmUgTTE5IDIwNgogI2RlZmluZSBNMTlfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDIyKQotU0lHX0VYUFJfREVDTChST01BOCwgUk9NOCwgTTE5X0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUE4LCBST00xNiwgTTE5X0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BOCwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9CNiwgVlBPMTIsIE0xOV9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjYsIFZQTzI0LCBNMTlfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0I2LCBWUE9PRkYxLCBNMTlfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CNiwgU0lHX0VYUFJfUFRSKFZQT0I2LCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9CNiwgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPQjYsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKE0xOSwgR1BJT1o2LCBST01BOCwgVlBPQjYpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTgsIFJPTTgsIE0xOV9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTgsIFJPTTE2LCBNMTlfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE0xOSwgUk9NQTgsIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I2LCBWUE8xMiwgTTE5X0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjYsIFZQTzI0LCBNMTlfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CNiwgVlBPT0ZGMSwgTTE5X0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjYsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0I2LCBWUE8xMiksCisJCVNJR19FWFBSX1BUUihWUE9CNiwgVlBPMjQpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjYsIFZQT09GRjEpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoTTE5LCBWUE9CNiwgVlBPKTsKK1BJTl9ERUNMXzIoTTE5LCBHUElPWjYsIFJPTUE4LCBWUE9CNik7CiAKICNkZWZpbmUgTTIwIDIwNwogI2RlZmluZSBNMjBfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDIzKQotU0lHX0VYUFJfREVDTChST01BOSwgUk9NOCwgTTIwX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUE5LCBST00xNiwgTTIwX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BOSwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9CNywgVlBPMTIsIE0yMF9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjcsIFZQTzI0LCBNMjBfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0I3LCBWUE9PRkYxLCBNMjBfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CNywgU0lHX0VYUFJfUFRSKFZQT0I3LCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9CNywgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPQjcsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKE0yMCwgR1BJT1o3LCBST01BOSwgVlBPQjcpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTksIFJPTTgsIE0yMF9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTksIFJPTTE2LCBNMjBfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE0yMCwgUk9NQTksIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I3LCBWUE8xMiwgTTIwX0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjcsIFZQTzI0LCBNMjBfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CNywgVlBPT0ZGMSwgTTIwX0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjcsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0I3LCBWUE8xMiksCisJCVNJR19FWFBSX1BUUihWUE9CNywgVlBPMjQpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjcsIFZQT09GRjEpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoTTIwLCBWUE9CNywgVlBPKTsKK1BJTl9ERUNMXzIoTTIwLCBHUElPWjcsIFJPTUE5LCBWUE9CNyk7CiAKICNkZWZpbmUgTTIxIDIwOAogI2RlZmluZSBNMjFfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDI0KQotU0lHX0VYUFJfREVDTChST01BMTAsIFJPTTgsIE0yMV9ERVNDLCBWUE9PRkYwX0RFU0MpOwotU0lHX0VYUFJfREVDTChST01BMTAsIFJPTTE2LCBNMjFfREVTQywgVlBPT0ZGMF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFJPTUExMCwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9HMCwgVlBPMTIsIE0yMV9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzAsIFZQTzI0LCBNMjFfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0cwLCBWUE9PRkYxLCBNMjFfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9HMCwgU0lHX0VYUFJfUFRSKFZQT0cwLCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9HMCwgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPRzAsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKE0yMSwgR1BJT0FBMCwgUk9NQTEwLCBWUE9HMCk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMTAsIFJPTTgsIE0yMV9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTEwLCBST00xNiwgTTIxX0RFU0MsIFZQT09GRjBfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChNMjEsIFJPTUExMCwgUk9NOCwgUk9NMTYpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzAsIFZQTzEyLCBNMjFfREVTQywgVlBPMTJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HMCwgVlBPMjQsIE0yMV9ERVNDLCBWUE8yNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0cwLCBWUE9PRkYxLCBNMjFfREVTQywgVlBPT0ZGMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9HMCwgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPRzAsIFZQTzEyKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0cwLCBWUE8yNCksCisJCVNJR19FWFBSX1BUUihWUE9HMCwgVlBPT0ZGMSkpOworU0lHX0VYUFJfTElTVF9BTElBUyhNMjEsIFZQT0cwLCBWUE8pOworUElOX0RFQ0xfMihNMjEsIEdQSU9BQTAsIFJPTUExMCwgVlBPRzApOwogCiAjZGVmaW5lIE0yMiAyMDkKICNkZWZpbmUgTTIyX0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE0LCAyNSkKLVNJR19FWFBSX0RFQ0woUk9NQTExLCBST004LCBNMjJfREVTQywgVlBPT0ZGMF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woUk9NQTExLCBST00xNiwgTTIyX0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BMTEsIFJPTTgsIFJPTTE2KTsKLVNJR19FWFBSX0RFQ0woVlBPRzEsIFZQTzEyLCBNMjJfREVTQywgVlBPMTJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0cxLCBWUE8yNCwgTTIyX0RFU0MsIFZQTzI0X0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9HMSwgVlBPT0ZGMSwgTTIyX0RFU0MsIFZQT09GRjFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPRzEsIFNJR19FWFBSX1BUUihWUE9HMSwgVlBPMTIpLAotCQlTSUdfRVhQUl9QVFIoVlBPRzEsIFZQTzI0KSwgU0lHX0VYUFJfUFRSKFZQT0cxLCBWUE9PRkYxKSk7Ci1NU19QSU5fREVDTChNMjIsIEdQSU9BQTEsIFJPTUExMSwgVlBPRzEpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTExLCBST004LCBNMjJfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUExMSwgUk9NMTYsIE0yMl9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoTTIyLCBST01BMTEsIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0cxLCBWUE8xMiwgTTIyX0RFU0MsIFZQTzEyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzEsIFZQTzI0LCBNMjJfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HMSwgVlBPT0ZGMSwgTTIyX0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPRzEsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0cxLCBWUE8xMiksCisJCVNJR19FWFBSX1BUUihWUE9HMSwgVlBPMjQpLAorCQlTSUdfRVhQUl9QVFIoVlBPRzEsIFZQT09GRjEpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoTTIyLCBWUE9HMSwgVlBPKTsKK1BJTl9ERUNMXzIoTTIyLCBHUElPQUExLCBST01BMTEsIFZQT0cxKTsKIAogI2RlZmluZSBMMTggMjEwCiAjZGVmaW5lIEwxOF9ERVNDCVNJR19ERVNDX1NFVChTQ1VBNCwgMjYpCi1TSUdfRVhQUl9ERUNMKFJPTUExMiwgUk9NOCwgTDE4X0RFU0MsIFZQT09GRjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFJPTUExMiwgUk9NMTYsIEwxOF9ERVNDLCBWUE9PRkYwX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoUk9NQTEyLCBST004LCBST00xNik7Ci1TSUdfRVhQUl9ERUNMKFZQT0cyLCBWUE8xMiwgTDE4X0RFU0MsIFZQTzEyX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9HMiwgVlBPMjQsIEwxOF9ERVNDLCBWUE8yNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzIsIFZQT09GRjEsIEwxOF9ERVNDLCBWUE9PRkYxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQT0cyLCBTSUdfRVhQUl9QVFIoVlBPRzIsIFZQTzEyKSwKLQkJU0lHX0VYUFJfUFRSKFZQT0cyLCBWUE8yNCksIFNJR19FWFBSX1BUUihWUE9HMiwgVlBPT0ZGMSkpOwotTVNfUElOX0RFQ0woTDE4LCBHUElPQUEyLCBST01BMTIsIFZQT0cyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUExMiwgUk9NOCwgTDE4X0RFU0MsIFZQT09GRjBfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMTIsIFJPTTE2LCBMMThfREVTQywgVlBPT0ZGMF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEwxOCwgUk9NQTEyLCBST004LCBST00xNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HMiwgVlBPMTIsIEwxOF9ERVNDLCBWUE8xMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0cyLCBWUE8yNCwgTDE4X0RFU0MsIFZQTzI0X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzIsIFZQT09GRjEsIEwxOF9ERVNDLCBWUE9PRkYxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQT0cyLCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9HMiwgVlBPMTIpLAorCQlTSUdfRVhQUl9QVFIoVlBPRzIsIFZQTzI0KSwKKwkJU0lHX0VYUFJfUFRSKFZQT0cyLCBWUE9PRkYxKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKEwxOCwgVlBPRzIsIFZQTyk7CitQSU5fREVDTF8yKEwxOCwgR1BJT0FBMiwgUk9NQTEyLCBWUE9HMik7CiAKICNkZWZpbmUgTDE5IDIxMQogI2RlZmluZSBMMTlfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDI3KQotU0lHX0VYUFJfREVDTChST01BMTMsIFJPTTgsIEwxOV9ERVNDLCBWUE9PRkYwX0RFU0MpOwotU0lHX0VYUFJfREVDTChST01BMTMsIFJPTTE2LCBMMTlfREVTQywgVlBPT0ZGMF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFJPTUExMywgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9HMywgVlBPMTIsIEwxOV9ERVNDLCBWUE8xMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzMsIFZQTzI0LCBMMTlfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0czLCBWUE9PRkYxLCBMMTlfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9HMywgU0lHX0VYUFJfUFRSKFZQT0czLCBWUE8xMiksCi0JCVNJR19FWFBSX1BUUihWUE9HMywgVlBPMjQpLCBTSUdfRVhQUl9QVFIoVlBPRzMsIFZQT09GRjEpKTsKLU1TX1BJTl9ERUNMKEwxOSwgR1BJT0FBMywgUk9NQTEzLCBWUE9HMyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMTMsIFJPTTgsIEwxOV9ERVNDLCBWUE9PRkYwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTEzLCBST00xNiwgTDE5X0RFU0MsIFZQT09GRjBfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChMMTksIFJPTUExMywgUk9NOCwgUk9NMTYpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzMsIFZQTzEyLCBMMTlfREVTQywgVlBPMTJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HMywgVlBPMjQsIEwxOV9ERVNDLCBWUE8yNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0czLCBWUE9PRkYxLCBMMTlfREVTQywgVlBPT0ZGMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9HMywgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPRzMsIFZQTzEyKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0czLCBWUE8yNCksCisJCVNJR19FWFBSX1BUUihWUE9HMywgVlBPT0ZGMSkpOworU0lHX0VYUFJfTElTVF9BTElBUyhMMTksIFZQT0czLCBWUE8pOworUElOX0RFQ0xfMihMMTksIEdQSU9BQTMsIFJPTUExMywgVlBPRzMpOwogCiAjZGVmaW5lIEwyMCAyMTIKICNkZWZpbmUgTDIwX0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE0LCAyOCkKLVNJR19FWFBSX0RFQ0woUk9NQTE0LCBST004LCBMMjBfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9ERUNMKFJPTUExNCwgUk9NMTYsIEwyMF9ERVNDLCBWUE9fT0ZGXzEyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFJPTUExNCwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9HNCwgVlBPMjQsIEwyMF9ERVNDLCBWUE8yNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzQsIFZQT09GRjEsIEwyMF9ERVNDLCBWUE9PRkYxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVlBPRzQsIFZQTzI0LCBWUE9PRkYxKTsKLU1TX1BJTl9ERUNMKEwyMCwgR1BJT0FBNCwgUk9NQTE0LCBWUE9HNCk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMTQsIFJPTTgsIEwyMF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUExNCwgUk9NMTYsIEwyMF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEwyMCwgUk9NQTE0LCBST004LCBST00xNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HNCwgVlBPMjQsIEwyMF9ERVNDLCBWUE8yNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0c0LCBWUE9PRkYxLCBMMjBfREVTQywgVlBPT0ZGMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEwyMCwgVlBPRzQsIFZQTzI0LCBWUE9PRkYxKTsKK1BJTl9ERUNMXzIoTDIwLCBHUElPQUE0LCBST01BMTQsIFZQT0c0KTsKIAogI2RlZmluZSBMMjEgMjEzCiAjZGVmaW5lIEwyMV9ERVNDCVNJR19ERVNDX1NFVChTQ1VBNCwgMjkpCi1TSUdfRVhQUl9ERUNMKFJPTUExNSwgUk9NOCwgTDIxX0RFU0MsIFZQT19PRkZfMTIpOwotU0lHX0VYUFJfREVDTChST01BMTUsIFJPTTE2LCBMMjFfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChST01BMTUsIFJPTTgsIFJPTTE2KTsKLVNJR19FWFBSX0RFQ0woVlBPRzUsIFZQTzI0LCBMMjFfREVTQywgVlBPMjRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0c1LCBWUE9PRkYxLCBMMjFfREVTQywgVlBPT0ZGMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFZQT0c1LCBWUE8yNCwgVlBPT0ZGMSk7Ci1NU19QSU5fREVDTChMMjEsIEdQSU9BQTUsIFJPTUExNSwgVlBPRzUpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTE1LCBST004LCBMMjFfREVTQywgVlBPX09GRl8xMik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMTUsIFJPTTE2LCBMMjFfREVTQywgVlBPX09GRl8xMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChMMjEsIFJPTUExNSwgUk9NOCwgUk9NMTYpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzUsIFZQTzI0LCBMMjFfREVTQywgVlBPMjRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HNSwgVlBPT0ZGMSwgTDIxX0RFU0MsIFZQT09GRjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChMMjEsIFZQT0c1LCBWUE8yNCwgVlBPT0ZGMSk7CitQSU5fREVDTF8yKEwyMSwgR1BJT0FBNSwgUk9NQTE1LCBWUE9HNSk7CiAKICNkZWZpbmUgVDE4IDIxNAogI2RlZmluZSBUMThfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDMwKQotU0lHX0VYUFJfREVDTChST01BMTYsIFJPTTgsIFQxOF9ERVNDLCBWUE9fT0ZGXzEyKTsKLVNJR19FWFBSX0RFQ0woUk9NQTE2LCBST00xNiwgVDE4X0RFU0MsIFZQT19PRkZfMTIpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoUk9NQTE2LCBST004LCBST00xNik7Ci1TSUdfRVhQUl9ERUNMKFZQT0c2LCBWUE8yNCwgVDE4X0RFU0MsIFZQTzI0X0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9HNiwgVlBPT0ZGMSwgVDE4X0RFU0MsIFZQT09GRjFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChWUE9HNiwgVlBPMjQsIFZQT09GRjEpOwotTVNfUElOX0RFQ0woVDE4LCBHUElPQUE2LCBST01BMTYsIFZQT0c2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUExNiwgUk9NOCwgVDE4X0RFU0MsIFZQT19PRkZfMTIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoUk9NQTE2LCBST00xNiwgVDE4X0RFU0MsIFZQT19PRkZfMTIpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVDE4LCBST01BMTYsIFJPTTgsIFJPTTE2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0c2LCBWUE8yNCwgVDE4X0RFU0MsIFZQTzI0X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzYsIFZQT09GRjEsIFQxOF9ERVNDLCBWUE9PRkYxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVDE4LCBWUE9HNiwgVlBPMjQsIFZQT09GRjEpOworUElOX0RFQ0xfMihUMTgsIEdQSU9BQTYsIFJPTUExNiwgVlBPRzYpOwogCiAjZGVmaW5lIE4xOCAyMTUKICNkZWZpbmUgTjE4X0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE0LCAzMSkKLVNJR19FWFBSX0RFQ0woUk9NQTE3LCBST004LCBOMThfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9ERUNMKFJPTUExNywgUk9NMTYsIE4xOF9ERVNDLCBWUE9fT0ZGXzEyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFJPTUExNywgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9HNywgVlBPMjQsIE4xOF9ERVNDLCBWUE8yNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzcsIFZQT09GRjEsIE4xOF9ERVNDLCBWUE9PRkYxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVlBPRzcsIFZQTzI0LCBWUE9PRkYxKTsKLU1TX1BJTl9ERUNMKE4xOCwgR1BJT0FBNywgUk9NQTE3LCBWUE9HNyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMTcsIFJPTTgsIE4xOF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUExNywgUk9NMTYsIE4xOF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE4xOCwgUk9NQTE3LCBST004LCBST00xNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HNywgVlBPMjQsIE4xOF9ERVNDLCBWUE8yNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0c3LCBWUE9PRkYxLCBOMThfREVTQywgVlBPT0ZGMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE4xOCwgVlBPRzcsIFZQTzI0LCBWUE9PRkYxKTsKK1BJTl9ERUNMXzIoTjE4LCBHUElPQUE3LCBST01BMTcsIFZQT0c3KTsKIAogI2RlZmluZSBOMTkgMjE2CiAjZGVmaW5lIE4xOV9ERVNDCVNJR19ERVNDX1NFVChTQ1VBOCwgMCkKLVNJR19FWFBSX0RFQ0woUk9NQTE4LCBST004LCBOMTlfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9ERUNMKFJPTUExOCwgUk9NMTYsIE4xOV9ERVNDLCBWUE9fT0ZGXzEyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFJPTUExOCwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9SMCwgVlBPMjQsIE4xOV9ERVNDLCBWUE8yNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPUjAsIFZQT09GRjEsIE4xOV9ERVNDLCBWUE9PRkYxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVlBPUjAsIFZQTzI0LCBWUE9PRkYxKTsKLU1TX1BJTl9ERUNMKE4xOSwgR1BJT0FCMCwgUk9NQTE4LCBWUE9SMCk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMTgsIFJPTTgsIE4xOV9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUExOCwgUk9NMTYsIE4xOV9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE4xOSwgUk9NQTE4LCBST004LCBST00xNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SMCwgVlBPMjQsIE4xOV9ERVNDLCBWUE8yNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1IwLCBWUE9PRkYxLCBOMTlfREVTQywgVlBPT0ZGMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE4xOSwgVlBPUjAsIFZQTzI0LCBWUE9PRkYxKTsKK1BJTl9ERUNMXzIoTjE5LCBHUElPQUIwLCBST01BMTgsIFZQT1IwKTsKIAogI2RlZmluZSBNMTggMjE3CiAjZGVmaW5lIE0xOF9ERVNDCVNJR19ERVNDX1NFVChTQ1VBOCwgMSkKLVNJR19FWFBSX0RFQ0woUk9NQTE5LCBST004LCBNMThfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9ERUNMKFJPTUExOSwgUk9NMTYsIE0xOF9ERVNDLCBWUE9fT0ZGXzEyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFJPTUExOSwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9SMSwgVlBPMjQsIE0xOF9ERVNDLCBWUE8yNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPUjEsIFZQT09GRjEsIE0xOF9ERVNDLCBWUE9PRkYxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVlBPUjEsIFZQTzI0LCBWUE9PRkYxKTsKLU1TX1BJTl9ERUNMKE0xOCwgR1BJT0FCMSwgUk9NQTE5LCBWUE9SMSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMTksIFJPTTgsIE0xOF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUExOSwgUk9NMTYsIE0xOF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE0xOCwgUk9NQTE5LCBST004LCBST00xNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SMSwgVlBPMjQsIE0xOF9ERVNDLCBWUE8yNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1IxLCBWUE9PRkYxLCBNMThfREVTQywgVlBPT0ZGMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE0xOCwgVlBPUjEsIFZQTzI0LCBWUE9PRkYxKTsKK1BJTl9ERUNMXzIoTTE4LCBHUElPQUIxLCBST01BMTksIFZQT1IxKTsKIAogI2RlZmluZSBOMjIgMjE4CiAjZGVmaW5lIE4yMl9ERVNDCVNJR19ERVNDX1NFVChTQ1VBOCwgMikKLVNJR19FWFBSX0RFQ0woUk9NQTIwLCBST004LCBOMjJfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9ERUNMKFJPTUEyMCwgUk9NMTYsIE4yMl9ERVNDLCBWUE9fT0ZGXzEyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFJPTUEyMCwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9SMiwgVlBPMjQsIE4yMl9ERVNDLCBWUE8yNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPUjIsIFZQT09GRjEsIE4yMl9ERVNDLCBWUE9PRkYxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVlBPUjIsIFZQTzI0LCBWUE9PRkYxKTsKLU1TX1BJTl9ERUNMKE4yMiwgR1BJT0FCMiwgUk9NQTIwLCBWUE9SMik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMjAsIFJPTTgsIE4yMl9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUEyMCwgUk9NMTYsIE4yMl9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE4yMiwgUk9NQTIwLCBST004LCBST00xNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SMiwgVlBPMjQsIE4yMl9ERVNDLCBWUE8yNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1IyLCBWUE9PRkYxLCBOMjJfREVTQywgVlBPT0ZGMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE4yMiwgVlBPUjIsIFZQTzI0LCBWUE9PRkYxKTsKK1BJTl9ERUNMXzIoTjIyLCBHUElPQUIyLCBST01BMjAsIFZQT1IyKTsKIAogI2RlZmluZSBOMjAgMjE5CiAjZGVmaW5lIE4yMF9ERVNDCVNJR19ERVNDX1NFVChTQ1VBOCwgMykKLVNJR19FWFBSX0RFQ0woUk9NQTIxLCBST004LCBOMjBfREVTQywgVlBPX09GRl8xMik7Ci1TSUdfRVhQUl9ERUNMKFJPTUEyMSwgUk9NMTYsIE4yMF9ERVNDLCBWUE9fT0ZGXzEyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFJPTUEyMSwgUk9NOCwgUk9NMTYpOwotU0lHX0VYUFJfREVDTChWUE9SMywgVlBPMjQsIE4yMF9ERVNDLCBWUE8yNF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPUjMsIFZQT09GRjEsIE4yMF9ERVNDLCBWUE9PRkYxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVlBPUjMsIFZQTzI0LCBWUE9PRkYxKTsKLU1TX1BJTl9ERUNMKE4yMCwgR1BJT0FCMywgUk9NQTIxLCBWUE9SMyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShST01BMjEsIFJPTTgsIE4yMF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFJPTUEyMSwgUk9NMTYsIE4yMF9ERVNDLCBWUE9fT0ZGXzEyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE4yMCwgUk9NQTIxLCBST004LCBST00xNik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SMywgVlBPMjQsIE4yMF9ERVNDLCBWUE8yNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1IzLCBWUE9PRkYxLCBOMjBfREVTQywgVlBPT0ZGMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKE4yMCwgVlBPUjMsIFZQTzI0LCBWUE9PRkYxKTsKK1BJTl9ERUNMXzIoTjIwLCBHUElPQUIzLCBST01BMjEsIFZQT1IzKTsKIAogRlVOQ19HUk9VUF9ERUNMKFJPTTgsIFYyMCwgVTIxLCBUMTksIFYyMiwgVTIwLCBSMTgsIE4yMSwgTDIyLCBLMTgsIFcyMSwgWTIyLAogCQlVMTksIFIyMiwgUDE4LCBQMTksIFAyMCwgUDIxLCBQMjIsIE0xOSwgTTIwLCBNMjEsIE0yMiwgTDE4LApAQCAtMTc0MCwxNCArMTg2NSwxNiBAQCBGVU5DX0dST1VQX0RFQ0woVlBPMjQsIFUyMSwgVDE5LCBWMjIsIFUyMCwgTDIyLCBLMTgsIFYyMSwgVzIyLCBSMjIsIFAxOCwgUDE5LAogI2RlZmluZSBVU0IxMUQxX0RFU0MJU0lHX0RFU0NfQklUKFNDVTkwLCAzLCAwKQogCiAjZGVmaW5lIEs0IDIyMAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShVU0IxMUhEUDIsIFVTQjExSDIsIFVTQjExSDJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFVTQjExRFAxLCBVU0IxMUQxLCBVU0IxMUQxX0RFU0MpOwotTVNfUElOX0RFQ0xfKEs0LCBTSUdfRVhQUl9MSVNUX1BUUihVU0IxMUhEUDIpLCBTSUdfRVhQUl9MSVNUX1BUUihVU0IxMURQMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShLNCwgVVNCMTFIRFAyLCBVU0IxMUgyLCBVU0IxMUgyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShLNCwgVVNCMTFEUDEsIFVTQjExRDEsIFVTQjExRDFfREVTQyk7CitQSU5fREVDTF8oSzQsIFNJR19FWFBSX0xJU1RfUFRSKEs0LCBVU0IxMUhEUDIpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoSzQsIFVTQjExRFAxKSk7CiAKICNkZWZpbmUgSzMgMjIxCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFVTQjExSEROMSwgVVNCMTFIMiwgVVNCMTFIMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVVNCMTFERE4xLCBVU0IxMUQxLCBVU0IxMUQxX0RFU0MpOwotTVNfUElOX0RFQ0xfKEszLCBTSUdfRVhQUl9MSVNUX1BUUihVU0IxMUhETjEpLCBTSUdfRVhQUl9MSVNUX1BUUihVU0IxMURETjEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoSzMsIFVTQjExSEROMSwgVVNCMTFIMiwgVVNCMTFIMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoSzMsIFVTQjExREROMSwgVVNCMTFEMSwgVVNCMTFEMV9ERVNDKTsKK1BJTl9ERUNMXyhLMywgU0lHX0VYUFJfTElTVF9QVFIoSzMsIFVTQjExSEROMSksCisJICBTSUdfRVhQUl9MSVNUX1BUUihLMywgVVNCMTFERE4xKSk7CiAKIEZVTkNfR1JPVVBfREVDTChVU0IxMUgyLCBLNCwgSzMpOwogRlVOQ19HUk9VUF9ERUNMKFVTQjExRDEsIEs0LCBLMyk7CkBAIC0xNzU2LDE0ICsxODgzLDE2IEBAIEZVTkNfR1JPVVBfREVDTChVU0IxMUQxLCBLNCwgSzMpOwogI2RlZmluZSBVU0IyRDFfREVTQwlTSUdfREVTQ19CSVQoU0NVOTAsIDI5LCAwKQogCiAjZGVmaW5lIEFCMjEgMjIyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFVTQjJIRFAxLCBVU0IySDEsIFVTQjJIMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVVNCMkREUDEsIFVTQjJEMSwgVVNCMkQxX0RFU0MpOwotTVNfUElOX0RFQ0xfKEFCMjEsIFNJR19FWFBSX0xJU1RfUFRSKFVTQjJIRFAxKSwgU0lHX0VYUFJfTElTVF9QVFIoVVNCMkREUDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUIyMSwgVVNCMkhEUDEsIFVTQjJIMSwgVVNCMkgxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQjIxLCBVU0IyRERQMSwgVVNCMkQxLCBVU0IyRDFfREVTQyk7CitQSU5fREVDTF8oQUIyMSwgU0lHX0VYUFJfTElTVF9QVFIoQUIyMSwgVVNCMkhEUDEpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUIyMSwgVVNCMkREUDEpKTsKIAogI2RlZmluZSBBQjIwIDIyMwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShVU0IySEROMSwgVVNCMkgxLCBVU0IySDFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFVTQjJERE4xLCBVU0IyRDEsIFVTQjJEMV9ERVNDKTsKLU1TX1BJTl9ERUNMXyhBQjIwLCBTSUdfRVhQUl9MSVNUX1BUUihVU0IySEROMSksIFNJR19FWFBSX0xJU1RfUFRSKFVTQjJERE4xKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFCMjAsIFVTQjJIRE4xLCBVU0IySDEsIFVTQjJIMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUIyMCwgVVNCMkRETjEsIFVTQjJEMSwgVVNCMkQxX0RFU0MpOworUElOX0RFQ0xfKEFCMjAsIFNJR19FWFBSX0xJU1RfUFRSKEFCMjAsIFVTQjJIRE4xKSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEFCMjAsIFVTQjJERE4xKSk7CiAKIEZVTkNfR1JPVVBfREVDTChVU0IySDEsIEFCMjEsIEFCMjApOwogRlVOQ19HUk9VUF9ERUNMKFVTQjJEMSwgQUIyMSwgQUIyMCk7CkBAIC0yNTMxLDYgKzI2NjAsMTAgQEAgc3RhdGljIGludCBhc3BlZWRfZzRfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhc3BlZWRfZzRfcGluY3RybF9vZl9tYXRjaFtdID0gewogCXsgLmNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI0MDAtcGluY3RybCIsIH0sCisJLyoKKwkgKiBUaGUgYXNwZWVkLGc0LXBpbmN0cmwgY29tcGF0aWJsZSBoYXMgYmVlbiByZW1vdmVkIHRoZSBmcm9tIHRoZQorCSAqIGJpbmRpbmdzLCBidXQga2VlcCB0aGUgbWF0Y2ggaW4gY2FzZSBvZiBvbGQgZGV2aWNldHJlZXMuCisJICovCiAJeyAuY29tcGF0aWJsZSA9ICJhc3BlZWQsZzQtcGluY3RybCIsIH0sCiAJeyB9LAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvcGluY3RybC1hc3BlZWQtZzUuYyBiL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvcGluY3RybC1hc3BlZWQtZzUuYwppbmRleCBmZjg0ZDFhLi5kOGE4MDRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3BpbmN0cmwtYXNwZWVkLWc1LmMKKysrIGIvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9waW5jdHJsLWFzcGVlZC1nNS5jCkBAIC0yMSw2ICsyMSwxMyBAQAogI2luY2x1ZGUgIi4uL3BpbmN0cmwtdXRpbHMuaCIKICNpbmNsdWRlICJwaW5jdHJsLWFzcGVlZC5oIgogCisvKiBXcmFwIHNvbWUgb2YgdGhlIGNvbW1vbiBtYWNyb3MgZm9yIGNsYXJpdHkgKi8KKyNkZWZpbmUgU0lHX0VYUFJfREVDTF9TSU5HTEUoc2lnLCBmdW5jLCAuLi4pIFwKKwlTSUdfRVhQUl9ERUNMKHNpZywgZnVuYywgZnVuYywgX19WQV9BUkdTX18pCisKKyNkZWZpbmUgU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRSBTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRworI2RlZmluZSBTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTCBTSUdfRVhQUl9MSVNUX0RFQ0xfREVTRworCiAvKgogICogVGhlICJNdWx0aS1mdW5jdGlvbiBQaW5zIE1hcHBpbmcgYW5kIENvbnRyb2wiIHRhYmxlIGluIHRoZSBTb0MgZGF0YXNoZWV0CiAgKiByZWZlcmVuY2VzIHJlZ2lzdGVycyBieSB0aGUgZGV2aWNlL29mZnNldCBtbmVtb25pYy4gVGhlIHJlZ2lzdGVyIG1hY3JvcwpAQCAtNjMsOSArNzAsOSBAQCBTU1NGX1BJTl9ERUNMKEIxNCwgR1BJT0EwLCBNQUMxTElOSywgU0lHX0RFU0NfU0VUKFNDVTgwLCAwKSk7CiBTU1NGX1BJTl9ERUNMKEQxNCwgR1BJT0ExLCBNQUMyTElOSywgU0lHX0RFU0NfU0VUKFNDVTgwLCAxKSk7CiAKICNkZWZpbmUgRDEzIDIKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU1BJMUNTMSwgU1BJMUNTMSwgU0lHX0RFU0NfU0VUKFNDVTgwLCAxNSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUSU1FUjMsIFRJTUVSMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAyKSk7Ci1NU19QSU5fREVDTChEMTMsIEdQSU9BMiwgU1BJMUNTMSwgVElNRVIzKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDEzLCBTUEkxQ1MxLCBTUEkxQ1MxLCBTSUdfREVTQ19TRVQoU0NVODAsIDE1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxMywgVElNRVIzLCBUSU1FUjMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMikpOworUElOX0RFQ0xfMihEMTMsIEdQSU9BMiwgU1BJMUNTMSwgVElNRVIzKTsKIEZVTkNfR1JPVVBfREVDTChTUEkxQ1MxLCBEMTMpOwogRlVOQ19HUk9VUF9ERUNMKFRJTUVSMywgRDEzKTsKIApAQCAtNzUsMTYgKzgyLDE2IEBAIFNTU0ZfUElOX0RFQ0woRTEzLCBHUElPQTMsIFRJTUVSNCwgU0lHX0RFU0NfU0VUKFNDVTgwLCAzKSk7CiAjZGVmaW5lIEkyQzlfREVTQwlTSUdfREVTQ19TRVQoU0NVOTAsIDIyKQogCiAjZGVmaW5lIEMxNCA0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNDTDksIEkyQzksIEkyQzlfREVTQywgQ09ORDEpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUSU1FUjUsIFRJTUVSNSwgU0lHX0RFU0NfU0VUKFNDVTgwLCA0KSwgQ09ORDEpOwotTVNfUElOX0RFQ0woQzE0LCBHUElPQTQsIFNDTDksIFRJTUVSNSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMxNCwgU0NMOSwgSTJDOSwgSTJDOV9ERVNDLCBDT05EMSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMxNCwgVElNRVI1LCBUSU1FUjUsIFNJR19ERVNDX1NFVChTQ1U4MCwgNCksIENPTkQxKTsKK1BJTl9ERUNMXzIoQzE0LCBHUElPQTQsIFNDTDksIFRJTUVSNSk7CiAKIEZVTkNfR1JPVVBfREVDTChUSU1FUjUsIEMxNCk7CiAKICNkZWZpbmUgQTEzIDUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBOSwgSTJDOSwgSTJDOV9ERVNDLCBDT05EMSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFRJTUVSNiwgVElNRVI2LCBTSUdfREVTQ19TRVQoU0NVODAsIDUpLCBDT05EMSk7Ci1NU19QSU5fREVDTChBMTMsIEdQSU9BNSwgU0RBOSwgVElNRVI2KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTEzLCBTREE5LCBJMkM5LCBJMkM5X0RFU0MsIENPTkQxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTEzLCBUSU1FUjYsIFRJTUVSNiwgU0lHX0RFU0NfU0VUKFNDVTgwLCA1KSwgQ09ORDEpOworUElOX0RFQ0xfMihBMTMsIEdQSU9BNSwgU0RBOSwgVElNRVI2KTsKIAogRlVOQ19HUk9VUF9ERUNMKFRJTUVSNiwgQTEzKTsKIApAQCAtOTMsMTYgKzEwMCwxNiBAQCBGVU5DX0dST1VQX0RFQ0woSTJDOSwgQzE0LCBBMTMpOwogI2RlZmluZSBNRElPMl9ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMikKIAogI2RlZmluZSBDMTMgNgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShNREMyLCBNRElPMiwgTURJTzJfREVTQywgQ09ORDEpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUSU1FUjcsIFRJTUVSNywgU0lHX0RFU0NfU0VUKFNDVTgwLCA2KSwgQ09ORDEpOwotTVNfUElOX0RFQ0woQzEzLCBHUElPQTYsIE1EQzIsIFRJTUVSNyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMxMywgTURDMiwgTURJTzIsIE1ESU8yX0RFU0MsIENPTkQxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzEzLCBUSU1FUjcsIFRJTUVSNywgU0lHX0RFU0NfU0VUKFNDVTgwLCA2KSwgQ09ORDEpOworUElOX0RFQ0xfMihDMTMsIEdQSU9BNiwgTURDMiwgVElNRVI3KTsKIAogRlVOQ19HUk9VUF9ERUNMKFRJTUVSNywgQzEzKTsKIAogI2RlZmluZSBCMTMgNwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShNRElPMiwgTURJTzIsIE1ESU8yX0RFU0MsIENPTkQxKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVElNRVI4LCBUSU1FUjgsIFNJR19ERVNDX1NFVChTQ1U4MCwgNyksIENPTkQxKTsKLU1TX1BJTl9ERUNMKEIxMywgR1BJT0E3LCBNRElPMiwgVElNRVI4KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjEzLCBNRElPMiwgTURJTzIsIE1ESU8yX0RFU0MsIENPTkQxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjEzLCBUSU1FUjgsIFRJTUVSOCwgU0lHX0RFU0NfU0VUKFNDVTgwLCA3KSwgQ09ORDEpOworUElOX0RFQ0xfMihCMTMsIEdQSU9BNywgTURJTzIsIFRJTUVSOCk7CiAKIEZVTkNfR1JPVVBfREVDTChUSU1FUjgsIEIxMyk7CiAKQEAgLTEyNSw5ICsxMzIsOSBAQCBTU1NGX1BJTl9ERUNMKEoyMCwgR1BJT0I0LCBVU0JDS0ksIFNJR19ERVNDX1NFVChIV19TVFJBUDEsIDIzKSk7CiAKICNkZWZpbmUgSDIxIDEzCiAjZGVmaW5lIEgyMV9ERVNDCVNJR19ERVNDX1NFVChTQ1U4MCwgMTMpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKExQQ1BELCBMUENQRCwgSDIxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMUENTTUksIExQQ1NNSSwgSDIxX0RFU0MpOwotTVNfUElOX0RFQ0woSDIxLCBHUElPQjUsIExQQ1BELCBMUENTTUkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShIMjEsIExQQ1BELCBMUENQRCwgSDIxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShIMjEsIExQQ1NNSSwgTFBDU01JLCBIMjFfREVTQyk7CitQSU5fREVDTF8yKEgyMSwgR1BJT0I1LCBMUENQRCwgTFBDU01JKTsKIEZVTkNfR1JPVVBfREVDTChMUENQRCwgSDIxKTsKIEZVTkNfR1JPVVBfREVDTChMUENTTUksIEgyMSk7CiAKQEAgLTE0MSw1MyArMTQ4LDUzIEBAIEdQSU9fUElOX0RFQ0woSDIwLCBHUElPQjcpOwogCiAjZGVmaW5lIEMxMiAxNgogI2RlZmluZSBJMkMxMF9ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMjMpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMUNMSywgU0QxLCBTRDFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNDTDEwLCBJMkMxMCwgSTJDMTBfREVTQyk7Ci1NU19QSU5fREVDTChDMTIsIEdQSU9DMCwgU0QxQ0xLLCBTQ0wxMCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMxMiwgU0QxQ0xLLCBTRDEsIFNEMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzEyLCBTQ0wxMCwgSTJDMTAsIEkyQzEwX0RFU0MpOworUElOX0RFQ0xfMihDMTIsIEdQSU9DMCwgU0QxQ0xLLCBTQ0wxMCk7CiAKICNkZWZpbmUgQTEyIDE3Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMUNNRCwgU0QxLCBTRDFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEQTEwLCBJMkMxMCwgSTJDMTBfREVTQyk7Ci1NU19QSU5fREVDTChBMTIsIEdQSU9DMSwgU0QxQ01ELCBTREExMCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExMiwgU0QxQ01ELCBTRDEsIFNEMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTEyLCBTREExMCwgSTJDMTAsIEkyQzEwX0RFU0MpOworUElOX0RFQ0xfMihBMTIsIEdQSU9DMSwgU0QxQ01ELCBTREExMCk7CiAKIEZVTkNfR1JPVVBfREVDTChJMkMxMCwgQzEyLCBBMTIpOwogCiAjZGVmaW5lIEIxMiAxOAogI2RlZmluZSBJMkMxMV9ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMjQpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMURBVDAsIFNEMSwgU0QxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0wxMSwgSTJDMTEsIEkyQzExX0RFU0MpOwotTVNfUElOX0RFQ0woQjEyLCBHUElPQzIsIFNEMURBVDAsIFNDTDExKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjEyLCBTRDFEQVQwLCBTRDEsIFNEMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjEyLCBTQ0wxMSwgSTJDMTEsIEkyQzExX0RFU0MpOworUElOX0RFQ0xfMihCMTIsIEdQSU9DMiwgU0QxREFUMCwgU0NMMTEpOwogCiAjZGVmaW5lIEQ5ICAxOQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDFEQVQxLCBTRDEsIFNEMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBMTEsIEkyQzExLCBJMkMxMV9ERVNDKTsKLU1TX1BJTl9ERUNMKEQ5LCBHUElPQzMsIFNEMURBVDEsIFNEQTExKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDksIFNEMURBVDEsIFNEMSwgU0QxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEOSwgU0RBMTEsIEkyQzExLCBJMkMxMV9ERVNDKTsKK1BJTl9ERUNMXzIoRDksIEdQSU9DMywgU0QxREFUMSwgU0RBMTEpOwogCiBGVU5DX0dST1VQX0RFQ0woSTJDMTEsIEIxMiwgRDkpOwogCiAjZGVmaW5lIEQxMCAyMAogI2RlZmluZSBJMkMxMl9ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMjUpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMURBVDIsIFNEMSwgU0QxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0wxMiwgSTJDMTIsIEkyQzEyX0RFU0MpOwotTVNfUElOX0RFQ0woRDEwLCBHUElPQzQsIFNEMURBVDIsIFNDTDEyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDEwLCBTRDFEQVQyLCBTRDEsIFNEMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDEwLCBTQ0wxMiwgSTJDMTIsIEkyQzEyX0RFU0MpOworUElOX0RFQ0xfMihEMTAsIEdQSU9DNCwgU0QxREFUMiwgU0NMMTIpOwogCiAjZGVmaW5lIEUxMiAyMQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDFEQVQzLCBTRDEsIFNEMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBMTIsIEkyQzEyLCBJMkMxMl9ERVNDKTsKLU1TX1BJTl9ERUNMKEUxMiwgR1BJT0M1LCBTRDFEQVQzLCBTREExMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxMiwgU0QxREFUMywgU0QxLCBTRDFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxMiwgU0RBMTIsIEkyQzEyLCBJMkMxMl9ERVNDKTsKK1BJTl9ERUNMXzIoRTEyLCBHUElPQzUsIFNEMURBVDMsIFNEQTEyKTsKIAogRlVOQ19HUk9VUF9ERUNMKEkyQzEyLCBEMTAsIEUxMik7CiAKICNkZWZpbmUgQzExIDIyCiAjZGVmaW5lIEkyQzEzX0RFU0MJU0lHX0RFU0NfU0VUKFNDVTkwLCAyNikKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0QxQ0QsIFNEMSwgU0QxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0wxMywgSTJDMTMsIEkyQzEzX0RFU0MpOwotTVNfUElOX0RFQ0woQzExLCBHUElPQzYsIFNEMUNELCBTQ0wxMyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMxMSwgU0QxQ0QsIFNEMSwgU0QxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTEsIFNDTDEzLCBJMkMxMywgSTJDMTNfREVTQyk7CitQSU5fREVDTF8yKEMxMSwgR1BJT0M2LCBTRDFDRCwgU0NMMTMpOwogCiAjZGVmaW5lIEIxMSAyMwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDFXUCwgU0QxLCBTRDFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEQTEzLCBJMkMxMywgSTJDMTNfREVTQyk7Ci1NU19QSU5fREVDTChCMTEsIEdQSU9DNywgU0QxV1AsIFNEQTEzKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjExLCBTRDFXUCwgU0QxLCBTRDFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxMSwgU0RBMTMsIEkyQzEzLCBJMkMxM19ERVNDKTsKK1BJTl9ERUNMXzIoQjExLCBHUElPQzcsIFNEMVdQLCBTREExMyk7CiAKIEZVTkNfR1JPVVBfREVDTChJMkMxMywgQzExLCBCMTEpOwogRlVOQ19HUk9VUF9ERUNMKFNEMSwgQzEyLCBBMTIsIEIxMiwgRDksIEQxMCwgRTEyLCBDMTEsIEIxMSk7CkBAIC0xOTcsNzIgKzIwNCw3MiBAQCBGVU5DX0dST1VQX0RFQ0woU0QxLCBDMTIsIEExMiwgQjEyLCBEOSwgRDEwLCBFMTIsIEMxMSwgQjExKTsKICNkZWZpbmUgR1BJRF9ERVNDICAgICAgIFNJR19ERVNDX1NFVChIV19TVFJBUDEsIDIxKQogCiAjZGVmaW5lIEYxOSAyNAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDJDTEssIFNEMiwgU0QyX0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElEMElOLCBHUElEMCwgR1BJRDBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQwSU4sIEdQSUQsIEdQSURfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElEMElOLCBHUElEMCwgR1BJRCk7Ci1NU19QSU5fREVDTChGMTksIEdQSU9EMCwgU0QyQ0xLLCBHUElEMElOKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjE5LCBTRDJDTEssIFNEMiwgU0QyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDBJTiwgR1BJRDAsIEdQSUQwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDBJTiwgR1BJRCwgR1BJRF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEYxOSwgR1BJRDBJTiwgR1BJRDAsIEdQSUQpOworUElOX0RFQ0xfMihGMTksIEdQSU9EMCwgU0QyQ0xLLCBHUElEMElOKTsKIAogI2RlZmluZSBFMjEgMjUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0QyQ01ELCBTRDIsIFNEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDBPVVQsIEdQSUQwLCBHUElEMF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDBPVVQsIEdQSUQsIEdQSURfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElEME9VVCwgR1BJRDAsIEdQSUQpOwotTVNfUElOX0RFQ0woRTIxLCBHUElPRDEsIFNEMkNNRCwgR1BJRDBPVVQpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMjEsIFNEMkNNRCwgU0QyLCBTRDJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElEME9VVCwgR1BJRDAsIEdQSUQwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDBPVVQsIEdQSUQsIEdQSURfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChFMjEsIEdQSUQwT1VULCBHUElEMCwgR1BJRCk7CitQSU5fREVDTF8yKEUyMSwgR1BJT0QxLCBTRDJDTUQsIEdQSUQwT1VUKTsKIAogRlVOQ19HUk9VUF9ERUNMKEdQSUQwLCBGMTksIEUyMSk7CiAKICNkZWZpbmUgR1BJRDJfREVTQyAgICAgIFNJR19ERVNDX1NFVChTQ1U4QywgOSkKIAogI2RlZmluZSBGMjAgMjYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0QyREFUMCwgU0QyLCBTRDJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQySU4sIEdQSUQyLCBHUElEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDJJTiwgR1BJRCwgR1BJRF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUQySU4sIEdQSUQyLCBHUElEKTsKLU1TX1BJTl9ERUNMKEYyMCwgR1BJT0QyLCBTRDJEQVQwLCBHUElEMklOKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjIwLCBTRDJEQVQwLCBTRDIsIFNEMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQySU4sIEdQSUQyLCBHUElEMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQySU4sIEdQSUQsIEdQSURfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChGMjAsIEdQSUQySU4sIEdQSUQyLCBHUElEKTsKK1BJTl9ERUNMXzIoRjIwLCBHUElPRDIsIFNEMkRBVDAsIEdQSUQySU4pOwogCiAjZGVmaW5lIEQyMCAyNwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDJEQVQxLCBTRDIsIFNEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDJPVVQsIEdQSUQyLCBHUElEMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDJPVVQsIEdQSUQsIEdQSURfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElEMk9VVCwgR1BJRDIsIEdQSUQpOwotTVNfUElOX0RFQ0woRDIwLCBHUElPRDMsIFNEMkRBVDEsIEdQSUQyT1VUKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDIwLCBTRDJEQVQxLCBTRDIsIFNEMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQyT1VULCBHUElEMiwgR1BJRDJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElEMk9VVCwgR1BJRCwgR1BJRF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEQyMCwgR1BJRDJPVVQsIEdQSUQyLCBHUElEKTsKK1BJTl9ERUNMXzIoRDIwLCBHUElPRDMsIFNEMkRBVDEsIEdQSUQyT1VUKTsKIAogRlVOQ19HUk9VUF9ERUNMKEdQSUQyLCBGMjAsIEQyMCk7CiAKICNkZWZpbmUgR1BJRDRfREVTQyAgICAgIFNJR19ERVNDX1NFVChTQ1U4QywgMTApCiAKICNkZWZpbmUgRDIxIDI4Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEMkRBVDIsIFNEMiwgU0QyX0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElENElOLCBHUElENCwgR1BJRDRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQ0SU4sIEdQSUQsIEdQSURfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElENElOLCBHUElENCwgR1BJRCk7Ci1NU19QSU5fREVDTChEMjEsIEdQSU9ENCwgU0QyREFUMiwgR1BJRDRJTik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQyMSwgU0QyREFUMiwgU0QyLCBTRDJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElENElOLCBHUElENCwgR1BJRDRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElENElOLCBHUElELCBHUElEX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoRDIxLCBHUElENElOLCBHUElENCwgR1BJRCk7CitQSU5fREVDTF8yKEQyMSwgR1BJT0Q0LCBTRDJEQVQyLCBHUElENElOKTsKIAogI2RlZmluZSBFMjAgMjkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0QyREFUMywgU0QyLCBTRDJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQ0T1VULCBHUElENCwgR1BJRDRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQ0T1VULCBHUElELCBHUElEX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoR1BJRDRPVVQsIEdQSUQ0LCBHUElEKTsKLU1TX1BJTl9ERUNMKEUyMCwgR1BJT0Q1LCBTRDJEQVQzLCBHUElENE9VVCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUyMCwgU0QyREFUMywgU0QyLCBTRDJfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElENE9VVCwgR1BJRDQsIEdQSUQ0X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDRPVVQsIEdQSUQsIEdQSURfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChFMjAsIEdQSUQ0T1VULCBHUElENCwgR1BJRCk7CitQSU5fREVDTF8yKEUyMCwgR1BJT0Q1LCBTRDJEQVQzLCBHUElENE9VVCk7CiAKIEZVTkNfR1JPVVBfREVDTChHUElENCwgRDIxLCBFMjApOwogCiAjZGVmaW5lIEdQSUQ2X0RFU0MgICAgICBTSUdfREVTQ19TRVQoU0NVOEMsIDExKQogCiAjZGVmaW5lIEcxOCAzMAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDJDRCwgU0QyLCBTRDJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQ2SU4sIEdQSUQ2LCBHUElENl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRDZJTiwgR1BJRCwgR1BJRF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUQ2SU4sIEdQSUQ2LCBHUElEKTsKLU1TX1BJTl9ERUNMKEcxOCwgR1BJT0Q2LCBTRDJDRCwgR1BJRDZJTik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEcxOCwgU0QyQ0QsIFNEMiwgU0QyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDZJTiwgR1BJRDYsIEdQSUQ2X0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRDZJTiwgR1BJRCwgR1BJRF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEcxOCwgR1BJRDZJTiwgR1BJRDYsIEdQSUQpOworUElOX0RFQ0xfMihHMTgsIEdQSU9ENiwgU0QyQ0QsIEdQSUQ2SU4pOwogCiAjZGVmaW5lIEMyMSAzMQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTRDJXUCwgU0QyLCBTRDJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQ2T1VULCBHUElENiwgR1BJRDZfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUQ2T1VULCBHUElELCBHUElEX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoR1BJRDZPVVQsIEdQSUQ2LCBHUElEKTsKLU1TX1BJTl9ERUNMKEMyMSwgR1BJT0Q3LCBTRDJXUCwgR1BJRDZPVVQpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMjEsIFNEMldQLCBTRDIsIFNEMl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUQ2T1VULCBHUElENiwgR1BJRDZfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElENk9VVCwgR1BJRCwgR1BJRF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEMyMSwgR1BJRDZPVVQsIEdQSUQ2LCBHUElEKTsKK1BJTl9ERUNMXzIoQzIxLCBHUElPRDcsIFNEMldQLCBHUElENk9VVCk7CiAKIEZVTkNfR1JPVVBfREVDTChHUElENiwgRzE4LCBDMjEpOwogRlVOQ19HUk9VUF9ERUNMKFNEMiwgRjE5LCBFMjEsIEYyMCwgRDIwLCBEMjEsIEUyMCwgRzE4LCBDMjEpOwpAQCAtMjcxLDE5ICsyNzgsMTkgQEAgRlVOQ19HUk9VUF9ERUNMKFNEMiwgRjE5LCBFMjEsIEYyMCwgRDIwLCBEMjEsIEUyMCwgRzE4LCBDMjEpOwogI2RlZmluZSBHUElFMF9ERVNDCVNJR19ERVNDX1NFVChTQ1U4QywgMTIpCiAKICNkZWZpbmUgQjIwIDMyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5DVFMzLCBOQ1RTMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAxNikpOwotU0lHX0VYUFJfREVDTChHUElFMElOLCBHUElFMCwgR1BJRTBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUUwSU4sIEdQSUUsIEdQSUVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElFMElOLCBHUElFMCwgR1BJRSk7Ci1NU19QSU5fREVDTChCMjAsIEdQSU9FMCwgTkNUUzMsIEdQSUUwSU4pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMjAsIE5DVFMzLCBOQ1RTMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAxNikpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTBJTiwgR1BJRTAsIEdQSUUwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTBJTiwgR1BJRSwgR1BJRV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEIyMCwgR1BJRTBJTiwgR1BJRTAsIEdQSUUpOworUElOX0RFQ0xfMihCMjAsIEdQSU9FMCwgTkNUUzMsIEdQSUUwSU4pOwogRlVOQ19HUk9VUF9ERUNMKE5DVFMzLCBCMjApOwogCiAjZGVmaW5lIEMyMCAzMwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShORENEMywgTkRDRDMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMTcpKTsKLVNJR19FWFBSX0RFQ0woR1BJRTBPVVQsIEdQSUUwLCBHUElFMF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRTBPVVQsIEdQSUUsIEdQSUVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElFME9VVCwgR1BJRTAsIEdQSUUpOwotTVNfUElOX0RFQ0woQzIwLCBHUElPRTEsIE5EQ0QzLCBHUElFME9VVCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMyMCwgTkRDRDMsIE5EQ0QzLCBTSUdfREVTQ19TRVQoU0NVODAsIDE3KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFME9VVCwgR1BJRTAsIEdQSUUwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTBPVVQsIEdQSUUsIEdQSUVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChDMjAsIEdQSUUwT1VULCBHUElFMCwgR1BJRSk7CitQSU5fREVDTF8yKEMyMCwgR1BJT0UxLCBORENEMywgR1BJRTBPVVQpOwogRlVOQ19HUk9VUF9ERUNMKE5EQ0QzLCBDMjApOwogCiBGVU5DX0dST1VQX0RFQ0woR1BJRTAsIEIyMCwgQzIwKTsKQEAgLTI5MSwyMCArMjk4LDIwIEBAIEZVTkNfR1JPVVBfREVDTChHUElFMCwgQjIwLCBDMjApOwogI2RlZmluZSBHUElFMl9ERVNDCVNJR19ERVNDX1NFVChTQ1U4QywgMTMpCiAKICNkZWZpbmUgRjE4IDM0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5EU1IzLCBORFNSMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAxOCkpOwotU0lHX0VYUFJfREVDTChHUElFMklOLCBHUElFMiwgR1BJRTJfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUUySU4sIEdQSUUsIEdQSUVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElFMklOLCBHUElFMiwgR1BJRSk7Ci1NU19QSU5fREVDTChGMTgsIEdQSU9FMiwgTkRTUjMsIEdQSUUySU4pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShGMTgsIE5EU1IzLCBORFNSMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAxOCkpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTJJTiwgR1BJRTIsIEdQSUUyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTJJTiwgR1BJRSwgR1BJRV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEYxOCwgR1BJRTJJTiwgR1BJRTIsIEdQSUUpOworUElOX0RFQ0xfMihGMTgsIEdQSU9FMiwgTkRTUjMsIEdQSUUySU4pOwogRlVOQ19HUk9VUF9ERUNMKE5EU1IzLCBGMTgpOwogCiAKICNkZWZpbmUgRjE3IDM1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5SSTMsIE5SSTMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMTkpKTsKLVNJR19FWFBSX0RFQ0woR1BJRTJPVVQsIEdQSUUyLCBHUElFMl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRTJPVVQsIEdQSUUsIEdQSUVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChHUElFMk9VVCwgR1BJRTIsIEdQSUUpOwotTVNfUElOX0RFQ0woRjE3LCBHUElPRTMsIE5SSTMsIEdQSUUyT1VUKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjE3LCBOUkkzLCBOUkkzLCBTSUdfREVTQ19TRVQoU0NVODAsIDE5KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFMk9VVCwgR1BJRTIsIEdQSUUyX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTJPVVQsIEdQSUUsIEdQSUVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChGMTcsIEdQSUUyT1VULCBHUElFMiwgR1BJRSk7CitQSU5fREVDTF8yKEYxNywgR1BJT0UzLCBOUkkzLCBHUElFMk9VVCk7CiBGVU5DX0dST1VQX0RFQ0woTlJJMywgRjE3KTsKIAogRlVOQ19HUk9VUF9ERUNMKEdQSUUyLCBGMTgsIEYxNyk7CkBAIC0zMTIsMTkgKzMxOSwxOSBAQCBGVU5DX0dST1VQX0RFQ0woR1BJRTIsIEYxOCwgRjE3KTsKICNkZWZpbmUgR1BJRTRfREVTQwlTSUdfREVTQ19TRVQoU0NVOEMsIDE0KQogCiAjZGVmaW5lIEUxOCAzNgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShORFRSMywgTkRUUjMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjApKTsKLVNJR19FWFBSX0RFQ0woR1BJRTRJTiwgR1BJRTQsIEdQSUU0X0RFU0MpOwotU0lHX0VYUFJfREVDTChHUElFNElOLCBHUElFLCBHUElFX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoR1BJRTRJTiwgR1BJRTQsIEdQSUUpOwotTVNfUElOX0RFQ0woRTE4LCBHUElPRTQsIE5EVFIzLCBHUElFNElOKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTE4LCBORFRSMywgTkRUUjMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjApKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUU0SU4sIEdQSUU0LCBHUElFNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUU0SU4sIEdQSUUsIEdQSUVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChFMTgsIEdQSUU0SU4sIEdQSUU0LCBHUElFKTsKK1BJTl9ERUNMXzIoRTE4LCBHUElPRTQsIE5EVFIzLCBHUElFNElOKTsKIEZVTkNfR1JPVVBfREVDTChORFRSMywgRTE4KTsKIAogI2RlZmluZSBEMTkgMzcKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTlJUUzMsIE5SVFMzLCBTSUdfREVTQ19TRVQoU0NVODAsIDIxKSk7Ci1TSUdfRVhQUl9ERUNMKEdQSUU0T1VULCBHUElFNCwgR1BJRTRfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUU0T1VULCBHUElFLCBHUElFX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoR1BJRTRPVVQsIEdQSUU0LCBHUElFKTsKLU1TX1BJTl9ERUNMKEQxOSwgR1BJT0U1LCBOUlRTMywgR1BJRTRPVVQpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMTksIE5SVFMzLCBOUlRTMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAyMSkpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTRPVVQsIEdQSUU0LCBHUElFNF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUU0T1VULCBHUElFLCBHUElFX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoRDE5LCBHUElFNE9VVCwgR1BJRTQsIEdQSUUpOworUElOX0RFQ0xfMihEMTksIEdQSU9FNSwgTlJUUzMsIEdQSUU0T1VUKTsKIEZVTkNfR1JPVVBfREVDTChOUlRTMywgRDE5KTsKIAogRlVOQ19HUk9VUF9ERUNMKEdQSUU0LCBFMTgsIEQxOSk7CkBAIC0zMzIsMTkgKzMzOSwxOSBAQCBGVU5DX0dST1VQX0RFQ0woR1BJRTQsIEUxOCwgRDE5KTsKICNkZWZpbmUgR1BJRTZfREVTQwlTSUdfREVTQ19TRVQoU0NVOEMsIDE1KQogCiAjZGVmaW5lIEEyMCAzOAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUWEQzLCBUWEQzLCBTSUdfREVTQ19TRVQoU0NVODAsIDIyKSk7Ci1TSUdfRVhQUl9ERUNMKEdQSUU2SU4sIEdQSUU2LCBHUElFNl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woR1BJRTZJTiwgR1BJRSwgR1BJRV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKEdQSUU2SU4sIEdQSUU2LCBHUElFKTsKLU1TX1BJTl9ERUNMKEEyMCwgR1BJT0U2LCBUWEQzLCBHUElFNklOKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTIwLCBUWEQzLCBUWEQzLCBTSUdfREVTQ19TRVQoU0NVODAsIDIyKSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFNklOLCBHUElFNiwgR1BJRTZfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShHUElFNklOLCBHUElFLCBHUElFX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQTIwLCBHUElFNklOLCBHUElFNiwgR1BJRSk7CitQSU5fREVDTF8yKEEyMCwgR1BJT0U2LCBUWEQzLCBHUElFNklOKTsKIEZVTkNfR1JPVVBfREVDTChUWEQzLCBBMjApOwogCiAjZGVmaW5lIEIxOSAzOQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSWEQzLCBSWEQzLCBTSUdfREVTQ19TRVQoU0NVODAsIDIzKSk7Ci1TSUdfRVhQUl9ERUNMKEdQSUU2T1VULCBHUElFNiwgR1BJRTZfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKEdQSUU2T1VULCBHUElFLCBHUElFX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoR1BJRTZPVVQsIEdQSUU2LCBHUElFKTsKLU1TX1BJTl9ERUNMKEIxOSwgR1BJT0U3LCBSWEQzLCBHUElFNk9VVCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxOSwgUlhEMywgUlhEMywgU0lHX0RFU0NfU0VUKFNDVTgwLCAyMykpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoR1BJRTZPVVQsIEdQSUU2LCBHUElFNl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKEdQSUU2T1VULCBHUElFLCBHUElFX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQjE5LCBHUElFNk9VVCwgR1BJRTYsIEdQSUUpOworUElOX0RFQ0xfMihCMTksIEdQSU9FNywgUlhEMywgR1BJRTZPVVQpOwogRlVOQ19HUk9VUF9ERUNMKFJYRDMsIEIxOSk7CiAKIEZVTkNfR1JPVVBfREVDTChHUElFNiwgQTIwLCBCMTkpOwpAQCAtMzUzLDExMiArMzYwLDExMiBAQCBGVU5DX0dST1VQX0RFQ0woR1BJRTYsIEEyMCwgQjE5KTsKICNkZWZpbmUgTFBDUExVU19ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMzApCiAKICNkZWZpbmUgSjE5IDQwCi1TSUdfRVhQUl9ERUNMKExIQUQwLCBMUENIQywgTFBDSENfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKExIQUQwLCBMUENQTFVTLCBMUENQTFVTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoTEhBRDAsIExQQ0hDLCBMUENQTFVTKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkNUUzQsIE5DVFM0LCBTSUdfREVTQ19TRVQoU0NVODAsIDI0KSk7Ci1NU19QSU5fREVDTChKMTksIEdQSU9GMCwgTEhBRDAsIE5DVFM0KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKExIQUQwLCBMUENIQywgTFBDSENfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShMSEFEMCwgTFBDUExVUywgTFBDUExVU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEoxOSwgTEhBRDAsIExQQ0hDLCBMUENQTFVTKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoSjE5LCBOQ1RTNCwgTkNUUzQsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjQpKTsKK1BJTl9ERUNMXzIoSjE5LCBHUElPRjAsIExIQUQwLCBOQ1RTNCk7CiBGVU5DX0dST1VQX0RFQ0woTkNUUzQsIEoxOSk7CiAKICNkZWZpbmUgSjE4IDQxCi1TSUdfRVhQUl9ERUNMKExIQUQxLCBMUENIQywgTFBDSENfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKExIQUQxLCBMUENQTFVTLCBMUENQTFVTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoTEhBRDEsIExQQ0hDLCBMUENQTFVTKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRDRDQsIE5EQ0Q0LCBTSUdfREVTQ19TRVQoU0NVODAsIDI1KSk7Ci1NU19QSU5fREVDTChKMTgsIEdQSU9GMSwgTEhBRDEsIE5EQ0Q0KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKExIQUQxLCBMUENIQywgTFBDSENfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShMSEFEMSwgTFBDUExVUywgTFBDUExVU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEoxOCwgTEhBRDEsIExQQ0hDLCBMUENQTFVTKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoSjE4LCBORENENCwgTkRDRDQsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjUpKTsKK1BJTl9ERUNMXzIoSjE4LCBHUElPRjEsIExIQUQxLCBORENENCk7CiBGVU5DX0dST1VQX0RFQ0woTkRDRDQsIEoxOCk7CiAKICNkZWZpbmUgQjIyIDQyCi1TSUdfRVhQUl9ERUNMKExIQUQyLCBMUENIQywgTFBDSENfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKExIQUQyLCBMUENQTFVTLCBMUENQTFVTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoTEhBRDIsIExQQ0hDLCBMUENQTFVTKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRTUjQsIE5EU1I0LCBTSUdfREVTQ19TRVQoU0NVODAsIDI2KSk7Ci1NU19QSU5fREVDTChCMjIsIEdQSU9GMiwgTEhBRDIsIE5EU1I0KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKExIQUQyLCBMUENIQywgTFBDSENfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShMSEFEMiwgTFBDUExVUywgTFBDUExVU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEIyMiwgTEhBRDIsIExQQ0hDLCBMUENQTFVTKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjIyLCBORFNSNCwgTkRTUjQsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjYpKTsKK1BJTl9ERUNMXzIoQjIyLCBHUElPRjIsIExIQUQyLCBORFNSNCk7CiBGVU5DX0dST1VQX0RFQ0woTkRTUjQsIEIyMik7CiAKICNkZWZpbmUgQjIxIDQzCi1TSUdfRVhQUl9ERUNMKExIQUQzLCBMUENIQywgTFBDSENfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKExIQUQzLCBMUENQTFVTLCBMUENQTFVTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoTEhBRDMsIExQQ0hDLCBMUENQTFVTKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTlJJNCwgTlJJNCwgU0lHX0RFU0NfU0VUKFNDVTgwLCAyNykpOwotTVNfUElOX0RFQ0woQjIxLCBHUElPRjMsIExIQUQzLCBOUkk0KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKExIQUQzLCBMUENIQywgTFBDSENfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShMSEFEMywgTFBDUExVUywgTFBDUExVU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEIyMSwgTEhBRDMsIExQQ0hDLCBMUENQTFVTKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjIxLCBOUkk0LCBOUkk0LCBTSUdfREVTQ19TRVQoU0NVODAsIDI3KSk7CitQSU5fREVDTF8yKEIyMSwgR1BJT0YzLCBMSEFEMywgTlJJNCk7CiBGVU5DX0dST1VQX0RFQ0woTlJJNCwgQjIxKTsKIAogI2RlZmluZSBBMjEgNDQKLVNJR19FWFBSX0RFQ0woTEhDTEssIExQQ0hDLCBMUENIQ19ERVNDKTsKLVNJR19FWFBSX0RFQ0woTEhDTEssIExQQ1BMVVMsIExQQ1BMVVNfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChMSENMSywgTFBDSEMsIExQQ1BMVVMpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShORFRSNCwgTkRUUjQsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjgpKTsKLU1TX1BJTl9ERUNMKEEyMSwgR1BJT0Y0LCBMSENMSywgTkRUUjQpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoTEhDTEssIExQQ0hDLCBMUENIQ19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKExIQ0xLLCBMUENQTFVTLCBMUENQTFVTX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQTIxLCBMSENMSywgTFBDSEMsIExQQ1BMVVMpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMjEsIE5EVFI0LCBORFRSNCwgU0lHX0RFU0NfU0VUKFNDVTgwLCAyOCkpOworUElOX0RFQ0xfMihBMjEsIEdQSU9GNCwgTEhDTEssIE5EVFI0KTsKIEZVTkNfR1JPVVBfREVDTChORFRSNCwgQTIxKTsKIAogI2RlZmluZSBIMTkgNDUKLVNJR19FWFBSX0RFQ0woTEhGUkFNRSwgTFBDSEMsIExQQ0hDX0RFU0MpOwotU0lHX0VYUFJfREVDTChMSEZSQU1FLCBMUENQTFVTLCBMUENQTFVTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoTEhGUkFNRSwgTFBDSEMsIExQQ1BMVVMpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOUlRTNCwgTlJUUzQsIFNJR19ERVNDX1NFVChTQ1U4MCwgMjkpKTsKLU1TX1BJTl9ERUNMKEgxOSwgR1BJT0Y1LCBMSEZSQU1FLCBOUlRTNCk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShMSEZSQU1FLCBMUENIQywgTFBDSENfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShMSEZSQU1FLCBMUENQTFVTLCBMUENQTFVTX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoSDE5LCBMSEZSQU1FLCBMUENIQywgTFBDUExVUyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEgxOSwgTlJUUzQsIE5SVFM0LCBTSUdfREVTQ19TRVQoU0NVODAsIDI5KSk7CitQSU5fREVDTF8yKEgxOSwgR1BJT0Y1LCBMSEZSQU1FLCBOUlRTNCk7CiBGVU5DX0dST1VQX0RFQ0woTlJUUzQsIEgxOSk7CiAKICNkZWZpbmUgRzE3IDQ2Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKExIU0lSUSwgTFBDSEMsIExQQ0hDX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUWEQ0LCBUWEQ0LCBTSUdfREVTQ19TRVQoU0NVODAsIDMwKSk7Ci1NU19QSU5fREVDTChHMTcsIEdQSU9GNiwgTEhTSVJRLCBUWEQ0KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzE3LCBMSFNJUlEsIExQQ0hDLCBMUENIQ19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzE3LCBUWEQ0LCBUWEQ0LCBTSUdfREVTQ19TRVQoU0NVODAsIDMwKSk7CitQSU5fREVDTF8yKEcxNywgR1BJT0Y2LCBMSFNJUlEsIFRYRDQpOwogRlVOQ19HUk9VUF9ERUNMKFRYRDQsIEcxNyk7CiAKICNkZWZpbmUgSDE4IDQ3Ci1TSUdfRVhQUl9ERUNMKExIUlNULCBMUENIQywgTFBDSENfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKExIUlNULCBMUENQTFVTLCBMUENQTFVTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoTEhSU1QsIExQQ0hDLCBMUENQTFVTKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUlhENCwgUlhENCwgU0lHX0RFU0NfU0VUKFNDVTgwLCAzMSkpOwotTVNfUElOX0RFQ0woSDE4LCBHUElPRjcsIExIUlNULCBSWEQ0KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKExIUlNULCBMUENIQywgTFBDSENfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShMSFJTVCwgTFBDUExVUywgTFBDUExVU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEgxOCwgTEhSU1QsIExQQ0hDLCBMUENQTFVTKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoSDE4LCBSWEQ0LCBSWEQ0LCBTSUdfREVTQ19TRVQoU0NVODAsIDMxKSk7CitQSU5fREVDTF8yKEgxOCwgR1BJT0Y3LCBMSFJTVCwgUlhENCk7CiBGVU5DX0dST1VQX0RFQ0woUlhENCwgSDE4KTsKIAogRlVOQ19HUk9VUF9ERUNMKExQQ0hDLCBKMTksIEoxOCwgQjIyLCBCMjEsIEEyMSwgSDE5LCBHMTcsIEgxOCk7CiBGVU5DX0dST1VQX0RFQ0woTFBDUExVUywgSjE5LCBKMTgsIEIyMiwgQjIxLCBBMjEsIEgxOSwgSDE4KTsKIAogI2RlZmluZSBBMTkgNDgKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0dQUzFDSywgU0dQUzEsIENPTkQxLCBTSUdfREVTQ19TRVQoU0NVODQsIDApKTsKLVNTX1BJTl9ERUNMKEExOSwgR1BJT0cwLCBTR1BTMUNLKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTE5LCBTR1BTMUNLLCBTR1BTMSwgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U4NCwgMCkpOworUElOX0RFQ0xfMShBMTksIEdQSU9HMCwgU0dQUzFDSyk7CiAKICNkZWZpbmUgRTE5IDQ5Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNHUFMxTEQsIFNHUFMxLCBDT05EMSwgU0lHX0RFU0NfU0VUKFNDVTg0LCAxKSk7Ci1TU19QSU5fREVDTChFMTksIEdQSU9HMSwgU0dQUzFMRCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxOSwgU0dQUzFMRCwgU0dQUzEsIENPTkQxLCBTSUdfREVTQ19TRVQoU0NVODQsIDEpKTsKK1BJTl9ERUNMXzEoRTE5LCBHUElPRzEsIFNHUFMxTEQpOwogCiAjZGVmaW5lIEMxOSA1MAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTR1BTMUkwLCBTR1BTMSwgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U4NCwgMikpOwotU1NfUElOX0RFQ0woQzE5LCBHUElPRzIsIFNHUFMxSTApOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTksIFNHUFMxSTAsIFNHUFMxLCBDT05EMSwgU0lHX0RFU0NfU0VUKFNDVTg0LCAyKSk7CitQSU5fREVDTF8xKEMxOSwgR1BJT0cyLCBTR1BTMUkwKTsKIAogI2RlZmluZSBFMTYgNTEKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0dQUzFJMSwgU0dQUzEsIENPTkQxLCBTSUdfREVTQ19TRVQoU0NVODQsIDMpKTsKLVNTX1BJTl9ERUNMKEUxNiwgR1BJT0czLCBTR1BTMUkxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTE2LCBTR1BTMUkxLCBTR1BTMSwgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U4NCwgMykpOworUElOX0RFQ0xfMShFMTYsIEdQSU9HMywgU0dQUzFJMSk7CiAKIEZVTkNfR1JPVVBfREVDTChTR1BTMSwgQTE5LCBFMTksIEMxOSwgRTE2KTsKIAogI2RlZmluZSBTR1BTMl9ERVNDCVNJR19ERVNDX1NFVChTQ1U5NCwgMTIpCiAKICNkZWZpbmUgRTE3IDUyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNHUFMyQ0ssIFNHUFMyLCBDT05EMSwgU0dQUzJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNBTFQxLCBTQUxUMSwgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U4NCwgNCkpOwotTVNfUElOX0RFQ0woRTE3LCBHUElPRzQsIFNHUFMyQ0ssIFNBTFQxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTE3LCBTR1BTMkNLLCBTR1BTMiwgQ09ORDEsIFNHUFMyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMTcsIFNBTFQxLCBTQUxUMSwgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U4NCwgNCkpOworUElOX0RFQ0xfMihFMTcsIEdQSU9HNCwgU0dQUzJDSywgU0FMVDEpOwogRlVOQ19HUk9VUF9ERUNMKFNBTFQxLCBFMTcpOwogCiAjZGVmaW5lIEQxNiA1MwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTR1BTMkxELCBTR1BTMiwgQ09ORDEsIFNHUFMyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQUxUMiwgU0FMVDIsIENPTkQxLCBTSUdfREVTQ19TRVQoU0NVODQsIDUpKTsKLU1TX1BJTl9ERUNMKEQxNiwgR1BJT0c1LCBTR1BTMkxELCBTQUxUMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxNiwgU0dQUzJMRCwgU0dQUzIsIENPTkQxLCBTR1BTMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDE2LCBTQUxUMiwgU0FMVDIsIENPTkQxLCBTSUdfREVTQ19TRVQoU0NVODQsIDUpKTsKK1BJTl9ERUNMXzIoRDE2LCBHUElPRzUsIFNHUFMyTEQsIFNBTFQyKTsKIEZVTkNfR1JPVVBfREVDTChTQUxUMiwgRDE2KTsKIAogI2RlZmluZSBEMTUgNTQKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0dQUzJJMCwgU0dQUzIsIENPTkQxLCBTR1BTMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0FMVDMsIFNBTFQzLCBDT05EMSwgU0lHX0RFU0NfU0VUKFNDVTg0LCA2KSk7Ci1NU19QSU5fREVDTChEMTUsIEdQSU9HNiwgU0dQUzJJMCwgU0FMVDMpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMTUsIFNHUFMySTAsIFNHUFMyLCBDT05EMSwgU0dQUzJfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxNSwgU0FMVDMsIFNBTFQzLCBDT05EMSwgU0lHX0RFU0NfU0VUKFNDVTg0LCA2KSk7CitQSU5fREVDTF8yKEQxNSwgR1BJT0c2LCBTR1BTMkkwLCBTQUxUMyk7CiBGVU5DX0dST1VQX0RFQ0woU0FMVDMsIEQxNSk7CiAKICNkZWZpbmUgRTE0IDU1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNHUFMySTEsIFNHUFMyLCBDT05EMSwgU0dQUzJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNBTFQ0LCBTQUxUNCwgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U4NCwgNykpOwotTVNfUElOX0RFQ0woRTE0LCBHUElPRzcsIFNHUFMySTEsIFNBTFQ0KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTE0LCBTR1BTMkkxLCBTR1BTMiwgQ09ORDEsIFNHUFMyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMTQsIFNBTFQ0LCBTQUxUNCwgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U4NCwgNykpOworUElOX0RFQ0xfMihFMTQsIEdQSU9HNywgU0dQUzJJMSwgU0FMVDQpOwogRlVOQ19HUk9VUF9ERUNMKFNBTFQ0LCBFMTQpOwogCiBGVU5DX0dST1VQX0RFQ0woU0dQUzIsIEUxNywgRDE2LCBEMTUsIEUxNCk7CkBAIC00NjYsNDIgKzQ3Myw0MiBAQCBGVU5DX0dST1VQX0RFQ0woU0dQUzIsIEUxNywgRDE2LCBEMTUsIEUxNCk7CiAjZGVmaW5lIFVBUlQ2X0RFU0MJU0lHX0RFU0NfU0VUKFNDVTkwLCA3KQogCiAjZGVmaW5lIEExOCA1NgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIQTE4LCBEQVNIQTE4LCBDT05EMSwgU0lHX0RFU0NfU0VUKFNDVTk0LCA1KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5DVFM2LCBVQVJUNiwgQ09ORDEsIFVBUlQ2X0RFU0MpOwotTVNfUElOX0RFQ0woQTE4LCBHUElPSDAsIERBU0hBMTgsIE5DVFM2KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTE4LCBEQVNIQTE4LCBEQVNIQTE4LCBDT05EMSwgU0lHX0RFU0NfU0VUKFNDVTk0LCA1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExOCwgTkNUUzYsIFVBUlQ2LCBDT05EMSwgVUFSVDZfREVTQyk7CitQSU5fREVDTF8yKEExOCwgR1BJT0gwLCBEQVNIQTE4LCBOQ1RTNik7CiAKICNkZWZpbmUgQjE4IDU3Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKERBU0hCMTgsIERBU0hCMTgsIENPTkQxLCBTSUdfREVTQ19TRVQoU0NVOTQsIDUpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRDRDYsIFVBUlQ2LCBDT05EMSwgVUFSVDZfREVTQyk7Ci1NU19QSU5fREVDTChCMTgsIEdQSU9IMSwgREFTSEIxOCwgTkRDRDYpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMTgsIERBU0hCMTgsIERBU0hCMTgsIENPTkQxLCBTSUdfREVTQ19TRVQoU0NVOTQsIDUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjE4LCBORENENiwgVUFSVDYsIENPTkQxLCBVQVJUNl9ERVNDKTsKK1BJTl9ERUNMXzIoQjE4LCBHUElPSDEsIERBU0hCMTgsIE5EQ0Q2KTsKIAogI2RlZmluZSBEMTcgNTgKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSEQxNywgREFTSEQxNywgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U5NCwgNikpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShORFNSNiwgVUFSVDYsIENPTkQxLCBVQVJUNl9ERVNDKTsKLU1TX1BJTl9ERUNMKEQxNywgR1BJT0gyLCBEQVNIRDE3LCBORFNSNik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxNywgREFTSEQxNywgREFTSEQxNywgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U5NCwgNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMTcsIE5EU1I2LCBVQVJUNiwgQ09ORDEsIFVBUlQ2X0RFU0MpOworUElOX0RFQ0xfMihEMTcsIEdQSU9IMiwgREFTSEQxNywgTkRTUjYpOwogCiAjZGVmaW5lIEMxNyA1OQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIQzE3LCBEQVNIQzE3LCBDT05EMSwgU0lHX0RFU0NfU0VUKFNDVTk0LCA2KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5SSTYsIFVBUlQ2LCBDT05EMSwgVUFSVDZfREVTQyk7Ci1NU19QSU5fREVDTChDMTcsIEdQSU9IMywgREFTSEMxNywgTlJJNik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMxNywgREFTSEMxNywgREFTSEMxNywgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U5NCwgNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTcsIE5SSTYsIFVBUlQ2LCBDT05EMSwgVUFSVDZfREVTQyk7CitQSU5fREVDTF8yKEMxNywgR1BJT0gzLCBEQVNIQzE3LCBOUkk2KTsKIAogI2RlZmluZSBBMTcgNjAKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSEExNywgREFTSEExNywgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U5NCwgNykpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShORFRSNiwgVUFSVDYsIENPTkQxLCBVQVJUNl9ERVNDKTsKLU1TX1BJTl9ERUNMKEExNywgR1BJT0g0LCBEQVNIQTE3LCBORFRSNik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExNywgREFTSEExNywgREFTSEExNywgQ09ORDEsIFNJR19ERVNDX1NFVChTQ1U5NCwgNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMTcsIE5EVFI2LCBVQVJUNiwgQ09ORDEsIFVBUlQ2X0RFU0MpOworUElOX0RFQ0xfMihBMTcsIEdQSU9INCwgREFTSEExNywgTkRUUjYpOwogCiAjZGVmaW5lIEIxNyA2MQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIQjE3LCBEQVNIQjE3LCBDT05EMSwgU0lHX0RFU0NfU0VUKFNDVTk0LCA3KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5SVFM2LCBVQVJUNiwgQ09ORDEsIFVBUlQ2X0RFU0MpOwotTVNfUElOX0RFQ0woQjE3LCBHUElPSDUsIERBU0hCMTcsIE5SVFM2KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjE3LCBEQVNIQjE3LCBEQVNIQjE3LCBDT05EMSwgU0lHX0RFU0NfU0VUKFNDVTk0LCA3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxNywgTlJUUzYsIFVBUlQ2LCBDT05EMSwgVUFSVDZfREVTQyk7CitQSU5fREVDTF8yKEIxNywgR1BJT0g1LCBEQVNIQjE3LCBOUlRTNik7CiAKICNkZWZpbmUgQTE2IDYyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFRYRDYsIFVBUlQ2LCBDT05EMSwgVUFSVDZfREVTQyk7Ci1TU19QSU5fREVDTChBMTYsIEdQSU9INiwgVFhENik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExNiwgVFhENiwgVUFSVDYsIENPTkQxLCBVQVJUNl9ERVNDKTsKK1BJTl9ERUNMXzEoQTE2LCBHUElPSDYsIFRYRDYpOwogCiAjZGVmaW5lIEQxOCA2MwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSWEQ2LCBVQVJUNiwgQ09ORDEsIFVBUlQ2X0RFU0MpOwotU1NfUElOX0RFQ0woRDE4LCBHUElPSDcsIFJYRDYpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMTgsIFJYRDYsIFVBUlQ2LCBDT05EMSwgVUFSVDZfREVTQyk7CitQSU5fREVDTF8xKEQxOCwgR1BJT0g3LCBSWEQ2KTsKIAogRlVOQ19HUk9VUF9ERUNMKFVBUlQ2LCBBMTgsIEIxOCwgRDE3LCBDMTcsIEExNywgQjE3LCBBMTYsIEQxOCk7CiAKQEAgLTUxMyw3MCArNTIwLDc4IEBAIEZVTkNfR1JPVVBfREVDTChVQVJUNiwgQTE4LCBCMTgsIEQxNywgQzE3LCBBMTcsIEIxNywgQTE2LCBEMTgpOwogCXsgQVNQRUVEX0lQX1NDVSwgSFdfU1RSQVAxLCBHRU5NQVNLKDEzLCAxMiksIDMsIDAgfQogCiAjZGVmaW5lIEMxOCA2NAotU0lHX0VYUFJfREVDTChTWVNDUywgU1BJMURFQlVHLCBDT05EMSwgU1BJMURFQlVHX0RFU0MpOwotU0lHX0VYUFJfREVDTChTWVNDUywgU1BJMVBBU1NUSFJVLCBDT05EMSwgU1BJMVBBU1NUSFJVX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoU1lTQ1MsIFNQSTFERUJVRywgU1BJMVBBU1NUSFJVKTsKLVNTX1BJTl9ERUNMKEMxOCwgR1BJT0kwLCBTWVNDUyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNDUywgU1BJMURFQlVHLCBDT05EMSwgU1BJMURFQlVHX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1lTQ1MsIFNQSTFQQVNTVEhSVSwgQ09ORDEsIFNQSTFQQVNTVEhSVV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEMxOCwgU1lTQ1MsIFNQSTFERUJVRywgU1BJMVBBU1NUSFJVKTsKK1BJTl9ERUNMXzEoQzE4LCBHUElPSTAsIFNZU0NTKTsKIAogI2RlZmluZSBFMTUgNjUKLVNJR19FWFBSX0RFQ0woU1lTQ0ssIFNQSTFERUJVRywgQ09ORDEsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1lTQ0ssIFNQSTFQQVNTVEhSVSwgQ09ORDEsIFNQSTFQQVNTVEhSVV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFNZU0NLLCBTUEkxREVCVUcsIFNQSTFQQVNTVEhSVSk7Ci1TU19QSU5fREVDTChFMTUsIEdQSU9JMSwgU1lTQ0spOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1lTQ0ssIFNQSTFERUJVRywgQ09ORDEsIFNQSTFERUJVR19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNZU0NLLCBTUEkxUEFTU1RIUlUsIENPTkQxLCBTUEkxUEFTU1RIUlVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChFMTUsIFNZU0NLLCBTUEkxREVCVUcsIFNQSTFQQVNTVEhSVSk7CitQSU5fREVDTF8xKEUxNSwgR1BJT0kxLCBTWVNDSyk7CiAKICNkZWZpbmUgQjE2IDY2Ci1TSUdfRVhQUl9ERUNMKFNZU01PU0ksIFNQSTFERUJVRywgQ09ORDEsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1lTTU9TSSwgU1BJMVBBU1NUSFJVLCBDT05EMSwgU1BJMVBBU1NUSFJVX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoU1lTTU9TSSwgU1BJMURFQlVHLCBTUEkxUEFTU1RIUlUpOwotU1NfUElOX0RFQ0woQjE2LCBHUElPSTIsIFNZU01PU0kpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1lTTU9TSSwgU1BJMURFQlVHLCBDT05EMSwgU1BJMURFQlVHX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1lTTU9TSSwgU1BJMVBBU1NUSFJVLCBDT05EMSwgU1BJMVBBU1NUSFJVX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQjE2LCBTWVNNT1NJLCBTUEkxREVCVUcsIFNQSTFQQVNTVEhSVSk7CitQSU5fREVDTF8xKEIxNiwgR1BJT0kyLCBTWVNNT1NJKTsKIAogI2RlZmluZSBDMTYgNjcKLVNJR19FWFBSX0RFQ0woU1lTTUlTTywgU1BJMURFQlVHLCBDT05EMSwgU1BJMURFQlVHX0RFU0MpOwotU0lHX0VYUFJfREVDTChTWVNNSVNPLCBTUEkxUEFTU1RIUlUsIENPTkQxLCBTUEkxUEFTU1RIUlVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChTWVNNSVNPLCBTUEkxREVCVUcsIFNQSTFQQVNTVEhSVSk7Ci1TU19QSU5fREVDTChDMTYsIEdQSU9JMywgU1lTTUlTTyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNNSVNPLCBTUEkxREVCVUcsIENPTkQxLCBTUEkxREVCVUdfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTWVNNSVNPLCBTUEkxUEFTU1RIUlUsIENPTkQxLCBTUEkxUEFTU1RIUlVfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChDMTYsIFNZU01JU08sIFNQSTFERUJVRywgU1BJMVBBU1NUSFJVKTsKK1BJTl9ERUNMXzEoQzE2LCBHUElPSTMsIFNZU01JU08pOwogCiAjZGVmaW5lIFZCX0RFU0MJU0lHX0RFU0NfU0VUKEhXX1NUUkFQMSwgNSkKIAogI2RlZmluZSBCMTUgNjgKLVNJR19FWFBSX0RFQ0woU1BJMUNTMCwgU1BJMSwgQ09ORDEsIFNQSTFfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFNQSTFDUzAsIFNQSTFERUJVRywgQ09ORDEsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1BJMUNTMCwgU1BJMVBBU1NUSFJVLCBDT05EMSwgU1BJMVBBU1NUSFJVX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFNQSTFDUzAsIFNJR19FWFBSX1BUUihTUEkxQ1MwLCBTUEkxKSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNQSTFDUzAsIFNQSTEsIENPTkQxLCBTUEkxX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1BJMUNTMCwgU1BJMURFQlVHLCBDT05EMSwgU1BJMURFQlVHX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1BJMUNTMCwgU1BJMVBBU1NUSFJVLCBDT05EMSwgU1BJMVBBU1NUSFJVX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFNQSTFDUzAsIFNQSTEsCisJCQkgICAgU0lHX0VYUFJfUFRSKFNQSTFDUzAsIFNQSTEpLAogCQkJICAgIFNJR19FWFBSX1BUUihTUEkxQ1MwLCBTUEkxREVCVUcpLAogCQkJICAgIFNJR19FWFBSX1BUUihTUEkxQ1MwLCBTUEkxUEFTU1RIUlUpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVkJDUywgVkdBQklPU1JPTSwgQ09ORDEsIFZCX0RFU0MpOwotTVNfUElOX0RFQ0woQjE1LCBHUElPSTQsIFNQSTFDUzAsIFZCQ1MpOworU0lHX0VYUFJfTElTVF9BTElBUyhCMTUsIFNQSTFDUzAsIFNQSTEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMTUsIFZCQ1MsIFZHQUJJT1NST00sIENPTkQxLCBWQl9ERVNDKTsKK1BJTl9ERUNMXzIoQjE1LCBHUElPSTQsIFNQSTFDUzAsIFZCQ1MpOwogCiAjZGVmaW5lIEMxNSA2OQotU0lHX0VYUFJfREVDTChTUEkxQ0ssIFNQSTEsIENPTkQxLCBTUEkxX0RFU0MpOwotU0lHX0VYUFJfREVDTChTUEkxQ0ssIFNQSTFERUJVRywgQ09ORDEsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1BJMUNLLCBTUEkxUEFTU1RIUlUsIENPTkQxLCBTUEkxUEFTU1RIUlVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woU1BJMUNLLCBTSUdfRVhQUl9QVFIoU1BJMUNLLCBTUEkxKSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNQSTFDSywgU1BJMSwgQ09ORDEsIFNQSTFfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTUEkxQ0ssIFNQSTFERUJVRywgQ09ORDEsIFNQSTFERUJVR19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNQSTFDSywgU1BJMVBBU1NUSFJVLCBDT05EMSwgU1BJMVBBU1NUSFJVX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFNQSTFDSywgU1BJMSwKKwkJCSAgICBTSUdfRVhQUl9QVFIoU1BJMUNLLCBTUEkxKSwKIAkJCSAgICBTSUdfRVhQUl9QVFIoU1BJMUNLLCBTUEkxREVCVUcpLAogCQkJICAgIFNJR19FWFBSX1BUUihTUEkxQ0ssIFNQSTFQQVNTVEhSVSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWQkNLLCBWR0FCSU9TUk9NLCBDT05EMSwgVkJfREVTQyk7Ci1NU19QSU5fREVDTChDMTUsIEdQSU9JNSwgU1BJMUNLLCBWQkNLKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoQzE1LCBTUEkxQ0ssIFNQSTEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMTUsIFZCQ0ssIFZHQUJJT1NST00sIENPTkQxLCBWQl9ERVNDKTsKK1BJTl9ERUNMXzIoQzE1LCBHUElPSTUsIFNQSTFDSywgVkJDSyk7CiAKICNkZWZpbmUgQTE0IDcwCi1TSUdfRVhQUl9ERUNMKFNQSTFNT1NJLCBTUEkxLCBDT05EMSwgU1BJMV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1BJMU1PU0ksIFNQSTFERUJVRywgQ09ORDEsIFNQSTFERUJVR19ERVNDKTsKLVNJR19FWFBSX0RFQ0woU1BJMU1PU0ksIFNQSTFQQVNTVEhSVSwgQ09ORDEsIFNQSTFQQVNTVEhSVV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChTUEkxTU9TSSwgU0lHX0VYUFJfUFRSKFNQSTFNT1NJLCBTUEkxKSwKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNQSTFNT1NJLCBTUEkxLCBDT05EMSwgU1BJMV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNQSTFNT1NJLCBTUEkxREVCVUcsIENPTkQxLCBTUEkxREVCVUdfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTUEkxTU9TSSwgU1BJMVBBU1NUSFJVLCBDT05EMSwgU1BJMVBBU1NUSFJVX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFNQSTFNT1NJLCBTUEkxLAorCQkJICAgIFNJR19FWFBSX1BUUihTUEkxTU9TSSwgU1BJMSksCiAJCQkgICAgU0lHX0VYUFJfUFRSKFNQSTFNT1NJLCBTUEkxREVCVUcpLAogCQkJICAgIFNJR19FWFBSX1BUUihTUEkxTU9TSSwgU1BJMVBBU1NUSFJVKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZCTU9TSSwgVkdBQklPU1JPTSwgQ09ORDEsIFZCX0RFU0MpOwotTVNfUElOX0RFQ0woQTE0LCBHUElPSTYsIFNQSTFNT1NJLCBWQk1PU0kpOworU0lHX0VYUFJfTElTVF9BTElBUyhBMTQsIFNQSTFNT1NJLCBTUEkxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTE0LCBWQk1PU0ksIFZHQUJJT1NST00sIENPTkQxLCBWQl9ERVNDKTsKK1BJTl9ERUNMXzIoQTE0LCBHUElPSTYsIFNQSTFNT1NJLCBWQk1PU0kpOwogCiAjZGVmaW5lIEExNSA3MQotU0lHX0VYUFJfREVDTChTUEkxTUlTTywgU1BJMSwgQ09ORDEsIFNQSTFfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFNQSTFNSVNPLCBTUEkxREVCVUcsIENPTkQxLCBTUEkxREVCVUdfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFNQSTFNSVNPLCBTUEkxUEFTU1RIUlUsIENPTkQxLCBTUEkxUEFTU1RIUlVfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woU1BJMU1JU08sIFNJR19FWFBSX1BUUihTUEkxTUlTTywgU1BJMSksCitTSUdfRVhQUl9ERUNMX1NJTkdMRShTUEkxTUlTTywgU1BJMSwgQ09ORDEsIFNQSTFfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTUEkxTUlTTywgU1BJMURFQlVHLCBDT05EMSwgU1BJMURFQlVHX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU1BJMU1JU08sIFNQSTFQQVNTVEhSVSwgQ09ORDEsIFNQSTFQQVNTVEhSVV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChTUEkxTUlTTywgU1BJMSwKKwkJCSAgICBTSUdfRVhQUl9QVFIoU1BJMU1JU08sIFNQSTEpLAogCQkJICAgIFNJR19FWFBSX1BUUihTUEkxTUlTTywgU1BJMURFQlVHKSwKIAkJCSAgICBTSUdfRVhQUl9QVFIoU1BJMU1JU08sIFNQSTFQQVNTVEhSVSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWQk1JU08sIFZHQUJJT1NST00sIENPTkQxLCBWQl9ERVNDKTsKLU1TX1BJTl9ERUNMKEExNSwgR1BJT0k3LCBTUEkxTUlTTywgVkJNSVNPKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoQTE1LCBTUEkxTUlTTywgU1BJMSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExNSwgVkJNSVNPLCBWR0FCSU9TUk9NLCBDT05EMSwgVkJfREVTQyk7CitQSU5fREVDTF8yKEExNSwgR1BJT0k3LCBTUEkxTUlTTywgVkJNSVNPKTsKIAogRlVOQ19HUk9VUF9ERUNMKFNQSTEsIEIxNSwgQzE1LCBBMTQsIEExNSk7CiBGVU5DX0dST1VQX0RFQ0woU1BJMURFQlVHLCBDMTgsIEUxNSwgQjE2LCBDMTYsIEIxNSwgQzE1LCBBMTQsIEExNSk7CkBAIC01ODQsOTIgKzU5OSw5MiBAQCBGVU5DX0dST1VQX0RFQ0woU1BJMVBBU1NUSFJVLCBDMTgsIEUxNSwgQjE2LCBDMTYsIEIxNSwgQzE1LCBBMTQsIEExNSk7CiBGVU5DX0dST1VQX0RFQ0woVkdBQklPU1JPTSwgQjE1LCBDMTUsIEExNCwgQTE1KTsKIAogI2RlZmluZSBSMiA3MgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTR1BNQ0ssIFNHUE0sIFNJR19ERVNDX1NFVChTQ1U4NCwgOCkpOwotU1NfUElOX0RFQ0woUjIsIEdQSU9KMCwgU0dQTUNLKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUjIsIFNHUE1DSywgU0dQTSwgU0lHX0RFU0NfU0VUKFNDVTg0LCA4KSk7CitQSU5fREVDTF8xKFIyLCBHUElPSjAsIFNHUE1DSyk7CiAKICNkZWZpbmUgTDIgNzMKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0dQTUxELCBTR1BNLCBTSUdfREVTQ19TRVQoU0NVODQsIDkpKTsKLVNTX1BJTl9ERUNMKEwyLCBHUElPSjEsIFNHUE1MRCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEwyLCBTR1BNTEQsIFNHUE0sIFNJR19ERVNDX1NFVChTQ1U4NCwgOSkpOworUElOX0RFQ0xfMShMMiwgR1BJT0oxLCBTR1BNTEQpOwogCiAjZGVmaW5lIE4zIDc0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNHUE1PLCBTR1BNLCBTSUdfREVTQ19TRVQoU0NVODQsIDEwKSk7Ci1TU19QSU5fREVDTChOMywgR1BJT0oyLCBTR1BNTyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE4zLCBTR1BNTywgU0dQTSwgU0lHX0RFU0NfU0VUKFNDVTg0LCAxMCkpOworUElOX0RFQ0xfMShOMywgR1BJT0oyLCBTR1BNTyk7CiAKICNkZWZpbmUgTjQgNzUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0dQTUksIFNHUE0sIFNJR19ERVNDX1NFVChTQ1U4NCwgMTEpKTsKLVNTX1BJTl9ERUNMKE40LCBHUElPSjMsIFNHUE1JKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTjQsIFNHUE1JLCBTR1BNLCBTSUdfREVTQ19TRVQoU0NVODQsIDExKSk7CitQSU5fREVDTF8xKE40LCBHUElPSjMsIFNHUE1JKTsKIAogRlVOQ19HUk9VUF9ERUNMKFNHUE0sIFIyLCBMMiwgTjMsIE40KTsKIAogI2RlZmluZSBONSA3NgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWR0FIUywgVkdBSFMsIFNJR19ERVNDX1NFVChTQ1U4NCwgMTIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSE41LCBEQVNITjUsIFNJR19ERVNDX1NFVChTQ1U5NCwgOCkpOwotTVNfUElOX0RFQ0woTjUsIEdQSU9KNCwgVkdBSFMsIERBU0hONSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE41LCBWR0FIUywgVkdBSFMsIFNJR19ERVNDX1NFVChTQ1U4NCwgMTIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTjUsIERBU0hONSwgREFTSE41LCBTSUdfREVTQ19TRVQoU0NVOTQsIDgpKTsKK1BJTl9ERUNMXzIoTjUsIEdQSU9KNCwgVkdBSFMsIERBU0hONSk7CiBGVU5DX0dST1VQX0RFQ0woVkdBSFMsIE41KTsKIAogI2RlZmluZSBSNCA3NwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWR0FWUywgVkdBVlMsIFNJR19ERVNDX1NFVChTQ1U4NCwgMTMpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSFI0LCBEQVNIUjQsIFNJR19ERVNDX1NFVChTQ1U5NCwgOCkpOwotTVNfUElOX0RFQ0woUjQsIEdQSU9KNSwgVkdBVlMsIERBU0hSNCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFI0LCBWR0FWUywgVkdBVlMsIFNJR19ERVNDX1NFVChTQ1U4NCwgMTMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUjQsIERBU0hSNCwgREFTSFI0LCBTSUdfREVTQ19TRVQoU0NVOTQsIDgpKTsKK1BJTl9ERUNMXzIoUjQsIEdQSU9KNSwgVkdBVlMsIERBU0hSNCk7CiBGVU5DX0dST1VQX0RFQ0woVkdBVlMsIFI0KTsKIAogI2RlZmluZSBSMyA3OAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShERENDTEssIEREQ0NMSywgU0lHX0RFU0NfU0VUKFNDVTg0LCAxNCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIUjMsIERBU0hSMywgU0lHX0RFU0NfU0VUKFNDVTk0LCA5KSk7Ci1NU19QSU5fREVDTChSMywgR1BJT0o2LCBERENDTEssIERBU0hSMyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFIzLCBERENDTEssIEREQ0NMSywgU0lHX0RFU0NfU0VUKFNDVTg0LCAxNCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSMywgREFTSFIzLCBEQVNIUjMsIFNJR19ERVNDX1NFVChTQ1U5NCwgOSkpOworUElOX0RFQ0xfMihSMywgR1BJT0o2LCBERENDTEssIERBU0hSMyk7CiBGVU5DX0dST1VQX0RFQ0woRERDQ0xLLCBSMyk7CiAKICNkZWZpbmUgVDMgNzkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRERDREFULCBERENEQVQsIFNJR19ERVNDX1NFVChTQ1U4NCwgMTUpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSFQzLCBEQVNIVDMsIFNJR19ERVNDX1NFVChTQ1U5NCwgOSkpOwotTVNfUElOX0RFQ0woVDMsIEdQSU9KNywgRERDREFULCBEQVNIVDMpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUMywgRERDREFULCBERENEQVQsIFNJR19ERVNDX1NFVChTQ1U4NCwgMTUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVDMsIERBU0hUMywgREFTSFQzLCBTSUdfREVTQ19TRVQoU0NVOTQsIDkpKTsKK1BJTl9ERUNMXzIoVDMsIEdQSU9KNywgRERDREFULCBEQVNIVDMpOwogRlVOQ19HUk9VUF9ERUNMKEREQ0RBVCwgVDMpOwogCiAjZGVmaW5lIEkyQzVfREVTQyAgICAgICBTSUdfREVTQ19TRVQoU0NVOTAsIDE4KQogCiAjZGVmaW5lIEwzIDgwCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNDTDUsIEkyQzUsIEkyQzVfREVTQyk7Ci1TU19QSU5fREVDTChMMywgR1BJT0swLCBTQ0w1KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTDMsIFNDTDUsIEkyQzUsIEkyQzVfREVTQyk7CitQSU5fREVDTF8xKEwzLCBHUElPSzAsIFNDTDUpOwogCiAjZGVmaW5lIEw0IDgxCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEQTUsIEkyQzUsIEkyQzVfREVTQyk7Ci1TU19QSU5fREVDTChMNCwgR1BJT0sxLCBTREE1KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTDQsIFNEQTUsIEkyQzUsIEkyQzVfREVTQyk7CitQSU5fREVDTF8xKEw0LCBHUElPSzEsIFNEQTUpOwogCiBGVU5DX0dST1VQX0RFQ0woSTJDNSwgTDMsIEw0KTsKIAogI2RlZmluZSBJMkM2X0RFU0MgICAgICAgU0lHX0RFU0NfU0VUKFNDVTkwLCAxOSkKIAogI2RlZmluZSBMMSA4MgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0w2LCBJMkM2LCBJMkM2X0RFU0MpOwotU1NfUElOX0RFQ0woTDEsIEdQSU9LMiwgU0NMNik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEwxLCBTQ0w2LCBJMkM2LCBJMkM2X0RFU0MpOworUElOX0RFQ0xfMShMMSwgR1BJT0syLCBTQ0w2KTsKIAogI2RlZmluZSBOMiA4MwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTREE2LCBJMkM2LCBJMkM2X0RFU0MpOwotU1NfUElOX0RFQ0woTjIsIEdQSU9LMywgU0RBNik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE4yLCBTREE2LCBJMkM2LCBJMkM2X0RFU0MpOworUElOX0RFQ0xfMShOMiwgR1BJT0szLCBTREE2KTsKIAogRlVOQ19HUk9VUF9ERUNMKEkyQzYsIEwxLCBOMik7CiAKICNkZWZpbmUgSTJDN19ERVNDICAgICAgIFNJR19ERVNDX1NFVChTQ1U5MCwgMjApCiAKICNkZWZpbmUgTjEgODQKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0NMNywgSTJDNywgSTJDN19ERVNDKTsKLVNTX1BJTl9ERUNMKE4xLCBHUElPSzQsIFNDTDcpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOMSwgU0NMNywgSTJDNywgSTJDN19ERVNDKTsKK1BJTl9ERUNMXzEoTjEsIEdQSU9LNCwgU0NMNyk7CiAKICNkZWZpbmUgUDEgODUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBNywgSTJDNywgSTJDN19ERVNDKTsKLVNTX1BJTl9ERUNMKFAxLCBHUElPSzUsIFNEQTcpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQMSwgU0RBNywgSTJDNywgSTJDN19ERVNDKTsKK1BJTl9ERUNMXzEoUDEsIEdQSU9LNSwgU0RBNyk7CiAKIEZVTkNfR1JPVVBfREVDTChJMkM3LCBOMSwgUDEpOwogCiAjZGVmaW5lIEkyQzhfREVTQyAgICAgICBTSUdfREVTQ19TRVQoU0NVOTAsIDIxKQogCiAjZGVmaW5lIFAyIDg2Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNDTDgsIEkyQzgsIEkyQzhfREVTQyk7Ci1TU19QSU5fREVDTChQMiwgR1BJT0s2LCBTQ0w4KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUDIsIFNDTDgsIEkyQzgsIEkyQzhfREVTQyk7CitQSU5fREVDTF8xKFAyLCBHUElPSzYsIFNDTDgpOwogCiAjZGVmaW5lIFIxIDg3Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEQTgsIEkyQzgsIEkyQzhfREVTQyk7Ci1TU19QSU5fREVDTChSMSwgR1BJT0s3LCBTREE4KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUjEsIFNEQTgsIEkyQzgsIEkyQzhfREVTQyk7CitQSU5fREVDTF8xKFIxLCBHUElPSzcsIFNEQTgpOwogCiBGVU5DX0dST1VQX0RFQ0woSTJDOCwgUDIsIFIxKTsKIApAQCAtNjg0LDI5MCArNjk5LDI5MCBAQCBTU1NGX1BJTl9ERUNMKFQyLCBHUElPTDAsIE5DVFMxLCBTSUdfREVTQ19TRVQoU0NVODQsIDE2KSk7CiAKICNkZWZpbmUgVDEgODkKICNkZWZpbmUgVDFfREVTQwkJU0lHX0RFU0NfU0VUKFNDVTg0LCAxNykKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVlBJREUsIFZQSTI0LCBWUElfMjRfUlNWRF9ERVNDLCBUMV9ERVNDLCBDT05EMik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5EQ0QxLCBORENEMSwgVDFfREVTQywgQ09ORDIpOwotTVNfUElOX0RFQ0woVDEsIEdQSU9MMSwgVlBJREUsIE5EQ0QxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVDEsIFZQSURFLCBWUEkyNCwgVlBJXzI0X1JTVkRfREVTQywgVDFfREVTQywgQ09ORDIpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUMSwgTkRDRDEsIE5EQ0QxLCBUMV9ERVNDLCBDT05EMik7CitQSU5fREVDTF8yKFQxLCBHUElPTDEsIFZQSURFLCBORENEMSk7CiBGVU5DX0dST1VQX0RFQ0woTkRDRDEsIFQxKTsKIAogI2RlZmluZSBVMSA5MAogI2RlZmluZSBVMV9ERVNDCQlTSUdfREVTQ19TRVQoU0NVODQsIDE4KQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIVTEsIFZQSTI0LCBWUElfMjRfUlNWRF9ERVNDLCBVMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRTUjEsIE5EU1IxLCBVMV9ERVNDKTsKLU1TX1BJTl9ERUNMKFUxLCBHUElPTDIsIERBU0hVMSwgTkRTUjEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShVMSwgREFTSFUxLCBWUEkyNCwgVlBJXzI0X1JTVkRfREVTQywgVTFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFUxLCBORFNSMSwgTkRTUjEsIFUxX0RFU0MpOworUElOX0RFQ0xfMihVMSwgR1BJT0wyLCBEQVNIVTEsIE5EU1IxKTsKIEZVTkNfR1JPVVBfREVDTChORFNSMSwgVTEpOwogCiAjZGVmaW5lIFUyIDkxCiAjZGVmaW5lIFUyX0RFU0MJCVNJR19ERVNDX1NFVChTQ1U4NCwgMTkpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUhTLCBWUEkyNCwgVlBJXzI0X1JTVkRfREVTQywgVTJfREVTQywgQ09ORDIpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOUkkxLCBOUkkxLCBVMl9ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChVMiwgR1BJT0wzLCBWUElIUywgTlJJMSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFUyLCBWUElIUywgVlBJMjQsIFZQSV8yNF9SU1ZEX0RFU0MsIFUyX0RFU0MsIENPTkQyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVTIsIE5SSTEsIE5SSTEsIFUyX0RFU0MsIENPTkQyKTsKK1BJTl9ERUNMXzIoVTIsIEdQSU9MMywgVlBJSFMsIE5SSTEpOwogRlVOQ19HUk9VUF9ERUNMKE5SSTEsIFUyKTsKIAogI2RlZmluZSBQNCA5MgogI2RlZmluZSBQNF9ERVNDCQlTSUdfREVTQ19TRVQoU0NVODQsIDIwKQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElWUywgVlBJMjQsIFZQSV8yNF9SU1ZEX0RFU0MsIFA0X0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRUUjEsIE5EVFIxLCBQNF9ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChQNCwgR1BJT0w0LCBWUElWUywgTkRUUjEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQNCwgVlBJVlMsIFZQSTI0LCBWUElfMjRfUlNWRF9ERVNDLCBQNF9ERVNDLCBDT05EMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFA0LCBORFRSMSwgTkRUUjEsIFA0X0RFU0MsIENPTkQyKTsKK1BJTl9ERUNMXzIoUDQsIEdQSU9MNCwgVlBJVlMsIE5EVFIxKTsKIEZVTkNfR1JPVVBfREVDTChORFRSMSwgUDQpOwogCiAjZGVmaW5lIFAzIDkzCiAjZGVmaW5lIFAzX0RFU0MJCVNJR19ERVNDX1NFVChTQ1U4NCwgMjEpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUNMSywgVlBJMjQsIFZQSV8yNF9SU1ZEX0RFU0MsIFAzX0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTlJUUzEsIE5SVFMxLCBQM19ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChQMywgR1BJT0w1LCBWUElDTEssIE5SVFMxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUDMsIFZQSUNMSywgVlBJMjQsIFZQSV8yNF9SU1ZEX0RFU0MsIFAzX0RFU0MsIENPTkQyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUDMsIE5SVFMxLCBOUlRTMSwgUDNfREVTQywgQ09ORDIpOworUElOX0RFQ0xfMihQMywgR1BJT0w1LCBWUElDTEssIE5SVFMxKTsKIEZVTkNfR1JPVVBfREVDTChOUlRTMSwgUDMpOwogCiAjZGVmaW5lIFYxIDk0CiAjZGVmaW5lIFYxX0RFU0MJCVNJR19ERVNDX1NFVChTQ1U4NCwgMjIpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKERBU0hWMSwgREFTSFYxLCBWUElSU1ZEX0RFU0MsIFYxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUWEQxLCBUWEQxLCBWMV9ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChWMSwgR1BJT0w2LCBEQVNIVjEsIFRYRDEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWMSwgREFTSFYxLCBEQVNIVjEsIFZQSVJTVkRfREVTQywgVjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFYxLCBUWEQxLCBUWEQxLCBWMV9ERVNDLCBDT05EMik7CitQSU5fREVDTF8yKFYxLCBHUElPTDYsIERBU0hWMSwgVFhEMSk7CiBGVU5DX0dST1VQX0RFQ0woVFhEMSwgVjEpOwogCiAjZGVmaW5lIFcxIDk1CiAjZGVmaW5lIFcxX0RFU0MJCVNJR19ERVNDX1NFVChTQ1U4NCwgMjMpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKERBU0hXMSwgREFTSFcxLCBWUElSU1ZEX0RFU0MsIFcxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSWEQxLCBSWEQxLCBXMV9ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChXMSwgR1BJT0w3LCBEQVNIVzEsIFJYRDEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXMSwgREFTSFcxLCBEQVNIVzEsIFZQSVJTVkRfREVTQywgVzFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFcxLCBSWEQxLCBSWEQxLCBXMV9ERVNDLCBDT05EMik7CitQSU5fREVDTF8yKFcxLCBHUElPTDcsIERBU0hXMSwgUlhEMSk7CiBGVU5DX0dST1VQX0RFQ0woUlhEMSwgVzEpOwogCiAjZGVmaW5lIFkxIDk2CiAjZGVmaW5lIFkxX0RFU0MJCVNJR19ERVNDX1NFVChTQ1U4NCwgMjQpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUIyLCBWUEkyNCwgVlBJXzI0X1JTVkRfREVTQywgWTFfREVTQywgQ09ORDIpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOQ1RTMiwgTkNUUzIsIFkxX0RFU0MsIENPTkQyKTsKLU1TX1BJTl9ERUNMKFkxLCBHUElPTTAsIFZQSUIyLCBOQ1RTMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFkxLCBWUElCMiwgVlBJMjQsIFZQSV8yNF9SU1ZEX0RFU0MsIFkxX0RFU0MsIENPTkQyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoWTEsIE5DVFMyLCBOQ1RTMiwgWTFfREVTQywgQ09ORDIpOworUElOX0RFQ0xfMihZMSwgR1BJT00wLCBWUElCMiwgTkNUUzIpOwogRlVOQ19HUk9VUF9ERUNMKE5DVFMyLCBZMSk7CiAKICNkZWZpbmUgQUIyIDk3CiAjZGVmaW5lIEFCMl9ERVNDCVNJR19ERVNDX1NFVChTQ1U4NCwgMjUpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUIzLCBWUEkyNCwgVlBJXzI0X1JTVkRfREVTQywgQUIyX0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRDRDIsIE5EQ0QyLCBBQjJfREVTQywgQ09ORDIpOwotTVNfUElOX0RFQ0woQUIyLCBHUElPTTEsIFZQSUIzLCBORENEMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFCMiwgVlBJQjMsIFZQSTI0LCBWUElfMjRfUlNWRF9ERVNDLCBBQjJfREVTQywgQ09ORDIpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQjIsIE5EQ0QyLCBORENEMiwgQUIyX0RFU0MsIENPTkQyKTsKK1BJTl9ERUNMXzIoQUIyLCBHUElPTTEsIFZQSUIzLCBORENEMik7CiBGVU5DX0dST1VQX0RFQ0woTkRDRDIsIEFCMik7CiAKICNkZWZpbmUgQUExIDk4CiAjZGVmaW5lIEFBMV9ERVNDCVNJR19ERVNDX1NFVChTQ1U4NCwgMjYpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUI0LCBWUEkyNCwgVlBJXzI0X1JTVkRfREVTQywgQUExX0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkRTUjIsIE5EU1IyLCBBQTFfREVTQywgQ09ORDIpOwotTVNfUElOX0RFQ0woQUExLCBHUElPTTIsIFZQSUI0LCBORFNSMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFBMSwgVlBJQjQsIFZQSTI0LCBWUElfMjRfUlNWRF9ERVNDLCBBQTFfREVTQywgQ09ORDIpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQTEsIE5EU1IyLCBORFNSMiwgQUExX0RFU0MsIENPTkQyKTsKK1BJTl9ERUNMXzIoQUExLCBHUElPTTIsIFZQSUI0LCBORFNSMik7CiBGVU5DX0dST1VQX0RFQ0woTkRTUjIsIEFBMSk7CiAKICNkZWZpbmUgWTIgOTkKICNkZWZpbmUgWTJfREVTQwkJU0lHX0RFU0NfU0VUKFNDVTg0LCAyNykKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVlBJQjUsIFZQSTI0LCBWUElfMjRfUlNWRF9ERVNDLCBZMl9ERVNDLCBDT05EMik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5SSTIsIE5SSTIsIFkyX0RFU0MsIENPTkQyKTsKLU1TX1BJTl9ERUNMKFkyLCBHUElPTTMsIFZQSUI1LCBOUkkyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoWTIsIFZQSUI1LCBWUEkyNCwgVlBJXzI0X1JTVkRfREVTQywgWTJfREVTQywgQ09ORDIpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShZMiwgTlJJMiwgTlJJMiwgWTJfREVTQywgQ09ORDIpOworUElOX0RFQ0xfMihZMiwgR1BJT00zLCBWUElCNSwgTlJJMik7CiBGVU5DX0dST1VQX0RFQ0woTlJJMiwgWTIpOwogCiAjZGVmaW5lIEFBMiAxMDAKICNkZWZpbmUgQUEyX0RFU0MJU0lHX0RFU0NfU0VUKFNDVTg0LCAyOCkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVlBJQjYsIFZQSTI0LCBWUElfMjRfUlNWRF9ERVNDLCBBQTJfREVTQywgQ09ORDIpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShORFRSMiwgTkRUUjIsIEFBMl9ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChBQTIsIEdQSU9NNCwgVlBJQjYsIE5EVFIyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUEyLCBWUElCNiwgVlBJMjQsIFZQSV8yNF9SU1ZEX0RFU0MsIEFBMl9ERVNDLCBDT05EMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFBMiwgTkRUUjIsIE5EVFIyLCBBQTJfREVTQywgQ09ORDIpOworUElOX0RFQ0xfMihBQTIsIEdQSU9NNCwgVlBJQjYsIE5EVFIyKTsKIEZVTkNfR1JPVVBfREVDTChORFRSMiwgQUEyKTsKIAogI2RlZmluZSBQNSAxMDEKICNkZWZpbmUgUDVfREVTQwlTSUdfREVTQ19TRVQoU0NVODQsIDI5KQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElCNywgVlBJMjQsIFZQSV8yNF9SU1ZEX0RFU0MsIFA1X0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTlJUUzIsIE5SVFMyLCBQNV9ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChQNSwgR1BJT001LCBWUElCNywgTlJUUzIpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQNSwgVlBJQjcsIFZQSTI0LCBWUElfMjRfUlNWRF9ERVNDLCBQNV9ERVNDLCBDT05EMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFA1LCBOUlRTMiwgTlJUUzIsIFA1X0RFU0MsIENPTkQyKTsKK1BJTl9ERUNMXzIoUDUsIEdQSU9NNSwgVlBJQjcsIE5SVFMyKTsKIEZVTkNfR1JPVVBfREVDTChOUlRTMiwgUDUpOwogCiAjZGVmaW5lIFI1IDEwMgogI2RlZmluZSBSNV9ERVNDCVNJR19ERVNDX1NFVChTQ1U4NCwgMzApCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUI4LCBWUEkyNCwgVlBJXzI0X1JTVkRfREVTQywgUjVfREVTQywgQ09ORDIpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUWEQyLCBUWEQyLCBSNV9ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChSNSwgR1BJT002LCBWUElCOCwgVFhEMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFI1LCBWUElCOCwgVlBJMjQsIFZQSV8yNF9SU1ZEX0RFU0MsIFI1X0RFU0MsIENPTkQyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUjUsIFRYRDIsIFRYRDIsIFI1X0RFU0MsIENPTkQyKTsKK1BJTl9ERUNMXzIoUjUsIEdQSU9NNiwgVlBJQjgsIFRYRDIpOwogRlVOQ19HUk9VUF9ERUNMKFRYRDIsIFI1KTsKIAogI2RlZmluZSBUNSAxMDMKICNkZWZpbmUgVDVfREVTQwlTSUdfREVTQ19TRVQoU0NVODQsIDMxKQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElCOSwgVlBJMjQsIFZQSV8yNF9SU1ZEX0RFU0MsIFQ1X0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUlhEMiwgUlhEMiwgVDVfREVTQywgQ09ORDIpOwotTVNfUElOX0RFQ0woVDUsIEdQSU9NNywgVlBJQjksIFJYRDIpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUNSwgVlBJQjksIFZQSTI0LCBWUElfMjRfUlNWRF9ERVNDLCBUNV9ERVNDLCBDT05EMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFQ1LCBSWEQyLCBSWEQyLCBUNV9ERVNDLCBDT05EMik7CitQSU5fREVDTF8yKFQ1LCBHUElPTTcsIFZQSUI5LCBSWEQyKTsKIEZVTkNfR1JPVVBfREVDTChSWEQyLCBUNSk7CiAKICNkZWZpbmUgVjIgMTA0CiAjZGVmaW5lIFYyX0RFU0MgICAgICAgICBTSUdfREVTQ19TRVQoU0NVODgsIDApCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKERBU0hOMCwgREFTSE4wLCBWUElSU1ZEX0RFU0MsIFYyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQV00wLCBQV00wLCBWMl9ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChWMiwgR1BJT04wLCBEQVNITjAsIFBXTTApOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWMiwgREFTSE4wLCBEQVNITjAsIFZQSVJTVkRfREVTQywgVjJfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFYyLCBQV00wLCBQV00wLCBWMl9ERVNDLCBDT05EMik7CitQSU5fREVDTF8yKFYyLCBHUElPTjAsIERBU0hOMCwgUFdNMCk7CiBGVU5DX0dST1VQX0RFQ0woUFdNMCwgVjIpOwogCiAjZGVmaW5lIFcyIDEwNQogI2RlZmluZSBXMl9ERVNDICAgICAgICAgU0lHX0RFU0NfU0VUKFNDVTg4LCAxKQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNITjEsIERBU0hOMSwgVlBJUlNWRF9ERVNDLCBXMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUFdNMSwgUFdNMSwgVzJfREVTQywgQ09ORDIpOwotTVNfUElOX0RFQ0woVzIsIEdQSU9OMSwgREFTSE4xLCBQV00xKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVzIsIERBU0hOMSwgREFTSE4xLCBWUElSU1ZEX0RFU0MsIFcyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXMiwgUFdNMSwgUFdNMSwgVzJfREVTQywgQ09ORDIpOworUElOX0RFQ0xfMihXMiwgR1BJT04xLCBEQVNITjEsIFBXTTEpOwogRlVOQ19HUk9VUF9ERUNMKFBXTTEsIFcyKTsKIAogI2RlZmluZSBWMyAxMDYKICNkZWZpbmUgVjNfREVTQyAgICAgICAgIFNJR19ERVNDX1NFVChTQ1U4OCwgMikKLVNJR19FWFBSX0RFQ0woVlBJRzIsIFZQSTI0LCBWUEkyNF9ERVNDLCBWM19ERVNDLCBDT05EMik7Ci1TSUdfRVhQUl9ERUNMKFZQSUcyLCBWUElSU1ZELCBWUElSU1ZEX0RFU0MsIFYzX0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFZQSUcyLCBWUEkyNCwgVlBJUlNWRCk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFBXTTIsIFBXTTIsIFYzX0RFU0MsIENPTkQyKTsKLU1TX1BJTl9ERUNMKFYzLCBHUElPTjIsIFZQSUcyLCBQV00yKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSUcyLCBWUEkyNCwgVlBJMjRfREVTQywgVjNfREVTQywgQ09ORDIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJRzIsIFZQSVJTVkQsIFZQSVJTVkRfREVTQywgVjNfREVTQywgQ09ORDIpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVjMsIFZQSUcyLCBWUEkyNCwgVlBJUlNWRCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFYzLCBQV00yLCBQV00yLCBWM19ERVNDLCBDT05EMik7CitQSU5fREVDTF8yKFYzLCBHUElPTjIsIFZQSUcyLCBQV00yKTsKIEZVTkNfR1JPVVBfREVDTChQV00yLCBWMyk7CiAKICNkZWZpbmUgVTMgMTA3CiAjZGVmaW5lIFUzX0RFU0MgICAgICAgICBTSUdfREVTQ19TRVQoU0NVODgsIDMpCi1TSUdfRVhQUl9ERUNMKFZQSUczLCBWUEkyNCwgVlBJMjRfREVTQywgVTNfREVTQywgQ09ORDIpOwotU0lHX0VYUFJfREVDTChWUElHMywgVlBJUlNWRCwgVlBJUlNWRF9ERVNDLCBVM19ERVNDLCBDT05EMik7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChWUElHMywgVlBJMjQsIFZQSVJTVkQpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQV00zLCBQV00zLCBVM19ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChVMywgR1BJT04zLCBWUElHMywgUFdNMyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElHMywgVlBJMjQsIFZQSTI0X0RFU0MsIFUzX0RFU0MsIENPTkQyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQSUczLCBWUElSU1ZELCBWUElSU1ZEX0RFU0MsIFUzX0RFU0MsIENPTkQyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFUzLCBWUElHMywgVlBJMjQsIFZQSVJTVkQpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShVMywgUFdNMywgUFdNMywgVTNfREVTQywgQ09ORDIpOworUElOX0RFQ0xfMihVMywgR1BJT04zLCBWUElHMywgUFdNMyk7CiBGVU5DX0dST1VQX0RFQ0woUFdNMywgVTMpOwogCiAjZGVmaW5lIFczIDEwOAogI2RlZmluZSBXM19ERVNDICAgICAgICAgU0lHX0RFU0NfU0VUKFNDVTg4LCA0KQotU0lHX0VYUFJfREVDTChWUElHNCwgVlBJMjQsIFZQSTI0X0RFU0MsIFczX0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0RFQ0woVlBJRzQsIFZQSVJTVkQsIFZQSVJTVkRfREVTQywgVzNfREVTQywgQ09ORDIpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoVlBJRzQsIFZQSTI0LCBWUElSU1ZEKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUFdNNCwgUFdNNCwgVzNfREVTQywgQ09ORDIpOwotTVNfUElOX0RFQ0woVzMsIEdQSU9ONCwgVlBJRzQsIFBXTTQpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJRzQsIFZQSTI0LCBWUEkyNF9ERVNDLCBXM19ERVNDLCBDT05EMik7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUElHNCwgVlBJUlNWRCwgVlBJUlNWRF9ERVNDLCBXM19ERVNDLCBDT05EMik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChXMywgVlBJRzQsIFZQSTI0LCBWUElSU1ZEKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVzMsIFBXTTQsIFBXTTQsIFczX0RFU0MsIENPTkQyKTsKK1BJTl9ERUNMXzIoVzMsIEdQSU9ONCwgVlBJRzQsIFBXTTQpOwogRlVOQ19HUk9VUF9ERUNMKFBXTTQsIFczKTsKIAogI2RlZmluZSBBQTMgMTA5CiAjZGVmaW5lIEFBM19ERVNDICAgICAgICBTSUdfREVTQ19TRVQoU0NVODgsIDUpCi1TSUdfRVhQUl9ERUNMKFZQSUc1LCBWUEkyNCwgVlBJMjRfREVTQywgQUEzX0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0RFQ0woVlBJRzUsIFZQSVJTVkQsIFZQSVJTVkRfREVTQywgQUEzX0RFU0MsIENPTkQyKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFZQSUc1LCBWUEkyNCwgVlBJUlNWRCk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFBXTTUsIFBXTTUsIEFBM19ERVNDLCBDT05EMik7Ci1NU19QSU5fREVDTChBQTMsIEdQSU9ONSwgVlBJRzUsIFBXTTUpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJRzUsIFZQSTI0LCBWUEkyNF9ERVNDLCBBQTNfREVTQywgQ09ORDIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBJRzUsIFZQSVJTVkQsIFZQSVJTVkRfREVTQywgQUEzX0RFU0MsIENPTkQyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKEFBMywgVlBJRzUsIFZQSTI0LCBWUElSU1ZEKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUEzLCBQV001LCBQV001LCBBQTNfREVTQywgQ09ORDIpOworUElOX0RFQ0xfMihBQTMsIEdQSU9ONSwgVlBJRzUsIFBXTTUpOwogRlVOQ19HUk9VUF9ERUNMKFBXTTUsIEFBMyk7CiAKICNkZWZpbmUgWTMgMTEwCiAjZGVmaW5lIFkzX0RFU0MgICAgICAgICBTSUdfREVTQ19TRVQoU0NVODgsIDYpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUc2LCBWUEkyNCwgVlBJMjRfREVTQywgWTNfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFBXTTYsIFBXTTYsIFkzX0RFU0MsIENPTkQyKTsKLU1TX1BJTl9ERUNMKFkzLCBHUElPTjYsIFZQSUc2LCBQV002KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoWTMsIFZQSUc2LCBWUEkyNCwgVlBJMjRfREVTQywgWTNfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFkzLCBQV002LCBQV002LCBZM19ERVNDLCBDT05EMik7CitQSU5fREVDTF8yKFkzLCBHUElPTjYsIFZQSUc2LCBQV002KTsKIEZVTkNfR1JPVVBfREVDTChQV002LCBZMyk7CiAKICNkZWZpbmUgVDQgMTExCiAjZGVmaW5lIFQ0X0RFU0MgICAgICAgICBTSUdfREVTQ19TRVQoU0NVODgsIDcpCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUc3LCBWUEkyNCwgVlBJMjRfREVTQywgVDRfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFBXTTcsIFBXTTcsIFQ0X0RFU0MsIENPTkQyKTsKLU1TX1BJTl9ERUNMKFQ0LCBHUElPTjcsIFZQSUc3LCBQV003KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVDQsIFZQSUc3LCBWUEkyNCwgVlBJMjRfREVTQywgVDRfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFQ0LCBQV003LCBQV003LCBUNF9ERVNDLCBDT05EMik7CitQSU5fREVDTF8yKFQ0LCBHUElPTjcsIFZQSUc3LCBQV003KTsKIEZVTkNfR1JPVVBfREVDTChQV003LCBUNCk7CiAKICNkZWZpbmUgVTUgMTEyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUc4LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCA4KSwKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVTUsIFZQSUc4LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCA4KSwKIAkJCSAgQ09ORDIpOwotU1NfUElOX0RFQ0woVTUsIEdQSU9PMCwgVlBJRzgpOworUElOX0RFQ0xfMShVNSwgR1BJT08wLCBWUElHOCk7CiAKICNkZWZpbmUgVTQgMTEzCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSUc5LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCA5KSwKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVTQsIFZQSUc5LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCA5KSwKIAkJCSAgQ09ORDIpOwotU1NfUElOX0RFQ0woVTQsIEdQSU9PMSwgVlBJRzkpOworUElOX0RFQ0xfMShVNCwgR1BJT08xLCBWUElHOSk7CiAKICNkZWZpbmUgVjUgMTE0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKERBU0hWNSwgREFTSFY1LCBWUElfMjRfUlNWRF9ERVNDLAorU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWNSwgREFTSFY1LCBEQVNIVjUsIFZQSV8yNF9SU1ZEX0RFU0MsCiAJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMTApKTsKLVNTX1BJTl9ERUNMKFY1LCBHUElPTzIsIERBU0hWNSk7CitQSU5fREVDTF8xKFY1LCBHUElPTzIsIERBU0hWNSk7CiAKICNkZWZpbmUgQUI0IDExNQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIQUI0LCBEQVNIQUI0LCBWUElfMjRfUlNWRF9ERVNDLAorU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQjQsIERBU0hBQjQsIERBU0hBQjQsIFZQSV8yNF9SU1ZEX0RFU0MsCiAJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMTEpKTsKLVNTX1BJTl9ERUNMKEFCNCwgR1BJT08zLCBEQVNIQUI0KTsKK1BJTl9ERUNMXzEoQUI0LCBHUElPTzMsIERBU0hBQjQpOwogCiAjZGVmaW5lIEFCMyAxMTYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVlBJUjIsIFZQSTI0LCBWUEkyNF9ERVNDLCBTSUdfREVTQ19TRVQoU0NVODgsIDEyKSwKLQkJCSAgQ09ORDIpOwotU1NfUElOX0RFQ0woQUIzLCBHUElPTzQsIFZQSVIyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUIzLCBWUElSMiwgVlBJMjQsIFZQSTI0X0RFU0MsCisJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMTIpLCBDT05EMik7CitQSU5fREVDTF8xKEFCMywgR1BJT080LCBWUElSMik7CiAKICNkZWZpbmUgWTQgMTE3Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSVIzLCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCAxMyksCi0JCQkgIENPTkQyKTsKLVNTX1BJTl9ERUNMKFk0LCBHUElPTzUsIFZQSVIzKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoWTQsIFZQSVIzLCBWUEkyNCwgVlBJMjRfREVTQywKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTg4LCAxMyksIENPTkQyKTsKK1BJTl9ERUNMXzEoWTQsIEdQSU9PNSwgVlBJUjMpOwogCiAjZGVmaW5lIEFBNCAxMTgKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVlBJUjQsIFZQSTI0LCBWUEkyNF9ERVNDLCBTSUdfREVTQ19TRVQoU0NVODgsIDE0KSwKLQkJCSAgQ09ORDIpOwotU1NfUElOX0RFQ0woQUE0LCBHUElPTzYsIFZQSVI0KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUE0LCBWUElSNCwgVlBJMjQsIFZQSTI0X0RFU0MsCisJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMTQpLCBDT05EMik7CitQSU5fREVDTF8xKEFBNCwgR1BJT082LCBWUElSNCk7CiAKICNkZWZpbmUgVzQgMTE5Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSVI1LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCAxNSksCi0JCQkgIENPTkQyKTsKLVNTX1BJTl9ERUNMKFc0LCBHUElPTzcsIFZQSVI1KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVzQsIFZQSVI1LCBWUEkyNCwgVlBJMjRfREVTQywKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTg4LCAxNSksIENPTkQyKTsKK1BJTl9ERUNMXzEoVzQsIEdQSU9PNywgVlBJUjUpOwogCiAjZGVmaW5lIFY0IDEyMAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElSNiwgVlBJMjQsIFZQSTI0X0RFU0MsIFNJR19ERVNDX1NFVChTQ1U4OCwgMTYpLAotCQkJICBDT05EMik7Ci1TU19QSU5fREVDTChWNCwgR1BJT1AwLCBWUElSNik7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFY0LCBWUElSNiwgVlBJMjQsIFZQSTI0X0RFU0MsCisJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMTYpLCBDT05EMik7CitQSU5fREVDTF8xKFY0LCBHUElPUDAsIFZQSVI2KTsKIAogI2RlZmluZSBXNSAxMjEKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVlBJUjcsIFZQSTI0LCBWUEkyNF9ERVNDLCBTSUdfREVTQ19TRVQoU0NVODgsIDE3KSwKLQkJCSAgQ09ORDIpOwotU1NfUElOX0RFQ0woVzUsIEdQSU9QMSwgVlBJUjcpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXNSwgVlBJUjcsIFZQSTI0LCBWUEkyNF9ERVNDLAorCQkJICBTSUdfREVTQ19TRVQoU0NVODgsIDE3KSwgQ09ORDIpOworUElOX0RFQ0xfMShXNSwgR1BJT1AxLCBWUElSNyk7CiAKICNkZWZpbmUgQUE1IDEyMgotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWUElSOCwgVlBJMjQsIFZQSTI0X0RFU0MsIFNJR19ERVNDX1NFVChTQ1U4OCwgMTgpLAotCQkJICBDT05EMik7Ci1TU19QSU5fREVDTChBQTUsIEdQSU9QMiwgVlBJUjgpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQTUsIFZQSVI4LCBWUEkyNCwgVlBJMjRfREVTQywKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTg4LCAxOCksIENPTkQyKTsKK1BJTl9ERUNMXzEoQUE1LCBHUElPUDIsIFZQSVI4KTsKIAogI2RlZmluZSBBQjUgMTIzCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFZQSVI5LCBWUEkyNCwgVlBJMjRfREVTQywgU0lHX0RFU0NfU0VUKFNDVTg4LCAxOSksCi0JCQkgIENPTkQyKTsKLVNTX1BJTl9ERUNMKEFCNSwgR1BJT1AzLCBWUElSOSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFCNSwgVlBJUjksIFZQSTI0LCBWUEkyNF9ERVNDLAorCQkJICBTSUdfREVTQ19TRVQoU0NVODgsIDE5KSwgQ09ORDIpOworUElOX0RFQ0xfMShBQjUsIEdQSU9QMywgVlBJUjkpOwogCiBGVU5DX0dST1VQX0RFQ0woVlBJMjQsIFQxLCBVMiwgUDQsIFAzLCBZMSwgQUIyLCBBQTEsIFkyLCBBQTIsIFA1LCBSNSwgVDUsIFYzLAogCQlVMywgVzMsIEFBMywgWTMsIFQ0LCBVNSwgVTQsIEFCMywgWTQsIEFBNCwgVzQsIFY0LCBXNSwgQUE1LAogCQlBQjUpOwogCiAjZGVmaW5lIFk2IDEyNAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIWTYsIERBU0hZNiwgU0lHX0RFU0NfU0VUKFNDVTkwLCAyOCksCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFk2LCBEQVNIWTYsIERBU0hZNiwgU0lHX0RFU0NfU0VUKFNDVTkwLCAyOCksCiAJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMjApKTsKLVNTX1BJTl9ERUNMKFk2LCBHUElPUDQsIERBU0hZNik7CitQSU5fREVDTF8xKFk2LCBHUElPUDQsIERBU0hZNik7CiAKICNkZWZpbmUgWTUgMTI1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKERBU0hZNSwgREFTSFk1LCBTSUdfREVTQ19TRVQoU0NVOTAsIDI4KSwKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoWTUsIERBU0hZNSwgREFTSFk1LCBTSUdfREVTQ19TRVQoU0NVOTAsIDI4KSwKIAkJCSAgU0lHX0RFU0NfU0VUKFNDVTg4LCAyMSkpOwotU1NfUElOX0RFQ0woWTUsIEdQSU9QNSwgREFTSFk1KTsKK1BJTl9ERUNMXzEoWTUsIEdQSU9QNSwgREFTSFk1KTsKIAogI2RlZmluZSBXNiAxMjYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSFc2LCBEQVNIVzYsIFNJR19ERVNDX1NFVChTQ1U5MCwgMjgpLAorU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXNiwgREFTSFc2LCBEQVNIVzYsIFNJR19ERVNDX1NFVChTQ1U5MCwgMjgpLAogCQkJICBTSUdfREVTQ19TRVQoU0NVODgsIDIyKSk7Ci1TU19QSU5fREVDTChXNiwgR1BJT1A2LCBEQVNIVzYpOworUElOX0RFQ0xfMShXNiwgR1BJT1A2LCBEQVNIVzYpOwogCiAjZGVmaW5lIFY2IDEyNwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIVjYsIERBU0hWNiwgU0lHX0RFU0NfU0VUKFNDVTkwLCAyOCksCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFY2LCBEQVNIVjYsIERBU0hWNiwgU0lHX0RFU0NfU0VUKFNDVTkwLCAyOCksCiAJCQkgIFNJR19ERVNDX1NFVChTQ1U4OCwgMjMpKTsKLVNTX1BJTl9ERUNMKFY2LCBHUElPUDcsIERBU0hWNik7CitQSU5fREVDTF8xKFY2LCBHUElPUDcsIERBU0hWNik7CiAKICNkZWZpbmUgSTJDM19ERVNDCVNJR19ERVNDX1NFVChTQ1U5MCwgMTYpCiAKICNkZWZpbmUgQTExIDEyOAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0wzLCBJMkMzLCBJMkMzX0RFU0MpOwotU1NfUElOX0RFQ0woQTExLCBHUElPUTAsIFNDTDMpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBMTEsIFNDTDMsIEkyQzMsIEkyQzNfREVTQyk7CitQSU5fREVDTF8xKEExMSwgR1BJT1EwLCBTQ0wzKTsKIAogI2RlZmluZSBBMTAgMTI5Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNEQTMsIEkyQzMsIEkyQzNfREVTQyk7Ci1TU19QSU5fREVDTChBMTAsIEdQSU9RMSwgU0RBMyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExMCwgU0RBMywgSTJDMywgSTJDM19ERVNDKTsKK1BJTl9ERUNMXzEoQTEwLCBHUElPUTEsIFNEQTMpOwogCiBGVU5DX0dST1VQX0RFQ0woSTJDMywgQTExLCBBMTApOwogCiAjZGVmaW5lIEkyQzRfREVTQwlTSUdfREVTQ19TRVQoU0NVOTAsIDE3KQogCiAjZGVmaW5lIEE5IDEzMAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0w0LCBJMkM0LCBJMkM0X0RFU0MpOwotU1NfUElOX0RFQ0woQTksIEdQSU9RMiwgU0NMNCk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEE5LCBTQ0w0LCBJMkM0LCBJMkM0X0RFU0MpOworUElOX0RFQ0xfMShBOSwgR1BJT1EyLCBTQ0w0KTsKIAogI2RlZmluZSBCOSAxMzEKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0RBNCwgSTJDNCwgSTJDNF9ERVNDKTsKLVNTX1BJTl9ERUNMKEI5LCBHUElPUTMsIFNEQTQpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCOSwgU0RBNCwgSTJDNCwgSTJDNF9ERVNDKTsKK1BJTl9ERUNMXzEoQjksIEdQSU9RMywgU0RBNCk7CiAKIEZVTkNfR1JPVVBfREVDTChJMkM0LCBBOSwgQjkpOwogCiAjZGVmaW5lIEkyQzE0X0RFU0MJU0lHX0RFU0NfU0VUKFNDVTkwLCAyNykKIAogI2RlZmluZSBOMjEgMTMyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNDTDE0LCBJMkMxNCwgSTJDMTRfREVTQyk7Ci1TU19QSU5fREVDTChOMjEsIEdQSU9RNCwgU0NMMTQpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOMjEsIFNDTDE0LCBJMkMxNCwgSTJDMTRfREVTQyk7CitQSU5fREVDTF8xKE4yMSwgR1BJT1E0LCBTQ0wxNCk7CiAKICNkZWZpbmUgTjIyIDEzMwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTREExNCwgSTJDMTQsIEkyQzE0X0RFU0MpOwotU1NfUElOX0RFQ0woTjIyLCBHUElPUTUsIFNEQTE0KTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTjIyLCBTREExNCwgSTJDMTQsIEkyQzE0X0RFU0MpOworUElOX0RFQ0xfMShOMjIsIEdQSU9RNSwgU0RBMTQpOwogCiBGVU5DX0dST1VQX0RFQ0woSTJDMTQsIE4yMSwgTjIyKTsKIApAQCAtOTk2LDEyICsxMDExLDEyIEBAIFNTU0ZfUElOX0RFQ0woVzE5LCBHUElPUjQsIFNQSTJNT1NJLCBTSUdfREVTQ19TRVQoU0NVODgsIDI4KSwgQ09ORDIpOwogU1NTRl9QSU5fREVDTChWMTksIEdQSU9SNSwgU1BJMk1JU08sIFNJR19ERVNDX1NFVChTQ1U4OCwgMjkpLCBDT05EMik7CiAKICNkZWZpbmUgRDggMTQyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE1EQzEsIE1ESU8xLCBTSUdfREVTQ19TRVQoU0NVODgsIDMwKSk7Ci1TU19QSU5fREVDTChEOCwgR1BJT1I2LCBNREMxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDgsIE1EQzEsIE1ESU8xLCBTSUdfREVTQ19TRVQoU0NVODgsIDMwKSk7CitQSU5fREVDTF8xKEQ4LCBHUElPUjYsIE1EQzEpOwogCiAjZGVmaW5lIEUxMCAxNDMKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTURJTzEsIE1ESU8xLCBTSUdfREVTQ19TRVQoU0NVODgsIDMxKSk7Ci1TU19QSU5fREVDTChFMTAsIEdQSU9SNywgTURJTzEpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMTAsIE1ESU8xLCBNRElPMSwgU0lHX0RFU0NfU0VUKFNDVTg4LCAzMSkpOworUElOX0RFQ0xfMShFMTAsIEdQSU9SNywgTURJTzEpOwogCiBGVU5DX0dST1VQX0RFQ0woTURJTzEsIEQ4LCBFMTApOwogCkBAIC0xMDE0LDgzICsxMDI5LDEwNyBAQCBGVU5DX0dST1VQX0RFQ0woTURJTzEsIEQ4LCBFMTApOwogCiAjZGVmaW5lIFYyMCAxNDQKICNkZWZpbmUgVjIwX0RFU0MJU0lHX0RFU0NfU0VUKFNDVThDLCAwKQotU0lHX0VYUFJfREVDTChWUE9CMiwgVlBPLCBWMjBfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0IyLCBWUE9PRkYxLCBWMjBfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9CMiwgVlBPT0ZGMiwgVjIwX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CMiwgU0lHX0VYUFJfUFRSKFZQT0IyLCBWUE8pLAotCQlTSUdfRVhQUl9QVFIoVlBPQjIsIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPQjIsIFZQT09GRjIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU1BJMkNTMSwgU1BJMkNTMSwgVjIwX0RFU0MpOwotTVNfUElOX0RFQ0woVjIwLCBHUElPUzAsIFZQT0IyLCBTUEkyQ1MxKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0IyLCBWUE8sIFYyMF9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0IyLCBWUE9PRkYxLCBWMjBfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjIsIFZQT09GRjIsIFYyMF9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjIsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0IyLCBWUE8pLAorCQlTSUdfRVhQUl9QVFIoVlBPQjIsIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjIsIFZQT09GRjIpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoVjIwLCBWUE9CMiwgVlBPKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVjIwLCBTUEkyQ1MxLCBTUEkyQ1MxLCBWMjBfREVTQyk7CitQSU5fREVDTF8yKFYyMCwgR1BJT1MwLCBWUE9CMiwgU1BJMkNTMSk7CiBGVU5DX0dST1VQX0RFQ0woU1BJMkNTMSwgVjIwKTsKIAogI2RlZmluZSBVMTkgMTQ1CiAjZGVmaW5lIFUxOV9ERVNDCVNJR19ERVNDX1NFVChTQ1U4QywgMSkKLVNJR19FWFBSX0RFQ0woVlBPQjMsIFZQTywgVTE5X0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9CMywgVlBPT0ZGMSwgVTE5X0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjMsIFZQT09GRjIsIFUxOV9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjMsIFNJR19FWFBSX1BUUihWUE9CMywgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT0IzLCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT0IzLCBWUE9PRkYyKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEJNQ0lOVCwgQk1DSU5ULCBVMTlfREVTQyk7Ci1NU19QSU5fREVDTChVMTksIEdQSU9TMSwgVlBPQjMsIEJNQ0lOVCk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CMywgVlBPLCBVMTlfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CMywgVlBPT0ZGMSwgVTE5X0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0IzLCBWUE9PRkYyLCBVMTlfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQT0IzLCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9CMywgVlBPKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0IzLCBWUE9PRkYxKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0IzLCBWUE9PRkYyKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFUxOSwgVlBPQjMsIFZQTyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFUxOSwgQk1DSU5ULCBCTUNJTlQsIFUxOV9ERVNDKTsKK1BJTl9ERUNMXzIoVTE5LCBHUElPUzEsIFZQT0IzLCBCTUNJTlQpOwogRlVOQ19HUk9VUF9ERUNMKEJNQ0lOVCwgVTE5KTsKIAogI2RlZmluZSBSMTggMTQ2CiAjZGVmaW5lIFIxOF9ERVNDCVNJR19ERVNDX1NFVChTQ1U4QywgMikKLVNJR19FWFBSX0RFQ0woVlBPQjQsIFZQTywgUjE4X0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9CNCwgVlBPT0ZGMSwgUjE4X0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjQsIFZQT09GRjIsIFIxOF9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjQsIFNJR19FWFBSX1BUUihWUE9CNCwgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT0I0LCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT0I0LCBWUE9PRkYyKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNBTFQ1LCBTQUxUNSwgUjE4X0RFU0MpOwotTVNfUElOX0RFQ0woUjE4LCBHUElPUzIsIFZQT0I0LCBTQUxUNSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CNCwgVlBPLCBSMThfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CNCwgVlBPT0ZGMSwgUjE4X0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I0LCBWUE9PRkYyLCBSMThfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQT0I0LCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9CNCwgVlBPKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0I0LCBWUE9PRkYxKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0I0LCBWUE9PRkYyKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFIxOCwgVlBPQjQsIFZQTyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFIxOCwgU0FMVDUsIFNBTFQ1LCBSMThfREVTQyk7CitQSU5fREVDTF8yKFIxOCwgR1BJT1MyLCBWUE9CNCwgU0FMVDUpOwogRlVOQ19HUk9VUF9ERUNMKFNBTFQ1LCBSMTgpOwogCiAjZGVmaW5lIFAxOCAxNDcKICNkZWZpbmUgUDE4X0RFU0MJU0lHX0RFU0NfU0VUKFNDVThDLCAzKQotU0lHX0VYUFJfREVDTChWUE9CNSwgVlBPLCBQMThfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0I1LCBWUE9PRkYxLCBQMThfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9CNSwgVlBPT0ZGMiwgUDE4X0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9CNSwgU0lHX0VYUFJfUFRSKFZQT0I1LCBWUE8pLAotCQlTSUdfRVhQUl9QVFIoVlBPQjUsIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPQjUsIFZQT09GRjIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0FMVDYsIFNBTFQ2LCBQMThfREVTQyk7Ci1NU19QSU5fREVDTChQMTgsIEdQSU9TMywgVlBPQjUsIFNBTFQ2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I1LCBWUE8sIFAxOF9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I1LCBWUE9PRkYxLCBQMThfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjUsIFZQT09GRjIsIFAxOF9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjUsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0I1LCBWUE8pLAorCQlTSUdfRVhQUl9QVFIoVlBPQjUsIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjUsIFZQT09GRjIpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUDE4LCBWUE9CNSwgVlBPKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUDE4LCBTQUxUNiwgU0FMVDYsIFAxOF9ERVNDKTsKK1BJTl9ERUNMXzIoUDE4LCBHUElPUzMsIFZQT0I1LCBTQUxUNik7CiBGVU5DX0dST1VQX0RFQ0woU0FMVDYsIFAxOCk7CiAKICNkZWZpbmUgUjE5IDE0OAogI2RlZmluZSBSMTlfREVTQwlTSUdfREVTQ19TRVQoU0NVOEMsIDQpCi1TSUdfRVhQUl9ERUNMKFZQT0I2LCBWUE8sIFIxOV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjYsIFZQT09GRjEsIFIxOV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0I2LCBWUE9PRkYyLCBSMTlfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQT0I2LCBTSUdfRVhQUl9QVFIoVlBPQjYsIFZQTyksCi0JCVNJR19FWFBSX1BUUihWUE9CNiwgVlBPT0ZGMSksIFNJR19FWFBSX1BUUihWUE9CNiwgVlBPT0ZGMikpOwotU1NfUElOX0RFQ0woUjE5LCBHUElPUzQsIFZQT0I2KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I2LCBWUE8sIFIxOV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I2LCBWUE9PRkYxLCBSMTlfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjYsIFZQT09GRjIsIFIxOV9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjYsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0I2LCBWUE8pLAorCQlTSUdfRVhQUl9QVFIoVlBPQjYsIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjYsIFZQT09GRjIpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUjE5LCBWUE9CNiwgVlBPKTsKK1BJTl9ERUNMXzEoUjE5LCBHUElPUzQsIFZQT0I2KTsKIAogI2RlZmluZSBXMjAgMTQ5CiAjZGVmaW5lIFcyMF9ERVNDCVNJR19ERVNDX1NFVChTQ1U4QywgNSkKLVNJR19FWFBSX0RFQ0woVlBPQjcsIFZQTywgVzIwX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9CNywgVlBPT0ZGMSwgVzIwX0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjcsIFZQT09GRjIsIFcyMF9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjcsIFNJR19FWFBSX1BUUihWUE9CNywgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT0I3LCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT0I3LCBWUE9PRkYyKSk7Ci1TU19QSU5fREVDTChXMjAsIEdQSU9TNSwgVlBPQjcpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjcsIFZQTywgVzIwX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPQjcsIFZQT09GRjEsIFcyMF9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9CNywgVlBPT0ZGMiwgVzIwX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9CNywgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPQjcsIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9CNywgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9CNywgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhXMjAsIFZQT0I3LCBWUE8pOworUElOX0RFQ0xfMShXMjAsIEdQSU9TNSwgVlBPQjcpOwogCiAjZGVmaW5lIFUyMCAxNTAKICNkZWZpbmUgVTIwX0RFU0MJU0lHX0RFU0NfU0VUKFNDVThDLCA2KQotU0lHX0VYUFJfREVDTChWUE9COCwgVlBPLCBVMjBfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0I4LCBWUE9PRkYxLCBVMjBfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9COCwgVlBPT0ZGMiwgVTIwX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9COCwgU0lHX0VYUFJfUFRSKFZQT0I4LCBWUE8pLAotCQlTSUdfRVhQUl9QVFIoVlBPQjgsIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPQjgsIFZQT09GRjIpKTsKLVNTX1BJTl9ERUNMKFUyMCwgR1BJT1M2LCBWUE9COCk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9COCwgVlBPLCBVMjBfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9COCwgVlBPT0ZGMSwgVTIwX0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I4LCBWUE9PRkYyLCBVMjBfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQT0I4LCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9COCwgVlBPKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0I4LCBWUE9PRkYxKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0I4LCBWUE9PRkYyKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFUyMCwgVlBPQjgsIFZQTyk7CitQSU5fREVDTF8xKFUyMCwgR1BJT1M2LCBWUE9COCk7CiAKICNkZWZpbmUgQUEyMCAxNTEKICNkZWZpbmUgQUEyMF9ERVNDCVNJR19ERVNDX1NFVChTQ1U4QywgNykKLVNJR19FWFBSX0RFQ0woVlBPQjksIFZQTywgQUEyMF9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPQjksIFZQT09GRjEsIEFBMjBfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9COSwgVlBPT0ZGMiwgQUEyMF9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjksIFNJR19FWFBSX1BUUihWUE9COSwgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT0I5LCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT0I5LCBWUE9PRkYyKSk7Ci1TU19QSU5fREVDTChBQTIwLCBHUElPUzcsIFZQT0I5KTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0I5LCBWUE8sIEFBMjBfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9COSwgVlBPT0ZGMSwgQUEyMF9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9COSwgVlBPT0ZGMiwgQUEyMF9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQjksIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0I5LCBWUE8pLAorCQlTSUdfRVhQUl9QVFIoVlBPQjksIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPQjksIFZQT09GRjIpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoQUEyMCwgVlBPQjksIFZQTyk7CitQSU5fREVDTF8xKEFBMjAsIEdQSU9TNywgVlBPQjkpOwogCiAvKiBSR01JSTEvUk1JSTEgKi8KIApAQCAtMTA5OCwzMDkgKzExMzcsMzA5IEBAIFNTX1BJTl9ERUNMKEFBMjAsIEdQSU9TNywgVlBPQjkpOwogI2RlZmluZSBSTUlJMl9ERVNDICAgICAgU0lHX0RFU0NfQklUKEhXX1NUUkFQMSwgNywgMCkKIAogI2RlZmluZSBCNSAxNTIKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1QwLCBHUElPVDAsIFNJR19ERVNDX1NFVChTQ1VBMCwgMCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSTUlJMVJDTEtPLCBSTUlJMSwgUk1JSTFfREVTQywKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjUsIEdQSU9UMCwgR1BJT1QwLCBTSUdfREVTQ19TRVQoU0NVQTAsIDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjUsIFJNSUkxUkNMS08sIFJNSUkxLCBSTUlJMV9ERVNDLAogCQlTSUdfREVTQ19TRVQoU0NVNDgsIDI5KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVRYQ0ssIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oQjUsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9UMCksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkxUkNMS08pLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFUWENLKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEI1LCBSR01JSTFUWENLLCBSR01JSTEpOworUElOX0RFQ0xfKEI1LCBTSUdfRVhQUl9MSVNUX1BUUihCNSwgR1BJT1QwKSwgU0lHX0VYUFJfTElTVF9QVFIoQjUsIFJNSUkxUkNMS08pLAorCQlTSUdfRVhQUl9MSVNUX1BUUihCNSwgUkdNSUkxVFhDSykpOwogCiAjZGVmaW5lIEU5IDE1MwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVDEsIEdQSU9UMSwgU0lHX0RFU0NfU0VUKFNDVUEwLCAxKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkxVFhFTiwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFUWENUTCwgUkdNSUkxKTsKLU1TX1BJTl9ERUNMXyhFOSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1QxKSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTFUWEVOKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkxVFhDVEwpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTksIEdQSU9UMSwgR1BJT1QxLCBTSUdfREVTQ19TRVQoU0NVQTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTksIFJNSUkxVFhFTiwgUk1JSTEsIFJNSUkxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFOSwgUkdNSUkxVFhDVEwsIFJHTUlJMSk7CitQSU5fREVDTF8oRTksIFNJR19FWFBSX0xJU1RfUFRSKEU5LCBHUElPVDEpLCBTSUdfRVhQUl9MSVNUX1BUUihFOSwgUk1JSTFUWEVOKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoRTksIFJHTUlJMVRYQ1RMKSk7CiAKICNkZWZpbmUgRjkgMTU0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9UMiwgR1BJT1QyLCBTSUdfREVTQ19TRVQoU0NVQTAsIDIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFUWEQwLCBSTUlJMSwgUk1JSTFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVRYRDAsIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oRjksIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9UMiksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkxVFhEMCksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMVRYRDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjksIEdQSU9UMiwgR1BJT1QyLCBTSUdfREVTQ19TRVQoU0NVQTAsIDIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjksIFJNSUkxVFhEMCwgUk1JSTEsIFJNSUkxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShGOSwgUkdNSUkxVFhEMCwgUkdNSUkxKTsKK1BJTl9ERUNMXyhGOSwgU0lHX0VYUFJfTElTVF9QVFIoRjksIEdQSU9UMiksIFNJR19FWFBSX0xJU1RfUFRSKEY5LCBSTUlJMVRYRDApLAorCQlTSUdfRVhQUl9MSVNUX1BUUihGOSwgUkdNSUkxVFhEMCkpOwogCiAjZGVmaW5lIEE1IDE1NQotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVDMsIEdQSU9UMywgU0lHX0RFU0NfU0VUKFNDVUEwLCAzKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkxVFhEMSwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFUWEQxLCBSR01JSTEpOwotTVNfUElOX0RFQ0xfKEE1LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVDMpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMVRYRDEpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFUWEQxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEE1LCBHUElPVDMsIEdQSU9UMywgU0lHX0RFU0NfU0VUKFNDVUEwLCAzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEE1LCBSTUlJMVRYRDEsIFJNSUkxLCBSTUlJMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTUsIFJHTUlJMVRYRDEsIFJHTUlJMSk7CitQSU5fREVDTF8oQTUsIFNJR19FWFBSX0xJU1RfUFRSKEE1LCBHUElPVDMpLCBTSUdfRVhQUl9MSVNUX1BUUihBNSwgUk1JSTFUWEQxKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoQTUsIFJHTUlJMVRYRDEpKTsKIAogI2RlZmluZSBFNyAxNTYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1Q0LCBHUElPVDQsIFNJR19ERVNDX1NFVChTQ1VBMCwgNCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSTUlJMURBU0gwLCBSTUlJMSwgUk1JSTFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVRYRDIsIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oRTcsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9UNCksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkxREFTSDApLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFUWEQyKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEU3LCBHUElPVDQsIEdQSU9UNCwgU0lHX0RFU0NfU0VUKFNDVUEwLCA0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEU3LCBSTUlJMURBU0gwLCBSTUlJMSwgUk1JSTFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEU3LCBSR01JSTFUWEQyLCBSR01JSTEpOworUElOX0RFQ0xfKEU3LCBTSUdfRVhQUl9MSVNUX1BUUihFNywgR1BJT1Q0KSwgU0lHX0VYUFJfTElTVF9QVFIoRTcsIFJNSUkxREFTSDApLAorCQlTSUdfRVhQUl9MSVNUX1BUUihFNywgUkdNSUkxVFhEMikpOwogCiAjZGVmaW5lIEQ3IDE1NwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVDUsIEdQSU9UNSwgU0lHX0RFU0NfU0VUKFNDVUEwLCA1KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkxREFTSDEsIFJNSUkxLCBSTUlJMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUkdNSUkxVFhEMywgUkdNSUkxKTsKLU1TX1BJTl9ERUNMXyhENywgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1Q1KSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTFEQVNIMSksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMVRYRDMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDcsIEdQSU9UNSwgR1BJT1Q1LCBTSUdfREVTQ19TRVQoU0NVQTAsIDUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDcsIFJNSUkxREFTSDEsIFJNSUkxLCBSTUlJMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDcsIFJHTUlJMVRYRDMsIFJHTUlJMSk7CitQSU5fREVDTF8oRDcsIFNJR19FWFBSX0xJU1RfUFRSKEQ3LCBHUElPVDUpLCBTSUdfRVhQUl9MSVNUX1BUUihENywgUk1JSTFEQVNIMSksCisJCVNJR19FWFBSX0xJU1RfUFRSKEQ3LCBSR01JSTFUWEQzKSk7CiAKICNkZWZpbmUgQjIgMTU4Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9UNiwgR1BJT1Q2LCBTSUdfREVTQ19TRVQoU0NVQTAsIDYpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTJSQ0xLTywgUk1JSTIsIFJNSUkyX0RFU0MsCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIyLCBHUElPVDYsIEdQSU9UNiwgU0lHX0RFU0NfU0VUKFNDVUEwLCA2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIyLCBSTUlJMlJDTEtPLCBSTUlJMiwgUk1JSTJfREVTQywKIAkJU0lHX0RFU0NfU0VUKFNDVTQ4LCAzMCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJUWENLLCBSR01JSTIpOwotTVNfUElOX0RFQ0xfKEIyLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVDYpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMlJDTEtPKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyVFhDSykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMiwgUkdNSUkyVFhDSywgUkdNSUkyKTsKK1BJTl9ERUNMXyhCMiwgU0lHX0VYUFJfTElTVF9QVFIoQjIsIEdQSU9UNiksIFNJR19FWFBSX0xJU1RfUFRSKEIyLCBSTUlJMlJDTEtPKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoQjIsIFJHTUlJMlRYQ0spKTsKIAogI2RlZmluZSBCMSAxNTkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1Q3LCBHUElPVDcsIFNJR19ERVNDX1NFVChTQ1VBMCwgNykpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSTUlJMlRYRU4sIFJNSUkyLCBSTUlJMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUkdNSUkyVFhDVEwsIFJHTUlJMik7Ci1NU19QSU5fREVDTF8oQjEsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9UNyksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkyVFhFTiksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMlRYQ1RMKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxLCBHUElPVDcsIEdQSU9UNywgU0lHX0RFU0NfU0VUKFNDVUEwLCA3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIxLCBSTUlJMlRYRU4sIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjEsIFJHTUlJMlRYQ1RMLCBSR01JSTIpOworUElOX0RFQ0xfKEIxLCBTSUdfRVhQUl9MSVNUX1BUUihCMSwgR1BJT1Q3KSwgU0lHX0VYUFJfTElTVF9QVFIoQjEsIFJNSUkyVFhFTiksCisJCVNJR19FWFBSX0xJU1RfUFRSKEIxLCBSR01JSTJUWENUTCkpOwogCiAjZGVmaW5lIEEyIDE2MAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVTAsIEdQSU9VMCwgU0lHX0RFU0NfU0VUKFNDVUEwLCA4KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkyVFhEMCwgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJUWEQwLCBSR01JSTIpOwotTVNfUElOX0RFQ0xfKEEyLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVTApLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMlRYRDApLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTJUWEQwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEEyLCBHUElPVTAsIEdQSU9VMCwgU0lHX0RFU0NfU0VUKFNDVUEwLCA4KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEEyLCBSTUlJMlRYRDAsIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTIsIFJHTUlJMlRYRDAsIFJHTUlJMik7CitQSU5fREVDTF8oQTIsIFNJR19FWFBSX0xJU1RfUFRSKEEyLCBHUElPVTApLCBTSUdfRVhQUl9MSVNUX1BUUihBMiwgUk1JSTJUWEQwKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoQTIsIFJHTUlJMlRYRDApKTsKIAogI2RlZmluZSBCMyAxNjEKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1UxLCBHUElPVTEsIFNJR19ERVNDX1NFVChTQ1VBMCwgOSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSTUlJMlRYRDEsIFJNSUkyLCBSTUlJMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUkdNSUkyVFhEMSwgUkdNSUkyKTsKLU1TX1BJTl9ERUNMXyhCMywgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1UxKSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTJUWEQxKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyVFhEMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMywgR1BJT1UxLCBHUElPVTEsIFNJR19ERVNDX1NFVChTQ1VBMCwgOSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCMywgUk1JSTJUWEQxLCBSTUlJMiwgUk1JSTJfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEIzLCBSR01JSTJUWEQxLCBSR01JSTIpOworUElOX0RFQ0xfKEIzLCBTSUdfRVhQUl9MSVNUX1BUUihCMywgR1BJT1UxKSwgU0lHX0VYUFJfTElTVF9QVFIoQjMsIFJNSUkyVFhEMSksCisJCVNJR19FWFBSX0xJU1RfUFRSKEIzLCBSR01JSTJUWEQxKSk7CiAKICNkZWZpbmUgRDUgMTYyCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9VMiwgR1BJT1UyLCBTSUdfREVTQ19TRVQoU0NVQTAsIDEwKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkyREFTSDAsIFJNSUkyLCBSTUlJMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUkdNSUkyVFhEMiwgUkdNSUkyKTsKLU1TX1BJTl9ERUNMXyhENSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1UyKSwgU0lHX0VYUFJfTElTVF9QVFIoUk1JSTJEQVNIMCksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMlRYRDIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDUsIEdQSU9VMiwgR1BJT1UyLCBTSUdfREVTQ19TRVQoU0NVQTAsIDEwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQ1LCBSTUlJMkRBU0gwLCBSTUlJMiwgUk1JSTJfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQ1LCBSR01JSTJUWEQyLCBSR01JSTIpOworUElOX0RFQ0xfKEQ1LCBTSUdfRVhQUl9MSVNUX1BUUihENSwgR1BJT1UyKSwgU0lHX0VYUFJfTElTVF9QVFIoRDUsIFJNSUkyREFTSDApLAorCQlTSUdfRVhQUl9MSVNUX1BUUihENSwgUkdNSUkyVFhEMikpOwogCiAjZGVmaW5lIEQ0IDE2MwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVTMsIEdQSU9VMywgU0lHX0RFU0NfU0VUKFNDVUEwLCAxMSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSTUlJMkRBU0gxLCBSTUlJMiwgUk1JSTJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMlRYRDMsIFJHTUlJMik7Ci1NU19QSU5fREVDTF8oRDQsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9VMyksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkyREFTSDEpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTJUWEQzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQ0LCBHUElPVTMsIEdQSU9VMywgU0lHX0RFU0NfU0VUKFNDVUEwLCAxMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShENCwgUk1JSTJEQVNIMSwgUk1JSTIsIFJNSUkyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShENCwgUkdNSUkyVFhEMywgUkdNSUkyKTsKK1BJTl9ERUNMXyhENCwgU0lHX0VYUFJfTElTVF9QVFIoRDQsIEdQSU9VMyksIFNJR19FWFBSX0xJU1RfUFRSKEQ0LCBSTUlJMkRBU0gxKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoRDQsIFJHTUlJMlRYRDMpKTsKIAogI2RlZmluZSBCNCAxNjQKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1U0LCBHUElPVTQsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFSQ0xLSSwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFSWENLLCBSR01JSTEpOwotTVNfUElOX0RFQ0xfKEI0LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVTQpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMVJDTEtJKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkxUlhDSykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShCNCwgR1BJT1U0LCBHUElPVTQsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjQsIFJNSUkxUkNMS0ksIFJNSUkxLCBSTUlJMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQjQsIFJHTUlJMVJYQ0ssIFJHTUlJMSk7CitQSU5fREVDTF8oQjQsIFNJR19FWFBSX0xJU1RfUFRSKEI0LCBHUElPVTQpLCBTSUdfRVhQUl9MSVNUX1BUUihCNCwgUk1JSTFSQ0xLSSksCisJCVNJR19FWFBSX0xJU1RfUFRSKEI0LCBSR01JSTFSWENLKSk7CiAKICNkZWZpbmUgQTQgMTY1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9VNSwgR1BJT1U1LCBTSUdfREVTQ19TRVQoU0NVQTAsIDEzKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkxREFTSDIsIFJNSUkxLCBSTUlJMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUkdNSUkxUlhDVEwsIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oQTQsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9VNSksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkxREFTSDIpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFSWENUTCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBNCwgR1BJT1U1LCBHUElPVTUsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTQsIFJNSUkxREFTSDIsIFJNSUkxLCBSTUlJMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTQsIFJHTUlJMVJYQ1RMLCBSR01JSTEpOworUElOX0RFQ0xfKEE0LCBTSUdfRVhQUl9MSVNUX1BUUihBNCwgR1BJT1U1KSwgU0lHX0VYUFJfTElTVF9QVFIoQTQsIFJNSUkxREFTSDIpLAorCQlTSUdfRVhQUl9MSVNUX1BUUihBNCwgUkdNSUkxUlhDVEwpKTsKIAogI2RlZmluZSBBMyAxNjYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1U2LCBHUElPVTYsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTQpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFSWEQwLCBSTUlJMSwgUk1JSTFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVJYRDAsIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oQTMsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9VNiksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkxUlhEMCksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMVJYRDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTMsIEdQSU9VNiwgR1BJT1U2LCBTSUdfREVTQ19TRVQoU0NVQTAsIDE0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEEzLCBSTUlJMVJYRDAsIFJNSUkxLCBSTUlJMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTMsIFJHTUlJMVJYRDAsIFJHTUlJMSk7CitQSU5fREVDTF8oQTMsIFNJR19FWFBSX0xJU1RfUFRSKEEzLCBHUElPVTYpLCBTSUdfRVhQUl9MSVNUX1BUUihBMywgUk1JSTFSWEQwKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoQTMsIFJHTUlJMVJYRDApKTsKIAogI2RlZmluZSBENiAxNjcKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1U3LCBHUElPVTcsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTUpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFSWEQxLCBSTUlJMSwgUk1JSTFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMVJYRDEsIFJHTUlJMSk7Ci1NU19QSU5fREVDTF8oRDYsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9VNyksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkxUlhEMSksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMVJYRDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDYsIEdQSU9VNywgR1BJT1U3LCBTSUdfREVTQ19TRVQoU0NVQTAsIDE1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQ2LCBSTUlJMVJYRDEsIFJNSUkxLCBSTUlJMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDYsIFJHTUlJMVJYRDEsIFJHTUlJMSk7CitQSU5fREVDTF8oRDYsIFNJR19FWFBSX0xJU1RfUFRSKEQ2LCBHUElPVTcpLCBTSUdfRVhQUl9MSVNUX1BUUihENiwgUk1JSTFSWEQxKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoRDYsIFJHTUlJMVJYRDEpKTsKIAogI2RlZmluZSBDNSAxNjgKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1YwLCBHUElPVjAsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTYpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTFDUlNEViwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFSWEQyLCBSR01JSTEpOwotTVNfUElOX0RFQ0xfKEM1LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVjApLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMUNSU0RWKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkxUlhEMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDNSwgR1BJT1YwLCBHUElPVjAsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzUsIFJNSUkxQ1JTRFYsIFJNSUkxLCBSTUlJMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzUsIFJHTUlJMVJYRDIsIFJHTUlJMSk7CitQSU5fREVDTF8oQzUsIFNJR19FWFBSX0xJU1RfUFRSKEM1LCBHUElPVjApLCBTSUdfRVhQUl9MSVNUX1BUUihDNSwgUk1JSTFDUlNEViksCisJCVNJR19FWFBSX0xJU1RfUFRSKEM1LCBSR01JSTFSWEQyKSk7CiAKICNkZWZpbmUgQzQgMTY5Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9WMSwgR1BJT1YxLCBTSUdfREVTQ19TRVQoU0NVQTAsIDE3KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkxUlhFUiwgUk1JSTEsIFJNSUkxX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTFSWEQzLCBSR01JSTEpOwotTVNfUElOX0RFQ0xfKEM0LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVjEpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMVJYRVIpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTFSWEQzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEM0LCBHUElPVjEsIEdQSU9WMSwgU0lHX0RFU0NfU0VUKFNDVUEwLCAxNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDNCwgUk1JSTFSWEVSLCBSTUlJMSwgUk1JSTFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEM0LCBSR01JSTFSWEQzLCBSR01JSTEpOworUElOX0RFQ0xfKEM0LCBTSUdfRVhQUl9MSVNUX1BUUihDNCwgR1BJT1YxKSwgU0lHX0VYUFJfTElTVF9QVFIoQzQsIFJNSUkxUlhFUiksCisJCVNJR19FWFBSX0xJU1RfUFRSKEM0LCBSR01JSTFSWEQzKSk7CiAKIEZVTkNfR1JPVVBfREVDTChSR01JSTEsIEI0LCBBNCwgQTMsIEQ2LCBDNSwgQzQsIEI1LCBFOSwgRjksIEE1LCBFNywgRDcpOwogRlVOQ19HUk9VUF9ERUNMKFJNSUkxLCBCNCwgQTMsIEQ2LCBDNSwgQzQsIEI1LCBFOSwgRjksIEE1KTsKIAogI2RlZmluZSBDMiAxNzAKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1YyLCBHUElPVjIsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTgpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTJSQ0xLSSwgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJSWENLLCBSR01JSTIpOwotTVNfUElOX0RFQ0xfKEMyLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVjIpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMlJDTEtJKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyUlhDSykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMiwgR1BJT1YyLCBHUElPVjIsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzIsIFJNSUkyUkNMS0ksIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzIsIFJHTUlJMlJYQ0ssIFJHTUlJMik7CitQSU5fREVDTF8oQzIsIFNJR19FWFBSX0xJU1RfUFRSKEMyLCBHUElPVjIpLCBTSUdfRVhQUl9MSVNUX1BUUihDMiwgUk1JSTJSQ0xLSSksCisJCVNJR19FWFBSX0xJU1RfUFRSKEMyLCBSR01JSTJSWENLKSk7CiAKICNkZWZpbmUgQzEgMTcxCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9WMywgR1BJT1YzLCBTSUdfREVTQ19TRVQoU0NVQTAsIDE5KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkyREFTSDIsIFJNSUkyLCBSTUlJMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUkdNSUkyUlhDVEwsIFJHTUlJMik7Ci1NU19QSU5fREVDTF8oQzEsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9WMyksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkyREFTSDIpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTJSWENUTCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShDMSwgR1BJT1YzLCBHUElPVjMsIFNJR19ERVNDX1NFVChTQ1VBMCwgMTkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzEsIFJNSUkyREFTSDIsIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzEsIFJHTUlJMlJYQ1RMLCBSR01JSTIpOworUElOX0RFQ0xfKEMxLCBTSUdfRVhQUl9MSVNUX1BUUihDMSwgR1BJT1YzKSwgU0lHX0VYUFJfTElTVF9QVFIoQzEsIFJNSUkyREFTSDIpLAorCQlTSUdfRVhQUl9MSVNUX1BUUihDMSwgUkdNSUkyUlhDVEwpKTsKIAogI2RlZmluZSBDMyAxNzIKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1Y0LCBHUElPVjQsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTJSWEQwLCBSTUlJMiwgUk1JSTJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMlJYRDAsIFJHTUlJMik7Ci1NU19QSU5fREVDTF8oQzMsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9WNCksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkyUlhEMCksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMlJYRDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzMsIEdQSU9WNCwgR1BJT1Y0LCBTSUdfREVTQ19TRVQoU0NVQTAsIDIwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMzLCBSTUlJMlJYRDAsIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzMsIFJHTUlJMlJYRDAsIFJHTUlJMik7CitQSU5fREVDTF8oQzMsIFNJR19FWFBSX0xJU1RfUFRSKEMzLCBHUElPVjQpLCBTSUdfRVhQUl9MSVNUX1BUUihDMywgUk1JSTJSWEQwKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoQzMsIFJHTUlJMlJYRDApKTsKIAogI2RlZmluZSBEMSAxNzMKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1Y1LCBHUElPVjUsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjEpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTJSWEQxLCBSTUlJMiwgUk1JSTJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJHTUlJMlJYRDEsIFJHTUlJMik7Ci1NU19QSU5fREVDTF8oRDEsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9WNSksIFNJR19FWFBSX0xJU1RfUFRSKFJNSUkyUlhEMSksCi0JCVNJR19FWFBSX0xJU1RfUFRSKFJHTUlJMlJYRDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDEsIEdQSU9WNSwgR1BJT1Y1LCBTSUdfREVTQ19TRVQoU0NVQTAsIDIxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQxLCBSTUlJMlJYRDEsIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDEsIFJHTUlJMlJYRDEsIFJHTUlJMik7CitQSU5fREVDTF8oRDEsIFNJR19FWFBSX0xJU1RfUFRSKEQxLCBHUElPVjUpLCBTSUdfRVhQUl9MSVNUX1BUUihEMSwgUk1JSTJSWEQxKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoRDEsIFJHTUlJMlJYRDEpKTsKIAogI2RlZmluZSBEMiAxNzQKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1Y2LCBHUElPVjYsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUk1JSTJDUlNEViwgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJSWEQyLCBSR01JSTIpOwotTVNfUElOX0RFQ0xfKEQyLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVjYpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMkNSU0RWKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoUkdNSUkyUlhEMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEMiwgR1BJT1Y2LCBHUElPVjYsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDIsIFJNSUkyQ1JTRFYsIFJNSUkyLCBSTUlJMl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDIsIFJHTUlJMlJYRDIsIFJHTUlJMik7CitQSU5fREVDTF8oRDIsIFNJR19FWFBSX0xJU1RfUFRSKEQyLCBHUElPVjYpLCBTSUdfRVhQUl9MSVNUX1BUUihEMiwgUk1JSTJDUlNEViksCisJCVNJR19FWFBSX0xJU1RfUFRSKEQyLCBSR01JSTJSWEQyKSk7CiAKICNkZWZpbmUgRTYgMTc1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9WNywgR1BJT1Y3LCBTSUdfREVTQ19TRVQoU0NVQTAsIDIzKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFJNSUkyUlhFUiwgUk1JSTIsIFJNSUkyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSR01JSTJSWEQzLCBSR01JSTIpOwotTVNfUElOX0RFQ0xfKEU2LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVjcpLCBTSUdfRVhQUl9MSVNUX1BUUihSTUlJMlJYRVIpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihSR01JSTJSWEQzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEU2LCBHUElPVjcsIEdQSU9WNywgU0lHX0RFU0NfU0VUKFNDVUEwLCAyMykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFNiwgUk1JSTJSWEVSLCBSTUlJMiwgUk1JSTJfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEU2LCBSR01JSTJSWEQzLCBSR01JSTIpOworUElOX0RFQ0xfKEU2LCBTSUdfRVhQUl9MSVNUX1BUUihFNiwgR1BJT1Y3KSwgU0lHX0VYUFJfTElTVF9QVFIoRTYsIFJNSUkyUlhFUiksCisJCVNJR19FWFBSX0xJU1RfUFRSKEU2LCBSR01JSTJSWEQzKSk7CiAKIEZVTkNfR1JPVVBfREVDTChSR01JSTIsIEIyLCBCMSwgQTIsIEIzLCBENSwgRDQsIEMyLCBDMSwgQzMsIEQxLCBEMiwgRTYpOwogRlVOQ19HUk9VUF9ERUNMKFJNSUkyLCBCMiwgQjEsIEEyLCBCMywgQzIsIEMzLCBEMSwgRDIsIEU2KTsKIAogI2RlZmluZSBGNCAxNzYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1cwLCBHUElPVzAsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjQpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDMCwgQURDMCk7Ci1NU19QSU5fREVDTF8oRjQsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9XMCksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjQsIEdQSU9XMCwgR1BJT1cwLCBTSUdfREVTQ19TRVQoU0NVQTAsIDI0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEY0LCBBREMwLCBBREMwKTsKK1BJTl9ERUNMXyhGNCwgU0lHX0VYUFJfTElTVF9QVFIoRjQsIEdQSU9XMCksIFNJR19FWFBSX0xJU1RfUFRSKEY0LCBBREMwKSk7CiBGVU5DX0dST1VQX0RFQ0woQURDMCwgRjQpOwogCiAjZGVmaW5lIEY1IDE3NwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVzEsIEdQSU9XMSwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyNSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREMxLCBBREMxKTsKLU1TX1BJTl9ERUNMXyhGNSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1cxKSwgU0lHX0VYUFJfTElTVF9QVFIoQURDMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShGNSwgR1BJT1cxLCBHUElPVzEsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjUsIEFEQzEsIEFEQzEpOworUElOX0RFQ0xfKEY1LCBTSUdfRVhQUl9MSVNUX1BUUihGNSwgR1BJT1cxKSwgU0lHX0VYUFJfTElTVF9QVFIoRjUsIEFEQzEpKTsKIEZVTkNfR1JPVVBfREVDTChBREMxLCBGNSk7CiAKICNkZWZpbmUgRTIgMTc4Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9XMiwgR1BJT1cyLCBTSUdfREVTQ19TRVQoU0NVQTAsIDI2KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFEQzIsIEFEQzIpOwotTVNfUElOX0RFQ0xfKEUyLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVzIpLCBTSUdfRVhQUl9MSVNUX1BUUihBREMyKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUyLCBHUElPVzIsIEdQSU9XMiwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMiwgQURDMiwgQURDMik7CitQSU5fREVDTF8oRTIsIFNJR19FWFBSX0xJU1RfUFRSKEUyLCBHUElPVzIpLCBTSUdfRVhQUl9MSVNUX1BUUihFMiwgQURDMikpOwogRlVOQ19HUk9VUF9ERUNMKEFEQzIsIEUyKTsKIAogI2RlZmluZSBFMSAxNzkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1czLCBHUElPVzMsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjcpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDMywgQURDMyk7Ci1NU19QSU5fREVDTF8oRTEsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9XMyksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTEsIEdQSU9XMywgR1BJT1czLCBTSUdfREVTQ19TRVQoU0NVQTAsIDI3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUxLCBBREMzLCBBREMzKTsKK1BJTl9ERUNMXyhFMSwgU0lHX0VYUFJfTElTVF9QVFIoRTEsIEdQSU9XMyksIFNJR19FWFBSX0xJU1RfUFRSKEUxLCBBREMzKSk7CiBGVU5DX0dST1VQX0RFQ0woQURDMywgRTEpOwogCiAjZGVmaW5lIEYzIDE4MAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVzQsIEdQSU9XNCwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyOCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREM0LCBBREM0KTsKLU1TX1BJTl9ERUNMXyhGMywgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1c0KSwgU0lHX0VYUFJfTElTVF9QVFIoQURDNCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShGMywgR1BJT1c0LCBHUElPVzQsIFNJR19ERVNDX1NFVChTQ1VBMCwgMjgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjMsIEFEQzQsIEFEQzQpOworUElOX0RFQ0xfKEYzLCBTSUdfRVhQUl9MSVNUX1BUUihGMywgR1BJT1c0KSwgU0lHX0VYUFJfTElTVF9QVFIoRjMsIEFEQzQpKTsKIEZVTkNfR1JPVVBfREVDTChBREM0LCBGMyk7CiAKICNkZWZpbmUgRTMgMTgxCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9XNSwgR1BJT1c1LCBTSUdfREVTQ19TRVQoU0NVQTAsIDI5KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFEQzUsIEFEQzUpOwotTVNfUElOX0RFQ0xfKEUzLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPVzUpLCBTSUdfRVhQUl9MSVNUX1BUUihBREM1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUzLCBHUElPVzUsIEdQSU9XNSwgU0lHX0RFU0NfU0VUKFNDVUEwLCAyOSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFMywgQURDNSwgQURDNSk7CitQSU5fREVDTF8oRTMsIFNJR19FWFBSX0xJU1RfUFRSKEUzLCBHUElPVzUpLCBTSUdfRVhQUl9MSVNUX1BUUihFMywgQURDNSkpOwogRlVOQ19HUk9VUF9ERUNMKEFEQzUsIEUzKTsKIAogI2RlZmluZSBHNSAxODIKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1c2LCBHUElPVzYsIFNJR19ERVNDX1NFVChTQ1VBMCwgMzApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDNiwgQURDNik7Ci1NU19QSU5fREVDTF8oRzUsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9XNiksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzUsIEdQSU9XNiwgR1BJT1c2LCBTSUdfREVTQ19TRVQoU0NVQTAsIDMwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEc1LCBBREM2LCBBREM2KTsKK1BJTl9ERUNMXyhHNSwgU0lHX0VYUFJfTElTVF9QVFIoRzUsIEdQSU9XNiksIFNJR19FWFBSX0xJU1RfUFRSKEc1LCBBREM2KSk7CiBGVU5DX0dST1VQX0RFQ0woQURDNiwgRzUpOwogCiAjZGVmaW5lIEc0IDE4MwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPVzcsIEdQSU9XNywgU0lHX0RFU0NfU0VUKFNDVUEwLCAzMSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREM3LCBBREM3KTsKLU1TX1BJTl9ERUNMXyhHNCwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1c3KSwgU0lHX0VYUFJfTElTVF9QVFIoQURDNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHNCwgR1BJT1c3LCBHUElPVzcsIFNJR19ERVNDX1NFVChTQ1VBMCwgMzEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzQsIEFEQzcsIEFEQzcpOworUElOX0RFQ0xfKEc0LCBTSUdfRVhQUl9MSVNUX1BUUihHNCwgR1BJT1c3KSwgU0lHX0VYUFJfTElTVF9QVFIoRzQsIEFEQzcpKTsKIEZVTkNfR1JPVVBfREVDTChBREM3LCBHNCk7CiAKICNkZWZpbmUgRjIgMTg0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9YMCwgR1BJT1gwLCBTSUdfREVTQ19TRVQoU0NVQTQsIDApKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDOCwgQURDOCk7Ci1NU19QSU5fREVDTF8oRjIsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9YMCksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjIsIEdQSU9YMCwgR1BJT1gwLCBTSUdfREVTQ19TRVQoU0NVQTQsIDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjIsIEFEQzgsIEFEQzgpOworUElOX0RFQ0xfKEYyLCBTSUdfRVhQUl9MSVNUX1BUUihGMiwgR1BJT1gwKSwgU0lHX0VYUFJfTElTVF9QVFIoRjIsIEFEQzgpKTsKIEZVTkNfR1JPVVBfREVDTChBREM4LCBGMik7CiAKICNkZWZpbmUgRzMgMTg1Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9YMSwgR1BJT1gxLCBTSUdfREVTQ19TRVQoU0NVQTQsIDEpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDOSwgQURDOSk7Ci1NU19QSU5fREVDTF8oRzMsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9YMSksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzMsIEdQSU9YMSwgR1BJT1gxLCBTSUdfREVTQ19TRVQoU0NVQTQsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzMsIEFEQzksIEFEQzkpOworUElOX0RFQ0xfKEczLCBTSUdfRVhQUl9MSVNUX1BUUihHMywgR1BJT1gxKSwgU0lHX0VYUFJfTElTVF9QVFIoRzMsIEFEQzkpKTsKIEZVTkNfR1JPVVBfREVDTChBREM5LCBHMyk7CiAKICNkZWZpbmUgRzIgMTg2Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9YMiwgR1BJT1gyLCBTSUdfREVTQ19TRVQoU0NVQTQsIDIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDMTAsIEFEQzEwKTsKLU1TX1BJTl9ERUNMXyhHMiwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1gyKSwgU0lHX0VYUFJfTElTVF9QVFIoQURDMTApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzIsIEdQSU9YMiwgR1BJT1gyLCBTSUdfREVTQ19TRVQoU0NVQTQsIDIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzIsIEFEQzEwLCBBREMxMCk7CitQSU5fREVDTF8oRzIsIFNJR19FWFBSX0xJU1RfUFRSKEcyLCBHUElPWDIpLCBTSUdfRVhQUl9MSVNUX1BUUihHMiwgQURDMTApKTsKIEZVTkNfR1JPVVBfREVDTChBREMxMCwgRzIpOwogCiAjZGVmaW5lIEYxIDE4NwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPWDMsIEdQSU9YMywgU0lHX0RFU0NfU0VUKFNDVUE0LCAzKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFEQzExLCBBREMxMSk7Ci1NU19QSU5fREVDTF8oRjEsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9YMyksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzExKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEYxLCBHUElPWDMsIEdQSU9YMywgU0lHX0RFU0NfU0VUKFNDVUE0LCAzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEYxLCBBREMxMSwgQURDMTEpOworUElOX0RFQ0xfKEYxLCBTSUdfRVhQUl9MSVNUX1BUUihGMSwgR1BJT1gzKSwgU0lHX0VYUFJfTElTVF9QVFIoRjEsIEFEQzExKSk7CiBGVU5DX0dST1VQX0RFQ0woQURDMTEsIEYxKTsKIAogI2RlZmluZSBINSAxODgKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1g0LCBHUElPWDQsIFNJR19ERVNDX1NFVChTQ1VBNCwgNCkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREMxMiwgQURDMTIpOwotTVNfUElOX0RFQ0xfKEg1LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPWDQpLCBTSUdfRVhQUl9MSVNUX1BUUihBREMxMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShINSwgR1BJT1g0LCBHUElPWDQsIFNJR19ERVNDX1NFVChTQ1VBNCwgNCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShINSwgQURDMTIsIEFEQzEyKTsKK1BJTl9ERUNMXyhINSwgU0lHX0VYUFJfTElTVF9QVFIoSDUsIEdQSU9YNCksIFNJR19FWFBSX0xJU1RfUFRSKEg1LCBBREMxMikpOwogRlVOQ19HUk9VUF9ERUNMKEFEQzEyLCBINSk7CiAKICNkZWZpbmUgRzEgMTg5Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9YNSwgR1BJT1g1LCBTSUdfREVTQ19TRVQoU0NVQTQsIDUpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQURDMTMsIEFEQzEzKTsKLU1TX1BJTl9ERUNMXyhHMSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1g1KSwgU0lHX0VYUFJfTElTVF9QVFIoQURDMTMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzEsIEdQSU9YNSwgR1BJT1g1LCBTSUdfREVTQ19TRVQoU0NVQTQsIDUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzEsIEFEQzEzLCBBREMxMyk7CitQSU5fREVDTF8oRzEsIFNJR19FWFBSX0xJU1RfUFRSKEcxLCBHUElPWDUpLCBTSUdfRVhQUl9MSVNUX1BUUihHMSwgQURDMTMpKTsKIEZVTkNfR1JPVVBfREVDTChBREMxMywgRzEpOwogCiAjZGVmaW5lIEgzIDE5MAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPWDYsIEdQSU9YNiwgU0lHX0RFU0NfU0VUKFNDVUE0LCA2KSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFEQzE0LCBBREMxNCk7Ci1NU19QSU5fREVDTF8oSDMsIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9YNiksIFNJR19FWFBSX0xJU1RfUFRSKEFEQzE0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEgzLCBHUElPWDYsIEdQSU9YNiwgU0lHX0RFU0NfU0VUKFNDVUE0LCA2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEgzLCBBREMxNCwgQURDMTQpOworUElOX0RFQ0xfKEgzLCBTSUdfRVhQUl9MSVNUX1BUUihIMywgR1BJT1g2KSwgU0lHX0VYUFJfTElTVF9QVFIoSDMsIEFEQzE0KSk7CiBGVU5DX0dST1VQX0RFQ0woQURDMTQsIEgzKTsKIAogI2RlZmluZSBINCAxOTEKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1g3LCBHUElPWDcsIFNJR19ERVNDX1NFVChTQ1VBNCwgNykpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBREMxNSwgQURDMTUpOwotTVNfUElOX0RFQ0xfKEg0LCBTSUdfRVhQUl9MSVNUX1BUUihHUElPWDcpLCBTSUdfRVhQUl9MSVNUX1BUUihBREMxNSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShINCwgR1BJT1g3LCBHUElPWDcsIFNJR19ERVNDX1NFVChTQ1VBNCwgNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShINCwgQURDMTUsIEFEQzE1KTsKK1BJTl9ERUNMXyhINCwgU0lHX0VYUFJfTElTVF9QVFIoSDQsIEdQSU9YNyksIFNJR19FWFBSX0xJU1RfUFRSKEg0LCBBREMxNSkpOwogRlVOQ19HUk9VUF9ERUNMKEFEQzE1LCBINCk7CiAKICNkZWZpbmUgQUNQSV9ERVNDCVNJR19ERVNDX1NFVChIV19TVFJBUDEsIDE5KQogCiAjZGVmaW5lIFIyMiAxOTIKLVNJR19FWFBSX0RFQ0woU0lPUzMsIFNJT1MzLCBTSUdfREVTQ19TRVQoU0NVQTQsIDgpKTsKLVNJR19FWFBSX0RFQ0woU0lPUzMsIEFDUEksIEFDUElfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChTSU9TMywgU0lPUzMsIEFDUEkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIUjIyLCBEQVNIUjIyLCBTSUdfREVTQ19TRVQoU0NVOTQsIDEwKSk7Ci1NU19QSU5fREVDTChSMjIsIEdQSU9ZMCwgU0lPUzMsIERBU0hSMjIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUzMsIFNJT1MzLCBTSUdfREVTQ19TRVQoU0NVQTQsIDgpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT1MzLCBBQ1BJLCBBQ1BJX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoUjIyLCBTSU9TMywgU0lPUzMsIEFDUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSMjIsIERBU0hSMjIsIERBU0hSMjIsIFNJR19ERVNDX1NFVChTQ1U5NCwgMTApKTsKK1BJTl9ERUNMXzIoUjIyLCBHUElPWTAsIFNJT1MzLCBEQVNIUjIyKTsKIEZVTkNfR1JPVVBfREVDTChTSU9TMywgUjIyKTsKIAogI2RlZmluZSBSMjEgMTkzCi1TSUdfRVhQUl9ERUNMKFNJT1M1LCBTSU9TNSwgU0lHX0RFU0NfU0VUKFNDVUE0LCA5KSk7Ci1TSUdfRVhQUl9ERUNMKFNJT1M1LCBBQ1BJLCBBQ1BJX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoU0lPUzUsIFNJT1M1LCBBQ1BJKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoREFTSFIyMSwgREFTSFIyMSwgU0lHX0RFU0NfU0VUKFNDVTk0LCAxMCkpOwotTVNfUElOX0RFQ0woUjIxLCBHUElPWTEsIFNJT1M1LCBEQVNIUjIxKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT1M1LCBTSU9TNSwgU0lHX0RFU0NfU0VUKFNDVUE0LCA5KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTSU9TNSwgQUNQSSwgQUNQSV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFIyMSwgU0lPUzUsIFNJT1M1LCBBQ1BJKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUjIxLCBEQVNIUjIxLCBEQVNIUjIxLCBTSUdfREVTQ19TRVQoU0NVOTQsIDEwKSk7CitQSU5fREVDTF8yKFIyMSwgR1BJT1kxLCBTSU9TNSwgREFTSFIyMSk7CiBGVU5DX0dST1VQX0RFQ0woU0lPUzUsIFIyMSk7CiAKICNkZWZpbmUgUDIyIDE5NAotU0lHX0VYUFJfREVDTChTSU9QV1JFUSwgU0lPUFdSRVEsIFNJR19ERVNDX1NFVChTQ1VBNCwgMTApKTsKLVNJR19FWFBSX0RFQ0woU0lPUFdSRVEsIEFDUEksIEFDUElfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChTSU9QV1JFUSwgU0lPUFdSRVEsIEFDUEkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShEQVNIUDIyLCBEQVNIUDIyLCBTSUdfREVTQ19TRVQoU0NVOTQsIDExKSk7Ci1NU19QSU5fREVDTChQMjIsIEdQSU9ZMiwgU0lPUFdSRVEsIERBU0hQMjIpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUFdSRVEsIFNJT1BXUkVRLCBTSUdfREVTQ19TRVQoU0NVQTQsIDEwKSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTSU9QV1JFUSwgQUNQSSwgQUNQSV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFAyMiwgU0lPUFdSRVEsIFNJT1BXUkVRLCBBQ1BJKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUDIyLCBEQVNIUDIyLCBEQVNIUDIyLCBTSUdfREVTQ19TRVQoU0NVOTQsIDExKSk7CitQSU5fREVDTF8yKFAyMiwgR1BJT1kyLCBTSU9QV1JFUSwgREFTSFAyMik7CiBGVU5DX0dST1VQX0RFQ0woU0lPUFdSRVEsIFAyMik7CiAKICNkZWZpbmUgUDIxIDE5NQotU0lHX0VYUFJfREVDTChTSU9PTkNUUkwsIFNJT09OQ1RSTCwgU0lHX0RFU0NfU0VUKFNDVUE0LCAxMSkpOwotU0lHX0VYUFJfREVDTChTSU9PTkNUUkwsIEFDUEksIEFDUElfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChTSU9PTkNUUkwsIFNJT09OQ1RSTCwgQUNQSSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKERBU0hQMjEsIERBU0hQMjEsIFNJR19ERVNDX1NFVChTQ1U5NCwgMTEpKTsKLU1TX1BJTl9ERUNMKFAyMSwgR1BJT1kzLCBTSU9PTkNUUkwsIERBU0hQMjEpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPT05DVFJMLCBTSU9PTkNUUkwsIFNJR19ERVNDX1NFVChTQ1VBNCwgMTEpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT09OQ1RSTCwgQUNQSSwgQUNQSV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9EVUFMKFAyMSwgU0lPT05DVFJMLCBTSU9PTkNUUkwsIEFDUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQMjEsIERBU0hQMjEsIERBU0hQMjEsIFNJR19ERVNDX1NFVChTQ1U5NCwgMTEpKTsKK1BJTl9ERUNMXzIoUDIxLCBHUElPWTMsIFNJT09OQ1RSTCwgREFTSFAyMSk7CiBGVU5DX0dST1VQX0RFQ0woU0lPT05DVFJMLCBQMjEpOwogCiAjZGVmaW5lIE0xOCAxOTYKQEAgLTE0MTksNjYgKzE0NTgsODEgQEAgU1NTRl9QSU5fREVDTChQMjAsIEdQSU9ZNywgU0RBMiwgU0lHX0RFU0NfU0VUKFNDVUE0LCAxNSkpOwogCiAjZGVmaW5lIFkyMCAyMDAKICNkZWZpbmUgWTIwX0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE0LCAxNikKLVNJR19FWFBSX0RFQ0woVlBPRzIsIFZQTywgWTIwX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9HMiwgVlBPT0ZGMSwgWTIwX0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzIsIFZQT09GRjIsIFkyMF9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPRzIsIFNJR19FWFBSX1BUUihWUE9HMiwgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT0cyLCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT0cyLCBWUE9PRkYyKSk7Ci1TSUdfRVhQUl9ERUNMKFNJT1BCSSwgU0lPUEJJLCBZMjBfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFNJT1BCSSwgQUNQSSwgWTIwX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoU0lPUEJJLCBTSU9QQkksIEFDUEkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOT1JBMCwgUE5PUiwgUE5PUl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT1owLCBHUElPWjApOwotTVNfUElOX0RFQ0xfKFkyMCwgU0lHX0VYUFJfTElTVF9QVFIoVlBPRzIpLCBTSUdfRVhQUl9MSVNUX1BUUihTSU9QQkkpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihOT1JBMCksIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9aMCkpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzIsIFZQTywgWTIwX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzIsIFZQT09GRjEsIFkyMF9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HMiwgVlBPT0ZGMiwgWTIwX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9HMiwgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPRzIsIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9HMiwgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9HMiwgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhZMjAsIFZQT0cyLCBWUE8pOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUEJJLCBTSU9QQkksIFkyMF9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT1BCSSwgQUNQSSwgWTIwX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoWTIwLCBTSU9QQkksIFNJT1BCSSwgQUNQSSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFkyMCwgTk9SQTAsIFBOT1IsIFBOT1JfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFkyMCwgR1BJT1owLCBHUElPWjApOworUElOX0RFQ0xfKFkyMCwgU0lHX0VYUFJfTElTVF9QVFIoWTIwLCBWUE9HMiksIFNJR19FWFBSX0xJU1RfUFRSKFkyMCwgU0lPUEJJKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoWTIwLCBOT1JBMCksIFNJR19FWFBSX0xJU1RfUFRSKFkyMCwgR1BJT1owKSk7CiBGVU5DX0dST1VQX0RFQ0woU0lPUEJJLCBZMjApOwogCiAjZGVmaW5lIEFCMjAgMjAxCiAjZGVmaW5lIEFCMjBfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDE3KQotU0lHX0VYUFJfREVDTChWUE9HMywgVlBPLCBBQjIwX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9HMywgVlBPT0ZGMSwgQUIyMF9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0czLCBWUE9PRkYyLCBBQjIwX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9HMywgU0lHX0VYUFJfUFRSKFZQT0czLCBWUE8pLAotCQlTSUdfRVhQUl9QVFIoVlBPRzMsIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPRzMsIFZQT09GRjIpKTsKLVNJR19FWFBSX0RFQ0woU0lPUFdSR0QsIFNJT1BXUkdELCBBQjIwX0RFU0MpOwotU0lHX0VYUFJfREVDTChTSU9QV1JHRCwgQUNQSSwgQUIyMF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFNJT1BXUkdELCBTSU9QV1JHRCwgQUNQSSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5PUkExLCBQTk9SLCBQTk9SX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPWjEsIEdQSU9aMSk7Ci1NU19QSU5fREVDTF8oQUIyMCwgU0lHX0VYUFJfTElTVF9QVFIoVlBPRzMpLCBTSUdfRVhQUl9MSVNUX1BUUihTSU9QV1JHRCksCi0JCVNJR19FWFBSX0xJU1RfUFRSKE5PUkExKSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1oxKSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HMywgVlBPLCBBQjIwX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzMsIFZQT09GRjEsIEFCMjBfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzMsIFZQT09GRjIsIEFCMjBfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQT0czLCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9HMywgVlBPKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0czLCBWUE9PRkYxKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0czLCBWUE9PRkYyKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKEFCMjAsIFZQT0czLCBWUE8pOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUFdSR0QsIFNJT1BXUkdELCBBQjIwX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUFdSR0QsIEFDUEksIEFCMjBfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChBQjIwLCBTSU9QV1JHRCwgU0lPUFdSR0QsIEFDUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQjIwLCBOT1JBMSwgUE5PUiwgUE5PUl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUIyMCwgR1BJT1oxLCBHUElPWjEpOworUElOX0RFQ0xfKEFCMjAsIFNJR19FWFBSX0xJU1RfUFRSKEFCMjAsIFZQT0czKSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEFCMjAsIFNJT1BXUkdEKSwgU0lHX0VYUFJfTElTVF9QVFIoQUIyMCwgTk9SQTEpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUIyMCwgR1BJT1oxKSk7CiBGVU5DX0dST1VQX0RFQ0woU0lPUFdSR0QsIEFCMjApOwogCiAjZGVmaW5lIEFCMjEgMjAyCiAjZGVmaW5lIEFCMjFfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDE4KQotU0lHX0VYUFJfREVDTChWUE9HNCwgVlBPLCBBQjIxX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9HNCwgVlBPT0ZGMSwgQUIyMV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0c0LCBWUE9PRkYyLCBBQjIxX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9HNCwgU0lHX0VYUFJfUFRSKFZQT0c0LCBWUE8pLAotCQlTSUdfRVhQUl9QVFIoVlBPRzQsIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPRzQsIFZQT09GRjIpKTsKLVNJR19FWFBSX0RFQ0woU0lPUEJPLCBTSU9QQk8sIEFCMjFfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFNJT1BCTywgQUNQSSwgQUIyMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9EVUFMKFNJT1BCTywgU0lPUEJPLCBBQ1BJKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTk9SQTIsIFBOT1IsIFBOT1JfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9aMiwgR1BJT1oyKTsKLU1TX1BJTl9ERUNMXyhBQjIxLCBTSUdfRVhQUl9MSVNUX1BUUihWUE9HNCksIFNJR19FWFBSX0xJU1RfUFRSKFNJT1BCTyksCi0JCVNJR19FWFBSX0xJU1RfUFRSKE5PUkEyKSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT1oyKSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HNCwgVlBPLCBBQjIxX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzQsIFZQT09GRjEsIEFCMjFfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzQsIFZQT09GRjIsIEFCMjFfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQT0c0LCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9HNCwgVlBPKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0c0LCBWUE9PRkYxKSwKKwkJU0lHX0VYUFJfUFRSKFZQT0c0LCBWUE9PRkYyKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKEFCMjEsIFZQT0c0LCBWUE8pOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPUEJPLCBTSU9QQk8sIEFCMjFfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShTSU9QQk8sIEFDUEksIEFCMjFfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChBQjIxLCBTSU9QQk8sIFNJT1BCTywgQUNQSSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFCMjEsIE5PUkEyLCBQTk9SLCBQTk9SX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQjIxLCBHUElPWjIsIEdQSU9aMik7CitQSU5fREVDTF8oQUIyMSwgU0lHX0VYUFJfTElTVF9QVFIoQUIyMSwgVlBPRzQpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUIyMSwgU0lPUEJPKSwgU0lHX0VYUFJfTElTVF9QVFIoQUIyMSwgTk9SQTIpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUIyMSwgR1BJT1oyKSk7CiBGVU5DX0dST1VQX0RFQ0woU0lPUEJPLCBBQjIxKTsKIAogI2RlZmluZSBBQTIxIDIwMwogI2RlZmluZSBBQTIxX0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE0LCAxOSkKLVNJR19FWFBSX0RFQ0woVlBPRzUsIFZQTywgQUEyMV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzUsIFZQT09GRjEsIEFBMjFfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9HNSwgVlBPT0ZGMiwgQUEyMV9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPRzUsIFNJR19FWFBSX1BUUihWUE9HNSwgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT0c1LCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT0c1LCBWUE9PRkYyKSk7Ci1TSUdfRVhQUl9ERUNMKFNJT1NDSSwgU0lPU0NJLCBBQTIxX0RFU0MpOwotU0lHX0VYUFJfREVDTChTSU9TQ0ksIEFDUEksIEFBMjFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfRFVBTChTSU9TQ0ksIFNJT1NDSSwgQUNQSSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5PUkEzLCBQTk9SLCBQTk9SX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPWjMsIEdQSU9aMyk7Ci1NU19QSU5fREVDTF8oQUEyMSwgU0lHX0VYUFJfTElTVF9QVFIoVlBPRzUpLCBTSUdfRVhQUl9MSVNUX1BUUihTSU9TQ0kpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihOT1JBMyksIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9aMykpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzUsIFZQTywgQUEyMV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0c1LCBWUE9PRkYxLCBBQTIxX0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0c1LCBWUE9PRkYyLCBBQTIxX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9HNSwgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPRzUsIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9HNSwgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9HNSwgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhBQTIxLCBWUE9HNSwgVlBPKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFNJT1NDSSwgU0lPU0NJLCBBQTIxX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoU0lPU0NJLCBBQ1BJLCBBQTIxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoQUEyMSwgU0lPU0NJLCBTSU9TQ0ksIEFDUEkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQTIxLCBOT1JBMywgUE5PUiwgUE5PUl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUEyMSwgR1BJT1ozLCBHUElPWjMpOworUElOX0RFQ0xfKEFBMjEsIFNJR19FWFBSX0xJU1RfUFRSKEFBMjEsIFZQT0c1KSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEFBMjEsIFNJT1NDSSksIFNJR19FWFBSX0xJU1RfUFRSKEFBMjEsIE5PUkEzKSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEFBMjEsIEdQSU9aMykpOwogRlVOQ19HUk9VUF9ERUNMKFNJT1NDSSwgQUEyMSk7CiAKIEZVTkNfR1JPVVBfREVDTChBQ1BJLCBSMjIsIFIyMSwgUDIyLCBQMjEsIFkyMCwgQUIyMCwgQUIyMSwgQUEyMSk7CkBAIC0xNDk3LDE5OSArMTU1MSwyNDggQEAgRlVOQ19HUk9VUF9ERUNMKEFDUEksIFIyMiwgUjIxLCBQMjIsIFAyMSwgWTIwLCBBQjIwLCBBQjIxLCBBQTIxKTsKIAogI2RlZmluZSBVMjEgMjA0CiAjZGVmaW5lIFUyMV9ERVNDCVNJR19ERVNDX1NFVChTQ1VBNCwgMjApCi1TSUdfRVhQUl9ERUNMKFZQT0c2LCBWUE8sIFUyMV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzYsIFZQT09GRjEsIFUyMV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0c2LCBWUE9PRkYyLCBVMjFfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQT0c2LCBTSUdfRVhQUl9QVFIoVlBPRzYsIFZQTyksCi0JCVNJR19FWFBSX1BUUihWUE9HNiwgVlBPT0ZGMSksIFNJR19FWFBSX1BUUihWUE9HNiwgVlBPT0ZGMikpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOT1JBNCwgUE5PUiwgUE5PUl9ERVNDKTsKLU1TX1BJTl9ERUNMKFUyMSwgR1BJT1o0LCBWUE9HNiwgTk9SQTQpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzYsIFZQTywgVTIxX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzYsIFZQT09GRjEsIFUyMV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HNiwgVlBPT0ZGMiwgVTIxX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9HNiwgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPRzYsIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9HNiwgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9HNiwgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhVMjEsIFZQT0c2LCBWUE8pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShVMjEsIE5PUkE0LCBQTk9SLCBQTk9SX0RFU0MpOworUElOX0RFQ0xfMihVMjEsIEdQSU9aNCwgVlBPRzYsIE5PUkE0KTsKIAogI2RlZmluZSBXMjIgMjA1CiAjZGVmaW5lIFcyMl9ERVNDCVNJR19ERVNDX1NFVChTQ1VBNCwgMjEpCi1TSUdfRVhQUl9ERUNMKFZQT0c3LCBWUE8sIFcyMl9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzcsIFZQT09GRjEsIFcyMl9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0c3LCBWUE9PRkYyLCBXMjJfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQT0c3LCBTSUdfRVhQUl9QVFIoVlBPRzcsIFZQTyksCi0JCVNJR19FWFBSX1BUUihWUE9HNywgVlBPT0ZGMSksIFNJR19FWFBSX1BUUihWUE9HNywgVlBPT0ZGMikpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOT1JBNSwgUE5PUiwgUE5PUl9ERVNDKTsKLU1TX1BJTl9ERUNMKFcyMiwgR1BJT1o1LCBWUE9HNywgTk9SQTUpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzcsIFZQTywgVzIyX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzcsIFZQT09GRjEsIFcyMl9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HNywgVlBPT0ZGMiwgVzIyX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9HNywgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPRzcsIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9HNywgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9HNywgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhXMjIsIFZQT0c3LCBWUE8pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXMjIsIE5PUkE1LCBQTk9SLCBQTk9SX0RFU0MpOworUElOX0RFQ0xfMihXMjIsIEdQSU9aNSwgVlBPRzcsIE5PUkE1KTsKIAogI2RlZmluZSBWMjIgMjA2CiAjZGVmaW5lIFYyMl9ERVNDCVNJR19ERVNDX1NFVChTQ1VBNCwgMjIpCi1TSUdfRVhQUl9ERUNMKFZQT0c4LCBWUE8sIFYyMl9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzgsIFZQT09GRjEsIFYyMl9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0c4LCBWUE9PRkYyLCBWMjJfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQT0c4LCBTSUdfRVhQUl9QVFIoVlBPRzgsIFZQTyksCi0JCVNJR19FWFBSX1BUUihWUE9HOCwgVlBPT0ZGMSksIFNJR19FWFBSX1BUUihWUE9HOCwgVlBPT0ZGMikpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOT1JBNiwgUE5PUiwgUE5PUl9ERVNDKTsKLU1TX1BJTl9ERUNMKFYyMiwgR1BJT1o2LCBWUE9HOCwgTk9SQTYpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzgsIFZQTywgVjIyX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzgsIFZQT09GRjEsIFYyMl9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HOCwgVlBPT0ZGMiwgVjIyX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9HOCwgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPRzgsIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9HOCwgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9HOCwgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhWMjIsIFZQT0c4LCBWUE8pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShWMjIsIE5PUkE2LCBQTk9SLCBQTk9SX0RFU0MpOworUElOX0RFQ0xfMihWMjIsIEdQSU9aNiwgVlBPRzgsIE5PUkE2KTsKIAogI2RlZmluZSBXMjEgMjA3CiAjZGVmaW5lIFcyMV9ERVNDCVNJR19ERVNDX1NFVChTQ1VBNCwgMjMpCi1TSUdfRVhQUl9ERUNMKFZQT0c5LCBWUE8sIFcyMV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPRzksIFZQT09GRjEsIFcyMV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0c5LCBWUE9PRkYyLCBXMjFfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQT0c5LCBTSUdfRVhQUl9QVFIoVlBPRzksIFZQTyksCi0JCVNJR19FWFBSX1BUUihWUE9HOSwgVlBPT0ZGMSksIFNJR19FWFBSX1BUUihWUE9HOSwgVlBPT0ZGMikpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOT1JBNywgUE5PUiwgUE5PUl9ERVNDKTsKLU1TX1BJTl9ERUNMKFcyMSwgR1BJT1o3LCBWUE9HOSwgTk9SQTcpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzksIFZQTywgVzIxX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPRzksIFZQT09GRjEsIFcyMV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9HOSwgVlBPT0ZGMiwgVzIxX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9HOSwgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPRzksIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9HOSwgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9HOSwgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhXMjEsIFZQT0c5LCBWUE8pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShXMjEsIE5PUkE3LCBQTk9SLCBQTk9SX0RFU0MpOworUElOX0RFQ0xfMihXMjEsIEdQSU9aNywgVlBPRzksIE5PUkE3KTsKIAogI2RlZmluZSBZMjEgMjA4CiAjZGVmaW5lIFkyMV9ERVNDCVNJR19ERVNDX1NFVChTQ1VBNCwgMjQpCi1TSUdfRVhQUl9ERUNMKFZQT1IyLCBWUE8sIFkyMV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPUjIsIFZQT09GRjEsIFkyMV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT1IyLCBWUE9PRkYyLCBZMjFfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQT1IyLCBTSUdfRVhQUl9QVFIoVlBPUjIsIFZQTyksCi0JCVNJR19FWFBSX1BUUihWUE9SMiwgVlBPT0ZGMSksIFNJR19FWFBSX1BUUihWUE9SMiwgVlBPT0ZGMikpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQUxUNywgU0FMVDcsIFkyMV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTk9SRDAsIFBOT1IsIFBOT1JfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9BQTAsIEdQSU9BQTApOwotTVNfUElOX0RFQ0xfKFkyMSwgU0lHX0VYUFJfTElTVF9QVFIoVlBPUjIpLCBTSUdfRVhQUl9MSVNUX1BUUihTQUxUNyksCi0JCVNJR19FWFBSX0xJU1RfUFRSKE5PUkQwKSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT0FBMCkpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPUjIsIFZQTywgWTIxX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPUjIsIFZQT09GRjEsIFkyMV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SMiwgVlBPT0ZGMiwgWTIxX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9SMiwgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPUjIsIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9SMiwgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9SMiwgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhZMjEsIFZQT1IyLCBWUE8pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShZMjEsIFNBTFQ3LCBTQUxUNywgWTIxX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShZMjEsIE5PUkQwLCBQTk9SLCBQTk9SX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShZMjEsIEdQSU9BQTAsIEdQSU9BQTApOworUElOX0RFQ0xfKFkyMSwgU0lHX0VYUFJfTElTVF9QVFIoWTIxLCBWUE9SMiksIFNJR19FWFBSX0xJU1RfUFRSKFkyMSwgU0FMVDcpLAorCQlTSUdfRVhQUl9MSVNUX1BUUihZMjEsIE5PUkQwKSwgU0lHX0VYUFJfTElTVF9QVFIoWTIxLCBHUElPQUEwKSk7CiBGVU5DX0dST1VQX0RFQ0woU0FMVDcsIFkyMSk7CiAKICNkZWZpbmUgVjIxIDIwOQogI2RlZmluZSBWMjFfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDI1KQotU0lHX0VYUFJfREVDTChWUE9SMywgVlBPLCBWMjFfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT1IzLCBWUE9PRkYxLCBWMjFfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9SMywgVlBPT0ZGMiwgVjIxX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9SMywgU0lHX0VYUFJfUFRSKFZQT1IzLCBWUE8pLAotCQlTSUdfRVhQUl9QVFIoVlBPUjMsIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPUjMsIFZQT09GRjIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0FMVDgsIFNBTFQ4LCBWMjFfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5PUkQxLCBQTk9SLCBQTk9SX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPQUExLCBHUElPQUExKTsKLU1TX1BJTl9ERUNMXyhWMjEsIFNJR19FWFBSX0xJU1RfUFRSKFZQT1IzKSwgU0lHX0VYUFJfTElTVF9QVFIoU0FMVDgpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihOT1JEMSksIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9BQTEpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1IzLCBWUE8sIFYyMV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1IzLCBWUE9PRkYxLCBWMjFfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPUjMsIFZQT09GRjIsIFYyMV9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPUjMsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT1IzLCBWUE8pLAorCQlTSUdfRVhQUl9QVFIoVlBPUjMsIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPUjMsIFZQT09GRjIpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoVjIxLCBWUE9SMywgVlBPKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVjIxLCBTQUxUOCwgU0FMVDgsIFYyMV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVjIxLCBOT1JEMSwgUE5PUiwgUE5PUl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVjIxLCBHUElPQUExLCBHUElPQUExKTsKK1BJTl9ERUNMXyhWMjEsIFNJR19FWFBSX0xJU1RfUFRSKFYyMSwgVlBPUjMpLCBTSUdfRVhQUl9MSVNUX1BUUihWMjEsIFNBTFQ4KSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoVjIxLCBOT1JEMSksIFNJR19FWFBSX0xJU1RfUFRSKFYyMSwgR1BJT0FBMSkpOwogRlVOQ19HUk9VUF9ERUNMKFNBTFQ4LCBWMjEpOwogCiAjZGVmaW5lIFkyMiAyMTAKICNkZWZpbmUgWTIyX0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE0LCAyNikKLVNJR19FWFBSX0RFQ0woVlBPUjQsIFZQTywgWTIyX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9SNCwgVlBPT0ZGMSwgWTIyX0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPUjQsIFZQT09GRjIsIFkyMl9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPUjQsIFNJR19FWFBSX1BUUihWUE9SNCwgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT1I0LCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT1I0LCBWUE9PRkYyKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNBTFQ5LCBTQUxUOSwgWTIyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOT1JEMiwgUE5PUiwgUE5PUl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT0FBMiwgR1BJT0FBMik7Ci1NU19QSU5fREVDTF8oWTIyLCBTSUdfRVhQUl9MSVNUX1BUUihWUE9SNCksIFNJR19FWFBSX0xJU1RfUFRSKFNBTFQ5KSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoTk9SRDIpLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPQUEyKSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SNCwgVlBPLCBZMjJfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SNCwgVlBPT0ZGMSwgWTIyX0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1I0LCBWUE9PRkYyLCBZMjJfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQT1I0LCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9SNCwgVlBPKSwKKwkJU0lHX0VYUFJfUFRSKFZQT1I0LCBWUE9PRkYxKSwKKwkJU0lHX0VYUFJfUFRSKFZQT1I0LCBWUE9PRkYyKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFkyMiwgVlBPUjQsIFZQTyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFkyMiwgU0FMVDksIFNBTFQ5LCBZMjJfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFkyMiwgTk9SRDIsIFBOT1IsIFBOT1JfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFkyMiwgR1BJT0FBMiwgR1BJT0FBMik7CitQSU5fREVDTF8oWTIyLCBTSUdfRVhQUl9MSVNUX1BUUihZMjIsIFZQT1I0KSwgU0lHX0VYUFJfTElTVF9QVFIoWTIyLCBTQUxUOSksCisJCVNJR19FWFBSX0xJU1RfUFRSKFkyMiwgTk9SRDIpLCBTSUdfRVhQUl9MSVNUX1BUUihZMjIsIEdQSU9BQTIpKTsKIEZVTkNfR1JPVVBfREVDTChTQUxUOSwgWTIyKTsKIAogI2RlZmluZSBBQTIyIDIxMQogI2RlZmluZSBBQTIyX0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE0LCAyNykKLVNJR19FWFBSX0RFQ0woVlBPUjUsIFZQTywgQUEyMl9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPUjUsIFZQT09GRjEsIEFBMjJfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9SNSwgVlBPT0ZGMiwgQUEyMl9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPUjUsIFNJR19FWFBSX1BUUihWUE9SNSwgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT1I1LCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT1I1LCBWUE9PRkYyKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNBTFQxMCwgU0FMVDEwLCBBQTIyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOT1JEMywgUE5PUiwgUE5PUl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT0FBMywgR1BJT0FBMyk7Ci1NU19QSU5fREVDTF8oQUEyMiwgU0lHX0VYUFJfTElTVF9QVFIoVlBPUjUpLCBTSUdfRVhQUl9MSVNUX1BUUihTQUxUMTApLAotCQlTSUdfRVhQUl9MSVNUX1BUUihOT1JEMyksIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9BQTMpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1I1LCBWUE8sIEFBMjJfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SNSwgVlBPT0ZGMSwgQUEyMl9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SNSwgVlBPT0ZGMiwgQUEyMl9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPUjUsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT1I1LCBWUE8pLAorCQlTSUdfRVhQUl9QVFIoVlBPUjUsIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPUjUsIFZQT09GRjIpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoQUEyMiwgVlBPUjUsIFZQTyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEFBMjIsIFNBTFQxMCwgU0FMVDEwLCBBQTIyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBQTIyLCBOT1JEMywgUE5PUiwgUE5PUl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQUEyMiwgR1BJT0FBMywgR1BJT0FBMyk7CitQSU5fREVDTF8oQUEyMiwgU0lHX0VYUFJfTElTVF9QVFIoQUEyMiwgVlBPUjUpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUEyMiwgU0FMVDEwKSwgU0lHX0VYUFJfTElTVF9QVFIoQUEyMiwgTk9SRDMpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUEyMiwgR1BJT0FBMykpOwogRlVOQ19HUk9VUF9ERUNMKFNBTFQxMCwgQUEyMik7CiAKICNkZWZpbmUgVTIyIDIxMgogI2RlZmluZSBVMjJfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDI4KQotU0lHX0VYUFJfREVDTChWUE9SNiwgVlBPLCBVMjJfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT1I2LCBWUE9PRkYxLCBVMjJfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9SNiwgVlBPT0ZGMiwgVTIyX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9SNiwgU0lHX0VYUFJfUFRSKFZQT1I2LCBWUE8pLAotCQlTSUdfRVhQUl9QVFIoVlBPUjYsIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPUjYsIFZQT09GRjIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0FMVDExLCBTQUxUMTEsIFUyMl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTk9SRDQsIFBOT1IsIFBOT1JfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9BQTQsIEdQSU9BQTQpOwotTVNfUElOX0RFQ0xfKFUyMiwgU0lHX0VYUFJfTElTVF9QVFIoVlBPUjYpLCBTSUdfRVhQUl9MSVNUX1BUUihTQUxUMTEpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihOT1JENCksIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9BQTQpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1I2LCBWUE8sIFUyMl9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1I2LCBWUE9PRkYxLCBVMjJfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPUjYsIFZQT09GRjIsIFUyMl9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPUjYsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT1I2LCBWUE8pLAorCQlTSUdfRVhQUl9QVFIoVlBPUjYsIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPUjYsIFZQT09GRjIpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoVTIyLCBWUE9SNiwgVlBPKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVTIyLCBTQUxUMTEsIFNBTFQxMSwgVTIyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShVMjIsIE5PUkQ0LCBQTk9SLCBQTk9SX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShVMjIsIEdQSU9BQTQsIEdQSU9BQTQpOworUElOX0RFQ0xfKFUyMiwgU0lHX0VYUFJfTElTVF9QVFIoVTIyLCBWUE9SNiksIFNJR19FWFBSX0xJU1RfUFRSKFUyMiwgU0FMVDExKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoVTIyLCBOT1JENCksIFNJR19FWFBSX0xJU1RfUFRSKFUyMiwgR1BJT0FBNCkpOwogRlVOQ19HUk9VUF9ERUNMKFNBTFQxMSwgVTIyKTsKIAogI2RlZmluZSBUMjAgMjEzCiAjZGVmaW5lIFQyMF9ERVNDCVNJR19ERVNDX1NFVChTQ1VBNCwgMjkpCi1TSUdfRVhQUl9ERUNMKFZQT1I3LCBWUE8sIFQyMF9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPUjcsIFZQT09GRjEsIFQyMF9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT1I3LCBWUE9PRkYyLCBUMjBfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQT1I3LCBTSUdfRVhQUl9QVFIoVlBPUjcsIFZQTyksCi0JCVNJR19FWFBSX1BUUihWUE9SNywgVlBPT0ZGMSksIFNJR19FWFBSX1BUUihWUE9SNywgVlBPT0ZGMikpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQUxUMTIsIFNBTFQxMiwgVDIwX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOT1JENSwgUE5PUiwgUE5PUl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoR1BJT0FBNSwgR1BJT0FBNSk7Ci1NU19QSU5fREVDTF8oVDIwLCBTSUdfRVhQUl9MSVNUX1BUUihWUE9SNyksIFNJR19FWFBSX0xJU1RfUFRSKFNBTFQxMiksCi0JCVNJR19FWFBSX0xJU1RfUFRSKE5PUkQ1KSwgU0lHX0VYUFJfTElTVF9QVFIoR1BJT0FBNSkpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPUjcsIFZQTywgVDIwX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPUjcsIFZQT09GRjEsIFQyMF9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SNywgVlBPT0ZGMiwgVDIwX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9SNywgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPUjcsIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9SNywgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9SNywgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhUMjAsIFZQT1I3LCBWUE8pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShUMjAsIFNBTFQxMiwgU0FMVDEyLCBUMjBfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFQyMCwgTk9SRDUsIFBOT1IsIFBOT1JfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFQyMCwgR1BJT0FBNSwgR1BJT0FBNSk7CitQSU5fREVDTF8oVDIwLCBTSUdfRVhQUl9MSVNUX1BUUihUMjAsIFZQT1I3KSwgU0lHX0VYUFJfTElTVF9QVFIoVDIwLCBTQUxUMTIpLAorCQlTSUdfRVhQUl9MSVNUX1BUUihUMjAsIE5PUkQ1KSwgU0lHX0VYUFJfTElTVF9QVFIoVDIwLCBHUElPQUE1KSk7CiBGVU5DX0dST1VQX0RFQ0woU0FMVDEyLCBUMjApOwogCiAjZGVmaW5lIE4xOCAyMTQKICNkZWZpbmUgTjE4X0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE0LCAzMCkKLVNJR19FWFBSX0RFQ0woVlBPUjgsIFZQTywgTjE4X0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9SOCwgVlBPT0ZGMSwgTjE4X0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPUjgsIFZQT09GRjIsIE4xOF9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPUjgsIFNJR19FWFBSX1BUUihWUE9SOCwgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT1I4LCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT1I4LCBWUE9PRkYyKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNBTFQxMywgU0FMVDEzLCBOMThfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5PUkQ2LCBQTk9SLCBQTk9SX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHUElPQUE2LCBHUElPQUE2KTsKLU1TX1BJTl9ERUNMXyhOMTgsIFNJR19FWFBSX0xJU1RfUFRSKFZQT1I4KSwgU0lHX0VYUFJfTElTVF9QVFIoU0FMVDEzKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoTk9SRDYpLCBTSUdfRVhQUl9MSVNUX1BUUihHUElPQUE2KSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SOCwgVlBPLCBOMThfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9SOCwgVlBPT0ZGMSwgTjE4X0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1I4LCBWUE9PRkYyLCBOMThfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQT1I4LCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9SOCwgVlBPKSwKKwkJU0lHX0VYUFJfUFRSKFZQT1I4LCBWUE9PRkYxKSwKKwkJU0lHX0VYUFJfUFRSKFZQT1I4LCBWUE9PRkYyKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKE4xOCwgVlBPUjgsIFZQTyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE4xOCwgU0FMVDEzLCBTQUxUMTMsIE4xOF9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTjE4LCBOT1JENiwgUE5PUiwgUE5PUl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTjE4LCBHUElPQUE2LCBHUElPQUE2KTsKK1BJTl9ERUNMXyhOMTgsIFNJR19FWFBSX0xJU1RfUFRSKE4xOCwgVlBPUjgpLCBTSUdfRVhQUl9MSVNUX1BUUihOMTgsIFNBTFQxMyksCisJCVNJR19FWFBSX0xJU1RfUFRSKE4xOCwgTk9SRDYpLCBTSUdfRVhQUl9MSVNUX1BUUihOMTgsIEdQSU9BQTYpKTsKIEZVTkNfR1JPVVBfREVDTChTQUxUMTMsIE4xOCk7CiAKICNkZWZpbmUgUDE5IDIxNQogI2RlZmluZSBQMTlfREVTQwlTSUdfREVTQ19TRVQoU0NVQTQsIDMxKQotU0lHX0VYUFJfREVDTChWUE9SOSwgVlBPLCBQMTlfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT1I5LCBWUE9PRkYxLCBQMTlfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9SOSwgVlBPT0ZGMiwgUDE5X0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FU19ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9SOSwgU0lHX0VYUFJfUFRSKFZQT1I5LCBWUE8pLAotCQlTSUdfRVhQUl9QVFIoVlBPUjksIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPUjksIFZQT09GRjIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoU0FMVDE0LCBTQUxUMTQsIFAxOV9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTk9SRDcsIFBOT1IsIFBOT1JfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEdQSU9BQTcsIEdQSU9BQTcpOwotTVNfUElOX0RFQ0xfKFAxOSwgU0lHX0VYUFJfTElTVF9QVFIoVlBPUjkpLCBTSUdfRVhQUl9MSVNUX1BUUihTQUxUMTQpLAotCQlTSUdfRVhQUl9MSVNUX1BUUihOT1JENyksIFNJR19FWFBSX0xJU1RfUFRSKEdQSU9BQTcpKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1I5LCBWUE8sIFAxOV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FU19ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1I5LCBWUE9PRkYxLCBQMTlfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VTX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPUjksIFZQT09GRjIsIFAxOV9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRVNfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPUjksIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT1I5LCBWUE8pLAorCQlTSUdfRVhQUl9QVFIoVlBPUjksIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPUjksIFZQT09GRjIpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoUDE5LCBWUE9SOSwgVlBPKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoUDE5LCBTQUxUMTQsIFNBTFQxNCwgUDE5X0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQMTksIE5PUkQ3LCBQTk9SLCBQTk9SX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShQMTksIEdQSU9BQTcsIEdQSU9BQTcpOworUElOX0RFQ0xfKFAxOSwgU0lHX0VYUFJfTElTVF9QVFIoUDE5LCBWUE9SOSksIFNJR19FWFBSX0xJU1RfUFRSKFAxOSwgU0FMVDE0KSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoUDE5LCBOT1JENyksIFNJR19FWFBSX0xJU1RfUFRSKFAxOSwgR1BJT0FBNykpOwogRlVOQ19HUk9VUF9ERUNMKFNBTFQxNCwgUDE5KTsKIAogI2RlZmluZSBOMTkgMjE2CiAjZGVmaW5lIE4xOV9ERVNDCVNJR19ERVNDX1NFVChTQ1VBOCwgMCkKLVNJR19FWFBSX0RFQ0woVlBPREUsIFZQTywgTjE5X0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9ERSwgVlBPT0ZGMSwgTjE5X0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPREUsIFZQT09GRjIsIE4xOV9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVlBPREUsIFNJR19FWFBSX1BUUihWUE9ERSwgVlBPKSwKLQkJU0lHX0VYUFJfUFRSKFZQT0RFLCBWUE9PRkYxKSwgU0lHX0VYUFJfUFRSKFZQT0RFLCBWUE9PRkYyKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKE5PUk9FLCBQTk9SLCBQTk9SX0RFU0MpOwotTVNfUElOX0RFQ0woTjE5LCBHUElPQUIwLCBWUE9ERSwgTk9ST0UpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPREUsIFZQTywgTjE5X0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPREUsIFZQT09GRjEsIE4xOV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9ERSwgVlBPT0ZGMiwgTjE5X0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTChWUE9ERSwgVlBPLAorCQlTSUdfRVhQUl9QVFIoVlBPREUsIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9ERSwgVlBPT0ZGMSksCisJCVNJR19FWFBSX1BUUihWUE9ERSwgVlBPT0ZGMikpOworU0lHX0VYUFJfTElTVF9BTElBUyhOMTksIFZQT0RFLCBWUE8pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOMTksIE5PUk9FLCBQTk9SLCBQTk9SX0RFU0MpOworUElOX0RFQ0xfMihOMTksIEdQSU9BQjAsIFZQT0RFLCBOT1JPRSk7CiAKICNkZWZpbmUgVDIxIDIxNwogI2RlZmluZSBUMjFfREVTQwlTSUdfREVTQ19TRVQoU0NVQTgsIDEpCi1TSUdfRVhQUl9ERUNMKFZQT0hTLCBWUE8sIFQyMV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVlBPSFMsIFZQT09GRjEsIFQyMV9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0hTLCBWUE9PRkYyLCBUMjFfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFZQT0hTLCBTSUdfRVhQUl9QVFIoVlBPSFMsIFZQTyksCi0JCVNJR19FWFBSX1BUUihWUE9IUywgVlBPT0ZGMSksIFNJR19FWFBSX1BUUihWUE9IUywgVlBPT0ZGMikpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOT1JXRSwgUE5PUiwgUE5PUl9ERVNDKTsKLU1TX1BJTl9ERUNMKFQyMSwgR1BJT0FCMSwgVlBPSFMsIE5PUldFKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0hTLCBWUE8sIFQyMV9ERVNDLCBWUE9fREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0hTLCBWUE9PRkYxLCBUMjFfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfREVDTF9TSU5HTEUoVlBPSFMsIFZQT09GRjIsIFQyMV9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPSFMsIFZQTywKKwkJU0lHX0VYUFJfUFRSKFZQT0hTLCBWUE8pLAorCQlTSUdfRVhQUl9QVFIoVlBPSFMsIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPSFMsIFZQT09GRjIpKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoVDIxLCBWUE9IUywgVlBPKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVDIxLCBOT1JXRSwgUE5PUiwgUE5PUl9ERVNDKTsKK1BJTl9ERUNMXzIoVDIxLCBHUElPQUIxLCBWUE9IUywgTk9SV0UpOwogCiBGVU5DX0dST1VQX0RFQ0woUE5PUiwgWTIwLCBBQjIwLCBBQjIxLCBBQTIxLCBVMjEsIFcyMiwgVjIyLCBXMjEsIFkyMSwgVjIxLCBZMjIsCiAJCUFBMjIsIFUyMiwgVDIwLCBOMTgsIFAxOSwgTjE5LCBUMjEpOwogCiAjZGVmaW5lIFQyMiAyMTgKICNkZWZpbmUgVDIyX0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE4LCAyKQotU0lHX0VYUFJfREVDTChWUE9WUywgVlBPLCBUMjJfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT1ZTLCBWUE9PRkYxLCBUMjJfREVTQywgVlBPT0ZGMV9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9WUywgVlBPT0ZGMiwgVDIyX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9WUywgU0lHX0VYUFJfUFRSKFZQT1ZTLCBWUE8pLAotCQlTSUdfRVhQUl9QVFIoVlBPVlMsIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPVlMsIFZQT09GRjIpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoV0RUUlNUMSwgV0RUUlNUMSwgVDIyX0RFU0MpOwotTVNfUElOX0RFQ0woVDIyLCBHUElPQUIyLCBWUE9WUywgV0RUUlNUMSk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9WUywgVlBPLCBUMjJfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9WUywgVlBPT0ZGMSwgVDIyX0RFU0MsIFZQT09GRjFfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT1ZTLCBWUE9PRkYyLCBUMjJfREVTQywgVlBPT0ZGMl9ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFZQT1ZTLCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9WUywgVlBPKSwKKwkJU0lHX0VYUFJfUFRSKFZQT1ZTLCBWUE9PRkYxKSwKKwkJU0lHX0VYUFJfUFRSKFZQT1ZTLCBWUE9PRkYyKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFQyMiwgVlBPVlMsIFZQTyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFQyMiwgV0RUUlNUMSwgV0RUUlNUMSwgVDIyX0RFU0MpOworUElOX0RFQ0xfMihUMjIsIEdQSU9BQjIsIFZQT1ZTLCBXRFRSU1QxKTsKIEZVTkNfR1JPVVBfREVDTChXRFRSU1QxLCBUMjIpOwogCiAjZGVmaW5lIFIyMCAyMTkKICNkZWZpbmUgUjIwX0RFU0MJU0lHX0RFU0NfU0VUKFNDVUE4LCAzKQotU0lHX0VYUFJfREVDTChWUE9DTEssIFZQTywgUjIwX0RFU0MsIFZQT19ERVNDLCBDUlRfRFZPX0VOX0RFU0MpOwotU0lHX0VYUFJfREVDTChWUE9DTEssIFZQT09GRjEsIFIyMF9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFZQT0NMSywgVlBPT0ZGMiwgUjIwX0RFU0MsIFZQT09GRjJfREVTQywgQ1JUX0RWT19FTl9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTChWUE9DTEssIFNJR19FWFBSX1BUUihWUE9DTEssIFZQTyksCi0JCVNJR19FWFBSX1BUUihWUE9DTEssIFZQT09GRjEpLCBTSUdfRVhQUl9QVFIoVlBPQ0xLLCBWUE9PRkYyKSk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFdEVFJTVDIsIFdEVFJTVDIsIFIyMF9ERVNDKTsKLU1TX1BJTl9ERUNMKFIyMCwgR1BJT0FCMywgVlBPQ0xLLCBXRFRSU1QyKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFZQT0NMSywgVlBPLCBSMjBfREVTQywgVlBPX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9DTEssIFZQT09GRjEsIFIyMF9ERVNDLCBWUE9PRkYxX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShWUE9DTEssIFZQT09GRjIsIFIyMF9ERVNDLCBWUE9PRkYyX0RFU0MsIENSVF9EVk9fRU5fREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0woVlBPQ0xLLCBWUE8sCisJCVNJR19FWFBSX1BUUihWUE9DTEssIFZQTyksCisJCVNJR19FWFBSX1BUUihWUE9DTEssIFZQT09GRjEpLAorCQlTSUdfRVhQUl9QVFIoVlBPQ0xLLCBWUE9PRkYyKSk7CitTSUdfRVhQUl9MSVNUX0FMSUFTKFIyMCwgVlBPQ0xLLCBWUE8pOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShSMjAsIFdEVFJTVDIsIFdEVFJTVDIsIFIyMF9ERVNDKTsKK1BJTl9ERUNMXzIoUjIwLCBHUElPQUIzLCBWUE9DTEssIFdEVFJTVDIpOwogRlVOQ19HUk9VUF9ERUNMKFdEVFJTVDIsIFIyMCk7CiAKIEZVTkNfR1JPVVBfREVDTChWUE8sIFYyMCwgVTE5LCBSMTgsIFAxOCwgUjE5LCBXMjAsIFUyMCwgQUEyMCwgWTIwLCBBQjIwLApAQCAtMTY5OSw2NCArMTgwMiw2NCBAQCBGVU5DX0dST1VQX0RFQ0woVlBPLCBWMjAsIFUxOSwgUjE4LCBQMTgsIFIxOSwgVzIwLCBVMjAsIEFBMjAsIFkyMCwgQUIyMCwKICNkZWZpbmUgRVNQSV9ERVNDCVNJR19ERVNDX1NFVChIV19TVFJBUDEsIDI1KQogCiAjZGVmaW5lIEcyMSAyMjQKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRVNQSUQwLCBFU1BJLCBFU1BJX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMQUQwLCBMQUQwLCBTSUdfREVTQ19TRVQoU0NVQUMsIDApKTsKLU1TX1BJTl9ERUNMKEcyMSwgR1BJT0FDMCwgRVNQSUQwLCBMQUQwKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzIxLCBFU1BJRDAsIEVTUEksIEVTUElfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEcyMSwgTEFEMCwgTEFEMCwgU0lHX0RFU0NfU0VUKFNDVUFDLCAwKSk7CitQSU5fREVDTF8yKEcyMSwgR1BJT0FDMCwgRVNQSUQwLCBMQUQwKTsKIEZVTkNfR1JPVVBfREVDTChMQUQwLCBHMjEpOwogCiAjZGVmaW5lIEcyMCAyMjUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRVNQSUQxLCBFU1BJLCBFU1BJX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMQUQxLCBMQUQxLCBTSUdfREVTQ19TRVQoU0NVQUMsIDEpKTsKLU1TX1BJTl9ERUNMKEcyMCwgR1BJT0FDMSwgRVNQSUQxLCBMQUQxKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzIwLCBFU1BJRDEsIEVTUEksIEVTUElfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEcyMCwgTEFEMSwgTEFEMSwgU0lHX0RFU0NfU0VUKFNDVUFDLCAxKSk7CitQSU5fREVDTF8yKEcyMCwgR1BJT0FDMSwgRVNQSUQxLCBMQUQxKTsKIEZVTkNfR1JPVVBfREVDTChMQUQxLCBHMjApOwogCiAjZGVmaW5lIEQyMiAyMjYKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRVNQSUQyLCBFU1BJLCBFU1BJX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMQUQyLCBMQUQyLCBTSUdfREVTQ19TRVQoU0NVQUMsIDIpKTsKLU1TX1BJTl9ERUNMKEQyMiwgR1BJT0FDMiwgRVNQSUQyLCBMQUQyKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRDIyLCBFU1BJRDIsIEVTUEksIEVTUElfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEQyMiwgTEFEMiwgTEFEMiwgU0lHX0RFU0NfU0VUKFNDVUFDLCAyKSk7CitQSU5fREVDTF8yKEQyMiwgR1BJT0FDMiwgRVNQSUQyLCBMQUQyKTsKIEZVTkNfR1JPVVBfREVDTChMQUQyLCBEMjIpOwogCiAjZGVmaW5lIEUyMiAyMjcKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRVNQSUQzLCBFU1BJLCBFU1BJX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMQUQzLCBMQUQzLCBTSUdfREVTQ19TRVQoU0NVQUMsIDMpKTsKLU1TX1BJTl9ERUNMKEUyMiwgR1BJT0FDMywgRVNQSUQzLCBMQUQzKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRTIyLCBFU1BJRDMsIEVTUEksIEVTUElfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEUyMiwgTEFEMywgTEFEMywgU0lHX0RFU0NfU0VUKFNDVUFDLCAzKSk7CitQSU5fREVDTF8yKEUyMiwgR1BJT0FDMywgRVNQSUQzLCBMQUQzKTsKIEZVTkNfR1JPVVBfREVDTChMQUQzLCBFMjIpOwogCiAjZGVmaW5lIEMyMiAyMjgKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRVNQSUNLLCBFU1BJLCBFU1BJX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMQ0xLLCBMQ0xLLCBTSUdfREVTQ19TRVQoU0NVQUMsIDQpKTsKLU1TX1BJTl9ERUNMKEMyMiwgR1BJT0FDNCwgRVNQSUNLLCBMQ0xLKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQzIyLCBFU1BJQ0ssIEVTUEksIEVTUElfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEMyMiwgTENMSywgTENMSywgU0lHX0RFU0NfU0VUKFNDVUFDLCA0KSk7CitQSU5fREVDTF8yKEMyMiwgR1BJT0FDNCwgRVNQSUNLLCBMQ0xLKTsKIEZVTkNfR1JPVVBfREVDTChMQ0xLLCBDMjIpOwogCiAjZGVmaW5lIEYyMSAyMjkKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRVNQSUNTLCBFU1BJLCBFU1BJX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMRlJBTUUsIExGUkFNRSwgU0lHX0RFU0NfU0VUKFNDVUFDLCA1KSk7Ci1NU19QSU5fREVDTChGMjEsIEdQSU9BQzUsIEVTUElDUywgTEZSQU1FKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjIxLCBFU1BJQ1MsIEVTUEksIEVTUElfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEYyMSwgTEZSQU1FLCBMRlJBTUUsIFNJR19ERVNDX1NFVChTQ1VBQywgNSkpOworUElOX0RFQ0xfMihGMjEsIEdQSU9BQzUsIEVTUElDUywgTEZSQU1FKTsKIEZVTkNfR1JPVVBfREVDTChMRlJBTUUsIEYyMSk7CiAKICNkZWZpbmUgRjIyIDIzMAotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShFU1BJQUxULCBFU1BJLCBFU1BJX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShMU0lSUSwgTFNJUlEsIFNJR19ERVNDX1NFVChTQ1VBQywgNikpOwotTVNfUElOX0RFQ0woRjIyLCBHUElPQUM2LCBFU1BJQUxULCBMU0lSUSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEYyMiwgRVNQSUFMVCwgRVNQSSwgRVNQSV9ERVNDKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRjIyLCBMU0lSUSwgTFNJUlEsIFNJR19ERVNDX1NFVChTQ1VBQywgNikpOworUElOX0RFQ0xfMihGMjIsIEdQSU9BQzYsIEVTUElBTFQsIExTSVJRKTsKIEZVTkNfR1JPVVBfREVDTChMU0lSUSwgRjIyKTsKIAogI2RlZmluZSBHMjIgMjMxCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEVTUElSU1QsIEVTUEksIEVTUElfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKExQQ1JTVCwgTFBDUlNULCBTSUdfREVTQ19TRVQoU0NVQUMsIDcpKTsKLU1TX1BJTl9ERUNMKEcyMiwgR1BJT0FDNywgRVNQSVJTVCwgTFBDUlNUKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoRzIyLCBFU1BJUlNULCBFU1BJLCBFU1BJX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShHMjIsIExQQ1JTVCwgTFBDUlNULCBTSUdfREVTQ19TRVQoU0NVQUMsIDcpKTsKK1BJTl9ERUNMXzIoRzIyLCBHUElPQUM3LCBFU1BJUlNULCBMUENSU1QpOwogRlVOQ19HUk9VUF9ERUNMKExQQ1JTVCwgRzIyKTsKIAogRlVOQ19HUk9VUF9ERUNMKEVTUEksIEcyMSwgRzIwLCBEMjIsIEUyMiwgQzIyLCBGMjEsIEYyMiwgRzIyKTsKIAogI2RlZmluZSBBNyAyMzIKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVVNCMkFIRFAsIFVTQjJBSCwgU0lHX0RFU0NfU0VUKFNDVTkwLCAyOSkpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShVU0IyQUREUCwgVVNCMkFELCBTSUdfREVTQ19CSVQoU0NVOTAsIDI5LCAwKSk7Ci1NU19QSU5fREVDTF8oQTcsIFNJR19FWFBSX0xJU1RfUFRSKFVTQjJBSERQKSwgU0lHX0VYUFJfTElTVF9QVFIoVVNCMkFERFApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTcsIFVTQjJBSERQLCBVU0IyQUgsIFNJR19ERVNDX1NFVChTQ1U5MCwgMjkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoQTcsIFVTQjJBRERQLCBVU0IyQUQsIFNJR19ERVNDX0JJVChTQ1U5MCwgMjksIDApKTsKK1BJTl9ERUNMXyhBNywgU0lHX0VYUFJfTElTVF9QVFIoQTcsIFVTQjJBSERQKSwgU0lHX0VYUFJfTElTVF9QVFIoQTcsIFVTQjJBRERQKSk7CiAKICNkZWZpbmUgQTggMjMzCi1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFVTQjJBSEROLCBVU0IyQUgsIFNJR19ERVNDX1NFVChTQ1U5MCwgMjkpKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVVNCMkFERE4sIFVTQjJBRCwgU0lHX0RFU0NfQklUKFNDVTkwLCAyOSwgMCkpOwotTVNfUElOX0RFQ0xfKEE4LCBTSUdfRVhQUl9MSVNUX1BUUihVU0IyQUhETiksIFNJR19FWFBSX0xJU1RfUFRSKFVTQjJBREROKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEE4LCBVU0IyQUhETiwgVVNCMkFILCBTSUdfREVTQ19TRVQoU0NVOTAsIDI5KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEE4LCBVU0IyQURETiwgVVNCMkFELCBTSUdfREVTQ19CSVQoU0NVOTAsIDI5LCAwKSk7CitQSU5fREVDTF8oQTgsIFNJR19FWFBSX0xJU1RfUFRSKEE4LCBVU0IyQUhETiksIFNJR19FWFBSX0xJU1RfUFRSKEE4LCBVU0IyQURETikpOwogCiBGVU5DX0dST1VQX0RFQ0woVVNCMkFILCBBNywgQTgpOwogRlVOQ19HUk9VUF9ERUNMKFVTQjJBRCwgQTcsIEE4KTsKQEAgLTE3NjcsMjQgKzE4NzAsMjggQEAgRlVOQ19HUk9VUF9ERUNMKFVTQjJBRCwgQTcsIEE4KTsKICNkZWZpbmUgVVNCMkJIMl9ERVNDIHsgQVNQRUVEX0lQX1NDVSwgU0NVOTQsIEdFTk1BU0soMTQsIDEzKSwgMywgMCB9CiAKICNkZWZpbmUgQjYgMjM0Ci1TSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFVTQjExQkRQLCBVU0IxMUJISUQsIFVTQjExQkhJRF9ERVNDKTsKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVVNCMkJERFAsIFVTQjJCRCwgVVNCMkJEX0RFU0MpOwotU0lHX0VYUFJfREVDTChVU0IyQkhEUDEsIFVTQjJCSCwgVVNCMkJIMV9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVVNCMkJIRFAyLCBVU0IyQkgsIFVTQjJCSDJfREVTQyk7Ci1TSUdfRVhQUl9MSVNUX0RFQ0woVVNCMkJIRFAsIFNJR19FWFBSX1BUUihVU0IyQkhEUDEsIFVTQjJCSCksCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEI2LCBVU0IxMUJEUCwgVVNCMTFCSElELCBVU0IxMUJISURfREVTQyk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEI2LCBVU0IyQkREUCwgVVNCMkJELCBVU0IyQkRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShVU0IyQkhEUDEsIFVTQjJCSCwgVVNCMkJIMV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFVTQjJCSERQMiwgVVNCMkJILCBVU0IyQkgyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFVTQjJCSERQLCBVU0IyQkgsCisJCVNJR19FWFBSX1BUUihVU0IyQkhEUDEsIFVTQjJCSCksCiAJCVNJR19FWFBSX1BUUihVU0IyQkhEUDIsIFVTQjJCSCkpOwotTVNfUElOX0RFQ0xfKEI2LCBTSUdfRVhQUl9MSVNUX1BUUihVU0IxMUJEUCksIFNJR19FWFBSX0xJU1RfUFRSKFVTQjJCRERQKSwKLQkJU0lHX0VYUFJfTElTVF9QVFIoVVNCMkJIRFApKTsKK1NJR19FWFBSX0xJU1RfQUxJQVMoQjYsIFVTQjJCSERQLCBVU0IyQkgpOworUElOX0RFQ0xfKEI2LCBTSUdfRVhQUl9MSVNUX1BUUihCNiwgVVNCMTFCRFApLCBTSUdfRVhQUl9MSVNUX1BUUihCNiwgVVNCMkJERFApLAorCQlTSUdfRVhQUl9MSVNUX1BUUihCNiwgVVNCMkJIRFApKTsKIAogI2RlZmluZSBBNiAyMzUKLVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoVVNCMTFCRE4sIFVTQjExQkhJRCwgVVNCMTFCSElEX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShVU0IyQkROLCBVU0IyQkQsIFVTQjJCRF9ERVNDKTsKLVNJR19FWFBSX0RFQ0woVVNCMkJIRE4xLCBVU0IyQkgsIFVTQjJCSDFfREVTQyk7Ci1TSUdfRVhQUl9ERUNMKFVTQjJCSEROMiwgVVNCMkJILCBVU0IyQkgyX0RFU0MpOwotU0lHX0VYUFJfTElTVF9ERUNMKFVTQjJCSEROLCBTSUdfRVhQUl9QVFIoVVNCMkJIRE4xLCBVU0IyQkgpLAorU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBNiwgVVNCMTFCRE4sIFVTQjExQkhJRCwgVVNCMTFCSElEX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShBNiwgVVNCMkJETiwgVVNCMkJELCBVU0IyQkRfREVTQyk7CitTSUdfRVhQUl9ERUNMX1NJTkdMRShVU0IyQkhETjEsIFVTQjJCSCwgVVNCMkJIMV9ERVNDKTsKK1NJR19FWFBSX0RFQ0xfU0lOR0xFKFVTQjJCSEROMiwgVVNCMkJILCBVU0IyQkgyX0RFU0MpOworU0lHX0VYUFJfTElTVF9ERUNMKFVTQjJCSEROLCBVU0IyQkgsCisJCVNJR19FWFBSX1BUUihVU0IyQkhETjEsIFVTQjJCSCksCiAJCVNJR19FWFBSX1BUUihVU0IyQkhETjIsIFVTQjJCSCkpOwotTVNfUElOX0RFQ0xfKEE2LCBTSUdfRVhQUl9MSVNUX1BUUihVU0IxMUJETiksIFNJR19FWFBSX0xJU1RfUFRSKFVTQjJCRE4pLAotCQlTSUdfRVhQUl9MSVNUX1BUUihVU0IyQkhETikpOworU0lHX0VYUFJfTElTVF9BTElBUyhBNiwgVVNCMkJIRE4sIFVTQjJCSCk7CitQSU5fREVDTF8oQTYsIFNJR19FWFBSX0xJU1RfUFRSKEE2LCBVU0IxMUJETiksIFNJR19FWFBSX0xJU1RfUFRSKEE2LCBVU0IyQkROKSwKKwkJU0lHX0VYUFJfTElTVF9QVFIoQTYsIFVTQjJCSEROKSk7CiAKIEZVTkNfR1JPVVBfREVDTChVU0IxMUJISUQsIEI2LCBBNik7CiBGVU5DX0dST1VQX0RFQ0woVVNCMkJELCBCNiwgQTYpOwpAQCAtMjc0Miw2ICsyODQ5LDEwIEBAIHN0YXRpYyBpbnQgYXNwZWVkX2c1X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXNwZWVkX2c1X3BpbmN0cmxfb2ZfbWF0Y2hbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gImFzcGVlZCxhc3QyNTAwLXBpbmN0cmwiLCB9LAorCS8qCisJICogVGhlIGFzcGVlZCxnNS1waW5jdHJsIGNvbXBhdGlibGUgaGFzIGJlZW4gcmVtb3ZlZCB0aGUgZnJvbSB0aGUKKwkgKiBiaW5kaW5ncywgYnV0IGtlZXAgdGhlIG1hdGNoIGluIGNhc2Ugb2Ygb2xkIGRldmljZXRyZWVzLgorCSAqLwogCXsgLmNvbXBhdGlibGUgPSAiYXNwZWVkLGc1LXBpbmN0cmwiLCB9LAogCXsgfSwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3BpbmN0cmwtYXNwZWVkLWc2LmMgYi9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3BpbmN0cmwtYXNwZWVkLWc2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ4ZGRiNwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvcGluY3RybC1hc3BlZWQtZzYuYwpAQCAtMCwwICsxLDIzOTUgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCisvKiBDb3B5cmlnaHQgKEMpIDIwMTkgSUJNIENvcnAuICovCisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9waW5jdHJsL3BpbmN0cmwuaD4KKyNpbmNsdWRlIDxsaW51eC9waW5jdHJsL3Bpbm11eC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKyNpbmNsdWRlICIuLi9jb3JlLmgiCisjaW5jbHVkZSAiLi4vcGluY3RybC11dGlscy5oIgorI2luY2x1ZGUgInBpbmN0cmwtYXNwZWVkLmgiCisKKyNkZWZpbmUgU0NVNDAwCQkweDQwMCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMSAgKi8KKyNkZWZpbmUgU0NVNDA0CQkweDQwNCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMiAgKi8KKyNkZWZpbmUgU0NVNDEwCQkweDQxMCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjNCAgKi8KKyNkZWZpbmUgU0NVNDE0CQkweDQxNCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjNSAgKi8KKyNkZWZpbmUgU0NVNDE4CQkweDQxOCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjNiAgKi8KKyNkZWZpbmUgU0NVNDFDCQkweDQxQyAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjNyAgKi8KKyNkZWZpbmUgU0NVNDMwCQkweDQzMCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjOCAgKi8KKyNkZWZpbmUgU0NVNDM0CQkweDQzNCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjOSAgKi8KKyNkZWZpbmUgU0NVNDM4CQkweDQzOCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMTAgKi8KKyNkZWZpbmUgU0NVNDUwCQkweDQ1MCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMTQgKi8KKyNkZWZpbmUgU0NVNEIwCQkweDRCMCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMTcgKi8KKyNkZWZpbmUgU0NVNEI0CQkweDRCNCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMTggKi8KKyNkZWZpbmUgU0NVNEI4CQkweDRCOCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMTkgKi8KKyNkZWZpbmUgU0NVNEJDCQkweDRCQyAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMjAgKi8KKyNkZWZpbmUgU0NVNEQ0CQkweDRENCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMjIgKi8KKyNkZWZpbmUgU0NVNEQ4CQkweDREOCAvKiBNdWx0aS1mdW5jdGlvbiBQaW4gQ29udHJvbCAjMjMgKi8KKyNkZWZpbmUgU0NVNTAwCQkweDUwMCAvKiBIYXJkd2FyZSBTdHJhcCAxICovCisjZGVmaW5lIFNDVTUxMAkJMHg1MTAgLyogSGFyZHdhcmUgU3RyYXAgMiAqLworI2RlZmluZSBTQ1U2OTQJCTB4Njk0IC8qIE11bHRpLWZ1bmN0aW9uIFBpbiBDb250cm9sICMyNSAqLworCisjZGVmaW5lIEFTUEVFRF9HNl9OUl9QSU5TIDI0OAorCisjZGVmaW5lIE0yNCAwCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhNMjQsIE1EQzMsIE1ESU8zLCBTSUdfREVTQ19TRVQoU0NVNDEwLCAwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhNMjQsIFNDTDExLCBJMkMxMSwgU0lHX0RFU0NfU0VUKFNDVTRCMCwgMCkpOworUElOX0RFQ0xfMihNMjQsIEdQSU9BMCwgTURDMywgU0NMMTEpOworCisjZGVmaW5lIE0yNSAxCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhNMjUsIE1ESU8zLCBNRElPMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coTTI1LCBTREExMSwgSTJDMTEsIFNJR19ERVNDX1NFVChTQ1U0QjAsIDEpKTsKK1BJTl9ERUNMXzIoTTI1LCBHUElPQTEsIE1ESU8zLCBTREExMSk7CisKK0ZVTkNfR1JPVVBfREVDTChNRElPMywgTTI0LCBNMjUpOworRlVOQ19HUk9VUF9ERUNMKEkyQzExLCBNMjQsIE0yNSk7CisKKyNkZWZpbmUgTDI2IDIKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEwyNiwgTURDNCwgTURJTzQsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEwyNiwgU0NMMTIsIEkyQzEyLCBTSUdfREVTQ19TRVQoU0NVNEIwLCAyKSk7CitQSU5fREVDTF8yKEwyNiwgR1BJT0EyLCBNREM0LCBTQ0wxMik7CisKKyNkZWZpbmUgSzI0IDMKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEsyNCwgTURJTzQsIE1ESU80LCBTSUdfREVTQ19TRVQoU0NVNDEwLCAzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhLMjQsIFNEQTEyLCBJMkMxMiwgU0lHX0RFU0NfU0VUKFNDVTRCMCwgMykpOworUElOX0RFQ0xfMihLMjQsIEdQSU9BMywgTURJTzQsIFNEQTEyKTsKKworRlVOQ19HUk9VUF9ERUNMKE1ESU80LCBMMjYsIEsyNCk7CitGVU5DX0dST1VQX0RFQ0woSTJDMTIsIEwyNiwgSzI0KTsKKworI2RlZmluZSBLMjYgNAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coSzI2LCBNQUNMSU5LMSwgTUFDTElOSzEsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDQpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEsyNiwgU0NMMTMsIEkyQzEzLCBTSUdfREVTQ19TRVQoU0NVNEIwLCA0KSk7CitQSU5fREVDTF8yKEsyNiwgR1BJT0E0LCBNQUNMSU5LMSwgU0NMMTMpOworRlVOQ19HUk9VUF9ERUNMKE1BQ0xJTksxLCBLMjYpOworCisjZGVmaW5lIEwyNCA1CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhMMjQsIE1BQ0xJTksyLCBNQUNMSU5LMiwgU0lHX0RFU0NfU0VUKFNDVTQxMCwgNSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coTDI0LCBTREExMywgSTJDMTMsIFNJR19ERVNDX1NFVChTQ1U0QjAsIDUpKTsKK1BJTl9ERUNMXzIoTDI0LCBHUElPQTUsIE1BQ0xJTksyLCBTREExMyk7CitGVU5DX0dST1VQX0RFQ0woTUFDTElOSzIsIEwyNCk7CisKK0ZVTkNfR1JPVVBfREVDTChJMkMxMywgSzI2LCBMMjQpOworCisjZGVmaW5lIEwyMyA2CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhMMjMsIE1BQ0xJTkszLCBNQUNMSU5LMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coTDIzLCBTQ0wxNCwgSTJDMTQsIFNJR19ERVNDX1NFVChTQ1U0QjAsIDYpKTsKK1BJTl9ERUNMXzIoTDIzLCBHUElPQTYsIE1BQ0xJTkszLCBTQ0wxNCk7CitGVU5DX0dST1VQX0RFQ0woTUFDTElOSzMsIEwyMyk7CisKKyNkZWZpbmUgSzI1IDcKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEsyNSwgTUFDTElOSzQsIE1BQ0xJTks0LCBTSUdfREVTQ19TRVQoU0NVNDEwLCA3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhLMjUsIFNEQTE0LCBTREExNCwgU0lHX0RFU0NfU0VUKFNDVTRCMCwgNykpOworUElOX0RFQ0xfMihLMjUsIEdQSU9BNywgTUFDTElOSzQsIFNEQTE0KTsKK0ZVTkNfR1JPVVBfREVDTChNQUNMSU5LNCwgSzI1KTsKKworRlVOQ19HUk9VUF9ERUNMKEkyQzE0LCBMMjMsIEsyNSk7CisKKyNkZWZpbmUgSjI2IDgKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEoyNiwgU0FMVDEsIFNBTFQxLCBTSUdfREVTQ19TRVQoU0NVNDEwLCA4KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhKMjYsIExIQUQwLCBMUENIQywgU0lHX0RFU0NfU0VUKFNDVTRCMCwgOCkpOworUElOX0RFQ0xfMihKMjYsIEdQSU9CMCwgU0FMVDEsIExIQUQwKTsKK0ZVTkNfR1JPVVBfREVDTChTQUxUMSwgSjI2KTsKKworI2RlZmluZSBLMjMgOQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coSzIzLCBTQUxUMiwgU0FMVDIsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEsyMywgTEhBRDEsIExQQ0hDLCBTSUdfREVTQ19TRVQoU0NVNEIwLCA5KSk7CitQSU5fREVDTF8yKEsyMywgR1BJT0IxLCBTQUxUMiwgTEhBRDEpOworRlVOQ19HUk9VUF9ERUNMKFNBTFQyLCBLMjMpOworCisjZGVmaW5lIEgyNiAxMAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coSDI2LCBTQUxUMywgU0FMVDMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDEwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhIMjYsIExIQUQyLCBMUENIQywgU0lHX0RFU0NfU0VUKFNDVTRCMCwgMTApKTsKK1BJTl9ERUNMXzIoSDI2LCBHUElPQjIsIFNBTFQzLCBMSEFEMik7CitGVU5DX0dST1VQX0RFQ0woU0FMVDMsIEgyNik7CisKKyNkZWZpbmUgSjI1IDExCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhKMjUsIFNBTFQ0LCBTQUxUNCwgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMTEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEoyNSwgTEhBRDMsIExQQ0hDLCBTSUdfREVTQ19TRVQoU0NVNEIwLCAxMSkpOworUElOX0RFQ0xfMihKMjUsIEdQSU9CMywgU0FMVDQsIExIQUQzKTsKK0ZVTkNfR1JPVVBfREVDTChTQUxUNCwgSjI1KTsKKworI2RlZmluZSBKMjMgMTIKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEoyMywgTURDMiwgTURJTzIsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDEyKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhKMjMsIExIQ0xLLCBMUENIQywgU0lHX0RFU0NfU0VUKFNDVTRCMCwgMTIpKTsKK1BJTl9ERUNMXzIoSjIzLCBHUElPQjQsIE1EQzIsIExIQ0xLKTsKKworI2RlZmluZSBHMjYgMTMKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEcyNiwgTURJTzIsIE1ESU8yLCBTSUdfREVTQ19TRVQoU0NVNDEwLCAxMykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRzI2LCBMSEZSQU1FLCBMUENIQywgU0lHX0RFU0NfU0VUKFNDVTRCMCwgMTMpKTsKK1BJTl9ERUNMXzIoRzI2LCBHUElPQjUsIE1ESU8yLCBMSEZSQU1FKTsKKworRlVOQ19HUk9VUF9ERUNMKE1ESU8yLCBKMjMsIEcyNik7CisKKyNkZWZpbmUgSDI1IDE0CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhIMjUsIFRYRDQsIFRYRDQsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDE0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhIMjUsIExIU0lSUSwgTEhTSVJRLCBTSUdfREVTQ19TRVQoU0NVNEIwLCAxNCkpOworUElOX0RFQ0xfMihIMjUsIEdQSU9CNiwgVFhENCwgTEhTSVJRKTsKK0ZVTkNfR1JPVVBfREVDTChUWEQ0LCBIMjUpOworRlVOQ19HUk9VUF9ERUNMKExIU0lSUSwgSDI1KTsKKworI2RlZmluZSBKMjQgMTUKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEoyNCwgUlhENCwgUlhENCwgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMTUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEoyNCwgTEhSU1QsIExQQ0hDLCBTSUdfREVTQ19TRVQoU0NVNEIwLCAxNSkpOworUElOX0RFQ0xfMihKMjQsIEdQSU9CNywgUlhENCwgTEhSU1QpOworRlVOQ19HUk9VUF9ERUNMKFJYRDQsIEoyNCk7CisKK0ZVTkNfR1JPVVBfREVDTChMUENIQywgSjI2LCBLMjMsIEgyNiwgSjI1LCBKMjMsIEcyNiwgSDI1LCBKMjQpOworCisjZGVmaW5lIEgyNCAxNgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coSDI0LCBSR01JSTNUWENLLCBSR01JSTMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDE2KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUxMCwgMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coSDI0LCBSTUlJM1JDTEtPLCBSTUlJMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMTYpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDApKTsKK1BJTl9ERUNMXzIoSDI0LCBHUElPQzAsIFJHTUlJM1RYQ0ssIFJNSUkzUkNMS08pOworCisjZGVmaW5lIEoyMiAxNworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coSjIyLCBSR01JSTNUWENUTCwgUkdNSUkzLCBTSUdfREVTQ19TRVQoU0NVNDEwLCAxNyksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEoyMiwgUk1JSTNUWEVOLCBSTUlJMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMTcpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDApKTsKK1BJTl9ERUNMXzIoSjIyLCBHUElPQzEsIFJHTUlJM1RYQ1RMLCBSTUlJM1RYRU4pOworCisjZGVmaW5lIEgyMiAxOAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coSDIyLCBSR01JSTNUWEQwLCBSR01JSTMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDE4KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUxMCwgMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coSDIyLCBSTUlJM1RYRDAsIFJNSUkzLCBTSUdfREVTQ19TRVQoU0NVNDEwLCAxOCksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUxMCwgMCkpOworUElOX0RFQ0xfMihIMjIsIEdQSU9DMiwgUkdNSUkzVFhEMCwgUk1JSTNUWEQwKTsKKworI2RlZmluZSBIMjMgMTkKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEgyMywgUkdNSUkzVFhEMSwgUkdNSUkzLCBTSUdfREVTQ19TRVQoU0NVNDEwLCAxOSksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEgyMywgUk1JSTNUWEQxLCBSTUlJMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMTkpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDApKTsKK1BJTl9ERUNMXzIoSDIzLCBHUElPQzMsIFJHTUlJM1RYRDEsIFJNSUkzVFhEMSk7CisKKyNkZWZpbmUgRzIyIDIwCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhHMjIsIFJHTUlJM1RYRDIsIFJHTUlJMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMjApLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCAwKSk7CitQSU5fREVDTF8xKEcyMiwgR1BJT0M0LCBSR01JSTNUWEQyKTsKKworI2RlZmluZSBGMjIgMjEKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEYyMiwgUkdNSUkzVFhEMywgUkdNSUkzLCBTSUdfREVTQ19TRVQoU0NVNDEwLCAyMSksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDApKTsKK1BJTl9ERUNMXzEoRjIyLCBHUElPQzUsIFJHTUlJM1RYRDMpOworCisjZGVmaW5lIEcyMyAyMgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRzIzLCBSR01JSTNSWENLLCBSR01JSTMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDIyKSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUxMCwgMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRzIzLCBSTUlJM1JDTEtJLCBSTUlJMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMjIpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDApKTsKK1BJTl9ERUNMXzIoRzIzLCBHUElPQzYsIFJHTUlJM1JYQ0ssIFJNSUkzUkNMS0kpOworCisjZGVmaW5lIEcyNCAyMworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRzI0LCBSR01JSTNSWENUTCwgUkdNSUkzLCBTSUdfREVTQ19TRVQoU0NVNDEwLCAyMyksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDApKTsKK1BJTl9ERUNMXzEoRzI0LCBHUElPQzcsIFJHTUlJM1JYQ1RMKTsKKworI2RlZmluZSBGMjMgMjQKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEYyMywgUkdNSUkzUlhEMCwgUkdNSUkzLCBTSUdfREVTQ19TRVQoU0NVNDEwLCAyNCksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEYyMywgUk1JSTNSWEQwLCBSTUlJMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMjQpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDApKTsKK1BJTl9ERUNMXzIoRjIzLCBHUElPRDAsIFJHTUlJM1JYRDAsIFJNSUkzUlhEMCk7CisKKyNkZWZpbmUgRjI2IDI1CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhGMjYsIFJHTUlJM1JYRDEsIFJHTUlJMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMjUpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCAwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhGMjYsIFJNSUkzUlhEMSwgUk1JSTMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDI1KSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTEwLCAwKSk7CitQSU5fREVDTF8yKEYyNiwgR1BJT0QxLCBSR01JSTNSWEQxLCBSTUlJM1JYRDEpOworCisjZGVmaW5lIEYyNSAyNgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRjI1LCBSR01JSTNSWEQyLCBSR01JSTMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDI2KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUxMCwgMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRjI1LCBSTUlJM0NSU0RWLCBSTUlJMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMjYpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDApKTsKK1BJTl9ERUNMXzIoRjI1LCBHUElPRDIsIFJHTUlJM1JYRDIsIFJNSUkzQ1JTRFYpOworCisjZGVmaW5lIEUyNiAyNworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTI2LCBSR01JSTNSWEQzLCBSR01JSTMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDI3KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUxMCwgMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTI2LCBSTUlJM1JYRVIsIFJNSUkzLCBTSUdfREVTQ19TRVQoU0NVNDEwLCAyNyksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUxMCwgMCkpOworUElOX0RFQ0xfMihFMjYsIEdQSU9EMywgUkdNSUkzUlhEMywgUk1JSTNSWEVSKTsKKworRlVOQ19HUk9VUF9ERUNMKFJHTUlJMywgSDI0LCBKMjIsIEgyMiwgSDIzLCBHMjIsIEYyMiwgRzIzLCBHMjQsIEYyMywgRjI2LCBGMjUsCisJCUUyNik7CitGVU5DX0dST1VQX0RFQ0woUk1JSTMsIEgyNCwgSjIyLCBIMjIsIEgyMywgRzIzLCBGMjMsIEYyNiwgRjI1LCBFMjYpOworCisjZGVmaW5lIEYyNCAyOAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRjI0LCBOQ1RTMywgTkNUUzMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDI4KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhGMjQsIFJHTUlJNFRYQ0ssIFJHTUlJNCwgU0lHX0RFU0NfU0VUKFNDVTRCMCwgMjgpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCAxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhGMjQsIFJNSUk0UkNMS08sIFJNSUk0LCBTSUdfREVTQ19TRVQoU0NVNEIwLCAyOCksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUxMCwgMSkpOworUElOX0RFQ0xfMyhGMjQsIEdQSU9ENCwgTkNUUzMsIFJHTUlJNFRYQ0ssIFJNSUk0UkNMS08pOworRlVOQ19HUk9VUF9ERUNMKE5DVFMzLCBGMjQpOworCisjZGVmaW5lIEUyMyAyOQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTIzLCBORENEMywgTkRDRDMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDI5KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFMjMsIFJHTUlJNFRYQ1RMLCBSR01JSTQsIFNJR19ERVNDX1NFVChTQ1U0QjAsIDI5KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUxMCwgMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTIzLCBSTUlJNFRYRU4sIFJNSUk0LCBTSUdfREVTQ19TRVQoU0NVNEIwLCAyOSksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUxMCwgMSkpOworUElOX0RFQ0xfMyhFMjMsIEdQSU9ENSwgTkRDRDMsIFJHTUlJNFRYQ1RMLCBSTUlJNFRYRU4pOworRlVOQ19HUk9VUF9ERUNMKE5EQ0QzLCBFMjMpOworCisjZGVmaW5lIEUyNCAzMAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTI0LCBORFNSMywgTkRTUjMsIFNJR19ERVNDX1NFVChTQ1U0MTAsIDMwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFMjQsIFJHTUlJNFRYRDAsIFJHTUlJNCwgU0lHX0RFU0NfU0VUKFNDVTRCMCwgMzApLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCAxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFMjQsIFJNSUk0VFhEMCwgUk1JSTQsIFNJR19ERVNDX1NFVChTQ1U0QjAsIDMwKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTEwLCAxKSk7CitQSU5fREVDTF8zKEUyNCwgR1BJT0Q2LCBORFNSMywgUkdNSUk0VFhEMCwgUk1JSTRUWEQwKTsKK0ZVTkNfR1JPVVBfREVDTChORFNSMywgRTI0KTsKKworI2RlZmluZSBFMjUgMzEKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUyNSwgTlJJMywgTlJJMywgU0lHX0RFU0NfU0VUKFNDVTQxMCwgMzEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUyNSwgUkdNSUk0VFhEMSwgUkdNSUk0LCBTSUdfREVTQ19TRVQoU0NVNEIwLCAzMSksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUyNSwgUk1JSTRUWEQxLCBSTUlJNCwgU0lHX0RFU0NfU0VUKFNDVTRCMCwgMzEpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDEpKTsKK1BJTl9ERUNMXzMoRTI1LCBHUElPRDcsIE5SSTMsIFJHTUlJNFRYRDEsIFJNSUk0VFhEMSk7CitGVU5DX0dST1VQX0RFQ0woTlJJMywgRTI1KTsKKworI2RlZmluZSBEMjYgMzIKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQyNiwgTkRUUjMsIE5EVFIzLCBTSUdfREVTQ19TRVQoU0NVNDE0LCAwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMjYsIFJHTUlJNFRYRDIsIFJHTUlJNCwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMCksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDEpKTsKK1BJTl9ERUNMXzIoRDI2LCBHUElPRTAsIE5EVFIzLCBSR01JSTRUWEQyKTsKK0ZVTkNfR1JPVVBfREVDTChORFRSMywgRDI2KTsKKworI2RlZmluZSBEMjQgMzMKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQyNCwgTlJUUzMsIE5SVFMzLCBTSUdfREVTQ19TRVQoU0NVNDE0LCAxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMjQsIFJHTUlJNFRYRDMsIFJHTUlJNCwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMSksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDEpKTsKK1BJTl9ERUNMXzIoRDI0LCBHUElPRTEsIE5SVFMzLCBSR01JSTRUWEQzKTsKK0ZVTkNfR1JPVVBfREVDTChOUlRTMywgRDI0KTsKKworI2RlZmluZSBDMjUgMzQKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEMyNSwgTkNUUzQsIE5DVFM0LCBTSUdfREVTQ19TRVQoU0NVNDE0LCAyKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDMjUsIFJHTUlJNFJYQ0ssIFJHTUlJNCwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMiksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEMyNSwgUk1JSTRSQ0xLSSwgUk1JSTQsIFNJR19ERVNDX1NFVChTQ1U0QjQsIDIpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDEpKTsKK1BJTl9ERUNMXzMoQzI1LCBHUElPRTIsIE5DVFM0LCBSR01JSTRSWENLLCBSTUlJNFJDTEtJKTsKK0ZVTkNfR1JPVVBfREVDTChOQ1RTNCwgQzI1KTsKKworI2RlZmluZSBDMjYgMzUKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEMyNiwgTkRDRDQsIE5EQ0Q0LCBTSUdfREVTQ19TRVQoU0NVNDE0LCAzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDMjYsIFJHTUlJNFJYQ1RMLCBSR01JSTQsIFNJR19ERVNDX1NFVChTQ1U0QjQsIDMpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCAxKSk7CitQSU5fREVDTF8yKEMyNiwgR1BJT0UzLCBORENENCwgUkdNSUk0UlhDVEwpOworRlVOQ19HUk9VUF9ERUNMKE5EQ0Q0LCBDMjYpOworCisjZGVmaW5lIEMyNCAzNgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQzI0LCBORFNSNCwgTkRTUjQsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDQpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEMyNCwgUkdNSUk0UlhEMCwgUkdNSUk0LCBTSUdfREVTQ19TRVQoU0NVNEI0LCA0KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUxMCwgMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQzI0LCBSTUlJNFJYRDAsIFJNSUk0LCBTSUdfREVTQ19TRVQoU0NVNEI0LCA0KSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTEwLCAxKSk7CitQSU5fREVDTF8zKEMyNCwgR1BJT0U0LCBORFNSNCwgUkdNSUk0UlhEMCwgUk1JSTRSWEQwKTsKK0ZVTkNfR1JPVVBfREVDTChORFNSNCwgQzI0KTsKKworI2RlZmluZSBCMjYgMzcKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIyNiwgTlJJNCwgTlJJNCwgU0lHX0RFU0NfU0VUKFNDVTQxNCwgNSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQjI2LCBSR01JSTRSWEQxLCBSR01JSTQsIFNJR19ERVNDX1NFVChTQ1U0QjQsIDUpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCAxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhCMjYsIFJNSUk0UlhEMSwgUk1JSTQsIFNJR19ERVNDX1NFVChTQ1U0QjQsIDUpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDEpKTsKK1BJTl9ERUNMXzMoQjI2LCBHUElPRTUsIE5SSTQsIFJHTUlJNFJYRDEsIFJNSUk0UlhEMSk7CitGVU5DX0dST1VQX0RFQ0woTlJJNCwgQjI2KTsKKworI2RlZmluZSBCMjUgMzgKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIyNSwgTkRUUjQsIE5EVFI0LCBTSUdfREVTQ19TRVQoU0NVNDE0LCA2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhCMjUsIFJHTUlJNFJYRDIsIFJHTUlJNCwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgNiksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIyNSwgUk1JSTRDUlNEViwgUk1JSTQsIFNJR19ERVNDX1NFVChTQ1U0QjQsIDYpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDEpKTsKK1BJTl9ERUNMXzMoQjI1LCBHUElPRTYsIE5EVFI0LCBSR01JSTRSWEQyLCBSTUlJNENSU0RWKTsKK0ZVTkNfR1JPVVBfREVDTChORFRSNCwgQjI1KTsKKworI2RlZmluZSBCMjQgMzkKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIyNCwgTlJUUzQsIE5SVFM0LCBTSUdfREVTQ19TRVQoU0NVNDE0LCA3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhCMjQsIFJHTUlJNFJYRDMsIFJHTUlJNCwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgNyksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIyNCwgUk1JSTRSWEVSLCBSTUlJNCwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgNyksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUxMCwgMSkpOworUElOX0RFQ0xfMyhCMjQsIEdQSU9FNywgTlJUUzQsIFJHTUlJNFJYRDMsIFJNSUk0UlhFUik7CitGVU5DX0dST1VQX0RFQ0woTlJUUzQsIEIyNCk7CisKK0ZVTkNfR1JPVVBfREVDTChSR01JSTQsIEYyNCwgRTIzLCBFMjQsIEUyNSwgRDI2LCBEMjQsIEMyNSwgQzI2LCBDMjQsIEIyNiwgQjI1LAorCQlCMjQpOworRlVOQ19HUk9VUF9ERUNMKFJNSUk0LCBGMjQsIEUyMywgRTI0LCBFMjUsIEMyNSwgQzI0LCBCMjYsIEIyNSwgQjI0KTsKKworI2RlZmluZSBEMjIgNDAKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQyMiwgU0QxQ0xLLCBTRDEsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEQyMiwgUFdNOCwgUFdNOEcwLCBQV004LCBTSUdfREVTQ19TRVQoU0NVNDE0LCA4KSk7CitQSU5fREVDTF8yKEQyMiwgR1BJT0YwLCBTRDFDTEssIFBXTTgpOworR1JPVVBfREVDTChQV004RzAsIEQyMik7CisKKyNkZWZpbmUgRTIyIDQxCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFMjIsIFNEMUNNRCwgU0QxLCBTSUdfREVTQ19TRVQoU0NVNDE0LCA5KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhFMjIsIFBXTTksIFBXTTlHMCwgUFdNOSwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgOSkpOworUElOX0RFQ0xfMihFMjIsIEdQSU9GMSwgU0QxQ01ELCBQV005KTsKK0dST1VQX0RFQ0woUFdNOUcwLCBFMjIpOworCisjZGVmaW5lIEQyMyA0MgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRDIzLCBTRDFEQVQwLCBTRDEsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDEwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhEMjMsIFBXTTEwLCBQV00xMEcwLCBQV00xMCwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMTApKTsKK1BJTl9ERUNMXzIoRDIzLCBHUElPRjIsIFNEMURBVDAsIFBXTTEwKTsKK0dST1VQX0RFQ0woUFdNMTBHMCwgRDIzKTsKKworI2RlZmluZSBDMjMgNDMKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEMyMywgU0QxREFUMSwgU0QxLCBTSUdfREVTQ19TRVQoU0NVNDE0LCAxMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoQzIzLCBQV00xMSwgUFdNMTFHMCwgUFdNMTEsIFNJR19ERVNDX1NFVChTQ1U0QjQsIDExKSk7CitQSU5fREVDTF8yKEMyMywgR1BJT0YzLCBTRDFEQVQxLCBQV00xMSk7CitHUk9VUF9ERUNMKFBXTTExRzAsIEMyMyk7CisKKyNkZWZpbmUgQzIyIDQ0CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDMjIsIFNEMURBVDIsIFNEMSwgU0lHX0RFU0NfU0VUKFNDVTQxNCwgMTIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEMyMiwgUFdNMTIsIFBXTTEyRzAsIFBXTTEyLCBTSUdfREVTQ19TRVQoU0NVNEI0LCAxMikpOworUElOX0RFQ0xfMihDMjIsIEdQSU9GNCwgU0QxREFUMiwgUFdNMTIpOworR1JPVVBfREVDTChQV00xMkcwLCBDMjIpOworCisjZGVmaW5lIEEyNSA0NQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQTI1LCBTRDFEQVQzLCBTRDEsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDEzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBMjUsIFBXTTEzLCBQV00xM0cwLCBQV00xMywgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMTMpKTsKK1BJTl9ERUNMXzIoQTI1LCBHUElPRjUsIFNEMURBVDMsIFBXTTEzKTsKK0dST1VQX0RFQ0woUFdNMTNHMCwgQTI1KTsKKworI2RlZmluZSBBMjQgNDYKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEEyNCwgU0QxQ0QsIFNEMSwgU0lHX0RFU0NfU0VUKFNDVTQxNCwgMTQpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEEyNCwgUFdNMTQsIFBXTTE0RzAsIFBXTTE0LCBTSUdfREVTQ19TRVQoU0NVNEI0LCAxNCkpOworUElOX0RFQ0xfMihBMjQsIEdQSU9GNiwgU0QxQ0QsIFBXTTE0KTsKK0dST1VQX0RFQ0woUFdNMTRHMCwgQTI0KTsKKworI2RlZmluZSBBMjMgNDcKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEEyMywgU0QxV1AsIFNEMSwgU0lHX0RFU0NfU0VUKFNDVTQxNCwgMTUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEEyMywgUFdNMTUsIFBXTTE1RzAsIFBXTTE1LCBTSUdfREVTQ19TRVQoU0NVNEI0LCAxNSkpOworUElOX0RFQ0xfMihBMjMsIEdQSU9GNywgU0QxV1AsIFBXTTE1KTsKK0dST1VQX0RFQ0woUFdNMTVHMCwgQTIzKTsKKworRlVOQ19HUk9VUF9ERUNMKFNEMSwgRDIyLCBFMjIsIEQyMywgQzIzLCBDMjIsIEEyNSwgQTI0LCBBMjMpOworCisjZGVmaW5lIEUyMSA0OAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTIxLCBUWEQ2LCBVQVJUNiwgU0lHX0RFU0NfU0VUKFNDVTQxNCwgMTYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUyMSwgU0QyQ0xLLCBTRDIsIFNJR19ERVNDX1NFVChTQ1U0QjQsIDE2KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTQ1MCwgMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoRTIxLCBTQUxUOSwgU0FMVDlHMCwgU0FMVDksIFNJR19ERVNDX1NFVChTQ1U2OTQsIDE2KSk7CitQSU5fREVDTF8zKEUyMSwgR1BJT0cwLCBUWEQ2LCBTRDJDTEssIFNBTFQ5KTsKK0dST1VQX0RFQ0woU0FMVDlHMCwgRTIxKTsKKworI2RlZmluZSBCMjIgNDkKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIyMiwgUlhENiwgVUFSVDYsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDE3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhCMjIsIFNEMkNNRCwgU0QyLCBTSUdfREVTQ19TRVQoU0NVNEI0LCAxNyksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U0NTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEIyMiwgU0FMVDEwLCBTQUxUMTBHMCwgU0FMVDEwLAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMTcpKTsKK1BJTl9ERUNMXzMoQjIyLCBHUElPRzEsIFJYRDYsIFNEMkNNRCwgU0FMVDEwKTsKK0dST1VQX0RFQ0woU0FMVDEwRzAsIEIyMik7CisKK0ZVTkNfR1JPVVBfREVDTChVQVJUNiwgRTIxLCBCMjIpOworCisjZGVmaW5lIEMyMSA1MAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQzIxLCBUWEQ3LCBVQVJUNywgU0lHX0RFU0NfU0VUKFNDVTQxNCwgMTgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEMyMSwgU0QyREFUMCwgU0QyLCBTSUdfREVTQ19TRVQoU0NVNEI0LCAxOCksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U0NTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEMyMSwgU0FMVDExLCBTQUxUMTFHMCwgU0FMVDExLAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMTgpKTsKK1BJTl9ERUNMXzMoQzIxLCBHUElPRzIsIFRYRDcsIFNEMkRBVDAsIFNBTFQxMSk7CitHUk9VUF9ERUNMKFNBTFQxMUcwLCBDMjEpOworCisjZGVmaW5lIEEyMiA1MQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQTIyLCBSWEQ3LCBVQVJUNywgU0lHX0RFU0NfU0VUKFNDVTQxNCwgMTkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEEyMiwgU0QyREFUMSwgU0QyLCBTSUdfREVTQ19TRVQoU0NVNEI0LCAxOSksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U0NTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEEyMiwgU0FMVDEyLCBTQUxUMTJHMCwgU0FMVDEyLAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMTkpKTsKK1BJTl9ERUNMXzMoQTIyLCBHUElPRzMsIFJYRDcsIFNEMkRBVDEsIFNBTFQxMik7CitHUk9VUF9ERUNMKFNBTFQxMkcwLCBBMjIpOworCitGVU5DX0dST1VQX0RFQ0woVUFSVDcsIEMyMSwgQTIyKTsKKworI2RlZmluZSBBMjEgNTIKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEEyMSwgVFhEOCwgVUFSVDgsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDIwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBMjEsIFNEMkRBVDIsIFNEMiwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMjApLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNDUwLCAxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBMjEsIFNBTFQxMywgU0FMVDEzRzAsIFNBTFQxMywKKwkJCVNJR19ERVNDX1NFVChTQ1U2OTQsIDIwKSk7CitQSU5fREVDTF8zKEEyMSwgR1BJT0c0LCBUWEQ4LCBTRDJEQVQyLCBTQUxUMTMpOworR1JPVVBfREVDTChTQUxUMTNHMCwgQTIxKTsKKworI2RlZmluZSBFMjAgNTMKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUyMCwgUlhEOCwgVUFSVDgsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDIxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFMjAsIFNEMkRBVDMsIFNEMiwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMjEpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNDUwLCAxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhFMjAsIFNBTFQxNCwgU0FMVDE0RzAsIFNBTFQxNCwKKwkJCVNJR19ERVNDX1NFVChTQ1U2OTQsIDIxKSk7CitQSU5fREVDTF8zKEUyMCwgR1BJT0c1LCBSWEQ4LCBTRDJEQVQzLCBTQUxUMTQpOworR1JPVVBfREVDTChTQUxUMTRHMCwgRTIwKTsKKworRlVOQ19HUk9VUF9ERUNMKFVBUlQ4LCBBMjEsIEUyMCk7CisKKyNkZWZpbmUgRDIxIDU0CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMjEsIFRYRDksIFVBUlQ5LCBTSUdfREVTQ19TRVQoU0NVNDE0LCAyMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRDIxLCBTRDJDRCwgU0QyLCBTSUdfREVTQ19TRVQoU0NVNEI0LCAyMiksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U0NTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEQyMSwgU0FMVDE1LCBTQUxUMTVHMCwgU0FMVDE1LAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMjIpKTsKK1BJTl9ERUNMXzMoRDIxLCBHUElPRzYsIFRYRDksIFNEMkNELCBTQUxUMTUpOworR1JPVVBfREVDTChTQUxUMTVHMCwgRDIxKTsKKworI2RlZmluZSBCMjEgNTUKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIyMSwgUlhEOSwgVUFSVDksIFNJR19ERVNDX1NFVChTQ1U0MTQsIDIzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhCMjEsIFNEMldQLCBTRDIsIFNJR19ERVNDX1NFVChTQ1U0QjQsIDIzKSwKKwkJCVNJR19ERVNDX1NFVChTQ1U0NTAsIDEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEIyMSwgU0FMVDE2LCBTQUxUMTZHMCwgU0FMVDE2LAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMjMpKTsKK1BJTl9ERUNMXzMoQjIxLCBHUElPRzcsIFJYRDksIFNEMldQLCBTQUxUMTYpOworR1JPVVBfREVDTChTQUxUMTZHMCwgQjIxKTsKKworRlVOQ19HUk9VUF9ERUNMKFVBUlQ5LCBEMjEsIEIyMSk7CisKK0ZVTkNfR1JPVVBfREVDTChTRDIsIEUyMSwgQjIyLCBDMjEsIEEyMiwgQTIxLCBFMjAsIEQyMSwgQjIxKTsKKworI2RlZmluZSBBMTggNTYKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEExOCwgU0dQTTFDTEssIFNHUE0xLCBTSUdfREVTQ19TRVQoU0NVNDE0LCAyNCkpOworUElOX0RFQ0xfMShBMTgsIEdQSU9IMCwgU0dQTTFDTEspOworCisjZGVmaW5lIEIxOCA1NworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQjE4LCBTR1BNMUxELCBTR1BNMSwgU0lHX0RFU0NfU0VUKFNDVTQxNCwgMjUpKTsKK1BJTl9ERUNMXzEoQjE4LCBHUElPSDEsIFNHUE0xTEQpOworCisjZGVmaW5lIEMxOCA1OAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQzE4LCBTR1BNMU8sIFNHUE0xLCBTSUdfREVTQ19TRVQoU0NVNDE0LCAyNikpOworUElOX0RFQ0xfMShDMTgsIEdQSU9IMiwgU0dQTTFPKTsKKworI2RlZmluZSBBMTcgNTkKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEExNywgU0dQTTFJLCBTR1BNMSwgU0lHX0RFU0NfU0VUKFNDVTQxNCwgMjcpKTsKK1BJTl9ERUNMXzEoQTE3LCBHUElPSDMsIFNHUE0xSSk7CisKK0ZVTkNfR1JPVVBfREVDTChTR1BNMSwgQTE4LCBCMTgsIEMxOCwgQTE3KTsKKworI2RlZmluZSBEMTggNjAKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQxOCwgU0dQUzFDSywgU0dQUzEsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDI4KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMTgsIFNDTDE1LCBJMkMxNSwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMjgpKTsKK1BJTl9ERUNMXzIoRDE4LCBHUElPSDQsIFNHUFMxQ0ssIFNDTDE1KTsKKworI2RlZmluZSBCMTcgNjEKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIxNywgU0dQUzFMRCwgU0dQUzEsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDI5KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhCMTcsIFNEQTE1LCBJMkMxNSwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMjkpKTsKK1BJTl9ERUNMXzIoQjE3LCBHUElPSDUsIFNHUFMxTEQsIFNEQTE1KTsKKworRlVOQ19HUk9VUF9ERUNMKEkyQzE1LCBEMTgsIEIxNyk7CisKKyNkZWZpbmUgQzE3IDYyCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDMTcsIFNHUFMxTywgU0dQUzEsIFNJR19ERVNDX1NFVChTQ1U0MTQsIDMwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDMTcsIFNDTDE2LCBJMkMxNiwgU0lHX0RFU0NfU0VUKFNDVTRCNCwgMzApKTsKK1BJTl9ERUNMXzIoQzE3LCBHUElPSDYsIFNHUFMxTywgU0NMMTYpOworCisjZGVmaW5lIEUxOCA2MworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTE4LCBTR1BTMUksIFNHUFMxLCBTSUdfREVTQ19TRVQoU0NVNDE0LCAzMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTE4LCBTREExNiwgSTJDMTYsIFNJR19ERVNDX1NFVChTQ1U0QjQsIDMxKSk7CitQSU5fREVDTF8yKEUxOCwgR1BJT0g3LCBTR1BTMUksIFNEQTE2KTsKKworRlVOQ19HUk9VUF9ERUNMKEkyQzE2LCBDMTcsIEUxOCk7CitGVU5DX0dST1VQX0RFQ0woU0dQUzEsIEQxOCwgQjE3LCBDMTcsIEUxOCk7CisKKyNkZWZpbmUgRDE3IDY0CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMTcsIE1UUlNUTiwgSlRBR00sIFNJR19ERVNDX1NFVChTQ1U0MTgsIDApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEQxNywgVFhEMTIsIFVBUlQxMkcwLCBVQVJUMTIsIFNJR19ERVNDX1NFVChTQ1U0QjgsIDApKTsKK1BJTl9ERUNMXzIoRDE3LCBHUElPSTAsIE1UUlNUTiwgVFhEMTIpOworCisjZGVmaW5lIEExNiA2NQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQTE2LCBNVERJLCBKVEFHTSwgU0lHX0RFU0NfU0VUKFNDVTQxOCwgMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoQTE2LCBSWEQxMiwgVUFSVDEyRzAsIFVBUlQxMiwgU0lHX0RFU0NfU0VUKFNDVTRCOCwgMSkpOworUElOX0RFQ0xfMihBMTYsIEdQSU9JMSwgTVRESSwgUlhEMTIpOworCitHUk9VUF9ERUNMKFVBUlQxMkcwLCBEMTcsIEExNik7CisKKyNkZWZpbmUgRTE3IDY2CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFMTcsIE1UQ0ssIEpUQUdNLCBTSUdfREVTQ19TRVQoU0NVNDE4LCAyKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhFMTcsIFRYRDEzLCBVQVJUMTNHMCwgVUFSVDEzLCBTSUdfREVTQ19TRVQoU0NVNEI4LCAyKSk7CitQSU5fREVDTF8yKEUxNywgR1BJT0kyLCBNVENLLCBUWEQxMyk7CisKKyNkZWZpbmUgRDE2IDY3CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMTYsIE1UTVMsIEpUQUdNLCBTSUdfREVTQ19TRVQoU0NVNDE4LCAzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhEMTYsIFJYRDEzLCBVQVJUMTNHMCwgVUFSVDEzLCBTSUdfREVTQ19TRVQoU0NVNEI4LCAzKSk7CitQSU5fREVDTF8yKEQxNiwgR1BJT0kzLCBNVE1TLCBSWEQxMyk7CisKK0dST1VQX0RFQ0woVUFSVDEzRzAsIEUxNywgRDE2KTsKKworI2RlZmluZSBDMTYgNjgKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEMxNiwgTVRETywgSlRBR00sIFNJR19ERVNDX1NFVChTQ1U0MTgsIDQpKTsKK1BJTl9ERUNMXzEoQzE2LCBHUElPSTQsIE1URE8pOworCitGVU5DX0dST1VQX0RFQ0woSlRBR00sIEQxNywgQTE2LCBFMTcsIEQxNiwgQzE2KTsKKworI2RlZmluZSBFMTYgNjkKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUxNiwgU0lPUEJPLCBTSU9QQk8sIFNJR19ERVNDX1NFVChTQ1U0MTgsIDUpKTsKK1BJTl9ERUNMXzEoRTE2LCBHUElPSTUsIFNJT1BCTyk7CitGVU5DX0dST1VQX0RFQ0woU0lPUEJPLCBFMTYpOworCisjZGVmaW5lIEIxNiA3MAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQjE2LCBTSU9QQkksIFNJT1BCSSwgU0lHX0RFU0NfU0VUKFNDVTQxOCwgNikpOworUElOX0RFQ0xfMShCMTYsIEdQSU9JNiwgU0lPUEJJKTsKK0ZVTkNfR1JPVVBfREVDTChTSU9QQkksIEIxNik7CisKKyNkZWZpbmUgQTE1IDcxCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBMTUsIEJNQ0lOVCwgQk1DSU5ULCBTSUdfREVTQ19TRVQoU0NVNDE4LCA3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBMTUsIFNJT1NDSSwgU0lPU0NJLCBTSUdfREVTQ19TRVQoU0NVNEI4LCA3KSk7CitQSU5fREVDTF8yKEExNSwgR1BJT0k3LCBCTUNJTlQsIFNJT1NDSSk7CitGVU5DX0dST1VQX0RFQ0woQk1DSU5ULCBBMTUpOworRlVOQ19HUk9VUF9ERUNMKFNJT1NDSSwgQTE1KTsKKworI2RlZmluZSBCMjAgNzIKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEIyMCwgSTNDM1NDTCwgSFZJM0MzLCBJM0MzLCBTSUdfREVTQ19TRVQoU0NVNDE4LCA4KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhCMjAsIFNDTDEsIEkyQzEsIFNJR19ERVNDX1NFVChTQ1U0QjgsIDgpKTsKK1BJTl9ERUNMXzIoQjIwLCBHUElPSjAsIEkzQzNTQ0wsIFNDTDEpOworCisjZGVmaW5lIEEyMCA3MworU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoQTIwLCBJM0MzU0RBLCBIVkkzQzMsIEkzQzMsIFNJR19ERVNDX1NFVChTQ1U0MTgsIDkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEEyMCwgU0RBMSwgSTJDMSwgU0lHX0RFU0NfU0VUKFNDVTRCOCwgOSkpOworUElOX0RFQ0xfMihBMjAsIEdQSU9KMSwgSTNDM1NEQSwgU0RBMSk7CisKK0dST1VQX0RFQ0woSFZJM0MzLCBCMjAsIEEyMCk7CitGVU5DX0dST1VQX0RFQ0woSTJDMSwgQjIwLCBBMjApOworCisjZGVmaW5lIEUxOSA3NAorU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoRTE5LCBJM0M0U0NMLCBIVkkzQzQsIEkzQzQsIFNJR19ERVNDX1NFVChTQ1U0MTgsIDEwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFMTksIFNDTDIsIEkyQzIsIFNJR19ERVNDX1NFVChTQ1U0QjgsIDEwKSk7CitQSU5fREVDTF8yKEUxOSwgR1BJT0oyLCBJM0M0U0NMLCBTQ0wyKTsKKworI2RlZmluZSBEMjAgNzUKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEQyMCwgSTNDNFNEQSwgSFZJM0M0LCBJM0M0LCBTSUdfREVTQ19TRVQoU0NVNDE4LCAxMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRDIwLCBTREEyLCBJMkMyLCBTSUdfREVTQ19TRVQoU0NVNEI4LCAxMSkpOworUElOX0RFQ0xfMihEMjAsIEdQSU9KMywgSTNDNFNEQSwgU0RBMik7CisKK0dST1VQX0RFQ0woSFZJM0M0LCBFMTksIEQyMCk7CitGVU5DX0dST1VQX0RFQ0woSTJDMiwgRTE5LCBEMjApOworCisjZGVmaW5lIEMxOSA3NgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQzE5LCBJM0M1U0NMLCBJM0M1LCBTSUdfREVTQ19TRVQoU0NVNDE4LCAxMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQzE5LCBTQ0wzLCBJMkMzLCBTSUdfREVTQ19TRVQoU0NVNEI4LCAxMikpOworUElOX0RFQ0xfMihDMTksIEdQSU9KNCwgSTNDNVNDTCwgU0NMMyk7CisKKyNkZWZpbmUgQTE5IDc3CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBMTksIEkzQzVTREEsIEkzQzUsIFNJR19ERVNDX1NFVChTQ1U0MTgsIDEzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBMTksIFNEQTMsIEkyQzMsIFNJR19ERVNDX1NFVChTQ1U0QjgsIDEzKSk7CitQSU5fREVDTF8yKEExOSwgR1BJT0o1LCBJM0M1U0RBLCBTREEzKTsKKworRlVOQ19HUk9VUF9ERUNMKEkzQzUsIEMxOSwgQTE5KTsKK0ZVTkNfR1JPVVBfREVDTChJMkMzLCBDMTksIEExOSk7CisKKyNkZWZpbmUgQzIwIDc4CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDMjAsIEkzQzZTQ0wsIEkzQzYsIFNJR19ERVNDX1NFVChTQ1U0MTgsIDE0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDMjAsIFNDTDQsIEkyQzQsIFNJR19ERVNDX1NFVChTQ1U0QjgsIDE0KSk7CitQSU5fREVDTF8yKEMyMCwgR1BJT0o2LCBJM0M2U0NMLCBTQ0w0KTsKKworI2RlZmluZSBEMTkgNzkKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQxOSwgSTNDNlNEQSwgSTNDNiwgU0lHX0RFU0NfU0VUKFNDVTQxOCwgMTUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQxOSwgU0RBNCwgSTJDNCwgU0lHX0RFU0NfU0VUKFNDVTRCOCwgMTUpKTsKK1BJTl9ERUNMXzIoRDE5LCBHUElPSjcsIEkzQzZTREEsIFNEQTQpOworCitGVU5DX0dST1VQX0RFQ0woSTNDNiwgQzIwLCBEMTkpOworRlVOQ19HUk9VUF9ERUNMKEkyQzQsIEMyMCwgRDE5KTsKKworI2RlZmluZSBBMTEgODAKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEExMSwgU0NMNSwgSTJDNSwgU0lHX0RFU0NfU0VUKFNDVTQxOCwgMTYpKTsKK1BJTl9ERUNMXzEoQTExLCBHUElPSzAsIFNDTDUpOworCisjZGVmaW5lIEMxMSA4MQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQzExLCBTREE1LCBJMkM1LCBTSUdfREVTQ19TRVQoU0NVNDE4LCAxNykpOworUElOX0RFQ0xfMShDMTEsIEdQSU9LMSwgU0RBNSk7CisKK0ZVTkNfR1JPVVBfREVDTChJMkM1LCBBMTEsIEMxMSk7CisKKyNkZWZpbmUgRDEyIDgyCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMTIsIFNDTDYsIEkyQzYsIFNJR19ERVNDX1NFVChTQ1U0MTgsIDE4KSk7CitQSU5fREVDTF8xKEQxMiwgR1BJT0syLCBTQ0w2KTsKKworI2RlZmluZSBFMTMgODMKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUxMywgU0RBNiwgSTJDNiwgU0lHX0RFU0NfU0VUKFNDVTQxOCwgMTkpKTsKK1BJTl9ERUNMXzEoRTEzLCBHUElPSzMsIFNEQTYpOworCitGVU5DX0dST1VQX0RFQ0woSTJDNiwgRDEyLCBFMTMpOworCisjZGVmaW5lIEQxMSA4NAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRDExLCBTQ0w3LCBJMkM3LCBTSUdfREVTQ19TRVQoU0NVNDE4LCAyMCkpOworUElOX0RFQ0xfMShEMTEsIEdQSU9LNCwgU0NMNyk7CisKKyNkZWZpbmUgRTExIDg1CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFMTEsIFNEQTcsIEkyQzcsIFNJR19ERVNDX1NFVChTQ1U0MTgsIDIxKSk7CitQSU5fREVDTF8xKEUxMSwgR1BJT0s1LCBTREE3KTsKKworRlVOQ19HUk9VUF9ERUNMKEkyQzcsIEQxMSwgRTExKTsKKworI2RlZmluZSBGMTMgODYKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEYxMywgU0NMOCwgSTJDOCwgU0lHX0RFU0NfU0VUKFNDVTQxOCwgMjIpKTsKK1BJTl9ERUNMXzEoRjEzLCBHUElPSzYsIFNDTDgpOworCisjZGVmaW5lIEUxMiA4NworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTEyLCBTREE4LCBJMkM4LCBTSUdfREVTQ19TRVQoU0NVNDE4LCAyMykpOworUElOX0RFQ0xfMShFMTIsIEdQSU9LNywgU0RBOCk7CisKK0ZVTkNfR1JPVVBfREVDTChJMkM4LCBGMTMsIEUxMik7CisKKyNkZWZpbmUgRDE1IDg4CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMTUsIFNDTDksIEkyQzksIFNJR19ERVNDX1NFVChTQ1U0MTgsIDI0KSk7CitQSU5fREVDTF8xKEQxNSwgR1BJT0wwLCBTQ0w5KTsKKworI2RlZmluZSBBMTQgODkKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEExNCwgU0RBOSwgSTJDOSwgU0lHX0RFU0NfU0VUKFNDVTQxOCwgMjUpKTsKK1BJTl9ERUNMXzEoQTE0LCBHUElPTDEsIFNEQTkpOworCitGVU5DX0dST1VQX0RFQ0woSTJDOSwgRDE1LCBBMTQpOworCisjZGVmaW5lIEUxNSA5MAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTE1LCBTQ0wxMCwgSTJDMTAsIFNJR19ERVNDX1NFVChTQ1U0MTgsIDI2KSk7CitQSU5fREVDTF8xKEUxNSwgR1BJT0wyLCBTQ0wxMCk7CisKKyNkZWZpbmUgQTEzIDkxCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBMTMsIFNEQTEwLCBJMkMxMCwgU0lHX0RFU0NfU0VUKFNDVTQxOCwgMjcpKTsKK1BJTl9ERUNMXzEoQTEzLCBHUElPTDMsIFNEQTEwKTsKKworRlVOQ19HUk9VUF9ERUNMKEkyQzEwLCBFMTUsIEExMyk7CisKKyNkZWZpbmUgQzE1IDkyCitTU1NGX1BJTl9ERUNMKEMxNSwgR1BJT0w0LCBUWEQzLCBTSUdfREVTQ19TRVQoU0NVNDE4LCAyOCkpOworCisjZGVmaW5lIEYxNSA5MworU1NTRl9QSU5fREVDTChGMTUsIEdQSU9MNSwgUlhEMywgU0lHX0RFU0NfU0VUKFNDVTQxOCwgMjkpKTsKKworI2RlZmluZSBCMTQgOTQKK1NTU0ZfUElOX0RFQ0woQjE0LCBHUElPTDYsIFZHQUhTLCBTSUdfREVTQ19TRVQoU0NVNDE4LCAzMCkpOworCisjZGVmaW5lIEMxNCA5NQorU1NTRl9QSU5fREVDTChDMTQsIEdQSU9MNywgVkdBVlMsIFNJR19ERVNDX1NFVChTQ1U0MTgsIDMxKSk7CisKKyNkZWZpbmUgRDE0IDk2CitTU1NGX1BJTl9ERUNMKEQxNCwgR1BJT00wLCBOQ1RTMSwgU0lHX0RFU0NfU0VUKFNDVTQxQywgMCkpOworCisjZGVmaW5lIEIxMyA5NworU1NTRl9QSU5fREVDTChCMTMsIEdQSU9NMSwgTkRDRDEsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDEpKTsKKworI2RlZmluZSBBMTIgOTgKK1NTU0ZfUElOX0RFQ0woQTEyLCBHUElPTTIsIE5EU1IxLCBTSUdfREVTQ19TRVQoU0NVNDFDLCAyKSk7CisKKyNkZWZpbmUgRTE0IDk5CitTU1NGX1BJTl9ERUNMKEUxNCwgR1BJT00zLCBOUkkxLCBTSUdfREVTQ19TRVQoU0NVNDFDLCAzKSk7CisKKyNkZWZpbmUgQjEyIDEwMAorU1NTRl9QSU5fREVDTChCMTIsIEdQSU9NNCwgTkRUUjEsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDQpKTsKKworI2RlZmluZSBDMTIgMTAxCitTU1NGX1BJTl9ERUNMKEMxMiwgR1BJT001LCBOUlRTMSwgU0lHX0RFU0NfU0VUKFNDVTQxQywgNSkpOworCisjZGVmaW5lIEMxMyAxMDIKK1NTU0ZfUElOX0RFQ0woQzEzLCBHUElPTTYsIFRYRDEsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDYpKTsKKworI2RlZmluZSBEMTMgMTAzCitTU1NGX1BJTl9ERUNMKEQxMywgR1BJT003LCBSWEQxLCBTSUdfREVTQ19TRVQoU0NVNDFDLCA3KSk7CisKKyNkZWZpbmUgUDI1IDEwNAorU1NTRl9QSU5fREVDTChQMjUsIEdQSU9OMCwgTkNUUzIsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDgpKTsKKworI2RlZmluZSBOMjMgMTA1CitTU1NGX1BJTl9ERUNMKE4yMywgR1BJT04xLCBORENEMiwgU0lHX0RFU0NfU0VUKFNDVTQxQywgOSkpOworCisjZGVmaW5lIE4yNSAxMDYKK1NTU0ZfUElOX0RFQ0woTjI1LCBHUElPTjIsIE5EU1IyLCBTSUdfREVTQ19TRVQoU0NVNDFDLCAxMCkpOworCisjZGVmaW5lIE4yNCAxMDcKK1NTU0ZfUElOX0RFQ0woTjI0LCBHUElPTjMsIE5SSTIsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDExKSk7CisKKyNkZWZpbmUgUDI2IDEwOAorU1NTRl9QSU5fREVDTChQMjYsIEdQSU9ONCwgTkRUUjIsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDEyKSk7CisKKyNkZWZpbmUgTTIzIDEwOQorU1NTRl9QSU5fREVDTChNMjMsIEdQSU9ONSwgTlJUUzIsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDEzKSk7CisKKyNkZWZpbmUgTjI2IDExMAorU1NTRl9QSU5fREVDTChOMjYsIEdQSU9ONiwgVFhEMiwgU0lHX0RFU0NfU0VUKFNDVTQxQywgMTQpKTsKKworI2RlZmluZSBNMjYgMTExCitTU1NGX1BJTl9ERUNMKE0yNiwgR1BJT043LCBSWEQyLCBTSUdfREVTQ19TRVQoU0NVNDFDLCAxNSkpOworCisjZGVmaW5lIEFEMjYgMTEyCitTU1NGX1BJTl9ERUNMKEFEMjYsIEdQSU9PMCwgUFdNMCwgU0lHX0RFU0NfU0VUKFNDVTQxQywgMTYpKTsKKworI2RlZmluZSBBRDIyIDExMworU1NTRl9QSU5fREVDTChBRDIyLCBHUElPTzEsIFBXTTEsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDE3KSk7CisKKyNkZWZpbmUgQUQyMyAxMTQKK1NTU0ZfUElOX0RFQ0woQUQyMywgR1BJT08yLCBQV00yLCBTSUdfREVTQ19TRVQoU0NVNDFDLCAxOCkpOworCisjZGVmaW5lIEFEMjQgMTE1CitTU1NGX1BJTl9ERUNMKEFEMjQsIEdQSU9PMywgUFdNMywgU0lHX0RFU0NfU0VUKFNDVTQxQywgMTkpKTsKKworI2RlZmluZSBBRDI1IDExNgorU1NTRl9QSU5fREVDTChBRDI1LCBHUElPTzQsIFBXTTQsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDIwKSk7CisKKyNkZWZpbmUgQUMyMiAxMTcKK1NTU0ZfUElOX0RFQ0woQUMyMiwgR1BJT081LCBQV001LCBTSUdfREVTQ19TRVQoU0NVNDFDLCAyMSkpOworCisjZGVmaW5lIEFDMjQgMTE4CitTU1NGX1BJTl9ERUNMKEFDMjQsIEdQSU9PNiwgUFdNNiwgU0lHX0RFU0NfU0VUKFNDVTQxQywgMjIpKTsKKworI2RlZmluZSBBQzIzIDExOQorU1NTRl9QSU5fREVDTChBQzIzLCBHUElPTzcsIFBXTTcsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDIzKSk7CisKKyNkZWZpbmUgQUIyMiAxMjAKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFCMjIsIFBXTTgsIFBXTThHMSwgUFdNOCwgU0lHX0RFU0NfU0VUKFNDVTQxQywgMjQpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFCMjIsIFRIUlVJTjAsIFRIUlUwLCBTSUdfREVTQ19TRVQoU0NVNEJDLCAyNCkpOworUElOX0RFQ0xfMihBQjIyLCBHUElPUDAsIFBXTTgsIFRIUlVJTjApOworR1JPVVBfREVDTChQV004RzEsIEFCMjIpOworRlVOQ19ERUNMXzIoUFdNOCwgUFdNOEcwLCBQV004RzEpOworCisjZGVmaW5lIFcyNCAxMjEKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKFcyNCwgUFdNOSwgUFdNOUcxLCBQV005LCBTSUdfREVTQ19TRVQoU0NVNDFDLCAyNSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coVzI0LCBUSFJVT1VUMCwgVEhSVTAsIFNJR19ERVNDX1NFVChTQ1U0QkMsIDI1KSk7CitQSU5fREVDTF8yKFcyNCwgR1BJT1AxLCBQV005LCBUSFJVT1VUMCk7CisKK0ZVTkNfR1JPVVBfREVDTChUSFJVMCwgQUIyMiwgVzI0KTsKKworR1JPVVBfREVDTChQV005RzEsIFcyNCk7CitGVU5DX0RFQ0xfMihQV005LCBQV005RzAsIFBXTTlHMSk7CisKKyNkZWZpbmUgQUEyMyAxMjIKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFBMjMsIFBXTTEwLCBQV00xMEcxLCBQV00xMCwgU0lHX0RFU0NfU0VUKFNDVTQxQywgMjYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFBMjMsIFRIUlVJTjEsIFRIUlUxLCBTSUdfREVTQ19TRVQoU0NVNEJDLCAyNikpOworUElOX0RFQ0xfMihBQTIzLCBHUElPUDIsIFBXTTEwLCBUSFJVSU4xKTsKK0dST1VQX0RFQ0woUFdNMTBHMSwgQUEyMyk7CitGVU5DX0RFQ0xfMihQV00xMCwgUFdNMTBHMCwgUFdNMTBHMSk7CisKKyNkZWZpbmUgQUEyNCAxMjMKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFBMjQsIFBXTTExLCBQV00xMUcxLCBQV00xMSwgU0lHX0RFU0NfU0VUKFNDVTQxQywgMjcpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFBMjQsIFRIUlVPVVQxLCBUSFJVMSwgU0lHX0RFU0NfU0VUKFNDVTRCQywgMjcpKTsKK1BJTl9ERUNMXzIoQUEyNCwgR1BJT1AzLCBQV00xMSwgVEhSVU9VVDEpOworR1JPVVBfREVDTChQV00xMUcxLCBBQTI0KTsKK0ZVTkNfREVDTF8yKFBXTTExLCBQV00xMUcwLCBQV00xMUcxKTsKKworRlVOQ19HUk9VUF9ERUNMKFRIUlUxLCBBQTIzLCBBQTI0KTsKKworI2RlZmluZSBXMjMgMTI0CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhXMjMsIFBXTTEyLCBQV00xMkcxLCBQV00xMiwgU0lHX0RFU0NfU0VUKFNDVTQxQywgMjgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKFcyMywgVEhSVUlOMiwgVEhSVTIsIFNJR19ERVNDX1NFVChTQ1U0QkMsIDI4KSk7CitQSU5fREVDTF8yKFcyMywgR1BJT1A0LCBQV00xMiwgVEhSVUlOMik7CitHUk9VUF9ERUNMKFBXTTEyRzEsIFcyMyk7CitGVU5DX0RFQ0xfMihQV00xMiwgUFdNMTJHMCwgUFdNMTJHMSk7CisKKyNkZWZpbmUgQUIyMyAxMjUKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFCMjMsIFBXTTEzLCBQV00xM0cxLCBQV00xMywgU0lHX0RFU0NfU0VUKFNDVTQxQywgMjkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFCMjMsIFRIUlVPVVQyLCBUSFJVMiwgU0lHX0RFU0NfU0VUKFNDVTRCQywgMjkpKTsKK1BJTl9ERUNMXzIoQUIyMywgR1BJT1A1LCBQV00xMywgVEhSVU9VVDIpOworR1JPVVBfREVDTChQV00xM0cxLCBBQjIzKTsKK0ZVTkNfREVDTF8yKFBXTTEzLCBQV00xM0cwLCBQV00xM0cxKTsKKworRlVOQ19HUk9VUF9ERUNMKFRIUlUyLCBXMjMsIEFCMjMpOworCisjZGVmaW5lIEFCMjQgMTI2CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBQjI0LCBQV00xNCwgUFdNMTRHMSwgUFdNMTQsIFNJR19ERVNDX1NFVChTQ1U0MUMsIDMwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQjI0LCBUSFJVSU4zLCBUSFJVMywgU0lHX0RFU0NfU0VUKFNDVTRCQywgMzApKTsKK1BJTl9ERUNMXzIoQUIyNCwgR1BJT1A2LCBQV00xNCwgVEhSVUlOMyk7CitHUk9VUF9ERUNMKFBXTTE0RzEsIEFCMjQpOworRlVOQ19ERUNMXzIoUFdNMTQsIFBXTTE0RzAsIFBXTTE0RzEpOworCisjZGVmaW5lIFkyMyAxMjcKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKFkyMywgUFdNMTUsIFBXTTE1RzEsIFBXTTE1LCBTSUdfREVTQ19TRVQoU0NVNDFDLCAzMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coWTIzLCBUSFJVT1VUMywgVEhSVTMsIFNJR19ERVNDX1NFVChTQ1U0QkMsIDMxKSk7CitQSU5fREVDTF8yKFkyMywgR1BJT1A3LCBQV00xNSwgVEhSVU9VVDMpOworR1JPVVBfREVDTChQV00xNUcxLCBZMjMpOworRlVOQ19ERUNMXzIoUFdNMTUsIFBXTTE1RzAsIFBXTTE1RzEpOworCitGVU5DX0dST1VQX0RFQ0woVEhSVTMsIEFCMjQsIFkyMyk7CisKKyNkZWZpbmUgQUEyNSAxMjgKK1NTU0ZfUElOX0RFQ0woQUEyNSwgR1BJT1EwLCBUQUNIMCwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgMCkpOworCisjZGVmaW5lIEFCMjUgMTI5CitTU1NGX1BJTl9ERUNMKEFCMjUsIEdQSU9RMSwgVEFDSDEsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDEpKTsKKworI2RlZmluZSBZMjQgMTMwCitTU1NGX1BJTl9ERUNMKFkyNCwgR1BJT1EyLCBUQUNIMiwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgMikpOworCisjZGVmaW5lIEFCMjYgMTMxCitTU1NGX1BJTl9ERUNMKEFCMjYsIEdQSU9RMywgVEFDSDMsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDMpKTsKKworI2RlZmluZSBZMjYgMTMyCitTU1NGX1BJTl9ERUNMKFkyNiwgR1BJT1E0LCBUQUNINCwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgNCkpOworCisjZGVmaW5lIEFDMjYgMTMzCitTU1NGX1BJTl9ERUNMKEFDMjYsIEdQSU9RNSwgVEFDSDUsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDUpKTsKKworI2RlZmluZSBZMjUgMTM0CitTU1NGX1BJTl9ERUNMKFkyNSwgR1BJT1E2LCBUQUNINiwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgNikpOworCisjZGVmaW5lIEFBMjYgMTM1CitTU1NGX1BJTl9ERUNMKEFBMjYsIEdQSU9RNywgVEFDSDcsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDcpKTsKKworI2RlZmluZSBWMjUgMTM2CitTU1NGX1BJTl9ERUNMKFYyNSwgR1BJT1IwLCBUQUNIOCwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgOCkpOworCisjZGVmaW5lIFUyNCAxMzcKK1NTU0ZfUElOX0RFQ0woVTI0LCBHUElPUjEsIFRBQ0g5LCBTSUdfREVTQ19TRVQoU0NVNDMwLCA5KSk7CisKKyNkZWZpbmUgVjI0IDEzOAorU1NTRl9QSU5fREVDTChWMjQsIEdQSU9SMiwgVEFDSDEwLCBTSUdfREVTQ19TRVQoU0NVNDMwLCAxMCkpOworCisjZGVmaW5lIFYyNiAxMzkKK1NTU0ZfUElOX0RFQ0woVjI2LCBHUElPUjMsIFRBQ0gxMSwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgMTEpKTsKKworI2RlZmluZSBVMjUgMTQwCitTU1NGX1BJTl9ERUNMKFUyNSwgR1BJT1I0LCBUQUNIMTIsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDEyKSk7CisKKyNkZWZpbmUgVDIzIDE0MQorU1NTRl9QSU5fREVDTChUMjMsIEdQSU9SNSwgVEFDSDEzLCBTSUdfREVTQ19TRVQoU0NVNDMwLCAxMykpOworCisjZGVmaW5lIFcyNiAxNDIKK1NTU0ZfUElOX0RFQ0woVzI2LCBHUElPUjYsIFRBQ0gxNCwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgMTQpKTsKKworI2RlZmluZSBVMjYgMTQzCitTU1NGX1BJTl9ERUNMKFUyNiwgR1BJT1I3LCBUQUNIMTUsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDE1KSk7CisKKyNkZWZpbmUgUjIzIDE0NAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coUjIzLCBNREMxLCBNRElPMSwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgMTYpKTsKK1BJTl9ERUNMXzEoUjIzLCBHUElPUzAsIE1EQzEpOworCisjZGVmaW5lIFQyNSAxNDUKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKFQyNSwgTURJTzEsIE1ESU8xLCBTSUdfREVTQ19TRVQoU0NVNDMwLCAxNykpOworUElOX0RFQ0xfMShUMjUsIEdQSU9TMSwgTURJTzEpOworCitGVU5DX0dST1VQX0RFQ0woTURJTzEsIFIyMywgVDI1KTsKKworI2RlZmluZSBUMjYgMTQ2CitTU1NGX1BJTl9ERUNMKFQyNiwgR1BJT1MyLCBQRVdBS0UsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDE4KSk7CisKKyNkZWZpbmUgUjI0IDE0NworU1NTRl9QSU5fREVDTChSMjQsIEdQSU9TMywgT1NDQ0xLLCBTSUdfREVTQ19TRVQoU0NVNDMwLCAxOSkpOworCisjZGVmaW5lIFIyNiAxNDgKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKFIyNiwgVFhEMTAsIFVBUlQxMCwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgMjApKTsKK1BJTl9ERUNMXzEoUjI2LCBHUElPUzQsIFRYRDEwKTsKKworI2RlZmluZSBQMjQgMTQ5CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhQMjQsIFJYRDEwLCBVQVJUMTAsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDIxKSk7CitQSU5fREVDTF8xKFAyNCwgR1BJT1M1LCBSWEQxMCk7CisKK0ZVTkNfR1JPVVBfREVDTChVQVJUMTAsIFIyNiwgUDI0KTsKKworI2RlZmluZSBQMjMgMTUwCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhQMjMsIFRYRDExLCBVQVJUMTEsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDIyKSk7CitQSU5fREVDTF8xKFAyMywgR1BJT1M2LCBUWEQxMSk7CisKKyNkZWZpbmUgVDI0IDE1MQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coVDI0LCBSWEQxMSwgVUFSVDExLCBTSUdfREVTQ19TRVQoU0NVNDMwLCAyMykpOworUElOX0RFQ0xfMShUMjQsIEdQSU9TNywgUlhEMTEpOworCitGVU5DX0dST1VQX0RFQ0woVUFSVDExLCBQMjMsIFQyNCk7CisKKyNkZWZpbmUgQUQyMCAxNTIKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFEMjAsIEdQSVQwLCBHUElUMCwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgMjQpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFEMjAsIEFEQzAsIEFEQzApOworUElOX0RFQ0xfKEFEMjAsIFNJR19FWFBSX0xJU1RfUFRSKEFEMjAsIEdQSVQwKSwgU0lHX0VYUFJfTElTVF9QVFIoQUQyMCwgQURDMCkpOworRlVOQ19HUk9VUF9ERUNMKEdQSVQwLCBBRDIwKTsKK0ZVTkNfR1JPVVBfREVDTChBREMwLCBBRDIwKTsKKworI2RlZmluZSBBQzE4IDE1MworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUMxOCwgR1BJVDEsIEdQSVQxLCBTSUdfREVTQ19TRVQoU0NVNDMwLCAyNSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUMxOCwgQURDMSwgQURDMSk7CitQSU5fREVDTF8oQUMxOCwgU0lHX0VYUFJfTElTVF9QVFIoQUMxOCwgR1BJVDEpLCBTSUdfRVhQUl9MSVNUX1BUUihBQzE4LCBBREMxKSk7CitGVU5DX0dST1VQX0RFQ0woR1BJVDEsIEFDMTgpOworRlVOQ19HUk9VUF9ERUNMKEFEQzEsIEFDMTgpOworCisjZGVmaW5lIEFFMTkgMTU0CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBRTE5LCBHUElUMiwgR1BJVDIsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDI2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBRTE5LCBBREMyLCBBREMyKTsKK1BJTl9ERUNMXyhBRTE5LCBTSUdfRVhQUl9MSVNUX1BUUihBRTE5LCBHUElUMiksIFNJR19FWFBSX0xJU1RfUFRSKEFFMTksIEFEQzIpKTsKK0ZVTkNfR1JPVVBfREVDTChHUElUMiwgQUUxOSk7CitGVU5DX0dST1VQX0RFQ0woQURDMiwgQUUxOSk7CisKKyNkZWZpbmUgQUQxOSAxNTUKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFEMTksIEdQSVQzLCBHUElUMywgU0lHX0RFU0NfU0VUKFNDVTQzMCwgMjcpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFEMTksIEFEQzMsIEFEQzMpOworUElOX0RFQ0xfKEFEMTksIFNJR19FWFBSX0xJU1RfUFRSKEFEMTksIEdQSVQzKSwgU0lHX0VYUFJfTElTVF9QVFIoQUQxOSwgQURDMykpOworRlVOQ19HUk9VUF9ERUNMKEdQSVQzLCBBRDE5KTsKK0ZVTkNfR1JPVVBfREVDTChBREMzLCBBRDE5KTsKKworI2RlZmluZSBBQzE5IDE1NgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUMxOSwgR1BJVDQsIEdQSVQ0LCBTSUdfREVTQ19TRVQoU0NVNDMwLCAyOCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUMxOSwgQURDNCwgQURDNCk7CitQSU5fREVDTF8oQUMxOSwgU0lHX0VYUFJfTElTVF9QVFIoQUMxOSwgR1BJVDQpLCBTSUdfRVhQUl9MSVNUX1BUUihBQzE5LCBBREM0KSk7CitGVU5DX0dST1VQX0RFQ0woR1BJVDQsIEFDMTkpOworRlVOQ19HUk9VUF9ERUNMKEFEQzQsIEFDMTkpOworCisjZGVmaW5lIEFCMTkgMTU3CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQjE5LCBHUElUNSwgR1BJVDUsIFNJR19ERVNDX1NFVChTQ1U0MzAsIDI5KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQjE5LCBBREM1LCBBREM1KTsKK1BJTl9ERUNMXyhBQjE5LCBTSUdfRVhQUl9MSVNUX1BUUihBQjE5LCBHUElUNSksIFNJR19FWFBSX0xJU1RfUFRSKEFCMTksIEFEQzUpKTsKK0ZVTkNfR1JPVVBfREVDTChHUElUNSwgQUIxOSk7CitGVU5DX0dST1VQX0RFQ0woQURDNSwgQUIxOSk7CisKKyNkZWZpbmUgQUIxOCAxNTgKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFCMTgsIEdQSVQ2LCBHUElUNiwgU0lHX0RFU0NfU0VUKFNDVTQzMCwgMzApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFCMTgsIEFEQzYsIEFEQzYpOworUElOX0RFQ0xfKEFCMTgsIFNJR19FWFBSX0xJU1RfUFRSKEFCMTgsIEdQSVQ2KSwgU0lHX0VYUFJfTElTVF9QVFIoQUIxOCwgQURDNikpOworRlVOQ19HUk9VUF9ERUNMKEdQSVQ2LCBBQjE4KTsKK0ZVTkNfR1JPVVBfREVDTChBREM2LCBBQjE4KTsKKworI2RlZmluZSBBRTE4IDE1OQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUUxOCwgR1BJVDcsIEdQSVQ3LCBTSUdfREVTQ19TRVQoU0NVNDMwLCAzMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUUxOCwgQURDNywgQURDNyk7CitQSU5fREVDTF8oQUUxOCwgU0lHX0VYUFJfTElTVF9QVFIoQUUxOCwgR1BJVDcpLCBTSUdfRVhQUl9MSVNUX1BUUihBRTE4LCBBREM3KSk7CitGVU5DX0dST1VQX0RFQ0woR1BJVDcsIEFFMTgpOworRlVOQ19HUk9VUF9ERUNMKEFEQzcsIEFFMTgpOworCisjZGVmaW5lIEFCMTYgMTYwCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBQjE2LCBTQUxUOSwgU0FMVDlHMSwgU0FMVDksIFNJR19ERVNDX1NFVChTQ1U0MzQsIDApLAorCQkJU0lHX0RFU0NfQ0xFQVIoU0NVNjk0LCAxNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUIxNiwgR1BJVTAsIEdQSVUwLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAwKSwKKwkJCVNJR19ERVNDX1NFVChTQ1U2OTQsIDE2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQjE2LCBBREM4LCBBREM4KTsKK1BJTl9ERUNMXyhBQjE2LCBTSUdfRVhQUl9MSVNUX1BUUihBQjE2LCBTQUxUOSksIFNJR19FWFBSX0xJU1RfUFRSKEFCMTYsIEdQSVUwKSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEFCMTYsIEFEQzgpKTsKK0dST1VQX0RFQ0woU0FMVDlHMSwgQUIxNik7CitGVU5DX0RFQ0xfMihTQUxUOSwgU0FMVDlHMCwgU0FMVDlHMSk7CitGVU5DX0dST1VQX0RFQ0woR1BJVTAsIEFCMTYpOworRlVOQ19HUk9VUF9ERUNMKEFEQzgsIEFCMTYpOworCisjZGVmaW5lIEFBMTcgMTYxCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBQTE3LCBTQUxUMTAsIFNBTFQxMEcxLCBTQUxUMTAsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDEpLAorCQkJU0lHX0RFU0NfQ0xFQVIoU0NVNjk0LCAxNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUExNywgR1BJVTEsIEdQSVUxLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAxKSwKKwkJCVNJR19ERVNDX1NFVChTQ1U2OTQsIDE3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQTE3LCBBREM5LCBBREM5KTsKK1BJTl9ERUNMXyhBQTE3LCBTSUdfRVhQUl9MSVNUX1BUUihBQTE3LCBTQUxUMTApLCBTSUdfRVhQUl9MSVNUX1BUUihBQTE3LCBHUElVMSksCisJICBTSUdfRVhQUl9MSVNUX1BUUihBQTE3LCBBREM5KSk7CitHUk9VUF9ERUNMKFNBTFQxMEcxLCBBQTE3KTsKK0ZVTkNfREVDTF8yKFNBTFQxMCwgU0FMVDEwRzAsIFNBTFQxMEcxKTsKK0ZVTkNfR1JPVVBfREVDTChHUElVMSwgQUExNyk7CitGVU5DX0dST1VQX0RFQ0woQURDOSwgQUExNyk7CisKKyNkZWZpbmUgQUIxNyAxNjIKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFCMTcsIFNBTFQxMSwgU0FMVDExRzEsIFNBTFQxMSwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMiksCisJCQlTSUdfREVTQ19DTEVBUihTQ1U2OTQsIDE4KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQjE3LCBHUElVMiwgR1BJVTIsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDIpLAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMTgpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFCMTcsIEFEQzEwLCBBREMxMCk7CitQSU5fREVDTF8oQUIxNywgU0lHX0VYUFJfTElTVF9QVFIoQUIxNywgU0FMVDExKSwgU0lHX0VYUFJfTElTVF9QVFIoQUIxNywgR1BJVTIpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUIxNywgQURDMTApKTsKK0dST1VQX0RFQ0woU0FMVDExRzEsIEFCMTcpOworRlVOQ19ERUNMXzIoU0FMVDExLCBTQUxUMTFHMCwgU0FMVDExRzEpOworRlVOQ19HUk9VUF9ERUNMKEdQSVUyLCBBQjE3KTsKK0ZVTkNfR1JPVVBfREVDTChBREMxMCwgQUIxNyk7CisKKyNkZWZpbmUgQUUxNiAxNjMKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFFMTYsIFNBTFQxMiwgU0FMVDEyRzEsIFNBTFQxMiwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMyksCisJCQlTSUdfREVTQ19DTEVBUihTQ1U2OTQsIDE5KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBRTE2LCBHUElVMywgR1BJVTMsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDMpLAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMTkpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFFMTYsIEFEQzExLCBBREMxMSk7CitQSU5fREVDTF8oQUUxNiwgU0lHX0VYUFJfTElTVF9QVFIoQUUxNiwgU0FMVDEyKSwgU0lHX0VYUFJfTElTVF9QVFIoQUUxNiwgR1BJVTMpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUUxNiwgQURDMTEpKTsKK0dST1VQX0RFQ0woU0FMVDEyRzEsIEFFMTYpOworRlVOQ19ERUNMXzIoU0FMVDEyLCBTQUxUMTJHMCwgU0FMVDEyRzEpOworRlVOQ19HUk9VUF9ERUNMKEdQSVUzLCBBRTE2KTsKK0ZVTkNfR1JPVVBfREVDTChBREMxMSwgQUUxNik7CisKKyNkZWZpbmUgQUMxNiAxNjQKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFDMTYsIFNBTFQxMywgU0FMVDEzRzEsIFNBTFQxMywgU0lHX0RFU0NfU0VUKFNDVTQzNCwgNCksCisJCQlTSUdfREVTQ19DTEVBUihTQ1U2OTQsIDIwKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQzE2LCBHUElVNCwgR1BJVTQsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDQpLAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMjApKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFDMTYsIEFEQzEyLCBBREMxMik7CitQSU5fREVDTF8oQUMxNiwgU0lHX0VYUFJfTElTVF9QVFIoQUMxNiwgU0FMVDEzKSwgU0lHX0VYUFJfTElTVF9QVFIoQUMxNiwgR1BJVTQpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUMxNiwgQURDMTIpKTsKK0dST1VQX0RFQ0woU0FMVDEzRzEsIEFDMTYpOworRlVOQ19ERUNMXzIoU0FMVDEzLCBTQUxUMTNHMCwgU0FMVDEzRzEpOworRlVOQ19HUk9VUF9ERUNMKEdQSVU0LCBBQzE2KTsKK0ZVTkNfR1JPVVBfREVDTChBREMxMiwgQUMxNik7CisKKyNkZWZpbmUgQUExNiAxNjUKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFBMTYsIFNBTFQxNCwgU0FMVDE0RzEsIFNBTFQxNCwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgNSksCisJCQlTSUdfREVTQ19DTEVBUihTQ1U2OTQsIDIxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQTE2LCBHUElVNSwgR1BJVTUsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDUpLAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMjEpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFBMTYsIEFEQzEzLCBBREMxMyk7CitQSU5fREVDTF8oQUExNiwgU0lHX0VYUFJfTElTVF9QVFIoQUExNiwgU0FMVDE0KSwgU0lHX0VYUFJfTElTVF9QVFIoQUExNiwgR1BJVTUpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUExNiwgQURDMTMpKTsKK0dST1VQX0RFQ0woU0FMVDE0RzEsIEFBMTYpOworRlVOQ19ERUNMXzIoU0FMVDE0LCBTQUxUMTRHMCwgU0FMVDE0RzEpOworRlVOQ19HUk9VUF9ERUNMKEdQSVU1LCBBQTE2KTsKK0ZVTkNfR1JPVVBfREVDTChBREMxMywgQUExNik7CisKKyNkZWZpbmUgQUQxNiAxNjYKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFEMTYsIFNBTFQxNSwgU0FMVDE1RzEsIFNBTFQxNSwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgNiksCisJCQlTSUdfREVTQ19DTEVBUihTQ1U2OTQsIDIyKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBRDE2LCBHUElVNiwgR1BJVTYsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDYpLAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMjIpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFEMTYsIEFEQzE0LCBBREMxNCk7CitQSU5fREVDTF8oQUQxNiwgU0lHX0VYUFJfTElTVF9QVFIoQUQxNiwgU0FMVDE1KSwgU0lHX0VYUFJfTElTVF9QVFIoQUQxNiwgR1BJVTYpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUQxNiwgQURDMTQpKTsKK0dST1VQX0RFQ0woU0FMVDE1RzEsIEFEMTYpOworRlVOQ19ERUNMXzIoU0FMVDE1LCBTQUxUMTVHMCwgU0FMVDE1RzEpOworRlVOQ19HUk9VUF9ERUNMKEdQSVU2LCBBRDE2KTsKK0ZVTkNfR1JPVVBfREVDTChBREMxNCwgQUQxNik7CisKKyNkZWZpbmUgQUMxNyAxNjcKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFDMTcsIFNBTFQxNiwgU0FMVDE2RzEsIFNBTFQxNiwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgNyksCisJCQlTSUdfREVTQ19DTEVBUihTQ1U2OTQsIDIzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQzE3LCBHUElVNywgR1BJVTcsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDcpLAorCQkJU0lHX0RFU0NfU0VUKFNDVTY5NCwgMjMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFDMTcsIEFEQzE1LCBBREMxNSk7CitQSU5fREVDTF8oQUMxNywgU0lHX0VYUFJfTElTVF9QVFIoQUMxNywgU0FMVDE2KSwgU0lHX0VYUFJfTElTVF9QVFIoQUMxNywgR1BJVTcpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUMxNywgQURDMTUpKTsKK0dST1VQX0RFQ0woU0FMVDE2RzEsIEFDMTcpOworRlVOQ19ERUNMXzIoU0FMVDE2LCBTQUxUMTZHMCwgU0FMVDE2RzEpOworRlVOQ19HUk9VUF9ERUNMKEdQSVU3LCBBQzE3KTsKK0ZVTkNfR1JPVVBfREVDTChBREMxNSwgQUMxNyk7CisKKyNkZWZpbmUgQUIxNSAxNjgKK1NTU0ZfUElOX0RFQ0woQUIxNSwgR1BJT1YwLCBTSU9TMywgU0lHX0RFU0NfU0VUKFNDVTQzNCwgOCkpOworCisjZGVmaW5lIEFGMTQgMTY5CitTU1NGX1BJTl9ERUNMKEFGMTQsIEdQSU9WMSwgU0lPUzUsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDkpKTsKKworI2RlZmluZSBBRDE0IDE3MAorU1NTRl9QSU5fREVDTChBRDE0LCBHUElPVjIsIFNJT1BXUkVRLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAxMCkpOworCisjZGVmaW5lIEFDMTUgMTcxCitTU1NGX1BJTl9ERUNMKEFDMTUsIEdQSU9WMywgU0lPT05DVFJMLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAxMSkpOworCisjZGVmaW5lIEFFMTUgMTcyCitTU1NGX1BJTl9ERUNMKEFFMTUsIEdQSU9WNCwgU0lPUFdSR0QsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDEyKSk7CisKKyNkZWZpbmUgQUUxNCAxNzMKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFFMTQsIExQQ1BELCBMUENQRCwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMTMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFFMTQsIExIUEQsIExIUEQsIFNJR19ERVNDX1NFVChTQ1U0RDQsIDEzKSk7CitQSU5fREVDTF8yKEFFMTQsIEdQSU9WNSwgTFBDUEQsIExIUEQpOworRlVOQ19HUk9VUF9ERUNMKExQQ1BELCBBRTE0KTsKK0ZVTkNfR1JPVVBfREVDTChMSFBELCBBRTE0KTsKKworI2RlZmluZSBBRDE1IDE3NAorU1NTRl9QSU5fREVDTChBRDE1LCBHUElPVjYsIExQQ1BNRSwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMTQpKTsKKworI2RlZmluZSBBRjE1IDE3NQorU1NTRl9QSU5fREVDTChBRjE1LCBHUElPVjcsIExQQ1NNSSwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMTUpKTsKKworI2RlZmluZSBBQjcgMTc2CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQjcsIExBRDAsIExQQywgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMTYpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFCNywgRVNQSUQwLCBFU1BJLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAxNiksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDYpKTsKK1BJTl9ERUNMXzIoQUI3LCBHUElPVzAsIExBRDAsIEVTUElEMCk7CisKKyNkZWZpbmUgQUI4IDE3NworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUI4LCBMQUQxLCBMUEMsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDE3KSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTEwLCA2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQjgsIEVTUElEMSwgRVNQSSwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMTcpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCA2KSk7CitQSU5fREVDTF8yKEFCOCwgR1BJT1cxLCBMQUQxLCBFU1BJRDEpOworCisjZGVmaW5lIEFDOCAxNzgKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFDOCwgTEFEMiwgTFBDLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAxOCksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUxMCwgNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUM4LCBFU1BJRDIsIEVTUEksIFNJR19ERVNDX1NFVChTQ1U0MzQsIDE4KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUxMCwgNikpOworUElOX0RFQ0xfMihBQzgsIEdQSU9XMiwgTEFEMiwgRVNQSUQyKTsKKworI2RlZmluZSBBQzcgMTc5CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQzcsIExBRDMsIExQQywgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMTkpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFDNywgRVNQSUQzLCBFU1BJLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAxOSksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MTAsIDYpKTsKK1BJTl9ERUNMXzIoQUM3LCBHUElPVzMsIExBRDMsIEVTUElEMyk7CisKKyNkZWZpbmUgQUU3IDE4MAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUU3LCBMQ0xLLCBMUEMsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDIwKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTEwLCA2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBRTcsIEVTUElDSywgRVNQSSwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMjApLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCA2KSk7CitQSU5fREVDTF8yKEFFNywgR1BJT1c0LCBMQ0xLLCBFU1BJQ0spOworCisjZGVmaW5lIEFGNyAxODEKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFGNywgTEZSQU1FLCBMUEMsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDIxKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTEwLCA2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBRjcsIEVTUElDUywgRVNQSSwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMjEpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCA2KSk7CitQSU5fREVDTF8yKEFGNywgR1BJT1c1LCBMRlJBTUUsIEVTUElDUyk7CisKKyNkZWZpbmUgQUQ3IDE4MgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUQ3LCBMU0lSUSwgTFNJUlEsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDIyKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTEwLCA2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBRDcsIEVTUElBTFQsIEVTUElBTFQsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDIyKSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUxMCwgNikpOworUElOX0RFQ0xfMihBRDcsIEdQSU9XNiwgTFNJUlEsIEVTUElBTFQpOworRlVOQ19HUk9VUF9ERUNMKExTSVJRLCBBRDcpOworRlVOQ19HUk9VUF9ERUNMKEVTUElBTFQsIEFENyk7CisKKyNkZWZpbmUgQUQ4IDE4MworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUQ4LCBMUENSU1QsIExQQywgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMjMpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MTAsIDYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFEOCwgRVNQSVJTVCwgRVNQSSwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMjMpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTEwLCA2KSk7CitQSU5fREVDTF8yKEFEOCwgR1BJT1c3LCBMUENSU1QsIEVTUElSU1QpOworCitGVU5DX0dST1VQX0RFQ0woTFBDLCBBQjcsIEFCOCwgQUM4LCBBQzcsIEFFNywgQUY3LCBBRDgpOworRlVOQ19HUk9VUF9ERUNMKEVTUEksIEFCNywgQUI4LCBBQzgsIEFDNywgQUU3LCBBRjcsIEFEOCk7CisKKyNkZWZpbmUgQUU4IDE4NAorU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoQUU4LCBTUEkyQ1MwLCBTUEkyLCBTUEkyLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAyNCkpOworUElOX0RFQ0xfMShBRTgsIEdQSU9YMCwgU1BJMkNTMCk7CisKKyNkZWZpbmUgQUE5IDE4NQorU1NTRl9QSU5fREVDTChBQTksIEdQSU9YMSwgU1BJMkNTMSwgU0lHX0RFU0NfU0VUKFNDVTQzNCwgMjUpKTsKKworI2RlZmluZSBBQzkgMTg2CitTU1NGX1BJTl9ERUNMKEFDOSwgR1BJT1gyLCBTUEkyQ1MyLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAyNikpOworCisjZGVmaW5lIEFGOCAxODcKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFGOCwgU1BJMkNLLCBTUEkyLCBTUEkyLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAyNykpOworUElOX0RFQ0xfMShBRjgsIEdQSU9YMywgU1BJMkNLKTsKKworI2RlZmluZSBBQjkgMTg4CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBQjksIFNQSTJNT1NJLCBTUEkyLCBTUEkyLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAyOCkpOworUElOX0RFQ0xfMShBQjksIEdQSU9YNCwgU1BJMk1PU0kpOworCisjZGVmaW5lIEFEOSAxODkKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFEOSwgU1BJMk1JU08sIFNQSTIsIFNQSTIsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDI5KSk7CitQSU5fREVDTF8xKEFEOSwgR1BJT1g1LCBTUEkyTUlTTyk7CisKK0dST1VQX0RFQ0woU1BJMiwgQUU4LCBBRjgsIEFCOSwgQUQ5KTsKKworI2RlZmluZSBBRjkgMTkwCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBRjksIFNQSTJEUTIsIFFTUEkyLCBTUEkyLCBTSUdfREVTQ19TRVQoU0NVNDM0LCAzMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoQUY5LCBUWEQxMiwgVUFSVDEyRzEsIFVBUlQxMiwgU0lHX0RFU0NfU0VUKFNDVTRENCwgMzApKTsKK1BJTl9ERUNMXzIoQUY5LCBHUElPWDYsIFNQSTJEUTIsIFRYRDEyKTsKKworI2RlZmluZSBBQjEwIDE5MQorU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoQUIxMCwgU1BJMkRRMywgUVNQSTIsIFNQSTIsIFNJR19ERVNDX1NFVChTQ1U0MzQsIDMxKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBQjEwLCBSWEQxMiwgVUFSVDEyRzEsIFVBUlQxMiwKKwkJCVNJR19ERVNDX1NFVChTQ1U0RDQsIDMxKSk7CitQSU5fREVDTF8yKEFCMTAsIEdQSU9YNywgU1BJMkRRMywgUlhEMTIpOworCitHUk9VUF9ERUNMKFFTUEkyLCBBRTgsIEFGOCwgQUI5LCBBRDksIEFGOSwgQUIxMCk7CitGVU5DX0RFQ0xfMihTUEkyLCBTUEkyLCBRU1BJMik7CisKK0dST1VQX0RFQ0woVUFSVDEyRzEsIEFGOSwgQUIxMCk7CitGVU5DX0RFQ0xfMihVQVJUMTIsIFVBUlQxMkcwLCBVQVJUMTJHMSk7CisKKyNkZWZpbmUgQUYxMSAxOTIKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFGMTEsIFNBTFQ1LCBTQUxUNSwgU0lHX0RFU0NfU0VUKFNDVTQzOCwgMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUYxMSwgV0RUUlNUMSwgV0RUUlNUMSwgU0lHX0RFU0NfU0VUKFNDVTREOCwgMCkpOworUElOX0RFQ0xfMihBRjExLCBHUElPWTAsIFNBTFQ1LCBXRFRSU1QxKTsKK0ZVTkNfR1JPVVBfREVDTChTQUxUNSwgQUYxMSk7CitGVU5DX0dST1VQX0RFQ0woV0RUUlNUMSwgQUYxMSk7CisKKyNkZWZpbmUgQUQxMiAxOTMKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFEMTIsIFNBTFQ2LCBTQUxUNiwgU0lHX0RFU0NfU0VUKFNDVTQzOCwgMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUQxMiwgV0RUUlNUMiwgV0RUUlNUMiwgU0lHX0RFU0NfU0VUKFNDVTREOCwgMSkpOworUElOX0RFQ0xfMihBRDEyLCBHUElPWTEsIFNBTFQ2LCBXRFRSU1QyKTsKK0ZVTkNfR1JPVVBfREVDTChTQUxUNiwgQUQxMik7CitGVU5DX0dST1VQX0RFQ0woV0RUUlNUMiwgQUQxMik7CisKKyNkZWZpbmUgQUUxMSAxOTQKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFFMTEsIFNBTFQ3LCBTQUxUNywgU0lHX0RFU0NfU0VUKFNDVTQzOCwgMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUUxMSwgV0RUUlNUMywgV0RUUlNUMywgU0lHX0RFU0NfU0VUKFNDVTREOCwgMikpOworUElOX0RFQ0xfMihBRTExLCBHUElPWTIsIFNBTFQ3LCBXRFRSU1QzKTsKK0ZVTkNfR1JPVVBfREVDTChTQUxUNywgQUUxMSk7CitGVU5DX0dST1VQX0RFQ0woV0RUUlNUMywgQUUxMSk7CisKKyNkZWZpbmUgQUExMiAxOTUKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFBMTIsIFNBTFQ4LCBTQUxUOCwgU0lHX0RFU0NfU0VUKFNDVTQzOCwgMykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUExMiwgV0RUUlNUNCwgV0RUUlNUNCwgU0lHX0RFU0NfU0VUKFNDVTREOCwgMykpOworUElOX0RFQ0xfMihBQTEyLCBHUElPWTMsIFNBTFQ4LCBXRFRSU1Q0KTsKK0ZVTkNfR1JPVVBfREVDTChTQUxUOCwgQUExMik7CitGVU5DX0dST1VQX0RFQ0woV0RUUlNUNCwgQUExMik7CisKKyNkZWZpbmUgQUUxMiAxOTYKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFFMTIsIEZXU1BJRFEyLCBGV1FTUElELCBGV1NQSUQsCisJCQlTSUdfREVTQ19TRVQoU0NVNDM4LCA0KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBRTEyLCBHUElPWTQsIEdQSU9ZNCk7CitQSU5fREVDTF8oQUUxMiwgU0lHX0VYUFJfTElTVF9QVFIoQUUxMiwgRldTUElEUTIpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUUxMiwgR1BJT1k0KSk7CisKKyNkZWZpbmUgQUYxMiAxOTcKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFGMTIsIEZXU1BJRFEzLCBGV1FTUElELCBGV1NQSUQsCisJCQlTSUdfREVTQ19TRVQoU0NVNDM4LCA1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBRjEyLCBHUElPWTUsIEdQSU9ZNSk7CitQSU5fREVDTF8oQUYxMiwgU0lHX0VYUFJfTElTVF9QVFIoQUYxMiwgRldTUElEUTMpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUYxMiwgR1BJT1k1KSk7CisKKyNkZWZpbmUgQUMxMiAxOTgKK1NTU0ZfUElOX0RFQ0woQUMxMiwgR1BJT1k2LCBGV1NQSUFCUiwgU0lHX0RFU0NfU0VUKFNDVTQzOCwgNikpOworCisjZGVmaW5lIEFCMTIgMTk5CitTU1NGX1BJTl9ERUNMKEFCMTIsIEdQSU9ZNywgRldTUElXUCwgU0lHX0RFU0NfU0VUKFNDVTQzOCwgNykpOworCisjZGVmaW5lIEFDMTAgMjAwCitTU1NGX1BJTl9ERUNMKEFDMTAsIEdQSU9aMCwgU1BJMUNTMSwgU0lHX0RFU0NfU0VUKFNDVTQzOCwgOCkpOworCisjZGVmaW5lIEFEMTAgMjAxCitTU1NGX1BJTl9ERUNMKEFEMTAsIEdQSU9aMSwgU1BJMUFCUiwgU0lHX0RFU0NfU0VUKFNDVTQzOCwgOSkpOworCisjZGVmaW5lIEFFMTAgMjAyCitTU1NGX1BJTl9ERUNMKEFFMTAsIEdQSU9aMiwgU1BJMVdQLCBTSUdfREVTQ19TRVQoU0NVNDM4LCAxMCkpOworCisjZGVmaW5lIEFCMTEgMjAzCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBQjExLCBTUEkxQ0ssIFNQSTEsIFNQSTEsIFNJR19ERVNDX1NFVChTQ1U0MzgsIDExKSk7CitQSU5fREVDTF8xKEFCMTEsIEdQSU9aMywgU1BJMUNLKTsKKworI2RlZmluZSBBQzExIDIwNAorU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoQUMxMSwgU1BJMU1PU0ksIFNQSTEsIFNQSTEsIFNJR19ERVNDX1NFVChTQ1U0MzgsIDEyKSk7CitQSU5fREVDTF8xKEFDMTEsIEdQSU9aNCwgU1BJMU1PU0kpOworCisjZGVmaW5lIEFBMTEgMjA1CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBQTExLCBTUEkxTUlTTywgU1BJMSwgU1BJMSwgU0lHX0RFU0NfU0VUKFNDVTQzOCwgMTMpKTsKK1BJTl9ERUNMXzEoQUExMSwgR1BJT1o1LCBTUEkxTUlTTyk7CisKK0dST1VQX0RFQ0woU1BJMSwgQUIxMSwgQUMxMSwgQUExMSk7CisKKyNkZWZpbmUgQUQxMSAyMDYKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKEFEMTEsIFNQSTFEUTIsIFFTUEkxLCBTUEkxLCBTSUdfREVTQ19TRVQoU0NVNDM4LCAxNCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoQUQxMSwgVFhEMTMsIFVBUlQxM0cxLCBVQVJUMTMsCisJCQlTSUdfREVTQ19TRVQoU0NVNDM4LCAxNCkpOworUElOX0RFQ0xfMihBRDExLCBHUElPWjYsIFNQSTFEUTIsIFRYRDEzKTsKKworI2RlZmluZSBBRjEwIDIwNworU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoQUYxMCwgU1BJMURRMywgUVNQSTEsIFNQSTEsIFNJR19ERVNDX1NFVChTQ1U0MzgsIDE1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBRjEwLCBSWEQxMywgVUFSVDEzRzEsIFVBUlQxMywKKwkJCVNJR19ERVNDX1NFVChTQ1U0MzgsIDE1KSk7CitQSU5fREVDTF8yKEFGMTAsIEdQSU9aNywgU1BJMURRMywgUlhEMTMpOworCitHUk9VUF9ERUNMKFFTUEkxLCBBQjExLCBBQzExLCBBQTExLCBBRDExLCBBRjEwKTsKK0ZVTkNfREVDTF8yKFNQSTEsIFNQSTEsIFFTUEkxKTsKKworR1JPVVBfREVDTChVQVJUMTNHMSwgQUQxMSwgQUYxMCk7CitGVU5DX0RFQ0xfMihVQVJUMTMsIFVBUlQxM0cwLCBVQVJUMTNHMSk7CisKKyNkZWZpbmUgQzYgMjA4CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDNiwgUkdNSUkxVFhDSywgUkdNSUkxLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAwKSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUwMCwgNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQzYsIFJNSUkxUkNMS08sIFJNSUkxLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAwKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTAwLCA2KSk7CitQSU5fREVDTF8yKEM2LCBHUElPMThBMCwgUkdNSUkxVFhDSywgUk1JSTFSQ0xLTyk7CisKKyNkZWZpbmUgRDYgMjA5CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhENiwgUkdNSUkxVFhDVEwsIFJHTUlJMSwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMSksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQ2LCBSTUlJMVRYRU4sIFJNSUkxLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAxKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTAwLCA2KSk7CitQSU5fREVDTF8yKEQ2LCBHUElPMThBMSwgUkdNSUkxVFhDVEwsIFJNSUkxVFhFTik7CisKKyNkZWZpbmUgRDUgMjEwCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhENSwgUkdNSUkxVFhEMCwgUkdNSUkxLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAyKSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUwMCwgNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRDUsIFJNSUkxVFhEMCwgUk1JSTEsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDIpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MDAsIDYpKTsKK1BJTl9ERUNMXzIoRDUsIEdQSU8xOEEyLCBSR01JSTFUWEQwLCBSTUlJMVRYRDApOworCisjZGVmaW5lIEEzIDIxMQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQTMsIFJHTUlJMVRYRDEsIFJHTUlJMSwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMyksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEEzLCBSTUlJMVRYRDEsIFJNSUkxLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAzKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTAwLCA2KSk7CitQSU5fREVDTF8yKEEzLCBHUElPMThBMywgUkdNSUkxVFhEMSwgUk1JSTFUWEQxKTsKKworI2RlZmluZSBDNSAyMTIKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEM1LCBSR01JSTFUWEQyLCBSR01JSTEsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDQpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTAwLCA2KSk7CitQSU5fREVDTF8xKEM1LCBHUElPMThBNCwgUkdNSUkxVFhEMik7CisKKyNkZWZpbmUgRTYgMjEzCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFNiwgUkdNSUkxVFhEMywgUkdNSUkxLCBTSUdfREVTQ19TRVQoU0NVNDAwLCA1KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUwMCwgNikpOworUElOX0RFQ0xfMShFNiwgR1BJTzE4QTUsIFJHTUlJMVRYRDMpOworCisjZGVmaW5lIEIzIDIxNAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQjMsIFJHTUlJMVJYQ0ssIFJHTUlJMSwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgNiksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIzLCBSTUlJMVJDTEtJLCBSTUlJMSwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgNiksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUwMCwgNikpOworUElOX0RFQ0xfMihCMywgR1BJTzE4QTYsIFJHTUlJMVJYQ0ssIFJNSUkxUkNMS0kpOworCisjZGVmaW5lIEEyIDIxNQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQTIsIFJHTUlJMVJYQ1RMLCBSR01JSTEsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDcpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTAwLCA2KSk7CitQSU5fREVDTF8xKEEyLCBHUElPMThBNywgUkdNSUkxUlhDVEwpOworCisjZGVmaW5lIEIyIDIxNgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQjIsIFJHTUlJMVJYRDAsIFJHTUlJMSwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgOCksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIyLCBSTUlJMVJYRDAsIFJNSUkxLCBTSUdfREVTQ19TRVQoU0NVNDAwLCA4KSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTAwLCA2KSk7CitQSU5fREVDTF8yKEIyLCBHUElPMThCMCwgUkdNSUkxUlhEMCwgUk1JSTFSWEQwKTsKKworI2RlZmluZSBCMSAyMTcKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEIxLCBSR01JSTFSWEQxLCBSR01JSTEsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDkpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTAwLCA2KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhCMSwgUk1JSTFSWEQxLCBSTUlJMSwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgOSksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUwMCwgNikpOworUElOX0RFQ0xfMihCMSwgR1BJTzE4QjEsIFJHTUlJMVJYRDEsIFJNSUkxUlhEMSk7CisKKyNkZWZpbmUgQzQgMjE4CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDNCwgUkdNSUkxUlhEMiwgUkdNSUkxLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAxMCksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDYpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEM0LCBSTUlJMUNSU0RWLCBSTUlJMSwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMTApLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MDAsIDYpKTsKK1BJTl9ERUNMXzIoQzQsIEdQSU8xOEIyLCBSR01JSTFSWEQyLCBSTUlJMUNSU0RWKTsKKworI2RlZmluZSBFNSAyMTkKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEU1LCBSR01JSTFSWEQzLCBSR01JSTEsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDExKSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUwMCwgNikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTUsIFJNSUkxUlhFUiwgUk1JSTEsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDExKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTAwLCA2KSk7CitQSU5fREVDTF8yKEU1LCBHUElPMThCMywgUkdNSUkxUlhEMywgUk1JSTFSWEVSKTsKKworRlVOQ19HUk9VUF9ERUNMKFJHTUlJMSwgQzYsIEQ2LCBENSwgQTMsIEM1LCBFNiwgQjMsIEEyLCBCMiwgQjEsIEM0LCBFNSk7CitGVU5DX0dST1VQX0RFQ0woUk1JSTEsIEM2LCBENiwgRDUsIEEzLCBCMywgQjIsIEIxLCBDNCwgRTUpOworCisjZGVmaW5lIEQ0IDIyMAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRDQsIFJHTUlJMlRYQ0ssIFJHTUlJMiwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMTIpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTAwLCA3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhENCwgUk1JSTJSQ0xLTywgUk1JSTIsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDEyKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTAwLCA3KSk7CitQSU5fREVDTF8yKEQ0LCBHUElPMThCNCwgUkdNSUkyVFhDSywgUk1JSTJSQ0xLTyk7CisKKyNkZWZpbmUgQzIgMjIxCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDMiwgUkdNSUkyVFhDVEwsIFJHTUlJMiwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMTMpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTAwLCA3KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhDMiwgUk1JSTJUWEVOLCBSTUlJMiwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMTMpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MDAsIDcpKTsKK1BJTl9ERUNMXzIoQzIsIEdQSU8xOEI1LCBSR01JSTJUWENUTCwgUk1JSTJUWEVOKTsKKworI2RlZmluZSBDMSAyMjIKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEMxLCBSR01JSTJUWEQwLCBSR01JSTIsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDE0KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUwMCwgNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQzEsIFJNSUkyVFhEMCwgUk1JSTIsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDE0KSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTAwLCA3KSk7CitQSU5fREVDTF8yKEMxLCBHUElPMThCNiwgUkdNSUkyVFhEMCwgUk1JSTJUWEQwKTsKKworI2RlZmluZSBEMyAyMjMKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQzLCBSR01JSTJUWEQxLCBSR01JSTIsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDE1KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUwMCwgNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRDMsIFJNSUkyVFhEMSwgUk1JSTIsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDE1KSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTAwLCA3KSk7CitQSU5fREVDTF8yKEQzLCBHUElPMThCNywgUkdNSUkyVFhEMSwgUk1JSTJUWEQxKTsKKworI2RlZmluZSBFNCAyMjQKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEU0LCBSR01JSTJUWEQyLCBSR01JSTIsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDE2KSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUwMCwgNykpOworUElOX0RFQ0xfMShFNCwgR1BJTzE4QzAsIFJHTUlJMlRYRDIpOworCisjZGVmaW5lIEY1IDIyNQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRjUsIFJHTUlJMlRYRDMsIFJHTUlJMiwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMTcpLAorCQkJICBTSUdfREVTQ19TRVQoU0NVNTAwLCA3KSk7CitQSU5fREVDTF8xKEY1LCBHUElPMThDMSwgUkdNSUkyVFhEMyk7CisKKyNkZWZpbmUgRDIgMjI2CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMiwgUkdNSUkyUlhDSywgUkdNSUkyLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAxOCksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDcpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQyLCBSTUlJMlJDTEtJLCBSTUlJMiwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMTgpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MDAsIDcpKTsKK1BJTl9ERUNMXzIoRDIsIEdQSU8xOEMyLCBSR01JSTJSWENLLCBSTUlJMlJDTEtJKTsKKworI2RlZmluZSBFMyAyMjcKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUzLCBSR01JSTJSWENUTCwgUkdNSUkyLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAxOSksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDcpKTsKK1BJTl9ERUNMXzEoRTMsIEdQSU8xOEMzLCBSR01JSTJSWENUTCk7CisKKyNkZWZpbmUgRDEgMjI4CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhEMSwgUkdNSUkyUlhEMCwgUkdNSUkyLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAyMCksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDcpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEQxLCBSTUlJMlJYRDAsIFJNSUkyLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAyMCksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUwMCwgNykpOworUElOX0RFQ0xfMihEMSwgR1BJTzE4QzQsIFJHTUlJMlJYRDAsIFJNSUkyUlhEMCk7CisKKyNkZWZpbmUgRjQgMjI5CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhGNCwgUkdNSUkyUlhEMSwgUkdNSUkyLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAyMSksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDcpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEY0LCBSTUlJMlJYRDEsIFJNSUkyLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAyMSksCisJCQkgIFNJR19ERVNDX0NMRUFSKFNDVTUwMCwgNykpOworUElOX0RFQ0xfMihGNCwgR1BJTzE4QzUsIFJHTUlJMlJYRDEsIFJNSUkyUlhEMSk7CisKKyNkZWZpbmUgRTIgMjMwCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhFMiwgUkdNSUkyUlhEMiwgUkdNSUkyLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAyMiksCisJCQkgIFNJR19ERVNDX1NFVChTQ1U1MDAsIDcpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUyLCBSTUlJMkNSU0RWLCBSTUlJMiwgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMjIpLAorCQkJICBTSUdfREVTQ19DTEVBUihTQ1U1MDAsIDcpKTsKK1BJTl9ERUNMXzIoRTIsIEdQSU8xOEM2LCBSR01JSTJSWEQyLCBSTUlJMkNSU0RWKTsKKworI2RlZmluZSBFMSAyMzEKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEUxLCBSR01JSTJSWEQzLCBSR01JSTIsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDIzKSwKKwkJCSAgU0lHX0RFU0NfU0VUKFNDVTUwMCwgNykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coRTEsIFJNSUkyUlhFUiwgUk1JSTIsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDIzKSwKKwkJCSAgU0lHX0RFU0NfQ0xFQVIoU0NVNTAwLCA3KSk7CitQSU5fREVDTF8yKEUxLCBHUElPMThDNywgUkdNSUkyUlhEMywgUk1JSTJSWEVSKTsKKworRlVOQ19HUk9VUF9ERUNMKFJHTUlJMiwgRDQsIEMyLCBDMSwgRDMsIEU0LCBGNSwgRDIsIEUzLCBEMSwgRjQsIEUyLCBFMSk7CitGVU5DX0dST1VQX0RFQ0woUk1JSTIsIEQ0LCBDMiwgQzEsIEQzLCBEMiwgRDEsIEY0LCBFMiwgRTEpOworCisjZGVmaW5lIEFCNCAyMzIKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKEFCNCwgU0QzQ0xLLCBTRDMsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDI0KSk7CitQSU5fREVDTF8xKEFCNCwgR1BJTzE4RDAsIFNEM0NMSyk7CisKKyNkZWZpbmUgQUE0IDIzMworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUE0LCBTRDNDTUQsIFNEMywgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMjUpKTsKK1BJTl9ERUNMXzEoQUE0LCBHUElPMThEMSwgU0QzQ01EKTsKKworI2RlZmluZSBBQzQgMjM0CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQzQsIFNEM0RBVDAsIFNEMywgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMjYpKTsKK1BJTl9ERUNMXzEoQUM0LCBHUElPMThEMiwgU0QzREFUMCk7CisKKyNkZWZpbmUgQUE1IDIzNQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUE1LCBTRDNEQVQxLCBTRDMsIFNJR19ERVNDX1NFVChTQ1U0MDAsIDI3KSk7CitQSU5fREVDTF8xKEFBNSwgR1BJTzE4RDMsIFNEM0RBVDEpOworCisjZGVmaW5lIFk1IDIzNgorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coWTUsIFNEM0RBVDIsIFNEMywgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMjgpKTsKK1BJTl9ERUNMXzEoWTUsIEdQSU8xOEQ0LCBTRDNEQVQyKTsKKworI2RlZmluZSBBQjUgMjM3CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhBQjUsIFNEM0RBVDMsIFNEMywgU0lHX0RFU0NfU0VUKFNDVTQwMCwgMjkpKTsKK1BJTl9ERUNMXzEoQUI1LCBHUElPMThENSwgU0QzREFUMyk7CisKKyNkZWZpbmUgQUI2IDIzOAorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUI2LCBTRDNDRCwgU0QzLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAzMCkpOworUElOX0RFQ0xfMShBQjYsIEdQSU8xOEQ2LCBTRDNDRCk7CisKKyNkZWZpbmUgQUM1IDIzOQorU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUM1LCBTRDNXUCwgU0QzLCBTSUdfREVTQ19TRVQoU0NVNDAwLCAzMSkpOworUElOX0RFQ0xfMShBQzUsIEdQSU8xOEQ3LCBTRDNXUCk7CisKK0ZVTkNfR1JPVVBfREVDTChTRDMsIEFCNCwgQUE0LCBBQzQsIEFBNSwgWTUsIEFCNSwgQUI2LCBBQzUpOworCisjZGVmaW5lIFkxIDI0MAorU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoWTEsIEZXU1BJRENTLCBGV1NQSUQsIEZXU1BJRCwgU0lHX0RFU0NfU0VUKFNDVTUwMCwgMykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coWTEsIFZCQ1MsIFZCLCBTSUdfREVTQ19TRVQoU0NVNTAwLCA1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhZMSwgU0QzREFUNCwgU0QzREFUNCwgU0lHX0RFU0NfU0VUKFNDVTQwNCwgMCkpOworUElOX0RFQ0xfMyhZMSwgR1BJTzE4RTAsIEZXU1BJRENTLCBWQkNTLCBTRDNEQVQ0KTsKK0ZVTkNfR1JPVVBfREVDTChTRDNEQVQ0LCBZMSk7CisKKyNkZWZpbmUgWTIgMjQxCitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhZMiwgRldTUElEQ0ssIEZXU1BJRCwgRldTUElELCBTSUdfREVTQ19TRVQoU0NVNTAwLCAzKSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhZMiwgVkJDSywgVkIsIFNJR19ERVNDX1NFVChTQ1U1MDAsIDUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKFkyLCBTRDNEQVQ1LCBTRDNEQVQ1LCBTSUdfREVTQ19TRVQoU0NVNDA0LCAxKSk7CitQSU5fREVDTF8zKFkyLCBHUElPMThFMSwgRldTUElEQ0ssIFZCQ0ssIFNEM0RBVDUpOworRlVOQ19HUk9VUF9ERUNMKFNEM0RBVDUsIFkyKTsKKworI2RlZmluZSBZMyAyNDIKK1NJR19FWFBSX0xJU1RfREVDTF9TRU1HKFkzLCBGV1NQSURNT1NJLCBGV1NQSUQsIEZXU1BJRCwKKwkJCVNJR19ERVNDX1NFVChTQ1U1MDAsIDMpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKFkzLCBWQk1PU0ksIFZCLCBTSUdfREVTQ19TRVQoU0NVNTAwLCA1KSk7CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhZMywgU0QzREFUNiwgU0QzREFUNiwgU0lHX0RFU0NfU0VUKFNDVTQwNCwgMikpOworUElOX0RFQ0xfMyhZMywgR1BJTzE4RTIsIEZXU1BJRE1PU0ksIFZCTU9TSSwgU0QzREFUNik7CitGVU5DX0dST1VQX0RFQ0woU0QzREFUNiwgWTMpOworCisjZGVmaW5lIFk0IDI0MworU0lHX0VYUFJfTElTVF9ERUNMX1NFTUcoWTQsIEZXU1BJRE1JU08sIEZXU1BJRCwgRldTUElELAorCQkJU0lHX0RFU0NfU0VUKFNDVTUwMCwgMykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coWTQsIFZCTUlTTywgVkIsIFNJR19ERVNDX1NFVChTQ1U1MDAsIDUpKTsKK1NJR19FWFBSX0xJU1RfREVDTF9TRVNHKFk0LCBTRDNEQVQ3LCBTRDNEQVQ3LCBTSUdfREVTQ19TRVQoU0NVNDA0LCAzKSk7CitQSU5fREVDTF8zKFk0LCBHUElPMThFMywgRldTUElETUlTTywgVkJNSVNPLCBTRDNEQVQ3KTsKK0ZVTkNfR1JPVVBfREVDTChTRDNEQVQ3LCBZNCk7CisKK0dST1VQX0RFQ0woRldTUElELCBZMSwgWTIsIFkzLCBZNCk7CitHUk9VUF9ERUNMKEZXUVNQSUQsIFkxLCBZMiwgWTMsIFk0LCBBRTEyLCBBRjEyKTsKK0ZVTkNfREVDTF8yKEZXU1BJRCwgRldTUElELCBGV1FTUElEKTsKK0ZVTkNfR1JPVVBfREVDTChWQiwgWTEsIFkyLCBZMywgWTQpOworCisvKgorICogRklYTUU6IENvbmZpcm0gYml0cyBhbmQgcHJpb3JpdGllcyBhcmUgdGhlIHJpZ2h0IHdheSBhcm91bmQgZm9yIHRoZQorICogZm9sbG93aW5nIDQgcGlucworICovCisjZGVmaW5lIEFGMjUgMjQ0CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBRjI1LCBJM0MzU0NMLCBJM0MzLCBJM0MzLCBTSUdfREVTQ19TRVQoU0NVNDM4LCAyMCksCisJCQlTSUdfREVTQ19TRVQoU0NVNEQ4LCAyMCkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUYyNSwgRlNJMUNMSywgRlNJMSwgU0lHX0RFU0NfQ0xFQVIoU0NVNDM4LCAyMCksCisJCQlTSUdfREVTQ19TRVQoU0NVNEQ4LCAyMCkpOworUElOX0RFQ0xfKEFGMjUsIFNJR19FWFBSX0xJU1RfUFRSKEFGMjUsIEkzQzNTQ0wpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUYyNSwgRlNJMUNMSykpOworCisjZGVmaW5lIEFFMjYgMjQ1CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBRTI2LCBJM0MzU0RBLCBJM0MzLCBJM0MzLCBTSUdfREVTQ19TRVQoU0NVNDM4LCAyMSksCisJCQlTSUdfREVTQ19TRVQoU0NVNEQ4LCAyMSkpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUUyNiwgRlNJMURBVEEsIEZTSTEsIFNJR19ERVNDX0NMRUFSKFNDVTQzOCwgMjEpLAorCQkJU0lHX0RFU0NfU0VUKFNDVTREOCwgMjEpKTsKK1BJTl9ERUNMXyhBRTI2LCBTSUdfRVhQUl9MSVNUX1BUUihBRTI2LCBJM0MzU0RBKSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEFFMjYsIEZTSTFEQVRBKSk7CisKK0dST1VQX0RFQ0woSTNDMywgQUYyNSwgQUUyNik7CitGVU5DX0RFQ0xfMihJM0MzLCBIVkkzQzMsIEkzQzMpOworRlVOQ19HUk9VUF9ERUNMKEZTSTEsIEFGMjUsIEFFMjYpOworCisjZGVmaW5lIEFFMjUgMjQ2CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBRTI1LCBJM0M0U0NMLCBJM0M0LCBJM0M0LCBTSUdfREVTQ19TRVQoU0NVNDM4LCAyMiksCisJCQlTSUdfREVTQ19TRVQoU0NVNEQ4LCAyMikpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUUyNSwgRlNJMkNMSywgRlNJMiwgU0lHX0RFU0NfQ0xFQVIoU0NVNDM4LCAyMiksCisJCQlTSUdfREVTQ19TRVQoU0NVNEQ4LCAyMikpOworUElOX0RFQ0xfKEFFMjUsIFNJR19FWFBSX0xJU1RfUFRSKEFFMjUsIEkzQzRTQ0wpLAorCSAgU0lHX0VYUFJfTElTVF9QVFIoQUUyNSwgRlNJMkNMSykpOworCisjZGVmaW5lIEFGMjQgMjQ3CitTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhBRjI0LCBJM0M0U0RBLCBJM0M0LCBJM0M0LCBTSUdfREVTQ19TRVQoU0NVNDM4LCAyMyksCisJCQlTSUdfREVTQ19TRVQoU0NVNEQ4LCAyMykpOworU0lHX0VYUFJfTElTVF9ERUNMX1NFU0coQUYyNCwgRlNJMkRBVEEsIEZTSTIsIFNJR19ERVNDX0NMRUFSKFNDVTQzOCwgMjMpLAorCQkJU0lHX0RFU0NfU0VUKFNDVTREOCwgMjMpKTsKK1BJTl9ERUNMXyhBRjI0LCBTSUdfRVhQUl9MSVNUX1BUUihBRjI0LCBJM0M0U0RBKSwKKwkgIFNJR19FWFBSX0xJU1RfUFRSKEFGMjQsIEZTSTJEQVRBKSk7CisKK0dST1VQX0RFQ0woSTNDNCwgQUUyNSwgQUYyNCk7CitGVU5DX0RFQ0xfMihJM0M0LCBIVkkzQzQsIEkzQzQpOworRlVOQ19HUk9VUF9ERUNMKEZTSTIsIEFFMjUsIEFGMjQpOworCisvKiBQaW5zLCBncm91cHMgYW5kIGZ1bmN0aW9ucyBhcmUgc29ydCgxKTplZCBhbHBoYWJldGljYWxseSBmb3Igc2FuaXR5ICovCisKK3N0YXRpYyBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBhc3BlZWRfZzZfcGluc1tBU1BFRURfRzZfTlJfUElOU10gPSB7CisJQVNQRUVEX1BJTkNUUkxfUElOKEExMSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEExMiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEExMyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEExNCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEExNSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEExNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEExNyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEExOCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEExOSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEEyKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQTIwKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQTIxKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQTIyKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQTIzKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQTI0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQTI1KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQTMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQTExKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUExMiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFBMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQTI0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUEyNSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFBMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQTQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQTUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQTkpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQjEwKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUIxMSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFCMTIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQjE1KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUIxOCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFCMTkpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQjIyKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUIyMyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFCMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQjI1KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUIyNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFCNCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFCNSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFCNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFCNyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFCOCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFCOSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFDMTApLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQzExKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUMxMiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFDMTUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQzE3KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUMxOCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFDMTkpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQzIyKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUMyMyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFDMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQzI2KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUM0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUM1KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUM3KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUM4KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUM5KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUQxMCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFEMTEpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBRDEyKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUQxNCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFEMTUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBRDE5KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUQyMCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFEMjIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBRDIzKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUQyNCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFEMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBRDI2KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUQ3KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUQ4KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUQ5KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUUxMCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFFMTEpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBRTEyKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUUxNCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFFMTUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBRTE4KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUUxOSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFFNyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFFOCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFGMTApLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBRjExKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUYxMiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFGMTQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBRjE1KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUY3KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUY4KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUY5KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQjEpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihCMTIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihCMTMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihCMTQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihCMTYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihCMTcpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihCMTgpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihCMiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEIyMCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEIyMSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEIyMiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEIyNCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEIyNSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEIyNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEIzKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQzEpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMTEpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMTIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMTMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMTQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMTUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMTYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMTcpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMTgpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMTkpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDMiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEMyMCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEMyMSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEMyMiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEMyMyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEMyNCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEMyNSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEMyNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEM0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQzUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihDNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEQxKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDExKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDEyKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDEzKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDE0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDE1KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDE2KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDE3KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDE4KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDE5KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihEMjApLAorCUFTUEVFRF9QSU5DVFJMX1BJTihEMjEpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihEMjIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihEMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihEMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihEMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihEMyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEQ0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRDUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihENiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEUxKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTExKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTEyKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTEzKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTE0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTE1KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTE2KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTE3KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTE4KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTE5KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihFMjApLAorCUFTUEVFRF9QSU5DVFJMX1BJTihFMjEpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihFMjIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihFMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihFMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihFMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihFMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihFMyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEU0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRTUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihFNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEYxMyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEYxNSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEYyMiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEYyMyksCisJQVNQRUVEX1BJTkNUUkxfUElOKEYyNCksCisJQVNQRUVEX1BJTkNUUkxfUElOKEYyNSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEYyNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEY0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oRjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihHMjIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihHMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihHMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihHMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihIMjIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihIMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihIMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihIMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihIMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihKMjIpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihKMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihKMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihKMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihKMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihLMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihLMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihLMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihLMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihMMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihMMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihMMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihNMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihNMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihNMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihNMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihOMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihOMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihOMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihOMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihQMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihQMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihQMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihQMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihSMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihSMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihSMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihUMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihUMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihUMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihUMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihVMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihVMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihVMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihWMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihWMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihWMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihXMjMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihXMjQpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihXMjYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihZMSksCisJQVNQRUVEX1BJTkNUUkxfUElOKFkyKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oWTIzKSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oWTI0KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oWTI1KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oWTI2KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oWTMpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihZNCksCisJQVNQRUVEX1BJTkNUUkxfUElOKFk1KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUIxNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFBMTcpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQjE3KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUUxNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFDMTYpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBQTE2KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUQxNiksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFGMjUpLAorCUFTUEVFRF9QSU5DVFJMX1BJTihBRTI2KSwKKwlBU1BFRURfUElOQ1RSTF9QSU4oQUUyNSksCisJQVNQRUVEX1BJTkNUUkxfUElOKEFGMjQpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBhc3BlZWRfcGluX2dyb3VwIGFzcGVlZF9nNl9ncm91cHNbXSA9IHsKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREMwKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREMxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREMxMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoQURDMTEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEFEQzEyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREMxMyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoQURDMTQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEFEQzE1KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREMyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREMzKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREM0KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREM1KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREM2KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREM3KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREM4KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChBREM5KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChCTUNJTlQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEVTUEkpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEVTUElBTFQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEZTSTEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEZTSTIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEZXU1BJQUJSKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChGV1NQSUQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEZXUVNQSUQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEZXU1BJV1ApLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEdQSVQwKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChHUElUMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoR1BJVDIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEdQSVQzKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChHUElUNCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoR1BJVDUpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEdQSVQ2KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChHUElUNyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoR1BJVTApLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEdQSVUxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChHUElVMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoR1BJVTMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEdQSVU0KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChHUElVNSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoR1BJVTYpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEdQSVU3KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChIVkkzQzMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEhWSTNDNCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoSTJDMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoSTJDMTApLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzExKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChJMkMxMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoSTJDMTMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzE0KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChJMkMxNSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoSTJDMTYpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzUpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzYpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzcpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzgpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkyQzkpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkzQzMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkzQzQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkzQzUpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEkzQzYpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKEpUQUdNKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChMSFBEKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChMSFNJUlEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKExQQyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTFBDSEMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKExQQ1BEKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChMUENQTUUpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKExQQ1NNSSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTFNJUlEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE1BQ0xJTksxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChNQUNMSU5LMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTUFDTElOSzMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE1BQ0xJTks0KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChNRElPMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTURJTzIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE1ESU8zKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChNRElPNCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTkNUUzEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5DVFMyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChOQ1RTMyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTkNUUzQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5EQ0QxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChORENEMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTkRDRDMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5EQ0Q0KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChORFNSMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTkRTUjIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5EU1IzKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChORFNSNCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTkRUUjEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5EVFIyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChORFRSMyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTkRUUjQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5SSTEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5SSTIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5SSTMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5SSTQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5SVFMxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChOUlRTMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoTlJUUzMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKE5SVFM0KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChPU0NDTEspLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFBFV0FLRSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTBHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTBHMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTFHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTFHMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTJHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTJHMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTNHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTNHMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTRHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTRHMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTVHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMTVHMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNMyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNNCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNNSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNNiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNNyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNOEcwKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChQV004RzEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFBXTTlHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUFdNOUcxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChRU1BJMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUVNQSTIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFJHTUlJMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUkdNSUkyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChSR01JSTMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFJHTUlJNCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUk1JSTEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFJNSUkyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChSTUlJMyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoUk1JSTQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFJYRDEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFJYRDIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFJYRDMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFJYRDQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNBTFQxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTQUxUMTBHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0FMVDEwRzEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNBTFQxMUcwKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTQUxUMTFHMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0FMVDEyRzApLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNBTFQxMkcxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTQUxUMTNHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0FMVDEzRzEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNBTFQxNEcwKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTQUxUMTRHMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0FMVDE1RzApLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNBTFQxNUcxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTQUxUMTZHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0FMVDE2RzEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNBTFQyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTQUxUMyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0FMVDQpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNBTFQ1KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTQUxUNiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0FMVDcpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNBTFQ4KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTQUxUOUcwKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTQUxUOUcxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTRDEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNEMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0QzKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTRDNEQVQ0KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTRDNEQVQ1KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTRDNEQVQ2KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTRDNEQVQ3KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTR1BNMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0dQUzEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNJT09OQ1RSTCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0lPUEJJKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTSU9QQk8pLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNJT1BXUkVRKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTSU9QV1JHRCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU0lPUzMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNJT1M1KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChTSU9TQ0kpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNQSTEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNQSTFBQlIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNQSTFDUzEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFNQSTFXUCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU1BJMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU1BJMkNTMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoU1BJMkNTMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVEFDSDApLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFRBQ0gxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUQUNIMTApLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFRBQ0gxMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVEFDSDEyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUQUNIMTMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFRBQ0gxNCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVEFDSDE1KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUQUNIMiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVEFDSDMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFRBQ0g0KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUQUNINSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVEFDSDYpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFRBQ0g3KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUQUNIOCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVEFDSDkpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFRIUlUwKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUSFJVMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVEhSVTIpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFRIUlUzKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUWEQxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUWEQyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUWEQzKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChUWEQ0KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChVQVJUMTApLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFVBUlQxMSksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVUFSVDEyRzApLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFVBUlQxMkcxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChVQVJUMTNHMCksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVUFSVDEzRzEpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFVBUlQ2KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChVQVJUNyksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVUFSVDgpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFVBUlQ5KSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChWQiksCisJQVNQRUVEX1BJTkNUUkxfR1JPVVAoVkdBSFMpLAorCUFTUEVFRF9QSU5DVFJMX0dST1VQKFZHQVZTKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChXRFRSU1QxKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChXRFRSU1QyKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChXRFRSU1QzKSwKKwlBU1BFRURfUElOQ1RSTF9HUk9VUChXRFRSU1Q0KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYXNwZWVkX3Bpbl9mdW5jdGlvbiBhc3BlZWRfZzZfZnVuY3Rpb25zW10gPSB7CisJQVNQRUVEX1BJTkNUUkxfRlVOQyhBREMwKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEFEQzEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoQURDMTApLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoQURDMTEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoQURDMTIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoQURDMTMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoQURDMTQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoQURDMTUpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoQURDMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhBREMzKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEFEQzQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoQURDNSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhBREM2KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEFEQzcpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoQURDOCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhBREM5KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEJNQ0lOVCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhFU1BJKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEVTUElBTFQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoRlNJMSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhGU0kyKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEZXU1BJQUJSKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEZXU1BJRCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhGV1NQSVdQKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVQwKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVQxKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVQyKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVQzKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVQ0KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVQ1KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVQ2KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVQ3KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVUwKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVUxKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVUyKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVUzKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVU0KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVU1KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVU2KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEdQSVU3KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEkyQzEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDMTApLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDMTEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDMTIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDMTMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDMTQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDMTUpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDMTYpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhJMkMzKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEkyQzQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDNSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhJMkM2KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEkyQzcpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTJDOCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhJMkM5KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEkzQzMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSTNDNCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhJM0M1KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKEkzQzYpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoSlRBR00pLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTEhQRCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhMSFNJUlEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTFBDKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKExQQ0hDKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKExQQ1BEKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKExQQ1BNRSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhMUENTTUkpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTFNJUlEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTUFDTElOSzEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTUFDTElOSzIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTUFDTElOSzMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTUFDTElOSzQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTURJTzEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTURJTzIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTURJTzMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTURJTzQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkNUUzEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkNUUzIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkNUUzMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkNUUzQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRDRDEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRDRDIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRDRDMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRDRDQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRTUjEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRTUjIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRTUjMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRTUjQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRUUjEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRUUjIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRUUjMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTkRUUjQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTlJJMSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhOUkkyKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKE5SSTMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoTlJJNCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhOUlRTMSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhOUlRTMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhOUlRTMyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhOUlRTNCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhPU0NDTEspLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoUEVXQUtFKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFBXTTApLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoUFdNMSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhQV00xMCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhQV00xMSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhQV00xMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhQV00xMyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhQV00xNCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhQV00xNSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhQV00yKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFBXTTMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoUFdNNCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhQV001KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFBXTTYpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoUFdNNyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhQV004KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFBXTTkpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoUkdNSUkxKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFJHTUlJMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhSR01JSTMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoUkdNSUk0KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFJNSUkxKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFJNSUkyKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFJNSUkzKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFJNSUk0KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFJYRDEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoUlhEMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhSWEQzKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFJYRDQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0FMVDEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0FMVDEwKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQxMSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhTQUxUMTIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0FMVDEzKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQxNCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhTQUxUMTUpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0FMVDE2KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQyKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQzKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQ0KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQ1KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQ2KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQ3KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQ4KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNBTFQ5KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNEMSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhTRDIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0QzKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNEM0RBVDQpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0QzREFUNSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhTRDNEQVQ2KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNEM0RBVDcpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0dQTTEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0dQUzEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0lPT05DVFJMKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNJT1BCSSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhTSU9QQk8pLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0lPUFdSRVEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0lPUFdSR0QpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0lPUzMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0lPUzUpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU0lPU0NJKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNQSTEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU1BJMUFCUiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhTUEkxQ1MxKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNQSTFXUCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhTUEkyKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFNQSTJDUzEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoU1BJMkNTMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNIMCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNIMSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNIMTApLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoVEFDSDExKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFRBQ0gxMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNIMTMpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoVEFDSDE0KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFRBQ0gxNSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNIMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNIMyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNINCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNINSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNINiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNINyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNIOCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUQUNIOSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUSFJVMCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUSFJVMSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUSFJVMiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUSFJVMyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUWEQxKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFRYRDIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoVFhEMyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhUWEQ0KSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFVBUlQxMCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhVQVJUMTEpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoVUFSVDEyKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFVBUlQxMyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhVQVJUNiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhVQVJUNyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhVQVJUOCksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhVQVJUOSksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhWQiksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhWR0FIUyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhWR0FWUyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhXRFRSU1QxKSwKKwlBU1BFRURfUElOQ1RSTF9GVU5DKFdEVFJTVDIpLAorCUFTUEVFRF9QSU5DVFJMX0ZVTkMoV0RUUlNUMyksCisJQVNQRUVEX1BJTkNUUkxfRlVOQyhXRFRSU1Q0KSwKK307CisKKy8qKgorICogQ29uZmlndXJlIGEgcGluJ3Mgc2lnbmFsIGJ5IGFwcGx5aW5nIGFuIGV4cHJlc3Npb24ncyBkZXNjcmlwdG9yIHN0YXRlIGZvcgorICogYWxsIGRlc2NyaXB0b3JzIGluIHRoZSBleHByZXNzaW9uLgorICoKKyAqIEBjdHg6IFRoZSBwaW5tdXggY29udGV4dAorICogQGV4cHI6IFRoZSBleHByZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZnVuY3Rpb24gd2hvc2Ugc2lnbmFsIGlzIHRvIGJlCisgKiAgICAgICAgY29uZmlndXJlZAorICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgYW4gZnVuY3Rpb24ncyBzaWduYWwgdGhyb3VnaCBhIHBpbidzIHNpZ25hbAorICogICAgICAgICAgZXhwcmVzc2lvbiwgZmFsc2UgdG8gZGlzYWJsZSB0aGUgZnVuY3Rpb24ncyBzaWduYWwKKyAqCisgKiBSZXR1cm46IDAgaWYgdGhlIGV4cHJlc3Npb24gaXMgY29uZmlndXJlZCBhcyByZXF1ZXN0ZWQgYW5kIGEgbmVnYXRpdmUgZXJyb3IKKyAqIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQgYXNwZWVkX2c2X3NpZ19leHByX3NldChzdHJ1Y3QgYXNwZWVkX3Bpbm11eF9kYXRhICpjdHgsCisJCQkJICBjb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19leHByICpleHByLAorCQkJCSAgYm9vbCBlbmFibGUpCit7CisJaW50IHJldDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBleHByLT5uZGVzY3M7IGkrKykgeworCQljb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19kZXNjICpkZXNjID0gJmV4cHItPmRlc2NzW2ldOworCQl1MzIgcGF0dGVybiA9IGVuYWJsZSA/IGRlc2MtPmVuYWJsZSA6IGRlc2MtPmRpc2FibGU7CisJCXUzMiB2YWwgPSAocGF0dGVybiA8PCBfX2ZmcyhkZXNjLT5tYXNrKSk7CisJCWJvb2wgaXNfc3RyYXA7CisKKwkJaWYgKCFjdHgtPm1hcHNbZGVzYy0+aXBdKQorCQkJcmV0dXJuIC1FTk9ERVY7CisKKwkJV0FSTl9PTihkZXNjLT5pcCAhPSBBU1BFRURfSVBfU0NVKTsKKwkJaXNfc3RyYXAgPSBkZXNjLT5yZWcgPT0gU0NVNTAwIHx8IGRlc2MtPnJlZyA9PSBTQ1U1MTA7CisKKwkJaWYgKGlzX3N0cmFwKSB7CisJCQkvKgorCQkJICogVGhlIEFTVDI2MDAgaGFzIHdyaXRlIHByb3RlY3Rpb24gbWFzayByZWdpc3RlcnMgZm9yCisJCQkgKiB0aGUgaGFyZHdhcmUgc3RyYXBwaW5nIGluIFNDVTUwOCBhbmQgU0NVNTE4LiBBc3N1bWUKKwkJCSAqIHRoYXQgaWYgdGhlIHBsYXRmb3JtIGRvZXNuJ3Qgd2FudCB0aGUgc3RyYXBwaW5nCisJCQkgKiB2YWx1ZXMgY2hhbmdlZCB0aGF0IGl0IGhhcyBzZXQgdGhlIHdyaXRlIG1hc2suCisJCQkgKgorCQkJICogVGhlIHN0cmFwcGluZyByZWdpc3RlcnMgaW1wbGVtZW50IHdyaXRlLTEtY2xlYXIKKwkJCSAqIGJlaGF2aW91ci4gU0NVNTAwIGlzIHBhaXJlZCB3aXRoIGNsZWFyIHdyaXRlcyBvbgorCQkJICogU0NVNTA0LCBsaWtld2lzZSBTQ1U1MTAgaXMgcGFpcmVkIHdpdGggU0NVNTE0LgorCQkJICovCisJCQl1MzIgY2xlYXIgPSB+dmFsICYgZGVzYy0+bWFzazsKKwkJCXUzMiB3MWMgPSBkZXNjLT5yZWcgKyA0OworCisJCQlpZiAoY2xlYXIpCisJCQkJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGN0eC0+bWFwc1tkZXNjLT5pcF0sCisJCQkJCQkJIHcxYywgZGVzYy0+bWFzaywKKwkJCQkJCQkgY2xlYXIpOworCQl9CisKKwkJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGN0eC0+bWFwc1tkZXNjLT5pcF0sIGRlc2MtPnJlZywKKwkJCQkJIGRlc2MtPm1hc2ssIHZhbCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IGFzcGVlZF9zaWdfZXhwcl9ldmFsKGN0eCwgZXhwciwgZW5hYmxlKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWlmICghcmV0KQorCQlyZXR1cm4gLUVQRVJNOworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGFzcGVlZF9waW5tdXhfb3BzIGFzcGVlZF9nNV9vcHMgPSB7CisJLnNldCA9IGFzcGVlZF9nNl9zaWdfZXhwcl9zZXQsCit9OworCitzdGF0aWMgc3RydWN0IGFzcGVlZF9waW5jdHJsX2RhdGEgYXNwZWVkX2c2X3BpbmN0cmxfZGF0YSA9IHsKKwkucGlucyA9IGFzcGVlZF9nNl9waW5zLAorCS5ucGlucyA9IEFSUkFZX1NJWkUoYXNwZWVkX2c2X3BpbnMpLAorCS5waW5tdXggPSB7CisJCS5vcHMgPSAmYXNwZWVkX2c1X29wcywKKwkJLmdyb3VwcyA9IGFzcGVlZF9nNl9ncm91cHMsCisJCS5uZ3JvdXBzID0gQVJSQVlfU0laRShhc3BlZWRfZzZfZ3JvdXBzKSwKKwkJLmZ1bmN0aW9ucyA9IGFzcGVlZF9nNl9mdW5jdGlvbnMsCisJCS5uZnVuY3Rpb25zID0gQVJSQVlfU0laRShhc3BlZWRfZzZfZnVuY3Rpb25zKSwKKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5tdXhfb3BzIGFzcGVlZF9nNl9waW5tdXhfb3BzID0geworCS5nZXRfZnVuY3Rpb25zX2NvdW50ID0gYXNwZWVkX3Bpbm11eF9nZXRfZm5fY291bnQsCisJLmdldF9mdW5jdGlvbl9uYW1lID0gYXNwZWVkX3Bpbm11eF9nZXRfZm5fbmFtZSwKKwkuZ2V0X2Z1bmN0aW9uX2dyb3VwcyA9IGFzcGVlZF9waW5tdXhfZ2V0X2ZuX2dyb3VwcywKKwkuc2V0X211eCA9IGFzcGVlZF9waW5tdXhfc2V0X211eCwKKwkuZ3Bpb19yZXF1ZXN0X2VuYWJsZSA9IGFzcGVlZF9ncGlvX3JlcXVlc3RfZW5hYmxlLAorCS5zdHJpY3QgPSB0cnVlLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX29wcyBhc3BlZWRfZzZfcGluY3RybF9vcHMgPSB7CisJLmdldF9ncm91cHNfY291bnQgPSBhc3BlZWRfcGluY3RybF9nZXRfZ3JvdXBzX2NvdW50LAorCS5nZXRfZ3JvdXBfbmFtZSA9IGFzcGVlZF9waW5jdHJsX2dldF9ncm91cF9uYW1lLAorCS5nZXRfZ3JvdXBfcGlucyA9IGFzcGVlZF9waW5jdHJsX2dldF9ncm91cF9waW5zLAorCS5waW5fZGJnX3Nob3cgPSBhc3BlZWRfcGluY3RybF9waW5fZGJnX3Nob3csCisJLmR0X25vZGVfdG9fbWFwID0gcGluY29uZl9nZW5lcmljX2R0X25vZGVfdG9fbWFwX2FsbCwKKwkuZHRfZnJlZV9tYXAgPSBwaW5jdHJsX3V0aWxzX2ZyZWVfbWFwLAorfTsKKworc3RhdGljIHN0cnVjdCBwaW5jdHJsX2Rlc2MgYXNwZWVkX2c2X3BpbmN0cmxfZGVzYyA9IHsKKwkubmFtZSA9ICJhc3BlZWQtZzYtcGluY3RybCIsCisJLnBpbnMgPSBhc3BlZWRfZzZfcGlucywKKwkubnBpbnMgPSBBUlJBWV9TSVpFKGFzcGVlZF9nNl9waW5zKSwKKwkucGN0bG9wcyA9ICZhc3BlZWRfZzZfcGluY3RybF9vcHMsCisJLnBteG9wcyA9ICZhc3BlZWRfZzZfcGlubXV4X29wcywKK307CisKK3N0YXRpYyBpbnQgYXNwZWVkX2c2X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFzcGVlZF9nNl9waW5zKTsgaSsrKQorCQlhc3BlZWRfZzZfcGluc1tpXS5udW1iZXIgPSBpOworCisJcmV0dXJuIGFzcGVlZF9waW5jdHJsX3Byb2JlKHBkZXYsICZhc3BlZWRfZzZfcGluY3RybF9kZXNjLAorCQkJJmFzcGVlZF9nNl9waW5jdHJsX2RhdGEpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhc3BlZWRfZzZfcGluY3RybF9vZl9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtcGluY3RybCIsIH0sCisJeyB9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXNwZWVkX2c2X3BpbmN0cmxfZHJpdmVyID0geworCS5wcm9iZSA9IGFzcGVlZF9nNl9waW5jdHJsX3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImFzcGVlZC1nNi1waW5jdHJsIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gYXNwZWVkX2c2X3BpbmN0cmxfb2ZfbWF0Y2gsCisJfSwKK307CisKK3N0YXRpYyBpbnQgYXNwZWVkX2c2X3BpbmN0cmxfaW5pdCh2b2lkKQoreworCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmFzcGVlZF9nNl9waW5jdHJsX2RyaXZlcik7Cit9CisKK2FyY2hfaW5pdGNhbGwoYXNwZWVkX2c2X3BpbmN0cmxfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3Bpbm11eC1hc3BlZWQuaCBiL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvcGlubXV4LWFzcGVlZC5oCmluZGV4IGRiMzQ1N2MuLmEyYzBkNTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvcGlubXV4LWFzcGVlZC5oCisrKyBiL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvcGlubXV4LWFzcGVlZC5oCkBAIC0xNjIsMTAgKzE2MiwxMSBAQAogICogKiBFbmFibGluZyBsb3dlciBwcmlvcml0eSBzaWduYWxzIHJlcXVpcmVzIGhpZ2hlciBwcmlvcml0eSBzaWduYWxzIGJlCiAgKiAgIGRpc2FibGVkCiAgKgotICogKiBBIGZ1bmN0aW9uIHJlcHJlc2VudHMgYSBzZXQgb2Ygc2lnbmFsczsgZnVuY3Rpb25zIGFyZSBkaXN0aW5jdCBpZiB0aGVpcgotICogICBzZXRzIG9mIHNpZ25hbHMgYXJlIG5vdCBlcXVhbAorICogKiBBIGZ1bmN0aW9uIHJlcHJlc2VudHMgYSBzZXQgb2Ygc2lnbmFsczsgZnVuY3Rpb25zIGFyZSBkaXN0aW5jdCBpZiB0aGV5CisgKiAgIGRvIG5vdCBzaGFyZSBhIHN1YnNldCBvZiBzaWduYWxzIChhbmQgbWF5IGJlIGRpc3RpbmN0IGlmIHRoZXkgYXJlIGEKKyAqICAgc3RyaWN0IHN1YnNldCkuCiAgKgotICogKiBTaWduYWxzIHBhcnRpY2lwYXRlIGluIG9uZSBvciBtb3JlIGZ1bmN0aW9ucworICogKiBTaWduYWxzIHBhcnRpY2lwYXRlIGluIG9uZSBvciBtb3JlIGZ1bmN0aW9ucyBvciBncm91cHMKICAqCiAgKiAqIEEgZnVuY3Rpb24gaXMgZGVzY3JpYmVkIGJ5IGFuIGV4cHJlc3Npb24gb2Ygb25lIG9yIG1vcmUgc2lnbmFsCiAgKiAgIGRlc2NyaXB0b3JzLCB3aGljaCBjb21wYXJlIGJpdCB2YWx1ZXMgaW4gYSByZWdpc3RlcgpAQCAtNTA3LDIwICs1MDgsMjEgQEAgc3RydWN0IGFzcGVlZF9waW5fZGVzYyB7CiAgKiBAaWR4OiBUaGUgYml0IGluZGV4IGluIHRoZSByZWdpc3RlcgogICovCiAjZGVmaW5lIFNJR19ERVNDX1NFVChyZWcsIGlkeCkgU0lHX0RFU0NfSVBfQklUKEFTUEVFRF9JUF9TQ1UsIHJlZywgaWR4LCAxKQorI2RlZmluZSBTSUdfREVTQ19DTEVBUihyZWcsIGlkeCkgU0lHX0RFU0NfSVBfQklUKEFTUEVFRF9JUF9TQ1UsIHJlZywgaWR4LCAwKQogCi0jZGVmaW5lIFNJR19ERVNDX0xJU1RfU1lNKHNpZywgZnVuYykgc2lnX2Rlc2NzXyAjIyBzaWcgIyMgXyAjIyBmdW5jCi0jZGVmaW5lIFNJR19ERVNDX0xJU1RfREVDTChzaWcsIGZ1bmMsIC4uLikgXAotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19kZXNjIFNJR19ERVNDX0xJU1RfU1lNKHNpZywgZnVuYylbXSA9IFwKKyNkZWZpbmUgU0lHX0RFU0NfTElTVF9TWU0oc2lnLCBncm91cCkgc2lnX2Rlc2NzXyAjIyBzaWcgIyMgXyAjIyBncm91cAorI2RlZmluZSBTSUdfREVTQ19MSVNUX0RFQ0woc2lnLCBncm91cCwgLi4uKSBcCisJc3RhdGljIGNvbnN0IHN0cnVjdCBhc3BlZWRfc2lnX2Rlc2MgU0lHX0RFU0NfTElTVF9TWU0oc2lnLCBncm91cClbXSA9IFwKIAkJeyBfX1ZBX0FSR1NfXyB9CiAKLSNkZWZpbmUgU0lHX0VYUFJfU1lNKHNpZywgZnVuYykgc2lnX2V4cHJfICMjIHNpZyAjIyBfICMjIGZ1bmMKLSNkZWZpbmUgU0lHX0VYUFJfREVDTF8oc2lnLCBmdW5jKSBcCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBhc3BlZWRfc2lnX2V4cHIgU0lHX0VYUFJfU1lNKHNpZywgZnVuYykgPSBcCisjZGVmaW5lIFNJR19FWFBSX1NZTShzaWcsIGdyb3VwKSBzaWdfZXhwcl8gIyMgc2lnICMjIF8gIyMgZ3JvdXAKKyNkZWZpbmUgU0lHX0VYUFJfREVDTF8oc2lnLCBncm91cCwgZnVuYykgXAorCXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19leHByIFNJR19FWFBSX1NZTShzaWcsIGdyb3VwKSA9IFwKIAl7IFwKIAkJLnNpZ25hbCA9ICNzaWcsIFwKIAkJLmZ1bmN0aW9uID0gI2Z1bmMsIFwKLQkJLm5kZXNjcyA9IEFSUkFZX1NJWkUoU0lHX0RFU0NfTElTVF9TWU0oc2lnLCBmdW5jKSksIFwKLQkJLmRlc2NzID0gJihTSUdfREVTQ19MSVNUX1NZTShzaWcsIGZ1bmMpKVswXSwgXAorCQkubmRlc2NzID0gQVJSQVlfU0laRShTSUdfREVTQ19MSVNUX1NZTShzaWcsIGdyb3VwKSksIFwKKwkJLmRlc2NzID0gJihTSUdfREVTQ19MSVNUX1NZTShzaWcsIGdyb3VwKSlbMF0sIFwKIAl9CiAKIC8qKgpAQCAtNTMzLDE2ICs1MzUsMTYgQEAgc3RydWN0IGFzcGVlZF9waW5fZGVzYyB7CiAgKgogICogRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgZGVjbGFyZXMgdGhlIFJPTUQ4IHNpZ25hbCBmb3IgdGhlIFJPTTE2IGZ1bmN0aW9uOgogICoKLSAqICAgICBTSUdfRVhQUl9ERUNMKFJPTUQ4LCBST00xNiwgU0lHX0RFU0NfU0VUKFNDVTkwLCA2KSk7CisgKiAgICAgU0lHX0VYUFJfREVDTChST01EOCwgUk9NMTYsIFJPTTE2LCBTSUdfREVTQ19TRVQoU0NVOTAsIDYpKTsKICAqCiAgKiBBbmQgd2l0aCBtdWx0aXBsZSBzaWduYWwgZGVzY3JpcHRvcnM6CiAgKgotICogICAgIFNJR19FWFBSX0RFQ0woUk9NRDgsIFJPTTE2UywgU0lHX0RFU0NfU0VUKEhXX1NUUkFQMSwgNCksCisgKiAgICAgU0lHX0VYUFJfREVDTChST01EOCwgUk9NMTZTLCBST00xNlMsIFNJR19ERVNDX1NFVChIV19TVFJBUDEsIDQpLAogICogICAgICAgICAgICAgIHsgSFdfU1RSQVAxLCBHRU5NQVNLKDEsIDApLCAwLCAwIH0pOwogICovCi0jZGVmaW5lIFNJR19FWFBSX0RFQ0woc2lnLCBmdW5jLCAuLi4pIFwKLQlTSUdfREVTQ19MSVNUX0RFQ0woc2lnLCBmdW5jLCBfX1ZBX0FSR1NfXyk7IFwKLQlTSUdfRVhQUl9ERUNMXyhzaWcsIGZ1bmMpCisjZGVmaW5lIFNJR19FWFBSX0RFQ0woc2lnLCBncm91cCwgZnVuYywgLi4uKSBcCisJU0lHX0RFU0NfTElTVF9ERUNMKHNpZywgZ3JvdXAsIF9fVkFfQVJHU19fKTsgXAorCVNJR19FWFBSX0RFQ0xfKHNpZywgZ3JvdXAsIGZ1bmMpCiAKIC8qKgogICogRGVjbGFyZSBhIHBvaW50ZXIgdG8gYSBzaWduYWwgZXhwcmVzc2lvbgpAQCAtNTUwLDkgKzU1Miw5IEBAIHN0cnVjdCBhc3BlZWRfcGluX2Rlc2MgewogICogQHNpZzogVGhlIG1hY3JvIHN5bWJvbCBuYW1lIGZvciB0aGUgc2lnbmFsIChzdWJqZWN0ZWQgdG8gdG9rZW4gcGFzdGluZykKICAqIEBmdW5jOiBUaGUgbWFjcm8gc3ltYm9sIG5hbWUgZm9yIHRoZSBmdW5jdGlvbiAoc3ViamVjdGVkIHRvIHRva2VuIHBhc3RpbmcpCiAgKi8KLSNkZWZpbmUgU0lHX0VYUFJfUFRSKHNpZywgZnVuYykgKCZTSUdfRVhQUl9TWU0oc2lnLCBmdW5jKSkKKyNkZWZpbmUgU0lHX0VYUFJfUFRSKHNpZywgZ3JvdXApICgmU0lHX0VYUFJfU1lNKHNpZywgZ3JvdXApKQogCi0jZGVmaW5lIFNJR19FWFBSX0xJU1RfU1lNKHNpZykgc2lnX2V4cHJzXyAjIyBzaWcKKyNkZWZpbmUgU0lHX0VYUFJfTElTVF9TWU0oc2lnLCBncm91cCkgc2lnX2V4cHJzXyAjIyBzaWcgIyMgXyAjIyBncm91cAogCiAvKioKICAqIERlY2xhcmUgYSBzaWduYWwgZXhwcmVzc2lvbiBsaXN0IGZvciByZWZlcmVuY2UgaW4gYSBzdHJ1Y3QgYXNwZWVkX3Bpbl9wcmlvLgpAQCAtNTYzLDQ5ICs1NjUsMTM4IEBAIHN0cnVjdCBhc3BlZWRfcGluX2Rlc2MgewogICogRm9yIGV4YW1wbGUsIHRoZSAxNi1iaXQgUk9NIGJ1cyBjYW4gYmUgZW5hYmxlZCBieSBvbmUgb2YgdHdvIHBvc3NpYmxlIHNpZ25hbAogICogZXhwcmVzc2lvbnM6CiAgKgotICogICAgIFNJR19FWFBSX0RFQ0woUk9NRDgsIFJPTTE2LCBTSUdfREVTQ19TRVQoU0NVOTAsIDYpKTsKLSAqICAgICBTSUdfRVhQUl9ERUNMKFJPTUQ4LCBST00xNlMsIFNJR19ERVNDX1NFVChIV19TVFJBUDEsIDQpLAorICogICAgIFNJR19FWFBSX0RFQ0woUk9NRDgsIFJPTTE2LCBST00xNiwgU0lHX0RFU0NfU0VUKFNDVTkwLCA2KSk7CisgKiAgICAgU0lHX0VYUFJfREVDTChST01EOCwgUk9NMTZTLCBST00xNlMsIFNJR19ERVNDX1NFVChIV19TVFJBUDEsIDQpLAogICogICAgICAgICAgICAgIHsgSFdfU1RSQVAxLCBHRU5NQVNLKDEsIDApLCAwLCAwIH0pOwogICogICAgIFNJR19FWFBSX0xJU1RfREVDTChST01EOCwgU0lHX0VYUFJfUFRSKFJPTUQ4LCBST00xNiksCiAgKiAgICAgICAgICAgICAgU0lHX0VYUFJfUFRSKFJPTUQ4LCBST00xNlMpKTsKICAqLwotI2RlZmluZSBTSUdfRVhQUl9MSVNUX0RFQ0woc2lnLCAuLi4pIFwKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGFzcGVlZF9zaWdfZXhwciAqU0lHX0VYUFJfTElTVF9TWU0oc2lnKVtdID0gXAorI2RlZmluZSBTSUdfRVhQUl9MSVNUX0RFQ0woc2lnLCBncm91cCwgLi4uKSBcCisJc3RhdGljIGNvbnN0IHN0cnVjdCBhc3BlZWRfc2lnX2V4cHIgKlNJR19FWFBSX0xJU1RfU1lNKHNpZywgZ3JvdXApW10gPVwKIAkJeyBfX1ZBX0FSR1NfXywgTlVMTCB9CiAKKyNkZWZpbmUgc3RyaW5naWZ5KHgpICN4CisjZGVmaW5lIGlzdHJpbmdpZnkoeCkgc3RyaW5naWZ5KHgpCisKKy8qKgorICogQ3JlYXRlIGFuIGV4cHJlc3Npb24gc3ltYm9sIGFsaWFzIGZyb20gKHNpZ25hbCwgZ3JvdXApIHRvIChwaW4sIHNpZ25hbCkuCisgKgorICogQHBpbjogVGhlIHBpbiBudW1iZXIKKyAqIEBzaWc6IFRoZSBzaWduYWwgbmFtZQorICogQGdyb3VwOiBUaGUgbmFtZSBvZiB0aGUgZ3JvdXAgb2Ygd2hpY2ggdGhlIHBpbiBpcyBhIG1lbWJlciB0aGF0IGlzCisgKiAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgZnVuY3Rpb24ncyBzaWduYWwKKyAqCisgKiBVc2luZyBhbiBhbGlhcyBpbiB0aGlzIHdheSBlbmFibGVzIGRldGVjdGlvbiBvZiBjb3B5L3Bhc3RlIGVycm9ycyAoZGVmaW5pbmcKKyAqIHRoZSBzaWduYWwgZm9yIGEgZ3JvdXAgbXVsdGlwbGUgdGltZXMpIHdoaWxzdCBlbmFibGluZyBtdWx0aXBsZSBwaW4gZ3JvdXBzCisgKiB0byBleGlzdCBmb3IgYSBzaWduYWwgd2l0aG91dCBpbnRydXNpdmUgc2lkZS1lZmZlY3RzIG9uIGRlZmluaW5nIHRoZSBsaXN0IG9mCisgKiBzaWduYWxzIGF2YWlsYWJsZSBvbiBhIHBpbi4KKyAqLworI2RlZmluZSBTSUdfRVhQUl9MSVNUX0FMSUFTKHBpbiwgc2lnLCBncm91cCkgXAorCXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19leHByICpcCisJCVNJR19FWFBSX0xJU1RfU1lNKHBpbiwgc2lnKVtBUlJBWV9TSVpFKFNJR19FWFBSX0xJU1RfU1lNKHNpZywgZ3JvdXApKV0gXAorCQlfX2F0dHJpYnV0ZV9fKChhbGlhcyhpc3RyaW5naWZ5KFNJR19FWFBSX0xJU1RfU1lNKHNpZywgZ3JvdXApKSkpKQorCiAvKioKICAqIEEgc2hvcnQtaGFuZCBtYWNybyBmb3IgZGVjbGFyaW5nIGEgZnVuY3Rpb24gZXhwcmVzc2lvbiBhbmQgYW4gZXhwcmVzc2lvbgotICogbGlzdCB3aXRoIGEgc2luZ2xlIGZ1bmN0aW9uLgorICogbGlzdCB3aXRoIGEgc2luZ2xlIGV4cHJlc3Npb24gKFNFKSBhbmQgYSBzaW5nbGUgZ3JvdXAgKFNHKSBvZiBwaW5zLgogICoKLSAqIEBmdW5jOiBBIG1hY3JvIHN5bWJvbCBuYW1lIGZvciB0aGUgZnVuY3Rpb24gKGlzIHN1YmplY3RlZCB0byB0b2tlbiBwYXN0aW5nKQorICogQHBpbjogVGhlIHBpbiB0aGUgc2lnbmFsIHdpbGwgYmUgcm91dGVkIHRvCisgKiBAc2lnOiBUaGUgc2lnbmFsIHRoYXQgd2lsbCBiZSByb3V0ZWQgdG8gdGhlIHBpbiBmb3IgdGhlIGZ1bmN0aW9uCisgKiBAZnVuYzogQSBtYWNybyBzeW1ib2wgbmFtZSBmb3IgdGhlIGZ1bmN0aW9uCiAgKiBALi4uOiBGdW5jdGlvbiBkZXNjcmlwdG9ycyB0aGF0IGRlZmluZSB0aGUgZnVuY3Rpb24gZXhwcmVzc2lvbgogICoKICAqIEZvciBleGFtcGxlLCBzaWduYWwgTkNUUzYgcGFydGljaXBhdGVzIGluIGl0cyBvd24gZnVuY3Rpb24gd2l0aCBvbmUgZ3JvdXA6CiAgKgotICogICAgIFNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUoTkNUUzYsIE5DVFM2LCBTSUdfREVTQ19TRVQoU0NVOTAsIDcpKTsKKyAqICAgICBTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKEExOCwgTkNUUzYsIE5DVFM2LCBTSUdfREVTQ19TRVQoU0NVOTAsIDcpKTsKICAqLwotI2RlZmluZSBTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKHNpZywgZnVuYywgLi4uKSBcCisjZGVmaW5lIFNJR19FWFBSX0xJU1RfREVDTF9TRVNHKHBpbiwgc2lnLCBmdW5jLCAuLi4pIFwKIAlTSUdfREVTQ19MSVNUX0RFQ0woc2lnLCBmdW5jLCBfX1ZBX0FSR1NfXyk7IFwKLQlTSUdfRVhQUl9ERUNMXyhzaWcsIGZ1bmMpOyBcCi0JU0lHX0VYUFJfTElTVF9ERUNMKHNpZywgU0lHX0VYUFJfUFRSKHNpZywgZnVuYykpCisJU0lHX0VYUFJfREVDTF8oc2lnLCBmdW5jLCBmdW5jKTsgXAorCVNJR19FWFBSX0xJU1RfREVDTChzaWcsIGZ1bmMsIFNJR19FWFBSX1BUUihzaWcsIGZ1bmMpKTsgXAorCVNJR19FWFBSX0xJU1RfQUxJQVMocGluLCBzaWcsIGZ1bmMpCiAKLSNkZWZpbmUgU0lHX0VYUFJfTElTVF9ERUNMX0RVQUwoc2lnLCBmMCwgZjEpIFwKLQlTSUdfRVhQUl9MSVNUX0RFQ0woc2lnLCBTSUdfRVhQUl9QVFIoc2lnLCBmMCksIFNJR19FWFBSX1BUUihzaWcsIGYxKSkKKy8qKgorICogU2ltaWxhciB0byB0aGUgYWJvdmUsIGJ1dCBmb3IgcGlucyB3aXRoIGEgc2luZ2xlIGV4cHJlc3Npb24gKFNFKSBhbmQKKyAqIG11bHRpcGxlIGdyb3VwcyAoTUcpIG9mIHBpbnMuCisgKgorICogQHBpbjogVGhlIHBpbiB0aGUgc2lnbmFsIHdpbGwgYmUgcm91dGVkIHRvCisgKiBAc2lnOiBUaGUgc2lnbmFsIHRoYXQgd2lsbCBiZSByb3V0ZWQgdG8gdGhlIHBpbiBmb3IgdGhlIGZ1bmN0aW9uCisgKiBAZ3JvdXA6IFRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbidzIHBpbiBncm91cCBpbiB3aGljaCB0aGUgcGluIHBhcnRpY2lwYXRlcworICogQGZ1bmM6IEEgbWFjcm8gc3ltYm9sIG5hbWUgZm9yIHRoZSBmdW5jdGlvbgorICogQC4uLjogRnVuY3Rpb24gZGVzY3JpcHRvcnMgdGhhdCBkZWZpbmUgdGhlIGZ1bmN0aW9uIGV4cHJlc3Npb24KKyAqLworI2RlZmluZSBTSUdfRVhQUl9MSVNUX0RFQ0xfU0VNRyhwaW4sIHNpZywgZ3JvdXAsIGZ1bmMsIC4uLikgXAorCVNJR19ERVNDX0xJU1RfREVDTChzaWcsIGdyb3VwLCBfX1ZBX0FSR1NfXyk7IFwKKwlTSUdfRVhQUl9ERUNMXyhzaWcsIGdyb3VwLCBmdW5jKTsgXAorCVNJR19FWFBSX0xJU1RfREVDTChzaWcsIGdyb3VwLCBTSUdfRVhQUl9QVFIoc2lnLCBncm91cCkpOyBcCisJU0lHX0VYUFJfTElTVF9BTElBUyhwaW4sIHNpZywgZ3JvdXApCiAKLSNkZWZpbmUgU0lHX0VYUFJfTElTVF9QVFIoc2lnKSAoJlNJR19FWFBSX0xJU1RfU1lNKHNpZylbMF0pCisvKioKKyAqIFNpbWlsYXIgdG8gdGhlIGFib3ZlLCBidXQgZm9yIHBpbnMgd2l0aCBhIGR1YWwgZXhwcmVzc2lvbnMgKERFKSBhbmQKKyAqIGFuZCBhIHNpbmdsZSBncm91cCAoU0cpIG9mIHBpbnMuCisgKgorICogQHBpbjogVGhlIHBpbiB0aGUgc2lnbmFsIHdpbGwgYmUgcm91dGVkIHRvCisgKiBAc2lnOiBUaGUgc2lnbmFsIHRoYXQgd2lsbCBiZSByb3V0ZWQgdG8gdGhlIHBpbiBmb3IgdGhlIGZ1bmN0aW9uCisgKiBAZ3JvdXA6IFRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbidzIHBpbiBncm91cCBpbiB3aGljaCB0aGUgcGluIHBhcnRpY2lwYXRlcworICogQGZ1bmM6IEEgbWFjcm8gc3ltYm9sIG5hbWUgZm9yIHRoZSBmdW5jdGlvbgorICogQC4uLjogRnVuY3Rpb24gZGVzY3JpcHRvcnMgdGhhdCBkZWZpbmUgdGhlIGZ1bmN0aW9uIGV4cHJlc3Npb24KKyAqLworI2RlZmluZSBTSUdfRVhQUl9MSVNUX0RFQ0xfREVTRyhwaW4sIHNpZywgZjAsIGYxKSBcCisJU0lHX0VYUFJfTElTVF9ERUNMKHNpZywgZjAsIFwKKwkJCSAgIFNJR19FWFBSX1BUUihzaWcsIGYwKSwgXAorCQkJICAgU0lHX0VYUFJfUFRSKHNpZywgZjEpKTsgXAorCVNJR19FWFBSX0xJU1RfQUxJQVMocGluLCBzaWcsIGYwKQorCisjZGVmaW5lIFNJR19FWFBSX0xJU1RfUFRSKHNpZywgZ3JvdXApIFNJR19FWFBSX0xJU1RfU1lNKHNpZywgZ3JvdXApCiAKICNkZWZpbmUgUElOX0VYUFJTX1NZTShwaW4pIHBpbl9leHByc18gIyMgcGluCiAjZGVmaW5lIFBJTl9FWFBSU19QVFIocGluKSAoJlBJTl9FWFBSU19TWU0ocGluKVswXSkKICNkZWZpbmUgUElOX1NZTShwaW4pIHBpbl8gIyMgcGluCiAKLSNkZWZpbmUgTVNfUElOX0RFQ0xfKHBpbiwgLi4uKSBcCisjZGVmaW5lIFBJTl9ERUNMXyhwaW4sIC4uLikgXAogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19leHByICoqUElOX0VYUFJTX1NZTShwaW4pW10gPSBcCiAJCXsgX19WQV9BUkdTX18sIE5VTEwgfTsgXAogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXNwZWVkX3Bpbl9kZXNjIFBJTl9TWU0ocGluKSA9IFwKIAkJeyAjcGluLCBQSU5fRVhQUlNfUFRSKHBpbikgfQogCiAvKioKLSAqIERlY2xhcmUgYSBtdWx0aS1zaWduYWwgcGluCisgKiBEZWNsYXJlIGEgc2luZ2xlIHNpZ25hbCBwaW4KKyAqCisgKiBAcGluOiBUaGUgcGluIG51bWJlcgorICogQG90aGVyOiBNYWNybyBuYW1lIGZvciAib3RoZXIiIGZ1bmN0aW9uYWxpdHkgKHN1YmplY3RlZCB0byBzdHJpbmdpZmljYXRpb24pCisgKiBAc2lnOiBNYWNybyBuYW1lIGZvciB0aGUgc2lnbmFsIChzdWJqZWN0ZWQgdG8gc3RyaW5naWZpY2F0aW9uKQorICoKKyAqIEZvciBleGFtcGxlOgorICoKKyAqICAgICAjZGVmaW5lIEUzIDgwCisgKiAgICAgU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShTQ0w1LCBJMkM1LCBJMkM1X0RFU0MpOworICogICAgIFBJTl9ERUNMXzEoRTMsIEdQSU9LMCwgU0NMNSk7CisgKi8KKyNkZWZpbmUgUElOX0RFQ0xfMShwaW4sIG90aGVyLCBzaWcpIFwKKwlTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhwaW4sIG90aGVyLCBvdGhlcik7IFwKKwlQSU5fREVDTF8ocGluLCBTSUdfRVhQUl9MSVNUX1BUUihwaW4sIHNpZyksIFwKKwkJICBTSUdfRVhQUl9MSVNUX1BUUihwaW4sIG90aGVyKSkKKworLyoqCisgKiBTaW5nbGUgc2lnbmFsLCBzaW5nbGUgZnVuY3Rpb24gcGluIGRlY2xhcmF0aW9uCisgKgorICogQHBpbjogVGhlIHBpbiBudW1iZXIKKyAqIEBvdGhlcjogTWFjcm8gbmFtZSBmb3IgIm90aGVyIiBmdW5jdGlvbmFsaXR5IChzdWJqZWN0ZWQgdG8gc3RyaW5naWZpY2F0aW9uKQorICogQHNpZzogTWFjcm8gbmFtZSBmb3IgdGhlIHNpZ25hbCAoc3ViamVjdGVkIHRvIHN0cmluZ2lmaWNhdGlvbikKKyAqIEAuLi46IFNpZ25hbCBkZXNjcmlwdG9ycyB0aGF0IGRlZmluZSB0aGUgZnVuY3Rpb24gZXhwcmVzc2lvbgorICoKKyAqIEZvciBleGFtcGxlOgorICoKKyAqICAgIFNTU0ZfUElOX0RFQ0woQTQsIEdQSU9BMiwgVElNRVIzLCBTSUdfREVTQ19TRVQoU0NVODAsIDIpKTsKKyAqLworI2RlZmluZSBTU1NGX1BJTl9ERUNMKHBpbiwgb3RoZXIsIHNpZywgLi4uKSBcCisJU0lHX0VYUFJfTElTVF9ERUNMX1NFU0cocGluLCBzaWcsIHNpZywgX19WQV9BUkdTX18pOyBcCisJU0lHX0VYUFJfTElTVF9ERUNMX1NFU0cocGluLCBvdGhlciwgb3RoZXIpOyBcCisJUElOX0RFQ0xfKHBpbiwgU0lHX0VYUFJfTElTVF9QVFIocGluLCBzaWcpLCBcCisJCSAgU0lHX0VYUFJfTElTVF9QVFIocGluLCBvdGhlcikpOyBcCisJRlVOQ19HUk9VUF9ERUNMKHNpZywgcGluKQorLyoqCisgKiBEZWNsYXJlIGEgdHdvLXNpZ25hbCBwaW4KICAqCiAgKiBAcGluOiBUaGUgcGluIG51bWJlcgogICogQG90aGVyOiBNYWNybyBuYW1lIGZvciAib3RoZXIiIGZ1bmN0aW9uYWxpdHkgKHN1YmplY3RlZCB0byBzdHJpbmdpZmljYXRpb24pCkBAIC02MjEsNTkgKzcxMiw0MSBAQCBzdHJ1Y3QgYXNwZWVkX3Bpbl9kZXNjIHsKICAqICAgICBTSUdfRVhQUl9MSVNUX0RFQ0woUk9NRDgsIFNJR19FWFBSX1BUUihST01EOCwgUk9NMTYpLAogICogICAgICAgICAgICAgIFNJR19FWFBSX1BUUihST01EOCwgUk9NMTZTKSk7CiAgKiAgICAgU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShOQ1RTNiwgTkNUUzYsIFNJR19ERVNDX1NFVChTQ1U5MCwgNykpOwotICogICAgIE1TX1BJTl9ERUNMKEE4LCBHUElPSDAsIFJPTUQ4LCBOQ1RTNik7CisgKiAgICAgUElOX0RFQ0xfMihBOCwgR1BJT0gwLCBST01EOCwgTkNUUzYpOwogICovCi0jZGVmaW5lIE1TX1BJTl9ERUNMKHBpbiwgb3RoZXIsIGhpZ2gsIGxvdykgXAotCVNJR19FWFBSX0xJU1RfREVDTF9TSU5HTEUob3RoZXIsIG90aGVyKTsgXAotCU1TX1BJTl9ERUNMXyhwaW4sIFwKLQkJCVNJR19FWFBSX0xJU1RfUFRSKGhpZ2gpLCBcCi0JCQlTSUdfRVhQUl9MSVNUX1BUUihsb3cpLCBcCi0JCQlTSUdfRVhQUl9MSVNUX1BUUihvdGhlcikpCisjZGVmaW5lIFBJTl9ERUNMXzIocGluLCBvdGhlciwgaGlnaCwgbG93KSBcCisJU0lHX0VYUFJfTElTVF9ERUNMX1NFU0cocGluLCBvdGhlciwgb3RoZXIpOyBcCisJUElOX0RFQ0xfKHBpbiwgXAorCQkJU0lHX0VYUFJfTElTVF9QVFIocGluLCBoaWdoKSwgXAorCQkJU0lHX0VYUFJfTElTVF9QVFIocGluLCBsb3cpLCBcCisJCQlTSUdfRVhQUl9MSVNUX1BUUihwaW4sIG90aGVyKSkKIAotI2RlZmluZSBQSU5fR1JPVVBfU1lNKGZ1bmMpIHBpbnNfICMjIGZ1bmMKLSNkZWZpbmUgRlVOQ19HUk9VUF9TWU0oZnVuYykgZ3JvdXBzXyAjIyBmdW5jCisjZGVmaW5lIFBJTl9ERUNMXzMocGluLCBvdGhlciwgaGlnaCwgbWVkaXVtLCBsb3cpIFwKKwlTSUdfRVhQUl9MSVNUX0RFQ0xfU0VTRyhwaW4sIG90aGVyLCBvdGhlcik7IFwKKwlQSU5fREVDTF8ocGluLCBcCisJCQlTSUdfRVhQUl9MSVNUX1BUUihwaW4sIGhpZ2gpLCBcCisJCQlTSUdfRVhQUl9MSVNUX1BUUihwaW4sIG1lZGl1bSksIFwKKwkJCVNJR19FWFBSX0xJU1RfUFRSKHBpbiwgbG93KSwgXAorCQkJU0lHX0VYUFJfTElTVF9QVFIocGluLCBvdGhlcikpCisKKyNkZWZpbmUgR1JPVVBfU1lNKGdyb3VwKSBncm91cF9waW5zXyAjIyBncm91cAorI2RlZmluZSBHUk9VUF9ERUNMKGdyb3VwLCAuLi4pIFwKKwlzdGF0aWMgY29uc3QgaW50IEdST1VQX1NZTShncm91cClbXSA9IHsgX19WQV9BUkdTX18gfQorCisjZGVmaW5lIEZVTkNfU1lNKGZ1bmMpIGZ1bmNfZ3JvdXBzXyAjIyBmdW5jCisjZGVmaW5lIEZVTkNfREVDTF8oZnVuYywgLi4uKSBcCisJc3RhdGljIGNvbnN0IGNoYXIgKkZVTkNfU1lNKGZ1bmMpW10gPSB7IF9fVkFfQVJHU19fIH0KKworI2RlZmluZSBGVU5DX0RFQ0xfMihmdW5jLCBvbmUsIHR3bykgRlVOQ19ERUNMXyhmdW5jLCAjb25lLCAjdHdvKQorCiAjZGVmaW5lIEZVTkNfR1JPVVBfREVDTChmdW5jLCAuLi4pIFwKLQlzdGF0aWMgY29uc3QgaW50IFBJTl9HUk9VUF9TWU0oZnVuYylbXSA9IHsgX19WQV9BUkdTX18gfTsgXAotCXN0YXRpYyBjb25zdCBjaGFyICpGVU5DX0dST1VQX1NZTShmdW5jKVtdID0geyAjZnVuYyB9CisJR1JPVVBfREVDTChmdW5jLCBfX1ZBX0FSR1NfXyk7IFwKKwlGVU5DX0RFQ0xfKGZ1bmMsICNmdW5jKQogCi0vKioKLSAqIERlY2xhcmUgYSBzaW5nbGUgc2lnbmFsIHBpbgotICoKLSAqIEBwaW46IFRoZSBwaW4gbnVtYmVyCi0gKiBAb3RoZXI6IE1hY3JvIG5hbWUgZm9yICJvdGhlciIgZnVuY3Rpb25hbGl0eSAoc3ViamVjdGVkIHRvIHN0cmluZ2lmaWNhdGlvbikKLSAqIEBzaWc6IE1hY3JvIG5hbWUgZm9yIHRoZSBzaWduYWwgKHN1YmplY3RlZCB0byBzdHJpbmdpZmljYXRpb24pCi0gKgotICogRm9yIGV4YW1wbGU6Ci0gKgotICogICAgICNkZWZpbmUgRTMgODAKLSAqICAgICBTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKFNDTDUsIEkyQzUsIEkyQzVfREVTQyk7Ci0gKiAgICAgU1NfUElOX0RFQ0woRTMsIEdQSU9LMCwgU0NMNSk7Ci0gKi8KLSNkZWZpbmUgU1NfUElOX0RFQ0wocGluLCBvdGhlciwgc2lnKSBcCi0JU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShvdGhlciwgb3RoZXIpOyBcCi0JTVNfUElOX0RFQ0xfKHBpbiwgU0lHX0VYUFJfTElTVF9QVFIoc2lnKSwgU0lHX0VYUFJfTElTVF9QVFIob3RoZXIpKQotCi0vKioKLSAqIFNpbmdsZSBzaWduYWwsIHNpbmdsZSBmdW5jdGlvbiBwaW4gZGVjbGFyYXRpb24KLSAqCi0gKiBAcGluOiBUaGUgcGluIG51bWJlcgotICogQG90aGVyOiBNYWNybyBuYW1lIGZvciAib3RoZXIiIGZ1bmN0aW9uYWxpdHkgKHN1YmplY3RlZCB0byBzdHJpbmdpZmljYXRpb24pCi0gKiBAc2lnOiBNYWNybyBuYW1lIGZvciB0aGUgc2lnbmFsIChzdWJqZWN0ZWQgdG8gc3RyaW5naWZpY2F0aW9uKQotICogQC4uLjogU2lnbmFsIGRlc2NyaXB0b3JzIHRoYXQgZGVmaW5lIHRoZSBmdW5jdGlvbiBleHByZXNzaW9uCi0gKgotICogRm9yIGV4YW1wbGU6Ci0gKgotICogICAgU1NTRl9QSU5fREVDTChBNCwgR1BJT0EyLCBUSU1FUjMsIFNJR19ERVNDX1NFVChTQ1U4MCwgMikpOwotICovCi0jZGVmaW5lIFNTU0ZfUElOX0RFQ0wocGluLCBvdGhlciwgc2lnLCAuLi4pIFwKLQlTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKHNpZywgc2lnLCBfX1ZBX0FSR1NfXyk7IFwKLQlTSUdfRVhQUl9MSVNUX0RFQ0xfU0lOR0xFKG90aGVyLCBvdGhlcik7IFwKLQlNU19QSU5fREVDTF8ocGluLCBTSUdfRVhQUl9MSVNUX1BUUihzaWcpLCBTSUdfRVhQUl9MSVNUX1BUUihvdGhlcikpOyBcCi0JRlVOQ19HUk9VUF9ERUNMKHNpZywgcGluKQogCiAjZGVmaW5lIEdQSU9fUElOX0RFQ0wocGluLCBncGlvKSBcCi0JU0lHX0VYUFJfTElTVF9ERUNMX1NJTkdMRShncGlvLCBncGlvKTsgXAotCU1TX1BJTl9ERUNMXyhwaW4sIFNJR19FWFBSX0xJU1RfUFRSKGdwaW8pKQorCVNJR19FWFBSX0xJU1RfREVDTF9TRVNHKHBpbiwgZ3BpbywgZ3Bpbyk7IFwKKwlQSU5fREVDTF8ocGluLCBTSUdfRVhQUl9MSVNUX1BUUihwaW4sIGdwaW8pKQogCiBzdHJ1Y3QgYXNwZWVkX3Bpbl9ncm91cCB7CiAJY29uc3QgY2hhciAqbmFtZTsKQEAgLTY4Myw4ICs3NTYsOCBAQCBzdHJ1Y3QgYXNwZWVkX3Bpbl9ncm91cCB7CiAKICNkZWZpbmUgQVNQRUVEX1BJTkNUUkxfR1JPVVAobmFtZV8pIHsgXAogCS5uYW1lID0gI25hbWVfLCBcCi0JLnBpbnMgPSAmKFBJTl9HUk9VUF9TWU0obmFtZV8pKVswXSwgXAotCS5ucGlucyA9IEFSUkFZX1NJWkUoUElOX0dST1VQX1NZTShuYW1lXykpLCBcCisJLnBpbnMgPSAmKEdST1VQX1NZTShuYW1lXykpWzBdLCBcCisJLm5waW5zID0gQVJSQVlfU0laRShHUk9VUF9TWU0obmFtZV8pKSwgXAogfQogCiBzdHJ1Y3QgYXNwZWVkX3Bpbl9mdW5jdGlvbiB7CkBAIC02OTUsOCArNzY4LDggQEAgc3RydWN0IGFzcGVlZF9waW5fZnVuY3Rpb24gewogCiAjZGVmaW5lIEFTUEVFRF9QSU5DVFJMX0ZVTkMobmFtZV8sIC4uLikgeyBcCiAJLm5hbWUgPSAjbmFtZV8sIFwKLQkuZ3JvdXBzID0gJkZVTkNfR1JPVVBfU1lNKG5hbWVfKVswXSwgXAotCS5uZ3JvdXBzID0gQVJSQVlfU0laRShGVU5DX0dST1VQX1NZTShuYW1lXykpLCBcCisJLmdyb3VwcyA9ICZGVU5DX1NZTShuYW1lXylbMF0sIFwKKwkubmdyb3VwcyA9IEFSUkFZX1NJWkUoRlVOQ19TWU0obmFtZV8pKSwgXAogfQogCiBzdHJ1Y3QgYXNwZWVkX3Bpbm11eF9kYXRhOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTI4MzUuYyBiL2RyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY20yODM1LmMKaW5kZXggMTgzZDFmZi4uMGRlMWEzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTI4MzUuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtMjgzNS5jCkBAIC01NywxOSArNTcsMjcgQEAKICNkZWZpbmUgR1BBRkVOMAkJMHg4OAkvKiBQaW4gQXN5bmMgRmFsbGluZyBFZGdlIERldGVjdCAqLwogI2RlZmluZSBHUFBVRAkJMHg5NAkvKiBQaW4gUHVsbC11cC9kb3duIEVuYWJsZSAqLwogI2RlZmluZSBHUFBVRENMSzAJMHg5OAkvKiBQaW4gUHVsbC11cC9kb3duIEVuYWJsZSBDbG9jayAqLworI2RlZmluZSBHUF9HUElPX1BVUF9QRE5fQ05UUkxfUkVHMCAweGU0IC8qIDI3MTEgUGluIFB1bGwtdXAvZG93biBzZWxlY3QgKi8KIAogI2RlZmluZSBGU0VMX1JFRyhwKQkJKEdQRlNFTDAgKyAoKChwKSAvIDEwKSAqIDQpKQogI2RlZmluZSBGU0VMX1NISUZUKHApCQkoKChwKSAlIDEwKSAqIDMpCiAjZGVmaW5lIEdQSU9fUkVHX09GRlNFVChwKQkoKHApIC8gMzIpCiAjZGVmaW5lIEdQSU9fUkVHX1NISUZUKHApCSgocCkgJSAzMikKIAorI2RlZmluZSBQVURfMjcxMV9NQVNLCQkweDMKKyNkZWZpbmUgUFVEXzI3MTFfUkVHX09GRlNFVChwKQkoKHApIC8gMTYpCisjZGVmaW5lIFBVRF8yNzExX1JFR19TSElGVChwKQkoKChwKSAlIDE2KSAqIDIpCisKIC8qIGFyZ3VtZW50OiBiY20yODM1X3BpbmNvbmZfcHVsbCAqLwogI2RlZmluZSBCQ00yODM1X1BJTkNPTkZfUEFSQU1fUFVMTAkoUElOX0NPTkZJR19FTkQgKyAxKQogCisjZGVmaW5lIEJDTTI3MTFfUFVMTF9OT05FCTB4MAorI2RlZmluZSBCQ00yNzExX1BVTExfVVAJCTB4MQorI2RlZmluZSBCQ00yNzExX1BVTExfRE9XTgkweDIKKwogc3RydWN0IGJjbTI4MzVfcGluY3RybCB7CiAJc3RydWN0IGRldmljZSAqZGV2OwogCXZvaWQgX19pb21lbSAqYmFzZTsKLQlpbnQgaXJxW0JDTTI4MzVfTlVNX0lSUVNdOwogCiAJLyogbm90ZTogbG9ja2luZyBhc3N1bWVzIGVhY2ggYmFuayB3aWxsIGhhdmUgaXRzIG93biB1bnNpZ25lZCBsb25nICovCiAJdW5zaWduZWQgbG9uZyBlbmFibGVkX2lycV9tYXBbQkNNMjgzNV9OVU1fQkFOS1NdOwpAQCAtMzczLDE0ICszODEsMTQgQEAgc3RhdGljIHZvaWQgYmNtMjgzNV9ncGlvX2lycV9oYW5kbGVyKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKIAlpbnQgZ3JvdXA7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwYy0+aXJxKTsgaSsrKSB7Ci0JCWlmIChwYy0+aXJxW2ldID09IGlycSkgeworCWZvciAoaSA9IDA7IGkgPCBCQ00yODM1X05VTV9JUlFTOyBpKyspIHsKKwkJaWYgKGNoaXAtPmlycS5wYXJlbnRzW2ldID09IGlycSkgewogCQkJZ3JvdXAgPSBpOwogCQkJYnJlYWs7CiAJCX0KIAl9CiAJLyogVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgZXZlcnkgSVJRIGhhcyBhIGJhbmsgKi8KLQlpZiAoaSA9PSBBUlJBWV9TSVpFKHBjLT5pcnEpKQorCWlmIChpID09IEJDTTI4MzVfTlVNX0lSUVMpCiAJCUJVRygpOwogCiAJY2hhaW5lZF9pcnFfZW50ZXIoaG9zdF9jaGlwLCBkZXNjKTsKQEAgLTk3NSw2ICs5ODMsNzcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jb25mX29wcyBiY20yODM1X3BpbmNvbmZfb3BzID0gewogCS5waW5fY29uZmlnX3NldCA9IGJjbTI4MzVfcGluY29uZl9zZXQsCiB9OwogCitzdGF0aWMgdm9pZCBiY20yNzExX3B1bGxfY29uZmlnX3NldChzdHJ1Y3QgYmNtMjgzNV9waW5jdHJsICpwYywKKwkJCQkgICAgdW5zaWduZWQgaW50IHBpbiwgdW5zaWduZWQgaW50IGFyZykKK3sKKwl1MzIgc2hpZnRlcjsKKwl1MzIgdmFsdWU7CisJdTMyIG9mZjsKKworCW9mZiA9IFBVRF8yNzExX1JFR19PRkZTRVQocGluKTsKKwlzaGlmdGVyID0gUFVEXzI3MTFfUkVHX1NISUZUKHBpbik7CisKKwl2YWx1ZSA9IGJjbTI4MzVfZ3Bpb19yZChwYywgR1BfR1BJT19QVVBfUEROX0NOVFJMX1JFRzAgKyAob2ZmICogNCkpOworCXZhbHVlICY9IH4oUFVEXzI3MTFfTUFTSyA8PCBzaGlmdGVyKTsKKwl2YWx1ZSB8PSAoYXJnIDw8IHNoaWZ0ZXIpOworCWJjbTI4MzVfZ3Bpb193cihwYywgR1BfR1BJT19QVVBfUEROX0NOVFJMX1JFRzAgKyAob2ZmICogNCksIHZhbHVlKTsKK30KKworc3RhdGljIGludCBiY20yNzExX3BpbmNvbmZfc2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgcGluLCB1bnNpZ25lZCBsb25nICpjb25maWdzLAorCQkJICAgICAgIHVuc2lnbmVkIGludCBudW1fY29uZmlncykKK3sKKwlzdHJ1Y3QgYmNtMjgzNV9waW5jdHJsICpwYyA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOworCXUzMiBwYXJhbSwgYXJnOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG51bV9jb25maWdzOyBpKyspIHsKKwkJcGFyYW0gPSBwaW5jb25mX3RvX2NvbmZpZ19wYXJhbShjb25maWdzW2ldKTsKKwkJYXJnID0gcGluY29uZl90b19jb25maWdfYXJndW1lbnQoY29uZmlnc1tpXSk7CisKKwkJc3dpdGNoIChwYXJhbSkgeworCQkvKiBjb252ZXJ0IGxlZ2FjeSBicmNtLHB1bGwgKi8KKwkJY2FzZSBCQ00yODM1X1BJTkNPTkZfUEFSQU1fUFVMTDoKKwkJCWlmIChhcmcgPT0gQkNNMjgzNV9QVURfVVApCisJCQkJYXJnID0gQkNNMjcxMV9QVUxMX1VQOworCQkJZWxzZSBpZiAoYXJnID09IEJDTTI4MzVfUFVEX0RPV04pCisJCQkJYXJnID0gQkNNMjcxMV9QVUxMX0RPV047CisJCQllbHNlCisJCQkJYXJnID0gQkNNMjcxMV9QVUxMX05PTkU7CisKKwkJCWJjbTI3MTFfcHVsbF9jb25maWdfc2V0KHBjLCBwaW4sIGFyZyk7CisJCQlicmVhazsKKworCQkvKiBTZXQgcHVsbCBnZW5lcmljIGJpbmRpbmdzICovCisJCWNhc2UgUElOX0NPTkZJR19CSUFTX0RJU0FCTEU6CisJCQliY20yNzExX3B1bGxfY29uZmlnX3NldChwYywgcGluLCBCQ00yNzExX1BVTExfTk9ORSk7CisJCQlicmVhazsKKwkJY2FzZSBQSU5fQ09ORklHX0JJQVNfUFVMTF9ET1dOOgorCQkJYmNtMjcxMV9wdWxsX2NvbmZpZ19zZXQocGMsIHBpbiwgQkNNMjcxMV9QVUxMX0RPV04pOworCQkJYnJlYWs7CisJCWNhc2UgUElOX0NPTkZJR19CSUFTX1BVTExfVVA6CisJCQliY20yNzExX3B1bGxfY29uZmlnX3NldChwYywgcGluLCBCQ00yNzExX1BVTExfVVApOworCQkJYnJlYWs7CisKKwkJLyogU2V0IG91dHB1dC1oaWdoIG9yIG91dHB1dC1sb3cgKi8KKwkJY2FzZSBQSU5fQ09ORklHX09VVFBVVDoKKwkJCWJjbTI4MzVfZ3Bpb19zZXRfYml0KHBjLCBhcmcgPyBHUFNFVDAgOiBHUENMUjAsIHBpbik7CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJcmV0dXJuIC1FTk9UU1VQUDsKKwkJfQorCX0gLyogZm9yIGVhY2ggY29uZmlnICovCisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jb25mX29wcyBiY20yNzExX3BpbmNvbmZfb3BzID0geworCS5pc19nZW5lcmljID0gdHJ1ZSwKKwkucGluX2NvbmZpZ19nZXQgPSBiY20yODM1X3BpbmNvbmZfZ2V0LAorCS5waW5fY29uZmlnX3NldCA9IGJjbTI3MTFfcGluY29uZl9zZXQsCit9OworCiBzdGF0aWMgc3RydWN0IHBpbmN0cmxfZGVzYyBiY20yODM1X3BpbmN0cmxfZGVzYyA9IHsKIAkubmFtZSA9IE1PRFVMRV9OQU1FLAogCS5waW5zID0gYmNtMjgzNV9ncGlvX3BpbnMsCkBAIC05OTAsMTMgKzEwNjksMjggQEAgc3RhdGljIHN0cnVjdCBwaW5jdHJsX2dwaW9fcmFuZ2UgYmNtMjgzNV9waW5jdHJsX2dwaW9fcmFuZ2UgPSB7CiAJLm5waW5zID0gQkNNMjgzNV9OVU1fR1BJT1MsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBiY20yODM1X3BpbmN0cmxfbWF0Y2hbXSA9IHsKKwl7CisJCS5jb21wYXRpYmxlID0gImJyY20sYmNtMjgzNS1ncGlvIiwKKwkJLmRhdGEgPSAmYmNtMjgzNV9waW5jb25mX29wcywKKwl9LAorCXsKKwkJLmNvbXBhdGlibGUgPSAiYnJjbSxiY20yNzExLWdwaW8iLAorCQkuZGF0YSA9ICZiY20yNzExX3BpbmNvbmZfb3BzLAorCX0sCisJe30KK307CisKIHN0YXRpYyBpbnQgYmNtMjgzNV9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZGV2LT5vZl9ub2RlOwogCXN0cnVjdCBiY20yODM1X3BpbmN0cmwgKnBjOworCXN0cnVjdCBncGlvX2lycV9jaGlwICpnaXJxOwogCXN0cnVjdCByZXNvdXJjZSBpb21lbTsKIAlpbnQgZXJyLCBpOworCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoOworCiAJQlVJTERfQlVHX09OKEFSUkFZX1NJWkUoYmNtMjgzNV9ncGlvX3BpbnMpICE9IEJDTTI4MzVfTlVNX0dQSU9TKTsKIAlCVUlMRF9CVUdfT04oQVJSQVlfU0laRShiY20yODM1X2dwaW9fZ3JvdXBzKSAhPSBCQ00yODM1X05VTV9HUElPUyk7CiAKQEAgLTEwNDEsMzYgKzExMzUsMzcgQEAgc3RhdGljIGludCBiY20yODM1X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcmF3X3NwaW5fbG9ja19pbml0KCZwYy0+aXJxX2xvY2tbaV0pOwogCX0KIAorCWdpcnEgPSAmcGMtPmdwaW9fY2hpcC5pcnE7CisJZ2lycS0+Y2hpcCA9ICZiY20yODM1X2dwaW9faXJxX2NoaXA7CisJZ2lycS0+cGFyZW50X2hhbmRsZXIgPSBiY20yODM1X2dwaW9faXJxX2hhbmRsZXI7CisJZ2lycS0+bnVtX3BhcmVudHMgPSBCQ00yODM1X05VTV9JUlFTOworCWdpcnEtPnBhcmVudHMgPSBkZXZtX2tjYWxsb2MoZGV2LCBCQ00yODM1X05VTV9JUlFTLAorCQkJCSAgICAgc2l6ZW9mKCpnaXJxLT5wYXJlbnRzKSwKKwkJCQkgICAgIEdGUF9LRVJORUwpOworCWlmICghZ2lycS0+cGFyZW50cykKKwkJcmV0dXJuIC1FTk9NRU07CisJLyoKKwkgKiBVc2UgdGhlIHNhbWUgaGFuZGxlciBmb3IgYWxsIGdyb3VwczogdGhpcyBpcyBuZWNlc3NhcnkKKwkgKiBzaW5jZSB3ZSB1c2Ugb25lIGdwaW9jaGlwIHRvIGNvdmVyIGFsbCBsaW5lcyAtIHRoZQorCSAqIGlycSBoYW5kbGVyIHRoZW4gbmVlZHMgdG8gZmlndXJlIG91dCB3aGljaCBncm91cCBhbmQKKwkgKiBiYW5rIHRoYXQgd2FzIGZpcmluZyB0aGUgSVJRIGFuZCBsb29rIHVwIHRoZSBwZXItZ3JvdXAKKwkgKiBhbmQgYmFuayBkYXRhLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBCQ00yODM1X05VTV9JUlFTOyBpKyspCisJCWdpcnEtPnBhcmVudHNbaV0gPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgaSk7CisJZ2lycS0+ZGVmYXVsdF90eXBlID0gSVJRX1RZUEVfTk9ORTsKKwlnaXJxLT5oYW5kbGVyID0gaGFuZGxlX2xldmVsX2lycTsKKwogCWVyciA9IGdwaW9jaGlwX2FkZF9kYXRhKCZwYy0+Z3Bpb19jaGlwLCBwYyk7CiAJaWYgKGVycikgewogCQlkZXZfZXJyKGRldiwgImNvdWxkIG5vdCBhZGQgR1BJTyBjaGlwXG4iKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKLQllcnIgPSBncGlvY2hpcF9pcnFjaGlwX2FkZCgmcGMtPmdwaW9fY2hpcCwgJmJjbTI4MzVfZ3Bpb19pcnFfY2hpcCwKLQkJCQkgICAwLCBoYW5kbGVfbGV2ZWxfaXJxLCBJUlFfVFlQRV9OT05FKTsKLQlpZiAoZXJyKSB7Ci0JCWRldl9pbmZvKGRldiwgImNvdWxkIG5vdCBhZGQgaXJxY2hpcFxuIik7Ci0JCXJldHVybiBlcnI7Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IEJDTTI4MzVfTlVNX0lSUVM7IGkrKykgewotCQlwYy0+aXJxW2ldID0gaXJxX29mX3BhcnNlX2FuZF9tYXAobnAsIGkpOwotCi0JCWlmIChwYy0+aXJxW2ldID09IDApCi0JCQljb250aW51ZTsKLQotCQkvKgotCQkgKiBVc2UgdGhlIHNhbWUgaGFuZGxlciBmb3IgYWxsIGdyb3VwczogdGhpcyBpcyBuZWNlc3NhcnkKLQkJICogc2luY2Ugd2UgdXNlIG9uZSBncGlvY2hpcCB0byBjb3ZlciBhbGwgbGluZXMgLSB0aGUKLQkJICogaXJxIGhhbmRsZXIgdGhlbiBuZWVkcyB0byBmaWd1cmUgb3V0IHdoaWNoIGdyb3VwIGFuZAotCQkgKiBiYW5rIHRoYXQgd2FzIGZpcmluZyB0aGUgSVJRIGFuZCBsb29rIHVwIHRoZSBwZXItZ3JvdXAKLQkJICogYW5kIGJhbmsgZGF0YS4KLQkJICovCi0JCWdwaW9jaGlwX3NldF9jaGFpbmVkX2lycWNoaXAoJnBjLT5ncGlvX2NoaXAsCi0JCQkJCSAgICAgJmJjbTI4MzVfZ3Bpb19pcnFfY2hpcCwKLQkJCQkJICAgICBwYy0+aXJxW2ldLAotCQkJCQkgICAgIGJjbTI4MzVfZ3Bpb19pcnFfaGFuZGxlcik7CisJbWF0Y2ggPSBvZl9tYXRjaF9ub2RlKGJjbTI4MzVfcGluY3RybF9tYXRjaCwgcGRldi0+ZGV2Lm9mX25vZGUpOworCWlmIChtYXRjaCkgeworCQliY20yODM1X3BpbmN0cmxfZGVzYy5jb25mb3BzID0KKwkJCShjb25zdCBzdHJ1Y3QgcGluY29uZl9vcHMgKiltYXRjaC0+ZGF0YTsKIAl9CiAKIAlwYy0+cGN0bF9kZXYgPSBkZXZtX3BpbmN0cmxfcmVnaXN0ZXIoZGV2LCAmYmNtMjgzNV9waW5jdHJsX2Rlc2MsIHBjKTsKQEAgLTEwODcsMTEgKzExODIsNiBAQCBzdGF0aWMgaW50IGJjbTI4MzVfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBiY20yODM1X3BpbmN0cmxfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gImJyY20sYmNtMjgzNS1ncGlvIiB9LAotCXt9Ci19OwotCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBiY20yODM1X3BpbmN0cmxfZHJpdmVyID0gewogCS5wcm9iZSA9IGJjbTI4MzVfcGluY3RybF9wcm9iZSwKIAkuZHJpdmVyID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWN5Z251cy1tdXguYyBiL2RyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1jeWdudXMtbXV4LmMKaW5kZXggNDRkZjM1OS4uZGNhYjIyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWN5Z251cy1tdXguYworKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtY3lnbnVzLW11eC5jCkBAIC05MjMsNyArOTIzLDYgQEAgc3RhdGljIGludCBjeWdudXNfbXV4X2xvZ19pbml0KHN0cnVjdCBjeWdudXNfcGluY3RybCAqcGluY3RybCkKIAlpZiAoIXBpbmN0cmwtPm11eF9sb2cpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JbG9nID0gcGluY3RybC0+bXV4X2xvZzsKIAlmb3IgKGkgPSAwOyBpIDwgQ1lHTlVTX05VTV9JT01VWF9SRUdTOyBpKyspIHsKIAkJZm9yIChqID0gMDsgaiA8IENZR05VU19OVU1fTVVYX1BFUl9SRUc7IGorKykgewogCQkJbG9nID0gJnBpbmN0cmwtPm11eF9sb2dbaSAqIENZR05VU19OVU1fTVVYX1BFUl9SRUcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1pcHJvYy1ncGlvLmMgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtaXByb2MtZ3Bpby5jCmluZGV4IGI3MDA1OGMuLjZmN2QzYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1pcHJvYy1ncGlvLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWlwcm9jLWdwaW8uYwpAQCAtNTQsOCArNTQsMTIgQEAKIC8qIGRyaXZlIHN0cmVuZ3RoIGNvbnRyb2wgZm9yIEFTSVUgR1BJTyAqLwogI2RlZmluZSBJUFJPQ19HUElPX0FTSVVfRFJWMF9DVFJMX09GRlNFVCAweDU4CiAKLS8qIGRyaXZlIHN0cmVuZ3RoIGNvbnRyb2wgZm9yIENDTS9DUk1VIChBT04pIEdQSU8gKi8KLSNkZWZpbmUgSVBST0NfR1BJT19EUlYwX0NUUkxfT0ZGU0VUICAweDAwCisvKiBwaW5jb25mIGZvciBDQ00gR1BJTyAqLworI2RlZmluZSBJUFJPQ19HUElPX1BVTExfRE5fT0ZGU0VUICAgMHgxMAorI2RlZmluZSBJUFJPQ19HUElPX1BVTExfVVBfT0ZGU0VUICAgMHgxNAorCisvKiBwaW5jb25mIGZvciBDUk1VKGFvbikgR1BJTyBhbmQgQ0NNIEdQSU8qLworI2RlZmluZSBJUFJPQ19HUElPX0RSVl9DVFJMX09GRlNFVCAgMHgwMAogCiAjZGVmaW5lIEdQSU9fQkFOS19TSVpFIDB4MjAwCiAjZGVmaW5lIE5HUElPU19QRVJfQkFOSyAzMgpAQCAtNzYsNiArODAsMTIgQEAgZW51bSBpcHJvY19waW5jb25mX3BhcmFtIHsKIAlJUFJPQ19QSU5DT05fTUFYLAogfTsKIAorZW51bSBpcHJvY19waW5jb25mX2N0cmxfdHlwZSB7CisJSU9DVFJMX1RZUEVfQU9OID0gMSwKKwlJT0NUUkxfVFlQRV9DRFJVLAorCUlPQ1RSTF9UWVBFX0lOVkFMSUQsCit9OworCiAvKgogICogSXByb2MgR1BJTyBjb3JlCiAgKgpAQCAtMTAwLDkgKzExMCwxMSBAQCBzdHJ1Y3QgaXByb2NfZ3BpbyB7CiAKIAl2b2lkIF9faW9tZW0gKmJhc2U7CiAJdm9pZCBfX2lvbWVtICppb19jdHJsOworCWVudW0gaXByb2NfcGluY29uZl9jdHJsX3R5cGUgaW9fY3RybF90eXBlOwogCiAJcmF3X3NwaW5sb2NrX3QgbG9jazsKIAorCXN0cnVjdCBpcnFfY2hpcCBpcnFjaGlwOwogCXN0cnVjdCBncGlvX2NoaXAgZ2M7CiAJdW5zaWduZWQgbnVtX2JhbmtzOwogCkBAIC0yOTEsMTQgKzMwMyw2IEBAIHN0YXRpYyBpbnQgaXByb2NfZ3Bpb19pcnFfc2V0X3R5cGUoc3RydWN0IGlycV9kYXRhICpkLCB1bnNpZ25lZCBpbnQgdHlwZSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBpcHJvY19ncGlvX2lycV9jaGlwID0gewotCS5uYW1lID0gImJjbS1pcHJvYy1ncGlvIiwKLQkuaXJxX2FjayA9IGlwcm9jX2dwaW9faXJxX2FjaywKLQkuaXJxX21hc2sgPSBpcHJvY19ncGlvX2lycV9tYXNrLAotCS5pcnFfdW5tYXNrID0gaXByb2NfZ3Bpb19pcnFfdW5tYXNrLAotCS5pcnFfc2V0X3R5cGUgPSBpcHJvY19ncGlvX2lycV9zZXRfdHlwZSwKLX07Ci0KIC8qCiAgKiBSZXF1ZXN0IHRoZSBJcHJvYyBJT01VWCBwaW5tdXggY29udHJvbGxlciB0byBtdXggaW5kaXZpZHVhbCBwaW5zIHRvIEdQSU8KICAqLwpAQCAtMzU1LDYgKzM1OSwxNSBAQCBzdGF0aWMgaW50IGlwcm9jX2dwaW9fZGlyZWN0aW9uX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpnYywgdW5zaWduZWQgZ3BpbywKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBpcHJvY19ncGlvX2dldF9kaXJlY3Rpb24oc3RydWN0IGdwaW9fY2hpcCAqZ2MsIHVuc2lnbmVkIGludCBncGlvKQoreworCXN0cnVjdCBpcHJvY19ncGlvICpjaGlwID0gZ3Bpb2NoaXBfZ2V0X2RhdGEoZ2MpOworCXVuc2lnbmVkIGludCBvZmZzZXQgPSBJUFJPQ19HUElPX1JFRyhncGlvLCBJUFJPQ19HUElPX09VVF9FTl9PRkZTRVQpOworCXVuc2lnbmVkIGludCBzaGlmdCA9IElQUk9DX0dQSU9fU0hJRlQoZ3Bpbyk7CisKKwlyZXR1cm4gIShyZWFkbChjaGlwLT5iYXNlICsgb2Zmc2V0KSAmIEJJVChzaGlmdCkpOworfQorCiBzdGF0aWMgdm9pZCBpcHJvY19ncGlvX3NldChzdHJ1Y3QgZ3Bpb19jaGlwICpnYywgdW5zaWduZWQgZ3BpbywgaW50IHZhbCkKIHsKIAlzdHJ1Y3QgaXByb2NfZ3BpbyAqY2hpcCA9IGdwaW9jaGlwX2dldF9kYXRhKGdjKTsKQEAgLTQ2MSwyMCArNDc0LDQ0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9vcHMgaXByb2NfcGN0cmxfb3BzID0gewogc3RhdGljIGludCBpcHJvY19ncGlvX3NldF9wdWxsKHN0cnVjdCBpcHJvY19ncGlvICpjaGlwLCB1bnNpZ25lZCBncGlvLAogCQkJCWJvb2wgZGlzYWJsZSwgYm9vbCBwdWxsX3VwKQogeworCXZvaWQgX19pb21lbSAqYmFzZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCBzaGlmdDsKKwl1MzIgdmFsXzEsIHZhbF8yOwogCiAJcmF3X3NwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5sb2NrLCBmbGFncyk7CisJaWYgKGNoaXAtPmlvX2N0cmxfdHlwZSA9PSBJT0NUUkxfVFlQRV9DRFJVKSB7CisJCWJhc2UgPSBjaGlwLT5pb19jdHJsOworCQlzaGlmdCA9IElQUk9DX0dQSU9fU0hJRlQoZ3Bpbyk7CiAKLQlpZiAoZGlzYWJsZSkgewotCQlpcHJvY19zZXRfYml0KGNoaXAsIElQUk9DX0dQSU9fUkVTX0VOX09GRlNFVCwgZ3BpbywgZmFsc2UpOworCQl2YWxfMSA9IHJlYWRsKGJhc2UgKyBJUFJPQ19HUElPX1BVTExfVVBfT0ZGU0VUKTsKKwkJdmFsXzIgPSByZWFkbChiYXNlICsgSVBST0NfR1BJT19QVUxMX0ROX09GRlNFVCk7CisJCWlmIChkaXNhYmxlKSB7CisJCQkvKiBubyBwdWxsLXVwIG9yIHB1bGwtZG93biAqLworCQkJdmFsXzEgJj0gfkJJVChzaGlmdCk7CisJCQl2YWxfMiAmPSB+QklUKHNoaWZ0KTsKKwkJfSBlbHNlIGlmIChwdWxsX3VwKSB7CisJCQl2YWxfMSB8PSBCSVQoc2hpZnQpOworCQkJdmFsXzIgJj0gfkJJVChzaGlmdCk7CisJCX0gZWxzZSB7CisJCQl2YWxfMSAmPSB+QklUKHNoaWZ0KTsKKwkJCXZhbF8yIHw9IEJJVChzaGlmdCk7CisJCX0KKwkJd3JpdGVsKHZhbF8xLCBiYXNlICsgSVBST0NfR1BJT19QVUxMX1VQX09GRlNFVCk7CisJCXdyaXRlbCh2YWxfMiwgYmFzZSArIElQUk9DX0dQSU9fUFVMTF9ETl9PRkZTRVQpOwogCX0gZWxzZSB7Ci0JCWlwcm9jX3NldF9iaXQoY2hpcCwgSVBST0NfR1BJT19QQURfUkVTX09GRlNFVCwgZ3BpbywKLQkJCSAgICAgICBwdWxsX3VwKTsKLQkJaXByb2Nfc2V0X2JpdChjaGlwLCBJUFJPQ19HUElPX1JFU19FTl9PRkZTRVQsIGdwaW8sIHRydWUpOworCQlpZiAoZGlzYWJsZSkgeworCQkJaXByb2Nfc2V0X2JpdChjaGlwLCBJUFJPQ19HUElPX1JFU19FTl9PRkZTRVQsIGdwaW8sCisJCQkJICAgICAgZmFsc2UpOworCQl9IGVsc2UgeworCQkJaXByb2Nfc2V0X2JpdChjaGlwLCBJUFJPQ19HUElPX1BBRF9SRVNfT0ZGU0VULCBncGlvLAorCQkJCSAgICAgIHB1bGxfdXApOworCQkJaXByb2Nfc2V0X2JpdChjaGlwLCBJUFJPQ19HUElPX1JFU19FTl9PRkZTRVQsIGdwaW8sCisJCQkJICAgICAgdHJ1ZSk7CisJCX0KIAl9CiAKIAlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCiAJZGV2X2RiZyhjaGlwLT5kZXYsICJncGlvOiV1IHNldCBwdWxsdXA6JWRcbiIsIGdwaW8sIHB1bGxfdXApOwogCiAJcmV0dXJuIDA7CkBAIC00ODMsMTQgKzUyMCwzNSBAQCBzdGF0aWMgaW50IGlwcm9jX2dwaW9fc2V0X3B1bGwoc3RydWN0IGlwcm9jX2dwaW8gKmNoaXAsIHVuc2lnbmVkIGdwaW8sCiBzdGF0aWMgdm9pZCBpcHJvY19ncGlvX2dldF9wdWxsKHN0cnVjdCBpcHJvY19ncGlvICpjaGlwLCB1bnNpZ25lZCBncGlvLAogCQkJCSBib29sICpkaXNhYmxlLCBib29sICpwdWxsX3VwKQogeworCXZvaWQgX19pb21lbSAqYmFzZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCBzaGlmdDsKKwl1MzIgdmFsXzEsIHZhbF8yOwogCiAJcmF3X3NwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JKmRpc2FibGUgPSAhaXByb2NfZ2V0X2JpdChjaGlwLCBJUFJPQ19HUElPX1JFU19FTl9PRkZTRVQsIGdwaW8pOwotCSpwdWxsX3VwID0gaXByb2NfZ2V0X2JpdChjaGlwLCBJUFJPQ19HUElPX1BBRF9SRVNfT0ZGU0VULCBncGlvKTsKKwlpZiAoY2hpcC0+aW9fY3RybF90eXBlID09IElPQ1RSTF9UWVBFX0NEUlUpIHsKKwkJYmFzZSA9IGNoaXAtPmlvX2N0cmw7CisJCXNoaWZ0ID0gSVBST0NfR1BJT19TSElGVChncGlvKTsKKworCQl2YWxfMSA9IHJlYWRsKGJhc2UgKyBJUFJPQ19HUElPX1BVTExfVVBfT0ZGU0VUKSAmIEJJVChzaGlmdCk7CisJCXZhbF8yID0gcmVhZGwoYmFzZSArIElQUk9DX0dQSU9fUFVMTF9ETl9PRkZTRVQpICYgQklUKHNoaWZ0KTsKKworCQkqcHVsbF91cCA9IHZhbF8xID8gdHJ1ZSA6IGZhbHNlOworCQkqZGlzYWJsZSA9ICh2YWxfMSB8IHZhbF8yKSA/IGZhbHNlIDogdHJ1ZTsKKworCX0gZWxzZSB7CisJCSpkaXNhYmxlID0gIWlwcm9jX2dldF9iaXQoY2hpcCwgSVBST0NfR1BJT19SRVNfRU5fT0ZGU0VULCBncGlvKTsKKwkJKnB1bGxfdXAgPSBpcHJvY19nZXRfYml0KGNoaXAsIElQUk9DX0dQSU9fUEFEX1JFU19PRkZTRVQsIGdwaW8pOworCX0KIAlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwogfQogCisjZGVmaW5lIERSVl9TVFJFTkdUSF9PRkZTRVQoZ3BpbywgYml0LCB0eXBlKSAgKCh0eXBlKSA9PSBJT0NUUkxfVFlQRV9BT04gPyBcCisJKCgyIC0gKGJpdCkpICogNCArIElQUk9DX0dQSU9fRFJWX0NUUkxfT0ZGU0VUKSA6IFwKKwkoKHR5cGUpID09IElPQ1RSTF9UWVBFX0NEUlUpID8gXAorCSgoYml0KSAqIDQgKyBJUFJPQ19HUElPX0RSVl9DVFJMX09GRlNFVCkgOiBcCisJKChiaXQpICogNCArIElQUk9DX0dQSU9fUkVHKGdwaW8sIElQUk9DX0dQSU9fQVNJVV9EUlYwX0NUUkxfT0ZGU0VUKSkpCisKIHN0YXRpYyBpbnQgaXByb2NfZ3Bpb19zZXRfc3RyZW5ndGgoc3RydWN0IGlwcm9jX2dwaW8gKmNoaXAsIHVuc2lnbmVkIGdwaW8sCiAJCQkJICAgIHVuc2lnbmVkIHN0cmVuZ3RoKQogewpAQCAtNTA1LDExICs1NjMsOCBAQCBzdGF0aWMgaW50IGlwcm9jX2dwaW9fc2V0X3N0cmVuZ3RoKHN0cnVjdCBpcHJvY19ncGlvICpjaGlwLCB1bnNpZ25lZCBncGlvLAogCiAJaWYgKGNoaXAtPmlvX2N0cmwpIHsKIAkJYmFzZSA9IGNoaXAtPmlvX2N0cmw7Ci0JCW9mZnNldCA9IElQUk9DX0dQSU9fRFJWMF9DVFJMX09GRlNFVDsKIAl9IGVsc2UgewogCQliYXNlID0gY2hpcC0+YmFzZTsKLQkJb2Zmc2V0ID0gSVBST0NfR1BJT19SRUcoZ3BpbywKLQkJCQkJIElQUk9DX0dQSU9fQVNJVV9EUlYwX0NUUkxfT0ZGU0VUKTsKIAl9CiAKIAlzaGlmdCA9IElQUk9DX0dQSU9fU0hJRlQoZ3Bpbyk7CkBAIC01MjAsMTEgKzU3NSwxMSBAQCBzdGF0aWMgaW50IGlwcm9jX2dwaW9fc2V0X3N0cmVuZ3RoKHN0cnVjdCBpcHJvY19ncGlvICpjaGlwLCB1bnNpZ25lZCBncGlvLAogCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwogCXN0cmVuZ3RoID0gKHN0cmVuZ3RoIC8gMikgLSAxOwogCWZvciAoaSA9IDA7IGkgPCBHUElPX0RSVl9TVFJFTkdUSF9CSVRTOyBpKyspIHsKKwkJb2Zmc2V0ID0gRFJWX1NUUkVOR1RIX09GRlNFVChncGlvLCBpLCBjaGlwLT5pb19jdHJsX3R5cGUpOwogCQl2YWwgPSByZWFkbChiYXNlICsgb2Zmc2V0KTsKIAkJdmFsICY9IH5CSVQoc2hpZnQpOwogCQl2YWwgfD0gKChzdHJlbmd0aCA+PiBpKSAmIDB4MSkgPDwgc2hpZnQ7CiAJCXdyaXRlbCh2YWwsIGJhc2UgKyBvZmZzZXQpOwotCQlvZmZzZXQgKz0gNDsKIAl9CiAJcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKIApAQCAtNTQxLDExICs1OTYsOCBAQCBzdGF0aWMgaW50IGlwcm9jX2dwaW9fZ2V0X3N0cmVuZ3RoKHN0cnVjdCBpcHJvY19ncGlvICpjaGlwLCB1bnNpZ25lZCBncGlvLAogCiAJaWYgKGNoaXAtPmlvX2N0cmwpIHsKIAkJYmFzZSA9IGNoaXAtPmlvX2N0cmw7Ci0JCW9mZnNldCA9IElQUk9DX0dQSU9fRFJWMF9DVFJMX09GRlNFVDsKIAl9IGVsc2UgewogCQliYXNlID0gY2hpcC0+YmFzZTsKLQkJb2Zmc2V0ID0gSVBST0NfR1BJT19SRUcoZ3BpbywKLQkJCQkJIElQUk9DX0dQSU9fQVNJVV9EUlYwX0NUUkxfT0ZGU0VUKTsKIAl9CiAKIAlzaGlmdCA9IElQUk9DX0dQSU9fU0hJRlQoZ3Bpbyk7CkBAIC01NTMsMTAgKzYwNSwxMCBAQCBzdGF0aWMgaW50IGlwcm9jX2dwaW9fZ2V0X3N0cmVuZ3RoKHN0cnVjdCBpcHJvY19ncGlvICpjaGlwLCB1bnNpZ25lZCBncGlvLAogCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwogCSpzdHJlbmd0aCA9IDA7CiAJZm9yIChpID0gMDsgaSA8IEdQSU9fRFJWX1NUUkVOR1RIX0JJVFM7IGkrKykgeworCQlvZmZzZXQgPSBEUlZfU1RSRU5HVEhfT0ZGU0VUKGdwaW8sIGksIGNoaXAtPmlvX2N0cmxfdHlwZSk7CiAJCXZhbCA9IHJlYWRsKGJhc2UgKyBvZmZzZXQpICYgQklUKHNoaWZ0KTsKIAkJdmFsID4+PSBzaGlmdDsKIAkJKnN0cmVuZ3RoICs9ICh2YWwgPDwgaSk7Ci0JCW9mZnNldCArPSA0OwogCX0KIAogCS8qIGNvbnZlcnQgdG8gbUEgKi8KQEAgLTczNCw2ICs3ODYsNyBAQCBzdGF0aWMgaW50IGlwcm9jX2dwaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl1MzIgbmdwaW9zLCBwaW5jb25mX2Rpc2FibGVfbWFzayA9IDA7CiAJaW50IGlycSwgcmV0OwogCWJvb2wgbm9fcGluY29uZiA9IGZhbHNlOworCWVudW0gaXByb2NfcGluY29uZl9jdHJsX3R5cGUgaW9fY3RybF90eXBlID0gSU9DVFJMX1RZUEVfSU5WQUxJRDsKIAogCS8qIE5TUCBkb2VzIG5vdCBzdXBwb3J0IGRyaXZlIHN0cmVuZ3RoIGNvbmZpZyAqLwogCWlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShkZXYtPm9mX25vZGUsICJicmNtLGlwcm9jLW5zcC1ncGlvIikpCkBAIC03NjQsOCArODE3LDE1IEBAIHN0YXRpYyBpbnQgaXByb2NfZ3Bpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQkJZGV2X2VycihkZXYsICJ1bmFibGUgdG8gbWFwIEkvTyBtZW1vcnlcbiIpOwogCQkJcmV0dXJuIFBUUl9FUlIoY2hpcC0+aW9fY3RybCk7CiAJCX0KKwkJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKGRldi0+b2Zfbm9kZSwKKwkJCQkJICAgICJicmNtLGN5Z251cy1jY20tZ3BpbyIpKQorCQkJaW9fY3RybF90eXBlID0gSU9DVFJMX1RZUEVfQ0RSVTsKKwkJZWxzZQorCQkJaW9fY3RybF90eXBlID0gSU9DVFJMX1RZUEVfQU9OOwogCX0KIAorCWNoaXAtPmlvX2N0cmxfdHlwZSA9IGlvX2N0cmxfdHlwZTsKKwogCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihkZXYtPm9mX25vZGUsICJuZ3Bpb3MiLCAmbmdwaW9zKSkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJtaXNzaW5nIG5ncGlvcyBEVCBwcm9wZXJ0eVxuIik7CiAJCXJldHVybiAtRU5PREVWOwpAQCAtNzg0LDEyICs4NDQsNDIgQEAgc3RhdGljIGludCBpcHJvY19ncGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZ2MtPmZyZWUgPSBpcHJvY19ncGlvX2ZyZWU7CiAJZ2MtPmRpcmVjdGlvbl9pbnB1dCA9IGlwcm9jX2dwaW9fZGlyZWN0aW9uX2lucHV0OwogCWdjLT5kaXJlY3Rpb25fb3V0cHV0ID0gaXByb2NfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0OworCWdjLT5nZXRfZGlyZWN0aW9uID0gaXByb2NfZ3Bpb19nZXRfZGlyZWN0aW9uOwogCWdjLT5zZXQgPSBpcHJvY19ncGlvX3NldDsKIAlnYy0+Z2V0ID0gaXByb2NfZ3Bpb19nZXQ7CiAKIAljaGlwLT5waW5tdXhfaXNfc3VwcG9ydGVkID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKGRldi0+b2Zfbm9kZSwKIAkJCQkJCQkiZ3Bpby1yYW5nZXMiKTsKIAorCS8qIG9wdGlvbmFsIEdQSU8gaW50ZXJydXB0IHN1cHBvcnQgKi8KKwlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOworCWlmIChpcnEpIHsKKwkJc3RydWN0IGlycV9jaGlwICppcnFjOworCQlzdHJ1Y3QgZ3Bpb19pcnFfY2hpcCAqZ2lycTsKKworCQlpcnFjID0gJmNoaXAtPmlycWNoaXA7CisJCWlycWMtPm5hbWUgPSAiYmNtLWlwcm9jLWdwaW8iOworCQlpcnFjLT5pcnFfYWNrID0gaXByb2NfZ3Bpb19pcnFfYWNrOworCQlpcnFjLT5pcnFfbWFzayA9IGlwcm9jX2dwaW9faXJxX21hc2s7CisJCWlycWMtPmlycV91bm1hc2sgPSBpcHJvY19ncGlvX2lycV91bm1hc2s7CisJCWlycWMtPmlycV9zZXRfdHlwZSA9IGlwcm9jX2dwaW9faXJxX3NldF90eXBlOworCQlpcnFjLT5pcnFfZW5hYmxlID0gaXByb2NfZ3Bpb19pcnFfdW5tYXNrOworCQlpcnFjLT5pcnFfZGlzYWJsZSA9IGlwcm9jX2dwaW9faXJxX21hc2s7CisKKwkJZ2lycSA9ICZnYy0+aXJxOworCQlnaXJxLT5jaGlwID0gaXJxYzsKKwkJZ2lycS0+cGFyZW50X2hhbmRsZXIgPSBpcHJvY19ncGlvX2lycV9oYW5kbGVyOworCQlnaXJxLT5udW1fcGFyZW50cyA9IDE7CisJCWdpcnEtPnBhcmVudHMgPSBkZXZtX2tjYWxsb2MoZGV2LCAxLAorCQkJCQkgICAgIHNpemVvZigqZ2lycS0+cGFyZW50cyksCisJCQkJCSAgICAgR0ZQX0tFUk5FTCk7CisJCWlmICghZ2lycS0+cGFyZW50cykKKwkJCXJldHVybiAtRU5PTUVNOworCQlnaXJxLT5wYXJlbnRzWzBdID0gaXJxOworCQlnaXJxLT5kZWZhdWx0X3R5cGUgPSBJUlFfVFlQRV9OT05FOworCQlnaXJxLT5oYW5kbGVyID0gaGFuZGxlX3NpbXBsZV9pcnE7CisJfQorCiAJcmV0ID0gZ3Bpb2NoaXBfYWRkX2RhdGEoZ2MsIGNoaXApOwogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIoZGV2LCAidW5hYmxlIHRvIGFkZCBHUElPIGNoaXBcbiIpOwpAQCAtODE0LDIwICs5MDQsNiBAQCBzdGF0aWMgaW50IGlwcm9jX2dwaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJfQogCX0KIAotCS8qIG9wdGlvbmFsIEdQSU8gaW50ZXJydXB0IHN1cHBvcnQgKi8KLQlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEpIHsKLQkJcmV0ID0gZ3Bpb2NoaXBfaXJxY2hpcF9hZGQoZ2MsICZpcHJvY19ncGlvX2lycV9jaGlwLCAwLAotCQkJCQkgICBoYW5kbGVfc2ltcGxlX2lycSwgSVJRX1RZUEVfTk9ORSk7Ci0JCWlmIChyZXQpIHsKLQkJCWRldl9lcnIoZGV2LCAibm8gR1BJTyBpcnFjaGlwXG4iKTsKLQkJCWdvdG8gZXJyX3JtX2dwaW9jaGlwOwotCQl9Ci0KLQkJZ3Bpb2NoaXBfc2V0X2NoYWluZWRfaXJxY2hpcChnYywgJmlwcm9jX2dwaW9faXJxX2NoaXAsIGlycSwKLQkJCQkJICAgICBpcHJvY19ncGlvX2lycV9oYW5kbGVyKTsKLQl9Ci0KIAlyZXR1cm4gMDsKIAogZXJyX3JtX2dwaW9jaGlwOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2NpcnJ1cy9LY29uZmlnIGIvZHJpdmVycy9waW5jdHJsL2NpcnJ1cy9LY29uZmlnCmluZGV4IGU1NDZhNmIuLmYxODA2ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9jaXJydXMvS2NvbmZpZworKysgYi9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL0tjb25maWcKQEAgLTE1LDYgKzE1LDkgQEAKIAlzZWxlY3QgUElOTVVYCiAJc2VsZWN0IEdFTkVSSUNfUElOQ09ORgogCitjb25maWcgUElOQ1RSTF9DUzQ3TDE1CisJYm9vbAorCiBjb25maWcgUElOQ1RSTF9DUzQ3TDM1CiAJYm9vbAogCkBAIC0yMywzICsyNiw2IEBACiAKIGNvbmZpZyBQSU5DVFJMX0NTNDdMOTAKIAlib29sCisKK2NvbmZpZyBQSU5DVFJMX0NTNDdMOTIKKwlib29sCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL01ha2VmaWxlIGIvZHJpdmVycy9waW5jdHJsL2NpcnJ1cy9NYWtlZmlsZQppbmRleCAwYzVkZWI2Li5hNDg0NTE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcGluY3RybC9jaXJydXMvTWFrZWZpbGUKQEAgLTMsNiArMyw5IEBACiBvYmotJChDT05GSUdfUElOQ1RSTF9MT0NITkFHQVIpCSs9IHBpbmN0cmwtbG9jaG5hZ2FyLm8KIAogcGluY3RybC1tYWRlcmEtb2JqcwkJOj0gcGluY3RybC1tYWRlcmEtY29yZS5vCitpZmVxICgkKENPTkZJR19QSU5DVFJMX0NTNDdMMTUpLHkpCitwaW5jdHJsLW1hZGVyYS1vYmpzCQkrPSBwaW5jdHJsLWNzNDdsMTUubworZW5kaWYKIGlmZXEgKCQoQ09ORklHX1BJTkNUUkxfQ1M0N0wzNSkseSkKIHBpbmN0cmwtbWFkZXJhLW9ianMJCSs9IHBpbmN0cmwtY3M0N2wzNS5vCiBlbmRpZgpAQCAtMTIsNSArMTUsOCBAQAogaWZlcSAoJChDT05GSUdfUElOQ1RSTF9DUzQ3TDkwKSx5KQogcGluY3RybC1tYWRlcmEtb2JqcwkJKz0gcGluY3RybC1jczQ3bDkwLm8KIGVuZGlmCitpZmVxICgkKENPTkZJR19QSU5DVFJMX0NTNDdMOTIpLHkpCitwaW5jdHJsLW1hZGVyYS1vYmpzCQkrPSBwaW5jdHJsLWNzNDdsOTIubworZW5kaWYKIAogb2JqLSQoQ09ORklHX1BJTkNUUkxfTUFERVJBKQkrPSBwaW5jdHJsLW1hZGVyYS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL3BpbmN0cmwtY3M0N2wxNS5jIGIvZHJpdmVycy9waW5jdHJsL2NpcnJ1cy9waW5jdHJsLWNzNDdsMTUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGJmZWM1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9waW5jdHJsL2NpcnJ1cy9waW5jdHJsLWNzNDdsMTUuYwpAQCAtMCwwICsxLDQwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogUGluY3RybCBmb3IgQ2lycnVzIExvZ2ljIENTNDdMMTUKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBDaXJydXMgTG9naWMsIEluYy4gYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBDaXJydXMgTG9naWMgSW50ZXJuYXRpb25hbCBTZW1pY29uZHVjdG9yIEx0ZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL21hZGVyYS9jb3JlLmg+CisKKyNpbmNsdWRlICJwaW5jdHJsLW1hZGVyYS5oIgorCisvKgorICogVGhlIGFsdCBmdW5jIGdyb3VwcyBhcmUgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBmdW5jdGlvbnMgd2UgcGxhY2UgdGhlc2UgYXQKKyAqIHRoZSBsb3dlciBmdW5jdGlvbiBpbmRleGVzIGZvciBjb252ZW5pZW5jZSwgYW5kIHRoZSBsZXNzIGNvbW1vbmx5IHVzZWQgZ3BpbworICogZnVuY3Rpb25zIGF0IGhpZ2hlciBpbmRleGVzLgorICoKKyAqIFRvIHN0YXkgY29uc2lzdGVudCB3aXRoIHRoZSBkYXRhc2hlZXQgdGhlIGZ1bmN0aW9uIG5hbWVzIGFyZSB0aGUgc2FtZSBhcworICogdGhlIGdyb3VwIG5hbWVzIGZvciB0aGF0IGZ1bmN0aW9uJ3MgcGlucworICoKKyAqIE5vdGUgLSBhbGwgMSBsZXNzIHRoYW4gaW4gZGF0YXNoZWV0IGJlY2F1c2UgdGhlc2UgYXJlIHplcm8taW5kZXhlZAorICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGNzNDdsMTVfYWlmMV9waW5zW10gPSB7IDAsIDEsIDIsIDMgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgY3M0N2wxNV9haWYyX3BpbnNbXSA9IHsgNCwgNSwgNiwgNyB9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBjczQ3bDE1X2FpZjNfcGluc1tdID0geyA4LCA5LCAxMCwgMTEgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgY3M0N2wxNV9zcGsxX3BpbnNbXSA9IHsgMTIsIDEzLCAxNCB9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG1hZGVyYV9waW5fZ3JvdXBzIGNzNDdsMTVfcGluX2dyb3Vwc1tdID0geworCXsgImFpZjEiLCBjczQ3bDE1X2FpZjFfcGlucywgQVJSQVlfU0laRShjczQ3bDE1X2FpZjFfcGlucykgfSwKKwl7ICJhaWYyIiwgY3M0N2wxNV9haWYyX3BpbnMsIEFSUkFZX1NJWkUoY3M0N2wxNV9haWYyX3BpbnMpIH0sCisJeyAiYWlmMyIsIGNzNDdsMTVfYWlmM19waW5zLCBBUlJBWV9TSVpFKGNzNDdsMTVfYWlmM19waW5zKSB9LAorCXsgInBkbXNwazEiLCBjczQ3bDE1X3NwazFfcGlucywgQVJSQVlfU0laRShjczQ3bDE1X3NwazFfcGlucykgfSwKK307CisKK2NvbnN0IHN0cnVjdCBtYWRlcmFfcGluX2NoaXAgY3M0N2wxNV9waW5fY2hpcCA9IHsKKwkubl9waW5zID0gQ1M0N0wxNV9OVU1fR1BJT1MsCisJLnBpbl9ncm91cHMgPSBjczQ3bDE1X3Bpbl9ncm91cHMsCisJLm5fcGluX2dyb3VwcyA9IEFSUkFZX1NJWkUoY3M0N2wxNV9waW5fZ3JvdXBzKSwKK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL3BpbmN0cmwtY3M0N2w5Mi5jIGIvZHJpdmVycy9waW5jdHJsL2NpcnJ1cy9waW5jdHJsLWNzNDdsOTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTQwOTczCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9waW5jdHJsL2NpcnJ1cy9waW5jdHJsLWNzNDdsOTIuYwpAQCAtMCwwICsxLDQwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogUGluY3RybCBmb3IgQ2lycnVzIExvZ2ljIENTNDdMOTIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBDaXJydXMgTG9naWMsIEluYy4gYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBDaXJydXMgTG9naWMgSW50ZXJuYXRpb25hbCBTZW1pY29uZHVjdG9yIEx0ZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL21hZGVyYS9jb3JlLmg+CisKKyNpbmNsdWRlICJwaW5jdHJsLW1hZGVyYS5oIgorCisvKgorICogVGhlIGFsdCBmdW5jIGdyb3VwcyBhcmUgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBmdW5jdGlvbnMgd2UgcGxhY2UgdGhlc2UgYXQKKyAqIHRoZSBsb3dlciBmdW5jdGlvbiBpbmRleGVzIGZvciBjb252ZW5pZW5jZSwgYW5kIHRoZSBsZXNzIGNvbW1vbmx5IHVzZWQgZ3BpbworICogZnVuY3Rpb25zIGF0IGhpZ2hlciBpbmRleGVzLgorICoKKyAqIFRvIHN0YXkgY29uc2lzdGVudCB3aXRoIHRoZSBkYXRhc2hlZXQgdGhlIGZ1bmN0aW9uIG5hbWVzIGFyZSB0aGUgc2FtZSBhcworICogdGhlIGdyb3VwIG5hbWVzIGZvciB0aGF0IGZ1bmN0aW9uJ3MgcGlucworICoKKyAqIE5vdGUgLSBhbGwgMSBsZXNzIHRoYW4gaW4gZGF0YXNoZWV0IGJlY2F1c2UgdGhlc2UgYXJlIHplcm8taW5kZXhlZAorICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGNzNDdsOTJfc3BrMV9waW5zW10gPSB7IDIsIDMgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgY3M0N2w5Ml9haWYxX3BpbnNbXSA9IHsgNCwgNSwgNiwgNyB9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBjczQ3bDkyX2FpZjJfcGluc1tdID0geyA4LCA5LCAxMCwgMTEgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgY3M0N2w5Ml9haWYzX3BpbnNbXSA9IHsgMTIsIDEzLCAxNCwgMTUgfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtYWRlcmFfcGluX2dyb3VwcyBjczQ3bDkyX3Bpbl9ncm91cHNbXSA9IHsKKwl7ICJhaWYxIiwgY3M0N2w5Ml9haWYxX3BpbnMsIEFSUkFZX1NJWkUoY3M0N2w5Ml9haWYxX3BpbnMpIH0sCisJeyAiYWlmMiIsIGNzNDdsOTJfYWlmMl9waW5zLCBBUlJBWV9TSVpFKGNzNDdsOTJfYWlmMl9waW5zKSB9LAorCXsgImFpZjMiLCBjczQ3bDkyX2FpZjNfcGlucywgQVJSQVlfU0laRShjczQ3bDkyX2FpZjNfcGlucykgfSwKKwl7ICJwZG1zcGsxIiwgY3M0N2w5Ml9zcGsxX3BpbnMsIEFSUkFZX1NJWkUoY3M0N2w5Ml9zcGsxX3BpbnMpIH0sCit9OworCitjb25zdCBzdHJ1Y3QgbWFkZXJhX3Bpbl9jaGlwIGNzNDdsOTJfcGluX2NoaXAgPSB7CisJLm5fcGlucyA9IENTNDdMOTJfTlVNX0dQSU9TLAorCS5waW5fZ3JvdXBzID0gY3M0N2w5Ml9waW5fZ3JvdXBzLAorCS5uX3Bpbl9ncm91cHMgPSBBUlJBWV9TSVpFKGNzNDdsOTJfcGluX2dyb3VwcyksCit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2NpcnJ1cy9waW5jdHJsLW1hZGVyYS1jb3JlLmMgYi9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL3BpbmN0cmwtbWFkZXJhLWNvcmUuYwppbmRleCBjNmI5ZjY1Li5lMmY3MmRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL3BpbmN0cmwtbWFkZXJhLWNvcmUuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL3BpbmN0cmwtbWFkZXJhLWNvcmUuYwpAQCAtMzk2LDYgKzM5NiwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKIAkJLmdyb3VwX25hbWVzID0gbWFkZXJhX3Bpbl9zaW5nbGVfZ3JvdXBfbmFtZXMsCiAJCS5mdW5jID0gMHgxNTcKIAl9LAorCXsKKwkJLm5hbWUgPSAiYXV4LXBkbS1jbGsiLAorCQkuZ3JvdXBfbmFtZXMgPSBtYWRlcmFfcGluX3NpbmdsZV9ncm91cF9uYW1lcywKKwkJLmZ1bmMgPSAweDI4MAorCX0sCisJeworCQkubmFtZSA9ICJhdXgtcGRtLWRhdCIsCisJCS5ncm91cF9uYW1lcyA9IG1hZGVyYV9waW5fc2luZ2xlX2dyb3VwX25hbWVzLAorCQkuZnVuYyA9IDB4MjgxCisJfSwKIH07CiAKIHN0YXRpYyB1MTYgbWFkZXJhX3Bpbl9tYWtlX2Rydl9zdHIoc3RydWN0IG1hZGVyYV9waW5fcHJpdmF0ZSAqcHJpdiwKQEAgLTk4Niw3ICs5OTYsNyBAQCBzdGF0aWMgc3RydWN0IHBpbmN0cmxfZGVzYyBtYWRlcmFfcGluX2Rlc2MgPSB7CiBzdGF0aWMgaW50IG1hZGVyYV9waW5fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgbWFkZXJhICptYWRlcmEgPSBkZXZfZ2V0X2RydmRhdGEocGRldi0+ZGV2LnBhcmVudCk7Ci0JY29uc3Qgc3RydWN0IG1hZGVyYV9wZGF0YSAqcGRhdGEgPSBkZXZfZ2V0X3BsYXRkYXRhKG1hZGVyYS0+ZGV2KTsKKwljb25zdCBzdHJ1Y3QgbWFkZXJhX3BkYXRhICpwZGF0YSA9ICZtYWRlcmEtPnBkYXRhOwogCXN0cnVjdCBtYWRlcmFfcGluX3ByaXZhdGUgKnByaXY7CiAJaW50IHJldDsKIApAQCAtMTAwNCw2ICsxMDE0LDEwIEBAIHN0YXRpYyBpbnQgbWFkZXJhX3Bpbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXBkZXYtPmRldi5vZl9ub2RlID0gbWFkZXJhLT5kZXYtPm9mX25vZGU7CiAKIAlzd2l0Y2ggKG1hZGVyYS0+dHlwZSkgeworCWNhc2UgQ1M0N0wxNToKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BJTkNUUkxfQ1M0N0wxNSkpCisJCQlwcml2LT5jaGlwID0gJmNzNDdsMTVfcGluX2NoaXA7CisJCWJyZWFrOwogCWNhc2UgQ1M0N0wzNToKIAkJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BJTkNUUkxfQ1M0N0wzNSkpCiAJCQlwcml2LT5jaGlwID0gJmNzNDdsMzVfcGluX2NoaXA7CkBAIC0xMDE4LDYgKzEwMzIsMTIgQEAgc3RhdGljIGludCBtYWRlcmFfcGluX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWlmIChJU19FTkFCTEVEKENPTkZJR19QSU5DVFJMX0NTNDdMOTApKQogCQkJcHJpdi0+Y2hpcCA9ICZjczQ3bDkwX3Bpbl9jaGlwOwogCQlicmVhazsKKwljYXNlIENTNDJMOTI6CisJY2FzZSBDUzQ3TDkyOgorCWNhc2UgQ1M0N0w5MzoKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BJTkNUUkxfQ1M0N0w5MikpCisJCQlwcml2LT5jaGlwID0gJmNzNDdsOTJfcGluX2NoaXA7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KQEAgLTEwMzcsNyArMTA1Nyw3IEBAIHN0YXRpYyBpbnQgbWFkZXJhX3Bpbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCS8qIGlmIHRoZSBjb25maWd1cmF0aW9uIGlzIHByb3ZpZGVkIHRocm91Z2ggcGRhdGEsIGFwcGx5IGl0ICovCi0JaWYgKHBkYXRhICYmIHBkYXRhLT5ncGlvX2NvbmZpZ3MpIHsKKwlpZiAocGRhdGEtPmdwaW9fY29uZmlncykgewogCQlyZXQgPSBwaW5jdHJsX3JlZ2lzdGVyX21hcHBpbmdzKHBkYXRhLT5ncGlvX2NvbmZpZ3MsCiAJCQkJCQlwZGF0YS0+bl9ncGlvX2NvbmZpZ3MpOwogCQlpZiAocmV0KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL3BpbmN0cmwtbWFkZXJhLmggYi9kcml2ZXJzL3BpbmN0cmwvY2lycnVzL3BpbmN0cmwtbWFkZXJhLmgKaW5kZXggNGFlMTM5MS4uYzE2YTRkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2NpcnJ1cy9waW5jdHJsLW1hZGVyYS5oCisrKyBiL2RyaXZlcnMvcGluY3RybC9jaXJydXMvcGluY3RybC1tYWRlcmEuaApAQCAtMzAsOCArMzAsMTAgQEAgc3RydWN0IG1hZGVyYV9waW5fcHJpdmF0ZSB7CiAJc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsOwogfTsKIAorZXh0ZXJuIGNvbnN0IHN0cnVjdCBtYWRlcmFfcGluX2NoaXAgY3M0N2wxNV9waW5fY2hpcDsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgbWFkZXJhX3Bpbl9jaGlwIGNzNDdsMzVfcGluX2NoaXA7CiBleHRlcm4gY29uc3Qgc3RydWN0IG1hZGVyYV9waW5fY2hpcCBjczQ3bDg1X3Bpbl9jaGlwOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBtYWRlcmFfcGluX2NoaXAgY3M0N2w5MF9waW5fY2hpcDsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgbWFkZXJhX3Bpbl9jaGlwIGNzNDdsOTJfcGluX2NoaXA7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2NvcmUuYyBiL2RyaXZlcnMvcGluY3RybC9jb3JlLmMKaW5kZXggYjcwZGYyNzguLjJiYmQ4ZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9jb3JlLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL2NvcmUuYwpAQCAtNzM2LDYgKzczNiwzNCBAQCBpbnQgcGluY3RybF9nZXRfZ3JvdXBfc2VsZWN0b3Ioc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAogCXJldHVybiAtRUlOVkFMOwogfQogCitib29sIHBpbmN0cmxfZ3Bpb19jYW5fdXNlX2xpbmUodW5zaWduZWQgZ3BpbykKK3sKKwlzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXY7CisJc3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5nZSAqcmFuZ2U7CisJYm9vbCByZXN1bHQ7CisJaW50IHBpbjsKKworCS8qCisJICogVHJ5IHRvIG9idGFpbiBHUElPIHJhbmdlLCBpZiBpdCBmYWlscworCSAqIHdlJ3JlIHByb2JhYmx5IGRlYWxpbmcgd2l0aCBHUElPIGRyaXZlcgorCSAqIHdpdGhvdXQgYSBiYWNraW5nIHBpbiBjb250cm9sbGVyIC0gYmFpbCBvdXQuCisJICovCisJaWYgKHBpbmN0cmxfZ2V0X2RldmljZV9ncGlvX3JhbmdlKGdwaW8sICZwY3RsZGV2LCAmcmFuZ2UpKQorCQlyZXR1cm4gdHJ1ZTsKKworCW11dGV4X2xvY2soJnBjdGxkZXYtPm11dGV4KTsKKworCS8qIENvbnZlcnQgdG8gdGhlIHBpbiBjb250cm9sbGVycyBudW1iZXIgc3BhY2UgKi8KKwlwaW4gPSBncGlvX3RvX3BpbihyYW5nZSwgZ3Bpbyk7CisKKwlyZXN1bHQgPSBwaW5tdXhfY2FuX2JlX3VzZWRfZm9yX2dwaW8ocGN0bGRldiwgcGluKTsKKworCW11dGV4X3VubG9jaygmcGN0bGRldi0+bXV0ZXgpOworCisJcmV0dXJuIHJlc3VsdDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHBpbmN0cmxfZ3Bpb19jYW5fdXNlX2xpbmUpOworCiAvKioKICAqIHBpbmN0cmxfZ3Bpb19yZXF1ZXN0KCkgLSByZXF1ZXN0IGEgc2luZ2xlIHBpbiB0byBiZSB1c2VkIGFzIEdQSU8KICAqIEBncGlvOiB0aGUgR1BJTyBwaW4gbnVtYmVyIGZyb20gdGhlIEdQSU8gc3Vic3lzdGVtIG51bWJlciBzcGFjZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2RldmljZXRyZWUuYyBiL2RyaXZlcnMvcGluY3RybC9kZXZpY2V0cmVlLmMKaW5kZXggODhkZGJiMi4uNWQ2ZDhiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2RldmljZXRyZWUuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvZGV2aWNldHJlZS5jCkBAIC0yMjgsMTAgKzIyOCw4IEBAIGludCBwaW5jdHJsX2R0X3RvX21hcChzdHJ1Y3QgcGluY3RybCAqcCwgc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQogCQkgKiB0aGFuIGR5bmFtaWNhbGx5IGFsbG9jYXRlIGl0IGFuZCBoYXZlIHRvIGZyZWUgaXQgbGF0ZXIsCiAJCSAqIGp1c3QgcG9pbnQgcGFydCB3YXkgaW50byB0aGUgcHJvcGVydHkgbmFtZSBmb3IgdGhlIHN0cmluZy4KIAkJICovCi0JCWlmIChyZXQgPCAwKSB7Ci0JCQkvKiBzdHJsZW4oInBpbmN0cmwtIikgPT0gOCAqLwotCQkJc3RhdGVuYW1lID0gcHJvcC0+bmFtZSArIDg7Ci0JCX0KKwkJaWYgKHJldCA8IDApCisJCQlzdGF0ZW5hbWUgPSBwcm9wLT5uYW1lICsgc3RybGVuKCJwaW5jdHJsLSIpOwogCiAJCS8qIEZvciBldmVyeSByZWZlcmVuY2VkIHBpbiBjb25maWd1cmF0aW9uIG5vZGUgaW4gaXQgKi8KIAkJZm9yIChjb25maWcgPSAwOyBjb25maWcgPCBzaXplOyBjb25maWcrKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2ZyZWVzY2FsZS9waW5jdHJsLWlteC5jIGIvZHJpdmVycy9waW5jdHJsL2ZyZWVzY2FsZS9waW5jdHJsLWlteC5jCmluZGV4IDgzZmY5NTMuLjlmNDIwMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9mcmVlc2NhbGUvcGluY3RybC1pbXguYworKysgYi9kcml2ZXJzL3BpbmN0cmwvZnJlZXNjYWxlL3BpbmN0cmwtaW14LmMKQEAgLTY3Miw4ICs2NzIsMTAgQEAgc3RhdGljIGludCBpbXhfcGluY3RybF9wYXJzZV9mdW5jdGlvbnMoc3RydWN0IGRldmljZV9ub2RlICpucCwKIAogCQlncnAgPSBkZXZtX2t6YWxsb2MoaXBjdGwtPmRldiwgc2l6ZW9mKHN0cnVjdCBncm91cF9kZXNjKSwKIAkJCQkgICBHRlBfS0VSTkVMKTsKLQkJaWYgKCFncnApCisJCWlmICghZ3JwKSB7CisJCQlvZl9ub2RlX3B1dChjaGlsZCk7CiAJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQogCiAJCW11dGV4X2xvY2soJmlwY3RsLT5tdXRleCk7CiAJCXJhZGl4X3RyZWVfaW5zZXJ0KCZwY3RsLT5waW5fZ3JvdXBfdHJlZSwKQEAgLTY5NywxMiArNjk5LDE3IEBAIHN0YXRpYyBib29sIGlteF9waW5jdHJsX2R0X2lzX2ZsYXRfZnVuY3Rpb25zKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJc3RydWN0IGRldmljZV9ub2RlICpwaW5jdHJsX25wOwogCiAJZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShucCwgZnVuY3Rpb25fbnApIHsKLQkJaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9vbChmdW5jdGlvbl9ucCwgImZzbCxwaW5zIikpCisJCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2woZnVuY3Rpb25fbnAsICJmc2wscGlucyIpKSB7CisJCQlvZl9ub2RlX3B1dChmdW5jdGlvbl9ucCk7CiAJCQlyZXR1cm4gdHJ1ZTsKKwkJfQogCiAJCWZvcl9lYWNoX2NoaWxkX29mX25vZGUoZnVuY3Rpb25fbnAsIHBpbmN0cmxfbnApIHsKLQkJCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wocGluY3RybF9ucCwgImZzbCxwaW5zIikpCisJCQlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKHBpbmN0cmxfbnAsICJmc2wscGlucyIpKSB7CisJCQkJb2Zfbm9kZV9wdXQocGluY3RybF9ucCk7CisJCQkJb2Zfbm9kZV9wdXQoZnVuY3Rpb25fbnApOwogCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2ZyZWVzY2FsZS9waW5jdHJsLW14cy5jIGIvZHJpdmVycy9waW5jdHJsL2ZyZWVzY2FsZS9waW5jdHJsLW14cy5jCmluZGV4IDY0MWIzMDguLjczNWNlZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9mcmVlc2NhbGUvcGluY3RybC1teHMuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvZnJlZXNjYWxlL3BpbmN0cmwtbXhzLmMKQEAgLTQ4OCw4ICs0ODgsMTAgQEAgc3RhdGljIGludCBteHNfcGluY3RybF9wcm9iZV9kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCQlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIoY2hpbGQsICJyZWciLCAmdmFsKSkgewogCQkJcmV0ID0gbXhzX3BpbmN0cmxfcGFyc2VfZ3JvdXAocGRldiwgY2hpbGQsCiAJCQkJCQkgICAgICBpZHhnKyssIE5VTEwpOwotCQkJaWYgKHJldCkKKwkJCWlmIChyZXQpIHsKKwkJCQlvZl9ub2RlX3B1dChjaGlsZCk7CiAJCQkJcmV0dXJuIHJldDsKKwkJCX0KIAkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTQ5OSwxNSArNTAxLDE5IEBAIHN0YXRpYyBpbnQgbXhzX3BpbmN0cmxfcHJvYmVfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkJCSBmLT5uZ3JvdXBzLAogCQkJCQkJIHNpemVvZigqZi0+Z3JvdXBzKSwKIAkJCQkJCSBHRlBfS0VSTkVMKTsKLQkJCWlmICghZi0+Z3JvdXBzKQorCQkJaWYgKCFmLT5ncm91cHMpIHsKKwkJCQlvZl9ub2RlX3B1dChjaGlsZCk7CiAJCQkJcmV0dXJuIC1FTk9NRU07CisJCQl9CiAJCQlmbiA9IGNoaWxkLT5uYW1lOwogCQkJaSA9IDA7CiAJCX0KIAkJcmV0ID0gbXhzX3BpbmN0cmxfcGFyc2VfZ3JvdXAocGRldiwgY2hpbGQsIGlkeGcrKywKIAkJCQkJICAgICAgJmYtPmdyb3Vwc1tpKytdKTsKLQkJaWYgKHJldCkKKwkJaWYgKHJldCkgeworCQkJb2Zfbm9kZV9wdXQoY2hpbGQpOwogCQkJcmV0dXJuIHJldDsKKwkJfQogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtYmF5dHJhaWwuYyBiL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWJheXRyYWlsLmMKaW5kZXggMjk3YjdiNS4uOWZmYjIyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtYmF5dHJhaWwuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1iYXl0cmFpbC5jCkBAIC05OCwxMyArOTgsNiBAQCBzdHJ1Y3QgYnl0X2dwaW9fcGluX2NvbnRleHQgewogCXUzMiB2YWw7CiB9OwogCi1zdHJ1Y3QgYnl0X2NvbW11bml0eSB7Ci0JdW5zaWduZWQgaW50IHBpbl9iYXNlOwotCXNpemVfdCBucGluczsKLQljb25zdCB1bnNpZ25lZCBpbnQgKnBhZF9tYXA7Ci0Jdm9pZCBfX2lvbWVtICpyZWdfYmFzZTsKLX07Ci0KICNkZWZpbmUgQ09NTVVOSVRZKHAsIG4sIG1hcCkJCVwKIAl7CQkJCVwKIAkJLnBpbl9iYXNlCT0gKHApLAlcCkBAIC0xMTIsMjYgKzEwNSwxNCBAQCBzdHJ1Y3QgYnl0X2NvbW11bml0eSB7CiAJCS5wYWRfbWFwCT0gKG1hcCksXAogCX0KIAotc3RydWN0IGJ5dF9waW5jdHJsX3NvY19kYXRhIHsKLQljb25zdCBjaGFyICp1aWQ7Ci0JY29uc3Qgc3RydWN0IHBpbmN0cmxfcGluX2Rlc2MgKnBpbnM7Ci0Jc2l6ZV90IG5waW5zOwotCWNvbnN0IHN0cnVjdCBpbnRlbF9waW5ncm91cCAqZ3JvdXBzOwotCXNpemVfdCBuZ3JvdXBzOwotCWNvbnN0IHN0cnVjdCBpbnRlbF9mdW5jdGlvbiAqZnVuY3Rpb25zOwotCXNpemVfdCBuZnVuY3Rpb25zOwotCWNvbnN0IHN0cnVjdCBieXRfY29tbXVuaXR5ICpjb21tdW5pdGllczsKLQlzaXplX3QgbmNvbW11bml0aWVzOwotfTsKLQogc3RydWN0IGJ5dF9ncGlvIHsKIAlzdHJ1Y3QgZ3Bpb19jaGlwIGNoaXA7CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKIAlzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxfZGV2OwogCXN0cnVjdCBwaW5jdHJsX2Rlc2MgcGN0bF9kZXNjOwogCXJhd19zcGlubG9ja190IGxvY2s7Ci0JY29uc3Qgc3RydWN0IGJ5dF9waW5jdHJsX3NvY19kYXRhICpzb2NfZGF0YTsKLQlzdHJ1Y3QgYnl0X2NvbW11bml0eSAqY29tbXVuaXRpZXNfY29weTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfcGluY3RybF9zb2NfZGF0YSAqc29jX2RhdGE7CisJc3RydWN0IGludGVsX2NvbW11bml0eSAqY29tbXVuaXRpZXNfY29weTsKIAlzdHJ1Y3QgYnl0X2dwaW9fcGluX2NvbnRleHQgKnNhdmVkX2NvbnRleHQ7CiB9OwogCkBAIC0zODMsMTEgKzM2NCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Z1bmN0aW9uIGJ5dF9zY29yZV9mdW5jdGlvbnNbXSA9IHsKIAlGVU5DVElPTigiZ3BpbyIsIGJ5dF9zY29yZV9ncGlvX2dyb3VwcyksCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGJ5dF9jb21tdW5pdHkgYnl0X3Njb3JlX2NvbW11bml0aWVzW10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2NvbW11bml0eSBieXRfc2NvcmVfY29tbXVuaXRpZXNbXSA9IHsKIAlDT01NVU5JVFkoMCwgQllUX05HUElPX1NDT1JFLCBieXRfc2NvcmVfcGluc19tYXApLAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBieXRfcGluY3RybF9zb2NfZGF0YSBieXRfc2NvcmVfc29jX2RhdGEgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3BpbmN0cmxfc29jX2RhdGEgYnl0X3Njb3JlX3NvY19kYXRhID0gewogCS51aWQJCT0gQllUX1NDT1JFX0FDUElfVUlELAogCS5waW5zCQk9IGJ5dF9zY29yZV9waW5zLAogCS5ucGlucwkJPSBBUlJBWV9TSVpFKGJ5dF9zY29yZV9waW5zKSwKQEAgLTQ5NiwxMSArNDc3LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZnVuY3Rpb24gYnl0X3N1c19mdW5jdGlvbnNbXSA9IHsKIAlGVU5DVElPTigiZ3BpbyIsIGJ5dF9zdXNfZ3Bpb19ncm91cHMpLAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBieXRfY29tbXVuaXR5IGJ5dF9zdXNfY29tbXVuaXRpZXNbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfY29tbXVuaXR5IGJ5dF9zdXNfY29tbXVuaXRpZXNbXSA9IHsKIAlDT01NVU5JVFkoMCwgQllUX05HUElPX1NVUywgYnl0X3N1c19waW5zX21hcCksCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGJ5dF9waW5jdHJsX3NvY19kYXRhIGJ5dF9zdXNfc29jX2RhdGEgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3BpbmN0cmxfc29jX2RhdGEgYnl0X3N1c19zb2NfZGF0YSA9IHsKIAkudWlkCQk9IEJZVF9TVVNfQUNQSV9VSUQsCiAJLnBpbnMJCT0gYnl0X3N1c19waW5zLAogCS5ucGlucwkJPSBBUlJBWV9TSVpFKGJ5dF9zdXNfcGlucyksCkBAIC01NDksMTEgKzUzMCwxMSBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGJ5dF9uY29yZV9waW5zX21hcFtCWVRfTkdQSU9fTkNPUkVdID0gewogCTMsIDYsIDEwLCAxMywgMiwgNSwgOSwgNywKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnl0X2NvbW11bml0eSBieXRfbmNvcmVfY29tbXVuaXRpZXNbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfY29tbXVuaXR5IGJ5dF9uY29yZV9jb21tdW5pdGllc1tdID0gewogCUNPTU1VTklUWSgwLCBCWVRfTkdQSU9fTkNPUkUsIGJ5dF9uY29yZV9waW5zX21hcCksCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGJ5dF9waW5jdHJsX3NvY19kYXRhIGJ5dF9uY29yZV9zb2NfZGF0YSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfcGluY3RybF9zb2NfZGF0YSBieXRfbmNvcmVfc29jX2RhdGEgPSB7CiAJLnVpZAkJPSBCWVRfTkNPUkVfQUNQSV9VSUQsCiAJLnBpbnMJCT0gYnl0X25jb3JlX3BpbnMsCiAJLm5waW5zCQk9IEFSUkFZX1NJWkUoYnl0X25jb3JlX3BpbnMpLApAQCAtNTYxLDE3ICs1NDIsMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBieXRfcGluY3RybF9zb2NfZGF0YSBieXRfbmNvcmVfc29jX2RhdGEgPSB7CiAJLm5jb21tdW5pdGllcwk9IEFSUkFZX1NJWkUoYnl0X25jb3JlX2NvbW11bml0aWVzKSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnl0X3BpbmN0cmxfc29jX2RhdGEgKmJ5dF9zb2NfZGF0YVtdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9waW5jdHJsX3NvY19kYXRhICpieXRfc29jX2RhdGFbXSA9IHsKIAkmYnl0X3Njb3JlX3NvY19kYXRhLAogCSZieXRfc3VzX3NvY19kYXRhLAogCSZieXRfbmNvcmVfc29jX2RhdGEsCiAJTlVMTAogfTsKIAotc3RhdGljIHN0cnVjdCBieXRfY29tbXVuaXR5ICpieXRfZ2V0X2NvbW11bml0eShzdHJ1Y3QgYnl0X2dwaW8gKnZnLAotCQkJCQkgICAgICAgdW5zaWduZWQgaW50IHBpbikKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfY29tbXVuaXR5ICpieXRfZ2V0X2NvbW11bml0eShzdHJ1Y3QgYnl0X2dwaW8gKnZnLAorCQkJCQkJIHVuc2lnbmVkIGludCBwaW4pCiB7Ci0Jc3RydWN0IGJ5dF9jb21tdW5pdHkgKmNvbW07CisJc3RydWN0IGludGVsX2NvbW11bml0eSAqY29tbTsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCB2Zy0+c29jX2RhdGEtPm5jb21tdW5pdGllczsgaSsrKSB7CkBAIC01ODYsNyArNTY3LDcgQEAgc3RhdGljIHN0cnVjdCBieXRfY29tbXVuaXR5ICpieXRfZ2V0X2NvbW11bml0eShzdHJ1Y3QgYnl0X2dwaW8gKnZnLAogc3RhdGljIHZvaWQgX19pb21lbSAqYnl0X2dwaW9fcmVnKHN0cnVjdCBieXRfZ3BpbyAqdmcsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAJCQkJICBpbnQgcmVnKQogewotCXN0cnVjdCBieXRfY29tbXVuaXR5ICpjb21tID0gYnl0X2dldF9jb21tdW5pdHkodmcsIG9mZnNldCk7CisJc3RydWN0IGludGVsX2NvbW11bml0eSAqY29tbSA9IGJ5dF9nZXRfY29tbXVuaXR5KHZnLCBvZmZzZXQpOwogCXUzMiByZWdfb2Zmc2V0OwogCiAJaWYgKCFjb21tKQpAQCAtNjA1LDcgKzU4Niw3IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKmJ5dF9ncGlvX3JlZyhzdHJ1Y3QgYnl0X2dwaW8gKnZnLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gY29tbS0+cmVnX2Jhc2UgKyByZWdfb2Zmc2V0ICsgcmVnOworCXJldHVybiBjb21tLT5wYWRfcmVncyArIHJlZ19vZmZzZXQgKyByZWc7CiB9CiAKIHN0YXRpYyBpbnQgYnl0X2dldF9ncm91cHNfY291bnQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQpAQCAtMTIxMSw3ICsxMTkyLDcgQEAgc3RhdGljIHZvaWQgYnl0X2dwaW9fZGJnX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCBzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwKQogCXUzMiBjb25mMCwgdmFsOwogCiAJZm9yIChpID0gMDsgaSA8IHZnLT5zb2NfZGF0YS0+bnBpbnM7IGkrKykgewotCQljb25zdCBzdHJ1Y3QgYnl0X2NvbW11bml0eSAqY29tbTsKKwkJY29uc3Qgc3RydWN0IGludGVsX2NvbW11bml0eSAqY29tbTsKIAkJY29uc3QgY2hhciAqcHVsbF9zdHIgPSBOVUxMOwogCQljb25zdCBjaGFyICpwdWxsID0gTlVMTDsKIAkJdm9pZCBfX2lvbWVtICpyZWc7CkBAIC0xNTgwLDcgKzE1NjEsNyBAQCBzdGF0aWMgaW50IGJ5dF9ncGlvX3Byb2JlKHN0cnVjdCBieXRfZ3BpbyAqdmcpCiB9CiAKIHN0YXRpYyBpbnQgYnl0X3NldF9zb2NfZGF0YShzdHJ1Y3QgYnl0X2dwaW8gKnZnLAotCQkJICAgIGNvbnN0IHN0cnVjdCBieXRfcGluY3RybF9zb2NfZGF0YSAqc29jX2RhdGEpCisJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX3BpbmN0cmxfc29jX2RhdGEgKnNvY19kYXRhKQogewogCWludCBpOwogCkBAIC0xNTkzLDE1ICsxNTc0LDEzIEBAIHN0YXRpYyBpbnQgYnl0X3NldF9zb2NfZGF0YShzdHJ1Y3QgYnl0X2dwaW8gKnZnLAogCQlyZXR1cm4gLUVOT01FTTsKIAogCWZvciAoaSA9IDA7IGkgPCBzb2NfZGF0YS0+bmNvbW11bml0aWVzOyBpKyspIHsKLQkJc3RydWN0IGJ5dF9jb21tdW5pdHkgKmNvbW0gPSB2Zy0+Y29tbXVuaXRpZXNfY29weSArIGk7Ci0JCXN0cnVjdCByZXNvdXJjZSAqbWVtX3JjOworCQlzdHJ1Y3QgaW50ZWxfY29tbXVuaXR5ICpjb21tID0gdmctPmNvbW11bml0aWVzX2NvcHkgKyBpOwogCiAJCSpjb21tID0gdmctPnNvY19kYXRhLT5jb21tdW5pdGllc1tpXTsKIAotCQltZW1fcmMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UodmctPnBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQkJY29tbS0+cmVnX2Jhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnZnLT5wZGV2LT5kZXYsIG1lbV9yYyk7Ci0JCWlmIChJU19FUlIoY29tbS0+cmVnX2Jhc2UpKQotCQkJcmV0dXJuIFBUUl9FUlIoY29tbS0+cmVnX2Jhc2UpOworCQljb21tLT5wYWRfcmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZSh2Zy0+cGRldiwgMCk7CisJCWlmIChJU19FUlIoY29tbS0+cGFkX3JlZ3MpKQorCQkJcmV0dXJuIFBUUl9FUlIoY29tbS0+cGFkX3JlZ3MpOwogCX0KIAogCXJldHVybiAwOwpAQCAtMTYxNSw4ICsxNTk0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCBieXRfZ3Bpb19hY3BpX21hdGNoW10gPSB7CiAKIHN0YXRpYyBpbnQgYnl0X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKLQljb25zdCBzdHJ1Y3QgYnl0X3BpbmN0cmxfc29jX2RhdGEgKnNvY19kYXRhID0gTlVMTDsKLQljb25zdCBzdHJ1Y3QgYnl0X3BpbmN0cmxfc29jX2RhdGEgKipzb2NfdGFibGU7CisJY29uc3Qgc3RydWN0IGludGVsX3BpbmN0cmxfc29jX2RhdGEgKnNvY19kYXRhID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfcGluY3RybF9zb2NfZGF0YSAqKnNvY190YWJsZTsKIAlzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFjcGlfZGV2OwogCXN0cnVjdCBieXRfZ3BpbyAqdmc7CiAJaW50IGksIHJldDsKQEAgLTE2MjUsNyArMTYwNCw3IEBAIHN0YXRpYyBpbnQgYnl0X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAoIWFjcGlfZGV2KQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCXNvY190YWJsZSA9IChjb25zdCBzdHJ1Y3QgYnl0X3BpbmN0cmxfc29jX2RhdGEgKiopZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOworCXNvY190YWJsZSA9IChjb25zdCBzdHJ1Y3QgaW50ZWxfcGluY3RybF9zb2NfZGF0YSAqKilkZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7CiAKIAlmb3IgKGkgPSAwOyBzb2NfdGFibGVbaV07IGkrKykgewogCQlpZiAoIXN0cmNtcChhY3BpX2Rldi0+cG5wLnVuaXF1ZV9pZCwgc29jX3RhYmxlW2ldLT51aWQpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1icm94dG9uLmMgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1icm94dG9uLmMKaW5kZXggZTJkNDUwNS4uMmJlN2U0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtYnJveHRvbi5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWJyb3h0b24uYwpAQCAtMTUsOCArMTUsOSBAQAogI2luY2x1ZGUgInBpbmN0cmwtaW50ZWwuaCIKIAogI2RlZmluZSBCWFRfUEFEX09XTgkweDAyMAotI2RlZmluZSBCWFRfSE9TVFNXX09XTgkweDA4MAogI2RlZmluZSBCWFRfUEFEQ0ZHTE9DSwkweDA2MAorI2RlZmluZSBCWFRfSE9TVFNXX09XTgkweDA4MAorI2RlZmluZSBCWFRfR1BJX0lTCTB4MTAwCiAjZGVmaW5lIEJYVF9HUElfSUUJMHgxMTAKIAogI2RlZmluZSBCWFRfQ09NTVVOSVRZKHMsIGUpCQkJCVwKQEAgLTI0LDYgKzI1LDcgQEAKIAkJLnBhZG93bl9vZmZzZXQgPSBCWFRfUEFEX09XTiwJCVwKIAkJLnBhZGNmZ2xvY2tfb2Zmc2V0ID0gQlhUX1BBRENGR0xPQ0ssCVwKIAkJLmhvc3Rvd25fb2Zmc2V0ID0gQlhUX0hPU1RTV19PV04sCVwKKwkJLmlzX29mZnNldCA9IEJYVF9HUElfSVMsCQlcCiAJCS5pZV9vZmZzZXQgPSBCWFRfR1BJX0lFLAkJXAogCQkuZ3BwX3NpemUgPSAzMiwgICAgICAgICAgICAgICAgICAgICAgICAgXAogCQkucGluX2Jhc2UgPSAocyksCQkJXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtY2Fubm9ubGFrZS5jIGIvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtY2Fubm9ubGFrZS5jCmluZGV4IDA4MDI0YjAuLmY1MWIyN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWNhbm5vbmxha2UuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1jYW5ub25sYWtlLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNkZWZpbmUgQ05MX1BBRENGR0xPQ0sJCTB4MDgwCiAjZGVmaW5lIENOTF9MUF9IT1NUU1dfT1dOCTB4MGIwCiAjZGVmaW5lIENOTF9IX0hPU1RTV19PV04JMHgwYzAKKyNkZWZpbmUgQ05MX0dQSV9JUwkJMHgxMDAKICNkZWZpbmUgQ05MX0dQSV9JRQkJMHgxMjAKIAogI2RlZmluZSBDTkxfR1BQKHIsIHMsIGUsIGcpCQkJCVwKQEAgLTM3LDYgKzM4LDcgQEAKIAkJLnBhZG93bl9vZmZzZXQgPSBDTkxfUEFEX09XTiwJCVwKIAkJLnBhZGNmZ2xvY2tfb2Zmc2V0ID0gQ05MX1BBRENGR0xPQ0ssCVwKIAkJLmhvc3Rvd25fb2Zmc2V0ID0gKG8pLAkJCVwKKwkJLmlzX29mZnNldCA9IENOTF9HUElfSVMsCQlcCiAJCS5pZV9vZmZzZXQgPSBDTkxfR1BJX0lFLAkJXAogCQkucGluX2Jhc2UgPSAocyksCQkJXAogCQkubnBpbnMgPSAoKGUpIC0gKHMpICsgMSksCQlcCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1jaGVycnl2aWV3LmMgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1jaGVycnl2aWV3LmMKaW5kZXggYWI2ODFkMS4uYWFlNTFjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtY2hlcnJ5dmlldy5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWNoZXJyeXZpZXcuYwpAQCAtMTY3Nyw3ICsxNjc3LDYgQEAgc3RhdGljIGludCBjaHZfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBjaHZfcGluY3RybCAqcGN0cmw7CiAJc3RydWN0IGFjcGlfZGV2aWNlICphZGV2OwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCWFjcGlfc3RhdHVzIHN0YXR1czsKIAlpbnQgcmV0LCBpcnEsIGk7CiAKQEAgLTE3MDcsMTYgKzE3MDYsMTMgQEAgc3RhdGljIGludCBjaHZfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKICNlbmRpZgogCi0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlwY3RybC0+cmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOworCXBjdHJsLT5yZWdzID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwogCWlmIChJU19FUlIocGN0cmwtPnJlZ3MpKQogCQlyZXR1cm4gUFRSX0VSUihwY3RybC0+cmVncyk7CiAKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgaW50ZXJydXB0IG51bWJlclxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiBpcnE7Ci0JfQogCiAJcGN0cmwtPnBjdGxkZXNjID0gY2h2X3BpbmN0cmxfZGVzYzsKIAlwY3RybC0+cGN0bGRlc2MubmFtZSA9IGRldl9uYW1lKCZwZGV2LT5kZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtZGVudmVydG9uLmMgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1kZW52ZXJ0b24uYwppbmRleCAzYTQ5MzJiLi5mMjZkMDMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1kZW52ZXJ0b24uYworKysgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1kZW52ZXJ0b24uYwpAQCAtMTUsOCArMTUsOSBAQAogI2luY2x1ZGUgInBpbmN0cmwtaW50ZWwuaCIKIAogI2RlZmluZSBETlZfUEFEX09XTgkweDAyMAotI2RlZmluZSBETlZfSE9TVFNXX09XTgkweDBDMAogI2RlZmluZSBETlZfUEFEQ0ZHTE9DSwkweDA5MAorI2RlZmluZSBETlZfSE9TVFNXX09XTgkweDBDMAorI2RlZmluZSBETlZfR1BJX0lTCTB4MTAwCiAjZGVmaW5lIEROVl9HUElfSUUJMHgxMjAKIAogI2RlZmluZSBETlZfR1BQKG4sIHMsIGUpCQkJCVwKQEAgLTMyLDYgKzMzLDcgQEAKIAkJLnBhZG93bl9vZmZzZXQgPSBETlZfUEFEX09XTiwJCVwKIAkJLnBhZGNmZ2xvY2tfb2Zmc2V0ID0gRE5WX1BBRENGR0xPQ0ssCVwKIAkJLmhvc3Rvd25fb2Zmc2V0ID0gRE5WX0hPU1RTV19PV04sCVwKKwkJLmlzX29mZnNldCA9IEROVl9HUElfSVMsCQlcCiAJCS5pZV9vZmZzZXQgPSBETlZfR1BJX0lFLAkJXAogCQkucGluX2Jhc2UgPSAocyksCQkJXAogCQkubnBpbnMgPSAoKGUpIC0gKHMpICsgMSksCQlcCkBAIC0zOSw2ICs0MSw3IEBACiAJCS5uZ3BwcyA9IEFSUkFZX1NJWkUoZyksCQkJXAogCX0KIAorLyogRGVudmVydG9uICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBpbmN0cmxfcGluX2Rlc2MgZG52X3BpbnNbXSA9IHsKIAkvKiBOb3J0aCBBTEwgKi8KIAlQSU5DVFJMX1BJTigwLCAiR0JFMF9TRFAwIiksCkBAIC01OSw3ICs2Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBkbnZfcGluc1tdID0gewogCVBJTkNUUkxfUElOKDE1LCAiTkNTSV9DTEtfSU4iKSwKIAlQSU5DVFJMX1BJTigxNiwgIk5DU0lfUlhEMSIpLAogCVBJTkNUUkxfUElOKDE3LCAiTkNTSV9DUlNfRFYiKSwKLQlQSU5DVFJMX1BJTigxOCwgIk5DU0lfQVJCX0lOIiksCisJUElOQ1RSTF9QSU4oMTgsICJJRFNMRE9fVklEX1RJQ0tMRSIpLAogCVBJTkNUUkxfUElOKDE5LCAiTkNTSV9UWF9FTiIpLAogCVBJTkNUUkxfUElOKDIwLCAiTkNTSV9UWEQwIiksCiAJUElOQ1RSTF9QSU4oMjEsICJOQ1NJX1RYRDEiKSwKQEAgLTY4LDE0ICs3MSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBpbmN0cmxfcGluX2Rlc2MgZG52X3BpbnNbXSA9IHsKIAlQSU5DVFJMX1BJTigyNCwgIkdCRTBfTEVEMSIpLAogCVBJTkNUUkxfUElOKDI1LCAiR0JFMV9MRUQwIiksCiAJUElOQ1RSTF9QSU4oMjYsICJHQkUxX0xFRDEiKSwKLQlQSU5DVFJMX1BJTigyNywgIkdQSU9fMCIpLAorCVBJTkNUUkxfUElOKDI3LCAiU1BBUkVfMCIpLAogCVBJTkNUUkxfUElOKDI4LCAiUENJRV9DTEtSRVEwX04iKSwKIAlQSU5DVFJMX1BJTigyOSwgIlBDSUVfQ0xLUkVRMV9OIiksCiAJUElOQ1RSTF9QSU4oMzAsICJQQ0lFX0NMS1JFUTJfTiIpLAogCVBJTkNUUkxfUElOKDMxLCAiUENJRV9DTEtSRVEzX04iKSwKIAlQSU5DVFJMX1BJTigzMiwgIlBDSUVfQ0xLUkVRNF9OIiksCi0JUElOQ1RSTF9QSU4oMzMsICJHUElPXzEiKSwKLQlQSU5DVFJMX1BJTigzNCwgIkdQSU9fMiIpLAorCVBJTkNUUkxfUElOKDMzLCAiR0JFX01EQyIpLAorCVBJTkNUUkxfUElOKDM0LCAiR0JFX01ESU8iKSwKIAlQSU5DVFJMX1BJTigzNSwgIlNWSURfQUxFUlRfTiIpLAogCVBJTkNUUkxfUElOKDM2LCAiU1ZJRF9EQVRBIiksCiAJUElOQ1RSTF9QSU4oMzcsICJTVklEX0NMSyIpLApAQCAtMTAyLDE1ICsxMDUsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjIGRudl9waW5zW10gPSB7CiAJUElOQ1RSTF9QSU4oNTcsICJERlhfUE9SVDE0IiksCiAJUElOQ1RSTF9QSU4oNTgsICJERlhfUE9SVDE1IiksCiAJLyogU291dGggR1BQMCAqLwotCVBJTkNUUkxfUElOKDU5LCAiR1BJT18xMiIpLAotCVBJTkNUUkxfUElOKDYwLCAiU01CNV9HQkVfQUxSVF9OIiksCisJUElOQ1RSTF9QSU4oNTksICJTUElfVFBNX0NTX04iKSwKKwlQSU5DVFJMX1BJTig2MCwgIlVBUlQyX0NUUyIpLAogCVBJTkNUUkxfUElOKDYxLCAiUENJRV9DTEtSRVE1X04iKSwKIAlQSU5DVFJMX1BJTig2MiwgIlBDSUVfQ0xLUkVRNl9OIiksCiAJUElOQ1RSTF9QSU4oNjMsICJQQ0lFX0NMS1JFUTdfTiIpLAogCVBJTkNUUkxfUElOKDY0LCAiVUFSVDBfUlhEIiksCiAJUElOQ1RSTF9QSU4oNjUsICJVQVJUMF9UWEQiKSwKLQlQSU5DVFJMX1BJTig2NiwgIlNNQjVfR0JFX0NMSyIpLAotCVBJTkNUUkxfUElOKDY3LCAiU01CNV9HQkVfREFUQSIpLAorCVBJTkNUUkxfUElOKDY2LCAiQ1BVX1JFU0VUX04iKSwKKwlQSU5DVFJMX1BJTig2NywgIk5NSSIpLAogCVBJTkNUUkxfUElOKDY4LCAiRVJST1IyX04iKSwKIAlQSU5DVFJMX1BJTig2OSwgIkVSUk9SMV9OIiksCiAJUElOQ1RSTF9QSU4oNzAsICJFUlJPUjBfTiIpLApAQCAtMTI5LDIwICsxMzIsMjAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjIGRudl9waW5zW10gPSB7CiAJUElOQ1RSTF9QSU4oODMsICJVU0JfT0MwX04iKSwKIAlQSU5DVFJMX1BJTig4NCwgIkZMRVhfQ0xLX1NFMCIpLAogCVBJTkNUUkxfUElOKDg1LCAiRkxFWF9DTEtfU0UxIiksCi0JUElOQ1RSTF9QSU4oODYsICJHUElPXzQiKSwKLQlQSU5DVFJMX1BJTig4NywgIkdQSU9fNSIpLAotCVBJTkNUUkxfUElOKDg4LCAiR1BJT182IiksCi0JUElOQ1RSTF9QSU4oODksICJHUElPXzciKSwKKwlQSU5DVFJMX1BJTig4NiwgIlNQQVJFXzQiKSwKKwlQSU5DVFJMX1BJTig4NywgIlNNQjNfSUUwX0NMSyIpLAorCVBJTkNUUkxfUElOKDg4LCAiU01CM19JRTBfREFUQSIpLAorCVBJTkNUUkxfUElOKDg5LCAiU01CM19JRTBfQUxSVF9OIiksCiAJUElOQ1RSTF9QSU4oOTAsICJTQVRBMF9MRURfTiIpLAogCVBJTkNUUkxfUElOKDkxLCAiU0FUQTFfTEVEX04iKSwKIAlQSU5DVFJMX1BJTig5MiwgIlNBVEFfUERFVEVDVDAiKSwKIAlQSU5DVFJMX1BJTig5MywgIlNBVEFfUERFVEVDVDEiKSwKLQlQSU5DVFJMX1BJTig5NCwgIlNBVEEwX1NET1VUIiksCi0JUElOQ1RSTF9QSU4oOTUsICJTQVRBMV9TRE9VVCIpLAorCVBJTkNUUkxfUElOKDk0LCAiVUFSVDFfUlRTIiksCisJUElOQ1RSTF9QSU4oOTUsICJVQVJUMV9DVFMiKSwKIAlQSU5DVFJMX1BJTig5NiwgIlVBUlQxX1JYRCIpLAogCVBJTkNUUkxfUElOKDk3LCAiVUFSVDFfVFhEIiksCi0JUElOQ1RSTF9QSU4oOTgsICJHUElPXzgiKSwKLQlQSU5DVFJMX1BJTig5OSwgIkdQSU9fOSIpLAorCVBJTkNUUkxfUElOKDk4LCAiU1BBUkVfOCIpLAorCVBJTkNUUkxfUElOKDk5LCAiU1BBUkVfOSIpLAogCVBJTkNUUkxfUElOKDEwMCwgIlRDSyIpLAogCVBJTkNUUkxfUElOKDEwMSwgIlRSU1RfTiIpLAogCVBJTkNUUkxfUElOKDEwMiwgIlRNUyIpLApAQCAtMTUwLDExICsxNTMsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjIGRudl9waW5zW10gPSB7CiAJUElOQ1RSTF9QSU4oMTA0LCAiVERPIiksCiAJUElOQ1RSTF9QSU4oMTA1LCAiQ1hfUFJEWV9OIiksCiAJUElOQ1RSTF9QSU4oMTA2LCAiQ1hfUFJFUV9OIiksCi0JUElOQ1RSTF9QSU4oMTA3LCAiQ1RCVFJJR0lOT1VUIiksCi0JUElOQ1RSTF9QSU4oMTA4LCAiQ1RCVFJJR09VVCIpLAotCVBJTkNUUkxfUElOKDEwOSwgIkRGWF9TUEFSRTIiKSwKLQlQSU5DVFJMX1BJTigxMTAsICJERlhfU1BBUkUzIiksCi0JUElOQ1RSTF9QSU4oMTExLCAiREZYX1NQQVJFNCIpLAorCVBJTkNUUkxfUElOKDEwNywgIlRBUDFfVENLIiksCisJUElOQ1RSTF9QSU4oMTA4LCAiVEFQMV9UUlNUX04iKSwKKwlQSU5DVFJMX1BJTigxMDksICJUQVAxX1RNUyIpLAorCVBJTkNUUkxfUElOKDExMCwgIlRBUDFfVERJIiksCisJUElOQ1RSTF9QSU4oMTExLCAiVEFQMV9URE8iKSwKIAkvKiBTb3V0aCBHUFAxICovCiAJUElOQ1RSTF9QSU4oMTEyLCAiU1VTUFdSRE5BQ0siKSwKIAlQSU5DVFJMX1BJTigxMTMsICJQTVVfU1VTQ0xLIiksCkBAIC0xODMsOCArMTg2LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjIGRudl9waW5zW10gPSB7CiAJUElOQ1RSTF9QSU4oMTM2LCAiRVNQSV9DTEsiKSwKIAlQSU5DVFJMX1BJTigxMzcsICJFU1BJX1JTVF9OIiksCiAJUElOQ1RSTF9QSU4oMTM4LCAiRVNQSV9BTFJUMF9OIiksCi0JUElOQ1RSTF9QSU4oMTM5LCAiR1BJT18xMCIpLAotCVBJTkNUUkxfUElOKDE0MCwgIkdQSU9fMTEiKSwKKwlQSU5DVFJMX1BJTigxMzksICJFU1BJX0NTMV9OIiksCisJUElOQ1RSTF9QSU4oMTQwLCAiRVNQSV9BTFJUMV9OIiksCiAJUElOQ1RSTF9QSU4oMTQxLCAiRVNQSV9DTEtfTE9PUEJLIiksCiAJUElOQ1RSTF9QSU4oMTQyLCAiRU1NQ19DTUQiKSwKIAlQSU5DVFJMX1BJTigxNDMsICJFTU1DX1NUUk9CRSIpLApAQCAtMTk3LDcgKzIwMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBkbnZfcGluc1tdID0gewogCVBJTkNUUkxfUElOKDE1MCwgIkVNTUNfRDUiKSwKIAlQSU5DVFJMX1BJTigxNTEsICJFTU1DX0Q2IiksCiAJUElOQ1RSTF9QSU4oMTUyLCAiRU1NQ19ENyIpLAotCVBJTkNUUkxfUElOKDE1MywgIkdQSU9fMyIpLAorCVBJTkNUUkxfUElOKDE1MywgIlNQQVJFXzMiKSwKIH07CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZG52X3VhcnQwX3BpbnNbXSA9IHsgNjAsIDYxLCA2NCwgNjUgfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWdlbWluaWxha2UuYyBiL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWdlbWluaWxha2UuYwppbmRleCAzMzFiOGZkLi5kZjAyMDI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1nZW1pbmlsYWtlLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtZ2VtaW5pbGFrZS5jCkBAIC0xNyw2ICsxNyw3IEBACiAjZGVmaW5lIEdMS19QQURfT1dOCTB4MDIwCiAjZGVmaW5lIEdMS19QQURDRkdMT0NLCTB4MDgwCiAjZGVmaW5lIEdMS19IT1NUU1dfT1dOCTB4MGIwCisjZGVmaW5lIEdMS19HUElfSVMJMHgxMDAKICNkZWZpbmUgR0xLX0dQSV9JRQkweDExMAogCiAjZGVmaW5lIEdMS19DT01NVU5JVFkocywgZSkJCQkJXApAQCAtMjQsNiArMjUsNyBAQAogCQkucGFkb3duX29mZnNldCA9IEdMS19QQURfT1dOLAkJXAogCQkucGFkY2ZnbG9ja19vZmZzZXQgPSBHTEtfUEFEQ0ZHTE9DSywJXAogCQkuaG9zdG93bl9vZmZzZXQgPSBHTEtfSE9TVFNXX09XTiwJXAorCQkuaXNfb2Zmc2V0ID0gR0xLX0dQSV9JUywJCVwKIAkJLmllX29mZnNldCA9IEdMS19HUElfSUUsCQlcCiAJCS5ncHBfc2l6ZSA9IDMyLCAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJCS5waW5fYmFzZSA9IChzKSwJCQlcCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1pY2VsYWtlLmMgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1pY2VsYWtlLmMKaW5kZXggNWYyZjVjNi4uNjQ4OWU5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtaWNlbGFrZS5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWljZWxha2UuYwpAQCAtMTgsNiArMTgsNyBAQAogI2RlZmluZSBJQ0xfUEFEX09XTgkweDAyMAogI2RlZmluZSBJQ0xfUEFEQ0ZHTE9DSwkweDA4MAogI2RlZmluZSBJQ0xfSE9TVFNXX09XTgkweDBiMAorI2RlZmluZSBJQ0xfR1BJX0lTCTB4MTAwCiAjZGVmaW5lIElDTF9HUElfSUUJMHgxMTAKIAogI2RlZmluZSBJQ0xfR1BQKHIsIHMsIGUsIGcpCQkJCVwKQEAgLTM2LDYgKzM3LDcgQEAKIAkJLnBhZG93bl9vZmZzZXQgPSBJQ0xfUEFEX09XTiwJCVwKIAkJLnBhZGNmZ2xvY2tfb2Zmc2V0ID0gSUNMX1BBRENGR0xPQ0ssCVwKIAkJLmhvc3Rvd25fb2Zmc2V0ID0gSUNMX0hPU1RTV19PV04sCVwKKwkJLmlzX29mZnNldCA9IElDTF9HUElfSVMsCQlcCiAJCS5pZV9vZmZzZXQgPSBJQ0xfR1BJX0lFLAkJXAogCQkucGluX2Jhc2UgPSAocyksCQkJXAogCQkubnBpbnMgPSAoKGUpIC0gKHMpICsgMSksCQlcCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1pbnRlbC5jIGIvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtaW50ZWwuYwppbmRleCBhMThkNmVlLi4xZjEzYmNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1pbnRlbC5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWludGVsLmMKQEAgLTgsMTIgKzgsMTMgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvYWNwaS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+CiAjaW5jbHVkZSA8bGludXgvbG9nMi5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+CisjaW5jbHVkZSA8bGludXgvdGltZS5oPgogCiAjaW5jbHVkZSA8bGludXgvcGluY3RybC9waW5jdHJsLmg+CiAjaW5jbHVkZSA8bGludXgvcGluY3RybC9waW5tdXguaD4KQEAgLTI5LDcgKzMwLDYgQEAKICNkZWZpbmUgUkVWSURfTUFTSwkJCUdFTk1BU0soMzEsIDE2KQogCiAjZGVmaW5lIFBBREJBUgkJCQkweDAwYwotI2RlZmluZSBHUElfSVMJCQkJMHgxMDAKIAogI2RlZmluZSBQQURPV05fQklUUwkJCTQKICNkZWZpbmUgUEFET1dOX1NISUZUKHApCQkJKChwKSAlIDggKiBQQURPV05fQklUUykKQEAgLTcxLDcgKzcxLDcgQEAKICNkZWZpbmUgUEFEQ0ZHMl9ERUJPVU5DRV9TSElGVAkJMQogI2RlZmluZSBQQURDRkcyX0RFQk9VTkNFX01BU0sJCUdFTk1BU0soNCwgMSkKIAotI2RlZmluZSBERUJPVU5DRV9QRVJJT0QJCQkzMTI1MCAvKiBucyAqLworI2RlZmluZSBERUJPVU5DRV9QRVJJT0RfTlNFQwkJMzEyNTAKIAogc3RydWN0IGludGVsX3BhZF9jb250ZXh0IHsKIAl1MzIgcGFkY2ZnMDsKQEAgLTE2NSw3ICsxNjUsNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICppbnRlbF9nZXRfcGFkY2ZnKHN0cnVjdCBpbnRlbF9waW5jdHJsICpwY3RybCwKIAlwYWRubyA9IHBpbl90b19wYWRubyhjb21tdW5pdHksIHBpbik7CiAJbnJlZ3MgPSAoY29tbXVuaXR5LT5mZWF0dXJlcyAmIFBJTkNUUkxfRkVBVFVSRV9ERUJPVU5DRSkgPyA0IDogMjsKIAotCWlmIChyZWcgPT0gUEFEQ0ZHMiAmJiAhKGNvbW11bml0eS0+ZmVhdHVyZXMgJiBQSU5DVFJMX0ZFQVRVUkVfREVCT1VOQ0UpKQorCWlmIChyZWcgPj0gbnJlZ3MgKiA0KQogCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiBjb21tdW5pdHktPnBhZF9yZWdzICsgcmVnICsgcGFkbm8gKiBucmVncyAqIDQ7CkBAIC0yMjAsNDcgKzIyMCw3MSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9wYWRfYWNwaV9tb2RlKHN0cnVjdCBpbnRlbF9waW5jdHJsICpwY3RybCwgdW5zaWduZWQgaW50IHBpbikKIAlyZXR1cm4gIShyZWFkbChob3N0b3duKSAmIEJJVChncHBfb2Zmc2V0KSk7CiB9CiAKLXN0YXRpYyBib29sIGludGVsX3BhZF9sb2NrZWQoc3RydWN0IGludGVsX3BpbmN0cmwgKnBjdHJsLCB1bnNpZ25lZCBpbnQgcGluKQorLyoqCisgKiBlbnVtIC0gTG9ja2luZyB2YXJpYW50cyBvZiB0aGUgcGFkIGNvbmZpZ3VyYXRpb24KKyAqCisgKiBAUEFEX1VOTE9DS0VEOglwYWQgaXMgZnVsbHkgY29udHJvbGxlZCBieSB0aGUgY29uZmlndXJhdGlvbiByZWdpc3RlcnMKKyAqIEBQQURfTE9DS0VEOgkJcGFkIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzLCBleGNlcHQgVFggc3RhdGUsIGFyZSBsb2NrZWQKKyAqIEBQQURfTE9DS0VEX1RYOglwYWQgY29uZmlndXJhdGlvbiBUWCBzdGF0ZSBpcyBsb2NrZWQKKyAqIEBQQURfTE9DS0VEX0ZVTEw6CXBhZCBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyBhcmUgbG9ja2VkIGNvbXBsZXRlbHkKKyAqCisgKiBMb2NraW5nIGlzIGNvbnNpZGVyZWQgYXMgcmVhZC1vbmx5IG1vZGUgZm9yIGNvcnJlc3BvbmRpbmcgcmVnaXN0ZXJzIGFuZAorICogdGhlaXIgcmVzcGVjdGl2ZSBmaWVsZHMuIFRoYXQgc2FpZCwgVFggc3RhdGUgYml0IGlzIGxvY2tlZCBzZXBhcmF0ZWx5IGZyb20KKyAqIHRoZSBtYWluIGxvY2tpbmcgc2NoZW1lLgorICovCitlbnVtIHsKKwlQQURfVU5MT0NLRUQJPSAwLAorCVBBRF9MT0NLRUQJPSAxLAorCVBBRF9MT0NLRURfVFgJPSAyLAorCVBBRF9MT0NLRURfRlVMTAk9IFBBRF9MT0NLRUQgfCBQQURfTE9DS0VEX1RYLAorfTsKKworc3RhdGljIGludCBpbnRlbF9wYWRfbG9ja2VkKHN0cnVjdCBpbnRlbF9waW5jdHJsICpwY3RybCwgdW5zaWduZWQgaW50IHBpbikKIHsKIAlzdHJ1Y3QgaW50ZWxfY29tbXVuaXR5ICpjb21tdW5pdHk7CiAJY29uc3Qgc3RydWN0IGludGVsX3BhZGdyb3VwICpwYWRncnA7CiAJdW5zaWduZWQgaW50IG9mZnNldCwgZ3BwX29mZnNldDsKIAl1MzIgdmFsdWU7CisJaW50IHJldCA9IFBBRF9VTkxPQ0tFRDsKIAogCWNvbW11bml0eSA9IGludGVsX2dldF9jb21tdW5pdHkocGN0cmwsIHBpbik7CiAJaWYgKCFjb21tdW5pdHkpCi0JCXJldHVybiB0cnVlOworCQlyZXR1cm4gUEFEX0xPQ0tFRF9GVUxMOwogCWlmICghY29tbXVuaXR5LT5wYWRjZmdsb2NrX29mZnNldCkKLQkJcmV0dXJuIGZhbHNlOworCQlyZXR1cm4gUEFEX1VOTE9DS0VEOwogCiAJcGFkZ3JwID0gaW50ZWxfY29tbXVuaXR5X2dldF9wYWRncm91cChjb21tdW5pdHksIHBpbik7CiAJaWYgKCFwYWRncnApCi0JCXJldHVybiB0cnVlOworCQlyZXR1cm4gUEFEX0xPQ0tFRF9GVUxMOwogCiAJZ3BwX29mZnNldCA9IHBhZGdyb3VwX29mZnNldChwYWRncnAsIHBpbik7CiAKIAkvKgogCSAqIElmIFBBRENGR0xPQ0sgYW5kIFBBRENGR0xPQ0tUWCBiaXRzIGFyZSBib3RoIGNsZWFyIGZvciB0aGlzIHBhZCwKIAkgKiB0aGUgcGFkIGlzIGNvbnNpZGVyZWQgdW5sb2NrZWQuIEFueSBvdGhlciBjYXNlIG1lYW5zIHRoYXQgaXQgaXMKLQkgKiBlaXRoZXIgZnVsbHkgb3IgcGFydGlhbGx5IGxvY2tlZCBhbmQgd2UgZG9uJ3QgdG91Y2ggaXQuCisJICogZWl0aGVyIGZ1bGx5IG9yIHBhcnRpYWxseSBsb2NrZWQuCiAJICovCi0Jb2Zmc2V0ID0gY29tbXVuaXR5LT5wYWRjZmdsb2NrX29mZnNldCArIHBhZGdycC0+cmVnX251bSAqIDg7CisJb2Zmc2V0ID0gY29tbXVuaXR5LT5wYWRjZmdsb2NrX29mZnNldCArIDAgKyBwYWRncnAtPnJlZ19udW0gKiA4OwogCXZhbHVlID0gcmVhZGwoY29tbXVuaXR5LT5yZWdzICsgb2Zmc2V0KTsKIAlpZiAodmFsdWUgJiBCSVQoZ3BwX29mZnNldCkpCi0JCXJldHVybiB0cnVlOworCQlyZXQgfD0gUEFEX0xPQ0tFRDsKIAogCW9mZnNldCA9IGNvbW11bml0eS0+cGFkY2ZnbG9ja19vZmZzZXQgKyA0ICsgcGFkZ3JwLT5yZWdfbnVtICogODsKIAl2YWx1ZSA9IHJlYWRsKGNvbW11bml0eS0+cmVncyArIG9mZnNldCk7CiAJaWYgKHZhbHVlICYgQklUKGdwcF9vZmZzZXQpKQotCQlyZXR1cm4gdHJ1ZTsKKwkJcmV0IHw9IFBBRF9MT0NLRURfVFg7CiAKLQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGJvb2wgaW50ZWxfcGFkX2lzX3VubG9ja2VkKHN0cnVjdCBpbnRlbF9waW5jdHJsICpwY3RybCwgdW5zaWduZWQgaW50IHBpbikKK3sKKwlyZXR1cm4gKGludGVsX3BhZF9sb2NrZWQocGN0cmwsIHBpbikgJiBQQURfTE9DS0VEKSA9PSBQQURfVU5MT0NLRUQ7CiB9CiAKIHN0YXRpYyBib29sIGludGVsX3BhZF91c2FibGUoc3RydWN0IGludGVsX3BpbmN0cmwgKnBjdHJsLCB1bnNpZ25lZCBpbnQgcGluKQogewotCXJldHVybiBpbnRlbF9wYWRfb3duZWRfYnlfaG9zdChwY3RybCwgcGluKSAmJgotCQkhaW50ZWxfcGFkX2xvY2tlZChwY3RybCwgcGluKTsKKwlyZXR1cm4gaW50ZWxfcGFkX293bmVkX2J5X2hvc3QocGN0cmwsIHBpbikgJiYgaW50ZWxfcGFkX2lzX3VubG9ja2VkKHBjdHJsLCBwaW4pOwogfQogCiBzdGF0aWMgaW50IGludGVsX2dldF9ncm91cHNfY291bnQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQpAQCAtMjk0LDcgKzMxOCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bpbl9kYmdfc2hvdyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHN0cnVjdCBzZXFfZmlsZSAqcywKIAlzdHJ1Y3QgaW50ZWxfcGluY3RybCAqcGN0cmwgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsKIAl2b2lkIF9faW9tZW0gKnBhZGNmZzsKIAl1MzIgY2ZnMCwgY2ZnMSwgbW9kZTsKLQlib29sIGxvY2tlZCwgYWNwaTsKKwlpbnQgbG9ja2VkOworCWJvb2wgYWNwaTsKIAogCWlmICghaW50ZWxfcGFkX293bmVkX2J5X2hvc3QocGN0cmwsIHBpbikpIHsKIAkJc2VxX3B1dHMocywgIm5vdCBhdmFpbGFibGUiKTsKQEAgLTMyMiwxMSArMzQ3LDE2IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bpbl9kYmdfc2hvdyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHN0cnVjdCBzZXFfZmlsZSAqcywKIAogCWlmIChsb2NrZWQgfHwgYWNwaSkgewogCQlzZXFfcHV0cyhzLCAiIFsiKTsKLQkJaWYgKGxvY2tlZCkgeworCQlpZiAobG9ja2VkKQogCQkJc2VxX3B1dHMocywgIkxPQ0tFRCIpOwotCQkJaWYgKGFjcGkpCi0JCQkJc2VxX3B1dHMocywgIiwgIik7Ci0JCX0KKwkJaWYgKChsb2NrZWQgJiBQQURfTE9DS0VEX0ZVTEwpID09IFBBRF9MT0NLRURfVFgpCisJCQlzZXFfcHV0cyhzLCAiIHR4Iik7CisJCWVsc2UgaWYgKChsb2NrZWQgJiBQQURfTE9DS0VEX0ZVTEwpID09IFBBRF9MT0NLRURfRlVMTCkKKwkJCXNlcV9wdXRzKHMsICIgZnVsbCIpOworCisJCWlmIChsb2NrZWQgJiYgYWNwaSkKKwkJCXNlcV9wdXRzKHMsICIsICIpOworCiAJCWlmIChhY3BpKQogCQkJc2VxX3B1dHMocywgIkFDUEkiKTsKIAkJc2VxX3B1dHMocywgIl0iKTsKQEAgLTQ0OCwxMSArNDc4LDE2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ3Bpb19yZXF1ZXN0X2VuYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCiAKIAlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJnBjdHJsLT5sb2NrLCBmbGFncyk7CiAKLQlpZiAoIWludGVsX3BhZF91c2FibGUocGN0cmwsIHBpbikpIHsKKwlpZiAoIWludGVsX3BhZF9vd25lZF9ieV9ob3N0KHBjdHJsLCBwaW4pKSB7CiAJCXJhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKCZwY3RybC0+bG9jaywgZmxhZ3MpOwogCQlyZXR1cm4gLUVCVVNZOwogCX0KIAorCWlmICghaW50ZWxfcGFkX2lzX3VubG9ja2VkKHBjdHJsLCBwaW4pKSB7CisJCXJhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKCZwY3RybC0+bG9jaywgZmxhZ3MpOworCQlyZXR1cm4gMDsKKwl9CisKIAlwYWRjZmcwID0gaW50ZWxfZ2V0X3BhZGNmZyhwY3RybCwgcGluLCBQQURDRkcwKTsKIAlpbnRlbF9ncGlvX3NldF9ncGlvX21vZGUocGFkY2ZnMCk7CiAJLyogRGlzYWJsZSBUWCBidWZmZXIgYW5kIGVuYWJsZSBSWCAodGhpcyB3aWxsIGJlIGlucHV0KSAqLwpAQCAtNTY2LDcgKzYwMSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY29uZmlnX2dldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIGludCBwaW4sCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQl2ID0gKHYgJiBQQURDRkcyX0RFQk9VTkNFX01BU0spID4+IFBBRENGRzJfREVCT1VOQ0VfU0hJRlQ7Ci0JCWFyZyA9IEJJVCh2KSAqIERFQk9VTkNFX1BFUklPRCAvIDEwMDA7CisJCWFyZyA9IEJJVCh2KSAqIERFQk9VTkNFX1BFUklPRF9OU0VDIC8gTlNFQ19QRVJfVVNFQzsKIAogCQlicmVhazsKIAl9CkBAIC02ODMsNyArNzE4LDcgQEAgc3RhdGljIGludCBpbnRlbF9jb25maWdfc2V0X2RlYm91bmNlKHN0cnVjdCBpbnRlbF9waW5jdHJsICpwY3RybCwKIAlpZiAoZGVib3VuY2UpIHsKIAkJdW5zaWduZWQgbG9uZyB2OwogCi0JCXYgPSBvcmRlcl9iYXNlXzIoZGVib3VuY2UgKiAxMDAwIC8gREVCT1VOQ0VfUEVSSU9EKTsKKwkJdiA9IG9yZGVyX2Jhc2VfMihkZWJvdW5jZSAqIE5TRUNfUEVSX1VTRUMgLyBERUJPVU5DRV9QRVJJT0RfTlNFQyk7CiAJCWlmICh2IDwgMyB8fCB2ID4gMTUpIHsKIAkJCXJldCA9IC1FSU5WQUw7CiAJCQlnb3RvIGV4aXRfdW5sb2NrOwpAQCAtNzk2LDYgKzgzMSwyOSBAQCBzdGF0aWMgaW50IGludGVsX2dwaW9fdG9fcGluKHN0cnVjdCBpbnRlbF9waW5jdHJsICpwY3RybCwgdW5zaWduZWQgaW50IG9mZnNldCwKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAorLyoqCisgKiBpbnRlbF9waW5fdG9fZ3BpbygpIC0gVHJhbnNsYXRlIGZyb20gcGluIG51bWJlciB0byBHUElPIG9mZnNldAorICogQHBjdHJsOiBQaW5jdHJsIHN0cnVjdHVyZQorICogQHBpbjogcGluIG51bWJlcgorICoKKyAqIFRyYW5zbGF0ZSB0aGUgcGluIG51bWJlciBvZiBwaW5jdHJsIHRvIEdQSU8gb2Zmc2V0CisgKi8KK3N0YXRpYyBfX21heWJlX3VudXNlZCBpbnQgaW50ZWxfcGluX3RvX2dwaW8oc3RydWN0IGludGVsX3BpbmN0cmwgKnBjdHJsLCBpbnQgcGluKQoreworCWNvbnN0IHN0cnVjdCBpbnRlbF9jb21tdW5pdHkgKmNvbW11bml0eTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfcGFkZ3JvdXAgKnBhZGdycDsKKworCWNvbW11bml0eSA9IGludGVsX2dldF9jb21tdW5pdHkocGN0cmwsIHBpbik7CisJaWYgKCFjb21tdW5pdHkpCisJCXJldHVybiAtRUlOVkFMOworCisJcGFkZ3JwID0gaW50ZWxfY29tbXVuaXR5X2dldF9wYWRncm91cChjb21tdW5pdHksIHBpbik7CisJaWYgKCFwYWRncnApCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIHBpbiAtIHBhZGdycC0+YmFzZSArIHBhZGdycC0+Z3Bpb19iYXNlOworfQorCiBzdGF0aWMgaW50IGludGVsX2dwaW9fZ2V0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGludCBvZmZzZXQpCiB7CiAJc3RydWN0IGludGVsX3BpbmN0cmwgKnBjdHJsID0gZ3Bpb2NoaXBfZ2V0X2RhdGEoY2hpcCk7CkBAIC0xMzEzLDE1ICsxMzcxLDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCiAJZm9yIChpID0gMDsgaSA8IHBjdHJsLT5uY29tbXVuaXRpZXM7IGkrKykgewogCQlzdHJ1Y3QgaW50ZWxfY29tbXVuaXR5ICpjb21tdW5pdHkgPSAmcGN0cmwtPmNvbW11bml0aWVzW2ldOwotCQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAkJdm9pZCBfX2lvbWVtICpyZWdzOwogCQl1MzIgcGFkYmFyOwogCiAJCSpjb21tdW5pdHkgPSBwY3RybC0+c29jLT5jb21tdW5pdGllc1tpXTsKIAotCQlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sCi0JCQkJCSAgICBjb21tdW5pdHktPmJhcm5vKTsKLQkJcmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOworCQlyZWdzID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIGNvbW11bml0eS0+YmFybm8pOwogCQlpZiAoSVNfRVJSKHJlZ3MpKQogCQkJcmV0dXJuIFBUUl9FUlIocmVncyk7CiAKQEAgLTEzNDUsMTkgKzE0MDAsMTQgQEAgc3RhdGljIGludCBpbnRlbF9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCWNvbW11bml0eS0+cmVncyA9IHJlZ3M7CiAJCWNvbW11bml0eS0+cGFkX3JlZ3MgPSByZWdzICsgcGFkYmFyOwogCi0JCWlmICghY29tbXVuaXR5LT5pc19vZmZzZXQpCi0JCQljb21tdW5pdHktPmlzX29mZnNldCA9IEdQSV9JUzsKLQogCQlyZXQgPSBpbnRlbF9waW5jdHJsX2FkZF9wYWRncm91cHMocGN0cmwsIGNvbW11bml0eSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBpbnRlcnJ1cHQgbnVtYmVyXG4iKTsKKwlpZiAoaXJxIDwgMCkKIAkJcmV0dXJuIGlycTsKLQl9CiAKIAlyZXQgPSBpbnRlbF9waW5jdHJsX3BtX2luaXQocGN0cmwpOwogCWlmIChyZXQpCkBAIC0xNDIxLDggKzE0NzEsNiBAQCBpbnQgaW50ZWxfcGluY3RybF9wcm9iZV9ieV91aWQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJdGFibGUgPSAoY29uc3Qgc3RydWN0IGludGVsX3BpbmN0cmxfc29jX2RhdGEgKiopaWQtPmRyaXZlcl9kYXRhOwogCQlkYXRhID0gdGFibGVbcGRldi0+aWRdOwogCX0KLQlpZiAoIWRhdGEpCi0JCXJldHVybiAtRU5PREVWOwogCiAJcmV0dXJuIGludGVsX3BpbmN0cmxfcHJvYmUocGRldiwgZGF0YSk7CiB9CkBAIC0xNDQzLDcgKzE0OTEsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9waW5jdHJsX3Nob3VsZF9zYXZlKHN0cnVjdCBpbnRlbF9waW5jdHJsICpwY3RybCwgdW5zaWduZWQgaW50CiAJICogdGhlbSBhbG9uZS4KIAkgKi8KIAlpZiAocGQtPm11eF9vd25lciB8fCBwZC0+Z3Bpb19vd25lciB8fAotCSAgICBncGlvY2hpcF9saW5lX2lzX2lycSgmcGN0cmwtPmNoaXAsIHBpbikpCisJICAgIGdwaW9jaGlwX2xpbmVfaXNfaXJxKCZwY3RybC0+Y2hpcCwgaW50ZWxfcGluX3RvX2dwaW8ocGN0cmwsIHBpbikpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCXJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWludGVsLmggYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1pbnRlbC5oCmluZGV4IGE4ZTk1OGYuLjM0YjM4YTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWludGVsLmgKKysrIGIvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtaW50ZWwuaApAQCAtNzUsOSArNzUsOSBAQCBzdHJ1Y3QgaW50ZWxfcGFkZ3JvdXAgewogICogQGhvc3Rvd25fb2Zmc2V0OiBSZWdpc3RlciBvZmZzZXQgb2YgSE9TVFNXX09XTiBmcm9tIEByZWdzLiBJZiAlMCB0aGVuIGl0CiAgKiAgICAgICAgICAgICAgICAgIGlzIGFzc3VtZWQgdGhhdCB0aGUgaG9zdCBvd25zIHRoZSBwaW4gKHJhdGhlciB0aGFuCiAgKiAgICAgICAgICAgICAgICAgIEFDUEkpLgotICogQGlzX29mZnNldDogUmVnaXN0ZXIgb2Zmc2V0IG9mIEdQSV9JUyBmcm9tIEByZWdzLiBJZiAlMCB0aGVuIHVzZXMgdGhlCi0gKiAgICAgICAgICAgICBkZWZhdWx0ICglMHgxMDApLgorICogQGlzX29mZnNldDogUmVnaXN0ZXIgb2Zmc2V0IG9mIEdQSV9JUyBmcm9tIEByZWdzLgogICogQGllX29mZnNldDogUmVnaXN0ZXIgb2Zmc2V0IG9mIEdQSV9JRSBmcm9tIEByZWdzLgorICogQGZlYXR1cmVzOiBBZGRpdGlvbmFsIGZlYXR1cmVzIHN1cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUKICAqIEBwaW5fYmFzZTogU3RhcnRpbmcgcGluIG9mIHBpbnMgaW4gdGhpcyBjb21tdW5pdHkKICAqIEBncHBfc2l6ZTogTWF4aW11bSBudW1iZXIgb2YgcGFkcyBpbiBlYWNoIGdyb3VwLCBzdWNoIGFzIFBBRENGR0xPQ0ssCiAgKiAgICAgICAgICAgIEhPU1RTV19PV04sICBHUElfSVMsIEdQSV9JRSwgZXRjLiBVc2VkIHdoZW4gQGdwcHMgaXMgJU5VTEwuCkBAIC04NSw5ICs4NSw5IEBAIHN0cnVjdCBpbnRlbF9wYWRncm91cCB7CiAgKgkJCSBtaW5pbXVtLiBVc2UgJTAgaWYgdGhlIG51bWJlciBvZiByZWdpc3RlcnMgY2FuIGJlCiAgKgkJCSBkZXRlcm1pbmVkIGJ5IHRoZSBzaXplIG9mIHRoZSBncm91cC4KICAqIEBucGluczogTnVtYmVyIG9mIHBpbnMgaW4gdGhpcyBjb21tdW5pdHkKLSAqIEBmZWF0dXJlczogQWRkaXRpb25hbCBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlCiAgKiBAZ3BwczogUGFkIGdyb3VwcyBpZiB0aGUgY29udHJvbGxlciBoYXMgdmFyaWFibGUgc2l6ZSBwYWQgZ3JvdXBzCiAgKiBAbmdwcHM6IE51bWJlciBvZiBwYWQgZ3JvdXBzIGluIHRoaXMgY29tbXVuaXR5CisgKiBAcGFkX21hcDogT3B0aW9uYWwgbm9uLWxpbmVhciBtYXBwaW5nIG9mIHRoZSBwYWRzCiAgKiBAcmVnczogQ29tbXVuaXR5IHNwZWNpZmljIGNvbW1vbiByZWdpc3RlcnMgKHJlc2VydmVkIGZvciBjb3JlIGRyaXZlcikKICAqIEBwYWRfcmVnczogQ29tbXVuaXR5IHNwZWNpZmljIHBhZCByZWdpc3RlcnMgKHJlc2VydmVkIGZvciBjb3JlIGRyaXZlcikKICAqCkBAIC0xMDQsMTMgKzEwNCwxNCBAQCBzdHJ1Y3QgaW50ZWxfY29tbXVuaXR5IHsKIAl1bnNpZ25lZCBpbnQgaG9zdG93bl9vZmZzZXQ7CiAJdW5zaWduZWQgaW50IGlzX29mZnNldDsKIAl1bnNpZ25lZCBpbnQgaWVfb2Zmc2V0OworCXVuc2lnbmVkIGludCBmZWF0dXJlczsKIAl1bnNpZ25lZCBpbnQgcGluX2Jhc2U7CiAJdW5zaWduZWQgaW50IGdwcF9zaXplOwogCXVuc2lnbmVkIGludCBncHBfbnVtX3BhZG93bl9yZWdzOwogCXNpemVfdCBucGluczsKLQl1bnNpZ25lZCBpbnQgZmVhdHVyZXM7CiAJY29uc3Qgc3RydWN0IGludGVsX3BhZGdyb3VwICpncHBzOwogCXNpemVfdCBuZ3BwczsKKwljb25zdCB1bnNpZ25lZCBpbnQgKnBhZF9tYXA7CiAJLyogUmVzZXJ2ZWQgZm9yIHRoZSBjb3JlIGRyaXZlciAqLwogCXZvaWQgX19pb21lbSAqcmVnczsKIAl2b2lkIF9faW9tZW0gKnBhZF9yZWdzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtbGV3aXNidXJnLmMgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1sZXdpc2J1cmcuYwppbmRleCAwM2IwNGM3Li4yZTA2ZmIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1sZXdpc2J1cmcuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1sZXdpc2J1cmcuYwpAQCAtMTcsNiArMTcsNyBAQAogI2RlZmluZSBMQkdfUEFEX09XTgkweDAyMAogI2RlZmluZSBMQkdfUEFEQ0ZHTE9DSwkweDA2MAogI2RlZmluZSBMQkdfSE9TVFNXX09XTgkweDA4MAorI2RlZmluZSBMQkdfR1BJX0lTCTB4MTAwCiAjZGVmaW5lIExCR19HUElfSUUJMHgxMTAKIAogI2RlZmluZSBMQkdfQ09NTVVOSVRZKGIsIHMsIGUpCQkJCVwKQEAgLTI1LDYgKzI2LDcgQEAKIAkJLnBhZG93bl9vZmZzZXQgPSBMQkdfUEFEX09XTiwJCVwKIAkJLnBhZGNmZ2xvY2tfb2Zmc2V0ID0gTEJHX1BBRENGR0xPQ0ssCVwKIAkJLmhvc3Rvd25fb2Zmc2V0ID0gTEJHX0hPU1RTV19PV04sCVwKKwkJLmlzX29mZnNldCA9IExCR19HUElfSVMsCQlcCiAJCS5pZV9vZmZzZXQgPSBMQkdfR1BJX0lFLAkJXAogCQkuZ3BwX3NpemUgPSAyNCwJCQkJXAogCQkucGluX2Jhc2UgPSAocyksCQkJXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtbWVycmlmaWVsZC5jIGIvZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtbWVycmlmaWVsZC5jCmluZGV4IDRiNjVlMTIuLjA0Y2E4YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLW1lcnJpZmllbGQuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1tZXJyaWZpZWxkLmMKQEAgLTg4NSw3ICs4ODUsNiBAQCBzdGF0aWMgaW50IG1yZmxkX3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgbXJmbGRfZmFtaWx5ICpmYW1pbGllczsKIAlzdHJ1Y3QgbXJmbGRfcGluY3RybCAqbXA7Ci0Jc3RydWN0IHJlc291cmNlICptZW07CiAJdm9pZCBfX2lvbWVtICpyZWdzOwogCXNpemVfdCBuZmFtaWxpZXM7CiAJdW5zaWduZWQgaW50IGk7CkBAIC04OTcsOCArODk2LDcgQEAgc3RhdGljIGludCBtcmZsZF9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJbXAtPmRldiA9ICZwZGV2LT5kZXY7CiAJcmF3X3NwaW5fbG9ja19pbml0KCZtcC0+bG9jayk7CiAKLQltZW0gPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwotCXJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgbWVtKTsKKwlyZWdzID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwogCWlmIChJU19FUlIocmVncykpCiAJCXJldHVybiBQVFJfRVJSKHJlZ3MpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1zdW5yaXNlcG9pbnQuYyBiL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLXN1bnJpc2Vwb2ludC5jCmluZGV4IGNjYWZlZWEuLjQ0ZDdmNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLXN1bnJpc2Vwb2ludC5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLXN1bnJpc2Vwb2ludC5jCkBAIC0xOCw2ICsxOCw3IEBACiAjZGVmaW5lIFNQVF9QQURfT1dOCTB4MDIwCiAjZGVmaW5lIFNQVF9QQURDRkdMT0NLCTB4MGEwCiAjZGVmaW5lIFNQVF9IT1NUU1dfT1dOCTB4MGQwCisjZGVmaW5lIFNQVF9HUElfSVMJMHgxMDAKICNkZWZpbmUgU1BUX0dQSV9JRQkweDEyMAogCiAjZGVmaW5lIFNQVF9DT01NVU5JVFkoYiwgcywgZSkJCQkJXApAQCAtMjYsNiArMjcsNyBAQAogCQkucGFkb3duX29mZnNldCA9IFNQVF9QQURfT1dOLAkJXAogCQkucGFkY2ZnbG9ja19vZmZzZXQgPSBTUFRfUEFEQ0ZHTE9DSywJXAogCQkuaG9zdG93bl9vZmZzZXQgPSBTUFRfSE9TVFNXX09XTiwJXAorCQkuaXNfb2Zmc2V0ID0gU1BUX0dQSV9JUywJCVwKIAkJLmllX29mZnNldCA9IFNQVF9HUElfSUUsCQlcCiAJCS5ncHBfc2l6ZSA9IDI0LAkJCQlcCiAJCS5ncHBfbnVtX3BhZG93bl9yZWdzID0gNCwJCVwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9tZXNvbi9waW5jdHJsLW1lc29uLWcxMmEuYyBiL2RyaXZlcnMvcGluY3RybC9tZXNvbi9waW5jdHJsLW1lc29uLWcxMmEuYwppbmRleCAzNDc1Y2Q3Li41ODI2NjVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvbWVzb24vcGluY3RybC1tZXNvbi1nMTJhLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL21lc29uL3BpbmN0cmwtbWVzb24tZzEyYS5jCkBAIC04MDEsNiArODAxLDkgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCByZW1vdGVfYW9faW5wdXRfcGluc1tdCT0geyBHUElPQU9fNSB9OwogLyogaXJfb3V0ICovCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHJlbW90ZV9hb19vdXRfcGluc1tdCQk9IHsgR1BJT0FPXzQgfTsKIAorLyogcHdtX2FfZSAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBwd21fYV9lX3BpbnNbXQkJPSB7IEdQSU9FXzIgfTsKKwogLyogcHdtX2FvX2EgKi8KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgcHdtX2FvX2FfcGluc1tdCQk9IHsgR1BJT0FPXzExIH07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHB3bV9hb19hX2hpel9waW5zW10JCT0geyBHUElPQU9fMTEgfTsKQEAgLTg4OCw2ICs4OTEsNyBAQCBzdGF0aWMgc3RydWN0IG1lc29uX3BteF9ncm91cCBtZXNvbl9nMTJhX2FvYnVzX2dyb3Vwc1tdID0gewogCUdST1VQKGkyY19hb19zbGF2ZV9zZGEsCQkzKSwKIAlHUk9VUChyZW1vdGVfYW9faW5wdXQsCQkxKSwKIAlHUk9VUChyZW1vdGVfYW9fb3V0LAkJMSksCisJR1JPVVAocHdtX2FfZSwJCQkzKSwKIAlHUk9VUChwd21fYW9fYSwJCQkzKSwKIAlHUk9VUChwd21fYW9fYV9oaXosCQkyKSwKIAlHUk9VUChwd21fYW9fYiwJCQkzKSwKQEAgLTExOTIsNiArMTE5NiwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJlbW90ZV9hb19vdXRfZ3JvdXBzW10gPSB7CiAJInJlbW90ZV9hb19vdXQiLAogfTsKIAorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwd21fYV9lX2dyb3Vwc1tdID0geworCSJwd21fYV9lIiwKK307CisKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcHdtX2FvX2FfZ3JvdXBzW10gPSB7CiAJInB3bV9hb19hIiwgInB3bV9hb19hX2hpeiIsCiB9OwpAQCAtMTI5MCw2ICsxMjk4LDcgQEAgc3RhdGljIHN0cnVjdCBtZXNvbl9wbXhfZnVuYyBtZXNvbl9nMTJhX2FvYnVzX2Z1bmN0aW9uc1tdID0gewogCUZVTkNUSU9OKGkyY19hb19zbGF2ZSksCiAJRlVOQ1RJT04ocmVtb3RlX2FvX2lucHV0KSwKIAlGVU5DVElPTihyZW1vdGVfYW9fb3V0KSwKKwlGVU5DVElPTihwd21fYV9lKSwKIAlGVU5DVElPTihwd21fYW9fYSksCiAJRlVOQ1RJT04ocHdtX2FvX2IpLAogCUZVTkNUSU9OKHB3bV9hb19jKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9tZXNvbi9waW5jdHJsLW1lc29uLWd4YmIuYyBiL2RyaXZlcnMvcGluY3RybC9tZXNvbi9waW5jdHJsLW1lc29uLWd4YmIuYwppbmRleCA2YzY0MDgzLi41YmZhNTZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvbWVzb24vcGluY3RybC1tZXNvbi1neGJiLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL21lc29uL3BpbmN0cmwtbWVzb24tZ3hiYi5jCkBAIC0xOTIsOCArMTkyLDggQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB1YXJ0X3J0c19iX3BpbnNbXQk9IHsgR1BJT0RWXzI3IH07CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgdWFydF90eF9jX3BpbnNbXQk9IHsgR1BJT1lfMTMgfTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgdWFydF9yeF9jX3BpbnNbXQk9IHsgR1BJT1lfMTQgfTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgdWFydF9jdHNfY19waW5zW10JPSB7IEdQSU9YXzExIH07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHVhcnRfcnRzX2NfcGluc1tdCT0geyBHUElPWF8xMiB9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB1YXJ0X2N0c19jX3BpbnNbXQk9IHsgR1BJT1lfMTEgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgdWFydF9ydHNfY19waW5zW10JPSB7IEdQSU9ZXzEyIH07CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgaTJjX3Nja19hX3BpbnNbXQk9IHsgR1BJT0RWXzI1IH07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGkyY19zZGFfYV9waW5zW10JPSB7IEdQSU9EVl8yNCB9OwpAQCAtNDM5LDEwICs0MzksMTAgQEAgc3RhdGljIHN0cnVjdCBtZXNvbl9wbXhfZ3JvdXAgbWVzb25fZ3hiYl9wZXJpcGhzX2dyb3Vwc1tdID0gewogCUdST1VQKHB3bV9mX3gsCQkzLAkxOCksCiAKIAkvKiBCYW5rIFkgKi8KLQlHUk9VUCh1YXJ0X2N0c19jLAkxLAkxOSksCi0JR1JPVVAodWFydF9ydHNfYywJMSwJMTgpLAotCUdST1VQKHVhcnRfdHhfYywJMSwJMTcpLAotCUdST1VQKHVhcnRfcnhfYywJMSwJMTYpLAorCUdST1VQKHVhcnRfY3RzX2MsCTEsCTE3KSwKKwlHUk9VUCh1YXJ0X3J0c19jLAkxLAkxNiksCisJR1JPVVAodWFydF90eF9jLAkxLAkxOSksCisJR1JPVVAodWFydF9yeF9jLAkxLAkxOCksCiAJR1JPVVAocHdtX2FfeSwJCTEsCTIxKSwKIAlHUk9VUChwd21fZl95LAkJMSwJMjApLAogCUdST1VQKGkyc19vdXRfY2gyM195LAkxLAk1KSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9tZXNvbi9waW5jdHJsLW1lc29uLmMgYi9kcml2ZXJzL3BpbmN0cmwvbWVzb24vcGluY3RybC1tZXNvbi5jCmluZGV4IDU5Njc4NjkuLjhiYmE5ZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9tZXNvbi9waW5jdHJsLW1lc29uLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL21lc29uL3BpbmN0cmwtbWVzb24uYwpAQCAtNjUxLDYgKzY1MSw3IEBAIHN0YXRpYyBpbnQgbWVzb25fcGluY3RybF9wYXJzZV9kdChzdHJ1Y3QgbWVzb25fcGluY3RybCAqcGMsCiAJCQljb250aW51ZTsKIAkJaWYgKGdwaW9fbnApIHsKIAkJCWRldl9lcnIocGMtPmRldiwgIm11bHRpcGxlIGdwaW8gbm9kZXNcbiIpOworCQkJb2Zfbm9kZV9wdXQobnApOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAkJZ3Bpb19ucCA9IG5wOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL212ZWJ1L3BpbmN0cmwtYXJtYWRhLWNwMTEwLmMgYi9kcml2ZXJzL3BpbmN0cmwvbXZlYnUvcGluY3RybC1hcm1hZGEtY3AxMTAuYwppbmRleCA1ODQ5NTJiLi4xNzQ5MWIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvbXZlYnUvcGluY3RybC1hcm1hZGEtY3AxMTAuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvbXZlYnUvcGluY3RybC1hcm1hZGEtY3AxMTAuYwpAQCAtMzIsNiArMzIsNyBAQCBlbnVtIHsKIAlWX0FSTUFEQV83SyA9IEJJVCgwKSwKIAlWX0FSTUFEQV84S19DUE0gPSBCSVQoMSksCiAJVl9BUk1BREFfOEtfQ1BTID0gQklUKDIpLAorCVZfQ1AxMTVfU1RBTkRBTE9ORSA9IEJJVCgzKSwKIAlWX0FSTUFEQV83S184S19DUE0gPSAoVl9BUk1BREFfN0sgfCBWX0FSTUFEQV84S19DUE0pLAogCVZfQVJNQURBXzdLXzhLX0NQUyA9IChWX0FSTUFEQV83SyB8IFZfQVJNQURBXzhLX0NQUyksCiB9OwpAQCAtNTk3LDcgKzU5OCw4IEBAIHN0YXRpYyBzdHJ1Y3QgbXZlYnVfbXBwX21vZGUgYXJtYWRhX2NwMTEwX21wcF9tb2Rlc1tdID0gewogCQkgTVBQX0ZVTkNUSU9OKDcsCSJ1YXJ0MCIsCSJyeGQiKSwKIAkJIE1QUF9GVU5DVElPTig4LAkidWFydDIiLAkicnhkIiksCiAJCSBNUFBfRlVOQ1RJT04oOSwJInNhdGEwIiwJInByZXNlbnRfYWN0IiksCi0JCSBNUFBfRlVOQ1RJT04oMTAsCSJnZSIsCQkibWRjIikpLAorCQkgTVBQX0ZVTkNUSU9OKDEwLAkiZ2UiLAkJIm1kYyIpLAorCQkgTVBQX0ZVTkNUSU9OKDE0LAkic2RpbyIsCQkiZHMiKSksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhcm1hZGFfY3AxMTBfcGluY3RybF9vZl9tYXRjaFtdID0gewpAQCAtNjEzLDYgKzYxNSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhcm1hZGFfY3AxMTBfcGluY3RybF9vZl9tYXRjaFtdID0gewogCQkuY29tcGF0aWJsZQk9ICJtYXJ2ZWxsLGFybWFkYS04ay1jcHMtcGluY3RybCIsCiAJCS5kYXRhCQk9ICh2b2lkICopIFZfQVJNQURBXzhLX0NQUywKIAl9LAorCXsKKwkJLmNvbXBhdGlibGUJPSAibWFydmVsbCxjcDExNS1zdGFuZGFsb25lLXBpbmN0cmwiLAorCQkuZGF0YQkJPSAodm9pZCAqKSBWX0NQMTE1X1NUQU5EQUxPTkUsCisJfSwKIAl7IH0sCiB9OwogCkBAIC02NTQsMTYgKzY2MCwyMCBAQCBzdGF0aWMgaW50IGFybWFkYV9jcDExMF9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMCAuLi4gMzE6Ci0JCQltdmVidV9waW5jdHJsX2Fzc2lnbl92YXJpYW50KG0sIFZfQVJNQURBXzdLXzhLX0NQUyk7CisJCQltdmVidV9waW5jdHJsX2Fzc2lnbl92YXJpYW50KG0sIChWX0FSTUFEQV83S184S19DUFMgfAorCQkJCQkJCSBWX0NQMTE1X1NUQU5EQUxPTkUpKTsKIAkJCWJyZWFrOwogCQljYXNlIDMyIC4uLiAzODoKLQkJCW12ZWJ1X3BpbmN0cmxfYXNzaWduX3ZhcmlhbnQobSwgVl9BUk1BREFfN0tfOEtfQ1BNKTsKKwkJCW12ZWJ1X3BpbmN0cmxfYXNzaWduX3ZhcmlhbnQobSwgKFZfQVJNQURBXzdLXzhLX0NQTSB8CisJCQkJCQkJIFZfQ1AxMTVfU1RBTkRBTE9ORSkpOwogCQkJYnJlYWs7CiAJCWNhc2UgMzkgLi4uIDQzOgotCQkJbXZlYnVfcGluY3RybF9hc3NpZ25fdmFyaWFudChtLCBWX0FSTUFEQV84S19DUE0pOworCQkJbXZlYnVfcGluY3RybF9hc3NpZ25fdmFyaWFudChtLCAoVl9BUk1BREFfOEtfQ1BNIHwKKwkJCQkJCQkgVl9DUDExNV9TVEFOREFMT05FKSk7CiAJCQlicmVhazsKIAkJY2FzZSA0NCAuLi4gNjI6Ci0JCQltdmVidV9waW5jdHJsX2Fzc2lnbl92YXJpYW50KG0sIFZfQVJNQURBXzdLXzhLX0NQTSk7CisJCQltdmVidV9waW5jdHJsX2Fzc2lnbl92YXJpYW50KG0sIChWX0FSTUFEQV83S184S19DUE0gfAorCQkJCQkJCSBWX0NQMTE1X1NUQU5EQUxPTkUpKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL25vbWFkaWsvcGluY3RybC1hYng1MDAuYyBiL2RyaXZlcnMvcGluY3RybC9ub21hZGlrL3BpbmN0cmwtYWJ4NTAwLmMKaW5kZXggYzM1OTUyMC4uN2FhNTM0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL25vbWFkaWsvcGluY3RybC1hYng1MDAuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvbm9tYWRpay9waW5jdHJsLWFieDUwMC5jCkBAIC04MTUsNiArODE1LDcgQEAgc3RhdGljIGludCBhYng1MDBfZHRfbm9kZV90b19tYXAoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAogCQkJCSZyZXNlcnZlZF9tYXBzLCBudW1fbWFwcyk7CiAJCWlmIChyZXQgPCAwKSB7CiAJCQlwaW5jdHJsX3V0aWxzX2ZyZWVfbWFwKHBjdGxkZXYsICptYXAsICpudW1fbWFwcyk7CisJCQlvZl9ub2RlX3B1dChucCk7CiAJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL25vbWFkaWsvcGluY3RybC1ub21hZGlrLmMgYi9kcml2ZXJzL3BpbmN0cmwvbm9tYWRpay9waW5jdHJsLW5vbWFkaWsuYwppbmRleCBkZGQxZjQ2Li4yYTgxOTBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvbm9tYWRpay9waW5jdHJsLW5vbWFkaWsuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvbm9tYWRpay9waW5jdHJsLW5vbWFkaWsuYwpAQCAtMTUwOCw2ICsxNTA4LDcgQEAgc3RhdGljIGludCBubWtfcGluY3RybF9kdF9ub2RlX3RvX21hcChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCiAJCQkJJnJlc2VydmVkX21hcHMsIG51bV9tYXBzKTsKIAkJaWYgKHJldCA8IDApIHsKIAkJCXBpbmN0cmxfdXRpbHNfZnJlZV9tYXAocGN0bGRldiwgKm1hcCwgKm51bV9tYXBzKTsKKwkJCW9mX25vZGVfcHV0KG5wKTsKIAkJCXJldHVybiByZXQ7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1hbWQuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWFtZC5jCmluZGV4IDliOWM2MWUuLjJjNjExNDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWFtZC5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWFtZC5jCkBAIC01NjUsMTUgKzU2NSwyNSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYW1kX2dwaW9faXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogCQkJICAgICEocmVndmFsICYgQklUKElOVEVSUlVQVF9NQVNLX09GRikpKQogCQkJCWNvbnRpbnVlOwogCQkJaXJxID0gaXJxX2ZpbmRfbWFwcGluZyhnYy0+aXJxLmRvbWFpbiwgaXJxbnIgKyBpKTsKLQkJCWdlbmVyaWNfaGFuZGxlX2lycShpcnEpOworCQkJaWYgKGlycSAhPSAwKQorCQkJCWdlbmVyaWNfaGFuZGxlX2lycShpcnEpOwogCiAJCQkvKiBDbGVhciBpbnRlcnJ1cHQuCiAJCQkgKiBXZSBtdXN0IHJlYWQgdGhlIHBpbiByZWdpc3RlciBhZ2FpbiwgaW4gY2FzZSB0aGUKIAkJCSAqIHZhbHVlIHdhcyBjaGFuZ2VkIHdoaWxlIGV4ZWN1dGluZwogCQkJICogZ2VuZXJpY19oYW5kbGVfaXJxKCkgYWJvdmUuCisJCQkgKiBJZiB3ZSBkaWRuJ3QgZmluZCBhIG1hcHBpbmcgZm9yIHRoZSBpbnRlcnJ1cHQsCisJCQkgKiBkaXNhYmxlIGl0IGluIG9yZGVyIHRvIGF2b2lkIGEgc3lzdGVtIGhhbmcgY2F1c2VkCisJCQkgKiBieSBhbiBpbnRlcnJ1cHQgc3Rvcm0uCiAJCQkgKi8KIAkJCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmZ3Bpb19kZXYtPmxvY2ssIGZsYWdzKTsKIAkJCXJlZ3ZhbCA9IHJlYWRsKHJlZ3MgKyBpKTsKKwkJCWlmIChpcnEgPT0gMCkgeworCQkJCXJlZ3ZhbCAmPSB+QklUKElOVEVSUlVQVF9FTkFCTEVfT0ZGKTsKKwkJCQlkZXZfZGJnKCZncGlvX2Rldi0+cGRldi0+ZGV2LAorCQkJCQkiRGlzYWJsaW5nIHNwdXJpb3VzIEdQSU8gSVJRICVkXG4iLAorCQkJCQlpcnFuciArIGkpOworCQkJfQogCQkJd3JpdGVsKHJlZ3ZhbCwgcmVncyArIGkpOwogCQkJcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmdwaW9fZGV2LT5sb2NrLCBmbGFncyk7CiAJCQlyZXQgPSBJUlFfSEFORExFRDsKQEAgLTg2MSwxMCArODcxLDggQEAgc3RhdGljIGludCBhbWRfZ3Bpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAogCWlycV9iYXNlID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxX2Jhc2UgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyBJUlE6ICVkXG4iLCBpcnFfYmFzZSk7CisJaWYgKGlycV9iYXNlIDwgMCkKIAkJcmV0dXJuIGlycV9iYXNlOwotCX0KIAogI2lmZGVmIENPTkZJR19QTV9TTEVFUAogCWdwaW9fZGV2LT5zYXZlZF9yZWdzID0gZGV2bV9rY2FsbG9jKCZwZGV2LT5kZXYsIGFtZF9waW5jdHJsX2Rlc2MubnBpbnMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1mYWxjb24uYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWZhbGNvbi5jCmluZGV4IGVmMTMzYTguLmE0NTRmNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWZhbGNvbi5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWZhbGNvbi5jCkBAIC05NiwxMiArOTYsOCBAQCBzdGF0aWMgdm9pZCBsYW50aXFfbG9hZF9waW5fZGVzYyhzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyAqZCwgaW50IGJhbmssIGludCBsZW4pCiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKLQkJLyogc3RybGVuKCJpb1hZWiIpICsgMSA9IDYgKi8KLQkJY2hhciAqbmFtZSA9IGt6YWxsb2MoNiwgR0ZQX0tFUk5FTCk7Ci0KLQkJc25wcmludGYobmFtZSwgNiwgImlvJWQiLCBiYXNlICsgaSk7CiAJCWRbaV0ubnVtYmVyID0gYmFzZSArIGk7Ci0JCWRbaV0ubmFtZSA9IG5hbWU7CisJCWRbaV0ubmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiaW8lZCIsIGJhc2UgKyBpKTsKIAl9CiAJcGFkX2NvdW50W2JhbmtdID0gbGVuOwogfQpAQCAtNDU1LDEyICs0NTEsMTUgQEAgc3RhdGljIGludCBwaW5jdHJsX2ZhbGNvbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlmYWxjb25faW5mby5jbGtbKmJhbmtdID0gY2xrX2dldCgmcHBkZXYtPmRldiwgTlVMTCk7CiAJCWlmIChJU19FUlIoZmFsY29uX2luZm8uY2xrWypiYW5rXSkpIHsKIAkJCWRldl9lcnIoJnBwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGNsb2NrXG4iKTsKKwkJCW9mX25vZGVfcHV0KG5wKQogCQkJcmV0dXJuIFBUUl9FUlIoZmFsY29uX2luZm8uY2xrWypiYW5rXSk7CiAJCX0KIAkJZmFsY29uX2luZm8ubWVtYmFzZVsqYmFua10gPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwKIAkJCQkJCQkJICAgJnJlcyk7Ci0JCWlmIChJU19FUlIoZmFsY29uX2luZm8ubWVtYmFzZVsqYmFua10pKQorCQlpZiAoSVNfRVJSKGZhbGNvbl9pbmZvLm1lbWJhc2VbKmJhbmtdKSkgeworCQkJb2Zfbm9kZV9wdXQobnApOwogCQkJcmV0dXJuIFBUUl9FUlIoZmFsY29uX2luZm8ubWVtYmFzZVsqYmFua10pOworCQl9CiAKIAkJYXZhaWwgPSBwYWRfcjMyKGZhbGNvbl9pbmZvLm1lbWJhc2VbKmJhbmtdLAogCQkJCQlMVFFfUEFEQ19BVkFJTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1pbmdlbmljLmMgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1pbmdlbmljLmMKaW5kZXggYzhlZjNiOS4uNmUyNjgzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtaW5nZW5pYy5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWluZ2VuaWMuYwpAQCAtMyw2ICszLDcgQEAKICAqIEluZ2VuaWMgU29DcyBwaW5jdHJsIGRyaXZlcgogICoKICAqIENvcHlyaWdodCAoYykgMjAxNyBQYXVsIENlcmN1ZWlsIDxwYXVsQGNyYXBvdWlsbG91Lm5ldD4KKyAqIENvcHlyaWdodCAoYykgMjAxOSBaaG91IFlhbmppZSA8emhvdXlhbmppZUB6b2hvLmNvbT4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KQEAgLTM1LDExICszNiwxNCBAQAogI2RlZmluZSBKWjQ3NDBfR1BJT19UUklHCTB4NzAKICNkZWZpbmUgSlo0NzQwX0dQSU9fRkxBRwkweDgwCiAKLSNkZWZpbmUgSlo0NzcwX0dQSU9fSU5UCQkweDEwCi0jZGVmaW5lIEpaNDc3MF9HUElPX1BBVDEJMHgzMAotI2RlZmluZSBKWjQ3NzBfR1BJT19QQVQwCTB4NDAKLSNkZWZpbmUgSlo0NzcwX0dQSU9fRkxBRwkweDUwCi0jZGVmaW5lIEpaNDc3MF9HUElPX1BFTgkJMHg3MAorI2RlZmluZSBKWjQ3NjBfR1BJT19JTlQJCTB4MTAKKyNkZWZpbmUgSlo0NzYwX0dQSU9fUEFUMQkweDMwCisjZGVmaW5lIEpaNDc2MF9HUElPX1BBVDAJMHg0MAorI2RlZmluZSBKWjQ3NjBfR1BJT19GTEFHCTB4NTAKKyNkZWZpbmUgSlo0NzYwX0dQSU9fUEVOCQkweDcwCisKKyNkZWZpbmUgWDEwMDBfR1BJT19QWl9CQVNFCQkweDcwMAorI2RlZmluZSBYMTAwMF9HUElPX1BaX0dJRDJMRAkweDdmMAogCiAjZGVmaW5lIFJFR19TRVQoeCkgKCh4KSArIDB4NCkKICNkZWZpbmUgUkVHX0NMRUFSKHgpICgoeCkgKyAweDgpCkBAIC00OSw4ICs1MywxMyBAQAogZW51bSBqel92ZXJzaW9uIHsKIAlJRF9KWjQ3NDAsCiAJSURfSlo0NzI1QiwKKwlJRF9KWjQ3NjAsCisJSURfSlo0NzYwQiwKIAlJRF9KWjQ3NzAsCiAJSURfSlo0NzgwLAorCUlEX1gxMDAwLAorCUlEX1gxMDAwRSwKKwlJRF9YMTUwMCwKIH07CiAKIHN0cnVjdCBpbmdlbmljX2NoaXBfaW5mbyB7CkBAIC0zMzgsNiArMzQ3LDI2OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGluZ2VuaWNfY2hpcF9pbmZvIGp6NDcyNWJfY2hpcF9pbmZvID0gewogCS5wdWxsX2Rvd25zID0gano0NzQwX3B1bGxfZG93bnMsCiB9OwogCitzdGF0aWMgY29uc3QgdTMyIGp6NDc2MF9wdWxsX3Vwc1s2XSA9IHsKKwkweGZmZmZmZmZmLCAweGZmZmNmM2ZmLCAweGZmZmZmZmZmLCAweGZmZmZjZmZmLCAweGZmZmZmYjdjLCAweGZmZmZmMDBmLAorfTsKKworc3RhdGljIGNvbnN0IHUzMiBqejQ3NjBfcHVsbF9kb3duc1s2XSA9IHsKKwkweDAwMDAwMDAwLCAweDAwMDMwYzAwLCAweDAwMDAwMDAwLCAweDAwMDAzMDAwLCAweDAwMDAwNDgzLCAweDAwMDAwZmYwLAorfTsKKworc3RhdGljIGludCBqejQ3NjBfdWFydDBfZGF0YV9waW5zW10gPSB7IDB4YTAsIDB4YTMsIH07CitzdGF0aWMgaW50IGp6NDc2MF91YXJ0MF9od2Zsb3dfcGluc1tdID0geyAweGExLCAweGEyLCB9Oworc3RhdGljIGludCBqejQ3NjBfdWFydDFfZGF0YV9waW5zW10gPSB7IDB4N2EsIDB4N2MsIH07CitzdGF0aWMgaW50IGp6NDc2MF91YXJ0MV9od2Zsb3dfcGluc1tdID0geyAweDdiLCAweDdkLCB9Oworc3RhdGljIGludCBqejQ3NjBfdWFydDJfZGF0YV9waW5zW10gPSB7IDB4NWMsIDB4NWUsIH07CitzdGF0aWMgaW50IGp6NDc2MF91YXJ0Ml9od2Zsb3dfcGluc1tdID0geyAweDVkLCAweDVmLCB9Oworc3RhdGljIGludCBqejQ3NjBfdWFydDNfZGF0YV9waW5zW10gPSB7IDB4NmMsIDB4ODUsIH07CitzdGF0aWMgaW50IGp6NDc2MF91YXJ0M19od2Zsb3dfcGluc1tdID0geyAweDg4LCAweDg5LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMF8xYml0X2FfcGluc1tdID0geyAweDEyLCAweDEzLCAweDE0LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMF80Yml0X2FfcGluc1tdID0geyAweDE1LCAweDE2LCAweDE3LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMF8xYml0X2VfcGluc1tdID0geyAweDljLCAweDlkLCAweDk0LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMF80Yml0X2VfcGluc1tdID0geyAweDk1LCAweDk2LCAweDk3LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMF84Yml0X2VfcGluc1tdID0geyAweDk4LCAweDk5LCAweDlhLCAweDliLCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMV8xYml0X2RfcGluc1tdID0geyAweDc4LCAweDc5LCAweDc0LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMV80Yml0X2RfcGluc1tdID0geyAweDc1LCAweDc2LCAweDc3LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMV8xYml0X2VfcGluc1tdID0geyAweDljLCAweDlkLCAweDk0LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMV80Yml0X2VfcGluc1tdID0geyAweDk1LCAweDk2LCAweDk3LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMV84Yml0X2VfcGluc1tdID0geyAweDk4LCAweDk5LCAweDlhLCAweDliLCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMl8xYml0X2JfcGluc1tdID0geyAweDNjLCAweDNkLCAweDM0LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMl80Yml0X2JfcGluc1tdID0geyAweDM1LCAweDNlLCAweDNmLCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMl8xYml0X2VfcGluc1tdID0geyAweDljLCAweDlkLCAweDk0LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMl80Yml0X2VfcGluc1tdID0geyAweDk1LCAweDk2LCAweDk3LCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMl84Yml0X2VfcGluc1tdID0geyAweDk4LCAweDk5LCAweDlhLCAweDliLCB9Oworc3RhdGljIGludCBqejQ3NjBfbmVtY184Yml0X2RhdGFfcGluc1tdID0geworCTB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCit9Oworc3RhdGljIGludCBqejQ3NjBfbmVtY18xNmJpdF9kYXRhX3BpbnNbXSA9IHsKKwkweDA4LCAweDA5LCAweDBhLCAweDBiLCAweDBjLCAweDBkLCAweDBlLCAweDBmLAorfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY2xlX2FsZV9waW5zW10gPSB7IDB4MjAsIDB4MjEsIH07CitzdGF0aWMgaW50IGp6NDc2MF9uZW1jX2FkZHJfcGluc1tdID0geyAweDIyLCAweDIzLCAweDI0LCAweDI1LCB9Oworc3RhdGljIGludCBqejQ3NjBfbmVtY19yZF93ZV9waW5zW10gPSB7IDB4MTAsIDB4MTEsIH07CitzdGF0aWMgaW50IGp6NDc2MF9uZW1jX2ZyZF9md2VfcGluc1tdID0geyAweDEyLCAweDEzLCB9Oworc3RhdGljIGludCBqejQ3NjBfbmVtY193YWl0X3BpbnNbXSA9IHsgMHgxYiwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY3MxX3BpbnNbXSA9IHsgMHgxNSwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY3MyX3BpbnNbXSA9IHsgMHgxNiwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY3MzX3BpbnNbXSA9IHsgMHgxNywgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY3M0X3BpbnNbXSA9IHsgMHgxOCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY3M1X3BpbnNbXSA9IHsgMHgxOSwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY3M2X3BpbnNbXSA9IHsgMHgxYSwgfTsKK3N0YXRpYyBpbnQgano0NzYwX2kyYzBfcGluc1tdID0geyAweDdlLCAweDdmLCB9Oworc3RhdGljIGludCBqejQ3NjBfaTJjMV9waW5zW10gPSB7IDB4OWUsIDB4OWYsIH07CitzdGF0aWMgaW50IGp6NDc2MF9jaW1fcGluc1tdID0geworCTB4MjYsIDB4MjcsIDB4MjgsIDB4MjksCisJMHgyYSwgMHgyYiwgMHgyYywgMHgyZCwgMHgyZSwgMHgyZiwgMHgzMCwgMHgzMSwKK307CitzdGF0aWMgaW50IGp6NDc2MF9sY2RfMjRiaXRfcGluc1tdID0geworCTB4NDAsIDB4NDEsIDB4NDIsIDB4NDMsIDB4NDQsIDB4NDUsIDB4NDYsIDB4NDcsCisJMHg0OCwgMHg0OSwgMHg0YSwgMHg0YiwgMHg0YywgMHg0ZCwgMHg0ZSwgMHg0ZiwKKwkweDUwLCAweDUxLCAweDUyLCAweDUzLCAweDU0LCAweDU1LCAweDU2LCAweDU3LAorCTB4NTgsIDB4NTksIDB4NWEsIDB4NWIsCit9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTBfcGluc1tdID0geyAweDgwLCB9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTFfcGluc1tdID0geyAweDgxLCB9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTJfcGluc1tdID0geyAweDgyLCB9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTNfcGluc1tdID0geyAweDgzLCB9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTRfcGluc1tdID0geyAweDg0LCB9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTVfcGluc1tdID0geyAweDg1LCB9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTZfcGluc1tdID0geyAweDZhLCB9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTdfcGluc1tdID0geyAweDZiLCB9OworCitzdGF0aWMgaW50IGp6NDc2MF91YXJ0MF9kYXRhX2Z1bmNzW10gPSB7IDAsIDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF91YXJ0MF9od2Zsb3dfZnVuY3NbXSA9IHsgMCwgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX3VhcnQxX2RhdGFfZnVuY3NbXSA9IHsgMCwgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX3VhcnQxX2h3Zmxvd19mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfdWFydDJfZGF0YV9mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfdWFydDJfaHdmbG93X2Z1bmNzW10gPSB7IDAsIDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF91YXJ0M19kYXRhX2Z1bmNzW10gPSB7IDAsIDEsIH07CitzdGF0aWMgaW50IGp6NDc2MF91YXJ0M19od2Zsb3dfZnVuY3NbXSA9IHsgMCwgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX21tYzBfMWJpdF9hX2Z1bmNzW10gPSB7IDEsIDEsIDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9tbWMwXzRiaXRfYV9mdW5jc1tdID0geyAxLCAxLCAxLCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMF8xYml0X2VfZnVuY3NbXSA9IHsgMCwgMCwgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX21tYzBfNGJpdF9lX2Z1bmNzW10gPSB7IDAsIDAsIDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9tbWMwXzhiaXRfZV9mdW5jc1tdID0geyAwLCAwLCAwLCAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMV8xYml0X2RfZnVuY3NbXSA9IHsgMCwgMCwgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX21tYzFfNGJpdF9kX2Z1bmNzW10gPSB7IDAsIDAsIDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9tbWMxXzFiaXRfZV9mdW5jc1tdID0geyAxLCAxLCAxLCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMV80Yml0X2VfZnVuY3NbXSA9IHsgMSwgMSwgMSwgfTsKK3N0YXRpYyBpbnQgano0NzYwX21tYzFfOGJpdF9lX2Z1bmNzW10gPSB7IDEsIDEsIDEsIDEsIH07CitzdGF0aWMgaW50IGp6NDc2MF9tbWMyXzFiaXRfYl9mdW5jc1tdID0geyAwLCAwLCAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMl80Yml0X2JfZnVuY3NbXSA9IHsgMCwgMCwgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX21tYzJfMWJpdF9lX2Z1bmNzW10gPSB7IDIsIDIsIDIsIH07CitzdGF0aWMgaW50IGp6NDc2MF9tbWMyXzRiaXRfZV9mdW5jc1tdID0geyAyLCAyLCAyLCB9Oworc3RhdGljIGludCBqejQ3NjBfbW1jMl84Yml0X2VfZnVuY3NbXSA9IHsgMiwgMiwgMiwgMiwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfOGJpdF9kYXRhX2Z1bmNzW10gPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9uZW1jXzE2Yml0X2RhdGFfZnVuY3NbXSA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY2xlX2FsZV9mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfbmVtY19hZGRyX2Z1bmNzW10gPSB7IDAsIDAsIDAsIDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9uZW1jX3JkX3dlX2Z1bmNzW10gPSB7IDAsIDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9uZW1jX2ZyZF9md2VfZnVuY3NbXSA9IHsgMCwgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfd2FpdF9mdW5jc1tdID0geyAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfbmVtY19jczFfZnVuY3NbXSA9IHsgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY3MyX2Z1bmNzW10gPSB7IDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9uZW1jX2NzM19mdW5jc1tdID0geyAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfbmVtY19jczRfZnVuY3NbXSA9IHsgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX25lbWNfY3M1X2Z1bmNzW10gPSB7IDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9uZW1jX2NzNl9mdW5jc1tdID0geyAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfaTJjMF9mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfaTJjMV9mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfY2ltX2Z1bmNzW10gPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9sY2RfMjRiaXRfZnVuY3NbXSA9IHsKKwkwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorCTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisJMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKwkwLCAwLCAwLCAwLAorfTsKK3N0YXRpYyBpbnQgano0NzYwX3B3bV9wd20wX2Z1bmNzW10gPSB7IDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9wd21fcHdtMV9mdW5jc1tdID0geyAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTJfZnVuY3NbXSA9IHsgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX3B3bV9wd20zX2Z1bmNzW10gPSB7IDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9wd21fcHdtNF9mdW5jc1tdID0geyAwLCB9Oworc3RhdGljIGludCBqejQ3NjBfcHdtX3B3bTVfZnVuY3NbXSA9IHsgMCwgfTsKK3N0YXRpYyBpbnQgano0NzYwX3B3bV9wd202X2Z1bmNzW10gPSB7IDAsIH07CitzdGF0aWMgaW50IGp6NDc2MF9wd21fcHdtN19mdW5jc1tdID0geyAwLCB9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGdyb3VwX2Rlc2Mgano0NzYwX2dyb3Vwc1tdID0geworCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0MC1kYXRhIiwgano0NzYwX3VhcnQwX2RhdGEpLAorCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0MC1od2Zsb3ciLCBqejQ3NjBfdWFydDBfaHdmbG93KSwKKwlJTkdFTklDX1BJTl9HUk9VUCgidWFydDEtZGF0YSIsIGp6NDc2MF91YXJ0MV9kYXRhKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgidWFydDEtaHdmbG93Iiwgano0NzYwX3VhcnQxX2h3ZmxvdyksCisJSU5HRU5JQ19QSU5fR1JPVVAoInVhcnQyLWRhdGEiLCBqejQ3NjBfdWFydDJfZGF0YSksCisJSU5HRU5JQ19QSU5fR1JPVVAoInVhcnQyLWh3ZmxvdyIsIGp6NDc2MF91YXJ0Ml9od2Zsb3cpLAorCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0My1kYXRhIiwgano0NzYwX3VhcnQzX2RhdGEpLAorCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0My1od2Zsb3ciLCBqejQ3NjBfdWFydDNfaHdmbG93KSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibW1jMC0xYml0LWEiLCBqejQ3NjBfbW1jMF8xYml0X2EpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMwLTRiaXQtYSIsIGp6NDc2MF9tbWMwXzRiaXRfYSksCisJSU5HRU5JQ19QSU5fR1JPVVAoIm1tYzAtMWJpdC1lIiwgano0NzYwX21tYzBfMWJpdF9lKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibW1jMC00Yml0LWUiLCBqejQ3NjBfbW1jMF80Yml0X2UpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMwLThiaXQtZSIsIGp6NDc2MF9tbWMwXzhiaXRfZSksCisJSU5HRU5JQ19QSU5fR1JPVVAoIm1tYzEtMWJpdC1kIiwgano0NzYwX21tYzFfMWJpdF9kKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibW1jMS00Yml0LWQiLCBqejQ3NjBfbW1jMV80Yml0X2QpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMxLTFiaXQtZSIsIGp6NDc2MF9tbWMxXzFiaXRfZSksCisJSU5HRU5JQ19QSU5fR1JPVVAoIm1tYzEtNGJpdC1lIiwgano0NzYwX21tYzFfNGJpdF9lKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibW1jMS04Yml0LWUiLCBqejQ3NjBfbW1jMV84Yml0X2UpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMyLTFiaXQtYiIsIGp6NDc2MF9tbWMyXzFiaXRfYiksCisJSU5HRU5JQ19QSU5fR1JPVVAoIm1tYzItNGJpdC1iIiwgano0NzYwX21tYzJfNGJpdF9iKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibW1jMi0xYml0LWUiLCBqejQ3NjBfbW1jMl8xYml0X2UpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMyLTRiaXQtZSIsIGp6NDc2MF9tbWMyXzRiaXRfZSksCisJSU5HRU5JQ19QSU5fR1JPVVAoIm1tYzItOGJpdC1lIiwgano0NzYwX21tYzJfOGJpdF9lKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibmVtYy04Yml0LWRhdGEiLCBqejQ3NjBfbmVtY184Yml0X2RhdGEpLAorCUlOR0VOSUNfUElOX0dST1VQKCJuZW1jLTE2Yml0LWRhdGEiLCBqejQ3NjBfbmVtY18xNmJpdF9kYXRhKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibmVtYy1jbGUtYWxlIiwgano0NzYwX25lbWNfY2xlX2FsZSksCisJSU5HRU5JQ19QSU5fR1JPVVAoIm5lbWMtYWRkciIsIGp6NDc2MF9uZW1jX2FkZHIpLAorCUlOR0VOSUNfUElOX0dST1VQKCJuZW1jLXJkLXdlIiwgano0NzYwX25lbWNfcmRfd2UpLAorCUlOR0VOSUNfUElOX0dST1VQKCJuZW1jLWZyZC1md2UiLCBqejQ3NjBfbmVtY19mcmRfZndlKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibmVtYy13YWl0Iiwgano0NzYwX25lbWNfd2FpdCksCisJSU5HRU5JQ19QSU5fR1JPVVAoIm5lbWMtY3MxIiwgano0NzYwX25lbWNfY3MxKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibmVtYy1jczIiLCBqejQ3NjBfbmVtY19jczIpLAorCUlOR0VOSUNfUElOX0dST1VQKCJuZW1jLWNzMyIsIGp6NDc2MF9uZW1jX2NzMyksCisJSU5HRU5JQ19QSU5fR1JPVVAoIm5lbWMtY3M0Iiwgano0NzYwX25lbWNfY3M0KSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibmVtYy1jczUiLCBqejQ3NjBfbmVtY19jczUpLAorCUlOR0VOSUNfUElOX0dST1VQKCJuZW1jLWNzNiIsIGp6NDc2MF9uZW1jX2NzNiksCisJSU5HRU5JQ19QSU5fR1JPVVAoImkyYzAtZGF0YSIsIGp6NDc2MF9pMmMwKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgiaTJjMS1kYXRhIiwgano0NzYwX2kyYzEpLAorCUlOR0VOSUNfUElOX0dST1VQKCJjaW0tZGF0YSIsIGp6NDc2MF9jaW0pLAorCUlOR0VOSUNfUElOX0dST1VQKCJsY2QtMjRiaXQiLCBqejQ3NjBfbGNkXzI0Yml0KSwKKwl7ICJsY2Qtbm8tcGlucyIsIH0sCisJSU5HRU5JQ19QSU5fR1JPVVAoInB3bTAiLCBqejQ3NjBfcHdtX3B3bTApLAorCUlOR0VOSUNfUElOX0dST1VQKCJwd20xIiwgano0NzYwX3B3bV9wd20xKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgicHdtMiIsIGp6NDc2MF9wd21fcHdtMiksCisJSU5HRU5JQ19QSU5fR1JPVVAoInB3bTMiLCBqejQ3NjBfcHdtX3B3bTMpLAorCUlOR0VOSUNfUElOX0dST1VQKCJwd200Iiwgano0NzYwX3B3bV9wd200KSwKKwlJTkdFTklDX1BJTl9HUk9VUCgicHdtNSIsIGp6NDc2MF9wd21fcHdtNSksCisJSU5HRU5JQ19QSU5fR1JPVVAoInB3bTYiLCBqejQ3NjBfcHdtX3B3bTYpLAorCUlOR0VOSUNfUElOX0dST1VQKCJwd203Iiwgano0NzYwX3B3bV9wd203KSwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpqejQ3NjBfdWFydDBfZ3JvdXBzW10gPSB7ICJ1YXJ0MC1kYXRhIiwgInVhcnQwLWh3ZmxvdyIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqano0NzYwX3VhcnQxX2dyb3Vwc1tdID0geyAidWFydDEtZGF0YSIsICJ1YXJ0MS1od2Zsb3ciLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKmp6NDc2MF91YXJ0Ml9ncm91cHNbXSA9IHsgInVhcnQyLWRhdGEiLCAidWFydDItaHdmbG93IiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICpqejQ3NjBfdWFydDNfZ3JvdXBzW10gPSB7ICJ1YXJ0My1kYXRhIiwgInVhcnQzLWh3ZmxvdyIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqano0NzYwX21tYzBfZ3JvdXBzW10gPSB7CisJIm1tYzAtMWJpdC1hIiwgIm1tYzAtNGJpdC1hIiwKKwkibW1jMC0xYml0LWUiLCAibW1jMC00Yml0LWUiLCAibW1jMC04Yml0LWUiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICpqejQ3NjBfbW1jMV9ncm91cHNbXSA9IHsKKwkibW1jMS0xYml0LWQiLCAibW1jMS00Yml0LWQiLAorCSJtbWMxLTFiaXQtZSIsICJtbWMxLTRiaXQtZSIsICJtbWMxLThiaXQtZSIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKmp6NDc2MF9tbWMyX2dyb3Vwc1tdID0geworCSJtbWMyLTFiaXQtYiIsICJtbWMyLTRiaXQtYiIsCisJIm1tYzItMWJpdC1lIiwgIm1tYzItNGJpdC1lIiwgIm1tYzItOGJpdC1lIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqano0NzYwX25lbWNfZ3JvdXBzW10gPSB7CisJIm5lbWMtOGJpdC1kYXRhIiwgIm5lbWMtMTZiaXQtZGF0YSIsICJuZW1jLWNsZS1hbGUiLAorCSJuZW1jLWFkZHIiLCAibmVtYy1yZC13ZSIsICJuZW1jLWZyZC1md2UiLCAibmVtYy13YWl0IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqano0NzYwX2NzMV9ncm91cHNbXSA9IHsgIm5lbWMtY3MxIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICpqejQ3NjBfY3MyX2dyb3Vwc1tdID0geyAibmVtYy1jczIiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKmp6NDc2MF9jczNfZ3JvdXBzW10gPSB7ICJuZW1jLWNzMyIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqano0NzYwX2NzNF9ncm91cHNbXSA9IHsgIm5lbWMtY3M0IiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICpqejQ3NjBfY3M1X2dyb3Vwc1tdID0geyAibmVtYy1jczUiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKmp6NDc2MF9jczZfZ3JvdXBzW10gPSB7ICJuZW1jLWNzNiIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqano0NzYwX2kyYzBfZ3JvdXBzW10gPSB7ICJpMmMwLWRhdGEiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKmp6NDc2MF9pMmMxX2dyb3Vwc1tdID0geyAiaTJjMS1kYXRhIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICpqejQ3NjBfY2ltX2dyb3Vwc1tdID0geyAiY2ltLWRhdGEiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKmp6NDc2MF9sY2RfZ3JvdXBzW10gPSB7ICJsY2QtMjRiaXQiLCAibGNkLW5vLXBpbnMiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKmp6NDc2MF9wd20wX2dyb3Vwc1tdID0geyAicHdtMCIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqano0NzYwX3B3bTFfZ3JvdXBzW10gPSB7ICJwd20xIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICpqejQ3NjBfcHdtMl9ncm91cHNbXSA9IHsgInB3bTIiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKmp6NDc2MF9wd20zX2dyb3Vwc1tdID0geyAicHdtMyIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqano0NzYwX3B3bTRfZ3JvdXBzW10gPSB7ICJwd200IiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICpqejQ3NjBfcHdtNV9ncm91cHNbXSA9IHsgInB3bTUiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKmp6NDc2MF9wd202X2dyb3Vwc1tdID0geyAicHdtNiIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqano0NzYwX3B3bTdfZ3JvdXBzW10gPSB7ICJwd203IiwgfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmdW5jdGlvbl9kZXNjIGp6NDc2MF9mdW5jdGlvbnNbXSA9IHsKKwl7ICJ1YXJ0MCIsIGp6NDc2MF91YXJ0MF9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX3VhcnQwX2dyb3VwcyksIH0sCisJeyAidWFydDEiLCBqejQ3NjBfdWFydDFfZ3JvdXBzLCBBUlJBWV9TSVpFKGp6NDc2MF91YXJ0MV9ncm91cHMpLCB9LAorCXsgInVhcnQyIiwgano0NzYwX3VhcnQyX2dyb3VwcywgQVJSQVlfU0laRShqejQ3NjBfdWFydDJfZ3JvdXBzKSwgfSwKKwl7ICJ1YXJ0MyIsIGp6NDc2MF91YXJ0M19ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX3VhcnQzX2dyb3VwcyksIH0sCisJeyAibW1jMCIsIGp6NDc2MF9tbWMwX2dyb3VwcywgQVJSQVlfU0laRShqejQ3NjBfbW1jMF9ncm91cHMpLCB9LAorCXsgIm1tYzEiLCBqejQ3NjBfbW1jMV9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX21tYzFfZ3JvdXBzKSwgfSwKKwl7ICJtbWMyIiwgano0NzYwX21tYzJfZ3JvdXBzLCBBUlJBWV9TSVpFKGp6NDc2MF9tbWMyX2dyb3VwcyksIH0sCisJeyAibmVtYyIsIGp6NDc2MF9uZW1jX2dyb3VwcywgQVJSQVlfU0laRShqejQ3NjBfbmVtY19ncm91cHMpLCB9LAorCXsgIm5lbWMtY3MxIiwgano0NzYwX2NzMV9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX2NzMV9ncm91cHMpLCB9LAorCXsgIm5lbWMtY3MyIiwgano0NzYwX2NzMl9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX2NzMl9ncm91cHMpLCB9LAorCXsgIm5lbWMtY3MzIiwgano0NzYwX2NzM19ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX2NzM19ncm91cHMpLCB9LAorCXsgIm5lbWMtY3M0Iiwgano0NzYwX2NzNF9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX2NzNF9ncm91cHMpLCB9LAorCXsgIm5lbWMtY3M1Iiwgano0NzYwX2NzNV9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX2NzNV9ncm91cHMpLCB9LAorCXsgIm5lbWMtY3M2Iiwgano0NzYwX2NzNl9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX2NzNl9ncm91cHMpLCB9LAorCXsgImkyYzAiLCBqejQ3NjBfaTJjMF9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX2kyYzBfZ3JvdXBzKSwgfSwKKwl7ICJpMmMxIiwgano0NzYwX2kyYzFfZ3JvdXBzLCBBUlJBWV9TSVpFKGp6NDc2MF9pMmMxX2dyb3VwcyksIH0sCisJeyAiY2ltIiwgano0NzYwX2NpbV9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX2NpbV9ncm91cHMpLCB9LAorCXsgImxjZCIsIGp6NDc2MF9sY2RfZ3JvdXBzLCBBUlJBWV9TSVpFKGp6NDc2MF9sY2RfZ3JvdXBzKSwgfSwKKwl7ICJwd20wIiwgano0NzYwX3B3bTBfZ3JvdXBzLCBBUlJBWV9TSVpFKGp6NDc2MF9wd20wX2dyb3VwcyksIH0sCisJeyAicHdtMSIsIGp6NDc2MF9wd20xX2dyb3VwcywgQVJSQVlfU0laRShqejQ3NjBfcHdtMV9ncm91cHMpLCB9LAorCXsgInB3bTIiLCBqejQ3NjBfcHdtMl9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX3B3bTJfZ3JvdXBzKSwgfSwKKwl7ICJwd20zIiwgano0NzYwX3B3bTNfZ3JvdXBzLCBBUlJBWV9TSVpFKGp6NDc2MF9wd20zX2dyb3VwcyksIH0sCisJeyAicHdtNCIsIGp6NDc2MF9wd200X2dyb3VwcywgQVJSQVlfU0laRShqejQ3NjBfcHdtNF9ncm91cHMpLCB9LAorCXsgInB3bTUiLCBqejQ3NjBfcHdtNV9ncm91cHMsIEFSUkFZX1NJWkUoano0NzYwX3B3bTVfZ3JvdXBzKSwgfSwKKwl7ICJwd202Iiwgano0NzYwX3B3bTZfZ3JvdXBzLCBBUlJBWV9TSVpFKGp6NDc2MF9wd202X2dyb3VwcyksIH0sCisJeyAicHdtNyIsIGp6NDc2MF9wd203X2dyb3VwcywgQVJSQVlfU0laRShqejQ3NjBfcHdtN19ncm91cHMpLCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbmdlbmljX2NoaXBfaW5mbyBqejQ3NjBfY2hpcF9pbmZvID0geworCS5udW1fY2hpcHMgPSA2LAorCS5ncm91cHMgPSBqejQ3NjBfZ3JvdXBzLAorCS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRShqejQ3NjBfZ3JvdXBzKSwKKwkuZnVuY3Rpb25zID0gano0NzYwX2Z1bmN0aW9ucywKKwkubnVtX2Z1bmN0aW9ucyA9IEFSUkFZX1NJWkUoano0NzYwX2Z1bmN0aW9ucyksCisJLnB1bGxfdXBzID0gano0NzYwX3B1bGxfdXBzLAorCS5wdWxsX2Rvd25zID0gano0NzYwX3B1bGxfZG93bnMsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGluZ2VuaWNfY2hpcF9pbmZvIGp6NDc2MGJfY2hpcF9pbmZvID0geworCS5udW1fY2hpcHMgPSA2LAorCS5ncm91cHMgPSBqejQ3NjBfZ3JvdXBzLAorCS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRShqejQ3NjBfZ3JvdXBzKSwKKwkuZnVuY3Rpb25zID0gano0NzYwX2Z1bmN0aW9ucywKKwkubnVtX2Z1bmN0aW9ucyA9IEFSUkFZX1NJWkUoano0NzYwX2Z1bmN0aW9ucyksCisJLnB1bGxfdXBzID0gano0NzYwX3B1bGxfdXBzLAorCS5wdWxsX2Rvd25zID0gano0NzYwX3B1bGxfZG93bnMsCit9OworCiBzdGF0aWMgY29uc3QgdTMyIGp6NDc3MF9wdWxsX3Vwc1s2XSA9IHsKIAkweDNmZmZmZmZmLCAweGZmZjAwMzBjLCAweGZmZmZmZmZmLCAweGZmZmY0ZmZmLCAweGZmZmZmYjdjLCAweGZmYTdmMDBmLAogfTsKQEAgLTc0NCw2ICsxMDE2LDMyMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGluZ2VuaWNfY2hpcF9pbmZvIGp6NDc4MF9jaGlwX2luZm8gPSB7CiAJLnB1bGxfZG93bnMgPSBqejQ3NzBfcHVsbF9kb3ducywKIH07CiAKK3N0YXRpYyBjb25zdCB1MzIgeDEwMDBfcHVsbF91cHNbNF0gPSB7CisJMHhmZmZmZmZmZiwgMHg4ZGZmZmZmZiwgMHg3ZDNmZmZmZiwgMHhmZmZmZmZmZiwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgeDEwMDBfcHVsbF9kb3duc1s0XSA9IHsKKwkweDAwMDAwMDAwLCAweDAyMDAwMDAwLCAweDAyMDAwMDAwLCAweDAwMDAwMDAwLAorfTsKKworc3RhdGljIGludCB4MTAwMF91YXJ0MF9kYXRhX3BpbnNbXSA9IHsgMHg0YSwgMHg0YiwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfdWFydDBfaHdmbG93X3BpbnNbXSA9IHsgMHg0YywgMHg0ZCwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfdWFydDFfZGF0YV9hX3BpbnNbXSA9IHsgMHgwNCwgMHgwNSwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfdWFydDFfZGF0YV9kX3BpbnNbXSA9IHsgMHg2MiwgMHg2MywgfTsKK3N0YXRpYyBpbnQgeDEwMDBfdWFydDFfaHdmbG93X2RfcGluc1tdID0geyAweDY0LCAweDY1LCB9Oworc3RhdGljIGludCB4MTAwMF91YXJ0Ml9kYXRhX2FfcGluc1tdID0geyAweDAyLCAweDAzLCB9Oworc3RhdGljIGludCB4MTAwMF91YXJ0Ml9kYXRhX2RfcGluc1tdID0geyAweDY1LCAweDY0LCB9Oworc3RhdGljIGludCB4MTAwMF9tbWMwXzFiaXRfcGluc1tdID0geyAweDE4LCAweDE5LCAweDE3LCB9Oworc3RhdGljIGludCB4MTAwMF9tbWMwXzRiaXRfcGluc1tdID0geyAweDE2LCAweDE1LCAweDE0LCB9Oworc3RhdGljIGludCB4MTAwMF9tbWMwXzhiaXRfcGluc1tdID0geyAweDEzLCAweDEyLCAweDExLCAweDEwLCB9Oworc3RhdGljIGludCB4MTAwMF9tbWMxXzFiaXRfcGluc1tdID0geyAweDQwLCAweDQxLCAweDQyLCB9Oworc3RhdGljIGludCB4MTAwMF9tbWMxXzRiaXRfcGluc1tdID0geyAweDQzLCAweDQ0LCAweDQ1LCB9Oworc3RhdGljIGludCB4MTAwMF9uZW1jXzhiaXRfZGF0YV9waW5zW10gPSB7CisJMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKK307CitzdGF0aWMgaW50IHgxMDAwX25lbWNfMTZiaXRfZGF0YV9waW5zW10gPSB7CisJMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwgMHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKK307CitzdGF0aWMgaW50IHgxMDAwX25lbWNfYWRkcl9waW5zW10gPSB7CisJMHgyMCwgMHgyMSwgMHgyMiwgMHgyMywgMHgyNCwgMHgyNSwgMHgyNiwgMHgyNywKKwkweDI4LCAweDI5LCAweDJhLCAweDJiLCAweDJjLCAweDJkLCAweDJlLCAweDJmLAorfTsKK3N0YXRpYyBpbnQgeDEwMDBfbmVtY19yZF93ZV9waW5zW10gPSB7IDB4MzAsIDB4MzEsIH07CitzdGF0aWMgaW50IHgxMDAwX25lbWNfd2FpdF9waW5zW10gPSB7IDB4MzQsIH07CitzdGF0aWMgaW50IHgxMDAwX25lbWNfY3MxX3BpbnNbXSA9IHsgMHgzMiwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfbmVtY19jczJfcGluc1tdID0geyAweDMzLCB9Oworc3RhdGljIGludCB4MTAwMF9pMmMwX3BpbnNbXSA9IHsgMHgzOCwgMHgzNywgfTsKK3N0YXRpYyBpbnQgeDEwMDBfaTJjMV9hX3BpbnNbXSA9IHsgMHgwMSwgMHgwMCwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfaTJjMV9jX3BpbnNbXSA9IHsgMHg1YiwgMHg1YSwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfaTJjMl9waW5zW10gPSB7IDB4NjEsIDB4NjAsIH07CitzdGF0aWMgaW50IHgxMDAwX2NpbV9waW5zW10gPSB7CisJMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwKKwkweDEzLCAweDEyLCAweDExLCAweDEwLCAweDBmLCAweDBlLCAweDBkLCAweDBjLAorfTsKK3N0YXRpYyBpbnQgeDEwMDBfbGNkXzhiaXRfcGluc1tdID0geworCTB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCisJMHgzMCwgMHgzMSwgMHgzMiwgMHgzMywgMHgzNCwKK307CitzdGF0aWMgaW50IHgxMDAwX2xjZF8xNmJpdF9waW5zW10gPSB7CisJMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwgMHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKK307CitzdGF0aWMgaW50IHgxMDAwX3B3bV9wd20wX3BpbnNbXSA9IHsgMHg1OSwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfcHdtX3B3bTFfcGluc1tdID0geyAweDVhLCB9Oworc3RhdGljIGludCB4MTAwMF9wd21fcHdtMl9waW5zW10gPSB7IDB4NWIsIH07CitzdGF0aWMgaW50IHgxMDAwX3B3bV9wd20zX3BpbnNbXSA9IHsgMHgyNiwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfcHdtX3B3bTRfcGluc1tdID0geyAweDU4LCB9Oworc3RhdGljIGludCB4MTAwMF9tYWNfcGluc1tdID0geworCTB4MjcsIDB4MjgsIDB4MjksIDB4MmEsIDB4MmIsIDB4MmMsIDB4MmQsIDB4MmUsIDB4MmYsIDB4MjYsCit9OworCitzdGF0aWMgaW50IHgxMDAwX3VhcnQwX2RhdGFfZnVuY3NbXSA9IHsgMCwgMCwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfdWFydDBfaHdmbG93X2Z1bmNzW10gPSB7IDAsIDAsIH07CitzdGF0aWMgaW50IHgxMDAwX3VhcnQxX2RhdGFfYV9mdW5jc1tdID0geyAyLCAyLCB9Oworc3RhdGljIGludCB4MTAwMF91YXJ0MV9kYXRhX2RfZnVuY3NbXSA9IHsgMSwgMSwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfdWFydDFfaHdmbG93X2RfZnVuY3NbXSA9IHsgMSwgMSwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfdWFydDJfZGF0YV9hX2Z1bmNzW10gPSB7IDIsIDIsIH07CitzdGF0aWMgaW50IHgxMDAwX3VhcnQyX2RhdGFfZF9mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCB4MTAwMF9tbWMwXzFiaXRfZnVuY3NbXSA9IHsgMSwgMSwgMSwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfbW1jMF80Yml0X2Z1bmNzW10gPSB7IDEsIDEsIDEsIH07CitzdGF0aWMgaW50IHgxMDAwX21tYzBfOGJpdF9mdW5jc1tdID0geyAxLCAxLCAxLCAxLCAxLCB9Oworc3RhdGljIGludCB4MTAwMF9tbWMxXzFiaXRfZnVuY3NbXSA9IHsgMCwgMCwgMCwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfbW1jMV80Yml0X2Z1bmNzW10gPSB7IDAsIDAsIDAsIH07CitzdGF0aWMgaW50IHgxMDAwX25lbWNfOGJpdF9kYXRhX2Z1bmNzW10gPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIH07CitzdGF0aWMgaW50IHgxMDAwX25lbWNfMTZiaXRfZGF0YV9mdW5jc1tdID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCB9Oworc3RhdGljIGludCB4MTAwMF9uZW1jX2FkZHJfZnVuY3NbXSA9IHsKKwkwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorfTsKK3N0YXRpYyBpbnQgeDEwMDBfbmVtY19yZF93ZV9mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCB4MTAwMF9uZW1jX3dhaXRfZnVuY3NbXSA9IHsgMCwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfbmVtY19jczFfZnVuY3NbXSA9IHsgMCwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfbmVtY19jczJfZnVuY3NbXSA9IHsgMCwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfaTJjMF9mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCB4MTAwMF9pMmMxX2FfZnVuY3NbXSA9IHsgMiwgMiwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfaTJjMV9jX2Z1bmNzW10gPSB7IDAsIDAsIH07CitzdGF0aWMgaW50IHgxMDAwX2kyYzJfZnVuY3NbXSA9IHsgMSwgMSwgfTsKK3N0YXRpYyBpbnQgeDEwMDBfY2ltX2Z1bmNzW10gPSB7IDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIH07CitzdGF0aWMgaW50IHgxMDAwX2xjZF84Yml0X2Z1bmNzW10gPSB7CisJMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKK307CitzdGF0aWMgaW50IHgxMDAwX2xjZF8xNmJpdF9mdW5jc1tdID0geyAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCB9Oworc3RhdGljIGludCB4MTAwMF9wd21fcHdtMF9mdW5jc1tdID0geyAwLCB9Oworc3RhdGljIGludCB4MTAwMF9wd21fcHdtMV9mdW5jc1tdID0geyAxLCB9Oworc3RhdGljIGludCB4MTAwMF9wd21fcHdtMl9mdW5jc1tdID0geyAxLCB9Oworc3RhdGljIGludCB4MTAwMF9wd21fcHdtM19mdW5jc1tdID0geyAyLCB9Oworc3RhdGljIGludCB4MTAwMF9wd21fcHdtNF9mdW5jc1tdID0geyAwLCB9Oworc3RhdGljIGludCB4MTAwMF9tYWNfZnVuY3NbXSA9IHsgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBncm91cF9kZXNjIHgxMDAwX2dyb3Vwc1tdID0geworCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0MC1kYXRhIiwgeDEwMDBfdWFydDBfZGF0YSksCisJSU5HRU5JQ19QSU5fR1JPVVAoInVhcnQwLWh3ZmxvdyIsIHgxMDAwX3VhcnQwX2h3ZmxvdyksCisJSU5HRU5JQ19QSU5fR1JPVVAoInVhcnQxLWRhdGEtYSIsIHgxMDAwX3VhcnQxX2RhdGFfYSksCisJSU5HRU5JQ19QSU5fR1JPVVAoInVhcnQxLWRhdGEtZCIsIHgxMDAwX3VhcnQxX2RhdGFfZCksCisJSU5HRU5JQ19QSU5fR1JPVVAoInVhcnQxLWh3Zmxvdy1kIiwgeDEwMDBfdWFydDFfaHdmbG93X2QpLAorCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0Mi1kYXRhLWEiLCB4MTAwMF91YXJ0Ml9kYXRhX2EpLAorCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0Mi1kYXRhLWQiLCB4MTAwMF91YXJ0Ml9kYXRhX2QpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMwLTFiaXQiLCB4MTAwMF9tbWMwXzFiaXQpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMwLTRiaXQiLCB4MTAwMF9tbWMwXzRiaXQpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMwLThiaXQiLCB4MTAwMF9tbWMwXzhiaXQpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMxLTFiaXQiLCB4MTAwMF9tbWMxXzFiaXQpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtbWMxLTRiaXQiLCB4MTAwMF9tbWMxXzRiaXQpLAorCUlOR0VOSUNfUElOX0dST1VQKCJuZW1jLThiaXQtZGF0YSIsIHgxMDAwX25lbWNfOGJpdF9kYXRhKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibmVtYy0xNmJpdC1kYXRhIiwgeDEwMDBfbmVtY18xNmJpdF9kYXRhKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibmVtYy1hZGRyIiwgeDEwMDBfbmVtY19hZGRyKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibmVtYy1yZC13ZSIsIHgxMDAwX25lbWNfcmRfd2UpLAorCUlOR0VOSUNfUElOX0dST1VQKCJuZW1jLXdhaXQiLCB4MTAwMF9uZW1jX3dhaXQpLAorCUlOR0VOSUNfUElOX0dST1VQKCJuZW1jLWNzMSIsIHgxMDAwX25lbWNfY3MxKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibmVtYy1jczIiLCB4MTAwMF9uZW1jX2NzMiksCisJSU5HRU5JQ19QSU5fR1JPVVAoImkyYzAtZGF0YSIsIHgxMDAwX2kyYzApLAorCUlOR0VOSUNfUElOX0dST1VQKCJpMmMxLWRhdGEtYSIsIHgxMDAwX2kyYzFfYSksCisJSU5HRU5JQ19QSU5fR1JPVVAoImkyYzEtZGF0YS1jIiwgeDEwMDBfaTJjMV9jKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgiaTJjMi1kYXRhIiwgeDEwMDBfaTJjMiksCisJSU5HRU5JQ19QSU5fR1JPVVAoImNpbS1kYXRhIiwgeDEwMDBfY2ltKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibGNkLThiaXQiLCB4MTAwMF9sY2RfOGJpdCksCisJSU5HRU5JQ19QSU5fR1JPVVAoImxjZC0xNmJpdCIsIHgxMDAwX2xjZF8xNmJpdCksCisJeyAibGNkLW5vLXBpbnMiLCB9LAorCUlOR0VOSUNfUElOX0dST1VQKCJwd20wIiwgeDEwMDBfcHdtX3B3bTApLAorCUlOR0VOSUNfUElOX0dST1VQKCJwd20xIiwgeDEwMDBfcHdtX3B3bTEpLAorCUlOR0VOSUNfUElOX0dST1VQKCJwd20yIiwgeDEwMDBfcHdtX3B3bTIpLAorCUlOR0VOSUNfUElOX0dST1VQKCJwd20zIiwgeDEwMDBfcHdtX3B3bTMpLAorCUlOR0VOSUNfUElOX0dST1VQKCJwd200IiwgeDEwMDBfcHdtX3B3bTQpLAorCUlOR0VOSUNfUElOX0dST1VQKCJtYWMiLCB4MTAwMF9tYWMpLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKngxMDAwX3VhcnQwX2dyb3Vwc1tdID0geyAidWFydDAtZGF0YSIsICJ1YXJ0MC1od2Zsb3ciLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxMDAwX3VhcnQxX2dyb3Vwc1tdID0geworCSJ1YXJ0MS1kYXRhLWEiLCAidWFydDEtZGF0YS1kIiwgInVhcnQxLWh3Zmxvdy1kIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqeDEwMDBfdWFydDJfZ3JvdXBzW10gPSB7ICJ1YXJ0Mi1kYXRhLWEiLCAidWFydDItZGF0YS1kIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICp4MTAwMF9tbWMwX2dyb3Vwc1tdID0geworCSJtbWMwLTFiaXQiLCAibW1jMC00Yml0IiwgIm1tYzAtOGJpdCIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxMDAwX21tYzFfZ3JvdXBzW10gPSB7CisJIm1tYzEtMWJpdC1lIiwgIm1tYzEtNGJpdC1lIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqeDEwMDBfbmVtY19ncm91cHNbXSA9IHsKKwkibmVtYy04Yml0LWRhdGEiLCAibmVtYy0xNmJpdC1kYXRhIiwKKwkibmVtYy1hZGRyIiwgIm5lbWMtcmQtd2UiLCAibmVtYy13YWl0IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqeDEwMDBfY3MxX2dyb3Vwc1tdID0geyAibmVtYy1jczEiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxMDAwX2NzMl9ncm91cHNbXSA9IHsgIm5lbWMtY3MyIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICp4MTAwMF9pMmMwX2dyb3Vwc1tdID0geyAiaTJjMC1kYXRhIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICp4MTAwMF9pMmMxX2dyb3Vwc1tdID0geyAiaTJjMS1kYXRhLWEiLCAiaTJjMS1kYXRhLWMiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxMDAwX2kyYzJfZ3JvdXBzW10gPSB7ICJpMmMyLWRhdGEiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxMDAwX2NpbV9ncm91cHNbXSA9IHsgImNpbS1kYXRhIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICp4MTAwMF9sY2RfZ3JvdXBzW10gPSB7CisJImxjZC04Yml0IiwgImxjZC0xNmJpdCIsICJsY2Qtbm8tcGlucyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxMDAwX3B3bTBfZ3JvdXBzW10gPSB7ICJwd20wIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICp4MTAwMF9wd20xX2dyb3Vwc1tdID0geyAicHdtMSIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqeDEwMDBfcHdtMl9ncm91cHNbXSA9IHsgInB3bTIiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxMDAwX3B3bTNfZ3JvdXBzW10gPSB7ICJwd20zIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICp4MTAwMF9wd200X2dyb3Vwc1tdID0geyAicHdtNCIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqeDEwMDBfbWFjX2dyb3Vwc1tdID0geyAibWFjIiwgfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmdW5jdGlvbl9kZXNjIHgxMDAwX2Z1bmN0aW9uc1tdID0geworCXsgInVhcnQwIiwgeDEwMDBfdWFydDBfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxMDAwX3VhcnQwX2dyb3VwcyksIH0sCisJeyAidWFydDEiLCB4MTAwMF91YXJ0MV9ncm91cHMsIEFSUkFZX1NJWkUoeDEwMDBfdWFydDFfZ3JvdXBzKSwgfSwKKwl7ICJ1YXJ0MiIsIHgxMDAwX3VhcnQyX2dyb3VwcywgQVJSQVlfU0laRSh4MTAwMF91YXJ0Ml9ncm91cHMpLCB9LAorCXsgIm1tYzAiLCB4MTAwMF9tbWMwX2dyb3VwcywgQVJSQVlfU0laRSh4MTAwMF9tbWMwX2dyb3VwcyksIH0sCisJeyAibW1jMSIsIHgxMDAwX21tYzFfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxMDAwX21tYzFfZ3JvdXBzKSwgfSwKKwl7ICJuZW1jIiwgeDEwMDBfbmVtY19ncm91cHMsIEFSUkFZX1NJWkUoeDEwMDBfbmVtY19ncm91cHMpLCB9LAorCXsgIm5lbWMtY3MxIiwgeDEwMDBfY3MxX2dyb3VwcywgQVJSQVlfU0laRSh4MTAwMF9jczFfZ3JvdXBzKSwgfSwKKwl7ICJuZW1jLWNzMiIsIHgxMDAwX2NzMl9ncm91cHMsIEFSUkFZX1NJWkUoeDEwMDBfY3MyX2dyb3VwcyksIH0sCisJeyAiaTJjMCIsIHgxMDAwX2kyYzBfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxMDAwX2kyYzBfZ3JvdXBzKSwgfSwKKwl7ICJpMmMxIiwgeDEwMDBfaTJjMV9ncm91cHMsIEFSUkFZX1NJWkUoeDEwMDBfaTJjMV9ncm91cHMpLCB9LAorCXsgImkyYzIiLCB4MTAwMF9pMmMyX2dyb3VwcywgQVJSQVlfU0laRSh4MTAwMF9pMmMyX2dyb3VwcyksIH0sCisJeyAiY2ltIiwgeDEwMDBfY2ltX2dyb3VwcywgQVJSQVlfU0laRSh4MTAwMF9jaW1fZ3JvdXBzKSwgfSwKKwl7ICJsY2QiLCB4MTAwMF9sY2RfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxMDAwX2xjZF9ncm91cHMpLCB9LAorCXsgInB3bTAiLCB4MTAwMF9wd20wX2dyb3VwcywgQVJSQVlfU0laRSh4MTAwMF9wd20wX2dyb3VwcyksIH0sCisJeyAicHdtMSIsIHgxMDAwX3B3bTFfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxMDAwX3B3bTFfZ3JvdXBzKSwgfSwKKwl7ICJwd20yIiwgeDEwMDBfcHdtMl9ncm91cHMsIEFSUkFZX1NJWkUoeDEwMDBfcHdtMl9ncm91cHMpLCB9LAorCXsgInB3bTMiLCB4MTAwMF9wd20zX2dyb3VwcywgQVJSQVlfU0laRSh4MTAwMF9wd20zX2dyb3VwcyksIH0sCisJeyAicHdtNCIsIHgxMDAwX3B3bTRfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxMDAwX3B3bTRfZ3JvdXBzKSwgfSwKKwl7ICJtYWMiLCB4MTAwMF9tYWNfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxMDAwX21hY19ncm91cHMpLCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbmdlbmljX2NoaXBfaW5mbyB4MTAwMF9jaGlwX2luZm8gPSB7CisJLm51bV9jaGlwcyA9IDQsCisJLmdyb3VwcyA9IHgxMDAwX2dyb3VwcywKKwkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUoeDEwMDBfZ3JvdXBzKSwKKwkuZnVuY3Rpb25zID0geDEwMDBfZnVuY3Rpb25zLAorCS5udW1fZnVuY3Rpb25zID0gQVJSQVlfU0laRSh4MTAwMF9mdW5jdGlvbnMpLAorCS5wdWxsX3VwcyA9IHgxMDAwX3B1bGxfdXBzLAorCS5wdWxsX2Rvd25zID0geDEwMDBfcHVsbF9kb3ducywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW5nZW5pY19jaGlwX2luZm8geDEwMDBlX2NoaXBfaW5mbyA9IHsKKwkubnVtX2NoaXBzID0gNCwKKwkuZ3JvdXBzID0geDEwMDBfZ3JvdXBzLAorCS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRSh4MTAwMF9ncm91cHMpLAorCS5mdW5jdGlvbnMgPSB4MTAwMF9mdW5jdGlvbnMsCisJLm51bV9mdW5jdGlvbnMgPSBBUlJBWV9TSVpFKHgxMDAwX2Z1bmN0aW9ucyksCisJLnB1bGxfdXBzID0geDEwMDBfcHVsbF91cHMsCisJLnB1bGxfZG93bnMgPSB4MTAwMF9wdWxsX2Rvd25zLAorfTsKKworc3RhdGljIGludCB4MTUwMF91YXJ0MF9kYXRhX3BpbnNbXSA9IHsgMHg0YSwgMHg0YiwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfdWFydDBfaHdmbG93X3BpbnNbXSA9IHsgMHg0YywgMHg0ZCwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfdWFydDFfZGF0YV9hX3BpbnNbXSA9IHsgMHgwNCwgMHgwNSwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfdWFydDFfZGF0YV9kX3BpbnNbXSA9IHsgMHg2MiwgMHg2MywgfTsKK3N0YXRpYyBpbnQgeDE1MDBfdWFydDFfaHdmbG93X2RfcGluc1tdID0geyAweDY0LCAweDY1LCB9Oworc3RhdGljIGludCB4MTUwMF91YXJ0Ml9kYXRhX2FfcGluc1tdID0geyAweDAyLCAweDAzLCB9Oworc3RhdGljIGludCB4MTUwMF91YXJ0Ml9kYXRhX2RfcGluc1tdID0geyAweDY1LCAweDY0LCB9Oworc3RhdGljIGludCB4MTUwMF9tbWMwXzFiaXRfcGluc1tdID0geyAweDE4LCAweDE5LCAweDE3LCB9Oworc3RhdGljIGludCB4MTUwMF9tbWMwXzRiaXRfcGluc1tdID0geyAweDE2LCAweDE1LCAweDE0LCB9Oworc3RhdGljIGludCB4MTUwMF9pMmMwX3BpbnNbXSA9IHsgMHgzOCwgMHgzNywgfTsKK3N0YXRpYyBpbnQgeDE1MDBfaTJjMV9hX3BpbnNbXSA9IHsgMHgwMSwgMHgwMCwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfaTJjMV9jX3BpbnNbXSA9IHsgMHg1YiwgMHg1YSwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfaTJjMl9waW5zW10gPSB7IDB4NjEsIDB4NjAsIH07CitzdGF0aWMgaW50IHgxNTAwX2NpbV9waW5zW10gPSB7CisJMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwKKwkweDEzLCAweDEyLCAweDExLCAweDEwLCAweDBmLCAweDBlLCAweDBkLCAweDBjLAorfTsKK3N0YXRpYyBpbnQgeDE1MDBfcHdtX3B3bTBfcGluc1tdID0geyAweDU5LCB9Oworc3RhdGljIGludCB4MTUwMF9wd21fcHdtMV9waW5zW10gPSB7IDB4NWEsIH07CitzdGF0aWMgaW50IHgxNTAwX3B3bV9wd20yX3BpbnNbXSA9IHsgMHg1YiwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfcHdtX3B3bTNfcGluc1tdID0geyAweDI2LCB9Oworc3RhdGljIGludCB4MTUwMF9wd21fcHdtNF9waW5zW10gPSB7IDB4NTgsIH07CisKK3N0YXRpYyBpbnQgeDE1MDBfdWFydDBfZGF0YV9mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCB4MTUwMF91YXJ0MF9od2Zsb3dfZnVuY3NbXSA9IHsgMCwgMCwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfdWFydDFfZGF0YV9hX2Z1bmNzW10gPSB7IDIsIDIsIH07CitzdGF0aWMgaW50IHgxNTAwX3VhcnQxX2RhdGFfZF9mdW5jc1tdID0geyAxLCAxLCB9Oworc3RhdGljIGludCB4MTUwMF91YXJ0MV9od2Zsb3dfZF9mdW5jc1tdID0geyAxLCAxLCB9Oworc3RhdGljIGludCB4MTUwMF91YXJ0Ml9kYXRhX2FfZnVuY3NbXSA9IHsgMiwgMiwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfdWFydDJfZGF0YV9kX2Z1bmNzW10gPSB7IDAsIDAsIH07CitzdGF0aWMgaW50IHgxNTAwX21tYzBfMWJpdF9mdW5jc1tdID0geyAxLCAxLCAxLCB9Oworc3RhdGljIGludCB4MTUwMF9tbWMwXzRiaXRfZnVuY3NbXSA9IHsgMSwgMSwgMSwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfaTJjMF9mdW5jc1tdID0geyAwLCAwLCB9Oworc3RhdGljIGludCB4MTUwMF9pMmMxX2FfZnVuY3NbXSA9IHsgMiwgMiwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfaTJjMV9jX2Z1bmNzW10gPSB7IDAsIDAsIH07CitzdGF0aWMgaW50IHgxNTAwX2kyYzJfZnVuY3NbXSA9IHsgMSwgMSwgfTsKK3N0YXRpYyBpbnQgeDE1MDBfY2ltX2Z1bmNzW10gPSB7IDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIH07CitzdGF0aWMgaW50IHgxNTAwX3B3bV9wd20wX2Z1bmNzW10gPSB7IDAsIH07CitzdGF0aWMgaW50IHgxNTAwX3B3bV9wd20xX2Z1bmNzW10gPSB7IDEsIH07CitzdGF0aWMgaW50IHgxNTAwX3B3bV9wd20yX2Z1bmNzW10gPSB7IDEsIH07CitzdGF0aWMgaW50IHgxNTAwX3B3bV9wd20zX2Z1bmNzW10gPSB7IDIsIH07CitzdGF0aWMgaW50IHgxNTAwX3B3bV9wd200X2Z1bmNzW10gPSB7IDAsIH07CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ3JvdXBfZGVzYyB4MTUwMF9ncm91cHNbXSA9IHsKKwlJTkdFTklDX1BJTl9HUk9VUCgidWFydDAtZGF0YSIsIHgxNTAwX3VhcnQwX2RhdGEpLAorCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0MC1od2Zsb3ciLCB4MTUwMF91YXJ0MF9od2Zsb3cpLAorCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0MS1kYXRhLWEiLCB4MTUwMF91YXJ0MV9kYXRhX2EpLAorCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0MS1kYXRhLWQiLCB4MTUwMF91YXJ0MV9kYXRhX2QpLAorCUlOR0VOSUNfUElOX0dST1VQKCJ1YXJ0MS1od2Zsb3ctZCIsIHgxNTAwX3VhcnQxX2h3Zmxvd19kKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgidWFydDItZGF0YS1hIiwgeDE1MDBfdWFydDJfZGF0YV9hKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgidWFydDItZGF0YS1kIiwgeDE1MDBfdWFydDJfZGF0YV9kKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibW1jMC0xYml0IiwgeDE1MDBfbW1jMF8xYml0KSwKKwlJTkdFTklDX1BJTl9HUk9VUCgibW1jMC00Yml0IiwgeDE1MDBfbW1jMF80Yml0KSwKKwlJTkdFTklDX1BJTl9HUk9VUCgiaTJjMC1kYXRhIiwgeDE1MDBfaTJjMCksCisJSU5HRU5JQ19QSU5fR1JPVVAoImkyYzEtZGF0YS1hIiwgeDE1MDBfaTJjMV9hKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgiaTJjMS1kYXRhLWMiLCB4MTUwMF9pMmMxX2MpLAorCUlOR0VOSUNfUElOX0dST1VQKCJpMmMyLWRhdGEiLCB4MTUwMF9pMmMyKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgiY2ltLWRhdGEiLCB4MTUwMF9jaW0pLAorCXsgImxjZC1uby1waW5zIiwgfSwKKwlJTkdFTklDX1BJTl9HUk9VUCgicHdtMCIsIHgxNTAwX3B3bV9wd20wKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgicHdtMSIsIHgxNTAwX3B3bV9wd20xKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgicHdtMiIsIHgxNTAwX3B3bV9wd20yKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgicHdtMyIsIHgxNTAwX3B3bV9wd20zKSwKKwlJTkdFTklDX1BJTl9HUk9VUCgicHdtNCIsIHgxNTAwX3B3bV9wd200KSwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICp4MTUwMF91YXJ0MF9ncm91cHNbXSA9IHsgInVhcnQwLWRhdGEiLCAidWFydDAtaHdmbG93IiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICp4MTUwMF91YXJ0MV9ncm91cHNbXSA9IHsKKwkidWFydDEtZGF0YS1hIiwgInVhcnQxLWRhdGEtZCIsICJ1YXJ0MS1od2Zsb3ctZCIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxNTAwX3VhcnQyX2dyb3Vwc1tdID0geyAidWFydDItZGF0YS1hIiwgInVhcnQyLWRhdGEtZCIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqeDE1MDBfbW1jMF9ncm91cHNbXSA9IHsgIm1tYzAtMWJpdCIsICJtbWMwLTRiaXQiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxNTAwX2kyYzBfZ3JvdXBzW10gPSB7ICJpMmMwLWRhdGEiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxNTAwX2kyYzFfZ3JvdXBzW10gPSB7ICJpMmMxLWRhdGEtYSIsICJpMmMxLWRhdGEtYyIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqeDE1MDBfaTJjMl9ncm91cHNbXSA9IHsgImkyYzItZGF0YSIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqeDE1MDBfY2ltX2dyb3Vwc1tdID0geyAiY2ltLWRhdGEiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxNTAwX2xjZF9ncm91cHNbXSA9IHsgImxjZC1uby1waW5zIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICp4MTUwMF9wd20wX2dyb3Vwc1tdID0geyAicHdtMCIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqeDE1MDBfcHdtMV9ncm91cHNbXSA9IHsgInB3bTEiLCB9Oworc3RhdGljIGNvbnN0IGNoYXIgKngxNTAwX3B3bTJfZ3JvdXBzW10gPSB7ICJwd20yIiwgfTsKK3N0YXRpYyBjb25zdCBjaGFyICp4MTUwMF9wd20zX2dyb3Vwc1tdID0geyAicHdtMyIsIH07CitzdGF0aWMgY29uc3QgY2hhciAqeDE1MDBfcHdtNF9ncm91cHNbXSA9IHsgInB3bTQiLCB9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZ1bmN0aW9uX2Rlc2MgeDE1MDBfZnVuY3Rpb25zW10gPSB7CisJeyAidWFydDAiLCB4MTUwMF91YXJ0MF9ncm91cHMsIEFSUkFZX1NJWkUoeDE1MDBfdWFydDBfZ3JvdXBzKSwgfSwKKwl7ICJ1YXJ0MSIsIHgxNTAwX3VhcnQxX2dyb3VwcywgQVJSQVlfU0laRSh4MTUwMF91YXJ0MV9ncm91cHMpLCB9LAorCXsgInVhcnQyIiwgeDE1MDBfdWFydDJfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxNTAwX3VhcnQyX2dyb3VwcyksIH0sCisJeyAibW1jMCIsIHgxNTAwX21tYzBfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxNTAwX21tYzBfZ3JvdXBzKSwgfSwKKwl7ICJpMmMwIiwgeDE1MDBfaTJjMF9ncm91cHMsIEFSUkFZX1NJWkUoeDE1MDBfaTJjMF9ncm91cHMpLCB9LAorCXsgImkyYzEiLCB4MTUwMF9pMmMxX2dyb3VwcywgQVJSQVlfU0laRSh4MTUwMF9pMmMxX2dyb3VwcyksIH0sCisJeyAiaTJjMiIsIHgxNTAwX2kyYzJfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxNTAwX2kyYzJfZ3JvdXBzKSwgfSwKKwl7ICJjaW0iLCB4MTUwMF9jaW1fZ3JvdXBzLCBBUlJBWV9TSVpFKHgxNTAwX2NpbV9ncm91cHMpLCB9LAorCXsgImxjZCIsIHgxNTAwX2xjZF9ncm91cHMsIEFSUkFZX1NJWkUoeDE1MDBfbGNkX2dyb3VwcyksIH0sCisJeyAicHdtMCIsIHgxNTAwX3B3bTBfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxNTAwX3B3bTBfZ3JvdXBzKSwgfSwKKwl7ICJwd20xIiwgeDE1MDBfcHdtMV9ncm91cHMsIEFSUkFZX1NJWkUoeDE1MDBfcHdtMV9ncm91cHMpLCB9LAorCXsgInB3bTIiLCB4MTUwMF9wd20yX2dyb3VwcywgQVJSQVlfU0laRSh4MTUwMF9wd20yX2dyb3VwcyksIH0sCisJeyAicHdtMyIsIHgxNTAwX3B3bTNfZ3JvdXBzLCBBUlJBWV9TSVpFKHgxNTAwX3B3bTNfZ3JvdXBzKSwgfSwKKwl7ICJwd200IiwgeDE1MDBfcHdtNF9ncm91cHMsIEFSUkFZX1NJWkUoeDE1MDBfcHdtNF9ncm91cHMpLCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbmdlbmljX2NoaXBfaW5mbyB4MTUwMF9jaGlwX2luZm8gPSB7CisJLm51bV9jaGlwcyA9IDQsCisJLmdyb3VwcyA9IHgxNTAwX2dyb3VwcywKKwkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUoeDE1MDBfZ3JvdXBzKSwKKwkuZnVuY3Rpb25zID0geDE1MDBfZnVuY3Rpb25zLAorCS5udW1fZnVuY3Rpb25zID0gQVJSQVlfU0laRSh4MTUwMF9mdW5jdGlvbnMpLAorCS5wdWxsX3VwcyA9IHgxMDAwX3B1bGxfdXBzLAorCS5wdWxsX2Rvd25zID0geDEwMDBfcHVsbF9kb3ducywKK307CisKIHN0YXRpYyB1MzIgaW5nZW5pY19ncGlvX3JlYWRfcmVnKHN0cnVjdCBpbmdlbmljX2dwaW9fY2hpcCAqanpnYywgdTggcmVnKQogewogCXVuc2lnbmVkIGludCB2YWw7CkBAIC03NjQsNiArMTM1MCwyMyBAQCBzdGF0aWMgdm9pZCBpbmdlbmljX2dwaW9fc2V0X2JpdChzdHJ1Y3QgaW5nZW5pY19ncGlvX2NoaXAgKmp6Z2MsCiAJcmVnbWFwX3dyaXRlKGp6Z2MtPmp6cGMtPm1hcCwganpnYy0+cmVnX2Jhc2UgKyByZWcsIEJJVChvZmZzZXQpKTsKIH0KIAorc3RhdGljIHZvaWQgaW5nZW5pY19ncGlvX3NoYWRvd19zZXRfYml0KHN0cnVjdCBpbmdlbmljX2dwaW9fY2hpcCAqanpnYywKKwkJdTggcmVnLCB1OCBvZmZzZXQsIGJvb2wgc2V0KQoreworCWlmIChzZXQpCisJCXJlZyA9IFJFR19TRVQocmVnKTsKKwllbHNlCisJCXJlZyA9IFJFR19DTEVBUihyZWcpOworCisJcmVnbWFwX3dyaXRlKGp6Z2MtPmp6cGMtPm1hcCwgWDEwMDBfR1BJT19QWl9CQVNFICsgcmVnLCBCSVQob2Zmc2V0KSk7Cit9CisKK3N0YXRpYyB2b2lkIGluZ2VuaWNfZ3Bpb19zaGFkb3dfc2V0X2JpdF9sb2FkKHN0cnVjdCBpbmdlbmljX2dwaW9fY2hpcCAqanpnYykKK3sKKwlyZWdtYXBfd3JpdGUoanpnYy0+anpwYy0+bWFwLCBYMTAwMF9HUElPX1BaX0dJRDJMRCwKKwkJCWp6Z2MtPmdjLmJhc2UgLyBQSU5TX1BFUl9HUElPX0NISVApOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgaW5nZW5pY19ncGlvX2dldF92YWx1ZShzdHJ1Y3QgaW5nZW5pY19ncGlvX2NoaXAgKmp6Z2MsCiAJCQkJCSAgdTggb2Zmc2V0KQogewpAQCAtNzc1LDggKzEzNzgsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaW5nZW5pY19ncGlvX2dldF92YWx1ZShzdHJ1Y3QgaW5nZW5pY19ncGlvX2NoaXAgKmp6Z2MsCiBzdGF0aWMgdm9pZCBpbmdlbmljX2dwaW9fc2V0X3ZhbHVlKHN0cnVjdCBpbmdlbmljX2dwaW9fY2hpcCAqanpnYywKIAkJCQkgICB1OCBvZmZzZXQsIGludCB2YWx1ZSkKIHsKLQlpZiAoanpnYy0+anpwYy0+dmVyc2lvbiA+PSBJRF9KWjQ3NzApCi0JCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIEpaNDc3MF9HUElPX1BBVDAsIG9mZnNldCwgISF2YWx1ZSk7CisJaWYgKGp6Z2MtPmp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzYwKQorCQlpbmdlbmljX2dwaW9fc2V0X2JpdChqemdjLCBKWjQ3NjBfR1BJT19QQVQwLCBvZmZzZXQsICEhdmFsdWUpOwogCWVsc2UKIAkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgSlo0NzQwX0dQSU9fREFUQSwgb2Zmc2V0LCAhIXZhbHVlKTsKIH0KQEAgLTc4Niw5ICsxMzg5LDkgQEAgc3RhdGljIHZvaWQgaXJxX3NldF90eXBlKHN0cnVjdCBpbmdlbmljX2dwaW9fY2hpcCAqanpnYywKIHsKIAl1OCByZWcxLCByZWcyOwogCi0JaWYgKGp6Z2MtPmp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzcwKSB7Ci0JCXJlZzEgPSBKWjQ3NzBfR1BJT19QQVQxOwotCQlyZWcyID0gSlo0NzcwX0dQSU9fUEFUMDsKKwlpZiAoanpnYy0+anpwYy0+dmVyc2lvbiA+PSBJRF9KWjQ3NjApIHsKKwkJcmVnMSA9IEpaNDc2MF9HUElPX1BBVDE7CisJCXJlZzIgPSBKWjQ3NjBfR1BJT19QQVQwOwogCX0gZWxzZSB7CiAJCXJlZzEgPSBKWjQ3NDBfR1BJT19UUklHOwogCQlyZWcyID0gSlo0NzQwX0dQSU9fRElSOwpAQCAtNzk2LDIxICsxMzk5LDQ1IEBAIHN0YXRpYyB2b2lkIGlycV9zZXRfdHlwZShzdHJ1Y3QgaW5nZW5pY19ncGlvX2NoaXAgKmp6Z2MsCiAKIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIElSUV9UWVBFX0VER0VfUklTSU5HOgotCQlpbmdlbmljX2dwaW9fc2V0X2JpdChqemdjLCByZWcyLCBvZmZzZXQsIHRydWUpOwotCQlpbmdlbmljX2dwaW9fc2V0X2JpdChqemdjLCByZWcxLCBvZmZzZXQsIHRydWUpOworCQlpZiAoanpnYy0+anpwYy0+dmVyc2lvbiA+PSBJRF9YMTAwMCkgeworCQkJaW5nZW5pY19ncGlvX3NoYWRvd19zZXRfYml0KGp6Z2MsIHJlZzIsIG9mZnNldCwgdHJ1ZSk7CisJCQlpbmdlbmljX2dwaW9fc2hhZG93X3NldF9iaXQoanpnYywgcmVnMSwgb2Zmc2V0LCB0cnVlKTsKKwkJCWluZ2VuaWNfZ3Bpb19zaGFkb3dfc2V0X2JpdF9sb2FkKGp6Z2MpOworCQl9IGVsc2UgeworCQkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgcmVnMiwgb2Zmc2V0LCB0cnVlKTsKKwkJCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIHJlZzEsIG9mZnNldCwgdHJ1ZSk7CisJCX0KIAkJYnJlYWs7CiAJY2FzZSBJUlFfVFlQRV9FREdFX0ZBTExJTkc6Ci0JCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIHJlZzIsIG9mZnNldCwgZmFsc2UpOwotCQlpbmdlbmljX2dwaW9fc2V0X2JpdChqemdjLCByZWcxLCBvZmZzZXQsIHRydWUpOworCQlpZiAoanpnYy0+anpwYy0+dmVyc2lvbiA+PSBJRF9YMTAwMCkgeworCQkJaW5nZW5pY19ncGlvX3NoYWRvd19zZXRfYml0KGp6Z2MsIHJlZzIsIG9mZnNldCwgZmFsc2UpOworCQkJaW5nZW5pY19ncGlvX3NoYWRvd19zZXRfYml0KGp6Z2MsIHJlZzEsIG9mZnNldCwgdHJ1ZSk7CisJCQlpbmdlbmljX2dwaW9fc2hhZG93X3NldF9iaXRfbG9hZChqemdjKTsKKwkJfSBlbHNlIHsKKwkJCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIHJlZzIsIG9mZnNldCwgZmFsc2UpOworCQkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgcmVnMSwgb2Zmc2V0LCB0cnVlKTsKKwkJfQogCQlicmVhazsKIAljYXNlIElSUV9UWVBFX0xFVkVMX0hJR0g6Ci0JCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIHJlZzIsIG9mZnNldCwgdHJ1ZSk7Ci0JCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIHJlZzEsIG9mZnNldCwgZmFsc2UpOworCQlpZiAoanpnYy0+anpwYy0+dmVyc2lvbiA+PSBJRF9YMTAwMCkgeworCQkJaW5nZW5pY19ncGlvX3NoYWRvd19zZXRfYml0KGp6Z2MsIHJlZzIsIG9mZnNldCwgdHJ1ZSk7CisJCQlpbmdlbmljX2dwaW9fc2hhZG93X3NldF9iaXQoanpnYywgcmVnMSwgb2Zmc2V0LCBmYWxzZSk7CisJCQlpbmdlbmljX2dwaW9fc2hhZG93X3NldF9iaXRfbG9hZChqemdjKTsKKwkJfSBlbHNlIHsKKwkJCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIHJlZzIsIG9mZnNldCwgdHJ1ZSk7CisJCQlpbmdlbmljX2dwaW9fc2V0X2JpdChqemdjLCByZWcxLCBvZmZzZXQsIGZhbHNlKTsKKwkJfQogCQlicmVhazsKIAljYXNlIElSUV9UWVBFX0xFVkVMX0xPVzoKIAlkZWZhdWx0OgotCQlpbmdlbmljX2dwaW9fc2V0X2JpdChqemdjLCByZWcyLCBvZmZzZXQsIGZhbHNlKTsKLQkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgcmVnMSwgb2Zmc2V0LCBmYWxzZSk7CisJCWlmIChqemdjLT5qenBjLT52ZXJzaW9uID49IElEX1gxMDAwKSB7CisJCQlpbmdlbmljX2dwaW9fc2hhZG93X3NldF9iaXQoanpnYywgcmVnMiwgb2Zmc2V0LCBmYWxzZSk7CisJCQlpbmdlbmljX2dwaW9fc2hhZG93X3NldF9iaXQoanpnYywgcmVnMSwgb2Zmc2V0LCBmYWxzZSk7CisJCQlpbmdlbmljX2dwaW9fc2hhZG93X3NldF9iaXRfbG9hZChqemdjKTsKKwkJfSBlbHNlIHsKKwkJCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIHJlZzIsIG9mZnNldCwgZmFsc2UpOworCQkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgcmVnMSwgb2Zmc2V0LCBmYWxzZSk7CisJCX0KIAkJYnJlYWs7CiAJfQogfQpAQCAtODM3LDggKzE0NjQsOCBAQCBzdGF0aWMgdm9pZCBpbmdlbmljX2dwaW9faXJxX2VuYWJsZShzdHJ1Y3QgaXJxX2RhdGEgKmlycWQpCiAJc3RydWN0IGluZ2VuaWNfZ3Bpb19jaGlwICpqemdjID0gZ3Bpb2NoaXBfZ2V0X2RhdGEoZ2MpOwogCWludCBpcnEgPSBpcnFkLT5od2lycTsKIAotCWlmIChqemdjLT5qenBjLT52ZXJzaW9uID49IElEX0paNDc3MCkKLQkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgSlo0NzcwX0dQSU9fSU5ULCBpcnEsIHRydWUpOworCWlmIChqemdjLT5qenBjLT52ZXJzaW9uID49IElEX0paNDc2MCkKKwkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgSlo0NzYwX0dQSU9fSU5ULCBpcnEsIHRydWUpOwogCWVsc2UKIAkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgSlo0NzQwX0dQSU9fU0VMRUNULCBpcnEsIHRydWUpOwogCkBAIC04NTMsOCArMTQ4MCw4IEBAIHN0YXRpYyB2b2lkIGluZ2VuaWNfZ3Bpb19pcnFfZGlzYWJsZShzdHJ1Y3QgaXJxX2RhdGEgKmlycWQpCiAKIAlpbmdlbmljX2dwaW9faXJxX21hc2soaXJxZCk7CiAKLQlpZiAoanpnYy0+anpwYy0+dmVyc2lvbiA+PSBJRF9KWjQ3NzApCi0JCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIEpaNDc3MF9HUElPX0lOVCwgaXJxLCBmYWxzZSk7CisJaWYgKGp6Z2MtPmp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzYwKQorCQlpbmdlbmljX2dwaW9fc2V0X2JpdChqemdjLCBKWjQ3NjBfR1BJT19JTlQsIGlycSwgZmFsc2UpOwogCWVsc2UKIAkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgSlo0NzQwX0dQSU9fU0VMRUNULCBpcnEsIGZhbHNlKTsKIH0KQEAgLTg3OCw4ICsxNTA1LDggQEAgc3RhdGljIHZvaWQgaW5nZW5pY19ncGlvX2lycV9hY2soc3RydWN0IGlycV9kYXRhICppcnFkKQogCQkJaXJxX3NldF90eXBlKGp6Z2MsIGlycSwgSVJRX1RZUEVfRURHRV9SSVNJTkcpOwogCX0KIAotCWlmIChqemdjLT5qenBjLT52ZXJzaW9uID49IElEX0paNDc3MCkKLQkJaW5nZW5pY19ncGlvX3NldF9iaXQoanpnYywgSlo0NzcwX0dQSU9fRkxBRywgaXJxLCBmYWxzZSk7CisJaWYgKGp6Z2MtPmp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzYwKQorCQlpbmdlbmljX2dwaW9fc2V0X2JpdChqemdjLCBKWjQ3NjBfR1BJT19GTEFHLCBpcnEsIGZhbHNlKTsKIAllbHNlCiAJCWluZ2VuaWNfZ3Bpb19zZXRfYml0KGp6Z2MsIEpaNDc0MF9HUElPX0RBVEEsIGlycSwgdHJ1ZSk7CiB9CkBAIC05MzUsOCArMTU2Miw4IEBAIHN0YXRpYyB2b2lkIGluZ2VuaWNfZ3Bpb19pcnFfaGFuZGxlcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCiAKIAljaGFpbmVkX2lycV9lbnRlcihpcnFfY2hpcCwgZGVzYyk7CiAKLQlpZiAoanpnYy0+anpwYy0+dmVyc2lvbiA+PSBJRF9KWjQ3NzApCi0JCWZsYWcgPSBpbmdlbmljX2dwaW9fcmVhZF9yZWcoanpnYywgSlo0NzcwX0dQSU9fRkxBRyk7CisJaWYgKGp6Z2MtPmp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzYwKQorCQlmbGFnID0gaW5nZW5pY19ncGlvX3JlYWRfcmVnKGp6Z2MsIEpaNDc2MF9HUElPX0ZMQUcpOwogCWVsc2UKIAkJZmxhZyA9IGluZ2VuaWNfZ3Bpb19yZWFkX3JlZyhqemdjLCBKWjQ3NDBfR1BJT19GTEFHKTsKIApAQCAtOTgzLDYgKzE2MTAsMjEgQEAgc3RhdGljIGlubGluZSB2b2lkIGluZ2VuaWNfY29uZmlnX3BpbihzdHJ1Y3QgaW5nZW5pY19waW5jdHJsICpqenBjLAogCQkJKHNldCA/IFJFR19TRVQocmVnKSA6IFJFR19DTEVBUihyZWcpKSwgQklUKGlkeCkpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgaW5nZW5pY19zaGFkb3dfY29uZmlnX3BpbihzdHJ1Y3QgaW5nZW5pY19waW5jdHJsICpqenBjLAorCQl1bnNpZ25lZCBpbnQgcGluLCB1OCByZWcsIGJvb2wgc2V0KQoreworCXVuc2lnbmVkIGludCBpZHggPSBwaW4gJSBQSU5TX1BFUl9HUElPX0NISVA7CisKKwlyZWdtYXBfd3JpdGUoanpwYy0+bWFwLCBYMTAwMF9HUElPX1BaX0JBU0UgKworCQkJKHNldCA/IFJFR19TRVQocmVnKSA6IFJFR19DTEVBUihyZWcpKSwgQklUKGlkeCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaW5nZW5pY19zaGFkb3dfY29uZmlnX3Bpbl9sb2FkKHN0cnVjdCBpbmdlbmljX3BpbmN0cmwgKmp6cGMsCisJCXVuc2lnbmVkIGludCBwaW4pCit7CisJcmVnbWFwX3dyaXRlKGp6cGMtPm1hcCwgWDEwMDBfR1BJT19QWl9HSUQyTEQsIHBpbiAvIFBJTlNfUEVSX0dQSU9fQ0hJUCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmdlbmljX2dldF9waW5fY29uZmlnKHN0cnVjdCBpbmdlbmljX3BpbmN0cmwgKmp6cGMsCiAJCXVuc2lnbmVkIGludCBwaW4sIHU4IHJlZykKIHsKQEAgLTEwMDEsOCArMTY0Myw4IEBAIHN0YXRpYyBpbnQgaW5nZW5pY19ncGlvX2dldF9kaXJlY3Rpb24oc3RydWN0IGdwaW9fY2hpcCAqZ2MsIHVuc2lnbmVkIGludCBvZmZzZXQpCiAJc3RydWN0IGluZ2VuaWNfcGluY3RybCAqanpwYyA9IGp6Z2MtPmp6cGM7CiAJdW5zaWduZWQgaW50IHBpbiA9IGdjLT5iYXNlICsgb2Zmc2V0OwogCi0JaWYgKGp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzcwKQotCQlyZXR1cm4gaW5nZW5pY19nZXRfcGluX2NvbmZpZyhqenBjLCBwaW4sIEpaNDc3MF9HUElPX1BBVDEpOworCWlmIChqenBjLT52ZXJzaW9uID49IElEX0paNDc2MCkKKwkJcmV0dXJuIGluZ2VuaWNfZ2V0X3Bpbl9jb25maWcoanpwYywgcGluLCBKWjQ3NjBfR1BJT19QQVQxKTsKIAogCWlmIChpbmdlbmljX2dldF9waW5fY29uZmlnKGp6cGMsIHBpbiwgSlo0NzQwX0dQSU9fU0VMRUNUKSkKIAkJcmV0dXJuIHRydWU7CkBAIC0xMDI3LDExICsxNjY5LDE3IEBAIHN0YXRpYyBpbnQgaW5nZW5pY19waW5tdXhfc2V0X3Bpbl9mbihzdHJ1Y3QgaW5nZW5pY19waW5jdHJsICpqenBjLAogCWRldl9kYmcoanpwYy0+ZGV2LCAic2V0IHBpbiBQJWMldSB0byBmdW5jdGlvbiAldVxuIiwKIAkJCSdBJyArIG9mZnQsIGlkeCwgZnVuYyk7CiAKLQlpZiAoanpwYy0+dmVyc2lvbiA+PSBJRF9KWjQ3NzApIHsKLQkJaW5nZW5pY19jb25maWdfcGluKGp6cGMsIHBpbiwgSlo0NzcwX0dQSU9fSU5ULCBmYWxzZSk7CisJaWYgKGp6cGMtPnZlcnNpb24gPj0gSURfWDEwMDApIHsKKwkJaW5nZW5pY19zaGFkb3dfY29uZmlnX3BpbihqenBjLCBwaW4sIEpaNDc2MF9HUElPX0lOVCwgZmFsc2UpOworCQlpbmdlbmljX3NoYWRvd19jb25maWdfcGluKGp6cGMsIHBpbiwgR1BJT19NU0ssIGZhbHNlKTsKKwkJaW5nZW5pY19zaGFkb3dfY29uZmlnX3BpbihqenBjLCBwaW4sIEpaNDc2MF9HUElPX1BBVDEsIGZ1bmMgJiAweDIpOworCQlpbmdlbmljX3NoYWRvd19jb25maWdfcGluKGp6cGMsIHBpbiwgSlo0NzYwX0dQSU9fUEFUMCwgZnVuYyAmIDB4MSk7CisJCWluZ2VuaWNfc2hhZG93X2NvbmZpZ19waW5fbG9hZChqenBjLCBwaW4pOworCX0gZWxzZSBpZiAoanpwYy0+dmVyc2lvbiA+PSBJRF9KWjQ3NjApIHsKKwkJaW5nZW5pY19jb25maWdfcGluKGp6cGMsIHBpbiwgSlo0NzYwX0dQSU9fSU5ULCBmYWxzZSk7CiAJCWluZ2VuaWNfY29uZmlnX3BpbihqenBjLCBwaW4sIEdQSU9fTVNLLCBmYWxzZSk7Ci0JCWluZ2VuaWNfY29uZmlnX3BpbihqenBjLCBwaW4sIEpaNDc3MF9HUElPX1BBVDEsIGZ1bmMgJiAweDIpOwotCQlpbmdlbmljX2NvbmZpZ19waW4oanpwYywgcGluLCBKWjQ3NzBfR1BJT19QQVQwLCBmdW5jICYgMHgxKTsKKwkJaW5nZW5pY19jb25maWdfcGluKGp6cGMsIHBpbiwgSlo0NzYwX0dQSU9fUEFUMSwgZnVuYyAmIDB4Mik7CisJCWluZ2VuaWNfY29uZmlnX3BpbihqenBjLCBwaW4sIEpaNDc2MF9HUElPX1BBVDAsIGZ1bmMgJiAweDEpOwogCX0gZWxzZSB7CiAJCWluZ2VuaWNfY29uZmlnX3BpbihqenBjLCBwaW4sIEpaNDc0MF9HUElPX0ZVTkMsIHRydWUpOwogCQlpbmdlbmljX2NvbmZpZ19waW4oanpwYywgcGluLCBKWjQ3NDBfR1BJT19UUklHLCBmdW5jICYgMHgyKTsKQEAgLTEwODAsMTAgKzE3MjgsMTUgQEAgc3RhdGljIGludCBpbmdlbmljX3Bpbm11eF9ncGlvX3NldF9kaXJlY3Rpb24oc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAogCWRldl9kYmcocGN0bGRldi0+ZGV2LCAic2V0IHBpbiBQJWMldSB0byAlc3B1dFxuIiwKIAkJCSdBJyArIG9mZnQsIGlkeCwgaW5wdXQgPyAiaW4iIDogIm91dCIpOwogCi0JaWYgKGp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzcwKSB7Ci0JCWluZ2VuaWNfY29uZmlnX3BpbihqenBjLCBwaW4sIEpaNDc3MF9HUElPX0lOVCwgZmFsc2UpOworCWlmIChqenBjLT52ZXJzaW9uID49IElEX1gxMDAwKSB7CisJCWluZ2VuaWNfc2hhZG93X2NvbmZpZ19waW4oanpwYywgcGluLCBKWjQ3NjBfR1BJT19JTlQsIGZhbHNlKTsKKwkJaW5nZW5pY19zaGFkb3dfY29uZmlnX3BpbihqenBjLCBwaW4sIEdQSU9fTVNLLCB0cnVlKTsKKwkJaW5nZW5pY19zaGFkb3dfY29uZmlnX3BpbihqenBjLCBwaW4sIEpaNDc2MF9HUElPX1BBVDEsIGlucHV0KTsKKwkJaW5nZW5pY19zaGFkb3dfY29uZmlnX3Bpbl9sb2FkKGp6cGMsIHBpbik7CisJfSBlbHNlIGlmIChqenBjLT52ZXJzaW9uID49IElEX0paNDc2MCkgeworCQlpbmdlbmljX2NvbmZpZ19waW4oanpwYywgcGluLCBKWjQ3NjBfR1BJT19JTlQsIGZhbHNlKTsKIAkJaW5nZW5pY19jb25maWdfcGluKGp6cGMsIHBpbiwgR1BJT19NU0ssIHRydWUpOwotCQlpbmdlbmljX2NvbmZpZ19waW4oanpwYywgcGluLCBKWjQ3NzBfR1BJT19QQVQxLCBpbnB1dCk7CisJCWluZ2VuaWNfY29uZmlnX3BpbihqenBjLCBwaW4sIEpaNDc2MF9HUElPX1BBVDEsIGlucHV0KTsKIAl9IGVsc2UgewogCQlpbmdlbmljX2NvbmZpZ19waW4oanpwYywgcGluLCBKWjQ3NDBfR1BJT19TRUxFQ1QsIGZhbHNlKTsKIAkJaW5nZW5pY19jb25maWdfcGluKGp6cGMsIHBpbiwgSlo0NzQwX0dQSU9fRElSLCAhaW5wdXQpOwpAQCAtMTExMCw4ICsxNzYzLDggQEAgc3RhdGljIGludCBpbmdlbmljX3BpbmNvbmZfZ2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKIAl1bnNpZ25lZCBpbnQgb2ZmdCA9IHBpbiAvIFBJTlNfUEVSX0dQSU9fQ0hJUDsKIAlib29sIHB1bGw7CiAKLQlpZiAoanpwYy0+dmVyc2lvbiA+PSBJRF9KWjQ3NzApCi0JCXB1bGwgPSAhaW5nZW5pY19nZXRfcGluX2NvbmZpZyhqenBjLCBwaW4sIEpaNDc3MF9HUElPX1BFTik7CisJaWYgKGp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzYwKQorCQlwdWxsID0gIWluZ2VuaWNfZ2V0X3Bpbl9jb25maWcoanpwYywgcGluLCBKWjQ3NjBfR1BJT19QRU4pOwogCWVsc2UKIAkJcHVsbCA9ICFpbmdlbmljX2dldF9waW5fY29uZmlnKGp6cGMsIHBpbiwgSlo0NzQwX0dQSU9fUFVMTF9ESVMpOwogCkBAIC0xMTQyLDggKzE3OTUsOCBAQCBzdGF0aWMgaW50IGluZ2VuaWNfcGluY29uZl9nZXQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAogc3RhdGljIHZvaWQgaW5nZW5pY19zZXRfYmlhcyhzdHJ1Y3QgaW5nZW5pY19waW5jdHJsICpqenBjLAogCQl1bnNpZ25lZCBpbnQgcGluLCBib29sIGVuYWJsZWQpCiB7Ci0JaWYgKGp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzcwKQotCQlpbmdlbmljX2NvbmZpZ19waW4oanpwYywgcGluLCBKWjQ3NzBfR1BJT19QRU4sICFlbmFibGVkKTsKKwlpZiAoanpwYy0+dmVyc2lvbiA+PSBJRF9KWjQ3NjApCisJCWluZ2VuaWNfY29uZmlnX3BpbihqenBjLCBwaW4sIEpaNDc2MF9HUElPX1BFTiwgIWVuYWJsZWQpOwogCWVsc2UKIAkJaW5nZW5pY19jb25maWdfcGluKGp6cGMsIHBpbiwgSlo0NzQwX0dQSU9fUFVMTF9ESVMsICFlbmFibGVkKTsKIH0KQEAgLTEyNjMsMTUgKzE5MTYsMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGluZ2VuaWNfcGluY3RybF9yZWdtYXBfY29uZmlnID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW5nZW5pY19waW5jdHJsX29mX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDc0MC1waW5jdHJsIiwgLmRhdGEgPSAodm9pZCAqKSBJRF9KWjQ3NDAgfSwKIAl7IC5jb21wYXRpYmxlID0gImluZ2VuaWMsano0NzI1Yi1waW5jdHJsIiwgLmRhdGEgPSAodm9pZCAqKUlEX0paNDcyNUIgfSwKKwl7IC5jb21wYXRpYmxlID0gImluZ2VuaWMsano0NzYwLXBpbmN0cmwiLCAuZGF0YSA9ICh2b2lkICopIElEX0paNDc2MCB9LAorCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NjBiLXBpbmN0cmwiLCAuZGF0YSA9ICh2b2lkICopIElEX0paNDc2MEIgfSwKIAl7IC5jb21wYXRpYmxlID0gImluZ2VuaWMsano0NzcwLXBpbmN0cmwiLCAuZGF0YSA9ICh2b2lkICopIElEX0paNDc3MCB9LAogCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3ODAtcGluY3RybCIsIC5kYXRhID0gKHZvaWQgKikgSURfSlo0NzgwIH0sCisJeyAuY29tcGF0aWJsZSA9ICJpbmdlbmljLHgxMDAwLXBpbmN0cmwiLCAuZGF0YSA9ICh2b2lkICopIElEX1gxMDAwIH0sCisJeyAuY29tcGF0aWJsZSA9ICJpbmdlbmljLHgxMDAwZS1waW5jdHJsIiwgLmRhdGEgPSAodm9pZCAqKSBJRF9YMTAwMEUgfSwKKwl7IC5jb21wYXRpYmxlID0gImluZ2VuaWMseDE1MDAtcGluY3RybCIsIC5kYXRhID0gKHZvaWQgKikgSURfWDE1MDAgfSwKIAl7fSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGluZ2VuaWNfZ3Bpb19vZl9tYXRjaFtdIF9faW5pdGNvbnN0ID0gewogCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3NDAtZ3BpbyIsIH0sCisJeyAuY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDc2MC1ncGlvIiwgfSwKIAl7IC5jb21wYXRpYmxlID0gImluZ2VuaWMsano0NzcwLWdwaW8iLCB9LAogCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5pYyxqejQ3ODAtZ3BpbyIsIH0sCisJeyAuY29tcGF0aWJsZSA9ICJpbmdlbmljLHgxMDAwLWdwaW8iLCB9LAogCXt9LAogfTsKIApAQCAtMTM4NywxMCArMjA0NywyMCBAQCBzdGF0aWMgaW50IF9faW5pdCBpbmdlbmljX3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAllbHNlCiAJCWp6cGMtPnZlcnNpb24gPSAoZW51bSBqel92ZXJzaW9uKWlkLT5kcml2ZXJfZGF0YTsKIAotCWlmIChqenBjLT52ZXJzaW9uID49IElEX0paNDc4MCkKKwlpZiAoanpwYy0+dmVyc2lvbiA+PSBJRF9YMTUwMCkKKwkJY2hpcF9pbmZvID0gJngxNTAwX2NoaXBfaW5mbzsKKwllbHNlIGlmIChqenBjLT52ZXJzaW9uID49IElEX1gxMDAwRSkKKwkJY2hpcF9pbmZvID0gJngxMDAwZV9jaGlwX2luZm87CisJZWxzZSBpZiAoanpwYy0+dmVyc2lvbiA+PSBJRF9YMTAwMCkKKwkJY2hpcF9pbmZvID0gJngxMDAwX2NoaXBfaW5mbzsKKwllbHNlIGlmIChqenBjLT52ZXJzaW9uID49IElEX0paNDc4MCkKIAkJY2hpcF9pbmZvID0gJmp6NDc4MF9jaGlwX2luZm87CiAJZWxzZSBpZiAoanpwYy0+dmVyc2lvbiA+PSBJRF9KWjQ3NzApCiAJCWNoaXBfaW5mbyA9ICZqejQ3NzBfY2hpcF9pbmZvOworCWVsc2UgaWYgKGp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzYwQikKKwkJY2hpcF9pbmZvID0gJmp6NDc2MGJfY2hpcF9pbmZvOworCWVsc2UgaWYgKGp6cGMtPnZlcnNpb24gPj0gSURfSlo0NzYwKQorCQljaGlwX2luZm8gPSAmano0NzYwX2NoaXBfaW5mbzsKIAllbHNlIGlmIChqenBjLT52ZXJzaW9uID49IElEX0paNDcyNUIpCiAJCWNoaXBfaW5mbyA9ICZqejQ3MjViX2NoaXBfaW5mbzsKIAllbHNlCkBAIC0xNDY3LDggKzIxMzcsMTMgQEAgc3RhdGljIGludCBfX2luaXQgaW5nZW5pY19waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBpbmdlbmljX3BpbmN0cmxfaWRzW10gPSB7CiAJeyAiano0NzQwLXBpbmN0cmwiLCBJRF9KWjQ3NDAgfSwKIAl7ICJqejQ3MjViLXBpbmN0cmwiLCBJRF9KWjQ3MjVCIH0sCisJeyAiano0NzYwLXBpbmN0cmwiLCBJRF9KWjQ3NjAgfSwKKwl7ICJqejQ3NjBiLXBpbmN0cmwiLCBJRF9KWjQ3NjBCIH0sCiAJeyAiano0NzcwLXBpbmN0cmwiLCBJRF9KWjQ3NzAgfSwKIAl7ICJqejQ3ODAtcGluY3RybCIsIElEX0paNDc4MCB9LAorCXsgIngxMDAwLXBpbmN0cmwiLCBJRF9YMTAwMCB9LAorCXsgIngxMDAwZS1waW5jdHJsIiwgSURfWDEwMDBFIH0sCisJeyAieDE1MDAtcGluY3RybCIsIElEX1gxNTAwIH0sCiAJe30sCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1veG5hcy5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtb3huYXMuYwppbmRleCBiNGVkYmUwLi41NTQ4OGNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1veG5hcy5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLW94bmFzLmMKQEAgLTkwMiw3ICs5MDIsNiBAQCBzdGF0aWMgaW50IG94bmFzX294ODEwc2VfcGluY29uZl9zZXQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAogCXN0cnVjdCBveG5hc19waW5jdHJsICpwY3RsID0gcGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRldik7CiAJc3RydWN0IG94bmFzX2dwaW9fYmFuayAqYmFuayA9IHBjdGxfdG9fYmFuayhwY3RsLCBwaW4pOwogCXVuc2lnbmVkIGludCBwYXJhbTsKLQl1MzIgYXJnOwogCXVuc2lnbmVkIGludCBpOwogCXUzMiBvZmZzZXQgPSBwaW4gLSBiYW5rLT5ncGlvX2NoaXAuYmFzZTsKIAl1MzIgbWFzayA9IEJJVChvZmZzZXQpOwpAQCAtOTEyLDcgKzkxMSw2IEBAIHN0YXRpYyBpbnQgb3huYXNfb3g4MTBzZV9waW5jb25mX3NldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCiAKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2NvbmZpZ3M7IGkrKykgewogCQlwYXJhbSA9IHBpbmNvbmZfdG9fY29uZmlnX3BhcmFtKGNvbmZpZ3NbaV0pOwotCQlhcmcgPSBwaW5jb25mX3RvX2NvbmZpZ19hcmd1bWVudChjb25maWdzW2ldKTsKIAogCQlzd2l0Y2ggKHBhcmFtKSB7CiAJCWNhc2UgUElOX0NPTkZJR19CSUFTX1BVTExfVVA6CkBAIC05NDEsNyArOTM5LDYgQEAgc3RhdGljIGludCBveG5hc19veDgyMF9waW5jb25mX3NldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCiAJc3RydWN0IG94bmFzX2dwaW9fYmFuayAqYmFuayA9IHBjdGxfdG9fYmFuayhwY3RsLCBwaW4pOwogCXVuc2lnbmVkIGludCBiYW5rX29mZnNldCA9IChiYW5rLT5pZCA/IFBJTk1VWF84MjBfQkFOS19PRkZTRVQgOiAwKTsKIAl1bnNpZ25lZCBpbnQgcGFyYW07Ci0JdTMyIGFyZzsKIAl1bnNpZ25lZCBpbnQgaTsKIAl1MzIgb2Zmc2V0ID0gcGluIC0gYmFuay0+Z3Bpb19jaGlwLmJhc2U7CiAJdTMyIG1hc2sgPSBCSVQob2Zmc2V0KTsKQEAgLTk1MSw3ICs5NDgsNiBAQCBzdGF0aWMgaW50IG94bmFzX294ODIwX3BpbmNvbmZfc2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKIAogCWZvciAoaSA9IDA7IGkgPCBudW1fY29uZmlnczsgaSsrKSB7CiAJCXBhcmFtID0gcGluY29uZl90b19jb25maWdfcGFyYW0oY29uZmlnc1tpXSk7Ci0JCWFyZyA9IHBpbmNvbmZfdG9fY29uZmlnX2FyZ3VtZW50KGNvbmZpZ3NbaV0pOwogCiAJCXN3aXRjaCAocGFyYW0pIHsKIAkJY2FzZSBQSU5fQ09ORklHX0JJQVNfUFVMTF9VUDoKQEAgLTEyMjksMTAgKzEyMjUsOCBAQCBzdGF0aWMgaW50IG94bmFzX2dwaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcmV0dXJuIFBUUl9FUlIoYmFuay0+cmVnX2Jhc2UpOwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJpcnEgZ2V0IGZhaWxlZFxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiBpcnE7Ci0JfQogCiAJYmFuay0+aWQgPSBpZDsKIAliYW5rLT5ncGlvX2NoaXAucGFyZW50ID0gJnBkZXYtPmRldjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXBpYzMyLmMgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1waWMzMi5jCmluZGV4IDZkYzk4ZTIuLmU3ZjZkZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXBpYzMyLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcGljMzIuYwpAQCAtMjIyMiwxMCArMjIyMiw4IEBAIHN0YXRpYyBpbnQgcGljMzJfZ3Bpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gUFRSX0VSUihiYW5rLT5yZWdfYmFzZSk7CiAKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImlycSBnZXQgZmFpbGVkXG4iKTsKKwlpZiAoaXJxIDwgMCkKIAkJcmV0dXJuIGlycTsKLQl9CiAKIAliYW5rLT5jbGsgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgTlVMTCk7CiAJaWYgKElTX0VSUihiYW5rLT5jbGspKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yazgwNS5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcms4MDUuYwppbmRleCBhODQ1OWNhLi4yNmFkYmU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yazgwNS5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJrODA1LmMKQEAgLTE5Nyw3ICsxOTcsNyBAQCBzdGF0aWMgaW50IHJrODA1X2dwaW9fZ2V0X2RpcmVjdGlvbihzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQogCXJldHVybiAhKHZhbCAmIHBjaS0+cGluX2NmZ1tvZmZzZXRdLmRpcl9tc2spOwogfQogCi1zdGF0aWMgc3RydWN0IGdwaW9fY2hpcCByazgwNV9ncGlvX2NoaXAgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGdwaW9fY2hpcCByazgwNV9ncGlvX2NoaXAgPSB7CiAJLmxhYmVsCQkJPSAicms4MDUtZ3BpbyIsCiAJLnJlcXVlc3QJCT0gZ3Bpb2NoaXBfZ2VuZXJpY19yZXF1ZXN0LAogCS5mcmVlCQkJPSBncGlvY2hpcF9nZW5lcmljX2ZyZWUsCkBAIC00MDQsNyArNDA0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jb25mX29wcyByazgwNV9waW5jb25mX29wcyA9IHsKIAkucGluX2NvbmZpZ19zZXQgPSByazgwNV9waW5jb25mX3NldCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgcGluY3RybF9kZXNjIHJrODA1X3BpbmN0cmxfZGVzYyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9kZXNjIHJrODA1X3BpbmN0cmxfZGVzYyA9IHsKIAkubmFtZSA9ICJyazgwNS1waW5jdHJsIiwKIAkucGN0bG9wcyA9ICZyazgwNV9waW5jdHJsX29wcywKIAkucG14b3BzID0gJnJrODA1X3Bpbm11eF9vcHMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yb2NrY2hpcC5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcm9ja2NoaXAuYwppbmRleCA2MmE2MjIxLi5kYzBiYmYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yb2NrY2hpcC5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJvY2tjaGlwLmMKQEAgLTI3OTIsNiArMjc5Miw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZ3Bpb19zZXRfY29uZmlnKHN0cnVjdCBncGlvX2NoaXAgKmdjLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogCQkgKiBzdGlsbCByZXR1cm4gLUVOT1RTVVBQIGFzIGJlZm9yZSwgdG8gbWFrZSBzdXJlIHRoZSBjYWxsZXIKIAkJICogb2YgZ3Bpb2Rfc2V0X2RlYm91bmNlIHdvbid0IGNoYW5nZSBpdHMgYmVoYXZpb3VyLgogCQkgKi8KKwkJcmV0dXJuIC1FTk9UU1VQUDsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVOT1RTVVBQOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJ6YTEuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJ6YTEuYwppbmRleCAwMjFlMzdiLi4wMTdmYzZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yemExLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcnphMS5jCkBAIC04NjYsOCArODY2LDEwIEBAIHN0YXRpYyBpbnQgcnphMV9kdF9ub2RlX3Bpbl9jb3VudChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCW5waW5zID0gMDsKIAlmb3JfZWFjaF9jaGlsZF9vZl9ub2RlKG5wLCBjaGlsZCkgewogCQlvZl9waW5zID0gb2ZfZmluZF9wcm9wZXJ0eShjaGlsZCwgInBpbm11eCIsIE5VTEwpOwotCQlpZiAoIW9mX3BpbnMpCisJCWlmICghb2ZfcGlucykgeworCQkJb2Zfbm9kZV9wdXQoY2hpbGQpOwogCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KIAogCQlucGlucyArPSBvZl9waW5zLT5sZW5ndGggLyBzaXplb2YodTMyKTsKIAl9CkBAIC0xMDI1LDggKzEwMjcsMTAgQEAgc3RhdGljIGludCByemExX2R0X25vZGVfdG9fbWFwKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKIAkJZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShucCwgY2hpbGQpIHsKIAkJCXJldCA9IHJ6YTFfcGFyc2VfcGlubXV4X25vZGUocnphMV9wY3RsLCBjaGlsZCwgbXV4X2NvbmYsCiAJCQkJCQkgICAgIGdycGluKTsKLQkJCWlmIChyZXQgPCAwKQorCQkJaWYgKHJldCA8IDApIHsKKwkJCQlvZl9ub2RlX3B1dChjaGlsZCk7CiAJCQkJcmV0dXJuIHJldDsKKwkJCX0KIAogCQkJZ3JwaW4gKz0gcmV0OwogCQkJbXV4X2NvbmYgKz0gcmV0OwpAQCAtMTI3Miw4ICsxMjc2LDEwIEBAIHN0YXRpYyBpbnQgcnphMV9ncGlvX3JlZ2lzdGVyKHN0cnVjdCByemExX3BpbmN0cmwgKnJ6YTFfcGN0bCkKIAogCQlyZXQgPSByemExX3BhcnNlX2dwaW9jaGlwKHJ6YTFfcGN0bCwgY2hpbGQsICZncGlvX2NoaXBzW2ldLAogCQkJCQkgICZncGlvX3Jhbmdlc1tpXSk7Ci0JCWlmIChyZXQpCisJCWlmIChyZXQpIHsKKwkJCW9mX25vZGVfcHV0KGNoaWxkKTsKIAkJCXJldHVybiByZXQ7CisJCX0KIAogCQkrK2k7CiAJfQpAQCAtMTM1OSw3ICsxMzY1LDYgQEAgc3RhdGljIGludCByemExX3BpbmN0cmxfcmVnaXN0ZXIoc3RydWN0IHJ6YTFfcGluY3RybCAqcnphMV9wY3RsKQogc3RhdGljIGludCByemExX3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgcnphMV9waW5jdHJsICpyemExX3BjdGw7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7CiAJaW50IHJldDsKIAogCXJ6YTFfcGN0bCA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnJ6YTFfcGN0bCksIEdGUF9LRVJORUwpOwpAQCAtMTM2OCw4ICsxMzczLDcgQEAgc3RhdGljIGludCByemExX3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCXJ6YTFfcGN0bC0+ZGV2ID0gJnBkZXYtPmRldjsKIAotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JcnphMV9wY3RsLT5iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CisJcnphMV9wY3RsLT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwogCWlmIChJU19FUlIocnphMV9wY3RsLT5iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIocnphMV9wY3RsLT5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcnphMi5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcnphMi5jCmluZGV4IDViOTUxYzcuLjNiZTFkODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJ6YTIuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yemEyLmMKQEAgLTExLDcgKzExLDggQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9waW5jdHJsL3Bpbm11eC5oPgpAQCAtMTE1LDcgKzExNiw3IEBAIHN0YXRpYyB2b2lkIHJ6YTJfcGluX3RvX2dwaW8odm9pZCBfX2lvbWVtICpwZmNfYmFzZSwgdW5zaWduZWQgaW50IG9mZnNldCwKIAltYXNrMTYgPSBSWkEyX1BEUl9NQVNLIDw8IChwaW4gKiAyKTsKIAlyZWcxNiAmPSB+bWFzazE2OwogCi0JaWYgKGRpciA9PSBHUElPRl9ESVJfSU4pCisJaWYgKGRpcikKIAkJcmVnMTYgfD0gUlpBMl9QRFJfSU5QVVQgPDwgKHBpbiAqIDIpOwkvKiBwaW4gYXMgaW5wdXQgKi8KIAllbHNlCiAJCXJlZzE2IHw9IFJaQTJfUERSX09VVFBVVCA8PCAocGluICogMik7CS8qIHBpbiBhcyBvdXRwdXQgKi8KQEAgLTEzNCwxOCArMTM1LDE4IEBAIHN0YXRpYyBpbnQgcnphMl9jaGlwX2dldF9kaXJlY3Rpb24oc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgaW50IG9mZnNldCkKIAlyZWcxNiA9IChyZWcxNiA+PiAocGluICogMikpICYgUlpBMl9QRFJfTUFTSzsKIAogCWlmIChyZWcxNiA9PSBSWkEyX1BEUl9PVVRQVVQpCi0JCXJldHVybiBHUElPRl9ESVJfT1VUOworCQlyZXR1cm4gMDsKIAogCWlmIChyZWcxNiA9PSBSWkEyX1BEUl9JTlBVVCkKLQkJcmV0dXJuIEdQSU9GX0RJUl9JTjsKKwkJcmV0dXJuIDE7CiAKIAkvKgogCSAqIFRoaXMgR1BJTyBjb250cm9sbGVyIGhhcyBhIGRlZmF1bHQgSGktWiBzdGF0ZSB0aGF0IGlzIG5vdCBpbnB1dCBvcgogCSAqIG91dHB1dCwgc28gZm9yY2UgdGhlIHBpbiB0byBpbnB1dCBub3cuCiAJICovCi0JcnphMl9waW5fdG9fZ3Bpbyhwcml2LT5iYXNlLCBvZmZzZXQsIEdQSU9GX0RJUl9JTik7CisJcnphMl9waW5fdG9fZ3Bpbyhwcml2LT5iYXNlLCBvZmZzZXQsIDEpOwogCi0JcmV0dXJuIEdQSU9GX0RJUl9JTjsKKwlyZXR1cm4gMTsKIH0KIAogc3RhdGljIGludCByemEyX2NoaXBfZGlyZWN0aW9uX2lucHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsCkBAIC0xNTMsNyArMTU0LDcgQEAgc3RhdGljIGludCByemEyX2NoaXBfZGlyZWN0aW9uX2lucHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsCiB7CiAJc3RydWN0IHJ6YTJfcGluY3RybF9wcml2ICpwcml2ID0gZ3Bpb2NoaXBfZ2V0X2RhdGEoY2hpcCk7CiAKLQlyemEyX3Bpbl90b19ncGlvKHByaXYtPmJhc2UsIG9mZnNldCwgR1BJT0ZfRElSX0lOKTsKKwlyemEyX3Bpbl90b19ncGlvKHByaXYtPmJhc2UsIG9mZnNldCwgMSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE5MSw3ICsxOTIsNyBAQCBzdGF0aWMgaW50IHJ6YTJfY2hpcF9kaXJlY3Rpb25fb3V0cHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsCiAJc3RydWN0IHJ6YTJfcGluY3RybF9wcml2ICpwcml2ID0gZ3Bpb2NoaXBfZ2V0X2RhdGEoY2hpcCk7CiAKIAlyemEyX2NoaXBfc2V0KGNoaXAsIG9mZnNldCwgdmFsKTsKLQlyemEyX3Bpbl90b19ncGlvKHByaXYtPmJhc2UsIG9mZnNldCwgR1BJT0ZfRElSX09VVCk7CisJcnphMl9waW5fdG9fZ3Bpbyhwcml2LT5iYXNlLCBvZmZzZXQsIDApOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yem4xLmMgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yem4xLmMKaW5kZXggY2MwZTVhYS4uMGY2ZjhhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcnpuMS5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJ6bjEuYwpAQCAtNDEyLDggKzQxMiwxMCBAQCBzdGF0aWMgaW50IHJ6bjFfZHRfbm9kZV90b19tYXAoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAogCiAJZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShucCwgY2hpbGQpIHsKIAkJcmV0ID0gcnpuMV9kdF9ub2RlX3RvX21hcF9vbmUocGN0bGRldiwgY2hpbGQsIG1hcCwgbnVtX21hcHMpOwotCQlpZiAocmV0IDwgMCkKKwkJaWYgKHJldCA8IDApIHsKKwkJCW9mX25vZGVfcHV0KGNoaWxkKTsKIAkJCXJldHVybiByZXQ7CisJCX0KIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTc5Miw4ICs3OTQsMTAgQEAgc3RhdGljIGludCByem4xX3BpbmN0cmxfcGFyc2VfZnVuY3Rpb25zKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJCWdycCA9ICZpcGN0bC0+Z3JvdXBzW2lwY3RsLT5uZ3JvdXBzXTsKIAkJZ3JwLT5mdW5jID0gZnVuYy0+bmFtZTsKIAkJcmV0ID0gcnpuMV9waW5jdHJsX3BhcnNlX2dyb3VwcyhjaGlsZCwgZ3JwLCBpcGN0bCk7Ci0JCWlmIChyZXQgPCAwKQorCQlpZiAocmV0IDwgMCkgeworCQkJb2Zfbm9kZV9wdXQoY2hpbGQpOwogCQkJcmV0dXJuIHJldDsKKwkJfQogCQlpKys7CiAJCWlwY3RsLT5uZ3JvdXBzKys7CiAJfQpAQCAtODM4LDggKzg0MiwxMCBAQCBzdGF0aWMgaW50IHJ6bjFfcGluY3RybF9wcm9iZV9kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCiAJZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShucCwgY2hpbGQpIHsKIAkJcmV0ID0gcnpuMV9waW5jdHJsX3BhcnNlX2Z1bmN0aW9ucyhjaGlsZCwgaXBjdGwsIGkrKyk7Ci0JCWlmIChyZXQgPCAwKQorCQlpZiAocmV0IDwgMCkgeworCQkJb2Zfbm9kZV9wdXQoY2hpbGQpOwogCQkJcmV0dXJuIHJldDsKKwkJfQogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtc3QuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXN0LmMKaW5kZXggYjk2ODhlYS4uMDBkYjhiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtc3QuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1zdC5jCkBAIC0xMiw4ICsxMiw5IEBACiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgotI2luY2x1ZGUgPGxpbnV4L29mX2dwaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9ncGlvLmg+IC8qIG9mX2dldF9uYW1lZF9ncGlvKCkgKi8KICNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9kcml2ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CiAjaW5jbHVkZSA8bGludXgvcGluY3RybC9waW5jdHJsLmg+CkBAIC0xMjYyLDggKzEyNjMsMTAgQEAgc3RhdGljIGludCBzdF9wY3RsX3BhcnNlX2Z1bmN0aW9ucyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogCQlncnAgPSAmaW5mby0+Z3JvdXBzWypncnBfaW5kZXhdOwogCQkqZ3JwX2luZGV4ICs9IDE7CiAJCXJldCA9IHN0X3BjdGxfZHRfcGFyc2VfZ3JvdXBzKGNoaWxkLCBncnAsIGluZm8sIGkrKyk7Ci0JCWlmIChyZXQpCisJCWlmIChyZXQpIHsKKwkJCW9mX25vZGVfcHV0KGNoaWxkKTsKIAkJCXJldHVybiByZXQ7CisJCX0KIAl9CiAJZGV2X2luZm8oaW5mby0+ZGV2LCAiRnVuY3Rpb25bJWRcdCBuYW1lOiVzLFx0Z3JvdXBzOiVkXVxuIiwKIAkJCQlpbmRleCwgZnVuYy0+bmFtZSwgZnVuYy0+bmdyb3Vwcyk7CkBAIC0xNjIzLDggKzE2MjYsMTAgQEAgc3RhdGljIGludCBzdF9wY3RsX3Byb2JlX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2woY2hpbGQsICJncGlvLWNvbnRyb2xsZXIiKSkgewogCQkJY29uc3QgY2hhciAqYmFua19uYW1lID0gTlVMTDsKIAkJCXJldCA9IHN0X2dwaW9saWJfcmVnaXN0ZXJfYmFuayhpbmZvLCBiYW5rLCBjaGlsZCk7Ci0JCQlpZiAocmV0KQorCQkJaWYgKHJldCkgeworCQkJCW9mX25vZGVfcHV0KGNoaWxkKTsKIAkJCQlyZXR1cm4gcmV0OworCQkJfQogCiAJCQlrID0gaW5mby0+YmFua3NbYmFua10ucmFuZ2UucGluX2Jhc2U7CiAJCQliYW5rX25hbWUgPSBpbmZvLT5iYW5rc1tiYW5rXS5yYW5nZS5uYW1lOwpAQCAtMTY0MSw2ICsxNjQ2LDcgQEAgc3RhdGljIGludCBzdF9wY3RsX3Byb2JlX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCQkJCQkJaSsrLCAmZ3JwX2luZGV4KTsKIAkJCWlmIChyZXQpIHsKIAkJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBmdW5jdGlvbnMgZm91bmQuXG4iKTsKKwkJCQlvZl9ub2RlX3B1dChjaGlsZCk7CiAJCQkJcmV0dXJuIHJldDsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtc3RtZnguYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXN0bWZ4LmMKaW5kZXggZGQ1YWE5YS4uOTc0OTczNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtc3RtZnguYworKysgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1zdG1meC5jCkBAIC0yOTYsMjkgKzI5NiwyOSBAQCBzdGF0aWMgaW50IHN0bWZ4X3BpbmNvbmZfc2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWduZWQgaW50IHBpbiwKIAkJc3dpdGNoIChwYXJhbSkgewogCQljYXNlIFBJTl9DT05GSUdfQklBU19QVUxMX1BJTl9ERUZBVUxUOgogCQljYXNlIFBJTl9DT05GSUdfQklBU19ESVNBQkxFOgorCQljYXNlIFBJTl9DT05GSUdfRFJJVkVfUFVTSF9QVUxMOgorCQkJcmV0ID0gc3RtZnhfcGluY29uZl9zZXRfdHlwZShwY3RsLCBwaW4sIDApOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCQkJYnJlYWs7CiAJCWNhc2UgUElOX0NPTkZJR19CSUFTX1BVTExfRE9XTjoKKwkJCXJldCA9IHN0bWZ4X3BpbmNvbmZfc2V0X3R5cGUocGN0bCwgcGluLCAxKTsKKwkJCWlmIChyZXQpCisJCQkJcmV0dXJuIHJldDsKIAkJCXJldCA9IHN0bWZ4X3BpbmNvbmZfc2V0X3B1cGQocGN0bCwgcGluLCAwKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJCWJyZWFrOwogCQljYXNlIFBJTl9DT05GSUdfQklBU19QVUxMX1VQOgorCQkJcmV0ID0gc3RtZnhfcGluY29uZl9zZXRfdHlwZShwY3RsLCBwaW4sIDEpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OwogCQkJcmV0ID0gc3RtZnhfcGluY29uZl9zZXRfcHVwZChwY3RsLCBwaW4sIDEpOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0OwogCQkJYnJlYWs7CiAJCWNhc2UgUElOX0NPTkZJR19EUklWRV9PUEVOX0RSQUlOOgotCQkJaWYgKCFkaXIpCi0JCQkJcmV0ID0gc3RtZnhfcGluY29uZl9zZXRfdHlwZShwY3RsLCBwaW4sIDEpOwotCQkJZWxzZQotCQkJCXJldCA9IHN0bWZ4X3BpbmNvbmZfc2V0X3R5cGUocGN0bCwgcGluLCAwKTsKLQkJCWlmIChyZXQpCi0JCQkJcmV0dXJuIHJldDsKLQkJCWJyZWFrOwotCQljYXNlIFBJTl9DT05GSUdfRFJJVkVfUFVTSF9QVUxMOgotCQkJaWYgKCFkaXIpCi0JCQkJcmV0ID0gc3RtZnhfcGluY29uZl9zZXRfdHlwZShwY3RsLCBwaW4sIDApOwotCQkJZWxzZQotCQkJCXJldCA9IHN0bWZ4X3BpbmNvbmZfc2V0X3R5cGUocGN0bCwgcGluLCAxKTsKKwkJCXJldCA9IHN0bWZ4X3BpbmNvbmZfc2V0X3R5cGUocGN0bCwgcGluLCAxKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJCWJyZWFrOwpAQCAtNjIwLDEwICs2MjAsOCBAQCBzdGF0aWMgaW50IHN0bWZ4X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnEgPD0gMCkgewotCQlkZXZfZXJyKHBjdGwtPmRldiwgImZhaWxlZCB0byBnZXQgaXJxXG4iKTsKKwlpZiAoaXJxIDw9IDApCiAJCXJldHVybiAtRU5YSU87Ci0JfQogCiAJbXV0ZXhfaW5pdCgmcGN0bC0+bG9jayk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXh3YXkuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXh3YXkuYwppbmRleCAzNzYyMjJkLi45MTNkMzhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC14d2F5LmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwteHdheS5jCkBAIC0xNzMxLDEzICsxNzMxLDExIEBAIHN0YXRpYyBpbnQgcGlubXV4X3h3YXlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlmb3IgKGkgPSAwOyBpIDwgeHdheV9jaGlwLm5ncGlvOyBpKyspIHsKLQkJLyogc3RybGVuKCJpb1hZIikgKyAxID0gNSAqLwotCQljaGFyICpuYW1lID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIDUsIEdGUF9LRVJORUwpOworCQljaGFyICpuYW1lID0gZGV2bV9rYXNwcmludGYoJnBkZXYtPmRldiwgR0ZQX0tFUk5FTCwgImlvJWQiLCBpKTsKIAogCQlpZiAoIW5hbWUpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAotCQlzbnByaW50ZihuYW1lLCA1LCAiaW8lZCIsIGkpOwogCQl4d2F5X2luZm8ucGFkc1tpXS5udW1iZXIgPSBHUElPMCArIGk7CiAJCXh3YXlfaW5mby5wYWRzW2ldLm5hbWUgPSBuYW1lOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5tdXguYyBiL2RyaXZlcnMvcGluY3RybC9waW5tdXguYwppbmRleCAwMjBlNTRmLi5lOTE0ZjZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGlubXV4LmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3Bpbm11eC5jCkBAIC03MSw2ICs3MSwzMCBAQCBpbnQgcGlubXV4X3ZhbGlkYXRlX21hcChjb25zdCBzdHJ1Y3QgcGluY3RybF9tYXAgKm1hcCwgaW50IGkpCiB9CiAKIC8qKgorICogcGlubXV4X2Nhbl9iZV91c2VkX2Zvcl9ncGlvKCkgLSBjaGVjayBpZiBhIHNwZWNpZmljIHBpbgorICoJaXMgZWl0aGVyIG11eGVkIHRvIGEgZGlmZmVyZW50IGZ1bmN0aW9uIG9yIHVzZWQgYXMgZ3Bpby4KKyAqCisgKiBAcGluOiB0aGUgcGluIG51bWJlciBpbiB0aGUgZ2xvYmFsIHBpbiBzcGFjZQorICoKKyAqIENvbnRyb2xsZXJzIG5vdCBkZWZpbmVkIGFzIHN0cmljdCB3aWxsIGFsd2F5cyByZXR1cm4gdHJ1ZSwKKyAqIG1lbmFuaW5nIHRoYXQgdGhlIGdwaW8gY2FuIGJlIHVzZWQuCisgKi8KK2Jvb2wgcGlubXV4X2Nhbl9iZV91c2VkX2Zvcl9ncGlvKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWduZWQgcGluKQoreworCXN0cnVjdCBwaW5fZGVzYyAqZGVzYyA9IHBpbl9kZXNjX2dldChwY3RsZGV2LCBwaW4pOworCWNvbnN0IHN0cnVjdCBwaW5tdXhfb3BzICpvcHMgPSBwY3RsZGV2LT5kZXNjLT5wbXhvcHM7CisKKwkvKiBDYW4ndCBpbnNwZWN0IHBpbiwgYXNzdW1lIGl0IGNhbiBiZSB1c2VkICovCisJaWYgKCFkZXNjKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmIChvcHMtPnN0cmljdCAmJiBkZXNjLT5tdXhfdXNlY291bnQpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiAhKG9wcy0+c3RyaWN0ICYmICEhZGVzYy0+Z3Bpb19vd25lcik7Cit9CisKKy8qKgogICogcGluX3JlcXVlc3QoKSAtIHJlcXVlc3QgYSBzaW5nbGUgcGluIHRvIGJlIG11eGVkIGluLCB0eXBpY2FsbHkgZm9yIEdQSU8KICAqIEBwaW46IHRoZSBwaW4gbnVtYmVyIGluIHRoZSBnbG9iYWwgcGluIHNwYWNlCiAgKiBAb3duZXI6IGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG93bmVyIG9mIHRoaXMgcGluOyB0eXBpY2FsbHkgdGhlIGRldmljZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3Bpbm11eC5oIGIvZHJpdmVycy9waW5jdHJsL3Bpbm11eC5oCmluZGV4IDc5NGNiM2EuLjc4YzNhMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9waW5tdXguaAorKysgYi9kcml2ZXJzL3BpbmN0cmwvcGlubXV4LmgKQEAgLTE1LDYgKzE1LDggQEAgaW50IHBpbm11eF9jaGVja19vcHMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KTsKIAogaW50IHBpbm11eF92YWxpZGF0ZV9tYXAoY29uc3Qgc3RydWN0IHBpbmN0cmxfbWFwICptYXAsIGludCBpKTsKIAorYm9vbCBwaW5tdXhfY2FuX2JlX3VzZWRfZm9yX2dwaW8oc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBwaW4pOworCiBpbnQgcGlubXV4X3JlcXVlc3RfZ3BpbyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCiAJCQlzdHJ1Y3QgcGluY3RybF9ncGlvX3JhbmdlICpyYW5nZSwKIAkJCXVuc2lnbmVkIHBpbiwgdW5zaWduZWQgZ3Bpbyk7CkBAIC00Miw2ICs0NCwxMiBAQCBzdGF0aWMgaW5saW5lIGludCBwaW5tdXhfdmFsaWRhdGVfbWFwKGNvbnN0IHN0cnVjdCBwaW5jdHJsX21hcCAqbWFwLCBpbnQgaSkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBpbm11eF9jYW5fYmVfdXNlZF9mb3JfZ3BpbyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCSAgICAgICB1bnNpZ25lZCBwaW4pCit7CisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IHBpbm11eF9yZXF1ZXN0X2dwaW8oc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAogCQkJc3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5nZSAqcmFuZ2UsCiAJCQl1bnNpZ25lZCBwaW4sIHVuc2lnbmVkIGdwaW8pCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcWNvbS9LY29uZmlnIGIvZHJpdmVycy9waW5jdHJsL3Fjb20vS2NvbmZpZwppbmRleCBmYTJjODc4Li4zMmZjMjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcWNvbS9LY29uZmlnCisrKyBiL2RyaXZlcnMvcGluY3RybC9xY29tL0tjb25maWcKQEAgLTE1OSw2ICsxNTksMTUgQEAKICAgICAgICAgIHdoaWNoIGFyZSB1c2luZyBTU0JJIGZvciBjb21tdW5pY2F0aW9uIHdpdGggU29DLiBFeGFtcGxlIFBNSUMncwogICAgICAgICAgZGV2aWNlcyBhcmUgcG04MDU4IGFuZCBwbTg5MjEuCiAKK2NvbmZpZyBQSU5DVFJMX1NDNzE4MAorCXRyaXN0YXRlICJRdWFsY29tbSBUZWNobm9sb2dpZXMgSW5jIFNDNzE4MCBwaW4gY29udHJvbGxlciBkcml2ZXIiCisJZGVwZW5kcyBvbiBHUElPTElCICYmIE9GCisJc2VsZWN0IFBJTkNUUkxfTVNNCisJaGVscAorCSAgVGhpcyBpcyB0aGUgcGluY3RybCwgcGlubXV4LCBwaW5jb25mIGFuZCBncGlvbGliIGRyaXZlciBmb3IgdGhlCisJICBRdWFsY29tbSBUZWNobm9sb2dpZXMgSW5jIFRMTU0gYmxvY2sgZm91bmQgb24gdGhlIFF1YWxjb21tCisJICBUZWNobm9sb2dpZXMgSW5jIFNDNzE4MCBwbGF0Zm9ybS4KKwogY29uZmlnIFBJTkNUUkxfU0RNNjYwCiAgICAgICAgdHJpc3RhdGUgIlF1YWxjb21tIFRlY2hub2xvZ2llcyBJbmMgU0RNNjYwIHBpbiBjb250cm9sbGVyIGRyaXZlciIKICAgICAgICBkZXBlbmRzIG9uIEdQSU9MSUIgJiYgT0YKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9xY29tL01ha2VmaWxlIGIvZHJpdmVycy9waW5jdHJsL3Fjb20vTWFrZWZpbGUKaW5kZXggZWJlOTA2OC4uZjhiYjBjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3Fjb20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9waW5jdHJsL3Fjb20vTWFrZWZpbGUKQEAgLTIwLDYgKzIwLDcgQEAKIG9iai0kKENPTkZJR19QSU5DVFJMX1FDT01fU1BNSV9QTUlDKSArPSBwaW5jdHJsLXNwbWktbXBwLm8KIG9iai0kKENPTkZJR19QSU5DVFJMX1FDT01fU1NCSV9QTUlDKSArPSBwaW5jdHJsLXNzYmktZ3Bpby5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9RQ09NX1NTQklfUE1JQykgKz0gcGluY3RybC1zc2JpLW1wcC5vCitvYmotJChDT05GSUdfUElOQ1RSTF9TQzcxODApCSs9IHBpbmN0cmwtc2M3MTgwLm8KIG9iai0kKENPTkZJR19QSU5DVFJMX1NETTY2MCkgICArPSBwaW5jdHJsLXNkbTY2MC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9TRE04NDUpICs9IHBpbmN0cmwtc2RtODQ1Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX1NNODE1MCkgKz0gcGluY3RybC1zbTgxNTAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1tc20uYyBiL2RyaXZlcnMvcGluY3RybC9xY29tL3BpbmN0cmwtbXNtLmMKaW5kZXggYjhhMWM0My4uNzYzZGEwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1tc20uYworKysgYi9kcml2ZXJzL3BpbmN0cmwvcWNvbS9waW5jdHJsLW1zbS5jCkBAIC02MTgsOCArNjE4LDcgQEAgc3RhdGljIGludCBtc21fZ3Bpb19pbml0X3ZhbGlkX21hc2soc3RydWN0IGdwaW9fY2hpcCAqZ2MsCiAJfQogCiAJLyogVGhlIG51bWJlciBvZiBHUElPcyBpbiB0aGUgQUNQSSB0YWJsZXMgKi8KLQlsZW4gPSByZXQgPSBkZXZpY2VfcHJvcGVydHlfcmVhZF91MTZfYXJyYXkocGN0cmwtPmRldiwgImdwaW9zIiwgTlVMTCwKLQkJCQkJCSAgIDApOworCWxlbiA9IHJldCA9IGRldmljZV9wcm9wZXJ0eV9jb3VudF91MTYocGN0cmwtPmRldiwgImdwaW9zIik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiAwOwogCkBAIC05OTYsMTIgKzk5NSwxMyBAQCBzdGF0aWMgYm9vbCBtc21fZ3Bpb19uZWVkc192YWxpZF9tYXNrKHN0cnVjdCBtc21fcGluY3RybCAqcGN0cmwpCiAJaWYgKHBjdHJsLT5zb2MtPnJlc2VydmVkX2dwaW9zKQogCQlyZXR1cm4gdHJ1ZTsKIAotCXJldHVybiBkZXZpY2VfcHJvcGVydHlfcmVhZF91MTZfYXJyYXkocGN0cmwtPmRldiwgImdwaW9zIiwgTlVMTCwgMCkgPiAwOworCXJldHVybiBkZXZpY2VfcHJvcGVydHlfY291bnRfdTE2KHBjdHJsLT5kZXYsICJncGlvcyIpID4gMDsKIH0KIAogc3RhdGljIGludCBtc21fZ3Bpb19pbml0KHN0cnVjdCBtc21fcGluY3RybCAqcGN0cmwpCiB7CiAJc3RydWN0IGdwaW9fY2hpcCAqY2hpcDsKKwlzdHJ1Y3QgZ3Bpb19pcnFfY2hpcCAqZ2lycTsKIAlpbnQgcmV0OwogCXVuc2lnbmVkIG5ncGlvID0gcGN0cmwtPnNvYy0+bmdwaW9zOwogCkBAIC0xMDI4LDYgKzEwMjgsMTggQEAgc3RhdGljIGludCBtc21fZ3Bpb19pbml0KHN0cnVjdCBtc21fcGluY3RybCAqcGN0cmwpCiAJcGN0cmwtPmlycV9jaGlwLmlycV9yZXF1ZXN0X3Jlc291cmNlcyA9IG1zbV9ncGlvX2lycV9yZXFyZXM7CiAJcGN0cmwtPmlycV9jaGlwLmlycV9yZWxlYXNlX3Jlc291cmNlcyA9IG1zbV9ncGlvX2lycV9yZWxyZXM7CiAKKwlnaXJxID0gJmNoaXAtPmlycTsKKwlnaXJxLT5jaGlwID0gJnBjdHJsLT5pcnFfY2hpcDsKKwlnaXJxLT5wYXJlbnRfaGFuZGxlciA9IG1zbV9ncGlvX2lycV9oYW5kbGVyOworCWdpcnEtPm51bV9wYXJlbnRzID0gMTsKKwlnaXJxLT5wYXJlbnRzID0gZGV2bV9rY2FsbG9jKHBjdHJsLT5kZXYsIDEsIHNpemVvZigqZ2lycS0+cGFyZW50cyksCisJCQkJICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIWdpcnEtPnBhcmVudHMpCisJCXJldHVybiAtRU5PTUVNOworCWdpcnEtPmRlZmF1bHRfdHlwZSA9IElSUV9UWVBFX05PTkU7CisJZ2lycS0+aGFuZGxlciA9IGhhbmRsZV9iYWRfaXJxOworCWdpcnEtPnBhcmVudHNbMF0gPSBwY3RybC0+aXJxOworCiAJcmV0ID0gZ3Bpb2NoaXBfYWRkX2RhdGEoJnBjdHJsLT5jaGlwLCBwY3RybCk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKHBjdHJsLT5kZXYsICJGYWlsZWQgcmVnaXN0ZXIgZ3Bpb2NoaXBcbiIpOwpAQCAtMTA1NCwyMCArMTA2Niw2IEBAIHN0YXRpYyBpbnQgbXNtX2dwaW9faW5pdChzdHJ1Y3QgbXNtX3BpbmN0cmwgKnBjdHJsKQogCQl9CiAJfQogCi0JcmV0ID0gZ3Bpb2NoaXBfaXJxY2hpcF9hZGQoY2hpcCwKLQkJCQkgICAmcGN0cmwtPmlycV9jaGlwLAotCQkJCSAgIDAsCi0JCQkJICAgaGFuZGxlX2VkZ2VfaXJxLAotCQkJCSAgIElSUV9UWVBFX05PTkUpOwotCWlmIChyZXQpIHsKLQkJZGV2X2VycihwY3RybC0+ZGV2LCAiRmFpbGVkIHRvIGFkZCBpcnFjaGlwIHRvIGdwaW9jaGlwXG4iKTsKLQkJZ3Bpb2NoaXBfcmVtb3ZlKCZwY3RybC0+Y2hpcCk7Ci0JCXJldHVybiAtRU5PU1lTOwotCX0KLQotCWdwaW9jaGlwX3NldF9jaGFpbmVkX2lycWNoaXAoY2hpcCwgJnBjdHJsLT5pcnFfY2hpcCwgcGN0cmwtPmlycSwKLQkJCQkgICAgIG1zbV9ncGlvX2lycV9oYW5kbGVyKTsKLQogCXJldHVybiAwOwogfQogCkBAIC0xMTYxLDEwICsxMTU5LDggQEAgaW50IG1zbV9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJbXNtX3BpbmN0cmxfc2V0dXBfcG1fcmVzZXQocGN0cmwpOwogCiAJcGN0cmwtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKHBjdHJsLT5pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIk5vIGludGVycnVwdCBkZWZpbmVkIGZvciBtc21ncGlvXG4iKTsKKwlpZiAocGN0cmwtPmlycSA8IDApCiAJCXJldHVybiBwY3RybC0+aXJxOwotCX0KIAogCXBjdHJsLT5kZXNjLm93bmVyID0gVEhJU19NT0RVTEU7CiAJcGN0cmwtPmRlc2MucGN0bG9wcyA9ICZtc21fcGluY3RybF9vcHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcWNvbS9waW5jdHJsLW1zbTg5OTguYyBiL2RyaXZlcnMvcGluY3RybC9xY29tL3BpbmN0cmwtbXNtODk5OC5jCmluZGV4IDAwZDdiOTQuLmEwNWY0MWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9xY29tL3BpbmN0cmwtbXNtODk5OC5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9xY29tL3BpbmN0cmwtbXNtODk5OC5jCkBAIC01ODEsMTYgKzU4MSw4IEBAIGVudW0gbXNtODk5OF9mdW5jdGlvbnMgewogCW1zbV9tdXhfdGd1X2NoMSwKIAltc21fbXV4X3RzZW5zZV9wd20xLAogCW1zbV9tdXhfdHNlbnNlX3B3bTIsCi0JbXNtX211eF90c2lmMV9jbGssCi0JbXNtX211eF90c2lmMV9kYXRhLAotCW1zbV9tdXhfdHNpZjFfZW4sCi0JbXNtX211eF90c2lmMV9lcnJvciwKLQltc21fbXV4X3RzaWYxX3N5bmMsCi0JbXNtX211eF90c2lmMl9jbGssCi0JbXNtX211eF90c2lmMl9kYXRhLAotCW1zbV9tdXhfdHNpZjJfZW4sCi0JbXNtX211eF90c2lmMl9lcnJvciwKLQltc21fbXV4X3RzaWYyX3N5bmMsCisJbXNtX211eF90c2lmMCwKKwltc21fbXV4X3RzaWYxLAogCW1zbV9tdXhfdWltMV9jbGssCiAJbXNtX211eF91aW0xX2RhdGEsCiAJbXNtX211eF91aW0xX3ByZXNlbnQsCkBAIC02OTIsOSArNjg0LDYgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhdGVzdF91c2IxM19ncm91cHNbXSA9IHsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYmltY19kdGUxX2dyb3Vwc1tdID0gewogCSJncGlvOCIsICJncGlvMTAiLAogfTsKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHNpZjFfc3luY19ncm91cHNbXSA9IHsKLQkiZ3BpbzkiLAotfTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgd2xhbjFfYWRjMF9ncm91cHNbXSA9IHsKIAkiZ3BpbzkiLAogfTsKQEAgLTg2Myw5ICs4NTIsNiBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGxwYXNzX3NsaW1idXNfZ3JvdXBzW10gPSB7CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNkX3dyaXRlX2dyb3Vwc1tdID0gewogCSJncGlvNDAiLAogfTsKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHNpZjFfZXJyb3JfZ3JvdXBzW10gPSB7Ci0JImdwaW80MCIsCi19Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBibHNwX3NwaTZfZ3JvdXBzW10gPSB7CiAJImdwaW80MSIsICJncGlvNDIiLCAiZ3BpbzQzIiwgImdwaW80NCIsCiB9OwpAQCAtMTA0OCwxMSArMTAzNCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYmxzcF91aW0yX2JfZ3JvdXBzW10gPSB7CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGJsc3BfaTJjNV9ncm91cHNbXSA9IHsKIAkiZ3Bpbzg3IiwgImdwaW84OCIsCiB9Owotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0c2lmMV9jbGtfZ3JvdXBzW10gPSB7Ci0JImdwaW84OSIsCi19Owotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0c2lmMV9lbl9ncm91cHNbXSA9IHsKLQkiZ3BpbzkwIiwKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHNpZjBfZ3JvdXBzW10gPSB7CisJImdwaW85IiwgImdwaW80MCIsICJncGlvODkiLCAiZ3BpbzkwIiwgImdwaW85MSIsCiB9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtZHBfdnN5bmMwX2dyb3Vwc1tdID0gewogCSJncGlvOTAiLApAQCAtMTA3NSwxNyArMTA1OCwxNCBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRndV9jaDBfZ3JvdXBzW10gPSB7CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHFkc3NfY3RpMV9iX2dyb3Vwc1tdID0gewogCSJncGlvOTAiLCAiZ3BpbzkxIiwKIH07Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRzaWYxX2RhdGFfZ3JvdXBzW10gPSB7Ci0JImdwaW85MSIsCi19Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzZGM0X2NtZF9ncm91cHNbXSA9IHsKIAkiZ3BpbzkxIiwKIH07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRndV9jaDFfZ3JvdXBzW10gPSB7CiAJImdwaW85MSIsCiB9Owotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0c2lmMl9lcnJvcl9ncm91cHNbXSA9IHsKLQkiZ3BpbzkyIiwKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHNpZjFfZ3JvdXBzW10gPSB7CisJImdwaW85MiIsICJncGlvOTMiLCAiZ3Bpbzk0IiwgImdwaW85NSIsICJncGlvOTYiLAogfTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2RjNDNfZ3JvdXBzW10gPSB7CiAJImdwaW85MiIsCkBAIC0xMDkzLDMwICsxMDczLDE4IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2RjNDNfZ3JvdXBzW10gPSB7CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZmcl8xX2dyb3Vwc1tdID0gewogCSJncGlvOTIiLAogfTsKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHNpZjJfY2xrX2dyb3Vwc1tdID0gewotCSJncGlvOTMiLAotfTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2RjNF9jbGtfZ3JvdXBzW10gPSB7CiAJImdwaW85MyIsCiB9Owotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0c2lmMl9lbl9ncm91cHNbXSA9IHsKLQkiZ3Bpbzk0IiwKLX07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNkYzQyX2dyb3Vwc1tdID0gewogCSJncGlvOTQiLAogfTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2RfY2FyZF9ncm91cHNbXSA9IHsKIAkiZ3Bpbzk1IiwKIH07Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRzaWYyX2RhdGFfZ3JvdXBzW10gPSB7Ci0JImdwaW85NSIsCi19Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzZGM0MV9ncm91cHNbXSA9IHsKIAkiZ3Bpbzk1IiwKIH07Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRzaWYyX3N5bmNfZ3JvdXBzW10gPSB7Ci0JImdwaW85NiIsCi19Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzZGM0MF9ncm91cHNbXSA9IHsKIAkiZ3Bpbzk2IiwKIH07CkBAIC0xMzU1LDE2ICsxMzIzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtc21fZnVuY3Rpb24gbXNtODk5OF9mdW5jdGlvbnNbXSA9IHsKIAlGVU5DVElPTih0Z3VfY2gxKSwKIAlGVU5DVElPTih0c2Vuc2VfcHdtMSksCiAJRlVOQ1RJT04odHNlbnNlX3B3bTIpLAotCUZVTkNUSU9OKHRzaWYxX2NsayksCi0JRlVOQ1RJT04odHNpZjFfZGF0YSksCi0JRlVOQ1RJT04odHNpZjFfZW4pLAotCUZVTkNUSU9OKHRzaWYxX2Vycm9yKSwKLQlGVU5DVElPTih0c2lmMV9zeW5jKSwKLQlGVU5DVElPTih0c2lmMl9jbGspLAotCUZVTkNUSU9OKHRzaWYyX2RhdGEpLAotCUZVTkNUSU9OKHRzaWYyX2VuKSwKLQlGVU5DVElPTih0c2lmMl9lcnJvciksCi0JRlVOQ1RJT04odHNpZjJfc3luYyksCisJRlVOQ1RJT04odHNpZjApLAorCUZVTkNUSU9OKHRzaWYxKSwKIAlGVU5DVElPTih1aW0xX2NsayksCiAJRlVOQ1RJT04odWltMV9kYXRhKSwKIAlGVU5DVElPTih1aW0xX3ByZXNlbnQpLApAQCAtMTM5Niw3ICsxMzU2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtc21fcGluZ3JvdXAgbXNtODk5OF9ncm91cHNbXSA9IHsKIAlQSU5HUk9VUCg2LCBXRVNULCBibHNwX3NwaTgsIGJsc3BfdWFydDhfYSwgYmxzcF9pMmM4LCBfLCBfLCBfLCBfLCBfLCBfKSwKIAlQSU5HUk9VUCg3LCBXRVNULCBibHNwX3NwaTgsIGJsc3BfdWFydDhfYSwgYmxzcF9pMmM4LCBkZHJfYmlzdCwgXywgYXRlc3RfdHNlbnMyLCBhdGVzdF91c2IxLCBfLCBfKSwKIAlQSU5HUk9VUCg4LCBFQVNULCBibHNwX3NwaTQsIGJsc3BfdWFydDFfYiwgYmxzcF91aW0xX2IsIF8sIGRkcl9iaXN0LCBfLCB3bGFuMV9hZGMxLCBhdGVzdF91c2IxMywgYmltY19kdGUxKSwKLQlQSU5HUk9VUCg5LCBFQVNULCBibHNwX3NwaTQsIGJsc3BfdWFydDFfYiwgYmxzcF91aW0xX2IsIHRzaWYxX3N5bmMsIGRkcl9iaXN0LCBfLCB3bGFuMV9hZGMwLCBhdGVzdF91c2IxMiwgYmltY19kdGUwKSwKKwlQSU5HUk9VUCg5LCBFQVNULCBibHNwX3NwaTQsIGJsc3BfdWFydDFfYiwgYmxzcF91aW0xX2IsIHRzaWYwLCBkZHJfYmlzdCwgXywgd2xhbjFfYWRjMCwgYXRlc3RfdXNiMTIsIGJpbWNfZHRlMCksCiAJUElOR1JPVVAoMTAsIEVBU1QsIG1kcF92c3luY19hLCBibHNwX3NwaTQsIGJsc3BfdWFydDFfYiwgYmxzcF9pMmM0LCBkZHJfYmlzdCwgYXRlc3RfZ3BzYWRjMSwgd2xhbjJfYWRjMSwgYXRlc3RfdXNiMTEsIGJpbWNfZHRlMSksCiAJUElOR1JPVVAoMTEsIEVBU1QsIG1kcF92c3luY19hLCBlZHBfbGNkLCBibHNwX3NwaTQsIGJsc3BfdWFydDFfYiwgYmxzcF9pMmM0LCBkYmdfb3V0LCBhdGVzdF9ncHNhZGMwLCB3bGFuMl9hZGMwLCBhdGVzdF91c2IxMCksCiAJUElOR1JPVVAoMTIsIEVBU1QsIG1kcF92c3luYywgbV92b2MsIF8sIF8sIF8sIF8sIF8sIF8sIF8pLApAQCAtMTQyNyw3ICsxMzg3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtc21fcGluZ3JvdXAgbXNtODk5OF9ncm91cHNbXSA9IHsKIAlQSU5HUk9VUCgzNywgTk9SVEgsIGFnZXJhX3BsbCwgXywgXywgXywgXywgXywgXywgXywgXyksCiAJUElOR1JPVVAoMzgsIFdFU1QsIHVzYl9waHksIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAogCVBJTkdST1VQKDM5LCBXRVNULCBscGFzc19zbGltYnVzLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKLQlQSU5HUk9VUCg0MCwgRUFTVCwgc2Rfd3JpdGUsIHRzaWYxX2Vycm9yLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlQSU5HUk9VUCg0MCwgRUFTVCwgc2Rfd3JpdGUsIHRzaWYwLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKIAlQSU5HUk9VUCg0MSwgRUFTVCwgYmxzcF9zcGk2LCBibHNwX3VhcnQzX2IsIGJsc3BfdWltM19iLCBfLCBxZHNzLCBfLCBfLCBfLCBfKSwKIAlQSU5HUk9VUCg0MiwgRUFTVCwgYmxzcF9zcGk2LCBibHNwX3VhcnQzX2IsIGJsc3BfdWltM19iLCBfLCBxZHNzLCBfLCBfLCBfLCBfKSwKIAlQSU5HUk9VUCg0MywgRUFTVCwgYmxzcF9zcGk2LCBibHNwX3VhcnQzX2IsIGJsc3BfaTJjNiwgXywgcWRzcywgXywgXywgXywgXyksCkBAIC0xNDc2LDE0ICsxNDM2LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXNtX3Bpbmdyb3VwIG1zbTg5OThfZ3JvdXBzW10gPSB7CiAJUElOR1JPVVAoODYsIEVBU1QsIGJsc3Bfc3BpNSwgYmxzcF91YXJ0Ml9iLCBibHNwX3VpbTJfYiwgXywgXywgXywgXywgXywgXyksCiAJUElOR1JPVVAoODcsIEVBU1QsIGJsc3Bfc3BpNSwgYmxzcF91YXJ0Ml9iLCBibHNwX2kyYzUsIF8sIF8sIF8sIF8sIF8sIF8pLAogCVBJTkdST1VQKDg4LCBFQVNULCBibHNwX3NwaTUsIGJsc3BfdWFydDJfYiwgYmxzcF9pMmM1LCBfLCBfLCBfLCBfLCBfLCBfKSwKLQlQSU5HUk9VUCg4OSwgRUFTVCwgdHNpZjFfY2xrLCBwaGFzZV9mbGFnLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKLQlQSU5HUk9VUCg5MCwgRUFTVCwgdHNpZjFfZW4sIG1kcF92c3luYzAsIG1kcF92c3luYzEsIG1kcF92c3luYzIsIG1kcF92c3luYzMsIGJsc3AxX3NwaSwgdGd1X2NoMCwgcWRzc19jdGkxX2IsIF8pLAotCVBJTkdST1VQKDkxLCBFQVNULCB0c2lmMV9kYXRhLCBzZGM0X2NtZCwgdGd1X2NoMSwgcGhhc2VfZmxhZywgcWRzc19jdGkxX2IsIF8sIF8sIF8sIF8pLAotCVBJTkdST1VQKDkyLCBFQVNULCB0c2lmMl9lcnJvciwgc2RjNDMsIHZmcl8xLCBwaGFzZV9mbGFnLCBfLCBfLCBfLCBfLCBfKSwKLQlQSU5HUk9VUCg5MywgRUFTVCwgdHNpZjJfY2xrLCBzZGM0X2NsaywgXywgcWRzcywgXywgXywgXywgXywgXyksCi0JUElOR1JPVVAoOTQsIEVBU1QsIHRzaWYyX2VuLCBzZGM0MiwgXywgXywgXywgXywgXywgXywgXyksCi0JUElOR1JPVVAoOTUsIEVBU1QsIHRzaWYyX2RhdGEsIHNkYzQxLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKLQlQSU5HUk9VUCg5NiwgRUFTVCwgdHNpZjJfc3luYywgc2RjNDAsIHBoYXNlX2ZsYWcsIF8sIF8sIF8sIF8sIF8sIF8pLAorCVBJTkdST1VQKDg5LCBFQVNULCB0c2lmMCwgcGhhc2VfZmxhZywgXywgXywgXywgXywgXywgXywgXyksCisJUElOR1JPVVAoOTAsIEVBU1QsIHRzaWYwLCBtZHBfdnN5bmMwLCBtZHBfdnN5bmMxLCBtZHBfdnN5bmMyLCBtZHBfdnN5bmMzLCBibHNwMV9zcGksIHRndV9jaDAsIHFkc3NfY3RpMV9iLCBfKSwKKwlQSU5HUk9VUCg5MSwgRUFTVCwgdHNpZjAsIHNkYzRfY21kLCB0Z3VfY2gxLCBwaGFzZV9mbGFnLCBxZHNzX2N0aTFfYiwgXywgXywgXywgXyksCisJUElOR1JPVVAoOTIsIEVBU1QsIHRzaWYxLCBzZGM0MywgdmZyXzEsIHBoYXNlX2ZsYWcsIF8sIF8sIF8sIF8sIF8pLAorCVBJTkdST1VQKDkzLCBFQVNULCB0c2lmMSwgc2RjNF9jbGssIF8sIHFkc3MsIF8sIF8sIF8sIF8sIF8pLAorCVBJTkdST1VQKDk0LCBFQVNULCB0c2lmMSwgc2RjNDIsIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVBJTkdST1VQKDk1LCBFQVNULCB0c2lmMSwgc2RjNDEsIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVBJTkdST1VQKDk2LCBFQVNULCB0c2lmMSwgc2RjNDAsIHBoYXNlX2ZsYWcsIF8sIF8sIF8sIF8sIF8sIF8pLAogCVBJTkdST1VQKDk3LCBXRVNULCBfLCBtZHBfdnN5bmNfYiwgbGRvX2VuLCBfLCBfLCBfLCBfLCBfLCBfKSwKIAlQSU5HUk9VUCg5OCwgV0VTVCwgXywgbWRwX3ZzeW5jX2IsIGxkb191cGRhdGUsIF8sIF8sIF8sIF8sIF8sIF8pLAogCVBJTkdST1VQKDk5LCBXRVNULCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9xY29tL3BpbmN0cmwtcWRmMnh4eC5jIGIvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1xZGYyeHh4LmMKaW5kZXggNWRhNWRkNS4uNDNiZDE1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1xZGYyeHh4LmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1xZGYyeHh4LmMKQEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIGludCBxZGYyeHh4X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAkvKiBUaGUgbnVtYmVyIG9mIEdQSU9zIGluIHRoZSBhcHByb3ZlZCBsaXN0ICovCi0JcmV0ID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfdThfYXJyYXkoJnBkZXYtPmRldiwgImdwaW9zIiwgTlVMTCwgMCk7CisJcmV0ID0gZGV2aWNlX3Byb3BlcnR5X2NvdW50X3U4KCZwZGV2LT5kZXYsICJncGlvcyIpOwogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgIm1pc3NpbmcgJ2dwaW9zJyBwcm9wZXJ0eVxuIik7CiAJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcWNvbS9waW5jdHJsLXNjNzE4MC5jIGIvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1zYzcxODAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Mzk5YzhhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1zYzcxODAuYwpAQCAtMCwwICsxLDExNDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvLyBDb3B5cmlnaHQgKGMpIDIwMTksIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9waW5jdHJsL3BpbmN0cmwuaD4KKworI2luY2x1ZGUgInBpbmN0cmwtbXNtLmgiCisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2M3MTgwX3RpbGVzW10gPSB7CisJIm5vcnRoIiwKKwkic291dGgiLAorCSJ3ZXN0IiwKK307CisKK2VudW0geworCU5PUlRILAorCVNPVVRILAorCVdFU1QKK307CisKKyNkZWZpbmUgRlVOQ1RJT04oZm5hbWUpCQkJCQlcCisJW21zbV9tdXhfIyNmbmFtZV0gPSB7CQkJCVwKKwkJLm5hbWUgPSAjZm5hbWUsCQkJCVwKKwkJLmdyb3VwcyA9IGZuYW1lIyNfZ3JvdXBzLAkJXAorCQkubmdyb3VwcyA9IEFSUkFZX1NJWkUoZm5hbWUjI19ncm91cHMpLAlcCisJfQorCisjZGVmaW5lIFBJTkdST1VQKGlkLCBfdGlsZSwgZjEsIGYyLCBmMywgZjQsIGY1LCBmNiwgZjcsIGY4LCBmOSkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gImdwaW8iICNpZCwJCQlcCisJCS5waW5zID0gZ3BpbyMjaWQjI19waW5zLAkJXAorCQkubnBpbnMgPSBBUlJBWV9TSVpFKGdwaW8jI2lkIyNfcGlucyksCVwKKwkJLmZ1bmNzID0gKGludFtdKXsJCQlcCisJCQltc21fbXV4X2dwaW8sIC8qIGdwaW8gbW9kZSAqLwlcCisJCQltc21fbXV4XyMjZjEsCQkJXAorCQkJbXNtX211eF8jI2YyLAkJCVwKKwkJCW1zbV9tdXhfIyNmMywJCQlcCisJCQltc21fbXV4XyMjZjQsCQkJXAorCQkJbXNtX211eF8jI2Y1LAkJCVwKKwkJCW1zbV9tdXhfIyNmNiwJCQlcCisJCQltc21fbXV4XyMjZjcsCQkJXAorCQkJbXNtX211eF8jI2Y4LAkJCVwKKwkJCW1zbV9tdXhfIyNmOQkJCVwKKwkJfSwJCQkJCVwKKwkJLm5mdW5jcyA9IDEwLAkJCQlcCisJCS5jdGxfcmVnID0gMHgxMDAwICogaWQsCQlcCisJCS5pb19yZWcgPSAweDEwMDAgKiBpZCArIDB4NCwJCVwKKwkJLmludHJfY2ZnX3JlZyA9IDB4MTAwMCAqIGlkICsgMHg4LAlcCisJCS5pbnRyX3N0YXR1c19yZWcgPSAweDEwMDAgKiBpZCArIDB4YywJXAorCQkuaW50cl90YXJnZXRfcmVnID0gMHgxMDAwICogaWQgKyAweDgsCVwKKwkJLnRpbGUgPSBfdGlsZSwJCQlcCisJCS5tdXhfYml0ID0gMiwJCQlcCisJCS5wdWxsX2JpdCA9IDAsCQkJXAorCQkuZHJ2X2JpdCA9IDYsCQkJXAorCQkub2VfYml0ID0gOSwJCQlcCisJCS5pbl9iaXQgPSAwLAkJCVwKKwkJLm91dF9iaXQgPSAxLAkJCVwKKwkJLmludHJfZW5hYmxlX2JpdCA9IDAsCQlcCisJCS5pbnRyX3N0YXR1c19iaXQgPSAwLAkJXAorCQkuaW50cl90YXJnZXRfYml0ID0gNSwJCVwKKwkJLmludHJfdGFyZ2V0X2twc3NfdmFsID0gMywJXAorCQkuaW50cl9yYXdfc3RhdHVzX2JpdCA9IDQsCVwKKwkJLmludHJfcG9sYXJpdHlfYml0ID0gMSwJCVwKKwkJLmludHJfZGV0ZWN0aW9uX2JpdCA9IDIsCVwKKwkJLmludHJfZGV0ZWN0aW9uX3dpZHRoID0gMiwJXAorCX0KKworI2RlZmluZSBTRENfUURTRF9QSU5HUk9VUChwZ19uYW1lLCBjdGwsIHB1bGwsIGRydikJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI3BnX25hbWUsCQkJXAorCQkucGlucyA9IHBnX25hbWUjI19waW5zLAkJCVwKKwkJLm5waW5zID0gQVJSQVlfU0laRShwZ19uYW1lIyNfcGlucyksCVwKKwkJLmN0bF9yZWcgPSBjdGwsCQkJCVwKKwkJLmlvX3JlZyA9IDAsCQkJCVwKKwkJLmludHJfY2ZnX3JlZyA9IDAsCQkJXAorCQkuaW50cl9zdGF0dXNfcmVnID0gMCwJCQlcCisJCS5pbnRyX3RhcmdldF9yZWcgPSAwLAkJCVwKKwkJLm11eF9iaXQgPSAtMSwJCQkJXAorCQkucHVsbF9iaXQgPSBwdWxsLAkJCVwKKwkJLmRydl9iaXQgPSBkcnYsCQkJCVwKKwkJLm9lX2JpdCA9IC0xLAkJCQlcCisJCS5pbl9iaXQgPSAtMSwJCQkJXAorCQkub3V0X2JpdCA9IC0xLAkJCQlcCisJCS5pbnRyX2VuYWJsZV9iaXQgPSAtMSwJCQlcCisJCS5pbnRyX3N0YXR1c19iaXQgPSAtMSwJCQlcCisJCS5pbnRyX3RhcmdldF9iaXQgPSAtMSwJCQlcCisJCS5pbnRyX3Jhd19zdGF0dXNfYml0ID0gLTEsCQlcCisJCS5pbnRyX3BvbGFyaXR5X2JpdCA9IC0xLAkJXAorCQkuaW50cl9kZXRlY3Rpb25fYml0ID0gLTEsCQlcCisJCS5pbnRyX2RldGVjdGlvbl93aWR0aCA9IC0xLAkJXAorCX0KKworI2RlZmluZSBVRlNfUkVTRVQocGdfbmFtZSwgb2Zmc2V0KQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAjcGdfbmFtZSwJCQlcCisJCS5waW5zID0gcGdfbmFtZSMjX3BpbnMsCQkJXAorCQkubnBpbnMgPSBBUlJBWV9TSVpFKHBnX25hbWUjI19waW5zKSwJXAorCQkuY3RsX3JlZyA9IG9mZnNldCwJCQlcCisJCS5pb19yZWcgPSBvZmZzZXQgKyAweDQsCQkJXAorCQkuaW50cl9jZmdfcmVnID0gMCwJCQlcCisJCS5pbnRyX3N0YXR1c19yZWcgPSAwLAkJCVwKKwkJLmludHJfdGFyZ2V0X3JlZyA9IDAsCQkJXAorCQkubXV4X2JpdCA9IC0xLAkJCQlcCisJCS5wdWxsX2JpdCA9IDMsCQkJCVwKKwkJLmRydl9iaXQgPSAwLAkJCQlcCisJCS5vZV9iaXQgPSAtMSwJCQkJXAorCQkuaW5fYml0ID0gLTEsCQkJCVwKKwkJLm91dF9iaXQgPSAwLAkJCQlcCisJCS5pbnRyX2VuYWJsZV9iaXQgPSAtMSwJCQlcCisJCS5pbnRyX3N0YXR1c19iaXQgPSAtMSwJCQlcCisJCS5pbnRyX3RhcmdldF9iaXQgPSAtMSwJCQlcCisJCS5pbnRyX3Jhd19zdGF0dXNfYml0ID0gLTEsCQlcCisJCS5pbnRyX3BvbGFyaXR5X2JpdCA9IC0xLAkJXAorCQkuaW50cl9kZXRlY3Rpb25fYml0ID0gLTEsCQlcCisJCS5pbnRyX2RldGVjdGlvbl93aWR0aCA9IC0xLAkJXAorCX0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBzYzcxODBfcGluc1tdID0geworCVBJTkNUUkxfUElOKDAsICJHUElPXzAiKSwKKwlQSU5DVFJMX1BJTigxLCAiR1BJT18xIiksCisJUElOQ1RSTF9QSU4oMiwgIkdQSU9fMiIpLAorCVBJTkNUUkxfUElOKDMsICJHUElPXzMiKSwKKwlQSU5DVFJMX1BJTig0LCAiR1BJT180IiksCisJUElOQ1RSTF9QSU4oNSwgIkdQSU9fNSIpLAorCVBJTkNUUkxfUElOKDYsICJHUElPXzYiKSwKKwlQSU5DVFJMX1BJTig3LCAiR1BJT183IiksCisJUElOQ1RSTF9QSU4oOCwgIkdQSU9fOCIpLAorCVBJTkNUUkxfUElOKDksICJHUElPXzkiKSwKKwlQSU5DVFJMX1BJTigxMCwgIkdQSU9fMTAiKSwKKwlQSU5DVFJMX1BJTigxMSwgIkdQSU9fMTEiKSwKKwlQSU5DVFJMX1BJTigxMiwgIkdQSU9fMTIiKSwKKwlQSU5DVFJMX1BJTigxMywgIkdQSU9fMTMiKSwKKwlQSU5DVFJMX1BJTigxNCwgIkdQSU9fMTQiKSwKKwlQSU5DVFJMX1BJTigxNSwgIkdQSU9fMTUiKSwKKwlQSU5DVFJMX1BJTigxNiwgIkdQSU9fMTYiKSwKKwlQSU5DVFJMX1BJTigxNywgIkdQSU9fMTciKSwKKwlQSU5DVFJMX1BJTigxOCwgIkdQSU9fMTgiKSwKKwlQSU5DVFJMX1BJTigxOSwgIkdQSU9fMTkiKSwKKwlQSU5DVFJMX1BJTigyMCwgIkdQSU9fMjAiKSwKKwlQSU5DVFJMX1BJTigyMSwgIkdQSU9fMjEiKSwKKwlQSU5DVFJMX1BJTigyMiwgIkdQSU9fMjIiKSwKKwlQSU5DVFJMX1BJTigyMywgIkdQSU9fMjMiKSwKKwlQSU5DVFJMX1BJTigyNCwgIkdQSU9fMjQiKSwKKwlQSU5DVFJMX1BJTigyNSwgIkdQSU9fMjUiKSwKKwlQSU5DVFJMX1BJTigyNiwgIkdQSU9fMjYiKSwKKwlQSU5DVFJMX1BJTigyNywgIkdQSU9fMjciKSwKKwlQSU5DVFJMX1BJTigyOCwgIkdQSU9fMjgiKSwKKwlQSU5DVFJMX1BJTigyOSwgIkdQSU9fMjkiKSwKKwlQSU5DVFJMX1BJTigzMCwgIkdQSU9fMzAiKSwKKwlQSU5DVFJMX1BJTigzMSwgIkdQSU9fMzEiKSwKKwlQSU5DVFJMX1BJTigzMiwgIkdQSU9fMzIiKSwKKwlQSU5DVFJMX1BJTigzMywgIkdQSU9fMzMiKSwKKwlQSU5DVFJMX1BJTigzNCwgIkdQSU9fMzQiKSwKKwlQSU5DVFJMX1BJTigzNSwgIkdQSU9fMzUiKSwKKwlQSU5DVFJMX1BJTigzNiwgIkdQSU9fMzYiKSwKKwlQSU5DVFJMX1BJTigzNywgIkdQSU9fMzciKSwKKwlQSU5DVFJMX1BJTigzOCwgIkdQSU9fMzgiKSwKKwlQSU5DVFJMX1BJTigzOSwgIkdQSU9fMzkiKSwKKwlQSU5DVFJMX1BJTig0MCwgIkdQSU9fNDAiKSwKKwlQSU5DVFJMX1BJTig0MSwgIkdQSU9fNDEiKSwKKwlQSU5DVFJMX1BJTig0MiwgIkdQSU9fNDIiKSwKKwlQSU5DVFJMX1BJTig0MywgIkdQSU9fNDMiKSwKKwlQSU5DVFJMX1BJTig0NCwgIkdQSU9fNDQiKSwKKwlQSU5DVFJMX1BJTig0NSwgIkdQSU9fNDUiKSwKKwlQSU5DVFJMX1BJTig0NiwgIkdQSU9fNDYiKSwKKwlQSU5DVFJMX1BJTig0NywgIkdQSU9fNDciKSwKKwlQSU5DVFJMX1BJTig0OCwgIkdQSU9fNDgiKSwKKwlQSU5DVFJMX1BJTig0OSwgIkdQSU9fNDkiKSwKKwlQSU5DVFJMX1BJTig1MCwgIkdQSU9fNTAiKSwKKwlQSU5DVFJMX1BJTig1MSwgIkdQSU9fNTEiKSwKKwlQSU5DVFJMX1BJTig1MiwgIkdQSU9fNTIiKSwKKwlQSU5DVFJMX1BJTig1MywgIkdQSU9fNTMiKSwKKwlQSU5DVFJMX1BJTig1NCwgIkdQSU9fNTQiKSwKKwlQSU5DVFJMX1BJTig1NSwgIkdQSU9fNTUiKSwKKwlQSU5DVFJMX1BJTig1NiwgIkdQSU9fNTYiKSwKKwlQSU5DVFJMX1BJTig1NywgIkdQSU9fNTciKSwKKwlQSU5DVFJMX1BJTig1OCwgIkdQSU9fNTgiKSwKKwlQSU5DVFJMX1BJTig1OSwgIkdQSU9fNTkiKSwKKwlQSU5DVFJMX1BJTig2MCwgIkdQSU9fNjAiKSwKKwlQSU5DVFJMX1BJTig2MSwgIkdQSU9fNjEiKSwKKwlQSU5DVFJMX1BJTig2MiwgIkdQSU9fNjIiKSwKKwlQSU5DVFJMX1BJTig2MywgIkdQSU9fNjMiKSwKKwlQSU5DVFJMX1BJTig2NCwgIkdQSU9fNjQiKSwKKwlQSU5DVFJMX1BJTig2NSwgIkdQSU9fNjUiKSwKKwlQSU5DVFJMX1BJTig2NiwgIkdQSU9fNjYiKSwKKwlQSU5DVFJMX1BJTig2NywgIkdQSU9fNjciKSwKKwlQSU5DVFJMX1BJTig2OCwgIkdQSU9fNjgiKSwKKwlQSU5DVFJMX1BJTig2OSwgIkdQSU9fNjkiKSwKKwlQSU5DVFJMX1BJTig3MCwgIkdQSU9fNzAiKSwKKwlQSU5DVFJMX1BJTig3MSwgIkdQSU9fNzEiKSwKKwlQSU5DVFJMX1BJTig3MiwgIkdQSU9fNzIiKSwKKwlQSU5DVFJMX1BJTig3MywgIkdQSU9fNzMiKSwKKwlQSU5DVFJMX1BJTig3NCwgIkdQSU9fNzQiKSwKKwlQSU5DVFJMX1BJTig3NSwgIkdQSU9fNzUiKSwKKwlQSU5DVFJMX1BJTig3NiwgIkdQSU9fNzYiKSwKKwlQSU5DVFJMX1BJTig3NywgIkdQSU9fNzciKSwKKwlQSU5DVFJMX1BJTig3OCwgIkdQSU9fNzgiKSwKKwlQSU5DVFJMX1BJTig3OSwgIkdQSU9fNzkiKSwKKwlQSU5DVFJMX1BJTig4MCwgIkdQSU9fODAiKSwKKwlQSU5DVFJMX1BJTig4MSwgIkdQSU9fODEiKSwKKwlQSU5DVFJMX1BJTig4MiwgIkdQSU9fODIiKSwKKwlQSU5DVFJMX1BJTig4MywgIkdQSU9fODMiKSwKKwlQSU5DVFJMX1BJTig4NCwgIkdQSU9fODQiKSwKKwlQSU5DVFJMX1BJTig4NSwgIkdQSU9fODUiKSwKKwlQSU5DVFJMX1BJTig4NiwgIkdQSU9fODYiKSwKKwlQSU5DVFJMX1BJTig4NywgIkdQSU9fODciKSwKKwlQSU5DVFJMX1BJTig4OCwgIkdQSU9fODgiKSwKKwlQSU5DVFJMX1BJTig4OSwgIkdQSU9fODkiKSwKKwlQSU5DVFJMX1BJTig5MCwgIkdQSU9fOTAiKSwKKwlQSU5DVFJMX1BJTig5MSwgIkdQSU9fOTEiKSwKKwlQSU5DVFJMX1BJTig5MiwgIkdQSU9fOTIiKSwKKwlQSU5DVFJMX1BJTig5MywgIkdQSU9fOTMiKSwKKwlQSU5DVFJMX1BJTig5NCwgIkdQSU9fOTQiKSwKKwlQSU5DVFJMX1BJTig5NSwgIkdQSU9fOTUiKSwKKwlQSU5DVFJMX1BJTig5NiwgIkdQSU9fOTYiKSwKKwlQSU5DVFJMX1BJTig5NywgIkdQSU9fOTciKSwKKwlQSU5DVFJMX1BJTig5OCwgIkdQSU9fOTgiKSwKKwlQSU5DVFJMX1BJTig5OSwgIkdQSU9fOTkiKSwKKwlQSU5DVFJMX1BJTigxMDAsICJHUElPXzEwMCIpLAorCVBJTkNUUkxfUElOKDEwMSwgIkdQSU9fMTAxIiksCisJUElOQ1RSTF9QSU4oMTAyLCAiR1BJT18xMDIiKSwKKwlQSU5DVFJMX1BJTigxMDMsICJHUElPXzEwMyIpLAorCVBJTkNUUkxfUElOKDEwNCwgIkdQSU9fMTA0IiksCisJUElOQ1RSTF9QSU4oMTA1LCAiR1BJT18xMDUiKSwKKwlQSU5DVFJMX1BJTigxMDYsICJHUElPXzEwNiIpLAorCVBJTkNUUkxfUElOKDEwNywgIkdQSU9fMTA3IiksCisJUElOQ1RSTF9QSU4oMTA4LCAiR1BJT18xMDgiKSwKKwlQSU5DVFJMX1BJTigxMDksICJHUElPXzEwOSIpLAorCVBJTkNUUkxfUElOKDExMCwgIkdQSU9fMTEwIiksCisJUElOQ1RSTF9QSU4oMTExLCAiR1BJT18xMTEiKSwKKwlQSU5DVFJMX1BJTigxMTIsICJHUElPXzExMiIpLAorCVBJTkNUUkxfUElOKDExMywgIkdQSU9fMTEzIiksCisJUElOQ1RSTF9QSU4oMTE0LCAiR1BJT18xMTQiKSwKKwlQSU5DVFJMX1BJTigxMTUsICJHUElPXzExNSIpLAorCVBJTkNUUkxfUElOKDExNiwgIkdQSU9fMTE2IiksCisJUElOQ1RSTF9QSU4oMTE3LCAiR1BJT18xMTciKSwKKwlQSU5DVFJMX1BJTigxMTgsICJHUElPXzExOCIpLAorCVBJTkNUUkxfUElOKDExOSwgIlVGU19SRVNFVCIpLAorCVBJTkNUUkxfUElOKDEyMCwgIlNEQzFfUkNMSyIpLAorCVBJTkNUUkxfUElOKDEyMSwgIlNEQzFfQ0xLIiksCisJUElOQ1RSTF9QSU4oMTIyLCAiU0RDMV9DTUQiKSwKKwlQSU5DVFJMX1BJTigxMjMsICJTREMxX0RBVEEiKSwKKwlQSU5DVFJMX1BJTigxMjQsICJTREMyX0NMSyIpLAorCVBJTkNUUkxfUElOKDEyNSwgIlNEQzJfQ01EIiksCisJUElOQ1RSTF9QSU4oMTI2LCAiU0RDMl9EQVRBIiksCit9OworCisjZGVmaW5lIERFQ0xBUkVfTVNNX0dQSU9fUElOUyhwaW4pIFwKKwlzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGdwaW8jI3BpbiMjX3BpbnNbXSA9IHsgcGluIH0KK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygwKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygyKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygzKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg0KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg1KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg2KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg3KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg4KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg5KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxMCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMTEpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDEyKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxMyk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMTQpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDE1KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxNik7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMTcpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDE4KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxOSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMjApOworREVDTEFSRV9NU01fR1BJT19QSU5TKDIxKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygyMik7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMjMpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDI0KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygyNSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMjYpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDI3KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygyOCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMjkpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDMwKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygzMSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMzIpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDMzKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygzNCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMzUpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDM2KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygzNyk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMzgpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDM5KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg0MCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNDEpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDQyKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg0Myk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNDQpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDQ1KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg0Nik7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNDcpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDQ4KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg0OSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNTApOworREVDTEFSRV9NU01fR1BJT19QSU5TKDUxKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg1Mik7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNTMpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDU0KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg1NSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNTYpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDU3KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg1OCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNTkpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDYwKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg2MSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNjIpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDYzKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg2NCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNjUpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDY2KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg2Nyk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNjgpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDY5KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg3MCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNzEpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDcyKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg3Myk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNzQpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDc1KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg3Nik7CitERUNMQVJFX01TTV9HUElPX1BJTlMoNzcpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDc4KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg3OSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoODApOworREVDTEFSRV9NU01fR1BJT19QSU5TKDgxKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg4Mik7CitERUNMQVJFX01TTV9HUElPX1BJTlMoODMpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDg0KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg4NSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoODYpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDg3KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg4OCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoODkpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDkwKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg5MSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoOTIpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDkzKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg5NCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoOTUpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDk2KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUyg5Nyk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoOTgpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDk5KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxMDApOworREVDTEFSRV9NU01fR1BJT19QSU5TKDEwMSk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMTAyKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxMDMpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDEwNCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMTA1KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxMDYpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDEwNyk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMTA4KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxMDkpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDExMCk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMTExKTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxMTIpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDExMyk7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMTE0KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxMTUpOworREVDTEFSRV9NU01fR1BJT19QSU5TKDExNik7CitERUNMQVJFX01TTV9HUElPX1BJTlMoMTE3KTsKK0RFQ0xBUkVfTVNNX0dQSU9fUElOUygxMTgpOworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHVmc19yZXNldF9waW5zW10gPSB7IDExOSB9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzZGMxX3JjbGtfcGluc1tdID0geyAxMjAgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc2RjMV9jbGtfcGluc1tdID0geyAxMjEgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc2RjMV9jbWRfcGluc1tdID0geyAxMjIgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc2RjMV9kYXRhX3BpbnNbXSA9IHsgMTIzIH07CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHNkYzJfY2xrX3BpbnNbXSA9IHsgMTI0IH07CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHNkYzJfY21kX3BpbnNbXSA9IHsgMTI1IH07CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHNkYzJfZGF0YV9waW5zW10gPSB7IDEyNiB9OworCitlbnVtIHNjNzE4MF9mdW5jdGlvbnMgeworCW1zbV9tdXhfYWRzcF9leHQsCisJbXNtX211eF9hZ2VyYV9wbGwsCisJbXNtX211eF9hb3NzX2N0aSwKKwltc21fbXV4X2F0ZXN0X2NoYXIsCisJbXNtX211eF9hdGVzdF9jaGFyMCwKKwltc21fbXV4X2F0ZXN0X2NoYXIxLAorCW1zbV9tdXhfYXRlc3RfY2hhcjIsCisJbXNtX211eF9hdGVzdF9jaGFyMywKKwltc21fbXV4X2F0ZXN0X3RzZW5zLAorCW1zbV9tdXhfYXRlc3RfdHNlbnMyLAorCW1zbV9tdXhfYXRlc3RfdXNiMSwKKwltc21fbXV4X2F0ZXN0X3VzYjIsCisJbXNtX211eF9hdGVzdF91c2IxMCwKKwltc21fbXV4X2F0ZXN0X3VzYjExLAorCW1zbV9tdXhfYXRlc3RfdXNiMTIsCisJbXNtX211eF9hdGVzdF91c2IxMywKKwltc21fbXV4X2F0ZXN0X3VzYjIwLAorCW1zbV9tdXhfYXRlc3RfdXNiMjEsCisJbXNtX211eF9hdGVzdF91c2IyMiwKKwltc21fbXV4X2F0ZXN0X3VzYjIzLAorCW1zbV9tdXhfYXVkaW9fcmVmLAorCW1zbV9tdXhfYnRmbV9zbGltYnVzLAorCW1zbV9tdXhfY2FtX21jbGssCisJbXNtX211eF9jY2lfYXN5bmMsCisJbXNtX211eF9jY2lfaTJjLAorCW1zbV9tdXhfY2NpX3RpbWVyMCwKKwltc21fbXV4X2NjaV90aW1lcjEsCisJbXNtX211eF9jY2lfdGltZXIyLAorCW1zbV9tdXhfY2NpX3RpbWVyMywKKwltc21fbXV4X2NjaV90aW1lcjQsCisJbXNtX211eF9jcmlfdHJuZywKKwltc21fbXV4X2RiZ19vdXQsCisJbXNtX211eF9kZHJfYmlzdCwKKwltc21fbXV4X2Rkcl9weGkwLAorCW1zbV9tdXhfZGRyX3B4aTEsCisJbXNtX211eF9kZHJfcHhpMiwKKwltc21fbXV4X2Rkcl9weGkzLAorCW1zbV9tdXhfZHBfaG90LAorCW1zbV9tdXhfZWRwX2xjZCwKKwltc21fbXV4X2djY19ncDEsCisJbXNtX211eF9nY2NfZ3AyLAorCW1zbV9tdXhfZ2NjX2dwMywKKwltc21fbXV4X2dwaW8sCisJbXNtX211eF9ncF9wZG0wLAorCW1zbV9tdXhfZ3BfcGRtMSwKKwltc21fbXV4X2dwX3BkbTIsCisJbXNtX211eF9ncHNfdHgsCisJbXNtX211eF9qaXR0ZXJfYmlzdCwKKwltc21fbXV4X2xkb19lbiwKKwltc21fbXV4X2xkb191cGRhdGUsCisJbXNtX211eF9scGFzc19leHQsCisJbXNtX211eF9tZHBfdnN5bmMsCisJbXNtX211eF9tZHBfdnN5bmMwLAorCW1zbV9tdXhfbWRwX3ZzeW5jMSwKKwltc21fbXV4X21kcF92c3luYzIsCisJbXNtX211eF9tZHBfdnN5bmMzLAorCW1zbV9tdXhfbWkyc18xLAorCW1zbV9tdXhfbWkyc18wLAorCW1zbV9tdXhfbWkyc18yLAorCW1zbV9tdXhfbXNzX2x0ZSwKKwltc21fbXV4X21fdm9jLAorCW1zbV9tdXhfcGFfaW5kaWNhdG9yLAorCW1zbV9tdXhfcGhhc2VfZmxhZywKKwltc21fbXV4X1BMTF9CSVNULAorCW1zbV9tdXhfcGxsX2J5cGFzc25sLAorCW1zbV9tdXhfcGxsX3Jlc2V0LAorCW1zbV9tdXhfcHJuZ19yb3NjLAorCW1zbV9tdXhfcWRzcywKKwltc21fbXV4X3Fkc3NfY3RpLAorCW1zbV9tdXhfcWxpbmtfZW5hYmxlLAorCW1zbV9tdXhfcWxpbmtfcmVxdWVzdCwKKwltc21fbXV4X3FzcGlfY2xrLAorCW1zbV9tdXhfcXNwaV9jcywKKwltc21fbXV4X3FzcGlfZGF0YSwKKwltc21fbXV4X3F1cDAwLAorCW1zbV9tdXhfcXVwMDEsCisJbXNtX211eF9xdXAwMiwKKwltc21fbXV4X3F1cDAzLAorCW1zbV9tdXhfcXVwMDQsCisJbXNtX211eF9xdXAwNSwKKwltc21fbXV4X3F1cDEwLAorCW1zbV9tdXhfcXVwMTEsCisJbXNtX211eF9xdXAxMiwKKwltc21fbXV4X3F1cDEzLAorCW1zbV9tdXhfcXVwMTQsCisJbXNtX211eF9xdXAxNSwKKwltc21fbXV4X3NkYzFfdGIsCisJbXNtX211eF9zZGMyX3RiLAorCW1zbV9tdXhfc2Rfd3JpdGUsCisJbXNtX211eF9zcF9jbXUsCisJbXNtX211eF90Z3VfY2gwLAorCW1zbV9tdXhfdGd1X2NoMSwKKwltc21fbXV4X3RndV9jaDIsCisJbXNtX211eF90Z3VfY2gzLAorCW1zbV9tdXhfdHNlbnNlX3B3bTEsCisJbXNtX211eF90c2Vuc2VfcHdtMiwKKwltc21fbXV4X3VpbTEsCisJbXNtX211eF91aW0yLAorCW1zbV9tdXhfdWltX2JhdHQsCisJbXNtX211eF91c2JfcGh5LAorCW1zbV9tdXhfdmZyXzEsCisJbXNtX211eF9fVl9HUElPLAorCW1zbV9tdXhfX1ZfUFBTX0lOLAorCW1zbV9tdXhfX1ZfUFBTX09VVCwKKwltc21fbXV4X3ZzZW5zZV90cmlnZ2VyLAorCW1zbV9tdXhfd2xhbjFfYWRjMCwKKwltc21fbXV4X3dsYW4xX2FkYzEsCisJbXNtX211eF93bGFuMl9hZGMwLAorCW1zbV9tdXhfd2xhbjJfYWRjMSwKKwltc21fbXV4X18sCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHF1cDAxX2dyb3Vwc1tdID0geworCSJncGlvMCIsICJncGlvMSIsICJncGlvMiIsICJncGlvMyIsICJncGlvMTIiLCAiZ3Bpbzk0IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGdwaW9fZ3JvdXBzW10gPSB7CisJImdwaW8wIiwgImdwaW8xIiwgImdwaW8yIiwgImdwaW8zIiwgImdwaW80IiwgImdwaW81IiwgImdwaW82IiwgImdwaW83IiwKKwkiZ3BpbzgiLCAiZ3BpbzkiLCAiZ3BpbzEwIiwgImdwaW8xMSIsICJncGlvMTIiLCAiZ3BpbzEzIiwgImdwaW8xNCIsCisJImdwaW8xNSIsICJncGlvMTYiLCAiZ3BpbzE3IiwgImdwaW8xOCIsICJncGlvMTkiLCAiZ3BpbzIwIiwgImdwaW8yMSIsCisJImdwaW8yMiIsICJncGlvMjMiLCAiZ3BpbzI0IiwgImdwaW8yNSIsICJncGlvMjYiLCAiZ3BpbzI3IiwgImdwaW8yOCIsCisJImdwaW8yOSIsICJncGlvMzAiLCAiZ3BpbzMxIiwgImdwaW8zMiIsICJncGlvMzMiLCAiZ3BpbzM0IiwgImdwaW8zNSIsCisJImdwaW8zNiIsICJncGlvMzciLCAiZ3BpbzM4IiwgImdwaW8zOSIsICJncGlvNDAiLCAiZ3BpbzQxIiwgImdwaW80MiIsCisJImdwaW80MyIsICJncGlvNDQiLCAiZ3BpbzQ1IiwgImdwaW80NiIsICJncGlvNDciLCAiZ3BpbzQ4IiwgImdwaW80OSIsCisJImdwaW81MCIsICJncGlvNTEiLCAiZ3BpbzUyIiwgImdwaW81MyIsICJncGlvNTQiLCAiZ3BpbzU1IiwgImdwaW81NiIsCisJImdwaW81NyIsICJncGlvNTgiLCAiZ3BpbzU5IiwgImdwaW82MCIsICJncGlvNjEiLCAiZ3BpbzYyIiwgImdwaW82MyIsCisJImdwaW82NCIsICJncGlvNjUiLCAiZ3BpbzY2IiwgImdwaW82NyIsICJncGlvNjgiLCAiZ3BpbzY5IiwgImdwaW83MCIsCisJImdwaW83MSIsICJncGlvNzIiLCAiZ3BpbzczIiwgImdwaW83NCIsICJncGlvNzUiLCAiZ3Bpbzc2IiwgImdwaW83NyIsCisJImdwaW83OCIsICJncGlvNzkiLCAiZ3BpbzgwIiwgImdwaW84MSIsICJncGlvODIiLCAiZ3BpbzgzIiwgImdwaW84NCIsCisJImdwaW84NSIsICJncGlvODYiLCAiZ3Bpbzg3IiwgImdwaW84OCIsICJncGlvODkiLCAiZ3BpbzkwIiwgImdwaW85MSIsCisJImdwaW85MiIsICJncGlvOTMiLCAiZ3Bpbzk0IiwgImdwaW85NSIsICJncGlvOTYiLCAiZ3Bpbzk3IiwgImdwaW85OCIsCisJImdwaW85OSIsICJncGlvMTAwIiwgImdwaW8xMDEiLCAiZ3BpbzEwMiIsICJncGlvMTAzIiwgImdwaW8xMDQiLAorCSJncGlvMTA1IiwgImdwaW8xMDYiLCAiZ3BpbzEwNyIsICJncGlvMTA4IiwgImdwaW8xMDkiLCAiZ3BpbzExMCIsCisJImdwaW8xMTEiLCAiZ3BpbzExMiIsICJncGlvMTEzIiwgImdwaW8xMTQiLCAiZ3BpbzExNSIsICJncGlvMTE2IiwKKwkiZ3BpbzExNyIsICJncGlvMTE4IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBoYXNlX2ZsYWdfZ3JvdXBzW10gPSB7CisJImdwaW8wIiwgImdwaW8xIiwgImdwaW8yIiwgImdwaW84IiwgImdwaW85IiwKKwkiZ3BpbzExIiwgImdwaW8xMiIsICJncGlvMTciLCAiZ3BpbzE4IiwgImdwaW8xOSIsCisJImdwaW8yMCIsICJncGlvMjUiLCAiZ3BpbzI2IiwgImdwaW8yNyIsICJncGlvMjgiLAorCSJncGlvMzIiLCAiZ3BpbzMzIiwgImdwaW8zNCIsICJncGlvMzUiLCAiZ3BpbzM2IiwKKwkiZ3BpbzM3IiwgImdwaW8zOCIsICJncGlvMzkiLCAiZ3BpbzQyIiwgImdwaW80NCIsCisJImdwaW81NiIsICJncGlvNTciLCAiZ3BpbzU4IiwgImdwaW82MyIsICJncGlvNjQiLAorCSJncGlvMTA4IiwgImdwaW8xMDkiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY3JpX3RybmdfZ3JvdXBzW10gPSB7CisJImdwaW8wIiwgImdwaW8xIiwgImdwaW8yIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwX2NtdV9ncm91cHNbXSA9IHsKKwkiZ3BpbzMiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZGJnX291dF9ncm91cHNbXSA9IHsKKwkiZ3BpbzMiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcWRzc19jdGlfZ3JvdXBzW10gPSB7CisJImdwaW8zIiwgImdwaW80IiwgImdwaW84IiwgImdwaW85IiwgImdwaW8zMyIsICJncGlvNDQiLCAiZ3BpbzQ1IiwKKwkiZ3BpbzcyIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNkYzFfdGJfZ3JvdXBzW10gPSB7CisJImdwaW80IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNkYzJfdGJfZ3JvdXBzW10gPSB7CisJImdwaW81IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHF1cDExX2dyb3Vwc1tdID0geworCSJncGlvNiIsICJncGlvNyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkZHJfYmlzdF9ncm91cHNbXSA9IHsKKwkiZ3BpbzciLCAiZ3BpbzgiLCAiZ3BpbzkiLCAiZ3BpbzEwIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGdwX3BkbTFfZ3JvdXBzW10gPSB7CisJImdwaW84IiwgImdwaW81MCIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtZHBfdnN5bmNfZ3JvdXBzW10gPSB7CisJImdwaW8xMCIsICJncGlvMTEiLCAiZ3BpbzEyIiwgImdwaW83MCIsICJncGlvNzEiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZWRwX2xjZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzExIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRkcl9weGkyX2dyb3Vwc1tdID0geworCSJncGlvMTEiLCAiZ3BpbzI2IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG1fdm9jX2dyb3Vwc1tdID0geworCSJncGlvMTIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgd2xhbjJfYWRjMF9ncm91cHNbXSA9IHsKKwkiZ3BpbzEyIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF0ZXN0X3VzYjEwX2dyb3Vwc1tdID0geworCSJncGlvMTIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZGRyX3B4aTNfZ3JvdXBzW10gPSB7CisJImdwaW8xMiIsICJncGlvMTA4IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNhbV9tY2xrX2dyb3Vwc1tdID0geworCSJncGlvMTMiLCAiZ3BpbzE0IiwgImdwaW8xNSIsICJncGlvMTYiLCAiZ3BpbzIzIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBsbF9ieXBhc3NubF9ncm91cHNbXSA9IHsKKwkiZ3BpbzEzIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHFkc3NfZ3JvdXBzW10gPSB7CisJImdwaW8xMyIsICJncGlvODYiLCAiZ3BpbzE0IiwgImdwaW84NyIsCisJImdwaW8xNSIsICJncGlvODgiLCAiZ3BpbzE2IiwgImdwaW84OSIsCisJImdwaW8xNyIsICJncGlvOTAiLCAiZ3BpbzE4IiwgImdwaW85MSIsCisJImdwaW8xOSIsICJncGlvMjEiLCAiZ3BpbzIwIiwgImdwaW8yMiIsCisJImdwaW8yMyIsICJncGlvNTQiLCAiZ3BpbzI0IiwgImdwaW8zNiIsCisJImdwaW8yNSIsICJncGlvNTciLCAiZ3BpbzI2IiwgImdwaW8zMSIsCisJImdwaW8yNyIsICJncGlvNTYiLCAiZ3BpbzI4IiwgImdwaW8yOSIsCisJImdwaW8zMCIsICJncGlvMzUiLCAiZ3BpbzkzIiwgImdwaW8xMDQiLAorCSJncGlvMzQiLCAiZ3BpbzUzIiwgImdwaW8zNyIsICJncGlvNTUiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGxsX3Jlc2V0X2dyb3Vwc1tdID0geworCSJncGlvMTQiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcXVwMDJfZ3JvdXBzW10gPSB7CisJImdwaW8xNSIsICJncGlvMTYiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY2NpX2kyY19ncm91cHNbXSA9IHsKKwkiZ3BpbzE3IiwgImdwaW8xOCIsICJncGlvMTkiLCAiZ3BpbzIwIiwgImdwaW8yNyIsICJncGlvMjgiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgd2xhbjFfYWRjMF9ncm91cHNbXSA9IHsKKwkiZ3BpbzE3IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF0ZXN0X3VzYjEyX2dyb3Vwc1tdID0geworCSJncGlvMTciLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZGRyX3B4aTFfZ3JvdXBzW10gPSB7CisJImdwaW8xNyIsICJncGlvNDQiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXRlc3RfY2hhcl9ncm91cHNbXSA9IHsKKwkiZ3BpbzE3IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFnZXJhX3BsbF9ncm91cHNbXSA9IHsKKwkiZ3BpbzE4IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZzZW5zZV90cmlnZ2VyX2dyb3Vwc1tdID0geworCSJncGlvMTgiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZGRyX3B4aTBfZ3JvdXBzW10gPSB7CisJImdwaW8xOCIsICJncGlvMjciLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXRlc3RfY2hhcjNfZ3JvdXBzW10gPSB7CisJImdwaW8xOCIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhdGVzdF9jaGFyMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzE5IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF0ZXN0X2NoYXIxX2dyb3Vwc1tdID0geworCSJncGlvMjAiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY2NpX3RpbWVyMF9ncm91cHNbXSA9IHsKKwkiZ3BpbzIxIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGdjY19ncDJfZ3JvdXBzW10gPSB7CisJImdwaW8yMSIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhdGVzdF9jaGFyMF9ncm91cHNbXSA9IHsKKwkiZ3BpbzIxIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNjaV90aW1lcjFfZ3JvdXBzW10gPSB7CisJImdwaW8yMiIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBnY2NfZ3AzX2dyb3Vwc1tdID0geworCSJncGlvMjIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY2NpX3RpbWVyMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzIzIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNjaV90aW1lcjNfZ3JvdXBzW10gPSB7CisJImdwaW8yNCIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjY2lfYXN5bmNfZ3JvdXBzW10gPSB7CisJImdwaW8yNCIsICJncGlvMjUiLCAiZ3BpbzI2IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNjaV90aW1lcjRfZ3JvdXBzW10gPSB7CisJImdwaW8yNSIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBxdXAwNV9ncm91cHNbXSA9IHsKKwkiZ3BpbzI1IiwgImdwaW8yNiIsICJncGlvMjciLCAiZ3BpbzI4IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF0ZXN0X3RzZW5zX2dyb3Vwc1tdID0geworCSJncGlvMjYiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXRlc3RfdXNiMTFfZ3JvdXBzW10gPSB7CisJImdwaW8yNiIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBQTExfQklTVF9ncm91cHNbXSA9IHsKKwkiZ3BpbzI3IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNkX3dyaXRlX2dyb3Vwc1tdID0geworCSJncGlvMzMiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcXVwMDBfZ3JvdXBzW10gPSB7CisJImdwaW8zNCIsICJncGlvMzUiLCAiZ3BpbzM2IiwgImdwaW8zNyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBncF9wZG0wX2dyb3Vwc1tdID0geworCSJncGlvMzciLCAiZ3BpbzY4IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHF1cDAzX2dyb3Vwc1tdID0geworCSJncGlvMzgiLCAiZ3BpbzM5IiwgImdwaW80MCIsICJncGlvNDEiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXRlc3RfdHNlbnMyX2dyb3Vwc1tdID0geworCSJncGlvMzkiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgd2xhbjJfYWRjMV9ncm91cHNbXSA9IHsKKwkiZ3BpbzM5IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF0ZXN0X3VzYjFfZ3JvdXBzW10gPSB7CisJImdwaW8zOSIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBxdXAxMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzQyIiwgImdwaW80MyIsICJncGlvNDQiLCAiZ3BpbzQ1IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHdsYW4xX2FkYzFfZ3JvdXBzW10gPSB7CisJImdwaW80NCIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhdGVzdF91c2IxM19ncm91cHNbXSA9IHsKKwkiZ3BpbzQ0IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHF1cDEzX2dyb3Vwc1tdID0geworCSJncGlvNDYiLCAiZ3BpbzQ3IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGdjY19ncDFfZ3JvdXBzW10gPSB7CisJImdwaW80OCIsICJncGlvNTYiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbWkyc18xX2dyb3Vwc1tdID0geworCSJncGlvNDkiLCAiZ3BpbzUwIiwgImdwaW81MSIsICJncGlvNTIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYnRmbV9zbGltYnVzX2dyb3Vwc1tdID0geworCSJncGlvNDkiLCAiZ3BpbzUwIiwgImdwaW81MSIsICJncGlvNTIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXRlc3RfdXNiMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzUxIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF0ZXN0X3VzYjIzX2dyb3Vwc1tdID0geworCSJncGlvNTIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbWkyc18wX2dyb3Vwc1tdID0geworCSJncGlvNTMiLCAiZ3BpbzU0IiwgImdwaW81NSIsICJncGlvNTYiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcXVwMTVfZ3JvdXBzW10gPSB7CisJImdwaW81MyIsICJncGlvNTQiLCAiZ3BpbzU1IiwgImdwaW81NiIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhdGVzdF91c2IyMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzUzIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF0ZXN0X3VzYjIxX2dyb3Vwc1tdID0geworCSJncGlvNTQiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXRlc3RfdXNiMjBfZ3JvdXBzW10gPSB7CisJImdwaW81NSIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBscGFzc19leHRfZ3JvdXBzW10gPSB7CisJImdwaW81NyIsICJncGlvNTgiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXVkaW9fcmVmX2dyb3Vwc1tdID0geworCSJncGlvNTciLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgaml0dGVyX2Jpc3RfZ3JvdXBzW10gPSB7CisJImdwaW81NyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBncF9wZG0yX2dyb3Vwc1tdID0geworCSJncGlvNTciLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcXVwMTBfZ3JvdXBzW10gPSB7CisJImdwaW81OSIsICJncGlvNjAiLCAiZ3BpbzYxIiwgImdwaW82MiIsICJncGlvNjgiLCAiZ3BpbzcyIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRndV9jaDNfZ3JvdXBzW10gPSB7CisJImdwaW82MiIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBxc3BpX2Nsa19ncm91cHNbXSA9IHsKKwkiZ3BpbzYzIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG1kcF92c3luYzBfZ3JvdXBzW10gPSB7CisJImdwaW82MyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtaTJzXzJfZ3JvdXBzW10gPSB7CisJImdwaW82MyIsICJncGlvNjQiLCAiZ3BpbzY1IiwgImdwaW82NiIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtZHBfdnN5bmMxX2dyb3Vwc1tdID0geworCSJncGlvNjMiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbWRwX3ZzeW5jMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzYzIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG1kcF92c3luYzNfZ3JvdXBzW10gPSB7CisJImdwaW82MyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0Z3VfY2gwX2dyb3Vwc1tdID0geworCSJncGlvNjMiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcXNwaV9kYXRhX2dyb3Vwc1tdID0geworCSJncGlvNjQiLCAiZ3BpbzY1IiwgImdwaW82NiIsICJncGlvNjciLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdGd1X2NoMV9ncm91cHNbXSA9IHsKKwkiZ3BpbzY0IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZmcl8xX2dyb3Vwc1tdID0geworCSJncGlvNjUiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdGd1X2NoMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzY1IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHFzcGlfY3NfZ3JvdXBzW10gPSB7CisJImdwaW82OCIsICJncGlvNzIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbGRvX2VuX2dyb3Vwc1tdID0geworCSJncGlvNzAiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbGRvX3VwZGF0ZV9ncm91cHNbXSA9IHsKKwkiZ3BpbzcxIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBybmdfcm9zY19ncm91cHNbXSA9IHsKKwkiZ3BpbzcyIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVpbTJfZ3JvdXBzW10gPSB7CisJImdwaW83NSIsICJncGlvNzYiLCAiZ3Bpbzc3IiwgImdwaW83OCIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1aW0xX2dyb3Vwc1tdID0geworCSJncGlvNzkiLCAiZ3BpbzgwIiwgImdwaW84MSIsICJncGlvODIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgX1ZfR1BJT19ncm91cHNbXSA9IHsKKwkiZ3BpbzgzIiwgImdwaW84NCIsICJncGlvMTA3IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IF9WX1BQU19JTl9ncm91cHNbXSA9IHsKKwkiZ3BpbzgzIiwgImdwaW84NCIsICJncGlvMTA3IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IF9WX1BQU19PVVRfZ3JvdXBzW10gPSB7CisJImdwaW84MyIsICJncGlvODQiLCAiZ3BpbzEwNyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBncHNfdHhfZ3JvdXBzW10gPSB7CisJImdwaW84MyIsICJncGlvODQiLCAiZ3BpbzEwNyIsICJncGlvMTA5IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVpbV9iYXR0X2dyb3Vwc1tdID0geworCSJncGlvODUiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZHBfaG90X2dyb3Vwc1tdID0geworCSJncGlvODUiLCAiZ3BpbzExNyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhb3NzX2N0aV9ncm91cHNbXSA9IHsKKwkiZ3Bpbzg1IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHF1cDE0X2dyb3Vwc1tdID0geworCSJncGlvODYiLCAiZ3Bpbzg3IiwgImdwaW84OCIsICJncGlvODkiLCAiZ3BpbzkwIiwgImdwaW85MSIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhZHNwX2V4dF9ncm91cHNbXSA9IHsKKwkiZ3Bpbzg3IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRzZW5zZV9wd20xX2dyb3Vwc1tdID0geworCSJncGlvODgiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHNlbnNlX3B3bTJfZ3JvdXBzW10gPSB7CisJImdwaW84OCIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBxbGlua19yZXF1ZXN0X2dyb3Vwc1tdID0geworCSJncGlvOTYiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcWxpbmtfZW5hYmxlX2dyb3Vwc1tdID0geworCSJncGlvOTciLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGFfaW5kaWNhdG9yX2dyb3Vwc1tdID0geworCSJncGlvOTkiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiX3BoeV9ncm91cHNbXSA9IHsKKwkiZ3BpbzEwNCIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtc3NfbHRlX2dyb3Vwc1tdID0geworCSJncGlvMTA4IiwgImdwaW8xMDkiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcXVwMDRfZ3JvdXBzW10gPSB7CisJImdwaW8xMTUiLCAiZ3BpbzExNiIsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG1zbV9mdW5jdGlvbiBzYzcxODBfZnVuY3Rpb25zW10gPSB7CisJRlVOQ1RJT04oYWRzcF9leHQpLAorCUZVTkNUSU9OKGFnZXJhX3BsbCksCisJRlVOQ1RJT04oYW9zc19jdGkpLAorCUZVTkNUSU9OKGF0ZXN0X2NoYXIpLAorCUZVTkNUSU9OKGF0ZXN0X2NoYXIwKSwKKwlGVU5DVElPTihhdGVzdF9jaGFyMSksCisJRlVOQ1RJT04oYXRlc3RfY2hhcjIpLAorCUZVTkNUSU9OKGF0ZXN0X2NoYXIzKSwKKwlGVU5DVElPTihhdGVzdF90c2VucyksCisJRlVOQ1RJT04oYXRlc3RfdHNlbnMyKSwKKwlGVU5DVElPTihhdGVzdF91c2IxKSwKKwlGVU5DVElPTihhdGVzdF91c2IyKSwKKwlGVU5DVElPTihhdGVzdF91c2IxMCksCisJRlVOQ1RJT04oYXRlc3RfdXNiMTEpLAorCUZVTkNUSU9OKGF0ZXN0X3VzYjEyKSwKKwlGVU5DVElPTihhdGVzdF91c2IxMyksCisJRlVOQ1RJT04oYXRlc3RfdXNiMjApLAorCUZVTkNUSU9OKGF0ZXN0X3VzYjIxKSwKKwlGVU5DVElPTihhdGVzdF91c2IyMiksCisJRlVOQ1RJT04oYXRlc3RfdXNiMjMpLAorCUZVTkNUSU9OKGF1ZGlvX3JlZiksCisJRlVOQ1RJT04oYnRmbV9zbGltYnVzKSwKKwlGVU5DVElPTihjYW1fbWNsayksCisJRlVOQ1RJT04oY2NpX2FzeW5jKSwKKwlGVU5DVElPTihjY2lfaTJjKSwKKwlGVU5DVElPTihjY2lfdGltZXIwKSwKKwlGVU5DVElPTihjY2lfdGltZXIxKSwKKwlGVU5DVElPTihjY2lfdGltZXIyKSwKKwlGVU5DVElPTihjY2lfdGltZXIzKSwKKwlGVU5DVElPTihjY2lfdGltZXI0KSwKKwlGVU5DVElPTihjcmlfdHJuZyksCisJRlVOQ1RJT04oZGJnX291dCksCisJRlVOQ1RJT04oZGRyX2Jpc3QpLAorCUZVTkNUSU9OKGRkcl9weGkwKSwKKwlGVU5DVElPTihkZHJfcHhpMSksCisJRlVOQ1RJT04oZGRyX3B4aTIpLAorCUZVTkNUSU9OKGRkcl9weGkzKSwKKwlGVU5DVElPTihkcF9ob3QpLAorCUZVTkNUSU9OKGVkcF9sY2QpLAorCUZVTkNUSU9OKGdjY19ncDEpLAorCUZVTkNUSU9OKGdjY19ncDIpLAorCUZVTkNUSU9OKGdjY19ncDMpLAorCUZVTkNUSU9OKGdwaW8pLAorCUZVTkNUSU9OKGdwX3BkbTApLAorCUZVTkNUSU9OKGdwX3BkbTEpLAorCUZVTkNUSU9OKGdwX3BkbTIpLAorCUZVTkNUSU9OKGdwc190eCksCisJRlVOQ1RJT04oaml0dGVyX2Jpc3QpLAorCUZVTkNUSU9OKGxkb19lbiksCisJRlVOQ1RJT04obGRvX3VwZGF0ZSksCisJRlVOQ1RJT04obHBhc3NfZXh0KSwKKwlGVU5DVElPTihtZHBfdnN5bmMpLAorCUZVTkNUSU9OKG1kcF92c3luYzApLAorCUZVTkNUSU9OKG1kcF92c3luYzEpLAorCUZVTkNUSU9OKG1kcF92c3luYzIpLAorCUZVTkNUSU9OKG1kcF92c3luYzMpLAorCUZVTkNUSU9OKG1pMnNfMCksCisJRlVOQ1RJT04obWkyc18xKSwKKwlGVU5DVElPTihtaTJzXzIpLAorCUZVTkNUSU9OKG1zc19sdGUpLAorCUZVTkNUSU9OKG1fdm9jKSwKKwlGVU5DVElPTihwYV9pbmRpY2F0b3IpLAorCUZVTkNUSU9OKHBoYXNlX2ZsYWcpLAorCUZVTkNUSU9OKFBMTF9CSVNUKSwKKwlGVU5DVElPTihwbGxfYnlwYXNzbmwpLAorCUZVTkNUSU9OKHBsbF9yZXNldCksCisJRlVOQ1RJT04ocHJuZ19yb3NjKSwKKwlGVU5DVElPTihxZHNzKSwKKwlGVU5DVElPTihxZHNzX2N0aSksCisJRlVOQ1RJT04ocWxpbmtfZW5hYmxlKSwKKwlGVU5DVElPTihxbGlua19yZXF1ZXN0KSwKKwlGVU5DVElPTihxc3BpX2NsayksCisJRlVOQ1RJT04ocXNwaV9jcyksCisJRlVOQ1RJT04ocXNwaV9kYXRhKSwKKwlGVU5DVElPTihxdXAwMCksCisJRlVOQ1RJT04ocXVwMDEpLAorCUZVTkNUSU9OKHF1cDAyKSwKKwlGVU5DVElPTihxdXAwMyksCisJRlVOQ1RJT04ocXVwMDQpLAorCUZVTkNUSU9OKHF1cDA1KSwKKwlGVU5DVElPTihxdXAxMCksCisJRlVOQ1RJT04ocXVwMTEpLAorCUZVTkNUSU9OKHF1cDEyKSwKKwlGVU5DVElPTihxdXAxMyksCisJRlVOQ1RJT04ocXVwMTQpLAorCUZVTkNUSU9OKHF1cDE1KSwKKwlGVU5DVElPTihzZGMxX3RiKSwKKwlGVU5DVElPTihzZGMyX3RiKSwKKwlGVU5DVElPTihzZF93cml0ZSksCisJRlVOQ1RJT04oc3BfY211KSwKKwlGVU5DVElPTih0Z3VfY2gwKSwKKwlGVU5DVElPTih0Z3VfY2gxKSwKKwlGVU5DVElPTih0Z3VfY2gyKSwKKwlGVU5DVElPTih0Z3VfY2gzKSwKKwlGVU5DVElPTih0c2Vuc2VfcHdtMSksCisJRlVOQ1RJT04odHNlbnNlX3B3bTIpLAorCUZVTkNUSU9OKHVpbTEpLAorCUZVTkNUSU9OKHVpbTIpLAorCUZVTkNUSU9OKHVpbV9iYXR0KSwKKwlGVU5DVElPTih1c2JfcGh5KSwKKwlGVU5DVElPTih2ZnJfMSksCisJRlVOQ1RJT04oX1ZfR1BJTyksCisJRlVOQ1RJT04oX1ZfUFBTX0lOKSwKKwlGVU5DVElPTihfVl9QUFNfT1VUKSwKKwlGVU5DVElPTih2c2Vuc2VfdHJpZ2dlciksCisJRlVOQ1RJT04od2xhbjFfYWRjMCksCisJRlVOQ1RJT04od2xhbjFfYWRjMSksCisJRlVOQ1RJT04od2xhbjJfYWRjMCksCisJRlVOQ1RJT04od2xhbjJfYWRjMSksCit9OworCisvKiBFdmVyeSBwaW4gaXMgbWFpbnRhaW5lZCBhcyBhIHNpbmdsZSBncm91cCwgYW5kIG1pc3Npbmcgb3Igbm9uLWV4aXN0aW5nIHBpbgorICogd291bGQgYmUgbWFpbnRhaW5lZCBhcyBkdW1teSBncm91cCB0byBzeW5jaHJvbml6ZSBwaW4gZ3JvdXAgaW5kZXggd2l0aAorICogcGluIGRlc2NyaXB0b3IgcmVnaXN0ZXJlZCB3aXRoIHBpbmN0cmwgY29yZS4KKyAqIENsaWVudHMgd291bGQgbm90IGJlIGFibGUgdG8gcmVxdWVzdCB0aGVzZSBkdW1teSBwaW4gZ3JvdXBzLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IG1zbV9waW5ncm91cCBzYzcxODBfZ3JvdXBzW10gPSB7CisJWzBdID0gUElOR1JPVVAoMCwgU09VVEgsIHF1cDAxLCBjcmlfdHJuZywgXywgcGhhc2VfZmxhZywgXywgXywgXywgXywgXyksCisJWzFdID0gUElOR1JPVVAoMSwgU09VVEgsIHF1cDAxLCBjcmlfdHJuZywgXywgcGhhc2VfZmxhZywgXywgXywgXywgXywgXyksCisJWzJdID0gUElOR1JPVVAoMiwgU09VVEgsIHF1cDAxLCBjcmlfdHJuZywgXywgcGhhc2VfZmxhZywgXywgXywgXywgXywgXyksCisJWzNdID0gUElOR1JPVVAoMywgU09VVEgsIHF1cDAxLCBzcF9jbXUsIGRiZ19vdXQsIHFkc3NfY3RpLCBfLCBfLCBfLCBfLCBfKSwKKwlbNF0gPSBQSU5HUk9VUCg0LCBOT1JUSCwgc2RjMV90YiwgXywgcWRzc19jdGksIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs1XSA9IFBJTkdST1VQKDUsIE5PUlRILCBzZGMyX3RiLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNl0gPSBQSU5HUk9VUCg2LCBOT1JUSCwgcXVwMTEsIHF1cDExLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbN10gPSBQSU5HUk9VUCg3LCBOT1JUSCwgcXVwMTEsIHF1cDExLCBkZHJfYmlzdCwgXywgXywgXywgXywgXywgXyksCisJWzhdID0gUElOR1JPVVAoOCwgTk9SVEgsIGdwX3BkbTEsIGRkcl9iaXN0LCBfLCBwaGFzZV9mbGFnLCBxZHNzX2N0aSwgXywgXywgXywgXyksCisJWzldID0gUElOR1JPVVAoOSwgTk9SVEgsIGRkcl9iaXN0LCBfLCBwaGFzZV9mbGFnLCBxZHNzX2N0aSwgXywgXywgXywgXywgXyksCisJWzEwXSA9IFBJTkdST1VQKDEwLCBOT1JUSCwgbWRwX3ZzeW5jLCBkZHJfYmlzdCwgXywgXywgXywgXywgXywgXywgXyksCisJWzExXSA9IFBJTkdST1VQKDExLCBOT1JUSCwgbWRwX3ZzeW5jLCBlZHBfbGNkLCBfLCBwaGFzZV9mbGFnLCBkZHJfcHhpMiwgXywgXywgXywgXyksCisJWzEyXSA9IFBJTkdST1VQKDEyLCBTT1VUSCwgbWRwX3ZzeW5jLCBtX3ZvYywgcXVwMDEsIF8sIHBoYXNlX2ZsYWcsIHdsYW4yX2FkYzAsIGF0ZXN0X3VzYjEwLCBkZHJfcHhpMywgXyksCisJWzEzXSA9IFBJTkdST1VQKDEzLCBTT1VUSCwgY2FtX21jbGssIHBsbF9ieXBhc3NubCwgcWRzcywgXywgXywgXywgXywgXywgXyksCisJWzE0XSA9IFBJTkdST1VQKDE0LCBTT1VUSCwgY2FtX21jbGssIHBsbF9yZXNldCwgcWRzcywgXywgXywgXywgXywgXywgXyksCisJWzE1XSA9IFBJTkdST1VQKDE1LCBTT1VUSCwgY2FtX21jbGssIHF1cDAyLCBxdXAwMiwgcWRzcywgXywgXywgXywgXywgXyksCisJWzE2XSA9IFBJTkdST1VQKDE2LCBTT1VUSCwgY2FtX21jbGssIHF1cDAyLCBxdXAwMiwgcWRzcywgXywgXywgXywgXywgXyksCisJWzE3XSA9IFBJTkdST1VQKDE3LCBTT1VUSCwgY2NpX2kyYywgXywgcGhhc2VfZmxhZywgcWRzcywgXywgd2xhbjFfYWRjMCwgYXRlc3RfdXNiMTIsIGRkcl9weGkxLCBhdGVzdF9jaGFyKSwKKwlbMThdID0gUElOR1JPVVAoMTgsIFNPVVRILCBjY2lfaTJjLCBhZ2VyYV9wbGwsIF8sIHBoYXNlX2ZsYWcsIHFkc3MsIHZzZW5zZV90cmlnZ2VyLCBkZHJfcHhpMCwgYXRlc3RfY2hhcjMsIF8pLAorCVsxOV0gPSBQSU5HUk9VUCgxOSwgU09VVEgsIGNjaV9pMmMsIF8sIHBoYXNlX2ZsYWcsIHFkc3MsIGF0ZXN0X2NoYXIyLCBfLCBfLCBfLCBfKSwKKwlbMjBdID0gUElOR1JPVVAoMjAsIFNPVVRILCBjY2lfaTJjLCBfLCBwaGFzZV9mbGFnLCBxZHNzLCBhdGVzdF9jaGFyMSwgXywgXywgXywgXyksCisJWzIxXSA9IFBJTkdST1VQKDIxLCBOT1JUSCwgY2NpX3RpbWVyMCwgZ2NjX2dwMiwgXywgcWRzcywgYXRlc3RfY2hhcjAsIF8sIF8sIF8sIF8pLAorCVsyMl0gPSBQSU5HUk9VUCgyMiwgTk9SVEgsIGNjaV90aW1lcjEsIGdjY19ncDMsIF8sIHFkc3MsIF8sIF8sIF8sIF8sIF8pLAorCVsyM10gPSBQSU5HUk9VUCgyMywgU09VVEgsIGNjaV90aW1lcjIsIGNhbV9tY2xrLCBxZHNzLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbMjRdID0gUElOR1JPVVAoMjQsIFNPVVRILCBjY2lfdGltZXIzLCBjY2lfYXN5bmMsIHFkc3MsIF8sIF8sIF8sIF8sIF8sIF8pLAorCVsyNV0gPSBQSU5HUk9VUCgyNSwgU09VVEgsIGNjaV90aW1lcjQsIGNjaV9hc3luYywgcXVwMDUsIF8sIHBoYXNlX2ZsYWcsIHFkc3MsIF8sIF8sIF8pLAorCVsyNl0gPSBQSU5HUk9VUCgyNiwgU09VVEgsIGNjaV9hc3luYywgcXVwMDUsIF8sIHBoYXNlX2ZsYWcsIHFkc3MsIGF0ZXN0X3RzZW5zLCBhdGVzdF91c2IxMSwgZGRyX3B4aTIsIF8pLAorCVsyN10gPSBQSU5HUk9VUCgyNywgU09VVEgsIGNjaV9pMmMsIHF1cDA1LCBQTExfQklTVCwgXywgcGhhc2VfZmxhZywgcWRzcywgZGRyX3B4aTAsIF8sIF8pLAorCVsyOF0gPSBQSU5HUk9VUCgyOCwgU09VVEgsIGNjaV9pMmMsIHF1cDA1LCBfLCBwaGFzZV9mbGFnLCBxZHNzLCBfLCBfLCBfLCBfKSwKKwlbMjldID0gUElOR1JPVVAoMjksIE5PUlRILCBfLCBxZHNzLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbMzBdID0gUElOR1JPVVAoMzAsIFNPVVRILCBxZHNzLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbMzFdID0gUElOR1JPVVAoMzEsIE5PUlRILCBfLCBxZHNzLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbMzJdID0gUElOR1JPVVAoMzIsIE5PUlRILCBfLCBwaGFzZV9mbGFnLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbMzNdID0gUElOR1JPVVAoMzMsIE5PUlRILCBzZF93cml0ZSwgXywgcGhhc2VfZmxhZywgcWRzc19jdGksIF8sIF8sIF8sIF8sIF8pLAorCVszNF0gPSBQSU5HUk9VUCgzNCwgU09VVEgsIHF1cDAwLCBfLCBwaGFzZV9mbGFnLCBxZHNzLCBfLCBfLCBfLCBfLCBfKSwKKwlbMzVdID0gUElOR1JPVVAoMzUsIFNPVVRILCBxdXAwMCwgXywgcGhhc2VfZmxhZywgcWRzcywgXywgXywgXywgXywgXyksCisJWzM2XSA9IFBJTkdST1VQKDM2LCBTT1VUSCwgcXVwMDAsIF8sIHBoYXNlX2ZsYWcsIHFkc3MsIF8sIF8sIF8sIF8sIF8pLAorCVszN10gPSBQSU5HUk9VUCgzNywgU09VVEgsIHF1cDAwLCBncF9wZG0wLCBfLCBwaGFzZV9mbGFnLCBxZHNzLCBfLCBfLCBfLCBfKSwKKwlbMzhdID0gUElOR1JPVVAoMzgsIFNPVVRILCBxdXAwMywgXywgcGhhc2VfZmxhZywgXywgXywgXywgXywgXywgXyksCisJWzM5XSA9IFBJTkdST1VQKDM5LCBTT1VUSCwgcXVwMDMsIF8sIHBoYXNlX2ZsYWcsIGF0ZXN0X3RzZW5zMiwgd2xhbjJfYWRjMSwgYXRlc3RfdXNiMSwgXywgXywgXyksCisJWzQwXSA9IFBJTkdST1VQKDQwLCBTT1VUSCwgcXVwMDMsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs0MV0gPSBQSU5HUk9VUCg0MSwgU09VVEgsIHF1cDAzLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNDJdID0gUElOR1JPVVAoNDIsIE5PUlRILCBxdXAxMiwgXywgcGhhc2VfZmxhZywgXywgXywgXywgXywgXywgXyksCisJWzQzXSA9IFBJTkdST1VQKDQzLCBOT1JUSCwgcXVwMTIsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs0NF0gPSBQSU5HUk9VUCg0NCwgTk9SVEgsIHF1cDEyLCBfLCBwaGFzZV9mbGFnLCBxZHNzX2N0aSwgd2xhbjFfYWRjMSwgYXRlc3RfdXNiMTMsIGRkcl9weGkxLCBfLCBfKSwKKwlbNDVdID0gUElOR1JPVVAoNDUsIE5PUlRILCBxdXAxMiwgcWRzc19jdGksIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs0Nl0gPSBQSU5HUk9VUCg0NiwgTk9SVEgsIHF1cDEzLCBxdXAxMywgXywgXywgXywgXywgXywgXywgXyksCisJWzQ3XSA9IFBJTkdST1VQKDQ3LCBOT1JUSCwgcXVwMTMsIHF1cDEzLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNDhdID0gUElOR1JPVVAoNDgsIE5PUlRILCBnY2NfZ3AxLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNDldID0gUElOR1JPVVAoNDksIFdFU1QsIG1pMnNfMSwgYnRmbV9zbGltYnVzLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNTBdID0gUElOR1JPVVAoNTAsIFdFU1QsIG1pMnNfMSwgYnRmbV9zbGltYnVzLCBncF9wZG0xLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNTFdID0gUElOR1JPVVAoNTEsIFdFU1QsIG1pMnNfMSwgYnRmbV9zbGltYnVzLCBhdGVzdF91c2IyLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNTJdID0gUElOR1JPVVAoNTIsIFdFU1QsIG1pMnNfMSwgYnRmbV9zbGltYnVzLCBhdGVzdF91c2IyMywgXywgXywgXywgXywgXywgXyksCisJWzUzXSA9IFBJTkdST1VQKDUzLCBXRVNULCBtaTJzXzAsIHF1cDE1LCBxZHNzLCBhdGVzdF91c2IyMiwgXywgXywgXywgXywgXyksCisJWzU0XSA9IFBJTkdST1VQKDU0LCBXRVNULCBtaTJzXzAsIHF1cDE1LCBxZHNzLCBhdGVzdF91c2IyMSwgXywgXywgXywgXywgXyksCisJWzU1XSA9IFBJTkdST1VQKDU1LCBXRVNULCBtaTJzXzAsIHF1cDE1LCBxZHNzLCBhdGVzdF91c2IyMCwgXywgXywgXywgXywgXyksCisJWzU2XSA9IFBJTkdST1VQKDU2LCBXRVNULCBtaTJzXzAsIHF1cDE1LCBnY2NfZ3AxLCBfLCBwaGFzZV9mbGFnLCBxZHNzLCBfLCBfLCBfKSwKKwlbNTddID0gUElOR1JPVVAoNTcsIFdFU1QsIGxwYXNzX2V4dCwgYXVkaW9fcmVmLCBqaXR0ZXJfYmlzdCwgZ3BfcGRtMiwgXywgcGhhc2VfZmxhZywgcWRzcywgXywgXyksCisJWzU4XSA9IFBJTkdST1VQKDU4LCBXRVNULCBscGFzc19leHQsIF8sIHBoYXNlX2ZsYWcsIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs1OV0gPSBQSU5HUk9VUCg1OSwgTk9SVEgsIHF1cDEwLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNjBdID0gUElOR1JPVVAoNjAsIE5PUlRILCBxdXAxMCwgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzYxXSA9IFBJTkdST1VQKDYxLCBOT1JUSCwgcXVwMTAsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs2Ml0gPSBQSU5HUk9VUCg2MiwgTk9SVEgsIHF1cDEwLCB0Z3VfY2gzLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNjNdID0gUElOR1JPVVAoNjMsIE5PUlRILCBxc3BpX2NsaywgbWRwX3ZzeW5jMCwgbWkyc18yLCBtZHBfdnN5bmMxLCBtZHBfdnN5bmMyLCBtZHBfdnN5bmMzLCB0Z3VfY2gwLCBfLCBwaGFzZV9mbGFnKSwKKwlbNjRdID0gUElOR1JPVVAoNjQsIE5PUlRILCBxc3BpX2RhdGEsIG1pMnNfMiwgdGd1X2NoMSwgXywgcGhhc2VfZmxhZywgXywgXywgXywgXyksCisJWzY1XSA9IFBJTkdST1VQKDY1LCBOT1JUSCwgcXNwaV9kYXRhLCBtaTJzXzIsIHZmcl8xLCB0Z3VfY2gyLCBfLCBfLCBfLCBfLCBfKSwKKwlbNjZdID0gUElOR1JPVVAoNjYsIE5PUlRILCBxc3BpX2RhdGEsIG1pMnNfMiwgXywgXywgXywgXywgXywgXywgXyksCisJWzY3XSA9IFBJTkdST1VQKDY3LCBOT1JUSCwgcXNwaV9kYXRhLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNjhdID0gUElOR1JPVVAoNjgsIE5PUlRILCBxc3BpX2NzLCBxdXAxMCwgZ3BfcGRtMCwgXywgXywgXywgXywgXywgXyksCisJWzY5XSA9IFBJTkdST1VQKDY5LCBXRVNULCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNzBdID0gUElOR1JPVVAoNzAsIE5PUlRILCBfLCBfLCBtZHBfdnN5bmMsIGxkb19lbiwgXywgXywgXywgXywgXyksCisJWzcxXSA9IFBJTkdST1VQKDcxLCBOT1JUSCwgXywgbWRwX3ZzeW5jLCBsZG9fdXBkYXRlLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNzJdID0gUElOR1JPVVAoNzIsIE5PUlRILCBxc3BpX2NzLCBxdXAxMCwgcHJuZ19yb3NjLCBfLCBxZHNzX2N0aSwgXywgXywgXywgXyksCisJWzczXSA9IFBJTkdST1VQKDczLCBXRVNULCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNzRdID0gUElOR1JPVVAoNzQsIFdFU1QsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs3NV0gPSBQSU5HUk9VUCg3NSwgV0VTVCwgdWltMiwgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzc2XSA9IFBJTkdST1VQKDc2LCBXRVNULCB1aW0yLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbNzddID0gUElOR1JPVVAoNzcsIFdFU1QsIHVpbTIsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs3OF0gPSBQSU5HUk9VUCg3OCwgV0VTVCwgdWltMiwgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzc5XSA9IFBJTkdST1VQKDc5LCBXRVNULCB1aW0xLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbODBdID0gUElOR1JPVVAoODAsIFdFU1QsIHVpbTEsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs4MV0gPSBQSU5HUk9VUCg4MSwgV0VTVCwgdWltMSwgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzgyXSA9IFBJTkdST1VQKDgyLCBXRVNULCB1aW0xLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbODNdID0gUElOR1JPVVAoODMsIFdFU1QsIF8sIF9WX0dQSU8sIF9WX1BQU19JTiwgX1ZfUFBTX09VVCwgZ3BzX3R4LCBfLCBfLCBfLCBfKSwKKwlbODRdID0gUElOR1JPVVAoODQsIFdFU1QsIF8sIF9WX0dQSU8sIF9WX1BQU19JTiwgX1ZfUFBTX09VVCwgZ3BzX3R4LCBfLCBfLCBfLCBfKSwKKwlbODVdID0gUElOR1JPVVAoODUsIFdFU1QsIHVpbV9iYXR0LCBkcF9ob3QsIGFvc3NfY3RpLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbODZdID0gUElOR1JPVVAoODYsIE5PUlRILCBxdXAxNCwgcWRzcywgXywgXywgXywgXywgXywgXywgXyksCisJWzg3XSA9IFBJTkdST1VQKDg3LCBOT1JUSCwgcXVwMTQsIGFkc3BfZXh0LCBxZHNzLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbODhdID0gUElOR1JPVVAoODgsIE5PUlRILCBxdXAxNCwgcWRzcywgdHNlbnNlX3B3bTEsIHRzZW5zZV9wd20yLCBfLCBfLCBfLCBfLCBfKSwKKwlbODldID0gUElOR1JPVVAoODksIE5PUlRILCBxdXAxNCwgcWRzcywgXywgXywgXywgXywgXywgXywgXyksCisJWzkwXSA9IFBJTkdST1VQKDkwLCBOT1JUSCwgcXVwMTQsIHFkc3MsIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs5MV0gPSBQSU5HUk9VUCg5MSwgTk9SVEgsIHF1cDE0LCBxZHNzLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbOTJdID0gUElOR1JPVVAoOTIsIE5PUlRILCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbOTNdID0gUElOR1JPVVAoOTMsIE5PUlRILCBxZHNzLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbOTRdID0gUElOR1JPVVAoOTQsIFNPVVRILCBxdXAwMSwgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzk1XSA9IFBJTkdST1VQKDk1LCBXRVNULCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbOTZdID0gUElOR1JPVVAoOTYsIFdFU1QsIHFsaW5rX3JlcXVlc3QsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs5N10gPSBQSU5HUk9VUCg5NywgV0VTVCwgcWxpbmtfZW5hYmxlLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbOThdID0gUElOR1JPVVAoOTgsIFdFU1QsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVs5OV0gPSBQSU5HUk9VUCg5OSwgV0VTVCwgXywgcGFfaW5kaWNhdG9yLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbMTAwXSA9IFBJTkdST1VQKDEwMCwgV0VTVCwgXywgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzEwMV0gPSBQSU5HUk9VUCgxMDEsIE5PUlRILCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbMTAyXSA9IFBJTkdST1VQKDEwMiwgTk9SVEgsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVsxMDNdID0gUElOR1JPVVAoMTAzLCBOT1JUSCwgXywgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzEwNF0gPSBQSU5HUk9VUCgxMDQsIFdFU1QsIHVzYl9waHksIF8sIHFkc3MsIF8sIF8sIF8sIF8sIF8sIF8pLAorCVsxMDVdID0gUElOR1JPVVAoMTA1LCBOT1JUSCwgXywgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzEwNl0gPSBQSU5HUk9VUCgxMDYsIE5PUlRILCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbMTA3XSA9IFBJTkdST1VQKDEwNywgV0VTVCwgXywgX1ZfR1BJTywgX1ZfUFBTX0lOLCBfVl9QUFNfT1VULCBncHNfdHgsIF8sIF8sIF8sIF8pLAorCVsxMDhdID0gUElOR1JPVVAoMTA4LCBTT1VUSCwgbXNzX2x0ZSwgXywgcGhhc2VfZmxhZywgZGRyX3B4aTMsIF8sIF8sIF8sIF8sIF8pLAorCVsxMDldID0gUElOR1JPVVAoMTA5LCBTT1VUSCwgbXNzX2x0ZSwgZ3BzX3R4LCBfLCBwaGFzZV9mbGFnLCBfLCBfLCBfLCBfLCBfKSwKKwlbMTEwXSA9IFBJTkdST1VQKDExMCwgTk9SVEgsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVsxMTFdID0gUElOR1JPVVAoMTExLCBOT1JUSCwgXywgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzExMl0gPSBQSU5HUk9VUCgxMTIsIE5PUlRILCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfLCBfKSwKKwlbMTEzXSA9IFBJTkdST1VQKDExMywgTk9SVEgsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVsxMTRdID0gUElOR1JPVVAoMTE0LCBOT1JUSCwgXywgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzExNV0gPSBQSU5HUk9VUCgxMTUsIFdFU1QsIHF1cDA0LCBxdXAwNCwgXywgXywgXywgXywgXywgXywgXyksCisJWzExNl0gPSBQSU5HUk9VUCgxMTYsIFdFU1QsIHF1cDA0LCBxdXAwNCwgXywgXywgXywgXywgXywgXywgXyksCisJWzExN10gPSBQSU5HUk9VUCgxMTcsIFdFU1QsIGRwX2hvdCwgXywgXywgXywgXywgXywgXywgXywgXyksCisJWzExOF0gPSBQSU5HUk9VUCgxMTgsIFdFU1QsIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8sIF8pLAorCVsxMTldID0gVUZTX1JFU0VUKHVmc19yZXNldCwgMHg5N2YwMDApLAorCVsxMjBdID0gU0RDX1FEU0RfUElOR1JPVVAoc2RjMV9yY2xrLCAweDk3YTAwMCwgMTUsIDApLAorCVsxMjFdID0gU0RDX1FEU0RfUElOR1JPVVAoc2RjMV9jbGssIDB4OTdhMDAwLCAxMywgNiksCisJWzEyMl0gPSBTRENfUURTRF9QSU5HUk9VUChzZGMxX2NtZCwgMHg5N2EwMDAsIDExLCAzKSwKKwlbMTIzXSA9IFNEQ19RRFNEX1BJTkdST1VQKHNkYzFfZGF0YSwgMHg5N2EwMDAsIDksIDApLAorCVsxMjRdID0gU0RDX1FEU0RfUElOR1JPVVAoc2RjMl9jbGssIDB4OTdiMDAwLCAxNCwgNiksCisJWzEyNV0gPSBTRENfUURTRF9QSU5HUk9VUChzZGMyX2NtZCwgMHg5N2IwMDAsIDExLCAzKSwKKwlbMTI2XSA9IFNEQ19RRFNEX1BJTkdST1VQKHNkYzJfZGF0YSwgMHg5N2IwMDAsIDksIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtc21fcGluY3RybF9zb2NfZGF0YSBzYzcxODBfcGluY3RybCA9IHsKKwkucGlucyA9IHNjNzE4MF9waW5zLAorCS5ucGlucyA9IEFSUkFZX1NJWkUoc2M3MTgwX3BpbnMpLAorCS5mdW5jdGlvbnMgPSBzYzcxODBfZnVuY3Rpb25zLAorCS5uZnVuY3Rpb25zID0gQVJSQVlfU0laRShzYzcxODBfZnVuY3Rpb25zKSwKKwkuZ3JvdXBzID0gc2M3MTgwX2dyb3VwcywKKwkubmdyb3VwcyA9IEFSUkFZX1NJWkUoc2M3MTgwX2dyb3VwcyksCisJLm5ncGlvcyA9IDEyMCwKKwkudGlsZXMgPSBzYzcxODBfdGlsZXMsCisJLm50aWxlcyA9IEFSUkFZX1NJWkUoc2M3MTgwX3RpbGVzKSwKK307CisKK3N0YXRpYyBpbnQgc2M3MTgwX3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXNtX3BpbmN0cmxfcHJvYmUocGRldiwgJnNjNzE4MF9waW5jdHJsKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc2M3MTgwX3BpbmN0cmxfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInFjb20sc2M3MTgwLXBpbmN0cmwiLCB9LAorCXsgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNjNzE4MF9waW5jdHJsX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJzYzcxODAtcGluY3RybCIsCisJCS5wbSA9ICZtc21fcGluY3RybF9kZXZfcG1fb3BzLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBzYzcxODBfcGluY3RybF9vZl9tYXRjaCwKKwl9LAorCS5wcm9iZSA9IHNjNzE4MF9waW5jdHJsX3Byb2JlLAorCS5yZW1vdmUgPSBtc21fcGluY3RybF9yZW1vdmUsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBzYzcxODBfcGluY3RybF9pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3Rlcigmc2M3MTgwX3BpbmN0cmxfZHJpdmVyKTsKK30KK2FyY2hfaW5pdGNhbGwoc2M3MTgwX3BpbmN0cmxfaW5pdCk7CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBzYzcxODBfcGluY3RybF9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnNjNzE4MF9waW5jdHJsX2RyaXZlcik7Cit9Cittb2R1bGVfZXhpdChzYzcxODBfcGluY3RybF9leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJRVEkgc2M3MTgwIHBpbmN0cmwgZHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzYzcxODBfcGluY3RybF9vZl9tYXRjaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcWNvbS9waW5jdHJsLXNkbTg0NS5jIGIvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1zZG04NDUuYwppbmRleCAzOWY0OThjLi5jZTQ5NTk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcWNvbS9waW5jdHJsLXNkbTg0NS5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9xY29tL3BpbmN0cmwtc2RtODQ1LmMKQEAgLTI2MiwxMCArMjYyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBzZG04NDVfcGluc1tdID0gewogCVBJTkNUUkxfUElOKDE0NywgIkdQSU9fMTQ3IiksCiAJUElOQ1RSTF9QSU4oMTQ4LCAiR1BJT18xNDgiKSwKIAlQSU5DVFJMX1BJTigxNDksICJHUElPXzE0OSIpLAotCVBJTkNUUkxfUElOKDE1MCwgIlNEQzJfQ0xLIiksCi0JUElOQ1RSTF9QSU4oMTUxLCAiU0RDMl9DTUQiKSwKLQlQSU5DVFJMX1BJTigxNTIsICJTREMyX0RBVEEiKSwKLQlQSU5DVFJMX1BJTigxNTMsICJVRlNfUkVTRVQiKSwKKwlQSU5DVFJMX1BJTigxNTAsICJVRlNfUkVTRVQiKSwKKwlQSU5DVFJMX1BJTigxNTEsICJTREMyX0NMSyIpLAorCVBJTkNUUkxfUElOKDE1MiwgIlNEQzJfQ01EIiksCisJUElOQ1RSTF9QSU4oMTUzLCAiU0RDMl9EQVRBIiksCiB9OwogCiAjZGVmaW5lIERFQ0xBUkVfTVNNX0dQSU9fUElOUyhwaW4pIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9xY29tL3BpbmN0cmwtc3BtaS1ncGlvLmMgYi9kcml2ZXJzL3BpbmN0cmwvcWNvbS9waW5jdHJsLXNwbWktZ3Bpby5jCmluZGV4IDQ0MmRiMTUuLmYxZmVjZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9xY29tL3BpbmN0cmwtc3BtaS1ncGlvLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1zcG1pLWdwaW8uYwpAQCAtNzkzLDExICs3OTMsMTMgQEAgc3RhdGljIGludCBwbWljX2dwaW9fcG9wdWxhdGUoc3RydWN0IHBtaWNfZ3Bpb19zdGF0ZSAqc3RhdGUsCiAJc3dpdGNoIChzdWJ0eXBlKSB7CiAJY2FzZSBQTUlDX0dQSU9fU1VCVFlQRV9HUElPXzRDSDoKIAkJcGFkLT5oYXZlX2J1ZmZlciA9IHRydWU7CisJCS8qIEZhbGwgdGhyb3VnaCAqLwogCWNhc2UgUE1JQ19HUElPX1NVQlRZUEVfR1BJT0NfNENIOgogCQlwYWQtPm51bV9zb3VyY2VzID0gNDsKIAkJYnJlYWs7CiAJY2FzZSBQTUlDX0dQSU9fU1VCVFlQRV9HUElPXzhDSDoKIAkJcGFkLT5oYXZlX2J1ZmZlciA9IHRydWU7CisJCS8qIEZhbGwgdGhyb3VnaCAqLwogCWNhc2UgUE1JQ19HUElPX1NVQlRZUEVfR1BJT0NfOENIOgogCQlwYWQtPm51bV9zb3VyY2VzID0gODsKIAkJYnJlYWs7CkBAIC0xMTEzLDYgKzExMTUsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcG1pY19ncGlvX29mX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICJxY29tLHBtYTgwODQtZ3BpbyIsIC5kYXRhID0gKHZvaWQgKikgMjIgfSwKIAkvKiBwbXM0MDUgaGFzIDEyIEdQSU9zIHdpdGggaG9sZXMgb24gMSwgOSwgYW5kIDEwICovCiAJeyAuY29tcGF0aWJsZSA9ICJxY29tLHBtczQwNS1ncGlvIiwgLmRhdGEgPSAodm9pZCAqKSAxMiB9LAorCS8qIHBtODE1MCBoYXMgMTAgR1BJT3Mgd2l0aCBob2xlcyBvbiAyLCA1LCA3IGFuZCA4ICovCisJeyAuY29tcGF0aWJsZSA9ICJxY29tLHBtODE1MC1ncGlvIiwgLmRhdGEgPSAodm9pZCAqKSAxMCB9LAorCS8qIHBtODE1MGIgaGFzIDEyIEdQSU9zIHdpdGggaG9sZXMgb24gMywgciBhbmQgNyAqLworCXsgLmNvbXBhdGlibGUgPSAicWNvbSxwbTgxNTBiLWdwaW8iLCAuZGF0YSA9ICh2b2lkICopIDEyIH0sCisJLyogcG04MTUwbCBoYXMgMTIgR1BJT3Mgd2l0aCBob2xlcyBvbiA3ICovCisJeyAuY29tcGF0aWJsZSA9ICJxY29tLHBtODE1MGwtZ3BpbyIsIC5kYXRhID0gKHZvaWQgKikgMTIgfSwKIAl7IH0sCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcWNvbS9waW5jdHJsLXNzYmktbXBwLmMgYi9kcml2ZXJzL3BpbmN0cmwvcWNvbS9waW5jdHJsLXNzYmktbXBwLmMKaW5kZXggMDc2YmEwOC4uM2Q4YjFkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3Fjb20vcGluY3RybC1zc2JpLW1wcC5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9xY29tL3BpbmN0cmwtc3NiaS1tcHAuYwpAQCAtNzkxLDExICs3OTEsOCBAQCBzdGF0aWMgaW50IHBtOHh4eF9tcHBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlmb3IgKGkgPSAwOyBpIDwgcGN0cmwtPmRlc2MubnBpbnM7IGkrKykgewogCQlwaW5fZGF0YVtpXS5yZWcgPSBTU0JJX1JFR19BRERSX01QUChpKTsKIAkJcGluX2RhdGFbaV0uaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCBpKTsKLQkJaWYgKHBpbl9kYXRhW2ldLmlycSA8IDApIHsKLQkJCWRldl9lcnIoJnBkZXYtPmRldiwKLQkJCQkibWlzc2luZyBpbnRlcnJ1cHRzIGZvciBwaW4gJWRcbiIsIGkpOworCQlpZiAocGluX2RhdGFbaV0uaXJxIDwgMCkKIAkJCXJldHVybiBwaW5fZGF0YVtpXS5pcnE7Ci0JCX0KIAogCQlyZXQgPSBwbTh4eHhfcGluX3BvcHVsYXRlKHBjdHJsLCAmcGluX2RhdGFbaV0pOwogCQlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3NoLXBmYy9ncGlvLmMgYi9kcml2ZXJzL3BpbmN0cmwvc2gtcGZjL2dwaW8uYwppbmRleCA5N2MxMzMyLi41YTU1YjhkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvc2gtcGZjL2dwaW8uYworKysgYi9kcml2ZXJzL3BpbmN0cmwvc2gtcGZjL2dwaW8uYwpAQCAtNyw3ICs3LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvY29uc3VtZXIuaD4KQEAgLTI1NSwxOCArMjU1LDEzIEBAIHN0YXRpYyBpbnQgZ3Bpb19waW5fc2V0dXAoc3RydWN0IHNoX3BmY19jaGlwICpjaGlwKQogI2lmZGVmIENPTkZJR19QSU5DVFJMX1NIX0ZVTkNfR1BJTwogc3RhdGljIGludCBncGlvX2Z1bmN0aW9uX3JlcXVlc3Qoc3RydWN0IGdwaW9fY2hpcCAqZ2MsIHVuc2lnbmVkIG9mZnNldCkKIHsKLQlzdGF0aWMgYm9vbCBfX3ByaW50X29uY2U7CiAJc3RydWN0IHNoX3BmYyAqcGZjID0gZ3Bpb190b19wZmMoZ2MpOwogCXVuc2lnbmVkIGludCBtYXJrID0gcGZjLT5pbmZvLT5mdW5jX2dwaW9zW29mZnNldF0uZW51bV9pZDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCByZXQ7CiAKLQlpZiAoIV9fcHJpbnRfb25jZSkgewotCQlkZXZfbm90aWNlKHBmYy0+ZGV2LAotCQkJICAgIlVzZSBvZiBHUElPIEFQSSBmb3IgZnVuY3Rpb24gcmVxdWVzdHMgaXMgZGVwcmVjYXRlZC4iCi0JCQkgICAiIENvbnZlcnQgdG8gcGluY3RybFxuIik7Ci0JCV9fcHJpbnRfb25jZSA9IHRydWU7Ci0JfQorCWRldl9ub3RpY2Vfb25jZShwZmMtPmRldiwKKwkJCSJVc2Ugb2YgR1BJTyBBUEkgZm9yIGZ1bmN0aW9uIHJlcXVlc3RzIGlzIGRlcHJlY2F0ZWQsIGNvbnZlcnQgdG8gcGluY3RybFxuIik7CiAKIAlpZiAobWFyayA9PSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9zaC1wZmMvcGluY3RybC5jIGIvZHJpdmVycy9waW5jdHJsL3NoLXBmYy9waW5jdHJsLmMKaW5kZXggMjgyNGJlNC4uMjEyYTRhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3NoLXBmYy9waW5jdHJsLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3NoLXBmYy9waW5jdHJsLmMKQEAgLTI2LDcgKzI2LDkgQEAKICNpbmNsdWRlICIuLi9waW5jb25mLmgiCiAKIHN0cnVjdCBzaF9wZmNfcGluX2NvbmZpZyB7Ci0JdTMyIHR5cGU7CisJdW5zaWduZWQgaW50IG11eF9tYXJrOworCWJvb2wgbXV4X3NldDsKKwlib29sIGdwaW9fZW5hYmxlZDsKIH07CiAKIHN0cnVjdCBzaF9wZmNfcGluY3RybCB7CkBAIC0zNTUsMTYgKzM1NywyNyBAQCBzdGF0aWMgaW50IHNoX3BmY19mdW5jX3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBzZWxlY3RvciwKIAkJaW50IGlkeCA9IHNoX3BmY19nZXRfcGluX2luZGV4KHBmYywgZ3JwLT5waW5zW2ldKTsKIAkJc3RydWN0IHNoX3BmY19waW5fY29uZmlnICpjZmcgPSAmcG14LT5jb25maWdzW2lkeF07CiAKLQkJaWYgKGNmZy0+dHlwZSAhPSBQSU5NVVhfVFlQRV9OT05FKSB7CisJCS8qCisJCSAqIFRoaXMgZHJpdmVyIGNhbm5vdCBtYW5hZ2UgYm90aCBncGlvIGFuZCBtdXggd2hlbiB0aGUgZ3BpbworCQkgKiBwaW4gaXMgYWxyZWFkeSBlbmFibGVkLiBTbywgdGhpcyBmdW5jdGlvbiBmYWlscy4KKwkJICovCisJCWlmIChjZmctPmdwaW9fZW5hYmxlZCkgewogCQkJcmV0ID0gLUVCVVNZOwogCQkJZ290byBkb25lOwogCQl9Ci0JfQogCi0JZm9yIChpID0gMDsgaSA8IGdycC0+bnJfcGluczsgKytpKSB7CiAJCXJldCA9IHNoX3BmY19jb25maWdfbXV4KHBmYywgZ3JwLT5tdXhbaV0sIFBJTk1VWF9UWVBFX0ZVTkNUSU9OKTsKIAkJaWYgKHJldCA8IDApCi0JCQlicmVhazsKKwkJCWdvdG8gZG9uZTsKKwl9CisKKwkvKiBBbGwgZ3JvdXAgcGlucyBhcmUgY29uZmlndXJlZCwgbWFyayB0aGUgcGlucyBhcyBtdXhfc2V0ICovCisJZm9yIChpID0gMDsgaSA8IGdycC0+bnJfcGluczsgKytpKSB7CisJCWludCBpZHggPSBzaF9wZmNfZ2V0X3Bpbl9pbmRleChwZmMsIGdycC0+cGluc1tpXSk7CisJCXN0cnVjdCBzaF9wZmNfcGluX2NvbmZpZyAqY2ZnID0gJnBteC0+Y29uZmlnc1tpZHhdOworCisJCWNmZy0+bXV4X3NldCA9IHRydWU7CisJCWNmZy0+bXV4X21hcmsgPSBncnAtPm11eFtpXTsKIAl9CiAKIGRvbmU6CkBAIC0zODUsMTQgKzM5OCw2IEBAIHN0YXRpYyBpbnQgc2hfcGZjX2dwaW9fcmVxdWVzdF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnBmYy0+bG9jaywgZmxhZ3MpOwogCi0JaWYgKGNmZy0+dHlwZSAhPSBQSU5NVVhfVFlQRV9OT05FKSB7Ci0JCWRldl9lcnIocGZjLT5kZXYsCi0JCQkiUGluICV1IGlzIGJ1c3ksIGNhbid0IGNvbmZpZ3VyZSBpdCBhcyBHUElPLlxuIiwKLQkJCW9mZnNldCk7Ci0JCXJldCA9IC1FQlVTWTsKLQkJZ290byBkb25lOwotCX0KLQogCWlmICghcGZjLT5ncGlvKSB7CiAJCS8qIElmIEdQSU9zIGFyZSBoYW5kbGVkIGV4dGVybmFsbHkgdGhlIHBpbiBtdXggdHlwZSBuZWVkIHRvIGJlCiAJCSAqIHNldCB0byBHUElPIGhlcmUuCkBAIC00MDQsNyArNDA5LDcgQEAgc3RhdGljIGludCBzaF9wZmNfZ3Bpb19yZXF1ZXN0X2VuYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCiAJCQlnb3RvIGRvbmU7CiAJfQogCi0JY2ZnLT50eXBlID0gUElOTVVYX1RZUEVfR1BJTzsKKwljZmctPmdwaW9fZW5hYmxlZCA9IHRydWU7CiAKIAlyZXQgPSAwOwogCkBAIC00MjUsNyArNDMwLDEwIEBAIHN0YXRpYyB2b2lkIHNoX3BmY19ncGlvX2Rpc2FibGVfZnJlZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZwZmMtPmxvY2ssIGZsYWdzKTsKLQljZmctPnR5cGUgPSBQSU5NVVhfVFlQRV9OT05FOworCWNmZy0+Z3Bpb19lbmFibGVkID0gZmFsc2U7CisJLyogSWYgbXV4IGlzIGFscmVhZHkgc2V0LCB0aGlzIGNvbmZpZ3VyZXMgaXQgaGVyZSAqLworCWlmIChjZmctPm11eF9zZXQpCisJCXNoX3BmY19jb25maWdfbXV4KHBmYywgY2ZnLT5tdXhfbWFyaywgUElOTVVYX1RZUEVfRlVOQ1RJT04pOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBmYy0+bG9jaywgZmxhZ3MpOwogfQogCkBAIC00MzgsNyArNDQ2LDYgQEAgc3RhdGljIGludCBzaF9wZmNfZ3Bpb19zZXRfZGlyZWN0aW9uKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKIAlpbnQgbmV3X3R5cGUgPSBpbnB1dCA/IFBJTk1VWF9UWVBFX0lOUFVUIDogUElOTVVYX1RZUEVfT1VUUFVUOwogCWludCBpZHggPSBzaF9wZmNfZ2V0X3Bpbl9pbmRleChwZmMsIG9mZnNldCk7CiAJY29uc3Qgc3RydWN0IHNoX3BmY19waW4gKnBpbiA9ICZwZmMtPmluZm8tPnBpbnNbaWR4XTsKLQlzdHJ1Y3Qgc2hfcGZjX3Bpbl9jb25maWcgKmNmZyA9ICZwbXgtPmNvbmZpZ3NbaWR4XTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXVuc2lnbmVkIGludCBkaXI7CiAJaW50IHJldDsKQEAgLTQ1OCw4ICs0NjUsNiBAQCBzdGF0aWMgaW50IHNoX3BmY19ncGlvX3NldF9kaXJlY3Rpb24oc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAogCWlmIChyZXQgPCAwKQogCQlnb3RvIGRvbmU7CiAKLQljZmctPnR5cGUgPSBuZXdfdHlwZTsKLQogZG9uZToKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZmMtPmxvY2ssIGZsYWdzKTsKIAlyZXR1cm4gcmV0OwpAQCAtNzgyLDEzICs3ODcsMTEgQEAgc3RhdGljIGludCBzaF9wZmNfbWFwX3BpbnMoc3RydWN0IHNoX3BmYyAqcGZjLCBzdHJ1Y3Qgc2hfcGZjX3BpbmN0cmwgKnBteCkKIAogCWZvciAoaSA9IDA7IGkgPCBwZmMtPmluZm8tPm5yX3BpbnM7ICsraSkgewogCQljb25zdCBzdHJ1Y3Qgc2hfcGZjX3BpbiAqaW5mbyA9ICZwZmMtPmluZm8tPnBpbnNbaV07Ci0JCXN0cnVjdCBzaF9wZmNfcGluX2NvbmZpZyAqY2ZnID0gJnBteC0+Y29uZmlnc1tpXTsKIAkJc3RydWN0IHBpbmN0cmxfcGluX2Rlc2MgKnBpbiA9ICZwbXgtPnBpbnNbaV07CiAKIAkJLyogSWYgdGhlIHBpbiBudW1iZXIgaXMgZXF1YWwgdG8gLTEgYWxsIHBpbnMgYXJlIGNvbnNpZGVyZWQgKi8KIAkJcGluLT5udW1iZXIgPSBpbmZvLT5waW4gIT0gKHUxNiktMSA/IGluZm8tPnBpbiA6IGk7CiAJCXBpbi0+bmFtZSA9IGluZm8tPm5hbWU7Ci0JCWNmZy0+dHlwZSA9IFBJTk1VWF9UWVBFX05PTkU7CiAJfQogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvc3BlYXIvcGluY3RybC1zcGVhci5jIGIvZHJpdmVycy9waW5jdHJsL3NwZWFyL3BpbmN0cmwtc3BlYXIuYwppbmRleCBjNGY4NTAzLi43ZWMxOWM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvc3BlYXIvcGluY3RybC1zcGVhci5jCisrKyBiL2RyaXZlcnMvcGluY3RybC9zcGVhci9waW5jdHJsLXNwZWFyLmMKQEAgLTE1NywxMiArMTU3LDE2IEBAIHN0YXRpYyBpbnQgc3BlYXJfcGluY3RybF9kdF9ub2RlX3RvX21hcChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCiAJLyogY2FsY3VsYXRlIG51bWJlciBvZiBtYXBzIHJlcXVpcmVkICovCiAJZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShucF9jb25maWcsIG5wKSB7CiAJCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKG5wLCAic3QsZnVuY3Rpb24iLCAmZnVuY3Rpb24pOwotCQlpZiAocmV0IDwgMCkKKwkJaWYgKHJldCA8IDApIHsKKwkJCW9mX25vZGVfcHV0KG5wKTsKIAkJCXJldHVybiByZXQ7CisJCX0KIAogCQlyZXQgPSBvZl9wcm9wZXJ0eV9jb3VudF9zdHJpbmdzKG5wLCAic3QscGlucyIpOwotCQlpZiAocmV0IDwgMCkKKwkJaWYgKHJldCA8IDApIHsKKwkJCW9mX25vZGVfcHV0KG5wKTsKIAkJCXJldHVybiByZXQ7CisJCX0KIAogCQljb3VudCArPSByZXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3NwcmQvcGluY3RybC1zcHJkLXNjOTg2MC5jIGIvZHJpdmVycy9waW5jdHJsL3NwcmQvcGluY3RybC1zcHJkLXNjOTg2MC5jCmluZGV4IDNiNjVhZWEuLjA2Yzg2NzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9zcHJkL3BpbmN0cmwtc3ByZC1zYzk4NjAuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvc3ByZC9waW5jdHJsLXNwcmQtc2M5ODYwLmMKQEAgLTk0MCw3ICs5NDAsNiBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzcHJkX3BpbmN0cmxfb2ZfbWF0Y2gpOwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc3ByZF9waW5jdHJsX2RyaXZlciA9IHsKIAkuZHJpdmVyID0gewogCQkubmFtZSA9ICJzcHJkLXBpbmN0cmwiLAotCQkub3duZXIgPSBUSElTX01PRFVMRSwKIAkJLm9mX21hdGNoX3RhYmxlID0gc3ByZF9waW5jdHJsX29mX21hdGNoLAogCX0sCiAJLnByb2JlID0gc3ByZF9waW5jdHJsX3Byb2JlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3NwcmQvcGluY3RybC1zcHJkLmMgYi9kcml2ZXJzL3BpbmN0cmwvc3ByZC9waW5jdHJsLXNwcmQuYwppbmRleCBjMzFiNTgxLi43Yjk1YmY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvc3ByZC9waW5jdHJsLXNwcmQuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvc3ByZC9waW5jdHJsLXNwcmQuYwpAQCAtNDU0LDcgKzQ1NCw3IEBAIHN0YXRpYyBpbnQgc3ByZF9waW5jb25mX2dldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIGludCBwaW5faWQsCiAJaWYgKHBpbi0+dHlwZSA9PSBHTE9CQUxfQ1RSTF9QSU4gJiYKIAkgICAgcGFyYW0gPT0gU1BSRF9QSU5fQ09ORklHX0NPTlRST0wpIHsKIAkJYXJnID0gcmVnOwotCX0gZWxzZSBpZiAocGluLT50eXBlID09IENPTU1PTl9QSU4pIHsKKwl9IGVsc2UgaWYgKHBpbi0+dHlwZSA9PSBDT01NT05fUElOIHx8IHBpbi0+dHlwZSA9PSBNSVNDX1BJTikgewogCQlzd2l0Y2ggKHBhcmFtKSB7CiAJCWNhc2UgU1BSRF9QSU5fQ09ORklHX1NMRUVQX01PREU6CiAJCQlhcmcgPSAocmVnID4+IFNMRUVQX01PREVfU0hJRlQpICYgU0xFRVBfTU9ERV9NQVNLOwpAQCAtNDY1LDE0ICs0NjUsNiBAQCBzdGF0aWMgaW50IHNwcmRfcGluY29uZl9nZXQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBpbnQgcGluX2lkLAogCQljYXNlIFBJTl9DT05GSUdfT1VUUFVUOgogCQkJYXJnID0gcmVnICYgU0xFRVBfT1VUUFVUX01BU0s7CiAJCQlicmVhazsKLQkJY2FzZSBQSU5fQ09ORklHX1NMRUVQX0hBUkRXQVJFX1NUQVRFOgotCQkJYXJnID0gMDsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJcmV0dXJuIC1FTk9UU1VQUDsKLQkJfQotCX0gZWxzZSBpZiAocGluLT50eXBlID09IE1JU0NfUElOKSB7Ci0JCXN3aXRjaCAocGFyYW0pIHsKIAkJY2FzZSBQSU5fQ09ORklHX0RSSVZFX1NUUkVOR1RIOgogCQkJYXJnID0gKHJlZyA+PiBEUklWRV9TVFJFTkdUSF9TSElGVCkgJgogCQkJCURSSVZFX1NUUkVOR1RIX01BU0s7CkBAIC02MDYsNyArNTk4LDcgQEAgc3RhdGljIGludCBzcHJkX3BpbmNvbmZfc2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWduZWQgaW50IHBpbl9pZCwKIAkJaWYgKHBpbi0+dHlwZSA9PSBHTE9CQUxfQ1RSTF9QSU4gJiYKIAkJICAgIHBhcmFtID09IFNQUkRfUElOX0NPTkZJR19DT05UUk9MKSB7CiAJCQl2YWwgPSBhcmc7Ci0JCX0gZWxzZSBpZiAocGluLT50eXBlID09IENPTU1PTl9QSU4pIHsKKwkJfSBlbHNlIGlmIChwaW4tPnR5cGUgPT0gQ09NTU9OX1BJTiB8fCBwaW4tPnR5cGUgPT0gTUlTQ19QSU4pIHsKIAkJCXN3aXRjaCAocGFyYW0pIHsKIAkJCWNhc2UgU1BSRF9QSU5fQ09ORklHX1NMRUVQX01PREU6CiAJCQkJaWYgKGFyZyAmIEFQX1NMRUVQKQpAQCAtNjM5LDEzICs2MzEsNiBAQCBzdGF0aWMgaW50IHNwcmRfcGluY29uZl9zZXQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBpbnQgcGluX2lkLAogCQkJCQlzaGlmdCA9IFNMRUVQX09VVFBVVF9TSElGVDsKIAkJCQl9CiAJCQkJYnJlYWs7Ci0JCQljYXNlIFBJTl9DT05GSUdfU0xFRVBfSEFSRFdBUkVfU1RBVEU6Ci0JCQkJY29udGludWU7Ci0JCQlkZWZhdWx0OgotCQkJCXJldHVybiAtRU5PVFNVUFA7Ci0JCQl9Ci0JCX0gZWxzZSBpZiAocGluLT50eXBlID09IE1JU0NfUElOKSB7Ci0JCQlzd2l0Y2ggKHBhcmFtKSB7CiAJCQljYXNlIFBJTl9DT05GSUdfRFJJVkVfU1RSRU5HVEg6CiAJCQkJaWYgKGFyZyA8IDIgfHwgYXJnID4gNjApCiAJCQkJCXJldHVybiAtRUlOVkFMOwpAQCAtOTQwLDggKzkyNSwxMCBAQCBzdGF0aWMgaW50IHNwcmRfcGluY3RybF9wYXJzZV9kdChzdHJ1Y3Qgc3ByZF9waW5jdHJsICpzcHJkX3BjdGwpCiAKIAlmb3JfZWFjaF9jaGlsZF9vZl9ub2RlKG5wLCBjaGlsZCkgewogCQlyZXQgPSBzcHJkX3BpbmN0cmxfcGFyc2VfZ3JvdXBzKGNoaWxkLCBzcHJkX3BjdGwsIGdycCk7Ci0JCWlmIChyZXQpCisJCWlmIChyZXQpIHsKKwkJCW9mX25vZGVfcHV0KGNoaWxkKTsKIAkJCXJldHVybiByZXQ7CisJCX0KIAogCQkqdGVtcCsrID0gZ3JwLT5uYW1lOwogCQlncnArKzsKQEAgLTk1MCw4ICs5MzcsMTEgQEAgc3RhdGljIGludCBzcHJkX3BpbmN0cmxfcGFyc2VfZHQoc3RydWN0IHNwcmRfcGluY3RybCAqc3ByZF9wY3RsKQogCQkJZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShjaGlsZCwgc3ViX2NoaWxkKSB7CiAJCQkJcmV0ID0gc3ByZF9waW5jdHJsX3BhcnNlX2dyb3VwcyhzdWJfY2hpbGQsCiAJCQkJCQkJCXNwcmRfcGN0bCwgZ3JwKTsKLQkJCQlpZiAocmV0KQorCQkJCWlmIChyZXQpIHsKKwkJCQkJb2Zfbm9kZV9wdXQoc3ViX2NoaWxkKTsKKwkJCQkJb2Zfbm9kZV9wdXQoY2hpbGQpOwogCQkJCQlyZXR1cm4gcmV0OworCQkJCX0KIAogCQkJCSp0ZW1wKysgPSBncnAtPm5hbWU7CiAJCQkJZ3JwKys7CkBAIC0xMDIwLDcgKzEwMTAsNiBAQCBpbnQgc3ByZF9waW5jdHJsX2NvcmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAlzdHJ1Y3Qgc3ByZF9waW5jdHJsICpzcHJkX3BjdGw7CiAJc3RydWN0IHNwcmRfcGluY3RybF9zb2NfaW5mbyAqcGluY3RybF9pbmZvOwogCXN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjICpwaW5fZGVzYzsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAlpbnQgcmV0LCBpOwogCiAJc3ByZF9wY3RsID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZihzdHJ1Y3Qgc3ByZF9waW5jdHJsKSwKQEAgLTEwMjgsOCArMTAxNyw3IEBAIGludCBzcHJkX3BpbmN0cmxfY29yZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCWlmICghc3ByZF9wY3RsKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0Jc3ByZF9wY3RsLT5iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CisJc3ByZF9wY3RsLT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwogCWlmIChJU19FUlIoc3ByZF9wY3RsLT5iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIoc3ByZF9wY3RsLT5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3N0bTMyL3BpbmN0cmwtc3RtMzIuYyBiL2RyaXZlcnMvcGluY3RybC9zdG0zMi9waW5jdHJsLXN0bTMyLmMKaW5kZXggYjQ1M2FlZC4uMmQ1ZTA0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3N0bTMyL3BpbmN0cmwtc3RtMzIuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvc3RtMzIvcGluY3RybC1zdG0zMi5jCkBAIC02MTUsNiArNjE1LDcgQEAgc3RhdGljIGludCBzdG0zMl9wY3RybF9kdF9ub2RlX3RvX21hcChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCiAJCQkJJnJlc2VydmVkX21hcHMsIG51bV9tYXBzKTsKIAkJaWYgKHJldCA8IDApIHsKIAkJCXBpbmN0cmxfdXRpbHNfZnJlZV9tYXAocGN0bGRldiwgKm1hcCwgKm51bV9tYXBzKTsKKwkJCW9mX25vZGVfcHV0KG5wKTsKIAkJCXJldHVybiByZXQ7CiAJCX0KIAl9CkBAIC0xNDY4LDggKzE0NjksMTAgQEAgaW50IHN0bTMyX3BjdGxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlmb3JfZWFjaF9hdmFpbGFibGVfY2hpbGRfb2Zfbm9kZShucCwgY2hpbGQpIHsKIAkJaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9vbChjaGlsZCwgImdwaW8tY29udHJvbGxlciIpKSB7CiAJCQlyZXQgPSBzdG0zMl9ncGlvbGliX3JlZ2lzdGVyX2JhbmsocGN0bCwgY2hpbGQpOwotCQkJaWYgKHJldCkKKwkJCWlmIChyZXQpIHsKKwkJCQlvZl9ub2RlX3B1dChjaGlsZCk7CiAJCQkJcmV0dXJuIHJldDsKKwkJCX0KIAogCQkJcGN0bC0+bmJhbmtzKys7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9zdW54aS9waW5jdHJsLXN1bjhpLXYzcy5jIGIvZHJpdmVycy9waW5jdHJsL3N1bnhpL3BpbmN0cmwtc3VuOGktdjNzLmMKaW5kZXggNjcwNGNlOC4uY2E4NTQzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3N1bnhpL3BpbmN0cmwtc3VuOGktdjNzLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3N1bnhpL3BpbmN0cmwtc3VuOGktdjNzLmMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQWxsd2lubmVyIFYzcyBTb0NzIHBpbmN0cmwgZHJpdmVyLgorICogQWxsd2lubmVyIFYzL1YzcyBTb0NzIHBpbmN0cmwgZHJpdmVyLgogICoKICAqIENvcHlyaWdodCAoQykgMjAxNiBJY2Vub3d5IFpoZW5nIDxpY2Vub3d5QGFvc2MueHl6PgogICoKQEAgLTc3LDYgKzc3LDMwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VueGlfZGVzY19waW4gc3VuOGlfdjNzX3BpbnNbXSA9IHsKIAkJICBTVU5YSV9GVU5DVElPTigweDIsICJpMmMxIiksCQkvKiBTQ0sgKi8KIAkJICBTVU5YSV9GVU5DVElPTigweDMsICJ1YXJ0MCIpLAkJLyogUlggKi8KIAkJICBTVU5YSV9GVU5DVElPTl9JUlFfQkFOSygweDYsIDAsIDkpKSwJLyogUEJfRUlOVDkgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihCLCAxMCksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAianRhZyIpLAkJLyogTVMgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT05fSVJRX0JBTksoMHg2LCAwLCAxMCkpLAkvKiBQQl9FSU5UMTAgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihCLCAxMSksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAianRhZyIpLAkJLyogQ0sgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT05fSVJRX0JBTksoMHg2LCAwLCAxMSkpLAkvKiBQQl9FSU5UMTEgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihCLCAxMiksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAianRhZyIpLAkJLyogRE8gKi8KKwkJCSAgU1VOWElfRlVOQ1RJT05fSVJRX0JBTksoMHg2LCAwLCAxMikpLAkvKiBQQl9FSU5UMTIgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihCLCAxMyksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAianRhZyIpLAkJLyogREkgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT05fSVJRX0JBTksoMHg2LCAwLCAxMykpLAkvKiBQQl9FSU5UMTMgKi8KIAkvKiBIb2xlICovCiAJU1VOWElfUElOKFNVTlhJX1BJTkNUUkxfUElOKEMsIDApLAogCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKQEAgLTk4LDYgKzEyMiwxODAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdW54aV9kZXNjX3BpbiBzdW44aV92M3NfcGluc1tdID0gewogCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCiAJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAibW1jMiIpLAkJLyogRDAgKi8KIAkJICBTVU5YSV9GVU5DVElPTigweDMsICJzcGkwIikpLAkJLyogTU9TSSAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEMsIDQpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgIm1tYzIiKSksCQkvKiBEMSAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEMsIDUpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgIm1tYzIiKSksCQkvKiBEMiAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEMsIDYpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgIm1tYzIiKSksCQkvKiBEMyAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEMsIDcpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgIm1tYzIiKSksCQkvKiBENCAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEMsIDgpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgIm1tYzIiKSksCQkvKiBENSAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEMsIDkpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgIm1tYzIiKSksCQkvKiBENiAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEMsIDEwKSwKKwkJCSAgUElOQ1RSTF9TVU44SV9WMywKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgwLCAiZ3Bpb19pbiIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDIsICJtbWMyIikpLAkJLyogRDcgKi8KKwkvKiBIb2xlICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgMCksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAibGNkIiksCQkvKiBEMiAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDQsICJlbWFjIikpLAkJLyogUlhEMyAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEQsIDEpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogRDMgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT04oMHg0LCAiZW1hYyIpKSwJCS8qIFJYRDIgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihELCAyKSwKKwkJCSAgUElOQ1RSTF9TVU44SV9WMywKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgwLCAiZ3Bpb19pbiIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDIsICJsY2QiKSwJCS8qIEQ0ICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4NCwgImVtYWMiKSksCQkvKiBSWEQxICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgMyksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAibGNkIiksCQkvKiBENSAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDQsICJlbWFjIikpLAkJLyogUlhEMCAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEQsIDQpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogRDYgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT04oMHg0LCAiZW1hYyIpKSwJCS8qIFJYQ0sgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihELCA1KSwKKwkJCSAgUElOQ1RSTF9TVU44SV9WMywKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgwLCAiZ3Bpb19pbiIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDIsICJsY2QiKSwJCS8qIEQ3ICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4NCwgImVtYWMiKSksCQkvKiBSWENUTC9SWERWICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgNiksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAibGNkIiksCQkvKiBEMTAgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT04oMHg0LCAiZW1hYyIpKSwJCS8qIFJYRVJSICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgNyksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAibGNkIiksCQkvKiBEMTEgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT04oMHg0LCAiZW1hYyIpKSwJCS8qIFRYRDMgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihELCA4KSwKKwkJCSAgUElOQ1RSTF9TVU44SV9WMywKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgwLCAiZ3Bpb19pbiIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDIsICJsY2QiKSwJCS8qIEQxMiAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDQsICJlbWFjIikpLAkJLyogVFhEMiAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEQsIDkpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogRDEzICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4NCwgImVtYWMiKSksCQkvKiBUWEQxICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgMTApLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogRDE0ICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4NCwgImVtYWMiKSksCQkvKiBUWEQwICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgMTEpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogRDE1ICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4NCwgImVtYWMiKSksCQkvKiBDUlMgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihELCAxMiksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAibGNkIiksCQkvKiBEMTggKi8KKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgzLCAibHZkcyIpLAkJLyogVlAwICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4NCwgImVtYWMiKSksCQkvKiBUWENLICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgMTMpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogRDE5ICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MywgImx2ZHMiKSwJCS8qIFZOMCAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDQsICJlbWFjIikpLAkJLyogVFhDVEwvVFhFTiAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEQsIDE0KSwKKwkJCSAgUElOQ1RSTF9TVU44SV9WMywKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgwLCAiZ3Bpb19pbiIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDIsICJsY2QiKSwJCS8qIEQyMCAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDMsICJsdmRzIiksCQkvKiBWUDEgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT04oMHg0LCAiZW1hYyIpKSwJCS8qIFRYRVJSICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgMTUpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogRDIxICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MywgImx2ZHMiKSwJCS8qIFZOMSAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDQsICJlbWFjIikpLAkJLyogQ0xLSU4vQ09MICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgMTYpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogRDIyICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MywgImx2ZHMiKSwJCS8qIFZQMiAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDQsICJlbWFjIikpLAkJLyogTURDICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgMTcpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogRDIzICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MywgImx2ZHMiKSwJCS8qIFZOMiAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDQsICJlbWFjIikpLAkJLyogTURJTyAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEQsIDE4KSwKKwkJCSAgUElOQ1RSTF9TVU44SV9WMywKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgwLCAiZ3Bpb19pbiIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDIsICJsY2QiKSwJCS8qIENMSyAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDMsICJsdmRzIikpLAkJLyogVlBDICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRCwgMTkpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImxjZCIpLAkJLyogREUgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgzLCAibHZkcyIpKSwJCS8qIFZOQyAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEQsIDIwKSwKKwkJCSAgUElOQ1RSTF9TVU44SV9WMywKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgwLCAiZ3Bpb19pbiIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDIsICJsY2QiKSwJCS8qIEhTWU5DICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MywgImx2ZHMiKSksCQkvKiBWUDMgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihELCAyMSksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAibGNkIiksCQkvKiBWU1lOQyAqLworCQkJICBTVU5YSV9GVU5DVElPTigweDMsICJsdmRzIikpLAkJLyogVk4zICovCiAJLyogSG9sZSAqLwogCVNVTlhJX1BJTihTVU5YSV9QSU5DVFJMX1BJTihFLCAwKSwKIAkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCkBAIC0yOTEsNiArNDg5LDU0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VueGlfZGVzY19waW4gc3VuOGlfdjNzX3BpbnNbXSA9IHsKIAkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAogCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgIm1tYzEiKSwJCS8qIEQzICovCiAJCSAgU1VOWElfRlVOQ1RJT05fSVJRX0JBTksoMHg2LCAxLCA1KSksCS8qIFBHX0VJTlQ1ICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRywgNiksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAidWFydDEiKSwJCS8qIFRYICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OX0lSUV9CQU5LKDB4NiwgMSwgNikpLAkvKiBQR19FSU5UNiAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEcsIDcpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgInVhcnQxIiksCQkvKiBSWCAqLworCQkJICBTVU5YSV9GVU5DVElPTl9JUlFfQkFOSygweDYsIDEsIDcpKSwJLyogUEdfRUlOVDcgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihHLCA4KSwKKwkJCSAgUElOQ1RSTF9TVU44SV9WMywKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgwLCAiZ3Bpb19pbiIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDIsICJ1YXJ0MSIpLAkJLyogUlRTICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OX0lSUV9CQU5LKDB4NiwgMSwgOCkpLAkvKiBQR19FSU5UOCAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEcsIDkpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgInVhcnQxIiksCQkvKiBDVFMgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT05fSVJRX0JBTksoMHg2LCAxLCA5KSksCS8qIFBHX0VJTlQ5ICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRywgMTApLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImkycyIpLAkJLyogU1lOQyAqLworCQkJICBTVU5YSV9GVU5DVElPTl9JUlFfQkFOSygweDYsIDEsIDEwKSksCS8qIFBHX0VJTlQxMCAqLworCVNVTlhJX1BJTl9WQVJJQU5UKFNVTlhJX1BJTkNUUkxfUElOKEcsIDExKSwKKwkJCSAgUElOQ1RSTF9TVU44SV9WMywKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgwLCAiZ3Bpb19pbiIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDEsICJncGlvX291dCIpLAorCQkJICBTVU5YSV9GVU5DVElPTigweDIsICJpMnMiKSwJCS8qIEJDTEsgKi8KKwkJCSAgU1VOWElfRlVOQ1RJT05fSVJRX0JBTksoMHg2LCAxLCAxMSkpLAkvKiBQR19FSU5UMTEgKi8KKwlTVU5YSV9QSU5fVkFSSUFOVChTVU5YSV9QSU5DVFJMX1BJTihHLCAxMiksCisJCQkgIFBJTkNUUkxfU1VOOElfVjMsCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MCwgImdwaW9faW4iKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgxLCAiZ3Bpb19vdXQiKSwKKwkJCSAgU1VOWElfRlVOQ1RJT04oMHgyLCAiaTJzIiksCQkvKiBET1VUICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OX0lSUV9CQU5LKDB4NiwgMSwgMTIpKSwJLyogUEdfRUlOVDEyICovCisJU1VOWElfUElOX1ZBUklBTlQoU1VOWElfUElOQ1RSTF9QSU4oRywgMTMpLAorCQkJICBQSU5DVFJMX1NVTjhJX1YzLAorCQkJICBTVU5YSV9GVU5DVElPTigweDAsICJncGlvX2luIiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MSwgImdwaW9fb3V0IiksCisJCQkgIFNVTlhJX0ZVTkNUSU9OKDB4MiwgImkycyIpLAkJLyogRElOICovCisJCQkgIFNVTlhJX0ZVTkNUSU9OX0lSUV9CQU5LKDB4NiwgMSwgMTMpKSwJLyogUEdfRUlOVDEzICovCiB9OwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHN1bjhpX3Yzc19waW5jdHJsX2lycV9iYW5rX21hcFtdID0geyAxLCAyIH07CkBAIC0zMDUsMTMgKzU1MSwyMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN1bnhpX3BpbmN0cmxfZGVzYyBzdW44aV92M3NfcGluY3RybF9kYXRhID0gewogCiBzdGF0aWMgaW50IHN1bjhpX3Yzc19waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7Ci0JcmV0dXJuIHN1bnhpX3BpbmN0cmxfaW5pdChwZGV2LAotCQkJCSAgJnN1bjhpX3Yzc19waW5jdHJsX2RhdGEpOworCXVuc2lnbmVkIGxvbmcgdmFyaWFudCA9ICh1bnNpZ25lZCBsb25nKW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsKKworCXJldHVybiBzdW54aV9waW5jdHJsX2luaXRfd2l0aF92YXJpYW50KHBkZXYsICZzdW44aV92M3NfcGluY3RybF9kYXRhLAorCQkJCQkgICAgICAgdmFyaWFudCk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN1bjhpX3Yzc19waW5jdHJsX21hdGNoW10gPSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuOGktdjNzLXBpbmN0cmwiLCB9LAotCXt9CisJeworCQkuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuOGktdjMtcGluY3RybCIsCisJCS5kYXRhID0gKHZvaWQgKilQSU5DVFJMX1NVTjhJX1YzCisJfSwKKwl7CisJCS5jb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW44aS12M3MtcGluY3RybCIsCisJCS5kYXRhID0gKHZvaWQgKilQSU5DVFJMX1NVTjhJX1YzUworCX0sCisJeyB9LAogfTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc3VuOGlfdjNzX3BpbmN0cmxfZHJpdmVyID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3N1bnhpL3BpbmN0cmwtc3VueGkuaCBiL2RyaXZlcnMvcGluY3RybC9zdW54aS9waW5jdHJsLXN1bnhpLmgKaW5kZXggNDRlMzBkZS4uYTMyYmI1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3N1bnhpL3BpbmN0cmwtc3VueGkuaAorKysgYi9kcml2ZXJzL3BpbmN0cmwvc3VueGkvcGluY3RybC1zdW54aS5oCkBAIC05NCw2ICs5NCw4IEBACiAjZGVmaW5lIFBJTkNUUkxfU1VONElfQTEwCUJJVCg2KQogI2RlZmluZSBQSU5DVFJMX1NVTjdJX0EyMAlCSVQoNykKICNkZWZpbmUgUElOQ1RSTF9TVU44SV9SNDAJQklUKDgpCisjZGVmaW5lIFBJTkNUUkxfU1VOOElfVjMJQklUKDkpCisjZGVmaW5lIFBJTkNUUkxfU1VOOElfVjNTCUJJVCgxMCkKIAogI2RlZmluZSBQSU9fUE9XX01PRF9TRUxfUkVHCTB4MzQwCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC90ZWdyYS9waW5jdHJsLXRlZ3JhLmMgYi9kcml2ZXJzL3BpbmN0cmwvdGVncmEvcGluY3RybC10ZWdyYS5jCmluZGV4IDE4NmVmOThlLi5lOWE3Y2JiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvdGVncmEvcGluY3RybC10ZWdyYS5jCisrKyBiL2RyaXZlcnMvcGluY3RybC90ZWdyYS9waW5jdHJsLXRlZ3JhLmMKQEAgLTMyLDcgKzMyLDkgQEAgc3RhdGljIGlubGluZSB1MzIgcG14X3JlYWRsKHN0cnVjdCB0ZWdyYV9wbXggKnBteCwgdTMyIGJhbmssIHUzMiByZWcpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwbXhfd3JpdGVsKHN0cnVjdCB0ZWdyYV9wbXggKnBteCwgdTMyIHZhbCwgdTMyIGJhbmssIHUzMiByZWcpCiB7Ci0Jd3JpdGVsKHZhbCwgcG14LT5yZWdzW2JhbmtdICsgcmVnKTsKKwl3cml0ZWxfcmVsYXhlZCh2YWwsIHBteC0+cmVnc1tiYW5rXSArIHJlZyk7CisJLyogbWFrZSBzdXJlIHBpbm11eCByZWdpc3RlciB3cml0ZSBjb21wbGV0ZWQgKi8KKwlwbXhfcmVhZGwocG14LCBiYW5rLCByZWcpOwogfQogCiBzdGF0aWMgaW50IHRlZ3JhX3BpbmN0cmxfZ2V0X2dyb3Vwc19jb3VudChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYpCkBAIC02MzEsNiArNjMzLDYyIEBAIHN0YXRpYyB2b2lkIHRlZ3JhX3BpbmN0cmxfY2xlYXJfcGFya2VkX2JpdHMoc3RydWN0IHRlZ3JhX3BteCAqcG14KQogCX0KIH0KIAorc3RhdGljIHNpemVfdCB0ZWdyYV9waW5jdHJsX2dldF9iYW5rX3NpemUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkgIHVuc2lnbmVkIGludCBiYW5rX2lkKQoreworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2KTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKworCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgYmFua19pZCk7CisKKwlyZXR1cm4gcmVzb3VyY2Vfc2l6ZShyZXMpIC8gNDsKK30KKworc3RhdGljIGludCB0ZWdyYV9waW5jdHJsX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB0ZWdyYV9wbXggKnBteCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXUzMiAqYmFja3VwX3JlZ3MgPSBwbXgtPmJhY2t1cF9yZWdzOworCXUzMiAqcmVnczsKKwlzaXplX3QgYmFua19zaXplOworCXVuc2lnbmVkIGludCBpLCBrOworCisJZm9yIChpID0gMDsgaSA8IHBteC0+bmJhbmtzOyBpKyspIHsKKwkJYmFua19zaXplID0gdGVncmFfcGluY3RybF9nZXRfYmFua19zaXplKGRldiwgaSk7CisJCXJlZ3MgPSBwbXgtPnJlZ3NbaV07CisJCWZvciAoayA9IDA7IGsgPCBiYW5rX3NpemU7IGsrKykKKwkJCSpiYWNrdXBfcmVncysrID0gcmVhZGxfcmVsYXhlZChyZWdzKyspOworCX0KKworCXJldHVybiBwaW5jdHJsX2ZvcmNlX3NsZWVwKHBteC0+cGN0bCk7Cit9CisKK3N0YXRpYyBpbnQgdGVncmFfcGluY3RybF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB0ZWdyYV9wbXggKnBteCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXUzMiAqYmFja3VwX3JlZ3MgPSBwbXgtPmJhY2t1cF9yZWdzOworCXUzMiAqcmVnczsKKwlzaXplX3QgYmFua19zaXplOworCXVuc2lnbmVkIGludCBpLCBrOworCisJZm9yIChpID0gMDsgaSA8IHBteC0+bmJhbmtzOyBpKyspIHsKKwkJYmFua19zaXplID0gdGVncmFfcGluY3RybF9nZXRfYmFua19zaXplKGRldiwgaSk7CisJCXJlZ3MgPSBwbXgtPnJlZ3NbaV07CisJCWZvciAoayA9IDA7IGsgPCBiYW5rX3NpemU7IGsrKykKKwkJCXdyaXRlbF9yZWxheGVkKCpiYWNrdXBfcmVncysrLCByZWdzKyspOworCX0KKworCS8qIGZsdXNoIGFsbCB0aGUgcHJpb3Igd3JpdGVzICovCisJcmVhZGxfcmVsYXhlZChwbXgtPnJlZ3NbMF0pOworCS8qIHdhaXQgZm9yIHBpbmN0cmwgcmVnaXN0ZXIgcmVhZCB0byBjb21wbGV0ZSAqLworCXJtYigpOworCXJldHVybiAwOworfQorCitjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyB0ZWdyYV9waW5jdHJsX3BtID0geworCS5zdXNwZW5kID0gJnRlZ3JhX3BpbmN0cmxfc3VzcGVuZCwKKwkucmVzdW1lID0gJnRlZ3JhX3BpbmN0cmxfcmVzdW1lCit9OworCiBzdGF0aWMgYm9vbCBncGlvX25vZGVfaGFzX3JhbmdlKGNvbnN0IGNoYXIgKmNvbXBhdGlibGUpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICpucDsKQEAgLTY1NSw2ICs3MTMsNyBAQCBpbnQgdGVncmFfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCWludCBpOwogCWNvbnN0IGNoYXIgKipncm91cF9waW5zOwogCWludCBmbiwgZ24sIGdmbjsKKwl1bnNpZ25lZCBsb25nIGJhY2t1cF9yZWdzX3NpemUgPSAwOwogCiAJcG14ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqcG14KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwbXgpCkBAIC03MDcsNiArNzY2LDcgQEAgaW50IHRlZ3JhX3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCBpKTsKIAkJaWYgKCFyZXMpCiAJCQlicmVhazsKKwkJYmFja3VwX3JlZ3Nfc2l6ZSArPSByZXNvdXJjZV9zaXplKHJlcyk7CiAJfQogCXBteC0+bmJhbmtzID0gaTsKIApAQCAtNzE1LDYgKzc3NSwxMSBAQCBpbnQgdGVncmFfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCWlmICghcG14LT5yZWdzKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCXBteC0+YmFja3VwX3JlZ3MgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgYmFja3VwX3JlZ3Nfc2l6ZSwKKwkJCQkJR0ZQX0tFUk5FTCk7CisJaWYgKCFwbXgtPmJhY2t1cF9yZWdzKQorCQlyZXR1cm4gLUVOT01FTTsKKwogCWZvciAoaSA9IDA7IGkgPCBwbXgtPm5iYW5rczsgaSsrKSB7CiAJCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgaSk7CiAJCXBteC0+cmVnc1tpXSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3RlZ3JhL3BpbmN0cmwtdGVncmEuaCBiL2RyaXZlcnMvcGluY3RybC90ZWdyYS9waW5jdHJsLXRlZ3JhLmgKaW5kZXggMTA1MzA5Ny4uMGZjODJlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3RlZ3JhL3BpbmN0cmwtdGVncmEuaAorKysgYi9kcml2ZXJzL3BpbmN0cmwvdGVncmEvcGluY3RybC10ZWdyYS5oCkBAIC0xNyw2ICsxNyw3IEBAIHN0cnVjdCB0ZWdyYV9wbXggewogCiAJaW50IG5iYW5rczsKIAl2b2lkIF9faW9tZW0gKipyZWdzOworCXUzMiAqYmFja3VwX3JlZ3M7CiB9OwogCiBlbnVtIHRlZ3JhX3BpbmNvbmZfcGFyYW0gewpAQCAtMTkzLDYgKzE5NCw4IEBAIHN0cnVjdCB0ZWdyYV9waW5jdHJsX3NvY19kYXRhIHsKIAlib29sIGRydnR5cGVfaW5fbXV4OwogfTsKIAorZXh0ZXJuIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIHRlZ3JhX3BpbmN0cmxfcG07CisKIGludCB0ZWdyYV9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCQljb25zdCBzdHJ1Y3QgdGVncmFfcGluY3RybF9zb2NfZGF0YSAqc29jX2RhdGEpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvdGVncmEvcGluY3RybC10ZWdyYTIxMC5jIGIvZHJpdmVycy9waW5jdHJsL3RlZ3JhL3BpbmN0cmwtdGVncmEyMTAuYwppbmRleCAzOWFiNjQ4Li5mYzA3MmEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvdGVncmEvcGluY3RybC10ZWdyYTIxMC5jCisrKyBiL2RyaXZlcnMvcGluY3RybC90ZWdyYS9waW5jdHJsLXRlZ3JhMjEwLmMKQEAgLTE1NzEsNiArMTU3MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHRlZ3JhMjEwX3BpbmN0cmxfZHJpdmVyID0gewogCS5kcml2ZXIgPSB7CiAJCS5uYW1lID0gInRlZ3JhMjEwLXBpbmN0cmwiLAogCQkub2ZfbWF0Y2hfdGFibGUgPSB0ZWdyYTIxMF9waW5jdHJsX29mX21hdGNoLAorCQkucG0gPSAmdGVncmFfcGluY3RybF9wbSwKIAl9LAogCS5wcm9iZSA9IHRlZ3JhMjEwX3BpbmN0cmxfcHJvYmUsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItbGQxMS5jIGIvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItbGQxMS5jCmluZGV4IDkyZmVmM2EuLmMzOTBhNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLWxkMTEuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1sZDExLmMKQEAgLTUyNiw4ICs1MjYsMTAgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQyX3BpbnNbXSA9IHs5MCwgOTF9Owogc3RhdGljIGNvbnN0IGludCB1YXJ0Ml9tdXh2YWxzW10gPSB7MSwgMX07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDNfcGluc1tdID0gezk0LCA5NX07CiBzdGF0aWMgY29uc3QgaW50IHVhcnQzX211eHZhbHNbXSA9IHsxLCAxfTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0M19jdHNydHNfcGluc1tdID0gezk2LCA5NywgOTgsIDk5LCAxMDAsIDEwMX07Ci1zdGF0aWMgY29uc3QgaW50IHVhcnQzX2N0c3J0c19tdXh2YWxzW10gPSB7MSwgMSwgMSwgMSwgMSwgMX07CitzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDNfY3RzcnRzX3BpbnNbXSA9IHs5NiwgOTh9Oworc3RhdGljIGNvbnN0IGludCB1YXJ0M19jdHNydHNfbXV4dmFsc1tdID0gezEsIDF9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQzX21vZGVtX3BpbnNbXSA9IHs5NywgOTksIDEwMCwgMTAxfTsKK3N0YXRpYyBjb25zdCBpbnQgdWFydDNfbW9kZW1fbXV4dmFsc1tdID0gezEsIDEsIDEsIDF9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVzYjBfcGluc1tdID0gezQ2LCA0N307CiBzdGF0aWMgY29uc3QgaW50IHVzYjBfbXV4dmFsc1tdID0gezAsIDB9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVzYjFfcGluc1tdID0gezQ4LCA0OX07CkBAIC02MDAsNiArNjAyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1bmlwaGllcl9waW5jdHJsX2dyb3VwIHVuaXBoaWVyX2xkMTFfZ3JvdXBzW10gPSB7CiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MiksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MyksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0M19jdHNydHMpLAorCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDNfbW9kZW0pLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodXNiMCksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1c2IxKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVzYjIpLApAQCAtNjM2LDcgKzYzOSw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3lzdGVtX2J1c19ncm91cHNbXSA9IHsic3lzdGVtX2J1cyIsCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQwX2dyb3Vwc1tdID0geyJ1YXJ0MCJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0MV9ncm91cHNbXSA9IHsidWFydDEifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDJfZ3JvdXBzW10gPSB7InVhcnQyIn07Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQzX2dyb3Vwc1tdID0geyJ1YXJ0MyIsICJ1YXJ0M19jdHNydHMifTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDNfZ3JvdXBzW10gPSB7InVhcnQzIiwgInVhcnQzX2N0c3J0cyIsCisJCQkJCSAgICAidWFydDNfbW9kZW0ifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiMF9ncm91cHNbXSA9IHsidXNiMCJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1c2IxX2dyb3Vwc1tdID0geyJ1c2IxIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVzYjJfZ3JvdXBzW10gPSB7InVzYjIifTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLWxkMjAuYyBiL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLWxkMjAuYwppbmRleCA3ZmJjOTY1Li4wYThiMTg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1sZDIwLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItbGQyMC5jCkBAIC01NDQsNiArNTQ0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjIHVuaXBoaWVyX2xkMjBfcGluc1tdID0gewogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgYW91dDFfcGluc1tdID0gezEzNywgMTM4LCAxMzksIDE0MCwgMTQxLCAxNDJ9Owogc3RhdGljIGNvbnN0IGludCBhb3V0MV9tdXh2YWxzW10gPSB7MCwgMCwgMCwgMCwgMCwgMH07CitzdGF0aWMgY29uc3QgdW5zaWduZWQgYW91dDFiX3BpbnNbXSA9IHsxNTAsIDE1MSwgMTUyLCAxNTMsIDE1NCwgMTU1LCAxNTZ9Oworc3RhdGljIGNvbnN0IGludCBhb3V0MWJfbXV4dmFsc1tdID0gezEsIDEsIDEsIDEsIDEsIDEsIDF9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGFvdXRpZWMxX3BpbnNbXSA9IHsxMzUsIDEzNn07CiBzdGF0aWMgY29uc3QgaW50IGFvdXRpZWMxX211eHZhbHNbXSA9IHswLCAwfTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZW1tY19waW5zW10gPSB7MTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjV9OwpAQCAtNTc0LDYgKzU3Niw4IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBoc2NpbjJfc19waW5zW10gPSB7MTI0LCAxMjUsIDEyNiwgMTI3fTsKIHN0YXRpYyBjb25zdCBpbnQgaHNjaW4yX3NfbXV4dmFsc1tdID0gezMsIDMsIDMsIDN9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhzY2luM19zX3BpbnNbXSA9IHsxMjksIDEzMCwgMTMxLCAxMzJ9Owogc3RhdGljIGNvbnN0IGludCBoc2NpbjNfc19tdXh2YWxzW10gPSB7MywgMywgMywgM307CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaHNjaW40X3NfcGluc1tdID0gezgwLCA4MSwgODIsIDgzfTsKK3N0YXRpYyBjb25zdCBpbnQgaHNjaW40X3NfbXV4dmFsc1tdID0gezMsIDMsIDMsIDN9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhzY291dDBfY2lfcGluc1tdID0gezExMywgMTE0LCAxMTUsIDExNiwgMTE3LCAxMTgsIDExOSwKIAkJCQkJICAgMTIwLCAxMjEsIDEyMiwgMTIzfTsKIHN0YXRpYyBjb25zdCBpbnQgaHNjb3V0MF9jaV9tdXh2YWxzW10gPSB7MSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMX07CkBAIC02MTksOCArNjIzLDEwIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0Ml9waW5zW10gPSB7OTAsIDkxfTsKIHN0YXRpYyBjb25zdCBpbnQgdWFydDJfbXV4dmFsc1tdID0gezEsIDF9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQzX3BpbnNbXSA9IHs5NCwgOTV9Owogc3RhdGljIGNvbnN0IGludCB1YXJ0M19tdXh2YWxzW10gPSB7MSwgMX07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDNfY3RzcnRzX3BpbnNbXSA9IHs5NiwgOTcsIDk4LCA5OSwgMTAwLCAxMDF9Owotc3RhdGljIGNvbnN0IGludCB1YXJ0M19jdHNydHNfbXV4dmFsc1tdID0gezEsIDEsIDEsIDEsIDEsIDF9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQzX2N0c3J0c19waW5zW10gPSB7OTYsIDk4fTsKK3N0YXRpYyBjb25zdCBpbnQgdWFydDNfY3RzcnRzX211eHZhbHNbXSA9IHsxLCAxfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0M19tb2RlbV9waW5zW10gPSB7OTcsIDk5LCAxMDAsIDEwMX07CitzdGF0aWMgY29uc3QgaW50IHVhcnQzX21vZGVtX211eHZhbHNbXSA9IHsxLCAxLCAxLCAxfTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1c2IwX3BpbnNbXSA9IHs0NiwgNDd9Owogc3RhdGljIGNvbnN0IGludCB1c2IwX211eHZhbHNbXSA9IHswLCAwfTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1c2IxX3BpbnNbXSA9IHs0OCwgNDl9OwpAQCAtNjYyLDYgKzY2OCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZ3Bpb19yYW5nZTJfcGluc1tdID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHVuaXBoaWVyX3BpbmN0cmxfZ3JvdXAgdW5pcGhpZXJfbGQyMF9ncm91cHNbXSA9IHsKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKGFvdXQxKSwKKwlVTklQSElFUl9QSU5DVFJMX0dST1VQKGFvdXQxYiksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChhb3V0aWVjMSksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChlbW1jKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKGVtbWNfZGF0OCksCkBAIC02NzQsNiArNjgxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1bmlwaGllcl9waW5jdHJsX2dyb3VwIHVuaXBoaWVyX2xkMjBfZ3JvdXBzW10gPSB7CiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChoc2NpbjFfcyksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChoc2NpbjJfcyksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChoc2NpbjNfcyksCisJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChoc2NpbjRfcyksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChoc2NvdXQwX2NpKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKGhzY291dDBfcCksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChoc2NvdXQwX3MpLApAQCAtNjk1LDYgKzcwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdW5pcGhpZXJfcGluY3RybF9ncm91cCB1bmlwaGllcl9sZDIwX2dyb3Vwc1tdID0gewogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDIpLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDMpLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDNfY3RzcnRzKSwKKwlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQzX21vZGVtKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVzYjApLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodXNiMSksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1c2IyKSwKQEAgLTcwNCw3ICs3MTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVuaXBoaWVyX3BpbmN0cmxfZ3JvdXAgdW5pcGhpZXJfbGQyMF9ncm91cHNbXSA9IHsKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQX0dQSU8oZ3Bpb19yYW5nZTIpLAogfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhb3V0MV9ncm91cHNbXSA9IHsiYW91dDEifTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYW91dDFfZ3JvdXBzW10gPSB7ImFvdXQxIiwgImFvdXQxYiJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhb3V0aWVjMV9ncm91cHNbXSA9IHsiYW91dGllYzEifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZW1tY19ncm91cHNbXSA9IHsiZW1tYyIsICJlbW1jX2RhdDgifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXRoZXJfcmdtaWlfZ3JvdXBzW10gPSB7ImV0aGVyX3JnbWlpIn07CkBAIC03MTUsNiArNzI0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBoc2NpbjBfZ3JvdXBzW10gPSB7ImhzY2luMF9jaSIsCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGhzY2luMV9ncm91cHNbXSA9IHsiaHNjaW4xX3AiLCAiaHNjaW4xX3MifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaHNjaW4yX2dyb3Vwc1tdID0geyJoc2NpbjJfcyJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBoc2NpbjNfZ3JvdXBzW10gPSB7ImhzY2luM19zIn07CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGhzY2luNF9ncm91cHNbXSA9IHsiaHNjaW40X3MifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaHNjb3V0MF9ncm91cHNbXSA9IHsiaHNjb3V0MF9jaSIsCiAJCQkJCSAgICAgICJoc2NvdXQwX3AiLAogCQkJCQkgICAgICAiaHNjb3V0MF9zIn07CkBAIC03MzQsNyArNzQ0LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzeXN0ZW1fYnVzX2dyb3Vwc1tdID0geyJzeXN0ZW1fYnVzIiwKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDBfZ3JvdXBzW10gPSB7InVhcnQwIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX2dyb3Vwc1tdID0geyJ1YXJ0MSJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0Ml9ncm91cHNbXSA9IHsidWFydDIifTsKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDNfZ3JvdXBzW10gPSB7InVhcnQzIiwgInVhcnQzX2N0c3J0cyJ9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0M19ncm91cHNbXSA9IHsidWFydDMiLCAidWFydDNfY3RzcnRzIiwKKwkJCQkJICAgICJ1YXJ0M19tb2RlbSJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1c2IwX2dyb3Vwc1tdID0geyJ1c2IwIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVzYjFfZ3JvdXBzW10gPSB7InVzYjEifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiMl9ncm91cHNbXSA9IHsidXNiMiJ9OwpAQCAtNzUwLDYgKzc2MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdW5pcGhpZXJfcGlubXV4X2Z1bmN0aW9uIHVuaXBoaWVyX2xkMjBfZnVuY3Rpb25zW10gPSB7CiAJVU5JUEhJRVJfUElOTVVYX0ZVTkNUSU9OKGhzY2luMSksCiAJVU5JUEhJRVJfUElOTVVYX0ZVTkNUSU9OKGhzY2luMiksCiAJVU5JUEhJRVJfUElOTVVYX0ZVTkNUSU9OKGhzY2luMyksCisJVU5JUEhJRVJfUElOTVVYX0ZVTkNUSU9OKGhzY2luNCksCiAJVU5JUEhJRVJfUElOTVVYX0ZVTkNUSU9OKGhzY291dDApLAogCVVOSVBISUVSX1BJTk1VWF9GVU5DVElPTihoc2NvdXQxKSwKIAlVTklQSElFUl9QSU5NVVhfRlVOQ1RJT04oaTJjMCksCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1sZDQuYyBiL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLWxkNC5jCmluZGV4IGQwOTAxOWIuLjg4ZmQ2OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLWxkNC5jCisrKyBiL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLWxkNC5jCkBAIC01ODMsOCArNTgzLDEwIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzeXN0ZW1fYnVzX2NzM19waW5zW10gPSB7MTU2fTsKIHN0YXRpYyBjb25zdCBpbnQgc3lzdGVtX2J1c19jczNfbXV4dmFsc1tdID0gezF9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQwX3BpbnNbXSA9IHs4NSwgODh9Owogc3RhdGljIGNvbnN0IGludCB1YXJ0MF9tdXh2YWxzW10gPSB7MSwgMX07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDBfY3RzcnRzX3BpbnNbXSA9IHs4NiwgODcsIDg5fTsKLXN0YXRpYyBjb25zdCBpbnQgdWFydDBfY3RzcnRzX211eHZhbHNbXSA9IHsxLCAxLCAxfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0MF9jdHNydHNfcGluc1tdID0gezg2LCA4OX07CitzdGF0aWMgY29uc3QgaW50IHVhcnQwX2N0c3J0c19tdXh2YWxzW10gPSB7MSwgMX07CitzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDBfbW9kZW1fcGluc1tdID0gezg3fTsKK3N0YXRpYyBjb25zdCBpbnQgdWFydDBfbW9kZW1fbXV4dmFsc1tdID0gezF9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQxX3BpbnNbXSA9IHsxNTUsIDE1Nn07CiBzdGF0aWMgY29uc3QgaW50IHVhcnQxX211eHZhbHNbXSA9IHsxMywgMTN9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQxYl9waW5zW10gPSB7NjksIDcwfTsKQEAgLTY0MSw2ICs2NDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVuaXBoaWVyX3BpbmN0cmxfZ3JvdXAgdW5pcGhpZXJfbGQ0X2dyb3Vwc1tdID0gewogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAoc3lzdGVtX2J1c19jczMpLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDApLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDBfY3RzcnRzKSwKKwlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQwX21vZGVtKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQxKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQxYiksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MiksCkBAIC02NjcsNyArNjcwLDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzeXN0ZW1fYnVzX2dyb3Vwc1tdID0geyJzeXN0ZW1fYnVzIiwKIAkJCQkJCSAic3lzdGVtX2J1c19jczEiLAogCQkJCQkJICJzeXN0ZW1fYnVzX2NzMiIsCiAJCQkJCQkgInN5c3RlbV9idXNfY3MzIn07Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQwX2dyb3Vwc1tdID0geyJ1YXJ0MCIsICJ1YXJ0MF9jdHNydHMifTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDBfZ3JvdXBzW10gPSB7InVhcnQwIiwgInVhcnQwX2N0c3J0cyIsCisJCQkJCSAgICAidWFydDBfbW9kZW0ifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDFfZ3JvdXBzW10gPSB7InVhcnQxIiwgInVhcnQxYiJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0Ml9ncm91cHNbXSA9IHsidWFydDIifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDNfZ3JvdXBzW10gPSB7InVhcnQzIn07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1sZDZiLmMgYi9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1sZDZiLmMKaW5kZXggNDE0ZmYzYS4uMzc0YzAyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItbGQ2Yi5jCisrKyBiL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLWxkNmIuYwpAQCAtNzgwLDggKzc4MCwxMCBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgc3lzdGVtX2J1c19jczVfcGluc1tdID0gezU1fTsKIHN0YXRpYyBjb25zdCBpbnQgc3lzdGVtX2J1c19jczVfbXV4dmFsc1tdID0gezZ9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQwX3BpbnNbXSA9IHsxMzUsIDEzNn07CiBzdGF0aWMgY29uc3QgaW50IHVhcnQwX211eHZhbHNbXSA9IHszLCAzfTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0MF9jdHNydHNfcGluc1tdID0gezEzNywgMTM4LCAxMzksIDE0MCwgMTQxLCAxMjR9Owotc3RhdGljIGNvbnN0IGludCB1YXJ0MF9jdHNydHNfbXV4dmFsc1tdID0gezMsIDMsIDMsIDMsIDMsIDN9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQwX2N0c3J0c19waW5zW10gPSB7MTM3LCAxMzl9Oworc3RhdGljIGNvbnN0IGludCB1YXJ0MF9jdHNydHNfbXV4dmFsc1tdID0gezMsIDN9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQwX21vZGVtX3BpbnNbXSA9IHsxMjQsIDEzOCwgMTQwLCAxNDF9Oworc3RhdGljIGNvbnN0IGludCB1YXJ0MF9tb2RlbV9tdXh2YWxzW10gPSB7MywgMywgMywgM307CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDBiX3BpbnNbXSA9IHsxMSwgMTJ9Owogc3RhdGljIGNvbnN0IGludCB1YXJ0MGJfbXV4dmFsc1tdID0gezIsIDJ9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQxX3BpbnNbXSA9IHsxMTUsIDExNn07CkBAIC04NTYsNiArODU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1bmlwaGllcl9waW5jdHJsX2dyb3VwIHVuaXBoaWVyX2xkNmJfZ3JvdXBzW10gPSB7CiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChzeXN0ZW1fYnVzX2NzNSksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MCksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MF9jdHNydHMpLAorCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDBfbW9kZW0pLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDBiKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQxKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQxYiksCkBAIC04ODcsNyArODkwLDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzeXN0ZW1fYnVzX2dyb3Vwc1tdID0geyJzeXN0ZW1fYnVzIiwKIAkJCQkJCSAic3lzdGVtX2J1c19jczMiLAogCQkJCQkJICJzeXN0ZW1fYnVzX2NzNCIsCiAJCQkJCQkgInN5c3RlbV9idXNfY3M1In07Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQwX2dyb3Vwc1tdID0geyJ1YXJ0MCIsICJ1YXJ0MF9jdHNydHMiLCAidWFydDBiIn07CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQwX2dyb3Vwc1tdID0geyJ1YXJ0MCIsICJ1YXJ0MF9jdHNydHMiLAorCQkJCQkgICAgInVhcnQwX21vZGVtIiwgInVhcnQwYiJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0MV9ncm91cHNbXSA9IHsidWFydDEiLCAidWFydDFiIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQyX2dyb3Vwc1tdID0geyJ1YXJ0MiIsICJ1YXJ0MmIifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiMF9ncm91cHNbXSA9IHsidXNiMCJ9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItcHJvNC5jIGIvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItcHJvNC5jCmluZGV4IDkxOWI5YmUuLjRmNjNkN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLXBybzQuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1wcm80LmMKQEAgLTEwNzIsOCArMTA3MiwxMCBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDJfcGluc1tdID0gezEzMSwgMTMyfTsKIHN0YXRpYyBjb25zdCBpbnQgdWFydDJfbXV4dmFsc1tdID0gezAsIDB9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQzX3BpbnNbXSA9IHs4OCwgODl9Owogc3RhdGljIGNvbnN0IGludCB1YXJ0M19tdXh2YWxzW10gPSB7MiwgMn07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDNfY3RzcnRzX3BpbnNbXSA9IHs4MCwgODEsIDgyLCA4MywgOTAsIDkxfTsKLXN0YXRpYyBjb25zdCBpbnQgdWFydDNfY3RzcnRzX211eHZhbHNbXSA9IHsyLCAyLCAyLCAyLCAyLCAyfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0M19jdHNydHNfcGluc1tdID0gezkwLCA5MX07CitzdGF0aWMgY29uc3QgaW50IHVhcnQzX2N0c3J0c19tdXh2YWxzW10gPSB7MiwgMn07CitzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDNfbW9kZW1fcGluc1tdID0gezgwLCA4MSwgODIsIDgzfTsKK3N0YXRpYyBjb25zdCBpbnQgdWFydDNfbW9kZW1fbXV4dmFsc1tdID0gezIsIDIsIDIsIDJ9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVzYjBfcGluc1tdID0gezE4MCwgMTgxfTsKIHN0YXRpYyBjb25zdCBpbnQgdXNiMF9tdXh2YWxzW10gPSB7MCwgMH07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdXNiMV9waW5zW10gPSB7MTgyLCAxODN9OwpAQCAtMTE0OCw2ICsxMTUwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1bmlwaGllcl9waW5jdHJsX2dyb3VwIHVuaXBoaWVyX3BybzRfZ3JvdXBzW10gPSB7CiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MiksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MyksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0M19jdHNydHMpLAorCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDNfbW9kZW0pLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodXNiMCksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1c2IxKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVzYjIpLApAQCAtMTE4MSw3ICsxMTg0LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzeXN0ZW1fYnVzX2dyb3Vwc1tdID0geyJzeXN0ZW1fYnVzIiwKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDBfZ3JvdXBzW10gPSB7InVhcnQwIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX2dyb3Vwc1tdID0geyJ1YXJ0MSJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0Ml9ncm91cHNbXSA9IHsidWFydDIifTsKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDNfZ3JvdXBzW10gPSB7InVhcnQzIiwgInVhcnQzX2N0c3J0cyJ9Oworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0M19ncm91cHNbXSA9IHsidWFydDMiLCAidWFydDNfY3RzcnRzIiwKKwkJCQkJICAgICJ1YXJ0M19tb2RlbSJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1c2IwX2dyb3Vwc1tdID0geyJ1c2IwIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVzYjFfZ3JvdXBzW10gPSB7InVzYjEifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiMl9ncm91cHNbXSA9IHsidXNiMiJ9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItcHJvNS5jIGIvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItcHJvNS5jCmluZGV4IDRhNjU4MGQuLjQyNzdkNDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLXBybzUuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1wcm81LmMKQEAgLTgwNyw3ICs4MDcsOSBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgbmFuZF9waW5zW10gPSB7MTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI4LCAyOSwgMzAsCiBzdGF0aWMgY29uc3QgaW50IG5hbmRfbXV4dmFsc1tdID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG5hbmRfY3MxX3BpbnNbXSA9IHsyNiwgMjd9Owogc3RhdGljIGNvbnN0IGludCBuYW5kX2NzMV9tdXh2YWxzW10gPSB7MCwgMH07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgc2RfcGluc1tdID0gezI1MCwgMjUxLCAyNTIsIDI1MywgMjU0LCAyNTUsIDI1NiwgMjU3LCAyNTh9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHBjaWVfcGluc1tdID0gezEwOSwgMTEwLCAxMTF9Oworc3RhdGljIGNvbnN0IGludCBwY2llX211eHZhbHNbXSA9IHswLCAwLCAwfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzZF9waW5zW10gPSB7MjQ3LCAyNDgsIDI0OSwgMjUwLCAyNTEsIDI1MiwgMjUzLCAyNTQsIDI1NX07CiBzdGF0aWMgY29uc3QgaW50IHNkX211eHZhbHNbXSA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzcGkwX3BpbnNbXSA9IHsxMjAsIDEyMSwgMTIyLCAxMjN9Owogc3RhdGljIGNvbnN0IGludCBzcGkwX211eHZhbHNbXSA9IHswLCAwLCAwLCAwfTsKQEAgLTgzOSw4ICs4NDEsMTAgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQwX3BpbnNbXSA9IHs0NywgNDh9Owogc3RhdGljIGNvbnN0IGludCB1YXJ0MF9tdXh2YWxzW10gPSB7MCwgMH07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDBiX3BpbnNbXSA9IHsyMjcsIDIyOH07CiBzdGF0aWMgY29uc3QgaW50IHVhcnQwYl9tdXh2YWxzW10gPSB7MywgM307Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDBiX2N0c3J0c19waW5zW10gPSB7MjI5LCAyMzAsIDIzMSwgMjMyLCAyMzMsIDIzNH07Ci1zdGF0aWMgY29uc3QgaW50IHVhcnQwYl9jdHNydHNfbXV4dmFsc1tdID0gezMsIDMsIDMsIDMsIDMsIDN9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQwYl9jdHNydHNfcGluc1tdID0gezIzMiwgMjMzfTsKK3N0YXRpYyBjb25zdCBpbnQgdWFydDBiX2N0c3J0c19tdXh2YWxzW10gPSB7MywgM307CitzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDBiX21vZGVtX3BpbnNbXSA9IHsyMjksIDIzMCwgMjMxLCAyMzR9Oworc3RhdGljIGNvbnN0IGludCB1YXJ0MGJfbW9kZW1fbXV4dmFsc1tdID0gezMsIDMsIDMsIDN9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQxX3BpbnNbXSA9IHs0OSwgNTB9Owogc3RhdGljIGNvbnN0IGludCB1YXJ0MV9tdXh2YWxzW10gPSB7MCwgMH07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDJfcGluc1tdID0gezUxLCA1Mn07CkBAIC05MDAsNiArOTA0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1bmlwaGllcl9waW5jdHJsX2dyb3VwIHVuaXBoaWVyX3BybzVfZ3JvdXBzW10gPSB7CiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChpMmM1YiksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChpMmM1YyksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChpMmM2KSwKKwlVTklQSElFUl9QSU5DVFJMX0dST1VQKHBjaWUpLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAoc2QpLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAoc3BpMCksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChzcGkxKSwKQEAgLTkxNiw2ICs5MjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVuaXBoaWVyX3BpbmN0cmxfZ3JvdXAgdW5pcGhpZXJfcHJvNV9ncm91cHNbXSA9IHsKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQwKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQwYiksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MGJfY3RzcnRzKSwKKwlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQwYl9tb2RlbSksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MSksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MiksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MyksCkBAIC05MzMsNiArOTM5LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpMmMzX2dyb3Vwc1tdID0geyJpMmMzIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGkyYzVfZ3JvdXBzW10gPSB7ImkyYzUiLCAiaTJjNWIiLCAiaTJjNWMifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaTJjNl9ncm91cHNbXSA9IHsiaTJjNiJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBuYW5kX2dyb3Vwc1tdID0geyJuYW5kIiwgIm5hbmRfY3MxIn07CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBjaWVfZ3JvdXBzW10gPSB7InBjaWUifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2RfZ3JvdXBzW10gPSB7InNkIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaTBfZ3JvdXBzW10gPSB7InNwaTAifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3BpMV9ncm91cHNbXSA9IHsic3BpMSJ9OwpAQCAtOTQ2LDcgKzk1Myw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3lzdGVtX2J1c19ncm91cHNbXSA9IHsic3lzdGVtX2J1cyIsCiAJCQkJCQkgInN5c3RlbV9idXNfY3M1IiwKIAkJCQkJCSAic3lzdGVtX2J1c19jczYiLAogCQkJCQkJICJzeXN0ZW1fYnVzX2NzNyJ9Owotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0MF9ncm91cHNbXSA9IHsidWFydDAiLCAidWFydDBiIiwgInVhcnQwYl9jdHNydHMifTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDBfZ3JvdXBzW10gPSB7InVhcnQwIiwgInVhcnQwYiIsCisJCQkJCSAgICAidWFydDBiX2N0c3J0cyIsICJ1YXJ0MGJfbW9kZW0ifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDFfZ3JvdXBzW10gPSB7InVhcnQxIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQyX2dyb3Vwc1tdID0geyJ1YXJ0MiJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0M19ncm91cHNbXSA9IHsidWFydDMifTsKQEAgLTk2Myw2ICs5NzEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVuaXBoaWVyX3Bpbm11eF9mdW5jdGlvbiB1bmlwaGllcl9wcm81X2Z1bmN0aW9uc1tdID0gewogCVVOSVBISUVSX1BJTk1VWF9GVU5DVElPTihpMmM1KSwKIAlVTklQSElFUl9QSU5NVVhfRlVOQ1RJT04oaTJjNiksCiAJVU5JUEhJRVJfUElOTVVYX0ZVTkNUSU9OKG5hbmQpLAorCVVOSVBISUVSX1BJTk1VWF9GVU5DVElPTihwY2llKSwKIAlVTklQSElFUl9QSU5NVVhfRlVOQ1RJT04oc2QpLAogCVVOSVBISUVSX1BJTk1VWF9GVU5DVElPTihzcGkwKSwKIAlVTklQSElFUl9QSU5NVVhfRlVOQ1RJT04oc3BpMSksCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1weHMyLmMgYi9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1weHMyLmMKaW5kZXggMTY5YmI0NC4uZTUyZTY1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItcHhzMi5jCisrKyBiL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLXB4czIuYwpAQCAtNzgzLDggKzc4MywxMCBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDBfcGluc1tdID0gezIxNywgMjE4fTsKIHN0YXRpYyBjb25zdCBpbnQgdWFydDBfbXV4dmFsc1tdID0gezgsIDh9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQwYl9waW5zW10gPSB7MTc5LCAxODB9Owogc3RhdGljIGNvbnN0IGludCB1YXJ0MGJfbXV4dmFsc1tdID0gezEwLCAxMH07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDBiX2N0c3J0c19waW5zW10gPSB7MTc2LCAxNzcsIDE3OCwgMTgzLCAxODQsIDE4NX07Ci1zdGF0aWMgY29uc3QgaW50IHVhcnQwYl9jdHNydHNfbXV4dmFsc1tdID0gezEwLCAxMCwgMTAsIDEwLCAxMCwgMTB9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQwYl9jdHNydHNfcGluc1tdID0gezE4MywgMTg1fTsKK3N0YXRpYyBjb25zdCBpbnQgdWFydDBiX2N0c3J0c19tdXh2YWxzW10gPSB7MTAsIDEwfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0MGJfbW9kZW1fcGluc1tdID0gezE3NiwgMTc3LCAxNzgsIDE4NH07CitzdGF0aWMgY29uc3QgaW50IHVhcnQwYl9tb2RlbV9tdXh2YWxzW10gPSB7MTAsIDEwLCAxMCwgMTB9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQxX3BpbnNbXSA9IHsxMTUsIDExNn07CiBzdGF0aWMgY29uc3QgaW50IHVhcnQxX211eHZhbHNbXSA9IHs4LCA4fTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0Ml9waW5zW10gPSB7MTEzLCAxMTR9OwpAQCAtODYzLDYgKzg2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdW5pcGhpZXJfcGluY3RybF9ncm91cCB1bmlwaGllcl9weHMyX2dyb3Vwc1tdID0gewogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDApLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDBiKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQwYl9jdHNydHMpLAorCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDBiX21vZGVtKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQxKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQyKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQzKSwKQEAgLTg5OCw3ICs5MDEsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaTBfZ3JvdXBzW10gPSB7InNwaTAifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3BpMV9ncm91cHNbXSA9IHsic3BpMSJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzeXN0ZW1fYnVzX2dyb3Vwc1tdID0geyJzeXN0ZW1fYnVzIiwKIAkJCQkJCSAic3lzdGVtX2J1c19jczEifTsKLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDBfZ3JvdXBzW10gPSB7InVhcnQwIiwgInVhcnQwYiIsICJ1YXJ0MGJfY3RzcnRzIn07CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQwX2dyb3Vwc1tdID0geyJ1YXJ0MCIsICJ1YXJ0MGIiLAorCQkJCQkgICAgInVhcnQwYl9jdHNydHMiLCAidWFydDBiX21vZGVtIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX2dyb3Vwc1tdID0geyJ1YXJ0MSJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0Ml9ncm91cHNbXSA9IHsidWFydDIifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDNfZ3JvdXBzW10gPSB7InVhcnQzIiwgInVhcnQzYiJ9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItcHhzMy5jIGIvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItcHhzMy5jCmluZGV4IDNkYzNlNWIuLjJiMzg4ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLXB4czMuYworKysgYi9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1weHMzLmMKQEAgLTgxMSw4ICs4MTEsMTAgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzeXN0ZW1fYnVzX2NzMV9waW5zW10gPSB7MTV9Owogc3RhdGljIGNvbnN0IGludCBzeXN0ZW1fYnVzX2NzMV9tdXh2YWxzW10gPSB7MH07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHVhcnQwX3BpbnNbXSA9IHs5MiwgOTN9Owogc3RhdGljIGNvbnN0IGludCB1YXJ0MF9tdXh2YWxzW10gPSB7MCwgMH07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHVhcnQwX2N0c3J0c19waW5zW10gPSB7MjQzLCAyNDQsIDI0NSwgMjQ2LCAyNDcsIDI0OH07Ci1zdGF0aWMgY29uc3QgaW50IHVhcnQwX2N0c3J0c19tdXh2YWxzW10gPSB7MywgMywgMywgMywgMywgM307CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHVhcnQwX2N0c3J0c19waW5zW10gPSB7MjQzLCAyNDd9Oworc3RhdGljIGNvbnN0IGludCB1YXJ0MF9jdHNydHNfbXV4dmFsc1tdID0gezMsIDN9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB1YXJ0MF9tb2RlbV9waW5zW10gPSB7MjQ0LCAyNDUsIDI0NiwgMjQ4fTsKK3N0YXRpYyBjb25zdCBpbnQgdWFydDBfbW9kZW1fbXV4dmFsc1tdID0gezMsIDMsIDMsIDN9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB1YXJ0MV9waW5zW10gPSB7OTQsIDk1fTsKIHN0YXRpYyBjb25zdCBpbnQgdWFydDFfbXV4dmFsc1tdID0gezAsIDB9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB1YXJ0Ml9waW5zW10gPSB7OTYsIDk3fTsKQEAgLTg4Nyw2ICs4ODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVuaXBoaWVyX3BpbmN0cmxfZ3JvdXAgdW5pcGhpZXJfcHhzM19ncm91cHNbXSA9IHsKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHN5c3RlbV9idXNfY3MxKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQwKSwKIAlVTklQSElFUl9QSU5DVFJMX0dST1VQKHVhcnQwX2N0c3J0cyksCisJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MF9tb2RlbSksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MSksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MiksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MyksCkBAIC05MTQsNyArOTE3LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzcGkwX2dyb3Vwc1tdID0geyJzcGkwIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaTFfZ3JvdXBzW10gPSB7InNwaTEifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3lzdGVtX2J1c19ncm91cHNbXSA9IHsic3lzdGVtX2J1cyIsCiAJCQkJCQkgInN5c3RlbV9idXNfY3MxIn07Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQwX2dyb3Vwc1tdID0geyJ1YXJ0MCIsICJ1YXJ0MF9jdHNydHMifTsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDBfZ3JvdXBzW10gPSB7InVhcnQwIiwgInVhcnQwX2N0c3J0cyIsCisJCQkJCSAgICAidWFydDBfbW9kZW0ifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDFfZ3JvdXBzW10gPSB7InVhcnQxIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQyX2dyb3Vwc1tdID0geyJ1YXJ0MiJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0M19ncm91cHNbXSA9IHsidWFydDMifTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLXNsZDguYyBiL2RyaXZlcnMvcGluY3RybC91bmlwaGllci9waW5jdHJsLXVuaXBoaWVyLXNsZDguYwppbmRleCA0NjNlOTMyLi4wODdlOGRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvdW5pcGhpZXIvcGluY3RybC11bmlwaGllci1zbGQ4LmMKKysrIGIvZHJpdmVycy9waW5jdHJsL3VuaXBoaWVyL3BpbmN0cmwtdW5pcGhpZXItc2xkOC5jCkBAIC01MTMsOCArNTEzLDEwIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzeXN0ZW1fYnVzX2NzNV9waW5zW10gPSB7MTN9Owogc3RhdGljIGNvbnN0IGludCBzeXN0ZW1fYnVzX2NzNV9tdXh2YWxzW10gPSB7MX07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDBfcGluc1tdID0gezcwLCA3MX07CiBzdGF0aWMgY29uc3QgaW50IHVhcnQwX211eHZhbHNbXSA9IHszLCAzfTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0MF9jdHNydHNfcGluc1tdID0gezcyLCA3MywgNzR9Owotc3RhdGljIGNvbnN0IGludCB1YXJ0MF9jdHNydHNfbXV4dmFsc1tdID0gezMsIDMsIDN9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQwX2N0c3J0c19waW5zW10gPSB7NzIsIDc0fTsKK3N0YXRpYyBjb25zdCBpbnQgdWFydDBfY3RzcnRzX211eHZhbHNbXSA9IHszLCAzfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB1YXJ0MF9tb2RlbV9waW5zW10gPSB7NzN9Oworc3RhdGljIGNvbnN0IGludCB1YXJ0MF9tb2RlbV9tdXh2YWxzW10gPSB7M307CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdWFydDFfcGluc1tdID0gezExNCwgMTE1fTsKIHN0YXRpYyBjb25zdCBpbnQgdWFydDFfbXV4dmFsc1tdID0gezAsIDB9Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVhcnQyX3BpbnNbXSA9IHsxMTIsIDExM307CkBAIC01NzIsNiArNTc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1bmlwaGllcl9waW5jdHJsX2dyb3VwIHVuaXBoaWVyX3NsZDhfZ3JvdXBzW10gPSB7CiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUChzeXN0ZW1fYnVzX2NzNSksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MCksCiAJVU5JUEhJRVJfUElOQ1RSTF9HUk9VUCh1YXJ0MF9jdHNydHMpLAorCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDBfbW9kZW0pLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDEpLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDIpLAogCVVOSVBISUVSX1BJTkNUUkxfR1JPVVAodWFydDMpLApAQCAtNTk5LDcgKzYwMiw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3lzdGVtX2J1c19ncm91cHNbXSA9IHsic3lzdGVtX2J1cyIsCiAJCQkJCQkgInN5c3RlbV9idXNfY3MzIiwKIAkJCQkJCSAic3lzdGVtX2J1c19jczQiLAogCQkJCQkJICJzeXN0ZW1fYnVzX2NzNSJ9Owotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0MF9ncm91cHNbXSA9IHsidWFydDAiLCAidWFydDBfY3RzcnRzIn07CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQwX2dyb3Vwc1tdID0geyJ1YXJ0MCIsICJ1YXJ0MF9jdHNydHMiLAorCQkJCQkgICAgInVhcnQwX21vZGVtIn07CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX2dyb3Vwc1tdID0geyJ1YXJ0MSJ9Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0Ml9ncm91cHNbXSA9IHsidWFydDIifTsKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDNfZ3JvdXBzW10gPSB7InVhcnQzIn07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9LY29uZmlnIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvS2NvbmZpZwppbmRleCA5NzA2NzlkLi5lZTVmMDhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9LY29uZmlnCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL0tjb25maWcKQEAgLTMsNiArMywxNiBAQAogIyBQbGF0Zm9ybSBzdXBwb3J0IGZvciBDaHJvbWUgT1MgaGFyZHdhcmUgKENocm9tZWJvb2tzIGFuZCBDaHJvbWVib3hlcykKICMKIAorY29uZmlnIE1GRF9DUk9TX0VDCisJdHJpc3RhdGUgIlBsYXRmb3JtIHN1cHBvcnQgZm9yIENocm9tZSBoYXJkd2FyZSAodHJhbnNpdGlvbmFsKSIKKwlzZWxlY3QgQ0hST01FX1BMQVRGT1JNUworCXNlbGVjdCBDUk9TX0VDCisJc2VsZWN0IENPTkZJR19NRkRfQ1JPU19FQ19ERVYKKwlkZXBlbmRzIG9uIFg4NiB8fCBBUk0gfHwgQVJNNjQgfHwgQ09NUElMRV9URVNUCisJaGVscAorCSAgVGhpcyBpcyBhIHRyYW5zaXRpb25hbCBLY29uZmlnIG9wdGlvbiBhbmQgd2lsbCBiZSByZW1vdmVkIGFmdGVyCisJICBldmVyeW9uZSBlbmFibGVzIHRoZSBwYXJ0cyBpbmRpdmlkdWFsbHkuCisKIG1lbnVjb25maWcgQ0hST01FX1BMQVRGT1JNUwogCWJvb2wgIlBsYXRmb3JtIHN1cHBvcnQgZm9yIENocm9tZSBoYXJkd2FyZSIKIAlkZXBlbmRzIG9uIFg4NiB8fCBBUk0gfHwgQVJNNjQgfHwgQ09NUElMRV9URVNUCkBAIC01MCw5ICs2MCwyMiBAQAogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCiAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgY2hyb21lb3NfdGJtYy4KIAorY29uZmlnIENST1NfRUMKKwl0cmlzdGF0ZSAiQ2hyb21lT1MgRW1iZWRkZWQgQ29udHJvbGxlciIKKwlzZWxlY3QgQ1JPU19FQ19QUk9UTworCWRlcGVuZHMgb24gWDg2IHx8IEFSTSB8fCBBUk02NCB8fCBDT01QSUxFX1RFU1QKKwloZWxwCisJICBJZiB5b3Ugc2F5IFkgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBDaHJvbWVPUyBFbWJlZGRlZAorCSAgQ29udHJvbGxlciAoRUMpIHByb3ZpZGluZyBrZXlib2FyZCwgYmF0dGVyeSBhbmQgcG93ZXIgc2VydmljZXMuCisJICBZb3UgYWxzbyBuZWVkIHRvIGVuYWJsZSB0aGUgZHJpdmVyIGZvciB0aGUgYnVzIHlvdSBhcmUgdXNpbmcuIFRoZQorCSAgcHJvdG9jb2wgZm9yIHRhbGtpbmcgdG8gdGhlIEVDIGlzIGRlZmluZWQgYnkgdGhlIGJ1cyBkcml2ZXIuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGNyb3NfZWMuCisKIGNvbmZpZyBDUk9TX0VDX0kyQwogCXRyaXN0YXRlICJDaHJvbWVPUyBFbWJlZGRlZCBDb250cm9sbGVyIChJMkMpIgotCWRlcGVuZHMgb24gTUZEX0NST1NfRUMgJiYgSTJDCisJZGVwZW5kcyBvbiBDUk9TX0VDICYmIEkyQwogCiAJaGVscAogCSAgSWYgeW91IHNheSBZIGhlcmUsIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGFsa2luZyB0byB0aGUgQ2hyb21lT1MKQEAgLTYyLDcgKzg1LDcgQEAKIAogY29uZmlnIENST1NfRUNfUlBNU0cKIAl0cmlzdGF0ZSAiQ2hyb21lT1MgRW1iZWRkZWQgQ29udHJvbGxlciAocnBtc2cpIgotCWRlcGVuZHMgb24gTUZEX0NST1NfRUMgJiYgUlBNU0cgJiYgT0YKKwlkZXBlbmRzIG9uIENST1NfRUMgJiYgUlBNU0cgJiYgT0YKIAloZWxwCiAJICBJZiB5b3Ugc2F5IFkgaGVyZSwgeW91IGdldCBzdXBwb3J0IGZvciB0YWxraW5nIHRvIHRoZSBDaHJvbWVPUyBFQwogCSAgdGhyb3VnaCBycG1zZy4gVGhpcyB1c2VzIGEgc2ltcGxlIGJ5dGUtbGV2ZWwgcHJvdG9jb2wgd2l0aCBhCkBAIC03NCw3ICs5Nyw3IEBACiAKIGNvbmZpZyBDUk9TX0VDX0lTSFRQCiAJdHJpc3RhdGUgIkNocm9tZU9TIEVtYmVkZGVkIENvbnRyb2xsZXIgKElTSFRQKSIKLQlkZXBlbmRzIG9uIE1GRF9DUk9TX0VDCisJZGVwZW5kcyBvbiBDUk9TX0VDCiAJZGVwZW5kcyBvbiBJTlRFTF9JU0hfSElECiAJaGVscAogCSAgSWYgeW91IHNheSBZIGhlcmUsIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGFsa2luZyB0byB0aGUgQ2hyb21lT1MgRUMKQEAgLTg3LDcgKzExMCw3IEBACiAKIGNvbmZpZyBDUk9TX0VDX1NQSQogCXRyaXN0YXRlICJDaHJvbWVPUyBFbWJlZGRlZCBDb250cm9sbGVyIChTUEkpIgotCWRlcGVuZHMgb24gTUZEX0NST1NfRUMgJiYgU1BJCisJZGVwZW5kcyBvbiBDUk9TX0VDICYmIFNQSQogCiAJLS0taGVscC0tLQogCSAgSWYgeW91IHNheSBZIGhlcmUsIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGFsa2luZyB0byB0aGUgQ2hyb21lT1MgRUMKQEAgLTk3LDcgKzEyMCw3IEBACiAKIGNvbmZpZyBDUk9TX0VDX0xQQwogCXRyaXN0YXRlICJDaHJvbWVPUyBFbWJlZGRlZCBDb250cm9sbGVyIChMUEMpIgotCWRlcGVuZHMgb24gTUZEX0NST1NfRUMgJiYgQUNQSSAmJiAoWDg2IHx8IENPTVBJTEVfVEVTVCkKKwlkZXBlbmRzIG9uIENST1NfRUMgJiYgQUNQSSAmJiAoWDg2IHx8IENPTVBJTEVfVEVTVCkKIAloZWxwCiAJICBJZiB5b3Ugc2F5IFkgaGVyZSwgeW91IGdldCBzdXBwb3J0IGZvciB0YWxraW5nIHRvIHRoZSBDaHJvbWVPUyBFQwogCSAgb3ZlciBhbiBMUEMgYnVzLCBpbmNsdWRpbmcgdGhlIExQQyBNaWNyb2NoaXAgRUMgKE1FQykgdmFyaWFudC4KQEAgLTEyMywxMCArMTQ2LDIxIEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBjcm9zX2tiZF9sZWRfYmFja2xpZ2h0LgogCitjb25maWcgQ1JPU19FQ19DSEFSREVWCisJdHJpc3RhdGUgIkNocm9tZU9TIEVDIG1pc2NkZXZpY2UiCisJZGVwZW5kcyBvbiBNRkRfQ1JPU19FQ19ERVYKKwlkZWZhdWx0IE1GRF9DUk9TX0VDX0RFVgorCWhlbHAKKwkgIFRoaXMgZHJpdmVyIGFkZHMgZmlsZSBvcGVyYXRpb25zIHN1cHBvcnQgdG8gdGFsayB3aXRoIHRoZQorCSAgQ2hyb21lT1MgRUMgZnJvbSB1c2Vyc3BhY2UgdmlhIGEgY2hhcmFjdGVyIGRldmljZS4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgY3Jvc19lY19jaGFyZGV2LgorCiBjb25maWcgQ1JPU19FQ19MSUdIVEJBUgogCXRyaXN0YXRlICJDaHJvbWVib29rIFBpeGVsJ3MgbGlnaHRiYXIgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIE1GRF9DUk9TX0VDX0NIQVJERVYKLQlkZWZhdWx0IE1GRF9DUk9TX0VDX0NIQVJERVYKKwlkZXBlbmRzIG9uIE1GRF9DUk9TX0VDX0RFVgorCWRlZmF1bHQgTUZEX0NST1NfRUNfREVWCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZXhwb3NlcyB0aGUgQ2hyb21lYm9vayBQaXhlbCdzIGxpZ2h0YmFyIHRvCiAJICB1c2Vyc3BhY2UuCkBAIC0xMzYsOCArMTcwLDggQEAKIAogY29uZmlnIENST1NfRUNfVkJDCiAJdHJpc3RhdGUgIkNocm9tZU9TIEVDIHZib290IGNvbnRleHQgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIE1GRF9DUk9TX0VDX0NIQVJERVYgJiYgT0YKLQlkZWZhdWx0IE1GRF9DUk9TX0VDX0NIQVJERVYKKwlkZXBlbmRzIG9uIE1GRF9DUk9TX0VDX0RFViAmJiBPRgorCWRlZmF1bHQgTUZEX0NST1NfRUNfREVWCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZXhwb3NlcyB0aGUgQ2hyb21lT1MgRUMgdmJvb3QgY29udGV4dCBudnJhbSB0bwogCSAgdXNlcnNwYWNlLgpAQCAtMTQ3LDggKzE4MSw4IEBACiAKIGNvbmZpZyBDUk9TX0VDX0RFQlVHRlMKIAl0cmlzdGF0ZSAiRXhwb3J0IENocm9tZU9TIEVDIGludGVybmFscyBpbiBEZWJ1Z0ZTIgotCWRlcGVuZHMgb24gTUZEX0NST1NfRUNfQ0hBUkRFViAmJiBERUJVR19GUwotCWRlZmF1bHQgTUZEX0NST1NfRUNfQ0hBUkRFVgorCWRlcGVuZHMgb24gTUZEX0NST1NfRUNfREVWICYmIERFQlVHX0ZTCisJZGVmYXVsdCBNRkRfQ1JPU19FQ19ERVYKIAloZWxwCiAJICBUaGlzIG9wdGlvbiBleHBvc2VzIHRoZSBDaHJvbWVPUyBFQyBkZXZpY2UgaW50ZXJuYWxzIHRvCiAJICB1c2Vyc3BhY2UuCkBAIC0xNTgsOCArMTkyLDggQEAKIAogY29uZmlnIENST1NfRUNfU1lTRlMKIAl0cmlzdGF0ZSAiQ2hyb21lT1MgRUMgY29udHJvbCBhbmQgaW5mb3JtYXRpb24gdGhyb3VnaCBzeXNmcyIKLQlkZXBlbmRzIG9uIE1GRF9DUk9TX0VDX0NIQVJERVYgJiYgU1lTRlMKLQlkZWZhdWx0IE1GRF9DUk9TX0VDX0NIQVJERVYKKwlkZXBlbmRzIG9uIE1GRF9DUk9TX0VDX0RFViAmJiBTWVNGUworCWRlZmF1bHQgTUZEX0NST1NfRUNfREVWCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZXhwb3NlcyBzb21lIHN5c2ZzIGF0dHJpYnV0ZXMgdG8gY29udHJvbCBhbmQgZ2V0CiAJICBpbmZvcm1hdGlvbiBmcm9tIENocm9tZU9TIEVDLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvTWFrZWZpbGUgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9NYWtlZmlsZQppbmRleCBmZDBhZjA1Yy4uNDc3ZWMzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvTWFrZWZpbGUKQEAgLTYsNiArNiw3IEBACiBvYmotJChDT05GSUdfQ0hST01FT1NfTEFQVE9QKQkJKz0gY2hyb21lb3NfbGFwdG9wLm8KIG9iai0kKENPTkZJR19DSFJPTUVPU19QU1RPUkUpCQkrPSBjaHJvbWVvc19wc3RvcmUubwogb2JqLSQoQ09ORklHX0NIUk9NRU9TX1RCTUMpCQkrPSBjaHJvbWVvc190Ym1jLm8KK29iai0kKENPTkZJR19DUk9TX0VDKQkJCSs9IGNyb3NfZWMubwogb2JqLSQoQ09ORklHX0NST1NfRUNfSTJDKQkJKz0gY3Jvc19lY19pMmMubwogb2JqLSQoQ09ORklHX0NST1NfRUNfSVNIVFApCQkrPSBjcm9zX2VjX2lzaHRwLm8KIG9iai0kKENPTkZJR19DUk9TX0VDX1JQTVNHKQkJKz0gY3Jvc19lY19ycG1zZy5vCkBAIC0xNCw2ICsxNSw3IEBACiBvYmotJChDT05GSUdfQ1JPU19FQ19MUEMpCQkrPSBjcm9zX2VjX2xwY3Mubwogb2JqLSQoQ09ORklHX0NST1NfRUNfUFJPVE8pCQkrPSBjcm9zX2VjX3Byb3RvLm8gY3Jvc19lY190cmFjZS5vCiBvYmotJChDT05GSUdfQ1JPU19LQkRfTEVEX0JBQ0tMSUdIVCkJKz0gY3Jvc19rYmRfbGVkX2JhY2tsaWdodC5vCitvYmotJChDT05GSUdfQ1JPU19FQ19DSEFSREVWKQkJKz0gY3Jvc19lY19jaGFyZGV2Lm8KIG9iai0kKENPTkZJR19DUk9TX0VDX0xJR0hUQkFSKQkJKz0gY3Jvc19lY19saWdodGJhci5vCiBvYmotJChDT05GSUdfQ1JPU19FQ19WQkMpCQkrPSBjcm9zX2VjX3ZiYy5vCiBvYmotJChDT05GSUdfQ1JPU19FQ19ERUJVR0ZTKQkJKz0gY3Jvc19lY19kZWJ1Z2ZzLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nocm9tZW9zX2xhcHRvcC5jIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY2hyb21lb3NfbGFwdG9wLmMKaW5kZXggN2FiYmI2MS4uODcyM2JjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY2hyb21lb3NfbGFwdG9wLmMKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY2hyb21lb3NfbGFwdG9wLmMKQEAgLTgzOCwxOCArODM4LDE0IEBAIHN0YXRpYyB2b2lkIGNocm9tZW9zX2xhcHRvcF9kZXN0cm95KGNvbnN0IHN0cnVjdCBjaHJvbWVvc19sYXB0b3AgKmNyb3NfbGFwdG9wKQogCQlpMmNfZGV2ID0gJmNyb3NfbGFwdG9wLT5pMmNfcGVyaXBoZXJhbHNbaV07CiAJCWluZm8gPSAmaTJjX2Rldi0+Ym9hcmRfaW5mbzsKIAotCQlpZiAoaTJjX2Rldi0+Y2xpZW50KQotCQkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGkyY19kZXYtPmNsaWVudCk7Ci0KLQkJaWYgKGluZm8tPnByb3BlcnRpZXMpCi0JCQlwcm9wZXJ0eV9lbnRyaWVzX2ZyZWUoaW5mby0+cHJvcGVydGllcyk7CisJCWkyY191bnJlZ2lzdGVyX2RldmljZShpMmNfZGV2LT5jbGllbnQpOworCQlwcm9wZXJ0eV9lbnRyaWVzX2ZyZWUoaW5mby0+cHJvcGVydGllcyk7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IGNyb3NfbGFwdG9wLT5udW1fYWNwaV9wZXJpcGhlcmFsczsgaSsrKSB7CiAJCWFjcGlfZGV2ID0gJmNyb3NfbGFwdG9wLT5hY3BpX3BlcmlwaGVyYWxzW2ldOwogCi0JCWlmIChhY3BpX2Rldi0+cHJvcGVydGllcykKLQkJCXByb3BlcnR5X2VudHJpZXNfZnJlZShhY3BpX2Rldi0+cHJvcGVydGllcyk7CisJCXByb3BlcnR5X2VudHJpZXNfZnJlZShhY3BpX2Rldi0+cHJvcGVydGllcyk7CiAJfQogCiAJa2ZyZWUoY3Jvc19sYXB0b3AtPmkyY19wZXJpcGhlcmFscyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jaHJvbWVvc190Ym1jLmMgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jaHJvbWVvc190Ym1jLmMKaW5kZXggY2UyNTllYy4uZDFjZjhmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY2hyb21lb3NfdGJtYy5jCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nocm9tZW9zX3RibWMuYwpAQCAtNDcsNiArNDcsNyBAQCBzdGF0aWMgX19tYXliZV91bnVzZWQgaW50IGNocm9tZW9zX3RibWNfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIAogc3RhdGljIHZvaWQgY2hyb21lb3NfdGJtY19ub3RpZnkoc3RydWN0IGFjcGlfZGV2aWNlICphZGV2LCB1MzIgZXZlbnQpCiB7CisJYWNwaV9wbV93YWtldXBfZXZlbnQoJmFkZXYtPmRldik7CiAJc3dpdGNoIChldmVudCkgewogCWNhc2UgMHg4MDoKIAkJY2hyb21lb3NfdGJtY19xdWVyeV9zd2l0Y2goYWRldiwgYWRldi0+ZHJpdmVyX2RhdGEpOwpAQCAtOTAsNiArOTEsNyBAQCBzdGF0aWMgaW50IGNocm9tZW9zX3RibWNfYWRkKHN0cnVjdCBhY3BpX2RldmljZSAqYWRldikKIAkJZGV2X2VycihkZXYsICJjYW5ub3QgcmVnaXN0ZXIgaW5wdXQgZGV2aWNlXG4iKTsKIAkJcmV0dXJuIHJldDsKIAl9CisJZGV2aWNlX2luaXRfd2FrZXVwKGRldiwgdHJ1ZSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWMuYyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDc3ZTZmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lYy5jCkBAIC0wLDAgKzEsMjgxIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogQ2hyb21lT1MgRUMgbXVsdGktZnVuY3Rpb24gZGV2aWNlCisgKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jCisgKgorICogVGhlIENocm9tZU9TIEVDIG11bHRpIGZ1bmN0aW9uIGRldmljZSBpcyB1c2VkIHRvIG11eCBhbGwgdGhlIHJlcXVlc3RzCisgKiB0byB0aGUgRUMgZGV2aWNlIGZvciBpdHMgbXVsdGlwbGUgZmVhdHVyZXM6IGtleWJvYXJkIGNvbnRyb2xsZXIsCisgKiBiYXR0ZXJ5IGNoYXJnaW5nIGFuZCByZWd1bGF0b3IgY29udHJvbCwgZmlybXdhcmUgdXBkYXRlLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CisjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgorCisjZGVmaW5lIENST1NfRUNfREVWX0VDX0lOREVYIDAKKyNkZWZpbmUgQ1JPU19FQ19ERVZfUERfSU5ERVggMQorCitzdGF0aWMgc3RydWN0IGNyb3NfZWNfcGxhdGZvcm0gZWNfcCA9IHsKKwkuZWNfbmFtZSA9IENST1NfRUNfREVWX05BTUUsCisJLmNtZF9vZmZzZXQgPSBFQ19DTURfUEFTU1RIUlVfT0ZGU0VUKENST1NfRUNfREVWX0VDX0lOREVYKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY3Jvc19lY19wbGF0Zm9ybSBwZF9wID0geworCS5lY19uYW1lID0gQ1JPU19FQ19ERVZfUERfTkFNRSwKKwkuY21kX29mZnNldCA9IEVDX0NNRF9QQVNTVEhSVV9PRkZTRVQoQ1JPU19FQ19ERVZfUERfSU5ERVgpLAorfTsKKworc3RhdGljIGlycXJldHVybl90IGVjX2lycV90aHJlYWQoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiA9IGRhdGE7CisJYm9vbCB3YWtlX2V2ZW50ID0gdHJ1ZTsKKwlpbnQgcmV0OworCisJcmV0ID0gY3Jvc19lY19nZXRfbmV4dF9ldmVudChlY19kZXYsICZ3YWtlX2V2ZW50KTsKKworCS8qCisJICogU2lnbmFsIG9ubHkgaWYgd2FrZSBob3N0IGV2ZW50cyBvciBhbnkgaW50ZXJydXB0IGlmCisJICogY3Jvc19lY19nZXRfbmV4dF9ldmVudCgpIHJldHVybmVkIGFuIGVycm9yIChkZWZhdWx0IHZhbHVlIGZvcgorCSAqIHdha2VfZXZlbnQgaXMgdHJ1ZSkKKwkgKi8KKwlpZiAod2FrZV9ldmVudCAmJiBkZXZpY2VfbWF5X3dha2V1cChlY19kZXYtPmRldikpCisJCXBtX3dha2V1cF9ldmVudChlY19kZXYtPmRldiwgMCk7CisKKwlpZiAocmV0ID4gMCkKKwkJYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbigmZWNfZGV2LT5ldmVudF9ub3RpZmllciwKKwkJCQkJICAgICAwLCBlY19kZXYpOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIGludCBjcm9zX2VjX3NsZWVwX2V2ZW50KHN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2LCB1OCBzbGVlcF9ldmVudCkKK3sKKwlpbnQgcmV0OworCXN0cnVjdCB7CisJCXN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgbXNnOworCQl1bmlvbiB7CisJCQlzdHJ1Y3QgZWNfcGFyYW1zX2hvc3Rfc2xlZXBfZXZlbnQgcmVxMDsKKwkJCXN0cnVjdCBlY19wYXJhbXNfaG9zdF9zbGVlcF9ldmVudF92MSByZXExOworCQkJc3RydWN0IGVjX3Jlc3BvbnNlX2hvc3Rfc2xlZXBfZXZlbnRfdjEgcmVzcDE7CisJCX0gdTsKKwl9IF9fcGFja2VkIGJ1ZjsKKworCW1lbXNldCgmYnVmLCAwLCBzaXplb2YoYnVmKSk7CisKKwlpZiAoZWNfZGV2LT5ob3N0X3NsZWVwX3YxKSB7CisJCWJ1Zi51LnJlcTEuc2xlZXBfZXZlbnQgPSBzbGVlcF9ldmVudDsKKwkJYnVmLnUucmVxMS5zdXNwZW5kX3BhcmFtcy5zbGVlcF90aW1lb3V0X21zID0KKwkJCQlFQ19IT1NUX1NMRUVQX1RJTUVPVVRfREVGQVVMVDsKKworCQlidWYubXNnLm91dHNpemUgPSBzaXplb2YoYnVmLnUucmVxMSk7CisJCWlmICgoc2xlZXBfZXZlbnQgPT0gSE9TVF9TTEVFUF9FVkVOVF9TM19SRVNVTUUpIHx8CisJCSAgICAoc2xlZXBfZXZlbnQgPT0gSE9TVF9TTEVFUF9FVkVOVF9TMElYX1JFU1VNRSkpCisJCQlidWYubXNnLmluc2l6ZSA9IHNpemVvZihidWYudS5yZXNwMSk7CisKKwkJYnVmLm1zZy52ZXJzaW9uID0gMTsKKworCX0gZWxzZSB7CisJCWJ1Zi51LnJlcTAuc2xlZXBfZXZlbnQgPSBzbGVlcF9ldmVudDsKKwkJYnVmLm1zZy5vdXRzaXplID0gc2l6ZW9mKGJ1Zi51LnJlcTApOworCX0KKworCWJ1Zi5tc2cuY29tbWFuZCA9IEVDX0NNRF9IT1NUX1NMRUVQX0VWRU5UOworCisJcmV0ID0gY3Jvc19lY19jbWRfeGZlcihlY19kZXYsICZidWYubXNnKTsKKworCS8qIEZvciBub3csIHJlcG9ydCBmYWlsdXJlIHRvIHRyYW5zaXRpb24gdG8gUzBpeCB3aXRoIGEgd2FybmluZy4gKi8KKwlpZiAocmV0ID49IDAgJiYgZWNfZGV2LT5ob3N0X3NsZWVwX3YxICYmCisJICAgIChzbGVlcF9ldmVudCA9PSBIT1NUX1NMRUVQX0VWRU5UX1MwSVhfUkVTVU1FKSkgeworCQllY19kZXYtPmxhc3RfcmVzdW1lX3Jlc3VsdCA9CisJCQlidWYudS5yZXNwMS5yZXN1bWVfcmVzcG9uc2Uuc2xlZXBfdHJhbnNpdGlvbnM7CisKKwkJV0FSTl9PTkNFKGJ1Zi51LnJlc3AxLnJlc3VtZV9yZXNwb25zZS5zbGVlcF90cmFuc2l0aW9ucyAmCisJCQkgIEVDX0hPU1RfUkVTVU1FX1NMRUVQX1RJTUVPVVQsCisJCQkgICJFQyBkZXRlY3RlZCBzbGVlcCB0cmFuc2l0aW9uIHRpbWVvdXQuIFRvdGFsIHNscF9zMCB0cmFuc2l0aW9uczogJWQiLAorCQkJICBidWYudS5yZXNwMS5yZXN1bWVfcmVzcG9uc2Uuc2xlZXBfdHJhbnNpdGlvbnMgJgorCQkJICBFQ19IT1NUX1JFU1VNRV9TTEVFUF9UUkFOU0lUSU9OU19NQVNLKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQgY3Jvc19lY19yZWdpc3RlcihzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBlY19kZXYtPmRldjsKKwlpbnQgZXJyID0gMDsKKworCUJMT0NLSU5HX0lOSVRfTk9USUZJRVJfSEVBRCgmZWNfZGV2LT5ldmVudF9ub3RpZmllcik7CisKKwllY19kZXYtPm1heF9yZXF1ZXN0ID0gc2l6ZW9mKHN0cnVjdCBlY19wYXJhbXNfaGVsbG8pOworCWVjX2Rldi0+bWF4X3Jlc3BvbnNlID0gc2l6ZW9mKHN0cnVjdCBlY19yZXNwb25zZV9nZXRfcHJvdG9jb2xfaW5mbyk7CisJZWNfZGV2LT5tYXhfcGFzc3RocnUgPSAwOworCisJZWNfZGV2LT5kaW4gPSBkZXZtX2t6YWxsb2MoZGV2LCBlY19kZXYtPmRpbl9zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWVjX2Rldi0+ZGluKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWVjX2Rldi0+ZG91dCA9IGRldm1fa3phbGxvYyhkZXYsIGVjX2Rldi0+ZG91dF9zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWVjX2Rldi0+ZG91dCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltdXRleF9pbml0KCZlY19kZXYtPmxvY2spOworCisJZXJyID0gY3Jvc19lY19xdWVyeV9hbGwoZWNfZGV2KTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoZGV2LCAiQ2Fubm90IGlkZW50aWZ5IHRoZSBFQzogZXJyb3IgJWRcbiIsIGVycik7CisJCXJldHVybiBlcnI7CisJfQorCisJaWYgKGVjX2Rldi0+aXJxKSB7CisJCWVyciA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoZGV2LCBlY19kZXYtPmlycSwgTlVMTCwKKwkJCQllY19pcnFfdGhyZWFkLCBJUlFGX1RSSUdHRVJfTE9XIHwgSVJRRl9PTkVTSE9ULAorCQkJCSJjaHJvbWVvcy1lYyIsIGVjX2Rldik7CisJCWlmIChlcnIpIHsKKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3QgSVJRICVkOiAlZCIsCisJCQkJZWNfZGV2LT5pcnEsIGVycik7CisJCQlyZXR1cm4gZXJyOworCQl9CisJfQorCisJLyogUmVnaXN0ZXIgYSBwbGF0Zm9ybSBkZXZpY2UgZm9yIHRoZSBtYWluIEVDIGluc3RhbmNlICovCisJZWNfZGV2LT5lYyA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9kYXRhKGVjX2Rldi0+ZGV2LCAiY3Jvcy1lYy1kZXYiLAorCQkJCQlQTEFURk9STV9ERVZJRF9BVVRPLCAmZWNfcCwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBjcm9zX2VjX3BsYXRmb3JtKSk7CisJaWYgKElTX0VSUihlY19kZXYtPmVjKSkgeworCQlkZXZfZXJyKGVjX2Rldi0+ZGV2LAorCQkJIkZhaWxlZCB0byBjcmVhdGUgQ3JPUyBFQyBwbGF0Zm9ybSBkZXZpY2VcbiIpOworCQlyZXR1cm4gUFRSX0VSUihlY19kZXYtPmVjKTsKKwl9CisKKwlpZiAoZWNfZGV2LT5tYXhfcGFzc3RocnUpIHsKKwkJLyoKKwkJICogUmVnaXN0ZXIgYSBwbGF0Zm9ybSBkZXZpY2UgZm9yIHRoZSBQRCBiZWhpbmQgdGhlIG1haW4gRUMuCisJCSAqIFdlIG1ha2UgdGhlIGZvbGxvd2luZyBhc3N1bXB0aW9uczoKKwkJICogLSBiZWhpbmQgYW4gRUMsIHdlIGhhdmUgYSBwZAorCQkgKiAtIG9ubHkgb25lIGRldmljZSBhZGRlZC4KKwkJICogLSB0aGUgRUMgaXMgcmVzcG9uc2l2ZSBhdCBpbml0IHRpbWUgKGl0IGlzIG5vdCB0cnVlIGZvciBhCisJCSAqICAgc2Vuc29yIGh1YikuCisJCSAqLworCQllY19kZXYtPnBkID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2RhdGEoZWNfZGV2LT5kZXYsCisJCQkJCSJjcm9zLWVjLWRldiIsCisJCQkJCVBMQVRGT1JNX0RFVklEX0FVVE8sICZwZF9wLAorCQkJCQlzaXplb2Yoc3RydWN0IGNyb3NfZWNfcGxhdGZvcm0pKTsKKwkJaWYgKElTX0VSUihlY19kZXYtPnBkKSkgeworCQkJZGV2X2VycihlY19kZXYtPmRldiwKKwkJCQkiRmFpbGVkIHRvIGNyZWF0ZSBDck9TIFBEIHBsYXRmb3JtIGRldmljZVxuIik7CisJCQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihlY19kZXYtPmVjKTsKKwkJCXJldHVybiBQVFJfRVJSKGVjX2Rldi0+cGQpOworCQl9CisJfQorCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX09GKSAmJiBkZXYtPm9mX25vZGUpIHsKKwkJZXJyID0gZGV2bV9vZl9wbGF0Zm9ybV9wb3B1bGF0ZShkZXYpOworCQlpZiAoZXJyKSB7CisJCQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihlY19kZXYtPnBkKTsKKwkJCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKGVjX2Rldi0+ZWMpOworCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgc3ViLWRldmljZXNcbiIpOworCQkJcmV0dXJuIGVycjsKKwkJfQorCX0KKworCS8qCisJICogQ2xlYXIgc2xlZXAgZXZlbnQgLSB0aGlzIHdpbGwgZmFpbCBoYXJtbGVzc2x5IG9uIHBsYXRmb3JtcyB0aGF0CisJICogZG9uJ3QgaW1wbGVtZW50IHRoZSBzbGVlcCBldmVudCBob3N0IGNvbW1hbmQuCisJICovCisJZXJyID0gY3Jvc19lY19zbGVlcF9ldmVudChlY19kZXYsIDApOworCWlmIChlcnIgPCAwKQorCQlkZXZfZGJnKGVjX2Rldi0+ZGV2LCAiRXJyb3IgJWQgY2xlYXJpbmcgc2xlZXAgZXZlbnQgdG8gZWMiLAorCQkJZXJyKTsKKworCWRldl9pbmZvKGRldiwgIkNocm9tZSBFQyBkZXZpY2UgcmVnaXN0ZXJlZFxuIik7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woY3Jvc19lY19yZWdpc3Rlcik7CisKK2ludCBjcm9zX2VjX3VucmVnaXN0ZXIoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYpCit7CisJaWYgKGVjX2Rldi0+cGQpCisJCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKGVjX2Rldi0+cGQpOworCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKGVjX2Rldi0+ZWMpOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGNyb3NfZWNfdW5yZWdpc3Rlcik7CisKKyNpZmRlZiBDT05GSUdfUE1fU0xFRVAKK2ludCBjcm9zX2VjX3N1c3BlbmQoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gZWNfZGV2LT5kZXY7CisJaW50IHJldDsKKwl1OCBzbGVlcF9ldmVudDsKKworCXNsZWVwX2V2ZW50ID0gKCFJU19FTkFCTEVEKENPTkZJR19BQ1BJKSB8fCBwbV9zdXNwZW5kX3ZpYV9maXJtd2FyZSgpKSA/CisJCSAgICAgIEhPU1RfU0xFRVBfRVZFTlRfUzNfU1VTUEVORCA6CisJCSAgICAgIEhPU1RfU0xFRVBfRVZFTlRfUzBJWF9TVVNQRU5EOworCisJcmV0ID0gY3Jvc19lY19zbGVlcF9ldmVudChlY19kZXYsIHNsZWVwX2V2ZW50KTsKKwlpZiAocmV0IDwgMCkKKwkJZGV2X2RiZyhlY19kZXYtPmRldiwgIkVycm9yICVkIHNlbmRpbmcgc3VzcGVuZCBldmVudCB0byBlYyIsCisJCQlyZXQpOworCisJaWYgKGRldmljZV9tYXlfd2FrZXVwKGRldikpCisJCWVjX2Rldi0+d2FrZV9lbmFibGVkID0gIWVuYWJsZV9pcnFfd2FrZShlY19kZXYtPmlycSk7CisKKwlkaXNhYmxlX2lycShlY19kZXYtPmlycSk7CisJZWNfZGV2LT53YXNfd2FrZV9kZXZpY2UgPSBlY19kZXYtPndha2VfZW5hYmxlZDsKKwllY19kZXYtPnN1c3BlbmRlZCA9IHRydWU7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woY3Jvc19lY19zdXNwZW5kKTsKKworc3RhdGljIHZvaWQgY3Jvc19lY19yZXBvcnRfZXZlbnRzX2R1cmluZ19zdXNwZW5kKHN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2KQoreworCXdoaWxlIChlY19kZXYtPm1rYnBfZXZlbnRfc3VwcG9ydGVkICYmCisJICAgICAgIGNyb3NfZWNfZ2V0X25leHRfZXZlbnQoZWNfZGV2LCBOVUxMKSA+IDApCisJCWJsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oJmVjX2Rldi0+ZXZlbnRfbm90aWZpZXIsCisJCQkJCSAgICAgMSwgZWNfZGV2KTsKK30KKworaW50IGNyb3NfZWNfcmVzdW1lKHN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2KQoreworCWludCByZXQ7CisJdTggc2xlZXBfZXZlbnQ7CisKKwllY19kZXYtPnN1c3BlbmRlZCA9IGZhbHNlOworCWVuYWJsZV9pcnEoZWNfZGV2LT5pcnEpOworCisJc2xlZXBfZXZlbnQgPSAoIUlTX0VOQUJMRUQoQ09ORklHX0FDUEkpIHx8IHBtX3N1c3BlbmRfdmlhX2Zpcm13YXJlKCkpID8KKwkJICAgICAgSE9TVF9TTEVFUF9FVkVOVF9TM19SRVNVTUUgOgorCQkgICAgICBIT1NUX1NMRUVQX0VWRU5UX1MwSVhfUkVTVU1FOworCisJcmV0ID0gY3Jvc19lY19zbGVlcF9ldmVudChlY19kZXYsIHNsZWVwX2V2ZW50KTsKKwlpZiAocmV0IDwgMCkKKwkJZGV2X2RiZyhlY19kZXYtPmRldiwgIkVycm9yICVkIHNlbmRpbmcgcmVzdW1lIGV2ZW50IHRvIGVjIiwKKwkJCXJldCk7CisKKwlpZiAoZWNfZGV2LT53YWtlX2VuYWJsZWQpIHsKKwkJZGlzYWJsZV9pcnFfd2FrZShlY19kZXYtPmlycSk7CisJCWVjX2Rldi0+d2FrZV9lbmFibGVkID0gMDsKKwl9CisJLyoKKwkgKiBMZXQgdGhlIG1mZCBkZXZpY2VzIGtub3cgYWJvdXQgZXZlbnRzIHRoYXQgb2NjdXIgZHVyaW5nCisJICogc3VzcGVuZC4gVGhpcyB3YXkgdGhlIGNsaWVudHMga25vdyB3aGF0IHRvIGRvIHdpdGggdGhlbS4KKwkgKi8KKwljcm9zX2VjX3JlcG9ydF9ldmVudHNfZHVyaW5nX3N1c3BlbmQoZWNfZGV2KTsKKworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGNyb3NfZWNfcmVzdW1lKTsKKworI2VuZGlmCisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiQ2hyb21lT1MgRUMgY29yZSBkcml2ZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfY2hhcmRldi5jIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19jaGFyZGV2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRkZWQ0NAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfY2hhcmRldi5jCkBAIC0wLDAgKzEsNDE5IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIE1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyIGRyaXZlciBmb3IgQ2hyb21lT1MgRW1iZWRkZWQgQ29udHJvbGxlcgorICoKKyAqIENvcHlyaWdodCAyMDE0IEdvb2dsZSwgSW5jLgorICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQworICoKKyAqIFRoaXMgZmlsZSBpcyBhIHJld29yayBhbmQgcGFydCBvZiB0aGUgY29kZSBpcyBwb3J0ZWQgZnJvbQorICogZHJpdmVycy9tZmQvY3Jvc19lY19kZXYuYyB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkKKyAqIEJpbGwgUmljaGFyZHNvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbm90aWZpZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY2hhcmRldi5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19wcm90by5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisKKyNkZWZpbmUgRFJWX05BTUUJCSJjcm9zLWVjLWNoYXJkZXYiCisKKy8qIEFyYml0cmFyeSBib3VuZGVkIHNpemUgZm9yIHRoZSBldmVudCBxdWV1ZSAqLworI2RlZmluZSBDUk9TX01BWF9FVkVOVF9MRU4JUEFHRV9TSVpFCisKK3N0cnVjdCBjaGFyZGV2X2RhdGEgeworCXN0cnVjdCBjcm9zX2VjX2RldiAqZWNfZGV2OworCXN0cnVjdCBtaXNjZGV2aWNlIG1pc2M7Cit9OworCitzdHJ1Y3QgY2hhcmRldl9wcml2IHsKKwlzdHJ1Y3QgY3Jvc19lY19kZXYgKmVjX2RldjsKKwlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbm90aWZpZXI7CisJd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdF9ldmVudDsKKwl1bnNpZ25lZCBsb25nIGV2ZW50X21hc2s7CisJc3RydWN0IGxpc3RfaGVhZCBldmVudHM7CisJc2l6ZV90IGV2ZW50X2xlbjsKK307CisKK3N0cnVjdCBlY19ldmVudCB7CisJc3RydWN0IGxpc3RfaGVhZCBub2RlOworCXNpemVfdCBzaXplOworCXU4IGV2ZW50X3R5cGU7CisJdTggZGF0YVswXTsKK307CisKK3N0YXRpYyBpbnQgZWNfZ2V0X3ZlcnNpb24oc3RydWN0IGNyb3NfZWNfZGV2ICplYywgY2hhciAqc3RyLCBpbnQgbWF4bGVuKQoreworCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY3VycmVudF9pbWFnZV9uYW1lW10gPSB7CisJCSJ1bmtub3duIiwgInJlYWQtb25seSIsICJyZWFkLXdyaXRlIiwgImludmFsaWQiLAorCX07CisJc3RydWN0IGVjX3Jlc3BvbnNlX2dldF92ZXJzaW9uICpyZXNwOworCXN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgKm1zZzsKKwlpbnQgcmV0OworCisJbXNnID0ga3phbGxvYyhzaXplb2YoKm1zZykgKyBzaXplb2YoKnJlc3ApLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW1zZykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltc2ctPmNvbW1hbmQgPSBFQ19DTURfR0VUX1ZFUlNJT04gKyBlYy0+Y21kX29mZnNldDsKKwltc2ctPmluc2l6ZSA9IHNpemVvZigqcmVzcCk7CisKKwlyZXQgPSBjcm9zX2VjX2NtZF94ZmVyX3N0YXR1cyhlYy0+ZWNfZGV2LCBtc2cpOworCWlmIChyZXQgPCAwKSB7CisJCXNucHJpbnRmKHN0ciwgbWF4bGVuLAorCQkJICJVbmtub3duIEVDIHZlcnNpb24sIHJldHVybmVkIGVycm9yOiAlZFxuIiwKKwkJCSBtc2ctPnJlc3VsdCk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlyZXNwID0gKHN0cnVjdCBlY19yZXNwb25zZV9nZXRfdmVyc2lvbiAqKW1zZy0+ZGF0YTsKKwlpZiAocmVzcC0+Y3VycmVudF9pbWFnZSA+PSBBUlJBWV9TSVpFKGN1cnJlbnRfaW1hZ2VfbmFtZSkpCisJCXJlc3AtPmN1cnJlbnRfaW1hZ2UgPSAzOyAvKiBpbnZhbGlkICovCisKKwlzbnByaW50ZihzdHIsIG1heGxlbiwgIiVzXG4lc1xuJXNcbiVzXG4iLCBDUk9TX0VDX0RFVl9WRVJTSU9OLAorCQkgcmVzcC0+dmVyc2lvbl9zdHJpbmdfcm8sIHJlc3AtPnZlcnNpb25fc3RyaW5nX3J3LAorCQkgY3VycmVudF9pbWFnZV9uYW1lW3Jlc3AtPmN1cnJlbnRfaW1hZ2VdKTsKKworCXJldCA9IDA7CitleGl0OgorCWtmcmVlKG1zZyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBjcm9zX2VjX2NoYXJkZXZfbWticF9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAorCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgcXVldWVkX2R1cmluZ19zdXNwZW5kLAorCQkJCSAgICAgIHZvaWQgKl9ub3RpZnkpCit7CisJc3RydWN0IGNoYXJkZXZfcHJpdiAqcHJpdiA9IGNvbnRhaW5lcl9vZihuYiwgc3RydWN0IGNoYXJkZXZfcHJpdiwKKwkJCQkJCSBub3RpZmllcik7CisJc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYgPSBwcml2LT5lY19kZXYtPmVjX2RldjsKKwlzdHJ1Y3QgZWNfZXZlbnQgKmV2ZW50OworCXVuc2lnbmVkIGxvbmcgZXZlbnRfYml0ID0gMSA8PCBlY19kZXYtPmV2ZW50X2RhdGEuZXZlbnRfdHlwZTsKKwlpbnQgdG90YWxfc2l6ZSA9IHNpemVvZigqZXZlbnQpICsgZWNfZGV2LT5ldmVudF9zaXplOworCisJaWYgKCEoZXZlbnRfYml0ICYgcHJpdi0+ZXZlbnRfbWFzaykgfHwKKwkgICAgKHByaXYtPmV2ZW50X2xlbiArIHRvdGFsX3NpemUpID4gQ1JPU19NQVhfRVZFTlRfTEVOKQorCQlyZXR1cm4gTk9USUZZX0RPTkU7CisKKwlldmVudCA9IGt6YWxsb2ModG90YWxfc2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFldmVudCkKKwkJcmV0dXJuIE5PVElGWV9ET05FOworCisJZXZlbnQtPnNpemUgPSBlY19kZXYtPmV2ZW50X3NpemU7CisJZXZlbnQtPmV2ZW50X3R5cGUgPSBlY19kZXYtPmV2ZW50X2RhdGEuZXZlbnRfdHlwZTsKKwltZW1jcHkoZXZlbnQtPmRhdGEsICZlY19kZXYtPmV2ZW50X2RhdGEuZGF0YSwgZWNfZGV2LT5ldmVudF9zaXplKTsKKworCXNwaW5fbG9jaygmcHJpdi0+d2FpdF9ldmVudC5sb2NrKTsKKwlsaXN0X2FkZF90YWlsKCZldmVudC0+bm9kZSwgJnByaXYtPmV2ZW50cyk7CisJcHJpdi0+ZXZlbnRfbGVuICs9IHRvdGFsX3NpemU7CisJd2FrZV91cF9sb2NrZWQoJnByaXYtPndhaXRfZXZlbnQpOworCXNwaW5fdW5sb2NrKCZwcml2LT53YWl0X2V2ZW50LmxvY2spOworCisJcmV0dXJuIE5PVElGWV9PSzsKK30KKworc3RhdGljIHN0cnVjdCBlY19ldmVudCAqY3Jvc19lY19jaGFyZGV2X2ZldGNoX2V2ZW50KHN0cnVjdCBjaGFyZGV2X3ByaXYgKnByaXYsCisJCQkJCQkgICAgYm9vbCBmZXRjaCwgYm9vbCBibG9jaykKK3sKKwlzdHJ1Y3QgZWNfZXZlbnQgKmV2ZW50OworCWludCBlcnI7CisKKwlzcGluX2xvY2soJnByaXYtPndhaXRfZXZlbnQubG9jayk7CisJaWYgKCFibG9jayAmJiBsaXN0X2VtcHR5KCZwcml2LT5ldmVudHMpKSB7CisJCWV2ZW50ID0gRVJSX1BUUigtRVdPVUxEQkxPQ0spOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoIWZldGNoKSB7CisJCWV2ZW50ID0gTlVMTDsKKwkJZ290byBvdXQ7CisJfQorCisJZXJyID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX2xvY2tlZChwcml2LT53YWl0X2V2ZW50LAorCQkJCQkgICAgICAhbGlzdF9lbXB0eSgmcHJpdi0+ZXZlbnRzKSk7CisJaWYgKGVycikgeworCQlldmVudCA9IEVSUl9QVFIoZXJyKTsKKwkJZ290byBvdXQ7CisJfQorCisJZXZlbnQgPSBsaXN0X2ZpcnN0X2VudHJ5KCZwcml2LT5ldmVudHMsIHN0cnVjdCBlY19ldmVudCwgbm9kZSk7CisJbGlzdF9kZWwoJmV2ZW50LT5ub2RlKTsKKwlwcml2LT5ldmVudF9sZW4gLT0gc2l6ZW9mKCpldmVudCkgKyBldmVudC0+c2l6ZTsKKworb3V0OgorCXNwaW5fdW5sb2NrKCZwcml2LT53YWl0X2V2ZW50LmxvY2spOworCXJldHVybiBldmVudDsKK30KKworLyoKKyAqIERldmljZSBmaWxlIG9wcworICovCitzdGF0aWMgaW50IGNyb3NfZWNfY2hhcmRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCBtaXNjZGV2aWNlICptZGV2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBjcm9zX2VjX2RldiAqZWNfZGV2ID0gZGV2X2dldF9kcnZkYXRhKG1kZXYtPnBhcmVudCk7CisJc3RydWN0IGNoYXJkZXZfcHJpdiAqcHJpdjsKKwlpbnQgcmV0OworCisJcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXByaXYtPmVjX2RldiA9IGVjX2RldjsKKwlmaWxwLT5wcml2YXRlX2RhdGEgPSBwcml2OworCUlOSVRfTElTVF9IRUFEKCZwcml2LT5ldmVudHMpOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnByaXYtPndhaXRfZXZlbnQpOworCW5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOworCisJcHJpdi0+bm90aWZpZXIubm90aWZpZXJfY2FsbCA9IGNyb3NfZWNfY2hhcmRldl9ta2JwX2V2ZW50OworCXJldCA9IGJsb2NraW5nX25vdGlmaWVyX2NoYWluX3JlZ2lzdGVyKCZlY19kZXYtPmVjX2Rldi0+ZXZlbnRfbm90aWZpZXIsCisJCQkJCSAgICAgICAmcHJpdi0+bm90aWZpZXIpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihlY19kZXYtPmRldiwgImZhaWxlZCB0byByZWdpc3RlciBldmVudCBub3RpZmllclxuIik7CisJCWtmcmVlKHByaXYpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBfX3BvbGxfdCBjcm9zX2VjX2NoYXJkZXZfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdCkKK3sKKwlzdHJ1Y3QgY2hhcmRldl9wcml2ICpwcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCisJcG9sbF93YWl0KGZpbHAsICZwcml2LT53YWl0X2V2ZW50LCB3YWl0KTsKKworCWlmIChsaXN0X2VtcHR5KCZwcml2LT5ldmVudHMpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBFUE9MTElOIHwgRVBPTExSRE5PUk07Cit9CisKK3N0YXRpYyBzc2l6ZV90IGNyb3NfZWNfY2hhcmRldl9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmZmVyLAorCQkJCSAgICAgc2l6ZV90IGxlbmd0aCwgbG9mZl90ICpvZmZzZXQpCit7CisJY2hhciBtc2dbc2l6ZW9mKHN0cnVjdCBlY19yZXNwb25zZV9nZXRfdmVyc2lvbikgKworCQkgc2l6ZW9mKENST1NfRUNfREVWX1ZFUlNJT04pXTsKKwlzdHJ1Y3QgY2hhcmRldl9wcml2ICpwcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBjcm9zX2VjX2RldiAqZWNfZGV2ID0gcHJpdi0+ZWNfZGV2OworCXNpemVfdCBjb3VudDsKKwlpbnQgcmV0OworCisJaWYgKHByaXYtPmV2ZW50X21hc2spIHsgLyogcXVldWVkIE1LQlAgZXZlbnQgKi8KKwkJc3RydWN0IGVjX2V2ZW50ICpldmVudDsKKworCQlldmVudCA9IGNyb3NfZWNfY2hhcmRldl9mZXRjaF9ldmVudChwcml2LCBsZW5ndGggIT0gMCwKKwkJCQkJCSEoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spKTsKKwkJaWYgKElTX0VSUihldmVudCkpCisJCQlyZXR1cm4gUFRSX0VSUihldmVudCk7CisJCS8qCisJCSAqIGxlbmd0aCA9PSAwIGlzIHNwZWNpYWwgLSBubyBJTyBpcyBkb25lIGJ1dCB3ZSBjaGVjaworCQkgKiBmb3IgZXJyb3IgY29uZGl0aW9ucy4KKwkJICovCisJCWlmIChsZW5ndGggPT0gMCkKKwkJCXJldHVybiAwOworCisJCS8qIFRoZSBldmVudCBpcyAxIGJ5dGUgb2YgdHlwZSBwbHVzIHRoZSBwYXlsb2FkICovCisJCWNvdW50ID0gbWluKGxlbmd0aCwgZXZlbnQtPnNpemUgKyAxKTsKKwkJcmV0ID0gY29weV90b191c2VyKGJ1ZmZlciwgJmV2ZW50LT5ldmVudF90eXBlLCBjb3VudCk7CisJCWtmcmVlKGV2ZW50KTsKKwkJaWYgKHJldCkgLyogdGhlIGNvcHkgZmFpbGVkICovCisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJKm9mZnNldCA9IGNvdW50OworCQlyZXR1cm4gY291bnQ7CisJfQorCisJLyoKKwkgKiBMZWdhY3kgYmVoYXZpb3IgaWYgbm8gZXZlbnQgbWFzayBpcyBkZWZpbmVkCisJICovCisJaWYgKCpvZmZzZXQgIT0gMCkKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSBlY19nZXRfdmVyc2lvbihlY19kZXYsIG1zZywgc2l6ZW9mKG1zZykpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwljb3VudCA9IG1pbihsZW5ndGgsIHN0cmxlbihtc2cpKTsKKworCWlmIChjb3B5X3RvX3VzZXIoYnVmZmVyLCBtc2csIGNvdW50KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwkqb2Zmc2V0ID0gY291bnQ7CisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgaW50IGNyb3NfZWNfY2hhcmRldl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCBjaGFyZGV2X3ByaXYgKnByaXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGNyb3NfZWNfZGV2ICplY19kZXYgPSBwcml2LT5lY19kZXY7CisJc3RydWN0IGVjX2V2ZW50ICpldmVudCwgKmU7CisKKwlibG9ja2luZ19ub3RpZmllcl9jaGFpbl91bnJlZ2lzdGVyKCZlY19kZXYtPmVjX2Rldi0+ZXZlbnRfbm90aWZpZXIsCisJCQkJCSAgICZwcml2LT5ub3RpZmllcik7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZXZlbnQsIGUsICZwcml2LT5ldmVudHMsIG5vZGUpIHsKKwkJbGlzdF9kZWwoJmV2ZW50LT5ub2RlKTsKKwkJa2ZyZWUoZXZlbnQpOworCX0KKwlrZnJlZShwcml2KTsKKworCXJldHVybiAwOworfQorCisvKgorICogSW9jdGxzCisgKi8KK3N0YXRpYyBsb25nIGNyb3NfZWNfY2hhcmRldl9pb2N0bF94Y21kKHN0cnVjdCBjcm9zX2VjX2RldiAqZWMsIHZvaWQgX191c2VyICphcmcpCit7CisJc3RydWN0IGNyb3NfZWNfY29tbWFuZCAqc19jbWQ7CisJc3RydWN0IGNyb3NfZWNfY29tbWFuZCB1X2NtZDsKKwlsb25nIHJldDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmdV9jbWQsIGFyZywgc2l6ZW9mKHVfY21kKSkpCisJCXJldHVybiAtRUZBVUxUOworCisJaWYgKHVfY21kLm91dHNpemUgPiBFQ19NQVhfTVNHX0JZVEVTIHx8CisJICAgIHVfY21kLmluc2l6ZSA+IEVDX01BWF9NU0dfQllURVMpCisJCXJldHVybiAtRUlOVkFMOworCisJc19jbWQgPSBrbWFsbG9jKHNpemVvZigqc19jbWQpICsgbWF4KHVfY21kLm91dHNpemUsIHVfY21kLmluc2l6ZSksCisJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIXNfY21kKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChjb3B5X2Zyb21fdXNlcihzX2NtZCwgYXJnLCBzaXplb2YoKnNfY21kKSArIHVfY21kLm91dHNpemUpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlpZiAodV9jbWQub3V0c2l6ZSAhPSBzX2NtZC0+b3V0c2l6ZSB8fAorCSAgICB1X2NtZC5pbnNpemUgIT0gc19jbWQtPmluc2l6ZSkgeworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGV4aXQ7CisJfQorCisJc19jbWQtPmNvbW1hbmQgKz0gZWMtPmNtZF9vZmZzZXQ7CisJcmV0ID0gY3Jvc19lY19jbWRfeGZlcihlYy0+ZWNfZGV2LCBzX2NtZCk7CisJLyogT25seSBjb3B5IGRhdGEgdG8gdXNlcmxhbmQgaWYgZGF0YSB3YXMgcmVjZWl2ZWQuICovCisJaWYgKHJldCA8IDApCisJCWdvdG8gZXhpdDsKKworCWlmIChjb3B5X3RvX3VzZXIoYXJnLCBzX2NtZCwgc2l6ZW9mKCpzX2NtZCkgKyBzX2NtZC0+aW5zaXplKSkKKwkJcmV0ID0gLUVGQVVMVDsKK2V4aXQ6CisJa2ZyZWUoc19jbWQpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBsb25nIGNyb3NfZWNfY2hhcmRldl9pb2N0bF9yZWFkbWVtKHN0cnVjdCBjcm9zX2VjX2RldiAqZWMsCisJCQkJCSAgIHZvaWQgX191c2VyICphcmcpCit7CisJc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYgPSBlYy0+ZWNfZGV2OworCXN0cnVjdCBjcm9zX2VjX3JlYWRtZW0gc19tZW0gPSB7IH07CisJbG9uZyBudW07CisKKwkvKiBOb3QgZXZlcnkgcGxhdGZvcm0gc3VwcG9ydHMgZGlyZWN0IHJlYWRzICovCisJaWYgKCFlY19kZXYtPmNtZF9yZWFkbWVtKQorCQlyZXR1cm4gLUVOT1RUWTsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmc19tZW0sIGFyZywgc2l6ZW9mKHNfbWVtKSkpCisJCXJldHVybiAtRUZBVUxUOworCisJbnVtID0gZWNfZGV2LT5jbWRfcmVhZG1lbShlY19kZXYsIHNfbWVtLm9mZnNldCwgc19tZW0uYnl0ZXMsCisJCQkJICBzX21lbS5idWZmZXIpOworCWlmIChudW0gPD0gMCkKKwkJcmV0dXJuIG51bTsKKworCWlmIChjb3B5X3RvX3VzZXIoKHZvaWQgX191c2VyICopYXJnLCAmc19tZW0sIHNpemVvZihzX21lbSkpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXJldHVybiBudW07Cit9CisKK3N0YXRpYyBsb25nIGNyb3NfZWNfY2hhcmRldl9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKKwkJCQkgICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlzdHJ1Y3QgY2hhcmRldl9wcml2ICpwcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBjcm9zX2VjX2RldiAqZWMgPSBwcml2LT5lY19kZXY7CisKKwlpZiAoX0lPQ19UWVBFKGNtZCkgIT0gQ1JPU19FQ19ERVZfSU9DKQorCQlyZXR1cm4gLUVOT1RUWTsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBDUk9TX0VDX0RFVl9JT0NYQ01EOgorCQlyZXR1cm4gY3Jvc19lY19jaGFyZGV2X2lvY3RsX3hjbWQoZWMsICh2b2lkIF9fdXNlciAqKWFyZyk7CisJY2FzZSBDUk9TX0VDX0RFVl9JT0NSRE1FTToKKwkJcmV0dXJuIGNyb3NfZWNfY2hhcmRldl9pb2N0bF9yZWFkbWVtKGVjLCAodm9pZCBfX3VzZXIgKilhcmcpOworCWNhc2UgQ1JPU19FQ19ERVZfSU9DRVZFTlRNQVNLOgorCQlwcml2LT5ldmVudF9tYXNrID0gYXJnOworCQlyZXR1cm4gMDsKKwl9CisKKwlyZXR1cm4gLUVOT1RUWTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgY2hhcmRldl9mb3BzID0geworCS5vcGVuCQk9IGNyb3NfZWNfY2hhcmRldl9vcGVuLAorCS5wb2xsCQk9IGNyb3NfZWNfY2hhcmRldl9wb2xsLAorCS5yZWFkCQk9IGNyb3NfZWNfY2hhcmRldl9yZWFkLAorCS5yZWxlYXNlCT0gY3Jvc19lY19jaGFyZGV2X3JlbGVhc2UsCisJLnVubG9ja2VkX2lvY3RsCT0gY3Jvc19lY19jaGFyZGV2X2lvY3RsLAorI2lmZGVmIENPTkZJR19DT01QQVQKKwkuY29tcGF0X2lvY3RsCT0gY3Jvc19lY19jaGFyZGV2X2lvY3RsLAorI2VuZGlmCit9OworCitzdGF0aWMgaW50IGNyb3NfZWNfY2hhcmRldl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBjcm9zX2VjX2RldiAqZWNfZGV2ID0gZGV2X2dldF9kcnZkYXRhKHBkZXYtPmRldi5wYXJlbnQpOworCXN0cnVjdCBjcm9zX2VjX3BsYXRmb3JtICplY19wbGF0Zm9ybSA9IGRldl9nZXRfcGxhdGRhdGEoZWNfZGV2LT5kZXYpOworCXN0cnVjdCBjaGFyZGV2X2RhdGEgKmRhdGE7CisKKwkvKiBDcmVhdGUgYSBjaGFyIGRldmljZTogd2Ugd2FudCB0byBjcmVhdGUgaXQgYW5ldyAqLworCWRhdGEgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkYXRhKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRhdGEtPmVjX2RldiA9IGVjX2RldjsKKwlkYXRhLT5taXNjLm1pbm9yID0gTUlTQ19EWU5BTUlDX01JTk9SOworCWRhdGEtPm1pc2MuZm9wcyA9ICZjaGFyZGV2X2ZvcHM7CisJZGF0YS0+bWlzYy5uYW1lID0gZWNfcGxhdGZvcm0tPmVjX25hbWU7CisJZGF0YS0+bWlzYy5wYXJlbnQgPSBwZGV2LT5kZXYucGFyZW50OworCisJZGV2X3NldF9kcnZkYXRhKCZwZGV2LT5kZXYsIGRhdGEpOworCisJcmV0dXJuIG1pc2NfcmVnaXN0ZXIoJmRhdGEtPm1pc2MpOworfQorCitzdGF0aWMgaW50IGNyb3NfZWNfY2hhcmRldl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgY2hhcmRldl9kYXRhICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZwZGV2LT5kZXYpOworCisJbWlzY19kZXJlZ2lzdGVyKCZkYXRhLT5taXNjKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBjcm9zX2VjX2NoYXJkZXZfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gRFJWX05BTUUsCisJfSwKKwkucHJvYmUgPSBjcm9zX2VjX2NoYXJkZXZfcHJvYmUsCisJLnJlbW92ZSA9IGNyb3NfZWNfY2hhcmRldl9yZW1vdmUsCit9OworCittb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGNyb3NfZWNfY2hhcmRldl9kcml2ZXIpOworCitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOiIgRFJWX05BTUUpOworTU9EVUxFX0FVVEhPUigiRW5yaWMgQmFsbGV0Ym8gaSBTZXJyYSA8ZW5yaWMuYmFsbGV0Ym9AY29sbGFib3JhLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiQ2hyb21lT1MgRUMgTWlzY2VsbGFuZW91cyBDaGFyYWN0ZXIgRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX2RlYnVnZnMuYyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfZGVidWdmcy5jCmluZGV4IDhlYzFjYzIuLjZhZTQ4NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfZGVidWdmcy5jCkBAIC04LDkgKzgsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lY19jb21tYW5kcy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX2kyYy5jIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19pMmMuYwppbmRleCA2MWQ3NTM5Li45YmQ5N2JjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX2kyYy5jCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfaTJjLmMKQEAgLTksOCArOSw4IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19wcm90by5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIApAQCAtMzA3LDYgKzMwNywxMyBAQCBzdGF0aWMgaW50IGNyb3NfZWNfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgY3Jvc19lY19pMmNfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKworCXJldHVybiBjcm9zX2VjX3VucmVnaXN0ZXIoZWNfZGV2KTsKK30KKwogI2lmZGVmIENPTkZJR19QTV9TTEVFUAogc3RhdGljIGludCBjcm9zX2VjX2kyY19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKQEAgLTM1Nyw2ICszNjQsNyBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgY3Jvc19lY19kcml2ZXIgPSB7CiAJCS5wbQk9ICZjcm9zX2VjX2kyY19wbV9vcHMsCiAJfSwKIAkucHJvYmUJCT0gY3Jvc19lY19pMmNfcHJvYmUsCisJLnJlbW92ZQkJPSBjcm9zX2VjX2kyY19yZW1vdmUsCiAJLmlkX3RhYmxlCT0gY3Jvc19lY19pMmNfaWQsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX2lzaHRwLmMgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX2lzaHRwLmMKaW5kZXggNDMwNzMxYy4uMjVjYTJjODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfaXNodHAuYworKysgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX2lzaHRwLmMKQEAgLTgsMTEgKzgsMTAgQEAKIC8vIChJU0gtVFApLgogCiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY29yZS5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlbC1pc2gtY2xpZW50LWlmLmg+CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX2xpZ2h0YmFyLmMgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX2xpZ2h0YmFyLmMKaW5kZXggNjA5NTk4Yi4uYzBmMmVlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19saWdodGJhci5jCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfbGlnaHRiYXIuYwpAQCAtOSw4ICs5LDkgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjX2NvbW1hbmRzLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19scGMuYyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfbHBjLmMKaW5kZXggMmM0NGM3Zi4uN2QxMGQ5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19scGMuYworKysgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX2xwYy5jCkBAIC0xNiw5ICsxNiw5IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wcmludGsuaD4KICNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CkBAIC00MjEsNiArNDIxLDcgQEAgc3RhdGljIGludCBjcm9zX2VjX2xwY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiBzdGF0aWMgaW50IGNyb3NfZWNfbHBjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogeworCXN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IGFjcGlfZGV2aWNlICphZGV2OwogCiAJYWRldiA9IEFDUElfQ09NUEFOSU9OKCZwZGV2LT5kZXYpOwpAQCAtNDI4LDcgKzQyOSw3IEBAIHN0YXRpYyBpbnQgY3Jvc19lY19scGNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWFjcGlfcmVtb3ZlX25vdGlmeV9oYW5kbGVyKGFkZXYtPmhhbmRsZSwgQUNQSV9BTExfTk9USUZZLAogCQkJCQkgICBjcm9zX2VjX2xwY19hY3BpX25vdGlmeSk7CiAKLQlyZXR1cm4gMDsKKwlyZXR1cm4gY3Jvc19lY191bnJlZ2lzdGVyKGVjX2Rldik7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2VfaWQgY3Jvc19lY19scGNfYWNwaV9kZXZpY2VfaWRzW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3Byb3RvLmMgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3Byb3RvLmMKaW5kZXggM2QyMzI1MS4uZjY1OWY5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19wcm90by5jCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfcHJvdG8uYwpAQCAtMywxMCArMywxMSBAQAogLy8KIC8vIENvcHlyaWdodCAoQykgMjAxNSBHb29nbGUsIEluYwogCi0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19wcm90by5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfcnBtc2cuYyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfcnBtc2cuYwppbmRleCA1ZDNmYjJhLi4wYzM3MzhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3JwbXNnLmMKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19ycG1zZy5jCkBAIC02LDkgKzYsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lY19jb21tYW5kcy5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcnBtc2cuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CkBAIC00MSw2ICs0MSw3IEBAIHN0cnVjdCBjcm9zX2VjX3JwbXNnIHsKIAlzdHJ1Y3QgcnBtc2dfZGV2aWNlICpycGRldjsKIAlzdHJ1Y3QgY29tcGxldGlvbiB4ZmVyX2FjazsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaG9zdF9ldmVudF93b3JrOworCXN0cnVjdCBycG1zZ19lbmRwb2ludCAqZXB0OwogfTsKIAogLyoqCkBAIC03Miw3ICs3Myw2IEBAIHN0YXRpYyBpbnQgY3Jvc19lY19wa3RfeGZlcl9ycG1zZyhzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiwKIAkJCQkgIHN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgKmVjX21zZykKIHsKIAlzdHJ1Y3QgY3Jvc19lY19ycG1zZyAqZWNfcnBtc2cgPSBlY19kZXYtPnByaXY7Ci0Jc3RydWN0IHJwbXNnX2RldmljZSAqcnBkZXYgPSBlY19ycG1zZy0+cnBkZXY7CiAJc3RydWN0IGVjX2hvc3RfcmVzcG9uc2UgKnJlc3BvbnNlOwogCXVuc2lnbmVkIGxvbmcgdGltZW91dDsKIAlpbnQgbGVuOwpAQCAtODUsNyArODUsNyBAQCBzdGF0aWMgaW50IGNyb3NfZWNfcGt0X3hmZXJfcnBtc2coc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYsCiAJZGV2X2RiZyhlY19kZXYtPmRldiwgInByZXBhcmVkLCBsZW49JWRcbiIsIGxlbik7CiAKIAlyZWluaXRfY29tcGxldGlvbigmZWNfcnBtc2ctPnhmZXJfYWNrKTsKLQlyZXQgPSBycG1zZ19zZW5kKHJwZGV2LT5lcHQsIGVjX2Rldi0+ZG91dCwgbGVuKTsKKwlyZXQgPSBycG1zZ19zZW5kKGVjX3JwbXNnLT5lcHQsIGVjX2Rldi0+ZG91dCwgbGVuKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZWNfZGV2LT5kZXYsICJycG1zZyBzZW5kIGZhaWxlZFxuIik7CiAJCXJldHVybiByZXQ7CkBAIC0xOTYsMTEgKzE5NiwyNCBAQCBzdGF0aWMgaW50IGNyb3NfZWNfcnBtc2dfY2FsbGJhY2soc3RydWN0IHJwbXNnX2RldmljZSAqcnBkZXYsIHZvaWQgKmRhdGEsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgcnBtc2dfZW5kcG9pbnQgKgorY3Jvc19lY19ycG1zZ19jcmVhdGVfZXB0KHN0cnVjdCBycG1zZ19kZXZpY2UgKnJwZGV2KQoreworCXN0cnVjdCBycG1zZ19jaGFubmVsX2luZm8gY2hpbmZvID0ge307CisKKwlzdHJzY3B5KGNoaW5mby5uYW1lLCBycGRldi0+aWQubmFtZSwgUlBNU0dfTkFNRV9TSVpFKTsKKwljaGluZm8uc3JjID0gcnBkZXYtPnNyYzsKKwljaGluZm8uZHN0ID0gUlBNU0dfQUREUl9BTlk7CisKKwlyZXR1cm4gcnBtc2dfY3JlYXRlX2VwdChycGRldiwgY3Jvc19lY19ycG1zZ19jYWxsYmFjaywgTlVMTCwgY2hpbmZvKTsKK30KKwogc3RhdGljIGludCBjcm9zX2VjX3JwbXNnX3Byb2JlKHN0cnVjdCBycG1zZ19kZXZpY2UgKnJwZGV2KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZycGRldi0+ZGV2OwogCXN0cnVjdCBjcm9zX2VjX3JwbXNnICplY19ycG1zZzsKIAlzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldjsKKwlpbnQgcmV0OwogCiAJZWNfZGV2ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCplY19kZXYpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWVjX2RldikKQEAgLTIyNSw3ICsyMzgsMTggQEAgc3RhdGljIGludCBjcm9zX2VjX3JwbXNnX3Byb2JlKHN0cnVjdCBycG1zZ19kZXZpY2UgKnJwZGV2KQogCUlOSVRfV09SSygmZWNfcnBtc2ctPmhvc3RfZXZlbnRfd29yaywKIAkJICBjcm9zX2VjX3JwbXNnX2hvc3RfZXZlbnRfZnVuY3Rpb24pOwogCi0JcmV0dXJuIGNyb3NfZWNfcmVnaXN0ZXIoZWNfZGV2KTsKKwllY19ycG1zZy0+ZXB0ID0gY3Jvc19lY19ycG1zZ19jcmVhdGVfZXB0KHJwZGV2KTsKKwlpZiAoIWVjX3JwbXNnLT5lcHQpCisJCXJldHVybiAtRU5PTUVNOworCisJcmV0ID0gY3Jvc19lY19yZWdpc3RlcihlY19kZXYpOworCWlmIChyZXQgPCAwKSB7CisJCXJwbXNnX2Rlc3Ryb3lfZXB0KGVjX3JwbXNnLT5lcHQpOworCQljYW5jZWxfd29ya19zeW5jKCZlY19ycG1zZy0+aG9zdF9ldmVudF93b3JrKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgY3Jvc19lY19ycG1zZ19yZW1vdmUoc3RydWN0IHJwbXNnX2RldmljZSAqcnBkZXYpCkBAIC0yMzMsOSArMjU3LDMwIEBAIHN0YXRpYyB2b2lkIGNyb3NfZWNfcnBtc2dfcmVtb3ZlKHN0cnVjdCBycG1zZ19kZXZpY2UgKnJwZGV2KQogCXN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2ID0gZGV2X2dldF9kcnZkYXRhKCZycGRldi0+ZGV2KTsKIAlzdHJ1Y3QgY3Jvc19lY19ycG1zZyAqZWNfcnBtc2cgPSBlY19kZXYtPnByaXY7CiAKKwljcm9zX2VjX3VucmVnaXN0ZXIoZWNfZGV2KTsKKwlycG1zZ19kZXN0cm95X2VwdChlY19ycG1zZy0+ZXB0KTsKIAljYW5jZWxfd29ya19zeW5jKCZlY19ycG1zZy0+aG9zdF9ldmVudF93b3JrKTsKIH0KIAorI2lmZGVmIENPTkZJR19QTV9TTEVFUAorc3RhdGljIGludCBjcm9zX2VjX3JwbXNnX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlyZXR1cm4gY3Jvc19lY19zdXNwZW5kKGVjX2Rldik7Cit9CisKK3N0YXRpYyBpbnQgY3Jvc19lY19ycG1zZ19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlyZXR1cm4gY3Jvc19lY19yZXN1bWUoZWNfZGV2KTsKK30KKyNlbmRpZgorCitzdGF0aWMgU0lNUExFX0RFVl9QTV9PUFMoY3Jvc19lY19ycG1zZ19wbV9vcHMsIGNyb3NfZWNfcnBtc2dfc3VzcGVuZCwKKwkJCSBjcm9zX2VjX3JwbXNnX3Jlc3VtZSk7CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGNyb3NfZWNfcnBtc2dfb2ZfbWF0Y2hbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gImdvb2dsZSxjcm9zLWVjLXJwbXNnIiwgfSwKIAl7IH0KQEAgLTI0NiwxMCArMjkxLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgcnBtc2dfZHJpdmVyIGNyb3NfZWNfZHJpdmVyX3JwbXNnID0gewogCS5kcnYgPSB7CiAJCS5uYW1lICAgPSAiY3Jvcy1lYy1ycG1zZyIsCiAJCS5vZl9tYXRjaF90YWJsZSA9IGNyb3NfZWNfcnBtc2dfb2ZfbWF0Y2gsCisJCS5wbQk9ICZjcm9zX2VjX3JwbXNnX3BtX29wcywKIAl9LAogCS5wcm9iZQkJPSBjcm9zX2VjX3JwbXNnX3Byb2JlLAogCS5yZW1vdmUJCT0gY3Jvc19lY19ycG1zZ19yZW1vdmUsCi0JLmNhbGxiYWNrCT0gY3Jvc19lY19ycG1zZ19jYWxsYmFjaywKIH07CiAKIG1vZHVsZV9ycG1zZ19kcml2ZXIoY3Jvc19lY19kcml2ZXJfcnBtc2cpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19zcGkuYyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfc3BpLmMKaW5kZXggNzE0MzA2Yi4uYTgzMWJkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19zcGkuYworKysgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3NwaS5jCkBAIC02LDkgKzYsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lY19jb21tYW5kcy5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KQEAgLTc4NSw2ICs3ODUsMTMgQEAgc3RhdGljIGludCBjcm9zX2VjX3NwaV9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGNyb3NfZWNfc3BpX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2ID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7CisKKwlyZXR1cm4gY3Jvc19lY191bnJlZ2lzdGVyKGVjX2Rldik7Cit9CisKICNpZmRlZiBDT05GSUdfUE1fU0xFRVAKIHN0YXRpYyBpbnQgY3Jvc19lY19zcGlfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CkBAIC04MjMsNiArODMwLDcgQEAgc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIGNyb3NfZWNfZHJpdmVyX3NwaSA9IHsKIAkJLnBtCT0gJmNyb3NfZWNfc3BpX3BtX29wcywKIAl9LAogCS5wcm9iZQkJPSBjcm9zX2VjX3NwaV9wcm9iZSwKKwkucmVtb3ZlCQk9IGNyb3NfZWNfc3BpX3JlbW92ZSwKIAkuaWRfdGFibGUJPSBjcm9zX2VjX3NwaV9pZCwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfc3lzZnMuYyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfc3lzZnMuYwppbmRleCAzZWRiMjM3Li43NGQzNmI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3N5c2ZzLmMKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY19zeXNmcy5jCkBAIC05LDggKzksOSBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgva29iamVjdC5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wcmludGsuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3RyYWNlLmMgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3RyYWNlLmMKaW5kZXggMGE3NjQxMi4uNmY4MGZmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY190cmFjZS5jCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfdHJhY2UuYwpAQCAtNiw3ICs2LDcgQEAKICNkZWZpbmUgVFJBQ0VfU1lNQk9MKGEpIHthLCAjYX0KIAogLy8gR2VuZXJhdGUgdGhlIGxpc3QgdXNpbmcgdGhlIGZvbGxvd2luZyBzY3JpcHQ6Ci0vLyBzZWQgLW4gJ3MvXiNkZWZpbmUgXChFQ19DTURfW1s6YWxudW06XV9dKlwpXHMuKi9cdFRSQUNFX1NZTUJPTChcMSksIFxcL3AnIGluY2x1ZGUvbGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaAorLy8gc2VkIC1uICdzL14jZGVmaW5lIFwoRUNfQ01EX1tbOmFsbnVtOl1fXSpcKVxzLiovXHRUUkFDRV9TWU1CT0woXDEpLCBcXC9wJyBpbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oCiAjZGVmaW5lIEVDX0NNRFMgXAogCVRSQUNFX1NZTUJPTChFQ19DTURfUFJPVE9fVkVSU0lPTiksIFwKIAlUUkFDRV9TWU1CT0woRUNfQ01EX0hFTExPKSwgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY190cmFjZS5oIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY190cmFjZS5oCmluZGV4IDdhZTNiODkuLjBkZDRkZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfdHJhY2UuaAorKysgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3RyYWNlLmgKQEAgLTExLDggKzExLDEwIEBACiAjaWYgIWRlZmluZWQoX0NST1NfRUNfVFJBQ0VfSF8pIHx8IGRlZmluZWQoVFJBQ0VfSEVBREVSX01VTFRJX1JFQUQpCiAjZGVmaW5lIF9DUk9TX0VDX1RSQUNFX0hfCiAKKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19wcm90by5oPgogCiAjaW5jbHVkZSA8bGludXgvdHJhY2Vwb2ludC5oPgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3ZiYy5jIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc19lY192YmMuYwppbmRleCAyYWFlZmVkLi5mMTFhMTI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX2VjX3ZiYy5jCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfZWNfdmJjLmMKQEAgLTcsOCArNyw5IEBACiAjaW5jbHVkZSA8bGludXgvb2YuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjX2NvbW1hbmRzLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogCiAjZGVmaW5lIERSVl9OQU1FICJjcm9zLWVjLXZiYyIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfdXNicGRfbG9nZ2VyLmMgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS9jcm9zX3VzYnBkX2xvZ2dlci5jCmluZGV4IDdjN2IyNjcuLjI0MzBlOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGxhdGZvcm0vY2hyb21lL2Nyb3NfdXNicGRfbG9nZ2VyLmMKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvY3Jvc191c2JwZF9sb2dnZXIuYwpAQCAtNiwxMCArNiwxMSBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9rdGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L21hdGg2NC5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9tYXRoNjQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9ydGMuaD4KIApAQCAtMjA5LDYgKzIxMCw5IEBAIHN0YXRpYyBpbnQgY3Jvc191c2JwZF9sb2dnZXJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGQpCiAJLyogUmV0cmlldmUgUEQgZXZlbnQgbG9ncyBwZXJpb2RpY2FsbHkgKi8KIAlJTklUX0RFTEFZRURfV09SSygmbG9nZ2VyLT5sb2dfd29yaywgY3Jvc191c2JwZF9sb2dfY2hlY2spOwogCWxvZ2dlci0+bG9nX3dvcmtxdWV1ZSA9CWNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKCJjcm9zX3VzYnBkX2xvZyIpOworCWlmICghbG9nZ2VyLT5sb2dfd29ya3F1ZXVlKQorCQlyZXR1cm4gLUVOT01FTTsKKwogCXF1ZXVlX2RlbGF5ZWRfd29yayhsb2dnZXItPmxvZ193b3JrcXVldWUsICZsb2dnZXItPmxvZ193b3JrLAogCQkJICAgQ1JPU19VU0JQRF9MT0dfVVBEQVRFX0RFTEFZKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS9jaHJvbWUvd2lsY29fZWMvdGVsZW1ldHJ5LmMgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS93aWxjb19lYy90ZWxlbWV0cnkuYwppbmRleCA5NGNkYzE2Li5iOWQwM2MzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS93aWxjb19lYy90ZWxlbWV0cnkuYworKysgYi9kcml2ZXJzL3BsYXRmb3JtL2Nocm9tZS93aWxjb19lYy90ZWxlbWV0cnkuYwpAQCAtOSw3ICs5LDcgQEAKICAqIHRoZSBPUyBzZW5kcyBhIGNvbW1hbmQgdG8gdGhlIEVDIHZpYSBhIHdyaXRlKCkgdG8gYSBjaGFyIGRldmljZSwKICAqIGFuZCBjYW4gcmVhZCB0aGUgcmVzcG9uc2Ugd2l0aCBhIHJlYWQoKS4gVGhlIHdyaXRlKCkgcmVxdWVzdCBpcwogICogdmVyaWZpZWQgYnkgdGhlIGRyaXZlciB0byBlbnN1cmUgdGhhdCBpdCBpcyBwZXJmb3JtaW5nIG9ubHkgb25lCi0gKiBvZiB0aGUgd2hpdGVsaXN0ZWQgY29tbWFuZHMsIGFuZCB0aGF0IG5vIGV4dHJhbmVvdXMgZGF0YSBpcworICogb2YgdGhlIGFsbG93bGlzdGVkIGNvbW1hbmRzLCBhbmQgdGhhdCBubyBleHRyYW5lb3VzIGRhdGEgaXMKICAqIGJlaW5nIHRyYW5zbWl0dGVkIHRvIHRoZSBFQy4gVGhlIHJlc3BvbnNlIGlzIHBhc3NlZCBkaXJlY3RseQogICogYmFjayB0byB0aGUgcmVhZGVyIHdpdGggbm8gbW9kaWZpY2F0aW9uLgogICoKQEAgLTU5LDIxICs1OSwxMCBAQCBzdGF0aWMgREVGSU5FX0lEQSh0ZWxlbV9pZGEpOwogI2RlZmluZSBXSUxDT19FQ19URUxFTV9HRVRfVEVNUF9JTkZPCQkweDk1CiAjZGVmaW5lIFdJTENPX0VDX1RFTEVNX0dFVF9URU1QX1JFQUQJCTB4MkMKICNkZWZpbmUgV0lMQ09fRUNfVEVMRU1fR0VUX0JBVFRfRVhUX0lORk8JMHgwNworI2RlZmluZSBXSUxDT19FQ19URUxFTV9HRVRfQkFUVF9QUElEX0lORk8JMHg4QQogCiAjZGVmaW5lIFRFTEVNX0FSR1NfU0laRV9NQVgJMzAKIAotLyoqCi0gKiBzdHJ1Y3Qgd2lsY29fZWNfdGVsZW1fcmVxdWVzdCAtIFRlbGVtZXRyeSBjb21tYW5kIGFuZCBhcmd1bWVudHMgc2VudCB0byBFQy4KLSAqIEBjb21tYW5kOiBPbmUgb2YgV0lMQ09fRUNfVEVMRU1fR0VUXyogY29tbWFuZCBjb2Rlcy4KLSAqIEByZXNlcnZlZDogTXVzdCBiZSAwLgotICogQGFyZ3M6IFRoZSBmaXJzdCBOIGJ5dGVzIGFyZSBvbmUgb2YgdGVsZW1fYXJnc19nZXRfKiBzdHJ1Y3RzLCB0aGUgcmVzdCBpcyAwLgotICovCi1zdHJ1Y3Qgd2lsY29fZWNfdGVsZW1fcmVxdWVzdCB7Ci0JdTggY29tbWFuZDsKLQl1OCByZXNlcnZlZDsKLQl1OCBhcmdzW1RFTEVNX0FSR1NfU0laRV9NQVhdOwotfSBfX3BhY2tlZDsKLQogLyoKICAqIFRoZSBmb2xsb3dpbmcgdGVsZW1fYXJnc19nZXRfKiBzdHJ1Y3RzIGFyZSBlbWJlZGRlZCB3aXRoaW4gdGhlIHxhcmdzfCBmaWVsZAogICogb2Ygd2lsY29fZWNfdGVsZW1fcmVxdWVzdC4KQEAgLTEyMiw2ICsxMTEsMzIgQEAgc3RydWN0IHRlbGVtX2FyZ3NfZ2V0X2JhdHRfZXh0X2luZm8gewogCXU4IHZhcl9hcmdzWzVdOwogfSBfX3BhY2tlZDsKIAorc3RydWN0IHRlbGVtX2FyZ3NfZ2V0X2JhdHRfcHBpZF9pbmZvIHsKKwl1OCBhbHdheXMxOyAvKiBTaG91bGQgYWx3YXlzIGJlIDEgKi8KK30gX19wYWNrZWQ7CisKKy8qKgorICogc3RydWN0IHdpbGNvX2VjX3RlbGVtX3JlcXVlc3QgLSBUZWxlbWV0cnkgY29tbWFuZCBhbmQgYXJndW1lbnRzIHNlbnQgdG8gRUMuCisgKiBAY29tbWFuZDogT25lIG9mIFdJTENPX0VDX1RFTEVNX0dFVF8qIGNvbW1hbmQgY29kZXMuCisgKiBAcmVzZXJ2ZWQ6IE11c3QgYmUgMC4KKyAqIEBhcmdzOiBUaGUgZmlyc3QgTiBieXRlcyBhcmUgb25lIG9mIHRlbGVtX2FyZ3NfZ2V0Xyogc3RydWN0cywgdGhlIHJlc3QgaXMgMC4KKyAqLworc3RydWN0IHdpbGNvX2VjX3RlbGVtX3JlcXVlc3QgeworCXU4IGNvbW1hbmQ7CisJdTggcmVzZXJ2ZWQ7CisJdW5pb24geworCQl1OCBidWZbVEVMRU1fQVJHU19TSVpFX01BWF07CisJCXN0cnVjdCB0ZWxlbV9hcmdzX2dldF9sb2cJCWdldF9sb2c7CisJCXN0cnVjdCB0ZWxlbV9hcmdzX2dldF92ZXJzaW9uCQlnZXRfdmVyc2lvbjsKKwkJc3RydWN0IHRlbGVtX2FyZ3NfZ2V0X2Zhbl9pbmZvCQlnZXRfZmFuX2luZm87CisJCXN0cnVjdCB0ZWxlbV9hcmdzX2dldF9kaWFnX2luZm8JCWdldF9kaWFnX2luZm87CisJCXN0cnVjdCB0ZWxlbV9hcmdzX2dldF90ZW1wX2luZm8JCWdldF90ZW1wX2luZm87CisJCXN0cnVjdCB0ZWxlbV9hcmdzX2dldF90ZW1wX3JlYWQJCWdldF90ZW1wX3JlYWQ7CisJCXN0cnVjdCB0ZWxlbV9hcmdzX2dldF9iYXR0X2V4dF9pbmZvCWdldF9iYXR0X2V4dF9pbmZvOworCQlzdHJ1Y3QgdGVsZW1fYXJnc19nZXRfYmF0dF9wcGlkX2luZm8JZ2V0X2JhdHRfcHBpZF9pbmZvOworCX0gYXJnczsKK30gX19wYWNrZWQ7CisKIC8qKgogICogY2hlY2tfdGVsZW1fcmVxdWVzdCgpIC0gRW5zdXJlIHRoYXQgYSByZXF1ZXN0IGZyb20gdXNlcnNwYWNlIGlzIHZhbGlkLgogICogQHJxOiBSZXF1ZXN0IGJ1ZmZlciBjb3BpZWQgZnJvbSB1c2Vyc3BhY2UuCkBAIC0xMzMsNyArMTQ4LDcgQEAgc3RydWN0IHRlbGVtX2FyZ3NfZ2V0X2JhdHRfZXh0X2luZm8gewogICogV2UgZG8gbm90IHdhbnQgdG8gYWxsb3cgdXNlcnNwYWNlIHRvIHNlbmQgYXJiaXRyYXJ5IHRlbGVtZXRyeSBjb21tYW5kcyB0bwogICogdGhlIEVDLiBUaGVyZWZvcmUgd2UgY2hlY2sgdG8gZW5zdXJlIHRoYXQKICAqIDEuIFRoZSByZXF1ZXN0IGZvbGxvd3MgdGhlIGZvcm1hdCBvZiBzdHJ1Y3Qgd2lsY29fZWNfdGVsZW1fcmVxdWVzdC4KLSAqIDIuIFRoZSBzdXBwbGllZCBjb21tYW5kIGNvZGUgaXMgb25lIG9mIHRoZSB3aGl0ZWxpc3RlZCBjb21tYW5kcy4KKyAqIDIuIFRoZSBzdXBwbGllZCBjb21tYW5kIGNvZGUgaXMgb25lIG9mIHRoZSBhbGxvd2xpc3RlZCBjb21tYW5kcy4KICAqIDMuIFRoZSByZXF1ZXN0IG9ubHkgY29udGFpbnMgdGhlIG5lY2Vzc2FyeSBkYXRhIGZvciB0aGUgaGVhZGVyIGFuZCBhcmd1bWVudHMuCiAgKi8KIHN0YXRpYyBpbnQgY2hlY2tfdGVsZW1fcmVxdWVzdChzdHJ1Y3Qgd2lsY29fZWNfdGVsZW1fcmVxdWVzdCAqcnEsCkBAIC0xNDYsMjUgKzE2MSwzMSBAQCBzdGF0aWMgaW50IGNoZWNrX3RlbGVtX3JlcXVlc3Qoc3RydWN0IHdpbGNvX2VjX3RlbGVtX3JlcXVlc3QgKnJxLAogCiAJc3dpdGNoIChycS0+Y29tbWFuZCkgewogCWNhc2UgV0lMQ09fRUNfVEVMRU1fR0VUX0xPRzoKLQkJbWF4X3NpemUgKz0gc2l6ZW9mKHN0cnVjdCB0ZWxlbV9hcmdzX2dldF9sb2cpOworCQltYXhfc2l6ZSArPSBzaXplb2YocnEtPmFyZ3MuZ2V0X2xvZyk7CiAJCWJyZWFrOwogCWNhc2UgV0lMQ09fRUNfVEVMRU1fR0VUX1ZFUlNJT046Ci0JCW1heF9zaXplICs9IHNpemVvZihzdHJ1Y3QgdGVsZW1fYXJnc19nZXRfdmVyc2lvbik7CisJCW1heF9zaXplICs9IHNpemVvZihycS0+YXJncy5nZXRfdmVyc2lvbik7CiAJCWJyZWFrOwogCWNhc2UgV0lMQ09fRUNfVEVMRU1fR0VUX0ZBTl9JTkZPOgotCQltYXhfc2l6ZSArPSBzaXplb2Yoc3RydWN0IHRlbGVtX2FyZ3NfZ2V0X2Zhbl9pbmZvKTsKKwkJbWF4X3NpemUgKz0gc2l6ZW9mKHJxLT5hcmdzLmdldF9mYW5faW5mbyk7CiAJCWJyZWFrOwogCWNhc2UgV0lMQ09fRUNfVEVMRU1fR0VUX0RJQUdfSU5GTzoKLQkJbWF4X3NpemUgKz0gc2l6ZW9mKHN0cnVjdCB0ZWxlbV9hcmdzX2dldF9kaWFnX2luZm8pOworCQltYXhfc2l6ZSArPSBzaXplb2YocnEtPmFyZ3MuZ2V0X2RpYWdfaW5mbyk7CiAJCWJyZWFrOwogCWNhc2UgV0lMQ09fRUNfVEVMRU1fR0VUX1RFTVBfSU5GTzoKLQkJbWF4X3NpemUgKz0gc2l6ZW9mKHN0cnVjdCB0ZWxlbV9hcmdzX2dldF90ZW1wX2luZm8pOworCQltYXhfc2l6ZSArPSBzaXplb2YocnEtPmFyZ3MuZ2V0X3RlbXBfaW5mbyk7CiAJCWJyZWFrOwogCWNhc2UgV0lMQ09fRUNfVEVMRU1fR0VUX1RFTVBfUkVBRDoKLQkJbWF4X3NpemUgKz0gc2l6ZW9mKHN0cnVjdCB0ZWxlbV9hcmdzX2dldF90ZW1wX3JlYWQpOworCQltYXhfc2l6ZSArPSBzaXplb2YocnEtPmFyZ3MuZ2V0X3RlbXBfcmVhZCk7CiAJCWJyZWFrOwogCWNhc2UgV0lMQ09fRUNfVEVMRU1fR0VUX0JBVFRfRVhUX0lORk86Ci0JCW1heF9zaXplICs9IHNpemVvZihzdHJ1Y3QgdGVsZW1fYXJnc19nZXRfYmF0dF9leHRfaW5mbyk7CisJCW1heF9zaXplICs9IHNpemVvZihycS0+YXJncy5nZXRfYmF0dF9leHRfaW5mbyk7CisJCWJyZWFrOworCWNhc2UgV0lMQ09fRUNfVEVMRU1fR0VUX0JBVFRfUFBJRF9JTkZPOgorCQlpZiAocnEtPmFyZ3MuZ2V0X2JhdHRfcHBpZF9pbmZvLmFsd2F5czEgIT0gMSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCW1heF9zaXplICs9IHNpemVvZihycS0+YXJncy5nZXRfYmF0dF9wcGlkX2luZm8pOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTI1MCw2ICsyNzEsNyBAQCBzdGF0aWMgc3NpemVfdCB0ZWxlbV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAogCWlmIChjb3VudCA+IHNpemVvZihzZXNzX2RhdGEtPnJlcXVlc3QpKQogCQlyZXR1cm4gLUVNU0dTSVpFOworCW1lbXNldCgmc2Vzc19kYXRhLT5yZXF1ZXN0LCAwLCBzaXplb2Yoc2Vzc19kYXRhLT5yZXF1ZXN0KSk7CiAJaWYgKGNvcHlfZnJvbV91c2VyKCZzZXNzX2RhdGEtPnJlcXVlc3QsIGJ1ZiwgY291bnQpKQogCQlyZXR1cm4gLUVGQVVMVDsKIAlyZXQgPSBjaGVja190ZWxlbV9yZXF1ZXN0KCZzZXNzX2RhdGEtPnJlcXVlc3QsIGNvdW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L0tjb25maWcgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9LY29uZmlnCmluZGV4IDFiNjdiYjUuLmFlMjFkMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L0tjb25maWcKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvS2NvbmZpZwpAQCAtNjc0LDYgKzY3NCw3IEBACiBjb25maWcgQVNVU19XTUkKIAl0cmlzdGF0ZSAiQVNVUyBXTUkgRHJpdmVyIgogCWRlcGVuZHMgb24gQUNQSV9XTUkKKwlkZXBlbmRzIG9uIEFDUElfQkFUVEVSWQogCWRlcGVuZHMgb24gSU5QVVQKIAlkZXBlbmRzIG9uIEhXTU9OCiAJZGVwZW5kcyBvbiBCQUNLTElHSFRfQ0xBU1NfREVWSUNFCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9pMmMtbXVsdGktaW5zdGFudGlhdGUuYyBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L2kyYy1tdWx0aS1pbnN0YW50aWF0ZS5jCmluZGV4IDYxZmUzNDEuLmVhNjhmNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L2kyYy1tdWx0aS1pbnN0YW50aWF0ZS5jCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L2kyYy1tdWx0aS1pbnN0YW50aWF0ZS5jCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyBpbnQgaTJjX211bHRpX2luc3RfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlmb3IgKGkgPSAwOyBpIDwgbXVsdGktPm51bV9jbGllbnRzICYmIGluc3RfZGF0YVtpXS50eXBlOyBpKyspIHsKIAkJbWVtc2V0KCZib2FyZF9pbmZvLCAwLCBzaXplb2YoYm9hcmRfaW5mbykpOwogCQlzdHJsY3B5KGJvYXJkX2luZm8udHlwZSwgaW5zdF9kYXRhW2ldLnR5cGUsIEkyQ19OQU1FX1NJWkUpOwotCQlzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksICIlcy0lcy4lZCIsIG1hdGNoLT5pZCwKKwkJc25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCAiJXMtJXMuJWQiLCBkZXZfbmFtZShkZXYpLAogCQkJIGluc3RfZGF0YVtpXS50eXBlLCBpKTsKIAkJYm9hcmRfaW5mby5kZXZfbmFtZSA9IG5hbWU7CiAJCXN3aXRjaCAoaW5zdF9kYXRhW2ldLmZsYWdzICYgSVJRX1JFU09VUkNFX1RZUEUpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L3BtY19hdG9tLmMgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9wbWNfYXRvbS5jCmluZGV4IDlhY2E1ZTcuLjA3ZDFiOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L3BtY19hdG9tLmMKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvcG1jX2F0b20uYwpAQCAtNDIyLDYgKzQyMiwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgY3JpdGNsa19zeXN0ZW1zW10gPSB7CiAJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfVkVSU0lPTiwgIjZFUzc2NDctOEIiKSwKIAkJfSwKIAl9LAorCXsKKwkJLmlkZW50ID0gIlNJTUFUSUMgSVBDMjc3RSIsCisJCS5tYXRjaGVzID0geworCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiU0lFTUVOUyBBRyIpLAorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX1ZFUlNJT04sICI2QVY3ODgyLTAiKSwKKwkJfSwKKwl9LAogCXsgLypzZW50aW5lbCovIH0KIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L3N1cmZhY2Vwcm8zX2J1dHRvbi5jIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvc3VyZmFjZXBybzNfYnV0dG9uLmMKaW5kZXggNDdjNmQwMC4uZWM1MTUyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvc3VyZmFjZXBybzNfYnV0dG9uLmMKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvc3VyZmFjZXBybzNfYnV0dG9uLmMKQEAgLTIwLDYgKzIwLDEyIEBACiAjZGVmaW5lIFNVUkZBQ0VfQlVUVE9OX09CSl9OQU1FCQkiVkdCSSIKICNkZWZpbmUgU1VSRkFDRV9CVVRUT05fREVWSUNFX05BTUUJIlN1cmZhY2UgUHJvIDMvNCBCdXR0b25zIgogCisjZGVmaW5lIE1TSFcwMDQwX0RTTV9SRVZJU0lPTgkJMHgwMQorI2RlZmluZSBNU0hXMDA0MF9EU01fR0VUX09NUFIJCTB4MDIJLy8gZ2V0IE9FTSBQbGF0Zm9ybSBSZXZpc2lvbgorc3RhdGljIGNvbnN0IGd1aWRfdCBNU0hXMDA0MF9EU01fVVVJRCA9CisJR1VJRF9JTklUKDB4NmZkMDVjNjksIDB4Y2RlMywgMHg0OWY0LCAweDk1LCAweGVkLCAweGFiLCAweDE2LCAweDY1LAorCQkgIDB4NDksIDB4ODAsIDB4MzUpOworCiAjZGVmaW5lIFNVUkZBQ0VfQlVUVE9OX05PVElGWV9UQUJMRVRfTU9ERQkweGM4CiAKICNkZWZpbmUgU1VSRkFDRV9CVVRUT05fTk9USUZZX1BSRVNTX1BPV0VSCTB4YzYKQEAgLTE0Miw2ICsxNDgsNDQgQEAgc3RhdGljIGludCBzdXJmYWNlX2J1dHRvbl9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogfQogI2VuZGlmCiAKKy8qCisgKiBTdXJmYWNlIFBybyA0IGFuZCBTdXJmYWNlIEJvb2sgMiAvIFN1cmZhY2UgUHJvIDIwMTcgdXNlIHRoZSBzYW1lIGRldmljZQorICogSUQgKE1TSFcwMDQwKSBmb3IgdGhlIHBvd2VyL3ZvbHVtZSBidXR0b25zLiBNYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQKKyAqIGRldmljZSBieSBjaGVja2luZyBmb3IgdGhlIF9EU00gbWV0aG9kIGFuZCBPRU0gUGxhdGZvcm0gUmV2aXNpb24uCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBkcml2ZXIgc2hvdWxkIGJpbmQgdG8gdGhpcyBkZXZpY2UsIGkuZS4gdGhlIGRldmljZSBpcworICogZWl0aGVyIE1TV0gwMDI4IChQcm8gMykgb3IgTVNIVzAwNDAgb24gYSBQcm8gNCBvciBCb29rIDEuCisgKi8KK3N0YXRpYyBib29sIHN1cmZhY2VfYnV0dG9uX2NoZWNrX01TSFcwMDQwKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2KQoreworCWFjcGlfaGFuZGxlIGhhbmRsZSA9IGRldi0+aGFuZGxlOworCXVuaW9uIGFjcGlfb2JqZWN0ICpyZXN1bHQ7CisJdTY0IG9lbV9wbGF0Zm9ybV9yZXYgPSAwOwkvLyB2YWxpZCByZXZpc2lvbnMgYXJlIG5vbnplcm8KKworCS8vIGdldCBPRU0gcGxhdGZvcm0gcmV2aXNpb24KKwlyZXN1bHQgPSBhY3BpX2V2YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsICZNU0hXMDA0MF9EU01fVVVJRCwKKwkJCQkJIE1TSFcwMDQwX0RTTV9SRVZJU0lPTiwKKwkJCQkJIE1TSFcwMDQwX0RTTV9HRVRfT01QUiwKKwkJCQkJIE5VTEwsIEFDUElfVFlQRV9JTlRFR0VSKTsKKworCS8qCisJICogSWYgZXZhbHVhdGluZyB0aGUgX0RTTSBmYWlscywgdGhlIG1ldGhvZCBpcyBub3QgcHJlc2VudC4gVGhpcyBtZWFucworCSAqIHRoYXQgd2UgaGF2ZSBlaXRoZXIgTVNIVzAwMjggb3IgTVNIVzAwNDAgb24gUHJvIDQgb3IgQm9vayAxLCBzbyB3ZQorCSAqIHNob3VsZCB1c2UgdGhpcyBkcml2ZXIuIFdlIHVzZSByZXZpc2lvbiAwIGluZGljYXRpbmcgaXQgaXMKKwkgKiB1bmF2YWlsYWJsZS4KKwkgKi8KKworCWlmIChyZXN1bHQpIHsKKwkJb2VtX3BsYXRmb3JtX3JldiA9IHJlc3VsdC0+aW50ZWdlci52YWx1ZTsKKwkJQUNQSV9GUkVFKHJlc3VsdCk7CisJfQorCisJZGV2X2RiZygmZGV2LT5kZXYsICJPRU0gUGxhdGZvcm0gUmV2aXNpb24gJWxsdVxuIiwgb2VtX3BsYXRmb3JtX3Jldik7CisKKwlyZXR1cm4gb2VtX3BsYXRmb3JtX3JldiA9PSAwOworfQorCisKIHN0YXRpYyBpbnQgc3VyZmFjZV9idXR0b25fYWRkKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlKQogewogCXN0cnVjdCBzdXJmYWNlX2J1dHRvbiAqYnV0dG9uOwpAQCAtMTU0LDYgKzE5OCw5IEBAIHN0YXRpYyBpbnQgc3VyZmFjZV9idXR0b25fYWRkKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlKQogCSAgICBzdHJsZW4oU1VSRkFDRV9CVVRUT05fT0JKX05BTUUpKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKKwlpZiAoIXN1cmZhY2VfYnV0dG9uX2NoZWNrX01TSFcwMDQwKGRldmljZSkpCisJCXJldHVybiAtRU5PREVWOworCiAJYnV0dG9uID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHN1cmZhY2VfYnV0dG9uKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFidXR0b24pCiAJCXJldHVybiAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wb3dlci9yZXNldC9ncGlvLXJlc3RhcnQuYyBiL2RyaXZlcnMvcG93ZXIvcmVzZXQvZ3Bpby1yZXN0YXJ0LmMKaW5kZXggMjg4MGNkNS4uMzA4Y2E5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dlci9yZXNldC9ncGlvLXJlc3RhcnQuYworKysgYi9kcml2ZXJzL3Bvd2VyL3Jlc2V0L2dwaW8tcmVzdGFydC5jCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBpbnQgZ3Bpb19yZXN0YXJ0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZ3Bpb19yZXN0YXJ0LT5yZXNldF9ncGlvID0gZGV2bV9ncGlvZF9nZXQoJnBkZXYtPmRldiwgTlVMTCwKIAkJCW9wZW5fc291cmNlID8gR1BJT0RfSU4gOiBHUElPRF9PVVRfTE9XKTsKIAlpZiAoSVNfRVJSKGdwaW9fcmVzdGFydC0+cmVzZXRfZ3BpbykpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ291bGQgbmV0IGdldCByZXNldCBHUElPXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ291bGQgbm90IGdldCByZXNldCBHUElPXG4iKTsKIAkJcmV0dXJuIFBUUl9FUlIoZ3Bpb19yZXN0YXJ0LT5yZXNldF9ncGlvKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvcmVzZXQvcmVib290LW1vZGUuYyBiL2RyaXZlcnMvcG93ZXIvcmVzZXQvcmVib290LW1vZGUuYwppbmRleCAwNmZmMDM1Li5iNDA3NmIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3Jlc2V0L3JlYm9vdC1tb2RlLmMKKysrIGIvZHJpdmVycy9wb3dlci9yZXNldC9yZWJvb3QtbW9kZS5jCkBAIC0xOTAsNiArMTkwLDYgQEAgdm9pZCBkZXZtX3JlYm9vdF9tb2RlX3VucmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LAogfQogRVhQT1JUX1NZTUJPTF9HUEwoZGV2bV9yZWJvb3RfbW9kZV91bnJlZ2lzdGVyKTsKIAotTU9EVUxFX0FVVEhPUigiQW5keSBZYW4gPGFuZHkueWFuQHJvY2stY2hpcHMuY29tIik7CitNT0RVTEVfQVVUSE9SKCJBbmR5IFlhbiA8YW5keS55YW5Acm9jay1jaGlwcy5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlN5c3RlbSByZWJvb3QgbW9kZSBjb3JlIGxpYnJhcnkiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L0tjb25maWcgYi9kcml2ZXJzL3Bvd2VyL3N1cHBseS9LY29uZmlnCmluZGV4IDVkOTFiNTE2Li5jODRhN2IxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9LY29uZmlnCisrKyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L0tjb25maWcKQEAgLTQxNywxNyArNDE3LDYgQEAKIAloZWxwCiAJIFNheSBZIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgTlhQIFBDRjUwNjMzIE1haW4gQmF0dGVyeSBDaGFyZ2VyLgogCi1jb25maWcgQkFUVEVSWV9KWjQ3NDAKLQl0cmlzdGF0ZSAiSW5nZW5pYyBKWjQ3NDAgYmF0dGVyeSIKLQlkZXBlbmRzIG9uIE1BQ0hfSlo0NzQwCi0JZGVwZW5kcyBvbiBNRkRfSlo0NzQwX0FEQwotCWhlbHAKLQkgIFNheSBZIHRvIGVuYWJsZSBzdXBwb3J0IGZvciB0aGUgYmF0dGVyeSBvbiBJbmdlbmljIEpaNDc0MCBiYXNlZAotCSAgYm9hcmRzLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYmUgYnVpbGQgYXMgYSBtb2R1bGUuIElmIHNvLCB0aGUgbW9kdWxlIHdpbGwgYmUKLQkgIGNhbGxlZCBqejQ3NDAtYmF0dGVyeS4KLQogY29uZmlnIEJBVFRFUllfUlg1MQogCXRyaXN0YXRlICJOb2tpYSBSWC01MSAoTjkwMCkgYmF0dGVyeSBkcml2ZXIiCiAJZGVwZW5kcyBvbiBUV0w0MDMwX01BREMKQEAgLTY3MCw3ICs2NTksNyBAQAogCiBjb25maWcgQ0hBUkdFUl9DUk9TX1VTQlBECiAJdHJpc3RhdGUgIkNocm9tZU9TIEVDIGJhc2VkIFVTQlBEIGNoYXJnZXIiCi0JZGVwZW5kcyBvbiBNRkRfQ1JPU19FQworCWRlcGVuZHMgb24gQ1JPU19FQwogCWRlZmF1bHQgbgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIENocm9tZU9TIEVDIGJhc2VkIFVTQlBEIGNoYXJnZXIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L01ha2VmaWxlIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvTWFrZWZpbGUKaW5kZXggOTZjMmI3NC4uNmM3ZGE5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dlci9zdXBwbHkvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvTWFrZWZpbGUKQEAgLTU4LDcgKzU4LDYgQEAKIG9iai0kKENPTkZJR19CQVRURVJZX1RXTDQwMzBfTUFEQykJKz0gdHdsNDAzMF9tYWRjX2JhdHRlcnkubwogb2JqLSQoQ09ORklHX0NIQVJHRVJfODhQTTg2MFgpCSs9IDg4cG04NjB4X2NoYXJnZXIubwogb2JqLSQoQ09ORklHX0NIQVJHRVJfUENGNTA2MzMpCSs9IHBjZjUwNjMzLWNoYXJnZXIubwotb2JqLSQoQ09ORklHX0JBVFRFUllfSlo0NzQwKQkrPSBqejQ3NDAtYmF0dGVyeS5vCiBvYmotJChDT05GSUdfQkFUVEVSWV9SWDUxKQkrPSByeDUxX2JhdHRlcnkubwogb2JqLSQoQ09ORklHX0FCODUwMF9CTSkJCSs9IGFiODUwMF9ibWRhdGEubyBhYjg1MDBfY2hhcmdlci5vIGFiODUwMF9mZy5vIGFiODUwMF9idGVtcC5vIGFieDUwMF9jaGFyZ2FsZy5vIHBtMjMwMV9jaGFyZ2VyLm8KIG9iai0kKENPTkZJR19DSEFSR0VSX0NQQ0FQKQkrPSBjcGNhcC1jaGFyZ2VyLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L2FiODUwMF9jaGFyZ2VyLmMgYi9kcml2ZXJzL3Bvd2VyL3N1cHBseS9hYjg1MDBfY2hhcmdlci5jCmluZGV4IDg2ZDg4YWUuLmU1MWQwZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L2FiODUwMF9jaGFyZ2VyLmMKKysrIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvYWI4NTAwX2NoYXJnZXIuYwpAQCAtNzQyLDcgKzc0Miw3IEBAIHN0YXRpYyBpbnQgYWI4NTAwX2NoYXJnZXJfbWF4X3VzYl9jdXJyKHN0cnVjdCBhYjg1MDBfY2hhcmdlciAqZGksCiAJCQkJCQlVU0JfQ0hfSVBfQ1VSX0xWTF8xUDU7CiAJCQlicmVhazsKIAkJfQotCQkvKiBFbHNlLCBmYWxsIHRocm91Z2ggKi8KKwkJLyogZWxzZSwgZmFsbCB0aHJvdWdoICovCiAJY2FzZSBVU0JfU1RBVF9ITV9JREdORDoKIAkJZGV2X2VycihkaS0+ZGV2LCAiVVNCIFR5cGUgLSBDaGFyZ2luZyBub3QgYWxsb3dlZFxuIik7CiAJCWRpLT5tYXhfdXNiX2luX2N1cnIudXNiX3R5cGVfbWF4ID0gVVNCX0NIX0lQX0NVUl9MVkxfMFAwNTsKQEAgLTMwMTEsNyArMzAxMSw2IEBAIHN0YXRpYyBpbnQgYWI4NTAwX2NoYXJnZXJfdXNiX2dldF9wcm9wZXJ0eShzdHJ1Y3QgcG93ZXJfc3VwcGx5ICpwc3ksCiBzdGF0aWMgaW50IGFiODUwMF9jaGFyZ2VyX2luaXRfaHdfcmVnaXN0ZXJzKHN0cnVjdCBhYjg1MDBfY2hhcmdlciAqZGkpCiB7CiAJaW50IHJldCA9IDA7Ci0JdTggYnVwX3ZjaF9yYW5nZSA9IDAsIHZidXAzM192cnRjbiA9IDA7CiAKIAkvKiBTZXR1cCBtYXhpbXVtIGNoYXJnZXIgY3VycmVudCBhbmQgdm9sdGFnZSBmb3IgQUJCIGN1dDIuMCAqLwogCWlmICghaXNfYWI4NTAwXzFwMV9vcl9lYXJsaWVyKGRpLT5wYXJlbnQpKSB7CkBAIC0zMTEyLDEyICszMTExLDYgQEAgc3RhdGljIGludCBhYjg1MDBfY2hhcmdlcl9pbml0X2h3X3JlZ2lzdGVycyhzdHJ1Y3QgYWI4NTAwX2NoYXJnZXIgKmRpKQogCQlnb3RvIG91dDsKIAl9CiAKLQkvKiBCYWNrdXAgYmF0dGVyeSB2b2x0YWdlIGFuZCBjdXJyZW50ICovCi0JaWYgKGRpLT5ibS0+Ymt1cF9iYXRfdiA+IEJVUF9WQ0hfU0VMXzNQMVYpCi0JCWJ1cF92Y2hfcmFuZ2UgPSBCVVBfVkNIX1JBTkdFOwotCWlmIChkaS0+Ym0tPmJrdXBfYmF0X3YgPT0gQlVQX1ZDSF9TRUxfM1AzVikKLQkJdmJ1cDMzX3ZydGNuID0gVkJVUDMzX1ZSVENOOwotCiAJcmV0ID0gYWJ4NTAwX3NldF9yZWdpc3Rlcl9pbnRlcnJ1cHRpYmxlKGRpLT5kZXYsCiAJCUFCODUwMF9SVEMsCiAJCUFCODUwMF9SVENfQkFDS1VQX0NIR19SRUcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9heHAyODhfZnVlbF9nYXVnZS5jIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvYXhwMjg4X2Z1ZWxfZ2F1Z2UuYwppbmRleCA0NDE2OWRhLi5lMWJjNGU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9heHAyODhfZnVlbF9nYXVnZS5jCisrKyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L2F4cDI4OF9mdWVsX2dhdWdlLmMKQEAgLTY3NCw2ICs2NzQsNyBAQCBzdGF0aWMgdm9pZCBmdWVsX2dhdWdlX2luaXRfaXJxKHN0cnVjdCBheHAyODhfZmdfaW5mbyAqaW5mbykKIC8qCiAgKiBTb21lIGRldmljZXMgaGF2ZSBubyBiYXR0ZXJ5IChIRE1JIHN0aWNrcykgYW5kIHRoZSBheHAyODggYmF0dGVyeSdzCiAgKiBkZXRlY3Rpb24gcmVwb3J0cyBvbmUgZGVzcGl0ZSBpdCBub3QgYmVpbmcgdGhlcmUuCisgKiBQbGVhc2Uga2VlcCB0aGlzIGxpc3RlZCBzb3J0ZWQgYWxwaGFiZXRpY2FsbHkuCiAgKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBheHAyODhfZnVlbF9nYXVnZV9ibGFja2xpc3RbXSA9IHsKIAl7CkBAIC02OTcsNiArNjk4LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBheHAyODhfZnVlbF9nYXVnZV9ibGFja2xpc3RbXSA9IHsKIAkJfSwKIAl9LAogCXsKKwkJLyogRUNTIEVGMjBFQSAqLworCQkubWF0Y2hlcyA9IHsKKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiRUYyMEVBIiksCisJCX0sCisJfSwKKwl7CiAJCS8qIEludGVsIENoZXJyeSBUcmFpbCBDb21wdXRlIFN0aWNrLCBXaW5kb3dzIHZlcnNpb24gKi8KIAkJLm1hdGNoZXMgPSB7CiAJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJJbnRlbCBDb3Jwb3JhdGlvbiIpLApAQCAtNzIwLDEwICs3MjcsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkIGF4cDI4OF9mdWVsX2dhdWdlX2JsYWNrbGlzdFtdID0gewogCQl9LAogCX0sCiAJewotCQkvKiBFQ1MgRUYyMEVBICovCisJCS8qIE1pbml4IE5lbyBaODMtNCBtaW5pIFBDICovCiAJCS5tYXRjaGVzID0gewotCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJFRjIwRUEiKSwKLQkJfSwKKwkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIk1JTklYIiksCisJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlo4My00IiksCisJCX0KIAl9LAogCXt9CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wb3dlci9zdXBwbHkvYnEyNTg5MF9jaGFyZ2VyLmMgYi9kcml2ZXJzL3Bvd2VyL3N1cHBseS9icTI1ODkwX2NoYXJnZXIuYwppbmRleCBkMzMzZjJiLi45ZDFlYzhkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9icTI1ODkwX2NoYXJnZXIuYworKysgYi9kcml2ZXJzL3Bvd2VyL3N1cHBseS9icTI1ODkwX2NoYXJnZXIuYwpAQCAtMjIsNiArMjIsNyBAQAogI2RlZmluZSBCUTI1ODkwX0lSUV9QSU4JCQkiYnEyNTg5MF9pcnEiCiAKICNkZWZpbmUgQlEyNTg5MF9JRAkJCTMKKyNkZWZpbmUgQlEyNTg5NV9JRAkJCTcKICNkZWZpbmUgQlEyNTg5Nl9JRAkJCTAKIAogZW51bSBicTI1ODkwX2ZpZWxkcyB7CkBAIC0xNzEsNyArMTcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdfZmllbGQgYnEyNTg5MF9yZWdfZmllbGRzW10gPSB7CiAJW0ZfV0RdCQkJPSBSRUdfRklFTEQoMHgwNywgNCwgNSksCiAJW0ZfVE1SX0VOXQkJPSBSRUdfRklFTEQoMHgwNywgMywgMyksCiAJW0ZfQ0hHX1RNUl0JCT0gUkVHX0ZJRUxEKDB4MDcsIDEsIDIpLAotCVtGX0pFSVRBX0lTRVRdCQk9IFJFR19GSUVMRCgweDA3LCAwLCAwKSwKKwlbRl9KRUlUQV9JU0VUXQkJPSBSRUdfRklFTEQoMHgwNywgMCwgMCksIC8vIHJlc2VydmVkIG9uIEJRMjU4OTUKIAkvKiBSRUcwOCAqLwogCVtGX0JBVENNUF0JCT0gUkVHX0ZJRUxEKDB4MDgsIDUsIDcpLAogCVtGX1ZDTEFNUF0JCT0gUkVHX0ZJRUxEKDB4MDgsIDIsIDQpLApAQCAtMTgwLDcgKzE4MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnX2ZpZWxkIGJxMjU4OTBfcmVnX2ZpZWxkc1tdID0gewogCVtGX0ZPUkNFX0lDT10JCT0gUkVHX0ZJRUxEKDB4MDksIDcsIDcpLAogCVtGX1RNUjJYX0VOXQkJPSBSRUdfRklFTEQoMHgwOSwgNiwgNiksCiAJW0ZfQkFURkVUX0RJU10JCT0gUkVHX0ZJRUxEKDB4MDksIDUsIDUpLAotCVtGX0pFSVRBX1ZTRVRdCQk9IFJFR19GSUVMRCgweDA5LCA0LCA0KSwKKwlbRl9KRUlUQV9WU0VUXQkJPSBSRUdfRklFTEQoMHgwOSwgNCwgNCksIC8vIHJlc2VydmVkIG9uIEJRMjU4OTUKIAlbRl9CQVRGRVRfRExZXQkJPSBSRUdfRklFTEQoMHgwOSwgMywgMyksCiAJW0ZfQkFURkVUX1JTVF9FTl0JPSBSRUdfRklFTEQoMHgwOSwgMiwgMiksCiAJW0ZfUFVNUFhfVVBdCQk9IFJFR19GSUVMRCgweDA5LCAxLCAxKSwKQEAgLTE4OCw3ICsxODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ19maWVsZCBicTI1ODkwX3JlZ19maWVsZHNbXSA9IHsKIAkvKiBSRUcwQSAqLwogCVtGX0JPT1NUVl0JCT0gUkVHX0ZJRUxEKDB4MEEsIDQsIDcpLAogCS8qIFBGTV9PVEdfRElTIDMgb24gQlEyNTg5NiAqLwotCVtGX0JPT1NUSV0JCT0gUkVHX0ZJRUxEKDB4MEEsIDAsIDIpLAorCVtGX0JPT1NUSV0JCT0gUkVHX0ZJRUxEKDB4MEEsIDAsIDIpLCAvLyByZXNlcnZlZCBvbiBCUTI1ODk1CiAJLyogUkVHMEIgKi8KIAlbRl9WQlVTX1NUQVRdCQk9IFJFR19GSUVMRCgweDBCLCA1LCA3KSwKIAlbRl9DSEdfU1RBVF0JCT0gUkVHX0ZJRUxEKDB4MEIsIDMsIDQpLApAQCAtMzkyLDYgKzM5Myw4IEBAIHN0YXRpYyBpbnQgYnEyNTg5MF9wb3dlcl9zdXBwbHlfZ2V0X3Byb3BlcnR5KHN0cnVjdCBwb3dlcl9zdXBwbHkgKnBzeSwKIAljYXNlIFBPV0VSX1NVUFBMWV9QUk9QX01PREVMX05BTUU6CiAJCWlmIChicS0+Y2hpcF9pZCA9PSBCUTI1ODkwX0lEKQogCQkJdmFsLT5zdHJ2YWwgPSAiQlEyNTg5MCI7CisJCWVsc2UgaWYgKGJxLT5jaGlwX2lkID09IEJRMjU4OTVfSUQpCisJCQl2YWwtPnN0cnZhbCA9ICJCUTI1ODk1IjsKIAkJZWxzZSBpZiAoYnEtPmNoaXBfaWQgPT0gQlEyNTg5Nl9JRCkKIAkJCXZhbC0+c3RydmFsID0gIkJRMjU4OTYiOwogCQllbHNlCkBAIC04NjIsNyArODY1LDggQEAgc3RhdGljIGludCBicTI1ODkwX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJCXJldHVybiBicS0+Y2hpcF9pZDsKIAl9CiAKLQlpZiAoKGJxLT5jaGlwX2lkICE9IEJRMjU4OTBfSUQpICYmIChicS0+Y2hpcF9pZCAhPSBCUTI1ODk2X0lEKSkgeworCWlmICgoYnEtPmNoaXBfaWQgIT0gQlEyNTg5MF9JRCkgJiYgKGJxLT5jaGlwX2lkICE9IEJRMjU4OTVfSUQpCisJCQkmJiAoYnEtPmNoaXBfaWQgIT0gQlEyNTg5Nl9JRCkpIHsKIAkJZGV2X2VycihkZXYsICJDaGlwIHdpdGggSUQ9JWQsIG5vdCBzdXBwb3J0ZWQhXG4iLCBicS0+Y2hpcF9pZCk7CiAJCXJldHVybiAtRU5PREVWOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L2NwY2FwLWNoYXJnZXIuYyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L2NwY2FwLWNoYXJnZXIuYwppbmRleCBjYzU0NmJjLi43NDI1OGM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9jcGNhcC1jaGFyZ2VyLmMKKysrIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvY3BjYXAtY2hhcmdlci5jCkBAIC0xMDgsNiArMTA4LDkgQEAKICNkZWZpbmUgQ1BDQVBfUkVHX0NSTV9JQ0hSR18xQTU5NglDUENBUF9SRUdfQ1JNX0lDSFJHKDB4ZSkKICNkZWZpbmUgQ1BDQVBfUkVHX0NSTV9JQ0hSR19OT19MSU1JVAlDUENBUF9SRUdfQ1JNX0lDSFJHKDB4ZikKIAorLyogQ1BDQVBfUkVHX1ZVU0JDIHJlZ2lzdGVyIGJpdHMgbmVlZGVkIGZvciBWQlVTICovCisjZGVmaW5lIENQQ0FQX0JJVF9WQlVTX1NXSVRDSAkJQklUKDApCS8qIFZCVVMgYm9vc3QgdG8gNVYgKi8KKwogZW51bSB7CiAJQ1BDQVBfQ0hBUkdFUl9JSU9fQkFUVERFVCwKIAlDUENBUF9DSEFSR0VSX0lJT19WT0xUQUdFLApAQCAtMTMwLDcgKzEzMyw4IEBAIHN0cnVjdCBjcGNhcF9jaGFyZ2VyX2RkYXRhIHsKIAlzdHJ1Y3QgcG93ZXJfc3VwcGx5ICp1c2I7CiAKIAlzdHJ1Y3QgcGh5X2NvbXBhbmlvbiBjb21wYXJhdG9yOwkvKiBGb3IgVVNCIFZCVVMgKi8KLQlib29sIHZidXNfZW5hYmxlZDsKKwl1bnNpZ25lZCBpbnQgdmJ1c19lbmFibGVkOjE7CisJdW5zaWduZWQgaW50IGZlZWRpbmdfdmJ1czoxOwogCWF0b21pY190IGFjdGl2ZTsKIAogCWludCBzdGF0dXM7CkBAIC0zMjUsNyArMzI5LDYgQEAgc3RhdGljIGJvb2wgY3BjYXBfY2hhcmdlcl92YnVzX3ZhbGlkKHN0cnVjdCBjcGNhcF9jaGFyZ2VyX2RkYXRhICpkZGF0YSkKIH0KIAogLyogVkJVUyBjb250cm9sIGZ1bmN0aW9ucyBmb3IgdGhlIFVTQiBQSFkgY29tcGFuaW9uICovCi0KIHN0YXRpYyB2b2lkIGNwY2FwX2NoYXJnZXJfdmJ1c193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgY3BjYXBfY2hhcmdlcl9kZGF0YSAqZGRhdGE7CkBAIC0zNDMsNiArMzQ2LDcgQEAgc3RhdGljIHZvaWQgY3BjYXBfY2hhcmdlcl92YnVzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQkJcmV0dXJuOwogCQl9CiAKKwkJZGRhdGEtPmZlZWRpbmdfdmJ1cyA9IHRydWU7CiAJCWNwY2FwX2NoYXJnZXJfc2V0X2NhYmxlX3BhdGgoZGRhdGEsIGZhbHNlKTsKIAkJY3BjYXBfY2hhcmdlcl9zZXRfaW5kdWN0aXZlX3BhdGgoZGRhdGEsIGZhbHNlKTsKIApAQCAtMzUwLDEyICszNTQsMjMgQEAgc3RhdGljIHZvaWQgY3BjYXBfY2hhcmdlcl92YnVzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQlpZiAoZXJyb3IpCiAJCQlnb3RvIG91dF9lcnI7CiAKKwkJZXJyb3IgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGRhdGEtPnJlZywgQ1BDQVBfUkVHX1ZVU0JDLAorCQkJCQkgICBDUENBUF9CSVRfVkJVU19TV0lUQ0gsCisJCQkJCSAgIENQQ0FQX0JJVF9WQlVTX1NXSVRDSCk7CisJCWlmIChlcnJvcikKKwkJCWdvdG8gb3V0X2VycjsKKwogCQllcnJvciA9IHJlZ21hcF91cGRhdGVfYml0cyhkZGF0YS0+cmVnLCBDUENBUF9SRUdfQ1JNLAogCQkJCQkgICBDUENBUF9SRUdfQ1JNX1JWUlNNT0RFLAogCQkJCQkgICBDUENBUF9SRUdfQ1JNX1JWUlNNT0RFKTsKIAkJaWYgKGVycm9yKQogCQkJZ290byBvdXRfZXJyOwogCX0gZWxzZSB7CisJCWVycm9yID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRkYXRhLT5yZWcsIENQQ0FQX1JFR19WVVNCQywKKwkJCQkJICAgQ1BDQVBfQklUX1ZCVVNfU1dJVENILCAwKTsKKwkJaWYgKGVycm9yKQorCQkJZ290byBvdXRfZXJyOworCiAJCWVycm9yID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRkYXRhLT5yZWcsIENQQ0FQX1JFR19DUk0sCiAJCQkJCSAgIENQQ0FQX1JFR19DUk1fUlZSU01PREUsIDApOwogCQlpZiAoZXJyb3IpCkBAIC0zNjMsNiArMzc4LDcgQEAgc3RhdGljIHZvaWQgY3BjYXBfY2hhcmdlcl92YnVzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJCWNwY2FwX2NoYXJnZXJfc2V0X2NhYmxlX3BhdGgoZGRhdGEsIHRydWUpOwogCQljcGNhcF9jaGFyZ2VyX3NldF9pbmR1Y3RpdmVfcGF0aChkZGF0YSwgdHJ1ZSk7CisJCWRkYXRhLT5mZWVkaW5nX3ZidXMgPSBmYWxzZTsKIAl9CiAKIAlyZXR1cm47CkBAIC00MzEsNyArNDQ3LDggQEAgc3RhdGljIHZvaWQgY3BjYXBfdXNiX2RldGVjdChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaWYgKGVycm9yKQogCQlyZXR1cm47CiAKLQlpZiAoY3BjYXBfY2hhcmdlcl92YnVzX3ZhbGlkKGRkYXRhKSAmJiBzLmNocmdjdXJyMSkgeworCWlmICghZGRhdGEtPmZlZWRpbmdfdmJ1cyAmJiBjcGNhcF9jaGFyZ2VyX3ZidXNfdmFsaWQoZGRhdGEpICYmCisJICAgIHMuY2hyZ2N1cnIxKSB7CiAJCWludCBtYXhfY3VycmVudDsKIAogCQlpZiAoY3BjYXBfY2hhcmdlcl9iYXR0ZXJ5X2ZvdW5kKGRkYXRhKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L2Nyb3NfdXNicGQtY2hhcmdlci5jIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvY3Jvc191c2JwZC1jaGFyZ2VyLmMKaW5kZXggM2E5ZWE5NC4uNmNjN2MzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dlci9zdXBwbHkvY3Jvc191c2JwZC1jaGFyZ2VyLmMKKysrIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvY3Jvc191c2JwZC1jaGFyZ2VyLmMKQEAgLTUsOSArNSwxMCBAQAogICogQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAxOCBHb29nbGUsIEluYwogICovCiAKLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvY3Jvc19lYy5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG93ZXJfc3VwcGx5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wb3dlci9zdXBwbHkvaXNwMTcwNF9jaGFyZ2VyLmMgYi9kcml2ZXJzL3Bvd2VyL3N1cHBseS9pc3AxNzA0X2NoYXJnZXIuYwppbmRleCBiNDhjYjdhYi4uNDgxMmFjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dlci9zdXBwbHkvaXNwMTcwNF9jaGFyZ2VyLmMKKysrIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvaXNwMTcwNF9jaGFyZ2VyLmMKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMgaW5saW5lIGludCBpc3AxNzA0X3Rlc3RfdWxwaShzdHJ1Y3QgaXNwMTcwNF9jaGFyZ2VyICppc3ApCiAJaW50IHZlbmRvcjsKIAlpbnQgcHJvZHVjdDsKIAlpbnQgaTsKLQlpbnQgcmV0ID0gLUVOT0RFVjsKKwlpbnQgcmV0OwogCiAJLyogVGVzdCBVTFBJIGludGVyZmFjZSAqLwogCXJldCA9IGlzcDE3MDRfd3JpdGUoaXNwLCBVTFBJX1NDUkFUQ0gsIDB4YWEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wb3dlci9zdXBwbHkvano0NzQwLWJhdHRlcnkuYyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L2p6NDc0MC1iYXR0ZXJ5LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzNjZiZDYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9wb3dlci9zdXBwbHkvano0NzQwLWJhdHRlcnkuYworKysgL2Rldi9udWxsCkBAIC0xLDQyMSArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogQmF0dGVyeSBtZWFzdXJlbWVudCBjb2RlIGZvciBJbmdlbmljIEpaIFNPQy4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgSmllamluZyBaaGFuZyA8a3pqZWVmQGdtYWlsLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAxMCwgTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Ci0gKgotICogYmFzZWQgb24gdG9zYV9iYXR0ZXJ5LmMKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFyZWsgVmFzdXQgPG1hcmVrLnZhc3V0QGdtYWlsLmNvbT4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvY29yZS5oPgotI2luY2x1ZGUgPGxpbnV4L3Bvd2VyX3N1cHBseS5oPgotCi0jaW5jbHVkZSA8bGludXgvcG93ZXIvano0NzQwLWJhdHRlcnkuaD4KLSNpbmNsdWRlIDxsaW51eC9qejQ3NDAtYWRjLmg+Ci0KLXN0cnVjdCBqel9iYXR0ZXJ5IHsKLQlzdHJ1Y3QganpfYmF0dGVyeV9wbGF0Zm9ybV9kYXRhICpwZGF0YTsKLQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OwotCi0Jdm9pZCBfX2lvbWVtICpiYXNlOwotCi0JaW50IGlycTsKLQlpbnQgY2hhcmdlX2lycTsKLQotCWNvbnN0IHN0cnVjdCBtZmRfY2VsbCAqY2VsbDsKLQotCWludCBzdGF0dXM7Ci0JbG9uZyB2b2x0YWdlOwotCi0Jc3RydWN0IGNvbXBsZXRpb24gcmVhZF9jb21wbGV0aW9uOwotCi0Jc3RydWN0IHBvd2VyX3N1cHBseSAqYmF0dGVyeTsKLQlzdHJ1Y3QgcG93ZXJfc3VwcGx5X2Rlc2MgYmF0dGVyeV9kZXNjOwotCXN0cnVjdCBkZWxheWVkX3dvcmsgd29yazsKLQotCXN0cnVjdCBtdXRleCBsb2NrOwotfTsKLQotc3RhdGljIGlubGluZSBzdHJ1Y3QganpfYmF0dGVyeSAqcHN5X3RvX2p6X2JhdHRlcnkoc3RydWN0IHBvd2VyX3N1cHBseSAqcHN5KQotewotCXJldHVybiBwb3dlcl9zdXBwbHlfZ2V0X2RydmRhdGEocHN5KTsKLX0KLQotc3RhdGljIGlycXJldHVybl90IGp6X2JhdHRlcnlfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2aWQpCi17Ci0Jc3RydWN0IGp6X2JhdHRlcnkgKmJhdHRlcnkgPSBkZXZpZDsKLQotCWNvbXBsZXRlKCZiYXR0ZXJ5LT5yZWFkX2NvbXBsZXRpb24pOwotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIGxvbmcganpfYmF0dGVyeV9yZWFkX3ZvbHRhZ2Uoc3RydWN0IGp6X2JhdHRlcnkgKmJhdHRlcnkpCi17Ci0JbG9uZyB0OwotCXVuc2lnbmVkIGxvbmcgdmFsOwotCWxvbmcgdm9sdGFnZTsKLQotCW11dGV4X2xvY2soJmJhdHRlcnktPmxvY2spOwotCi0JcmVpbml0X2NvbXBsZXRpb24oJmJhdHRlcnktPnJlYWRfY29tcGxldGlvbik7Ci0KLQllbmFibGVfaXJxKGJhdHRlcnktPmlycSk7Ci0JYmF0dGVyeS0+Y2VsbC0+ZW5hYmxlKGJhdHRlcnktPnBkZXYpOwotCi0JdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZV90aW1lb3V0KCZiYXR0ZXJ5LT5yZWFkX2NvbXBsZXRpb24sCi0JCUhaKTsKLQotCWlmICh0ID4gMCkgewotCQl2YWwgPSByZWFkdyhiYXR0ZXJ5LT5iYXNlKSAmIDB4ZmZmOwotCi0JCWlmIChiYXR0ZXJ5LT5wZGF0YS0+aW5mby52b2x0YWdlX21heF9kZXNpZ24gPD0gMjUwMDAwMCkKLQkJCXZhbCA9ICh2YWwgKiA3ODEyNVVMKSA+PiA3VUw7Ci0JCWVsc2UKLQkJCXZhbCA9ICgodmFsICogOTI0Mzc1VUwpID4+IDlVTCkgKyAzMzAwMDsKLQkJdm9sdGFnZSA9IChsb25nKXZhbDsKLQl9IGVsc2UgewotCQl2b2x0YWdlID0gdCA/IHQgOiAtRVRJTUVET1VUOwotCX0KLQotCWJhdHRlcnktPmNlbGwtPmRpc2FibGUoYmF0dGVyeS0+cGRldik7Ci0JZGlzYWJsZV9pcnEoYmF0dGVyeS0+aXJxKTsKLQotCW11dGV4X3VubG9jaygmYmF0dGVyeS0+bG9jayk7Ci0KLQlyZXR1cm4gdm9sdGFnZTsKLX0KLQotc3RhdGljIGludCBqel9iYXR0ZXJ5X2dldF9jYXBhY2l0eShzdHJ1Y3QgcG93ZXJfc3VwcGx5ICpwc3kpCi17Ci0Jc3RydWN0IGp6X2JhdHRlcnkgKmp6X2JhdHRlcnkgPSBwc3lfdG9fanpfYmF0dGVyeShwc3kpOwotCXN0cnVjdCBwb3dlcl9zdXBwbHlfaW5mbyAqaW5mbyA9ICZqel9iYXR0ZXJ5LT5wZGF0YS0+aW5mbzsKLQlsb25nIHZvbHRhZ2U7Ci0JaW50IHJldDsKLQlpbnQgdm9sdGFnZV9zcGFuOwotCi0Jdm9sdGFnZSA9IGp6X2JhdHRlcnlfcmVhZF92b2x0YWdlKGp6X2JhdHRlcnkpOwotCi0JaWYgKHZvbHRhZ2UgPCAwKQotCQlyZXR1cm4gdm9sdGFnZTsKLQotCXZvbHRhZ2Vfc3BhbiA9IGluZm8tPnZvbHRhZ2VfbWF4X2Rlc2lnbiAtIGluZm8tPnZvbHRhZ2VfbWluX2Rlc2lnbjsKLQlyZXQgPSAoKHZvbHRhZ2UgLSBpbmZvLT52b2x0YWdlX21pbl9kZXNpZ24pICogMTAwKSAvIHZvbHRhZ2Vfc3BhbjsKLQotCWlmIChyZXQgPiAxMDApCi0JCXJldCA9IDEwMDsKLQllbHNlIGlmIChyZXQgPCAwKQotCQlyZXQgPSAwOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBqel9iYXR0ZXJ5X2dldF9wcm9wZXJ0eShzdHJ1Y3QgcG93ZXJfc3VwcGx5ICpwc3ksCi0JZW51bSBwb3dlcl9zdXBwbHlfcHJvcGVydHkgcHNwLCB1bmlvbiBwb3dlcl9zdXBwbHlfcHJvcHZhbCAqdmFsKQotewotCXN0cnVjdCBqel9iYXR0ZXJ5ICpqel9iYXR0ZXJ5ID0gcHN5X3RvX2p6X2JhdHRlcnkocHN5KTsKLQlzdHJ1Y3QgcG93ZXJfc3VwcGx5X2luZm8gKmluZm8gPSAmanpfYmF0dGVyeS0+cGRhdGEtPmluZm87Ci0JbG9uZyB2b2x0YWdlOwotCi0Jc3dpdGNoIChwc3ApIHsKLQljYXNlIFBPV0VSX1NVUFBMWV9QUk9QX1NUQVRVUzoKLQkJdmFsLT5pbnR2YWwgPSBqel9iYXR0ZXJ5LT5zdGF0dXM7Ci0JCWJyZWFrOwotCWNhc2UgUE9XRVJfU1VQUExZX1BST1BfVEVDSE5PTE9HWToKLQkJdmFsLT5pbnR2YWwgPSBqel9iYXR0ZXJ5LT5wZGF0YS0+aW5mby50ZWNobm9sb2d5OwotCQlicmVhazsKLQljYXNlIFBPV0VSX1NVUFBMWV9QUk9QX0hFQUxUSDoKLQkJdm9sdGFnZSA9IGp6X2JhdHRlcnlfcmVhZF92b2x0YWdlKGp6X2JhdHRlcnkpOwotCQlpZiAodm9sdGFnZSA8IGluZm8tPnZvbHRhZ2VfbWluX2Rlc2lnbikKLQkJCXZhbC0+aW50dmFsID0gUE9XRVJfU1VQUExZX0hFQUxUSF9ERUFEOwotCQllbHNlCi0JCQl2YWwtPmludHZhbCA9IFBPV0VSX1NVUFBMWV9IRUFMVEhfR09PRDsKLQkJYnJlYWs7Ci0JY2FzZSBQT1dFUl9TVVBQTFlfUFJPUF9DQVBBQ0lUWToKLQkJdmFsLT5pbnR2YWwgPSBqel9iYXR0ZXJ5X2dldF9jYXBhY2l0eShwc3kpOwotCQlicmVhazsKLQljYXNlIFBPV0VSX1NVUFBMWV9QUk9QX1ZPTFRBR0VfTk9XOgotCQl2YWwtPmludHZhbCA9IGp6X2JhdHRlcnlfcmVhZF92b2x0YWdlKGp6X2JhdHRlcnkpOwotCQlpZiAodmFsLT5pbnR2YWwgPCAwKQotCQkJcmV0dXJuIHZhbC0+aW50dmFsOwotCQlicmVhazsKLQljYXNlIFBPV0VSX1NVUFBMWV9QUk9QX1ZPTFRBR0VfTUFYX0RFU0lHTjoKLQkJdmFsLT5pbnR2YWwgPSBpbmZvLT52b2x0YWdlX21heF9kZXNpZ247Ci0JCWJyZWFrOwotCWNhc2UgUE9XRVJfU1VQUExZX1BST1BfVk9MVEFHRV9NSU5fREVTSUdOOgotCQl2YWwtPmludHZhbCA9IGluZm8tPnZvbHRhZ2VfbWluX2Rlc2lnbjsKLQkJYnJlYWs7Ci0JY2FzZSBQT1dFUl9TVVBQTFlfUFJPUF9QUkVTRU5UOgotCQl2YWwtPmludHZhbCA9IDE7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQganpfYmF0dGVyeV9leHRlcm5hbF9wb3dlcl9jaGFuZ2VkKHN0cnVjdCBwb3dlcl9zdXBwbHkgKnBzeSkKLXsKLQlzdHJ1Y3QganpfYmF0dGVyeSAqanpfYmF0dGVyeSA9IHBzeV90b19qel9iYXR0ZXJ5KHBzeSk7Ci0KLQltb2RfZGVsYXllZF93b3JrKHN5c3RlbV93cSwgJmp6X2JhdHRlcnktPndvcmssIDApOwotfQotCi1zdGF0aWMgaXJxcmV0dXJuX3QganpfYmF0dGVyeV9jaGFyZ2VfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IGp6X2JhdHRlcnkgKmp6X2JhdHRlcnkgPSBkYXRhOwotCi0JbW9kX2RlbGF5ZWRfd29yayhzeXN0ZW1fd3EsICZqel9iYXR0ZXJ5LT53b3JrLCAwKTsKLQotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIHZvaWQganpfYmF0dGVyeV91cGRhdGUoc3RydWN0IGp6X2JhdHRlcnkgKmp6X2JhdHRlcnkpCi17Ci0JaW50IHN0YXR1czsKLQlsb25nIHZvbHRhZ2U7Ci0JYm9vbCBoYXNfY2hhbmdlZCA9IGZhbHNlOwotCWludCBpc19jaGFyZ2luZzsKLQotCWlmIChncGlvX2lzX3ZhbGlkKGp6X2JhdHRlcnktPnBkYXRhLT5ncGlvX2NoYXJnZSkpIHsKLQkJaXNfY2hhcmdpbmcgPSBncGlvX2dldF92YWx1ZShqel9iYXR0ZXJ5LT5wZGF0YS0+Z3Bpb19jaGFyZ2UpOwotCQlpc19jaGFyZ2luZyBePSBqel9iYXR0ZXJ5LT5wZGF0YS0+Z3Bpb19jaGFyZ2VfYWN0aXZlX2xvdzsKLQkJaWYgKGlzX2NoYXJnaW5nKQotCQkJc3RhdHVzID0gUE9XRVJfU1VQUExZX1NUQVRVU19DSEFSR0lORzsKLQkJZWxzZQotCQkJc3RhdHVzID0gUE9XRVJfU1VQUExZX1NUQVRVU19OT1RfQ0hBUkdJTkc7Ci0KLQkJaWYgKHN0YXR1cyAhPSBqel9iYXR0ZXJ5LT5zdGF0dXMpIHsKLQkJCWp6X2JhdHRlcnktPnN0YXR1cyA9IHN0YXR1czsKLQkJCWhhc19jaGFuZ2VkID0gdHJ1ZTsKLQkJfQotCX0KLQotCXZvbHRhZ2UgPSBqel9iYXR0ZXJ5X3JlYWRfdm9sdGFnZShqel9iYXR0ZXJ5KTsKLQlpZiAodm9sdGFnZSA+PSAwICYmIGFicyh2b2x0YWdlIC0ganpfYmF0dGVyeS0+dm9sdGFnZSkgPiA1MDAwMCkgewotCQlqel9iYXR0ZXJ5LT52b2x0YWdlID0gdm9sdGFnZTsKLQkJaGFzX2NoYW5nZWQgPSB0cnVlOwotCX0KLQotCWlmIChoYXNfY2hhbmdlZCkKLQkJcG93ZXJfc3VwcGx5X2NoYW5nZWQoanpfYmF0dGVyeS0+YmF0dGVyeSk7Ci19Ci0KLXN0YXRpYyBlbnVtIHBvd2VyX3N1cHBseV9wcm9wZXJ0eSBqel9iYXR0ZXJ5X3Byb3BlcnRpZXNbXSA9IHsKLQlQT1dFUl9TVVBQTFlfUFJPUF9TVEFUVVMsCi0JUE9XRVJfU1VQUExZX1BST1BfVEVDSE5PTE9HWSwKLQlQT1dFUl9TVVBQTFlfUFJPUF9IRUFMVEgsCi0JUE9XRVJfU1VQUExZX1BST1BfQ0FQQUNJVFksCi0JUE9XRVJfU1VQUExZX1BST1BfVk9MVEFHRV9OT1csCi0JUE9XRVJfU1VQUExZX1BST1BfVk9MVEFHRV9NQVhfREVTSUdOLAotCVBPV0VSX1NVUFBMWV9QUk9QX1ZPTFRBR0VfTUlOX0RFU0lHTiwKLQlQT1dFUl9TVVBQTFlfUFJPUF9QUkVTRU5ULAotfTsKLQotc3RhdGljIHZvaWQganpfYmF0dGVyeV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKLXsKLQkvKiBUb28gc21hbGwgaW50ZXJ2YWwgd2lsbCBpbmNyZWFzZSBzeXN0ZW0gd29ya2xvYWQgKi8KLQljb25zdCBpbnQgaW50ZXJ2YWwgPSBIWiAqIDMwOwotCXN0cnVjdCBqel9iYXR0ZXJ5ICpqel9iYXR0ZXJ5ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBqel9iYXR0ZXJ5LAotCQkJCQkgICAgd29yay53b3JrKTsKLQotCWp6X2JhdHRlcnlfdXBkYXRlKGp6X2JhdHRlcnkpOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmanpfYmF0dGVyeS0+d29yaywgaW50ZXJ2YWwpOwotfQotCi1zdGF0aWMgaW50IGp6X2JhdHRlcnlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlpbnQgcmV0ID0gMDsKLQlzdHJ1Y3QganpfYmF0dGVyeV9wbGF0Zm9ybV9kYXRhICpwZGF0YSA9IHBkZXYtPmRldi5wYXJlbnQtPnBsYXRmb3JtX2RhdGE7Ci0Jc3RydWN0IHBvd2VyX3N1cHBseV9jb25maWcgcHN5X2NmZyA9IHt9OwotCXN0cnVjdCBqel9iYXR0ZXJ5ICpqel9iYXR0ZXJ5OwotCXN0cnVjdCBwb3dlcl9zdXBwbHlfZGVzYyAqYmF0dGVyeV9kZXNjOwotCXN0cnVjdCByZXNvdXJjZSAqbWVtOwotCi0JaWYgKCFwZGF0YSkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBwbGF0Zm9ybV9kYXRhIHN1cHBsaWVkXG4iKTsKLQkJcmV0dXJuIC1FTlhJTzsKLQl9Ci0KLQlqel9iYXR0ZXJ5ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqanpfYmF0dGVyeSksIEdGUF9LRVJORUwpOwotCWlmICghanpfYmF0dGVyeSkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgZHJpdmVyIHN0cnVjdHVyZVxuIik7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KLQotCWp6X2JhdHRlcnktPmNlbGwgPSBtZmRfZ2V0X2NlbGwocGRldik7Ci0KLQlqel9iYXR0ZXJ5LT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChqel9iYXR0ZXJ5LT5pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBnZXQgcGxhdGZvcm0gaXJxOiAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIGp6X2JhdHRlcnktPmlycTsKLQl9Ci0KLQltZW0gPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwotCi0JanpfYmF0dGVyeS0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCBtZW0pOwotCWlmIChJU19FUlIoanpfYmF0dGVyeS0+YmFzZSkpCi0JCXJldHVybiBQVFJfRVJSKGp6X2JhdHRlcnktPmJhc2UpOwotCi0JYmF0dGVyeV9kZXNjID0gJmp6X2JhdHRlcnktPmJhdHRlcnlfZGVzYzsKLQliYXR0ZXJ5X2Rlc2MtPm5hbWUgPSBwZGF0YS0+aW5mby5uYW1lOwotCWJhdHRlcnlfZGVzYy0+dHlwZSA9IFBPV0VSX1NVUFBMWV9UWVBFX0JBVFRFUlk7Ci0JYmF0dGVyeV9kZXNjLT5wcm9wZXJ0aWVzCT0ganpfYmF0dGVyeV9wcm9wZXJ0aWVzOwotCWJhdHRlcnlfZGVzYy0+bnVtX3Byb3BlcnRpZXMJPSBBUlJBWV9TSVpFKGp6X2JhdHRlcnlfcHJvcGVydGllcyk7Ci0JYmF0dGVyeV9kZXNjLT5nZXRfcHJvcGVydHkJPSBqel9iYXR0ZXJ5X2dldF9wcm9wZXJ0eTsKLQliYXR0ZXJ5X2Rlc2MtPmV4dGVybmFsX3Bvd2VyX2NoYW5nZWQgPQotCQkJCQlqel9iYXR0ZXJ5X2V4dGVybmFsX3Bvd2VyX2NoYW5nZWQ7Ci0JYmF0dGVyeV9kZXNjLT51c2VfZm9yX2FwbQk9IDE7Ci0KLQlwc3lfY2ZnLmRydl9kYXRhID0ganpfYmF0dGVyeTsKLQotCWp6X2JhdHRlcnktPnBkYXRhID0gcGRhdGE7Ci0JanpfYmF0dGVyeS0+cGRldiA9IHBkZXY7Ci0KLQlpbml0X2NvbXBsZXRpb24oJmp6X2JhdHRlcnktPnJlYWRfY29tcGxldGlvbik7Ci0JbXV0ZXhfaW5pdCgmanpfYmF0dGVyeS0+bG9jayk7Ci0KLQlJTklUX0RFTEFZRURfV09SSygmanpfYmF0dGVyeS0+d29yaywganpfYmF0dGVyeV93b3JrKTsKLQotCXJldCA9IHJlcXVlc3RfaXJxKGp6X2JhdHRlcnktPmlycSwganpfYmF0dGVyeV9pcnFfaGFuZGxlciwgMCwgcGRldi0+bmFtZSwKLQkJCWp6X2JhdHRlcnkpOwotCWlmIChyZXQpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3QgaXJxICVkXG4iLCByZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KLQlkaXNhYmxlX2lycShqel9iYXR0ZXJ5LT5pcnEpOwotCi0JaWYgKGdwaW9faXNfdmFsaWQocGRhdGEtPmdwaW9fY2hhcmdlKSkgewotCQlyZXQgPSBncGlvX3JlcXVlc3QocGRhdGEtPmdwaW9fY2hhcmdlLCBkZXZfbmFtZSgmcGRldi0+ZGV2KSk7Ci0JCWlmIChyZXQpIHsKLQkJCWRldl9lcnIoJnBkZXYtPmRldiwgImNoYXJnZXIgc3RhdGUgZ3BpbyByZXF1ZXN0IGZhaWxlZC5cbiIpOwotCQkJZ290byBlcnJfZnJlZV9pcnE7Ci0JCX0KLQkJcmV0ID0gZ3Bpb19kaXJlY3Rpb25faW5wdXQocGRhdGEtPmdwaW9fY2hhcmdlKTsKLQkJaWYgKHJldCkgewotCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2hhcmdlciBzdGF0ZSBncGlvIHNldCBkaXJlY3Rpb24gZmFpbGVkLlxuIik7Ci0JCQlnb3RvIGVycl9mcmVlX2dwaW87Ci0JCX0KLQotCQlqel9iYXR0ZXJ5LT5jaGFyZ2VfaXJxID0gZ3Bpb190b19pcnEocGRhdGEtPmdwaW9fY2hhcmdlKTsKLQotCQlpZiAoanpfYmF0dGVyeS0+Y2hhcmdlX2lycSA+PSAwKSB7Ci0JCQlyZXQgPSByZXF1ZXN0X2lycShqel9iYXR0ZXJ5LT5jaGFyZ2VfaXJxLAotCQkJCSAgICBqel9iYXR0ZXJ5X2NoYXJnZV9pcnEsCi0JCQkJICAgIElSUUZfVFJJR0dFUl9SSVNJTkcgfCBJUlFGX1RSSUdHRVJfRkFMTElORywKLQkJCQkgICAgZGV2X25hbWUoJnBkZXYtPmRldiksIGp6X2JhdHRlcnkpOwotCQkJaWYgKHJldCkgewotCQkJCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byByZXF1ZXN0IGNoYXJnZSBpcnE6ICVkXG4iLCByZXQpOwotCQkJCWdvdG8gZXJyX2ZyZWVfZ3BpbzsKLQkJCX0KLQkJfQotCX0gZWxzZSB7Ci0JCWp6X2JhdHRlcnktPmNoYXJnZV9pcnEgPSAtMTsKLQl9Ci0KLQlpZiAoanpfYmF0dGVyeS0+cGRhdGEtPmluZm8udm9sdGFnZV9tYXhfZGVzaWduIDw9IDI1MDAwMDApCi0JCWp6NDc0MF9hZGNfc2V0X2NvbmZpZyhwZGV2LT5kZXYucGFyZW50LCBKWl9BRENfQ09ORklHX0JBVF9NQiwKLQkJCUpaX0FEQ19DT05GSUdfQkFUX01CKTsKLQllbHNlCi0JCWp6NDc0MF9hZGNfc2V0X2NvbmZpZyhwZGV2LT5kZXYucGFyZW50LCBKWl9BRENfQ09ORklHX0JBVF9NQiwgMCk7Ci0KLQlqel9iYXR0ZXJ5LT5iYXR0ZXJ5ID0gcG93ZXJfc3VwcGx5X3JlZ2lzdGVyKCZwZGV2LT5kZXYsIGJhdHRlcnlfZGVzYywKLQkJCQkJCQkmcHN5X2NmZyk7Ci0JaWYgKElTX0VSUihqel9iYXR0ZXJ5LT5iYXR0ZXJ5KSkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJwb3dlciBzdXBwbHkgYmF0dGVyeSByZWdpc3RlciBmYWlsZWQuXG4iKTsKLQkJcmV0ID0gUFRSX0VSUihqel9iYXR0ZXJ5LT5iYXR0ZXJ5KTsKLQkJZ290byBlcnJfZnJlZV9jaGFyZ2VfaXJxOwotCX0KLQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGp6X2JhdHRlcnkpOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmanpfYmF0dGVyeS0+d29yaywgMCk7Ci0KLQlyZXR1cm4gMDsKLQotZXJyX2ZyZWVfY2hhcmdlX2lycToKLQlpZiAoanpfYmF0dGVyeS0+Y2hhcmdlX2lycSA+PSAwKQotCQlmcmVlX2lycShqel9iYXR0ZXJ5LT5jaGFyZ2VfaXJxLCBqel9iYXR0ZXJ5KTsKLWVycl9mcmVlX2dwaW86Ci0JaWYgKGdwaW9faXNfdmFsaWQocGRhdGEtPmdwaW9fY2hhcmdlKSkKLQkJZ3Bpb19mcmVlKGp6X2JhdHRlcnktPnBkYXRhLT5ncGlvX2NoYXJnZSk7Ci1lcnJfZnJlZV9pcnE6Ci0JZnJlZV9pcnEoanpfYmF0dGVyeS0+aXJxLCBqel9iYXR0ZXJ5KTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IGp6X2JhdHRlcnlfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IGp6X2JhdHRlcnkgKmp6X2JhdHRlcnkgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQotCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmanpfYmF0dGVyeS0+d29yayk7Ci0KLQlpZiAoZ3Bpb19pc192YWxpZChqel9iYXR0ZXJ5LT5wZGF0YS0+Z3Bpb19jaGFyZ2UpKSB7Ci0JCWlmIChqel9iYXR0ZXJ5LT5jaGFyZ2VfaXJxID49IDApCi0JCQlmcmVlX2lycShqel9iYXR0ZXJ5LT5jaGFyZ2VfaXJxLCBqel9iYXR0ZXJ5KTsKLQkJZ3Bpb19mcmVlKGp6X2JhdHRlcnktPnBkYXRhLT5ncGlvX2NoYXJnZSk7Ci0JfQotCi0JcG93ZXJfc3VwcGx5X3VucmVnaXN0ZXIoanpfYmF0dGVyeS0+YmF0dGVyeSk7Ci0KLQlmcmVlX2lycShqel9iYXR0ZXJ5LT5pcnEsIGp6X2JhdHRlcnkpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBDT05GSUdfUE0KLXN0YXRpYyBpbnQganpfYmF0dGVyeV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QganpfYmF0dGVyeSAqanpfYmF0dGVyeSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCi0JY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZqel9iYXR0ZXJ5LT53b3JrKTsKLQlqel9iYXR0ZXJ5LT5zdGF0dXMgPSBQT1dFUl9TVVBQTFlfU1RBVFVTX1VOS05PV047Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBqel9iYXR0ZXJ5X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGp6X2JhdHRlcnkgKmp6X2JhdHRlcnkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmanpfYmF0dGVyeS0+d29yaywgMCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGp6X2JhdHRlcnlfcG1fb3BzID0gewotCS5zdXNwZW5kCT0ganpfYmF0dGVyeV9zdXNwZW5kLAotCS5yZXN1bWUJCT0ganpfYmF0dGVyeV9yZXN1bWUsCi19OwotCi0jZGVmaW5lIEpaX0JBVFRFUllfUE1fT1BTICgmanpfYmF0dGVyeV9wbV9vcHMpCi0jZWxzZQotI2RlZmluZSBKWl9CQVRURVJZX1BNX09QUyBOVUxMCi0jZW5kaWYKLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIganpfYmF0dGVyeV9kcml2ZXIgPSB7Ci0JLnByb2JlCQk9IGp6X2JhdHRlcnlfcHJvYmUsCi0JLnJlbW92ZQkJPSBqel9iYXR0ZXJ5X3JlbW92ZSwKLQkuZHJpdmVyID0gewotCQkubmFtZSA9ICJqejQ3NDAtYmF0dGVyeSIsCi0JCS5wbSA9IEpaX0JBVFRFUllfUE1fT1BTLAotCX0sCi19OwotCi1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGp6X2JhdHRlcnlfZHJpdmVyKTsKLQotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpqejQ3NDAtYmF0dGVyeSIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotTU9EVUxFX0FVVEhPUigiTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIkpaNDc0MCBTb0MgYmF0dGVyeSBkcml2ZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L21heDE3MDQyX2JhdHRlcnkuYyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L21heDE3MDQyX2JhdHRlcnkuYwppbmRleCA2NGYzMzU4Li4wZGZhZDJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9tYXgxNzA0Ml9iYXR0ZXJ5LmMKKysrIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvbWF4MTcwNDJfYmF0dGVyeS5jCkBAIC01MTEsNyArNTExLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIG1heDE3MDQyX292ZXJyaWRlX3BvcihzdHJ1Y3QgcmVnbWFwICptYXAsCiAJCXJlZ21hcF93cml0ZShtYXAsIHJlZywgdmFsdWUpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgbWF4MTA3NDJfdW5sb2NrX21vZGVsKHN0cnVjdCBtYXgxNzA0Ml9jaGlwICpjaGlwKQorc3RhdGljIGlubGluZSB2b2lkIG1heDE3MDQyX3VubG9ja19tb2RlbChzdHJ1Y3QgbWF4MTcwNDJfY2hpcCAqY2hpcCkKIHsKIAlzdHJ1Y3QgcmVnbWFwICptYXAgPSBjaGlwLT5yZWdtYXA7CiAKQEAgLTUxOSw3ICs1MTksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbWF4MTA3NDJfdW5sb2NrX21vZGVsKHN0cnVjdCBtYXgxNzA0Ml9jaGlwICpjaGlwKQogCXJlZ21hcF93cml0ZShtYXAsIE1BWDE3MDQyX01MT0NLUmVnMiwgTU9ERUxfVU5MT0NLMik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBtYXgxMDc0Ml9sb2NrX21vZGVsKHN0cnVjdCBtYXgxNzA0Ml9jaGlwICpjaGlwKQorc3RhdGljIGlubGluZSB2b2lkIG1heDE3MDQyX2xvY2tfbW9kZWwoc3RydWN0IG1heDE3MDQyX2NoaXAgKmNoaXApCiB7CiAJc3RydWN0IHJlZ21hcCAqbWFwID0gY2hpcC0+cmVnbWFwOwogCkBAIC01NzcsNyArNTc3LDcgQEAgc3RhdGljIGludCBtYXgxNzA0Ml9pbml0X21vZGVsKHN0cnVjdCBtYXgxNzA0Ml9jaGlwICpjaGlwKQogCWlmICghdGVtcF9kYXRhKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCW1heDEwNzQyX3VubG9ja19tb2RlbChjaGlwKTsKKwltYXgxNzA0Ml91bmxvY2tfbW9kZWwoY2hpcCk7CiAJbWF4MTcwNDJfd3JpdGVfbW9kZWxfZGF0YShjaGlwLCBNQVgxNzA0Ml9NT0RFTENoclRibCwKIAkJCQl0YWJsZV9zaXplKTsKIAltYXgxNzA0Ml9yZWFkX21vZGVsX2RhdGEoY2hpcCwgTUFYMTcwNDJfTU9ERUxDaHJUYmwsIHRlbXBfZGF0YSwKQEAgLTU4OSw3ICs1ODksNyBAQCBzdGF0aWMgaW50IG1heDE3MDQyX2luaXRfbW9kZWwoc3RydWN0IG1heDE3MDQyX2NoaXAgKmNoaXApCiAJCXRlbXBfZGF0YSwKIAkJdGFibGVfc2l6ZSk7CiAKLQltYXgxMDc0Ml9sb2NrX21vZGVsKGNoaXApOworCW1heDE3MDQyX2xvY2tfbW9kZWwoY2hpcCk7CiAJa2ZyZWUodGVtcF9kYXRhKTsKIAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9tYXg3NzY1MC1jaGFyZ2VyLmMgYi9kcml2ZXJzL3Bvd2VyL3N1cHBseS9tYXg3NzY1MC1jaGFyZ2VyLmMKaW5kZXggZTM0NzE0Yy4uNWY5NDc3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dlci9zdXBwbHkvbWF4Nzc2NTAtY2hhcmdlci5jCisrKyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L21heDc3NjUwLWNoYXJnZXIuYwpAQCAtMzY2LDMgKzM2Niw0IEBAIG1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobWF4Nzc2NTBfY2hhcmdlcl9kcml2ZXIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJNQVhJTSA3NzY1MC83NzY1MSBjaGFyZ2VyIGRyaXZlciIpOwogTU9EVUxFX0FVVEhPUigiQmFydG9zeiBHb2xhc3pld3NraSA8YmdvbGFzemV3c2tpQGJheWxpYnJlLmNvbT4iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKK01PRFVMRV9BTElBUygicGxhdGZvcm06bWF4Nzc2NTAtY2hhcmdlciIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wb3dlci9zdXBwbHkvcG93ZXJfc3VwcGx5X2NvcmUuYyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L3Bvd2VyX3N1cHBseV9jb3JlLmMKaW5kZXggODJlODQ4MC4uNWMzNmM0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dlci9zdXBwbHkvcG93ZXJfc3VwcGx5X2NvcmUuYworKysgYi9kcml2ZXJzL3Bvd2VyL3N1cHBseS9wb3dlcl9zdXBwbHlfY29yZS5jCkBAIC0xMDUxLDE0ICsxMDUxLDE0IEBAIF9fcG93ZXJfc3VwcGx5X3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKnBhcmVudCwKIAl9CiAKIAlzcGluX2xvY2tfaW5pdCgmcHN5LT5jaGFuZ2VkX2xvY2spOwotCXJjID0gZGV2aWNlX2luaXRfd2FrZXVwKGRldiwgd3MpOwotCWlmIChyYykKLQkJZ290byB3YWtldXBfaW5pdF9mYWlsZWQ7Ci0KIAlyYyA9IGRldmljZV9hZGQoZGV2KTsKIAlpZiAocmMpCiAJCWdvdG8gZGV2aWNlX2FkZF9mYWlsZWQ7CiAKKwlyYyA9IGRldmljZV9pbml0X3dha2V1cChkZXYsIHdzKTsKKwlpZiAocmMpCisJCWdvdG8gd2FrZXVwX2luaXRfZmFpbGVkOworCiAJcmMgPSBwc3lfcmVnaXN0ZXJfdGhlcm1hbChwc3kpOwogCWlmIChyYykKIAkJZ290byByZWdpc3Rlcl90aGVybWFsX2ZhaWxlZDsKQEAgLTExMDEsOCArMTEwMSw4IEBAIF9fcG93ZXJfc3VwcGx5X3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKnBhcmVudCwKIAlwc3lfdW5yZWdpc3Rlcl90aGVybWFsKHBzeSk7CiByZWdpc3Rlcl90aGVybWFsX2ZhaWxlZDoKIAlkZXZpY2VfZGVsKGRldik7Ci1kZXZpY2VfYWRkX2ZhaWxlZDoKIHdha2V1cF9pbml0X2ZhaWxlZDoKK2RldmljZV9hZGRfZmFpbGVkOgogY2hlY2tfc3VwcGxpZXNfZmFpbGVkOgogZGV2X3NldF9uYW1lX2ZhaWxlZDoKIAlwdXRfZGV2aWNlKGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9wb3dlcl9zdXBwbHlfaHdtb24uYyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L3Bvd2VyX3N1cHBseV9od21vbi5jCmluZGV4IDUxZmU2MDQuLjc1Y2Y4NjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L3Bvd2VyX3N1cHBseV9od21vbi5jCisrKyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L3Bvd2VyX3N1cHBseV9od21vbi5jCkBAIC0yODQsNiArMjg0LDcgQEAgaW50IHBvd2VyX3N1cHBseV9hZGRfaHdtb25fc3lzZnMoc3RydWN0IHBvd2VyX3N1cHBseSAqcHN5KQogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwc3ktPmRldjsKIAlzdHJ1Y3QgZGV2aWNlICpod21vbjsKIAlpbnQgcmV0LCBpOworCWNvbnN0IGNoYXIgKm5hbWU7CiAKIAlpZiAoIWRldnJlc19vcGVuX2dyb3VwKGRldiwgcG93ZXJfc3VwcGx5X2FkZF9od21vbl9zeXNmcywKIAkJCSAgICAgICBHRlBfS0VSTkVMKSkKQEAgLTMzNCw3ICszMzUsMTkgQEAgaW50IHBvd2VyX3N1cHBseV9hZGRfaHdtb25fc3lzZnMoc3RydWN0IHBvd2VyX3N1cHBseSAqcHN5KQogCQl9CiAJfQogCi0JaHdtb24gPSBkZXZtX2h3bW9uX2RldmljZV9yZWdpc3Rlcl93aXRoX2luZm8oZGV2LCBwc3ktPmRlc2MtPm5hbWUsCisJbmFtZSA9IHBzeS0+ZGVzYy0+bmFtZTsKKwlpZiAoc3RyY2hyKG5hbWUsICctJykpIHsKKwkJY2hhciAqbmV3X25hbWU7CisKKwkJbmV3X25hbWUgPSBkZXZtX2tzdHJkdXAoZGV2LCBuYW1lLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFuZXdfbmFtZSkgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gZXJyb3I7CisJCX0KKwkJc3RycmVwbGFjZShuZXdfbmFtZSwgJy0nLCAnXycpOworCQluYW1lID0gbmV3X25hbWU7CisJfQorCWh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9pbmZvKGRldiwgbmFtZSwKIAkJCQkJCXBzeWh3LAogCQkJCQkJJnBvd2VyX3N1cHBseV9od21vbl9jaGlwX2luZm8sCiAJCQkJCQlOVUxMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L3Nicy1iYXR0ZXJ5LmMgYi9kcml2ZXJzL3Bvd2VyL3N1cHBseS9zYnMtYmF0dGVyeS5jCmluZGV4IDA0OGQyMDUuLmY4ZDc0ZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L3Nicy1iYXR0ZXJ5LmMKKysrIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvc2JzLWJhdHRlcnkuYwpAQCAtMzE0LDE3ICszMTQsMjIgQEAgc3RhdGljIGludCBzYnNfZ2V0X2JhdHRlcnlfcHJlc2VuY2VfYW5kX2hlYWx0aCgKIHsKIAlpbnQgcmV0OwogCi0JaWYgKHBzcCA9PSBQT1dFUl9TVVBQTFlfUFJPUF9QUkVTRU5UKSB7Ci0JCS8qIER1bW15IGNvbW1hbmQ7IGlmIGl0IHN1Y2NlZWRzLCBiYXR0ZXJ5IGlzIHByZXNlbnQuICovCi0JCXJldCA9IHNic19yZWFkX3dvcmRfZGF0YShjbGllbnQsIHNic19kYXRhW1JFR19TVEFUVVNdLmFkZHIpOwotCQlpZiAocmV0IDwgMCkKLQkJCXZhbC0+aW50dmFsID0gMDsgLyogYmF0dGVyeSBkaXNjb25uZWN0ZWQgKi8KLQkJZWxzZQotCQkJdmFsLT5pbnR2YWwgPSAxOyAvKiBiYXR0ZXJ5IHByZXNlbnQgKi8KLQl9IGVsc2UgeyAvKiBQT1dFUl9TVVBQTFlfUFJPUF9IRUFMVEggKi8KKwkvKiBEdW1teSBjb21tYW5kOyBpZiBpdCBzdWNjZWVkcywgYmF0dGVyeSBpcyBwcmVzZW50LiAqLworCXJldCA9IHNic19yZWFkX3dvcmRfZGF0YShjbGllbnQsIHNic19kYXRhW1JFR19TVEFUVVNdLmFkZHIpOworCisJaWYgKHJldCA8IDApIHsgLyogYmF0dGVyeSBub3QgcHJlc2VudCovCisJCWlmIChwc3AgPT0gUE9XRVJfU1VQUExZX1BST1BfUFJFU0VOVCkgeworCQkJdmFsLT5pbnR2YWwgPSAwOworCQkJcmV0dXJuIDA7CisJCX0KKwkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAocHNwID09IFBPV0VSX1NVUFBMWV9QUk9QX1BSRVNFTlQpCisJCXZhbC0+aW50dmFsID0gMTsgLyogYmF0dGVyeSBwcmVzZW50ICovCisJZWxzZSAvKiBQT1dFUl9TVVBQTFlfUFJPUF9IRUFMVEggKi8KIAkJLyogU0JTIHNwZWMgZG9lc24ndCBoYXZlIGEgZ2VuZXJhbCBoZWFsdGggY29tbWFuZC4gKi8KIAkJdmFsLT5pbnR2YWwgPSBQT1dFUl9TVVBQTFlfSEVBTFRIX1VOS05PV047Ci0JfQogCiAJcmV0dXJuIDA7CiB9CkBAIC02MjAsMTIgKzYyNSwxNCBAQCBzdGF0aWMgaW50IHNic19nZXRfcHJvcGVydHkoc3RydWN0IHBvd2VyX3N1cHBseSAqcHN5LAogCXN3aXRjaCAocHNwKSB7CiAJY2FzZSBQT1dFUl9TVVBQTFlfUFJPUF9QUkVTRU5UOgogCWNhc2UgUE9XRVJfU1VQUExZX1BST1BfSEVBTFRIOgotCQlpZiAoY2xpZW50LT5mbGFncyAmIFNCU19GTEFHU19USV9CUTIwWjc1KQorCQlpZiAoY2hpcC0+ZmxhZ3MgJiBTQlNfRkxBR1NfVElfQlEyMFo3NSkKIAkJCXJldCA9IHNic19nZXRfdGlfYmF0dGVyeV9wcmVzZW5jZV9hbmRfaGVhbHRoKGNsaWVudCwKIAkJCQkJCQkJICAgICBwc3AsIHZhbCk7CiAJCWVsc2UKIAkJCXJldCA9IHNic19nZXRfYmF0dGVyeV9wcmVzZW5jZV9hbmRfaGVhbHRoKGNsaWVudCwgcHNwLAogCQkJCQkJCQkgIHZhbCk7CisKKwkJLyogdGhpcyBjYW4gb25seSBiZSB0cnVlIGlmIG5vIGdwaW8gaXMgdXNlZCAqLwogCQlpZiAocHNwID09IFBPV0VSX1NVUFBMWV9QUk9QX1BSRVNFTlQpCiAJCQlyZXR1cm4gMDsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9zYzI3eHhfZnVlbF9nYXVnZS5jIGIvZHJpdmVycy9wb3dlci9zdXBwbHkvc2MyN3h4X2Z1ZWxfZ2F1Z2UuYwppbmRleCAyNDg5NWNjLi5iYzhmNWJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9zYzI3eHhfZnVlbF9nYXVnZS5jCisrKyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L3NjMjd4eF9mdWVsX2dhdWdlLmMKQEAgLTEwOSw2ICsxMDksOSBAQCBzdHJ1Y3Qgc2MyN3h4X2ZndV9kYXRhIHsKIH07CiAKIHN0YXRpYyBpbnQgc2MyN3h4X2ZndV9jYXBfdG9fY2xiY250KHN0cnVjdCBzYzI3eHhfZmd1X2RhdGEgKmRhdGEsIGludCBjYXBhY2l0eSk7CitzdGF0aWMgdm9pZCBzYzI3eHhfZmd1X2NhcGFjaXR5X2NhbGlicmF0aW9uKHN0cnVjdCBzYzI3eHhfZmd1X2RhdGEgKmRhdGEsCisJCQkJCSAgICBpbnQgY2FwLCBib29sIGludF9tb2RlKTsKK3N0YXRpYyB2b2lkIHNjMjd4eF9mZ3VfYWRqdXN0X2NhcChzdHJ1Y3Qgc2MyN3h4X2ZndV9kYXRhICpkYXRhLCBpbnQgY2FwKTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzYzI3eHhfY2hhcmdlcl9zdXBwbHlfbmFtZVtdID0gewogCSJzYzI3MzFfY2hhcmdlciIsCkBAIC0zMjYsOCArMzI5LDYgQEAgc3RhdGljIGludCBzYzI3eHhfZmd1X3NldF9jbGJjbnQoc3RydWN0IHNjMjd4eF9mZ3VfZGF0YSAqZGF0YSwgaW50IGNsYmNudCkKIHsKIAlpbnQgcmV0OwogCi0JY2xiY250ICo9IFNDMjdYWF9GR1VfU0FNUExFX0haOwotCiAJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnJlZ21hcCwKIAkJCQkgZGF0YS0+YmFzZSArIFNDMjdYWF9GR1VfQ0xCQ05UX1NFVEwsCiAJCQkJIFNDMjdYWF9GR1VfQ0xCQ05UX01BU0ssIGNsYmNudCk7CkBAIC0zNjIsNyArMzYzLDYgQEAgc3RhdGljIGludCBzYzI3eHhfZmd1X2dldF9jbGJjbnQoc3RydWN0IHNjMjd4eF9mZ3VfZGF0YSAqZGF0YSwgaW50ICpjbGJfY250KQogCiAJKmNsYl9jbnQgPSBjY2wgJiBTQzI3WFhfRkdVX0NMQkNOVF9NQVNLOwogCSpjbGJfY250IHw9IChjY2ggJiBTQzI3WFhfRkdVX0NMQkNOVF9NQVNLKSA8PCBTQzI3WFhfRkdVX0NMQkNOVF9TSElGVDsKLQkqY2xiX2NudCAvPSBTQzI3WFhfRkdVX1NBTVBMRV9IWjsKIAogCXJldHVybiAwOwogfQpAQCAtMzgwLDEwICszODAsMTAgQEAgc3RhdGljIGludCBzYzI3eHhfZmd1X2dldF9jYXBhY2l0eShzdHJ1Y3Qgc2MyN3h4X2ZndV9kYXRhICpkYXRhLCBpbnQgKmNhcCkKIAogCS8qCiAJICogQ29udmVydCBjb3Vsb21iIGNvdW50ZXIgdG8gZGVsdGEgY2FwYWNpdHkgKG1BaCksIGFuZCBzZXQgbXVsdGlwbGllcgotCSAqIGFzIDEwMCB0byBpbXByb3ZlIHRoZSBwcmVjaXNpb24uCisJICogYXMgMTAgdG8gaW1wcm92ZSB0aGUgcHJlY2lzaW9uLgogCSAqLwotCXRlbXAgPSBESVZfUk9VTkRfQ0xPU0VTVChkZWx0YV9jbGJjbnQsIDM2MCk7Ci0JdGVtcCA9IHNjMjd4eF9mZ3VfYWRjX3RvX2N1cnJlbnQoZGF0YSwgdGVtcCk7CisJdGVtcCA9IERJVl9ST1VORF9DTE9TRVNUKGRlbHRhX2NsYmNudCAqIDEwLCAzNiAqIFNDMjdYWF9GR1VfU0FNUExFX0haKTsKKwl0ZW1wID0gc2MyN3h4X2ZndV9hZGNfdG9fY3VycmVudChkYXRhLCB0ZW1wIC8gMTAwMCk7CiAKIAkvKgogCSAqIENvbnZlcnQgdG8gY2FwYWNpdHkgcGVyY2VudCBvZiB0aGUgYmF0dGVyeSB0b3RhbCBjYXBhY2l0eSwKQEAgLTM5Miw2ICszOTIsOSBAQCBzdGF0aWMgaW50IHNjMjd4eF9mZ3VfZ2V0X2NhcGFjaXR5KHN0cnVjdCBzYzI3eHhfZmd1X2RhdGEgKmRhdGEsIGludCAqY2FwKQogCWRlbHRhX2NhcCA9IERJVl9ST1VORF9DTE9TRVNUKHRlbXAgKiAxMDAsIGRhdGEtPnRvdGFsX2NhcCk7CiAJKmNhcCA9IGRlbHRhX2NhcCArIGRhdGEtPmluaXRfY2FwOwogCisJLyogQ2FsaWJyYXRlIHRoZSBiYXR0ZXJ5IGNhcGFjaXR5IGluIGEgbm9ybWFsIHJhbmdlLiAqLworCXNjMjd4eF9mZ3VfY2FwYWNpdHlfY2FsaWJyYXRpb24oZGF0YSwgKmNhcCwgZmFsc2UpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTU4Nyw2ICs1OTAsMTAgQEAgc3RhdGljIGludCBzYzI3eHhfZmd1X2dldF9wcm9wZXJ0eShzdHJ1Y3QgcG93ZXJfc3VwcGx5ICpwc3ksCiAJCXZhbC0+aW50dmFsID0gdmFsdWUgKiAxMDAwOwogCQlicmVhazsKIAorCWNhc2UgUE9XRVJfU1VQUExZX1BST1BfRU5FUkdZX0ZVTExfREVTSUdOOgorCQl2YWwtPmludHZhbCA9IGRhdGEtPnRvdGFsX2NhcCAqIDEwMDA7CisJCWJyZWFrOworCiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVJTlZBTDsKIAkJYnJlYWs7CkBAIC02MDQsMTggKzYxMSwyNiBAQCBzdGF0aWMgaW50IHNjMjd4eF9mZ3Vfc2V0X3Byb3BlcnR5KHN0cnVjdCBwb3dlcl9zdXBwbHkgKnBzeSwKIAlzdHJ1Y3Qgc2MyN3h4X2ZndV9kYXRhICpkYXRhID0gcG93ZXJfc3VwcGx5X2dldF9kcnZkYXRhKHBzeSk7CiAJaW50IHJldDsKIAotCWlmIChwc3AgIT0gUE9XRVJfU1VQUExZX1BST1BfQ0FQQUNJVFkpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJbXV0ZXhfbG9jaygmZGF0YS0+bG9jayk7CiAKLQlyZXQgPSBzYzI3eHhfZmd1X3NhdmVfbGFzdF9jYXAoZGF0YSwgdmFsLT5pbnR2YWwpOworCXN3aXRjaCAocHNwKSB7CisJY2FzZSBQT1dFUl9TVVBQTFlfUFJPUF9DQVBBQ0lUWToKKwkJcmV0ID0gc2MyN3h4X2ZndV9zYXZlX2xhc3RfY2FwKGRhdGEsIHZhbC0+aW50dmFsKTsKKwkJaWYgKHJldCA8IDApCisJCQlkZXZfZXJyKGRhdGEtPmRldiwgImZhaWxlZCB0byBzYXZlIGJhdHRlcnkgY2FwYWNpdHlcbiIpOworCQlicmVhazsKKworCWNhc2UgUE9XRVJfU1VQUExZX1BST1BfQ0FMSUJSQVRFOgorCQlzYzI3eHhfZmd1X2FkanVzdF9jYXAoZGF0YSwgdmFsLT5pbnR2YWwpOworCQlyZXQgPSAwOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXJldCA9IC1FSU5WQUw7CisJfQogCiAJbXV0ZXhfdW5sb2NrKCZkYXRhLT5sb2NrKTsKIAotCWlmIChyZXQgPCAwKQotCQlkZXZfZXJyKGRhdGEtPmRldiwgImZhaWxlZCB0byBzYXZlIGJhdHRlcnkgY2FwYWNpdHlcbiIpOwotCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNjI5LDcgKzY0NCw4IEBAIHN0YXRpYyB2b2lkIHNjMjd4eF9mZ3VfZXh0ZXJuYWxfcG93ZXJfY2hhbmdlZChzdHJ1Y3QgcG93ZXJfc3VwcGx5ICpwc3kpCiBzdGF0aWMgaW50IHNjMjd4eF9mZ3VfcHJvcGVydHlfaXNfd3JpdGVhYmxlKHN0cnVjdCBwb3dlcl9zdXBwbHkgKnBzeSwKIAkJCQkJICAgIGVudW0gcG93ZXJfc3VwcGx5X3Byb3BlcnR5IHBzcCkKIHsKLQlyZXR1cm4gcHNwID09IFBPV0VSX1NVUFBMWV9QUk9QX0NBUEFDSVRZOworCXJldHVybiBwc3AgPT0gUE9XRVJfU1VQUExZX1BST1BfQ0FQQUNJVFkgfHwKKwkJcHNwID09IFBPV0VSX1NVUFBMWV9QUk9QX0NBTElCUkFURTsKIH0KIAogc3RhdGljIGVudW0gcG93ZXJfc3VwcGx5X3Byb3BlcnR5IHNjMjd4eF9mZ3VfcHJvcHNbXSA9IHsKQEAgLTY0NCw2ICs2NjAsOCBAQCBzdGF0aWMgZW51bSBwb3dlcl9zdXBwbHlfcHJvcGVydHkgc2MyN3h4X2ZndV9wcm9wc1tdID0gewogCVBPV0VSX1NVUFBMWV9QUk9QX0NVUlJFTlRfTk9XLAogCVBPV0VSX1NVUFBMWV9QUk9QX0NVUlJFTlRfQVZHLAogCVBPV0VSX1NVUFBMWV9QUk9QX0NPTlNUQU5UX0NIQVJHRV9WT0xUQUdFLAorCVBPV0VSX1NVUFBMWV9QUk9QX0VORVJHWV9GVUxMX0RFU0lHTiwKKwlQT1dFUl9TVVBQTFlfUFJPUF9DQUxJQlJBVEUsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBvd2VyX3N1cHBseV9kZXNjIHNjMjd4eF9mZ3VfZGVzYyA9IHsKQEAgLTY1OSwxNCArNjc3LDEwOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBvd2VyX3N1cHBseV9kZXNjIHNjMjd4eF9mZ3VfZGVzYyA9IHsKIAogc3RhdGljIHZvaWQgc2MyN3h4X2ZndV9hZGp1c3RfY2FwKHN0cnVjdCBzYzI3eHhfZmd1X2RhdGEgKmRhdGEsIGludCBjYXApCiB7CisJaW50IHJldDsKKwogCWRhdGEtPmluaXRfY2FwID0gY2FwOwotCWRhdGEtPmluaXRfY2xiY250ID0gc2MyN3h4X2ZndV9jYXBfdG9fY2xiY250KGRhdGEsIGRhdGEtPmluaXRfY2FwKTsKKwlyZXQgPSBzYzI3eHhfZmd1X2dldF9jbGJjbnQoZGF0YSwgJmRhdGEtPmluaXRfY2xiY250KTsKKwlpZiAocmV0KQorCQlkZXZfZXJyKGRhdGEtPmRldiwgImZhaWxlZCB0byBnZXQgaW5pdCBjb3Vsb21iIGNvdW50ZXJcbiIpOworfQorCitzdGF0aWMgdm9pZCBzYzI3eHhfZmd1X2NhcGFjaXR5X2NhbGlicmF0aW9uKHN0cnVjdCBzYzI3eHhfZmd1X2RhdGEgKmRhdGEsCisJCQkJCSAgICBpbnQgY2FwLCBib29sIGludF9tb2RlKQoreworCWludCByZXQsIG9jdiwgY2hnX3N0cywgYWRjOworCisJcmV0ID0gc2MyN3h4X2ZndV9nZXRfdmJhdF9vY3YoZGF0YSwgJm9jdik7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGRhdGEtPmRldiwgImdldCBiYXR0ZXJ5IG9jdiBlcnJvci5cbiIpOworCQlyZXR1cm47CisJfQorCisJcmV0ID0gc2MyN3h4X2ZndV9nZXRfc3RhdHVzKGRhdGEsICZjaGdfc3RzKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGF0YS0+ZGV2LCAiZ2V0IGNoYXJnZXIgc3RhdHVzIGVycm9yLlxuIik7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIElmIHdlIGFyZSBpbiBjaGFyZ2luZyBtb2RlLCB0aGVuIHdlIGRvIG5vdCBuZWVkIHRvIGNhbGlicmF0ZSB0aGUKKwkgKiBsb3dlciBjYXBhY2l0eS4KKwkgKi8KKwlpZiAoY2hnX3N0cyA9PSBQT1dFUl9TVVBQTFlfU1RBVFVTX0NIQVJHSU5HKQorCQlyZXR1cm47CisKKwlpZiAoKG9jdiA+IGRhdGEtPmNhcF90YWJsZVswXS5vY3YgJiYgY2FwIDwgMTAwKSB8fCBjYXAgPiAxMDApIHsKKwkJLyoKKwkJICogSWYgY3VycmVudCBPQ1YgdmFsdWUgaXMgbGFyZ2VyIHRoYW4gdGhlIG1heCBPQ1YgdmFsdWUgaW4KKwkJICogT0NWIHRhYmxlLCBvciB0aGUgY3VycmVudCBjYXBhY2l0eSBpcyBsYXJnZXIgdGhhbiAxMDAsCisJCSAqIHdlIHNob3VsZCBmb3JjZSB0aGUgaW5pdGl0aWFsIGNhcGFjaXR5IHRvIDEwMC4KKwkJICovCisJCXNjMjd4eF9mZ3VfYWRqdXN0X2NhcChkYXRhLCAxMDApOworCX0gZWxzZSBpZiAob2N2IDw9IGRhdGEtPmNhcF90YWJsZVtkYXRhLT50YWJsZV9sZW4gLSAxXS5vY3YpIHsKKwkJLyoKKwkJICogSWYgY3VycmVudCBPQ1YgdmFsdWUgaXMgbGVhc3MgdGhhbiB0aGUgbWluaW11bSBPQ1YgdmFsdWUgaW4KKwkJICogT0NWIHRhYmxlLCB3ZSBzaG91bGQgZm9yY2UgdGhlIGluaXRpdGlhbCBjYXBhY2l0eSB0byAwLgorCQkgKi8KKwkJc2MyN3h4X2ZndV9hZGp1c3RfY2FwKGRhdGEsIDApOworCX0gZWxzZSBpZiAoKG9jdiA+IGRhdGEtPmNhcF90YWJsZVtkYXRhLT50YWJsZV9sZW4gLSAxXS5vY3YgJiYgY2FwIDw9IDApIHx8CisJCSAgIChvY3YgPiBkYXRhLT5taW5fdm9sdCAmJiBjYXAgPD0gZGF0YS0+YWxhcm1fY2FwKSkgeworCQkvKgorCQkgKiBJZiBjdXJyZW50IE9DViB2YWx1ZSBpcyBub3QgbWF0Y2hhYmxlIHdpdGggY3VycmVudCBjYXBhY2l0eSwKKwkJICogd2Ugc2hvdWxkIHJlLWNhbGN1bGF0ZSBjdXJyZW50IGNhcGFjaXR5IGJ5IGxvb2tpbmcgdXAgdGhlCisJCSAqIE9DViB0YWJsZS4KKwkJICovCisJCWludCBjdXJfY2FwID0gcG93ZXJfc3VwcGx5X29jdjJjYXBfc2ltcGxlKGRhdGEtPmNhcF90YWJsZSwKKwkJCQkJCQkgIGRhdGEtPnRhYmxlX2xlbiwgb2N2KTsKKworCQlzYzI3eHhfZmd1X2FkanVzdF9jYXAoZGF0YSwgY3VyX2NhcCk7CisJfSBlbHNlIGlmIChvY3YgPD0gZGF0YS0+bWluX3ZvbHQpIHsKKwkJLyoKKwkJICogSWYgY3VycmVudCBPQ1YgdmFsdWUgaXMgbGVzcyB0aGFuIHRoZSBsb3cgYWxhcm0gdm9sdGFnZSwgYnV0CisJCSAqIGN1cnJlbnQgY2FwYWNpdHkgaXMgbGFyZ2VyIHRoYW4gdGhlIGFsYXJtIGNhcGFjaXR5LCB3ZSBzaG91bGQKKwkJICogYWRqdXN0IHRoZSBpbml0aXRpYWwgY2FwYWNpdHkgdG8gYWxhcm0gY2FwYWNpdHkuCisJCSAqLworCQlpZiAoY2FwID4gZGF0YS0+YWxhcm1fY2FwKSB7CisJCQlzYzI3eHhfZmd1X2FkanVzdF9jYXAoZGF0YSwgZGF0YS0+YWxhcm1fY2FwKTsKKwkJfSBlbHNlIHsKKwkJCWludCBjdXJfY2FwOworCisJCQkvKgorCQkJICogSWYgY3VycmVudCBjYXBhY2l0eSBpcyBlcXVhbCB3aXRoIDAgb3IgbGVzcyB0aGFuIDAKKwkJCSAqIChzb21lIGVycm9yIG9jY3VycyksIHdlIHNob3VsZCBhZGp1c3QgaW5pdGl0aWFsCisJCQkgKiBjYXBhY2l0eSB0byB0aGUgY2FwYWNpdHkgY29ycmVzcG9uZGluZyB0byBjdXJyZW50IE9DVgorCQkJICogdmFsdWUuCisJCQkgKi8KKwkJCWN1cl9jYXAgPSBwb3dlcl9zdXBwbHlfb2N2MmNhcF9zaW1wbGUoZGF0YS0+Y2FwX3RhYmxlLAorCQkJCQkJCSAgICAgIGRhdGEtPnRhYmxlX2xlbiwKKwkJCQkJCQkgICAgICBvY3YpOworCQkJc2MyN3h4X2ZndV9hZGp1c3RfY2FwKGRhdGEsIGN1cl9jYXApOworCQl9CisKKwkJaWYgKCFpbnRfbW9kZSkKKwkJCXJldHVybjsKKworCQkvKgorCQkgKiBBZnRlciBhZGp1c3RpbmcgdGhlIGJhdHRlcnkgY2FwYWNpdHksIHdlIHNob3VsZCBzZXQgdGhlCisJCSAqIGxvd2VzdCBhbGFybSB2b2x0YWdlIGluc3RlYWQuCisJCSAqLworCQlkYXRhLT5taW5fdm9sdCA9IGRhdGEtPmNhcF90YWJsZVtkYXRhLT50YWJsZV9sZW4gLSAxXS5vY3Y7CisJCWRhdGEtPmFsYXJtX2NhcCA9IHBvd2VyX3N1cHBseV9vY3YyY2FwX3NpbXBsZShkYXRhLT5jYXBfdGFibGUsCisJCQkJCQkJICAgICAgZGF0YS0+dGFibGVfbGVuLAorCQkJCQkJCSAgICAgIGRhdGEtPm1pbl92b2x0KTsKKworCQlhZGMgPSBzYzI3eHhfZmd1X3ZvbHRhZ2VfdG9fYWRjKGRhdGEsIGRhdGEtPm1pbl92b2x0IC8gMTAwMCk7CisJCXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsCisJCQkJICAgZGF0YS0+YmFzZSArIFNDMjdYWF9GR1VfTE9XX09WRVJMT0FELAorCQkJCSAgIFNDMjdYWF9GR1VfTE9XX09WRVJMT0FEX01BU0ssIGFkYyk7CisJfQogfQogCiBzdGF0aWMgaXJxcmV0dXJuX3Qgc2MyN3h4X2ZndV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogewogCXN0cnVjdCBzYzI3eHhfZmd1X2RhdGEgKmRhdGEgPSBkZXZfaWQ7Ci0JaW50IHJldCwgY2FwLCBvY3YsIGFkYzsKKwlpbnQgcmV0LCBjYXA7CiAJdTMyIHN0YXR1czsKIAogCW11dGV4X2xvY2soJmRhdGEtPmxvY2spOwpAQCAtNjkyLDQ5ICs4MDQsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgc2MyN3h4X2ZndV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCi0JcmV0ID0gc2MyN3h4X2ZndV9nZXRfdmJhdF9vY3YoZGF0YSwgJm9jdik7Ci0JaWYgKHJldCkKLQkJZ290byBvdXQ7Ci0KLQkvKgotCSAqIElmIGN1cnJlbnQgT0NWIHZhbHVlIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSBPQ1YgdmFsdWUgaW4gT0NWIHRhYmxlLAotCSAqIHdoaWNoIG1lYW5zIG5vdyBiYXR0ZXJ5IGNhcGFjaXR5IGlzIDAlLCBhbmQgd2Ugc2hvdWxkIGFkanVzdCB0aGUKLQkgKiBpbml0aXRpYWwgY2FwYWNpdHkgdG8gMC4KLQkgKi8KLQlpZiAob2N2IDw9IGRhdGEtPmNhcF90YWJsZVtkYXRhLT50YWJsZV9sZW4gLSAxXS5vY3YpIHsKLQkJc2MyN3h4X2ZndV9hZGp1c3RfY2FwKGRhdGEsIDApOwotCX0gZWxzZSBpZiAob2N2IDw9IGRhdGEtPm1pbl92b2x0KSB7Ci0JCS8qCi0JCSAqIElmIGN1cnJlbnQgT0NWIHZhbHVlIGlzIGxlc3MgdGhhbiB0aGUgbG93IGFsYXJtIHZvbHRhZ2UsIGJ1dAotCQkgKiBjdXJyZW50IGNhcGFjaXR5IGlzIGxhcmdlciB0aGFuIHRoZSBhbGFybSBjYXBhY2l0eSwgd2Ugc2hvdWxkCi0JCSAqIGFkanVzdCB0aGUgaW5pdGl0aWFsIGNhcGFjaXR5IHRvIGFsYXJtIGNhcGFjaXR5LgotCQkgKi8KLQkJaWYgKGNhcCA+IGRhdGEtPmFsYXJtX2NhcCkgewotCQkJc2MyN3h4X2ZndV9hZGp1c3RfY2FwKGRhdGEsIGRhdGEtPmFsYXJtX2NhcCk7Ci0JCX0gZWxzZSBpZiAoY2FwIDw9IDApIHsKLQkJCWludCBjdXJfY2FwOwotCi0JCQkvKgotCQkJICogSWYgY3VycmVudCBjYXBhY2l0eSBpcyBlcXVhbCB3aXRoIDAgb3IgbGVzcyB0aGFuIDAKLQkJCSAqIChzb21lIGVycm9yIG9jY3VycyksIHdlIHNob3VsZCBhZGp1c3QgaW5pdGl0aWFsCi0JCQkgKiBjYXBhY2l0eSB0byB0aGUgY2FwYWNpdHkgY29ycmVzcG9uZGluZyB0byBjdXJyZW50IE9DVgotCQkJICogdmFsdWUuCi0JCQkgKi8KLQkJCWN1cl9jYXAgPSBwb3dlcl9zdXBwbHlfb2N2MmNhcF9zaW1wbGUoZGF0YS0+Y2FwX3RhYmxlLAotCQkJCQkJCSAgICAgIGRhdGEtPnRhYmxlX2xlbiwKLQkJCQkJCQkgICAgICBvY3YpOwotCQkJc2MyN3h4X2ZndV9hZGp1c3RfY2FwKGRhdGEsIGN1cl9jYXApOwotCQl9Ci0KLQkJLyoKLQkJICogQWZ0ZXIgYWRqdXN0aW5nIHRoZSBiYXR0ZXJ5IGNhcGFjaXR5LCB3ZSBzaG91bGQgc2V0IHRoZQotCQkgKiBsb3dlc3QgYWxhcm0gdm9sdGFnZSBpbnN0ZWFkLgotCQkgKi8KLQkJZGF0YS0+bWluX3ZvbHQgPSBkYXRhLT5jYXBfdGFibGVbZGF0YS0+dGFibGVfbGVuIC0gMV0ub2N2OwotCQlhZGMgPSBzYzI3eHhfZmd1X3ZvbHRhZ2VfdG9fYWRjKGRhdGEsIGRhdGEtPm1pbl92b2x0IC8gMTAwMCk7Ci0JCXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsIGRhdGEtPmJhc2UgKyBTQzI3WFhfRkdVX0xPV19PVkVSTE9BRCwKLQkJCQkgICBTQzI3WFhfRkdVX0xPV19PVkVSTE9BRF9NQVNLLCBhZGMpOwotCX0KKwlzYzI3eHhfZmd1X2NhcGFjaXR5X2NhbGlicmF0aW9uKGRhdGEsIGNhcCwgdHJ1ZSk7CiAKIG91dDoKIAltdXRleF91bmxvY2soJmRhdGEtPmxvY2spOwpAQCAtNzg1LDcgKzg1NSw3IEBAIHN0YXRpYyBpbnQgc2MyN3h4X2ZndV9jYXBfdG9fY2xiY250KHN0cnVjdCBzYzI3eHhfZmd1X2RhdGEgKmRhdGEsIGludCBjYXBhY2l0eSkKIAkgKiBDb252ZXJ0IGN1cnJlbnQgY2FwYWNpdHkgKG1BaCkgdG8gY291bG9tYiBjb3VudGVyIGFjY29yZGluZyB0byB0aGUKIAkgKiBmb3JtdWxhOiAxIG1BaCA9My42IGNvdWxvbWIuCiAJICovCi0JcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKGN1cl9jYXAgKiAzNiAqIGRhdGEtPmN1cl8xMDAwbWFfYWRjLCAxMCk7CisJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKGN1cl9jYXAgKiAzNiAqIGRhdGEtPmN1cl8xMDAwbWFfYWRjICogU0MyN1hYX0ZHVV9TQU1QTEVfSFosIDEwKTsKIH0KIAogc3RhdGljIGludCBzYzI3eHhfZmd1X2NhbGlicmF0aW9uKHN0cnVjdCBzYzI3eHhfZmd1X2RhdGEgKmRhdGEpCkBAIC04NTYsNiArOTI2LDggQEAgc3RhdGljIGludCBzYzI3eHhfZmd1X2h3X2luaXQoc3RydWN0IHNjMjd4eF9mZ3VfZGF0YSAqZGF0YSkKIAlkYXRhLT5hbGFybV9jYXAgPSBwb3dlcl9zdXBwbHlfb2N2MmNhcF9zaW1wbGUoZGF0YS0+Y2FwX3RhYmxlLAogCQkJCQkJICAgICAgZGF0YS0+dGFibGVfbGVuLAogCQkJCQkJICAgICAgZGF0YS0+bWluX3ZvbHQpOworCWlmICghZGF0YS0+YWxhcm1fY2FwKQorCQlkYXRhLT5hbGFybV9jYXAgKz0gMTsKIAogCXBvd2VyX3N1cHBseV9wdXRfYmF0dGVyeV9pbmZvKGRhdGEtPmJhdHRlcnksICZpbmZvKTsKIApAQCAtOTU3LDgxICsxMDI5LDgxIEBAIHN0YXRpYyBpbnQgc2MyN3h4X2ZndV9od19pbml0KHN0cnVjdCBzYzI3eHhfZmd1X2RhdGEgKmRhdGEpCiAKIHN0YXRpYyBpbnQgc2MyN3h4X2ZndV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewotCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBwZGV2LT5kZXYub2Zfbm9kZTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBkZXYtPm9mX25vZGU7CiAJc3RydWN0IHBvd2VyX3N1cHBseV9jb25maWcgZmd1X2NmZyA9IHsgfTsKIAlzdHJ1Y3Qgc2MyN3h4X2ZndV9kYXRhICpkYXRhOwogCWludCByZXQsIGlycTsKIAotCWRhdGEgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7CisJZGF0YSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwpOwogCWlmICghZGF0YSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlkYXRhLT5yZWdtYXAgPSBkZXZfZ2V0X3JlZ21hcChwZGV2LT5kZXYucGFyZW50LCBOVUxMKTsKKwlkYXRhLT5yZWdtYXAgPSBkZXZfZ2V0X3JlZ21hcChkZXYtPnBhcmVudCwgTlVMTCk7CiAJaWYgKCFkYXRhLT5yZWdtYXApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCByZWdtYXBcbiIpOworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgcmVnbWFwXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCi0JcmV0ID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKCZwZGV2LT5kZXYsICJyZWciLCAmZGF0YS0+YmFzZSk7CisJcmV0ID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwgInJlZyIsICZkYXRhLT5iYXNlKTsKIAlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgZmd1IGFkZHJlc3NcbiIpOworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgZmd1IGFkZHJlc3NcbiIpOwogCQlyZXR1cm4gcmV0OwogCX0KIAotCWRhdGEtPmNoYW5uZWwgPSBkZXZtX2lpb19jaGFubmVsX2dldCgmcGRldi0+ZGV2LCAiYmF0LXRlbXAiKTsKKwlkYXRhLT5jaGFubmVsID0gZGV2bV9paW9fY2hhbm5lbF9nZXQoZGV2LCAiYmF0LXRlbXAiKTsKIAlpZiAoSVNfRVJSKGRhdGEtPmNoYW5uZWwpKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgSUlPIGNoYW5uZWxcbiIpOworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgSUlPIGNoYW5uZWxcbiIpOwogCQlyZXR1cm4gUFRSX0VSUihkYXRhLT5jaGFubmVsKTsKIAl9CiAKLQlkYXRhLT5jaGFyZ2VfY2hhbiA9IGRldm1faWlvX2NoYW5uZWxfZ2V0KCZwZGV2LT5kZXYsICJjaGFyZ2Utdm9sIik7CisJZGF0YS0+Y2hhcmdlX2NoYW4gPSBkZXZtX2lpb19jaGFubmVsX2dldChkZXYsICJjaGFyZ2Utdm9sIik7CiAJaWYgKElTX0VSUihkYXRhLT5jaGFyZ2VfY2hhbikpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBjaGFyZ2UgSUlPIGNoYW5uZWxcbiIpOworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgY2hhcmdlIElJTyBjaGFubmVsXG4iKTsKIAkJcmV0dXJuIFBUUl9FUlIoZGF0YS0+Y2hhcmdlX2NoYW4pOwogCX0KIAotCWRhdGEtPmdwaW9kID0gZGV2bV9ncGlvZF9nZXQoJnBkZXYtPmRldiwgImJhdC1kZXRlY3QiLCBHUElPRF9JTik7CisJZGF0YS0+Z3Bpb2QgPSBkZXZtX2dwaW9kX2dldChkZXYsICJiYXQtZGV0ZWN0IiwgR1BJT0RfSU4pOwogCWlmIChJU19FUlIoZGF0YS0+Z3Bpb2QpKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgYmF0dGVyeSBkZXRlY3Rpb24gR1BJT1xuIik7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBiYXR0ZXJ5IGRldGVjdGlvbiBHUElPXG4iKTsKIAkJcmV0dXJuIFBUUl9FUlIoZGF0YS0+Z3Bpb2QpOwogCX0KIAogCXJldCA9IGdwaW9kX2dldF92YWx1ZV9jYW5zbGVlcChkYXRhLT5ncGlvZCk7CiAJaWYgKHJldCA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBncGlvIHN0YXRlXG4iKTsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IGdwaW8gc3RhdGVcbiIpOwogCQlyZXR1cm4gcmV0OwogCX0KIAogCWRhdGEtPmJhdF9wcmVzZW50ID0gISFyZXQ7CiAJbXV0ZXhfaW5pdCgmZGF0YS0+bG9jayk7Ci0JZGF0YS0+ZGV2ID0gJnBkZXYtPmRldjsKKwlkYXRhLT5kZXYgPSBkZXY7CiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGF0YSk7CiAKIAlmZ3VfY2ZnLmRydl9kYXRhID0gZGF0YTsKIAlmZ3VfY2ZnLm9mX25vZGUgPSBucDsKLQlkYXRhLT5iYXR0ZXJ5ID0gZGV2bV9wb3dlcl9zdXBwbHlfcmVnaXN0ZXIoJnBkZXYtPmRldiwgJnNjMjd4eF9mZ3VfZGVzYywKKwlkYXRhLT5iYXR0ZXJ5ID0gZGV2bV9wb3dlcl9zdXBwbHlfcmVnaXN0ZXIoZGV2LCAmc2MyN3h4X2ZndV9kZXNjLAogCQkJCQkJICAgJmZndV9jZmcpOwogCWlmIChJU19FUlIoZGF0YS0+YmF0dGVyeSkpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIHBvd2VyIHN1cHBseVxuIik7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIHBvd2VyIHN1cHBseVxuIik7CiAJCXJldHVybiBQVFJfRVJSKGRhdGEtPmJhdHRlcnkpOwogCX0KIAogCXJldCA9IHNjMjd4eF9mZ3VfaHdfaW5pdChkYXRhKTsKIAlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIGZndSBoYXJkd2FyZVxuIik7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgZmd1IGhhcmR3YXJlXG4iKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZXQgPSBkZXZtX2FkZF9hY3Rpb24oJnBkZXYtPmRldiwgc2MyN3h4X2ZndV9kaXNhYmxlLCBkYXRhKTsKKwlyZXQgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoZGV2LCBzYzI3eHhfZmd1X2Rpc2FibGUsIGRhdGEpOwogCWlmIChyZXQpIHsKLQkJc2MyN3h4X2ZndV9kaXNhYmxlKGRhdGEpOwotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gYWRkIGZndSBkaXNhYmxlIGFjdGlvblxuIik7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFkZCBmZ3UgZGlzYWJsZSBhY3Rpb25cbiIpOwogCQlyZXR1cm4gcmV0OwogCX0KIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CiAJaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gaXJxIHJlc291cmNlIHNwZWNpZmllZFxuIik7CisJCWRldl9lcnIoZGV2LCAibm8gaXJxIHJlc291cmNlIHNwZWNpZmllZFxuIik7CiAJCXJldHVybiBpcnE7CiAJfQogCkBAIC0xMDQ2LDE3ICsxMTE4LDE3IEBAIHN0YXRpYyBpbnQgc2MyN3h4X2ZndV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJaXJxID0gZ3Bpb2RfdG9faXJxKGRhdGEtPmdwaW9kKTsKIAlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gdHJhbnNsYXRlIEdQSU8gdG8gSVJRXG4iKTsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gdHJhbnNsYXRlIEdQSU8gdG8gSVJRXG4iKTsKIAkJcmV0dXJuIGlycTsKIAl9CiAKLQlyZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKCZwZGV2LT5kZXYsIGlycSwgTlVMTCwKKwlyZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKGRldiwgaXJxLCBOVUxMLAogCQkJCQlzYzI3eHhfZmd1X2JhdF9kZXRlY3Rpb24sCiAJCQkJCUlSUUZfT05FU0hPVCB8IElSUUZfVFJJR0dFUl9SSVNJTkcgfAogCQkJCQlJUlFGX1RSSUdHRVJfRkFMTElORywKIAkJCQkJcGRldi0+bmFtZSwgZGF0YSk7CiAJaWYgKHJldCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVxdWVzdCBJUlFcbiIpOworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZXF1ZXN0IElSUVxuIik7CiAJCXJldHVybiByZXQ7CiAJfQogCkBAIC0xMDkzLDcgKzExNjUsOCBAQCBzdGF0aWMgaW50IHNjMjd4eF9mZ3Vfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJICogSWYgd2UgYXJlIGNoYXJnaW5nLCB0aGVuIG5vIG5lZWQgdG8gZW5hYmxlIHRoZSBGR1UgaW50ZXJydXB0cyB0bwogCSAqIGFkanVzdCB0aGUgYmF0dGVyeSBjYXBhY2l0eS4KIAkgKi8KLQlpZiAoc3RhdHVzICE9IFBPV0VSX1NVUFBMWV9TVEFUVVNfTk9UX0NIQVJHSU5HKQorCWlmIChzdGF0dXMgIT0gUE9XRVJfU1VQUExZX1NUQVRVU19OT1RfQ0hBUkdJTkcgJiYKKwkgICAgc3RhdHVzICE9IFBPV0VSX1NVUFBMWV9TVEFUVVNfRElTQ0hBUkdJTkcpCiAJCXJldHVybiAwOwogCiAJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnJlZ21hcCwgZGF0YS0+YmFzZSArIFNDMjdYWF9GR1VfSU5UX0VOLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vS2NvbmZpZyBiL2RyaXZlcnMvcHdtL0tjb25maWcKaW5kZXggYTdlNTc1MS4uZTNhMjUxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vS2NvbmZpZworKysgYi9kcml2ZXJzL3B3bS9LY29uZmlnCkBAIC00NCw3ICs0NCw3IEBACiAKIGNvbmZpZyBQV01fQVRNRUwKIAl0cmlzdGF0ZSAiQXRtZWwgUFdNIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBBUkNIX0FUOTEKKwlkZXBlbmRzIG9uIEFSQ0hfQVQ5MSAmJiBPRgogCWhlbHAKIAkgIEdlbmVyaWMgUFdNIGZyYW1ld29yayBkcml2ZXIgZm9yIEF0bWVsIFNvQy4KIApAQCAtMTQ1LDcgKzE0NSw3IEBACiAKIGNvbmZpZyBQV01fQ1JPU19FQwogCXRyaXN0YXRlICJDaHJvbWVPUyBFQyBQV00gZHJpdmVyIgotCWRlcGVuZHMgb24gTUZEX0NST1NfRUMKKwlkZXBlbmRzIG9uIENST1NfRUMKIAloZWxwCiAJICBQV00gZHJpdmVyIGZvciBleHBvc2luZyBhIFBXTSBhdHRhY2hlZCB0byB0aGUgQ2hyb21lT1MgRW1iZWRkZWQKIAkgIENvbnRyb2xsZXIuCkBAIC00MjMsNiArNDIzLDE3IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBwd20tc3BlYXIuCiAKK2NvbmZpZyBQV01fU1BSRAorCXRyaXN0YXRlICJTcHJlYWR0cnVtIFBXTSBzdXBwb3J0IgorCWRlcGVuZHMgb24gQVJDSF9TUFJEIHx8IENPTVBJTEVfVEVTVAorCWRlcGVuZHMgb24gSEFTX0lPTUVNCisJaGVscAorCSAgR2VuZXJpYyBQV00gZnJhbWV3b3JrIGRyaXZlciBmb3IgdGhlIFBXTSBjb250cm9sbGVyIG9uCisJICBTcHJlYWR0cnVtIFNvQ3MuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIHB3bS1zcHJkLgorCiBjb25maWcgUFdNX1NUSQogCXRyaXN0YXRlICJTVGlINHh4IFBXTSBzdXBwb3J0IgogCWRlcGVuZHMgb24gQVJDSF9TVEkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL01ha2VmaWxlIGIvZHJpdmVycy9wd20vTWFrZWZpbGUKaW5kZXggNzZiNTU1Yi4uMjYzMjZhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9wd20vTWFrZWZpbGUKQEAgLTQxLDYgKzQxLDcgQEAKIG9iai0kKENPTkZJR19QV01fU0FNU1VORykJKz0gcHdtLXNhbXN1bmcubwogb2JqLSQoQ09ORklHX1BXTV9TSUZJVkUpCSs9IHB3bS1zaWZpdmUubwogb2JqLSQoQ09ORklHX1BXTV9TUEVBUikJCSs9IHB3bS1zcGVhci5vCitvYmotJChDT05GSUdfUFdNX1NQUkQpCQkrPSBwd20tc3ByZC5vCiBvYmotJChDT05GSUdfUFdNX1NUSSkJCSs9IHB3bS1zdGkubwogb2JqLSQoQ09ORklHX1BXTV9TVE0zMikJCSs9IHB3bS1zdG0zMi5vCiBvYmotJChDT05GSUdfUFdNX1NUTTMyX0xQKQkrPSBwd20tc3RtMzItbHAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vY29yZS5jIGIvZHJpdmVycy9wd20vY29yZS5jCmluZGV4IDhlZGZhYzEuLjZhZDUxYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL2NvcmUuYworKysgYi9kcml2ZXJzL3B3bS9jb3JlLmMKQEAgLTQ0OCwzNiArNDQ4LDQ0IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHB3bV9mcmVlKTsKIC8qKgogICogcHdtX2FwcGx5X3N0YXRlKCkgLSBhdG9taWNhbGx5IGFwcGx5IGEgbmV3IHN0YXRlIHRvIGEgUFdNIGRldmljZQogICogQHB3bTogUFdNIGRldmljZQotICogQHN0YXRlOiBuZXcgc3RhdGUgdG8gYXBwbHkuIFRoaXMgY2FuIGJlIGFkanVzdGVkIGJ5IHRoZSBQV00gZHJpdmVyCi0gKgkgICBpZiB0aGUgcmVxdWVzdGVkIGNvbmZpZyBpcyBub3QgYWNoaWV2YWJsZSwgZm9yIGV4YW1wbGUsCi0gKgkgICAtPmR1dHlfY3ljbGUgYW5kIC0+cGVyaW9kIG1pZ2h0IGJlIGFwcHJveGltYXRlZC4KKyAqIEBzdGF0ZTogbmV3IHN0YXRlIHRvIGFwcGx5CiAgKi8KLWludCBwd21fYXBwbHlfc3RhdGUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCitpbnQgcHdtX2FwcGx5X3N0YXRlKHN0cnVjdCBwd21fZGV2aWNlICpwd20sIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQogeworCXN0cnVjdCBwd21fY2hpcCAqY2hpcDsKIAlpbnQgZXJyOwogCiAJaWYgKCFwd20gfHwgIXN0YXRlIHx8ICFzdGF0ZS0+cGVyaW9kIHx8CiAJICAgIHN0YXRlLT5kdXR5X2N5Y2xlID4gc3RhdGUtPnBlcmlvZCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwljaGlwID0gcHdtLT5jaGlwOworCiAJaWYgKHN0YXRlLT5wZXJpb2QgPT0gcHdtLT5zdGF0ZS5wZXJpb2QgJiYKIAkgICAgc3RhdGUtPmR1dHlfY3ljbGUgPT0gcHdtLT5zdGF0ZS5kdXR5X2N5Y2xlICYmCiAJICAgIHN0YXRlLT5wb2xhcml0eSA9PSBwd20tPnN0YXRlLnBvbGFyaXR5ICYmCiAJICAgIHN0YXRlLT5lbmFibGVkID09IHB3bS0+c3RhdGUuZW5hYmxlZCkKIAkJcmV0dXJuIDA7CiAKLQlpZiAocHdtLT5jaGlwLT5vcHMtPmFwcGx5KSB7Ci0JCWVyciA9IHB3bS0+Y2hpcC0+b3BzLT5hcHBseShwd20tPmNoaXAsIHB3bSwgc3RhdGUpOworCWlmIChjaGlwLT5vcHMtPmFwcGx5KSB7CisJCWVyciA9IGNoaXAtPm9wcy0+YXBwbHkoY2hpcCwgcHdtLCBzdGF0ZSk7CiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOwogCi0JCXB3bS0+c3RhdGUgPSAqc3RhdGU7CisJCS8qCisJCSAqIC5hcHBseSBtaWdodCBoYXZlIHRvIHJvdW5kIHNvbWUgdmFsdWVzIGluICpzdGF0ZSwgaWYgcG9zc2libGUKKwkJICogcmVhZCB0aGUgYWN0dWFsbHkgaW1wbGVtZW50ZWQgdmFsdWUgYmFjay4KKwkJICovCisJCWlmIChjaGlwLT5vcHMtPmdldF9zdGF0ZSkKKwkJCWNoaXAtPm9wcy0+Z2V0X3N0YXRlKGNoaXAsIHB3bSwgJnB3bS0+c3RhdGUpOworCQllbHNlCisJCQlwd20tPnN0YXRlID0gKnN0YXRlOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIEZJWE1FOiByZXN0b3JlIHRoZSBpbml0aWFsIHN0YXRlIGluIGNhc2Ugb2YgZXJyb3IuCiAJCSAqLwogCQlpZiAoc3RhdGUtPnBvbGFyaXR5ICE9IHB3bS0+c3RhdGUucG9sYXJpdHkpIHsKLQkJCWlmICghcHdtLT5jaGlwLT5vcHMtPnNldF9wb2xhcml0eSkKKwkJCWlmICghY2hpcC0+b3BzLT5zZXRfcG9sYXJpdHkpCiAJCQkJcmV0dXJuIC1FTk9UU1VQUDsKIAogCQkJLyoKQEAgLTQ4NiwxMiArNDk0LDEyIEBAIGludCBwd21fYXBwbHlfc3RhdGUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiAJCQkgKiAtPmFwcGx5KCkuCiAJCQkgKi8KIAkJCWlmIChwd20tPnN0YXRlLmVuYWJsZWQpIHsKLQkJCQlwd20tPmNoaXAtPm9wcy0+ZGlzYWJsZShwd20tPmNoaXAsIHB3bSk7CisJCQkJY2hpcC0+b3BzLT5kaXNhYmxlKGNoaXAsIHB3bSk7CiAJCQkJcHdtLT5zdGF0ZS5lbmFibGVkID0gZmFsc2U7CiAJCQl9CiAKLQkJCWVyciA9IHB3bS0+Y2hpcC0+b3BzLT5zZXRfcG9sYXJpdHkocHdtLT5jaGlwLCBwd20sCi0JCQkJCQkJICAgc3RhdGUtPnBvbGFyaXR5KTsKKwkJCWVyciA9IGNoaXAtPm9wcy0+c2V0X3BvbGFyaXR5KGNoaXAsIHB3bSwKKwkJCQkJCSAgICAgIHN0YXRlLT5wb2xhcml0eSk7CiAJCQlpZiAoZXJyKQogCQkJCXJldHVybiBlcnI7CiAKQEAgLTUwMCw5ICs1MDgsOSBAQCBpbnQgcHdtX2FwcGx5X3N0YXRlKHN0cnVjdCBwd21fZGV2aWNlICpwd20sIHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQogCiAJCWlmIChzdGF0ZS0+cGVyaW9kICE9IHB3bS0+c3RhdGUucGVyaW9kIHx8CiAJCSAgICBzdGF0ZS0+ZHV0eV9jeWNsZSAhPSBwd20tPnN0YXRlLmR1dHlfY3ljbGUpIHsKLQkJCWVyciA9IHB3bS0+Y2hpcC0+b3BzLT5jb25maWcocHdtLT5jaGlwLCBwd20sCi0JCQkJCQkgICAgIHN0YXRlLT5kdXR5X2N5Y2xlLAotCQkJCQkJICAgICBzdGF0ZS0+cGVyaW9kKTsKKwkJCWVyciA9IGNoaXAtPm9wcy0+Y29uZmlnKHB3bS0+Y2hpcCwgcHdtLAorCQkJCQkJc3RhdGUtPmR1dHlfY3ljbGUsCisJCQkJCQlzdGF0ZS0+cGVyaW9kKTsKIAkJCWlmIChlcnIpCiAJCQkJcmV0dXJuIGVycjsKIApAQCAtNTEyLDExICs1MjAsMTEgQEAgaW50IHB3bV9hcHBseV9zdGF0ZShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKIAogCQlpZiAoc3RhdGUtPmVuYWJsZWQgIT0gcHdtLT5zdGF0ZS5lbmFibGVkKSB7CiAJCQlpZiAoc3RhdGUtPmVuYWJsZWQpIHsKLQkJCQllcnIgPSBwd20tPmNoaXAtPm9wcy0+ZW5hYmxlKHB3bS0+Y2hpcCwgcHdtKTsKKwkJCQllcnIgPSBjaGlwLT5vcHMtPmVuYWJsZShjaGlwLCBwd20pOwogCQkJCWlmIChlcnIpCiAJCQkJCXJldHVybiBlcnI7CiAJCQl9IGVsc2UgewotCQkJCXB3bS0+Y2hpcC0+b3BzLT5kaXNhYmxlKHB3bS0+Y2hpcCwgcHdtKTsKKwkJCQljaGlwLT5vcHMtPmRpc2FibGUoY2hpcCwgcHdtKTsKIAkJCX0KIAogCQkJcHdtLT5zdGF0ZS5lbmFibGVkID0gc3RhdGUtPmVuYWJsZWQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9wd20tYXRtZWwtaGxjZGMuYyBiL2RyaXZlcnMvcHdtL3B3bS1hdG1lbC1obGNkYy5jCmluZGV4IGQxM2E4M2YuLmRjYmMwNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1hdG1lbC1obGNkYy5jCisrKyBiL2RyaXZlcnMvcHdtL3B3bS1hdG1lbC1obGNkYy5jCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGF0bWVsX2hsY2RjX3B3bSAqdG9fYXRtZWxfaGxjZGNfcHdtKHN0cnVjdCBwd21fY2hpcCAqY2hpcCkKIH0KIAogc3RhdGljIGludCBhdG1lbF9obGNkY19wd21fYXBwbHkoc3RydWN0IHB3bV9jaGlwICpjLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJCSBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCQkgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGF0bWVsX2hsY2RjX3B3bSAqY2hpcCA9IHRvX2F0bWVsX2hsY2RjX3B3bShjKTsKIAlzdHJ1Y3QgYXRtZWxfaGxjZGMgKmhsY2RjID0gY2hpcC0+aGxjZGM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9wd20tYXRtZWwuYyBiL2RyaXZlcnMvcHdtL3B3bS1hdG1lbC5jCmluZGV4IGU1ZTFlYWYuLjliYTczMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1hdG1lbC5jCisrKyBiL2RyaXZlcnMvcHdtL3B3bS1hdG1lbC5jCkBAIC0yMDksNyArMjA5LDcgQEAgc3RhdGljIHZvaWQgYXRtZWxfcHdtX2Rpc2FibGUoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAogfQogCiBzdGF0aWMgaW50IGF0bWVsX3B3bV9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCi0JCQkgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBhdG1lbF9wd21fY2hpcCAqYXRtZWxfcHdtID0gdG9fYXRtZWxfcHdtX2NoaXAoY2hpcCk7CiAJc3RydWN0IHB3bV9zdGF0ZSBjc3RhdGU7CkBAIC0zMTgsMTkgKzMxOCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRtZWxfcHdtX2RhdGEgbWNocF9zYW05eDYwX3B3bV9kYXRhID0gewogCX0sCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBhdG1lbF9wd21fZGV2dHlwZXNbXSA9IHsKLQl7Ci0JCS5uYW1lID0gImF0OTFzYW05cmwtcHdtIiwKLQkJLmRyaXZlcl9kYXRhID0gKGtlcm5lbF91bG9uZ190KSZhdG1lbF9zYW05cmxfcHdtX2RhdGEsCi0JfSwgewotCQkubmFtZSA9ICJzYW1hNWQzLXB3bSIsCi0JCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdCkmYXRtZWxfc2FtYTVfcHdtX2RhdGEsCi0JfSwgewotCQkvKiBzZW50aW5lbCAqLwotCX0sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShwbGF0Zm9ybSwgYXRtZWxfcHdtX2RldnR5cGVzKTsKLQogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXRtZWxfcHdtX2R0X2lkc1tdID0gewogCXsKIAkJLmNvbXBhdGlibGUgPSAiYXRtZWwsYXQ5MXNhbTlybC1wd20iLApAQCAtMzUwLDM0ICszMzcsMjAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXRtZWxfcHdtX2R0X2lkc1tdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0bWVsX3B3bV9kdF9pZHMpOwogCi1zdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBhdG1lbF9wd21fZGF0YSAqCi1hdG1lbF9wd21fZ2V0X2RyaXZlcl9kYXRhKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0JY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCAqaWQ7Ci0KLQlpZiAocGRldi0+ZGV2Lm9mX25vZGUpCi0JCXJldHVybiBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7Ci0KLQlpZCA9IHBsYXRmb3JtX2dldF9kZXZpY2VfaWQocGRldik7Ci0KLQlyZXR1cm4gKHN0cnVjdCBhdG1lbF9wd21fZGF0YSAqKWlkLT5kcml2ZXJfZGF0YTsKLX0KLQogc3RhdGljIGludCBhdG1lbF9wd21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKLQljb25zdCBzdHJ1Y3QgYXRtZWxfcHdtX2RhdGEgKmRhdGE7CiAJc3RydWN0IGF0bWVsX3B3bV9jaGlwICphdG1lbF9wd207CiAJc3RydWN0IHJlc291cmNlICpyZXM7CiAJaW50IHJldDsKIAotCWRhdGEgPSBhdG1lbF9wd21fZ2V0X2RyaXZlcl9kYXRhKHBkZXYpOwotCWlmICghZGF0YSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KIAlhdG1lbF9wd20gPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCphdG1lbF9wd20pLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWF0bWVsX3B3bSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwltdXRleF9pbml0KCZhdG1lbF9wd20tPmlzcl9sb2NrKTsKKwlhdG1lbF9wd20tPmRhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7CisJYXRtZWxfcHdtLT51cGRhdGVkX3B3bXMgPSAwOworCiAJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKIAlhdG1lbF9wd20tPmJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKIAlpZiAoSVNfRVJSKGF0bWVsX3B3bS0+YmFzZSkpCkBAIC0zOTUsMTcgKzM2OCwxMCBAQCBzdGF0aWMgaW50IGF0bWVsX3B3bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJYXRtZWxfcHdtLT5jaGlwLmRldiA9ICZwZGV2LT5kZXY7CiAJYXRtZWxfcHdtLT5jaGlwLm9wcyA9ICZhdG1lbF9wd21fb3BzOwotCi0JaWYgKHBkZXYtPmRldi5vZl9ub2RlKSB7Ci0JCWF0bWVsX3B3bS0+Y2hpcC5vZl94bGF0ZSA9IG9mX3B3bV94bGF0ZV93aXRoX2ZsYWdzOwotCQlhdG1lbF9wd20tPmNoaXAub2ZfcHdtX25fY2VsbHMgPSAzOwotCX0KLQorCWF0bWVsX3B3bS0+Y2hpcC5vZl94bGF0ZSA9IG9mX3B3bV94bGF0ZV93aXRoX2ZsYWdzOworCWF0bWVsX3B3bS0+Y2hpcC5vZl9wd21fbl9jZWxscyA9IDM7CiAJYXRtZWxfcHdtLT5jaGlwLmJhc2UgPSAtMTsKIAlhdG1lbF9wd20tPmNoaXAubnB3bSA9IDQ7Ci0JYXRtZWxfcHdtLT5kYXRhID0gZGF0YTsKLQlhdG1lbF9wd20tPnVwZGF0ZWRfcHdtcyA9IDA7Ci0JbXV0ZXhfaW5pdCgmYXRtZWxfcHdtLT5pc3JfbG9jayk7CiAKIAlyZXQgPSBwd21jaGlwX2FkZCgmYXRtZWxfcHdtLT5jaGlwKTsKIAlpZiAocmV0IDwgMCkgewpAQCAtNDM3LDcgKzQwMyw2IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF0bWVsX3B3bV9kcml2ZXIgPSB7CiAJCS5uYW1lID0gImF0bWVsLXB3bSIsCiAJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0cihhdG1lbF9wd21fZHRfaWRzKSwKIAl9LAotCS5pZF90YWJsZSA9IGF0bWVsX3B3bV9kZXZ0eXBlcywKIAkucHJvYmUgPSBhdG1lbF9wd21fcHJvYmUsCiAJLnJlbW92ZSA9IGF0bWVsX3B3bV9yZW1vdmUsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLWJjbS1pcHJvYy5jIGIvZHJpdmVycy9wd20vcHdtLWJjbS1pcHJvYy5jCmluZGV4IGQ5NjFhODIuLjU2YzM4Y2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1iY20taXByb2MuYworKysgYi9kcml2ZXJzL3B3bS9wd20tYmNtLWlwcm9jLmMKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgdm9pZCBpcHJvY19wd21jX2dldF9zdGF0ZShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCiB9CiAKIHN0YXRpYyBpbnQgaXByb2NfcHdtY19hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCi0JCQkgICAgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCisJCQkgICAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJdW5zaWduZWQgbG9uZyBwcmVzY2FsZSA9IElQUk9DX1BXTV9QUkVTQ0FMRV9NSU47CiAJc3RydWN0IGlwcm9jX3B3bWMgKmlwID0gdG9faXByb2NfcHdtYyhjaGlwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1iY20yODM1LmMgYi9kcml2ZXJzL3B3bS9wd20tYmNtMjgzNS5jCmluZGV4IGY2ZmUwYjkuLjkxZTI0ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1iY20yODM1LmMKKysrIGIvZHJpdmVycy9wd20vcHdtLWJjbTI4MzUuYwpAQCAtMjEsNyArMjEsNyBAQAogI2RlZmluZSBQRVJJT0QoeCkJCSgoKHgpICogMHgxMCkgKyAweDEwKQogI2RlZmluZSBEVVRZKHgpCQkJKCgoeCkgKiAweDEwKSArIDB4MTQpCiAKLSNkZWZpbmUgTUlOX1BFUklPRAkJMTA4CQkvKiA5LjIgTUh6IG1heC4gUFdNIGNsb2NrICovCisjZGVmaW5lIFBFUklPRF9NSU4JCTB4MgogCiBzdHJ1Y3QgYmNtMjgzNV9wd20gewogCXN0cnVjdCBwd21fY2hpcCBjaGlwOwpAQCAtNjQsNiArNjQsNyBAQCBzdGF0aWMgaW50IGJjbTI4MzVfcHdtX2NvbmZpZyhzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCiAJc3RydWN0IGJjbTI4MzVfcHdtICpwYyA9IHRvX2JjbTI4MzVfcHdtKGNoaXApOwogCXVuc2lnbmVkIGxvbmcgcmF0ZSA9IGNsa19nZXRfcmF0ZShwYy0+Y2xrKTsKIAl1bnNpZ25lZCBsb25nIHNjYWxlcjsKKwl1MzIgcGVyaW9kOwogCiAJaWYgKCFyYXRlKSB7CiAJCWRldl9lcnIocGMtPmRldiwgImZhaWxlZCB0byBnZXQgY2xvY2sgcmF0ZVxuIik7CkBAIC03MSwxNyArNzIsMTQgQEAgc3RhdGljIGludCBiY20yODM1X3B3bV9jb25maWcoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAogCX0KIAogCXNjYWxlciA9IERJVl9ST1VORF9DTE9TRVNUKE5TRUNfUEVSX1NFQywgcmF0ZSk7CisJcGVyaW9kID0gRElWX1JPVU5EX0NMT1NFU1QocGVyaW9kX25zLCBzY2FsZXIpOwogCi0JaWYgKHBlcmlvZF9ucyA8PSBNSU5fUEVSSU9EKSB7Ci0JCWRldl9lcnIocGMtPmRldiwgInBlcmlvZCAlZCBub3Qgc3VwcG9ydGVkLCBtaW5pbXVtICVkXG4iLAotCQkJcGVyaW9kX25zLCBNSU5fUEVSSU9EKTsKKwlpZiAocGVyaW9kIDwgUEVSSU9EX01JTikKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJd3JpdGVsKERJVl9ST1VORF9DTE9TRVNUKGR1dHlfbnMsIHNjYWxlciksCiAJICAgICAgIHBjLT5iYXNlICsgRFVUWShwd20tPmh3cHdtKSk7Ci0Jd3JpdGVsKERJVl9ST1VORF9DTE9TRVNUKHBlcmlvZF9ucywgc2NhbGVyKSwKLQkgICAgICAgcGMtPmJhc2UgKyBQRVJJT0QocHdtLT5od3B3bSkpOworCXdyaXRlbChwZXJpb2QsIHBjLT5iYXNlICsgUEVSSU9EKHB3bS0+aHdwd20pKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTU1LDggKzE1MywxMSBAQCBzdGF0aWMgaW50IGJjbTI4MzVfcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlwYy0+Y2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsIE5VTEwpOwogCWlmIChJU19FUlIocGMtPmNsaykpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2xvY2sgbm90IGZvdW5kOiAlbGRcbiIsIFBUUl9FUlIocGMtPmNsaykpOwotCQlyZXR1cm4gUFRSX0VSUihwYy0+Y2xrKTsKKwkJcmV0ID0gUFRSX0VSUihwYy0+Y2xrKTsKKwkJaWYgKHJldCAhPSAtRVBST0JFX0RFRkVSKQorCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2xvY2sgbm90IGZvdW5kOiAlZFxuIiwgcmV0KTsKKworCQlyZXR1cm4gcmV0OwogCX0KIAogCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShwYy0+Y2xrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1jcm9zLWVjLmMgYi9kcml2ZXJzL3B3bS9wd20tY3Jvcy1lYy5jCmluZGV4IDk4ZjZhYzZjLi44OTQ5NzQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3B3bS9wd20tY3Jvcy1lYy5jCisrKyBiL2RyaXZlcnMvcHdtL3B3bS1jcm9zLWVjLmMKQEAgLTYsOCArNiw4IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wd20uaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBpbnQgY3Jvc19lY19wd21fZ2V0X2R1dHkoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplYywgdTggaW5kZXgpCiB9CiAKIHN0YXRpYyBpbnQgY3Jvc19lY19wd21fYXBwbHkoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJICAgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgICAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGNyb3NfZWNfcHdtX2RldmljZSAqZWNfcHdtID0gcHdtX3RvX2Nyb3NfZWNfcHdtKGNoaXApOwogCWludCBkdXR5X2N5Y2xlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLWZzbC1mdG0uYyBiL2RyaXZlcnMvcHdtL3B3bS1mc2wtZnRtLmMKaW5kZXggOWQzMWEyMS4uNTkyNzJhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vcHdtLWZzbC1mdG0uYworKysgYi9kcml2ZXJzL3B3bS9wd20tZnNsLWZ0bS5jCkBAIC0yMjcsNyArMjI3LDcgQEAgc3RhdGljIGJvb2wgZnNsX3B3bV9pc19vdGhlcl9wd21fZW5hYmxlZChzdHJ1Y3QgZnNsX3B3bV9jaGlwICpmcGMsCiAKIHN0YXRpYyBpbnQgZnNsX3B3bV9hcHBseV9jb25maWcoc3RydWN0IGZzbF9wd21fY2hpcCAqZnBjLAogCQkJCXN0cnVjdCBwd21fZGV2aWNlICpwd20sCi0JCQkJc3RydWN0IHB3bV9zdGF0ZSAqbmV3c3RhdGUpCisJCQkJY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqbmV3c3RhdGUpCiB7CiAJdW5zaWduZWQgaW50IGR1dHk7CiAJdTMyIHJlZ19wb2xhcml0eTsKQEAgLTI5MiwxNyArMjkyLDEzIEBAIHN0YXRpYyBpbnQgZnNsX3B3bV9hcHBseV9jb25maWcoc3RydWN0IGZzbF9wd21fY2hpcCAqZnBjLAogCiAJcmVnbWFwX3VwZGF0ZV9iaXRzKGZwYy0+cmVnbWFwLCBGVE1fUE9MLCBCSVQocHdtLT5od3B3bSksIHJlZ19wb2xhcml0eSk7CiAKLQluZXdzdGF0ZS0+cGVyaW9kID0gZnNsX3B3bV90aWNrc190b19ucyhmcGMsCi0JCQkJCSAgICAgICBmcGMtPnBlcmlvZC5tb2RfcGVyaW9kICsgMSk7Ci0JbmV3c3RhdGUtPmR1dHlfY3ljbGUgPSBmc2xfcHdtX3RpY2tzX3RvX25zKGZwYywgZHV0eSk7Ci0KIAlmdG1fc2V0X3dyaXRlX3Byb3RlY3Rpb24oZnBjKTsKIAogCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGZzbF9wd21fYXBwbHkoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJIHN0cnVjdCBwd21fc3RhdGUgKm5ld3N0YXRlKQorCQkJIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKm5ld3N0YXRlKQogewogCXN0cnVjdCBmc2xfcHdtX2NoaXAgKmZwYyA9IHRvX2ZzbF9jaGlwKGNoaXApOwogCXN0cnVjdCBwd21fc3RhdGUgKm9sZHN0YXRlID0gJnB3bS0+c3RhdGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9wd20taGlidnQuYyBiL2RyaXZlcnMvcHdtL3B3bS1oaWJ2dC5jCmluZGV4IDc1M2JkNTguLmFkMjA1ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1oaWJ2dC5jCisrKyBiL2RyaXZlcnMvcHdtL3B3bS1oaWJ2dC5jCkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIHZvaWQgaGlidnRfcHdtX2dldF9zdGF0ZShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCiB9CiAKIHN0YXRpYyBpbnQgaGlidnRfcHdtX2FwcGx5KHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKLQkJCQlzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBoaWJ2dF9wd21fY2hpcCAqaGlfcHdtX2NoaXAgPSB0b19oaWJ2dF9wd21fY2hpcChjaGlwKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLWlteC10cG0uYyBiL2RyaXZlcnMvcHdtL3B3bS1pbXgtdHBtLmMKaW5kZXggZTgzODVjMS4uOTE0NWY2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vcHdtLWlteC10cG0uYworKysgYi9kcml2ZXJzL3B3bS9wd20taW14LXRwbS5jCkBAIC04OSw3ICs4OSw3IEBAIHRvX2lteF90cG1fcHdtX2NoaXAoc3RydWN0IHB3bV9jaGlwICpjaGlwKQogc3RhdGljIGludCBwd21faW14X3RwbV9yb3VuZF9zdGF0ZShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsCiAJCQkJICAgc3RydWN0IGlteF90cG1fcHdtX3BhcmFtICpwLAogCQkJCSAgIHN0cnVjdCBwd21fc3RhdGUgKnJlYWxfc3RhdGUsCi0JCQkJICAgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCisJCQkJICAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGlteF90cG1fcHdtX2NoaXAgKnRwbSA9IHRvX2lteF90cG1fcHdtX2NoaXAoY2hpcCk7CiAJdTMyIHJhdGUsIHByZXNjYWxlLCBwZXJpb2RfY291bnQsIGNsb2NrX3VuaXQ7CkBAIC0yODksNyArMjg5LDcgQEAgc3RhdGljIGludCBwd21faW14X3RwbV9hcHBseV9odyhzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsCiAKIHN0YXRpYyBpbnQgcHdtX2lteF90cG1fYXBwbHkoc3RydWN0IHB3bV9jaGlwICpjaGlwLAogCQkJICAgICBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJICAgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgICAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGlteF90cG1fcHdtX2NoaXAgKnRwbSA9IHRvX2lteF90cG1fcHdtX2NoaXAoY2hpcCk7CiAJc3RydWN0IGlteF90cG1fcHdtX3BhcmFtIHBhcmFtOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLWlteDI3LmMgYi9kcml2ZXJzL3B3bS9wd20taW14MjcuYwppbmRleCA0MzRhMzUxLi5hZTExZDg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3B3bS9wd20taW14MjcuYworKysgYi9kcml2ZXJzL3B3bS9wd20taW14MjcuYwpAQCAtMyw2ICszLDEwIEBACiAgKiBzaW1wbGUgZHJpdmVyIGZvciBQV00gKFB1bHNlIFdpZHRoIE1vZHVsYXRvcikgY29udHJvbGxlcgogICoKICAqIERlcml2ZWQgZnJvbSBweGEgUFdNIGRyaXZlciBieSBlcmljIG1pYW8gPGVyaWMubWlhb0BtYXJ2ZWxsLmNvbT4KKyAqCisgKiBMaW1pdGF0aW9uczoKKyAqIC0gV2hlbiBkaXNhYmxlZCB0aGUgb3V0cHV0IGlzIGRyaXZlbiB0byAwIGluZGVwZW5kZW50IG9mIHRoZSBjb25maWd1cmVkCisgKiAgIHBvbGFyaXR5LgogICovCiAKICNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPgpAQCAtMjA1LDcgKzIwOSw3IEBAIHN0YXRpYyB2b2lkIHB3bV9pbXgyN193YWl0X2ZpZm9fc2xvdChzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsCiB9CiAKIHN0YXRpYyBpbnQgcHdtX2lteDI3X2FwcGx5KHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKLQkJCSAgIHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQorCQkJICAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJdW5zaWduZWQgbG9uZyBwZXJpb2RfY3ljbGVzLCBkdXR5X2N5Y2xlcywgcHJlc2NhbGU7CiAJc3RydWN0IHB3bV9pbXgyN19jaGlwICppbXggPSB0b19wd21faW14MjdfY2hpcChjaGlwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1qejQ3NDAuYyBiL2RyaXZlcnMvcHdtL3B3bS1qejQ3NDAuYwppbmRleCBmOTAxZThhLi45ZDc4Y2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3B3bS9wd20tano0NzQwLmMKKysrIGIvZHJpdmVycy9wd20vcHdtLWp6NDc0MC5jCkBAIC0yLDYgKzIsMTEgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAyMDEwLCBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4KICAqICBKWjQ3NDAgcGxhdGZvcm0gUFdNIHN1cHBvcnQKKyAqCisgKiBMaW1pdGF0aW9uczoKKyAqIC0gVGhlIC5hcHBseSBjYWxsYmFjayBkb2Vzbid0IGNvbXBsZXRlIHRoZSBjdXJyZW50bHkgcnVubmluZyBwZXJpb2QgYmVmb3JlCisgKiAgIHJlY29uZmlndXJpbmcgdGhlIGhhcmR3YXJlLgorICogLSBFYWNoIHBlcmlvZCBzdGFydHMgd2l0aCB0aGUgaW5hY3RpdmUgcGFydC4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CkBAIC04Myw3ICs4OCw3IEBAIHN0YXRpYyB2b2lkIGp6NDc0MF9wd21fZGlzYWJsZShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20pCiB9CiAKIHN0YXRpYyBpbnQgano0NzQwX3B3bV9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCi0JCQkgICAgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCisJCQkgICAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGp6NDc0MF9wd21fY2hpcCAqano0NzQwID0gdG9fano0NzQwKHB3bS0+Y2hpcCk7CiAJdW5zaWduZWQgbG9uZyBsb25nIHRtcDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1scHNzLmMgYi9kcml2ZXJzL3B3bS9wd20tbHBzcy5jCmluZGV4IDQwOThhNDYuLjc1YmJmZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1scHNzLmMKKysrIGIvZHJpdmVycy9wd20vcHdtLWxwc3MuYwpAQCAtMTIyLDcgKzEyMiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwd21fbHBzc19jb25kX2VuYWJsZShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCBib29sIGNvbmQpCiB9CiAKIHN0YXRpYyBpbnQgcHdtX2xwc3NfYXBwbHkoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IHB3bV9scHNzX2NoaXAgKmxwd20gPSB0b19scHdtKGNoaXApOwogCWludCByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9wd20tbWVkaWF0ZWsuYyBiL2RyaXZlcnMvcHdtL3B3bS1tZWRpYXRlay5jCmluZGV4IGViNjY3NGMuLmI5NGUwZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1tZWRpYXRlay5jCisrKyBiL2RyaXZlcnMvcHdtL3B3bS1tZWRpYXRlay5jCkBAIC0xLDEyICsxLDEwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKLSAqIE1lZGlhdGVrIFB1bHNlIFdpZHRoIE1vZHVsYXRvciBkcml2ZXIKKyAqIE1lZGlhVGVrIFB1bHNlIFdpZHRoIE1vZHVsYXRvciBkcml2ZXIKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSm9obiBDcmlzcGluIDxibG9naWNAb3BlbndydC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWmhpIE1hbyA8emhpLm1hb0BtZWRpYXRlay5jb20+CiAgKgotICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIHZlcnNpb24gMi4gVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKLSAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CkBAIC0zNSwxMjUgKzMzLDEwNyBAQAogCiAjZGVmaW5lIFBXTV9DTEtfRElWX01BWAkJNwogCi1lbnVtIHsKLQlNVEtfQ0xLX01BSU4gPSAwLAotCU1US19DTEtfVE9QLAotCU1US19DTEtfUFdNMSwKLQlNVEtfQ0xLX1BXTTIsCi0JTVRLX0NMS19QV00zLAotCU1US19DTEtfUFdNNCwKLQlNVEtfQ0xLX1BXTTUsCi0JTVRLX0NMS19QV002LAotCU1US19DTEtfUFdNNywKLQlNVEtfQ0xLX1BXTTgsCi0JTVRLX0NMS19NQVgsCi19OwotCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG10a19wd21fY2xrX25hbWVbTVRLX0NMS19NQVhdID0gewotCSJtYWluIiwgInRvcCIsICJwd20xIiwgInB3bTIiLCAicHdtMyIsICJwd200IiwgInB3bTUiLCAicHdtNiIsICJwd203IiwKLQkicHdtOCIKLX07Ci0KLXN0cnVjdCBtdGtfcHdtX3BsYXRmb3JtX2RhdGEgeworc3RydWN0IHB3bV9tZWRpYXRla19vZl9kYXRhIHsKIAl1bnNpZ25lZCBpbnQgbnVtX3B3bXM7CiAJYm9vbCBwd200NV9maXh1cDsKLQlib29sIGhhc19jbGtzOwogfTsKIAogLyoqCi0gKiBzdHJ1Y3QgbXRrX3B3bV9jaGlwIC0gc3RydWN0IHJlcHJlc2VudGluZyBQV00gY2hpcAorICogc3RydWN0IHB3bV9tZWRpYXRla19jaGlwIC0gc3RydWN0IHJlcHJlc2VudGluZyBQV00gY2hpcAogICogQGNoaXA6IGxpbnV4IFBXTSBjaGlwIHJlcHJlc2VudGF0aW9uCiAgKiBAcmVnczogYmFzZSBhZGRyZXNzIG9mIFBXTSBjaGlwCi0gKiBAY2xrczogbGlzdCBvZiBjbG9ja3MKKyAqIEBjbGtfdG9wOiB0aGUgdG9wIGNsb2NrIGdlbmVyYXRvcgorICogQGNsa19tYWluOiB0aGUgY2xvY2sgdXNlZCBieSBQV00gY29yZQorICogQGNsa19wd21zOiB0aGUgY2xvY2sgdXNlZCBieSBlYWNoIFBXTSBjaGFubmVsCisgKiBAY2xrX2ZyZXE6IHRoZSBmaXggY2xvY2sgZnJlcXVlbmN5IG9mIGxlZ2FjeSBNSVBTIFNvQwogICovCi1zdHJ1Y3QgbXRrX3B3bV9jaGlwIHsKK3N0cnVjdCBwd21fbWVkaWF0ZWtfY2hpcCB7CiAJc3RydWN0IHB3bV9jaGlwIGNoaXA7CiAJdm9pZCBfX2lvbWVtICpyZWdzOwotCXN0cnVjdCBjbGsgKmNsa3NbTVRLX0NMS19NQVhdOwotCWNvbnN0IHN0cnVjdCBtdGtfcHdtX3BsYXRmb3JtX2RhdGEgKnNvYzsKKwlzdHJ1Y3QgY2xrICpjbGtfdG9wOworCXN0cnVjdCBjbGsgKmNsa19tYWluOworCXN0cnVjdCBjbGsgKipjbGtfcHdtczsKKwljb25zdCBzdHJ1Y3QgcHdtX21lZGlhdGVrX29mX2RhdGEgKnNvYzsKIH07CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXRrX3B3bV9yZWdfb2Zmc2V0W10gPSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHB3bV9tZWRpYXRla19yZWdfb2Zmc2V0W10gPSB7CiAJMHgwMDEwLCAweDAwNTAsIDB4MDA5MCwgMHgwMGQwLCAweDAxMTAsIDB4MDE1MCwgMHgwMTkwLCAweDAyMjAKIH07CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IG10a19wd21fY2hpcCAqdG9fbXRrX3B3bV9jaGlwKHN0cnVjdCBwd21fY2hpcCAqY2hpcCkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHB3bV9tZWRpYXRla19jaGlwICoKK3RvX3B3bV9tZWRpYXRla19jaGlwKHN0cnVjdCBwd21fY2hpcCAqY2hpcCkKIHsKLQlyZXR1cm4gY29udGFpbmVyX29mKGNoaXAsIHN0cnVjdCBtdGtfcHdtX2NoaXAsIGNoaXApOworCXJldHVybiBjb250YWluZXJfb2YoY2hpcCwgc3RydWN0IHB3bV9tZWRpYXRla19jaGlwLCBjaGlwKTsKIH0KIAotc3RhdGljIGludCBtdGtfcHdtX2Nsa19lbmFibGUoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQorc3RhdGljIGludCBwd21fbWVkaWF0ZWtfY2xrX2VuYWJsZShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsCisJCQkJICAgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKIHsKLQlzdHJ1Y3QgbXRrX3B3bV9jaGlwICpwYyA9IHRvX210a19wd21fY2hpcChjaGlwKTsKKwlzdHJ1Y3QgcHdtX21lZGlhdGVrX2NoaXAgKnBjID0gdG9fcHdtX21lZGlhdGVrX2NoaXAoY2hpcCk7CiAJaW50IHJldDsKIAotCWlmICghcGMtPnNvYy0+aGFzX2Nsa3MpCi0JCXJldHVybiAwOwotCi0JcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHBjLT5jbGtzW01US19DTEtfVE9QXSk7CisJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHBjLT5jbGtfdG9wKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShwYy0+Y2xrc1tNVEtfQ0xLX01BSU5dKTsKKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUocGMtPmNsa19tYWluKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBkaXNhYmxlX2Nsa190b3A7CiAKLQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUocGMtPmNsa3NbTVRLX0NMS19QV00xICsgcHdtLT5od3B3bV0pOworCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShwYy0+Y2xrX3B3bXNbcHdtLT5od3B3bV0pOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIGRpc2FibGVfY2xrX21haW47CiAKIAlyZXR1cm4gMDsKIAogZGlzYWJsZV9jbGtfbWFpbjoKLQljbGtfZGlzYWJsZV91bnByZXBhcmUocGMtPmNsa3NbTVRLX0NMS19NQUlOXSk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjLT5jbGtfbWFpbik7CiBkaXNhYmxlX2Nsa190b3A6Ci0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjLT5jbGtzW01US19DTEtfVE9QXSk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjLT5jbGtfdG9wKTsKIAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIG10a19wd21fY2xrX2Rpc2FibGUoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQorc3RhdGljIHZvaWQgcHdtX21lZGlhdGVrX2Nsa19kaXNhYmxlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwKKwkJCQkgICAgIHN0cnVjdCBwd21fZGV2aWNlICpwd20pCiB7Ci0Jc3RydWN0IG10a19wd21fY2hpcCAqcGMgPSB0b19tdGtfcHdtX2NoaXAoY2hpcCk7CisJc3RydWN0IHB3bV9tZWRpYXRla19jaGlwICpwYyA9IHRvX3B3bV9tZWRpYXRla19jaGlwKGNoaXApOwogCi0JaWYgKCFwYy0+c29jLT5oYXNfY2xrcykKLQkJcmV0dXJuOwotCi0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjLT5jbGtzW01US19DTEtfUFdNMSArIHB3bS0+aHdwd21dKTsKLQljbGtfZGlzYWJsZV91bnByZXBhcmUocGMtPmNsa3NbTVRLX0NMS19NQUlOXSk7Ci0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjLT5jbGtzW01US19DTEtfVE9QXSk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjLT5jbGtfcHdtc1twd20tPmh3cHdtXSk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjLT5jbGtfbWFpbik7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjLT5jbGtfdG9wKTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgbXRrX3B3bV9yZWFkbChzdHJ1Y3QgbXRrX3B3bV9jaGlwICpjaGlwLCB1bnNpZ25lZCBpbnQgbnVtLAotCQkJCXVuc2lnbmVkIGludCBvZmZzZXQpCitzdGF0aWMgaW5saW5lIHUzMiBwd21fbWVkaWF0ZWtfcmVhZGwoc3RydWN0IHB3bV9tZWRpYXRla19jaGlwICpjaGlwLAorCQkJCSAgICAgdW5zaWduZWQgaW50IG51bSwgdW5zaWduZWQgaW50IG9mZnNldCkKIHsKLQlyZXR1cm4gcmVhZGwoY2hpcC0+cmVncyArIG10a19wd21fcmVnX29mZnNldFtudW1dICsgb2Zmc2V0KTsKKwlyZXR1cm4gcmVhZGwoY2hpcC0+cmVncyArIHB3bV9tZWRpYXRla19yZWdfb2Zmc2V0W251bV0gKyBvZmZzZXQpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgbXRrX3B3bV93cml0ZWwoc3RydWN0IG10a19wd21fY2hpcCAqY2hpcCwKLQkJCQkgIHVuc2lnbmVkIGludCBudW0sIHVuc2lnbmVkIGludCBvZmZzZXQsCi0JCQkJICB1MzIgdmFsdWUpCitzdGF0aWMgaW5saW5lIHZvaWQgcHdtX21lZGlhdGVrX3dyaXRlbChzdHJ1Y3QgcHdtX21lZGlhdGVrX2NoaXAgKmNoaXAsCisJCQkJICAgICAgIHVuc2lnbmVkIGludCBudW0sIHVuc2lnbmVkIGludCBvZmZzZXQsCisJCQkJICAgICAgIHUzMiB2YWx1ZSkKIHsKLQl3cml0ZWwodmFsdWUsIGNoaXAtPnJlZ3MgKyBtdGtfcHdtX3JlZ19vZmZzZXRbbnVtXSArIG9mZnNldCk7CisJd3JpdGVsKHZhbHVlLCBjaGlwLT5yZWdzICsgcHdtX21lZGlhdGVrX3JlZ19vZmZzZXRbbnVtXSArIG9mZnNldCk7CiB9CiAKLXN0YXRpYyBpbnQgbXRrX3B3bV9jb25maWcoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJICBpbnQgZHV0eV9ucywgaW50IHBlcmlvZF9ucykKK3N0YXRpYyBpbnQgcHdtX21lZGlhdGVrX2NvbmZpZyhzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCisJCQkgICAgICAgaW50IGR1dHlfbnMsIGludCBwZXJpb2RfbnMpCiB7Ci0Jc3RydWN0IG10a19wd21fY2hpcCAqcGMgPSB0b19tdGtfcHdtX2NoaXAoY2hpcCk7Ci0Jc3RydWN0IGNsayAqY2xrID0gcGMtPmNsa3NbTVRLX0NMS19QV00xICsgcHdtLT5od3B3bV07CisJc3RydWN0IHB3bV9tZWRpYXRla19jaGlwICpwYyA9IHRvX3B3bV9tZWRpYXRla19jaGlwKGNoaXApOwogCXUzMiBjbGtkaXYgPSAwLCBjbnRfcGVyaW9kLCBjbnRfZHV0eSwgcmVnX3dpZHRoID0gUFdNRFdJRFRILAogCSAgICByZWdfdGhyZXMgPSBQV01USFJFUzsKIAl1NjQgcmVzb2x1dGlvbjsKIAlpbnQgcmV0OwogCi0JcmV0ID0gbXRrX3B3bV9jbGtfZW5hYmxlKGNoaXAsIHB3bSk7CisJcmV0ID0gcHdtX21lZGlhdGVrX2Nsa19lbmFibGUoY2hpcCwgcHdtKTsKKwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogVXNpbmcgcmVzb2x1dGlvbiBpbiBwaWNvc2Vjb25kIGdldHMgYWNjdXJhY3kgaGlnaGVyICovCiAJcmVzb2x1dGlvbiA9ICh1NjQpTlNFQ19QRVJfU0VDICogMTAwMDsKLQlkb19kaXYocmVzb2x1dGlvbiwgY2xrX2dldF9yYXRlKGNsaykpOworCWRvX2RpdihyZXNvbHV0aW9uLCBjbGtfZ2V0X3JhdGUocGMtPmNsa19wd21zW3B3bS0+aHdwd21dKSk7CiAKIAljbnRfcGVyaW9kID0gRElWX1JPVU5EX0NMT1NFU1RfVUxMKCh1NjQpcGVyaW9kX25zICogMTAwMCwgcmVzb2x1dGlvbik7CiAJd2hpbGUgKGNudF9wZXJpb2QgPiA4MTkxKSB7CkBAIC0xNjQsNyArMTQ0LDcgQEAgc3RhdGljIGludCBtdGtfcHdtX2NvbmZpZyhzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCiAJfQogCiAJaWYgKGNsa2RpdiA+IFBXTV9DTEtfRElWX01BWCkgewotCQltdGtfcHdtX2Nsa19kaXNhYmxlKGNoaXAsIHB3bSk7CisJCXB3bV9tZWRpYXRla19jbGtfZGlzYWJsZShjaGlwLCBwd20pOwogCQlkZXZfZXJyKGNoaXAtPmRldiwgInBlcmlvZCAlZCBub3Qgc3VwcG9ydGVkXG4iLCBwZXJpb2RfbnMpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xNzksMjIgKzE1OSwyMiBAQCBzdGF0aWMgaW50IG10a19wd21fY29uZmlnKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKIAl9CiAKIAljbnRfZHV0eSA9IERJVl9ST1VORF9DTE9TRVNUX1VMTCgodTY0KWR1dHlfbnMgKiAxMDAwLCByZXNvbHV0aW9uKTsKLQltdGtfcHdtX3dyaXRlbChwYywgcHdtLT5od3B3bSwgUFdNQ09OLCBCSVQoMTUpIHwgY2xrZGl2KTsKLQltdGtfcHdtX3dyaXRlbChwYywgcHdtLT5od3B3bSwgcmVnX3dpZHRoLCBjbnRfcGVyaW9kKTsKLQltdGtfcHdtX3dyaXRlbChwYywgcHdtLT5od3B3bSwgcmVnX3RocmVzLCBjbnRfZHV0eSk7CisJcHdtX21lZGlhdGVrX3dyaXRlbChwYywgcHdtLT5od3B3bSwgUFdNQ09OLCBCSVQoMTUpIHwgY2xrZGl2KTsKKwlwd21fbWVkaWF0ZWtfd3JpdGVsKHBjLCBwd20tPmh3cHdtLCByZWdfd2lkdGgsIGNudF9wZXJpb2QpOworCXB3bV9tZWRpYXRla193cml0ZWwocGMsIHB3bS0+aHdwd20sIHJlZ190aHJlcywgY250X2R1dHkpOwogCi0JbXRrX3B3bV9jbGtfZGlzYWJsZShjaGlwLCBwd20pOworCXB3bV9tZWRpYXRla19jbGtfZGlzYWJsZShjaGlwLCBwd20pOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbXRrX3B3bV9lbmFibGUoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQorc3RhdGljIGludCBwd21fbWVkaWF0ZWtfZW5hYmxlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKIHsKLQlzdHJ1Y3QgbXRrX3B3bV9jaGlwICpwYyA9IHRvX210a19wd21fY2hpcChjaGlwKTsKKwlzdHJ1Y3QgcHdtX21lZGlhdGVrX2NoaXAgKnBjID0gdG9fcHdtX21lZGlhdGVrX2NoaXAoY2hpcCk7CiAJdTMyIHZhbHVlOwogCWludCByZXQ7CiAKLQlyZXQgPSBtdGtfcHdtX2Nsa19lbmFibGUoY2hpcCwgcHdtKTsKKwlyZXQgPSBwd21fbWVkaWF0ZWtfY2xrX2VuYWJsZShjaGlwLCBwd20pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCkBAIC0yMDUsMjkgKzE4NSwyOCBAQCBzdGF0aWMgaW50IG10a19wd21fZW5hYmxlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgbXRrX3B3bV9kaXNhYmxlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3N0YXRpYyB2b2lkIHB3bV9tZWRpYXRla19kaXNhYmxlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKIHsKLQlzdHJ1Y3QgbXRrX3B3bV9jaGlwICpwYyA9IHRvX210a19wd21fY2hpcChjaGlwKTsKKwlzdHJ1Y3QgcHdtX21lZGlhdGVrX2NoaXAgKnBjID0gdG9fcHdtX21lZGlhdGVrX2NoaXAoY2hpcCk7CiAJdTMyIHZhbHVlOwogCiAJdmFsdWUgPSByZWFkbChwYy0+cmVncyk7CiAJdmFsdWUgJj0gfkJJVChwd20tPmh3cHdtKTsKIAl3cml0ZWwodmFsdWUsIHBjLT5yZWdzKTsKIAotCW10a19wd21fY2xrX2Rpc2FibGUoY2hpcCwgcHdtKTsKKwlwd21fbWVkaWF0ZWtfY2xrX2Rpc2FibGUoY2hpcCwgcHdtKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBwd21fb3BzIG10a19wd21fb3BzID0gewotCS5jb25maWcgPSBtdGtfcHdtX2NvbmZpZywKLQkuZW5hYmxlID0gbXRrX3B3bV9lbmFibGUsCi0JLmRpc2FibGUgPSBtdGtfcHdtX2Rpc2FibGUsCitzdGF0aWMgY29uc3Qgc3RydWN0IHB3bV9vcHMgcHdtX21lZGlhdGVrX29wcyA9IHsKKwkuY29uZmlnID0gcHdtX21lZGlhdGVrX2NvbmZpZywKKwkuZW5hYmxlID0gcHdtX21lZGlhdGVrX2VuYWJsZSwKKwkuZGlzYWJsZSA9IHB3bV9tZWRpYXRla19kaXNhYmxlLAogCS5vd25lciA9IFRISVNfTU9EVUxFLAogfTsKIAotc3RhdGljIGludCBtdGtfcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgaW50IHB3bV9tZWRpYXRla19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewotCWNvbnN0IHN0cnVjdCBtdGtfcHdtX3BsYXRmb3JtX2RhdGEgKmRhdGE7Ci0Jc3RydWN0IG10a19wd21fY2hpcCAqcGM7CisJc3RydWN0IHB3bV9tZWRpYXRla19jaGlwICpwYzsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAl1bnNpZ25lZCBpbnQgaTsKIAlpbnQgcmV0OwpAQCAtMjM2LDMxICsyMTUsNTEgQEAgc3RhdGljIGludCBtdGtfcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKCFwYykKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlkYXRhID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOwotCWlmIChkYXRhID09IE5VTEwpCi0JCXJldHVybiAtRUlOVkFMOwotCXBjLT5zb2MgPSBkYXRhOworCXBjLT5zb2MgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7CiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwogCXBjLT5yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CiAJaWYgKElTX0VSUihwYy0+cmVncykpCiAJCXJldHVybiBQVFJfRVJSKHBjLT5yZWdzKTsKIAotCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5udW1fcHdtcyArIDIgJiYgcGMtPnNvYy0+aGFzX2Nsa3M7IGkrKykgewotCQlwYy0+Y2xrc1tpXSA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCBtdGtfcHdtX2Nsa19uYW1lW2ldKTsKLQkJaWYgKElTX0VSUihwYy0+Y2xrc1tpXSkpIHsKKwlwYy0+Y2xrX3B3bXMgPSBkZXZtX2tjYWxsb2MoJnBkZXYtPmRldiwgcGMtPnNvYy0+bnVtX3B3bXMsCisJCQkJICAgIHNpemVvZigqcGMtPmNsa19wd21zKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwYy0+Y2xrX3B3bXMpCisJCXJldHVybiAtRU5PTUVNOworCisJcGMtPmNsa190b3AgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgInRvcCIpOworCWlmIChJU19FUlIocGMtPmNsa190b3ApKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImNsb2NrOiB0b3AgZmFpbDogJWxkXG4iLAorCQkJUFRSX0VSUihwYy0+Y2xrX3RvcCkpOworCQlyZXR1cm4gUFRSX0VSUihwYy0+Y2xrX3RvcCk7CisJfQorCisJcGMtPmNsa19tYWluID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJtYWluIik7CisJaWYgKElTX0VSUihwYy0+Y2xrX21haW4pKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImNsb2NrOiBtYWluIGZhaWw6ICVsZFxuIiwKKwkJCVBUUl9FUlIocGMtPmNsa19tYWluKSk7CisJCXJldHVybiBQVFJfRVJSKHBjLT5jbGtfbWFpbik7CisJfQorCisJZm9yIChpID0gMDsgaSA8IHBjLT5zb2MtPm51bV9wd21zOyBpKyspIHsKKwkJY2hhciBuYW1lWzhdOworCisJCXNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgInB3bSVkIiwgaSArIDEpOworCisJCXBjLT5jbGtfcHdtc1tpXSA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCBuYW1lKTsKKwkJaWYgKElTX0VSUihwYy0+Y2xrX3B3bXNbaV0pKSB7CiAJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJjbG9jazogJXMgZmFpbDogJWxkXG4iLAotCQkJCW10a19wd21fY2xrX25hbWVbaV0sIFBUUl9FUlIocGMtPmNsa3NbaV0pKTsKLQkJCXJldHVybiBQVFJfRVJSKHBjLT5jbGtzW2ldKTsKKwkJCQluYW1lLCBQVFJfRVJSKHBjLT5jbGtfcHdtc1tpXSkpOworCQkJcmV0dXJuIFBUUl9FUlIocGMtPmNsa19wd21zW2ldKTsKIAkJfQogCX0KIAogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHBjKTsKIAogCXBjLT5jaGlwLmRldiA9ICZwZGV2LT5kZXY7Ci0JcGMtPmNoaXAub3BzID0gJm10a19wd21fb3BzOworCXBjLT5jaGlwLm9wcyA9ICZwd21fbWVkaWF0ZWtfb3BzOwogCXBjLT5jaGlwLmJhc2UgPSAtMTsKLQlwYy0+Y2hpcC5ucHdtID0gZGF0YS0+bnVtX3B3bXM7CisJcGMtPmNoaXAubnB3bSA9IHBjLT5zb2MtPm51bV9wd21zOwogCiAJcmV0ID0gcHdtY2hpcF9hZGQoJnBjLT5jaGlwKTsKIAlpZiAocmV0IDwgMCkgewpAQCAtMjcxLDU1ICsyNzAsNjMgQEAgc3RhdGljIGludCBtdGtfcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbXRrX3B3bV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgcHdtX21lZGlhdGVrX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewotCXN0cnVjdCBtdGtfcHdtX2NoaXAgKnBjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHB3bV9tZWRpYXRla19jaGlwICpwYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCiAJcmV0dXJuIHB3bWNoaXBfcmVtb3ZlKCZwYy0+Y2hpcCk7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3B3bV9wbGF0Zm9ybV9kYXRhIG10MjcxMl9wd21fZGF0YSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdtX21lZGlhdGVrX29mX2RhdGEgbXQyNzEyX3B3bV9kYXRhID0gewogCS5udW1fcHdtcyA9IDgsCiAJLnB3bTQ1X2ZpeHVwID0gZmFsc2UsCi0JLmhhc19jbGtzID0gdHJ1ZSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3B3bV9wbGF0Zm9ybV9kYXRhIG10NzYyMl9wd21fZGF0YSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdtX21lZGlhdGVrX29mX2RhdGEgbXQ3NjIyX3B3bV9kYXRhID0gewogCS5udW1fcHdtcyA9IDYsCiAJLnB3bTQ1X2ZpeHVwID0gZmFsc2UsCi0JLmhhc19jbGtzID0gdHJ1ZSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3B3bV9wbGF0Zm9ybV9kYXRhIG10NzYyM19wd21fZGF0YSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdtX21lZGlhdGVrX29mX2RhdGEgbXQ3NjIzX3B3bV9kYXRhID0gewogCS5udW1fcHdtcyA9IDUsCiAJLnB3bTQ1X2ZpeHVwID0gdHJ1ZSwKLQkuaGFzX2Nsa3MgPSB0cnVlLAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfcHdtX3BsYXRmb3JtX2RhdGEgbXQ3NjI4X3B3bV9kYXRhID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBwd21fbWVkaWF0ZWtfb2ZfZGF0YSBtdDc2MjhfcHdtX2RhdGEgPSB7CiAJLm51bV9wd21zID0gNCwKIAkucHdtNDVfZml4dXAgPSB0cnVlLAotCS5oYXNfY2xrcyA9IGZhbHNlLAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX3B3bV9vZl9tYXRjaFtdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBwd21fbWVkaWF0ZWtfb2ZfZGF0YSBtdDc2MjlfcHdtX2RhdGEgPSB7CisJLm51bV9wd21zID0gMSwKKwkucHdtNDVfZml4dXAgPSBmYWxzZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdtX21lZGlhdGVrX29mX2RhdGEgbXQ4NTE2X3B3bV9kYXRhID0geworCS5udW1fcHdtcyA9IDUsCisJLnB3bTQ1X2ZpeHVwID0gZmFsc2UsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBwd21fbWVkaWF0ZWtfb2ZfbWF0Y2hbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10MjcxMi1wd20iLCAuZGF0YSA9ICZtdDI3MTJfcHdtX2RhdGEgfSwKIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzYyMi1wd20iLCAuZGF0YSA9ICZtdDc2MjJfcHdtX2RhdGEgfSwKIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzYyMy1wd20iLCAuZGF0YSA9ICZtdDc2MjNfcHdtX2RhdGEgfSwKIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzYyOC1wd20iLCAuZGF0YSA9ICZtdDc2MjhfcHdtX2RhdGEgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzYyOS1wd20iLCAuZGF0YSA9ICZtdDc2MjlfcHdtX2RhdGEgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODUxNi1wd20iLCAuZGF0YSA9ICZtdDg1MTZfcHdtX2RhdGEgfSwKIAl7IH0sCiB9OwotTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXRrX3B3bV9vZl9tYXRjaCk7CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBwd21fbWVkaWF0ZWtfb2ZfbWF0Y2gpOwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfcHdtX2RyaXZlciA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHB3bV9tZWRpYXRla19kcml2ZXIgPSB7CiAJLmRyaXZlciA9IHsKLQkJLm5hbWUgPSAibXRrLXB3bSIsCi0JCS5vZl9tYXRjaF90YWJsZSA9IG10a19wd21fb2ZfbWF0Y2gsCisJCS5uYW1lID0gInB3bS1tZWRpYXRlayIsCisJCS5vZl9tYXRjaF90YWJsZSA9IHB3bV9tZWRpYXRla19vZl9tYXRjaCwKIAl9LAotCS5wcm9iZSA9IG10a19wd21fcHJvYmUsCi0JLnJlbW92ZSA9IG10a19wd21fcmVtb3ZlLAorCS5wcm9iZSA9IHB3bV9tZWRpYXRla19wcm9iZSwKKwkucmVtb3ZlID0gcHdtX21lZGlhdGVrX3JlbW92ZSwKIH07Ci1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKG10a19wd21fZHJpdmVyKTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIocHdtX21lZGlhdGVrX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkpvaG4gQ3Jpc3BpbiA8YmxvZ2ljQG9wZW53cnQub3JnPiIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLW1lc29uLmMgYi9kcml2ZXJzL3B3bS9wd20tbWVzb24uYwppbmRleCAzY2JmZjVjLi42MjQ1YmJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3B3bS9wd20tbWVzb24uYworKysgYi9kcml2ZXJzL3B3bS9wd20tbWVzb24uYwpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyB2b2lkIG1lc29uX3B3bV9mcmVlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKIH0KIAogc3RhdGljIGludCBtZXNvbl9wd21fY2FsYyhzdHJ1Y3QgbWVzb25fcHdtICptZXNvbiwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKLQkJCSAgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCisJCQkgIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBtZXNvbl9wd21fY2hhbm5lbCAqY2hhbm5lbCA9IHB3bV9nZXRfY2hpcF9kYXRhKHB3bSk7CiAJdW5zaWduZWQgaW50IGR1dHksIHBlcmlvZCwgcHJlX2RpdiwgY250LCBkdXR5X2NudDsKQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgdm9pZCBtZXNvbl9wd21fZGlzYWJsZShzdHJ1Y3QgbWVzb25fcHdtICptZXNvbiwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKIH0KIAogc3RhdGljIGludCBtZXNvbl9wd21fYXBwbHkoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJICAgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCisJCQkgICBjb25zdCBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgbWVzb25fcHdtX2NoYW5uZWwgKmNoYW5uZWwgPSBwd21fZ2V0X2NoaXBfZGF0YShwd20pOwogCXN0cnVjdCBtZXNvbl9wd20gKm1lc29uID0gdG9fbWVzb25fcHdtKGNoaXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLW14cy5jIGIvZHJpdmVycy9wd20vcHdtLW14cy5jCmluZGV4IDA0YzBmNmIuLmIxNDM3NmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1teHMuYworKysgYi9kcml2ZXJzL3B3bS9wd20tbXhzLmMKQEAgLTEyNiwxNSArMTI2LDEzIEBAIHN0YXRpYyBpbnQgbXhzX3B3bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBwZGV2LT5kZXYub2Zfbm9kZTsKIAlzdHJ1Y3QgbXhzX3B3bV9jaGlwICpteHM7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7CiAJaW50IHJldDsKIAogCW14cyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKm14cyksIEdGUF9LRVJORUwpOwogCWlmICghbXhzKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JbXhzLT5iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CisJbXhzLT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwogCWlmIChJU19FUlIobXhzLT5iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIobXhzLT5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLXJjYXIuYyBiL2RyaXZlcnMvcHdtL3B3bS1yY2FyLmMKaW5kZXggNWIyYjhlYy4uODUyZWIyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vcHdtLXJjYXIuYworKysgYi9kcml2ZXJzL3B3bS9wd20tcmNhci5jCkBAIC0xNTgsNyArMTU4LDcgQEAgc3RhdGljIHZvaWQgcmNhcl9wd21fZGlzYWJsZShzdHJ1Y3QgcmNhcl9wd21fY2hpcCAqcnApCiB9CiAKIHN0YXRpYyBpbnQgcmNhcl9wd21fYXBwbHkoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IHJjYXJfcHdtX2NoaXAgKnJwID0gdG9fcmNhcl9wd21fY2hpcChjaGlwKTsKIAlzdHJ1Y3QgcHdtX3N0YXRlIGN1cl9zdGF0ZTsKQEAgLTE4Nyw3ICsxODcsNyBAQCBzdGF0aWMgaW50IHJjYXJfcHdtX2FwcGx5KHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKIAkvKiBUaGUgU1lOQyBzaG91bGQgYmUgc2V0IHRvIDAgZXZlbiBpZiByY2FyX3B3bV9zZXRfY291bnRlciBmYWlsZWQgKi8KIAlyY2FyX3B3bV91cGRhdGUocnAsIFJDQVJfUFdNQ1JfU1lOQywgMCwgUkNBUl9QV01DUik7CiAKLQlpZiAoIXJldCAmJiBzdGF0ZS0+ZW5hYmxlZCkKKwlpZiAoIXJldCkKIAkJcmV0ID0gcmNhcl9wd21fZW5hYmxlKHJwKTsKIAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9wd20tcm9ja2NoaXAuYyBiL2RyaXZlcnMvcHdtL3B3bS1yb2NrY2hpcC5jCmluZGV4IDUxYjk2Y2IuLjczMzUyZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1yb2NrY2hpcC5jCisrKyBiL2RyaXZlcnMvcHdtL3B3bS1yb2NrY2hpcC5jCkBAIC05MCwxNiArOTAsMTYgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfcHdtX2dldF9zdGF0ZShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsCiAJCXN0YXRlLT5lbmFibGVkID0gKCh2YWwgJiBlbmFibGVfY29uZikgPT0gZW5hYmxlX2NvbmYpID8KIAkJCQkgdHJ1ZSA6IGZhbHNlOwogCi0JaWYgKHBjLT5kYXRhLT5zdXBwb3J0c19wb2xhcml0eSkgewotCQlpZiAoISh2YWwgJiBQV01fRFVUWV9QT1NJVElWRSkpCi0JCQlzdGF0ZS0+cG9sYXJpdHkgPSBQV01fUE9MQVJJVFlfSU5WRVJTRUQ7Ci0JfQorCWlmIChwYy0+ZGF0YS0+c3VwcG9ydHNfcG9sYXJpdHkgJiYgISh2YWwgJiBQV01fRFVUWV9QT1NJVElWRSkpCisJCXN0YXRlLT5wb2xhcml0eSA9IFBXTV9QT0xBUklUWV9JTlZFUlNFRDsKKwllbHNlCisJCXN0YXRlLT5wb2xhcml0eSA9IFBXTV9QT0xBUklUWV9OT1JNQUw7CiAKIAljbGtfZGlzYWJsZShwYy0+cGNsayk7CiB9CiAKIHN0YXRpYyB2b2lkIHJvY2tjaGlwX3B3bV9jb25maWcoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJICAgICAgIHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCByb2NrY2hpcF9wd21fY2hpcCAqcGMgPSB0b19yb2NrY2hpcF9wd21fY2hpcChjaGlwKTsKIAl1bnNpZ25lZCBsb25nIHBlcmlvZCwgZHV0eTsKQEAgLTE4Myw3ICsxODMsNyBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX3B3bV9lbmFibGUoc3RydWN0IHB3bV9jaGlwICpjaGlwLAogfQogCiBzdGF0aWMgaW50IHJvY2tjaGlwX3B3bV9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCi0JCQkgICAgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCByb2NrY2hpcF9wd21fY2hpcCAqcGMgPSB0b19yb2NrY2hpcF9wd21fY2hpcChjaGlwKTsKIAlzdHJ1Y3QgcHdtX3N0YXRlIGN1cnN0YXRlOwpAQCAtMjEyLDEyICsyMTIsNiBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX3B3bV9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCiAJCQlnb3RvIG91dDsKIAl9CiAKLQkvKgotCSAqIFVwZGF0ZSB0aGUgc3RhdGUgd2l0aCB0aGUgcmVhbCBoYXJkd2FyZSwgd2hpY2ggY2FuIGRpZmZlciBhIGJpdAotCSAqIGJlY2F1c2Ugb2YgcGVyaW9kL2R1dHlfY3ljbGUgYXBwcm94aW1hdGlvbi4KLQkgKi8KLQlyb2NrY2hpcF9wd21fZ2V0X3N0YXRlKGNoaXAsIHB3bSwgc3RhdGUpOwotCiBvdXQ6CiAJY2xrX2Rpc2FibGUocGMtPnBjbGspOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9wd20tc2lmaXZlLmMgYi9kcml2ZXJzL3B3bS9wd20tc2lmaXZlLmMKaW5kZXggYTdjMTA3Zi4uY2M2M2Y5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vcHdtLXNpZml2ZS5jCisrKyBiL2RyaXZlcnMvcHdtL3B3bS1zaWZpdmUuYwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyBpbnQgcHdtX3NpZml2ZV9lbmFibGUoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBib29sIGVuYWJsZSkKIH0KIAogc3RhdGljIGludCBwd21fc2lmaXZlX2FwcGx5KHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKLQkJCSAgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgICBjb25zdCBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgcHdtX3NpZml2ZV9kZGF0YSAqZGRhdGEgPSBwd21fc2lmaXZlX2NoaXBfdG9fZGRhdGEoY2hpcCk7CiAJc3RydWN0IHB3bV9zdGF0ZSBjdXJfc3RhdGU7CkBAIC0yNTAsMTAgKzI1MCw4IEBAIHN0YXRpYyBpbnQgcHdtX3NpZml2ZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKIAlkZGF0YS0+cmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Ci0JaWYgKElTX0VSUihkZGF0YS0+cmVncykpIHsKLQkJZGV2X2VycihkZXYsICJVbmFibGUgdG8gbWFwIElPIHJlc291cmNlc1xuIik7CisJaWYgKElTX0VSUihkZGF0YS0+cmVncykpCiAJCXJldHVybiBQVFJfRVJSKGRkYXRhLT5yZWdzKTsKLQl9CiAKIAlkZGF0YS0+Y2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgTlVMTCk7CiAJaWYgKElTX0VSUihkZGF0YS0+Y2xrKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLXNwcmQuYyBiL2RyaXZlcnMvcHdtL3B3bS1zcHJkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUyMzk0MgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcHdtL3B3bS1zcHJkLmMKQEAgLTAsMCArMSwzMDkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFNwcmVhZHRydW0gQ29tbXVuaWNhdGlvbnMgSW5jLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L21hdGg2NC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3B3bS5oPgorCisjZGVmaW5lIFNQUkRfUFdNX1BSRVNDQUxFCTB4MAorI2RlZmluZSBTUFJEX1BXTV9NT0QJCTB4NAorI2RlZmluZSBTUFJEX1BXTV9EVVRZCQkweDgKKyNkZWZpbmUgU1BSRF9QV01fRU5BQkxFCQkweDE4CisKKyNkZWZpbmUgU1BSRF9QV01fTU9EX01BWAlHRU5NQVNLKDcsIDApCisjZGVmaW5lIFNQUkRfUFdNX0RVVFlfTVNLCUdFTk1BU0soMTUsIDApCisjZGVmaW5lIFNQUkRfUFdNX1BSRVNDQUxFX01TSwlHRU5NQVNLKDcsIDApCisjZGVmaW5lIFNQUkRfUFdNX0VOQUJMRV9CSVQJQklUKDApCisKKyNkZWZpbmUgU1BSRF9QV01fQ0hOX05VTQk0CisjZGVmaW5lIFNQUkRfUFdNX1JFR1NfU0hJRlQJNQorI2RlZmluZSBTUFJEX1BXTV9DSE5fQ0xLU19OVU0JMgorI2RlZmluZSBTUFJEX1BXTV9DSE5fT1VUUFVUX0NMSwkxCisKK3N0cnVjdCBzcHJkX3B3bV9jaG4geworCXN0cnVjdCBjbGtfYnVsa19kYXRhIGNsa3NbU1BSRF9QV01fQ0hOX0NMS1NfTlVNXTsKKwl1MzIgY2xrX3JhdGU7Cit9OworCitzdHJ1Y3Qgc3ByZF9wd21fY2hpcCB7CisJdm9pZCBfX2lvbWVtICpiYXNlOworCXN0cnVjdCBkZXZpY2UgKmRldjsKKwlzdHJ1Y3QgcHdtX2NoaXAgY2hpcDsKKwlpbnQgbnVtX3B3bXM7CisJc3RydWN0IHNwcmRfcHdtX2NobiBjaG5bU1BSRF9QV01fQ0hOX05VTV07Cit9OworCisvKgorICogVGhlIGxpc3Qgb2YgY2xvY2tzIHJlcXVpcmVkIGJ5IFBXTSBjaGFubmVscywgYW5kIGVhY2ggY2hhbm5lbCBoYXMgMiBjbG9ja3M6CisgKiBlbmFibGUgY2xvY2sgYW5kIHB3bSBjbG9jay4KKyAqLworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzcHJkX3B3bV9jbGtzW10gPSB7CisJImVuYWJsZTAiLCAicHdtMCIsCisJImVuYWJsZTEiLCAicHdtMSIsCisJImVuYWJsZTIiLCAicHdtMiIsCisJImVuYWJsZTMiLCAicHdtMyIsCit9OworCitzdGF0aWMgdTMyIHNwcmRfcHdtX3JlYWQoc3RydWN0IHNwcmRfcHdtX2NoaXAgKnNwYywgdTMyIGh3aWQsIHUzMiByZWcpCit7CisJdTMyIG9mZnNldCA9IHJlZyArIChod2lkIDw8IFNQUkRfUFdNX1JFR1NfU0hJRlQpOworCisJcmV0dXJuIHJlYWRsX3JlbGF4ZWQoc3BjLT5iYXNlICsgb2Zmc2V0KTsKK30KKworc3RhdGljIHZvaWQgc3ByZF9wd21fd3JpdGUoc3RydWN0IHNwcmRfcHdtX2NoaXAgKnNwYywgdTMyIGh3aWQsCisJCQkgICB1MzIgcmVnLCB1MzIgdmFsKQoreworCXUzMiBvZmZzZXQgPSByZWcgKyAoaHdpZCA8PCBTUFJEX1BXTV9SRUdTX1NISUZUKTsKKworCXdyaXRlbF9yZWxheGVkKHZhbCwgc3BjLT5iYXNlICsgb2Zmc2V0KTsKK30KKworc3RhdGljIHZvaWQgc3ByZF9wd21fZ2V0X3N0YXRlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKKwkJCSAgICAgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3Qgc3ByZF9wd21fY2hpcCAqc3BjID0KKwkJY29udGFpbmVyX29mKGNoaXAsIHN0cnVjdCBzcHJkX3B3bV9jaGlwLCBjaGlwKTsKKwlzdHJ1Y3Qgc3ByZF9wd21fY2huICpjaG4gPSAmc3BjLT5jaG5bcHdtLT5od3B3bV07CisJdTMyIHZhbCwgZHV0eSwgcHJlc2NhbGU7CisJdTY0IHRtcDsKKwlpbnQgcmV0OworCisJLyoKKwkgKiBUaGUgY2xvY2tzIHRvIFBXTSBjaGFubmVsIGhhcyB0byBiZSBlbmFibGVkIGZpcnN0IGJlZm9yZQorCSAqIHJlYWRpbmcgdG8gdGhlIHJlZ2lzdGVycy4KKwkgKi8KKwlyZXQgPSBjbGtfYnVsa19wcmVwYXJlX2VuYWJsZShTUFJEX1BXTV9DSE5fQ0xLU19OVU0sIGNobi0+Y2xrcyk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKHNwYy0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBwd20ldSBjbG9ja3NcbiIsCisJCQlwd20tPmh3cHdtKTsKKwkJcmV0dXJuOworCX0KKworCXZhbCA9IHNwcmRfcHdtX3JlYWQoc3BjLCBwd20tPmh3cHdtLCBTUFJEX1BXTV9FTkFCTEUpOworCWlmICh2YWwgJiBTUFJEX1BXTV9FTkFCTEVfQklUKQorCQlzdGF0ZS0+ZW5hYmxlZCA9IHRydWU7CisJZWxzZQorCQlzdGF0ZS0+ZW5hYmxlZCA9IGZhbHNlOworCisJLyoKKwkgKiBUaGUgaGFyZHdhcmUgcHJvdmlkZXMgYSBjb3VudGVyIHRoYXQgaXMgZmVlZCBieSB0aGUgc291cmNlIGNsb2NrLgorCSAqIFRoZSBwZXJpb2QgbGVuZ3RoIGlzIChQUkVTQ0FMRSArIDEpICogTU9EIGNvdW50ZXIgc3RlcHMuCisJICogVGhlIGR1dHkgY3ljbGUgbGVuZ3RoIGlzIChQUkVTQ0FMRSArIDEpICogRFVUWSBjb3VudGVyIHN0ZXBzLgorCSAqIFRodXMgdGhlIHBlcmlvZF9ucyBhbmQgZHV0eV9ucyBjYWxjdWxhdGlvbiBmb3JtdWxhIHNob3VsZCBiZToKKwkgKiBwZXJpb2RfbnMgPSBOU0VDX1BFUl9TRUMgKiAocHJlc2NhbGUgKyAxKSAqIG1vZCAvIGNsa19yYXRlCisJICogZHV0eV9ucyA9IE5TRUNfUEVSX1NFQyAqIChwcmVzY2FsZSArIDEpICogZHV0eSAvIGNsa19yYXRlCisJICovCisJdmFsID0gc3ByZF9wd21fcmVhZChzcGMsIHB3bS0+aHdwd20sIFNQUkRfUFdNX1BSRVNDQUxFKTsKKwlwcmVzY2FsZSA9IHZhbCAmIFNQUkRfUFdNX1BSRVNDQUxFX01TSzsKKwl0bXAgPSAocHJlc2NhbGUgKyAxKSAqIE5TRUNfUEVSX1NFQyAqIFNQUkRfUFdNX01PRF9NQVg7CisJc3RhdGUtPnBlcmlvZCA9IERJVl9ST1VORF9DTE9TRVNUX1VMTCh0bXAsIGNobi0+Y2xrX3JhdGUpOworCisJdmFsID0gc3ByZF9wd21fcmVhZChzcGMsIHB3bS0+aHdwd20sIFNQUkRfUFdNX0RVVFkpOworCWR1dHkgPSB2YWwgJiBTUFJEX1BXTV9EVVRZX01TSzsKKwl0bXAgPSAocHJlc2NhbGUgKyAxKSAqIE5TRUNfUEVSX1NFQyAqIGR1dHk7CisJc3RhdGUtPmR1dHlfY3ljbGUgPSBESVZfUk9VTkRfQ0xPU0VTVF9VTEwodG1wLCBjaG4tPmNsa19yYXRlKTsKKworCS8qIERpc2FibGUgUFdNIGNsb2NrcyBpZiB0aGUgUFdNIGNoYW5uZWwgaXMgbm90IGluIGVuYWJsZSBzdGF0ZS4gKi8KKwlpZiAoIXN0YXRlLT5lbmFibGVkKQorCQljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShTUFJEX1BXTV9DSE5fQ0xLU19OVU0sIGNobi0+Y2xrcyk7Cit9CisKK3N0YXRpYyBpbnQgc3ByZF9wd21fY29uZmlnKHN0cnVjdCBzcHJkX3B3bV9jaGlwICpzcGMsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCisJCQkgICBpbnQgZHV0eV9ucywgaW50IHBlcmlvZF9ucykKK3sKKwlzdHJ1Y3Qgc3ByZF9wd21fY2huICpjaG4gPSAmc3BjLT5jaG5bcHdtLT5od3B3bV07CisJdTMyIHByZXNjYWxlLCBkdXR5OworCXU2NCB0bXA7CisKKwkvKgorCSAqIFRoZSBoYXJkd2FyZSBwcm92aWRlcyBhIGNvdW50ZXIgdGhhdCBpcyBmZWVkIGJ5IHRoZSBzb3VyY2UgY2xvY2suCisJICogVGhlIHBlcmlvZCBsZW5ndGggaXMgKFBSRVNDQUxFICsgMSkgKiBNT0QgY291bnRlciBzdGVwcy4KKwkgKiBUaGUgZHV0eSBjeWNsZSBsZW5ndGggaXMgKFBSRVNDQUxFICsgMSkgKiBEVVRZIGNvdW50ZXIgc3RlcHMuCisJICoKKwkgKiBUbyBrZWVwIHRoZSBtYXRocyBzaW1wbGUgd2UncmUgYWx3YXlzIHVzaW5nIE1PRCA9IFNQUkRfUFdNX01PRF9NQVguCisJICogVGhlIHZhbHVlIGZvciBQUkVTQ0FMRSBpcyBzZWxlY3RlZCBzdWNoIHRoYXQgdGhlIHJlc3VsdGluZyBwZXJpb2QKKwkgKiBnZXRzIHRoZSBtYXhpbWFsIGxlbmd0aCBub3QgYmlnZ2VyIHRoYW4gdGhlIHJlcXVlc3RlZCBvbmUgd2l0aCB0aGUKKwkgKiBnaXZlbiBzZXR0aW5ncyAoTU9EID0gU1BSRF9QV01fTU9EX01BWCBhbmQgaW5wdXQgY2xvY2spLgorCSAqLworCWR1dHkgPSBkdXR5X25zICogU1BSRF9QV01fTU9EX01BWCAvIHBlcmlvZF9uczsKKworCXRtcCA9ICh1NjQpY2huLT5jbGtfcmF0ZSAqIHBlcmlvZF9uczsKKwlkb19kaXYodG1wLCBOU0VDX1BFUl9TRUMpOworCXByZXNjYWxlID0gRElWX1JPVU5EX0NMT1NFU1RfVUxMKHRtcCwgU1BSRF9QV01fTU9EX01BWCkgLSAxOworCWlmIChwcmVzY2FsZSA+IFNQUkRfUFdNX1BSRVNDQUxFX01TSykKKwkJcHJlc2NhbGUgPSBTUFJEX1BXTV9QUkVTQ0FMRV9NU0s7CisKKwkvKgorCSAqIE5vdGU6IFdyaXRpbmcgRFVUWSB0cmlnZ2VycyB0aGUgaGFyZHdhcmUgdG8gYWN0dWFsbHkgYXBwbHkgdGhlCisJICogdmFsdWVzIHdyaXR0ZW4gdG8gTU9EIGFuZCBEVVRZIHRvIHRoZSBvdXRwdXQsIHNvIG11c3Qga2VlcCB3cml0aW5nCisJICogRFVUWSBsYXN0LgorCSAqCisJICogVGhlIGhhcmR3YXJlIGNhbiBlbnN1cmVzIHRoYXQgY3VycmVudCBydW5uaW5nIHBlcmlvZCBpcyBjb21wbGV0ZWQKKwkgKiBiZWZvcmUgY2hhbmdpbmcgYSBuZXcgY29uZmlndXJhdGlvbiB0byBhdm9pZCBtaXhlZCBzZXR0aW5ncy4KKwkgKi8KKwlzcHJkX3B3bV93cml0ZShzcGMsIHB3bS0+aHdwd20sIFNQUkRfUFdNX1BSRVNDQUxFLCBwcmVzY2FsZSk7CisJc3ByZF9wd21fd3JpdGUoc3BjLCBwd20tPmh3cHdtLCBTUFJEX1BXTV9NT0QsIFNQUkRfUFdNX01PRF9NQVgpOworCXNwcmRfcHdtX3dyaXRlKHNwYywgcHdtLT5od3B3bSwgU1BSRF9QV01fRFVUWSwgZHV0eSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzcHJkX3B3bV9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCisJCQkgIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBzcHJkX3B3bV9jaGlwICpzcGMgPQorCQljb250YWluZXJfb2YoY2hpcCwgc3RydWN0IHNwcmRfcHdtX2NoaXAsIGNoaXApOworCXN0cnVjdCBzcHJkX3B3bV9jaG4gKmNobiA9ICZzcGMtPmNobltwd20tPmh3cHdtXTsKKwlzdHJ1Y3QgcHdtX3N0YXRlICpjc3RhdGUgPSAmcHdtLT5zdGF0ZTsKKwlpbnQgcmV0OworCisJaWYgKHN0YXRlLT5lbmFibGVkKSB7CisJCWlmICghY3N0YXRlLT5lbmFibGVkKSB7CisJCQkvKgorCQkJICogVGhlIGNsb2NrcyB0byBQV00gY2hhbm5lbCBoYXMgdG8gYmUgZW5hYmxlZCBmaXJzdAorCQkJICogYmVmb3JlIHdyaXRpbmcgdG8gdGhlIHJlZ2lzdGVycy4KKwkJCSAqLworCQkJcmV0ID0gY2xrX2J1bGtfcHJlcGFyZV9lbmFibGUoU1BSRF9QV01fQ0hOX0NMS1NfTlVNLAorCQkJCQkJICAgICAgY2huLT5jbGtzKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlkZXZfZXJyKHNwYy0+ZGV2LAorCQkJCQkiZmFpbGVkIHRvIGVuYWJsZSBwd20ldSBjbG9ja3NcbiIsCisJCQkJCXB3bS0+aHdwd20pOworCQkJCXJldHVybiByZXQ7CisJCQl9CisJCX0KKworCQlpZiAoc3RhdGUtPnBlcmlvZCAhPSBjc3RhdGUtPnBlcmlvZCB8fAorCQkgICAgc3RhdGUtPmR1dHlfY3ljbGUgIT0gY3N0YXRlLT5kdXR5X2N5Y2xlKSB7CisJCQlyZXQgPSBzcHJkX3B3bV9jb25maWcoc3BjLCBwd20sIHN0YXRlLT5kdXR5X2N5Y2xlLAorCQkJCQkgICAgICBzdGF0ZS0+cGVyaW9kKTsKKwkJCWlmIChyZXQpCisJCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCXNwcmRfcHdtX3dyaXRlKHNwYywgcHdtLT5od3B3bSwgU1BSRF9QV01fRU5BQkxFLCAxKTsKKwl9IGVsc2UgaWYgKGNzdGF0ZS0+ZW5hYmxlZCkgeworCQkvKgorCQkgKiBOb3RlOiBBZnRlciBzZXR0aW5nIFNQUkRfUFdNX0VOQUJMRSB0byB6ZXJvLCB0aGUgY29udHJvbGxlcgorCQkgKiB3aWxsIG5vdCB3YWl0IGZvciBjdXJyZW50IHBlcmlvZCB0byBiZSBjb21wbGV0ZWQsIGluc3RlYWQgaXQKKwkJICogd2lsbCBzdG9wIHRoZSBQV00gY2hhbm5lbCBpbW1lZGlhdGVseS4KKwkJICovCisJCXNwcmRfcHdtX3dyaXRlKHNwYywgcHdtLT5od3B3bSwgU1BSRF9QV01fRU5BQkxFLCAwKTsKKworCQljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShTUFJEX1BXTV9DSE5fQ0xLU19OVU0sIGNobi0+Y2xrcyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdtX29wcyBzcHJkX3B3bV9vcHMgPSB7CisJLmFwcGx5ID0gc3ByZF9wd21fYXBwbHksCisJLmdldF9zdGF0ZSA9IHNwcmRfcHdtX2dldF9zdGF0ZSwKKwkub3duZXIgPSBUSElTX01PRFVMRSwKK307CisKK3N0YXRpYyBpbnQgc3ByZF9wd21fY2xrX2luaXQoc3RydWN0IHNwcmRfcHdtX2NoaXAgKnNwYykKK3sKKwlzdHJ1Y3QgY2xrICpjbGtfcHdtOworCWludCByZXQsIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgU1BSRF9QV01fQ0hOX05VTTsgaSsrKSB7CisJCXN0cnVjdCBzcHJkX3B3bV9jaG4gKmNobiA9ICZzcGMtPmNobltpXTsKKwkJaW50IGo7CisKKwkJZm9yIChqID0gMDsgaiA8IFNQUkRfUFdNX0NITl9DTEtTX05VTTsgKytqKQorCQkJY2huLT5jbGtzW2pdLmlkID0KKwkJCQlzcHJkX3B3bV9jbGtzW2kgKiBTUFJEX1BXTV9DSE5fQ0xLU19OVU0gKyBqXTsKKworCQlyZXQgPSBkZXZtX2Nsa19idWxrX2dldChzcGMtPmRldiwgU1BSRF9QV01fQ0hOX0NMS1NfTlVNLAorCQkJCQljaG4tPmNsa3MpOworCQlpZiAocmV0KSB7CisJCQlpZiAocmV0ID09IC1FTk9FTlQpCisJCQkJYnJlYWs7CisKKwkJCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikKKwkJCQlkZXZfZXJyKHNwYy0+ZGV2LAorCQkJCQkiZmFpbGVkIHRvIGdldCBjaGFubmVsIGNsb2Nrc1xuIik7CisKKwkJCXJldHVybiByZXQ7CisJCX0KKworCQljbGtfcHdtID0gY2huLT5jbGtzW1NQUkRfUFdNX0NITl9PVVRQVVRfQ0xLXS5jbGs7CisJCWNobi0+Y2xrX3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrX3B3bSk7CisJfQorCisJaWYgKCFpKSB7CisJCWRldl9lcnIoc3BjLT5kZXYsICJubyBhdmFpbGFibGUgUFdNIGNoYW5uZWxzXG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJc3BjLT5udW1fcHdtcyA9IGk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzcHJkX3B3bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzcHJkX3B3bV9jaGlwICpzcGM7CisJaW50IHJldDsKKworCXNwYyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnNwYyksIEdGUF9LRVJORUwpOworCWlmICghc3BjKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXNwYy0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKwlpZiAoSVNfRVJSKHNwYy0+YmFzZSkpCisJCXJldHVybiBQVFJfRVJSKHNwYy0+YmFzZSk7CisKKwlzcGMtPmRldiA9ICZwZGV2LT5kZXY7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgc3BjKTsKKworCXJldCA9IHNwcmRfcHdtX2Nsa19pbml0KHNwYyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXNwYy0+Y2hpcC5kZXYgPSAmcGRldi0+ZGV2OworCXNwYy0+Y2hpcC5vcHMgPSAmc3ByZF9wd21fb3BzOworCXNwYy0+Y2hpcC5iYXNlID0gLTE7CisJc3BjLT5jaGlwLm5wd20gPSBzcGMtPm51bV9wd21zOworCisJcmV0ID0gcHdtY2hpcF9hZGQoJnNwYy0+Y2hpcCk7CisJaWYgKHJldCkKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBQV00gY2hpcFxuIik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHNwcmRfcHdtX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzcHJkX3B3bV9jaGlwICpzcGMgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCXJldHVybiBwd21jaGlwX3JlbW92ZSgmc3BjLT5jaGlwKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3ByZF9wd21fb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInNwcmQsdW1zNTEyLXB3bSIsIH0sCisJeyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNwcmRfcHdtX29mX21hdGNoKTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc3ByZF9wd21fZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gInNwcmQtcHdtIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gc3ByZF9wd21fb2ZfbWF0Y2gsCisJfSwKKwkucHJvYmUgPSBzcHJkX3B3bV9wcm9iZSwKKwkucmVtb3ZlID0gc3ByZF9wd21fcmVtb3ZlLAorfTsKKworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzcHJkX3B3bV9kcml2ZXIpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNwcmVhZHRydW0gUFdNIERyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLXN0aS5jIGIvZHJpdmVycy9wd20vcHdtLXN0aS5jCmluZGV4IDIwNDUwZTMuLjE1MDg2MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL3B3bS1zdGkuYworKysgYi9kcml2ZXJzL3B3bS9wd20tc3RpLmMKQEAgLTU2NCwxMCArNTY0LDggQEAgc3RhdGljIGludCBzdGlfcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiBQVFJfRVJSKHBjLT5yZWdtYXApOwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gb2J0YWluIElSUVxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiBpcnE7Ci0JfQogCiAJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBpcnEsIHN0aV9wd21faW50ZXJydXB0LCAwLAogCQkJICAgICAgIHBkZXYtPm5hbWUsIHBjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1zdG0zMi1scC5jIGIvZHJpdmVycy9wd20vcHdtLXN0bTMyLWxwLmMKaW5kZXggMjIxMWE2NC4uNjdmY2E2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vcHdtLXN0bTMyLWxwLmMKKysrIGIvZHJpdmVycy9wd20vcHdtLXN0bTMyLWxwLmMKQEAgLTMyLDcgKzMyLDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc3RtMzJfcHdtX2xwICp0b19zdG0zMl9wd21fbHAoc3RydWN0IHB3bV9jaGlwICpjaGlwKQogI2RlZmluZSBTVE0zMl9MUFRJTV9NQVhfUFJFU0NBTEVSCTEyOAogCiBzdGF0aWMgaW50IHN0bTMyX3B3bV9scF9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCi0JCQkgICAgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBzdG0zMl9wd21fbHAgKnByaXYgPSB0b19zdG0zMl9wd21fbHAoY2hpcCk7CiAJdW5zaWduZWQgbG9uZyBsb25nIHByZCwgZGl2LCBkdHk7CkBAIC01OSw2ICs1OSwxMiBAQCBzdGF0aWMgaW50IHN0bTMyX3B3bV9scF9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCiAJLyogQ2FsY3VsYXRlIHRoZSBwZXJpb2QgYW5kIHByZXNjYWxlciB2YWx1ZSAqLwogCWRpdiA9ICh1bnNpZ25lZCBsb25nIGxvbmcpY2xrX2dldF9yYXRlKHByaXYtPmNsaykgKiBzdGF0ZS0+cGVyaW9kOwogCWRvX2RpdihkaXYsIE5TRUNfUEVSX1NFQyk7CisJaWYgKCFkaXYpIHsKKwkJLyogQ2xvY2sgaXMgdG9vIHNsb3cgdG8gYWNoaWV2ZSByZXF1ZXN0ZWQgcGVyaW9kLiAqLworCQlkZXZfZGJnKHByaXYtPmNoaXAuZGV2LCAiQ2FuJ3QgcmVhY2ggJXUgbnNcbiIsCXN0YXRlLT5wZXJpb2QpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlwcmQgPSBkaXY7CiAJd2hpbGUgKGRpdiA+IFNUTTMyX0xQVElNX01BWF9BUlIpIHsKIAkJcHJlc2MrKzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1zdG0zMi5jIGIvZHJpdmVycy9wd20vcHdtLXN0bTMyLmMKaW5kZXggNzQwZTJkZS4uMzU5YjA4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vcHdtLXN0bTMyLmMKKysrIGIvZHJpdmVycy9wd20vcHdtLXN0bTMyLmMKQEAgLTQ0MCw3ICs0NDAsNyBAQCBzdGF0aWMgdm9pZCBzdG0zMl9wd21fZGlzYWJsZShzdHJ1Y3Qgc3RtMzJfcHdtICpwcml2LCBpbnQgY2gpCiB9CiAKIHN0YXRpYyBpbnQgc3RtMzJfcHdtX2FwcGx5KHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKLQkJCSAgIHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQorCQkJICAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJYm9vbCBlbmFibGVkOwogCXN0cnVjdCBzdG0zMl9wd20gKnByaXYgPSB0b19zdG0zMl9wd21fZGV2KGNoaXApOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHN0YXRpYyBpbnQgc3RtMzJfcHdtX2FwcGx5KHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKIH0KIAogc3RhdGljIGludCBzdG0zMl9wd21fYXBwbHlfbG9ja2VkKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKLQkJCQkgIHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQorCQkJCSAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IHN0bTMyX3B3bSAqcHJpdiA9IHRvX3N0bTMyX3B3bV9kZXYoY2hpcCk7CiAJaW50IHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1zdW40aS5jIGIvZHJpdmVycy9wd20vcHdtLXN1bjRpLmMKaW5kZXggZGU3OGM4Mi4uNmY1ODQwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vcHdtLXN1bjRpLmMKKysrIGIvZHJpdmVycy9wd20vcHdtLXN1bjRpLmMKQEAgLTE0NSw3ICsxNDUsNyBAQCBzdGF0aWMgdm9pZCBzdW40aV9wd21fZ2V0X3N0YXRlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwKIH0KIAogc3RhdGljIGludCBzdW40aV9wd21fY2FsY3VsYXRlKHN0cnVjdCBzdW40aV9wd21fY2hpcCAqc3VuNGlfcHdtLAotCQkJICAgICAgIHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlLAogCQkJICAgICAgIHUzMiAqZHR5LCB1MzIgKnByZCwgdW5zaWduZWQgaW50ICpwcnNjbHIpCiB7CiAJdTY0IGNsa19yYXRlLCBkaXYgPSAwOwpAQCAtMTkyLDE3ICsxOTIsMTEgQEAgc3RhdGljIGludCBzdW40aV9wd21fY2FsY3VsYXRlKHN0cnVjdCBzdW40aV9wd21fY2hpcCAqc3VuNGlfcHdtLAogCSpkdHkgPSBkaXY7CiAJKnByc2NsciA9IHByZXNjYWxlcjsKIAotCWRpdiA9ICh1NjQpcHZhbCAqIE5TRUNfUEVSX1NFQyAqICpwcmQ7Ci0Jc3RhdGUtPnBlcmlvZCA9IERJVl9ST1VORF9DTE9TRVNUX1VMTChkaXYsIGNsa19yYXRlKTsKLQotCWRpdiA9ICh1NjQpcHZhbCAqIE5TRUNfUEVSX1NFQyAqICpkdHk7Ci0Jc3RhdGUtPmR1dHlfY3ljbGUgPSBESVZfUk9VTkRfQ0xPU0VTVF9VTEwoZGl2LCBjbGtfcmF0ZSk7Ci0KIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBzdW40aV9wd21fYXBwbHkoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkJICAgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCisJCQkgICBjb25zdCBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3Qgc3VuNGlfcHdtX2NoaXAgKnN1bjRpX3B3bSA9IHRvX3N1bjRpX3B3bV9jaGlwKGNoaXApOwogCXN0cnVjdCBwd21fc3RhdGUgY3N0YXRlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLXp4LmMgYi9kcml2ZXJzL3B3bS9wd20tenguYwppbmRleCBlMjRmNGJlLi5lMmMyMWNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3B3bS9wd20tenguYworKysgYi9kcml2ZXJzL3B3bS9wd20tenguYwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyBpbnQgenhfcHdtX2NvbmZpZyhzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCiB9CiAKIHN0YXRpYyBpbnQgenhfcHdtX2FwcGx5KHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKLQkJCXN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQorCQkJY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IHp4X3B3bV9jaGlwICp6cGMgPSB0b196eF9wd21fY2hpcChjaGlwKTsKIAlzdHJ1Y3QgcHdtX3N0YXRlIGNzdGF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVtb3RlcHJvYy9LY29uZmlnIGIvZHJpdmVycy9yZW1vdGVwcm9jL0tjb25maWcKaW5kZXggMjhlZDMwNi4uOTRhZmRkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9yZW1vdGVwcm9jL0tjb25maWcKKysrIGIvZHJpdmVycy9yZW1vdGVwcm9jL0tjb25maWcKQEAgLTIsNyArMiw3IEBACiBtZW51ICJSZW1vdGVwcm9jIGRyaXZlcnMiCiAKIGNvbmZpZyBSRU1PVEVQUk9DCi0JdHJpc3RhdGUgIlN1cHBvcnQgZm9yIFJlbW90ZSBQcm9jZXNzb3Igc3Vic3lzdGVtIgorCWJvb2wgIlN1cHBvcnQgZm9yIFJlbW90ZSBQcm9jZXNzb3Igc3Vic3lzdGVtIgogCWRlcGVuZHMgb24gSEFTX0RNQQogCXNlbGVjdCBDUkMzMgogCXNlbGVjdCBGV19MT0FERVIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVtb3RlcHJvYy9kYTh4eF9yZW1vdGVwcm9jLmMgYi9kcml2ZXJzL3JlbW90ZXByb2MvZGE4eHhfcmVtb3RlcHJvYy5jCmluZGV4IGIyYzdhZjMuLjk4ZTBiZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcmVtb3RlcHJvYy9kYTh4eF9yZW1vdGVwcm9jLmMKKysrIGIvZHJpdmVycy9yZW1vdGVwcm9jL2RhOHh4X3JlbW90ZXByb2MuYwpAQCAtMjQ5LDEwICsyNDksOCBAQCBzdGF0aWMgaW50IGRhOHh4X3Jwcm9jX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW50IHJldDsKIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycihkZXYsICJwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApIGVycm9yOiAlZFxuIiwgaXJxKTsKKwlpZiAoaXJxIDwgMCkKIAkJcmV0dXJuIGlycTsKLQl9CiAKIAlpcnFfZGF0YSA9IGlycV9nZXRfaXJxX2RhdGEoaXJxKTsKIAlpZiAoIWlycV9kYXRhKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3JlbW90ZXByb2Mva2V5c3RvbmVfcmVtb3RlcHJvYy5jIGIvZHJpdmVycy9yZW1vdGVwcm9jL2tleXN0b25lX3JlbW90ZXByb2MuYwppbmRleCA0Y2I0NDAxLi41YzQ2NThmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3JlbW90ZXByb2Mva2V5c3RvbmVfcmVtb3RlcHJvYy5jCisrKyBiL2RyaXZlcnMvcmVtb3RlcHJvYy9rZXlzdG9uZV9yZW1vdGVwcm9jLmMKQEAgLTQyNCwxNiArNDI0LDEyIEBAIHN0YXRpYyBpbnQga2V5c3RvbmVfcnByb2NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlrc3Byb2MtPmlycV9yaW5nID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgInZyaW5nIik7CiAJaWYgKGtzcHJvYy0+aXJxX3JpbmcgPCAwKSB7CiAJCXJldCA9IGtzcHJvYy0+aXJxX3Jpbmc7Ci0JCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCB2cmluZyBpbnRlcnJ1cHQsIHN0YXR1cyA9ICVkXG4iLAotCQkJcmV0KTsKIAkJZ290byBkaXNhYmxlX2NsazsKIAl9CiAKIAlrc3Byb2MtPmlycV9mYXVsdCA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJleGNlcHRpb24iKTsKIAlpZiAoa3Nwcm9jLT5pcnFfZmF1bHQgPCAwKSB7CiAJCXJldCA9IGtzcHJvYy0+aXJxX2ZhdWx0OwotCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgZXhjZXB0aW9uIGludGVycnVwdCwgc3RhdHVzID0gJWRcbiIsCi0JCQlyZXQpOwogCQlnb3RvIGRpc2FibGVfY2xrOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZW1vdGVwcm9jL3Fjb21fY29tbW9uLmMgYi9kcml2ZXJzL3JlbW90ZXByb2MvcWNvbV9jb21tb24uYwppbmRleCA2YTQ0ODQyLi42MDY1MGJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3JlbW90ZXByb2MvcWNvbV9jb21tb24uYworKysgYi9kcml2ZXJzL3JlbW90ZXByb2MvcWNvbV9jb21tb24uYwpAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgcWNvbV91bnJlZ2lzdGVyX3Nzcl9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKQogfQogRVhQT1JUX1NZTUJPTF9HUEwocWNvbV91bnJlZ2lzdGVyX3Nzcl9ub3RpZmllcik7CiAKLXN0YXRpYyB2b2lkIHNzcl9ub3RpZnlfc3RvcChzdHJ1Y3QgcnByb2Nfc3ViZGV2ICpzdWJkZXYsIGJvb2wgY3Jhc2hlZCkKK3N0YXRpYyB2b2lkIHNzcl9ub3RpZnlfdW5wcmVwYXJlKHN0cnVjdCBycHJvY19zdWJkZXYgKnN1YmRldikKIHsKIAlzdHJ1Y3QgcWNvbV9ycHJvY19zc3IgKnNzciA9IHRvX3Nzcl9zdWJkZXYoc3ViZGV2KTsKIApAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgcWNvbV9hZGRfc3NyX3N1YmRldihzdHJ1Y3QgcnByb2MgKnJwcm9jLCBzdHJ1Y3QgcWNvbV9ycHJvY19zc3IgKnNzciwKIAkJCSBjb25zdCBjaGFyICpzc3JfbmFtZSkKIHsKIAlzc3ItPm5hbWUgPSBzc3JfbmFtZTsKLQlzc3ItPnN1YmRldi5zdG9wID0gc3NyX25vdGlmeV9zdG9wOworCXNzci0+c3ViZGV2LnVucHJlcGFyZSA9IHNzcl9ub3RpZnlfdW5wcmVwYXJlOwogCiAJcnByb2NfYWRkX3N1YmRldihycHJvYywgJnNzci0+c3ViZGV2KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVtb3RlcHJvYy9xY29tX3E2djUuYyBiL2RyaXZlcnMvcmVtb3RlcHJvYy9xY29tX3E2djUuYwppbmRleCAwZDMzZTMwLi5jYjBmNGEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3JlbW90ZXByb2MvcWNvbV9xNnY1LmMKKysrIGIvZHJpdmVycy9yZW1vdGVwcm9jL3Fjb21fcTZ2NS5jCkBAIC0xODcsMTMgKzE4Nyw4IEBAIGludCBxY29tX3E2djVfaW5pdChzdHJ1Y3QgcWNvbV9xNnY1ICpxNnY1LCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCWluaXRfY29tcGxldGlvbigmcTZ2NS0+c3RvcF9kb25lKTsKIAogCXE2djUtPndkb2dfaXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgIndkb2ciKTsKLQlpZiAocTZ2NS0+d2RvZ19pcnEgPCAwKSB7Ci0JCWlmIChxNnY1LT53ZG9nX2lycSAhPSAtRVBST0JFX0RFRkVSKQotCQkJZGV2X2VycigmcGRldi0+ZGV2LAotCQkJCSJmYWlsZWQgdG8gcmV0cmlldmUgd2RvZyBJUlE6ICVkXG4iLAotCQkJCXE2djUtPndkb2dfaXJxKTsKKwlpZiAocTZ2NS0+d2RvZ19pcnEgPCAwKQogCQlyZXR1cm4gcTZ2NS0+d2RvZ19pcnE7Ci0JfQogCiAJcmV0ID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmcGRldi0+ZGV2LCBxNnY1LT53ZG9nX2lycSwKIAkJCQkJTlVMTCwgcTZ2NV93ZG9nX2ludGVycnVwdCwKQEAgLTIwNSwxMyArMjAwLDggQEAgaW50IHFjb21fcTZ2NV9pbml0KHN0cnVjdCBxY29tX3E2djUgKnE2djUsIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJfQogCiAJcTZ2NS0+ZmF0YWxfaXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgImZhdGFsIik7Ci0JaWYgKHE2djUtPmZhdGFsX2lycSA8IDApIHsKLQkJaWYgKHE2djUtPmZhdGFsX2lycSAhPSAtRVBST0JFX0RFRkVSKQotCQkJZGV2X2VycigmcGRldi0+ZGV2LAotCQkJCSJmYWlsZWQgdG8gcmV0cmlldmUgZmF0YWwgSVJROiAlZFxuIiwKLQkJCQlxNnY1LT5mYXRhbF9pcnEpOworCWlmIChxNnY1LT5mYXRhbF9pcnEgPCAwKQogCQlyZXR1cm4gcTZ2NS0+ZmF0YWxfaXJxOwotCX0KIAogCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoJnBkZXYtPmRldiwgcTZ2NS0+ZmF0YWxfaXJxLAogCQkJCQlOVUxMLCBxNnY1X2ZhdGFsX2ludGVycnVwdCwKQEAgLTIyMywxMyArMjEzLDggQEAgaW50IHFjb21fcTZ2NV9pbml0KHN0cnVjdCBxY29tX3E2djUgKnE2djUsIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJfQogCiAJcTZ2NS0+cmVhZHlfaXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgInJlYWR5Iik7Ci0JaWYgKHE2djUtPnJlYWR5X2lycSA8IDApIHsKLQkJaWYgKHE2djUtPnJlYWR5X2lycSAhPSAtRVBST0JFX0RFRkVSKQotCQkJZGV2X2VycigmcGRldi0+ZGV2LAotCQkJCSJmYWlsZWQgdG8gcmV0cmlldmUgcmVhZHkgSVJROiAlZFxuIiwKLQkJCQlxNnY1LT5yZWFkeV9pcnEpOworCWlmIChxNnY1LT5yZWFkeV9pcnEgPCAwKQogCQlyZXR1cm4gcTZ2NS0+cmVhZHlfaXJxOwotCX0KIAogCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoJnBkZXYtPmRldiwgcTZ2NS0+cmVhZHlfaXJxLAogCQkJCQlOVUxMLCBxNnY1X3JlYWR5X2ludGVycnVwdCwKQEAgLTI0MSwxMyArMjI2LDggQEAgaW50IHFjb21fcTZ2NV9pbml0KHN0cnVjdCBxY29tX3E2djUgKnE2djUsIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJfQogCiAJcTZ2NS0+aGFuZG92ZXJfaXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgImhhbmRvdmVyIik7Ci0JaWYgKHE2djUtPmhhbmRvdmVyX2lycSA8IDApIHsKLQkJaWYgKHE2djUtPmhhbmRvdmVyX2lycSAhPSAtRVBST0JFX0RFRkVSKQotCQkJZGV2X2VycigmcGRldi0+ZGV2LAotCQkJCSJmYWlsZWQgdG8gcmV0cmlldmUgaGFuZG92ZXIgSVJROiAlZFxuIiwKLQkJCQlxNnY1LT5oYW5kb3Zlcl9pcnEpOworCWlmIChxNnY1LT5oYW5kb3Zlcl9pcnEgPCAwKQogCQlyZXR1cm4gcTZ2NS0+aGFuZG92ZXJfaXJxOwotCX0KIAogCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoJnBkZXYtPmRldiwgcTZ2NS0+aGFuZG92ZXJfaXJxLAogCQkJCQlOVUxMLCBxNnY1X2hhbmRvdmVyX2ludGVycnVwdCwKQEAgLTI2MCwxMyArMjQwLDggQEAgaW50IHFjb21fcTZ2NV9pbml0KHN0cnVjdCBxY29tX3E2djUgKnE2djUsIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJZGlzYWJsZV9pcnEocTZ2NS0+aGFuZG92ZXJfaXJxKTsKIAogCXE2djUtPnN0b3BfaXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgInN0b3AtYWNrIik7Ci0JaWYgKHE2djUtPnN0b3BfaXJxIDwgMCkgewotCQlpZiAocTZ2NS0+c3RvcF9pcnEgIT0gLUVQUk9CRV9ERUZFUikKLQkJCWRldl9lcnIoJnBkZXYtPmRldiwKLQkJCQkiZmFpbGVkIHRvIHJldHJpZXZlIHN0b3AtYWNrIElSUTogJWRcbiIsCi0JCQkJcTZ2NS0+c3RvcF9pcnEpOworCWlmIChxNnY1LT5zdG9wX2lycSA8IDApCiAJCXJldHVybiBxNnY1LT5zdG9wX2lycTsKLQl9CiAKIAlyZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKCZwZGV2LT5kZXYsIHE2djUtPnN0b3BfaXJxLAogCQkJCQlOVUxMLCBxNnY1X3N0b3BfaW50ZXJydXB0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZW1vdGVwcm9jL3Fjb21fcTZ2NV9tc3MuYyBiL2RyaXZlcnMvcmVtb3RlcHJvYy9xY29tX3E2djVfbXNzLmMKaW5kZXggOGZjZjlkMi4uZGU5MTlmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9yZW1vdGVwcm9jL3Fjb21fcTZ2NV9tc3MuYworKysgYi9kcml2ZXJzL3JlbW90ZXByb2MvcWNvbV9xNnY1X21zcy5jCkBAIC0xMjgyLDggKzEyODIsOCBAQCBzdGF0aWMgaW50IHE2djVfcGRzX2F0dGFjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKipkZXZzLAogCiAJZm9yIChpID0gMDsgaSA8IG51bV9wZHM7IGkrKykgewogCQlkZXZzW2ldID0gZGV2X3BtX2RvbWFpbl9hdHRhY2hfYnlfbmFtZShkZXYsIHBkX25hbWVzW2ldKTsKLQkJaWYgKElTX0VSUihkZXZzW2ldKSkgewotCQkJcmV0ID0gUFRSX0VSUihkZXZzW2ldKTsKKwkJaWYgKElTX0VSUl9PUl9OVUxMKGRldnNbaV0pKSB7CisJCQlyZXQgPSBQVFJfRVJSKGRldnNbaV0pID8gOiAtRU5PREFUQTsKIAkJCWdvdG8gdW5yb2xsX2F0dGFjaDsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVtb3RlcHJvYy9yZW1vdGVwcm9jX3N5c2ZzLmMgYi9kcml2ZXJzL3JlbW90ZXByb2MvcmVtb3RlcHJvY19zeXNmcy5jCmluZGV4IGZhNDEzMTkuLjdmODUzNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcmVtb3RlcHJvYy9yZW1vdGVwcm9jX3N5c2ZzLmMKKysrIGIvZHJpdmVycy9yZW1vdGVwcm9jL3JlbW90ZXByb2Nfc3lzZnMuYwpAQCAtMTEzLDkgKzExMywyMCBAQCBzdGF0aWMgc3NpemVfdCBzdGF0ZV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiB9CiBzdGF0aWMgREVWSUNFX0FUVFJfUlcoc3RhdGUpOwogCisvKiBFeHBvc2UgdGhlIG5hbWUgb2YgdGhlIHJlbW90ZSBwcm9jZXNzb3IgdmlhIHN5c2ZzICovCitzdGF0aWMgc3NpemVfdCBuYW1lX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSBjaGFyICpidWYpCit7CisJc3RydWN0IHJwcm9jICpycHJvYyA9IHRvX3Jwcm9jKGRldik7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlc1xuIiwgcnByb2MtPm5hbWUpOworfQorc3RhdGljIERFVklDRV9BVFRSX1JPKG5hbWUpOworCiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcnByb2NfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfZmlybXdhcmUuYXR0ciwKIAkmZGV2X2F0dHJfc3RhdGUuYXR0ciwKKwkmZGV2X2F0dHJfbmFtZS5hdHRyLAogCU5VTEwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVtb3RlcHJvYy9zdG0zMl9ycHJvYy5jIGIvZHJpdmVycy9yZW1vdGVwcm9jL3N0bTMyX3Jwcm9jLmMKaW5kZXggZTJkYTcxOS4uMmNmNGIyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9yZW1vdGVwcm9jL3N0bTMyX3Jwcm9jLmMKKysrIGIvZHJpdmVycy9yZW1vdGVwcm9jL3N0bTMyX3Jwcm9jLmMKQEAgLTM4MywxMCArMzgzLDIxIEBAIHN0YXRpYyB2b2lkIHN0bTMyX3Jwcm9jX2FkZF9jb3JlZHVtcF90cmFjZShzdHJ1Y3QgcnByb2MgKnJwcm9jKQogCiBzdGF0aWMgaW50IHN0bTMyX3Jwcm9jX3N0YXJ0KHN0cnVjdCBycHJvYyAqcnByb2MpCiB7CisJc3RydWN0IHN0bTMyX3Jwcm9jICpkZGF0YSA9IHJwcm9jLT5wcml2OwogCWludCBlcnI7CiAKIAlzdG0zMl9ycHJvY19hZGRfY29yZWR1bXBfdHJhY2UocnByb2MpOwogCisJLyogY2xlYXIgcmVtb3RlIHByb2MgRGVlcCBTbGVlcCAqLworCWlmIChkZGF0YS0+cGRkcy5tYXApIHsKKwkJZXJyID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRkYXRhLT5wZGRzLm1hcCwgZGRhdGEtPnBkZHMucmVnLAorCQkJCQkgZGRhdGEtPnBkZHMubWFzaywgMCk7CisJCWlmIChlcnIpIHsKKwkJCWRldl9lcnIoJnJwcm9jLT5kZXYsICJmYWlsZWQgdG8gY2xlYXIgcGRkc1xuIik7CisJCQlyZXR1cm4gZXJyOworCQl9CisJfQorCiAJZXJyID0gc3RtMzJfcnByb2Nfc2V0X2hvbGRfYm9vdChycHJvYywgZmFsc2UpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CkBAIC01MDYsNiArNTE3LDkgQEAgc3RhdGljIGludCBzdG0zMl9ycHJvY19wYXJzZV9kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWludCBlcnIsIGlycTsKIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJaWYgKGlycSA9PSAtRVBST0JFX0RFRkVSKQorCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKKwogCWlmIChpcnEgPiAwKSB7CiAJCWVyciA9IGRldm1fcmVxdWVzdF9pcnEoZGV2LCBpcnEsIHN0bTMyX3Jwcm9jX3dkZywgMCwKIAkJCQkgICAgICAgZGV2X25hbWUoZGV2KSwgcnByb2MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ycG1zZy9xY29tX2dsaW5rX25hdGl2ZS5jIGIvZHJpdmVycy9ycG1zZy9xY29tX2dsaW5rX25hdGl2ZS5jCmluZGV4IGY0NmM3ODcuLjYyMWYxYWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnBtc2cvcWNvbV9nbGlua19uYXRpdmUuYworKysgYi9kcml2ZXJzL3JwbXNnL3Fjb21fZ2xpbmtfbmF0aXZlLmMKQEAgLTg5Miw3ICs4OTIsNyBAQCBzdGF0aWMgdm9pZCBxY29tX2dsaW5rX2hhbmRsZV9pbnRlbnQoc3RydWN0IHFjb21fZ2xpbmsgKmdsaW5rLAogCQlzdHJ1Y3QgaW50ZW50X3BhaXIgaW50ZW50c1tdOwogCX0gX19wYWNrZWQgKiBtc2c7CiAKLQljb25zdCBzaXplX3QgbXNnbGVuID0gc2l6ZW9mKCptc2cpICsgc2l6ZW9mKHN0cnVjdCBpbnRlbnRfcGFpcikgKiBjb3VudDsKKwljb25zdCBzaXplX3QgbXNnbGVuID0gc3RydWN0X3NpemUobXNnLCBpbnRlbnRzLCBjb3VudCk7CiAJaW50IHJldDsKIAlpbnQgaTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ycG1zZy9xY29tX2dsaW5rX3NtZW0uYyBiL2RyaXZlcnMvcnBtc2cvcWNvbV9nbGlua19zbWVtLmMKaW5kZXggNjRhNWNlMy4uNDIzODM4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ycG1zZy9xY29tX2dsaW5rX3NtZW0uYworKysgYi9kcml2ZXJzL3JwbXNnL3Fjb21fZ2xpbmtfc21lbS5jCkBAIC0yMDEsNyArMjAxLDcgQEAgc3RydWN0IHFjb21fZ2xpbmsgKnFjb21fZ2xpbmtfc21lbV9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCiAJZGV2LT5wYXJlbnQgPSBwYXJlbnQ7CiAJZGV2LT5vZl9ub2RlID0gbm9kZTsKIAlkZXYtPnJlbGVhc2UgPSBxY29tX2dsaW5rX3NtZW1fcmVsZWFzZTsKLQlkZXZfc2V0X25hbWUoZGV2LCAiJXBPRm46JXBPRm4iLCBub2RlLT5wYXJlbnQsIG5vZGUpOworCWRldl9zZXRfbmFtZShkZXYsICIlczolcE9GbiIsIGRldl9uYW1lKHBhcmVudC0+cGFyZW50KSwgbm9kZSk7CiAJcmV0ID0gZGV2aWNlX3JlZ2lzdGVyKGRldik7CiAJaWYgKHJldCkgewogCQlwcl9lcnIoImZhaWxlZCB0byByZWdpc3RlciBnbGluayBlZGdlXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnBtc2cvcnBtc2dfY29yZS5jIGIvZHJpdmVycy9ycG1zZy9ycG1zZ19jb3JlLmMKaW5kZXggZWE4OGZkNC4uZTMzMGVjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ycG1zZy9ycG1zZ19jb3JlLmMKKysrIGIvZHJpdmVycy9ycG1zZy9ycG1zZ19jb3JlLmMKQEAgLTQ2LDcgKzQ2LDcgQEAKICAqIGVxdWFscyB0byB0aGUgc3JjIGFkZHJlc3Mgb2YgdGhlaXIgcnBtc2cgY2hhbm5lbCksIHRoZSBkcml2ZXIncyBoYW5kbGVyCiAgKiBpcyBpbnZva2VkIHRvIHByb2Nlc3MgaXQuCiAgKgotICogVGhhdCBzYWlkLCBtb3JlIGNvbXBsaWNhdGVkIGRyaXZlcnMgbWlnaHQgZG8gbmVlZCB0byBhbGxvY2F0ZQorICogVGhhdCBzYWlkLCBtb3JlIGNvbXBsaWNhdGVkIGRyaXZlcnMgbWlnaHQgbmVlZCB0byBhbGxvY2F0ZQogICogYWRkaXRpb25hbCBycG1zZyBhZGRyZXNzZXMsIGFuZCBiaW5kIHRoZW0gdG8gZGlmZmVyZW50IHJ4IGNhbGxiYWNrcy4KICAqIFRvIGFjY29tcGxpc2ggdGhhdCwgdGhvc2UgZHJpdmVycyBuZWVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbi4KICAqCkBAIC0xNzcsNyArMTc3LDcgQEAgaW50IHJwbXNnX3NlbmRfb2ZmY2hhbm5lbChzdHJ1Y3QgcnBtc2dfZW5kcG9pbnQgKmVwdCwgdTMyIHNyYywgdTMyIGRzdCwKIEVYUE9SVF9TWU1CT0wocnBtc2dfc2VuZF9vZmZjaGFubmVsKTsKIAogLyoqCi0gKiBycG1zZ19zZW5kKCkgLSBzZW5kIGEgbWVzc2FnZSBhY3Jvc3MgdG8gdGhlIHJlbW90ZSBwcm9jZXNzb3IKKyAqIHJwbXNnX3RyeXNlbmQoKSAtIHNlbmQgYSBtZXNzYWdlIGFjcm9zcyB0byB0aGUgcmVtb3RlIHByb2Nlc3NvcgogICogQGVwdDogdGhlIHJwbXNnIGVuZHBvaW50CiAgKiBAZGF0YTogcGF5bG9hZCBvZiBtZXNzYWdlCiAgKiBAbGVuOiBsZW5ndGggb2YgcGF5bG9hZApAQCAtMjA1LDcgKzIwNSw3IEBAIGludCBycG1zZ190cnlzZW5kKHN0cnVjdCBycG1zZ19lbmRwb2ludCAqZXB0LCB2b2lkICpkYXRhLCBpbnQgbGVuKQogRVhQT1JUX1NZTUJPTChycG1zZ190cnlzZW5kKTsKIAogLyoqCi0gKiBycG1zZ19zZW5kdG8oKSAtIHNlbmQgYSBtZXNzYWdlIGFjcm9zcyB0byB0aGUgcmVtb3RlIHByb2Nlc3Nvciwgc3BlY2lmeSBkc3QKKyAqIHJwbXNnX3RyeXNlbmR0bygpIC0gc2VuZCBhIG1lc3NhZ2UgYWNyb3NzIHRvIHRoZSByZW1vdGUgcHJvY2Vzc29yLCBzcGVjaWZ5IGRzdAogICogQGVwdDogdGhlIHJwbXNnIGVuZHBvaW50CiAgKiBAZGF0YTogcGF5bG9hZCBvZiBtZXNzYWdlCiAgKiBAbGVuOiBsZW5ndGggb2YgcGF5bG9hZApAQCAtMjUzLDcgKzI1Myw3IEBAIF9fcG9sbF90IHJwbXNnX3BvbGwoc3RydWN0IHJwbXNnX2VuZHBvaW50ICplcHQsIHN0cnVjdCBmaWxlICpmaWxwLAogRVhQT1JUX1NZTUJPTChycG1zZ19wb2xsKTsKIAogLyoqCi0gKiBycG1zZ19zZW5kX29mZmNoYW5uZWwoKSAtIHNlbmQgYSBtZXNzYWdlIHVzaW5nIGV4cGxpY2l0IHNyYy9kc3QgYWRkcmVzc2VzCisgKiBycG1zZ190cnlzZW5kX29mZmNoYW5uZWwoKSAtIHNlbmQgYSBtZXNzYWdlIHVzaW5nIGV4cGxpY2l0IHNyYy9kc3QgYWRkcmVzc2VzCiAgKiBAZXB0OiB0aGUgcnBtc2cgZW5kcG9pbnQKICAqIEBzcmM6IHNvdXJjZSBhZGRyZXNzCiAgKiBAZHN0OiBkZXN0aW5hdGlvbiBhZGRyZXNzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3JwbXNnL3JwbXNnX2ludGVybmFsLmggYi9kcml2ZXJzL3JwbXNnL3JwbXNnX2ludGVybmFsLmgKaW5kZXggMGQ3OTFjMy4uM2ZjODNjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ycG1zZy9ycG1zZ19pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvcnBtc2cvcnBtc2dfaW50ZXJuYWwuaApAQCAtMjAsNyArMjAsNyBAQAogCiAvKioKICAqIHN0cnVjdCBycG1zZ19kZXZpY2Vfb3BzIC0gaW5kaXJlY3Rpb24gdGFibGUgZm9yIHRoZSBycG1zZ19kZXZpY2Ugb3BlcmF0aW9ucwotICogQGNyZWF0ZV9lcHQ6CQljcmVhdGUgYmFja2VuZC1zcGVjaWZpYyBlbmRwb2ludCwgcmVxdXJpZWQKKyAqIEBjcmVhdGVfZXB0OgkJY3JlYXRlIGJhY2tlbmQtc3BlY2lmaWMgZW5kcG9pbnQsIHJlcXVpcmVkCiAgKiBAYW5ub3VuY2VfY3JlYXRlOglhbm5vdW5jZSBwcmVzZW5jZSBvZiBuZXcgY2hhbm5lbCwgb3B0aW9uYWwKICAqIEBhbm5vdW5jZV9kZXN0cm95Oglhbm5vdW5jZSBkZXN0cnVjdGlvbiBvZiBjaGFubmVsLCBvcHRpb25hbAogICoKQEAgLTM5LDEzICszOSwxNCBAQCBzdHJ1Y3QgcnBtc2dfZGV2aWNlX29wcyB7CiAKIC8qKgogICogc3RydWN0IHJwbXNnX2VuZHBvaW50X29wcyAtIGluZGlyZWN0aW9uIHRhYmxlIGZvciBycG1zZ19lbmRwb2ludCBvcGVyYXRpb25zCi0gKiBAZGVzdHJveV9lcHQ6CWRlc3Ryb3kgdGhlIGdpdmVuIGVuZHBvaW50LCByZXF1aXJlZAorICogQGRlc3Ryb3lfZXB0OglzZWUgQHJwbXNnX2Rlc3Ryb3lfZXB0KCksIHJlcXVpcmVkCiAgKiBAc2VuZDoJCXNlZSBAcnBtc2dfc2VuZCgpLCByZXF1aXJlZAogICogQHNlbmR0bzoJCXNlZSBAcnBtc2dfc2VuZHRvKCksIG9wdGlvbmFsCiAgKiBAc2VuZF9vZmZjaGFubmVsOglzZWUgQHJwbXNnX3NlbmRfb2ZmY2hhbm5lbCgpLCBvcHRpb25hbAogICogQHRyeXNlbmQ6CQlzZWUgQHJwbXNnX3RyeXNlbmQoKSwgcmVxdWlyZWQKICAqIEB0cnlzZW5kdG86CQlzZWUgQHJwbXNnX3RyeXNlbmR0bygpLCBvcHRpb25hbAogICogQHRyeXNlbmRfb2ZmY2hhbm5lbDoJc2VlIEBycG1zZ190cnlzZW5kX29mZmNoYW5uZWwoKSwgb3B0aW9uYWwKKyAqIEBwb2xsOgkJc2VlIEBycG1zZ19wb2xsKCksIG9wdGlvbmFsCiAgKgogICogSW5kaXJlY3Rpb24gdGFibGUgZm9yIHRoZSBvcGVyYXRpb25zIHRoYXQgYSBycG1zZyBiYWNrZW5kIHNob3VsZCBpbXBsZW1lbnQuCiAgKiBJbiBhZGRpdGlvbiB0byBAZGVzdHJveV9lcHQsIHRoZSBiYWNrZW5kIG11c3QgYXQgbGVhc3QgaW1wbGVtZW50IEBzZW5kIGFuZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ycG1zZy92aXJ0aW9fcnBtc2dfYnVzLmMgYi9kcml2ZXJzL3JwbXNnL3ZpcnRpb19ycG1zZ19idXMuYwppbmRleCA1ZDM2ODViLi4zNzZlYmJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3JwbXNnL3ZpcnRpb19ycG1zZ19idXMuYworKysgYi9kcml2ZXJzL3JwbXNnL3ZpcnRpb19ycG1zZ19idXMuYwpAQCAtOTIwLDcgKzkyMCw3IEBAIHN0YXRpYyBpbnQgcnBtc2dfcHJvYmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCiAJCWdvdG8gdnFzX2RlbDsKIAl9CiAKLQlkZXZfZGJnKCZ2ZGV2LT5kZXYsICJidWZmZXJzOiB2YSAlcCwgZG1hICVwYWRcbiIsCisJZGV2X2RiZygmdmRldi0+ZGV2LCAiYnVmZmVyczogdmEgJXBLLCBkbWEgJXBhZFxuIiwKIAkJYnVmc192YSwgJnZycC0+YnVmc19kbWEpOwogCiAJLyogaGFsZiBvZiB0aGUgYnVmZmVycyBpcyBkZWRpY2F0ZWQgZm9yIFJYICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9LY29uZmlnIGIvZHJpdmVycy9ydGMvS2NvbmZpZwppbmRleCBlNzJmNjViLi4xYWRmOWY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9LY29uZmlnCisrKyBiL2RyaXZlcnMvcnRjL0tjb25maWcKQEAgLTM3Myw2ICszNzMsMTcgQEAKIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBJZiBzbywgdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgcnRjLW1heDc3Njg2LgogCitjb25maWcgUlRDX0RSVl9NRVNPTl9WUlRDCisJdHJpc3RhdGUgIkFtbG9naWMgTWVzb24gVmlydHVhbCBSVEMiCisJZGVwZW5kcyBvbiBBUkNIX01FU09OIHx8IENPTVBJTEVfVEVTVAorCWRlZmF1bHQgbSBpZiBBUkNIX01FU09OCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3Ugd2lsbCBnZXQgc3VwcG9ydCBmb3IgdGhlCisJICBWaXJ0dWFsIFJUQyBvZiBBbWxvZ2ljIFNvQ3MuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgcnRjLW1lc29uLXZydGMuCisKIGNvbmZpZyBSVENfRFJWX1JLODA4CiAJdHJpc3RhdGUgIlJvY2tjaGlwIFJLODA1L1JLODA4L1JLODA5L1JLODE3L1JLODE4IFJUQyIKIAlkZXBlbmRzIG9uIE1GRF9SSzgwOApAQCAtNTAwLDYgKzUxMSw3IEBACiAJICB3YXRjaGRvZyB0aW1lciBpbiB0aGUgU1QgTTQxVDYwIGFuZCBNNDFUODAgUlRDIGNoaXBzIHNlcmllcy4KIGNvbmZpZyBSVENfRFJWX0JENzA1MjgKIAl0cmlzdGF0ZSAiUk9ITSBCRDcwNTI4IFBNSUMgUlRDIgorCWRlcGVuZHMgb24gTUZEX1JPSE1fQkQ3MDUyOCAmJiAoQkQ3MDUyOF9XQVRDSERPRyB8fCAhQkQ3MDUyOF9XQVRDSERPRykKIAloZWxwCiAJICBJZiB5b3Ugc2F5IFkgaGVyZSB5b3Ugd2lsbCBnZXQgc3VwcG9ydCBmb3IgdGhlIFJUQwogCSAgb24gUk9ITSBCRDcwNTI4IFBvd2VyIE1hbmFnZW1lbnQgSUMuCkBAIC04NzQsOSArODg2LDE1IEBACiBjb25maWcgUlRDX0RSVl9QQ0YyMTI3CiAJdHJpc3RhdGUgIk5YUCBQQ0YyMTI3IgogCWRlcGVuZHMgb24gUlRDX0kyQ19BTkRfU1BJCisJc2VsZWN0IFdBVENIRE9HX0NPUkUgaWYgV0FUQ0hET0cKIAloZWxwCiAJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIE5YUCBQQ0YyMTI3LzI5IFJUQwotCSAgY2hpcHMuCisJICBjaGlwcyB3aXRoIGludGVncmF0ZWQgcXVhcnR6IGNyeXN0YWwgZm9yIGluZHVzdHJpYWwgYXBwbGljYXRpb25zLgorCSAgQm90aCBjaGlwcyBhbHNvIGhhdmUgd2F0Y2hkb2cgdGltZXIgYW5kIHRhbXBlciBzd2l0Y2ggZGV0ZWN0aW9uCisJICBmZWF0dXJlcy4KKworCSAgUENGMjEyNyBoYXMgYW4gYWRkaXRpb25hbCBmZWF0dXJlIG9mIDUxMiBieXRlcyBiYXR0ZXJ5IGJhY2tlZAorCSAgbWVtb3J5IHRoYXQncyBhY2Nlc3NpYmxlIHVzaW5nIG52bWVtIGludGVyZmFjZS4KIAogCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuIElmIHNvLCB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBydGMtcGNmMjEyNy4KQEAgLTEyNDcsMTMgKzEyNjUsNiBAQAogCSAgU2VsZWN0IHRoaXMgdG8gZW5hYmxlIHRoZSBTVC1Fcmljc3NvbiBBQjg1MDAgcG93ZXIgbWFuYWdlbWVudCBJQyBSVEMKIAkgIHN1cHBvcnQuIFRoaXMgY2hpcCBjb250YWlucyBhIGJhdHRlcnktIGFuZCBjYXBhY2l0b3ItYmFja2VkIFJUQy4KIAotY29uZmlnIFJUQ19EUlZfTlVDOTAwCi0JdHJpc3RhdGUgIk5VQzkxMC9OVUM5MjAgUlRDIGRyaXZlciIKLQlkZXBlbmRzIG9uIEFSQ0hfVzkwWDkwMCB8fCBDT01QSUxFX1RFU1QKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIFJUQyBzdWJzeXN0ZW0gb2YgdGhlCi0JICBOVUM5MTAvTlVDOTIwIHVzZWQgaW4gZW1iZWRkZWQgc3lzdGVtcy4KLQogY29uZmlnIFJUQ19EUlZfT1BBTAogCXRyaXN0YXRlICJJQk0gT1BBTCBSVEMgZHJpdmVyIgogCWRlcGVuZHMgb24gUFBDX1BPV0VSTlYKQEAgLTEyNzQsNyArMTI4NSw3IEBACiAKIGNvbmZpZyBSVENfRFJWX0NST1NfRUMKIAl0cmlzdGF0ZSAiQ2hyb21lIE9TIEVDIFJUQyBkcml2ZXIiCi0JZGVwZW5kcyBvbiBNRkRfQ1JPU19FQworCWRlcGVuZHMgb24gQ1JPU19FQwogCWhlbHAKIAkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IHdpbGwgZ2V0IHN1cHBvcnQgZm9yIHRoZQogCSAgQ2hyb21lIE9TIEVtYmVkZGVkIENvbnRyb2xsZXIncyBSVEMuCkBAIC0xMzIzLDYgKzEzMzQsMjEgQEAKIAkgICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZSwgaWYgc28sIHRoZSBtb2R1bGUKIAkgICB3aWxsIGJlIGNhbGxlZCAicnRjLWlteGRpIi4KIAorY29uZmlnIFJUQ19EUlZfRlNMX0ZUTV9BTEFSTQorCXRyaXN0YXRlICJGcmVlc2NhbGUgRmxleFRpbWVyIGFsYXJtIHRpbWVyIgorCWRlcGVuZHMgb24gQVJDSF9MQVlFUlNDQVBFIHx8IFNPQ19MUzEwMjFBCisJc2VsZWN0IEZTTF9SQ1BNCisJZGVmYXVsdCB5CisJaGVscAorCSAgIEZvciB0aGUgRmxleFRpbWVyIGluIExTMTAxMkEsIExTMTAyMUEsIExTMTAyOEEsIExTMTA0M0EsIExTMTA0NkEsCisJICAgTFMxMDg4QSwgTFMyMDh4QSwgd2UgY2FuIHVzZSBGVE0gYXMgdGhlIHdha2V1cCBzb3VyY2UuCisKKwkgICBTYXkgeSBoZXJlIHRvIGVuYWJsZSBGVE0gYWxhcm0gc3VwcG9ydC4gVGhlIEZUTSBhbGFybSBwcm92aWRlcworCSAgIGFsYXJtIGZ1bmN0aW9ucyBmb3Igd2FrZXVwIHN5c3RlbSBmcm9tIGRlZXAgc2xlZXAuCisKKwkgICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZSwgaWYgc28sIHRoZSBtb2R1bGUKKwkgICB3aWxsIGJlIGNhbGxlZCAicnRjLWZzbC1mdG0tYWxhcm0iLgorCiBjb25maWcgUlRDX0RSVl9NRVNPTgogCXRyaXN0YXRlICJBbWxvZ2ljIE1lc29uIFJUQyIKIAlkZXBlbmRzIG9uIChBUk0gJiYgQVJDSF9NRVNPTikgfHwgQ09NUElMRV9URVNUCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9NYWtlZmlsZSBiL2RyaXZlcnMvcnRjL01ha2VmaWxlCmluZGV4IDZiMDljMjEuLjRhYzhmMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcnRjL01ha2VmaWxlCkBAIC03Myw2ICs3Myw3IEBACiBvYmotJChDT05GSUdfUlRDX0RSVl9FTTMwMjcpCSs9IHJ0Yy1lbTMwMjcubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfRVA5M1hYKQkrPSBydGMtZXA5M3h4Lm8KIG9iai0kKENPTkZJR19SVENfRFJWX0ZNMzEzMCkJKz0gcnRjLWZtMzEzMC5vCitvYmotJChDT05GSUdfUlRDX0RSVl9GU0xfRlRNX0FMQVJNKQkrPSBydGMtZnNsLWZ0bS1hbGFybS5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9GVFJUQzAxMCkJKz0gcnRjLWZ0cnRjMDEwLm8KIG9iai0kKENPTkZJR19SVENfRFJWX0dFTkVSSUMpCSs9IHJ0Yy1nZW5lcmljLm8KIG9iai0kKENPTkZJR19SVENfRFJWX0dPTERGSVNIKQkrPSBydGMtZ29sZGZpc2gubwpAQCAtMTAyLDYgKzEwMyw3IEBACiBvYmotJChDT05GSUdfUlRDX0RSVl9NQVg4OTI1KQkrPSBydGMtbWF4ODkyNS5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9NQVg4OTk3KQkrPSBydGMtbWF4ODk5Ny5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9NQVg4OTk4KQkrPSBydGMtbWF4ODk5OC5vCitvYmotJChDT05GSUdfUlRDX0RSVl9NRVNPTl9WUlRDKSs9IHJ0Yy1tZXNvbi12cnRjLm8KIG9iai0kKENPTkZJR19SVENfRFJWX01DMTNYWFgpCSs9IHJ0Yy1tYzEzeHh4Lm8KIG9iai0kKENPTkZJR19SVENfRFJWX01DUDc5NSkJKz0gcnRjLW1jcDc5NS5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9NRVNPTikJKz0gcnRjLW1lc29uLm8KQEAgLTExMyw3ICsxMTUsNiBAQAogb2JqLSQoQ09ORklHX1JUQ19EUlZfTVYpCSs9IHJ0Yy1tdi5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9NWEMpCSs9IHJ0Yy1teGMubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfTVhDX1YyKQkrPSBydGMtbXhjX3YyLm8KLW9iai0kKENPTkZJR19SVENfRFJWX05VQzkwMCkJKz0gcnRjLW51YzkwMC5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9PTUFQKQkrPSBydGMtb21hcC5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9PUEFMKQkrPSBydGMtb3BhbC5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9QQUxNQVMpCSs9IHJ0Yy1wYWxtYXMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvY2xhc3MuYyBiL2RyaXZlcnMvcnRjL2NsYXNzLmMKaW5kZXggMGY0OTJiMC4uOTQ1OGU2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvY2xhc3MuYworKysgYi9kcml2ZXJzL3J0Yy9jbGFzcy5jCkBAIC0zNDYsOCArMzQ2LDEwIEBAIGludCBfX3J0Y19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG1vZHVsZSAqb3duZXIsIHN0cnVjdCBydGNfZGV2aWNlICpydGMpCiAJc3RydWN0IHJ0Y193a2Fscm0gYWxybTsKIAlpbnQgZXJyOwogCi0JaWYgKCFydGMtPm9wcykKKwlpZiAoIXJ0Yy0+b3BzKSB7CisJCWRldl9kYmcoJnJ0Yy0+ZGV2LCAibm8gb3BzIHNldFxuIik7CiAJCXJldHVybiAtRUlOVkFMOworCX0KIAogCXJ0Yy0+b3duZXIgPSBvd25lcjsKIAlydGNfZGV2aWNlX2dldF9vZmZzZXQocnRjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy04OHBtODB4LmMgYi9kcml2ZXJzL3J0Yy9ydGMtODhwbTgweC5jCmluZGV4IGU0ZDVhMTkuLjc1Nzc5ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy04OHBtODB4LmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLTg4cG04MHguYwpAQCAtMjY0LDcgKzI2NCw2IEBAIHN0YXRpYyBpbnQgcG04MHhfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiAtRU5PTUVNOwogCWluZm8tPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CiAJaWYgKGluZm8tPmlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8gSVJRIHJlc291cmNlIVxuIik7CiAJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTI5NiwxMCArMjk1LDkgQEAgc3RhdGljIGludCBwbTgweF9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpbmZvLT5ydGNfZGV2LT5yYW5nZV9tYXggPSBVMzJfTUFYOwogCiAJcmV0ID0gcnRjX3JlZ2lzdGVyX2RldmljZShpbmZvLT5ydGNfZGV2KTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byByZWdpc3RlciBSVEMgZGV2aWNlOiAlZFxuIiwgcmV0KTsKKwlpZiAocmV0KQogCQlnb3RvIG91dF9ydGM7Ci0JfQorCiAJLyoKIAkgKiBlbmFibGUgaW50ZXJuYWwgWE8gaW5zdGVhZCBvZiBpbnRlcm5hbCAzLjI1TUh6IGNsb2NrIHNpbmNlIGl0IGNhbgogCSAqIGZyZWUgcnVubmluZyBpbiBQTUlDIHBvd2VyLWRvd24gc3RhdGUuCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtODhwbTg2MHguYyBiL2RyaXZlcnMvcnRjL3J0Yy04OHBtODYweC5jCmluZGV4IDQzNDI4NWYuLjQ3NDNiMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy04OHBtODYweC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy04OHBtODYweC5jCkBAIC0zMjgsMTAgKzMyOCw4IEBAIHN0YXRpYyBpbnQgcG04NjB4X3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghaW5mbykKIAkJcmV0dXJuIC1FTk9NRU07CiAJaW5mby0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaW5mby0+aXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBJUlEgcmVzb3VyY2UhXG4iKTsKKwlpZiAoaW5mby0+aXJxIDwgMCkKIAkJcmV0dXJuIGluZm8tPmlycTsKLQl9CiAKIAlpbmZvLT5jaGlwID0gY2hpcDsKIAlpbmZvLT5pMmMgPSAoY2hpcC0+aWQgPT0gQ0hJUF9QTTg2MDcpID8gY2hpcC0+Y2xpZW50IDogY2hpcC0+Y29tcGFuaW9uOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWFiLWVvejkuYyBiL2RyaXZlcnMvcnRjL3J0Yy1hYi1lb3o5LmMKaW5kZXggZTRmNmUwMC4uZDY5MDk4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWFiLWVvejkuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtYWItZW96OS5jCkBAIC0zOTAsMzUgKzM5MCwzMSBAQCBzdGF0aWMgaW50IGFiZW96OV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCiAJaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShjbGllbnQtPmFkYXB0ZXIsIEkyQ19GVU5DX0kyQyB8CiAJCQkJICAgICBJMkNfRlVOQ19TTUJVU19CWVRFX0RBVEEgfAotCQkJCSAgICAgSTJDX0ZVTkNfU01CVVNfSTJDX0JMT0NLKSkgewotCQlyZXQgPSAtRU5PREVWOwotCQlnb3RvIGVycjsKLQl9CisJCQkJICAgICBJMkNfRlVOQ19TTUJVU19JMkNfQkxPQ0spKQorCQlyZXR1cm4gLUVOT0RFVjsKIAogCXJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXRfaTJjKGNsaWVudCwgJmFiZW96OV9ydGNfcmVnbWFwX2NvbmZpZyk7CiAJaWYgKElTX0VSUihyZWdtYXApKSB7CiAJCXJldCA9IFBUUl9FUlIocmVnbWFwKTsKIAkJZGV2X2VycihkZXYsICJyZWdtYXAgYWxsb2NhdGlvbiBmYWlsZWQ6ICVkXG4iLCByZXQpOwotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIAlkYXRhID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFkYXRhKSB7Ci0JCXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gZXJyOwotCX0KKwlpZiAoIWRhdGEpCisJCXJldHVybiAtRU5PTUVNOwogCiAJZGF0YS0+cmVnbWFwID0gcmVnbWFwOwogCWRldl9zZXRfZHJ2ZGF0YShkZXYsIGRhdGEpOwogCiAJcmV0ID0gYWJlb3o5X3J0Y19zZXR1cChkZXYsIGNsaWVudC0+ZGV2Lm9mX25vZGUpOwogCWlmIChyZXQpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJZGF0YS0+cnRjID0gZGV2bV9ydGNfYWxsb2NhdGVfZGV2aWNlKGRldik7CiAJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKGRhdGEtPnJ0Yyk7CiAJaWYgKHJldCkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAlkYXRhLT5ydGMtPm9wcyA9ICZydGNfb3BzOwogCWRhdGEtPnJ0Yy0+cmFuZ2VfbWluID0gUlRDX1RJTUVTVEFNUF9CRUdJTl8yMDAwOwpAQCAtNDI2LDE0ICs0MjIsMTAgQEAgc3RhdGljIGludCBhYmVvejlfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAogCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UoZGF0YS0+cnRjKTsKIAlpZiAocmV0KQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCWFiZW96OV9od21vbl9yZWdpc3RlcihkZXYsIGRhdGEpOwogCXJldHVybiAwOwotCi1lcnI6Ci0JZGV2X2VycihkZXYsICJ1bmFibGUgdG8gcmVnaXN0ZXIgUlRDIGRldmljZSAoJWQpXG4iLCByZXQpOwotCXJldHVybiByZXQ7CiB9CiAKICNpZmRlZiBDT05GSUdfT0YKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1hYzEwMC5jIGIvZHJpdmVycy9ydGMvcnRjLWFjMTAwLmMKaW5kZXggMmU1YThiMS4uMjkyMjM5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWFjMTAwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWFjMTAwLmMKQEAgLTU3OCwxMCArNTc4LDggQEAgc3RhdGljIGludCBhYzEwMF9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAljaGlwLT5yZWdtYXAgPSBhYzEwMC0+cmVnbWFwOwogCiAJY2hpcC0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoY2hpcC0+aXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBJUlEgcmVzb3VyY2VcbiIpOworCWlmIChjaGlwLT5pcnEgPCAwKQogCQlyZXR1cm4gY2hpcC0+aXJxOwotCX0KIAogCWNoaXAtPnJ0YyA9IGRldm1fcnRjX2FsbG9jYXRlX2RldmljZSgmcGRldi0+ZGV2KTsKIAlpZiAoSVNfRVJSKGNoaXAtPnJ0YykpCkBAIC02MTIsMTUgKzYxMCw3IEBAIHN0YXRpYyBpbnQgYWMxMDBfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UoY2hpcC0+cnRjKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgInVuYWJsZSB0byByZWdpc3RlciBkZXZpY2VcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWRldl9pbmZvKCZwZGV2LT5kZXYsICJSVEMgZW5hYmxlZFxuIik7Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gcnRjX3JlZ2lzdGVyX2RldmljZShjaGlwLT5ydGMpOwogfQogCiBzdGF0aWMgaW50IGFjMTAwX3J0Y19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1hcm1hZGEzOHguYyBiL2RyaXZlcnMvcnRjL3J0Yy1hcm1hZGEzOHguYwppbmRleCAxOWQ2OTgwLi45MzUxYmQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtYXJtYWRhMzh4LmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWFybWFkYTM4eC5jCkBAIC01MDIsNyArNTAyLDYgQEAgc3RhdGljIF9faW5pdCBpbnQgYXJtYWRhMzh4X3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCXN0cnVjdCBhcm1hZGEzOHhfcnRjICpydGM7CiAJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7Ci0JaW50IHJldDsKIAogCW1hdGNoID0gb2ZfbWF0Y2hfZGV2aWNlKGFybWFkYTM4eF9ydGNfb2ZfbWF0Y2hfdGFibGUsICZwZGV2LT5kZXYpOwogCWlmICghbWF0Y2gpCkBAIC01MzAsMTEgKzUyOSw4IEBAIHN0YXRpYyBfX2luaXQgaW50IGFybWFkYTM4eF9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcmV0dXJuIFBUUl9FUlIocnRjLT5yZWdzX3NvYyk7CiAKIAlydGMtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0KLQlpZiAocnRjLT5pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIGlycVxuIik7CisJaWYgKHJ0Yy0+aXJxIDwgMCkKIAkJcmV0dXJuIHJ0Yy0+aXJxOwotCX0KIAogCXJ0Yy0+cnRjX2RldiA9IGRldm1fcnRjX2FsbG9jYXRlX2RldmljZSgmcGRldi0+ZGV2KTsKIAlpZiAoSVNfRVJSKHJ0Yy0+cnRjX2RldikpCkBAIC01NjQsMTEgKzU2MCw3IEBAIHN0YXRpYyBfX2luaXQgaW50IGFybWFkYTM4eF9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCXJ0Yy0+cnRjX2Rldi0+cmFuZ2VfbWF4ID0gVTMyX01BWDsKIAotCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UocnRjLT5ydGNfZGV2KTsKLQlpZiAocmV0KQotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgUlRDIGRldmljZTogJWRcbiIsIHJldCk7Ci0KLQlyZXR1cm4gcmV0OworCXJldHVybiBydGNfcmVnaXN0ZXJfZGV2aWNlKHJ0Yy0+cnRjX2Rldik7CiB9CiAKICNpZmRlZiBDT05GSUdfUE1fU0xFRVAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1hc205MjYwLmMgYi9kcml2ZXJzL3J0Yy9ydGMtYXNtOTI2MC5jCmluZGV4IGQ0NWE0NDkuLjEwNDEzZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1hc205MjYwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWFzbTkyNjAuYwpAQCAtMjU3LDEwICsyNTcsOCBAQCBzdGF0aWMgaW50IGFzbTkyNjBfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdik7CiAKIAlpcnFfYWxhcm0gPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChpcnFfYWxhcm0gPCAwKSB7Ci0JCWRldl9lcnIoZGV2LCAiTm8gYWxhcm0gSVJRIHJlc291cmNlIGRlZmluZWRcbiIpOworCWlmIChpcnFfYWxhcm0gPCAwKQogCQlyZXR1cm4gaXJxX2FsYXJtOwotCX0KIAogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJcHJpdi0+aW9iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgcmVzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1hc3BlZWQuYyBiL2RyaXZlcnMvcnRjL3J0Yy1hc3BlZWQuYwppbmRleCBhZjNlYjY3Li5lMzUxZDM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtYXNwZWVkLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWFzcGVlZC5jCkBAIC04Niw3ICs4Niw2IEBAIHN0YXRpYyBpbnQgYXNwZWVkX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBhc3BlZWRfcnRjICpydGM7CiAJc3RydWN0IHJlc291cmNlICpyZXM7Ci0JaW50IHJldDsKIAogCXJ0YyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnJ0YyksIEdGUF9LRVJORUwpOwogCWlmICghcnRjKQpAQCAtMTA3LDExICsxMDYsNyBAQCBzdGF0aWMgaW50IGFzcGVlZF9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlydGMtPnJ0Y19kZXYtPnJhbmdlX21pbiA9IFJUQ19USU1FU1RBTVBfQkVHSU5fMTkwMDsKIAlydGMtPnJ0Y19kZXYtPnJhbmdlX21heCA9IDM4ODE0OTg5Mzk5TEw7IC8qIDMxOTktMTItMzEgMjM6NTk6NTkgKi8KIAotCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UocnRjLT5ydGNfZGV2KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcmV0dXJuIDA7CisJcmV0dXJuIHJ0Y19yZWdpc3Rlcl9kZXZpY2UocnRjLT5ydGNfZGV2KTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXNwZWVkX3J0Y19tYXRjaFtdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWF0OTFybTkyMDAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1hdDkxcm05MjAwLmMKaW5kZXggODJhNTRlOS4uZDExOWM2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWF0OTFybTkyMDAuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXJtOTIwMC5jCkBAIC0zNzgsMTAgKzM3OCw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGF0OTFfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJfQogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBpcnEgcmVzb3VyY2UgZGVmaW5lZFxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiAtRU5YSU87Ci0JfQogCiAJYXQ5MV9ydGNfcmVncyA9IGRldm1faW9yZW1hcCgmcGRldi0+ZGV2LCByZWdzLT5zdGFydCwKIAkJCQkgICAgIHJlc291cmNlX3NpemUocmVncykpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWF0OTFzYW05LmMgYi9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXNhbTkuYwppbmRleCA0ZGFmMzc4Li5iYjNiYTdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXNhbTkuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXNhbTkuYwpAQCAtMzQyLDEwICszNDIsOCBAQCBzdGF0aWMgaW50IGF0OTFfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IG9mX3BoYW5kbGVfYXJncyBhcmdzOwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGludGVycnVwdCByZXNvdXJjZVxuIik7CisJaWYgKGlycSA8IDApCiAJCXJldHVybiBpcnE7Ci0JfQogCiAJcnRjID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqcnRjKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFydGMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtYmQ3MDUyOC5jIGIvZHJpdmVycy9ydGMvcnRjLWJkNzA1MjguYwppbmRleCBmOWJkZDU1Li43NzQ0MzMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtYmQ3MDUyOC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1iZDcwNTI4LmMKQEAgLTQxNiwxMSArNDE2LDggQEAgc3RhdGljIGludCBiZDcwNTI4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJYmRfcnRjLT5kZXYgPSAmcGRldi0+ZGV2OwogCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgImJkNzA1MjgtcnRjLWFsbSIpOwotCi0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGdldCBpcnFcbiIpOworCWlmIChpcnEgPCAwKQogCQlyZXR1cm4gaXJxOwotCX0KIAogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGJkX3J0Yyk7CiAKQEAgLTQ3OSwxMSArNDc2LDcgQEAgc3RhdGljIGludCBiZDcwNTI4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiByZXQ7CiAJfQogCi0JcmV0ID0gcnRjX3JlZ2lzdGVyX2RldmljZShydGMpOwotCWlmIChyZXQpCi0JCWRldl9lcnIoJnBkZXYtPmRldiwgIlJlZ2lzdGVyaW5nIFJUQyBmYWlsZWRcbiIpOwotCi0JcmV0dXJuIHJldDsKKwlyZXR1cm4gcnRjX3JlZ2lzdGVyX2RldmljZShydGMpOwogfQogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBiZDcwNTI4X3J0YyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1icmNtc3RiLXdha2V0aW1lci5jIGIvZHJpdmVycy9ydGMvcnRjLWJyY21zdGItd2FrZXRpbWVyLmMKaW5kZXggMmY2NTk0My4uM2U5ODAwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWJyY21zdGItd2FrZXRpbWVyLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWJyY21zdGItd2FrZXRpbWVyLmMKQEAgLTI1NSwxMCArMjU1LDggQEAgc3RhdGljIGludCBicmNtc3RiX3dha2V0bXJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl0aW1lci0+cnRjLT5yYW5nZV9tYXggPSBVMzJfTUFYOwogCiAJcmV0ID0gcnRjX3JlZ2lzdGVyX2RldmljZSh0aW1lci0+cnRjKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoZGV2LCAidW5hYmxlIHRvIHJlZ2lzdGVyIGRldmljZVxuIik7CisJaWYgKHJldCkKIAkJZ290byBlcnJfbm90aWZpZXI7Ci0JfQogCiAJZGV2X2luZm8oZGV2LCAicmVnaXN0ZXJlZCwgd2l0aCBpcnEgJWRcbiIsIHRpbWVyLT5pcnEpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtY2FkZW5jZS5jIGIvZHJpdmVycy9ydGMvcnRjLWNhZGVuY2UuYwppbmRleCAzYjdkNjQzLi41OTJhYWUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtY2FkZW5jZS5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1jYWRlbmNlLmMKQEAgLTI4OSwxMiArMjg5LDggQEAgc3RhdGljIGludCBjZG5zX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCWNydGMtPnJ0Y19kZXYgPSBkZXZtX3J0Y19hbGxvY2F0ZV9kZXZpY2UoJnBkZXYtPmRldik7Ci0JaWYgKElTX0VSUihjcnRjLT5ydGNfZGV2KSkgewotCQlyZXQgPSBQVFJfRVJSKGNydGMtPnJ0Y19kZXYpOwotCQlkZXZfZXJyKCZwZGV2LT5kZXYsCi0JCQkiRmFpbGVkIHRvIGFsbG9jYXRlIHRoZSBSVEMgZGV2aWNlLCAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9CisJaWYgKElTX0VSUihjcnRjLT5ydGNfZGV2KSkKKwkJcmV0dXJuIFBUUl9FUlIoY3J0Yy0+cnRjX2Rldik7CiAKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBjcnRjKTsKIApAQCAtMzQzLDExICszMzksOCBAQCBzdGF0aWMgaW50IGNkbnNfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJd3JpdGVsKENETlNfUlRDX0tSVENSX0tSVEMsIGNydGMtPnJlZ3MgKyBDRE5TX1JUQ19LUlRDUik7CiAKIAlyZXQgPSBydGNfcmVnaXN0ZXJfZGV2aWNlKGNydGMtPnJ0Y19kZXYpOwotCWlmIChyZXQpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LAotCQkJIkZhaWxlZCB0byByZWdpc3RlciB0aGUgUlRDIGRldmljZSwgJWRcbiIsIHJldCk7CisJaWYgKHJldCkKIAkJZ290byBlcnJfZGlzYWJsZV93YWtldXA7Ci0JfQogCiAJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1jcm9zLWVjLmMgYi9kcml2ZXJzL3J0Yy9ydGMtY3Jvcy1lYy5jCmluZGV4IDRkNmJmOTMuLjY5MDllMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1jcm9zLWVjLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWNyb3MtZWMuYwpAQCAtNiw4ICs2LDkgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9ydGMuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtZGF2aW5jaS5jIGIvZHJpdmVycy9ydGMvcnRjLWRhdmluY2kuYwppbmRleCBmY2I3MWJmLi5kOGUwZGIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtZGF2aW5jaS5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1kYXZpbmNpLmMKQEAgLTQ3NywxMCArNDc3LDggQEAgc3RhdGljIGludCBfX2luaXQgZGF2aW5jaV9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlkYXZpbmNpX3J0Yy0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoZGF2aW5jaV9ydGMtPmlycSA8IDApIHsKLQkJZGV2X2VycihkZXYsICJubyBSVEMgaXJxXG4iKTsKKwlpZiAoZGF2aW5jaV9ydGMtPmlycSA8IDApCiAJCXJldHVybiBkYXZpbmNpX3J0Yy0+aXJxOwotCX0KIAogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJZGF2aW5jaV9ydGMtPmJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWRzMTMwNS5jIGIvZHJpdmVycy9ydGMvcnRjLWRzMTMwNS5jCmluZGV4IGUwNGQ2ZTguLjQ0MjBmYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1kczEzMDUuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtZHMxMzA1LmMKQEAgLTY5MCwxOSArNjkwLDE2IEBAIHN0YXRpYyBpbnQgZHMxMzA1X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAKIAkvKiByZWdpc3RlciBSVEMgLi4uIGZyb20gaGVyZSBvbiwgZHMxMzA1LT5jdHJsIG5lZWRzIGxvY2tpbmcgKi8KIAlkczEzMDUtPnJ0YyA9IGRldm1fcnRjX2FsbG9jYXRlX2RldmljZSgmc3BpLT5kZXYpOwotCWlmIChJU19FUlIoZHMxMzA1LT5ydGMpKSB7CisJaWYgKElTX0VSUihkczEzMDUtPnJ0YykpCiAJCXJldHVybiBQVFJfRVJSKGRzMTMwNS0+cnRjKTsKLQl9CiAKIAlkczEzMDUtPnJ0Yy0+b3BzID0gJmRzMTMwNV9vcHM7CiAKIAlkczEzMDVfbnZtZW1fY2ZnLnByaXYgPSBkczEzMDU7CiAJZHMxMzA1LT5ydGMtPm52cmFtX29sZF9hYmkgPSB0cnVlOwogCXN0YXR1cyA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UoZHMxMzA1LT5ydGMpOwotCWlmIChzdGF0dXMpIHsKLQkJZGV2X2RiZygmc3BpLT5kZXYsICJyZWdpc3RlciBydGMgLS0+ICVkXG4iLCBzdGF0dXMpOworCWlmIChzdGF0dXMpCiAJCXJldHVybiBzdGF0dXM7Ci0JfQogCiAJcnRjX252bWVtX3JlZ2lzdGVyKGRzMTMwNS0+cnRjLCAmZHMxMzA1X252bWVtX2NmZyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1kczE2NzIuYyBiL2RyaXZlcnMvcnRjL3J0Yy1kczE2NzIuYwppbmRleCBlOWU4ZDAyLi45ZGE4NGRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtZHMxNjcyLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWRzMTY3Mi5jCkBAIC0xMjgsOSArMTI4LDYgQEAgc3RhdGljIGludCBkczE2NzJfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JaWYgKElTX0VSUihydGMpKQotCQlyZXR1cm4gUFRSX0VSUihydGMpOwotCiAJaTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgcnRjKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWZzbC1mdG0tYWxhcm0uYyBiL2RyaXZlcnMvcnRjL3J0Yy1mc2wtZnRtLWFsYXJtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRmMjA3NWFmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ydGMvcnRjLWZzbC1mdG0tYWxhcm0uYwpAQCAtMCwwICsxLDMzNyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisvKgorICogRnJlZXNjYWxlIEZsZXhUaW1lciBNb2R1bGUgKEZUTSkgYWxhcm0gZGV2aWNlIGRyaXZlci4KKyAqCisgKiBDb3B5cmlnaHQgMjAxNCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLgorICogQ29weXJpZ2h0IDIwMTkgTlhQCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzbC9mdG0uaD4KKyNpbmNsdWRlIDxsaW51eC9ydGMuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lLmg+CisKKyNkZWZpbmUgRlRNX1NDX0NMSyhjKQkJKChjKSA8PCBGVE1fU0NfQ0xLX01BU0tfU0hJRlQpCisKKy8qCisgKiBTZWxlY3QgRml4ZWQgZnJlcXVlbmN5IGNsb2NrICgzMktIeikgYXMgY2xvY2sgc291cmNlCisgKiBvZiBGbGV4VGltZXIgTW9kdWxlCisgKi8KKyNkZWZpbmUgRlRNX1NDX0NMS1NfRklYRURfRlJFUQkweDAyCisjZGVmaW5lIEZJWEVEX0ZSRVFfQ0xLCQkzMjAwMAorCisvKiBTZWxlY3QgMTI4ICgyXjcpIGFzIGRpdmlkZXIgZmFjdG9yICovCisjZGVmaW5lIE1BWF9GUkVRX0RJVgkJKDEgPDwgRlRNX1NDX1BTX01BU0spCisKKy8qIE1heGltdW0gY291bnRlciB2YWx1ZSBpbiBGbGV4VGltZXIncyBDTlQgcmVnaXN0ZXJzICovCisjZGVmaW5lIE1BWF9DT1VOVF9WQUwJCTB4ZmZmZgorCitzdHJ1Y3QgZnRtX3J0YyB7CisJc3RydWN0IHJ0Y19kZXZpY2UgKnJ0Y19kZXY7CisJdm9pZCBfX2lvbWVtICpiYXNlOworCWJvb2wgYmlnX2VuZGlhbjsKKwl1MzIgYWxhcm1fZnJlcTsKK307CisKK3N0YXRpYyBpbmxpbmUgdTMyIHJ0Y19yZWFkbChzdHJ1Y3QgZnRtX3J0YyAqZGV2LCB1MzIgcmVnKQoreworCWlmIChkZXYtPmJpZ19lbmRpYW4pCisJCXJldHVybiBpb3JlYWQzMmJlKGRldi0+YmFzZSArIHJlZyk7CisJZWxzZQorCQlyZXR1cm4gaW9yZWFkMzIoZGV2LT5iYXNlICsgcmVnKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJ0Y193cml0ZWwoc3RydWN0IGZ0bV9ydGMgKmRldiwgdTMyIHJlZywgdTMyIHZhbCkKK3sKKwlpZiAoZGV2LT5iaWdfZW5kaWFuKQorCQlpb3dyaXRlMzJiZSh2YWwsIGRldi0+YmFzZSArIHJlZyk7CisJZWxzZQorCQlpb3dyaXRlMzIodmFsLCBkZXYtPmJhc2UgKyByZWcpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZnRtX2NvdW50ZXJfZW5hYmxlKHN0cnVjdCBmdG1fcnRjICpydGMpCit7CisJdTMyIHZhbDsKKworCS8qIHNlbGVjdCBhbmQgZW5hYmxlIGNvdW50ZXIgY2xvY2sgc291cmNlICovCisJdmFsID0gcnRjX3JlYWRsKHJ0YywgRlRNX1NDKTsKKwl2YWwgJj0gfihGVE1fU0NfUFNfTUFTSyB8IEZUTV9TQ19DTEtfTUFTSyk7CisJdmFsIHw9IChGVE1fU0NfUFNfTUFTSyB8IEZUTV9TQ19DTEsoRlRNX1NDX0NMS1NfRklYRURfRlJFUSkpOworCXJ0Y193cml0ZWwocnRjLCBGVE1fU0MsIHZhbCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBmdG1fY291bnRlcl9kaXNhYmxlKHN0cnVjdCBmdG1fcnRjICpydGMpCit7CisJdTMyIHZhbDsKKworCS8qIGRpc2FibGUgY291bnRlciBjbG9jayBzb3VyY2UgKi8KKwl2YWwgPSBydGNfcmVhZGwocnRjLCBGVE1fU0MpOworCXZhbCAmPSB+KEZUTV9TQ19QU19NQVNLIHwgRlRNX1NDX0NMS19NQVNLKTsKKwlydGNfd3JpdGVsKHJ0YywgRlRNX1NDLCB2YWwpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZnRtX2lycV9hY2tub3dsZWRnZShzdHJ1Y3QgZnRtX3J0YyAqcnRjKQoreworCXVuc2lnbmVkIGludCB0aW1lb3V0ID0gMTAwOworCisJLyoKKwkgKkZpeCBlcnJhdGEgQS0wMDc3MjggZm9yIGZsZXh0aW1lcgorCSAqCUlmIHRoZSBGVE0gY291bnRlciByZWFjaGVzIHRoZSBGVE1fTU9EIHZhbHVlIGJldHdlZW4KKwkgKgl0aGUgcmVhZGluZyBvZiB0aGUgVE9GIGJpdCBhbmQgdGhlIHdyaXRpbmcgb2YgMCB0bworCSAqCXRoZSBUT0YgYml0LCB0aGUgcHJvY2VzcyBvZiBjbGVhcmluZyB0aGUgVE9GIGJpdAorCSAqCWRvZXMgbm90IHdvcmsgYXMgZXhwZWN0ZWQgd2hlbiBGVE14X0NPTkZbTlVNVE9GXSAhPSAwCisJICoJYW5kIHRoZSBjdXJyZW50IFRPRiBjb3VudCBpcyBsZXNzIHRoYW4gRlRNeF9DT05GW05VTVRPRl0uCisJICoJSWYgdGhlIGFib3ZlIGNvbmRpdGlvbiBpcyBtZXQsIHRoZSBUT0YgYml0IHJlbWFpbnMgc2V0LgorCSAqCUlmIHRoZSBUT0YgaW50ZXJydXB0IGlzIGVuYWJsZWQgKEZUTXhfU0NbVE9JRV0gPSAxKSx0aGUKKwkgKglUT0YgaW50ZXJydXB0IGFsc28gcmVtYWlucyBhc3NlcnRlZC4KKwkgKgorCSAqCUFib3ZlIGlzIHRoZSBlcnJhdGEgZGlzY3JpcHRpb24KKwkgKgorCSAqCUluIG9uZSB3b3JkOiBzb2Z0d2FyZSBjbGVhcmluZyBUT0YgYml0IG5vdCB3b3JrcyB3aGVuCisJICoJRlRNeF9DT05GW05VTVRPRl0gd2FzIHNldGVkIGFzIG5vbnplcm8gYW5kIEZUTSBjb3VudGVyCisJICoJcmVhY2hlcyB0aGUgRlRNX01PRCB2YWx1ZS4KKwkgKgorCSAqCVRoZSB3b3JrYXJvdW5kIGlzIGNsZWFyaW5nIFRPRiBiaXQgdW50aWwgaXQgd29ya3MKKwkgKgkoRlRNIGNvdW50ZXIgZG9lc24ndCBhbHdheXMgcmVhY2hlIHRoZSBGVE1fTU9EIGFueXdheSksCisJICoJd2hpY2ggbWF5IGNvc3Qgc29tZSBjeWNsZXMuCisJICovCisJd2hpbGUgKChGVE1fU0NfVE9GICYgcnRjX3JlYWRsKHJ0YywgRlRNX1NDKSkgJiYgdGltZW91dC0tKQorCQlydGNfd3JpdGVsKHJ0YywgRlRNX1NDLCBydGNfcmVhZGwocnRjLCBGVE1fU0MpICYgKH5GVE1fU0NfVE9GKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBmdG1faXJxX2VuYWJsZShzdHJ1Y3QgZnRtX3J0YyAqcnRjKQoreworCXUzMiB2YWw7CisKKwl2YWwgPSBydGNfcmVhZGwocnRjLCBGVE1fU0MpOworCXZhbCB8PSBGVE1fU0NfVE9JRTsKKwlydGNfd3JpdGVsKHJ0YywgRlRNX1NDLCB2YWwpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZnRtX2lycV9kaXNhYmxlKHN0cnVjdCBmdG1fcnRjICpydGMpCit7CisJdTMyIHZhbDsKKworCXZhbCA9IHJ0Y19yZWFkbChydGMsIEZUTV9TQyk7CisJdmFsICY9IH5GVE1fU0NfVE9JRTsKKwlydGNfd3JpdGVsKHJ0YywgRlRNX1NDLCB2YWwpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZnRtX3Jlc2V0X2NvdW50ZXIoc3RydWN0IGZ0bV9ydGMgKnJ0YykKK3sKKwkvKgorCSAqIFRoZSBDTlQgcmVnaXN0ZXIgY29udGFpbnMgdGhlIEZUTSBjb3VudGVyIHZhbHVlLgorCSAqIFJlc2V0IGNsZWFycyB0aGUgQ05UIHJlZ2lzdGVyLiBXcml0aW5nIGFueSB2YWx1ZSB0byBDT1VOVAorCSAqIHVwZGF0ZXMgdGhlIGNvdW50ZXIgd2l0aCBpdHMgaW5pdGlhbCB2YWx1ZSwgQ05USU4uCisJICovCisJcnRjX3dyaXRlbChydGMsIEZUTV9DTlQsIDB4MDApOworfQorCitzdGF0aWMgdm9pZCBmdG1fY2xlYW5fYWxhcm0oc3RydWN0IGZ0bV9ydGMgKnJ0YykKK3sKKwlmdG1fY291bnRlcl9kaXNhYmxlKHJ0Yyk7CisKKwlydGNfd3JpdGVsKHJ0YywgRlRNX0NOVElOLCAweDAwKTsKKwlydGNfd3JpdGVsKHJ0YywgRlRNX01PRCwgfjBVKTsKKworCWZ0bV9yZXNldF9jb3VudGVyKHJ0Yyk7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBmdG1fcnRjX2FsYXJtX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXYpCit7CisJc3RydWN0IGZ0bV9ydGMgKnJ0YyA9IGRldjsKKworCWZ0bV9pcnFfYWNrbm93bGVkZ2UocnRjKTsKKwlmdG1faXJxX2Rpc2FibGUocnRjKTsKKwlmdG1fY2xlYW5fYWxhcm0ocnRjKTsKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIGludCBmdG1fcnRjX2FsYXJtX2lycV9lbmFibGUoc3RydWN0IGRldmljZSAqZGV2LAorCQl1bnNpZ25lZCBpbnQgZW5hYmxlZCkKK3sKKwlzdHJ1Y3QgZnRtX3J0YyAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlpZiAoZW5hYmxlZCkKKwkJZnRtX2lycV9lbmFibGUocnRjKTsKKwllbHNlCisJCWZ0bV9pcnFfZGlzYWJsZShydGMpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBOb3RlOgorICoJVGhlIGZ1bmN0aW9uIGlzIG5vdCByZWFsbHkgZ2V0dGluZyB0aW1lIGZyb20gdGhlIFJUQworICoJc2luY2UgRmxleFRpbWVyIGlzIG5vdCBhIFJUQyBkZXZpY2UsIGJ1dCB3ZSBuZWVkIHRvCisgKglnZXQgdGltZSB0byBzZXR1cCBhbGFybSwgc28gd2UgYXJlIHVzaW5nIHN5c3RlbSB0aW1lCisgKglmb3Igbm93LgorICovCitzdGF0aWMgaW50IGZ0bV9ydGNfcmVhZF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKK3sKKwlzdHJ1Y3QgdGltZXNwZWM2NCB0czY0OworCisJa3RpbWVfZ2V0X3JlYWxfdHM2NCgmdHM2NCk7CisJcnRjX3RpbWVfdG9fdG0odHM2NC50dl9zZWMsIHRtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGZ0bV9ydGNfcmVhZF9hbGFybShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfd2thbHJtICphbG0pCit7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiAxLiBTZWxlY3QgZml4ZWQgZnJlcXVlbmN5IGNsb2NrICgzMktIeikgYXMgY2xvY2sgc291cmNlOworICogMi4gU2VsZWN0IDEyOCAoMl43KSBhcyBkaXZpZGVyIGZhY3RvcjsKKyAqIFNvIGNsb2NrIGlzIDI1MCBIeiAoMzJLSHovMTI4KS4KKyAqCisgKiAzLiBGbGV4VGltZXIncyBDTlQgcmVnaXN0ZXIgaXMgYSAzMmJpdCByZWdpc3RlciwKKyAqIGJ1dCB0aGUgcmVnaXN0ZXIncyAxNiBiaXQgYXMgY291bnRlciB2YWx1ZSxpdCdzIG90aGVyIDE2IGJpdAorICogaXMgcmVzZXJ2ZWQuU28gbWluaW11bSBjb3VudGVyIHZhbHVlIGlzIDB4MCxtYXhpbXVtIGNvdW50ZXIKKyAqIHZhbHVlIGlzIDB4ZmZmZi4KKyAqIFNvIG1heCBhbGFybSB2YWx1ZSBpcyAyNjIgKDY1NTM2IC8gMjUwKSBzZWNvbmRzCisgKi8KK3N0YXRpYyBpbnQgZnRtX3J0Y19zZXRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxtKQoreworCXN0cnVjdCBydGNfdGltZSB0bTsKKwl1bnNpZ25lZCBsb25nIG5vdywgYWxtX3RpbWUsIGN5Y2xlOworCXN0cnVjdCBmdG1fcnRjICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCWZ0bV9ydGNfcmVhZF90aW1lKGRldiwgJnRtKTsKKwlydGNfdG1fdG9fdGltZSgmdG0sICZub3cpOworCXJ0Y190bV90b190aW1lKCZhbG0tPnRpbWUsICZhbG1fdGltZSk7CisKKwlmdG1fY2xlYW5fYWxhcm0ocnRjKTsKKwljeWNsZSA9IChhbG1fdGltZSAtIG5vdykgKiBydGMtPmFsYXJtX2ZyZXE7CisJaWYgKGN5Y2xlID4gTUFYX0NPVU5UX1ZBTCkgeworCQlwcl9lcnIoIk91dCBvZiBhbGFybSByYW5nZSB7MH4yNjJ9IHNlY29uZHMuXG4iKTsKKwkJcmV0dXJuIC1FUkFOR0U7CisJfQorCisJZnRtX2lycV9kaXNhYmxlKHJ0Yyk7CisKKwkvKgorCSAqIFRoZSBjb3VudGVyIGluY3JlbWVudHMgdW50aWwgdGhlIHZhbHVlIG9mIE1PRCBpcyByZWFjaGVkLAorCSAqIGF0IHdoaWNoIHBvaW50IHRoZSBjb3VudGVyIGlzIHJlbG9hZGVkIHdpdGggdGhlIHZhbHVlIG9mIENOVElOLgorCSAqIFRoZSBUT0YgKHRoZSBvdmVyZmxvdyBmbGFnKSBiaXQgaXMgc2V0IHdoZW4gdGhlIEZUTSBjb3VudGVyCisJICogY2hhbmdlcyBmcm9tIE1PRCB0byBDTlRJTi4gU28gd2Ugc2hvdWxkIHVzaW5nIHRoZSBjeWNsZSAtIDEuCisJICovCisJcnRjX3dyaXRlbChydGMsIEZUTV9NT0QsIGN5Y2xlIC0gMSk7CisKKwlmdG1fY291bnRlcl9lbmFibGUocnRjKTsKKwlmdG1faXJxX2VuYWJsZShydGMpOworCisJcmV0dXJuIDA7CisKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBydGNfY2xhc3Nfb3BzIGZ0bV9ydGNfb3BzID0geworCS5yZWFkX3RpbWUJCT0gZnRtX3J0Y19yZWFkX3RpbWUsCisJLnJlYWRfYWxhcm0JCT0gZnRtX3J0Y19yZWFkX2FsYXJtLAorCS5zZXRfYWxhcm0JCT0gZnRtX3J0Y19zZXRfYWxhcm0sCisJLmFsYXJtX2lycV9lbmFibGUJPSBmdG1fcnRjX2FsYXJtX2lycV9lbmFibGUsCit9OworCitzdGF0aWMgaW50IGZ0bV9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gcGRldi0+ZGV2Lm9mX25vZGU7CisJc3RydWN0IHJlc291cmNlICpyOworCWludCBpcnE7CisJaW50IHJldDsKKwlzdHJ1Y3QgZnRtX3J0YyAqcnRjOworCisJcnRjID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqcnRjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHVubGlrZWx5KCFydGMpKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImNhbm5vdCBhbGxvYyBtZW1vcnkgZm9yIHJ0Y1xuIik7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHJ0Yyk7CisKKwlydGMtPnJ0Y19kZXYgPSBkZXZtX3J0Y19hbGxvY2F0ZV9kZXZpY2UoJnBkZXYtPmRldik7CisJaWYgKElTX0VSUihydGMtPnJ0Y19kZXYpKQorCQlyZXR1cm4gUFRSX0VSUihydGMtPnJ0Y19kZXYpOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJaWYgKCFyKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImNhbm5vdCBnZXQgcmVzb3VyY2UgZm9yIHJ0Y1xuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXJ0Yy0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByKTsKKwlpZiAoSVNfRVJSKHJ0Yy0+YmFzZSkpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2Fubm90IGlvcmVtYXAgcmVzb3VyY2UgZm9yIHJ0Y1xuIik7CisJCXJldHVybiBQVFJfRVJSKHJ0Yy0+YmFzZSk7CisJfQorCisJaXJxID0gaXJxX29mX3BhcnNlX2FuZF9tYXAobnAsIDApOworCWlmIChpcnEgPD0gMCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ1bmFibGUgdG8gZ2V0IElSUSBmcm9tIERULCAlZFxuIiwgaXJxKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBpcnEsIGZ0bV9ydGNfYWxhcm1faW50ZXJydXB0LAorCQkJICAgICAgIElSUUZfTk9fU1VTUEVORCwgZGV2X25hbWUoJnBkZXYtPmRldiksIHJ0Yyk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3QgaXJxXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlydGMtPmJpZ19lbmRpYW4gPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJiaWctZW5kaWFuIik7CisJcnRjLT5hbGFybV9mcmVxID0gKHUzMilGSVhFRF9GUkVRX0NMSyAvICh1MzIpTUFYX0ZSRVFfRElWOworCXJ0Yy0+cnRjX2Rldi0+b3BzID0gJmZ0bV9ydGNfb3BzOworCisJZGV2aWNlX2luaXRfd2FrZXVwKCZwZGV2LT5kZXYsIHRydWUpOworCisJcmV0ID0gcnRjX3JlZ2lzdGVyX2RldmljZShydGMtPnJ0Y19kZXYpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2FuJ3QgcmVnaXN0ZXIgcnRjIGRldmljZVxuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGZ0bV9ydGNfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImZzbCxsczEwMTJhLWZ0bS1hbGFybSIsIH0sCisJeyAuY29tcGF0aWJsZSA9ICJmc2wsbHMxMDIxYS1mdG0tYWxhcm0iLCB9LAorCXsgLmNvbXBhdGlibGUgPSAiZnNsLGxzMTAyOGEtZnRtLWFsYXJtIiwgfSwKKwl7IC5jb21wYXRpYmxlID0gImZzbCxsczEwNDNhLWZ0bS1hbGFybSIsIH0sCisJeyAuY29tcGF0aWJsZSA9ICJmc2wsbHMxMDQ2YS1mdG0tYWxhcm0iLCB9LAorCXsgLmNvbXBhdGlibGUgPSAiZnNsLGxzMTA4OGEtZnRtLWFsYXJtIiwgfSwKKwl7IC5jb21wYXRpYmxlID0gImZzbCxsczIwOHhhLWZ0bS1hbGFybSIsIH0sCisJeyAuY29tcGF0aWJsZSA9ICJmc2wsbHgyMTYwYS1mdG0tYWxhcm0iLCB9LAorCXsgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGZ0bV9ydGNfZHJpdmVyID0geworCS5wcm9iZQkJPSBmdG1fcnRjX3Byb2JlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJmdG0tYWxhcm0iLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBmdG1fcnRjX21hdGNoLAorCX0sCit9OworCitzdGF0aWMgaW50IF9faW5pdCBmdG1fYWxhcm1faW5pdCh2b2lkKQoreworCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmZ0bV9ydGNfZHJpdmVyKTsKK30KKworZGV2aWNlX2luaXRjYWxsKGZ0bV9hbGFybV9pbml0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJOWFAvRnJlZXNjYWxlIEZsZXhUaW1lciBhbGFybSBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIkJpd2VuIExpIDxiaXdlbi5saUBueHAuY29tPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWlteC1zYy5jIGIvZHJpdmVycy9ydGMvcnRjLWlteC1zYy5jCmluZGV4IGM5MzMwNDUuLmNmMmMxMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1pbXgtc2MuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtaW14LXNjLmMKQEAgLTE2NywxMCArMTY3LDggQEAgc3RhdGljIGludCBpbXhfc2NfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW14X3NjX3J0Yy0+cmFuZ2VfbWF4ID0gVTMyX01BWDsKIAogCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UoaW14X3NjX3J0Yyk7Ci0JaWYgKHJldCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgcnRjOiAlZFxuIiwgcmV0KTsKKwlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwotCX0KIAogCWlteF9zY3VfaXJxX3JlZ2lzdGVyX25vdGlmaWVyKCZpbXhfc2NfcnRjX2FsYXJtX3NjX25vdGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWlteGRpLmMgYi9kcml2ZXJzL3J0Yy9ydGMtaW14ZGkuYwppbmRleCAzZjNkNjUyLi5mMjFkYzZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtaW14ZGkuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtaW14ZGkuYwpAQCAtNzQwLDcgKzc0MCw2IEBAIHN0YXRpYyB2b2lkIGRyeWljZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKICAqLwogc3RhdGljIGludCBfX2luaXQgZHJ5aWNlX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCXN0cnVjdCBpbXhkaV9kZXYgKmlteGRpOwogCWludCBub3JtX2lycSwgc2VjX2lycTsKIAlpbnQgcmM7CkBAIC03NTEsOCArNzUwLDcgQEAgc3RhdGljIGludCBfX2luaXQgZHJ5aWNlX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJaW14ZGktPnBkZXYgPSBwZGV2OwogCi0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlpbXhkaS0+aW9hZGRyID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CisJaW14ZGktPmlvYWRkciA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKIAlpZiAoSVNfRVJSKGlteGRpLT5pb2FkZHIpKQogCQlyZXR1cm4gUFRSX0VSUihpbXhkaS0+aW9hZGRyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWlzbDEyMDI2LmMgYi9kcml2ZXJzL3J0Yy9ydGMtaXNsMTIwMjYuYwppbmRleCA5N2Y1OTRmLi41YjZiMTdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtaXNsMTIwMjYuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtaXNsMTIwMjYuYwpAQCAtNDU0LDkgKzQ1NCw5IEBAIHN0YXRpYyBpbnQgaXNsMTIwMjZfcHJvYmVfbmV3KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiAKIAlpc2wxMjAyNl9mb3JjZV9wb3dlcl9tb2RlcyhjbGllbnQpOwogCi0JcHJpdi0+bnZtX2NsaWVudCA9IGkyY19uZXdfZHVtbXkoY2xpZW50LT5hZGFwdGVyLCBJU0wxMjAyNl9FRVBST01fQUREUik7Ci0JaWYgKCFwcml2LT5udm1fY2xpZW50KQotCQlyZXR1cm4gLUVOT01FTTsKKwlwcml2LT5udm1fY2xpZW50ID0gaTJjX25ld19kdW1teV9kZXZpY2UoY2xpZW50LT5hZGFwdGVyLCBJU0wxMjAyNl9FRVBST01fQUREUik7CisJaWYgKElTX0VSUihwcml2LT5udm1fY2xpZW50KSkKKwkJcmV0dXJuIFBUUl9FUlIocHJpdi0+bnZtX2NsaWVudCk7CiAKIAlwcml2LT5ydGMgPSBkZXZtX3J0Y19hbGxvY2F0ZV9kZXZpY2UoJmNsaWVudC0+ZGV2KTsKIAlyZXQgPSBQVFJfRVJSX09SX1pFUk8ocHJpdi0+cnRjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1qejQ3NDAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1qejQ3NDAuYwppbmRleCA5ZTdiM2EwLi4zMDg5NjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtano0NzQwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWp6NDc0MC5jCkBAIC0zMjMsMTAgKzMyMyw4IEBAIHN0YXRpYyBpbnQgano0NzQwX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlydGMtPnR5cGUgPSBpZC0+ZHJpdmVyX2RhdGE7CiAKIAlydGMtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKHJ0Yy0+aXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IHBsYXRmb3JtIGlycVxuIik7CisJaWYgKHJ0Yy0+aXJxIDwgMCkKIAkJcmV0dXJuIC1FTk9FTlQ7Ci0JfQogCiAJbWVtID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKIAlydGMtPmJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgbWVtKTsKQEAgLTM2MiwxMCArMzYwLDggQEAgc3RhdGljIGludCBqejQ3NDBfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcnRjLT5ydGMtPnJhbmdlX21heCA9IFUzMl9NQVg7CiAKIAlyZXQgPSBydGNfcmVnaXN0ZXJfZGV2aWNlKHJ0Yy0+cnRjKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byByZWdpc3RlciBydGMgZGV2aWNlOiAlZFxuIiwgcmV0KTsKKwlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwotCX0KIAogCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRldiwgcnRjLT5pcnEsIGp6NDc0MF9ydGNfaXJxLCAwLAogCQkJCXBkZXYtPm5hbWUsIHJ0Yyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtbWF4Nzc2ODYuYyBiL2RyaXZlcnMvcnRjL3J0Yy1tYXg3NzY4Ni5jCmluZGV4IDRhZmYzNDkuLmQ1YTBlMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1tYXg3NzY4Ni5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1tYXg3NzY4Ni5jCkBAIC02NzMsMTEgKzY3Myw4IEBAIHN0YXRpYyBpbnQgbWF4Nzc2ODZfaW5pdF9ydGNfcmVnbWFwKHN0cnVjdCBtYXg3NzY4Nl9ydGNfaW5mbyAqaW5mbykKIAkJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShpbmZvLT5kZXYpOwogCiAJCWluZm8tPnJ0Y19pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCQlpZiAoaW5mby0+cnRjX2lycSA8IDApIHsKLQkJCWRldl9lcnIoaW5mby0+ZGV2LCAiRmFpbGVkIHRvIGdldCBydGMgaW50ZXJydXB0czogJWRcbiIsCi0JCQkJaW5mby0+cnRjX2lycSk7CisJCWlmIChpbmZvLT5ydGNfaXJxIDwgMCkKIAkJCXJldHVybiBpbmZvLT5ydGNfaXJxOwotCQl9CiAJfSBlbHNlIHsKIAkJaW5mby0+cnRjX2lycSA9ICBwYXJlbnRfaTJjLT5pcnE7CiAJfQpAQCAtNjkzLDExICs2OTAsMTEgQEAgc3RhdGljIGludCBtYXg3NzY4Nl9pbml0X3J0Y19yZWdtYXAoc3RydWN0IG1heDc3Njg2X3J0Y19pbmZvICppbmZvKQogCQlnb3RvIGFkZF9ydGNfaXJxOwogCX0KIAotCWluZm8tPnJ0YyA9IGkyY19uZXdfZHVtbXkocGFyZW50X2kyYy0+YWRhcHRlciwKLQkJCQkgIGluZm8tPmRydl9kYXRhLT5ydGNfaTJjX2FkZHIpOwotCWlmICghaW5mby0+cnRjKSB7CisJaW5mby0+cnRjID0gZGV2bV9pMmNfbmV3X2R1bW15X2RldmljZShpbmZvLT5kZXYsIHBhcmVudF9pMmMtPmFkYXB0ZXIsCisJCQkJCSAgICAgIGluZm8tPmRydl9kYXRhLT5ydGNfaTJjX2FkZHIpOworCWlmIChJU19FUlIoaW5mby0+cnRjKSkgewogCQlkZXZfZXJyKGluZm8tPmRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBJMkMgZGV2aWNlIGZvciBSVENcbiIpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJcmV0dXJuIFBUUl9FUlIoaW5mby0+cnRjKTsKIAl9CiAKIAlpbmZvLT5ydGNfcmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9pMmMoaW5mby0+cnRjLApAQCAtNzA1LDcgKzcwMiw3IEBAIHN0YXRpYyBpbnQgbWF4Nzc2ODZfaW5pdF9ydGNfcmVnbWFwKHN0cnVjdCBtYXg3NzY4Nl9ydGNfaW5mbyAqaW5mbykKIAlpZiAoSVNfRVJSKGluZm8tPnJ0Y19yZWdtYXApKSB7CiAJCXJldCA9IFBUUl9FUlIoaW5mby0+cnRjX3JlZ21hcCk7CiAJCWRldl9lcnIoaW5mby0+ZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIFJUQyByZWdtYXA6ICVkXG4iLCByZXQpOwotCQlnb3RvIGVycl91bnJlZ2lzdGVyX2kyYzsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIGFkZF9ydGNfaXJxOgpAQCAtNzE1LDE1ICs3MTIsMTAgQEAgc3RhdGljIGludCBtYXg3NzY4Nl9pbml0X3J0Y19yZWdtYXAoc3RydWN0IG1heDc3Njg2X3J0Y19pbmZvICppbmZvKQogCQkJCSAgJmluZm8tPnJ0Y19pcnFfZGF0YSk7CiAJaWYgKHJldCA8IDApIHsKIAkJZGV2X2VycihpbmZvLT5kZXYsICJGYWlsZWQgdG8gYWRkIFJUQyBpcnEgY2hpcDogJWRcbiIsIHJldCk7Ci0JCWdvdG8gZXJyX3VucmVnaXN0ZXJfaTJjOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXJldHVybiAwOwotCi1lcnJfdW5yZWdpc3Rlcl9pMmM6Ci0JaWYgKGluZm8tPnJ0YykKLQkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGluZm8tPnJ0Yyk7Ci0JcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBtYXg3NzY4Nl9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKQEAgLTc4Niw4ICs3NzgsNiBAQCBzdGF0aWMgaW50IG1heDc3Njg2X3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiBlcnJfcnRjOgogCXJlZ21hcF9kZWxfaXJxX2NoaXAoaW5mby0+cnRjX2lycSwgaW5mby0+cnRjX2lycV9kYXRhKTsKLQlpZiAoaW5mby0+cnRjKQotCQlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoaW5mby0+cnRjKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC03OTgsOCArNzg4LDYgQEAgc3RhdGljIGludCBtYXg3NzY4Nl9ydGNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlmcmVlX2lycShpbmZvLT52aXJxLCBpbmZvKTsKIAlyZWdtYXBfZGVsX2lycV9jaGlwKGluZm8tPnJ0Y19pcnEsIGluZm8tPnJ0Y19pcnFfZGF0YSk7Ci0JaWYgKGluZm8tPnJ0YykKLQkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGluZm8tPnJ0Yyk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1tZXNvbi12cnRjLmMgYi9kcml2ZXJzL3J0Yy9ydGMtbWVzb24tdnJ0Yy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZTViYTAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3J0Yy9ydGMtbWVzb24tdnJ0Yy5jCkBAIC0wLDAgKzEsMTU1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBCYXlMaWJyZSwgU0FTCisgKiBBdXRob3I6IE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBBbWxvZ2ljLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9ydGMuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvdGltZTY0Lmg+CisKK3N0cnVjdCBtZXNvbl92cnRjX2RhdGEgeworCXZvaWQgX19pb21lbSAqaW9fYWxhcm07CisJc3RydWN0IHJ0Y19kZXZpY2UgKnJ0YzsKKwl1bnNpZ25lZCBsb25nIGFsYXJtX3RpbWU7CisJYm9vbCBlbmFibGVkOworfTsKKworc3RhdGljIGludCBtZXNvbl92cnRjX3JlYWRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCit7CisJc3RydWN0IHRpbWVzcGVjNjQgdGltZTsKKworCWRldl9kYmcoZGV2LCAiJXNcbiIsIF9fZnVuY19fKTsKKwlrdGltZV9nZXRfcmF3X3RzNjQoJnRpbWUpOworCXJ0Y190aW1lNjRfdG9fdG0odGltZS50dl9zZWMsIHRtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBtZXNvbl92cnRjX3NldF93YWtldXBfdGltZShzdHJ1Y3QgbWVzb25fdnJ0Y19kYXRhICp2cnRjLAorCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHRpbWUpCit7CisJd3JpdGVsX3JlbGF4ZWQodGltZSwgdnJ0Yy0+aW9fYWxhcm0pOworfQorCitzdGF0aWMgaW50IG1lc29uX3ZydGNfc2V0X2FsYXJtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193a2Fscm0gKmFsYXJtKQoreworCXN0cnVjdCBtZXNvbl92cnRjX2RhdGEgKnZydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCWRldl9kYmcoZGV2LCAiJXM6IGFsYXJtLT5lbmFibGVkPSVkXG4iLCBfX2Z1bmNfXywgYWxhcm0tPmVuYWJsZWQpOworCWlmIChhbGFybS0+ZW5hYmxlZCkKKwkJdnJ0Yy0+YWxhcm1fdGltZSA9IHJ0Y190bV90b190aW1lNjQoJmFsYXJtLT50aW1lKTsKKwllbHNlCisJCXZydGMtPmFsYXJtX3RpbWUgPSAwOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbWVzb25fdnJ0Y19hbGFybV9pcnFfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGVuYWJsZWQpCit7CisJc3RydWN0IG1lc29uX3ZydGNfZGF0YSAqdnJ0YyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJdnJ0Yy0+ZW5hYmxlZCA9IGVuYWJsZWQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRjX2NsYXNzX29wcyBtZXNvbl92cnRjX29wcyA9IHsKKwkucmVhZF90aW1lID0gbWVzb25fdnJ0Y19yZWFkX3RpbWUsCisJLnNldF9hbGFybSA9IG1lc29uX3ZydGNfc2V0X2FsYXJtLAorCS5hbGFybV9pcnFfZW5hYmxlID0gbWVzb25fdnJ0Y19hbGFybV9pcnFfZW5hYmxlLAorfTsKKworc3RhdGljIGludCBtZXNvbl92cnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IG1lc29uX3ZydGNfZGF0YSAqdnJ0YzsKKwlpbnQgcmV0OworCisJdnJ0YyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnZydGMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXZydGMpCisJCXJldHVybiAtRU5PTUVNOworCisJdnJ0Yy0+aW9fYWxhcm0gPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7CisJaWYgKElTX0VSUih2cnRjLT5pb19hbGFybSkpCisJCXJldHVybiBQVFJfRVJSKHZydGMtPmlvX2FsYXJtKTsKKworCWRldmljZV9pbml0X3dha2V1cCgmcGRldi0+ZGV2LCAxKTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHZydGMpOworCisJdnJ0Yy0+cnRjID0gZGV2bV9ydGNfYWxsb2NhdGVfZGV2aWNlKCZwZGV2LT5kZXYpOworCWlmIChJU19FUlIodnJ0Yy0+cnRjKSkKKwkJcmV0dXJuIFBUUl9FUlIodnJ0Yy0+cnRjKTsKKworCXZydGMtPnJ0Yy0+b3BzID0gJm1lc29uX3ZydGNfb3BzOworCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UodnJ0Yy0+cnRjKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbWVzb25fdnJ0Y19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgbWVzb25fdnJ0Y19kYXRhICp2cnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlkZXZfZGJnKGRldiwgIiVzXG4iLCBfX2Z1bmNfXyk7CisJaWYgKHZydGMtPmFsYXJtX3RpbWUpIHsKKwkJdW5zaWduZWQgbG9uZyBsb2NhbF90aW1lOworCQlsb25nIGFsYXJtX3NlY3M7CisJCXN0cnVjdCB0aW1lc3BlYzY0IHRpbWU7CisKKwkJa3RpbWVfZ2V0X3Jhd190czY0KCZ0aW1lKTsKKwkJbG9jYWxfdGltZSA9IHRpbWUudHZfc2VjOworCisJCWRldl9kYmcoZGV2LCAiYWxhcm1fdGltZSA9ICVsdXMsIGxvY2FsX3RpbWU9JWx1c1xuIiwKKwkJCXZydGMtPmFsYXJtX3RpbWUsIGxvY2FsX3RpbWUpOworCQlhbGFybV9zZWNzID0gdnJ0Yy0+YWxhcm1fdGltZSAtIGxvY2FsX3RpbWU7CisJCWlmIChhbGFybV9zZWNzID4gMCkgeworCQkJbWVzb25fdnJ0Y19zZXRfd2FrZXVwX3RpbWUodnJ0YywgYWxhcm1fc2Vjcyk7CisJCQlkZXZfZGJnKGRldiwgInN5c3RlbSB3aWxsIHdha2V1cCBpbiAlbGRzLlxuIiwKKwkJCQlhbGFybV9zZWNzKTsKKwkJfSBlbHNlIHsKKwkJCWRldl9lcnIoZGV2LCAiYWxhcm0gdGltZSBhbHJlYWR5IHBhc3NlZDogJWxkcy5cbiIsCisJCQkJYWxhcm1fc2Vjcyk7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBtZXNvbl92cnRjX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IG1lc29uX3ZydGNfZGF0YSAqdnJ0YyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJZGV2X2RiZyhkZXYsICIlc1xuIiwgX19mdW5jX18pOworCisJdnJ0Yy0+YWxhcm1fdGltZSA9IDA7CisJbWVzb25fdnJ0Y19zZXRfd2FrZXVwX3RpbWUodnJ0YywgMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhtZXNvbl92cnRjX3BtX29wcywKKwkJCSBtZXNvbl92cnRjX3N1c3BlbmQsIG1lc29uX3ZydGNfcmVzdW1lKTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVzb25fdnJ0Y19kdF9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi12cnRjIn0sCisJe30sCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWVzb25fdnJ0Y19kdF9tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG1lc29uX3ZydGNfZHJpdmVyID0geworCS5wcm9iZSA9IG1lc29uX3ZydGNfcHJvYmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAibWVzb24tdnJ0YyIsCisJCS5vZl9tYXRjaF90YWJsZSA9IG1lc29uX3ZydGNfZHRfbWF0Y2gsCisJCS5wbSA9ICZtZXNvbl92cnRjX3BtX29wcywKKwl9LAorfTsKKworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihtZXNvbl92cnRjX2RyaXZlcik7CisKK01PRFVMRV9ERVNDUklQVElPTigiQW1sb2dpYyBWaXJ0dWFsIFdha2V1cCBSVEMgVGltZXIgZHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtbXQ2Mzk3LmMgYi9kcml2ZXJzL3J0Yy9ydGMtbXQ2Mzk3LmMKaW5kZXggYjQ2ZWQ0ZC4uNzA0MjI5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLW10NjM5Ny5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1tdDYzOTcuYwpAQCAtMzQzLDEwICszNDMsOCBAQCBzdGF0aWMgaW50IG10a19ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlydGMtPnJ0Y19kZXYtPm9wcyA9ICZtdGtfcnRjX29wczsKIAogCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UocnRjLT5ydGNfZGV2KTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgInJlZ2lzdGVyIHJ0YyBkZXZpY2UgZmFpbGVkXG4iKTsKKwlpZiAocmV0KQogCQlnb3RvIG91dF9mcmVlX2lycTsKLQl9CiAKIAlyZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLW10NzYyMi5jIGIvZHJpdmVycy9ydGMvcnRjLW10NzYyMi5jCmluZGV4IDgyYjA4MTYuLjE2YmQyNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1tdDc2MjIuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtbXQ3NjIyLmMKQEAgLTMyOSw3ICszMjksNiBAQCBzdGF0aWMgaW50IG10a19ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWh3LT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwogCWlmIChody0+aXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBJUlEgcmVzb3VyY2VcbiIpOwogCQlyZXQgPSBody0+aXJxOwogCQlnb3RvIGVycjsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtbXhjLmMgYi9kcml2ZXJzL3J0Yy9ydGMtbXhjLmMKaW5kZXggZTY5N2U5Ni4uOTAyZDU3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLW14Yy5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1teGMuYwpAQCAtMTg0LDggKzE4NCw5IEBAIHN0YXRpYyB2b2lkIG14Y19ydGNfaXJxX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBiaXQsCiAJc3RydWN0IHJ0Y19wbGF0X2RhdGEgKnBkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJdm9pZCBfX2lvbWVtICppb2FkZHIgPSBwZGF0YS0+aW9hZGRyOwogCXUzMiByZWc7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXNwaW5fbG9ja19pcnEoJnBkYXRhLT5ydGMtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcGRhdGEtPnJ0Yy0+aXJxX2xvY2ssIGZsYWdzKTsKIAlyZWcgPSByZWFkdyhpb2FkZHIgKyBSVENfUlRDSUVOUik7CiAKIAlpZiAoZW5hYmxlZCkKQEAgLTE5NCw3ICsxOTUsNyBAQCBzdGF0aWMgdm9pZCBteGNfcnRjX2lycV9lbmFibGUoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgYml0LAogCQlyZWcgJj0gfmJpdDsKIAogCXdyaXRldyhyZWcsIGlvYWRkciArIFJUQ19SVENJRU5SKTsKLQlzcGluX3VubG9ja19pcnEoJnBkYXRhLT5ydGMtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZGF0YS0+cnRjLT5pcnFfbG9jaywgZmxhZ3MpOwogfQogCiAvKiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBSVEMgaW50ZXJydXB0IHNlcnZpY2Ugcm91dGluZS4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1teGNfdjIuYyBiL2RyaXZlcnMvcnRjL3J0Yy1teGNfdjIuYwppbmRleCA1Yjk3MGE4Li45MTUzNDU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtbXhjX3YyLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLW14Y192Mi5jCkBAIC0yNzksNyArMjc5LDYgQEAgc3RhdGljIGludCBteGNfcnRjX3dhaXRfZm9yX2ZsYWcodm9pZCBfX2lvbWVtICppb2FkZHIsIGludCBmbGFnKQogc3RhdGljIGludCBteGNfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IG14Y19ydGNfZGF0YSAqcGRhdGE7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7CiAJdm9pZCBfX2lvbWVtICppb2FkZHI7CiAJaW50IHJldCA9IDA7CiAKQEAgLTI4Nyw4ICsyODYsNyBAQCBzdGF0aWMgaW50IG14Y19ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAoIXBkYXRhKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JcGRhdGEtPmlvYWRkciA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOworCXBkYXRhLT5pb2FkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7CiAJaWYgKElTX0VSUihwZGF0YS0+aW9hZGRyKSkKIAkJcmV0dXJuIFBUUl9FUlIocGRhdGEtPmlvYWRkcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1udWM5MDAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1udWM5MDAuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDljYzQwNS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtbnVjOTAwLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyNzEgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOC0yMDA5IE51dm90b24gdGVjaG5vbG9neSBjb3Jwb3JhdGlvbi4KLSAqCi0gKiBXYW4gWm9uZ1NodW4gPG1jdW9zLmNvbUBnbWFpbC5jb20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvcnRjLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9pby5oPgotI2luY2x1ZGUgPGxpbnV4L2JjZC5oPgotCi0vKiBSVEMgQ29udHJvbCBSZWdpc3RlcnMgKi8KLSNkZWZpbmUgUkVHX1JUQ19JTklSCQkweDAwCi0jZGVmaW5lIFJFR19SVENfQUVSCQkweDA0Ci0jZGVmaW5lIFJFR19SVENfRkNSCQkweDA4Ci0jZGVmaW5lIFJFR19SVENfVExSCQkweDBDCi0jZGVmaW5lIFJFR19SVENfQ0xSCQkweDEwCi0jZGVmaW5lIFJFR19SVENfVFNTUgkJMHgxNAotI2RlZmluZSBSRUdfUlRDX0RXUgkJMHgxOAotI2RlZmluZSBSRUdfUlRDX1RBUgkJMHgxQwotI2RlZmluZSBSRUdfUlRDX0NBUgkJMHgyMAotI2RlZmluZSBSRUdfUlRDX0xJUgkJMHgyNAotI2RlZmluZSBSRUdfUlRDX1JJRVIJCTB4MjgKLSNkZWZpbmUgUkVHX1JUQ19SSUlSCQkweDJDCi0jZGVmaW5lIFJFR19SVENfVFRSCQkweDMwCi0KLSNkZWZpbmUgUlRDU0VUCQkJMHgwMQotI2RlZmluZSBBRVJSV0VOQgkJMHgxMDAwMAotI2RlZmluZSBJTklSUkVTRVQJCTB4YTVlYjEzNTcKLSNkZWZpbmUgQUVSUE9XRVJPTgkJMHhBOTY1Ci0jZGVmaW5lIEFFUlBPV0VST0ZGCQkweDAwMDAKLSNkZWZpbmUgTEVBUFlFQVIJCTB4MDAwMQotI2RlZmluZSBUSUNLRU5CCQkJMHg4MAotI2RlZmluZSBUSUNLSU5URU5CCQkweDAwMDIKLSNkZWZpbmUgQUxBUk1JTlRFTkIJCTB4MDAwMQotI2RlZmluZSBNT0RFMjQJCQkweDAwMDEKLQotc3RydWN0IG51YzkwMF9ydGMgewotCWludAkJCWlycV9udW07Ci0Jdm9pZCBfX2lvbWVtCQkqcnRjX3JlZzsKLQlzdHJ1Y3QgcnRjX2RldmljZQkqcnRjZGV2OwotfTsKLQotc3RydWN0IG51YzkwMF9iY2RfdGltZSB7Ci0JaW50IGJjZF9zZWM7Ci0JaW50IGJjZF9taW47Ci0JaW50IGJjZF9ob3VyOwotCWludCBiY2RfbWRheTsKLQlpbnQgYmNkX21vbjsKLQlpbnQgYmNkX3llYXI7Ci19OwotCi1zdGF0aWMgaXJxcmV0dXJuX3QgbnVjOTAwX3J0Y19pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqX3J0YykKLXsKLQlzdHJ1Y3QgbnVjOTAwX3J0YyAqcnRjID0gX3J0YzsKLQl1bnNpZ25lZCBsb25nIGV2ZW50cyA9IDAsIHJ0Y19pcnE7Ci0KLQlydGNfaXJxID0gX19yYXdfcmVhZGwocnRjLT5ydGNfcmVnICsgUkVHX1JUQ19SSUlSKTsKLQotCWlmIChydGNfaXJxICYgQUxBUk1JTlRFTkIpIHsKLQkJcnRjX2lycSAmPSB+QUxBUk1JTlRFTkI7Ci0JCV9fcmF3X3dyaXRlbChydGNfaXJxLCBydGMtPnJ0Y19yZWcgKyBSRUdfUlRDX1JJSVIpOwotCQlldmVudHMgfD0gUlRDX0FGIHwgUlRDX0lSUUY7Ci0JfQotCi0JaWYgKHJ0Y19pcnEgJiBUSUNLSU5URU5CKSB7Ci0JCXJ0Y19pcnEgJj0gflRJQ0tJTlRFTkI7Ci0JCV9fcmF3X3dyaXRlbChydGNfaXJxLCBydGMtPnJ0Y19yZWcgKyBSRUdfUlRDX1JJSVIpOwotCQlldmVudHMgfD0gUlRDX1VGIHwgUlRDX0lSUUY7Ci0JfQotCi0JcnRjX3VwZGF0ZV9pcnEocnRjLT5ydGNkZXYsIDEsIGV2ZW50cyk7Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyBpbnQgKmNoZWNrX3J0Y19hY2Nlc3NfZW5hYmxlKHN0cnVjdCBudWM5MDBfcnRjICpudWM5MDBfcnRjKQotewotCXVuc2lnbmVkIGludCB0aW1lb3V0ID0gMHgxMDAwOwotCV9fcmF3X3dyaXRlbChJTklSUkVTRVQsIG51YzkwMF9ydGMtPnJ0Y19yZWcgKyBSRUdfUlRDX0lOSVIpOwotCi0JbWRlbGF5KDEwKTsKLQotCV9fcmF3X3dyaXRlbChBRVJQT1dFUk9OLCBudWM5MDBfcnRjLT5ydGNfcmVnICsgUkVHX1JUQ19BRVIpOwotCi0Jd2hpbGUgKCEoX19yYXdfcmVhZGwobnVjOTAwX3J0Yy0+cnRjX3JlZyArIFJFR19SVENfQUVSKSAmIEFFUlJXRU5CKQotCQkJCQkJCQkmJiAtLXRpbWVvdXQpCi0JCW1kZWxheSgxKTsKLQotCWlmICghdGltZW91dCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVQRVJNKTsKLQotCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgdm9pZCBudWM5MDBfcnRjX2JjZDJiaW4odW5zaWduZWQgaW50IHRpbWVyZWcsCi0JCQkgICAgICAgdW5zaWduZWQgaW50IGNhbHJlZywgc3RydWN0IHJ0Y190aW1lICp0bSkKLXsKLQl0bS0+dG1fbWRheQk9IGJjZDJiaW4oY2FscmVnID4+IDApOwotCXRtLT50bV9tb24JPSBiY2QyYmluKGNhbHJlZyA+PiA4KTsKLQl0bS0+dG1feWVhcgk9IGJjZDJiaW4oY2FscmVnID4+IDE2KSArIDEwMDsKLQotCXRtLT50bV9zZWMJPSBiY2QyYmluKHRpbWVyZWcgPj4gMCk7Ci0JdG0tPnRtX21pbgk9IGJjZDJiaW4odGltZXJlZyA+PiA4KTsKLQl0bS0+dG1faG91cgk9IGJjZDJiaW4odGltZXJlZyA+PiAxNik7Ci19Ci0KLXN0YXRpYyB2b2lkIG51YzkwMF9ydGNfYmluMmJjZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqc2V0dG0sCi0JCQkJCQlzdHJ1Y3QgbnVjOTAwX2JjZF90aW1lICpnZXR0bSkKLXsKLQlnZXR0bS0+YmNkX21kYXkgPSBiaW4yYmNkKHNldHRtLT50bV9tZGF5KSA8PCAwOwotCWdldHRtLT5iY2RfbW9uICA9IGJpbjJiY2Qoc2V0dG0tPnRtX21vbikgPDwgODsKLQotCWlmIChzZXR0bS0+dG1feWVhciA8IDEwMCkgewotCQlkZXZfd2FybihkZXYsICJUaGUgeWVhciB3aWxsIGJlIGJldHdlZW4gMTk3MC0xOTk5LCByaWdodD9cbiIpOwotCQlnZXR0bS0+YmNkX3llYXIgPSBiaW4yYmNkKHNldHRtLT50bV95ZWFyKSA8PCAxNjsKLQl9IGVsc2UgewotCQlnZXR0bS0+YmNkX3llYXIgPSBiaW4yYmNkKHNldHRtLT50bV95ZWFyIC0gMTAwKSA8PCAxNjsKLQl9Ci0KLQlnZXR0bS0+YmNkX3NlYyAgPSBiaW4yYmNkKHNldHRtLT50bV9zZWMpIDw8IDA7Ci0JZ2V0dG0tPmJjZF9taW4gID0gYmluMmJjZChzZXR0bS0+dG1fbWluKSA8PCA4OwotCWdldHRtLT5iY2RfaG91ciA9IGJpbjJiY2Qoc2V0dG0tPnRtX2hvdXIpIDw8IDE2OwotfQotCi1zdGF0aWMgaW50IG51YzkwMF9hbGFybV9pcnFfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGVuYWJsZWQpCi17Ci0Jc3RydWN0IG51YzkwMF9ydGMgKnJ0YyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCi0JaWYgKGVuYWJsZWQpCi0JCV9fcmF3X3dyaXRlbChfX3Jhd19yZWFkbChydGMtPnJ0Y19yZWcgKyBSRUdfUlRDX1JJRVIpfAotCQkJCShBTEFSTUlOVEVOQiksIHJ0Yy0+cnRjX3JlZyArIFJFR19SVENfUklFUik7Ci0JZWxzZQotCQlfX3Jhd193cml0ZWwoX19yYXdfcmVhZGwocnRjLT5ydGNfcmVnICsgUkVHX1JUQ19SSUVSKSYKLQkJCQkofkFMQVJNSU5URU5CKSwgcnRjLT5ydGNfcmVnICsgUkVHX1JUQ19SSUVSKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IG51YzkwMF9ydGNfcmVhZF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKLXsKLQlzdHJ1Y3QgbnVjOTAwX3J0YyAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0JdW5zaWduZWQgaW50IHRpbWV2YWwsIGNscnZhbDsKLQotCXRpbWV2YWwgPSBfX3Jhd19yZWFkbChydGMtPnJ0Y19yZWcgKyBSRUdfUlRDX1RMUik7Ci0JY2xydmFsCT0gX19yYXdfcmVhZGwocnRjLT5ydGNfcmVnICsgUkVHX1JUQ19DTFIpOwotCi0JbnVjOTAwX3J0Y19iY2QyYmluKHRpbWV2YWwsIGNscnZhbCwgdG0pOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbnVjOTAwX3J0Y19zZXRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCi17Ci0Jc3RydWN0IG51YzkwMF9ydGMgKnJ0YyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCXN0cnVjdCBudWM5MDBfYmNkX3RpbWUgZ2V0dG07Ci0JdW5zaWduZWQgbG9uZyB2YWw7Ci0JaW50ICplcnI7Ci0KLQludWM5MDBfcnRjX2JpbjJiY2QoZGV2LCB0bSwgJmdldHRtKTsKLQotCWVyciA9IGNoZWNrX3J0Y19hY2Nlc3NfZW5hYmxlKHJ0Yyk7Ci0JaWYgKElTX0VSUihlcnIpKQotCQlyZXR1cm4gUFRSX0VSUihlcnIpOwotCi0JdmFsID0gZ2V0dG0uYmNkX21kYXkgfCBnZXR0bS5iY2RfbW9uIHwgZ2V0dG0uYmNkX3llYXI7Ci0JX19yYXdfd3JpdGVsKHZhbCwgcnRjLT5ydGNfcmVnICsgUkVHX1JUQ19DTFIpOwotCi0JdmFsID0gZ2V0dG0uYmNkX3NlYyB8IGdldHRtLmJjZF9taW4gfCBnZXR0bS5iY2RfaG91cjsKLQlfX3Jhd193cml0ZWwodmFsLCBydGMtPnJ0Y19yZWcgKyBSRUdfUlRDX1RMUik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBudWM5MDBfcnRjX3JlYWRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKLXsKLQlzdHJ1Y3QgbnVjOTAwX3J0YyAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0JdW5zaWduZWQgaW50IHRpbWV2YWwsIGNhcnZhbDsKLQotCXRpbWV2YWwgPSBfX3Jhd19yZWFkbChydGMtPnJ0Y19yZWcgKyBSRUdfUlRDX1RBUik7Ci0JY2FydmFsCT0gX19yYXdfcmVhZGwocnRjLT5ydGNfcmVnICsgUkVHX1JUQ19DQVIpOwotCi0JbnVjOTAwX3J0Y19iY2QyYmluKHRpbWV2YWwsIGNhcnZhbCwgJmFscm0tPnRpbWUpOwotCi0JcmV0dXJuIHJ0Y192YWxpZF90bSgmYWxybS0+dGltZSk7Ci19Ci0KLXN0YXRpYyBpbnQgbnVjOTAwX3J0Y19zZXRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKLXsKLQlzdHJ1Y3QgbnVjOTAwX3J0YyAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0Jc3RydWN0IG51YzkwMF9iY2RfdGltZSB0bTsKLQl1bnNpZ25lZCBsb25nIHZhbDsKLQlpbnQgKmVycjsKLQotCW51YzkwMF9ydGNfYmluMmJjZChkZXYsICZhbHJtLT50aW1lLCAmdG0pOwotCi0JZXJyID0gY2hlY2tfcnRjX2FjY2Vzc19lbmFibGUocnRjKTsKLQlpZiAoSVNfRVJSKGVycikpCi0JCXJldHVybiBQVFJfRVJSKGVycik7Ci0KLQl2YWwgPSB0bS5iY2RfbWRheSB8IHRtLmJjZF9tb24gfCB0bS5iY2RfeWVhcjsKLQlfX3Jhd193cml0ZWwodmFsLCBydGMtPnJ0Y19yZWcgKyBSRUdfUlRDX0NBUik7Ci0KLQl2YWwgPSB0bS5iY2Rfc2VjIHwgdG0uYmNkX21pbiB8IHRtLmJjZF9ob3VyOwotCV9fcmF3X3dyaXRlbCh2YWwsIHJ0Yy0+cnRjX3JlZyArIFJFR19SVENfVEFSKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0Y19jbGFzc19vcHMgbnVjOTAwX3J0Y19vcHMgPSB7Ci0JLnJlYWRfdGltZSA9IG51YzkwMF9ydGNfcmVhZF90aW1lLAotCS5zZXRfdGltZSA9IG51YzkwMF9ydGNfc2V0X3RpbWUsCi0JLnJlYWRfYWxhcm0gPSBudWM5MDBfcnRjX3JlYWRfYWxhcm0sCi0JLnNldF9hbGFybSA9IG51YzkwMF9ydGNfc2V0X2FsYXJtLAotCS5hbGFybV9pcnFfZW5hYmxlID0gbnVjOTAwX2FsYXJtX2lycV9lbmFibGUsCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBudWM5MDBfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0Jc3RydWN0IG51YzkwMF9ydGMgKm51YzkwMF9ydGM7Ci0KLQludWM5MDBfcnRjID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZihzdHJ1Y3QgbnVjOTAwX3J0YyksCi0JCQkJR0ZQX0tFUk5FTCk7Ci0JaWYgKCFudWM5MDBfcnRjKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JbnVjOTAwX3J0Yy0+cnRjX3JlZyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOwotCWlmIChJU19FUlIobnVjOTAwX3J0Yy0+cnRjX3JlZykpCi0JCXJldHVybiBQVFJfRVJSKG51YzkwMF9ydGMtPnJ0Y19yZWcpOwotCi0JcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgbnVjOTAwX3J0Yyk7Ci0KLQludWM5MDBfcnRjLT5ydGNkZXYgPSBkZXZtX3J0Y19kZXZpY2VfcmVnaXN0ZXIoJnBkZXYtPmRldiwgcGRldi0+bmFtZSwKLQkJCQkJCSZudWM5MDBfcnRjX29wcywgVEhJU19NT0RVTEUpOwotCWlmIChJU19FUlIobnVjOTAwX3J0Yy0+cnRjZGV2KSkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJydGMgZGV2aWNlIHJlZ2lzdGVyIGZhaWxlZFxuIik7Ci0JCXJldHVybiBQVFJfRVJSKG51YzkwMF9ydGMtPnJ0Y2Rldik7Ci0JfQotCi0JX19yYXdfd3JpdGVsKF9fcmF3X3JlYWRsKG51YzkwMF9ydGMtPnJ0Y19yZWcgKyBSRUdfUlRDX1RTU1IpIHwgTU9ERTI0LAotCQkJCQludWM5MDBfcnRjLT5ydGNfcmVnICsgUkVHX1JUQ19UU1NSKTsKLQotCW51YzkwMF9ydGMtPmlycV9udW0gPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIG51YzkwMF9ydGMtPmlycV9udW0sCi0JCQludWM5MDBfcnRjX2ludGVycnVwdCwgMCwgIm51YzkwMHJ0YyIsIG51YzkwMF9ydGMpKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIk5VQzkwMCBSVEMgcmVxdWVzdCBpcnEgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbnVjOTAwX3J0Y19kcml2ZXIgPSB7Ci0JLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gIm51YzkwMC1ydGMiLAotCX0sCi19OwotCi1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyX3Byb2JlKG51YzkwMF9ydGNfZHJpdmVyLCBudWM5MDBfcnRjX3Byb2JlKTsKLQotTU9EVUxFX0FVVEhPUigiV2FuIFpvbmdTaHVuIDxtY3Vvcy5jb21AZ21haWwuY29tPiIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJudWM5MTAvbnVjOTIwIFJUQyBkcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06bnVjOTAwLXJ0YyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXBjZjIxMjMuYyBiL2RyaXZlcnMvcnRjL3J0Yy1wY2YyMTIzLmMKaW5kZXggZmI1NDJhOS4uYzM2OTFmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXBjZjIxMjMuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtcGNmMjEyMy5jCkBAIC04Miw3ICs4Miw3IEBACiAjZGVmaW5lIE9TQ19IQVNfU1RPUFBFRAkJQklUKDcpCS8qIENsb2NrIGhhcyBiZWVuIHN0b3BwZWQgKi8KIAogLyogUENGMjEyM19SRUdfQUxSTV9YWCBCSVRTICovCi0jZGVmaW5lIEFMUk1fRU5BQkxFCQlCSVQoNykJLyogTU4sIEhSLCBETSwgb3IgRFcgYWxhcm0gZW5hYmxlICovCisjZGVmaW5lIEFMUk1fRElTQUJMRQkJQklUKDcpCS8qIE1OLCBIUiwgRE0sIG9yIERXIGFsYXJtIG1hdGNoaW5nICovCiAKIC8qIFBDRjIxMjNfUkVHX1RNUl9DTEtPVVQgQklUUyAqLwogI2RlZmluZSBDRF9UTVJfNDA5NktIWgkJKDApCS8qIDQwOTYgS0h6IGNvdW50ZG93biB0aW1lciAqLwpAQCAtMTA0LDcgKzEwNCw3IEBACiAKIHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBwY2YyMTIzX2RyaXZlcjsKIAotc3RydWN0IHBjZjIxMjNfcGxhdF9kYXRhIHsKK3N0cnVjdCBwY2YyMTIzX2RhdGEgewogCXN0cnVjdCBydGNfZGV2aWNlICpydGM7CiAJc3RydWN0IHJlZ21hcCAqbWFwOwogfTsKQEAgLTExOSwxMSArMTE5LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBwY2YyMTIzX3JlZ21hcF9jb25maWcgPSB7CiAKIHN0YXRpYyBpbnQgcGNmMjEyM19yZWFkX29mZnNldChzdHJ1Y3QgZGV2aWNlICpkZXYsIGxvbmcgKm9mZnNldCkKIHsKLQlzdHJ1Y3QgcGNmMjEyM19wbGF0X2RhdGEgKnBkYXRhID0gZGV2X2dldF9wbGF0ZGF0YShkZXYpOworCXN0cnVjdCBwY2YyMTIzX2RhdGEgKnBjZjIxMjMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlpbnQgcmV0LCB2YWw7CiAJdW5zaWduZWQgaW50IHJlZzsKIAotCXJldCA9IHJlZ21hcF9yZWFkKHBkYXRhLT5tYXAsIFBDRjIxMjNfUkVHX09GRlNFVCwgJnJlZyk7CisJcmV0ID0gcmVnbWFwX3JlYWQocGNmMjEyMy0+bWFwLCBQQ0YyMTIzX1JFR19PRkZTRVQsICZyZWcpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBzdGF0aWMgaW50IHBjZjIxMjNfcmVhZF9vZmZzZXQoc3RydWN0IGRldmljZSAqZGV2LCBsb25nICpvZmZzZXQpCiAgKi8KIHN0YXRpYyBpbnQgcGNmMjEyM19zZXRfb2Zmc2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgbG9uZyBvZmZzZXQpCiB7Ci0Jc3RydWN0IHBjZjIxMjNfcGxhdF9kYXRhICpwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoZGV2KTsKKwlzdHJ1Y3QgcGNmMjEyM19kYXRhICpwY2YyMTIzID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJczggcmVnOwogCiAJaWYgKG9mZnNldCA+IE9GRlNFVF9TVEVQICogMTI3KQpAQCAtMTY5LDE2ICsxNjksMTYgQEAgc3RhdGljIGludCBwY2YyMTIzX3NldF9vZmZzZXQoc3RydWN0IGRldmljZSAqZGV2LCBsb25nIG9mZnNldCkKIAkJcmVnIHw9IE9GRlNFVF9DT0FSU0U7CiAJfQogCi0JcmV0dXJuIHJlZ21hcF93cml0ZShwZGF0YS0+bWFwLCBQQ0YyMTIzX1JFR19PRkZTRVQsICh1bnNpZ25lZCBpbnQpcmVnKTsKKwlyZXR1cm4gcmVnbWFwX3dyaXRlKHBjZjIxMjMtPm1hcCwgUENGMjEyM19SRUdfT0ZGU0VULCAodW5zaWduZWQgaW50KXJlZyk7CiB9CiAKIHN0YXRpYyBpbnQgcGNmMjEyM19ydGNfcmVhZF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKIHsKLQlzdHJ1Y3QgcGNmMjEyM19wbGF0X2RhdGEgKnBkYXRhID0gZGV2X2dldF9wbGF0ZGF0YShkZXYpOworCXN0cnVjdCBwY2YyMTIzX2RhdGEgKnBjZjIxMjMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAl1OCByeGJ1Zls3XTsKIAlpbnQgcmV0OwogCi0JcmV0ID0gcmVnbWFwX2J1bGtfcmVhZChwZGF0YS0+bWFwLCBQQ0YyMTIzX1JFR19TQywgcnhidWYsCisJcmV0ID0gcmVnbWFwX2J1bGtfcmVhZChwY2YyMTIzLT5tYXAsIFBDRjIxMjNfUkVHX1NDLCByeGJ1ZiwKIAkJCQlzaXplb2YocnhidWYpKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpAQCAtMTk0LDkgKzE5NCw3IEBAIHN0YXRpYyBpbnQgcGNmMjEyM19ydGNfcmVhZF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKIAl0bS0+dG1fbWRheSA9IGJjZDJiaW4ocnhidWZbM10gJiAweDNGKTsKIAl0bS0+dG1fd2RheSA9IHJ4YnVmWzRdICYgMHgwNzsKIAl0bS0+dG1fbW9uID0gYmNkMmJpbihyeGJ1Zls1XSAmIDB4MUYpIC0gMTsgLyogcnRjIG1uIDEtMTIgKi8KLQl0bS0+dG1feWVhciA9IGJjZDJiaW4ocnhidWZbNl0pOwotCWlmICh0bS0+dG1feWVhciA8IDcwKQotCQl0bS0+dG1feWVhciArPSAxMDA7CS8qIGFzc3VtZSB3ZSBhcmUgaW4gMTk3MC4uLjIwNjkgKi8KKwl0bS0+dG1feWVhciA9IGJjZDJiaW4ocnhidWZbNl0pICsgMTAwOwogCiAJZGV2X2RiZyhkZXYsICIlczogdG0gaXMgJXB0UlxuIiwgX19mdW5jX18sIHRtKTsKIApAQCAtMjA1LDE0ICsyMDMsMTQgQEAgc3RhdGljIGludCBwY2YyMTIzX3J0Y19yZWFkX3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQogCiBzdGF0aWMgaW50IHBjZjIxMjNfcnRjX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKIHsKLQlzdHJ1Y3QgcGNmMjEyM19wbGF0X2RhdGEgKnBkYXRhID0gZGV2X2dldF9wbGF0ZGF0YShkZXYpOworCXN0cnVjdCBwY2YyMTIzX2RhdGEgKnBjZjIxMjMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAl1OCB0eGJ1Zls3XTsKIAlpbnQgcmV0OwogCiAJZGV2X2RiZyhkZXYsICIlczogdG0gaXMgJXB0UlxuIiwgX19mdW5jX18sIHRtKTsKIAogCS8qIFN0b3AgdGhlIGNvdW50ZXIgZmlyc3QgKi8KLQlyZXQgPSByZWdtYXBfd3JpdGUocGRhdGEtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDEsIENUUkwxX1NUT1ApOworCXJldCA9IHJlZ21hcF93cml0ZShwY2YyMTIzLT5tYXAsIFBDRjIxMjNfUkVHX0NUUkwxLCBDVFJMMV9TVE9QKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0yMjMsMjkgKzIyMSwzNyBAQCBzdGF0aWMgaW50IHBjZjIxMjNfcnRjX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKIAl0eGJ1ZlszXSA9IGJpbjJiY2QodG0tPnRtX21kYXkgJiAweDNGKTsKIAl0eGJ1Zls0XSA9IHRtLT50bV93ZGF5ICYgMHgwNzsKIAl0eGJ1Zls1XSA9IGJpbjJiY2QoKHRtLT50bV9tb24gKyAxKSAmIDB4MUYpOyAvKiBydGMgbW4gMS0xMiAqLwotCXR4YnVmWzZdID0gYmluMmJjZCh0bS0+dG1feWVhciA8IDEwMCA/IHRtLT50bV95ZWFyIDogdG0tPnRtX3llYXIgLSAxMDApOworCXR4YnVmWzZdID0gYmluMmJjZCh0bS0+dG1feWVhciAtIDEwMCk7CiAKLQlyZXQgPSByZWdtYXBfYnVsa193cml0ZShwZGF0YS0+bWFwLCBQQ0YyMTIzX1JFR19TQywgdHhidWYsCisJcmV0ID0gcmVnbWFwX2J1bGtfd3JpdGUocGNmMjEyMy0+bWFwLCBQQ0YyMTIzX1JFR19TQywgdHhidWYsCiAJCQkJc2l6ZW9mKHR4YnVmKSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIFN0YXJ0IHRoZSBjb3VudGVyICovCi0JcmV0ID0gcmVnbWFwX3dyaXRlKHBkYXRhLT5tYXAsIFBDRjIxMjNfUkVHX0NUUkwxLCBDVFJMMV9DTEVBUik7CisJcmV0ID0gcmVnbWFwX3dyaXRlKHBjZjIxMjMtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDEsIENUUkwxX0NMRUFSKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgcGNmMjEyM19ydGNfYWxhcm1faXJxX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBlbikKK3sKKwlzdHJ1Y3QgcGNmMjEyM19kYXRhICpwY2YyMTIzID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlyZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRzKHBjZjIxMjMtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDIsIENUUkwyX0FJRSwKKwkJCQkgIGVuID8gQ1RSTDJfQUlFIDogMCk7Cit9CisKIHN0YXRpYyBpbnQgcGNmMjEyM19ydGNfcmVhZF9hbGFybShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfd2thbHJtICphbG0pCiB7Ci0Jc3RydWN0IHBjZjIxMjNfcGxhdF9kYXRhICpwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoZGV2KTsKKwlzdHJ1Y3QgcGNmMjEyM19kYXRhICpwY2YyMTIzID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJdTggcnhidWZbNF07CiAJaW50IHJldDsKIAl1bnNpZ25lZCBpbnQgdmFsID0gMDsKIAotCXJldCA9IHJlZ21hcF9idWxrX3JlYWQocGRhdGEtPm1hcCwgUENGMjEyM19SRUdfQUxSTV9NTiwgcnhidWYsCisJcmV0ID0gcmVnbWFwX2J1bGtfcmVhZChwY2YyMTIzLT5tYXAsIFBDRjIxMjNfUkVHX0FMUk1fTU4sIHJ4YnVmLAogCQkJCXNpemVvZihyeGJ1ZikpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0yNTcsNyArMjYzLDcgQEAgc3RhdGljIGludCBwY2YyMTIzX3J0Y19yZWFkX2FsYXJtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193a2Fscm0gKmFsbSkKIAogCWRldl9kYmcoZGV2LCAiJXM6IGFsbSBpcyAlcHRSXG4iLCBfX2Z1bmNfXywgJmFsbS0+dGltZSk7CiAKLQlyZXQgPSByZWdtYXBfcmVhZChwZGF0YS0+bWFwLCBQQ0YyMTIzX1JFR19DVFJMMiwgJnZhbCk7CisJcmV0ID0gcmVnbWFwX3JlYWQocGNmMjEyMy0+bWFwLCBQQ0YyMTIzX1JFR19DVFJMMiwgJnZhbCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjY4LDE5ICsyNzQsMTkgQEAgc3RhdGljIGludCBwY2YyMTIzX3J0Y19yZWFkX2FsYXJtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193a2Fscm0gKmFsbSkKIAogc3RhdGljIGludCBwY2YyMTIzX3J0Y19zZXRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxtKQogewotCXN0cnVjdCBwY2YyMTIzX3BsYXRfZGF0YSAqcGRhdGEgPSBkZXZfZ2V0X3BsYXRkYXRhKGRldik7CisJc3RydWN0IHBjZjIxMjNfZGF0YSAqcGNmMjEyMyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXU4IHR4YnVmWzRdOwogCWludCByZXQ7CiAKIAlkZXZfZGJnKGRldiwgIiVzOiBhbG0gaXMgJXB0UlxuIiwgX19mdW5jX18sICZhbG0tPnRpbWUpOwogCi0JLyogRW5zdXJlIGFsYXJtIGZsYWcgaXMgY2xlYXIgKi8KLQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocGRhdGEtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDIsIENUUkwyX0FGLCAwKTsKKwkvKiBEaXNhYmxlIGFsYXJtIGludGVycnVwdCAqLworCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhwY2YyMTIzLT5tYXAsIFBDRjIxMjNfUkVHX0NUUkwyLCBDVFJMMl9BSUUsIDApOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQkvKiBEaXNhYmxlIGFsYXJtIGludGVycnVwdCAqLwotCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhwZGF0YS0+bWFwLCBQQ0YyMTIzX1JFR19DVFJMMiwgQ1RSTDJfQUlFLCAwKTsKKwkvKiBFbnN1cmUgYWxhcm0gZmxhZyBpcyBjbGVhciAqLworCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhwY2YyMTIzLT5tYXAsIFBDRjIxMjNfUkVHX0NUUkwyLCBDVFJMMl9BRiwgMCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjg4LDQyICsyOTQsMzQgQEAgc3RhdGljIGludCBwY2YyMTIzX3J0Y19zZXRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxtKQogCXR4YnVmWzBdID0gYmluMmJjZChhbG0tPnRpbWUudG1fbWluICYgMHg3Rik7CiAJdHhidWZbMV0gPSBiaW4yYmNkKGFsbS0+dGltZS50bV9ob3VyICYgMHgzRik7CiAJdHhidWZbMl0gPSBiaW4yYmNkKGFsbS0+dGltZS50bV9tZGF5ICYgMHgzRik7Ci0JdHhidWZbM10gPSBiaW4yYmNkKGFsbS0+dGltZS50bV93ZGF5ICYgMHgwNyk7CisJdHhidWZbM10gPSBBTFJNX0RJU0FCTEU7CiAKLQlyZXQgPSByZWdtYXBfYnVsa193cml0ZShwZGF0YS0+bWFwLCBQQ0YyMTIzX1JFR19BTFJNX01OLCB0eGJ1ZiwKKwlyZXQgPSByZWdtYXBfYnVsa193cml0ZShwY2YyMTIzLT5tYXAsIFBDRjIxMjNfUkVHX0FMUk1fTU4sIHR4YnVmLAogCQkJCXNpemVvZih0eGJ1ZikpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQkvKiBFbmFibGUgYWxhcm0gaW50ZXJydXB0ICovCi0JaWYgKGFsbS0+ZW5hYmxlZCkJewotCQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocGRhdGEtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDIsCi0JCQkJCQlDVFJMMl9BSUUsIENUUkwyX0FJRSk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldHVybiAwOworCXJldHVybiBwY2YyMTIzX3J0Y19hbGFybV9pcnFfZW5hYmxlKGRldiwgYWxtLT5lbmFibGVkKTsKIH0KIAogc3RhdGljIGlycXJldHVybl90IHBjZjIxMjNfcnRjX2lycShpbnQgaXJxLCB2b2lkICpkZXYpCiB7Ci0Jc3RydWN0IHBjZjIxMjNfcGxhdF9kYXRhICpwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoZGV2KTsKLQlzdHJ1Y3QgbXV0ZXggKmxvY2sgPSAmcGRhdGEtPnJ0Yy0+b3BzX2xvY2s7CisJc3RydWN0IHBjZjIxMjNfZGF0YSAqcGNmMjEyMyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBtdXRleCAqbG9jayA9ICZwY2YyMTIzLT5ydGMtPm9wc19sb2NrOwogCXVuc2lnbmVkIGludCB2YWwgPSAwOwogCWludCByZXQgPSBJUlFfTk9ORTsKIAogCW11dGV4X2xvY2sobG9jayk7Ci0JcmVnbWFwX3JlYWQocGRhdGEtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDIsICZ2YWwpOworCXJlZ21hcF9yZWFkKHBjZjIxMjMtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDIsICZ2YWwpOwogCiAJLyogQWxhcm0/ICovCiAJaWYgKHZhbCAmIENUUkwyX0FGKSB7CiAJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJCS8qIENsZWFyIGFsYXJtIGZsYWcgKi8KLQkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBkYXRhLT5tYXAsIFBDRjIxMjNfUkVHX0NUUkwyLCBDVFJMMl9BRiwgMCk7CisJCXJlZ21hcF91cGRhdGVfYml0cyhwY2YyMTIzLT5tYXAsIFBDRjIxMjNfUkVHX0NUUkwyLCBDVFJMMl9BRiwgMCk7CiAKLQkJcnRjX3VwZGF0ZV9pcnEocGRhdGEtPnJ0YywgMSwgUlRDX0lSUUYgfCBSVENfQUYpOworCQlydGNfdXBkYXRlX2lycShwY2YyMTIzLT5ydGMsIDEsIFJUQ19JUlFGIHwgUlRDX0FGKTsKIAl9CiAKIAltdXRleF91bmxvY2sobG9jayk7CkBAIC0zMzMsMjMgKzMzMSwyMyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcGNmMjEyM19ydGNfaXJxKGludCBpcnEsIHZvaWQgKmRldikKIAogc3RhdGljIGludCBwY2YyMTIzX3Jlc2V0KHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgcGNmMjEyM19wbGF0X2RhdGEgKnBkYXRhID0gZGV2X2dldF9wbGF0ZGF0YShkZXYpOworCXN0cnVjdCBwY2YyMTIzX2RhdGEgKnBjZjIxMjMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlpbnQgcmV0OwogCXVuc2lnbmVkIGludCB2YWwgPSAwOwogCi0JcmV0ID0gcmVnbWFwX3dyaXRlKHBkYXRhLT5tYXAsIFBDRjIxMjNfUkVHX0NUUkwxLCBDVFJMMV9TV19SRVNFVCk7CisJcmV0ID0gcmVnbWFwX3dyaXRlKHBjZjIxMjMtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDEsIENUUkwxX1NXX1JFU0VUKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCiAJLyogU3RvcCB0aGUgY291bnRlciAqLwogCWRldl9kYmcoZGV2LCAic3RvcHBpbmcgUlRDXG4iKTsKLQlyZXQgPSByZWdtYXBfd3JpdGUocGRhdGEtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDEsIENUUkwxX1NUT1ApOworCXJldCA9IHJlZ21hcF93cml0ZShwY2YyMTIzLT5tYXAsIFBDRjIxMjNfUkVHX0NUUkwxLCBDVFJMMV9TVE9QKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCiAJLyogU2VlIGlmIHRoZSBjb3VudGVyIHdhcyBhY3R1YWxseSBzdG9wcGVkICovCiAJZGV2X2RiZyhkZXYsICJjaGVja2luZyBmb3IgcHJlc2VuY2Ugb2YgUlRDXG4iKTsKLQlyZXQgPSByZWdtYXBfcmVhZChwZGF0YS0+bWFwLCBQQ0YyMTIzX1JFR19DVFJMMSwgJnZhbCk7CisJcmV0ID0gcmVnbWFwX3JlYWQocGNmMjEyMy0+bWFwLCBQQ0YyMTIzX1JFR19DVFJMMSwgJnZhbCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMzU4LDcgKzM1Niw3IEBAIHN0YXRpYyBpbnQgcGNmMjEyM19yZXNldChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCXJldHVybiAtRU5PREVWOwogCiAJLyogU3RhcnQgdGhlIGNvdW50ZXIgKi8KLQlyZXQgPSByZWdtYXBfd3JpdGUocGRhdGEtPm1hcCwgUENGMjEyM19SRUdfQ1RSTDEsIENUUkwxX0NMRUFSKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUocGNmMjEyMy0+bWFwLCBQQ0YyMTIzX1JFR19DVFJMMSwgQ1RSTDFfQ0xFQVIpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTM3MiwyNiArMzcwLDI3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRjX2NsYXNzX29wcyBwY2YyMTIzX3J0Y19vcHMgPSB7CiAJLnNldF9vZmZzZXQJPSBwY2YyMTIzX3NldF9vZmZzZXQsCiAJLnJlYWRfYWxhcm0JPSBwY2YyMTIzX3J0Y19yZWFkX2FsYXJtLAogCS5zZXRfYWxhcm0JPSBwY2YyMTIzX3J0Y19zZXRfYWxhcm0sCisJLmFsYXJtX2lycV9lbmFibGUgPSBwY2YyMTIzX3J0Y19hbGFybV9pcnFfZW5hYmxlLAogfTsKIAogc3RhdGljIGludCBwY2YyMTIzX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CiAJc3RydWN0IHJ0Y19kZXZpY2UgKnJ0YzsKIAlzdHJ1Y3QgcnRjX3RpbWUgdG07Ci0Jc3RydWN0IHBjZjIxMjNfcGxhdF9kYXRhICpwZGF0YTsKKwlzdHJ1Y3QgcGNmMjEyM19kYXRhICpwY2YyMTIzOwogCWludCByZXQgPSAwOwogCi0JcGRhdGEgPSBkZXZtX2t6YWxsb2MoJnNwaS0+ZGV2LCBzaXplb2Yoc3RydWN0IHBjZjIxMjNfcGxhdF9kYXRhKSwKKwlwY2YyMTIzID0gZGV2bV9remFsbG9jKCZzcGktPmRldiwgc2l6ZW9mKHN0cnVjdCBwY2YyMTIzX2RhdGEpLAogCQkJCUdGUF9LRVJORUwpOwotCWlmICghcGRhdGEpCisJaWYgKCFwY2YyMTIzKQogCQlyZXR1cm4gLUVOT01FTTsKLQlzcGktPmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CiAKLQlwZGF0YS0+bWFwID0gZGV2bV9yZWdtYXBfaW5pdF9zcGkoc3BpLCAmcGNmMjEyM19yZWdtYXBfY29uZmlnKTsKKwlkZXZfc2V0X2RydmRhdGEoJnNwaS0+ZGV2LCBwY2YyMTIzKTsKIAotCWlmIChJU19FUlIocGRhdGEtPm1hcCkpIHsKKwlwY2YyMTIzLT5tYXAgPSBkZXZtX3JlZ21hcF9pbml0X3NwaShzcGksICZwY2YyMTIzX3JlZ21hcF9jb25maWcpOworCWlmIChJU19FUlIocGNmMjEyMy0+bWFwKSkgewogCQlkZXZfZXJyKCZzcGktPmRldiwgInJlZ21hcCBpbml0IGZhaWxlZC5cbiIpOwotCQlnb3RvIGtmcmVlX2V4aXQ7CisJCXJldHVybiBQVFJfRVJSKHBjZjIxMjMtPm1hcCk7CiAJfQogCiAJcmV0ID0gcGNmMjEyM19ydGNfcmVhZF90aW1lKCZzcGktPmRldiwgJnRtKTsKQEAgLTM5OSw3ICszOTgsNyBAQCBzdGF0aWMgaW50IHBjZjIxMjNfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkJcmV0ID0gcGNmMjEyM19yZXNldCgmc3BpLT5kZXYpOwogCQlpZiAocmV0IDwgMCkgewogCQkJZGV2X2Vycigmc3BpLT5kZXYsICJjaGlwIG5vdCBmb3VuZFxuIik7Ci0JCQlnb3RvIGtmcmVlX2V4aXQ7CisJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQogCkBAIC00MDcsMTYgKzQwNiwxMSBAQCBzdGF0aWMgaW50IHBjZjIxMjNfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkJCShzcGktPm1heF9zcGVlZF9oeiArIDUwMCkgLyAxMDAwKTsKIAogCS8qIEZpbmFsaXplIHRoZSBpbml0aWFsaXphdGlvbiAqLwotCXJ0YyA9IGRldm1fcnRjX2RldmljZV9yZWdpc3Rlcigmc3BpLT5kZXYsIHBjZjIxMjNfZHJpdmVyLmRyaXZlci5uYW1lLAotCQkJJnBjZjIxMjNfcnRjX29wcywgVEhJU19NT0RVTEUpOworCXJ0YyA9IGRldm1fcnRjX2FsbG9jYXRlX2RldmljZSgmc3BpLT5kZXYpOworCWlmIChJU19FUlIocnRjKSkKKwkJcmV0dXJuIFBUUl9FUlIocnRjKTsKIAotCWlmIChJU19FUlIocnRjKSkgewotCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0byByZWdpc3Rlci5cbiIpOwotCQlyZXQgPSBQVFJfRVJSKHJ0Yyk7Ci0JCWdvdG8ga2ZyZWVfZXhpdDsKLQl9Ci0KLQlwZGF0YS0+cnRjID0gcnRjOworCXBjZjIxMjMtPnJ0YyA9IHJ0YzsKIAogCS8qIFJlZ2lzdGVyIGFsYXJtIGlycSAqLwogCWlmIChzcGktPmlycSA+IDApIHsKQEAgLTQzNCwxOSArNDI4LDI1IEBAIHN0YXRpYyBpbnQgcGNmMjEyM19wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCSAqIHN1cHBvcnQgdG8gdGhpcyBkcml2ZXIgdG8gZ2VuZXJhdGUgaW50ZXJydXB0cyBtb3JlIHRoYW4gb25jZQogCSAqIHBlciBtaW51dGUuCiAJICovCi0JcGRhdGEtPnJ0Yy0+dWllX3Vuc3VwcG9ydGVkID0gMTsKKwlydGMtPnVpZV91bnN1cHBvcnRlZCA9IDE7CisJcnRjLT5vcHMgPSAmcGNmMjEyM19ydGNfb3BzOworCXJ0Yy0+cmFuZ2VfbWluID0gUlRDX1RJTUVTVEFNUF9CRUdJTl8yMDAwOworCXJ0Yy0+cmFuZ2VfbWF4ID0gUlRDX1RJTUVTVEFNUF9FTkRfMjA5OTsKKwlydGMtPnNldF9zdGFydF90aW1lID0gdHJ1ZTsKKworCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UocnRjKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJcmV0dXJuIDA7Ci0KLWtmcmVlX2V4aXQ6Ci0Jc3BpLT5kZXYucGxhdGZvcm1fZGF0YSA9IE5VTEw7Ci0JcmV0dXJuIHJldDsKIH0KIAogI2lmZGVmIENPTkZJR19PRgogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcGNmMjEyM19kdF9pZHNbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gIm54cCxydGMtcGNmMjEyMyIsIH0sCisJeyAuY29tcGF0aWJsZSA9ICJueHAscGNmMjEyMyIsIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJtaWNyb2NyeXN0YWwscnYyMTIzIiwgfSwKKwkvKiBEZXByZWNhdGVkLCBkbyBub3QgdXNlICovCisJeyAuY29tcGF0aWJsZSA9ICJueHAscnRjLXBjZjIxMjMiLCB9LAogCXsgLyogc2VudGluZWwgKi8gfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHBjZjIxMjNfZHRfaWRzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1wY2YyMTI3LmMgYi9kcml2ZXJzL3J0Yy9ydGMtcGNmMjEyNy5jCmluZGV4IDg2MzJmNTguLjAyYjA2OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1wY2YyMTI3LmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXBjZjIxMjcuYwpAQCAtNSw2ICs1LDkgQEAKICAqCiAgKiBBdXRob3I6IFJlbmF1ZCBDZXJyYXRvIDxyLmNlcnJhdG9AdGlsLXRlY2hub2xvZ2llcy5mcj4KICAqCisgKiBXYXRjaGRvZyBhbmQgdGFtcGVyIGZ1bmN0aW9ucworICogQXV0aG9yOiBCcnVubyBUaG9tc2VuIDxicnVuby50aG9tc2VuQGdtYWlsLmNvbT4KKyAqCiAgKiBiYXNlZCBvbiB0aGUgb3RoZXIgZHJpdmVycyBpbiB0aGlzIHNhbWUgZGlyZWN0b3J5LgogICoKICAqIERhdGFzaGVldDogaHR0cDovL2NhY2hlLm54cC5jb20vZG9jdW1lbnRzL2RhdGFfc2hlZXQvUENGMjEyNy5wZGYKQEAgLTE4LDMwICsyMSw2NyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvd2F0Y2hkb2cuaD4KIAotI2RlZmluZSBQQ0YyMTI3X1JFR19DVFJMMSAgICAgICAoMHgwMCkgIC8qIENvbnRyb2wgUmVnaXN0ZXIgMSAqLwotI2RlZmluZSBQQ0YyMTI3X1JFR19DVFJMMiAgICAgICAoMHgwMSkgIC8qIENvbnRyb2wgUmVnaXN0ZXIgMiAqLworLyogQ29udHJvbCByZWdpc3RlciAxICovCisjZGVmaW5lIFBDRjIxMjdfUkVHX0NUUkwxCQkweDAwCisjZGVmaW5lIFBDRjIxMjdfQklUX0NUUkwxX1RTRjEJCQlCSVQoNCkKKy8qIENvbnRyb2wgcmVnaXN0ZXIgMiAqLworI2RlZmluZSBQQ0YyMTI3X1JFR19DVFJMMgkJMHgwMQorI2RlZmluZSBQQ0YyMTI3X0JJVF9DVFJMMl9UU0lFCQkJQklUKDIpCisjZGVmaW5lIFBDRjIxMjdfQklUX0NUUkwyX1RTRjIJCQlCSVQoNSkKKy8qIENvbnRyb2wgcmVnaXN0ZXIgMyAqLworI2RlZmluZSBQQ0YyMTI3X1JFR19DVFJMMwkJMHgwMgorI2RlZmluZSBQQ0YyMTI3X0JJVF9DVFJMM19CTElFCQkJQklUKDApCisjZGVmaW5lIFBDRjIxMjdfQklUX0NUUkwzX0JJRQkJCUJJVCgxKQorI2RlZmluZSBQQ0YyMTI3X0JJVF9DVFJMM19CTEYJCQlCSVQoMikKKyNkZWZpbmUgUENGMjEyN19CSVRfQ1RSTDNfQkYJCQlCSVQoMykKKyNkZWZpbmUgUENGMjEyN19CSVRfQ1RSTDNfQlRTRQkJCUJJVCg0KQorLyogVGltZSBhbmQgZGF0ZSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgUENGMjEyN19SRUdfU0MJCQkweDAzCisjZGVmaW5lIFBDRjIxMjdfQklUX1NDX09TRgkJCUJJVCg3KQorI2RlZmluZSBQQ0YyMTI3X1JFR19NTgkJCTB4MDQKKyNkZWZpbmUgUENGMjEyN19SRUdfSFIJCQkweDA1CisjZGVmaW5lIFBDRjIxMjdfUkVHX0RNCQkJMHgwNgorI2RlZmluZSBQQ0YyMTI3X1JFR19EVwkJCTB4MDcKKyNkZWZpbmUgUENGMjEyN19SRUdfTU8JCQkweDA4CisjZGVmaW5lIFBDRjIxMjdfUkVHX1lSCQkJMHgwOQorLyogV2F0Y2hkb2cgcmVnaXN0ZXJzICovCisjZGVmaW5lIFBDRjIxMjdfUkVHX1dEX0NUTAkJMHgxMAorI2RlZmluZSBQQ0YyMTI3X0JJVF9XRF9DVExfVEYwCQkJQklUKDApCisjZGVmaW5lIFBDRjIxMjdfQklUX1dEX0NUTF9URjEJCQlCSVQoMSkKKyNkZWZpbmUgUENGMjEyN19CSVRfV0RfQ1RMX0NEMAkJCUJJVCg2KQorI2RlZmluZSBQQ0YyMTI3X0JJVF9XRF9DVExfQ0QxCQkJQklUKDcpCisjZGVmaW5lIFBDRjIxMjdfUkVHX1dEX1ZBTAkJMHgxMQorLyogVGFtcGVyIHRpbWVzdGFtcCByZWdpc3RlcnMgKi8KKyNkZWZpbmUgUENGMjEyN19SRUdfVFNfQ1RSTAkJMHgxMgorI2RlZmluZSBQQ0YyMTI3X0JJVF9UU19DVFJMX1RTT0ZGCQlCSVQoNikKKyNkZWZpbmUgUENGMjEyN19CSVRfVFNfQ1RSTF9UU00JCQlCSVQoNykKKyNkZWZpbmUgUENGMjEyN19SRUdfVFNfU0MJCTB4MTMKKyNkZWZpbmUgUENGMjEyN19SRUdfVFNfTU4JCTB4MTQKKyNkZWZpbmUgUENGMjEyN19SRUdfVFNfSFIJCTB4MTUKKyNkZWZpbmUgUENGMjEyN19SRUdfVFNfRE0JCTB4MTYKKyNkZWZpbmUgUENGMjEyN19SRUdfVFNfTU8JCTB4MTcKKyNkZWZpbmUgUENGMjEyN19SRUdfVFNfWVIJCTB4MTgKKy8qCisgKiBSQU0gcmVnaXN0ZXJzCisgKiBQQ0YyMTI3IGhhcyA1MTIgYnl0ZXMgZ2VuZXJhbC1wdXJwb3NlIHN0YXRpYyBSQU0gKFNSQU0pIHRoYXQgaXMKKyAqIGJhdHRlcnkgYmFja2VkIGFuZCBjYW4gc3Vydml2ZSBhIHBvd2VyIG91dGFnZS4KKyAqIFBDRjIxMjkgZG9lc24ndCBoYXZlIHRoaXMgZmVhdHVyZS4KKyAqLworI2RlZmluZSBQQ0YyMTI3X1JFR19SQU1fQUREUl9NU0IJMHgxQQorI2RlZmluZSBQQ0YyMTI3X1JFR19SQU1fV1JUX0NNRAkJMHgxQworI2RlZmluZSBQQ0YyMTI3X1JFR19SQU1fUkRfQ01ECQkweDFECiAKLSNkZWZpbmUgUENGMjEyN19SRUdfQ1RSTDMgICAgICAgKDB4MDIpICAvKiBDb250cm9sIFJlZ2lzdGVyIDMgKi8KLSNkZWZpbmUgUENGMjEyN19SRUdfQ1RSTDNfQkxGCQlCSVQoMikKLQotI2RlZmluZSBQQ0YyMTI3X1JFR19TQyAgICAgICAgICAoMHgwMykgIC8qIGRhdGV0aW1lICovCi0jZGVmaW5lIFBDRjIxMjdfUkVHX01OICAgICAgICAgICgweDA0KQotI2RlZmluZSBQQ0YyMTI3X1JFR19IUiAgICAgICAgICAoMHgwNSkKLSNkZWZpbmUgUENGMjEyN19SRUdfRE0gICAgICAgICAgKDB4MDYpCi0jZGVmaW5lIFBDRjIxMjdfUkVHX0RXICAgICAgICAgICgweDA3KQotI2RlZmluZSBQQ0YyMTI3X1JFR19NTyAgICAgICAgICAoMHgwOCkKLSNkZWZpbmUgUENGMjEyN19SRUdfWVIgICAgICAgICAgKDB4MDkpCi0KLS8qIHRoZSBwY2YyMTI3IGhhcyA1MTIgYnl0ZXMgbnZtZW0sIHBjZjIxMjkgZG9lc24ndCAqLwotI2RlZmluZSBQQ0YyMTI3X1JFR19SQU1fYWRkcl9NU0IgICAgICAgMHgxYQotI2RlZmluZSBQQ0YyMTI3X1JFR19SQU1fd3J0X2NtZCAgICAgICAgMHgxYwotI2RlZmluZSBQQ0YyMTI3X1JFR19SQU1fcmRfY21kICAgICAgICAgMHgxZAotCi0jZGVmaW5lIFBDRjIxMjdfT1NGICAgICAgICAgICAgIEJJVCg3KSAgLyogT3NjaWxsYXRvciBGYWlsIGZsYWcgKi8KKy8qIFdhdGNoZG9nIHRpbWVyIHZhbHVlIGNvbnN0YW50cyAqLworI2RlZmluZSBQQ0YyMTI3X1dEX1ZBTF9TVE9QCQkwCisjZGVmaW5lIFBDRjIxMjdfV0RfVkFMX01JTgkJMgorI2RlZmluZSBQQ0YyMTI3X1dEX1ZBTF9NQVgJCTI1NQorI2RlZmluZSBQQ0YyMTI3X1dEX1ZBTF9ERUZBVUxUCQk2MAogCiBzdHJ1Y3QgcGNmMjEyNyB7CiAJc3RydWN0IHJ0Y19kZXZpY2UgKnJ0YzsKKwlzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlIHdkZDsKIAlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7CiB9OwogCkBAIC01NCwzMCArOTQsMjUgQEAgc3RhdGljIGludCBwY2YyMTI3X3J0Y19yZWFkX3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQogCXN0cnVjdCBwY2YyMTI3ICpwY2YyMTI3ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJdW5zaWduZWQgY2hhciBidWZbMTBdOwogCWludCByZXQ7Ci0JaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDw9IFBDRjIxMjdfUkVHX0NUUkwzOyBpKyspIHsKLQkJcmV0ID0gcmVnbWFwX3JlYWQocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19DVFJMMSArIGksCi0JCQkJICAodW5zaWduZWQgaW50ICopKGJ1ZiArIGkpKTsKLQkJaWYgKHJldCkgewotCQkJZGV2X2VycihkZXYsICIlczogcmVhZCBlcnJvclxuIiwgX19mdW5jX18pOwotCQkJcmV0dXJuIHJldDsKLQkJfQotCX0KLQotCXJldCA9IHJlZ21hcF9idWxrX3JlYWQocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19TQywKLQkJCSAgICAgICAoYnVmICsgUENGMjEyN19SRUdfU0MpLAotCQkJICAgICAgIEFSUkFZX1NJWkUoYnVmKSAtIFBDRjIxMjdfUkVHX1NDKTsKKwkvKgorCSAqIEF2b2lkIHJlYWRpbmcgQ1RSTDIgcmVnaXN0ZXIgYXMgaXQgY2F1c2VzIFdEX1ZBTCByZWdpc3RlcgorCSAqIHZhbHVlIHRvIHJlc2V0IHRvIDAgd2hpY2ggbWVhbnMgd2F0Y2hkb2cgaXMgc3RvcHBlZC4KKwkgKi8KKwlyZXQgPSByZWdtYXBfYnVsa19yZWFkKHBjZjIxMjctPnJlZ21hcCwgUENGMjEyN19SRUdfQ1RSTDMsCisJCQkgICAgICAgKGJ1ZiArIFBDRjIxMjdfUkVHX0NUUkwzKSwKKwkJCSAgICAgICBBUlJBWV9TSVpFKGJ1ZikgLSBQQ0YyMTI3X1JFR19DVFJMMyk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldiwgIiVzOiByZWFkIGVycm9yXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiByZXQ7CiAJfQogCi0JaWYgKGJ1ZltQQ0YyMTI3X1JFR19DVFJMM10gJiBQQ0YyMTI3X1JFR19DVFJMM19CTEYpCisJaWYgKGJ1ZltQQ0YyMTI3X1JFR19DVFJMM10gJiBQQ0YyMTI3X0JJVF9DVFJMM19CTEYpCiAJCWRldl9pbmZvKGRldiwKIAkJCSJsb3cgdm9sdGFnZSBkZXRlY3RlZCwgY2hlY2svcmVwbGFjZSBSVEMgYmF0dGVyeS5cbiIpOwogCi0JaWYgKGJ1ZltQQ0YyMTI3X1JFR19TQ10gJiBQQ0YyMTI3X09TRikgeworCS8qIENsb2NrIGludGVncml0eSBpcyBub3QgZ3VhcmFudGVlZCB3aGVuIE9TRiBmbGFnIGlzIHNldC4gKi8KKwlpZiAoYnVmW1BDRjIxMjdfUkVHX1NDXSAmIFBDRjIxMjdfQklUX1NDX09TRikgewogCQkvKgogCQkgKiBubyBuZWVkIGNsZWFyIHRoZSBmbGFnIGhlcmUsCiAJCSAqIGl0IHdpbGwgYmUgY2xlYXJlZCBvbmNlIHRoZSBuZXcgZGF0ZSBpcyBzYXZlZApAQCAtODgsMTQgKzEyMywxMiBAQCBzdGF0aWMgaW50IHBjZjIxMjdfcnRjX3JlYWRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCiAJfQogCiAJZGV2X2RiZyhkZXYsCi0JCSIlczogcmF3IGRhdGEgaXMgY3IxPSUwMngsIGNyMj0lMDJ4LCBjcjM9JTAyeCwgIgotCQkic2VjPSUwMngsIG1pbj0lMDJ4LCBocj0lMDJ4LCAiCisJCSIlczogcmF3IGRhdGEgaXMgY3IzPSUwMngsIHNlYz0lMDJ4LCBtaW49JTAyeCwgaHI9JTAyeCwgIgogCQkibWRheT0lMDJ4LCB3ZGF5PSUwMngsIG1vbj0lMDJ4LCB5ZWFyPSUwMnhcbiIsCi0JCV9fZnVuY19fLAotCQlidWZbMF0sIGJ1ZlsxXSwgYnVmWzJdLAotCQlidWZbM10sIGJ1Zls0XSwgYnVmWzVdLAotCQlidWZbNl0sIGJ1Zls3XSwgYnVmWzhdLCBidWZbOV0pOwotCisJCV9fZnVuY19fLCBidWZbUENGMjEyN19SRUdfQ1RSTDNdLCBidWZbUENGMjEyN19SRUdfU0NdLAorCQlidWZbUENGMjEyN19SRUdfTU5dLCBidWZbUENGMjEyN19SRUdfSFJdLAorCQlidWZbUENGMjEyN19SRUdfRE1dLCBidWZbUENGMjEyN19SRUdfRFddLAorCQlidWZbUENGMjEyN19SRUdfTU9dLCBidWZbUENGMjEyN19SRUdfWVJdKTsKIAogCXRtLT50bV9zZWMgPSBiY2QyYmluKGJ1ZltQQ0YyMTI3X1JFR19TQ10gJiAweDdGKTsKIAl0bS0+dG1fbWluID0gYmNkMmJpbihidWZbUENGMjEyN19SRUdfTU5dICYgMHg3Rik7CkBAIC0xNjYsNyArMTk5LDcgQEAgc3RhdGljIGludCBwY2YyMTI3X3J0Y19pb2N0bChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCi0JCXRvdXNlciA9IHRvdXNlciAmIFBDRjIxMjdfUkVHX0NUUkwzX0JMRiA/IDEgOiAwOworCQl0b3VzZXIgPSB0b3VzZXIgJiBQQ0YyMTI3X0JJVF9DVFJMM19CTEYgPyAxIDogMDsKIAogCQlpZiAoY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKWFyZywgJnRvdXNlciwgc2l6ZW9mKGludCkpKQogCQkJcmV0dXJuIC1FRkFVTFQ7CkBAIC0xOTIsMTIgKzIyNSwxMiBAQCBzdGF0aWMgaW50IHBjZjIxMjdfbnZtZW1fcmVhZCh2b2lkICpwcml2LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogCWludCByZXQ7CiAJdW5zaWduZWQgY2hhciBvZmZzZXRidWZbXSA9IHsgb2Zmc2V0ID4+IDgsIG9mZnNldCB9OwogCi0JcmV0ID0gcmVnbWFwX2J1bGtfd3JpdGUocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19SQU1fYWRkcl9NU0IsCisJcmV0ID0gcmVnbWFwX2J1bGtfd3JpdGUocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19SQU1fQUREUl9NU0IsCiAJCQkJb2Zmc2V0YnVmLCAyKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JcmV0ID0gcmVnbWFwX2J1bGtfcmVhZChwY2YyMTI3LT5yZWdtYXAsIFBDRjIxMjdfUkVHX1JBTV9yZF9jbWQsCisJcmV0ID0gcmVnbWFwX2J1bGtfcmVhZChwY2YyMTI3LT5yZWdtYXAsIFBDRjIxMjdfUkVHX1JBTV9SRF9DTUQsCiAJCQkgICAgICAgdmFsLCBieXRlcyk7CiAKIAlyZXR1cm4gcmV0ID86IGJ5dGVzOwpAQCAtMjEwLDE3ICsyNDMsMTc2IEBAIHN0YXRpYyBpbnQgcGNmMjEyN19udm1lbV93cml0ZSh2b2lkICpwcml2LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogCWludCByZXQ7CiAJdW5zaWduZWQgY2hhciBvZmZzZXRidWZbXSA9IHsgb2Zmc2V0ID4+IDgsIG9mZnNldCB9OwogCi0JcmV0ID0gcmVnbWFwX2J1bGtfd3JpdGUocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19SQU1fYWRkcl9NU0IsCisJcmV0ID0gcmVnbWFwX2J1bGtfd3JpdGUocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19SQU1fQUREUl9NU0IsCiAJCQkJb2Zmc2V0YnVmLCAyKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JcmV0ID0gcmVnbWFwX2J1bGtfd3JpdGUocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19SQU1fd3J0X2NtZCwKKwlyZXQgPSByZWdtYXBfYnVsa193cml0ZShwY2YyMTI3LT5yZWdtYXAsIFBDRjIxMjdfUkVHX1JBTV9XUlRfQ01ELAogCQkJCXZhbCwgYnl0ZXMpOwogCiAJcmV0dXJuIHJldCA/OiBieXRlczsKIH0KIAorLyogd2F0Y2hkb2cgZHJpdmVyICovCisKK3N0YXRpYyBpbnQgcGNmMjEyN193ZHRfcGluZyhzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQpCit7CisJc3RydWN0IHBjZjIxMjcgKnBjZjIxMjcgPSB3YXRjaGRvZ19nZXRfZHJ2ZGF0YSh3ZGQpOworCisJcmV0dXJuIHJlZ21hcF93cml0ZShwY2YyMTI3LT5yZWdtYXAsIFBDRjIxMjdfUkVHX1dEX1ZBTCwgd2RkLT50aW1lb3V0KTsKK30KKworLyoKKyAqIFJlc3RhcnQgd2F0Y2hkb2cgdGltZXIgaWYgZmVhdHVyZSBpcyBhY3RpdmUuCisgKgorICogTm90ZTogUmVhZGluZyBDVFJMMiByZWdpc3RlciBjYXVzZXMgd2F0Y2hkb2cgdG8gc3RvcCB3aGljaCBpcyB1bmZvcnR1bmF0ZSwKKyAqIHNpbmNlIHJlZ2lzdGVyIGFsc28gY29udGFpbiBjb250cm9sL3N0YXR1cyBmbGFncyBmb3Igb3RoZXIgZmVhdHVyZXMuCisgKiBBbHdheXMgY2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyIHJlYWRpbmcgQ1RSTDIgcmVnaXN0ZXIuCisgKi8KK3N0YXRpYyBpbnQgcGNmMjEyN193ZHRfYWN0aXZlX3Bpbmcoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkKQoreworCWludCByZXQgPSAwOworCisJaWYgKHdhdGNoZG9nX2FjdGl2ZSh3ZGQpKSB7CisJCXJldCA9IHBjZjIxMjdfd2R0X3Bpbmcod2RkKTsKKwkJaWYgKHJldCkKKwkJCWRldl9lcnIod2RkLT5wYXJlbnQsCisJCQkJIiVzOiB3YXRjaGRvZyByZXN0YXJ0IGZhaWxlZCwgcmV0PSVkXG4iLAorCQkJCV9fZnVuY19fLCByZXQpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcGNmMjEyN193ZHRfc3RhcnQoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkKQoreworCXJldHVybiBwY2YyMTI3X3dkdF9waW5nKHdkZCk7Cit9CisKK3N0YXRpYyBpbnQgcGNmMjEyN193ZHRfc3RvcChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQpCit7CisJc3RydWN0IHBjZjIxMjcgKnBjZjIxMjcgPSB3YXRjaGRvZ19nZXRfZHJ2ZGF0YSh3ZGQpOworCisJcmV0dXJuIHJlZ21hcF93cml0ZShwY2YyMTI3LT5yZWdtYXAsIFBDRjIxMjdfUkVHX1dEX1ZBTCwKKwkJCSAgICBQQ0YyMTI3X1dEX1ZBTF9TVE9QKTsKK30KKworc3RhdGljIGludCBwY2YyMTI3X3dkdF9zZXRfdGltZW91dChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQsCisJCQkJICAgdW5zaWduZWQgaW50IG5ld190aW1lb3V0KQoreworCWRldl9kYmcod2RkLT5wYXJlbnQsICJuZXcgd2F0Y2hkb2cgdGltZW91dDogJWlzIChvbGQ6ICVpcylcbiIsCisJCW5ld190aW1lb3V0LCB3ZGQtPnRpbWVvdXQpOworCisJd2RkLT50aW1lb3V0ID0gbmV3X3RpbWVvdXQ7CisKKwlyZXR1cm4gcGNmMjEyN193ZHRfYWN0aXZlX3Bpbmcod2RkKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB3YXRjaGRvZ19pbmZvIHBjZjIxMjdfd2R0X2luZm8gPSB7CisJLmlkZW50aXR5ID0gIk5YUCBQQ0YyMTI3L1BDRjIxMjkgV2F0Y2hkb2ciLAorCS5vcHRpb25zID0gV0RJT0ZfS0VFUEFMSVZFUElORyB8IFdESU9GX1NFVFRJTUVPVVQsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHdhdGNoZG9nX29wcyBwY2YyMTI3X3dhdGNoZG9nX29wcyA9IHsKKwkub3duZXIgPSBUSElTX01PRFVMRSwKKwkuc3RhcnQgPSBwY2YyMTI3X3dkdF9zdGFydCwKKwkuc3RvcCA9IHBjZjIxMjdfd2R0X3N0b3AsCisJLnBpbmcgPSBwY2YyMTI3X3dkdF9waW5nLAorCS5zZXRfdGltZW91dCA9IHBjZjIxMjdfd2R0X3NldF90aW1lb3V0LAorfTsKKworLyogc3lzZnMgaW50ZXJmYWNlICovCisKK3N0YXRpYyBzc2l6ZV90IHRpbWVzdGFtcDBfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBwY2YyMTI3ICpwY2YyMTI3ID0gZGV2X2dldF9kcnZkYXRhKGRldi0+cGFyZW50KTsKKwlpbnQgcmV0OworCisJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHBjZjIxMjctPnJlZ21hcCwgUENGMjEyN19SRUdfQ1RSTDEsCisJCQkJIFBDRjIxMjdfQklUX0NUUkwxX1RTRjEsIDApOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICIlczogdXBkYXRlIGN0cmwxIHJldD0lZFxuIiwgX19mdW5jX18sIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHBjZjIxMjctPnJlZ21hcCwgUENGMjEyN19SRUdfQ1RSTDIsCisJCQkJIFBDRjIxMjdfQklUX0NUUkwyX1RTRjIsIDApOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICIlczogdXBkYXRlIGN0cmwyIHJldD0lZFxuIiwgX19mdW5jX18sIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gcGNmMjEyN193ZHRfYWN0aXZlX3BpbmcoJnBjZjIxMjctPndkZCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiBjb3VudDsKK307CisKK3N0YXRpYyBzc2l6ZV90IHRpbWVzdGFtcDBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkgICAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgcGNmMjEyNyAqcGNmMjEyNyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYtPnBhcmVudCk7CisJc3RydWN0IHJ0Y190aW1lIHRtOworCWludCByZXQ7CisJdW5zaWduZWQgY2hhciBkYXRhWzI1XTsKKworCXJldCA9IHJlZ21hcF9idWxrX3JlYWQocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19DVFJMMSwgZGF0YSwKKwkJCSAgICAgICBzaXplb2YoZGF0YSkpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICIlczogcmVhZCBlcnJvciByZXQ9JWRcbiIsIF9fZnVuY19fLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCWRldl9kYmcoZGV2LAorCQkiJXM6IHJhdyBkYXRhIGlzIGNyMT0lMDJ4LCBjcjI9JTAyeCwgY3IzPSUwMngsIHRzX3NjPSUwMngsICIKKwkJInRzX21uPSUwMngsIHRzX2hyPSUwMngsIHRzX2RtPSUwMngsIHRzX21vPSUwMngsIHRzX3lyPSUwMnhcbiIsCisJCV9fZnVuY19fLCBkYXRhW1BDRjIxMjdfUkVHX0NUUkwxXSwgZGF0YVtQQ0YyMTI3X1JFR19DVFJMMl0sCisJCWRhdGFbUENGMjEyN19SRUdfQ1RSTDNdLCBkYXRhW1BDRjIxMjdfUkVHX1RTX1NDXSwKKwkJZGF0YVtQQ0YyMTI3X1JFR19UU19NTl0sIGRhdGFbUENGMjEyN19SRUdfVFNfSFJdLAorCQlkYXRhW1BDRjIxMjdfUkVHX1RTX0RNXSwgZGF0YVtQQ0YyMTI3X1JFR19UU19NT10sCisJCWRhdGFbUENGMjEyN19SRUdfVFNfWVJdKTsKKworCXJldCA9IHBjZjIxMjdfd2R0X2FjdGl2ZV9waW5nKCZwY2YyMTI3LT53ZGQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpZiAoIShkYXRhW1BDRjIxMjdfUkVHX0NUUkwxXSAmIFBDRjIxMjdfQklUX0NUUkwxX1RTRjEpICYmCisJICAgICEoZGF0YVtQQ0YyMTI3X1JFR19DVFJMMl0gJiBQQ0YyMTI3X0JJVF9DVFJMMl9UU0YyKSkKKwkJcmV0dXJuIDA7CisKKwl0bS50bV9zZWMgPSBiY2QyYmluKGRhdGFbUENGMjEyN19SRUdfVFNfU0NdICYgMHg3Rik7CisJdG0udG1fbWluID0gYmNkMmJpbihkYXRhW1BDRjIxMjdfUkVHX1RTX01OXSAmIDB4N0YpOworCXRtLnRtX2hvdXIgPSBiY2QyYmluKGRhdGFbUENGMjEyN19SRUdfVFNfSFJdICYgMHgzRik7CisJdG0udG1fbWRheSA9IGJjZDJiaW4oZGF0YVtQQ0YyMTI3X1JFR19UU19ETV0gJiAweDNGKTsKKwkvKiBUU19NTyByZWdpc3RlciAobW9udGgpIHZhbHVlIHJhbmdlOiAxLTEyICovCisJdG0udG1fbW9uID0gYmNkMmJpbihkYXRhW1BDRjIxMjdfUkVHX1RTX01PXSAmIDB4MUYpIC0gMTsKKwl0bS50bV95ZWFyID0gYmNkMmJpbihkYXRhW1BDRjIxMjdfUkVHX1RTX1lSXSk7CisJaWYgKHRtLnRtX3llYXIgPCA3MCkKKwkJdG0udG1feWVhciArPSAxMDA7IC8qIGFzc3VtZSB3ZSBhcmUgaW4gMTk3MC4uLjIwNjkgKi8KKworCXJldCA9IHJ0Y192YWxpZF90bSgmdG0pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlbGx1XG4iLAorCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylydGNfdG1fdG9fdGltZTY0KCZ0bSkpOworfTsKKworc3RhdGljIERFVklDRV9BVFRSX1JXKHRpbWVzdGFtcDApOworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcGNmMjEyN19hdHRyc1tdID0geworCSZkZXZfYXR0cl90aW1lc3RhbXAwLmF0dHIsCisJTlVMTAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcGNmMjEyN19hdHRyX2dyb3VwID0geworCS5hdHRycwk9IHBjZjIxMjdfYXR0cnMsCit9OworCiBzdGF0aWMgaW50IHBjZjIxMjdfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAsCiAJCQljb25zdCBjaGFyICpuYW1lLCBib29sIGhhc19udm1lbSkKIHsKQEAgLTIzNywxMSArNDI5LDIyIEBAIHN0YXRpYyBpbnQgcGNmMjEyN19wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKIAogCWRldl9zZXRfZHJ2ZGF0YShkZXYsIHBjZjIxMjcpOwogCi0JcGNmMjEyNy0+cnRjID0gZGV2bV9ydGNfZGV2aWNlX3JlZ2lzdGVyKGRldiwgbmFtZSwgJnBjZjIxMjdfcnRjX29wcywKLQkJCQkJCVRISVNfTU9EVUxFKTsKKwlwY2YyMTI3LT5ydGMgPSBkZXZtX3J0Y19hbGxvY2F0ZV9kZXZpY2UoZGV2KTsKIAlpZiAoSVNfRVJSKHBjZjIxMjctPnJ0YykpCiAJCXJldHVybiBQVFJfRVJSKHBjZjIxMjctPnJ0Yyk7CiAKKwlwY2YyMTI3LT5ydGMtPm9wcyA9ICZwY2YyMTI3X3J0Y19vcHM7CisKKwlwY2YyMTI3LT53ZGQucGFyZW50ID0gZGV2OworCXBjZjIxMjctPndkZC5pbmZvID0gJnBjZjIxMjdfd2R0X2luZm87CisJcGNmMjEyNy0+d2RkLm9wcyA9ICZwY2YyMTI3X3dhdGNoZG9nX29wczsKKwlwY2YyMTI3LT53ZGQubWluX3RpbWVvdXQgPSBQQ0YyMTI3X1dEX1ZBTF9NSU47CisJcGNmMjEyNy0+d2RkLm1heF90aW1lb3V0ID0gUENGMjEyN19XRF9WQUxfTUFYOworCXBjZjIxMjctPndkZC50aW1lb3V0ID0gUENGMjEyN19XRF9WQUxfREVGQVVMVDsKKwlwY2YyMTI3LT53ZGQubWluX2h3X2hlYXJ0YmVhdF9tcyA9IDUwMDsKKworCXdhdGNoZG9nX3NldF9kcnZkYXRhKCZwY2YyMTI3LT53ZGQsIHBjZjIxMjcpOworCiAJaWYgKGhhc19udm1lbSkgewogCQlzdHJ1Y3QgbnZtZW1fY29uZmlnIG52bWVtX2NmZyA9IHsKIAkJCS5wcml2ID0gcGNmMjEyNywKQEAgLTI1Myw3ICs0NTYsODQgQEAgc3RhdGljIGludCBwY2YyMTI3X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlZ21hcCAqcmVnbWFwLAogCQlyZXQgPSBydGNfbnZtZW1fcmVnaXN0ZXIocGNmMjEyNy0+cnRjLCAmbnZtZW1fY2ZnKTsKIAl9CiAKLQlyZXR1cm4gcmV0OworCS8qCisJICogV2F0Y2hkb2cgdGltZXIgZW5hYmxlZCBhbmQgcmVzZXQgcGluIC9SU1QgYWN0aXZhdGVkIHdoZW4gdGltZWQgb3V0LgorCSAqIFNlbGVjdCAxSHogY2xvY2sgc291cmNlIGZvciB3YXRjaGRvZyB0aW1lci4KKwkgKiBUaW1lciBpcyBub3Qgc3RhcnRlZCB1bnRpbCBXRF9WQUwgaXMgbG9hZGVkIHdpdGggYSB2YWxpZCB2YWx1ZS4KKwkgKiBOb3RlOiBDb3VudGRvd24gdGltZXIgZGlzYWJsZWQgYW5kIG5vdCBhdmFpbGFibGUuCisJICovCisJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHBjZjIxMjctPnJlZ21hcCwgUENGMjEyN19SRUdfV0RfQ1RMLAorCQkJCSBQQ0YyMTI3X0JJVF9XRF9DVExfQ0QxIHwKKwkJCQkgUENGMjEyN19CSVRfV0RfQ1RMX0NEMCB8CisJCQkJIFBDRjIxMjdfQklUX1dEX0NUTF9URjEgfAorCQkJCSBQQ0YyMTI3X0JJVF9XRF9DVExfVEYwLAorCQkJCSBQQ0YyMTI3X0JJVF9XRF9DVExfQ0QxIHwKKwkJCQkgUENGMjEyN19CSVRfV0RfQ1RMX0NEMCB8CisJCQkJIFBDRjIxMjdfQklUX1dEX0NUTF9URjEpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICIlczogd2F0Y2hkb2cgY29uZmlnICh3ZF9jdGwpIGZhaWxlZFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gcmV0OworCX0KKworI2lmZGVmIENPTkZJR19XQVRDSERPRworCXJldCA9IGRldm1fd2F0Y2hkb2dfcmVnaXN0ZXJfZGV2aWNlKGRldiwgJnBjZjIxMjctPndkZCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKyNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KKworCS8qCisJICogRGlzYWJsZSBiYXR0ZXJ5IGxvdy9zd2l0Y2gtb3ZlciB0aW1lc3RhbXAgYW5kIGludGVycnVwdHMuCisJICogQ2xlYXIgYmF0dGVyeSBpbnRlcnJ1cHQgZmxhZ3Mgd2hpY2ggY2FuIGJsb2NrIG5ldyB0cmlnZ2VyIGV2ZW50cy4KKwkgKiBOb3RlOiBUaGlzIGlzIHRoZSBkZWZhdWx0IGNoaXAgYmVoYXZpb3VyIGJ1dCBhZGRlZCB0byBlbnN1cmUKKwkgKiBjb3JyZWN0IHRhbXBlciB0aW1lc3RhbXAgYW5kIGludGVycnVwdCBmdW5jdGlvbi4KKwkgKi8KKwlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19DVFJMMywKKwkJCQkgUENGMjEyN19CSVRfQ1RSTDNfQlRTRSB8CisJCQkJIFBDRjIxMjdfQklUX0NUUkwzX0JGIHwKKwkJCQkgUENGMjEyN19CSVRfQ1RSTDNfQklFIHwKKwkJCQkgUENGMjEyN19CSVRfQ1RSTDNfQkxJRSwgMCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGRldiwgIiVzOiBpbnRlcnJ1cHQgY29uZmlnIChjdHJsMykgZmFpbGVkXG4iLAorCQkJX19mdW5jX18pOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qCisJICogRW5hYmxlIHRpbWVzdGFtcCBmdW5jdGlvbiBhbmQgc3RvcmUgdGltZXN0YW1wIG9mIGZpcnN0IHRyaWdnZXIKKwkgKiBldmVudCB1bnRpbCBUU0YxIGFuZCBURlMyIGludGVycnVwdCBmbGFncyBhcmUgY2xlYXJlZC4KKwkgKi8KKwlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocGNmMjEyNy0+cmVnbWFwLCBQQ0YyMTI3X1JFR19UU19DVFJMLAorCQkJCSBQQ0YyMTI3X0JJVF9UU19DVFJMX1RTT0ZGIHwKKwkJCQkgUENGMjEyN19CSVRfVFNfQ1RSTF9UU00sCisJCQkJIFBDRjIxMjdfQklUX1RTX0NUUkxfVFNNKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiJXM6IHRhbXBlciBkZXRlY3Rpb24gY29uZmlnICh0c19jdHJsKSBmYWlsZWRcbiIsCisJCQlfX2Z1bmNfXyk7CisJCXJldHVybiByZXQ7CisJfQorCisJLyoKKwkgKiBFbmFibGUgaW50ZXJydXB0IGdlbmVyYXRpb24gd2hlbiBUU0YxIG9yIFRTRjIgdGltZXN0YW1wIGZsYWdzCisJICogYXJlIHNldC4gSW50ZXJydXB0IHNpZ25hbCBpcyBhbiBvcGVuLWRyYWluIG91dHB1dCBhbmQgY2FuIGJlCisJICogbGVmdCBmbG9hdGluZyBpZiB1bnVzZWQuCisJICovCisJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHBjZjIxMjctPnJlZ21hcCwgUENGMjEyN19SRUdfQ1RSTDIsCisJCQkJIFBDRjIxMjdfQklUX0NUUkwyX1RTSUUsCisJCQkJIFBDRjIxMjdfQklUX0NUUkwyX1RTSUUpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICIlczogdGFtcGVyIGRldGVjdGlvbiBjb25maWcgKGN0cmwyKSBmYWlsZWRcbiIsCisJCQlfX2Z1bmNfXyk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gcnRjX2FkZF9ncm91cChwY2YyMTI3LT5ydGMsICZwY2YyMTI3X2F0dHJfZ3JvdXApOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICIlczogdGFtcGVyIHN5c2ZzIHJlZ2lzdGVyaW5nIGZhaWxlZFxuIiwKKwkJCV9fZnVuY19fKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gcnRjX3JlZ2lzdGVyX2RldmljZShwY2YyMTI3LT5ydGMpOwogfQogCiAjaWZkZWYgQ09ORklHX09GCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGNmODUzNjMuYyBiL2RyaXZlcnMvcnRjL3J0Yy1wY2Y4NTM2My5jCmluZGV4IGEwNzVlNzcuLjM0NTBkNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1wY2Y4NTM2My5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1wY2Y4NTM2My5jCkBAIC0xNjYsNyArMTY2LDEyIEBAIHN0YXRpYyBpbnQgcGNmODUzNjNfcnRjX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKIAlidWZbRFRfWUVBUlNdID0gYmluMmJjZCh0bS0+dG1feWVhciAlIDEwMCk7CiAKIAlyZXQgPSByZWdtYXBfYnVsa193cml0ZShwY2Y4NTM2My0+cmVnbWFwLCBDVFJMX1NUT1BfRU4sCi0JCQkJdG1wLCBzaXplb2YodG1wKSk7CisJCQkJdG1wLCAyKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gcmVnbWFwX2J1bGtfd3JpdGUocGNmODUzNjMtPnJlZ21hcCwgRFRfMTAwVEhTLAorCQkJCWJ1Ziwgc2l6ZW9mKHRtcCkgLSAyKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGNmODU2My5jIGIvZHJpdmVycy9ydGMvcnRjLXBjZjg1NjMuYwppbmRleCBhYzE1OWQyLi4yNGJhYTQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtcGNmODU2My5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1wY2Y4NTYzLmMKQEAgLTE5Niw4ICsxOTYsOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcGNmODU2M19pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogICogSW4gdGhlIHJvdXRpbmVzIHRoYXQgZGVhbCBkaXJlY3RseSB3aXRoIHRoZSBwY2Y4NTYzIGhhcmR3YXJlLCB3ZSB1c2UKICAqIHJ0Y190aW1lIC0tIG1vbnRoIDAtMTEsIGhvdXIgMC0yMywgeXIgPSBjYWxlbmRhciB5ZWFyLWVwb2NoLgogICovCi1zdGF0aWMgaW50IHBjZjg1NjNfZ2V0X2RhdGV0aW1lKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHN0cnVjdCBydGNfdGltZSAqdG0pCitzdGF0aWMgaW50IHBjZjg1NjNfcnRjX3JlYWRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCiB7CisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKIAlzdHJ1Y3QgcGNmODU2MyAqcGNmODU2MyA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOwogCXVuc2lnbmVkIGNoYXIgYnVmWzldOwogCWludCBlcnI7CkBAIC0yMjgsOSArMjI5LDcgQEAgc3RhdGljIGludCBwY2Y4NTYzX2dldF9kYXRldGltZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQogCXRtLT50bV9tZGF5ID0gYmNkMmJpbihidWZbUENGODU2M19SRUdfRE1dICYgMHgzRik7CiAJdG0tPnRtX3dkYXkgPSBidWZbUENGODU2M19SRUdfRFddICYgMHgwNzsKIAl0bS0+dG1fbW9uID0gYmNkMmJpbihidWZbUENGODU2M19SRUdfTU9dICYgMHgxRikgLSAxOyAvKiBydGMgbW4gMS0xMiAqLwotCXRtLT50bV95ZWFyID0gYmNkMmJpbihidWZbUENGODU2M19SRUdfWVJdKTsKLQlpZiAodG0tPnRtX3llYXIgPCA3MCkKLQkJdG0tPnRtX3llYXIgKz0gMTAwOwkvKiBhc3N1bWUgd2UgYXJlIGluIDE5NzAuLi4yMDY5ICovCisJdG0tPnRtX3llYXIgPSBiY2QyYmluKGJ1ZltQQ0Y4NTYzX1JFR19ZUl0pICsgMTAwOwogCS8qIGRldGVjdCB0aGUgcG9sYXJpdHkgaGV1cmlzdGljYWxseS4gc2VlIG5vdGUgYWJvdmUuICovCiAJcGNmODU2My0+Y19wb2xhcml0eSA9IChidWZbUENGODU2M19SRUdfTU9dICYgUENGODU2M19NT19DKSA/CiAJCSh0bS0+dG1feWVhciA+PSAxMDApIDogKHRtLT50bV95ZWFyIDwgMTAwKTsKQEAgLTI0NCw4ICsyNDMsOSBAQCBzdGF0aWMgaW50IHBjZjg1NjNfZ2V0X2RhdGV0aW1lKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHN0cnVjdCBydGNfdGltZSAqdG0pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcGNmODU2M19zZXRfZGF0ZXRpbWUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgc3RydWN0IHJ0Y190aW1lICp0bSkKK3N0YXRpYyBpbnQgcGNmODU2M19ydGNfc2V0X3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQogeworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KGRldik7CiAJc3RydWN0IHBjZjg1NjMgKnBjZjg1NjMgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKIAl1bnNpZ25lZCBjaGFyIGJ1Zls5XTsKIApAQCAtMjY2LDcgKzI2Niw3IEBAIHN0YXRpYyBpbnQgcGNmODU2M19zZXRfZGF0ZXRpbWUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgc3RydWN0IHJ0Y190aW1lICp0bSkKIAlidWZbUENGODU2M19SRUdfTU9dID0gYmluMmJjZCh0bS0+dG1fbW9uICsgMSk7CiAKIAkvKiB5ZWFyIGFuZCBjZW50dXJ5ICovCi0JYnVmW1BDRjg1NjNfUkVHX1lSXSA9IGJpbjJiY2QodG0tPnRtX3llYXIgJSAxMDApOworCWJ1ZltQQ0Y4NTYzX1JFR19ZUl0gPSBiaW4yYmNkKHRtLT50bV95ZWFyIC0gMTAwKTsKIAlpZiAocGNmODU2My0+Y19wb2xhcml0eSA/ICh0bS0+dG1feWVhciA+PSAxMDApIDogKHRtLT50bV95ZWFyIDwgMTAwKSkKIAkJYnVmW1BDRjg1NjNfUkVHX01PXSB8PSBQQ0Y4NTYzX01PX0M7CiAKQEAgLTI5OSw4ICsyOTksOCBAQCBzdGF0aWMgaW50IHBjZjg1NjNfcnRjX2lvY3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZwogCQkgKiBiZWNhdXNlIG9mIHRoZSBjYWNoZWQgdm9sdGFnZV9sb3cgdmFsdWUgYnV0IGRvIGl0CiAJCSAqIGFueXdheSBmb3IgY29uc2lzdGVuY3kuCiAJCSAqLwotCQlpZiAocGNmODU2M19nZXRfZGF0ZXRpbWUodG9faTJjX2NsaWVudChkZXYpLCAmdG0pKQotCQkJcGNmODU2M19zZXRfZGF0ZXRpbWUodG9faTJjX2NsaWVudChkZXYpLCAmdG0pOworCQlpZiAocGNmODU2M19ydGNfcmVhZF90aW1lKGRldiwgJnRtKSkKKwkJCXBjZjg1NjNfcnRjX3NldF90aW1lKGRldiwgJnRtKTsKIAogCQkvKiBDbGVhciB0aGUgY2FjaGVkIHZhbHVlLiAqLwogCQlwY2Y4NTYzLT52b2x0YWdlX2xvdyA9IDA7CkBAIC0zMTQsMTYgKzMxNCw2IEBAIHN0YXRpYyBpbnQgcGNmODU2M19ydGNfaW9jdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nCiAjZGVmaW5lIHBjZjg1NjNfcnRjX2lvY3RsIE5VTEwKICNlbmRpZgogCi1zdGF0aWMgaW50IHBjZjg1NjNfcnRjX3JlYWRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCi17Ci0JcmV0dXJuIHBjZjg1NjNfZ2V0X2RhdGV0aW1lKHRvX2kyY19jbGllbnQoZGV2KSwgdG0pOwotfQotCi1zdGF0aWMgaW50IHBjZjg1NjNfcnRjX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKLXsKLQlyZXR1cm4gcGNmODU2M19zZXRfZGF0ZXRpbWUodG9faTJjX2NsaWVudChkZXYpLCB0bSk7Ci19Ci0KIHN0YXRpYyBpbnQgcGNmODU2M19ydGNfcmVhZF9hbGFybShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfd2thbHJtICp0bSkKIHsKIAlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gdG9faTJjX2NsaWVudChkZXYpOwpAQCAtNTkxLDEzICs1ODEsMTcgQEAgc3RhdGljIGludCBwY2Y4NTYzX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJCXJldHVybiBlcnI7CiAJfQogCi0JcGNmODU2My0+cnRjID0gZGV2bV9ydGNfZGV2aWNlX3JlZ2lzdGVyKCZjbGllbnQtPmRldiwKLQkJCQlwY2Y4NTYzX2RyaXZlci5kcml2ZXIubmFtZSwKLQkJCQkmcGNmODU2M19ydGNfb3BzLCBUSElTX01PRFVMRSk7Ci0KKwlwY2Y4NTYzLT5ydGMgPSBkZXZtX3J0Y19hbGxvY2F0ZV9kZXZpY2UoJmNsaWVudC0+ZGV2KTsKIAlpZiAoSVNfRVJSKHBjZjg1NjMtPnJ0YykpCiAJCXJldHVybiBQVFJfRVJSKHBjZjg1NjMtPnJ0Yyk7CiAKKwlwY2Y4NTYzLT5ydGMtPm9wcyA9ICZwY2Y4NTYzX3J0Y19vcHM7CisJLyogdGhlIHBjZjg1NjMgYWxhcm0gb25seSBzdXBwb3J0cyBhIG1pbnV0ZSBhY2N1cmFjeSAqLworCXBjZjg1NjMtPnJ0Yy0+dWllX3Vuc3VwcG9ydGVkID0gMTsKKwlwY2Y4NTYzLT5ydGMtPnJhbmdlX21pbiA9IFJUQ19USU1FU1RBTVBfQkVHSU5fMjAwMDsKKwlwY2Y4NTYzLT5ydGMtPnJhbmdlX21heCA9IFJUQ19USU1FU1RBTVBfRU5EXzIwOTk7CisJcGNmODU2My0+cnRjLT5zZXRfc3RhcnRfdGltZSA9IHRydWU7CisKIAlpZiAoY2xpZW50LT5pcnEgPiAwKSB7CiAJCWVyciA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoJmNsaWVudC0+ZGV2LCBjbGllbnQtPmlycSwKIAkJCQlOVUxMLCBwY2Y4NTYzX2lycSwKQEAgLTYwOCwxNyArNjAyLDE3IEBAIHN0YXRpYyBpbnQgcGNmODU2M19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCQkJCQkJCQljbGllbnQtPmlycSk7CiAJCQlyZXR1cm4gZXJyOwogCQl9Ci0KIAl9CiAKKwllcnIgPSBydGNfcmVnaXN0ZXJfZGV2aWNlKHBjZjg1NjMtPnJ0Yyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKwogI2lmZGVmIENPTkZJR19DT01NT05fQ0xLCiAJLyogcmVnaXN0ZXIgY2xrIGluIGNvbW1vbiBjbGsgZnJhbWV3b3JrICovCiAJcGNmODU2M19jbGtvdXRfcmVnaXN0ZXJfY2xrKHBjZjg1NjMpOwogI2VuZGlmCiAKLQkvKiB0aGUgcGNmODU2MyBhbGFybSBvbmx5IHN1cHBvcnRzIGEgbWludXRlIGFjY3VyYWN5ICovCi0JcGNmODU2My0+cnRjLT51aWVfdW5zdXBwb3J0ZWQgPSAxOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTYzMiw2ICs2MjYsOCBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKGkyYywgcGNmODU2M19pZCk7CiAjaWZkZWYgQ09ORklHX09GCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBwY2Y4NTYzX29mX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICJueHAscGNmODU2MyIgfSwKKwl7IC5jb21wYXRpYmxlID0gImVwc29uLHJ0Yzg1NjQiIH0sCisJeyAuY29tcGF0aWJsZSA9ICJtaWNyb2NyeXN0YWwscnY4NTY0IiB9LAogCXt9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcGNmODU2M19vZl9tYXRjaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGljMzIuYyBiL2RyaXZlcnMvcnRjL3J0Yy1waWMzMi5jCmluZGV4IDFjNGRlNmUuLjE3NjUzZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1waWMzMi5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1waWMzMi5jCkBAIC0zMDgsMTAgKzMwOCw4IEBAIHN0YXRpYyBpbnQgcGljMzJfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcGRhdGEpOwogCiAJcGRhdGEtPmFsYXJtX2lycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKHBkYXRhLT5hbGFybV9pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIGlycSBmb3IgYWxhcm1cbiIpOworCWlmIChwZGF0YS0+YWxhcm1faXJxIDwgMCkKIAkJcmV0dXJuIHBkYXRhLT5hbGFybV9pcnE7Ci0JfQogCiAJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKIAlwZGF0YS0+cmVnX2Jhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1wbTh4eHguYyBiL2RyaXZlcnMvcnRjL3J0Yy1wbTh4eHguYwppbmRleCA5Zjk4MzljLi5mNWEzMGUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtcG04eHh4LmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXBtOHh4eC5jCkBAIC00NjgsMTAgKzQ2OCw4IEBAIHN0YXRpYyBpbnQgcG04eHh4X3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCXJ0Y19kZC0+cnRjX2FsYXJtX2lycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKHJ0Y19kZC0+cnRjX2FsYXJtX2lycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiQWxhcm0gSVJRIHJlc291cmNlIGFic2VudCFcbiIpOworCWlmIChydGNfZGQtPnJ0Y19hbGFybV9pcnEgPCAwKQogCQlyZXR1cm4gLUVOWElPOwotCX0KIAogCXJ0Y19kZC0+YWxsb3dfc2V0X3RpbWUgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wocGRldi0+ZGV2Lm9mX25vZGUsCiAJCQkJCQkgICAgICAiYWxsb3ctc2V0LXRpbWUiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1wdXYzLmMgYi9kcml2ZXJzL3J0Yy9ydGMtcHV2My5jCmluZGV4IDYzYjllNzMuLjg5ZmY3MTMxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXB1djMuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtcHV2My5jCkBAIC0xODYsMTYgKzE4NiwxMiBAQCBzdGF0aWMgaW50IHB1djNfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkvKiBmaW5kIHRoZSBJUlFzICovCiAJcHV2M19ydGNfdGlja25vID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAxKTsKLQlpZiAocHV2M19ydGNfdGlja25vIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBpcnEgZm9yIHJ0YyB0aWNrXG4iKTsKKwlpZiAocHV2M19ydGNfdGlja25vIDwgMCkKIAkJcmV0dXJuIC1FTk9FTlQ7Ci0JfQogCiAJcHV2M19ydGNfYWxhcm1ubyA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKHB1djNfcnRjX2FsYXJtbm8gPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIGlycSBmb3IgYWxhcm1cbiIpOworCWlmIChwdXYzX3J0Y19hbGFybW5vIDwgMCkKIAkJcmV0dXJuIC1FTk9FTlQ7Ci0JfQogCiAJZGV2X2RiZygmcGRldi0+ZGV2LCAiUEtVbml0eV9ydGM6IHRpY2sgaXJxICVkLCBhbGFybSBpcnEgJWRcbiIsCiAJCSBwdXYzX3J0Y190aWNrbm8sIHB1djNfcnRjX2FsYXJtbm8pOwpAQCAtMjM5LDEwICsyMzUsOCBAQCBzdGF0aWMgaW50IHB1djNfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJLyogcmVnaXN0ZXIgUlRDIGFuZCBleGl0ICovCiAJcnRjLT5vcHMgPSAmcHV2M19ydGNvcHM7CiAJcmV0ID0gcnRjX3JlZ2lzdGVyX2RldmljZShydGMpOwotCWlmIChyZXQpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2Fubm90IGF0dGFjaCBydGNcbiIpOworCWlmIChyZXQpCiAJCWdvdG8gZXJyX25vcnRjOwotCX0KIAogCS8qIHBsYXRmb3JtIHNldHVwIGNvZGUgc2hvdWxkIGhhdmUgaGFuZGxlZCB0aGlzOyBzaWdoICovCiAJaWYgKCFkZXZpY2VfY2FuX3dha2V1cCgmcGRldi0+ZGV2KSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1weGEuYyBiL2RyaXZlcnMvcnRjL3J0Yy1weGEuYwppbmRleCBhNzgyN2ZlLi5kMmYxZDhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtcHhhLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXB4YS5jCkBAIC0zMjQsMTUgKzMyNCwxMSBAQCBzdGF0aWMgaW50IF9faW5pdCBweGFfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJfQogCiAJc2ExMTAwX3J0Yy0+aXJxXzFoeiA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKHNhMTEwMF9ydGMtPmlycV8xaHogPCAwKSB7Ci0JCWRldl9lcnIoZGV2LCAiTm8gMUh6IElSUSByZXNvdXJjZSBkZWZpbmVkXG4iKTsKKwlpZiAoc2ExMTAwX3J0Yy0+aXJxXzFoeiA8IDApCiAJCXJldHVybiAtRU5YSU87Ci0JfQogCXNhMTEwMF9ydGMtPmlycV9hbGFybSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMSk7Ci0JaWYgKHNhMTEwMF9ydGMtPmlycV9hbGFybSA8IDApIHsKLQkJZGV2X2VycihkZXYsICJObyBhbGFybSBJUlEgcmVzb3VyY2UgZGVmaW5lZFxuIik7CisJaWYgKHNhMTEwMF9ydGMtPmlycV9hbGFybSA8IDApCiAJCXJldHVybiAtRU5YSU87Ci0JfQogCiAJcHhhX3J0Yy0+YmFzZSA9IGRldm1faW9yZW1hcChkZXYsIHB4YV9ydGMtPnJlc3MtPnN0YXJ0LAogCQkJCXJlc291cmNlX3NpemUocHhhX3J0Yy0+cmVzcykpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXJrODA4LmMgYi9kcml2ZXJzL3J0Yy9ydGMtcms4MDguYwppbmRleCBjMzQ1NDBiLi5jMDMzNGM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtcms4MDguYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtcms4MDguYwpAQCAtNDM0LDEyICs0MzQsOCBAQCBzdGF0aWMgaW50IHJrODA4X3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXJrODA4X3J0Yy0+cnRjLT5vcHMgPSAmcms4MDhfcnRjX29wczsKIAogCXJrODA4X3J0Yy0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAocms4MDhfcnRjLT5pcnEgPCAwKSB7Ci0JCWlmIChyazgwOF9ydGMtPmlycSAhPSAtRVBST0JFX0RFRkVSKQotCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiV2FrZSB1cCBpcyBub3QgcG9zc2libGUgYXMgaXJxID0gJWRcbiIsCi0JCQkJcms4MDhfcnRjLT5pcnEpOworCWlmIChyazgwOF9ydGMtPmlycSA8IDApCiAJCXJldHVybiByazgwOF9ydGMtPmlycTsKLQl9CiAKIAkvKiByZXF1ZXN0IGFsYXJtIGlycSBvZiByazgwOCAqLwogCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoJnBkZXYtPmRldiwgcms4MDhfcnRjLT5pcnEsIE5VTEwsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcnYzMDI4LmMgYi9kcml2ZXJzL3J0Yy9ydGMtcnYzMDI4LmMKaW5kZXggMDY4ODRlYi4uMmIzMTY2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXJ2MzAyOC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1ydjMwMjguYwpAQCAtNjM5LDkgKzYzOSw4IEBAIHN0YXRpYyBpbnQgcnYzMDI4X3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiAJCWRldl93YXJuKCZjbGllbnQtPmRldiwgIkFuIGFsYXJtIG1heSBoYXZlIGJlZW4gbWlzc2VkLlxuIik7CiAKIAlydjMwMjgtPnJ0YyA9IGRldm1fcnRjX2FsbG9jYXRlX2RldmljZSgmY2xpZW50LT5kZXYpOwotCWlmIChJU19FUlIocnYzMDI4LT5ydGMpKSB7CisJaWYgKElTX0VSUihydjMwMjgtPnJ0YykpCiAJCXJldHVybiBQVFJfRVJSKHJ2MzAyOC0+cnRjKTsKLQl9CiAKIAlpZiAoY2xpZW50LT5pcnEgPiAwKSB7CiAJCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoJmNsaWVudC0+ZGV2LCBjbGllbnQtPmlycSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1ydjMwMjljMi5jIGIvZHJpdmVycy9ydGMvcnRjLXJ2MzAyOWMyLmMKaW5kZXggNGEwZThlYzAuLjRjZGY2NTg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtcnYzMDI5YzIuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtcnYzMDI5YzIuYwpAQCAtMjc4LDEzICsyNzgsMTMgQEAgc3RhdGljIGludCBydjMwMjlfZWVwcm9tX3JlYWQoc3RydWN0IGRldmljZSAqZGV2LCB1OCByZWcsCiBzdGF0aWMgaW50IHJ2MzAyOV9lZXByb21fd3JpdGUoc3RydWN0IGRldmljZSAqZGV2LCB1OCByZWcsCiAJCQkgICAgICAgdTggY29uc3QgYnVmW10sIHNpemVfdCBsZW4pCiB7Ci0JaW50IHJldDsKKwlpbnQgcmV0LCBlcnI7CiAJc2l6ZV90IGk7CiAJdTggdG1wOwogCi0JcmV0ID0gcnYzMDI5X2VlcHJvbV9lbnRlcihkZXYpOwotCWlmIChyZXQgPCAwKQotCQlyZXR1cm4gcmV0OworCWVyciA9IHJ2MzAyOV9lZXByb21fZW50ZXIoZGV2KTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKIAogCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKywgcmVnKyspIHsKIAkJcmV0ID0gcnYzMDI5X3JlYWRfcmVncyhkZXYsIHJlZywgJnRtcCwgMSk7CkBAIC0zMDAsMTEgKzMwMCwxMSBAQCBzdGF0aWMgaW50IHJ2MzAyOV9lZXByb21fd3JpdGUoc3RydWN0IGRldmljZSAqZGV2LCB1OCByZWcsCiAJCQlicmVhazsKIAl9CiAKLQlyZXQgPSBydjMwMjlfZWVwcm9tX2V4aXQoZGV2KTsKLQlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKKwllcnIgPSBydjMwMjlfZWVwcm9tX2V4aXQoZGV2KTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKIAotCXJldHVybiAwOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgcnYzMDI5X2VlcHJvbV91cGRhdGVfYml0cyhzdHJ1Y3QgZGV2aWNlICpkZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcnY4ODAzLmMgYi9kcml2ZXJzL3J0Yy9ydGMtcnY4ODAzLmMKaW5kZXggZmM1MjQzNC4uNDk2MGYwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXJ2ODgwMy5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1ydjg4MDMuYwpAQCAtNTY0LDkgKzU2NCw4IEBAIHN0YXRpYyBpbnQgcnY4ODAzX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJCWRldl93YXJuKCZjbGllbnQtPmRldiwgIkFuIGFsYXJtIG1heWJlIGhhdmUgYmVlbiBtaXNzZWQuXG4iKTsKIAogCXJ2ODgwMy0+cnRjID0gZGV2bV9ydGNfYWxsb2NhdGVfZGV2aWNlKCZjbGllbnQtPmRldik7Ci0JaWYgKElTX0VSUihydjg4MDMtPnJ0YykpIHsKKwlpZiAoSVNfRVJSKHJ2ODgwMy0+cnRjKSkKIAkJcmV0dXJuIFBUUl9FUlIocnY4ODAzLT5ydGMpOwotCX0KIAogCWlmIChjbGllbnQtPmlycSA+IDApIHsKIAkJZXJyID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmY2xpZW50LT5kZXYsIGNsaWVudC0+aXJxLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXMzNTM5MGEuYyBiL2RyaXZlcnMvcnRjL3J0Yy1zMzUzOTBhLmMKaW5kZXggODQ4MDZmZi4uZGEzNGNmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXMzNTM5MGEuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtczM1MzkwYS5jCkBAIC00MzQsMzcgKzQzNCwzMiBAQCBzdGF0aWMgaW50IHMzNTM5MGFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAljaGFyIGJ1Ziwgc3RhdHVzMTsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmY2xpZW50LT5kZXY7CiAKLQlpZiAoIWkyY19jaGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwgSTJDX0ZVTkNfSTJDKSkgewotCQllcnIgPSAtRU5PREVWOwotCQlnb3RvIGV4aXQ7Ci0JfQorCWlmICghaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkoY2xpZW50LT5hZGFwdGVyLCBJMkNfRlVOQ19JMkMpKQorCQlyZXR1cm4gLUVOT0RFVjsKIAogCXMzNTM5MGEgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2Yoc3RydWN0IHMzNTM5MGEpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXMzNTM5MGEpIHsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBleGl0OwotCX0KKwlpZiAoIXMzNTM5MGEpCisJCXJldHVybiAtRU5PTUVNOwogCiAJczM1MzkwYS0+Y2xpZW50WzBdID0gY2xpZW50OwogCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIHMzNTM5MGEpOwogCiAJLyogVGhpcyBjaGlwIHVzZXMgbXVsdGlwbGUgYWRkcmVzc2VzLCB1c2UgZHVtbXkgZGV2aWNlcyBmb3IgdGhlbSAqLwogCWZvciAoaSA9IDE7IGkgPCA4OyArK2kpIHsKLQkJczM1MzkwYS0+Y2xpZW50W2ldID0gaTJjX25ld19kdW1teShjbGllbnQtPmFkYXB0ZXIsCi0JCQkJCWNsaWVudC0+YWRkciArIGkpOwotCQlpZiAoIXMzNTM5MGEtPmNsaWVudFtpXSkgeworCQlzMzUzOTBhLT5jbGllbnRbaV0gPSBkZXZtX2kyY19uZXdfZHVtbXlfZGV2aWNlKGRldiwKKwkJCQkJCQkgICAgICAgY2xpZW50LT5hZGFwdGVyLAorCQkJCQkJCSAgICAgICBjbGllbnQtPmFkZHIgKyBpKTsKKwkJaWYgKElTX0VSUihzMzUzOTBhLT5jbGllbnRbaV0pKSB7CiAJCQlkZXZfZXJyKGRldiwgIkFkZHJlc3MgJTAyeCB1bmF2YWlsYWJsZVxuIiwKIAkJCQljbGllbnQtPmFkZHIgKyBpKTsKLQkJCWVyciA9IC1FQlVTWTsKLQkJCWdvdG8gZXhpdF9kdW1teTsKKwkJCXJldHVybiBQVFJfRVJSKHMzNTM5MGEtPmNsaWVudFtpXSk7CiAJCX0KIAl9CiAKIAllcnJfcmVhZCA9IHMzNTM5MGFfcmVhZF9zdGF0dXMoczM1MzkwYSwgJnN0YXR1czEpOwogCWlmIChlcnJfcmVhZCA8IDApIHsKLQkJZXJyID0gZXJyX3JlYWQ7CiAJCWRldl9lcnIoZGV2LCAiZXJyb3IgcmVzZXR0aW5nIGNoaXBcbiIpOwotCQlnb3RvIGV4aXRfZHVtbXk7CisJCXJldHVybiBlcnJfcmVhZDsKIAl9CiAKIAlpZiAoc3RhdHVzMSAmIFMzNTM5MEFfRkxBR18yNEgpCkBAIC00NzgsMTMgKzQ3MywxMyBAQCBzdGF0aWMgaW50IHMzNTM5MGFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJZXJyID0gczM1MzkwYV9zZXRfcmVnKHMzNTM5MGEsIFMzNTM5MEFfQ01EX1NUQVRVUzIsICZidWYsIDEpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJZGV2X2VycihkZXYsICJlcnJvciBkaXNhYmxpbmcgYWxhcm0iKTsKLQkJCWdvdG8gZXhpdF9kdW1teTsKKwkJCXJldHVybiBlcnI7CiAJCX0KIAl9IGVsc2UgewogCQllcnIgPSBzMzUzOTBhX2Rpc2FibGVfdGVzdF9tb2RlKHMzNTM5MGEpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJZGV2X2VycihkZXYsICJlcnJvciBkaXNhYmxpbmcgdGVzdCBtb2RlXG4iKTsKLQkJCWdvdG8gZXhpdF9kdW1teTsKKwkJCXJldHVybiBlcnI7CiAJCX0KIAl9CiAKQEAgLTQ5MywxMCArNDg4LDggQEAgc3RhdGljIGludCBzMzUzOTBhX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJczM1MzkwYS0+cnRjID0gZGV2bV9ydGNfZGV2aWNlX3JlZ2lzdGVyKGRldiwgczM1MzkwYV9kcml2ZXIuZHJpdmVyLm5hbWUsCiAJCQkJCQkmczM1MzkwYV9ydGNfb3BzLCBUSElTX01PRFVMRSk7CiAKLQlpZiAoSVNfRVJSKHMzNTM5MGEtPnJ0YykpIHsKLQkJZXJyID0gUFRSX0VSUihzMzUzOTBhLT5ydGMpOwotCQlnb3RvIGV4aXRfZHVtbXk7Ci0JfQorCWlmIChJU19FUlIoczM1MzkwYS0+cnRjKSkKKwkJcmV0dXJuIFBUUl9FUlIoczM1MzkwYS0+cnRjKTsKIAogCS8qIHN1cHBvcnRzIHBlci1taW51dGUgYWxhcm1zIG9ubHksIHRoZXJlZm9yZSBzZXQgdWllX3Vuc3VwcG9ydGVkICovCiAJczM1MzkwYS0+cnRjLT51aWVfdW5zdXBwb3J0ZWQgPSAxOwpAQCAtNTA1LDI2ICs0OTgsNiBAQCBzdGF0aWMgaW50IHMzNTM5MGFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJcnRjX3VwZGF0ZV9pcnEoczM1MzkwYS0+cnRjLCAxLCBSVENfQUYpOwogCiAJcmV0dXJuIDA7Ci0KLWV4aXRfZHVtbXk6Ci0JZm9yIChpID0gMTsgaSA8IDg7ICsraSkKLQkJaWYgKHMzNTM5MGEtPmNsaWVudFtpXSkKLQkJCWkyY191bnJlZ2lzdGVyX2RldmljZShzMzUzOTBhLT5jbGllbnRbaV0pOwotCi1leGl0OgotCXJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyBpbnQgczM1MzkwYV9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKLXsKLQl1bnNpZ25lZCBpbnQgaTsKLQlzdHJ1Y3QgczM1MzkwYSAqczM1MzkwYSA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOwotCi0JZm9yIChpID0gMTsgaSA8IDg7ICsraSkKLQkJaWYgKHMzNTM5MGEtPmNsaWVudFtpXSkKLQkJCWkyY191bnJlZ2lzdGVyX2RldmljZShzMzUzOTBhLT5jbGllbnRbaV0pOwotCi0JcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBzMzUzOTBhX2RyaXZlciA9IHsKQEAgLTUzMyw3ICs1MDYsNiBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgczM1MzkwYV9kcml2ZXIgPSB7CiAJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0cihzMzUzOTBhX29mX21hdGNoKSwKIAl9LAogCS5wcm9iZQkJPSBzMzUzOTBhX3Byb2JlLAotCS5yZW1vdmUJCT0gczM1MzkwYV9yZW1vdmUsCiAJLmlkX3RhYmxlCT0gczM1MzkwYV9pZCwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1zM2MuYyBiL2RyaXZlcnMvcnRjL3J0Yy1zM2MuYwppbmRleCA3NGJmNjQ3Li43ODAxMjQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtczNjLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXMzYy5jCkBAIC00NTMsMTAgKzQ1Myw4IEBAIHN0YXRpYyBpbnQgczNjX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJLyogZmluZCB0aGUgSVJRcyAqLwogCWluZm8tPmlycV90aWNrID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAxKTsKLQlpZiAoaW5mby0+aXJxX3RpY2sgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIGlycSBmb3IgcnRjIHRpY2tcbiIpOworCWlmIChpbmZvLT5pcnFfdGljayA8IDApCiAJCXJldHVybiBpbmZvLT5pcnFfdGljazsKLQl9CiAKIAlpbmZvLT5kZXYgPSAmcGRldi0+ZGV2OwogCWluZm8tPmRhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7CkBAIC00NzAsMTAgKzQ2OCw4IEBAIHN0YXRpYyBpbnQgczNjX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGluZm8pOwogCiAJaW5mby0+aXJxX2FsYXJtID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaW5mby0+aXJxX2FsYXJtIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBpcnEgZm9yIGFsYXJtXG4iKTsKKwlpZiAoaW5mby0+aXJxX2FsYXJtIDwgMCkKIAkJcmV0dXJuIGluZm8tPmlycV9hbGFybTsKLQl9CiAKIAlkZXZfZGJnKCZwZGV2LT5kZXYsICJzM2MyNDEwX3J0YzogdGljayBpcnEgJWQsIGFsYXJtIGlycSAlZFxuIiwKIAkJaW5mby0+aXJxX3RpY2ssIGluZm8tPmlycV9hbGFybSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtczVtLmMgYi9kcml2ZXJzL3J0Yy9ydGMtczVtLmMKaW5kZXggYzdmMWJmOC4uZWI5ZGRlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXM1bS5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1zNW0uYwpAQCAtNzYwLDEwICs3NjAsMTAgQEAgc3RhdGljIGludCBzNW1fcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiAtRU5PREVWOwogCX0KIAotCWluZm8tPmkyYyA9IGkyY19uZXdfZHVtbXkoczVtODd4eC0+aTJjLT5hZGFwdGVyLCBSVENfSTJDX0FERFIpOwotCWlmICghaW5mby0+aTJjKSB7CisJaW5mby0+aTJjID0gaTJjX25ld19kdW1teV9kZXZpY2UoczVtODd4eC0+aTJjLT5hZGFwdGVyLCBSVENfSTJDX0FERFIpOworCWlmIChJU19FUlIoaW5mby0+aTJjKSkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgSTJDIGZvciBSVENcbiIpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJcmV0dXJuIFBUUl9FUlIoaW5mby0+aTJjKTsKIAl9CiAKIAlpbmZvLT5yZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhpbmZvLT5pMmMsIHJlZ21hcF9jZmcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXNjMjd4eC5jIGIvZHJpdmVycy9ydGMvcnRjLXNjMjd4eC5jCmluZGV4IGI0ZWIzYjMuLmI5NTY3NjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1zYzI3eHguYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtc2MyN3h4LmMKQEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0aWMgaW50IHNwcmRfcnRjX2xvY2tfYWxhcm0oc3RydWN0IHNwcmRfcnRjICpydGMsIGJvb2wgbG9jaykKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JdmFsICY9IH4oU1BSRF9SVENfQUxNTE9DS19NQVNLIHwgU1BSRF9SVENfUE9XRVJPRkZfQUxNX0ZMQUcpOworCXZhbCAmPSB+U1BSRF9SVENfQUxNTE9DS19NQVNLOwogCWlmIChsb2NrKQogCQl2YWwgfD0gU1BSRF9SVENfQUxNX0xPQ0s7CiAJZWxzZQpAQCAtNjE0LDEwICs2MTQsOCBAQCBzdGF0aWMgaW50IHNwcmRfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJfQogCiAJcnRjLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChydGMtPmlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBSVEMgaXJxIG51bWJlclxuIik7CisJaWYgKHJ0Yy0+aXJxIDwgMCkKIAkJcmV0dXJuIHJ0Yy0+aXJxOwotCX0KIAogCXJ0Yy0+cnRjID0gZGV2bV9ydGNfYWxsb2NhdGVfZGV2aWNlKCZwZGV2LT5kZXYpOwogCWlmIChJU19FUlIocnRjLT5ydGMpKQpAQCAtNjU2LDcgKzY1NCw2IEBAIHN0YXRpYyBpbnQgc3ByZF9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlydGMtPnJ0Yy0+cmFuZ2VfbWF4ID0gNTY2MjMxMDM5OUxMOwogCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UocnRjLT5ydGMpOwogCWlmIChyZXQpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIHJ0YyBkZXZpY2VcbiIpOwogCQlkZXZpY2VfaW5pdF93YWtldXAoJnBkZXYtPmRldiwgMCk7CiAJCXJldHVybiByZXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXNkMzA3OC5jIGIvZHJpdmVycy9ydGMvcnRjLXNkMzA3OC5jCmluZGV4IDQyY2I5MGQuLmE3YWE5NDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1zZDMwNzguYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtc2QzMDc4LmMKQEAgLTE5MywxMCArMTkzLDggQEAgc3RhdGljIGludCBzZDMwNzhfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAlzZDMwNzgtPnJ0Yy0+cmFuZ2VfbWF4ID0gUlRDX1RJTUVTVEFNUF9FTkRfMjA5OTsKIAogCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2Uoc2QzMDc4LT5ydGMpOwotCWlmIChyZXQpIHsKLQkJZGV2X2VycigmY2xpZW50LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgcnRjIGRldmljZVxuIik7CisJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKLQl9CiAKIAlzZDMwNzhfZW5hYmxlX3JlZ193cml0ZShzZDMwNzgpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtc252cy5jIGIvZHJpdmVycy9ydGMvcnRjLXNudnMuYwppbmRleCA3ZWU2NzNhMi4uNzU3ZjRkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXNudnMuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtc252cy5jCkBAIC0xNTEsNyArMTUxLDcgQEAgc3RhdGljIGludCBzbnZzX3J0Y19yZWFkX3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQogCXN0cnVjdCBzbnZzX3J0Y19kYXRhICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJdW5zaWduZWQgbG9uZyB0aW1lID0gcnRjX3JlYWRfbHBfY291bnRlcihkYXRhKTsKIAotCXJ0Y190aW1lX3RvX3RtKHRpbWUsIHRtKTsKKwlydGNfdGltZTY0X3RvX3RtKHRpbWUsIHRtKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTU5LDExICsxNTksOSBAQCBzdGF0aWMgaW50IHNudnNfcnRjX3JlYWRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCiBzdGF0aWMgaW50IHNudnNfcnRjX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKIHsKIAlzdHJ1Y3Qgc252c19ydGNfZGF0YSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCXVuc2lnbmVkIGxvbmcgdGltZTsKKwl1bnNpZ25lZCBsb25nIHRpbWUgPSBydGNfdG1fdG9fdGltZTY0KHRtKTsKIAlpbnQgcmV0OwogCi0JcnRjX3RtX3RvX3RpbWUodG0sICZ0aW1lKTsKLQogCS8qIERpc2FibGUgUlRDIGZpcnN0ICovCiAJcmV0ID0gc252c19ydGNfZW5hYmxlKGRhdGEsIGZhbHNlKTsKIAlpZiAocmV0KQpAQCAtMTg1LDcgKzE4Myw3IEBAIHN0YXRpYyBpbnQgc252c19ydGNfcmVhZF9hbGFybShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfd2thbHJtICphbHJtKQogCXUzMiBscHRhciwgbHBzcjsKIAogCXJlZ21hcF9yZWFkKGRhdGEtPnJlZ21hcCwgZGF0YS0+b2Zmc2V0ICsgU05WU19MUFRBUiwgJmxwdGFyKTsKLQlydGNfdGltZV90b190bShscHRhciwgJmFscm0tPnRpbWUpOworCXJ0Y190aW1lNjRfdG9fdG0obHB0YXIsICZhbHJtLT50aW1lKTsKIAogCXJlZ21hcF9yZWFkKGRhdGEtPnJlZ21hcCwgZGF0YS0+b2Zmc2V0ICsgU05WU19MUFNSLCAmbHBzcik7CiAJYWxybS0+cGVuZGluZyA9IChscHNyICYgU05WU19MUFNSX0xQVEEpID8gMSA6IDA7CkBAIC0yMDcsMTIgKzIwNSw5IEBAIHN0YXRpYyBpbnQgc252c19ydGNfYWxhcm1faXJxX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBlbmFibGUpCiBzdGF0aWMgaW50IHNudnNfcnRjX3NldF9hbGFybShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfd2thbHJtICphbHJtKQogewogCXN0cnVjdCBzbnZzX3J0Y19kYXRhICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0Jc3RydWN0IHJ0Y190aW1lICphbHJtX3RtID0gJmFscm0tPnRpbWU7Ci0JdW5zaWduZWQgbG9uZyB0aW1lOworCXVuc2lnbmVkIGxvbmcgdGltZSA9IHJ0Y190bV90b190aW1lNjQoJmFscm0tPnRpbWUpOwogCWludCByZXQ7CiAKLQlydGNfdG1fdG9fdGltZShhbHJtX3RtLCAmdGltZSk7Ci0KIAlyZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBkYXRhLT5vZmZzZXQgKyBTTlZTX0xQQ1IsIFNOVlNfTFBDUl9MUFRBX0VOLCAwKTsKIAlyZXQgPSBydGNfd3JpdGVfc3luY19scChkYXRhKTsKIAlpZiAocmV0KQpAQCAtMjc5LDYgKzI3NCwxMCBAQCBzdGF0aWMgaW50IHNudnNfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKCFkYXRhKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWRhdGEtPnJ0YyA9IGRldm1fcnRjX2FsbG9jYXRlX2RldmljZSgmcGRldi0+ZGV2KTsKKwlpZiAoSVNfRVJSKGRhdGEtPnJ0YykpCisJCXJldHVybiBQVFJfRVJSKGRhdGEtPnJ0Yyk7CisKIAlkYXRhLT5yZWdtYXAgPSBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKHBkZXYtPmRldi5vZl9ub2RlLCAicmVnbWFwIik7CiAKIAlpZiAoSVNfRVJSKGRhdGEtPnJlZ21hcCkpIHsKQEAgLTM0MywxMCArMzQyLDEwIEBAIHN0YXRpYyBpbnQgc252c19ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJZ290byBlcnJvcl9ydGNfZGV2aWNlX3JlZ2lzdGVyOwogCX0KIAotCWRhdGEtPnJ0YyA9IGRldm1fcnRjX2RldmljZV9yZWdpc3RlcigmcGRldi0+ZGV2LCBwZGV2LT5uYW1lLAotCQkJCQkmc252c19ydGNfb3BzLCBUSElTX01PRFVMRSk7Ci0JaWYgKElTX0VSUihkYXRhLT5ydGMpKSB7Ci0JCXJldCA9IFBUUl9FUlIoZGF0YS0+cnRjKTsKKwlkYXRhLT5ydGMtPm9wcyA9ICZzbnZzX3J0Y19vcHM7CisJZGF0YS0+cnRjLT5yYW5nZV9tYXggPSBVMzJfTUFYOworCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UoZGF0YS0+cnRjKTsKKwlpZiAocmV0KSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZWdpc3RlciBydGM6ICVkXG4iLCByZXQpOwogCQlnb3RvIGVycm9yX3J0Y19kZXZpY2VfcmVnaXN0ZXI7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXNwZWFyLmMgYi9kcml2ZXJzL3J0Yy9ydGMtc3BlYXIuYwppbmRleCAwNTY3OTQ0Li45ZjIzYjI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtc3BlYXIuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtc3BlYXIuYwpAQCAtMzU4LDEwICszNTgsOCBAQCBzdGF0aWMgaW50IHNwZWFyX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJLyogYWxhcm0gaXJxcyAqLwogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gdXBkYXRlIGlycT9cbiIpOworCWlmIChpcnEgPCAwKQogCQlyZXR1cm4gaXJxOwotCX0KIAogCXN0YXR1cyA9IGRldm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRldiwgaXJxLCBzcGVhcl9ydGNfaXJxLCAwLCBwZGV2LT5uYW1lLAogCQkJY29uZmlnKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1zdG0zMi5jIGIvZHJpdmVycy9ydGMvcnRjLXN0bTMyLmMKaW5kZXggNzczYTE5OS4uMjk5OWUzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXN0bTMyLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXN0bTMyLmMKQEAgLTc3Niw3ICs3NzYsNiBAQCBzdGF0aWMgaW50IHN0bTMyX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJcnRjLT5pcnFfYWxhcm0gPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwogCWlmIChydGMtPmlycV9hbGFybSA8PSAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIGFsYXJtIGlycVxuIik7CiAJCXJldCA9IHJ0Yy0+aXJxX2FsYXJtOwogCQlnb3RvIGVycjsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtc3VuNmkuYyBiL2RyaXZlcnMvcnRjL3J0Yy1zdW42aS5jCmluZGV4IGMwZTc1YzMuLjVlMmJkOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1zdW42aS5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1zdW42aS5jCkBAIC0zMiw5ICszMiwxMSBAQAogLyogQ29udHJvbCByZWdpc3RlciAqLwogI2RlZmluZSBTVU42SV9MT1NDX0NUUkwJCQkJMHgwMDAwCiAjZGVmaW5lIFNVTjZJX0xPU0NfQ1RSTF9LRVkJCQkoMHgxNmFhIDw8IDE2KQorI2RlZmluZSBTVU42SV9MT1NDX0NUUkxfQVVUT19TV1RfQllQQVNTCQlCSVQoMTUpCiAjZGVmaW5lIFNVTjZJX0xPU0NfQ1RSTF9BTE1fREhNU19BQ0MJCUJJVCg5KQogI2RlZmluZSBTVU42SV9MT1NDX0NUUkxfUlRDX0hNU19BQ0MJCUJJVCg4KQogI2RlZmluZSBTVU42SV9MT1NDX0NUUkxfUlRDX1lNRF9BQ0MJCUJJVCg3KQorI2RlZmluZSBTVU42SV9MT1NDX0NUUkxfRVhUX0xPU0NfRU4JCUJJVCg0KQogI2RlZmluZSBTVU42SV9MT1NDX0NUUkxfRVhUX09TQwkJCUJJVCgwKQogI2RlZmluZSBTVU42SV9MT1NDX0NUUkxfQUNDX01BU0sJCUdFTk1BU0soOSwgNykKIApAQCAtMTI4LDYgKzEzMCw4IEBAIHN0cnVjdCBzdW42aV9ydGNfY2xrX2RhdGEgewogCXVuc2lnbmVkIGludCBoYXNfcHJlc2NhbGVyIDogMTsKIAl1bnNpZ25lZCBpbnQgaGFzX291dF9jbGsgOiAxOwogCXVuc2lnbmVkIGludCBleHBvcnRfaW9zYyA6IDE7CisJdW5zaWduZWQgaW50IGhhc19sb3NjX2VuIDogMTsKKwl1bnNpZ25lZCBpbnQgaGFzX2F1dG9fc3d0IDogMTsKIH07CiAKIHN0cnVjdCBzdW42aV9ydGNfZGV2IHsKQEAgLTE5MCw2ICsxOTQsMTAgQEAgc3RhdGljIGludCBzdW42aV9ydGNfb3NjX3NldF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHcsIHU4IGluZGV4KQogCXZhbCAmPSB+U1VONklfTE9TQ19DVFJMX0VYVF9PU0M7CiAJdmFsIHw9IFNVTjZJX0xPU0NfQ1RSTF9LRVk7CiAJdmFsIHw9IGluZGV4ID8gU1VONklfTE9TQ19DVFJMX0VYVF9PU0MgOiAwOworCWlmIChydGMtPmRhdGEtPmhhc19sb3NjX2VuKSB7CisJCXZhbCAmPSB+U1VONklfTE9TQ19DVFJMX0VYVF9MT1NDX0VOOworCQl2YWwgfD0gaW5kZXggPyBTVU42SV9MT1NDX0NUUkxfRVhUX0xPU0NfRU4gOiAwOworCX0KIAl3cml0ZWwodmFsLCBydGMtPmJhc2UgKyBTVU42SV9MT1NDX0NUUkwpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJ0Yy0+bG9jaywgZmxhZ3MpOwogCkBAIC0yMTUsNiArMjIzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHN1bjZpX3J0Y19jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJY29uc3QgY2hhciAqaW9zY19uYW1lID0gInJ0Yy1pbnQtb3NjIjsKIAljb25zdCBjaGFyICpjbGtvdXRfbmFtZSA9ICJvc2MzMmstb3V0IjsKIAljb25zdCBjaGFyICpwYXJlbnRzWzJdOworCXUzMiByZWc7CiAKIAlydGMgPSBremFsbG9jKHNpemVvZigqcnRjKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFydGMpCkBAIC0yMzUsOSArMjQ0LDE4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBzdW42aV9ydGNfY2xrX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCQlnb3RvIGVycjsKIAl9CiAKKwlyZWcgPSBTVU42SV9MT1NDX0NUUkxfS0VZOworCWlmIChydGMtPmRhdGEtPmhhc19hdXRvX3N3dCkgeworCQkvKiBCeXBhc3MgYXV0by1zd2l0Y2ggdG8gaW50IG9zYywgb24gZXh0IGxvc2MgZmFpbHVyZSAqLworCQlyZWcgfD0gU1VONklfTE9TQ19DVFJMX0FVVE9fU1dUX0JZUEFTUzsKKwkJd3JpdGVsKHJlZywgcnRjLT5iYXNlICsgU1VONklfTE9TQ19DVFJMKTsKKwl9CisKIAkvKiBTd2l0Y2ggdG8gdGhlIGV4dGVybmFsLCBtb3JlIHByZWNpc2UsIG9zY2lsbGF0b3IgKi8KLQl3cml0ZWwoU1VONklfTE9TQ19DVFJMX0tFWSB8IFNVTjZJX0xPU0NfQ1RSTF9FWFRfT1NDLAotCSAgICAgICBydGMtPmJhc2UgKyBTVU42SV9MT1NDX0NUUkwpOworCXJlZyB8PSBTVU42SV9MT1NDX0NUUkxfRVhUX09TQzsKKwlpZiAocnRjLT5kYXRhLT5oYXNfbG9zY19lbikKKwkJcmVnIHw9IFNVTjZJX0xPU0NfQ1RSTF9FWFRfTE9TQ19FTjsKKwl3cml0ZWwocmVnLCBydGMtPmJhc2UgKyBTVU42SV9MT1NDX0NUUkwpOwogCiAJLyogWWVzLCBJIGtub3csIHRoaXMgaXMgdWdseS4gKi8KIAlzdW42aV9ydGMgPSBydGM7CkBAIC0yNzksNyArMjk3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHN1bjZpX3J0Y19jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAKIAlvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZ19pbmRleChub2RlLCAiY2xvY2stb3V0cHV0LW5hbWVzIiwgMSwKIAkJCQkgICAgICAmY2xrb3V0X25hbWUpOwotCXJ0Yy0+ZXh0X2xvc2MgPSBjbGtfcmVnaXN0ZXJfZ2F0ZShOVUxMLCBjbGtvdXRfbmFtZSwgcnRjLT5ody5pbml0LT5uYW1lLAorCXJ0Yy0+ZXh0X2xvc2MgPSBjbGtfcmVnaXN0ZXJfZ2F0ZShOVUxMLCBjbGtvdXRfbmFtZSwgaW5pdC5uYW1lLAogCQkJCQkgIDAsIHJ0Yy0+YmFzZSArIFNVTjZJX0xPU0NfT1VUX0dBVElORywKIAkJCQkJICBTVU42SV9MT1NDX09VVF9HQVRJTkdfRU5fT0ZGU0VULCAwLAogCQkJCQkgICZydGMtPmxvY2spOwpAQCAtMzQ1LDYgKzM2MywyMyBAQCBDTEtfT0ZfREVDTEFSRV9EUklWRVIoc3VuOGlfaDNfcnRjX2NsaywgImFsbHdpbm5lcixzdW44aS1oMy1ydGMiLAogQ0xLX09GX0RFQ0xBUkVfRFJJVkVSKHN1bjUwaV9oNV9ydGNfY2xrLCAiYWxsd2lubmVyLHN1bjUwaS1oNS1ydGMiLAogCQkgICAgICBzdW44aV9oM19ydGNfY2xrX2luaXQpOwogCitzdGF0aWMgY29uc3Qgc3RydWN0IHN1bjZpX3J0Y19jbGtfZGF0YSBzdW41MGlfaDZfcnRjX2RhdGEgPSB7CisJLnJjX29zY19yYXRlID0gMTYwMDAwMDAsCisJLmZpeGVkX3ByZXNjYWxlciA9IDMyLAorCS5oYXNfcHJlc2NhbGVyID0gMSwKKwkuaGFzX291dF9jbGsgPSAxLAorCS5leHBvcnRfaW9zYyA9IDEsCisJLmhhc19sb3NjX2VuID0gMSwKKwkuaGFzX2F1dG9fc3d0ID0gMSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzdW41MGlfaDZfcnRjX2Nsa19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSkKK3sKKwlzdW42aV9ydGNfY2xrX2luaXQobm9kZSwgJnN1bjUwaV9oNl9ydGNfZGF0YSk7Cit9CitDTEtfT0ZfREVDTEFSRV9EUklWRVIoc3VuNTBpX2g2X3J0Y19jbGssICJhbGx3aW5uZXIsc3VuNTBpLWg2LXJ0YyIsCisJCSAgICAgIHN1bjUwaV9oNl9ydGNfY2xrX2luaXQpOworCiBzdGF0aWMgY29uc3Qgc3RydWN0IHN1bjZpX3J0Y19jbGtfZGF0YSBzdW44aV92M19ydGNfZGF0YSA9IHsKIAkucmNfb3NjX3JhdGUgPSAzMjAwMCwKIAkuaGFzX291dF9jbGsgPSAxLApAQCAtNTk4LDYgKzYzMywzMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0Y19jbGFzc19vcHMgc3VuNmlfcnRjX29wcyA9IHsKIAkuYWxhcm1faXJxX2VuYWJsZQk9IHN1bjZpX3J0Y19hbGFybV9pcnFfZW5hYmxlCiB9OwogCisjaWZkZWYgQ09ORklHX1BNX1NMRUVQCisvKiBFbmFibGUgSVJRIHdha2Ugb24gc3VzcGVuZCwgdG8gd2FrZSB1cCBmcm9tIFJUQy4gKi8KK3N0YXRpYyBpbnQgc3VuNmlfcnRjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBzdW42aV9ydGNfZGV2ICpjaGlwID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlpZiAoZGV2aWNlX21heV93YWtldXAoZGV2KSkKKwkJZW5hYmxlX2lycV93YWtlKGNoaXAtPmlycSk7CisKKwlyZXR1cm4gMDsKK30KKworLyogRGlzYWJsZSBJUlEgd2FrZSBvbiByZXN1bWUuICovCitzdGF0aWMgaW50IHN1bjZpX3J0Y19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBzdW42aV9ydGNfZGV2ICpjaGlwID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlpZiAoZGV2aWNlX21heV93YWtldXAoZGV2KSkKKwkJZGlzYWJsZV9pcnFfd2FrZShjaGlwLT5pcnEpOworCisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKHN1bjZpX3J0Y19wbV9vcHMsCisJc3VuNmlfcnRjX3N1c3BlbmQsIHN1bjZpX3J0Y19yZXN1bWUpOworCiBzdGF0aWMgaW50IHN1bjZpX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBzdW42aV9ydGNfZGV2ICpjaGlwID0gc3VuNmlfcnRjOwpAQCAtNjEwLDEwICs2NzIsOCBAQCBzdGF0aWMgaW50IHN1bjZpX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWNoaXAtPmRldiA9ICZwZGV2LT5kZXY7CiAKIAljaGlwLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmIChjaGlwLT5pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIk5vIElSUSByZXNvdXJjZVxuIik7CisJaWYgKGNoaXAtPmlycSA8IDApCiAJCXJldHVybiBjaGlwLT5pcnE7Ci0JfQogCiAJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBjaGlwLT5pcnEsIHN1bjZpX3J0Y19hbGFybWlycSwKIAkJCSAgICAgICAwLCBkZXZfbmFtZSgmcGRldi0+ZGV2KSwgY2hpcCk7CkBAIC02NTAsNiArNzEwLDggQEAgc3RhdGljIGludCBzdW42aV9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWNsa19wcmVwYXJlX2VuYWJsZShjaGlwLT5sb3NjKTsKIAorCWRldmljZV9pbml0X3dha2V1cCgmcGRldi0+ZGV2LCAxKTsKKwogCWNoaXAtPnJ0YyA9IGRldm1fcnRjX2RldmljZV9yZWdpc3RlcigmcGRldi0+ZGV2LCAicnRjLXN1bjZpIiwKIAkJCQkJICAgICAmc3VuNmlfcnRjX29wcywgVEhJU19NT0RVTEUpOwogCWlmIChJU19FUlIoY2hpcC0+cnRjKSkgewpAQCAtNjc1LDYgKzczNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN1bjZpX3J0Y19kdF9pZHNbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW44aS1yNDAtcnRjIiB9LAogCXsgLmNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1bjhpLXYzLXJ0YyIgfSwKIAl7IC5jb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW41MGktaDUtcnRjIiB9LAorCXsgLmNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1bjUwaS1oNi1ydGMiIH0sCiAJeyAvKiBzZW50aW5lbCAqLyB9LAogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN1bjZpX3J0Y19kdF9pZHMpOwpAQCAtNjg0LDYgKzc0Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHN1bjZpX3J0Y19kcml2ZXIgPSB7CiAJLmRyaXZlcgkJPSB7CiAJCS5uYW1lCQk9ICJzdW42aS1ydGMiLAogCQkub2ZfbWF0Y2hfdGFibGUgPSBzdW42aV9ydGNfZHRfaWRzLAorCQkucG0gPSAmc3VuNmlfcnRjX3BtX29wcywKIAl9LAogfTsKIGJ1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKHN1bjZpX3J0Y19kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXN1bnhpLmMgYi9kcml2ZXJzL3J0Yy9ydGMtc3VueGkuYwppbmRleCA2ZWVhYmI4Li45YjZmMjQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtc3VueGkuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtc3VueGkuYwpAQCAtNDQyLDEwICs0NDIsOCBAQCBzdGF0aWMgaW50IHN1bnhpX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gUFRSX0VSUihjaGlwLT5iYXNlKTsKIAogCWNoaXAtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGNoaXAtPmlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8gSVJRIHJlc291cmNlXG4iKTsKKwlpZiAoY2hpcC0+aXJxIDwgMCkKIAkJcmV0dXJuIGNoaXAtPmlycTsKLQl9CiAJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBjaGlwLT5pcnEsIHN1bnhpX3J0Y19hbGFybWlycSwKIAkJCTAsIGRldl9uYW1lKCZwZGV2LT5kZXYpLCBjaGlwKTsKIAlpZiAocmV0KSB7CkBAIC00NzQsMTUgKzQ3Miw3IEBAIHN0YXRpYyBpbnQgc3VueGlfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAljaGlwLT5ydGMtPm9wcyA9ICZzdW54aV9ydGNfb3BzOwogCi0JcmV0ID0gcnRjX3JlZ2lzdGVyX2RldmljZShjaGlwLT5ydGMpOwotCWlmIChyZXQpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAidW5hYmxlIHRvIHJlZ2lzdGVyIGRldmljZVxuIik7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JZGV2X2luZm8oJnBkZXYtPmRldiwgIlJUQyBlbmFibGVkXG4iKTsKLQotCXJldHVybiAwOworCXJldHVybiBydGNfcmVnaXN0ZXJfZGV2aWNlKGNoaXAtPnJ0Yyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHN1bnhpX3J0Y19kcml2ZXIgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtdGVncmEuYyBiL2RyaXZlcnMvcnRjL3J0Yy10ZWdyYS5jCmluZGV4IDhmYTFiM2YuLjY5ZDY5NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy10ZWdyYS5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy10ZWdyYS5jCkBAIC0yOTAsMTAgKzI5MCw4IEBAIHN0YXRpYyBpbnQgdGVncmFfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiBQVFJfRVJSKGluZm8tPmJhc2UpOwogCiAJcmV0ID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAocmV0IDw9IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBwbGF0Zm9ybSBJUlE6ICVkXG4iLCByZXQpOworCWlmIChyZXQgPD0gMCkKIAkJcmV0dXJuIHJldDsKLQl9CiAKIAlpbmZvLT5pcnEgPSByZXQ7CiAKQEAgLTMzNCwxMCArMzMyLDggQEAgc3RhdGljIGludCB0ZWdyYV9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAlyZXQgPSBydGNfcmVnaXN0ZXJfZGV2aWNlKGluZm8tPnJ0Yyk7Ci0JaWYgKHJldCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgZGV2aWNlOiAlZFxuIiwgcmV0KTsKKwlpZiAocmV0KQogCQlnb3RvIGRpc2FibGVfY2xrOwotCX0KIAogCWRldl9ub3RpY2UoJnBkZXYtPmRldiwgIlRlZ3JhIGludGVybmFsIFJlYWwgVGltZSBDbG9ja1xuIik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy10cHM2NTg2eC5jIGIvZHJpdmVycy9ydGMvcnRjLXRwczY1ODZ4LmMKaW5kZXggZDY0MzRlNS4uODU5ZDkwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXRwczY1ODZ4LmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXRwczY1ODZ4LmMKQEAgLTI1OSw3ICsyNTksNiBAQCBzdGF0aWMgaW50IHRwczY1ODZ4X3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXJ0Yy0+cnRjID0gZGV2bV9ydGNfYWxsb2NhdGVfZGV2aWNlKCZwZGV2LT5kZXYpOwogCWlmIChJU19FUlIocnRjLT5ydGMpKSB7CiAJCXJldCA9IFBUUl9FUlIocnRjLT5ydGMpOwotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJSVEMgYWxsb2NhdGUgZGV2aWNlOiByZXQgJWRcbiIsIHJldCk7CiAJCWdvdG8gZmFpbF9ydGNfcmVnaXN0ZXI7CiAJfQogCkBAIC0yODAsMTAgKzI3OSw4IEBAIHN0YXRpYyBpbnQgdHBzNjU4NnhfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZGlzYWJsZV9pcnEocnRjLT5pcnEpOwogCiAJcmV0ID0gcnRjX3JlZ2lzdGVyX2RldmljZShydGMtPnJ0Yyk7Ci0JaWYgKHJldCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJSVEMgZGV2aWNlIHJlZ2lzdGVyOiByZXQgJWRcbiIsIHJldCk7CisJaWYgKHJldCkKIAkJZ290byBmYWlsX3J0Y19yZWdpc3RlcjsKLQl9CiAKIAlyZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXRwczY1OTEwLmMgYi9kcml2ZXJzL3J0Yy9ydGMtdHBzNjU5MTAuYwppbmRleCA3MDc4ZjZkLi4yYzA0NjdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtdHBzNjU5MTAuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtdHBzNjU5MTAuYwpAQCAtNDI1LDEzICs0MjUsNyBAQCBzdGF0aWMgaW50IHRwczY1OTEwX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXRwc19ydGMtPnJ0Yy0+cmFuZ2VfbWluID0gUlRDX1RJTUVTVEFNUF9CRUdJTl8yMDAwOwogCXRwc19ydGMtPnJ0Yy0+cmFuZ2VfbWF4ID0gUlRDX1RJTUVTVEFNUF9FTkRfMjA5OTsKIAotCXJldCA9IHJ0Y19yZWdpc3Rlcl9kZXZpY2UodHBzX3J0Yy0+cnRjKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIlJUQyBkZXZpY2UgcmVnaXN0ZXI6IGVyciAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gcnRjX3JlZ2lzdGVyX2RldmljZSh0cHNfcnRjLT5ydGMpOwogfQogCiAjaWZkZWYgQ09ORklHX1BNX1NMRUVQCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtdnQ4NTAwLmMgYi9kcml2ZXJzL3J0Yy9ydGMtdnQ4NTAwLmMKaW5kZXggZjU5ZDIzMi4uZDVkMTRjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXZ0ODUwMC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy12dDg1MDAuYwpAQCAtMjEyLDEwICsyMTIsOCBAQCBzdGF0aWMgaW50IHZ0ODUwMF9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCB2dDg1MDBfcnRjKTsKIAogCXZ0ODUwMF9ydGMtPmlycV9hbGFybSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKHZ0ODUwMF9ydGMtPmlycV9hbGFybSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8gYWxhcm0gSVJRIHJlc291cmNlIGRlZmluZWRcbiIpOworCWlmICh2dDg1MDBfcnRjLT5pcnFfYWxhcm0gPCAwKQogCQlyZXR1cm4gdnQ4NTAwX3J0Yy0+aXJxX2FsYXJtOwotCX0KIAogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJdnQ4NTAwX3J0Yy0+cmVnYmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXhnZW5lLmMgYi9kcml2ZXJzL3J0Yy9ydGMteGdlbmUuYwppbmRleCA5ODg4MzgzLi45NjgzZmJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMteGdlbmUuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMteGdlbmUuYwpAQCAtMTU3LDEwICsxNTcsOCBAQCBzdGF0aWMgaW50IHhnZW5lX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gUFRSX0VSUihwZGF0YS0+cnRjKTsKIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8gSVJRIHJlc291cmNlXG4iKTsKKwlpZiAoaXJxIDwgMCkKIAkJcmV0dXJuIGlycTsKLQl9CiAJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBpcnEsIHhnZW5lX3J0Y19pbnRlcnJ1cHQsIDAsCiAJCQkgICAgICAgZGV2X25hbWUoJnBkZXYtPmRldiksIHBkYXRhKTsKIAlpZiAocmV0KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtenlucW1wLmMgYi9kcml2ZXJzL3J0Yy9ydGMtenlucW1wLmMKaW5kZXggMDA2Mzk1OS4uMmM3NjI3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXp5bnFtcC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy16eW5xbXAuYwpAQCAtMjE4LDEwICsyMTgsOCBAQCBzdGF0aWMgaW50IHhsbnhfcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiBQVFJfRVJSKHhydGNkZXYtPnJlZ19iYXNlKTsKIAogCXhydGNkZXYtPmFsYXJtX2lycSA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJhbGFybSIpOwotCWlmICh4cnRjZGV2LT5hbGFybV9pcnEgPCAwKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIGlycSByZXNvdXJjZVxuIik7CisJaWYgKHhydGNkZXYtPmFsYXJtX2lycSA8IDApCiAJCXJldHVybiB4cnRjZGV2LT5hbGFybV9pcnE7Ci0JfQogCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRldiwgeHJ0Y2Rldi0+YWxhcm1faXJxLAogCQkJICAgICAgIHhsbnhfcnRjX2ludGVycnVwdCwgMCwKIAkJCSAgICAgICBkZXZfbmFtZSgmcGRldi0+ZGV2KSwgeHJ0Y2Rldik7CkBAIC0yMzEsMTAgKzIyOSw4IEBAIHN0YXRpYyBpbnQgeGxueF9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAl4cnRjZGV2LT5zZWNfaXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgInNlYyIpOwotCWlmICh4cnRjZGV2LT5zZWNfaXJxIDwgMCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBpcnEgcmVzb3VyY2VcbiIpOworCWlmICh4cnRjZGV2LT5zZWNfaXJxIDwgMCkKIAkJcmV0dXJuIHhydGNkZXYtPnNlY19pcnE7Ci0JfQogCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRldiwgeHJ0Y2Rldi0+c2VjX2lycSwKIAkJCSAgICAgICB4bG54X3J0Y19pbnRlcnJ1cHQsIDAsCiAJCQkgICAgICAgZGV2X25hbWUoJnBkZXYtPmRldiksIHhydGNkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jY3dncm91cC5jIGIvZHJpdmVycy9zMzkwL2Npby9jY3dncm91cC5jCmluZGV4IDAwMDVlYzkuLmI0MmE5MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY2N3Z3JvdXAuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Njd2dyb3VwLmMKQEAgLTM3Miw3ICszNzIsNyBAQCBpbnQgY2N3Z3JvdXBfY3JlYXRlX2RldihzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsIHN0cnVjdCBjY3dncm91cF9kcml2ZXIgKmdkcnYsCiAJCWdvdG8gZXJyb3I7CiAJfQogCS8qIENoZWNrIGZvciB0cmFpbGluZyBzdHVmZi4gKi8KLQlpZiAoaSA9PSBudW1fZGV2aWNlcyAmJiBzdHJsZW4oYnVmKSA+IDApIHsKKwlpZiAoaSA9PSBudW1fZGV2aWNlcyAmJiBidWYgJiYgc3RybGVuKGJ1ZikgPiAwKSB7CiAJCXJjID0gLUVJTlZBTDsKIAkJZ290byBlcnJvcjsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5jIGIvZHJpdmVycy9zMzkwL2Npby9jc3MuYwppbmRleCAyMmM1NTgxLi4xZmJmYjBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY3NzLmMKQEAgLTEzODgsNiArMTM4OCw4IEBAIGRldmljZV9pbml0Y2FsbChjaW9fc2V0dGxlX2luaXQpOwogCiBpbnQgc2NoX2lzX3BzZXVkb19zY2goc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKIHsKKwlpZiAoIXNjaC0+ZGV2LnBhcmVudCkKKwkJcmV0dXJuIDA7CiAJcmV0dXJuIHNjaCA9PSB0b19jc3Moc2NoLT5kZXYucGFyZW50KS0+cHNldWRvX3N1YmNoYW5uZWw7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX29wcy5jIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfb3BzLmMKaW5kZXggZDcyMjQ1OC4uNjU4NDFhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfb3BzLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfb3BzLmMKQEAgLTEyNCw5ICsxMjQsNyBAQCBFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2VfaXNfbXVsdGlwYXRoKTsKIC8qKgogICogY2N3X2RldmljZV9jbGVhcigpIC0gdGVybWluYXRlIEkvTyByZXF1ZXN0IHByb2Nlc3NpbmcKICAqIEBjZGV2OiB0YXJnZXQgY2N3IGRldmljZQotICogQGludHBhcm06IGludGVycnVwdGlvbiBwYXJhbWV0ZXI7IHZhbHVlIGlzIG9ubHkgdXNlZCBpZiBubyBJL08gaXMKLSAqCSAgICAgb3V0c3RhbmRpbmcsIG90aGVyd2lzZSB0aGUgaW50cGFybSBhc3NvY2lhdGVkIHdpdGggdGhlIEkvTyByZXF1ZXN0Ci0gKgkgICAgIGlzIHJldHVybmVkCisgKiBAaW50cGFybTogaW50ZXJydXB0aW9uIHBhcmFtZXRlciB0byBiZSByZXR1cm5lZCB1cG9uIGNvbmNsdXNpb24gb2YgY3NjaAogICoKICAqIGNjd19kZXZpY2VfY2xlYXIoKSBjYWxscyBjc2NoIG9uIEBjZGV2J3Mgc3ViY2hhbm5lbC4KICAqIFJldHVybnM6CkBAIC0xNzksNiArMTc3LDkgQEAgaW50IGNjd19kZXZpY2VfY2xlYXIoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHVuc2lnbmVkIGxvbmcgaW50cGFybSkKICAqIGNvbXBsZXRlZCBkdXJpbmcgdGhlIHRpbWUgc3BlY2lmaWVkIGJ5IEBleHBpcmVzLiBJZiBhIHRpbWVvdXQgb2NjdXJzLCB0aGUKICAqIGNoYW5uZWwgcHJvZ3JhbSBpcyB0ZXJtaW5hdGVkIHZpYSB4c2NoLCBoc2NoIG9yIGNzY2gsIGFuZCB0aGUgZGV2aWNlJ3MKICAqIGludGVycnVwdCBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkIHdpdGggYW4gaXJiIGNvbnRhaW5pbmcgRVJSX1BUUigtJUVUSU1FRE9VVCkuCisgKiBUaGUgaW50ZXJydXB0aW9uIGhhbmRsZXIgd2lsbCBlY2hvIGJhY2sgdGhlIEBpbnRwYXJtIHNwZWNpZmllZCBoZXJlLCB1bmxlc3MKKyAqIGFub3RoZXIgaW50ZXJydXB0aW9uIHBhcmFtZXRlciBpcyBzcGVjaWZpZWQgYnkgYSBzdWJzZXF1ZW50IGludm9jYXRpb24gb2YKKyAqIGNjd19kZXZpY2VfaGFsdCgpIG9yIGNjd19kZXZpY2VfY2xlYXIoKS4KICAqIFJldHVybnM6CiAgKiAgJTAsIGlmIHRoZSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWw7CiAgKiAgLSVFQlVTWSwgaWYgdGhlIGRldmljZSBpcyBidXN5LCBvciBzdGF0dXMgcGVuZGluZzsKQEAgLTI1Niw2ICsyNTcsOSBAQCBpbnQgY2N3X2RldmljZV9zdGFydF90aW1lb3V0X2tleShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IGNjdzEgKmNwYSwKICAqIFN0YXJ0IGEgUy8zOTAgY2hhbm5lbCBwcm9ncmFtLiBXaGVuIHRoZSBpbnRlcnJ1cHQgYXJyaXZlcywgdGhlCiAgKiBJUlEgaGFuZGxlciBpcyBjYWxsZWQsIGVpdGhlciBpbW1lZGlhdGVseSwgZGVsYXllZCAoZGV2LWVuZCBtaXNzaW5nLAogICogb3Igc2Vuc2UgcmVxdWlyZWQpIG9yIG5ldmVyIChubyBJUlEgaGFuZGxlciByZWdpc3RlcmVkKS4KKyAqIFRoZSBpbnRlcnJ1cHRpb24gaGFuZGxlciB3aWxsIGVjaG8gYmFjayB0aGUgQGludHBhcm0gc3BlY2lmaWVkIGhlcmUsIHVubGVzcworICogYW5vdGhlciBpbnRlcnJ1cHRpb24gcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBieSBhIHN1YnNlcXVlbnQgaW52b2NhdGlvbiBvZgorICogY2N3X2RldmljZV9oYWx0KCkgb3IgY2N3X2RldmljZV9jbGVhcigpLgogICogUmV0dXJuczoKICAqICAlMCwgaWYgdGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bDsKICAqICAtJUVCVVNZLCBpZiB0aGUgZGV2aWNlIGlzIGJ1c3ksIG9yIHN0YXR1cyBwZW5kaW5nOwpAQCAtMjg3LDYgKzI5MSw5IEBAIGludCBjY3dfZGV2aWNlX3N0YXJ0X2tleShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IGNjdzEgKmNwYSwKICAqIFN0YXJ0IGEgUy8zOTAgY2hhbm5lbCBwcm9ncmFtLiBXaGVuIHRoZSBpbnRlcnJ1cHQgYXJyaXZlcywgdGhlCiAgKiBJUlEgaGFuZGxlciBpcyBjYWxsZWQsIGVpdGhlciBpbW1lZGlhdGVseSwgZGVsYXllZCAoZGV2LWVuZCBtaXNzaW5nLAogICogb3Igc2Vuc2UgcmVxdWlyZWQpIG9yIG5ldmVyIChubyBJUlEgaGFuZGxlciByZWdpc3RlcmVkKS4KKyAqIFRoZSBpbnRlcnJ1cHRpb24gaGFuZGxlciB3aWxsIGVjaG8gYmFjayB0aGUgQGludHBhcm0gc3BlY2lmaWVkIGhlcmUsIHVubGVzcworICogYW5vdGhlciBpbnRlcnJ1cHRpb24gcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBieSBhIHN1YnNlcXVlbnQgaW52b2NhdGlvbiBvZgorICogY2N3X2RldmljZV9oYWx0KCkgb3IgY2N3X2RldmljZV9jbGVhcigpLgogICogUmV0dXJuczoKICAqICAlMCwgaWYgdGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bDsKICAqICAtJUVCVVNZLCBpZiB0aGUgZGV2aWNlIGlzIGJ1c3ksIG9yIHN0YXR1cyBwZW5kaW5nOwpAQCAtMzIyLDYgKzMyOSw5IEBAIGludCBjY3dfZGV2aWNlX3N0YXJ0KHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBzdHJ1Y3QgY2N3MSAqY3BhLAogICogY29tcGxldGVkIGR1cmluZyB0aGUgdGltZSBzcGVjaWZpZWQgYnkgQGV4cGlyZXMuIElmIGEgdGltZW91dCBvY2N1cnMsIHRoZQogICogY2hhbm5lbCBwcm9ncmFtIGlzIHRlcm1pbmF0ZWQgdmlhIHhzY2gsIGhzY2ggb3IgY3NjaCwgYW5kIHRoZSBkZXZpY2UncwogICogaW50ZXJydXB0IGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQgd2l0aCBhbiBpcmIgY29udGFpbmluZyBFUlJfUFRSKC0lRVRJTUVET1VUKS4KKyAqIFRoZSBpbnRlcnJ1cHRpb24gaGFuZGxlciB3aWxsIGVjaG8gYmFjayB0aGUgQGludHBhcm0gc3BlY2lmaWVkIGhlcmUsIHVubGVzcworICogYW5vdGhlciBpbnRlcnJ1cHRpb24gcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBieSBhIHN1YnNlcXVlbnQgaW52b2NhdGlvbiBvZgorICogY2N3X2RldmljZV9oYWx0KCkgb3IgY2N3X2RldmljZV9jbGVhcigpLgogICogUmV0dXJuczoKICAqICAlMCwgaWYgdGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bDsKICAqICAtJUVCVVNZLCBpZiB0aGUgZGV2aWNlIGlzIGJ1c3ksIG9yIHN0YXR1cyBwZW5kaW5nOwpAQCAtMzQzLDExICszNTMsMTIgQEAgaW50IGNjd19kZXZpY2Vfc3RhcnRfdGltZW91dChzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IGNjdzEgKmNwYSwKIC8qKgogICogY2N3X2RldmljZV9oYWx0KCkgLSBoYWx0IEkvTyByZXF1ZXN0IHByb2Nlc3NpbmcKICAqIEBjZGV2OiB0YXJnZXQgY2N3IGRldmljZQotICogQGludHBhcm06IGludGVycnVwdGlvbiBwYXJhbWV0ZXI7IHZhbHVlIGlzIG9ubHkgdXNlZCBpZiBubyBJL08gaXMKLSAqCSAgICAgb3V0c3RhbmRpbmcsIG90aGVyd2lzZSB0aGUgaW50cGFybSBhc3NvY2lhdGVkIHdpdGggdGhlIEkvTyByZXF1ZXN0Ci0gKgkgICAgIGlzIHJldHVybmVkCisgKiBAaW50cGFybTogaW50ZXJydXB0aW9uIHBhcmFtZXRlciB0byBiZSByZXR1cm5lZCB1cG9uIGNvbmNsdXNpb24gb2YgaHNjaAogICoKICAqIGNjd19kZXZpY2VfaGFsdCgpIGNhbGxzIGhzY2ggb24gQGNkZXYncyBzdWJjaGFubmVsLgorICogVGhlIGludGVycnVwdGlvbiBoYW5kbGVyIHdpbGwgZWNobyBiYWNrIHRoZSBAaW50cGFybSBzcGVjaWZpZWQgaGVyZSwgdW5sZXNzCisgKiBhbm90aGVyIGludGVycnVwdGlvbiBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGJ5IGEgc3Vic2VxdWVudCBpbnZvY2F0aW9uIG9mCisgKiBjY3dfZGV2aWNlX2NsZWFyKCkuCiAgKiBSZXR1cm5zOgogICogICUwIG9uIHN1Y2Nlc3MsCiAgKiAgLSVFTk9ERVYgb24gZGV2aWNlIG5vdCBvcGVyYXRpb25hbCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmMgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5jCmluZGV4IGE3NmI4YTguLmExOTE1MDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by9hcF9idXMuYwpAQCAtMTMyMiwyNCArMTMyMiwyNCBAQCBzdGF0aWMgaW50IGFwX2dldF9jb21wYXRpYmxlX3R5cGUoYXBfcWlkX3QgcWlkLCBpbnQgcmF3dHlwZSwgdW5zaWduZWQgaW50IGZ1bmMpCiAJLyogPCBDRVgyQSBpcyBub3Qgc3VwcG9ydGVkICovCiAJaWYgKHJhd3R5cGUgPCBBUF9ERVZJQ0VfVFlQRV9DRVgyQSkKIAkJcmV0dXJuIDA7Ci0JLyogdXAgdG8gQ0VYNiBrbm93biBhbmQgZnVsbHkgc3VwcG9ydGVkICovCi0JaWYgKHJhd3R5cGUgPD0gQVBfREVWSUNFX1RZUEVfQ0VYNikKKwkvKiB1cCB0byBDRVg3IGtub3duIGFuZCBmdWxseSBzdXBwb3J0ZWQgKi8KKwlpZiAocmF3dHlwZSA8PSBBUF9ERVZJQ0VfVFlQRV9DRVg3KQogCQlyZXR1cm4gcmF3dHlwZTsKIAkvKgotCSAqIHVua25vd24gbmV3IHR5cGUgPiBDRVg2LCBjaGVjayBmb3IgY29tcGF0aWJpbGl0eQorCSAqIHVua25vd24gbmV3IHR5cGUgPiBDRVg3LCBjaGVjayBmb3IgY29tcGF0aWJpbGl0eQogCSAqIHRvIHRoZSBoaWdoZXN0IGtub3duIGFuZCBzdXBwb3J0ZWQgdHlwZSB3aGljaCBpcwotCSAqIGN1cnJlbnRseSBDRVg2IHdpdGggdGhlIGhlbHAgb2YgdGhlIFFBQ1QgZnVuY3Rpb24uCisJICogY3VycmVudGx5IENFWDcgd2l0aCB0aGUgaGVscCBvZiB0aGUgUUFDVCBmdW5jdGlvbi4KIAkgKi8KIAlpZiAoYXBfcWFjdF9hdmFpbGFibGUoKSkgewogCQlzdHJ1Y3QgYXBfcXVldWVfc3RhdHVzIHN0YXR1czsKIAkJdW5pb24gYXBfcWFjdF9hcF9pbmZvIGFwaW5mbyA9IHswfTsKIAogCQlhcGluZm8ubW9kZSA9IChmdW5jID4+IDI2KSAmIDB4MDc7Ci0JCWFwaW5mby5jYXQgPSBBUF9ERVZJQ0VfVFlQRV9DRVg2OworCQlhcGluZm8uY2F0ID0gQVBfREVWSUNFX1RZUEVfQ0VYNzsKIAkJc3RhdHVzID0gYXBfcWFjdChxaWQsIDAsICZhcGluZm8pOwogCQlpZiAoc3RhdHVzLnJlc3BvbnNlX2NvZGUgPT0gQVBfUkVTUE9OU0VfTk9STUFMCiAJCSAgICAmJiBhcGluZm8uY2F0ID49IEFQX0RFVklDRV9UWVBFX0NFWDJBCi0JCSAgICAmJiBhcGluZm8uY2F0IDw9IEFQX0RFVklDRV9UWVBFX0NFWDYpCisJCSAgICAmJiBhcGluZm8uY2F0IDw9IEFQX0RFVklDRV9UWVBFX0NFWDcpCiAJCQljb21wX3R5cGUgPSBhcGluZm8uY2F0OwogCX0KIAlpZiAoIWNvbXBfdHlwZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmggYi9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5oCmluZGV4IDZmM2NmMzcuLjQzM2I3YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmgKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by9hcF9idXMuaApAQCAtMSw2ICsxLDYgQEAKIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqLwogLyoKLSAqIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwNiwgMjAxMgorICogQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA2LCAyMDE5CiAgKiBBdXRob3Iocyk6IENvcm5lbGlhIEh1Y2sgPGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbT4KICAqCSAgICAgIE1hcnRpbiBTY2h3aWRlZnNreSA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KICAqCSAgICAgIFJhbHBoIFd1ZXJ0aG5lciA8cnd1ZXJ0aG5AZGUuaWJtLmNvbT4KQEAgLTYzLDYgKzYzLDcgQEAgc3RhdGljIGlubGluZSBpbnQgYXBfdGVzdF9iaXQodW5zaWduZWQgaW50ICpwdHIsIHVuc2lnbmVkIGludCBucikKICNkZWZpbmUgQVBfREVWSUNFX1RZUEVfQ0VYNAkxMAogI2RlZmluZSBBUF9ERVZJQ0VfVFlQRV9DRVg1CTExCiAjZGVmaW5lIEFQX0RFVklDRV9UWVBFX0NFWDYJMTIKKyNkZWZpbmUgQVBfREVWSUNFX1RZUEVfQ0VYNwkxMwogCiAvKgogICogS25vd24gZnVuY3Rpb24gZmFjaWxpdGllcwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by9wa2V5X2FwaS5jIGIvZHJpdmVycy9zMzkwL2NyeXB0by9wa2V5X2FwaS5jCmluZGV4IGY3NmExZDAuLjlkZTNkNDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vcGtleV9hcGkuYworKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3BrZXlfYXBpLmMKQEAgLTEzNjMsOSArMTM2MywxMjIgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgY2NhZGF0YV9hdHRyX2dyb3VwID0gewogCS5iaW5fYXR0cnMgPSBjY2FkYXRhX2F0dHJzLAogfTsKIAorI2RlZmluZSBDQ0FDSVBIRVJUT0tFTlNJWkUJKHNpemVvZihzdHJ1Y3QgY2lwaGVya2V5dG9rZW4pICsgODApCisKKy8qCisgKiBTeXNmcyBhdHRyaWJ1dGUgcmVhZCBmdW5jdGlvbiBmb3IgYWxsIHNlY3VyZSBrZXkgY2NhY2lwaGVyIGJpbmFyeSBhdHRyaWJ1dGVzLgorICogVGhlIGltcGxlbWVudGF0aW9uIGNhbiBub3QgZGVhbCB3aXRoIHBhcnRpYWwgcmVhZHMsIGJlY2F1c2UgYSBuZXcgcmFuZG9tCisgKiBzZWN1cmUga2V5IGJsb2IgaXMgZ2VuZXJhdGVkIHdpdGggZWFjaCByZWFkLiBJbiBjYXNlIG9mIHBhcnRpYWwgcmVhZHMKKyAqIChpLmUuIG9mZiAhPSAwIG9yIGNvdW50IDwga2V5IGJsb2Igc2l6ZSkgLUVJTlZBTCBpcyByZXR1cm5lZC4KKyAqLworc3RhdGljIHNzaXplX3QgcGtleV9jY2FjaXBoZXJfYWVzX2F0dHJfcmVhZChlbnVtIHBrZXlfa2V5X3NpemUga2V5Yml0cywKKwkJCQkJICAgIGJvb2wgaXNfeHRzLCBjaGFyICpidWYsIGxvZmZfdCBvZmYsCisJCQkJCSAgICBzaXplX3QgY291bnQpCit7CisJc2l6ZV90IGtleXNpemU7CisJaW50IHJjOworCisJaWYgKG9mZiAhPSAwIHx8IGNvdW50IDwgQ0NBQ0lQSEVSVE9LRU5TSVpFKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoaXNfeHRzKQorCQlpZiAoY291bnQgPCAyICogQ0NBQ0lQSEVSVE9LRU5TSVpFKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwlrZXlzaXplID0gQ0NBQ0lQSEVSVE9LRU5TSVpFOworCXJjID0gY2NhX2dlbmNpcGhlcmtleSgtMSwgLTEsIGtleWJpdHMsIDAsIGJ1ZiwgJmtleXNpemUpOworCWlmIChyYykKKwkJcmV0dXJuIHJjOworCW1lbXNldChidWYgKyBrZXlzaXplLCAwLCBDQ0FDSVBIRVJUT0tFTlNJWkUgLSBrZXlzaXplKTsKKworCWlmIChpc194dHMpIHsKKwkJa2V5c2l6ZSA9IENDQUNJUEhFUlRPS0VOU0laRTsKKwkJcmMgPSBjY2FfZ2VuY2lwaGVya2V5KC0xLCAtMSwga2V5Yml0cywgMCwKKwkJCQkgICAgICBidWYgKyBDQ0FDSVBIRVJUT0tFTlNJWkUsICZrZXlzaXplKTsKKwkJaWYgKHJjKQorCQkJcmV0dXJuIHJjOworCQltZW1zZXQoYnVmICsgQ0NBQ0lQSEVSVE9LRU5TSVpFICsga2V5c2l6ZSwgMCwKKwkJICAgICAgIENDQUNJUEhFUlRPS0VOU0laRSAtIGtleXNpemUpOworCisJCXJldHVybiAyICogQ0NBQ0lQSEVSVE9LRU5TSVpFOworCX0KKworCXJldHVybiBDQ0FDSVBIRVJUT0tFTlNJWkU7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGNjYWNpcGhlcl9hZXNfMTI4X3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsCisJCQkJICAgICAgc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICAgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgICAgY2hhciAqYnVmLCBsb2ZmX3Qgb2ZmLAorCQkJCSAgICAgIHNpemVfdCBjb3VudCkKK3sKKwlyZXR1cm4gcGtleV9jY2FjaXBoZXJfYWVzX2F0dHJfcmVhZChQS0VZX1NJWkVfQUVTXzEyOCwgZmFsc2UsIGJ1ZiwKKwkJCQkJICAgIG9mZiwgY291bnQpOworfQorCitzdGF0aWMgc3NpemVfdCBjY2FjaXBoZXJfYWVzXzE5Ml9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLAorCQkJCSAgICAgIHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCSAgICAgIHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLAorCQkJCSAgICAgIGNoYXIgKmJ1ZiwgbG9mZl90IG9mZiwKKwkJCQkgICAgICBzaXplX3QgY291bnQpCit7CisJcmV0dXJuIHBrZXlfY2NhY2lwaGVyX2Flc19hdHRyX3JlYWQoUEtFWV9TSVpFX0FFU18xOTIsIGZhbHNlLCBidWYsCisJCQkJCSAgICBvZmYsIGNvdW50KTsKK30KKworc3RhdGljIHNzaXplX3QgY2NhY2lwaGVyX2Flc18yNTZfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJCQkgICAgICBzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkgICAgICBjaGFyICpidWYsIGxvZmZfdCBvZmYsCisJCQkJICAgICAgc2l6ZV90IGNvdW50KQoreworCXJldHVybiBwa2V5X2NjYWNpcGhlcl9hZXNfYXR0cl9yZWFkKFBLRVlfU0laRV9BRVNfMjU2LCBmYWxzZSwgYnVmLAorCQkJCQkgICAgb2ZmLCBjb3VudCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGNjYWNpcGhlcl9hZXNfMTI4X3h0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxwLAorCQkJCQkgIHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCQkgIHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLAorCQkJCQkgIGNoYXIgKmJ1ZiwgbG9mZl90IG9mZiwKKwkJCQkJICBzaXplX3QgY291bnQpCit7CisJcmV0dXJuIHBrZXlfY2NhY2lwaGVyX2Flc19hdHRyX3JlYWQoUEtFWV9TSVpFX0FFU18xMjgsIHRydWUsIGJ1ZiwKKwkJCQkJICAgIG9mZiwgY291bnQpOworfQorCitzdGF0aWMgc3NpemVfdCBjY2FjaXBoZXJfYWVzXzI1Nl94dHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJCQkJICBzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkJICBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkJICBjaGFyICpidWYsIGxvZmZfdCBvZmYsCisJCQkJCSAgc2l6ZV90IGNvdW50KQoreworCXJldHVybiBwa2V5X2NjYWNpcGhlcl9hZXNfYXR0cl9yZWFkKFBLRVlfU0laRV9BRVNfMjU2LCB0cnVlLCBidWYsCisJCQkJCSAgICBvZmYsIGNvdW50KTsKK30KKworc3RhdGljIEJJTl9BVFRSX1JPKGNjYWNpcGhlcl9hZXNfMTI4LCBDQ0FDSVBIRVJUT0tFTlNJWkUpOworc3RhdGljIEJJTl9BVFRSX1JPKGNjYWNpcGhlcl9hZXNfMTkyLCBDQ0FDSVBIRVJUT0tFTlNJWkUpOworc3RhdGljIEJJTl9BVFRSX1JPKGNjYWNpcGhlcl9hZXNfMjU2LCBDQ0FDSVBIRVJUT0tFTlNJWkUpOworc3RhdGljIEJJTl9BVFRSX1JPKGNjYWNpcGhlcl9hZXNfMTI4X3h0cywgMiAqIENDQUNJUEhFUlRPS0VOU0laRSk7CitzdGF0aWMgQklOX0FUVFJfUk8oY2NhY2lwaGVyX2Flc18yNTZfeHRzLCAyICogQ0NBQ0lQSEVSVE9LRU5TSVpFKTsKKworc3RhdGljIHN0cnVjdCBiaW5fYXR0cmlidXRlICpjY2FjaXBoZXJfYXR0cnNbXSA9IHsKKwkmYmluX2F0dHJfY2NhY2lwaGVyX2Flc18xMjgsCisJJmJpbl9hdHRyX2NjYWNpcGhlcl9hZXNfMTkyLAorCSZiaW5fYXR0cl9jY2FjaXBoZXJfYWVzXzI1NiwKKwkmYmluX2F0dHJfY2NhY2lwaGVyX2Flc18xMjhfeHRzLAorCSZiaW5fYXR0cl9jY2FjaXBoZXJfYWVzXzI1Nl94dHMsCisJTlVMTAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgY2NhY2lwaGVyX2F0dHJfZ3JvdXAgPSB7CisJLm5hbWUJICAgPSAiY2NhY2lwaGVyIiwKKwkuYmluX2F0dHJzID0gY2NhY2lwaGVyX2F0dHJzLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnBrZXlfYXR0cl9ncm91cHNbXSA9IHsKIAkmcHJvdGtleV9hdHRyX2dyb3VwLAogCSZjY2FkYXRhX2F0dHJfZ3JvdXAsCisJJmNjYWNpcGhlcl9hdHRyX2dyb3VwLAogCU5VTEwsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3ZmaW9fYXBfZHJ2LmMgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3ZmaW9fYXBfZHJ2LmMKaW5kZXggMDAzNjYyYS4uYmUyNTIwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX2Rydi5jCisrKyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9kcnYuYwpAQCAtMzYsNiArMzYsOCBAQCBzdGF0aWMgc3RydWN0IGFwX2RldmljZV9pZCBhcF9xdWV1ZV9pZHNbXSA9IHsKIAkgIC5tYXRjaF9mbGFncyA9IEFQX0RFVklDRV9JRF9NQVRDSF9RVUVVRV9UWVBFIH0sCiAJeyAuZGV2X3R5cGUgPSBBUF9ERVZJQ0VfVFlQRV9DRVg2LAogCSAgLm1hdGNoX2ZsYWdzID0gQVBfREVWSUNFX0lEX01BVENIX1FVRVVFX1RZUEUgfSwKKwl7IC5kZXZfdHlwZSA9IEFQX0RFVklDRV9UWVBFX0NFWDcsCisJICAubWF0Y2hfZmxhZ3MgPSBBUF9ERVZJQ0VfSURfTUFUQ0hfUVVFVUVfVFlQRSB9LAogCXsgLyogZW5kIG9mIHNpYmxpbmcgKi8gfSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5oIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfYXBpLmgKaW5kZXggMmQzZjI3My4uZDQ2NDYxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfYXBpLmgKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfYXBpLmgKQEAgLTEsNiArMSw2IEBACiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsgKi8KIC8qCi0gKiAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDAxLCAyMDE4CisgKiAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDAxLCAyMDE5CiAgKiAgQXV0aG9yKHMpOiBSb2JlcnQgQnVycm91Z2hzCiAgKgkgICAgICAgRXJpYyBSb3NzbWFuIChlZHJvc3NtYUB1cy5pYm0uY29tKQogICoJICAgICAgIENvcm5lbGlhIEh1Y2sgPGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbT4KQEAgLTI5LDYgKzI5LDcgQEAKICNkZWZpbmUgWkNSWVBUX0NFWDQJICAgICAgIDEwCiAjZGVmaW5lIFpDUllQVF9DRVg1CSAgICAgICAxMQogI2RlZmluZSBaQ1JZUFRfQ0VYNgkgICAgICAgMTIKKyNkZWZpbmUgWkNSWVBUX0NFWDcJICAgICAgIDEzCiAKIC8qKgogICogTGFyZ2UgcmFuZG9tIG51bWJlcnMgYXJlIHB1bGxlZCBpbiA0MDk2IGJ5dGUgY2h1bmtzIGZyb20gdGhlIGNyeXB0byBjYXJkcwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfY2V4NC5jIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfY2V4NC5jCmluZGV4IGY1OGQ4ZGUuLjQ0MmUzZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2NleDQuYworKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9jZXg0LmMKQEAgLTEsNiArMSw2IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogLyoKLSAqICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTIKKyAqICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTIsIDIwMTkKICAqICBBdXRob3Iocyk6IEhvbGdlciBEZW5nbGVyIDxoZEBsaW51eC52bmV0LmlibS5jb20+CiAgKi8KIApAQCAtMzgsOCArMzgsOCBAQAogI2RlZmluZSBDRVg0X0NMRUFOVVBfVElNRQkoOTAwKkhaKQogCiBNT0RVTEVfQVVUSE9SKCJJQk0gQ29ycG9yYXRpb24iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiQ0VYNC9DRVg1L0NFWDYgQ3J5cHRvZ3JhcGhpYyBDYXJkIGRldmljZSBkcml2ZXIsICIgXAotCQkgICAiQ29weXJpZ2h0IElCTSBDb3JwLiAyMDE4Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkNFWDQvQ0VYNS9DRVg2L0NFWDcgQ3J5cHRvZ3JhcGhpYyBDYXJkIGRldmljZSBkcml2ZXIsICIgXAorCQkgICAiQ29weXJpZ2h0IElCTSBDb3JwLiAyMDE5Iik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiAKIHN0YXRpYyBzdHJ1Y3QgYXBfZGV2aWNlX2lkIHpjcnlwdF9jZXg0X2NhcmRfaWRzW10gPSB7CkBAIC00OSw2ICs0OSw4IEBAIHN0YXRpYyBzdHJ1Y3QgYXBfZGV2aWNlX2lkIHpjcnlwdF9jZXg0X2NhcmRfaWRzW10gPSB7CiAJICAubWF0Y2hfZmxhZ3MgPSBBUF9ERVZJQ0VfSURfTUFUQ0hfQ0FSRF9UWVBFIH0sCiAJeyAuZGV2X3R5cGUgPSBBUF9ERVZJQ0VfVFlQRV9DRVg2LAogCSAgLm1hdGNoX2ZsYWdzID0gQVBfREVWSUNFX0lEX01BVENIX0NBUkRfVFlQRSB9LAorCXsgLmRldl90eXBlID0gQVBfREVWSUNFX1RZUEVfQ0VYNywKKwkgIC5tYXRjaF9mbGFncyA9IEFQX0RFVklDRV9JRF9NQVRDSF9DQVJEX1RZUEUgfSwKIAl7IC8qIGVuZCBvZiBsaXN0ICovIH0sCiB9OwogCkBAIC02MSw2ICs2Myw4IEBAIHN0YXRpYyBzdHJ1Y3QgYXBfZGV2aWNlX2lkIHpjcnlwdF9jZXg0X3F1ZXVlX2lkc1tdID0gewogCSAgLm1hdGNoX2ZsYWdzID0gQVBfREVWSUNFX0lEX01BVENIX1FVRVVFX1RZUEUgfSwKIAl7IC5kZXZfdHlwZSA9IEFQX0RFVklDRV9UWVBFX0NFWDYsCiAJICAubWF0Y2hfZmxhZ3MgPSBBUF9ERVZJQ0VfSURfTUFUQ0hfUVVFVUVfVFlQRSB9LAorCXsgLmRldl90eXBlID0gQVBfREVWSUNFX1RZUEVfQ0VYNywKKwkgIC5tYXRjaF9mbGFncyA9IEFQX0RFVklDRV9JRF9NQVRDSF9RVUVVRV9UWVBFIH0sCiAJeyAvKiBlbmQgb2YgbGlzdCAqLyB9LAogfTsKIApAQCAtMTQ2LDcgKzE1MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGNjYV9xdWV1ZV9hdHRyX2dyb3VwID0gewogfTsKIAogLyoqCi0gKiBQcm9iZSBmdW5jdGlvbiBmb3IgQ0VYNC9DRVg1L0NFWDYgY2FyZCBkZXZpY2UuIEl0IGFsd2F5cworICogUHJvYmUgZnVuY3Rpb24gZm9yIENFWDQvQ0VYNS9DRVg2L0NFWDcgY2FyZCBkZXZpY2UuIEl0IGFsd2F5cwogICogYWNjZXB0cyB0aGUgQVAgZGV2aWNlIHNpbmNlIHRoZSBidXNfbWF0Y2ggYWxyZWFkeSBjaGVja2VkCiAgKiB0aGUgaGFyZHdhcmUgdHlwZS4KICAqIEBhcF9kZXY6IHBvaW50ZXIgdG8gdGhlIEFQIGRldmljZS4KQEAgLTE1OCwyNSArMTYyLDMxIEBAIHN0YXRpYyBpbnQgemNyeXB0X2NleDRfY2FyZF9wcm9iZShzdHJ1Y3QgYXBfZGV2aWNlICphcF9kZXYpCiAJICogTUVYXzFrLCBNRVhfMmssIE1FWF80aywgQ1JUXzFrLCBDUlRfMmssIENSVF80aywgUk5HLCBTRUNLRVkKIAkgKi8KIAlzdGF0aWMgY29uc3QgaW50IENFWDRBX1NQRUVEX0lEWFtdID0gewotCQkgMTQsIDE5LCAyNDksIDQyLCAyMjgsIDE0NTgsIDAsIDB9OworCQkgMTQsICAxOSwgMjQ5LCA0MiwgMjI4LCAxNDU4LCAwLCAwfTsKIAlzdGF0aWMgY29uc3QgaW50IENFWDVBX1NQRUVEX0lEWFtdID0gewotCQkgIDgsICA5LCAgMjAsIDE4LCAgNjYsCTQ1OCwgMCwgMH07CisJCSAgOCwgICA5LCAgMjAsIDE4LCAgNjYsCSA0NTgsIDAsIDB9OwogCXN0YXRpYyBjb25zdCBpbnQgQ0VYNkFfU1BFRURfSURYW10gPSB7Ci0JCSAgNiwgIDksICAyMCwgMTcsICA2NSwJNDM4LCAwLCAwfTsKKwkJICA2LCAgIDksICAyMCwgMTcsICA2NSwJIDQzOCwgMCwgMH07CisJc3RhdGljIGNvbnN0IGludCBDRVg3QV9TUEVFRF9JRFhbXSA9IHsKKwkJICA2LCAgIDgsICAxNywgMTUsICA1NCwJIDM2MiwgMCwgMH07CiAKIAlzdGF0aWMgY29uc3QgaW50IENFWDRDX1NQRUVEX0lEWFtdID0gewogCQkgNTksICA2OSwgMzA4LCA4MywgMjc4LCAyMjA0LCAyMDksIDQwfTsKIAlzdGF0aWMgY29uc3QgaW50IENFWDVDX1NQRUVEX0lEWFtdID0gewotCQkgMjQsICAzMSwgIDUwLCAzNywgIDkwLCAgNDc5LCAgMjcsIDEwfTsKKwkJIDI0LCAgMzEsICA1MCwgMzcsICA5MCwJIDQ3OSwgIDI3LCAxMH07CiAJc3RhdGljIGNvbnN0IGludCBDRVg2Q19TUEVFRF9JRFhbXSA9IHsKLQkJIDE2LCAgMjAsICAzMiwgMjcsICA3NywgIDQ1NSwgIDIzLCAgOX07CisJCSAxNiwgIDIwLCAgMzIsIDI3LCAgNzcsCSA0NTUsICAyNCwgIDl9OworCXN0YXRpYyBjb25zdCBpbnQgQ0VYN0NfU1BFRURfSURYW10gPSB7CisJCSAxNCwgIDE2LCAgMjYsIDIzLCAgNjQsCSAzNzYsICAyMywgIDh9OwogCiAJc3RhdGljIGNvbnN0IGludCBDRVg0UF9TUEVFRF9JRFhbXSA9IHsKLQkJMjI0LCAzMTMsIDM1NjAsIDM1OSwgNjA1LCAyODI3LCAwLCA1MH07CisJCSAgMCwgICAwLCAgIDAsCSAwLCAgIDAsICAgMCwJMCwgIDUwfTsKIAlzdGF0aWMgY29uc3QgaW50IENFWDVQX1NQRUVEX0lEWFtdID0gewotCQkgNjMsICA4NCwgIDE1NiwgIDgzLCAxNDIsICA1MzMsIDAsIDEwfTsKKwkJICAwLCAgIDAsICAgMCwJIDAsICAgMCwgICAwLAkwLCAgMTB9OwogCXN0YXRpYyBjb25zdCBpbnQgQ0VYNlBfU1BFRURfSURYW10gPSB7Ci0JCSA1NSwgIDcwLCAgMTIxLCAgNzMsIDEyOSwgIDUyMiwgMCwgIDl9OworCQkgIDAsICAgMCwgICAwLAkgMCwgICAwLCAgIDAsCTAsICAgOX07CisJc3RhdGljIGNvbnN0IGludCBDRVg3UF9TUEVFRF9JRFhbXSA9IHsKKwkJICAwLCAgIDAsICAgMCwJIDAsICAgMCwgICAwLAkwLCAgIDh9OwogCiAJc3RydWN0IGFwX2NhcmQgKmFjID0gdG9fYXBfY2FyZCgmYXBfZGV2LT5kZXZpY2UpOwogCXN0cnVjdCB6Y3J5cHRfY2FyZCAqemM7CkBAIC0xOTgsMTEgKzIwOCwxOSBAQCBzdGF0aWMgaW50IHpjcnlwdF9jZXg0X2NhcmRfcHJvYmUoc3RydWN0IGFwX2RldmljZSAqYXBfZGV2KQogCQkJemMtPnVzZXJfc3BhY2VfdHlwZSA9IFpDUllQVF9DRVg1OwogCQkJbWVtY3B5KHpjLT5zcGVlZF9yYXRpbmcsIENFWDVBX1NQRUVEX0lEWCwKIAkJCSAgICAgICBzaXplb2YoQ0VYNUFfU1BFRURfSURYKSk7Ci0JCX0gZWxzZSB7CisJCX0gZWxzZSBpZiAoYWMtPmFwX2Rldi5kZXZpY2VfdHlwZSA9PSBBUF9ERVZJQ0VfVFlQRV9DRVg2KSB7CiAJCQl6Yy0+dHlwZV9zdHJpbmcgPSAiQ0VYNkEiOwogCQkJemMtPnVzZXJfc3BhY2VfdHlwZSA9IFpDUllQVF9DRVg2OwogCQkJbWVtY3B5KHpjLT5zcGVlZF9yYXRpbmcsIENFWDZBX1NQRUVEX0lEWCwKIAkJCSAgICAgICBzaXplb2YoQ0VYNkFfU1BFRURfSURYKSk7CisJCX0gZWxzZSB7CisJCQl6Yy0+dHlwZV9zdHJpbmcgPSAiQ0VYN0EiOworCQkJLyogd3JvbmcgdXNlciBzcGFjZSB0eXBlLCBqdXN0IGZvciBjb21wYXRpYmlsaXR5CisJCQkgKiB3aXRoIHRoZSBaQ1JZUFRfU1RBVFVTX01BU0sgaW9jdGwuCisJCQkgKi8KKwkJCXpjLT51c2VyX3NwYWNlX3R5cGUgPSBaQ1JZUFRfQ0VYNjsKKwkJCW1lbWNweSh6Yy0+c3BlZWRfcmF0aW5nLCBDRVg3QV9TUEVFRF9JRFgsCisJCQkgICAgICAgc2l6ZW9mKENFWDdBX1NQRUVEX0lEWCkpOwogCQl9CiAJCXpjLT5taW5fbW9kX3NpemUgPSBDRVg0QV9NSU5fTU9EX1NJWkU7CiAJCWlmIChhcF90ZXN0X2JpdCgmYWMtPmZ1bmN0aW9ucywgQVBfRlVOQ19NRVg0SykgJiYKQEAgLTIzMiw3ICsyNTAsNyBAQCBzdGF0aWMgaW50IHpjcnlwdF9jZXg0X2NhcmRfcHJvYmUoc3RydWN0IGFwX2RldmljZSAqYXBfZGV2KQogCQkJemMtPnVzZXJfc3BhY2VfdHlwZSA9IFpDUllQVF9DRVgzQzsKIAkJCW1lbWNweSh6Yy0+c3BlZWRfcmF0aW5nLCBDRVg1Q19TUEVFRF9JRFgsCiAJCQkgICAgICAgc2l6ZW9mKENFWDVDX1NQRUVEX0lEWCkpOwotCQl9IGVsc2UgeworCQl9IGVsc2UgaWYgKGFjLT5hcF9kZXYuZGV2aWNlX3R5cGUgPT0gQVBfREVWSUNFX1RZUEVfQ0VYNikgewogCQkJemMtPnR5cGVfc3RyaW5nID0gIkNFWDZDIjsKIAkJCS8qIHdyb25nIHVzZXIgc3BhY2UgdHlwZSwgbXVzdCBiZSBDRVg2CiAJCQkgKiBqdXN0IGtlZXAgaXQgZm9yIGNjYSBjb21wYXRpYmlsaXR5CkBAIC0yNDAsNiArMjU4LDE0IEBAIHN0YXRpYyBpbnQgemNyeXB0X2NleDRfY2FyZF9wcm9iZShzdHJ1Y3QgYXBfZGV2aWNlICphcF9kZXYpCiAJCQl6Yy0+dXNlcl9zcGFjZV90eXBlID0gWkNSWVBUX0NFWDNDOwogCQkJbWVtY3B5KHpjLT5zcGVlZF9yYXRpbmcsIENFWDZDX1NQRUVEX0lEWCwKIAkJCSAgICAgICBzaXplb2YoQ0VYNkNfU1BFRURfSURYKSk7CisJCX0gZWxzZSB7CisJCQl6Yy0+dHlwZV9zdHJpbmcgPSAiQ0VYN0MiOworCQkJLyogd3JvbmcgdXNlciBzcGFjZSB0eXBlLCBtdXN0IGJlIENFWDcKKwkJCSAqIGp1c3Qga2VlcCBpdCBmb3IgY2NhIGNvbXBhdGliaWxpdHkKKwkJCSAqLworCQkJemMtPnVzZXJfc3BhY2VfdHlwZSA9IFpDUllQVF9DRVgzQzsKKwkJCW1lbWNweSh6Yy0+c3BlZWRfcmF0aW5nLCBDRVg3Q19TUEVFRF9JRFgsCisJCQkgICAgICAgc2l6ZW9mKENFWDdDX1NQRUVEX0lEWCkpOwogCQl9CiAJCXpjLT5taW5fbW9kX3NpemUgPSBDRVg0Q19NSU5fTU9EX1NJWkU7CiAJCXpjLT5tYXhfbW9kX3NpemUgPSBDRVg0Q19NQVhfTU9EX1NJWkU7CkBAIC0yNTUsMTEgKzI4MSwxOSBAQCBzdGF0aWMgaW50IHpjcnlwdF9jZXg0X2NhcmRfcHJvYmUoc3RydWN0IGFwX2RldmljZSAqYXBfZGV2KQogCQkJemMtPnVzZXJfc3BhY2VfdHlwZSA9IFpDUllQVF9DRVg1OwogCQkJbWVtY3B5KHpjLT5zcGVlZF9yYXRpbmcsIENFWDVQX1NQRUVEX0lEWCwKIAkJCSAgICAgICBzaXplb2YoQ0VYNVBfU1BFRURfSURYKSk7Ci0JCX0gZWxzZSB7CisJCX0gZWxzZSBpZiAoYWMtPmFwX2Rldi5kZXZpY2VfdHlwZSA9PSBBUF9ERVZJQ0VfVFlQRV9DRVg2KSB7CiAJCQl6Yy0+dHlwZV9zdHJpbmcgPSAiQ0VYNlAiOwogCQkJemMtPnVzZXJfc3BhY2VfdHlwZSA9IFpDUllQVF9DRVg2OwogCQkJbWVtY3B5KHpjLT5zcGVlZF9yYXRpbmcsIENFWDZQX1NQRUVEX0lEWCwKIAkJCSAgICAgICBzaXplb2YoQ0VYNlBfU1BFRURfSURYKSk7CisJCX0gZWxzZSB7CisJCQl6Yy0+dHlwZV9zdHJpbmcgPSAiQ0VYN1AiOworCQkJLyogd3JvbmcgdXNlciBzcGFjZSB0eXBlLCBqdXN0IGZvciBjb21wYXRpYmlsaXR5CisJCQkgKiB3aXRoIHRoZSBaQ1JZUFRfU1RBVFVTX01BU0sgaW9jdGwuCisJCQkgKi8KKwkJCXpjLT51c2VyX3NwYWNlX3R5cGUgPSBaQ1JZUFRfQ0VYNjsKKwkJCW1lbWNweSh6Yy0+c3BlZWRfcmF0aW5nLCBDRVg3UF9TUEVFRF9JRFgsCisJCQkgICAgICAgc2l6ZW9mKENFWDdQX1NQRUVEX0lEWCkpOwogCQl9CiAJCXpjLT5taW5fbW9kX3NpemUgPSBDRVg0Q19NSU5fTU9EX1NJWkU7CiAJCXpjLT5tYXhfbW9kX3NpemUgPSBDRVg0Q19NQVhfTU9EX1NJWkU7CkBAIC0yODksOCArMzIzLDggQEAgc3RhdGljIGludCB6Y3J5cHRfY2V4NF9jYXJkX3Byb2JlKHN0cnVjdCBhcF9kZXZpY2UgKmFwX2RldikKIH0KIAogLyoqCi0gKiBUaGlzIGlzIGNhbGxlZCB0byByZW1vdmUgdGhlIENFWDQvQ0VYNS9DRVg2IGNhcmQgZHJpdmVyIGluZm9ybWF0aW9uCi0gKiBpZiBhbiBBUCBjYXJkIGRldmljZSBpcyByZW1vdmVkLgorICogVGhpcyBpcyBjYWxsZWQgdG8gcmVtb3ZlIHRoZSBDRVg0L0NFWDUvQ0VYNi9DRVg3IGNhcmQgZHJpdmVyCisgKiBpbmZvcm1hdGlvbiBpZiBhbiBBUCBjYXJkIGRldmljZSBpcyByZW1vdmVkLgogICovCiBzdGF0aWMgdm9pZCB6Y3J5cHRfY2V4NF9jYXJkX3JlbW92ZShzdHJ1Y3QgYXBfZGV2aWNlICphcF9kZXYpCiB7CkBAIC0zMTEsNyArMzQ1LDcgQEAgc3RhdGljIHN0cnVjdCBhcF9kcml2ZXIgemNyeXB0X2NleDRfY2FyZF9kcml2ZXIgPSB7CiB9OwogCiAvKioKLSAqIFByb2JlIGZ1bmN0aW9uIGZvciBDRVg0L0NFWDUvQ0VYNiBxdWV1ZSBkZXZpY2UuIEl0IGFsd2F5cworICogUHJvYmUgZnVuY3Rpb24gZm9yIENFWDQvQ0VYNS9DRVg2L0NFWDcgcXVldWUgZGV2aWNlLiBJdCBhbHdheXMKICAqIGFjY2VwdHMgdGhlIEFQIGRldmljZSBzaW5jZSB0aGUgYnVzX21hdGNoIGFscmVhZHkgY2hlY2tlZAogICogdGhlIGhhcmR3YXJlIHR5cGUuCiAgKiBAYXBfZGV2OiBwb2ludGVyIHRvIHRoZSBBUCBkZXZpY2UuCkBAIC0zNjksNyArNDAzLDcgQEAgc3RhdGljIGludCB6Y3J5cHRfY2V4NF9xdWV1ZV9wcm9iZShzdHJ1Y3QgYXBfZGV2aWNlICphcF9kZXYpCiB9CiAKIC8qKgotICogVGhpcyBpcyBjYWxsZWQgdG8gcmVtb3ZlIHRoZSBDRVg0L0NFWDUvQ0VYNiBxdWV1ZSBkcml2ZXIKKyAqIFRoaXMgaXMgY2FsbGVkIHRvIHJlbW92ZSB0aGUgQ0VYNC9DRVg1L0NFWDYvQ0VYNyBxdWV1ZSBkcml2ZXIKICAqIGluZm9ybWF0aW9uIGlmIGFuIEFQIHF1ZXVlIGRldmljZSBpcyByZW1vdmVkLgogICovCiBzdGF0aWMgdm9pZCB6Y3J5cHRfY2V4NF9xdWV1ZV9yZW1vdmUoc3RydWN0IGFwX2RldmljZSAqYXBfZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvbGluaXQuYyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2xpbml0LmMKaW5kZXggNjQ0ZjdmNS4uNGE4NTg3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvbGluaXQuYworKysgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9saW5pdC5jCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9hZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X2luaXQuYyBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfaW5pdC5jCmluZGV4IDI2MWQ4ZTQuLmY1NzgxZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfaW5pdC5jCisrKyBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfaW5pdC5jCkBAIC01NjUsOCArNTY1LDcgQEAgc3RhdGljIHZvaWQgYXNkX2Rlc3Ryb3lfaGFfY2FjaGVzKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEpCiAJaWYgKGFzZF9oYS0+aHdfcHJvZi5zY2JfZXh0KQogCQlhc2RfZnJlZV9jb2hlcmVudChhc2RfaGEsIGFzZF9oYS0+aHdfcHJvZi5zY2JfZXh0KTsKIAotCWlmIChhc2RfaGEtPmh3X3Byb2YuZGRiX2JpdG1hcCkKLQkJa2ZyZWUoYXNkX2hhLT5od19wcm9mLmRkYl9iaXRtYXApOworCWtmcmVlKGFzZF9oYS0+aHdfcHJvZi5kZGJfYml0bWFwKTsKIAlhc2RfaGEtPmh3X3Byb2YuZGRiX2JpdG1hcCA9IE5VTEw7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVNEX01BWF9QSFlTOyBpKyspIHsKQEAgLTY0MSwxMiArNjQwLDEwIEBAIHN0YXRpYyBpbnQgYXNkX2NyZWF0ZV9nbG9iYWxfY2FjaGVzKHZvaWQpCiAKIHN0YXRpYyB2b2lkIGFzZF9kZXN0cm95X2dsb2JhbF9jYWNoZXModm9pZCkKIHsKLQlpZiAoYXNkX2RtYV90b2tlbl9jYWNoZSkKLQkJa21lbV9jYWNoZV9kZXN0cm95KGFzZF9kbWFfdG9rZW5fY2FjaGUpOworCWttZW1fY2FjaGVfZGVzdHJveShhc2RfZG1hX3Rva2VuX2NhY2hlKTsKIAlhc2RfZG1hX3Rva2VuX2NhY2hlID0gTlVMTDsKIAotCWlmIChhc2RfYXNjYl9jYWNoZSkKLQkJa21lbV9jYWNoZV9kZXN0cm95KGFzZF9hc2NiX2NhY2hlKTsKKwlrbWVtX2NhY2hlX2Rlc3Ryb3koYXNkX2FzY2JfY2FjaGUpOwogCWFzZF9hc2NiX2NhY2hlID0gTlVMTDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2JmYS9iZmFkX2ltLmMgYi9kcml2ZXJzL3Njc2kvYmZhL2JmYWRfaW0uYwppbmRleCBiMjAxNGNiLi4yMmYwNmJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYmZhL2JmYWRfaW0uYworKysgYi9kcml2ZXJzL3Njc2kvYmZhL2JmYWRfaW0uYwpAQCAtNTM2LDcgKzUzNiw3IEBAIGJmYWRfaW1fc2NzaV9ob3N0X2FsbG9jKHN0cnVjdCBiZmFkX3MgKmJmYWQsIHN0cnVjdCBiZmFkX2ltX3BvcnRfcyAqaW1fcG9ydCwKIAkJCXN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgYmZhZF9pbV9wb3J0X3BvaW50ZXIgKmltX3BvcnRwOwotCWludCBlcnJvciA9IDE7CisJaW50IGVycm9yOwogCiAJbXV0ZXhfbG9jaygmYmZhZF9tdXRleCk7CiAJZXJyb3IgPSBpZHJfYWxsb2MoJmJmYWRfaW1fcG9ydF9pbmRleCwgaW1fcG9ydCwgMCwgMCwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYm54MmZjL2JueDJmY19mY29lLmMgYi9kcml2ZXJzL3Njc2kvYm54MmZjL2JueDJmY19mY29lLmMKaW5kZXggOWZmOTQyOS4uYjRiZmFiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2JueDJmYy9ibngyZmNfZmNvZS5jCisrKyBiL2RyaXZlcnMvc2NzaS9ibngyZmMvYm54MmZjX2Zjb2UuYwpAQCAtNDI4LDcgKzQyOCw2IEBAIHN0YXRpYyBpbnQgYm54MmZjX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXN0cnVjdCBmY19scG9ydCAqbHBvcnQ7CiAJc3RydWN0IGJueDJmY19pbnRlcmZhY2UgKmludGVyZmFjZTsKIAlzdHJ1Y3QgZmNvZV9jdGxyICpjdGxyOwotCXN0cnVjdCBmY19mcmFtZV9oZWFkZXIgKmZoOwogCXN0cnVjdCBmY29lX3Jjdl9pbmZvICpmcjsKIAlzdHJ1Y3QgZmNvZV9wZXJjcHVfcyAqYmc7CiAJc3RydWN0IHNrX2J1ZmYgKnRtcF9za2I7CkBAIC00NjMsNyArNDYyLDYgQEAgc3RhdGljIGludCBibngyZmNfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCWdvdG8gZXJyOwogCiAJc2tiX3NldF90cmFuc3BvcnRfaGVhZGVyKHNrYiwgc2l6ZW9mKHN0cnVjdCBmY29lX2hkcikpOwotCWZoID0gKHN0cnVjdCBmY19mcmFtZV9oZWFkZXIgKikgc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKTsKIAogCWZyID0gZmNvZV9kZXZfZnJvbV9za2Ioc2tiKTsKIAlmci0+ZnJfZGV2ID0gbHBvcnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYm54MmZjL2JueDJmY19od2kuYyBiL2RyaXZlcnMvc2NzaS9ibngyZmMvYm54MmZjX2h3aS5jCmluZGV4IDc0N2YwMTkuLmYwNjllMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9ibngyZmMvYm54MmZjX2h3aS5jCisrKyBiL2RyaXZlcnMvc2NzaS9ibngyZmMvYm54MmZjX2h3aS5jCkBAIC02MzMsNyArNjMzLDYgQEAgc3RhdGljIHZvaWQgYm54MmZjX3Byb2Nlc3NfdW5zb2xfY29tcGwoc3RydWN0IGJueDJmY19ycG9ydCAqdGd0LCB1MTYgd3FlKQogCXUxNiB4aWQ7CiAJdTMyIGZyYW1lX2xlbiwgbGVuOwogCXN0cnVjdCBibngyZmNfY21kICppb19yZXEgPSBOVUxMOwotCXN0cnVjdCBmY29lX3Rhc2tfY3R4X2VudHJ5ICp0YXNrLCAqdGFza19wYWdlOwogCXN0cnVjdCBibngyZmNfaW50ZXJmYWNlICppbnRlcmZhY2UgPSB0Z3QtPnBvcnQtPnByaXY7CiAJc3RydWN0IGJueDJmY19oYmEgKmhiYSA9IGludGVyZmFjZS0+aGJhOwogCWludCB0YXNrX2lkeCwgaW5kZXg7CkBAIC03MTEsOSArNzEwLDYgQEAgc3RhdGljIHZvaWQgYm54MmZjX3Byb2Nlc3NfdW5zb2xfY29tcGwoc3RydWN0IGJueDJmY19ycG9ydCAqdGd0LCB1MTYgd3FlKQogCiAJCXRhc2tfaWR4ID0geGlkIC8gQk5YMkZDX1RBU0tTX1BFUl9QQUdFOwogCQlpbmRleCA9IHhpZCAlIEJOWDJGQ19UQVNLU19QRVJfUEFHRTsKLQkJdGFza19wYWdlID0gKHN0cnVjdCBmY29lX3Rhc2tfY3R4X2VudHJ5ICopCi0JCQkJCWhiYS0+dGFza19jdHhbdGFza19pZHhdOwotCQl0YXNrID0gJih0YXNrX3BhZ2VbaW5kZXhdKTsKIAogCQlpb19yZXEgPSAoc3RydWN0IGJueDJmY19jbWQgKiloYmEtPmNtZF9tZ3ItPmNtZHNbeGlkXTsKIAkJaWYgKCFpb19yZXEpCkBAIC04MzksOSArODM1LDYgQEAgc3RhdGljIHZvaWQgYm54MmZjX3Byb2Nlc3NfdW5zb2xfY29tcGwoc3RydWN0IGJueDJmY19ycG9ydCAqdGd0LCB1MTYgd3FlKQogCiAJCXRhc2tfaWR4ID0geGlkIC8gQk5YMkZDX1RBU0tTX1BFUl9QQUdFOwogCQlpbmRleCA9IHhpZCAlIEJOWDJGQ19UQVNLU19QRVJfUEFHRTsKLQkJdGFza19wYWdlID0gKHN0cnVjdCBmY29lX3Rhc2tfY3R4X2VudHJ5ICopCi0JCQkgICAgIGludGVyZmFjZS0+aGJhLT50YXNrX2N0eFt0YXNrX2lkeF07Ci0JCXRhc2sgPSAmKHRhc2tfcGFnZVtpbmRleF0pOwogCQlpb19yZXEgPSAoc3RydWN0IGJueDJmY19jbWQgKiloYmEtPmNtZF9tZ3ItPmNtZHNbeGlkXTsKIAkJaWYgKCFpb19yZXEpCiAJCQlnb3RvIHJldF93YXJuX3JxZTsKQEAgLTExMjIsNyArMTExNSw2IEBAIHN0YXRpYyB2b2lkIGJueDJmY19wcm9jZXNzX29mbGRfY21wbChzdHJ1Y3QgYm54MmZjX2hiYSAqaGJhLAogCQkJCQlzdHJ1Y3QgZmNvZV9rY3FlICpvZmxkX2tjcWUpCiB7CiAJc3RydWN0IGJueDJmY19ycG9ydAkJKnRndDsKLQlzdHJ1Y3QgZmNvZV9wb3J0CQkqcG9ydDsKIAlzdHJ1Y3QgYm54MmZjX2ludGVyZmFjZQkJKmludGVyZmFjZTsKIAl1MzIJCQkJY29ubl9pZDsKIAl1MzIJCQkJY29udGV4dF9pZDsKQEAgLTExMzYsNyArMTEyOCw2IEBAIHN0YXRpYyB2b2lkIGJueDJmY19wcm9jZXNzX29mbGRfY21wbChzdHJ1Y3QgYm54MmZjX2hiYSAqaGJhLAogCX0KIAlCTlgyRkNfVEdUX0RCRyh0Z3QsICJFbnRlcmVkIG9mbGQgY29tcGwgLSBjb250ZXh0X2lkID0gMHgleFxuIiwKIAkJb2ZsZF9rY3FlLT5mY29lX2Nvbm5fY29udGV4dF9pZCk7Ci0JcG9ydCA9IHRndC0+cG9ydDsKIAlpbnRlcmZhY2UgPSB0Z3QtPnBvcnQtPnByaXY7CiAJaWYgKGhiYSAhPSBpbnRlcmZhY2UtPmhiYSkgewogCQlwcmludGsoS0VSTl9FUlIgUEZYICJFUlJPUjpvZmxkX2NtcGw6IEhCQSBtaXMtbWF0Y2hcbiIpOwpAQCAtMTQ2MywxMCArMTQ1NCw3IEBAIHZvaWQgYm54MmZjX2luaXRfc2VxX2NsZWFudXBfdGFzayhzdHJ1Y3QgYm54MmZjX2NtZCAqc2VxX2NsbnBfcmVxLAogewogCXN0cnVjdCBzY3NpX2NtbmQgKnNjX2NtZCA9IG9yaWdfaW9fcmVxLT5zY19jbWQ7CiAJc3RydWN0IGJueDJmY19ycG9ydCAqdGd0ID0gc2VxX2NsbnBfcmVxLT50Z3Q7Ci0Jc3RydWN0IGJueDJmY19pbnRlcmZhY2UgKmludGVyZmFjZSA9IHRndC0+cG9ydC0+cHJpdjsKIAlzdHJ1Y3QgZmNvZV9iZF9jdHggKmJkID0gb3JpZ19pb19yZXEtPmJkX3RibC0+YmRfdGJsOwotCXN0cnVjdCBmY29lX3Rhc2tfY3R4X2VudHJ5ICpvcmlnX3Rhc2s7Ci0Jc3RydWN0IGZjb2VfdGFza19jdHhfZW50cnkgKnRhc2tfcGFnZTsKIAlzdHJ1Y3QgZmNvZV9leHRfbXVsX3NnZXNfY3R4ICpzZ2w7CiAJdTggdGFza190eXBlID0gRkNPRV9UQVNLX1RZUEVfU0VRVUVOQ0VfQ0xFQU5VUDsKIAl1OCBvcmlnX3Rhc2tfdHlwZTsKQEAgLTE1MjgsMTAgKzE1MTYsNiBAQCB2b2lkIGJueDJmY19pbml0X3NlcV9jbGVhbnVwX3Rhc2soc3RydWN0IGJueDJmY19jbWQgKnNlcV9jbG5wX3JlcSwKIAkJb3JpZ190YXNrX2lkeCA9IG9yaWdfeGlkIC8gQk5YMkZDX1RBU0tTX1BFUl9QQUdFOwogCQlpbmRleCA9IG9yaWdfeGlkICUgQk5YMkZDX1RBU0tTX1BFUl9QQUdFOwogCi0JCXRhc2tfcGFnZSA9IChzdHJ1Y3QgZmNvZV90YXNrX2N0eF9lbnRyeSAqKQotCQkJICAgICBpbnRlcmZhY2UtPmhiYS0+dGFza19jdHhbb3JpZ190YXNrX2lkeF07Ci0JCW9yaWdfdGFzayA9ICYodGFza19wYWdlW2luZGV4XSk7Ci0KIAkJLyogTXVsdGlwbGUgU0dFcyB3ZXJlIHVzZWQgZm9yIHRoaXMgSU8gKi8KIAkJc2dsID0gJnRhc2stPnJ4d3Jfb25seS51bmlvbl9jdHgucmVhZF9pbmZvLnNnbF9jdHguc2dsOwogCQlzZ2wtPm11bF9zZ2wuY3VyX3NnZV9hZGRyLmxvID0gKHUzMilwaHlzX2FkZHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYm54MmZjL2JueDJmY19pby5jIGIvZHJpdmVycy9zY3NpL2JueDJmYy9ibngyZmNfaW8uYwppbmRleCA5ZTUwZTViLi5kYTAwY2E1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYm54MmZjL2JueDJmY19pby5jCisrKyBiL2RyaXZlcnMvc2NzaS9ibngyZmMvYm54MmZjX2lvLmMKQEAgLTkzMCw3ICs5MzAsNiBAQCBpbnQgYm54MmZjX2luaXRpYXRlX2FidHMoc3RydWN0IGJueDJmY19jbWQgKmlvX3JlcSkKIGludCBibngyZmNfaW5pdGlhdGVfc2VxX2NsZWFudXAoc3RydWN0IGJueDJmY19jbWQgKm9yaWdfaW9fcmVxLCB1MzIgb2Zmc2V0LAogCQkJCWVudW0gZmNfcmN0bCByX2N0bCkKIHsKLQlzdHJ1Y3QgZmNfbHBvcnQgKmxwb3J0OwogCXN0cnVjdCBibngyZmNfcnBvcnQgKnRndCA9IG9yaWdfaW9fcmVxLT50Z3Q7CiAJc3RydWN0IGJueDJmY19pbnRlcmZhY2UgKmludGVyZmFjZTsKIAlzdHJ1Y3QgZmNvZV9wb3J0ICpwb3J0OwpAQCAtOTQ4LDcgKzk0Nyw2IEBAIGludCBibngyZmNfaW5pdGlhdGVfc2VxX2NsZWFudXAoc3RydWN0IGJueDJmY19jbWQgKm9yaWdfaW9fcmVxLCB1MzIgb2Zmc2V0LAogCiAJcG9ydCA9IG9yaWdfaW9fcmVxLT5wb3J0OwogCWludGVyZmFjZSA9IHBvcnQtPnByaXY7Ci0JbHBvcnQgPSBwb3J0LT5scG9ydDsKIAogCWNiX2FyZyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBibngyZmNfZWxzX2NiX2FyZyksIEdGUF9BVE9NSUMpOwogCWlmICghY2JfYXJnKSB7CkBAIC05OTksNyArOTk3LDYgQEAgaW50IGJueDJmY19pbml0aWF0ZV9zZXFfY2xlYW51cChzdHJ1Y3QgYm54MmZjX2NtZCAqb3JpZ19pb19yZXEsIHUzMiBvZmZzZXQsCiAKIGludCBibngyZmNfaW5pdGlhdGVfY2xlYW51cChzdHJ1Y3QgYm54MmZjX2NtZCAqaW9fcmVxKQogewotCXN0cnVjdCBmY19scG9ydCAqbHBvcnQ7CiAJc3RydWN0IGJueDJmY19ycG9ydCAqdGd0ID0gaW9fcmVxLT50Z3Q7CiAJc3RydWN0IGJueDJmY19pbnRlcmZhY2UgKmludGVyZmFjZTsKIAlzdHJ1Y3QgZmNvZV9wb3J0ICpwb3J0OwpAQCAtMTAxNSw3ICsxMDEyLDYgQEAgaW50IGJueDJmY19pbml0aWF0ZV9jbGVhbnVwKHN0cnVjdCBibngyZmNfY21kICppb19yZXEpCiAKIAlwb3J0ID0gaW9fcmVxLT5wb3J0OwogCWludGVyZmFjZSA9IHBvcnQtPnByaXY7Ci0JbHBvcnQgPSBwb3J0LT5scG9ydDsKIAogCWNsZWFudXBfaW9fcmVxID0gYm54MmZjX2Vsc3RtX2FsbG9jKHRndCwgQk5YMkZDX0NMRUFOVVApOwogCWlmICghY2xlYW51cF9pb19yZXEpIHsKQEAgLTE5MjcsOCArMTkyMyw2IEBAIHZvaWQgYm54MmZjX3Byb2Nlc3Nfc2NzaV9jbWRfY29tcGwoc3RydWN0IGJueDJmY19jbWQgKmlvX3JlcSwKIAlzdHJ1Y3QgZmNvZV9mY3BfcnNwX3BheWxvYWQgKmZjcF9yc3A7CiAJc3RydWN0IGJueDJmY19ycG9ydCAqdGd0ID0gaW9fcmVxLT50Z3Q7CiAJc3RydWN0IHNjc2lfY21uZCAqc2NfY21kOwotCXN0cnVjdCBTY3NpX0hvc3QgKmhvc3Q7Ci0KIAogCS8qIHNjc2lfY21kX2NtcGwgaXMgY2FsbGVkIHdpdGggdGd0IGxvY2sgaGVsZCAqLwogCkBAIC0xOTU3LDcgKzE5NTEsNiBAQCB2b2lkIGJueDJmY19wcm9jZXNzX3Njc2lfY21kX2NvbXBsKHN0cnVjdCBibngyZmNfY21kICppb19yZXEsCiAJLyogcGFyc2UgZmNwX3JzcCBhbmQgb2J0YWluIHNlbnNlIGRhdGEgZnJvbSBSUSBpZiBhdmFpbGFibGUgKi8KIAlibngyZmNfcGFyc2VfZmNwX3JzcChpb19yZXEsIGZjcF9yc3AsIG51bV9ycSk7CiAKLQlob3N0ID0gc2NfY21kLT5kZXZpY2UtPmhvc3Q7CiAJaWYgKCFzY19jbWQtPlNDcC5wdHIpIHsKIAkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiU0NwLnB0ciBpcyBOVUxMXG4iKTsKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2NzaW9zdG9yL2NzaW9fd3IuYyBiL2RyaXZlcnMvc2NzaS9jc2lvc3Rvci9jc2lvX3dyLmMKaW5kZXggMDNiZDg5Ni4uMGNhNjk1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2NzaW9zdG9yL2NzaW9fd3IuYworKysgYi9kcml2ZXJzL3Njc2kvY3Npb3N0b3IvY3Npb193ci5jCkBAIC0xMzE2LDcgKzEzMTYsNiBAQCBjc2lvX3dyX2ZpeHVwX2hvc3RfcGFyYW1zKHN0cnVjdCBjc2lvX2h3ICpodykKIAl1MzIgZmxfYWxpZ24gPSBjbHN6IDwgMzIgPyAzMiA6IGNsc3o7CiAJdTMyIHBhY2tfYWxpZ247CiAJdTMyIGluZ3BhZCwgaW5ncGFjazsKLQlpbnQgcGNpZV9jYXA7CiAKIAljc2lvX3dyX3JlZzMyKGh3LCBIT1NUUEFHRVNJWkVQRjBfVihzX2hwcykgfCBIT1NUUEFHRVNJWkVQRjFfVihzX2hwcykgfAogCQkgICAgICBIT1NUUEFHRVNJWkVQRjJfVihzX2hwcykgfCBIT1NUUEFHRVNJWkVQRjNfVihzX2hwcykgfApAQCAtMTM0Nyw4ICsxMzQ2LDcgQEAgY3Npb193cl9maXh1cF9ob3N0X3BhcmFtcyhzdHJ1Y3QgY3Npb19odyAqaHcpCiAJICogbXVsdGlwbGUgb2YgdGhlIE1heGltdW0gUGF5bG9hZCBTaXplLgogCSAqLwogCXBhY2tfYWxpZ24gPSBmbF9hbGlnbjsKLQlwY2llX2NhcCA9IHBjaV9maW5kX2NhcGFiaWxpdHkoaHctPnBkZXYsIFBDSV9DQVBfSURfRVhQKTsKLQlpZiAocGNpZV9jYXApIHsKKwlpZiAocGNpX2lzX3BjaWUoaHctPnBkZXYpKSB7CiAJCXUzMiBtcHMsIG1wc19sb2c7CiAJCXUxNiBkZXZjdGw7CiAKQEAgLTEzNTYsOSArMTM1NCw3IEBAIGNzaW9fd3JfZml4dXBfaG9zdF9wYXJhbXMoc3RydWN0IGNzaW9faHcgKmh3KQogCQkgKiBbYml0cyA3OjVdIGVuY29kZXMgc2l6ZXMgYXMgcG93ZXJzIG9mIDIgc3RhcnRpbmcgYXQKIAkJICogMTI4IGJ5dGVzLgogCQkgKi8KLQkJcGNpX3JlYWRfY29uZmlnX3dvcmQoaHctPnBkZXYsCi0JCQkJICAgICBwY2llX2NhcCArIFBDSV9FWFBfREVWQ1RMLAotCQkJCSAgICAgJmRldmN0bCk7CisJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQoaHctPnBkZXYsIFBDSV9FWFBfREVWQ1RMLCAmZGV2Y3RsKTsKIAkJbXBzX2xvZyA9ICgoZGV2Y3RsICYgUENJX0VYUF9ERVZDVExfUEFZTE9BRCkgPj4gNSkgKyA3OwogCQltcHMgPSAxIDw8IG1wc19sb2c7CiAJCWlmIChtcHMgPiBwYWNrX2FsaWduKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2N4bGZsYXNoL21haW4uYyBiL2RyaXZlcnMvc2NzaS9jeGxmbGFzaC9tYWluLmMKaW5kZXggYjFmNDcyNC4uOTNlZjk3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2N4bGZsYXNoL21haW4uYworKysgYi9kcml2ZXJzL3Njc2kvY3hsZmxhc2gvbWFpbi5jCkBAIC03NTMsMTAgKzc1MywxMyBAQCBzdGF0aWMgdm9pZCB0ZXJtX2ludHIoc3RydWN0IGN4bGZsYXNoX2NmZyAqY2ZnLCBlbnVtIHVuZG9fbGV2ZWwgbGV2ZWwsCiAJCS8qIFNJU0xfTVNJX0FTWU5DX0VSUk9SIGlzIHNldHVwIG9ubHkgZm9yIHRoZSBwcmltYXJ5IEhXUSAqLwogCQlpZiAoaW5kZXggPT0gUFJJTUFSWV9IV1EpCiAJCQljZmctPm9wcy0+dW5tYXBfYWZ1X2lycShod3EtPmN0eF9jb29raWUsIDMsIGh3cSk7CisJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgVU5NQVBfVFdPOgogCQljZmctPm9wcy0+dW5tYXBfYWZ1X2lycShod3EtPmN0eF9jb29raWUsIDIsIGh3cSk7CisJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgVU5NQVBfT05FOgogCQljZmctPm9wcy0+dW5tYXBfYWZ1X2lycShod3EtPmN0eF9jb29raWUsIDEsIGh3cSk7CisJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgRlJFRV9JUlE6CiAJCWNmZy0+b3BzLT5mcmVlX2FmdV9pcnFzKGh3cS0+Y3R4X2Nvb2tpZSk7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLwpAQCAtOTczLDE0ICs5NzYsMTggQEAgc3RhdGljIHZvaWQgY3hsZmxhc2hfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCXN3aXRjaCAoY2ZnLT5pbml0X3N0YXRlKSB7CiAJY2FzZSBJTklUX1NUQVRFX0NERVY6CiAJCWN4bGZsYXNoX3JlbGVhc2VfY2hyZGV2KGNmZyk7CisJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgSU5JVF9TVEFURV9TQ1NJOgogCQljeGxmbGFzaF90ZXJtX2xvY2FsX2x1bnMoY2ZnKTsKIAkJc2NzaV9yZW1vdmVfaG9zdChjZmctPmhvc3QpOworCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIElOSVRfU1RBVEVfQUZVOgogCQl0ZXJtX2FmdShjZmcpOworCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIElOSVRfU1RBVEVfUENJOgogCQljZmctPm9wcy0+ZGVzdHJveV9hZnUoY2ZnLT5hZnVfY29va2llKTsKIAkJcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOworCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIElOSVRfU1RBVEVfTk9ORToKIAkJZnJlZV9tZW0oY2ZnKTsKIAkJc2NzaV9ob3N0X3B1dChjZmctPmhvc3QpOwpAQCAtMjM1MywxMSArMjM2MCwxMSBAQCBzdGF0aWMgaW50IHNlbmRfYWZ1X2NtZChzdHJ1Y3QgYWZ1ICphZnUsIHN0cnVjdCBzaXNsX2lvYXJjYiAqcmNiKQogCQkJY3hsZmxhc2hfc2NoZWR1bGVfYXN5bmNfcmVzZXQoY2ZnKTsKIAkJCWJyZWFrOwogCQl9Ci0JCS8qIGZhbGwgdGhyb3VnaCB0byByZXRyeSAqLworCQkvKiBmYWxsIHRocm91Z2ggLSB0byByZXRyeSAqLwogCWNhc2UgLUVBR0FJTjoKIAkJaWYgKCsrbnJldHJ5IDwgMikKIAkJCWdvdG8gcmV0cnk7Ci0JCS8qIGZhbGwgdGhyb3VnaCB0byBleGl0ICovCisJCS8qIGZhbGwgdGhyb3VnaCAtIHRvIGV4aXQgKi8KIAlkZWZhdWx0OgogCQlicmVhazsKIAl9CkBAIC0zMDE3LDYgKzMwMjQsNyBAQCBzdGF0aWMgc3NpemVfdCBudW1faHdxc19zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCXdhaXRfZXZlbnQoY2ZnLT5yZXNldF93YWl0cSwgY2ZnLT5zdGF0ZSAhPSBTVEFURV9SRVNFVCk7CiAJCWlmIChjZmctPnN0YXRlID09IFNUQVRFX05PUk1BTCkKIAkJCWdvdG8gcmV0cnk7CisJCS8qIGVsc2UsIGZhbGwgdGhyb3VnaCAqLwogCWRlZmF1bHQ6CiAJCS8qIElkZWFsbHkgc2hvdWxkIG5vdCBoYXBwZW4gKi8KIAkJZGV2X2VycihkZXYsICIlczogRGV2aWNlIGlzIG5vdCByZWFkeSwgc3RhdGU9JWRcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZGV2aWNlX2hhbmRsZXIvc2NzaV9kaF9yZGFjLmMgYi9kcml2ZXJzL3Njc2kvZGV2aWNlX2hhbmRsZXIvc2NzaV9kaF9yZGFjLmMKaW5kZXggNjVmMWZlMy4uNWVmYzk1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2RldmljZV9oYW5kbGVyL3Njc2lfZGhfcmRhYy5jCisrKyBiL2RyaXZlcnMvc2NzaS9kZXZpY2VfaGFuZGxlci9zY3NpX2RoX3JkYWMuYwpAQCAtNTQ2LDYgKzU0Niw4IEBAIHN0YXRpYyB2b2lkIHNlbmRfbW9kZV9zZWxlY3Qoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXNwaW5fdW5sb2NrKCZjdGxyLT5tc19sb2NrKTsKIAogIHJldHJ5OgorCW1lbXNldChjZGIsIDAsIHNpemVvZihjZGIpKTsKKwogCWRhdGFfc2l6ZSA9IHJkYWNfZmFpbG92ZXJfZ2V0KGN0bHIsICZsaXN0LCBjZGIpOwogCiAJUkRBQ19MT0coUkRBQ19MT0dfRkFJTE9WRVIsIHNkZXYsICJhcnJheSAlcywgY3RsciAlZCwgIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2VzYXMyci9lc2FzMnJfaW5pdC5jIGIvZHJpdmVycy9zY3NpL2VzYXMyci9lc2FzMnJfaW5pdC5jCmluZGV4IDk1MGNkOTIuLmViN2QxMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9lc2FzMnIvZXNhczJyX2luaXQuYworKysgYi9kcml2ZXJzL3Njc2kvZXNhczJyL2VzYXMycl9pbml0LmMKQEAgLTc2MiwxNCArNzYyLDEwIEBAIHUzMiBlc2FzMnJfZ2V0X3VuY2FjaGVkX3NpemUoc3RydWN0IGVzYXMycl9hZGFwdGVyICphKQogCiBzdGF0aWMgdm9pZCBlc2FzMnJfaW5pdF9wY2lfY2ZnX3NwYWNlKHN0cnVjdCBlc2FzMnJfYWRhcHRlciAqYSkKIHsKLQlpbnQgcGNpZV9jYXBfcmVnOwotCi0JcGNpZV9jYXBfcmVnID0gcGNpX2ZpbmRfY2FwYWJpbGl0eShhLT5wY2lkLCBQQ0lfQ0FQX0lEX0VYUCk7Ci0JaWYgKHBjaWVfY2FwX3JlZykgeworCWlmIChwY2lfaXNfcGNpZShhLT5wY2lkKSkgewogCQl1MTYgZGV2Y29udHJvbDsKIAotCQlwY2lfcmVhZF9jb25maWdfd29yZChhLT5wY2lkLCBwY2llX2NhcF9yZWcgKyBQQ0lfRVhQX0RFVkNUTCwKLQkJCQkgICAgICZkZXZjb250cm9sKTsKKwkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChhLT5wY2lkLCBQQ0lfRVhQX0RFVkNUTCwgJmRldmNvbnRyb2wpOwogCiAJCWlmICgoZGV2Y29udHJvbCAmIFBDSV9FWFBfREVWQ1RMX1JFQURSUSkgPgogCQkgICAgIFBDSV9FWFBfREVWQ1RMX1JFQURSUV81MTJCKSB7CkBAIC03NzgsOSArNzc0LDggQEAgc3RhdGljIHZvaWQgZXNhczJyX2luaXRfcGNpX2NmZ19zcGFjZShzdHJ1Y3QgZXNhczJyX2FkYXB0ZXIgKmEpCiAKIAkJCWRldmNvbnRyb2wgJj0gflBDSV9FWFBfREVWQ1RMX1JFQURSUTsKIAkJCWRldmNvbnRyb2wgfD0gUENJX0VYUF9ERVZDVExfUkVBRFJRXzUxMkI7Ci0JCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoYS0+cGNpZCwKLQkJCQkJICAgICAgcGNpZV9jYXBfcmVnICsgUENJX0VYUF9ERVZDVEwsCi0JCQkJCSAgICAgIGRldmNvbnRyb2wpOworCQkJcGNpZV9jYXBhYmlsaXR5X3dyaXRlX3dvcmQoYS0+cGNpZCwgUENJX0VYUF9ERVZDVEwsCisJCQkJCQkgICBkZXZjb250cm9sKTsKIAkJfQogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9lc2FzMnIvZXNhczJyX2lvY3RsLmMgYi9kcml2ZXJzL3Njc2kvZXNhczJyL2VzYXMycl9pb2N0bC5jCmluZGV4IDNkMTMwNTIuLjQ0MmM1ZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9lc2FzMnIvZXNhczJyX2lvY3RsLmMKKysrIGIvZHJpdmVycy9zY3NpL2VzYXMyci9lc2FzMnJfaW9jdGwuYwpAQCAtNzU3LDcgKzc1Nyw2IEBAIHN0YXRpYyBpbnQgaGJhX2lvY3RsX2NhbGxiYWNrKHN0cnVjdCBlc2FzMnJfYWRhcHRlciAqYSwKIAogCQlzdHJ1Y3QgYXR0b19oYmFfZ2V0X2FkYXB0ZXJfaW5mbyAqZ2FpID0KIAkJCSZoaS0+ZGF0YS5nZXRfYWRhcF9pbmZvOwotCQlpbnQgcGNpZV9jYXBfcmVnOwogCiAJCWlmIChoaS0+ZmxhZ3MgJiBIQkFGX1RVTk5FTCkgewogCQkJaGktPnN0YXR1cyA9IEFUVE9fU1RTX1VOU1VQUE9SVEVEOwpAQCAtNzg0LDE3ICs3ODMsMTQgQEAgc3RhdGljIGludCBoYmFfaW9jdGxfY2FsbGJhY2soc3RydWN0IGVzYXMycl9hZGFwdGVyICphLAogCQlnYWktPnBjaS5kZXZfbnVtID0gUENJX1NMT1QoYS0+cGNpZC0+ZGV2Zm4pOwogCQlnYWktPnBjaS5mdW5jX251bSA9IFBDSV9GVU5DKGEtPnBjaWQtPmRldmZuKTsKIAotCQlwY2llX2NhcF9yZWcgPSBwY2lfZmluZF9jYXBhYmlsaXR5KGEtPnBjaWQsIFBDSV9DQVBfSURfRVhQKTsKLQkJaWYgKHBjaWVfY2FwX3JlZykgeworCQlpZiAocGNpX2lzX3BjaWUoYS0+cGNpZCkpIHsKIAkJCXUxNiBzdGF0OwogCQkJdTMyIGNhcHM7CiAKLQkJCXBjaV9yZWFkX2NvbmZpZ193b3JkKGEtPnBjaWQsCi0JCQkJCSAgICAgcGNpZV9jYXBfcmVnICsgUENJX0VYUF9MTktTVEEsCi0JCQkJCSAgICAgJnN0YXQpOwotCQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGEtPnBjaWQsCi0JCQkJCSAgICAgIHBjaWVfY2FwX3JlZyArIFBDSV9FWFBfTE5LQ0FQLAotCQkJCQkgICAgICAmY2Fwcyk7CisJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKGEtPnBjaWQsIFBDSV9FWFBfTE5LU1RBLAorCQkJCQkJICAmc3RhdCk7CisJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF9kd29yZChhLT5wY2lkLCBQQ0lfRVhQX0xOS0NBUCwKKwkJCQkJCSAgICZjYXBzKTsKIAogCQkJZ2FpLT5wY2kubGlua19zcGVlZF9jdXJyID0KIAkJCQkodTgpKHN0YXQgJiBQQ0lfRVhQX0xOS1NUQV9DTFMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2Zjb2UvZmNvZS5jIGIvZHJpdmVycy9zY3NpL2Zjb2UvZmNvZS5jCmluZGV4IDU4N2Q0YmIuLjI1ZGFlOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9mY29lL2Zjb2UuYworKysgYi9kcml2ZXJzL3Njc2kvZmNvZS9mY29lLmMKQEAgLTEyNTAsMTUgKzEyNTAsMjEgQEAgc3RhdGljIGludCBfX2luaXQgZmNvZV9pZl9pbml0KHZvaWQpCiAJLyogYXR0YWNoIHRvIHNjc2kgdHJhbnNwb3J0ICovCiAJZmNvZV9ucG9ydF9zY3NpX3RyYW5zcG9ydCA9CiAJCWZjX2F0dGFjaF90cmFuc3BvcnQoJmZjb2VfbnBvcnRfZmNfZnVuY3Rpb25zKTsKKwlpZiAoIWZjb2VfbnBvcnRfc2NzaV90cmFuc3BvcnQpCisJCWdvdG8gZXJyOworCiAJZmNvZV92cG9ydF9zY3NpX3RyYW5zcG9ydCA9CiAJCWZjX2F0dGFjaF90cmFuc3BvcnQoJmZjb2VfdnBvcnRfZmNfZnVuY3Rpb25zKTsKLQotCWlmICghZmNvZV9ucG9ydF9zY3NpX3RyYW5zcG9ydCkgewotCQlwcmludGsoS0VSTl9FUlIgImZjb2U6IEZhaWxlZCB0byBhdHRhY2ggdG8gdGhlIEZDIHRyYW5zcG9ydFxuIik7Ci0JCXJldHVybiAtRU5PREVWOwotCX0KKwlpZiAoIWZjb2VfdnBvcnRfc2NzaV90cmFuc3BvcnQpCisJCWdvdG8gZXJyX3Zwb3J0OwogCiAJcmV0dXJuIDA7CisKK2Vycl92cG9ydDoKKwlmY19yZWxlYXNlX3RyYW5zcG9ydChmY29lX25wb3J0X3Njc2lfdHJhbnNwb3J0KTsKK2VycjoKKwlwcmludGsoS0VSTl9FUlIgImZjb2U6IEZhaWxlZCB0byBhdHRhY2ggdG8gdGhlIEZDIHRyYW5zcG9ydFxuIik7CisJcmV0dXJuIC1FTk9ERVY7CiB9CiAKIC8qKgpAQCAtMTYxNyw3ICsxNjIzLDYgQEAgc3RhdGljIGlubGluZSBpbnQgZmNvZV9maWx0ZXJfZnJhbWVzKHN0cnVjdCBmY19scG9ydCAqbHBvcnQsCiAJZWxzZQogCQlmcl9mbGFncyhmcCkgfD0gRkNQSEZfQ1JDX1VOQ0hFQ0tFRDsKIAotCWZoID0gKHN0cnVjdCBmY19mcmFtZV9oZWFkZXIgKikgc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKTsKIAlmaCA9IGZjX2ZyYW1lX2hlYWRlcl9nZXQoZnApOwogCWlmIChmaC0+Zmhfcl9jdGwgPT0gRkNfUkNUTF9ERF9TT0xfREFUQSAmJiBmaC0+ZmhfdHlwZSA9PSBGQ19UWVBFX0ZDUCkKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZmRvbWFpbi5jIGIvZHJpdmVycy9zY3NpL2Zkb21haW4uYwppbmRleCBiNWU2Njk3Li43NzJiZGM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZmRvbWFpbi5jCisrKyBiL2RyaXZlcnMvc2NzaS9mZG9tYWluLmMKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW50IGZkb21haW5fdGVzdF9sb29wYmFjayhpbnQgYmFzZSkKIAogc3RhdGljIHZvaWQgZmRvbWFpbl9yZXNldChpbnQgYmFzZSkKIHsKLQlvdXRiKDEsIGJhc2UgKyBSRUdfQkNUTCk7CisJb3V0YihCQ1RMX1JTVCwgYmFzZSArIFJFR19CQ1RMKTsKIAltZGVsYXkoMjApOwogCW91dGIoMCwgYmFzZSArIFJFR19CQ1RMKTsKIAltZGVsYXkoMTE1MCk7CkBAIC0zMDYsNyArMzA2LDcgQEAgc3RhdGljIHZvaWQgZmRvbWFpbl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlzdGF0dXMgPSBpbmIoZmQtPmJhc2UgKyBSRUdfQlNUQVQpOwogCiAJaWYgKHN0YXR1cyAmIEJTVEFUX1JFUSkgewotCQlzd2l0Y2ggKHN0YXR1cyAmIDB4MGUpIHsKKwkJc3dpdGNoIChzdGF0dXMgJiAoQlNUQVRfTVNHIHwgQlNUQVRfQ01EIHwgQlNUQVRfSU8pKSB7CiAJCWNhc2UgQlNUQVRfQ01EOgkvKiBDT01NQU5EIE9VVCAqLwogCQkJb3V0YihjbWQtPmNtbmRbY21kLT5TQ3Auc2VudF9jb21tYW5kKytdLAogCQkJICAgICBmZC0+YmFzZSArIFJFR19TQ1NJX0RBVEEpOwpAQCAtMzMxLDcgKzMzMSw3IEBAIHN0YXRpYyB2b2lkIGZkb21haW5fd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCWNhc2UgQlNUQVRfTVNHIHwgQlNUQVRfQ01EOgkvKiBNRVNTQUdFIE9VVCAqLwogCQkJb3V0YihNRVNTQUdFX1JFSkVDVCwgZmQtPmJhc2UgKyBSRUdfU0NTSV9EQVRBKTsKIAkJCWJyZWFrOwotCQljYXNlIEJTVEFUX01TRyB8IEJTVEFUX0lPIHwgQlNUQVRfQ01EOgkvKiBNRVNTQUdFIElOICovCisJCWNhc2UgQlNUQVRfTVNHIHwgQlNUQVRfQ01EIHwgQlNUQVRfSU86CS8qIE1FU1NBR0UgSU4gKi8KIAkJCWNtZC0+U0NwLk1lc3NhZ2UgPSBpbmIoZmQtPmJhc2UgKyBSRUdfU0NTSV9EQVRBKTsKIAkJCWlmICghY21kLT5TQ3AuTWVzc2FnZSkKIAkJCQkrK2RvbmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZmRvbWFpbl9pc2EuYyBiL2RyaXZlcnMvc2NzaS9mZG9tYWluX2lzYS5jCmluZGV4IDI4NjM5YWQuLmYyZGE0ZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9mZG9tYWluX2lzYS5jCisrKyBiL2RyaXZlcnMvc2NzaS9mZG9tYWluX2lzYS5jCkBAIC0xMzEsOCArMTMxLDcgQEAgc3RhdGljIGludCBmZG9tYWluX2lzYV9tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBuZGV2KQogCWlmICghcmVxdWVzdF9yZWdpb24oYmFzZSwgRkRPTUFJTl9SRUdJT05fU0laRSwgImZkb21haW5faXNhIikpCiAJCXJldHVybiAwOwogCi0JaXJxID0gaXJxc1soaW5iKGJhc2UgKyBSRUdfQ0ZHMSkgJiAweDBlKSA+PiAxXTsKLQorCWlycSA9IGlycXNbKGluYihiYXNlICsgUkVHX0NGRzEpICYgQ0ZHMV9JUlFfTUFTSykgPj4gMV07CiAKIAlpZiAoc2lnKQogCQl0aGlzX2lkID0gc2lnLT50aGlzX2lkOwpAQCAtMTY0LDcgKzE2Myw3IEBAIHN0YXRpYyBpbnQgZmRvbWFpbl9pc2FfcGFyYW1fbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgbmRldikKIAl9CiAKIAlpZiAoaXJxXyA8PSAwKQotCQlpcnFfID0gaXJxc1soaW5iKGlvW25kZXZdICsgUkVHX0NGRzEpICYgMHgwZSkgPj4gMV07CisJCWlycV8gPSBpcnFzWyhpbmIoaW9bbmRldl0gKyBSRUdfQ0ZHMSkgJiBDRkcxX0lSUV9NQVNLKSA+PiAxXTsKIAogCXNoID0gZmRvbWFpbl9jcmVhdGUoaW9bbmRldl0sIGlycV8sIHNjc2lfaWRbbmRldl0sIGRldik7CiAJaWYgKCFzaCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2ZuaWMvZm5pY19kZWJ1Z2ZzLmMgYi9kcml2ZXJzL3Njc2kvZm5pYy9mbmljX2RlYnVnZnMuYwppbmRleCAyMTk5MWM5Li4xM2Y3ZDg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZm5pYy9mbmljX2RlYnVnZnMuYworKysgYi9kcml2ZXJzL3Njc2kvZm5pYy9mbmljX2RlYnVnZnMuYwpAQCAtNTIsNyArNTIsNiBAQCBzdGF0aWMgc3RydWN0IGZjX3RyYWNlX2ZsYWdfdHlwZSAqZmNfdHJjX2ZsYWc7CiAgKi8KIGludCBmbmljX2RlYnVnZnNfaW5pdCh2b2lkKQogewotCWludCByYyA9IC0xOwogCWZuaWNfdHJhY2VfZGVidWdmc19yb290ID0gZGVidWdmc19jcmVhdGVfZGlyKCJmbmljIiwgTlVMTCk7CiAKIAlmbmljX3N0YXRzX2RlYnVnZnNfcm9vdCA9IGRlYnVnZnNfY3JlYXRlX2Rpcigic3RhdGlzdGljcyIsCkBAIC03MCw4ICs2OSw3IEBAIGludCBmbmljX2RlYnVnZnNfaW5pdCh2b2lkKQogCQlmY190cmNfZmxhZy0+ZmNfY2xlYXIgPSA0OwogCX0KIAotCXJjID0gMDsKLQlyZXR1cm4gcmM7CisJcmV0dXJuIDA7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZm5pYy9mbmljX2Zjcy5jIGIvZHJpdmVycy9zY3NpL2ZuaWMvZm5pY19mY3MuYwppbmRleCA5MTFhNWFkLi42NzM4ODdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZm5pYy9mbmljX2Zjcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9mbmljL2ZuaWNfZmNzLmMKQEAgLTUyLDYgKzUyLDcgQEAgdm9pZCBmbmljX2hhbmRsZV9saW5rKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBvbGRfbGlua19zdGF0dXM7CiAJdTMyIG9sZF9saW5rX2Rvd25fY250OworCXU2NCBvbGRfcG9ydF9zcGVlZCwgbmV3X3BvcnRfc3BlZWQ7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZm5pYy0+Zm5pY19sb2NrLCBmbGFncyk7CiAKQEAgLTYyLDE0ICs2MywxOSBAQCB2b2lkIGZuaWNfaGFuZGxlX2xpbmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJb2xkX2xpbmtfZG93bl9jbnQgPSBmbmljLT5saW5rX2Rvd25fY250OwogCW9sZF9saW5rX3N0YXR1cyA9IGZuaWMtPmxpbmtfc3RhdHVzOworCW9sZF9wb3J0X3NwZWVkID0gYXRvbWljNjRfcmVhZCgKKwkJCSZmbmljLT5mbmljX3N0YXRzLm1pc2Nfc3RhdHMuY3VycmVudF9wb3J0X3NwZWVkKTsKKwogCWZuaWMtPmxpbmtfc3RhdHVzID0gdm5pY19kZXZfbGlua19zdGF0dXMoZm5pYy0+dmRldik7CiAJZm5pYy0+bGlua19kb3duX2NudCA9IHZuaWNfZGV2X2xpbmtfZG93bl9jbnQoZm5pYy0+dmRldik7CiAKKwluZXdfcG9ydF9zcGVlZCA9IHZuaWNfZGV2X3BvcnRfc3BlZWQoZm5pYy0+dmRldik7CiAJYXRvbWljNjRfc2V0KCZmbmljLT5mbmljX3N0YXRzLm1pc2Nfc3RhdHMuY3VycmVudF9wb3J0X3NwZWVkLAotCQkJdm5pY19kZXZfcG9ydF9zcGVlZChmbmljLT52ZGV2KSk7Ci0Jc2hvc3RfcHJpbnRrKEtFUk5fSU5GTywgZm5pYy0+bHBvcnQtPmhvc3QsICJDdXJyZW50IHZuaWMgc3BlZWQgc2V0IHRvIDogICVsbHVcbiIsCi0JCQkodTY0KWF0b21pYzY0X3JlYWQoCi0JCQkmZm5pYy0+Zm5pY19zdGF0cy5taXNjX3N0YXRzLmN1cnJlbnRfcG9ydF9zcGVlZCkpOworCQkJbmV3X3BvcnRfc3BlZWQpOworCWlmIChvbGRfcG9ydF9zcGVlZCAhPSBuZXdfcG9ydF9zcGVlZCkKKwkJc2hvc3RfcHJpbnRrKEtFUk5fSU5GTywgZm5pYy0+bHBvcnQtPmhvc3QsCisJCQkJIkN1cnJlbnQgdm5pYyBzcGVlZCBzZXQgdG8gOiAgJWxsdVxuIiwKKwkJCQluZXdfcG9ydF9zcGVlZCk7CiAKIAlzd2l0Y2ggKHZuaWNfZGV2X3BvcnRfc3BlZWQoZm5pYy0+dmRldikpIHsKIAljYXNlIERDRU1fUE9SVFNQRUVEXzEwRzoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9mbmljL2ZuaWNfaXNyLmMgYi9kcml2ZXJzL3Njc2kvZm5pYy9mbmljX2lzci5jCmluZGV4IGRhNDYwMmIuLjJmYjI3MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9mbmljL2ZuaWNfaXNyLmMKKysrIGIvZHJpdmVycy9zY3NpL2ZuaWMvZm5pY19pc3IuYwpAQCAtMjU0LDcgKzI1NCw3IEBAIGludCBmbmljX3NldF9pbnRyX21vZGUoc3RydWN0IGZuaWMgKmZuaWMpCiAJCWludCB2ZWNzID0gbiArIG0gKyBvICsgMTsKIAogCQlpZiAocGNpX2FsbG9jX2lycV92ZWN0b3JzKGZuaWMtPnBkZXYsIHZlY3MsIHZlY3MsCi0JCQkJUENJX0lSUV9NU0lYKSA8IDApIHsKKwkJCQlQQ0lfSVJRX01TSVgpID09IHZlY3MpIHsKIAkJCWZuaWMtPnJxX2NvdW50ID0gbjsKIAkJCWZuaWMtPnJhd193cV9jb3VudCA9IG07CiAJCQlmbmljLT53cV9jb3B5X2NvdW50ID0gbzsKQEAgLTI4MCw3ICsyODAsNyBAQCBpbnQgZm5pY19zZXRfaW50cl9tb2RlKHN0cnVjdCBmbmljICpmbmljKQogCSAgICBmbmljLT53cV9jb3B5X2NvdW50ID49IDEgJiYKIAkgICAgZm5pYy0+Y3FfY291bnQgPj0gMyAmJgogCSAgICBmbmljLT5pbnRyX2NvdW50ID49IDEgJiYKLQkgICAgcGNpX2FsbG9jX2lycV92ZWN0b3JzKGZuaWMtPnBkZXYsIDEsIDEsIFBDSV9JUlFfTVNJKSA8IDApIHsKKwkgICAgcGNpX2FsbG9jX2lycV92ZWN0b3JzKGZuaWMtPnBkZXYsIDEsIDEsIFBDSV9JUlFfTVNJKSA9PSAxKSB7CiAJCWZuaWMtPnJxX2NvdW50ID0gMTsKIAkJZm5pYy0+cmF3X3dxX2NvdW50ID0gMTsKIAkJZm5pYy0+d3FfY29weV9jb3VudCA9IDE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZm5pYy9mbmljX3RyYWNlLmMgYi9kcml2ZXJzL3Njc2kvZm5pYy9mbmljX3RyYWNlLmMKaW5kZXggOTYyMTgzMS4uYTBkMDFhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2ZuaWMvZm5pY190cmFjZS5jCisrKyBiL2RyaXZlcnMvc2NzaS9mbmljL2ZuaWNfdHJhY2UuYwpAQCAtNDUzLDcgKzQ1Myw3IEBAIGludCBmbmljX2dldF9zdGF0c19kYXRhKHN0cnVjdCBzdGF0c19kZWJ1Z19pbmZvICpkZWJ1ZywKIAkJICAodTY0KWF0b21pYzY0X3JlYWQoJnN0YXRzLT5taXNjX3N0YXRzLmZyYW1lX2Vycm9ycykpOwogCiAJbGVuICs9IHNucHJpbnRmKGRlYnVnLT5kZWJ1Z19idWZmZXIgKyBsZW4sIGJ1Zl9zaXplIC0gbGVuLAotCQkJIkZpcm13YXJlIHJlcG9ydGVkIHBvcnQgc2VlZDogJWxsdVxuIiwKKwkJCSJGaXJtd2FyZSByZXBvcnRlZCBwb3J0IHNwZWVkOiAlbGx1XG4iLAogCQkJKHU2NClhdG9taWM2NF9yZWFkKAogCQkJCSZzdGF0cy0+bWlzY19zdGF0cy5jdXJyZW50X3BvcnRfc3BlZWQpKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2hpc2lfc2FzL2hpc2lfc2FzLmggYi9kcml2ZXJzL3Njc2kvaGlzaV9zYXMvaGlzaV9zYXMuaAppbmRleCA0MmEwMmNjLi43MjBjNGQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaGlzaV9zYXMvaGlzaV9zYXMuaAorKysgYi9kcml2ZXJzL3Njc2kvaGlzaV9zYXMvaGlzaV9zYXMuaApAQCAtMzEsNyArMzEsMTMgQEAKICNkZWZpbmUgSElTSV9TQVNfTUFYX0RFVklDRVMgSElTSV9TQVNfTUFYX0lUQ1RfRU5UUklFUwogI2RlZmluZSBISVNJX1NBU19SRVNFVF9CSVQJMAogI2RlZmluZSBISVNJX1NBU19SRUpFQ1RfQ01EX0JJVAkxCi0jZGVmaW5lIEhJU0lfU0FTX1JFU0VSVkVEX0lQVFRfQ05UICA5NgorI2RlZmluZSBISVNJX1NBU19NQVhfQ09NTUFORFMgKEhJU0lfU0FTX1FVRVVFX1NMT1RTKQorI2RlZmluZSBISVNJX1NBU19SRVNFUlZFRF9JUFRUICA5NgorI2RlZmluZSBISVNJX1NBU19VTlJFU0VSVkVEX0lQVFQgXAorCShISVNJX1NBU19NQVhfQ09NTUFORFMgLSBISVNJX1NBU19SRVNFUlZFRF9JUFRUKQorCisjZGVmaW5lIEhJU0lfU0FTX0lPU1RfSVRDVF9DQUNIRV9OVU0gNjQKKyNkZWZpbmUgSElTSV9TQVNfSU9TVF9JVENUX0NBQ0hFX0RXX1NaIDEwCiAKICNkZWZpbmUgSElTSV9TQVNfU1RBVFVTX0JVRl9TWiAoc2l6ZW9mKHN0cnVjdCBoaXNpX3Nhc19zdGF0dXNfYnVmZmVyKSkKICNkZWZpbmUgSElTSV9TQVNfQ09NTUFORF9UQUJMRV9TWiAoc2l6ZW9mKHVuaW9uIGhpc2lfc2FzX2NvbW1hbmRfdGFibGUpKQpAQCAtMTI4LDcgKzEzNCw2IEBAIHN0cnVjdCBoaXNpX3Nhc19yc3QgewogCiAjZGVmaW5lIEhJU0lfU0FTX0RFQ0xBUkVfUlNUX1dPUktfT05fU1RBQ0socikgXAogCURFQ0xBUkVfQ09NUExFVElPTl9PTlNUQUNLKGMpOyBcCi0JREVDTEFSRV9XT1JLKHcsIGhpc2lfc2FzX3N5bmNfcnN0X3dvcmtfaGFuZGxlcik7IFwKIAlzdHJ1Y3QgaGlzaV9zYXNfcnN0IHIgPSBISVNJX1NBU19SU1RfV09SS19JTklUKHIsIGMpCiAKIGVudW0gaGlzaV9zYXNfYml0X2Vycl90eXBlIHsKQEAgLTI0OSw2ICsyNTQsMjIgQEAgc3RydWN0IGhpc2lfc2FzX2RlYnVnZnNfcmVnIHsKIAl9OwogfTsKIAorc3RydWN0IGhpc2lfc2FzX2lvc3RfaXRjdF9jYWNoZSB7CisJdTMyIGRhdGFbSElTSV9TQVNfSU9TVF9JVENUX0NBQ0hFX0RXX1NaXTsKK307CisKK2VudW0gaGlzaV9zYXNfZGVidWdmc19yZWdfYXJyYXlfbWVtYmVyIHsKKwlERUJVR0ZTX0dMT0JBTCA9IDAsCisJREVCVUdGU19BWEksCisJREVCVUdGU19SQVMsCisJREVCVUdGU19SRUdTX05VTQorfTsKKworZW51bSBoaXNpX3Nhc19kZWJ1Z2ZzX2NhY2hlX3R5cGUgeworCUhJU0lfU0FTX0lUQ1RfQ0FDSEUsCisJSElTSV9TQVNfSU9TVF9DQUNIRSwKK307CisKIHN0cnVjdCBoaXNpX3Nhc19odyB7CiAJaW50ICgqaHdfaW5pdCkoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSk7CiAJdm9pZCAoKnNldHVwX2l0Y3QpKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsCkBAIC0yNTcsNyArMjc4LDYgQEAgc3RydWN0IGhpc2lfc2FzX2h3IHsKIAkJCQlzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2aWNlKTsKIAlzdHJ1Y3QgaGlzaV9zYXNfZGV2aWNlICooKmFsbG9jX2Rldikoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldmljZSk7CiAJdm9pZCAoKnNsX25vdGlmeV9zc3ApKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIGludCBwaHlfbm8pOwotCWludCAoKmdldF9mcmVlX3Nsb3QpKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHN0cnVjdCBoaXNpX3Nhc19kcSAqZHEpOwogCXZvaWQgKCpzdGFydF9kZWxpdmVyeSkoc3RydWN0IGhpc2lfc2FzX2RxICpkcSk7CiAJdm9pZCAoKnByZXBfc3NwKShzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLAogCQkJc3RydWN0IGhpc2lfc2FzX3Nsb3QgKnNsb3QpOwpAQCAtMjY4LDggKzI4OCw2IEBAIHN0cnVjdCBoaXNpX3Nhc19odyB7CiAJdm9pZCAoKnByZXBfYWJvcnQpKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsCiAJCQkgIHN0cnVjdCBoaXNpX3Nhc19zbG90ICpzbG90LAogCQkJICBpbnQgZGV2aWNlX2lkLCBpbnQgYWJvcnRfZmxhZywgaW50IHRhZ190b19hYm9ydCk7Ci0JaW50ICgqc2xvdF9jb21wbGV0ZSkoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKLQkJCSAgICAgc3RydWN0IGhpc2lfc2FzX3Nsb3QgKnNsb3QpOwogCXZvaWQgKCpwaHlzX2luaXQpKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpOwogCXZvaWQgKCpwaHlfc3RhcnQpKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIGludCBwaHlfbm8pOwogCXZvaWQgKCpwaHlfZGlzYWJsZSkoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwgaW50IHBoeV9ubyk7CkBAIC0yODgsMTUgKzMwNiwxOCBAQCBzdHJ1Y3QgaGlzaV9zYXNfaHcgewogCXUzMiAoKmdldF9waHlzX3N0YXRlKShzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKTsKIAlpbnQgKCp3cml0ZV9ncGlvKShzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCB1OCByZWdfdHlwZSwKIAkJCQl1OCByZWdfaW5kZXgsIHU4IHJlZ19jb3VudCwgdTggKndyaXRlX2RhdGEpOwotCWludCAoKndhaXRfY21kc19jb21wbGV0ZV90aW1lb3V0KShzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLAotCQkJCQkgIGludCBkZWxheV9tcywgaW50IHRpbWVvdXRfbXMpOworCXZvaWQgKCp3YWl0X2NtZHNfY29tcGxldGVfdGltZW91dCkoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKKwkJCQkJICAgaW50IGRlbGF5X21zLCBpbnQgdGltZW91dF9tcyk7CiAJdm9pZCAoKnNuYXBzaG90X3ByZXBhcmUpKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpOwogCXZvaWQgKCpzbmFwc2hvdF9yZXN0b3JlKShzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKTsKLQlpbnQgbWF4X2NvbW1hbmRfZW50cmllczsKKwlpbnQgKCpzZXRfYmlzdCkoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwgYm9vbCBlbmFibGUpOworCXZvaWQgKCpyZWFkX2lvc3RfaXRjdF9jYWNoZSkoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKKwkJCQkgICAgIGVudW0gaGlzaV9zYXNfZGVidWdmc19jYWNoZV90eXBlIHR5cGUsCisJCQkJICAgICB1MzIgKmNhY2hlKTsKIAlpbnQgY29tcGxldGVfaGRyX3NpemU7CiAJc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSAqc2h0OwogCi0JY29uc3Qgc3RydWN0IGhpc2lfc2FzX2RlYnVnZnNfcmVnICpkZWJ1Z2ZzX3JlZ19nbG9iYWw7CisJY29uc3Qgc3RydWN0IGhpc2lfc2FzX2RlYnVnZnNfcmVnICpkZWJ1Z2ZzX3JlZ19hcnJheVtERUJVR0ZTX1JFR1NfTlVNXTsKIAljb25zdCBzdHJ1Y3QgaGlzaV9zYXNfZGVidWdmc19yZWcgKmRlYnVnZnNfcmVnX3BvcnQ7CiB9OwogCkBAIC0zNzEsMTYgKzM5MiwyOCBAQCBzdHJ1Y3QgaGlzaV9oYmEgewogCWludCBjcV9udmVjczsKIAl1bnNpZ25lZCBpbnQgKnJlcGx5X21hcDsKIAorCS8qIGJpc3QgKi8KKwllbnVtIHNhc19saW5rcmF0ZSBkZWJ1Z2ZzX2Jpc3RfbGlua3JhdGU7CisJaW50IGRlYnVnZnNfYmlzdF9jb2RlX21vZGU7CisJaW50IGRlYnVnZnNfYmlzdF9waHlfbm87CisJaW50IGRlYnVnZnNfYmlzdF9tb2RlOworCXUzMiBkZWJ1Z2ZzX2Jpc3RfY250OworCWludCBkZWJ1Z2ZzX2Jpc3RfZW5hYmxlOworCiAJLyogZGVidWdmcyBtZW1vcmllcyAqLwotCXUzMiAqZGVidWdmc19nbG9iYWxfcmVnOworCS8qIFB1dCBHbG9iYWwgQVhJIGFuZCBSQVMgUmVnaXN0ZXIgaW50byByZWdpc3RlciBhcnJheSAqLworCXUzMiAqZGVidWdmc19yZWdzW0RFQlVHRlNfUkVHU19OVU1dOwogCXUzMiAqZGVidWdmc19wb3J0X3JlZ1tISVNJX1NBU19NQVhfUEhZU107CiAJdm9pZCAqZGVidWdmc19jb21wbGV0ZV9oZHJbSElTSV9TQVNfTUFYX1FVRVVFU107CiAJc3RydWN0IGhpc2lfc2FzX2NtZF9oZHIJKmRlYnVnZnNfY21kX2hkcltISVNJX1NBU19NQVhfUVVFVUVTXTsKIAlzdHJ1Y3QgaGlzaV9zYXNfaW9zdCAqZGVidWdmc19pb3N0OwogCXN0cnVjdCBoaXNpX3Nhc19pdGN0ICpkZWJ1Z2ZzX2l0Y3Q7CisJdTY0ICpkZWJ1Z2ZzX2lvc3RfY2FjaGU7CisJdTY0ICpkZWJ1Z2ZzX2l0Y3RfY2FjaGU7CiAKIAlzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2RpcjsKIAlzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2R1bXBfZGVudHJ5OworCXN0cnVjdCBkZW50cnkgKmRlYnVnZnNfYmlzdF9kZW50cnk7CiAJYm9vbCBkZWJ1Z2ZzX3NuYXBzaG90OwogfTsKIApAQCAtNTMzLDcgKzU2Niw2IEBAIGV4dGVybiB1OCBoaXNpX3Nhc19nZXRfYXRhX3Byb3RvY29sKHN0cnVjdCBob3N0X3RvX2Rldl9maXMgKmZpcywKIGV4dGVybiBzdHJ1Y3QgaGlzaV9zYXNfcG9ydCAqdG9faGlzaV9zYXNfcG9ydChzdHJ1Y3QgYXNkX3Nhc19wb3J0ICpzYXNfcG9ydCk7CiBleHRlcm4gdm9pZCBoaXNpX3Nhc19zYXRhX2RvbmUoc3RydWN0IHNhc190YXNrICp0YXNrLAogCQkJICAgIHN0cnVjdCBoaXNpX3Nhc19zbG90ICpzbG90KTsKLWV4dGVybiBpbnQgaGlzaV9zYXNfZ2V0X25jcV90YWcoc3RydWN0IHNhc190YXNrICp0YXNrLCB1MzIgKnRhZyk7CiBleHRlcm4gaW50IGhpc2lfc2FzX2dldF9md19pbmZvKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpOwogZXh0ZXJuIGludCBoaXNpX3Nhc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCQkJICBjb25zdCBzdHJ1Y3QgaGlzaV9zYXNfaHcgKm9wcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaGlzaV9zYXMvaGlzaV9zYXNfbWFpbi5jIGIvZHJpdmVycy9zY3NpL2hpc2lfc2FzL2hpc2lfc2FzX21haW4uYwppbmRleCBjYjc0NmNmLi5kMTUxM2ZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaGlzaV9zYXMvaGlzaV9zYXNfbWFpbi5jCisrKyBiL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc19tYWluLmMKQEAgLTExOCwyMSArMTE4LDYgQEAgdm9pZCBoaXNpX3Nhc19zYXRhX2RvbmUoc3RydWN0IHNhc190YXNrICp0YXNrLAogfQogRVhQT1JUX1NZTUJPTF9HUEwoaGlzaV9zYXNfc2F0YV9kb25lKTsKIAotaW50IGhpc2lfc2FzX2dldF9uY3FfdGFnKHN0cnVjdCBzYXNfdGFzayAqdGFzaywgdTMyICp0YWcpCi17Ci0Jc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYyA9IHRhc2stPnVsZGRfdGFzazsKLQotCWlmIChxYykgewotCQlpZiAocWMtPnRmLmNvbW1hbmQgPT0gQVRBX0NNRF9GUERNQV9XUklURSB8fAotCQkJcWMtPnRmLmNvbW1hbmQgPT0gQVRBX0NNRF9GUERNQV9SRUFEKSB7Ci0JCQkqdGFnID0gcWMtPnRhZzsKLQkJCXJldHVybiAxOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoaGlzaV9zYXNfZ2V0X25jcV90YWcpOwotCiAvKgogICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIGxpbmtyYXRlIG1hc2sgZml0cyBpbiA4IGJpdHMsIHdoaWNoIGl0CiAgKiBkb2VzIGZvciBhbGwgSFcgdmVyc2lvbnMgc3VwcG9ydGVkLgpAQCAtMTgwLDggKzE2NSw4IEBAIHN0YXRpYyB2b2lkIGhpc2lfc2FzX3Nsb3RfaW5kZXhfZnJlZShzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCBpbnQgc2xvdF9pZHgpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCWlmIChoaXNpX2hiYS0+aHctPnNsb3RfaW5kZXhfYWxsb2MgfHwgKHNsb3RfaWR4ID49Ci0JICAgIGhpc2lfaGJhLT5ody0+bWF4X2NvbW1hbmRfZW50cmllcyAtIEhJU0lfU0FTX1JFU0VSVkVEX0lQVFRfQ05UKSkgeworCWlmIChoaXNpX2hiYS0+aHctPnNsb3RfaW5kZXhfYWxsb2MgfHwKKwkgICAgc2xvdF9pZHggPj0gSElTSV9TQVNfVU5SRVNFUlZFRF9JUFRUKSB7CiAJCXNwaW5fbG9ja19pcnFzYXZlKCZoaXNpX2hiYS0+bG9jaywgZmxhZ3MpOwogCQloaXNpX3Nhc19zbG90X2luZGV4X2NsZWFyKGhpc2lfaGJhLCBzbG90X2lkeCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmhpc2lfaGJhLT5sb2NrLCBmbGFncyk7CkBAIC0yMTEsOCArMTk2LDcgQEAgc3RhdGljIGludCBoaXNpX3Nhc19zbG90X2luZGV4X2FsbG9jKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsCiAJaWYgKGluZGV4ID49IGhpc2lfaGJhLT5zbG90X2luZGV4X2NvdW50KSB7CiAJCWluZGV4ID0gZmluZF9uZXh0X3plcm9fYml0KGJpdG1hcCwKIAkJCQloaXNpX2hiYS0+c2xvdF9pbmRleF9jb3VudCwKLQkJCQloaXNpX2hiYS0+aHctPm1heF9jb21tYW5kX2VudHJpZXMgLQotCQkJCUhJU0lfU0FTX1JFU0VSVkVEX0lQVFRfQ05UKTsKKwkJCQlISVNJX1NBU19VTlJFU0VSVkVEX0lQVFQpOwogCQlpZiAoaW5kZXggPj0gaGlzaV9oYmEtPnNsb3RfaW5kZXhfY291bnQpIHsKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmhpc2lfaGJhLT5sb2NrLCBmbGFncyk7CiAJCQlyZXR1cm4gLVNBU19RVUVVRV9GVUxMOwpAQCAtMzAxLDcgKzI4NSw3IEBAIHN0YXRpYyB2b2lkIGhpc2lfc2FzX3Rhc2tfcHJlcF9hYm9ydChzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLAogCiBzdGF0aWMgdm9pZCBoaXNpX3Nhc19kbWFfdW5tYXAoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKIAkJCSAgICAgICBzdHJ1Y3Qgc2FzX3Rhc2sgKnRhc2ssIGludCBuX2VsZW0sCi0JCQkgICAgICAgaW50IG5fZWxlbV9yZXEsIGludCBuX2VsZW1fcmVzcCkKKwkJCSAgICAgICBpbnQgbl9lbGVtX3JlcSkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoaXNpX2hiYS0+ZGV2OwogCkBAIC0zMTUsMTYgKzI5OSwxMyBAQCBzdGF0aWMgdm9pZCBoaXNpX3Nhc19kbWFfdW5tYXAoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKIAkJCWlmIChuX2VsZW1fcmVxKQogCQkJCWRtYV91bm1hcF9zZyhkZXYsICZ0YXNrLT5zbXBfdGFzay5zbXBfcmVxLAogCQkJCQkgICAgIDEsIERNQV9UT19ERVZJQ0UpOwotCQkJaWYgKG5fZWxlbV9yZXNwKQotCQkJCWRtYV91bm1hcF9zZyhkZXYsICZ0YXNrLT5zbXBfdGFzay5zbXBfcmVzcCwKLQkJCQkJICAgICAxLCBETUFfRlJPTV9ERVZJQ0UpOwogCQl9CiAJfQogfQogCiBzdGF0aWMgaW50IGhpc2lfc2FzX2RtYV9tYXAoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKIAkJCSAgICBzdHJ1Y3Qgc2FzX3Rhc2sgKnRhc2ssIGludCAqbl9lbGVtLAotCQkJICAgIGludCAqbl9lbGVtX3JlcSwgaW50ICpuX2VsZW1fcmVzcCkKKwkJCSAgICBpbnQgKm5fZWxlbV9yZXEpCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gaGlzaV9oYmEtPmRldjsKIAlpbnQgcmM7CkBAIC0zMzIsNyArMzEzLDcgQEAgc3RhdGljIGludCBoaXNpX3Nhc19kbWFfbWFwKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsCiAJaWYgKHNhc19wcm90b2NvbF9hdGEodGFzay0+dGFza19wcm90bykpIHsKIAkJKm5fZWxlbSA9IHRhc2stPm51bV9zY2F0dGVyOwogCX0gZWxzZSB7Ci0JCXVuc2lnbmVkIGludCByZXFfbGVuLCByZXNwX2xlbjsKKwkJdW5zaWduZWQgaW50IHJlcV9sZW47CiAKIAkJaWYgKHRhc2stPm51bV9zY2F0dGVyKSB7CiAJCQkqbl9lbGVtID0gZG1hX21hcF9zZyhkZXYsIHRhc2stPnNjYXR0ZXIsCkBAIC0zNTMsMTcgKzMzNCw2IEBAIHN0YXRpYyBpbnQgaGlzaV9zYXNfZG1hX21hcChzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLAogCQkJCXJjID0gLUVJTlZBTDsKIAkJCQlnb3RvIGVycl9vdXRfZG1hX3VubWFwOwogCQkJfQotCQkJKm5fZWxlbV9yZXNwID0gZG1hX21hcF9zZyhkZXYsICZ0YXNrLT5zbXBfdGFzay5zbXBfcmVzcCwKLQkJCQkJCSAgMSwgRE1BX0ZST01fREVWSUNFKTsKLQkJCWlmICghKm5fZWxlbV9yZXNwKSB7Ci0JCQkJcmMgPSAtRU5PTUVNOwotCQkJCWdvdG8gZXJyX291dF9kbWFfdW5tYXA7Ci0JCQl9Ci0JCQlyZXNwX2xlbiA9IHNnX2RtYV9sZW4oJnRhc2stPnNtcF90YXNrLnNtcF9yZXNwKTsKLQkJCWlmIChyZXNwX2xlbiAmIDB4MykgewotCQkJCXJjID0gLUVJTlZBTDsKLQkJCQlnb3RvIGVycl9vdXRfZG1hX3VubWFwOwotCQkJfQogCQl9CiAJfQogCkBAIC0zNzgsNyArMzQ4LDcgQEAgc3RhdGljIGludCBoaXNpX3Nhc19kbWFfbWFwKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsCiBlcnJfb3V0X2RtYV91bm1hcDoKIAkvKiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gY2FsbCBkbWFfdW5tYXBfc2coKSBoZXJlLCBidXQgaXQncyBtZXNzeSAqLwogCWhpc2lfc2FzX2RtYV91bm1hcChoaXNpX2hiYSwgdGFzaywgKm5fZWxlbSwKLQkJCSAgICpuX2VsZW1fcmVxLCAqbl9lbGVtX3Jlc3ApOworCQkJICAgKm5fZWxlbV9yZXEpOwogcHJlcF9vdXQ6CiAJcmV0dXJuIHJjOwogfQpAQCAtNDUwLDcgKzQyMCw3IEBAIHN0YXRpYyBpbnQgaGlzaV9zYXNfdGFza19wcmVwKHN0cnVjdCBzYXNfdGFzayAqdGFzaywKIAlzdHJ1Y3QgYXNkX3Nhc19wb3J0ICpzYXNfcG9ydCA9IGRldmljZS0+cG9ydDsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoaXNpX2hiYS0+ZGV2OwogCWludCBkbHZyeV9xdWV1ZV9zbG90LCBkbHZyeV9xdWV1ZSwgcmMsIHNsb3RfaWR4OwotCWludCBuX2VsZW0gPSAwLCBuX2VsZW1fZGlmID0gMCwgbl9lbGVtX3JlcSA9IDAsIG5fZWxlbV9yZXNwID0gMDsKKwlpbnQgbl9lbGVtID0gMCwgbl9lbGVtX2RpZiA9IDAsIG5fZWxlbV9yZXEgPSAwOwogCXN0cnVjdCBoaXNpX3Nhc19kcSAqZHE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgd3JfcV9pbmRleDsKQEAgLTQ4Niw3ICs0NTYsNyBAQCBzdGF0aWMgaW50IGhpc2lfc2FzX3Rhc2tfcHJlcChzdHJ1Y3Qgc2FzX3Rhc2sgKnRhc2ssCiAJfQogCiAJcmMgPSBoaXNpX3Nhc19kbWFfbWFwKGhpc2lfaGJhLCB0YXNrLCAmbl9lbGVtLAotCQkJICAgICAgJm5fZWxlbV9yZXEsICZuX2VsZW1fcmVzcCk7CisJCQkgICAgICAmbl9lbGVtX3JlcSk7CiAJaWYgKHJjIDwgMCkKIAkJZ290byBwcmVwX291dDsKIApAQCAtNTIwLDEzICs0OTAsOCBAQCBzdGF0aWMgaW50IGhpc2lfc2FzX3Rhc2tfcHJlcChzdHJ1Y3Qgc2FzX3Rhc2sgKnRhc2ssCiAJc2xvdCA9ICZoaXNpX2hiYS0+c2xvdF9pbmZvW3Nsb3RfaWR4XTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZkcS0+bG9jaywgZmxhZ3MpOwotCXdyX3FfaW5kZXggPSBoaXNpX2hiYS0+aHctPmdldF9mcmVlX3Nsb3QoaGlzaV9oYmEsIGRxKTsKLQlpZiAod3JfcV9pbmRleCA8IDApIHsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHEtPmxvY2ssIGZsYWdzKTsKLQkJcmMgPSAtRUFHQUlOOwotCQlnb3RvIGVycl9vdXRfdGFnOwotCX0KLQorCXdyX3FfaW5kZXggPSBkcS0+d3JfcG9pbnQ7CisJZHEtPndyX3BvaW50ID0gKGRxLT53cl9wb2ludCArIDEpICUgSElTSV9TQVNfUVVFVUVfU0xPVFM7CiAJbGlzdF9hZGRfdGFpbCgmc2xvdC0+ZGVsaXZlcnksICZkcS0+bGlzdCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHEtPmxvY2ssIGZsYWdzKTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmc2FzX2Rldi0+bG9jaywgZmxhZ3MpOwpAQCAtNTUxLDcgKzUxNiw4IEBAIHN0YXRpYyBpbnQgaGlzaV9zYXNfdGFza19wcmVwKHN0cnVjdCBzYXNfdGFzayAqdGFzaywKIAogCW1lbXNldChzbG90LT5jbWRfaGRyLCAwLCBzaXplb2Yoc3RydWN0IGhpc2lfc2FzX2NtZF9oZHIpKTsKIAltZW1zZXQoaGlzaV9zYXNfY21kX2hkcl9hZGRyX21lbShzbG90KSwgMCwgSElTSV9TQVNfQ09NTUFORF9UQUJMRV9TWik7Ci0JbWVtc2V0KGhpc2lfc2FzX3N0YXR1c19idWZfYWRkcl9tZW0oc2xvdCksIDAsIEhJU0lfU0FTX1NUQVRVU19CVUZfU1opOworCW1lbXNldChoaXNpX3Nhc19zdGF0dXNfYnVmX2FkZHJfbWVtKHNsb3QpLCAwLAorCSAgICAgICBzaXplb2Yoc3RydWN0IGhpc2lfc2FzX2Vycl9yZWNvcmQpKTsKIAogCXN3aXRjaCAodGFzay0+dGFza19wcm90bykgewogCWNhc2UgU0FTX1BST1RPQ09MX1NNUDoKQEAgLTU4MCwxNCArNTQ2LDEyIEBAIHN0YXRpYyBpbnQgaGlzaV9zYXNfdGFza19wcmVwKHN0cnVjdCBzYXNfdGFzayAqdGFzaywKIAogCXJldHVybiAwOwogCi1lcnJfb3V0X3RhZzoKLQloaXNpX3Nhc19zbG90X2luZGV4X2ZyZWUoaGlzaV9oYmEsIHNsb3RfaWR4KTsKIGVycl9vdXRfZGlmX2RtYV91bm1hcDoKIAlpZiAoIXNhc19wcm90b2NvbF9hdGEodGFzay0+dGFza19wcm90bykpCiAJCWhpc2lfc2FzX2RpZl9kbWFfdW5tYXAoaGlzaV9oYmEsIHRhc2ssIG5fZWxlbV9kaWYpOwogZXJyX291dF9kbWFfdW5tYXA6CiAJaGlzaV9zYXNfZG1hX3VubWFwKGhpc2lfaGJhLCB0YXNrLCBuX2VsZW0sCi0JCQkgICBuX2VsZW1fcmVxLCBuX2VsZW1fcmVzcCk7CisJCQkgICBuX2VsZW1fcmVxKTsKIHByZXBfb3V0OgogCWRldl9lcnIoZGV2LCAidGFzayBwcmVwOiBmYWlsZWRbJWRdIVxuIiwgcmMpOwogCXJldHVybiByYzsKQEAgLTcxOSwxMyArNjgzLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgaGlzaV9zYXNfZGV2aWNlICpoaXNpX3Nhc19hbGxvY19kZXYoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldmljZSkKIAlyZXR1cm4gc2FzX2RldjsKIH0KIAotI2RlZmluZSBISVNJX1NBU19TUlNUX0FUQV9ESVNLX0NOVCAzCisjZGVmaW5lIEhJU0lfU0FTX0RJU0tfUkVDT1ZFUl9DTlQgMwogc3RhdGljIGludCBoaXNpX3Nhc19pbml0X2RldmljZShzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2aWNlKQogewogCWludCByYyA9IFRNRl9SRVNQX0ZVTkNfQ09NUExFVEU7CiAJc3RydWN0IHNjc2lfbHVuIGx1bjsKIAlzdHJ1Y3QgaGlzaV9zYXNfdG1mX3Rhc2sgdG1mX3Rhc2s7Ci0JaW50IHJldHJ5ID0gSElTSV9TQVNfU1JTVF9BVEFfRElTS19DTlQ7CisJaW50IHJldHJ5ID0gSElTSV9TQVNfRElTS19SRUNPVkVSX0NOVDsKIAlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gZGV2X3RvX2hpc2lfaGJhKGRldmljZSk7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gaGlzaV9oYmEtPmRldjsKIAlzdHJ1Y3Qgc2FzX3BoeSAqbG9jYWxfcGh5OwpAQCAtNzM1LDEwICs2OTksMTQgQEAgc3RhdGljIGludCBoaXNpX3Nhc19pbml0X2RldmljZShzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2aWNlKQogCQlpbnRfdG9fc2NzaWx1bigwLCAmbHVuKTsKIAogCQl0bWZfdGFzay50bWYgPSBUTUZfQ0xFQVJfVEFTS19TRVQ7Ci0JCXJjID0gaGlzaV9zYXNfZGVidWdfaXNzdWVfc3NwX3RtZihkZXZpY2UsIGx1bi5zY3NpX2x1biwKLQkJCQkJCSAgJnRtZl90YXNrKTsKLQkJaWYgKHJjID09IFRNRl9SRVNQX0ZVTkNfQ09NUExFVEUpCi0JCQloaXNpX3Nhc19yZWxlYXNlX3Rhc2soaGlzaV9oYmEsIGRldmljZSk7CisJCXdoaWxlIChyZXRyeS0tID4gMCkgeworCQkJcmMgPSBoaXNpX3Nhc19kZWJ1Z19pc3N1ZV9zc3BfdG1mKGRldmljZSwgbHVuLnNjc2lfbHVuLAorCQkJCQkJCSAgJnRtZl90YXNrKTsKKwkJCWlmIChyYyA9PSBUTUZfUkVTUF9GVU5DX0NPTVBMRVRFKSB7CisJCQkJaGlzaV9zYXNfcmVsZWFzZV90YXNrKGhpc2lfaGJhLCBkZXZpY2UpOworCQkJCWJyZWFrOworCQkJfQorCQl9CiAJCWJyZWFrOwogCWNhc2UgU0FTX1NBVEFfREVWOgogCWNhc2UgU0FTX1NBVEFfUE06CkBAIC0xMDgxLDIxICsxMDQ5LDIyIEBAIHN0YXRpYyB2b2lkIGhpc2lfc2FzX2Rldl9nb25lKHN0cnVjdCBkb21haW5fZGV2aWNlICpkZXZpY2UpCiAJZGV2X2luZm8oZGV2LCAiZGV2WyVkOiV4XSBpcyBnb25lXG4iLAogCQkgc2FzX2Rldi0+ZGV2aWNlX2lkLCBzYXNfZGV2LT5kZXZfdHlwZSk7CiAKKwlkb3duKCZoaXNpX2hiYS0+c2VtKTsKIAlpZiAoIXRlc3RfYml0KEhJU0lfU0FTX1JFU0VUX0JJVCwgJmhpc2lfaGJhLT5mbGFncykpIHsKIAkJaGlzaV9zYXNfaW50ZXJuYWxfdGFza19hYm9ydChoaXNpX2hiYSwgZGV2aWNlLAogCQkJCQkgICAgIEhJU0lfU0FTX0lOVF9BQlRfREVWLCAwKTsKIAogCQloaXNpX3Nhc19kZXJlZ19kZXZpY2UoaGlzaV9oYmEsIGRldmljZSk7CiAKLQkJZG93bigmaGlzaV9oYmEtPnNlbSk7CiAJCWhpc2lfaGJhLT5ody0+Y2xlYXJfaXRjdChoaXNpX2hiYSwgc2FzX2Rldik7Ci0JCXVwKCZoaXNpX2hiYS0+c2VtKTsKIAkJZGV2aWNlLT5sbGRkX2RldiA9IE5VTEw7CiAJfQogCiAJaWYgKGhpc2lfaGJhLT5ody0+ZnJlZV9kZXZpY2UpCiAJCWhpc2lfaGJhLT5ody0+ZnJlZV9kZXZpY2Uoc2FzX2Rldik7CiAJc2FzX2Rldi0+ZGV2X3R5cGUgPSBTQVNfUEhZX1VOVVNFRDsKKwlzYXNfZGV2LT5zYXNfZGV2aWNlID0gTlVMTDsKKwl1cCgmaGlzaV9oYmEtPnNlbSk7CiB9CiAKIHN0YXRpYyBpbnQgaGlzaV9zYXNfcXVldWVfY29tbWFuZChzdHJ1Y3Qgc2FzX3Rhc2sgKnRhc2ssIGdmcF90IGdmcF9mbGFncykKQEAgLTE0MjMsOCArMTM5Miw3IEBAIHN0YXRpYyB2b2lkIGhpc2lfc2FzX3JlZnJlc2hfcG9ydF9pZChzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogCX0KIH0KIAotc3RhdGljIHZvaWQgaGlzaV9zYXNfcmVzY2FuX3RvcG9sb2d5KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHUzMiBvbGRfc3RhdGUsCi0JCQkgICAgICB1MzIgc3RhdGUpCitzdGF0aWMgdm9pZCBoaXNpX3Nhc19yZXNjYW5fdG9wb2xvZ3koc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwgdTMyIHN0YXRlKQogewogCXN0cnVjdCBzYXNfaGFfc3RydWN0ICpzYXNfaGEgPSAmaGlzaV9oYmEtPnNoYTsKIAlzdHJ1Y3QgYXNkX3Nhc19wb3J0ICpfc2FzX3BvcnQgPSBOVUxMOwpAQCAtMTU3NiwxNiArMTU0NCwxNiBAQCB2b2lkIGhpc2lfc2FzX2NvbnRyb2xsZXJfcmVzZXRfZG9uZShzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogCW1zbGVlcCgxMDAwKTsKIAloaXNpX3Nhc19yZWZyZXNoX3BvcnRfaWQoaGlzaV9oYmEpOwogCWNsZWFyX2JpdChISVNJX1NBU19SRUpFQ1RfQ01EX0JJVCwgJmhpc2lfaGJhLT5mbGFncyk7Ci0JdXAoJmhpc2lfaGJhLT5zZW0pOwogCiAJaWYgKGhpc2lfaGJhLT5yZWplY3Rfc3RwX2xpbmtzX21zaykKIAkJaGlzaV9zYXNfdGVybWluYXRlX3N0cF9yZWplY3QoaGlzaV9oYmEpOwogCWhpc2lfc2FzX3Jlc2V0X2luaXRfYWxsX2RldmljZXMoaGlzaV9oYmEpOworCXVwKCZoaXNpX2hiYS0+c2VtKTsKIAlzY3NpX3VuYmxvY2tfcmVxdWVzdHMoc2hvc3QpOwogCWNsZWFyX2JpdChISVNJX1NBU19SRVNFVF9CSVQsICZoaXNpX2hiYS0+ZmxhZ3MpOwogCiAJc3RhdGUgPSBoaXNpX2hiYS0+aHctPmdldF9waHlzX3N0YXRlKGhpc2lfaGJhKTsKLQloaXNpX3Nhc19yZXNjYW5fdG9wb2xvZ3koaGlzaV9oYmEsIGhpc2lfaGJhLT5waHlfc3RhdGUsIHN0YXRlKTsKKwloaXNpX3Nhc19yZXNjYW5fdG9wb2xvZ3koaGlzaV9oYmEsIHN0YXRlKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGhpc2lfc2FzX2NvbnRyb2xsZXJfcmVzZXRfZG9uZSk7CiAKQEAgLTE3NzAsMjQgKzE3MzgsMzQgQEAgc3RhdGljIGludCBoaXNpX3Nhc19kZWJ1Z19JX1RfbmV4dXNfcmVzZXQoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldmljZSkKIAlzdHJ1Y3QgaGlzaV9zYXNfZGV2aWNlICpzYXNfZGV2ID0gZGV2aWNlLT5sbGRkX2RldjsKIAlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gZGV2X3RvX2hpc2lfaGJhKGRldmljZSk7CiAJc3RydWN0IHNhc19oYV9zdHJ1Y3QgKnNhc19oYSA9ICZoaXNpX2hiYS0+c2hhOwotCXN0cnVjdCBhc2Rfc2FzX3BoeSAqc2FzX3BoeSA9IHNhc19oYS0+c2FzX3BoeVtsb2NhbF9waHktPm51bWJlcl07Ci0Jc3RydWN0IGhpc2lfc2FzX3BoeSAqcGh5ID0gY29udGFpbmVyX29mKHNhc19waHksCi0JCQlzdHJ1Y3QgaGlzaV9zYXNfcGh5LCBzYXNfcGh5KTsKIAlERUNMQVJFX0NPTVBMRVRJT05fT05TVEFDSyhwaHlyZXNldCk7CiAJaW50IHJjLCByZXNldF90eXBlOwogCisJaWYgKCFsb2NhbF9waHktPmVuYWJsZWQpIHsKKwkJc2FzX3B1dF9sb2NhbF9waHkobG9jYWxfcGh5KTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCiAJaWYgKHNjc2lfaXNfc2FzX3BoeV9sb2NhbChsb2NhbF9waHkpKSB7CisJCXN0cnVjdCBhc2Rfc2FzX3BoeSAqc2FzX3BoeSA9CisJCQlzYXNfaGEtPnNhc19waHlbbG9jYWxfcGh5LT5udW1iZXJdOworCQlzdHJ1Y3QgaGlzaV9zYXNfcGh5ICpwaHkgPQorCQkJY29udGFpbmVyX29mKHNhc19waHksIHN0cnVjdCBoaXNpX3Nhc19waHksIHNhc19waHkpOwogCQlwaHktPmluX3Jlc2V0ID0gMTsKIAkJcGh5LT5yZXNldF9jb21wbGV0aW9uID0gJnBoeXJlc2V0OwogCX0KIAogCXJlc2V0X3R5cGUgPSAoc2FzX2Rldi0+ZGV2X3N0YXR1cyA9PSBISVNJX1NBU19ERVZfSU5JVCB8fAotCQkgICAgICAhZGV2X2lzX3NhdGEoZGV2aWNlKSkgPyAxIDogMDsKKwkJICAgICAgIWRldl9pc19zYXRhKGRldmljZSkpID8gdHJ1ZSA6IGZhbHNlOwogCiAJcmMgPSBzYXNfcGh5X3Jlc2V0KGxvY2FsX3BoeSwgcmVzZXRfdHlwZSk7CiAJc2FzX3B1dF9sb2NhbF9waHkobG9jYWxfcGh5KTsKIAogCWlmIChzY3NpX2lzX3Nhc19waHlfbG9jYWwobG9jYWxfcGh5KSkgeworCQlzdHJ1Y3QgYXNkX3Nhc19waHkgKnNhc19waHkgPQorCQkJc2FzX2hhLT5zYXNfcGh5W2xvY2FsX3BoeS0+bnVtYmVyXTsKKwkJc3RydWN0IGhpc2lfc2FzX3BoeSAqcGh5ID0KKwkJCWNvbnRhaW5lcl9vZihzYXNfcGh5LCBzdHJ1Y3QgaGlzaV9zYXNfcGh5LCBzYXNfcGh5KTsKIAkJaW50IHJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmcGh5cmVzZXQsIDIgKiBIWik7CiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTE4MDIsOSArMTc4MCwxMCBAQCBzdGF0aWMgaW50IGhpc2lfc2FzX2RlYnVnX0lfVF9uZXh1c19yZXNldChzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2aWNlKQogCX0gZWxzZSBpZiAoc2FzX2Rldi0+ZGV2X3N0YXR1cyAhPSBISVNJX1NBU19ERVZfSU5JVCkgewogCQkvKgogCQkgKiBJZiBpbiBpbml0IHN0YXRlLCB3ZSByZWx5IG9uIGNhbGxlciB0byB3YWl0IGZvciBsaW5rIHRvIGJlCi0JCSAqIHJlYWR5OyBvdGhlcndpc2UsIGRlbGF5LgorCQkgKiByZWFkeTsgb3RoZXJ3aXNlLCBleGNlcHQgcGh5IHJlc2V0IGlzIGZhaWwsIGRlbGF5LgogCQkgKi8KLQkJbXNsZWVwKDIwMDApOworCQlpZiAoIXJjKQorCQkJbXNsZWVwKDIwMDApOwogCX0KIAogCXJldHVybiByYzsKQEAgLTE4NDUsMjEgKzE4MjQsMjEgQEAgc3RhdGljIGludCBoaXNpX3Nhc19sdV9yZXNldChzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2aWNlLCB1OCAqbHVuKQogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhpc2lfaGJhLT5kZXY7CiAJaW50IHJjID0gVE1GX1JFU1BfRlVOQ19GQUlMRUQ7CiAKKwkvKiBDbGVhciBpbnRlcm5hbCBJTyBhbmQgdGhlbiBsdSByZXNldCAqLworCXJjID0gaGlzaV9zYXNfaW50ZXJuYWxfdGFza19hYm9ydChoaXNpX2hiYSwgZGV2aWNlLAorCQkJCQkgIEhJU0lfU0FTX0lOVF9BQlRfREVWLCAwKTsKKwlpZiAocmMgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAibHVfcmVzZXQ6IGludGVybmFsIGFib3J0IGZhaWxlZFxuIik7CisJCWdvdG8gb3V0OworCX0KKwloaXNpX3Nhc19kZXJlZ19kZXZpY2UoaGlzaV9oYmEsIGRldmljZSk7CisKIAlpZiAoZGV2X2lzX3NhdGEoZGV2aWNlKSkgewogCQlzdHJ1Y3Qgc2FzX3BoeSAqcGh5OwogCi0JCS8qIENsZWFyIGludGVybmFsIElPIGFuZCB0aGVuIGhhcmRyZXNldCAqLwotCQlyYyA9IGhpc2lfc2FzX2ludGVybmFsX3Rhc2tfYWJvcnQoaGlzaV9oYmEsIGRldmljZSwKLQkJCQkJCSAgSElTSV9TQVNfSU5UX0FCVF9ERVYsIDApOwotCQlpZiAocmMgPCAwKSB7Ci0JCQlkZXZfZXJyKGRldiwgImx1X3Jlc2V0OiBpbnRlcm5hbCBhYm9ydCBmYWlsZWRcbiIpOwotCQkJZ290byBvdXQ7Ci0JCX0KLQkJaGlzaV9zYXNfZGVyZWdfZGV2aWNlKGhpc2lfaGJhLCBkZXZpY2UpOwotCiAJCXBoeSA9IHNhc19nZXRfbG9jYWxfcGh5KGRldmljZSk7CiAKLQkJcmMgPSBzYXNfcGh5X3Jlc2V0KHBoeSwgMSk7CisJCXJjID0gc2FzX3BoeV9yZXNldChwaHksIHRydWUpOwogCiAJCWlmIChyYyA9PSAwKQogCQkJaGlzaV9zYXNfcmVsZWFzZV90YXNrKGhpc2lfaGJhLCBkZXZpY2UpOwpAQCAtMTg2NywxNCArMTg0Niw2IEBAIHN0YXRpYyBpbnQgaGlzaV9zYXNfbHVfcmVzZXQoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldmljZSwgdTggKmx1bikKIAl9IGVsc2UgewogCQlzdHJ1Y3QgaGlzaV9zYXNfdG1mX3Rhc2sgdG1mX3Rhc2sgPSB7IC50bWYgPSAgVE1GX0xVX1JFU0VUIH07CiAKLQkJcmMgPSBoaXNpX3Nhc19pbnRlcm5hbF90YXNrX2Fib3J0KGhpc2lfaGJhLCBkZXZpY2UsCi0JCQkJCQkgIEhJU0lfU0FTX0lOVF9BQlRfREVWLCAwKTsKLQkJaWYgKHJjIDwgMCkgewotCQkJZGV2X2VycihkZXYsICJsdV9yZXNldDogaW50ZXJuYWwgYWJvcnQgZmFpbGVkXG4iKTsKLQkJCWdvdG8gb3V0OwotCQl9Ci0JCWhpc2lfc2FzX2RlcmVnX2RldmljZShoaXNpX2hiYSwgZGV2aWNlKTsKLQogCQlyYyA9IGhpc2lfc2FzX2RlYnVnX2lzc3VlX3NzcF90bWYoZGV2aWNlLCBsdW4sICZ0bWZfdGFzayk7CiAJCWlmIChyYyA9PSBUTUZfUkVTUF9GVU5DX0NPTVBMRVRFKQogCQkJaGlzaV9zYXNfcmVsZWFzZV90YXNrKGhpc2lfaGJhLCBkZXZpY2UpOwpAQCAtMTk2NCw3ICsxOTM1LDcgQEAgaGlzaV9zYXNfaW50ZXJuYWxfYWJvcnRfdGFza19leGVjKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIGludCBkZXZpY2VfaWQsCiAJc3RydWN0IGFzZF9zYXNfcG9ydCAqc2FzX3BvcnQgPSBkZXZpY2UtPnBvcnQ7CiAJc3RydWN0IGhpc2lfc2FzX2NtZF9oZHIgKmNtZF9oZHJfYmFzZTsKIAlpbnQgZGx2cnlfcXVldWVfc2xvdCwgZGx2cnlfcXVldWUsIG5fZWxlbSA9IDAsIHJjLCBzbG90X2lkeDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzLCBmbGFnc19kcSA9IDA7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgd3JfcV9pbmRleDsKIAogCWlmICh1bmxpa2VseSh0ZXN0X2JpdChISVNJX1NBU19SRUpFQ1RfQ01EX0JJVCwgJmhpc2lfaGJhLT5mbGFncykpKQpAQCAtMTk4MywxNSArMTk1NCwxMSBAQCBoaXNpX3Nhc19pbnRlcm5hbF9hYm9ydF90YXNrX2V4ZWMoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwgaW50IGRldmljZV9pZCwKIAlzbG90X2lkeCA9IHJjOwogCXNsb3QgPSAmaGlzaV9oYmEtPnNsb3RfaW5mb1tzbG90X2lkeF07CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZHEtPmxvY2ssIGZsYWdzX2RxKTsKLQl3cl9xX2luZGV4ID0gaGlzaV9oYmEtPmh3LT5nZXRfZnJlZV9zbG90KGhpc2lfaGJhLCBkcSk7Ci0JaWYgKHdyX3FfaW5kZXggPCAwKSB7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRxLT5sb2NrLCBmbGFnc19kcSk7Ci0JCXJjID0gLUVBR0FJTjsKLQkJZ290byBlcnJfb3V0X3RhZzsKLQl9CisJc3Bpbl9sb2NrX2lycXNhdmUoJmRxLT5sb2NrLCBmbGFncyk7CisJd3JfcV9pbmRleCA9IGRxLT53cl9wb2ludDsKKwlkcS0+d3JfcG9pbnQgPSAoZHEtPndyX3BvaW50ICsgMSkgJSBISVNJX1NBU19RVUVVRV9TTE9UUzsKIAlsaXN0X2FkZF90YWlsKCZzbG90LT5kZWxpdmVyeSwgJmRxLT5saXN0KTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkcS0+bG9jaywgZmxhZ3NfZHEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRxLT5sb2NrLCBmbGFncyk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNhc19kZXYtPmxvY2ssIGZsYWdzKTsKIAlsaXN0X2FkZF90YWlsKCZzbG90LT5lbnRyeSwgJnNhc19kZXYtPmxpc3QpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNhc19kZXYtPmxvY2ssIGZsYWdzKTsKQEAgLTIwMTIsNyArMTk3OSw4IEBAIGhpc2lfc2FzX2ludGVybmFsX2Fib3J0X3Rhc2tfZXhlYyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCBpbnQgZGV2aWNlX2lkLAogCiAJbWVtc2V0KHNsb3QtPmNtZF9oZHIsIDAsIHNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfY21kX2hkcikpOwogCW1lbXNldChoaXNpX3Nhc19jbWRfaGRyX2FkZHJfbWVtKHNsb3QpLCAwLCBISVNJX1NBU19DT01NQU5EX1RBQkxFX1NaKTsKLQltZW1zZXQoaGlzaV9zYXNfc3RhdHVzX2J1Zl9hZGRyX21lbShzbG90KSwgMCwgSElTSV9TQVNfU1RBVFVTX0JVRl9TWik7CisJbWVtc2V0KGhpc2lfc2FzX3N0YXR1c19idWZfYWRkcl9tZW0oc2xvdCksIDAsCisJICAgICAgIHNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfZXJyX3JlY29yZCkpOwogCiAJaGlzaV9zYXNfdGFza19wcmVwX2Fib3J0KGhpc2lfaGJhLCBzbG90LCBkZXZpY2VfaWQsCiAJCQkJICAgICAgYWJvcnRfZmxhZywgdGFza190YWcpOwpAQCAtMjAyOCw4ICsxOTk2LDYgQEAgaGlzaV9zYXNfaW50ZXJuYWxfYWJvcnRfdGFza19leGVjKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIGludCBkZXZpY2VfaWQsCiAKIAlyZXR1cm4gMDsKIAotZXJyX291dF90YWc6Ci0JaGlzaV9zYXNfc2xvdF9pbmRleF9mcmVlKGhpc2lfaGJhLCBzbG90X2lkeCk7CiBlcnJfb3V0OgogCWRldl9lcnIoZGV2LCAiaW50ZXJuYWwgYWJvcnQgdGFzayBwcmVwOiBmYWlsZWRbJWRdIVxuIiwgcmMpOwogCkBAIC0yMDg5LDYgKzIwNTUsOSBAQCBfaGlzaV9zYXNfaW50ZXJuYWxfdGFza19hYm9ydChzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLAogCiAJLyogSW50ZXJuYWwgYWJvcnQgdGltZWQgb3V0ICovCiAJaWYgKCh0YXNrLT50YXNrX3N0YXRlX2ZsYWdzICYgU0FTX1RBU0tfU1RBVEVfQUJPUlRFRCkpIHsKKwkJaWYgKGhpc2lfc2FzX2RlYnVnZnNfZW5hYmxlICYmIGhpc2lfaGJhLT5kZWJ1Z2ZzX2l0Y3QpCisJCQlxdWV1ZV93b3JrKGhpc2lfaGJhLT53cSwgJmhpc2lfaGJhLT5kZWJ1Z2ZzX3dvcmspOworCiAJCWlmICghKHRhc2stPnRhc2tfc3RhdGVfZmxhZ3MgJiBTQVNfVEFTS19TVEFURV9ET05FKSkgewogCQkJc3RydWN0IGhpc2lfc2FzX3Nsb3QgKnNsb3QgPSB0YXNrLT5sbGRkX3Rhc2s7CiAKQEAgLTIxMjMsNyArMjA5Miw3IEBAIF9oaXNpX3Nhc19pbnRlcm5hbF90YXNrX2Fib3J0KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsCiAJfQogCiBleGl0OgotCWRldl9kYmcoZGV2LCAiaW50ZXJuYWwgdGFzayBhYm9ydDogdGFzayB0byBkZXYgJTAxNmxseCB0YXNrPSVwIHJlc3A6IDB4JXggc3RzIDB4JXhcbiIsCisJZGV2X2RiZyhkZXYsICJpbnRlcm5hbCB0YXNrIGFib3J0OiB0YXNrIHRvIGRldiAlMDE2bGx4IHRhc2s9JXBLIHJlc3A6IDB4JXggc3RzIDB4JXhcbiIsCiAJCVNBU19BRERSKGRldmljZS0+c2FzX2FkZHIpLCB0YXNrLAogCQl0YXNrLT50YXNrX3N0YXR1cy5yZXNwLCAvKiAwIGlzIGNvbXBsZXRlLCAtMSBpcyB1bmRlbGl2ZXJlZCAqLwogCQl0YXNrLT50YXNrX3N0YXR1cy5zdGF0KTsKQEAgLTIyOTEsNyArMjI2MCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2FzX2RvbWFpbl9mdW5jdGlvbl90ZW1wbGF0ZSBoaXNpX3Nhc190cmFuc3BvcnRfb3BzID0gewogCiB2b2lkIGhpc2lfc2FzX2luaXRfbWVtKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiB7Ci0JaW50IGksIHMsIGosIG1heF9jb21tYW5kX2VudHJpZXMgPSBoaXNpX2hiYS0+aHctPm1heF9jb21tYW5kX2VudHJpZXM7CisJaW50IGksIHMsIGosIG1heF9jb21tYW5kX2VudHJpZXMgPSBISVNJX1NBU19NQVhfQ09NTUFORFM7CiAJc3RydWN0IGhpc2lfc2FzX2JyZWFrcG9pbnQgKnNhdGFfYnJlYWtwb2ludCA9IGhpc2lfaGJhLT5zYXRhX2JyZWFrcG9pbnQ7CiAKIAlmb3IgKGkgPSAwOyBpIDwgaGlzaV9oYmEtPnF1ZXVlX2NvdW50OyBpKyspIHsKQEAgLTIzMjgsNyArMjI5Nyw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGhpc2lfc2FzX2luaXRfbWVtKTsKIGludCBoaXNpX3Nhc19hbGxvYyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhpc2lfaGJhLT5kZXY7Ci0JaW50IGksIGosIHMsIG1heF9jb21tYW5kX2VudHJpZXMgPSBoaXNpX2hiYS0+aHctPm1heF9jb21tYW5kX2VudHJpZXM7CisJaW50IGksIGosIHMsIG1heF9jb21tYW5kX2VudHJpZXMgPSBISVNJX1NBU19NQVhfQ09NTUFORFM7CiAJaW50IG1heF9jb21tYW5kX2VudHJpZXNfcnUsIHN6X3Nsb3RfYnVmX3J1OwogCWludCBibGtfY250LCBzbG90c19wZXJfYmxrOwogCkBAIC0yMzc5LDcgKzIzNDgsNyBAQCBpbnQgaGlzaV9zYXNfYWxsb2Moc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKIAogCXMgPSBISVNJX1NBU19NQVhfSVRDVF9FTlRSSUVTICogc2l6ZW9mKHN0cnVjdCBoaXNpX3Nhc19pdGN0KTsKIAloaXNpX2hiYS0+aXRjdCA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LCBzLCAmaGlzaV9oYmEtPml0Y3RfZG1hLAotCQkJCQkgICAgIEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKTsKKwkJCQkJICAgICBHRlBfS0VSTkVMKTsKIAlpZiAoIWhpc2lfaGJhLT5pdGN0KQogCQlnb3RvIGVycl9vdXQ7CiAKQEAgLTIzOTYsNyArMjM2NSw3IEBAIGludCBoaXNpX3Nhc19hbGxvYyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogCWVsc2UKIAkJc3pfc2xvdF9idWZfcnUgPSBzaXplb2Yoc3RydWN0IGhpc2lfc2FzX3Nsb3RfYnVmX3RhYmxlKTsKIAlzel9zbG90X2J1Zl9ydSA9IHJvdW5kdXAoc3pfc2xvdF9idWZfcnUsIDY0KTsKLQlzID0gbGNtKG1heF9jb21tYW5kX2VudHJpZXNfcnUsIHN6X3Nsb3RfYnVmX3J1KTsKKwlzID0gbWF4KGxjbShtYXhfY29tbWFuZF9lbnRyaWVzX3J1LCBzel9zbG90X2J1Zl9ydSksIFBBR0VfU0laRSk7CiAJYmxrX2NudCA9IChtYXhfY29tbWFuZF9lbnRyaWVzX3J1ICogc3pfc2xvdF9idWZfcnUpIC8gczsKIAlzbG90c19wZXJfYmxrID0gcyAvIHN6X3Nsb3RfYnVmX3J1OwogCkBAIC0yNDA2LDcgKzIzNzUsNyBAQCBpbnQgaGlzaV9zYXNfYWxsb2Moc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKIAkJdm9pZCAqYnVmOwogCiAJCWJ1ZiA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LCBzLCAmYnVmX2RtYSwKLQkJCQkJICBHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CisJCQkJCSAgR0ZQX0tFUk5FTCk7CiAJCWlmICghYnVmKQogCQkJZ290byBlcnJfb3V0OwogCkBAIC0yNDU1LDExICsyNDI0LDkgQEAgaW50IGhpc2lfc2FzX2FsbG9jKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiAJCQkJCUdGUF9LRVJORUwpOwogCWlmICghaGlzaV9oYmEtPnNhdGFfYnJlYWtwb2ludCkKIAkJZ290byBlcnJfb3V0OwotCWhpc2lfc2FzX2luaXRfbWVtKGhpc2lfaGJhKTsKIAogCWhpc2lfc2FzX3Nsb3RfaW5kZXhfaW5pdChoaXNpX2hiYSk7Ci0JaGlzaV9oYmEtPmxhc3Rfc2xvdF9pbmRleCA9IGhpc2lfaGJhLT5ody0+bWF4X2NvbW1hbmRfZW50cmllcyAtCi0JCUhJU0lfU0FTX1JFU0VSVkVEX0lQVFRfQ05UOworCWhpc2lfaGJhLT5sYXN0X3Nsb3RfaW5kZXggPSBISVNJX1NBU19VTlJFU0VSVkVEX0lQVFQ7CiAKIAloaXNpX2hiYS0+d3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZShkZXZfbmFtZShkZXYpKTsKIAlpZiAoIWhpc2lfaGJhLT53cSkgewpAQCAtMjYxMCw4ICsyNTc3LDcgQEAgc3RhdGljIHN0cnVjdCBTY3NpX0hvc3QgKmhpc2lfc2FzX3Nob3N0X2FsbG9jKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCWdvdG8gZXJyX291dDsKIAl9CiAKLQlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwotCWhpc2lfaGJhLT5yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgcmVzKTsKKwloaXNpX2hiYS0+cmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKIAlpZiAoSVNfRVJSKGhpc2lfaGJhLT5yZWdzKSkKIAkJZ290byBlcnJfb3V0OwogCkBAIC0yNjcyLDEzICsyNjM4LDExIEBAIGludCBoaXNpX3Nhc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCXNob3N0LT5tYXhfY2hhbm5lbCA9IDE7CiAJc2hvc3QtPm1heF9jbWRfbGVuID0gMTY7CiAJaWYgKGhpc2lfaGJhLT5ody0+c2xvdF9pbmRleF9hbGxvYykgewotCQlzaG9zdC0+Y2FuX3F1ZXVlID0gaGlzaV9oYmEtPmh3LT5tYXhfY29tbWFuZF9lbnRyaWVzOwotCQlzaG9zdC0+Y21kX3Blcl9sdW4gPSBoaXNpX2hiYS0+aHctPm1heF9jb21tYW5kX2VudHJpZXM7CisJCXNob3N0LT5jYW5fcXVldWUgPSBISVNJX1NBU19NQVhfQ09NTUFORFM7CisJCXNob3N0LT5jbWRfcGVyX2x1biA9IEhJU0lfU0FTX01BWF9DT01NQU5EUzsKIAl9IGVsc2UgewotCQlzaG9zdC0+Y2FuX3F1ZXVlID0gaGlzaV9oYmEtPmh3LT5tYXhfY29tbWFuZF9lbnRyaWVzIC0KLQkJCUhJU0lfU0FTX1JFU0VSVkVEX0lQVFRfQ05UOwotCQlzaG9zdC0+Y21kX3Blcl9sdW4gPSBoaXNpX2hiYS0+aHctPm1heF9jb21tYW5kX2VudHJpZXMgLQotCQkJSElTSV9TQVNfUkVTRVJWRURfSVBUVF9DTlQ7CisJCXNob3N0LT5jYW5fcXVldWUgPSBISVNJX1NBU19VTlJFU0VSVkVEX0lQVFQ7CisJCXNob3N0LT5jbWRfcGVyX2x1biA9IEhJU0lfU0FTX1VOUkVTRVJWRURfSVBUVDsKIAl9CiAKIAlzaGEtPnNhc19oYV9uYW1lID0gRFJWX05BTUU7CkBAIC0yNzY5LDIxICsyNzMzLDUyIEBAIHN0YXRpYyB2b2lkIGhpc2lfc2FzX2RlYnVnZnNfc25hcHNob3RfcG9ydF9yZWcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKIAogc3RhdGljIHZvaWQgaGlzaV9zYXNfZGVidWdmc19zbmFwc2hvdF9nbG9iYWxfcmVnKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiB7Ci0JdTMyICpkYXRhYnVmID0gKHUzMiAqKWhpc2lfaGJhLT5kZWJ1Z2ZzX2dsb2JhbF9yZWc7CisJdTMyICpkYXRhYnVmID0gaGlzaV9oYmEtPmRlYnVnZnNfcmVnc1tERUJVR0ZTX0dMT0JBTF07CisJY29uc3Qgc3RydWN0IGhpc2lfc2FzX2h3ICpodyA9IGhpc2lfaGJhLT5odzsKIAljb25zdCBzdHJ1Y3QgaGlzaV9zYXNfZGVidWdmc19yZWcgKmdsb2JhbCA9Ci0JCWhpc2lfaGJhLT5ody0+ZGVidWdmc19yZWdfZ2xvYmFsOworCQkJaHctPmRlYnVnZnNfcmVnX2FycmF5W0RFQlVHRlNfR0xPQkFMXTsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBnbG9iYWwtPmNvdW50OyBpKyssIGRhdGFidWYrKykKIAkJKmRhdGFidWYgPSBnbG9iYWwtPnJlYWRfZ2xvYmFsX3JlZyhoaXNpX2hiYSwgNCAqIGkpOwogfQogCitzdGF0aWMgdm9pZCBoaXNpX3Nhc19kZWJ1Z2ZzX3NuYXBzaG90X2F4aV9yZWcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKK3sKKwl1MzIgKmRhdGFidWYgPSBoaXNpX2hiYS0+ZGVidWdmc19yZWdzW0RFQlVHRlNfQVhJXTsKKwljb25zdCBzdHJ1Y3QgaGlzaV9zYXNfaHcgKmh3ID0gaGlzaV9oYmEtPmh3OworCWNvbnN0IHN0cnVjdCBoaXNpX3Nhc19kZWJ1Z2ZzX3JlZyAqYXhpID0KKwkJCWh3LT5kZWJ1Z2ZzX3JlZ19hcnJheVtERUJVR0ZTX0FYSV07CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYXhpLT5jb3VudDsgaSsrLCBkYXRhYnVmKyspCisJCSpkYXRhYnVmID0gYXhpLT5yZWFkX2dsb2JhbF9yZWcoaGlzaV9oYmEsCisJCQkJCQk0ICogaSArIGF4aS0+YmFzZV9vZmYpOworfQorCitzdGF0aWMgdm9pZCBoaXNpX3Nhc19kZWJ1Z2ZzX3NuYXBzaG90X3Jhc19yZWcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKK3sKKwl1MzIgKmRhdGFidWYgPSBoaXNpX2hiYS0+ZGVidWdmc19yZWdzW0RFQlVHRlNfUkFTXTsKKwljb25zdCBzdHJ1Y3QgaGlzaV9zYXNfaHcgKmh3ID0gaGlzaV9oYmEtPmh3OworCWNvbnN0IHN0cnVjdCBoaXNpX3Nhc19kZWJ1Z2ZzX3JlZyAqcmFzID0KKwkJCWh3LT5kZWJ1Z2ZzX3JlZ19hcnJheVtERUJVR0ZTX1JBU107CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgcmFzLT5jb3VudDsgaSsrLCBkYXRhYnVmKyspCisJCSpkYXRhYnVmID0gcmFzLT5yZWFkX2dsb2JhbF9yZWcoaGlzaV9oYmEsCisJCQkJCQk0ICogaSArIHJhcy0+YmFzZV9vZmYpOworfQorCiBzdGF0aWMgdm9pZCBoaXNpX3Nhc19kZWJ1Z2ZzX3NuYXBzaG90X2l0Y3RfcmVnKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiB7CisJdm9pZCAqY2FjaGVidWYgPSBoaXNpX2hiYS0+ZGVidWdmc19pdGN0X2NhY2hlOwogCXZvaWQgKmRhdGFidWYgPSBoaXNpX2hiYS0+ZGVidWdmc19pdGN0OwogCXN0cnVjdCBoaXNpX3Nhc19pdGN0ICppdGN0OwogCWludCBpOwogCisJaGlzaV9oYmEtPmh3LT5yZWFkX2lvc3RfaXRjdF9jYWNoZShoaXNpX2hiYSwgSElTSV9TQVNfSVRDVF9DQUNIRSwKKwkJCQkJICAgY2FjaGVidWYpOworCiAJaXRjdCA9IGhpc2lfaGJhLT5pdGN0OwogCiAJZm9yIChpID0gMDsgaSA8IEhJU0lfU0FTX01BWF9JVENUX0VOVFJJRVM7IGkrKywgaXRjdCsrKSB7CkBAIC0yNzk0LDExICsyNzg5LDE1IEBAIHN0YXRpYyB2b2lkIGhpc2lfc2FzX2RlYnVnZnNfc25hcHNob3RfaXRjdF9yZWcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKIAogc3RhdGljIHZvaWQgaGlzaV9zYXNfZGVidWdmc19zbmFwc2hvdF9pb3N0X3JlZyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogewotCWludCBtYXhfY29tbWFuZF9lbnRyaWVzID0gaGlzaV9oYmEtPmh3LT5tYXhfY29tbWFuZF9lbnRyaWVzOworCWludCBtYXhfY29tbWFuZF9lbnRyaWVzID0gSElTSV9TQVNfTUFYX0NPTU1BTkRTOworCXZvaWQgKmNhY2hlYnVmID0gaGlzaV9oYmEtPmRlYnVnZnNfaW9zdF9jYWNoZTsKIAl2b2lkICpkYXRhYnVmID0gaGlzaV9oYmEtPmRlYnVnZnNfaW9zdDsKIAlzdHJ1Y3QgaGlzaV9zYXNfaW9zdCAqaW9zdDsKIAlpbnQgaTsKIAorCWhpc2lfaGJhLT5ody0+cmVhZF9pb3N0X2l0Y3RfY2FjaGUoaGlzaV9oYmEsIEhJU0lfU0FTX0lPU1RfQ0FDSEUsCisJCQkJCSAgIGNhY2hlYnVmKTsKKwogCWlvc3QgPSBoaXNpX2hiYS0+aW9zdDsKIAogCWZvciAoaSA9IDA7IGkgPCBtYXhfY29tbWFuZF9lbnRyaWVzOyBpKyssIGlvc3QrKykgewpAQCAtMjg0NSw5ICsyODQ0LDkgQEAgc3RhdGljIGludCBoaXNpX3Nhc19kZWJ1Z2ZzX2dsb2JhbF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcCkKIHsKIAlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gcy0+cHJpdmF0ZTsKIAljb25zdCBzdHJ1Y3QgaGlzaV9zYXNfaHcgKmh3ID0gaGlzaV9oYmEtPmh3OwotCWNvbnN0IHN0cnVjdCBoaXNpX3Nhc19kZWJ1Z2ZzX3JlZyAqcmVnX2dsb2JhbCA9IGh3LT5kZWJ1Z2ZzX3JlZ19nbG9iYWw7CisJY29uc3Qgdm9pZCAqcmVnX2dsb2JhbCA9IGh3LT5kZWJ1Z2ZzX3JlZ19hcnJheVtERUJVR0ZTX0dMT0JBTF07CiAKLQloaXNpX3Nhc19kZWJ1Z2ZzX3ByaW50X3JlZyhoaXNpX2hiYS0+ZGVidWdmc19nbG9iYWxfcmVnLAorCWhpc2lfc2FzX2RlYnVnZnNfcHJpbnRfcmVnKGhpc2lfaGJhLT5kZWJ1Z2ZzX3JlZ3NbREVCVUdGU19HTE9CQUxdLAogCQkJCSAgIHJlZ19nbG9iYWwsIHMpOwogCiAJcmV0dXJuIDA7CkBAIC0yODY3LDYgKzI4NjYsNTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaGlzaV9zYXNfZGVidWdmc19nbG9iYWxfZm9wcyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIH07CiAKK3N0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19heGlfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnApCit7CisJc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSA9IHMtPnByaXZhdGU7CisJY29uc3Qgc3RydWN0IGhpc2lfc2FzX2h3ICpodyA9IGhpc2lfaGJhLT5odzsKKwljb25zdCB2b2lkICpyZWdfYXhpID0gaHctPmRlYnVnZnNfcmVnX2FycmF5W0RFQlVHRlNfQVhJXTsKKworCWhpc2lfc2FzX2RlYnVnZnNfcHJpbnRfcmVnKGhpc2lfaGJhLT5kZWJ1Z2ZzX3JlZ3NbREVCVUdGU19BWEldLAorCQkJCSAgIHJlZ19heGksIHMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19heGlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlscCwgaGlzaV9zYXNfZGVidWdmc19heGlfc2hvdywKKwkJCSAgIGlub2RlLT5pX3ByaXZhdGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBoaXNpX3Nhc19kZWJ1Z2ZzX2F4aV9mb3BzID0geworCS5vcGVuID0gaGlzaV9zYXNfZGVidWdmc19heGlfb3BlbiwKKwkucmVhZCA9IHNlcV9yZWFkLAorCS5sbHNlZWsgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKKwkub3duZXIgPSBUSElTX01PRFVMRSwKK307CisKK3N0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19yYXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnApCit7CisJc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSA9IHMtPnByaXZhdGU7CisJY29uc3Qgc3RydWN0IGhpc2lfc2FzX2h3ICpodyA9IGhpc2lfaGJhLT5odzsKKwljb25zdCB2b2lkICpyZWdfcmFzID0gaHctPmRlYnVnZnNfcmVnX2FycmF5W0RFQlVHRlNfUkFTXTsKKworCWhpc2lfc2FzX2RlYnVnZnNfcHJpbnRfcmVnKGhpc2lfaGJhLT5kZWJ1Z2ZzX3JlZ3NbREVCVUdGU19SQVNdLAorCQkJCSAgIHJlZ19yYXMsIHMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19yYXNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlscCwgaGlzaV9zYXNfZGVidWdmc19yYXNfc2hvdywKKwkJCSAgIGlub2RlLT5pX3ByaXZhdGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBoaXNpX3Nhc19kZWJ1Z2ZzX3Jhc19mb3BzID0geworCS5vcGVuID0gaGlzaV9zYXNfZGVidWdmc19yYXNfb3BlbiwKKwkucmVhZCA9IHNlcV9yZWFkLAorCS5sbHNlZWsgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKKwkub3duZXIgPSBUSElTX01PRFVMRSwKK307CisKIHN0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19wb3J0X3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwKQogewogCXN0cnVjdCBoaXNpX3Nhc19waHkgKnBoeSA9IHMtPnByaXZhdGU7CkBAIC0yODkzLDggKzI5NDQsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBoaXNpX3Nhc19kZWJ1Z2ZzX3BvcnRfZm9wcyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIH07CiAKLXN0YXRpYyBpbnQgaGlzaV9zYXNfc2hvd19yb3dfNjQoc3RydWN0IHNlcV9maWxlICpzLCBpbnQgaW5kZXgsCi0JCQkJaW50IHN6LCBfX2xlNjQgKnB0cikKK3N0YXRpYyB2b2lkIGhpc2lfc2FzX3Nob3dfcm93XzY0KHN0cnVjdCBzZXFfZmlsZSAqcywgaW50IGluZGV4LAorCQkJCSBpbnQgc3osIF9fbGU2NCAqcHRyKQogewogCWludCBpOwogCkBAIC0yOTA3LDEyICsyOTU4LDEwIEBAIHN0YXRpYyBpbnQgaGlzaV9zYXNfc2hvd19yb3dfNjQoc3RydWN0IHNlcV9maWxlICpzLCBpbnQgaW5kZXgsCiAJfQogCiAJc2VxX3B1dHMocywgIlxuIik7Ci0KLQlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBoaXNpX3Nhc19zaG93X3Jvd18zMihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIGludCBpbmRleCwKLQkJCQlpbnQgc3osIF9fbGUzMiAqcHRyKQorc3RhdGljIHZvaWQgaGlzaV9zYXNfc2hvd19yb3dfMzIoc3RydWN0IHNlcV9maWxlICpzLCBpbnQgaW5kZXgsCisJCQkJIGludCBzeiwgX19sZTMyICpwdHIpCiB7CiAJaW50IGk7CiAKQEAgLTI5MjQsMTEgKzI5NzMsOSBAQCBzdGF0aWMgaW50IGhpc2lfc2FzX3Nob3dfcm93XzMyKHN0cnVjdCBzZXFfZmlsZSAqcywgaW50IGluZGV4LAogCQkJc2VxX3B1dHMocywgIlxuXHQiKTsKIAl9CiAJc2VxX3B1dHMocywgIlxuIik7Ci0KLQlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBoaXNpX3Nhc19jcV9zaG93X3Nsb3Qoc3RydWN0IHNlcV9maWxlICpzLCBpbnQgc2xvdCwgdm9pZCAqY3FfcHRyKQorc3RhdGljIHZvaWQgaGlzaV9zYXNfY3Ffc2hvd19zbG90KHN0cnVjdCBzZXFfZmlsZSAqcywgaW50IHNsb3QsIHZvaWQgKmNxX3B0cikKIHsKIAlzdHJ1Y3QgaGlzaV9zYXNfY3EgKmNxID0gY3FfcHRyOwogCXN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEgPSBjcS0+aGlzaV9oYmE7CkBAIC0yOTM2LDIwICsyOTgzLDE4IEBAIHN0YXRpYyBpbnQgaGlzaV9zYXNfY3Ffc2hvd19zbG90KHN0cnVjdCBzZXFfZmlsZSAqcywgaW50IHNsb3QsIHZvaWQgKmNxX3B0cikKIAlfX2xlMzIgKmNvbXBsZXRlX2hkciA9IGNvbXBsZXRlX3F1ZXVlICsKIAkJCShoaXNpX2hiYS0+aHctPmNvbXBsZXRlX2hkcl9zaXplICogc2xvdCk7CiAKLQlyZXR1cm4gaGlzaV9zYXNfc2hvd19yb3dfMzIocywgc2xvdCwKLQkJCQloaXNpX2hiYS0+aHctPmNvbXBsZXRlX2hkcl9zaXplLAotCQkJCWNvbXBsZXRlX2hkcik7CisJaGlzaV9zYXNfc2hvd19yb3dfMzIocywgc2xvdCwKKwkJCSAgICAgaGlzaV9oYmEtPmh3LT5jb21wbGV0ZV9oZHJfc2l6ZSwKKwkJCSAgICAgY29tcGxldGVfaGRyKTsKIH0KIAogc3RhdGljIGludCBoaXNpX3Nhc19kZWJ1Z2ZzX2NxX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwKQogewogCXN0cnVjdCBoaXNpX3Nhc19jcSAqY3EgPSBzLT5wcml2YXRlOwotCWludCBzbG90LCByZXQ7CisJaW50IHNsb3Q7CiAKIAlmb3IgKHNsb3QgPSAwOyBzbG90IDwgSElTSV9TQVNfUVVFVUVfU0xPVFM7IHNsb3QrKykgewotCQlyZXQgPSBoaXNpX3Nhc19jcV9zaG93X3Nsb3Qocywgc2xvdCwgY3EpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKKwkJaGlzaV9zYXNfY3Ffc2hvd19zbG90KHMsIHNsb3QsIGNxKTsKIAl9CiAJcmV0dXJuIDA7CiB9CkBAIC0yOTY3LDcgKzMwMTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBoaXNpX3Nhc19kZWJ1Z2ZzX2NxX2ZvcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiB9OwogCi1zdGF0aWMgaW50IGhpc2lfc2FzX2RxX3Nob3dfc2xvdChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIGludCBzbG90LCB2b2lkICpkcV9wdHIpCitzdGF0aWMgdm9pZCBoaXNpX3Nhc19kcV9zaG93X3Nsb3Qoc3RydWN0IHNlcV9maWxlICpzLCBpbnQgc2xvdCwgdm9pZCAqZHFfcHRyKQogewogCXN0cnVjdCBoaXNpX3Nhc19kcSAqZHEgPSBkcV9wdHI7CiAJc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSA9IGRxLT5oaXNpX2hiYTsKQEAgLTI5NzUsMTggKzMwMjAsMTUgQEAgc3RhdGljIGludCBoaXNpX3Nhc19kcV9zaG93X3Nsb3Qoc3RydWN0IHNlcV9maWxlICpzLCBpbnQgc2xvdCwgdm9pZCAqZHFfcHRyKQogCV9fbGUzMiAqY21kX2hkciA9IGNtZF9xdWV1ZSArCiAJCXNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfY21kX2hkcikgKiBzbG90OwogCi0JcmV0dXJuIGhpc2lfc2FzX3Nob3dfcm93XzMyKHMsIHNsb3QsIHNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfY21kX2hkciksCi0JCQkJICAgIGNtZF9oZHIpOworCWhpc2lfc2FzX3Nob3dfcm93XzMyKHMsIHNsb3QsIHNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfY21kX2hkciksIGNtZF9oZHIpOwogfQogCiBzdGF0aWMgaW50IGhpc2lfc2FzX2RlYnVnZnNfZHFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnApCiB7Ci0JaW50IHNsb3QsIHJldDsKKwlpbnQgc2xvdDsKIAogCWZvciAoc2xvdCA9IDA7IHNsb3QgPCBISVNJX1NBU19RVUVVRV9TTE9UUzsgc2xvdCsrKSB7Ci0JCXJldCA9IGhpc2lfc2FzX2RxX3Nob3dfc2xvdChzLCBzbG90LCBzLT5wcml2YXRlKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7CisJCWhpc2lfc2FzX2RxX3Nob3dfc2xvdChzLCBzbG90LCBzLT5wcml2YXRlKTsKIAl9CiAJcmV0dXJuIDA7CiB9CkBAIC0zMDA4LDE0ICszMDUwLDEyIEBAIHN0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19pb3N0X3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwKQogewogCXN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEgPSBzLT5wcml2YXRlOwogCXN0cnVjdCBoaXNpX3Nhc19pb3N0ICpkZWJ1Z2ZzX2lvc3QgPSBoaXNpX2hiYS0+ZGVidWdmc19pb3N0OwotCWludCBpLCByZXQsIG1heF9jb21tYW5kX2VudHJpZXMgPSBoaXNpX2hiYS0+aHctPm1heF9jb21tYW5kX2VudHJpZXM7Ci0JX19sZTY0ICppb3N0ID0gJmRlYnVnZnNfaW9zdC0+cXcwOworCWludCBpLCBtYXhfY29tbWFuZF9lbnRyaWVzID0gSElTSV9TQVNfTUFYX0NPTU1BTkRTOwogCiAJZm9yIChpID0gMDsgaSA8IG1heF9jb21tYW5kX2VudHJpZXM7IGkrKywgZGVidWdmc19pb3N0KyspIHsKLQkJcmV0ID0gaGlzaV9zYXNfc2hvd19yb3dfNjQocywgaSwgc2l6ZW9mKCpkZWJ1Z2ZzX2lvc3QpLAotCQkJCQkgICBpb3N0KTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7CisJCV9fbGU2NCAqaW9zdCA9ICZkZWJ1Z2ZzX2lvc3QtPnF3MDsKKworCQloaXNpX3Nhc19zaG93X3Jvd182NChzLCBpLCBzaXplb2YoKmRlYnVnZnNfaW9zdCksIGlvc3QpOwogCX0KIAogCXJldHVybiAwOwpAQCAtMzAzNCwxOCArMzA3NCw1NiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBoaXNpX3Nhc19kZWJ1Z2ZzX2lvc3RfZm9wcyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIH07CiAKK3N0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19pb3N0X2NhY2hlX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwKQoreworCXN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEgPSBzLT5wcml2YXRlOworCXN0cnVjdCBoaXNpX3Nhc19pb3N0X2l0Y3RfY2FjaGUgKmlvc3RfY2FjaGUgPQorCQkoc3RydWN0IGhpc2lfc2FzX2lvc3RfaXRjdF9jYWNoZSAqKWhpc2lfaGJhLT5kZWJ1Z2ZzX2lvc3RfY2FjaGU7CisJdTMyIGNhY2hlX3NpemUgPSBISVNJX1NBU19JT1NUX0lUQ1RfQ0FDSEVfRFdfU1ogKiA0OworCWludCBpLCB0YWJfaWR4OworCV9fbGU2NCAqaW9zdDsKKworCWZvciAoaSA9IDA7IGkgPCBISVNJX1NBU19JT1NUX0lUQ1RfQ0FDSEVfTlVNOyBpKyssIGlvc3RfY2FjaGUrKykgeworCQkvKgorCQkgKiBEYXRhIHN0cnVjdCBvZiBJT1NUIGNhY2hlOgorCQkgKiBEYXRhWzFdOiBCSVQwfjE1OiBUYWJsZSBpbmRleAorCQkgKgkgICAgQml0MTY6ICAgVmFsaWQgbWFzaworCQkgKiBEYXRhWzJdfls5XTogSU9TVCB0YWJsZQorCQkgKi8KKwkJdGFiX2lkeCA9IChpb3N0X2NhY2hlLT5kYXRhWzFdICYgMHhmZmZmKTsKKwkJaW9zdCA9IChfX2xlNjQgKilpb3N0X2NhY2hlOworCisJCWhpc2lfc2FzX3Nob3dfcm93XzY0KHMsIHRhYl9pZHgsIGNhY2hlX3NpemUsIGlvc3QpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhpc2lfc2FzX2RlYnVnZnNfaW9zdF9jYWNoZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJCSAgICBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlscCwgaGlzaV9zYXNfZGVidWdmc19pb3N0X2NhY2hlX3Nob3csCisJCQkgICBpbm9kZS0+aV9wcml2YXRlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaGlzaV9zYXNfZGVidWdmc19pb3N0X2NhY2hlX2ZvcHMgPSB7CisJLm9wZW4gPSBoaXNpX3Nhc19kZWJ1Z2ZzX2lvc3RfY2FjaGVfb3BlbiwKKwkucmVhZCA9IHNlcV9yZWFkLAorCS5sbHNlZWsgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKKwkub3duZXIgPSBUSElTX01PRFVMRSwKK307CisKIHN0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19pdGN0X3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwKQogewotCWludCBpLCByZXQ7CisJaW50IGk7CiAJc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSA9IHMtPnByaXZhdGU7CiAJc3RydWN0IGhpc2lfc2FzX2l0Y3QgKmRlYnVnZnNfaXRjdCA9IGhpc2lfaGJhLT5kZWJ1Z2ZzX2l0Y3Q7Ci0JX19sZTY0ICppdGN0ID0gJmRlYnVnZnNfaXRjdC0+cXcwOwogCiAJZm9yIChpID0gMDsgaSA8IEhJU0lfU0FTX01BWF9JVENUX0VOVFJJRVM7IGkrKywgZGVidWdmc19pdGN0KyspIHsKLQkJcmV0ID0gaGlzaV9zYXNfc2hvd19yb3dfNjQocywgaSwgc2l6ZW9mKCpkZWJ1Z2ZzX2l0Y3QpLAotCQkJCQkgICBpdGN0KTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7CisJCV9fbGU2NCAqaXRjdCA9ICZkZWJ1Z2ZzX2l0Y3QtPnF3MDsKKworCQloaXNpX3Nhc19zaG93X3Jvd182NChzLCBpLCBzaXplb2YoKmRlYnVnZnNfaXRjdCksIGl0Y3QpOwogCX0KIAogCXJldHVybiAwOwpAQCAtMzA2NCw2ICszMTQyLDQ2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGhpc2lfc2FzX2RlYnVnZnNfaXRjdF9mb3BzID0gewogCS5vd25lciA9IFRISVNfTU9EVUxFLAogfTsKIAorc3RhdGljIGludCBoaXNpX3Nhc19kZWJ1Z2ZzX2l0Y3RfY2FjaGVfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnApCit7CisJc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSA9IHMtPnByaXZhdGU7CisJc3RydWN0IGhpc2lfc2FzX2lvc3RfaXRjdF9jYWNoZSAqaXRjdF9jYWNoZSA9CisJCShzdHJ1Y3QgaGlzaV9zYXNfaW9zdF9pdGN0X2NhY2hlICopaGlzaV9oYmEtPmRlYnVnZnNfaXRjdF9jYWNoZTsKKwl1MzIgY2FjaGVfc2l6ZSA9IEhJU0lfU0FTX0lPU1RfSVRDVF9DQUNIRV9EV19TWiAqIDQ7CisJaW50IGksIHRhYl9pZHg7CisJX19sZTY0ICppdGN0OworCisJZm9yIChpID0gMDsgaSA8IEhJU0lfU0FTX0lPU1RfSVRDVF9DQUNIRV9OVU07IGkrKywgaXRjdF9jYWNoZSsrKSB7CisJCS8qCisJCSAqIERhdGEgc3RydWN0IG9mIElUQ1QgY2FjaGU6CisJCSAqIERhdGFbMV06IEJJVDB+MTU6IFRhYmxlIGluZGV4CisJCSAqCSAgICBCaXQxNjogICBWYWxpZCBtYXNrCisJCSAqIERhdGFbMl1+WzldOiBJVENUIHRhYmxlCisJCSAqLworCQl0YWJfaWR4ID0gaXRjdF9jYWNoZS0+ZGF0YVsxXSAmIDB4ZmZmZjsKKwkJaXRjdCA9IChfX2xlNjQgKilpdGN0X2NhY2hlOworCisJCWhpc2lfc2FzX3Nob3dfcm93XzY0KHMsIHRhYl9pZHgsIGNhY2hlX3NpemUsIGl0Y3QpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhpc2lfc2FzX2RlYnVnZnNfaXRjdF9jYWNoZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJCSAgICBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlscCwgaGlzaV9zYXNfZGVidWdmc19pdGN0X2NhY2hlX3Nob3csCisJCQkgICBpbm9kZS0+aV9wcml2YXRlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaGlzaV9zYXNfZGVidWdmc19pdGN0X2NhY2hlX2ZvcHMgPSB7CisJLm9wZW4gPSBoaXNpX3Nhc19kZWJ1Z2ZzX2l0Y3RfY2FjaGVfb3BlbiwKKwkucmVhZCA9IHNlcV9yZWFkLAorCS5sbHNlZWsgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKKwkub3duZXIgPSBUSElTX01PRFVMRSwKK307CisKIHN0YXRpYyB2b2lkIGhpc2lfc2FzX2RlYnVnZnNfY3JlYXRlX2ZpbGVzKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiB7CiAJc3RydWN0IGRlbnRyeSAqZHVtcF9kZW50cnk7CkBAIC0zMTEwLDkgKzMyMjgsMjEgQEAgc3RhdGljIHZvaWQgaGlzaV9zYXNfZGVidWdmc19jcmVhdGVfZmlsZXMoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKIAlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJpb3N0IiwgMDQwMCwgZHVtcF9kZW50cnksIGhpc2lfaGJhLAogCQkJICAgICZoaXNpX3Nhc19kZWJ1Z2ZzX2lvc3RfZm9wcyk7CiAKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJpb3N0X2NhY2hlIiwgMDQwMCwgZHVtcF9kZW50cnksIGhpc2lfaGJhLAorCQkJICAgICZoaXNpX3Nhc19kZWJ1Z2ZzX2lvc3RfY2FjaGVfZm9wcyk7CisKIAlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJpdGN0IiwgMDQwMCwgZHVtcF9kZW50cnksIGhpc2lfaGJhLAogCQkJICAgICZoaXNpX3Nhc19kZWJ1Z2ZzX2l0Y3RfZm9wcyk7CiAKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJpdGN0X2NhY2hlIiwgMDQwMCwgZHVtcF9kZW50cnksIGhpc2lfaGJhLAorCQkJICAgICZoaXNpX3Nhc19kZWJ1Z2ZzX2l0Y3RfY2FjaGVfZm9wcyk7CisKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJheGkiLCAwNDAwLCBkdW1wX2RlbnRyeSwgaGlzaV9oYmEsCisJCQkgICAgJmhpc2lfc2FzX2RlYnVnZnNfYXhpX2ZvcHMpOworCisJZGVidWdmc19jcmVhdGVfZmlsZSgicmFzIiwgMDQwMCwgZHVtcF9kZW50cnksIGhpc2lfaGJhLAorCQkJICAgICZoaXNpX3Nhc19kZWJ1Z2ZzX3Jhc19mb3BzKTsKKwogCXJldHVybjsKIH0KIApAQCAtMzEyMiw2ICszMjUyLDggQEAgc3RhdGljIHZvaWQgaGlzaV9zYXNfZGVidWdmc19zbmFwc2hvdF9yZWdzKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiAKIAloaXNpX3Nhc19kZWJ1Z2ZzX3NuYXBzaG90X2dsb2JhbF9yZWcoaGlzaV9oYmEpOwogCWhpc2lfc2FzX2RlYnVnZnNfc25hcHNob3RfcG9ydF9yZWcoaGlzaV9oYmEpOworCWhpc2lfc2FzX2RlYnVnZnNfc25hcHNob3RfYXhpX3JlZyhoaXNpX2hiYSk7CisJaGlzaV9zYXNfZGVidWdmc19zbmFwc2hvdF9yYXNfcmVnKGhpc2lfaGJhKTsKIAloaXNpX3Nhc19kZWJ1Z2ZzX3NuYXBzaG90X2NxX3JlZyhoaXNpX2hiYSk7CiAJaGlzaV9zYXNfZGVidWdmc19zbmFwc2hvdF9kcV9yZWcoaGlzaV9oYmEpOwogCWhpc2lfc2FzX2RlYnVnZnNfc25hcHNob3RfaXRjdF9yZWcoaGlzaV9oYmEpOwpAQCAtMzE2Miw2ICszMjk0LDM4MiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBoaXNpX3Nhc19kZWJ1Z2ZzX3RyaWdnZXJfZHVtcF9mb3BzID0gewogCS5vd25lciA9IFRISVNfTU9EVUxFLAogfTsKIAorZW51bSB7CisJSElTSV9TQVNfQklTVF9MT09QQkFDS19NT0RFX0RJR0lUQUwgPSAwLAorCUhJU0lfU0FTX0JJU1RfTE9PUEJBQ0tfTU9ERV9TRVJERVMsCisJSElTSV9TQVNfQklTVF9MT09QQkFDS19NT0RFX1JFTU9URSwKK307CisKK2VudW0geworCUhJU0lfU0FTX0JJU1RfQ09ERV9NT0RFX1BSQlM3ID0gMCwKKwlISVNJX1NBU19CSVNUX0NPREVfTU9ERV9QUkJTMjMsCisJSElTSV9TQVNfQklTVF9DT0RFX01PREVfUFJCUzMxLAorCUhJU0lfU0FTX0JJU1RfQ09ERV9NT0RFX0pUUEFULAorCUhJU0lfU0FTX0JJU1RfQ09ERV9NT0RFX0NKVFBBVCwKKwlISVNJX1NBU19CSVNUX0NPREVfTU9ERV9TQ1JBTUJFRF8wLAorCUhJU0lfU0FTX0JJU1RfQ09ERV9NT0RFX1RSQUlOLAorCUhJU0lfU0FTX0JJU1RfQ09ERV9NT0RFX1RSQUlOX0RPTkUsCisJSElTSV9TQVNfQklTVF9DT0RFX01PREVfSEZUUCwKKwlISVNJX1NBU19CSVNUX0NPREVfTU9ERV9NRlRQLAorCUhJU0lfU0FTX0JJU1RfQ09ERV9NT0RFX0xGVFAsCisJSElTSV9TQVNfQklTVF9DT0RFX01PREVfRklYRURfREFUQSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeworCWludAkJdmFsdWU7CisJY2hhcgkJKm5hbWU7Cit9IGhpc2lfc2FzX2RlYnVnZnNfbG9vcF9saW5rcmF0ZVtdID0geworCXsgU0FTX0xJTktfUkFURV8xXzVfR0JQUywgIjEuNSBHYml0IiB9LAorCXsgU0FTX0xJTktfUkFURV8zXzBfR0JQUywgIjMuMCBHYml0IiB9LAorCXsgU0FTX0xJTktfUkFURV82XzBfR0JQUywgIjYuMCBHYml0IiB9LAorCXsgU0FTX0xJTktfUkFURV8xMl8wX0dCUFMsICIxMi4wIEdiaXQiIH0sCit9OworCitzdGF0aWMgaW50IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9saW5rcmF0ZV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcCkKK3sKKwlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gcy0+cHJpdmF0ZTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhpc2lfc2FzX2RlYnVnZnNfbG9vcF9saW5rcmF0ZSk7IGkrKykgeworCQlpbnQgbWF0Y2ggPSAoaGlzaV9oYmEtPmRlYnVnZnNfYmlzdF9saW5rcmF0ZSA9PQorCQkJICAgICBoaXNpX3Nhc19kZWJ1Z2ZzX2xvb3BfbGlua3JhdGVbaV0udmFsdWUpOworCisJCXNlcV9wcmludGYocywgIiVzJXMlcyAiLCBtYXRjaCA/ICJbIiA6ICIiLAorCQkJICAgaGlzaV9zYXNfZGVidWdmc19sb29wX2xpbmtyYXRlW2ldLm5hbWUsCisJCQkgICBtYXRjaCA/ICJdIiA6ICIiKTsKKwl9CisJc2VxX3B1dHMocywgIlxuIik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNzaXplX3QgaGlzaV9zYXNfZGVidWdmc19iaXN0X2xpbmtyYXRlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAorCQkJCQkJICAgIGNvbnN0IGNoYXIgX191c2VyICpidWYsCisJCQkJCQkgICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IHNlcV9maWxlICptID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEgPSBtLT5wcml2YXRlOworCWNoYXIga2J1ZlsxNl0gPSB7fSwgKnBrYnVmOworCWJvb2wgZm91bmQgPSBmYWxzZTsKKwlpbnQgaTsKKworCWlmIChoaXNpX2hiYS0+ZGVidWdmc19iaXN0X2VuYWJsZSkKKwkJcmV0dXJuIC1FUEVSTTsKKworCWlmIChjb3VudCA+PSBzaXplb2Yoa2J1ZikpCisJCXJldHVybiAtRU9WRVJGTE9XOworCisJaWYgKGNvcHlfZnJvbV91c2VyKGtidWYsIGJ1ZiwgY291bnQpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXBrYnVmID0gc3Ryc3RyaXAoa2J1Zik7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShoaXNpX3Nhc19kZWJ1Z2ZzX2xvb3BfbGlua3JhdGUpOyBpKyspIHsKKwkJaWYgKCFzdHJuY21wKGhpc2lfc2FzX2RlYnVnZnNfbG9vcF9saW5rcmF0ZVtpXS5uYW1lLAorCQkJICAgICBwa2J1ZiwgMTYpKSB7CisJCQloaXNpX2hiYS0+ZGVidWdmc19iaXN0X2xpbmtyYXRlID0KKwkJCQloaXNpX3Nhc19kZWJ1Z2ZzX2xvb3BfbGlua3JhdGVbaV0udmFsdWU7CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghZm91bmQpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgaW50IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9saW5rcmF0ZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJCSAgICAgICBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlscCwgaGlzaV9zYXNfZGVidWdmc19iaXN0X2xpbmtyYXRlX3Nob3csCisJCQkgICBpbm9kZS0+aV9wcml2YXRlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaGlzaV9zYXNfZGVidWdmc19iaXN0X2xpbmtyYXRlX29wcyA9IHsKKwkub3BlbiA9IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9saW5rcmF0ZV9vcGVuLAorCS5yZWFkID0gc2VxX3JlYWQsCisJLndyaXRlID0gaGlzaV9zYXNfZGVidWdmc19iaXN0X2xpbmtyYXRlX3dyaXRlLAorCS5sbHNlZWsgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKKwkub3duZXIgPSBUSElTX01PRFVMRSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeworCWludAkJdmFsdWU7CisJY2hhcgkJKm5hbWU7Cit9IGhpc2lfc2FzX2RlYnVnZnNfbG9vcF9jb2RlX21vZGVbXSA9IHsKKwl7IEhJU0lfU0FTX0JJU1RfQ09ERV9NT0RFX1BSQlM3LCAiUFJCUzciIH0sCisJeyBISVNJX1NBU19CSVNUX0NPREVfTU9ERV9QUkJTMjMsICJQUkJTMjMiIH0sCisJeyBISVNJX1NBU19CSVNUX0NPREVfTU9ERV9QUkJTMzEsICJQUkJTMzEiIH0sCisJeyBISVNJX1NBU19CSVNUX0NPREVfTU9ERV9KVFBBVCwgIkpUUEFUIiB9LAorCXsgSElTSV9TQVNfQklTVF9DT0RFX01PREVfQ0pUUEFULCAiQ0pUUEFUIiB9LAorCXsgSElTSV9TQVNfQklTVF9DT0RFX01PREVfU0NSQU1CRURfMCwgIlNDUkFNQkVEXzAiIH0sCisJeyBISVNJX1NBU19CSVNUX0NPREVfTU9ERV9UUkFJTiwgIlRSQUlOIiB9LAorCXsgSElTSV9TQVNfQklTVF9DT0RFX01PREVfVFJBSU5fRE9ORSwgIlRSQUlOX0RPTkUiIH0sCisJeyBISVNJX1NBU19CSVNUX0NPREVfTU9ERV9IRlRQLCAiSEZUUCIgfSwKKwl7IEhJU0lfU0FTX0JJU1RfQ09ERV9NT0RFX01GVFAsICJNRlRQIiB9LAorCXsgSElTSV9TQVNfQklTVF9DT0RFX01PREVfTEZUUCwgIkxGVFAiIH0sCisJeyBISVNJX1NBU19CSVNUX0NPREVfTU9ERV9GSVhFRF9EQVRBLCAiRklYRURfREFUQSIgfSwKK307CisKK3N0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19iaXN0X2NvZGVfbW9kZV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcCkKK3sKKwlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gcy0+cHJpdmF0ZTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhpc2lfc2FzX2RlYnVnZnNfbG9vcF9jb2RlX21vZGUpOyBpKyspIHsKKwkJaW50IG1hdGNoID0gKGhpc2lfaGJhLT5kZWJ1Z2ZzX2Jpc3RfY29kZV9tb2RlID09CisJCQkgICAgIGhpc2lfc2FzX2RlYnVnZnNfbG9vcF9jb2RlX21vZGVbaV0udmFsdWUpOworCisJCXNlcV9wcmludGYocywgIiVzJXMlcyAiLCBtYXRjaCA/ICJbIiA6ICIiLAorCQkJICAgaGlzaV9zYXNfZGVidWdmc19sb29wX2NvZGVfbW9kZVtpXS5uYW1lLAorCQkJICAgbWF0Y2ggPyAiXSIgOiAiIik7CisJfQorCXNlcV9wdXRzKHMsICJcbiIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9jb2RlX21vZGVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsCisJCQkJCQkgICAgIGNvbnN0IGNoYXIgX191c2VyICpidWYsCisJCQkJCQkgICAgIHNpemVfdCBjb3VudCwKKwkJCQkJCSAgICAgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gbS0+cHJpdmF0ZTsKKwljaGFyIGtidWZbMTZdID0ge30sICpwa2J1ZjsKKwlib29sIGZvdW5kID0gZmFsc2U7CisJaW50IGk7CisKKwlpZiAoaGlzaV9oYmEtPmRlYnVnZnNfYmlzdF9lbmFibGUpCisJCXJldHVybiAtRVBFUk07CisKKwlpZiAoY291bnQgPj0gc2l6ZW9mKGtidWYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcihrYnVmLCBidWYsIGNvdW50KSkKKwkJcmV0dXJuIC1FT1ZFUkZMT1c7CisKKwlwa2J1ZiA9IHN0cnN0cmlwKGtidWYpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGlzaV9zYXNfZGVidWdmc19sb29wX2NvZGVfbW9kZSk7IGkrKykgeworCQlpZiAoIXN0cm5jbXAoaGlzaV9zYXNfZGVidWdmc19sb29wX2NvZGVfbW9kZVtpXS5uYW1lLAorCQkJICAgICBwa2J1ZiwgMTYpKSB7CisJCQloaXNpX2hiYS0+ZGVidWdmc19iaXN0X2NvZGVfbW9kZSA9CisJCQkJaGlzaV9zYXNfZGVidWdmc19sb29wX2NvZGVfbW9kZVtpXS52YWx1ZTsKKwkJCWZvdW5kID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKCFmb3VuZCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19iaXN0X2NvZGVfbW9kZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJCQlzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlscCwgaGlzaV9zYXNfZGVidWdmc19iaXN0X2NvZGVfbW9kZV9zaG93LAorCQkJICAgaW5vZGUtPmlfcHJpdmF0ZSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9jb2RlX21vZGVfb3BzID0geworCS5vcGVuID0gaGlzaV9zYXNfZGVidWdmc19iaXN0X2NvZGVfbW9kZV9vcGVuLAorCS5yZWFkID0gc2VxX3JlYWQsCisJLndyaXRlID0gaGlzaV9zYXNfZGVidWdmc19iaXN0X2NvZGVfbW9kZV93cml0ZSwKKwkubGxzZWVrID0gc2VxX2xzZWVrLAorCS5yZWxlYXNlID0gc2luZ2xlX3JlbGVhc2UsCisJLm93bmVyID0gVEhJU19NT0RVTEUsCit9OworCitzdGF0aWMgc3NpemVfdCBoaXNpX3Nhc19kZWJ1Z2ZzX2Jpc3RfcGh5X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAorCQkJCQkgICAgICAgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKKwkJCQkJICAgICAgIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gbS0+cHJpdmF0ZTsKKwl1bnNpZ25lZCBpbnQgcGh5X25vOworCWludCB2YWw7CisKKwlpZiAoaGlzaV9oYmEtPmRlYnVnZnNfYmlzdF9lbmFibGUpCisJCXJldHVybiAtRVBFUk07CisKKwl2YWwgPSBrc3RydG91aW50X2Zyb21fdXNlcihidWYsIGNvdW50LCAwLCAmcGh5X25vKTsKKwlpZiAodmFsKQorCQlyZXR1cm4gdmFsOworCisJaWYgKHBoeV9ubyA+PSBoaXNpX2hiYS0+bl9waHkpCisJCXJldHVybiAtRUlOVkFMOworCisJaGlzaV9oYmEtPmRlYnVnZnNfYmlzdF9waHlfbm8gPSBwaHlfbm87CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19iaXN0X3BoeV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcCkKK3sKKwlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gcy0+cHJpdmF0ZTsKKworCXNlcV9wcmludGYocywgIiVkXG4iLCBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X3BoeV9ubyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoaXNpX3Nhc19kZWJ1Z2ZzX2Jpc3RfcGh5X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwKKwkJCQkJICBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlscCwgaGlzaV9zYXNfZGVidWdmc19iaXN0X3BoeV9zaG93LAorCQkJICAgaW5vZGUtPmlfcHJpdmF0ZSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9waHlfb3BzID0geworCS5vcGVuID0gaGlzaV9zYXNfZGVidWdmc19iaXN0X3BoeV9vcGVuLAorCS5yZWFkID0gc2VxX3JlYWQsCisJLndyaXRlID0gaGlzaV9zYXNfZGVidWdmc19iaXN0X3BoeV93cml0ZSwKKwkubGxzZWVrID0gc2VxX2xzZWVrLAorCS5yZWxlYXNlID0gc2luZ2xlX3JlbGVhc2UsCisJLm93bmVyID0gVEhJU19NT0RVTEUsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHsKKwlpbnQJCXZhbHVlOworCWNoYXIJCSpuYW1lOworfSBoaXNpX3Nhc19kZWJ1Z2ZzX2xvb3BfbW9kZXNbXSA9IHsKKwl7IEhJU0lfU0FTX0JJU1RfTE9PUEJBQ0tfTU9ERV9ESUdJVEFMLCAiZGlnaWFsIiB9LAorCXsgSElTSV9TQVNfQklTVF9MT09QQkFDS19NT0RFX1NFUkRFUywgInNlcmRlcyIgfSwKKwl7IEhJU0lfU0FTX0JJU1RfTE9PUEJBQ0tfTU9ERV9SRU1PVEUsICJyZW1vdGUiIH0sCit9OworCitzdGF0aWMgaW50IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9tb2RlX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwKQoreworCXN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEgPSBzLT5wcml2YXRlOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGlzaV9zYXNfZGVidWdmc19sb29wX21vZGVzKTsgaSsrKSB7CisJCWludCBtYXRjaCA9IChoaXNpX2hiYS0+ZGVidWdmc19iaXN0X21vZGUgPT0KKwkJCSAgICAgaGlzaV9zYXNfZGVidWdmc19sb29wX21vZGVzW2ldLnZhbHVlKTsKKworCQlzZXFfcHJpbnRmKHMsICIlcyVzJXMgIiwgbWF0Y2ggPyAiWyIgOiAiIiwKKwkJCSAgIGhpc2lfc2FzX2RlYnVnZnNfbG9vcF9tb2Rlc1tpXS5uYW1lLAorCQkJICAgbWF0Y2ggPyAiXSIgOiAiIik7CisJfQorCXNlcV9wdXRzKHMsICJcbiIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9tb2RlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAorCQkJCQkJY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKKwkJCQkJCXNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gbS0+cHJpdmF0ZTsKKwljaGFyIGtidWZbMTZdID0ge30sICpwa2J1ZjsKKwlib29sIGZvdW5kID0gZmFsc2U7CisJaW50IGk7CisKKwlpZiAoaGlzaV9oYmEtPmRlYnVnZnNfYmlzdF9lbmFibGUpCisJCXJldHVybiAtRVBFUk07CisKKwlpZiAoY291bnQgPj0gc2l6ZW9mKGtidWYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcihrYnVmLCBidWYsIGNvdW50KSkKKwkJcmV0dXJuIC1FT1ZFUkZMT1c7CisKKwlwa2J1ZiA9IHN0cnN0cmlwKGtidWYpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGlzaV9zYXNfZGVidWdmc19sb29wX21vZGVzKTsgaSsrKSB7CisJCWlmICghc3RybmNtcChoaXNpX3Nhc19kZWJ1Z2ZzX2xvb3BfbW9kZXNbaV0ubmFtZSwgcGtidWYsIDE2KSkgeworCQkJaGlzaV9oYmEtPmRlYnVnZnNfYmlzdF9tb2RlID0KKwkJCQloaXNpX3Nhc19kZWJ1Z2ZzX2xvb3BfbW9kZXNbaV0udmFsdWU7CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghZm91bmQpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgaW50IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9tb2RlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwKKwkJCQkJICAgc3RydWN0IGZpbGUgKmZpbHApCit7CisJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbHAsIGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9tb2RlX3Nob3csCisJCQkgICBpbm9kZS0+aV9wcml2YXRlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaGlzaV9zYXNfZGVidWdmc19iaXN0X21vZGVfb3BzID0geworCS5vcGVuID0gaGlzaV9zYXNfZGVidWdmc19iaXN0X21vZGVfb3BlbiwKKwkucmVhZCA9IHNlcV9yZWFkLAorCS53cml0ZSA9IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9tb2RlX3dyaXRlLAorCS5sbHNlZWsgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKKwkub3duZXIgPSBUSElTX01PRFVMRSwKK307CisKK3N0YXRpYyBzc2l6ZV90IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9lbmFibGVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsCisJCQkJCQkgIGNvbnN0IGNoYXIgX191c2VyICpidWYsCisJCQkJCQkgIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhID0gbS0+cHJpdmF0ZTsKKwl1bnNpZ25lZCBpbnQgZW5hYmxlOworCWludCB2YWw7CisKKwl2YWwgPSBrc3RydG91aW50X2Zyb21fdXNlcihidWYsIGNvdW50LCAwLCAmZW5hYmxlKTsKKwlpZiAodmFsKQorCQlyZXR1cm4gdmFsOworCisJaWYgKGVuYWJsZSA+IDEpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKGVuYWJsZSA9PSBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X2VuYWJsZSkKKwkJcmV0dXJuIGNvdW50OworCisJaWYgKCFoaXNpX2hiYS0+aHctPnNldF9iaXN0KQorCQlyZXR1cm4gLUVQRVJNOworCisJdmFsID0gaGlzaV9oYmEtPmh3LT5zZXRfYmlzdChoaXNpX2hiYSwgZW5hYmxlKTsKKwlpZiAodmFsIDwgMCkKKwkJcmV0dXJuIHZhbDsKKworCWhpc2lfaGJhLT5kZWJ1Z2ZzX2Jpc3RfZW5hYmxlID0gZW5hYmxlOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgaW50IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9lbmFibGVfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnApCit7CisJc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSA9IHMtPnByaXZhdGU7CisKKwlzZXFfcHJpbnRmKHMsICIlZFxuIiwgaGlzaV9oYmEtPmRlYnVnZnNfYmlzdF9lbmFibGUpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGlzaV9zYXNfZGVidWdmc19iaXN0X2VuYWJsZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJCSAgICAgc3RydWN0IGZpbGUgKmZpbHApCit7CisJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbHAsIGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9lbmFibGVfc2hvdywKKwkJCSAgIGlub2RlLT5pX3ByaXZhdGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBoaXNpX3Nhc19kZWJ1Z2ZzX2Jpc3RfZW5hYmxlX29wcyA9IHsKKwkub3BlbiA9IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9lbmFibGVfb3BlbiwKKwkucmVhZCA9IHNlcV9yZWFkLAorCS53cml0ZSA9IGhpc2lfc2FzX2RlYnVnZnNfYmlzdF9lbmFibGVfd3JpdGUsCisJLmxsc2VlayA9IHNlcV9sc2VlaywKKwkucmVsZWFzZSA9IHNpbmdsZV9yZWxlYXNlLAorCS5vd25lciA9IFRISVNfTU9EVUxFLAorfTsKKwogdm9pZCBoaXNpX3Nhc19kZWJ1Z2ZzX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSA9CkBAIC0zMTc1LDEyICszNjgzLDE1MCBAQCB2b2lkIGhpc2lfc2FzX2RlYnVnZnNfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGhpc2lfc2FzX2RlYnVnZnNfd29ya19oYW5kbGVyKTsKIAordm9pZCBoaXNpX3Nhc19kZWJ1Z2ZzX3JlbGVhc2Uoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoaXNpX2hiYS0+ZGV2OworCWludCBpOworCisJZGV2bV9rZnJlZShkZXYsIGhpc2lfaGJhLT5kZWJ1Z2ZzX2lvc3RfY2FjaGUpOworCWRldm1fa2ZyZWUoZGV2LCBoaXNpX2hiYS0+ZGVidWdmc19pdGN0X2NhY2hlKTsKKwlkZXZtX2tmcmVlKGRldiwgaGlzaV9oYmEtPmRlYnVnZnNfaW9zdCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgaGlzaV9oYmEtPnF1ZXVlX2NvdW50OyBpKyspCisJCWRldm1fa2ZyZWUoZGV2LCBoaXNpX2hiYS0+ZGVidWdmc19jbWRfaGRyW2ldKTsKKworCWZvciAoaSA9IDA7IGkgPCBoaXNpX2hiYS0+cXVldWVfY291bnQ7IGkrKykKKwkJZGV2bV9rZnJlZShkZXYsIGhpc2lfaGJhLT5kZWJ1Z2ZzX2NvbXBsZXRlX2hkcltpXSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgREVCVUdGU19SRUdTX05VTTsgaSsrKQorCQlkZXZtX2tmcmVlKGRldiwgaGlzaV9oYmEtPmRlYnVnZnNfcmVnc1tpXSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgaGlzaV9oYmEtPm5fcGh5OyBpKyspCisJCWRldm1fa2ZyZWUoZGV2LCBoaXNpX2hiYS0+ZGVidWdmc19wb3J0X3JlZ1tpXSk7Cit9CisKK2ludCBoaXNpX3Nhc19kZWJ1Z2ZzX2FsbG9jKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCit7CisJY29uc3Qgc3RydWN0IGhpc2lfc2FzX2h3ICpodyA9IGhpc2lfaGJhLT5odzsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoaXNpX2hiYS0+ZGV2OworCWludCBwLCBjLCBkOworCXNpemVfdCBzejsKKworCWhpc2lfaGJhLT5kZWJ1Z2ZzX2R1bXBfZGVudHJ5ID0KKwkJCWRlYnVnZnNfY3JlYXRlX2RpcigiZHVtcCIsIGhpc2lfaGJhLT5kZWJ1Z2ZzX2Rpcik7CisKKwlzeiA9IGh3LT5kZWJ1Z2ZzX3JlZ19hcnJheVtERUJVR0ZTX0dMT0JBTF0tPmNvdW50ICogNDsKKwloaXNpX2hiYS0+ZGVidWdmc19yZWdzW0RFQlVHRlNfR0xPQkFMXSA9CisJCQkJZGV2bV9rbWFsbG9jKGRldiwgc3osIEdGUF9LRVJORUwpOworCisJaWYgKCFoaXNpX2hiYS0+ZGVidWdmc19yZWdzW0RFQlVHRlNfR0xPQkFMXSkKKwkJZ290byBmYWlsOworCisJc3ogPSBody0+ZGVidWdmc19yZWdfcG9ydC0+Y291bnQgKiA0OworCWZvciAocCA9IDA7IHAgPCBoaXNpX2hiYS0+bl9waHk7IHArKykgeworCQloaXNpX2hiYS0+ZGVidWdmc19wb3J0X3JlZ1twXSA9CisJCQlkZXZtX2ttYWxsb2MoZGV2LCBzeiwgR0ZQX0tFUk5FTCk7CisKKwkJaWYgKCFoaXNpX2hiYS0+ZGVidWdmc19wb3J0X3JlZ1twXSkKKwkJCWdvdG8gZmFpbDsKKwl9CisKKwlzeiA9IGh3LT5kZWJ1Z2ZzX3JlZ19hcnJheVtERUJVR0ZTX0FYSV0tPmNvdW50ICogNDsKKwloaXNpX2hiYS0+ZGVidWdmc19yZWdzW0RFQlVHRlNfQVhJXSA9CisJCWRldm1fa21hbGxvYyhkZXYsIHN6LCBHRlBfS0VSTkVMKTsKKworCWlmICghaGlzaV9oYmEtPmRlYnVnZnNfcmVnc1tERUJVR0ZTX0FYSV0pCisJCWdvdG8gZmFpbDsKKworCXN6ID0gaHctPmRlYnVnZnNfcmVnX2FycmF5W0RFQlVHRlNfUkFTXS0+Y291bnQgKiA0OworCWhpc2lfaGJhLT5kZWJ1Z2ZzX3JlZ3NbREVCVUdGU19SQVNdID0KKwkJZGV2bV9rbWFsbG9jKGRldiwgc3osIEdGUF9LRVJORUwpOworCisJaWYgKCFoaXNpX2hiYS0+ZGVidWdmc19yZWdzW0RFQlVHRlNfUkFTXSkKKwkJZ290byBmYWlsOworCisJc3ogPSBody0+Y29tcGxldGVfaGRyX3NpemUgKiBISVNJX1NBU19RVUVVRV9TTE9UUzsKKwlmb3IgKGMgPSAwOyBjIDwgaGlzaV9oYmEtPnF1ZXVlX2NvdW50OyBjKyspIHsKKwkJaGlzaV9oYmEtPmRlYnVnZnNfY29tcGxldGVfaGRyW2NdID0KKwkJCWRldm1fa21hbGxvYyhkZXYsIHN6LCBHRlBfS0VSTkVMKTsKKworCQlpZiAoIWhpc2lfaGJhLT5kZWJ1Z2ZzX2NvbXBsZXRlX2hkcltjXSkKKwkJCWdvdG8gZmFpbDsKKwl9CisKKwlzeiA9IHNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfY21kX2hkcikgKiBISVNJX1NBU19RVUVVRV9TTE9UUzsKKwlmb3IgKGQgPSAwOyBkIDwgaGlzaV9oYmEtPnF1ZXVlX2NvdW50OyBkKyspIHsKKwkJaGlzaV9oYmEtPmRlYnVnZnNfY21kX2hkcltkXSA9CisJCQlkZXZtX2ttYWxsb2MoZGV2LCBzeiwgR0ZQX0tFUk5FTCk7CisKKwkJaWYgKCFoaXNpX2hiYS0+ZGVidWdmc19jbWRfaGRyW2RdKQorCQkJZ290byBmYWlsOworCX0KKworCXN6ID0gSElTSV9TQVNfTUFYX0NPTU1BTkRTICogc2l6ZW9mKHN0cnVjdCBoaXNpX3Nhc19pb3N0KTsKKworCWhpc2lfaGJhLT5kZWJ1Z2ZzX2lvc3QgPSBkZXZtX2ttYWxsb2MoZGV2LCBzeiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFoaXNpX2hiYS0+ZGVidWdmc19pb3N0KQorCQlnb3RvIGZhaWw7CisKKwlzeiA9IEhJU0lfU0FTX0lPU1RfSVRDVF9DQUNIRV9OVU0gKgorCSAgICAgc2l6ZW9mKHN0cnVjdCBoaXNpX3Nhc19pb3N0X2l0Y3RfY2FjaGUpOworCisJaGlzaV9oYmEtPmRlYnVnZnNfaW9zdF9jYWNoZSA9IGRldm1fa21hbGxvYyhkZXYsIHN6LCBHRlBfS0VSTkVMKTsKKwlpZiAoIWhpc2lfaGJhLT5kZWJ1Z2ZzX2lvc3RfY2FjaGUpCisJCWdvdG8gZmFpbDsKKworCXN6ID0gSElTSV9TQVNfSU9TVF9JVENUX0NBQ0hFX05VTSAqCisJICAgICBzaXplb2Yoc3RydWN0IGhpc2lfc2FzX2lvc3RfaXRjdF9jYWNoZSk7CisKKwloaXNpX2hiYS0+ZGVidWdmc19pdGN0X2NhY2hlID0gZGV2bV9rbWFsbG9jKGRldiwgc3osIEdGUF9LRVJORUwpOworCWlmICghaGlzaV9oYmEtPmRlYnVnZnNfaXRjdF9jYWNoZSkKKwkJZ290byBmYWlsOworCisJLyogTmV3IG1lbW9yeSBhbGxvY2F0aW9uIG11c3QgYmUgbG9jYXRlIGJlZm9yZSBpdGN0ICovCisJc3ogPSBISVNJX1NBU19NQVhfSVRDVF9FTlRSSUVTICogc2l6ZW9mKHN0cnVjdCBoaXNpX3Nhc19pdGN0KTsKKworCWhpc2lfaGJhLT5kZWJ1Z2ZzX2l0Y3QgPSBkZXZtX2ttYWxsb2MoZGV2LCBzeiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFoaXNpX2hiYS0+ZGVidWdmc19pdGN0KQorCQlnb3RvIGZhaWw7CisKKwlyZXR1cm4gMDsKK2ZhaWw6CisJaGlzaV9zYXNfZGVidWdmc19yZWxlYXNlKGhpc2lfaGJhKTsKKwlyZXR1cm4gLUVOT01FTTsKK30KKwordm9pZCBoaXNpX3Nhc19kZWJ1Z2ZzX2Jpc3RfaW5pdChzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQoreworCWhpc2lfaGJhLT5kZWJ1Z2ZzX2Jpc3RfZGVudHJ5ID0KKwkJCWRlYnVnZnNfY3JlYXRlX2RpcigiYmlzdCIsIGhpc2lfaGJhLT5kZWJ1Z2ZzX2Rpcik7CisJZGVidWdmc19jcmVhdGVfZmlsZSgibGlua19yYXRlIiwgMDYwMCwKKwkJCSAgICBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X2RlbnRyeSwgaGlzaV9oYmEsCisJCQkgICAgJmhpc2lfc2FzX2RlYnVnZnNfYmlzdF9saW5rcmF0ZV9vcHMpOworCisJZGVidWdmc19jcmVhdGVfZmlsZSgiY29kZV9tb2RlIiwgMDYwMCwKKwkJCSAgICBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X2RlbnRyeSwgaGlzaV9oYmEsCisJCQkgICAgJmhpc2lfc2FzX2RlYnVnZnNfYmlzdF9jb2RlX21vZGVfb3BzKTsKKworCWRlYnVnZnNfY3JlYXRlX2ZpbGUoInBoeV9pZCIsIDA2MDAsIGhpc2lfaGJhLT5kZWJ1Z2ZzX2Jpc3RfZGVudHJ5LAorCQkJICAgIGhpc2lfaGJhLCAmaGlzaV9zYXNfZGVidWdmc19iaXN0X3BoeV9vcHMpOworCisJZGVidWdmc19jcmVhdGVfdTMyKCJjbnQiLCAwNjAwLCBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X2RlbnRyeSwKKwkJCSAgICZoaXNpX2hiYS0+ZGVidWdmc19iaXN0X2NudCk7CisKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJsb29wYmFja19tb2RlIiwgMDYwMCwKKwkJCSAgICBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X2RlbnRyeSwKKwkJCSAgICBoaXNpX2hiYSwgJmhpc2lfc2FzX2RlYnVnZnNfYmlzdF9tb2RlX29wcyk7CisKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJlbmFibGUiLCAwNjAwLCBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X2RlbnRyeSwKKwkJCSAgICBoaXNpX2hiYSwgJmhpc2lfc2FzX2RlYnVnZnNfYmlzdF9lbmFibGVfb3BzKTsKKworCWhpc2lfaGJhLT5kZWJ1Z2ZzX2Jpc3RfbGlua3JhdGUgPSBTQVNfTElOS19SQVRFXzFfNV9HQlBTOworfQorCiB2b2lkIGhpc2lfc2FzX2RlYnVnZnNfaW5pdChzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogewotCWludCBtYXhfY29tbWFuZF9lbnRyaWVzID0gaGlzaV9oYmEtPmh3LT5tYXhfY29tbWFuZF9lbnRyaWVzOwogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhpc2lfaGJhLT5kZXY7Ci0JaW50IHAsIGksIGMsIGQ7Ci0Jc2l6ZV90IHN6OwogCiAJaGlzaV9oYmEtPmRlYnVnZnNfZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKGRldl9uYW1lKGRldiksCiAJCQkJCQkgICBoaXNpX3Nhc19kZWJ1Z2ZzX2Rpcik7CkBAIC0zMTg5LDc1ICszODM1LDEzIEBAIHZvaWQgaGlzaV9zYXNfZGVidWdmc19pbml0KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiAJCQkgICAgaGlzaV9oYmEsCiAJCQkgICAgJmhpc2lfc2FzX2RlYnVnZnNfdHJpZ2dlcl9kdW1wX2ZvcHMpOwogCi0JLyogQWxsb2MgYnVmZmVyIGZvciBnbG9iYWwgKi8KLQlzeiA9IGhpc2lfaGJhLT5ody0+ZGVidWdmc19yZWdfZ2xvYmFsLT5jb3VudCAqIDQ7Ci0JaGlzaV9oYmEtPmRlYnVnZnNfZ2xvYmFsX3JlZyA9Ci0JCWRldm1fa21hbGxvYyhkZXYsIHN6LCBHRlBfS0VSTkVMKTsKKwkvKiBjcmVhdGUgYmlzdCBzdHJ1Y3R1cmVzICovCisJaGlzaV9zYXNfZGVidWdmc19iaXN0X2luaXQoaGlzaV9oYmEpOwogCi0JaWYgKCFoaXNpX2hiYS0+ZGVidWdmc19nbG9iYWxfcmVnKQotCQlnb3RvIGZhaWxfZ2xvYmFsOwotCi0JLyogQWxsb2MgYnVmZmVyIGZvciBwb3J0ICovCi0Jc3ogPSBoaXNpX2hiYS0+aHctPmRlYnVnZnNfcmVnX3BvcnQtPmNvdW50ICogNDsKLQlmb3IgKHAgPSAwOyBwIDwgaGlzaV9oYmEtPm5fcGh5OyBwKyspIHsKLQkJaGlzaV9oYmEtPmRlYnVnZnNfcG9ydF9yZWdbcF0gPQotCQkJZGV2bV9rbWFsbG9jKGRldiwgc3osIEdGUF9LRVJORUwpOwotCi0JCWlmICghaGlzaV9oYmEtPmRlYnVnZnNfcG9ydF9yZWdbcF0pCi0JCQlnb3RvIGZhaWxfcG9ydDsKKwlpZiAoaGlzaV9zYXNfZGVidWdmc19hbGxvYyhoaXNpX2hiYSkpIHsKKwkJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGhpc2lfaGJhLT5kZWJ1Z2ZzX2Rpcik7CisJCWRldl9kYmcoZGV2LCAiZmFpbGVkIHRvIGluaXQgZGVidWdmcyFcbiIpOwogCX0KLQotCS8qIEFsbG9jIGJ1ZmZlciBmb3IgY3EgKi8KLQlzeiA9IGhpc2lfaGJhLT5ody0+Y29tcGxldGVfaGRyX3NpemUgKiBISVNJX1NBU19RVUVVRV9TTE9UUzsKLQlmb3IgKGMgPSAwOyBjIDwgaGlzaV9oYmEtPnF1ZXVlX2NvdW50OyBjKyspIHsKLQkJaGlzaV9oYmEtPmRlYnVnZnNfY29tcGxldGVfaGRyW2NdID0KLQkJCWRldm1fa21hbGxvYyhkZXYsIHN6LCBHRlBfS0VSTkVMKTsKLQotCQlpZiAoIWhpc2lfaGJhLT5kZWJ1Z2ZzX2NvbXBsZXRlX2hkcltjXSkKLQkJCWdvdG8gZmFpbF9jcTsKLQl9Ci0KLQkvKiBBbGxvYyBidWZmZXIgZm9yIGRxICovCi0Jc3ogPSBzaXplb2Yoc3RydWN0IGhpc2lfc2FzX2NtZF9oZHIpICogSElTSV9TQVNfUVVFVUVfU0xPVFM7Ci0JZm9yIChkID0gMDsgZCA8IGhpc2lfaGJhLT5xdWV1ZV9jb3VudDsgZCsrKSB7Ci0JCWhpc2lfaGJhLT5kZWJ1Z2ZzX2NtZF9oZHJbZF0gPQotCQkJZGV2bV9rbWFsbG9jKGRldiwgc3osIEdGUF9LRVJORUwpOwotCi0JCWlmICghaGlzaV9oYmEtPmRlYnVnZnNfY21kX2hkcltkXSkKLQkJCWdvdG8gZmFpbF9pb3N0X2RxOwotCX0KLQotCS8qIEFsbG9jIGJ1ZmZlciBmb3IgaW9zdCAqLwotCXN6ID0gbWF4X2NvbW1hbmRfZW50cmllcyAqIHNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfaW9zdCk7Ci0KLQloaXNpX2hiYS0+ZGVidWdmc19pb3N0ID0gZGV2bV9rbWFsbG9jKGRldiwgc3osIEdGUF9LRVJORUwpOwotCWlmICghaGlzaV9oYmEtPmRlYnVnZnNfaW9zdCkKLQkJZ290byBmYWlsX2lvc3RfZHE7Ci0KLQkvKiBBbGxvYyBidWZmZXIgZm9yIGl0Y3QgKi8KLQkvKiBOZXcgbWVtb3J5IGFsbG9jYXRpb24gbXVzdCBiZSBsb2NhdGUgYmVmb3JlIGl0Y3QgKi8KLQlzeiA9IEhJU0lfU0FTX01BWF9JVENUX0VOVFJJRVMgKiBzaXplb2Yoc3RydWN0IGhpc2lfc2FzX2l0Y3QpOwotCi0JaGlzaV9oYmEtPmRlYnVnZnNfaXRjdCA9IGRldm1fa21hbGxvYyhkZXYsIHN6LCBHRlBfS0VSTkVMKTsKLQlpZiAoIWhpc2lfaGJhLT5kZWJ1Z2ZzX2l0Y3QpCi0JCWdvdG8gZmFpbF9pdGN0OwotCi0JcmV0dXJuOwotZmFpbF9pdGN0OgotCWRldm1fa2ZyZWUoZGV2LCBoaXNpX2hiYS0+ZGVidWdmc19pb3N0KTsKLWZhaWxfaW9zdF9kcToKLQlmb3IgKGkgPSAwOyBpIDwgZDsgaSsrKQotCQlkZXZtX2tmcmVlKGRldiwgaGlzaV9oYmEtPmRlYnVnZnNfY21kX2hkcltpXSk7Ci1mYWlsX2NxOgotCWZvciAoaSA9IDA7IGkgPCBjOyBpKyspCi0JCWRldm1fa2ZyZWUoZGV2LCBoaXNpX2hiYS0+ZGVidWdmc19jb21wbGV0ZV9oZHJbaV0pOwotZmFpbF9wb3J0OgotCWZvciAoaSA9IDA7IGkgPCBwOyBpKyspCi0JCWRldm1fa2ZyZWUoZGV2LCBoaXNpX2hiYS0+ZGVidWdmc19wb3J0X3JlZ1tpXSk7Ci0JZGV2bV9rZnJlZShkZXYsIGhpc2lfaGJhLT5kZWJ1Z2ZzX2dsb2JhbF9yZWcpOwotZmFpbF9nbG9iYWw6Ci0JZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGhpc2lfaGJhLT5kZWJ1Z2ZzX2Rpcik7Ci0JZGV2X2RiZyhkZXYsICJmYWlsZWQgdG8gaW5pdCBkZWJ1Z2ZzIVxuIik7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChoaXNpX3Nhc19kZWJ1Z2ZzX2luaXQpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaGlzaV9zYXMvaGlzaV9zYXNfdjFfaHcuYyBiL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192MV9ody5jCmluZGV4IDM5MTIyMTYuLmI4NjFhMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192MV9ody5jCisrKyBiL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192MV9ody5jCkBAIC00MDEsOCArNDAxLDYgQEAgZW51bSB7CiAJVFJBTlNfUlhfU01QX1JFU1BfVElNRU9VVF9FUlIsIC8qIDB4MzFhICovCiB9OwogCi0jZGVmaW5lIEhJU0lfU0FTX0NPTU1BTkRfRU5UUklFU19WMV9IVyA4MTkyCi0KICNkZWZpbmUgSElTSV9TQVNfUEhZX01BWF9JTlRfTlIgKEhJU0lfU0FTX1BIWV9JTlRfTlIgKiBISVNJX1NBU19NQVhfUEhZUykKICNkZWZpbmUgSElTSV9TQVNfQ1FfTUFYX0lOVF9OUiAoSElTSV9TQVNfTUFYX1FVRVVFUykKICNkZWZpbmUgSElTSV9TQVNfRkFUQUxfSU5UX05SICgyKQpAQCAtNDE4LDEzICs0MTYsNiBAQCBzdGF0aWMgdTMyIGhpc2lfc2FzX3JlYWQzMihzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCB1MzIgb2ZmKQogCXJldHVybiByZWFkbChyZWdzKTsKIH0KIAotc3RhdGljIHUzMiBoaXNpX3Nhc19yZWFkMzJfcmVsYXhlZChzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCB1MzIgb2ZmKQotewotCXZvaWQgX19pb21lbSAqcmVncyA9IGhpc2lfaGJhLT5yZWdzICsgb2ZmOwotCi0JcmV0dXJuIHJlYWRsX3JlbGF4ZWQocmVncyk7Ci19Ci0KIHN0YXRpYyB2b2lkIGhpc2lfc2FzX3dyaXRlMzIoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKIAkJCQkgICAgdTMyIG9mZiwgdTMyIHZhbCkKIHsKQEAgLTg2NiwzMCArODU3LDYgQEAgc3RhdGljIGludCBnZXRfd2lkZXBvcnRfYml0bWFwX3YxX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIGludCBwb3J0X2lkKQogCXJldHVybiBiaXRtYXA7CiB9CiAKLS8qCi0gKiBUaGUgY2FsbHBhdGggdG8gdGhpcyBmdW5jdGlvbiBhbmQgdXB0byB3cml0aW5nIHRoZSB3cml0ZQotICogcXVldWUgcG9pbnRlciBzaG91bGQgYmUgc2FmZSBmcm9tIGludGVycnVwdGlvbi4KLSAqLwotc3RhdGljIGludAotZ2V0X2ZyZWVfc2xvdF92MV9odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCBzdHJ1Y3QgaGlzaV9zYXNfZHEgKmRxKQotewotCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhpc2lfaGJhLT5kZXY7Ci0JaW50IHF1ZXVlID0gZHEtPmlkOwotCXUzMiByLCB3OwotCi0JdyA9IGRxLT53cl9wb2ludDsKLQlyID0gaGlzaV9zYXNfcmVhZDMyX3JlbGF4ZWQoaGlzaV9oYmEsCi0JCQkJRExWUllfUV8wX1JEX1BUUiArIChxdWV1ZSAqIDB4MTQpKTsKLQlpZiAociA9PSAodysxKSAlIEhJU0lfU0FTX1FVRVVFX1NMT1RTKSB7Ci0JCWRldl93YXJuKGRldiwgImNvdWxkIG5vdCBmaW5kIGZyZWUgc2xvdFxuIik7Ci0JCXJldHVybiAtRUFHQUlOOwotCX0KLQotCWRxLT53cl9wb2ludCA9IChkcS0+d3JfcG9pbnQgKyAxKSAlIEhJU0lfU0FTX1FVRVVFX1NMT1RTOwotCi0JcmV0dXJuIHc7Ci19Ci0KIC8qIERRIGxvY2sgbXVzdCBiZSB0YWtlbiBoZXJlICovCiBzdGF0aWMgdm9pZCBzdGFydF9kZWxpdmVyeV92MV9odyhzdHJ1Y3QgaGlzaV9zYXNfZHEgKmRxKQogewpAQCAtMTMwOCwyMSArMTI3NSwxNyBAQCBzdGF0aWMgaW50IHNsb3RfY29tcGxldGVfdjFfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKIAl9CiAJY2FzZSBTQVNfUFJPVE9DT0xfU01QOgogCXsKLQkJdm9pZCAqdG87CiAJCXN0cnVjdCBzY2F0dGVybGlzdCAqc2dfcmVzcCA9ICZ0YXNrLT5zbXBfdGFzay5zbXBfcmVzcDsKKwkJdm9pZCAqdG8gPSBwYWdlX2FkZHJlc3Moc2dfcGFnZShzZ19yZXNwKSk7CiAKIAkJdHMtPnN0YXQgPSBTQU1fU1RBVF9HT09EOwotCQl0byA9IGttYXBfYXRvbWljKHNnX3BhZ2Uoc2dfcmVzcCkpOwogCi0JCWRtYV91bm1hcF9zZyhkZXYsICZ0YXNrLT5zbXBfdGFzay5zbXBfcmVzcCwgMSwKLQkJCSAgICAgRE1BX0ZST01fREVWSUNFKTsKIAkJZG1hX3VubWFwX3NnKGRldiwgJnRhc2stPnNtcF90YXNrLnNtcF9yZXEsIDEsCiAJCQkgICAgIERNQV9UT19ERVZJQ0UpOwogCQltZW1jcHkodG8gKyBzZ19yZXNwLT5vZmZzZXQsCiAJCSAgICAgICBoaXNpX3Nhc19zdGF0dXNfYnVmX2FkZHJfbWVtKHNsb3QpICsKIAkJICAgICAgIHNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfZXJyX3JlY29yZCksCi0JCSAgICAgICBzZ19kbWFfbGVuKHNnX3Jlc3ApKTsKLQkJa3VubWFwX2F0b21pYyh0byk7CisJCSAgICAgICBzZ19yZXNwLT5sZW5ndGgpOwogCQlicmVhazsKIAl9CiAJY2FzZSBTQVNfUFJPVE9DT0xfU0FUQToKQEAgLTE1MzQsMTEgKzE0OTcsOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgY3FfaW50ZXJydXB0X3YxX2h3KGludCBpcnEsIHZvaWQgKnApCiAJc3RydWN0IGhpc2lfc2FzX2NvbXBsZXRlX3YxX2hkciAqY29tcGxldGVfcXVldWUgPQogCQkJKHN0cnVjdCBoaXNpX3Nhc19jb21wbGV0ZV92MV9oZHIgKikKIAkJCWhpc2lfaGJhLT5jb21wbGV0ZV9oZHJbcXVldWVdOwotCXUzMiBpcnFfdmFsdWUsIHJkX3BvaW50ID0gY3EtPnJkX3BvaW50LCB3cl9wb2ludDsKKwl1MzIgcmRfcG9pbnQgPSBjcS0+cmRfcG9pbnQsIHdyX3BvaW50OwogCiAJc3Bpbl9sb2NrKCZoaXNpX2hiYS0+bG9jayk7Ci0JaXJxX3ZhbHVlID0gaGlzaV9zYXNfcmVhZDMyKGhpc2lfaGJhLCBPUV9JTlRfU1JDKTsKLQogCWhpc2lfc2FzX3dyaXRlMzIoaGlzaV9oYmEsIE9RX0lOVF9TUkMsIDEgPDwgcXVldWUpOwogCXdyX3BvaW50ID0gaGlzaV9zYXNfcmVhZDMyKGhpc2lfaGJhLAogCQkJQ09NUExfUV8wX1dSX1BUUiArICgweDE0ICogcXVldWUpKTsKQEAgLTE4MjAsOSArMTc4MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlzaV9zYXNfaHcgaGlzaV9zYXNfdjFfaHcgPSB7CiAJLmNsZWFyX2l0Y3QgPSBjbGVhcl9pdGN0X3YxX2h3LAogCS5wcmVwX3NtcCA9IHByZXBfc21wX3YxX2h3LAogCS5wcmVwX3NzcCA9IHByZXBfc3NwX3YxX2h3LAotCS5nZXRfZnJlZV9zbG90ID0gZ2V0X2ZyZWVfc2xvdF92MV9odywKIAkuc3RhcnRfZGVsaXZlcnkgPSBzdGFydF9kZWxpdmVyeV92MV9odywKLQkuc2xvdF9jb21wbGV0ZSA9IHNsb3RfY29tcGxldGVfdjFfaHcsCiAJLnBoeXNfaW5pdCA9IHBoeXNfaW5pdF92MV9odywKIAkucGh5X3N0YXJ0ID0gc3RhcnRfcGh5X3YxX2h3LAogCS5waHlfZGlzYWJsZSA9IGRpc2FibGVfcGh5X3YxX2h3LApAQCAtMTgzMCw3ICsxNzg5LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoaXNpX3Nhc19odyBoaXNpX3Nhc192MV9odyA9IHsKIAkucGh5X3NldF9saW5rcmF0ZSA9IHBoeV9zZXRfbGlua3JhdGVfdjFfaHcsCiAJLnBoeV9nZXRfbWF4X2xpbmtyYXRlID0gcGh5X2dldF9tYXhfbGlua3JhdGVfdjFfaHcsCiAJLmdldF93aWRlcG9ydF9iaXRtYXAgPSBnZXRfd2lkZXBvcnRfYml0bWFwX3YxX2h3LAotCS5tYXhfY29tbWFuZF9lbnRyaWVzID0gSElTSV9TQVNfQ09NTUFORF9FTlRSSUVTX1YxX0hXLAogCS5jb21wbGV0ZV9oZHJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfY29tcGxldGVfdjFfaGRyKSwKIAkuc2h0ID0gJnNodF92MV9odywKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaGlzaV9zYXMvaGlzaV9zYXNfdjJfaHcuYyBiL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192Ml9ody5jCmluZGV4IGU5YjE1ZDQuLjhlOTZhMjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192Ml9ody5jCisrKyBiL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192Ml9ody5jCkBAIC0xNjM3LDMxICsxNjM3LDYgQEAgc3RhdGljIGludCBnZXRfd2lkZXBvcnRfYml0bWFwX3YyX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIGludCBwb3J0X2lkKQogCXJldHVybiBiaXRtYXA7CiB9CiAKLS8qCi0gKiBUaGUgY2FsbHBhdGggdG8gdGhpcyBmdW5jdGlvbiBhbmQgdXB0byB3cml0aW5nIHRoZSB3cml0ZQotICogcXVldWUgcG9pbnRlciBzaG91bGQgYmUgc2FmZSBmcm9tIGludGVycnVwdGlvbi4KLSAqLwotc3RhdGljIGludAotZ2V0X2ZyZWVfc2xvdF92Ml9odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCBzdHJ1Y3QgaGlzaV9zYXNfZHEgKmRxKQotewotCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhpc2lfaGJhLT5kZXY7Ci0JaW50IHF1ZXVlID0gZHEtPmlkOwotCXUzMiByLCB3OwotCi0JdyA9IGRxLT53cl9wb2ludDsKLQlyID0gaGlzaV9zYXNfcmVhZDMyX3JlbGF4ZWQoaGlzaV9oYmEsCi0JCQkJRExWUllfUV8wX1JEX1BUUiArIChxdWV1ZSAqIDB4MTQpKTsKLQlpZiAociA9PSAodysxKSAlIEhJU0lfU0FTX1FVRVVFX1NMT1RTKSB7Ci0JCWRldl93YXJuKGRldiwgImZ1bGwgcXVldWU9JWQgcj0lZCB3PSVkXG4iLAotCQkJCXF1ZXVlLCByLCB3KTsKLQkJcmV0dXJuIC1FQUdBSU47Ci0JfQotCi0JZHEtPndyX3BvaW50ID0gKGRxLT53cl9wb2ludCArIDEpICUgSElTSV9TQVNfUVVFVUVfU0xPVFM7Ci0KLQlyZXR1cm4gdzsKLX0KLQogLyogRFEgbG9jayBtdXN0IGJlIHRha2VuIGhlcmUgKi8KIHN0YXRpYyB2b2lkIHN0YXJ0X2RlbGl2ZXJ5X3YyX2h3KHN0cnVjdCBoaXNpX3Nhc19kcSAqZHEpCiB7CkBAIC0yNDE4LDcgKzIzOTMsNyBAQCBzbG90X2NvbXBsZXRlX3YyX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHN0cnVjdCBoaXNpX3Nhc19zbG90ICpzbG90KQogCQkJc2xvdF9lcnJfdjJfaHcoaGlzaV9oYmEsIHRhc2ssIHNsb3QsIDIpOwogCiAJCWlmICh0cy0+c3RhdCAhPSBTQVNfREFUQV9VTkRFUlJVTikKLQkJCWRldl9pbmZvKGRldiwgImVycm9uZW91cyBjb21wbGV0aW9uIGlwdHQ9JWQgdGFzaz0lcCBkZXYgaWQ9JWQgQ1EgaGRyOiAweCV4IDB4JXggMHgleCAweCV4IEVycm9yIGluZm86IDB4JXggMHgleCAweCV4IDB4JXhcbiIsCisJCQlkZXZfaW5mbyhkZXYsICJlcnJvbmVvdXMgY29tcGxldGlvbiBpcHR0PSVkIHRhc2s9JXBLIGRldiBpZD0lZCBDUSBoZHI6IDB4JXggMHgleCAweCV4IDB4JXggRXJyb3IgaW5mbzogMHgleCAweCV4IDB4JXggMHgleFxuIiwKIAkJCQkgc2xvdC0+aWR4LCB0YXNrLCBzYXNfZGV2LT5kZXZpY2VfaWQsCiAJCQkJIGNvbXBsZXRlX2hkci0+ZHcwLCBjb21wbGV0ZV9oZHItPmR3MSwKIAkJCQkgY29tcGxldGVfaGRyLT5hY3QsIGNvbXBsZXRlX2hkci0+ZHczLApAQCAtMjQ0NCwyMCArMjQxOSwxNiBAQCBzbG90X2NvbXBsZXRlX3YyX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHN0cnVjdCBoaXNpX3Nhc19zbG90ICpzbG90KQogCWNhc2UgU0FTX1BST1RPQ09MX1NNUDoKIAl7CiAJCXN0cnVjdCBzY2F0dGVybGlzdCAqc2dfcmVzcCA9ICZ0YXNrLT5zbXBfdGFzay5zbXBfcmVzcDsKLQkJdm9pZCAqdG87CisJCXZvaWQgKnRvID0gcGFnZV9hZGRyZXNzKHNnX3BhZ2Uoc2dfcmVzcCkpOwogCiAJCXRzLT5zdGF0ID0gU0FNX1NUQVRfR09PRDsKLQkJdG8gPSBrbWFwX2F0b21pYyhzZ19wYWdlKHNnX3Jlc3ApKTsKIAotCQlkbWFfdW5tYXBfc2coZGV2LCAmdGFzay0+c21wX3Rhc2suc21wX3Jlc3AsIDEsCi0JCQkgICAgIERNQV9GUk9NX0RFVklDRSk7CiAJCWRtYV91bm1hcF9zZyhkZXYsICZ0YXNrLT5zbXBfdGFzay5zbXBfcmVxLCAxLAogCQkJICAgICBETUFfVE9fREVWSUNFKTsKIAkJbWVtY3B5KHRvICsgc2dfcmVzcC0+b2Zmc2V0LAogCQkgICAgICAgaGlzaV9zYXNfc3RhdHVzX2J1Zl9hZGRyX21lbShzbG90KSArCiAJCSAgICAgICBzaXplb2Yoc3RydWN0IGhpc2lfc2FzX2Vycl9yZWNvcmQpLAotCQkgICAgICAgc2dfZG1hX2xlbihzZ19yZXNwKSk7Ci0JCWt1bm1hcF9hdG9taWModG8pOworCQkgICAgICAgc2dfcmVzcC0+bGVuZ3RoKTsKIAkJYnJlYWs7CiAJfQogCWNhc2UgU0FTX1BST1RPQ09MX1NBVEE6CkBAIC0yNDg0LDcgKzI0NTUsNyBAQCBzbG90X2NvbXBsZXRlX3YyX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHN0cnVjdCBoaXNpX3Nhc19zbG90ICpzbG90KQogCXNwaW5fbG9ja19pcnFzYXZlKCZ0YXNrLT50YXNrX3N0YXRlX2xvY2ssIGZsYWdzKTsKIAlpZiAodGFzay0+dGFza19zdGF0ZV9mbGFncyAmIFNBU19UQVNLX1NUQVRFX0FCT1JURUQpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGFzay0+dGFza19zdGF0ZV9sb2NrLCBmbGFncyk7Ci0JCWRldl9pbmZvKGRldiwgInNsb3QgY29tcGxldGU6IHRhc2soJXApIGFib3J0ZWRcbiIsIHRhc2spOworCQlkZXZfaW5mbyhkZXYsICJzbG90IGNvbXBsZXRlOiB0YXNrKCVwSykgYWJvcnRlZFxuIiwgdGFzayk7CiAJCXJldHVybiBTQVNfQUJPUlRFRF9UQVNLOwogCX0KIAl0YXNrLT50YXNrX3N0YXRlX2ZsYWdzIHw9IFNBU19UQVNLX1NUQVRFX0RPTkU7CkBAIC0yNDk1LDcgKzI0NjYsNyBAQCBzbG90X2NvbXBsZXRlX3YyX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHN0cnVjdCBoaXNpX3Nhc19zbG90ICpzbG90KQogCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2aWNlLT5kb25lX2xvY2ssIGZsYWdzKTsKIAkJaWYgKHRlc3RfYml0KFNBU19IQV9GUk9aRU4sICZoYS0+c3RhdGUpKSB7CiAJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZpY2UtPmRvbmVfbG9jaywgZmxhZ3MpOwotCQkJZGV2X2luZm8oZGV2LCAic2xvdCBjb21wbGV0ZTogdGFzayglcCkgaWdub3JlZFxuIiwKKwkJCWRldl9pbmZvKGRldiwgInNsb3QgY29tcGxldGU6IHRhc2soJXBLKSBpZ25vcmVkXG4iLAogCQkJCSB0YXNrKTsKIAkJCXJldHVybiBzdHM7CiAJCX0KQEAgLTI1NjMsNyArMjUzNCwxMCBAQCBzdGF0aWMgdm9pZCBwcmVwX2F0YV92Ml9odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLAogCWhkci0+ZHcxID0gY3B1X3RvX2xlMzIoZHcxKTsKIAogCS8qIGR3MiAqLwotCWlmICh0YXNrLT5hdGFfdGFzay51c2VfbmNxICYmIGhpc2lfc2FzX2dldF9uY3FfdGFnKHRhc2ssICZoZHJfdGFnKSkgeworCWlmICh0YXNrLT5hdGFfdGFzay51c2VfbmNxKSB7CisJCXN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMgPSB0YXNrLT51bGRkX3Rhc2s7CisKKwkJaGRyX3RhZyA9IHFjLT50YWc7CiAJCXRhc2stPmF0YV90YXNrLmZpcy5zZWN0b3JfY291bnQgfD0gKHU4KSAoaGRyX3RhZyA8PCAzKTsKIAkJZHcyIHw9IGhkcl90YWcgPDwgQ01EX0hEUl9OQ1FfVEFHX09GRjsKIAl9CkBAIC0zMzMzLDggKzMzMDcsOCBAQCBzdGF0aWMgaW50IGludGVycnVwdF9pbml0X3YyX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiB7CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IGhpc2lfaGJhLT5wbGF0Zm9ybV9kZXY7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKLQlpbnQgaXJxLCByYywgaXJxX21hcFsxMjhdOwotCWludCBpLCBwaHlfbm8sIGZhdGFsX25vLCBxdWV1ZV9ubywgazsKKwlpbnQgaXJxLCByYyA9IDAsIGlycV9tYXBbMTI4XTsKKwlpbnQgaSwgcGh5X25vLCBmYXRhbF9ubywgcXVldWVfbm87CiAKIAlmb3IgKGkgPSAwOyBpIDwgMTI4OyBpKyspCiAJCWlycV9tYXBbaV0gPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIGkpOwpAQCAtMzM0Nyw3ICszMzIxLDcgQEAgc3RhdGljIGludCBpbnRlcnJ1cHRfaW5pdF92Ml9odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogCQkJZGV2X2VycihkZXYsICJpcnEgaW5pdDogY291bGQgbm90IHJlcXVlc3QgcGh5IGludGVycnVwdCAlZCwgcmM9JWRcbiIsCiAJCQkJaXJxLCByYyk7CiAJCQlyYyA9IC1FTk9FTlQ7Ci0JCQlnb3RvIGZyZWVfcGh5X2ludF9pcnFzOworCQkJZ290byBlcnJfb3V0OwogCQl9CiAJfQogCkBAIC0zMzYxLDcgKzMzMzUsNyBAQCBzdGF0aWMgaW50IGludGVycnVwdF9pbml0X3YyX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiAJCQlkZXZfZXJyKGRldiwgImlycSBpbml0OiBjb3VsZCBub3QgcmVxdWVzdCBzYXRhIGludGVycnVwdCAlZCwgcmM9JWRcbiIsCiAJCQkJaXJxLCByYyk7CiAJCQlyYyA9IC1FTk9FTlQ7Ci0JCQlnb3RvIGZyZWVfc2F0YV9pbnRfaXJxczsKKwkJCWdvdG8gZXJyX291dDsKIAkJfQogCX0KIApAQCAtMzM3Myw3ICszMzQ3LDcgQEAgc3RhdGljIGludCBpbnRlcnJ1cHRfaW5pdF92Ml9odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogCQkJZGV2X2VycihkZXYsICJpcnEgaW5pdDogY291bGQgbm90IHJlcXVlc3QgZmF0YWwgaW50ZXJydXB0ICVkLCByYz0lZFxuIiwKIAkJCQlpcnEsIHJjKTsKIAkJCXJjID0gLUVOT0VOVDsKLQkJCWdvdG8gZnJlZV9mYXRhbF9pbnRfaXJxczsKKwkJCWdvdG8gZXJyX291dDsKIAkJfQogCX0KIApAQCAtMzM4OCwzNCArMzM2MiwxNCBAQCBzdGF0aWMgaW50IGludGVycnVwdF9pbml0X3YyX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiAJCQlkZXZfZXJyKGRldiwgImlycSBpbml0OiBjb3VsZCBub3QgcmVxdWVzdCBjcSBpbnRlcnJ1cHQgJWQsIHJjPSVkXG4iLAogCQkJCWlycSwgcmMpOwogCQkJcmMgPSAtRU5PRU5UOwotCQkJZ290byBmcmVlX2NxX2ludF9pcnFzOworCQkJZ290byBlcnJfb3V0OwogCQl9CiAJCXRhc2tsZXRfaW5pdCh0LCBjcV90YXNrbGV0X3YyX2h3LCAodW5zaWduZWQgbG9uZyljcSk7CiAJfQogCiAJaGlzaV9oYmEtPmNxX252ZWNzID0gaGlzaV9oYmEtPnF1ZXVlX2NvdW50OwogCi0JcmV0dXJuIDA7Ci0KLWZyZWVfY3FfaW50X2lycXM6Ci0JZm9yIChrID0gMDsgayA8IHF1ZXVlX25vOyBrKyspIHsKLQkJc3RydWN0IGhpc2lfc2FzX2NxICpjcSA9ICZoaXNpX2hiYS0+Y3Fba107Ci0KLQkJZnJlZV9pcnEoaXJxX21hcFtrICsgOTZdLCBjcSk7Ci0JCXRhc2tsZXRfa2lsbCgmY3EtPnRhc2tsZXQpOwotCX0KLWZyZWVfZmF0YWxfaW50X2lycXM6Ci0JZm9yIChrID0gMDsgayA8IGZhdGFsX25vOyBrKyspCi0JCWZyZWVfaXJxKGlycV9tYXBbayArIDgxXSwgaGlzaV9oYmEpOwotZnJlZV9zYXRhX2ludF9pcnFzOgotCWZvciAoayA9IDA7IGsgPCBwaHlfbm87IGsrKykgewotCQlzdHJ1Y3QgaGlzaV9zYXNfcGh5ICpwaHkgPSAmaGlzaV9oYmEtPnBoeVtrXTsKLQotCQlmcmVlX2lycShpcnFfbWFwW2sgKyA3Ml0sIHBoeSk7Ci0JfQotZnJlZV9waHlfaW50X2lycXM6Ci0JZm9yIChrID0gMDsgayA8IGk7IGsrKykKLQkJZnJlZV9pcnEoaXJxX21hcFtrICsgMV0sIGhpc2lfaGJhKTsKK2Vycl9vdXQ6CiAJcmV0dXJuIHJjOwogfQogCkBAIC0zNTQ0LDggKzM0OTgsOCBAQCBzdGF0aWMgaW50IHdyaXRlX2dwaW9fdjJfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwgdTggcmVnX3R5cGUsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd2FpdF9jbWRzX2NvbXBsZXRlX3RpbWVvdXRfdjJfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKLQkJCQkJICAgIGludCBkZWxheV9tcywgaW50IHRpbWVvdXRfbXMpCitzdGF0aWMgdm9pZCB3YWl0X2NtZHNfY29tcGxldGVfdGltZW91dF92Ml9odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLAorCQkJCQkgICAgIGludCBkZWxheV9tcywgaW50IHRpbWVvdXRfbXMpCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gaGlzaV9oYmEtPmRldjsKIAlpbnQgZW50cmllcywgZW50cmllc19vbGQgPSAwLCB0aW1lOwpAQCAtMzU1OSwxMiArMzUxMywxMyBAQCBzdGF0aWMgaW50IHdhaXRfY21kc19jb21wbGV0ZV90aW1lb3V0X3YyX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsCiAJCW1zbGVlcChkZWxheV9tcyk7CiAJfQogCi0JaWYgKHRpbWUgPj0gdGltZW91dF9tcykKLQkJcmV0dXJuIC1FVElNRURPVVQ7CisJaWYgKHRpbWUgPj0gdGltZW91dF9tcykgeworCQlkZXZfZGJnKGRldiwgIldhaXQgY29tbWFuZHMgY29tcGxldGUgdGltZW91dCFcbiIpOworCQlyZXR1cm47CisJfQogCiAJZGV2X2RiZyhkZXYsICJ3YWl0IGNvbW1hbmRzIGNvbXBsZXRlICVkbXNcbiIsIHRpbWUpOwogCi0JcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqaG9zdF9hdHRyc192Ml9od1tdID0gewpAQCAtMzYwNiw5ICszNTYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoaXNpX3Nhc19odyBoaXNpX3Nhc192Ml9odyA9IHsKIAkucHJlcF9zc3AgPSBwcmVwX3NzcF92Ml9odywKIAkucHJlcF9zdHAgPSBwcmVwX2F0YV92Ml9odywKIAkucHJlcF9hYm9ydCA9IHByZXBfYWJvcnRfdjJfaHcsCi0JLmdldF9mcmVlX3Nsb3QgPSBnZXRfZnJlZV9zbG90X3YyX2h3LAogCS5zdGFydF9kZWxpdmVyeSA9IHN0YXJ0X2RlbGl2ZXJ5X3YyX2h3LAotCS5zbG90X2NvbXBsZXRlID0gc2xvdF9jb21wbGV0ZV92Ml9odywKIAkucGh5c19pbml0ID0gcGh5c19pbml0X3YyX2h3LAogCS5waHlfc3RhcnQgPSBzdGFydF9waHlfdjJfaHcsCiAJLnBoeV9kaXNhYmxlID0gZGlzYWJsZV9waHlfdjJfaHcsCkBAIC0zNjE2LDcgKzM1NjksNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhpc2lfc2FzX2h3IGhpc2lfc2FzX3YyX2h3ID0gewogCS5nZXRfZXZlbnRzID0gcGh5X2dldF9ldmVudHNfdjJfaHcsCiAJLnBoeV9zZXRfbGlua3JhdGUgPSBwaHlfc2V0X2xpbmtyYXRlX3YyX2h3LAogCS5waHlfZ2V0X21heF9saW5rcmF0ZSA9IHBoeV9nZXRfbWF4X2xpbmtyYXRlX3YyX2h3LAotCS5tYXhfY29tbWFuZF9lbnRyaWVzID0gSElTSV9TQVNfQ09NTUFORF9FTlRSSUVTX1YyX0hXLAogCS5jb21wbGV0ZV9oZHJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaGlzaV9zYXNfY29tcGxldGVfdjJfaGRyKSwKIAkuc29mdF9yZXNldCA9IHNvZnRfcmVzZXRfdjJfaHcsCiAJLmdldF9waHlzX3N0YXRlID0gZ2V0X3BoeXNfc3RhdGVfdjJfaHcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaGlzaV9zYXMvaGlzaV9zYXNfdjNfaHcuYyBiL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192M19ody5jCmluZGV4IDVmMGY2ZGYuLmNiOGQwODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192M19ody5jCisrKyBiL2RyaXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192M19ody5jCkBAIC03MSw2ICs3MSw3IEBACiAjZGVmaW5lIEhHQ19EUUVfRUNDX01CX0FERFJfT0ZGCTE2CiAjZGVmaW5lIEhHQ19EUUVfRUNDX01CX0FERFJfTVNLICgweGZmZiA8PCBIR0NfRFFFX0VDQ19NQl9BRERSX09GRikKICNkZWZpbmUgQ0hOTF9JTlRfU1RBVFVTCQkJMHgxNDgKKyNkZWZpbmUgVEFCX0RGWAkJCQkweDE0YwogI2RlZmluZSBIR0NfSVRDVF9FQ0NfQUREUgkJMHgxNTAKICNkZWZpbmUgSEdDX0lUQ1RfRUNDXzFCX0FERFJfT0ZGCQkwCiAjZGVmaW5lIEhHQ19JVENUX0VDQ18xQl9BRERSX01TSwkJKDB4M2ZmIDw8IFwKQEAgLTgzLDYgKzg0LDcgQEAKICNkZWZpbmUgQVhJX0VSUl9JTkZPX01TSyAgICAgICAgICAgICAgICgweGZmIDw8IEFYSV9FUlJfSU5GT19PRkYpCiAjZGVmaW5lIEZJRk9fRVJSX0lORk9fT0ZGICAgICAgICAgICAgICA4CiAjZGVmaW5lIEZJRk9fRVJSX0lORk9fTVNLICAgICAgICAgICAgICAoMHhmZiA8PCBGSUZPX0VSUl9JTkZPX09GRikKKyNkZWZpbmUgVEFCX1JEX1RZUEUJCQkweDE1YwogI2RlZmluZSBJTlRfQ09BTF9FTgkJCTB4MTljCiAjZGVmaW5lIE9RX0lOVF9DT0FMX1RJTUUJCTB4MWEwCiAjZGVmaW5lIE9RX0lOVF9DT0FMX0NOVAkJCTB4MWE0CkBAIC0xODksMTIgKzE5MSwzMCBAQAogI2RlZmluZSBQSFlfQ0ZHX1BIWV9SU1RfT0ZGCQkzCiAjZGVmaW5lIFBIWV9DRkdfUEhZX1JTVF9NU0sJCSgweDEgPDwgUEhZX0NGR19QSFlfUlNUX09GRikKICNkZWZpbmUgUFJPR19QSFlfTElOS19SQVRFCQkoUE9SVF9CQVNFICsgMHg4KQorI2RlZmluZSBDRkdfUFJPR19QSFlfTElOS19SQVRFX09GRgk4CisjZGVmaW5lIENGR19QUk9HX1BIWV9MSU5LX1JBVEVfTVNLCSgweGYgPDwgQ0ZHX1BST0dfUEhZX0xJTktfUkFURV9PRkYpCiAjZGVmaW5lIFBIWV9DVFJMCQkJKFBPUlRfQkFTRSArIDB4MTQpCiAjZGVmaW5lIFBIWV9DVFJMX1JFU0VUX09GRgkJMAogI2RlZmluZSBQSFlfQ1RSTF9SRVNFVF9NU0sJCSgweDEgPDwgUEhZX0NUUkxfUkVTRVRfT0ZGKQogI2RlZmluZSBDTURfSERSX1BJUl9PRkYJCQk4CiAjZGVmaW5lIENNRF9IRFJfUElSX01TSwkJCSgweDEgPDwgQ01EX0hEUl9QSVJfT0ZGKQogI2RlZmluZSBTRVJERVNfQ0ZHCQkJKFBPUlRfQkFTRSArIDB4MWMpCisjZGVmaW5lIENGR19BTE9TX0NIS19ESVNBQkxFX09GRgk5CisjZGVmaW5lIENGR19BTE9TX0NIS19ESVNBQkxFX01TSwkoMHgxIDw8IENGR19BTE9TX0NIS19ESVNBQkxFX09GRikKKyNkZWZpbmUgU0FTX1BIWV9CSVNUX0NUUkwJCShQT1JUX0JBU0UgKyAweDJjKQorI2RlZmluZSBDRkdfQklTVF9NT0RFX1NFTF9PRkYJCTAKKyNkZWZpbmUgQ0ZHX0JJU1RfTU9ERV9TRUxfTVNLCQkoMHhmIDw8IENGR19CSVNUX01PREVfU0VMX09GRikKKyNkZWZpbmUgQ0ZHX0xPT1BfVEVTVF9NT0RFX09GRgkJMTQKKyNkZWZpbmUgQ0ZHX0xPT1BfVEVTVF9NT0RFX01TSwkJKDB4MyA8PCBDRkdfTE9PUF9URVNUX01PREVfT0ZGKQorI2RlZmluZSBDRkdfUlhfQklTVF9FTl9PRkYJCTE2CisjZGVmaW5lIENGR19SWF9CSVNUX0VOX01TSwkJKDB4MSA8PCBDRkdfUlhfQklTVF9FTl9PRkYpCisjZGVmaW5lIENGR19UWF9CSVNUX0VOX09GRgkJMTcKKyNkZWZpbmUgQ0ZHX1RYX0JJU1RfRU5fTVNLCQkoMHgxIDw8IENGR19UWF9CSVNUX0VOX09GRikKKyNkZWZpbmUgQ0ZHX0JJU1RfVEVTVF9PRkYJCTE4CisjZGVmaW5lIENGR19CSVNUX1RFU1RfTVNLCQkoMHgxIDw8IENGR19CSVNUX1RFU1RfT0ZGKQorI2RlZmluZSBTQVNfUEhZX0JJU1RfQ09ERQkJKFBPUlRfQkFTRSArIDB4MzApCisjZGVmaW5lIFNBU19QSFlfQklTVF9DT0RFMQkJKFBPUlRfQkFTRSArIDB4MzQpCisjZGVmaW5lIFNBU19CSVNUX0VSUl9DTlQJCShQT1JUX0JBU0UgKyAweDM4KQogI2RlZmluZSBTTF9DRkcJCQkJKFBPUlRfQkFTRSArIDB4ODQpCiAjZGVmaW5lIEFJUF9MSU1JVAkJCShQT1JUX0JBU0UgKyAweDkwKQogI2RlZmluZSBTTF9DT05UUk9MCQkJKFBPUlRfQkFTRSArIDB4OTQpCkBAIC00OTksMTMgKzUxOSw2IEBAIHN0YXRpYyB1MzIgaGlzaV9zYXNfcmVhZDMyKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHUzMiBvZmYpCiAJcmV0dXJuIHJlYWRsKHJlZ3MpOwogfQogCi1zdGF0aWMgdTMyIGhpc2lfc2FzX3JlYWQzMl9yZWxheGVkKHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHUzMiBvZmYpCi17Ci0Jdm9pZCBfX2lvbWVtICpyZWdzID0gaGlzaV9oYmEtPnJlZ3MgKyBvZmY7Ci0KLQlyZXR1cm4gcmVhZGxfcmVsYXhlZChyZWdzKTsKLX0KLQogc3RhdGljIHZvaWQgaGlzaV9zYXNfd3JpdGUzMihzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCB1MzIgb2ZmLCB1MzIgdmFsKQogewogCXZvaWQgX19pb21lbSAqcmVncyA9IGhpc2lfaGJhLT5yZWdzICsgb2ZmOwpAQCAtMTAwNiwzMSArMTAxOSw2IEBAIHN0YXRpYyBpbnQgZ2V0X3dpZGVwb3J0X2JpdG1hcF92M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCBpbnQgcG9ydF9pZCkKIAlyZXR1cm4gYml0bWFwOwogfQogCi0vKioKLSAqIFRoZSBjYWxscGF0aCB0byB0aGlzIGZ1bmN0aW9uIGFuZCB1cHRvIHdyaXRpbmcgdGhlIHdyaXRlCi0gKiBxdWV1ZSBwb2ludGVyIHNob3VsZCBiZSBzYWZlIGZyb20gaW50ZXJydXB0aW9uLgotICovCi1zdGF0aWMgaW50Ci1nZXRfZnJlZV9zbG90X3YzX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHN0cnVjdCBoaXNpX3Nhc19kcSAqZHEpCi17Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gaGlzaV9oYmEtPmRldjsKLQlpbnQgcXVldWUgPSBkcS0+aWQ7Ci0JdTMyIHIsIHc7Ci0KLQl3ID0gZHEtPndyX3BvaW50OwotCXIgPSBoaXNpX3Nhc19yZWFkMzJfcmVsYXhlZChoaXNpX2hiYSwKLQkJCQlETFZSWV9RXzBfUkRfUFRSICsgKHF1ZXVlICogMHgxNCkpOwotCWlmIChyID09ICh3KzEpICUgSElTSV9TQVNfUVVFVUVfU0xPVFMpIHsKLQkJZGV2X3dhcm4oZGV2LCAiZnVsbCBxdWV1ZT0lZCByPSVkIHc9JWRcbiIsCi0JCQkgcXVldWUsIHIsIHcpOwotCQlyZXR1cm4gLUVBR0FJTjsKLQl9Ci0KLQlkcS0+d3JfcG9pbnQgPSAoZHEtPndyX3BvaW50ICsgMSkgJSBISVNJX1NBU19RVUVVRV9TTE9UUzsKLQotCXJldHVybiB3OwotfQotCiBzdGF0aWMgdm9pZCBzdGFydF9kZWxpdmVyeV92M19odyhzdHJ1Y3QgaGlzaV9zYXNfZHEgKmRxKQogewogCXN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEgPSBkcS0+aGlzaV9oYmE7CkBAIC0xMzg2LDcgKzEzNzQsMTAgQEAgc3RhdGljIHZvaWQgcHJlcF9hdGFfdjNfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKIAloZHItPmR3MSA9IGNwdV90b19sZTMyKGR3MSk7CiAKIAkvKiBkdzIgKi8KLQlpZiAodGFzay0+YXRhX3Rhc2sudXNlX25jcSAmJiBoaXNpX3Nhc19nZXRfbmNxX3RhZyh0YXNrLCAmaGRyX3RhZykpIHsKKwlpZiAodGFzay0+YXRhX3Rhc2sudXNlX25jcSkgeworCQlzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjID0gdGFzay0+dWxkZF90YXNrOworCisJCWhkcl90YWcgPSBxYy0+dGFnOwogCQl0YXNrLT5hdGFfdGFzay5maXMuc2VjdG9yX2NvdW50IHw9ICh1OCkgKGhkcl90YWcgPDwgMyk7CiAJCWR3MiB8PSBoZHJfdGFnIDw8IENNRF9IRFJfTkNRX1RBR19PRkY7CiAJfQpAQCAtMTk0NCw3ICsxOTM1LDcgQEAgc3RhdGljIHZvaWQgZmF0YWxfZWNjX2ludF92M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogCXUzMiBpcnFfdmFsdWUsIGlycV9tc2s7CiAKIAlpcnFfbXNrID0gaGlzaV9zYXNfcmVhZDMyKGhpc2lfaGJhLCBTQVNfRUNDX0lOVFJfTVNLKTsKLQloaXNpX3Nhc193cml0ZTMyKGhpc2lfaGJhLCBTQVNfRUNDX0lOVFJfTVNLLCBpcnFfbXNrIHwgMHhmZmZmZmZmZik7CisJaGlzaV9zYXNfd3JpdGUzMihoaXNpX2hiYSwgU0FTX0VDQ19JTlRSX01TSywgMHhmZmZmZmZmZik7CiAKIAlpcnFfdmFsdWUgPSBoaXNpX3Nhc19yZWFkMzIoaGlzaV9oYmEsIFNBU19FQ0NfSU5UUik7CiAJaWYgKGlycV92YWx1ZSkKQEAgLTIyMjAsNyArMjIxMSw3IEBAIHNsb3RfY29tcGxldGVfdjNfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwgc3RydWN0IGhpc2lfc2FzX3Nsb3QgKnNsb3QpCiAKIAkJc2xvdF9lcnJfdjNfaHcoaGlzaV9oYmEsIHRhc2ssIHNsb3QpOwogCQlpZiAodHMtPnN0YXQgIT0gU0FTX0RBVEFfVU5ERVJSVU4pCi0JCQlkZXZfaW5mbyhkZXYsICJlcnJvbmVvdXMgY29tcGxldGlvbiBpcHR0PSVkIHRhc2s9JXAgZGV2IGlkPSVkIENRIGhkcjogMHgleCAweCV4IDB4JXggMHgleCBFcnJvciBpbmZvOiAweCV4IDB4JXggMHgleCAweCV4XG4iLAorCQkJZGV2X2luZm8oZGV2LCAiZXJyb25lb3VzIGNvbXBsZXRpb24gaXB0dD0lZCB0YXNrPSVwSyBkZXYgaWQ9JWQgQ1EgaGRyOiAweCV4IDB4JXggMHgleCAweCV4IEVycm9yIGluZm86IDB4JXggMHgleCAweCV4IDB4JXhcbiIsCiAJCQkJIHNsb3QtPmlkeCwgdGFzaywgc2FzX2Rldi0+ZGV2aWNlX2lkLAogCQkJCSBkdzAsIGR3MSwgY29tcGxldGVfaGRyLT5hY3QsIGR3MywKIAkJCQkgZXJyb3JfaW5mb1swXSwgZXJyb3JfaW5mb1sxXSwKQEAgLTIyNDEsMjAgKzIyMzIsMTYgQEAgc2xvdF9jb21wbGV0ZV92M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCBzdHJ1Y3QgaGlzaV9zYXNfc2xvdCAqc2xvdCkKIAl9CiAJY2FzZSBTQVNfUFJPVE9DT0xfU01QOiB7CiAJCXN0cnVjdCBzY2F0dGVybGlzdCAqc2dfcmVzcCA9ICZ0YXNrLT5zbXBfdGFzay5zbXBfcmVzcDsKLQkJdm9pZCAqdG87CisJCXZvaWQgKnRvID0gcGFnZV9hZGRyZXNzKHNnX3BhZ2Uoc2dfcmVzcCkpOwogCiAJCXRzLT5zdGF0ID0gU0FNX1NUQVRfR09PRDsKLQkJdG8gPSBrbWFwX2F0b21pYyhzZ19wYWdlKHNnX3Jlc3ApKTsKIAotCQlkbWFfdW5tYXBfc2coZGV2LCAmdGFzay0+c21wX3Rhc2suc21wX3Jlc3AsIDEsCi0JCQkgICAgIERNQV9GUk9NX0RFVklDRSk7CiAJCWRtYV91bm1hcF9zZyhkZXYsICZ0YXNrLT5zbXBfdGFzay5zbXBfcmVxLCAxLAogCQkJICAgICBETUFfVE9fREVWSUNFKTsKIAkJbWVtY3B5KHRvICsgc2dfcmVzcC0+b2Zmc2V0LAogCQkJaGlzaV9zYXNfc3RhdHVzX2J1Zl9hZGRyX21lbShzbG90KSArCiAJCSAgICAgICBzaXplb2Yoc3RydWN0IGhpc2lfc2FzX2Vycl9yZWNvcmQpLAotCQkgICAgICAgc2dfZG1hX2xlbihzZ19yZXNwKSk7Ci0JCWt1bm1hcF9hdG9taWModG8pOworCQkgICAgICAgc2dfcmVzcC0+bGVuZ3RoKTsKIAkJYnJlYWs7CiAJfQogCWNhc2UgU0FTX1BST1RPQ09MX1NBVEE6CkBAIC0yMjc5LDcgKzIyNjYsNyBAQCBzbG90X2NvbXBsZXRlX3YzX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHN0cnVjdCBoaXNpX3Nhc19zbG90ICpzbG90KQogCXNwaW5fbG9ja19pcnFzYXZlKCZ0YXNrLT50YXNrX3N0YXRlX2xvY2ssIGZsYWdzKTsKIAlpZiAodGFzay0+dGFza19zdGF0ZV9mbGFncyAmIFNBU19UQVNLX1NUQVRFX0FCT1JURUQpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGFzay0+dGFza19zdGF0ZV9sb2NrLCBmbGFncyk7Ci0JCWRldl9pbmZvKGRldiwgInNsb3QgY29tcGxldGU6IHRhc2soJXApIGFib3J0ZWRcbiIsIHRhc2spOworCQlkZXZfaW5mbyhkZXYsICJzbG90IGNvbXBsZXRlOiB0YXNrKCVwSykgYWJvcnRlZFxuIiwgdGFzayk7CiAJCXJldHVybiBTQVNfQUJPUlRFRF9UQVNLOwogCX0KIAl0YXNrLT50YXNrX3N0YXRlX2ZsYWdzIHw9IFNBU19UQVNLX1NUQVRFX0RPTkU7CkBAIC0yMjkwLDcgKzIyNzcsNyBAQCBzbG90X2NvbXBsZXRlX3YzX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsIHN0cnVjdCBoaXNpX3Nhc19zbG90ICpzbG90KQogCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2aWNlLT5kb25lX2xvY2ssIGZsYWdzKTsKIAkJaWYgKHRlc3RfYml0KFNBU19IQV9GUk9aRU4sICZoYS0+c3RhdGUpKSB7CiAJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZpY2UtPmRvbmVfbG9jaywgZmxhZ3MpOwotCQkJZGV2X2luZm8oZGV2LCAic2xvdCBjb21wbGV0ZTogdGFzayglcCkgaWdub3JlZFxuICIsCisJCQlkZXZfaW5mbyhkZXYsICJzbG90IGNvbXBsZXRlOiB0YXNrKCVwSykgaWdub3JlZFxuICIsCiAJCQkJIHRhc2spOwogCQkJcmV0dXJuIHN0czsKIAkJfQpAQCAtMjM4NSw4ICsyMzcyLDcgQEAgc3RhdGljIGludCBpbnRlcnJ1cHRfaW5pdF92M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhpc2lfaGJhLT5kZXY7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBoaXNpX2hiYS0+cGNpX2RldjsKLQlpbnQgdmVjdG9ycywgcmM7Ci0JaW50IGksIGs7CisJaW50IHZlY3RvcnMsIHJjLCBpOwogCWludCBtYXhfbXNpID0gSElTSV9TQVNfTVNJX0NPVU5UX1YzX0hXLCBtaW5fbXNpOwogCiAJaWYgKGF1dG9fYWZmaW5lX21zaV9leHBlcmltZW50YWwpIHsKQEAgLTI0MzQsNyArMjQyMCw3IEBAIHN0YXRpYyBpbnQgaW50ZXJydXB0X2luaXRfdjNfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKIAlpZiAocmMpIHsKIAkJZGV2X2VycihkZXYsICJjb3VsZCBub3QgcmVxdWVzdCBjaG5sIGludGVycnVwdCwgcmM9JWRcbiIsIHJjKTsKIAkJcmMgPSAtRU5PRU5UOwotCQlnb3RvIGZyZWVfcGh5X2lycTsKKwkJZ290byBmcmVlX2lycV92ZWN0b3JzOwogCX0KIAogCXJjID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIHBjaV9pcnFfdmVjdG9yKHBkZXYsIDExKSwKQEAgLTI0NDMsNyArMjQyOSw3IEBAIHN0YXRpYyBpbnQgaW50ZXJydXB0X2luaXRfdjNfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKIAlpZiAocmMpIHsKIAkJZGV2X2VycihkZXYsICJjb3VsZCBub3QgcmVxdWVzdCBmYXRhbCBpbnRlcnJ1cHQsIHJjPSVkXG4iLCByYyk7CiAJCXJjID0gLUVOT0VOVDsKLQkJZ290byBmcmVlX2NobmxfaW50ZXJydXB0OworCQlnb3RvIGZyZWVfaXJxX3ZlY3RvcnM7CiAJfQogCiAJLyogSW5pdCB0YXNrbGV0cyBmb3IgY3Egb25seSAqLwpAQCAtMjQ2MCw3ICsyNDQ2LDcgQEAgc3RhdGljIGludCBpbnRlcnJ1cHRfaW5pdF92M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogCQkJZGV2X2VycihkZXYsICJjb3VsZCBub3QgcmVxdWVzdCBjcSVkIGludGVycnVwdCwgcmM9JWRcbiIsCiAJCQkJaSwgcmMpOwogCQkJcmMgPSAtRU5PRU5UOwotCQkJZ290byBmcmVlX2NxX2lycXM7CisJCQlnb3RvIGZyZWVfaXJxX3ZlY3RvcnM7CiAJCX0KIAogCQl0YXNrbGV0X2luaXQodCwgY3FfdGFza2xldF92M19odywgKHVuc2lnbmVkIGxvbmcpY3EpOwpAQCAtMjQ2OCwxOCArMjQ1NCw2IEBAIHN0YXRpYyBpbnQgaW50ZXJydXB0X2luaXRfdjNfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSkKIAogCXJldHVybiAwOwogCi1mcmVlX2NxX2lycXM6Ci0JZm9yIChrID0gMDsgayA8IGk7IGsrKykgewotCQlzdHJ1Y3QgaGlzaV9zYXNfY3EgKmNxID0gJmhpc2lfaGJhLT5jcVtrXTsKLQkJaW50IG5yID0gaGlzaV9zYXNfaW50cl9jb252ID8gMTYgOiAxNiArIGs7Ci0KLQkJZnJlZV9pcnEocGNpX2lycV92ZWN0b3IocGRldiwgbnIpLCBjcSk7Ci0JfQotCWZyZWVfaXJxKHBjaV9pcnFfdmVjdG9yKHBkZXYsIDExKSwgaGlzaV9oYmEpOwotZnJlZV9jaG5sX2ludGVycnVwdDoKLQlmcmVlX2lycShwY2lfaXJxX3ZlY3RvcihwZGV2LCAyKSwgaGlzaV9oYmEpOwotZnJlZV9waHlfaXJxOgotCWZyZWVfaXJxKHBjaV9pcnFfdmVjdG9yKHBkZXYsIDEpLCBoaXNpX2hiYSk7CiBmcmVlX2lycV92ZWN0b3JzOgogCXBjaV9mcmVlX2lycV92ZWN0b3JzKHBkZXYpOwogCXJldHVybiByYzsKQEAgLTI2MjAsOCArMjU5NCw4IEBAIHN0YXRpYyBpbnQgd3JpdGVfZ3Bpb192M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLCB1OCByZWdfdHlwZSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB3YWl0X2NtZHNfY29tcGxldGVfdGltZW91dF92M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhLAotCQkJCQkgICAgaW50IGRlbGF5X21zLCBpbnQgdGltZW91dF9tcykKK3N0YXRpYyB2b2lkIHdhaXRfY21kc19jb21wbGV0ZV90aW1lb3V0X3YzX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsCisJCQkJCSAgICAgaW50IGRlbGF5X21zLCBpbnQgdGltZW91dF9tcykKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoaXNpX2hiYS0+ZGV2OwogCWludCBlbnRyaWVzLCBlbnRyaWVzX29sZCA9IDAsIHRpbWU7CkBAIC0yNjM1LDEyICsyNjA5LDEyIEBAIHN0YXRpYyBpbnQgd2FpdF9jbWRzX2NvbXBsZXRlX3RpbWVvdXRfdjNfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwKIAkJbXNsZWVwKGRlbGF5X21zKTsKIAl9CiAKLQlpZiAodGltZSA+PSB0aW1lb3V0X21zKQotCQlyZXR1cm4gLUVUSU1FRE9VVDsKKwlpZiAodGltZSA+PSB0aW1lb3V0X21zKSB7CisJCWRldl9kYmcoZGV2LCAiV2FpdCBjb21tYW5kcyBjb21wbGV0ZSB0aW1lb3V0IVxuIik7CisJCXJldHVybjsKKwl9CiAKIAlkZXZfZGJnKGRldiwgIndhaXQgY29tbWFuZHMgY29tcGxldGUgJWRtc1xuIiwgdGltZSk7Ci0KLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHNzaXplX3QgaW50cl9jb252X3YzX2h3X3Nob3coc3RydWN0IGRldmljZSAqZGV2LApAQCAtMjg4NywxNiArMjg2MSw0NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhpc2lfc2FzX2RlYnVnZnNfcmVnIGRlYnVnZnNfZ2xvYmFsX3JlZyA9IHsKIAkucmVhZF9nbG9iYWxfcmVnID0gaGlzaV9zYXNfcmVhZDMyLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBoaXNpX3Nhc19kZWJ1Z2ZzX3JlZ19sdSBkZWJ1Z2ZzX2F4aV9yZWdfbHVbXSA9IHsKKwlISVNJX1NBU19ERUJVR0ZTX1JFRyhBTV9DRkdfTUFYX1RSQU5TKSwKKwlISVNJX1NBU19ERUJVR0ZTX1JFRyhBTV9DRkdfU0lOR0xFX1BPUlRfTUFYX1RSQU5TKSwKKwlISVNJX1NBU19ERUJVR0ZTX1JFRyhBWElfQ0ZHKSwKKwlISVNJX1NBU19ERUJVR0ZTX1JFRyhBTV9ST0JfRUNDX0VSUl9BRERSKSwKKwl7fQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBoaXNpX3Nhc19kZWJ1Z2ZzX3JlZyBkZWJ1Z2ZzX2F4aV9yZWcgPSB7CisJLmx1ID0gZGVidWdmc19heGlfcmVnX2x1LAorCS5jb3VudCA9IDB4NjEsCisJLmJhc2Vfb2ZmID0gQVhJX01BU1RFUl9DRkdfQkFTRSwKKwkucmVhZF9nbG9iYWxfcmVnID0gaGlzaV9zYXNfcmVhZDMyLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBoaXNpX3Nhc19kZWJ1Z2ZzX3JlZ19sdSBkZWJ1Z2ZzX3Jhc19yZWdfbHVbXSA9IHsKKwlISVNJX1NBU19ERUJVR0ZTX1JFRyhTQVNfUkFTX0lOVFIxKSwKKwlISVNJX1NBU19ERUJVR0ZTX1JFRyhTQVNfUkFTX0lOVFIwX01BU0spLAorCUhJU0lfU0FTX0RFQlVHRlNfUkVHKFNBU19SQVNfSU5UUjFfTUFTSyksCisJSElTSV9TQVNfREVCVUdGU19SRUcoQ0ZHX1NBU19SQVNfSU5UUl9NQVNLKSwKKwlISVNJX1NBU19ERUJVR0ZTX1JFRyhTQVNfUkFTX0lOVFIyKSwKKwlISVNJX1NBU19ERUJVR0ZTX1JFRyhTQVNfUkFTX0lOVFIyX01BU0spLAorCXt9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGhpc2lfc2FzX2RlYnVnZnNfcmVnIGRlYnVnZnNfcmFzX3JlZyA9IHsKKwkubHUgPSBkZWJ1Z2ZzX3Jhc19yZWdfbHUsCisJLmNvdW50ID0gMHgxMCwKKwkuYmFzZV9vZmYgPSBSQVNfQkFTRSwKKwkucmVhZF9nbG9iYWxfcmVnID0gaGlzaV9zYXNfcmVhZDMyLAorfTsKKwogc3RhdGljIHZvaWQgZGVidWdmc19zbmFwc2hvdF9wcmVwYXJlX3YzX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEpCiB7Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gaGlzaV9oYmEtPmRldjsKLQogCXNldF9iaXQoSElTSV9TQVNfUkVKRUNUX0NNRF9CSVQsICZoaXNpX2hiYS0+ZmxhZ3MpOwogCiAJaGlzaV9zYXNfd3JpdGUzMihoaXNpX2hiYSwgRExWUllfUVVFVUVfRU5BQkxFLCAwKTsKIAotCWlmICh3YWl0X2NtZHNfY29tcGxldGVfdGltZW91dF92M19odyhoaXNpX2hiYSwgMTAwLCA1MDAwKSA9PSAtRVRJTUVET1VUKQotCQlkZXZfZGJnKGRldiwgIldhaXQgY29tbWFuZHMgY29tcGxldGUgdGltZW91dCFcbiIpOworCXdhaXRfY21kc19jb21wbGV0ZV90aW1lb3V0X3YzX2h3KGhpc2lfaGJhLCAxMDAsIDUwMDApOwogCiAJaGlzaV9zYXNfa2lsbF90YXNrbGV0cyhoaXNpX2hiYSk7CiB9CkBAIC0yOTA5LDYgKzI5MTIsMTQyIEBAIHN0YXRpYyB2b2lkIGRlYnVnZnNfc25hcHNob3RfcmVzdG9yZV92M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQogCWNsZWFyX2JpdChISVNJX1NBU19SRUpFQ1RfQ01EX0JJVCwgJmhpc2lfaGJhLT5mbGFncyk7CiB9CiAKK3N0YXRpYyB2b2lkIHJlYWRfaW9zdF9pdGN0X2NhY2hlX3YzX2h3KHN0cnVjdCBoaXNpX2hiYSAqaGlzaV9oYmEsCisJCQkJICAgICAgIGVudW0gaGlzaV9zYXNfZGVidWdmc19jYWNoZV90eXBlIHR5cGUsCisJCQkJICAgICAgIHUzMiAqY2FjaGUpCit7CisJdTMyIGNhY2hlX2R3X3NpemUgPSBISVNJX1NBU19JT1NUX0lUQ1RfQ0FDSEVfRFdfU1ogKgorCQkJICAgIEhJU0lfU0FTX0lPU1RfSVRDVF9DQUNIRV9OVU07CisJdTMyICpidWYgPSBjYWNoZTsKKwl1MzIgaSwgdmFsOworCisJaGlzaV9zYXNfd3JpdGUzMihoaXNpX2hiYSwgVEFCX1JEX1RZUEUsIHR5cGUpOworCisJZm9yIChpID0gMDsgaSA8IEhJU0lfU0FTX0lPU1RfSVRDVF9DQUNIRV9EV19TWjsgaSsrKSB7CisJCXZhbCA9IGhpc2lfc2FzX3JlYWQzMihoaXNpX2hiYSwgVEFCX0RGWCk7CisJCWlmICh2YWwgPT0gMHhmZmZmZmZmZikKKwkJCWJyZWFrOworCX0KKworCWlmICh2YWwgIT0gMHhmZmZmZmZmZikgeworCQlwcl9lcnIoIklzc3VlIG9jY3VyIHdoZW4gcmVhZGluZyBJT1NUL0lUQ1QgY2FjaGUhXG4iKTsKKwkJcmV0dXJuOworCX0KKworCW1lbXNldChidWYsIDAsIGNhY2hlX2R3X3NpemUgKiA0KTsKKwlidWZbMF0gPSB2YWw7CisKKwlmb3IgKGkgPSAxOyBpIDwgY2FjaGVfZHdfc2l6ZTsgaSsrKQorCQlidWZbaV0gPSBoaXNpX3Nhc19yZWFkMzIoaGlzaV9oYmEsIFRBQl9ERlgpOworfQorCitzdGF0aWMgdm9pZCBoaXNpX3Nhc19iaXN0X3Rlc3RfcHJlcF92M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQoreworCXUzMiByZWdfdmFsOworCWludCBwaHlfaWQgPSBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X3BoeV9ubzsKKworCS8qIGRpc2FibGUgUEhZICovCisJaGlzaV9zYXNfcGh5X2VuYWJsZShoaXNpX2hiYSwgcGh5X2lkLCAwKTsKKworCS8qIGRpc2FibGUgQUxPUyAqLworCXJlZ192YWwgPSBoaXNpX3Nhc19waHlfcmVhZDMyKGhpc2lfaGJhLCBwaHlfaWQsIFNFUkRFU19DRkcpOworCXJlZ192YWwgfD0gQ0ZHX0FMT1NfQ0hLX0RJU0FCTEVfTVNLOworCWhpc2lfc2FzX3BoeV93cml0ZTMyKGhpc2lfaGJhLCBwaHlfaWQsIFNFUkRFU19DRkcsIHJlZ192YWwpOworfQorCitzdGF0aWMgdm9pZCBoaXNpX3Nhc19iaXN0X3Rlc3RfcmVzdG9yZV92M19odyhzdHJ1Y3QgaGlzaV9oYmEgKmhpc2lfaGJhKQoreworCXUzMiByZWdfdmFsOworCWludCBwaHlfaWQgPSBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X3BoeV9ubzsKKworCS8qIGRpc2FibGUgbG9vcGJhY2sgKi8KKwlyZWdfdmFsID0gaGlzaV9zYXNfcGh5X3JlYWQzMihoaXNpX2hiYSwgcGh5X2lkLCBTQVNfUEhZX0JJU1RfQ1RSTCk7CisJcmVnX3ZhbCAmPSB+KENGR19SWF9CSVNUX0VOX01TSyB8IENGR19UWF9CSVNUX0VOX01TSyB8CisJCSAgICAgQ0ZHX0JJU1RfVEVTVF9NU0spOworCWhpc2lfc2FzX3BoeV93cml0ZTMyKGhpc2lfaGJhLCBwaHlfaWQsIFNBU19QSFlfQklTVF9DVFJMLCByZWdfdmFsKTsKKworCS8qIGVuYWJsZSBBTE9TICovCisJcmVnX3ZhbCA9IGhpc2lfc2FzX3BoeV9yZWFkMzIoaGlzaV9oYmEsIHBoeV9pZCwgU0VSREVTX0NGRyk7CisJcmVnX3ZhbCAmPSB+Q0ZHX0FMT1NfQ0hLX0RJU0FCTEVfTVNLOworCWhpc2lfc2FzX3BoeV93cml0ZTMyKGhpc2lfaGJhLCBwaHlfaWQsIFNFUkRFU19DRkcsIHJlZ192YWwpOworCisJLyogcmVzdG9yZSB0aGUgbGlua3JhdGUgKi8KKwlyZWdfdmFsID0gaGlzaV9zYXNfcGh5X3JlYWQzMihoaXNpX2hiYSwgcGh5X2lkLCBQUk9HX1BIWV9MSU5LX1JBVEUpOworCS8qIGluaXQgT09CIGxpbmsgcmF0ZSBhcyAxLjUgR2JpdHMgKi8KKwlyZWdfdmFsICY9IH5DRkdfUFJPR19QSFlfTElOS19SQVRFX01TSzsKKwlyZWdfdmFsIHw9ICgweDggPDwgQ0ZHX1BST0dfUEhZX0xJTktfUkFURV9PRkYpOworCWhpc2lfc2FzX3BoeV93cml0ZTMyKGhpc2lfaGJhLCBwaHlfaWQsIFBST0dfUEhZX0xJTktfUkFURSwgcmVnX3ZhbCk7CisKKwkvKiBlbmFibGUgUEhZICovCisJaGlzaV9zYXNfcGh5X2VuYWJsZShoaXNpX2hiYSwgcGh5X2lkLCAxKTsKK30KKworI2RlZmluZSBTQVNfUEhZX0JJU1RfQ09ERV9JTklUCTB4MQorI2RlZmluZSBTQVNfUEhZX0JJU1RfQ09ERTFfSU5JVAkwWDgwCitzdGF0aWMgaW50IGRlYnVnZnNfc2V0X2Jpc3RfdjNfaHcoc3RydWN0IGhpc2lfaGJhICpoaXNpX2hiYSwgYm9vbCBlbmFibGUpCit7CisJdTMyIHJlZ192YWwsIG1vZGVfdG1wOworCXUzMiBsaW5rcmF0ZSA9IGhpc2lfaGJhLT5kZWJ1Z2ZzX2Jpc3RfbGlua3JhdGU7CisJdTMyIHBoeV9pZCA9IGhpc2lfaGJhLT5kZWJ1Z2ZzX2Jpc3RfcGh5X25vOworCXUzMiBjb2RlX21vZGUgPSBoaXNpX2hiYS0+ZGVidWdmc19iaXN0X2NvZGVfbW9kZTsKKwl1MzIgcGF0aF9tb2RlID0gaGlzaV9oYmEtPmRlYnVnZnNfYmlzdF9tb2RlOworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhpc2lfaGJhLT5kZXY7CisKKwlkZXZfaW5mbyhkZXYsICJCSVNUIGluZm86bGlua3JhdGU9JWQgcGh5X2lkPSVkIGNvZGVfbW9kZT0lZCBwYXRoX21vZGU9JWRcbiIsCisJCSBsaW5rcmF0ZSwgcGh5X2lkLCBjb2RlX21vZGUsIHBhdGhfbW9kZSk7CisJbW9kZV90bXAgPSBwYXRoX21vZGUgPyAyIDogMTsKKwlpZiAoZW5hYmxlKSB7CisJCS8qIHNvbWUgcHJlcGFyYXRpb25zIGJlZm9yZSBiaXN0IHRlc3QgKi8KKwkJaGlzaV9zYXNfYmlzdF90ZXN0X3ByZXBfdjNfaHcoaGlzaV9oYmEpOworCisJCS8qIHNldCBsaW5rcmF0ZSBvZiBiaXQgdGVzdCovCisJCXJlZ192YWwgPSBoaXNpX3Nhc19waHlfcmVhZDMyKGhpc2lfaGJhLCBwaHlfaWQsCisJCQkJCSAgICAgIFBST0dfUEhZX0xJTktfUkFURSk7CisJCXJlZ192YWwgJj0gfkNGR19QUk9HX1BIWV9MSU5LX1JBVEVfTVNLOworCQlyZWdfdmFsIHw9IChsaW5rcmF0ZSA8PCBDRkdfUFJPR19QSFlfTElOS19SQVRFX09GRik7CisJCWhpc2lfc2FzX3BoeV93cml0ZTMyKGhpc2lfaGJhLCBwaHlfaWQsCisJCQkJICAgICBQUk9HX1BIWV9MSU5LX1JBVEUsIHJlZ192YWwpOworCisJCS8qIHNldCBjb2RlIG1vZGUgb2YgYml0IHRlc3QgKi8KKwkJcmVnX3ZhbCA9IGhpc2lfc2FzX3BoeV9yZWFkMzIoaGlzaV9oYmEsIHBoeV9pZCwKKwkJCQkJICAgICAgU0FTX1BIWV9CSVNUX0NUUkwpOworCQlyZWdfdmFsICY9IH4oQ0ZHX0JJU1RfTU9ERV9TRUxfTVNLIHwKKwkJCQlDRkdfTE9PUF9URVNUX01PREVfTVNLIHwKKwkJCQlDRkdfUlhfQklTVF9FTl9NU0sgfAorCQkJCUNGR19UWF9CSVNUX0VOX01TSyB8CisJCQkJQ0ZHX0JJU1RfVEVTVF9NU0spOworCQlyZWdfdmFsIHw9ICgoY29kZV9tb2RlIDw8IENGR19CSVNUX01PREVfU0VMX09GRikgfAorCQkJICAgIChtb2RlX3RtcCA8PCBDRkdfTE9PUF9URVNUX01PREVfT0ZGKSB8CisJCQkgICAgQ0ZHX0JJU1RfVEVTVF9NU0spOworCQloaXNpX3Nhc19waHlfd3JpdGUzMihoaXNpX2hiYSwgcGh5X2lkLAorCQkJCSAgICAgU0FTX1BIWV9CSVNUX0NUUkwsIHJlZ192YWwpOworCisJCW1kZWxheSgxMDApOworCQlyZWdfdmFsIHw9IChDRkdfUlhfQklTVF9FTl9NU0sgfCBDRkdfVFhfQklTVF9FTl9NU0spOworCQloaXNpX3Nhc19waHlfd3JpdGUzMihoaXNpX2hiYSwgcGh5X2lkLAorCQkJCSAgICAgU0FTX1BIWV9CSVNUX0NUUkwsIHJlZ192YWwpOworCisJCS8qIHNldCB0aGUgYmlzdCBpbml0IHZhbHVlICovCisJCWhpc2lfc2FzX3BoeV93cml0ZTMyKGhpc2lfaGJhLCBwaHlfaWQsCisJCQkJICAgICBTQVNfUEhZX0JJU1RfQ09ERSwKKwkJCQkgICAgIFNBU19QSFlfQklTVF9DT0RFX0lOSVQpOworCQloaXNpX3Nhc19waHlfd3JpdGUzMihoaXNpX2hiYSwgcGh5X2lkLAorCQkJCSAgICAgU0FTX1BIWV9CSVNUX0NPREUxLAorCQkJCSAgICAgU0FTX1BIWV9CSVNUX0NPREUxX0lOSVQpOworCisJCS8qIGNsZWFyIGVycm9yIGJpdCAqLworCQltZGVsYXkoMTAwKTsKKwkJaGlzaV9zYXNfcGh5X3JlYWQzMihoaXNpX2hiYSwgcGh5X2lkLCBTQVNfQklTVF9FUlJfQ05UKTsKKwl9IGVsc2UgeworCQkvKiBkaXNhYmxlIGJpc3QgdGVzdCBhbmQgcmVjb3ZlciBpdCAqLworCQloaXNpX2hiYS0+ZGVidWdmc19iaXN0X2NudCArPSBoaXNpX3Nhc19waHlfcmVhZDMyKGhpc2lfaGJhLAorCQkJCXBoeV9pZCwgU0FTX0JJU1RfRVJSX0NOVCk7CisJCWhpc2lfc2FzX2Jpc3RfdGVzdF9yZXN0b3JlX3YzX2h3KGhpc2lfaGJhKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHN0cnVjdCBzY3NpX2hvc3RfdGVtcGxhdGUgc2h0X3YzX2h3ID0gewogCS5uYW1lCQkJPSBEUlZfTkFNRSwKIAkubW9kdWxlCQkJPSBUSElTX01PRFVMRSwKQEAgLTI5MzUsNyArMzA3NCw2IEBAIHN0YXRpYyBzdHJ1Y3Qgc2NzaV9ob3N0X3RlbXBsYXRlIHNodF92M19odyA9IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlzaV9zYXNfaHcgaGlzaV9zYXNfdjNfaHcgPSB7CiAJLmh3X2luaXQgPSBoaXNpX3Nhc192M19pbml0LAogCS5zZXR1cF9pdGN0ID0gc2V0dXBfaXRjdF92M19odywKLQkubWF4X2NvbW1hbmRfZW50cmllcyA9IEhJU0lfU0FTX0NPTU1BTkRfRU5UUklFU19WM19IVywKIAkuZ2V0X3dpZGVwb3J0X2JpdG1hcCA9IGdldF93aWRlcG9ydF9iaXRtYXBfdjNfaHcsCiAJLmNvbXBsZXRlX2hkcl9zaXplID0gc2l6ZW9mKHN0cnVjdCBoaXNpX3Nhc19jb21wbGV0ZV92M19oZHIpLAogCS5jbGVhcl9pdGN0ID0gY2xlYXJfaXRjdF92M19odywKQEAgLTI5NDQsOSArMzA4Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlzaV9zYXNfaHcgaGlzaV9zYXNfdjNfaHcgPSB7CiAJLnByZXBfc21wID0gcHJlcF9zbXBfdjNfaHcsCiAJLnByZXBfc3RwID0gcHJlcF9hdGFfdjNfaHcsCiAJLnByZXBfYWJvcnQgPSBwcmVwX2Fib3J0X3YzX2h3LAotCS5nZXRfZnJlZV9zbG90ID0gZ2V0X2ZyZWVfc2xvdF92M19odywKIAkuc3RhcnRfZGVsaXZlcnkgPSBzdGFydF9kZWxpdmVyeV92M19odywKLQkuc2xvdF9jb21wbGV0ZSA9IHNsb3RfY29tcGxldGVfdjNfaHcsCiAJLnBoeXNfaW5pdCA9IHBoeXNfaW5pdF92M19odywKIAkucGh5X3N0YXJ0ID0gc3RhcnRfcGh5X3YzX2h3LAogCS5waHlfZGlzYWJsZSA9IGRpc2FibGVfcGh5X3YzX2h3LApAQCAtMjk1OSwxMCArMzA5NSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhpc2lfc2FzX2h3IGhpc2lfc2FzX3YzX2h3ID0gewogCS5nZXRfZXZlbnRzID0gcGh5X2dldF9ldmVudHNfdjNfaHcsCiAJLndyaXRlX2dwaW8gPSB3cml0ZV9ncGlvX3YzX2h3LAogCS53YWl0X2NtZHNfY29tcGxldGVfdGltZW91dCA9IHdhaXRfY21kc19jb21wbGV0ZV90aW1lb3V0X3YzX2h3LAotCS5kZWJ1Z2ZzX3JlZ19nbG9iYWwgPSAmZGVidWdmc19nbG9iYWxfcmVnLAorCS5kZWJ1Z2ZzX3JlZ19hcnJheVtERUJVR0ZTX0dMT0JBTF0gPSAmZGVidWdmc19nbG9iYWxfcmVnLAorCS5kZWJ1Z2ZzX3JlZ19hcnJheVtERUJVR0ZTX0FYSV0gPSAmZGVidWdmc19heGlfcmVnLAorCS5kZWJ1Z2ZzX3JlZ19hcnJheVtERUJVR0ZTX1JBU10gPSAmZGVidWdmc19yYXNfcmVnLAogCS5kZWJ1Z2ZzX3JlZ19wb3J0ID0gJmRlYnVnZnNfcG9ydF9yZWcsCiAJLnNuYXBzaG90X3ByZXBhcmUgPSBkZWJ1Z2ZzX3NuYXBzaG90X3ByZXBhcmVfdjNfaHcsCiAJLnNuYXBzaG90X3Jlc3RvcmUgPSBkZWJ1Z2ZzX3NuYXBzaG90X3Jlc3RvcmVfdjNfaHcsCisJLnJlYWRfaW9zdF9pdGN0X2NhY2hlID0gcmVhZF9pb3N0X2l0Y3RfY2FjaGVfdjNfaHcsCisJLnNldF9iaXN0ID0gZGVidWdmc19zZXRfYmlzdF92M19odywKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgU2NzaV9Ib3N0ICoKQEAgLTI5OTMsOCArMzEzMyw2IEBAIGhpc2lfc2FzX3Nob3N0X2FsbG9jX3BjaShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAllbHNlCiAJCWhpc2lfaGJhLT5wcm90X21hc2sgPSBwcm90X21hc2s7CiAKLQl0aW1lcl9zZXR1cCgmaGlzaV9oYmEtPnRpbWVyLCBOVUxMLCAwKTsKLQogCWlmIChoaXNpX3Nhc19nZXRfZndfaW5mbyhoaXNpX2hiYSkgPCAwKQogCQlnb3RvIGVycl9vdXQ7CiAKQEAgLTMwNzYsMTcgKzMyMTQsMTQgQEAgaGlzaV9zYXNfdjNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAlzaG9zdC0+bWF4X2x1biA9IH4wOwogCXNob3N0LT5tYXhfY2hhbm5lbCA9IDE7CiAJc2hvc3QtPm1heF9jbWRfbGVuID0gMTY7Ci0Jc2hvc3QtPmNhbl9xdWV1ZSA9IGhpc2lfaGJhLT5ody0+bWF4X2NvbW1hbmRfZW50cmllcyAtCi0JCUhJU0lfU0FTX1JFU0VSVkVEX0lQVFRfQ05UOwotCXNob3N0LT5jbWRfcGVyX2x1biA9IGhpc2lfaGJhLT5ody0+bWF4X2NvbW1hbmRfZW50cmllcyAtCi0JCUhJU0lfU0FTX1JFU0VSVkVEX0lQVFRfQ05UOworCXNob3N0LT5jYW5fcXVldWUgPSBISVNJX1NBU19VTlJFU0VSVkVEX0lQVFQ7CisJc2hvc3QtPmNtZF9wZXJfbHVuID0gSElTSV9TQVNfVU5SRVNFUlZFRF9JUFRUOwogCiAJc2hhLT5zYXNfaGFfbmFtZSA9IERSVl9OQU1FOwogCXNoYS0+ZGV2ID0gZGV2OwogCXNoYS0+bGxkZF9tb2R1bGUgPSBUSElTX01PRFVMRTsKIAlzaGEtPnNhc19hZGRyID0gJmhpc2lfaGJhLT5zYXNfYWRkclswXTsKIAlzaGEtPm51bV9waHlzID0gaGlzaV9oYmEtPm5fcGh5OwotCXNoYS0+Y29yZS5zaG9zdCA9IGhpc2lfaGJhLT5zaG9zdDsKIAogCWZvciAoaSA9IDA7IGkgPCBoaXNpX2hiYS0+bl9waHk7IGkrKykgewogCQlzaGEtPnNhc19waHlbaV0gPSAmaGlzaV9oYmEtPnBoeVtpXS5zYXNfcGh5OwpAQCAtMzI3MywxNSArMzQwOCwyMSBAQCBzdGF0aWMgaW50IGhpc2lfc2FzX3YzX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAlwY2lfZW5hYmxlX3dha2UocGRldiwgUENJX0QwLCAwKTsKIAlwY2lfcmVzdG9yZV9zdGF0ZShwZGV2KTsKIAlyYyA9IHBjaV9lbmFibGVfZGV2aWNlKHBkZXYpOwotCWlmIChyYykKKwlpZiAocmMpIHsKIAkJZGV2X2VycihkZXYsICJlbmFibGUgZGV2aWNlIGZhaWxlZCBkdXJpbmcgcmVzdW1lICglZClcbiIsIHJjKTsKKwkJcmV0dXJuIHJjOworCX0KIAogCXBjaV9zZXRfbWFzdGVyKHBkZXYpOwogCXNjc2lfdW5ibG9ja19yZXF1ZXN0cyhzaG9zdCk7CiAJY2xlYXJfYml0KEhJU0lfU0FTX1JFSkVDVF9DTURfQklULCAmaGlzaV9oYmEtPmZsYWdzKTsKIAogCXNhc19wcmVwX3Jlc3VtZV9oYShzaGEpOwotCWluaXRfcmVnX3YzX2h3KGhpc2lfaGJhKTsKKwlyYyA9IGh3X2luaXRfdjNfaHcoaGlzaV9oYmEpOworCWlmIChyYykgeworCQlzY3NpX3JlbW92ZV9ob3N0KHNob3N0KTsKKwkJcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOworCX0KIAloaXNpX2hiYS0+aHctPnBoeXNfaW5pdChoaXNpX2hiYSk7CiAJc2FzX3Jlc3VtZV9oYShzaGEpOwogCWNsZWFyX2JpdChISVNJX1NBU19SRVNFVF9CSVQsICZoaXNpX2hiYS0+ZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2hwc2EuYyBiL2RyaXZlcnMvc2NzaS9ocHNhLmMKaW5kZXggMWJiNmFhZC4uYWMzOWVkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2hwc2EuYworKysgYi9kcml2ZXJzL3Njc2kvaHBzYS5jCkBAIC0yMSw3ICsyMSw2IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2libXZzY3NpL2libXZmYy5jIGIvZHJpdmVycy9zY3NpL2libXZzY3NpL2libXZmYy5jCmluZGV4IDhjZGJhYzAuLmRmODk3ZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9pYm12c2NzaS9pYm12ZmMuYworKysgYi9kcml2ZXJzL3Njc2kvaWJtdnNjc2kvaWJtdmZjLmMKQEAgLTE4MzAsNiArMTgzMCw3IEBAIHN0YXRpYyBpbnQgaWJtdmZjX2JzZ19yZXF1ZXN0KHN0cnVjdCBic2dfam9iICpqb2IpCiAJCXBvcnRfaWQgPSAoYnNnX3JlcXVlc3QtPnJxc3RfZGF0YS5oX2Vscy5wb3J0X2lkWzBdIDw8IDE2KSB8CiAJCQkoYnNnX3JlcXVlc3QtPnJxc3RfZGF0YS5oX2Vscy5wb3J0X2lkWzFdIDw8IDgpIHwKIAkJCWJzZ19yZXF1ZXN0LT5ycXN0X2RhdGEuaF9lbHMucG9ydF9pZFsyXTsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBGQ19CU0dfUlBUX0VMUzoKIAkJZmNfZmxhZ3MgPSBJQk1WRkNfRkNfRUxTOwogCQlicmVhazsKQEAgLTE4MzgsNiArMTgzOSw3IEBAIHN0YXRpYyBpbnQgaWJtdmZjX2JzZ19yZXF1ZXN0KHN0cnVjdCBic2dfam9iICpqb2IpCiAJCXBvcnRfaWQgPSAoYnNnX3JlcXVlc3QtPnJxc3RfZGF0YS5oX2N0LnBvcnRfaWRbMF0gPDwgMTYpIHwKIAkJCShic2dfcmVxdWVzdC0+cnFzdF9kYXRhLmhfY3QucG9ydF9pZFsxXSA8PCA4KSB8CiAJCQlic2dfcmVxdWVzdC0+cnFzdF9kYXRhLmhfY3QucG9ydF9pZFsyXTsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBGQ19CU0dfUlBUX0NUOgogCQlmY19mbGFncyA9IElCTVZGQ19GQ19DVF9JVTsKIAkJYnJlYWs7CkBAIC00MDIwLDYgKzQwMjIsNyBAQCBzdGF0aWMgdm9pZCBpYm12ZmNfbnBpdl9sb2dpbl9kb25lKHN0cnVjdCBpYm12ZmNfZXZlbnQgKmV2dCkKIAkJcmV0dXJuOwogCWNhc2UgSUJNVkZDX01BRF9DUlFfRVJST1I6CiAJCWlibXZmY19yZXRyeV9ob3N0X2luaXQodmhvc3QpOworCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIElCTVZGQ19NQURfRFJJVkVSX0ZBSUxFRDoKIAkJaWJtdmZjX2ZyZWVfZXZlbnQoZXZ0KTsKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2libXZzY3NpX3RndC9pYm12c2NzaV90Z3QuYyBiL2RyaXZlcnMvc2NzaS9pYm12c2NzaV90Z3QvaWJtdnNjc2lfdGd0LmMKaW5kZXggN2Y5NTM1My4uYTkyOWZlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2libXZzY3NpX3RndC9pYm12c2NzaV90Z3QuYworKysgYi9kcml2ZXJzL3Njc2kvaWJtdnNjc2lfdGd0L2libXZzY3NpX3RndC5jCkBAIC0xNTgxLDYgKzE1ODEsNyBAQCBzdGF0aWMgbG9uZyBpYm12c2NzaXNfYWRhcHRlcl9pbmZvKHN0cnVjdCBzY3NpX2luZm8gKnZzY3NpLAogCWNhc2UgSF9QRVJNSVNTSU9OOgogCQlpZiAoY29ubmVjdGlvbl9icm9rZW4odnNjc2kpKQogCQkJZmxhZ19iaXRzID0gKFJFU1BPTlNFX1FfRE9XTiB8IENMSUVOVF9GQUlMRUQpOworCQkvKiBGYWxsIHRocm91Z2ggKi8KIAlkZWZhdWx0OgogCQlkZXZfZXJyKCZ2c2NzaS0+ZGV2LCAiYWRhcHRlcl9pbmZvOiBoX2NvcHlfcmRtYSB0byBjbGllbnQgZmFpbGVkLCByYyAlbGRcbiIsCiAJCQlyYyk7CkBAIC0yNDkyLDggKzI0OTMsMTAgQEAgc3RhdGljIGxvbmcgaWJtdnNjc2lzX3BpbmdfcmVzcG9uc2Uoc3RydWN0IHNjc2lfaW5mbyAqdnNjc2kpCiAJCWJyZWFrOwogCWNhc2UgSF9DTE9TRUQ6CiAJCXZzY3NpLT5mbGFncyB8PSBDTElFTlRfRkFJTEVEOworCQkvKiBGYWxsIHRocm91Z2ggKi8KIAljYXNlIEhfRFJPUFBFRDoKIAkJdnNjc2ktPmZsYWdzIHw9IFJFU1BPTlNFX1FfRE9XTjsKKwkJLyogRmFsbCB0aHJvdWdoICovCiAJY2FzZSBIX1JFTU9URV9QQVJNOgogCQlkZXZfZXJyKCZ2c2NzaS0+ZGV2LCAicGluZ19yZXNwb25zZTogaF9zZW5kX2NycSBmYWlsZWQsIHJjICVsZFxuIiwKIAkJCXJjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmMuaCBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmMuaAppbmRleCBiYWRlMmUwLi42OTFhY2JkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjLmgKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmYy5oCkBAIC01MSw2ICs1MSw4IEBAIHN0cnVjdCBscGZjX3NsaTJfc2xpbTsKIAkJY21uZCBmb3IgbWVubG8gbmVlZHMgbmVhcmx5IHR3aWNlIGFzIGZvciBmaXJtd2FyZQogCQlkb3dubG9hZHMgdXNpbmcgYnNnICovCiAKKyNkZWZpbmUgTFBGQ19ERUZBVUxUX1hQU0dMX1NJWkUJMjU2CisjZGVmaW5lIExQRkNfTUFYX1NHX1RBQkxFU0laRQkweGZmZmYKICNkZWZpbmUgTFBGQ19NSU5fU0dfU0xJNF9CVUZfU1oJMHg4MDAJLyogYmFzZWQgb24gTFBGQ19ERUZBVUxUX1NHX1NFR19DTlQgKi8KICNkZWZpbmUgTFBGQ19NQVhfQkdfU0xJNF9TRUdfQ05UX0RJRiAxMjggLyogc2cgZWxlbWVudCBjb3VudCBmb3IgQmxvY2tHdWFyZCAqLwogI2RlZmluZSBMUEZDX01BWF9TR19TRUdfQ05UX0RJRiA1MTIJLyogc2cgZWxlbWVudCBjb3VudCBwZXIgc2NzaSBjbW5kICAqLwpAQCAtNzMyLDE0ICs3MzQsMTMgQEAgc3RydWN0IGxwZmNfaGJhIHsKICNkZWZpbmUgSEJBX0FFUl9FTkFCTEVECQkweDEwMDAgLyogQUVSIGVuYWJsZWQgd2l0aCBIQkEgKi8KICNkZWZpbmUgSEJBX0RFVkxPU1NfVE1PICAgICAgICAgMHgyMDAwIC8qIEhCQSBpbiBkZXZsb3NzIHRpbWVvdXQgKi8KICNkZWZpbmUgSEJBX1JSUV9BQ1RJVkUJCTB4NDAwMCAvKiBwcm9jZXNzIHRoZSBycnEgYWN0aXZlIGxpc3QgKi8KLSNkZWZpbmUgSEJBX0ZDUF9JT1FfRkxVU0gJMHg4MDAwIC8qIEZDUCBJL08gcXVldWVzIGJlaW5nIGZsdXNoZWQgKi8KKyNkZWZpbmUgSEJBX0lPUV9GTFVTSAkJMHg4MDAwIC8qIEZDUC9OVk1FIEkvTyBxdWV1ZXMgYmVpbmcgZmx1c2hlZCAqLwogI2RlZmluZSBIQkFfRldfRFVNUF9PUAkJMHgxMDAwMCAvKiBTa2lwcyBmbiByZXNldCBiZWZvcmUgRlcgZHVtcCAqLwogI2RlZmluZSBIQkFfUkVDT1ZFUkFCTEVfVUUJMHgyMDAwMCAvKiBGaXJtd2FyZSBzdXBwb3J0cyByZWNvdmVyYWJsZSBVRSAqLwogI2RlZmluZSBIQkFfRk9SQ0VEX0xJTktfU1BFRUQJMHg0MDAwMCAvKgogCQkJCQkgKiBGaXJtd2FyZSBzdXBwb3J0cyBGb3JjZWQgTGluayBTcGVlZAogCQkJCQkgKiBjYXBhYmlsaXR5CiAJCQkJCSAqLwotI2RlZmluZSBIQkFfTlZNRV9JT1FfRkxVU0ggICAgICAweDgwMDAwIC8qIE5WTUUgSU8gcXVldWVzIGZsdXNoZWQuICovCiAjZGVmaW5lIEhCQV9GTE9HSV9JU1NVRUQJMHgxMDAwMDAgLyogRkxPR0kgd2FzIGlzc3VlZCAqLwogCiAJdWludDMyX3QgZmNwX3JpbmdfaW5fdXNlOyAvKiBXaGVuIHBvbGxpbmcgdGVzdCBpZiBpbnRyLWhuZGxyIGFjdGl2ZSovCkBAIC03OTUsMTAgKzc5NiwxMiBAQCBzdHJ1Y3QgbHBmY19oYmEgewogCXVpbnQ4X3QgIG1kc19kaWFnc19zdXBwb3J0OwogCXVpbnQ4X3QgIGJiY3JlZGl0X3N1cHBvcnQ7CiAJdWludDhfdCAgZW5hYl9leHBfd3FjcV9wYWdlczsKKwl1OAkgbnNsZXI7IC8qIEZpcm13YXJlIHN1cHBvcnRzIEZDLU5WTWUtMiBTTEVSICovCiAKIAkvKiBIQkEgQ29uZmlnIFBhcmFtZXRlcnMgKi8KIAl1aW50MzJfdCBjZmdfYWNrMDsKIAl1aW50MzJfdCBjZmdfeHJpX3JlYmFsYW5jaW5nOworCXVpbnQzMl90IGNmZ194cHNnbDsKIAl1aW50MzJfdCBjZmdfZW5hYmxlX25waXY7CiAJdWludDMyX3QgY2ZnX2VuYWJsZV9ycnE7CiAJdWludDMyX3QgY2ZnX3RvcG9sb2d5OwpAQCAtOTA1LDYgKzkwOCw3IEBAIHN0cnVjdCBscGZjX2hiYSB7CiAJd2FpdF9xdWV1ZV9oZWFkX3QgICAgd29ya193YWl0cTsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgICAqd29ya2VyX3RocmVhZDsKIAl1bnNpZ25lZCBsb25nIGRhdGFfZmxhZ3M7CisJdWludDMyX3QgYm9yZGVyX3NnZV9udW07CiAKIAl1aW50MzJfdCBoYnFfaW5fdXNlOwkJLyogSEJRcyBpbiB1c2UgZmxhZyAqLwogCXVpbnQzMl90IGhicV9jb3VudDsJICAgICAgICAvKiBDb3VudCBvZiBjb25maWd1cmVkIEhCUXMgKi8KQEAgLTk4Nyw2ICs5OTEsNyBAQCBzdHJ1Y3QgbHBmY19oYmEgewogCXN0cnVjdCBkbWFfcG9vbCAqbHBmY19udm1ldF9kcmJfcG9vbDsgLyogZGF0YSByZWNlaXZlIGJ1ZmZlciBwb29sICovCiAJc3RydWN0IGRtYV9wb29sICpscGZjX2hicV9wb29sOwkvKiBTTEkzIGhicSBidWZmZXIgcG9vbCAqLwogCXN0cnVjdCBkbWFfcG9vbCAqdHhyZHlfcGF5bG9hZF9wb29sOworCXN0cnVjdCBkbWFfcG9vbCAqbHBmY19jbWRfcnNwX2J1Zl9wb29sOwogCXN0cnVjdCBscGZjX2RtYV9wb29sIGxwZmNfbWJ1Zl9zYWZldHlfcG9vbDsKIAogCW1lbXBvb2xfdCAqbWJveF9tZW1fcG9vbDsKQEAgLTEwMzQsOCArMTAzOSw2IEBAIHN0cnVjdCBscGZjX2hiYSB7CiAJc3RydWN0IGRlbnRyeSAqZGVidWdfaGJxaW5mbzsKIAlzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z19kdW1wSG9zdFNsaW07CiAJc3RydWN0IGRlbnRyeSAqZGVidWdfZHVtcEhCQVNsaW07Ci0Jc3RydWN0IGRlbnRyeSAqZGVidWdfZHVtcERhdGE7ICAgLyogQmxvY2tHdWFyZCBCUEwgKi8KLQlzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z19kdW1wRGlmOyAgICAvKiBCbG9ja0d1YXJkIEJQTCAqLwogCXN0cnVjdCBkZW50cnkgKmRlYnVnX0luakVyckxCQTsgIC8qIExCQSB0byBpbmplY3QgZXJyb3JzIGF0ICovCiAJc3RydWN0IGRlbnRyeSAqZGVidWdfSW5qRXJyTlBvcnRJRDsgIC8qIE5Qb3J0SUQgdG8gaW5qZWN0IGVycm9ycyBhdCAqLwogCXN0cnVjdCBkZW50cnkgKmRlYnVnX0luakVycldXUE47ICAvKiBXV1BOIHRvIGluamVjdCBlcnJvcnMgYXQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfYXR0ci5jIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19hdHRyLmMKaW5kZXggZDY1NTU4NjEuLjI1YWE3YTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfYXR0ci5jCisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfYXR0ci5jCkBAIC04NDEsNyArODQxLDggQEAgbHBmY19oZHdfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiAJbHBmY192cGRfdCAqdnAgPSAmcGhiYS0+dnBkOwogCiAJbHBmY19qZWRlY190b19hc2NpaSh2cC0+cmV2LmJpdVJldiwgaGR3KTsKLQlyZXR1cm4gc2NucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXNcbiIsIGhkdyk7CisJcmV0dXJuIHNjbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVzICUwOHggJTA4eFxuIiwgaGR3LAorCQkJIHZwLT5yZXYuc21SZXYsIHZwLT5yZXYuc21Gd1Jldik7CiB9CiAKIC8qKgpAQCAtMzY4Miw4ICszNjgzLDggQEAgbHBmY191cGRhdGVfcnBvcnRfZGV2bG9zc190bW8oc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0KQogCQlpZiAocnBvcnQpCiAJCQlyZW1vdGVwb3J0ID0gcnBvcnQtPnJlbW90ZXBvcnQ7CiAJCXNwaW5fdW5sb2NrKCZ2cG9ydC0+cGhiYS0+aGJhbG9jayk7Ci0JCWlmIChyZW1vdGVwb3J0KQotCQkJbnZtZV9mY19zZXRfcmVtb3RlcG9ydF9kZXZsb3NzKHJwb3J0LT5yZW1vdGVwb3J0LAorCQlpZiAocnBvcnQgJiYgcmVtb3RlcG9ydCkKKwkJCW52bWVfZmNfc2V0X3JlbW90ZXBvcnRfZGV2bG9zcyhyZW1vdGVwb3J0LAogCQkJCQkJICAgICAgIHZwb3J0LT5jZmdfZGV2bG9zc190bW8pOwogI2VuZGlmCiAJfQpAQCAtNTQ2NywxNSArNTQ2OCwxMiBAQCBMUEZDX0FUVFJfUlcobnZtZXRfZmJfc2l6ZSwgMCwgMCwgNjU1MzYsCiAgKiBscGZjX252bWVfZW5hYmxlX2ZiOiBFbmFibGUgTlZNRSBmaXJzdCBidXJzdCBvbiBJIGFuZCBUIGZ1bmN0aW9ucy4KICAqIEZvciB0aGUgSW5pdGlhdG9yIChJKSwgZW5hYmxpbmcgdGhpcyBwYXJhbWV0ZXIgbWVhbnMgdGhhdCBhbiBOVk1FVAogICogUFJMSSByZXNwb25zZSB3aXRoIEZCQSBlbmFibGVkIGFuZCBhbiBGQl9TSVpFIHNldCB0byBhIG5vbnplcm8gdmFsdWUgd2lsbCBiZQotICogcHJvY2Vzc2VkIGJ5IHRoZSBpbml0aWF0b3IgZm9yIHN1YnNlcXVlbnQgTlZNRSBGQ1AgSU8uIEZvciB0aGUgdGFyZ2V0Ci0gKiBmdW5jdGlvbiAoVCksIGVuYWJsaW5nIHRoaXMgcGFyYW1ldGVyIHF1YWxpZmllcyB0aGUgbHBmY19udm1ldF9mYl9zaXplCi0gKiBkcml2ZXIgcGFyYW1ldGVyIGFzIHRoZSB0YXJnZXQgZnVuY3Rpb24ncyBmaXJzdCBidXJzdCBzaXplIHJldHVybmVkIHRvIHRoZQotICogaW5pdGlhdG9yIGluIHRoZSB0YXJnZXQncyBOVk1FIFBSTEkgcmVzcG9uc2UuIFBhcmFtZXRlciBzdXBwb3J0ZWQgb24gcGh5c2ljYWwKLSAqIHBvcnQgb25seSAtIG5vIE5QSVYgc3VwcG9ydC4KKyAqIHByb2Nlc3NlZCBieSB0aGUgaW5pdGlhdG9yIGZvciBzdWJzZXF1ZW50IE5WTUUgRkNQIElPLgorICogQ3VycmVudGx5LCB0aGlzIGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGUgTlZNRSB0YXJnZXQKICAqIFZhbHVlIHJhbmdlIGlzIFswLDFdLiBEZWZhdWx0IHZhbHVlIGlzIDAgKGRpc2FibGVkKS4KICAqLwogTFBGQ19BVFRSX1JXKG52bWVfZW5hYmxlX2ZiLCAwLCAwLCAxLAotCSAgICAgIkVuYWJsZSBGaXJzdCBCdXJzdCBmZWF0dXJlIG9uIEkgYW5kIFQgZnVuY3Rpb25zLiIpOworCSAgICAgIkVuYWJsZSBGaXJzdCBCdXJzdCBmZWF0dXJlIGZvciBOVk1FIEluaXRpYXRvci4iKTsKIAogLyoKICMgbHBmY19tYXhfc2NzaWNtcGxfdGltZTogVXNlIHNjc2kgY29tbWFuZCBjb21wbGV0aW9uIHRpbWUgdG8gY29udHJvbCBJL08gcXVldWUKQEAgLTU5MjcsNyArNTkyNSw3IEBAIGxwZmNfc2dfc2VnX2NudF9pbml0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgaW50IHZhbCkKICAqICAgICAgIDEgID0gTURTIERpYWdub3N0aWNzIGVuYWJsZWQKICAqIFZhbHVlIHJhbmdlIGlzIFswLDFdLiBEZWZhdWx0IHZhbHVlIGlzIDAuCiAgKi8KLUxQRkNfQVRUUl9SKGVuYWJsZV9tZHNfZGlhZ3MsIDAsIDAsIDEsICJFbmFibGUgTURTIERpYWdub3N0aWNzIik7CitMUEZDX0FUVFJfUlcoZW5hYmxlX21kc19kaWFncywgMCwgMCwgMSwgIkVuYWJsZSBNRFMgRGlhZ25vc3RpY3MiKTsKIAogLyoKICAqIGxwZmNfcmFzX2Z3bG9nX2J1ZmZzaXplOiBGaXJtd2FyZSBsb2dnaW5nIGhvc3QgYnVmZmVyIHNpemUKQEAgLTY4NTksMTAgKzY4NTcsMzEgQEAgbHBmY19nZXRfc3RhcmdldF9wb3J0X25hbWUoc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0KQogc3RhdGljIHZvaWQKIGxwZmNfc2V0X3Jwb3J0X2xvc3NfdG1vKHN0cnVjdCBmY19ycG9ydCAqcnBvcnQsIHVpbnQzMl90IHRpbWVvdXQpCiB7CisJc3RydWN0IGxwZmNfcnBvcnRfZGF0YSAqcmRhdGEgPSBycG9ydC0+ZGRfZGF0YTsKKwlzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCA9IHJkYXRhLT5wbm9kZTsKKyNpZiAoSVNfRU5BQkxFRChDT05GSUdfTlZNRV9GQykpCisJc3RydWN0IGxwZmNfbnZtZV9ycG9ydCAqbnJwb3J0ID0gTlVMTDsKKyNlbmRpZgorCiAJaWYgKHRpbWVvdXQpCiAJCXJwb3J0LT5kZXZfbG9zc190bW8gPSB0aW1lb3V0OwogCWVsc2UKIAkJcnBvcnQtPmRldl9sb3NzX3RtbyA9IDE7CisKKwlpZiAoIW5kbHAgfHwgIU5MUF9DSEtfTk9ERV9BQ1QobmRscCkpIHsKKwkJZGV2X2luZm8oJnJwb3J0LT5kZXYsICJDYW5ub3QgZmluZCByZW1vdGUgbm9kZSB0byAiCisJCQkJICAgICAgInNldCBycG9ydCBkZXYgbG9zcyB0bW8sIHBvcnRfaWQgeCV4XG4iLAorCQkJCSAgICAgIHJwb3J0LT5wb3J0X2lkKTsKKwkJcmV0dXJuOworCX0KKworI2lmIChJU19FTkFCTEVEKENPTkZJR19OVk1FX0ZDKSkKKwlucnBvcnQgPSBscGZjX25kbHBfZ2V0X25ycG9ydChuZGxwKTsKKworCWlmIChucnBvcnQgJiYgbnJwb3J0LT5yZW1vdGVwb3J0KQorCQludm1lX2ZjX3NldF9yZW1vdGVwb3J0X2Rldmxvc3MobnJwb3J0LT5yZW1vdGVwb3J0LAorCQkJCQkgICAgICAgcnBvcnQtPmRldl9sb3NzX3Rtbyk7CisjZW5kaWYKIH0KIAogLyoqCkBAIC03MDU5LDYgKzcwNzgsMjEgQEAgc3RydWN0IGZjX2Z1bmN0aW9uX3RlbXBsYXRlIGxwZmNfdnBvcnRfdHJhbnNwb3J0X2Z1bmN0aW9ucyA9IHsKIH07CiAKIC8qKgorICogbHBmY19nZXRfaGJhX2Z1bmN0aW9uX21vZGUgLSBVc2VkIHRvIGRldGVybWluZSB0aGUgSEJBIGZ1bmN0aW9uIGluIEZDb0UKKyAqIE1vZGUKKyAqIEBwaGJhOiBscGZjX2hiYSBwb2ludGVyLgorICoqLworc3RhdGljIHZvaWQKK2xwZmNfZ2V0X2hiYV9mdW5jdGlvbl9tb2RlKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKK3sKKwkvKiBJZiBpdCdzIGEgU2t5SGF3ayBGQ29FIGFkYXB0ZXIgKi8KKwlpZiAocGhiYS0+cGNpZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9TS1lIQVdLKQorCQlwaGJhLT5oYmFfZmxhZyB8PSBIQkFfRkNPRV9NT0RFOworCWVsc2UKKwkJcGhiYS0+aGJhX2ZsYWcgJj0gfkhCQV9GQ09FX01PREU7Cit9CisKKy8qKgogICogbHBmY19nZXRfY2ZncGFyYW0gLSBVc2VkIGR1cmluZyBwcm9iZV9vbmUgdG8gaW5pdCB0aGUgYWRhcHRlciBzdHJ1Y3R1cmUKICAqIEBwaGJhOiBscGZjX2hiYSBwb2ludGVyLgogICoqLwpAQCAtNzExNCw4ICs3MTQ4LDE4IEBAIGxwZmNfZ2V0X2NmZ3BhcmFtKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAllbHNlCiAJCXBoYmEtPmNmZ19wb2xsID0gbHBmY19wb2xsOwogCi0JaWYgKHBoYmEtPmNmZ19lbmFibGVfYmcpCisJLyogR2V0IHRoZSBmdW5jdGlvbiBtb2RlICovCisJbHBmY19nZXRfaGJhX2Z1bmN0aW9uX21vZGUocGhiYSk7CisKKwkvKiBCbG9ja0d1YXJkIGFsbG93ZWQgZm9yIEZDIG9ubHkuICovCisJaWYgKHBoYmEtPmNmZ19lbmFibGVfYmcgJiYgcGhiYS0+aGJhX2ZsYWcgJiBIQkFfRkNPRV9NT0RFKSB7CisJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19JTklULAorCQkJCSIwNTgxIEJsb2NrR3VhcmQgZmVhdHVyZSBub3Qgc3VwcG9ydGVkXG4iKTsKKwkJLyogSWYgc2V0LCBjbGVhciB0aGUgQmxvY2tHdWFyZCBzdXBwb3J0IHBhcmFtICovCisJCXBoYmEtPmNmZ19lbmFibGVfYmcgPSAwOworCX0gZWxzZSBpZiAocGhiYS0+Y2ZnX2VuYWJsZV9iZykgewogCQlwaGJhLT5zbGkzX29wdGlvbnMgfD0gTFBGQ19TTEkzX0JHX0VOQUJMRUQ7CisJfQogCiAJbHBmY19zdXBwcmVzc19yc3BfaW5pdChwaGJhLCBscGZjX3N1cHByZXNzX3JzcCk7CiAKQEAgLTcxNzUsMTYgKzcyMTksNiBAQCBscGZjX2dldF9jZmdwYXJhbShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJbHBmY19yYXNfZndsb2dfbGV2ZWxfaW5pdChwaGJhLCBscGZjX3Jhc19md2xvZ19sZXZlbCk7CiAJbHBmY19yYXNfZndsb2dfZnVuY19pbml0KHBoYmEsIGxwZmNfcmFzX2Z3bG9nX2Z1bmMpOwogCi0KLQkvKiBJZiB0aGUgTlZNRSBGQzQgdHlwZSBpcyBlbmFibGVkLCBzY2FsZSB0aGUgc2dfc2VnX2NudCB0bwotCSAqIGFjY29tbW9kYXRlIDUxMksgYW5kIDFNIElPcyBpbiBhIHNpbmdsZSBudm1lIGJ1ZiBhbmQgc3VwcGx5Ci0JICogZW5vdWdoIE5WTUUgTFMgaW9jYiBidWZmZXJzIGZvciBsYXJnZXIgY29ubmVjdGl2aXR5IGNvdW50cy4KLQkgKi8KLQlpZiAocGhiYS0+Y2ZnX2VuYWJsZV9mYzRfdHlwZSAmIExQRkNfRU5BQkxFX05WTUUpIHsKLQkJcGhiYS0+Y2ZnX3NnX3NlZ19jbnQgPSBMUEZDX01BWF9OVk1FX1NFR19DTlQ7Ci0JCXBoYmEtPmNmZ19pb2NiX2NudCA9IDU7Ci0JfQotCiAJcmV0dXJuOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2JzZy5jIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19ic2cuYwppbmRleCBiNzIxNmQ2Li4zOWE3MzZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2JzZy5jCisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfYnNnLmMKQEAgLTEwNDAsNyArMTA0MCw3IEBAIGxwZmNfYnNnX2N0X3Vuc29sX2V2ZW50KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfc2xpX3JpbmcgKnByaW5nLAogCQkJCWlmICghZG1hYnVmKSB7CiAJCQkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwKIAkJCQkJCUxPR19MSUJERkMsICIyNjE2IE5vIGRtYWJ1ZiAiCi0JCQkJCQkiZm91bmQgZm9yIGlvY2JxIDB4JXBcbiIsCisJCQkJCQkiZm91bmQgZm9yIGlvY2JxIHglcHhcbiIsCiAJCQkJCQlpb2NicSk7CiAJCQkJCWtmcmVlKGV2dF9kYXQtPmRhdGEpOwogCQkJCQlrZnJlZShldnRfZGF0KTsKQEAgLTEyNzYsOSArMTI3Niw3IEBAIGxwZmNfYnNnX2hiYV9zZXRfZXZlbnQoc3RydWN0IGJzZ19qb2IgKmpvYikKIAlyZXR1cm4gMDsgLyogY2FsbCBqb2IgZG9uZSBsYXRlciAqLwogCiBqb2JfZXJyb3I6Ci0JaWYgKGRkX2RhdGEgIT0gTlVMTCkKLQkJa2ZyZWUoZGRfZGF0YSk7Ci0KKwlrZnJlZShkZF9kYXRhKTsKIAlqb2ItPmRkX2RhdGEgPSBOVUxMOwogCXJldHVybiByYzsKIH0KQEAgLTE1NzEsNyArMTU2OSw2IEBAIGxwZmNfaXNzdWVfY3RfcnNwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGJzZ19qb2IgKmpvYiwgdWludDMyX3QgdGFnLAogCQkiMjcyMiBYbWl0IENUIHJlc3BvbnNlIG9uIGV4Y2hhbmdlIHgleCBEYXRhOiB4JXggeCV4IHgleFxuIiwKIAkJaWNtZC0+dWxwQ29udGV4dCwgaWNtZC0+dWxwSW9UYWcsIHRhZywgcGhiYS0+bGlua19zdGF0ZSk7CiAKLQljdGlvY2ItPmlvY2JfY21wbCA9IE5VTEw7CiAJY3Rpb2NiLT5pb2NiX2ZsYWcgfD0gTFBGQ19JT19MSUJERkM7CiAJY3Rpb2NiLT52cG9ydCA9IHBoYmEtPnBwb3J0OwogCWN0aW9jYi0+Y29udGV4dDEgPSBkZF9kYXRhOwpAQCAtNTQ1MSw3ICs1NDQ4LDkgQEAgbHBmY19ic2dfZ2V0X3Jhc19jb25maWcoc3RydWN0IGJzZ19qb2IgKmpvYikKIAlic2dfcmVwbHktPnJlc3VsdCA9IHJjOwogCiAJLyogY29tcGxldGUgdGhlIGpvYiBiYWNrIHRvIHVzZXJzcGFjZSAqLwotCWJzZ19qb2JfZG9uZShqb2IsIGJzZ19yZXBseS0+cmVzdWx0LCBic2dfcmVwbHktPnJlcGx5X3BheWxvYWRfcmN2X2xlbik7CisJaWYgKCFyYykKKwkJYnNnX2pvYl9kb25lKGpvYiwgYnNnX3JlcGx5LT5yZXN1bHQsCisJCQkgICAgIGJzZ19yZXBseS0+cmVwbHlfcGF5bG9hZF9yY3ZfbGVuKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTU1MzAsOCArNTUyOSw5IEBAIGxwZmNfYnNnX3NldF9yYXNfY29uZmlnKHN0cnVjdCBic2dfam9iICpqb2IpCiAJYnNnX3JlcGx5LT5yZXN1bHQgPSByYzsKIAogCS8qIGNvbXBsZXRlIHRoZSBqb2IgYmFjayB0byB1c2Vyc3BhY2UgKi8KLQlic2dfam9iX2RvbmUoam9iLCBic2dfcmVwbHktPnJlc3VsdCwKLQkJICAgICAgIGJzZ19yZXBseS0+cmVwbHlfcGF5bG9hZF9yY3ZfbGVuKTsKKwlpZiAoIXJjKQorCQlic2dfam9iX2RvbmUoam9iLCBic2dfcmVwbHktPnJlc3VsdCwKKwkJCSAgICAgYnNnX3JlcGx5LT5yZXBseV9wYXlsb2FkX3Jjdl9sZW4pOwogCiAJcmV0dXJuIHJjOwogfQpAQCAtNTU5MSw3ICs1NTkxLDkgQEAgbHBmY19ic2dfZ2V0X3Jhc19sd3BkKHN0cnVjdCBic2dfam9iICpqb2IpCiAJYnNnX3JlcGx5LT5yZXN1bHQgPSByYzsKIAogCS8qIGNvbXBsZXRlIHRoZSBqb2IgYmFjayB0byB1c2Vyc3BhY2UgKi8KLQlic2dfam9iX2RvbmUoam9iLCBic2dfcmVwbHktPnJlc3VsdCwgYnNnX3JlcGx5LT5yZXBseV9wYXlsb2FkX3Jjdl9sZW4pOworCWlmICghcmMpCisJCWJzZ19qb2JfZG9uZShqb2IsIGJzZ19yZXBseS0+cmVzdWx0LAorCQkJICAgICBic2dfcmVwbHktPnJlcGx5X3BheWxvYWRfcmN2X2xlbik7CiAKIAlyZXR1cm4gcmM7CiB9CkBAIC01NjczLDcgKzU2NzUsOSBAQCBscGZjX2JzZ19nZXRfcmFzX2Z3bG9nKHN0cnVjdCBic2dfam9iICpqb2IpCiAKIHJhc19qb2JfZXJyb3I6CiAJYnNnX3JlcGx5LT5yZXN1bHQgPSByYzsKLQlic2dfam9iX2RvbmUoam9iLCBic2dfcmVwbHktPnJlc3VsdCwgYnNnX3JlcGx5LT5yZXBseV9wYXlsb2FkX3Jjdl9sZW4pOworCWlmICghcmMpCisJCWJzZ19qb2JfZG9uZShqb2IsIGJzZ19yZXBseS0+cmVzdWx0LAorCQkJICAgICBic2dfcmVwbHktPnJlcGx5X3BheWxvYWRfcmN2X2xlbik7CiAKIAlyZXR1cm4gcmM7CiB9CkBAIC01NzQ0LDggKzU3NDgsOSBAQCBscGZjX2dldF90cnVua19pbmZvKHN0cnVjdCBic2dfam9iICpqb2IpCiAJCQkJcGhiYS0+c2xpNF9oYmEubGlua19zdGF0ZS5sb2dpY2FsX3NwZWVkIC8gMTAwMDsKIGpvYl9lcnJvcjoKIAlic2dfcmVwbHktPnJlc3VsdCA9IHJjOwotCWJzZ19qb2JfZG9uZShqb2IsIGJzZ19yZXBseS0+cmVzdWx0LAotCQkgICAgICAgYnNnX3JlcGx5LT5yZXBseV9wYXlsb2FkX3Jjdl9sZW4pOworCWlmICghcmMpCisJCWJzZ19qb2JfZG9uZShqb2IsIGJzZ19yZXBseS0+cmVzdWx0LAorCQkJICAgICBic2dfcmVwbHktPnJlcGx5X3BheWxvYWRfcmN2X2xlbik7CiAJcmV0dXJuIHJjOwogCiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2NydG4uaCBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfY3J0bi5oCmluZGV4IDY4ZTlmOTYuLmIyYWQ4YzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfY3J0bi5oCisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfY3J0bi5oCkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBscGZjX3NsaV9iZW1lbV9iY29weSh2b2lkICosIHZvaWQgKiwgdWludDMyX3QpOwogdm9pZCBscGZjX3NsaV9hYm9ydF9pb2NiX3Jpbmcoc3RydWN0IGxwZmNfaGJhICosIHN0cnVjdCBscGZjX3NsaV9yaW5nICopOwogdm9pZCBscGZjX3NsaV9hYm9ydF9mY3BfcmluZ3Moc3RydWN0IGxwZmNfaGJhICpwaGJhKTsKIHZvaWQgbHBmY19zbGlfaGJhX2lvY2JfYWJvcnQoc3RydWN0IGxwZmNfaGJhICopOwotdm9pZCBscGZjX3NsaV9mbHVzaF9mY3BfcmluZ3Moc3RydWN0IGxwZmNfaGJhICopOwordm9pZCBscGZjX3NsaV9mbHVzaF9pb19yaW5ncyhzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpOwogaW50IGxwZmNfc2xpX3Jpbmdwb3N0YnVmX3B1dChzdHJ1Y3QgbHBmY19oYmEgKiwgc3RydWN0IGxwZmNfc2xpX3JpbmcgKiwKIAkJCSAgICAgc3RydWN0IGxwZmNfZG1hYnVmICopOwogc3RydWN0IGxwZmNfZG1hYnVmICpscGZjX3NsaV9yaW5ncG9zdGJ1Zl9nZXQoc3RydWN0IGxwZmNfaGJhICosCkBAIC00MzMsMTYgKzQzMyw2IEBAIGludCBscGZjX3NsaTRfZ2V0X2FsbG9jYXRlZF9leHRudHMoc3RydWN0IGxwZmNfaGJhICosIHVpbnQxNl90LAogaW50IGxwZmNfc2xpNF9nZXRfYXZhaWxfZXh0bnRfcnNyYyhzdHJ1Y3QgbHBmY19oYmEgKiwgdWludDE2X3QsCiAJCQkJCSAgdWludDE2X3QgKiwgdWludDE2X3QgKik7CiAKLS8qIGV4dGVybnMgQmxvY2tHdWFyZCAqLwotZXh0ZXJuIGNoYXIgKl9kdW1wX2J1Zl9kYXRhOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX2R1bXBfYnVmX2RhdGFfb3JkZXI7Ci1leHRlcm4gY2hhciAqX2R1bXBfYnVmX2RpZjsKLWV4dGVybiB1bnNpZ25lZCBsb25nIF9kdW1wX2J1Zl9kaWZfb3JkZXI7Ci1leHRlcm4gc3BpbmxvY2tfdCBfZHVtcF9idWZfbG9jazsKLWV4dGVybiBpbnQgX2R1bXBfYnVmX2RvbmU7Ci1leHRlcm4gc3BpbmxvY2tfdCBwZ2NudF9sb2NrOwotZXh0ZXJuIHVuc2lnbmVkIGludCBwZ2NudDsKLQogLyogSW50ZXJmYWNlIGV4cG9ydGVkIGJ5IGZhYnJpYyBpb2NiIHNjaGVkdWxlciAqLwogdm9pZCBscGZjX2ZhYnJpY19hYm9ydF9ucG9ydChzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqKTsKIHZvaWQgbHBmY19mYWJyaWNfYWJvcnRfaGJhKHN0cnVjdCBscGZjX2hiYSAqKTsKQEAgLTU5NSw2ICs1ODUsNyBAQCB2b2lkIGxwZmNfcmVsZWFzZV9pb19idWYoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKm5jbWQsCiAJCQkgc3RydWN0IGxwZmNfc2xpNF9oZHdfcXVldWUgKnFwKTsKIHZvaWQgbHBmY19udm1lX2NtZF90ZW1wbGF0ZSh2b2lkKTsKIHZvaWQgbHBmY19udm1ldF9jbWRfdGVtcGxhdGUodm9pZCk7Cit2b2lkIGxwZmNfbnZtZV9jYW5jZWxfaW9jYihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX2lvY2JxICpwd3FlSW4pOwogZXh0ZXJuIGludCBscGZjX2VuYWJsZV9udm1ldF9jbnQ7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGxwZmNfZW5hYmxlX252bWV0W107CiBleHRlcm4gaW50IGxwZmNfbm9faGJhX3Jlc2V0X2NudDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfY3QuYyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfY3QuYwppbmRleCBlYzcyYzM5Li4yNWU4NjcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2N0LmMKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19jdC5jCkBAIC00NjIsNiArNDYyLDcgQEAgbHBmY19wcmVwX25vZGVfZmM0dHlwZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHVpbnQzMl90IERpZCwgdWludDhfdCBmYzRfdHlwZSkKIAlzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscDsKIAogCWlmICgodnBvcnQtPnBvcnRfdHlwZSAhPSBMUEZDX05QSVZfUE9SVCkgfHwKKwkgICAgKGZjNF90eXBlID09IEZDX1RZUEVfRkNQKSB8fAogCSAgICAhKHZwb3J0LT5jdF9mbGFncyAmIEZDX0NUX1JGRl9JRCkgfHwgIXZwb3J0LT5jZmdfcmVzdHJpY3RfbG9naW4pIHsKIAogCQluZGxwID0gbHBmY19zZXR1cF9kaXNjX25vZGUodnBvcnQsIERpZCk7CkBAIC00ODAsMTAgKzQ4MSwyMCBAQCBscGZjX3ByZXBfbm9kZV9mYzR0eXBlKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgdWludDMyX3QgRGlkLCB1aW50OF90IGZjNF90eXBlKQogCiAJCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19ESVNDT1ZFUlksCiAJCQkJCSAiMDIzOCBQcm9jZXNzIHglMDZ4IE5hbWVTZXJ2ZXIgUnNwICIKLQkJCQkJICJEYXRhOiB4JXggeCV4IHgleCB4JXhcbiIsIERpZCwKKwkJCQkJICJEYXRhOiB4JXggeCV4IHgleCB4JXggeCV4XG4iLCBEaWQsCiAJCQkJCSBuZGxwLT5ubHBfZmxhZywgbmRscC0+bmxwX2ZjNF90eXBlLAotCQkJCQkgdnBvcnQtPmZjX2ZsYWcsCisJCQkJCSBuZGxwLT5ubHBfc3RhdGUsIHZwb3J0LT5mY19mbGFnLAogCQkJCQkgdnBvcnQtPmZjX3JzY25faWRfY250KTsKKworCQkJLyogaWYgbmRscCBuZWVkcyB0byBiZSBkaXNjb3ZlcmVkIGFuZCBwcmlvcgorCQkJICogc3RhdGUgb2YgbmRscCBoaXQgZGV2bG9zcywgY2hhbmdlIHN0YXRlIHRvCisJCQkgKiBhbGxvdyByZWRpc2NvdmVyeS4KKwkJCSAqLworCQkJaWYgKG5kbHAtPm5scF9mbGFnICYgTkxQX05QUl8yQl9ESVNDICYmCisJCQkgICAgbmRscC0+bmxwX3N0YXRlID09IE5MUF9TVEVfVU5VU0VEX05PREUpIHsKKwkJCQlscGZjX25scF9zZXRfc3RhdGUodnBvcnQsIG5kbHAsCisJCQkJCQkgICBOTFBfU1RFX05QUl9OT0RFKTsKKwkJCX0KIAkJfSBlbHNlIHsKIAkJCWxwZmNfZGVidWdmc19kaXNjX3RyYyh2cG9ydCwgTFBGQ19ESVNDX1RSQ19DVCwKIAkJCQkiU2tpcDEgR0lEX0ZUcnNwOiBkaWQ6eCV4IGZsZzp4JXggY250OiVkIiwKQEAgLTQ5MSw5ICs1MDIsOSBAQCBscGZjX3ByZXBfbm9kZV9mYzR0eXBlKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgdWludDMyX3QgRGlkLCB1aW50OF90IGZjNF90eXBlKQogCiAJCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19ESVNDT1ZFUlksCiAJCQkJCSAiMDIzOSBTa2lwIHglMDZ4IE5hbWVTZXJ2ZXIgUnNwICIKLQkJCQkJICJEYXRhOiB4JXggeCV4XG4iLCBEaWQsCi0JCQkJCSB2cG9ydC0+ZmNfZmxhZywKLQkJCQkJIHZwb3J0LT5mY19yc2NuX2lkX2NudCk7CisJCQkJCSAiRGF0YTogeCV4IHgleCAlcFxuIiwKKwkJCQkJIERpZCwgdnBvcnQtPmZjX2ZsYWcsCisJCQkJCSB2cG9ydC0+ZmNfcnNjbl9pZF9jbnQsIG5kbHApOwogCQl9CiAJfSBlbHNlIHsKIAkJaWYgKCEodnBvcnQtPmZjX2ZsYWcgJiBGQ19SU0NOX01PREUpIHx8CkBAIC03NTEsOSArNzYyLDExIEBAIGxwZmNfY21wbF9jdF9jbWRfZ2lkX2Z0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9jYnEgKmNtZGlvY2IsCiAJCWlmIChDVHJzcC0+Q29tbWFuZFJlc3BvbnNlLmJpdHMuQ21kUnNwID09CiAJCSAgICBjcHVfdG9fYmUxNihTTElfQ1RfUkVTUE9OU0VfRlNfQUNDKSkgewogCQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfRElTQ09WRVJZLAotCQkJCQkgIjAyMDggTmFtZVNlcnZlciBSc3AgRGF0YTogeCV4IHgleFxuIiwKKwkJCQkJICIwMjA4IE5hbWVTZXJ2ZXIgUnNwIERhdGE6IHgleCB4JXggIgorCQkJCQkgInN6IHgleFxuIiwKIAkJCQkJIHZwb3J0LT5mY19mbGFnLAotCQkJCQkgQ1RyZXEtPnVuLmdpZC5GYzRUeXBlKTsKKwkJCQkJIENUcmVxLT51bi5naWQuRmM0VHlwZSwKKwkJCQkJIGlyc3AtPnVuLmdlbnJlcTY0LmJkbC5iZGVTaXplKTsKIAogCQkJbHBmY19uc19yc3AodnBvcnQsCiAJCQkJICAgIG91dHAsCkBAIC04MTQsNiArODI3LDExIEBAIGxwZmNfY21wbF9jdF9jbWRfZ2lkX2Z0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9jYnEgKmNtZGlvY2IsCiAJCX0KIAkJdnBvcnQtPmdpZGZ0X2lucC0tOwogCX0KKworCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX0RJU0NPVkVSWSwKKwkJCSAiNDIxNiBHSURfRlQgY21wbCBpbnAgJWQgZGlzYyAlZFxuIiwKKwkJCSB2cG9ydC0+Z2lkZnRfaW5wLCB2cG9ydC0+bnVtX2Rpc2Nfbm9kZXMpOworCiAJLyogTGluayB1cCAvIFJTQ04gZGlzY292ZXJ5ICovCiAJaWYgKCh2cG9ydC0+bnVtX2Rpc2Nfbm9kZXMgPT0gMCkgJiYKIAkgICAgKHZwb3J0LT5naWRmdF9pbnAgPT0gMCkpIHsKQEAgLTEyMDksMTQgKzEyMjcsMzQgQEAgbHBmY19jbXBsX2N0X2NtZF9nZnRfaWQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb2NicSAqY21kaW9jYiwKIAkJCWlmIChmYzRfZGF0YV8xICYgIExQRkNfRkM0X1RZUEVfQklUTUFTSykKIAkJCQluZGxwLT5ubHBfZmM0X3R5cGUgfD0gTkxQX0ZDNF9OVk1FOwogCQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfRElTQ09WRVJZLAotCQkJCQkgIjMwNjQgU2V0dGluZyBuZGxwICVwLCBESUQgeCUwNnggd2l0aCAiCi0JCQkJCSAiRkM0IHglMDh4LCBEYXRhOiB4JTA4eCB4JTA4eFxuIiwKKwkJCQkJICIzMDY0IFNldHRpbmcgbmRscCB4JXB4LCBESUQgeCUwNnggIgorCQkJCQkgIndpdGggRkM0IHglMDh4LCBEYXRhOiB4JTA4eCB4JTA4eCAiCisJCQkJCSAiJWRcbiIsCiAJCQkJCSBuZGxwLCBkaWQsIG5kbHAtPm5scF9mYzRfdHlwZSwKLQkJCQkJIEZDX1RZUEVfRkNQLCBGQ19UWVBFX05WTUUpOwotCQkJbmRscC0+bmxwX3ByZXZfc3RhdGUgPSBOTFBfU1RFX1JFR19MT0dJTl9JU1NVRTsKKwkJCQkJIEZDX1RZUEVfRkNQLCBGQ19UWVBFX05WTUUsCisJCQkJCSBuZGxwLT5ubHBfc3RhdGUpOwogCi0JCQlscGZjX25scF9zZXRfc3RhdGUodnBvcnQsIG5kbHAsIE5MUF9TVEVfUFJMSV9JU1NVRSk7Ci0JCQlscGZjX2lzc3VlX2Vsc19wcmxpKHZwb3J0LCBuZGxwLCAwKTsKKwkJCWlmIChuZGxwLT5ubHBfc3RhdGUgPT0gTkxQX1NURV9SRUdfTE9HSU5fSVNTVUUgJiYKKwkJCSAgICBuZGxwLT5ubHBfZmM0X3R5cGUpIHsKKwkJCQluZGxwLT5ubHBfcHJldl9zdGF0ZSA9IE5MUF9TVEVfUkVHX0xPR0lOX0lTU1VFOworCisJCQkJbHBmY19ubHBfc2V0X3N0YXRlKHZwb3J0LCBuZGxwLAorCQkJCQkJICAgTkxQX1NURV9QUkxJX0lTU1VFKTsKKwkJCQlscGZjX2lzc3VlX2Vsc19wcmxpKHZwb3J0LCBuZGxwLCAwKTsKKwkJCX0gZWxzZSBpZiAoIW5kbHAtPm5scF9mYzRfdHlwZSkgeworCQkJCS8qIElmIGZjNCB0eXBlIGlzIHN0aWxsIHVua25vd24sIHRoZW4gTE9HTyAqLworCQkJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywKKwkJCQkJCSBMT0dfRElTQ09WRVJZLAorCQkJCQkJICI2NDQzIFNlbmRpbmcgTE9HTyBuZGxwIHglcHgsIgorCQkJCQkJICJESUQgeCUwNnggd2l0aCBmYzRfdHlwZTogIgorCQkJCQkJICJ4JTA4eCwgc3RhdGU6ICVkXG4iLAorCQkJCQkJIG5kbHAsIGRpZCwgbmRscC0+bmxwX2ZjNF90eXBlLAorCQkJCQkJIG5kbHAtPm5scF9zdGF0ZSk7CisJCQkJbHBmY19pc3N1ZV9lbHNfbG9nbyh2cG9ydCwgbmRscCwgMCk7CisJCQkJbmRscC0+bmxwX3ByZXZfc3RhdGUgPSBOTFBfU1RFX1JFR19MT0dJTl9JU1NVRTsKKwkJCQlscGZjX25scF9zZXRfc3RhdGUodnBvcnQsIG5kbHAsCisJCQkJCQkgICBOTFBfU1RFX05QUl9OT0RFKTsKKwkJCX0KIAkJfQogCX0gZWxzZQogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0VSUiwgTE9HX0RJU0NPVkVSWSwKQEAgLTI1MTUsNyArMjU1Myw3IEBAIGxwZmNfZmRtaV9wb3J0X2F0dHJfbWF4X2ZyYW1lKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwKIAlhZSA9IChzdHJ1Y3QgbHBmY19mZG1pX2F0dHJfZW50cnkgKikmYWQtPkF0dHJWYWx1ZTsKIAogCWhzcCA9IChzdHJ1Y3Qgc2Vydl9wYXJtICopJnZwb3J0LT5mY19zcGFyYW07Ci0JYWUtPnVuLkF0dHJJbnQgPSAoKCh1aW50MzJfdCkgaHNwLT5jbW4uYmJSY3ZTaXplTXNiKSA8PCA4KSB8CisJYWUtPnVuLkF0dHJJbnQgPSAoKCh1aW50MzJfdCkgaHNwLT5jbW4uYmJSY3ZTaXplTXNiICYgMHgwRikgPDwgOCkgfAogCQkJICAodWludDMyX3QpIGhzcC0+Y21uLmJiUmN2U2l6ZUxzYjsKIAlhZS0+dW4uQXR0ckludCA9IGNwdV90b19iZTMyKGFlLT51bi5BdHRySW50KTsKIAlzaXplID0gRk9VUkJZVEVTICsgc2l6ZW9mKHVpbnQzMl90KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfZGVidWdmcy5jIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19kZWJ1Z2ZzLmMKaW5kZXggMWVlODU3ZC4uOGQzNGJlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19kZWJ1Z2ZzLmMKQEAgLTM2MSw3ICszNjEsNyBAQCBscGZjX2RlYnVnZnNfaGJxaW5mb19kYXRhKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgY2hhciAqYnVmLCBpbnQgc2l6ZSkKIAkJCXBoeXMgPSAoKHVpbnQ2NF90KWhicV9idWYtPmRidWYucGh5cyAmIDB4ZmZmZmZmZmYpOwogCQkJaWYgKHBoeXMgPT0gbGUzMl90b19jcHUoaGJxZS0+YmRlLmFkZHJMb3cpKSB7CiAJCQkJbGVuICs9ICBzY25wcmludGYoYnVmK2xlbiwgc2l6ZS1sZW4sCi0JCQkJCSJCdWYlZDogJXAgJTA2eFxuIiwgaSwKKwkJCQkJIkJ1ZiVkOiB4JXB4ICUwNnhcbiIsIGksCiAJCQkJCWhicV9idWYtPmRidWYudmlydCwgaGJxX2J1Zi0+dGFnKTsKIAkJCQlmb3VuZCA9IDE7CiAJCQkJYnJlYWs7CkBAIC00MTYsOCArNDE2LDcgQEAgbHBmY19kZWJ1Z2ZzX2NvbW1vbnhyaXBvb2xzX2RhdGEoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBjaGFyICpidWYsIGludCBzaXplKQogCQlxcCA9ICZwaGJhLT5zbGk0X2hiYS5oZHdxW2xwZmNfZGVidWdmc19sYXN0X3hyaXBvb2xdOwogCiAJCWxlbiArPSBzY25wcmludGYoYnVmICsgbGVuLCBzaXplIC0gbGVuLCAiSGR3USAlZCBJbmZvICIsIGkpOwotCQlzcGluX2xvY2tfaXJxc2F2ZSgmcXAtPmFidHNfc2NzaV9idWZfbGlzdF9sb2NrLCBpZmxhZyk7Ci0JCXNwaW5fbG9jaygmcXAtPmFidHNfbnZtZV9idWZfbGlzdF9sb2NrKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnFwLT5hYnRzX2lvX2J1Zl9saXN0X2xvY2ssIGlmbGFnKTsKIAkJc3Bpbl9sb2NrKCZxcC0+aW9fYnVmX2xpc3RfZ2V0X2xvY2spOwogCQlzcGluX2xvY2soJnFwLT5pb19idWZfbGlzdF9wdXRfbG9jayk7CiAJCW91dCA9IHFwLT50b3RhbF9pb19idWZzIC0gKHFwLT5nZXRfaW9fYnVmcyArIHFwLT5wdXRfaW9fYnVmcyArCkBAIC00MzAsOCArNDI5LDcgQEAgbHBmY19kZWJ1Z2ZzX2NvbW1vbnhyaXBvb2xzX2RhdGEoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBjaGFyICpidWYsIGludCBzaXplKQogCQkJcXAtPmFidHNfbnZtZV9pb19idWZzLCBvdXQpOwogCQlzcGluX3VubG9jaygmcXAtPmlvX2J1Zl9saXN0X3B1dF9sb2NrKTsKIAkJc3Bpbl91bmxvY2soJnFwLT5pb19idWZfbGlzdF9nZXRfbG9jayk7Ci0JCXNwaW5fdW5sb2NrKCZxcC0+YWJ0c19udm1lX2J1Zl9saXN0X2xvY2spOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxcC0+YWJ0c19zY3NpX2J1Zl9saXN0X2xvY2ssIGlmbGFnKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXAtPmFidHNfaW9fYnVmX2xpc3RfbG9jaywgaWZsYWcpOwogCiAJCWxwZmNfZGVidWdmc19sYXN0X3hyaXBvb2wrKzsKIAkJaWYgKGxwZmNfZGVidWdmc19sYXN0X3hyaXBvb2wgPj0gcGhiYS0+Y2ZnX2hkd19xdWV1ZSkKQEAgLTUzMyw5ICs1MzEsNyBAQCBscGZjX2RlYnVnZnNfbXVsdGl4cmlwb29sc19kYXRhKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgY2hhciAqYnVmLCBpbnQgc2l6ZSkKIAkJCWNvbnRpbnVlOwogCQlwYmxfcG9vbCA9ICZtdWx0aXhyaV9wb29sLT5wYmxfcG9vbDsKIAkJcHZ0X3Bvb2wgPSAmbXVsdGl4cmlfcG9vbC0+cHZ0X3Bvb2w7Ci0JCXR4Y21wbHFfY250ID0gcXAtPmZjcF93cS0+cHJpbmctPnR4Y21wbHFfY250OwotCQlpZiAocXAtPm52bWVfd3EpCi0JCQl0eGNtcGxxX2NudCArPSBxcC0+bnZtZV93cS0+cHJpbmctPnR4Y21wbHFfY250OworCQl0eGNtcGxxX2NudCA9IHFwLT5pb193cS0+cHJpbmctPnR4Y21wbHFfY250OwogCiAJCXNjbnByaW50Zih0bXAsIHNpemVvZih0bXApLAogCQkJICAiJTAzZDogJTRkICU0ZCAlNGQgJTRkIHwgJTEwZCAlMTBkICIsCkBAIC0yMTY2LDg5ICsyMTYyLDYgQEAgbHBmY19kZWJ1Z2ZzX2R1bXBIb3N0U2xpbV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogCXJldHVybiByYzsKIH0KIAotc3RhdGljIGludAotbHBmY19kZWJ1Z2ZzX2R1bXBEYXRhX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0Jc3RydWN0IGxwZmNfZGVidWcgKmRlYnVnOwotCWludCByYyA9IC1FTk9NRU07Ci0KLQlpZiAoIV9kdW1wX2J1Zl9kYXRhKQotCQlyZXR1cm4gLUVCVVNZOwotCi0JZGVidWcgPSBrbWFsbG9jKHNpemVvZigqZGVidWcpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWRlYnVnKQotCQlnb3RvIG91dDsKLQotCS8qIFJvdW5kIHRvIHBhZ2UgYm91bmRhcnkgKi8KLQlwcl9lcnIoIjkwNTkgQkxLR1JEOiAgJXM6IF9kdW1wX2J1Zl9kYXRhPTB4JXBcbiIsCi0JCQlfX2Z1bmNfXywgX2R1bXBfYnVmX2RhdGEpOwotCWRlYnVnLT5idWZmZXIgPSBfZHVtcF9idWZfZGF0YTsKLQlpZiAoIWRlYnVnLT5idWZmZXIpIHsKLQkJa2ZyZWUoZGVidWcpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQlkZWJ1Zy0+bGVuID0gKDEgPDwgX2R1bXBfYnVmX2RhdGFfb3JkZXIpIDw8IFBBR0VfU0hJRlQ7Ci0JZmlsZS0+cHJpdmF0ZV9kYXRhID0gZGVidWc7Ci0KLQlyYyA9IDA7Ci1vdXQ6Ci0JcmV0dXJuIHJjOwotfQotCi1zdGF0aWMgaW50Ci1scGZjX2RlYnVnZnNfZHVtcERpZl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQotewotCXN0cnVjdCBscGZjX2RlYnVnICpkZWJ1ZzsKLQlpbnQgcmMgPSAtRU5PTUVNOwotCi0JaWYgKCFfZHVtcF9idWZfZGlmKQotCQlyZXR1cm4gLUVCVVNZOwotCi0JZGVidWcgPSBrbWFsbG9jKHNpemVvZigqZGVidWcpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWRlYnVnKQotCQlnb3RvIG91dDsKLQotCS8qIFJvdW5kIHRvIHBhZ2UgYm91bmRhcnkgKi8KLQlwcl9lcnIoIjkwNjAgQkxLR1JEOiAlczogX2R1bXBfYnVmX2RpZj0weCVwIGZpbGU9JXBEXG4iLAotCQkJX19mdW5jX18sIF9kdW1wX2J1Zl9kaWYsIGZpbGUpOwotCWRlYnVnLT5idWZmZXIgPSBfZHVtcF9idWZfZGlmOwotCWlmICghZGVidWctPmJ1ZmZlcikgewotCQlrZnJlZShkZWJ1Zyk7Ci0JCWdvdG8gb3V0OwotCX0KLQotCWRlYnVnLT5sZW4gPSAoMSA8PCBfZHVtcF9idWZfZGlmX29yZGVyKSA8PCBQQUdFX1NISUZUOwotCWZpbGUtPnByaXZhdGVfZGF0YSA9IGRlYnVnOwotCi0JcmMgPSAwOwotb3V0OgotCXJldHVybiByYzsKLX0KLQotc3RhdGljIHNzaXplX3QKLWxwZmNfZGVidWdmc19kdW1wRGF0YURpZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKLQkJICBzaXplX3QgbmJ5dGVzLCBsb2ZmX3QgKnBwb3MpCi17Ci0JLyoKLQkgKiBUaGUgRGF0YS9ESUYgYnVmZmVycyBvbmx5IHNhdmUgb25lIGZhaWxpbmcgSU8KLQkgKiBUaGUgd3JpdGUgb3AgaXMgdXNlZCBhcyBhIHJlc2V0IG1lY2hhbmlzbSBhZnRlciBhbiBJTyBoYXMKLQkgKiBhbHJlYWR5IGJlZW4gc2F2ZWQgdG8gdGhlIG5leHQgb25lIGNhbiBiZSBzYXZlZAotCSAqLwotCXNwaW5fbG9jaygmX2R1bXBfYnVmX2xvY2spOwotCi0JbWVtc2V0KCh2b2lkICopX2R1bXBfYnVmX2RhdGEsIDAsCi0JCQkoKDEgPDwgUEFHRV9TSElGVCkgPDwgX2R1bXBfYnVmX2RhdGFfb3JkZXIpKTsKLQltZW1zZXQoKHZvaWQgKilfZHVtcF9idWZfZGlmLCAwLAotCQkJKCgxIDw8IFBBR0VfU0hJRlQpIDw8IF9kdW1wX2J1Zl9kaWZfb3JkZXIpKTsKLQotCV9kdW1wX2J1Zl9kb25lID0gMDsKLQotCXNwaW5fdW5sb2NrKCZfZHVtcF9idWZfbG9jayk7Ci0KLQlyZXR1cm4gbmJ5dGVzOwotfQotCiBzdGF0aWMgc3NpemVfdAogbHBmY19kZWJ1Z2ZzX2RpZl9lcnJfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZiwKIAlzaXplX3QgbmJ5dGVzLCBsb2ZmX3QgKnBwb3MpCkBAIC0yNDYxLDE3ICsyMzc0LDYgQEAgbHBmY19kZWJ1Z2ZzX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKLWxwZmNfZGVidWdmc19kdW1wRGF0YURpZl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQotewotCXN0cnVjdCBscGZjX2RlYnVnICpkZWJ1ZyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQotCWRlYnVnLT5idWZmZXIgPSBOVUxMOwotCWtmcmVlKGRlYnVnKTsKLQotCXJldHVybiAwOwotfQotCiAvKioKICAqIGxwZmNfZGVidWdmc19tdWx0aXhyaXBvb2xzX3dyaXRlIC0gQ2xlYXIgbXVsdGktWFJJIHBvb2xzIHN0YXRpc3RpY3MKICAqIEBmaWxlOiBUaGUgZmlsZSBwb2ludGVyIHRvIHJlYWQgZnJvbS4KQEAgLTM3ODYsMjMgKzM2ODgsMTMgQEAgbHBmY19pZGlhZ193cXNfZm9yX2NxKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgY2hhciAqd3F0eXBlLCBjaGFyICpwYnVmZmVyLAogCWludCBxaWR4OwogCiAJZm9yIChxaWR4ID0gMDsgcWlkeCA8IHBoYmEtPmNmZ19oZHdfcXVldWU7IHFpZHgrKykgewotCQlxcCA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbcWlkeF0uZmNwX3dxOworCQlxcCA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbcWlkeF0uaW9fd3E7CiAJCWlmIChxcC0+YXNzb2NfcWlkICE9IGNxX2lkKQogCQkJY29udGludWU7CiAJCSpsZW4gPSBfX2xwZmNfaWRpYWdfcHJpbnRfd3EocXAsIHdxdHlwZSwgcGJ1ZmZlciwgKmxlbik7CiAJCWlmICgqbGVuID49IG1heF9jbnQpCiAJCQlyZXR1cm4gMTsKIAl9Ci0JaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKSB7Ci0JCWZvciAocWlkeCA9IDA7IHFpZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlOyBxaWR4KyspIHsKLQkJCXFwID0gcGhiYS0+c2xpNF9oYmEuaGR3cVtxaWR4XS5udm1lX3dxOwotCQkJaWYgKHFwLT5hc3NvY19xaWQgIT0gY3FfaWQpCi0JCQkJY29udGludWU7Ci0JCQkqbGVuID0gX19scGZjX2lkaWFnX3ByaW50X3dxKHFwLCB3cXR5cGUsIHBidWZmZXIsICpsZW4pOwotCQkJaWYgKCpsZW4gPj0gbWF4X2NudCkKLQkJCQlyZXR1cm4gMTsKLQkJfQotCX0KIAlyZXR1cm4gMDsKIH0KIApAQCAtMzg2OCw5ICszNzYwLDkgQEAgbHBmY19pZGlhZ19jcXNfZm9yX2VxKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgY2hhciAqcGJ1ZmZlciwKIAlzdHJ1Y3QgbHBmY19xdWV1ZSAqcXA7CiAJaW50IHJjOwogCi0JcXAgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW2VxaWR4XS5mY3BfY3E7CisJcXAgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW2VxaWR4XS5pb19jcTsKIAotCSpsZW4gPSBfX2xwZmNfaWRpYWdfcHJpbnRfY3EocXAsICJGQ1AiLCBwYnVmZmVyLCAqbGVuKTsKKwkqbGVuID0gX19scGZjX2lkaWFnX3ByaW50X2NxKHFwLCAiSU8iLCBwYnVmZmVyLCAqbGVuKTsKIAogCS8qIFJlc2V0IG1heCBjb3VudGVyICovCiAJcXAtPkNRX21heF9jcWUgPSAwOwpAQCAtMzg3OCwyOCArMzc3MCwxMSBAQCBscGZjX2lkaWFnX2Nxc19mb3JfZXEoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBjaGFyICpwYnVmZmVyLAogCWlmICgqbGVuID49IG1heF9jbnQpCiAJCXJldHVybiAxOwogCi0JcmMgPSBscGZjX2lkaWFnX3dxc19mb3JfY3EocGhiYSwgIkZDUCIsIHBidWZmZXIsIGxlbiwKKwlyYyA9IGxwZmNfaWRpYWdfd3FzX2Zvcl9jcShwaGJhLCAiSU8iLCBwYnVmZmVyLCBsZW4sCiAJCQkJICAgbWF4X2NudCwgcXAtPnF1ZXVlX2lkKTsKIAlpZiAocmMpCiAJCXJldHVybiAxOwogCi0JaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKSB7Ci0JCXFwID0gcGhiYS0+c2xpNF9oYmEuaGR3cVtlcWlkeF0ubnZtZV9jcTsKLQotCQkqbGVuID0gX19scGZjX2lkaWFnX3ByaW50X2NxKHFwLCAiTlZNRSIsIHBidWZmZXIsICpsZW4pOwotCi0JCS8qIFJlc2V0IG1heCBjb3VudGVyICovCi0JCXFwLT5DUV9tYXhfY3FlID0gMDsKLQotCQlpZiAoKmxlbiA+PSBtYXhfY250KQotCQkJcmV0dXJuIDE7Ci0KLQkJcmMgPSBscGZjX2lkaWFnX3dxc19mb3JfY3EocGhiYSwgIk5WTUUiLCBwYnVmZmVyLCBsZW4sCi0JCQkJCSAgIG1heF9jbnQsIHFwLT5xdWV1ZV9pZCk7Ci0JCWlmIChyYykKLQkJCXJldHVybiAxOwotCX0KLQogCWlmICgoZXFpZHggPCBwaGJhLT5jZmdfbnZtZXRfbXJxKSAmJiBwaGJhLT5udm1ldF9zdXBwb3J0KSB7CiAJCS8qIE5WTUVUIENRc2V0ICovCiAJCXFwID0gcGhiYS0+c2xpNF9oYmEubnZtZXRfY3FzZXRbZXFpZHhdOwpAQCAtNDM0OCw3ICs0MjIzLDcgQEAgbHBmY19pZGlhZ19xdWVhY2Nfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJCWlmIChwaGJhLT5zbGk0X2hiYS5oZHdxKSB7CiAJCQlmb3IgKHFpZHggPSAwOyBxaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsKIAkJCQkJCQkJcWlkeCsrKSB7Ci0JCQkJcXAgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW3FpZHhdLmZjcF9jcTsKKwkJCQlxcCA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbcWlkeF0uaW9fY3E7CiAJCQkJaWYgKHFwICYmIHFwLT5xdWV1ZV9pZCA9PSBxdWVpZCkgewogCQkJCQkvKiBTYW5pdHkgY2hlY2sgKi8KIAkJCQkJcmMgPSBscGZjX2lkaWFnX3F1ZV9wYXJhbV9jaGVjaygKQEAgLTQzNjAsMjIgKzQyMzUsNiBAQCBscGZjX2lkaWFnX3F1ZWFjY193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJCQl9CiAJCQl9CiAJCX0KLQkJLyogTlZNRSBjb21wbGV0ZSBxdWV1ZSAqLwotCQlpZiAocGhiYS0+c2xpNF9oYmEuaGR3cSkgewotCQkJcWlkeCA9IDA7Ci0JCQlkbyB7Ci0JCQkJcXAgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW3FpZHhdLm52bWVfY3E7Ci0JCQkJaWYgKHFwICYmIHFwLT5xdWV1ZV9pZCA9PSBxdWVpZCkgewotCQkJCQkvKiBTYW5pdHkgY2hlY2sgKi8KLQkJCQkJcmMgPSBscGZjX2lkaWFnX3F1ZV9wYXJhbV9jaGVjaygKLQkJCQkJCXFwLCBpbmRleCwgY291bnQpOwotCQkJCQlpZiAocmMpCi0JCQkJCQlnb3RvIGVycm9yX291dDsKLQkJCQkJaWRpYWcucHRyX3ByaXZhdGUgPSBxcDsKLQkJCQkJZ290byBwYXNzX2NoZWNrOwotCQkJCX0KLQkJCX0gd2hpbGUgKCsrcWlkeCA8IHBoYmEtPmNmZ19oZHdfcXVldWUpOwotCQl9CiAJCWdvdG8gZXJyb3Jfb3V0OwogCQlicmVhazsKIAljYXNlIExQRkNfSURJQUdfTVE6CkBAIC00NDE5LDIwICs0Mjc4LDcgQEAgbHBmY19pZGlhZ19xdWVhY2Nfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJCWlmIChwaGJhLT5zbGk0X2hiYS5oZHdxKSB7CiAJCQkvKiBGQ1AvU0NTSSB3b3JrIHF1ZXVlICovCiAJCQlmb3IgKHFpZHggPSAwOyBxaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgcWlkeCsrKSB7Ci0JCQkJcXAgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW3FpZHhdLmZjcF93cTsKLQkJCQlpZiAocXAgJiYgcXAtPnF1ZXVlX2lkID09IHF1ZWlkKSB7Ci0JCQkJCS8qIFNhbml0eSBjaGVjayAqLwotCQkJCQlyYyA9IGxwZmNfaWRpYWdfcXVlX3BhcmFtX2NoZWNrKAotCQkJCQkJcXAsIGluZGV4LCBjb3VudCk7Ci0JCQkJCWlmIChyYykKLQkJCQkJCWdvdG8gZXJyb3Jfb3V0OwotCQkJCQlpZGlhZy5wdHJfcHJpdmF0ZSA9IHFwOwotCQkJCQlnb3RvIHBhc3NfY2hlY2s7Ci0JCQkJfQotCQkJfQotCQkJLyogTlZNRSB3b3JrIHF1ZXVlICovCi0JCQlmb3IgKHFpZHggPSAwOyBxaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgcWlkeCsrKSB7Ci0JCQkJcXAgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW3FpZHhdLm52bWVfd3E7CisJCQkJcXAgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW3FpZHhdLmlvX3dxOwogCQkJCWlmIChxcCAmJiBxcC0+cXVldWVfaWQgPT0gcXVlaWQpIHsKIAkJCQkJLyogU2FuaXR5IGNoZWNrICovCiAJCQkJCXJjID0gbHBmY19pZGlhZ19xdWVfcGFyYW1fY2hlY2soCkBAIC01NTA4LDI2ICs1MzU0LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbHBmY19kZWJ1Z2ZzX29wX2NwdWNoZWNrID0gewogCS5yZWxlYXNlID0gICAgICBscGZjX2RlYnVnZnNfcmVsZWFzZSwKIH07CiAKLSN1bmRlZiBscGZjX2RlYnVnZnNfb3BfZHVtcERhdGEKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGxwZmNfZGVidWdmc19vcF9kdW1wRGF0YSA9IHsKLQkub3duZXIgPSAgICAgICAgVEhJU19NT0RVTEUsCi0JLm9wZW4gPSAgICAgICAgIGxwZmNfZGVidWdmc19kdW1wRGF0YV9vcGVuLAotCS5sbHNlZWsgPSAgICAgICBscGZjX2RlYnVnZnNfbHNlZWssCi0JLnJlYWQgPSAgICAgICAgIGxwZmNfZGVidWdmc19yZWFkLAotCS53cml0ZSA9CWxwZmNfZGVidWdmc19kdW1wRGF0YURpZl93cml0ZSwKLQkucmVsZWFzZSA9ICAgICAgbHBmY19kZWJ1Z2ZzX2R1bXBEYXRhRGlmX3JlbGVhc2UsCi19OwotCi0jdW5kZWYgbHBmY19kZWJ1Z2ZzX29wX2R1bXBEaWYKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGxwZmNfZGVidWdmc19vcF9kdW1wRGlmID0gewotCS5vd25lciA9ICAgICAgICBUSElTX01PRFVMRSwKLQkub3BlbiA9ICAgICAgICAgbHBmY19kZWJ1Z2ZzX2R1bXBEaWZfb3BlbiwKLQkubGxzZWVrID0gICAgICAgbHBmY19kZWJ1Z2ZzX2xzZWVrLAotCS5yZWFkID0gICAgICAgICBscGZjX2RlYnVnZnNfcmVhZCwKLQkud3JpdGUgPQlscGZjX2RlYnVnZnNfZHVtcERhdGFEaWZfd3JpdGUsCi0JLnJlbGVhc2UgPSAgICAgIGxwZmNfZGVidWdmc19kdW1wRGF0YURpZl9yZWxlYXNlLAotfTsKLQogI3VuZGVmIGxwZmNfZGVidWdmc19vcF9kaWZfZXJyCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBscGZjX2RlYnVnZnNfb3BfZGlmX2VyciA9IHsKIAkub3duZXIgPQlUSElTX01PRFVMRSwKQEAgLTU5MjQsMjAgKzU3NTAsNiBAQCBscGZjX2RlYnVnZnNfaW5pdGlhbGl6ZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQpCiAJCX0gZWxzZQogCQkJcGhiYS0+ZGVidWdfZHVtcEhvc3RTbGltID0gTlVMTDsKIAotCQkvKiBTZXR1cCBkdW1wRGF0YSAqLwotCQlzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksICJkdW1wRGF0YSIpOwotCQlwaGJhLT5kZWJ1Z19kdW1wRGF0YSA9Ci0JCQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKG5hbWUsIFNfSUZSRUd8U19JUlVHT3xTX0lXVVNSLAotCQkJCSBwaGJhLT5oYmFfZGVidWdmc19yb290LAotCQkJCSBwaGJhLCAmbHBmY19kZWJ1Z2ZzX29wX2R1bXBEYXRhKTsKLQotCQkvKiBTZXR1cCBkdW1wRGlmICovCi0JCXNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgImR1bXBEaWYiKTsKLQkJcGhiYS0+ZGVidWdfZHVtcERpZiA9Ci0JCQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKG5hbWUsIFNfSUZSRUd8U19JUlVHT3xTX0lXVVNSLAotCQkJCSBwaGJhLT5oYmFfZGVidWdmc19yb290LAotCQkJCSBwaGJhLCAmbHBmY19kZWJ1Z2ZzX29wX2R1bXBEaWYpOwotCiAJCS8qIFNldHVwIERJRiBFcnJvciBJbmplY3Rpb25zICovCiAJCXNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgIkluakVyckxCQSIpOwogCQlwaGJhLT5kZWJ1Z19JbmpFcnJMQkEgPQpAQCAtNjMxNSwxMiArNjEyNyw2IEBAIGxwZmNfZGVidWdmc190ZXJtaW5hdGUoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0KQogCQlkZWJ1Z2ZzX3JlbW92ZShwaGJhLT5kZWJ1Z19kdW1wSG9zdFNsaW0pOyAvKiBIb3N0U2xpbSAqLwogCQlwaGJhLT5kZWJ1Z19kdW1wSG9zdFNsaW0gPSBOVUxMOwogCi0JCWRlYnVnZnNfcmVtb3ZlKHBoYmEtPmRlYnVnX2R1bXBEYXRhKTsgLyogZHVtcERhdGEgKi8KLQkJcGhiYS0+ZGVidWdfZHVtcERhdGEgPSBOVUxMOwotCi0JCWRlYnVnZnNfcmVtb3ZlKHBoYmEtPmRlYnVnX2R1bXBEaWYpOyAvKiBkdW1wRGlmICovCi0JCXBoYmEtPmRlYnVnX2R1bXBEaWYgPSBOVUxMOwotCiAJCWRlYnVnZnNfcmVtb3ZlKHBoYmEtPmRlYnVnX0luakVyckxCQSk7IC8qIEluakVyckxCQSAqLwogCQlwaGJhLT5kZWJ1Z19JbmpFcnJMQkEgPSBOVUxMOwogCkBAIC02NDQyLDEyICs2MjQ4LDcgQEAgbHBmY19kZWJ1Z19kdW1wX2FsbF9xdWV1ZXMoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCWxwZmNfZGVidWdfZHVtcF93cShwaGJhLCBEVU1QX05WTUVMUywgMCk7CiAKIAlmb3IgKGlkeCA9IDA7IGlkeCA8IHBoYmEtPmNmZ19oZHdfcXVldWU7IGlkeCsrKQotCQlscGZjX2RlYnVnX2R1bXBfd3EocGhiYSwgRFVNUF9GQ1AsIGlkeCk7Ci0KLQlpZiAocGhiYS0+Y2ZnX2VuYWJsZV9mYzRfdHlwZSAmIExQRkNfRU5BQkxFX05WTUUpIHsKLQkJZm9yIChpZHggPSAwOyBpZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlOyBpZHgrKykKLQkJCWxwZmNfZGVidWdfZHVtcF93cShwaGJhLCBEVU1QX05WTUUsIGlkeCk7Ci0JfQorCQlscGZjX2RlYnVnX2R1bXBfd3EocGhiYSwgRFVNUF9JTywgaWR4KTsKIAogCWxwZmNfZGVidWdfZHVtcF9oZHJfcnEocGhiYSk7CiAJbHBmY19kZWJ1Z19kdW1wX2RhdF9ycShwaGJhKTsKQEAgLTY0NTksMTIgKzYyNjAsNyBAQCBscGZjX2RlYnVnX2R1bXBfYWxsX3F1ZXVlcyhzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJbHBmY19kZWJ1Z19kdW1wX2NxKHBoYmEsIERVTVBfTlZNRUxTLCAwKTsKIAogCWZvciAoaWR4ID0gMDsgaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgaWR4KyspCi0JCWxwZmNfZGVidWdfZHVtcF9jcShwaGJhLCBEVU1QX0ZDUCwgaWR4KTsKLQotCWlmIChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkgewotCQlmb3IgKGlkeCA9IDA7IGlkeCA8IHBoYmEtPmNmZ19oZHdfcXVldWU7IGlkeCsrKQotCQkJbHBmY19kZWJ1Z19kdW1wX2NxKHBoYmEsIERVTVBfTlZNRSwgaWR4KTsKLQl9CisJCWxwZmNfZGVidWdfZHVtcF9jcShwaGJhLCBEVU1QX0lPLCBpZHgpOwogCiAJLyoKIAkgKiBEdW1wIEV2ZW50IFF1ZXVlcyAoRVFzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19kZWJ1Z2ZzLmggYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2RlYnVnZnMuaAppbmRleCAzNDA3MDg3Li4yMGYyNTM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2RlYnVnZnMuaAorKysgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2RlYnVnZnMuaApAQCAtMjkxLDggKzI5MSw3IEBAIHN0cnVjdCBscGZjX2lkaWFnIHsKICNkZWZpbmUgTFBGQ19EVU1QX01VTFRJWFJJUE9PTF9TSVpFIDgxOTIKIAogZW51bSB7Ci0JRFVNUF9GQ1AsCi0JRFVNUF9OVk1FLAorCURVTVBfSU8sCiAJRFVNUF9NQlgsCiAJRFVNUF9FTFMsCiAJRFVNUF9OVk1FTFMsCkBAIC00MTUsMTIgKzQxNCw5IEBAIGxwZmNfZGVidWdfZHVtcF93cShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIGludCBxdHlwZSwgaW50IHdxaWR4KQogCXN0cnVjdCBscGZjX3F1ZXVlICp3cTsKIAljaGFyICpxdHlwZXN0cjsKIAotCWlmIChxdHlwZSA9PSBEVU1QX0ZDUCkgewotCQl3cSA9IHBoYmEtPnNsaTRfaGJhLmhkd3Fbd3FpZHhdLmZjcF93cTsKLQkJcXR5cGVzdHIgPSAiRkNQIjsKLQl9IGVsc2UgaWYgKHF0eXBlID09IERVTVBfTlZNRSkgewotCQl3cSA9IHBoYmEtPnNsaTRfaGJhLmhkd3Fbd3FpZHhdLm52bWVfd3E7Ci0JCXF0eXBlc3RyID0gIk5WTUUiOworCWlmIChxdHlwZSA9PSBEVU1QX0lPKSB7CisJCXdxID0gcGhiYS0+c2xpNF9oYmEuaGR3cVt3cWlkeF0uaW9fd3E7CisJCXF0eXBlc3RyID0gIklPIjsKIAl9IGVsc2UgaWYgKHF0eXBlID09IERVTVBfTUJYKSB7CiAJCXdxID0gcGhiYS0+c2xpNF9oYmEubWJ4X3dxOwogCQlxdHlwZXN0ciA9ICJNQlgiOwpAQCAtNDMzLDcgKzQyOSw3IEBAIGxwZmNfZGVidWdfZHVtcF93cShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIGludCBxdHlwZSwgaW50IHdxaWR4KQogCX0gZWxzZQogCQlyZXR1cm47CiAKLQlpZiAocXR5cGUgPT0gRFVNUF9GQ1AgfHwgcXR5cGUgPT0gRFVNUF9OVk1FKQorCWlmIChxdHlwZSA9PSBEVU1QX0lPKQogCQlwcl9lcnIoIiVzIFdROiBXUVtJZHg6JWR8UWlkOiVkXVxuIiwKIAkJCXF0eXBlc3RyLCB3cWlkeCwgd3EtPnF1ZXVlX2lkKTsKIAllbHNlCkBAIC00NTksMTcgKzQ1NSwxMyBAQCBscGZjX2RlYnVnX2R1bXBfY3Eoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgcXR5cGUsIGludCB3cWlkeCkKIAljaGFyICpxdHlwZXN0cjsKIAlpbnQgZXFpZHg7CiAKLQkvKiBmY3AvbnZtZSB3cSBhbmQgY3EgYXJlIDE6MSwgdGh1cyBzYW1lIGluZGV4ZXMgKi8KKwkvKiBpbyB3cSBhbmQgY3EgYXJlIDE6MSwgdGh1cyBzYW1lIGluZGV4ZXMgKi8KIAllcSA9IE5VTEw7CiAKLQlpZiAocXR5cGUgPT0gRFVNUF9GQ1ApIHsKLQkJd3EgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW3dxaWR4XS5mY3Bfd3E7Ci0JCWNxID0gcGhiYS0+c2xpNF9oYmEuaGR3cVt3cWlkeF0uZmNwX2NxOwotCQlxdHlwZXN0ciA9ICJGQ1AiOwotCX0gZWxzZSBpZiAocXR5cGUgPT0gRFVNUF9OVk1FKSB7Ci0JCXdxID0gcGhiYS0+c2xpNF9oYmEuaGR3cVt3cWlkeF0ubnZtZV93cTsKLQkJY3EgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW3dxaWR4XS5udm1lX2NxOwotCQlxdHlwZXN0ciA9ICJOVk1FIjsKKwlpZiAocXR5cGUgPT0gRFVNUF9JTykgeworCQl3cSA9IHBoYmEtPnNsaTRfaGJhLmhkd3Fbd3FpZHhdLmlvX3dxOworCQljcSA9IHBoYmEtPnNsaTRfaGJhLmhkd3Fbd3FpZHhdLmlvX2NxOworCQlxdHlwZXN0ciA9ICJJTyI7CiAJfSBlbHNlIGlmIChxdHlwZSA9PSBEVU1QX01CWCkgewogCQl3cSA9IHBoYmEtPnNsaTRfaGJhLm1ieF93cTsKIAkJY3EgPSBwaGJhLT5zbGk0X2hiYS5tYnhfY3E7CkBAIC00OTYsNyArNDg4LDcgQEAgbHBmY19kZWJ1Z19kdW1wX2NxKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgaW50IHF0eXBlLCBpbnQgd3FpZHgpCiAJCWVxID0gcGhiYS0+c2xpNF9oYmEuaGR3cVswXS5oYmFfZXE7CiAJfQogCi0JaWYgKHF0eXBlID09IERVTVBfRkNQIHx8IHF0eXBlID09IERVTVBfTlZNRSkKKwlpZiAocXR5cGUgPT0gRFVNUF9JTykKIAkJcHJfZXJyKCIlcyBDUTogV1FbSWR4OiVkfFFpZCVkXS0+Q1FbSWR4JWR8UWlkJWRdIgogCQkJIi0+RVFbSWR4OiVkfFFpZDolZF06XG4iLAogCQkJcXR5cGVzdHIsIHdxaWR4LCB3cS0+cXVldWVfaWQsIHdxaWR4LCBjcS0+cXVldWVfaWQsCkBAIC01NzIsMjAgKzU2NCwxMSBAQCBscGZjX2RlYnVnX2R1bXBfd3FfYnlfaWQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgcWlkKQogCWludCB3cV9pZHg7CiAKIAlmb3IgKHdxX2lkeCA9IDA7IHdxX2lkeCA8IHBoYmEtPmNmZ19oZHdfcXVldWU7IHdxX2lkeCsrKQotCQlpZiAocGhiYS0+c2xpNF9oYmEuaGR3cVt3cV9pZHhdLmZjcF93cS0+cXVldWVfaWQgPT0gcWlkKQorCQlpZiAocGhiYS0+c2xpNF9oYmEuaGR3cVt3cV9pZHhdLmlvX3dxLT5xdWV1ZV9pZCA9PSBxaWQpCiAJCQlicmVhazsKIAlpZiAod3FfaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZSkgewotCQlwcl9lcnIoIkZDUCBXUVtJZHg6JWR8UWlkOiVkXVxuIiwgd3FfaWR4LCBxaWQpOwotCQlscGZjX2RlYnVnX2R1bXBfcShwaGJhLT5zbGk0X2hiYS5oZHdxW3dxX2lkeF0uZmNwX3dxKTsKLQkJcmV0dXJuOwotCX0KLQotCWZvciAod3FfaWR4ID0gMDsgd3FfaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgd3FfaWR4KyspCi0JCWlmIChwaGJhLT5zbGk0X2hiYS5oZHdxW3dxX2lkeF0ubnZtZV93cS0+cXVldWVfaWQgPT0gcWlkKQotCQkJYnJlYWs7Ci0JaWYgKHdxX2lkeCA8IHBoYmEtPmNmZ19oZHdfcXVldWUpIHsKLQkJcHJfZXJyKCJOVk1FIFdRW0lkeDolZHxRaWQ6JWRdXG4iLCB3cV9pZHgsIHFpZCk7Ci0JCWxwZmNfZGVidWdfZHVtcF9xKHBoYmEtPnNsaTRfaGJhLmhkd3Fbd3FfaWR4XS5udm1lX3dxKTsKKwkJcHJfZXJyKCJJTyBXUVtJZHg6JWR8UWlkOiVkXVxuIiwgd3FfaWR4LCBxaWQpOworCQlscGZjX2RlYnVnX2R1bXBfcShwaGJhLT5zbGk0X2hiYS5oZHdxW3dxX2lkeF0uaW9fd3EpOwogCQlyZXR1cm47CiAJfQogCkBAIC02NTQsMjIgKzYzNywxMiBAQCBscGZjX2RlYnVnX2R1bXBfY3FfYnlfaWQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgcWlkKQogCWludCBjcV9pZHg7CiAKIAlmb3IgKGNxX2lkeCA9IDA7IGNxX2lkeCA8IHBoYmEtPmNmZ19oZHdfcXVldWU7IGNxX2lkeCsrKQotCQlpZiAocGhiYS0+c2xpNF9oYmEuaGR3cVtjcV9pZHhdLmZjcF9jcS0+cXVldWVfaWQgPT0gcWlkKQorCQlpZiAocGhiYS0+c2xpNF9oYmEuaGR3cVtjcV9pZHhdLmlvX2NxLT5xdWV1ZV9pZCA9PSBxaWQpCiAJCQlicmVhazsKIAogCWlmIChjcV9pZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlKSB7Ci0JCXByX2VycigiRkNQIENRW0lkeDolZHxRaWQ6JWRdXG4iLCBjcV9pZHgsIHFpZCk7Ci0JCWxwZmNfZGVidWdfZHVtcF9xKHBoYmEtPnNsaTRfaGJhLmhkd3FbY3FfaWR4XS5mY3BfY3EpOwotCQlyZXR1cm47Ci0JfQotCi0JZm9yIChjcV9pZHggPSAwOyBjcV9pZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlOyBjcV9pZHgrKykKLQkJaWYgKHBoYmEtPnNsaTRfaGJhLmhkd3FbY3FfaWR4XS5udm1lX2NxLT5xdWV1ZV9pZCA9PSBxaWQpCi0JCQlicmVhazsKLQotCWlmIChjcV9pZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlKSB7Ci0JCXByX2VycigiTlZNRSBDUVtJZHg6JWR8UWlkOiVkXVxuIiwgY3FfaWR4LCBxaWQpOwotCQlscGZjX2RlYnVnX2R1bXBfcShwaGJhLT5zbGk0X2hiYS5oZHdxW2NxX2lkeF0ubnZtZV9jcSk7CisJCXByX2VycigiSU8gQ1FbSWR4OiVkfFFpZDolZF1cbiIsIGNxX2lkeCwgcWlkKTsKKwkJbHBmY19kZWJ1Z19kdW1wX3EocGhiYS0+c2xpNF9oYmEuaGR3cVtjcV9pZHhdLmlvX2NxKTsKIAkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19kaXNjLmggYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2Rpc2MuaAppbmRleCAxYzg5YzlmLi40ODJlNGE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2Rpc2MuaAorKysgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2Rpc2MuaApAQCAtMTEyLDYgKzExMiw4IEBAIHN0cnVjdCBscGZjX25vZGVsaXN0IHsKIAl1aW50OF90ICAgICAgICAgbmxwX3JldHJ5OwkJLyogdXNlZCBmb3IgRUxTIHJldHJpZXMgKi8KIAl1aW50OF90ICAgICAgICAgbmxwX2ZjcF9pbmZvOwkgICAgICAgIC8qIGNsYXNzIGluZm8sIGJpdHMgMC0zICovCiAjZGVmaW5lIE5MUF9GQ1BfMl9ERVZJQ0UgICAweDEwCQkJLyogRkNQLTIgZGV2aWNlICovCisJdTgJCW5scF9udm1lX2luZm87CSAgICAgICAgLyogTlZNRSBOU0xFUiBTdXBwb3J0ICovCisjZGVmaW5lIE5MUF9OVk1FX05TTEVSICAgICAweDEJCQkvKiBOVk1FIE5TTEVSIGRldmljZSAqLwogCiAJdWludDE2X3QgICAgICAgIG5scF91c2dfbWFwOwkvKiBuZGxwIG1hbmFnZW1lbnQgdXNhZ2UgYml0bWFwICovCiAjZGVmaW5lIE5MUF9VU0dfTk9ERV9BQ1RfQklUCTB4MQkvKiBJbmRpY2F0ZSBuZGxwIGlzIGFjdGl2ZWx5IHVzZWQgKi8KQEAgLTE1Nyw2ICsxNTksNyBAQCBzdHJ1Y3QgbHBmY19ub2RlX3JycSB7CiAvKiBEZWZpbmVzIGZvciBubHBfZmxhZyAodWludDMyKSAqLwogI2RlZmluZSBOTFBfSUdOUl9SRUdfQ01QTCAgMHgwMDAwMDAwMSAvKiBSY3ZkIHJzY24gYmVmb3JlIHdlIGNtcGwgcmVnIGxvZ2luICovCiAjZGVmaW5lIE5MUF9SRUdfTE9HSU5fU0VORCAweDAwMDAwMDAyICAgLyogc2VudCByZWdsb2dpbiB0byBhZGFwdGVyICovCisjZGVmaW5lIE5MUF9SRUxFQVNFX1JQSSAgICAweDAwMDAwMDA0ICAgLyogUmVsZWFzZSBSUEkgdG8gZnJlZSBwb29sICovCiAjZGVmaW5lIE5MUF9TVVBQUkVTU19SU1AgICAweDAwMDAwMDEwCS8qIFJlbW90ZSBOUG9ydCBzdXBwb3J0cyBzdXBwcmVzcyByc3AgKi8KICNkZWZpbmUgTkxQX1BMT0dJX1NORCAgICAgIDB4MDAwMDAwMjAJLyogc2VudCBQTE9HSSByZXF1ZXN0IGZvciB0aGlzIGVudHJ5ICovCiAjZGVmaW5lIE5MUF9QUkxJX1NORCAgICAgICAweDAwMDAwMDQwCS8qIHNlbnQgUFJMSSByZXF1ZXN0IGZvciB0aGlzIGVudHJ5ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2Vscy5jIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19lbHMuYwppbmRleCBmMTI3ODBmLi5kNTMwMzk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2Vscy5jCisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfZWxzLmMKQEAgLTEwNTIsMTcgKzEwNTIsMTggQEAgbHBmY19jbXBsX2Vsc19mbG9naShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX2lvY2JxICpjbWRpb2NiLAogCQlpZiAobHBmY19lbHNfcmV0cnkocGhiYSwgY21kaW9jYiwgcnNwaW9jYikpCiAJCQlnb3RvIG91dDsKIAorCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX1dBUk5JTkcsIExPR19FTFMsCisJCQkJICIwMTUwIEZMT0dJIGZhaWx1cmUgU3RhdHVzOngleC94JXggIgorCQkJCSAieHJpIHgleCBUTU86eCV4XG4iLAorCQkJCSBpcnNwLT51bHBTdGF0dXMsIGlyc3AtPnVuLnVscFdvcmRbNF0sCisJCQkJIGNtZGlvY2ItPnNsaTRfeHJpdGFnLCBpcnNwLT51bHBUaW1lb3V0KTsKKwogCQkvKiBJZiB0aGlzIGlzIG5vdCBhIGxvb3Agb3BlbiBmYWlsdXJlLCBiYWlsIG91dCAqLwogCQlpZiAoIShpcnNwLT51bHBTdGF0dXMgPT0gSU9TVEFUX0xPQ0FMX1JFSkVDVCAmJgogCQkgICAgICAoKGlyc3AtPnVuLnVscFdvcmRbNF0gJiBJT0VSUl9QQVJBTV9NQVNLKSA9PQogCQkJCQlJT0VSUl9MT09QX09QRU5fRkFJTFVSRSkpKQogCQkJZ290byBmbG9naWZhaWw7CiAKLQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9XQVJOSU5HLCBMT0dfRUxTLAotCQkJCSAiMDE1MCBGTE9HSSBmYWlsdXJlIFN0YXR1czp4JXgveCV4IHhyaSB4JXggVE1POngleFxuIiwKLQkJCQkgaXJzcC0+dWxwU3RhdHVzLCBpcnNwLT51bi51bHBXb3JkWzRdLAotCQkJCSBjbWRpb2NiLT5zbGk0X3hyaXRhZywgaXJzcC0+dWxwVGltZW91dCk7Ci0KIAkJLyogRkxPR0kgZmFpbGVkLCBzbyB0aGVyZSBpcyBubyBmYWJyaWMgKi8KIAkJc3Bpbl9sb2NrX2lycShzaG9zdC0+aG9zdF9sb2NrKTsKIAkJdnBvcnQtPmZjX2ZsYWcgJj0gfihGQ19GQUJSSUMgfCBGQ19QVUJMSUNfTE9PUCk7CkBAIC0xMjA3LDYgKzEyMDgsMzkgQEAgbHBmY19jbXBsX2Vsc19mbG9naShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX2lvY2JxICpjbWRpb2NiLAogfQogCiAvKioKKyAqIGxwZmNfY21wbF9lbHNfbGlua19kb3duIC0gQ29tcGxldGlvbiBjYWxsYmFjayBmdW5jdGlvbiBmb3IgRUxTIGNvbW1hbmQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJvcnRlZCBkdXJpbmcgYSBsaW5rIGRvd24KKyAqIEBwaGJhOiBwb2ludGVyIHRvIGxwZmMgaGJhIGRhdGEgc3RydWN0dXJlLgorICogQGNtZGlvY2I6IHBvaW50ZXIgdG8gbHBmYyBjb21tYW5kIGlvY2IgZGF0YSBzdHJ1Y3R1cmUuCisgKiBAcnNwaW9jYjogcG9pbnRlciB0byBscGZjIHJlc3BvbnNlIGlvY2IgZGF0YSBzdHJ1Y3R1cmUuCisgKgorICovCitzdGF0aWMgdm9pZAorbHBmY19jbXBsX2Vsc19saW5rX2Rvd24oc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb2NicSAqY21kaW9jYiwKKwkJCXN0cnVjdCBscGZjX2lvY2JxICpyc3Bpb2NiKQoreworCUlPQ0JfdCAqaXJzcDsKKwl1aW50MzJfdCAqcGNtZDsKKwl1aW50MzJfdCBjbWQ7CisKKwlwY21kID0gKHVpbnQzMl90ICopKCgoc3RydWN0IGxwZmNfZG1hYnVmICopY21kaW9jYi0+Y29udGV4dDIpLT52aXJ0KTsKKwljbWQgPSAqcGNtZDsKKwlpcnNwID0gJnJzcGlvY2ItPmlvY2I7CisKKwlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9JTkZPLCBMT0dfRUxTLAorCQkJIjY0NDUgRUxTIGNvbXBsZXRlcyBhZnRlciBMSU5LX0RPV046ICIKKwkJCSIgU3RhdHVzICV4LyV4IGNtZCB4JXggZmxnIHgleFxuIiwKKwkJCWlyc3AtPnVscFN0YXR1cywgaXJzcC0+dW4udWxwV29yZFs0XSwgY21kLAorCQkJY21kaW9jYi0+aW9jYl9mbGFnKTsKKworCWlmIChjbWRpb2NiLT5pb2NiX2ZsYWcgJiBMUEZDX0lPX0ZBQlJJQykgeworCQljbWRpb2NiLT5pb2NiX2ZsYWcgJj0gfkxQRkNfSU9fRkFCUklDOworCQlhdG9taWNfZGVjKCZwaGJhLT5mYWJyaWNfaW9jYl9jb3VudCk7CisJfQorCWxwZmNfZWxzX2ZyZWVfaW9jYihwaGJhLCBjbWRpb2NiKTsKK30KKworLyoqCiAgKiBscGZjX2lzc3VlX2Vsc19mbG9naSAtIElzc3VlIGFuIGZsb2dpIGlvY2IgY29tbWFuZCBmb3IgYSB2cG9ydAogICogQHZwb3J0OiBwb2ludGVyIHRvIGEgaG9zdCB2aXJ0dWFsIE5fUG9ydCBkYXRhIHN0cnVjdHVyZS4KICAqIEBuZGxwOiBwb2ludGVyIHRvIGEgbm9kZS1saXN0IGRhdGEgc3RydWN0dXJlLgpAQCAtMjEwNyw3ICsyMTQxLDcgQEAgbHBmY19pc3N1ZV9lbHNfcGxvZ2koc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCB1aW50MzJfdCBkaWQsIHVpbnQ4X3QgcmV0cnkpCiAJCSAgICAhKHZwb3J0LT5mY19mbGFnICYgRkNfT0ZGTElORV9NT0RFKSkgewogCQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfRElTQ09WRVJZLAogCQkJCQkgIjQxMTAgSXNzdWUgUExPR0kgeCV4IGRlZmVycmVkICIKLQkJCQkJICJvbiBOUG9ydCB4JXggcnBpIHgleCBEYXRhOiAlcFxuIiwKKwkJCQkJICJvbiBOUG9ydCB4JXggcnBpIHgleCBEYXRhOiB4JXB4XG4iLAogCQkJCQkgbmRscC0+bmxwX2RlZmVyX2RpZCwgbmRscC0+bmxwX0RJRCwKIAkJCQkJIG5kbHAtPm5scF9ycGksIG5kbHApOwogCkBAIC0yNDAxLDYgKzI0MzUsMTAgQEAgbHBmY19pc3N1ZV9lbHNfcHJsaShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwLAogCQlucHJfbnZtZSA9IChzdHJ1Y3QgbHBmY19udm1lX3BybGkgKilwY21kOwogCQliZl9zZXQocHJsaV90eXBlX2NvZGUsIG5wcl9udm1lLCBQUkxJX05WTUVfVFlQRSk7CiAJCWJmX3NldChwcmxpX2VzdGFiSW1hZ2VQYWlyLCBucHJfbnZtZSwgMCk7ICAvKiBTaG91bGQgYmUgMCAqLworCQlpZiAocGhiYS0+bnNsZXIpIHsKKwkJCWJmX3NldChwcmxpX25zbGVyLCBucHJfbnZtZSwgMSk7CisJCQliZl9zZXQocHJsaV9jb25mLCBucHJfbnZtZSwgMSk7CisJCX0KIAogCQkvKiBPbmx5IGluaXRpYXRvcnMgcmVxdWVzdCBmaXJzdCBidXJzdC4gKi8KIAkJaWYgKChwaGJhLT5jZmdfbnZtZV9lbmFibGVfZmIpICYmCkBAIC00MjAzLDcgKzQyNDEsNyBAQCBscGZjX21ieF9jbXBsX2RmbHRfcnBpKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgTFBGQ19NQk9YUV90ICpwbWIpCiAJbWVtcG9vbF9mcmVlKHBtYiwgcGhiYS0+bWJveF9tZW1fcG9vbCk7CiAJaWYgKG5kbHApIHsKIAkJbHBmY19wcmludGZfdmxvZyhuZGxwLT52cG9ydCwgS0VSTl9JTkZPLCBMT0dfTk9ERSwKLQkJCQkgIjAwMDYgcnBpJXggRElEOiV4IGZsZzoleCAlZCBtYXA6JXggJXBcbiIsCisJCQkJICIwMDA2IHJwaSV4IERJRDoleCBmbGc6JXggJWQgbWFwOiV4IHglcHhcbiIsCiAJCQkJIG5kbHAtPm5scF9ycGksIG5kbHAtPm5scF9ESUQsIG5kbHAtPm5scF9mbGFnLAogCQkJCSBrcmVmX3JlYWQoJm5kbHAtPmtyZWYpLAogCQkJCSBuZGxwLT5ubHBfdXNnX21hcCwgbmRscCk7CkBAIC01NjM0LDE2ICs1NjcyLDE2IEBAIGxwZmNfcmRwX3Jlc19hdHRhY2hfcG9ydF9uYW1lcyhzdHJ1Y3QgZmNfcmRwX3BvcnRfbmFtZV9kZXNjICpkZXNjLAogCWRlc2MtPnRhZyA9IGNwdV90b19iZTMyKFJEUF9QT1JUX05BTUVTX0RFU0NfVEFHKTsKIAlpZiAodnBvcnQtPmZjX2ZsYWcgJiBGQ19GQUJSSUMpIHsKIAkJbWVtY3B5KGRlc2MtPnBvcnRfbmFtZXMud3dubiwgJnZwb3J0LT5mYWJyaWNfbm9kZW5hbWUsCi0JCQkJc2l6ZW9mKGRlc2MtPnBvcnRfbmFtZXMud3dubikpOworCQkgICAgICAgc2l6ZW9mKGRlc2MtPnBvcnRfbmFtZXMud3dubikpOwogCiAJCW1lbWNweShkZXNjLT5wb3J0X25hbWVzLnd3cG4sICZ2cG9ydC0+ZmFicmljX3BvcnRuYW1lLAotCQkJCXNpemVvZihkZXNjLT5wb3J0X25hbWVzLnd3cG4pKTsKKwkJICAgICAgIHNpemVvZihkZXNjLT5wb3J0X25hbWVzLnd3cG4pKTsKIAl9IGVsc2UgeyAgLyogUG9pbnQgdG8gUG9pbnQgKi8KIAkJbWVtY3B5KGRlc2MtPnBvcnRfbmFtZXMud3dubiwgJm5kbHAtPm5scF9ub2RlbmFtZSwKLQkJCQlzaXplb2YoZGVzYy0+cG9ydF9uYW1lcy53d25uKSk7CisJCSAgICAgICBzaXplb2YoZGVzYy0+cG9ydF9uYW1lcy53d25uKSk7CiAKLQkJbWVtY3B5KGRlc2MtPnBvcnRfbmFtZXMud3dubiwgJm5kbHAtPm5scF9wb3J0bmFtZSwKLQkJCQlzaXplb2YoZGVzYy0+cG9ydF9uYW1lcy53d3BuKSk7CisJCW1lbWNweShkZXNjLT5wb3J0X25hbWVzLnd3cG4sICZuZGxwLT5ubHBfcG9ydG5hbWUsCisJCSAgICAgICBzaXplb2YoZGVzYy0+cG9ydF9uYW1lcy53d3BuKSk7CiAJfQogCiAJZGVzYy0+bGVuZ3RoID0gY3B1X3RvX2JlMzIoc2l6ZW9mKGRlc2MtPnBvcnRfbmFtZXMpKTsKQEAgLTYzMjcsNyArNjM2NSwxMSBAQCBscGZjX3JzY25fcmVjb3ZlcnlfY2hlY2soc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0KQogCQkJY29udGludWU7CiAJCX0KIAotCQlpZiAobmRscC0+bmxwX2ZjNF90eXBlICYgTkxQX0ZDNF9OVk1FKQorCQkvKiBDaGVjayB0byBzZWUgaWYgd2UgbmVlZCB0byBOVk1FIHJlc2NhbiB0aGlzIHRhcmdldAorCQkgKiByZW1vdGVwb3J0LgorCQkgKi8KKwkJaWYgKG5kbHAtPm5scF9mYzRfdHlwZSAmIE5MUF9GQzRfTlZNRSAmJgorCQkgICAgbmRscC0+bmxwX3R5cGUgJiAoTkxQX05WTUVfVEFSR0VUIHwgTkxQX05WTUVfRElTQ09WRVJZKSkKIAkJCWxwZmNfbnZtZV9yZXNjYW5fcG9ydCh2cG9ydCwgbmRscCk7CiAKIAkJbHBmY19kaXNjX3N0YXRlX21hY2hpbmUodnBvcnQsIG5kbHAsIE5VTEwsCkBAIC02NDQxLDcgKzY0ODMsMTEgQEAgbHBmY19lbHNfcmN2X3JzY24oc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19pb2NicSAqY21kaW9jYiwKIAkJCQkgKmxwLCB2cG9ydC0+ZmNfZmxhZywgcGF5bG9hZF9sZW4pOwogCQlscGZjX2Vsc19yc3BfYWNjKHZwb3J0LCBFTFNfQ01EX0FDQywgY21kaW9jYiwgbmRscCwgTlVMTCk7CiAKLQkJaWYgKG5kbHAtPm5scF9mYzRfdHlwZSAmIE5MUF9GQzRfTlZNRSkKKwkJLyogQ2hlY2sgdG8gc2VlIGlmIHdlIG5lZWQgdG8gTlZNRSByZXNjYW4gdGhpcyB0YXJnZXQKKwkJICogcmVtb3RlcG9ydC4KKwkJICovCisJCWlmIChuZGxwLT5ubHBfZmM0X3R5cGUgJiBOTFBfRkM0X05WTUUgJiYKKwkJICAgIG5kbHAtPm5scF90eXBlICYgKE5MUF9OVk1FX1RBUkdFVCB8IE5MUF9OVk1FX0RJU0NPVkVSWSkpCiAJCQlscGZjX252bWVfcmVzY2FuX3BvcnQodnBvcnQsIG5kbHApOwogCQlyZXR1cm4gMDsKIAl9CkBAIC03OTYwLDE4ICs4MDA2LDQwIEBAIGxwZmNfZWxzX2ZsdXNoX2NtZChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQpCiAJaWYgKHBoYmEtPnNsaV9yZXYgPT0gTFBGQ19TTElfUkVWNCkKIAkJc3Bpbl9sb2NrKCZwcmluZy0+cmluZ19sb2NrKTsKIAorCS8qIEZpcnN0IHdlIG5lZWQgdG8gaXNzdWUgYWJvcnRzIHRvIG91dHN0YW5kaW5nIGNtZHMgb24gdHhjbXBsICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBpb2NiLCB0bXBfaW9jYiwgJnByaW5nLT50eGNtcGxxLCBsaXN0KSB7CiAJCWlmIChwaW9jYi0+aW9jYl9mbGFnICYgTFBGQ19JT19MSUJERkMpCiAJCQljb250aW51ZTsKIAogCQlpZiAocGlvY2ItPnZwb3J0ICE9IHZwb3J0KQogCQkJY29udGludWU7Ci0JCWxpc3RfYWRkX3RhaWwoJnBpb2NiLT5kbGlzdCwgJmFib3J0X2xpc3QpOworCisJCS8qIE9uIHRoZSBFTFMgcmluZyB3ZSBjYW4gaGF2ZSBFTFNfUkVRVUVTVHMgb3IKKwkJICogR0VOX1JFUVVFU1RzIHdhaXRpbmcgZm9yIGEgcmVzcG9uc2UuCisJCSAqLworCQljbWQgPSAmcGlvY2ItPmlvY2I7CisJCWlmIChjbWQtPnVscENvbW1hbmQgPT0gQ01EX0VMU19SRVFVRVNUNjRfQ1IpIHsKKwkJCWxpc3RfYWRkX3RhaWwoJnBpb2NiLT5kbGlzdCwgJmFib3J0X2xpc3QpOworCisJCQkvKiBJZiB0aGUgbGluayBpcyBkb3duIHdoZW4gZmx1c2hpbmcgRUxTIGNvbW1hbmRzCisJCQkgKiB0aGUgZmlybXdhcmUgd2lsbCBub3QgY29tcGxldGUgdGhlbSB0aWxsIGFmdGVyCisJCQkgKiB0aGUgbGluayBjb21lcyBiYWNrIHVwLiBUaGlzIG1heSBjb25mdXNlCisJCQkgKiBkaXNjb3ZlcnkgZm9yIHRoZSBuZXcgbGluayB1cCwgc28gd2UgbmVlZCB0bworCQkJICogY2hhbmdlIHRoZSBjb21wbCByb3V0aW5lIHRvIGp1c3QgY2xlYW4gdXAgdGhlIGlvY2IKKwkJCSAqIGFuZCBhdm9pZCBhbnkgcmV0cnkgbG9naWMuCisJCQkgKi8KKwkJCWlmIChwaGJhLT5saW5rX3N0YXRlID09IExQRkNfTElOS19ET1dOKQorCQkJCXBpb2NiLT5pb2NiX2NtcGwgPSBscGZjX2NtcGxfZWxzX2xpbmtfZG93bjsKKwkJfQorCQlpZiAoY21kLT51bHBDb21tYW5kID09IENNRF9HRU5fUkVRVUVTVDY0X0NSKQorCQkJbGlzdF9hZGRfdGFpbCgmcGlvY2ItPmRsaXN0LCAmYWJvcnRfbGlzdCk7CiAJfQorCiAJaWYgKHBoYmEtPnNsaV9yZXYgPT0gTFBGQ19TTElfUkVWNCkKIAkJc3Bpbl91bmxvY2soJnByaW5nLT5yaW5nX2xvY2spOwogCXNwaW5fdW5sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7Ci0JLyogQWJvcnQgZWFjaCBpb2NiIG9uIHRoZSBhYm9ydGVkIGxpc3QgYW5kIHJlbW92ZSB0aGUgZGxpc3QgbGlua3MuICovCisKKwkvKiBBYm9ydCBlYWNoIHR4Y21wbCBpb2NiIG9uIGFib3J0ZWQgbGlzdCBhbmQgcmVtb3ZlIHRoZSBkbGlzdCBsaW5rcy4gKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGlvY2IsIHRtcF9pb2NiLCAmYWJvcnRfbGlzdCwgZGxpc3QpIHsKIAkJc3Bpbl9sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7CiAJCWxpc3RfZGVsX2luaXQoJnBpb2NiLT5kbGlzdCk7CkBAIC03OTg3LDYgKzgwNTUsOSBAQCBscGZjX2Vsc19mbHVzaF9jbWQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0KQogCWlmIChwaGJhLT5zbGlfcmV2ID09IExQRkNfU0xJX1JFVjQpCiAJCXNwaW5fbG9jaygmcHJpbmctPnJpbmdfbG9jayk7CiAKKwkvKiBObyBuZWVkIHRvIGFib3J0IHRoZSB0eHEgbGlzdCwKKwkgKiBqdXN0IHF1ZXVlIHRoZW0gdXAgZm9yIGxwZmNfc2xpX2NhbmNlbF9pb2NicworCSAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwaW9jYiwgdG1wX2lvY2IsICZwcmluZy0+dHhxLCBsaXN0KSB7CiAJCWNtZCA9ICZwaW9jYi0+aW9jYjsKIApAQCAtODAwNywxMSArODA3OCwyMiBAQCBscGZjX2Vsc19mbHVzaF9jbWQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0KQogCQlsaXN0X2RlbF9pbml0KCZwaW9jYi0+bGlzdCk7CiAJCWxpc3RfYWRkX3RhaWwoJnBpb2NiLT5saXN0LCAmYWJvcnRfbGlzdCk7CiAJfQorCisJLyogVGhlIHNhbWUgaG9sZHMgdHJ1ZSBmb3IgYW55IEZMT0dJL0ZESVNDIG9uIHRoZSBmYWJyaWNfaW9jYl9saXN0ICovCisJaWYgKHZwb3J0ID09IHBoYmEtPnBwb3J0KSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwaW9jYiwgdG1wX2lvY2IsCisJCQkJCSAmcGhiYS0+ZmFicmljX2lvY2JfbGlzdCwgbGlzdCkgeworCQkJY21kID0gJnBpb2NiLT5pb2NiOworCQkJbGlzdF9kZWxfaW5pdCgmcGlvY2ItPmxpc3QpOworCQkJbGlzdF9hZGRfdGFpbCgmcGlvY2ItPmxpc3QsICZhYm9ydF9saXN0KTsKKwkJfQorCX0KKwogCWlmIChwaGJhLT5zbGlfcmV2ID09IExQRkNfU0xJX1JFVjQpCiAJCXNwaW5fdW5sb2NrKCZwcmluZy0+cmluZ19sb2NrKTsKIAlzcGluX3VubG9ja19pcnEoJnBoYmEtPmhiYWxvY2spOwogCi0JLyogQ2FuY2VsbCBhbGwgdGhlIElPQ0JzIGZyb20gdGhlIGNvbXBsZXRpb25zIGxpc3QgKi8KKwkvKiBDYW5jZWwgYWxsIHRoZSBJT0NCcyBmcm9tIHRoZSBjb21wbGV0aW9ucyBsaXN0ICovCiAJbHBmY19zbGlfY2FuY2VsX2lvY2JzKHBoYmEsICZhYm9ydF9saXN0LAogCQkJICAgICAgSU9TVEFUX0xPQ0FMX1JFSkVDVCwgSU9FUlJfU0xJX0FCT1JURUQpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2hiYWRpc2MuYyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfaGJhZGlzYy5jCmluZGV4IDI4ZWNhYTcuLjc0OTI4NmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfaGJhZGlzYy5jCisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfaGJhZGlzYy5jCkBAIC0xMTgsNiArMTE4LDcgQEAgbHBmY19kZXZfbG9zc190bW9fY2FsbGJrKHN0cnVjdCBmY19ycG9ydCAqcnBvcnQpCiAJc3RydWN0IGxwZmNfd29ya19ldnQgKmV2dHA7CiAJaW50ICBwdXRfbm9kZTsKIAlpbnQgIHB1dF9ycG9ydDsKKwl1bnNpZ25lZCBsb25nIGlmbGFnczsKIAogCXJkYXRhID0gcnBvcnQtPmRkX2RhdGE7CiAJbmRscCA9IHJkYXRhLT5wbm9kZTsKQEAgLTEzMiw3ICsxMzMsNyBAQCBscGZjX2Rldl9sb3NzX3Rtb19jYWxsYmsoc3RydWN0IGZjX3Jwb3J0ICpycG9ydCkKIAkJbmRscC0+bmxwX3NpZCwgbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX2ZsYWcpOwogCiAJbHBmY19wcmludGZfdmxvZyhuZGxwLT52cG9ydCwgS0VSTl9JTkZPLCBMT0dfTk9ERSwKLQkJCSAiMzE4MSBkZXZfbG9zc19jYWxsYmsgeCUwNngsIHJwb3J0ICVwIGZsZyB4JXhcbiIsCisJCQkgIjMxODEgZGV2X2xvc3NfY2FsbGJrIHglMDZ4LCBycG9ydCB4JXB4IGZsZyB4JXhcbiIsCiAJCQkgbmRscC0+bmxwX0RJRCwgbmRscC0+cnBvcnQsIG5kbHAtPm5scF9mbGFnKTsKIAogCS8qIERvbid0IGRlZmVyIHRoaXMgaWYgd2UgYXJlIGluIHRoZSBwcm9jZXNzIG9mIGRlbGV0aW5nIHRoZSB2cG9ydApAQCAtMTcwLDIyICsxNzEsMjIgQEAgbHBmY19kZXZfbG9zc190bW9fY2FsbGJrKHN0cnVjdCBmY19ycG9ydCAqcnBvcnQpCiAJfQogCiAJc2hvc3QgPSBscGZjX3Nob3N0X2Zyb21fdnBvcnQodnBvcnQpOwotCXNwaW5fbG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CisJc3Bpbl9sb2NrX2lycXNhdmUoc2hvc3QtPmhvc3RfbG9jaywgaWZsYWdzKTsKIAluZGxwLT5ubHBfZmxhZyB8PSBOTFBfSU5fREVWX0xPU1M7Ci0Jc3Bpbl91bmxvY2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2hvc3QtPmhvc3RfbG9jaywgaWZsYWdzKTsKIAogCS8qIFdlIG5lZWQgdG8gaG9sZCB0aGUgbm9kZSBieSBpbmNyZW1lbnRpbmcgdGhlIHJlZmVyZW5jZQogCSAqIGNvdW50IHVudGlsIHRoaXMgcXVldWVkIHdvcmsgaXMgZG9uZQogCSAqLwogCWV2dHAtPmV2dF9hcmcxICA9IGxwZmNfbmxwX2dldChuZGxwKTsKIAotCXNwaW5fbG9ja19pcnEoJnBoYmEtPmhiYWxvY2spOworCXNwaW5fbG9ja19pcnFzYXZlKCZwaGJhLT5oYmFsb2NrLCBpZmxhZ3MpOwogCWlmIChldnRwLT5ldnRfYXJnMSkgewogCQlldnRwLT5ldnQgPSBMUEZDX0VWVF9ERVZfTE9TUzsKIAkJbGlzdF9hZGRfdGFpbCgmZXZ0cC0+ZXZ0X2xpc3RwLCAmcGhiYS0+d29ya19saXN0KTsKIAkJbHBmY193b3JrZXJfd2FrZV91cChwaGJhKTsKIAl9Ci0Jc3Bpbl91bmxvY2tfaXJxKCZwaGJhLT5oYmFsb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaGJhLT5oYmFsb2NrLCBpZmxhZ3MpOwogCiAJcmV0dXJuOwogfQpAQCAtMjEyLDE0ICsyMTMsMTUgQEAgbHBmY19kZXZfbG9zc190bW9faGFuZGxlcihzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCkKIAlpbnQgIHB1dF9ub2RlOwogCWludCB3YXJuX29uID0gMDsKIAlpbnQgZmNmX2ludXNlID0gMDsKKwl1bnNpZ25lZCBsb25nIGlmbGFnczsKIAogCXJwb3J0ID0gbmRscC0+cnBvcnQ7CiAJdnBvcnQgPSBuZGxwLT52cG9ydDsKIAlzaG9zdCA9IGxwZmNfc2hvc3RfZnJvbV92cG9ydCh2cG9ydCk7CiAKLQlzcGluX2xvY2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOworCXNwaW5fbG9ja19pcnFzYXZlKHNob3N0LT5ob3N0X2xvY2ssIGlmbGFncyk7CiAJbmRscC0+bmxwX2ZsYWcgJj0gfk5MUF9JTl9ERVZfTE9TUzsKLQlzcGluX3VubG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzaG9zdC0+aG9zdF9sb2NrLCBpZmxhZ3MpOwogCiAJaWYgKCFycG9ydCkKIAkJcmV0dXJuIGZjZl9pbnVzZTsKQEAgLTIzNSw3ICsyMzcsNyBAQCBscGZjX2Rldl9sb3NzX3Rtb19oYW5kbGVyKHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCQluZGxwLT5ubHBfRElELCBuZGxwLT5ubHBfdHlwZSwgcnBvcnQtPnNjc2lfdGFyZ2V0X2lkKTsKIAogCWxwZmNfcHJpbnRmX3Zsb2cobmRscC0+dnBvcnQsIEtFUk5fSU5GTywgTE9HX05PREUsCi0JCQkgIjMxODIgZGV2X2xvc3NfdG1vX2hhbmRsZXIgeCUwNngsIHJwb3J0ICVwIGZsZyB4JXhcbiIsCisJCQkgIjMxODIgZGV2X2xvc3NfdG1vX2hhbmRsZXIgeCUwNngsIHJwb3J0IHglcHggZmxnIHgleFxuIiwKIAkJCSBuZGxwLT5ubHBfRElELCBuZGxwLT5ycG9ydCwgbmRscC0+bmxwX2ZsYWcpOwogCiAJLyoKQEAgLTkwMyw2ICs5MDUsOCBAQCBscGZjX2xpbmtkb3duKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkJCXBoYmEtPnRydW5rX2xpbmsubGluazEuc3RhdGUgPSAwOwogCQkJcGhiYS0+dHJ1bmtfbGluay5saW5rMi5zdGF0ZSA9IDA7CiAJCQlwaGJhLT50cnVua19saW5rLmxpbmszLnN0YXRlID0gMDsKKwkJCXBoYmEtPnNsaTRfaGJhLmxpbmtfc3RhdGUubG9naWNhbF9zcGVlZCA9CisJCQkJCQlMUEZDX0xJTktfU1BFRURfVU5LTk9XTjsKIAkJfQogCQlzcGluX2xvY2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOwogCQlwaGJhLT5wcG9ydC0+ZmNfZmxhZyAmPSB+RkNfTEJJVDsKQEAgLTMxMTUsOCArMzExOSw5IEBAIGxwZmNfbWJ4X3Byb2Nlc3NfbGlua191cChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX21ieF9yZWFkX3RvcCAqbGEpCiAJaW50IHJjOwogCXN0cnVjdCBmY2ZfcmVjb3JkICpmY2ZfcmVjb3JkOwogCXVpbnQzMl90IGZjX2ZsYWdzID0gMDsKKwl1bnNpZ25lZCBsb25nIGlmbGFnczsKIAotCXNwaW5fbG9ja19pcnEoJnBoYmEtPmhiYWxvY2spOworCXNwaW5fbG9ja19pcnFzYXZlKCZwaGJhLT5oYmFsb2NrLCBpZmxhZ3MpOwogCXBoYmEtPmZjX2xpbmtzcGVlZCA9IGJmX2dldChscGZjX21ieF9yZWFkX3RvcF9saW5rX3NwZCwgbGEpOwogCiAJaWYgKCEocGhiYS0+aGJhX2ZsYWcgJiBIQkFfRkNPRV9NT0RFKSkgewpAQCAtMzIxMywxMiArMzIxOCwxMiBAQCBscGZjX21ieF9wcm9jZXNzX2xpbmtfdXAoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19tYnhfcmVhZF90b3AgKmxhKQogCQl2cG9ydC0+ZmNfbXlESUQgPSBwaGJhLT5mY19wcmVmX0RJRDsKIAkJZmNfZmxhZ3MgfD0gRkNfTEJJVDsKIAl9Ci0Jc3Bpbl91bmxvY2tfaXJxKCZwaGJhLT5oYmFsb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaGJhLT5oYmFsb2NrLCBpZmxhZ3MpOwogCiAJaWYgKGZjX2ZsYWdzKSB7Ci0JCXNwaW5fbG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CisJCXNwaW5fbG9ja19pcnFzYXZlKHNob3N0LT5ob3N0X2xvY2ssIGlmbGFncyk7CiAJCXZwb3J0LT5mY19mbGFnIHw9IGZjX2ZsYWdzOwotCQlzcGluX3VubG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2hvc3QtPmhvc3RfbG9jaywgaWZsYWdzKTsKIAl9CiAKIAlscGZjX2xpbmt1cChwaGJhKTsKQEAgLTMyOTIsMjIgKzMyOTcsMjIgQEAgbHBmY19tYnhfcHJvY2Vzc19saW5rX3VwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfbWJ4X3JlYWRfdG9wICpsYSkKIAkJICogVGhlIGRyaXZlciBpcyBleHBlY3RlZCB0byBkbyBGSVAvRkNGLiBDYWxsIHRoZSBwb3J0CiAJCSAqIGFuZCBnZXQgdGhlIEZDRiBUYWJsZS4KIAkJICovCi0JCXNwaW5fbG9ja19pcnEoJnBoYmEtPmhiYWxvY2spOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGhiYS0+aGJhbG9jaywgaWZsYWdzKTsKIAkJaWYgKHBoYmEtPmhiYV9mbGFnICYgRkNGX1RTX0lOUFJPRykgewotCQkJc3Bpbl91bmxvY2tfaXJxKCZwaGJhLT5oYmFsb2NrKTsKKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBoYmEtPmhiYWxvY2ssIGlmbGFncyk7CiAJCQlyZXR1cm47CiAJCX0KIAkJLyogVGhpcyBpcyB0aGUgaW5pdGlhbCBGQ0YgZGlzY292ZXJ5IHNjYW4gKi8KIAkJcGhiYS0+ZmNmLmZjZl9mbGFnIHw9IEZDRl9JTklUX0RJU0M7Ci0JCXNwaW5fdW5sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBoYmEtPmhiYWxvY2ssIGlmbGFncyk7CiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19GSVAgfCBMT0dfRElTQ09WRVJZLAogCQkJCSIyNzc4IFN0YXJ0IEZDRiB0YWJsZSBzY2FuIGF0IGxpbmt1cFxuIik7CiAJCXJjID0gbHBmY19zbGk0X2ZjZl9zY2FuX3JlYWRfZmNmX3JlYyhwaGJhLAogCQkJCQkJICAgICBMUEZDX0ZDT0VfRkNGX0dFVF9GSVJTVCk7CiAJCWlmIChyYykgewotCQkJc3Bpbl9sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7CisJCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGhiYS0+aGJhbG9jaywgaWZsYWdzKTsKIAkJCXBoYmEtPmZjZi5mY2ZfZmxhZyAmPSB+RkNGX0lOSVRfRElTQzsKLQkJCXNwaW5fdW5sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaGJhLT5oYmFsb2NrLCBpZmxhZ3MpOwogCQkJZ290byBvdXQ7CiAJCX0KIAkJLyogUmVzZXQgRkNGIHJvdW5kcm9iaW4gYm1hc2sgZm9yIG5ldyBkaXNjb3ZlcnkgKi8KQEAgLTMzMTgsNyArMzMyMyw3IEBAIGxwZmNfbWJ4X3Byb2Nlc3NfbGlua191cChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX21ieF9yZWFkX3RvcCAqbGEpCiBvdXQ6CiAJbHBmY192cG9ydF9zZXRfc3RhdGUodnBvcnQsIEZDX1ZQT1JUX0ZBSUxFRCk7CiAJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19NQk9YLAotCQkJICIwMjYzIERpc2NvdmVyeSBNYWlsYm94IGVycm9yOiBzdGF0ZTogMHgleCA6ICVwICVwXG4iLAorCQkJICIwMjYzIERpc2NvdmVyeSBNYWlsYm94IGVycm9yOiBzdGF0ZTogMHgleCA6IHglcHggeCVweFxuIiwKIAkJCSB2cG9ydC0+cG9ydF9zdGF0ZSwgc3BhcmFtX21ib3gsIGNmZ2xpbmtfbWJveCk7CiAJbHBmY19pc3N1ZV9jbGVhcl9sYShwaGJhLCB2cG9ydCk7CiAJcmV0dXJuOwpAQCAtMzM2Niw2ICszMzcxLDcgQEAgbHBmY19tYnhfY21wbF9yZWFkX3RvcG9sb2d5KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgTFBGQ19NQk9YUV90ICpwbWIpCiAJTUFJTEJPWF90ICptYiA9ICZwbWItPnUubWI7CiAJc3RydWN0IGxwZmNfZG1hYnVmICptcCA9IChzdHJ1Y3QgbHBmY19kbWFidWYgKikocG1iLT5jdHhfYnVmKTsKIAl1aW50OF90IGF0dG5fdHlwZTsKKwl1bnNpZ25lZCBsb25nIGlmbGFnczsKIAogCS8qIFVuYmxvY2sgRUxTIHRyYWZmaWMgKi8KIAlwcmluZyA9IGxwZmNfcGhiYV9lbHNyaW5nKHBoYmEpOwpAQCAtMzM4NywxMiArMzM5MywxMiBAQCBscGZjX21ieF9jbXBsX3JlYWRfdG9wb2xvZ3koc3RydWN0IGxwZmNfaGJhICpwaGJhLCBMUEZDX01CT1hRX3QgKnBtYikKIAogCW1lbWNweSgmcGhiYS0+YWxwYV9tYXBbMF0sIG1wLT52aXJ0LCAxMjgpOwogCi0Jc3Bpbl9sb2NrX2lycShzaG9zdC0+aG9zdF9sb2NrKTsKKwlzcGluX2xvY2tfaXJxc2F2ZShzaG9zdC0+aG9zdF9sb2NrLCBpZmxhZ3MpOwogCWlmIChiZl9nZXQobHBmY19tYnhfcmVhZF90b3BfcGIsIGxhKSkKIAkJdnBvcnQtPmZjX2ZsYWcgfD0gRkNfQllQQVNTRURfTU9ERTsKIAllbHNlCiAJCXZwb3J0LT5mY19mbGFnICY9IH5GQ19CWVBBU1NFRF9NT0RFOwotCXNwaW5fdW5sb2NrX2lycShzaG9zdC0+aG9zdF9sb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNob3N0LT5ob3N0X2xvY2ssIGlmbGFncyk7CiAKIAlpZiAocGhiYS0+ZmNfZXZlbnRUYWcgPD0gbGEtPmV2ZW50VGFnKSB7CiAJCXBoYmEtPmZjX3N0YXQuTGlua011bHRpRXZlbnQrKzsKQEAgLTM0MDMsMTIgKzM0MDksMTIgQEAgbHBmY19tYnhfY21wbF9yZWFkX3RvcG9sb2d5KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgTFBGQ19NQk9YUV90ICpwbWIpCiAKIAlwaGJhLT5mY19ldmVudFRhZyA9IGxhLT5ldmVudFRhZzsKIAlpZiAocGhiYS0+c2xpX3JldiA8IExQRkNfU0xJX1JFVjQpIHsKLQkJc3Bpbl9sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZwaGJhLT5oYmFsb2NrLCBpZmxhZ3MpOwogCQlpZiAoYmZfZ2V0KGxwZmNfbWJ4X3JlYWRfdG9wX21tLCBsYSkpCiAJCQlwaGJhLT5zbGkuc2xpX2ZsYWcgfD0gTFBGQ19NRU5MT19NQUlOVDsKIAkJZWxzZQogCQkJcGhiYS0+c2xpLnNsaV9mbGFnICY9IH5MUEZDX01FTkxPX01BSU5UOwotCQlzcGluX3VubG9ja19pcnEoJnBoYmEtPmhiYWxvY2spOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaGJhLT5oYmFsb2NrLCBpZmxhZ3MpOwogCX0KIAogCXBoYmEtPmxpbmtfZXZlbnRzKys7CkBAIC0zNTI5LDcgKzM1MzUsNyBAQCBscGZjX21ieF9jbXBsX3JlZ19sb2dpbihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIExQRkNfTUJPWFFfdCAqcG1iKQogCXBtYi0+Y3R4X25kbHAgPSBOVUxMOwogCiAJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfU0xJLAotCQkJICIwMDAyIHJwaToleCBESUQ6JXggZmxnOiV4ICVkIG1hcDoleCAlcFxuIiwKKwkJCSAiMDAwMiBycGk6JXggRElEOiV4IGZsZzoleCAlZCBtYXA6JXggeCVweFxuIiwKIAkJCSBuZGxwLT5ubHBfcnBpLCBuZGxwLT5ubHBfRElELCBuZGxwLT5ubHBfZmxhZywKIAkJCSBrcmVmX3JlYWQoJm5kbHAtPmtyZWYpLAogCQkJIG5kbHAtPm5scF91c2dfbWFwLCBuZGxwKTsKQEAgLTQwNDEsNyArNDA0Nyw3IEBAIGxwZmNfbWJ4X2NtcGxfbnNfcmVnX2xvZ2luKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgTFBGQ19NQk9YUV90ICpwbWIpCiAJbmRscC0+bmxwX3R5cGUgfD0gTkxQX0ZBQlJJQzsKIAlscGZjX25scF9zZXRfc3RhdGUodnBvcnQsIG5kbHAsIE5MUF9TVEVfVU5NQVBQRURfTk9ERSk7CiAJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfU0xJLAotCQkJICIwMDAzIHJwaToleCBESUQ6JXggZmxnOiV4ICVkIG1hcCV4ICVwXG4iLAorCQkJICIwMDAzIHJwaToleCBESUQ6JXggZmxnOiV4ICVkIG1hcCV4IHglcHhcbiIsCiAJCQkgbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX2ZsYWcsCiAJCQkga3JlZl9yZWFkKCZuZGxwLT5rcmVmKSwKIAkJCSBuZGxwLT5ubHBfdXNnX21hcCwgbmRscCk7CkBAIC00MTYwLDcgKzQxNjYsNyBAQCBscGZjX3JlZ2lzdGVyX3JlbW90ZV9wb3J0KHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgc3RydWN0IGxwZmNfbm9kZWxpc3QgKm5kbHApCiAJCWZjX3JlbW90ZV9wb3J0X3JvbGVjaGcocnBvcnQsIHJwb3J0X2lkcy5yb2xlcyk7CiAKIAlscGZjX3ByaW50Zl92bG9nKG5kbHAtPnZwb3J0LCBLRVJOX0lORk8sIExPR19OT0RFLAotCQkJICIzMTgzIHJwb3J0IHJlZ2lzdGVyIHglMDZ4LCBycG9ydCAlcCByb2xlIHgleFxuIiwKKwkJCSAiMzE4MyBycG9ydCByZWdpc3RlciB4JTA2eCwgcnBvcnQgeCVweCByb2xlIHgleFxuIiwKIAkJCSBuZGxwLT5ubHBfRElELCBycG9ydCwgcnBvcnRfaWRzLnJvbGVzKTsKIAogCWlmICgocnBvcnQtPnNjc2lfdGFyZ2V0X2lkICE9IC0xKSAmJgpAQCAtNDE4NCw3ICs0MTkwLDcgQEAgbHBmY191bnJlZ2lzdGVyX3JlbW90ZV9wb3J0KHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCQluZGxwLT5ubHBfRElELCBuZGxwLT5ubHBfZmxhZywgbmRscC0+bmxwX3R5cGUpOwogCiAJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfTk9ERSwKLQkJCSAiMzE4NCBycG9ydCB1bnJlZ2lzdGVyIHglMDZ4LCBycG9ydCAlcFxuIiwKKwkJCSAiMzE4NCBycG9ydCB1bnJlZ2lzdGVyIHglMDZ4LCBycG9ydCB4JXB4XG4iLAogCQkJIG5kbHAtPm5scF9ESUQsIHJwb3J0KTsKIAogCWZjX3JlbW90ZV9wb3J0X2RlbGV0ZShycG9ydCk7CkBAIC00MTk2LDggKzQyMDIsOSBAQCBzdGF0aWMgdm9pZAogbHBmY19ubHBfY291bnRlcnMoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBpbnQgc3RhdGUsIGludCBjb3VudCkKIHsKIAlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IGxwZmNfc2hvc3RfZnJvbV92cG9ydCh2cG9ydCk7CisJdW5zaWduZWQgbG9uZyBpZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOworCXNwaW5fbG9ja19pcnFzYXZlKHNob3N0LT5ob3N0X2xvY2ssIGlmbGFncyk7CiAJc3dpdGNoIChzdGF0ZSkgewogCWNhc2UgTkxQX1NURV9VTlVTRURfTk9ERToKIAkJdnBvcnQtPmZjX3VudXNlZF9jbnQgKz0gY291bnQ7CkBAIC00MjI3LDcgKzQyMzQsNyBAQCBscGZjX25scF9jb3VudGVycyhzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIGludCBzdGF0ZSwgaW50IGNvdW50KQogCQkJdnBvcnQtPmZjX25wcl9jbnQgKz0gY291bnQ7CiAJCWJyZWFrOwogCX0KLQlzcGluX3VubG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzaG9zdC0+aG9zdF9sb2NrLCBpZmxhZ3MpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNDQ4MCw5ICs0NDg3LDIxIEBAIGxwZmNfZW5hYmxlX25vZGUoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCwKIAkJcmV0dXJuIE5VTEw7CiAKIAlpZiAocGhiYS0+c2xpX3JldiA9PSBMUEZDX1NMSV9SRVY0KSB7Ci0JCXJwaSA9IGxwZmNfc2xpNF9hbGxvY19ycGkodnBvcnQtPnBoYmEpOwotCQlpZiAocnBpID09IExQRkNfUlBJX0FMTE9DX0VSUk9SKQorCQlpZiAobmRscC0+bmxwX3JwaSA9PSBMUEZDX1JQSV9BTExPQ19FUlJPUikKKwkJCXJwaSA9IGxwZmNfc2xpNF9hbGxvY19ycGkodnBvcnQtPnBoYmEpOworCQllbHNlCisJCQlycGkgPSBuZGxwLT5ubHBfcnBpOworCisJCWlmIChycGkgPT0gTFBGQ19SUElfQUxMT0NfRVJST1IpIHsKKwkJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fV0FSTklORywgTE9HX05PREUsCisJCQkJCSAiMDM1OSAlczogbmRscDp4JXB4ICIKKwkJCQkJICJ1c2dtYXA6eCV4IHJlZmNudDolZCBGQUlMRUQgUlBJICIKKwkJCQkJICIgQUxMT0NcbiIsCisJCQkJCSBfX2Z1bmNfXywKKwkJCQkJICh2b2lkICopbmRscCwgbmRscC0+bmxwX3VzZ19tYXAsCisJCQkJCSBrcmVmX3JlYWQoJm5kbHAtPmtyZWYpKTsKIAkJCXJldHVybiBOVUxMOworCQl9CiAJfQogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnBoYmEtPm5kbHBfbG9jaywgZmxhZ3MpOwpAQCAtNDQ5MCw5ICs0NTA5LDkgQEAgbHBmY19lbmFibGVfbm9kZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwLAogCWlmIChOTFBfQ0hLX0ZSRUVfUkVRKG5kbHApKSB7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBoYmEtPm5kbHBfbG9jaywgZmxhZ3MpOwogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX1dBUk5JTkcsIExPR19OT0RFLAotCQkJCSIwMjc3IGxwZmNfZW5hYmxlX25vZGU6IG5kbHA6eCVwICIKKwkJCQkiMDI3NyAlczogbmRscDp4JXB4ICIKIAkJCQkidXNnbWFwOngleCByZWZjbnQ6JWRcbiIsCi0JCQkJKHZvaWQgKiluZGxwLCBuZGxwLT5ubHBfdXNnX21hcCwKKwkJCQlfX2Z1bmNfXywgKHZvaWQgKiluZGxwLCBuZGxwLT5ubHBfdXNnX21hcCwKIAkJCQlrcmVmX3JlYWQoJm5kbHAtPmtyZWYpKTsKIAkJZ290byBmcmVlX3JwaTsKIAl9CkBAIC00NTAwLDkgKzQ1MTksOSBAQCBscGZjX2VuYWJsZV9ub2RlKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgc3RydWN0IGxwZmNfbm9kZWxpc3QgKm5kbHAsCiAJaWYgKE5MUF9DSEtfTk9ERV9BQ1QobmRscCkpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGhiYS0+bmRscF9sb2NrLCBmbGFncyk7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fV0FSTklORywgTE9HX05PREUsCi0JCQkJIjAyNzggbHBmY19lbmFibGVfbm9kZTogbmRscDp4JXAgIgorCQkJCSIwMjc4ICVzOiBuZGxwOnglcHggIgogCQkJCSJ1c2dtYXA6eCV4IHJlZmNudDolZFxuIiwKLQkJCQkodm9pZCAqKW5kbHAsIG5kbHAtPm5scF91c2dfbWFwLAorCQkJCV9fZnVuY19fLCAodm9pZCAqKW5kbHAsIG5kbHAtPm5scF91c2dfbWFwLAogCQkJCWtyZWZfcmVhZCgmbmRscC0+a3JlZikpOwogCQlnb3RvIGZyZWVfcnBpOwogCX0KQEAgLTQ1MzIsNyArNDU1MSw3IEBAIGxwZmNfZW5hYmxlX25vZGUoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCwKIAkJbmRscC0+bmxwX3JwaSA9IHJwaTsKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfTk9ERSwKIAkJCQkgIjAwMDggcnBpOiV4IERJRDoleCBmbGc6JXggcmVmY250OiVkICIKLQkJCQkgIm1hcDoleCAlcFxuIiwgbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX0RJRCwKKwkJCQkgIm1hcDoleCB4JXB4XG4iLCBuZGxwLT5ubHBfcnBpLCBuZGxwLT5ubHBfRElELAogCQkJCSBuZGxwLT5ubHBfZmxhZywKIAkJCQkga3JlZl9yZWFkKCZuZGxwLT5rcmVmKSwKIAkJCQkgbmRscC0+bmxwX3VzZ19tYXAsIG5kbHApOwpAQCAtNDU0MSw2ICs0NTYwLDE0IEBAIGxwZmNfZW5hYmxlX25vZGUoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCwKIAogCWlmIChzdGF0ZSAhPSBOTFBfU1RFX1VOVVNFRF9OT0RFKQogCQlscGZjX25scF9zZXRfc3RhdGUodnBvcnQsIG5kbHAsIHN0YXRlKTsKKwllbHNlCisJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05PREUsCisJCQkJICIwMDEzIHJwaToleCBESUQ6JXggZmxnOiV4IHJlZmNudDolZCAiCisJCQkJICJtYXA6JXggeCVweCBTVEFURT1VTlVTRURcbiIsCisJCQkJIG5kbHAtPm5scF9ycGksIG5kbHAtPm5scF9ESUQsCisJCQkJIG5kbHAtPm5scF9mbGFnLAorCQkJCSBrcmVmX3JlYWQoJm5kbHAtPmtyZWYpLAorCQkJCSBuZGxwLT5ubHBfdXNnX21hcCwgbmRscCk7CiAKIAlscGZjX2RlYnVnZnNfZGlzY190cmModnBvcnQsIExQRkNfRElTQ19UUkNfTk9ERSwKIAkJIm5vZGUgZW5hYmxlOiAgICAgICBkaWQ6eCV4IiwKQEAgLTQ3OTcsNyArNDgyNCw3IEBAIGxwZmNfbmxwX2xvZ29fdW5yZWcoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBMUEZDX01CT1hRX3QgKnBtYikKIAkgICAgKG5kbHAtPm5scF9kZWZlcl9kaWQgIT0gTkxQX0VWVF9OT1RISU5HX1BFTkRJTkcpKSB7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX0RJU0NPVkVSWSwKIAkJCQkgIjE0MzQgVU5SRUcgY21wbCBkZWZlcnJlZCBsb2dvIHgleCAiCi0JCQkJICJvbiBOUG9ydCB4JXggRGF0YTogeCV4ICVwXG4iLAorCQkJCSAib24gTlBvcnQgeCV4IERhdGE6IHgleCB4JXB4XG4iLAogCQkJCSBuZGxwLT5ubHBfcnBpLCBuZGxwLT5ubHBfRElELAogCQkJCSBuZGxwLT5ubHBfZGVmZXJfZGlkLCBuZGxwKTsKIApAQCAtNDgwNSw2ICs0ODMyLDEwIEBAIGxwZmNfbmxwX2xvZ29fdW5yZWcoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBMUEZDX01CT1hRX3QgKnBtYikKIAkJbmRscC0+bmxwX2RlZmVyX2RpZCA9IE5MUF9FVlRfTk9USElOR19QRU5ESU5HOwogCQlscGZjX2lzc3VlX2Vsc19wbG9naSh2cG9ydCwgbmRscC0+bmxwX0RJRCwgMCk7CiAJfSBlbHNlIHsKKwkJaWYgKG5kbHAtPm5scF9mbGFnICYgTkxQX1JFTEVBU0VfUlBJKSB7CisJCQlscGZjX3NsaTRfZnJlZV9ycGkodnBvcnQtPnBoYmEsIG5kbHAtPm5scF9ycGkpOworCQkJbmRscC0+bmxwX2ZsYWcgJj0gfk5MUF9SRUxFQVNFX1JQSTsKKwkJfQogCQluZGxwLT5ubHBfZmxhZyAmPSB+TkxQX1VOUkVHX0lOUDsKIAl9CiB9CkBAIC00ODQzLDcgKzQ4NzQsNyBAQCBscGZjX3VucmVnX3JwaShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfRElTQ09WRVJZLAogCQkJCQkgIjE0MzYgdW5yZWdfcnBpIFNLSVAgVU5SRUcgeCV4IG9uICIKIAkJCQkJICJOUG9ydCB4JXggZGVmZXJyZWQgeCV4ICBmbGcgeCV4ICIKLQkJCQkJICJEYXRhOiAlcFxuIiwKKwkJCQkJICJEYXRhOiB4JXB4XG4iLAogCQkJCQkgbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX0RJRCwKIAkJCQkJIG5kbHAtPm5scF9kZWZlcl9kaWQsCiAJCQkJCSBuZGxwLT5ubHBfZmxhZywgbmRscCk7CkBAIC00ODkzLDcgKzQ5MjQsOCBAQCBscGZjX3VucmVnX3JwaShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCiAJCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19ESVNDT1ZFUlksCiAJCQkJCSAiMTQzMyB1bnJlZ19ycGkgVU5SRUcgeCV4IG9uICIKLQkJCQkJICJOUG9ydCB4JXggZGVmZXJyZWQgZmxnIHgleCBEYXRhOiVwXG4iLAorCQkJCQkgIk5Qb3J0IHgleCBkZWZlcnJlZCBmbGcgeCV4ICIKKwkJCQkJICJEYXRhOnglcHhcbiIsCiAJCQkJCSBuZGxwLT5ubHBfcnBpLCBuZGxwLT5ubHBfRElELAogCQkJCQkgbmRscC0+bmxwX2ZsYWcsIG5kbHApOwogCkBAIC01MDM0LDE2ICs1MDY2LDE2IEBAIGxwZmNfY2xlYW51cF9ub2RlKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgc3RydWN0IGxwZmNfbm9kZWxpc3QgKm5kbHApCiAJCQkgbmRscC0+bmxwX3N0YXRlLCBuZGxwLT5ubHBfcnBpKTsKIAlpZiAoTkxQX0NIS19GUkVFX1JFUShuZGxwKSkgewogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX1dBUk5JTkcsIExPR19OT0RFLAotCQkJCSIwMjgwIGxwZmNfY2xlYW51cF9ub2RlOiBuZGxwOnglcCAiCisJCQkJIjAyODAgJXM6IG5kbHA6eCVweCAiCiAJCQkJInVzZ21hcDp4JXggcmVmY250OiVkXG4iLAotCQkJCSh2b2lkICopbmRscCwgbmRscC0+bmxwX3VzZ19tYXAsCisJCQkJX19mdW5jX18sICh2b2lkICopbmRscCwgbmRscC0+bmxwX3VzZ19tYXAsCiAJCQkJa3JlZl9yZWFkKCZuZGxwLT5rcmVmKSk7CiAJCWxwZmNfZGVxdWV1ZV9ub2RlKHZwb3J0LCBuZGxwKTsKIAl9IGVsc2UgewogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX1dBUk5JTkcsIExPR19OT0RFLAotCQkJCSIwMjgxIGxwZmNfY2xlYW51cF9ub2RlOiBuZGxwOnglcCAiCisJCQkJIjAyODEgJXM6IG5kbHA6eCVweCAiCiAJCQkJInVzZ21hcDp4JXggcmVmY250OiVkXG4iLAotCQkJCSh2b2lkICopbmRscCwgbmRscC0+bmxwX3VzZ19tYXAsCisJCQkJX19mdW5jX18sICh2b2lkICopbmRscCwgbmRscC0+bmxwX3VzZ19tYXAsCiAJCQkJa3JlZl9yZWFkKCZuZGxwLT5rcmVmKSk7CiAJCWxwZmNfZGlzYWJsZV9ub2RlKHZwb3J0LCBuZGxwKTsKIAl9CkBAIC01MTA0LDYgKzUxMzYsOCBAQCBscGZjX2NsZWFudXBfbm9kZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCWxpc3RfZGVsX2luaXQoJm5kbHAtPmVsc19yZXRyeV9ldnQuZXZ0X2xpc3RwKTsKIAlsaXN0X2RlbF9pbml0KCZuZGxwLT5kZXZfbG9zc19ldnQuZXZ0X2xpc3RwKTsKIAlscGZjX2NsZWFudXBfdnBvcnRzX3JycXModnBvcnQsIG5kbHApOworCWlmIChwaGJhLT5zbGlfcmV2ID09IExQRkNfU0xJX1JFVjQpCisJCW5kbHAtPm5scF9mbGFnIHw9IE5MUF9SRUxFQVNFX1JQSTsKIAlscGZjX3VucmVnX3JwaSh2cG9ydCwgbmRscCk7CiAKIAlyZXR1cm4gMDsKQEAgLTUxMzIsNyArNTE2Niw3IEBAIGxwZmNfbmxwX3JlbW92ZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCQkgKiBhbGxvY2F0ZWQgYnkgdGhlIGZpcm13YXJlLgogCQkgKi8KIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfTk9ERSwKLQkJCQkgIjAwMDUgcnBpOiV4IERJRDoleCBmbGc6JXggJWQgbWFwOiV4ICVwXG4iLAorCQkJCSAiMDAwNSBycGk6JXggRElEOiV4IGZsZzoleCAlZCBtYXA6JXggeCVweFxuIiwKIAkJCQkgbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX2ZsYWcsCiAJCQkJIGtyZWZfcmVhZCgmbmRscC0+a3JlZiksCiAJCQkJIG5kbHAtPm5scF91c2dfbWFwLCBuZGxwKTsKQEAgLTUxNjgsOCArNTIwMiw4IEBAIGxwZmNfbmxwX3JlbW92ZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCQkgKiBmb3IgcmVnaXN0ZXJlZCBycG9ydCBzbyBuZWVkIHRvIGNsZWFudXAgcnBvcnQKIAkJICovCiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fV0FSTklORywgTE9HX05PREUsCi0JCQkJIjA5NDAgcmVtb3ZlZCBub2RlIHglcCBESUQgeCV4ICIKLQkJCQkiIHJwb3J0IG5vdCBudWxsICVwXG4iLAorCQkJCSIwOTQwIHJlbW92ZWQgbm9kZSB4JXB4IERJRCB4JXggIgorCQkJCSIgcnBvcnQgbm90IG51bGwgeCVweFxuIiwKIAkJCQluZGxwLCBuZGxwLT5ubHBfRElELCBuZGxwLT5ycG9ydCk7CiAJCXJwb3J0ID0gbmRscC0+cnBvcnQ7CiAJCXJkYXRhID0gcnBvcnQtPmRkX2RhdGE7CkBAIC01MjQzLDE1ICs1Mjc3LDE1IEBAIF9fbHBmY19maW5kbm9kZV9kaWQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCB1aW50MzJfdCBkaWQpCiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5kbHAsICZ2cG9ydC0+ZmNfbm9kZXMsIG5scF9saXN0cCkgewogCQlpZiAobHBmY19tYXRjaGRpZCh2cG9ydCwgbmRscCwgZGlkKSkgewotCQkJZGF0YTEgPSAoKCh1aW50MzJfdCkgbmRscC0+bmxwX3N0YXRlIDw8IDI0KSB8Ci0JCQkJICgodWludDMyX3QpIG5kbHAtPm5scF94cmkgPDwgMTYpIHwKLQkJCQkgKCh1aW50MzJfdCkgbmRscC0+bmxwX3R5cGUgPDwgOCkgfAotCQkJCSAoKHVpbnQzMl90KSBuZGxwLT5ubHBfcnBpICYgMHhmZikpOworCQkJZGF0YTEgPSAoKCh1aW50MzJfdCluZGxwLT5ubHBfc3RhdGUgPDwgMjQpIHwKKwkJCQkgKCh1aW50MzJfdCluZGxwLT5ubHBfeHJpIDw8IDE2KSB8CisJCQkJICgodWludDMyX3QpbmRscC0+bmxwX3R5cGUgPDwgOCkgfAorCQkJCSAoKHVpbnQzMl90KW5kbHAtPm5scF91c2dfbWFwICYgMHhmZikpOwogCQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfTk9ERSwKIAkJCQkJICIwOTI5IEZJTkQgbm9kZSBESUQgIgotCQkJCQkgIkRhdGE6IHglcCB4JXggeCV4IHgleCAlcFxuIiwKKwkJCQkJICJEYXRhOiB4JXB4IHgleCB4JXggeCV4IHgleCB4JXB4XG4iLAogCQkJCQkgbmRscCwgbmRscC0+bmxwX0RJRCwKLQkJCQkJIG5kbHAtPm5scF9mbGFnLCBkYXRhMSwKKwkJCQkJIG5kbHAtPm5scF9mbGFnLCBkYXRhMSwgbmRscC0+bmxwX3JwaSwKIAkJCQkJIG5kbHAtPmFjdGl2ZV9ycnFzX3hyaV9iaXRtYXApOwogCQkJcmV0dXJuIG5kbHA7CiAJCX0KQEAgLTUyOTYsNyArNTMzMCw3IEBAIGxwZmNfZmluZG5vZGVfbWFwcGVkKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCkKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2hvc3QtPmhvc3RfbG9jaywgaWZsYWdzKTsKIAkJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05PREUsCiAJCQkJCSAiMjAyNSBGSU5EIG5vZGUgRElEICIKLQkJCQkJICJEYXRhOiB4JXAgeCV4IHgleCB4JXggJXBcbiIsCisJCQkJCSAiRGF0YTogeCVweCB4JXggeCV4IHgleCB4JXB4XG4iLAogCQkJCQkgbmRscCwgbmRscC0+bmxwX0RJRCwKIAkJCQkJIG5kbHAtPm5scF9mbGFnLCBkYXRhMSwKIAkJCQkJIG5kbHAtPmFjdGl2ZV9ycnFzX3hyaV9iaXRtYXApOwpAQCAtNTMzNiw4ICs1MzcwLDExIEBAIGxwZmNfc2V0dXBfZGlzY19ub2RlKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgdWludDMyX3QgZGlkKQogCQlpZiAodnBvcnQtPnBoYmEtPm52bWV0X3N1cHBvcnQpCiAJCQlyZXR1cm4gTlVMTDsKIAkJbmRscCA9IGxwZmNfZW5hYmxlX25vZGUodnBvcnQsIG5kbHAsIE5MUF9TVEVfTlBSX05PREUpOwotCQlpZiAoIW5kbHApCisJCWlmICghbmRscCkgeworCQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9XQVJOSU5HLCBMT0dfU0xJLAorCQkJCQkgIjAwMTQgQ291bGQgbm90IGVuYWJsZSBuZGxwXG4iKTsKIAkJCXJldHVybiBOVUxMOworCQl9CiAJCXNwaW5fbG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CiAJCW5kbHAtPm5scF9mbGFnIHw9IE5MUF9OUFJfMkJfRElTQzsKIAkJc3Bpbl91bmxvY2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOwpAQCAtNTk2MCw3ICs1OTk3LDcgQEAgbHBmY19tYnhfY21wbF9mZG1pX3JlZ19sb2dpbihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIExQRkNfTUJPWFFfdCAqcG1iKQogCW5kbHAtPm5scF90eXBlIHw9IE5MUF9GQUJSSUM7CiAJbHBmY19ubHBfc2V0X3N0YXRlKHZwb3J0LCBuZGxwLCBOTFBfU1RFX1VOTUFQUEVEX05PREUpOwogCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX1NMSSwKLQkJCSAiMDAwNCBycGk6JXggRElEOiV4IGZsZzoleCAlZCBtYXA6JXggJXBcbiIsCisJCQkgIjAwMDQgcnBpOiV4IERJRDoleCBmbGc6JXggJWQgbWFwOiV4IHglcHhcbiIsCiAJCQkgbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX2ZsYWcsCiAJCQkga3JlZl9yZWFkKCZuZGxwLT5rcmVmKSwKIAkJCSBuZGxwLT5ubHBfdXNnX21hcCwgbmRscCk7CkBAIC02MDE0LDggKzYwNTEsOCBAQCBfX2xwZmNfZmluZF9ub2RlKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgbm9kZV9maWx0ZXIgZmlsdGVyLCB2b2lkICpwYXJhbSkKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5kbHAsICZ2cG9ydC0+ZmNfbm9kZXMsIG5scF9saXN0cCkgewogCQlpZiAoZmlsdGVyKG5kbHAsIHBhcmFtKSkgewogCQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfTk9ERSwKLQkJCQkJICIzMTg1IEZJTkQgbm9kZSBmaWx0ZXIgJXAgRElEICIKLQkJCQkJICJuZGxwICVwIGRpZCB4JXggZmxnIHgleCBzdCB4JXggIgorCQkJCQkgIjMxODUgRklORCBub2RlIGZpbHRlciAlcHMgRElEICIKKwkJCQkJICJuZGxwIHglcHggZGlkIHgleCBmbGcgeCV4IHN0IHgleCAiCiAJCQkJCSAieHJpIHgleCB0eXBlIHgleCBycGkgeCV4XG4iLAogCQkJCQkgZmlsdGVyLCBuZGxwLCBuZGxwLT5ubHBfRElELAogCQkJCQkgbmRscC0+bmxwX2ZsYWcsIG5kbHAtPm5scF9zdGF0ZSwKQEAgLTYwMjUsNyArNjA2Miw3IEBAIF9fbHBmY19maW5kX25vZGUoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBub2RlX2ZpbHRlciBmaWx0ZXIsIHZvaWQgKnBhcmFtKQogCQl9CiAJfQogCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05PREUsCi0JCQkgIjMxODYgRklORCBub2RlIGZpbHRlciAlcCBOT1QgRk9VTkQuXG4iLCBmaWx0ZXIpOworCQkJICIzMTg2IEZJTkQgbm9kZSBmaWx0ZXIgJXBzIE5PVCBGT1VORC5cbiIsIGZpbHRlcik7CiAJcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTYwNjUsMTAgKzYxMDIsMTEgQEAgbHBmY19maW5kbm9kZV9ycGkoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCB1aW50MTZfdCBycGkpCiB7CiAJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBscGZjX3Nob3N0X2Zyb21fdnBvcnQodnBvcnQpOwogCXN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOworCXNwaW5fbG9ja19pcnFzYXZlKHNob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKIAluZGxwID0gX19scGZjX2ZpbmRub2RlX3JwaSh2cG9ydCwgcnBpKTsKLQlzcGluX3VubG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiAJcmV0dXJuIG5kbHA7CiB9CiAKQEAgLTYxNDksNyArNjE4Nyw3IEBAIGxwZmNfbmxwX2luaXQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCB1aW50MzJfdCBkaWQpCiAJCW5kbHAtPm5scF9ycGkgPSBycGk7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05PREUsCiAJCQkJICIwMDA3IHJwaToleCBESUQ6JXggZmxnOiV4IHJlZmNudDolZCAiCi0JCQkJICJtYXA6JXggJXBcbiIsIG5kbHAtPm5scF9ycGksIG5kbHAtPm5scF9ESUQsCisJCQkJICJtYXA6JXggeCVweFxuIiwgbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX0RJRCwKIAkJCQkgbmRscC0+bmxwX2ZsYWcsCiAJCQkJIGtyZWZfcmVhZCgmbmRscC0+a3JlZiksCiAJCQkJIG5kbHAtPm5scF91c2dfbWFwLCBuZGxwKTsKQEAgLTYxODcsOCArNjIyNSw5IEBAIGxwZmNfbmxwX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCiAJCW5kbHAtPm5scF9ESUQsIG5kbHAtPm5scF9mbGFnLCBuZGxwLT5ubHBfdHlwZSk7CiAKIAlscGZjX3ByaW50Zl92bG9nKG5kbHAtPnZwb3J0LCBLRVJOX0lORk8sIExPR19OT0RFLAotCQkJIjAyNzkgbHBmY19ubHBfcmVsZWFzZTogbmRscDp4JXAgZGlkICV4ICIKKwkJCSIwMjc5ICVzOiBuZGxwOnglcHggZGlkICV4ICIKIAkJCSJ1c2dtYXA6eCV4IHJlZmNudDolZCBycGk6JXhcbiIsCisJCQlfX2Z1bmNfXywKIAkJCSh2b2lkICopbmRscCwgbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX3VzZ19tYXAsCiAJCQlrcmVmX3JlYWQoJm5kbHAtPmtyZWYpLCBuZGxwLT5ubHBfcnBpKTsKIApAQCAtNjIwMCw4ICs2MjM5LDYgQEAgbHBmY19ubHBfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZikKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcGhiYS0+bmRscF9sb2NrLCBmbGFncyk7CiAJTkxQX0NMUl9OT0RFX0FDVChuZGxwKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaGJhLT5uZGxwX2xvY2ssIGZsYWdzKTsKLQlpZiAocGhiYS0+c2xpX3JldiA9PSBMUEZDX1NMSV9SRVY0KQotCQlscGZjX3NsaTRfZnJlZV9ycGkocGhiYSwgbmRscC0+bmxwX3JwaSk7CiAKIAkvKiBmcmVlIG5kbHAgbWVtb3J5IGZvciBmaW5hbCBuZGxwIHJlbGVhc2UgKi8KIAlpZiAoTkxQX0NIS19GUkVFX1JFUShuZGxwKSkgewpAQCAtNjIzNyw5ICs2Mjc0LDkgQEAgbHBmY19ubHBfZ2V0KHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCQlpZiAoIU5MUF9DSEtfTk9ERV9BQ1QobmRscCkgfHwgTkxQX0NIS19GUkVFX0FDSyhuZGxwKSkgewogCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGhiYS0+bmRscF9sb2NrLCBmbGFncyk7CiAJCQlscGZjX3ByaW50Zl92bG9nKG5kbHAtPnZwb3J0LCBLRVJOX1dBUk5JTkcsIExPR19OT0RFLAotCQkJCSIwMjc2IGxwZmNfbmxwX2dldDogbmRscDp4JXAgIgorCQkJCSIwMjc2ICVzOiBuZGxwOnglcHggIgogCQkJCSJ1c2dtYXA6eCV4IHJlZmNudDolZFxuIiwKLQkJCQkodm9pZCAqKW5kbHAsIG5kbHAtPm5scF91c2dfbWFwLAorCQkJCV9fZnVuY19fLCAodm9pZCAqKW5kbHAsIG5kbHAtPm5scF91c2dfbWFwLAogCQkJCWtyZWZfcmVhZCgmbmRscC0+a3JlZikpOwogCQkJcmV0dXJuIE5VTEw7CiAJCX0gZWxzZQpAQCAtNjI2NSw5ICs2MzAyLDkgQEAgbHBmY19ubHBfcHV0KHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCQlyZXR1cm4gMTsKIAogCWxwZmNfZGVidWdmc19kaXNjX3RyYyhuZGxwLT52cG9ydCwgTFBGQ19ESVNDX1RSQ19OT0RFLAotCSJub2RlIHB1dDogICAgICAgIGRpZDp4JXggZmxnOngleCByZWZjbnQ6eCV4IiwKLQkJbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX2ZsYWcsCi0JCWtyZWZfcmVhZCgmbmRscC0+a3JlZikpOworCQkJIm5vZGUgcHV0OiAgICAgICAgZGlkOngleCBmbGc6eCV4IHJlZmNudDp4JXgiLAorCQkJbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX2ZsYWcsCisJCQlrcmVmX3JlYWQoJm5kbHAtPmtyZWYpKTsKIAlwaGJhID0gbmRscC0+cGhiYTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcGhiYS0+bmRscF9sb2NrLCBmbGFncyk7CiAJLyogQ2hlY2sgdGhlIG5kbHAgbWVtb3J5IGZyZWUgYWNrbm93bGVkZ2UgZmxhZyB0byBhdm9pZCB0aGUKQEAgLTYyNzcsOSArNjMxNCw5IEBAIGxwZmNfbmxwX3B1dChzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCkKIAlpZiAoTkxQX0NIS19GUkVFX0FDSyhuZGxwKSkgewogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaGJhLT5uZGxwX2xvY2ssIGZsYWdzKTsKIAkJbHBmY19wcmludGZfdmxvZyhuZGxwLT52cG9ydCwgS0VSTl9XQVJOSU5HLCBMT0dfTk9ERSwKLQkJCQkiMDI3NCBscGZjX25scF9wdXQ6IG5kbHA6eCVwICIKKwkJCQkiMDI3NCAlczogbmRscDp4JXB4ICIKIAkJCQkidXNnbWFwOngleCByZWZjbnQ6JWRcbiIsCi0JCQkJKHZvaWQgKiluZGxwLCBuZGxwLT5ubHBfdXNnX21hcCwKKwkJCQlfX2Z1bmNfXywgKHZvaWQgKiluZGxwLCBuZGxwLT5ubHBfdXNnX21hcCwKIAkJCQlrcmVmX3JlYWQoJm5kbHAtPmtyZWYpKTsKIAkJcmV0dXJuIDE7CiAJfQpAQCAtNjI5MCw5ICs2MzI3LDkgQEAgbHBmY19ubHBfcHV0KHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCWlmIChOTFBfQ0hLX0lBQ1RfUkVRKG5kbHApKSB7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBoYmEtPm5kbHBfbG9jaywgZmxhZ3MpOwogCQlscGZjX3ByaW50Zl92bG9nKG5kbHAtPnZwb3J0LCBLRVJOX1dBUk5JTkcsIExPR19OT0RFLAotCQkJCSIwMjc1IGxwZmNfbmxwX3B1dDogbmRscDp4JXAgIgorCQkJCSIwMjc1ICVzOiBuZGxwOnglcHggIgogCQkJCSJ1c2dtYXA6eCV4IHJlZmNudDolZFxuIiwKLQkJCQkodm9pZCAqKW5kbHAsIG5kbHAtPm5scF91c2dfbWFwLAorCQkJCV9fZnVuY19fLCAodm9pZCAqKW5kbHAsIG5kbHAtPm5scF91c2dfbWFwLAogCQkJCWtyZWZfcmVhZCgmbmRscC0+a3JlZikpOwogCQlyZXR1cm4gMTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2h3LmggYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2h3LmgKaW5kZXggNWI0MzlhNi4uNDM2Y2RjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19ody5oCisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfaHcuaApAQCAtODQzLDcgKzg0Myw3IEBAIHR5cGVkZWYgc3RydWN0IF9BRElTQyB7CQkvKiBTdHJ1Y3R1cmUgaXMgaW4gQmlnIEVuZGlhbiBmb3JtYXQgKi8KIAlzdHJ1Y3QgbHBmY19uYW1lIHBvcnROYW1lOwogCXN0cnVjdCBscGZjX25hbWUgbm9kZU5hbWU7CiAJdWludDMyX3QgRElEOwotfSBBRElTQzsKK30gX19wYWNrZWQgQURJU0M7CiAKIHR5cGVkZWYgc3RydWN0IF9GQVJQIHsJCS8qIFN0cnVjdHVyZSBpcyBpbiBCaWcgRW5kaWFuIGZvcm1hdCAqLwogCXVpbnQzMl90IE1mbGFnczo4OwpAQCAtODczLDcgKzg3Myw3IEBAIHR5cGVkZWYgc3RydWN0IF9GQU4gewkJLyogU3RydWN0dXJlIGlzIGluIEJpZyBFbmRpYW4gZm9ybWF0ICovCiAJdWludDMyX3QgRmRpZDsKIAlzdHJ1Y3QgbHBmY19uYW1lIEZwb3J0TmFtZTsKIAlzdHJ1Y3QgbHBmY19uYW1lIEZub2RlTmFtZTsKLX0gRkFOOworfSBfX3BhY2tlZCBGQU47CiAKIHR5cGVkZWYgc3RydWN0IF9TQ1IgewkJLyogU3RydWN0dXJlIGlzIGluIEJpZyBFbmRpYW4gZm9ybWF0ICovCiAJdWludDhfdCByZXN2ZDE7CkBAIC05MTcsNyArOTE3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1JOSUQgewkJLyogU3RydWN0dXJlIGlzIGluIEJpZyBFbmRpYW4gZm9ybWF0ICovCiAJdW5pb24gewogCQlSTklEX1RPUF9ESVNDIHRvcG9sb2d5RGlzYzsJLyogdG9wb2xvZ3kgZGlzYyAoMHhkZikgKi8KIAl9IHVuOwotfSBSTklEOworfSBfX3BhY2tlZCBSTklEOwogCiB0eXBlZGVmIHN0cnVjdCAgX1JQUyB7CQkvKiBTdHJ1Y3R1cmUgaXMgaW4gQmlnIEVuZGlhbiBmb3JtYXQgKi8KIAl1bmlvbiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2h3NC5oIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19odzQuaAppbmRleCA3N2Y5YTU1Li5iZDUzMzQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2h3NC5oCisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfaHc0LmgKQEAgLTIwNTAsNiArMjA1MCwyMyBAQCBzdHJ1Y3Qgc2xpNF9zZ2UgewkvKiBTTEktNCAqLwogCXVpbnQzMl90IHNnZV9sZW47CiB9OwogCitzdHJ1Y3Qgc2xpNF9oeWJyaWRfc2dsIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Rfbm9kZTsKKwlzdHJ1Y3Qgc2xpNF9zZ2UgKmRtYV9zZ2w7CisJZG1hX2FkZHJfdCBkbWFfcGh5c19zZ2w7Cit9OworCitzdHJ1Y3QgZmNwX2NtZF9yc3BfYnVmIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Rfbm9kZTsKKworCS8qIGZvciBzdG9yaW5nIGNtZC9yc3AgZG1hIGFsbG9jJ2VkIHZpcnRfYWRkciAqLworCXN0cnVjdCBmY3BfY21uZCAqZmNwX2NtbmQ7CisJc3RydWN0IGZjcF9yc3AgKmZjcF9yc3A7CisKKwkvKiBmb3Igc3RvcmluZyB0aGlzIGNtZC9yc3AncyBkbWEgbWFwcGVkIHBoeXMgYWRkciBmcm9tIHBlciBDUFUgcG9vbCAqLworCWRtYV9hZGRyX3QgZmNwX2NtZF9yc3BfZG1hX2hhbmRsZTsKK307CisKIHN0cnVjdCBzbGk0X3NnZV9kaXNlZWQgewkvKiBTTEktNCAqLwogCXVpbnQzMl90IHJlZl90YWc7CiAJdWludDMyX3QgcmVmX3RhZ190cmFuOwpAQCAtMzQ0OSw2ICszNDY2LDkgQEAgc3RydWN0IGxwZmNfc2xpNF9wYXJhbWV0ZXJzIHsKICNkZWZpbmUgY2ZnX3hpYl9TSElGVAkJCQk0CiAjZGVmaW5lIGNmZ194aWJfTUFTSwkJCQkweDAwMDAwMDAxCiAjZGVmaW5lIGNmZ194aWJfV09SRAkJCQl3b3JkMTkKKyNkZWZpbmUgY2ZnX3hwc2dsX1NISUZUCQkJCTYKKyNkZWZpbmUgY2ZnX3hwc2dsX01BU0sJCQkJMHgwMDAwMDAwMQorI2RlZmluZSBjZmdfeHBzZ2xfV09SRAkJCQl3b3JkMTkKICNkZWZpbmUgY2ZnX2VxZHJfU0hJRlQJCQkJOAogI2RlZmluZSBjZmdfZXFkcl9NQVNLCQkJCTB4MDAwMDAwMDEKICNkZWZpbmUgY2ZnX2VxZHJfV09SRAkJCQl3b3JkMTkKQEAgLTM0NjAsNiArMzQ4MCwxMCBAQCBzdHJ1Y3QgbHBmY19zbGk0X3BhcmFtZXRlcnMgewogI2RlZmluZSBjZmdfYnYxc19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQogI2RlZmluZSBjZmdfYnYxc19XT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd29yZDE5CiAKKyNkZWZpbmUgY2ZnX25zbGVyX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgIDEyCisjZGVmaW5lIGNmZ19uc2xlcl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIGNmZ19uc2xlcl9XT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JkMTkKKwogCXVpbnQzMl90IHdvcmQyMDsKICNkZWZpbmUgY2ZnX21heF90b3dfeHJpX1NISUZUCQkJMAogI2RlZmluZSBjZmdfbWF4X3Rvd194cmlfTUFTSwkJCTB4MDAwMGZmZmYKQEAgLTQzMTQsNiArNDMzOCwxMiBAQCBzdHJ1Y3Qgd3FlX2NvbW1vbiB7CiAjZGVmaW5lIHdxZV9yY3ZveGlkX1NISUZUICAgICAxNgogI2RlZmluZSB3cWVfcmN2b3hpZF9NQVNLICAgICAgMHgwMDAwRkZGRgogI2RlZmluZSB3cWVfcmN2b3hpZF9XT1JEICAgICAgd29yZDkKKyNkZWZpbmUgd3FlX3NvZl9TSElGVCAgICAgICAgIDI0CisjZGVmaW5lIHdxZV9zb2ZfTUFTSyAgICAgICAgICAweDAwMDAwMEZGCisjZGVmaW5lIHdxZV9zb2ZfV09SRCAgICAgICAgICB3b3JkOQorI2RlZmluZSB3cWVfZW9mX1NISUZUICAgICAgICAgMTYKKyNkZWZpbmUgd3FlX2VvZl9NQVNLICAgICAgICAgIDB4MDAwMDAwRkYKKyNkZWZpbmUgd3FlX2VvZl9XT1JEICAgICAgICAgIHdvcmQ5CiAJdWludDMyX3Qgd29yZDEwOwogI2RlZmluZSB3cWVfZWJkZV9jbnRfU0hJRlQgICAgMAogI2RlZmluZSB3cWVfZWJkZV9jbnRfTUFTSyAgICAgMHgwMDAwMDAwZgpAQCAtNDU5NSw2ICs0NjI1LDcgQEAgc3RydWN0IGxwZmNfbnZtZV9wcmxpIHsKICNkZWZpbmUgcHJsaV90eXBlX2NvZGVfV09SRCAgICAgICAgICAgICB3b3JkMQogCXVpbnQzMl90IHdvcmRfcnN2ZDI7CiAJdWludDMyX3Qgd29yZF9yc3ZkMzsKKwogCXVpbnQzMl90IHdvcmQ0OwogI2RlZmluZSBwcmxpX2ZiYV9TSElGVCAgICAgICAgICAgICAgICAgIDAKICNkZWZpbmUgcHJsaV9mYmFfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCkBAIC00NjExLDYgKzQ2NDIsOSBAQCBzdHJ1Y3QgbHBmY19udm1lX3BybGkgewogI2RlZmluZSBwcmxpX2NvbmZfU0hJRlQgICAgICAgICAgICAgICAgIDcKICNkZWZpbmUgcHJsaV9jb25mX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiAjZGVmaW5lIHBybGlfY29uZl9XT1JEICAgICAgICAgICAgICAgICAgd29yZDQKKyNkZWZpbmUgcHJsaV9uc2xlcl9TSElGVAkJOAorI2RlZmluZSBwcmxpX25zbGVyX01BU0sJCQkweDAwMDAwMDAxCisjZGVmaW5lIHBybGlfbnNsZXJfV09SRAkJCXdvcmQ0CiAJdWludDMyX3Qgd29yZDU7CiAjZGVmaW5lIHBybGlfZmJfc3pfU0hJRlQgICAgICAgICAgICAgICAgMAogI2RlZmluZSBwcmxpX2ZiX3N6X01BU0sgICAgICAgICAgICAgICAgIDB4MDAwMGZmZmYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfaW5pdC5jIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19pbml0LmMKaW5kZXggMWFjOThiZS4uZTkxMzc3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19pbml0LmMKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19pbml0LmMKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tc2kuaD4KICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+CiAKICNpbmNsdWRlIDxzY3NpL3Njc2kuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfZGV2aWNlLmg+CkBAIC02NSwxMiArNjYsNiBAQAogI2luY2x1ZGUgImxwZmNfdmVyc2lvbi5oIgogI2luY2x1ZGUgImxwZmNfaWRzLmgiCiAKLWNoYXIgKl9kdW1wX2J1Zl9kYXRhOwotdW5zaWduZWQgbG9uZyBfZHVtcF9idWZfZGF0YV9vcmRlcjsKLWNoYXIgKl9kdW1wX2J1Zl9kaWY7Ci11bnNpZ25lZCBsb25nIF9kdW1wX2J1Zl9kaWZfb3JkZXI7Ci1zcGlubG9ja190IF9kdW1wX2J1Zl9sb2NrOwotCiAvKiBVc2VkIHdoZW4gbWFwcGluZyBJUlEgdmVjdG9ycyBpbiBhIGRyaXZlciBjZW50cmljIG1hbm5lciAqLwogc3RhdGljIHVpbnQzMl90IGxwZmNfcHJlc2VudF9jcHU7CiAKQEAgLTEwODEsOCArMTA3Niw4IEBAIGxwZmNfaGJhX2Rvd25fcG9zdF9zNChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJZm9yIChpZHggPSAwOyBpZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlOyBpZHgrKykgewogCQlxcCA9ICZwaGJhLT5zbGk0X2hiYS5oZHdxW2lkeF07CiAKLQkJc3Bpbl9sb2NrKCZxcC0+YWJ0c19zY3NpX2J1Zl9saXN0X2xvY2spOwotCQlsaXN0X3NwbGljZV9pbml0KCZxcC0+bHBmY19hYnRzX3Njc2lfYnVmX2xpc3QsCisJCXNwaW5fbG9jaygmcXAtPmFidHNfaW9fYnVmX2xpc3RfbG9jayk7CisJCWxpc3Rfc3BsaWNlX2luaXQoJnFwLT5scGZjX2FidHNfaW9fYnVmX2xpc3QsCiAJCQkJICZhYm9ydHMpOwogCiAJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwc2IsIHBzYl9uZXh0LCAmYWJvcnRzLCBsaXN0KSB7CkBAIC0xMDkzLDI5ICsxMDg4LDExIEBAIGxwZmNfaGJhX2Rvd25fcG9zdF9zNChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCXNwaW5fbG9jaygmcXAtPmlvX2J1Zl9saXN0X3B1dF9sb2NrKTsKIAkJbGlzdF9zcGxpY2VfaW5pdCgmYWJvcnRzLCAmcXAtPmxwZmNfaW9fYnVmX2xpc3RfcHV0KTsKIAkJcXAtPnB1dF9pb19idWZzICs9IHFwLT5hYnRzX3Njc2lfaW9fYnVmczsKKwkJcXAtPnB1dF9pb19idWZzICs9IHFwLT5hYnRzX252bWVfaW9fYnVmczsKIAkJcXAtPmFidHNfc2NzaV9pb19idWZzID0gMDsKKwkJcXAtPmFidHNfbnZtZV9pb19idWZzID0gMDsKIAkJc3Bpbl91bmxvY2soJnFwLT5pb19idWZfbGlzdF9wdXRfbG9jayk7Ci0JCXNwaW5fdW5sb2NrKCZxcC0+YWJ0c19zY3NpX2J1Zl9saXN0X2xvY2spOwotCi0JCWlmIChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkgewotCQkJc3Bpbl9sb2NrKCZxcC0+YWJ0c19udm1lX2J1Zl9saXN0X2xvY2spOwotCQkJbGlzdF9zcGxpY2VfaW5pdCgmcXAtPmxwZmNfYWJ0c19udm1lX2J1Zl9saXN0LAotCQkJCQkgJm52bWVfYWJvcnRzKTsKLQkJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwc2IsIHBzYl9uZXh0LCAmbnZtZV9hYm9ydHMsCi0JCQkJCQkgbGlzdCkgewotCQkJCXBzYi0+cENtZCA9IE5VTEw7Ci0JCQkJcHNiLT5zdGF0dXMgPSBJT1NUQVRfU1VDQ0VTUzsKLQkJCQljbnQrKzsKLQkJCX0KLQkJCXNwaW5fbG9jaygmcXAtPmlvX2J1Zl9saXN0X3B1dF9sb2NrKTsKLQkJCXFwLT5wdXRfaW9fYnVmcyArPSBxcC0+YWJ0c19udm1lX2lvX2J1ZnM7Ci0JCQlxcC0+YWJ0c19udm1lX2lvX2J1ZnMgPSAwOwotCQkJbGlzdF9zcGxpY2VfaW5pdCgmbnZtZV9hYm9ydHMsCi0JCQkJCSAmcXAtPmxwZmNfaW9fYnVmX2xpc3RfcHV0KTsKLQkJCXNwaW5fdW5sb2NrKCZxcC0+aW9fYnVmX2xpc3RfcHV0X2xvY2spOwotCQkJc3Bpbl91bmxvY2soJnFwLT5hYnRzX252bWVfYnVmX2xpc3RfbG9jayk7Ci0KLQkJfQorCQlzcGluX3VubG9jaygmcXAtPmFidHNfaW9fYnVmX2xpc3RfbG9jayk7CiAJfQogCXNwaW5fdW5sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7CiAKQEAgLTEyNjEsNiArMTIzOCw3IEBAIGxwZmNfaGJfZXFfZGVsYXlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJdW5zaWduZWQgY2hhciAqZXFjbnQgPSBOVUxMOwogCXVpbnQzMl90IHVzZGVsYXk7CiAJaW50IGk7CisJYm9vbCB1cGRhdGUgPSBmYWxzZTsKIAogCWlmICghcGhiYS0+Y2ZnX2F1dG9faW1heCB8fCBwaGJhLT5wcG9ydC0+bG9hZF9mbGFnICYgRkNfVU5MT0FESU5HKQogCQlyZXR1cm47CkBAIC0xMjc0LDIwICsxMjUyLDI5IEBAIGxwZmNfaGJfZXFfZGVsYXlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaWYgKCFlcWNudCkKIAkJZ290byByZXF1ZXVlOwogCi0JLyogTG9vcCB0aHJ1IGFsbCBJUlEgdmVjdG9ycyAqLwotCWZvciAoaSA9IDA7IGkgPCBwaGJhLT5jZmdfaXJxX2NoYW5uOyBpKyspIHsKLQkJLyogR2V0IHRoZSBFUSBjb3JyZXNwb25kaW5nIHRvIHRoZSBJUlEgdmVjdG9yICovCi0JCWVxID0gcGhiYS0+c2xpNF9oYmEuaGJhX2VxX2hkbFtpXS5lcTsKLQkJaWYgKGVxICYmIGVxY250W2VxLT5sYXN0X2NwdV0gPCAyKQotCQkJZXFjbnRbZXEtPmxhc3RfY3B1XSsrOwotCQljb250aW51ZTsKLQl9CisJaWYgKHBoYmEtPmNmZ19pcnFfY2hhbm4gPiAxKSB7CisJCS8qIExvb3AgdGhydSBhbGwgSVJRIHZlY3RvcnMgKi8KKwkJZm9yIChpID0gMDsgaSA8IHBoYmEtPmNmZ19pcnFfY2hhbm47IGkrKykgeworCQkJLyogR2V0IHRoZSBFUSBjb3JyZXNwb25kaW5nIHRvIHRoZSBJUlEgdmVjdG9yICovCisJCQllcSA9IHBoYmEtPnNsaTRfaGJhLmhiYV9lcV9oZGxbaV0uZXE7CisJCQlpZiAoIWVxKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKGVxLT5xX21vZGUpIHsKKwkJCQl1cGRhdGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKGVxY250W2VxLT5sYXN0X2NwdV0gPCAyKQorCQkJCWVxY250W2VxLT5sYXN0X2NwdV0rKzsKKwkJfQorCX0gZWxzZQorCQl1cGRhdGUgPSB0cnVlOwogCiAJZm9yX2VhY2hfcHJlc2VudF9jcHUoaSkgewotCQlpZiAocGhiYS0+Y2ZnX2lycV9jaGFubiA+IDEgJiYgZXFjbnRbaV0gPCAyKQotCQkJY29udGludWU7Ci0KIAkJZXFpID0gcGVyX2NwdV9wdHIocGhiYS0+c2xpNF9oYmEuZXFfaW5mbywgaSk7CisJCWlmICghdXBkYXRlICYmIGVxY250W2ldIDwgMikgeworCQkJZXFpLT5pY250ID0gMDsKKwkJCWNvbnRpbnVlOworCQl9CiAKIAkJdXNkZWxheSA9IChlcWktPmljbnQgLyBMUEZDX0lNQVhfVEhSRVNIT0xEKSAqCiAJCQkgICBMUEZDX0VRX0RFTEFZX1NURVA7CkBAIC0xNTM1LDYgKzE1MjIsNyBAQCBscGZjX3NsaTRfb2ZmbGluZV9lcmF0dChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJc3Bpbl91bmxvY2tfaXJxKCZwaGJhLT5oYmFsb2NrKTsKIAogCWxwZmNfb2ZmbGluZV9wcmVwKHBoYmEsIExQRkNfTUJYX05PX1dBSVQpOworCWxwZmNfc2xpX2ZsdXNoX2lvX3JpbmdzKHBoYmEpOwogCWxwZmNfb2ZmbGluZShwaGJhKTsKIAlscGZjX2hiYV9kb3duX3Bvc3QocGhiYSk7CiAJbHBmY191bmJsb2NrX21nbXRfaW8ocGhiYSk7CkBAIC0xNzk2LDYgKzE3ODQsNyBAQCBscGZjX3NsaTRfcG9ydF9zdGFfZm5fcmVzZXQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgbWJ4X2FjdGlvbiwKIAkJCQkiMjg4NyBSZXNldCBOZWVkZWQ6IEF0dGVtcHRpbmcgUG9ydCAiCiAJCQkJIlJlY292ZXJ5Li4uXG4iKTsKIAlscGZjX29mZmxpbmVfcHJlcChwaGJhLCBtYnhfYWN0aW9uKTsKKwlscGZjX3NsaV9mbHVzaF9pb19yaW5ncyhwaGJhKTsKIAlscGZjX29mZmxpbmUocGhiYSk7CiAJLyogcmVsZWFzZSBpbnRlcnJ1cHQgZm9yIHBvc3NpYmxlIHJlc291cmNlIGNoYW5nZSAqLwogCWxwZmNfc2xpNF9kaXNhYmxlX2ludHIocGhiYSk7CkBAIC0xOTE1LDcgKzE5MDQsNyBAQCBscGZjX2hhbmRsZV9lcmF0dF9zNChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0lOSVQsCiAJCQkJIjc2MjQgRmlybXdhcmUgbm90IHJlYWR5OiBGYWlsaW5nIFVFIHJlY292ZXJ5LCIKIAkJCQkiIHdhaXRlZCAlZFNlYyIsIGkpOwotCQlscGZjX3NsaTRfb2ZmbGluZV9lcmF0dChwaGJhKTsKKwkJcGhiYS0+bGlua19zdGF0ZSA9IExQRkNfSEJBX0VSUk9SOwogCQlicmVhazsKIAogCWNhc2UgTFBGQ19TTElfSU5URl9JRl9UWVBFXzI6CkBAIC0xOTg5LDkgKzE5NzgsOCBAQCBscGZjX2hhbmRsZV9lcmF0dF9zNChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCX0KIAkJLyogZmFsbCB0aHJvdWdoIGZvciBub3QgYWJsZSB0byByZWNvdmVyICovCiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0lOSVQsCi0JCQkJIjMxNTIgVW5yZWNvdmVyYWJsZSBlcnJvciwgYnJpbmcgdGhlIHBvcnQgIgotCQkJCSJvZmZsaW5lXG4iKTsKLQkJbHBmY19zbGk0X29mZmxpbmVfZXJhdHQocGhiYSk7CisJCQkJIjMxNTIgVW5yZWNvdmVyYWJsZSBlcnJvclxuIik7CisJCXBoYmEtPmxpbmtfc3RhdGUgPSBMUEZDX0hCQV9FUlJPUjsKIAkJYnJlYWs7CiAJY2FzZSBMUEZDX1NMSV9JTlRGX0lGX1RZUEVfMToKIAlkZWZhdWx0OgpAQCAtMjg2Myw3ICsyODUxLDcgQEAgbHBmY19jbGVhbnVwKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCkKIAkJCQkJCSZ2cG9ydC0+ZmNfbm9kZXMsIG5scF9saXN0cCkgewogCQkJCWxwZmNfcHJpbnRmX3Zsb2cobmRscC0+dnBvcnQsIEtFUk5fRVJSLAogCQkJCQkJTE9HX05PREUsCi0JCQkJCQkiMDI4MiBkaWQ6eCV4IG5kbHA6eCVwICIKKwkJCQkJCSIwMjgyIGRpZDp4JXggbmRscDp4JXB4ICIKIAkJCQkJCSJ1c2dtYXA6eCV4IHJlZmNudDolZFxuIiwKIAkJCQkJCW5kbHAtPm5scF9ESUQsICh2b2lkICopbmRscCwKIAkJCQkJCW5kbHAtPm5scF91c2dfbWFwLApAQCAtMzA2Nyw3ICszMDU1LDcgQEAgbHBmY19zbGk0X25vZGVfcHJlcChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCQluZGxwLT5ubHBfcnBpID0gcnBpOwogCQkJbHBmY19wcmludGZfdmxvZyhuZGxwLT52cG9ydCwgS0VSTl9JTkZPLCBMT0dfTk9ERSwKIAkJCQkJICIwMDA5IHJwaToleCBESUQ6JXggIgotCQkJCQkgImZsZzoleCBtYXA6JXggJXBcbiIsIG5kbHAtPm5scF9ycGksCisJCQkJCSAiZmxnOiV4IG1hcDoleCB4JXB4XG4iLCBuZGxwLT5ubHBfcnBpLAogCQkJCQkgbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX2ZsYWcsCiAJCQkJCSBuZGxwLT5ubHBfdXNnX21hcCwgbmRscCk7CiAJCX0KQEAgLTMyNTIsMTIgKzMyNDAsOCBAQCBzdGF0aWMgdm9pZCBscGZjX2Rlc3Ryb3lfbXVsdGl4cmlfcG9vbHMoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCWlmIChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkKIAkJbHBmY19kZXN0cm95X2V4cGVkaXRlX3Bvb2wocGhiYSk7CiAKLQlpZiAoIShwaGJhLT5wcG9ydC0+bG9hZF9mbGFnICYgRkNfVU5MT0FESU5HKSkgewotCQlscGZjX3NsaV9mbHVzaF9mY3BfcmluZ3MocGhiYSk7Ci0KLQkJaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKQotCQkJbHBmY19zbGlfZmx1c2hfbnZtZV9yaW5ncyhwaGJhKTsKLQl9CisJaWYgKCEocGhiYS0+cHBvcnQtPmxvYWRfZmxhZyAmIEZDX1VOTE9BRElORykpCisJCWxwZmNfc2xpX2ZsdXNoX2lvX3JpbmdzKHBoYmEpOwogCiAJaHdxX2NvdW50ID0gcGhiYS0+Y2ZnX2hkd19xdWV1ZTsKIApAQCAtMzQ5MSw3ICszNDc1LDcgQEAgbHBmY19vZmZsaW5lX3ByZXAoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgbWJ4X2FjdGlvbikKIAkJCQkJbHBmY19wcmludGZfdmxvZyhuZGxwLT52cG9ydCwKIAkJCQkJCQkgS0VSTl9JTkZPLCBMT0dfTk9ERSwKIAkJCQkJCQkgIjAwMTEgbHBmY19vZmZsaW5lOiAiCi0JCQkJCQkJICJuZGxwOnglcCBkaWQgJXggIgorCQkJCQkJCSAibmRscDp4JXB4IGRpZCAleCAiCiAJCQkJCQkJICJ1c2dtYXA6eCV4IHJwaToleFxuIiwKIAkJCQkJCQkgbmRscCwgbmRscC0+bmxwX0RJRCwKIAkJCQkJCQkgbmRscC0+bmxwX3VzZ19tYXAsCkBAIC0zNjM2LDYgKzM2MjAsOSBAQCBscGZjX2lvX2ZyZWUoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCQkJcXAtPnB1dF9pb19idWZzLS07CiAJCQlkbWFfcG9vbF9mcmVlKHBoYmEtPmxwZmNfc2dfZG1hX2J1Zl9wb29sLAogCQkJCSAgICAgIGxwZmNfbmNtZC0+ZGF0YSwgbHBmY19uY21kLT5kbWFfaGFuZGxlKTsKKwkJCWlmIChwaGJhLT5jZmdfeHBzZ2wgJiYgIXBoYmEtPm52bWV0X3N1cHBvcnQpCisJCQkJbHBmY19wdXRfc2dsX3Blcl9oZHdxKHBoYmEsIGxwZmNfbmNtZCk7CisJCQlscGZjX3B1dF9jbWRfcnNwX2J1Zl9wZXJfaGR3cShwaGJhLCBscGZjX25jbWQpOwogCQkJa2ZyZWUobHBmY19uY21kKTsKIAkJCXFwLT50b3RhbF9pb19idWZzLS07CiAJCX0KQEAgLTM2NDksNiArMzYzNiw5IEBAIGxwZmNfaW9fZnJlZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCQlxcC0+Z2V0X2lvX2J1ZnMtLTsKIAkJCWRtYV9wb29sX2ZyZWUocGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wsCiAJCQkJICAgICAgbHBmY19uY21kLT5kYXRhLCBscGZjX25jbWQtPmRtYV9oYW5kbGUpOworCQkJaWYgKHBoYmEtPmNmZ194cHNnbCAmJiAhcGhiYS0+bnZtZXRfc3VwcG9ydCkKKwkJCQlscGZjX3B1dF9zZ2xfcGVyX2hkd3EocGhiYSwgbHBmY19uY21kKTsKKwkJCWxwZmNfcHV0X2NtZF9yc3BfYnVmX3Blcl9oZHdxKHBoYmEsIGxwZmNfbmNtZCk7CiAJCQlrZnJlZShscGZjX25jbWQpOwogCQkJcXAtPnRvdGFsX2lvX2J1ZnMtLTsKIAkJfQpAQCAtNDA5NywxOCArNDA4Nyw5IEBAIGxwZmNfbmV3X2lvX2J1ZihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIGludCBudW1fdG9fYWxsb2MpCiAJTElTVF9IRUFEKHBvc3RfbmJsaXN0KTsKIAlMSVNUX0hFQUQobnZtZV9uYmxpc3QpOwogCi0JLyogU2FuaXR5IGNoZWNrIHRvIGVuc3VyZSBvdXIgc2l6aW5nIGlzIHJpZ2h0IGZvciBib3RoIFNDU0kgYW5kIE5WTUUgKi8KLQlpZiAoc2l6ZW9mKHN0cnVjdCBscGZjX2lvX2J1ZikgPiBMUEZDX0NPTU1PTl9JT19CVUZfU1opIHsKLQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfRkNQLAotCQkJCSI2NDI2IENvbW1vbiBidWZmZXIgc2l6ZSAlemQgZXhjZWVkcyAlZFxuIiwKLQkJCQlzaXplb2Yoc3RydWN0IGxwZmNfaW9fYnVmKSwKLQkJCQlMUEZDX0NPTU1PTl9JT19CVUZfU1opOwotCQlyZXR1cm4gMDsKLQl9Ci0KIAlwaGJhLT5zbGk0X2hiYS5pb194cmlfY250ID0gMDsKIAlmb3IgKGJjbnQgPSAwOyBiY250IDwgbnVtX3RvX2FsbG9jOyBiY250KyspIHsKLQkJbHBmY19uY21kID0ga3phbGxvYyhMUEZDX0NPTU1PTl9JT19CVUZfU1osIEdGUF9LRVJORUwpOworCQlscGZjX25jbWQgPSBremFsbG9jKHNpemVvZigqbHBmY19uY21kKSwgR0ZQX0tFUk5FTCk7CiAJCWlmICghbHBmY19uY21kKQogCQkJYnJlYWs7CiAJCS8qCkBAIC00MTI0LDIyICs0MTA1LDMwIEBAIGxwZmNfbmV3X2lvX2J1ZihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIGludCBudW1fdG9fYWxsb2MpCiAJCQlicmVhazsKIAkJfQogCi0JCS8qCi0JCSAqIDRLIFBhZ2UgYWxpZ25tZW50IGlzIENSSVRJQ0FMIHRvIEJsb2NrR3VhcmQsIGRvdWJsZSBjaGVjawotCQkgKiB0byBiZSBzdXJlLgotCQkgKi8KLQkJaWYgKChwaGJhLT5zbGkzX29wdGlvbnMgJiBMUEZDX1NMSTNfQkdfRU5BQkxFRCkgJiYKLQkJICAgICgoKHVuc2lnbmVkIGxvbmcpKGxwZmNfbmNtZC0+ZGF0YSkgJgotCQkgICAgKHVuc2lnbmVkIGxvbmcpKFNMSTRfUEFHRV9TSVpFIC0gMSkpICE9IDApKSB7Ci0JCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19GQ1AsCi0JCQkJCSIzMzY5IE1lbW9yeSBhbGlnbm1lbnQgZXJyOiBhZGRyPSVseFxuIiwKLQkJCQkJKHVuc2lnbmVkIGxvbmcpbHBmY19uY21kLT5kYXRhKTsKLQkJCWRtYV9wb29sX2ZyZWUocGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wsCi0JCQkJICAgICAgbHBmY19uY21kLT5kYXRhLCBscGZjX25jbWQtPmRtYV9oYW5kbGUpOwotCQkJa2ZyZWUobHBmY19uY21kKTsKLQkJCWJyZWFrOworCQlpZiAocGhiYS0+Y2ZnX3hwc2dsICYmICFwaGJhLT5udm1ldF9zdXBwb3J0KSB7CisJCQlJTklUX0xJU1RfSEVBRCgmbHBmY19uY21kLT5kbWFfc2dsX3h0cmFfbGlzdCk7CisJCX0gZWxzZSB7CisJCQkvKgorCQkJICogNEsgUGFnZSBhbGlnbm1lbnQgaXMgQ1JJVElDQUwgdG8gQmxvY2tHdWFyZCwgZG91YmxlCisJCQkgKiBjaGVjayB0byBiZSBzdXJlLgorCQkJICovCisJCQlpZiAoKHBoYmEtPnNsaTNfb3B0aW9ucyAmIExQRkNfU0xJM19CR19FTkFCTEVEKSAmJgorCQkJICAgICgoKHVuc2lnbmVkIGxvbmcpKGxwZmNfbmNtZC0+ZGF0YSkgJgorCQkJICAgICh1bnNpZ25lZCBsb25nKShTTEk0X1BBR0VfU0laRSAtIDEpKSAhPSAwKSkgeworCQkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0ZDUCwKKwkJCQkJCSIzMzY5IE1lbW9yeSBhbGlnbm1lbnQgZXJyOiAiCisJCQkJCQkiYWRkcj0lbHhcbiIsCisJCQkJCQkodW5zaWduZWQgbG9uZylscGZjX25jbWQtPmRhdGEpOworCQkJCWRtYV9wb29sX2ZyZWUocGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wsCisJCQkJCSAgICAgIGxwZmNfbmNtZC0+ZGF0YSwKKwkJCQkJICAgICAgbHBmY19uY21kLT5kbWFfaGFuZGxlKTsKKwkJCQlrZnJlZShscGZjX25jbWQpOworCQkJCWJyZWFrOworCQkJfQogCQl9CiAKKwkJSU5JVF9MSVNUX0hFQUQoJmxwZmNfbmNtZC0+ZG1hX2NtZF9yc3BfbGlzdCk7CisKIAkJbHhyaSA9IGxwZmNfc2xpNF9uZXh0X3hyaXRhZyhwaGJhKTsKIAkJaWYgKGx4cmkgPT0gTk9fWFJJKSB7CiAJCQlkbWFfcG9vbF9mcmVlKHBoYmEtPmxwZmNfc2dfZG1hX2J1Zl9wb29sLApAQCAtNDMxOCw3ICs0MzA3LDExIEBAIGxwZmNfY3JlYXRlX3BvcnQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgaW5zdGFuY2UsIHN0cnVjdCBkZXZpY2UgKmRldikKIAogCQlzaG9zdC0+ZG1hX2JvdW5kYXJ5ID0KIAkJCXBoYmEtPnNsaTRfaGJhLnBjX3NsaTRfcGFyYW1zLnNnZV9zdXBwX2xlbi0xOwotCQlzaG9zdC0+c2dfdGFibGVzaXplID0gcGhiYS0+Y2ZnX3Njc2lfc2VnX2NudDsKKworCQlpZiAocGhiYS0+Y2ZnX3hwc2dsICYmICFwaGJhLT5udm1ldF9zdXBwb3J0KQorCQkJc2hvc3QtPnNnX3RhYmxlc2l6ZSA9IExQRkNfTUFYX1NHX1RBQkxFU0laRTsKKwkJZWxzZQorCQkJc2hvc3QtPnNnX3RhYmxlc2l6ZSA9IHBoYmEtPmNmZ19zY3NpX3NlZ19jbnQ7CiAJfSBlbHNlCiAJCS8qIFNMSS0zIGhhcyBhIGxpbWl0ZWQgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcyAoMyksCiAJCSAqIHRodXMgdGhlcmUgaXMgb25seSBvbmUgZm9yIEZDUCBwcm9jZXNzaW5nLgpAQCAtNjMzNiw2ICs2MzI5LDI0IEBAIGxwZmNfc2xpX2RyaXZlcl9yZXNvdXJjZV9zZXR1cChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJaWYgKGxwZmNfbWVtX2FsbG9jKHBoYmEsIEJQTF9BTElHTl9TWikpCiAJCXJldHVybiAtRU5PTUVNOwogCisJcGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wgPQorCQlkbWFfcG9vbF9jcmVhdGUoImxwZmNfc2dfZG1hX2J1Zl9wb29sIiwKKwkJCQkmcGhiYS0+cGNpZGV2LT5kZXYsIHBoYmEtPmNmZ19zZ19kbWFfYnVmX3NpemUsCisJCQkJQlBMX0FMSUdOX1NaLCAwKTsKKworCWlmICghcGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wpCisJCWdvdG8gZmFpbF9mcmVlX21lbTsKKworCXBoYmEtPmxwZmNfY21kX3JzcF9idWZfcG9vbCA9CisJCQlkbWFfcG9vbF9jcmVhdGUoImxwZmNfY21kX3JzcF9idWZfcG9vbCIsCisJCQkJCSZwaGJhLT5wY2lkZXYtPmRldiwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBmY3BfY21uZCkgKworCQkJCQlzaXplb2Yoc3RydWN0IGZjcF9yc3ApLAorCQkJCQlCUExfQUxJR05fU1osIDApOworCisJaWYgKCFwaGJhLT5scGZjX2NtZF9yc3BfYnVmX3Bvb2wpCisJCWdvdG8gZmFpbF9mcmVlX2RtYV9idWZfcG9vbDsKKwogCS8qCiAJICogRW5hYmxlIHNyLWlvdiB2aXJ0dWFsIGZ1bmN0aW9ucyBpZiBzdXBwb3J0ZWQgYW5kIGNvbmZpZ3VyZWQKIAkgKiB0aHJvdWdoIHRoZSBtb2R1bGUgcGFyYW1ldGVyLgpAQCAtNjM1NCw2ICs2MzY1LDEzIEBAIGxwZmNfc2xpX2RyaXZlcl9yZXNvdXJjZV9zZXR1cChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJfQogCiAJcmV0dXJuIDA7CisKK2ZhaWxfZnJlZV9kbWFfYnVmX3Bvb2w6CisJZG1hX3Bvb2xfZGVzdHJveShwaGJhLT5scGZjX3NnX2RtYV9idWZfcG9vbCk7CisJcGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wgPSBOVUxMOworZmFpbF9mcmVlX21lbToKKwlscGZjX21lbV9mcmVlKHBoYmEpOworCXJldHVybiAtRU5PTUVNOwogfQogCiAvKioKQEAgLTY0MTQsNiArNjQzMiwxMSBAQCBscGZjX3NsaTRfZHJpdmVyX3Jlc291cmNlX3NldHVwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAlpZiAocmMpCiAJCXJldHVybiAtRU5PREVWOwogCisJLyogQWxsb2NhdGUgYWxsIGRyaXZlciB3b3JrcXVldWVzIGhlcmUgKi8KKworCS8qIFRoZSBscGZjX3dxIHdvcmtxdWV1ZSBmb3IgZGVmZXJyZWQgaXJxIHVzZSAqLworCXBoYmEtPndxID0gYWxsb2Nfd29ya3F1ZXVlKCJscGZjX3dxIiwgV1FfTUVNX1JFQ0xBSU0sIDApOworCiAJLyoKIAkgKiBJbml0aWFsaXplIHRpbWVycyB1c2VkIGJ5IGRyaXZlcgogCSAqLwpAQCAtNjQ0OCwxMDIgKzY0NzEsNiBAQCBscGZjX3NsaTRfZHJpdmVyX3Jlc291cmNlX3NldHVwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkgKiBUaGUgV1EgY3JlYXRlIHdpbGwgYWxsb2NhdGUgdGhlIHJpbmcuCiAJICovCiAKLQkvKgotCSAqIDEgZm9yIGNtZCwgMSBmb3IgcnNwLCBOVk1FIGFkZHMgYW4gZXh0cmEgb25lCi0JICogZm9yIGJvdW5kYXJ5IGNvbmRpdGlvbnMgaW4gaXRzIG1heF9zZ2xfc2VnbWVudCB0ZW1wbGF0ZS4KLQkgKi8KLQlleHRyYSA9IDI7Ci0JaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKQotCQlleHRyYSsrOwotCi0JLyoKLQkgKiBJdCBkb2Vzbid0IG1hdHRlciB3aGF0IGZhbWlseSBvdXIgYWRhcHRlciBpcyBpbiwgd2UgYXJlCi0JICogbGltaXRlZCB0byAyIFBhZ2VzLCA1MTIgU0dFcywgZm9yIG91ciBTR0wuCi0JICogVGhlcmUgYXJlIGdvaW5nIHRvIGJlIDIgcmVzZXJ2ZWQgU0dFczogMSBGQ1AgY21uZCArIDEgRkNQIHJzcAotCSAqLwotCW1heF9idWZfc2l6ZSA9ICgyICogU0xJNF9QQUdFX1NJWkUpOwotCi0JLyoKLQkgKiBTaW5jZSBscGZjX3NnX3NlZ19jbnQgaXMgbW9kdWxlIHBhcmFtLCB0aGUgc2dfZG1hX2J1Zl9zaXplCi0JICogdXNlZCB0byBjcmVhdGUgdGhlIHNnX2RtYV9idWZfcG9vbCBtdXN0IGJlIGNhbGN1bGF0ZWQuCi0JICovCi0JaWYgKHBoYmEtPnNsaTNfb3B0aW9ucyAmIExQRkNfU0xJM19CR19FTkFCTEVEKSB7Ci0JCS8qCi0JCSAqIFRoZSBzY3NpX2J1ZiBmb3IgYSBUMTAtRElGIEkvTyBob2xkcyB0aGUgRkNQIGNtbmQsCi0JCSAqIHRoZSBGQ1AgcnNwLCBhbmQgYSBTR0UuIFNpY2Ugd2UgaGF2ZSBubyBjb250cm9sCi0JCSAqIG92ZXIgaG93IG1hbnkgcHJvdGVjdGlvbiBzZWdtZW50cyB0aGUgU0NTSSBMYXllcgotCQkgKiB3aWxsIGhhbmQgdXMgKGllOiB0aGVyZSBjb3VsZCBiZSBvbmUgZm9yIGV2ZXJ5IGJsb2NrCi0JCSAqIGluIHRoZSBJTyksIGp1c3QgYWxsb2NhdGUgZW5vdWdoIFNHRXMgdG8gYWNjb21pZGF0ZQotCQkgKiBvdXIgbWF4IGFtb3VudCBhbmQgd2UgbmVlZCB0byBsaW1pdCBscGZjX3NnX3NlZ19jbnQKLQkJICogdG8gbWluaW1pemUgdGhlIHJpc2sgb2YgcnVubmluZyBvdXQuCi0JCSAqLwotCQlwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplID0gc2l6ZW9mKHN0cnVjdCBmY3BfY21uZCkgKwotCQkJCXNpemVvZihzdHJ1Y3QgZmNwX3JzcCkgKyBtYXhfYnVmX3NpemU7Ci0KLQkJLyogVG90YWwgU0dFcyBmb3Igc2NzaV9zZ19saXN0IGFuZCBzY3NpX3NnX3Byb3RfbGlzdCAqLwotCQlwaGJhLT5jZmdfdG90YWxfc2VnX2NudCA9IExQRkNfTUFYX1NHTF9TRUdfQ05UOwotCi0JCS8qCi0JCSAqIElmIHN1cHBvcnRpbmcgRElGLCByZWR1Y2UgdGhlIHNlZyBjb3VudCBmb3Igc2NzaSB0bwotCQkgKiBhbGxvdyByb29tIGZvciB0aGUgRElGIHNnZXMuCi0JCSAqLwotCQlpZiAocGhiYS0+Y2ZnX2VuYWJsZV9iZyAmJgotCQkgICAgcGhiYS0+Y2ZnX3NnX3NlZ19jbnQgPiBMUEZDX01BWF9CR19TTEk0X1NFR19DTlRfRElGKQotCQkJcGhiYS0+Y2ZnX3Njc2lfc2VnX2NudCA9IExQRkNfTUFYX0JHX1NMSTRfU0VHX0NOVF9ESUY7Ci0JCWVsc2UKLQkJCXBoYmEtPmNmZ19zY3NpX3NlZ19jbnQgPSBwaGJhLT5jZmdfc2dfc2VnX2NudDsKLQotCX0gZWxzZSB7Ci0JCS8qCi0JCSAqIFRoZSBzY3NpX2J1ZiBmb3IgYSByZWd1bGFyIEkvTyBob2xkcyB0aGUgRkNQIGNtbmQsCi0JCSAqIHRoZSBGQ1AgcnNwLCBhIFNHRSBmb3IgZWFjaCwgYW5kIGEgU0dFIGZvciB1cCB0bwotCQkgKiBjZmdfc2dfc2VnX2NudCBkYXRhIHNlZ21lbnRzLgotCQkgKi8KLQkJcGhiYS0+Y2ZnX3NnX2RtYV9idWZfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZmNwX2NtbmQpICsKLQkJCQlzaXplb2Yoc3RydWN0IGZjcF9yc3ApICsKLQkJCQkoKHBoYmEtPmNmZ19zZ19zZWdfY250ICsgZXh0cmEpICoKLQkJCQlzaXplb2Yoc3RydWN0IHNsaTRfc2dlKSk7Ci0KLQkJLyogVG90YWwgU0dFcyBmb3Igc2NzaV9zZ19saXN0ICovCi0JCXBoYmEtPmNmZ190b3RhbF9zZWdfY250ID0gcGhiYS0+Y2ZnX3NnX3NlZ19jbnQgKyBleHRyYTsKLQkJcGhiYS0+Y2ZnX3Njc2lfc2VnX2NudCA9IHBoYmEtPmNmZ19zZ19zZWdfY250OwotCi0JCS8qCi0JCSAqIE5PVEU6IGlmIChwaGJhLT5jZmdfc2dfc2VnX2NudCArIGV4dHJhKSA8PSAyNTYgd2Ugb25seQotCQkgKiBuZWVkIHRvIHBvc3QgMSBwYWdlIGZvciB0aGUgU0dMLgotCQkgKi8KLQl9Ci0KLQkvKiBMaW1pdCB0byBMUEZDX01BWF9OVk1FX1NFR19DTlQgZm9yIE5WTUUuICovCi0JaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKSB7Ci0JCWlmIChwaGJhLT5jZmdfc2dfc2VnX2NudCA+IExQRkNfTUFYX05WTUVfU0VHX0NOVCkgewotCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fSU5GTywgTE9HX05WTUUgfCBMT0dfSU5JVCwKLQkJCQkJIjYzMDAgUmVkdWNpbmcgTlZNRSBzZyBzZWdtZW50ICIKLQkJCQkJImNudCB0byAlZFxuIiwKLQkJCQkJTFBGQ19NQVhfTlZNRV9TRUdfQ05UKTsKLQkJCXBoYmEtPmNmZ19udm1lX3NlZ19jbnQgPSBMUEZDX01BWF9OVk1FX1NFR19DTlQ7Ci0JCX0gZWxzZQotCQkJcGhiYS0+Y2ZnX252bWVfc2VnX2NudCA9IHBoYmEtPmNmZ19zZ19zZWdfY250OwotCX0KLQotCS8qIEluaXRpYWxpemUgdGhlIGhvc3QgdGVtcGxhdGVzIHdpdGggdGhlIHVwZGF0ZWQgdmFsdWVzLiAqLwotCWxwZmNfdnBvcnRfdGVtcGxhdGUuc2dfdGFibGVzaXplID0gcGhiYS0+Y2ZnX3Njc2lfc2VnX2NudDsKLQlscGZjX3RlbXBsYXRlLnNnX3RhYmxlc2l6ZSA9IHBoYmEtPmNmZ19zY3NpX3NlZ19jbnQ7Ci0JbHBmY190ZW1wbGF0ZV9ub19oci5zZ190YWJsZXNpemUgPSBwaGJhLT5jZmdfc2NzaV9zZWdfY250OwotCi0JaWYgKHBoYmEtPmNmZ19zZ19kbWFfYnVmX3NpemUgIDw9IExQRkNfTUlOX1NHX1NMSTRfQlVGX1NaKQotCQlwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplID0gTFBGQ19NSU5fU0dfU0xJNF9CVUZfU1o7Ci0JZWxzZQotCQlwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplID0KLQkJCVNMSTRfUEFHRV9BTElHTihwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplKTsKLQotCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19JTklUIHwgTE9HX0ZDUCwKLQkJCSI5MDg3IHNnX3NlZ19jbnQ6JWQgZG1hYnVmX3NpemU6JWQgIgotCQkJInRvdGFsOiVkIHNjc2k6JWQgbnZtZTolZFxuIiwKLQkJCXBoYmEtPmNmZ19zZ19zZWdfY250LCBwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplLAotCQkJcGhiYS0+Y2ZnX3RvdGFsX3NlZ19jbnQsICBwaGJhLT5jZmdfc2NzaV9zZWdfY250LAotCQkJcGhiYS0+Y2ZnX252bWVfc2VnX2NudCk7Ci0KIAkvKiBJbml0aWFsaXplIGJ1ZmZlciBxdWV1ZSBtYW5hZ2VtZW50IGZpZWxkcyAqLwogCUlOSVRfTElTVF9IRUFEKCZwaGJhLT5oYnFzW0xQRkNfRUxTX0hCUV0uaGJxX2J1ZmZlcl9saXN0KTsKIAlwaGJhLT5oYnFzW0xQRkNfRUxTX0hCUV0uaGJxX2FsbG9jX2J1ZmZlciA9IGxwZmNfc2xpNF9yYl9hbGxvYzsKQEAgLTY1NTIsMTEgKzY0NzksOSBAQCBscGZjX3NsaTRfZHJpdmVyX3Jlc291cmNlX3NldHVwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkvKgogCSAqIEluaXRpYWxpemUgdGhlIFNMSSBMYXllciB0byBydW4gd2l0aCBscGZjIFNMSTQgSEJBcy4KIAkgKi8KLQlpZiAocGhiYS0+Y2ZnX2VuYWJsZV9mYzRfdHlwZSAmIExQRkNfRU5BQkxFX0ZDUCkgewotCQkvKiBJbml0aWFsaXplIHRoZSBBYm9ydCBzY3NpIGJ1ZmZlciBsaXN0IHVzZWQgYnkgZHJpdmVyICovCi0JCXNwaW5fbG9ja19pbml0KCZwaGJhLT5zbGk0X2hiYS5hYnRzX3Njc2lfYnVmX2xpc3RfbG9jayk7Ci0JCUlOSVRfTElTVF9IRUFEKCZwaGJhLT5zbGk0X2hiYS5scGZjX2FidHNfc2NzaV9idWZfbGlzdCk7Ci0JfQorCS8qIEluaXRpYWxpemUgdGhlIEFib3J0IGJ1ZmZlciBsaXN0IHVzZWQgYnkgZHJpdmVyICovCisJc3Bpbl9sb2NrX2luaXQoJnBoYmEtPnNsaTRfaGJhLmFidHNfaW9fYnVmX2xpc3RfbG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJnBoYmEtPnNsaTRfaGJhLmxwZmNfYWJ0c19pb19idWZfbGlzdCk7CiAKIAlpZiAocGhiYS0+Y2ZnX2VuYWJsZV9mYzRfdHlwZSAmIExQRkNfRU5BQkxFX05WTUUpIHsKIAkJLyogSW5pdGlhbGl6ZSB0aGUgQWJvcnQgbnZtZSBidWZmZXIgbGlzdCB1c2VkIGJ5IGRyaXZlciAqLwpAQCAtNjc2NCw2ICs2Njg5LDEzMSBAQCBscGZjX3NsaTRfZHJpdmVyX3Jlc291cmNlX3NldHVwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkJfQogCX0KIAorCS8qCisJICogMSBmb3IgY21kLCAxIGZvciByc3AsIE5WTUUgYWRkcyBhbiBleHRyYSBvbmUKKwkgKiBmb3IgYm91bmRhcnkgY29uZGl0aW9ucyBpbiBpdHMgbWF4X3NnbF9zZWdtZW50IHRlbXBsYXRlLgorCSAqLworCWV4dHJhID0gMjsKKwlpZiAocGhiYS0+Y2ZnX2VuYWJsZV9mYzRfdHlwZSAmIExQRkNfRU5BQkxFX05WTUUpCisJCWV4dHJhKys7CisKKwkvKgorCSAqIEl0IGRvZXNuJ3QgbWF0dGVyIHdoYXQgZmFtaWx5IG91ciBhZGFwdGVyIGlzIGluLCB3ZSBhcmUKKwkgKiBsaW1pdGVkIHRvIDIgUGFnZXMsIDUxMiBTR0VzLCBmb3Igb3VyIFNHTC4KKwkgKiBUaGVyZSBhcmUgZ29pbmcgdG8gYmUgMiByZXNlcnZlZCBTR0VzOiAxIEZDUCBjbW5kICsgMSBGQ1AgcnNwCisJICovCisJbWF4X2J1Zl9zaXplID0gKDIgKiBTTEk0X1BBR0VfU0laRSk7CisKKwkvKgorCSAqIFNpbmNlIGxwZmNfc2dfc2VnX2NudCBpcyBtb2R1bGUgcGFyYW0sIHRoZSBzZ19kbWFfYnVmX3NpemUKKwkgKiB1c2VkIHRvIGNyZWF0ZSB0aGUgc2dfZG1hX2J1Zl9wb29sIG11c3QgYmUgY2FsY3VsYXRlZC4KKwkgKi8KKwlpZiAocGhiYS0+c2xpM19vcHRpb25zICYgTFBGQ19TTEkzX0JHX0VOQUJMRUQpIHsKKwkJLyogQm90aCBjZmdfZW5hYmxlX2JnIGFuZCBjZmdfZXh0ZXJuYWxfZGlmIGNvZGUgcGF0aHMgKi8KKworCQkvKgorCQkgKiBUaGUgc2NzaV9idWYgZm9yIGEgVDEwLURJRiBJL08gaG9sZHMgdGhlIEZDUCBjbW5kLAorCQkgKiB0aGUgRkNQIHJzcCwgYW5kIGEgU0dFLiBTaWNlIHdlIGhhdmUgbm8gY29udHJvbAorCQkgKiBvdmVyIGhvdyBtYW55IHByb3RlY3Rpb24gc2VnbWVudHMgdGhlIFNDU0kgTGF5ZXIKKwkJICogd2lsbCBoYW5kIHVzIChpZTogdGhlcmUgY291bGQgYmUgb25lIGZvciBldmVyeSBibG9jaworCQkgKiBpbiB0aGUgSU8pLCBqdXN0IGFsbG9jYXRlIGVub3VnaCBTR0VzIHRvIGFjY29taWRhdGUKKwkJICogb3VyIG1heCBhbW91bnQgYW5kIHdlIG5lZWQgdG8gbGltaXQgbHBmY19zZ19zZWdfY250CisJCSAqIHRvIG1pbmltaXplIHRoZSByaXNrIG9mIHJ1bm5pbmcgb3V0LgorCQkgKi8KKwkJcGhiYS0+Y2ZnX3NnX2RtYV9idWZfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZmNwX2NtbmQpICsKKwkJCQlzaXplb2Yoc3RydWN0IGZjcF9yc3ApICsgbWF4X2J1Zl9zaXplOworCisJCS8qIFRvdGFsIFNHRXMgZm9yIHNjc2lfc2dfbGlzdCBhbmQgc2NzaV9zZ19wcm90X2xpc3QgKi8KKwkJcGhiYS0+Y2ZnX3RvdGFsX3NlZ19jbnQgPSBMUEZDX01BWF9TR0xfU0VHX0NOVDsKKworCQkvKgorCQkgKiBJZiBzdXBwb3J0aW5nIERJRiwgcmVkdWNlIHRoZSBzZWcgY291bnQgZm9yIHNjc2kgdG8KKwkJICogYWxsb3cgcm9vbSBmb3IgdGhlIERJRiBzZ2VzLgorCQkgKi8KKwkJaWYgKHBoYmEtPmNmZ19lbmFibGVfYmcgJiYKKwkJICAgIHBoYmEtPmNmZ19zZ19zZWdfY250ID4gTFBGQ19NQVhfQkdfU0xJNF9TRUdfQ05UX0RJRikKKwkJCXBoYmEtPmNmZ19zY3NpX3NlZ19jbnQgPSBMUEZDX01BWF9CR19TTEk0X1NFR19DTlRfRElGOworCQllbHNlCisJCQlwaGJhLT5jZmdfc2NzaV9zZWdfY250ID0gcGhiYS0+Y2ZnX3NnX3NlZ19jbnQ7CisKKwl9IGVsc2UgeworCQkvKgorCQkgKiBUaGUgc2NzaV9idWYgZm9yIGEgcmVndWxhciBJL08gaG9sZHMgdGhlIEZDUCBjbW5kLAorCQkgKiB0aGUgRkNQIHJzcCwgYSBTR0UgZm9yIGVhY2gsIGFuZCBhIFNHRSBmb3IgdXAgdG8KKwkJICogY2ZnX3NnX3NlZ19jbnQgZGF0YSBzZWdtZW50cy4KKwkJICovCisJCXBoYmEtPmNmZ19zZ19kbWFfYnVmX3NpemUgPSBzaXplb2Yoc3RydWN0IGZjcF9jbW5kKSArCisJCQkJc2l6ZW9mKHN0cnVjdCBmY3BfcnNwKSArCisJCQkJKChwaGJhLT5jZmdfc2dfc2VnX2NudCArIGV4dHJhKSAqCisJCQkJc2l6ZW9mKHN0cnVjdCBzbGk0X3NnZSkpOworCisJCS8qIFRvdGFsIFNHRXMgZm9yIHNjc2lfc2dfbGlzdCAqLworCQlwaGJhLT5jZmdfdG90YWxfc2VnX2NudCA9IHBoYmEtPmNmZ19zZ19zZWdfY250ICsgZXh0cmE7CisJCXBoYmEtPmNmZ19zY3NpX3NlZ19jbnQgPSBwaGJhLT5jZmdfc2dfc2VnX2NudDsKKworCQkvKgorCQkgKiBOT1RFOiBpZiAocGhiYS0+Y2ZnX3NnX3NlZ19jbnQgKyBleHRyYSkgPD0gMjU2IHdlIG9ubHkKKwkJICogbmVlZCB0byBwb3N0IDEgcGFnZSBmb3IgdGhlIFNHTC4KKwkJICovCisJfQorCisJaWYgKHBoYmEtPmNmZ194cHNnbCAmJiAhcGhiYS0+bnZtZXRfc3VwcG9ydCkKKwkJcGhiYS0+Y2ZnX3NnX2RtYV9idWZfc2l6ZSA9IExQRkNfREVGQVVMVF9YUFNHTF9TSVpFOworCWVsc2UgaWYgKHBoYmEtPmNmZ19zZ19kbWFfYnVmX3NpemUgIDw9IExQRkNfTUlOX1NHX1NMSTRfQlVGX1NaKQorCQlwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplID0gTFBGQ19NSU5fU0dfU0xJNF9CVUZfU1o7CisJZWxzZQorCQlwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplID0KKwkJCQlTTEk0X1BBR0VfQUxJR04ocGhiYS0+Y2ZnX3NnX2RtYV9idWZfc2l6ZSk7CisKKwlwaGJhLT5ib3JkZXJfc2dlX251bSA9IHBoYmEtPmNmZ19zZ19kbWFfYnVmX3NpemUgLworCQkJICAgICAgIHNpemVvZihzdHJ1Y3Qgc2xpNF9zZ2UpOworCisJLyogTGltaXQgdG8gTFBGQ19NQVhfTlZNRV9TRUdfQ05UIGZvciBOVk1FLiAqLworCWlmIChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkgeworCQlpZiAocGhiYS0+Y2ZnX3NnX3NlZ19jbnQgPiBMUEZDX01BWF9OVk1FX1NFR19DTlQpIHsKKwkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19OVk1FIHwgTE9HX0lOSVQsCisJCQkJCSI2MzAwIFJlZHVjaW5nIE5WTUUgc2cgc2VnbWVudCAiCisJCQkJCSJjbnQgdG8gJWRcbiIsCisJCQkJCUxQRkNfTUFYX05WTUVfU0VHX0NOVCk7CisJCQlwaGJhLT5jZmdfbnZtZV9zZWdfY250ID0gTFBGQ19NQVhfTlZNRV9TRUdfQ05UOworCQl9IGVsc2UKKwkJCXBoYmEtPmNmZ19udm1lX3NlZ19jbnQgPSBwaGJhLT5jZmdfc2dfc2VnX2NudDsKKwl9CisKKwkvKiBJbml0aWFsaXplIHRoZSBob3N0IHRlbXBsYXRlcyB3aXRoIHRoZSB1cGRhdGVkIHZhbHVlcy4gKi8KKwlscGZjX3Zwb3J0X3RlbXBsYXRlLnNnX3RhYmxlc2l6ZSA9IHBoYmEtPmNmZ19zY3NpX3NlZ19jbnQ7CisJbHBmY190ZW1wbGF0ZS5zZ190YWJsZXNpemUgPSBwaGJhLT5jZmdfc2NzaV9zZWdfY250OworCWxwZmNfdGVtcGxhdGVfbm9faHIuc2dfdGFibGVzaXplID0gcGhiYS0+Y2ZnX3Njc2lfc2VnX2NudDsKKworCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19JTklUIHwgTE9HX0ZDUCwKKwkJCSI5MDg3IHNnX3NlZ19jbnQ6JWQgZG1hYnVmX3NpemU6JWQgIgorCQkJInRvdGFsOiVkIHNjc2k6JWQgbnZtZTolZFxuIiwKKwkJCXBoYmEtPmNmZ19zZ19zZWdfY250LCBwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplLAorCQkJcGhiYS0+Y2ZnX3RvdGFsX3NlZ19jbnQsICBwaGJhLT5jZmdfc2NzaV9zZWdfY250LAorCQkJcGhiYS0+Y2ZnX252bWVfc2VnX2NudCk7CisKKwlpZiAocGhiYS0+Y2ZnX3NnX2RtYV9idWZfc2l6ZSA8IFNMSTRfUEFHRV9TSVpFKQorCQlpID0gcGhiYS0+Y2ZnX3NnX2RtYV9idWZfc2l6ZTsKKwllbHNlCisJCWkgPSBTTEk0X1BBR0VfU0laRTsKKworCXBoYmEtPmxwZmNfc2dfZG1hX2J1Zl9wb29sID0KKwkJCWRtYV9wb29sX2NyZWF0ZSgibHBmY19zZ19kbWFfYnVmX3Bvb2wiLAorCQkJCQkmcGhiYS0+cGNpZGV2LT5kZXYsCisJCQkJCXBoYmEtPmNmZ19zZ19kbWFfYnVmX3NpemUsCisJCQkJCWksIDApOworCWlmICghcGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wpCisJCWdvdG8gb3V0X2ZyZWVfYnNtYng7CisKKwlwaGJhLT5scGZjX2NtZF9yc3BfYnVmX3Bvb2wgPQorCQkJZG1hX3Bvb2xfY3JlYXRlKCJscGZjX2NtZF9yc3BfYnVmX3Bvb2wiLAorCQkJCQkmcGhiYS0+cGNpZGV2LT5kZXYsCisJCQkJCXNpemVvZihzdHJ1Y3QgZmNwX2NtbmQpICsKKwkJCQkJc2l6ZW9mKHN0cnVjdCBmY3BfcnNwKSwKKwkJCQkJaSwgMCk7CisJaWYgKCFwaGJhLT5scGZjX2NtZF9yc3BfYnVmX3Bvb2wpCisJCWdvdG8gb3V0X2ZyZWVfc2dfZG1hX2J1ZjsKKwogCW1lbXBvb2xfZnJlZShtYm94cSwgcGhiYS0+bWJveF9tZW1fcG9vbCk7CiAKIAkvKiBWZXJpZnkgT0FTIGlzIHN1cHBvcnRlZCAqLwpAQCAtNjc3NSwxMiArNjgyNSwxMiBAQCBscGZjX3NsaTRfZHJpdmVyX3Jlc291cmNlX3NldHVwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkvKiBWZXJpZnkgYWxsIHRoZSBTTEk0IHF1ZXVlcyAqLwogCXJjID0gbHBmY19zbGk0X3F1ZXVlX3ZlcmlmeShwaGJhKTsKIAlpZiAocmMpCi0JCWdvdG8gb3V0X2ZyZWVfYnNtYng7CisJCWdvdG8gb3V0X2ZyZWVfY21kX3JzcF9idWY7CiAKIAkvKiBDcmVhdGUgZHJpdmVyIGludGVybmFsIENRRSBldmVudCBwb29sICovCiAJcmMgPSBscGZjX3NsaTRfY3FfZXZlbnRfcG9vbF9jcmVhdGUocGhiYSk7CiAJaWYgKHJjKQotCQlnb3RvIG91dF9mcmVlX2JzbWJ4OworCQlnb3RvIG91dF9mcmVlX2NtZF9yc3BfYnVmOwogCiAJLyogSW5pdGlhbGl6ZSBzZ2wgbGlzdHMgcGVyIGhvc3QgKi8KIAlscGZjX2luaXRfc2dsX2xpc3QocGhiYSk7CkBAIC02ODcxLDYgKzY5MjEsMTIgQEAgbHBmY19zbGk0X2RyaXZlcl9yZXNvdXJjZV9zZXR1cChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJbHBmY19mcmVlX2FjdGl2ZV9zZ2wocGhiYSk7CiBvdXRfZGVzdHJveV9jcV9ldmVudF9wb29sOgogCWxwZmNfc2xpNF9jcV9ldmVudF9wb29sX2Rlc3Ryb3kocGhiYSk7CitvdXRfZnJlZV9jbWRfcnNwX2J1ZjoKKwlkbWFfcG9vbF9kZXN0cm95KHBoYmEtPmxwZmNfY21kX3JzcF9idWZfcG9vbCk7CisJcGhiYS0+bHBmY19jbWRfcnNwX2J1Zl9wb29sID0gTlVMTDsKK291dF9mcmVlX3NnX2RtYV9idWY6CisJZG1hX3Bvb2xfZGVzdHJveShwaGJhLT5scGZjX3NnX2RtYV9idWZfcG9vbCk7CisJcGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wgPSBOVUxMOwogb3V0X2ZyZWVfYnNtYng6CiAJbHBmY19kZXN0cm95X2Jvb3RzdHJhcF9tYm94KHBoYmEpOwogb3V0X2ZyZWVfbWVtOgpAQCAtNjk5NywxMiArNzA1Myw2IEBAIGxwZmNfc2V0dXBfZHJpdmVyX3Jlc291cmNlX3BoYXNlMihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCXJldHVybiBlcnJvcjsKIAl9CiAKLQkvKiBUaGUgbHBmY193cSB3b3JrcXVldWUgZm9yIGRlZmVycmVkIGlycSB1c2UsIGlzIG9ubHkgdXNlZCBmb3IgU0xJNCAqLwotCWlmIChwaGJhLT5zbGlfcmV2ID09IExQRkNfU0xJX1JFVjQpCi0JCXBoYmEtPndxID0gYWxsb2Nfd29ya3F1ZXVlKCJscGZjX3dxIiwgV1FfTUVNX1JFQ0xBSU0sIDApOwotCWVsc2UKLQkJcGhiYS0+d3EgPSBOVUxMOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTc1NjMsNyArNzYxMyw2IEBAIGxwZmNfc2V0dXBfYmcoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCkKIAl1aW50MzJfdCBvbGRfbWFzazsKIAl1aW50MzJfdCBvbGRfZ3VhcmQ7CiAKLQlpbnQgcGFnZWNudCA9IDEwOwogCWlmIChwaGJhLT5jZmdfcHJvdF9tYXNrICYmIHBoYmEtPmNmZ19wcm90X2d1YXJkKSB7CiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19JTklULAogCQkJCSIxNDc4IFJlZ2lzdGVyaW5nIEJsb2NrR3VhcmQgd2l0aCB0aGUgIgpAQCAtNzYwMCw1NiArNzY0OSw2IEBAIGxwZmNfc2V0dXBfYmcoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCkKIAkJCQkibGF5ZXIsIEJhZCBwcm90ZWN0aW9uIHBhcmFtZXRlcnM6ICVkICVkXG4iLAogCQkJCW9sZF9tYXNrLCBvbGRfZ3VhcmQpOwogCX0KLQotCWlmICghX2R1bXBfYnVmX2RhdGEpIHsKLQkJd2hpbGUgKHBhZ2VjbnQpIHsKLQkJCXNwaW5fbG9ja19pbml0KCZfZHVtcF9idWZfbG9jayk7Ci0JCQlfZHVtcF9idWZfZGF0YSA9Ci0JCQkJKGNoYXIgKikgX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLCBwYWdlY250KTsKLQkJCWlmIChfZHVtcF9idWZfZGF0YSkgewotCQkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0JHLAotCQkJCQkiOTA0MyBCTEtHUkQ6IGFsbG9jYXRlZCAlZCBwYWdlcyBmb3IgIgotCQkJCSAgICAgICAiX2R1bXBfYnVmX2RhdGEgYXQgMHglcFxuIiwKLQkJCQkgICAgICAgKDEgPDwgcGFnZWNudCksIF9kdW1wX2J1Zl9kYXRhKTsKLQkJCQlfZHVtcF9idWZfZGF0YV9vcmRlciA9IHBhZ2VjbnQ7Ci0JCQkJbWVtc2V0KF9kdW1wX2J1Zl9kYXRhLCAwLAotCQkJCSAgICAgICAoKDEgPDwgUEFHRV9TSElGVCkgPDwgcGFnZWNudCkpOwotCQkJCWJyZWFrOwotCQkJfSBlbHNlCi0JCQkJLS1wYWdlY250OwotCQl9Ci0JCWlmICghX2R1bXBfYnVmX2RhdGFfb3JkZXIpCi0JCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19CRywKLQkJCQkiOTA0NCBCTEtHUkQ6IEVSUk9SIHVuYWJsZSB0byBhbGxvY2F0ZSAiCi0JCQkgICAgICAgIm1lbW9yeSBmb3IgaGV4ZHVtcFxuIik7Ci0JfSBlbHNlCi0JCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0JHLAotCQkJIjkwNDUgQkxLR1JEOiBhbHJlYWR5IGFsbG9jYXRlZCBfZHVtcF9idWZfZGF0YT0weCVwIgotCQkgICAgICAgIlxuIiwgX2R1bXBfYnVmX2RhdGEpOwotCWlmICghX2R1bXBfYnVmX2RpZikgewotCQl3aGlsZSAocGFnZWNudCkgewotCQkJX2R1bXBfYnVmX2RpZiA9Ci0JCQkJKGNoYXIgKikgX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLCBwYWdlY250KTsKLQkJCWlmIChfZHVtcF9idWZfZGlmKSB7Ci0JCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfQkcsCi0JCQkJCSI5MDQ2IEJMS0dSRDogYWxsb2NhdGVkICVkIHBhZ2VzIGZvciAiCi0JCQkJICAgICAgICJfZHVtcF9idWZfZGlmIGF0IDB4JXBcbiIsCi0JCQkJICAgICAgICgxIDw8IHBhZ2VjbnQpLCBfZHVtcF9idWZfZGlmKTsKLQkJCQlfZHVtcF9idWZfZGlmX29yZGVyID0gcGFnZWNudDsKLQkJCQltZW1zZXQoX2R1bXBfYnVmX2RpZiwgMCwKLQkJCQkgICAgICAgKCgxIDw8IFBBR0VfU0hJRlQpIDw8IHBhZ2VjbnQpKTsKLQkJCQlicmVhazsKLQkJCX0gZWxzZQotCQkJCS0tcGFnZWNudDsKLQkJfQotCQlpZiAoIV9kdW1wX2J1Zl9kaWZfb3JkZXIpCi0JCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19CRywKLQkJCSI5MDQ3IEJMS0dSRDogRVJST1IgdW5hYmxlIHRvIGFsbG9jYXRlICIKLQkJCSAgICAgICAibWVtb3J5IGZvciBoZXhkdW1wXG4iKTsKLQl9IGVsc2UKLQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfQkcsCi0JCQkiOTA0OCBCTEtHUkQ6IGFscmVhZHkgYWxsb2NhdGVkIF9kdW1wX2J1Zl9kaWY9MHglcFxuIiwKLQkJICAgICAgIF9kdW1wX2J1Zl9kaWYpOwogfQogCiAvKioKQEAgLTgzMDksNiArODMwOCwxMCBAQCBscGZjX3NsaTRfcmVhZF9jb25maWcoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCQkJYmZfZ2V0KGxwZmNfbWJ4X3JkX2NvbmZfZXh0bnRzX2ludXNlLCByZF9jb25maWcpOwogCQlwaGJhLT5zbGk0X2hiYS5tYXhfY2ZnX3BhcmFtLm1heF94cmkgPQogCQkJYmZfZ2V0KGxwZmNfbWJ4X3JkX2NvbmZfeHJpX2NvdW50LCByZF9jb25maWcpOworCQkvKiBSZWR1Y2UgcmVzb3VyY2UgdXNhZ2UgaW4ga2R1bXAgZW52aXJvbm1lbnQgKi8KKwkJaWYgKGlzX2tkdW1wX2tlcm5lbCgpICYmCisJCSAgICBwaGJhLT5zbGk0X2hiYS5tYXhfY2ZnX3BhcmFtLm1heF94cmkgPiA1MTIpCisJCQlwaGJhLT5zbGk0X2hiYS5tYXhfY2ZnX3BhcmFtLm1heF94cmkgPSA1MTI7CiAJCXBoYmEtPnNsaTRfaGJhLm1heF9jZmdfcGFyYW0ueHJpX2Jhc2UgPQogCQkJYmZfZ2V0KGxwZmNfbWJ4X3JkX2NvbmZfeHJpX2Jhc2UsIHJkX2NvbmZpZyk7CiAJCXBoYmEtPnNsaTRfaGJhLm1heF9jZmdfcGFyYW0ubWF4X3ZwaSA9CkBAIC04MzgyLDExICs4Mzg1LDYgQEAgbHBmY19zbGk0X3JlYWRfY29uZmlnKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkJICovCiAJCXFtaW4gLT0gNDsKIAotCQkvKiBJZiBOVk1FIGlzIGNvbmZpZ3VyZWQsIGRvdWJsZSB0aGUgbnVtYmVyIG9mIENRL1dRcyBuZWVkZWQgKi8KLQkJaWYgKChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkgJiYKLQkJICAgICFwaGJhLT5udm1ldF9zdXBwb3J0KQotCQkJcW1pbiAvPSAyOwotCiAJCS8qIENoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBlbm91Z2ggZm9yIE5WTUUgKi8KIAkJaWYgKChwaGJhLT5jZmdfaXJxX2NoYW5uID4gcW1pbikgfHwKIAkJICAgIChwaGJhLT5jZmdfaGR3X3F1ZXVlID4gcW1pbikpIHsKQEAgLTg2NDMsNTEgKzg2NDEsMTQgQEAgbHBmY19zbGk0X3F1ZXVlX3ZlcmlmeShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiB9CiAKIHN0YXRpYyBpbnQKLWxwZmNfYWxsb2NfbnZtZV93cV9jcShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIGludCB3cWlkeCkKK2xwZmNfYWxsb2NfaW9fd3FfY3Eoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgaWR4KQogewogCXN0cnVjdCBscGZjX3F1ZXVlICpxZGVzYzsKKwl1MzIgd3Flc2l6ZTsKIAlpbnQgY3B1OwogCi0JY3B1ID0gbHBmY19maW5kX2NwdV9oYW5kbGUocGhiYSwgd3FpZHgsIExQRkNfRklORF9CWV9IRFdRKTsKLQlxZGVzYyA9IGxwZmNfc2xpNF9xdWV1ZV9hbGxvYyhwaGJhLCBMUEZDX0VYUEFOREVEX1BBR0VfU0laRSwKLQkJCQkgICAgICBwaGJhLT5zbGk0X2hiYS5jcV9lc2l6ZSwKLQkJCQkgICAgICBMUEZDX0NRRV9FWFBfQ09VTlQsIGNwdSk7Ci0JaWYgKCFxZGVzYykgewotCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19JTklULAotCQkJCSIwNTA4IEZhaWxlZCBhbGxvY2F0ZSBmYXN0LXBhdGggTlZNRSBDUSAoJWQpXG4iLAotCQkJCXdxaWR4KTsKLQkJcmV0dXJuIDE7Ci0JfQotCXFkZXNjLT5xZV92YWxpZCA9IDE7Ci0JcWRlc2MtPmhkd3EgPSB3cWlkeDsKLQlxZGVzYy0+Y2hhbm4gPSBjcHU7Ci0JcGhiYS0+c2xpNF9oYmEuaGR3cVt3cWlkeF0ubnZtZV9jcSA9IHFkZXNjOwotCi0JcWRlc2MgPSBscGZjX3NsaTRfcXVldWVfYWxsb2MocGhiYSwgTFBGQ19FWFBBTkRFRF9QQUdFX1NJWkUsCi0JCQkJICAgICAgTFBGQ19XUUUxMjhfU0laRSwgTFBGQ19XUUVfRVhQX0NPVU5ULAotCQkJCSAgICAgIGNwdSk7Ci0JaWYgKCFxZGVzYykgewotCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19JTklULAotCQkJCSIwNTA5IEZhaWxlZCBhbGxvY2F0ZSBmYXN0LXBhdGggTlZNRSBXUSAoJWQpXG4iLAotCQkJCXdxaWR4KTsKLQkJcmV0dXJuIDE7Ci0JfQotCXFkZXNjLT5oZHdxID0gd3FpZHg7Ci0JcWRlc2MtPmNoYW5uID0gd3FpZHg7Ci0JcGhiYS0+c2xpNF9oYmEuaGR3cVt3cWlkeF0ubnZtZV93cSA9IHFkZXNjOwotCWxpc3RfYWRkX3RhaWwoJnFkZXNjLT53cV9saXN0LCAmcGhiYS0+c2xpNF9oYmEubHBmY193cV9saXN0KTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotbHBmY19hbGxvY19mY3Bfd3FfY3Eoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgd3FpZHgpCi17Ci0Jc3RydWN0IGxwZmNfcXVldWUgKnFkZXNjOwotCXVpbnQzMl90IHdxZXNpemU7Ci0JaW50IGNwdTsKLQotCWNwdSA9IGxwZmNfZmluZF9jcHVfaGFuZGxlKHBoYmEsIHdxaWR4LCBMUEZDX0ZJTkRfQllfSERXUSk7Ci0JLyogQ3JlYXRlIEZhc3QgUGF0aCBGQ1AgQ1FzICovCisJY3B1ID0gbHBmY19maW5kX2NwdV9oYW5kbGUocGhiYSwgaWR4LCBMUEZDX0ZJTkRfQllfSERXUSk7CisJLyogQ3JlYXRlIEZhc3QgUGF0aCBJTyBDUXMgKi8KIAlpZiAocGhiYS0+ZW5hYl9leHBfd3FjcV9wYWdlcykKIAkJLyogSW5jcmVhc2UgdGhlIENRIHNpemUgd2hlbiBXUUVzIGNvbnRhaW4gYW4gZW1iZWRkZWQgY2RiICovCiAJCXFkZXNjID0gbHBmY19zbGk0X3F1ZXVlX2FsbG9jKHBoYmEsIExQRkNfRVhQQU5ERURfUEFHRV9TSVpFLApAQCAtODcwMCwxNSArODY2MSwxNSBAQCBscGZjX2FsbG9jX2ZjcF93cV9jcShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIGludCB3cWlkeCkKIAkJCQkJICAgICAgcGhiYS0+c2xpNF9oYmEuY3FfZWNvdW50LCBjcHUpOwogCWlmICghcWRlc2MpIHsKIAkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfSU5JVCwKLQkJCSIwNDk5IEZhaWxlZCBhbGxvY2F0ZSBmYXN0LXBhdGggRkNQIENRICglZClcbiIsIHdxaWR4KTsKKwkJCSIwNDk5IEZhaWxlZCBhbGxvY2F0ZSBmYXN0LXBhdGggSU8gQ1EgKCVkKVxuIiwgaWR4KTsKIAkJcmV0dXJuIDE7CiAJfQogCXFkZXNjLT5xZV92YWxpZCA9IDE7Ci0JcWRlc2MtPmhkd3EgPSB3cWlkeDsKKwlxZGVzYy0+aGR3cSA9IGlkeDsKIAlxZGVzYy0+Y2hhbm4gPSBjcHU7Ci0JcGhiYS0+c2xpNF9oYmEuaGR3cVt3cWlkeF0uZmNwX2NxID0gcWRlc2M7CisJcGhiYS0+c2xpNF9oYmEuaGR3cVtpZHhdLmlvX2NxID0gcWRlc2M7CiAKLQkvKiBDcmVhdGUgRmFzdCBQYXRoIEZDUCBXUXMgKi8KKwkvKiBDcmVhdGUgRmFzdCBQYXRoIElPIFdRcyAqLwogCWlmIChwaGJhLT5lbmFiX2V4cF93cWNxX3BhZ2VzKSB7CiAJCS8qIEluY3JlYXNlIHRoZSBXUSBzaXplIHdoZW4gV1FFcyBjb250YWluIGFuIGVtYmVkZGVkIGNkYiAqLwogCQl3cWVzaXplID0gKHBoYmEtPmZjcF9lbWJlZF9pbykgPwpAQCAtODcyMywxMyArODY4NCwxMyBAQCBscGZjX2FsbG9jX2ZjcF93cV9jcShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIGludCB3cWlkeCkKIAogCWlmICghcWRlc2MpIHsKIAkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfSU5JVCwKLQkJCQkiMDUwMyBGYWlsZWQgYWxsb2NhdGUgZmFzdC1wYXRoIEZDUCBXUSAoJWQpXG4iLAotCQkJCXdxaWR4KTsKKwkJCQkiMDUwMyBGYWlsZWQgYWxsb2NhdGUgZmFzdC1wYXRoIElPIFdRICglZClcbiIsCisJCQkJaWR4KTsKIAkJcmV0dXJuIDE7CiAJfQotCXFkZXNjLT5oZHdxID0gd3FpZHg7Ci0JcWRlc2MtPmNoYW5uID0gd3FpZHg7Ci0JcGhiYS0+c2xpNF9oYmEuaGR3cVt3cWlkeF0uZmNwX3dxID0gcWRlc2M7CisJcWRlc2MtPmhkd3EgPSBpZHg7CisJcWRlc2MtPmNoYW5uID0gY3B1OworCXBoYmEtPnNsaTRfaGJhLmhkd3FbaWR4XS5pb193cSA9IHFkZXNjOwogCWxpc3RfYWRkX3RhaWwoJnFkZXNjLT53cV9saXN0LCAmcGhiYS0+c2xpNF9oYmEubHBmY193cV9saXN0KTsKIAlyZXR1cm4gMDsKIH0KQEAgLTg3OTMsMTIgKzg3NTQsMTMgQEAgbHBmY19zbGk0X3F1ZXVlX2NyZWF0ZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCQlxcC0+Z2V0X2lvX2J1ZnMgPSAwOwogCQkJcXAtPnB1dF9pb19idWZzID0gMDsKIAkJCXFwLT50b3RhbF9pb19idWZzID0gMDsKLQkJCXNwaW5fbG9ja19pbml0KCZxcC0+YWJ0c19zY3NpX2J1Zl9saXN0X2xvY2spOwotCQkJSU5JVF9MSVNUX0hFQUQoJnFwLT5scGZjX2FidHNfc2NzaV9idWZfbGlzdCk7CisJCQlzcGluX2xvY2tfaW5pdCgmcXAtPmFidHNfaW9fYnVmX2xpc3RfbG9jayk7CisJCQlJTklUX0xJU1RfSEVBRCgmcXAtPmxwZmNfYWJ0c19pb19idWZfbGlzdCk7CiAJCQlxcC0+YWJ0c19zY3NpX2lvX2J1ZnMgPSAwOwotCQkJc3Bpbl9sb2NrX2luaXQoJnFwLT5hYnRzX252bWVfYnVmX2xpc3RfbG9jayk7Ci0JCQlJTklUX0xJU1RfSEVBRCgmcXAtPmxwZmNfYWJ0c19udm1lX2J1Zl9saXN0KTsKIAkJCXFwLT5hYnRzX252bWVfaW9fYnVmcyA9IDA7CisJCQlJTklUX0xJU1RfSEVBRCgmcXAtPnNnbF9saXN0KTsKKwkJCUlOSVRfTElTVF9IRUFEKCZxcC0+Y21kX3JzcF9idWZfbGlzdCk7CisJCQlzcGluX2xvY2tfaW5pdCgmcXAtPmhkd3FfbG9jayk7CiAJCX0KIAl9CiAKQEAgLTg4NjQsNyArODgyNiw3IEBAIGxwZmNfc2xpNF9xdWV1ZV9jcmVhdGUoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCQl9CiAJCXFkZXNjLT5xZV92YWxpZCA9IDE7CiAJCXFkZXNjLT5oZHdxID0gY3B1cC0+aGR3cTsKLQkJcWRlc2MtPmNoYW5uID0gY3B1OyAvKiBGaXJzdCBDUFUgdGhpcyBFUSBpcyBhZmZpbml0aXNlZCB0byAqLworCQlxZGVzYy0+Y2hhbm4gPSBjcHU7IC8qIEZpcnN0IENQVSB0aGlzIEVRIGlzIGFmZmluaXRpemVkIHRvICovCiAJCXFkZXNjLT5sYXN0X2NwdSA9IHFkZXNjLT5jaGFubjsKIAogCQkvKiBTYXZlIHRoZSBhbGxvY2F0ZWQgRVEgaW4gdGhlIEhhcmR3YXJlIFF1ZXVlICovCkBAIC04ODk1LDQxICs4ODU3LDMxIEBAIGxwZmNfc2xpNF9xdWV1ZV9jcmVhdGUoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCQlxcC0+aGJhX2VxID0gcGhiYS0+c2xpNF9oYmEuaGR3cVtlcWNwdXAtPmhkd3FdLmhiYV9lcTsKIAl9CiAKLQkvKiBBbGxvY2F0ZSBTQ1NJIFNMSTQgQ1EvV1FzICovCisJLyogQWxsb2NhdGUgSU8gUGF0aCBTTEk0IENRL1dRcyAqLwogCWZvciAoaWR4ID0gMDsgaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgaWR4KyspIHsKLQkJaWYgKGxwZmNfYWxsb2NfZmNwX3dxX2NxKHBoYmEsIGlkeCkpCisJCWlmIChscGZjX2FsbG9jX2lvX3dxX2NxKHBoYmEsIGlkeCkpCiAJCQlnb3RvIG91dF9lcnJvcjsKIAl9CiAKLQkvKiBBbGxvY2F0ZSBOVk1FIFNMSTQgQ1EvV1FzICovCi0JaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKSB7Ci0JCWZvciAoaWR4ID0gMDsgaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgaWR4KyspIHsKLQkJCWlmIChscGZjX2FsbG9jX252bWVfd3FfY3EocGhiYSwgaWR4KSkKLQkJCQlnb3RvIG91dF9lcnJvcjsKLQkJfQotCi0JCWlmIChwaGJhLT5udm1ldF9zdXBwb3J0KSB7Ci0JCQlmb3IgKGlkeCA9IDA7IGlkeCA8IHBoYmEtPmNmZ19udm1ldF9tcnE7IGlkeCsrKSB7Ci0JCQkJY3B1ID0gbHBmY19maW5kX2NwdV9oYW5kbGUocGhiYSwgaWR4LAotCQkJCQkJCSAgIExQRkNfRklORF9CWV9IRFdRKTsKLQkJCQlxZGVzYyA9IGxwZmNfc2xpNF9xdWV1ZV9hbGxvYygKLQkJCQkJCSAgICAgIHBoYmEsCisJaWYgKHBoYmEtPm52bWV0X3N1cHBvcnQpIHsKKwkJZm9yIChpZHggPSAwOyBpZHggPCBwaGJhLT5jZmdfbnZtZXRfbXJxOyBpZHgrKykgeworCQkJY3B1ID0gbHBmY19maW5kX2NwdV9oYW5kbGUocGhiYSwgaWR4LAorCQkJCQkJICAgTFBGQ19GSU5EX0JZX0hEV1EpOworCQkJcWRlc2MgPSBscGZjX3NsaTRfcXVldWVfYWxsb2MocGhiYSwKIAkJCQkJCSAgICAgIExQRkNfREVGQVVMVF9QQUdFX1NJWkUsCiAJCQkJCQkgICAgICBwaGJhLT5zbGk0X2hiYS5jcV9lc2l6ZSwKIAkJCQkJCSAgICAgIHBoYmEtPnNsaTRfaGJhLmNxX2Vjb3VudCwKIAkJCQkJCSAgICAgIGNwdSk7Ci0JCQkJaWYgKCFxZGVzYykgewotCQkJCQlscGZjX3ByaW50Zl9sb2coCi0JCQkJCQlwaGJhLCBLRVJOX0VSUiwgTE9HX0lOSVQsCisJCQlpZiAoIXFkZXNjKSB7CisJCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfSU5JVCwKIAkJCQkJCSIzMTQyIEZhaWxlZCBhbGxvY2F0ZSBOVk1FICIKIAkJCQkJCSJDUSBTZXQgKCVkKVxuIiwgaWR4KTsKLQkJCQkJZ290byBvdXRfZXJyb3I7Ci0JCQkJfQotCQkJCXFkZXNjLT5xZV92YWxpZCA9IDE7Ci0JCQkJcWRlc2MtPmhkd3EgPSBpZHg7Ci0JCQkJcWRlc2MtPmNoYW5uID0gY3B1OwotCQkJCXBoYmEtPnNsaTRfaGJhLm52bWV0X2Nxc2V0W2lkeF0gPSBxZGVzYzsKKwkJCQlnb3RvIG91dF9lcnJvcjsKIAkJCX0KKwkJCXFkZXNjLT5xZV92YWxpZCA9IDE7CisJCQlxZGVzYy0+aGR3cSA9IGlkeDsKKwkJCXFkZXNjLT5jaGFubiA9IGNwdTsKKwkJCXBoYmEtPnNsaTRfaGJhLm52bWV0X2Nxc2V0W2lkeF0gPSBxZGVzYzsKIAkJfQogCX0KIApAQCAtODk2MCw3ICs4OTEyLDcgQEAgbHBmY19zbGk0X3F1ZXVlX2NyZWF0ZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCWdvdG8gb3V0X2Vycm9yOwogCX0KIAlxZGVzYy0+cWVfdmFsaWQgPSAxOwotCXFkZXNjLT5jaGFubiA9IDA7CisJcWRlc2MtPmNoYW5uID0gY3B1OwogCXBoYmEtPnNsaTRfaGJhLmVsc19jcSA9IHFkZXNjOwogCiAKQEAgLTg5NzgsNyArODkzMCw3IEBAIGxwZmNfc2xpNF9xdWV1ZV9jcmVhdGUoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCQkJCSIwNTA1IEZhaWxlZCBhbGxvY2F0ZSBzbG93LXBhdGggTVFcbiIpOwogCQlnb3RvIG91dF9lcnJvcjsKIAl9Ci0JcWRlc2MtPmNoYW5uID0gMDsKKwlxZGVzYy0+Y2hhbm4gPSBjcHU7CiAJcGhiYS0+c2xpNF9oYmEubWJ4X3dxID0gcWRlc2M7CiAKIAkvKgpAQCAtODk5NCw3ICs4OTQ2LDcgQEAgbHBmY19zbGk0X3F1ZXVlX2NyZWF0ZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCQkJIjA1MDQgRmFpbGVkIGFsbG9jYXRlIHNsb3ctcGF0aCBFTFMgV1FcbiIpOwogCQlnb3RvIG91dF9lcnJvcjsKIAl9Ci0JcWRlc2MtPmNoYW5uID0gMDsKKwlxZGVzYy0+Y2hhbm4gPSBjcHU7CiAJcGhiYS0+c2xpNF9oYmEuZWxzX3dxID0gcWRlc2M7CiAJbGlzdF9hZGRfdGFpbCgmcWRlc2MtPndxX2xpc3QsICZwaGJhLT5zbGk0X2hiYS5scGZjX3dxX2xpc3QpOwogCkBAIC05MDA4LDcgKzg5NjAsNyBAQCBscGZjX3NsaTRfcXVldWVfY3JlYXRlKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkJCQkJIjYwNzkgRmFpbGVkIGFsbG9jYXRlIE5WTUUgTFMgQ1FcbiIpOwogCQkJZ290byBvdXRfZXJyb3I7CiAJCX0KLQkJcWRlc2MtPmNoYW5uID0gMDsKKwkJcWRlc2MtPmNoYW5uID0gY3B1OwogCQlxZGVzYy0+cWVfdmFsaWQgPSAxOwogCQlwaGJhLT5zbGk0X2hiYS5udm1lbHNfY3EgPSBxZGVzYzsKIApAQCAtOTAyMSw3ICs4OTczLDcgQEAgbHBmY19zbGk0X3F1ZXVlX2NyZWF0ZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCQkJCSI2MDgwIEZhaWxlZCBhbGxvY2F0ZSBOVk1FIExTIFdRXG4iKTsKIAkJCWdvdG8gb3V0X2Vycm9yOwogCQl9Ci0JCXFkZXNjLT5jaGFubiA9IDA7CisJCXFkZXNjLT5jaGFubiA9IGNwdTsKIAkJcGhiYS0+c2xpNF9oYmEubnZtZWxzX3dxID0gcWRlc2M7CiAJCWxpc3RfYWRkX3RhaWwoJnFkZXNjLT53cV9saXN0LCAmcGhiYS0+c2xpNF9oYmEubHBmY193cV9saXN0KTsKIAl9CkBAIC05MTY0LDE1ICs5MTE2LDEzIEBAIGxwZmNfc2xpNF9yZWxlYXNlX2hkd3Eoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCS8qIExvb3AgdGhydSBhbGwgSGFyZHdhcmUgUXVldWVzICovCiAJZm9yIChpZHggPSAwOyBpZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlOyBpZHgrKykgewogCQkvKiBGcmVlIHRoZSBDUS9XUSBjb3JyZXNwb25kaW5nIHRvIHRoZSBIYXJkd2FyZSBRdWV1ZSAqLwotCQlscGZjX3NsaTRfcXVldWVfZnJlZShoZHdxW2lkeF0uZmNwX2NxKTsKLQkJbHBmY19zbGk0X3F1ZXVlX2ZyZWUoaGR3cVtpZHhdLm52bWVfY3EpOwotCQlscGZjX3NsaTRfcXVldWVfZnJlZShoZHdxW2lkeF0uZmNwX3dxKTsKLQkJbHBmY19zbGk0X3F1ZXVlX2ZyZWUoaGR3cVtpZHhdLm52bWVfd3EpOwotCQloZHdxW2lkeF0uaGJhX2VxID0gTlVMTDsKLQkJaGR3cVtpZHhdLmZjcF9jcSA9IE5VTEw7Ci0JCWhkd3FbaWR4XS5udm1lX2NxID0gTlVMTDsKLQkJaGR3cVtpZHhdLmZjcF93cSA9IE5VTEw7Ci0JCWhkd3FbaWR4XS5udm1lX3dxID0gTlVMTDsKKwkJbHBmY19zbGk0X3F1ZXVlX2ZyZWUoaGR3cVtpZHhdLmlvX2NxKTsKKwkJbHBmY19zbGk0X3F1ZXVlX2ZyZWUoaGR3cVtpZHhdLmlvX3dxKTsKKwkJaGR3cVtpZHhdLmlvX2NxID0gTlVMTDsKKwkJaGR3cVtpZHhdLmlvX3dxID0gTlVMTDsKKwkJaWYgKHBoYmEtPmNmZ194cHNnbCAmJiAhcGhiYS0+bnZtZXRfc3VwcG9ydCkKKwkJCWxwZmNfZnJlZV9zZ2xfcGVyX2hkd3EocGhiYSwgJmhkd3FbaWR4XSk7CisJCWxwZmNfZnJlZV9jbWRfcnNwX2J1Zl9wZXJfaGR3cShwaGJhLCAmaGR3cVtpZHhdKTsKIAl9CiAJLyogTG9vcCB0aHJ1IGFsbCBJUlEgdmVjdG9ycyAqLwogCWZvciAoaWR4ID0gMDsgaWR4IDwgcGhiYS0+Y2ZnX2lycV9jaGFubjsgaWR4KyspIHsKQEAgLTkzNzIsOCArOTMyMiw3IEBAIGxwZmNfc2V0dXBfY3FfbG9va3VwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShjaGlsZHEsICZlcS0+Y2hpbGRfbGlzdCwgbGlzdCkgewogCQkJaWYgKGNoaWxkcS0+cXVldWVfaWQgPiBwaGJhLT5zbGk0X2hiYS5jcV9tYXgpCiAJCQkJY29udGludWU7Ci0JCQlpZiAoKGNoaWxkcS0+c3VidHlwZSA9PSBMUEZDX0ZDUCkgfHwKLQkJCSAgICAoY2hpbGRxLT5zdWJ0eXBlID09IExQRkNfTlZNRSkpCisJCQlpZiAoY2hpbGRxLT5zdWJ0eXBlID09IExQRkNfSU8pCiAJCQkJcGhiYS0+c2xpNF9oYmEuY3FfbG9va3VwW2NoaWxkcS0+cXVldWVfaWRdID0KIAkJCQkJY2hpbGRxOwogCQl9CkBAIC05NDk5LDMxICs5NDQ4LDYgQEAgbHBmY19zbGk0X3F1ZXVlX3NldHVwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAl9CiAKIAkvKiBMb29wIHRocnUgYWxsIEhhcmR3YXJlIFF1ZXVlcyAqLwotCWlmIChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkgewotCQlmb3IgKHFpZHggPSAwOyBxaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgcWlkeCsrKSB7Ci0JCQljcHUgPSBscGZjX2ZpbmRfY3B1X2hhbmRsZShwaGJhLCBxaWR4LAotCQkJCQkJICAgTFBGQ19GSU5EX0JZX0hEV1EpOwotCQkJY3B1cCA9ICZwaGJhLT5zbGk0X2hiYS5jcHVfbWFwW2NwdV07Ci0KLQkJCS8qIENyZWF0ZSB0aGUgQ1EvV1EgY29ycmVzcG9uZGluZyB0byB0aGUKLQkJCSAqIEhhcmR3YXJlIFF1ZXVlCi0JCQkgKi8KLQkJCXJjID0gbHBmY19jcmVhdGVfd3FfY3EocGhiYSwKLQkJCQkJcGhiYS0+c2xpNF9oYmEuaGR3cVtjcHVwLT5oZHdxXS5oYmFfZXEsCi0JCQkJCXFwW3FpZHhdLm52bWVfY3EsCi0JCQkJCXFwW3FpZHhdLm52bWVfd3EsCi0JCQkJCSZwaGJhLT5zbGk0X2hiYS5oZHdxW3FpZHhdLm52bWVfY3FfbWFwLAotCQkJCQlxaWR4LCBMUEZDX05WTUUpOwotCQkJaWYgKHJjKSB7Ci0JCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfSU5JVCwKLQkJCQkJIjYxMjMgRmFpbGVkIHRvIHNldHVwIGZhc3RwYXRoICIKLQkJCQkJIk5WTUUgV1EvQ1EgKCVkKSwgcmMgPSAweCV4XG4iLAotCQkJCQlxaWR4LCAodWludDMyX3QpcmMpOwotCQkJCWdvdG8gb3V0X2Rlc3Ryb3k7Ci0JCQl9Ci0JCX0KLQl9Ci0KIAlmb3IgKHFpZHggPSAwOyBxaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgcWlkeCsrKSB7CiAJCWNwdSA9IGxwZmNfZmluZF9jcHVfaGFuZGxlKHBoYmEsIHFpZHgsIExQRkNfRklORF9CWV9IRFdRKTsKIAkJY3B1cCA9ICZwaGJhLT5zbGk0X2hiYS5jcHVfbWFwW2NwdV07CkBAIC05NTMxLDE0ICs5NDU1LDE1IEBAIGxwZmNfc2xpNF9xdWV1ZV9zZXR1cChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCS8qIENyZWF0ZSB0aGUgQ1EvV1EgY29ycmVzcG9uZGluZyB0byB0aGUgSGFyZHdhcmUgUXVldWUgKi8KIAkJcmMgPSBscGZjX2NyZWF0ZV93cV9jcShwaGJhLAogCQkJCSAgICAgICBwaGJhLT5zbGk0X2hiYS5oZHdxW2NwdXAtPmhkd3FdLmhiYV9lcSwKLQkJCQkgICAgICAgcXBbcWlkeF0uZmNwX2NxLAotCQkJCSAgICAgICBxcFtxaWR4XS5mY3Bfd3EsCi0JCQkJICAgICAgICZwaGJhLT5zbGk0X2hiYS5oZHdxW3FpZHhdLmZjcF9jcV9tYXAsCi0JCQkJICAgICAgIHFpZHgsIExQRkNfRkNQKTsKKwkJCQkgICAgICAgcXBbcWlkeF0uaW9fY3EsCisJCQkJICAgICAgIHFwW3FpZHhdLmlvX3dxLAorCQkJCSAgICAgICAmcGhiYS0+c2xpNF9oYmEuaGR3cVtxaWR4XS5pb19jcV9tYXAsCisJCQkJICAgICAgIHFpZHgsCisJCQkJICAgICAgIExQRkNfSU8pOwogCQlpZiAocmMpIHsKIAkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0lOSVQsCiAJCQkJCSIwNTM1IEZhaWxlZCB0byBzZXR1cCBmYXN0cGF0aCAiCi0JCQkJCSJGQ1AgV1EvQ1EgKCVkKSwgcmMgPSAweCV4XG4iLAorCQkJCQkiSU8gV1EvQ1EgKCVkKSwgcmMgPSAweCV4XG4iLAogCQkJCQlxaWR4LCAodWludDMyX3QpcmMpOwogCQkJZ290byBvdXRfZGVzdHJveTsKIAkJfQpAQCAtOTgzOCwxMCArOTc2Myw4IEBAIGxwZmNfc2xpNF9xdWV1ZV91bnNldChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCWZvciAocWlkeCA9IDA7IHFpZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlOyBxaWR4KyspIHsKIAkJCS8qIERlc3Ryb3kgdGhlIENRL1dRIGNvcnJlc3BvbmRpbmcgdG8gSGFyZHdhcmUgUXVldWUgKi8KIAkJCXFwID0gJnBoYmEtPnNsaTRfaGJhLmhkd3FbcWlkeF07Ci0JCQlscGZjX3dxX2Rlc3Ryb3kocGhiYSwgcXAtPmZjcF93cSk7Ci0JCQlscGZjX3dxX2Rlc3Ryb3kocGhiYSwgcXAtPm52bWVfd3EpOwotCQkJbHBmY19jcV9kZXN0cm95KHBoYmEsIHFwLT5mY3BfY3EpOwotCQkJbHBmY19jcV9kZXN0cm95KHBoYmEsIHFwLT5udm1lX2NxKTsKKwkJCWxwZmNfd3FfZGVzdHJveShwaGJhLCBxcC0+aW9fd3EpOworCQkJbHBmY19jcV9kZXN0cm95KHBoYmEsIHFwLT5pb19jcSk7CiAJCX0KIAkJLyogTG9vcCB0aHJ1IGFsbCBJUlEgdmVjdG9ycyAqLwogCQlmb3IgKHFpZHggPSAwOyBxaWR4IDwgcGhiYS0+Y2ZnX2lycV9jaGFubjsgcWlkeCsrKSB7CkBAIC0xMDcxMSw3ICsxMDYzNCw3IEBAIGxwZmNfZmluZF9oeXBlcihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIGludCBjcHUsCiBzdGF0aWMgdm9pZAogbHBmY19jcHVfYWZmaW5pdHlfY2hlY2soc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgdmVjdG9ycykKIHsKLQlpbnQgaSwgY3B1LCBpZHgsIG5ld19jcHUsIHN0YXJ0X2NwdSwgZmlyc3RfY3B1OworCWludCBpLCBjcHUsIGlkeCwgbmV4dF9pZHgsIG5ld19jcHUsIHN0YXJ0X2NwdSwgZmlyc3RfY3B1OwogCWludCBtYXhfcGh5c19pZCwgbWluX3BoeXNfaWQ7CiAJaW50IG1heF9jb3JlX2lkLCBtaW5fY29yZV9pZDsKIAlzdHJ1Y3QgbHBmY192ZWN0b3JfbWFwX2luZm8gKmNwdXA7CkBAIC0xMDc1Myw4ICsxMDY3Niw4IEBAIGxwZmNfY3B1X2FmZmluaXR5X2NoZWNrKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgaW50IHZlY3RvcnMpCiAjZW5kaWYKIAogCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9JTkZPLCBMT0dfSU5JVCwKLQkJCQkiMzMyOCBDUFUgcGh5c2lkICVkIGNvcmVpZCAlZFxuIiwKLQkJCQljcHVwLT5waHlzX2lkLCBjcHVwLT5jb3JlX2lkKTsKKwkJCQkiMzMyOCBDUFUgJWQgcGh5c2lkICVkIGNvcmVpZCAlZCBmbGFnIHgleFxuIiwKKwkJCQljcHUsIGNwdXAtPnBoeXNfaWQsIGNwdXAtPmNvcmVfaWQsIGNwdXAtPmZsYWcpOwogCiAJCWlmIChjcHVwLT5waHlzX2lkID4gbWF4X3BoeXNfaWQpCiAJCQltYXhfcGh5c19pZCA9IGNwdXAtPnBoeXNfaWQ7CkBAIC0xMDgxMiwxNyArMTA3MzUsMTcgQEAgbHBmY19jcHVfYWZmaW5pdHlfY2hlY2soc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgdmVjdG9ycykKIAkJCWNwdXAtPmVxID0gaWR4OwogCQkJY3B1cC0+aXJxID0gcGNpX2lycV92ZWN0b3IocGhiYS0+cGNpZGV2LCBpZHgpOwogCi0JCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9JTkZPLCBMT0dfSU5JVCwKLQkJCQkJIjMzMzYgU2V0IEFmZmluaXR5OiBDUFUgJWQgIgotCQkJCQkiaXJxICVkIGVxICVkXG4iLAotCQkJCQljcHUsIGNwdXAtPmlycSwgY3B1cC0+ZXEpOwotCiAJCQkvKiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBDUFUgdGhhdHMgYXNzaWduZWQgdG8gdGhpcwogCQkJICogdmVjdG9yLCBzZXQgTFBGQ19DUFVfRklSU1RfSVJRLgogCQkJICovCiAJCQlpZiAoIWkpCiAJCQkJY3B1cC0+ZmxhZyB8PSBMUEZDX0NQVV9GSVJTVF9JUlE7CiAJCQlpKys7CisKKwkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19JTklULAorCQkJCQkiMzMzNiBTZXQgQWZmaW5pdHk6IENQVSAlZCAiCisJCQkJCSJpcnEgJWQgZXEgJWQgZmxhZyB4JXhcbiIsCisJCQkJCWNwdSwgY3B1cC0+aXJxLCBjcHVwLT5lcSwgY3B1cC0+ZmxhZyk7CiAJCX0KIAl9CiAKQEAgLTEwOTM2LDY5ICsxMDg1OSwxMDMgQEAgbHBmY19jcHVfYWZmaW5pdHlfY2hlY2soc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgdmVjdG9ycykKIAkJfQogCX0KIAorCS8qIEFzc2lnbiBoZHdxIGluZGljZXMgdGhhdCBhcmUgdW5pcXVlIGFjcm9zcyBhbGwgY3B1cyBpbiB0aGUgbWFwCisJICogdGhhdCBhcmUgYWxzbyBGSVJTVF9DUFVzLgorCSAqLworCWlkeCA9IDA7CisJZm9yX2VhY2hfcHJlc2VudF9jcHUoY3B1KSB7CisJCWNwdXAgPSAmcGhiYS0+c2xpNF9oYmEuY3B1X21hcFtjcHVdOworCisJCS8qIE9ubHkgRklSU1QgSVJRcyBnZXQgYSBoZHdxIGluZGV4IGFzc2lnbm1lbnQuICovCisJCWlmICghKGNwdXAtPmZsYWcgJiBMUEZDX0NQVV9GSVJTVF9JUlEpKQorCQkJY29udGludWU7CisKKwkJLyogMSB0byAxLCB0aGUgZmlyc3QgTFBGQ19DUFVfRklSU1RfSVJRIGNwdXMgdG8gYSB1bmlxdWUgaGR3cSAqLworCQljcHVwLT5oZHdxID0gaWR4OworCQlpZHgrKzsKKwkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfSU5JVCwKKwkJCQkiMzMzMyBTZXQgQWZmaW5pdHk6IENQVSAlZCAocGh5cyAlZCBjb3JlICVkKTogIgorCQkJCSJoZHdxICVkIGVxICVkIGlycSAlZCBmbGcgeCV4XG4iLAorCQkJCWNwdSwgY3B1cC0+cGh5c19pZCwgY3B1cC0+Y29yZV9pZCwKKwkJCQljcHVwLT5oZHdxLCBjcHVwLT5lcSwgY3B1cC0+aXJxLCBjcHVwLT5mbGFnKTsKKwl9CiAJLyogRmluYWxseSB3ZSBuZWVkIHRvIGFzc29jaWF0ZSBhIGhkd3Egd2l0aCBlYWNoIGNwdV9tYXAgZW50cnkKIAkgKiBUaGlzIHdpbGwgYmUgMSB0byAxIC0gaGR3cSB0byBjcHUsIHVubGVzcyB0aGVyZSBhcmUgbGVzcwogCSAqIGhhcmR3YXJlIHF1ZXVlcyB0aGVuIENQVXMuIEZvciB0aGF0IGNhc2Ugd2Ugd2lsbCBqdXN0IHJvdW5kLXJvYmluCiAJICogdGhlIGF2YWlsYWJsZSBoYXJkd2FyZSBxdWV1ZXMgYXMgdGhleSBnZXQgYXNzaWduZWQgdG8gQ1BVcy4KKwkgKiBUaGUgbmV4dF9pZHggaXMgdGhlIGlkeCBmcm9tIHRoZSBGSVJTVF9DUFUgbG9vcCBhYm92ZSB0byBhY2NvdW50CisJICogZm9yIGlycV9jaGFubiA8IGhkd3EuICBUaGUgaWR4IGlzIHVzZWQgZm9yIHJvdW5kLXJvYmluIGFzc2lnbm1lbnRzCisJICogYW5kIG5lZWRzIHRvIHN0YXJ0IGF0IDAuCiAJICovCi0JaWR4ID0gMDsKKwluZXh0X2lkeCA9IGlkeDsKIAlzdGFydF9jcHUgPSAwOworCWlkeCA9IDA7CiAJZm9yX2VhY2hfcHJlc2VudF9jcHUoY3B1KSB7CiAJCWNwdXAgPSAmcGhiYS0+c2xpNF9oYmEuY3B1X21hcFtjcHVdOwotCQlpZiAoaWR4ID49ICBwaGJhLT5jZmdfaGR3X3F1ZXVlKSB7Ci0JCQkvKiBXZSBuZWVkIHRvIHJldXNlIGEgSGFyZHdhcmUgUXVldWUgZm9yIGFub3RoZXIgQ1BVLAotCQkJICogc28gYmUgc21hcnQgYWJvdXQgaXQgYW5kIHBpY2sgb25lIHRoYXQgaGFzIGl0cwotCQkJICogSVJRL0VRIG1hcHBlZCB0byB0aGUgc2FtZSBwaHlzX2lkIChDUFUgcGFja2FnZSkuCi0JCQkgKiBhbmQgY29yZV9pZC4KLQkJCSAqLwotCQkJbmV3X2NwdSA9IHN0YXJ0X2NwdTsKLQkJCWZvciAoaSA9IDA7IGkgPCBwaGJhLT5zbGk0X2hiYS5udW1fcHJlc2VudF9jcHU7IGkrKykgewotCQkJCW5ld19jcHVwID0gJnBoYmEtPnNsaTRfaGJhLmNwdV9tYXBbbmV3X2NwdV07Ci0JCQkJaWYgKChuZXdfY3B1cC0+aGR3cSAhPSBMUEZDX1ZFQ1RPUl9NQVBfRU1QVFkpICYmCi0JCQkJICAgIChuZXdfY3B1cC0+cGh5c19pZCA9PSBjcHVwLT5waHlzX2lkKSAmJgotCQkJCSAgICAobmV3X2NwdXAtPmNvcmVfaWQgPT0gY3B1cC0+Y29yZV9pZCkpCi0JCQkJCWdvdG8gZm91bmRfaGR3cTsKLQkJCQluZXdfY3B1ID0gY3B1bWFza19uZXh0KAotCQkJCQluZXdfY3B1LCBjcHVfcHJlc2VudF9tYXNrKTsKLQkJCQlpZiAobmV3X2NwdSA9PSBucl9jcHVtYXNrX2JpdHMpCi0JCQkJCW5ld19jcHUgPSBmaXJzdF9jcHU7Ci0JCQl9CiAKLQkJCS8qIElmIHdlIGNhbid0IG1hdGNoIGJvdGggcGh5c19pZCBhbmQgY29yZV9pZCwKLQkJCSAqIHNldHRsZSBmb3IganVzdCBhIHBoeXNfaWQgbWF0Y2guCi0JCQkgKi8KLQkJCW5ld19jcHUgPSBzdGFydF9jcHU7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgcGhiYS0+c2xpNF9oYmEubnVtX3ByZXNlbnRfY3B1OyBpKyspIHsKLQkJCQluZXdfY3B1cCA9ICZwaGJhLT5zbGk0X2hiYS5jcHVfbWFwW25ld19jcHVdOwotCQkJCWlmICgobmV3X2NwdXAtPmhkd3EgIT0gTFBGQ19WRUNUT1JfTUFQX0VNUFRZKSAmJgotCQkJCSAgICAobmV3X2NwdXAtPnBoeXNfaWQgPT0gY3B1cC0+cGh5c19pZCkpCi0JCQkJCWdvdG8gZm91bmRfaGR3cTsKLQkJCQluZXdfY3B1ID0gY3B1bWFza19uZXh0KAotCQkJCQluZXdfY3B1LCBjcHVfcHJlc2VudF9tYXNrKTsKLQkJCQlpZiAobmV3X2NwdSA9PSBucl9jcHVtYXNrX2JpdHMpCi0JCQkJCW5ld19jcHUgPSBmaXJzdF9jcHU7Ci0JCQl9CisJCS8qIEZJUlNUIGNwdXMgYXJlIGFscmVhZHkgbWFwcGVkLiAqLworCQlpZiAoY3B1cC0+ZmxhZyAmIExQRkNfQ1BVX0ZJUlNUX0lSUSkKKwkJCWNvbnRpbnVlOwogCi0JCQkvKiBPdGhlcndpc2UganVzdCByb3VuZCByb2JpbiBvbiBjZmdfaGR3X3F1ZXVlICovCi0JCQljcHVwLT5oZHdxID0gaWR4ICUgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsKLQkJCWdvdG8gbG9naXQ7Ci1mb3VuZF9oZHdxOgotCQkJLyogV2UgZm91bmQgYW4gYXZhaWxhYmxlIGVudHJ5LCBjb3B5IHRoZSBJUlEgaW5mbyAqLwotCQkJc3RhcnRfY3B1ID0gY3B1bWFza19uZXh0KG5ld19jcHUsIGNwdV9wcmVzZW50X21hc2spOwotCQkJaWYgKHN0YXJ0X2NwdSA9PSBucl9jcHVtYXNrX2JpdHMpCi0JCQkJc3RhcnRfY3B1ID0gZmlyc3RfY3B1OwotCQkJY3B1cC0+aGR3cSA9IG5ld19jcHVwLT5oZHdxOwotCQl9IGVsc2UgewotCQkJLyogMSB0byAxLCBDUFUgdG8gaGR3cSAqLwotCQkJY3B1cC0+aGR3cSA9IGlkeDsKKwkJLyogSWYgdGhlIGNmZ19pcnFfY2hhbm4gPCBjZmdfaGR3X3F1ZXVlLCBzZXQgdGhlIGhkd3EKKwkJICogb2YgdGhlIHVuYXNzaWduZWQgY3B1cyB0byB0aGUgbmV4dCBpZHggc28gdGhhdCBhbGwKKwkJICogaGR3IHF1ZXVlcyBhcmUgZnVsbHkgdXRpbGl6ZWQuCisJCSAqLworCQlpZiAobmV4dF9pZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlKSB7CisJCQljcHVwLT5oZHdxID0gbmV4dF9pZHg7CisJCQluZXh0X2lkeCsrOworCQkJY29udGludWU7CiAJCX0KLWxvZ2l0OgorCisJCS8qIE5vdCBhIEZpcnN0IENQVSBhbmQgYWxsIGhkd19xdWV1ZXMgYXJlIHVzZWQuICBSZXVzZSBhCisJCSAqIEhhcmR3YXJlIFF1ZXVlIGZvciBhbm90aGVyIENQVSwgc28gYmUgc21hcnQgYWJvdXQgaXQKKwkJICogYW5kIHBpY2sgb25lIHRoYXQgaGFzIGl0cyBJUlEvRVEgbWFwcGVkIHRvIHRoZSBzYW1lIHBoeXNfaWQKKwkJICogKENQVSBwYWNrYWdlKSBhbmQgY29yZV9pZC4KKwkJICovCisJCW5ld19jcHUgPSBzdGFydF9jcHU7CisJCWZvciAoaSA9IDA7IGkgPCBwaGJhLT5zbGk0X2hiYS5udW1fcHJlc2VudF9jcHU7IGkrKykgeworCQkJbmV3X2NwdXAgPSAmcGhiYS0+c2xpNF9oYmEuY3B1X21hcFtuZXdfY3B1XTsKKwkJCWlmIChuZXdfY3B1cC0+aGR3cSAhPSBMUEZDX1ZFQ1RPUl9NQVBfRU1QVFkgJiYKKwkJCSAgICBuZXdfY3B1cC0+cGh5c19pZCA9PSBjcHVwLT5waHlzX2lkICYmCisJCQkgICAgbmV3X2NwdXAtPmNvcmVfaWQgPT0gY3B1cC0+Y29yZV9pZCkgeworCQkJCWdvdG8gZm91bmRfaGR3cTsKKwkJCX0KKwkJCW5ld19jcHUgPSBjcHVtYXNrX25leHQobmV3X2NwdSwgY3B1X3ByZXNlbnRfbWFzayk7CisJCQlpZiAobmV3X2NwdSA9PSBucl9jcHVtYXNrX2JpdHMpCisJCQkJbmV3X2NwdSA9IGZpcnN0X2NwdTsKKwkJfQorCisJCS8qIElmIHdlIGNhbid0IG1hdGNoIGJvdGggcGh5c19pZCBhbmQgY29yZV9pZCwKKwkJICogc2V0dGxlIGZvciBqdXN0IGEgcGh5c19pZCBtYXRjaC4KKwkJICovCisJCW5ld19jcHUgPSBzdGFydF9jcHU7CisJCWZvciAoaSA9IDA7IGkgPCBwaGJhLT5zbGk0X2hiYS5udW1fcHJlc2VudF9jcHU7IGkrKykgeworCQkJbmV3X2NwdXAgPSAmcGhiYS0+c2xpNF9oYmEuY3B1X21hcFtuZXdfY3B1XTsKKwkJCWlmIChuZXdfY3B1cC0+aGR3cSAhPSBMUEZDX1ZFQ1RPUl9NQVBfRU1QVFkgJiYKKwkJCSAgICBuZXdfY3B1cC0+cGh5c19pZCA9PSBjcHVwLT5waHlzX2lkKQorCQkJCWdvdG8gZm91bmRfaGR3cTsKKworCQkJbmV3X2NwdSA9IGNwdW1hc2tfbmV4dChuZXdfY3B1LCBjcHVfcHJlc2VudF9tYXNrKTsKKwkJCWlmIChuZXdfY3B1ID09IG5yX2NwdW1hc2tfYml0cykKKwkJCQluZXdfY3B1ID0gZmlyc3RfY3B1OworCQl9CisKKwkJLyogT3RoZXJ3aXNlIGp1c3Qgcm91bmQgcm9iaW4gb24gY2ZnX2hkd19xdWV1ZSAqLworCQljcHVwLT5oZHdxID0gaWR4ICUgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsKKwkJaWR4Kys7CisJCWdvdG8gbG9naXQ7CisgZm91bmRfaGR3cToKKwkJLyogV2UgZm91bmQgYW4gYXZhaWxhYmxlIGVudHJ5LCBjb3B5IHRoZSBJUlEgaW5mbyAqLworCQlzdGFydF9jcHUgPSBjcHVtYXNrX25leHQobmV3X2NwdSwgY3B1X3ByZXNlbnRfbWFzayk7CisJCWlmIChzdGFydF9jcHUgPT0gbnJfY3B1bWFza19iaXRzKQorCQkJc3RhcnRfY3B1ID0gZmlyc3RfY3B1OworCQljcHVwLT5oZHdxID0gbmV3X2NwdXAtPmhkd3E7CisgbG9naXQ6CiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0lOSVQsCiAJCQkJIjMzMzUgU2V0IEFmZmluaXR5OiBDUFUgJWQgKHBoeXMgJWQgY29yZSAlZCk6ICIKIAkJCQkiaGR3cSAlZCBlcSAlZCBpcnEgJWQgZmxnIHgleFxuIiwKIAkJCQljcHUsIGNwdXAtPnBoeXNfaWQsIGNwdXAtPmNvcmVfaWQsCiAJCQkJY3B1cC0+aGR3cSwgY3B1cC0+ZXEsIGNwdXAtPmlycSwgY3B1cC0+ZmxhZyk7Ci0JCWlkeCsrOwogCX0KIAogCS8qIFRoZSBjcHVfbWFwIGFycmF5IHdpbGwgYmUgdXNlZCBsYXRlciBkdXJpbmcgaW5pdGlhbGl6YXRpb24KQEAgLTExMDg5LDEwICsxMTA0NiwxMCBAQCBscGZjX3NsaTRfZW5hYmxlX21zaXgoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogICogQHBoYmE6IHBvaW50ZXIgdG8gbHBmYyBoYmEgZGF0YSBzdHJ1Y3R1cmUuCiAgKgogICogVGhpcyByb3V0aW5lIGlzIGludm9rZWQgdG8gZW5hYmxlIHRoZSBNU0kgaW50ZXJydXB0IG1vZGUgdG8gZGV2aWNlIHdpdGgKLSAqIFNMSS00IGludGVyZmFjZSBzcGVjLiBUaGUga2VybmVsIGZ1bmN0aW9uIHBjaV9lbmFibGVfbXNpKCkgaXMgY2FsbGVkCi0gKiB0byBlbmFibGUgdGhlIE1TSSB2ZWN0b3IuIFRoZSBkZXZpY2UgZHJpdmVyIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nCi0gKiB0aGUgcmVxdWVzdF9pcnEoKSB0byByZWdpc3RlciBNU0kgdmVjdG9yIHdpdGggYSBpbnRlcnJ1cHQgdGhlIGhhbmRsZXIsCi0gKiB3aGljaCBpcyBkb25lIGluIHRoaXMgZnVuY3Rpb24uCisgKiBTTEktNCBpbnRlcmZhY2Ugc3BlYy4gVGhlIGtlcm5lbCBmdW5jdGlvbiBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMoKSBpcworICogY2FsbGVkIHRvIGVuYWJsZSB0aGUgTVNJIHZlY3Rvci4gVGhlIGRldmljZSBkcml2ZXIgaXMgcmVzcG9uc2libGUgZm9yCisgKiBjYWxsaW5nIHRoZSByZXF1ZXN0X2lycSgpIHRvIHJlZ2lzdGVyIE1TSSB2ZWN0b3Igd2l0aCBhIGludGVycnVwdCB0aGUKKyAqIGhhbmRsZXIsIHdoaWNoIGlzIGRvbmUgaW4gdGhpcyBmdW5jdGlvbi4KICAqCiAgKiBSZXR1cm4gY29kZXMKICAqIAkwIC0gc3VjY2Vzc2Z1bApAQCAtMTExMDMsMjAgKzExMDYwLDIxIEBAIGxwZmNfc2xpNF9lbmFibGVfbXNpKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIHsKIAlpbnQgcmMsIGluZGV4OwogCi0JcmMgPSBwY2lfZW5hYmxlX21zaShwaGJhLT5wY2lkZXYpOwotCWlmICghcmMpCisJcmMgPSBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMocGhiYS0+cGNpZGV2LCAxLCAxLAorCQkJCSAgIFBDSV9JUlFfTVNJIHwgUENJX0lSUV9BRkZJTklUWSk7CisJaWYgKHJjID4gMCkKIAkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fSU5GTywgTE9HX0lOSVQsCiAJCQkJIjA0ODcgUENJIGVuYWJsZSBNU0kgbW9kZSBzdWNjZXNzLlxuIik7CiAJZWxzZSB7CiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19JTklULAogCQkJCSIwNDg4IFBDSSBlbmFibGUgTVNJIG1vZGUgZmFpbGVkICglZClcbiIsIHJjKTsKLQkJcmV0dXJuIHJjOworCQlyZXR1cm4gcmMgPyByYyA6IC0xOwogCX0KIAogCXJjID0gcmVxdWVzdF9pcnEocGhiYS0+cGNpZGV2LT5pcnEsIGxwZmNfc2xpNF9pbnRyX2hhbmRsZXIsCiAJCQkgMCwgTFBGQ19EUklWRVJfTkFNRSwgcGhiYSk7CiAJaWYgKHJjKSB7Ci0JCXBjaV9kaXNhYmxlX21zaShwaGJhLT5wY2lkZXYpOworCQlwY2lfZnJlZV9pcnFfdmVjdG9ycyhwaGJhLT5wY2lkZXYpOwogCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9XQVJOSU5HLCBMT0dfSU5JVCwKIAkJCQkiMDQ5MCBNU0kgcmVxdWVzdF9pcnEgZmFpbGVkICglZClcbiIsIHJjKTsKIAkJcmV0dXJuIHJjOwpAQCAtMTEyODIsMTEgKzExMjQwLDEwIEBAIHN0YXRpYyB2b2lkCiBscGZjX3NsaTRfeHJpX2V4Y2hhbmdlX2J1c3lfd2FpdChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiB7CiAJc3RydWN0IGxwZmNfc2xpNF9oZHdfcXVldWUgKnFwOwotCWludCBpZHgsIGNjbnQsIGZjbnQ7CisJaW50IGlkeCwgY2NudDsKIAlpbnQgd2FpdF90aW1lID0gMDsKIAlpbnQgaW9feHJpX2NtcGwgPSAxOwogCWludCBudm1ldF94cmlfY21wbCA9IDE7Ci0JaW50IGZjcF94cmlfY21wbCA9IDE7CiAJaW50IGVsc194cmlfY21wbCA9IGxpc3RfZW1wdHkoJnBoYmEtPnNsaTRfaGJhLmxwZmNfYWJ0c19lbHNfc2dsX2xpc3QpOwogCiAJLyogRHJpdmVyIGp1c3QgYWJvcnRlZCBJT3MgZHVyaW5nIHRoZSBoYmFfdW5zZXQgcHJvY2Vzcy4gIFBhdXNlCkBAIC0xMTMwMCwzMiArMTEyNTcsMjEgQEAgbHBmY19zbGk0X3hyaV9leGNoYW5nZV9idXN5X3dhaXQoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCQlscGZjX252bWVfd2FpdF9mb3JfaW9fZHJhaW4ocGhiYSk7CiAKIAljY250ID0gMDsKLQlmY250ID0gMDsKIAlmb3IgKGlkeCA9IDA7IGlkeCA8IHBoYmEtPmNmZ19oZHdfcXVldWU7IGlkeCsrKSB7CiAJCXFwID0gJnBoYmEtPnNsaTRfaGJhLmhkd3FbaWR4XTsKLQkJZmNwX3hyaV9jbXBsID0gbGlzdF9lbXB0eSgKLQkJCSZxcC0+bHBmY19hYnRzX3Njc2lfYnVmX2xpc3QpOwotCQlpZiAoIWZjcF94cmlfY21wbCkgLyogaWYgbGlzdCBpcyBOT1QgZW1wdHkgKi8KLQkJCWZjbnQrKzsKLQkJaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKSB7Ci0JCQlpb194cmlfY21wbCA9IGxpc3RfZW1wdHkoCi0JCQkJJnFwLT5scGZjX2FidHNfbnZtZV9idWZfbGlzdCk7Ci0JCQlpZiAoIWlvX3hyaV9jbXBsKSAvKiBpZiBsaXN0IGlzIE5PVCBlbXB0eSAqLwotCQkJCWNjbnQrKzsKLQkJfQorCQlpb194cmlfY21wbCA9IGxpc3RfZW1wdHkoJnFwLT5scGZjX2FidHNfaW9fYnVmX2xpc3QpOworCQlpZiAoIWlvX3hyaV9jbXBsKSAvKiBpZiBsaXN0IGlzIE5PVCBlbXB0eSAqLworCQkJY2NudCsrOwogCX0KIAlpZiAoY2NudCkKIAkJaW9feHJpX2NtcGwgPSAwOwotCWlmIChmY250KQotCQlmY3BfeHJpX2NtcGwgPSAwOwogCiAJaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKSB7CiAJCW52bWV0X3hyaV9jbXBsID0KIAkJCWxpc3RfZW1wdHkoJnBoYmEtPnNsaTRfaGJhLmxwZmNfYWJ0c19udm1ldF9jdHhfbGlzdCk7CiAJfQogCi0Jd2hpbGUgKCFmY3BfeHJpX2NtcGwgfHwgIWVsc194cmlfY21wbCB8fCAhaW9feHJpX2NtcGwgfHwKLQkgICAgICAgIW52bWV0X3hyaV9jbXBsKSB7CisJd2hpbGUgKCFlbHNfeHJpX2NtcGwgfHwgIWlvX3hyaV9jbXBsIHx8ICFudm1ldF94cmlfY21wbCkgewogCQlpZiAod2FpdF90aW1lID4gTFBGQ19YUklfRVhDSF9CVVNZX1dBSVRfVE1PKSB7CiAJCQlpZiAoIW52bWV0X3hyaV9jbXBsKQogCQkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0lOSVQsCkBAIC0xMTMzNCwxMiArMTEyODAsNyBAQCBscGZjX3NsaTRfeHJpX2V4Y2hhbmdlX2J1c3lfd2FpdChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCQkJCQl3YWl0X3RpbWUvMTAwMCk7CiAJCQlpZiAoIWlvX3hyaV9jbXBsKQogCQkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0lOSVQsCi0JCQkJCQkiNjEwMCBOVk1FIFhSSSBleGNoYW5nZSBidXN5ICIKLQkJCQkJCSJ3YWl0IHRpbWU6ICVkIHNlY29uZHMuXG4iLAotCQkJCQkJd2FpdF90aW1lLzEwMDApOwotCQkJaWYgKCFmY3BfeHJpX2NtcGwpCi0JCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfSU5JVCwKLQkJCQkJCSIyODc3IEZDUCBYUkkgZXhjaGFuZ2UgYnVzeSAiCisJCQkJCQkiNjEwMCBJTyBYUkkgZXhjaGFuZ2UgYnVzeSAiCiAJCQkJCQkid2FpdCB0aW1lOiAlZCBzZWNvbmRzLlxuIiwKIAkJCQkJCXdhaXRfdGltZS8xMDAwKTsKIAkJCWlmICghZWxzX3hyaV9jbXBsKQpAQCAtMTEzNTUsMjQgKzExMjk2LDE1IEBAIGxwZmNfc2xpNF94cmlfZXhjaGFuZ2VfYnVzeV93YWl0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkJfQogCiAJCWNjbnQgPSAwOwotCQlmY250ID0gMDsKIAkJZm9yIChpZHggPSAwOyBpZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlOyBpZHgrKykgewogCQkJcXAgPSAmcGhiYS0+c2xpNF9oYmEuaGR3cVtpZHhdOwotCQkJZmNwX3hyaV9jbXBsID0gbGlzdF9lbXB0eSgKLQkJCQkmcXAtPmxwZmNfYWJ0c19zY3NpX2J1Zl9saXN0KTsKLQkJCWlmICghZmNwX3hyaV9jbXBsKSAvKiBpZiBsaXN0IGlzIE5PVCBlbXB0eSAqLwotCQkJCWZjbnQrKzsKLQkJCWlmIChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkgewotCQkJCWlvX3hyaV9jbXBsID0gbGlzdF9lbXB0eSgKLQkJCQkgICAgJnFwLT5scGZjX2FidHNfbnZtZV9idWZfbGlzdCk7Ci0JCQkJaWYgKCFpb194cmlfY21wbCkgLyogaWYgbGlzdCBpcyBOT1QgZW1wdHkgKi8KLQkJCQkJY2NudCsrOwotCQkJfQorCQkJaW9feHJpX2NtcGwgPSBsaXN0X2VtcHR5KAorCQkJICAgICZxcC0+bHBmY19hYnRzX2lvX2J1Zl9saXN0KTsKKwkJCWlmICghaW9feHJpX2NtcGwpIC8qIGlmIGxpc3QgaXMgTk9UIGVtcHR5ICovCisJCQkJY2NudCsrOwogCQl9CiAJCWlmIChjY250KQogCQkJaW9feHJpX2NtcGwgPSAwOwotCQlpZiAoZmNudCkKLQkJCWZjcF94cmlfY21wbCA9IDA7CiAKIAkJaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKSB7CiAJCQludm1ldF94cmlfY21wbCA9IGxpc3RfZW1wdHkoCkBAIC0xMTYxNiw2ICsxMTU0OCw5IEBAIGxwZmNfZ2V0X3NsaTRfcGFyYW1ldGVycyhzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIExQRkNfTUJPWFFfdCAqbWJveHEpCiAJcGhiYS0+c2xpNF9oYmEuZXh0ZW50c19pbl91c2UgPSBiZl9nZXQoY2ZnX2V4dCwgbWJ4X3NsaTRfcGFyYW1ldGVycyk7CiAJcGhiYS0+c2xpNF9oYmEucnBpX2hkcnNfaW5fdXNlID0gYmZfZ2V0KGNmZ19oZHJyLCBtYnhfc2xpNF9wYXJhbWV0ZXJzKTsKIAorCS8qIENoZWNrIGZvciBFeHRlbmRlZCBQcmUtUmVnaXN0ZXJlZCBTR0wgc3VwcG9ydCAqLworCXBoYmEtPmNmZ194cHNnbCA9IGJmX2dldChjZmdfeHBzZ2wsIG1ieF9zbGk0X3BhcmFtZXRlcnMpOworCiAJLyogQ2hlY2sgZm9yIGZpcm13YXJlIG52bWUgc3VwcG9ydCAqLwogCXJjID0gKGJmX2dldChjZmdfbnZtZSwgbWJ4X3NsaTRfcGFyYW1ldGVycykgJiYKIAkJICAgICBiZl9nZXQoY2ZnX3hpYiwgbWJ4X3NsaTRfcGFyYW1ldGVycykpOwpAQCAtMTE2NDYsNiArMTE1ODEsNyBAQCBscGZjX2dldF9zbGk0X3BhcmFtZXRlcnMoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBMUEZDX01CT1hRX3QgKm1ib3hxKQogCQkJcGhiYS0+bnZtZV9zdXBwb3J0ID0gMDsKIAkJCXBoYmEtPm52bWV0X3N1cHBvcnQgPSAwOwogCQkJcGhiYS0+Y2ZnX252bWV0X21ycSA9IDA7CisJCQlwaGJhLT5jZmdfbnZtZV9zZWdfY250ID0gMDsKIAogCQkJLyogSWYgbm8gRkM0IHR5cGUgc3VwcG9ydCwgbW92ZSB0byBqdXN0IFNDU0kgc3VwcG9ydCAqLwogCQkJaWYgKCEocGhiYS0+Y2ZnX2VuYWJsZV9mYzRfdHlwZSAmIExQRkNfRU5BQkxFX0ZDUCkpCkBAIC0xMTY1NCw2ICsxMTU5MCwxNSBAQCBscGZjX2dldF9zbGk0X3BhcmFtZXRlcnMoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBMUEZDX01CT1hRX3QgKm1ib3hxKQogCQl9CiAJfQogCisJLyogSWYgdGhlIE5WTUUgRkM0IHR5cGUgaXMgZW5hYmxlZCwgc2NhbGUgdGhlIHNnX3NlZ19jbnQgdG8KKwkgKiBhY2NvbW1vZGF0ZSA1MTJLIGFuZCAxTSBJT3MgaW4gYSBzaW5nbGUgbnZtZSBidWYgYW5kIHN1cHBseQorCSAqIGVub3VnaCBOVk1FIExTIGlvY2IgYnVmZmVycyBmb3IgbGFyZ2VyIGNvbm5lY3Rpdml0eSBjb3VudHMuCisJICovCisJaWYgKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKSB7CisJCXBoYmEtPmNmZ19zZ19zZWdfY250ID0gTFBGQ19NQVhfTlZNRV9TRUdfQ05UOworCQlwaGJhLT5jZmdfaW9jYl9jbnQgPSA1OworCX0KKwogCS8qIE9ubHkgZW1iZWQgUEJERSBmb3IgaWZfdHlwZSA2LCBQQkRFIHN1cHBvcnQgcmVxdWlyZXMgeGliIGJlIHNldCAqLwogCWlmICgoYmZfZ2V0KGxwZmNfc2xpX2ludGZfaWZfdHlwZSwgJnBoYmEtPnNsaTRfaGJhLnNsaV9pbnRmKSAhPQogCSAgICBMUEZDX1NMSV9JTlRGX0lGX1RZUEVfNikgfHwgKCFiZl9nZXQoY2ZnX3hpYiwgbWJ4X3NsaTRfcGFyYW1ldGVycykpKQpAQCAtMTE3MTgsNiArMTE2NjMsMTQgQEAgbHBmY19nZXRfc2xpNF9wYXJhbWV0ZXJzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgTFBGQ19NQk9YUV90ICptYm94cSkKIAllbHNlCiAJCXBoYmEtPm1kc19kaWFnc19zdXBwb3J0ID0gMDsKIAorCS8qCisJICogQ2hlY2sgaWYgdGhlIFNMSSBwb3J0IHN1cHBvcnRzIE5TTEVSCisJICovCisJaWYgKGJmX2dldChjZmdfbnNsZXIsIG1ieF9zbGk0X3BhcmFtZXRlcnMpKQorCQlwaGJhLT5uc2xlciA9IDE7CisJZWxzZQorCQlwaGJhLT5uc2xlciA9IDA7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTIxNDYsNyArMTIwOTksNyBAQCBscGZjX3NsaV9wcmVwX2Rldl9mb3JfcmVzZXQoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCWxwZmNfc2NzaV9kZXZfYmxvY2socGhiYSk7CiAKIAkvKiBGbHVzaCBhbGwgZHJpdmVyJ3Mgb3V0c3RhbmRpbmcgU0NTSSBJL09zIGFzIHdlIGFyZSB0byByZXNldCAqLwotCWxwZmNfc2xpX2ZsdXNoX2ZjcF9yaW5ncyhwaGJhKTsKKwlscGZjX3NsaV9mbHVzaF9pb19yaW5ncyhwaGJhKTsKIAogCS8qIHN0b3AgYWxsIHRpbWVycyAqLwogCWxwZmNfc3RvcF9oYmFfdGltZXJzKHBoYmEpOwpAQCAtMTIxNzYsNyArMTIxMjksNyBAQCBscGZjX3NsaV9wcmVwX2Rldl9mb3JfcGVybV9mYWlsdXJlKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAlscGZjX3N0b3BfaGJhX3RpbWVycyhwaGJhKTsKIAogCS8qIENsZWFuIHVwIGFsbCBkcml2ZXIncyBvdXRzdGFuZGluZyBTQ1NJIEkvT3MgKi8KLQlscGZjX3NsaV9mbHVzaF9mY3BfcmluZ3MocGhiYSk7CisJbHBmY19zbGlfZmx1c2hfaW9fcmluZ3MocGhiYSk7CiB9CiAKIC8qKgpAQCAtMTI5NDgsMTIgKzEyOTAxLDggQEAgbHBmY19zbGk0X3ByZXBfZGV2X2Zvcl9yZXNldChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJLyogQmxvY2sgYWxsIFNDU0kgZGV2aWNlcycgSS9PcyBvbiB0aGUgaG9zdCAqLwogCWxwZmNfc2NzaV9kZXZfYmxvY2socGhiYSk7CiAKLQkvKiBGbHVzaCBhbGwgZHJpdmVyJ3Mgb3V0c3RhbmRpbmcgU0NTSSBJL09zIGFzIHdlIGFyZSB0byByZXNldCAqLwotCWxwZmNfc2xpX2ZsdXNoX2ZjcF9yaW5ncyhwaGJhKTsKLQotCS8qIEZsdXNoIHRoZSBvdXRzdGFuZGluZyBOVk1FIElPcyBpZiBmYzQgdHlwZSBlbmFibGVkLiAqLwotCWlmIChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkKLQkJbHBmY19zbGlfZmx1c2hfbnZtZV9yaW5ncyhwaGJhKTsKKwkvKiBGbHVzaCBhbGwgZHJpdmVyJ3Mgb3V0c3RhbmRpbmcgSS9PcyBhcyB3ZSBhcmUgdG8gcmVzZXQgKi8KKwlscGZjX3NsaV9mbHVzaF9pb19yaW5ncyhwaGJhKTsKIAogCS8qIHN0b3AgYWxsIHRpbWVycyAqLwogCWxwZmNfc3RvcF9oYmFfdGltZXJzKHBoYmEpOwpAQCAtMTI5ODQsMTIgKzEyOTMzLDggQEAgbHBmY19zbGk0X3ByZXBfZGV2X2Zvcl9wZXJtX2ZhaWx1cmUoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCS8qIHN0b3AgYWxsIHRpbWVycyAqLwogCWxwZmNfc3RvcF9oYmFfdGltZXJzKHBoYmEpOwogCi0JLyogQ2xlYW4gdXAgYWxsIGRyaXZlcidzIG91dHN0YW5kaW5nIFNDU0kgSS9PcyAqLwotCWxwZmNfc2xpX2ZsdXNoX2ZjcF9yaW5ncyhwaGJhKTsKLQotCS8qIEZsdXNoIHRoZSBvdXRzdGFuZGluZyBOVk1FIElPcyBpZiBmYzQgdHlwZSBlbmFibGVkLiAqLwotCWlmIChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkKLQkJbHBmY19zbGlfZmx1c2hfbnZtZV9yaW5ncyhwaGJhKTsKKwkvKiBDbGVhbiB1cCBhbGwgZHJpdmVyJ3Mgb3V0c3RhbmRpbmcgSS9PcyAqLworCWxwZmNfc2xpX2ZsdXNoX2lvX3JpbmdzKHBoYmEpOwogfQogCiAvKioKQEAgLTEzNTMwLDE5ICsxMzQ3NSw2IEBAIGxwZmNfZXhpdCh2b2lkKQogCXBjaV91bnJlZ2lzdGVyX2RyaXZlcigmbHBmY19kcml2ZXIpOwogCWZjX3JlbGVhc2VfdHJhbnNwb3J0KGxwZmNfdHJhbnNwb3J0X3RlbXBsYXRlKTsKIAlmY19yZWxlYXNlX3RyYW5zcG9ydChscGZjX3Zwb3J0X3RyYW5zcG9ydF90ZW1wbGF0ZSk7Ci0JaWYgKF9kdW1wX2J1Zl9kYXRhKSB7Ci0JCXByaW50ayhLRVJOX0VSUgkiOTA2MiBCTEtHUkQ6IGZyZWVpbmcgJWx1IHBhZ2VzIGZvciAiCi0JCQkJIl9kdW1wX2J1Zl9kYXRhIGF0IDB4JXBcbiIsCi0JCQkJKDFMIDw8IF9kdW1wX2J1Zl9kYXRhX29yZGVyKSwgX2R1bXBfYnVmX2RhdGEpOwotCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKV9kdW1wX2J1Zl9kYXRhLCBfZHVtcF9idWZfZGF0YV9vcmRlcik7Ci0JfQotCi0JaWYgKF9kdW1wX2J1Zl9kaWYpIHsKLQkJcHJpbnRrKEtFUk5fRVJSCSI5MDQ5IEJMS0dSRDogZnJlZWluZyAlbHUgcGFnZXMgZm9yICIKLQkJCQkiX2R1bXBfYnVmX2RpZiBhdCAweCVwXG4iLAotCQkJCSgxTCA8PCBfZHVtcF9idWZfZGlmX29yZGVyKSwgX2R1bXBfYnVmX2RpZik7Ci0JCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpX2R1bXBfYnVmX2RpZiwgX2R1bXBfYnVmX2RpZl9vcmRlcik7Ci0JfQogCWlkcl9kZXN0cm95KCZscGZjX2hiYV9pbmRleCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfbWVtLmMgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX21lbS5jCmluZGV4IDY2MTkxZmEuLmFlMDliYjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfbWVtLmMKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19tZW0uYwpAQCAtNzIsOCArNzIsOCBAQCBscGZjX21lbV9hbGxvY19hY3RpdmVfcnJxX3Bvb2xfczQoc3RydWN0IGxwZmNfaGJhICpwaGJhKSB7CiAgKiBscGZjX21lbV9hbGxvYyAtIGNyZWF0ZSBhbmQgYWxsb2NhdGUgYWxsIFBDSSBhbmQgbWVtb3J5IHBvb2xzCiAgKiBAcGhiYTogSEJBIHRvIGFsbG9jYXRlIHBvb2xzIGZvcgogICoKLSAqIERlc2NyaXB0aW9uOiBDcmVhdGVzIGFuZCBhbGxvY2F0ZXMgUENJIHBvb2xzIGxwZmNfc2dfZG1hX2J1Zl9wb29sLAotICogbHBmY19tYnVmX3Bvb2wsIGxwZmNfaHJiX3Bvb2wuICBDcmVhdGVzIGFuZCBhbGxvY2F0ZXMga21hbGxvYy1iYWNrZWQgbWVtcG9vbHMKKyAqIERlc2NyaXB0aW9uOiBDcmVhdGVzIGFuZCBhbGxvY2F0ZXMgUENJIHBvb2xzIGxwZmNfbWJ1Zl9wb29sLAorICogbHBmY19ocmJfcG9vbC4gIENyZWF0ZXMgYW5kIGFsbG9jYXRlcyBrbWFsbG9jLWJhY2tlZCBtZW1wb29scwogICogZm9yIExQRkNfTUJPWFFfdCBhbmQgbHBmY19ub2RlbGlzdC4gIEFsc28gYWxsb2NhdGVzIHRoZSBWUEkgYml0bWFzay4KICAqCiAgKiBOb3RlczogTm90IGludGVycnVwdC1zYWZlLiAgTXVzdCBiZSBjYWxsZWQgd2l0aCBubyBsb2NrcyBoZWxkLiAgSWYgYW55CkBAIC04OSwzNiArODksMTIgQEAgbHBmY19tZW1fYWxsb2Moc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQgYWxpZ24pCiAJc3RydWN0IGxwZmNfZG1hX3Bvb2wgKnBvb2wgPSAmcGhiYS0+bHBmY19tYnVmX3NhZmV0eV9wb29sOwogCWludCBpOwogCi0JaWYgKHBoYmEtPnNsaV9yZXYgPT0gTFBGQ19TTElfUkVWNCkgewotCQkvKiBDYWxjdWxhdGUgYWxpZ25tZW50ICovCi0JCWlmIChwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplIDwgU0xJNF9QQUdFX1NJWkUpCi0JCQlpID0gcGhiYS0+Y2ZnX3NnX2RtYV9idWZfc2l6ZTsKLQkJZWxzZQotCQkJaSA9IFNMSTRfUEFHRV9TSVpFOwotCi0JCXBoYmEtPmxwZmNfc2dfZG1hX2J1Zl9wb29sID0KLQkJCWRtYV9wb29sX2NyZWF0ZSgibHBmY19zZ19kbWFfYnVmX3Bvb2wiLAotCQkJCQkmcGhiYS0+cGNpZGV2LT5kZXYsCi0JCQkJCXBoYmEtPmNmZ19zZ19kbWFfYnVmX3NpemUsCi0JCQkJCWksIDApOwotCQlpZiAoIXBoYmEtPmxwZmNfc2dfZG1hX2J1Zl9wb29sKQotCQkJZ290byBmYWlsOwotCi0JfSBlbHNlIHsKLQkJcGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wgPQotCQkJZG1hX3Bvb2xfY3JlYXRlKCJscGZjX3NnX2RtYV9idWZfcG9vbCIsCi0JCQkJCSZwaGJhLT5wY2lkZXYtPmRldiwgcGhiYS0+Y2ZnX3NnX2RtYV9idWZfc2l6ZSwKLQkJCQkJYWxpZ24sIDApOwotCi0JCWlmICghcGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wpCi0JCQlnb3RvIGZhaWw7Ci0JfQogCiAJcGhiYS0+bHBmY19tYnVmX3Bvb2wgPSBkbWFfcG9vbF9jcmVhdGUoImxwZmNfbWJ1Zl9wb29sIiwgJnBoYmEtPnBjaWRldi0+ZGV2LAogCQkJCQkJCUxQRkNfQlBMX1NJWkUsCiAJCQkJCQkJYWxpZ24sIDApOwogCWlmICghcGhiYS0+bHBmY19tYnVmX3Bvb2wpCi0JCWdvdG8gZmFpbF9mcmVlX2RtYV9idWZfcG9vbDsKKwkJZ290byBmYWlsOwogCiAJcG9vbC0+ZWxlbWVudHMgPSBrbWFsbG9jX2FycmF5KExQRkNfTUJVRl9QT09MX1NJWkUsCiAJCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgbHBmY19kbWFidWYpLApAQCAtMjA4LDkgKzE4NCw2IEBAIGxwZmNfbWVtX2FsbG9jKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgaW50IGFsaWduKQogIGZhaWxfZnJlZV9scGZjX21idWZfcG9vbDoKIAlkbWFfcG9vbF9kZXN0cm95KHBoYmEtPmxwZmNfbWJ1Zl9wb29sKTsKIAlwaGJhLT5scGZjX21idWZfcG9vbCA9IE5VTEw7Ci0gZmFpbF9mcmVlX2RtYV9idWZfcG9vbDoKLQlkbWFfcG9vbF9kZXN0cm95KHBoYmEtPmxwZmNfc2dfZG1hX2J1Zl9wb29sKTsKLQlwaGJhLT5scGZjX3NnX2RtYV9idWZfcG9vbCA9IE5VTEw7CiAgZmFpbDoKIAlyZXR1cm4gLUVOT01FTTsKIH0KQEAgLTI0OCwyNSArMjIxLDIyIEBAIGxwZmNfbWVtX2ZyZWUoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCiAJLyogRnJlZSBIQlEgcG9vbHMgKi8KIAlscGZjX3NsaV9oYnFidWZfZnJlZV9hbGwocGhiYSk7Ci0JaWYgKHBoYmEtPmxwZmNfbnZtZXRfZHJiX3Bvb2wpCi0JCWRtYV9wb29sX2Rlc3Ryb3kocGhiYS0+bHBmY19udm1ldF9kcmJfcG9vbCk7CisJZG1hX3Bvb2xfZGVzdHJveShwaGJhLT5scGZjX252bWV0X2RyYl9wb29sKTsKIAlwaGJhLT5scGZjX252bWV0X2RyYl9wb29sID0gTlVMTDsKLQlpZiAocGhiYS0+bHBmY19kcmJfcG9vbCkKLQkJZG1hX3Bvb2xfZGVzdHJveShwaGJhLT5scGZjX2RyYl9wb29sKTsKKworCWRtYV9wb29sX2Rlc3Ryb3kocGhiYS0+bHBmY19kcmJfcG9vbCk7CiAJcGhiYS0+bHBmY19kcmJfcG9vbCA9IE5VTEw7Ci0JaWYgKHBoYmEtPmxwZmNfaHJiX3Bvb2wpCi0JCWRtYV9wb29sX2Rlc3Ryb3kocGhiYS0+bHBmY19ocmJfcG9vbCk7CisKKwlkbWFfcG9vbF9kZXN0cm95KHBoYmEtPmxwZmNfaHJiX3Bvb2wpOwogCXBoYmEtPmxwZmNfaHJiX3Bvb2wgPSBOVUxMOwotCWlmIChwaGJhLT50eHJkeV9wYXlsb2FkX3Bvb2wpCi0JCWRtYV9wb29sX2Rlc3Ryb3kocGhiYS0+dHhyZHlfcGF5bG9hZF9wb29sKTsKKworCWRtYV9wb29sX2Rlc3Ryb3kocGhiYS0+dHhyZHlfcGF5bG9hZF9wb29sKTsKIAlwaGJhLT50eHJkeV9wYXlsb2FkX3Bvb2wgPSBOVUxMOwogCi0JaWYgKHBoYmEtPmxwZmNfaGJxX3Bvb2wpCi0JCWRtYV9wb29sX2Rlc3Ryb3kocGhiYS0+bHBmY19oYnFfcG9vbCk7CisJZG1hX3Bvb2xfZGVzdHJveShwaGJhLT5scGZjX2hicV9wb29sKTsKIAlwaGJhLT5scGZjX2hicV9wb29sID0gTlVMTDsKIAotCWlmIChwaGJhLT5ycnFfcG9vbCkKLQkJbWVtcG9vbF9kZXN0cm95KHBoYmEtPnJycV9wb29sKTsKKwltZW1wb29sX2Rlc3Ryb3kocGhiYS0+cnJxX3Bvb2wpOwogCXBoYmEtPnJycV9wb29sID0gTlVMTDsKIAogCS8qIEZyZWUgTkxQIG1lbW9yeSBwb29sICovCkBAIC0yOTAsMTAgKzI2MCw2IEBAIGxwZmNfbWVtX2ZyZWUoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCWRtYV9wb29sX2Rlc3Ryb3kocGhiYS0+bHBmY19tYnVmX3Bvb2wpOwogCXBoYmEtPmxwZmNfbWJ1Zl9wb29sID0gTlVMTDsKIAotCS8qIEZyZWUgRE1BIGJ1ZmZlciBtZW1vcnkgcG9vbCAqLwotCWRtYV9wb29sX2Rlc3Ryb3kocGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wpOwotCXBoYmEtPmxwZmNfc2dfZG1hX2J1Zl9wb29sID0gTlVMTDsKLQogCS8qIEZyZWUgRGV2aWNlIERhdGEgbWVtb3J5IHBvb2wgKi8KIAlpZiAocGhiYS0+ZGV2aWNlX2RhdGFfbWVtX3Bvb2wpIHsKIAkJLyogRW5zdXJlIGFsbCBvYmplY3RzIGhhdmUgYmVlbiByZXR1cm5lZCB0byB0aGUgcG9vbCAqLwpAQCAtMzY2LDYgKzMzMiwxMyBAQCBscGZjX21lbV9mcmVlX2FsbChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJLyogRnJlZSBhbmQgZGVzdHJveSBhbGwgdGhlIGFsbG9jYXRlZCBtZW1vcnkgcG9vbHMgKi8KIAlscGZjX21lbV9mcmVlKHBoYmEpOwogCisJLyogRnJlZSBETUEgYnVmZmVyIG1lbW9yeSBwb29sICovCisJZG1hX3Bvb2xfZGVzdHJveShwaGJhLT5scGZjX3NnX2RtYV9idWZfcG9vbCk7CisJcGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wgPSBOVUxMOworCisJZG1hX3Bvb2xfZGVzdHJveShwaGJhLT5scGZjX2NtZF9yc3BfYnVmX3Bvb2wpOworCXBoYmEtPmxwZmNfY21kX3JzcF9idWZfcG9vbCA9IE5VTEw7CisKIAkvKiBGcmVlIHRoZSBpb2NiIGxvb2t1cCBhcnJheSAqLwogCWtmcmVlKHBzbGktPmlvY2JxX2xvb2t1cCk7CiAJcHNsaS0+aW9jYnFfbG9va3VwID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfbnBvcnRkaXNjLmMgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX25wb3J0ZGlzYy5jCmluZGV4IDU5MjUyYmYuLmY0Yjg3OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfbnBvcnRkaXNjLmMKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19ucG9ydGRpc2MuYwpAQCAtNjE0LDcgKzYxNCw3IEBAIGxwZmNfcmN2X3BhZGlzYyhzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwLAogCQl9CiBvdXQ6CiAJCS8qIElmIHdlIGFyZSBhdXRoZW50aWNhdGVkLCBtb3ZlIHRvIHRoZSBwcm9wZXIgc3RhdGUgKi8KLQkJaWYgKG5kbHAtPm5scF90eXBlICYgTkxQX0ZDUF9UQVJHRVQpCisJCWlmIChuZGxwLT5ubHBfdHlwZSAmIChOTFBfRkNQX1RBUkdFVCB8IE5MUF9OVk1FX1RBUkdFVCkpCiAJCQlscGZjX25scF9zZXRfc3RhdGUodnBvcnQsIG5kbHAsIE5MUF9TVEVfTUFQUEVEX05PREUpOwogCQllbHNlCiAJCQlscGZjX25scF9zZXRfc3RhdGUodnBvcnQsIG5kbHAsIE5MUF9TVEVfVU5NQVBQRURfTk9ERSk7CkBAIC03OTksOSArNzk5LDE1IEBAIGxwZmNfcmN2X3BybGkoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCwKIAkJCWlmIChucHItPndyaXRlWGZlclJkeURpcykKIAkJCQluZGxwLT5ubHBfZmxhZyB8PSBOTFBfRklSU1RCVVJTVDsKIAkJfQotCQlpZiAobnByLT5SZXRyeSkKKwkJaWYgKG5wci0+UmV0cnkgJiYgbmRscC0+bmxwX3R5cGUgJgorCQkJCQkoTkxQX0ZDUF9JTklUSUFUT1IgfCBOTFBfRkNQX1RBUkdFVCkpCiAJCQluZGxwLT5ubHBfZmNwX2luZm8gfD0gTkxQX0ZDUF8yX0RFVklDRTsKIAorCQlpZiAobnByLT5SZXRyeSAmJiBwaGJhLT5uc2xlciAmJgorCQkgICAgbmRscC0+bmxwX3R5cGUgJiAoTkxQX05WTUVfSU5JVElBVE9SIHwgTkxQX05WTUVfVEFSR0VUKSkKKwkJCW5kbHAtPm5scF9udm1lX2luZm8gfD0gTkxQX05WTUVfTlNMRVI7CisKKwogCQkvKiBJZiB0aGlzIGRyaXZlciBpcyBpbiBudm1lIHRhcmdldCBtb2RlLCBzZXQgdGhlIG5kbHAncyBmYzQKIAkJICogdHlwZSB0byBOVk1FIHByb3ZpZGVkIHRoZSBQUkxJIHJlc3BvbnNlIGNsYWltcyBOVk1FIEZDNAogCQkgKiB0eXBlLiAgVGFyZ2V0IG1vZGUgZG9lcyBub3QgaXNzdWUgZ2Z0X2lkIHNvIGRvZXNuJ3QgZ2V0CkBAIC04ODUsNyArODkxLDcgQEAgbHBmY19yZWxlYXNlX3JwaShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfRElTQ09WRVJZLAogCQkJCSAiMTQzNSByZWxlYXNlX3JwaSBTS0lQIFVOUkVHIHgleCBvbiAiCiAJCQkJICJOUG9ydCB4JXggZGVmZXJyZWQgeCV4ICBmbGcgeCV4ICIKLQkJCQkgIkRhdGE6ICVwXG4iLAorCQkJCSAiRGF0YTogeCVweFxuIiwKIAkJCQkgbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX0RJRCwKIAkJCQkgbmRscC0+bmxwX2RlZmVyX2RpZCwKIAkJCQkgbmRscC0+bmxwX2ZsYWcsIG5kbHApOwpAQCAtMTY2MSw2ICsxNjY3LDcgQEAgbHBmY19yY3ZfbG9nb19yZWdsb2dpbl9pc3N1ZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsCiAJTFBGQ19NQk9YUV90CSAgKm1iOwogCUxQRkNfTUJPWFFfdAkgICpuZXh0bWI7CiAJc3RydWN0IGxwZmNfZG1hYnVmICptcDsKKwlzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbnNfbmRscDsKIAogCWNtZGlvY2IgPSAoc3RydWN0IGxwZmNfaW9jYnEgKikgYXJnOwogCkBAIC0xNjkzLDYgKzE3MDAsMTMgQEAgbHBmY19yY3ZfbG9nb19yZWdsb2dpbl9pc3N1ZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsCiAJfQogCXNwaW5fdW5sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7CiAKKwkvKiBzb2Z0d2FyZSBhYm9ydCBpZiBhbnkgR0lEX0ZUIGlzIG91dHN0YW5kaW5nICovCisJaWYgKHZwb3J0LT5jZmdfZW5hYmxlX2ZjNF90eXBlICE9IExQRkNfRU5BQkxFX0ZDUCkgeworCQluc19uZGxwID0gbHBmY19maW5kbm9kZV9kaWQodnBvcnQsIE5hbWVTZXJ2ZXJfRElEKTsKKwkJaWYgKG5zX25kbHAgJiYgTkxQX0NIS19OT0RFX0FDVChuc19uZGxwKSkKKwkJCWxwZmNfZWxzX2Fib3J0KHBoYmEsIG5zX25kbHApOworCX0KKwogCWxwZmNfcmN2X2xvZ28odnBvcnQsIG5kbHAsIGNtZGlvY2IsIEVMU19DTURfTE9HTyk7CiAJcmV0dXJuIG5kbHAtPm5scF9zdGF0ZTsKIH0KQEAgLTE4MTQsNyArMTgyOCwxMSBAQCBscGZjX2NtcGxfcmVnbG9naW5fcmVnbG9naW5faXNzdWUoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LAogCiAJCW5kbHAtPm5scF9wcmV2X3N0YXRlID0gTkxQX1NURV9SRUdfTE9HSU5fSVNTVUU7CiAJCWxwZmNfbmxwX3NldF9zdGF0ZSh2cG9ydCwgbmRscCwgTkxQX1NURV9QUkxJX0lTU1VFKTsKLQkJbHBmY19pc3N1ZV9lbHNfcHJsaSh2cG9ydCwgbmRscCwgMCk7CisJCWlmIChscGZjX2lzc3VlX2Vsc19wcmxpKHZwb3J0LCBuZGxwLCAwKSkgeworCQkJbHBmY19pc3N1ZV9lbHNfbG9nbyh2cG9ydCwgbmRscCwgMCk7CisJCQluZGxwLT5ubHBfcHJldl9zdGF0ZSA9IE5MUF9TVEVfUkVHX0xPR0lOX0lTU1VFOworCQkJbHBmY19ubHBfc2V0X3N0YXRlKHZwb3J0LCBuZGxwLCBOTFBfU1RFX05QUl9OT0RFKTsKKwkJfQogCX0gZWxzZSB7CiAJCWlmICgodnBvcnQtPmZjX2ZsYWcgJiBGQ19QVDJQVCkgJiYgcGhiYS0+bnZtZXRfc3VwcG9ydCkKIAkJCXBoYmEtPnRhcmdldHBvcnQtPnBvcnRfaWQgPSB2cG9ydC0+ZmNfbXlESUQ7CkBAIC0yMDEyLDYgKzIwMzAsMTEgQEAgbHBmY19jbXBsX3BybGlfcHJsaV9pc3N1ZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwLAogCQlpZiAoYmZfZ2V0X2JlMzIocHJsaV9pbml0LCBudnByKSkKIAkJCW5kbHAtPm5scF90eXBlIHw9IE5MUF9OVk1FX0lOSVRJQVRPUjsKIAorCQlpZiAocGhiYS0+bnNsZXIgJiYgYmZfZ2V0X2JlMzIocHJsaV9uc2xlciwgbnZwcikpCisJCQluZGxwLT5ubHBfbnZtZV9pbmZvIHw9IE5MUF9OVk1FX05TTEVSOworCQllbHNlCisJCQluZGxwLT5ubHBfbnZtZV9pbmZvICY9IH5OTFBfTlZNRV9OU0xFUjsKKwogCQkvKiBUYXJnZXQgZHJpdmVyIGNhbm5vdCBzb2xpY2l0IE5WTUUgRkIuICovCiAJCWlmIChiZl9nZXRfYmUzMihwcmxpX3RndCwgbnZwcikpIHsKIAkJCS8qIENvbXBsZXRlIHRoZSBudm1lIHRhcmdldCByb2xlcy4gIFRoZSB0cmFuc3BvcnQKQEAgLTI4OTEsMTggKzI5MTQsMjEgQEAgbHBmY19kaXNjX3N0YXRlX21hY2hpbmUoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCwKIAl1aW50MzJfdCgqZnVuYykgKHN0cnVjdCBscGZjX3Zwb3J0ICosIHN0cnVjdCBscGZjX25vZGVsaXN0ICosIHZvaWQgKiwKIAkJCSB1aW50MzJfdCk7CiAJdWludDMyX3QgZ290X25kbHAgPSAwOworCXVpbnQzMl90IGRhdGExOwogCiAJaWYgKGxwZmNfbmxwX2dldChuZGxwKSkKIAkJZ290X25kbHAgPSAxOwogCiAJY3VyX3N0YXRlID0gbmRscC0+bmxwX3N0YXRlOwogCisJZGF0YTEgPSAoKCh1aW50MzJfdCluZGxwLT5ubHBfZmM0X3R5cGUgPDwgMTYpIHwKKwkJKCh1aW50MzJfdCluZGxwLT5ubHBfdHlwZSkpOwogCS8qIERTTSBpbiBldmVudCA8ZXZ0PiBvbiBOUG9ydCA8bmxwX0RJRD4gaW4gc3RhdGUgPGN1cl9zdGF0ZT4gKi8KIAlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19ESVNDT1ZFUlksCiAJCQkgIjAyMTEgRFNNIGluIGV2ZW50IHgleCBvbiBOUG9ydCB4JXggaW4gIgogCQkJICJzdGF0ZSAlZCBycGkgeCV4IERhdGE6IHgleCB4JXhcbiIsCiAJCQkgZXZ0LCBuZGxwLT5ubHBfRElELCBjdXJfc3RhdGUsIG5kbHAtPm5scF9ycGksCi0JCQkgbmRscC0+bmxwX2ZsYWcsIG5kbHAtPm5scF9mYzRfdHlwZSk7CisJCQkgbmRscC0+bmxwX2ZsYWcsIGRhdGExKTsKIAogCWxwZmNfZGVidWdmc19kaXNjX3RyYyh2cG9ydCwgTFBGQ19ESVNDX1RSQ19EU00sCiAJCSAiRFNNIGluOiAgICAgICAgICBldnQ6JWQgc3RlOiVkIGRpZDp4JXgiLApAQCAtMjkxMywxMCArMjkzOSwxMyBAQCBscGZjX2Rpc2Nfc3RhdGVfbWFjaGluZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwLAogCiAJLyogRFNNIG91dCBzdGF0ZSA8cmM+IG9uIE5Qb3J0IDxubHBfRElEPiAqLwogCWlmIChnb3RfbmRscCkgeworCQlkYXRhMSA9ICgoKHVpbnQzMl90KW5kbHAtPm5scF9mYzRfdHlwZSA8PCAxNikgfAorCQkJKCh1aW50MzJfdCluZGxwLT5ubHBfdHlwZSkpOwogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19ESVNDT1ZFUlksCiAJCQkgIjAyMTIgRFNNIG91dCBzdGF0ZSAlZCBvbiBOUG9ydCB4JXggIgotCQkJICJycGkgeCV4IERhdGE6IHgleFxuIiwKLQkJCSByYywgbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX2ZsYWcpOworCQkJICJycGkgeCV4IERhdGE6IHgleCB4JXhcbiIsCisJCQkgcmMsIG5kbHAtPm5scF9ESUQsIG5kbHAtPm5scF9ycGksIG5kbHAtPm5scF9mbGFnLAorCQkJIGRhdGExKTsKIAogCQlscGZjX2RlYnVnZnNfZGlzY190cmModnBvcnQsIExQRkNfRElTQ19UUkNfRFNNLAogCQkJIkRTTSBvdXQ6ICAgICAgICAgc3RlOiVkIGRpZDp4JXggZmxnOngleCIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX252bWUuYyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfbnZtZS5jCmluZGV4IDk0NjY0MmMuLmEyMjdlMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfbnZtZS5jCisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfbnZtZS5jCkBAIC0yNDcsNyArMjQ3LDcgQEAgbHBmY19udm1lX2NyZWF0ZV9xdWV1ZShzdHJ1Y3QgbnZtZV9mY19sb2NhbF9wb3J0ICpwbnZtZV9scG9ydCwKIAogCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05WTUUsCiAJCQkgIjYwNzMgQmluZGluZyAlcyBIZHdRdWV1ZSAlZCAgKGNwdSAlZCkgdG8gIgotCQkJICJoZHdfcXVldWUgJWQgcWhhbmRsZSAlcFxuIiwgc3RyLAorCQkJICJoZHdfcXVldWUgJWQgcWhhbmRsZSB4JXB4XG4iLCBzdHIsCiAJCQkgcWlkeCwgcWhhbmRsZS0+Y3B1X2lkLCBxaGFuZGxlLT5pbmRleCwgcWhhbmRsZSk7CiAJKmhhbmRsZSA9ICh2b2lkICopcWhhbmRsZTsKIAlyZXR1cm4gMDsKQEAgLTI4Miw3ICsyODIsNyBAQCBscGZjX252bWVfZGVsZXRlX3F1ZXVlKHN0cnVjdCBudm1lX2ZjX2xvY2FsX3BvcnQgKnBudm1lX2xwb3J0LAogCXZwb3J0ID0gbHBvcnQtPnZwb3J0OwogCiAJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfTlZNRSwKLQkJCSI2MDAxIEVOVEVSLiAgbHBmY19wbnZtZSAlcCwgcWlkeCB4JXggcWhhbmRsZSAlcFxuIiwKKwkJCSI2MDAxIEVOVEVSLiAgbHBmY19wbnZtZSB4JXB4LCBxaWR4IHgleCBxaGFuZGxlIHglcHhcbiIsCiAJCQlscG9ydCwgcWlkeCwgaGFuZGxlKTsKIAlrZnJlZShoYW5kbGUpOwogfQpAQCAtMjkzLDcgKzI5Myw3IEBAIGxwZmNfbnZtZV9sb2NhbHBvcnRfZGVsZXRlKHN0cnVjdCBudm1lX2ZjX2xvY2FsX3BvcnQgKmxvY2FscG9ydCkKIAlzdHJ1Y3QgbHBmY19udm1lX2xwb3J0ICpscG9ydCA9IGxvY2FscG9ydC0+cHJpdmF0ZTsKIAogCWxwZmNfcHJpbnRmX3Zsb2cobHBvcnQtPnZwb3J0LCBLRVJOX0lORk8sIExPR19OVk1FLAotCQkJICI2MTczIGxvY2FscG9ydCAlcCBkZWxldGUgY29tcGxldGVcbiIsCisJCQkgIjYxNzMgbG9jYWxwb3J0IHglcHggZGVsZXRlIGNvbXBsZXRlXG4iLAogCQkJIGxwb3J0KTsKIAogCS8qIHJlbGVhc2UgYW55IHRocmVhZHMgd2FpdGluZyBmb3IgdGhlIHVucmVnIHRvIGNvbXBsZXRlICovCkBAIC0zMzIsNyArMzMyLDcgQEAgbHBmY19udm1lX3JlbW90ZXBvcnRfZGVsZXRlKHN0cnVjdCBudm1lX2ZjX3JlbW90ZV9wb3J0ICpyZW1vdGVwb3J0KQogCSAqIGNhbGxpbmcgc3RhdGUgbWFjaGluZSB0byByZW1vdmUgdGhlIG5vZGUuCiAJICovCiAJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfTlZNRV9ESVNDLAotCQkJIjYxNDYgcmVtb3RlcG9ydCBkZWxldGUgb2YgcmVtb3RlcG9ydCAlcFxuIiwKKwkJCSI2MTQ2IHJlbW90ZXBvcnQgZGVsZXRlIG9mIHJlbW90ZXBvcnQgeCVweFxuIiwKIAkJCXJlbW90ZXBvcnQpOwogCXNwaW5fbG9ja19pcnEoJnZwb3J0LT5waGJhLT5oYmFsb2NrKTsKIApAQCAtMzgzLDggKzM4Myw4IEBAIGxwZmNfbnZtZV9jbXBsX2dlbl9yZXEoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb2NicSAqY21kd3FlLAogCW5kbHAgPSAoc3RydWN0IGxwZmNfbm9kZWxpc3QgKiljbWR3cWUtPmNvbnRleHQxOwogCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05WTUVfRElTQywKIAkJCSAiNjA0NyBudm1lIGNtcGwgRW50ZXIgIgotCQkJICJEYXRhICVwIERJRCAleCBYcmk6ICV4IHN0YXR1cyAleCByZWFzb24geCV4IGNtZDolcCAiCi0JCQkgImxzcmVnOiVwIGJtcDolcCBuZGxwOiVwXG4iLAorCQkJICJEYXRhICVweCBESUQgJXggWHJpOiAleCBzdGF0dXMgJXggcmVhc29uIHgleCAiCisJCQkgImNtZDp4JXB4IGxzcmVnOnglcHggYm1wOnglcHggbmRscDp4JXB4XG4iLAogCQkJIHBudm1lX2xzcmVxLCBuZGxwID8gbmRscC0+bmxwX0RJRCA6IDAsCiAJCQkgY21kd3FlLT5zbGk0X3hyaXRhZywgc3RhdHVzLAogCQkJICh3Y3FlLT5wYXJhbWV0ZXIgJiAweGZmZmYpLApAQCAtNDA0LDcgKzQwNCw3IEBAIGxwZmNfbnZtZV9jbXBsX2dlbl9yZXEoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb2NicSAqY21kd3FlLAogCWVsc2UKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19OVk1FX0RJU0MsCiAJCQkJICI2MDQ2IG52bWUgY21wbCB3aXRob3V0IGRvbmUgY2FsbCBiYWNrPyAiCi0JCQkJICJEYXRhICVwIERJRCAleCBYcmk6ICV4IHN0YXR1cyAleFxuIiwKKwkJCQkgIkRhdGEgJXB4IERJRCAleCBYcmk6ICV4IHN0YXR1cyAleFxuIiwKIAkJCQlwbnZtZV9sc3JlcSwgbmRscCA/IG5kbHAtPm5scF9ESUQgOiAwLAogCQkJCWNtZHdxZS0+c2xpNF94cml0YWcsIHN0YXR1cyk7CiAJaWYgKG5kbHApIHsKQEAgLTQzNiw2ICs0MzYsNyBAQCBscGZjX252bWVfZ2VuX3JlcShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX2RtYWJ1ZiAqYm1wLAogCQlyZXR1cm4gMTsKIAogCXdxZSA9ICZnZW53cWUtPndxZTsKKwkvKiBJbml0aWFsaXplIG9ubHkgNjQgYnl0ZXMgKi8KIAltZW1zZXQod3FlLCAwLCBzaXplb2YodW5pb24gbHBmY193cWUpKTsKIAogCWdlbndxZS0+Y29udGV4dDMgPSAodWludDhfdCAqKWJtcDsKQEAgLTUxNiw3ICs1MTcsOCBAQCBscGZjX252bWVfZ2VuX3JlcShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX2RtYWJ1ZiAqYm1wLAogCS8qIElzc3VlIEdFTiBSRVEgV1FFIGZvciBOUE9SVCA8ZGlkPiAqLwogCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX0VMUywKIAkJCSAiNjA1MCBJc3N1ZSBHRU4gUkVRIFdRRSB0byBOUE9SVCB4JXggIgotCQkJICJEYXRhOiB4JXggeCV4IHdxOiVwIGxzcmVxOiVwIGJtcDolcCB4bWl0OiVkIDFzdDolZFxuIiwKKwkJCSAiRGF0YTogeCV4IHgleCB3cTp4JXB4IGxzcmVxOnglcHggYm1wOnglcHggIgorCQkJICJ4bWl0OiVkIDFzdDolZFxuIiwKIAkJCSBuZGxwLT5ubHBfRElELCBnZW53cWUtPmlvdGFnLAogCQkJIHZwb3J0LT5wb3J0X3N0YXRlLAogCQkJZ2Vud3FlLCBwbnZtZV9sc3JlcSwgYm1wLCB4bWl0X2xlbiwgZmlyc3RfbGVuKTsKQEAgLTU5NCw3ICs1OTYsNyBAQCBscGZjX252bWVfbHNfcmVxKHN0cnVjdCBudm1lX2ZjX2xvY2FsX3BvcnQgKnBudm1lX2xwb3J0LAogCW5kbHAgPSBycG9ydC0+bmRscDsKIAlpZiAoIW5kbHAgfHwgIU5MUF9DSEtfTk9ERV9BQ1QobmRscCkpIHsKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19OT0RFIHwgTE9HX05WTUVfSU9FUlIsCi0JCQkJICI2MDUxIFJlbW90ZXBvcnQgJXAsIHJwb3J0IGhhcyBpbnZhbGlkIG5kbHAuICIKKwkJCQkgIjYwNTEgUmVtb3RlcG9ydCB4JXB4LCBycG9ydCBoYXMgaW52YWxpZCBuZGxwLiAiCiAJCQkJICJGYWlsaW5nIExTIFJlcVxuIiwgcG52bWVfcnBvcnQpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CkBAIC02NDYsMTAgKzY0OCwxMCBAQCBscGZjX252bWVfbHNfcmVxKHN0cnVjdCBudm1lX2ZjX2xvY2FsX3BvcnQgKnBudm1lX2xwb3J0LAogCiAJLyogRXhwYW5kIHByaW50IHRvIGluY2x1ZGUga2V5IGZpZWxkcy4gKi8KIAlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19OVk1FX0RJU0MsCi0JCQkgIjYxNDkgSXNzdWUgTFMgUmVxIHRvIERJRCAweCUwNnggbHBvcnQgJXAsIHJwb3J0ICVwICIKLQkJCSAibHNyZXElcCBycXN0bGVuOiVkIHJzcGxlbjolZCAlcGFkICVwYWRcbiIsCi0JCQkgbmRscC0+bmxwX0RJRCwKLQkJCSBwbnZtZV9scG9ydCwgcG52bWVfcnBvcnQsCisJCQkgIjYxNDkgSXNzdWUgTFMgUmVxIHRvIERJRCAweCUwNnggbHBvcnQgeCVweCwgIgorCQkJICJycG9ydCB4JXB4IGxzcmVxIHglcHggcnFzdGxlbjolZCByc3BsZW46JWQgIgorCQkJICIlcGFkICVwYWRcbiIsCisJCQkgbmRscC0+bmxwX0RJRCwgcG52bWVfbHBvcnQsIHBudm1lX3Jwb3J0LAogCQkJIHBudm1lX2xzcmVxLCBwbnZtZV9sc3JlcS0+cnFzdGxlbiwKIAkJCSBwbnZtZV9sc3JlcS0+cnNwbGVuLCAmcG52bWVfbHNyZXEtPnJxc3RkbWEsCiAJCQkgJnBudm1lX2xzcmVxLT5yc3BkbWEpOwpAQCAtNjY1LDggKzY2Nyw4IEBAIGxwZmNfbnZtZV9sc19yZXEoc3RydWN0IG52bWVfZmNfbG9jYWxfcG9ydCAqcG52bWVfbHBvcnQsCiAJaWYgKHJldCAhPSBXUUVfU1VDQ0VTUykgewogCQlhdG9taWNfaW5jKCZscG9ydC0+eG10X2xzX2Vycik7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fRVJSLCBMT0dfTlZNRV9ESVNDLAotCQkJCSAiNjA1MiBFWElULiBpc3N1ZSBscyB3cWUgZmFpbGVkIGxwb3J0ICVwLCAiCi0JCQkJICJycG9ydCAlcCBsc3JlcSVwIFN0YXR1cyAleCBESUQgJXhcbiIsCisJCQkJICI2MDUyIEVYSVQuIGlzc3VlIGxzIHdxZSBmYWlsZWQgbHBvcnQgeCVweCwgIgorCQkJCSAicnBvcnQgeCVweCBsc3JlcSB4JXB4IFN0YXR1cyAleCBESUQgJXhcbiIsCiAJCQkJIHBudm1lX2xwb3J0LCBwbnZtZV9ycG9ydCwgcG52bWVfbHNyZXEsCiAJCQkJIHJldCwgbmRscC0+bmxwX0RJRCk7CiAJCWxwZmNfbWJ1Zl9mcmVlKHZwb3J0LT5waGJhLCBibXAtPnZpcnQsIGJtcC0+cGh5cyk7CkBAIC03MjMsNyArNzI1LDcgQEAgbHBmY19udm1lX2xzX2Fib3J0KHN0cnVjdCBudm1lX2ZjX2xvY2FsX3BvcnQgKnBudm1lX2xwb3J0LAogCiAJLyogRXhwYW5kIHByaW50IHRvIGluY2x1ZGUga2V5IGZpZWxkcy4gKi8KIAlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19OVk1FX0FCVFMsCi0JCQkgIjYwNDAgRU5URVIuICBscG9ydCAlcCwgcnBvcnQgJXAgbHNyZXEgJXAgcnFzdGxlbjolZCAiCisJCQkgIjYwNDAgRU5URVIuICBscG9ydCB4JXB4LCBycG9ydCB4JXB4IGxzcmVxIHglcHggcnFzdGxlbjolZCAiCiAJCQkgInJzcGxlbjolZCAlcGFkICVwYWRcbiIsCiAJCQkgcG52bWVfbHBvcnQsIHBudm1lX3Jwb3J0LAogCQkJIHBudm1lX2xzcmVxLCBwbnZtZV9sc3JlcS0+cnFzdGxlbiwKQEAgLTk4NCw4ICs5ODYsOCBAQCBscGZjX252bWVfaW9fY21kX3dxZV9jbXBsKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9jYnEgKnB3cWVJbiwKIAlpZiAoIWxwZmNfbmNtZC0+bnZtZUNtZCkgewogCQlzcGluX3VubG9jaygmbHBmY19uY21kLT5idWZfbG9jayk7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fRVJSLCBMT0dfTk9ERSB8IExPR19OVk1FX0lPRVJSLAotCQkJCSAiNjA2NiBNaXNzaW5nIGNtcGwgcHRyczogbHBmY19uY21kICVwLCAiCi0JCQkJICJudm1lQ21kICVwXG4iLAorCQkJCSAiNjA2NiBNaXNzaW5nIGNtcGwgcHRyczogbHBmY19uY21kIHglcHgsICIKKwkJCQkgIm52bWVDbWQgeCVweFxuIiwKIAkJCQkgbHBmY19uY21kLCBscGZjX25jbWQtPm52bWVDbWQpOwogCiAJCS8qIFJlbGVhc2UgdGhlIGxwZmNfbmNtZCByZWdhcmRsZXNzIG9mIHRoZSBtaXNzaW5nIGVsZW1lbnRzLiAqLwpAQCAtOTk4LDkgKzEwMDAsOSBAQCBscGZjX252bWVfaW9fY21kX3dxZV9jbXBsKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9jYnEgKnB3cWVJbiwKIAlpZHggPSBscGZjX25jbWQtPmN1cl9pb2NicS5oYmFfd3FpZHg7CiAJcGhiYS0+c2xpNF9oYmEuaGR3cVtpZHhdLm52bWVfY3N0YXQuaW9fY21wbHMrKzsKIAotCWlmICh2cG9ydC0+bG9jYWxwb3J0KSB7CisJaWYgKHVubGlrZWx5KHN0YXR1cyAmJiB2cG9ydC0+bG9jYWxwb3J0KSkgewogCQlscG9ydCA9IChzdHJ1Y3QgbHBmY19udm1lX2xwb3J0ICopdnBvcnQtPmxvY2FscG9ydC0+cHJpdmF0ZTsKLQkJaWYgKGxwb3J0ICYmIHN0YXR1cykgeworCQlpZiAobHBvcnQpIHsKIAkJCWlmIChiZl9nZXQobHBmY193Y3FlX2NfeGIsIHdjcWUpKQogCQkJCWF0b21pY19pbmMoJmxwb3J0LT5jbXBsX2ZjcF94Yik7CiAJCQlhdG9taWNfaW5jKCZscG9ydC0+Y21wbF9mY3BfZXJyKTsKQEAgLTExMDAsOCArMTEwMiw4IEBAIGxwZmNfbnZtZV9pb19jbWRfd3FlX2NtcGwoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb2NicSAqcHdxZUluLAogCQkJaWYgKGxwZmNfbmNtZC0+cmVzdWx0ID09IElPRVJSX0FCT1JUX1JFUVVFU1RFRCkKIAkJCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sCiAJCQkJCSBMT0dfTlZNRV9JT0VSUiwKLQkJCQkJICI2MDMyIERlbGF5IEFib3J0ZWQgY21kICVwICIKLQkJCQkJICJudm1lIGNtZCAlcCwgeHJpIHgleCwgIgorCQkJCQkgIjYwMzIgRGVsYXkgQWJvcnRlZCBjbWQgeCVweCAiCisJCQkJCSAibnZtZSBjbWQgeCVweCwgeHJpIHgleCwgIgogCQkJCQkgInhiICVkXG4iLAogCQkJCQkgbHBmY19uY21kLCBuQ21kLAogCQkJCQkgbHBmY19uY21kLT5jdXJfaW9jYnEuc2xpNF94cml0YWcsCkBAIC0xMTQwLDcgKzExNDIsNyBAQCBscGZjX252bWVfaW9fY21kX3dxZV9jbXBsKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9jYnEgKnB3cWVJbiwKIAkJcGhiYS0+a3RpbWVfbGFzdF9jbWQgPSBscGZjX25jbWQtPnRzX2RhdGFfbnZtZTsKIAkJbHBmY19udm1lX2t0aW1lKHBoYmEsIGxwZmNfbmNtZCk7CiAJfQotCWlmIChwaGJhLT5jcHVjaGVja19vbiAmIExQRkNfQ0hFQ0tfTlZNRV9JTykgeworCWlmICh1bmxpa2VseShwaGJhLT5jcHVjaGVja19vbiAmIExQRkNfQ0hFQ0tfTlZNRV9JTykpIHsKIAkJdWludDMyX3QgY3B1OwogCQlpZHggPSBscGZjX25jbWQtPmN1cl9pb2NicS5oYmFfd3FpZHg7CiAJCWNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CkBAIC0xMjUzLDYgKzEyNTUsOSBAQCBscGZjX252bWVfcHJlcF9pb19jbWQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LAogCQkgICAgICAgc2l6ZW9mKHVpbnQzMl90KSAqIDgpOwogCQljc3RhdC0+Y29udHJvbF9yZXF1ZXN0cysrOwogCX0KKworCWlmIChwbm9kZS0+bmxwX252bWVfaW5mbyAmIE5MUF9OVk1FX05TTEVSKQorCQliZl9zZXQod3FlX2VycCwgJndxZS0+Z2VuZXJpYy53cWVfY29tLCAxKTsKIAkvKgogCSAqIEZpbmlzaCBpbml0aWFsaXppbmcgdGhvc2UgV1FFIGZpZWxkcyB0aGF0IGFyZSBpbmRlcGVuZGVudAogCSAqIG9mIHRoZSBudm1lX2NtbmQgcmVxdWVzdF9idWZmZXIKQEAgLTEzMDQsMTQgKzEzMDksMTYgQEAgbHBmY19udm1lX3ByZXBfaW9fZG1hKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwKIAlzdHJ1Y3QgbnZtZWZjX2ZjcF9yZXEgKm5DbWQgPSBscGZjX25jbWQtPm52bWVDbWQ7CiAJdW5pb24gbHBmY193cWUxMjggKndxZSA9ICZscGZjX25jbWQtPmN1cl9pb2NicS53cWU7CiAJc3RydWN0IHNsaTRfc2dlICpzZ2wgPSBscGZjX25jbWQtPmRtYV9zZ2w7CisJc3RydWN0IHNsaTRfaHlicmlkX3NnbCAqc2dsX3h0cmEgPSBOVUxMOwogCXN0cnVjdCBzY2F0dGVybGlzdCAqZGF0YV9zZzsKIAlzdHJ1Y3Qgc2xpNF9zZ2UgKmZpcnN0X2RhdGFfc2dsOwogCXN0cnVjdCB1bHBfYmRlNjQgKmJkZTsKLQlkbWFfYWRkcl90IHBoeXNhZGRyOworCWRtYV9hZGRyX3QgcGh5c2FkZHIgPSAwOwogCXVpbnQzMl90IG51bV9iZGUgPSAwOwotCXVpbnQzMl90IGRtYV9sZW47CisJdWludDMyX3QgZG1hX2xlbiA9IDA7CiAJdWludDMyX3QgZG1hX29mZnNldCA9IDA7Ci0JaW50IG5zZWcsIGk7CisJaW50IG5zZWcsIGksIGo7CisJYm9vbCBsc3BfanVzdF9zZXQgPSBmYWxzZTsKIAogCS8qIEZpeCB1cCB0aGUgY29tbWFuZCBhbmQgcmVzcG9uc2UgRE1BIHN0dWZmLiAqLwogCWxwZmNfbnZtZV9hZGpfZmNwX3NnbHModnBvcnQsIGxwZmNfbmNtZCwgbkNtZCk7CkBAIC0xMzQ4LDYgKzEzNTUsOSBAQCBscGZjX252bWVfcHJlcF9pb19kbWEoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LAogCQkgKi8KIAkJbnNlZyA9IG5DbWQtPnNnX2NudDsKIAkJZGF0YV9zZyA9IG5DbWQtPmZpcnN0X3NnbDsKKworCQkvKiBmb3IgdHJhY2tpbmcgdGhlIHNlZ21lbnQgYm91bmRhcmllcyAqLworCQlqID0gMjsKIAkJZm9yIChpID0gMDsgaSA8IG5zZWc7IGkrKykgewogCQkJaWYgKGRhdGFfc2cgPT0gTlVMTCkgewogCQkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX05WTUVfSU9FUlIsCkBAIC0xMzU2LDIzICsxMzY2LDc2IEBAIGxwZmNfbnZtZV9wcmVwX2lvX2RtYShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsCiAJCQkJbHBmY19uY21kLT5zZWdfY250ID0gMDsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KLQkJCXBoeXNhZGRyID0gZGF0YV9zZy0+ZG1hX2FkZHJlc3M7Ci0JCQlkbWFfbGVuID0gZGF0YV9zZy0+bGVuZ3RoOwotCQkJc2dsLT5hZGRyX2xvID0gY3B1X3RvX2xlMzIocHV0UGFkZHJMb3cocGh5c2FkZHIpKTsKLQkJCXNnbC0+YWRkcl9oaSA9IGNwdV90b19sZTMyKHB1dFBhZGRySGlnaChwaHlzYWRkcikpOwotCQkJc2dsLT53b3JkMiA9IGxlMzJfdG9fY3B1KHNnbC0+d29yZDIpOwotCQkJaWYgKChudW1fYmRlICsgMSkgPT0gbnNlZykKLQkJCQliZl9zZXQobHBmY19zbGk0X3NnZV9sYXN0LCBzZ2wsIDEpOwotCQkJZWxzZQotCQkJCWJmX3NldChscGZjX3NsaTRfc2dlX2xhc3QsIHNnbCwgMCk7Ci0JCQliZl9zZXQobHBmY19zbGk0X3NnZV9vZmZzZXQsIHNnbCwgZG1hX29mZnNldCk7Ci0JCQliZl9zZXQobHBmY19zbGk0X3NnZV90eXBlLCBzZ2wsIExQRkNfU0dFX1RZUEVfREFUQSk7Ci0JCQlzZ2wtPndvcmQyID0gY3B1X3RvX2xlMzIoc2dsLT53b3JkMik7Ci0JCQlzZ2wtPnNnZV9sZW4gPSBjcHVfdG9fbGUzMihkbWFfbGVuKTsKIAotCQkJZG1hX29mZnNldCArPSBkbWFfbGVuOwotCQkJZGF0YV9zZyA9IHNnX25leHQoZGF0YV9zZyk7Ci0JCQlzZ2wrKzsKKwkJCXNnbC0+d29yZDIgPSAwOworCQkJaWYgKChudW1fYmRlICsgMSkgPT0gbnNlZykgeworCQkJCWJmX3NldChscGZjX3NsaTRfc2dlX2xhc3QsIHNnbCwgMSk7CisJCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2VfdHlwZSwgc2dsLAorCQkJCSAgICAgICBMUEZDX1NHRV9UWVBFX0RBVEEpOworCQkJfSBlbHNlIHsKKwkJCQliZl9zZXQobHBmY19zbGk0X3NnZV9sYXN0LCBzZ2wsIDApOworCisJCQkJLyogZXhwYW5kIHRoZSBzZWdtZW50ICovCisJCQkJaWYgKCFsc3BfanVzdF9zZXQgJiYKKwkJCQkgICAgISgoaiArIDEpICUgcGhiYS0+Ym9yZGVyX3NnZV9udW0pICYmCisJCQkJICAgICgobnNlZyAtIDEpICE9IGkpKSB7CisJCQkJCS8qIHNldCBMU1AgdHlwZSAqLworCQkJCQliZl9zZXQobHBmY19zbGk0X3NnZV90eXBlLCBzZ2wsCisJCQkJCSAgICAgICBMUEZDX1NHRV9UWVBFX0xTUCk7CisKKwkJCQkJc2dsX3h0cmEgPSBscGZjX2dldF9zZ2xfcGVyX2hkd3EoCisJCQkJCQkJcGhiYSwgbHBmY19uY21kKTsKKworCQkJCQlpZiAodW5saWtlbHkoIXNnbF94dHJhKSkgeworCQkJCQkJbHBmY19uY21kLT5zZWdfY250ID0gMDsKKwkJCQkJCXJldHVybiAxOworCQkJCQl9CisJCQkJCXNnbC0+YWRkcl9sbyA9IGNwdV90b19sZTMyKHB1dFBhZGRyTG93KAorCQkJCQkJICAgICAgIHNnbF94dHJhLT5kbWFfcGh5c19zZ2wpKTsKKwkJCQkJc2dsLT5hZGRyX2hpID0gY3B1X3RvX2xlMzIocHV0UGFkZHJIaWdoKAorCQkJCQkJICAgICAgIHNnbF94dHJhLT5kbWFfcGh5c19zZ2wpKTsKKworCQkJCX0gZWxzZSB7CisJCQkJCWJmX3NldChscGZjX3NsaTRfc2dlX3R5cGUsIHNnbCwKKwkJCQkJICAgICAgIExQRkNfU0dFX1RZUEVfREFUQSk7CisJCQkJfQorCQkJfQorCisJCQlpZiAoIShiZl9nZXQobHBmY19zbGk0X3NnZV90eXBlLCBzZ2wpICYKKwkJCQkgICAgIExQRkNfU0dFX1RZUEVfTFNQKSkgeworCQkJCWlmICgobnNlZyAtIDEpID09IGkpCisJCQkJCWJmX3NldChscGZjX3NsaTRfc2dlX2xhc3QsIHNnbCwgMSk7CisKKwkJCQlwaHlzYWRkciA9IGRhdGFfc2ctPmRtYV9hZGRyZXNzOworCQkJCWRtYV9sZW4gPSBkYXRhX3NnLT5sZW5ndGg7CisJCQkJc2dsLT5hZGRyX2xvID0gY3B1X3RvX2xlMzIoCisJCQkJCQkJIHB1dFBhZGRyTG93KHBoeXNhZGRyKSk7CisJCQkJc2dsLT5hZGRyX2hpID0gY3B1X3RvX2xlMzIoCisJCQkJCQkJcHV0UGFkZHJIaWdoKHBoeXNhZGRyKSk7CisKKwkJCQliZl9zZXQobHBmY19zbGk0X3NnZV9vZmZzZXQsIHNnbCwgZG1hX29mZnNldCk7CisJCQkJc2dsLT53b3JkMiA9IGNwdV90b19sZTMyKHNnbC0+d29yZDIpOworCQkJCXNnbC0+c2dlX2xlbiA9IGNwdV90b19sZTMyKGRtYV9sZW4pOworCisJCQkJZG1hX29mZnNldCArPSBkbWFfbGVuOworCQkJCWRhdGFfc2cgPSBzZ19uZXh0KGRhdGFfc2cpOworCisJCQkJc2dsKys7CisKKwkJCQlsc3BfanVzdF9zZXQgPSBmYWxzZTsKKwkJCX0gZWxzZSB7CisJCQkJc2dsLT53b3JkMiA9IGNwdV90b19sZTMyKHNnbC0+d29yZDIpOworCisJCQkJc2dsLT5zZ2VfbGVuID0gY3B1X3RvX2xlMzIoCisJCQkJCQkgICAgIHBoYmEtPmNmZ19zZ19kbWFfYnVmX3NpemUpOworCisJCQkJc2dsID0gKHN0cnVjdCBzbGk0X3NnZSAqKXNnbF94dHJhLT5kbWFfc2dsOworCQkJCWkgPSBpIC0gMTsKKworCQkJCWxzcF9qdXN0X3NldCA9IHRydWU7CisJCQl9CisKKwkJCWorKzsKIAkJfQogCQlpZiAocGhiYS0+Y2ZnX2VuYWJsZV9wYmRlKSB7CiAJCQkvKiBVc2UgUEJERSBzdXBwb3J0IGZvciBmaXJzdCBTR0wgb25seSwgb2Zmc2V0ID09IDAgKi8KQEAgLTE0NzQsNyArMTUzNyw3IEBAIGxwZmNfbnZtZV9mY3BfaW9fc3VibWl0KHN0cnVjdCBudm1lX2ZjX2xvY2FsX3BvcnQgKnBudm1lX2xwb3J0LAogCQlnb3RvIG91dF9mYWlsOwogCX0KIAotCWlmICh2cG9ydC0+bG9hZF9mbGFnICYgRkNfVU5MT0FESU5HKSB7CisJaWYgKHVubGlrZWx5KHZwb3J0LT5sb2FkX2ZsYWcgJiBGQ19VTkxPQURJTkcpKSB7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05WTUVfSU9FUlIsCiAJCQkJICI2MTI0IEZhaWwgSU8sIERyaXZlciB1bmxvYWRcbiIpOwogCQlhdG9taWNfaW5jKCZscG9ydC0+eG10X2ZjcF9lcnIpOwpAQCAtMTUwNSw4ICsxNTY4LDggQEAgbHBmY19udm1lX2ZjcF9pb19zdWJtaXQoc3RydWN0IG52bWVfZmNfbG9jYWxfcG9ydCAqcG52bWVfbHBvcnQsCiAJbmRscCA9IHJwb3J0LT5uZGxwOwogCWlmICghbmRscCB8fCAhTkxQX0NIS19OT0RFX0FDVChuZGxwKSkgewogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19OT0RFIHwgTE9HX05WTUVfSU9FUlIsCi0JCQkJICI2MDUzIEZhaWwgSU8sIG5kbHAgbm90IHJlYWR5OiBycG9ydCAlcCAiCi0JCQkJICAibmRscCAlcCwgRElEIHglMDZ4XG4iLAorCQkJCSAiNjA1MyBCdXN5IElPLCBuZGxwIG5vdCByZWFkeTogcnBvcnQgeCVweCAiCisJCQkJICAibmRscCB4JXB4LCBESUQgeCUwNnhcbiIsCiAJCQkJIHJwb3J0LCBuZGxwLCBwbnZtZV9ycG9ydC0+cG9ydF9pZCk7CiAJCWF0b21pY19pbmMoJmxwb3J0LT54bXRfZmNwX2Vycik7CiAJCXJldCA9IC1FQlVTWTsKQEAgLTE3NTgsNyArMTgyMSw3IEBAIGxwZmNfbnZtZV9mY3BfYWJvcnQoc3RydWN0IG52bWVfZmNfbG9jYWxfcG9ydCAqcG52bWVfbHBvcnQsCiAJLyogQW5ub3VuY2UgZW50cnkgdG8gbmV3IElPIHN1Ym1pdCBmaWVsZC4gKi8KIAlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19OVk1FX0FCVFMsCiAJCQkgIjYwMDIgQWJvcnQgUmVxdWVzdCB0byBycG9ydCBESUQgeCUwNnggIgotCQkJICJmb3IgbnZtZV9mY19yZXEgJXBcbiIsCisJCQkgImZvciBudm1lX2ZjX3JlcSB4JXB4XG4iLAogCQkJIHBudm1lX3Jwb3J0LT5wb3J0X2lkLAogCQkJIHBudm1lX2ZjcmVxKTsKIApAQCAtMTc2Nyw3ICsxODMwLDcgQEAgbHBmY19udm1lX2ZjcF9hYm9ydChzdHJ1Y3QgbnZtZV9mY19sb2NhbF9wb3J0ICpwbnZtZV9scG9ydCwKIAkgKi8KIAlzcGluX2xvY2tfaXJxc2F2ZSgmcGhiYS0+aGJhbG9jaywgZmxhZ3MpOwogCS8qIGRyaXZlciBxdWV1ZWQgY29tbWFuZHMgYXJlIGluIHByb2Nlc3Mgb2YgYmVpbmcgZmx1c2hlZCAqLwotCWlmIChwaGJhLT5oYmFfZmxhZyAmIEhCQV9OVk1FX0lPUV9GTFVTSCkgeworCWlmIChwaGJhLT5oYmFfZmxhZyAmIEhCQV9JT1FfRkxVU0gpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGhiYS0+aGJhbG9jaywgZmxhZ3MpOwogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0VSUiwgTE9HX05WTUVfQUJUUywKIAkJCQkgIjYxMzkgRHJpdmVyIGluIHJlc2V0IGNsZWFudXAgLSBmbHVzaGluZyAiCkBAIC0xODA1LDggKzE4NjgsOCBAQCBscGZjX252bWVfZmNwX2Fib3J0KHN0cnVjdCBudm1lX2ZjX2xvY2FsX3BvcnQgKnBudm1lX2xwb3J0LAogCWlmIChscGZjX25idWYtPm52bWVDbWQgIT0gcG52bWVfZmNyZXEpIHsKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19OVk1FX0FCVFMsCiAJCQkJICI2MTQzIE5WTUUgcmVxIG1pc21hdGNoOiAiCi0JCQkJICJscGZjX25idWYgJXAgbnZtZUNtZCAlcCwgIgotCQkJCSAicG52bWVfZmNyZXEgJXAuICBTa2lwcGluZyBBYm9ydCB4cmkgeCV4XG4iLAorCQkJCSAibHBmY19uYnVmIHglcHggbnZtZUNtZCB4JXB4LCAiCisJCQkJICJwbnZtZV9mY3JlcSB4JXB4LiAgU2tpcHBpbmcgQWJvcnQgeHJpIHgleFxuIiwKIAkJCQkgbHBmY19uYnVmLCBscGZjX25idWYtPm52bWVDbWQsCiAJCQkJIHBudm1lX2ZjcmVxLCBudm1lcmVxX3dxZS0+c2xpNF94cml0YWcpOwogCQlnb3RvIG91dF91bmxvY2s7CkBAIC0xODE1LDcgKzE4NzgsNyBAQCBscGZjX252bWVfZmNwX2Fib3J0KHN0cnVjdCBudm1lX2ZjX2xvY2FsX3BvcnQgKnBudm1lX2xwb3J0LAogCS8qIERvbid0IGFib3J0IElPcyBubyBsb25nZXIgb24gdGhlIHBlbmRpbmcgcXVldWUuICovCiAJaWYgKCEobnZtZXJlcV93cWUtPmlvY2JfZmxhZyAmIExQRkNfSU9fT05fVFhDTVBMUSkpIHsKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19OVk1FX0FCVFMsCi0JCQkJICI2MTQyIE5WTUUgSU8gcmVxICVwIG5vdCBxdWV1ZWQgLSBza2lwcGluZyAiCisJCQkJICI2MTQyIE5WTUUgSU8gcmVxIHglcHggbm90IHF1ZXVlZCAtIHNraXBwaW5nICIKIAkJCQkgImFib3J0IHJlcSB4cmkgeCV4XG4iLAogCQkJCSBwbnZtZV9mY3JlcSwgbnZtZXJlcV93cWUtPnNsaTRfeHJpdGFnKTsKIAkJZ290byBvdXRfdW5sb2NrOwpAQCAtMTgzMCw4ICsxODkzLDggQEAgbHBmY19udm1lX2ZjcF9hYm9ydChzdHJ1Y3QgbnZtZV9mY19sb2NhbF9wb3J0ICpwbnZtZV9scG9ydCwKIAlpZiAobnZtZXJlcV93cWUtPmlvY2JfZmxhZyAmIExQRkNfRFJJVkVSX0FCT1JURUQpIHsKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19OVk1FX0FCVFMsCiAJCQkJICI2MTQ0IE91dHN0YW5kaW5nIE5WTUUgSS9PIEFib3J0IFJlcXVlc3QgIgotCQkJCSAic3RpbGwgcGVuZGluZyBvbiBudm1lX2ZjcmVxICVwLCAiCi0JCQkJICJscGZjX25jbWQgJXAgeHJpIHgleFxuIiwKKwkJCQkgInN0aWxsIHBlbmRpbmcgb24gbnZtZV9mY3JlcSB4JXB4LCAiCisJCQkJICJscGZjX25jbWQgJXB4IHhyaSB4JXhcbiIsCiAJCQkJIHBudm1lX2ZjcmVxLCBscGZjX25idWYsCiAJCQkJIG52bWVyZXFfd3FlLT5zbGk0X3hyaXRhZyk7CiAJCWdvdG8gb3V0X3VubG9jazsKQEAgLTE4NDEsNyArMTkwNCw3IEBAIGxwZmNfbnZtZV9mY3BfYWJvcnQoc3RydWN0IG52bWVfZmNfbG9jYWxfcG9ydCAqcG52bWVfbHBvcnQsCiAJaWYgKCFhYnRzX2J1ZikgewogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0VSUiwgTE9HX05WTUVfQUJUUywKIAkJCQkgIjYxMzYgTm8gYXZhaWxhYmxlIGFib3J0IHdxZXMuIFNraXBwaW5nICIKLQkJCQkgIkFidHMgcmVxIGZvciBudm1lX2ZjcmVxICVwIHhyaSB4JXhcbiIsCisJCQkJICJBYnRzIHJlcSBmb3IgbnZtZV9mY3JlcSB4JXB4IHhyaSB4JXhcbiIsCiAJCQkJIHBudm1lX2ZjcmVxLCBudm1lcmVxX3dxZS0+c2xpNF94cml0YWcpOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQpAQCAtMTg1NSw3ICsxOTE4LDcgQEAgbHBmY19udm1lX2ZjcF9hYm9ydChzdHJ1Y3QgbnZtZV9mY19sb2NhbF9wb3J0ICpwbnZtZV9scG9ydCwKIAkvKiBXUUVzIGFyZSByZXVzZWQuICBDbGVhciBzdGFsZSBkYXRhIGFuZCBzZXQga2V5IGZpZWxkcyB0bwogCSAqIHplcm8gbGlrZSBpYSwgaWFhYiwgaWFhciwgeHJpX3RhZywgYW5kIGN0eHRfdGFnLgogCSAqLwotCW1lbXNldChhYnRzX3dxZSwgMCwgc2l6ZW9mKHVuaW9uIGxwZmNfd3FlKSk7CisJbWVtc2V0KGFidHNfd3FlLCAwLCBzaXplb2YoKmFidHNfd3FlKSk7CiAJYmZfc2V0KGFib3J0X2NtZF9jcml0ZXJpYSwgJmFidHNfd3FlLT5hYm9ydF9jbWQsIFRfWFJJX1RBRyk7CiAKIAkvKiB3b3JkIDcgKi8KQEAgLTE4OTIsNyArMTk1NSw3IEBAIGxwZmNfbnZtZV9mY3BfYWJvcnQoc3RydWN0IG52bWVfZmNfbG9jYWxfcG9ydCAqcG52bWVfbHBvcnQsCiAJaWYgKHJldF92YWwpIHsKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19OVk1FX0FCVFMsCiAJCQkJICI2MTM3IEZhaWxlZCBhYnRzIGlzc3VlX3dxZSB3aXRoIHN0YXR1cyB4JXggIgotCQkJCSAiZm9yIG52bWVfZmNyZXEgJXAuXG4iLAorCQkJCSAiZm9yIG52bWVfZmNyZXEgeCVweC5cbiIsCiAJCQkJIHJldF92YWwsIHBudm1lX2ZjcmVxKTsKIAkJbHBmY19zbGlfcmVsZWFzZV9pb2NicShwaGJhLCBhYnRzX2J1Zik7CiAJCXJldHVybjsKQEAgLTE5ODIsNyArMjA0NSw3IEBAIGxwZmNfZ2V0X252bWVfYnVmKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfbm9kZWxpc3QgKm5kbHAsCiAJCXNnbC0+d29yZDIgPSBjcHVfdG9fbGUzMihzZ2wtPndvcmQyKTsKIAkJLyogRmlsbCBpbiB3b3JkIDMgLyBzZ2xfbGVuIGR1cmluZyBjbWQgc3VibWlzc2lvbiAqLwogCi0JCS8qIEluaXRpYWxpemUgV1FFICovCisJCS8qIEluaXRpYWxpemUgNjQgYnl0ZXMgb25seSAqLwogCQltZW1zZXQod3FlLCAwLCBzaXplb2YodW5pb24gbHBmY193cWUpKTsKIAogCQlpZiAobHBmY19uZGxwX2NoZWNrX3FkZXB0aChwaGJhLCBuZGxwKSkgewpAQCAtMjAyOCwxMSArMjA5MSwxMSBAQCBscGZjX3JlbGVhc2VfbnZtZV9idWYoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfbmNtZCkKIAkJCQlscGZjX25jbWQtPmN1cl9pb2NicS5zbGk0X3hyaXRhZywKIAkJCQlscGZjX25jbWQtPmN1cl9pb2NicS5pb3RhZyk7CiAKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJnFwLT5hYnRzX252bWVfYnVmX2xpc3RfbG9jaywgaWZsYWcpOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcXAtPmFidHNfaW9fYnVmX2xpc3RfbG9jaywgaWZsYWcpOwogCQlsaXN0X2FkZF90YWlsKCZscGZjX25jbWQtPmxpc3QsCi0JCQkmcXAtPmxwZmNfYWJ0c19udm1lX2J1Zl9saXN0KTsKKwkJCSZxcC0+bHBmY19hYnRzX2lvX2J1Zl9saXN0KTsKIAkJcXAtPmFidHNfbnZtZV9pb19idWZzKys7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnFwLT5hYnRzX252bWVfYnVmX2xpc3RfbG9jaywgaWZsYWcpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxcC0+YWJ0c19pb19idWZfbGlzdF9sb2NrLCBpZmxhZyk7CiAJfSBlbHNlCiAJCWxwZmNfcmVsZWFzZV9pb19idWYocGhiYSwgKHN0cnVjdCBscGZjX2lvX2J1ZiAqKWxwZmNfbmNtZCwgcXApOwogfQpAQCAtMjA5NSw4ICsyMTU4LDggQEAgbHBmY19udm1lX2NyZWF0ZV9sb2NhbHBvcnQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0KQogCWlmICghcmV0KSB7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05WTUUgfCBMT0dfTlZNRV9ESVNDLAogCQkJCSAiNjAwNSBTdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCBsb2NhbCAiCi0JCQkJICJOVk1FIHBvcnQgbnVtICVkLCBsb2NhbFAgJXAsIHByaXZhdGUgJXAsICIKLQkJCQkgInNnX3NlZyAlZFxuIiwKKwkJCQkgIk5WTUUgcG9ydCBudW0gJWQsIGxvY2FsUCB4JXB4LCBwcml2YXRlICIKKwkJCQkgInglcHgsIHNnX3NlZyAlZFxuIiwKIAkJCQkgbG9jYWxwb3J0LT5wb3J0X251bSwgbG9jYWxwb3J0LAogCQkJCSBsb2NhbHBvcnQtPnByaXZhdGUsCiAJCQkJIGxwZmNfbnZtZV90ZW1wbGF0ZS5tYXhfc2dsX3NlZ21lbnRzKTsKQEAgLTIxNTcsMTQgKzIyMjAsMTQgQEAgbHBmY19udm1lX2xwb3J0X3VucmVnX3dhaXQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LAogCQlpZiAodW5saWtlbHkoIXJldCkpIHsKIAkJCXBlbmRpbmcgPSAwOwogCQkJZm9yIChpID0gMDsgaSA8IHBoYmEtPmNmZ19oZHdfcXVldWU7IGkrKykgewotCQkJCXByaW5nID0gcGhiYS0+c2xpNF9oYmEuaGR3cVtpXS5udm1lX3dxLT5wcmluZzsKKwkJCQlwcmluZyA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbaV0uaW9fd3EtPnByaW5nOwogCQkJCWlmICghcHJpbmcpCiAJCQkJCWNvbnRpbnVlOwogCQkJCWlmIChwcmluZy0+dHhjbXBscV9jbnQpCiAJCQkJCXBlbmRpbmcgKz0gcHJpbmctPnR4Y21wbHFfY250OwogCQkJfQogCQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19OVk1FX0lPRVJSLAotCQkJCQkgIjYxNzYgTHBvcnQgJXAgTG9jYWxwb3J0ICVwIHdhaXQgIgorCQkJCQkgIjYxNzYgTHBvcnQgeCVweCBMb2NhbHBvcnQgeCVweCB3YWl0ICIKIAkJCQkJICJ0aW1lZCBvdXQuIFBlbmRpbmcgJWQuIFJlbmV3aW5nLlxuIiwKIAkJCQkJIGxwb3J0LCB2cG9ydC0+bG9jYWxwb3J0LCBwZW5kaW5nKTsKIAkJCWNvbnRpbnVlOwpAQCAtMjE3Miw3ICsyMjM1LDcgQEAgbHBmY19udm1lX2xwb3J0X3VucmVnX3dhaXQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LAogCQlicmVhazsKIAl9CiAJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfTlZNRV9JT0VSUiwKLQkJCSAiNjE3NyBMcG9ydCAlcCBMb2NhbHBvcnQgJXAgQ29tcGxldGUgU3VjY2Vzc1xuIiwKKwkJCSAiNjE3NyBMcG9ydCB4JXB4IExvY2FscG9ydCB4JXB4IENvbXBsZXRlIFN1Y2Nlc3NcbiIsCiAJCQkgbHBvcnQsIHZwb3J0LT5sb2NhbHBvcnQpOwogfQogI2VuZGlmCkBAIC0yMjAzLDcgKzIyNjYsNyBAQCBscGZjX252bWVfZGVzdHJveV9sb2NhbHBvcnQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0KQogCWxwb3J0ID0gKHN0cnVjdCBscGZjX252bWVfbHBvcnQgKilsb2NhbHBvcnQtPnByaXZhdGU7CiAKIAlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19OVk1FLAotCQkJICI2MDExIERlc3Ryb3lpbmcgTlZNRSBsb2NhbHBvcnQgJXBcbiIsCisJCQkgIjYwMTEgRGVzdHJveWluZyBOVk1FIGxvY2FscG9ydCB4JXB4XG4iLAogCQkJIGxvY2FscG9ydCk7CiAKIAkvKiBscG9ydCdzIHJwb3J0IGxpc3QgaXMgY2xlYXIuICBVbnJlZ2lzdGVyCkBAIC0yMjUzLDEyICsyMzE2LDEyIEBAIGxwZmNfbnZtZV91cGRhdGVfbG9jYWxwb3J0KHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCkKIAlscG9ydCA9IChzdHJ1Y3QgbHBmY19udm1lX2xwb3J0ICopbG9jYWxwb3J0LT5wcml2YXRlOwogCWlmICghbHBvcnQpIHsKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9XQVJOSU5HLCBMT0dfTlZNRSwKLQkJCQkgIjYxNzEgVXBkYXRlIE5WTUUgZmFpbC4gbG9jYWxQICVwLCBObyBscG9ydFxuIiwKKwkJCQkgIjYxNzEgVXBkYXRlIE5WTUUgZmFpbC4gbG9jYWxQIHglcHgsIE5vIGxwb3J0XG4iLAogCQkJCSBsb2NhbHBvcnQpOwogCQlyZXR1cm47CiAJfQogCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05WTUUsCi0JCQkgIjYwMTIgVXBkYXRlIE5WTUUgbHBvcnQgJXAgZGlkIHgleFxuIiwKKwkJCSAiNjAxMiBVcGRhdGUgTlZNRSBscG9ydCB4JXB4IGRpZCB4JXhcbiIsCiAJCQkgbG9jYWxwb3J0LCB2cG9ydC0+ZmNfbXlESUQpOwogCiAJbG9jYWxwb3J0LT5wb3J0X2lkID0gdnBvcnQtPmZjX215RElEOwpAQCAtMjI2OCw3ICsyMzMxLDcgQEAgbHBmY19udm1lX3VwZGF0ZV9sb2NhbHBvcnQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0KQogCQlsb2NhbHBvcnQtPnBvcnRfcm9sZSA9IEZDX1BPUlRfUk9MRV9OVk1FX0lOSVRJQVRPUjsKIAogCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05WTUVfRElTQywKLQkJCSAiNjAzMCBib3VuZCBscG9ydCAlcCB0byBESUQgeCUwNnhcbiIsCisJCQkgIjYwMzAgYm91bmQgbHBvcnQgeCVweCB0byBESUQgeCUwNnhcbiIsCiAJCQkgbHBvcnQsIGxvY2FscG9ydC0+cG9ydF9pZCk7CiAjZW5kaWYKIH0KQEAgLTIzMTcsOSArMjM4MCwxMyBAQCBscGZjX252bWVfcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCiAJc3Bpbl9sb2NrX2lycSgmdnBvcnQtPnBoYmEtPmhiYWxvY2spOwogCW9sZHJwb3J0ID0gbHBmY19uZGxwX2dldF9ucnBvcnQobmRscCk7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZ2cG9ydC0+cGhiYS0+aGJhbG9jayk7Ci0JaWYgKCFvbGRycG9ydCkKKwlpZiAob2xkcnBvcnQpIHsKKwkJcHJldl9uZGxwID0gb2xkcnBvcnQtPm5kbHA7CisJCXNwaW5fdW5sb2NrX2lycSgmdnBvcnQtPnBoYmEtPmhiYWxvY2spOworCX0gZWxzZSB7CisJCXNwaW5fdW5sb2NrX2lycSgmdnBvcnQtPnBoYmEtPmhiYWxvY2spOwogCQlscGZjX25scF9nZXQobmRscCk7CisJfQogCiAJcmV0ID0gbnZtZV9mY19yZWdpc3Rlcl9yZW1vdGVwb3J0KGxvY2FscG9ydCwgJnJwaW5mbywgJnJlbW90ZV9wb3J0KTsKIAlpZiAoIXJldCkgewpAQCAtMjMzOCwyNSArMjQwNSwzNCBAQCBscGZjX252bWVfcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCQkJLyogTmV3IHJlbW90ZXBvcnQgcmVjb3JkIGRvZXMgbm90IGd1YXJhbnRlZSB2YWxpZAogCQkJICogaG9zdCBwcml2YXRlIG1lbW9yeSBhcmVhLgogCQkJICovCi0JCQlwcmV2X25kbHAgPSBvbGRycG9ydC0+bmRscDsKIAkJCWlmIChvbGRycG9ydCA9PSByZW1vdGVfcG9ydC0+cHJpdmF0ZSkgewogCQkJCS8qIFNhbWUgcmVtb3RlcG9ydCAtIG5kbHAgc2hvdWxkIG1hdGNoLgogCQkJCSAqIEp1c3QgcmV1c2UuCiAJCQkJICovCiAJCQkJbHBmY19wcmludGZfdmxvZyhuZGxwLT52cG9ydCwgS0VSTl9JTkZPLAogCQkJCQkJIExPR19OVk1FX0RJU0MsCi0JCQkJCQkgIjYwMTQgUmViaW5kaW5nIGxwb3J0IHRvICIKLQkJCQkJCSAicmVtb3RlcG9ydCAlcCB3d3BuIDB4JWxseCwgIgotCQkJCQkJICJEYXRhOiB4JXggeCV4ICVwICVwIHgleCB4JTA2eFxuIiwKKwkJCQkJCSAiNjAxNCBSZWJpbmQgbHBvcnQgdG8gY3VycmVudCAiCisJCQkJCQkgInJlbW90ZXBvcnQgeCVweCB3d3BuIDB4JWxseCwgIgorCQkJCQkJICJEYXRhOiB4JXggeCV4IHglcHggeCVweCB4JXggIgorCQkJCQkJICIgeCUwNnhcbiIsCiAJCQkJCQkgcmVtb3RlX3BvcnQsCiAJCQkJCQkgcmVtb3RlX3BvcnQtPnBvcnRfbmFtZSwKIAkJCQkJCSByZW1vdGVfcG9ydC0+cG9ydF9pZCwKIAkJCQkJCSByZW1vdGVfcG9ydC0+cG9ydF9yb2xlLAotCQkJCQkJIHByZXZfbmRscCwKKwkJCQkJCSBvbGRycG9ydC0+bmRscCwKIAkJCQkJCSBuZGxwLAogCQkJCQkJIG5kbHAtPm5scF90eXBlLAogCQkJCQkJIG5kbHAtPm5scF9ESUQpOwotCQkJCXJldHVybiAwOworCisJCQkJLyogSXQncyBhIGNvbXBsZXRlIHJlYmluZCBvbmx5IGlmIHRoZSBkcml2ZXIKKwkJCQkgKiBpcyByZWdpc3RlcmluZyB3aXRoIHRoZSBzYW1lIG5kbHAuIE90aGVyd2lzZQorCQkJCSAqIHRoZSBkcml2ZXIgbGlrZWx5IGV4ZWN1dGVkIGEgbm9kZSBzd2FwCisJCQkJICogcHJpb3IgdG8gdGhpcyByZWdpc3RyYXRpb24gYW5kIHRoZSBuZGxwIHRvCisJCQkJICogcmVtb3RlcG9ydCBiaW5kaW5nIG5lZWRzIHRvIGJlIHJlZG9uZS4KKwkJCQkgKi8KKwkJCQlpZiAocHJldl9uZGxwID09IG5kbHApCisJCQkJCXJldHVybiAwOworCiAJCQl9CiAKIAkJCS8qIFNldmVyIHRoZSBuZGxwPC0+cnBvcnQgYXNzb2NpYXRpb24KQEAgLTIzOTAsMTAgKzI0NjYsMTAgQEAgbHBmY19udm1lX3JlZ2lzdGVyX3BvcnQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCkKIAkJc3Bpbl91bmxvY2tfaXJxKCZ2cG9ydC0+cGhiYS0+aGJhbG9jayk7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywKIAkJCQkgTE9HX05WTUVfRElTQyB8IExPR19OT0RFLAotCQkJCSAiNjAyMiBCaW5kaW5nIG5ldyBycG9ydCB0byAiCi0JCQkJICJscG9ydCAlcCBSZW1vdGVwb3J0ICVwIHJwb3J0ICVwIFdXTk4gMHglbGx4LCAiCisJCQkJICI2MDIyIEJpbmQgbHBvcnQgeCVweCB0byByZW1vdGVwb3J0IHglcHggIgorCQkJCSAicnBvcnQgeCVweCBXV05OIDB4JWxseCwgIgogCQkJCSAiUnBvcnQgV1dQTiAweCVsbHggRElEICIKLQkJCQkgInglMDZ4IFJvbGUgeCV4LCBuZGxwICVwIHByZXZfbmRscCAlcFxuIiwKKwkJCQkgInglMDZ4IFJvbGUgeCV4LCBuZGxwICVwIHByZXZfbmRscCB4JXB4XG4iLAogCQkJCSBscG9ydCwgcmVtb3RlX3BvcnQsIHJwb3J0LAogCQkJCSBycGluZm8ubm9kZV9uYW1lLCBycGluZm8ucG9ydF9uYW1lLAogCQkJCSBycGluZm8ucG9ydF9pZCwgcnBpbmZvLnBvcnRfcm9sZSwKQEAgLTI0MjMsMjAgKzI0OTksMjMgQEAgdm9pZAogbHBmY19udm1lX3Jlc2Nhbl9wb3J0KHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgc3RydWN0IGxwZmNfbm9kZWxpc3QgKm5kbHApCiB7CiAjaWYgKElTX0VOQUJMRUQoQ09ORklHX05WTUVfRkMpKQotCXN0cnVjdCBscGZjX252bWVfcnBvcnQgKnJwb3J0OwotCXN0cnVjdCBudm1lX2ZjX3JlbW90ZV9wb3J0ICpyZW1vdGVwb3J0OworCXN0cnVjdCBscGZjX252bWVfcnBvcnQgKm5ycG9ydDsKKwlzdHJ1Y3QgbnZtZV9mY19yZW1vdGVfcG9ydCAqcmVtb3RlcG9ydCA9IE5VTEw7CiAKLQlycG9ydCA9IG5kbHAtPm5ycG9ydDsKKwlzcGluX2xvY2tfaXJxKCZ2cG9ydC0+cGhiYS0+aGJhbG9jayk7CisJbnJwb3J0ID0gbHBmY19uZGxwX2dldF9ucnBvcnQobmRscCk7CisJaWYgKG5ycG9ydCkKKwkJcmVtb3RlcG9ydCA9IG5ycG9ydC0+cmVtb3RlcG9ydDsKKwlzcGluX3VubG9ja19pcnEoJnZwb3J0LT5waGJhLT5oYmFsb2NrKTsKIAogCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05WTUVfRElTQywKIAkJCSAiNjE3MCBSZXNjYW4gTlBvcnQgRElEIHglMDZ4IHR5cGUgeCV4ICIKLQkJCSAic3RhdGUgeCV4IHJwb3J0ICVwXG4iLAotCQkJIG5kbHAtPm5scF9ESUQsIG5kbHAtPm5scF90eXBlLCBuZGxwLT5ubHBfc3RhdGUsIHJwb3J0KTsKLQlpZiAoIXJwb3J0KQotCQlnb3RvIGlucHV0X2VycjsKLQlyZW1vdGVwb3J0ID0gcnBvcnQtPnJlbW90ZXBvcnQ7Ci0JaWYgKCFyZW1vdGVwb3J0KQotCQlnb3RvIGlucHV0X2VycjsKKwkJCSAic3RhdGUgeCV4IG5ycG9ydCB4JXB4IHJlbW90ZXBvcnQgeCVweFxuIiwKKwkJCSBuZGxwLT5ubHBfRElELCBuZGxwLT5ubHBfdHlwZSwgbmRscC0+bmxwX3N0YXRlLAorCQkJIG5ycG9ydCwgcmVtb3RlcG9ydCk7CisKKwlpZiAoIW5ycG9ydCB8fCAhcmVtb3RlcG9ydCkKKwkJZ290byByZXNjYW5fZXhpdDsKIAogCS8qIE9ubHkgcmVzY2FuIGlmIHdlIGFyZSBhbiBOVk1FIHRhcmdldCBpbiB0aGUgTUFQUEVEIHN0YXRlICovCiAJaWYgKHJlbW90ZXBvcnQtPnBvcnRfcm9sZSAmIEZDX1BPUlRfUk9MRV9OVk1FX0RJU0NPVkVSWSAmJgpAQCAtMjQ0OSwxMCArMjUyOCwxMCBAQCBscGZjX252bWVfcmVzY2FuX3BvcnQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCkKIAkJCQkgbmRscC0+bmxwX0RJRCwgcmVtb3RlcG9ydC0+cG9ydF9zdGF0ZSk7CiAJfQogCXJldHVybjsKLWlucHV0X2VycjoKLQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0VSUiwgTE9HX05WTUVfRElTQywKLQkJCSAiNjE2OSBTdGF0ZSBlcnJvcjogbHBvcnQgJXAsIHJwb3J0JXAgRkNJRCB4JTA2eFxuIiwKLQkJCSB2cG9ydC0+bG9jYWxwb3J0LCBuZGxwLT5ycG9ydCwgbmRscC0+bmxwX0RJRCk7CisgcmVzY2FuX2V4aXQ6CisJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9JTkZPLCBMT0dfTlZNRV9ESVNDLAorCQkJICI2MTY5IFNraXAgTlZNRSBScG9ydCBSZXNjYW4sIE5WTUUgcmVtb3RlcG9ydCAiCisJCQkgInVucmVnaXN0ZXJlZFxuIik7CiAjZW5kaWYKIH0KIApAQCAtMjQ5OSw3ICsyNTc4LDcgQEAgbHBmY19udm1lX3VucmVnaXN0ZXJfcG9ydChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogCQlnb3RvIGlucHV0X2VycjsKIAogCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX05WTUVfRElTQywKLQkJCSAiNjAzMyBVbnJlZyBudm1lIHJlbW90ZXBvcnQgJXAsIHBvcnRuYW1lIHglbGx4LCAiCisJCQkgIjYwMzMgVW5yZWcgbnZtZSByZW1vdGVwb3J0IHglcHgsIHBvcnRuYW1lIHglbGx4LCAiCiAJCQkgInBvcnRfaWQgeCUwNngsIHBvcnRzdGF0ZSB4JXggcG9ydCB0eXBlIHgleFxuIiwKIAkJCSByZW1vdGVwb3J0LCByZW1vdGVwb3J0LT5wb3J0X25hbWUsCiAJCQkgcmVtb3RlcG9ydC0+cG9ydF9pZCwgcmVtb3RlcG9ydC0+cG9ydF9zdGF0ZSwKQEAgLTI1MzcsNyArMjYxNiw3IEBAIGxwZmNfbnZtZV91bnJlZ2lzdGVyX3BvcnQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCkKICBpbnB1dF9lcnI6CiAjZW5kaWYKIAlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0VSUiwgTE9HX05WTUVfRElTQywKLQkJCSAiNjE2OCBTdGF0ZSBlcnJvcjogbHBvcnQgJXAsIHJwb3J0JXAgRkNJRCB4JTA2eFxuIiwKKwkJCSAiNjE2OCBTdGF0ZSBlcnJvcjogbHBvcnQgeCVweCwgcnBvcnQgeCVweCBGQ0lEIHglMDZ4XG4iLAogCQkJIHZwb3J0LT5sb2NhbHBvcnQsIG5kbHAtPnJwb3J0LCBuZGxwLT5ubHBfRElEKTsKIH0KIApAQCAtMjU0NSw2ICsyNjI0LDcgQEAgbHBmY19udm1lX3VucmVnaXN0ZXJfcG9ydChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQogICogbHBmY19zbGk0X252bWVfeHJpX2Fib3J0ZWQgLSBGYXN0LXBhdGggcHJvY2VzcyBvZiBOVk1FIHhyaSBhYm9ydAogICogQHBoYmE6IHBvaW50ZXIgdG8gbHBmYyBoYmEgZGF0YSBzdHJ1Y3R1cmUuCiAgKiBAYXhyaTogcG9pbnRlciB0byB0aGUgZmNwIHhyaSBhYm9ydCB3Y3FlIHN0cnVjdHVyZS4KKyAqIEBscGZjX25jbWQ6IFRoZSBudm1lIGpvYiBzdHJ1Y3R1cmUgZm9yIHRoZSByZXF1ZXN0IGJlaW5nIGFib3J0ZWQuCiAgKgogICogVGhpcyByb3V0aW5lIGlzIGludm9rZWQgYnkgdGhlIHdvcmtlciB0aHJlYWQgdG8gcHJvY2VzcyBhIFNMSTQgZmFzdC1wYXRoCiAgKiBOVk1FIGFib3J0ZWQgeHJpLiAgQWJvcnRlZCBOVk1FIElPIGNvbW1hbmRzIGFyZSBjb21wbGV0ZWQgdG8gdGhlIHRyYW5zcG9ydApAQCAtMjU1Miw1OSArMjYzMiwzMyBAQCBscGZjX252bWVfdW5yZWdpc3Rlcl9wb3J0KHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgc3RydWN0IGxwZmNfbm9kZWxpc3QgKm5kbHApCiAgKiovCiB2b2lkCiBscGZjX3NsaTRfbnZtZV94cmlfYWJvcnRlZChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCi0JCQkgICBzdHJ1Y3Qgc2xpNF93Y3FlX3hyaV9hYm9ydGVkICpheHJpLCBpbnQgaWR4KQorCQkJICAgc3RydWN0IHNsaTRfd2NxZV94cmlfYWJvcnRlZCAqYXhyaSwKKwkJCSAgIHN0cnVjdCBscGZjX2lvX2J1ZiAqbHBmY19uY21kKQogewogCXVpbnQxNl90IHhyaSA9IGJmX2dldChscGZjX3djcWVfeGFfeHJpLCBheHJpKTsKLQlzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfbmNtZCwgKm5leHRfbHBmY19uY21kOwogCXN0cnVjdCBudm1lZmNfZmNwX3JlcSAqbnZtZV9jbWQgPSBOVUxMOwotCXN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwOwotCXN0cnVjdCBscGZjX3NsaTRfaGR3X3F1ZXVlICpxcDsKLQl1bnNpZ25lZCBsb25nIGlmbGFnID0gMDsKKwlzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCA9IGxwZmNfbmNtZC0+bmRscDsKIAotCWlmICghKHBoYmEtPmNmZ19lbmFibGVfZmM0X3R5cGUgJiBMUEZDX0VOQUJMRV9OVk1FKSkKLQkJcmV0dXJuOwotCXFwID0gJnBoYmEtPnNsaTRfaGJhLmhkd3FbaWR4XTsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmcGhiYS0+aGJhbG9jaywgaWZsYWcpOwotCXNwaW5fbG9jaygmcXAtPmFidHNfbnZtZV9idWZfbGlzdF9sb2NrKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobHBmY19uY21kLCBuZXh0X2xwZmNfbmNtZCwKLQkJCQkgJnFwLT5scGZjX2FidHNfbnZtZV9idWZfbGlzdCwgbGlzdCkgewotCQlpZiAobHBmY19uY21kLT5jdXJfaW9jYnEuc2xpNF94cml0YWcgPT0geHJpKSB7Ci0JCQlsaXN0X2RlbF9pbml0KCZscGZjX25jbWQtPmxpc3QpOwotCQkJcXAtPmFidHNfbnZtZV9pb19idWZzLS07Ci0JCQlscGZjX25jbWQtPmZsYWdzICY9IH5MUEZDX1NCVUZfWEJVU1k7Ci0JCQlscGZjX25jbWQtPnN0YXR1cyA9IElPU1RBVF9TVUNDRVNTOwotCQkJc3Bpbl91bmxvY2soJnFwLT5hYnRzX252bWVfYnVmX2xpc3RfbG9jayk7CiAKLQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBoYmEtPmhiYWxvY2ssIGlmbGFnKTsKLQkJCW5kbHAgPSBscGZjX25jbWQtPm5kbHA7Ci0JCQlpZiAobmRscCkKLQkJCQlscGZjX3NsaTRfYWJ0c19lcnJfaGFuZGxlcihwaGJhLCBuZGxwLCBheHJpKTsKLQotCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fSU5GTywgTE9HX05WTUVfQUJUUywKLQkJCQkJIjYzMTEgbnZtZV9jbWQgJXAgeHJpIHgleCB0YWcgeCV4ICIKLQkJCQkJImFib3J0IGNvbXBsZXRlIGFuZCB4cmkgcmVsZWFzZWRcbiIsCi0JCQkJCWxwZmNfbmNtZC0+bnZtZUNtZCwgeHJpLAotCQkJCQlscGZjX25jbWQtPmN1cl9pb2NicS5pb3RhZyk7Ci0KLQkJCS8qIEFib3J0ZWQgTlZNRSBjb21tYW5kcyBhcmUgcmVxdWlyZWQgdG8gbm90IGNvbXBsZXRlCi0JCQkgKiBiZWZvcmUgdGhlIGFib3J0IGV4Y2hhbmdlIGNvbW1hbmQgZnVsbHkgY29tcGxldGVzLgotCQkJICogT25jZSBjb21wbGV0ZWQsIGl0IGlzIGF2YWlsYWJsZSB2aWEgdGhlIHB1dCBsaXN0LgotCQkJICovCi0JCQlpZiAobHBmY19uY21kLT5udm1lQ21kKSB7Ci0JCQkJbnZtZV9jbWQgPSBscGZjX25jbWQtPm52bWVDbWQ7Ci0JCQkJbnZtZV9jbWQtPmRvbmUobnZtZV9jbWQpOwotCQkJCWxwZmNfbmNtZC0+bnZtZUNtZCA9IE5VTEw7Ci0JCQl9Ci0JCQlscGZjX3JlbGVhc2VfbnZtZV9idWYocGhiYSwgbHBmY19uY21kKTsKLQkJCXJldHVybjsKLQkJfQotCX0KLQlzcGluX3VubG9jaygmcXAtPmFidHNfbnZtZV9idWZfbGlzdF9sb2NrKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaGJhLT5oYmFsb2NrLCBpZmxhZyk7CisJaWYgKG5kbHApCisJCWxwZmNfc2xpNF9hYnRzX2Vycl9oYW5kbGVyKHBoYmEsIG5kbHAsIGF4cmkpOwogCiAJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fSU5GTywgTE9HX05WTUVfQUJUUywKLQkJCSI2MzEyIFhSSSBBYm9ydGVkIHhyaSB4JXggbm90IGZvdW5kXG4iLCB4cmkpOworCQkJIjYzMTEgbnZtZV9jbWQgJXAgeHJpIHgleCB0YWcgeCV4IGFib3J0IGNvbXBsZXRlIGFuZCAiCisJCQkieHJpIHJlbGVhc2VkXG4iLAorCQkJbHBmY19uY21kLT5udm1lQ21kLCB4cmksCisJCQlscGZjX25jbWQtPmN1cl9pb2NicS5pb3RhZyk7CiAKKwkvKiBBYm9ydGVkIE5WTUUgY29tbWFuZHMgYXJlIHJlcXVpcmVkIHRvIG5vdCBjb21wbGV0ZQorCSAqIGJlZm9yZSB0aGUgYWJvcnQgZXhjaGFuZ2UgY29tbWFuZCBmdWxseSBjb21wbGV0ZXMuCisJICogT25jZSBjb21wbGV0ZWQsIGl0IGlzIGF2YWlsYWJsZSB2aWEgdGhlIHB1dCBsaXN0LgorCSAqLworCWlmIChscGZjX25jbWQtPm52bWVDbWQpIHsKKwkJbnZtZV9jbWQgPSBscGZjX25jbWQtPm52bWVDbWQ7CisJCW52bWVfY21kLT5kb25lKG52bWVfY21kKTsKKwkJbHBmY19uY21kLT5udm1lQ21kID0gTlVMTDsKKwl9CisJbHBmY19yZWxlYXNlX252bWVfYnVmKHBoYmEsIGxwZmNfbmNtZCk7CiB9CiAKIC8qKgpAQCAtMjYyNiwxMyArMjY4MCwxMyBAQCBscGZjX252bWVfd2FpdF9mb3JfaW9fZHJhaW4oc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCWlmIChwaGJhLT5zbGlfcmV2IDwgTFBGQ19TTElfUkVWNCB8fCAhcGhiYS0+c2xpNF9oYmEuaGR3cSkKIAkJcmV0dXJuOwogCi0JLyogQ3ljbGUgdGhyb3VnaCBhbGwgTlZNRSByaW5ncyBhbmQgbWFrZSBzdXJlIGFsbCBvdXRzdGFuZGluZworCS8qIEN5Y2xlIHRocm91Z2ggYWxsIElPIHJpbmdzIGFuZCBtYWtlIHN1cmUgYWxsIG91dHN0YW5kaW5nCiAJICogV1FFcyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSB0eGNtcGxxcy4KIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgaSsrKSB7Ci0JCWlmICghcGhiYS0+c2xpNF9oYmEuaGR3cVtpXS5udm1lX3dxKQorCQlpZiAoIXBoYmEtPnNsaTRfaGJhLmhkd3FbaV0uaW9fd3EpCiAJCQljb250aW51ZTsKLQkJcHJpbmcgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW2ldLm52bWVfd3EtPnByaW5nOworCQlwcmluZyA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbaV0uaW9fd3EtPnByaW5nOwogCiAJCWlmICghcHJpbmcpCiAJCQljb250aW51ZTsKQEAgLTI2NTMsMyArMjcwNyw1MCBAQCBscGZjX252bWVfd2FpdF9mb3JfaW9fZHJhaW4oc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCQl9CiAJfQogfQorCit2b2lkCitscGZjX252bWVfY2FuY2VsX2lvY2Ioc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb2NicSAqcHdxZUluKQoreworI2lmIChJU19FTkFCTEVEKENPTkZJR19OVk1FX0ZDKSkKKwlzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfbmNtZDsKKwlzdHJ1Y3QgbnZtZWZjX2ZjcF9yZXEgKm5DbWQ7CisJc3RydWN0IGxwZmNfbnZtZV9mY3ByZXFfcHJpdiAqZnJlcXByaXY7CisKKwlpZiAoIXB3cWVJbi0+Y29udGV4dDEpIHsKKwkJbHBmY19zbGlfcmVsZWFzZV9pb2NicShwaGJhLCBwd3FlSW4pOworCQlyZXR1cm47CisJfQorCS8qIEZvciBhYm9ydCBpb2NiIGp1c3QgcmV0dXJuLCBJTyBpb2NiIHdpbGwgZG8gYSBkb25lIGNhbGwgKi8KKwlpZiAoYmZfZ2V0KHdxZV9jbW5kLCAmcHdxZUluLT53cWUuZ2VuX3JlcS53cWVfY29tKSA9PQorCSAgICBDTURfQUJPUlRfWFJJX0NYKSB7CisJCWxwZmNfc2xpX3JlbGVhc2VfaW9jYnEocGhiYSwgcHdxZUluKTsKKwkJcmV0dXJuOworCX0KKwlscGZjX25jbWQgPSAoc3RydWN0IGxwZmNfaW9fYnVmICopcHdxZUluLT5jb250ZXh0MTsKKworCXNwaW5fbG9jaygmbHBmY19uY21kLT5idWZfbG9jayk7CisJaWYgKCFscGZjX25jbWQtPm52bWVDbWQpIHsKKwkJc3Bpbl91bmxvY2soJmxwZmNfbmNtZC0+YnVmX2xvY2spOworCQlscGZjX3JlbGVhc2VfbnZtZV9idWYocGhiYSwgbHBmY19uY21kKTsKKwkJcmV0dXJuOworCX0KKworCW5DbWQgPSBscGZjX25jbWQtPm52bWVDbWQ7CisJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fSU5GTywgTE9HX05WTUVfSU9FUlIsCisJCQkiNjE5NCBOVk1FIENhbmNlbCB4cmkgJXhcbiIsCisJCQlscGZjX25jbWQtPmN1cl9pb2NicS5zbGk0X3hyaXRhZyk7CisKKwluQ21kLT50cmFuc2ZlcnJlZF9sZW5ndGggPSAwOworCW5DbWQtPnJjdl9yc3BsZW4gPSAwOworCW5DbWQtPnN0YXR1cyA9IE5WTUVfU0NfSU5URVJOQUw7CisJZnJlcXByaXYgPSBuQ21kLT5wcml2YXRlOworCWZyZXFwcml2LT5udm1lX2J1ZiA9IE5VTEw7CisJbHBmY19uY21kLT5udm1lQ21kID0gTlVMTDsKKworCXNwaW5fdW5sb2NrKCZscGZjX25jbWQtPmJ1Zl9sb2NrKTsKKwluQ21kLT5kb25lKG5DbWQpOworCisJLyogQ2FsbCByZWxlYXNlIHdpdGggWEI9MSB0byBxdWV1ZSB0aGUgSU8gaW50byB0aGUgYWJvcnQgbGlzdC4gKi8KKwlscGZjX3JlbGVhc2VfbnZtZV9idWYocGhiYSwgbHBmY19uY21kKTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19udm1ldC5jIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19udm1ldC5jCmluZGV4IGZhYTU5NmYuLjk4ODQyMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfbnZtZXQuYworKysgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX252bWV0LmMKQEAgLTEwMjYsNyArMTAyNiw3IEBAIGxwZmNfbnZtZXRfeG10X2ZjcF9vcChzdHJ1Y3QgbnZtZXRfZmNfdGFyZ2V0X3BvcnQgKnRndHBvcnQsCiAJCSAqIFdRRSByZWxlYXNlIENRRQogCQkgKi8KIAkJY3R4cC0+ZmxhZyB8PSBMUEZDX05WTUVUX0RFRkVSX1dRRlVMTDsKLQkJd3EgPSBjdHhwLT5oZHdxLT5udm1lX3dxOworCQl3cSA9IGN0eHAtPmhkd3EtPmlvX3dxOwogCQlwcmluZyA9IHdxLT5wcmluZzsKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnByaW5nLT5yaW5nX2xvY2ssIGlmbGFncyk7CiAJCWxpc3RfYWRkX3RhaWwoJm52bWV3cWVxLT5saXN0LCAmd3EtPndxZnVsbF9saXN0KTsKQEAgLTExMDQsNyArMTEwNCw3IEBAIGxwZmNfbnZtZXRfeG10X2ZjcF9hYm9ydChzdHJ1Y3QgbnZtZXRfZmNfdGFyZ2V0X3BvcnQgKnRndHBvcnQsCiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0eHAtPmN0eGxvY2ssIGZsYWdzKTsKIAkJbHBmY19udm1ldF91bnNvbF9mY3BfaXNzdWVfYWJvcnQocGhiYSwgY3R4cCwgY3R4cC0+c2lkLAogCQkJCQkJIGN0eHAtPm94aWQpOwotCQl3cSA9IGN0eHAtPmhkd3EtPm52bWVfd3E7CisJCXdxID0gY3R4cC0+aGR3cS0+aW9fd3E7CiAJCWxwZmNfbnZtZXRfd3FmdWxsX2ZsdXNoKHBoYmEsIHdxLCBjdHhwKTsKIAkJcmV0dXJuOwogCX0KQEAgLTE0MzcsNyArMTQzNyw3IEBAIGxwZmNfbnZtZXRfc2V0dXBfaW9fY29udGV4dChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCQlpbmZvcCA9IGxwZmNfZ2V0X2N0eF9saXN0KHBoYmEsIGksIGopOwogCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fSU5GTywgTE9HX05WTUUgfCBMT0dfSU5JVCwKIAkJCQkJIjY0MDggVE9UQUwgTlZNRVQgY3R4IGZvciBDUFUgJWQgIgotCQkJCQkiTVJRICVkOiBjbnQgJWQgbmV4dGNwdSAlcFxuIiwKKwkJCQkJIk1SUSAlZDogY250ICVkIG5leHRjcHUgeCVweFxuIiwKIAkJCQkJaSwgaiwgaW5mb3AtPm52bWV0X2N0eF9saXN0X2NudCwKIAkJCQkJaW5mb3AtPm52bWV0X2N0eF9uZXh0X2NwdSk7CiAJCX0KQEAgLTE1MDAsNyArMTUwMCw3IEBAIGxwZmNfbnZtZXRfY3JlYXRlX3RhcmdldHBvcnQoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19OVk1FX0RJU0MsCiAJCQkJIjYwMjYgUmVnaXN0ZXJlZCBOVk1FICIKLQkJCQkidGFyZ2V0cG9ydDogJXAsIHByaXZhdGUgJXAgIgorCQkJCSJ0YXJnZXRwb3J0OiB4JXB4LCBwcml2YXRlIHglcHggIgogCQkJCSJwb3J0bm0gJWxseCBub2Rlbm0gJWxseCBzZWdzICVkIHFzICVkXG4iLAogCQkJCXBoYmEtPnRhcmdldHBvcnQsIHRndHAsCiAJCQkJcGluZm8ucG9ydF9uYW1lLCBwaW5mby5ub2RlX25hbWUsCkBAIC0xNTU1LDcgKzE1NTUsNyBAQCBscGZjX252bWV0X3VwZGF0ZV90YXJnZXRwb3J0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkJcmV0dXJuIDA7CiAKIAlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19OVk1FLAotCQkJICI2MDA3IFVwZGF0ZSBOVk1FVCBwb3J0ICVwIGRpZCB4JXhcbiIsCisJCQkgIjYwMDcgVXBkYXRlIE5WTUVUIHBvcnQgeCVweCBkaWQgeCV4XG4iLAogCQkJIHBoYmEtPnRhcmdldHBvcnQsIHZwb3J0LT5mY19teURJRCk7CiAKIAlwaGJhLT50YXJnZXRwb3J0LT5wb3J0X2lkID0gdnBvcnQtPmZjX215RElEOwpAQCAtMTc5MCwxMiArMTc5MCw4IEBAIGxwZmNfbnZtZXRfcmN2X3Vuc29sX2Fib3J0KHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwKIAkJCWxwZmNfbnZtZXRfZGVmZXJfcmVsZWFzZShwaGJhLCBjdHhwKTsKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0eHAtPmN0eGxvY2ssIGlmbGFnKTsKIAkJfQotCQlpZiAoY3R4cC0+c3RhdGUgPT0gTFBGQ19OVk1FVF9TVEVfUkNWKQotCQkJbHBmY19udm1ldF91bnNvbF9mY3BfaXNzdWVfYWJvcnQocGhiYSwgY3R4cCwgY3R4cC0+c2lkLAotCQkJCQkJCSBjdHhwLT5veGlkKTsKLQkJZWxzZQotCQkJbHBmY19udm1ldF9zb2xfZmNwX2lzc3VlX2Fib3J0KHBoYmEsIGN0eHAsIGN0eHAtPnNpZCwKLQkJCQkJCSAgICAgICBjdHhwLT5veGlkKTsKKwkJbHBmY19udm1ldF9zb2xfZmNwX2lzc3VlX2Fib3J0KHBoYmEsIGN0eHAsIGN0eHAtPnNpZCwKKwkJCQkJICAgICAgIGN0eHAtPm94aWQpOwogCiAJCWxwZmNfc2xpNF9zZXFfYWJvcnRfcnNwKHZwb3J0LCBmY19oZHIsIDEpOwogCQlyZXR1cm4gMDsKQEAgLTE5MjIsNyArMTkxOCw3IEBAIGxwZmNfbnZtZXRfZGVzdHJveV90YXJnZXRwb3J0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAlpZiAocGhiYS0+dGFyZ2V0cG9ydCkgewogCQl0Z3RwID0gKHN0cnVjdCBscGZjX252bWV0X3RndHBvcnQgKilwaGJhLT50YXJnZXRwb3J0LT5wcml2YXRlOwogCQlmb3IgKHFpZHggPSAwOyBxaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgcWlkeCsrKSB7Ci0JCQl3cSA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbcWlkeF0ubnZtZV93cTsKKwkJCXdxID0gcGhiYS0+c2xpNF9oYmEuaGR3cVtxaWR4XS5pb193cTsKIAkJCWxwZmNfbnZtZXRfd3FmdWxsX2ZsdXNoKHBoYmEsIHdxLCBOVUxMKTsKIAkJfQogCQl0Z3RwLT50cG9ydF91bnJlZ19jbXAgPSAmdHBvcnRfdW5yZWdfY21wOwpAQCAtMTkzMCw3ICsxOTI2LDcgQEAgbHBmY19udm1ldF9kZXN0cm95X3RhcmdldHBvcnQoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCQlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCh0Z3RwLT50cG9ydF91bnJlZ19jbXAsCiAJCQkJCW1zZWNzX3RvX2ppZmZpZXMoTFBGQ19OVk1FVF9XQUlUX1RNTykpKQogCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfTlZNRSwKLQkJCQkJIjYxNzkgVW5yZWcgdGFyZ2V0cG9ydCAlcCB0aW1lb3V0ICIKKwkJCQkJIjYxNzkgVW5yZWcgdGFyZ2V0cG9ydCB4JXB4IHRpbWVvdXQgIgogCQkJCQkicmVhY2hlZC5cbiIsIHBoYmEtPnRhcmdldHBvcnQpOwogCQlscGZjX252bWV0X2NsZWFudXBfaW9fY29udGV4dChwaGJhKTsKIAl9CkBAIC0zMTEzLDcgKzMxMDksNyBAQCBscGZjX252bWV0X3htdF9sc19hYm9ydF9jbXAoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb2NicSAqY21kd3FlLAogCWF0b21pY19pbmMoJnRndHAtPnhtdF9sc19hYm9ydF9jbXBsKTsKIAogCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19OVk1FX0FCVFMsCi0JCQkiNjA4MyBBYm9ydCBjbXBsOiBjdHggJXAgV0NRRTolMDh4ICUwOHggJTA4eCAlMDh4XG4iLAorCQkJIjYwODMgQWJvcnQgY21wbDogY3R4IHglcHggV0NRRTolMDh4ICUwOHggJTA4eCAlMDh4XG4iLAogCQkJY3R4cCwgd2NxZS0+d29yZDAsIHdjcWUtPnRvdGFsX2RhdGFfcGxhY2VkLAogCQkJcmVzdWx0LCB3Y3FlLT53b3JkMyk7CiAKQEAgLTMyOTksNyArMzI5NSw3IEBAIGxwZmNfbnZtZXRfc29sX2ZjcF9pc3N1ZV9hYm9ydChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCiAJICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnBoYmEtPmhiYWxvY2ssIGZsYWdzKTsKIAkvKiBkcml2ZXIgcXVldWVkIGNvbW1hbmRzIGFyZSBpbiBwcm9jZXNzIG9mIGJlaW5nIGZsdXNoZWQgKi8KLQlpZiAocGhiYS0+aGJhX2ZsYWcgJiBIQkFfTlZNRV9JT1FfRkxVU0gpIHsKKwlpZiAocGhiYS0+aGJhX2ZsYWcgJiBIQkFfSU9RX0ZMVVNIKSB7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBoYmEtPmhiYWxvY2ssIGZsYWdzKTsKIAkJYXRvbWljX2luYygmdGd0cC0+eG10X2Fib3J0X3JzcF9lcnJvcik7CiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX05WTUUsCkBAIC0zMzM0LDcgKzMzMzAsNyBAQCBscGZjX252bWV0X3NvbF9mY3BfaXNzdWVfYWJvcnQoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCS8qIFdRRXMgYXJlIHJldXNlZC4gIENsZWFyIHN0YWxlIGRhdGEgYW5kIHNldCBrZXkgZmllbGRzIHRvCiAJICogemVybyBsaWtlIGlhLCBpYWFiLCBpYWFyLCB4cmlfdGFnLCBhbmQgY3R4dF90YWcuCiAJICovCi0JbWVtc2V0KGFidHNfd3FlLCAwLCBzaXplb2YodW5pb24gbHBmY193cWUpKTsKKwltZW1zZXQoYWJ0c193cWUsIDAsIHNpemVvZigqYWJ0c193cWUpKTsKIAogCS8qIHdvcmQgMyAqLwogCWJmX3NldChhYm9ydF9jbWRfY3JpdGVyaWEsICZhYnRzX3dxZS0+YWJvcnRfY21kLCBUX1hSSV9UQUcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zY3NpLmMgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3Njc2kuYwppbmRleCBmOWRmODAwLi5mZTEwOTc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3Njc2kuYworKysgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3Njc2kuYwpAQCAtNTMsOCArNTMsNiBAQAogI2RlZmluZSBMUEZDX1JFU0VUX1dBSVQgIDIKICNkZWZpbmUgTFBGQ19BQk9SVF9XQUlUICAyCiAKLWludCBfZHVtcF9idWZfZG9uZSA9IDE7Ci0KIHN0YXRpYyBjaGFyICpkaWZfb3Bfc3RyW10gPSB7CiAJIlBST1RfTk9STUFMIiwKIAkiUFJPVF9SRUFEX0lOU0VSVCIsCkBAIC04OSw2MyArODcsNiBAQCBscGZjX3JlbGVhc2Vfc2NzaV9idWZfczMoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKnBzYik7CiBzdGF0aWMgaW50CiBscGZjX3Byb3RfZ3JvdXBfdHlwZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBzY3NpX2NtbmQgKnNjKTsKIAotc3RhdGljIHZvaWQKLWxwZmNfZGVidWdfc2F2ZV9kYXRhKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IHNjc2lfY21uZCAqY21uZCkKLXsKLQl2b2lkICpzcmMsICpkc3Q7Ci0Jc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2RlID0gc2NzaV9zZ2xpc3QoY21uZCk7Ci0KLQlpZiAoIV9kdW1wX2J1Zl9kYXRhKSB7Ci0JCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0JHLAotCQkJIjkwNTAgQkxLR1JEOiBFUlJPUiAlcyBfZHVtcF9idWZfZGF0YSBpcyBOVUxMXG4iLAotCQkJCV9fZnVuY19fKTsKLQkJcmV0dXJuOwotCX0KLQotCi0JaWYgKCFzZ2RlKSB7Ci0JCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0JHLAotCQkJIjkwNTEgQkxLR1JEOiBFUlJPUjogZGF0YSBzY2F0dGVybGlzdCBpcyBudWxsXG4iKTsKLQkJcmV0dXJuOwotCX0KLQotCWRzdCA9ICh2b2lkICopIF9kdW1wX2J1Zl9kYXRhOwotCXdoaWxlIChzZ2RlKSB7Ci0JCXNyYyA9IHNnX3ZpcnQoc2dkZSk7Ci0JCW1lbWNweShkc3QsIHNyYywgc2dkZS0+bGVuZ3RoKTsKLQkJZHN0ICs9IHNnZGUtPmxlbmd0aDsKLQkJc2dkZSA9IHNnX25leHQoc2dkZSk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZAotbHBmY19kZWJ1Z19zYXZlX2RpZihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBzY3NpX2NtbmQgKmNtbmQpCi17Ci0Jdm9pZCAqc3JjLCAqZHN0OwotCXN0cnVjdCBzY2F0dGVybGlzdCAqc2dkZSA9IHNjc2lfcHJvdF9zZ2xpc3QoY21uZCk7Ci0KLQlpZiAoIV9kdW1wX2J1Zl9kaWYpIHsKLQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfQkcsCi0JCQkiOTA1MiBCTEtHUkQ6IEVSUk9SICVzIF9kdW1wX2J1Zl9kYXRhIGlzIE5VTExcbiIsCi0JCQkJX19mdW5jX18pOwotCQlyZXR1cm47Ci0JfQotCi0JaWYgKCFzZ2RlKSB7Ci0JCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0JHLAotCQkJIjkwNTMgQkxLR1JEOiBFUlJPUjogcHJvdCBzY2F0dGVybGlzdCBpcyBudWxsXG4iKTsKLQkJcmV0dXJuOwotCX0KLQotCWRzdCA9IF9kdW1wX2J1Zl9kaWY7Ci0Jd2hpbGUgKHNnZGUpIHsKLQkJc3JjID0gc2dfdmlydChzZ2RlKTsKLQkJbWVtY3B5KGRzdCwgc3JjLCBzZ2RlLT5sZW5ndGgpOwotCQlkc3QgKz0gc2dkZS0+bGVuZ3RoOwotCQlzZ2RlID0gc2dfbmV4dChzZ2RlKTsKLQl9Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQKIGxwZmNfY21kX2Jsa3NpemUoc3RydWN0IHNjc2lfY21uZCAqc2MpCiB7CkBAIC01MzcsMjkgKzQ3OCwzMiBAQCBscGZjX3NsaTRfdnBvcnRfZGVsZXRlX2ZjcF94cmlfYWJvcnRlZChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQpCiAJZm9yIChpZHggPSAwOyBpZHggPCBwaGJhLT5jZmdfaGR3X3F1ZXVlOyBpZHgrKykgewogCQlxcCA9ICZwaGJhLT5zbGk0X2hiYS5oZHdxW2lkeF07CiAKLQkJc3Bpbl9sb2NrKCZxcC0+YWJ0c19zY3NpX2J1Zl9saXN0X2xvY2spOworCQlzcGluX2xvY2soJnFwLT5hYnRzX2lvX2J1Zl9saXN0X2xvY2spOwogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHNiLCBuZXh0X3BzYiwKLQkJCQkJICZxcC0+bHBmY19hYnRzX3Njc2lfYnVmX2xpc3QsIGxpc3QpIHsKKwkJCQkJICZxcC0+bHBmY19hYnRzX2lvX2J1Zl9saXN0LCBsaXN0KSB7CisJCQlpZiAocHNiLT5jdXJfaW9jYnEuaW9jYl9mbGFnID09IExQRkNfSU9fTlZNRSkKKwkJCQljb250aW51ZTsKKwogCQkJaWYgKHBzYi0+cmRhdGEgJiYgcHNiLT5yZGF0YS0+cG5vZGUgJiYKIAkJCSAgICBwc2ItPnJkYXRhLT5wbm9kZS0+dnBvcnQgPT0gdnBvcnQpCiAJCQkJcHNiLT5yZGF0YSA9IE5VTEw7CiAJCX0KLQkJc3Bpbl91bmxvY2soJnFwLT5hYnRzX3Njc2lfYnVmX2xpc3RfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZxcC0+YWJ0c19pb19idWZfbGlzdF9sb2NrKTsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGhiYS0+aGJhbG9jaywgaWZsYWcpOwogfQogCiAvKioKLSAqIGxwZmNfc2xpNF9mY3BfeHJpX2Fib3J0ZWQgLSBGYXN0LXBhdGggcHJvY2VzcyBvZiBmY3AgeHJpIGFib3J0CisgKiBscGZjX3NsaTRfaW9feHJpX2Fib3J0ZWQgLSBGYXN0LXBhdGggcHJvY2VzcyBvZiBmY3AgeHJpIGFib3J0CiAgKiBAcGhiYTogcG9pbnRlciB0byBscGZjIGhiYSBkYXRhIHN0cnVjdHVyZS4KICAqIEBheHJpOiBwb2ludGVyIHRvIHRoZSBmY3AgeHJpIGFib3J0IHdjcWUgc3RydWN0dXJlLgogICoKICAqIFRoaXMgcm91dGluZSBpcyBpbnZva2VkIGJ5IHRoZSB3b3JrZXIgdGhyZWFkIHRvIHByb2Nlc3MgYSBTTEk0IGZhc3QtcGF0aAotICogRkNQIGFib3J0ZWQgeHJpLgorICogRkNQIG9yIE5WTUUgYWJvcnRlZCB4cmkuCiAgKiovCiB2b2lkCi1scGZjX3NsaTRfZmNwX3hyaV9hYm9ydGVkKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKLQkJCSAgc3RydWN0IHNsaTRfd2NxZV94cmlfYWJvcnRlZCAqYXhyaSwgaW50IGlkeCkKK2xwZmNfc2xpNF9pb194cmlfYWJvcnRlZChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCisJCQkgc3RydWN0IHNsaTRfd2NxZV94cmlfYWJvcnRlZCAqYXhyaSwgaW50IGlkeCkKIHsKIAl1aW50MTZfdCB4cmkgPSBiZl9nZXQobHBmY193Y3FlX3hhX3hyaSwgYXhyaSk7CiAJdWludDE2X3QgcnhpZCA9IGJmX2dldChscGZjX3djcWVfeGFfcmVtb3RlX3hpZCwgYXhyaSk7CkBAIC01NzcsMTYgKzUyMSwyNSBAQCBscGZjX3NsaTRfZmNwX3hyaV9hYm9ydGVkKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKIAogCXFwID0gJnBoYmEtPnNsaTRfaGJhLmhkd3FbaWR4XTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcGhiYS0+aGJhbG9jaywgaWZsYWcpOwotCXNwaW5fbG9jaygmcXAtPmFidHNfc2NzaV9idWZfbGlzdF9sb2NrKTsKKwlzcGluX2xvY2soJnFwLT5hYnRzX2lvX2J1Zl9saXN0X2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwc2IsIG5leHRfcHNiLAotCQkmcXAtPmxwZmNfYWJ0c19zY3NpX2J1Zl9saXN0LCBsaXN0KSB7CisJCSZxcC0+bHBmY19hYnRzX2lvX2J1Zl9saXN0LCBsaXN0KSB7CiAJCWlmIChwc2ItPmN1cl9pb2NicS5zbGk0X3hyaXRhZyA9PSB4cmkpIHsKLQkJCWxpc3RfZGVsKCZwc2ItPmxpc3QpOwotCQkJcXAtPmFidHNfc2NzaV9pb19idWZzLS07CisJCQlsaXN0X2RlbF9pbml0KCZwc2ItPmxpc3QpOwogCQkJcHNiLT5leGNoX2J1c3kgPSAwOwogCQkJcHNiLT5zdGF0dXMgPSBJT1NUQVRfU1VDQ0VTUzsKLQkJCXNwaW5fdW5sb2NrKAotCQkJCSZxcC0+YWJ0c19zY3NpX2J1Zl9saXN0X2xvY2spOworI2lmZGVmIEJVSUxEX05WTUUKKwkJCWlmIChwc2ItPmN1cl9pb2NicS5pb2NiX2ZsYWcgPT0gTFBGQ19JT19OVk1FKSB7CisJCQkJcXAtPmFidHNfbnZtZV9pb19idWZzLS07CisJCQkJc3Bpbl91bmxvY2soJnFwLT5hYnRzX2lvX2J1Zl9saXN0X2xvY2spOworCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBoYmEtPmhiYWxvY2ssIGlmbGFnKTsKKwkJCQlscGZjX3NsaTRfbnZtZV94cmlfYWJvcnRlZChwaGJhLCBheHJpLCBwc2IpOworCQkJCXJldHVybjsKKwkJCX0KKyNlbmRpZgorCQkJcXAtPmFidHNfc2NzaV9pb19idWZzLS07CisJCQlzcGluX3VubG9jaygmcXAtPmFidHNfaW9fYnVmX2xpc3RfbG9jayk7CisKIAkJCWlmIChwc2ItPnJkYXRhICYmIHBzYi0+cmRhdGEtPnBub2RlKQogCQkJCW5kbHAgPSBwc2ItPnJkYXRhLT5wbm9kZTsKIAkJCWVsc2UKQEAgLTYwNSwxMiArNTU4LDEyIEBAIGxwZmNfc2xpNF9mY3BfeHJpX2Fib3J0ZWQoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCQkJcmV0dXJuOwogCQl9CiAJfQotCXNwaW5fdW5sb2NrKCZxcC0+YWJ0c19zY3NpX2J1Zl9saXN0X2xvY2spOworCXNwaW5fdW5sb2NrKCZxcC0+YWJ0c19pb19idWZfbGlzdF9sb2NrKTsKIAlmb3IgKGkgPSAxOyBpIDw9IHBoYmEtPnNsaS5sYXN0X2lvdGFnOyBpKyspIHsKIAkJaW9jYnEgPSBwaGJhLT5zbGkuaW9jYnFfbG9va3VwW2ldOwogCi0JCWlmICghKGlvY2JxLT5pb2NiX2ZsYWcgJiAgTFBGQ19JT19GQ1ApIHx8Ci0JCQkoaW9jYnEtPmlvY2JfZmxhZyAmIExQRkNfSU9fTElCREZDKSkKKwkJaWYgKCEoaW9jYnEtPmlvY2JfZmxhZyAmIExQRkNfSU9fRkNQKSB8fAorCQkgICAgKGlvY2JxLT5pb2NiX2ZsYWcgJiBMUEZDX0lPX0xJQkRGQykpCiAJCQljb250aW51ZTsKIAkJaWYgKGlvY2JxLT5zbGk0X3hyaXRhZyAhPSB4cmkpCiAJCQljb250aW51ZTsKQEAgLTY4NSw4ICs2MzgsOSBAQCBscGZjX2dldF9zY3NpX2J1Zl9zNChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwLAogCUlPQ0JfdCAqaW9jYjsKIAlkbWFfYWRkcl90IHBkbWFfcGh5c19mY3BfcnNwOwogCWRtYV9hZGRyX3QgcGRtYV9waHlzX2ZjcF9jbWQ7Ci0JdWludDMyX3Qgc2dsX3NpemUsIGNwdSwgaWR4OworCXVpbnQzMl90IGNwdSwgaWR4OwogCWludCB0YWc7CisJc3RydWN0IGZjcF9jbWRfcnNwX2J1ZiAqdG1wID0gTlVMTDsKIAogCWNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CiAJaWYgKGNtbmQgJiYgcGhiYS0+Y2ZnX2ZjcF9pb19zY2hlZCA9PSBMUEZDX0ZDUF9TQ0hFRF9CWV9IRFdRKSB7CkBAIC03MDQsOSArNjU4LDYgQEAgbHBmY19nZXRfc2NzaV9idWZfczQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0Jc2dsX3NpemUgPSBwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplIC0KLQkJKHNpemVvZihzdHJ1Y3QgZmNwX2NtbmQpICsgc2l6ZW9mKHN0cnVjdCBmY3BfcnNwKSk7Ci0KIAkvKiBTZXR1cCBrZXkgZmllbGRzIGluIGJ1ZmZlciB0aGF0IG1heSBoYXZlIGJlZW4gY2hhbmdlZAogCSAqIGlmIG90aGVyIHByb3RvY29scyB1c2VkIHRoaXMgYnVmZmVyLgogCSAqLwpAQCAtNzIxLDkgKzY3MiwxMiBAQCBscGZjX2dldF9zY3NpX2J1Zl9zNChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwLAogI2lmZGVmIENPTkZJR19TQ1NJX0xQRkNfREVCVUdfRlMKIAlscGZjX2NtZC0+cHJvdF9kYXRhX3R5cGUgPSAwOwogI2VuZGlmCi0JbHBmY19jbWQtPmZjcF9jbW5kID0gKGxwZmNfY21kLT5kYXRhICsgc2dsX3NpemUpOwotCWxwZmNfY21kLT5mY3BfcnNwID0gKHN0cnVjdCBmY3BfcnNwICopKCh1aW50OF90ICopbHBmY19jbWQtPmZjcF9jbW5kICsKLQkJCQlzaXplb2Yoc3RydWN0IGZjcF9jbW5kKSk7CisJdG1wID0gbHBmY19nZXRfY21kX3JzcF9idWZfcGVyX2hkd3EocGhiYSwgbHBmY19jbWQpOworCWlmICghdG1wKQorCQlyZXR1cm4gTlVMTDsKKworCWxwZmNfY21kLT5mY3BfY21uZCA9IHRtcC0+ZmNwX2NtbmQ7CisJbHBmY19jbWQtPmZjcF9yc3AgPSB0bXAtPmZjcF9yc3A7CiAKIAkvKgogCSAqIFRoZSBmaXJzdCB0d28gU0dFcyBhcmUgdGhlIEZDUF9DTUQgYW5kIEZDUF9SU1AuCkBAIC03MzEsNyArNjg1LDcgQEAgbHBmY19nZXRfc2NzaV9idWZfczQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCwKIAkgKiBmaXJzdCB0d28gYW5kIGxlYXZlIHRoZSByZXN0IGZvciBxdWV1ZWNvbW1hbmQuCiAJICovCiAJc2dsID0gKHN0cnVjdCBzbGk0X3NnZSAqKWxwZmNfY21kLT5kbWFfc2dsOwotCXBkbWFfcGh5c19mY3BfY21kID0gKGxwZmNfY21kLT5kbWFfaGFuZGxlICsgc2dsX3NpemUpOworCXBkbWFfcGh5c19mY3BfY21kID0gdG1wLT5mY3BfY21kX3JzcF9kbWFfaGFuZGxlOwogCXNnbC0+YWRkcl9oaSA9IGNwdV90b19sZTMyKHB1dFBhZGRySGlnaChwZG1hX3BoeXNfZmNwX2NtZCkpOwogCXNnbC0+YWRkcl9sbyA9IGNwdV90b19sZTMyKHB1dFBhZGRyTG93KHBkbWFfcGh5c19mY3BfY21kKSk7CiAJc2dsLT53b3JkMiA9IGxlMzJfdG9fY3B1KHNnbC0+d29yZDIpOwpAQCAtODM1LDExICs3ODksMTEgQEAgbHBmY19yZWxlYXNlX3Njc2lfYnVmX3M0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9fYnVmICpwc2IpCiAKIAlxcCA9IHBzYi0+aGR3cTsKIAlpZiAocHNiLT5leGNoX2J1c3kpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJnFwLT5hYnRzX3Njc2lfYnVmX2xpc3RfbG9jaywgaWZsYWcpOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcXAtPmFidHNfaW9fYnVmX2xpc3RfbG9jaywgaWZsYWcpOwogCQlwc2ItPnBDbWQgPSBOVUxMOwotCQlsaXN0X2FkZF90YWlsKCZwc2ItPmxpc3QsICZxcC0+bHBmY19hYnRzX3Njc2lfYnVmX2xpc3QpOworCQlsaXN0X2FkZF90YWlsKCZwc2ItPmxpc3QsICZxcC0+bHBmY19hYnRzX2lvX2J1Zl9saXN0KTsKIAkJcXAtPmFidHNfc2NzaV9pb19idWZzKys7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnFwLT5hYnRzX3Njc2lfYnVmX2xpc3RfbG9jaywgaWZsYWcpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxcC0+YWJ0c19pb19idWZfbGlzdF9sb2NrLCBpZmxhZyk7CiAJfSBlbHNlIHsKIAkJbHBmY19yZWxlYXNlX2lvX2J1ZihwaGJhLCAoc3RydWN0IGxwZmNfaW9fYnVmICopcHNiLCBxcCk7CiAJfQpAQCAtOTE4LDkgKzg3MiwxMCBAQCBscGZjX3Njc2lfcHJlcF9kbWFfYnVmX3MzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9fYnVmICpscGZjX2NtZCkKIAkJCSAgICAgICAiZG1hX21hcF9zZy4gIENvbmZpZyAlZCwgc2VnX2NudCAlZFxuIiwKIAkJCSAgICAgICBfX2Z1bmNfXywgcGhiYS0+Y2ZnX3NnX3NlZ19jbnQsCiAJCQkgICAgICAgbHBmY19jbWQtPnNlZ19jbnQpOworCQkJV0FSTl9PTl9PTkNFKGxwZmNfY21kLT5zZWdfY250ID4gcGhiYS0+Y2ZnX3NnX3NlZ19jbnQpOwogCQkJbHBmY19jbWQtPnNlZ19jbnQgPSAwOwogCQkJc2NzaV9kbWFfdW5tYXAoc2NzaV9jbW5kKTsKLQkJCXJldHVybiAxOworCQkJcmV0dXJuIDI7CiAJCX0KIAogCQkvKgpAQCAtMTc3NCw3ICsxNzI5LDcgQEAgbHBmY19iZ19zZXR1cF9icGxfcHJvdChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBzY3NpX2NtbmQgKnNjLAogCiAJaWYgKCFzZ3BlIHx8ICFzZ2RlKSB7CiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0ZDUCwKLQkJCQkiOTAyMCBJbnZhbGlkIHMvZyBlbnRyeTogZGF0YT0weCVwIHByb3Q9MHglcFxuIiwKKwkJCQkiOTAyMCBJbnZhbGlkIHMvZyBlbnRyeTogZGF0YT14JXB4IHByb3Q9eCVweFxuIiwKIAkJCQlzZ3BlLCBzZ2RlKTsKIAkJcmV0dXJuIDA7CiAJfQpAQCAtMTk4OSw3ICsxOTQ0LDggQEAgbHBmY19iZ19zZXR1cF9icGxfcHJvdChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBzY3NpX2NtbmQgKnNjLAogICoqLwogc3RhdGljIGludAogbHBmY19iZ19zZXR1cF9zZ2woc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3Qgc2NzaV9jbW5kICpzYywKLQkJc3RydWN0IHNsaTRfc2dlICpzZ2wsIGludCBkYXRhc2VnY250KQorCQlzdHJ1Y3Qgc2xpNF9zZ2UgKnNnbCwgaW50IGRhdGFzZWdjbnQsCisJCXN0cnVjdCBscGZjX2lvX2J1ZiAqbHBmY19jbWQpCiB7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2RlID0gTlVMTDsgLyogcy9nIGRhdGEgZW50cnkgKi8KIAlzdHJ1Y3Qgc2xpNF9zZ2VfZGlzZWVkICpkaXNlZWQgPSBOVUxMOwpAQCAtMjAwMyw2ICsxOTU5LDkgQEAgbHBmY19iZ19zZXR1cF9zZ2woc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3Qgc2NzaV9jbW5kICpzYywKIAl1aW50MzJfdCBjaGVja2luZyA9IDE7CiAJdWludDMyX3QgZG1hX2xlbjsKIAl1aW50MzJfdCBkbWFfb2Zmc2V0ID0gMDsKKwlzdHJ1Y3Qgc2xpNF9oeWJyaWRfc2dsICpzZ2xfeHRyYSA9IE5VTEw7CisJaW50IGo7CisJYm9vbCBsc3BfanVzdF9zZXQgPSBmYWxzZTsKIAogCXN0YXR1cyAgPSBscGZjX3NjX3RvX2JnX29wY29kZXMocGhiYSwgc2MsICZ0eG9wLCAmcnhvcCk7CiAJaWYgKHN0YXR1cykKQEAgLTIwNjIsMjMgKzIwMjEsNjQgQEAgbHBmY19iZ19zZXR1cF9zZ2woc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3Qgc2NzaV9jbW5kICpzYywKIAlzZ2wrKzsKIAogCS8qIGFzc3VtcHRpb246IGNhbGxlciBoYXMgYWxyZWFkeSBydW4gZG1hX21hcF9zZyBvbiBjb21tYW5kIGRhdGEgKi8KLQlzY3NpX2Zvcl9lYWNoX3NnKHNjLCBzZ2RlLCBkYXRhc2VnY250LCBpKSB7Ci0JCXBoeXNhZGRyID0gc2dfZG1hX2FkZHJlc3Moc2dkZSk7Ci0JCWRtYV9sZW4gPSBzZ19kbWFfbGVuKHNnZGUpOwotCQlzZ2wtPmFkZHJfbG8gPSBjcHVfdG9fbGUzMihwdXRQYWRkckxvdyhwaHlzYWRkcikpOwotCQlzZ2wtPmFkZHJfaGkgPSBjcHVfdG9fbGUzMihwdXRQYWRkckhpZ2gocGh5c2FkZHIpKTsKLQkJaWYgKChpICsgMSkgPT0gZGF0YXNlZ2NudCkKLQkJCWJmX3NldChscGZjX3NsaTRfc2dlX2xhc3QsIHNnbCwgMSk7Ci0JCWVsc2UKLQkJCWJmX3NldChscGZjX3NsaTRfc2dlX2xhc3QsIHNnbCwgMCk7Ci0JCWJmX3NldChscGZjX3NsaTRfc2dlX29mZnNldCwgc2dsLCBkbWFfb2Zmc2V0KTsKLQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2VfdHlwZSwgc2dsLCBMUEZDX1NHRV9UWVBFX0RBVEEpOworCXNnZGUgPSBzY3NpX3NnbGlzdChzYyk7CisJaiA9IDM7CisJZm9yIChpID0gMDsgaSA8IGRhdGFzZWdjbnQ7IGkrKykgeworCQkvKiBjbGVhciBpdCAqLworCQlzZ2wtPndvcmQyID0gMDsKIAotCQlzZ2wtPnNnZV9sZW4gPSBjcHVfdG9fbGUzMihkbWFfbGVuKTsKLQkJZG1hX29mZnNldCArPSBkbWFfbGVuOworCQkvKiBkbyB3ZSBuZWVkIHRvIGV4cGFuZCB0aGUgc2VnbWVudCAqLworCQlpZiAoIWxzcF9qdXN0X3NldCAmJiAhKChqICsgMSkgJSBwaGJhLT5ib3JkZXJfc2dlX251bSkgJiYKKwkJICAgICgoZGF0YXNlZ2NudCAtIDEpICE9IGkpKSB7CisJCQkvKiBzZXQgTFNQIHR5cGUgKi8KKwkJCWJmX3NldChscGZjX3NsaTRfc2dlX3R5cGUsIHNnbCwgTFBGQ19TR0VfVFlQRV9MU1ApOwogCi0JCXNnbCsrOwotCQludW1fc2dlKys7CisJCQlzZ2xfeHRyYSA9IGxwZmNfZ2V0X3NnbF9wZXJfaGR3cShwaGJhLCBscGZjX2NtZCk7CisKKwkJCWlmICh1bmxpa2VseSghc2dsX3h0cmEpKSB7CisJCQkJbHBmY19jbWQtPnNlZ19jbnQgPSAwOworCQkJCXJldHVybiAwOworCQkJfQorCQkJc2dsLT5hZGRyX2xvID0gY3B1X3RvX2xlMzIocHV0UGFkZHJMb3coCisJCQkJCQlzZ2xfeHRyYS0+ZG1hX3BoeXNfc2dsKSk7CisJCQlzZ2wtPmFkZHJfaGkgPSBjcHVfdG9fbGUzMihwdXRQYWRkckhpZ2goCisJCQkJCQlzZ2xfeHRyYS0+ZG1hX3BoeXNfc2dsKSk7CisKKwkJfSBlbHNlIHsKKwkJCWJmX3NldChscGZjX3NsaTRfc2dlX3R5cGUsIHNnbCwgTFBGQ19TR0VfVFlQRV9EQVRBKTsKKwkJfQorCisJCWlmICghKGJmX2dldChscGZjX3NsaTRfc2dlX3R5cGUsIHNnbCkgJiBMUEZDX1NHRV9UWVBFX0xTUCkpIHsKKwkJCWlmICgoZGF0YXNlZ2NudCAtIDEpID09IGkpCisJCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2VfbGFzdCwgc2dsLCAxKTsKKwkJCXBoeXNhZGRyID0gc2dfZG1hX2FkZHJlc3Moc2dkZSk7CisJCQlkbWFfbGVuID0gc2dfZG1hX2xlbihzZ2RlKTsKKwkJCXNnbC0+YWRkcl9sbyA9IGNwdV90b19sZTMyKHB1dFBhZGRyTG93KHBoeXNhZGRyKSk7CisJCQlzZ2wtPmFkZHJfaGkgPSBjcHVfdG9fbGUzMihwdXRQYWRkckhpZ2gocGh5c2FkZHIpKTsKKworCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2Vfb2Zmc2V0LCBzZ2wsIGRtYV9vZmZzZXQpOworCQkJc2dsLT53b3JkMiA9IGNwdV90b19sZTMyKHNnbC0+d29yZDIpOworCQkJc2dsLT5zZ2VfbGVuID0gY3B1X3RvX2xlMzIoZG1hX2xlbik7CisKKwkJCWRtYV9vZmZzZXQgKz0gZG1hX2xlbjsKKwkJCXNnZGUgPSBzZ19uZXh0KHNnZGUpOworCisJCQlzZ2wrKzsKKwkJCW51bV9zZ2UrKzsKKwkJCWxzcF9qdXN0X3NldCA9IGZhbHNlOworCisJCX0gZWxzZSB7CisJCQlzZ2wtPndvcmQyID0gY3B1X3RvX2xlMzIoc2dsLT53b3JkMik7CisJCQlzZ2wtPnNnZV9sZW4gPSBjcHVfdG9fbGUzMihwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplKTsKKworCQkJc2dsID0gKHN0cnVjdCBzbGk0X3NnZSAqKXNnbF94dHJhLT5kbWFfc2dsOworCQkJaSA9IGkgLSAxOworCisJCQlsc3BfanVzdF9zZXQgPSB0cnVlOworCQl9CisKKwkJaisrOworCiAJfQogCiBvdXQ6CkBAIC0yMTI0LDcgKzIxMjQsOCBAQCBscGZjX2JnX3NldHVwX3NnbChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBzY3NpX2NtbmQgKnNjLAogICoqLwogc3RhdGljIGludAogbHBmY19iZ19zZXR1cF9zZ2xfcHJvdChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBzY3NpX2NtbmQgKnNjLAotCQlzdHJ1Y3Qgc2xpNF9zZ2UgKnNnbCwgaW50IGRhdGFjbnQsIGludCBwcm90Y250KQorCQlzdHJ1Y3Qgc2xpNF9zZ2UgKnNnbCwgaW50IGRhdGFjbnQsIGludCBwcm90Y250LAorCQlzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfY21kKQogewogCXN0cnVjdCBzY2F0dGVybGlzdCAqc2dkZSA9IE5VTEw7IC8qIHMvZyBkYXRhIGVudHJ5ICovCiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ3BlID0gTlVMTDsgLyogcy9nIHByb3QgZW50cnkgKi8KQEAgLTIxNDYsMTQgKzIxNDcsMTUgQEAgbHBmY19iZ19zZXR1cF9zZ2xfcHJvdChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBzY3NpX2NtbmQgKnNjLAogI2VuZGlmCiAJdWludDMyX3QgY2hlY2tpbmcgPSAxOwogCXVpbnQzMl90IGRtYV9vZmZzZXQgPSAwOwotCWludCBudW1fc2dlID0gMDsKKwlpbnQgbnVtX3NnZSA9IDAsIGogPSAyOworCXN0cnVjdCBzbGk0X2h5YnJpZF9zZ2wgKnNnbF94dHJhID0gTlVMTDsKIAogCXNncGUgPSBzY3NpX3Byb3Rfc2dsaXN0KHNjKTsKIAlzZ2RlID0gc2NzaV9zZ2xpc3Qoc2MpOwogCiAJaWYgKCFzZ3BlIHx8ICFzZ2RlKSB7CiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0ZDUCwKLQkJCQkiOTA4MiBJbnZhbGlkIHMvZyBlbnRyeTogZGF0YT0weCVwIHByb3Q9MHglcFxuIiwKKwkJCQkiOTA4MiBJbnZhbGlkIHMvZyBlbnRyeTogZGF0YT14JXB4IHByb3Q9eCVweFxuIiwKIAkJCQlzZ3BlLCBzZ2RlKTsKIAkJcmV0dXJuIDA7CiAJfQpAQCAtMjE3OSw5ICsyMTgxLDM3IEBAIGxwZmNfYmdfc2V0dXBfc2dsX3Byb3Qoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3Qgc2NzaV9jbW5kICpzYywKIAlzcGxpdF9vZmZzZXQgPSAwOwogCWRvIHsKIAkJLyogQ2hlY2sgdG8gc2VlIGlmIHdlIHJhbiBvdXQgb2Ygc3BhY2UgKi8KLQkJaWYgKG51bV9zZ2UgPj0gKHBoYmEtPmNmZ190b3RhbF9zZWdfY250IC0gMikpCisJCWlmICgobnVtX3NnZSA+PSAocGhiYS0+Y2ZnX3RvdGFsX3NlZ19jbnQgLSAyKSkgJiYKKwkJICAgICEocGhiYS0+Y2ZnX3hwc2dsKSkKIAkJCXJldHVybiBudW1fc2dlICsgMzsKIAorCQkvKiBESVNFRUQgYW5kIERJRiBoYXZlIHRvIGJlIHRvZ2V0aGVyICovCisJCWlmICghKChqICsgMSkgJSBwaGJhLT5ib3JkZXJfc2dlX251bSkgfHwKKwkJICAgICEoKGogKyAyKSAlIHBoYmEtPmJvcmRlcl9zZ2VfbnVtKSB8fAorCQkgICAgISgoaiArIDMpICUgcGhiYS0+Ym9yZGVyX3NnZV9udW0pKSB7CisJCQlzZ2wtPndvcmQyID0gMDsKKworCQkJLyogc2V0IExTUCB0eXBlICovCisJCQliZl9zZXQobHBmY19zbGk0X3NnZV90eXBlLCBzZ2wsIExQRkNfU0dFX1RZUEVfTFNQKTsKKworCQkJc2dsX3h0cmEgPSBscGZjX2dldF9zZ2xfcGVyX2hkd3EocGhiYSwgbHBmY19jbWQpOworCisJCQlpZiAodW5saWtlbHkoIXNnbF94dHJhKSkgeworCQkJCWdvdG8gb3V0OworCQkJfSBlbHNlIHsKKwkJCQlzZ2wtPmFkZHJfbG8gPSBjcHVfdG9fbGUzMihwdXRQYWRkckxvdygKKwkJCQkJCXNnbF94dHJhLT5kbWFfcGh5c19zZ2wpKTsKKwkJCQlzZ2wtPmFkZHJfaGkgPSBjcHVfdG9fbGUzMihwdXRQYWRkckhpZ2goCisJCQkJCQkgICAgICAgc2dsX3h0cmEtPmRtYV9waHlzX3NnbCkpOworCQkJfQorCisJCQlzZ2wtPndvcmQyID0gY3B1X3RvX2xlMzIoc2dsLT53b3JkMik7CisJCQlzZ2wtPnNnZV9sZW4gPSBjcHVfdG9fbGUzMihwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplKTsKKworCQkJc2dsID0gKHN0cnVjdCBzbGk0X3NnZSAqKXNnbF94dHJhLT5kbWFfc2dsOworCQkJaiA9IDA7CisJCX0KKwogCQkvKiBzZXR1cCBESVNFRUQgd2l0aCB3aGF0IHdlIGhhdmUgKi8KIAkJZGlzZWVkID0gKHN0cnVjdCBzbGk0X3NnZV9kaXNlZWQgKikgc2dsOwogCQltZW1zZXQoZGlzZWVkLCAwLCBzaXplb2Yoc3RydWN0IHNsaTRfc2dlX2Rpc2VlZCkpOwpAQCAtMjIyOCw3ICsyMjU4LDkgQEAgbHBmY19iZ19zZXR1cF9zZ2xfcHJvdChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBzY3NpX2NtbmQgKnNjLAogCiAJCS8qIGFkdmFuY2Ugc2dsIGFuZCBpbmNyZW1lbnQgYmRlIGNvdW50ICovCiAJCW51bV9zZ2UrKzsKKwogCQlzZ2wrKzsKKwkJaisrOwogCiAJCS8qIHNldHVwIHRoZSBmaXJzdCBCREUgdGhhdCBwb2ludHMgdG8gcHJvdGVjdGlvbiBidWZmZXIgKi8KIAkJcHJvdHBoeXNhZGRyID0gc2dfZG1hX2FkZHJlc3Moc2dwZSkgKyBwcm90Z3JvdXBfb2Zmc2V0OwpAQCAtMjI0Myw2ICsyMjc1LDcgQEAgbHBmY19iZ19zZXR1cF9zZ2xfcHJvdChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBzY3NpX2NtbmQgKnNjLAogCQlzZ2wtPmFkZHJfaGkgPSBsZTMyX3RvX2NwdShwdXRQYWRkckhpZ2gocHJvdHBoeXNhZGRyKSk7CiAJCXNnbC0+YWRkcl9sbyA9IGxlMzJfdG9fY3B1KHB1dFBhZGRyTG93KHByb3RwaHlzYWRkcikpOwogCQlzZ2wtPndvcmQyID0gY3B1X3RvX2xlMzIoc2dsLT53b3JkMik7CisJCXNnbC0+c2dlX2xlbiA9IDA7CiAKIAkJcHJvdGdycF9ibGtzID0gcHJvdGdyb3VwX2xlbiAvIDg7CiAJCXByb3RncnBfYnl0ZXMgPSBwcm90Z3JwX2Jsa3MgKiBibGtzaXplOwpAQCAtMjI2Myw5ICsyMjk2LDE0IEBAIGxwZmNfYmdfc2V0dXBfc2dsX3Byb3Qoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3Qgc2NzaV9jbW5kICpzYywKIAkJLyogc2V0dXAgU0dFJ3MgZm9yIGRhdGEgYmxvY2tzIGFzc29jaWF0ZWQgd2l0aCBESUYgZGF0YSAqLwogCQlwZ2RvbmUgPSAwOwogCQlzdWJ0b3RhbCA9IDA7IC8qIHRvdGFsIGJ5dGVzIHByb2Nlc3NlZCBmb3IgY3VycmVudCBwcm90IGdycCAqLworCisJCXNnbCsrOworCQlqKys7CisKIAkJd2hpbGUgKCFwZ2RvbmUpIHsKIAkJCS8qIENoZWNrIHRvIHNlZSBpZiB3ZSByYW4gb3V0IG9mIHNwYWNlICovCi0JCQlpZiAobnVtX3NnZSA+PSBwaGJhLT5jZmdfdG90YWxfc2VnX2NudCkKKwkJCWlmICgobnVtX3NnZSA+PSBwaGJhLT5jZmdfdG90YWxfc2VnX2NudCkgJiYKKwkJCSAgICAhcGhiYS0+Y2ZnX3hwc2dsKQogCQkJCXJldHVybiBudW1fc2dlICsgMTsKIAogCQkJaWYgKCFzZ2RlKSB7CkBAIC0yMjc0LDYwICsyMzEyLDEwMSBAQCBscGZjX2JnX3NldHVwX3NnbF9wcm90KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IHNjc2lfY21uZCAqc2MsCiAJCQkJCQlfX2Z1bmNfXyk7CiAJCQkJcmV0dXJuIDA7CiAJCQl9Ci0JCQlzZ2wrKzsKLQkJCWRhdGFwaHlzYWRkciA9IHNnX2RtYV9hZGRyZXNzKHNnZGUpICsgc3BsaXRfb2Zmc2V0OwogCi0JCQlyZW1haW5kZXIgPSBzZ19kbWFfbGVuKHNnZGUpIC0gc3BsaXRfb2Zmc2V0OworCQkJaWYgKCEoKGogKyAxKSAlIHBoYmEtPmJvcmRlcl9zZ2VfbnVtKSkgeworCQkJCXNnbC0+d29yZDIgPSAwOwogCi0JCQlpZiAoKHN1YnRvdGFsICsgcmVtYWluZGVyKSA8PSBwcm90Z3JwX2J5dGVzKSB7Ci0JCQkJLyogd2UgY2FuIHVzZSB0aGlzIHdob2xlIGJ1ZmZlciAqLwotCQkJCWRtYV9sZW4gPSByZW1haW5kZXI7Ci0JCQkJc3BsaXRfb2Zmc2V0ID0gMDsKKwkJCQkvKiBzZXQgTFNQIHR5cGUgKi8KKwkJCQliZl9zZXQobHBmY19zbGk0X3NnZV90eXBlLCBzZ2wsCisJCQkJICAgICAgIExQRkNfU0dFX1RZUEVfTFNQKTsKIAotCQkJCWlmICgoc3VidG90YWwgKyByZW1haW5kZXIpID09IHByb3RncnBfYnl0ZXMpCi0JCQkJCXBnZG9uZSA9IDE7CisJCQkJc2dsX3h0cmEgPSBscGZjX2dldF9zZ2xfcGVyX2hkd3EocGhiYSwKKwkJCQkJCQkJIGxwZmNfY21kKTsKKworCQkJCWlmICh1bmxpa2VseSghc2dsX3h0cmEpKSB7CisJCQkJCWdvdG8gb3V0OworCQkJCX0gZWxzZSB7CisJCQkJCXNnbC0+YWRkcl9sbyA9IGNwdV90b19sZTMyKAorCQkJCQkgIHB1dFBhZGRyTG93KHNnbF94dHJhLT5kbWFfcGh5c19zZ2wpKTsKKwkJCQkJc2dsLT5hZGRyX2hpID0gY3B1X3RvX2xlMzIoCisJCQkJCSAgcHV0UGFkZHJIaWdoKHNnbF94dHJhLT5kbWFfcGh5c19zZ2wpKTsKKwkJCQl9CisKKwkJCQlzZ2wtPndvcmQyID0gY3B1X3RvX2xlMzIoc2dsLT53b3JkMik7CisJCQkJc2dsLT5zZ2VfbGVuID0gY3B1X3RvX2xlMzIoCisJCQkJCQkgICAgIHBoYmEtPmNmZ19zZ19kbWFfYnVmX3NpemUpOworCisJCQkJc2dsID0gKHN0cnVjdCBzbGk0X3NnZSAqKXNnbF94dHJhLT5kbWFfc2dsOwogCQkJfSBlbHNlIHsKLQkJCQkvKiBtdXN0IHNwbGl0IHRoaXMgYnVmZmVyIHdpdGggbmV4dCBwcm90IGdycCAqLwotCQkJCWRtYV9sZW4gPSBwcm90Z3JwX2J5dGVzIC0gc3VidG90YWw7Ci0JCQkJc3BsaXRfb2Zmc2V0ICs9IGRtYV9sZW47CisJCQkJZGF0YXBoeXNhZGRyID0gc2dfZG1hX2FkZHJlc3Moc2dkZSkgKworCQkJCQkJCQkgICBzcGxpdF9vZmZzZXQ7CisKKwkJCQlyZW1haW5kZXIgPSBzZ19kbWFfbGVuKHNnZGUpIC0gc3BsaXRfb2Zmc2V0OworCisJCQkJaWYgKChzdWJ0b3RhbCArIHJlbWFpbmRlcikgPD0gcHJvdGdycF9ieXRlcykgeworCQkJCQkvKiB3ZSBjYW4gdXNlIHRoaXMgd2hvbGUgYnVmZmVyICovCisJCQkJCWRtYV9sZW4gPSByZW1haW5kZXI7CisJCQkJCXNwbGl0X29mZnNldCA9IDA7CisKKwkJCQkJaWYgKChzdWJ0b3RhbCArIHJlbWFpbmRlcikgPT0KKwkJCQkJCQkJICBwcm90Z3JwX2J5dGVzKQorCQkJCQkJcGdkb25lID0gMTsKKwkJCQl9IGVsc2UgeworCQkJCQkvKiBtdXN0IHNwbGl0IHRoaXMgYnVmZmVyIHdpdGggbmV4dAorCQkJCQkgKiBwcm90IGdycAorCQkJCQkgKi8KKwkJCQkJZG1hX2xlbiA9IHByb3RncnBfYnl0ZXMgLSBzdWJ0b3RhbDsKKwkJCQkJc3BsaXRfb2Zmc2V0ICs9IGRtYV9sZW47CisJCQkJfQorCisJCQkJc3VidG90YWwgKz0gZG1hX2xlbjsKKworCQkJCXNnbC0+d29yZDIgPSAwOworCQkJCXNnbC0+YWRkcl9sbyA9IGNwdV90b19sZTMyKHB1dFBhZGRyTG93KAorCQkJCQkJCQkgZGF0YXBoeXNhZGRyKSk7CisJCQkJc2dsLT5hZGRyX2hpID0gY3B1X3RvX2xlMzIocHV0UGFkZHJIaWdoKAorCQkJCQkJCQkgZGF0YXBoeXNhZGRyKSk7CisJCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2VfbGFzdCwgc2dsLCAwKTsKKwkJCQliZl9zZXQobHBmY19zbGk0X3NnZV9vZmZzZXQsIHNnbCwgZG1hX29mZnNldCk7CisJCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2VfdHlwZSwgc2dsLAorCQkJCSAgICAgICBMUEZDX1NHRV9UWVBFX0RBVEEpOworCisJCQkJc2dsLT5zZ2VfbGVuID0gY3B1X3RvX2xlMzIoZG1hX2xlbik7CisJCQkJZG1hX29mZnNldCArPSBkbWFfbGVuOworCisJCQkJbnVtX3NnZSsrOworCQkJCWN1cnJfZGF0YSsrOworCisJCQkJaWYgKHNwbGl0X29mZnNldCkgeworCQkJCQlzZ2wrKzsKKwkJCQkJaisrOworCQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQkvKiBNb3ZlIHRvIHRoZSBuZXh0IHMvZyBzZWdtZW50IGlmIHBvc3NpYmxlICovCisJCQkJc2dkZSA9IHNnX25leHQoc2dkZSk7CisKKwkJCQlzZ2wrKzsKIAkJCX0KIAotCQkJc3VidG90YWwgKz0gZG1hX2xlbjsKLQotCQkJc2dsLT5hZGRyX2xvID0gY3B1X3RvX2xlMzIocHV0UGFkZHJMb3coZGF0YXBoeXNhZGRyKSk7Ci0JCQlzZ2wtPmFkZHJfaGkgPSBjcHVfdG9fbGUzMihwdXRQYWRkckhpZ2goZGF0YXBoeXNhZGRyKSk7Ci0JCQliZl9zZXQobHBmY19zbGk0X3NnZV9sYXN0LCBzZ2wsIDApOwotCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2Vfb2Zmc2V0LCBzZ2wsIGRtYV9vZmZzZXQpOwotCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2VfdHlwZSwgc2dsLCBMUEZDX1NHRV9UWVBFX0RBVEEpOwotCi0JCQlzZ2wtPnNnZV9sZW4gPSBjcHVfdG9fbGUzMihkbWFfbGVuKTsKLQkJCWRtYV9vZmZzZXQgKz0gZG1hX2xlbjsKLQotCQkJbnVtX3NnZSsrOwotCQkJY3Vycl9kYXRhKys7Ci0KLQkJCWlmIChzcGxpdF9vZmZzZXQpCi0JCQkJYnJlYWs7Ci0KLQkJCS8qIE1vdmUgdG8gdGhlIG5leHQgcy9nIHNlZ21lbnQgaWYgcG9zc2libGUgKi8KLQkJCXNnZGUgPSBzZ19uZXh0KHNnZGUpOworCQkJaisrOwogCQl9CiAKIAkJaWYgKHByb3Rncm91cF9vZmZzZXQpIHsKIAkJCS8qIHVwZGF0ZSB0aGUgcmVmZXJlbmNlIHRhZyAqLwogCQkJcmVmdGFnICs9IHByb3RncnBfYmxrczsKLQkJCXNnbCsrOwogCQkJY29udGludWU7CiAJCX0KIAogCQkvKiBhcmUgd2UgZG9uZSA/ICovCiAJCWlmIChjdXJyX3Byb3QgPT0gcHJvdGNudCkgeworCQkJLyogbWFyayB0aGUgbGFzdCBTR0wgKi8KKwkJCXNnbC0tOwogCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2VfbGFzdCwgc2dsLCAxKTsKIAkJCWFsbGRvbmUgPSAxOwogCQl9IGVsc2UgaWYgKGN1cnJfcHJvdCA8IHByb3RjbnQpIHsKIAkJCS8qIGFkdmFuY2UgdG8gbmV4dCBwcm90IGJ1ZmZlciAqLwogCQkJc2dwZSA9IHNnX25leHQoc2dwZSk7Ci0JCQlzZ2wrKzsKIAogCQkJLyogdXBkYXRlIHRoZSByZWZlcmVuY2UgdGFnICovCiAJCQlyZWZ0YWcgKz0gcHJvdGdycF9ibGtzOwpAQCAtMjQzMCw3ICsyNTA5LDEwIEBAIGxwZmNfYmdfc2NzaV9hZGp1c3RfZGwoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogICoKICAqIFRoaXMgaXMgdGhlIHByb3RlY3Rpb24vRElGIGF3YXJlIHZlcnNpb24gb2YKICAqIGxwZmNfc2NzaV9wcmVwX2RtYV9idWYoKS4gSXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRvIGNvbWJpbmUgdGhlCi0gKiB0d28gZnVuY3Rpb25zIGV2ZW50dWFsbHksIGJ1dCBmb3Igbm93LCBpdCdzIGhlcmUKKyAqIHR3byBmdW5jdGlvbnMgZXZlbnR1YWxseSwgYnV0IGZvciBub3csIGl0J3MgaGVyZS4KKyAqIFJFVFVSTlMgMCAtIFNVQ0NFU1MsCisgKiAgICAgICAgIDEgLSBGYWlsZWQgRE1BIG1hcCwgcmV0cnkuCisgKiAgICAgICAgIDIgLSBJbnZhbGlkIHNjc2kgY21kIG9yIHByb3QtdHlwZS4gRG8gbm90IHJldHkuCiAgKiovCiBzdGF0aWMgaW50CiBscGZjX2JnX3Njc2lfcHJlcF9kbWFfYnVmX3MzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKQEAgLTI0NDQsNiArMjUyNiw3IEBAIGxwZmNfYmdfc2NzaV9wcmVwX2RtYV9idWZfczMoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCWludCBkYXRhc2VnY250LCBwcm90c2VnY250LCBkYXRhZGlyID0gc2NzaV9jbW5kLT5zY19kYXRhX2RpcmVjdGlvbjsKIAlpbnQgcHJvdF9ncm91cF90eXBlID0gMDsKIAlpbnQgZmNwZGw7CisJaW50IHJldCA9IDE7CiAJc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0ID0gcGhiYS0+cHBvcnQ7CiAKIAkvKgpAQCAtMjQ2Nyw4ICsyNTUwLDExIEBAIGxwZmNfYmdfc2NzaV9wcmVwX2RtYV9idWZfczMoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCQlscGZjX2NtZC0+c2VnX2NudCA9IGRhdGFzZWdjbnQ7CiAKIAkJLyogRmlyc3QgY2hlY2sgaWYgZGF0YSBzZWdtZW50IGNvdW50IGZyb20gU0NTSSBMYXllciBpcyBnb29kICovCi0JCWlmIChscGZjX2NtZC0+c2VnX2NudCA+IHBoYmEtPmNmZ19zZ19zZWdfY250KQorCQlpZiAobHBmY19jbWQtPnNlZ19jbnQgPiBwaGJhLT5jZmdfc2dfc2VnX2NudCkgeworCQkJV0FSTl9PTl9PTkNFKGxwZmNfY21kLT5zZWdfY250ID4gcGhiYS0+Y2ZnX3NnX3NlZ19jbnQpOworCQkJcmV0ID0gMjsKIAkJCWdvdG8gZXJyOworCQl9CiAKIAkJcHJvdF9ncm91cF90eXBlID0gbHBmY19wcm90X2dyb3VwX3R5cGUocGhiYSwgc2NzaV9jbW5kKTsKIApAQCAtMjQ3NiwxNCArMjU2MiwxOCBAQCBscGZjX2JnX3Njc2lfcHJlcF9kbWFfYnVmX3MzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKIAkJY2FzZSBMUEZDX1BHX1RZUEVfTk9fRElGOgogCiAJCQkvKiBIZXJlIHdlIG5lZWQgdG8gYWRkIGEgUERFNSBhbmQgUERFNiB0byB0aGUgY291bnQgKi8KLQkJCWlmICgobHBmY19jbWQtPnNlZ19jbnQgKyAyKSA+IHBoYmEtPmNmZ190b3RhbF9zZWdfY250KQorCQkJaWYgKChscGZjX2NtZC0+c2VnX2NudCArIDIpID4gcGhiYS0+Y2ZnX3RvdGFsX3NlZ19jbnQpIHsKKwkJCQlyZXQgPSAyOwogCQkJCWdvdG8gZXJyOworCQkJfQogCiAJCQludW1fYmRlID0gbHBmY19iZ19zZXR1cF9icGwocGhiYSwgc2NzaV9jbW5kLCBicGwsCiAJCQkJCWRhdGFzZWdjbnQpOwogCQkJLyogd2Ugc2hvdWxkIGhhdmUgMiBvciBtb3JlIGVudHJpZXMgaW4gYnVmZmVyIGxpc3QgKi8KLQkJCWlmIChudW1fYmRlIDwgMikKKwkJCWlmIChudW1fYmRlIDwgMikgeworCQkJCXJldCA9IDI7CiAJCQkJZ290byBlcnI7CisJCQl9CiAJCQlicmVhazsKIAogCQljYXNlIExQRkNfUEdfVFlQRV9ESUZfQlVGOgpAQCAtMjUwNywxNSArMjU5NywxOSBAQCBscGZjX2JnX3Njc2lfcHJlcF9kbWFfYnVmX3MzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKIAkJCSAqIHByb3RlY3Rpb24gZGF0YSBzZWdtZW50LgogCQkJICovCiAJCQlpZiAoKGxwZmNfY21kLT5wcm90X3NlZ19jbnQgKiA0KSA+Ci0JCQkgICAgKHBoYmEtPmNmZ190b3RhbF9zZWdfY250IC0gMikpCisJCQkgICAgKHBoYmEtPmNmZ190b3RhbF9zZWdfY250IC0gMikpIHsKKwkJCQlyZXQgPSAyOwogCQkJCWdvdG8gZXJyOworCQkJfQogCiAJCQludW1fYmRlID0gbHBmY19iZ19zZXR1cF9icGxfcHJvdChwaGJhLCBzY3NpX2NtbmQsIGJwbCwKIAkJCQkJZGF0YXNlZ2NudCwgcHJvdHNlZ2NudCk7CiAJCQkvKiB3ZSBzaG91bGQgaGF2ZSAzIG9yIG1vcmUgZW50cmllcyBpbiBidWZmZXIgbGlzdCAqLwogCQkJaWYgKChudW1fYmRlIDwgMykgfHwKLQkJCSAgICAobnVtX2JkZSA+IHBoYmEtPmNmZ190b3RhbF9zZWdfY250KSkKKwkJCSAgICAobnVtX2JkZSA+IHBoYmEtPmNmZ190b3RhbF9zZWdfY250KSkgeworCQkJCXJldCA9IDI7CiAJCQkJZ290byBlcnI7CisJCQl9CiAJCQlicmVhazsKIAogCQljYXNlIExQRkNfUEdfVFlQRV9JTlZBTElEOgpAQCAtMjUyNiw3ICsyNjIwLDcgQEAgbHBmY19iZ19zY3NpX3ByZXBfZG1hX2J1Zl9zMyhzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCiAJCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19GQ1AsCiAJCQkJCSI5MDIyIFVuZXhwZWN0ZWQgcHJvdGVjdGlvbiBncm91cCAlaVxuIiwKIAkJCQkJcHJvdF9ncm91cF90eXBlKTsKLQkJCXJldHVybiAxOworCQkJcmV0dXJuIDI7CiAJCX0KIAl9CiAKQEAgLTI1NzYsNyArMjY3MCw3IEBAIGxwZmNfYmdfc2NzaV9wcmVwX2RtYV9idWZfczMoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCiAJbHBmY19jbWQtPnNlZ19jbnQgPSAwOwogCWxwZmNfY21kLT5wcm90X3NlZ19jbnQgPSAwOwotCXJldHVybiAxOworCXJldHVybiByZXQ7CiB9CiAKIC8qCkBAIC0yODA5LDI2ICsyOTAzLDYgQEAgbHBmY19wYXJzZV9iZ19lcnIoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfY21kLAogCXVpbnQzMl90IGJnc3RhdCA9IGJnZi0+YmdzdGF0OwogCXVpbnQ2NF90IGZhaWxpbmdfc2VjdG9yID0gMDsKIAotCXNwaW5fbG9jaygmX2R1bXBfYnVmX2xvY2spOwotCWlmICghX2R1bXBfYnVmX2RvbmUpIHsKLQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfQkcsICAiOTA3MCBCTEtHUkQ6IFNhdmluZyIKLQkJCSIgRGF0YSBmb3IgJXUgYmxvY2tzIHRvIGRlYnVnZnNcbiIsCi0JCQkJKGNtZC0+Y21uZFs3XSA8PCA4IHwgY21kLT5jbW5kWzhdKSk7Ci0JCWxwZmNfZGVidWdfc2F2ZV9kYXRhKHBoYmEsIGNtZCk7Ci0KLQkJLyogSWYgd2UgaGF2ZSBhIHByb3Qgc2dsLCBzYXZlIHRoZSBESUYgYnVmZmVyICovCi0JCWlmIChscGZjX3Byb3RfZ3JvdXBfdHlwZShwaGJhLCBjbWQpID09Ci0JCQkJTFBGQ19QR19UWVBFX0RJRl9CVUYpIHsKLQkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0JHLCAiOTA3MSBCTEtHUkQ6ICIKLQkJCQkiU2F2aW5nIERJRiBmb3IgJXUgYmxvY2tzIHRvIGRlYnVnZnNcbiIsCi0JCQkJKGNtZC0+Y21uZFs3XSA8PCA4IHwgY21kLT5jbW5kWzhdKSk7Ci0JCQlscGZjX2RlYnVnX3NhdmVfZGlmKHBoYmEsIGNtZCk7Ci0JCX0KLQotCQlfZHVtcF9idWZfZG9uZSA9IDE7Ci0JfQotCXNwaW5fdW5sb2NrKCZfZHVtcF9idWZfbG9jayk7Ci0KIAlpZiAobHBmY19iZ3NfZ2V0X2ludmFsaWRfcHJvZihiZ3N0YXQpKSB7CiAJCWNtZC0+cmVzdWx0ID0gRElEX0VSUk9SIDw8IDE2OwogCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9XQVJOSU5HLCBMT0dfRkNQIHwgTE9HX0JHLApAQCAtMjk2Miw3ICszMDM2LDggQEAgbHBmY19wYXJzZV9iZ19lcnIoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfY21kLAogICogZmllbGQgb2YgQGxwZmNfY21kIGZvciBkZXZpY2Ugd2l0aCBTTEktNCBpbnRlcmZhY2Ugc3BlYy4KICAqCiAgKiBSZXR1cm4gY29kZXM6Ci0gKgkxIC0gRXJyb3IKKyAqCTIgLSBFcnJvciAtIERvIG5vdCByZXRyeQorICoJMSAtIEVycm9yIC0gUmV0cnkKICAqCTAgLSBTdWNjZXNzCiAgKiovCiBzdGF0aWMgaW50CkBAIC0yOTc4LDggKzMwNTMsMTAgQEAgbHBmY19zY3NpX3ByZXBfZG1hX2J1Zl9zNChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX2lvX2J1ZiAqbHBmY19jbWQpCiAJdWludDMyX3QgbnVtX2JkZSA9IDA7CiAJdWludDMyX3QgZG1hX2xlbjsKIAl1aW50MzJfdCBkbWFfb2Zmc2V0ID0gMDsKLQlpbnQgbnNlZzsKKwlpbnQgbnNlZywgaSwgajsKIAlzdHJ1Y3QgdWxwX2JkZTY0ICpiZGU7CisJYm9vbCBsc3BfanVzdF9zZXQgPSBmYWxzZTsKKwlzdHJ1Y3Qgc2xpNF9oeWJyaWRfc2dsICpzZ2xfeHRyYSA9IE5VTEw7CiAKIAkvKgogCSAqIFRoZXJlIGFyZSB0aHJlZSBwb3NzaWJpbGl0aWVzIGhlcmUgLSB1c2Ugc2NhdHRlci1nYXRoZXIgc2VnbWVudCwgdXNlCkBAIC0zMDA2LDE1ICszMDgzLDE3IEBAIGxwZmNfc2NzaV9wcmVwX2RtYV9idWZfczQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfY21kKQogCQlzZ2wgKz0gMTsKIAkJZmlyc3RfZGF0YV9zZ2wgPSBzZ2w7CiAJCWxwZmNfY21kLT5zZWdfY250ID0gbnNlZzsKLQkJaWYgKGxwZmNfY21kLT5zZWdfY250ID4gcGhiYS0+Y2ZnX3NnX3NlZ19jbnQpIHsKKwkJaWYgKCFwaGJhLT5jZmdfeHBzZ2wgJiYKKwkJICAgIGxwZmNfY21kLT5zZWdfY250ID4gcGhiYS0+Y2ZnX3NnX3NlZ19jbnQpIHsKIAkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0VSUiwgTE9HX0JHLCAiOTA3NCBCTEtHUkQ6IgogCQkJCSIgJXM6IFRvbyBtYW55IHNnIHNlZ21lbnRzIGZyb20gIgogCQkJCSJkbWFfbWFwX3NnLiAgQ29uZmlnICVkLCBzZWdfY250ICVkXG4iLAogCQkJCV9fZnVuY19fLCBwaGJhLT5jZmdfc2dfc2VnX2NudCwKIAkJCSAgICAgICBscGZjX2NtZC0+c2VnX2NudCk7CisJCQlXQVJOX09OX09OQ0UobHBmY19jbWQtPnNlZ19jbnQgPiBwaGJhLT5jZmdfc2dfc2VnX2NudCk7CiAJCQlscGZjX2NtZC0+c2VnX2NudCA9IDA7CiAJCQlzY3NpX2RtYV91bm1hcChzY3NpX2NtbmQpOwotCQkJcmV0dXJuIDE7CisJCQlyZXR1cm4gMjsKIAkJfQogCiAJCS8qCkBAIC0zMDI2LDIyICszMTA1LDgwIEBAIGxwZmNfc2NzaV9wcmVwX2RtYV9idWZfczQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfY21kKQogCQkgKiB0aGUgSU9DQi4gSWYgaXQgY2FuJ3QgdGhlbiB0aGUgQkRFcyBnZXQgYWRkZWQgdG8gYSBCUEwgYXMgaXQKIAkJICogZG9lcyBmb3IgU0xJLTIgbW9kZS4KIAkJICovCi0JCXNjc2lfZm9yX2VhY2hfc2coc2NzaV9jbW5kLCBzZ2VsLCBuc2VnLCBudW1fYmRlKSB7Ci0JCQlwaHlzYWRkciA9IHNnX2RtYV9hZGRyZXNzKHNnZWwpOwotCQkJZG1hX2xlbiA9IHNnX2RtYV9sZW4oc2dlbCk7Ci0JCQlzZ2wtPmFkZHJfbG8gPSBjcHVfdG9fbGUzMihwdXRQYWRkckxvdyhwaHlzYWRkcikpOwotCQkJc2dsLT5hZGRyX2hpID0gY3B1X3RvX2xlMzIocHV0UGFkZHJIaWdoKHBoeXNhZGRyKSk7Ci0JCQlzZ2wtPndvcmQyID0gbGUzMl90b19jcHUoc2dsLT53b3JkMik7Ci0JCQlpZiAoKG51bV9iZGUgKyAxKSA9PSBuc2VnKQorCisJCS8qIGZvciB0cmFja2luZyBzZWdtZW50IGJvdW5kYXJpZXMgKi8KKwkJc2dlbCA9IHNjc2lfc2dsaXN0KHNjc2lfY21uZCk7CisJCWogPSAyOworCQlmb3IgKGkgPSAwOyBpIDwgbnNlZzsgaSsrKSB7CisJCQlzZ2wtPndvcmQyID0gMDsKKwkJCWlmICgobnVtX2JkZSArIDEpID09IG5zZWcpIHsKIAkJCQliZl9zZXQobHBmY19zbGk0X3NnZV9sYXN0LCBzZ2wsIDEpOwotCQkJZWxzZQorCQkJCWJmX3NldChscGZjX3NsaTRfc2dlX3R5cGUsIHNnbCwKKwkJCQkgICAgICAgTFBGQ19TR0VfVFlQRV9EQVRBKTsKKwkJCX0gZWxzZSB7CiAJCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2VfbGFzdCwgc2dsLCAwKTsKLQkJCWJmX3NldChscGZjX3NsaTRfc2dlX29mZnNldCwgc2dsLCBkbWFfb2Zmc2V0KTsKLQkJCWJmX3NldChscGZjX3NsaTRfc2dlX3R5cGUsIHNnbCwgTFBGQ19TR0VfVFlQRV9EQVRBKTsKLQkJCXNnbC0+d29yZDIgPSBjcHVfdG9fbGUzMihzZ2wtPndvcmQyKTsKLQkJCXNnbC0+c2dlX2xlbiA9IGNwdV90b19sZTMyKGRtYV9sZW4pOwotCQkJZG1hX29mZnNldCArPSBkbWFfbGVuOwotCQkJc2dsKys7CisKKwkJCQkvKiBkbyB3ZSBuZWVkIHRvIGV4cGFuZCB0aGUgc2VnbWVudCAqLworCQkJCWlmICghbHNwX2p1c3Rfc2V0ICYmCisJCQkJICAgICEoKGogKyAxKSAlIHBoYmEtPmJvcmRlcl9zZ2VfbnVtKSAmJgorCQkJCSAgICAoKG5zZWcgLSAxKSAhPSBpKSkgeworCQkJCQkvKiBzZXQgTFNQIHR5cGUgKi8KKwkJCQkJYmZfc2V0KGxwZmNfc2xpNF9zZ2VfdHlwZSwgc2dsLAorCQkJCQkgICAgICAgTFBGQ19TR0VfVFlQRV9MU1ApOworCisJCQkJCXNnbF94dHJhID0gbHBmY19nZXRfc2dsX3Blcl9oZHdxKAorCQkJCQkJCXBoYmEsIGxwZmNfY21kKTsKKworCQkJCQlpZiAodW5saWtlbHkoIXNnbF94dHJhKSkgeworCQkJCQkJbHBmY19jbWQtPnNlZ19jbnQgPSAwOworCQkJCQkJc2NzaV9kbWFfdW5tYXAoc2NzaV9jbW5kKTsKKwkJCQkJCXJldHVybiAxOworCQkJCQl9CisJCQkJCXNnbC0+YWRkcl9sbyA9IGNwdV90b19sZTMyKHB1dFBhZGRyTG93KAorCQkJCQkJICAgICAgIHNnbF94dHJhLT5kbWFfcGh5c19zZ2wpKTsKKwkJCQkJc2dsLT5hZGRyX2hpID0gY3B1X3RvX2xlMzIocHV0UGFkZHJIaWdoKAorCQkJCQkJICAgICAgIHNnbF94dHJhLT5kbWFfcGh5c19zZ2wpKTsKKworCQkJCX0gZWxzZSB7CisJCQkJCWJmX3NldChscGZjX3NsaTRfc2dlX3R5cGUsIHNnbCwKKwkJCQkJICAgICAgIExQRkNfU0dFX1RZUEVfREFUQSk7CisJCQkJfQorCQkJfQorCisJCQlpZiAoIShiZl9nZXQobHBmY19zbGk0X3NnZV90eXBlLCBzZ2wpICYKKwkJCQkgICAgIExQRkNfU0dFX1RZUEVfTFNQKSkgeworCQkJCWlmICgobnNlZyAtIDEpID09IGkpCisJCQkJCWJmX3NldChscGZjX3NsaTRfc2dlX2xhc3QsIHNnbCwgMSk7CisKKwkJCQlwaHlzYWRkciA9IHNnX2RtYV9hZGRyZXNzKHNnZWwpOworCQkJCWRtYV9sZW4gPSBzZ19kbWFfbGVuKHNnZWwpOworCQkJCXNnbC0+YWRkcl9sbyA9IGNwdV90b19sZTMyKHB1dFBhZGRyTG93KAorCQkJCQkJCSAgIHBoeXNhZGRyKSk7CisJCQkJc2dsLT5hZGRyX2hpID0gY3B1X3RvX2xlMzIocHV0UGFkZHJIaWdoKAorCQkJCQkJCSAgIHBoeXNhZGRyKSk7CisKKwkJCQliZl9zZXQobHBmY19zbGk0X3NnZV9vZmZzZXQsIHNnbCwgZG1hX29mZnNldCk7CisJCQkJc2dsLT53b3JkMiA9IGNwdV90b19sZTMyKHNnbC0+d29yZDIpOworCQkJCXNnbC0+c2dlX2xlbiA9IGNwdV90b19sZTMyKGRtYV9sZW4pOworCisJCQkJZG1hX29mZnNldCArPSBkbWFfbGVuOworCQkJCXNnZWwgPSBzZ19uZXh0KHNnZWwpOworCisJCQkJc2dsKys7CisJCQkJbHNwX2p1c3Rfc2V0ID0gZmFsc2U7CisKKwkJCX0gZWxzZSB7CisJCQkJc2dsLT53b3JkMiA9IGNwdV90b19sZTMyKHNnbC0+d29yZDIpOworCQkJCXNnbC0+c2dlX2xlbiA9IGNwdV90b19sZTMyKAorCQkJCQkJICAgICBwaGJhLT5jZmdfc2dfZG1hX2J1Zl9zaXplKTsKKworCQkJCXNnbCA9IChzdHJ1Y3Qgc2xpNF9zZ2UgKilzZ2xfeHRyYS0+ZG1hX3NnbDsKKwkJCQlpID0gaSAtIDE7CisKKwkJCQlsc3BfanVzdF9zZXQgPSB0cnVlOworCQkJfQorCisJCQlqKys7CiAJCX0KIAkJLyoKIAkJICogU2V0dXAgdGhlIGZpcnN0IFBheWxvYWQgQkRFLiBGb3IgRkNvRSB3ZSBqdXN0IGtleSBvZmYKQEAgLTMxMTAsNiArMzI0NywxMCBAQCBscGZjX3Njc2lfcHJlcF9kbWFfYnVmX3M0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9fYnVmICpscGZjX2NtZCkKICAqIFRoaXMgaXMgdGhlIHByb3RlY3Rpb24vRElGIGF3YXJlIHZlcnNpb24gb2YKICAqIGxwZmNfc2NzaV9wcmVwX2RtYV9idWYoKS4gSXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRvIGNvbWJpbmUgdGhlCiAgKiB0d28gZnVuY3Rpb25zIGV2ZW50dWFsbHksIGJ1dCBmb3Igbm93LCBpdCdzIGhlcmUKKyAqIFJldHVybiBjb2RlczoKKyAqCTIgLSBFcnJvciAtIERvIG5vdCByZXRyeQorICoJMSAtIEVycm9yIC0gUmV0cnkKKyAqCTAgLSBTdWNjZXNzCiAgKiovCiBzdGF0aWMgaW50CiBscGZjX2JnX3Njc2lfcHJlcF9kbWFfYnVmX3M0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKQEAgLTMxMjMsNiArMzI2NCw3IEBAIGxwZmNfYmdfc2NzaV9wcmVwX2RtYV9idWZfczQoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCWludCBkYXRhc2VnY250LCBwcm90c2VnY250LCBkYXRhZGlyID0gc2NzaV9jbW5kLT5zY19kYXRhX2RpcmVjdGlvbjsKIAlpbnQgcHJvdF9ncm91cF90eXBlID0gMDsKIAlpbnQgZmNwZGw7CisJaW50IHJldCA9IDE7CiAJc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0ID0gcGhiYS0+cHBvcnQ7CiAKIAkvKgpAQCAtMzE1MiwyMyArMzI5NCwzMyBAQCBscGZjX2JnX3Njc2lfcHJlcF9kbWFfYnVmX3M0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKIAkJbHBmY19jbWQtPnNlZ19jbnQgPSBkYXRhc2VnY250OwogCiAJCS8qIEZpcnN0IGNoZWNrIGlmIGRhdGEgc2VnbWVudCBjb3VudCBmcm9tIFNDU0kgTGF5ZXIgaXMgZ29vZCAqLwotCQlpZiAobHBmY19jbWQtPnNlZ19jbnQgPiBwaGJhLT5jZmdfc2dfc2VnX2NudCkKKwkJaWYgKGxwZmNfY21kLT5zZWdfY250ID4gcGhiYS0+Y2ZnX3NnX3NlZ19jbnQgJiYKKwkJICAgICFwaGJhLT5jZmdfeHBzZ2wpIHsKKwkJCVdBUk5fT05fT05DRShscGZjX2NtZC0+c2VnX2NudCA+IHBoYmEtPmNmZ19zZ19zZWdfY250KTsKKwkJCXJldCA9IDI7CiAJCQlnb3RvIGVycjsKKwkJfQogCiAJCXByb3RfZ3JvdXBfdHlwZSA9IGxwZmNfcHJvdF9ncm91cF90eXBlKHBoYmEsIHNjc2lfY21uZCk7CiAKIAkJc3dpdGNoIChwcm90X2dyb3VwX3R5cGUpIHsKIAkJY2FzZSBMUEZDX1BHX1RZUEVfTk9fRElGOgogCQkJLyogSGVyZSB3ZSBuZWVkIHRvIGFkZCBhIERJU0VFRCB0byB0aGUgY291bnQgKi8KLQkJCWlmICgobHBmY19jbWQtPnNlZ19jbnQgKyAxKSA+IHBoYmEtPmNmZ190b3RhbF9zZWdfY250KQorCQkJaWYgKCgobHBmY19jbWQtPnNlZ19jbnQgKyAxKSA+CisJCQkJCXBoYmEtPmNmZ190b3RhbF9zZWdfY250KSAmJgorCQkJICAgICFwaGJhLT5jZmdfeHBzZ2wpIHsKKwkJCQlyZXQgPSAyOwogCQkJCWdvdG8gZXJyOworCQkJfQogCiAJCQludW1fc2dlID0gbHBmY19iZ19zZXR1cF9zZ2wocGhiYSwgc2NzaV9jbW5kLCBzZ2wsCi0JCQkJCWRhdGFzZWdjbnQpOworCQkJCQlkYXRhc2VnY250LCBscGZjX2NtZCk7CiAKIAkJCS8qIHdlIHNob3VsZCBoYXZlIDIgb3IgbW9yZSBlbnRyaWVzIGluIGJ1ZmZlciBsaXN0ICovCi0JCQlpZiAobnVtX3NnZSA8IDIpCisJCQlpZiAobnVtX3NnZSA8IDIpIHsKKwkJCQlyZXQgPSAyOwogCQkJCWdvdG8gZXJyOworCQkJfQogCQkJYnJlYWs7CiAKIAkJY2FzZSBMUEZDX1BHX1RZUEVfRElGX0JVRjoKQEAgLTMxOTAsMTcgKzMzNDIsMjMgQEAgbHBmY19iZ19zY3NpX3ByZXBfZG1hX2J1Zl9zNChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCiAJCQkgKiBUaGVyZSBpcyBhIG1pbmltdW4gb2YgMyBTR0VzIHVzZWQgZm9yIGV2ZXJ5CiAJCQkgKiBwcm90ZWN0aW9uIGRhdGEgc2VnbWVudC4KIAkJCSAqLwotCQkJaWYgKChscGZjX2NtZC0+cHJvdF9zZWdfY250ICogMykgPgotCQkJICAgIChwaGJhLT5jZmdfdG90YWxfc2VnX2NudCAtIDIpKQorCQkJaWYgKCgobHBmY19jbWQtPnByb3Rfc2VnX2NudCAqIDMpID4KKwkJCQkJKHBoYmEtPmNmZ190b3RhbF9zZWdfY250IC0gMikpICYmCisJCQkgICAgIXBoYmEtPmNmZ194cHNnbCkgeworCQkJCXJldCA9IDI7CiAJCQkJZ290byBlcnI7CisJCQl9CiAKIAkJCW51bV9zZ2UgPSBscGZjX2JnX3NldHVwX3NnbF9wcm90KHBoYmEsIHNjc2lfY21uZCwgc2dsLAotCQkJCQlkYXRhc2VnY250LCBwcm90c2VnY250KTsKKwkJCQkJZGF0YXNlZ2NudCwgcHJvdHNlZ2NudCwgbHBmY19jbWQpOwogCiAJCQkvKiB3ZSBzaG91bGQgaGF2ZSAzIG9yIG1vcmUgZW50cmllcyBpbiBidWZmZXIgbGlzdCAqLwotCQkJaWYgKChudW1fc2dlIDwgMykgfHwKLQkJCSAgICAobnVtX3NnZSA+IHBoYmEtPmNmZ190b3RhbF9zZWdfY250KSkKKwkJCWlmIChudW1fc2dlIDwgMyB8fAorCQkJICAgIChudW1fc2dlID4gcGhiYS0+Y2ZnX3RvdGFsX3NlZ19jbnQgJiYKKwkJCSAgICAgIXBoYmEtPmNmZ194cHNnbCkpIHsKKwkJCQlyZXQgPSAyOwogCQkJCWdvdG8gZXJyOworCQkJfQogCQkJYnJlYWs7CiAKIAkJY2FzZSBMUEZDX1BHX1RZUEVfSU5WQUxJRDoKQEAgLTMyMTEsNyArMzM2OSw3IEBAIGxwZmNfYmdfc2NzaV9wcmVwX2RtYV9idWZfczQoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fRVJSLCBMT0dfRkNQLAogCQkJCQkiOTA4MyBVbmV4cGVjdGVkIHByb3RlY3Rpb24gZ3JvdXAgJWlcbiIsCiAJCQkJCXByb3RfZ3JvdXBfdHlwZSk7Ci0JCQlyZXR1cm4gMTsKKwkJCXJldHVybiAyOwogCQl9CiAJfQogCkBAIC0zMjczLDcgKzM0MzEsNyBAQCBscGZjX2JnX3Njc2lfcHJlcF9kbWFfYnVmX3M0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKIAogCWxwZmNfY21kLT5zZWdfY250ID0gMDsKIAlscGZjX2NtZC0+cHJvdF9zZWdfY250ID0gMDsKLQlyZXR1cm4gMTsKKwlyZXR1cm4gcmV0OwogfQogCiAvKioKQEAgLTM4MzksNyArMzk5Nyw3IEBAIGxwZmNfc2NzaV9jbWRfaW9jYl9jbXBsKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9jYnEgKnBJb2NiSW4sCiAJCXVpbnQzMl90ICpscCA9ICh1aW50MzJfdCAqKWNtZC0+c2Vuc2VfYnVmZmVyOwogCiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fSU5GTywgTE9HX0ZDUCwKLQkJCQkgIjA3MTAgSW9kb25lIDwlZC8lbGx1PiBjbWQgJXAsIGVycm9yICIKKwkJCQkgIjA3MTAgSW9kb25lIDwlZC8lbGx1PiBjbWQgeCVweCwgZXJyb3IgIgogCQkJCSAieCV4IFNOUyB4JXggeCV4IERhdGE6IHgleCB4JXhcbiIsCiAJCQkJIGNtZC0+ZGV2aWNlLT5pZCwgY21kLT5kZXZpY2UtPmx1biwgY21kLAogCQkJCSBjbWQtPnJlc3VsdCwgKmxwLCAqKGxwICsgMyksIGNtZC0+cmV0cmllcywKQEAgLTQ0NTQsOCArNDYxMiwxMiBAQCBscGZjX3F1ZXVlY29tbWFuZChzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCwgc3RydWN0IHNjc2lfY21uZCAqY21uZCkKIAkJZXJyID0gbHBmY19zY3NpX3ByZXBfZG1hX2J1ZihwaGJhLCBscGZjX2NtZCk7CiAJfQogCi0JaWYgKGVycikKKwlpZiAoZXJyID09IDIpIHsKKwkJY21uZC0+cmVzdWx0ID0gRElEX0VSUk9SIDw8IDE2OworCQlnb3RvIG91dF9mYWlsX2NvbW1hbmRfcmVsZWFzZV9idWY7CisJfSBlbHNlIGlmIChlcnIpIHsKIAkJZ290byBvdXRfaG9zdF9idXN5X2ZyZWVfYnVmOworCX0KIAogCWxwZmNfc2NzaV9wcmVwX2NtbmQodnBvcnQsIGxwZmNfY21kLCBuZGxwKTsKIApAQCAtNDUyNiw2ICs0Njg4LDkgQEAgbHBmY19xdWV1ZWNvbW1hbmQoc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QsIHN0cnVjdCBzY3NpX2NtbmQgKmNtbmQpCiAgb3V0X3RndF9idXN5OgogCXJldHVybiBTQ1NJX01MUVVFVUVfVEFSR0VUX0JVU1k7CiAKKyBvdXRfZmFpbF9jb21tYW5kX3JlbGVhc2VfYnVmOgorCWxwZmNfcmVsZWFzZV9zY3NpX2J1ZihwaGJhLCBscGZjX2NtZCk7CisKICBvdXRfZmFpbF9jb21tYW5kOgogCWNtbmQtPnNjc2lfZG9uZShjbW5kKTsKIAlyZXR1cm4gMDsKQEAgLTQ1NjgsNyArNDczMyw3IEBAIGxwZmNfYWJvcnRfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpjbW5kKQogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnBoYmEtPmhiYWxvY2ssIGZsYWdzKTsKIAkvKiBkcml2ZXIgcXVldWVkIGNvbW1hbmRzIGFyZSBpbiBwcm9jZXNzIG9mIGJlaW5nIGZsdXNoZWQgKi8KLQlpZiAocGhiYS0+aGJhX2ZsYWcgJiBIQkFfRkNQX0lPUV9GTFVTSCkgeworCWlmIChwaGJhLT5oYmFfZmxhZyAmIEhCQV9JT1FfRkxVU0gpIHsKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9XQVJOSU5HLCBMT0dfRkNQLAogCQkJIjMxNjggU0NTSSBMYXllciBhYm9ydCByZXF1ZXN0ZWQgSS9PIGhhcyBiZWVuICIKIAkJCSJmbHVzaGVkIGJ5IExMRC5cbiIpOwpAQCAtNDU4OSw3ICs0NzU0LDcgQEAgbHBmY19hYm9ydF9oYW5kbGVyKHN0cnVjdCBzY3NpX2NtbmQgKmNtbmQpCiAKIAlpb2NiID0gJmxwZmNfY21kLT5jdXJfaW9jYnE7CiAJaWYgKHBoYmEtPnNsaV9yZXYgPT0gTFBGQ19TTElfUkVWNCkgewotCQlwcmluZ19zNCA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbaW9jYi0+aGJhX3dxaWR4XS5mY3Bfd3EtPnByaW5nOworCQlwcmluZ19zNCA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbaW9jYi0+aGJhX3dxaWR4XS5pb193cS0+cHJpbmc7CiAJCWlmICghcHJpbmdfczQpIHsKIAkJCXJldCA9IEZBSUxFRDsKIAkJCWdvdG8gb3V0X3VubG9ja19idWY7CkBAIC00OTU2LDcgKzUxMjEsNyBAQCBscGZjX2Noa190Z3RfbWFwcGVkKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwgc3RydWN0IHNjc2lfY21uZCAqY21uZCkKIAlyZGF0YSA9IGxwZmNfcnBvcnRfZGF0YV9mcm9tX3Njc2lfZGV2aWNlKGNtbmQtPmRldmljZSk7CiAJaWYgKCFyZGF0YSkgewogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0lORk8sIExPR19GQ1AsCi0JCQkiMDc5NyBUZ3QgTWFwIHJwb3J0IGZhaWx1cmU6IHJkYXRhIHglcFxuIiwgcmRhdGEpOworCQkJIjA3OTcgVGd0IE1hcCBycG9ydCBmYWlsdXJlOiByZGF0YSB4JXB4XG4iLCByZGF0YSk7CiAJCXJldHVybiBGQUlMRUQ7CiAJfQogCXBub2RlID0gcmRhdGEtPnBub2RlOwpAQCAtNTA1NCw3ICs1MjE5LDcgQEAgbHBmY19kZXZpY2VfcmVzZXRfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpjbW5kKQogCXJkYXRhID0gbHBmY19ycG9ydF9kYXRhX2Zyb21fc2NzaV9kZXZpY2UoY21uZC0+ZGV2aWNlKTsKIAlpZiAoIXJkYXRhIHx8ICFyZGF0YS0+cG5vZGUpIHsKIAkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19GQ1AsCi0JCQkJICIwNzk4IERldmljZSBSZXNldCByZGF0YSBmYWlsdXJlOiByZGF0YSB4JXBcbiIsCisJCQkJICIwNzk4IERldmljZSBSZXNldCByZGF0YSBmYWlsdXJlOiByZGF0YSB4JXB4XG4iLAogCQkJCSByZGF0YSk7CiAJCXJldHVybiBGQUlMRUQ7CiAJfQpAQCAtNTA2Niw3ICs1MjMxLDcgQEAgbHBmY19kZXZpY2VfcmVzZXRfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpjbW5kKQogCXN0YXR1cyA9IGxwZmNfY2hrX3RndF9tYXBwZWQodnBvcnQsIGNtbmQpOwogCWlmIChzdGF0dXMgPT0gRkFJTEVEKSB7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fRVJSLCBMT0dfRkNQLAotCQkJIjA3MjEgRGV2aWNlIFJlc2V0IHJwb3J0IGZhaWx1cmU6IHJkYXRhIHglcFxuIiwgcmRhdGEpOworCQkJIjA3MjEgRGV2aWNlIFJlc2V0IHJwb3J0IGZhaWx1cmU6IHJkYXRhIHglcHhcbiIsIHJkYXRhKTsKIAkJcmV0dXJuIEZBSUxFRDsKIAl9CiAKQEAgLTUxMjUsNyArNTI5MCw3IEBAIGxwZmNfdGFyZ2V0X3Jlc2V0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21uZCkKIAlyZGF0YSA9IGxwZmNfcnBvcnRfZGF0YV9mcm9tX3Njc2lfZGV2aWNlKGNtbmQtPmRldmljZSk7CiAJaWYgKCFyZGF0YSB8fCAhcmRhdGEtPnBub2RlKSB7CiAJCWxwZmNfcHJpbnRmX3Zsb2codnBvcnQsIEtFUk5fRVJSLCBMT0dfRkNQLAotCQkJCSAiMDc5OSBUYXJnZXQgUmVzZXQgcmRhdGEgZmFpbHVyZTogcmRhdGEgeCVwXG4iLAorCQkJCSAiMDc5OSBUYXJnZXQgUmVzZXQgcmRhdGEgZmFpbHVyZTogcmRhdGEgeCVweFxuIiwKIAkJCQkgcmRhdGEpOwogCQlyZXR1cm4gRkFJTEVEOwogCX0KQEAgLTUxMzcsNyArNTMwMiw3IEBAIGxwZmNfdGFyZ2V0X3Jlc2V0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21uZCkKIAlzdGF0dXMgPSBscGZjX2Noa190Z3RfbWFwcGVkKHZwb3J0LCBjbW5kKTsKIAlpZiAoc3RhdHVzID09IEZBSUxFRCkgewogCQlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0VSUiwgTE9HX0ZDUCwKLQkJCSIwNzIyIFRhcmdldCBSZXNldCBycG9ydCBmYWlsdXJlOiByZGF0YSB4JXBcbiIsIHJkYXRhKTsKKwkJCSIwNzIyIFRhcmdldCBSZXNldCBycG9ydCBmYWlsdXJlOiByZGF0YSB4JXB4XG4iLCByZGF0YSk7CiAJCWlmIChwbm9kZSkgewogCQkJc3Bpbl9sb2NrX2lycShzaG9zdC0+aG9zdF9sb2NrKTsKIAkJCXBub2RlLT5ubHBfZmxhZyAmPSB+TkxQX05QUl9BRElTQzsKQEAgLTUyOTUsMTggKzU0NjAsMjAgQEAgbHBmY19ob3N0X3Jlc2V0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21uZCkKIAlscGZjX29mZmxpbmUocGhiYSk7CiAJcmMgPSBscGZjX3NsaV9icmRyZXN0YXJ0KHBoYmEpOwogCWlmIChyYykKLQkJcmV0ID0gRkFJTEVEOworCQlnb3RvIGVycm9yOworCiAJcmMgPSBscGZjX29ubGluZShwaGJhKTsKIAlpZiAocmMpCi0JCXJldCA9IEZBSUxFRDsKKwkJZ290byBlcnJvcjsKKwogCWxwZmNfdW5ibG9ja19tZ210X2lvKHBoYmEpOwogCi0JaWYgKHJldCA9PSBGQUlMRUQpIHsKLQkJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19GQ1AsCi0JCQkJICIzMzIzIEZhaWxlZCBob3N0IHJlc2V0LCBicmluZyBpdCBvZmZsaW5lXG4iKTsKLQkJbHBmY19zbGk0X29mZmxpbmVfZXJhdHQocGhiYSk7Ci0JfQogCXJldHVybiByZXQ7CitlcnJvcjoKKwlscGZjX3ByaW50Zl92bG9nKHZwb3J0LCBLRVJOX0VSUiwgTE9HX0ZDUCwKKwkJCSAiMzMyMyBGYWlsZWQgaG9zdCByZXNldFxuIik7CisJbHBmY191bmJsb2NrX21nbXRfaW8ocGhiYSk7CisJcmV0dXJuIEZBSUxFRDsKIH0KIAogLyoqCkBAIC01ODcwLDcgKzYwMzcsNyBAQCBzdHJ1Y3Qgc2NzaV9ob3N0X3RlbXBsYXRlIGxwZmNfdGVtcGxhdGVfbm9faHIgPSB7CiAJLnNnX3RhYmxlc2l6ZQkJPSBMUEZDX0RFRkFVTFRfU0dfU0VHX0NOVCwKIAkuY21kX3Blcl9sdW4JCT0gTFBGQ19DTURfUEVSX0xVTiwKIAkuc2hvc3RfYXR0cnMJCT0gbHBmY19oYmFfYXR0cnMsCi0JLm1heF9zZWN0b3JzCQk9IDB4RkZGRiwKKwkubWF4X3NlY3RvcnMJCT0gMHhGRkZGRkZGRiwKIAkudmVuZG9yX2lkCQk9IExQRkNfTkxfVkVORE9SX0lELAogCS5jaGFuZ2VfcXVldWVfZGVwdGgJPSBzY3NpX2NoYW5nZV9xdWV1ZV9kZXB0aCwKIAkudHJhY2tfcXVldWVfZGVwdGgJPSAxLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zbGkuYyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfc2xpLmMKaW5kZXggZjllNmExMy4uYTBjNjk0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zbGkuYworKysgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3NsaS5jCkBAIC0xMzkxLDkgKzEzOTEsMTIgQEAgbHBmY19zbGlfY2FuY2VsX2lvY2JzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxpc3RfaGVhZCAqaW9jYmxpc3QsCiAKIAl3aGlsZSAoIWxpc3RfZW1wdHkoaW9jYmxpc3QpKSB7CiAJCWxpc3RfcmVtb3ZlX2hlYWQoaW9jYmxpc3QsIHBpb2NiLCBzdHJ1Y3QgbHBmY19pb2NicSwgbGlzdCk7Ci0JCWlmICghcGlvY2ItPmlvY2JfY21wbCkKLQkJCWxwZmNfc2xpX3JlbGVhc2VfaW9jYnEocGhiYSwgcGlvY2IpOwotCQllbHNlIHsKKwkJaWYgKCFwaW9jYi0+aW9jYl9jbXBsKSB7CisJCQlpZiAocGlvY2ItPmlvY2JfZmxhZyAmIExQRkNfSU9fTlZNRSkKKwkJCQlscGZjX252bWVfY2FuY2VsX2lvY2IocGhiYSwgcGlvY2IpOworCQkJZWxzZQorCQkJCWxwZmNfc2xpX3JlbGVhc2VfaW9jYnEocGhiYSwgcGlvY2IpOworCQl9IGVsc2UgewogCQkJcGlvY2ItPmlvY2IudWxwU3RhdHVzID0gdWxwc3RhdHVzOwogCQkJcGlvY2ItPmlvY2IudW4udWxwV29yZFs0XSA9IHVscFdvcmQ0OwogCQkJKHBpb2NiLT5pb2NiX2NtcGwpIChwaGJhLCBwaW9jYiwgcGlvY2IpOwpAQCAtMjQyNiw2ICsyNDI5LDIwIEBAIGxwZmNfc2xpX3dha2VfbWJveF93YWl0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgTFBGQ19NQk9YUV90ICpwbWJveHEpCiAJcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZAorX19scGZjX3NsaV9ycGlfcmVsZWFzZShzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwKQoreworCXVuc2lnbmVkIGxvbmcgaWZsYWdzOworCisJaWYgKG5kbHAtPm5scF9mbGFnICYgTkxQX1JFTEVBU0VfUlBJKSB7CisJCWxwZmNfc2xpNF9mcmVlX3JwaSh2cG9ydC0+cGhiYSwgbmRscC0+bmxwX3JwaSk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZ2cG9ydC0+cGhiYS0+bmRscF9sb2NrLCBpZmxhZ3MpOworCQluZGxwLT5ubHBfZmxhZyAmPSB+TkxQX1JFTEVBU0VfUlBJOworCQluZGxwLT5ubHBfcnBpID0gTFBGQ19SUElfQUxMT0NfRVJST1I7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZwb3J0LT5waGJhLT5uZGxwX2xvY2ssIGlmbGFncyk7CisJfQorCW5kbHAtPm5scF9mbGFnICY9IH5OTFBfVU5SRUdfSU5QOworfQogCiAvKioKICAqIGxwZmNfc2xpX2RlZl9tYm94X2NtcGwgLSBEZWZhdWx0IG1haWxib3ggY29tcGxldGlvbiBoYW5kbGVyCkBAIC0yNDk3LDcgKzI1MTQsNyBAQCBscGZjX3NsaV9kZWZfbWJveF9jbXBsKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgTFBGQ19NQk9YUV90ICpwbWIpCiAJCQkJdnBvcnQsCiAJCQkJS0VSTl9JTkZPLCBMT0dfTUJPWCB8IExPR19ESVNDT1ZFUlksCiAJCQkJIjE0MzggVU5SRUcgY21wbCBkZWZlcnJlZCBtYm94IHgleCAiCi0JCQkJIm9uIE5Qb3J0IHgleCBEYXRhOiB4JXggeCV4ICVwXG4iLAorCQkJCSJvbiBOUG9ydCB4JXggRGF0YTogeCV4IHgleCAlcHhcbiIsCiAJCQkJbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX0RJRCwKIAkJCQluZGxwLT5ubHBfZmxhZywgbmRscC0+bmxwX2RlZmVyX2RpZCwgbmRscCk7CiAKQEAgLTI1MDcsNyArMjUyNCw3IEBAIGxwZmNfc2xpX2RlZl9tYm94X2NtcGwoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBMUEZDX01CT1hRX3QgKnBtYikKIAkJCQluZGxwLT5ubHBfZGVmZXJfZGlkID0gTkxQX0VWVF9OT1RISU5HX1BFTkRJTkc7CiAJCQkJbHBmY19pc3N1ZV9lbHNfcGxvZ2kodnBvcnQsIG5kbHAtPm5scF9ESUQsIDApOwogCQkJfSBlbHNlIHsKLQkJCQluZGxwLT5ubHBfZmxhZyAmPSB+TkxQX1VOUkVHX0lOUDsKKwkJCQlfX2xwZmNfc2xpX3JwaV9yZWxlYXNlKHZwb3J0LCBuZGxwKTsKIAkJCX0KIAkJCXBtYi0+Y3R4X25kbHAgPSBOVUxMOwogCQl9CkBAIC0yNTU1LDcgKzI1NzIsNyBAQCBscGZjX3NsaTRfdW5yZWdfcnBpX2NtcGxfY2xyKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgTFBGQ19NQk9YUV90ICpwbWIpCiAJCQkJCXZwb3J0LCBLRVJOX0lORk8sIExPR19NQk9YIHwgTE9HX1NMSSwKIAkJCQkJICIwMDEwIFVOUkVHX0xPR0lOIHZwaToleCAiCiAJCQkJCSAicnBpOiV4IERJRDoleCBkZWZlciB4JXggZmxnIHgleCAiCi0JCQkJCSAibWFwOiV4ICVwXG4iLAorCQkJCQkgIm1hcDoleCAlcHhcbiIsCiAJCQkJCSB2cG9ydC0+dnBpLCBuZGxwLT5ubHBfcnBpLAogCQkJCQkgbmRscC0+bmxwX0RJRCwgbmRscC0+bmxwX2RlZmVyX2RpZCwKIAkJCQkJIG5kbHAtPm5scF9mbGFnLApAQCAtMjU3Myw3ICsyNTkwLDcgQEAgbHBmY19zbGk0X3VucmVnX3JwaV9jbXBsX2NscihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIExQRkNfTUJPWFFfdCAqcG1iKQogCQkJCQkJdnBvcnQsIEtFUk5fSU5GTywgTE9HX0RJU0NPVkVSWSwKIAkJCQkJCSI0MTExIFVOUkVHIGNtcGwgZGVmZXJyZWQgIgogCQkJCQkJImNsciB4JXggb24gIgotCQkJCQkJIk5Qb3J0IHgleCBEYXRhOiB4JXggJXBcbiIsCisJCQkJCQkiTlBvcnQgeCV4IERhdGE6IHgleCB4JXB4XG4iLAogCQkJCQkJbmRscC0+bmxwX3JwaSwgbmRscC0+bmxwX0RJRCwKIAkJCQkJCW5kbHAtPm5scF9kZWZlcl9kaWQsIG5kbHApOwogCQkJCQluZGxwLT5ubHBfZmxhZyAmPSB+TkxQX1VOUkVHX0lOUDsKQEAgLTI1ODIsNyArMjU5OSw3IEBAIGxwZmNfc2xpNF91bnJlZ19ycGlfY21wbF9jbHIoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBMUEZDX01CT1hRX3QgKnBtYikKIAkJCQkJbHBmY19pc3N1ZV9lbHNfcGxvZ2koCiAJCQkJCQl2cG9ydCwgbmRscC0+bmxwX0RJRCwgMCk7CiAJCQkJfSBlbHNlIHsKLQkJCQkJbmRscC0+bmxwX2ZsYWcgJj0gfk5MUF9VTlJFR19JTlA7CisJCQkJCV9fbHBmY19zbGlfcnBpX3JlbGVhc2UodnBvcnQsIG5kbHApOwogCQkJCX0KIAkJCX0KIAkJfQpAQCAtMjY5NSw3ICsyNzEyLDcgQEAgbHBmY19zbGlfaGFuZGxlX21iX2V2ZW50KHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAogCQkvKiBNYWlsYm94IGNtZCA8Y21kPiBDbXBsIDxjbXBsPiAqLwogCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9JTkZPLCBMT0dfTUJPWCB8IExPR19TTEksCi0JCQkJIiglZCk6MDMwNyBNYWlsYm94IGNtZCB4JXggKHgleC94JXgpIENtcGwgeCVwICIKKwkJCQkiKCVkKTowMzA3IE1haWxib3ggY21kIHgleCAoeCV4L3gleCkgQ21wbCAlcHMgIgogCQkJCSJEYXRhOiB4JXggeCV4IHgleCB4JXggeCV4IHgleCB4JXggeCV4IHgleCAiCiAJCQkJIngleCB4JXggeCV4XG4iLAogCQkJCXBtYi0+dnBvcnQgPyBwbWItPnZwb3J0LT52cGkgOiAwLApAQCAtMzk2MSw3ICszOTc4LDcgQEAgbHBmY19zbGlfYWJvcnRfZmNwX3JpbmdzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAkvKiBMb29rIG9uIGFsbCB0aGUgRkNQIFJpbmdzIGZvciB0aGUgaW90YWcgKi8KIAlpZiAocGhiYS0+c2xpX3JldiA+PSBMUEZDX1NMSV9SRVY0KSB7CiAJCWZvciAoaSA9IDA7IGkgPCBwaGJhLT5jZmdfaGR3X3F1ZXVlOyBpKyspIHsKLQkJCXByaW5nID0gcGhiYS0+c2xpNF9oYmEuaGR3cVtpXS5mY3Bfd3EtPnByaW5nOworCQkJcHJpbmcgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW2ldLmlvX3dxLT5wcmluZzsKIAkJCWxwZmNfc2xpX2Fib3J0X2lvY2JfcmluZyhwaGJhLCBwcmluZyk7CiAJCX0KIAl9IGVsc2UgewpAQCAtMzk3MSwxNyArMzk4OCwxNyBAQCBscGZjX3NsaV9hYm9ydF9mY3BfcmluZ3Moc3RydWN0IGxwZmNfaGJhICpwaGJhKQogfQogCiAvKioKLSAqIGxwZmNfc2xpX2ZsdXNoX2ZjcF9yaW5ncyAtIGZsdXNoIGFsbCBpb2NicyBpbiB0aGUgZmNwIHJpbmcKKyAqIGxwZmNfc2xpX2ZsdXNoX2lvX3JpbmdzIC0gZmx1c2ggYWxsIGlvY2JzIGluIHRoZSBJTyByaW5nCiAgKiBAcGhiYTogUG9pbnRlciB0byBIQkEgY29udGV4dCBvYmplY3QuCiAgKgotICogVGhpcyBmdW5jdGlvbiBmbHVzaGVzIGFsbCBpb2NicyBpbiB0aGUgZmNwIHJpbmcgYW5kIGZyZWVzIGFsbCB0aGUgaW9jYgorICogVGhpcyBmdW5jdGlvbiBmbHVzaGVzIGFsbCBpb2NicyBpbiB0aGUgSU8gcmluZyBhbmQgZnJlZXMgYWxsIHRoZSBpb2NiCiAgKiBvYmplY3RzIGluIHR4cSBhbmQgdHhjbXBscS4gVGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBpc3N1ZSBhYm9ydCBpb2NicwogICogZm9yIGFsbCB0aGUgaW9jYiBjb21tYW5kcyBpbiB0eGNtcGxxLCB0aGV5IHdpbGwganVzdCBiZSByZXR1cm5lZCB3aXRoCiAgKiBJT0VSUl9TTElfRE9XTi4gVGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkIHdpdGggRUVIIHdoZW4gZGV2aWNlJ3MgUENJCiAgKiBzbG90IGhhcyBiZWVuIHBlcm1hbmVudGx5IGRpc2FibGVkLgogICoqLwogdm9pZAotbHBmY19zbGlfZmx1c2hfZmNwX3JpbmdzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKK2xwZmNfc2xpX2ZsdXNoX2lvX3JpbmdzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIHsKIAlMSVNUX0hFQUQodHhxKTsKIAlMSVNUX0hFQUQodHhjbXBscSk7CkBAIC0zOTkyLDEzICs0MDA5LDEzIEBAIGxwZmNfc2xpX2ZsdXNoX2ZjcF9yaW5ncyhzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAKIAlzcGluX2xvY2tfaXJxKCZwaGJhLT5oYmFsb2NrKTsKIAkvKiBJbmRpY2F0ZSB0aGUgSS9PIHF1ZXVlcyBhcmUgZmx1c2hlZCAqLwotCXBoYmEtPmhiYV9mbGFnIHw9IEhCQV9GQ1BfSU9RX0ZMVVNIOworCXBoYmEtPmhiYV9mbGFnIHw9IEhCQV9JT1FfRkxVU0g7CiAJc3Bpbl91bmxvY2tfaXJxKCZwaGJhLT5oYmFsb2NrKTsKIAogCS8qIExvb2sgb24gYWxsIHRoZSBGQ1AgUmluZ3MgZm9yIHRoZSBpb3RhZyAqLwogCWlmIChwaGJhLT5zbGlfcmV2ID49IExQRkNfU0xJX1JFVjQpIHsKIAkJZm9yIChpID0gMDsgaSA8IHBoYmEtPmNmZ19oZHdfcXVldWU7IGkrKykgewotCQkJcHJpbmcgPSBwaGJhLT5zbGk0X2hiYS5oZHdxW2ldLmZjcF93cS0+cHJpbmc7CisJCQlwcmluZyA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbaV0uaW9fd3EtPnByaW5nOwogCiAJCQlzcGluX2xvY2tfaXJxKCZwcmluZy0+cmluZ19sb2NrKTsKIAkJCS8qIFJldHJpZXZlIGV2ZXJ5dGhpbmcgb24gdHhxICovCkBAIC00MDQ2LDU2ICs0MDYzLDYgQEAgbHBmY19zbGlfZmx1c2hfZmNwX3JpbmdzKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIH0KIAogLyoqCi0gKiBscGZjX3NsaV9mbHVzaF9udm1lX3JpbmdzIC0gZmx1c2ggYWxsIHdxZXMgaW4gdGhlIG52bWUgcmluZ3MKLSAqIEBwaGJhOiBQb2ludGVyIHRvIEhCQSBjb250ZXh0IG9iamVjdC4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGZsdXNoZXMgYWxsIHdxZXMgaW4gdGhlIG52bWUgcmluZ3MgYW5kIGZyZWVzIGFsbCByZXNvdXJjZXMKLSAqIGluIHRoZSB0eGNtcGxxLiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGlzc3VlIGFib3J0IHdxZXMgZm9yIHRoZSBJTwotICogY29tbWFuZHMgaW4gdHhjbXBscSwgdGhleSB3aWxsIGp1c3QgYmUgcmV0dXJuZWQgd2l0aAotICogSU9FUlJfU0xJX0RPV04uIFRoaXMgZnVuY3Rpb24gaXMgaW52b2tlZCB3aXRoIEVFSCB3aGVuIGRldmljZSdzIFBDSQotICogc2xvdCBoYXMgYmVlbiBwZXJtYW5lbnRseSBkaXNhYmxlZC4KLSAqKi8KLXZvaWQKLWxwZmNfc2xpX2ZsdXNoX252bWVfcmluZ3Moc3RydWN0IGxwZmNfaGJhICpwaGJhKQotewotCUxJU1RfSEVBRCh0eGNtcGxxKTsKLQlzdHJ1Y3QgbHBmY19zbGlfcmluZyAgKnByaW5nOwotCXVpbnQzMl90IGk7Ci0Jc3RydWN0IGxwZmNfaW9jYnEgKnBpb2NiLCAqbmV4dF9pb2NiOwotCi0JaWYgKChwaGJhLT5zbGlfcmV2IDwgTFBGQ19TTElfUkVWNCkgfHwKLQkgICAgIShwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkpCi0JCXJldHVybjsKLQotCS8qIEhpbnQgdG8gb3RoZXIgZHJpdmVyIG9wZXJhdGlvbnMgdGhhdCBhIGZsdXNoIGlzIGluIHByb2dyZXNzLiAqLwotCXNwaW5fbG9ja19pcnEoJnBoYmEtPmhiYWxvY2spOwotCXBoYmEtPmhiYV9mbGFnIHw9IEhCQV9OVk1FX0lPUV9GTFVTSDsKLQlzcGluX3VubG9ja19pcnEoJnBoYmEtPmhiYWxvY2spOwotCi0JLyogQ3ljbGUgdGhyb3VnaCBhbGwgTlZNRSByaW5ncyBhbmQgY29tcGxldGUgZWFjaCBJTyB3aXRoCi0JICogYSBsb2NhbCBkcml2ZXIgcmVhc29uIGNvZGUuICBUaGlzIGlzIGEgZmx1c2ggc28gbm8KLQkgKiBhYm9ydCBleGNoYW5nZSB0byBGVy4KLQkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgaSsrKSB7Ci0JCXByaW5nID0gcGhiYS0+c2xpNF9oYmEuaGR3cVtpXS5udm1lX3dxLT5wcmluZzsKLQotCQlzcGluX2xvY2tfaXJxKCZwcmluZy0+cmluZ19sb2NrKTsKLQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBpb2NiLCBuZXh0X2lvY2IsCi0JCQkJCSAmcHJpbmctPnR4Y21wbHEsIGxpc3QpCi0JCQlwaW9jYi0+aW9jYl9mbGFnICY9IH5MUEZDX0lPX09OX1RYQ01QTFE7Ci0JCS8qIFJldHJpZXZlIGV2ZXJ5dGhpbmcgb24gdGhlIHR4Y21wbHEgKi8KLQkJbGlzdF9zcGxpY2VfaW5pdCgmcHJpbmctPnR4Y21wbHEsICZ0eGNtcGxxKTsKLQkJcHJpbmctPnR4Y21wbHFfY250ID0gMDsKLQkJc3Bpbl91bmxvY2tfaXJxKCZwcmluZy0+cmluZ19sb2NrKTsKLQotCQkvKiBGbHVzaCB0aGUgdHhjbXBxICYmJlBBRSAqLwotCQlscGZjX3NsaV9jYW5jZWxfaW9jYnMocGhiYSwgJnR4Y21wbHEsCi0JCQkJICAgICAgSU9TVEFUX0xPQ0FMX1JFSkVDVCwKLQkJCQkgICAgICBJT0VSUl9TTElfRE9XTik7Ci0JfQotfQotCi0vKioKICAqIGxwZmNfc2xpX2JyZHJlYWR5X3MzIC0gQ2hlY2sgZm9yIHNsaTMgaG9zdCByZWFkeSBzdGF0dXMKICAqIEBwaGJhOiBQb2ludGVyIHRvIEhCQSBjb250ZXh0IG9iamVjdC4KICAqIEBtYXNrOiBCaXQgbWFzayB0byBiZSBjaGVja2VkLgpAQCAtNDQ5NSw3ICs0NDYyLDcgQEAgbHBmY19zbGlfYnJkcmVzZXQoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogICogY2hlY2tpbmcgZHVyaW5nIHJlc2V0cyB0aGUgZGV2aWNlLiBUaGUgY2FsbGVyIGlzIG5vdCByZXF1aXJlZCB0byBob2xkCiAgKiBhbnkgbG9ja3MuCiAgKgotICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIDAgYWx3YXlzLgorICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIDAgb24gc3VjY2VzcyBlbHNlIHJldHVybnMgbmVnYXRpdmUgZXJyb3IgY29kZS4KICAqKi8KIGludAogbHBmY19zbGk0X2JyZHJlc2V0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKQEAgLTQ2NTIsOCArNDYxOSwxMCBAQCBscGZjX3NsaV9icmRyZXN0YXJ0X3M0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAloYmFfYWVyX2VuYWJsZWQgPSBwaGJhLT5oYmFfZmxhZyAmIEhCQV9BRVJfRU5BQkxFRDsKIAogCXJjID0gbHBmY19zbGk0X2JyZHJlc2V0KHBoYmEpOwotCWlmIChyYykKLQkJcmV0dXJuIHJjOworCWlmIChyYykgeworCQlwaGJhLT5saW5rX3N0YXRlID0gTFBGQ19IQkFfRVJST1I7CisJCWdvdG8gaGJhX2Rvd25fcXVldWU7CisJfQogCiAJc3Bpbl9sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7CiAJcGhiYS0+cHBvcnQtPnN0b3BwZWQgPSAwOwpAQCAtNDY2OCw2ICs0NjM3LDcgQEAgbHBmY19zbGlfYnJkcmVzdGFydF9zNChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJaWYgKGhiYV9hZXJfZW5hYmxlZCkKIAkJcGNpX2Rpc2FibGVfcGNpZV9lcnJvcl9yZXBvcnRpbmcocGhiYS0+cGNpZGV2KTsKIAoraGJhX2Rvd25fcXVldWU6CiAJbHBmY19oYmFfZG93bl9wb3N0KHBoYmEpOwogCWxwZmNfc2xpNF9xdWV1ZV9kZXN0cm95KHBoYmEpOwogCkBAIC01NTg0LDEwICs1NTU0LDggQEAgbHBmY19zbGk0X2FybV9jcWVxX2ludHIoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCQlmb3IgKHFpZHggPSAwOyBxaWR4IDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgcWlkeCsrKSB7CiAJCQlxcCA9ICZzbGk0X2hiYS0+aGR3cVtxaWR4XTsKIAkJCS8qIEFSTSB0aGUgY29ycmVzcG9uZGluZyBDUSAqLwotCQkJc2xpNF9oYmEtPnNsaTRfd3JpdGVfY3FfZGIocGhiYSwgcXAtPmZjcF9jcSwgMCwKLQkJCQkJCSAgIExQRkNfUVVFVUVfUkVBUk0pOwotCQkJc2xpNF9oYmEtPnNsaTRfd3JpdGVfY3FfZGIocGhiYSwgcXAtPm52bWVfY3EsIDAsCi0JCQkJCQkgICBMUEZDX1FVRVVFX1JFQVJNKTsKKwkJCXNsaTRfaGJhLT5zbGk0X3dyaXRlX2NxX2RiKHBoYmEsIHFwLT5pb19jcSwgMCwKKwkJCQkJCUxQRkNfUVVFVUVfUkVBUk0pOwogCQl9CiAKIAkJLyogTG9vcCB0aHJ1IGFsbCBJUlEgdmVjdG9ycyAqLwpAQCAtNzI0Myw3ICs3MjExLDcgQEAgbHBmY19zbGk0X2hiYV9zZXR1cChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJZWxzZQogCQlwaGJhLT5oYmFfZmxhZyAmPSB+SEJBX0ZJUF9TVVBQT1JUOwogCi0JcGhiYS0+aGJhX2ZsYWcgJj0gfkhCQV9GQ1BfSU9RX0ZMVVNIOworCXBoYmEtPmhiYV9mbGFnICY9IH5IQkFfSU9RX0ZMVVNIOwogCiAJaWYgKHBoYmEtPnNsaV9yZXYgIT0gTFBGQ19TTElfUkVWNCkgewogCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19NQk9YIHwgTE9HX1NMSSwKQEAgLTc5NzIsNyArNzk0MCw3IEBAIGxwZmNfbWJveF90aW1lb3V0X2hhbmRsZXIoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCiAJLyogTWJveCBjbWQgPG1ieENvbW1hbmQ+IHRpbWVvdXQgKi8KIAlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19NQk9YIHwgTE9HX1NMSSwKLQkJCSIwMzEwIE1haWxib3ggY29tbWFuZCB4JXggdGltZW91dCBEYXRhOiB4JXggeCV4IHglcFxuIiwKKwkJCSIwMzEwIE1haWxib3ggY29tbWFuZCB4JXggdGltZW91dCBEYXRhOiB4JXggeCV4IHglcHhcbiIsCiAJCQltYi0+bWJ4Q29tbWFuZCwKIAkJCXBoYmEtPnBwb3J0LT5wb3J0X3N0YXRlLAogCQkJcGhiYS0+c2xpLnNsaV9mbGFnLApAQCAtOTMzMywxMSArOTMwMSw5IEBAIGxwZmNfc2xpNF9pb2NiMndxZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX2lvY2JxICppb2NicSwKIAkJbWVtc2V0KHdxZSwgMCwgc2l6ZW9mKHVuaW9uIGxwZmNfd3FlMTI4KSk7CiAJLyogU29tZSBvZiB0aGUgZmllbGRzIGFyZSBpbiB0aGUgcmlnaHQgcG9zaXRpb24gYWxyZWFkeSAqLwogCW1lbWNweSh3cWUsICZpb2NicS0+aW9jYiwgc2l6ZW9mKHVuaW9uIGxwZmNfd3FlKSk7Ci0JaWYgKGlvY2JxLT5pb2NiLnVscENvbW1hbmQgIT0gQ01EX1NFTkRfRlJBTUUpIHsKLQkJLyogVGhlIGN0IGZpZWxkIGhhcyBtb3ZlZCBzbyByZXNldCAqLwotCQl3cWUtPmdlbmVyaWMud3FlX2NvbS53b3JkNyA9IDA7Ci0JCXdxZS0+Z2VuZXJpYy53cWVfY29tLndvcmQxMCA9IDA7Ci0JfQorCS8qIFRoZSBjdCBmaWVsZCBoYXMgbW92ZWQgc28gcmVzZXQgKi8KKwl3cWUtPmdlbmVyaWMud3FlX2NvbS53b3JkNyA9IDA7CisJd3FlLT5nZW5lcmljLndxZV9jb20ud29yZDEwID0gMDsKIAogCWFib3J0X3RhZyA9ICh1aW50MzJfdCkgaW9jYnEtPmlvdGFnOwogCXhyaXRhZyA9IGlvY2JxLT5zbGk0X3hyaXRhZzsKQEAgLTk3OTYsNyArOTc2Miw3IEBAIGxwZmNfc2xpNF9pb2NiMndxZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX2lvY2JxICppb2NicSwKIAkJICogd2UgcmUtY29uc3RydWN0IHRoaXMgV1FFIGhlcmUgYmFzZWQgb24gaW5mb3JtYXRpb24gaW4KIAkJICogaW9jYnEgZnJvbSBzY3JhdGNoLgogCQkgKi8KLQkJbWVtc2V0KHdxZSwgMCwgc2l6ZW9mKHVuaW9uIGxwZmNfd3FlKSk7CisJCW1lbXNldCh3cWUsIDAsIHNpemVvZigqd3FlKSk7CiAJCS8qIE9YX0lEIGlzIGludmFyaWFibGUgdG8gd2hvIHNlbnQgQUJUUyB0byBDVCBleGNoYW5nZSAqLwogCQliZl9zZXQoeG1pdF9ibHNfcnNwNjRfb3hpZCwgJndxZS0+eG1pdF9ibHNfcnNwLAogCQkgICAgICAgYmZfZ2V0KGxwZmNfYWJ0c19veGlkLCAmaW9jYnEtPmlvY2IudW4uYmxzX3JzcCkpOwpAQCAtOTg0Myw2ICs5ODA5LDE1IEBAIGxwZmNfc2xpNF9pb2NiMndxZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX2lvY2JxICppb2NicSwKIAogCQlicmVhazsKIAljYXNlIENNRF9TRU5EX0ZSQU1FOgorCQliZl9zZXQod3FlX2NtbmQsICZ3cWUtPmdlbmVyaWMud3FlX2NvbSwgQ01EX1NFTkRfRlJBTUUpOworCQliZl9zZXQod3FlX3NvZiwgJndxZS0+Z2VuZXJpYy53cWVfY29tLCAweDJFKTsgLyogU09GIGJ5dGUgKi8KKwkJYmZfc2V0KHdxZV9lb2YsICZ3cWUtPmdlbmVyaWMud3FlX2NvbSwgMHg0MSk7IC8qIEVPRiBieXRlICovCisJCWJmX3NldCh3cWVfbGVubG9jLCAmd3FlLT5nZW5lcmljLndxZV9jb20sIDEpOworCQliZl9zZXQod3FlX3hibCwgJndxZS0+Z2VuZXJpYy53cWVfY29tLCAxKTsKKwkJYmZfc2V0KHdxZV9kYmRlLCAmd3FlLT5nZW5lcmljLndxZV9jb20sIDEpOworCQliZl9zZXQod3FlX3hjLCAmd3FlLT5nZW5lcmljLndxZV9jb20sIDEpOworCQliZl9zZXQod3FlX2NtZF90eXBlLCAmd3FlLT5nZW5lcmljLndxZV9jb20sIDB4QSk7CisJCWJmX3NldCh3cWVfY3FpZCwgJndxZS0+Z2VuZXJpYy53cWVfY29tLCBMUEZDX1dRRV9DUV9JRF9ERUZBVUxUKTsKIAkJYmZfc2V0KHdxZV94cmlfdGFnLCAmd3FlLT5nZW5lcmljLndxZV9jb20sIHhyaXRhZyk7CiAJCWJmX3NldCh3cWVfcmVxdGFnLCAmd3FlLT5nZW5lcmljLndxZV9jb20sIGlvY2JxLT5pb3RhZyk7CiAJCXJldHVybiAwOwpAQCAtOTkwNCw3ICs5ODc5LDcgQEAgX19scGZjX3NsaV9pc3N1ZV9pb2NiX3M0KHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgdWludDMyX3QgcmluZ19udW1iZXIsCiAJLyogR2V0IHRoZSBXUSAqLwogCWlmICgocGlvY2ItPmlvY2JfZmxhZyAmIExQRkNfSU9fRkNQKSB8fAogCSAgICAocGlvY2ItPmlvY2JfZmxhZyAmIExQRkNfVVNFX0ZDUFdRSURYKSkgewotCQl3cSA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbcGlvY2ItPmhiYV93cWlkeF0uZmNwX3dxOworCQl3cSA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbcGlvY2ItPmhiYV93cWlkeF0uaW9fd3E7CiAJfSBlbHNlIHsKIAkJd3EgPSBwaGJhLT5zbGk0X2hiYS5lbHNfd3E7CiAJfQpAQCAtMTAwNTEsNyArMTAwMjYsNyBAQCBscGZjX3NsaTRfY2FsY19yaW5nKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0IGxwZmNfaW9jYnEgKnBpb2NiKQogCQkJbHBmY19jbWQgPSAoc3RydWN0IGxwZmNfaW9fYnVmICopcGlvY2ItPmNvbnRleHQxOwogCQkJcGlvY2ItPmhiYV93cWlkeCA9IGxwZmNfY21kLT5oZHdxX25vOwogCQl9Ci0JCXJldHVybiBwaGJhLT5zbGk0X2hiYS5oZHdxW3Bpb2NiLT5oYmFfd3FpZHhdLmZjcF93cS0+cHJpbmc7CisJCXJldHVybiBwaGJhLT5zbGk0X2hiYS5oZHdxW3Bpb2NiLT5oYmFfd3FpZHhdLmlvX3dxLT5wcmluZzsKIAl9IGVsc2UgewogCQlpZiAodW5saWtlbHkoIXBoYmEtPnNsaTRfaGJhLmVsc193cSkpCiAJCQlyZXR1cm4gTlVMTDsKQEAgLTEwNTA0LDcgKzEwNDc5LDcgQEAgbHBmY19zbGk0X3F1ZXVlX2luaXQoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCUlOSVRfTElTVF9IRUFEKCZwc2xpLT5tYm94cV9jbXBsKTsKIAkvKiBJbml0aWFsaXplIGxpc3QgaGVhZGVycyBmb3IgdHhxIGFuZCB0eGNtcGxxIGFzIGRvdWJsZSBsaW5rZWQgbGlzdHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgaSsrKSB7Ci0JCXByaW5nID0gcGhiYS0+c2xpNF9oYmEuaGR3cVtpXS5mY3Bfd3EtPnByaW5nOworCQlwcmluZyA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbaV0uaW9fd3EtPnByaW5nOwogCQlwcmluZy0+ZmxhZyA9IDA7CiAJCXByaW5nLT5yaW5nbm8gPSBMUEZDX0ZDUF9SSU5HOwogCQlwcmluZy0+dHhjbXBscV9jbnQgPSAwOwpAQCAtMTA1MjMsMTYgKzEwNDk4LDYgQEAgbHBmY19zbGk0X3F1ZXVlX2luaXQoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCXNwaW5fbG9ja19pbml0KCZwcmluZy0+cmluZ19sb2NrKTsKIAogCWlmIChwaGJhLT5jZmdfZW5hYmxlX2ZjNF90eXBlICYgTFBGQ19FTkFCTEVfTlZNRSkgewotCQlmb3IgKGkgPSAwOyBpIDwgcGhiYS0+Y2ZnX2hkd19xdWV1ZTsgaSsrKSB7Ci0JCQlwcmluZyA9IHBoYmEtPnNsaTRfaGJhLmhkd3FbaV0ubnZtZV93cS0+cHJpbmc7Ci0JCQlwcmluZy0+ZmxhZyA9IDA7Ci0JCQlwcmluZy0+cmluZ25vID0gTFBGQ19GQ1BfUklORzsKLQkJCXByaW5nLT50eGNtcGxxX2NudCA9IDA7Ci0JCQlJTklUX0xJU1RfSEVBRCgmcHJpbmctPnR4cSk7Ci0JCQlJTklUX0xJU1RfSEVBRCgmcHJpbmctPnR4Y21wbHEpOwotCQkJSU5JVF9MSVNUX0hFQUQoJnByaW5nLT5pb2NiX2NvbnRpbnVlcSk7Ci0JCQlzcGluX2xvY2tfaW5pdCgmcHJpbmctPnJpbmdfbG9jayk7Ci0JCX0KIAkJcHJpbmcgPSBwaGJhLT5zbGk0X2hiYS5udm1lbHNfd3EtPnByaW5nOwogCQlwcmluZy0+ZmxhZyA9IDA7CiAJCXByaW5nLT5yaW5nbm8gPSBMUEZDX0VMU19SSU5HOwpAQCAtMTA3OTYsOSArMTA3NjEsOSBAQCBscGZjX3NsaV9oYmFfZG93bihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCQlwcmluZyA9IHFwLT5wcmluZzsKIAkJCWlmICghcHJpbmcpCiAJCQkJY29udGludWU7Ci0JCQlzcGluX2xvY2tfaXJxKCZwcmluZy0+cmluZ19sb2NrKTsKKwkJCXNwaW5fbG9jaygmcHJpbmctPnJpbmdfbG9jayk7CiAJCQlsaXN0X3NwbGljZV9pbml0KCZwcmluZy0+dHhxLCAmY29tcGxldGlvbnMpOwotCQkJc3Bpbl91bmxvY2tfaXJxKCZwcmluZy0+cmluZ19sb2NrKTsKKwkJCXNwaW5fdW5sb2NrKCZwcmluZy0+cmluZ19sb2NrKTsKIAkJCWlmIChwcmluZyA9PSBwaGJhLT5zbGk0X2hiYS5lbHNfd3EtPnByaW5nKSB7CiAJCQkJcHJpbmctPmZsYWcgfD0gTFBGQ19ERUZFUlJFRF9SSU5HX0VWRU5UOwogCQkJCS8qIFNldCB0aGUgbHBmYyBkYXRhIHBlbmRpbmcgZmxhZyAqLwpAQCAtMTA5NzksNyArMTA5NDQsNyBAQCBscGZjX3NsaV9yaW5nX3RhZ2dlZGJ1Zl9nZXQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19zbGlfcmluZyAqcHJpbmcsCiAJc3Bpbl91bmxvY2tfaXJxKCZwaGJhLT5oYmFsb2NrKTsKIAlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19JTklULAogCQkJIjA0MDIgQ2Fubm90IGZpbmQgdmlydHVhbCBhZGRyIGZvciBidWZmZXIgdGFnIG9uICIKLQkJCSJyaW5nICVkIERhdGEgeCVseCB4JXAgeCVwIHgleFxuIiwKKwkJCSJyaW5nICVkIERhdGEgeCVseCB4JXB4IHglcHggeCV4XG4iLAogCQkJcHJpbmctPnJpbmdubywgKHVuc2lnbmVkIGxvbmcpIHRhZywKIAkJCXNscC0+bmV4dCwgc2xwLT5wcmV2LCBwcmluZy0+cG9zdGJ1ZnFfY250KTsKIApAQCAtMTEwMjMsNyArMTA5ODgsNyBAQCBscGZjX3NsaV9yaW5ncG9zdGJ1Zl9nZXQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19zbGlfcmluZyAqcHJpbmcsCiAJc3Bpbl91bmxvY2tfaXJxKCZwaGJhLT5oYmFsb2NrKTsKIAlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19JTklULAogCQkJIjA0MTAgQ2Fubm90IGZpbmQgdmlydHVhbCBhZGRyIGZvciBtYXBwZWQgYnVmIG9uICIKLQkJCSJyaW5nICVkIERhdGEgeCVsbHggeCVwIHglcCB4JXhcbiIsCisJCQkicmluZyAlZCBEYXRhIHglbGx4IHglcHggeCVweCB4JXhcbiIsCiAJCQlwcmluZy0+cmluZ25vLCAodW5zaWduZWQgbG9uZyBsb25nKXBoeXMsCiAJCQlzbHAtPm5leHQsIHNscC0+cHJldiwgcHJpbmctPnBvc3RidWZxX2NudCk7CiAJcmV0dXJuIE5VTEw7CkBAIC0xMTA3OCwxMyArMTEwNDMsMTYgQEAgbHBmY19zbGlfYWJvcnRfZWxzX2NtcGwoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb2NicSAqY21kaW9jYiwKIAkJCWFib3J0X2lvY2IgPSBwaGJhLT5zbGkuaW9jYnFfbG9va3VwW2Fib3J0X2NvbnRleHRdOwogCiAJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX1dBUk5JTkcsIExPR19FTFMgfCBMT0dfU0xJLAotCQkJCSIwMzI3IENhbm5vdCBhYm9ydCBlbHMgaW9jYiAlcCAiCisJCQkJIjAzMjcgQ2Fubm90IGFib3J0IGVscyBpb2NiIHglcHggIgogCQkJCSJ3aXRoIHRhZyAleCBjb250ZXh0ICV4LCBhYm9ydCBzdGF0dXMgJXgsICIKIAkJCQkiYWJvcnQgY29kZSAleFxuIiwKIAkJCQlhYm9ydF9pb2NiLCBhYm9ydF9pb3RhZywgYWJvcnRfY29udGV4dCwKIAkJCQlpcnNwLT51bHBTdGF0dXMsIGlyc3AtPnVuLnVscFdvcmRbNF0pOwogCiAJCXNwaW5fdW5sb2NrX2lycSgmcGhiYS0+aGJhbG9jayk7CisJCWlmIChpcnNwLT51bHBTdGF0dXMgPT0gSU9TVEFUX0xPQ0FMX1JFSkVDVCAmJgorCQkgICAgaXJzcC0+dW4udWxwV29yZFs0XSA9PSBJT0VSUl9TTElfQUJPUlRFRCkKKwkJCWxwZmNfc2xpX3JlbGVhc2VfaW9jYnEocGhiYSwgYWJvcnRfaW9jYik7CiAJfQogcmVsZWFzZV9pb2NiOgogCWxwZmNfc2xpX3JlbGVhc2VfaW9jYnEocGhiYSwgY21kaW9jYik7CkBAIC0xMTQ5Myw3ICsxMTQ2MSw3IEBAIGxwZmNfc2xpX2Fib3J0X2lvY2Ioc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbHBmY19zbGlfcmluZyAqcHJpbmcsCiAJaW50IGk7CiAKIAkvKiBhbGwgSS9PcyBhcmUgaW4gcHJvY2VzcyBvZiBiZWluZyBmbHVzaGVkICovCi0JaWYgKHBoYmEtPmhiYV9mbGFnICYgSEJBX0ZDUF9JT1FfRkxVU0gpCisJaWYgKHBoYmEtPmhiYV9mbGFnICYgSEJBX0lPUV9GTFVTSCkKIAkJcmV0dXJuIGVycmNudDsKIAogCWZvciAoaSA9IDE7IGkgPD0gcGhiYS0+c2xpLmxhc3RfaW90YWc7IGkrKykgewpAQCAtMTE2MDMsNyArMTE1NzEsNyBAQCBscGZjX3NsaV9hYm9ydF90YXNrbWdtdChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX3NsaV9yaW5nICpwcmluZywKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcGhiYS0+aGJhbG9jaywgaWZsYWdzKTsKIAogCS8qIGFsbCBJL09zIGFyZSBpbiBwcm9jZXNzIG9mIGJlaW5nIGZsdXNoZWQgKi8KLQlpZiAocGhiYS0+aGJhX2ZsYWcgJiBIQkFfRkNQX0lPUV9GTFVTSCkgeworCWlmIChwaGJhLT5oYmFfZmxhZyAmIEhCQV9JT1FfRkxVU0gpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGhiYS0+aGJhbG9jaywgaWZsYWdzKTsKIAkJcmV0dXJuIDA7CiAJfQpAQCAtMTE2MjcsNyArMTE1OTUsNyBAQCBscGZjX3NsaV9hYm9ydF90YXNrbWdtdChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX3NsaV9yaW5nICpwcmluZywKIAogCQlpZiAocGhiYS0+c2xpX3JldiA9PSBMUEZDX1NMSV9SRVY0KSB7CiAJCQlwcmluZ19zNCA9Ci0JCQkgICAgcGhiYS0+c2xpNF9oYmEuaGR3cVtpb2NicS0+aGJhX3dxaWR4XS5mY3Bfd3EtPnByaW5nOworCQkJICAgIHBoYmEtPnNsaTRfaGJhLmhkd3FbaW9jYnEtPmhiYV93cWlkeF0uaW9fd3EtPnByaW5nOwogCQkJaWYgKCFwcmluZ19zNCkgewogCQkJCXNwaW5fdW5sb2NrKCZscGZjX2NtZC0+YnVmX2xvY2spOwogCQkJCWNvbnRpbnVlOwpAQCAtMTMzMzYsOCArMTMzMDQsMTMgQEAgbHBmY19zbGk0X3NwX2hhbmRsZV9hYm9ydF94cmlfd2NxZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCiAJdW5zaWduZWQgbG9uZyBpZmxhZ3M7CiAKIAlzd2l0Y2ggKGNxLT5zdWJ0eXBlKSB7Ci0JY2FzZSBMUEZDX0ZDUDoKLQkJbHBmY19zbGk0X2ZjcF94cmlfYWJvcnRlZChwaGJhLCB3Y3FlLCBjcS0+aGR3cSk7CisJY2FzZSBMUEZDX0lPOgorCQlscGZjX3NsaTRfaW9feHJpX2Fib3J0ZWQocGhiYSwgd2NxZSwgY3EtPmhkd3EpOworCQlpZiAocGhiYS0+Y2ZnX2VuYWJsZV9mYzRfdHlwZSAmIExQRkNfRU5BQkxFX05WTUUpIHsKKwkJCS8qIE5vdGlmeSBhYm9ydGVkIFhSSSBmb3IgTlZNRSB3b3JrIHF1ZXVlICovCisJCQlpZiAocGhiYS0+bnZtZXRfc3VwcG9ydCkKKwkJCQlscGZjX3NsaTRfbnZtZXRfeHJpX2Fib3J0ZWQocGhiYSwgd2NxZSk7CisJCX0KIAkJd29ya3Bvc3RlZCA9IGZhbHNlOwogCQlicmVhazsKIAljYXNlIExQRkNfTlZNRV9MUzogLyogTlZNRSBMUyB1c2VzIEVMUyByZXNvdXJjZXMgKi8KQEAgLTEzMzU1LDE1ICsxMzMyOCw2IEBAIGxwZmNfc2xpNF9zcF9oYW5kbGVfYWJvcnRfeHJpX3djcWUoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaGJhLT5oYmFsb2NrLCBpZmxhZ3MpOwogCQl3b3JrcG9zdGVkID0gdHJ1ZTsKIAkJYnJlYWs7Ci0JY2FzZSBMUEZDX05WTUU6Ci0JCS8qIE5vdGlmeSBhYm9ydGVkIFhSSSBmb3IgTlZNRSB3b3JrIHF1ZXVlICovCi0JCWlmIChwaGJhLT5udm1ldF9zdXBwb3J0KQotCQkJbHBmY19zbGk0X252bWV0X3hyaV9hYm9ydGVkKHBoYmEsIHdjcWUpOwotCQllbHNlCi0JCQlscGZjX3NsaTRfbnZtZV94cmlfYWJvcnRlZChwaGJhLCB3Y3FlLCBjcS0+aGR3cSk7Ci0KLQkJd29ya3Bvc3RlZCA9IGZhbHNlOwotCQlicmVhazsKIAlkZWZhdWx0OgogCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9FUlIsIExPR19TTEksCiAJCQkJIjA2MDMgSW52YWxpZCBDUSBzdWJ0eXBlICVkOiAiCkBAIC0xMzY5MSw3ICsxMzY1NSw3IEBAIF9fbHBmY19zbGk0X3NwX3Byb2Nlc3NfY3Eoc3RydWN0IGxwZmNfcXVldWUgKmNxKQogCQkJCQkJJmRlbGF5KTsKIAkJYnJlYWs7CiAJY2FzZSBMUEZDX1dDUToKLQkJaWYgKGNxLT5zdWJ0eXBlID09IExQRkNfRkNQIHx8IGNxLT5zdWJ0eXBlID09IExQRkNfTlZNRSkKKwkJaWYgKGNxLT5zdWJ0eXBlID09IExQRkNfSU8pCiAJCQl3b3JrcG9zdGVkIHw9IF9fbHBmY19zbGk0X3Byb2Nlc3NfY3EocGhiYSwgY3EsCiAJCQkJCQlscGZjX3NsaTRfZnBfaGFuZGxlX2NxZSwKIAkJCQkJCSZkZWxheSk7CkBAIC0xNDAwOCwxMCArMTM5NzIsNyBAQCBscGZjX3NsaTRfZnBfaGFuZGxlX2NxZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX3F1ZXVlICpjcSwKIAkJY3EtPkNRX3dxKys7CiAJCS8qIFByb2Nlc3MgdGhlIFdRIGNvbXBsZXRlIGV2ZW50ICovCiAJCXBoYmEtPmxhc3RfY29tcGxldGlvbl90aW1lID0gamlmZmllczsKLQkJaWYgKChjcS0+c3VidHlwZSA9PSBMUEZDX0ZDUCkgfHwgKGNxLT5zdWJ0eXBlID09IExQRkNfTlZNRSkpCi0JCQlscGZjX3NsaTRfZnBfaGFuZGxlX2ZjcF93Y3FlKHBoYmEsIGNxLAotCQkJCShzdHJ1Y3QgbHBmY193Y3FlX2NvbXBsZXRlICopJndjcWUpOwotCQlpZiAoY3EtPnN1YnR5cGUgPT0gTFBGQ19OVk1FX0xTKQorCQlpZiAoY3EtPnN1YnR5cGUgPT0gTFBGQ19JTyB8fCBjcS0+c3VidHlwZSA9PSBMUEZDX05WTUVfTFMpCiAJCQlscGZjX3NsaTRfZnBfaGFuZGxlX2ZjcF93Y3FlKHBoYmEsIGNxLAogCQkJCShzdHJ1Y3QgbHBmY193Y3FlX2NvbXBsZXRlICopJndjcWUpOwogCQlicmVhazsKQEAgLTE2OTE4LDYgKzE2ODc5LDggQEAgbHBmY19mY19mcmFtZV9jaGVjayhzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBmY19mcmFtZV9oZWFkZXIgKmZjX2hkcikKIAlzdHJ1Y3QgZmNfdmZ0X2hlYWRlciAqZmNfdmZ0X2hkcjsKIAl1aW50MzJfdCAqaGVhZGVyID0gKHVpbnQzMl90ICopIGZjX2hkcjsKIAorI2RlZmluZSBGQ19SQ1RMX01EU19ESUFHUwkweEY0CisKIAlzd2l0Y2ggKGZjX2hkci0+Zmhfcl9jdGwpIHsKIAljYXNlIEZDX1JDVExfRERfVU5DQVQ6CQkvKiB1bmNhdGVnb3JpemVkIGluZm9ybWF0aW9uICovCiAJY2FzZSBGQ19SQ1RMX0REX1NPTF9EQVRBOgkvKiBzb2xpY2l0ZWQgZGF0YSAqLwpAQCAtMTc0NDUsNyArMTc0MDgsNiBAQCBscGZjX3NsaTRfc2VxX2Fib3J0X3JzcChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsCiAJaWNtZC0+dWxwQ29udGV4dCA9IHBoYmEtPnNsaTRfaGJhLnJwaV9pZHNbbmRscC0+bmxwX3JwaV07CiAJY3Rpb2NiLT5jb250ZXh0MSA9IGxwZmNfbmxwX2dldChuZGxwKTsKIAotCWN0aW9jYi0+aW9jYl9jbXBsID0gTlVMTDsKIAljdGlvY2ItPnZwb3J0ID0gcGhiYS0+cHBvcnQ7CiAJY3Rpb2NiLT5pb2NiX2NtcGwgPSBscGZjX3NsaTRfc2VxX2Fib3J0X3JzcF9jbXBsOwogCWN0aW9jYi0+c2xpNF9seHJpdGFnID0gTk9fWFJJOwpAQCAtMTc5MjgsNiArMTc4OTAsMTcgQEAgbHBmY19zbGk0X2hhbmRsZV9yZWNlaXZlZF9idWZmZXIoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCQlmY2ZpID0gYmZfZ2V0KGxwZmNfcmNxZV9mY2ZfaWQsCiAJCQkgICAgICAmZG1hYnVmLT5jcV9ldmVudC5jcWUucmNxZV9jbXBsKTsKIAorCWlmIChmY19oZHItPmZoX3JfY3RsID09IDB4RjQgJiYgZmNfaGRyLT5maF90eXBlID09IDB4RkYpIHsKKwkJdnBvcnQgPSBwaGJhLT5wcG9ydDsKKwkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fSU5GTywgTE9HX1NMSSwKKwkJCQkiMjAyMyBNRFMgTG9vcGJhY2sgJWQgYnl0ZXNcbiIsCisJCQkJYmZfZ2V0KGxwZmNfcmNxZV9sZW5ndGgsCisJCQkJICAgICAgICZkbWFidWYtPmNxX2V2ZW50LmNxZS5yY3FlX2NtcGwpKTsKKwkJLyogSGFuZGxlIE1EUyBMb29wYmFjayBmcmFtZXMgKi8KKwkJbHBmY19zbGk0X2hhbmRsZV9tZHNfbG9vcGJhY2sodnBvcnQsIGRtYWJ1Zik7CisJCXJldHVybjsKKwl9CisKIAkvKiBkX2lkIHRoaXMgZnJhbWUgaXMgZGlyZWN0ZWQgdG8gKi8KIAlkaWQgPSBzbGk0X2RpZF9mcm9tX2ZjX2hkcihmY19oZHIpOwogCkBAIC0xODIxMSw2ICsxODE4NCwxMCBAQCBfX2xwZmNfc2xpNF9mcmVlX3JwaShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIGludCBycGkpCiAJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChycGksIHBoYmEtPnNsaTRfaGJhLnJwaV9ibWFzaykpIHsKIAkJcGhiYS0+c2xpNF9oYmEucnBpX2NvdW50LS07CiAJCXBoYmEtPnNsaTRfaGJhLm1heF9jZmdfcGFyYW0ucnBpX3VzZWQtLTsKKwl9IGVsc2UgeworCQlscGZjX3ByaW50Zl9sb2cocGhiYSwgS0VSTl9JTkZPLCBMT0dfU0xJLAorCQkJCSIyMDE2IHJwaSAleCBub3QgaW51c2VcbiIsCisJCQkJcnBpKTsKIAl9CiB9CiAKQEAgLTE5NDYxLDcgKzE5NDM4LDcgQEAgbHBmY19kcmFpbl90eHEoc3RydWN0IGxwZmNfaGJhICpwaGJhKQogCiAJaWYgKHBoYmEtPmxpbmtfZmxhZyAmIExTX01EU19MT09QQkFDSykgewogCQkvKiBNRFMgV1FFIGFyZSBwb3N0ZWQgb25seSB0byBmaXJzdCBXUSovCi0JCXdxID0gcGhiYS0+c2xpNF9oYmEuaGR3cVswXS5mY3Bfd3E7CisJCXdxID0gcGhiYS0+c2xpNF9oYmEuaGR3cVswXS5pb193cTsKIAkJaWYgKHVubGlrZWx5KCF3cSkpCiAJCQlyZXR1cm4gMDsKIAkJcHJpbmcgPSB3cS0+cHJpbmc7CkBAIC0xOTcxMiwxMCArMTk2ODksMTAgQEAgbHBmY19zbGk0X2lzc3VlX3dxZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX3NsaTRfaGR3X3F1ZXVlICpxcCwKIAkvKiBOVk1FX0ZDUkVRIGFuZCBOVk1FX0FCVFMgcmVxdWVzdHMgKi8KIAlpZiAocHdxZS0+aW9jYl9mbGFnICYgTFBGQ19JT19OVk1FKSB7CiAJCS8qIEdldCB0aGUgSU8gZGlzdHJpYnV0aW9uIChoYmFfd3FpZHgpIGZvciBXUSBhc3NpZ25tZW50LiAqLwotCQl3cSA9IHFwLT5udm1lX3dxOworCQl3cSA9IHFwLT5pb193cTsKIAkJcHJpbmcgPSB3cS0+cHJpbmc7CiAKLQkJYmZfc2V0KHdxZV9jcWlkLCAmd3FlLT5nZW5lcmljLndxZV9jb20sIHFwLT5udm1lX2NxX21hcCk7CisJCWJmX3NldCh3cWVfY3FpZCwgJndxZS0+Z2VuZXJpYy53cWVfY29tLCBxcC0+aW9fY3FfbWFwKTsKIAogCQlscGZjX3FwX3NwaW5fbG9ja19pcnFzYXZlKCZwcmluZy0+cmluZ19sb2NrLCBpZmxhZ3MsCiAJCQkJCSAgcXAsIHdxX2FjY2Vzcyk7CkBAIC0xOTczMiw3ICsxOTcwOSw3IEBAIGxwZmNfc2xpNF9pc3N1ZV93cWUoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19zbGk0X2hkd19xdWV1ZSAqcXAsCiAJLyogTlZNRVQgcmVxdWVzdHMgKi8KIAlpZiAocHdxZS0+aW9jYl9mbGFnICYgTFBGQ19JT19OVk1FVCkgewogCQkvKiBHZXQgdGhlIElPIGRpc3RyaWJ1dGlvbiAoaGJhX3dxaWR4KSBmb3IgV1EgYXNzaWdubWVudC4gKi8KLQkJd3EgPSBxcC0+bnZtZV93cTsKKwkJd3EgPSBxcC0+aW9fd3E7CiAJCXByaW5nID0gd3EtPnByaW5nOwogCiAJCWN0eHAgPSBwd3FlLT5jb250ZXh0MjsKQEAgLTE5NzQzLDcgKzE5NzIwLDcgQEAgbHBmY19zbGk0X2lzc3VlX3dxZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX3NsaTRfaGR3X3F1ZXVlICpxcCwKIAkJfQogCQliZl9zZXQod3FlX3hyaV90YWcsICZwd3FlLT53cWUueG1pdF9ibHNfcnNwLndxZV9jb20sCiAJCSAgICAgICBwd3FlLT5zbGk0X3hyaXRhZyk7Ci0JCWJmX3NldCh3cWVfY3FpZCwgJndxZS0+Z2VuZXJpYy53cWVfY29tLCBxcC0+bnZtZV9jcV9tYXApOworCQliZl9zZXQod3FlX2NxaWQsICZ3cWUtPmdlbmVyaWMud3FlX2NvbSwgcXAtPmlvX2NxX21hcCk7CiAKIAkJbHBmY19xcF9zcGluX2xvY2tfaXJxc2F2ZSgmcHJpbmctPnJpbmdfbG9jaywgaWZsYWdzLAogCQkJCQkgIHFwLCB3cV9hY2Nlc3MpOwpAQCAtMTk3OTAsOSArMTk3NjcsNyBAQCB2b2lkIGxwZmNfc25hcHNob3RfbXhwKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgdTMyIGh3cWlkKQogCWlmIChtdWx0aXhyaV9wb29sLT5zdGF0X3NuYXBzaG90X3Rha2VuID09IExQRkNfTVhQX1NOQVBTSE9UX1RBS0VOKSB7CiAJCXB2dF9wb29sID0gJnFwLT5wX211bHRpeHJpX3Bvb2wtPnB2dF9wb29sOwogCQlwYmxfcG9vbCA9ICZxcC0+cF9tdWx0aXhyaV9wb29sLT5wYmxfcG9vbDsKLQkJdHhjbXBscV9jbnQgPSBxcC0+ZmNwX3dxLT5wcmluZy0+dHhjbXBscV9jbnQ7Ci0JCWlmIChxcC0+bnZtZV93cSkKLQkJCXR4Y21wbHFfY250ICs9IHFwLT5udm1lX3dxLT5wcmluZy0+dHhjbXBscV9jbnQ7CisJCXR4Y21wbHFfY250ID0gcXAtPmlvX3dxLT5wcmluZy0+dHhjbXBscV9jbnQ7CiAKIAkJbXVsdGl4cmlfcG9vbC0+c3RhdF9wYmxfY291bnQgPSBwYmxfcG9vbC0+Y291bnQ7CiAJCW11bHRpeHJpX3Bvb2wtPnN0YXRfcHZ0X2NvdW50ID0gcHZ0X3Bvb2wtPmNvdW50OwpAQCAtMTk4NjIsMTIgKzE5ODM3LDkgQEAgdm9pZCBscGZjX2FkanVzdF9oaWdoX3dhdGVybWFyayhzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHUzMiBod3FpZCkKIAl3YXRlcm1hcmtfbWF4ID0geHJpX2xpbWl0OwogCXdhdGVybWFya19taW4gPSB4cmlfbGltaXQgLyAyOwogCi0JdHhjbXBscV9jbnQgPSBxcC0+ZmNwX3dxLT5wcmluZy0+dHhjbXBscV9jbnQ7CisJdHhjbXBscV9jbnQgPSBxcC0+aW9fd3EtPnByaW5nLT50eGNtcGxxX2NudDsKIAlhYnRzX2lvX2J1ZnMgPSBxcC0+YWJ0c19zY3NpX2lvX2J1ZnM7Ci0JaWYgKHFwLT5udm1lX3dxKSB7Ci0JCXR4Y21wbHFfY250ICs9IHFwLT5udm1lX3dxLT5wcmluZy0+dHhjbXBscV9jbnQ7Ci0JCWFidHNfaW9fYnVmcyArPSBxcC0+YWJ0c19udm1lX2lvX2J1ZnM7Ci0JfQorCWFidHNfaW9fYnVmcyArPSBxcC0+YWJ0c19udm1lX2lvX2J1ZnM7CiAKIAluZXdfd2F0ZXJtYXJrID0gdHhjbXBscV9jbnQgKyBhYnRzX2lvX2J1ZnM7CiAJbmV3X3dhdGVybWFyayA9IG1pbih3YXRlcm1hcmtfbWF4LCBuZXdfd2F0ZXJtYXJrKTsKQEAgLTIwMTQyLDEyICsyMDExNCw5IEBAIHZvaWQgbHBmY19yZWxlYXNlX2lvX2J1ZihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX2lvX2J1ZiAqbHBmY19uY21kLAogCQlwYmxfcG9vbCA9ICZxcC0+cF9tdWx0aXhyaV9wb29sLT5wYmxfcG9vbDsKIAkJcHZ0X3Bvb2wgPSAmcXAtPnBfbXVsdGl4cmlfcG9vbC0+cHZ0X3Bvb2w7CiAKLQkJdHhjbXBscV9jbnQgPSBxcC0+ZmNwX3dxLT5wcmluZy0+dHhjbXBscV9jbnQ7CisJCXR4Y21wbHFfY250ID0gcXAtPmlvX3dxLT5wcmluZy0+dHhjbXBscV9jbnQ7CiAJCWFidHNfaW9fYnVmcyA9IHFwLT5hYnRzX3Njc2lfaW9fYnVmczsKLQkJaWYgKHFwLT5udm1lX3dxKSB7Ci0JCQl0eGNtcGxxX2NudCArPSBxcC0+bnZtZV93cS0+cHJpbmctPnR4Y21wbHFfY250OwotCQkJYWJ0c19pb19idWZzICs9IHFwLT5hYnRzX252bWVfaW9fYnVmczsKLQkJfQorCQlhYnRzX2lvX2J1ZnMgKz0gcXAtPmFidHNfbnZtZV9pb19idWZzOwogCiAJCXhyaV9vd25lZCA9IHB2dF9wb29sLT5jb3VudCArIHR4Y21wbHFfY250ICsgYWJ0c19pb19idWZzOwogCQl4cmlfbGltaXQgPSBxcC0+cF9tdWx0aXhyaV9wb29sLT54cmlfbGltaXQ7CkBAIC0yMDE4OCw2ICsyMDE1NywxMyBAQCB2b2lkIGxwZmNfcmVsZWFzZV9pb19idWYoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfbmNtZCwKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXAtPmlvX2J1Zl9saXN0X3B1dF9sb2NrLAogCQkJCSAgICAgICBpZmxhZyk7CiAJfQorCisJaWYgKHBoYmEtPmNmZ194cHNnbCAmJiAhcGhiYS0+bnZtZXRfc3VwcG9ydCAmJgorCSAgICAhbGlzdF9lbXB0eSgmbHBmY19uY21kLT5kbWFfc2dsX3h0cmFfbGlzdCkpCisJCWxwZmNfcHV0X3NnbF9wZXJfaGR3cShwaGJhLCBscGZjX25jbWQpOworCisJaWYgKCFsaXN0X2VtcHR5KCZscGZjX25jbWQtPmRtYV9jbWRfcnNwX2xpc3QpKQorCQlscGZjX3B1dF9jbWRfcnNwX2J1Zl9wZXJfaGR3cShwaGJhLCBscGZjX25jbWQpOwogfQogCiAvKioKQEAgLTIwNDAyLDMgKzIwMzc4LDI4OCBAQCBzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfZ2V0X2lvX2J1ZihzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCiAKIAlyZXR1cm4gbHBmY19jbWQ7CiB9CisKKy8qKgorICogbHBmY19nZXRfc2dsX3Blcl9oZHdxIC0gR2V0IG9uZSBTR0wgY2h1bmsgZnJvbSBoZHdxJ3MgcG9vbAorICogQHBoYmE6IFRoZSBIQkEgZm9yIHdoaWNoIHRoaXMgY2FsbCBpcyBiZWluZyBleGVjdXRlZC4KKyAqIEBscGZjX2J1ZjogSU8gYnVmIHN0cnVjdHVyZSB0byBhcHBlbmQgdGhlIFNHTCBjaHVuaworICoKKyAqIFRoaXMgcm91dGluZSBnZXRzIG9uZSBTR0wgY2h1bmsgYnVmZmVyIGZyb20gaGR3cSdzIFNHTCBjaHVuayBwb29sLAorICogYW5kIHdpbGwgYWxsb2NhdGUgYW4gU0dMIGNodW5rIGlmIHRoZSBwb29sIGlzIGVtcHR5LgorICoKKyAqIFJldHVybiBjb2RlczoKKyAqICAgTlVMTCAtIEVycm9yCisgKiAgIFBvaW50ZXIgdG8gc2xpNF9oeWJyaWRfc2dsIC0gU3VjY2VzcworICoqLworc3RydWN0IHNsaTRfaHlicmlkX3NnbCAqCitscGZjX2dldF9zZ2xfcGVyX2hkd3Eoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKmxwZmNfYnVmKQoreworCXN0cnVjdCBzbGk0X2h5YnJpZF9zZ2wgKmxpc3RfZW50cnkgPSBOVUxMOworCXN0cnVjdCBzbGk0X2h5YnJpZF9zZ2wgKnRtcCA9IE5VTEw7CisJc3RydWN0IHNsaTRfaHlicmlkX3NnbCAqYWxsb2NhdGVkX3NnbCA9IE5VTEw7CisJc3RydWN0IGxwZmNfc2xpNF9oZHdfcXVldWUgKmhkd3EgPSBscGZjX2J1Zi0+aGR3cTsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpidWZfbGlzdCA9ICZoZHdxLT5zZ2xfbGlzdDsKKworCXNwaW5fbG9ja19pcnEoJmhkd3EtPmhkd3FfbG9jayk7CisKKwlpZiAobGlrZWx5KCFsaXN0X2VtcHR5KGJ1Zl9saXN0KSkpIHsKKwkJLyogYnJlYWsgb2ZmIDEgY2h1bmsgZnJvbSB0aGUgc2dsX2xpc3QgKi8KKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGxpc3RfZW50cnksIHRtcCwKKwkJCQkJIGJ1Zl9saXN0LCBsaXN0X25vZGUpIHsKKwkJCWxpc3RfbW92ZV90YWlsKCZsaXN0X2VudHJ5LT5saXN0X25vZGUsCisJCQkJICAgICAgICZscGZjX2J1Zi0+ZG1hX3NnbF94dHJhX2xpc3QpOworCQkJYnJlYWs7CisJCX0KKwl9IGVsc2UgeworCQkvKiBhbGxvY2F0ZSBtb3JlICovCisJCXNwaW5fdW5sb2NrX2lycSgmaGR3cS0+aGR3cV9sb2NrKTsKKwkJdG1wID0ga21hbGxvY19ub2RlKHNpemVvZigqdG1wKSwgR0ZQX0FUT01JQywKKwkJCQkgICBjcHVfdG9fbm9kZShzbXBfcHJvY2Vzc29yX2lkKCkpKTsKKwkJaWYgKCF0bXApIHsKKwkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19TTEksCisJCQkJCSI4MzUzIGVycm9yIGttYWxsb2MgbWVtb3J5IGZvciBIRFdRICIKKwkJCQkJIiVkICVzXG4iLAorCQkJCQlscGZjX2J1Zi0+aGR3cV9ubywgX19mdW5jX18pOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKworCQl0bXAtPmRtYV9zZ2wgPSBkbWFfcG9vbF9hbGxvYyhwaGJhLT5scGZjX3NnX2RtYV9idWZfcG9vbCwKKwkJCQkJICAgICAgR0ZQX0FUT01JQywgJnRtcC0+ZG1hX3BoeXNfc2dsKTsKKwkJaWYgKCF0bXAtPmRtYV9zZ2wpIHsKKwkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19TTEksCisJCQkJCSI4MzU0IGVycm9yIHBvb2xfYWxsb2MgbWVtb3J5IGZvciBIRFdRICIKKwkJCQkJIiVkICVzXG4iLAorCQkJCQlscGZjX2J1Zi0+aGR3cV9ubywgX19mdW5jX18pOworCQkJa2ZyZWUodG1wKTsKKwkJCXJldHVybiBOVUxMOworCQl9CisKKwkJc3Bpbl9sb2NrX2lycSgmaGR3cS0+aGR3cV9sb2NrKTsKKwkJbGlzdF9hZGRfdGFpbCgmdG1wLT5saXN0X25vZGUsICZscGZjX2J1Zi0+ZG1hX3NnbF94dHJhX2xpc3QpOworCX0KKworCWFsbG9jYXRlZF9zZ2wgPSBsaXN0X2xhc3RfZW50cnkoJmxwZmNfYnVmLT5kbWFfc2dsX3h0cmFfbGlzdCwKKwkJCQkJc3RydWN0IHNsaTRfaHlicmlkX3NnbCwKKwkJCQkJbGlzdF9ub2RlKTsKKworCXNwaW5fdW5sb2NrX2lycSgmaGR3cS0+aGR3cV9sb2NrKTsKKworCXJldHVybiBhbGxvY2F0ZWRfc2dsOworfQorCisvKioKKyAqIGxwZmNfcHV0X3NnbF9wZXJfaGR3cSAtIFB1dCBvbmUgU0dMIGNodW5rIGludG8gaGR3cSBwb29sCisgKiBAcGhiYTogVGhlIEhCQSBmb3Igd2hpY2ggdGhpcyBjYWxsIGlzIGJlaW5nIGV4ZWN1dGVkLgorICogQGxwZmNfYnVmOiBJTyBidWYgc3RydWN0dXJlIHdpdGggdGhlIFNHTCBjaHVuaworICoKKyAqIFRoaXMgcm91dGluZSBwdXRzIG9uZSBTR0wgY2h1bmsgYnVmZmVyIGludG8gaGR3cSdzIFNHTCBjaHVuayBwb29sLgorICoKKyAqIFJldHVybiBjb2RlczoKKyAqICAgMCAtIFN1Y2Nlc3MKKyAqICAgLUVJTlZBTCAtIEVycm9yCisgKiovCitpbnQKK2xwZmNfcHV0X3NnbF9wZXJfaGR3cShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsIHN0cnVjdCBscGZjX2lvX2J1ZiAqbHBmY19idWYpCit7CisJaW50IHJjID0gMDsKKwlzdHJ1Y3Qgc2xpNF9oeWJyaWRfc2dsICpsaXN0X2VudHJ5ID0gTlVMTDsKKwlzdHJ1Y3Qgc2xpNF9oeWJyaWRfc2dsICp0bXAgPSBOVUxMOworCXN0cnVjdCBscGZjX3NsaTRfaGR3X3F1ZXVlICpoZHdxID0gbHBmY19idWYtPmhkd3E7CisJc3RydWN0IGxpc3RfaGVhZCAqYnVmX2xpc3QgPSAmaGR3cS0+c2dsX2xpc3Q7CisKKwlzcGluX2xvY2tfaXJxKCZoZHdxLT5oZHdxX2xvY2spOworCisJaWYgKGxpa2VseSghbGlzdF9lbXB0eSgmbHBmY19idWYtPmRtYV9zZ2xfeHRyYV9saXN0KSkpIHsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGxpc3RfZW50cnksIHRtcCwKKwkJCQkJICZscGZjX2J1Zi0+ZG1hX3NnbF94dHJhX2xpc3QsCisJCQkJCSBsaXN0X25vZGUpIHsKKwkJCWxpc3RfbW92ZV90YWlsKCZsaXN0X2VudHJ5LT5saXN0X25vZGUsCisJCQkJICAgICAgIGJ1Zl9saXN0KTsKKwkJfQorCX0gZWxzZSB7CisJCXJjID0gLUVJTlZBTDsKKwl9CisKKwlzcGluX3VubG9ja19pcnEoJmhkd3EtPmhkd3FfbG9jayk7CisJcmV0dXJuIHJjOworfQorCisvKioKKyAqIGxwZmNfZnJlZV9zZ2xfcGVyX2hkd3EgLSBGcmVlIGFsbCBTR0wgY2h1bmtzIG9mIGhkd3EgcG9vbAorICogQHBoYmE6IHBoYmEgb2JqZWN0CisgKiBAaGR3cTogaGR3cSB0byBjbGVhbnVwIHNnbCBidWZmIHJlc291cmNlcyBvbgorICoKKyAqIFRoaXMgcm91dGluZSBmcmVlcyBhbGwgU0dMIGNodW5rcyBvZiBoZHdxIFNHTCBjaHVuayBwb29sLgorICoKKyAqIFJldHVybiBjb2RlczoKKyAqICAgTm9uZQorICoqLwordm9pZAorbHBmY19mcmVlX3NnbF9wZXJfaGR3cShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCisJCSAgICAgICBzdHJ1Y3QgbHBmY19zbGk0X2hkd19xdWV1ZSAqaGR3cSkKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkICpidWZfbGlzdCA9ICZoZHdxLT5zZ2xfbGlzdDsKKwlzdHJ1Y3Qgc2xpNF9oeWJyaWRfc2dsICpsaXN0X2VudHJ5ID0gTlVMTDsKKwlzdHJ1Y3Qgc2xpNF9oeWJyaWRfc2dsICp0bXAgPSBOVUxMOworCisJc3Bpbl9sb2NrX2lycSgmaGR3cS0+aGR3cV9sb2NrKTsKKworCS8qIEZyZWUgc2dsIHBvb2wgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobGlzdF9lbnRyeSwgdG1wLAorCQkJCSBidWZfbGlzdCwgbGlzdF9ub2RlKSB7CisJCWRtYV9wb29sX2ZyZWUocGhiYS0+bHBmY19zZ19kbWFfYnVmX3Bvb2wsCisJCQkgICAgICBsaXN0X2VudHJ5LT5kbWFfc2dsLAorCQkJICAgICAgbGlzdF9lbnRyeS0+ZG1hX3BoeXNfc2dsKTsKKwkJbGlzdF9kZWwoJmxpc3RfZW50cnktPmxpc3Rfbm9kZSk7CisJCWtmcmVlKGxpc3RfZW50cnkpOworCX0KKworCXNwaW5fdW5sb2NrX2lycSgmaGR3cS0+aGR3cV9sb2NrKTsKK30KKworLyoqCisgKiBscGZjX2dldF9jbWRfcnNwX2J1Zl9wZXJfaGR3cSAtIEdldCBvbmUgQ01EL1JTUCBidWZmZXIgZnJvbSBoZHdxCisgKiBAcGhiYTogVGhlIEhCQSBmb3Igd2hpY2ggdGhpcyBjYWxsIGlzIGJlaW5nIGV4ZWN1dGVkLgorICogQGxwZmNfYnVmOiBJTyBidWYgc3RydWN0dXJlIHRvIGF0dGFjaCB0aGUgQ01EL1JTUCBidWZmZXIKKyAqCisgKiBUaGlzIHJvdXRpbmUgZ2V0cyBvbmUgQ01EL1JTUCBidWZmZXIgZnJvbSBoZHdxJ3MgQ01EL1JTUCBwb29sLAorICogYW5kIHdpbGwgYWxsb2NhdGUgYW4gQ01EL1JTUCBidWZmZXIgaWYgdGhlIHBvb2wgaXMgZW1wdHkuCisgKgorICogUmV0dXJuIGNvZGVzOgorICogICBOVUxMIC0gRXJyb3IKKyAqICAgUG9pbnRlciB0byBmY3BfY21kX3JzcF9idWYgLSBTdWNjZXNzCisgKiovCitzdHJ1Y3QgZmNwX2NtZF9yc3BfYnVmICoKK2xwZmNfZ2V0X2NtZF9yc3BfYnVmX3Blcl9oZHdxKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKKwkJCSAgICAgIHN0cnVjdCBscGZjX2lvX2J1ZiAqbHBmY19idWYpCit7CisJc3RydWN0IGZjcF9jbWRfcnNwX2J1ZiAqbGlzdF9lbnRyeSA9IE5VTEw7CisJc3RydWN0IGZjcF9jbWRfcnNwX2J1ZiAqdG1wID0gTlVMTDsKKwlzdHJ1Y3QgZmNwX2NtZF9yc3BfYnVmICphbGxvY2F0ZWRfYnVmID0gTlVMTDsKKwlzdHJ1Y3QgbHBmY19zbGk0X2hkd19xdWV1ZSAqaGR3cSA9IGxwZmNfYnVmLT5oZHdxOworCXN0cnVjdCBsaXN0X2hlYWQgKmJ1Zl9saXN0ID0gJmhkd3EtPmNtZF9yc3BfYnVmX2xpc3Q7CisKKwlzcGluX2xvY2tfaXJxKCZoZHdxLT5oZHdxX2xvY2spOworCisJaWYgKGxpa2VseSghbGlzdF9lbXB0eShidWZfbGlzdCkpKSB7CisJCS8qIGJyZWFrIG9mZiAxIGNodW5rIGZyb20gdGhlIGxpc3QgKi8KKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGxpc3RfZW50cnksIHRtcCwKKwkJCQkJIGJ1Zl9saXN0LAorCQkJCQkgbGlzdF9ub2RlKSB7CisJCQlsaXN0X21vdmVfdGFpbCgmbGlzdF9lbnRyeS0+bGlzdF9ub2RlLAorCQkJCSAgICAgICAmbHBmY19idWYtPmRtYV9jbWRfcnNwX2xpc3QpOworCQkJYnJlYWs7CisJCX0KKwl9IGVsc2UgeworCQkvKiBhbGxvY2F0ZSBtb3JlICovCisJCXNwaW5fdW5sb2NrX2lycSgmaGR3cS0+aGR3cV9sb2NrKTsKKwkJdG1wID0ga21hbGxvY19ub2RlKHNpemVvZigqdG1wKSwgR0ZQX0FUT01JQywKKwkJCQkgICBjcHVfdG9fbm9kZShzbXBfcHJvY2Vzc29yX2lkKCkpKTsKKwkJaWYgKCF0bXApIHsKKwkJCWxwZmNfcHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19TTEksCisJCQkJCSI4MzU1IGVycm9yIGttYWxsb2MgbWVtb3J5IGZvciBIRFdRICIKKwkJCQkJIiVkICVzXG4iLAorCQkJCQlscGZjX2J1Zi0+aGR3cV9ubywgX19mdW5jX18pOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKworCQl0bXAtPmZjcF9jbW5kID0gZG1hX3Bvb2xfYWxsb2MocGhiYS0+bHBmY19jbWRfcnNwX2J1Zl9wb29sLAorCQkJCQkJR0ZQX0FUT01JQywKKwkJCQkJCSZ0bXAtPmZjcF9jbWRfcnNwX2RtYV9oYW5kbGUpOworCisJCWlmICghdG1wLT5mY3BfY21uZCkgeworCQkJbHBmY19wcmludGZfbG9nKHBoYmEsIEtFUk5fSU5GTywgTE9HX1NMSSwKKwkJCQkJIjgzNTYgZXJyb3IgcG9vbF9hbGxvYyBtZW1vcnkgZm9yIEhEV1EgIgorCQkJCQkiJWQgJXNcbiIsCisJCQkJCWxwZmNfYnVmLT5oZHdxX25vLCBfX2Z1bmNfXyk7CisJCQlrZnJlZSh0bXApOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKworCQl0bXAtPmZjcF9yc3AgPSAoc3RydWN0IGZjcF9yc3AgKikoKHVpbnQ4X3QgKil0bXAtPmZjcF9jbW5kICsKKwkJCQlzaXplb2Yoc3RydWN0IGZjcF9jbW5kKSk7CisKKwkJc3Bpbl9sb2NrX2lycSgmaGR3cS0+aGR3cV9sb2NrKTsKKwkJbGlzdF9hZGRfdGFpbCgmdG1wLT5saXN0X25vZGUsICZscGZjX2J1Zi0+ZG1hX2NtZF9yc3BfbGlzdCk7CisJfQorCisJYWxsb2NhdGVkX2J1ZiA9IGxpc3RfbGFzdF9lbnRyeSgmbHBmY19idWYtPmRtYV9jbWRfcnNwX2xpc3QsCisJCQkJCXN0cnVjdCBmY3BfY21kX3JzcF9idWYsCisJCQkJCWxpc3Rfbm9kZSk7CisKKwlzcGluX3VubG9ja19pcnEoJmhkd3EtPmhkd3FfbG9jayk7CisKKwlyZXR1cm4gYWxsb2NhdGVkX2J1ZjsKK30KKworLyoqCisgKiBscGZjX3B1dF9jbWRfcnNwX2J1Zl9wZXJfaGR3cSAtIFB1dCBvbmUgQ01EL1JTUCBidWZmZXIgaW50byBoZHdxIHBvb2wKKyAqIEBwaGJhOiBUaGUgSEJBIGZvciB3aGljaCB0aGlzIGNhbGwgaXMgYmVpbmcgZXhlY3V0ZWQuCisgKiBAbHBmY19idWY6IElPIGJ1ZiBzdHJ1Y3R1cmUgd2l0aCB0aGUgQ01EL1JTUCBidWYKKyAqCisgKiBUaGlzIHJvdXRpbmUgcHV0cyBvbmUgQ01EL1JTUCBidWZmZXIgaW50byBleGVjdXRpbmcgQ1BVJ3MgQ01EL1JTUCBwb29sLgorICoKKyAqIFJldHVybiBjb2RlczoKKyAqICAgMCAtIFN1Y2Nlc3MKKyAqICAgLUVJTlZBTCAtIEVycm9yCisgKiovCitpbnQKK2xwZmNfcHV0X2NtZF9yc3BfYnVmX3Blcl9oZHdxKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKKwkJCSAgICAgIHN0cnVjdCBscGZjX2lvX2J1ZiAqbHBmY19idWYpCit7CisJaW50IHJjID0gMDsKKwlzdHJ1Y3QgZmNwX2NtZF9yc3BfYnVmICpsaXN0X2VudHJ5ID0gTlVMTDsKKwlzdHJ1Y3QgZmNwX2NtZF9yc3BfYnVmICp0bXAgPSBOVUxMOworCXN0cnVjdCBscGZjX3NsaTRfaGR3X3F1ZXVlICpoZHdxID0gbHBmY19idWYtPmhkd3E7CisJc3RydWN0IGxpc3RfaGVhZCAqYnVmX2xpc3QgPSAmaGR3cS0+Y21kX3JzcF9idWZfbGlzdDsKKworCXNwaW5fbG9ja19pcnEoJmhkd3EtPmhkd3FfbG9jayk7CisKKwlpZiAobGlrZWx5KCFsaXN0X2VtcHR5KCZscGZjX2J1Zi0+ZG1hX2NtZF9yc3BfbGlzdCkpKSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShsaXN0X2VudHJ5LCB0bXAsCisJCQkJCSAmbHBmY19idWYtPmRtYV9jbWRfcnNwX2xpc3QsCisJCQkJCSBsaXN0X25vZGUpIHsKKwkJCWxpc3RfbW92ZV90YWlsKCZsaXN0X2VudHJ5LT5saXN0X25vZGUsCisJCQkJICAgICAgIGJ1Zl9saXN0KTsKKwkJfQorCX0gZWxzZSB7CisJCXJjID0gLUVJTlZBTDsKKwl9CisKKwlzcGluX3VubG9ja19pcnEoJmhkd3EtPmhkd3FfbG9jayk7CisJcmV0dXJuIHJjOworfQorCisvKioKKyAqIGxwZmNfZnJlZV9jbWRfcnNwX2J1Zl9wZXJfaGR3cSAtIEZyZWUgYWxsIENNRC9SU1AgY2h1bmtzIG9mIGhkd3EgcG9vbAorICogQHBoYmE6IHBoYmEgb2JqZWN0CisgKiBAaGR3cTogaGR3cSB0byBjbGVhbnVwIGNtZCByc3AgYnVmZiByZXNvdXJjZXMgb24KKyAqCisgKiBUaGlzIHJvdXRpbmUgZnJlZXMgYWxsIENNRC9SU1AgYnVmZmVycyBvZiBoZHdxJ3MgQ01EL1JTUCBidWYgcG9vbC4KKyAqCisgKiBSZXR1cm4gY29kZXM6CisgKiAgIE5vbmUKKyAqKi8KK3ZvaWQKK2xwZmNfZnJlZV9jbWRfcnNwX2J1Zl9wZXJfaGR3cShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCisJCQkgICAgICAgc3RydWN0IGxwZmNfc2xpNF9oZHdfcXVldWUgKmhkd3EpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqYnVmX2xpc3QgPSAmaGR3cS0+Y21kX3JzcF9idWZfbGlzdDsKKwlzdHJ1Y3QgZmNwX2NtZF9yc3BfYnVmICpsaXN0X2VudHJ5ID0gTlVMTDsKKwlzdHJ1Y3QgZmNwX2NtZF9yc3BfYnVmICp0bXAgPSBOVUxMOworCisJc3Bpbl9sb2NrX2lycSgmaGR3cS0+aGR3cV9sb2NrKTsKKworCS8qIEZyZWUgY21kX3JzcCBidWYgcG9vbCAqLworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShsaXN0X2VudHJ5LCB0bXAsCisJCQkJIGJ1Zl9saXN0LAorCQkJCSBsaXN0X25vZGUpIHsKKwkJZG1hX3Bvb2xfZnJlZShwaGJhLT5scGZjX2NtZF9yc3BfYnVmX3Bvb2wsCisJCQkgICAgICBsaXN0X2VudHJ5LT5mY3BfY21uZCwKKwkJCSAgICAgIGxpc3RfZW50cnktPmZjcF9jbWRfcnNwX2RtYV9oYW5kbGUpOworCQlsaXN0X2RlbCgmbGlzdF9lbnRyeS0+bGlzdF9ub2RlKTsKKwkJa2ZyZWUobGlzdF9lbnRyeSk7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxKCZoZHdxLT5oZHdxX2xvY2spOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zbGkuaCBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfc2xpLmgKaW5kZXggNDY3YjgyNy4uMzdmYmNiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zbGkuaAorKysgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3NsaS5oCkBAIC0zNjUsOSArMzY1LDE4IEBAIHN0cnVjdCBscGZjX2lvX2J1ZiB7CiAJLyogQ29tbW9uIGZpZWxkcyAqLwogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIAl2b2lkICpkYXRhOworCiAJZG1hX2FkZHJfdCBkbWFfaGFuZGxlOwogCWRtYV9hZGRyX3QgZG1hX3BoeXNfc2dsOwotCXN0cnVjdCBzbGk0X3NnZSAqZG1hX3NnbDsKKworCXN0cnVjdCBzbGk0X3NnZSAqZG1hX3NnbDsgLyogaW5pdGlhbCBzZWdtZW50IGNodW5rICovCisKKwkvKiBsaW5rZWQgbGlzdCBvZiBleHRyYSBzbGk0X2h5YnJpZF9zZ2UgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGRtYV9zZ2xfeHRyYV9saXN0OworCisJLyogbGlzdCBoZWFkIGZvciBmY3BfY21kX3JzcCBidWYgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGRtYV9jbWRfcnNwX2xpc3Q7CisKIAlzdHJ1Y3QgbHBmY19pb2NicSBjdXJfaW9jYnE7CiAJc3RydWN0IGxwZmNfc2xpNF9oZHdfcXVldWUgKmhkd3E7CiAJdWludDE2X3QgaGR3cV9ubzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfc2xpNC5oIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zbGk0LmgKaW5kZXggYTgxZWYwMi4uMGQ0ODgyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zbGk0LmgKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zbGk0LmgKQEAgLTQ5LDkgKzQ5LDYgQEAKICNkZWZpbmUgTFBGQ19GQ1BfTVFfVEhSRVNIT0xEX01BWAkyNTYKICNkZWZpbmUgTFBGQ19GQ1BfTVFfVEhSRVNIT0xEX0RFRgk4CiAKLS8qIENvbW1vbiBidWZmZXIgc2l6ZSB0byBhY2NvbWlkYXRlIFNDU0kgYW5kIE5WTUUgSU8gYnVmZmVycyAqLwotI2RlZmluZSBMUEZDX0NPTU1PTl9JT19CVUZfU1oJNzY4Ci0KIC8qCiAgKiBQcm92aWRlIHRoZSBkZWZhdWx0IEZDRiBSZWNvcmQgYXR0cmlidXRlcyB1c2VkIGJ5IHRoZSBkcml2ZXIKICAqIHdoZW4gbm9uRklQIG1vZGUgaXMgY29uZmlndXJlZCBhbmQgdGhlcmUgaXMgbm8gb3RoZXIgZGVmYXVsdApAQCAtMTE0LDkgKzExMSw4IEBAIGVudW0gbHBmY19zbGk0X3F1ZXVlX3R5cGUgewogZW51bSBscGZjX3NsaTRfcXVldWVfc3VidHlwZSB7CiAJTFBGQ19OT05FLAogCUxQRkNfTUJPWCwKLQlMUEZDX0ZDUCwKKwlMUEZDX0lPLAogCUxQRkNfRUxTLAotCUxQRkNfTlZNRSwKIAlMUEZDX05WTUVULAogCUxQRkNfTlZNRV9MUywKIAlMUEZDX1VTT0wKQEAgLTY0NiwyMiArNjQyLDE3IEBAIHN0cnVjdCBscGZjX2VxX2ludHJfaW5mbyB7CiBzdHJ1Y3QgbHBmY19zbGk0X2hkd19xdWV1ZSB7CiAJLyogUG9pbnRlcnMgdG8gdGhlIGNvbnN0cnVjdGVkIFNMSTQgcXVldWVzICovCiAJc3RydWN0IGxwZmNfcXVldWUgKmhiYV9lcTsgIC8qIEV2ZW50IHF1ZXVlcyBmb3IgSEJBICovCi0Jc3RydWN0IGxwZmNfcXVldWUgKmZjcF9jcTsgIC8qIEZhc3QtcGF0aCBGQ1AgY29tcGwgcXVldWUgKi8KLQlzdHJ1Y3QgbHBmY19xdWV1ZSAqbnZtZV9jcTsgLyogRmFzdC1wYXRoIE5WTUUgY29tcGwgcXVldWUgKi8KLQlzdHJ1Y3QgbHBmY19xdWV1ZSAqZmNwX3dxOyAgLyogRmFzdC1wYXRoIEZDUCB3b3JrIHF1ZXVlICovCi0Jc3RydWN0IGxwZmNfcXVldWUgKm52bWVfd3E7IC8qIEZhc3QtcGF0aCBOVk1FIHdvcmsgcXVldWUgKi8KLQl1aW50MTZfdCBmY3BfY3FfbWFwOwotCXVpbnQxNl90IG52bWVfY3FfbWFwOworCXN0cnVjdCBscGZjX3F1ZXVlICppb19jcTsgICAvKiBGYXN0LXBhdGggRkNQICYgTlZNRSBjb21wbCBxdWV1ZSAqLworCXN0cnVjdCBscGZjX3F1ZXVlICppb193cTsgICAvKiBGYXN0LXBhdGggRkNQICYgTlZNRSB3b3JrIHF1ZXVlICovCisJdWludDE2X3QgaW9fY3FfbWFwOwogCiAJLyogS2VlcCB0cmFjayBvZiBJTyBidWZmZXJzIGZvciB0aGlzIGhhcmR3YXJlIHF1ZXVlICovCiAJc3BpbmxvY2tfdCBpb19idWZfbGlzdF9nZXRfbG9jazsgIC8qIENvbW1vbiBidWYgYWxsb2MgbGlzdCBsb2NrICovCiAJc3RydWN0IGxpc3RfaGVhZCBscGZjX2lvX2J1Zl9saXN0X2dldDsKIAlzcGlubG9ja190IGlvX2J1Zl9saXN0X3B1dF9sb2NrOyAgLyogQ29tbW9uIGJ1ZiBmcmVlIGxpc3QgbG9jayAqLwogCXN0cnVjdCBsaXN0X2hlYWQgbHBmY19pb19idWZfbGlzdF9wdXQ7Ci0Jc3BpbmxvY2tfdCBhYnRzX3Njc2lfYnVmX2xpc3RfbG9jazsgLyogbGlzdCBvZiBhYm9ydGVkIFNDU0kgSU9zICovCi0Jc3RydWN0IGxpc3RfaGVhZCBscGZjX2FidHNfc2NzaV9idWZfbGlzdDsKLQlzcGlubG9ja190IGFidHNfbnZtZV9idWZfbGlzdF9sb2NrOyAvKiBsaXN0IG9mIGFib3J0ZWQgTlZNRSBJT3MgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIGxwZmNfYWJ0c19udm1lX2J1Zl9saXN0OworCXNwaW5sb2NrX3QgYWJ0c19pb19idWZfbGlzdF9sb2NrOyAvKiBsaXN0IG9mIGFib3J0ZWQgSU9zICovCisJc3RydWN0IGxpc3RfaGVhZCBscGZjX2FidHNfaW9fYnVmX2xpc3Q7CiAJdWludDMyX3QgdG90YWxfaW9fYnVmczsKIAl1aW50MzJfdCBnZXRfaW9fYnVmczsKIAl1aW50MzJfdCBwdXRfaW9fYnVmczsKQEAgLTY4NSw2ICs2NzYsMTMgQEAgc3RydWN0IGxwZmNfc2xpNF9oZHdfcXVldWUgewogCXVpbnQzMl90IGNwdWNoZWNrX3htdF9pb1tMUEZDX0NIRUNLX0NQVV9DTlRdOwogCXVpbnQzMl90IGNwdWNoZWNrX2NtcGxfaW9bTFBGQ19DSEVDS19DUFVfQ05UXTsKICNlbmRpZgorCisJLyogUGVyIEhEV1EgcG9vbCByZXNvdXJjZXMgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIHNnbF9saXN0OworCXN0cnVjdCBsaXN0X2hlYWQgY21kX3JzcF9idWZfbGlzdDsKKworCS8qIExvY2sgZm9yIHN5bmNpbmcgUGVyIEhEV1EgcG9vbCByZXNvdXJjZXMgKi8KKwlzcGlubG9ja190IGhkd3FfbG9jazsKIH07CiAKICNpZmRlZiBMUEZDX0hEV1FfTE9DS19TVEFUCkBAIC04NTAsOCArODQ4LDggQEAgc3RydWN0IGxwZmNfc2xpNF9oYmEgewogCXN0cnVjdCBscGZjX3F1ZXVlICoqY3FfbG9va3VwOwogCXN0cnVjdCBsaXN0X2hlYWQgbHBmY19lbHNfc2dsX2xpc3Q7CiAJc3RydWN0IGxpc3RfaGVhZCBscGZjX2FidHNfZWxzX3NnbF9saXN0OwotCXNwaW5sb2NrX3QgYWJ0c19zY3NpX2J1Zl9saXN0X2xvY2s7IC8qIGxpc3Qgb2YgYWJvcnRlZCBTQ1NJIElPcyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgbHBmY19hYnRzX3Njc2lfYnVmX2xpc3Q7CisJc3BpbmxvY2tfdCBhYnRzX2lvX2J1Zl9saXN0X2xvY2s7IC8qIGxpc3Qgb2YgYWJvcnRlZCBTQ1NJIElPcyAqLworCXN0cnVjdCBsaXN0X2hlYWQgbHBmY19hYnRzX2lvX2J1Zl9saXN0OwogCXN0cnVjdCBsaXN0X2hlYWQgbHBmY19udm1ldF9zZ2xfbGlzdDsKIAlzcGlubG9ja190IGFidHNfbnZtZXRfYnVmX2xpc3RfbG9jazsgLyogbGlzdCBvZiBhYm9ydGVkIE5WTUVUIElPcyAqLwogCXN0cnVjdCBsaXN0X2hlYWQgbHBmY19hYnRzX252bWV0X2N0eF9saXN0OwpAQCAtMTA1NiwxMCArMTA1NCwxMSBAQCBpbnQgbHBmY19zbGk0X3Jlc3VtZV9ycGkoc3RydWN0IGxwZmNfbm9kZWxpc3QgKiwKIAkJCXZvaWQgKCopKHN0cnVjdCBscGZjX2hiYSAqLCBMUEZDX01CT1hRX3QgKiksIHZvaWQgKik7CiB2b2lkIGxwZmNfc2xpNF9mY3BfeHJpX2Fib3J0X2V2ZW50X3Byb2Moc3RydWN0IGxwZmNfaGJhICopOwogdm9pZCBscGZjX3NsaTRfZWxzX3hyaV9hYm9ydF9ldmVudF9wcm9jKHN0cnVjdCBscGZjX2hiYSAqKTsKLXZvaWQgbHBmY19zbGk0X2ZjcF94cmlfYWJvcnRlZChzdHJ1Y3QgbHBmY19oYmEgKiwKLQkJCSAgICAgICBzdHJ1Y3Qgc2xpNF93Y3FlX3hyaV9hYm9ydGVkICosIGludCk7CiB2b2lkIGxwZmNfc2xpNF9udm1lX3hyaV9hYm9ydGVkKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKLQkJCQlzdHJ1Y3Qgc2xpNF93Y3FlX3hyaV9hYm9ydGVkICpheHJpLCBpbnQgaWR4KTsKKwkJCQlzdHJ1Y3Qgc2xpNF93Y3FlX3hyaV9hYm9ydGVkICpheHJpLAorCQkJCXN0cnVjdCBscGZjX2lvX2J1ZiAqbHBmY19uY21kKTsKK3ZvaWQgbHBmY19zbGk0X2lvX3hyaV9hYm9ydGVkKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKKwkJCSAgICAgIHN0cnVjdCBzbGk0X3djcWVfeHJpX2Fib3J0ZWQgKmF4cmksIGludCBpZHgpOwogdm9pZCBscGZjX3NsaTRfbnZtZXRfeHJpX2Fib3J0ZWQoc3RydWN0IGxwZmNfaGJhICpwaGJhLAogCQkJCSBzdHJ1Y3Qgc2xpNF93Y3FlX3hyaV9hYm9ydGVkICpheHJpKTsKIHZvaWQgbHBmY19zbGk0X2Vsc194cmlfYWJvcnRlZChzdHJ1Y3QgbHBmY19oYmEgKiwKQEAgLTEwOTQsNiArMTA5MywxNyBAQCBpbnQgbHBmY19zbGk0X3Bvc3Rfc3RhdHVzX2NoZWNrKHN0cnVjdCBscGZjX2hiYSAqKTsKIHVpbnQ4X3QgbHBmY19zbGlfY29uZmlnX21ib3hfc3Vic3lzX2dldChzdHJ1Y3QgbHBmY19oYmEgKiwgTFBGQ19NQk9YUV90ICopOwogdWludDhfdCBscGZjX3NsaV9jb25maWdfbWJveF9vcGNvZGVfZ2V0KHN0cnVjdCBscGZjX2hiYSAqLCBMUEZDX01CT1hRX3QgKik7CiB2b2lkIGxwZmNfc2xpNF9yYXNfZG1hX2ZyZWUoc3RydWN0IGxwZmNfaGJhICpwaGJhKTsKK3N0cnVjdCBzbGk0X2h5YnJpZF9zZ2wgKmxwZmNfZ2V0X3NnbF9wZXJfaGR3cShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCisJCQkJCSAgICAgIHN0cnVjdCBscGZjX2lvX2J1ZiAqYnVmKTsKK3N0cnVjdCBmY3BfY21kX3JzcF9idWYgKmxwZmNfZ2V0X2NtZF9yc3BfYnVmX3Blcl9oZHdxKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKKwkJCQkJCSAgICAgIHN0cnVjdCBscGZjX2lvX2J1ZiAqYnVmKTsKK2ludCBscGZjX3B1dF9zZ2xfcGVyX2hkd3Eoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBzdHJ1Y3QgbHBmY19pb19idWYgKmJ1Zik7CitpbnQgbHBmY19wdXRfY21kX3JzcF9idWZfcGVyX2hkd3Eoc3RydWN0IGxwZmNfaGJhICpwaGJhLAorCQkJCSAgc3RydWN0IGxwZmNfaW9fYnVmICpidWYpOwordm9pZCBscGZjX2ZyZWVfc2dsX3Blcl9oZHdxKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwKKwkJCSAgICBzdHJ1Y3QgbHBmY19zbGk0X2hkd19xdWV1ZSAqaGR3cSk7Cit2b2lkIGxwZmNfZnJlZV9jbWRfcnNwX2J1Zl9wZXJfaGR3cShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCisJCQkJICAgIHN0cnVjdCBscGZjX3NsaTRfaGR3X3F1ZXVlICpoZHdxKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCAqbHBmY19zbGk0X3FlKHN0cnVjdCBscGZjX3F1ZXVlICpxLCB1aW50MTZfdCBpZHgpCiB7CiAJcmV0dXJuIHEtPnFfcGdzW2lkeCAvIHEtPmVudHJ5X2NudF9wZXJfcGddICsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfdmVyc2lvbi5oIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY192ZXJzaW9uLmgKaW5kZXggZjdlOTNhYS4uYjhhYWUzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY192ZXJzaW9uLmgKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY192ZXJzaW9uLmgKQEAgLTIwLDcgKzIwLDcgQEAKICAqIGluY2x1ZGVkIHdpdGggdGhpcyBwYWNrYWdlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2RlZmluZSBMUEZDX0RSSVZFUl9WRVJTSU9OICIxMi4yLjAuMyIKKyNkZWZpbmUgTFBGQ19EUklWRVJfVkVSU0lPTiAiMTIuNC4wLjAiCiAjZGVmaW5lIExQRkNfRFJJVkVSX05BTUUJCSJscGZjIgogCiAvKiBVc2VkIGZvciBTTEkgMi8zICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3Zwb3J0LmMgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3Zwb3J0LmMKaW5kZXggMzQzYmM3MS4uYjc2NjQ2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY192cG9ydC5jCisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfdnBvcnQuYwpAQCAtNTI3LDkgKzUyNywxMSBAQCBkaXNhYmxlX3Zwb3J0KHN0cnVjdCBmY192cG9ydCAqZmNfdnBvcnQpCiAJICogc2NzaV9ob3N0X3B1dCgpIHRvIHJlbGVhc2UgdGhlIHZwb3J0LgogCSAqLwogCWxwZmNfbWJ4X3VucmVnX3ZwaSh2cG9ydCk7Ci0Jc3Bpbl9sb2NrX2lycShzaG9zdC0+aG9zdF9sb2NrKTsKLQl2cG9ydC0+ZmNfZmxhZyB8PSBGQ19WUE9SVF9ORUVEU19JTklUX1ZQSTsKLQlzcGluX3VubG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CisJaWYgKHBoYmEtPnNsaV9yZXYgPT0gTFBGQ19TTElfUkVWNCkgeworCQlzcGluX2xvY2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOworCQl2cG9ydC0+ZmNfZmxhZyB8PSBGQ19WUE9SVF9ORUVEU19JTklUX1ZQSTsKKwkJc3Bpbl91bmxvY2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOworCX0KIAogCWxwZmNfdnBvcnRfc2V0X3N0YXRlKHZwb3J0LCBGQ19WUE9SVF9ESVNBQkxFRCk7CiAJbHBmY19wcmludGZfdmxvZyh2cG9ydCwgS0VSTl9FUlIsIExPR19WUE9SVCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9zYXMuaCBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9zYXMuaAppbmRleCBhMTRlODM0Li5hNmU3ODhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzLmgKKysrIGIvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhcy5oCkBAIC0yNDI5LDYgKzI0MjksNyBAQCBzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSB7CiAJdTggYWRhcHRlcl90eXBlOwogCWJvb2wgY29uc2lzdGVudF9tYXNrXzY0Yml0OwogCWJvb2wgc3VwcG9ydF9udm1lX3Bhc3N0aHJ1OworCWJvb2wgZW5hYmxlX3NkZXZfbWF4X3FkOwogCXU4IHRhc2tfYWJvcnRfdG1vOwogCXU4IG1heF9yZXNldF90bW87CiAJdTggc25hcGR1bXBfd2FpdF90aW1lOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhc19iYXNlLmMgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzX2Jhc2UuYwppbmRleCBmOWYwNzkzLi40MmNmMzhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzX2Jhc2UuYworKysgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzX2Jhc2UuYwpAQCAtMTA5LDYgKzEwOSwxMCBAQCBpbnQgZXZlbnRfbG9nX2xldmVsID0gTUZJX0VWVF9DTEFTU19DUklUSUNBTDsKIG1vZHVsZV9wYXJhbShldmVudF9sb2dfbGV2ZWwsIGludCwgMDY0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKGV2ZW50X2xvZ19sZXZlbCwgIkFzeW5jaHJvbm91cyBldmVudCBsb2dnaW5nIGxldmVsLSByYW5nZSBpczogLTIoQ0xBU1NfREVCVUcpIHRvIDQoQ0xBU1NfREVBRCksIERlZmF1bHQ6IDIoQ0xBU1NfQ1JJVElDQUwpIik7CiAKK3Vuc2lnbmVkIGludCBlbmFibGVfc2Rldl9tYXhfcWQ7Cittb2R1bGVfcGFyYW0oZW5hYmxlX3NkZXZfbWF4X3FkLCBpbnQsIDA0NDQpOworTU9EVUxFX1BBUk1fREVTQyhlbmFibGVfc2Rldl9tYXhfcWQsICJFbmFibGUgc2RldiBtYXggcWQgYXMgY2FuX3F1ZXVlLiBEZWZhdWx0OiAwIik7CisKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9WRVJTSU9OKE1FR0FTQVNfVkVSU0lPTik7CiBNT0RVTEVfQVVUSE9SKCJtZWdhcmFpZGxpbnV4LnBkbEBicm9hZGNvbS5jb20iKTsKQEAgLTE5NDEsMjUgKzE5NDUsMTkgQEAgbWVnYXNhc19zZXRfbnZtZV9kZXZpY2VfcHJvcGVydGllcyhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsIHUzMiBtYXhfaW9fc2l6ZSkKIAlibGtfcXVldWVfdmlydF9ib3VuZGFyeShzZGV2LT5yZXF1ZXN0X3F1ZXVlLCBtcl9udm1lX3BnX3NpemUgLSAxKTsKIH0KIAotCiAvKgotICogbWVnYXNhc19zZXRfc3RhdGljX3RhcmdldF9wcm9wZXJ0aWVzIC0KLSAqIERldmljZSBwcm9wZXJ0eSBzZXQgYnkgZHJpdmVyIGFyZSBzdGF0aWMgYW5kIGl0IGlzIG5vdCByZXF1aXJlZCB0byBiZQotICogdXBkYXRlZCBhZnRlciBPQ1IuCi0gKgotICogc2V0IGlvIHRpbWVvdXQKLSAqIHNldCBkZXZpY2UgcXVldWUgZGVwdGgKLSAqIHNldCBudm1lIGRldmljZSBwcm9wZXJ0aWVzLiBzZWUgLSBtZWdhc2FzX3NldF9udm1lX2RldmljZV9wcm9wZXJ0aWVzCisgKiBtZWdhc2FzX3NldF9md19hc3Npc3RlZF9xZCAtCisgKiBzZXQgZGV2aWNlIHF1ZXVlIGRlcHRoIHRvIGNhbl9xdWV1ZQorICogc2V0IGRldmljZSBxdWV1ZSBkZXB0aCB0byBmdyBhc3Npc3RlZCBxZAogICoKICAqIEBzZGV2OgkJCQlzY3NpIGRldmljZQogICogQGlzX3RhcmdldF9wcm9wCQkJdHJ1ZSwgaWYgZncgcHJvdmlkZWQgdGFyZ2V0IHByb3BlcnRpZXMuCiAgKi8KLXN0YXRpYyB2b2lkIG1lZ2FzYXNfc2V0X3N0YXRpY190YXJnZXRfcHJvcGVydGllcyhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsCitzdGF0aWMgdm9pZCBtZWdhc2FzX3NldF9md19hc3Npc3RlZF9xZChzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsCiAJCQkJCQkgYm9vbCBpc190YXJnZXRfcHJvcCkKIHsKIAl1OCBpbnRlcmZhY2VfdHlwZTsKIAl1MzIgZGV2aWNlX3FkID0gTUVHQVNBU19ERUZBVUxUX0NNRF9QRVJfTFVOOwotCXUzMiBtYXhfaW9fc2l6ZV9rYiA9IE1SX0RFRkFVTFRfTlZNRV9NRFRTX0tCOwogCXUzMiB0Z3RfZGV2aWNlX3FkOwogCXN0cnVjdCBtZWdhc2FzX2luc3RhbmNlICppbnN0YW5jZTsKIAlzdHJ1Y3QgTVJfUFJJVl9ERVZJQ0UgKm1yX2RldmljZV9wcml2X2RhdGE7CkBAIC0xOTY4LDExICsxOTY2LDYgQEAgc3RhdGljIHZvaWQgbWVnYXNhc19zZXRfc3RhdGljX3RhcmdldF9wcm9wZXJ0aWVzKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldiwKIAltcl9kZXZpY2VfcHJpdl9kYXRhID0gc2Rldi0+aG9zdGRhdGE7CiAJaW50ZXJmYWNlX3R5cGUgID0gbXJfZGV2aWNlX3ByaXZfZGF0YS0+aW50ZXJmYWNlX3R5cGU7CiAKLQkvKgotCSAqIFRoZSBSQUlEIGZpcm13YXJlIG1heSByZXF1aXJlIGV4dGVuZGVkIHRpbWVvdXRzLgotCSAqLwotCWJsa19xdWV1ZV9ycV90aW1lb3V0KHNkZXYtPnJlcXVlc3RfcXVldWUsIHNjbWRfdGltZW91dCAqIEhaKTsKLQogCXN3aXRjaCAoaW50ZXJmYWNlX3R5cGUpIHsKIAljYXNlIFNBU19QRDoKIAkJZGV2aWNlX3FkID0gTUVHQVNBU19TQVNfUUQ7CkBAIC0xOTkwLDE4ICsxOTgzLDQ5IEBAIHN0YXRpYyB2b2lkIG1lZ2FzYXNfc2V0X3N0YXRpY190YXJnZXRfcHJvcGVydGllcyhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsCiAJCWlmICh0Z3RfZGV2aWNlX3FkICYmCiAJCSAgICAodGd0X2RldmljZV9xZCA8PSBpbnN0YW5jZS0+aG9zdC0+Y2FuX3F1ZXVlKSkKIAkJCWRldmljZV9xZCA9IHRndF9kZXZpY2VfcWQ7Ci0KLQkJLyogbWF4X2lvX3NpemVfa2Igd2lsbCBiZSBzZXQgdG8gbm9uIHplcm8gZm9yCi0JCSAqIG52bWUgYmFzZWQgdmQgYW5kIHN5c3BkLgotCQkgKi8KLQkJbWF4X2lvX3NpemVfa2IgPSBsZTMyX3RvX2NwdShpbnN0YW5jZS0+dGd0X3Byb3AtPm1heF9pb19zaXplX2tiKTsKIAl9CiAKKwlpZiAoaW5zdGFuY2UtPmVuYWJsZV9zZGV2X21heF9xZCAmJiBpbnRlcmZhY2VfdHlwZSAhPSBVTktOT1dOX0RSSVZFKQorCQlkZXZpY2VfcWQgPSBpbnN0YW5jZS0+aG9zdC0+Y2FuX3F1ZXVlOworCisJc2NzaV9jaGFuZ2VfcXVldWVfZGVwdGgoc2RldiwgZGV2aWNlX3FkKTsKK30KKworLyoKKyAqIG1lZ2FzYXNfc2V0X3N0YXRpY190YXJnZXRfcHJvcGVydGllcyAtCisgKiBEZXZpY2UgcHJvcGVydHkgc2V0IGJ5IGRyaXZlciBhcmUgc3RhdGljIGFuZCBpdCBpcyBub3QgcmVxdWlyZWQgdG8gYmUKKyAqIHVwZGF0ZWQgYWZ0ZXIgT0NSLgorICoKKyAqIHNldCBpbyB0aW1lb3V0CisgKiBzZXQgZGV2aWNlIHF1ZXVlIGRlcHRoCisgKiBzZXQgbnZtZSBkZXZpY2UgcHJvcGVydGllcy4gc2VlIC0gbWVnYXNhc19zZXRfbnZtZV9kZXZpY2VfcHJvcGVydGllcworICoKKyAqIEBzZGV2OgkJCQlzY3NpIGRldmljZQorICogQGlzX3RhcmdldF9wcm9wCQkJdHJ1ZSwgaWYgZncgcHJvdmlkZWQgdGFyZ2V0IHByb3BlcnRpZXMuCisgKi8KK3N0YXRpYyB2b2lkIG1lZ2FzYXNfc2V0X3N0YXRpY190YXJnZXRfcHJvcGVydGllcyhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsCisJCQkJCQkgYm9vbCBpc190YXJnZXRfcHJvcCkKK3sKKwl1MzIgbWF4X2lvX3NpemVfa2IgPSBNUl9ERUZBVUxUX05WTUVfTURUU19LQjsKKwlzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2U7CisKKwlpbnN0YW5jZSA9IG1lZ2FzYXNfbG9va3VwX2luc3RhbmNlKHNkZXYtPmhvc3QtPmhvc3Rfbm8pOworCisJLyoKKwkgKiBUaGUgUkFJRCBmaXJtd2FyZSBtYXkgcmVxdWlyZSBleHRlbmRlZCB0aW1lb3V0cy4KKwkgKi8KKwlibGtfcXVldWVfcnFfdGltZW91dChzZGV2LT5yZXF1ZXN0X3F1ZXVlLCBzY21kX3RpbWVvdXQgKiBIWik7CisKKwkvKiBtYXhfaW9fc2l6ZV9rYiB3aWxsIGJlIHNldCB0byBub24gemVybyBmb3IKKwkgKiBudm1lIGJhc2VkIHZkIGFuZCBzeXNwZC4KKwkgKi8KKwlpZiAoaXNfdGFyZ2V0X3Byb3ApCisJCW1heF9pb19zaXplX2tiID0gbGUzMl90b19jcHUoaW5zdGFuY2UtPnRndF9wcm9wLT5tYXhfaW9fc2l6ZV9rYik7CisKIAlpZiAoaW5zdGFuY2UtPm52bWVfcGFnZV9zaXplICYmIG1heF9pb19zaXplX2tiKQogCQltZWdhc2FzX3NldF9udm1lX2RldmljZV9wcm9wZXJ0aWVzKHNkZXYsIChtYXhfaW9fc2l6ZV9rYiA8PCAxMCkpOwogCi0Jc2NzaV9jaGFuZ2VfcXVldWVfZGVwdGgoc2RldiwgZGV2aWNlX3FkKTsKLQorCW1lZ2FzYXNfc2V0X2Z3X2Fzc2lzdGVkX3FkKHNkZXYsIGlzX3RhcmdldF9wcm9wKTsKIH0KIAogCkBAIC0zMjg1LDYgKzMzMDksNDggQEAgZndfY21kc19vdXRzdGFuZGluZ19zaG93KHN0cnVjdCBkZXZpY2UgKmNkZXYsCiB9CiAKIHN0YXRpYyBzc2l6ZV90CitlbmFibGVfc2Rldl9tYXhfcWRfc2hvdyhzdHJ1Y3QgZGV2aWNlICpjZGV2LAorCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBjbGFzc190b19zaG9zdChjZGV2KTsKKwlzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UgPSAoc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2UgKilzaG9zdC0+aG9zdGRhdGE7CisKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlZFxuIiwgaW5zdGFuY2UtPmVuYWJsZV9zZGV2X21heF9xZCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitlbmFibGVfc2Rldl9tYXhfcWRfc3RvcmUoc3RydWN0IGRldmljZSAqY2RldiwKKwlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBjbGFzc190b19zaG9zdChjZGV2KTsKKwlzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UgPSAoc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2UgKilzaG9zdC0+aG9zdGRhdGE7CisJdTMyIHZhbCA9IDA7CisJYm9vbCBpc190YXJnZXRfcHJvcDsKKwlpbnQgcmV0X3RhcmdldF9wcm9wID0gRENNRF9GQUlMRUQ7CisJc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2OworCisJaWYgKGtzdHJ0b3UzMihidWYsIDAsICZ2YWwpICE9IDApIHsKKwkJcHJfZXJyKCJtZWdhc2FzOiBjb3VsZCBub3Qgc2V0IGVuYWJsZV9zZGV2X21heF9xZFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCW11dGV4X2xvY2soJmluc3RhbmNlLT5yZXNldF9tdXRleCk7CisJaWYgKHZhbCkKKwkJaW5zdGFuY2UtPmVuYWJsZV9zZGV2X21heF9xZCA9IHRydWU7CisJZWxzZQorCQlpbnN0YW5jZS0+ZW5hYmxlX3NkZXZfbWF4X3FkID0gZmFsc2U7CisKKwlzaG9zdF9mb3JfZWFjaF9kZXZpY2Uoc2Rldiwgc2hvc3QpIHsKKwkJcmV0X3RhcmdldF9wcm9wID0gbWVnYXNhc19nZXRfdGFyZ2V0X3Byb3AoaW5zdGFuY2UsIHNkZXYpOworCQlpc190YXJnZXRfcHJvcCA9IChyZXRfdGFyZ2V0X3Byb3AgPT0gRENNRF9TVUNDRVNTKSA/IHRydWUgOiBmYWxzZTsKKwkJbWVnYXNhc19zZXRfZndfYXNzaXN0ZWRfcWQoc2RldiwgaXNfdGFyZ2V0X3Byb3ApOworCX0KKwltdXRleF91bmxvY2soJmluc3RhbmNlLT5yZXNldF9tdXRleCk7CisKKwlyZXR1cm4gc3RybGVuKGJ1Zik7Cit9CisKK3N0YXRpYyBzc2l6ZV90CiBkdW1wX3N5c3RlbV9yZWdzX3Nob3coc3RydWN0IGRldmljZSAqY2RldiwKIAkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewpAQCAtMzMxMyw2ICszMzc5LDcgQEAgc3RhdGljIERFVklDRV9BVFRSX1JXKGZ3X2NyYXNoX3N0YXRlKTsKIHN0YXRpYyBERVZJQ0VfQVRUUl9STyhwYWdlX3NpemUpOwogc3RhdGljIERFVklDRV9BVFRSX1JPKGxkaW9fb3V0c3RhbmRpbmcpOwogc3RhdGljIERFVklDRV9BVFRSX1JPKGZ3X2NtZHNfb3V0c3RhbmRpbmcpOworc3RhdGljIERFVklDRV9BVFRSX1JXKGVuYWJsZV9zZGV2X21heF9xZCk7CiBzdGF0aWMgREVWSUNFX0FUVFJfUk8oZHVtcF9zeXN0ZW1fcmVncyk7CiBzdGF0aWMgREVWSUNFX0FUVFJfUk8ocmFpZF9tYXBfaWQpOwogCkBAIC0zMzIzLDYgKzMzOTAsNyBAQCBzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKm1lZ2FyYWlkX2hvc3RfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfcGFnZV9zaXplLAogCSZkZXZfYXR0cl9sZGlvX291dHN0YW5kaW5nLAogCSZkZXZfYXR0cl9md19jbWRzX291dHN0YW5kaW5nLAorCSZkZXZfYXR0cl9lbmFibGVfc2Rldl9tYXhfcWQsCiAJJmRldl9hdHRyX2R1bXBfc3lzdGVtX3JlZ3MsCiAJJmRldl9hdHRyX3JhaWRfbWFwX2lkLAogCU5VTEwsCkBAIC01ODk0LDYgKzU5NjIsOCBAQCBzdGF0aWMgaW50IG1lZ2FzYXNfaW5pdF9mdyhzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UpCiAJCQlNUl9NQVhfUkFJRF9NQVBfU0laRV9NQVNLKTsKIAl9CiAKKwlpbnN0YW5jZS0+ZW5hYmxlX3NkZXZfbWF4X3FkID0gZW5hYmxlX3NkZXZfbWF4X3FkOworCiAJc3dpdGNoIChpbnN0YW5jZS0+YWRhcHRlcl90eXBlKSB7CiAJY2FzZSBWRU5UVVJBX1NFUklFUzoKIAkJZnVzaW9uLT5wY2llX2J3X2xpbWl0YXRpb24gPSB0cnVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhc19mdXNpb24uYyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9zYXNfZnVzaW9uLmMKaW5kZXggMTIwZTNjNC4uZTMwMTQ1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhc19mdXNpb24uYworKysgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzX2Z1c2lvbi5jCkBAIC0zMjMsOSArMzIzLDYgQEAgbWVnYXNhc19mdXNpb25fdXBkYXRlX2Nhbl9xdWV1ZShzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UsIGludCBmd19ib290X2MKIHsKIAl1MTYgY3VyX21heF9md19jbWRzID0gMDsKIAl1MTYgbGRpb190aHJlc2hvbGQgPSAwOwotCXN0cnVjdCBtZWdhc2FzX3JlZ2lzdGVyX3NldCBfX2lvbWVtICpyZWdfc2V0OwotCi0JcmVnX3NldCA9IGluc3RhbmNlLT5yZWdfc2V0OwogCiAJLyogdmVudHVyYSBGVyBkb2VzIG5vdCBmaWxsIG91dGJvdW5kX3NjcmF0Y2hfcGFkXzIgd2l0aCBxdWV1ZSBkZXB0aCAqLwogCWlmIChpbnN0YW5jZS0+YWRhcHRlcl90eXBlIDwgVkVOVFVSQV9TRVJJRVMpCkBAIC0zNTExLDcgKzM1MDgsNyBAQCBtZWdhc2FzX2NvbXBsZXRlX3IxX2NvbW1hbmQoc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2UgKmluc3RhbmNlLAogICogQGluc3RhbmNlOgkJCUFkYXB0ZXIgc29mdCBzdGF0ZQogICogQ29tcGxldGVzIGFsbCBjb21tYW5kcyB0aGF0IGlzIGluIHJlcGx5IGRlc2NyaXB0b3IgcXVldWUKICAqLwotaW50CitzdGF0aWMgaW50CiBjb21wbGV0ZV9jbWRfZnVzaW9uKHN0cnVjdCBtZWdhc2FzX2luc3RhbmNlICppbnN0YW5jZSwgdTMyIE1TSXhJbmRleCwKIAkJICAgIHN0cnVjdCBtZWdhc2FzX2lycV9jb250ZXh0ICppcnFfY29udGV4dCkKIHsKQEAgLTM3MDIsNyArMzY5OSw3IEBAIHN0YXRpYyB2b2lkIG1lZ2FzYXNfZW5hYmxlX2lycV9wb2xsKHN0cnVjdCBtZWdhc2FzX2luc3RhbmNlICppbnN0YW5jZSkKICAqIG1lZ2FzYXNfc3luY19pcnFzIC0JU3luY2hyb25pemVzIGFsbCBJUlFzIG93bmVkIGJ5IGFkYXB0ZXIKICAqIEBpbnN0YW5jZToJCQlBZGFwdGVyIHNvZnQgc3RhdGUKICAqLwotdm9pZCBtZWdhc2FzX3N5bmNfaXJxcyh1bnNpZ25lZCBsb25nIGluc3RhbmNlX2FkZHIpCitzdGF0aWMgdm9pZCBtZWdhc2FzX3N5bmNfaXJxcyh1bnNpZ25lZCBsb25nIGluc3RhbmNlX2FkZHIpCiB7CiAJdTMyIGNvdW50LCBpOwogCXN0cnVjdCBtZWdhc2FzX2luc3RhbmNlICppbnN0YW5jZSA9CkBAIC0zNzYwLDcgKzM3NTcsNyBAQCBpbnQgbWVnYXNhc19pcnFwb2xsKHN0cnVjdCBpcnFfcG9sbCAqaXJxcG9sbCwgaW50IGJ1ZGdldCkKICAqCiAgKiBUYXNrbGV0IHRvIGNvbXBsZXRlIGNtZHMKICAqLwotdm9pZAorc3RhdGljIHZvaWQKIG1lZ2FzYXNfY29tcGxldGVfY21kX2RwY19mdXNpb24odW5zaWduZWQgbG9uZyBpbnN0YW5jZV9hZGRyKQogewogCXN0cnVjdCBtZWdhc2FzX2luc3RhbmNlICppbnN0YW5jZSA9CkBAIC0zNzgwLDcgKzM3NzcsNyBAQCBtZWdhc2FzX2NvbXBsZXRlX2NtZF9kcGNfZnVzaW9uKHVuc2lnbmVkIGxvbmcgaW5zdGFuY2VfYWRkcikKIC8qKgogICogbWVnYXNhc19pc3JfZnVzaW9uIC0gaXNyIGVudHJ5IHBvaW50CiAgKi8KLWlycXJldHVybl90IG1lZ2FzYXNfaXNyX2Z1c2lvbihpbnQgaXJxLCB2b2lkICpkZXZwKQorc3RhdGljIGlycXJldHVybl90IG1lZ2FzYXNfaXNyX2Z1c2lvbihpbnQgaXJxLCB2b2lkICpkZXZwKQogewogCXN0cnVjdCBtZWdhc2FzX2lycV9jb250ZXh0ICppcnFfY29udGV4dCA9IGRldnA7CiAJc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2UgKmluc3RhbmNlID0gaXJxX2NvbnRleHQtPmluc3RhbmNlOwpAQCAtMzgxNiw3ICszODEzLDcgQEAgaXJxcmV0dXJuX3QgbWVnYXNhc19pc3JfZnVzaW9uKGludCBpcnEsIHZvaWQgKmRldnApCiAgKiBtZmlfY21kOgkJCW1lZ2FzYXNfY21kIHBvaW50ZXIKICAqCiAgKi8KLXZvaWQKK3N0YXRpYyB2b2lkCiBidWlsZF9tcHRfbWZpX3Bhc3NfdGhydShzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UsCiAJCQlzdHJ1Y3QgbWVnYXNhc19jbWQgKm1maV9jbWQpCiB7CkBAIC0zODc0LDcgKzM4NzEsNyBAQCBidWlsZF9tcHRfbWZpX3Bhc3NfdGhydShzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UsCiAgKiBAY21kOgkJCW1maSBjbWQgdG8gYnVpbGQKICAqCiAgKi8KLXVuaW9uIE1FR0FTQVNfUkVRVUVTVF9ERVNDUklQVE9SX1VOSU9OICoKK3N0YXRpYyB1bmlvbiBNRUdBU0FTX1JFUVVFU1RfREVTQ1JJUFRPUl9VTklPTiAqCiBidWlsZF9tcHRfY21kKHN0cnVjdCBtZWdhc2FzX2luc3RhbmNlICppbnN0YW5jZSwgc3RydWN0IG1lZ2FzYXNfY21kICpjbWQpCiB7CiAJdW5pb24gTUVHQVNBU19SRVFVRVNUX0RFU0NSSVBUT1JfVU5JT04gKnJlcV9kZXNjID0gTlVMTDsKQEAgLTM5MDAsNyArMzg5Nyw3IEBAIGJ1aWxkX21wdF9jbWQoc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2UgKmluc3RhbmNlLCBzdHJ1Y3QgbWVnYXNhc19jbWQgKmNtZCkKICAqIEBjbWQ6CQkJbWZpIGNtZCBwb2ludGVyCiAgKgogICovCi12b2lkCitzdGF0aWMgdm9pZAogbWVnYXNhc19pc3N1ZV9kY21kX2Z1c2lvbihzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UsCiAJCQkgIHN0cnVjdCBtZWdhc2FzX2NtZCAqY21kKQogewpAQCAtNDA5Niw4ICs0MDkzLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIG1lZ2FzYXNfdHJpZ2dlcl9zbmFwX2R1bXAoc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2UgKmluc3RhbmNlKQogfQogCiAvKiBUaGlzIGZ1bmN0aW9uIHdhaXRzIGZvciBvdXRzdGFuZGluZyBjb21tYW5kcyBvbiBmdXNpb24gdG8gY29tcGxldGUgKi8KLWludCBtZWdhc2FzX3dhaXRfZm9yX291dHN0YW5kaW5nX2Z1c2lvbihzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UsCi0JCQkJCWludCByZWFzb24sIGludCAqY29udmVydCkKK3N0YXRpYyBpbnQKK21lZ2FzYXNfd2FpdF9mb3Jfb3V0c3RhbmRpbmdfZnVzaW9uKHN0cnVjdCBtZWdhc2FzX2luc3RhbmNlICppbnN0YW5jZSwKKwkJCQkgICAgaW50IHJlYXNvbiwgaW50ICpjb252ZXJ0KQogewogCWludCBpLCBvdXRzdGFuZGluZywgcmV0dmFsID0gMCwgaGJfc2Vjb25kc19taXNzZWQgPSAwOwogCXUzMiBmd19zdGF0ZSwgYWJzX3N0YXRlOwpAQCAtNDIyMSw3ICs0MjE5LDcgQEAgdm9pZCAgbWVnYXNhc19yZXNldF9yZXBseV9kZXNjKHN0cnVjdCBtZWdhc2FzX2luc3RhbmNlICppbnN0YW5jZSkKICAqIG1lZ2FzYXNfcmVmaXJlX21nbXRfY21kIDoJUmUtZmlyZSBtYW5hZ2VtZW50IGNvbW1hbmRzCiAgKiBAaW5zdGFuY2U6CQkJCUNvbnRyb2xsZXIncyBzb2Z0IGluc3RhbmNlCiAqLwotdm9pZCBtZWdhc2FzX3JlZmlyZV9tZ210X2NtZChzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UpCitzdGF0aWMgdm9pZCBtZWdhc2FzX3JlZmlyZV9tZ210X2NtZChzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UpCiB7CiAJaW50IGo7CiAJc3RydWN0IG1lZ2FzYXNfY21kX2Z1c2lvbiAqY21kX2Z1c2lvbjsKQEAgLTQ3NDcsNyArNDc0NSw4IEBAIGludCBtZWdhc2FzX3Jlc2V0X3RhcmdldF9mdXNpb24oc3RydWN0IHNjc2lfY21uZCAqc2NtZCkKIH0KIAogLypTUklPViBnZXQgb3RoZXIgaW5zdGFuY2UgaW4gY2x1c3RlciBpZiBhbnkqLwotc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2UgKm1lZ2FzYXNfZ2V0X3BlZXJfaW5zdGFuY2Uoc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2UgKmluc3RhbmNlKQorc3RhdGljIHN0cnVjdAorbWVnYXNhc19pbnN0YW5jZSAqbWVnYXNhc19nZXRfcGVlcl9pbnN0YW5jZShzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UpCiB7CiAJaW50IGk7CiAKQEAgLTUwNTMsNyArNTA1Miw3IEBAIGludCBtZWdhc2FzX3Jlc2V0X2Z1c2lvbihzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCwgaW50IHJlYXNvbikKIH0KIAogLyogRnVzaW9uIENyYXNoIGR1bXAgY29sbGVjdGlvbiAqLwotdm9pZCAgbWVnYXNhc19mdXNpb25fY3Jhc2hfZHVtcChzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UpCitzdGF0aWMgdm9pZCAgbWVnYXNhc19mdXNpb25fY3Jhc2hfZHVtcChzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UpCiB7CiAJdTMyIHN0YXR1c19yZWc7CiAJdTggcGFydGlhbF9jb3B5ID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcHQzc2FzL21waS9tcGkyLmggYi9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcGkvbXBpMi5oCmluZGV4IDdlZmQxN2EuLjE4YjFlMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9tcHQzc2FzL21waS9tcGkyLmgKKysrIGIvZHJpdmVycy9zY3NpL21wdDNzYXMvbXBpL21waTIuaApAQCAtOSw3ICs5LDcgQEAKICAqICAgICAgICAgICAgICAgICBzY2F0dGVyL2dhdGhlciBmb3JtYXRzLgogICogQ3JlYXRpb24gRGF0ZTogIEp1bmUgMjEsIDIwMDYKICAqCi0gKiAgbXBpMi5oIFZlcnNpb246ICAwMi4wMC41MworICogIG1waTIuaCBWZXJzaW9uOiAgMDIuMDAuNTQKICAqCiAgKiBOT1RFOiBOYW1lcyAodHlwZWRlZnMsIGRlZmluZXMsIGV0Yy4pIGJlZ2lubmluZyB3aXRoIGFuIE1QSTI1IG9yIE1waTI1CiAgKiAgICAgICBwcmVmaXggYXJlIGZvciB1c2Ugb25seSBvbiBNUEkgdjIuNSBwcm9kdWN0cywgYW5kIG11c3Qgbm90IGJlIHVzZWQKQEAgLTEyMSw2ICsxMjEsNyBAQAogICogMDgtMTUtMTggIDAyLjAwLjUyICBCdW1wZWQgTVBJMl9IRUFERVJfVkVSU0lPTl9VTklULgogICogMDgtMjgtMTggIDAyLjAwLjUzICBCdW1wZWQgTVBJMl9IRUFERVJfVkVSU0lPTl9VTklULgogICogICAgICAgICAgICAgICAgICAgICBBZGRlZCBNUEkyX0lPQ1NUQVRVU19GQUlMVVJFCisgKiAxMi0xNy0xOCAgMDIuMDAuNTQgIEJ1bXBlZCBNUEkyX0hFQURFUl9WRVJTSU9OX1VOSVQKICAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTE2MSw3ICsxNjIsNyBAQAogCiAKIC8qIFVuaXQgYW5kIERldiB2ZXJzaW9uaW5nIGZvciB0aGlzIE1QSSBoZWFkZXIgc2V0ICovCi0jZGVmaW5lIE1QSTJfSEVBREVSX1ZFUlNJT05fVU5JVCAgICAgICAgICAgICgweDM1KQorI2RlZmluZSBNUEkyX0hFQURFUl9WRVJTSU9OX1VOSVQgICAgICAgICAgICAoMHgzNikKICNkZWZpbmUgTVBJMl9IRUFERVJfVkVSU0lPTl9ERVYgICAgICAgICAgICAgKDB4MDApCiAjZGVmaW5lIE1QSTJfSEVBREVSX1ZFUlNJT05fVU5JVF9NQVNLICAgICAgICgweEZGMDApCiAjZGVmaW5lIE1QSTJfSEVBREVSX1ZFUlNJT05fVU5JVF9TSElGVCAgICAgICg4KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21wdDNzYXMvbXBpL21waTJfY25mZy5oIGIvZHJpdmVycy9zY3NpL21wdDNzYXMvbXBpL21waTJfY25mZy5oCmluZGV4IDE2N2Q3OWQuLjNhNjg3MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9tcHQzc2FzL21waS9tcGkyX2NuZmcuaAorKysgYi9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcGkvbXBpMl9jbmZnLmgKQEAgLTcsNyArNyw3IEBACiAgKiAgICAgICAgIFRpdGxlOiAgTVBJIENvbmZpZ3VyYXRpb24gbWVzc2FnZXMgYW5kIHBhZ2VzCiAgKiBDcmVhdGlvbiBEYXRlOiAgTm92ZW1iZXIgMTAsIDIwMDYKICAqCi0gKiAgICBtcGkyX2NuZmcuaCBWZXJzaW9uOiAgMDIuMDAuNDYKKyAqICAgIG1waTJfY25mZy5oIFZlcnNpb246ICAwMi4wMC40NwogICoKICAqIE5PVEU6IE5hbWVzICh0eXBlZGVmcywgZGVmaW5lcywgZXRjLikgYmVnaW5uaW5nIHdpdGggYW4gTVBJMjUgb3IgTXBpMjUKICAqICAgICAgIHByZWZpeCBhcmUgZm9yIHVzZSBvbmx5IG9uIE1QSSB2Mi41IHByb2R1Y3RzLCBhbmQgbXVzdCBub3QgYmUgdXNlZApAQCAtMjQ0LDYgKzI0NCwxMSBAQAogICogICAgICAgICAgICAgICAgICAgICBBZGRlZCBETURSZXBvcnQgRGVsYXkgVGltZSBkZWZpbmVzIHRvCiAgKiAgICAgICAgICAgICAgICAgICAgIFBDSWVJT1VuaXRQYWdlMQogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIDA4LTAyLTE4ICAwMi4wMC40NCAgQWRkZWQgU2xvdHgyLCBTbG90eDQgdG8gTWFuUGFnZSA3LgorICogMDgtMTUtMTggIDAyLjAwLjQ1ICBBZGRlZCBQcm9kdWN0U3BlY2lmaWMgZmllbGQgYXQgZW5kIG9mIElPQyBQYWdlIDEKKyAqIDA4LTI4LTE4ICAwMi4wMC40NiAgQWRkZWQgTlZNcyBXcml0ZSBDYWNoZSBmbGFnIHRvIElPVW5pdFBhZ2UxCisgKiAgICAgICAgICAgICAgICAgICAgIEFkZGVkIERNRFJlcG9ydCBEZWxheSBUaW1lIGRlZmluZXMgdG8gUENJZUlPVW5pdFBhZ2UxCisgKiAxMi0xNy0xOCAgMDIuMDAuNDcgIFN3YXAgbG9jYXRpb25zIG9mIFNsb3R4MiBhbmQgU2xvdHg0IGluIE1hblBhZ2UgNy4KICAqLwogCiAjaWZuZGVmIE1QSTJfQ05GR19ICkBAIC04MTAsNyArODE1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX01QSTJfTUFOUEFHRTdfQ09OTkVDVE9SX0lORk8gewogCVU4ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbjsgICAgICAgICAgICAgICAvKjB4MTQgKi8KIAlVOCAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjZXB0YWNsZUlEOyAgICAgICAgICAgLyoweDE1ICovCiAJVTE2ICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3Q7ICAgICAgICAgICAgICAgICAgIC8qMHgxNiAqLwotCVUzMiAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAvKjB4MTggKi8KKwlVMTYgICAgICAgICAgICAgICAgICAgICAgICAgU2xvdHgyOyAgICAgICAgICAgICAgICAgLyoweDE4ICovCisJVTE2ICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3R4NDsgICAgICAgICAgICAgICAgIC8qMHgxQSAqLwogfSBNUEkyX01BTlBBR0U3X0NPTk5FQ1RPUl9JTkZPLAogCSpQVFJfTVBJMl9NQU5QQUdFN19DT05ORUNUT1JfSU5GTywKIAlNcGkyTWFuUGFnZTdDb25uZWN0b3JJbmZvX3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcGkvbXBpMl9pbWFnZS5oIGIvZHJpdmVycy9zY3NpL21wdDNzYXMvbXBpL21waTJfaW1hZ2UuaAppbmRleCA0OTU5NTg1Li5hM2Y2Nzc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcGkvbXBpMl9pbWFnZS5oCisrKyBiL2RyaXZlcnMvc2NzaS9tcHQzc2FzL21waS9tcGkyX2ltYWdlLmgKQEAgLTUsNyArNSw3IEBACiAgKiAgICAgICAgICBOYW1lOiBtcGkyX2ltYWdlLmgKICAqIERlc2NyaXB0aW9uOiBDb250YWlucyBkZWZpbml0aW9ucyBmb3IgZmlybXdhcmUgYW5kIG90aGVyIGNvbXBvbmVudCBpbWFnZXMKICAqIENyZWF0aW9uIERhdGU6IDA0LzAyLzIwMTgKLSAqICAgICAgIFZlcnNpb246IDAyLjA2LjAzCisgKiAgICAgICBWZXJzaW9uOiAwMi4wNi4wNAogICoKICAqCiAgKiBWZXJzaW9uIEhpc3RvcnkKQEAgLTE3LDYgKzE3LDggQEAKICAqIDA4LTE0LTE4ICAwMi4wNi4wMSAgQ29ycmVjdGVkIGRlZmluZSBmb3IgTVBJMjZfSU1BR0VfSEVBREVSX1NJR05BVFVSRTBfTVBJMjYKICAqIDA4LTI4LTE4ICAwMi4wNi4wMiAgQWRkZWQgTVBJMl9FWFRfSU1BR0VfVFlQRV9SREUKICAqIDA5LTA3LTE4ICAwMi4wNi4wMyAgQWRkZWQgTVBJMjZfRVZFTlRfUENJRV9UT1BPX1BJXzE2X0xBTkVTCisgKiAxMi0xNy0xOCAgMDIuMDYuMDQgIEFkZGQgTVBJMl9FWFRfSU1BR0VfVFlQRV9QQkxQCisgKgkJCVNob3J0ZW4gc29tZSBkZWZpbmVzIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBET1MKICAqLwogI2lmbmRlZiBNUEkyX0lNQUdFX0gKICNkZWZpbmUgTVBJMl9JTUFHRV9ICkBAIC0yMDAsMTcgKzIwMiwxNyBAQCB0eXBlZGVmIHN0cnVjdCBfTVBJMjZfQ09NUE9ORU5UX0lNQUdFX0hFQURFUiB7CiAjZGVmaW5lIE1QSTI2X0lNQUdFX0hFQURFUl9TSUdOQVRVUkUwX01QSTI2ICAgICAgICAgICAgICAgICAgICAgKDB4RUIwMDAwNDIpCiAKIC8qKioqIERlZmluaXRpb25zIGZvciBTaWduYXR1cmUxIGZpZWxkICoqKiovCi0jZGVmaW5lIE1QSTI2X0lNQUdFX0hFQURFUl9TSUdOQVRVUkUxX0FQUExJQ0FUSU9OICAgICAgICAgICAgICAoMHgyMDUwNTA0MSkKLSNkZWZpbmUgTVBJMjZfSU1BR0VfSEVBREVSX1NJR05BVFVSRTFfQ0JCICAgICAgICAgICAgICAgICAgICAgICgweDIwNDI0MjQzKQotI2RlZmluZSBNUEkyNl9JTUFHRV9IRUFERVJfU0lHTkFUVVJFMV9NRkcgICAgICAgICAgICAgICAgICAgICAgKDB4MjA0NzQ2NEQpCi0jZGVmaW5lIE1QSTI2X0lNQUdFX0hFQURFUl9TSUdOQVRVUkUxX0JJT1MgICAgICAgICAgICAgICAgICAgICAoMHg1MzRGNDk0MikKLSNkZWZpbmUgTVBJMjZfSU1BR0VfSEVBREVSX1NJR05BVFVSRTFfSElJTSAgICAgICAgICAgICAgICAgICAgICgweDRENDk0OTQ4KQotI2RlZmluZSBNUEkyNl9JTUFHRV9IRUFERVJfU0lHTkFUVVJFMV9ISUlBICAgICAgICAgICAgICAgICAgICAgKDB4NDE0OTQ5NDgpCi0jZGVmaW5lIE1QSTI2X0lNQUdFX0hFQURFUl9TSUdOQVRVUkUxX0NQTEQgICAgICAgICAgICAgICAgICAgICAoMHg0NDRDNTA0MykKLSNkZWZpbmUgTVBJMjZfSU1BR0VfSEVBREVSX1NJR05BVFVSRTFfU1BEICAgICAgICAgICAgICAgICAgICAgICgweDIwNDQ1MDUzKQotI2RlZmluZSBNUEkyNl9JTUFHRV9IRUFERVJfU0lHTkFUVVJFMV9OVkRBVEEgICAgICAgICAgICAgICAgICAgKDB4NTQ0NDU2NEUpCi0jZGVmaW5lIE1QSTI2X0lNQUdFX0hFQURFUl9TSUdOQVRVUkUxX0dBU19HQVVHRSAgICAgICAgICAgICAgICAoMHgyMDUzNDE0NykKLSNkZWZpbmUgTVBJMjZfSU1BR0VfSEVBREVSX1NJR05BVFVSRTFfUEJMUCAgICAgICAgICAgICAgICAgICAgICgweDUwNDI0QzUwKQorI2RlZmluZSBNUEkyNl9JTUFHRV9IRUFERVJfU0lHMV9BUFBMSUNBVElPTiAgICAgICAgICAgICAgKDB4MjA1MDUwNDEpCisjZGVmaW5lIE1QSTI2X0lNQUdFX0hFQURFUl9TSUcxX0NCQiAgICAgICAgICAgICAgICAgICAgICAoMHgyMDQyNDI0MykKKyNkZWZpbmUgTVBJMjZfSU1BR0VfSEVBREVSX1NJRzFfTUZHICAgICAgICAgICAgICAgICAgICAgICgweDIwNDc0NjREKQorI2RlZmluZSBNUEkyNl9JTUFHRV9IRUFERVJfU0lHMV9CSU9TICAgICAgICAgICAgICAgICAgICAgKDB4NTM0RjQ5NDIpCisjZGVmaW5lIE1QSTI2X0lNQUdFX0hFQURFUl9TSUcxX0hJSU0gICAgICAgICAgICAgICAgICAgICAoMHg0RDQ5NDk0OCkKKyNkZWZpbmUgTVBJMjZfSU1BR0VfSEVBREVSX1NJRzFfSElJQSAgICAgICAgICAgICAgICAgICAgICgweDQxNDk0OTQ4KQorI2RlZmluZSBNUEkyNl9JTUFHRV9IRUFERVJfU0lHMV9DUExEICAgICAgICAgICAgICAgICAgICAgKDB4NDQ0QzUwNDMpCisjZGVmaW5lIE1QSTI2X0lNQUdFX0hFQURFUl9TSUcxX1NQRCAgICAgICAgICAgICAgICAgICAgICAoMHgyMDQ0NTA1MykKKyNkZWZpbmUgTVBJMjZfSU1BR0VfSEVBREVSX1NJRzFfTlZEQVRBICAgICAgICAgICAgICAgICAgICgweDU0NDQ1NjRFKQorI2RlZmluZSBNUEkyNl9JTUFHRV9IRUFERVJfU0lHMV9HQVNfR0FVR0UgICAgICAgICAgICAgICAgKDB4MjA1MzQxNDcpCisjZGVmaW5lIE1QSTI2X0lNQUdFX0hFQURFUl9TSUcxX1BCTFAgICAgICAgICAgICAgICAgICAgICAoMHg1MDRDNDI1MCkKIAogLyoqKiogRGVmaW5pdGlvbnMgZm9yIFNpZ25hdHVyZTIgZmllbGQgKioqKi8KICNkZWZpbmUgTVBJMjZfSU1BR0VfSEVBREVSX1NJR05BVFVSRTJfVkFMVUUgICAgICAgICAgICAgICAgICAgICgweDUwNTg0NTQ2KQpAQCAtMjc4LDYgKzI4MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9NUEkyX0VYVF9JTUFHRV9IRUFERVIgewogI2RlZmluZSBNUEkyX0VYVF9JTUFHRV9UWVBFX01FR0FSQUlEICAgICAgICAgICAgICAgICgweDA4KQogI2RlZmluZSBNUEkyX0VYVF9JTUFHRV9UWVBFX0VOQ1JZUFRFRF9IQVNIICAgICAgICAgICgweDA5KQogI2RlZmluZSBNUEkyX0VYVF9JTUFHRV9UWVBFX1JERSAgICAgICAgICAgICAgICAgICAgICgweDBBKQorI2RlZmluZSBNUEkyX0VYVF9JTUFHRV9UWVBFX1BCTFAgICAgICAgICAgICAgICAgICAgICgweDBCKQogI2RlZmluZSBNUEkyX0VYVF9JTUFHRV9UWVBFX01JTl9QUk9EVUNUX1NQRUNJRklDICAgICgweDgwKQogI2RlZmluZSBNUEkyX0VYVF9JTUFHRV9UWVBFX01BWF9QUk9EVUNUX1NQRUNJRklDICAgICgweEZGKQogCkBAIC00NzIsMTIgKzQ3NSwxMiBAQCBNcGkyNUVuY3J5cHRlZEhhc2hFbnRyeV90LCAqcE1waTI1RW5jcnlwdGVkSGFzaEVudHJ5X3Q7CiAjZGVmaW5lIE1QSTI1X0hBU0hfQUxHT1JJVEhNX1VOVVNFRCAgICAgICAgICAgICAoMHgwMCkKICNkZWZpbmUgTVBJMjVfSEFTSF9BTEdPUklUSE1fU0hBMjU2ICAgICAgICAgICAgICgweDAxKQogCi0jZGVmaW5lIE1QSTI2X0hBU0hfQUxHT1JJVEhNX1ZFUlNJT05fTUFTSyAgICAgICAoMHhFMCkKLSNkZWZpbmUgTVBJMjZfSEFTSF9BTEdPUklUSE1fVkVSU0lPTl9OT05FICAgICAgICgweDAwKQotI2RlZmluZSBNUEkyNl9IQVNIX0FMR09SSVRITV9WRVJTSU9OX1NIQTEgICAgICAgKDB4MjApCi0jZGVmaW5lIE1QSTI2X0hBU0hfQUxHT1JJVEhNX1ZFUlNJT05fU0hBMiAgICAgICAoMHg0MCkKLSNkZWZpbmUgTVBJMjZfSEFTSF9BTEdPUklUSE1fVkVSU0lPTl9TSEEzICAgICAgICgweDYwKQotI2RlZmluZSBNUEkyNl9IQVNIX0FMR09SSVRITV9TSVpFX01BU0sgICAgICAgICAgKDB4MUYpCisjZGVmaW5lIE1QSTI2X0hBU0hfQUxHT1JJVEhNX1ZFUl9NQVNLCQkoMHhFMCkKKyNkZWZpbmUgTVBJMjZfSEFTSF9BTEdPUklUSE1fVkVSX05PTkUJCSgweDAwKQorI2RlZmluZSBNUEkyNl9IQVNIX0FMR09SSVRITV9WRVJfU0hBMQkJKDB4MjApCisjZGVmaW5lIE1QSTI2X0hBU0hfQUxHT1JJVEhNX1ZFUl9TSEEyCQkoMHg0MCkKKyNkZWZpbmUgTVBJMjZfSEFTSF9BTEdPUklUSE1fVkVSX1NIQTMJCSgweDYwKQorI2RlZmluZSBNUEkyNl9IQVNIX0FMR09SSVRITV9TSVpFX01BU0sJCSgweDFGKQogI2RlZmluZSBNUEkyNl9IQVNIX0FMR09SSVRITV9TSVpFXzI1NiAgICAgICAgICAgKDB4MDEpCiAjZGVmaW5lIE1QSTI2X0hBU0hfQUxHT1JJVEhNX1NJWkVfNTEyICAgICAgICAgICAoMHgwMikKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21wdDNzYXMvbXBpL21waTJfcGNpLmggYi9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcGkvbXBpMl9wY2kuaAppbmRleCA2M2EwOTUwLi5iYjdiNzljIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcGkvbXBpMl9wY2kuaAorKysgYi9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcGkvbXBpMl9wY2kuaApAQCAtNiw3ICs2LDcgQEAKICAqICAgICAgICAgVGl0bGU6ICBNUEkgUENJZSBBdHRhY2hlZCBEZXZpY2VzIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zLgogICogQ3JlYXRpb24gRGF0ZTogIE9jdG9iZXIgOSwgMjAxMgogICoKLSAqIG1waTJfcGNpLmggVmVyc2lvbjogIDAyLjAwLjAzCisgKiBtcGkyX3BjaS5oIFZlcnNpb246ICAwMi4wMC4wNAogICoKICAqIE5PVEU6IE5hbWVzICh0eXBlZGVmcywgZGVmaW5lcywgZXRjLikgYmVnaW5uaW5nIHdpdGggYW4gTVBJMjUgb3IgTXBpMjUKICAqICAgICAgIHByZWZpeCBhcmUgZm9yIHVzZSBvbmx5IG9uIE1QSSB2Mi41IHByb2R1Y3RzLCBhbmQgbXVzdCBub3QgYmUgdXNlZApAQCAtMjQsNiArMjQsOCBAQAogICogMDctMDEtMTYgIDAyLjAwLjAyICBBZGRlZCBNUEkyNl9OVk1FX0ZMQUdTX0ZPUkNFX0FETUlOX0VSUl9SRVNQIHRvCiAgKiAgICAgICAgICAgICAgICAgICAgIE5WTUUgRW5jYXBzdWxhdGVkIFJlcXVlc3QuCiAgKiAwNy0yMi0xOCAgMDIuMDAuMDMgIFVwZHRlZCBmbGFncyBmaWVsZCBmb3IgTlZNRSBFbmNhcHN1bGF0ZWQgcmVxCisgKiAxMi0xNy0xOCAgMDIuMDAuMDQgIEFkZGVkIE1QSTI2X1BDSUVfREVWSU5GT19TQ1NJCisgKgkJCVNob3J0dGVuIHNvbWUgZGVmaW5lcyB0byBiZSBjb21wYXRpYmxlIHdpdGggRE9TCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTQxLDcgKzQzLDcgQEAKICNkZWZpbmUgTVBJMjZfUENJRV9ERVZJTkZPX05PX0RFVklDRSAgICAgICAgICAgICgweDAwMDAwMDAwKQogI2RlZmluZSBNUEkyNl9QQ0lFX0RFVklORk9fUENJX1NXSVRDSCAgICAgICAgICAgKDB4MDAwMDAwMDEpCiAjZGVmaW5lIE1QSTI2X1BDSUVfREVWSU5GT19OVk1FICAgICAgICAgICAgICAgICAoMHgwMDAwMDAwMykKLQorI2RlZmluZSBNUEkyNl9QQ0lFX0RFVklORk9fU0NTSSAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDQpCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICBOVk1lIEVuY2Fwc3VsYXRlZCBtZXNzYWdlCkBAIC03NSwxMCArNzcsOSBAQCB0eXBlZGVmIHN0cnVjdCBfTVBJMjZfTlZNRV9FTkNBUFNVTEFURURfUkVRVUVTVCB7CiAjZGVmaW5lIE1QSTI2X05WTUVfRkxBR1NfU1VCTUlTU0lPTlFfSU8gICAgICAgICAgICAgKDB4MDAwMCkKICNkZWZpbmUgTVBJMjZfTlZNRV9GTEFHU19TVUJNSVNTSU9OUV9BRE1JTiAgICAgICAgICAoMHgwMDEwKQogLypFcnJvciBSZXNwb25zZSBBZGRyZXNzIFNwYWNlICovCi0jZGVmaW5lIE1QSTI2X05WTUVfRkxBR1NfTUFTS19FUlJPUl9SU1BfQUREUiAgICAgICAgKDB4MDAwQykKLSNkZWZpbmUgTVBJMjZfTlZNRV9GTEFHU19NQVNLX0VSUk9SX1JTUF9BRERSX01BU0sgICAoMHgwMDBDKQotI2RlZmluZSBNUEkyNl9OVk1FX0ZMQUdTX1NZU1RFTV9SU1BfQUREUiAgICAgICAgICAgICgweDAwMDApCi0jZGVmaW5lIE1QSTI2X05WTUVfRkxBR1NfSU9DQ1RMX1JTUF9BRERSICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgTVBJMjZfTlZNRV9GTEFHU19FUlJfUlNQX0FERFJfTUFTSyAgICAgICAgICAoMHgwMDBDKQorI2RlZmluZSBNUEkyNl9OVk1FX0ZMQUdTX0VSUl9SU1BfQUREUl9TWVNURU0gICAgICAgICgweDAwMDApCisjZGVmaW5lIE1QSTI2X05WTUVfRkxBR1NfRVJSX1JTUF9BRERSX0lPQ1RMICAgICAgICAgKDB4MDAwOCkKIC8qIERhdGEgRGlyZWN0aW9uKi8KICNkZWZpbmUgTVBJMjZfTlZNRV9GTEFHU19EQVRBRElSRUNUSU9OX01BU0sgICAgICAgICAoMHgwMDAzKQogI2RlZmluZSBNUEkyNl9OVk1FX0ZMQUdTX05PREFUQVRSQU5TRkVSICAgICAgICAgICAgICgweDAwMDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcGkvbXBpMl90b29sLmggYi9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcGkvbXBpMl90b29sLmgKaW5kZXggM2Y5NjZiNi4uMTdlZjdmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL21wdDNzYXMvbXBpL21waTJfdG9vbC5oCisrKyBiL2RyaXZlcnMvc2NzaS9tcHQzc2FzL21waS9tcGkyX3Rvb2wuaApAQCAtNyw3ICs3LDcgQEAKICAqICAgICAgICAgVGl0bGU6ICBNUEkgZGlhZ25vc3RpYyB0b29sIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zCiAgKiBDcmVhdGlvbiBEYXRlOiAgTWFyY2ggMjYsIDIwMDcKICAqCi0gKiAgIG1waTJfdG9vbC5oIFZlcnNpb246ICAwMi4wMC4xNQorICogICBtcGkyX3Rvb2wuaCBWZXJzaW9uOiAgMDIuMDAuMTYKICAqCiAgKiBWZXJzaW9uIEhpc3RvcnkKICAqIC0tLS0tLS0tLS0tLS0tLQpAQCAtNDAsNiArNDAsNyBAQAogICogICAgICAgICAgICAgICAgICAgICBUb29sIFJlcXVlc3QgTWVzc2FnZS4KICAqIDA3LTIyLTE4ICAwMi4wMC4xNSAgQWRkZWQgZGVmaW5lcyBmb3IgbmV3IFRPT0xCT1hfUENJRV9MQU5FX01BUkdJTklORyB0b29sLgogICogICAgICAgICAgICAgICAgICAgICBBZGRlZCBvcHRpb24gZm9yIERldmljZUluZm8gZmllbGQgaW4gSVNUV0kgdG9vbC4KKyAqIDEyLTE3LTE4ICAwMi4wMC4xNiAgU2hvcnRlbiBzb21lIGRlZmluZXMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIERPUy4KICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtMjMwLDExICsyMzEsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgX01QSTJfVE9PTEJPWF9JU1RXSV9SRUFEX1dSSVRFX1JFUVVFU1QgewogI2RlZmluZSBNUEkyX1RPT0xfSVNUV0lfRkxBR19QQUdFX0FERFJfTUFTSyAgICAgICAgICgweDA3KQogCiAvKk1QSTI2IFRPT0xCT1ggUmVxdWVzdCBNc2dGbGFncyBkZWZpbmVzICovCi0jZGVmaW5lIE1QSTI2X1RPT0xCT1hfUkVRX01TR0ZMQUdTX0FERFJFU1NJTkdfTUFTSyAgICAgKDB4MDEpCisjZGVmaW5lIE1QSTI2X1RPT0xfSVNUV0lfTVNHRkxHX0FERFJfTUFTSyAgICAgICAgICAgKDB4MDEpCiAvKlJlcXVlc3QgdXNlcyBNYW4gUGFnZSA0MyBkZXZpY2UgaW5kZXggYWRkcmVzc2luZyAqLwotI2RlZmluZSBNUEkyNl9UT09MQk9YX1JFUV9NU0dGTEFHU19BRERSRVNTSU5HX0RFVklOREVYICgweDAwKQorI2RlZmluZSBNUEkyNl9UT09MX0lTVFdJX01TR0ZMR19BRERSX0lOREVYICAgICAgICAgICgweDAwKQogLypSZXF1ZXN0IHVzZXMgTWFuIFBhZ2UgNDMgZGV2aWNlIGluZm8gc3RydWN0IGFkZHJlc3NpbmcgKi8KLSNkZWZpbmUgTVBJMjZfVE9PTEJPWF9SRVFfTVNHRkxBR1NfQUREUkVTU0lOR19ERVZJTkZPICAoMHgwMSkKKyNkZWZpbmUgTVBJMjZfVE9PTF9JU1RXSV9NU0dGTEdfQUREUl9JTkZPICAgICAgICAgICAoMHgwMSkKIAogLypUb29sYm94IElTVFdJIFJlYWQgV3JpdGUgVG9vbCByZXBseSBtZXNzYWdlICovCiB0eXBlZGVmIHN0cnVjdCBfTVBJMl9UT09MQk9YX0lTVFdJX1JFUExZIHsKQEAgLTQwMyw3ICs0MDQsNyBAQCBNcGkyVG9vbGJveFRleHREaXNwbGF5UmVxdWVzdF90LAogICovCiAKIC8qVG9vbGJveCBCYWNrZW5kIExhbmUgTWFyZ2luaW5nIFRvb2wgcmVxdWVzdCBtZXNzYWdlICovCi10eXBlZGVmIHN0cnVjdCBfTVBJMjZfVE9PTEJPWF9MQU5FX01BUkdJTklOR19SRVFVRVNUIHsKK3R5cGVkZWYgc3RydWN0IF9NUEkyNl9UT09MQk9YX0xBTkVfTUFSR0lOX1JFUVVFU1QgewogCVU4IFRvb2w7CQkJLyoweDAwICovCiAJVTggUmVzZXJ2ZWQxOwkJCS8qMHgwMSAqLwogCVU4IENoYWluT2Zmc2V0OwkJCS8qMHgwMiAqLwpAQCAtNDM0LDcgKzQzNSw3IEBAIHR5cGVkZWYgc3RydWN0IF9NUEkyNl9UT09MQk9YX0xBTkVfTUFSR0lOSU5HX1JFUVVFU1QgewogCiAKIC8qVG9vbGJveCBCYWNrZW5kIExhbmUgTWFyZ2luaW5nIFRvb2wgcmVwbHkgbWVzc2FnZSAqLwotdHlwZWRlZiBzdHJ1Y3QgX01QSTI2X1RPT0xCT1hfTEFORV9NQVJHSU5JTkdfUkVQTFkgewordHlwZWRlZiBzdHJ1Y3QgX01QSTI2X1RPT0xCT1hfTEFORV9NQVJHSU5fUkVQTFkgewogCVU4IFRvb2w7CQkJLyoweDAwICovCiAJVTggUmVzZXJ2ZWQxOwkJCS8qMHgwMSAqLwogCVU4IE1zZ0xlbmd0aDsJCQkvKjB4MDIgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcHQzc2FzL21wdDNzYXNfYmFzZS5jIGIvZHJpdmVycy9zY3NpL21wdDNzYXMvbXB0M3Nhc19iYXNlLmMKaW5kZXggMDUwYzBmMC4uZmVhM2NiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL21wdDNzYXMvbXB0M3Nhc19iYXNlLmMKKysrIGIvZHJpdmVycy9zY3NpL21wdDNzYXMvbXB0M3Nhc19iYXNlLmMKQEAgLTIyNjAsNiArMjI2MCwxMSBAQCBiYXNlX2lzX3BycF9wb3NzaWJsZShzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MsCiAJYm9vbCBidWlsZF9wcnAgPSB0cnVlOwogCiAJZGF0YV9sZW5ndGggPSBzY3NpX2J1ZmZsZW4oc2NtZCk7CisJaWYgKHBjaWVfZGV2aWNlICYmCisJICAgIChtcHQzc2FzX3Njc2loX2lzX3BjaWVfc2NzaV9kZXZpY2UocGNpZV9kZXZpY2UtPmRldmljZV9pbmZvKSkpIHsKKwkJYnVpbGRfcHJwID0gZmFsc2U7CisJCXJldHVybiBidWlsZF9wcnA7CisJfQogCiAJLyogSWYgRGF0YWxlbnRoIGlzIDw9IDE2SyBhbmQgbnVtYmVyIG9mIFNHReKAmXMgZW50cmllcyBhcmUgPD0gMgogCSAqIHdlIGJ1aWx0IElFRUUgU0dMCkBAIC0zMTc4LDYgKzMxODMsMzcgQEAgbXB0M3Nhc19iYXNlX3VubWFwX3Jlc291cmNlcyhzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpCiAJfQogfQogCitzdGF0aWMgaW50CitfYmFzZV9kaWFnX3Jlc2V0KHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYyk7CisKKy8qKgorICogX2Jhc2VfY2hlY2tfZm9yX2ZhdWx0X2FuZF9pc3N1ZV9yZXNldCAtIGNoZWNrIGlmIElPQyBpcyBpbiBmYXVsdCBzdGF0ZQorICogICAgIGFuZCBpZiBpdCBpcyBpbiBmYXVsdCBzdGF0ZSB0aGVuIGlzc3VlIGRpYWcgcmVzZXQuCisgKiBAaW9jOiBwZXIgYWRhcHRlciBvYmplY3QKKyAqCisgKiBSZXR1cm5zOiAwIGZvciBzdWNjZXNzLCBub24temVybyBmb3IgZmFpbHVyZS4KKyAqLworc3RhdGljIGludAorX2Jhc2VfY2hlY2tfZm9yX2ZhdWx0X2FuZF9pc3N1ZV9yZXNldChzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpCit7CisJdTMyIGlvY19zdGF0ZTsKKwlpbnQgcmMgPSAtRUZBVUxUOworCisJZGluaXRwcmludGsoaW9jLCBwcl9pbmZvKCIlc1xuIiwgX19mdW5jX18pKTsKKwlpZiAoaW9jLT5wY2lfZXJyb3JfcmVjb3ZlcnkpCisJCXJldHVybiAwOworCWlvY19zdGF0ZSA9IG1wdDNzYXNfYmFzZV9nZXRfaW9jc3RhdGUoaW9jLCAwKTsKKwlkaHNwcmludGsoaW9jLCBwcl9pbmZvKCIlczogaW9jX3N0YXRlKDB4JTA4eClcbiIsIF9fZnVuY19fLCBpb2Nfc3RhdGUpKTsKKworCWlmICgoaW9jX3N0YXRlICYgTVBJMl9JT0NfU1RBVEVfTUFTSykgPT0gTVBJMl9JT0NfU1RBVEVfRkFVTFQpIHsKKwkJbXB0M3Nhc19iYXNlX2ZhdWx0X2luZm8oaW9jLCBpb2Nfc3RhdGUgJgorCQkgICAgTVBJMl9ET09SQkVMTF9EQVRBX01BU0spOworCQlyYyA9IF9iYXNlX2RpYWdfcmVzZXQoaW9jKTsKKwl9CisKKwlyZXR1cm4gcmM7Cit9CisKIC8qKgogICogbXB0M3Nhc19iYXNlX21hcF9yZXNvdXJjZXMgLSBtYXAgaW4gY29udHJvbGxlciByZXNvdXJjZXMgKGlvL2lycS9tZW1hcCkKICAqIEBpb2M6IHBlciBhZGFwdGVyIG9iamVjdApAQCAtMzE5MCw3ICszMjI2LDcgQEAgbXB0M3Nhc19iYXNlX21hcF9yZXNvdXJjZXMoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jKQogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gaW9jLT5wZGV2OwogCXUzMiBtZW1hcF9zejsKIAl1MzIgcGlvX3N6OwotCWludCBpLCByID0gMDsKKwlpbnQgaSwgciA9IDAsIHJjOwogCXU2NCBwaW9fY2hpcCA9IDA7CiAJcGh5c19hZGRyX3QgY2hpcF9waHlzID0gMDsKIAlzdHJ1Y3QgYWRhcHRlcl9yZXBseV9xdWV1ZSAqcmVwbHlfcTsKQEAgLTMyNTEsOCArMzI4NywxMSBAQCBtcHQzc2FzX2Jhc2VfbWFwX3Jlc291cmNlcyhzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpCiAJX2Jhc2VfbWFza19pbnRlcnJ1cHRzKGlvYyk7CiAKIAlyID0gX2Jhc2VfZ2V0X2lvY19mYWN0cyhpb2MpOwotCWlmIChyKQotCQlnb3RvIG91dF9mYWlsOworCWlmIChyKSB7CisJCXJjID0gX2Jhc2VfY2hlY2tfZm9yX2ZhdWx0X2FuZF9pc3N1ZV9yZXNldChpb2MpOworCQlpZiAocmMgfHwgKF9iYXNlX2dldF9pb2NfZmFjdHMoaW9jKSkpCisJCQlnb3RvIG91dF9mYWlsOworCX0KIAogCWlmICghaW9jLT5yZHBxX2FycmF5X2VuYWJsZV9hc3NpZ25lZCkgewogCQlpb2MtPnJkcHFfYXJyYXlfZW5hYmxlID0gaW9jLT5yZHBxX2FycmF5X2NhcGFibGU7CkBAIC01MDM3LDYgKzUwNzYsNyBAQCBfYmFzZV9hbGxvY2F0ZV9tZW1vcnlfcG9vbHMoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jKQogCQlfYmFzZV9yZWxlYXNlX21lbW9yeV9wb29scyhpb2MpOwogCQlnb3RvIHJldHJ5X2FsbG9jYXRpb247CiAJfQorCW1lbXNldChpb2MtPnJlcXVlc3QsIDAsIHN6KTsKIAogCWlmIChyZXRyeV9zeikKIAkJaW9jX2Vycihpb2MsICJyZXF1ZXN0IHBvb2w6IGRtYV9hbGxvY19jb2hlcmVudCBzdWNjZWVkOiBoYmFfZGVwdGgoJWQpLCBjaGFpbnNfcGVyX2lvKCVkKSwgZnJhbWVfc3ooJWQpLCB0b3RhbCglZCBrYilcbiIsCkBAIC01NDEwLDggKzU0NTAsNiBAQCBfYmFzZV93YWl0X29uX2lvY3N0YXRlKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgdTMyIGlvY19zdGF0ZSwgaW50IHRpbWVvdXQpCiAgKgogICogTm90ZXM6IE1QSTJfSElTX0lPQzJTWVNfREJfU1RBVFVTIC0gc2V0IHRvIG9uZSB3aGVuIElPQyB3cml0ZXMgdG8gZG9vcmJlbGwuCiAgKi8KLXN0YXRpYyBpbnQKLV9iYXNlX2RpYWdfcmVzZXQoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jKTsKIAogc3RhdGljIGludAogX2Jhc2Vfd2FpdF9mb3JfZG9vcmJlbGxfaW50KHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgaW50IHRpbWVvdXQpCkBAIC01ODY4LDYgKzU5MDYsNyBAQCBtcHQzc2FzX2Jhc2Vfc2NzaV9lbmNsb3N1cmVfcHJvY2Vzc29yKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywKIAlpb2MtPmJhc2VfY21kcy5zdGF0dXMgPSBNUFQzX0NNRF9QRU5ESU5HOwogCXJlcXVlc3QgPSBtcHQzc2FzX2Jhc2VfZ2V0X21zZ19mcmFtZShpb2MsIHNtaWQpOwogCWlvYy0+YmFzZV9jbWRzLnNtaWQgPSBzbWlkOworCW1lbXNldChyZXF1ZXN0LCAwLCBpb2MtPnJlcXVlc3Rfc3opOwogCW1lbWNweShyZXF1ZXN0LCBtcGlfcmVxdWVzdCwgc2l6ZW9mKE1waTJTZXBSZXBseV90KSk7CiAJaW5pdF9jb21wbGV0aW9uKCZpb2MtPmJhc2VfY21kcy5kb25lKTsKIAlpb2MtPnB1dF9zbWlkX2RlZmF1bHQoaW9jLCBzbWlkKTsKQEAgLTY2ODYsNyArNjcyNSw3IEBAIF9iYXNlX21ha2VfaW9jX3JlYWR5KHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgZW51bSByZXNldF90eXBlIHR5cGUpCiBzdGF0aWMgaW50CiBfYmFzZV9tYWtlX2lvY19vcGVyYXRpb25hbChzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpCiB7Ci0JaW50IHIsIGksIGluZGV4OworCWludCByLCBpLCBpbmRleCwgcmM7CiAJdW5zaWduZWQgbG9uZwlmbGFnczsKIAl1MzIgcmVwbHlfYWRkcmVzczsKIAl1MTYgc21pZDsKQEAgLTY3ODksOCArNjgyOCwxOSBAQCBfYmFzZV9tYWtlX2lvY19vcGVyYXRpb25hbChzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpCiAgc2tpcF9pbml0X3JlcGx5X3Bvc3RfZnJlZV9xdWV1ZToKIAogCXIgPSBfYmFzZV9zZW5kX2lvY19pbml0KGlvYyk7Ci0JaWYgKHIpCi0JCXJldHVybiByOworCWlmIChyKSB7CisJCS8qCisJCSAqIE5vIG5lZWQgdG8gY2hlY2sgSU9DIHN0YXRlIGZvciBmYXVsdCBzdGF0ZSAmIGlzc3VlCisJCSAqIGRpYWcgcmVzZXQgZHVyaW5nIGhvc3QgcmVzZXQuIFRoaXMgY2hlY2sgaXMgbmVlZAorCQkgKiBvbmx5IGR1cmluZyBkcml2ZXIgbG9hZCB0aW1lLgorCQkgKi8KKwkJaWYgKCFpb2MtPmlzX2RyaXZlcl9sb2FkaW5nKQorCQkJcmV0dXJuIHI7CisKKwkJcmMgPSBfYmFzZV9jaGVja19mb3JfZmF1bHRfYW5kX2lzc3VlX3Jlc2V0KGlvYyk7CisJCWlmIChyYyB8fCAoX2Jhc2Vfc2VuZF9pb2NfaW5pdChpb2MpKSkKKwkJCXJldHVybiByOworCX0KIAogCS8qIGluaXRpYWxpemUgcmVwbHkgZnJlZSBob3N0IGluZGV4ICovCiAJaW9jLT5yZXBseV9mcmVlX2hvc3RfaW5kZXggPSBpb2MtPnJlcGx5X2ZyZWVfcXVldWVfZGVwdGggLSAxOwpAQCAtNjg4Miw3ICs2OTMyLDcgQEAgbXB0M3Nhc19iYXNlX2ZyZWVfcmVzb3VyY2VzKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYykKIGludAogbXB0M3Nhc19iYXNlX2F0dGFjaChzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpCiB7Ci0JaW50IHIsIGk7CisJaW50IHIsIGksIHJjOwogCWludCBjcHVfaWQsIGxhc3RfY3B1X2lkID0gMDsKIAogCWRpbml0cHJpbnRrKGlvYywgaW9jX2luZm8oaW9jLCAiJXNcbiIsIF9fZnVuY19fKSk7CkBAIC02OTI2LDggKzY5NzYsMTEgQEAgbXB0M3Nhc19iYXNlX2F0dGFjaChzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpCiAKIAlwY2lfc2V0X2RydmRhdGEoaW9jLT5wZGV2LCBpb2MtPnNob3N0KTsKIAlyID0gX2Jhc2VfZ2V0X2lvY19mYWN0cyhpb2MpOwotCWlmIChyKQotCQlnb3RvIG91dF9mcmVlX3Jlc291cmNlczsKKwlpZiAocikgeworCQlyYyA9IF9iYXNlX2NoZWNrX2Zvcl9mYXVsdF9hbmRfaXNzdWVfcmVzZXQoaW9jKTsKKwkJaWYgKHJjIHx8IChfYmFzZV9nZXRfaW9jX2ZhY3RzKGlvYykpKQorCQkJZ290byBvdXRfZnJlZV9yZXNvdXJjZXM7CisJfQogCiAJc3dpdGNoIChpb2MtPmhiYV9tcGlfdmVyc2lvbl9iZWxvbmdlZCkgewogCWNhc2UgTVBJMl9WRVJTSU9OOgpAQCAtNjk5NSw4ICs3MDQ4LDExIEBAIG1wdDNzYXNfYmFzZV9hdHRhY2goc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jKQogCiAJZm9yIChpID0gMCA7IGkgPCBpb2MtPmZhY3RzLk51bWJlck9mUG9ydHM7IGkrKykgewogCQlyID0gX2Jhc2VfZ2V0X3BvcnRfZmFjdHMoaW9jLCBpKTsKLQkJaWYgKHIpCi0JCQlnb3RvIG91dF9mcmVlX3Jlc291cmNlczsKKwkJaWYgKHIpIHsKKwkJCXJjID0gX2Jhc2VfY2hlY2tfZm9yX2ZhdWx0X2FuZF9pc3N1ZV9yZXNldChpb2MpOworCQkJaWYgKHJjIHx8IChfYmFzZV9nZXRfcG9ydF9mYWN0cyhpb2MsIGkpKSkKKwkJCQlnb3RvIG91dF9mcmVlX3Jlc291cmNlczsKKwkJfQogCX0KIAogCXIgPSBfYmFzZV9hbGxvY2F0ZV9tZW1vcnlfcG9vbHMoaW9jKTsKQEAgLTcxMTgsNiArNzE3NCwxMyBAQCBtcHQzc2FzX2Jhc2VfYXR0YWNoKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYykKIAlpZiAocikKIAkJZ290byBvdXRfZnJlZV9yZXNvdXJjZXM7CiAKKwkvKgorCSAqIENvcHkgY3VycmVudCBjb3B5IG9mIElPQ0ZhY3RzIGluIHByZXZfZndfZmFjdHMKKwkgKiBhbmQgaXQgd2lsbCBiZSB1c2VkIGR1cmluZyBvbmxpbmUgZmlybXdhcmUgdXBncmFkZS4KKwkgKi8KKwltZW1jcHkoJmlvYy0+cHJldl9md19mYWN0cywgJmlvYy0+ZmFjdHMsCisJICAgIHNpemVvZihzdHJ1Y3QgbXB0M3Nhc19mYWN0cykpOworCiAJaW9jLT5ub25fb3BlcmF0aW9uYWxfbG9vcCA9IDA7CiAJaW9jLT5nb3RfdGFza19hYm9ydF9mcm9tX2lvY3RsID0gMDsKIAlyZXR1cm4gMDsKQEAgLTcyODAsNiArNzM0Myw4NSBAQCBtcHQzc2FzX3dhaXRfZm9yX2NvbW1hbmRzX3RvX2NvbXBsZXRlKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYykKIH0KIAogLyoqCisgKiBfYmFzZV9jaGVja19pb2NfZmFjdHNfY2hhbmdlcyAtIExvb2sgZm9yIGluY3JlYXNlL2RlY3JlYXNlIG9mIElPQ0ZhY3RzCisgKiAgICAgYXR0cmlidXRlcyBkdXJpbmcgb25saW5lIGZpcm13YXJlIHVwZ3JhZGUgYW5kIHVwZGF0ZSB0aGUgY29ycmVzcG9uZGluZworICogICAgIElPQyB2YXJpYWJsZXMgYWNjb3JkaW5nbHkuCisgKgorICogQGlvYzogUG9pbnRlciB0byBNUFRfQURBUFRFUiBzdHJ1Y3R1cmUKKyAqLworc3RhdGljIGludAorX2Jhc2VfY2hlY2tfaW9jX2ZhY3RzX2NoYW5nZXMoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jKQoreworCXUxNiBwZF9oYW5kbGVzX3N6OworCXZvaWQgKnBkX2hhbmRsZXMgPSBOVUxMLCAqYmxvY2tpbmdfaGFuZGxlcyA9IE5VTEw7CisJdm9pZCAqcGVuZF9vc19kZXZpY2VfYWRkID0gTlVMTCwgKmRldmljZV9yZW1vdmVfaW5fcHJvZ3Jlc3MgPSBOVUxMOworCXN0cnVjdCBtcHQzc2FzX2ZhY3RzICpvbGRfZmFjdHMgPSAmaW9jLT5wcmV2X2Z3X2ZhY3RzOworCisJaWYgKGlvYy0+ZmFjdHMuTWF4RGV2SGFuZGxlID4gb2xkX2ZhY3RzLT5NYXhEZXZIYW5kbGUpIHsKKwkJcGRfaGFuZGxlc19zeiA9IChpb2MtPmZhY3RzLk1heERldkhhbmRsZSAvIDgpOworCQlpZiAoaW9jLT5mYWN0cy5NYXhEZXZIYW5kbGUgJSA4KQorCQkJcGRfaGFuZGxlc19zeisrOworCisJCXBkX2hhbmRsZXMgPSBrcmVhbGxvYyhpb2MtPnBkX2hhbmRsZXMsIHBkX2hhbmRsZXNfc3osCisJCSAgICBHRlBfS0VSTkVMKTsKKwkJaWYgKCFwZF9oYW5kbGVzKSB7CisJCQlpb2NfaW5mbyhpb2MsCisJCQkgICAgIlVuYWJsZSB0byBhbGxvY2F0ZSB0aGUgbWVtb3J5IGZvciBwZF9oYW5kbGVzIG9mIHN6OiAlZFxuIiwKKwkJCSAgICBwZF9oYW5kbGVzX3N6KTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCW1lbXNldChwZF9oYW5kbGVzICsgaW9jLT5wZF9oYW5kbGVzX3N6LCAwLAorCQkgICAgKHBkX2hhbmRsZXNfc3ogLSBpb2MtPnBkX2hhbmRsZXNfc3opKTsKKwkJaW9jLT5wZF9oYW5kbGVzID0gcGRfaGFuZGxlczsKKworCQlibG9ja2luZ19oYW5kbGVzID0ga3JlYWxsb2MoaW9jLT5ibG9ja2luZ19oYW5kbGVzLAorCQkgICAgcGRfaGFuZGxlc19zeiwgR0ZQX0tFUk5FTCk7CisJCWlmICghYmxvY2tpbmdfaGFuZGxlcykgeworCQkJaW9jX2luZm8oaW9jLAorCQkJICAgICJVbmFibGUgdG8gYWxsb2NhdGUgdGhlIG1lbW9yeSBmb3IgIgorCQkJICAgICJibG9ja2luZ19oYW5kbGVzIG9mIHN6OiAlZFxuIiwKKwkJCSAgICBwZF9oYW5kbGVzX3N6KTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCW1lbXNldChibG9ja2luZ19oYW5kbGVzICsgaW9jLT5wZF9oYW5kbGVzX3N6LCAwLAorCQkgICAgKHBkX2hhbmRsZXNfc3ogLSBpb2MtPnBkX2hhbmRsZXNfc3opKTsKKwkJaW9jLT5ibG9ja2luZ19oYW5kbGVzID0gYmxvY2tpbmdfaGFuZGxlczsKKwkJaW9jLT5wZF9oYW5kbGVzX3N6ID0gcGRfaGFuZGxlc19zejsKKworCQlwZW5kX29zX2RldmljZV9hZGQgPSBrcmVhbGxvYyhpb2MtPnBlbmRfb3NfZGV2aWNlX2FkZCwKKwkJICAgIHBkX2hhbmRsZXNfc3osIEdGUF9LRVJORUwpOworCQlpZiAoIXBlbmRfb3NfZGV2aWNlX2FkZCkgeworCQkJaW9jX2luZm8oaW9jLAorCQkJICAgICJVbmFibGUgdG8gYWxsb2NhdGUgdGhlIG1lbW9yeSBmb3IgcGVuZF9vc19kZXZpY2VfYWRkIG9mIHN6OiAlZFxuIiwKKwkJCSAgICBwZF9oYW5kbGVzX3N6KTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCW1lbXNldChwZW5kX29zX2RldmljZV9hZGQgKyBpb2MtPnBlbmRfb3NfZGV2aWNlX2FkZF9zeiwgMCwKKwkJICAgIChwZF9oYW5kbGVzX3N6IC0gaW9jLT5wZW5kX29zX2RldmljZV9hZGRfc3opKTsKKwkJaW9jLT5wZW5kX29zX2RldmljZV9hZGQgPSBwZW5kX29zX2RldmljZV9hZGQ7CisJCWlvYy0+cGVuZF9vc19kZXZpY2VfYWRkX3N6ID0gcGRfaGFuZGxlc19zejsKKworCQlkZXZpY2VfcmVtb3ZlX2luX3Byb2dyZXNzID0ga3JlYWxsb2MoCisJCSAgICBpb2MtPmRldmljZV9yZW1vdmVfaW5fcHJvZ3Jlc3MsIHBkX2hhbmRsZXNfc3osIEdGUF9LRVJORUwpOworCQlpZiAoIWRldmljZV9yZW1vdmVfaW5fcHJvZ3Jlc3MpIHsKKwkJCWlvY19pbmZvKGlvYywKKwkJCSAgICAiVW5hYmxlIHRvIGFsbG9jYXRlIHRoZSBtZW1vcnkgZm9yICIKKwkJCSAgICAiZGV2aWNlX3JlbW92ZV9pbl9wcm9ncmVzcyBvZiBzejogJWRcbiAiCisJCQkgICAgLCBwZF9oYW5kbGVzX3N6KTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCW1lbXNldChkZXZpY2VfcmVtb3ZlX2luX3Byb2dyZXNzICsKKwkJICAgIGlvYy0+ZGV2aWNlX3JlbW92ZV9pbl9wcm9ncmVzc19zeiwgMCwKKwkJICAgIChwZF9oYW5kbGVzX3N6IC0gaW9jLT5kZXZpY2VfcmVtb3ZlX2luX3Byb2dyZXNzX3N6KSk7CisJCWlvYy0+ZGV2aWNlX3JlbW92ZV9pbl9wcm9ncmVzcyA9IGRldmljZV9yZW1vdmVfaW5fcHJvZ3Jlc3M7CisJCWlvYy0+ZGV2aWNlX3JlbW92ZV9pbl9wcm9ncmVzc19zeiA9IHBkX2hhbmRsZXNfc3o7CisJfQorCisJbWVtY3B5KCZpb2MtPnByZXZfZndfZmFjdHMsICZpb2MtPmZhY3RzLCBzaXplb2Yoc3RydWN0IG1wdDNzYXNfZmFjdHMpKTsKKwlyZXR1cm4gMDsKK30KKworLyoqCiAgKiBtcHQzc2FzX2Jhc2VfaGFyZF9yZXNldF9oYW5kbGVyIC0gcmVzZXQgY29udHJvbGxlcgogICogQGlvYzogUG9pbnRlciB0byBNUFRfQURBUFRFUiBzdHJ1Y3R1cmUKICAqIEB0eXBlOiBGT1JDRV9CSUdfSEFNTUVSIG9yIFNPRlRfUkVTRVQKQEAgLTczNDIsNiArNzQ4NCwxMyBAQCBtcHQzc2FzX2Jhc2VfaGFyZF9yZXNldF9oYW5kbGVyKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywKIAlpZiAocikKIAkJZ290byBvdXQ7CiAKKwlyID0gX2Jhc2VfY2hlY2tfaW9jX2ZhY3RzX2NoYW5nZXMoaW9jKTsKKwlpZiAocikgeworCQlpb2NfaW5mbyhpb2MsCisJCSAgICAiU29tZSBvZiB0aGUgcGFyYW1ldGVycyBnb3QgY2hhbmdlZCBpbiB0aGlzIG5ldyBmaXJtd2FyZSIKKwkJICAgICIgaW1hZ2UgYW5kIGl0IHJlcXVpcmVzIHN5c3RlbSByZWJvb3RcbiIpOworCQlnb3RvIG91dDsKKwl9CiAJaWYgKGlvYy0+cmRwcV9hcnJheV9lbmFibGUgJiYgIWlvYy0+cmRwcV9hcnJheV9jYXBhYmxlKQogCQlwYW5pYygiJXM6IElzc3VlIG9jY3VycmVkIHdpdGggZmxhc2hpbmcgY29udHJvbGxlciBmaXJtd2FyZS4iCiAJCSAgICAgICJQbGVhc2UgcmVib290IHRoZSBzeXN0ZW0gYW5kIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21wdDNzYXMvbXB0M3Nhc19iYXNlLmggYi9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcHQzc2FzX2Jhc2UuaAppbmRleCA2YWZiZGIwLi5mYWNhMGE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcHQzc2FzX2Jhc2UuaAorKysgYi9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcHQzc2FzX2Jhc2UuaApAQCAtNzYsOCArNzYsOCBAQAogI2RlZmluZSBNUFQzU0FTX0RSSVZFUl9OQU1FCQkibXB0M3NhcyIKICNkZWZpbmUgTVBUM1NBU19BVVRIT1IgIkF2YWdvIFRlY2hub2xvZ2llcyA8TVBULUZ1c2lvbkxpbnV4LnBkbEBhdmFnb3RlY2guY29tPiIKICNkZWZpbmUgTVBUM1NBU19ERVNDUklQVElPTgkiTFNJIE1QVCBGdXNpb24gU0FTIDMuMCBEZXZpY2UgRHJpdmVyIgotI2RlZmluZSBNUFQzU0FTX0RSSVZFUl9WRVJTSU9OCQkiMjkuMTAwLjAwLjAwIgotI2RlZmluZSBNUFQzU0FTX01BSk9SX1ZFUlNJT04JCTI5CisjZGVmaW5lIE1QVDNTQVNfRFJJVkVSX1ZFUlNJT04JCSIzMS4xMDAuMDAuMDAiCisjZGVmaW5lIE1QVDNTQVNfTUFKT1JfVkVSU0lPTgkJMzEKICNkZWZpbmUgTVBUM1NBU19NSU5PUl9WRVJTSU9OCQkxMDAKICNkZWZpbmUgTVBUM1NBU19CVUlMRF9WRVJTSU9OCQkwCiAjZGVmaW5lIE1QVDNTQVNfUkVMRUFTRV9WRVJTSU9OCTAwCkBAIC01ODMsNiArNTgzLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNhc19kZXZpY2VfcHV0KHN0cnVjdCBfc2FzX2RldmljZSAqcykKICAqIEBlbmNsb3N1cmVfbGV2ZWw6IFRoZSBsZXZlbCBvZiBkZXZpY2UncyBlbmNsb3N1cmUgZnJvbSB0aGUgY29udHJvbGxlcgogICogQGNvbm5lY3Rvcl9uYW1lOiBBU0NJSSB2YWx1ZSBvZiB0aGUgQ29ubmVjdG9yJ3MgbmFtZQogICogQHNlcmlhbF9udW1iZXI6IHBvaW50ZXIgb2Ygc2VyaWFsIG51bWJlciBzdHJpbmcgYWxsb2NhdGVkIHJ1bnRpbWUKKyAqIEBhY2Nlc3Nfc3RhdHVzOiBEZXZpY2UncyBBY2Nlc3MgU3RhdHVzCiAgKiBAcmVmY291bnQ6IHJlZmVyZW5jZSBjb3VudCBmb3IgZGVsZXRpb24KICAqLwogc3RydWN0IF9wY2llX2RldmljZSB7CkBAIC02MDQsNiArNjA1LDcgQEAgc3RydWN0IF9wY2llX2RldmljZSB7CiAJdTgJY29ubmVjdG9yX25hbWVbNF07CiAJdTgJKnNlcmlhbF9udW1iZXI7CiAJdTgJcmVzZXRfdGltZW91dDsKKwl1OAlhY2Nlc3Nfc3RhdHVzOwogCXN0cnVjdCBrcmVmIHJlZmNvdW50OwogfTsKIC8qKgpAQCAtMTA0NSw2ICsxMDQ3LDcgQEAgdHlwZWRlZiB2b2lkICgqTVBUM1NBU19GTFVTSF9SVU5OSU5HX0NNRFMpKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYyk7CiAgKiBAc2NoZWR1bGVfZGVhZF9pb2NfZmx1c2hfcnVubmluZ19jbWRzOiBjYWxsYmFjayB0byBmbHVzaCBwZW5kaW5nIGNvbW1hbmRzCiAgKiBAdGhyZXNoX2hvbGQ6IE1heCBudW1iZXIgb2YgcmVwbHkgZGVzY3JpcHRvcnMgcHJvY2Vzc2VkCiAgKgkJCQliZWZvcmUgdXBkYXRpbmcgSG9zdCBJbmRleAorICogQGRydl9zdXBwb3J0X2JpdG1hcDogZHJpdmVyJ3Mgc3VwcG9ydGVkIGZlYXR1cmUgYml0IG1hcAogICogQHNjc2lfaW9fY2JfaWR4OiBzaG9zdCBnZW5lcmF0ZWQgY29tbWFuZHMKICAqIEB0bV9jYl9pZHg6IHRhc2sgbWFuYWdlbWVudCBjb21tYW5kcwogICogQHNjc2loX2NiX2lkeDogc2NzaWggaW50ZXJuYWwgY29tbWFuZHMKQEAgLTEwNjYsNiArMTA2OSw3IEBAIHR5cGVkZWYgdm9pZCAoKk1QVDNTQVNfRkxVU0hfUlVOTklOR19DTURTKShzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpOwogICogQGV2ZW50X2xvZzogZXZlbnQgbG9nIHBvaW50ZXIKICAqIEBldmVudF9tYXNrczogZXZlbnRzIHRoYXQgYXJlIG1hc2tlZAogICogQGZhY3RzOiBzdGF0aWMgZmFjdHMgZGF0YQorICogQHByZXZfZndfZmFjdHM6IHByZXZpb3VzIGZ3IGZhY3RzIGRhdGEKICAqIEBwZmFjdHM6IHN0YXRpYyBwb3J0IGZhY3RzIGRhdGEKICAqIEBtYW51X3BnMDogc3RhdGljIG1hbnVmYWN0dXJpbmcgcGFnZSAwCiAgKiBAbWFudV9wZzEwOiBzdGF0aWMgbWFudWZhY3R1cmluZyBwYWdlIDEwCkBAIC0xMjI3LDYgKzEyMzEsOCBAQCBzdHJ1Y3QgTVBUM1NBU19BREFQVEVSIHsKIAlib29sICAgICAgICAgICAgbXNpeF9sb2FkX2JhbGFuY2U7CiAJdTE2CQl0aHJlc2hfaG9sZDsKIAl1OAkJaGlnaF9pb3BzX3F1ZXVlczsKKwl1MzIJCWRydl9zdXBwb3J0X2JpdG1hcDsKKwlib29sCQllbmFibGVfc2Rldl9tYXhfcWQ7CiAKIAkvKiBpbnRlcm5hbCBjb21tYW5kcywgY2FsbGJhY2sgaW5kZXggKi8KIAl1OAkJc2NzaV9pb19jYl9pZHg7CkBAIC0xMjc2LDYgKzEyODIsNyBAQCBzdHJ1Y3QgTVBUM1NBU19BREFQVEVSIHsKIAogCS8qIHN0YXRpYyBjb25maWcgcGFnZXMgKi8KIAlzdHJ1Y3QgbXB0M3Nhc19mYWN0cyBmYWN0czsKKwlzdHJ1Y3QgbXB0M3Nhc19mYWN0cyBwcmV2X2Z3X2ZhY3RzOwogCXN0cnVjdCBtcHQzc2FzX3BvcnRfZmFjdHMgKnBmYWN0czsKIAlNcGkyTWFudWZhY3R1cmluZ1BhZ2UwX3QgbWFudV9wZzA7CiAJc3RydWN0IE1waTJNYW51ZmFjdHVyaW5nUGFnZTEwX3QgbWFudV9wZzEwOwpAQCAtMTQ1MCw2ICsxNDU3LDggQEAgc3RydWN0IE1QVDNTQVNfQURBUFRFUiB7CiAJR0VUX01TSVhfSU5ERVggZ2V0X21zaXhfaW5kZXhfZm9yX3NtbGlvOwogfTsKIAorI2RlZmluZSBNUFRfRFJWX1NVUFBPUlRfQklUTUFQX01FTU1PVkUgMHgwMDAwMDAwMQorCiB0eXBlZGVmIHU4ICgqTVBUX0NBTExCQUNLKShzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MsIHUxNiBzbWlkLCB1OCBtc2l4X2luZGV4LAogCXUzMiByZXBseSk7CiAKQEAgLTE1NzksNiArMTU4OCw3IEBAIHN0cnVjdCBfcGNpZV9kZXZpY2UgKm1wdDNzYXNfZ2V0X3BkZXZfYnlfaGFuZGxlKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywKIHZvaWQgbXB0M3Nhc19wb3J0X2VuYWJsZV9jb21wbGV0ZShzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpOwogc3RydWN0IF9yYWlkX2RldmljZSAqCiBtcHQzc2FzX3JhaWRfZGV2aWNlX2ZpbmRfYnlfaGFuZGxlKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgdTE2IGhhbmRsZSk7Cit2b2lkIG1wdDNzYXNfc2NzaWhfY2hhbmdlX3F1ZXVlX2RlcHRoKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldiwgaW50IHFkZXB0aCk7CiAKIC8qIGNvbmZpZyBzaGFyZWQgQVBJICovCiB1OCBtcHQzc2FzX2NvbmZpZ19kb25lKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgdTE2IHNtaWQsIHU4IG1zaXhfaW5kZXgsCkBAIC0xNzMzLDQgKzE3NDMsMjAgQEAgbXB0M3Nhc19zZXR1cF9kaXJlY3RfaW8oc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jLCBzdHJ1Y3Qgc2NzaV9jbW5kICpzY21kLAogLyogTkNRIFByaW8gSGFuZGxpbmcgQ2hlY2sgKi8KIGJvb2wgc2NzaWhfbmNxX3ByaW9fc3VwcChzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYpOwogCisvKioKKyAqIF9zY3NpaF9pc19wY2llX3Njc2lfZGV2aWNlIC0gZGV0ZXJtaW5lcyBpZiBkZXZpY2UgaXMgYW4gcGNpZSBzY3NpIGRldmljZQorICogQGRldmljZV9pbmZvOiBiaXRmaWVsZCBwcm92aWRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRldmljZS4KKyAqIENvbnRleHQ6IG5vbmUKKyAqCisgKiBSZXR1cm5zIDEgaWYgc2NzaSBkZXZpY2UuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50CittcHQzc2FzX3Njc2loX2lzX3BjaWVfc2NzaV9kZXZpY2UodTMyIGRldmljZV9pbmZvKQoreworCWlmICgoZGV2aWNlX2luZm8gJgorCSAgICBNUEkyNl9QQ0lFX0RFVklORk9fTUFTS19ERVZJQ0VfVFlQRSkgPT0gTVBJMjZfUENJRV9ERVZJTkZPX1NDU0kpCisJCXJldHVybiAxOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CiAjZW5kaWYgLyogTVBUM1NBU19CQVNFX0hfSU5DTFVERUQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcHQzc2FzL21wdDNzYXNfY3RsLmMgYi9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcHQzc2FzX2N0bC5jCmluZGV4IGQ0ZWNmYmIuLjdkNjk2OTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9tcHQzc2FzL21wdDNzYXNfY3RsLmMKKysrIGIvZHJpdmVycy9zY3NpL21wdDNzYXMvbXB0M3Nhc19jdGwuYwpAQCAtNTk2LDggKzU5NiwxNiBAQCBfY3RsX3NldF90YXNrX21pZChzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MsIHN0cnVjdCBtcHQzX2lvY3RsX2NvbW1hbmQgKmthcmcsCiAJCWlmIChwcml2X2RhdGEtPnNhc190YXJnZXQtPmhhbmRsZSAhPSBoYW5kbGUpCiAJCQljb250aW51ZTsKIAkJc3QgPSBzY3NpX2NtZF9wcml2KHNjbWQpOwotCQl0bV9yZXF1ZXN0LT5UYXNrTUlEID0gY3B1X3RvX2xlMTYoc3QtPnNtaWQpOwotCQlmb3VuZCA9IDE7CisKKwkJLyoKKwkJICogSWYgdGhlIGdpdmVuIFRhc2tNSUQgZnJvbSB0aGUgdXNlciBzcGFjZSBpcyB6ZXJvLCB0aGVuIHRoZQorCQkgKiBmaXJzdCBvdXRzdGFuZGluZyBzbWlkIHdpbGwgYmUgcGlja2VkIHVwLiAgT3RoZXJ3aXNlLAorCQkgKiB0YXJnZXRlZCBzbWlkIHdpbGwgYmUgdGhlIG9uZS4KKwkJICovCisJCWlmICghdG1fcmVxdWVzdC0+VGFza01JRCB8fCB0bV9yZXF1ZXN0LT5UYXNrTUlEID09IHN0LT5zbWlkKSB7CisJCQl0bV9yZXF1ZXN0LT5UYXNrTUlEID0gY3B1X3RvX2xlMTYoc3QtPnNtaWQpOworCQkJZm91bmQgPSAxOworCQl9CiAJfQogCiAJaWYgKCFmb3VuZCkgewpAQCAtNjU0LDcgKzY2Miw2IEBAIF9jdGxfZG9fbXB0X2NvbW1hbmQoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jLCBzdHJ1Y3QgbXB0M19pb2N0bF9jb21tYW5kIGthcmcsCiAJc2l6ZV90IGRhdGFfaW5fc3ogPSAwOwogCWxvbmcgcmV0OwogCXUxNiBkZXZpY2VfaGFuZGxlID0gTVBUM1NBU19JTlZBTElEX0RFVklDRV9IQU5ETEU7Ci0JdTggdHJfbWV0aG9kID0gTVBJMjZfU0NTSVRBU0tNR01UX01TR0ZMQUdTX1BST1RPQ09MX0xWTF9SU1RfUENJRTsKIAogCWlzc3VlX3Jlc2V0ID0gMDsKIApAQCAtNzA3LDYgKzcxNCw3IEBAIF9jdGxfZG9fbXB0X2NvbW1hbmQoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jLCBzdHJ1Y3QgbXB0M19pb2N0bF9jb21tYW5kIGthcmcsCiAJaW9jLT5jdGxfY21kcy5zdGF0dXMgPSBNUFQzX0NNRF9QRU5ESU5HOwogCW1lbXNldChpb2MtPmN0bF9jbWRzLnJlcGx5LCAwLCBpb2MtPnJlcGx5X3N6KTsKIAlyZXF1ZXN0ID0gbXB0M3Nhc19iYXNlX2dldF9tc2dfZnJhbWUoaW9jLCBzbWlkKTsKKwltZW1zZXQocmVxdWVzdCwgMCwgaW9jLT5yZXF1ZXN0X3N6KTsKIAltZW1jcHkocmVxdWVzdCwgbXBpX3JlcXVlc3QsIGthcmcuZGF0YV9zZ2Vfb2Zmc2V0KjQpOwogCWlvYy0+Y3RsX2NtZHMuc21pZCA9IHNtaWQ7CiAJZGF0YV9vdXRfc3ogPSBrYXJnLmRhdGFfb3V0X3NpemU7CkBAIC05MjEsMTMgKzkyOSwzNyBAQCBfY3RsX2RvX21wdF9jb21tYW5kKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgc3RydWN0IG1wdDNfaW9jdGxfY29tbWFuZCBrYXJnLAogCQlNcGkyVG9vbGJveENsZWFuUmVxdWVzdF90ICp0b29sYm94X3JlcXVlc3QgPQogCQkJKE1waTJUb29sYm94Q2xlYW5SZXF1ZXN0X3QgKiltcGlfcmVxdWVzdDsKIAotCQlpZiAodG9vbGJveF9yZXF1ZXN0LT5Ub29sID09IE1QSTJfVE9PTEJPWF9ESUFHTk9TVElDX0NMSV9UT09MKSB7CisJCWlmICgodG9vbGJveF9yZXF1ZXN0LT5Ub29sID09IE1QSTJfVE9PTEJPWF9ESUFHTk9TVElDX0NMSV9UT09MKQorCQkgICAgfHwgKHRvb2xib3hfcmVxdWVzdC0+VG9vbCA9PQorCQkgICAgTVBJMjZfVE9PTEJPWF9CQUNLRU5EX1BDSUVfTEFORV9NQVJHSU4pKQogCQkJaW9jLT5idWlsZF9zZyhpb2MsIHBzZ2UsIGRhdGFfb3V0X2RtYSwgZGF0YV9vdXRfc3osCiAJCQkJZGF0YV9pbl9kbWEsIGRhdGFfaW5fc3opOwotCQl9IGVsc2UgeworCQllbHNlIGlmICh0b29sYm94X3JlcXVlc3QtPlRvb2wgPT0KKwkJCQlNUEkyX1RPT0xCT1hfTUVNT1JZX01PVkVfVE9PTCkgeworCQkJTXBpMlRvb2xib3hNZW1Nb3ZlUmVxdWVzdF90ICptZW1fbW92ZV9yZXF1ZXN0ID0KKwkJCQkJKE1waTJUb29sYm94TWVtTW92ZVJlcXVlc3RfdCAqKXJlcXVlc3Q7CisJCQlNcGkyU0dFU2ltcGxlNjRfdCB0bXAsICpzcmMgPSBOVUxMLCAqZHN0ID0gTlVMTDsKKworCQkJaW9jLT5idWlsZF9zZ19tcGkoaW9jLCBwc2dlLCBkYXRhX291dF9kbWEsCisJCQkJCWRhdGFfb3V0X3N6LCBkYXRhX2luX2RtYSwgZGF0YV9pbl9zeik7CisJCQlpZiAoZGF0YV9vdXRfc3ogJiYgIWRhdGFfaW5fc3opIHsKKwkJCQlkc3QgPQorCQkJCSAgICAoTXBpMlNHRVNpbXBsZTY0X3QgKikmbWVtX21vdmVfcmVxdWVzdC0+U0dMOworCQkJCXNyYyA9ICh2b2lkICopZHN0ICsgaW9jLT5zZ2Vfc2l6ZTsKKworCQkJCW1lbWNweSgmdG1wLCBzcmMsIGlvYy0+c2dlX3NpemUpOworCQkJCW1lbWNweShzcmMsIGRzdCwgaW9jLT5zZ2Vfc2l6ZSk7CisJCQkJbWVtY3B5KGRzdCwgJnRtcCwgaW9jLT5zZ2Vfc2l6ZSk7CisJCQl9CisJCQlpZiAoaW9jLT5sb2dnaW5nX2xldmVsICYgTVBUX0RFQlVHX1RNKSB7CisJCQkJaW9jX2luZm8oaW9jLAorCQkJCSAgIk1waTJUb29sYm94TWVtTW92ZVJlcXVlc3RfdCByZXF1ZXN0IG1zZ1xuIik7CisJCQkJX2RlYnVnX2R1bXBfbWYobWVtX21vdmVfcmVxdWVzdCwKKwkJCQkJCQlpb2MtPnJlcXVlc3Rfc3ovNCk7CisJCQl9CisJCX0gZWxzZQogCQkJaW9jLT5idWlsZF9zZ19tcGkoaW9jLCBwc2dlLCBkYXRhX291dF9kbWEsIGRhdGFfb3V0X3N6LAotCQkJCWRhdGFfaW5fZG1hLCBkYXRhX2luX3N6KTsKLQkJfQorCQkJICAgIGRhdGFfaW5fZG1hLCBkYXRhX2luX3N6KTsKIAkJaW9jLT5wdXRfc21pZF9kZWZhdWx0KGlvYywgc21pZCk7CiAJCWJyZWFrOwogCX0KQEAgLTEwNDcsMTIgKzEwNzksMTQgQEAgX2N0bF9kb19tcHRfY29tbWFuZChzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MsIHN0cnVjdCBtcHQzX2lvY3RsX2NvbW1hbmQga2FyZywKIAkJCW1wdDNzYXNfaGFsdF9maXJtd2FyZShpb2MpOwogCQkJcGNpZV9kZXZpY2UgPSBtcHQzc2FzX2dldF9wZGV2X2J5X2hhbmRsZShpb2MsCiAJCQkJbGUxNl90b19jcHUobXBpX3JlcXVlc3QtPkZ1bmN0aW9uRGVwZW5kZW50MSkpOwotCQkJaWYgKHBjaWVfZGV2aWNlICYmICghaW9jLT50bV9jdXN0b21faGFuZGxpbmcpKQorCQkJaWYgKHBjaWVfZGV2aWNlICYmICghaW9jLT50bV9jdXN0b21faGFuZGxpbmcpICYmCisJCQkgICAgKCEobXB0M3Nhc19zY3NpaF9pc19wY2llX3Njc2lfZGV2aWNlKAorCQkJICAgIHBjaWVfZGV2aWNlLT5kZXZpY2VfaW5mbykpKSkKIAkJCQltcHQzc2FzX3Njc2loX2lzc3VlX2xvY2tlZF90bShpb2MsCiAJCQkJICBsZTE2X3RvX2NwdShtcGlfcmVxdWVzdC0+RnVuY3Rpb25EZXBlbmRlbnQxKSwKIAkJCQkgIDAsIE1QSTJfU0NTSVRBU0tNR01UX1RBU0tUWVBFX1RBUkdFVF9SRVNFVCwgMCwKIAkJCQkgIDAsIHBjaWVfZGV2aWNlLT5yZXNldF90aW1lb3V0LAotCQkJCSAgdHJfbWV0aG9kKTsKKwkJCU1QSTI2X1NDU0lUQVNLTUdNVF9NU0dGTEFHU19QUk9UT0NPTF9MVkxfUlNUX1BDSUUpOwogCQkJZWxzZQogCQkJCW1wdDNzYXNfc2NzaWhfaXNzdWVfbG9ja2VkX3RtKGlvYywKIAkJCQkgIGxlMTZfdG9fY3B1KG1waV9yZXF1ZXN0LT5GdW5jdGlvbkRlcGVuZGVudDEpLApAQCAtMzI3OCw5ICszMzEyLDggQEAgZGlhZ190cmlnZ2VyX3Njc2lfc3RvcmUoc3RydWN0IGRldmljZSAqY2RldiwKIAlzc2l6ZV90IHN6OwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmlvYy0+ZGlhZ190cmlnZ2VyX2xvY2ssIGZsYWdzKTsKLQlzeiA9IG1pbihzaXplb2Yoc3RydWN0IFNMX1dIX1NDU0lfVFJJR0dFUlNfVCksIGNvdW50KTsKLQltZW1zZXQoJmlvYy0+ZGlhZ190cmlnZ2VyX3Njc2ksIDAsCi0JICAgIHNpemVvZihzdHJ1Y3QgU0xfV0hfRVZFTlRfVFJJR0dFUlNfVCkpOworCXN6ID0gbWluKHNpemVvZihpb2MtPmRpYWdfdHJpZ2dlcl9zY3NpKSwgY291bnQpOworCW1lbXNldCgmaW9jLT5kaWFnX3RyaWdnZXJfc2NzaSwgMCwgc2l6ZW9mKGlvYy0+ZGlhZ190cmlnZ2VyX3Njc2kpKTsKIAltZW1jcHkoJmlvYy0+ZGlhZ190cmlnZ2VyX3Njc2ksIGJ1Ziwgc3opOwogCWlmIChpb2MtPmRpYWdfdHJpZ2dlcl9zY3NpLlZhbGlkRW50cmllcyA+IE5VTV9WQUxJRF9FTlRSSUVTKQogCQlpb2MtPmRpYWdfdHJpZ2dlcl9zY3NpLlZhbGlkRW50cmllcyA9IE5VTV9WQUxJRF9FTlRSSUVTOwpAQCAtMzM0OSw2ICszMzgyLDEyNSBAQCBzdGF0aWMgREVWSUNFX0FUVFJfUlcoZGlhZ190cmlnZ2VyX21waSk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAorLyoqCisgKiBkcnZfc3VwcG9ydF9iaXRtYXBfc2hvdyAtIGRyaXZlciBzdXBwb3J0ZWQgZmVhdHVyZSBiaXRtYXAKKyAqIEBjZGV2IC0gcG9pbnRlciB0byBlbWJlZGRlZCBjbGFzcyBkZXZpY2UKKyAqIEBidWYgLSB0aGUgYnVmZmVyIHJldHVybmVkCisgKgorICogQSBzeXNmcyAncmVhZC1vbmx5JyBzaG9zdCBhdHRyaWJ1dGUuCisgKi8KK3N0YXRpYyBzc2l6ZV90CitkcnZfc3VwcG9ydF9iaXRtYXBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpjZGV2LAorCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBjbGFzc190b19zaG9zdChjZGV2KTsKKwlzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MgPSBzaG9zdF9wcml2KHNob3N0KTsKKworCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIjB4JTA4eFxuIiwgaW9jLT5kcnZfc3VwcG9ydF9iaXRtYXApOworfQorc3RhdGljIERFVklDRV9BVFRSX1JPKGRydl9zdXBwb3J0X2JpdG1hcCk7CisKKy8qKgorICogZW5hYmxlX3NkZXZfbWF4X3FkX3Nob3cgLSBkaXNwbGF5IHdoZXRoZXIgc2RldiBtYXggcWQgaXMgZW5hYmxlZC9kaXNhYmxlZAorICogQGNkZXYgLSBwb2ludGVyIHRvIGVtYmVkZGVkIGNsYXNzIGRldmljZQorICogQGJ1ZiAtIHRoZSBidWZmZXIgcmV0dXJuZWQKKyAqCisgKiBBIHN5c2ZzIHJlYWQvd3JpdGUgc2hvc3QgYXR0cmlidXRlLiBUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIHRvIHNldCB0aGUKKyAqIHRhcmdldHMgcXVldWUgZGVwdGggdG8gSEJBIElPIHF1ZXVlIGRlcHRoIGlmIHRoaXMgYXR0cmlidXRlIGlzIGVuYWJsZWQuCisgKi8KK3N0YXRpYyBzc2l6ZV90CitlbmFibGVfc2Rldl9tYXhfcWRfc2hvdyhzdHJ1Y3QgZGV2aWNlICpjZGV2LAorCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBjbGFzc190b19zaG9zdChjZGV2KTsKKwlzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MgPSBzaG9zdF9wcml2KHNob3N0KTsKKworCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVkXG4iLCBpb2MtPmVuYWJsZV9zZGV2X21heF9xZCk7Cit9CisKKy8qKgorICogZW5hYmxlX3NkZXZfbWF4X3FkX3N0b3JlIC0gRW5hYmxlL2Rpc2FibGUgc2RldiBtYXggcWQKKyAqIEBjZGV2IC0gcG9pbnRlciB0byBlbWJlZGRlZCBjbGFzcyBkZXZpY2UKKyAqIEBidWYgLSB0aGUgYnVmZmVyIHJldHVybmVkCisgKgorICogQSBzeXNmcyByZWFkL3dyaXRlIHNob3N0IGF0dHJpYnV0ZS4gVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCB0byBzZXQgdGhlCisgKiB0YXJnZXRzIHF1ZXVlIGRlcHRoIHRvIEhCQSBJTyBxdWV1ZSBkZXB0aCBpZiB0aGlzIGF0dHJpYnV0ZSBpcyBlbmFibGVkLgorICogSWYgdGhpcyBhdHRyaWJ1dGUgaXMgZGlzYWJsZWQgdGhlbiB0YXJnZXRzIHdpbGwgaGF2ZSBjb3JyZXNwb25kaW5nIGRlZmF1bHQKKyAqIHF1ZXVlIGRlcHRoLgorICovCitzdGF0aWMgc3NpemVfdAorZW5hYmxlX3NkZXZfbWF4X3FkX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmNkZXYsCisJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gY2xhc3NfdG9fc2hvc3QoY2Rldik7CisJc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jID0gc2hvc3RfcHJpdihzaG9zdCk7CisJc3RydWN0IE1QVDNTQVNfREVWSUNFICpzYXNfZGV2aWNlX3ByaXZfZGF0YTsKKwlzdHJ1Y3QgTVBUM1NBU19UQVJHRVQgKnNhc190YXJnZXRfcHJpdl9kYXRhOworCWludCB2YWwgPSAwOworCXN0cnVjdCBzY3NpX2RldmljZSAqc2RldjsKKwlzdHJ1Y3QgX3JhaWRfZGV2aWNlICpyYWlkX2RldmljZTsKKwlpbnQgcWRlcHRoOworCisJaWYgKGtzdHJ0b2ludChidWYsIDAsICZ2YWwpICE9IDApCisJCXJldHVybiAtRUlOVkFMOworCisJc3dpdGNoICh2YWwpIHsKKwljYXNlIDA6CisJCWlvYy0+ZW5hYmxlX3NkZXZfbWF4X3FkID0gMDsKKwkJc2hvc3RfZm9yX2VhY2hfZGV2aWNlKHNkZXYsIGlvYy0+c2hvc3QpIHsKKwkJCXNhc19kZXZpY2VfcHJpdl9kYXRhID0gc2Rldi0+aG9zdGRhdGE7CisJCQlpZiAoIXNhc19kZXZpY2VfcHJpdl9kYXRhKQorCQkJCWNvbnRpbnVlOworCQkJc2FzX3RhcmdldF9wcml2X2RhdGEgPSBzYXNfZGV2aWNlX3ByaXZfZGF0YS0+c2FzX3RhcmdldDsKKwkJCWlmICghc2FzX3RhcmdldF9wcml2X2RhdGEpCisJCQkJY29udGludWU7CisKKwkJCWlmIChzYXNfdGFyZ2V0X3ByaXZfZGF0YS0+ZmxhZ3MgJgorCQkJICAgIE1QVF9UQVJHRVRfRkxBR1NfVk9MVU1FKSB7CisJCQkJcmFpZF9kZXZpY2UgPQorCQkJCSAgICBtcHQzc2FzX3JhaWRfZGV2aWNlX2ZpbmRfYnlfaGFuZGxlKGlvYywKKwkJCQkgICAgc2FzX3RhcmdldF9wcml2X2RhdGEtPmhhbmRsZSk7CisKKwkJCQlzd2l0Y2ggKHJhaWRfZGV2aWNlLT52b2x1bWVfdHlwZSkgeworCQkJCWNhc2UgTVBJMl9SQUlEX1ZPTF9UWVBFX1JBSUQwOgorCQkJCQlpZiAocmFpZF9kZXZpY2UtPmRldmljZV9pbmZvICYKKwkJCQkJICAgIE1QSTJfU0FTX0RFVklDRV9JTkZPX1NTUF9UQVJHRVQpCisJCQkJCQlxZGVwdGggPQorCQkJCQkJICAgIE1QVDNTQVNfU0FTX1FVRVVFX0RFUFRIOworCQkJCQllbHNlCisJCQkJCQlxZGVwdGggPQorCQkJCQkJICAgIE1QVDNTQVNfU0FUQV9RVUVVRV9ERVBUSDsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBNUEkyX1JBSURfVk9MX1RZUEVfUkFJRDFFOgorCQkJCWNhc2UgTVBJMl9SQUlEX1ZPTF9UWVBFX1JBSUQxOgorCQkJCWNhc2UgTVBJMl9SQUlEX1ZPTF9UWVBFX1JBSUQxMDoKKwkJCQljYXNlIE1QSTJfUkFJRF9WT0xfVFlQRV9VTktOT1dOOgorCQkJCWRlZmF1bHQ6CisJCQkJCXFkZXB0aCA9IE1QVDNTQVNfUkFJRF9RVUVVRV9ERVBUSDsKKwkJCQl9CisJCQl9IGVsc2UgaWYgKHNhc190YXJnZXRfcHJpdl9kYXRhLT5mbGFncyAmCisJCQkgICAgTVBUX1RBUkdFVF9GTEFHU19QQ0lFX0RFVklDRSkKKwkJCQlxZGVwdGggPSBNUFQzU0FTX05WTUVfUVVFVUVfREVQVEg7CisJCQllbHNlCisJCQkJcWRlcHRoID0gTVBUM1NBU19TQVNfUVVFVUVfREVQVEg7CisKKwkJCW1wdDNzYXNfc2NzaWhfY2hhbmdlX3F1ZXVlX2RlcHRoKHNkZXYsIHFkZXB0aCk7CisJCX0KKwkJYnJlYWs7CisJY2FzZSAxOgorCQlpb2MtPmVuYWJsZV9zZGV2X21heF9xZCA9IDE7CisJCXNob3N0X2Zvcl9lYWNoX2RldmljZShzZGV2LCBpb2MtPnNob3N0KQorCQkJbXB0M3Nhc19zY3NpaF9jaGFuZ2VfcXVldWVfZGVwdGgoc2RldiwKKwkJCSAgICBzaG9zdC0+Y2FuX3F1ZXVlKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIHN0cmxlbihidWYpOworfQorc3RhdGljIERFVklDRV9BVFRSX1JXKGVuYWJsZV9zZGV2X21heF9xZCk7CisKIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICptcHQzc2FzX2hvc3RfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfdmVyc2lvbl9mdywKIAkmZGV2X2F0dHJfdmVyc2lvbl9iaW9zLApAQCAtMzM3NCw3ICszNTI2LDkgQEAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKm1wdDNzYXNfaG9zdF9hdHRyc1tdID0gewogCSZkZXZfYXR0cl9kaWFnX3RyaWdnZXJfZXZlbnQsCiAJJmRldl9hdHRyX2RpYWdfdHJpZ2dlcl9zY3NpLAogCSZkZXZfYXR0cl9kaWFnX3RyaWdnZXJfbXBpLAorCSZkZXZfYXR0cl9kcnZfc3VwcG9ydF9iaXRtYXAsCiAJJmRldl9hdHRyX0JSTV9zdGF0dXMsCisJJmRldl9hdHRyX2VuYWJsZV9zZGV2X21heF9xZCwKIAlOVUxMLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21wdDNzYXMvbXB0M3Nhc19zY3NpaC5jIGIvZHJpdmVycy9zY3NpL21wdDNzYXMvbXB0M3Nhc19zY3NpaC5jCmluZGV4IDcxN2JhMDg0Li5jOGU1MTJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcHQzc2FzX3Njc2loLmMKKysrIGIvZHJpdmVycy9zY3NpL21wdDNzYXMvbXB0M3Nhc19zY3NpaC5jCkBAIC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2Flci5oPgogI2luY2x1ZGUgPGxpbnV4L3JhaWRfY2xhc3MuaD4KQEAgLTE1NSw2ICsxNTQsMTAgQEAgc3RhdGljIGludCBwcm90X21hc2sgPSAtMTsKIG1vZHVsZV9wYXJhbShwcm90X21hc2ssIGludCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKHByb3RfbWFzaywgIiBob3N0IHByb3RlY3Rpb24gY2FwYWJpbGl0aWVzIG1hc2ssIGRlZj03ICIpOwogCitzdGF0aWMgYm9vbCBlbmFibGVfc2Rldl9tYXhfcWQ7Cittb2R1bGVfcGFyYW0oZW5hYmxlX3NkZXZfbWF4X3FkLCBib29sLCAwNDQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX3NkZXZfbWF4X3FkLAorCSJFbmFibGUgc2RldiBtYXggcWQgYXMgY2FuX3F1ZXVlLCBkZWY9ZGlzYWJsZWQoMCkiKTsKIAogLyogcmFpZCB0cmFuc3BvcnQgc3VwcG9ydCAqLwogc3RhdGljIHN0cnVjdCByYWlkX3RlbXBsYXRlICptcHQzc2FzX3JhaWRfdGVtcGxhdGU7CkBAIC0xMTUyLDYgKzExNTUsMTEgQEAgX3Njc2loX3BjaWVfZGV2aWNlX2FkZChzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MsCiAJbGlzdF9hZGRfdGFpbCgmcGNpZV9kZXZpY2UtPmxpc3QsICZpb2MtPnBjaWVfZGV2aWNlX2xpc3QpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYy0+cGNpZV9kZXZpY2VfbG9jaywgZmxhZ3MpOwogCisJaWYgKHBjaWVfZGV2aWNlLT5hY2Nlc3Nfc3RhdHVzID09CisJICAgIE1QSTI2X1BDSUVERVYwX0FTVEFUVVNfREVWSUNFX0JMT0NLRUQpIHsKKwkJY2xlYXJfYml0KHBjaWVfZGV2aWNlLT5oYW5kbGUsIGlvYy0+cGVuZF9vc19kZXZpY2VfYWRkKTsKKwkJcmV0dXJuOworCX0KIAlpZiAoc2NzaV9hZGRfZGV2aWNlKGlvYy0+c2hvc3QsIFBDSUVfQ0hBTk5FTCwgcGNpZV9kZXZpY2UtPmlkLCAwKSkgewogCQlfc2NzaWhfcGNpZV9kZXZpY2VfcmVtb3ZlKGlvYywgcGNpZV9kZXZpY2UpOwogCX0gZWxzZSBpZiAoIXBjaWVfZGV2aWNlLT5zdGFyZ2V0KSB7CkBAIC0xMTk2LDcgKzEyMDQsOSBAQCBfc2NzaWhfcGNpZV9kZXZpY2VfaW5pdF9hZGQoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jLAogCXNwaW5fbG9ja19pcnFzYXZlKCZpb2MtPnBjaWVfZGV2aWNlX2xvY2ssIGZsYWdzKTsKIAlwY2llX2RldmljZV9nZXQocGNpZV9kZXZpY2UpOwogCWxpc3RfYWRkX3RhaWwoJnBjaWVfZGV2aWNlLT5saXN0LCAmaW9jLT5wY2llX2RldmljZV9pbml0X2xpc3QpOwotCV9zY3NpaF9kZXRlcm1pbmVfYm9vdF9kZXZpY2UoaW9jLCBwY2llX2RldmljZSwgUENJRV9DSEFOTkVMKTsKKwlpZiAocGNpZV9kZXZpY2UtPmFjY2Vzc19zdGF0dXMgIT0KKwkgICAgTVBJMjZfUENJRURFVjBfQVNUQVRVU19ERVZJQ0VfQkxPQ0tFRCkKKwkJX3Njc2loX2RldGVybWluZV9ib290X2RldmljZShpb2MsIHBjaWVfZGV2aWNlLCBQQ0lFX0NIQU5ORUwpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYy0+cGNpZV9kZXZpY2VfbG9jaywgZmxhZ3MpOwogfQogLyoqCkBAIC0xNDMzLDE3ICsxNDQzLDIwIEBAIF9zY3NpaF9pc19lbmRfZGV2aWNlKHUzMiBkZXZpY2VfaW5mbykKIH0KIAogLyoqCi0gKiBfc2NzaWhfaXNfbnZtZV9kZXZpY2UgLSBkZXRlcm1pbmVzIGlmIGRldmljZSBpcyBhbiBudm1lIGRldmljZQorICogX3Njc2loX2lzX252bWVfcGNpZXNjc2lfZGV2aWNlIC0gZGV0ZXJtaW5lcyBpZgorICoJCQlkZXZpY2UgaXMgYW4gcGNpZSBudm1lL3Njc2kgZGV2aWNlCiAgKiBAZGV2aWNlX2luZm86IGJpdGZpZWxkIHByb3ZpZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGV2aWNlLgogICogQ29udGV4dDogbm9uZQogICoKLSAqIFJldHVybjogMSBpZiBudm1lIGRldmljZS4KKyAqIFJldHVybnMgMSBpZiBkZXZpY2UgaXMgcGNpZSBkZXZpY2UgdHlwZSBudm1lL3Njc2kuCiAgKi8KIHN0YXRpYyBpbnQKLV9zY3NpaF9pc19udm1lX2RldmljZSh1MzIgZGV2aWNlX2luZm8pCitfc2NzaWhfaXNfbnZtZV9wY2llc2NzaV9kZXZpY2UodTMyIGRldmljZV9pbmZvKQogewotCWlmICgoZGV2aWNlX2luZm8gJiBNUEkyNl9QQ0lFX0RFVklORk9fTUFTS19ERVZJQ0VfVFlQRSkKLQkJCQkJPT0gTVBJMjZfUENJRV9ERVZJTkZPX05WTUUpCisJaWYgKCgoZGV2aWNlX2luZm8gJiBNUEkyNl9QQ0lFX0RFVklORk9fTUFTS19ERVZJQ0VfVFlQRSkKKwkgICAgPT0gTVBJMjZfUENJRV9ERVZJTkZPX05WTUUpIHx8CisJICAgICgoZGV2aWNlX2luZm8gJiBNUEkyNl9QQ0lFX0RFVklORk9fTUFTS19ERVZJQ0VfVFlQRSkKKwkgICAgPT0gTVBJMjZfUENJRV9ERVZJTkZPX1NDU0kpKQogCQlyZXR1cm4gMTsKIAllbHNlCiAJCXJldHVybiAwOwpAQCAtMTUwOSw3ICsxNTIyLDEzIEBAIHNjc2loX2NoYW5nZV9xdWV1ZV9kZXB0aChzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsIGludCBxZGVwdGgpCiAKIAltYXhfZGVwdGggPSBzaG9zdC0+Y2FuX3F1ZXVlOwogCi0JLyogbGltaXQgbWF4IGRldmljZSBxdWV1ZSBmb3IgU0FUQSB0byAzMiAqLworCS8qCisJICogbGltaXQgbWF4IGRldmljZSBxdWV1ZSBmb3IgU0FUQSB0byAzMiBpZiBlbmFibGVfc2Rldl9tYXhfcWQKKwkgKiBpcyBkaXNhYmxlZC4KKwkgKi8KKwlpZiAoaW9jLT5lbmFibGVfc2Rldl9tYXhfcWQpCisJCWdvdG8gbm90X3NhdGE7CisKIAlzYXNfZGV2aWNlX3ByaXZfZGF0YSA9IHNkZXYtPmhvc3RkYXRhOwogCWlmICghc2FzX2RldmljZV9wcml2X2RhdGEpCiAJCWdvdG8gbm90X3NhdGE7CkBAIC0xNTM5LDYgKzE1NTgsMjUgQEAgc2NzaWhfY2hhbmdlX3F1ZXVlX2RlcHRoKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldiwgaW50IHFkZXB0aCkKIH0KIAogLyoqCisgKiBtcHQzc2FzX3Njc2loX2NoYW5nZV9xdWV1ZV9kZXB0aCAtIHNldHRpbmcgZGV2aWNlIHF1ZXVlIGRlcHRoCisgKiBAc2Rldjogc2NzaSBkZXZpY2Ugc3RydWN0CisgKiBAcWRlcHRoOiByZXF1ZXN0ZWQgcXVldWUgZGVwdGgKKyAqCisgKiBSZXR1cm5zIG5vdGhpbmcuCisgKi8KK3ZvaWQKK21wdDNzYXNfc2NzaWhfY2hhbmdlX3F1ZXVlX2RlcHRoKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldiwgaW50IHFkZXB0aCkKK3sKKwlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IHNkZXYtPmhvc3Q7CisJc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jID0gc2hvc3RfcHJpdihzaG9zdCk7CisKKwlpZiAoaW9jLT5lbmFibGVfc2Rldl9tYXhfcWQpCisJCXFkZXB0aCA9IHNob3N0LT5jYW5fcXVldWU7CisKKwlzY3NpaF9jaGFuZ2VfcXVldWVfZGVwdGgoc2RldiwgcWRlcHRoKTsKK30KKworLyoqCiAgKiBzY3NpaF90YXJnZXRfYWxsb2MgLSB0YXJnZXQgYWRkIHJvdXRpbmUKICAqIEBzdGFyZ2V0OiBzY3NpIHRhcmdldCBzdHJ1Y3QKICAqCkBAIC0yMjk2LDcgKzIzMzQsNyBAQCBzY3NpaF9zbGF2ZV9jb25maWd1cmUoc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2KQogCQkJCQkJTVBUM1NBU19SQUlEX01BWF9TRUNUT1JTKTsKIAkJfQogCi0JCXNjc2loX2NoYW5nZV9xdWV1ZV9kZXB0aChzZGV2LCBxZGVwdGgpOworCQltcHQzc2FzX3Njc2loX2NoYW5nZV9xdWV1ZV9kZXB0aChzZGV2LCBxZGVwdGgpOwogCiAJCS8qIHJhaWQgdHJhbnNwb3J0IHN1cHBvcnQgKi8KIAkJaWYgKCFpb2MtPmlzX3dhcnBkcml2ZSkKQEAgLTIzNjAsNyArMjM5OCw3IEBAIHNjc2loX3NsYXZlX2NvbmZpZ3VyZShzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYpCiAKIAkJcGNpZV9kZXZpY2VfcHV0KHBjaWVfZGV2aWNlKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9jLT5wY2llX2RldmljZV9sb2NrLCBmbGFncyk7Ci0JCXNjc2loX2NoYW5nZV9xdWV1ZV9kZXB0aChzZGV2LCBxZGVwdGgpOworCQltcHQzc2FzX3Njc2loX2NoYW5nZV9xdWV1ZV9kZXB0aChzZGV2LCBxZGVwdGgpOwogCQkvKiBFbmFibGUgUVVFVUVfRkxBR19OT01FUkdFUyBmbGFnLCBzbyB0aGF0IElPcyB3b24ndCBiZQogCQkgKiogbWVyZ2VkIGFuZCBjYW4gZWxpbWluYXRlIGhvbGVzIGNyZWF0ZWQgZHVyaW5nIG1lcmdpbmcKIAkJICoqIG9wZXJhdGlvbi4KQEAgLTI0MjAsNyArMjQ1OCw3IEBAIHNjc2loX3NsYXZlX2NvbmZpZ3VyZShzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYpCiAJCV9zY3NpaF9kaXNwbGF5X3NhdGFfY2FwYWJpbGl0aWVzKGlvYywgaGFuZGxlLCBzZGV2KTsKIAogCi0Jc2NzaWhfY2hhbmdlX3F1ZXVlX2RlcHRoKHNkZXYsIHFkZXB0aCk7CisJbXB0M3Nhc19zY3NpaF9jaGFuZ2VfcXVldWVfZGVwdGgoc2RldiwgcWRlcHRoKTsKIAogCWlmIChzc3BfdGFyZ2V0KSB7CiAJCXNhc19yZWFkX3BvcnRfbW9kZV9wYWdlKHNkZXYpOwpAQCAtMjg3Miw3ICsyOTEwLDggQEAgc2NzaWhfYWJvcnQoc3RydWN0IHNjc2lfY21uZCAqc2NtZCkKIAogCWhhbmRsZSA9IHNhc19kZXZpY2VfcHJpdl9kYXRhLT5zYXNfdGFyZ2V0LT5oYW5kbGU7CiAJcGNpZV9kZXZpY2UgPSBtcHQzc2FzX2dldF9wZGV2X2J5X2hhbmRsZShpb2MsIGhhbmRsZSk7Ci0JaWYgKHBjaWVfZGV2aWNlICYmICghaW9jLT50bV9jdXN0b21faGFuZGxpbmcpKQorCWlmIChwY2llX2RldmljZSAmJiAoIWlvYy0+dG1fY3VzdG9tX2hhbmRsaW5nKSAmJgorCSAgICAoIShtcHQzc2FzX3Njc2loX2lzX3BjaWVfc2NzaV9kZXZpY2UocGNpZV9kZXZpY2UtPmRldmljZV9pbmZvKSkpKQogCQl0aW1lb3V0ID0gaW9jLT5udm1lX2Fib3J0X3RpbWVvdXQ7CiAJciA9IG1wdDNzYXNfc2NzaWhfaXNzdWVfbG9ja2VkX3RtKGlvYywgaGFuZGxlLCBzY21kLT5kZXZpY2UtPmx1biwKIAkJTVBJMl9TQ1NJVEFTS01HTVRfVEFTS1RZUEVfQUJPUlRfVEFTSywKQEAgLTI5NDMsMTEgKzI5ODIsMTMgQEAgc2NzaWhfZGV2X3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKnNjbWQpCiAKIAlwY2llX2RldmljZSA9IG1wdDNzYXNfZ2V0X3BkZXZfYnlfaGFuZGxlKGlvYywgaGFuZGxlKTsKIAotCWlmIChwY2llX2RldmljZSAmJiAoIWlvYy0+dG1fY3VzdG9tX2hhbmRsaW5nKSkgeworCWlmIChwY2llX2RldmljZSAmJiAoIWlvYy0+dG1fY3VzdG9tX2hhbmRsaW5nKSAmJgorCSAgICAoIShtcHQzc2FzX3Njc2loX2lzX3BjaWVfc2NzaV9kZXZpY2UocGNpZV9kZXZpY2UtPmRldmljZV9pbmZvKSkpKSB7CiAJCXRyX3RpbWVvdXQgPSBwY2llX2RldmljZS0+cmVzZXRfdGltZW91dDsKIAkJdHJfbWV0aG9kID0gTVBJMjZfU0NTSVRBU0tNR01UX01TR0ZMQUdTX1BST1RPQ09MX0xWTF9SU1RfUENJRTsKIAl9IGVsc2UKIAkJdHJfbWV0aG9kID0gTVBJMl9TQ1NJVEFTS01HTVRfTVNHRkxBR1NfTElOS19SRVNFVDsKKwogCXIgPSBtcHQzc2FzX3Njc2loX2lzc3VlX2xvY2tlZF90bShpb2MsIGhhbmRsZSwgc2NtZC0+ZGV2aWNlLT5sdW4sCiAJCU1QSTJfU0NTSVRBU0tNR01UX1RBU0tUWVBFX0xPR0lDQUxfVU5JVF9SRVNFVCwgMCwgMCwKIAkJdHJfdGltZW91dCwgdHJfbWV0aG9kKTsKQEAgLTMwMjAsNyArMzA2MSw4IEBAIHNjc2loX3RhcmdldF9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpzY21kKQogCiAJcGNpZV9kZXZpY2UgPSBtcHQzc2FzX2dldF9wZGV2X2J5X2hhbmRsZShpb2MsIGhhbmRsZSk7CiAKLQlpZiAocGNpZV9kZXZpY2UgJiYgKCFpb2MtPnRtX2N1c3RvbV9oYW5kbGluZykpIHsKKwlpZiAocGNpZV9kZXZpY2UgJiYgKCFpb2MtPnRtX2N1c3RvbV9oYW5kbGluZykgJiYKKwkgICAgKCEobXB0M3Nhc19zY3NpaF9pc19wY2llX3Njc2lfZGV2aWNlKHBjaWVfZGV2aWNlLT5kZXZpY2VfaW5mbykpKSkgewogCQl0cl90aW1lb3V0ID0gcGNpZV9kZXZpY2UtPnJlc2V0X3RpbWVvdXQ7CiAJCXRyX21ldGhvZCA9IE1QSTI2X1NDU0lUQVNLTUdNVF9NU0dGTEFHU19QUk9UT0NPTF9MVkxfUlNUX1BDSUU7CiAJfSBlbHNlCkBAIC0zNTk4LDcgKzM2NDAsOSBAQCBfc2NzaWhfdG1fdHJfc2VuZChzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MsIHUxNiBoYW5kbGUpCiAJCQlzYXNfYWRkcmVzcyA9IHBjaWVfZGV2aWNlLT53d2lkOwogCQl9CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYy0+cGNpZV9kZXZpY2VfbG9jaywgZmxhZ3MpOwotCQlpZiAocGNpZV9kZXZpY2UgJiYgKCFpb2MtPnRtX2N1c3RvbV9oYW5kbGluZykpCisJCWlmIChwY2llX2RldmljZSAmJiAoIWlvYy0+dG1fY3VzdG9tX2hhbmRsaW5nKSAmJgorCQkgICAgKCEobXB0M3Nhc19zY3NpaF9pc19wY2llX3Njc2lfZGV2aWNlKAorCQkgICAgcGNpZV9kZXZpY2UtPmRldmljZV9pbmZvKSkpKQogCQkJdHJfbWV0aG9kID0KIAkJCSAgICBNUEkyNl9TQ1NJVEFTS01HTVRfTVNHRkxBR1NfUFJPVE9DT0xfTFZMX1JTVF9QQ0lFOwogCQllbHNlCkBAIC00NjU0LDExICs0Njk4LDggQEAgc2NzaWhfcWNtZChzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCwgc3RydWN0IHNjc2lfY21uZCAqc2NtZCkKIAkgKiBzaW5jZSB3ZSdyZSBsb2NrbGVzcyBhdCB0aGlzIHBvaW50CiAJICovCiAJZG8gewotCQlpZiAodGVzdF9iaXQoMCwgJnNhc19kZXZpY2VfcHJpdl9kYXRhLT5hdGFfY29tbWFuZF9wZW5kaW5nKSkgewotCQkJc2NtZC0+cmVzdWx0ID0gU0FNX1NUQVRfQlVTWTsKLQkJCXNjbWQtPnNjc2lfZG9uZShzY21kKTsKLQkJCXJldHVybiAwOwotCQl9CisJCWlmICh0ZXN0X2JpdCgwLCAmc2FzX2RldmljZV9wcml2X2RhdGEtPmF0YV9jb21tYW5kX3BlbmRpbmcpKQorCQkJcmV0dXJuIFNDU0lfTUxRVUVVRV9ERVZJQ0VfQlVTWTsKIAl9IHdoaWxlIChfc2NzaWhfc2V0X3NhdGxfcGVuZGluZyhzY21kLCB0cnVlKSk7CiAKIAlpZiAoc2NtZC0+c2NfZGF0YV9kaXJlY3Rpb24gPT0gRE1BX0ZST01fREVWSUNFKQpAQCAtNjQ1NiwyNCArNjQ5NywxNyBAQCBfc2NzaWhfc2FzX2RldmljZV9zdGF0dXNfY2hhbmdlX2V2ZW50X2RlYnVnKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywKIC8qKgogICogX3Njc2loX3Nhc19kZXZpY2Vfc3RhdHVzX2NoYW5nZV9ldmVudCAtIGhhbmRsZSBkZXZpY2Ugc3RhdHVzIGNoYW5nZQogICogQGlvYzogcGVyIGFkYXB0ZXIgb2JqZWN0Ci0gKiBAZndfZXZlbnQ6IFRoZSBmd19ldmVudF93b3JrIG9iamVjdAorICogQGV2ZW50X2RhdGE6IFRoZSBmdyBldmVudAogICogQ29udGV4dDogdXNlci4KICAqLwogc3RhdGljIHZvaWQKIF9zY3NpaF9zYXNfZGV2aWNlX3N0YXR1c19jaGFuZ2VfZXZlbnQoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jLAotCXN0cnVjdCBmd19ldmVudF93b3JrICpmd19ldmVudCkKKwlNcGkyRXZlbnREYXRhU2FzRGV2aWNlU3RhdHVzQ2hhbmdlX3QgKmV2ZW50X2RhdGEpCiB7CiAJc3RydWN0IE1QVDNTQVNfVEFSR0VUICp0YXJnZXRfcHJpdl9kYXRhOwogCXN0cnVjdCBfc2FzX2RldmljZSAqc2FzX2RldmljZTsKIAl1NjQgc2FzX2FkZHJlc3M7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQlNcGkyRXZlbnREYXRhU2FzRGV2aWNlU3RhdHVzQ2hhbmdlX3QgKmV2ZW50X2RhdGEgPQotCQkoTXBpMkV2ZW50RGF0YVNhc0RldmljZVN0YXR1c0NoYW5nZV90ICopCi0JCWZ3X2V2ZW50LT5ldmVudF9kYXRhOwotCi0JaWYgKGlvYy0+bG9nZ2luZ19sZXZlbCAmIE1QVF9ERUJVR19FVkVOVF9XT1JLX1RBU0spCi0JCV9zY3NpaF9zYXNfZGV2aWNlX3N0YXR1c19jaGFuZ2VfZXZlbnRfZGVidWcoaW9jLAotCQkgICAgIGV2ZW50X2RhdGEpOwogCiAJLyogSW4gTVBJIFJldmlzaW9uIEsgKDB4QyksIHRoZSBpbnRlcm5hbCBkZXZpY2UgcmVzZXQgY29tcGxldGUgd2FzCiAJICogaW1wbGVtZW50ZWQsIHNvIGF2b2lkIHNldHRpbmcgdG1fYnVzeSBmbGFnIGZvciBvbGRlciBmaXJtd2FyZS4KQEAgLTY1MDUsNiArNjUzOSwxMiBAQCBfc2NzaWhfc2FzX2RldmljZV9zdGF0dXNfY2hhbmdlX2V2ZW50KHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywKIAllbHNlCiAJCXRhcmdldF9wcml2X2RhdGEtPnRtX2J1c3kgPSAwOwogCisJaWYgKGlvYy0+bG9nZ2luZ19sZXZlbCAmIE1QVF9ERUJVR19FVkVOVF9XT1JLX1RBU0spCisJCWlvY19pbmZvKGlvYywKKwkJICAgICIlcyB0bV9idXN5IGZsYWcgZm9yIGhhbmRsZSgweCUwNHgpXG4iLAorCQkgICAgKHRhcmdldF9wcml2X2RhdGEtPnRtX2J1c3kgPT0gMSkgPyAiRW5hYmxlIiA6ICJEaXNhYmxlIiwKKwkJICAgIHRhcmdldF9wcml2X2RhdGEtPmhhbmRsZSk7CisKIG91dDoKIAlpZiAoc2FzX2RldmljZSkKIAkJc2FzX2RldmljZV9wdXQoc2FzX2RldmljZSk7CkBAIC02NTM5LDYgKzY1NzksMTEgQEAgX3Njc2loX2NoZWNrX3BjaWVfYWNjZXNzX3N0YXR1cyhzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MsIHU2NCB3d2lkLAogCQlicmVhazsKIAljYXNlIE1QSTI2X1BDSUVERVYwX0FTVEFUVVNfREVWSUNFX0JMT0NLRUQ6CiAJCWRlc2MgPSAiUENJZSBkZXZpY2UgYmxvY2tlZCI7CisJCWlvY19pbmZvKGlvYywKKwkJICAgICJEZXZpY2Ugd2l0aCBBY2Nlc3MgU3RhdHVzICglcyk6IHd3aWQoMHglMDE2bGx4KSwgIgorCQkgICAgImhhbmRsZSgweCUwNHgpXG4gbGwgb25seSBiZSBhZGRlZCB0byB0aGUgaW50ZXJuYWwgbGlzdCIsCisJCSAgICBkZXNjLCAodTY0KXd3aWQsIGhhbmRsZSk7CisJCXJjID0gMDsKIAkJYnJlYWs7CiAJY2FzZSBNUEkyNl9QQ0lFREVWMF9BU1RBVFVTX01FTU9SWV9TUEFDRV9BQ0NFU1NfRkFJTEVEOgogCQlkZXNjID0gIlBDSWUgZGV2aWNlIG1lbSBzcGFjZSBhY2Nlc3MgZmFpbGVkIjsKQEAgLTY2NDMsNyArNjY4OCw4IEBAIF9zY3NpaF9wY2llX2RldmljZV9yZW1vdmVfZnJvbV9zbWwoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jLAogCQkJIHBjaWVfZGV2aWNlLT5lbmNsb3N1cmVfbGV2ZWwsCiAJCQkgcGNpZV9kZXZpY2UtPmNvbm5lY3Rvcl9uYW1lKTsKIAotCWlmIChwY2llX2RldmljZS0+c3RhcmdldCkKKwlpZiAocGNpZV9kZXZpY2UtPnN0YXJnZXQgJiYgKHBjaWVfZGV2aWNlLT5hY2Nlc3Nfc3RhdHVzICE9CisJCQkJTVBJMjZfUENJRURFVjBfQVNUQVRVU19ERVZJQ0VfQkxPQ0tFRCkpCiAJCXNjc2lfcmVtb3ZlX3RhcmdldCgmcGNpZV9kZXZpY2UtPnN0YXJnZXQtPmRldik7CiAJZGV3dHByaW50ayhpb2MsCiAJCSAgIGlvY19pbmZvKGlvYywgIiVzOiBleGl0OiBoYW5kbGUoMHglMDR4KSwgd3dpZCgweCUwMTZsbHgpXG4iLApAQCAtNjY5NCw3ICs2NzQwLDcgQEAgX3Njc2loX3BjaWVfY2hlY2tfZGV2aWNlKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgdTE2IGhhbmRsZSkKIAogCS8qIGNoZWNrIGlmIHRoaXMgaXMgZW5kIGRldmljZSAqLwogCWRldmljZV9pbmZvID0gbGUzMl90b19jcHUocGNpZV9kZXZpY2VfcGcwLkRldmljZUluZm8pOwotCWlmICghKF9zY3NpaF9pc19udm1lX2RldmljZShkZXZpY2VfaW5mbykpKQorCWlmICghKF9zY3NpaF9pc19udm1lX3BjaWVzY3NpX2RldmljZShkZXZpY2VfaW5mbykpKQogCQlyZXR1cm47CiAKIAl3d2lkID0gbGU2NF90b19jcHUocGNpZV9kZXZpY2VfcGcwLldXSUQpOwpAQCAtNjcwOSw2ICs2NzU1LDcgQEAgX3Njc2loX3BjaWVfY2hlY2tfZGV2aWNlKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgdTE2IGhhbmRsZSkKIAlpZiAodW5saWtlbHkocGNpZV9kZXZpY2UtPmhhbmRsZSAhPSBoYW5kbGUpKSB7CiAJCXN0YXJnZXQgPSBwY2llX2RldmljZS0+c3RhcmdldDsKIAkJc2FzX3RhcmdldF9wcml2X2RhdGEgPSBzdGFyZ2V0LT5ob3N0ZGF0YTsKKwkJcGNpZV9kZXZpY2UtPmFjY2Vzc19zdGF0dXMgPSBwY2llX2RldmljZV9wZzAuQWNjZXNzU3RhdHVzOwogCQlzdGFyZ2V0X3ByaW50ayhLRVJOX0lORk8sIHN0YXJnZXQsCiAJCSAgICAiaGFuZGxlIGNoYW5nZWQgZnJvbSgweCUwNHgpIHRvICgweCUwNHgpISEhXG4iLAogCQkgICAgcGNpZV9kZXZpY2UtPmhhbmRsZSwgaGFuZGxlKTsKQEAgLTY4MDMsNyArNjg1MCw4IEBAIF9zY3NpaF9wY2llX2FkZF9kZXZpY2Uoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jLCB1MTYgaGFuZGxlKQogCSAgICBwY2llX2RldmljZV9wZzAuQWNjZXNzU3RhdHVzKSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoIShfc2NzaWhfaXNfbnZtZV9kZXZpY2UobGUzMl90b19jcHUocGNpZV9kZXZpY2VfcGcwLkRldmljZUluZm8pKSkpCisJaWYgKCEoX3Njc2loX2lzX252bWVfcGNpZXNjc2lfZGV2aWNlKGxlMzJfdG9fY3B1CisJICAgIChwY2llX2RldmljZV9wZzAuRGV2aWNlSW5mbykpKSkKIAkJcmV0dXJuIDA7CiAKIAlwY2llX2RldmljZSA9IG1wdDNzYXNfZ2V0X3BkZXZfYnlfd3dpZChpb2MsIHd3aWQpOwpAQCAtNjgxMyw2ICs2ODYxLDMxIEBAIF9zY3NpaF9wY2llX2FkZF9kZXZpY2Uoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jLCB1MTYgaGFuZGxlKQogCQlyZXR1cm4gMDsKIAl9CiAKKwkvKiBQQ0llIERldmljZSBQYWdlIDIgY29udGFpbnMgcmVhZC1vbmx5IGluZm9ybWF0aW9uIGFib3V0IGEKKwkgKiBzcGVjaWZpYyBOVk1lIGRldmljZTsgdGhlcmVmb3JlLCB0aGlzIHBhZ2UgaXMgb25seQorCSAqIHZhbGlkIGZvciBOVk1lIGRldmljZXMgYW5kIHNraXAgZm9yIHBjaWUgZGV2aWNlcyBvZiB0eXBlIHNjc2kuCisJICovCisJaWYgKCEobXB0M3Nhc19zY3NpaF9pc19wY2llX3Njc2lfZGV2aWNlKAorCQlsZTMyX3RvX2NwdShwY2llX2RldmljZV9wZzAuRGV2aWNlSW5mbykpKSkgeworCQlpZiAobXB0M3Nhc19jb25maWdfZ2V0X3BjaWVfZGV2aWNlX3BnMihpb2MsICZtcGlfcmVwbHksCisJCSAgICAmcGNpZV9kZXZpY2VfcGcyLCBNUEkyX1NBU19ERVZJQ0VfUEdBRF9GT1JNX0hBTkRMRSwKKwkJICAgIGhhbmRsZSkpIHsKKwkJCWlvY19lcnIoaW9jLAorCQkJICAgICJmYWlsdXJlIGF0ICVzOiVkLyVzKCkhXG4iLCBfX0ZJTEVfXywKKwkJCSAgICBfX0xJTkVfXywgX19mdW5jX18pOworCQkJcmV0dXJuIDA7CisJCX0KKworCQlpb2Nfc3RhdHVzID0gbGUxNl90b19jcHUobXBpX3JlcGx5LklPQ1N0YXR1cykgJgorCQkJCQlNUEkyX0lPQ1NUQVRVU19NQVNLOworCQlpZiAoaW9jX3N0YXR1cyAhPSBNUEkyX0lPQ1NUQVRVU19TVUNDRVNTKSB7CisJCQlpb2NfZXJyKGlvYywKKwkJCSAgICAiZmFpbHVyZSBhdCAlczolZC8lcygpIVxuIiwgX19GSUxFX18sCisJCQkgICAgX19MSU5FX18sIF9fZnVuY19fKTsKKwkJCXJldHVybiAwOworCQl9CisJfQorCiAJcGNpZV9kZXZpY2UgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgX3BjaWVfZGV2aWNlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwY2llX2RldmljZSkgewogCQlpb2NfZXJyKGlvYywgImZhaWx1cmUgYXQgJXM6JWQvJXMoKSFcbiIsCkBAIC02ODI0LDYgKzY4OTcsNyBAQCBfc2NzaWhfcGNpZV9hZGRfZGV2aWNlKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgdTE2IGhhbmRsZSkKIAlwY2llX2RldmljZS0+aWQgPSBpb2MtPnBjaWVfdGFyZ2V0X2lkKys7CiAJcGNpZV9kZXZpY2UtPmNoYW5uZWwgPSBQQ0lFX0NIQU5ORUw7CiAJcGNpZV9kZXZpY2UtPmhhbmRsZSA9IGhhbmRsZTsKKwlwY2llX2RldmljZS0+YWNjZXNzX3N0YXR1cyA9IHBjaWVfZGV2aWNlX3BnMC5BY2Nlc3NTdGF0dXM7CiAJcGNpZV9kZXZpY2UtPmRldmljZV9pbmZvID0gbGUzMl90b19jcHUocGNpZV9kZXZpY2VfcGcwLkRldmljZUluZm8pOwogCXBjaWVfZGV2aWNlLT53d2lkID0gd3dpZDsKIAlwY2llX2RldmljZS0+cG9ydF9udW0gPSBwY2llX2RldmljZV9wZzAuUG9ydE51bTsKQEAgLTY4NTUsMjcgKzY5MjksMTYgQEAgX3Njc2loX3BjaWVfYWRkX2RldmljZShzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MsIHUxNiBoYW5kbGUpCiAJCQkgICAgbGU2NF90b19jcHUoZW5jbG9zdXJlX2Rldi0+cGcwLkVuY2xvc3VyZUxvZ2ljYWxJRCk7CiAJfQogCS8qIFRPRE8gLS0gQWRkIGRldmljZSBuYW1lIG9uY2UgRlcgc3VwcG9ydHMgaXQgKi8KLQlpZiAobXB0M3Nhc19jb25maWdfZ2V0X3BjaWVfZGV2aWNlX3BnMihpb2MsICZtcGlfcmVwbHksCi0JCSZwY2llX2RldmljZV9wZzIsIE1QSTJfU0FTX0RFVklDRV9QR0FEX0ZPUk1fSEFORExFLCBoYW5kbGUpKSB7Ci0JCWlvY19lcnIoaW9jLCAiZmFpbHVyZSBhdCAlczolZC8lcygpIVxuIiwKLQkJCV9fRklMRV9fLCBfX0xJTkVfXywgX19mdW5jX18pOwotCQlrZnJlZShwY2llX2RldmljZSk7Ci0JCXJldHVybiAwOwotCX0KLQotCWlvY19zdGF0dXMgPSBsZTE2X3RvX2NwdShtcGlfcmVwbHkuSU9DU3RhdHVzKSAmIE1QSTJfSU9DU1RBVFVTX01BU0s7Ci0JaWYgKGlvY19zdGF0dXMgIT0gTVBJMl9JT0NTVEFUVVNfU1VDQ0VTUykgewotCQlpb2NfZXJyKGlvYywgImZhaWx1cmUgYXQgJXM6JWQvJXMoKSFcbiIsCi0JCQlfX0ZJTEVfXywgX19MSU5FX18sIF9fZnVuY19fKTsKLQkJa2ZyZWUocGNpZV9kZXZpY2UpOwotCQlyZXR1cm4gMDsKLQl9Ci0JcGNpZV9kZXZpY2UtPm52bWVfbWR0cyA9Ci0JCWxlMzJfdG9fY3B1KHBjaWVfZGV2aWNlX3BnMi5NYXhpbXVtRGF0YVRyYW5zZmVyU2l6ZSk7Ci0JaWYgKHBjaWVfZGV2aWNlX3BnMi5Db250cm9sbGVyUmVzZXRUTykKLQkJcGNpZV9kZXZpY2UtPnJlc2V0X3RpbWVvdXQgPQotCQkJcGNpZV9kZXZpY2VfcGcyLkNvbnRyb2xsZXJSZXNldFRPOwotCWVsc2UKKwlpZiAoIShtcHQzc2FzX3Njc2loX2lzX3BjaWVfc2NzaV9kZXZpY2UoCisJICAgIGxlMzJfdG9fY3B1KHBjaWVfZGV2aWNlX3BnMC5EZXZpY2VJbmZvKSkpKSB7CisJCXBjaWVfZGV2aWNlLT5udm1lX21kdHMgPQorCQkgICAgbGUzMl90b19jcHUocGNpZV9kZXZpY2VfcGcyLk1heGltdW1EYXRhVHJhbnNmZXJTaXplKTsKKwkJaWYgKHBjaWVfZGV2aWNlX3BnMi5Db250cm9sbGVyUmVzZXRUTykKKwkJCXBjaWVfZGV2aWNlLT5yZXNldF90aW1lb3V0ID0KKwkJCSAgICBwY2llX2RldmljZV9wZzIuQ29udHJvbGxlclJlc2V0VE87CisJCWVsc2UKKwkJCXBjaWVfZGV2aWNlLT5yZXNldF90aW1lb3V0ID0gMzA7CisJfSBlbHNlCiAJCXBjaWVfZGV2aWNlLT5yZXNldF90aW1lb3V0ID0gMzA7CiAKIAlpZiAoaW9jLT53YWl0X2Zvcl9kaXNjb3ZlcnlfdG9fY29tcGxldGUpCkBAIC04NTA3LDYgKzg1NzAsOCBAQCBfc2NzaWhfbWFya19yZXNwb25kaW5nX3BjaWVfZGV2aWNlKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywKIAkJaWYgKChwY2llX2RldmljZS0+d3dpZCA9PSBsZTY0X3RvX2NwdShwY2llX2RldmljZV9wZzAtPldXSUQpKQogCQkgICAgJiYgKHBjaWVfZGV2aWNlLT5zbG90ID09IGxlMTZfdG9fY3B1KAogCQkgICAgcGNpZV9kZXZpY2VfcGcwLT5TbG90KSkpIHsKKwkJCXBjaWVfZGV2aWNlLT5hY2Nlc3Nfc3RhdHVzID0KKwkJCQkJcGNpZV9kZXZpY2VfcGcwLT5BY2Nlc3NTdGF0dXM7CiAJCQlwY2llX2RldmljZS0+cmVzcG9uZGluZyA9IDE7CiAJCQlzdGFyZ2V0ID0gcGNpZV9kZXZpY2UtPnN0YXJnZXQ7CiAJCQlpZiAoc3RhcmdldCAmJiBzdGFyZ2V0LT5ob3N0ZGF0YSkgewpAQCAtODU5NCw3ICs4NjU5LDcgQEAgX3Njc2loX3NlYXJjaF9yZXNwb25kaW5nX3BjaWVfZGV2aWNlcyhzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MpCiAJCX0KIAkJaGFuZGxlID0gbGUxNl90b19jcHUocGNpZV9kZXZpY2VfcGcwLkRldkhhbmRsZSk7CiAJCWRldmljZV9pbmZvID0gbGUzMl90b19jcHUocGNpZV9kZXZpY2VfcGcwLkRldmljZUluZm8pOwotCQlpZiAoIShfc2NzaWhfaXNfbnZtZV9kZXZpY2UoZGV2aWNlX2luZm8pKSkKKwkJaWYgKCEoX3Njc2loX2lzX252bWVfcGNpZXNjc2lfZGV2aWNlKGRldmljZV9pbmZvKSkpCiAJCQljb250aW51ZTsKIAkJX3Njc2loX21hcmtfcmVzcG9uZGluZ19wY2llX2RldmljZShpb2MsICZwY2llX2RldmljZV9wZzApOwogCX0KQEAgLTkxNzUsNyArOTI0MCw3IEBAIF9zY3NpaF9zY2FuX2Zvcl9kZXZpY2VzX2FmdGVyX3Jlc2V0KHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYykKIAkJCWJyZWFrOwogCQl9CiAJCWhhbmRsZSA9IGxlMTZfdG9fY3B1KHBjaWVfZGV2aWNlX3BnMC5EZXZIYW5kbGUpOwotCQlpZiAoIShfc2NzaWhfaXNfbnZtZV9kZXZpY2UoCisJCWlmICghKF9zY3NpaF9pc19udm1lX3BjaWVzY3NpX2RldmljZSgKIAkJCWxlMzJfdG9fY3B1KHBjaWVfZGV2aWNlX3BnMC5EZXZpY2VJbmZvKSkpKQogCQkJY29udGludWU7CiAJCXBjaWVfZGV2aWNlID0gbXB0M3Nhc19nZXRfcGRldl9ieV93d2lkKGlvYywKQEAgLTkzMDgsNyArOTM3MywxMCBAQCBfbXB0M3Nhc19md193b3JrKHN0cnVjdCBNUFQzU0FTX0FEQVBURVIgKmlvYywgc3RydWN0IGZ3X2V2ZW50X3dvcmsgKmZ3X2V2ZW50KQogCQlfc2NzaWhfc2FzX3RvcG9sb2d5X2NoYW5nZV9ldmVudChpb2MsIGZ3X2V2ZW50KTsKIAkJYnJlYWs7CiAJY2FzZSBNUEkyX0VWRU5UX1NBU19ERVZJQ0VfU1RBVFVTX0NIQU5HRToKLQkJX3Njc2loX3Nhc19kZXZpY2Vfc3RhdHVzX2NoYW5nZV9ldmVudChpb2MsIGZ3X2V2ZW50KTsKKwkJaWYgKGlvYy0+bG9nZ2luZ19sZXZlbCAmIE1QVF9ERUJVR19FVkVOVF9XT1JLX1RBU0spCisJCQlfc2NzaWhfc2FzX2RldmljZV9zdGF0dXNfY2hhbmdlX2V2ZW50X2RlYnVnKGlvYywKKwkJCSAgICAoTXBpMkV2ZW50RGF0YVNhc0RldmljZVN0YXR1c0NoYW5nZV90ICopCisJCQkgICAgZndfZXZlbnQtPmV2ZW50X2RhdGEpOwogCQlicmVhazsKIAljYXNlIE1QSTJfRVZFTlRfU0FTX0RJU0NPVkVSWToKIAkJX3Njc2loX3Nhc19kaXNjb3ZlcnlfZXZlbnQoaW9jLCBmd19ldmVudCk7CkBAIC05NDgxLDYgKzk1NDksMTAgQEAgbXB0M3Nhc19zY3NpaF9ldmVudF9jYWxsYmFjayhzdHJ1Y3QgTVBUM1NBU19BREFQVEVSICppb2MsIHU4IG1zaXhfaW5kZXgsCiAJCWJyZWFrOwogCX0KIAljYXNlIE1QSTJfRVZFTlRfU0FTX0RFVklDRV9TVEFUVVNfQ0hBTkdFOgorCQlfc2NzaWhfc2FzX2RldmljZV9zdGF0dXNfY2hhbmdlX2V2ZW50KGlvYywKKwkJICAgIChNcGkyRXZlbnREYXRhU2FzRGV2aWNlU3RhdHVzQ2hhbmdlX3QgKikKKwkJICAgIG1waV9yZXBseS0+RXZlbnREYXRhKTsKKwkJYnJlYWs7CiAJY2FzZSBNUEkyX0VWRU5UX0lSX09QRVJBVElPTl9TVEFUVVM6CiAJY2FzZSBNUEkyX0VWRU5UX1NBU19ESVNDT1ZFUlk6CiAJY2FzZSBNUEkyX0VWRU5UX1NBU19ERVZJQ0VfRElTQ09WRVJZX0VSUk9SOgpAQCAtMTAwMzksNiArMTAxMTEsMTIgQEAgX3Njc2loX3Byb2JlX3BjaWUoc3RydWN0IE1QVDNTQVNfQURBUFRFUiAqaW9jKQogCQkJcGNpZV9kZXZpY2VfcHV0KHBjaWVfZGV2aWNlKTsKIAkJCWNvbnRpbnVlOwogCQl9CisJCWlmIChwY2llX2RldmljZS0+YWNjZXNzX3N0YXR1cyA9PQorCQkgICAgTVBJMjZfUENJRURFVjBfQVNUQVRVU19ERVZJQ0VfQkxPQ0tFRCkgeworCQkJcGNpZV9kZXZpY2VfbWFrZV9hY3RpdmUoaW9jLCBwY2llX2RldmljZSk7CisJCQlwY2llX2RldmljZV9wdXQocGNpZV9kZXZpY2UpOworCQkJY29udGludWU7CisJCX0KIAkJcmMgPSBzY3NpX2FkZF9kZXZpY2UoaW9jLT5zaG9zdCwgUENJRV9DSEFOTkVMLAogCQkJcGNpZV9kZXZpY2UtPmlkLCAwKTsKIAkJaWYgKHJjKSB7CkBAIC0xMDQ1Myw2ICsxMDUzMSwxMyBAQCBfc2NzaWhfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAlpb2MtPnRtX3Nhc19jb250cm9sX2NiX2lkeCA9IHRtX3Nhc19jb250cm9sX2NiX2lkeDsKIAlpb2MtPmxvZ2dpbmdfbGV2ZWwgPSBsb2dnaW5nX2xldmVsOwogCWlvYy0+c2NoZWR1bGVfZGVhZF9pb2NfZmx1c2hfcnVubmluZ19jbWRzID0gJl9zY3NpaF9mbHVzaF9ydW5uaW5nX2NtZHM7CisJLyoKKwkgKiBFbmFibGUgTUVNT1JZIE1PVkUgc3VwcG9ydCBmbGFnLgorCSAqLworCWlvYy0+ZHJ2X3N1cHBvcnRfYml0bWFwIHw9IE1QVF9EUlZfU1VQUE9SVF9CSVRNQVBfTUVNTU9WRTsKKworCWlvYy0+ZW5hYmxlX3NkZXZfbWF4X3FkID0gZW5hYmxlX3NkZXZfbWF4X3FkOworCiAJLyogbWlzYyBzZW1hcGhvcmVzIGFuZCBzcGluIGxvY2tzICovCiAJbXV0ZXhfaW5pdCgmaW9jLT5yZXNldF9pbl9wcm9ncmVzc19tdXRleCk7CiAJLyogaW5pdGlhbGl6aW5nIHBjaV9hY2Nlc3NfbXV0ZXggbG9jayAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL25jcjUzYzh4eC5jIGIvZHJpdmVycy9zY3NpL25jcjUzYzh4eC5jCmluZGV4IGU2YTk1NDkuLmUwYjQyN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9uY3I1M2M4eHguYworKysgYi9kcml2ZXJzL3Njc2kvbmNyNTNjOHh4LmMKQEAgLTM5MTAsMTEgKzM5MTAsMTQgQEAgc3RhdGljIHZvaWQgX19pbml0IG5jcl9wcmVwYXJlX3NldHRpbmcoc3RydWN0IG5jYiAqbnApCiAJCQkJCW5wLT5zY3NpX21vZGUgPSBTTU9ERV9IVkQ7CiAJCQkJYnJlYWs7CiAJCQl9CisJCQkvKiBmYWxsIHRocm91Z2ggKi8KIAkJY2FzZSAzOgkvKiBTWU1CSU9TIGNvbnRyb2xsZXJzIHJlcG9ydCBIVkQgdGhyb3VnaCBHUElPMyAqLwogCQkJaWYgKElOQihuY19ncHJlZykgJiAweDA4KQogCQkJCWJyZWFrOworCQkJLyogZmFsbCB0aHJvdWdoICovCiAJCWNhc2UgMjoJLyogU2V0IEhWRCB1bmNvbmRpdGlvbmFsbHkgKi8KIAkJCW5wLT5zY3NpX21vZGUgPSBTTU9ERV9IVkQ7CisJCQkvKiBmYWxsIHRocm91Z2ggKi8KIAkJY2FzZSAxOgkvKiBUcnVzdCBwcmV2aW91cyBzZXR0aW5ncyBmb3IgSFZEICovCiAJCQlpZiAobnAtPnN2X3N0ZXN0MiAmIDB4MjApCiAJCQkJbnAtPnNjc2lfbW9kZSA9IFNNT0RFX0hWRDsKQEAgLTY3MTQsNiArNjcxNyw3IEBAIHZvaWQgbmNyX2ludF9zaXIgKHN0cnVjdCBuY2IgKm5wKQogCQkJT1VUTF9EU1AgKHNjcl90b19jcHUodHAtPmxwWzBdLT5qdW1wX2NjYlswXSkpOwogCQkJcmV0dXJuOwogCQl9CisJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgU0lSX1JFU0VMX0JBRF9UQVJHRVQ6CS8qIFdpbGwgc2VuZCBhIFRBUkdFVCBSRVNFVCBtZXNzYWdlICovCiAJY2FzZSBTSVJfUkVTRUxfQkFEX0xVTjoJCS8qIFdpbGwgc2VuZCBhIFRBUkdFVCBSRVNFVCBtZXNzYWdlICovCiAJY2FzZSBTSVJfUkVTRUxfQkFEX0lfVF9MX1E6CS8qIFdpbGwgc2VuZCBhbiBBQk9SVCBUQUcgbWVzc2FnZSAgICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcG04MDAxL3BtODAwMV9zYXMuYyBiL2RyaXZlcnMvc2NzaS9wbTgwMDEvcG04MDAxX3Nhcy5jCmluZGV4IDk0NTM3MDUuLjdlNDgxNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9wbTgwMDEvcG04MDAxX3Nhcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9wbTgwMDEvcG04MDAxX3Nhcy5jCkBAIC0xMzA4LDI4ICsxMzA4LDIyIEBAIGludCBwbTgwMDFfYWJvcnRfdGFzayhzdHJ1Y3Qgc2FzX3Rhc2sgKnRhc2spCiAKIGludCBwbTgwMDFfYWJvcnRfdGFza19zZXQoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldiwgdTggKmx1bikKIHsKLQlpbnQgcmMgPSBUTUZfUkVTUF9GVU5DX0ZBSUxFRDsKIAlzdHJ1Y3QgcG04MDAxX3RtZl90YXNrIHRtZl90YXNrOwogCiAJdG1mX3Rhc2sudG1mID0gVE1GX0FCT1JUX1RBU0tfU0VUOwotCXJjID0gcG04MDAxX2lzc3VlX3NzcF90bWYoZGV2LCBsdW4sICZ0bWZfdGFzayk7Ci0JcmV0dXJuIHJjOworCXJldHVybiBwbTgwMDFfaXNzdWVfc3NwX3RtZihkZXYsIGx1biwgJnRtZl90YXNrKTsKIH0KIAogaW50IHBtODAwMV9jbGVhcl9hY2Eoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldiwgdTggKmx1bikKIHsKLQlpbnQgcmMgPSBUTUZfUkVTUF9GVU5DX0ZBSUxFRDsKIAlzdHJ1Y3QgcG04MDAxX3RtZl90YXNrIHRtZl90YXNrOwogCiAJdG1mX3Rhc2sudG1mID0gVE1GX0NMRUFSX0FDQTsKLQlyYyA9IHBtODAwMV9pc3N1ZV9zc3BfdG1mKGRldiwgbHVuLCAmdG1mX3Rhc2spOwotCi0JcmV0dXJuIHJjOworCXJldHVybiBwbTgwMDFfaXNzdWVfc3NwX3RtZihkZXYsIGx1biwgJnRtZl90YXNrKTsKIH0KIAogaW50IHBtODAwMV9jbGVhcl90YXNrX3NldChzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2LCB1OCAqbHVuKQogewotCWludCByYyA9IFRNRl9SRVNQX0ZVTkNfRkFJTEVEOwogCXN0cnVjdCBwbTgwMDFfdG1mX3Rhc2sgdG1mX3Rhc2s7CiAJc3RydWN0IHBtODAwMV9kZXZpY2UgKnBtODAwMV9kZXYgPSBkZXYtPmxsZGRfZGV2OwogCXN0cnVjdCBwbTgwMDFfaGJhX2luZm8gKnBtODAwMV9oYSA9IHBtODAwMV9maW5kX2hhX2J5X2RldihkZXYpOwpAQCAtMTMzOCw3ICsxMzMyLDYgQEAgaW50IHBtODAwMV9jbGVhcl90YXNrX3NldChzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2LCB1OCAqbHVuKQogCQlwbTgwMDFfcHJpbnRrKCJJX1RfTF9RIGNsZWFyIHRhc2sgc2V0WyV4XVxuIiwKIAkJcG04MDAxX2Rldi0+ZGV2aWNlX2lkKSk7CiAJdG1mX3Rhc2sudG1mID0gVE1GX0NMRUFSX1RBU0tfU0VUOwotCXJjID0gcG04MDAxX2lzc3VlX3NzcF90bWYoZGV2LCBsdW4sICZ0bWZfdGFzayk7Ci0JcmV0dXJuIHJjOworCXJldHVybiBwbTgwMDFfaXNzdWVfc3NwX3RtZihkZXYsIGx1biwgJnRtZl90YXNrKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3BtY3JhaWQuYyBiL2RyaXZlcnMvc2NzaS9wbWNyYWlkLmMKaW5kZXggNzFmZjM5My4uMzk4ZDJhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3BtY3JhaWQuYworKysgYi9kcml2ZXJzL3Njc2kvcG1jcmFpZC5jCkBAIC01ODQxLDcgKzU4NDEsNyBAQCBzdGF0aWMgaW50IHBtY3JhaWRfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiB9CiAKIC8qCi0gKiBQQ0kgZHJpdmVyIHN0cnVjdHVyZSBvZiBwY21yYWlkIGRyaXZlcgorICogUENJIGRyaXZlciBzdHJ1Y3R1cmUgb2YgcG1jcmFpZCBkcml2ZXIKICAqLwogc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHBtY3JhaWRfZHJpdmVyID0gewogCS5uYW1lID0gUE1DUkFJRF9EUklWRVJfTkFNRSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xZWRmL3FlZGYuaCBiL2RyaXZlcnMvc2NzaS9xZWRmL3FlZGYuaAppbmRleCA1YTAyMTIxLi5mM2YzOTlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmLmgKKysrIGIvZHJpdmVycy9zY3NpL3FlZGYvcWVkZi5oCkBAIC00OSw2ICs0OSw3IEBACiAjZGVmaW5lIFFFREZfQUJPUlRfVElNRU9VVAkoMTAgKiAxMDAwKQogI2RlZmluZSBRRURGX0NMRUFOVVBfVElNRU9VVAkxCiAjZGVmaW5lIFFFREZfTUFYX0NEQl9MRU4JMTYKKyNkZWZpbmUgUUVERl9MTDJfQlVGX1NJWkUJMjUwMAkvKiBCdWZmZXIgc2l6ZSByZXF1aXJlZCBmb3IgTEwyIFJ4ICovCiAKICNkZWZpbmUgVVBTVFJFQU1fUkVNT1ZFCQkxCiAjZGVmaW5lIFVQU1RSRUFNX0tFRVAJCTEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xZWRmL3FlZGZfZGVidWdmcy5jIGIvZHJpdmVycy9zY3NpL3FlZGYvcWVkZl9kZWJ1Z2ZzLmMKaW5kZXggZDkwNWEzMC4uYjg4YmVkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FlZGYvcWVkZl9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9zY3NpL3FlZGYvcWVkZl9kZWJ1Z2ZzLmMKQEAgLTQ3LDEzICs0NywxMyBAQCBxZWRmX2RiZ19ob3N0X2luaXQoc3RydWN0IHFlZGZfZGJnX2N0eCAqcWVkZiwKICAqIEBwZjogdGhlIHBmIHRoYXQgaXMgc3RvcHBpbmcKICAqKi8KIHZvaWQKLXFlZGZfZGJnX2hvc3RfZXhpdChzdHJ1Y3QgcWVkZl9kYmdfY3R4ICpxZWRmKQorcWVkZl9kYmdfaG9zdF9leGl0KHN0cnVjdCBxZWRmX2RiZ19jdHggKnFlZGZfZGJnKQogewotCVFFREZfSU5GTyhxZWRmLCBRRURGX0xPR19ERUJVR0ZTLCAiRGVzdHJveWluZyBkZWJ1Z2ZzIGhvc3QgIgorCVFFREZfSU5GTyhxZWRmX2RiZywgUUVERl9MT0dfREVCVUdGUywgIkRlc3Ryb3lpbmcgZGVidWdmcyBob3N0ICIKIAkJICAgImVudHJ5XG4iKTsKIAkvKiByZW1vdmUgZGVidWdmcyAgZW50cmllcyBvZiB0aGlzIFBGICovCi0JZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHFlZGYtPmJkZl9kZW50cnkpOwotCXFlZGYtPmJkZl9kZW50cnkgPSBOVUxMOworCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShxZWRmX2RiZy0+YmRmX2RlbnRyeSk7CisJcWVkZl9kYmctPmJkZl9kZW50cnkgPSBOVUxMOwogfQogCiAvKioKQEAgLTE0MCwxMCArMTQwLDEwIEBAIHFlZGZfZGJnX2RlYnVnX2NtZF9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgY291bnQsCiAJCQlsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IGNudDsKLQlzdHJ1Y3QgcWVkZl9kYmdfY3R4ICpxZWRmID0KKwlzdHJ1Y3QgcWVkZl9kYmdfY3R4ICpxZWRmX2RiZyA9CiAJCQkJKHN0cnVjdCBxZWRmX2RiZ19jdHggKilmaWxwLT5wcml2YXRlX2RhdGE7CiAKLQlRRURGX0lORk8ocWVkZiwgUUVERl9MT0dfREVCVUdGUywgImVudGVyZWRcbiIpOworCVFFREZfSU5GTyhxZWRmX2RiZywgUUVERl9MT0dfREVCVUdGUywgImRlYnVnIG1hc2s9MHgleFxuIiwgcWVkZl9kZWJ1Zyk7CiAJY250ID0gc3ByaW50ZihidWZmZXIsICJkZWJ1ZyBtYXNrID0gMHgleFxuIiwgcWVkZl9kZWJ1Zyk7CiAKIAljbnQgPSBtaW5fdChpbnQsIGNvdW50LCBjbnQgLSAqcHBvcyk7CkBAIC0xNTgsNyArMTU4LDcgQEAgcWVkZl9kYmdfZGVidWdfY21kX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmZmVyLAogCXVpbnQzMl90IHZhbDsKIAl2b2lkICprZXJuX2J1ZjsKIAlpbnQgcnZhbDsKLQlzdHJ1Y3QgcWVkZl9kYmdfY3R4ICpxZWRmID0KKwlzdHJ1Y3QgcWVkZl9kYmdfY3R4ICpxZWRmX2RiZyA9CiAJICAgIChzdHJ1Y3QgcWVkZl9kYmdfY3R4ICopZmlscC0+cHJpdmF0ZV9kYXRhOwogCiAJaWYgKCFjb3VudCB8fCAqcHBvcykKQEAgLTE3OCw3ICsxNzgsNyBAQCBxZWRmX2RiZ19kZWJ1Z19jbWRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCiAJZWxzZQogCQlxZWRmX2RlYnVnID0gdmFsOwogCi0JUUVERl9JTkZPKHFlZGYsIFFFREZfTE9HX0RFQlVHRlMsICJTZXR0aW5nIGRlYnVnPTB4JXguXG4iLCB2YWwpOworCVFFREZfSU5GTyhxZWRmX2RiZywgUUVERl9MT0dfREVCVUdGUywgIlNldHRpbmcgZGVidWc9MHgleC5cbiIsIHZhbCk7CiAJcmV0dXJuIGNvdW50OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmX2Vscy5jIGIvZHJpdmVycy9zY3NpL3FlZGYvcWVkZl9lbHMuYwppbmRleCA1OTk2ZjY4Li44N2UxNjlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmX2Vscy5jCisrKyBiL2RyaXZlcnMvc2NzaS9xZWRmL3FlZGZfZWxzLmMKQEAgLTE3OSw4ICsxNzksMTEgQEAgc3RhdGljIHZvaWQgcWVkZl9ycnFfY29tcGwoc3RydWN0IHFlZGZfZWxzX2NiX2FyZyAqY2JfYXJnKQogCiAJb3JpZ19pb19yZXEgPSBjYl9hcmctPmFib3J0ZWRfaW9fcmVxOwogCi0JaWYgKCFvcmlnX2lvX3JlcSkKKwlpZiAoIW9yaWdfaW9fcmVxKSB7CisJCVFFREZfRVJSKCZxZWRmLT5kYmdfY3R4LAorCQkJICJPcmlnaW5hbCBpb19yZXEgaXMgTlVMTCwgcnJxX3JlcSA9ICVwLlxuIiwgcnJxX3JlcSk7CiAJCWdvdG8gb3V0X2ZyZWU7CisJfQogCiAJaWYgKHJycV9yZXEtPmV2ZW50ICE9IFFFREZfSU9SRVFfRVZfRUxTX1RNTyAmJgogCSAgICBycnFfcmVxLT5ldmVudCAhPSBRRURGX0lPUkVRX0VWX0VMU19FUlJfREVURUNUKQpAQCAtMzUwLDggKzM1MywxMCBAQCB2b2lkIHFlZGZfcmVzdGFydF9ycG9ydChzdHJ1Y3QgcWVkZl9ycG9ydCAqZmNwb3J0KQogCXUzMiBwb3J0X2lkOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlpZiAoIWZjcG9ydCkKKwlpZiAoIWZjcG9ydCkgeworCQlRRURGX0VSUihOVUxMLCAiZmNwb3J0IGlzIE5VTEwuXG4iKTsKIAkJcmV0dXJuOworCX0KIAogCXNwaW5fbG9ja19pcnFzYXZlKCZmY3BvcnQtPnJwb3J0X2xvY2ssIGZsYWdzKTsKIAlpZiAodGVzdF9iaXQoUUVERl9SUE9SVF9JTl9SRVNFVCwgJmZjcG9ydC0+ZmxhZ3MpIHx8CkBAIC00MTgsOCArNDIzLDExIEBAIHN0YXRpYyB2b2lkIHFlZGZfbDJfZWxzX2NvbXBsKHN0cnVjdCBxZWRmX2Vsc19jYl9hcmcgKmNiX2FyZykKIAkgKiBJZiB3ZSBhcmUgZmx1c2hpbmcgdGhlIGNvbW1hbmQganVzdCBmcmVlIHRoZSBjYl9hcmcgYXMgbm9uZSBvZiB0aGUKIAkgKiByZXNwb25zZSBkYXRhIHdpbGwgYmUgdmFsaWQuCiAJICovCi0JaWYgKGVsc19yZXEtPmV2ZW50ID09IFFFREZfSU9SRVFfRVZfRUxTX0ZMVVNIKQorCWlmIChlbHNfcmVxLT5ldmVudCA9PSBRRURGX0lPUkVRX0VWX0VMU19GTFVTSCkgeworCQlRRURGX0VSUihOVUxMLCAiZWxzX3JlcSB4aWQ9MHgleCBldmVudCBpcyBmbHVzaC5cbiIsCisJCQkgZWxzX3JlcS0+eGlkKTsKIAkJZ290byBmcmVlX2FyZzsKKwl9CiAKIAlmY3BvcnQgPSBlbHNfcmVxLT5mY3BvcnQ7CiAJbXBfcmVxID0gJihlbHNfcmVxLT5tcF9yZXEpOwpAQCAtNTMyLDggKzU0MCwxMCBAQCBzdGF0aWMgdm9pZCBxZWRmX3Nycl9jb21wbChzdHJ1Y3QgcWVkZl9lbHNfY2JfYXJnICpjYl9hcmcpCiAKIAlvcmlnX2lvX3JlcSA9IGNiX2FyZy0+YWJvcnRlZF9pb19yZXE7CiAKLQlpZiAoIW9yaWdfaW9fcmVxKQorCWlmICghb3JpZ19pb19yZXEpIHsKKwkJUUVERl9FUlIoTlVMTCwgIm9yaWdfaW9fcmVxIGlzIE5VTEwuXG4iKTsKIAkJZ290byBvdXRfZnJlZTsKKwl9CiAKIAljbGVhcl9iaXQoUUVERl9DTURfU1JSX1NFTlQsICZvcmlnX2lvX3JlcS0+ZmxhZ3MpOwogCkBAIC01NDcsOCArNTU3LDExIEBAIHN0YXRpYyB2b2lkIHFlZGZfc3JyX2NvbXBsKHN0cnVjdCBxZWRmX2Vsc19jYl9hcmcgKmNiX2FyZykKIAkJICAgb3JpZ19pb19yZXEsIG9yaWdfaW9fcmVxLT54aWQsIHNycl9yZXEtPnhpZCwgcmVmY291bnQpOwogCiAJLyogSWYgYSBTUlIgdGltZXMgb3V0LCBzaW1wbHkgZnJlZSByZXNvdXJjZXMgKi8KLQlpZiAoc3JyX3JlcS0+ZXZlbnQgPT0gUUVERl9JT1JFUV9FVl9FTFNfVE1PKQorCWlmIChzcnJfcmVxLT5ldmVudCA9PSBRRURGX0lPUkVRX0VWX0VMU19UTU8pIHsKKwkJUUVERl9FUlIoJnFlZGYtPmRiZ19jdHgsCisJCQkgIkVMUyB0aW1lb3V0IHJlY194aWQ9MHgleC5cbiIsIHNycl9yZXEtPnhpZCk7CiAJCWdvdG8gb3V0X3B1dDsKKwl9CiAKIAkvKiBOb3JtYWxpemUgcmVzcG9uc2UgZGF0YSBpbnRvIHN0cnVjdCBmY19mcmFtZSAqLwogCW1wX3JlcSA9ICYoc3JyX3JlcS0+bXBfcmVxKTsKQEAgLTcyMSw4ICs3MzQsMTEgQEAgdm9pZCBxZWRmX3Byb2Nlc3Nfc2VxX2NsZWFudXBfY29tcGwoc3RydWN0IHFlZGZfY3R4ICpxZWRmLAogCWNiX2FyZyA9IGlvX3JlcS0+Y2JfYXJnOwogCiAJLyogSWYgd2UgdGltZWQgb3V0IGp1c3QgZnJlZSByZXNvdXJjZXMgKi8KLQlpZiAoaW9fcmVxLT5ldmVudCA9PSBRRURGX0lPUkVRX0VWX0VMU19UTU8gfHwgIWNxZSkKKwlpZiAoaW9fcmVxLT5ldmVudCA9PSBRRURGX0lPUkVRX0VWX0VMU19UTU8gfHwgIWNxZSkgeworCQlRRURGX0VSUigmcWVkZi0+ZGJnX2N0eCwKKwkJCSAiY3FlIGlzIE5VTEwgb3IgdGltZW91dCBldmVudCAoMHgleCkiLCBpb19yZXEtPmV2ZW50KTsKIAkJZ290byBmcmVlOworCX0KIAogCS8qIEtpbGwgdGhlIHRpbWVyIHdlIHB1dCBvbiB0aGUgcmVxdWVzdCAqLwogCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmaW9fcmVxLT50aW1lb3V0X3dvcmspOwpAQCAtODI1LDggKzg0MSwxMCBAQCBzdGF0aWMgdm9pZCBxZWRmX3JlY19jb21wbChzdHJ1Y3QgcWVkZl9lbHNfY2JfYXJnICpjYl9hcmcpCiAKIAlvcmlnX2lvX3JlcSA9IGNiX2FyZy0+YWJvcnRlZF9pb19yZXE7CiAKLQlpZiAoIW9yaWdfaW9fcmVxKQorCWlmICghb3JpZ19pb19yZXEpIHsKKwkJUUVERl9FUlIoTlVMTCwgIm9yaWdfaW9fcmVxIGlzIE5VTEwuXG4iKTsKIAkJZ290byBvdXRfZnJlZTsKKwl9CiAKIAlpZiAocmVjX3JlcS0+ZXZlbnQgIT0gUUVERl9JT1JFUV9FVl9FTFNfVE1PICYmCiAJICAgIHJlY19yZXEtPmV2ZW50ICE9IFFFREZfSU9SRVFfRVZfRUxTX0VSUl9ERVRFQ1QpCkBAIC04MzgsOCArODU2LDEyIEBAIHN0YXRpYyB2b2lkIHFlZGZfcmVjX2NvbXBsKHN0cnVjdCBxZWRmX2Vsc19jYl9hcmcgKmNiX2FyZykKIAkJICAgb3JpZ19pb19yZXEsIG9yaWdfaW9fcmVxLT54aWQsIHJlY19yZXEtPnhpZCwgcmVmY291bnQpOwogCiAJLyogSWYgYSBSRUMgdGltZXMgb3V0LCBmcmVlIHJlc291cmNlcyAqLwotCWlmIChyZWNfcmVxLT5ldmVudCA9PSBRRURGX0lPUkVRX0VWX0VMU19UTU8pCisJaWYgKHJlY19yZXEtPmV2ZW50ID09IFFFREZfSU9SRVFfRVZfRUxTX1RNTykgeworCQlRRURGX0VSUigmcWVkZi0+ZGJnX2N0eCwKKwkJCSAiR290IFRNTyBldmVudCwgb3JpZ19pb19yZXEgJXAgb3JpZ19pb194aWQ9MHgleC5cbiIsCisJCQkgb3JpZ19pb19yZXEsIG9yaWdfaW9fcmVxLT54aWQpOwogCQlnb3RvIG91dF9wdXQ7CisJfQogCiAJLyogTm9ybWFsaXplIHJlc3BvbnNlIGRhdGEgaW50byBzdHJ1Y3QgZmNfZnJhbWUgKi8KIAltcF9yZXEgPSAmKHJlY19yZXEtPm1wX3JlcSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmX2ZpcC5jIGIvZHJpdmVycy9zY3NpL3FlZGYvcWVkZl9maXAuYwppbmRleCAzNjJkMmJlLi5iYjgyZjA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmX2ZpcC5jCisrKyBiL2RyaXZlcnMvc2NzaS9xZWRmL3FlZGZfZmlwLmMKQEAgLTIzLDggKzIzLDExIEBAIHZvaWQgcWVkZl9mY29lX3NlbmRfdmxhbl9yZXEoc3RydWN0IHFlZGZfY3R4ICpxZWRmKQogCWludCByYyA9IC0xOwogCiAJc2tiID0gZGV2X2FsbG9jX3NrYihzaXplb2Yoc3RydWN0IGZpcF92bGFuKSk7Ci0JaWYgKCFza2IpCisJaWYgKCFza2IpIHsKKwkJUUVERl9FUlIoJnFlZGYtPmRiZ19jdHgsCisJCQkgIkZhaWxlZCB0byBhbGxvY2F0ZSBza2IuXG4iKTsKIAkJcmV0dXJuOworCX0KIAogCWV0aF9mciA9IChjaGFyICopc2tiLT5kYXRhOwogCXZsYW4gPSAoc3RydWN0IGZpcF92bGFuICopZXRoX2ZyOwpAQCAtMjUwLDE4ICsyNTMsMjQgQEAgdm9pZCBxZWRmX2ZpcF9yZWN2KHN0cnVjdCBxZWRmX2N0eCAqcWVkZiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCQkJZmNfd3dwbl92YWxpZCA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEZJUF9EVF9WTl9JRDoKKwkJCQlmYWJyaWNfaWRfdmFsaWQgPSBmYWxzZTsKIAkJCQl2cCA9IChzdHJ1Y3QgZmlwX3ZuX2Rlc2MgKilkZXNjOwotCQkJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfRElTQywKLQkJCQkJICAidnhfcG9ydCBmZF9mY19pZD0leCBmZF9tYWM9JXBNLlxuIiwKLQkJCQkJICBudG9oMjQodnAtPmZkX2ZjX2lkKSwgdnAtPmZkX21hYyk7Ci0JCQkJLyogQ2hlY2sgdnhfcG9ydCBmYWJyaWMgSUQgKi8KLQkJCQlpZiAobnRvaDI0KHZwLT5mZF9mY19pZCkgIT0KLQkJCQkgICAgcWVkZi0+bHBvcnQtPnBvcnRfaWQpCi0JCQkJCWZhYnJpY19pZF92YWxpZCA9IGZhbHNlOwotCQkJCS8qIENoZWNrIHZ4X3BvcnQgTUFDICovCi0JCQkJaWYgKCFldGhlcl9hZGRyX2VxdWFsKHZwLT5mZF9tYWMsCi0JCQkJCQkgICAgICBxZWRmLT5kYXRhX3NyY19hZGRyKSkKLQkJCQkJZmFicmljX2lkX3ZhbGlkID0gZmFsc2U7CisKKwkJCQlRRURGX0VSUigmcWVkZi0+ZGJnX2N0eCwKKwkJCQkJICJDVkwgdnhfcG9ydCBmZF9mY19pZD0weCV4IGZkX21hYz0lcE0gZmRfd3dwbj0lMDE2bGx4LlxuIiwKKwkJCQkJIG50b2gyNCh2cC0+ZmRfZmNfaWQpLCB2cC0+ZmRfbWFjLAorCQkJCQkgZ2V0X3VuYWxpZ25lZF9iZTY0KCZ2cC0+ZmRfd3dwbikpOworCQkJCS8qIENoZWNrIGZvciB2eF9wb3J0IHd3cG4gT1IgQ2hlY2sgdnhfcG9ydAorCQkJCSAqIGZhYnJpYyBJRCBPUiBDaGVjayB2eF9wb3J0IE1BQworCQkJCSAqLworCQkJCWlmICgoZ2V0X3VuYWxpZ25lZF9iZTY0KCZ2cC0+ZmRfd3dwbikgPT0KKwkJCQkJcWVkZi0+d3dwbikgfHwKKwkJCQkgICAobnRvaDI0KHZwLT5mZF9mY19pZCkgPT0KKwkJCQkJcWVkZi0+bHBvcnQtPnBvcnRfaWQpIHx8CisJCQkJICAgKGV0aGVyX2FkZHJfZXF1YWwodnAtPmZkX21hYywKKwkJCQkJcWVkZi0+ZGF0YV9zcmNfYWRkcikpKSB7CisJCQkJCWZhYnJpY19pZF92YWxpZCA9IHRydWU7CisJCQkJfQogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBJZ25vcmUgYW55dGhpbmcgZWxzZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FlZGYvcWVkZl9pby5jIGIvZHJpdmVycy9zY3NpL3FlZGYvcWVkZl9pby5jCmluZGV4IGQ4ODFlODIuLmU3NDlhMmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xZWRmL3FlZGZfaW8uYworKysgYi9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmX2lvLmMKQEAgLTEwNCw2ICsxMDQsOCBAQCBzdGF0aWMgdm9pZCBxZWRmX2NtZF90aW1lb3V0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJcWVkZl9wcm9jZXNzX3NlcV9jbGVhbnVwX2NvbXBsKHFlZGYsIE5VTEwsIGlvX3JlcSk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CisJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfSU8sCisJCQkgICJIaXQgZGVmYXVsdCBjYXNlLCB4aWQ9MHgleC5cbiIsIGlvX3JlcS0+eGlkKTsKIAkJYnJlYWs7CiAJfQogfQpAQCAtMTIyLDggKzEyNCwxMCBAQCB2b2lkIHFlZGZfY21kX21ncl9mcmVlKHN0cnVjdCBxZWRmX2NtZF9tZ3IgKmNtZ3IpCiAJbnVtX2lvcyA9IG1heF94aWQgLSBtaW5feGlkICsgMTsKIAogCS8qIEZyZWUgZmNvZV9iZHRfY3R4IHN0cnVjdHVyZXMgKi8KLQlpZiAoIWNtZ3ItPmlvX2JkdF9wb29sKQorCWlmICghY21nci0+aW9fYmR0X3Bvb2wpIHsKKwkJUUVERl9FUlIoJnFlZGYtPmRiZ19jdHgsICJpb19iZHRfcG9vbCBpcyBOVUxMLlxuIik7CiAJCWdvdG8gZnJlZV9jbWRfcG9vbDsKKwl9CiAKIAliZF90Ymxfc3ogPSBRRURGX01BWF9CRFNfUEVSX0NNRCAqIHNpemVvZihzdHJ1Y3Qgc2NzaV9zZ2UpOwogCWZvciAoaSA9IDA7IGkgPCBudW1faW9zOyBpKyspIHsKQEAgLTIyNiw4ICsyMzAsMTEgQEAgc3RydWN0IHFlZGZfY21kX21nciAqcWVkZl9jbWRfbWdyX2FsbG9jKHN0cnVjdCBxZWRmX2N0eCAqcWVkZikKIAkJaW9fcmVxLT5zZW5zZV9idWZmZXIgPSBkbWFfYWxsb2NfY29oZXJlbnQoJnFlZGYtPnBkZXYtPmRldiwKIAkJICAgIFFFREZfU0NTSV9TRU5TRV9CVUZGRVJTSVpFLCAmaW9fcmVxLT5zZW5zZV9idWZmZXJfZG1hLAogCQkgICAgR0ZQX0tFUk5FTCk7Ci0JCWlmICghaW9fcmVxLT5zZW5zZV9idWZmZXIpCisJCWlmICghaW9fcmVxLT5zZW5zZV9idWZmZXIpIHsKKwkJCVFFREZfRVJSKCZxZWRmLT5kYmdfY3R4LAorCQkJCSAiRmFpbGVkIHRvIGFsbG9jIHNlbnNlIGJ1ZmZlci5cbiIpOwogCQkJZ290byBtZW1fZXJyOworCQl9CiAKIAkJLyogQWxsb2NhdGUgdGFzayBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gZi93IGluaXQgZnVuY2lvbnMgKi8KIAkJaW9fcmVxLT50YXNrX3BhcmFtcyA9IGt6YWxsb2Moc2l6ZW9mKCppb19yZXEtPnRhc2tfcGFyYW1zKSwKQEAgLTQzNyw4ICs0NDQsMTIgQEAgdm9pZCBxZWRmX3JlbGVhc2VfY21kKHN0cnVjdCBrcmVmICpyZWYpCiAJc3RydWN0IHFlZGZfcnBvcnQgKmZjcG9ydCA9IGlvX3JlcS0+ZmNwb3J0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlpZiAoaW9fcmVxLT5jbWRfdHlwZSA9PSBRRURGX1NDU0lfQ01EKQorCWlmIChpb19yZXEtPmNtZF90eXBlID09IFFFREZfU0NTSV9DTUQpIHsKKwkJUUVERl9XQVJOKCZmY3BvcnQtPnFlZGYtPmRiZ19jdHgsCisJCQkgICJDbWQgcmVsZWFzZWQgY2FsbGVkIHdpdGhvdXQgc2NzaV9kb25lIGNhbGxlZCwgaW9fcmVxICVwIHhpZD0weCV4LlxuIiwKKwkJCSAgaW9fcmVxLCBpb19yZXEtPnhpZCk7CiAJCVdBUk5fT04oaW9fcmVxLT5zY19jbWQpOworCX0KIAogCWlmIChpb19yZXEtPmNtZF90eXBlID09IFFFREZfRUxTIHx8CiAJICAgIGlvX3JlcS0+Y21kX3R5cGUgPT0gUUVERl9UQVNLX01HTVRfQ01EKQpAQCAtNDQ3LDggKzQ1OCwxMCBAQCB2b2lkIHFlZGZfcmVsZWFzZV9jbWQoc3RydWN0IGtyZWYgKnJlZikKIAlhdG9taWNfaW5jKCZjbWRfbWdyLT5mcmVlX2xpc3RfY250KTsKIAlhdG9taWNfZGVjKCZmY3BvcnQtPm51bV9hY3RpdmVfaW9zKTsKIAlhdG9taWNfc2V0KCZpb19yZXEtPnN0YXRlLCBRRURGX0NNRF9TVF9JTkFDVElWRSk7Ci0JaWYgKGF0b21pY19yZWFkKCZmY3BvcnQtPm51bV9hY3RpdmVfaW9zKSA8IDApCisJaWYgKGF0b21pY19yZWFkKCZmY3BvcnQtPm51bV9hY3RpdmVfaW9zKSA8IDApIHsKIAkJUUVERl9XQVJOKCYoZmNwb3J0LT5xZWRmLT5kYmdfY3R4KSwgImFjdGl2ZV9pb3MgPCAwLlxuIik7CisJCVdBUk5fT04oMSk7CisJfQogCiAJLyogSW5jcmVtZW50IHRhc2sgcmV0cnkgaWRlbnRpZmllciBub3cgdGhhdCB0aGUgcmVxdWVzdCBpcyByZWxlYXNlZCAqLwogCWlvX3JlcS0+dGFza19yZXRyeV9pZGVudGlmaWVyKys7CkBAIC05NTEsNiArOTY0LDkgQEAgcWVkZl9xdWV1ZWNvbW1hbmQoc3RydWN0IFNjc2lfSG9zdCAqaG9zdCwgc3RydWN0IHNjc2lfY21uZCAqc2NfY21kKQogCiAJaWYgKHRlc3RfYml0KFFFREZfVU5MT0FESU5HLCAmcWVkZi0+ZmxhZ3MpIHx8CiAJICAgIHRlc3RfYml0KFFFREZfREJHX1NUT1BfSU8sICZxZWRmLT5mbGFncykpIHsKKwkJUUVERl9JTkZPKCZxZWRmLT5kYmdfY3R4LCBRRURGX0xPR19JTywKKwkJCSAgIlJldHVybmluZyBETkMgYXMgdW5sb2FkaW5nIG9yIHN0b3AgaW8sIGZsYWdzIDB4JWx4LlxuIiwKKwkJCSAgcWVkZi0+ZmxhZ3MpOwogCQlzY19jbWQtPnJlc3VsdCA9IERJRF9OT19DT05ORUNUIDw8IDE2OwogCQlzY19jbWQtPnNjc2lfZG9uZShzY19jbWQpOwogCQlyZXR1cm4gMDsKQEAgLTk2Nyw2ICs5ODMsOSBAQCBxZWRmX3F1ZXVlY29tbWFuZChzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0LCBzdHJ1Y3Qgc2NzaV9jbW5kICpzY19jbWQpCiAKIAlydmFsID0gZmNfcmVtb3RlX3BvcnRfY2hrcmVhZHkocnBvcnQpOwogCWlmIChydmFsKSB7CisJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfSU8sCisJCQkgICJmY19yZW1vdGVfcG9ydF9jaGtyZWFkeSBmYWlsZWQ9MHgleCBmb3IgcG9ydF9pZD0weCUwNnguXG4iLAorCQkJICBydmFsLCBycG9ydC0+cG9ydF9pZCk7CiAJCXNjX2NtZC0+cmVzdWx0ID0gcnZhbDsKIAkJc2NfY21kLT5zY3NpX2RvbmUoc2NfY21kKTsKIAkJcmV0dXJuIDA7CkBAIC05NzQsMTIgKzk5MywxNCBAQCBxZWRmX3F1ZXVlY29tbWFuZChzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0LCBzdHJ1Y3Qgc2NzaV9jbW5kICpzY19jbWQpCiAKIAkvKiBSZXRyeSBjb21tYW5kIGlmIHdlIGFyZSBkb2luZyBhIHFlZCBkcmFpbiBvcGVyYXRpb24gKi8KIAlpZiAodGVzdF9iaXQoUUVERl9EUkFJTl9BQ1RJVkUsICZxZWRmLT5mbGFncykpIHsKKwkJUUVERl9JTkZPKCZxZWRmLT5kYmdfY3R4LCBRRURGX0xPR19JTywgIkRyYWluIGFjdGl2ZS5cbiIpOwogCQlyYyA9IFNDU0lfTUxRVUVVRV9IT1NUX0JVU1k7CiAJCWdvdG8gZXhpdF9xY21kOwogCX0KIAogCWlmIChscG9ydC0+c3RhdGUgIT0gTFBPUlRfU1RfUkVBRFkgfHwKIAkgICAgYXRvbWljX3JlYWQoJnFlZGYtPmxpbmtfc3RhdGUpICE9IFFFREZfTElOS19VUCkgeworCQlRRURGX0lORk8oJnFlZGYtPmRiZ19jdHgsIFFFREZfTE9HX0lPLCAiTGluayBkb3duLlxuIik7CiAJCXJjID0gU0NTSV9NTFFVRVVFX0hPU1RfQlVTWTsKIAkJZ290byBleGl0X3FjbWQ7CiAJfQpAQCAtMTI5Nyw4ICsxMzE4LDEwIEBAIHZvaWQgcWVkZl9zY3NpX2RvbmUoc3RydWN0IHFlZGZfY3R4ICpxZWRmLCBzdHJ1Y3QgcWVkZl9pb3JlcSAqaW9fcmVxLAogCXN0cnVjdCBzY3NpX2NtbmQgKnNjX2NtZDsKIAlpbnQgcmVmY291bnQ7CiAKLQlpZiAoIWlvX3JlcSkKKwlpZiAoIWlvX3JlcSkgeworCQlRRURGX0lORk8oJnFlZGYtPmRiZ19jdHgsIFFFREZfTE9HX0lPLCAiaW9fcmVxIGlzIE5VTExcbiIpOwogCQlyZXR1cm47CisJfQogCiAJaWYgKHRlc3RfYW5kX3NldF9iaXQoUUVERl9DTURfRVJSX1NDU0lfRE9ORSwgJmlvX3JlcS0+ZmxhZ3MpKSB7CiAJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfSU8sCkBAIC0xNDE0LDggKzE0MzcsMTIgQEAgdm9pZCBxZWRmX3Byb2Nlc3Nfd2FybmluZ19jb21wbChzdHJ1Y3QgcWVkZl9jdHggKnFlZGYsIHN0cnVjdCBmY29lX2NxZSAqY3FlLAogCXU2NCBlcnJfd2Fybl9iaXRfbWFwOwogCXU4IGVycl93YXJuID0gMHhmZjsKIAotCWlmICghY3FlKQorCWlmICghY3FlKSB7CisJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfSU8sCisJCQkgICJjcWUgaXMgTlVMTCBmb3IgaW9fcmVxICVwIHhpZD0weCV4XG4iLAorCQkJICBpb19yZXEsIGlvX3JlcS0+eGlkKTsKIAkJcmV0dXJuOworCX0KIAogCVFFREZfRVJSKCYoaW9fcmVxLT5mY3BvcnQtPnFlZGYtPmRiZ19jdHgpLCAiV2FybmluZyBDUUUsICIKIAkJICAieGlkPTB4JXhcbiIsIGlvX3JlcS0+eGlkKTsKQEAgLTE0NzcsOCArMTUwNCwxMSBAQCB2b2lkIHFlZGZfcHJvY2Vzc19lcnJvcl9kZXRlY3Qoc3RydWN0IHFlZGZfY3R4ICpxZWRmLCBzdHJ1Y3QgZmNvZV9jcWUgKmNxZSwKIHsKIAlpbnQgcnZhbDsKIAotCWlmICghY3FlKQorCWlmICghY3FlKSB7CisJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfSU8sCisJCQkgICJjcWUgaXMgTlVMTCBmb3IgaW9fcmVxICVwXG4iLCBpb19yZXEpOwogCQlyZXR1cm47CisJfQogCiAJUUVERl9FUlIoJihpb19yZXEtPmZjcG9ydC0+cWVkZi0+ZGJnX2N0eCksICJFcnJvciBkZXRlY3Rpb24gQ1FFLCAiCiAJCSAgInhpZD0weCV4XG4iLCBpb19yZXEtPnhpZCk7CkBAIC0xNTQzLDggKzE1NzMsMTAgQEAgdm9pZCBxZWRmX2ZsdXNoX2FjdGl2ZV9pb3Moc3RydWN0IHFlZGZfcnBvcnQgKmZjcG9ydCwgaW50IGx1bikKIAlpbnQgd2FpdF9jbnQgPSAxMDA7CiAJaW50IHJlZmNvdW50ID0gMDsKIAotCWlmICghZmNwb3J0KQorCWlmICghZmNwb3J0KSB7CisJCVFFREZfRVJSKE5VTEwsICJmY3BvcnQgaXMgTlVMTFxuIik7CiAJCXJldHVybjsKKwl9CiAKIAkvKiBDaGVjayB0aGF0IGZjcG9ydCBpcyBzdGlsbCBvZmZsb2FkZWQgKi8KIAlpZiAoIXRlc3RfYml0KFFFREZfUlBPUlRfU0VTU0lPTl9SRUFEWSwgJmZjcG9ydC0+ZmxhZ3MpKSB7CkBAIC0xOTc2LDYgKzIwMDgsMTAgQEAgdm9pZCBxZWRmX3Byb2Nlc3NfYWJ0c19jb21wbChzdHJ1Y3QgcWVkZl9jdHggKnFlZGYsIHN0cnVjdCBmY29lX2NxZSAqY3FlLAogCWNsZWFyX2JpdChRRURGX0NNRF9JTl9BQk9SVCwgJmlvX3JlcS0+ZmxhZ3MpOwogCiAJaWYgKGlvX3JlcS0+c2NfY21kKSB7CisJCWlmICghaW9fcmVxLT5yZXR1cm5fc2NzaV9jbWRfb25fYWJ0cykKKwkJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfU0NTSV9UTSwKKwkJCQkgICJOb3QgY2FsbCBzY3NpX2RvbmUgZm9yIHhpZD0weCV4LlxuIiwKKwkJCQkgIGlvX3JlcS0+eGlkKTsKIAkJaWYgKGlvX3JlcS0+cmV0dXJuX3Njc2lfY21kX29uX2FidHMpCiAJCQlxZWRmX3Njc2lfZG9uZShxZWRmLCBpb19yZXEsIERJRF9FUlJPUik7CiAJfQpAQCAtMjIwMSw2ICsyMjM3LDEwIEBAIGludCBxZWRmX2luaXRpYXRlX2NsZWFudXAoc3RydWN0IHFlZGZfaW9yZXEgKmlvX3JlcSwKIAl9CiAKIAlpZiAoaW9fcmVxLT5zY19jbWQpIHsKKwkJaWYgKCFpb19yZXEtPnJldHVybl9zY3NpX2NtZF9vbl9hYnRzKQorCQkJUUVERl9JTkZPKCZxZWRmLT5kYmdfY3R4LCBRRURGX0xPR19TQ1NJX1RNLAorCQkJCSAgIk5vdCBjYWxsIHNjc2lfZG9uZSBmb3IgeGlkPTB4JXguXG4iLAorCQkJCSAgaW9fcmVxLT54aWQpOwogCQlpZiAoaW9fcmVxLT5yZXR1cm5fc2NzaV9jbWRfb25fYWJ0cykKIAkJCXFlZGZfc2NzaV9kb25lKHFlZGYsIGlvX3JlcSwgRElEX0VSUk9SKTsKIAl9CkBAIC0yMjQxLDcgKzIyODEsNyBAQCBzdGF0aWMgaW50IHFlZGZfZXhlY3V0ZV90bWYoc3RydWN0IHFlZGZfcnBvcnQgKmZjcG9ydCwgc3RydWN0IHNjc2lfY21uZCAqc2NfY21kLAogCXUxNiBzcWVfaWR4OwogCiAJaWYgKCFzY19jbWQpIHsKLQkJUUVERl9FUlIoJihxZWRmLT5kYmdfY3R4KSwgImludmFsaWQgYXJnXG4iKTsKKwkJUUVERl9FUlIoJnFlZGYtPmRiZ19jdHgsICJzY19jbWQgaXMgTlVMTFxuIik7CiAJCXJldHVybiBGQUlMRUQ7CiAJfQogCkBAIC0yMzYzLDggKzI0MDMsOCBAQCBpbnQgcWVkZl9pbml0aWF0ZV90bWYoc3RydWN0IHNjc2lfY21uZCAqc2NfY21kLCB1OCB0bV9mbGFncykKIAogCVFFREZfRVJSKE5VTEwsCiAJCSAidG1fZmxhZ3MgMHgleCBzY19jbWQgJXAgb3AgPSAweCUwMnggdGFyZ2V0X2lkID0gMHgleCBsdW49JWRcbiIsCi0JCSB0bV9mbGFncywgc2NfY21kLCBzY19jbWQtPmNtbmRbMF0sIHJwb3J0LT5zY3NpX3RhcmdldF9pZCwKLQkJIChpbnQpc2NfY21kLT5kZXZpY2UtPmx1bik7CisJCSB0bV9mbGFncywgc2NfY21kLCBzY19jbWQtPmNtZF9sZW4gPyBzY19jbWQtPmNtbmRbMF0gOiAweGZmLAorCQkgcnBvcnQtPnNjc2lfdGFyZ2V0X2lkLCAoaW50KXNjX2NtZC0+ZGV2aWNlLT5sdW4pOwogCiAJaWYgKCFyZGF0YSB8fCAha3JlZl9nZXRfdW5sZXNzX3plcm8oJnJkYXRhLT5rcmVmKSkgewogCQlRRURGX0VSUihOVUxMLCAic3RhbGUgcnBvcnRcbiIpOwpAQCAtMjUxNSw2ICsyNTU1LDExIEBAIHZvaWQgcWVkZl9wcm9jZXNzX3Vuc29sX2NvbXBsKHN0cnVjdCBxZWRmX2N0eCAqcWVkZiwgdWludDE2X3QgcXVlX2lkeCwKIAlmaCA9IChzdHJ1Y3QgZmNfZnJhbWVfaGVhZGVyICopZmNfZnJhbWVfaGVhZGVyX2dldChmcCk7CiAJbWVtY3B5KGZoLCAodm9pZCAqKWJkcV9hZGRyLCBwa3RsZW4pOwogCisJUUVERl9XQVJOKCZxZWRmLT5kYmdfY3R4LAorCQkgICJQcm9jZXNzaW5nIFVuc29saWNhdGVkIGZyYW1lLCBzcmM9JTA2eCBkZXN0PSUwNnggcl9jdGw9MHgleCB0eXBlPTB4JXggY21kPSUwMnhcbiIsCisJCSAgbnRvaDI0KGZoLT5maF9zX2lkKSwgbnRvaDI0KGZoLT5maF9kX2lkKSwgZmgtPmZoX3JfY3RsLAorCQkgIGZoLT5maF90eXBlLCBmY19mcmFtZV9wYXlsb2FkX29wKGZwKSk7CisKIAkvKiBJbml0aWFsaXplIHRoZSBmcmFtZSBzbyBsaWJmYyBzZWVzIGl0IGFzIGEgdmFsaWQgZnJhbWUgKi8KIAljcmMgPSBmY29lX2ZjX2NyYyhmcCk7CiAJZmNfZnJhbWVfaW5pdChmcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmX21haW4uYyBiL2RyaXZlcnMvc2NzaS9xZWRmL3FlZGZfbWFpbi5jCmluZGV4IDQyNTQyNzIuLjE2NTlkMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xZWRmL3FlZGZfbWFpbi5jCisrKyBiL2RyaXZlcnMvc2NzaS9xZWRmL3FlZGZfbWFpbi5jCkBAIC0yNyw2ICsyNyw3IEBAIGNvbnN0IHN0cnVjdCBxZWRfZmNvZV9vcHMgKnFlZF9vcHM7CiAKIHN0YXRpYyBpbnQgcWVkZl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKTsKIHN0YXRpYyB2b2lkIHFlZGZfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKK3N0YXRpYyB2b2lkIHFlZGZfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpOwogCiAvKgogICogRHJpdmVyIG1vZHVsZSBwYXJhbWV0ZXJzLgpAQCAtMTEwLDE2ICsxMTEsMTggQEAgc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpxZWRmX2lvX3dvcmtfY2FjaGU7CiAKIHZvaWQgcWVkZl9zZXRfdmxhbl9pZChzdHJ1Y3QgcWVkZl9jdHggKnFlZGYsIGludCB2bGFuX2lkKQogewotCXFlZGYtPnZsYW5faWQgPSB2bGFuX2lkOwotCXFlZGYtPnZsYW5faWQgfD0gcWVkZi0+cHJpbyA8PCBWTEFOX1BSSU9fU0hJRlQ7Ci0JUUVERl9JTkZPKCYocWVkZi0+ZGJnX2N0eCksIFFFREZfTE9HX0RJU0MsICJTZXR0aW5nIHZsYW5faWQ9JTA0eCAiCi0JCSAgICJwcmlvPSVkLlxuIiwgdmxhbl9pZCwgcWVkZi0+cHJpbyk7CisJaW50IHZsYW5faWRfdG1wID0gMDsKKworCXZsYW5faWRfdG1wID0gdmxhbl9pZCAgfCAocWVkZi0+cHJpbyA8PCBWTEFOX1BSSU9fU0hJRlQpOworCXFlZGYtPnZsYW5faWQgPSB2bGFuX2lkX3RtcDsKKwlRRURGX0lORk8oJnFlZGYtPmRiZ19jdHgsIFFFREZfTE9HX0RJU0MsCisJCSAgIlNldHRpbmcgdmxhbl9pZD0weCUwNHggcHJpbz0lZC5cbiIsCisJCSAgdmxhbl9pZF90bXAsIHFlZGYtPnByaW8pOwogfQogCiAvKiBSZXR1cm5zIHRydWUgaWYgd2UgaGF2ZSBhIHZhbGlkIHZsYW4sIGZhbHNlIG90aGVyd2lzZSAqLwogc3RhdGljIGJvb2wgcWVkZl9pbml0aWF0ZV9maXB2bGFuX3JlcShzdHJ1Y3QgcWVkZl9jdHggKnFlZGYpCiB7Ci0JaW50IHJjOwogCiAJd2hpbGUgKHFlZGYtPmZpcHZsYW5fcmV0cmllcy0tKSB7CiAJCS8qIFRoaXMgaXMgdG8gY2F0Y2ggaWYgbGluayBnb2VzIGRvd24gZHVyaW5nIGZpcHZsYW4gcmV0cmllcyAqLwpAQCAtMTI4LDIwICsxMzEsMjUgQEAgc3RhdGljIGJvb2wgcWVkZl9pbml0aWF0ZV9maXB2bGFuX3JlcShzdHJ1Y3QgcWVkZl9jdHggKnFlZGYpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAotCQlpZiAocWVkZi0+dmxhbl9pZCA+IDApCisJCWlmICh0ZXN0X2JpdChRRURGX1VOTE9BRElORywgJnFlZGYtPmZsYWdzKSkgeworCQkJUUVERl9FUlIoJnFlZGYtPmRiZ19jdHgsICJEcml2ZXIgdW5sb2FkaW5nLlxuIik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQlpZiAocWVkZi0+dmxhbl9pZCA+IDApIHsKKwkJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfRElTQywKKwkJCQkgICJ2bGFuID0gMHgleCBhbHJlYWR5IHNldCwgY2FsbGluZyBjdGxyX2xpbmtfdXAuXG4iLAorCQkJCSAgcWVkZi0+dmxhbl9pZCk7CisJCQlpZiAoYXRvbWljX3JlYWQoJnFlZGYtPmxpbmtfc3RhdGUpID09IFFFREZfTElOS19VUCkKKwkJCQlmY29lX2N0bHJfbGlua191cCgmcWVkZi0+Y3Rscik7CiAJCQlyZXR1cm4gdHJ1ZTsKKwkJfQogCiAJCVFFREZfSU5GTygmKHFlZGYtPmRiZ19jdHgpLCBRRURGX0xPR19ESVNDLAogCQkJICAgIlJldHJ5ICVkLlxuIiwgcWVkZi0+Zmlwdmxhbl9yZXRyaWVzKTsKIAkJaW5pdF9jb21wbGV0aW9uKCZxZWRmLT5maXB2bGFuX2NvbXBsKTsKIAkJcWVkZl9mY29lX3NlbmRfdmxhbl9yZXEocWVkZik7Ci0JCXJjID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZxZWRmLT5maXB2bGFuX2NvbXBsLAotCQkgICAgMSAqIEhaKTsKLQkJaWYgKHJjID4gMCAmJgotCQkgICAgKGF0b21pY19yZWFkKCZxZWRmLT5saW5rX3N0YXRlKSA9PSBRRURGX0xJTktfVVApKSB7Ci0JCQlmY29lX2N0bHJfbGlua191cCgmcWVkZi0+Y3Rscik7Ci0JCQlyZXR1cm4gdHJ1ZTsKLQkJfQorCQl3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJnFlZGYtPmZpcHZsYW5fY29tcGwsIDEgKiBIWik7CiAJfQogCiAJcmV0dXJuIGZhbHNlOwpAQCAtMTYyLDYgKzE3MCw4IEBAIHN0YXRpYyB2b2lkIHFlZGZfaGFuZGxlX2xpbmtfdXBkYXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJCXJldHVybjsKIAogCQlpZiAoYXRvbWljX3JlYWQoJnFlZGYtPmxpbmtfc3RhdGUpICE9IFFFREZfTElOS19VUCkgeworCQkJUUVERl9JTkZPKCZxZWRmLT5kYmdfY3R4LCBRRURGX0xPR19ESVNDLAorCQkJCSAgIkxpbmsgaXMgZG93biwgcmVzZXR0aW5nIHZsYW5faWQuXG4iKTsKIAkJCXFlZGYtPnZsYW5faWQgPSAwOwogCQkJcmV0dXJuOwogCQl9CkBAIC0zMTEsOCArMzIxLDEwIEBAIGludCBxZWRmX3NlbmRfZmxvZ2koc3RydWN0IHFlZGZfY3R4ICpxZWRmKQogCiAJbHBvcnQgPSBxZWRmLT5scG9ydDsKIAotCWlmICghbHBvcnQtPnR0LmVsc2N0X3NlbmQpCisJaWYgKCFscG9ydC0+dHQuZWxzY3Rfc2VuZCkgeworCQlRRURGX0VSUigmcWVkZi0+ZGJnX2N0eCwgInR0LmVsc2N0X3NlbmQgbm90IHNldC5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKIAlmcCA9IGZjX2ZyYW1lX2FsbG9jKGxwb3J0LCBzaXplb2Yoc3RydWN0IGZjX2Vsc19mbG9naSkpOwogCWlmICghZnApIHsKQEAgLTMzMCwxMSArMzQyLDYgQEAgaW50IHFlZGZfc2VuZF9mbG9naShzdHJ1Y3QgcWVkZl9jdHggKnFlZGYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0cnVjdCBxZWRmX3RtcF9yZGF0YV9pdGVtIHsKLQlzdHJ1Y3QgZmNfcnBvcnRfcHJpdiAqcmRhdGE7Ci0Jc3RydWN0IGxpc3RfaGVhZCBsaXN0OwotfTsKLQogLyoKICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGlmIGxpbmtfZG93bl90bW8gaXMgaW4gdXNlLiAgSWYgd2UgZ2V0IGEgbGluayB1cCBhbmQKICAqIGxpbmtfZG93bl90bW8gaGFzIG5vdCBleHBpcmVkIHRoZW4gdXNlIGp1c3QgRkxPR0kvQURJU0MgdG8gcmVjb3ZlciBvdXIKQEAgLTM0NCw5ICszNTEsOCBAQCBzdGF0aWMgdm9pZCBxZWRmX2xpbmtfcmVjb3Zlcnkoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBxZWRmX2N0eCAqcWVkZiA9CiAJICAgIGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcWVkZl9jdHgsIGxpbmtfcmVjb3Zlcnkud29yayk7Ci0Jc3RydWN0IHFlZGZfcnBvcnQgKmZjcG9ydDsKKwlzdHJ1Y3QgZmNfbHBvcnQgKmxwb3J0ID0gcWVkZi0+bHBvcnQ7CiAJc3RydWN0IGZjX3Jwb3J0X3ByaXYgKnJkYXRhOwotCXN0cnVjdCBxZWRmX3RtcF9yZGF0YV9pdGVtICpyZGF0YV9pdGVtLCAqdG1wX3JkYXRhX2l0ZW07CiAJYm9vbCByYzsKIAlpbnQgcmV0cmllcyA9IDMwOwogCWludCBydmFsLCBpOwpAQCAtNDEzLDMzICs0MTksMTQgQEAgc3RhdGljIHZvaWQgcWVkZl9saW5rX3JlY292ZXJ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkgKiBDYWxsIGxwb3J0LT50dC5ycG9ydF9sb2dpbiB3aGljaCB3aWxsIGNhdXNlIGxpYmZjIHRvIHNlbmQgYW4KIAkgKiBBRElTQyBzaW5jZSB0aGUgcnBvcnQgaXMgaW4gc3RhdGUgcmVhZHkuCiAJICovCi0JcmN1X3JlYWRfbG9jaygpOwotCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGZjcG9ydCwgJnFlZGYtPmZjcG9ydHMsIHBlZXJzKSB7Ci0JCXJkYXRhID0gZmNwb3J0LT5yZGF0YTsKLQkJaWYgKHJkYXRhID09IE5VTEwpCi0JCQljb250aW51ZTsKLQkJcmRhdGFfaXRlbSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBxZWRmX3RtcF9yZGF0YV9pdGVtKSwKLQkJICAgIEdGUF9BVE9NSUMpOwotCQlpZiAoIXJkYXRhX2l0ZW0pCi0JCQljb250aW51ZTsKKwltdXRleF9sb2NrKCZscG9ydC0+ZGlzYy5kaXNjX211dGV4KTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShyZGF0YSwgJmxwb3J0LT5kaXNjLnJwb3J0cywgcGVlcnMpIHsKIAkJaWYgKGtyZWZfZ2V0X3VubGVzc196ZXJvKCZyZGF0YS0+a3JlZikpIHsKLQkJCXJkYXRhX2l0ZW0tPnJkYXRhID0gcmRhdGE7Ci0JCQlsaXN0X2FkZCgmcmRhdGFfaXRlbS0+bGlzdCwgJnJkYXRhX2xvZ2luX2xpc3QpOwotCQl9IGVsc2UKLQkJCWtmcmVlKHJkYXRhX2l0ZW0pOworCQkJZmNfcnBvcnRfbG9naW4ocmRhdGEpOworCQkJa3JlZl9wdXQoJnJkYXRhLT5rcmVmLCBmY19ycG9ydF9kZXN0cm95KTsKKwkJfQogCX0KLQlyY3VfcmVhZF91bmxvY2soKTsKLQkvKgotCSAqIERvIHRoZSBmY19ycG9ydF9sb2dpbiBvdXRzaWRlIG9mIHRoZSByY3UgbG9jayBzbyB3ZSBkb24ndCB0YWtlIGEKLQkgKiBtdXRleCBpbiBhbiBhdG9taWMgY29udGV4dC4KLQkgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmRhdGFfaXRlbSwgdG1wX3JkYXRhX2l0ZW0sICZyZGF0YV9sb2dpbl9saXN0LAotCSAgICBsaXN0KSB7Ci0JCWxpc3RfZGVsKCZyZGF0YV9pdGVtLT5saXN0KTsKLQkJZmNfcnBvcnRfbG9naW4ocmRhdGFfaXRlbS0+cmRhdGEpOwotCQlrcmVmX3B1dCgmcmRhdGFfaXRlbS0+cmRhdGEtPmtyZWYsIGZjX3Jwb3J0X2Rlc3Ryb3kpOwotCQlrZnJlZShyZGF0YV9pdGVtKTsKLQl9CisJbXV0ZXhfdW5sb2NrKCZscG9ydC0+ZGlzYy5kaXNjX211dGV4KTsKIH0KIAogc3RhdGljIHZvaWQgcWVkZl91cGRhdGVfbGlua19zcGVlZChzdHJ1Y3QgcWVkZl9jdHggKnFlZGYsCkBAIC00NjcsNiArNDU0LDkgQEAgc3RhdGljIHZvaWQgcWVkZl91cGRhdGVfbGlua19zcGVlZChzdHJ1Y3QgcWVkZl9jdHggKnFlZGYsCiAJY2FzZSAxMDAwMDA6CiAJCWxwb3J0LT5saW5rX3NwZWVkID0gRkNfUE9SVFNQRUVEXzEwMEdCSVQ7CiAJCWJyZWFrOworCWNhc2UgMjAwMDA6CisJCWxwb3J0LT5saW5rX3NwZWVkID0gRkNfUE9SVFNQRUVEXzIwR0JJVDsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJbHBvcnQtPmxpbmtfc3BlZWQgPSBGQ19QT1JUU1BFRURfVU5LTk9XTjsKIAkJYnJlYWs7CkBAIC00NzYsMTYgKzQ2Niw0MCBAQCBzdGF0aWMgdm9pZCBxZWRmX3VwZGF0ZV9saW5rX3NwZWVkKHN0cnVjdCBxZWRmX2N0eCAqcWVkZiwKIAkgKiBTZXQgc3VwcG9ydGVkIGxpbmsgc3BlZWQgYnkgcXVlcnlpbmcgdGhlIHN1cHBvcnRlZAogCSAqIGNhcGFiaWxpdGllcyBvZiB0aGUgbGluay4KIAkgKi8KLQlpZiAobGluay0+c3VwcG9ydGVkX2NhcHMgJiBTVVBQT1JURURfMTAwMDBiYXNlS1JfRnVsbCkKKwlpZiAoKGxpbmstPnN1cHBvcnRlZF9jYXBzICYgUUVEX0xNXzEwMDAwYmFzZVRfRnVsbF9CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV8xMDAwMGJhc2VLWDRfRnVsbF9CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV8xMDAwMGJhc2VSX0ZFQ19CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV8xMDAwMGJhc2VDUl9GdWxsX0JJVCkgfHwKKwkgICAgKGxpbmstPnN1cHBvcnRlZF9jYXBzICYgUUVEX0xNXzEwMDAwYmFzZVNSX0Z1bGxfQklUKSB8fAorCSAgICAobGluay0+c3VwcG9ydGVkX2NhcHMgJiBRRURfTE1fMTAwMDBiYXNlTFJfRnVsbF9CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV8xMDAwMGJhc2VMUk1fRnVsbF9CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV8xMDAwMGJhc2VLUl9GdWxsX0JJVCkpIHsKIAkJbHBvcnQtPmxpbmtfc3VwcG9ydGVkX3NwZWVkcyB8PSBGQ19QT1JUU1BFRURfMTBHQklUOwotCWlmIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFNVUFBPUlRFRF8yNTAwMGJhc2VLUl9GdWxsKQorCX0KKwlpZiAoKGxpbmstPnN1cHBvcnRlZF9jYXBzICYgUUVEX0xNXzI1MDAwYmFzZUtSX0Z1bGxfQklUKSB8fAorCSAgICAobGluay0+c3VwcG9ydGVkX2NhcHMgJiBRRURfTE1fMjUwMDBiYXNlQ1JfRnVsbF9CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV8yNTAwMGJhc2VTUl9GdWxsX0JJVCkpIHsKIAkJbHBvcnQtPmxpbmtfc3VwcG9ydGVkX3NwZWVkcyB8PSBGQ19QT1JUU1BFRURfMjVHQklUOwotCWlmIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFNVUFBPUlRFRF80MDAwMGJhc2VMUjRfRnVsbCkKKwl9CisJaWYgKChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV80MDAwMGJhc2VMUjRfRnVsbF9CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV80MDAwMGJhc2VLUjRfRnVsbF9CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV80MDAwMGJhc2VDUjRfRnVsbF9CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV80MDAwMGJhc2VTUjRfRnVsbF9CSVQpKSB7CiAJCWxwb3J0LT5saW5rX3N1cHBvcnRlZF9zcGVlZHMgfD0gRkNfUE9SVFNQRUVEXzQwR0JJVDsKLQlpZiAobGluay0+c3VwcG9ydGVkX2NhcHMgJiBTVVBQT1JURURfNTAwMDBiYXNlS1IyX0Z1bGwpCisJfQorCWlmICgobGluay0+c3VwcG9ydGVkX2NhcHMgJiBRRURfTE1fNTAwMDBiYXNlS1IyX0Z1bGxfQklUKSB8fAorCSAgICAobGluay0+c3VwcG9ydGVkX2NhcHMgJiBRRURfTE1fNTAwMDBiYXNlQ1IyX0Z1bGxfQklUKSB8fAorCSAgICAobGluay0+c3VwcG9ydGVkX2NhcHMgJiBRRURfTE1fNTAwMDBiYXNlU1IyX0Z1bGxfQklUKSkgewogCQlscG9ydC0+bGlua19zdXBwb3J0ZWRfc3BlZWRzIHw9IEZDX1BPUlRTUEVFRF81MEdCSVQ7Ci0JaWYgKGxpbmstPnN1cHBvcnRlZF9jYXBzICYgU1VQUE9SVEVEXzEwMDAwMGJhc2VLUjRfRnVsbCkKKwl9CisJaWYgKChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV8xMDAwMDBiYXNlS1I0X0Z1bGxfQklUKSB8fAorCSAgICAobGluay0+c3VwcG9ydGVkX2NhcHMgJiBRRURfTE1fMTAwMDAwYmFzZVNSNF9GdWxsX0JJVCkgfHwKKwkgICAgKGxpbmstPnN1cHBvcnRlZF9jYXBzICYgUUVEX0xNXzEwMDAwMGJhc2VDUjRfRnVsbF9CSVQpIHx8CisJICAgIChsaW5rLT5zdXBwb3J0ZWRfY2FwcyAmIFFFRF9MTV8xMDAwMDBiYXNlTFI0X0VSNF9GdWxsX0JJVCkpIHsKIAkJbHBvcnQtPmxpbmtfc3VwcG9ydGVkX3NwZWVkcyB8PSBGQ19QT1JUU1BFRURfMTAwR0JJVDsKKwl9CisJaWYgKGxpbmstPnN1cHBvcnRlZF9jYXBzICYgUUVEX0xNXzIwMDAwYmFzZUtSMl9GdWxsX0JJVCkKKwkJbHBvcnQtPmxpbmtfc3VwcG9ydGVkX3NwZWVkcyB8PSBGQ19QT1JUU1BFRURfMjBHQklUOwogCWZjX2hvc3Rfc3VwcG9ydGVkX3NwZWVkcyhscG9ydC0+aG9zdCkgPSBscG9ydC0+bGlua19zdXBwb3J0ZWRfc3BlZWRzOwogfQogCkBAIC00OTMsNiArNTA3LDE2IEBAIHN0YXRpYyB2b2lkIHFlZGZfbGlua191cGRhdGUodm9pZCAqZGV2LCBzdHJ1Y3QgcWVkX2xpbmtfb3V0cHV0ICpsaW5rKQogewogCXN0cnVjdCBxZWRmX2N0eCAqcWVkZiA9IChzdHJ1Y3QgcWVkZl9jdHggKilkZXY7CiAKKwkvKgorCSAqIFByZXZlbnQgcmFjZSB3aGVyZSB3ZSdyZSByZW1vdmluZyB0aGUgbW9kdWxlIGFuZCB3ZSBnZXQgbGluayB1cGRhdGUKKwkgKiBmb3IgcWVkLgorCSAqLworCWlmICh0ZXN0X2JpdChRRURGX1VOTE9BRElORywgJnFlZGYtPmZsYWdzKSkgeworCQlRRURGX0VSUigmcWVkZi0+ZGJnX2N0eCwKKwkJCSAiSWdub3JlIGxpbmsgdXBkYXRlLCBkcml2ZXIgZ2V0dGluZyB1bmxvYWQuXG4iKTsKKwkJcmV0dXJuOworCX0KKwogCWlmIChsaW5rLT5saW5rX3VwKSB7CiAJCWlmIChhdG9taWNfcmVhZCgmcWVkZi0+bGlua19zdGF0ZSkgPT0gUUVERl9MSU5LX1VQKSB7CiAJCQlRRURGX0lORk8oKCZxZWRmLT5kYmdfY3R4KSwgUUVERl9MT0dfRElTQywKQEAgLTIzNDAsMTIgKzIzNjQsMTQgQEAgc3RhdGljIHZvaWQgcWVkZl9yZWN2X2ZyYW1lKHN0cnVjdCBxZWRmX2N0eCAqcWVkZiwKIAlmcl9kZXYoZnApID0gbHBvcnQ7CiAJZnJfc29mKGZwKSA9IGhwLT5mY29lX3NvZjsKIAlpZiAoc2tiX2NvcHlfYml0cyhza2IsIGZyX2xlbiwgJmNyY19lb2YsIHNpemVvZihjcmNfZW9mKSkpIHsKKwkJUUVERl9JTkZPKE5VTEwsIFFFREZfTE9HX0xMMiwgInNrYl9jb3B5X2JpdHMgZmFpbGVkLlxuIik7CiAJCWtmcmVlX3NrYihza2IpOwogCQlyZXR1cm47CiAJfQogCWZyX2VvZihmcCkgPSBjcmNfZW9mLmZjb2VfZW9mOwogCWZyX2NyYyhmcCkgPSBjcmNfZW9mLmZjb2VfY3JjMzI7CiAJaWYgKHBza2JfdHJpbShza2IsIGZyX2xlbikpIHsKKwkJUUVERl9JTkZPKE5VTEwsIFFFREZfTE9HX0xMMiwgInBza2JfdHJpbSBmYWlsZWQuXG4iKTsKIAkJa2ZyZWVfc2tiKHNrYik7CiAJCXJldHVybjsKIAl9CkBAIC0yNDA2LDkgKzI0MzIsOSBAQCBzdGF0aWMgdm9pZCBxZWRmX3JlY3ZfZnJhbWUoc3RydWN0IHFlZGZfY3R4ICpxZWRmLAogCSAqIGVtcHR5IHRoZW4gdGhpcyBpcyBub3QgYWRkcmVzc2VkIHRvIG91ciBwb3J0IHNvIHNpbXBseSBkcm9wIGl0LgogCSAqLwogCWlmIChscG9ydC0+cG9ydF9pZCAhPSBudG9oMjQoZmgtPmZoX2RfaWQpICYmICF2bl9wb3J0KSB7Ci0JCVFFREZfSU5GTygmKHFlZGYtPmRiZ19jdHgpLCBRRURGX0xPR19MTDIsCi0JCSAgICAiRHJvcHBpbmcgZnJhbWUgZHVlIHRvIGRlc3RpbmF0aW9uIG1pc21hdGNoOiBscG9ydC0+cG9ydF9pZD0leCBmaC0+ZF9pZD0leC5cbiIsCi0JCSAgICBscG9ydC0+cG9ydF9pZCwgbnRvaDI0KGZoLT5maF9kX2lkKSk7CisJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfTEwyLAorCQkJICAiRHJvcHBpbmcgZnJhbWUgZHVlIHRvIGRlc3RpbmF0aW9uIG1pc21hdGNoOiBscG9ydC0+cG9ydF9pZD0weCV4IGZoLT5kX2lkPTB4JXguXG4iLAorCQkJICBscG9ydC0+cG9ydF9pZCwgbnRvaDI0KGZoLT5maF9kX2lkKSk7CiAJCWtmcmVlX3NrYihza2IpOwogCQlyZXR1cm47CiAJfQpAQCAtMjQxNyw2ICsyNDQzLDggQEAgc3RhdGljIHZvaWQgcWVkZl9yZWN2X2ZyYW1lKHN0cnVjdCBxZWRmX2N0eCAqcWVkZiwKIAlpZiAoKGZoLT5maF90eXBlID09IEZDX1RZUEVfQkxTKSAmJiAoZl9jdGwgJiBGQ19GQ19TRVFfQ1RYKSAmJgogCSAgICAoZl9jdGwgJiBGQ19GQ19FWF9DVFgpKSB7CiAJCS8qIERyb3AgaW5jb21pbmcgQUJUUyByZXNwb25zZSB0aGF0IGhhcyBib3RoIFNFUS9FWCBDVFggc2V0ICovCisJCVFFREZfSU5GTygmcWVkZi0+ZGJnX2N0eCwgUUVERl9MT0dfTEwyLAorCQkJICAiRHJvcHBpbmcgQUJUUyByZXNwb25zZSBhcyBib3RoIFNFUS9FWCBDVFggc2V0LlxuIik7CiAJCWtmcmVlX3NrYihza2IpOwogCQlyZXR1cm47CiAJfQpAQCAtMjU2MCw4ICsyNTg4LDkgQEAgc3RhdGljIGludCBxZWRmX2FsbG9jX2FuZF9pbml0X3NiKHN0cnVjdCBxZWRmX2N0eCAqcWVkZiwKIAkgICAgc2l6ZW9mKHN0cnVjdCBzdGF0dXNfYmxvY2tfZTQpLCAmc2JfcGh5cywgR0ZQX0tFUk5FTCk7CiAKIAlpZiAoIXNiX3ZpcnQpIHsKLQkJUUVERl9FUlIoJihxZWRmLT5kYmdfY3R4KSwgIlN0YXR1cyBibG9jayBhbGxvY2F0aW9uIGZhaWxlZCAiCi0JCQkgICJmb3IgaWQgPSAlZC5cbiIsIHNiX2lkKTsKKwkJUUVERl9FUlIoJnFlZGYtPmRiZ19jdHgsCisJCQkgIlN0YXR1cyBibG9jayBhbGxvY2F0aW9uIGZhaWxlZCBmb3IgaWQgPSAlZC5cbiIsCisJCQkgc2JfaWQpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKQEAgLTI1NjksOCArMjU5OCw5IEBAIHN0YXRpYyBpbnQgcWVkZl9hbGxvY19hbmRfaW5pdF9zYihzdHJ1Y3QgcWVkZl9jdHggKnFlZGYsCiAJICAgIHNiX2lkLCBRRURfU0JfVFlQRV9TVE9SQUdFKTsKIAogCWlmIChyZXQpIHsKLQkJUUVERl9FUlIoJihxZWRmLT5kYmdfY3R4KSwgIlN0YXR1cyBibG9jayBpbml0aWFsaXphdGlvbiAiCi0JCQkgICJmYWlsZWQgZm9yIGlkID0gJWQuXG4iLCBzYl9pZCk7CisJCVFFREZfRVJSKCZxZWRmLT5kYmdfY3R4LAorCQkJICJTdGF0dXMgYmxvY2sgaW5pdGlhbGl6YXRpb24gZmFpbGVkICgweCV4KSBmb3IgaWQgPSAlZC5cbiIsCisJCQkgcmV0LCBzYl9pZCk7CiAJCXJldHVybiByZXQ7CiAJfQogCkBAIC0yNjU0LDEzICsyNjg0LDE4IEBAIHZvaWQgcWVkZl9wcm9jZXNzX2NxZShzdHJ1Y3QgcWVkZl9jdHggKnFlZGYsIHN0cnVjdCBmY29lX2NxZSAqY3FlKQogCWlvX3JlcSA9ICZxZWRmLT5jbWRfbWdyLT5jbWRzW3hpZF07CiAKIAkvKiBDb21wbGV0aW9uIG5vdCBmb3IgYSB2YWxpZCBJL08gYW55bW9yZSBzbyBqdXN0IHJldHVybiAqLwotCWlmICghaW9fcmVxKQorCWlmICghaW9fcmVxKSB7CisJCVFFREZfRVJSKCZxZWRmLT5kYmdfY3R4LAorCQkJICJpb19yZXEgaXMgTlVMTCBmb3IgeGlkPTB4JXguXG4iLCB4aWQpOwogCQlyZXR1cm47CisJfQogCiAJZmNwb3J0ID0gaW9fcmVxLT5mY3BvcnQ7CiAKIAlpZiAoZmNwb3J0ID09IE5VTEwpIHsKLQkJUUVERl9FUlIoJihxZWRmLT5kYmdfY3R4KSwgImZjcG9ydCBpcyBOVUxMLlxuIik7CisJCVFFREZfRVJSKCZxZWRmLT5kYmdfY3R4LAorCQkJICJmY3BvcnQgaXMgTlVMTCBmb3IgeGlkPTB4JXggaW9fcmVxPSVwLlxuIiwKKwkJCSB4aWQsIGlvX3JlcSk7CiAJCXJldHVybjsKIAl9CiAKQEAgLTI2NjksNyArMjcwNCw4IEBAIHZvaWQgcWVkZl9wcm9jZXNzX2NxZShzdHJ1Y3QgcWVkZl9jdHggKnFlZGYsIHN0cnVjdCBmY29lX2NxZSAqY3FlKQogCSAqIGlzbid0IHZhbGlkIGFuZCBzaG91bGRuJ3QgYmUgdGFrZW4uIFdlIHNob3VsZCBqdXN0IHJldHVybi4KIAkgKi8KIAlpZiAoIXRlc3RfYml0KFFFREZfUlBPUlRfU0VTU0lPTl9SRUFEWSwgJmZjcG9ydC0+ZmxhZ3MpKSB7Ci0JCVFFREZfRVJSKCYocWVkZi0+ZGJnX2N0eCksICJTZXNzaW9uIG5vdCBvZmZsb2FkZWQgeWV0LlxuIik7CisJCVFFREZfRVJSKCZxZWRmLT5kYmdfY3R4LAorCQkJICJTZXNzaW9uIG5vdCBvZmZsb2FkZWQgeWV0LCBmY3BvcnQgPSAlcC5cbiIsIGZjcG9ydCk7CiAJCXJldHVybjsKIAl9CiAKQEAgLTI4ODEsNiArMjkxNyw3IEBAIHN0YXRpYyBpbnQgcWVkZl9hbGxvY19nbG9iYWxfcXVldWVzKHN0cnVjdCBxZWRmX2N0eCAqcWVkZikKIAkgKi8KIAlpZiAoIXFlZGYtPnBfY3B1cSkgewogCQlzdGF0dXMgPSAxOworCQlRRURGX0VSUigmcWVkZi0+ZGJnX2N0eCwgInBfY3B1cSBpcyBOVUxMLlxuIik7CiAJCWdvdG8gbWVtX2FsbG9jX2ZhaWx1cmU7CiAJfQogCkBAIC0yODk2LDggKzI5MzMsMTAgQEAgc3RhdGljIGludCBxZWRmX2FsbG9jX2dsb2JhbF9xdWV1ZXMoc3RydWN0IHFlZGZfY3R4ICpxZWRmKQogCiAJLyogQWxsb2NhdGUgRE1BIGNvaGVyZW50IGJ1ZmZlcnMgZm9yIEJEUSAqLwogCXJjID0gcWVkZl9hbGxvY19iZHEocWVkZik7Ci0JaWYgKHJjKQorCWlmIChyYykgeworCQlRRURGX0VSUigmcWVkZi0+ZGJnX2N0eCwgIlVuYWJsZSB0byBhbGxvY2F0ZSBiZHEuXG4iKTsKIAkJZ290byBtZW1fYWxsb2NfZmFpbHVyZTsKKwl9CiAKIAkvKiBBbGxvY2F0ZSBhIENRIGFuZCBhbiBhc3NvY2lhdGVkIFBCTCBmb3IgZWFjaCBNU0ktWCB2ZWN0b3IgKi8KIAlmb3IgKGkgPSAwOyBpIDwgcWVkZi0+bnVtX3F1ZXVlczsgaSsrKSB7CkBAIC0zMTA3LDYgKzMxNDYsNyBAQCBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgcWVkZl9wY2lfZHJpdmVyID0gewogCS5pZF90YWJsZSA9IHFlZGZfcGNpX3RibCwKIAkucHJvYmUgPSBxZWRmX3Byb2JlLAogCS5yZW1vdmUgPSBxZWRmX3JlbW92ZSwKKwkuc2h1dGRvd24gPSBxZWRmX3NodXRkb3duLAogfTsKIAogc3RhdGljIGludCBfX3FlZGZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBtb2RlKQpAQCAtMzIwOSw2ICszMjQ5LDcgQEAgc3RhdGljIGludCBfX3FlZGZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBtb2RlKQogCXFlZF9wYXJhbXMuaXNfdmYgPSBpc192ZjsKIAlxZWRmLT5jZGV2ID0gcWVkX29wcy0+Y29tbW9uLT5wcm9iZShwZGV2LCAmcWVkX3BhcmFtcyk7CiAJaWYgKCFxZWRmLT5jZGV2KSB7CisJCVFFREZfRVJSKCZxZWRmLT5kYmdfY3R4LCAiY29tbW9uIHByb2JlIGZhaWxlZC5cbiIpOwogCQlyYyA9IC1FTk9ERVY7CiAJCWdvdG8gZXJyMTsKIAl9CkBAIC0zMjc3LDggKzMzMTgsMTAgQEAgc3RhdGljIGludCBfX3FlZGZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBtb2RlKQogCiAJLyogU2V0dXAgaW50ZXJydXB0cyAqLwogCXJjID0gcWVkZl9zZXR1cF9pbnQocWVkZik7Ci0JaWYgKHJjKQorCWlmIChyYykgeworCQlRRURGX0VSUigmcWVkZi0+ZGJnX2N0eCwgIlNldHVwIGludGVycnVwdHMgZmFpbGVkLlxuIik7CiAJCWdvdG8gZXJyMzsKKwl9CiAKIAlyYyA9IHFlZF9vcHMtPnN0YXJ0KHFlZGYtPmNkZXYsICZxZWRmLT50YXNrcyk7CiAJaWYgKHJjKSB7CkBAIC0zMzYwLDcgKzM0MDMsNyBAQCBzdGF0aWMgaW50IF9fcWVkZl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG1vZGUpCiAJfQogCiAJbWVtc2V0KCZwYXJhbXMsIDAsIHNpemVvZihwYXJhbXMpKTsKLQlwYXJhbXMubXR1ID0gOTAwMDsKKwlwYXJhbXMubXR1ID0gUUVERl9MTDJfQlVGX1NJWkU7CiAJZXRoZXJfYWRkcl9jb3B5KHBhcmFtcy5sbDJfbWFjX2FkZHJlc3MsIHFlZGYtPm1hYyk7CiAKIAkvKiBTdGFydCBMTDIgcHJvY2Vzc2luZyB0aHJlYWQgKi8KQEAgLTM3MTksNiArMzc2MiwxMSBAQCB2b2lkIHFlZGZfZ2V0X3Byb3RvY29sX3Rsdl9kYXRhKHZvaWQgKmRldiwgdm9pZCAqZGF0YSkKIAlmY29lLT5zY3NpX3Rza19mdWxsID0gcWVkZi0+dGFza19zZXRfZnVsbHM7CiB9CiAKK3N0YXRpYyB2b2lkIHFlZGZfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisJX19xZWRmX3JlbW92ZShwZGV2LCBRRURGX01PREVfTk9STUFMKTsKK30KKwogLyogR2VuZXJpYyBUTFYgZGF0YSBjYWxsYmFjayAqLwogdm9pZCBxZWRmX2dldF9nZW5lcmljX3Rsdl9kYXRhKHZvaWQgKmRldiwgc3RydWN0IHFlZF9nZW5lcmljX3RsdnMgKmRhdGEpCiB7CkBAIC0zODQ1LDcgKzM4OTMsNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgcWVkZl9jbGVhbnVwKHZvaWQpCiB9CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLU1PRFVMRV9ERVNDUklQVElPTigiUUxvZ2ljIFFFREYgMjUvNDAvNTAvMTAwR2IgRkNvRSBEcml2ZXIiKTsKK01PRFVMRV9ERVNDUklQVElPTigiUUxvZ2ljIEZhc3RMaW5RIDR4eHh4IEZDb0UgTW9kdWxlIik7CiBNT0RVTEVfQVVUSE9SKCJRTG9naWMgQ29ycG9yYXRpb24iKTsKIE1PRFVMRV9WRVJTSU9OKFFFREZfVkVSU0lPTik7CiBtb2R1bGVfaW5pdChxZWRmX2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FlZGYvcWVkZl92ZXJzaW9uLmggYi9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmX3ZlcnNpb24uaAppbmRleCBlNTc1MzNkLi5iMGUzN2FmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmX3ZlcnNpb24uaAorKysgYi9kcml2ZXJzL3Njc2kvcWVkZi9xZWRmX3ZlcnNpb24uaApAQCAtNCw5ICs0LDkgQEAKICAqICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAxOCBDYXZpdW0gSW5jLgogICovCiAKLSNkZWZpbmUgUUVERl9WRVJTSU9OCQkiOC4zNy4yNS4yMCIKKyNkZWZpbmUgUUVERl9WRVJTSU9OCQkiOC40Mi4zLjAiCiAjZGVmaW5lIFFFREZfRFJJVkVSX01BSk9SX1ZFUgkJOAotI2RlZmluZSBRRURGX0RSSVZFUl9NSU5PUl9WRVIJCTM3Ci0jZGVmaW5lIFFFREZfRFJJVkVSX1JFVl9WRVIJCTI1Ci0jZGVmaW5lIFFFREZfRFJJVkVSX0VOR19WRVIJCTIwCisjZGVmaW5lIFFFREZfRFJJVkVSX01JTk9SX1ZFUgkJNDIKKyNkZWZpbmUgUUVERl9EUklWRVJfUkVWX1ZFUgkJMworI2RlZmluZSBRRURGX0RSSVZFUl9FTkdfVkVSCQkwCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9hdHRyLmMgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfYXR0ci5jCmluZGV4IDZiN2IzOTAuLjgxOTBjMmEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfYXR0ci5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9hdHRyLmMKQEAgLTM4Miw3ICszODIsNyBAQCBxbGEyeDAwX3N5c2ZzX3dyaXRlX29wdHJvbV9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQloYS0+b3B0cm9tX3JlZ2lvbl9zaXplID0gc2l6ZTsKIAogCQloYS0+b3B0cm9tX3N0YXRlID0gUUxBX1NSRUFESU5HOwotCQloYS0+b3B0cm9tX2J1ZmZlciA9IHZtYWxsb2MoaGEtPm9wdHJvbV9yZWdpb25fc2l6ZSk7CisJCWhhLT5vcHRyb21fYnVmZmVyID0gdnphbGxvYyhoYS0+b3B0cm9tX3JlZ2lvbl9zaXplKTsKIAkJaWYgKGhhLT5vcHRyb21fYnVmZmVyID09IE5VTEwpIHsKIAkJCXFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweDcwNjIsCiAJCQkgICAgIlVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIG9wdHJvbSByZXRyaWV2YWwgIgpAQCAtNDA0LDcgKzQwNCw2IEBAIHFsYTJ4MDBfc3lzZnNfd3JpdGVfb3B0cm9tX2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCSAgICAiUmVhZGluZyBmbGFzaCByZWdpb24gLS0gMHgleC8weCV4LlxuIiwKIAkJICAgIGhhLT5vcHRyb21fcmVnaW9uX3N0YXJ0LCBoYS0+b3B0cm9tX3JlZ2lvbl9zaXplKTsKIAotCQltZW1zZXQoaGEtPm9wdHJvbV9idWZmZXIsIDAsIGhhLT5vcHRyb21fcmVnaW9uX3NpemUpOwogCQloYS0+aXNwX29wcy0+cmVhZF9vcHRyb20odmhhLCBoYS0+b3B0cm9tX2J1ZmZlciwKIAkJICAgIGhhLT5vcHRyb21fcmVnaW9uX3N0YXJ0LCBoYS0+b3B0cm9tX3JlZ2lvbl9zaXplKTsKIAkJYnJlYWs7CkBAIC00NTcsNyArNDU2LDcgQEAgcWxhMngwMF9zeXNmc193cml0ZV9vcHRyb21fY3RsKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJaGEtPm9wdHJvbV9yZWdpb25fc2l6ZSA9IHNpemU7CiAKIAkJaGEtPm9wdHJvbV9zdGF0ZSA9IFFMQV9TV1JJVElORzsKLQkJaGEtPm9wdHJvbV9idWZmZXIgPSB2bWFsbG9jKGhhLT5vcHRyb21fcmVnaW9uX3NpemUpOworCQloYS0+b3B0cm9tX2J1ZmZlciA9IHZ6YWxsb2MoaGEtPm9wdHJvbV9yZWdpb25fc2l6ZSk7CiAJCWlmIChoYS0+b3B0cm9tX2J1ZmZlciA9PSBOVUxMKSB7CiAJCQlxbF9sb2cocWxfbG9nX3dhcm4sIHZoYSwgMHg3MDY2LAogCQkJICAgICJVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBvcHRyb20gdXBkYXRlICIKQEAgLTQ3Miw3ICs0NzEsNiBAQCBxbGEyeDAwX3N5c2ZzX3dyaXRlX29wdHJvbV9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkgICAgIlN0YWdpbmcgZmxhc2ggcmVnaW9uIHdyaXRlIC0tIDB4JXgvMHgleC5cbiIsCiAJCSAgICBoYS0+b3B0cm9tX3JlZ2lvbl9zdGFydCwgaGEtPm9wdHJvbV9yZWdpb25fc2l6ZSk7CiAKLQkJbWVtc2V0KGhhLT5vcHRyb21fYnVmZmVyLCAwLCBoYS0+b3B0cm9tX3JlZ2lvbl9zaXplKTsKIAkJYnJlYWs7CiAJY2FzZSAzOgogCQlpZiAoaGEtPm9wdHJvbV9zdGF0ZSAhPSBRTEFfU1dSSVRJTkcpIHsKQEAgLTcyNiw3ICs3MjQsOCBAQCBxbGEyeDAwX3N5c2ZzX3dyaXRlX3Jlc2V0KHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJCWJyZWFrOwogCQl9IGVsc2UgewogCQkJLyogTWFrZSBzdXJlIEZDIHNpZGUgaXMgbm90IGluIHJlc2V0ICovCi0JCQlxbGEyeDAwX3dhaXRfZm9yX2hiYV9vbmxpbmUodmhhKTsKKwkJCVdBUk5fT05fT05DRShxbGEyeDAwX3dhaXRfZm9yX2hiYV9vbmxpbmUodmhhKSAhPQorCQkJCSAgICAgUUxBX1NVQ0NFU1MpOwogCiAJCQkvKiBJc3N1ZSBNUEkgcmVzZXQgKi8KIAkJCXNjc2lfYmxvY2tfcmVxdWVzdHModmhhLT5ob3N0KTsKQEAgLTExMjYsNyArMTEyNSw4IEBAIHFsYTJ4MDBfcGNpX2luZm9fc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCWNoYXIgcGNpX2luZm9bMzBdOwogCiAJcmV0dXJuIHNjbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVzXG4iLAotCSAgICB2aGEtPmh3LT5pc3Bfb3BzLT5wY2lfaW5mb19zdHIodmhhLCBwY2lfaW5mbykpOworCQkJIHZoYS0+aHctPmlzcF9vcHMtPnBjaV9pbmZvX3N0cih2aGEsIHBjaV9pbmZvLAorCQkJCQkJCXNpemVvZihwY2lfaW5mbykpKTsKIH0KIAogc3RhdGljIHNzaXplX3QKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ic2cuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ic2cuYwppbmRleCA1NDQxNTU3Li4yOGQ1ODdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfYnNnLmMKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2JzZy5jCkBAIC0xMiwxMCArMTIsOCBAQAogI2luY2x1ZGUgPGxpbnV4L2JzZy1saWIuaD4KIAogLyogQlNHIHN1cHBvcnQgZm9yIEVMUy9DVCBwYXNzIHRocm91Z2ggKi8KLXZvaWQKLXFsYTJ4MDBfYnNnX2pvYl9kb25lKHZvaWQgKnB0ciwgaW50IHJlcykKK3ZvaWQgcWxhMngwMF9ic2dfam9iX2RvbmUoc3JiX3QgKnNwLCBpbnQgcmVzKQogewotCXNyYl90ICpzcCA9IHB0cjsKIAlzdHJ1Y3QgYnNnX2pvYiAqYnNnX2pvYiA9IHNwLT51LmJzZ19qb2I7CiAJc3RydWN0IGZjX2JzZ19yZXBseSAqYnNnX3JlcGx5ID0gYnNnX2pvYi0+cmVwbHk7CiAKQEAgLTI1LDEwICsyMyw4IEBAIHFsYTJ4MDBfYnNnX2pvYl9kb25lKHZvaWQgKnB0ciwgaW50IHJlcykKIAlzcC0+ZnJlZShzcCk7CiB9CiAKLXZvaWQKLXFsYTJ4MDBfYnNnX3NwX2ZyZWUodm9pZCAqcHRyKQordm9pZCBxbGEyeDAwX2JzZ19zcF9mcmVlKHNyYl90ICpzcCkKIHsKLQlzcmJfdCAqc3AgPSBwdHI7CiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHNwLT52aGEtPmh3OwogCXN0cnVjdCBic2dfam9iICpic2dfam9iID0gc3AtPnUuYnNnX2pvYjsKIAlzdHJ1Y3QgZmNfYnNnX3JlcXVlc3QgKmJzZ19yZXF1ZXN0ID0gYnNnX2pvYi0+cmVxdWVzdDsKQEAgLTM0MSw2ICszMzcsOCBAQCBxbGEyeDAwX3Byb2Nlc3NfZWxzKHN0cnVjdCBic2dfam9iICpic2dfam9iKQogCQlkbWFfbWFwX3NnKCZoYS0+cGRldi0+ZGV2LCBic2dfam9iLT5yZXF1ZXN0X3BheWxvYWQuc2dfbGlzdCwKIAkJYnNnX2pvYi0+cmVxdWVzdF9wYXlsb2FkLnNnX2NudCwgRE1BX1RPX0RFVklDRSk7CiAJaWYgKCFyZXFfc2dfY250KSB7CisJCWRtYV91bm1hcF9zZygmaGEtPnBkZXYtPmRldiwgYnNnX2pvYi0+cmVxdWVzdF9wYXlsb2FkLnNnX2xpc3QsCisJCSAgICBic2dfam9iLT5yZXF1ZXN0X3BheWxvYWQuc2dfY250LCBETUFfVE9fREVWSUNFKTsKIAkJcnZhbCA9IC1FTk9NRU07CiAJCWdvdG8gZG9uZV9mcmVlX2ZjcG9ydDsKIAl9CkBAIC0zNDgsNiArMzQ2LDggQEAgcWxhMngwMF9wcm9jZXNzX2VscyhzdHJ1Y3QgYnNnX2pvYiAqYnNnX2pvYikKIAlyc3Bfc2dfY250ID0gZG1hX21hcF9zZygmaGEtPnBkZXYtPmRldiwgYnNnX2pvYi0+cmVwbHlfcGF5bG9hZC5zZ19saXN0LAogCQlic2dfam9iLT5yZXBseV9wYXlsb2FkLnNnX2NudCwgRE1BX0ZST01fREVWSUNFKTsKICAgICAgICAgaWYgKCFyc3Bfc2dfY250KSB7CisJCWRtYV91bm1hcF9zZygmaGEtPnBkZXYtPmRldiwgYnNnX2pvYi0+cmVwbHlfcGF5bG9hZC5zZ19saXN0LAorCQkgICAgYnNnX2pvYi0+cmVwbHlfcGF5bG9hZC5zZ19jbnQsIERNQV9GUk9NX0RFVklDRSk7CiAJCXJ2YWwgPSAtRU5PTUVNOwogCQlnb3RvIGRvbmVfZnJlZV9mY3BvcnQ7CiAJfQpAQCAtMTc3OCw4ICsxNzc4LDggQEAgcWxhMjR4eF9wcm9jZXNzX2JpZGlyX2NtZChzdHJ1Y3QgYnNnX2pvYiAqYnNnX2pvYikKIAl1aW50MTZfdCBuZXh0bGlkID0gMDsKIAl1aW50MzJfdCB0b3RfZHNkczsKIAlzcmJfdCAqc3AgPSBOVUxMOwotCXVpbnQzMl90IHJlcV9kYXRhX2xlbiA9IDA7Ci0JdWludDMyX3QgcnNwX2RhdGFfbGVuID0gMDsKKwl1aW50MzJfdCByZXFfZGF0YV9sZW47CisJdWludDMyX3QgcnNwX2RhdGFfbGVuOwogCiAJLyogQ2hlY2sgdGhlIHR5cGUgb2YgdGhlIGFkYXB0ZXIgKi8KIAlpZiAoIUlTX0JJRElfQ0FQQUJMRShoYSkpIHsKQEAgLTE4ODQsNiArMTg4NCw5IEBAIHFsYTI0eHhfcHJvY2Vzc19iaWRpcl9jbWQoc3RydWN0IGJzZ19qb2IgKmJzZ19qb2IpCiAJCWdvdG8gZG9uZV91bm1hcF9zZzsKIAl9CiAKKwlyZXFfZGF0YV9sZW4gPSBic2dfam9iLT5yZXF1ZXN0X3BheWxvYWQucGF5bG9hZF9sZW47CisJcnNwX2RhdGFfbGVuID0gYnNnX2pvYi0+cmVwbHlfcGF5bG9hZC5wYXlsb2FkX2xlbjsKKwogCWlmIChyZXFfZGF0YV9sZW4gIT0gcnNwX2RhdGFfbGVuKSB7CiAJCXJ2YWwgPSBFWFRfU1RBVFVTX0JVU1k7CiAJCXFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweDcwYWEsCkBAIC0xODkxLDEwICsxODk0LDYgQEAgcWxhMjR4eF9wcm9jZXNzX2JpZGlyX2NtZChzdHJ1Y3QgYnNnX2pvYiAqYnNnX2pvYikKIAkJZ290byBkb25lX3VubWFwX3NnOwogCX0KIAotCXJlcV9kYXRhX2xlbiA9IGJzZ19qb2ItPnJlcXVlc3RfcGF5bG9hZC5wYXlsb2FkX2xlbjsKLQlyc3BfZGF0YV9sZW4gPSBic2dfam9iLT5yZXBseV9wYXlsb2FkLnBheWxvYWRfbGVuOwotCi0KIAkvKiBBbGxvYyBTUkIgc3RydWN0dXJlICovCiAJc3AgPSBxbGEyeDAwX2dldF9zcCh2aGEsICYodmhhLT5iaWRpcl9mY3BvcnQpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNwKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGJnLmMgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGJnLmMKaW5kZXggOWU4MDY0Ni4uMzBhZmM1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RiZy5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kYmcuYwpAQCAtMjc0Myw3ICsyNzQzLDggQEAgcWxfZHVtcF9yZWdzKHVpbnQgbGV2ZWwsIHNjc2lfcWxhX2hvc3RfdCAqdmhhLCB1aW50IGlkKQogCiAKIHZvaWQKLXFsX2R1bXBfYnVmZmVyKHVpbnQgbGV2ZWwsIHNjc2lfcWxhX2hvc3RfdCAqdmhhLCB1aW50IGlkLCB2b2lkICpidWYsIHVpbnQgc2l6ZSkKK3FsX2R1bXBfYnVmZmVyKHVpbnQgbGV2ZWwsIHNjc2lfcWxhX2hvc3RfdCAqdmhhLCB1aW50IGlkLCBjb25zdCB2b2lkICpidWYsCisJICAgICAgIHVpbnQgc2l6ZSkKIHsKIAl1aW50IGNudDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oCmluZGV4IGJhZDJiMTIuLjg3M2E2YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kZWYuaAorKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGVmLmgKQEAgLTM0LDYgKzM0LDIwIEBACiAjaW5jbHVkZSA8c2NzaS9zY3NpX3RyYW5zcG9ydF9mYy5oPgogI2luY2x1ZGUgPHNjc2kvc2NzaV9ic2dfZmMuaD4KIAorLyogQmlnIGVuZGlhbiBGaWJyZSBDaGFubmVsIFNfSUQgKHNvdXJjZSBJRCkgb3IgRF9JRCAoZGVzdGluYXRpb24gSUQpLiAqLwordHlwZWRlZiBzdHJ1Y3QgeworCXVpbnQ4X3QgZG9tYWluOworCXVpbnQ4X3QgYXJlYTsKKwl1aW50OF90IGFsX3BhOworfSBiZV9pZF90OworCisvKiBMaXR0bGUgZW5kaWFuIEZpYnJlIENoYW5uZWwgU19JRCAoc291cmNlIElEKSBvciBEX0lEIChkZXN0aW5hdGlvbiBJRCkuICovCit0eXBlZGVmIHN0cnVjdCB7CisJdWludDhfdCBhbF9wYTsKKwl1aW50OF90IGFyZWE7CisJdWludDhfdCBkb21haW47Cit9IGxlX2lkX3Q7CisKICNpbmNsdWRlICJxbGFfYnNnLmgiCiAjaW5jbHVkZSAicWxhX2RzZC5oIgogI2luY2x1ZGUgInFsYV9ueC5oIgpAQCAtMTE3LDkgKzEzMSw5IEBACiAjZGVmaW5lIFJEX1JFR19CWVRFX1JFTEFYRUQoYWRkcikJcmVhZGJfcmVsYXhlZChhZGRyKQogI2RlZmluZSBSRF9SRUdfV09SRF9SRUxBWEVEKGFkZHIpCXJlYWR3X3JlbGF4ZWQoYWRkcikKICNkZWZpbmUgUkRfUkVHX0RXT1JEX1JFTEFYRUQoYWRkcikJcmVhZGxfcmVsYXhlZChhZGRyKQotI2RlZmluZSBXUlRfUkVHX0JZVEUoYWRkciwgZGF0YSkJd3JpdGViKGRhdGEsYWRkcikKLSNkZWZpbmUgV1JUX1JFR19XT1JEKGFkZHIsIGRhdGEpCXdyaXRldyhkYXRhLGFkZHIpCi0jZGVmaW5lIFdSVF9SRUdfRFdPUkQoYWRkciwgZGF0YSkJd3JpdGVsKGRhdGEsYWRkcikKKyNkZWZpbmUgV1JUX1JFR19CWVRFKGFkZHIsIGRhdGEpCXdyaXRlYihkYXRhLCBhZGRyKQorI2RlZmluZSBXUlRfUkVHX1dPUkQoYWRkciwgZGF0YSkJd3JpdGV3KGRhdGEsIGFkZHIpCisjZGVmaW5lIFdSVF9SRUdfRFdPUkQoYWRkciwgZGF0YSkJd3JpdGVsKGRhdGEsIGFkZHIpCiAKIC8qCiAgKiBJU1A4M1hYIHNwZWNpZmljIHJlbW90ZSByZWdpc3RlciBhZGRyZXNzZXMKQEAgLTIwNyw3ICsyMjEsNyBAQAogICogMTMzTWh6IHNsb3QuCiAgKi8KICNkZWZpbmUgUkRfUkVHX1dPUkRfUElPKGFkZHIpCQkoaW53KCh1bnNpZ25lZCBsb25nKWFkZHIpKQotI2RlZmluZSBXUlRfUkVHX1dPUkRfUElPKGFkZHIsIGRhdGEpCShvdXR3KGRhdGEsKHVuc2lnbmVkIGxvbmcpYWRkcikpCisjZGVmaW5lIFdSVF9SRUdfV09SRF9QSU8oYWRkciwgZGF0YSkJKG91dHcoZGF0YSwgKHVuc2lnbmVkIGxvbmcpYWRkcikpCiAKIC8qCiAgKiBGaWJyZSBDaGFubmVsIGRldmljZSBkZWZpbml0aW9ucy4KQEAgLTMwMyw3ICszMTcsOCBAQCBzdHJ1Y3Qgc3JiX2NtZCB7CiAJdWludDMyX3QgcmVxdWVzdF9zZW5zZV9sZW5ndGg7CiAJdWludDMyX3QgZndfc2Vuc2VfbGVuZ3RoOwogCXVpbnQ4X3QgKnJlcXVlc3Rfc2Vuc2VfcHRyOwotCXZvaWQgKmN0eDsKKwlzdHJ1Y3QgY3Q2X2RzZCAqY3Q2X2N0eDsKKwlzdHJ1Y3QgY3JjX2NvbnRleHQgKmNyY19jdHg7CiB9OwogCiAvKgpAQCAtMzQzLDYgKzM1OCw1MSBAQCB0eXBlZGVmIHVuaW9uIHsKIH0gcG9ydF9pZF90OwogI2RlZmluZSBJTlZBTElEX1BPUlRfSUQJMHhGRkZGRkYKIAorc3RhdGljIGlubGluZSBsZV9pZF90IGJlX2lkX3RvX2xlKGJlX2lkX3QgaWQpCit7CisJbGVfaWRfdCByZXM7CisKKwlyZXMuZG9tYWluID0gaWQuZG9tYWluOworCXJlcy5hcmVhICAgPSBpZC5hcmVhOworCXJlcy5hbF9wYSAgPSBpZC5hbF9wYTsKKworCXJldHVybiByZXM7Cit9CisKK3N0YXRpYyBpbmxpbmUgYmVfaWRfdCBsZV9pZF90b19iZShsZV9pZF90IGlkKQoreworCWJlX2lkX3QgcmVzOworCisJcmVzLmRvbWFpbiA9IGlkLmRvbWFpbjsKKwlyZXMuYXJlYSAgID0gaWQuYXJlYTsKKwlyZXMuYWxfcGEgID0gaWQuYWxfcGE7CisKKwlyZXR1cm4gcmVzOworfQorCitzdGF0aWMgaW5saW5lIHBvcnRfaWRfdCBiZV90b19wb3J0X2lkKGJlX2lkX3QgaWQpCit7CisJcG9ydF9pZF90IHJlczsKKworCXJlcy5iLmRvbWFpbiA9IGlkLmRvbWFpbjsKKwlyZXMuYi5hcmVhICAgPSBpZC5hcmVhOworCXJlcy5iLmFsX3BhICA9IGlkLmFsX3BhOworCXJlcy5iLnJzdmRfMSA9IDA7CisKKwlyZXR1cm4gcmVzOworfQorCitzdGF0aWMgaW5saW5lIGJlX2lkX3QgcG9ydF9pZF90b19iZV9pZChwb3J0X2lkX3QgcG9ydF9pZCkKK3sKKwliZV9pZF90IHJlczsKKworCXJlcy5kb21haW4gPSBwb3J0X2lkLmIuZG9tYWluOworCXJlcy5hcmVhICAgPSBwb3J0X2lkLmIuYXJlYTsKKwlyZXMuYWxfcGEgID0gcG9ydF9pZC5iLmFsX3BhOworCisJcmV0dXJuIHJlczsKK30KKwogc3RydWN0IGVsc19sb2dvX3BheWxvYWQgewogCXVpbnQ4X3Qgb3Bjb2RlOwogCXVpbnQ4X3QgcnN2ZFszXTsKQEAgLTM5NSw3ICs0NTUsNyBAQCBzdHJ1Y3Qgc3JiX2lvY2IgewogCQkJc3RydWN0IGVsc19sb2dvX3BheWxvYWQgKmVsc19sb2dvX3B5bGQ7CiAJCQlkbWFfYWRkcl90IGVsc19sb2dvX3B5bGRfZG1hOwogCQl9IGVsc19sb2dvOwotCQlzdHJ1Y3QgeworCQlzdHJ1Y3QgZWxzX3Bsb2dpIHsKICNkZWZpbmUgRUxTX0RDTURfUExPR0kgMHgzCiAJCQl1aW50MzJfdCBmbGFnczsKIAkJCXVpbnQzMl90IGVsc19jbWQ7CkBAIC01MzcsNiArNTk3LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgc3JiIHsKIAl3YWl0X3F1ZXVlX2hlYWRfdCBudm1lX2xzX3dhaXRxOwogCXN0cnVjdCBmY19wb3J0ICpmY3BvcnQ7CiAJc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYTsKKwl1bnNpZ25lZCBpbnQgc3RhcnRfdGltZXI6MTsKIAl1aW50MzJfdCBoYW5kbGU7CiAJdWludDE2X3QgZmxhZ3M7CiAJdWludDE2X3QgdHlwZTsKQEAgLTU1NCwxNCArNjE1LDIyIEBAIHR5cGVkZWYgc3RydWN0IHNyYiB7CiAJCXN0cnVjdCBic2dfam9iICpic2dfam9iOwogCQlzdHJ1Y3Qgc3JiX2NtZCBzY21kOwogCX0gdTsKLQl2b2lkICgqZG9uZSkodm9pZCAqLCBpbnQpOwotCXZvaWQgKCpmcmVlKSh2b2lkICopOworCS8qCisJICogUmVwb3J0IGNvbXBsZXRpb24gc3RhdHVzIEByZXMgYW5kIGNhbGwgc3BfcHV0KEBzcCkuIEByZXMgaXMKKwkgKiBhbiBOVk1lIHN0YXR1cyBjb2RlLCBhIFNDU0kgcmVzdWx0IChlLmcuIERJRF9PSyA8PCAxNikgb3IgYQorCSAqIFFMQV8qIHN0YXR1cyB2YWx1ZS4KKwkgKi8KKwl2b2lkICgqZG9uZSkoc3RydWN0IHNyYiAqc3AsIGludCByZXMpOworCS8qIFN0b3AgdGhlIHRpbWVyIGFuZCBmcmVlIEBzcC4gT25seSB1c2VkIGJ5IHRoZSBGQ1AgY29kZS4gKi8KKwl2b2lkICgqZnJlZSkoc3RydWN0IHNyYiAqc3ApOworCS8qCisJICogQ2FsbCBudm1lX3ByaXZhdGUtPmZkLT5kb25lKCkgYW5kIGZyZWUgQHNwLiBPbmx5IHVzZWQgYnkgdGhlIE5WTWUKKwkgKiBjb2RlLgorCSAqLwogCXZvaWQgKCpwdXRfZm4pKHN0cnVjdCBrcmVmICprcmVmKTsKIH0gc3JiX3Q7CiAKICNkZWZpbmUgR0VUX0NNRF9TUChzcCkgKHNwLT51LnNjbWQuY21kKQotI2RlZmluZSBTRVRfQ01EX1NQKHNwLCBjbWQpIChzcC0+dS5zY21kLmNtZCA9IGNtZCkKLSNkZWZpbmUgR0VUX0NNRF9DVFhfU1Aoc3ApIChzcC0+dS5zY21kLmN0eCkKIAogI2RlZmluZSBHRVRfQ01EX1NFTlNFX0xFTihzcCkgXAogCShzcC0+dS5zY21kLnJlcXVlc3Rfc2Vuc2VfbGVuZ3RoKQpAQCAtOTIxLDYgKzk5MCwxMSBAQCBzdHJ1Y3QgbWJ4X2NtZF8zMiB7CiAjZGVmaW5lIE1CU19MSU5LX0RPV05fRVJST1IJCTB4NDAwQgogI2RlZmluZSBNQlNfRElBR19FQ0hPX1RFU1RfRVJST1IJMHg0MDBDCiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBxbGEyeHh4X2lzX3ZhbGlkX21icyh1bnNpZ25lZCBpbnQgbWJzKQoreworCXJldHVybiBNQlNfQ09NTUFORF9DT01QTEVURSA8PSBtYnMgJiYgbWJzIDw9IE1CU19ESUFHX0VDSE9fVEVTVF9FUlJPUjsKK30KKwogLyoKICAqIElTUCBtYWlsYm94IGFzeW5jaHJvbm91cyBldmVudCBzdGF0dXMgY29kZXMKICAqLwpAQCAtMTg1MSw3ICsxOTI1LDcgQEAgc3RydWN0IGNyY19jb250ZXh0IHsKIAkJCXVpbnQxNl90CXJlc2VydmVkXzI7CiAJCQl1aW50MTZfdAlyZXNlcnZlZF8zOwogCQkJdWludDMyX3QJcmVzZXJ2ZWRfNDsKLQkJCXN0cnVjdCBkc2Q2NAlkYXRhX2RzZDsKKwkJCXN0cnVjdCBkc2Q2NAlkYXRhX2RzZFsxXTsKIAkJCXVpbnQzMl90CXJlc2VydmVkXzVbMl07CiAJCQl1aW50MzJfdAlyZXNlcnZlZF82OwogCQl9IG5vYnVuZGxpbmc7CkBAIC0xODYxLDcgKzE5MzUsNyBAQCBzdHJ1Y3QgY3JjX2NvbnRleHQgewogCQkJdWludDE2X3QJcmVzZXJ2ZWRfMTsKIAkJCV9fbGUxNglkc2VnX2NvdW50OwkvKiBEYXRhIHNlZ21lbnQgY291bnQgKi8KIAkJCXVpbnQzMl90CXJlc2VydmVkXzI7Ci0JCQlzdHJ1Y3QgZHNkNjQJZGF0YV9kc2Q7CisJCQlzdHJ1Y3QgZHNkNjQJZGF0YV9kc2RbMV07CiAJCQlzdHJ1Y3QgZHNkNjQJZGlmX2RzZDsKIAkJfSBidW5kbGluZzsKIAl9IHU7CkBAIC0yMjg5LDIyICsyMzYzLDYgQEAgZW51bSBsb2dpbl9zdGF0ZSB7CS8qIEZXIGNvbnRyb2wgVGFyZ2V0IHNpZGUgKi8KIAlEU0NfTFNfTE9HT19QRU5ELAogfTsKIAotZW51bSBmY3BvcnRfbWd0X2V2ZW50IHsKLQlGQ01FX1JFTE9HSU4gPSAxLAotCUZDTUVfUlNDTiwKLQlGQ01FX1BMT0dJX0RPTkUsCS8qIEluaXRpYXRvciBzaWRlIHNlbnQgTExJT0NCICovCi0JRkNNRV9QUkxJX0RPTkUsCi0JRkNNRV9HTkxfRE9ORSwKLQlGQ01FX0dQU0NfRE9ORSwKLQlGQ01FX0dQREJfRE9ORSwKLQlGQ01FX0dQTklEX0RPTkUsCi0JRkNNRV9HRkZJRF9ET05FLAotCUZDTUVfQURJU0NfRE9ORSwKLQlGQ01FX0dOTklEX0RPTkUsCi0JRkNNRV9HRlBOSURfRE9ORSwKLQlGQ01FX0VMU19QTE9HSV9ET05FLAotfTsKLQogZW51bSByc2NuX2FkZHJfZm9ybWF0IHsKIAlSU0NOX1BPUlRfQUREUiwKIAlSU0NOX0FSRUFfQUREUiwKQEAgLTI0MjIsNyArMjQ4MCw2IEBAIHR5cGVkZWYgc3RydWN0IGZjX3BvcnQgewogI2RlZmluZSBRTEFfRkNQT1JUX0ZPVU5ECTIKIAogc3RydWN0IGV2ZW50X2FyZyB7Ci0JZW51bSBmY3BvcnRfbWd0X2V2ZW50CWV2ZW50OwogCWZjX3BvcnRfdAkJKmZjcG9ydDsKIAlzcmJfdAkJCSpzcDsKIAlwb3J0X2lkX3QJCWlkOwpAQCAtMjc0NSw3ICsyODAyLDcgQEAgc3RydWN0IGN0X3Nuc19yZXEgewogCQkvKiBHQV9OWFQsIEdQTl9JRCwgR05OX0lELCBHRlRfSUQsIEdGUE5fSUQgKi8KIAkJc3RydWN0IHsKIAkJCXVpbnQ4X3QgcmVzZXJ2ZWQ7Ci0JCQl1aW50OF90IHBvcnRfaWRbM107CisJCQliZV9pZF90IHBvcnRfaWQ7CiAJCX0gcG9ydF9pZDsKIAogCQlzdHJ1Y3QgewpAQCAtMjc2NCwxMyArMjgyMSwxMyBAQCBzdHJ1Y3QgY3Rfc25zX3JlcSB7CiAKIAkJc3RydWN0IHsKIAkJCXVpbnQ4X3QgcmVzZXJ2ZWQ7Ci0JCQl1aW50OF90IHBvcnRfaWRbM107CisJCQliZV9pZF90IHBvcnRfaWQ7CiAJCQl1aW50OF90IGZjNF90eXBlc1szMl07CiAJCX0gcmZ0X2lkOwogCiAJCXN0cnVjdCB7CiAJCQl1aW50OF90IHJlc2VydmVkOwotCQkJdWludDhfdCBwb3J0X2lkWzNdOworCQkJYmVfaWRfdCBwb3J0X2lkOwogCQkJdWludDE2X3QgcmVzZXJ2ZWQyOwogCQkJdWludDhfdCBmYzRfZmVhdHVyZTsKIAkJCXVpbnQ4X3QgZmM0X3R5cGU7CkBAIC0yNzc4LDcgKzI4MzUsNyBAQCBzdHJ1Y3QgY3Rfc25zX3JlcSB7CiAKIAkJc3RydWN0IHsKIAkJCXVpbnQ4X3QgcmVzZXJ2ZWQ7Ci0JCQl1aW50OF90IHBvcnRfaWRbM107CisJCQliZV9pZF90IHBvcnRfaWQ7CiAJCQl1aW50OF90IG5vZGVfbmFtZVs4XTsKIAkJfSBybm5faWQ7CiAKQEAgLTI4NjUsNyArMjkyMiw3IEBAIHN0cnVjdCBjdF9yc3BfaGRyIHsKIAogc3RydWN0IGN0X3Nuc19naWRfcHRfZGF0YSB7CiAJdWludDhfdCBjb250cm9sX2J5dGU7Ci0JdWludDhfdCBwb3J0X2lkWzNdOworCWJlX2lkX3QgcG9ydF9pZDsKIH07CiAKIC8qIEl0J3MgdGhlIHNhbWUgZm9yIGJvdGggR1BOX0ZUIGFuZCBHTk5fRlQgKi8KQEAgLTI4OTUsNyArMjk1Miw3IEBAIHN0cnVjdCBjdF9zbnNfcnNwIHsKIAl1bmlvbiB7CiAJCXN0cnVjdCB7CiAJCQl1aW50OF90IHBvcnRfdHlwZTsKLQkJCXVpbnQ4X3QgcG9ydF9pZFszXTsKKwkJCWJlX2lkX3QgcG9ydF9pZDsKIAkJCXVpbnQ4X3QgcG9ydF9uYW1lWzhdOwogCQkJdWludDhfdCBzeW1fcG9ydF9uYW1lX2xlbjsKIAkJCXVpbnQ4X3Qgc3ltX3BvcnRfbmFtZVsyNTVdOwpAQCAtMzExMSw3ICszMTY4LDcgQEAgc3RydWN0IGlzcF9vcGVyYXRpb25zIHsKIAl2b2lkICgqdXBkYXRlX2Z3X29wdGlvbnMpIChzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqKTsKIAlpbnQgKCpsb2FkX3Jpc2MpIChzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLCB1aW50MzJfdCAqKTsKIAotCWNoYXIgKiAoKnBjaV9pbmZvX3N0cikgKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIGNoYXIgKik7CisJY2hhciAqICgqcGNpX2luZm9fc3RyKShzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLCBjaGFyICosIHNpemVfdCk7CiAJY2hhciAqICgqZndfdmVyc2lvbl9zdHIpKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIGNoYXIgKiwgc2l6ZV90KTsKIAogCWlycV9oYW5kbGVyX3QgaW50cl9oYW5kbGVyOwpAQCAtMzg1MCw3ICszOTA3LDcgQEAgc3RydWN0IHFsYV9od19kYXRhIHsKIAogCS8qIE5WUkFNIGNvbmZpZ3VyYXRpb24gZGF0YSAqLwogI2RlZmluZSBNQVhfTlZSQU1fU0laRSAgNDA5NgotI2RlZmluZSBWUERfT0ZGU0VUICAgICAgTUFYX05WUkFNX1NJWkUgLyAyCisjZGVmaW5lIFZQRF9PRkZTRVQgICAgICAoTUFYX05WUkFNX1NJWkUgLyAyKQogCXVpbnQxNl90CW52cmFtX3NpemU7CiAJdWludDE2X3QJbnZyYW1fYmFzZTsKIAl2b2lkCQkqbnZyYW07CkBAIC00NjI4LDYgKzQ2ODUsNyBAQCBzdHJ1Y3Qgc2VjdXJlX2ZsYXNoX3VwZGF0ZV9ibG9ja19wayB7CiAjZGVmaW5lIFFMQV9TVVNQRU5ERUQJCQkweDEwNgogI2RlZmluZSBRTEFfQlVTWQkJCTB4MTA3CiAjZGVmaW5lIFFMQV9BTFJFQURZX1JFR0lTVEVSRUQJCTB4MTA5CisjZGVmaW5lIFFMQV9PU19USU1FUl9FWFBJUkVECQkweDEwYQogCiAjZGVmaW5lIE5WUkFNX0RFTEFZKCkJCXVkZWxheSgxMCkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2Rmcy5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2Rmcy5jCmluZGV4IGE0MzJjYWUuLjBhNmZiMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kZnMuYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGZzLmMKQEAgLTU3LDEwICs1Nyw5IEBAIHFsYTJ4MDBfZGZzX3RndF9wb3J0X2RhdGFiYXNlX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpCiB7CiAJc2NzaV9xbGFfaG9zdF90ICp2aGEgPSBzLT5wcml2YXRlOwogCXN0cnVjdCBxbGFfaHdfZGF0YSAqaGEgPSB2aGEtPmh3OwotCXN0cnVjdCBnaWRfbGlzdF9pbmZvICpnaWRfbGlzdDsKKwlzdHJ1Y3QgZ2lkX2xpc3RfaW5mbyAqZ2lkX2xpc3QsICpnaWQ7CiAJZG1hX2FkZHJfdCBnaWRfbGlzdF9kbWE7CiAJZmNfcG9ydF90IGZjX3BvcnQ7Ci0JY2hhciAqaWRfaXRlcjsKIAlpbnQgcmMsIGk7CiAJdWludDE2X3QgZW50cmllcywgbG9vcF9pZDsKIAlzdHJ1Y3QgcWxhX3RndCAqdGd0ID0gdmhhLT52aGFfdGd0LnFsYV90Z3Q7CkBAIC04MiwxMyArODEsMTEgQEAgcWxhMngwMF9kZnNfdGd0X3BvcnRfZGF0YWJhc2Vfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZCkKIAkJaWYgKHJjICE9IFFMQV9TVUNDRVNTKQogCQkJZ290byBvdXRfZnJlZV9pZF9saXN0OwogCi0JCWlkX2l0ZXIgPSAoY2hhciAqKWdpZF9saXN0OworCQlnaWQgPSBnaWRfbGlzdDsKIAogCQlzZXFfcHV0cyhzLCAiUG9ydCBOYW1lCVBvcnQgSUQgCUxvb3AgSURcbiIpOwogCiAJCWZvciAoaSA9IDA7IGkgPCBlbnRyaWVzOyBpKyspIHsKLQkJCXN0cnVjdCBnaWRfbGlzdF9pbmZvICpnaWQgPQotCQkJICAgIChzdHJ1Y3QgZ2lkX2xpc3RfaW5mbyAqKWlkX2l0ZXI7CiAJCQlsb29wX2lkID0gbGUxNl90b19jcHUoZ2lkLT5sb29wX2lkKTsKIAkJCW1lbXNldCgmZmNfcG9ydCwgMCwgc2l6ZW9mKGZjX3BvcnRfdCkpOwogCkBAIC05OSw3ICs5Niw3IEBAIHFsYTJ4MDBfZGZzX3RndF9wb3J0X2RhdGFiYXNlX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpCiAJCQkJZmNfcG9ydC5wb3J0X25hbWUsIGZjX3BvcnQuZF9pZC5iLmRvbWFpbiwKIAkJCQlmY19wb3J0LmRfaWQuYi5hcmVhLCBmY19wb3J0LmRfaWQuYi5hbF9wYSwKIAkJCQlmY19wb3J0Lmxvb3BfaWQpOwotCQkJaWRfaXRlciArPSBoYS0+Z2lkX2xpc3RfaW5mb19zaXplOworCQkJZ2lkID0gKHZvaWQgKilnaWQgKyBoYS0+Z2lkX2xpc3RfaW5mb19zaXplOwogCQl9CiBvdXRfZnJlZV9pZF9saXN0OgogCQlkbWFfZnJlZV9jb2hlcmVudCgmaGEtPnBkZXYtPmRldiwgcWxhMngwMF9naWRfbGlzdF9zaXplKGhhKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kc2QuaCBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kc2QuaAppbmRleCA3NDc5OTI0Li4yMDc4ODA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZHNkLmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RzZC5oCkBAIC0xLDYgKzEsOCBAQAogI2lmbmRlZiBfUUxBX0RTRF9IXwogI2RlZmluZSBfUUxBX0RTRF9IXwogCisjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgorCiAvKiAzMi1iaXQgZGF0YSBzZWdtZW50IGRlc2NyaXB0b3IgKDggYnl0ZXMpICovCiBzdHJ1Y3QgZHNkMzIgewogCV9fbGUzMiBhZGRyZXNzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2Z3LmggYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZncuaAppbmRleCBkZjA3OWE4Li43MzJiYjg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZncuaAorKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZncuaApAQCAtNzYxLDEzICs3NjEsMTMgQEAgc3RydWN0IGVsc19lbnRyeV8yNHh4IHsKICNkZWZpbmUgRUNGX0NMUl9QQVNTVEhSVV9QRU5ECUJJVF8xMgogI2RlZmluZSBFQ0ZfSU5DTF9GUkFNRV9IRFIJQklUXzExCiAKLQl1aW50MzJfdCByeF9ieXRlX2NvdW50OwotCXVpbnQzMl90IHR4X2J5dGVfY291bnQ7CisJX19sZTMyCSByeF9ieXRlX2NvdW50OworCV9fbGUzMgkgdHhfYnl0ZV9jb3VudDsKIAogCV9fbGU2NAkgdHhfYWRkcmVzcyBfX3BhY2tlZDsJLyogRGF0YSBzZWdtZW50IDAgYWRkcmVzcy4gKi8KLQl1aW50MzJfdCB0eF9sZW47CQkvKiBEYXRhIHNlZ21lbnQgMCBsZW5ndGguICovCisJX19sZTMyCSB0eF9sZW47CQkvKiBEYXRhIHNlZ21lbnQgMCBsZW5ndGguICovCiAJX19sZTY0CSByeF9hZGRyZXNzIF9fcGFja2VkOwkvKiBEYXRhIHNlZ21lbnQgMSBhZGRyZXNzLiAqLwotCXVpbnQzMl90IHJ4X2xlbjsJCS8qIERhdGEgc2VnbWVudCAxIGxlbmd0aC4gKi8KKwlfX2xlMzIJIHJ4X2xlbjsJCS8qIERhdGEgc2VnbWVudCAxIGxlbmd0aC4gKi8KIH07CiAKIHN0cnVjdCBlbHNfc3RzX2VudHJ5XzI0eHggewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2dibC5oIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2dibC5oCmluZGV4IGY5NjY5ZmQuLmQxMTQxNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9nYmwuaAorKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZ2JsLmgKQEAgLTQ1LDYgKzQ1LDggQEAgZXh0ZXJuIGludCBxbGEyeDAwX2xvY2FsX2RldmljZV9sb2dpbihzY3NpX3FsYV9ob3N0X3QgKiwgZmNfcG9ydF90ICopOwogCiBleHRlcm4gaW50IHFsYTI0eHhfZWxzX2RjbWRfaW9jYihzY3NpX3FsYV9ob3N0X3QgKiwgaW50LCBwb3J0X2lkX3QpOwogZXh0ZXJuIGludCBxbGEyNHh4X2Vsc19kY21kMl9pb2NiKHNjc2lfcWxhX2hvc3RfdCAqLCBpbnQsIGZjX3BvcnRfdCAqLCBib29sKTsKK2V4dGVybiB2b2lkIHFsYTJ4MDBfZWxzX2RjbWQyX2ZyZWUoc2NzaV9xbGFfaG9zdF90ICp2aGEsCisJCQkJICAgc3RydWN0IGVsc19wbG9naSAqZWxzX3Bsb2dpKTsKIAogZXh0ZXJuIHZvaWQgcWxhMngwMF91cGRhdGVfZmNwb3J0cyhzY3NpX3FsYV9ob3N0X3QgKik7CiAKQEAgLTk2LDcgKzk4LDExIEBAIGV4dGVybiBpbnQgcWxhMngwMF9pbml0X3JpbmdzKHNjc2lfcWxhX2hvc3RfdCAqKTsKIGV4dGVybiBzdHJ1Y3QgcWxhX3FwYWlyICpxbGEyeHh4X2NyZWF0ZV9xcGFpcihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLAogCWludCwgaW50LCBib29sKTsKIGV4dGVybiBpbnQgcWxhMnh4eF9kZWxldGVfcXBhaXIoc3RydWN0IHNjc2lfcWxhX2hvc3QgKiwgc3RydWN0IHFsYV9xcGFpciAqKTsKLXZvaWQgcWxhMngwMF9mY3BvcnRfZXZlbnRfaGFuZGxlcihzY3NpX3FsYV9ob3N0X3QgKiwgc3RydWN0IGV2ZW50X2FyZyAqKTsKK3ZvaWQgcWxhMngwMF9oYW5kbGVfcnNjbihzY3NpX3FsYV9ob3N0X3QgKnZoYSwgc3RydWN0IGV2ZW50X2FyZyAqZWEpOwordm9pZCBxbGEyNHh4X2hhbmRsZV9wbG9naV9kb25lX2V2ZW50KHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCisJCQkJICAgICBzdHJ1Y3QgZXZlbnRfYXJnICplYSk7Cit2b2lkIHFsYTI0eHhfaGFuZGxlX3JlbG9naW5fZXZlbnQoc2NzaV9xbGFfaG9zdF90ICp2aGEsCisJCQkJICBzdHJ1Y3QgZXZlbnRfYXJnICplYSk7CiBpbnQgcWxhMjR4eF9hc3luY19ncGRiKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIGZjX3BvcnRfdCAqLCB1OCk7CiBpbnQgcWxhMjR4eF9hc3luY19wcmxpKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIGZjX3BvcnRfdCAqKTsKIGludCBxbGEyNHh4X2FzeW5jX25vdGlmeV9hY2soc2NzaV9xbGFfaG9zdF90ICosIGZjX3BvcnRfdCAqLApAQCAtMjEzLDkgKzIxOSw5IEBAIGV4dGVybiBpbnQgcWxhMngwMF9wb3N0X3VldmVudF93b3JrKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIHUzMik7CiAKIGV4dGVybiBpbnQgcWxhMngwMF9wb3N0X3VldmVudF93b3JrKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIHUzMik7CiBleHRlcm4gdm9pZCBxbGEyeDAwX2Rpc2FibGVfYm9hcmRfb25fcGNpX2Vycm9yKHN0cnVjdCB3b3JrX3N0cnVjdCAqKTsKLWV4dGVybiB2b2lkIHFsYTJ4MDBfc3BfY29tcGwodm9pZCAqLCBpbnQpOwotZXh0ZXJuIHZvaWQgcWxhMnh4eF9xcGFpcl9zcF9mcmVlX2RtYSh2b2lkICopOwotZXh0ZXJuIHZvaWQgcWxhMnh4eF9xcGFpcl9zcF9jb21wbCh2b2lkICosIGludCk7CitleHRlcm4gdm9pZCBxbGEyeDAwX3NwX2NvbXBsKHNyYl90ICpzcCwgaW50KTsKK2V4dGVybiB2b2lkIHFsYTJ4eHhfcXBhaXJfc3BfZnJlZV9kbWEoc3JiX3QgKnNwKTsKK2V4dGVybiB2b2lkIHFsYTJ4eHhfcXBhaXJfc3BfY29tcGwoc3JiX3QgKnNwLCBpbnQpOwogZXh0ZXJuIHZvaWQgcWxhMjR4eF9zY2hlZF91cGRfZmNwb3J0KGZjX3BvcnRfdCAqKTsKIHZvaWQgcWxhMngwMF9oYW5kbGVfbG9naW5fZG9uZV9ldmVudChzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLCBmY19wb3J0X3QgKiwKIAl1aW50MTZfdCAqKTsKQEAgLTI0NCw3ICsyNTAsNyBAQCBleHRlcm4gdm9pZCBxbGEyeDAwX2RvX2RwY19hbGxfdnBzKHNjc2lfcWxhX2hvc3RfdCAqKTsKIGV4dGVybiBpbnQgcWxhMjR4eF92cG9ydF9jcmVhdGVfcmVxX3Nhbml0eV9jaGVjayhzdHJ1Y3QgZmNfdnBvcnQgKik7CiBleHRlcm4gc2NzaV9xbGFfaG9zdF90ICpxbGEyNHh4X2NyZWF0ZV92aG9zdChzdHJ1Y3QgZmNfdnBvcnQgKik7CiAKLWV4dGVybiB2b2lkIHFsYTJ4MDBfc3BfZnJlZV9kbWEodm9pZCAqKTsKK2V4dGVybiB2b2lkIHFsYTJ4MDBfc3BfZnJlZV9kbWEoc3JiX3QgKnNwKTsKIGV4dGVybiBjaGFyICpxbGEyeDAwX2dldF9md192ZXJzaW9uX3N0cihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLCBjaGFyICopOwogCiBleHRlcm4gdm9pZCBxbGEyeDAwX21hcmtfZGV2aWNlX2xvc3Qoc2NzaV9xbGFfaG9zdF90ICosIGZjX3BvcnRfdCAqLCBpbnQsIGludCk7CkBAIC0yNzIsNiArMjc4LDcgQEAgZXh0ZXJuIHZvaWQgcWxhMngwMF9idWlsZF9zY3NpX2lvY2JzXzMyKHNyYl90ICosIGNtZF9lbnRyeV90ICosIHVpbnQxNl90KTsKIGV4dGVybiB2b2lkIHFsYTJ4MDBfYnVpbGRfc2NzaV9pb2Nic182NChzcmJfdCAqLCBjbWRfZW50cnlfdCAqLCB1aW50MTZfdCk7CiBleHRlcm4gdm9pZCBxbGEyNHh4X2J1aWxkX3Njc2lfaW9jYnMoc3JiX3QgKiwgc3RydWN0IGNtZF90eXBlXzcgKiwKIAl1aW50MTZfdCwgc3RydWN0IHJlcV9xdWUgKik7CitleHRlcm4gdWludDMyX3QgcWxhMnh4eF9nZXRfbmV4dF9oYW5kbGUoc3RydWN0IHJlcV9xdWUgKnJlcSk7CiBleHRlcm4gaW50IHFsYTJ4MDBfc3RhcnRfc2NzaShzcmJfdCAqc3ApOwogZXh0ZXJuIGludCBxbGEyNHh4X3N0YXJ0X3Njc2koc3JiX3QgKnNwKTsKIGludCBxbGEyeDAwX21hcmtlcihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLCBzdHJ1Y3QgcWxhX3FwYWlyICosCkBAIC01NTQsNyArNTYxLDcgQEAgZmNfcG9ydF90ICpxbGEyeDAwX2ZpbmRfZmNwb3J0X2J5X25wb3J0aWQoc2NzaV9xbGFfaG9zdF90ICosIHBvcnRfaWRfdCAqLCB1OCk7CiAgKiBHbG9iYWwgRnVuY3Rpb24gUHJvdG90eXBlcyBpbiBxbGFfc3VwLmMgc291cmNlIGZpbGUuCiAgKi8KIGV4dGVybiB2b2lkIHFsYTJ4MDBfcmVsZWFzZV9udnJhbV9wcm90ZWN0aW9uKHNjc2lfcWxhX2hvc3RfdCAqKTsKLWV4dGVybiB1aW50MzJfdCAqcWxhMjR4eF9yZWFkX2ZsYXNoX2RhdGEoc2NzaV9xbGFfaG9zdF90ICosIHVpbnQzMl90ICosCitleHRlcm4gaW50IHFsYTI0eHhfcmVhZF9mbGFzaF9kYXRhKHNjc2lfcWxhX2hvc3RfdCAqLCB1aW50MzJfdCAqLAogICAgIHVpbnQzMl90LCB1aW50MzJfdCk7CiBleHRlcm4gdWludDhfdCAqcWxhMngwMF9yZWFkX252cmFtX2RhdGEoc2NzaV9xbGFfaG9zdF90ICosIHZvaWQgKiwgdWludDMyX3QsCiAgICAgdWludDMyX3QpOwpAQCAtNjMwLDcgKzYzNyw3IEBAIGV4dGVybiB1bG9uZyBxbGEyN3h4X2Z3ZHRfdGVtcGxhdGVfc2l6ZSh2b2lkICopOwogCiBleHRlcm4gdm9pZCBxbGEyeHh4X2R1bXBfcG9zdF9wcm9jZXNzKHNjc2lfcWxhX2hvc3RfdCAqLCBpbnQpOwogZXh0ZXJuIHZvaWQgcWxfZHVtcF9yZWdzKHVpbnQsIHNjc2lfcWxhX2hvc3RfdCAqLCB1aW50KTsKLWV4dGVybiB2b2lkIHFsX2R1bXBfYnVmZmVyKHVpbnQsIHNjc2lfcWxhX2hvc3RfdCAqLCB1aW50LCB2b2lkICosIHVpbnQpOworZXh0ZXJuIHZvaWQgcWxfZHVtcF9idWZmZXIodWludCwgc2NzaV9xbGFfaG9zdF90ICosIHVpbnQsIGNvbnN0IHZvaWQgKiwgdWludCk7CiAvKgogICogR2xvYmFsIEZ1bmN0aW9uIFByb3RvdHlwZXMgaW4gcWxhX2dzLmMgc291cmNlIGZpbGUuCiAgKi8KQEAgLTczMiw3ICs3MzksNyBAQCBleHRlcm4gaW50IHFsYWZ4MDBfaW5pdGlhbGl6ZV9hZGFwdGVyKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICopOwogZXh0ZXJuIGludCBxbGFmeDAwX3NvZnRfcmVzZXQoc2NzaV9xbGFfaG9zdF90ICopOwogZXh0ZXJuIGludCBxbGFmeDAwX2NoaXBfZGlhZyhzY3NpX3FsYV9ob3N0X3QgKik7CiBleHRlcm4gdm9pZCBxbGFmeDAwX2NvbmZpZ19yaW5ncyhzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqKTsKLWV4dGVybiBjaGFyICpxbGFmeDAwX3BjaV9pbmZvX3N0cihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLCBjaGFyICopOworZXh0ZXJuIGNoYXIgKnFsYWZ4MDBfcGNpX2luZm9fc3RyKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIGNoYXIgKiwgc2l6ZV90KTsKIGV4dGVybiBjaGFyICpxbGFmeDAwX2Z3X3ZlcnNpb25fc3RyKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIGNoYXIgKiwgc2l6ZV90KTsKIGV4dGVybiBpcnFyZXR1cm5fdCBxbGFmeDAwX2ludHJfaGFuZGxlcihpbnQsIHZvaWQgKik7CiBleHRlcm4gdm9pZCBxbGFmeDAwX2VuYWJsZV9pbnRycyhzdHJ1Y3QgcWxhX2h3X2RhdGEgKik7CkBAIC03OTAsMTAgKzc5NywxMCBAQCBleHRlcm4gaW50IHFsYTgyeHhfcmVzdGFydF9pc3Aoc2NzaV9xbGFfaG9zdF90ICopOwogCiAvKiBJT0NCIHJlbGF0ZWQgZnVuY3Rpb25zICovCiBleHRlcm4gaW50IHFsYTgyeHhfc3RhcnRfc2NzaShzcmJfdCAqKTsKLWV4dGVybiB2b2lkIHFsYTJ4MDBfc3BfZnJlZSh2b2lkICopOworZXh0ZXJuIHZvaWQgcWxhMngwMF9zcF9mcmVlKHNyYl90ICpzcCk7CiBleHRlcm4gdm9pZCBxbGEyeDAwX3NwX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKik7Ci1leHRlcm4gdm9pZCBxbGEyeDAwX2JzZ19qb2JfZG9uZSh2b2lkICosIGludCk7Ci1leHRlcm4gdm9pZCBxbGEyeDAwX2JzZ19zcF9mcmVlKHZvaWQgKik7CitleHRlcm4gdm9pZCBxbGEyeDAwX2JzZ19qb2JfZG9uZShzcmJfdCAqc3AsIGludCk7CitleHRlcm4gdm9pZCBxbGEyeDAwX2JzZ19zcF9mcmVlKHNyYl90ICpzcCk7CiBleHRlcm4gdm9pZCBxbGEyeDAwX3N0YXJ0X2lvY2JzKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIHN0cnVjdCByZXFfcXVlICopOwogCiAvKiBJbnRlcnJ1cHQgcmVsYXRlZCAqLwpAQCAtODIyLDggKzgyOSw4IEBAIGV4dGVybiBpbnQgcWxhODJ4eF9kZXZpY2Vfc3RhdGVfaGFuZGxlcihzY3NpX3FsYV9ob3N0X3QgKik7CiBleHRlcm4gdm9pZCBxbGE4eHh4X2Rldl9mYWlsZWRfaGFuZGxlcihzY3NpX3FsYV9ob3N0X3QgKik7CiBleHRlcm4gdm9pZCBxbGE4Mnh4X2NsZWFyX3FzbnRfcmVhZHkoc2NzaV9xbGFfaG9zdF90ICopOwogCi1leHRlcm4gdm9pZCBxbGEyeDAwX3NldF9tb2RlbF9pbmZvKHNjc2lfcWxhX2hvc3RfdCAqLCB1aW50OF90ICosCi0JCQkJICAgc2l6ZV90LCBjaGFyICopOworZXh0ZXJuIHZvaWQgcWxhMngwMF9zZXRfbW9kZWxfaW5mbyhzY3NpX3FsYV9ob3N0X3QgKiwgdWludDhfdCAqLCBzaXplX3QsCisJCQkJICAgY29uc3QgY2hhciAqKTsKIGV4dGVybiBpbnQgcWxhODJ4eF9tYnhfaW50cl9lbmFibGUoc2NzaV9xbGFfaG9zdF90ICopOwogZXh0ZXJuIGludCBxbGE4Mnh4X21ieF9pbnRyX2Rpc2FibGUoc2NzaV9xbGFfaG9zdF90ICopOwogZXh0ZXJuIHZvaWQgcWxhODJ4eF9zdGFydF9pb2NicyhzY3NpX3FsYV9ob3N0X3QgKik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZ3MuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ncy5jCmluZGV4IDlmNThlNTkuLmRjMGUzNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ncy5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ncy5jCkBAIC0yMjYsOSArMjI2LDcgQEAgcWxhMngwMF9nYV9ueHQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIGZjX3BvcnRfdCAqZmNwb3J0KQogCWN0X3JzcCA9ICZoYS0+Y3Rfc25zLT5wLnJzcDsKIAogCS8qIFByZXBhcmUgQ1QgYXJndW1lbnRzIC0tIHBvcnRfaWQgKi8KLQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMF0gPSBmY3BvcnQtPmRfaWQuYi5kb21haW47Ci0JY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkWzFdID0gZmNwb3J0LT5kX2lkLmIuYXJlYTsKLQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMl0gPSBmY3BvcnQtPmRfaWQuYi5hbF9wYTsKKwljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWQgPSBwb3J0X2lkX3RvX2JlX2lkKGZjcG9ydC0+ZF9pZCk7CiAKIAkvKiBFeGVjdXRlIE1TIElPQ0IgKi8KIAlydmFsID0gcWxhMngwMF9pc3N1ZV9pb2NiKHZoYSwgaGEtPm1zX2lvY2IsIGhhLT5tc19pb2NiX2RtYSwKQEAgLTI0Miw5ICsyNDAsNyBAQCBxbGEyeDAwX2dhX254dChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgZmNfcG9ydF90ICpmY3BvcnQpCiAJCXJ2YWwgPSBRTEFfRlVOQ1RJT05fRkFJTEVEOwogCX0gZWxzZSB7CiAJCS8qIFBvcHVsYXRlIGZjX3BvcnRfdCBlbnRyeS4gKi8KLQkJZmNwb3J0LT5kX2lkLmIuZG9tYWluID0gY3RfcnNwLT5yc3AuZ2Ffbnh0LnBvcnRfaWRbMF07Ci0JCWZjcG9ydC0+ZF9pZC5iLmFyZWEgPSBjdF9yc3AtPnJzcC5nYV9ueHQucG9ydF9pZFsxXTsKLQkJZmNwb3J0LT5kX2lkLmIuYWxfcGEgPSBjdF9yc3AtPnJzcC5nYV9ueHQucG9ydF9pZFsyXTsKKwkJZmNwb3J0LT5kX2lkID0gYmVfdG9fcG9ydF9pZChjdF9yc3AtPnJzcC5nYV9ueHQucG9ydF9pZCk7CiAKIAkJbWVtY3B5KGZjcG9ydC0+bm9kZV9uYW1lLCBjdF9yc3AtPnJzcC5nYV9ueHQubm9kZV9uYW1lLAogCQkgICAgV1dOX1NJWkUpOwpAQCAtMzM3LDkgKzMzMyw3IEBAIHFsYTJ4MDBfZ2lkX3B0KHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzd19pbmZvX3QgKmxpc3QpCiAJCS8qIFNldCBwb3J0IElEcyBpbiBzd2l0Y2ggaW5mbyBsaXN0LiAqLwogCQlmb3IgKGkgPSAwOyBpIDwgaGEtPm1heF9maWJyZV9kZXZpY2VzOyBpKyspIHsKIAkJCWdpZF9kYXRhID0gJmN0X3JzcC0+cnNwLmdpZF9wdC5lbnRyaWVzW2ldOwotCQkJbGlzdFtpXS5kX2lkLmIuZG9tYWluID0gZ2lkX2RhdGEtPnBvcnRfaWRbMF07Ci0JCQlsaXN0W2ldLmRfaWQuYi5hcmVhID0gZ2lkX2RhdGEtPnBvcnRfaWRbMV07Ci0JCQlsaXN0W2ldLmRfaWQuYi5hbF9wYSA9IGdpZF9kYXRhLT5wb3J0X2lkWzJdOworCQkJbGlzdFtpXS5kX2lkID0gYmVfdG9fcG9ydF9pZChnaWRfZGF0YS0+cG9ydF9pZCk7CiAJCQltZW1zZXQobGlzdFtpXS5mYWJyaWNfcG9ydF9uYW1lLCAwLCBXV05fU0laRSk7CiAJCQlsaXN0W2ldLmZwX3NwZWVkID0gUE9SVF9TUEVFRF9VTktOT1dOOwogCkBAIC00MDMsOSArMzk3LDcgQEAgcWxhMngwMF9ncG5faWQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHN3X2luZm9fdCAqbGlzdCkKIAkJY3RfcnNwID0gJmhhLT5jdF9zbnMtPnAucnNwOwogCiAJCS8qIFByZXBhcmUgQ1QgYXJndW1lbnRzIC0tIHBvcnRfaWQgKi8KLQkJY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkWzBdID0gbGlzdFtpXS5kX2lkLmIuZG9tYWluOwotCQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMV0gPSBsaXN0W2ldLmRfaWQuYi5hcmVhOwotCQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMl0gPSBsaXN0W2ldLmRfaWQuYi5hbF9wYTsKKwkJY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkID0gcG9ydF9pZF90b19iZV9pZChsaXN0W2ldLmRfaWQpOwogCiAJCS8qIEV4ZWN1dGUgTVMgSU9DQiAqLwogCQlydmFsID0gcWxhMngwMF9pc3N1ZV9pb2NiKHZoYSwgaGEtPm1zX2lvY2IsIGhhLT5tc19pb2NiX2RtYSwKQEAgLTQ3Miw5ICs0NjQsNyBAQCBxbGEyeDAwX2dubl9pZChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgc3dfaW5mb190ICpsaXN0KQogCQljdF9yc3AgPSAmaGEtPmN0X3Nucy0+cC5yc3A7CiAKIAkJLyogUHJlcGFyZSBDVCBhcmd1bWVudHMgLS0gcG9ydF9pZCAqLwotCQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMF0gPSBsaXN0W2ldLmRfaWQuYi5kb21haW47Ci0JCWN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZFsxXSA9IGxpc3RbaV0uZF9pZC5iLmFyZWE7Ci0JCWN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZFsyXSA9IGxpc3RbaV0uZF9pZC5iLmFsX3BhOworCQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWQgPSBwb3J0X2lkX3RvX2JlX2lkKGxpc3RbaV0uZF9pZCk7CiAKIAkJLyogRXhlY3V0ZSBNUyBJT0NCICovCiAJCXJ2YWwgPSBxbGEyeDAwX2lzc3VlX2lvY2IodmhhLCBoYS0+bXNfaW9jYiwgaGEtPm1zX2lvY2JfZG1hLApAQCAtNTA5LDkgKzQ5OSw4IEBAIHFsYTJ4MDBfZ25uX2lkKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzd19pbmZvX3QgKmxpc3QpCiAJcmV0dXJuIChydmFsKTsKIH0KIAotc3RhdGljIHZvaWQgcWxhMngwMF9hc3luY19zbnNfc3BfZG9uZSh2b2lkICpzLCBpbnQgcmMpCitzdGF0aWMgdm9pZCBxbGEyeDAwX2FzeW5jX3Nuc19zcF9kb25lKHNyYl90ICpzcCwgaW50IHJjKQogewotCXN0cnVjdCBzcmIgKnNwID0gczsKIAlzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhID0gc3AtPnZoYTsKIAlzdHJ1Y3QgY3Rfc25zX3BrdCAqY3Rfc25zOwogCXN0cnVjdCBxbGFfd29ya19ldnQgKmU7CkBAIC02MzksOSArNjI4LDcgQEAgc3RhdGljIGludCBxbGFfYXN5bmNfcmZ0aWQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHBvcnRfaWRfdCAqZF9pZCkKIAljdF9yZXEgPSBxbGEyeDAwX3ByZXBfY3RfcmVxKGN0X3NucywgUkZUX0lEX0NNRCwgUkZUX0lEX1JTUF9TSVpFKTsKIAogCS8qIFByZXBhcmUgQ1QgYXJndW1lbnRzIC0tIHBvcnRfaWQsIEZDLTQgdHlwZXMgKi8KLQljdF9yZXEtPnJlcS5yZnRfaWQucG9ydF9pZFswXSA9IHZoYS0+ZF9pZC5iLmRvbWFpbjsKLQljdF9yZXEtPnJlcS5yZnRfaWQucG9ydF9pZFsxXSA9IHZoYS0+ZF9pZC5iLmFyZWE7Ci0JY3RfcmVxLT5yZXEucmZ0X2lkLnBvcnRfaWRbMl0gPSB2aGEtPmRfaWQuYi5hbF9wYTsKKwljdF9yZXEtPnJlcS5yZnRfaWQucG9ydF9pZCA9IHBvcnRfaWRfdG9fYmVfaWQodmhhLT5kX2lkKTsKIAljdF9yZXEtPnJlcS5yZnRfaWQuZmM0X3R5cGVzWzJdID0gMHgwMTsJCS8qIEZDUC0zICovCiAKIAlpZiAodmhhLT5mbGFncy5udm1lX2VuYWJsZWQpCkBAIC03MzcsOSArNzI0LDcgQEAgc3RhdGljIGludCBxbGFfYXN5bmNfcmZmaWQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHBvcnRfaWRfdCAqZF9pZCwKIAljdF9yZXEgPSBxbGEyeDAwX3ByZXBfY3RfcmVxKGN0X3NucywgUkZGX0lEX0NNRCwgUkZGX0lEX1JTUF9TSVpFKTsKIAogCS8qIFByZXBhcmUgQ1QgYXJndW1lbnRzIC0tIHBvcnRfaWQsIEZDLTQgZmVhdHVyZSwgRkMtNCB0eXBlICovCi0JY3RfcmVxLT5yZXEucmZmX2lkLnBvcnRfaWRbMF0gPSBkX2lkLT5iLmRvbWFpbjsKLQljdF9yZXEtPnJlcS5yZmZfaWQucG9ydF9pZFsxXSA9IGRfaWQtPmIuYXJlYTsKLQljdF9yZXEtPnJlcS5yZmZfaWQucG9ydF9pZFsyXSA9IGRfaWQtPmIuYWxfcGE7CisJY3RfcmVxLT5yZXEucmZmX2lkLnBvcnRfaWQgPSBwb3J0X2lkX3RvX2JlX2lkKCpkX2lkKTsKIAljdF9yZXEtPnJlcS5yZmZfaWQuZmM0X2ZlYXR1cmUgPSBmYzRmZWF0dXJlOwogCWN0X3JlcS0+cmVxLnJmZl9pZC5mYzRfdHlwZSA9IGZjNHR5cGU7CQkvKiBTQ1NJIC0gRkNQICovCiAKQEAgLTgzMCw5ICs4MTUsNyBAQCBzdGF0aWMgaW50IHFsYV9hc3luY19ybm5pZChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgcG9ydF9pZF90ICpkX2lkLAogCWN0X3JlcSA9IHFsYTJ4MDBfcHJlcF9jdF9yZXEoY3Rfc25zLCBSTk5fSURfQ01ELCBSTk5fSURfUlNQX1NJWkUpOwogCiAJLyogUHJlcGFyZSBDVCBhcmd1bWVudHMgLS0gcG9ydF9pZCwgbm9kZV9uYW1lICovCi0JY3RfcmVxLT5yZXEucm5uX2lkLnBvcnRfaWRbMF0gPSB2aGEtPmRfaWQuYi5kb21haW47Ci0JY3RfcmVxLT5yZXEucm5uX2lkLnBvcnRfaWRbMV0gPSB2aGEtPmRfaWQuYi5hcmVhOwotCWN0X3JlcS0+cmVxLnJubl9pZC5wb3J0X2lkWzJdID0gdmhhLT5kX2lkLmIuYWxfcGE7CisJY3RfcmVxLT5yZXEucm5uX2lkLnBvcnRfaWQgPSBwb3J0X2lkX3RvX2JlX2lkKHZoYS0+ZF9pZCk7CiAJbWVtY3B5KGN0X3JlcS0+cmVxLnJubl9pZC5ub2RlX25hbWUsIHZoYS0+bm9kZV9uYW1lLCBXV05fU0laRSk7CiAKIAlzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJlcV9zaXplID0gUk5OX0lEX1JFUV9TSVpFOwpAQCAtMTQ3OSw3ICsxNDYyLDcgQEAgcWxhMjR4eF9wcmVwX21zX2ZkbWlfaW9jYihzY3NpX3FsYV9ob3N0X3QgKnZoYSwgdWludDMyX3QgcmVxX3NpemUsCiAJcmV0dXJuIGN0X3BrdDsKIH0KIAotc3RhdGljIGlubGluZSBtc19pb2NiX2VudHJ5X3QgKgorc3RhdGljIHZvaWQKIHFsYTJ4MDBfdXBkYXRlX21zX2ZkbWlfaW9jYihzY3NpX3FsYV9ob3N0X3QgKnZoYSwgdWludDMyX3QgcmVxX3NpemUpCiB7CiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHZoYS0+aHc7CkBAIC0xNDkzLDggKzE0NzYsNiBAQCBxbGEyeDAwX3VwZGF0ZV9tc19mZG1pX2lvY2Ioc2NzaV9xbGFfaG9zdF90ICp2aGEsIHVpbnQzMl90IHJlcV9zaXplKQogCQltc19wa3QtPnJlcV9ieXRlY291bnQgPSBjcHVfdG9fbGUzMihyZXFfc2l6ZSk7CiAJCW1zX3BrdC0+cmVxX2RzZC5sZW5ndGggPSBtc19wa3QtPnJlcV9ieXRlY291bnQ7CiAJfQotCi0JcmV0dXJuIG1zX3BrdDsKIH0KIAogLyoqCkBAIC0xNTU3LDcgKzE1MzgsNyBAQCBxbGEyeDAwX2ZkbWlfcmhiYShzY3NpX3FsYV9ob3N0X3QgKnZoYSkKIAkvKiBBdHRyaWJ1dGVzICovCiAJY3RfcmVxLT5yZXEucmhiYS5hdHRycy5jb3VudCA9CiAJICAgIGNwdV90b19iZTMyKEZETUlfSEJBX0FUVFJfQ09VTlQpOwotCWVudHJpZXMgPSBjdF9yZXEtPnJlcS5yaGJhLmhiYV9pZGVudGlmaWVyOworCWVudHJpZXMgPSAmY3RfcmVxLT5yZXE7CiAKIAkvKiBOb2RlbmFtZS4gKi8KIAllaXRlciA9IGVudHJpZXMgKyBzaXplOwpAQCAtMTc2Niw3ICsxNzQ3LDcgQEAgcWxhMngwMF9mZG1pX3JwYShzY3NpX3FsYV9ob3N0X3QgKnZoYSkKIAogCS8qIEF0dHJpYnV0ZXMgKi8KIAljdF9yZXEtPnJlcS5ycGEuYXR0cnMuY291bnQgPSBjcHVfdG9fYmUzMihGRE1JX1BPUlRfQVRUUl9DT1VOVCk7Ci0JZW50cmllcyA9IGN0X3JlcS0+cmVxLnJwYS5wb3J0X25hbWU7CisJZW50cmllcyA9ICZjdF9yZXEtPnJlcTsKIAogCS8qIEZDNCB0eXBlcy4gKi8KIAllaXRlciA9IGVudHJpZXMgKyBzaXplOwpAQCAtMTk3OSw3ICsxOTYwLDcgQEAgcWxhMngwMF9mZG1pdjJfcmhiYShzY3NpX3FsYV9ob3N0X3QgKnZoYSkKIAogCS8qIEF0dHJpYnV0ZXMgKi8KIAljdF9yZXEtPnJlcS5yaGJhMi5hdHRycy5jb3VudCA9IGNwdV90b19iZTMyKEZETUlWMl9IQkFfQVRUUl9DT1VOVCk7Ci0JZW50cmllcyA9IGN0X3JlcS0+cmVxLnJoYmEyLmhiYV9pZGVudGlmaWVyOworCWVudHJpZXMgPSAmY3RfcmVxLT5yZXE7CiAKIAkvKiBOb2RlbmFtZS4gKi8KIAllaXRlciA9IGVudHJpZXMgKyBzaXplOwpAQCAtMjMzOCw3ICsyMzE5LDcgQEAgcWxhMngwMF9mZG1pdjJfcnBhKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCiAJLyogQXR0cmlidXRlcyAqLwogCWN0X3JlcS0+cmVxLnJwYTIuYXR0cnMuY291bnQgPSBjcHVfdG9fYmUzMihGRE1JVjJfUE9SVF9BVFRSX0NPVU5UKTsKLQllbnRyaWVzID0gY3RfcmVxLT5yZXEucnBhMi5wb3J0X25hbWU7CisJZW50cmllcyA9ICZjdF9yZXEtPnJlcTsKIAogCS8qIEZDNCB0eXBlcy4gKi8KIAllaXRlciA9IGVudHJpZXMgKyBzaXplOwpAQCAtMjczMCw5ICsyNzExLDcgQEAgcWxhMngwMF9nZnBuX2lkKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzd19pbmZvX3QgKmxpc3QpCiAJCWN0X3JzcCA9ICZoYS0+Y3Rfc25zLT5wLnJzcDsKIAogCQkvKiBQcmVwYXJlIENUIGFyZ3VtZW50cyAtLSBwb3J0X2lkICovCi0JCWN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZFswXSA9IGxpc3RbaV0uZF9pZC5iLmRvbWFpbjsKLQkJY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkWzFdID0gbGlzdFtpXS5kX2lkLmIuYXJlYTsKLQkJY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkWzJdID0gbGlzdFtpXS5kX2lkLmIuYWxfcGE7CisJCWN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZCA9IHBvcnRfaWRfdG9fYmVfaWQobGlzdFtpXS5kX2lkKTsKIAogCQkvKiBFeGVjdXRlIE1TIElPQ0IgKi8KIAkJcnZhbCA9IHFsYTJ4MDBfaXNzdWVfaW9jYih2aGEsIGhhLT5tc19pb2NiLCBoYS0+bXNfaW9jYl9kbWEsCkBAIC0yOTM2LDkgKzI5MTUsNyBAQCBxbGEyeDAwX2dmZl9pZChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgc3dfaW5mb190ICpsaXN0KQogCQljdF9yc3AgPSAmaGEtPmN0X3Nucy0+cC5yc3A7CiAKIAkJLyogUHJlcGFyZSBDVCBhcmd1bWVudHMgLS0gcG9ydF9pZCAqLwotCQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMF0gPSBsaXN0W2ldLmRfaWQuYi5kb21haW47Ci0JCWN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZFsxXSA9IGxpc3RbaV0uZF9pZC5iLmFyZWE7Ci0JCWN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZFsyXSA9IGxpc3RbaV0uZF9pZC5iLmFsX3BhOworCQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWQgPSBwb3J0X2lkX3RvX2JlX2lkKGxpc3RbaV0uZF9pZCk7CiAKIAkJLyogRXhlY3V0ZSBNUyBJT0NCICovCiAJCXJ2YWwgPSBxbGEyeDAwX2lzc3VlX2lvY2IodmhhLCBoYS0+bXNfaW9jYiwgaGEtPm1zX2lvY2JfZG1hLApAQCAtMzAxMSw5ICsyOTg4LDggQEAgdm9pZCBxbGEyNHh4X2hhbmRsZV9ncHNjX2V2ZW50KHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgZXZlbnRfYXJnICplYSkKIAlxbGFfcG9zdF9paWRtYV93b3JrKHZoYSwgZmNwb3J0KTsKIH0KIAotc3RhdGljIHZvaWQgcWxhMjR4eF9hc3luY19ncHNjX3NwX2RvbmUodm9pZCAqcywgaW50IHJlcykKK3N0YXRpYyB2b2lkIHFsYTI0eHhfYXN5bmNfZ3BzY19zcF9kb25lKHNyYl90ICpzcCwgaW50IHJlcykKIHsKLQlzdHJ1Y3Qgc3JiICpzcCA9IHM7CiAJc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSA9IHNwLT52aGE7CiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHZoYS0+aHc7CiAJZmNfcG9ydF90ICpmY3BvcnQgPSBzcC0+ZmNwb3J0OwpAQCAtMzA1NSwxMSArMzAzMSwxMCBAQCBzdGF0aWMgdm9pZCBxbGEyNHh4X2FzeW5jX2dwc2Nfc3BfZG9uZSh2b2lkICpzLCBpbnQgcmVzKQogCQkgICAgYmUxNl90b19jcHUoY3RfcnNwLT5yc3AuZ3BzYy5zcGVlZCkpOwogCX0KIAltZW1zZXQoJmVhLCAwLCBzaXplb2YoZWEpKTsKLQllYS5ldmVudCA9IEZDTUVfR1BTQ19ET05FOwogCWVhLnJjID0gcmVzOwogCWVhLmZjcG9ydCA9IGZjcG9ydDsKIAllYS5zcCA9IHNwOwotCXFsYTJ4MDBfZmNwb3J0X2V2ZW50X2hhbmRsZXIodmhhLCAmZWEpOworCXFsYTI0eHhfaGFuZGxlX2dwc2NfZXZlbnQodmhhLCAmZWEpOwogCiBkb25lOgogCXNwLT5mcmVlKHNwKTsKQEAgLTMxNDQsMTcgKzMxMTksNyBAQCB2b2lkIHFsYTI0eHhfc3BfdW5tYXAoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHNyYl90ICpzcCkKIAogCXN3aXRjaCAoc3AtPnR5cGUpIHsKIAljYXNlIFNSQl9FTFNfRENNRDoKLQkJaWYgKGMtPnUuZWxzX3Bsb2dpLmVsc19wbG9naV9weWxkKQotCQkJZG1hX2ZyZWVfY29oZXJlbnQoJnZoYS0+aHctPnBkZXYtPmRldiwKLQkJCSAgICBjLT51LmVsc19wbG9naS50eF9zaXplLAotCQkJICAgIGMtPnUuZWxzX3Bsb2dpLmVsc19wbG9naV9weWxkLAotCQkJICAgIGMtPnUuZWxzX3Bsb2dpLmVsc19wbG9naV9weWxkX2RtYSk7Ci0KLQkJaWYgKGMtPnUuZWxzX3Bsb2dpLmVsc19yZXNwX3B5bGQpCi0JCQlkbWFfZnJlZV9jb2hlcmVudCgmdmhhLT5ody0+cGRldi0+ZGV2LAotCQkJICAgIGMtPnUuZWxzX3Bsb2dpLnJ4X3NpemUsCi0JCQkgICAgYy0+dS5lbHNfcGxvZ2kuZWxzX3Jlc3BfcHlsZCwKLQkJCSAgICBjLT51LmVsc19wbG9naS5lbHNfcmVzcF9weWxkX2RtYSk7CisJCXFsYTJ4MDBfZWxzX2RjbWQyX2ZyZWUodmhhLCAmYy0+dS5lbHNfcGxvZ2kpOwogCQlicmVhazsKIAljYXNlIFNSQl9DVF9QVEhSVV9DTUQ6CiAJZGVmYXVsdDoKQEAgLTMyODAsOSArMzI0NSw4IEBAIHZvaWQgcWxhMjR4eF9oYW5kbGVfZ3BuaWRfZXZlbnQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHN0cnVjdCBldmVudF9hcmcgKmVhKQogCX0KIH0KIAotc3RhdGljIHZvaWQgcWxhMngwMF9hc3luY19ncG5pZF9zcF9kb25lKHZvaWQgKnMsIGludCByZXMpCitzdGF0aWMgdm9pZCBxbGEyeDAwX2FzeW5jX2dwbmlkX3NwX2RvbmUoc3JiX3QgKnNwLCBpbnQgcmVzKQogewotCXN0cnVjdCBzcmIgKnNwID0gczsKIAlzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhID0gc3AtPnZoYTsKIAlzdHJ1Y3QgY3Rfc25zX3JlcSAqY3RfcmVxID0KIAkgICAgKHN0cnVjdCBjdF9zbnNfcmVxICopc3AtPnUuaW9jYl9jbWQudS5jdGFyZy5yZXE7CkBAIC0zMjk1LDIyICszMjU5LDE5IEBAIHN0YXRpYyB2b2lkIHFsYTJ4MDBfYXN5bmNfZ3BuaWRfc3BfZG9uZSh2b2lkICpzLCBpbnQgcmVzKQogCWlmIChyZXMpCiAJCXFsX2RiZyhxbF9kYmdfZGlzYywgdmhhLCAweDIwNjYsCiAJCSAgICAiQXN5bmMgZG9uZS0lcyBmYWlsIHJlcyAleCByc2NuIGdlbiAlZCBJRCAlM3BoQy4gJThwaENcbiIsCi0JCSAgICBzcC0+bmFtZSwgcmVzLCBzcC0+Z2VuMSwgY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkLAorCQkgICAgc3AtPm5hbWUsIHJlcywgc3AtPmdlbjEsICZjdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWQsCiAJCSAgICBjdF9yc3AtPnJzcC5ncG5faWQucG9ydF9uYW1lKTsKIAllbHNlCiAJCXFsX2RiZyhxbF9kYmdfZGlzYywgdmhhLCAweDIwNjYsCiAJCSAgICAiQXN5bmMgZG9uZS0lcyBnb29kIHJzY24gZ2VuICVkIElEICUzcGhDLiAlOHBoQ1xuIiwKLQkJICAgIHNwLT5uYW1lLCBzcC0+Z2VuMSwgY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkLAorCQkgICAgc3AtPm5hbWUsIHNwLT5nZW4xLCAmY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkLAogCQkgICAgY3RfcnNwLT5yc3AuZ3BuX2lkLnBvcnRfbmFtZSk7CiAKIAltZW1zZXQoJmVhLCAwLCBzaXplb2YoZWEpKTsKIAltZW1jcHkoZWEucG9ydF9uYW1lLCBjdF9yc3AtPnJzcC5ncG5faWQucG9ydF9uYW1lLCBXV05fU0laRSk7CiAJZWEuc3AgPSBzcDsKLQllYS5pZC5iLmRvbWFpbiA9IGN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZFswXTsKLQllYS5pZC5iLmFyZWEgPSBjdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMV07Ci0JZWEuaWQuYi5hbF9wYSA9IGN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZFsyXTsKKwllYS5pZCA9IGJlX3RvX3BvcnRfaWQoY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkKTsKIAllYS5yYyA9IHJlczsKLQllYS5ldmVudCA9IEZDTUVfR1BOSURfRE9ORTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZ2aGEtPmh3LT50Z3Quc2Vzc19sb2NrLCBmbGFncyk7CiAJbGlzdF9kZWwoJnNwLT5lbGVtKTsKQEAgLTMzMjksMjUgKzMyOTAsMjIgQEAgc3RhdGljIHZvaWQgcWxhMngwMF9hc3luY19ncG5pZF9zcF9kb25lKHZvaWQgKnMsIGludCByZXMpCiAJCXJldHVybjsKIAl9CiAKLQlxbGEyeDAwX2ZjcG9ydF9ldmVudF9oYW5kbGVyKHZoYSwgJmVhKTsKKwlxbGEyNHh4X2hhbmRsZV9ncG5pZF9ldmVudCh2aGEsICZlYSk7CiAKIAllID0gcWxhMngwMF9hbGxvY193b3JrKHZoYSwgUUxBX0VWVF9VTk1BUCk7CiAJaWYgKCFlKSB7CiAJCS8qIHBsZWFzZSBpZ25vcmUga2VybmVsIHdhcm5pbmcuIG90aGVyd2lzZSwgd2UgaGF2ZSBtZW0gbGVhay4gKi8KLQkJaWYgKHNwLT51LmlvY2JfY21kLnUuY3RhcmcucmVxKSB7Ci0JCQlkbWFfZnJlZV9jb2hlcmVudCgmdmhhLT5ody0+cGRldi0+ZGV2LAotCQkJCXNwLT51LmlvY2JfY21kLnUuY3RhcmcucmVxX2FsbG9jYXRlZF9zaXplLAotCQkJCXNwLT51LmlvY2JfY21kLnUuY3RhcmcucmVxLAotCQkJCXNwLT51LmlvY2JfY21kLnUuY3RhcmcucmVxX2RtYSk7Ci0JCQlzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJlcSA9IE5VTEw7Ci0JCX0KLQkJaWYgKHNwLT51LmlvY2JfY21kLnUuY3RhcmcucnNwKSB7Ci0JCQlkbWFfZnJlZV9jb2hlcmVudCgmdmhhLT5ody0+cGRldi0+ZGV2LAotCQkJCXNwLT51LmlvY2JfY21kLnUuY3RhcmcucnNwX2FsbG9jYXRlZF9zaXplLAotCQkJCXNwLT51LmlvY2JfY21kLnUuY3RhcmcucnNwLAotCQkJCXNwLT51LmlvY2JfY21kLnUuY3RhcmcucnNwX2RtYSk7Ci0JCQlzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJzcCA9IE5VTEw7Ci0JCX0KKwkJZG1hX2ZyZWVfY29oZXJlbnQoJnZoYS0+aHctPnBkZXYtPmRldiwKKwkJCQkgIHNwLT51LmlvY2JfY21kLnUuY3RhcmcucmVxX2FsbG9jYXRlZF9zaXplLAorCQkJCSAgc3AtPnUuaW9jYl9jbWQudS5jdGFyZy5yZXEsCisJCQkJICBzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJlcV9kbWEpOworCQlzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJlcSA9IE5VTEw7CisKKwkJZG1hX2ZyZWVfY29oZXJlbnQoJnZoYS0+aHctPnBkZXYtPmRldiwKKwkJCQkgIHNwLT51LmlvY2JfY21kLnUuY3RhcmcucnNwX2FsbG9jYXRlZF9zaXplLAorCQkJCSAgc3AtPnUuaW9jYl9jbWQudS5jdGFyZy5yc3AsCisJCQkJICBzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJzcF9kbWEpOworCQlzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJzcCA9IE5VTEw7CiAKIAkJc3AtPmZyZWUoc3ApOwogCQlyZXR1cm47CkBAIC0zNDE5LDkgKzMzNzcsNyBAQCBpbnQgcWxhMjR4eF9hc3luY19ncG5pZChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgcG9ydF9pZF90ICppZCkKIAljdF9yZXEgPSBxbGEyeDAwX3ByZXBfY3RfcmVxKGN0X3NucywgR1BOX0lEX0NNRCwgR1BOX0lEX1JTUF9TSVpFKTsKIAogCS8qIEdQTl9JRCByZXEgKi8KLQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMF0gPSBpZC0+Yi5kb21haW47Ci0JY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkWzFdID0gaWQtPmIuYXJlYTsKLQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMl0gPSBpZC0+Yi5hbF9wYTsKKwljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWQgPSBwb3J0X2lkX3RvX2JlX2lkKCppZCk7CiAKIAlzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJlcV9zaXplID0gR1BOX0lEX1JFUV9TSVpFOwogCXNwLT51LmlvY2JfY21kLnUuY3RhcmcucnNwX3NpemUgPSBHUE5fSURfUlNQX1NJWkU7CkBAIC0zNDMyLDcgKzMzODgsNyBAQCBpbnQgcWxhMjR4eF9hc3luY19ncG5pZChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgcG9ydF9pZF90ICppZCkKIAogCXFsX2RiZyhxbF9kYmdfZGlzYywgdmhhLCAweDIwNjcsCiAJICAgICJBc3luYy0lcyBoZGw9JXggSUQgJTNwaEMuXG4iLCBzcC0+bmFtZSwKLQkgICAgc3AtPmhhbmRsZSwgY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkKTsKKwkgICAgc3AtPmhhbmRsZSwgJmN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZCk7CiAKIAlydmFsID0gcWxhMngwMF9zdGFydF9zcChzcCk7CiAJaWYgKHJ2YWwgIT0gUUxBX1NVQ0NFU1MpCkBAIC0zNDY3LDU0ICszNDIzLDUyIEBAIGludCBxbGEyNHh4X2FzeW5jX2dwbmlkKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBwb3J0X2lkX3QgKmlkKQogCiB2b2lkIHFsYTI0eHhfaGFuZGxlX2dmZmlkX2V2ZW50KHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgZXZlbnRfYXJnICplYSkKIHsKLSAgICAgICBmY19wb3J0X3QgKmZjcG9ydCA9IGVhLT5mY3BvcnQ7CisJZmNfcG9ydF90ICpmY3BvcnQgPSBlYS0+ZmNwb3J0OwogCi0gICAgICAgcWxhMjR4eF9wb3N0X2dubF93b3JrKHZoYSwgZmNwb3J0KTsKKwlxbGEyNHh4X3Bvc3RfZ25sX3dvcmsodmhhLCBmY3BvcnQpOwogfQogCi12b2lkIHFsYTI0eHhfYXN5bmNfZ2ZmaWRfc3BfZG9uZSh2b2lkICpzLCBpbnQgcmVzKQordm9pZCBxbGEyNHh4X2FzeW5jX2dmZmlkX3NwX2RvbmUoc3JiX3QgKnNwLCBpbnQgcmVzKQogewotICAgICAgIHN0cnVjdCBzcmIgKnNwID0gczsKLSAgICAgICBzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhID0gc3AtPnZoYTsKLSAgICAgICBmY19wb3J0X3QgKmZjcG9ydCA9IHNwLT5mY3BvcnQ7Ci0gICAgICAgc3RydWN0IGN0X3Nuc19yc3AgKmN0X3JzcDsKLSAgICAgICBzdHJ1Y3QgZXZlbnRfYXJnIGVhOworCXN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEgPSBzcC0+dmhhOworCWZjX3BvcnRfdCAqZmNwb3J0ID0gc3AtPmZjcG9ydDsKKwlzdHJ1Y3QgY3Rfc25zX3JzcCAqY3RfcnNwOworCXN0cnVjdCBldmVudF9hcmcgZWE7CiAKLSAgICAgICBxbF9kYmcocWxfZGJnX2Rpc2MsIHZoYSwgMHgyMTMzLAotCSAgICJBc3luYyBkb25lLSVzIHJlcyAleCBJRCAleC4gJThwaENcbiIsCi0JICAgc3AtPm5hbWUsIHJlcywgZmNwb3J0LT5kX2lkLmIyNCwgZmNwb3J0LT5wb3J0X25hbWUpOworCXFsX2RiZyhxbF9kYmdfZGlzYywgdmhhLCAweDIxMzMsCisJICAgICAgICJBc3luYyBkb25lLSVzIHJlcyAleCBJRCAleC4gJThwaENcbiIsCisJICAgICAgIHNwLT5uYW1lLCByZXMsIGZjcG9ydC0+ZF9pZC5iMjQsIGZjcG9ydC0+cG9ydF9uYW1lKTsKIAotICAgICAgIGZjcG9ydC0+ZmxhZ3MgJj0gfkZDRl9BU1lOQ19TRU5UOwotICAgICAgIGN0X3JzcCA9ICZmY3BvcnQtPmN0X2Rlc2MuY3Rfc25zLT5wLnJzcDsKLSAgICAgICAvKgotCSogRkMtR1MtNywgNS4yLjMuMTIgRkMtNCBGZWF0dXJlcyAtIGZvcm1hdAotCSogVGhlIGZvcm1hdCBvZiB0aGUgRkMtNCBGZWF0dXJlcyBvYmplY3QsIGFzIGRlZmluZWQgYnkgdGhlIEZDLTQsCi0JKiBTaGFsbCBiZSBhbiBhcnJheSBvZiA0LWJpdCB2YWx1ZXMsIG9uZSBmb3IgZWFjaCB0eXBlIGNvZGUgdmFsdWUKLQkqLwotICAgICAgIGlmICghcmVzKSB7Ci0JICAgICAgIGlmIChjdF9yc3AtPnJzcC5nZmZfaWQuZmM0X2ZlYXR1cmVzW0dGRl9GQ1BfU0NTSV9PRkZTRVRdICYgMHhmKSB7Ci0JCSAgICAgICAvKiB3MSBiMDA6MDMgKi8KLQkJICAgICAgIGZjcG9ydC0+ZmM0X3R5cGUgPQotCQkJICAgY3RfcnNwLT5yc3AuZ2ZmX2lkLmZjNF9mZWF0dXJlc1tHRkZfRkNQX1NDU0lfT0ZGU0VUXTsKLQkJICAgICAgIGZjcG9ydC0+ZmM0X3R5cGUgJj0gMHhmOworCWZjcG9ydC0+ZmxhZ3MgJj0gfkZDRl9BU1lOQ19TRU5UOworCWN0X3JzcCA9ICZmY3BvcnQtPmN0X2Rlc2MuY3Rfc25zLT5wLnJzcDsKKwkvKgorCSAqIEZDLUdTLTcsIDUuMi4zLjEyIEZDLTQgRmVhdHVyZXMgLSBmb3JtYXQKKwkgKiBUaGUgZm9ybWF0IG9mIHRoZSBGQy00IEZlYXR1cmVzIG9iamVjdCwgYXMgZGVmaW5lZCBieSB0aGUgRkMtNCwKKwkgKiBTaGFsbCBiZSBhbiBhcnJheSBvZiA0LWJpdCB2YWx1ZXMsIG9uZSBmb3IgZWFjaCB0eXBlIGNvZGUgdmFsdWUKKwkgKi8KKwlpZiAoIXJlcykgeworCQlpZiAoY3RfcnNwLT5yc3AuZ2ZmX2lkLmZjNF9mZWF0dXJlc1tHRkZfRkNQX1NDU0lfT0ZGU0VUXSAmIDB4ZikgeworCQkJLyogdzEgYjAwOjAzICovCisJCQlmY3BvcnQtPmZjNF90eXBlID0KKwkJCSAgICBjdF9yc3AtPnJzcC5nZmZfaWQuZmM0X2ZlYXR1cmVzW0dGRl9GQ1BfU0NTSV9PRkZTRVRdOworCQkJZmNwb3J0LT5mYzRfdHlwZSAmPSAweGY7CiAJICAgICAgIH0KIAotCSAgICAgICBpZiAoY3RfcnNwLT5yc3AuZ2ZmX2lkLmZjNF9mZWF0dXJlc1tHRkZfTlZNRV9PRkZTRVRdICYgMHhmKSB7Ci0JCSAgICAgICAvKiB3NSBbMDA6MDNdLzI4aCAqLwotCQkgICAgICAgZmNwb3J0LT5mYzRmX252bWUgPQotCQkJICAgY3RfcnNwLT5yc3AuZ2ZmX2lkLmZjNF9mZWF0dXJlc1tHRkZfTlZNRV9PRkZTRVRdOwotCQkgICAgICAgZmNwb3J0LT5mYzRmX252bWUgJj0gMHhmOwotCSAgICAgICB9Ci0gICAgICAgfQorCQlpZiAoY3RfcnNwLT5yc3AuZ2ZmX2lkLmZjNF9mZWF0dXJlc1tHRkZfTlZNRV9PRkZTRVRdICYgMHhmKSB7CisJCQkvKiB3NSBbMDA6MDNdLzI4aCAqLworCQkJZmNwb3J0LT5mYzRmX252bWUgPQorCQkJICAgIGN0X3JzcC0+cnNwLmdmZl9pZC5mYzRfZmVhdHVyZXNbR0ZGX05WTUVfT0ZGU0VUXTsKKwkJCWZjcG9ydC0+ZmM0Zl9udm1lICY9IDB4ZjsKKwkJfQorCX0KIAotICAgICAgIG1lbXNldCgmZWEsIDAsIHNpemVvZihlYSkpOwotICAgICAgIGVhLnNwID0gc3A7Ci0gICAgICAgZWEuZmNwb3J0ID0gc3AtPmZjcG9ydDsKLSAgICAgICBlYS5yYyA9IHJlczsKLSAgICAgICBlYS5ldmVudCA9IEZDTUVfR0ZGSURfRE9ORTsKKwltZW1zZXQoJmVhLCAwLCBzaXplb2YoZWEpKTsKKwllYS5zcCA9IHNwOworCWVhLmZjcG9ydCA9IHNwLT5mY3BvcnQ7CisJZWEucmMgPSByZXM7CiAKLSAgICAgICBxbGEyeDAwX2ZjcG9ydF9ldmVudF9oYW5kbGVyKHZoYSwgJmVhKTsKLSAgICAgICBzcC0+ZnJlZShzcCk7CisJcWxhMjR4eF9oYW5kbGVfZ2ZmaWRfZXZlbnQodmhhLCAmZWEpOworCXNwLT5mcmVlKHNwKTsKIH0KIAogLyogR2V0IEZDNCBGZWF0dXJlIHdpdGggTnBvcnQgSUQuICovCkBAIC0zNjc0LDcgKzM2MjgsNiBAQCB2b2lkIHFsYTI0eHhfYXN5bmNfZ25uZnRfZG9uZShzY3NpX3FsYV9ob3N0X3QgKnZoYSwgc3JiX3QgKnNwKQogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGZjcG9ydCwgJnZoYS0+dnBfZmNwb3J0cywgbGlzdCkgewogCQkJaWYgKG1lbWNtcChycC0+cG9ydF9uYW1lLCBmY3BvcnQtPnBvcnRfbmFtZSwgV1dOX1NJWkUpKQogCQkJCWNvbnRpbnVlOwotCQkJZmNwb3J0LT5zY2FuX25lZWRlZCA9IDA7CiAJCQlmY3BvcnQtPnNjYW5fc3RhdGUgPSBRTEFfRkNQT1JUX0ZPVU5EOwogCQkJZm91bmQgPSB0cnVlOwogCQkJLyoKQEAgLTM2ODMsMTAgKzM2MzYsMTIgQEAgdm9pZCBxbGEyNHh4X2FzeW5jX2dubmZ0X2RvbmUoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHNyYl90ICpzcCkKIAkJCWlmICgoZmNwb3J0LT5mbGFncyAmIEZDRl9GQUJSSUNfREVWSUNFKSA9PSAwKSB7CiAJCQkJcWxhMngwMF9jbGVhcl9sb29wX2lkKGZjcG9ydCk7CiAJCQkJZmNwb3J0LT5mbGFncyB8PSBGQ0ZfRkFCUklDX0RFVklDRTsKLQkJCX0gZWxzZSBpZiAoZmNwb3J0LT5kX2lkLmIyNCAhPSBycC0+aWQuYjI0KSB7CisJCQl9IGVsc2UgaWYgKGZjcG9ydC0+ZF9pZC5iMjQgIT0gcnAtPmlkLmIyNCB8fAorCQkJCWZjcG9ydC0+c2Nhbl9uZWVkZWQpIHsKIAkJCQlxbHRfc2NoZWR1bGVfc2Vzc19mb3JfZGVsZXRpb24oZmNwb3J0KTsKIAkJCX0KIAkJCWZjcG9ydC0+ZF9pZC5iMjQgPSBycC0+aWQuYjI0OworCQkJZmNwb3J0LT5zY2FuX25lZWRlZCA9IDA7CiAJCQlicmVhazsKIAkJfQogCkBAIC0zODk4LDkgKzM4NTMsOCBAQCBzdGF0aWMgdm9pZCBxbGEyeDAwX2ZpbmRfZnJlZV9mY3BfbnZtZV9zbG90KHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBxbGEyeDAwX2FzeW5jX2dwbmZ0X2dubmZ0X3NwX2RvbmUodm9pZCAqcywgaW50IHJlcykKK3N0YXRpYyB2b2lkIHFsYTJ4MDBfYXN5bmNfZ3BuZnRfZ25uZnRfc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3RydWN0IHNyYiAqc3AgPSBzOwogCXN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEgPSBzcC0+dmhhOwogCXN0cnVjdCBjdF9zbnNfcmVxICpjdF9yZXEgPQogCQkoc3RydWN0IGN0X3Nuc19yZXEgKilzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJlcTsKQEAgLTQwNTMsOSArNDAwNyw2IEBAIHN0YXRpYyBpbnQgcWxhMjR4eF9hc3luY19nbm5mdChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgc3RydWN0IHNyYiAqc3AsCiAKIAlydmFsID0gcWxhMngwMF9zdGFydF9zcChzcCk7CiAJaWYgKHJ2YWwgIT0gUUxBX1NVQ0NFU1MpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJnZoYS0+d29ya19sb2NrLCBmbGFncyk7Ci0JCXZoYS0+c2Nhbi5zY2FuX2ZsYWdzICY9IH5TRl9TQ0FOTklORzsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmhhLT53b3JrX2xvY2ssIGZsYWdzKTsKIAkJZ290byBkb25lX2ZyZWVfc3A7CiAJfQogCkBAIC00MDc5LDYgKzQwMzAsMTcgQEAgc3RhdGljIGludCBxbGEyNHh4X2FzeW5jX2dubmZ0KHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3Qgc3JiICpzcCwKIAogCXNwLT5mcmVlKHNwKTsKIAorCXNwaW5fbG9ja19pcnFzYXZlKCZ2aGEtPndvcmtfbG9jaywgZmxhZ3MpOworCXZoYS0+c2Nhbi5zY2FuX2ZsYWdzICY9IH5TRl9TQ0FOTklORzsKKwlpZiAodmhhLT5zY2FuLnNjYW5fZmxhZ3MgPT0gMCkgeworCQlxbF9kYmcocWxfZGJnX2Rpc2MsIHZoYSwgMHhmZmZmLAorCQkgICAgIiVzOiBzY2hlZHVsZVxuIiwgX19mdW5jX18pOworCQl2aGEtPnNjYW4uc2Nhbl9mbGFncyB8PSBTRl9RVUVVRUQ7CisJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmdmhhLT5zY2FuLnNjYW5fd29yaywgNSk7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZoYS0+d29ya19sb2NrLCBmbGFncyk7CisKKwogCXJldHVybiBydmFsOwogfSAvKiBHTk5GVCAqLwogCkBAIC00MTUyLDcgKzQxMTQsNyBAQCBpbnQgcWxhMjR4eF9hc3luY19ncG5mdChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgdTggZmM0X3R5cGUsIHNyYl90ICpzcCkKIAkJCQkJCQkJcnNwc3osCiAJCQkJCQkJCSZzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJzcF9kbWEsCiAJCQkJCQkJCUdGUF9LRVJORUwpOwotCQlzcC0+dS5pb2NiX2NtZC51LmN0YXJnLnJzcF9hbGxvY2F0ZWRfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgY3Rfc25zX3BrdCk7CisJCXNwLT51LmlvY2JfY21kLnUuY3RhcmcucnNwX2FsbG9jYXRlZF9zaXplID0gcnNwc3o7CiAJCWlmICghc3AtPnUuaW9jYl9jbWQudS5jdGFyZy5yc3ApIHsKIAkJCXFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweGZmZmYsCiAJCQkgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBjdF9zbnMgcmVxdWVzdC5cbiIpOwpAQCAtNDIwOCw5ICs0MTcwLDYgQEAgaW50IHFsYTI0eHhfYXN5bmNfZ3BuZnQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHU4IGZjNF90eXBlLCBzcmJfdCAqc3ApCiAKIAlydmFsID0gcWxhMngwMF9zdGFydF9zcChzcCk7CiAJaWYgKHJ2YWwgIT0gUUxBX1NVQ0NFU1MpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJnZoYS0+d29ya19sb2NrLCBmbGFncyk7Ci0JCXZoYS0+c2Nhbi5zY2FuX2ZsYWdzICY9IH5TRl9TQ0FOTklORzsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmhhLT53b3JrX2xvY2ssIGZsYWdzKTsKIAkJZ290byBkb25lX2ZyZWVfc3A7CiAJfQogCkBAIC00MjM0LDYgKzQxOTMsMTcgQEAgaW50IHFsYTI0eHhfYXN5bmNfZ3BuZnQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHU4IGZjNF90eXBlLCBzcmJfdCAqc3ApCiAKIAlzcC0+ZnJlZShzcCk7CiAKKwlzcGluX2xvY2tfaXJxc2F2ZSgmdmhhLT53b3JrX2xvY2ssIGZsYWdzKTsKKwl2aGEtPnNjYW4uc2Nhbl9mbGFncyAmPSB+U0ZfU0NBTk5JTkc7CisJaWYgKHZoYS0+c2Nhbi5zY2FuX2ZsYWdzID09IDApIHsKKwkJcWxfZGJnKHFsX2RiZ19kaXNjLCB2aGEsIDB4ZmZmZiwKKwkJICAgICIlczogc2NoZWR1bGVcbiIsIF9fZnVuY19fKTsKKwkJdmhhLT5zY2FuLnNjYW5fZmxhZ3MgfD0gU0ZfUVVFVUVEOworCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnZoYS0+c2Nhbi5zY2FuX3dvcmssIDUpOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2aGEtPndvcmtfbG9jaywgZmxhZ3MpOworCisKIAlyZXR1cm4gcnZhbDsKIH0KIApAQCAtNDI2MSw5ICs0MjMxLDggQEAgdm9pZCBxbGEyNHh4X2hhbmRsZV9nbm5pZF9ldmVudChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgc3RydWN0IGV2ZW50X2FyZyAqZWEpCiAJcWxhMjR4eF9wb3N0X2dubF93b3JrKHZoYSwgZWEtPmZjcG9ydCk7CiB9CiAKLXN0YXRpYyB2b2lkIHFsYTJ4MDBfYXN5bmNfZ25uaWRfc3BfZG9uZSh2b2lkICpzLCBpbnQgcmVzKQorc3RhdGljIHZvaWQgcWxhMngwMF9hc3luY19nbm5pZF9zcF9kb25lKHNyYl90ICpzcCwgaW50IHJlcykKIHsKLQlzdHJ1Y3Qgc3JiICpzcCA9IHM7CiAJc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSA9IHNwLT52aGE7CiAJZmNfcG9ydF90ICpmY3BvcnQgPSBzcC0+ZmNwb3J0OwogCXU4ICpub2RlX25hbWUgPSBmY3BvcnQtPmN0X2Rlc2MuY3Rfc25zLT5wLnJzcC5yc3AuZ25uX2lkLm5vZGVfbmFtZTsKQEAgLTQyNzksMTMgKzQyNDgsMTIgQEAgc3RhdGljIHZvaWQgcWxhMngwMF9hc3luY19nbm5pZF9zcF9kb25lKHZvaWQgKnMsIGludCByZXMpCiAJZWEuZmNwb3J0ID0gZmNwb3J0OwogCWVhLnNwID0gc3A7CiAJZWEucmMgPSByZXM7Ci0JZWEuZXZlbnQgPSBGQ01FX0dOTklEX0RPTkU7CiAKIAlxbF9kYmcocWxfZGJnX2Rpc2MsIHZoYSwgMHgyMDRmLAogCSAgICAiQXN5bmMgZG9uZS0lcyByZXMgJXgsIFdXUE4gJThwaEMgJThwaENcbiIsCiAJICAgIHNwLT5uYW1lLCByZXMsIGZjcG9ydC0+cG9ydF9uYW1lLCBmY3BvcnQtPm5vZGVfbmFtZSk7CiAKLQlxbGEyeDAwX2ZjcG9ydF9ldmVudF9oYW5kbGVyKHZoYSwgJmVhKTsKKwlxbGEyNHh4X2hhbmRsZV9nbm5pZF9ldmVudCh2aGEsICZlYSk7CiAKIAlzcC0+ZnJlZShzcCk7CiB9CkBAIC00MzE4LDkgKzQyODYsNyBAQCBpbnQgcWxhMjR4eF9hc3luY19nbm5pZChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgZmNfcG9ydF90ICpmY3BvcnQpCiAJICAgIEdOTl9JRF9SU1BfU0laRSk7CiAKIAkvKiBHTk5fSUQgcmVxICovCi0JY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkWzBdID0gZmNwb3J0LT5kX2lkLmIuZG9tYWluOwotCWN0X3JlcS0+cmVxLnBvcnRfaWQucG9ydF9pZFsxXSA9IGZjcG9ydC0+ZF9pZC5iLmFyZWE7Ci0JY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkWzJdID0gZmNwb3J0LT5kX2lkLmIuYWxfcGE7CisJY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkID0gcG9ydF9pZF90b19iZV9pZChmY3BvcnQtPmRfaWQpOwogCiAKIAkvKiByZXEgJiByc3AgdXNlIHRoZSBzYW1lIGJ1ZmZlciAqLwpAQCAtNDM5Niw5ICs0MzYyLDggQEAgdm9pZCBxbGEyNHh4X2hhbmRsZV9nZnBuaWRfZXZlbnQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHN0cnVjdCBldmVudF9hcmcgKmVhKQogCXFsYTI0eHhfcG9zdF9ncHNjX3dvcmsodmhhLCBmY3BvcnQpOwogfQogCi1zdGF0aWMgdm9pZCBxbGEyeDAwX2FzeW5jX2dmcG5pZF9zcF9kb25lKHZvaWQgKnMsIGludCByZXMpCitzdGF0aWMgdm9pZCBxbGEyeDAwX2FzeW5jX2dmcG5pZF9zcF9kb25lKHNyYl90ICpzcCwgaW50IHJlcykKIHsKLQlzdHJ1Y3Qgc3JiICpzcCA9IHM7CiAJc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSA9IHNwLT52aGE7CiAJZmNfcG9ydF90ICpmY3BvcnQgPSBzcC0+ZmNwb3J0OwogCXU4ICpmcG4gPSBmY3BvcnQtPmN0X2Rlc2MuY3Rfc25zLT5wLnJzcC5yc3AuZ2Zwbl9pZC5wb3J0X25hbWU7CkBAIC00NDEzLDEzICs0Mzc4LDEyIEBAIHN0YXRpYyB2b2lkIHFsYTJ4MDBfYXN5bmNfZ2ZwbmlkX3NwX2RvbmUodm9pZCAqcywgaW50IHJlcykKIAllYS5mY3BvcnQgPSBmY3BvcnQ7CiAJZWEuc3AgPSBzcDsKIAllYS5yYyA9IHJlczsKLQllYS5ldmVudCA9IEZDTUVfR0ZQTklEX0RPTkU7CiAKIAlxbF9kYmcocWxfZGJnX2Rpc2MsIHZoYSwgMHgyMDRmLAogCSAgICAiQXN5bmMgZG9uZS0lcyByZXMgJXgsIFdXUE4gJThwaEMgJThwaENcbiIsCiAJICAgIHNwLT5uYW1lLCByZXMsIGZjcG9ydC0+cG9ydF9uYW1lLCBmY3BvcnQtPmZhYnJpY19wb3J0X25hbWUpOwogCi0JcWxhMngwMF9mY3BvcnRfZXZlbnRfaGFuZGxlcih2aGEsICZlYSk7CisJcWxhMjR4eF9oYW5kbGVfZ2ZwbmlkX2V2ZW50KHZoYSwgJmVhKTsKIAogCXNwLT5mcmVlKHNwKTsKIH0KQEAgLTQ0NTAsOSArNDQxNCw3IEBAIGludCBxbGEyNHh4X2FzeW5jX2dmcG5pZChzY3NpX3FsYV9ob3N0X3QgKnZoYSwgZmNfcG9ydF90ICpmY3BvcnQpCiAJICAgIEdGUE5fSURfUlNQX1NJWkUpOwogCiAJLyogR0ZQTl9JRCByZXEgKi8KLQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMF0gPSBmY3BvcnQtPmRfaWQuYi5kb21haW47Ci0JY3RfcmVxLT5yZXEucG9ydF9pZC5wb3J0X2lkWzFdID0gZmNwb3J0LT5kX2lkLmIuYXJlYTsKLQljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWRbMl0gPSBmY3BvcnQtPmRfaWQuYi5hbF9wYTsKKwljdF9yZXEtPnJlcS5wb3J0X2lkLnBvcnRfaWQgPSBwb3J0X2lkX3RvX2JlX2lkKGZjcG9ydC0+ZF9pZCk7CiAKIAogCS8qIHJlcSAmIHJzcCB1c2UgdGhlIHNhbWUgYnVmZmVyICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaW5pdC5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2luaXQuYwppbmRleCBkNGMzYmFlLi42NDNkMjMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaW5pdC5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pbml0LmMKQEAgLTM3LDggKzM3LDggQEAgc3RhdGljIHN0cnVjdCBxbGFfY2hpcF9zdGF0ZV84NHh4ICpxbGE4NHh4X2dldF9jaGlwKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICopOwogc3RhdGljIGludCBxbGE4NHh4X2luaXRfY2hpcChzY3NpX3FsYV9ob3N0X3QgKik7CiBzdGF0aWMgaW50IHFsYTI1eHhfaW5pdF9xdWV1ZXMoc3RydWN0IHFsYV9od19kYXRhICopOwogc3RhdGljIGludCBxbGEyNHh4X3Bvc3RfcHJsaV93b3JrKHN0cnVjdCBzY3NpX3FsYV9ob3N0KiwgZmNfcG9ydF90ICopOwotc3RhdGljIHZvaWQgcWxhMjR4eF9oYW5kbGVfcGxvZ2lfZG9uZV9ldmVudChzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLAotICAgIHN0cnVjdCBldmVudF9hcmcgKik7CitzdGF0aWMgdm9pZCBxbGEyNHh4X2hhbmRsZV9ncGRiX2V2ZW50KHNjc2lfcWxhX2hvc3RfdCAqdmhhLAorCQkJCSAgICAgIHN0cnVjdCBldmVudF9hcmcgKmVhKTsKIHN0YXRpYyB2b2lkIHFsYTI0eHhfaGFuZGxlX3BybGlfZG9uZV9ldmVudChzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLAogICAgIHN0cnVjdCBldmVudF9hcmcgKik7CiBzdGF0aWMgdm9pZCBfX3FsYTI0eHhfaGFuZGxlX2dwZGJfZXZlbnQoc2NzaV9xbGFfaG9zdF90ICosIHN0cnVjdCBldmVudF9hcmcgKik7CkBAIC02MywxMCArNjMsOCBAQCBxbGEyeDAwX3NwX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJaW9jYi0+dGltZW91dChzcCk7CiB9CiAKLXZvaWQKLXFsYTJ4MDBfc3BfZnJlZSh2b2lkICpwdHIpCit2b2lkIHFsYTJ4MDBfc3BfZnJlZShzcmJfdCAqc3ApCiB7Ci0Jc3JiX3QgKnNwID0gcHRyOwogCXN0cnVjdCBzcmJfaW9jYiAqaW9jYiA9ICZzcC0+dS5pb2NiX2NtZDsKIAogCWRlbF90aW1lcigmaW9jYi0+dGltZXIpOwpAQCAtOTksMjIgKzk3LDMzIEBAIHN0YXRpYyB2b2lkIHFsYTI0eHhfYWJvcnRfaW9jYl90aW1lb3V0KHZvaWQgKmRhdGEpCiB7CiAJc3JiX3QgKnNwID0gZGF0YTsKIAlzdHJ1Y3Qgc3JiX2lvY2IgKmFidCA9ICZzcC0+dS5pb2NiX2NtZDsKKwlzdHJ1Y3QgcWxhX3FwYWlyICpxcGFpciA9IHNwLT5xcGFpcjsKKwl1MzIgaGFuZGxlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZShxcGFpci0+cXBfbG9ja19wdHIsIGZsYWdzKTsKKwlmb3IgKGhhbmRsZSA9IDE7IGhhbmRsZSA8IHFwYWlyLT5yZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzOyBoYW5kbGUrKykgeworCQkvKiByZW1vdmluZyB0aGUgYWJvcnQgKi8KKwkJaWYgKHFwYWlyLT5yZXEtPm91dHN0YW5kaW5nX2NtZHNbaGFuZGxlXSA9PSBzcCkgeworCQkJcXBhaXItPnJlcS0+b3V0c3RhbmRpbmdfY21kc1toYW5kbGVdID0gTlVMTDsKKwkJCWJyZWFrOworCQl9CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUocXBhaXItPnFwX2xvY2tfcHRyLCBmbGFncyk7CiAKIAlhYnQtPnUuYWJ0LmNvbXBfc3RhdHVzID0gQ1NfVElNRU9VVDsKLQlzcC0+ZG9uZShzcCwgUUxBX0ZVTkNUSU9OX1RJTUVPVVQpOworCXNwLT5kb25lKHNwLCBRTEFfT1NfVElNRVJfRVhQSVJFRCk7CiB9CiAKLXN0YXRpYyB2b2lkIHFsYTI0eHhfYWJvcnRfc3BfZG9uZSh2b2lkICpwdHIsIGludCByZXMpCitzdGF0aWMgdm9pZCBxbGEyNHh4X2Fib3J0X3NwX2RvbmUoc3JiX3QgKnNwLCBpbnQgcmVzKQogewotCXNyYl90ICpzcCA9IHB0cjsKIAlzdHJ1Y3Qgc3JiX2lvY2IgKmFidCA9ICZzcC0+dS5pb2NiX2NtZDsKIAotCWlmIChkZWxfdGltZXIoJnNwLT51LmlvY2JfY21kLnRpbWVyKSkgewotCQlpZiAoc3AtPmZsYWdzICYgU1JCX1dBS0VVUF9PTl9DT01QKQotCQkJY29tcGxldGUoJmFidC0+dS5hYnQuY29tcCk7Ci0JCWVsc2UKLQkJCXNwLT5mcmVlKHNwKTsKLQl9CisJZGVsX3RpbWVyKCZzcC0+dS5pb2NiX2NtZC50aW1lcik7CisJaWYgKHNwLT5mbGFncyAmIFNSQl9XQUtFVVBfT05fQ09NUCkKKwkJY29tcGxldGUoJmFidC0+dS5hYnQuY29tcCk7CisJZWxzZQorCQlzcC0+ZnJlZShzcCk7CiB9CiAKIHN0YXRpYyBpbnQgcWxhMjR4eF9hc3luY19hYm9ydF9jbWQoc3JiX3QgKmNtZF9zcCwgYm9vbCB3YWl0KQpAQCAtMTI3LDcgKzEzNiw3IEBAIHN0YXRpYyBpbnQgcWxhMjR4eF9hc3luY19hYm9ydF9jbWQoc3JiX3QgKmNtZF9zcCwgYm9vbCB3YWl0KQogCXNwID0gcWxhMnh4eF9nZXRfcXBhaXJfc3AoY21kX3NwLT52aGEsIGNtZF9zcC0+cXBhaXIsIGNtZF9zcC0+ZmNwb3J0LAogCQkJCSAgR0ZQX0FUT01JQyk7CiAJaWYgKCFzcCkKLQkJZ290byBkb25lOworCQlyZXR1cm4gcnZhbDsKIAogCWFidF9pb2NiID0gJnNwLT51LmlvY2JfY21kOwogCXNwLT50eXBlID0gU1JCX0FCVF9DTUQ7CkBAIC0xNTEsMjAgKzE2MCwxOCBAQCBzdGF0aWMgaW50IHFsYTI0eHhfYXN5bmNfYWJvcnRfY21kKHNyYl90ICpjbWRfc3AsIGJvb2wgd2FpdCkKIAkgICAgICAgY21kX3NwLT50eXBlKTsKIAogCXJ2YWwgPSBxbGEyeDAwX3N0YXJ0X3NwKHNwKTsKLQlpZiAocnZhbCAhPSBRTEFfU1VDQ0VTUykKLQkJZ290byBkb25lX2ZyZWVfc3A7CisJaWYgKHJ2YWwgIT0gUUxBX1NVQ0NFU1MpIHsKKwkJc3AtPmZyZWUoc3ApOworCQlyZXR1cm4gcnZhbDsKKwl9CiAKIAlpZiAod2FpdCkgewogCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZhYnRfaW9jYi0+dS5hYnQuY29tcCk7CiAJCXJ2YWwgPSBhYnRfaW9jYi0+dS5hYnQuY29tcF9zdGF0dXMgPT0gQ1NfQ09NUExFVEUgPwogCQkJUUxBX1NVQ0NFU1MgOiBRTEFfRlVOQ1RJT05fRkFJTEVEOwotCX0gZWxzZSB7Ci0JCWdvdG8gZG9uZTsKKwkJc3AtPmZyZWUoc3ApOwogCX0KIAotZG9uZV9mcmVlX3NwOgotCXNwLT5mcmVlKHNwKTsKLWRvbmU6CiAJcmV0dXJuIHJ2YWw7CiB9CiAKQEAgLTIzNCwxMyArMjQxLDE1IEBAIHFsYTJ4MDBfYXN5bmNfaW9jYl90aW1lb3V0KHZvaWQgKmRhdGEpCiAJCQlzcC0+ZG9uZShzcCwgUUxBX0ZVTkNUSU9OX1RJTUVPVVQpOwogCQl9CiAJCWJyZWFrOworCWRlZmF1bHQ6CisJCVdBUk5fT05fT05DRSh0cnVlKTsKKwkJc3AtPmRvbmUoc3AsIFFMQV9GVU5DVElPTl9USU1FT1VUKTsKKwkJYnJlYWs7CiAJfQogfQogCi1zdGF0aWMgdm9pZAotcWxhMngwMF9hc3luY19sb2dpbl9zcF9kb25lKHZvaWQgKnB0ciwgaW50IHJlcykKK3N0YXRpYyB2b2lkIHFsYTJ4MDBfYXN5bmNfbG9naW5fc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3JiX3QgKnNwID0gcHRyOwogCXN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEgPSBzcC0+dmhhOwogCXN0cnVjdCBzcmJfaW9jYiAqbGlvID0gJnNwLT51LmlvY2JfY21kOwogCXN0cnVjdCBldmVudF9hcmcgZWE7CkBAIC0yNTIsMTQgKzI2MSwxMyBAQCBxbGEyeDAwX2FzeW5jX2xvZ2luX3NwX2RvbmUodm9pZCAqcHRyLCBpbnQgcmVzKQogCiAJaWYgKCF0ZXN0X2JpdChVTkxPQURJTkcsICZ2aGEtPmRwY19mbGFncykpIHsKIAkJbWVtc2V0KCZlYSwgMCwgc2l6ZW9mKGVhKSk7Ci0JCWVhLmV2ZW50ID0gRkNNRV9QTE9HSV9ET05FOwogCQllYS5mY3BvcnQgPSBzcC0+ZmNwb3J0OwogCQllYS5kYXRhWzBdID0gbGlvLT51LmxvZ2lvLmRhdGFbMF07CiAJCWVhLmRhdGFbMV0gPSBsaW8tPnUubG9naW8uZGF0YVsxXTsKIAkJZWEuaW9wWzBdID0gbGlvLT51LmxvZ2lvLmlvcFswXTsKIAkJZWEuaW9wWzFdID0gbGlvLT51LmxvZ2lvLmlvcFsxXTsKIAkJZWEuc3AgPSBzcDsKLQkJcWxhMngwMF9mY3BvcnRfZXZlbnRfaGFuZGxlcih2aGEsICZlYSk7CisJCXFsYTI0eHhfaGFuZGxlX3Bsb2dpX2RvbmVfZXZlbnQodmhhLCAmZWEpOwogCX0KIAogCXNwLT5mcmVlKHNwKTsKQEAgLTI4OSw4ICsyOTcsMTMgQEAgcWxhMngwMF9hc3luY19sb2dpbihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBmY19wb3J0X3QgKmZjcG9ydCwKIAlzdHJ1Y3Qgc3JiX2lvY2IgKmxpbzsKIAlpbnQgcnZhbCA9IFFMQV9GVU5DVElPTl9GQUlMRUQ7CiAKLQlpZiAoIXZoYS0+ZmxhZ3Mub25saW5lKQotCQlnb3RvIGRvbmU7CisJaWYgKCF2aGEtPmZsYWdzLm9ubGluZSB8fCAoZmNwb3J0LT5mbGFncyAmIEZDRl9BU1lOQ19TRU5UKSB8fAorCSAgICBmY3BvcnQtPmxvb3BfaWQgPT0gRkNfTk9fTE9PUF9JRCkgeworCQlxbF9sb2cocWxfbG9nX3dhcm4sIHZoYSwgMHhmZmZmLAorCQkgICAgIiVzOiAlOHBoQyAtIG5vdCBzZW5kaW5nIGNvbW1hbmQuXG4iLAorCQkgICAgX19mdW5jX18sIGZjcG9ydC0+cG9ydF9uYW1lKTsKKwkJcmV0dXJuIHJ2YWw7CisJfQogCiAJc3AgPSBxbGEyeDAwX2dldF9zcCh2aGEsIGZjcG9ydCwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzcCkKQEAgLTM0MSwxMSArMzU0LDggQEAgcWxhMngwMF9hc3luY19sb2dpbihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBmY19wb3J0X3QgKmZjcG9ydCwKIAlyZXR1cm4gcnZhbDsKIH0KIAotc3RhdGljIHZvaWQKLXFsYTJ4MDBfYXN5bmNfbG9nb3V0X3NwX2RvbmUodm9pZCAqcHRyLCBpbnQgcmVzKQorc3RhdGljIHZvaWQgcWxhMngwMF9hc3luY19sb2dvdXRfc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3JiX3QgKnNwID0gcHRyOwotCiAJc3AtPmZjcG9ydC0+ZmxhZ3MgJj0gfihGQ0ZfQVNZTkNfU0VOVCB8IEZDRl9BU1lOQ19BQ1RJVkUpOwogCXNwLT5mY3BvcnQtPmxvZ2luX2dlbisrOwogCXFsdF9sb2dvX2NvbXBsZXRpb25faGFuZGxlcihzcC0+ZmNwb3J0LCByZXMpOwpAQCAtMzU5LDkgKzM2OSw2IEBAIHFsYTJ4MDBfYXN5bmNfbG9nb3V0KHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGZjX3BvcnRfdCAqZmNwb3J0KQogCXN0cnVjdCBzcmJfaW9jYiAqbGlvOwogCWludCBydmFsID0gUUxBX0ZVTkNUSU9OX0ZBSUxFRDsKIAotCWlmICghdmhhLT5mbGFncy5vbmxpbmUgfHwgKGZjcG9ydC0+ZmxhZ3MgJiBGQ0ZfQVNZTkNfU0VOVCkpCi0JCXJldHVybiBydmFsOwotCiAJZmNwb3J0LT5mbGFncyB8PSBGQ0ZfQVNZTkNfU0VOVDsKIAlzcCA9IHFsYTJ4MDBfZ2V0X3NwKHZoYSwgZmNwb3J0LCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNwKQpAQCAtNDA1LDEwICs0MTIsOCBAQCBxbGEyeDAwX2FzeW5jX3BybG9fZG9uZShzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBmY19wb3J0X3QgKmZjcG9ydCwKIAlxbHRfbG9nb19jb21wbGV0aW9uX2hhbmRsZXIoZmNwb3J0LCBkYXRhWzBdKTsKIH0KIAotc3RhdGljIHZvaWQKLXFsYTJ4MDBfYXN5bmNfcHJsb19zcF9kb25lKHZvaWQgKnMsIGludCByZXMpCitzdGF0aWMgdm9pZCBxbGEyeDAwX2FzeW5jX3BybG9fc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3JiX3QgKnNwID0gKHNyYl90ICopczsKIAlzdHJ1Y3Qgc3JiX2lvY2IgKmxpbyA9ICZzcC0+dS5pb2NiX2NtZDsKIAlzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhID0gc3AtPnZoYTsKIApAQCAtNDY5LDYgKzQ3NCw5IEBAIHZvaWQgcWxhMjR4eF9oYW5kbGVfYWRpc2NfZXZlbnQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHN0cnVjdCBldmVudF9hcmcgKmVhKQogCSAgICBmY3BvcnQtPmZ3X2xvZ2luX3N0YXRlLCBlYS0+cmMsIGZjcG9ydC0+bG9naW5fZ2VuLCBlYS0+c3AtPmdlbjIsCiAJICAgIGZjcG9ydC0+cnNjbl9nZW4sIGVhLT5zcC0+Z2VuMSwgZmNwb3J0LT5sb29wX2lkKTsKIAorCVdBUk5fT05DRSghcWxhMnh4eF9pc192YWxpZF9tYnMoZWEtPmRhdGFbMF0pLCAibWJzOiAlI3hcbiIsCisJCSAgZWEtPmRhdGFbMF0pOworCiAJaWYgKGVhLT5kYXRhWzBdICE9IE1CU19DT01NQU5EX0NPTVBMRVRFKSB7CiAJCXFsX2RiZyhxbF9kYmdfZGlzYywgdmhhLCAweDIwNjYsCiAJCSAgICAiJXMgJThwaEM6IGFkaXNjIGZhaWw6IHBvc3QgZGVsZXRlXG4iLApAQCAtNTExLDEwICs1MTksOCBAQCBzdGF0aWMgaW50IHFsYV9wb3N0X2Vsc19wbG9naV93b3JrKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGZjX3BvcnRfdCAqZmNwb3J0KQogCXJldHVybiBxbGEyeDAwX3Bvc3Rfd29yayh2aGEsIGUpOwogfQogCi1zdGF0aWMgdm9pZAotcWxhMngwMF9hc3luY19hZGlzY19zcF9kb25lKHZvaWQgKnB0ciwgaW50IHJlcykKK3N0YXRpYyB2b2lkIHFsYTJ4MDBfYXN5bmNfYWRpc2Nfc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3JiX3QgKnNwID0gcHRyOwogCXN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEgPSBzcC0+dmhhOwogCXN0cnVjdCBldmVudF9hcmcgZWE7CiAJc3RydWN0IHNyYl9pb2NiICpsaW8gPSAmc3AtPnUuaW9jYl9jbWQ7CkBAIC01MjYsNyArNTMyLDYgQEAgcWxhMngwMF9hc3luY19hZGlzY19zcF9kb25lKHZvaWQgKnB0ciwgaW50IHJlcykKIAlzcC0+ZmNwb3J0LT5mbGFncyAmPSB+KEZDRl9BU1lOQ19TRU5UIHwgRkNGX0FTWU5DX0FDVElWRSk7CiAKIAltZW1zZXQoJmVhLCAwLCBzaXplb2YoZWEpKTsKLQllYS5ldmVudCA9IEZDTUVfQURJU0NfRE9ORTsKIAllYS5yYyA9IHJlczsKIAllYS5kYXRhWzBdID0gbGlvLT51LmxvZ2lvLmRhdGFbMF07CiAJZWEuZGF0YVsxXSA9IGxpby0+dS5sb2dpby5kYXRhWzFdOwpAQCAtNTM1LDcgKzU0MCw3IEBAIHFsYTJ4MDBfYXN5bmNfYWRpc2Nfc3BfZG9uZSh2b2lkICpwdHIsIGludCByZXMpCiAJZWEuZmNwb3J0ID0gc3AtPmZjcG9ydDsKIAllYS5zcCA9IHNwOwogCi0JcWxhMngwMF9mY3BvcnRfZXZlbnRfaGFuZGxlcih2aGEsICZlYSk7CisJcWxhMjR4eF9oYW5kbGVfYWRpc2NfZXZlbnQodmhhLCAmZWEpOwogCiAJc3AtPmZyZWUoc3ApOwogfQpAQCAtODAzLDYgKzgwOCwxNSBAQCBzdGF0aWMgdm9pZCBxbGEyNHh4X2hhbmRsZV9nbmxfZG9uZV9ldmVudChzY3NpX3FsYV9ob3N0X3QgKnZoYSwKIAkJCWZjcG9ydC0+ZndfbG9naW5fc3RhdGUgPSBjdXJyZW50X2xvZ2luX3N0YXRlOwogCQkJZmNwb3J0LT5kX2lkID0gaWQ7CiAJCQlzd2l0Y2ggKGN1cnJlbnRfbG9naW5fc3RhdGUpIHsKKwkJCWNhc2UgRFNDX0xTX1BSTElfUEVORDoKKwkJCQkvKgorCQkJCSAqIEluIHRoZSBtaWRkbGUgb2YgUFJMSS4gTGV0IGl0IGZpbmlzaC4KKwkJCQkgKiBBbGxvdyByZWxvZ2luIGNvZGUgdG8gcmVjaGVjayBzdGF0ZSBhZ2FpbgorCQkJCSAqIHdpdGggR05MLiBQdXNoIGRpc2Nfc3RhdGUgYmFjayB0byBERUxFVEVECisJCQkJICogc28gR05MIGNhbiBnbyBvdXQgYWdhaW4KKwkJCQkgKi8KKwkJCQlmY3BvcnQtPmRpc2Nfc3RhdGUgPSBEU0NfREVMRVRFRDsKKwkJCQlicmVhazsKIAkJCWNhc2UgRFNDX0xTX1BSTElfQ09NUDoKIAkJCQlpZiAoKGUtPnBybGlfc3ZjX3BhcmFtX3dvcmRfM1swXSAmIEJJVF80KSA9PSAwKQogCQkJCQlmY3BvcnQtPnBvcnRfdHlwZSA9IEZDVF9JTklUSUFUT1I7CkBAIC05MTcsMTAgKzkzMSw4IEBAIHN0YXRpYyB2b2lkIHFsYTI0eHhfaGFuZGxlX2dubF9kb25lX2V2ZW50KHNjc2lfcWxhX2hvc3RfdCAqdmhhLAogCX0KIH0gLyogZ25sX2V2ZW50ICovCiAKLXN0YXRpYyB2b2lkCi1xbGEyNHh4X2FzeW5jX2dubF9zcF9kb25lKHZvaWQgKnMsIGludCByZXMpCitzdGF0aWMgdm9pZCBxbGEyNHh4X2FzeW5jX2dubF9zcF9kb25lKHNyYl90ICpzcCwgaW50IHJlcykKIHsKLQlzdHJ1Y3Qgc3JiICpzcCA9IHM7CiAJc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSA9IHNwLT52aGE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlzdHJ1Y3QgZmNfcG9ydCAqZmNwb3J0ID0gTlVMTCwgKnRmOwpAQCAtOTQzLDcgKzk1NSw2IEBAIHFsYTI0eHhfYXN5bmNfZ25sX3NwX2RvbmUodm9pZCAqcywgaW50IHJlcykKIAltZW1zZXQoJmVhLCAwLCBzaXplb2YoZWEpKTsKIAllYS5zcCA9IHNwOwogCWVhLnJjID0gcmVzOwotCWVhLmV2ZW50ID0gRkNNRV9HTkxfRE9ORTsKIAogCWlmIChzcC0+dS5pb2NiX2NtZC51Lm1ieC5pbl9tYlsxXSA+PQogCSAgICBzaXplb2Yoc3RydWN0IGdldF9uYW1lX2xpc3RfZXh0ZW5kZWQpKSB7CkBAIC05ODIsNyArOTkzLDcgQEAgcWxhMjR4eF9hc3luY19nbmxfc3BfZG9uZSh2b2lkICpzLCBpbnQgcmVzKQogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2aGEtPmh3LT50Z3Quc2Vzc19sb2NrLCBmbGFncyk7CiAJCWVhLmZjcG9ydCA9IGZjcG9ydDsKIAotCQlxbGEyeDAwX2ZjcG9ydF9ldmVudF9oYW5kbGVyKHZoYSwgJmVhKTsKKwkJcWxhMjR4eF9oYW5kbGVfZ25sX2RvbmVfZXZlbnQodmhhLCAmZWEpOwogCX0KIAogCS8qIGNyZWF0ZSBuZXcgZmNwb3J0IGlmIGZ3IGhhcyBrbm93bGVkZ2Ugb2YgbmV3IHNlc3Npb25zICovCkBAIC0xMTA3LDEwICsxMTE4LDggQEAgaW50IHFsYTI0eHhfcG9zdF9nbmxfd29yayhzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBmY19wb3J0X3QgKmZjcG9ydCkKIAlyZXR1cm4gcWxhMngwMF9wb3N0X3dvcmsodmhhLCBlKTsKIH0KIAotc3RhdGljCi12b2lkIHFsYTI0eHhfYXN5bmNfZ3BkYl9zcF9kb25lKHZvaWQgKnMsIGludCByZXMpCitzdGF0aWMgdm9pZCBxbGEyNHh4X2FzeW5jX2dwZGJfc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3RydWN0IHNyYiAqc3AgPSBzOwogCXN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEgPSBzcC0+dmhhOwogCXN0cnVjdCBxbGFfaHdfZGF0YSAqaGEgPSB2aGEtPmh3OwogCWZjX3BvcnRfdCAqZmNwb3J0ID0gc3AtPmZjcG9ydDsKQEAgLTExMjksMTEgKzExMzgsMTAgQEAgdm9pZCBxbGEyNHh4X2FzeW5jX2dwZGJfc3BfZG9uZSh2b2lkICpzLCBpbnQgcmVzKQogCiAJZmNwb3J0LT5mbGFncyAmPSB+KEZDRl9BU1lOQ19TRU5UIHwgRkNGX0FTWU5DX0FDVElWRSk7CiAJbWVtc2V0KCZlYSwgMCwgc2l6ZW9mKGVhKSk7Ci0JZWEuZXZlbnQgPSBGQ01FX0dQREJfRE9ORTsKIAllYS5mY3BvcnQgPSBmY3BvcnQ7CiAJZWEuc3AgPSBzcDsKIAotCXFsYTJ4MDBfZmNwb3J0X2V2ZW50X2hhbmRsZXIodmhhLCAmZWEpOworCXFsYTI0eHhfaGFuZGxlX2dwZGJfZXZlbnQodmhhLCAmZWEpOwogCiAJZG1hX3Bvb2xfZnJlZShoYS0+c19kbWFfcG9vbCwgc3AtPnUuaW9jYl9jbWQudS5tYnguaW4sCiAJCXNwLT51LmlvY2JfY21kLnUubWJ4LmluX2RtYSk7CkBAIC0xMTU0LDEwICsxMTYyLDggQEAgc3RhdGljIGludCBxbGEyNHh4X3Bvc3RfcHJsaV93b3JrKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGZjX3BvcnRfdCAqZmNwb3J0KQogCXJldHVybiBxbGEyeDAwX3Bvc3Rfd29yayh2aGEsIGUpOwogfQogCi1zdGF0aWMgdm9pZAotcWxhMngwMF9hc3luY19wcmxpX3NwX2RvbmUodm9pZCAqcHRyLCBpbnQgcmVzKQorc3RhdGljIHZvaWQgcWxhMngwMF9hc3luY19wcmxpX3NwX2RvbmUoc3JiX3QgKnNwLCBpbnQgcmVzKQogewotCXNyYl90ICpzcCA9IHB0cjsKIAlzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhID0gc3AtPnZoYTsKIAlzdHJ1Y3Qgc3JiX2lvY2IgKmxpbyA9ICZzcC0+dS5pb2NiX2NtZDsKIAlzdHJ1Y3QgZXZlbnRfYXJnIGVhOwpAQCAtMTE3MCw3ICsxMTc2LDYgQEAgcWxhMngwMF9hc3luY19wcmxpX3NwX2RvbmUodm9pZCAqcHRyLCBpbnQgcmVzKQogCiAJaWYgKCF0ZXN0X2JpdChVTkxPQURJTkcsICZ2aGEtPmRwY19mbGFncykpIHsKIAkJbWVtc2V0KCZlYSwgMCwgc2l6ZW9mKGVhKSk7Ci0JCWVhLmV2ZW50ID0gRkNNRV9QUkxJX0RPTkU7CiAJCWVhLmZjcG9ydCA9IHNwLT5mY3BvcnQ7CiAJCWVhLmRhdGFbMF0gPSBsaW8tPnUubG9naW8uZGF0YVswXTsKIAkJZWEuZGF0YVsxXSA9IGxpby0+dS5sb2dpby5kYXRhWzFdOwpAQCAtMTE3OCw3ICsxMTgzLDcgQEAgcWxhMngwMF9hc3luY19wcmxpX3NwX2RvbmUodm9pZCAqcHRyLCBpbnQgcmVzKQogCQllYS5pb3BbMV0gPSBsaW8tPnUubG9naW8uaW9wWzFdOwogCQllYS5zcCA9IHNwOwogCi0JCXFsYTJ4MDBfZmNwb3J0X2V2ZW50X2hhbmRsZXIodmhhLCAmZWEpOworCQlxbGEyNHh4X2hhbmRsZV9wcmxpX2RvbmVfZXZlbnQodmhhLCAmZWEpOwogCX0KIAogCXNwLT5mcmVlKHNwKTsKQEAgLTEyNjIsOCArMTI2NywxMyBAQCBpbnQgcWxhMjR4eF9hc3luY19ncGRiKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGZjX3BvcnRfdCAqZmNwb3J0LCB1OCBvcHQpCiAJc3RydWN0IHBvcnRfZGF0YWJhc2VfMjR4eCAqcGQ7CiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHZoYS0+aHc7CiAKLQlpZiAoIXZoYS0+ZmxhZ3Mub25saW5lIHx8IChmY3BvcnQtPmZsYWdzICYgRkNGX0FTWU5DX1NFTlQpKQorCWlmICghdmhhLT5mbGFncy5vbmxpbmUgfHwgKGZjcG9ydC0+ZmxhZ3MgJiBGQ0ZfQVNZTkNfU0VOVCkgfHwKKwkgICAgZmNwb3J0LT5sb29wX2lkID09IEZDX05PX0xPT1BfSUQpIHsKKwkJcWxfbG9nKHFsX2xvZ193YXJuLCB2aGEsIDB4ZmZmZiwKKwkJICAgICIlczogJThwaEMgLSBub3Qgc2VuZGluZyBjb21tYW5kLlxuIiwKKwkJICAgIF9fZnVuY19fLCBmY3BvcnQtPnBvcnRfbmFtZSk7CiAJCXJldHVybiBydmFsOworCX0KIAogCWZjcG9ydC0+ZGlzY19zdGF0ZSA9IERTQ19HUERCOwogCkBAIC0xNDczLDcgKzE0ODMsNyBAQCBpbnQgcWxhMjR4eF9mY3BvcnRfaGFuZGxlX2xvZ2luKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGZjX3BvcnRfdCAqZmNwb3J0KQogCXU2NCB3d247CiAJdTE2IHNlYzsKIAotCXFsX2RiZyhxbF9kYmdfZGlzYyArIHFsX2RiZ192ZXJib3NlLCB2aGEsIDB4MjBkOCwKKwlxbF9kYmcocWxfZGJnX2Rpc2MsIHZoYSwgMHgyMGQ4LAogCSAgICAiJXMgJThwaEMgRFMgJWQgTFMgJWQgUCAlZCBmbCAleCBjb25mbCAlcCByc2NuICVkfCVkIGxvZ2luICVkIGxpZCAlZCBzY2FuICVkXG4iLAogCSAgICBfX2Z1bmNfXywgZmNwb3J0LT5wb3J0X25hbWUsIGZjcG9ydC0+ZGlzY19zdGF0ZSwKIAkgICAgZmNwb3J0LT5md19sb2dpbl9zdGF0ZSwgZmNwb3J0LT5sb2dpbl9wYXVzZSwgZmNwb3J0LT5mbGFncywKQEAgLTE0ODQsNiArMTQ5NCw3IEBAIGludCBxbGEyNHh4X2ZjcG9ydF9oYW5kbGVfbG9naW4oc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwgZmNfcG9ydF90ICpmY3BvcnQpCiAJCXJldHVybiAwOwogCiAJaWYgKChmY3BvcnQtPmxvb3BfaWQgIT0gRkNfTk9fTE9PUF9JRCkgJiYKKwkgICAgcWxhX2R1YWxfbW9kZV9lbmFibGVkKHZoYSkgJiYKIAkgICAgKChmY3BvcnQtPmZ3X2xvZ2luX3N0YXRlID09IERTQ19MU19QTE9HSV9QRU5EKSB8fAogCSAgICAgKGZjcG9ydC0+ZndfbG9naW5fc3RhdGUgPT0gRFNDX0xTX1BSTElfUEVORCkpKQogCQlyZXR1cm4gMDsKQEAgLTE2MzYsMTIgKzE2NDcsMzQgQEAgaW50IHFsYTI0eHhfcG9zdF9uZXdzZXNzX3dvcmsoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwgcG9ydF9pZF90ICppZCwKIAlyZXR1cm4gcWxhMngwMF9wb3N0X3dvcmsodmhhLCBlKTsKIH0KIAotc3RhdGljCit2b2lkIHFsYTJ4MDBfaGFuZGxlX3JzY24oc2NzaV9xbGFfaG9zdF90ICp2aGEsIHN0cnVjdCBldmVudF9hcmcgKmVhKQoreworCWZjX3BvcnRfdCAqZmNwb3J0OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlmY3BvcnQgPSBxbGEyeDAwX2ZpbmRfZmNwb3J0X2J5X25wb3J0aWQodmhhLCAmZWEtPmlkLCAxKTsKKwlpZiAoZmNwb3J0KSB7CisJCWZjcG9ydC0+c2Nhbl9uZWVkZWQgPSAxOworCQlmY3BvcnQtPnJzY25fZ2VuKys7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnZoYS0+d29ya19sb2NrLCBmbGFncyk7CisJaWYgKHZoYS0+c2Nhbi5zY2FuX2ZsYWdzID09IDApIHsKKwkJcWxfZGJnKHFsX2RiZ19kaXNjLCB2aGEsIDB4ZmZmZiwgIiVzOiBzY2hlZHVsZVxuIiwgX19mdW5jX18pOworCQl2aGEtPnNjYW4uc2Nhbl9mbGFncyB8PSBTRl9RVUVVRUQ7CisJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmdmhhLT5zY2FuLnNjYW5fd29yaywgNSk7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZoYS0+d29ya19sb2NrLCBmbGFncyk7Cit9CisKIHZvaWQgcWxhMjR4eF9oYW5kbGVfcmVsb2dpbl9ldmVudChzY3NpX3FsYV9ob3N0X3QgKnZoYSwKIAlzdHJ1Y3QgZXZlbnRfYXJnICplYSkKIHsKIAlmY19wb3J0X3QgKmZjcG9ydCA9IGVhLT5mY3BvcnQ7CiAKKwlpZiAodGVzdF9iaXQoVU5MT0FESU5HLCAmdmhhLT5kcGNfZmxhZ3MpKQorCQlyZXR1cm47CisKIAlxbF9kYmcocWxfZGJnX2Rpc2MsIHZoYSwgMHgyMTAyLAogCSAgICAiJXMgJThwaEMgRFMgJWQgTFMgJWQgUCAlZCBkZWwgJWQgY25mbCAlcCByc2NuICVkfCVkIGxvZ2luICVkfCVkIGZsICV4XG4iLAogCSAgICBfX2Z1bmNfXywgZmNwb3J0LT5wb3J0X25hbWUsIGZjcG9ydC0+ZGlzY19zdGF0ZSwKQEAgLTE2NTEsMTEwICsxNjg0LDE2IEBAIHZvaWQgcWxhMjR4eF9oYW5kbGVfcmVsb2dpbl9ldmVudChzY3NpX3FsYV9ob3N0X3QgKnZoYSwKIAkgICAgZmNwb3J0LT5sYXN0X2xvZ2luX2dlbiwgZmNwb3J0LT5sb2dpbl9nZW4sCiAJICAgIGZjcG9ydC0+ZmxhZ3MpOwogCi0JaWYgKChmY3BvcnQtPmZ3X2xvZ2luX3N0YXRlID09IERTQ19MU19QTE9HSV9QRU5EKSB8fAotCSAgICAoZmNwb3J0LT5md19sb2dpbl9zdGF0ZSA9PSBEU0NfTFNfUFJMSV9QRU5EKSkKLQkJcmV0dXJuOwotCi0JaWYgKGZjcG9ydC0+ZndfbG9naW5fc3RhdGUgPT0gRFNDX0xTX1BMT0dJX0NPTVApIHsKLQkJaWYgKHRpbWVfYmVmb3JlX2VxKGppZmZpZXMsIGZjcG9ydC0+cGxvZ2lfbmFja19kb25lX2RlYWRsaW5lKSkgewotCQkJc2V0X2JpdChSRUxPR0lOX05FRURFRCwgJnZoYS0+ZHBjX2ZsYWdzKTsKLQkJCXJldHVybjsKLQkJfQotCX0KLQogCWlmIChmY3BvcnQtPmxhc3RfcnNjbl9nZW4gIT0gZmNwb3J0LT5yc2NuX2dlbikgewotCQlxbF9kYmcocWxfZGJnX2Rpc2MsIHZoYSwgMHgyMGU5LCAiJXMgJWQgJThwaEMgcG9zdCBnaWRwblxuIiwKKwkJcWxfZGJnKHFsX2RiZ19kaXNjLCB2aGEsIDB4MjBlOSwgIiVzICVkICU4cGhDIHBvc3QgZ25sXG4iLAogCQkgICAgX19mdW5jX18sIF9fTElORV9fLCBmY3BvcnQtPnBvcnRfbmFtZSk7Ci0KKwkJcWxhMjR4eF9wb3N0X2dubF93b3JrKHZoYSwgZmNwb3J0KTsKIAkJcmV0dXJuOwogCX0KIAogCXFsYTI0eHhfZmNwb3J0X2hhbmRsZV9sb2dpbih2aGEsIGZjcG9ydCk7CiB9CiAKLQotc3RhdGljIHZvaWQgcWxhX2hhbmRsZV9lbHNfcGxvZ2lfZG9uZShzY3NpX3FsYV9ob3N0X3QgKnZoYSwKLQkJCQkgICAgICBzdHJ1Y3QgZXZlbnRfYXJnICplYSkKLXsKLQlxbF9kYmcocWxfZGJnX2Rpc2MsIHZoYSwgMHgyMTE4LAotCSAgICAiJXMgJWQgJThwaEMgcG9zdCBQUkxJXG4iLAotCSAgICBfX2Z1bmNfXywgX19MSU5FX18sIGVhLT5mY3BvcnQtPnBvcnRfbmFtZSk7Ci0JcWxhMjR4eF9wb3N0X3BybGlfd29yayh2aGEsIGVhLT5mY3BvcnQpOwotfQotCi12b2lkIHFsYTJ4MDBfZmNwb3J0X2V2ZW50X2hhbmRsZXIoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHN0cnVjdCBldmVudF9hcmcgKmVhKQotewotCWZjX3BvcnRfdCAqZmNwb3J0OwotCi0Jc3dpdGNoIChlYS0+ZXZlbnQpIHsKLQljYXNlIEZDTUVfUkVMT0dJTjoKLQkJaWYgKHRlc3RfYml0KFVOTE9BRElORywgJnZoYS0+ZHBjX2ZsYWdzKSkKLQkJCXJldHVybjsKLQotCQlxbGEyNHh4X2hhbmRsZV9yZWxvZ2luX2V2ZW50KHZoYSwgZWEpOwotCQlicmVhazsKLQljYXNlIEZDTUVfUlNDTjoKLQkJaWYgKHRlc3RfYml0KFVOTE9BRElORywgJnZoYS0+ZHBjX2ZsYWdzKSkKLQkJCXJldHVybjsKLQkJewotCQkJdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCQkJZmNwb3J0ID0gcWxhMngwMF9maW5kX2ZjcG9ydF9ieV9ucG9ydGlkCi0JCQkJKHZoYSwgJmVhLT5pZCwgMSk7Ci0JCQlpZiAoZmNwb3J0KSB7Ci0JCQkJZmNwb3J0LT5zY2FuX25lZWRlZCA9IDE7Ci0JCQkJZmNwb3J0LT5yc2NuX2dlbisrOwotCQkJfQotCi0JCQlzcGluX2xvY2tfaXJxc2F2ZSgmdmhhLT53b3JrX2xvY2ssIGZsYWdzKTsKLQkJCWlmICh2aGEtPnNjYW4uc2Nhbl9mbGFncyA9PSAwKSB7Ci0JCQkJcWxfZGJnKHFsX2RiZ19kaXNjLCB2aGEsIDB4ZmZmZiwKLQkJCQkgICAgIiVzOiBzY2hlZHVsZVxuIiwgX19mdW5jX18pOwotCQkJCXZoYS0+c2Nhbi5zY2FuX2ZsYWdzIHw9IFNGX1FVRVVFRDsKLQkJCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnZoYS0+c2Nhbi5zY2FuX3dvcmssIDUpOwotCQkJfQotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmhhLT53b3JrX2xvY2ssIGZsYWdzKTsKLQkJfQotCQlicmVhazsKLQljYXNlIEZDTUVfR05MX0RPTkU6Ci0JCXFsYTI0eHhfaGFuZGxlX2dubF9kb25lX2V2ZW50KHZoYSwgZWEpOwotCQlicmVhazsKLQljYXNlIEZDTUVfR1BTQ19ET05FOgotCQlxbGEyNHh4X2hhbmRsZV9ncHNjX2V2ZW50KHZoYSwgZWEpOwotCQlicmVhazsKLQljYXNlIEZDTUVfUExPR0lfRE9ORToJLyogSW5pdGlhdG9yIHNpZGUgc2VudCBMTElPQ0IgKi8KLQkJcWxhMjR4eF9oYW5kbGVfcGxvZ2lfZG9uZV9ldmVudCh2aGEsIGVhKTsKLQkJYnJlYWs7Ci0JY2FzZSBGQ01FX1BSTElfRE9ORToKLQkJcWxhMjR4eF9oYW5kbGVfcHJsaV9kb25lX2V2ZW50KHZoYSwgZWEpOwotCQlicmVhazsKLQljYXNlIEZDTUVfR1BEQl9ET05FOgotCQlxbGEyNHh4X2hhbmRsZV9ncGRiX2V2ZW50KHZoYSwgZWEpOwotCQlicmVhazsKLQljYXNlIEZDTUVfR1BOSURfRE9ORToKLQkJcWxhMjR4eF9oYW5kbGVfZ3BuaWRfZXZlbnQodmhhLCBlYSk7Ci0JCWJyZWFrOwotCWNhc2UgRkNNRV9HRkZJRF9ET05FOgotCQlxbGEyNHh4X2hhbmRsZV9nZmZpZF9ldmVudCh2aGEsIGVhKTsKLQkJYnJlYWs7Ci0JY2FzZSBGQ01FX0FESVNDX0RPTkU6Ci0JCXFsYTI0eHhfaGFuZGxlX2FkaXNjX2V2ZW50KHZoYSwgZWEpOwotCQlicmVhazsKLQljYXNlIEZDTUVfR05OSURfRE9ORToKLQkJcWxhMjR4eF9oYW5kbGVfZ25uaWRfZXZlbnQodmhhLCBlYSk7Ci0JCWJyZWFrOwotCWNhc2UgRkNNRV9HRlBOSURfRE9ORToKLQkJcWxhMjR4eF9oYW5kbGVfZ2ZwbmlkX2V2ZW50KHZoYSwgZWEpOwotCQlicmVhazsKLQljYXNlIEZDTUVfRUxTX1BMT0dJX0RPTkU6Ci0JCXFsYV9oYW5kbGVfZWxzX3Bsb2dpX2RvbmUodmhhLCBlYSk7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCUJVR19PTigxKTsKLQkJYnJlYWs7Ci0JfQotfQotCiAvKgogICogUlNDTihzKSBjYW1lIGluIGZvciB0aGlzIGZjcG9ydCwgYnV0IHRoZSBSU0NOKHMpIHdhcyBub3QgYWJsZQogICogdG8gYmUgY29uc3VtZWQgYnkgdGhlIGZjcG9ydApAQCAtMTc3MiwxMCArMTcxMSw5IEBAIHZvaWQgcWxhX3JzY25fcmVwbGF5KGZjX3BvcnRfdCAqZmNwb3J0KQogCiAJaWYgKGZjcG9ydC0+c2Nhbl9uZWVkZWQpIHsKIAkJbWVtc2V0KCZlYSwgMCwgc2l6ZW9mKGVhKSk7Ci0JCWVhLmV2ZW50ID0gRkNNRV9SU0NOOwogCQllYS5pZCA9IGZjcG9ydC0+ZF9pZDsKIAkJZWEuaWQuYi5yc3ZkXzEgPSBSU0NOX1BPUlRfQUREUjsKLQkJcWxhMngwMF9mY3BvcnRfZXZlbnRfaGFuZGxlcihmY3BvcnQtPnZoYSwgJmVhKTsKKwkJcWxhMngwMF9oYW5kbGVfcnNjbihmY3BvcnQtPnZoYSwgJmVhKTsKIAl9CiB9CiAKQEAgLTE3ODksMTAgKzE3MjcsOCBAQCBxbGEyeDAwX3RtZl9pb2NiX3RpbWVvdXQodm9pZCAqZGF0YSkKIAljb21wbGV0ZSgmdG1mLT51LnRtZi5jb21wKTsKIH0KIAotc3RhdGljIHZvaWQKLXFsYTJ4MDBfdG1mX3NwX2RvbmUodm9pZCAqcHRyLCBpbnQgcmVzKQorc3RhdGljIHZvaWQgcWxhMngwMF90bWZfc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3JiX3QgKnNwID0gcHRyOwogCXN0cnVjdCBzcmJfaW9jYiAqdG1mID0gJnNwLT51LmlvY2JfY21kOwogCiAJY29tcGxldGUoJnRtZi0+dS50bWYuY29tcCk7CkBAIC0xODkwLDYgKzE4MjYsOSBAQCBxbGEyNHh4X2FzeW5jX2Fib3J0X2NvbW1hbmQoc3JiX3QgKnNwKQogc3RhdGljIHZvaWQKIHFsYTI0eHhfaGFuZGxlX3BybGlfZG9uZV9ldmVudChzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBzdHJ1Y3QgZXZlbnRfYXJnICplYSkKIHsKKwlXQVJOX09OQ0UoIXFsYTJ4eHhfaXNfdmFsaWRfbWJzKGVhLT5kYXRhWzBdKSwgIm1iczogJSN4XG4iLAorCQkgIGVhLT5kYXRhWzBdKTsKKwogCXN3aXRjaCAoZWEtPmRhdGFbMF0pIHsKIAljYXNlIE1CU19DT01NQU5EX0NPTVBMRVRFOgogCQlxbF9kYmcocWxfZGJnX2Rpc2MsIHZoYSwgMHgyMTE4LApAQCAtMTkyOSw3ICsxODY4LDcgQEAgcWxhMjR4eF9oYW5kbGVfcHJsaV9kb25lX2V2ZW50KHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIHN0cnVjdCBldmVudF9hcmcgKmVhKQogCX0KIH0KIAotc3RhdGljIHZvaWQKK3ZvaWQKIHFsYTI0eHhfaGFuZGxlX3Bsb2dpX2RvbmVfZXZlbnQoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwgc3RydWN0IGV2ZW50X2FyZyAqZWEpCiB7CiAJcG9ydF9pZF90IGNpZDsJLyogY29uZmxpY3QgTnBvcnQgaWQgKi8KQEAgLTE5NTMsOCArMTg5MiwxMSBAQCBxbGEyNHh4X2hhbmRsZV9wbG9naV9kb25lX2V2ZW50KHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIHN0cnVjdCBldmVudF9hcmcgKmVhKQogCQlyZXR1cm47CiAJfQogCi0JaWYgKGZjcG9ydC0+ZGlzY19zdGF0ZSA9PSBEU0NfREVMRVRFX1BFTkQpCisJaWYgKChmY3BvcnQtPmRpc2Nfc3RhdGUgPT0gRFNDX0RFTEVURV9QRU5EKSB8fAorCSAgICAoZmNwb3J0LT5kaXNjX3N0YXRlID09IERTQ19ERUxFVEVEKSkgeworCQlzZXRfYml0KFJFTE9HSU5fTkVFREVELCAmdmhhLT5kcGNfZmxhZ3MpOwogCQlyZXR1cm47CisJfQogCiAJaWYgKGVhLT5zcC0+Z2VuMiAhPSBmY3BvcnQtPmxvZ2luX2dlbikgewogCQkvKiB0YXJnZXQgc2lkZSBtdXN0IGhhdmUgY2hhbmdlZCBpdC4gKi8KQEAgLTE5NzIsNiArMTkxNCw5IEBAIHFsYTI0eHhfaGFuZGxlX3Bsb2dpX2RvbmVfZXZlbnQoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwgc3RydWN0IGV2ZW50X2FyZyAqZWEpCiAJCXJldHVybjsKIAl9CiAKKwlXQVJOX09OQ0UoIXFsYTJ4eHhfaXNfdmFsaWRfbWJzKGVhLT5kYXRhWzBdKSwgIm1iczogJSN4XG4iLAorCQkgIGVhLT5kYXRhWzBdKTsKKwogCXN3aXRjaCAoZWEtPmRhdGFbMF0pIHsKIAljYXNlIE1CU19DT01NQU5EX0NPTVBMRVRFOgogCQkvKgpAQCAtMjI2Niw2ICsyMjExLDEwIEBAIHFsYTJ4MDBfaW5pdGlhbGl6ZV9hZGFwdGVyKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCWlmIChxbGFfaW5pX21vZGVfZW5hYmxlZCh2aGEpIHx8IHFsYV9kdWFsX21vZGVfZW5hYmxlZCh2aGEpKQogCQlydmFsID0gcWxhMngwMF9pbml0X3JpbmdzKHZoYSk7CiAKKwkvKiBObyBwb2ludCBpbiBjb250aW51aW5nIGlmIGZpcm13YXJlIGluaXRpYWxpemF0aW9uIGZhaWxlZC4gKi8KKwlpZiAocnZhbCAhPSBRTEFfU1VDQ0VTUykKKwkJcmV0dXJuIHJ2YWw7CisKIAloYS0+ZmxhZ3MuY2hpcF9yZXNldF9kb25lID0gMTsKIAogCWlmIChydmFsID09IFFMQV9TVUNDRVNTICYmIElTX1FMQTg0WFgoaGEpKSB7CkBAIC0zMDgyLDEwMyArMzAzMSwxMTMgQEAgcWxhMjR4eF9jaGlwX2RpYWcoc2NzaV9xbGFfaG9zdF90ICp2aGEpCiB9CiAKIHN0YXRpYyB2b2lkCi1xbGEyeDAwX2FsbG9jX29mZmxvYWRfbWVtKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQorcWxhMngwMF9pbml0X2ZjZV90cmFjZShzY3NpX3FsYV9ob3N0X3QgKnZoYSkKIHsKIAlpbnQgcnZhbDsKIAlkbWFfYWRkcl90IHRjX2RtYTsKIAl2b2lkICp0YzsKIAlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gdmhhLT5odzsKIAorCWlmICghSVNfRldJMl9DQVBBQkxFKGhhKSkKKwkJcmV0dXJuOworCisJaWYgKCFJU19RTEEyNVhYKGhhKSAmJiAhSVNfUUxBODFYWChoYSkgJiYgIUlTX1FMQTgzWFgoaGEpICYmCisJICAgICFJU19RTEEyN1hYKGhhKSAmJiAhSVNfUUxBMjhYWChoYSkpCisJCXJldHVybjsKKworCWlmIChoYS0+ZmNlKSB7CisJCXFsX2RiZyhxbF9kYmdfaW5pdCwgdmhhLCAweDAwYmQsCisJCSAgICAgICAiJXM6IEZDRSBNZW0gaXMgYWxyZWFkeSBhbGxvY2F0ZWQuXG4iLAorCQkgICAgICAgX19mdW5jX18pOworCQlyZXR1cm47CisJfQorCisJLyogQWxsb2NhdGUgbWVtb3J5IGZvciBGaWJyZSBDaGFubmVsIEV2ZW50IEJ1ZmZlci4gKi8KKwl0YyA9IGRtYV9hbGxvY19jb2hlcmVudCgmaGEtPnBkZXYtPmRldiwgRkNFX1NJWkUsICZ0Y19kbWEsCisJCQkJR0ZQX0tFUk5FTCk7CisJaWYgKCF0YykgeworCQlxbF9sb2cocWxfbG9nX3dhcm4sIHZoYSwgMHgwMGJlLAorCQkgICAgICAgIlVuYWJsZSB0byBhbGxvY2F0ZSAoJWQgS0IpIGZvciBGQ0UuXG4iLAorCQkgICAgICAgRkNFX1NJWkUgLyAxMDI0KTsKKwkJcmV0dXJuOworCX0KKworCXJ2YWwgPSBxbGEyeDAwX2VuYWJsZV9mY2VfdHJhY2UodmhhLCB0Y19kbWEsIEZDRV9OVU1fQlVGRkVSUywKKwkJCQkJaGEtPmZjZV9tYiwgJmhhLT5mY2VfYnVmcyk7CisJaWYgKHJ2YWwpIHsKKwkJcWxfbG9nKHFsX2xvZ193YXJuLCB2aGEsIDB4MDBiZiwKKwkJICAgICAgICJVbmFibGUgdG8gaW5pdGlhbGl6ZSBGQ0UgKCVkKS5cbiIsIHJ2YWwpOworCQlkbWFfZnJlZV9jb2hlcmVudCgmaGEtPnBkZXYtPmRldiwgRkNFX1NJWkUsIHRjLCB0Y19kbWEpOworCQlyZXR1cm47CisJfQorCisJcWxfZGJnKHFsX2RiZ19pbml0LCB2aGEsIDB4MDBjMCwKKwkgICAgICAgIkFsbG9jYXRlZCAoJWQgS0IpIGZvciBGQ0UuLi5cbiIsIEZDRV9TSVpFIC8gMTAyNCk7CisKKwloYS0+ZmxhZ3MuZmNlX2VuYWJsZWQgPSAxOworCWhhLT5mY2VfZG1hID0gdGNfZG1hOworCWhhLT5mY2UgPSB0YzsKK30KKworc3RhdGljIHZvaWQKK3FsYTJ4MDBfaW5pdF9lZnRfdHJhY2Uoc2NzaV9xbGFfaG9zdF90ICp2aGEpCit7CisJaW50IHJ2YWw7CisJZG1hX2FkZHJfdCB0Y19kbWE7CisJdm9pZCAqdGM7CisJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHZoYS0+aHc7CisKKwlpZiAoIUlTX0ZXSTJfQ0FQQUJMRShoYSkpCisJCXJldHVybjsKKwogCWlmIChoYS0+ZWZ0KSB7CiAJCXFsX2RiZyhxbF9kYmdfaW5pdCwgdmhhLCAweDAwYmQsCi0JCSAgICAiJXM6IE9mZmxvYWQgTWVtIGlzIGFscmVhZHkgYWxsb2NhdGVkLlxuIiwKKwkJICAgICIlczogRUZUIE1lbSBpcyBhbHJlYWR5IGFsbG9jYXRlZC5cbiIsCiAJCSAgICBfX2Z1bmNfXyk7CiAJCXJldHVybjsKIAl9CiAKLQlpZiAoSVNfRldJMl9DQVBBQkxFKGhhKSkgewotCQkvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIEZpYnJlIENoYW5uZWwgRXZlbnQgQnVmZmVyLiAqLwotCQlpZiAoIUlTX1FMQTI1WFgoaGEpICYmICFJU19RTEE4MVhYKGhhKSAmJiAhSVNfUUxBODNYWChoYSkgJiYKLQkJICAgICFJU19RTEEyN1hYKGhhKSAmJiAhSVNfUUxBMjhYWChoYSkpCi0JCQlnb3RvIHRyeV9lZnQ7Ci0KLQkJaWYgKGhhLT5mY2UpCi0JCQlkbWFfZnJlZV9jb2hlcmVudCgmaGEtPnBkZXYtPmRldiwKLQkJCSAgICBGQ0VfU0laRSwgaGEtPmZjZSwgaGEtPmZjZV9kbWEpOwotCi0JCS8qIEFsbG9jYXRlIG1lbW9yeSBmb3IgRmlicmUgQ2hhbm5lbCBFdmVudCBCdWZmZXIuICovCi0JCXRjID0gZG1hX2FsbG9jX2NvaGVyZW50KCZoYS0+cGRldi0+ZGV2LCBGQ0VfU0laRSwgJnRjX2RtYSwKLQkJCQkJR0ZQX0tFUk5FTCk7Ci0JCWlmICghdGMpIHsKLQkJCXFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweDAwYmUsCi0JCQkgICAgIlVuYWJsZSB0byBhbGxvY2F0ZSAoJWQgS0IpIGZvciBGQ0UuXG4iLAotCQkJICAgIEZDRV9TSVpFIC8gMTAyNCk7Ci0JCQlnb3RvIHRyeV9lZnQ7Ci0JCX0KLQotCQlydmFsID0gcWxhMngwMF9lbmFibGVfZmNlX3RyYWNlKHZoYSwgdGNfZG1hLCBGQ0VfTlVNX0JVRkZFUlMsCi0JCSAgICBoYS0+ZmNlX21iLCAmaGEtPmZjZV9idWZzKTsKLQkJaWYgKHJ2YWwpIHsKLQkJCXFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweDAwYmYsCi0JCQkgICAgIlVuYWJsZSB0byBpbml0aWFsaXplIEZDRSAoJWQpLlxuIiwgcnZhbCk7Ci0JCQlkbWFfZnJlZV9jb2hlcmVudCgmaGEtPnBkZXYtPmRldiwgRkNFX1NJWkUsIHRjLAotCQkJICAgIHRjX2RtYSk7Ci0JCQloYS0+ZmxhZ3MuZmNlX2VuYWJsZWQgPSAwOwotCQkJZ290byB0cnlfZWZ0OwotCQl9Ci0JCXFsX2RiZyhxbF9kYmdfaW5pdCwgdmhhLCAweDAwYzAsCi0JCSAgICAiQWxsb2NhdGUgKCVkIEtCKSBmb3IgRkNFLi4uXG4iLCBGQ0VfU0laRSAvIDEwMjQpOwotCi0JCWhhLT5mbGFncy5mY2VfZW5hYmxlZCA9IDE7Ci0JCWhhLT5mY2VfZG1hID0gdGNfZG1hOwotCQloYS0+ZmNlID0gdGM7Ci0KLXRyeV9lZnQ6Ci0JCWlmIChoYS0+ZWZ0KQotCQkJZG1hX2ZyZWVfY29oZXJlbnQoJmhhLT5wZGV2LT5kZXYsCi0JCQkgICAgRUZUX1NJWkUsIGhhLT5lZnQsIGhhLT5lZnRfZG1hKTsKLQotCQkvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIEV4dGVuZGVkIFRyYWNlIEJ1ZmZlci4gKi8KLQkJdGMgPSBkbWFfYWxsb2NfY29oZXJlbnQoJmhhLT5wZGV2LT5kZXYsIEVGVF9TSVpFLCAmdGNfZG1hLAotCQkJCQlHRlBfS0VSTkVMKTsKLQkJaWYgKCF0YykgewotCQkJcWxfbG9nKHFsX2xvZ193YXJuLCB2aGEsIDB4MDBjMSwKLQkJCSAgICAiVW5hYmxlIHRvIGFsbG9jYXRlICglZCBLQikgZm9yIEVGVC5cbiIsCi0JCQkgICAgRUZUX1NJWkUgLyAxMDI0KTsKLQkJCWdvdG8gZWZ0X2VycjsKLQkJfQotCi0JCXJ2YWwgPSBxbGEyeDAwX2VuYWJsZV9lZnRfdHJhY2UodmhhLCB0Y19kbWEsIEVGVF9OVU1fQlVGRkVSUyk7Ci0JCWlmIChydmFsKSB7Ci0JCQlxbF9sb2cocWxfbG9nX3dhcm4sIHZoYSwgMHgwMGMyLAotCQkJICAgICJVbmFibGUgdG8gaW5pdGlhbGl6ZSBFRlQgKCVkKS5cbiIsIHJ2YWwpOwotCQkJZG1hX2ZyZWVfY29oZXJlbnQoJmhhLT5wZGV2LT5kZXYsIEVGVF9TSVpFLCB0YywKLQkJCSAgICB0Y19kbWEpOwotCQkJZ290byBlZnRfZXJyOwotCQl9Ci0JCXFsX2RiZyhxbF9kYmdfaW5pdCwgdmhhLCAweDAwYzMsCi0JCSAgICAiQWxsb2NhdGVkICglZCBLQikgRUZUIC4uLlxuIiwgRUZUX1NJWkUgLyAxMDI0KTsKLQotCQloYS0+ZWZ0X2RtYSA9IHRjX2RtYTsKLQkJaGEtPmVmdCA9IHRjOworCS8qIEFsbG9jYXRlIG1lbW9yeSBmb3IgRXh0ZW5kZWQgVHJhY2UgQnVmZmVyLiAqLworCXRjID0gZG1hX2FsbG9jX2NvaGVyZW50KCZoYS0+cGRldi0+ZGV2LCBFRlRfU0laRSwgJnRjX2RtYSwKKwkJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIXRjKSB7CisJCXFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweDAwYzEsCisJCSAgICAgICAiVW5hYmxlIHRvIGFsbG9jYXRlICglZCBLQikgZm9yIEVGVC5cbiIsCisJCSAgICAgICBFRlRfU0laRSAvIDEwMjQpOworCQlyZXR1cm47CiAJfQogCi1lZnRfZXJyOgotCXJldHVybjsKKwlydmFsID0gcWxhMngwMF9lbmFibGVfZWZ0X3RyYWNlKHZoYSwgdGNfZG1hLCBFRlRfTlVNX0JVRkZFUlMpOworCWlmIChydmFsKSB7CisJCXFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweDAwYzIsCisJCSAgICAgICAiVW5hYmxlIHRvIGluaXRpYWxpemUgRUZUICglZCkuXG4iLCBydmFsKTsKKwkJZG1hX2ZyZWVfY29oZXJlbnQoJmhhLT5wZGV2LT5kZXYsIEVGVF9TSVpFLCB0YywgdGNfZG1hKTsKKwkJcmV0dXJuOworCX0KKworCXFsX2RiZyhxbF9kYmdfaW5pdCwgdmhhLCAweDAwYzMsCisJICAgICAgICJBbGxvY2F0ZWQgKCVkIEtCKSBFRlQgLi4uXG4iLCBFRlRfU0laRSAvIDEwMjQpOworCisJaGEtPmVmdF9kbWEgPSB0Y19kbWE7CisJaGEtPmVmdCA9IHRjOworfQorCitzdGF0aWMgdm9pZAorcWxhMngwMF9hbGxvY19vZmZsb2FkX21lbShzY3NpX3FsYV9ob3N0X3QgKnZoYSkKK3sKKwlxbGEyeDAwX2luaXRfZmNlX3RyYWNlKHZoYSk7CisJcWxhMngwMF9pbml0X2VmdF90cmFjZSh2aGEpOwogfQogCiB2b2lkCiBxbGEyeDAwX2FsbG9jX2Z3X2R1bXAoc2NzaV9xbGFfaG9zdF90ICp2aGEpCiB7Ci0JaW50IHJ2YWw7CiAJdWludDMyX3QgZHVtcF9zaXplLCBmaXhlZF9zaXplLCBtZW1fc2l6ZSwgcmVxX3Ffc2l6ZSwgcnNwX3Ffc2l6ZSwKIAkgICAgZWZ0X3NpemUsIGZjZV9zaXplLCBtcV9zaXplOwogCXN0cnVjdCBxbGFfaHdfZGF0YSAqaGEgPSB2aGEtPmh3OwogCXN0cnVjdCByZXFfcXVlICpyZXEgPSBoYS0+cmVxX3FfbWFwWzBdOwogCXN0cnVjdCByc3BfcXVlICpyc3AgPSBoYS0+cnNwX3FfbWFwWzBdOwogCXN0cnVjdCBxbGEyeHh4X2Z3X2R1bXAgKmZ3X2R1bXA7Ci0JZG1hX2FkZHJfdCB0Y19kbWE7Ci0Jdm9pZCAqdGM7CiAKIAlkdW1wX3NpemUgPSBmaXhlZF9zaXplID0gbWVtX3NpemUgPSBlZnRfc2l6ZSA9IGZjZV9zaXplID0gbXFfc2l6ZSA9IDA7CiAJcmVxX3Ffc2l6ZSA9IHJzcF9xX3NpemUgPSAwOwpAQCAtMzIxNiwzNyArMzE3NSwxMyBAQCBxbGEyeDAwX2FsbG9jX2Z3X2R1bXAoc2NzaV9xbGFfaG9zdF90ICp2aGEpCiAJCX0KIAkJaWYgKGhhLT50Z3QuYXRpb19yaW5nKQogCQkJbXFfc2l6ZSArPSBoYS0+dGd0LmF0aW9fcV9sZW5ndGggKiBzaXplb2YocmVxdWVzdF90KTsKLQkJLyogQWxsb2NhdGUgbWVtb3J5IGZvciBGaWJyZSBDaGFubmVsIEV2ZW50IEJ1ZmZlci4gKi8KLQkJaWYgKCFJU19RTEEyNVhYKGhhKSAmJiAhSVNfUUxBODFYWChoYSkgJiYgIUlTX1FMQTgzWFgoaGEpICYmCi0JCSAgICAhSVNfUUxBMjdYWChoYSkgJiYgIUlTX1FMQTI4WFgoaGEpKQotCQkJZ290byB0cnlfZWZ0OwogCi0JCWZjZV9zaXplID0gc2l6ZW9mKHN0cnVjdCBxbGEyeHh4X2ZjZV9jaGFpbikgKyBGQ0VfU0laRTsKLXRyeV9lZnQ6CisJCXFsYTJ4MDBfaW5pdF9mY2VfdHJhY2UodmhhKTsKKwkJaWYgKGhhLT5mY2UpCisJCQlmY2Vfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcWxhMnh4eF9mY2VfY2hhaW4pICsgRkNFX1NJWkU7CisJCXFsYTJ4MDBfaW5pdF9lZnRfdHJhY2UodmhhKTsKIAkJaWYgKGhhLT5lZnQpCi0JCQlkbWFfZnJlZV9jb2hlcmVudCgmaGEtPnBkZXYtPmRldiwKLQkJCSAgICBFRlRfU0laRSwgaGEtPmVmdCwgaGEtPmVmdF9kbWEpOwotCi0JCS8qIEFsbG9jYXRlIG1lbW9yeSBmb3IgRXh0ZW5kZWQgVHJhY2UgQnVmZmVyLiAqLwotCQl0YyA9IGRtYV9hbGxvY19jb2hlcmVudCgmaGEtPnBkZXYtPmRldiwgRUZUX1NJWkUsICZ0Y19kbWEsCi0JCQkJCSBHRlBfS0VSTkVMKTsKLQkJaWYgKCF0YykgewotCQkJcWxfbG9nKHFsX2xvZ193YXJuLCB2aGEsIDB4MDBjMSwKLQkJCSAgICAiVW5hYmxlIHRvIGFsbG9jYXRlICglZCBLQikgZm9yIEVGVC5cbiIsCi0JCQkgICAgRUZUX1NJWkUgLyAxMDI0KTsKLQkJCWdvdG8gYWxsb2NhdGU7Ci0JCX0KLQotCQlydmFsID0gcWxhMngwMF9lbmFibGVfZWZ0X3RyYWNlKHZoYSwgdGNfZG1hLCBFRlRfTlVNX0JVRkZFUlMpOwotCQlpZiAocnZhbCkgewotCQkJcWxfbG9nKHFsX2xvZ193YXJuLCB2aGEsIDB4MDBjMiwKLQkJCSAgICAiVW5hYmxlIHRvIGluaXRpYWxpemUgRUZUICglZCkuXG4iLCBydmFsKTsKLQkJCWRtYV9mcmVlX2NvaGVyZW50KCZoYS0+cGRldi0+ZGV2LCBFRlRfU0laRSwgdGMsCi0JCQkgICAgdGNfZG1hKTsKLQkJfQotCQlxbF9kYmcocWxfZGJnX2luaXQsIHZoYSwgMHgwMGMzLAotCQkgICAgIkFsbG9jYXRlZCAoJWQgS0IpIEVGVCAuLi5cbiIsIEVGVF9TSVpFIC8gMTAyNCk7Ci0JCWVmdF9zaXplID0gRUZUX1NJWkU7CisJCQllZnRfc2l6ZSA9IEVGVF9TSVpFOwogCX0KIAogCWlmIChJU19RTEEyN1hYKGhhKSB8fCBJU19RTEEyOFhYKGhhKSkgewpAQCAtMzI2OCwyNCArMzIwMywyMiBAQCBxbGEyeDAwX2FsbG9jX2Z3X2R1bXAoc2NzaV9xbGFfaG9zdF90ICp2aGEpCiAJCQkgICAgaiwgZndkdC0+ZHVtcF9zaXplKTsKIAkJCWR1bXBfc2l6ZSArPSBmd2R0LT5kdW1wX3NpemU7CiAJCX0KLQkJZ290byBhbGxvY2F0ZTsKKwl9IGVsc2UgeworCQlyZXFfcV9zaXplID0gcmVxLT5sZW5ndGggKiBzaXplb2YocmVxdWVzdF90KTsKKwkJcnNwX3Ffc2l6ZSA9IHJzcC0+bGVuZ3RoICogc2l6ZW9mKHJlc3BvbnNlX3QpOworCQlkdW1wX3NpemUgPSBvZmZzZXRvZihzdHJ1Y3QgcWxhMnh4eF9md19kdW1wLCBpc3ApOworCQlkdW1wX3NpemUgKz0gZml4ZWRfc2l6ZSArIG1lbV9zaXplICsgcmVxX3Ffc2l6ZSArIHJzcF9xX3NpemUKKwkJCSsgZWZ0X3NpemU7CisJCWhhLT5jaGFpbl9vZmZzZXQgPSBkdW1wX3NpemU7CisJCWR1bXBfc2l6ZSArPSBtcV9zaXplICsgZmNlX3NpemU7CisJCWlmIChoYS0+ZXhjaG9mZmxkX2J1ZikKKwkJCWR1bXBfc2l6ZSArPSBzaXplb2Yoc3RydWN0IHFsYTJ4eHhfb2ZmbGRfY2hhaW4pICsKKwkJCQloYS0+ZXhjaG9mZmxkX3NpemU7CisJCWlmIChoYS0+ZXhsb2dpbl9idWYpCisJCQlkdW1wX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBxbGEyeHh4X29mZmxkX2NoYWluKSArCisJCQkJaGEtPmV4bG9naW5fc2l6ZTsKIAl9CiAKLQlyZXFfcV9zaXplID0gcmVxLT5sZW5ndGggKiBzaXplb2YocmVxdWVzdF90KTsKLQlyc3BfcV9zaXplID0gcnNwLT5sZW5ndGggKiBzaXplb2YocmVzcG9uc2VfdCk7Ci0JZHVtcF9zaXplID0gb2Zmc2V0b2Yoc3RydWN0IHFsYTJ4eHhfZndfZHVtcCwgaXNwKTsKLQlkdW1wX3NpemUgKz0gZml4ZWRfc2l6ZSArIG1lbV9zaXplICsgcmVxX3Ffc2l6ZSArIHJzcF9xX3NpemUgKyBlZnRfc2l6ZTsKLQloYS0+Y2hhaW5fb2Zmc2V0ID0gZHVtcF9zaXplOwotCWR1bXBfc2l6ZSArPSBtcV9zaXplICsgZmNlX3NpemU7Ci0KLQlpZiAoaGEtPmV4Y2hvZmZsZF9idWYpCi0JCWR1bXBfc2l6ZSArPSBzaXplb2Yoc3RydWN0IHFsYTJ4eHhfb2ZmbGRfY2hhaW4pICsKLQkJCWhhLT5leGNob2ZmbGRfc2l6ZTsKLQlpZiAoaGEtPmV4bG9naW5fYnVmKQotCQlkdW1wX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBxbGEyeHh4X29mZmxkX2NoYWluKSArCi0JCQloYS0+ZXhsb2dpbl9zaXplOwotCi1hbGxvY2F0ZToKIAlpZiAoIWhhLT5md19kdW1wX2xlbiB8fCBkdW1wX3NpemUgPiBoYS0+ZndfZHVtcF9hbGxvY19sZW4pIHsKIAogCQlxbF9kYmcocWxfZGJnX2luaXQsIHZoYSwgMHgwMGM1LApAQCAtNDQwMCw3ICs0MzMzLDcgQEAgcWxhMngwMF9jb25maWd1cmVfaGJhKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCiBpbmxpbmUgdm9pZAogcWxhMngwMF9zZXRfbW9kZWxfaW5mbyhzY3NpX3FsYV9ob3N0X3QgKnZoYSwgdWludDhfdCAqbW9kZWwsIHNpemVfdCBsZW4sCi0JY2hhciAqZGVmKQorCQkgICAgICAgY29uc3QgY2hhciAqZGVmKQogewogCWNoYXIgKnN0LCAqZW47CiAJdWludDE2X3QgaW5kZXg7CkBAIC00NDEyLDcgKzQzNDUsNyBAQCBxbGEyeDAwX3NldF9tb2RlbF9pbmZvKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCB1aW50OF90ICptb2RlbCwgc2l6ZV90IGxlbiwKIAlpZiAobGVuID4gc2l6ZW9mKHplcm8pKQogCQlsZW4gPSBzaXplb2YoemVybyk7CiAJaWYgKG1lbWNtcChtb2RlbCwgJnplcm8sIGxlbikgIT0gMCkgewotCQlzdHJuY3B5KGhhLT5tb2RlbF9udW1iZXIsIG1vZGVsLCBsZW4pOworCQltZW1jcHkoaGEtPm1vZGVsX251bWJlciwgbW9kZWwsIGxlbik7CiAJCXN0ID0gZW4gPSBoYS0+bW9kZWxfbnVtYmVyOwogCQllbiArPSBsZW4gLSAxOwogCQl3aGlsZSAoZW4gPiBzdCkgewpAQCAtNDQyNSwyMSArNDM1OCwyMyBAQCBxbGEyeDAwX3NldF9tb2RlbF9pbmZvKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCB1aW50OF90ICptb2RlbCwgc2l6ZV90IGxlbiwKIAkJaWYgKHVzZV90YmwgJiYKIAkJICAgIGhhLT5wZGV2LT5zdWJzeXN0ZW1fdmVuZG9yID09IFBDSV9WRU5ET1JfSURfUUxPR0lDICYmCiAJCSAgICBpbmRleCA8IFFMQV9NT0RFTF9OQU1FUykKLQkJCXN0cm5jcHkoaGEtPm1vZGVsX2Rlc2MsCisJCQlzdHJsY3B5KGhhLT5tb2RlbF9kZXNjLAogCQkJICAgIHFsYTJ4MDBfbW9kZWxfbmFtZVtpbmRleCAqIDIgKyAxXSwKLQkJCSAgICBzaXplb2YoaGEtPm1vZGVsX2Rlc2MpIC0gMSk7CisJCQkgICAgc2l6ZW9mKGhhLT5tb2RlbF9kZXNjKSk7CiAJfSBlbHNlIHsKIAkJaW5kZXggPSAoaGEtPnBkZXYtPnN1YnN5c3RlbV9kZXZpY2UgJiAweGZmKTsKIAkJaWYgKHVzZV90YmwgJiYKIAkJICAgIGhhLT5wZGV2LT5zdWJzeXN0ZW1fdmVuZG9yID09IFBDSV9WRU5ET1JfSURfUUxPR0lDICYmCiAJCSAgICBpbmRleCA8IFFMQV9NT0RFTF9OQU1FUykgewotCQkJc3RyY3B5KGhhLT5tb2RlbF9udW1iZXIsCi0JCQkgICAgcWxhMngwMF9tb2RlbF9uYW1lW2luZGV4ICogMl0pOwotCQkJc3RybmNweShoYS0+bW9kZWxfZGVzYywKKwkJCXN0cmxjcHkoaGEtPm1vZGVsX251bWJlciwKKwkJCQlxbGEyeDAwX21vZGVsX25hbWVbaW5kZXggKiAyXSwKKwkJCQlzaXplb2YoaGEtPm1vZGVsX251bWJlcikpOworCQkJc3RybGNweShoYS0+bW9kZWxfZGVzYywKIAkJCSAgICBxbGEyeDAwX21vZGVsX25hbWVbaW5kZXggKiAyICsgMV0sCi0JCQkgICAgc2l6ZW9mKGhhLT5tb2RlbF9kZXNjKSAtIDEpOworCQkJICAgIHNpemVvZihoYS0+bW9kZWxfZGVzYykpOwogCQl9IGVsc2UgewotCQkJc3RyY3B5KGhhLT5tb2RlbF9udW1iZXIsIGRlZik7CisJCQlzdHJsY3B5KGhhLT5tb2RlbF9udW1iZXIsIGRlZiwKKwkJCQlzaXplb2YoaGEtPm1vZGVsX251bWJlcikpOwogCQl9CiAJfQogCWlmIChJU19GV0kyX0NBUEFCTEUoaGEpKQpAQCAtNTA0NCw3ICs0OTc5LDcgQEAgcWxhMngwMF9jb25maWd1cmVfbG9jYWxfbG9vcChzY3NpX3FsYV9ob3N0X3QgKnZoYSkKIAogCXVpbnQxNl90CWluZGV4OwogCXVpbnQxNl90CWVudHJpZXM7Ci0JY2hhcgkJKmlkX2l0ZXI7CisJc3RydWN0IGdpZF9saXN0X2luZm8gKmdpZDsKIAl1aW50MTZfdAlsb29wX2lkOwogCXVpbnQ4X3QJCWRvbWFpbiwgYXJlYSwgYWxfcGE7CiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHZoYS0+aHc7CkBAIC01MTE5LDE4ICs1MDU0LDE2IEBAIHFsYTJ4MDBfY29uZmlndXJlX2xvY2FsX2xvb3Aoc2NzaV9xbGFfaG9zdF90ICp2aGEpCiAJbmV3X2ZjcG9ydC0+ZmxhZ3MgJj0gfkZDRl9GQUJSSUNfREVWSUNFOwogCiAJLyogQWRkIGRldmljZXMgdG8gcG9ydCBsaXN0LiAqLwotCWlkX2l0ZXIgPSAoY2hhciAqKWhhLT5naWRfbGlzdDsKKwlnaWQgPSBoYS0+Z2lkX2xpc3Q7CiAJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgZW50cmllczsgaW5kZXgrKykgewotCQlkb21haW4gPSAoKHN0cnVjdCBnaWRfbGlzdF9pbmZvICopaWRfaXRlciktPmRvbWFpbjsKLQkJYXJlYSA9ICgoc3RydWN0IGdpZF9saXN0X2luZm8gKilpZF9pdGVyKS0+YXJlYTsKLQkJYWxfcGEgPSAoKHN0cnVjdCBnaWRfbGlzdF9pbmZvICopaWRfaXRlciktPmFsX3BhOworCQlkb21haW4gPSBnaWQtPmRvbWFpbjsKKwkJYXJlYSA9IGdpZC0+YXJlYTsKKwkJYWxfcGEgPSBnaWQtPmFsX3BhOwogCQlpZiAoSVNfUUxBMjEwMChoYSkgfHwgSVNfUUxBMjIwMChoYSkpCi0JCQlsb29wX2lkID0gKHVpbnQxNl90KQotCQkJICAgICgoc3RydWN0IGdpZF9saXN0X2luZm8gKilpZF9pdGVyKS0+bG9vcF9pZF8yMTAwOworCQkJbG9vcF9pZCA9IGdpZC0+bG9vcF9pZF8yMTAwOwogCQllbHNlCi0JCQlsb29wX2lkID0gbGUxNl90b19jcHUoCi0JCQkgICAgKChzdHJ1Y3QgZ2lkX2xpc3RfaW5mbyAqKWlkX2l0ZXIpLT5sb29wX2lkKTsKLQkJaWRfaXRlciArPSBoYS0+Z2lkX2xpc3RfaW5mb19zaXplOworCQkJbG9vcF9pZCA9IGxlMTZfdG9fY3B1KGdpZC0+bG9vcF9pZCk7CisJCWdpZCA9ICh2b2lkICopZ2lkICsgaGEtPmdpZF9saXN0X2luZm9fc2l6ZTsKIAogCQkvKiBCeXBhc3MgcmVzZXJ2ZWQgZG9tYWluIGZpZWxkcy4gKi8KIAkJaWYgKChkb21haW4gJiAweGYwKSA9PSAweGYwKQpAQCAtNTM1NSw3ICs1Mjg4LDcgQEAgcWxhMngwMF9yZWdfcmVtb3RlX3BvcnQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIGZjX3BvcnRfdCAqZmNwb3J0KQogCSAgICAiJXMgJThwaE4uIHJwb3J0ICVwIGlzICVzIG1vZGVcbiIsCiAJICAgIF9fZnVuY19fLCBmY3BvcnQtPnBvcnRfbmFtZSwgcnBvcnQsCiAJICAgIChmY3BvcnQtPnBvcnRfdHlwZSA9PSBGQ1RfVEFSR0VUKSA/ICJ0Z3QiIDoKLQkgICAgKChmY3BvcnQtPnBvcnRfdHlwZSAmIEZDVF9OVk1FKSA/ICJudm1lIiA6ImluaSIpKTsKKwkgICAgKChmY3BvcnQtPnBvcnRfdHlwZSAmIEZDVF9OVk1FKSA/ICJudm1lIiA6ICJpbmkiKSk7CiAKIAlmY19yZW1vdGVfcG9ydF9yb2xlY2hnKHJwb3J0LCBycG9ydF9pZHMucm9sZXMpOwogfQpAQCAtNjU5Niw3ICs2NTI5LDggQEAgcWxhMngwMF9xdWllc2NlX2lvKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCQkJCQlMT09QX0RPV05fVElNRSk7CiAJfQogCS8qIFdhaXQgZm9yIHBlbmRpbmcgY21kcyB0byBjb21wbGV0ZSAqLwotCXFsYTJ4MDBfZWhfd2FpdF9mb3JfcGVuZGluZ19jb21tYW5kcyh2aGEsIDAsIDAsIFdBSVRfSE9TVCk7CisJV0FSTl9PTl9PTkNFKHFsYTJ4MDBfZWhfd2FpdF9mb3JfcGVuZGluZ19jb21tYW5kcyh2aGEsIDAsIDAsIFdBSVRfSE9TVCkKKwkJICAgICAhPSBRTEFfU1VDQ0VTUyk7CiB9CiAKIHZvaWQKQEAgLTY2ODQsOCArNjYxOCwxMCBAQCBxbGEyeDAwX2Fib3J0X2lzcF9jbGVhbnVwKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCX0KIAogCS8qIENsZWFyIGFsbCBhc3luYyByZXF1ZXN0IHN0YXRlcyBhY3Jvc3MgYWxsIFZQcy4gKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGZjcG9ydCwgJnZoYS0+dnBfZmNwb3J0cywgbGlzdCkKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGZjcG9ydCwgJnZoYS0+dnBfZmNwb3J0cywgbGlzdCkgewogCQlmY3BvcnQtPmZsYWdzICY9IH4oRkNGX0xPR0lOX05FRURFRCB8IEZDRl9BU1lOQ19TRU5UKTsKKwkJZmNwb3J0LT5zY2FuX3N0YXRlID0gMDsKKwl9CiAJc3Bpbl9sb2NrX2lycXNhdmUoJmhhLT52cG9ydF9zbG9jaywgZmxhZ3MpOwogCWxpc3RfZm9yX2VhY2hfZW50cnkodnAsICZoYS0+dnBfbGlzdCwgbGlzdCkgewogCQlhdG9taWNfaW5jKCZ2cC0+dnJlZl9jb3VudCk7CkBAIC03NTE5LDggKzc0NTUsMTIgQEAgcWxhMjd4eF9nZXRfYWN0aXZlX2ltYWdlKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCiAJCWdvdG8gY2hlY2tfc2VjX2ltYWdlOwogCX0KIAotCXFsYTI0eHhfcmVhZF9mbGFzaF9kYXRhKHZoYSwgKHZvaWQgKikoJnByaV9pbWFnZV9zdGF0dXMpLAotCSAgICBoYS0+Zmx0X3JlZ2lvbl9pbWdfc3RhdHVzX3ByaSwgc2l6ZW9mKHByaV9pbWFnZV9zdGF0dXMpID4+IDIpOworCWlmIChxbGEyNHh4X3JlYWRfZmxhc2hfZGF0YSh2aGEsICh2b2lkICopKCZwcmlfaW1hZ2Vfc3RhdHVzKSwKKwkgICAgaGEtPmZsdF9yZWdpb25faW1nX3N0YXR1c19wcmksIHNpemVvZihwcmlfaW1hZ2Vfc3RhdHVzKSA+PiAyKSAhPQorCSAgICBRTEFfU1VDQ0VTUykgeworCQlXQVJOX09OX09OQ0UodHJ1ZSk7CisJCWdvdG8gY2hlY2tfc2VjX2ltYWdlOworCX0KIAlxbGEyN3h4X3ByaW50X2ltYWdlKHZoYSwgIlByaW1hcnkgaW1hZ2UiLCAmcHJpX2ltYWdlX3N0YXR1cyk7CiAKIAlpZiAocWxhMjd4eF9jaGVja19pbWFnZV9zdGF0dXNfc2lnbmF0dXJlKCZwcmlfaW1hZ2Vfc3RhdHVzKSkgewpAQCAtODI3NCw3ICs4MjE0LDcgQEAgcWxhODF4eF9udnJhbV9jb25maWcoc2NzaV9xbGFfaG9zdF90ICp2aGEpCiAJCSAgICBhY3RpdmVfcmVnaW9ucy5hdXgudnBkX252cmFtID09IFFMQTI3WFhfUFJJTUFSWV9JTUFHRSA/CiAJCSAgICAicHJpbWFyeSIgOiAic2Vjb25kYXJ5Iik7CiAJfQotCXFsYTI0eHhfcmVhZF9mbGFzaF9kYXRhKHZoYSwgaGEtPnZwZCwgZmFkZHIsIGhhLT52cGRfc2l6ZSA+PiAyKTsKKwloYS0+aXNwX29wcy0+cmVhZF9vcHRyb20odmhhLCBoYS0+dnBkLCBmYWRkciA8PCAyLCBoYS0+dnBkX3NpemUpOwogCiAJLyogR2V0IE5WUkFNIGRhdGEgaW50byBjYWNoZSBhbmQgY2FsY3VsYXRlIGNoZWNrc3VtLiAqLwogCWZhZGRyID0gaGEtPmZsdF9yZWdpb25fbnZyYW07CkBAIC04Mjg2LDcgKzgyMjYsNyBAQCBxbGE4MXh4X252cmFtX2NvbmZpZyhzY3NpX3FsYV9ob3N0X3QgKnZoYSkKIAkgICAgIkxvYWRpbmcgJXMgbnZyYW0gaW1hZ2UuXG4iLAogCSAgICBhY3RpdmVfcmVnaW9ucy5hdXgudnBkX252cmFtID09IFFMQTI3WFhfUFJJTUFSWV9JTUFHRSA/CiAJICAgICJwcmltYXJ5IiA6ICJzZWNvbmRhcnkiKTsKLQlxbGEyNHh4X3JlYWRfZmxhc2hfZGF0YSh2aGEsIGhhLT5udnJhbSwgZmFkZHIsIGhhLT5udnJhbV9zaXplID4+IDIpOworCWhhLT5pc3Bfb3BzLT5yZWFkX29wdHJvbSh2aGEsIGhhLT5udnJhbSwgZmFkZHIgPDwgMiwgaGEtPm52cmFtX3NpemUpOwogCiAJZHB0ciA9ICh1aW50MzJfdCAqKW52OwogCWZvciAoY250ID0gMCwgY2hrc3VtID0gMDsgY250IDwgaGEtPm52cmFtX3NpemUgPj4gMjsgY250KyssIGRwdHIrKykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pbmxpbmUuaCBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pbmxpbmUuaAppbmRleCBiZjA2M2M2Li4wYzNkOTA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaW5saW5lLmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lubGluZS5oCkBAIC0xNTIsNiArMTUyLDE4IEBAIHFsYTJ4MDBfY2hpcF9pc19kb3duKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCXJldHVybiAocWxhMngwMF9yZXNldF9hY3RpdmUodmhhKSB8fCAhdmhhLT5ody0+ZmxhZ3MuZndfc3RhcnRlZCk7CiB9CiAKK3N0YXRpYyB2b2lkIHFsYTJ4eHhfaW5pdF9zcChzcmJfdCAqc3AsIHNjc2lfcWxhX2hvc3RfdCAqdmhhLAorCQkJICAgIHN0cnVjdCBxbGFfcXBhaXIgKnFwYWlyLCBmY19wb3J0X3QgKmZjcG9ydCkKK3sKKwltZW1zZXQoc3AsIDAsIHNpemVvZigqc3ApKTsKKwlzcC0+ZmNwb3J0ID0gZmNwb3J0OworCXNwLT5pb2NicyA9IDE7CisJc3AtPnZoYSA9IHZoYTsKKwlzcC0+cXBhaXIgPSBxcGFpcjsKKwlzcC0+Y21kX3R5cGUgPSBUWVBFX1NSQjsKKwlJTklUX0xJU1RfSEVBRCgmc3AtPmVsZW0pOworfQorCiBzdGF0aWMgaW5saW5lIHNyYl90ICoKIHFsYTJ4eHhfZ2V0X3FwYWlyX3NwKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgcWxhX3FwYWlyICpxcGFpciwKICAgICBmY19wb3J0X3QgKmZjcG9ydCwgZ2ZwX3QgZmxhZykKQEAgLTE2NCwxOSArMTc2LDkgQEAgcWxhMnh4eF9nZXRfcXBhaXJfc3Aoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHN0cnVjdCBxbGFfcXBhaXIgKnFwYWlyLAogCQlyZXR1cm4gTlVMTDsKIAogCXNwID0gbWVtcG9vbF9hbGxvYyhxcGFpci0+c3JiX21lbXBvb2wsIGZsYWcpOwotCWlmICghc3ApCi0JCWdvdG8gZG9uZTsKLQotCW1lbXNldChzcCwgMCwgc2l6ZW9mKCpzcCkpOwotCXNwLT5mY3BvcnQgPSBmY3BvcnQ7Ci0Jc3AtPmlvY2JzID0gMTsKLQlzcC0+dmhhID0gdmhhOwotCXNwLT5xcGFpciA9IHFwYWlyOwotCXNwLT5jbWRfdHlwZSA9IFRZUEVfU1JCOwotCUlOSVRfTElTVF9IRUFEKCZzcC0+ZWxlbSk7Ci0KLWRvbmU6Ci0JaWYgKCFzcCkKKwlpZiAoc3ApCisJCXFsYTJ4eHhfaW5pdF9zcChzcCwgdmhhLCBxcGFpciwgZmNwb3J0KTsKKwllbHNlCiAJCVFMQV9RUEFJUl9NQVJLX05PVF9CVVNZKHFwYWlyKTsKIAlyZXR1cm4gc3A7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaW9jYi5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lvY2IuYwppbmRleCA5MzEyYjE5Li5lOTJlNTJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaW9jYi5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pb2NiLmMKQEAgLTI5Miw2ICsyOTIsMjYgQEAgdm9pZCBxbGEyeDAwX2J1aWxkX3Njc2lfaW9jYnNfNjQoc3JiX3QgKnNwLCBjbWRfZW50cnlfdCAqY21kX3BrdCwKIAl9CiB9CiAKKy8qCisgKiBGaW5kIHRoZSBmaXJzdCBoYW5kbGUgdGhhdCBpcyBub3QgaW4gdXNlLCBzdGFydGluZyBmcm9tCisgKiByZXEtPmN1cnJlbnRfb3V0c3RhbmRpbmdfY21kICsgMS4gVGhlIGNhbGxlciBtdXN0IGhvbGQgdGhlIGxvY2sgdGhhdCBpcworICogYXNzb2NpYXRlZCB3aXRoIEByZXEuCisgKi8KK3VpbnQzMl90IHFsYTJ4eHhfZ2V0X25leHRfaGFuZGxlKHN0cnVjdCByZXFfcXVlICpyZXEpCit7CisJdWludDMyX3QgaW5kZXgsIGhhbmRsZSA9IHJlcS0+Y3VycmVudF9vdXRzdGFuZGluZ19jbWQ7CisKKwlmb3IgKGluZGV4ID0gMTsgaW5kZXggPCByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzOyBpbmRleCsrKSB7CisJCWhhbmRsZSsrOworCQlpZiAoaGFuZGxlID09IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHMpCisJCQloYW5kbGUgPSAxOworCQlpZiAoIXJlcS0+b3V0c3RhbmRpbmdfY21kc1toYW5kbGVdKQorCQkJcmV0dXJuIGhhbmRsZTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKiBxbGEyeDAwX3N0YXJ0X3Njc2koKSAtIFNlbmQgYSBTQ1NJIGNvbW1hbmQgdG8gdGhlIElTUAogICogQHNwOiBjb21tYW5kIHRvIHNlbmQgdG8gdGhlIElTUApAQCAtMzA2LDcgKzMyNiw2IEBAIHFsYTJ4MDBfc3RhcnRfc2NzaShzcmJfdCAqc3ApCiAJc2NzaV9xbGFfaG9zdF90CSp2aGE7CiAJc3RydWN0IHNjc2lfY21uZCAqY21kOwogCXVpbnQzMl90CSpjbHJfcHRyOwotCXVpbnQzMl90ICAgICAgICBpbmRleDsKIAl1aW50MzJfdAloYW5kbGU7CiAJY21kX2VudHJ5X3QJKmNtZF9wa3Q7CiAJdWludDE2X3QJY250OwpAQCAtMzM5LDE2ICszNTgsOCBAQCBxbGEyeDAwX3N0YXJ0X3Njc2koc3JiX3QgKnNwKQogCS8qIEFjcXVpcmUgcmluZyBzcGVjaWZpYyBsb2NrICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmhhLT5oYXJkd2FyZV9sb2NrLCBmbGFncyk7CiAKLQkvKiBDaGVjayBmb3Igcm9vbSBpbiBvdXRzdGFuZGluZyBjb21tYW5kIGxpc3QuICovCi0JaGFuZGxlID0gcmVxLT5jdXJyZW50X291dHN0YW5kaW5nX2NtZDsKLQlmb3IgKGluZGV4ID0gMTsgaW5kZXggPCByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzOyBpbmRleCsrKSB7Ci0JCWhhbmRsZSsrOwotCQlpZiAoaGFuZGxlID09IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHMpCi0JCQloYW5kbGUgPSAxOwotCQlpZiAoIXJlcS0+b3V0c3RhbmRpbmdfY21kc1toYW5kbGVdKQotCQkJYnJlYWs7Ci0JfQotCWlmIChpbmRleCA9PSByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzKQorCWhhbmRsZSA9IHFsYTJ4eHhfZ2V0X25leHRfaGFuZGxlKHJlcSk7CisJaWYgKGhhbmRsZSA9PSAwKQogCQlnb3RvIHF1ZXVpbmdfZXJyb3I7CiAKIAkvKiBNYXAgdGhlIHNnIHRhYmxlIHNvIHdlIGhhdmUgYW4gYWNjdXJhdGUgY291bnQgb2Ygc2cgZW50cmllcyBuZWVkZWQgKi8KQEAgLTYxMCw3ICs2MjEsNyBAQCBxbGEyNHh4X2J1aWxkX3Njc2lfdHlwZV82X2lvY2JzKHNyYl90ICpzcCwgc3RydWN0IGNtZF90eXBlXzYgKmNtZF9wa3QsCiAJfQogCiAJY3VyX3NlZyA9IHNjc2lfc2dsaXN0KGNtZCk7Ci0JY3R4ID0gR0VUX0NNRF9DVFhfU1Aoc3ApOworCWN0eCA9IHNwLT51LnNjbWQuY3Q2X2N0eDsKIAogCXdoaWxlICh0b3RfZHNkcykgewogCQlhdmFpbF9kc2RzID0gKHRvdF9kc2RzID4gUUxBX0RTRFNfUEVSX0lPQ0IpID8KQEAgLTk0Myw4ICs5NTQsNyBAQCBxbGEyNHh4X3dhbGtfYW5kX2J1aWxkX3NnbGlzdF9ub19kaWZiKHN0cnVjdCBxbGFfaHdfZGF0YSAqaGEsIHNyYl90ICpzcCwKIAogCQkJaWYgKHNwKSB7CiAJCQkJbGlzdF9hZGRfdGFpbCgmZHNkX3B0ci0+bGlzdCwKLQkJCQkgICAgJigoc3RydWN0IGNyY19jb250ZXh0ICopCi0JCQkJCSAgICBzcC0+dS5zY21kLmN0eCktPmRzZF9saXN0KTsKKwkJCQkJICAgICAgJnNwLT51LnNjbWQuY3JjX2N0eC0+ZHNkX2xpc3QpOwogCiAJCQkJc3AtPmZsYWdzIHw9IFNSQl9DUkNfQ1RYX0RTRF9WQUxJRDsKIAkJCX0gZWxzZSB7CkBAIC0xMDQxLDggKzEwNTEsNyBAQCBxbGEyNHh4X3dhbGtfYW5kX2J1aWxkX3NnbGlzdChzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhLCBzcmJfdCAqc3AsCiAKIAkJCWlmIChzcCkgewogCQkJCWxpc3RfYWRkX3RhaWwoJmRzZF9wdHItPmxpc3QsCi0JCQkJICAgICYoKHN0cnVjdCBjcmNfY29udGV4dCAqKQotCQkJCQkgICAgc3AtPnUuc2NtZC5jdHgpLT5kc2RfbGlzdCk7CisJCQkJCSAgICAgICZzcC0+dS5zY21kLmNyY19jdHgtPmRzZF9saXN0KTsKIAogCQkJCXNwLT5mbGFncyB8PSBTUkJfQ1JDX0NUWF9EU0RfVkFMSUQ7CiAJCQl9IGVsc2UgewpAQCAtMTA4OCw3ICsxMDk3LDcgQEAgcWxhMjR4eF93YWxrX2FuZF9idWlsZF9wcm90X3NnbGlzdChzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhLCBzcmJfdCAqc3AsCiAKIAkJc2dsID0gc2NzaV9wcm90X3NnbGlzdChjbWQpOwogCQl2aGEgPSBzcC0+dmhhOwotCQlkaWZjdHggPSBzcC0+dS5zY21kLmN0eDsKKwkJZGlmY3R4ID0gc3AtPnUuc2NtZC5jcmNfY3R4OwogCQlkaXJlY3Rpb25fdG9fZGV2aWNlID0gY21kLT5zY19kYXRhX2RpcmVjdGlvbiA9PSBETUFfVE9fREVWSUNFOwogCQlxbF9kYmcocWxfZGJnX3RndCArIHFsX2RiZ192ZXJib3NlLCB2aGEsIDB4ZTAyMSwKIAkJICAiJXM6IHNjc2lfY21uZDogJXAsIGNyY19jdHg6ICVwLCBzcDogJXBcbiIsCkBAIC0xMzY0LDYgKzEzNzMsNyBAQCBxbGEyNHh4X3dhbGtfYW5kX2J1aWxkX3Byb3Rfc2dsaXN0KHN0cnVjdCBxbGFfaHdfZGF0YSAqaGEsIHNyYl90ICpzcCwKIAljdXJfZHNkKys7CiAJcmV0dXJuIDA7CiB9CisKIC8qKgogICogcWxhMjR4eF9idWlsZF9zY3NpX2NyY18yX2lvY2JzKCkgLSBCdWlsZCBJT0NCIGNvbW1hbmQgdXRpbGl6aW5nIENvbW1hbmQKICAqCQkJCQkJCVR5cGUgNiBJT0NCIHR5cGVzLgpAQCAtMTQyNyw3ICsxNDM3LDcgQEAgcWxhMjR4eF9idWlsZF9zY3NpX2NyY18yX2lvY2JzKHNyYl90ICpzcCwgc3RydWN0IGNtZF90eXBlX2NyY18yICpjbWRfcGt0LAogCQlidW5kbGluZyA9IDA7CiAKIAkvKiBBbGxvY2F0ZSBDUkMgY29udGV4dCBmcm9tIGdsb2JhbCBwb29sICovCi0JY3JjX2N0eF9wa3QgPSBzcC0+dS5zY21kLmN0eCA9CisJY3JjX2N0eF9wa3QgPSBzcC0+dS5zY21kLmNyY19jdHggPQogCSAgICBkbWFfcG9vbF96YWxsb2MoaGEtPmRsX2RtYV9wb29sLCBHRlBfQVRPTUlDLCAmY3JjX2N0eF9kbWEpOwogCiAJaWYgKCFjcmNfY3R4X3BrdCkKQEAgLTE1MTUsNyArMTUyNSw3IEBAIHFsYTI0eHhfYnVpbGRfc2NzaV9jcmNfMl9pb2NicyhzcmJfdCAqc3AsIHN0cnVjdCBjbWRfdHlwZV9jcmNfMiAqY21kX3BrdCwKIAl9CiAKIAlpZiAoIWJ1bmRsaW5nKSB7Ci0JCWN1cl9kc2QgPSAmY3JjX2N0eF9wa3QtPnUubm9idW5kbGluZy5kYXRhX2RzZDsKKwkJY3VyX2RzZCA9ICZjcmNfY3R4X3BrdC0+dS5ub2J1bmRsaW5nLmRhdGFfZHNkWzBdOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIENvbmZpZ3VyZSBCdW5kbGluZyBpZiB3ZSBuZWVkIHRvIGZldGNoIGludGVybGF2aW5nCkBAIC0xNTI1LDcgKzE1MzUsNyBAQCBxbGEyNHh4X2J1aWxkX3Njc2lfY3JjXzJfaW9jYnMoc3JiX3QgKnNwLCBzdHJ1Y3QgY21kX3R5cGVfY3JjXzIgKmNtZF9wa3QsCiAJCWNyY19jdHhfcGt0LT51LmJ1bmRsaW5nLmRpZl9ieXRlX2NvdW50ID0gY3B1X3RvX2xlMzIoZGlmX2J5dGVzKTsKIAkJY3JjX2N0eF9wa3QtPnUuYnVuZGxpbmcuZHNlZ19jb3VudCA9IGNwdV90b19sZTE2KHRvdF9kc2RzIC0KIAkJCQkJCQl0b3RfcHJvdF9kc2RzKTsKLQkJY3VyX2RzZCA9ICZjcmNfY3R4X3BrdC0+dS5idW5kbGluZy5kYXRhX2RzZDsKKwkJY3VyX2RzZCA9ICZjcmNfY3R4X3BrdC0+dS5idW5kbGluZy5kYXRhX2RzZFswXTsKIAl9CiAKIAkvKiBGaW5pc2ggdGhlIGNvbW1vbiBmaWVsZHMgb2YgQ1JDIHBrdCAqLwpAQCAtMTU4Myw3ICsxNTkzLDYgQEAgcWxhMjR4eF9zdGFydF9zY3NpKHNyYl90ICpzcCkKIAlpbnQJCW5zZWc7CiAJdW5zaWduZWQgbG9uZyAgIGZsYWdzOwogCXVpbnQzMl90CSpjbHJfcHRyOwotCXVpbnQzMl90ICAgICAgICBpbmRleDsKIAl1aW50MzJfdAloYW5kbGU7CiAJc3RydWN0IGNtZF90eXBlXzcgKmNtZF9wa3Q7CiAJdWludDE2X3QJY250OwpAQCAtMTYxMSwxNiArMTYyMCw4IEBAIHFsYTI0eHhfc3RhcnRfc2NzaShzcmJfdCAqc3ApCiAJLyogQWNxdWlyZSByaW5nIHNwZWNpZmljIGxvY2sgKi8KIAlzcGluX2xvY2tfaXJxc2F2ZSgmaGEtPmhhcmR3YXJlX2xvY2ssIGZsYWdzKTsKIAotCS8qIENoZWNrIGZvciByb29tIGluIG91dHN0YW5kaW5nIGNvbW1hbmQgbGlzdC4gKi8KLQloYW5kbGUgPSByZXEtPmN1cnJlbnRfb3V0c3RhbmRpbmdfY21kOwotCWZvciAoaW5kZXggPSAxOyBpbmRleCA8IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHM7IGluZGV4KyspIHsKLQkJaGFuZGxlKys7Ci0JCWlmIChoYW5kbGUgPT0gcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kcykKLQkJCWhhbmRsZSA9IDE7Ci0JCWlmICghcmVxLT5vdXRzdGFuZGluZ19jbWRzW2hhbmRsZV0pCi0JCQlicmVhazsKLQl9Ci0JaWYgKGluZGV4ID09IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHMpCisJaGFuZGxlID0gcWxhMnh4eF9nZXRfbmV4dF9oYW5kbGUocmVxKTsKKwlpZiAoaGFuZGxlID09IDApCiAJCWdvdG8gcXVldWluZ19lcnJvcjsKIAogCS8qIE1hcCB0aGUgc2cgdGFibGUgc28gd2UgaGF2ZSBhbiBhY2N1cmF0ZSBjb3VudCBvZiBzZyBlbnRyaWVzIG5lZWRlZCAqLwpAQCAtMTcyMyw3ICsxNzI0LDYgQEAgcWxhMjR4eF9kaWZfc3RhcnRfc2NzaShzcmJfdCAqc3ApCiAJaW50CQkJbnNlZzsKIAl1bnNpZ25lZCBsb25nCQlmbGFnczsKIAl1aW50MzJfdAkJKmNscl9wdHI7Ci0JdWludDMyX3QJCWluZGV4OwogCXVpbnQzMl90CQloYW5kbGU7CiAJdWludDE2X3QJCWNudDsKIAl1aW50MTZfdAkJcmVxX2NudCA9IDA7CkBAIC0xNzY0LDE3ICsxNzY0LDggQEAgcWxhMjR4eF9kaWZfc3RhcnRfc2NzaShzcmJfdCAqc3ApCiAJLyogQWNxdWlyZSByaW5nIHNwZWNpZmljIGxvY2sgKi8KIAlzcGluX2xvY2tfaXJxc2F2ZSgmaGEtPmhhcmR3YXJlX2xvY2ssIGZsYWdzKTsKIAotCS8qIENoZWNrIGZvciByb29tIGluIG91dHN0YW5kaW5nIGNvbW1hbmQgbGlzdC4gKi8KLQloYW5kbGUgPSByZXEtPmN1cnJlbnRfb3V0c3RhbmRpbmdfY21kOwotCWZvciAoaW5kZXggPSAxOyBpbmRleCA8IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHM7IGluZGV4KyspIHsKLQkJaGFuZGxlKys7Ci0JCWlmIChoYW5kbGUgPT0gcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kcykKLQkJCWhhbmRsZSA9IDE7Ci0JCWlmICghcmVxLT5vdXRzdGFuZGluZ19jbWRzW2hhbmRsZV0pCi0JCQlicmVhazsKLQl9Ci0KLQlpZiAoaW5kZXggPT0gcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kcykKKwloYW5kbGUgPSBxbGEyeHh4X2dldF9uZXh0X2hhbmRsZShyZXEpOworCWlmIChoYW5kbGUgPT0gMCkKIAkJZ290byBxdWV1aW5nX2Vycm9yOwogCiAJLyogQ29tcHV0ZSBudW1iZXIgb2YgcmVxdWlyZWQgZGF0YSBzZWdtZW50cyAqLwpAQCAtMTkxOSw3ICsxOTEwLDYgQEAgcWxhMnh4eF9zdGFydF9zY3NpX21xKHNyYl90ICpzcCkKIAlpbnQJCW5zZWc7CiAJdW5zaWduZWQgbG9uZyAgIGZsYWdzOwogCXVpbnQzMl90CSpjbHJfcHRyOwotCXVpbnQzMl90ICAgICAgICBpbmRleDsKIAl1aW50MzJfdAloYW5kbGU7CiAJc3RydWN0IGNtZF90eXBlXzcgKmNtZF9wa3Q7CiAJdWludDE2X3QJY250OwpAQCAtMTk1MCwxNiArMTk0MCw4IEBAIHFsYTJ4eHhfc3RhcnRfc2NzaV9tcShzcmJfdCAqc3ApCiAJCXZoYS0+bWFya2VyX25lZWRlZCA9IDA7CiAJfQogCi0JLyogQ2hlY2sgZm9yIHJvb20gaW4gb3V0c3RhbmRpbmcgY29tbWFuZCBsaXN0LiAqLwotCWhhbmRsZSA9IHJlcS0+Y3VycmVudF9vdXRzdGFuZGluZ19jbWQ7Ci0JZm9yIChpbmRleCA9IDE7IGluZGV4IDwgcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kczsgaW5kZXgrKykgewotCQloYW5kbGUrKzsKLQkJaWYgKGhhbmRsZSA9PSByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzKQotCQkJaGFuZGxlID0gMTsKLQkJaWYgKCFyZXEtPm91dHN0YW5kaW5nX2NtZHNbaGFuZGxlXSkKLQkJCWJyZWFrOwotCX0KLQlpZiAoaW5kZXggPT0gcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kcykKKwloYW5kbGUgPSBxbGEyeHh4X2dldF9uZXh0X2hhbmRsZShyZXEpOworCWlmIChoYW5kbGUgPT0gMCkKIAkJZ290byBxdWV1aW5nX2Vycm9yOwogCiAJLyogTWFwIHRoZSBzZyB0YWJsZSBzbyB3ZSBoYXZlIGFuIGFjY3VyYXRlIGNvdW50IG9mIHNnIGVudHJpZXMgbmVlZGVkICovCkBAIC0yMDYzLDcgKzIwNDUsNiBAQCBxbGEyeHh4X2RpZl9zdGFydF9zY3NpX21xKHNyYl90ICpzcCkKIAlpbnQJCQluc2VnOwogCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwogCXVpbnQzMl90CQkqY2xyX3B0cjsKLQl1aW50MzJfdAkJaW5kZXg7CiAJdWludDMyX3QJCWhhbmRsZTsKIAl1aW50MTZfdAkJY250OwogCXVpbnQxNl90CQlyZXFfY250ID0gMDsKQEAgLTIxMTgsMTcgKzIwOTksOCBAQCBxbGEyeHh4X2RpZl9zdGFydF9zY3NpX21xKHNyYl90ICpzcCkKIAkJdmhhLT5tYXJrZXJfbmVlZGVkID0gMDsKIAl9CiAKLQkvKiBDaGVjayBmb3Igcm9vbSBpbiBvdXRzdGFuZGluZyBjb21tYW5kIGxpc3QuICovCi0JaGFuZGxlID0gcmVxLT5jdXJyZW50X291dHN0YW5kaW5nX2NtZDsKLQlmb3IgKGluZGV4ID0gMTsgaW5kZXggPCByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzOyBpbmRleCsrKSB7Ci0JCWhhbmRsZSsrOwotCQlpZiAoaGFuZGxlID09IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHMpCi0JCQloYW5kbGUgPSAxOwotCQlpZiAoIXJlcS0+b3V0c3RhbmRpbmdfY21kc1toYW5kbGVdKQotCQkJYnJlYWs7Ci0JfQotCi0JaWYgKGluZGV4ID09IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHMpCisJaGFuZGxlID0gcWxhMnh4eF9nZXRfbmV4dF9oYW5kbGUocmVxKTsKKwlpZiAoaGFuZGxlID09IDApCiAJCWdvdG8gcXVldWluZ19lcnJvcjsKIAogCS8qIENvbXB1dGUgbnVtYmVyIG9mIHJlcXVpcmVkIGRhdGEgc2VnbWVudHMgKi8KQEAgLTIyNzUsNyArMjI0Nyw3IEBAIF9fcWxhMngwMF9hbGxvY19pb2NicyhzdHJ1Y3QgcWxhX3FwYWlyICpxcGFpciwgc3JiX3QgKnNwKQogCXN0cnVjdCBxbGFfaHdfZGF0YSAqaGEgPSB2aGEtPmh3OwogCXN0cnVjdCByZXFfcXVlICpyZXEgPSBxcGFpci0+cmVxOwogCWRldmljZV9yZWdfdCAqcmVnID0gSVNQX1FVRV9SRUcoaGEsIHJlcS0+aWQpOwotCXVpbnQzMl90IGluZGV4LCBoYW5kbGU7CisJdWludDMyX3QgaGFuZGxlOwogCXJlcXVlc3RfdCAqcGt0OwogCXVpbnQxNl90IGNudCwgcmVxX2NudDsKIApAQCAtMjMxNSwxNiArMjI4Nyw4IEBAIF9fcWxhMngwMF9hbGxvY19pb2NicyhzdHJ1Y3QgcWxhX3FwYWlyICpxcGFpciwgc3JiX3QgKnNwKQogCQlnb3RvIHF1ZXVpbmdfZXJyb3I7CiAKIAlpZiAoc3ApIHsKLQkJLyogQ2hlY2sgZm9yIHJvb20gaW4gb3V0c3RhbmRpbmcgY29tbWFuZCBsaXN0LiAqLwotCQloYW5kbGUgPSByZXEtPmN1cnJlbnRfb3V0c3RhbmRpbmdfY21kOwotCQlmb3IgKGluZGV4ID0gMTsgaW5kZXggPCByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzOyBpbmRleCsrKSB7Ci0JCQloYW5kbGUrKzsKLQkJCWlmIChoYW5kbGUgPT0gcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kcykKLQkJCQloYW5kbGUgPSAxOwotCQkJaWYgKCFyZXEtPm91dHN0YW5kaW5nX2NtZHNbaGFuZGxlXSkKLQkJCQlicmVhazsKLQkJfQotCQlpZiAoaW5kZXggPT0gcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kcykgeworCQloYW5kbGUgPSBxbGEyeHh4X2dldF9uZXh0X2hhbmRsZShyZXEpOworCQlpZiAoaGFuZGxlID09IDApIHsKIAkJCXFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweDcwMGIsCiAJCQkgICAgIk5vIHJvb20gb24gb3V0c3RhbmRpbmcgY21kIGFycmF5LlxuIik7CiAJCQlnb3RvIHF1ZXVpbmdfZXJyb3I7CkBAIC0yNTQwLDEzICsyNTA0LDExIEBAIHZvaWQgcWxhMngwMF9pbml0X3RpbWVyKHNyYl90ICpzcCwgdW5zaWduZWQgbG9uZyB0bW8pCiAJc3AtPmZyZWUgPSBxbGEyeDAwX3NwX2ZyZWU7CiAJaWYgKElTX1FMQUZYMDAoc3AtPnZoYS0+aHcpICYmIHNwLT50eXBlID09IFNSQl9GWElPQ0JfRENNRCkKIAkJaW5pdF9jb21wbGV0aW9uKCZzcC0+dS5pb2NiX2NtZC51LmZ4aW9jYi5meGlvY2JfY29tcCk7Ci0JYWRkX3RpbWVyKCZzcC0+dS5pb2NiX2NtZC50aW1lcik7CisJc3AtPnN0YXJ0X3RpbWVyID0gMTsKIH0KIAotc3RhdGljIHZvaWQKLXFsYTJ4MDBfZWxzX2RjbWRfc3BfZnJlZSh2b2lkICpkYXRhKQorc3RhdGljIHZvaWQgcWxhMngwMF9lbHNfZGNtZF9zcF9mcmVlKHNyYl90ICpzcCkKIHsKLQlzcmJfdCAqc3AgPSBkYXRhOwogCXN0cnVjdCBzcmJfaW9jYiAqZWxzaW8gPSAmc3AtPnUuaW9jYl9jbWQ7CiAKIAlrZnJlZShzcC0+ZmNwb3J0KTsKQEAgLTI1NzYsMTAgKzI1MzgsOCBAQCBxbGEyeDAwX2Vsc19kY21kX2lvY2JfdGltZW91dCh2b2lkICpkYXRhKQogCWNvbXBsZXRlKCZsaW8tPnUuZWxzX2xvZ28uY29tcCk7CiB9CiAKLXN0YXRpYyB2b2lkCi1xbGEyeDAwX2Vsc19kY21kX3NwX2RvbmUodm9pZCAqcHRyLCBpbnQgcmVzKQorc3RhdGljIHZvaWQgcWxhMngwMF9lbHNfZGNtZF9zcF9kb25lKHNyYl90ICpzcCwgaW50IHJlcykKIHsKLQlzcmJfdCAqc3AgPSBwdHI7CiAJZmNfcG9ydF90ICpmY3BvcnQgPSBzcC0+ZmNwb3J0OwogCXN0cnVjdCBzcmJfaW9jYiAqbGlvID0gJnNwLT51LmlvY2JfY21kOwogCXN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEgPSBzcC0+dmhhOwpAQCAtMjY5OSwxNiArMjY1OSwxNiBAQCBxbGEyNHh4X2Vsc19sb2dvX2lvY2Ioc3JiX3QgKnNwLCBzdHJ1Y3QgZWxzX2VudHJ5XzI0eHggKmVsc19pb2NiKQogCWVsc19pb2NiLT5zX2lkWzBdID0gdmhhLT5kX2lkLmIuYWxfcGE7CiAJZWxzX2lvY2ItPnNfaWRbMV0gPSB2aGEtPmRfaWQuYi5hcmVhOwogCWVsc19pb2NiLT5zX2lkWzJdID0gdmhhLT5kX2lkLmIuZG9tYWluOwotCWVsc19pb2NiLT5jb250cm9sX2ZsYWdzID0gMDsKIAogCWlmIChlbHNpby0+dS5lbHNfbG9nby5lbHNfY21kID09IEVMU19EQ01EX1BMT0dJKSB7CisJCWVsc19pb2NiLT5jb250cm9sX2ZsYWdzID0gMDsKIAkJZWxzX2lvY2ItPnR4X2J5dGVfY291bnQgPSBlbHNfaW9jYi0+dHhfbGVuID0KLQkJCXNpemVvZihzdHJ1Y3QgZWxzX3Bsb2dpX3BheWxvYWQpOworCQkJY3B1X3RvX2xlMzIoc2l6ZW9mKHN0cnVjdCBlbHNfcGxvZ2lfcGF5bG9hZCkpOwogCQlwdXRfdW5hbGlnbmVkX2xlNjQoZWxzaW8tPnUuZWxzX3Bsb2dpLmVsc19wbG9naV9weWxkX2RtYSwKIAkJCQkgICAmZWxzX2lvY2ItPnR4X2FkZHJlc3MpOwogCQllbHNfaW9jYi0+cnhfZHNkX2NvdW50ID0gMTsKIAkJZWxzX2lvY2ItPnJ4X2J5dGVfY291bnQgPSBlbHNfaW9jYi0+cnhfbGVuID0KLQkJCXNpemVvZihzdHJ1Y3QgZWxzX3Bsb2dpX3BheWxvYWQpOworCQkJY3B1X3RvX2xlMzIoc2l6ZW9mKHN0cnVjdCBlbHNfcGxvZ2lfcGF5bG9hZCkpOwogCQlwdXRfdW5hbGlnbmVkX2xlNjQoZWxzaW8tPnUuZWxzX3Bsb2dpLmVsc19yZXNwX3B5bGRfZG1hLAogCQkJCSAgICZlbHNfaW9jYi0+cnhfYWRkcmVzcyk7CiAKQEAgLTI3MTcsNyArMjY3Nyw5IEBAIHFsYTI0eHhfZWxzX2xvZ29faW9jYihzcmJfdCAqc3AsIHN0cnVjdCBlbHNfZW50cnlfMjR4eCAqZWxzX2lvY2IpCiAJCXFsX2R1bXBfYnVmZmVyKHFsX2xvZ19pbmZvLCB2aGEsIDB4MDEwOSwKIAkJICAgICh1aW50OF90ICopZWxzX2lvY2IsIDB4NzApOwogCX0gZWxzZSB7Ci0JCWVsc19pb2NiLT50eF9ieXRlX2NvdW50ID0gc2l6ZW9mKHN0cnVjdCBlbHNfbG9nb19wYXlsb2FkKTsKKwkJZWxzX2lvY2ItPmNvbnRyb2xfZmxhZ3MgPSAxIDw8IDEzOworCQllbHNfaW9jYi0+dHhfYnl0ZV9jb3VudCA9CisJCQljcHVfdG9fbGUzMihzaXplb2Yoc3RydWN0IGVsc19sb2dvX3BheWxvYWQpKTsKIAkJcHV0X3VuYWxpZ25lZF9sZTY0KGVsc2lvLT51LmVsc19sb2dvLmVsc19sb2dvX3B5bGRfZG1hLAogCQkJCSAgICZlbHNfaW9jYi0+dHhfYWRkcmVzcyk7CiAJCWVsc19pb2NiLT50eF9sZW4gPSBjcHVfdG9fbGUzMihzaXplb2Yoc3RydWN0IGVsc19sb2dvX3BheWxvYWQpKTsKQEAgLTI3NTUsMTAgKzI3MTcsMjMgQEAgcWxhMngwMF9lbHNfZGNtZDJfaW9jYl90aW1lb3V0KHZvaWQgKmRhdGEpCiAJc3AtPmRvbmUoc3AsIFFMQV9GVU5DVElPTl9USU1FT1VUKTsKIH0KIAotc3RhdGljIHZvaWQKLXFsYTJ4MDBfZWxzX2RjbWQyX3NwX2RvbmUodm9pZCAqcHRyLCBpbnQgcmVzKQordm9pZCBxbGEyeDAwX2Vsc19kY21kMl9mcmVlKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgZWxzX3Bsb2dpICplbHNfcGxvZ2kpCiB7Ci0Jc3JiX3QgKnNwID0gcHRyOworCWlmIChlbHNfcGxvZ2ktPmVsc19wbG9naV9weWxkKQorCQlkbWFfZnJlZV9jb2hlcmVudCgmdmhhLT5ody0+cGRldi0+ZGV2LAorCQkJCSAgZWxzX3Bsb2dpLT50eF9zaXplLAorCQkJCSAgZWxzX3Bsb2dpLT5lbHNfcGxvZ2lfcHlsZCwKKwkJCQkgIGVsc19wbG9naS0+ZWxzX3Bsb2dpX3B5bGRfZG1hKTsKKworCWlmIChlbHNfcGxvZ2ktPmVsc19yZXNwX3B5bGQpCisJCWRtYV9mcmVlX2NvaGVyZW50KCZ2aGEtPmh3LT5wZGV2LT5kZXYsCisJCQkJICBlbHNfcGxvZ2ktPnJ4X3NpemUsCisJCQkJICBlbHNfcGxvZ2ktPmVsc19yZXNwX3B5bGQsCisJCQkJICBlbHNfcGxvZ2ktPmVsc19yZXNwX3B5bGRfZG1hKTsKK30KKworc3RhdGljIHZvaWQgcWxhMngwMF9lbHNfZGNtZDJfc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCit7CiAJZmNfcG9ydF90ICpmY3BvcnQgPSBzcC0+ZmNwb3J0OwogCXN0cnVjdCBzcmJfaW9jYiAqbGlvID0gJnNwLT51LmlvY2JfY21kOwogCXN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEgPSBzcC0+dmhhOwpAQCAtMjc4MCwyNiArMjc1NSwxNiBAQCBxbGEyeDAwX2Vsc19kY21kMl9zcF9kb25lKHZvaWQgKnB0ciwgaW50IHJlcykKIAkJfSBlbHNlIHsKIAkJCW1lbXNldCgmZWEsIDAsIHNpemVvZihlYSkpOwogCQkJZWEuZmNwb3J0ID0gZmNwb3J0OwotCQkJZWEucmMgPSByZXM7Ci0JCQllYS5ldmVudCA9IEZDTUVfRUxTX1BMT0dJX0RPTkU7Ci0JCQlxbGEyeDAwX2ZjcG9ydF9ldmVudF9oYW5kbGVyKHZoYSwgJmVhKTsKKwkJCWVhLmRhdGFbMF0gPSBNQlNfQ09NTUFORF9DT01QTEVURTsKKwkJCWVhLnNwID0gc3A7CisJCQlxbGEyNHh4X2hhbmRsZV9wbG9naV9kb25lX2V2ZW50KHZoYSwgJmVhKTsKIAkJfQogCiAJCWUgPSBxbGEyeDAwX2FsbG9jX3dvcmsodmhhLCBRTEFfRVZUX1VOTUFQKTsKIAkJaWYgKCFlKSB7CiAJCQlzdHJ1Y3Qgc3JiX2lvY2IgKmVsc2lvID0gJnNwLT51LmlvY2JfY21kOwogCi0JCQlpZiAoZWxzaW8tPnUuZWxzX3Bsb2dpLmVsc19wbG9naV9weWxkKQotCQkJCWRtYV9mcmVlX2NvaGVyZW50KCZzcC0+dmhhLT5ody0+cGRldi0+ZGV2LAotCQkJCSAgICBlbHNpby0+dS5lbHNfcGxvZ2kudHhfc2l6ZSwKLQkJCQkgICAgZWxzaW8tPnUuZWxzX3Bsb2dpLmVsc19wbG9naV9weWxkLAotCQkJCSAgICBlbHNpby0+dS5lbHNfcGxvZ2kuZWxzX3Bsb2dpX3B5bGRfZG1hKTsKLQotCQkJaWYgKGVsc2lvLT51LmVsc19wbG9naS5lbHNfcmVzcF9weWxkKQotCQkJCWRtYV9mcmVlX2NvaGVyZW50KCZzcC0+dmhhLT5ody0+cGRldi0+ZGV2LAotCQkJCSAgICBlbHNpby0+dS5lbHNfcGxvZ2kucnhfc2l6ZSwKLQkJCQkgICAgZWxzaW8tPnUuZWxzX3Bsb2dpLmVsc19yZXNwX3B5bGQsCi0JCQkJICAgIGVsc2lvLT51LmVsc19wbG9naS5lbHNfcmVzcF9weWxkX2RtYSk7CisJCQlxbGEyeDAwX2Vsc19kY21kMl9mcmVlKHZoYSwgJmVsc2lvLT51LmVsc19wbG9naSk7CiAJCQlzcC0+ZnJlZShzcCk7CiAJCQlyZXR1cm47CiAJCX0KQEAgLTI4OTksMTggKzI4NjQsNyBAQCBxbGEyNHh4X2Vsc19kY21kMl9pb2NiKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBpbnQgZWxzX29wY29kZSwKIAogb3V0OgogCWZjcG9ydC0+ZmxhZ3MgJj0gfihGQ0ZfQVNZTkNfU0VOVCk7Ci0JaWYgKGVsc2lvLT51LmVsc19wbG9naS5lbHNfcGxvZ2lfcHlsZCkKLQkJZG1hX2ZyZWVfY29oZXJlbnQoJnNwLT52aGEtPmh3LT5wZGV2LT5kZXYsCi0JCSAgICBlbHNpby0+dS5lbHNfcGxvZ2kudHhfc2l6ZSwKLQkJICAgIGVsc2lvLT51LmVsc19wbG9naS5lbHNfcGxvZ2lfcHlsZCwKLQkJICAgIGVsc2lvLT51LmVsc19wbG9naS5lbHNfcGxvZ2lfcHlsZF9kbWEpOwotCi0JaWYgKGVsc2lvLT51LmVsc19wbG9naS5lbHNfcmVzcF9weWxkKQotCQlkbWFfZnJlZV9jb2hlcmVudCgmc3AtPnZoYS0+aHctPnBkZXYtPmRldiwKLQkJICAgIGVsc2lvLT51LmVsc19wbG9naS5yeF9zaXplLAotCQkgICAgZWxzaW8tPnUuZWxzX3Bsb2dpLmVsc19yZXNwX3B5bGQsCi0JCSAgICBlbHNpby0+dS5lbHNfcGxvZ2kuZWxzX3Jlc3BfcHlsZF9kbWEpOwotCisJcWxhMngwMF9lbHNfZGNtZDJfZnJlZSh2aGEsICZlbHNpby0+dS5lbHNfcGxvZ2kpOwogCXNwLT5mcmVlKHNwKTsKIGRvbmU6CiAJcmV0dXJuIHJ2YWw7CkBAIC0zMTE1LDcgKzMwNjksNiBAQCBxbGE4Mnh4X3N0YXJ0X3Njc2koc3JiX3QgKnNwKQogCXVuc2lnbmVkIGxvbmcgICBmbGFnczsKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQ7CiAJdWludDMyX3QJKmNscl9wdHI7Ci0JdWludDMyX3QgICAgICAgIGluZGV4OwogCXVpbnQzMl90CWhhbmRsZTsKIAl1aW50MTZfdAljbnQ7CiAJdWludDE2X3QJcmVxX2NudDsKQEAgLTMxNTUsMTYgKzMxMDgsOCBAQCBxbGE4Mnh4X3N0YXJ0X3Njc2koc3JiX3QgKnNwKQogCS8qIEFjcXVpcmUgcmluZyBzcGVjaWZpYyBsb2NrICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmhhLT5oYXJkd2FyZV9sb2NrLCBmbGFncyk7CiAKLQkvKiBDaGVjayBmb3Igcm9vbSBpbiBvdXRzdGFuZGluZyBjb21tYW5kIGxpc3QuICovCi0JaGFuZGxlID0gcmVxLT5jdXJyZW50X291dHN0YW5kaW5nX2NtZDsKLQlmb3IgKGluZGV4ID0gMTsgaW5kZXggPCByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzOyBpbmRleCsrKSB7Ci0JCWhhbmRsZSsrOwotCQlpZiAoaGFuZGxlID09IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHMpCi0JCQloYW5kbGUgPSAxOwotCQlpZiAoIXJlcS0+b3V0c3RhbmRpbmdfY21kc1toYW5kbGVdKQotCQkJYnJlYWs7Ci0JfQotCWlmIChpbmRleCA9PSByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzKQorCWhhbmRsZSA9IHFsYTJ4eHhfZ2V0X25leHRfaGFuZGxlKHJlcSk7CisJaWYgKGhhbmRsZSA9PSAwKQogCQlnb3RvIHF1ZXVpbmdfZXJyb3I7CiAKIAkvKiBNYXAgdGhlIHNnIHRhYmxlIHNvIHdlIGhhdmUgYW4gYWNjdXJhdGUgY291bnQgb2Ygc2cgZW50cmllcyBuZWVkZWQgKi8KQEAgLTMyMzUsNyArMzE4MCw3IEBAIHFsYTgyeHhfc3RhcnRfc2NzaShzcmJfdCAqc3ApCiAJCQkJZ290byBxdWV1aW5nX2Vycm9yOwogCQl9CiAKLQkJY3R4ID0gc3AtPnUuc2NtZC5jdHggPQorCQljdHggPSBzcC0+dS5zY21kLmN0Nl9jdHggPQogCQkgICAgbWVtcG9vbF9hbGxvYyhoYS0+Y3R4X21lbXBvb2wsIEdGUF9BVE9NSUMpOwogCQlpZiAoIWN0eCkgewogCQkJcWxfbG9nKHFsX2xvZ19mYXRhbCwgdmhhLCAweDMwMTAsCkBAIC0zNDMxLDkgKzMzNzYsOSBAQCBxbGE4Mnh4X3N0YXJ0X3Njc2koc3JiX3QgKnNwKQogCWlmICh0b3RfZHNkcykKIAkJc2NzaV9kbWFfdW5tYXAoY21kKTsKIAotCWlmIChzcC0+dS5zY21kLmN0eCkgewotCQltZW1wb29sX2ZyZWUoc3AtPnUuc2NtZC5jdHgsIGhhLT5jdHhfbWVtcG9vbCk7Ci0JCXNwLT51LnNjbWQuY3R4ID0gTlVMTDsKKwlpZiAoc3AtPnUuc2NtZC5jcmNfY3R4KSB7CisJCW1lbXBvb2xfZnJlZShzcC0+dS5zY21kLmNyY19jdHgsIGhhLT5jdHhfbWVtcG9vbCk7CisJCXNwLT51LnNjbWQuY3JjX2N0eCA9IE5VTEw7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmhhLT5oYXJkd2FyZV9sb2NrLCBmbGFncyk7CiAKQEAgLTM2NjgsNiArMzYxMyw5IEBAIHFsYTJ4MDBfc3RhcnRfc3Aoc3JiX3QgKnNwKQogCQlicmVhazsKIAl9CiAKKwlpZiAoc3AtPnN0YXJ0X3RpbWVyKQorCQlhZGRfdGltZXIoJnNwLT51LmlvY2JfY21kLnRpbWVyKTsKKwogCXdtYigpOwogCXFsYTJ4MDBfc3RhcnRfaW9jYnModmhhLCBxcC0+cmVxKTsKIGRvbmU6CkBAIC0zNzY5LDcgKzM3MTcsNiBAQCBxbGEyeDAwX3N0YXJ0X2JpZGlyKHNyYl90ICpzcCwgc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwgdWludDMyX3QgdG90X2RzZHMpCiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHZoYS0+aHc7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1aW50MzJfdCBoYW5kbGU7Ci0JdWludDMyX3QgaW5kZXg7CiAJdWludDE2X3QgcmVxX2NudDsKIAl1aW50MTZfdCBjbnQ7CiAJdWludDMyX3QgKmNscl9wdHI7CkBAIC0zNzk0LDE3ICszNzQxLDggQEAgcWxhMngwMF9zdGFydF9iaWRpcihzcmJfdCAqc3AsIHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIHVpbnQzMl90IHRvdF9kc2RzKQogCS8qIEFjcXVpcmUgcmluZyBzcGVjaWZpYyBsb2NrICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmhhLT5oYXJkd2FyZV9sb2NrLCBmbGFncyk7CiAKLQkvKiBDaGVjayBmb3Igcm9vbSBpbiBvdXRzdGFuZGluZyBjb21tYW5kIGxpc3QuICovCi0JaGFuZGxlID0gcmVxLT5jdXJyZW50X291dHN0YW5kaW5nX2NtZDsKLQlmb3IgKGluZGV4ID0gMTsgaW5kZXggPCByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzOyBpbmRleCsrKSB7Ci0JCWhhbmRsZSsrOwotCQlpZiAoaGFuZGxlID09IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHMpCi0JCQloYW5kbGUgPSAxOwotCQlpZiAoIXJlcS0+b3V0c3RhbmRpbmdfY21kc1toYW5kbGVdKQotCQkJYnJlYWs7Ci0JfQotCi0JaWYgKGluZGV4ID09IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHMpIHsKKwloYW5kbGUgPSBxbGEyeHh4X2dldF9uZXh0X2hhbmRsZShyZXEpOworCWlmIChoYW5kbGUgPT0gMCkgewogCQlydmFsID0gRVhUX1NUQVRVU19CVVNZOwogCQlnb3RvIHF1ZXVpbmdfZXJyb3I7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lzci5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lzci5jCmluZGV4IDc4YWVjNTAuLjRjMjY2MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pc3IuYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaXNyLmMKQEAgLTc3Niw3ICs3NzYsNiBAQCBxbGEyeDAwX2FzeW5jX2V2ZW50KHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgcnNwX3F1ZSAqcnNwLCB1aW50MTZfdCAqbWIpCiAJY2FzZSBNQkFfTE9PUF9JTklUX0VSUjoKIAkJcWxfbG9nKHFsX2xvZ193YXJuLCB2aGEsIDB4NTA5MCwKIAkJICAgICJMT09QIElOSVQgRVJST1IgKCV4KS5cbiIsIG1iWzFdKTsKLQkJaGEtPmlzcF9vcHMtPmZ3X2R1bXAodmhhLCAxKTsKIAkJc2V0X2JpdChJU1BfQUJPUlRfTkVFREVELCAmdmhhLT5kcGNfZmxhZ3MpOwogCQlicmVhazsKIApAQCAtMTExOSwxMCArMTExOCw5IEBAIHFsYTJ4MDBfYXN5bmNfZXZlbnQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHN0cnVjdCByc3BfcXVlICpyc3AsIHVpbnQxNl90ICptYikKIAkJCXN0cnVjdCBldmVudF9hcmcgZWE7CiAKIAkJCW1lbXNldCgmZWEsIDAsIHNpemVvZihlYSkpOwotCQkJZWEuZXZlbnQgPSBGQ01FX1JTQ047CiAJCQllYS5pZC5iMjQgPSByc2NuX2VudHJ5OwogCQkJZWEuaWQuYi5yc3ZkXzEgPSByc2NuX2VudHJ5ID4+IDI0OwotCQkJcWxhMngwMF9mY3BvcnRfZXZlbnRfaGFuZGxlcih2aGEsICZlYSk7CisJCQlxbGEyeDAwX2hhbmRsZV9yc2NuKHZoYSwgJmVhKTsKIAkJCXFsYTJ4MDBfcG9zdF9hZW5fd29yayh2aGEsIEZDSF9FVlRfUlNDTiwgcnNjbl9lbnRyeSk7CiAJCX0KIAkJYnJlYWs7CkBAIC0xNTE0LDcgKzE1MTIsNyBAQCBxbGEyeDAwX2N0X2VudHJ5KHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgcmVxX3F1ZSAqcmVxLAogCQkgICAgaWYgKGNvbXBfc3RhdHVzID09IENTX0RBVEFfVU5ERVJSVU4pIHsKIAkJCSAgICByZXMgPSBESURfT0sgPDwgMTY7CiAJCQkgICAgYnNnX3JlcGx5LT5yZXBseV9wYXlsb2FkX3Jjdl9sZW4gPQotCQkJCWxlMTZfdG9fY3B1KCgoc3RzX2VudHJ5X3QgKilwa3QpLT5yc3BfaW5mb19sZW4pOworCQkJCWxlMTZfdG9fY3B1KHBrdC0+cnNwX2luZm9fbGVuKTsKIAogCQkJICAgIHFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweDUwNDgsCiAJCQkJIkNUIHBhc3MtdGhyb3VnaC0lcyBlcnJvciBjb21wX3N0YXR1cz0weCV4IHRvdGFsX2J5dGU9MHgleC5cbiIsCkBAIC0yMjU3LDExICsyMjU1LDggQEAgcWxhMjV4eF9wcm9jZXNzX2JpZGlyX3N0YXR1c19pb2NiKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCB2b2lkICpwa3QsCiAJc3RydWN0IGJzZ19qb2IgKmJzZ19qb2IgPSBOVUxMOwogCXN0cnVjdCBmY19ic2dfcmVxdWVzdCAqYnNnX3JlcXVlc3Q7CiAJc3RydWN0IGZjX2JzZ19yZXBseSAqYnNnX3JlcGx5OwotCXN0c19lbnRyeV90ICpzdHM7Ci0Jc3RydWN0IHN0c19lbnRyeV8yNHh4ICpzdHMyNDsKLQotCXN0cyA9IChzdHNfZW50cnlfdCAqKSBwa3Q7Ci0Jc3RzMjQgPSAoc3RydWN0IHN0c19lbnRyeV8yNHh4ICopIHBrdDsKKwlzdHNfZW50cnlfdCAqc3RzID0gcGt0OworCXN0cnVjdCBzdHNfZW50cnlfMjR4eCAqc3RzMjQgPSBwa3Q7CiAKIAkvKiBWYWxpZGF0ZSBoYW5kbGUuICovCiAJaWYgKGluZGV4ID49IHJlcS0+bnVtX291dHN0YW5kaW5nX2NtZHMpIHsKQEAgLTI0MDcsOCArMjQwMiw4IEBAIHFsYTJ4MDBfc3RhdHVzX2VudHJ5KHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgcnNwX3F1ZSAqcnNwLCB2b2lkICpwa3QpCiAJc3JiX3QJCSpzcDsKIAlmY19wb3J0X3QJKmZjcG9ydDsKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpjcDsKLQlzdHNfZW50cnlfdCAqc3RzOwotCXN0cnVjdCBzdHNfZW50cnlfMjR4eCAqc3RzMjQ7CisJc3RzX2VudHJ5X3QgKnN0cyA9IHBrdDsKKwlzdHJ1Y3Qgc3RzX2VudHJ5XzI0eHggKnN0czI0ID0gcGt0OwogCXVpbnQxNl90CWNvbXBfc3RhdHVzOwogCXVpbnQxNl90CXNjc2lfc3RhdHVzOwogCXVpbnQxNl90CW94X2lkOwpAQCAtMjQyNiw4ICsyNDIxLDYgQEAgcWxhMngwMF9zdGF0dXNfZW50cnkoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHN0cnVjdCByc3BfcXVlICpyc3AsIHZvaWQgKnBrdCkKIAl1aW50MTZfdCBzdGF0ZV9mbGFncyA9IDA7CiAJdWludDE2X3QgcmV0cnlfZGVsYXkgPSAwOwogCi0Jc3RzID0gKHN0c19lbnRyeV90ICopIHBrdDsKLQlzdHMyNCA9IChzdHJ1Y3Qgc3RzX2VudHJ5XzI0eHggKikgcGt0OwogCWlmIChJU19GV0kyX0NBUEFCTEUoaGEpKSB7CiAJCWNvbXBfc3RhdHVzID0gbGUxNl90b19jcHUoc3RzMjQtPmNvbXBfc3RhdHVzKTsKIAkJc2NzaV9zdGF0dXMgPSBsZTE2X3RvX2NwdShzdHMyNC0+c2NzaV9zdGF0dXMpICYgU1NfTUFTSzsKQEAgLTI3MjcsNyArMjcyMCw3IEBAIHFsYTJ4MDBfc3RhdHVzX2VudHJ5KHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgcnNwX3F1ZSAqcnNwLCB2b2lkICpwa3QpCiAJCQkJIlBvcnQgdG8gYmUgbWFya2VkIGxvc3Qgb24gZmNwb3J0PSUwMnglMDJ4JTAyeCwgY3VycmVudCAiCiAJCQkJInBvcnQgc3RhdGU9ICVzIGNvbXBfc3RhdHVzICV4LlxuIiwgZmNwb3J0LT5kX2lkLmIuZG9tYWluLAogCQkJCWZjcG9ydC0+ZF9pZC5iLmFyZWEsIGZjcG9ydC0+ZF9pZC5iLmFsX3BhLAotCQkJCXBvcnRfc3RhdGVfc3RyW2F0b21pY19yZWFkKCZmY3BvcnQtPnN0YXRlKV0sCisJCQkJcG9ydF9zdGF0ZV9zdHJbRkNTX09OTElORV0sCiAJCQkJY29tcF9zdGF0dXMpOwogCiAJCQlxbGEyeDAwX21hcmtfZGV2aWNlX2xvc3QoZmNwb3J0LT52aGEsIGZjcG9ydCwgMSwgMSk7CkBAIC0yODQ0LDYgKzI4MzcsOCBAQCBxbGEyeDAwX3N0YXR1c19jb250X2VudHJ5KHN0cnVjdCByc3BfcXVlICpyc3AsIHN0c19jb250X2VudHJ5X3QgKnBrdCkKIAlpZiAoc2Vuc2VfbGVuID09IDApIHsKIAkJcnNwLT5zdGF0dXNfc3JiID0gTlVMTDsKIAkJc3AtPmRvbmUoc3AsIGNwLT5yZXN1bHQpOworCX0gZWxzZSB7CisJCVdBUk5fT05fT05DRSh0cnVlKTsKIAl9CiB9CiAKQEAgLTM0NzEsMTAgKzM0NjYsOCBAQCBxbGEyNHh4X2VuYWJsZV9tc2l4KHN0cnVjdCBxbGFfaHdfZGF0YSAqaGEsIHN0cnVjdCByc3BfcXVlICpyc3ApCiAJCSAgICBoYS0+bXNpeF9jb3VudCwgcmV0KTsKIAkJZ290byBtc2l4X291dDsKIAl9IGVsc2UgaWYgKHJldCA8IGhhLT5tc2l4X2NvdW50KSB7Ci0JCXFsX2xvZyhxbF9sb2dfd2FybiwgdmhhLCAweDAwYzYsCi0JCSAgICAiTVNJLVg6IEZhaWxlZCB0byBlbmFibGUgc3VwcG9ydCAiCi0JCSAgICAgIndpdGggJWQgdmVjdG9ycywgdXNpbmcgJWQgdmVjdG9ycy5cbiIsCi0JCSAgICBoYS0+bXNpeF9jb3VudCwgcmV0KTsKKwkJcWxfbG9nKHFsX2xvZ19pbmZvLCB2aGEsIDB4MDBjNiwKKwkJICAgICJNU0ktWDogVXNpbmcgJWQgdmVjdG9yc1xuIiwgcmV0KTsKIAkJaGEtPm1zaXhfY291bnQgPSByZXQ7CiAJCS8qIFJlY2FsY3VsYXRlIHF1ZXVlIHZhbHVlcyAqLwogCQlpZiAoaGEtPm1xaW9iYXNlICYmIChxbDJ4bXFzdXBwb3J0IHx8IHFsMnhudm1lZW5hYmxlKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX21ieC5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX21ieC5jCmluZGV4IDEzM2Y1ZjYuLjRjODU4ZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9tYnguYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbWJ4LmMKQEAgLTI1MywyMSArMjUzLDkgQEAgcWxhMngwMF9tYWlsYm94X2NvbW1hbmQoc2NzaV9xbGFfaG9zdF90ICp2aGEsIG1ieF9jbWRfdCAqbWNwKQogCWlmICgoIWFib3J0X2FjdGl2ZSAmJiBpb19sb2NrX29uKSB8fCBJU19OT1BPTExJTkdfVFlQRShoYSkpIHsKIAkJc2V0X2JpdChNQlhfSU5UUl9XQUlULCAmaGEtPm1ieF9jbWRfZmxhZ3MpOwogCi0JCWlmIChJU19QM1BfVFlQRShoYSkpIHsKLQkJCWlmIChSRF9SRUdfRFdPUkQoJnJlZy0+aXNwODIuaGludCkgJgotCQkJCUhJTlRfTUJYX0lOVF9QRU5ESU5HKSB7Ci0JCQkJaGEtPmZsYWdzLm1ib3hfYnVzeSA9IDA7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaGEtPmhhcmR3YXJlX2xvY2ssCi0JCQkJCWZsYWdzKTsKLQotCQkJCWF0b21pY19kZWMoJmhhLT5udW1fcGVuZF9tYnhfc3RhZ2UyKTsKLQkJCQlxbF9kYmcocWxfZGJnX21ieCwgdmhhLCAweDEwMTAsCi0JCQkJICAgICJQZW5kaW5nIG1haWxib3ggdGltZW91dCwgZXhpdGluZy5cbiIpOwotCQkJCXJ2YWwgPSBRTEFfRlVOQ1RJT05fVElNRU9VVDsKLQkJCQlnb3RvIHByZW1hdHVyZV9leGl0OwotCQkJfQorCQlpZiAoSVNfUDNQX1RZUEUoaGEpKQogCQkJV1JUX1JFR19EV09SRCgmcmVnLT5pc3A4Mi5oaW50LCBISU5UX01CWF9JTlRfUEVORElORyk7Ci0JCX0gZWxzZSBpZiAoSVNfRldJMl9DQVBBQkxFKGhhKSkKKwkJZWxzZSBpZiAoSVNfRldJMl9DQVBBQkxFKGhhKSkKIAkJCVdSVF9SRUdfRFdPUkQoJnJlZy0+aXNwMjQuaGNjciwgSENDUlhfU0VUX0hPU1RfSU5UKTsKIAkJZWxzZQogCQkJV1JUX1JFR19XT1JEKCZyZWctPmlzcC5oY2NyLCBIQ0NSX1NFVF9IT1NUX0lOVCk7CkBAIC0zOTQsOCArMzgyLDEyIEBAIHFsYTJ4MDBfbWFpbGJveF9jb21tYW5kKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBtYnhfY21kX3QgKm1jcCkKIAkJCWdvdG8gcHJlbWF0dXJlX2V4aXQ7CiAJCX0KIAotCQlpZiAoaGEtPm1haWxib3hfb3V0WzBdICE9IE1CU19DT01NQU5EX0NPTVBMRVRFKQorCQlpZiAoaGEtPm1haWxib3hfb3V0WzBdICE9IE1CU19DT01NQU5EX0NPTVBMRVRFKSB7CisJCQlxbF9kYmcocWxfZGJnX21ieCwgdmhhLCAweDExZmYsCisJCQkgICAgICAgIm1iX291dFswXSA9ICUjeCA8PiAlI3hcbiIsIGhhLT5tYWlsYm94X291dFswXSwKKwkJCSAgICAgICBNQlNfQ09NTUFORF9DT01QTEVURSk7CiAJCQlydmFsID0gUUxBX0ZVTkNUSU9OX0ZBSUxFRDsKKwkJfQogCiAJCS8qIExvYWQgcmV0dXJuIG1haWxib3ggcmVnaXN0ZXJzLiAqLwogCQlpcHRyMiA9IG1jcC0+bWI7CkBAIC02MjEzLDEwICs2MjA1LDggQEAgcWxhMjZ4eF9kcG9ydF9kaWFnbm9zdGljcyhzY3NpX3FsYV9ob3N0X3QgKnZoYSwKIAlyZXR1cm4gcnZhbDsKIH0KIAotc3RhdGljIHZvaWQgcWxhMngwMF9hc3luY19tYl9zcF9kb25lKHZvaWQgKnMsIGludCByZXMpCitzdGF0aWMgdm9pZCBxbGEyeDAwX2FzeW5jX21iX3NwX2RvbmUoc3JiX3QgKnNwLCBpbnQgcmVzKQogewotCXN0cnVjdCBzcmIgKnNwID0gczsKLQogCXNwLT51LmlvY2JfY21kLnUubWJ4LnJjID0gcmVzOwogCiAJY29tcGxldGUoJnNwLT51LmlvY2JfY21kLnUubWJ4LmNvbXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX21pZC5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX21pZC5jCmluZGV4IGIyOTc3ZTQuLjFhOWExMWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9taWQuYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbWlkLmMKQEAgLTkwMSwxMCArOTAxLDggQEAgcWxhMjV4eF9jcmVhdGVfcnNwX3F1ZShzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhLCB1aW50MTZfdCBvcHRpb25zLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBxbGFfY3RybHZwX3NwX2RvbmUodm9pZCAqcywgaW50IHJlcykKK3N0YXRpYyB2b2lkIHFsYV9jdHJsdnBfc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3RydWN0IHNyYiAqc3AgPSBzOwotCiAJaWYgKHNwLT5jb21wKQogCQljb21wbGV0ZShzcC0+Y29tcCk7CiAJLyogZG9uJ3QgZnJlZSBzcCBoZXJlLiBMZXQgdGhlIGNhbGxlciBkbyB0aGUgZnJlZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX21yLmMgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbXIuYwppbmRleCA5NDJlZTEzLi42MDViNTljIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbXIuYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbXIuYwpAQCAtMTAsNyArMTAsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L3JhdGVsaW1pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KLSNpbmNsdWRlIDxsaW51eC9ic2ctbGliLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX3RjcS5oPgogI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KIApAQCAtMTQ5LDcgKzE0OCw4IEBAIHFsYWZ4MDBfbWFpbGJveF9jb21tYW5kKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgbWJ4X2NtZF8zMiAqbWNwKQogCQlRTEFGWDAwX1NFVF9IU1RfSU5UUihoYSwgaGEtPm1ieF9pbnRyX2NvZGUpOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZoYS0+aGFyZHdhcmVfbG9jaywgZmxhZ3MpOwogCi0JCXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmaGEtPm1ieF9pbnRyX2NvbXAsIG1jcC0+dG92ICogSFopOworCQlXQVJOX09OX09OQ0Uod2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZoYS0+bWJ4X2ludHJfY29tcCwKKwkJCQkJCQkgbWNwLT50b3YgKiBIWikgIT0gMCk7CiAJfSBlbHNlIHsKIAkJcWxfZGJnKHFsX2RiZ19tYngsIHZoYSwgMHgxMTJjLAogCQkgICAgIkNtZD0leCBQb2xsaW5nIE1vZGUuXG4iLCBjb21tYW5kKTsKQEAgLTY4OCwxNCArNjg4LDEyIEBAIHFsYWZ4MDBfY29uZmlnX3JpbmdzKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEpCiB9CiAKIGNoYXIgKgotcWxhZngwMF9wY2lfaW5mb19zdHIoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwgY2hhciAqc3RyKQorcWxhZngwMF9wY2lfaW5mb19zdHIoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwgY2hhciAqc3RyLCBzaXplX3Qgc3RyX2xlbikKIHsKIAlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gdmhhLT5odzsKIAotCWlmIChwY2lfaXNfcGNpZShoYS0+cGRldikpIHsKLQkJc3RyY3B5KHN0ciwgIlBDSWUgaVNBIik7Ci0JCXJldHVybiBzdHI7Ci0JfQorCWlmIChwY2lfaXNfcGNpZShoYS0+cGRldikpCisJCXN0cmxjcHkoc3RyLCAiUENJZSBpU0EiLCBzdHJfbGVuKTsKIAlyZXR1cm4gc3RyOwogfQogCkBAIC0xNzk5LDEwICsxNzk3LDggQEAgcWxhMngwMF9meGRpc2NfaW9jYl90aW1lb3V0KHZvaWQgKmRhdGEpCiAJY29tcGxldGUoJmxpby0+dS5meGlvY2IuZnhpb2NiX2NvbXApOwogfQogCi1zdGF0aWMgdm9pZAotcWxhMngwMF9meGRpc2Nfc3BfZG9uZSh2b2lkICpwdHIsIGludCByZXMpCitzdGF0aWMgdm9pZCBxbGEyeDAwX2Z4ZGlzY19zcF9kb25lKHNyYl90ICpzcCwgaW50IHJlcykKIHsKLQlzcmJfdCAqc3AgPSBwdHI7CiAJc3RydWN0IHNyYl9pb2NiICpsaW8gPSAmc3AtPnUuaW9jYl9jbWQ7CiAKIAljb21wbGV0ZSgmbGlvLT51LmZ4aW9jYi5meGlvY2JfY29tcCk7CkBAIC0xODgxLDIyICsxODc3LDIyIEBAIHFsYWZ4MDBfZnhfZGlzYyhzY3NpX3FsYV9ob3N0X3QgKnZoYSwgZmNfcG9ydF90ICpmY3BvcnQsIHVpbnQxNl90IGZ4X3R5cGUpCiAJCQlwaG9zdF9pbmZvID0gJnByZWdfaHNpLT5oc2k7CiAJCQltZW1zZXQocHJlZ19oc2ksIDAsIHNpemVvZihzdHJ1Y3QgcmVnaXN0ZXJfaG9zdF9pbmZvKSk7CiAJCQlwaG9zdF9pbmZvLT5vc190eXBlID0gT1NfVFlQRV9MSU5VWDsKLQkJCXN0cm5jcHkocGhvc3RfaW5mby0+c3lzbmFtZSwKLQkJCSAgICBwX3N5c2lkLT5zeXNuYW1lLCBTWVNOQU1FX0xFTkdUSCk7Ci0JCQlzdHJuY3B5KHBob3N0X2luZm8tPm5vZGVuYW1lLAotCQkJICAgIHBfc3lzaWQtPm5vZGVuYW1lLCBOT0RFTkFNRV9MRU5HVEgpOworCQkJc3RybGNweShwaG9zdF9pbmZvLT5zeXNuYW1lLCBwX3N5c2lkLT5zeXNuYW1lLAorCQkJCXNpemVvZihwaG9zdF9pbmZvLT5zeXNuYW1lKSk7CisJCQlzdHJsY3B5KHBob3N0X2luZm8tPm5vZGVuYW1lLCBwX3N5c2lkLT5ub2RlbmFtZSwKKwkJCQlzaXplb2YocGhvc3RfaW5mby0+bm9kZW5hbWUpKTsKIAkJCWlmICghc3RyY21wKHBob3N0X2luZm8tPm5vZGVuYW1lLCAiKG5vbmUpIikpCiAJCQkJaGEtPm1yLmhvc3RfaW5mb19yZXNlbmQgPSB0cnVlOwotCQkJc3RybmNweShwaG9zdF9pbmZvLT5yZWxlYXNlLAotCQkJICAgIHBfc3lzaWQtPnJlbGVhc2UsIFJFTEVBU0VfTEVOR1RIKTsKLQkJCXN0cm5jcHkocGhvc3RfaW5mby0+dmVyc2lvbiwKLQkJCSAgICBwX3N5c2lkLT52ZXJzaW9uLCBWRVJTSU9OX0xFTkdUSCk7Ci0JCQlzdHJuY3B5KHBob3N0X2luZm8tPm1hY2hpbmUsCi0JCQkgICAgcF9zeXNpZC0+bWFjaGluZSwgTUFDSElORV9MRU5HVEgpOwotCQkJc3RybmNweShwaG9zdF9pbmZvLT5kb21haW5uYW1lLAotCQkJICAgIHBfc3lzaWQtPmRvbWFpbm5hbWUsIERPTU5BTUVfTEVOR1RIKTsKLQkJCXN0cm5jcHkocGhvc3RfaW5mby0+aG9zdGRyaXZlciwKLQkJCSAgICBRTEEyWFhYX1ZFUlNJT04sIFZFUlNJT05fTEVOR1RIKTsKKwkJCXN0cmxjcHkocGhvc3RfaW5mby0+cmVsZWFzZSwgcF9zeXNpZC0+cmVsZWFzZSwKKwkJCQlzaXplb2YocGhvc3RfaW5mby0+cmVsZWFzZSkpOworCQkJc3RybGNweShwaG9zdF9pbmZvLT52ZXJzaW9uLCBwX3N5c2lkLT52ZXJzaW9uLAorCQkJCXNpemVvZihwaG9zdF9pbmZvLT52ZXJzaW9uKSk7CisJCQlzdHJsY3B5KHBob3N0X2luZm8tPm1hY2hpbmUsIHBfc3lzaWQtPm1hY2hpbmUsCisJCQkJc2l6ZW9mKHBob3N0X2luZm8tPm1hY2hpbmUpKTsKKwkJCXN0cmxjcHkocGhvc3RfaW5mby0+ZG9tYWlubmFtZSwgcF9zeXNpZC0+ZG9tYWlubmFtZSwKKwkJCQlzaXplb2YocGhvc3RfaW5mby0+ZG9tYWlubmFtZSkpOworCQkJc3RybGNweShwaG9zdF9pbmZvLT5ob3N0ZHJpdmVyLCBRTEEyWFhYX1ZFUlNJT04sCisJCQkJc2l6ZW9mKHBob3N0X2luZm8tPmhvc3Rkcml2ZXIpKTsKIAkJCXByZWdfaHNpLT51dGMgPSAodWludDY0X3Qpa3RpbWVfZ2V0X3JlYWxfc2Vjb25kcygpOwogCQkJcWxfZGJnKHFsX2RiZ19pbml0LCB2aGEsIDB4MDE0OSwKIAkJCSAgICAiSVNQJTA0WDogSG9zdCByZWdpc3RyYXRpb24gd2l0aCBmaXJtd2FyZVxuIiwKQEAgLTE5NDEsOCArMTkzNywxMCBAQCBxbGFmeDAwX2Z4X2Rpc2Moc2NzaV9xbGFfaG9zdF90ICp2aGEsIGZjX3BvcnRfdCAqZmNwb3J0LCB1aW50MTZfdCBmeF90eXBlKQogCWlmIChmeF90eXBlID09IEZYRElTQ19HRVRfQ09ORklHX0lORk8pIHsKIAkJc3RydWN0IGNvbmZpZ19pbmZvX2RhdGEgKnBpbmZvID0KIAkJICAgIChzdHJ1Y3QgY29uZmlnX2luZm9fZGF0YSAqKSBmZGlzYy0+dS5meGlvY2IucnNwX2FkZHI7Ci0JCXN0cmNweSh2aGEtPmh3LT5tb2RlbF9udW1iZXIsIHBpbmZvLT5tb2RlbF9udW0pOwotCQlzdHJjcHkodmhhLT5ody0+bW9kZWxfZGVzYywgcGluZm8tPm1vZGVsX2Rlc2NyaXB0aW9uKTsKKwkJc3RybGNweSh2aGEtPmh3LT5tb2RlbF9udW1iZXIsIHBpbmZvLT5tb2RlbF9udW0sCisJCQlBUlJBWV9TSVpFKHZoYS0+aHctPm1vZGVsX251bWJlcikpOworCQlzdHJsY3B5KHZoYS0+aHctPm1vZGVsX2Rlc2MsIHBpbmZvLT5tb2RlbF9kZXNjcmlwdGlvbiwKKwkJCUFSUkFZX1NJWkUodmhhLT5ody0+bW9kZWxfZGVzYykpOwogCQltZW1jcHkoJnZoYS0+aHctPm1yLnN5bWJvbGljX25hbWUsIHBpbmZvLT5zeW1ib2xpY19uYW1lLAogCQkgICAgc2l6ZW9mKHZoYS0+aHctPm1yLnN5bWJvbGljX25hbWUpKTsKIAkJbWVtY3B5KCZ2aGEtPmh3LT5tci5zZXJpYWxfbnVtLCBwaW5mby0+c2VyaWFsX251bSwKQEAgLTI1NDEsNiArMjUzOSw4IEBAIHFsYWZ4MDBfc3RhdHVzX2VudHJ5KHNjc2lfcWxhX2hvc3RfdCAqdmhhLCBzdHJ1Y3QgcnNwX3F1ZSAqcnNwLCB2b2lkICpwa3QpCiAKIAlpZiAocnNwLT5zdGF0dXNfc3JiID09IE5VTEwpCiAJCXNwLT5kb25lKHNwLCByZXMpOworCWVsc2UKKwkJV0FSTl9PTl9PTkNFKHRydWUpOwogfQogCiAvKioKQEAgLTI2MTgsNiArMjYxOCw4IEBAIHFsYWZ4MDBfc3RhdHVzX2NvbnRfZW50cnkoc3RydWN0IHJzcF9xdWUgKnJzcCwgc3RzX2NvbnRfZW50cnlfdCAqcGt0KQogCWlmIChzZW5zZV9sZW4gPT0gMCkgewogCQlyc3AtPnN0YXR1c19zcmIgPSBOVUxMOwogCQlzcC0+ZG9uZShzcCwgY3AtPnJlc3VsdCk7CisJfSBlbHNlIHsKKwkJV0FSTl9PTl9PTkNFKHRydWUpOwogCX0KIH0KIApAQCAtMzA3Myw3ICszMDc1LDYgQEAgcWxhZngwMF9zdGFydF9zY3NpKHNyYl90ICpzcCkKIHsKIAlpbnQJCW5zZWc7CiAJdW5zaWduZWQgbG9uZyAgIGZsYWdzOwotCXVpbnQzMl90ICAgICAgICBpbmRleDsKIAl1aW50MzJfdAloYW5kbGU7CiAJdWludDE2X3QJY250OwogCXVpbnQxNl90CXJlcV9jbnQ7CkBAIC0zMDk3LDE2ICszMDk4LDggQEAgcWxhZngwMF9zdGFydF9zY3NpKHNyYl90ICpzcCkKIAkvKiBBY3F1aXJlIHJpbmcgc3BlY2lmaWMgbG9jayAqLwogCXNwaW5fbG9ja19pcnFzYXZlKCZoYS0+aGFyZHdhcmVfbG9jaywgZmxhZ3MpOwogCi0JLyogQ2hlY2sgZm9yIHJvb20gaW4gb3V0c3RhbmRpbmcgY29tbWFuZCBsaXN0LiAqLwotCWhhbmRsZSA9IHJlcS0+Y3VycmVudF9vdXRzdGFuZGluZ19jbWQ7Ci0JZm9yIChpbmRleCA9IDE7IGluZGV4IDwgcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kczsgaW5kZXgrKykgewotCQloYW5kbGUrKzsKLQkJaWYgKGhhbmRsZSA9PSByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzKQotCQkJaGFuZGxlID0gMTsKLQkJaWYgKCFyZXEtPm91dHN0YW5kaW5nX2NtZHNbaGFuZGxlXSkKLQkJCWJyZWFrOwotCX0KLQlpZiAoaW5kZXggPT0gcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kcykKKwloYW5kbGUgPSBxbGEyeHh4X2dldF9uZXh0X2hhbmRsZShyZXEpOworCWlmIChoYW5kbGUgPT0gMCkKIAkJZ290byBxdWV1aW5nX2Vycm9yOwogCiAJLyogTWFwIHRoZSBzZyB0YWJsZSBzbyB3ZSBoYXZlIGFuIGFjY3VyYXRlIGNvdW50IG9mIHNnIGVudHJpZXMgbmVlZGVkICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbnZtZS5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX252bWUuYwppbmRleCA5NjMwOTRiLi42Y2MxOWUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbnZtZS5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9udm1lLmMKQEAgLTE4MCwxMCArMTgwLDkgQEAgc3RhdGljIHZvaWQgcWxhX252bWVfbHNfY29tcGxldGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWtyZWZfcHV0KCZwcml2LT5zcC0+Y21kX2tyZWYsIHFsYV9udm1lX3JlbGVhc2VfbHNfY21kX2tyZWYpOwogfQogCi1zdGF0aWMgdm9pZCBxbGFfbnZtZV9zcF9sc19kb25lKHZvaWQgKnB0ciwgaW50IHJlcykKK3N0YXRpYyB2b2lkIHFsYV9udm1lX3NwX2xzX2RvbmUoc3JiX3QgKnNwLCBpbnQgcmVzKQogewotCXNyYl90ICpzcCA9IHB0cjsKLQlzdHJ1Y3QgbnZtZV9wcml2YXRlICpwcml2OworCXN0cnVjdCBudm1lX3ByaXZhdGUgKnByaXYgPSBzcC0+cHJpdjsKIAogCWlmIChXQVJOX09OX09OQ0Uoa3JlZl9yZWFkKCZzcC0+Y21kX2tyZWYpID09IDApKQogCQlyZXR1cm47CkBAIC0xOTEsMTcgKzE5MCwxNSBAQCBzdGF0aWMgdm9pZCBxbGFfbnZtZV9zcF9sc19kb25lKHZvaWQgKnB0ciwgaW50IHJlcykKIAlpZiAocmVzKQogCQlyZXMgPSAtRUlOVkFMOwogCi0JcHJpdiA9IChzdHJ1Y3QgbnZtZV9wcml2YXRlICopc3AtPnByaXY7CiAJcHJpdi0+Y29tcF9zdGF0dXMgPSByZXM7CiAJSU5JVF9XT1JLKCZwcml2LT5sc193b3JrLCBxbGFfbnZtZV9sc19jb21wbGV0ZSk7CiAJc2NoZWR1bGVfd29yaygmcHJpdi0+bHNfd29yayk7CiB9CiAKIC8qIGl0IGFzc3VtZWQgdGhhdCBRUGFpciBsb2NrIGlzIGhlbGQuICovCi1zdGF0aWMgdm9pZCBxbGFfbnZtZV9zcF9kb25lKHZvaWQgKnB0ciwgaW50IHJlcykKK3N0YXRpYyB2b2lkIHFsYV9udm1lX3NwX2RvbmUoc3JiX3QgKnNwLCBpbnQgcmVzKQogewotCXNyYl90ICpzcCA9IHB0cjsKLQlzdHJ1Y3QgbnZtZV9wcml2YXRlICpwcml2ID0gKHN0cnVjdCBudm1lX3ByaXZhdGUgKilzcC0+cHJpdjsKKwlzdHJ1Y3QgbnZtZV9wcml2YXRlICpwcml2ID0gc3AtPnByaXY7CiAKIAlwcml2LT5jb21wX3N0YXR1cyA9IHJlczsKIAlrcmVmX3B1dCgmc3AtPmNtZF9rcmVmLCBxbGFfbnZtZV9yZWxlYXNlX2ZjcF9jbWRfa3JlZik7CkBAIC0yMjIsNyArMjE5LDcgQEAgc3RhdGljIHZvaWQgcWxhX252bWVfYWJvcnRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJICAgICAgICIlcyBjYWxsZWQgZm9yIHNwPSVwLCBobmRsPSV4IG9uIGZjcG9ydD0lcCBkZWxldGVkPSVkXG4iLAogCSAgICAgICBfX2Z1bmNfXywgc3AsIHNwLT5oYW5kbGUsIGZjcG9ydCwgZmNwb3J0LT5kZWxldGVkKTsKIAotCWlmICghaGEtPmZsYWdzLmZ3X3N0YXJ0ZWQgJiYgKGZjcG9ydCAmJiBmY3BvcnQtPmRlbGV0ZWQpKQorCWlmICghaGEtPmZsYWdzLmZ3X3N0YXJ0ZWQgJiYgZmNwb3J0LT5kZWxldGVkKQogCQlnb3RvIG91dDsKIAogCWlmIChoYS0+ZmxhZ3MuaG9zdF9zaHV0dGluZ19kb3duKSB7CkBAIC0yNjcsNyArMjY0LDYgQEAgc3RhdGljIHZvaWQgcWxhX252bWVfbHNfYWJvcnQoc3RydWN0IG52bWVfZmNfbG9jYWxfcG9ydCAqbHBvcnQsCiAJc2NoZWR1bGVfd29yaygmcHJpdi0+YWJvcnRfd29yayk7CiB9CiAKLQogc3RhdGljIGludCBxbGFfbnZtZV9sc19yZXEoc3RydWN0IG52bWVfZmNfbG9jYWxfcG9ydCAqbHBvcnQsCiAgICAgc3RydWN0IG52bWVfZmNfcmVtb3RlX3BvcnQgKnJwb3J0LCBzdHJ1Y3QgbnZtZWZjX2xzX3JlcSAqZmQpCiB7CkBAIC0zNTcsNyArMzUzLDYgQEAgc3RhdGljIGlubGluZSBpbnQgcWxhMngwMF9zdGFydF9udm1lX21xKHNyYl90ICpzcCkKIHsKIAl1bnNpZ25lZCBsb25nICAgZmxhZ3M7CiAJdWludDMyX3QgICAgICAgICpjbHJfcHRyOwotCXVpbnQzMl90ICAgICAgICBpbmRleDsKIAl1aW50MzJfdCAgICAgICAgaGFuZGxlOwogCXN0cnVjdCBjbWRfbnZtZSAqY21kX3BrdDsKIAl1aW50MTZfdCAgICAgICAgY250LCBpOwpAQCAtMzgxLDE3ICszNzYsOCBAQCBzdGF0aWMgaW5saW5lIGludCBxbGEyeDAwX3N0YXJ0X252bWVfbXEoc3JiX3QgKnNwKQogCS8qIEFjcXVpcmUgcXBhaXIgc3BlY2lmaWMgbG9jayAqLwogCXNwaW5fbG9ja19pcnFzYXZlKCZxcGFpci0+cXBfbG9jaywgZmxhZ3MpOwogCi0JLyogQ2hlY2sgZm9yIHJvb20gaW4gb3V0c3RhbmRpbmcgY29tbWFuZCBsaXN0LiAqLwotCWhhbmRsZSA9IHJlcS0+Y3VycmVudF9vdXRzdGFuZGluZ19jbWQ7Ci0JZm9yIChpbmRleCA9IDE7IGluZGV4IDwgcmVxLT5udW1fb3V0c3RhbmRpbmdfY21kczsgaW5kZXgrKykgewotCQloYW5kbGUrKzsKLQkJaWYgKGhhbmRsZSA9PSByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzKQotCQkJaGFuZGxlID0gMTsKLQkJaWYgKCFyZXEtPm91dHN0YW5kaW5nX2NtZHNbaGFuZGxlXSkKLQkJCWJyZWFrOwotCX0KLQotCWlmIChpbmRleCA9PSByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzKSB7CisJaGFuZGxlID0gcWxhMnh4eF9nZXRfbmV4dF9oYW5kbGUocmVxKTsKKwlpZiAoaGFuZGxlID09IDApIHsKIAkJcnZhbCA9IC1FQlVTWTsKIAkJZ290byBxdWV1aW5nX2Vycm9yOwogCX0KQEAgLTY1Myw3ICs2MzksOSBAQCB2b2lkIHFsYV9udm1lX3VucmVnaXN0ZXJfcmVtb3RlX3BvcnQoc3RydWN0IGZjX3BvcnQgKmZjcG9ydCkKIAkgICAgIiVzOiB1bnJlZ2lzdGVyIHJlbW90ZXBvcnQgb24gJXAgJThwaE5cbiIsCiAJICAgIF9fZnVuY19fLCBmY3BvcnQsIGZjcG9ydC0+cG9ydF9uYW1lKTsKIAotCW52bWVfZmNfc2V0X3JlbW90ZXBvcnRfZGV2bG9zcyhmY3BvcnQtPm52bWVfcmVtb3RlX3BvcnQsIDApOworCWlmICh0ZXN0X2JpdChQRkxHX0RSSVZFUl9SRU1PVklORywgJmZjcG9ydC0+dmhhLT5wY2lfZmxhZ3MpKQorCQludm1lX2ZjX3NldF9yZW1vdGVwb3J0X2Rldmxvc3MoZmNwb3J0LT5udm1lX3JlbW90ZV9wb3J0LCAwKTsKKwogCWluaXRfY29tcGxldGlvbigmZmNwb3J0LT5udm1lX2RlbF9kb25lKTsKIAlyZXQgPSBudm1lX2ZjX3VucmVnaXN0ZXJfcmVtb3RlcG9ydChmY3BvcnQtPm52bWVfcmVtb3RlX3BvcnQpOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbnZtZS5oIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX252bWUuaAppbmRleCA2N2JiNGEyLi5lZjkxMjkwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX252bWUuaAorKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbnZtZS5oCkBAIC03LDcgKzcsNiBAQAogI2lmbmRlZiBfX1FMQV9OVk1FX0gKICNkZWZpbmUgX19RTEFfTlZNRV9ICiAKLSNpbmNsdWRlIDxsaW51eC9ibGstbXEuaD4KICNpbmNsdWRlIDx1YXBpL3Njc2kvZmMvZmNfZnMuaD4KICNpbmNsdWRlIDx1YXBpL3Njc2kvZmMvZmNfZWxzLmg+CiAjaW5jbHVkZSA8bGludXgvbnZtZS1mYy1kcml2ZXIuaD4KQEAgLTExOSw3ICsxMTgsNyBAQCBzdHJ1Y3QgcHRfbHM0X3J4X3Vuc29sIHsKIAl1aW50MzJfdCBleGNoYW5nZV9hZGRyZXNzOwogCXVpbnQ4X3QgZF9pZFszXTsKIAl1aW50OF90IHJfY3RsOwotCXVpbnQ4X3Qgc19pZFszXTsKKwliZV9pZF90IHNfaWQ7CiAJdWludDhfdCBjc19jdGw7CiAJdWludDhfdCBmX2N0bFszXTsKIAl1aW50OF90IHR5cGU7CkBAIC0xNDQsNSArMTQzLDUgQEAgaW50ICBxbGFfbnZtZV9yZWdpc3Rlcl9yZW1vdGUoc3RydWN0IHNjc2lfcWxhX2hvc3QgKiwgc3RydWN0IGZjX3BvcnQgKik7CiB2b2lkIHFsYV9udm1lX2RlbGV0ZShzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqKTsKIHZvaWQgcWxhMjR4eF9udm1lX2xzNF9pb2NiKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICosIHN0cnVjdCBwdF9sczRfcmVxdWVzdCAqLAogICAgIHN0cnVjdCByZXFfcXVlICopOwotdm9pZCBxbGEyNHh4X2FzeW5jX2dmZmlkX3NwX2RvbmUodm9pZCAqLCBpbnQpOwordm9pZCBxbGEyNHh4X2FzeW5jX2dmZmlkX3NwX2RvbmUoc3RydWN0IHNyYiAqc3AsIGludCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ueC5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX254LmMKaW5kZXggYzc2MGFlMy4uMmIyMDI4ZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ueC5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ueC5jCkBAIC0xOTc3LDcgKzE5NzcsNyBAQCBxbGE4Mnh4X2NoZWNrX3JjdnBlZ19zdGF0ZShzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhKQogCX0gd2hpbGUgKC0tcmV0cmllcyk7CiAKIAlxbF9sb2cocWxfbG9nX2ZhdGFsLCB2aGEsIDB4MDBhYywKLQkgICAgIlJjdiBQZWcgaW5pdGlhbGl6YXRpbiBmYWlsZWQ6IDB4JXguXG4iLCB2YWwpOworCSAgICAiUmN2IFBlZyBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IDB4JXguXG4iLCB2YWwpOwogCXJlYWRfbG9jaygmaGEtPmh3X2xvY2spOwogCXFsYTgyeHhfd3JfMzIoaGEsIENSQl9SQ1ZQRUdfU1RBVEUsIFBIQU5fSU5JVElBTElaRV9GQUlMRUQpOwogCXJlYWRfdW5sb2NrKCZoYS0+aHdfbG9jayk7CkBAIC0xOTg1LDcgKzE5ODUsNyBAQCBxbGE4Mnh4X2NoZWNrX3JjdnBlZ19zdGF0ZShzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhKQogfQogCiAvKiBJU1IgcmVsYXRlZCBmdW5jdGlvbnMgKi8KLXN0YXRpYyBzdHJ1Y3QgcWxhODJ4eF9sZWdhY3lfaW50cl9zZXQgbGVnYWN5X2ludHJbXSA9IFwKK3N0YXRpYyBzdHJ1Y3QgcWxhODJ4eF9sZWdhY3lfaW50cl9zZXQgbGVnYWN5X2ludHJbXSA9CiAJUUxBODJYWF9MRUdBQ1lfSU5UUl9DT05GSUc7CiAKIC8qCkBAIC0yMjg3LDcgKzIyODcsOSBAQCBxbGE4Mnh4X2Rpc2FibGVfaW50cnMoc3RydWN0IHFsYV9od19kYXRhICpoYSkKIHsKIAlzY3NpX3FsYV9ob3N0X3QgKnZoYSA9IHBjaV9nZXRfZHJ2ZGF0YShoYS0+cGRldik7CiAKLQlxbGE4Mnh4X21ieF9pbnRyX2Rpc2FibGUodmhhKTsKKwlpZiAoaGEtPmludGVycnVwdHNfb24pCisJCXFsYTgyeHhfbWJ4X2ludHJfZGlzYWJsZSh2aGEpOworCiAJc3Bpbl9sb2NrX2lycSgmaGEtPmhhcmR3YXJlX2xvY2spOwogCWlmIChJU19RTEE4MDQ0KGhhKSkKIAkJcWxhODA0NF93cl9yZWcoaGEsIExFR19JTlRSX01BU0tfT0ZGU0VULCAxKTsKQEAgLTMyODYsNyArMzI4OCw3IEBAIHFsYTgyeHhfZGV2aWNlX3N0YXRlX2hhbmRsZXIoc2NzaV9xbGFfaG9zdF90ICp2aGEpCiAJCWNhc2UgUUxBOFhYWF9ERVZfTkVFRF9RVUlFU0NFTlQ6CiAJCQlxbGE4Mnh4X25lZWRfcXNudF9oYW5kbGVyKHZoYSk7CiAJCQkvKiBSZXNldCB0aW1lb3V0IHZhbHVlIGFmdGVyIHF1aWVzY2VuY2UgaGFuZGxlciAqLwotCQkJZGV2X2luaXRfdGltZW91dCA9IGppZmZpZXMgKyAoaGEtPmZjb2VfZGV2X2luaXRfdGltZW91dFwKKwkJCWRldl9pbml0X3RpbWVvdXQgPSBqaWZmaWVzICsgKGhhLT5mY29lX2Rldl9pbml0X3RpbWVvdXQKIAkJCQkJCQkgKiBIWik7CiAJCQlicmVhazsKIAkJY2FzZSBRTEE4WFhYX0RFVl9RVUlFU0NFTlQ6CkBAIC0zMzAxLDcgKzMzMDMsNyBAQCBxbGE4Mnh4X2RldmljZV9zdGF0ZV9oYW5kbGVyKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCQkJcWxhODJ4eF9pZGNfbG9jayhoYSk7CiAKIAkJCS8qIFJlc2V0IHRpbWVvdXQgdmFsdWUgYWZ0ZXIgcXVpZXNjZW5jZSBoYW5kbGVyICovCi0JCQlkZXZfaW5pdF90aW1lb3V0ID0gamlmZmllcyArIChoYS0+ZmNvZV9kZXZfaW5pdF90aW1lb3V0XAorCQkJZGV2X2luaXRfdGltZW91dCA9IGppZmZpZXMgKyAoaGEtPmZjb2VfZGV2X2luaXRfdGltZW91dAogCQkJCQkJCSAqIEhaKTsKIAkJCWJyZWFrOwogCQljYXNlIFFMQThYWFhfREVWX0ZBSUxFRDoKQEAgLTM2ODYsNyArMzY4OCw3IEBAIHFsYTgyeHhfY2hpcF9yZXNldF9jbGVhbnVwKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCQkJZm9yIChjbnQgPSAxOyBjbnQgPCByZXEtPm51bV9vdXRzdGFuZGluZ19jbWRzOyBjbnQrKykgewogCQkJCXNwID0gcmVxLT5vdXRzdGFuZGluZ19jbWRzW2NudF07CiAJCQkJaWYgKHNwKSB7Ci0JCQkJCWlmICgoIXNwLT51LnNjbWQuY3R4IHx8CisJCQkJCWlmICgoIXNwLT51LnNjbWQuY3JjX2N0eCB8fAogCQkJCQkgICAgKHNwLT5mbGFncyAmCiAJCQkJCQlTUkJfRkNQX0NNTkRfRE1BX1ZBTElEKSkgJiYKIAkJCQkJCSFoYS0+ZmxhZ3MuaXNwODJ4eF9md19odW5nKSB7CkBAIC0zNzEwLDEwICszNzEyLDEyIEBAIHFsYTgyeHhfY2hpcF9yZXNldF9jbGVhbnVwKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCiAJCS8qIFdhaXQgZm9yIHBlbmRpbmcgY21kcyAocGh5c2ljYWwgYW5kIHZpcnR1YWwpIHRvIGNvbXBsZXRlICovCiAJCWlmIChxbGEyeDAwX2VoX3dhaXRfZm9yX3BlbmRpbmdfY29tbWFuZHModmhhLCAwLCAwLAotCQkgICAgV0FJVF9IT1NUKSkgeworCQkgICAgV0FJVF9IT1NUKSA9PSBRTEFfU1VDQ0VTUykgewogCQkJcWxfZGJnKHFsX2RiZ19pbml0LCB2aGEsIDB4MDBiMywKIAkJCSAgICAiRG9uZSB3YWl0IGZvciAiCiAJCQkgICAgInBlbmRpbmcgY29tbWFuZHMuXG4iKTsKKwkJfSBlbHNlIHsKKwkJCVdBUk5fT05fT05DRSh0cnVlKTsKIAkJfQogCX0KIH0KQEAgLTQyMzIsNyArNDIzNiw3IEBAIHFsYTgyeHhfbWRfY29sbGVjdChzY3NpX3FsYV9ob3N0X3QgKnZoYSkKIAkJZ290byBtZF9mYWlsZWQ7CiAJfQogCi0JZW50cnlfaGRyID0gKHFsYTgyeHhfbWRfZW50cnlfaGRyX3QgKikgXAorCWVudHJ5X2hkciA9IChxbGE4Mnh4X21kX2VudHJ5X2hkcl90ICopCiAJICAgICgoKHVpbnQ4X3QgKiloYS0+bWRfdG1wbHRfaGRyKSArIHRtcGx0X2hkci0+Zmlyc3RfZW50cnlfb2Zmc2V0KTsKIAogCS8qIFdhbGsgdGhyb3VnaCB0aGUgZW50cnkgaGVhZGVycyAqLwpAQCAtNDMzOSw3ICs0MzQzLDcgQEAgcWxhODJ4eF9tZF9jb2xsZWN0KHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCQlkYXRhX2NvbGxlY3RlZCA9ICh1aW50OF90ICopZGF0YV9wdHIgLQogCQkgICAgKHVpbnQ4X3QgKiloYS0+bWRfZHVtcDsKIHNraXBfbnh0X2VudHJ5OgotCQllbnRyeV9oZHIgPSAocWxhODJ4eF9tZF9lbnRyeV9oZHJfdCAqKSBcCisJCWVudHJ5X2hkciA9IChxbGE4Mnh4X21kX2VudHJ5X2hkcl90ICopCiAJCSAgICAoKCh1aW50OF90ICopZW50cnlfaGRyKSArIGVudHJ5X2hkci0+ZW50cnlfc2l6ZSk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbnguaCBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ueC5oCmluZGV4IDNjN2JlZWYuLjIzMGFiZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ueC5oCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ueC5oCkBAIC00ODYsMTMgKzQ4NiwxMyBAQAogI2RlZmluZSBRTEE4MlhYX0FERFJfUURSX05FVAkJKDB4MDAwMDAwMDMwMDAwMDAwMFVMTCkKICNkZWZpbmUgUUxBODJYWF9QM19BRERSX1FEUl9ORVRfTUFYCSgweDAwMDAwMDAzMDNmZmZmZmZVTEwpCiAKLSNkZWZpbmUgUUxBODJYWF9QQ0lfQ1JCU1BBQ0UJCSh1bnNpZ25lZCBsb25nKTB4MDYwMDAwMDAKLSNkZWZpbmUgUUxBODJYWF9QQ0lfRElSRUNUX0NSQgkJKHVuc2lnbmVkIGxvbmcpMHgwNDQwMDAwMAotI2RlZmluZSBRTEE4MlhYX1BDSV9DQU1RTQkJKHVuc2lnbmVkIGxvbmcpMHgwNDgwMDAwMAotI2RlZmluZSBRTEE4MlhYX1BDSV9DQU1RTV9NQVgJCSh1bnNpZ25lZCBsb25nKTB4MDRmZmZmZmYKLSNkZWZpbmUgUUxBODJYWF9QQ0lfRERSX05FVAkJKHVuc2lnbmVkIGxvbmcpMHgwMDAwMDAwMAotI2RlZmluZSBRTEE4MlhYX1BDSV9RRFJfTkVUCQkodW5zaWduZWQgbG9uZykweDA0MDAwMDAwCi0jZGVmaW5lIFFMQTgyWFhfUENJX1FEUl9ORVRfTUFYCQkodW5zaWduZWQgbG9uZykweDA0M2ZmZmZmCisjZGVmaW5lIFFMQTgyWFhfUENJX0NSQlNQQUNFCQkweDA2MDAwMDAwVUwKKyNkZWZpbmUgUUxBODJYWF9QQ0lfRElSRUNUX0NSQgkJMHgwNDQwMDAwMFVMCisjZGVmaW5lIFFMQTgyWFhfUENJX0NBTVFNCQkweDA0ODAwMDAwVUwKKyNkZWZpbmUgUUxBODJYWF9QQ0lfQ0FNUU1fTUFYCQkweDA0ZmZmZmZmVUwKKyNkZWZpbmUgUUxBODJYWF9QQ0lfRERSX05FVAkJMHgwMDAwMDAwMFVMCisjZGVmaW5lIFFMQTgyWFhfUENJX1FEUl9ORVQJCTB4MDQwMDAwMDBVTAorI2RlZmluZSBRTEE4MlhYX1BDSV9RRFJfTkVUX01BWAkJMHgwNDNmZmZmZlVMCiAKIC8qCiAgKiAgIFJlZ2lzdGVyIG9mZnNldHMgZm9yIE1OCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbngyLmMgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbngyLmMKaW5kZXggMzY5YWMwNC4uYzA1NmY0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX254Mi5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9ueDIuYwpAQCAtMjgxMCw3ICsyODEwLDcgQEAgcWxhODA0NF9taW5pZHVtcF9wcm9jZXNzX3BvbGxyZG13cihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLAogCiAjZGVmaW5lIElTUDgwNDRfUEVYX0RNQV9FTkdJTkVfSU5ERVgJCTgKICNkZWZpbmUgSVNQODA0NF9QRVhfRE1BX0JBU0VfQUREUkVTUwkJMHg3NzMyMDAwMAotI2RlZmluZSBJU1A4MDQ0X1BFWF9ETUFfTlVNX09GRlNFVAkJMHgxMDAwMAorI2RlZmluZSBJU1A4MDQ0X1BFWF9ETUFfTlVNX09GRlNFVAkJMHgxMDAwMFVMCiAjZGVmaW5lIElTUDgwNDRfUEVYX0RNQV9DTURfQUREUl9MT1cJCTB4MAogI2RlZmluZSBJU1A4MDQ0X1BFWF9ETUFfQ01EX0FERFJfSElHSAkJMHgwNAogI2RlZmluZSBJU1A4MDQ0X1BFWF9ETUFfQ01EX1NUU19BTkRfQ05UUkwJMHgwOApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX29zLmMgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfb3MuYwppbmRleCA5OGU2MGEzLi43M2RiMDFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfb3MuYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfb3MuYwpAQCAtNjksNyArNjksNyBAQCBNT0RVTEVfUEFSTV9ERVNDKHFsMnhwbG9naWFic2VudGRldmljZSwKIAkJImEgRmFicmljIHNjYW4uICBUaGlzIGlzIG5lZWRlZCBmb3Igc2V2ZXJhbCBicm9rZW4gc3dpdGNoZXMuICIKIAkJIkRlZmF1bHQgaXMgMCAtIG5vIFBMT0dJLiAxIC0gcGVyZm9ybSBQTE9HSS4iKTsKIAotaW50IHFsMnhsb2dpbnJldHJ5Y291bnQgPSAwOworaW50IHFsMnhsb2dpbnJldHJ5Y291bnQ7CiBtb2R1bGVfcGFyYW0ocWwyeGxvZ2lucmV0cnljb3VudCwgaW50LCBTX0lSVUdPKTsKIE1PRFVMRV9QQVJNX0RFU0MocWwyeGxvZ2lucmV0cnljb3VudCwKIAkJIlNwZWNpZnkgYW4gYWx0ZXJuYXRlIHZhbHVlIGZvciB0aGUgTlZSQU0gbG9naW4gcmV0cnkgY291bnQuIik7CkBAIC0yMzQsNyArMjM0LDcgQEAgTU9EVUxFX1BBUk1fREVTQyhxbDJ4bWRlbmFibGUsCiAJCSIwIC0gTWluaUR1bXAgZGlzYWJsZWQuICIKIAkJIjEgKERlZmF1bHQpIC0gTWluaUR1bXAgZW5hYmxlZC4iKTsKIAotaW50IHFsMnhleGxvZ2lucyA9IDA7CitpbnQgcWwyeGV4bG9naW5zOwogbW9kdWxlX3BhcmFtKHFsMnhleGxvZ2lucywgdWludCwgU19JUlVHT3xTX0lXVVNSKTsKIE1PRFVMRV9QQVJNX0RFU0MocWwyeGV4bG9naW5zLAogCQkgIk51bWJlciBvZiBleHRlbmRlZCBMb2dpbnMuICIKQEAgLTI1MCw3ICsyNTAsNyBAQCBtb2R1bGVfcGFyYW0ocWwyeGluaWV4Y2hnLCB1aW50LCAwNjQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MocWwyeGluaWV4Y2hnLAogCSJOdW1iZXIgb2YgaW5pdGlhdG9yIGV4Y2hhbmdlcy4iKTsKIAotaW50IHFsMnhmd2hvbGRhYnRzID0gMDsKK2ludCBxbDJ4Zndob2xkYWJ0czsKIG1vZHVsZV9wYXJhbShxbDJ4Zndob2xkYWJ0cywgaW50LCBTX0lSVUdPKTsKIE1PRFVMRV9QQVJNX0RFU0MocWwyeGZ3aG9sZGFidHMsCiAJCSJBbGxvdyBGVyB0byBob2xkIHN0YXR1cyBJT0NCIHVudGlsIEFCVFMgcnNwIHJlY2VpdmVkLiAiCkBAIC01MzYsODAgKzUzNiw3MCBAQCBzdGF0aWMgdm9pZCBxbGEyeDAwX2ZyZWVfcXVldWVzKHN0cnVjdCBxbGFfaHdfZGF0YSAqaGEpCiB9CiAKIHN0YXRpYyBjaGFyICoKLXFsYTJ4MDBfcGNpX2luZm9fc3RyKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGNoYXIgKnN0cikKK3FsYTJ4MDBfcGNpX2luZm9fc3RyKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGNoYXIgKnN0ciwgc2l6ZV90IHN0cl9sZW4pCiB7CiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHZoYS0+aHc7Ci0Jc3RhdGljIGNoYXIgKnBjaV9idXNfbW9kZXNbXSA9IHsKKwlzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgcGNpX2J1c19tb2Rlc1tdID0gewogCQkiMzMiLCAiNjYiLCAiMTAwIiwgIjEzMyIsCiAJfTsKIAl1aW50MTZfdCBwY2lfYnVzOwogCi0Jc3RyY3B5KHN0ciwgIlBDSSIpOwogCXBjaV9idXMgPSAoaGEtPnBjaV9hdHRyICYgKEJJVF85IHwgQklUXzEwKSkgPj4gOTsKIAlpZiAocGNpX2J1cykgewotCQlzdHJjYXQoc3RyLCAiLVggKCIpOwotCQlzdHJjYXQoc3RyLCBwY2lfYnVzX21vZGVzW3BjaV9idXNdKTsKKwkJc25wcmludGYoc3RyLCBzdHJfbGVuLCAiUENJLVggKCVzIE1IeikiLAorCQkJIHBjaV9idXNfbW9kZXNbcGNpX2J1c10pOwogCX0gZWxzZSB7CiAJCXBjaV9idXMgPSAoaGEtPnBjaV9hdHRyICYgQklUXzgpID4+IDg7Ci0JCXN0cmNhdChzdHIsICIgKCIpOwotCQlzdHJjYXQoc3RyLCBwY2lfYnVzX21vZGVzW3BjaV9idXNdKTsKKwkJc25wcmludGYoc3RyLCBzdHJfbGVuLCAiUENJICglcyBNSHopIiwgcGNpX2J1c19tb2Rlc1twY2lfYnVzXSk7CiAJfQotCXN0cmNhdChzdHIsICIgTUh6KSIpOwogCi0JcmV0dXJuIChzdHIpOworCXJldHVybiBzdHI7CiB9CiAKIHN0YXRpYyBjaGFyICoKLXFsYTI0eHhfcGNpX2luZm9fc3RyKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGNoYXIgKnN0cikKK3FsYTI0eHhfcGNpX2luZm9fc3RyKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGNoYXIgKnN0ciwgc2l6ZV90IHN0cl9sZW4pCiB7Ci0Jc3RhdGljIGNoYXIgKnBjaV9idXNfbW9kZXNbXSA9IHsgIjMzIiwgIjY2IiwgIjEwMCIsICIxMzMiLCB9OworCXN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBwY2lfYnVzX21vZGVzW10gPSB7CisJCSIzMyIsICI2NiIsICIxMDAiLCAiMTMzIiwKKwl9OwogCXN0cnVjdCBxbGFfaHdfZGF0YSAqaGEgPSB2aGEtPmh3OwogCXVpbnQzMl90IHBjaV9idXM7CiAKIAlpZiAocGNpX2lzX3BjaWUoaGEtPnBkZXYpKSB7Ci0JCWNoYXIgbHdzdHJbNl07CiAJCXVpbnQzMl90IGxzdGF0LCBsc3BlZWQsIGx3aWR0aDsKKwkJY29uc3QgY2hhciAqc3BlZWRfc3RyOwogCiAJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX2R3b3JkKGhhLT5wZGV2LCBQQ0lfRVhQX0xOS0NBUCwgJmxzdGF0KTsKIAkJbHNwZWVkID0gbHN0YXQgJiBQQ0lfRVhQX0xOS0NBUF9TTFM7CiAJCWx3aWR0aCA9IChsc3RhdCAmIFBDSV9FWFBfTE5LQ0FQX01MVykgPj4gNDsKIAotCQlzdHJjcHkoc3RyLCAiUENJZSAoIik7CiAJCXN3aXRjaCAobHNwZWVkKSB7CiAJCWNhc2UgMToKLQkJCXN0cmNhdChzdHIsICIyLjVHVC9zICIpOworCQkJc3BlZWRfc3RyID0gIjIuNUdUL3MiOwogCQkJYnJlYWs7CiAJCWNhc2UgMjoKLQkJCXN0cmNhdChzdHIsICI1LjBHVC9zICIpOworCQkJc3BlZWRfc3RyID0gIjUuMEdUL3MiOwogCQkJYnJlYWs7CiAJCWNhc2UgMzoKLQkJCXN0cmNhdChzdHIsICI4LjBHVC9zICIpOworCQkJc3BlZWRfc3RyID0gIjguMEdUL3MiOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6Ci0JCQlzdHJjYXQoc3RyLCAiPHVua25vd24+ICIpOworCQkJc3BlZWRfc3RyID0gIjx1bmtub3duPiI7CiAJCQlicmVhazsKIAkJfQotCQlzbnByaW50Zihsd3N0ciwgc2l6ZW9mKGx3c3RyKSwgInglZCkiLCBsd2lkdGgpOwotCQlzdHJjYXQoc3RyLCBsd3N0cik7CisJCXNucHJpbnRmKHN0ciwgc3RyX2xlbiwgIlBDSWUgKCVzIHglZCkiLCBzcGVlZF9zdHIsIGx3aWR0aCk7CiAKIAkJcmV0dXJuIHN0cjsKIAl9CiAKLQlzdHJjcHkoc3RyLCAiUENJIik7CiAJcGNpX2J1cyA9IChoYS0+cGNpX2F0dHIgJiBDU1JYX1BDSVhfQlVTX01PREVfTUFTSykgPj4gODsKLQlpZiAocGNpX2J1cyA9PSAwIHx8IHBjaV9idXMgPT0gOCkgewotCQlzdHJjYXQoc3RyLCAiICgiKTsKLQkJc3RyY2F0KHN0ciwgcGNpX2J1c19tb2Rlc1twY2lfYnVzID4+IDNdKTsKLQl9IGVsc2UgewotCQlzdHJjYXQoc3RyLCAiLVggIik7Ci0JCWlmIChwY2lfYnVzICYgQklUXzIpCi0JCQlzdHJjYXQoc3RyLCAiTW9kZSAyIik7Ci0JCWVsc2UKLQkJCXN0cmNhdChzdHIsICJNb2RlIDEiKTsKLQkJc3RyY2F0KHN0ciwgIiAoIik7Ci0JCXN0cmNhdChzdHIsIHBjaV9idXNfbW9kZXNbcGNpX2J1cyAmIH5CSVRfMl0pOwotCX0KLQlzdHJjYXQoc3RyLCAiIE1IeikiKTsKKwlpZiAocGNpX2J1cyA9PSAwIHx8IHBjaV9idXMgPT0gOCkKKwkJc25wcmludGYoc3RyLCBzdHJfbGVuLCAiUENJICglcyBNSHopIiwKKwkJCSBwY2lfYnVzX21vZGVzW3BjaV9idXMgPj4gM10pOworCWVsc2UKKwkJc25wcmludGYoc3RyLCBzdHJfbGVuLCAiUENJLVggTW9kZSAlZCAoJXMgTUh6KSIsCisJCQkgcGNpX2J1cyAmIDQgPyAyIDogMSwKKwkJCSBwY2lfYnVzX21vZGVzW3BjaV9idXMgJiAzXSk7CiAKIAlyZXR1cm4gc3RyOwogfQpAQCAtNjYyLDEzICs2NTIsMTAgQEAgcWxhMjR4eF9md192ZXJzaW9uX3N0cihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBjaGFyICpzdHIsIHNpemVfdCBzaXplKQogCXJldHVybiBzdHI7CiB9CiAKLXZvaWQKLXFsYTJ4MDBfc3BfZnJlZV9kbWEodm9pZCAqcHRyKQordm9pZCBxbGEyeDAwX3NwX2ZyZWVfZG1hKHNyYl90ICpzcCkKIHsKLQlzcmJfdCAqc3AgPSBwdHI7CiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHNwLT52aGEtPmh3OwogCXN0cnVjdCBzY3NpX2NtbmQgKmNtZCA9IEdFVF9DTURfU1Aoc3ApOwotCXZvaWQgKmN0eCA9IEdFVF9DTURfQ1RYX1NQKHNwKTsKIAogCWlmIChzcC0+ZmxhZ3MgJiBTUkJfRE1BX1ZBTElEKSB7CiAJCXNjc2lfZG1hX3VubWFwKGNtZCk7CkBAIC02ODEsMjQgKzY2OCwyMSBAQCBxbGEyeDAwX3NwX2ZyZWVfZG1hKHZvaWQgKnB0cikKIAkJc3AtPmZsYWdzICY9IH5TUkJfQ1JDX1BST1RfRE1BX1ZBTElEOwogCX0KIAotCWlmICghY3R4KQotCQlyZXR1cm47Ci0KIAlpZiAoc3AtPmZsYWdzICYgU1JCX0NSQ19DVFhfRFNEX1ZBTElEKSB7CiAJCS8qIExpc3QgYXNzdXJlZCB0byBiZSBoYXZpbmcgZWxlbWVudHMgKi8KLQkJcWxhMngwMF9jbGVhbl9kc2RfcG9vbChoYSwgY3R4KTsKKwkJcWxhMngwMF9jbGVhbl9kc2RfcG9vbChoYSwgc3AtPnUuc2NtZC5jcmNfY3R4KTsKIAkJc3AtPmZsYWdzICY9IH5TUkJfQ1JDX0NUWF9EU0RfVkFMSUQ7CiAJfQogCiAJaWYgKHNwLT5mbGFncyAmIFNSQl9DUkNfQ1RYX0RNQV9WQUxJRCkgewotCQlzdHJ1Y3QgY3JjX2NvbnRleHQgKmN0eDAgPSBjdHg7CisJCXN0cnVjdCBjcmNfY29udGV4dCAqY3R4MCA9IHNwLT51LnNjbWQuY3JjX2N0eDsKIAogCQlkbWFfcG9vbF9mcmVlKGhhLT5kbF9kbWFfcG9vbCwgY3R4MCwgY3R4MC0+Y3JjX2N0eF9kbWEpOwogCQlzcC0+ZmxhZ3MgJj0gflNSQl9DUkNfQ1RYX0RNQV9WQUxJRDsKIAl9CiAKIAlpZiAoc3AtPmZsYWdzICYgU1JCX0ZDUF9DTU5EX0RNQV9WQUxJRCkgewotCQlzdHJ1Y3QgY3Q2X2RzZCAqY3R4MSA9IGN0eDsKKwkJc3RydWN0IGN0Nl9kc2QgKmN0eDEgPSBzcC0+dS5zY21kLmN0Nl9jdHg7CiAKIAkJZG1hX3Bvb2xfZnJlZShoYS0+ZmNwX2NtbmRfZG1hX3Bvb2wsIGN0eDEtPmZjcF9jbW5kLAogCQkgICAgY3R4MS0+ZmNwX2NtbmRfZG1hKTsKQEAgLTcwOSwxMCArNjkzLDggQEAgcWxhMngwMF9zcF9mcmVlX2RtYSh2b2lkICpwdHIpCiAJfQogfQogCi12b2lkCi1xbGEyeDAwX3NwX2NvbXBsKHZvaWQgKnB0ciwgaW50IHJlcykKK3ZvaWQgcWxhMngwMF9zcF9jb21wbChzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3JiX3QgKnNwID0gcHRyOwogCXN0cnVjdCBzY3NpX2NtbmQgKmNtZCA9IEdFVF9DTURfU1Aoc3ApOwogCXN0cnVjdCBjb21wbGV0aW9uICpjb21wID0gc3AtPmNvbXA7CiAKQEAgLTcyNywxNiArNzA5LDEyIEBAIHFsYTJ4MDBfc3BfY29tcGwodm9pZCAqcHRyLCBpbnQgcmVzKQogCWNtZC0+c2NzaV9kb25lKGNtZCk7CiAJaWYgKGNvbXApCiAJCWNvbXBsZXRlKGNvbXApOwotCXFsYTJ4MDBfcmVsX3NwKHNwKTsKIH0KIAotdm9pZAotcWxhMnh4eF9xcGFpcl9zcF9mcmVlX2RtYSh2b2lkICpwdHIpCit2b2lkIHFsYTJ4eHhfcXBhaXJfc3BfZnJlZV9kbWEoc3JiX3QgKnNwKQogewotCXNyYl90ICpzcCA9IChzcmJfdCAqKXB0cjsKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQgPSBHRVRfQ01EX1NQKHNwKTsKIAlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gc3AtPmZjcG9ydC0+dmhhLT5odzsKLQl2b2lkICpjdHggPSBHRVRfQ01EX0NUWF9TUChzcCk7CiAKIAlpZiAoc3AtPmZsYWdzICYgU1JCX0RNQV9WQUxJRCkgewogCQlzY3NpX2RtYV91bm1hcChjbWQpOwpAQCAtNzQ5LDE3ICs3MjcsMTQgQEAgcWxhMnh4eF9xcGFpcl9zcF9mcmVlX2RtYSh2b2lkICpwdHIpCiAJCXNwLT5mbGFncyAmPSB+U1JCX0NSQ19QUk9UX0RNQV9WQUxJRDsKIAl9CiAKLQlpZiAoIWN0eCkKLQkJcmV0dXJuOwotCiAJaWYgKHNwLT5mbGFncyAmIFNSQl9DUkNfQ1RYX0RTRF9WQUxJRCkgewogCQkvKiBMaXN0IGFzc3VyZWQgdG8gYmUgaGF2aW5nIGVsZW1lbnRzICovCi0JCXFsYTJ4MDBfY2xlYW5fZHNkX3Bvb2woaGEsIGN0eCk7CisJCXFsYTJ4MDBfY2xlYW5fZHNkX3Bvb2woaGEsIHNwLT51LnNjbWQuY3JjX2N0eCk7CiAJCXNwLT5mbGFncyAmPSB+U1JCX0NSQ19DVFhfRFNEX1ZBTElEOwogCX0KIAogCWlmIChzcC0+ZmxhZ3MgJiBTUkJfRElGX0JVTkRMX0RNQV9WQUxJRCkgewotCQlzdHJ1Y3QgY3JjX2NvbnRleHQgKmRpZmN0eCA9IGN0eDsKKwkJc3RydWN0IGNyY19jb250ZXh0ICpkaWZjdHggPSBzcC0+dS5zY21kLmNyY19jdHg7CiAJCXN0cnVjdCBkc2RfZG1hICpkaWZfZHNkLCAqbnh0X2RzZDsKIAogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZGlmX2RzZCwgbnh0X2RzZCwKQEAgLTc5NSw3ICs3NzAsNyBAQCBxbGEyeHh4X3FwYWlyX3NwX2ZyZWVfZG1hKHZvaWQgKnB0cikKIAl9CiAKIAlpZiAoc3AtPmZsYWdzICYgU1JCX0ZDUF9DTU5EX0RNQV9WQUxJRCkgewotCQlzdHJ1Y3QgY3Q2X2RzZCAqY3R4MSA9IGN0eDsKKwkJc3RydWN0IGN0Nl9kc2QgKmN0eDEgPSBzcC0+dS5zY21kLmN0Nl9jdHg7CiAKIAkJZG1hX3Bvb2xfZnJlZShoYS0+ZmNwX2NtbmRfZG1hX3Bvb2wsIGN0eDEtPmZjcF9jbW5kLAogCQkgICAgY3R4MS0+ZmNwX2NtbmRfZG1hKTsKQEAgLTgwNywxNyArNzgyLDE1IEBAIHFsYTJ4eHhfcXBhaXJfc3BfZnJlZV9kbWEodm9pZCAqcHRyKQogCX0KIAogCWlmIChzcC0+ZmxhZ3MgJiBTUkJfQ1JDX0NUWF9ETUFfVkFMSUQpIHsKLQkJc3RydWN0IGNyY19jb250ZXh0ICpjdHgwID0gY3R4OworCQlzdHJ1Y3QgY3JjX2NvbnRleHQgKmN0eDAgPSBzcC0+dS5zY21kLmNyY19jdHg7CiAKLQkJZG1hX3Bvb2xfZnJlZShoYS0+ZGxfZG1hX3Bvb2wsIGN0eCwgY3R4MC0+Y3JjX2N0eF9kbWEpOworCQlkbWFfcG9vbF9mcmVlKGhhLT5kbF9kbWFfcG9vbCwgY3R4MCwgY3R4MC0+Y3JjX2N0eF9kbWEpOwogCQlzcC0+ZmxhZ3MgJj0gflNSQl9DUkNfQ1RYX0RNQV9WQUxJRDsKIAl9CiB9CiAKLXZvaWQKLXFsYTJ4eHhfcXBhaXJfc3BfY29tcGwodm9pZCAqcHRyLCBpbnQgcmVzKQordm9pZCBxbGEyeHh4X3FwYWlyX3NwX2NvbXBsKHNyYl90ICpzcCwgaW50IHJlcykKIHsKLQlzcmJfdCAqc3AgPSBwdHI7CiAJc3RydWN0IHNjc2lfY21uZCAqY21kID0gR0VUX0NNRF9TUChzcCk7CiAJc3RydWN0IGNvbXBsZXRpb24gKmNvbXAgPSBzcC0+Y29tcDsKIApAQCAtODMyLDcgKzgwNSw2IEBAIHFsYTJ4eHhfcXBhaXJfc3BfY29tcGwodm9pZCAqcHRyLCBpbnQgcmVzKQogCWNtZC0+c2NzaV9kb25lKGNtZCk7CiAJaWYgKGNvbXApCiAJCWNvbXBsZXRlKGNvbXApOwotCXFsYTJ4eHhfcmVsX3FwYWlyX3NwKHNwLT5xcGFpciwgc3ApOwogfQogCiBzdGF0aWMgaW50CkBAIC04NDUsOSArODE3LDYgQEAgcWxhMnh4eF9xdWV1ZWNvbW1hbmQoc3RydWN0IFNjc2lfSG9zdCAqaG9zdCwgc3RydWN0IHNjc2lfY21uZCAqY21kKQogCXN0cnVjdCBzY3NpX3FsYV9ob3N0ICpiYXNlX3ZoYSA9IHBjaV9nZXRfZHJ2ZGF0YShoYS0+cGRldik7CiAJc3JiX3QgKnNwOwogCWludCBydmFsOwotCXN0cnVjdCBxbGFfcXBhaXIgKnFwYWlyID0gTlVMTDsKLQl1aW50MzJfdCB0YWc7Ci0JdWludDE2X3QgaHdxOwogCiAJaWYgKHVubGlrZWx5KHRlc3RfYml0KFVOTE9BRElORywgJmJhc2VfdmhhLT5kcGNfZmxhZ3MpKSB8fAogCSAgICBXQVJOX09OX09OQ0UoIXJwb3J0KSkgewpAQCAtODU2LDYgKzgyNSwxMCBAQCBxbGEyeHh4X3F1ZXVlY29tbWFuZChzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0LCBzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCiAJfQogCiAJaWYgKGhhLT5tcWVuYWJsZSkgeworCQl1aW50MzJfdCB0YWc7CisJCXVpbnQxNl90IGh3cTsKKwkJc3RydWN0IHFsYV9xcGFpciAqcXBhaXIgPSBOVUxMOworCiAJCXRhZyA9IGJsa19tcV91bmlxdWVfdGFnKGNtZC0+cmVxdWVzdCk7CiAJCWh3cSA9IGJsa19tcV91bmlxdWVfdGFnX3RvX2h3cSh0YWcpOwogCQlxcGFpciA9IGhhLT5xdWV1ZV9wYWlyX21hcFtod3FdOwpAQCAtOTI1LDkgKzg5OCw4IEBAIHFsYTJ4eHhfcXVldWVjb21tYW5kKHN0cnVjdCBTY3NpX0hvc3QgKmhvc3QsIHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKIAllbHNlCiAJCWdvdG8gcWMyNF90YXJnZXRfYnVzeTsKIAotCXNwID0gcWxhMngwMF9nZXRfc3AodmhhLCBmY3BvcnQsIEdGUF9BVE9NSUMpOwotCWlmICghc3ApCi0JCWdvdG8gcWMyNF9ob3N0X2J1c3k7CisJc3AgPSBzY3NpX2NtZF9wcml2KGNtZCk7CisJcWxhMnh4eF9pbml0X3NwKHNwLCB2aGEsIHZoYS0+aHctPmJhc2VfcXBhaXIsIGZjcG9ydCk7CiAKIAlzcC0+dS5zY21kLmNtZCA9IGNtZDsKIAlzcC0+dHlwZSA9IFNSQl9TQ1NJX0NNRDsKQEAgLTk0OCw5ICs5MjAsNiBAQCBxbGEyeHh4X3F1ZXVlY29tbWFuZChzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0LCBzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCiBxYzI0X2hvc3RfYnVzeV9mcmVlX3NwOgogCXNwLT5mcmVlKHNwKTsKIAotcWMyNF9ob3N0X2J1c3k6Ci0JcmV0dXJuIFNDU0lfTUxRVUVVRV9IT1NUX0JVU1k7Ci0KIHFjMjRfdGFyZ2V0X2J1c3k6CiAJcmV0dXJuIFNDU0lfTUxRVUVVRV9UQVJHRVRfQlVTWTsKIApAQCAtMTAxMSw5ICs5ODAsOCBAQCBxbGEyeHh4X21xdWV1ZWNvbW1hbmQoc3RydWN0IFNjc2lfSG9zdCAqaG9zdCwgc3RydWN0IHNjc2lfY21uZCAqY21kLAogCWVsc2UKIAkJZ290byBxYzI0X3RhcmdldF9idXN5OwogCi0Jc3AgPSBxbGEyeHh4X2dldF9xcGFpcl9zcCh2aGEsIHFwYWlyLCBmY3BvcnQsIEdGUF9BVE9NSUMpOwotCWlmICghc3ApCi0JCWdvdG8gcWMyNF9ob3N0X2J1c3k7CisJc3AgPSBzY3NpX2NtZF9wcml2KGNtZCk7CisJcWxhMnh4eF9pbml0X3NwKHNwLCB2aGEsIHFwYWlyLCBmY3BvcnQpOwogCiAJc3AtPnUuc2NtZC5jbWQgPSBjbWQ7CiAJc3AtPnR5cGUgPSBTUkJfU0NTSV9DTUQ7CkBAIC0xMDM3LDkgKzEwMDUsNiBAQCBxbGEyeHh4X21xdWV1ZWNvbW1hbmQoc3RydWN0IFNjc2lfSG9zdCAqaG9zdCwgc3RydWN0IHNjc2lfY21uZCAqY21kLAogcWMyNF9ob3N0X2J1c3lfZnJlZV9zcDoKIAlzcC0+ZnJlZShzcCk7CiAKLXFjMjRfaG9zdF9idXN5OgotCXJldHVybiBTQ1NJX01MUVVFVUVfSE9TVF9CVVNZOwotCiBxYzI0X3RhcmdldF9idXN5OgogCXJldHVybiBTQ1NJX01MUVVFVUVfVEFSR0VUX0JVU1k7CiAKQEAgLTEwNTgsOCArMTAyMyw4IEBAIHFsYTJ4eHhfbXF1ZXVlY29tbWFuZChzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0LCBzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQsCiAgKiAgICBjbWQgPSBTY3NpIENvbW1hbmQgdG8gd2FpdCBvbi4KICAqCiAgKiBSZXR1cm46Ci0gKiAgICBOb3QgRm91bmQgOiAwCi0gKiAgICBGb3VuZCA6IDEKKyAqICAgIENvbXBsZXRlZCBpbiB0aW1lIDogUUxBX1NVQ0NFU1MKKyAqICAgIERpZCBub3QgY29tcGxldGUgaW4gdGltZSA6IFFMQV9GVU5DVElPTl9GQUlMRUQKICAqLwogc3RhdGljIGludAogcWxhMngwMF9laF93YWl0X29uX2NvbW1hbmQoc3RydWN0IHNjc2lfY21uZCAqY21kKQpAQCAtMTI2OSwxNCArMTIzNCwxMyBAQCBzdGF0aWMgaW50CiBxbGEyeHh4X2VoX2Fib3J0KHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKIHsKIAlzY3NpX3FsYV9ob3N0X3QgKnZoYSA9IHNob3N0X3ByaXYoY21kLT5kZXZpY2UtPmhvc3QpOworCURFQ0xBUkVfQ09NUExFVElPTl9PTlNUQUNLKGNvbXApOwogCXNyYl90ICpzcDsKIAlpbnQgcmV0OwogCXVuc2lnbmVkIGludCBpZDsKIAl1aW50NjRfdCBsdW47Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcnZhbDsKIAlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gdmhhLT5odzsKLQlzdHJ1Y3QgcWxhX3FwYWlyICpxcGFpcjsKIAogCWlmIChxbGEyeDAwX2lzcF9yZWdfc3RhdChoYSkpIHsKIAkJcWxfbG9nKHFsX2xvZ19pbmZvLCB2aGEsIDB4ODA0MiwKQEAgLTEyODgsMjkgKzEyNTIsMTUgQEAgcWxhMnh4eF9laF9hYm9ydChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCiAJaWYgKHJldCAhPSAwKQogCQlyZXR1cm4gcmV0OwogCi0Jc3AgPSAoc3JiX3QgKikgQ01EX1NQKGNtZCk7Ci0JaWYgKCFzcCkKKwlzcCA9IHNjc2lfY21kX3ByaXYoY21kKTsKKworCWlmIChzcC0+ZmNwb3J0ICYmIHNwLT5mY3BvcnQtPmRlbGV0ZWQpCiAJCXJldHVybiBTVUNDRVNTOwogCi0JcXBhaXIgPSBzcC0+cXBhaXI7Ci0JaWYgKCFxcGFpcikKKwkvKiBSZXR1cm4gaWYgdGhlIGNvbW1hbmQgaGFzIGFscmVhZHkgZmluaXNoZWQuICovCisJaWYgKHNwX2dldChzcCkpCiAJCXJldHVybiBTVUNDRVNTOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUocXBhaXItPnFwX2xvY2tfcHRyLCBmbGFncyk7Ci0JaWYgKHNwLT50eXBlICE9IFNSQl9TQ1NJX0NNRCB8fCBHRVRfQ01EX1NQKHNwKSAhPSBjbWQpIHsKLQkJLyogdGhlcmUncyBhIGNoYW5jZSBhbiBpbnRlcnJ1cHQgY291bGQgY2xlYXIKLQkJICAgdGhlIHB0ciBhcyBwYXJ0IG9mIGRvbmUgJiBmcmVlICovCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUocXBhaXItPnFwX2xvY2tfcHRyLCBmbGFncyk7Ci0JCXJldHVybiBTVUNDRVNTOwotCX0KLQotCWlmIChzcF9nZXQoc3ApKXsKLQkJLyogcmVmX2NvdW50IGlzIGFscmVhZHkgMCAqLwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHFwYWlyLT5xcF9sb2NrX3B0ciwgZmxhZ3MpOwotCQlyZXR1cm4gU1VDQ0VTUzsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShxcGFpci0+cXBfbG9ja19wdHIsIGZsYWdzKTsKLQogCWlkID0gY21kLT5kZXZpY2UtPmlkOwogCWx1biA9IGNtZC0+ZGV2aWNlLT5sdW47CiAKQEAgLTEzMzEsNiArMTI4MSwyMyBAQCBxbGEyeHh4X2VoX2Fib3J0KHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKIAkJc3AtPmRvbmUoc3AsIERJRF9BQk9SVCA8PCAxNik7CiAJCXJldCA9IFNVQ0NFU1M7CiAJCWJyZWFrOworCWNhc2UgUUxBX0ZVTkNUSU9OX1BBUkFNRVRFUl9FUlJPUjogeworCQkvKiBXYWl0IGZvciB0aGUgY29tbWFuZCBjb21wbGV0aW9uLiAqLworCQl1aW50MzJfdCByYXRvdiA9IGhhLT5yX2FfdG92LzEwOworCQl1aW50MzJfdCByYXRvdl9qID0gbXNlY3NfdG9famlmZmllcyg0ICogcmF0b3YgKiAxMDAwKTsKKworCQlXQVJOX09OX09OQ0Uoc3AtPmNvbXApOworCQlzcC0+Y29tcCA9ICZjb21wOworCQlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmY29tcCwgcmF0b3ZfaikpIHsKKwkJCXFsX2RiZyhxbF9kYmdfdGFza20sIHZoYSwgMHhmZmZmLAorCQkJICAgICIlczogQWJvcnQgd2FpdCB0aW1lciAoNCAqIFJfQV9UT1ZbJWRdKSBleHBpcmVkXG4iLAorCQkJICAgIF9fZnVuY19fLCBoYS0+cl9hX3Rvdik7CisJCQlyZXQgPSBGQUlMRUQ7CisJCX0gZWxzZSB7CisJCQlyZXQgPSBTVUNDRVNTOworCQl9CisJCWJyZWFrOworCX0KIAlkZWZhdWx0OgogCQkvKgogCQkgKiBFaXRoZXIgYWJvcnQgZmFpbGVkIG9yIGFib3J0IGFuZCBjb21wbGV0aW9uIHJhY2VkLiBMZXQKQEAgLTEzNDAsNiArMTMwNyw4IEBAIHFsYTJ4eHhfZWhfYWJvcnQoc3RydWN0IHNjc2lfY21uZCAqY21kKQogCQlicmVhazsKIAl9CiAKKwlzcC0+Y29tcCA9IE5VTEw7CisJYXRvbWljX2RlYygmc3AtPnJlZl9jb3VudCk7CiAJcWxfbG9nKHFsX2xvZ19pbmZvLCB2aGEsIDB4ODAxYywKIAkgICAgIkFib3J0IGNvbW1hbmQgaXNzdWVkIG5leHVzPSVsZDolZDolbGx1IC0tICV4LlxuIiwKIAkgICAgdmhhLT5ob3N0X25vLCBpZCwgbHVuLCByZXQpOwpAQCAtMTM0Nyw2ICsxMzE2LDkgQEAgcWxhMnh4eF9laF9hYm9ydChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCiAJcmV0dXJuIHJldDsKIH0KIAorLyoKKyAqIFJldHVybnM6IFFMQV9TVUNDRVNTIG9yIFFMQV9GVU5DVElPTl9GQUlMRUQuCisgKi8KIGludAogcWxhMngwMF9laF93YWl0X2Zvcl9wZW5kaW5nX2NvbW1hbmRzKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCB1bnNpZ25lZCBpbnQgdCwKIAl1aW50NjRfdCBsLCBlbnVtIG5leHVzX3dhaXRfdHlwZSB0eXBlKQpAQCAtMTQyMCw2ICsxMzkyLDkgQEAgX19xbGEyeHh4X2VoX2dlbmVyaWNfcmVzZXQoY2hhciAqbmFtZSwgZW51bSBuZXh1c193YWl0X3R5cGUgdHlwZSwKIAlpZiAoZXJyICE9IDApCiAJCXJldHVybiBlcnI7CiAKKwlpZiAoZmNwb3J0LT5kZWxldGVkKQorCQlyZXR1cm4gU1VDQ0VTUzsKKwogCXFsX2xvZyhxbF9sb2dfaW5mbywgdmhhLCAweDgwMDksCiAJICAgICIlcyBSRVNFVCBJU1NVRUQgbmV4dXM9JWxkOiVkOiVsbHUgY21kPSVwLlxuIiwgbmFtZSwgdmhhLT5ob3N0X25vLAogCSAgICBjbWQtPmRldmljZS0+aWQsIGNtZC0+ZGV2aWNlLT5sdW4sIGNtZCk7CkBAIC0xNTM0LDYgKzE1MDksOSBAQCBxbGEyeHh4X2VoX2J1c19yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCiAJCXJldHVybiByZXQ7CiAJcmV0ID0gRkFJTEVEOwogCisJaWYgKHFsYTJ4MDBfY2hpcF9pc19kb3duKHZoYSkpCisJCXJldHVybiByZXQ7CisKIAlxbF9sb2cocWxfbG9nX2luZm8sIHZoYSwgMHg4MDEyLAogCSAgICAiQlVTIFJFU0VUIElTU1VFRCBuZXh1cz0lbGQ6JWQ6JWxsdS5cbiIsIHZoYS0+aG9zdF9ubywgaWQsIGx1bik7CiAKQEAgLTE3NDYsNiArMTcyNCw4IEBAIHN0YXRpYyB2b2lkIHFsYTJ4MDBfYWJvcnRfc3JiKHN0cnVjdCBxbGFfcXBhaXIgKnFwLCBzcmJfdCAqc3AsIGNvbnN0IGludCByZXMsCiAJCXNwaW5fbG9ja19pcnFzYXZlKHFwLT5xcF9sb2NrX3B0ciwgKmZsYWdzKTsKIAkJc3AtPmNvbXAgPSBOVUxMOwogCX0KKworCWF0b21pY19kZWMoJnNwLT5yZWZfY291bnQpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTgwMCw4ICsxNzgwLDEzIEBAIHFsYTJ4MDBfYWJvcnRfYWxsX2NtZHMoc2NzaV9xbGFfaG9zdF90ICp2aGEsIGludCByZXMpCiAJaW50IHF1ZTsKIAlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gdmhhLT5odzsKIAorCS8qIENvbnRpbnVlIG9ubHkgaWYgaW5pdGlhbGl6YXRpb24gY29tcGxldGUuICovCisJaWYgKCFoYS0+YmFzZV9xcGFpcikKKwkJcmV0dXJuOwogCV9fcWxhMngwMF9hYm9ydF9hbGxfY21kcyhoYS0+YmFzZV9xcGFpciwgcmVzKTsKIAorCWlmICghaGEtPnF1ZXVlX3BhaXJfbWFwKQorCQlyZXR1cm47CiAJZm9yIChxdWUgPSAwOyBxdWUgPCBoYS0+bWF4X3FwYWlyczsgcXVlKyspIHsKIAkJaWYgKCFoYS0+cXVldWVfcGFpcl9tYXBbcXVlXSkKIAkJCWNvbnRpbnVlOwpAQCAtMjQ3Nyw3ICsyNDYyLDcgQEAgc3RhdGljIHN0cnVjdCBpc3Bfb3BlcmF0aW9ucyBxbGEyN3h4X2lzcF9vcHMgPSB7CiAJLmNvbmZpZ19yaW5ncwkJPSBxbGEyNHh4X2NvbmZpZ19yaW5ncywKIAkucmVzZXRfYWRhcHRlcgkJPSBxbGEyNHh4X3Jlc2V0X2FkYXB0ZXIsCiAJLm52cmFtX2NvbmZpZwkJPSBxbGE4MXh4X252cmFtX2NvbmZpZywKLQkudXBkYXRlX2Z3X29wdGlvbnMJPSBxbGE4MXh4X3VwZGF0ZV9md19vcHRpb25zLAorCS51cGRhdGVfZndfb3B0aW9ucwk9IHFsYTI0eHhfdXBkYXRlX2Z3X29wdGlvbnMsCiAJLmxvYWRfcmlzYwkJPSBxbGE4MXh4X2xvYWRfcmlzYywKIAkucGNpX2luZm9fc3RyCQk9IHFsYTI0eHhfcGNpX2luZm9fc3RyLAogCS5md192ZXJzaW9uX3N0cgkJPSBxbGEyNHh4X2Z3X3ZlcnNpb25fc3RyLApAQCAtMzE1NCw2ICszMTM5LDcgQEAgcWxhMngwMF9wcm9iZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAkJcWxfbG9nKHFsX2xvZ19mYXRhbCwgYmFzZV92aGEsIDB4MDAzZCwKIAkJICAgICJGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBxdWV1ZSBwb2ludGVycy4uLiIKIAkJICAgICJhYm9ydGluZy5cbiIpOworCQlyZXQgPSAtRU5PREVWOwogCQlnb3RvIHByb2JlX2ZhaWxlZDsKIAl9CiAKQEAgLTM0MTgsNyArMzQwNCw4IEBAIHFsYTJ4MDBfcHJvYmVfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCiAJICAgICJRTG9naWMgJXMgLSAlcy5cbiIsIGhhLT5tb2RlbF9udW1iZXIsIGhhLT5tb2RlbF9kZXNjKTsKIAlxbF9sb2cocWxfbG9nX2luZm8sIGJhc2VfdmhhLCAweDAwZmMsCiAJICAgICJJU1AlMDRYOiAlcyBAICVzIGhkbWElYyBob3N0Iz0lbGQgZnc9JXMuXG4iLAotCSAgICBwZGV2LT5kZXZpY2UsIGhhLT5pc3Bfb3BzLT5wY2lfaW5mb19zdHIoYmFzZV92aGEsIHBjaV9pbmZvKSwKKwkgICAgcGRldi0+ZGV2aWNlLCBoYS0+aXNwX29wcy0+cGNpX2luZm9fc3RyKGJhc2VfdmhhLCBwY2lfaW5mbywKKwkJCQkJCSAgICAgICBzaXplb2YocGNpX2luZm8pKSwKIAkgICAgcGNpX25hbWUocGRldiksIGhhLT5mbGFncy5lbmFibGVfNjRiaXRfYWRkcmVzc2luZyA/ICcrJyA6ICctJywKIAkgICAgYmFzZV92aGEtPmhvc3Rfbm8sCiAJICAgIGhhLT5pc3Bfb3BzLT5md192ZXJzaW9uX3N0cihiYXNlX3ZoYSwgZndfc3RyLCBzaXplb2YoZndfc3RyKSkpOwpAQCAtNDU5OCw2ICs0NTg1LDcgQEAgcWxhMngwMF9mcmVlX2Z3X2R1bXAoc3RydWN0IHFsYV9od19kYXRhICpoYSkKIAogCWhhLT5mY2UgPSBOVUxMOwogCWhhLT5mY2VfZG1hID0gMDsKKwloYS0+ZmxhZ3MuZmNlX2VuYWJsZWQgPSAwOwogCWhhLT5lZnQgPSBOVUxMOwogCWhhLT5lZnRfZG1hID0gMDsKIAloYS0+ZndfZHVtcGVkID0gMDsKQEAgLTQ3MTYsNyArNDcwNCw3IEBAIHFsYTJ4MDBfbWVtX2ZyZWUoc3RydWN0IHFsYV9od19kYXRhICpoYSkKIAltZW1wb29sX2Rlc3Ryb3koaGEtPmN0eF9tZW1wb29sKTsKIAloYS0+Y3R4X21lbXBvb2wgPSBOVUxMOwogCi0JaWYgKHFsMnhlbmFibGVkaWYpIHsKKwlpZiAocWwyeGVuYWJsZWRpZiAmJiBoYS0+ZGlmX2J1bmRsX3Bvb2wpIHsKIAkJc3RydWN0IGRzZF9kbWEgKmRzZCwgKm54dDsKIAogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZHNkLCBueHQsICZoYS0+cG9vbC51bnVzYWJsZS5oZWFkLApAQCAtNDczOSw4ICs0NzI3LDcgQEAgcWxhMngwMF9tZW1fZnJlZShzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhKQogCQl9CiAJfQogCi0JaWYgKGhhLT5kaWZfYnVuZGxfcG9vbCkKLQkJZG1hX3Bvb2xfZGVzdHJveShoYS0+ZGlmX2J1bmRsX3Bvb2wpOworCWRtYV9wb29sX2Rlc3Ryb3koaGEtPmRpZl9idW5kbF9wb29sKTsKIAloYS0+ZGlmX2J1bmRsX3Bvb2wgPSBOVUxMOwogCiAJcWx0X21lbV9mcmVlKGhhKTsKQEAgLTQ4MTIsNyArNDc5OSw3IEBAIHN0cnVjdCBzY3NpX3FsYV9ob3N0ICpxbGEyeDAwX2NyZWF0ZV9ob3N0KHN0cnVjdCBzY3NpX2hvc3RfdGVtcGxhdGUgKnNodCwKIAlpZiAoIXZoYS0+Z25sLmwpIHsKIAkJcWxfbG9nKHFsX2xvZ19mYXRhbCwgdmhhLCAweGQwNGEsCiAJCSAgICAiQWxsb2MgZmFpbGVkIGZvciBuYW1lIGxpc3QuXG4iKTsKLQkJc2NzaV9yZW1vdmVfaG9zdCh2aGEtPmhvc3QpOworCQlzY3NpX2hvc3RfcHV0KHZoYS0+aG9zdCk7CiAJCXJldHVybiBOVUxMOwogCX0KIApAQCAtNDgyNSw3ICs0ODEyLDcgQEAgc3RydWN0IHNjc2lfcWxhX2hvc3QgKnFsYTJ4MDBfY3JlYXRlX2hvc3Qoc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSAqc2h0LAogCQlkbWFfZnJlZV9jb2hlcmVudCgmaGEtPnBkZXYtPmRldiwgdmhhLT5nbmwuc2l6ZSwKIAkJICAgIHZoYS0+Z25sLmwsIHZoYS0+Z25sLmxkbWEpOwogCQl2aGEtPmdubC5sID0gTlVMTDsKLQkJc2NzaV9yZW1vdmVfaG9zdCh2aGEtPmhvc3QpOworCQlzY3NpX2hvc3RfcHV0KHZoYS0+aG9zdCk7CiAJCXJldHVybiBOVUxMOwogCX0KIAlJTklUX0RFTEFZRURfV09SSygmdmhhLT5zY2FuLnNjYW5fd29yaywgcWxhX3NjYW5fd29ya19mbik7CkBAIC01MDU0LDggKzUwNDEsMTAgQEAgdm9pZCBxbGEyNHh4X2NyZWF0ZV9uZXdfc2VzcyhzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBzdHJ1Y3QgcWxhX3dvcmtfZXZ0ICplKQogCQkJCSAgICIlcyAlOHBoQyBtZW0gYWxsb2MgZmFpbC5cbiIsCiAJCQkJICAgX19mdW5jX18sIGUtPnUubmV3X3Nlc3MucG9ydF9uYW1lKTsKIAotCQkJaWYgKHBsYSkKKwkJCWlmIChwbGEpIHsKKwkJCQlsaXN0X2RlbCgmcGxhLT5saXN0KTsKIAkJCQlrbWVtX2NhY2hlX2ZyZWUocWxhX3RndF9wbG9naV9jYWNoZXAsIHBsYSk7CisJCQl9CiAJCQlyZXR1cm47CiAJCX0KIApAQCAtNTA4Niw2ICs1MDc1LDcgQEAgdm9pZCBxbGEyNHh4X2NyZWF0ZV9uZXdfc2VzcyhzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBzdHJ1Y3QgcWxhX3dvcmtfZXZ0ICplKQogCWlmIChmY3BvcnQpIHsKIAkJZmNwb3J0LT5pZF9jaGFuZ2VkID0gMTsKIAkJZmNwb3J0LT5zY2FuX3N0YXRlID0gUUxBX0ZDUE9SVF9GT1VORDsKKwkJZmNwb3J0LT5jaGlwX3Jlc2V0ID0gdmhhLT5ody0+YmFzZV9xcGFpci0+Y2hpcF9yZXNldDsKIAkJbWVtY3B5KGZjcG9ydC0+bm9kZV9uYW1lLCBlLT51Lm5ld19zZXNzLm5vZGVfbmFtZSwgV1dOX1NJWkUpOwogCiAJCWlmIChwbGEpIHsKQEAgLTUxNjUsOCArNTE1NSwxMCBAQCB2b2lkIHFsYTI0eHhfY3JlYXRlX25ld19zZXNzKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIHN0cnVjdCBxbGFfd29ya19ldnQgKmUpCiAKIAlpZiAoZnJlZV9mY3BvcnQpIHsKIAkJcWxhMngwMF9mcmVlX2ZjcG9ydChmY3BvcnQpOwotCQlpZiAocGxhKQorCQlpZiAocGxhKSB7CisJCQlsaXN0X2RlbCgmcGxhLT5saXN0KTsKIAkJCWttZW1fY2FjaGVfZnJlZShxbGFfdGd0X3Bsb2dpX2NhY2hlcCwgcGxhKTsKKwkJfQogCX0KIH0KIApAQCAtNTM0Niw5ICs1MzM4LDggQEAgdm9pZCBxbGEyeDAwX3JlbG9naW4oc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSkKIAkJCX0gZWxzZSB7CiAJCQkJaWYgKHZoYS0+aHctPmN1cnJlbnRfdG9wb2xvZ3kgIT0gSVNQX0NGR19OTCkgewogCQkJCQltZW1zZXQoJmVhLCAwLCBzaXplb2YoZWEpKTsKLQkJCQkJZWEuZXZlbnQgPSBGQ01FX1JFTE9HSU47CiAJCQkJCWVhLmZjcG9ydCA9IGZjcG9ydDsKLQkJCQkJcWxhMngwMF9mY3BvcnRfZXZlbnRfaGFuZGxlcih2aGEsICZlYSk7CisJCQkJCXFsYTI0eHhfaGFuZGxlX3JlbG9naW5fZXZlbnQodmhhLCAmZWEpOwogCQkJCX0gZWxzZSBpZiAodmhhLT5ody0+Y3VycmVudF90b3BvbG9neSA9PQogCQkJCSAgICBJU1BfQ0ZHX05MKSB7CiAJCQkJCWZjcG9ydC0+bG9naW5fcmV0cnktLTsKQEAgLTU2ODYsNyArNTY3Nyw2IEBAIHFsYTgzeHhfaWRjX2xvY2tfcmVjb3Zlcnkoc2NzaV9xbGFfaG9zdF90ICpiYXNlX3ZoYSkKIHZvaWQKIHFsYTgzeHhfaWRjX2xvY2soc2NzaV9xbGFfaG9zdF90ICpiYXNlX3ZoYSwgdWludDE2X3QgcmVxdWVzdGVyX2lkKQogewotCXVpbnQxNl90IG9wdGlvbnMgPSAocmVxdWVzdGVyX2lkIDw8IDE1KSB8IEJJVF82OwogCXVpbnQzMl90IGRhdGE7CiAJdWludDMyX3QgbG9ja19vd25lcjsKIAlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gYmFzZV92aGEtPmh3OwpAQCAtNTcxOSwyMiArNTcwOSw2IEBAIHFsYTgzeHhfaWRjX2xvY2soc2NzaV9xbGFfaG9zdF90ICpiYXNlX3ZoYSwgdWludDE2X3QgcmVxdWVzdGVyX2lkKQogCX0KIAogCXJldHVybjsKLQotCS8qIFhYWDogSURDLWxvY2sgaW1wbGVtZW50YXRpb24gdXNpbmcgYWNjZXNzLWNvbnRyb2wgbWJ4ICovCi1yZXRyeV9sb2NrMjoKLQlpZiAocWxhODN4eF9hY2Nlc3NfY29udHJvbChiYXNlX3ZoYSwgb3B0aW9ucywgMCwgMCwgTlVMTCkpIHsKLQkJcWxfZGJnKHFsX2RiZ19wM3AsIGJhc2VfdmhhLCAweGIwNzIsCi0JCSAgICAiRmFpbGVkIHRvIGFjcXVpcmUgSURDIGxvY2suIHJldHJ5aW5nLi4uXG4iKTsKLQkJLyogUmV0cnkvUGVyZm9ybSBJREMtTG9jayByZWNvdmVyeSAqLwotCQlpZiAocWxhODN4eF9pZGNfbG9ja19yZWNvdmVyeShiYXNlX3ZoYSkgPT0gUUxBX1NVQ0NFU1MpIHsKLQkJCXFsYTgzeHhfd2FpdF9sb2dpYygpOwotCQkJZ290byByZXRyeV9sb2NrMjsKLQkJfSBlbHNlCi0JCQlxbF9sb2cocWxfbG9nX3dhcm4sIGJhc2VfdmhhLCAweGIwNzYsCi0JCQkgICAgIklEQyBMb2NrIHJlY292ZXJ5IEZBSUxFRC5cbiIpOwotCX0KLQotCXJldHVybjsKIH0KIAogdm9pZApAQCAtNzE1Niw2ICs3MTMwLDcgQEAgc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSBxbGEyeHh4X2RyaXZlcl90ZW1wbGF0ZSA9IHsKIAogCS5zdXBwb3J0ZWRfbW9kZQkJPSBNT0RFX0lOSVRJQVRPUiwKIAkudHJhY2tfcXVldWVfZGVwdGgJPSAxLAorCS5jbWRfc2l6ZQkJPSBzaXplb2Yoc3JiX3QpLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZXJyb3JfaGFuZGxlcnMgcWxhMnh4eF9lcnJfaGFuZGxlciA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9zdXAuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9zdXAuYwppbmRleCAxZWI4MjM4Li5mMmQ1MTE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfc3VwLmMKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX3N1cC5jCkBAIC00NzMsMjIgKzQ3MywyNCBAQCBxbGEyNHh4X3JlYWRfZmxhc2hfZHdvcmQoc3RydWN0IHFsYV9od19kYXRhICpoYSwgdWludDMyX3QgYWRkciwgdWludDMyX3QgKmRhdGEpCiAJcmV0dXJuIFFMQV9GVU5DVElPTl9USU1FT1VUOwogfQogCi11aW50MzJfdCAqCitpbnQKIHFsYTI0eHhfcmVhZF9mbGFzaF9kYXRhKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCB1aW50MzJfdCAqZHdwdHIsIHVpbnQzMl90IGZhZGRyLAogICAgIHVpbnQzMl90IGR3b3JkcykKIHsKIAl1bG9uZyBpOworCWludCByZXQgPSBRTEFfU1VDQ0VTUzsKIAlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gdmhhLT5odzsKIAogCS8qIER3b3JkIHJlYWRzIHRvIGZsYXNoLiAqLwogCWZhZGRyID0gIGZsYXNoX2RhdGFfYWRkcihoYSwgZmFkZHIpOwogCWZvciAoaSA9IDA7IGkgPCBkd29yZHM7IGkrKywgZmFkZHIrKywgZHdwdHIrKykgewotCQlpZiAocWxhMjR4eF9yZWFkX2ZsYXNoX2R3b3JkKGhhLCBmYWRkciwgZHdwdHIpKQorCQlyZXQgPSBxbGEyNHh4X3JlYWRfZmxhc2hfZHdvcmQoaGEsIGZhZGRyLCBkd3B0cik7CisJCWlmIChyZXQgIT0gUUxBX1NVQ0NFU1MpCiAJCQlicmVhazsKIAkJY3B1X3RvX2xlMzJzKGR3cHRyKTsKIAl9CiAKLQlyZXR1cm4gZHdwdHI7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludApAQCAtNjgwLDggKzY4Miw4IEBAIHFsYTJ4eHhfZ2V0X2ZsdF9pbmZvKHNjc2lfcWxhX2hvc3RfdCAqdmhhLCB1aW50MzJfdCBmbHRfYWRkcikKIAogCWhhLT5mbHRfcmVnaW9uX2ZsdCA9IGZsdF9hZGRyOwogCXdwdHIgPSAodWludDE2X3QgKiloYS0+Zmx0OwotCXFsYTI0eHhfcmVhZF9mbGFzaF9kYXRhKHZoYSwgKHZvaWQgKilmbHQsIGZsdF9hZGRyLAotCSAgICAoc2l6ZW9mKHN0cnVjdCBxbGFfZmx0X2hlYWRlcikgKyBGTFRfUkVHSU9OU19TSVpFKSA+PiAyKTsKKwloYS0+aXNwX29wcy0+cmVhZF9vcHRyb20odmhhLCAodm9pZCAqKWZsdCwgZmx0X2FkZHIgPDwgMiwKKwkgICAgKHNpemVvZihzdHJ1Y3QgcWxhX2ZsdF9oZWFkZXIpICsgRkxUX1JFR0lPTlNfU0laRSkpOwogCiAJaWYgKGxlMTZfdG9fY3B1KCp3cHRyKSA9PSAweGZmZmYpCiAJCWdvdG8gbm9fZmxhc2hfZGF0YTsKQEAgLTk0OCwxMSArOTUwLDExIEBAIHFsYTJ4eHhfZ2V0X2ZkdF9pbmZvKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQogCXN0cnVjdCByZXFfcXVlICpyZXEgPSBoYS0+cmVxX3FfbWFwWzBdOwogCXVpbnQxNl90IGNudCwgY2hrc3VtOwogCXVpbnQxNl90ICp3cHRyID0gKHZvaWQgKilyZXEtPnJpbmc7Ci0Jc3RydWN0IHFsYV9mZHRfbGF5b3V0ICpmZHQgPSAodm9pZCAqKXJlcS0+cmluZzsKKwlzdHJ1Y3QgcWxhX2ZkdF9sYXlvdXQgKmZkdCA9IChzdHJ1Y3QgcWxhX2ZkdF9sYXlvdXQgKilyZXEtPnJpbmc7CiAJdWludDhfdAltYW5faWQsIGZsYXNoX2lkOwogCXVpbnQxNl90IG1pZCA9IDAsIGZpZCA9IDA7CiAKLQlxbGEyNHh4X3JlYWRfZmxhc2hfZGF0YSh2aGEsICh2b2lkICopZmR0LCBoYS0+Zmx0X3JlZ2lvbl9mZHQsCisJaGEtPmlzcF9vcHMtPnJlYWRfb3B0cm9tKHZoYSwgZmR0LCBoYS0+Zmx0X3JlZ2lvbl9mZHQgPDwgMiwKIAkgICAgT1BUUk9NX0JVUlNUX0RXT1JEUyk7CiAJaWYgKGxlMTZfdG9fY3B1KCp3cHRyKSA9PSAweGZmZmYpCiAJCWdvdG8gbm9fZmxhc2hfZGF0YTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV90YXJnZXQuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV90YXJnZXQuYwppbmRleCAxYzFmNjNiLi4wZmZkYTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfdGFyZ2V0LmMKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX3RhcmdldC5jCkBAIC0xODgsMTggKzE4OCwxNyBAQCBzdGF0aWMgaW5saW5lIGludCBxbHRfaXNzdWVfbWFya2VyKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGludCB2aGFfbG9ja2VkKQogCiBzdGF0aWMgaW5saW5lCiBzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqcWx0X2ZpbmRfaG9zdF9ieV9kX2lkKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCi0JdWludDhfdCAqZF9pZCkKKwkJCQkJICAgIGJlX2lkX3QgZF9pZCkKIHsKIAlzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqaG9zdDsKLQl1aW50MzJfdCBrZXkgPSAwOworCXVpbnQzMl90IGtleTsKIAotCWlmICgodmhhLT5kX2lkLmIuYXJlYSA9PSBkX2lkWzFdKSAmJiAodmhhLT5kX2lkLmIuZG9tYWluID09IGRfaWRbMF0pICYmCi0JICAgICh2aGEtPmRfaWQuYi5hbF9wYSA9PSBkX2lkWzJdKSkKKwlpZiAodmhhLT5kX2lkLmIuYXJlYSA9PSBkX2lkLmFyZWEgJiYKKwkgICAgdmhhLT5kX2lkLmIuZG9tYWluID09IGRfaWQuZG9tYWluICYmCisJICAgIHZoYS0+ZF9pZC5iLmFsX3BhID09IGRfaWQuYWxfcGEpCiAJCXJldHVybiB2aGE7CiAKLQlrZXkgID0gKHVpbnQzMl90KWRfaWRbMF0gPDwgMTY7Ci0Ja2V5IHw9ICh1aW50MzJfdClkX2lkWzFdIDw8ICA4OwotCWtleSB8PSAodWludDMyX3QpZF9pZFsyXTsKKwlrZXkgPSBiZV90b19wb3J0X2lkKGRfaWQpLmIyNDsKIAogCWhvc3QgPSBidHJlZV9sb29rdXAzMigmdmhhLT5ody0+dGd0Lmhvc3RfbWFwLCBrZXkpOwogCWlmICghaG9zdCkKQEAgLTM1Nyw5ICszNTYsOSBAQCBzdGF0aWMgYm9vbCBxbHRfMjR4eF9hdGlvX3BrdF9hbGxfdnBzKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCiAJCQlxbF9kYmcocWxfZGJnX3RndCwgdmhhLCAweGUwM2UsCiAJCQkgICAgInFsYV90YXJnZXQoJWQpOiBSZWNlaXZlZCBBVElPX1RZUEU3ICIKIAkJCSAgICAid2l0aCB1bmtub3duIGRfaWQgJXg6JXg6JXhcbiIsIHZoYS0+dnBfaWR4LAotCQkJICAgIGF0aW8tPnUuaXNwMjQuZmNwX2hkci5kX2lkWzBdLAotCQkJICAgIGF0aW8tPnUuaXNwMjQuZmNwX2hkci5kX2lkWzFdLAotCQkJICAgIGF0aW8tPnUuaXNwMjQuZmNwX2hkci5kX2lkWzJdKTsKKwkJCSAgICBhdGlvLT51LmlzcDI0LmZjcF9oZHIuZF9pZC5kb21haW4sCisJCQkgICAgYXRpby0+dS5pc3AyNC5mY3BfaGRyLmRfaWQuYXJlYSwKKwkJCSAgICBhdGlvLT51LmlzcDI0LmZjcF9oZHIuZF9pZC5hbF9wYSk7CiAKIAogCQkJcWx0X3F1ZXVlX3Vua25vd25fYXRpbyh2aGEsIGF0aW8sIGhhX2xvY2tlZCk7CkBAIC01NjAsMTAgKzU1OSw4IEBAIHN0YXRpYyBpbnQgcWxhMjR4eF9wb3N0X25hY2tfd29yayhzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBmY19wb3J0X3QgKmZjcG9ydCwKIAlyZXR1cm4gcWxhMngwMF9wb3N0X3dvcmsodmhhLCBlKTsKIH0KIAotc3RhdGljCi12b2lkIHFsYTJ4MDBfYXN5bmNfbmFja19zcF9kb25lKHZvaWQgKnMsIGludCByZXMpCitzdGF0aWMgdm9pZCBxbGEyeDAwX2FzeW5jX25hY2tfc3BfZG9uZShzcmJfdCAqc3AsIGludCByZXMpCiB7Ci0Jc3RydWN0IHNyYiAqc3AgPSAoc3RydWN0IHNyYiAqKXM7CiAJc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSA9IHNwLT52aGE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIApAQCAtNzg5LDYgKzc4Niw4IEBAIHFsdF9wbG9naV9hY2tfZmluZF9hZGQoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwgcG9ydF9pZF90ICppZCwKIHsKIAlzdHJ1Y3QgcWx0X3Bsb2dpX2Fja190ICpwbGE7CiAKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2aGEtPmh3LT5oYXJkd2FyZV9sb2NrKTsKKwogCWxpc3RfZm9yX2VhY2hfZW50cnkocGxhLCAmdmhhLT5wbG9naV9hY2tfbGlzdCwgbGlzdCkgewogCQlpZiAocGxhLT5pZC5iMjQgPT0gaWQtPmIyNCkgewogCQkJcWxfZGJnKHFsX2RiZ19kaXNjICsgcWxfZGJnX3ZlcmJvc2UsIHZoYSwgMHgyMTBkLApAQCAtMTIwOSw3ICsxMjA4LDYgQEAgc3RhdGljIHZvaWQgcWxhMjR4eF9jaGtfZmNwX3N0YXRlKHN0cnVjdCBmY19wb3J0ICpzZXNzKQogCQlzZXNzLT5sb2dvdXRfb25fZGVsZXRlID0gMDsKIAkJc2Vzcy0+bG9nb19hY2tfbmVlZGVkID0gMDsKIAkJc2Vzcy0+ZndfbG9naW5fc3RhdGUgPSBEU0NfTFNfUE9SVF9VTkFWQUlMOwotCQlzZXNzLT5zY2FuX3N0YXRlID0gMDsKIAl9CiB9CiAKQEAgLTEyODQsMTMgKzEyODIsMTIgQEAgc3RhdGljIHZvaWQgcWx0X2NsZWFyX3RndF9kYihzdHJ1Y3QgcWxhX3RndCAqdGd0KQogCS8qIEF0IHRoaXMgcG9pbnQgdGd0IGNvdWxkIGJlIGFscmVhZHkgZGVhZCAqLwogfQogCi1zdGF0aWMgaW50IHFsYTI0eHhfZ2V0X2xvb3BfaWQoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwgY29uc3QgdWludDhfdCAqc19pZCwKK3N0YXRpYyBpbnQgcWxhMjR4eF9nZXRfbG9vcF9pZChzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLCBiZV9pZF90IHNfaWQsCiAJdWludDE2X3QgKmxvb3BfaWQpCiB7CiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHZoYS0+aHc7CiAJZG1hX2FkZHJfdCBnaWRfbGlzdF9kbWE7Ci0Jc3RydWN0IGdpZF9saXN0X2luZm8gKmdpZF9saXN0OwotCWNoYXIgKmlkX2l0ZXI7CisJc3RydWN0IGdpZF9saXN0X2luZm8gKmdpZF9saXN0LCAqZ2lkOwogCWludCByZXMsIHJjLCBpOwogCXVpbnQxNl90IGVudHJpZXM7CiAKQEAgLTEzMTMsMTkgKzEzMTAsMTcgQEAgc3RhdGljIGludCBxbGEyNHh4X2dldF9sb29wX2lkKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIGNvbnN0IHVpbnQ4X3QgKnNfaWQsCiAJCWdvdG8gb3V0X2ZyZWVfaWRfbGlzdDsKIAl9CiAKLQlpZF9pdGVyID0gKGNoYXIgKilnaWRfbGlzdDsKKwlnaWQgPSBnaWRfbGlzdDsKIAlyZXMgPSAtRU5PRU5UOwogCWZvciAoaSA9IDA7IGkgPCBlbnRyaWVzOyBpKyspIHsKLQkJc3RydWN0IGdpZF9saXN0X2luZm8gKmdpZCA9IChzdHJ1Y3QgZ2lkX2xpc3RfaW5mbyAqKWlkX2l0ZXI7Ci0KLQkJaWYgKChnaWQtPmFsX3BhID09IHNfaWRbMl0pICYmCi0JCSAgICAoZ2lkLT5hcmVhID09IHNfaWRbMV0pICYmCi0JCSAgICAoZ2lkLT5kb21haW4gPT0gc19pZFswXSkpIHsKKwkJaWYgKGdpZC0+YWxfcGEgPT0gc19pZC5hbF9wYSAmJgorCQkgICAgZ2lkLT5hcmVhID09IHNfaWQuYXJlYSAmJgorCQkgICAgZ2lkLT5kb21haW4gPT0gc19pZC5kb21haW4pIHsKIAkJCSpsb29wX2lkID0gbGUxNl90b19jcHUoZ2lkLT5sb29wX2lkKTsKIAkJCXJlcyA9IDA7CiAJCQlicmVhazsKIAkJfQotCQlpZF9pdGVyICs9IGhhLT5naWRfbGlzdF9pbmZvX3NpemU7CisJCWdpZCA9ICh2b2lkICopZ2lkICsgaGEtPmdpZF9saXN0X2luZm9fc2l6ZTsKIAl9CiAKIG91dF9mcmVlX2lkX2xpc3Q6CkBAIC0xNTgyLDExICsxNTc3LDEwIEBAIHN0YXRpYyB2b2lkIHFsdF9yZWxlYXNlKHN0cnVjdCBxbGFfdGd0ICp0Z3QpCiAJc3RydWN0IHFsYV9xcGFpcl9oaW50ICpoOwogCXN0cnVjdCBxbGFfaHdfZGF0YSAqaGEgPSB2aGEtPmh3OwogCi0JaWYgKCh2aGEtPnZoYV90Z3QucWxhX3RndCAhPSBOVUxMKSAmJiAhdGd0LT50Z3Rfc3RvcCAmJgotCSAgICAhdGd0LT50Z3Rfc3RvcHBlZCkKKwlpZiAoIXRndC0+dGd0X3N0b3AgJiYgIXRndC0+dGd0X3N0b3BwZWQpCiAJCXFsdF9zdG9wX3BoYXNlMSh0Z3QpOwogCi0JaWYgKCh2aGEtPnZoYV90Z3QucWxhX3RndCAhPSBOVUxMKSAmJiAhdGd0LT50Z3Rfc3RvcHBlZCkKKwlpZiAoIXRndC0+dGd0X3N0b3BwZWQpCiAJCXFsdF9zdG9wX3BoYXNlMih0Z3QpOwogCiAJZm9yIChpID0gMDsgaSA8IHZoYS0+aHctPm1heF9xcGFpcnMgKyAxOyBpKyspIHsKQEAgLTE3NzIsMTIgKzE3NjYsOCBAQCBzdGF0aWMgaW50IHFsdF9idWlsZF9hYnRzX3Jlc3BfaW9jYihzdHJ1Y3QgcWxhX3RndF9tZ210X2NtZCAqbWNtZCkKIAlyZXNwLT5mY3BfaGRyX2xlLmZfY3RsWzFdID0gKnArKzsKIAlyZXNwLT5mY3BfaGRyX2xlLmZfY3RsWzJdID0gKnA7CiAKLQlyZXNwLT5mY3BfaGRyX2xlLmRfaWRbMF0gPSBhYnRzLT5mY3BfaGRyX2xlLnNfaWRbMF07Ci0JcmVzcC0+ZmNwX2hkcl9sZS5kX2lkWzFdID0gYWJ0cy0+ZmNwX2hkcl9sZS5zX2lkWzFdOwotCXJlc3AtPmZjcF9oZHJfbGUuZF9pZFsyXSA9IGFidHMtPmZjcF9oZHJfbGUuc19pZFsyXTsKLQlyZXNwLT5mY3BfaGRyX2xlLnNfaWRbMF0gPSBhYnRzLT5mY3BfaGRyX2xlLmRfaWRbMF07Ci0JcmVzcC0+ZmNwX2hkcl9sZS5zX2lkWzFdID0gYWJ0cy0+ZmNwX2hkcl9sZS5kX2lkWzFdOwotCXJlc3AtPmZjcF9oZHJfbGUuc19pZFsyXSA9IGFidHMtPmZjcF9oZHJfbGUuZF9pZFsyXTsKKwlyZXNwLT5mY3BfaGRyX2xlLmRfaWQgPSBhYnRzLT5mY3BfaGRyX2xlLnNfaWQ7CisJcmVzcC0+ZmNwX2hkcl9sZS5zX2lkID0gYWJ0cy0+ZmNwX2hkcl9sZS5kX2lkOwogCiAJcmVzcC0+ZXhjaGFuZ2VfYWRkcl90b19hYm9ydCA9IGFidHMtPmV4Y2hhbmdlX2FkZHJfdG9fYWJvcnQ7CiAJaWYgKG1jbWQtPmZjX3RtX3JzcCA9PSBGQ1BfVE1GX0NNUEwpIHsKQEAgLTE4NDgsMTkgKzE4MzgsMTEgQEAgc3RhdGljIHZvaWQgcWx0XzI0eHhfc2VuZF9hYnRzX3Jlc3Aoc3RydWN0IHFsYV9xcGFpciAqcXBhaXIsCiAJcmVzcC0+ZmNwX2hkcl9sZS5mX2N0bFsxXSA9ICpwKys7CiAJcmVzcC0+ZmNwX2hkcl9sZS5mX2N0bFsyXSA9ICpwOwogCWlmIChpZHNfcmV2ZXJzZWQpIHsKLQkJcmVzcC0+ZmNwX2hkcl9sZS5kX2lkWzBdID0gYWJ0cy0+ZmNwX2hkcl9sZS5kX2lkWzBdOwotCQlyZXNwLT5mY3BfaGRyX2xlLmRfaWRbMV0gPSBhYnRzLT5mY3BfaGRyX2xlLmRfaWRbMV07Ci0JCXJlc3AtPmZjcF9oZHJfbGUuZF9pZFsyXSA9IGFidHMtPmZjcF9oZHJfbGUuZF9pZFsyXTsKLQkJcmVzcC0+ZmNwX2hkcl9sZS5zX2lkWzBdID0gYWJ0cy0+ZmNwX2hkcl9sZS5zX2lkWzBdOwotCQlyZXNwLT5mY3BfaGRyX2xlLnNfaWRbMV0gPSBhYnRzLT5mY3BfaGRyX2xlLnNfaWRbMV07Ci0JCXJlc3AtPmZjcF9oZHJfbGUuc19pZFsyXSA9IGFidHMtPmZjcF9oZHJfbGUuc19pZFsyXTsKKwkJcmVzcC0+ZmNwX2hkcl9sZS5kX2lkID0gYWJ0cy0+ZmNwX2hkcl9sZS5kX2lkOworCQlyZXNwLT5mY3BfaGRyX2xlLnNfaWQgPSBhYnRzLT5mY3BfaGRyX2xlLnNfaWQ7CiAJfSBlbHNlIHsKLQkJcmVzcC0+ZmNwX2hkcl9sZS5kX2lkWzBdID0gYWJ0cy0+ZmNwX2hkcl9sZS5zX2lkWzBdOwotCQlyZXNwLT5mY3BfaGRyX2xlLmRfaWRbMV0gPSBhYnRzLT5mY3BfaGRyX2xlLnNfaWRbMV07Ci0JCXJlc3AtPmZjcF9oZHJfbGUuZF9pZFsyXSA9IGFidHMtPmZjcF9oZHJfbGUuc19pZFsyXTsKLQkJcmVzcC0+ZmNwX2hkcl9sZS5zX2lkWzBdID0gYWJ0cy0+ZmNwX2hkcl9sZS5kX2lkWzBdOwotCQlyZXNwLT5mY3BfaGRyX2xlLnNfaWRbMV0gPSBhYnRzLT5mY3BfaGRyX2xlLmRfaWRbMV07Ci0JCXJlc3AtPmZjcF9oZHJfbGUuc19pZFsyXSA9IGFidHMtPmZjcF9oZHJfbGUuZF9pZFsyXTsKKwkJcmVzcC0+ZmNwX2hkcl9sZS5kX2lkID0gYWJ0cy0+ZmNwX2hkcl9sZS5zX2lkOworCQlyZXNwLT5mY3BfaGRyX2xlLnNfaWQgPSBhYnRzLT5mY3BfaGRyX2xlLmRfaWQ7CiAJfQogCXJlc3AtPmV4Y2hhbmdlX2FkZHJfdG9fYWJvcnQgPSBhYnRzLT5leGNoYW5nZV9hZGRyX3RvX2Fib3J0OwogCWlmIChzdGF0dXMgPT0gRkNQX1RNRl9DTVBMKSB7CkBAIC0xOTI3LDE4ICsxOTA5LDE0IEBAIHN0YXRpYyB2b2lkIHFsdF8yNHh4X3JldHJ5X3Rlcm1fZXhjaGFuZ2Uoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwKIAl0bXAgPSAoQ1RJTzdfRkxBR1NfU1RBVFVTX01PREVfMSB8IENUSU83X0ZMQUdTX1RFUk1JTkFURSk7CiAKIAlpZiAobWNtZCkgewotCQljdGlvLT5pbml0aWF0b3JfaWRbMF0gPSBlbnRyeS0+ZmNwX2hkcl9sZS5zX2lkWzBdOwotCQljdGlvLT5pbml0aWF0b3JfaWRbMV0gPSBlbnRyeS0+ZmNwX2hkcl9sZS5zX2lkWzFdOwotCQljdGlvLT5pbml0aWF0b3JfaWRbMl0gPSBlbnRyeS0+ZmNwX2hkcl9sZS5zX2lkWzJdOworCQljdGlvLT5pbml0aWF0b3JfaWQgPSBlbnRyeS0+ZmNwX2hkcl9sZS5zX2lkOwogCiAJCWlmIChtY21kLT5mbGFncyAmIFFMQTI0WFhfTUdNVF9BQk9SVF9JT19BVFRSX1ZBTElEKQogCQkJdG1wIHw9IChtY21kLT5hYm9ydF9pb19hdHRyIDw8IDkpOwogCQllbHNlIGlmIChxcGFpci0+cmV0cnlfdGVybV9jbnQgJiAxKQogCQkJdG1wIHw9ICgweDQgPDwgOSk7CiAJfSBlbHNlIHsKLQkJY3Rpby0+aW5pdGlhdG9yX2lkWzBdID0gZW50cnktPmZjcF9oZHJfbGUuZF9pZFswXTsKLQkJY3Rpby0+aW5pdGlhdG9yX2lkWzFdID0gZW50cnktPmZjcF9oZHJfbGUuZF9pZFsxXTsKLQkJY3Rpby0+aW5pdGlhdG9yX2lkWzJdID0gZW50cnktPmZjcF9oZHJfbGUuZF9pZFsyXTsKKwkJY3Rpby0+aW5pdGlhdG9yX2lkID0gZW50cnktPmZjcF9oZHJfbGUuZF9pZDsKIAogCQlpZiAocXBhaXItPnJldHJ5X3Rlcm1fY250ICYgMSkKIAkJCXRtcCB8PSAoMHg0IDw8IDkpOwpAQCAtMTk3Miw4ICsxOTUwLDcgQEAgc3RhdGljIHZvaWQgcWx0XzI0eHhfcmV0cnlfdGVybV9leGNoYW5nZShzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLAogICogWFhYIGRvZXMgbm90IGdvIHRocm91Z2ggdGhlIGxpc3Qgb2Ygb3RoZXIgcG9ydCAod2hpY2ggbWF5IGhhdmUgY21kcwogICogICAgIGZvciB0aGUgc2FtZSBsdW4pCiAgKi8KLXN0YXRpYyB2b2lkIGFib3J0X2NtZHNfZm9yX2x1bihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLAotCQkJICAgICAgICB1NjQgbHVuLCB1aW50OF90ICpzX2lkKQorc3RhdGljIHZvaWQgYWJvcnRfY21kc19mb3JfbHVuKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIHU2NCBsdW4sIGJlX2lkX3Qgc19pZCkKIHsKIAlzdHJ1Y3QgcWxhX3RndF9zZXNzX29wICpvcDsKIAlzdHJ1Y3QgcWxhX3RndF9jbWQgKmNtZDsKQEAgLTIxNDksNyArMjEyNiw3IEBAIHN0YXRpYyB2b2lkIHFsdF8yNHh4X2hhbmRsZV9hYnRzKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCiAJc3RydWN0IHFsYV9od19kYXRhICpoYSA9IHZoYS0+aHc7CiAJc3RydWN0IGZjX3BvcnQgKnNlc3M7CiAJdWludDMyX3QgdGFnID0gYWJ0cy0+ZXhjaGFuZ2VfYWRkcl90b19hYm9ydDsKLQl1aW50OF90IHNfaWRbM107CisJYmVfaWRfdCBzX2lkOwogCWludCByYzsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC0yMTczLDEzICsyMTUwLDExIEBAIHN0YXRpYyB2b2lkIHFsdF8yNHh4X2hhbmRsZV9hYnRzKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCiAKIAlxbF9kYmcocWxfZGJnX3RndF9tZ3QsIHZoYSwgMHhmMDExLAogCSAgICAicWxhX3RhcmdldCglZCk6IHRhc2sgYWJvcnQgKHNfaWQ9JXg6JXg6JXgsICIKLQkgICAgInRhZz0lZCwgcGFyYW09JXgpXG4iLCB2aGEtPnZwX2lkeCwgYWJ0cy0+ZmNwX2hkcl9sZS5zX2lkWzJdLAotCSAgICBhYnRzLT5mY3BfaGRyX2xlLnNfaWRbMV0sIGFidHMtPmZjcF9oZHJfbGUuc19pZFswXSwgdGFnLAorCSAgICAidGFnPSVkLCBwYXJhbT0leClcbiIsIHZoYS0+dnBfaWR4LCBhYnRzLT5mY3BfaGRyX2xlLnNfaWQuZG9tYWluLAorCSAgICBhYnRzLT5mY3BfaGRyX2xlLnNfaWQuYXJlYSwgYWJ0cy0+ZmNwX2hkcl9sZS5zX2lkLmFsX3BhLCB0YWcsCiAJICAgIGxlMzJfdG9fY3B1KGFidHMtPmZjcF9oZHJfbGUucGFyYW1ldGVyKSk7CiAKLQlzX2lkWzBdID0gYWJ0cy0+ZmNwX2hkcl9sZS5zX2lkWzJdOwotCXNfaWRbMV0gPSBhYnRzLT5mY3BfaGRyX2xlLnNfaWRbMV07Ci0Jc19pZFsyXSA9IGFidHMtPmZjcF9oZHJfbGUuc19pZFswXTsKKwlzX2lkID0gbGVfaWRfdG9fYmUoYWJ0cy0+ZmNwX2hkcl9sZS5zX2lkKTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZoYS0+dGd0LnNlc3NfbG9jaywgZmxhZ3MpOwogCXNlc3MgPSBoYS0+dGd0LnRndF9vcHMtPmZpbmRfc2Vzc19ieV9zX2lkKHZoYSwgc19pZCk7CkBAIC0yMjQzLDkgKzIyMTgsNyBAQCBzdGF0aWMgdm9pZCBxbHRfMjR4eF9zZW5kX3Rhc2tfbWdtdF9jdGlvKHN0cnVjdCBxbGFfcXBhaXIgKnFwYWlyLAogCWN0aW8tPm5wb3J0X2hhbmRsZSA9IG1jbWQtPnNlc3MtPmxvb3BfaWQ7CiAJY3Rpby0+dGltZW91dCA9IGNwdV90b19sZTE2KFFMQV9UR1RfVElNRU9VVCk7CiAJY3Rpby0+dnBfaW5kZXggPSBoYS0+dnBfaWR4OwotCWN0aW8tPmluaXRpYXRvcl9pZFswXSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzJdOwotCWN0aW8tPmluaXRpYXRvcl9pZFsxXSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzFdOwotCWN0aW8tPmluaXRpYXRvcl9pZFsyXSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzBdOworCWN0aW8tPmluaXRpYXRvcl9pZCA9IGJlX2lkX3RvX2xlKGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkKTsKIAljdGlvLT5leGNoYW5nZV9hZGRyID0gYXRpby0+dS5pc3AyNC5leGNoYW5nZV9hZGRyOwogCXRlbXAgPSAoYXRpby0+dS5pc3AyNC5hdHRyIDw8IDkpfAogCQlDVElPN19GTEFHU19TVEFUVVNfTU9ERV8xIHwgQ1RJTzdfRkxBR1NfU0VORF9TVEFUVVM7CkBAIC0yMzAyLDkgKzIyNzUsNyBAQCB2b2lkIHFsdF9zZW5kX3Jlc3BfY3RpbyhzdHJ1Y3QgcWxhX3FwYWlyICpxcGFpciwgc3RydWN0IHFsYV90Z3RfY21kICpjbWQsCiAJY3Rpby0+bnBvcnRfaGFuZGxlID0gY21kLT5zZXNzLT5sb29wX2lkOwogCWN0aW8tPnRpbWVvdXQgPSBjcHVfdG9fbGUxNihRTEFfVEdUX1RJTUVPVVQpOwogCWN0aW8tPnZwX2luZGV4ID0gdmhhLT52cF9pZHg7Ci0JY3Rpby0+aW5pdGlhdG9yX2lkWzBdID0gYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWRbMl07Ci0JY3Rpby0+aW5pdGlhdG9yX2lkWzFdID0gYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWRbMV07Ci0JY3Rpby0+aW5pdGlhdG9yX2lkWzJdID0gYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWRbMF07CisJY3Rpby0+aW5pdGlhdG9yX2lkID0gYmVfaWRfdG9fbGUoYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWQpOwogCWN0aW8tPmV4Y2hhbmdlX2FkZHIgPSBhdGlvLT51LmlzcDI0LmV4Y2hhbmdlX2FkZHI7CiAJdGVtcCA9IChhdGlvLT51LmlzcDI0LmF0dHIgPDwgOSkgfAogCSAgICBDVElPN19GTEFHU19TVEFUVVNfTU9ERV8xIHwgQ1RJTzdfRkxBR1NfU0VORF9TVEFUVVM7CkBAIC0yNjA1LDkgKzI1NzYsNyBAQCBzdGF0aWMgaW50IHFsdF8yNHh4X2J1aWxkX2N0aW9fcGt0KHN0cnVjdCBxbGFfcXBhaXIgKnFwYWlyLAogCXBrdC0+aGFuZGxlIHw9IENUSU9fQ09NUExFVElPTl9IQU5ETEVfTUFSSzsKIAlwa3QtPm5wb3J0X2hhbmRsZSA9IGNwdV90b19sZTE2KHBybS0+Y21kLT5sb29wX2lkKTsKIAlwa3QtPnRpbWVvdXQgPSBjcHVfdG9fbGUxNihRTEFfVEdUX1RJTUVPVVQpOwotCXBrdC0+aW5pdGlhdG9yX2lkWzBdID0gYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWRbMl07Ci0JcGt0LT5pbml0aWF0b3JfaWRbMV0gPSBhdGlvLT51LmlzcDI0LmZjcF9oZHIuc19pZFsxXTsKLQlwa3QtPmluaXRpYXRvcl9pZFsyXSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzBdOworCXBrdC0+aW5pdGlhdG9yX2lkID0gYmVfaWRfdG9fbGUoYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWQpOwogCXBrdC0+ZXhjaGFuZ2VfYWRkciA9IGF0aW8tPnUuaXNwMjQuZXhjaGFuZ2VfYWRkcjsKIAl0ZW1wID0gYXRpby0+dS5pc3AyNC5hdHRyIDw8IDk7CiAJcGt0LT51LnN0YXR1czAuZmxhZ3MgfD0gY3B1X3RvX2xlMTYodGVtcCk7CkBAIC0zMTIwLDkgKzMwODksNyBAQCBxbHRfYnVpbGRfY3Rpb19jcmMyX3BrdChzdHJ1Y3QgcWxhX3FwYWlyICpxcGFpciwgc3RydWN0IHFsYV90Z3RfcHJtICpwcm0pCiAJcGt0LT5oYW5kbGUgfD0gQ1RJT19DT01QTEVUSU9OX0hBTkRMRV9NQVJLOwogCXBrdC0+bnBvcnRfaGFuZGxlID0gY3B1X3RvX2xlMTYocHJtLT5jbWQtPmxvb3BfaWQpOwogCXBrdC0+dGltZW91dCA9IGNwdV90b19sZTE2KFFMQV9UR1RfVElNRU9VVCk7Ci0JcGt0LT5pbml0aWF0b3JfaWRbMF0gPSBhdGlvLT51LmlzcDI0LmZjcF9oZHIuc19pZFsyXTsKLQlwa3QtPmluaXRpYXRvcl9pZFsxXSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzFdOwotCXBrdC0+aW5pdGlhdG9yX2lkWzJdID0gYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWRbMF07CisJcGt0LT5pbml0aWF0b3JfaWQgPSBiZV9pZF90b19sZShhdGlvLT51LmlzcDI0LmZjcF9oZHIuc19pZCk7CiAJcGt0LT5leGNoYW5nZV9hZGRyICAgPSBhdGlvLT51LmlzcDI0LmV4Y2hhbmdlX2FkZHI7CiAKIAkvKiBzaWxlbmNlIGNvbXBpbGUgd2FybmluZyAqLwpAQCAtMzE2NCw3ICszMTMxLDcgQEAgcWx0X2J1aWxkX2N0aW9fY3JjMl9wa3Qoc3RydWN0IHFsYV9xcGFpciAqcXBhaXIsIHN0cnVjdCBxbGFfdGd0X3BybSAqcHJtKQogCXBrdC0+Y3JjX2NvbnRleHRfbGVuID0gQ1JDX0NPTlRFWFRfTEVOX0ZXOwogCiAJaWYgKCFidW5kbGluZykgewotCQljdXJfZHNkID0gJmNyY19jdHhfcGt0LT51Lm5vYnVuZGxpbmcuZGF0YV9kc2Q7CisJCWN1cl9kc2QgPSAmY3JjX2N0eF9wa3QtPnUubm9idW5kbGluZy5kYXRhX2RzZFswXTsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBDb25maWd1cmUgQnVuZGxpbmcgaWYgd2UgbmVlZCB0byBmZXRjaCBpbnRlcmxhdmluZwpAQCAtMzE3NCw3ICszMTQxLDcgQEAgcWx0X2J1aWxkX2N0aW9fY3JjMl9wa3Qoc3RydWN0IHFsYV9xcGFpciAqcXBhaXIsIHN0cnVjdCBxbGFfdGd0X3BybSAqcHJtKQogCQljcmNfY3R4X3BrdC0+dS5idW5kbGluZy5kaWZfYnl0ZV9jb3VudCA9IGNwdV90b19sZTMyKGRpZl9ieXRlcyk7CiAJCWNyY19jdHhfcGt0LT51LmJ1bmRsaW5nLmRzZWdfY291bnQgPQogCQkJY3B1X3RvX2xlMTYocHJtLT50b3RfZHNkcyAtIHBybS0+cHJvdF9zZWdfY250KTsKLQkJY3VyX2RzZCA9ICZjcmNfY3R4X3BrdC0+dS5idW5kbGluZy5kYXRhX2RzZDsKKwkJY3VyX2RzZCA9ICZjcmNfY3R4X3BrdC0+dS5idW5kbGluZy5kYXRhX2RzZFswXTsKIAl9CiAKIAkvKiBGaW5pc2ggdGhlIGNvbW1vbiBmaWVsZHMgb2YgQ1JDIHBrdCAqLwpAQCAtMzIzOSw3ICszMjA2LDggQEAgaW50IHFsdF94bWl0X3Jlc3BvbnNlKHN0cnVjdCBxbGFfdGd0X2NtZCAqY21kLCBpbnQgeG1pdF90eXBlLAogCWlmICghcXBhaXItPmZ3X3N0YXJ0ZWQgfHwgKGNtZC0+cmVzZXRfY291bnQgIT0gcXBhaXItPmNoaXBfcmVzZXQpIHx8CiAJICAgIChjbWQtPnNlc3MgJiYgY21kLT5zZXNzLT5kZWxldGVkKSkgewogCQljbWQtPnN0YXRlID0gUUxBX1RHVF9TVEFURV9QUk9DRVNTRUQ7Ci0JCXJldHVybiAwOworCQlyZXMgPSAwOworCQlnb3RvIGZyZWU7CiAJfQogCiAJcWxfZGJnX3FwKHFsX2RiZ190Z3QsIHFwYWlyLCAweGUwMTgsCkBAIC0zMjUwLDkgKzMyMTgsOCBAQCBpbnQgcWx0X3htaXRfcmVzcG9uc2Uoc3RydWN0IHFsYV90Z3RfY21kICpjbWQsIGludCB4bWl0X3R5cGUsCiAKIAlyZXMgPSBxbHRfcHJlX3htaXRfcmVzcG9uc2UoY21kLCAmcHJtLCB4bWl0X3R5cGUsIHNjc2lfc3RhdHVzLAogCSAgICAmZnVsbF9yZXFfY250KTsKLQlpZiAodW5saWtlbHkocmVzICE9IDApKSB7Ci0JCXJldHVybiByZXM7Ci0JfQorCWlmICh1bmxpa2VseShyZXMgIT0gMCkpCisJCWdvdG8gZnJlZTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKHFwYWlyLT5xcF9sb2NrX3B0ciwgZmxhZ3MpOwogCkBAIC0zMjcyLDcgKzMyMzksOCBAQCBpbnQgcWx0X3htaXRfcmVzcG9uc2Uoc3RydWN0IHFsYV90Z3RfY21kICpjbWQsIGludCB4bWl0X3R5cGUsCiAJCQl2aGEtPmZsYWdzLm9ubGluZSwgcWxhMngwMF9yZXNldF9hY3RpdmUodmhhKSwKIAkJCWNtZC0+cmVzZXRfY291bnQsIHFwYWlyLT5jaGlwX3Jlc2V0KTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShxcGFpci0+cXBfbG9ja19wdHIsIGZsYWdzKTsKLQkJcmV0dXJuIDA7CisJCXJlcyA9IDA7CisJCWdvdG8gZnJlZTsKIAl9CiAKIAkvKiBEb2VzIEYvVyBoYXZlIGFuIElPQ0JzIGZvciB0aGlzIHJlcXVlc3QgKi8KQEAgLTMzNzUsNiArMzM0Myw4IEBAIGludCBxbHRfeG1pdF9yZXNwb25zZShzdHJ1Y3QgcWxhX3RndF9jbWQgKmNtZCwgaW50IHhtaXRfdHlwZSwKIAlxbHRfdW5tYXBfc2codmhhLCBjbWQpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUocXBhaXItPnFwX2xvY2tfcHRyLCBmbGFncyk7CiAKK2ZyZWU6CisJdmhhLT5ody0+dGd0LnRndF9vcHMtPmZyZWVfY21kKGNtZCk7CiAJcmV0dXJuIHJlczsKIH0KIEVYUE9SVF9TWU1CT0wocWx0X3htaXRfcmVzcG9uc2UpOwpAQCAtMzY3Miw5ICszNjQyLDcgQEAgc3RhdGljIGludCBfX3FsdF9zZW5kX3Rlcm1fZXhjaGFuZ2Uoc3RydWN0IHFsYV9xcGFpciAqcXBhaXIsCiAJY3RpbzI0LT5ucG9ydF9oYW5kbGUgPSBDVElPN19OSEFORExFX1VOUkVDT0dOSVpFRDsKIAljdGlvMjQtPnRpbWVvdXQgPSBjcHVfdG9fbGUxNihRTEFfVEdUX1RJTUVPVVQpOwogCWN0aW8yNC0+dnBfaW5kZXggPSB2aGEtPnZwX2lkeDsKLQljdGlvMjQtPmluaXRpYXRvcl9pZFswXSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzJdOwotCWN0aW8yNC0+aW5pdGlhdG9yX2lkWzFdID0gYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWRbMV07Ci0JY3RpbzI0LT5pbml0aWF0b3JfaWRbMl0gPSBhdGlvLT51LmlzcDI0LmZjcF9oZHIuc19pZFswXTsKKwljdGlvMjQtPmluaXRpYXRvcl9pZCA9IGJlX2lkX3RvX2xlKGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkKTsKIAljdGlvMjQtPmV4Y2hhbmdlX2FkZHIgPSBhdGlvLT51LmlzcDI0LmV4Y2hhbmdlX2FkZHI7CiAJdGVtcCA9IChhdGlvLT51LmlzcDI0LmF0dHIgPDwgOSkgfCBDVElPN19GTEFHU19TVEFUVVNfTU9ERV8xIHwKIAkJQ1RJTzdfRkxBR1NfVEVSTUlOQVRFOwpAQCAtNDEwNyw4ICs0MDc1LDYgQEAgc3RhdGljIGlubGluZSBpbnQgcWx0X2dldF9mY3BfdGFza19hdHRyKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCiAJcmV0dXJuIGZjcF90YXNrX2F0dHI7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmNfcG9ydCAqcWx0X21ha2VfbG9jYWxfc2VzcyhzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqLAotCQkJCQl1aW50OF90ICopOwogLyoKICAqIFByb2Nlc3MgY29udGV4dCBmb3IgSS9PIHBhdGggaW50byB0Y21fcWxhMnh4eCBjb2RlCiAgKi8KQEAgLTQzNTIsOSArNDMxOCw3IEBAIHN0YXRpYyBpbnQgcWx0X2hhbmRsZV9jbWRfZm9yX2F0aW8oc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCi0JaWQuYi5hbF9wYSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzJdOwotCWlkLmIuYXJlYSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzFdOwotCWlkLmIuZG9tYWluID0gYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWRbMF07CisJaWQgPSBiZV90b19wb3J0X2lkKGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkKTsKIAlpZiAoSVNfU1dfUkVTVl9BRERSKGlkKSkKIAkJcmV0dXJuIC1FQlVTWTsKIApAQCAtNDcxNiw2ICs0NjgwLDggQEAgc3RhdGljIGludCBxbHRfaGFuZGxlX2xvZ2luKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCiAJc3RydWN0IHFsdF9wbG9naV9hY2tfdCAqcGxhOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2aGEtPmh3LT5oYXJkd2FyZV9sb2NrKTsKKwogCXd3biA9IHd3bl90b191NjQoaW9jYi0+dS5pc3AyNC5wb3J0X25hbWUpOwogCiAJcG9ydF9pZC5iLmRvbWFpbiA9IGlvY2ItPnUuaXNwMjQucG9ydF9pZFsyXTsKQEAgLTQ3OTksOCArNDc2NSwxMCBAQCBzdGF0aWMgaW50IHFsdF9oYW5kbGVfbG9naW4oc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwKIAkJCSAgICBfX2Z1bmNfXywgc2Vzcy0+cG9ydF9uYW1lLCBzZWMpOwogCQl9CiAKLQkJaWYgKCFjb25mbGljdF9zZXNzKQorCQlpZiAoIWNvbmZsaWN0X3Nlc3MpIHsKKwkJCWxpc3RfZGVsKCZwbGEtPmxpc3QpOwogCQkJa21lbV9jYWNoZV9mcmVlKHFsYV90Z3RfcGxvZ2lfY2FjaGVwLCBwbGEpOworCQl9CiAKIAkJcWx0X3NlbmRfdGVybV9pbW1fbm90aWYodmhhLCBpb2NiLCAxKTsKIAkJZ290byBvdXQ7CkBAIC00ODg5LDYgKzQ4NTcsOCBAQCBzdGF0aWMgaW50IHFsdF8yNHh4X2hhbmRsZV9lbHMoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwKIAlpbnQgcmVzID0gMDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaGEtPmhhcmR3YXJlX2xvY2spOworCiAJd3duID0gd3duX3RvX3U2NChpb2NiLT51LmlzcDI0LnBvcnRfbmFtZSk7CiAKIAlwb3J0X2lkLmIuZG9tYWluID0gaW9jYi0+dS5pc3AyNC5wb3J0X2lkWzJdOwpAQCAtNTE2NSw2ICs1MTM1LDggQEAgc3RhdGljIHZvaWQgcWx0X2hhbmRsZV9pbW1fbm90aWZ5KHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCiAJaW50IHNlbmRfbm90aWZ5X2FjayA9IDE7CiAJdWludDE2X3Qgc3RhdHVzOwogCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaGEtPmhhcmR3YXJlX2xvY2spOworCiAJc3RhdHVzID0gbGUxNl90b19jcHUoaW9jYi0+dS5pc3AyeC5zdGF0dXMpOwogCXN3aXRjaCAoc3RhdHVzKSB7CiAJY2FzZSBJTU1fTlRGWV9MSVBfUkVTRVQ6CkBAIC01MzAyLDEwICs1Mjc0LDcgQEAgc3RhdGljIGludCBfX3FsdF9zZW5kX2J1c3koc3RydWN0IHFsYV9xcGFpciAqcXBhaXIsCiAJdTE2IHRlbXA7CiAJcG9ydF9pZF90IGlkOwogCi0JaWQuYi5hbF9wYSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzJdOwotCWlkLmIuYXJlYSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzFdOwotCWlkLmIuZG9tYWluID0gYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWRbMF07Ci0JaWQuYi5yc3ZkXzEgPSAwOworCWlkID0gYmVfdG9fcG9ydF9pZChhdGlvLT51LmlzcDI0LmZjcF9oZHIuc19pZCk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmaGEtPnRndC5zZXNzX2xvY2ssIGZsYWdzKTsKIAlzZXNzID0gcWxhMngwMF9maW5kX2ZjcG9ydF9ieV9ucG9ydGlkKHZoYSwgJmlkLCAxKTsKQEAgLTUzMzMsOSArNTMwMiw3IEBAIHN0YXRpYyBpbnQgX19xbHRfc2VuZF9idXN5KHN0cnVjdCBxbGFfcXBhaXIgKnFwYWlyLAogCWN0aW8yNC0+bnBvcnRfaGFuZGxlID0gc2Vzcy0+bG9vcF9pZDsKIAljdGlvMjQtPnRpbWVvdXQgPSBjcHVfdG9fbGUxNihRTEFfVEdUX1RJTUVPVVQpOwogCWN0aW8yNC0+dnBfaW5kZXggPSB2aGEtPnZwX2lkeDsKLQljdGlvMjQtPmluaXRpYXRvcl9pZFswXSA9IGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkWzJdOwotCWN0aW8yNC0+aW5pdGlhdG9yX2lkWzFdID0gYXRpby0+dS5pc3AyNC5mY3BfaGRyLnNfaWRbMV07Ci0JY3RpbzI0LT5pbml0aWF0b3JfaWRbMl0gPSBhdGlvLT51LmlzcDI0LmZjcF9oZHIuc19pZFswXTsKKwljdGlvMjQtPmluaXRpYXRvcl9pZCA9IGJlX2lkX3RvX2xlKGF0aW8tPnUuaXNwMjQuZmNwX2hkci5zX2lkKTsKIAljdGlvMjQtPmV4Y2hhbmdlX2FkZHIgPSBhdGlvLT51LmlzcDI0LmV4Y2hhbmdlX2FkZHI7CiAJdGVtcCA9IChhdGlvLT51LmlzcDI0LmF0dHIgPDwgOSkgfAogCQlDVElPN19GTEFHU19TVEFUVVNfTU9ERV8xIHwgQ1RJTzdfRkxBR1NfU0VORF9TVEFUVVMgfApAQCAtNTc2Nyw3ICs1NzM0LDcgQEAgc3RhdGljIHZvaWQgcWx0X2hhbmRsZV9hYnRzX2NvbXBsZXRpb24oc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSwKIAkJCSAgICBlbnRyeS0+ZXJyb3Jfc3ViY29kZTIpOwogCQkJaGEtPnRndC50Z3Rfb3BzLT5mcmVlX21jbWQobWNtZCk7CiAJCX0KLQl9IGVsc2UgeworCX0gZWxzZSBpZiAobWNtZCkgewogCQloYS0+dGd0LnRndF9vcHMtPmZyZWVfbWNtZChtY21kKTsKIAl9CiB9CkBAIC02MTIxLDIxICs2MDg4LDIxIEBAIHN0YXRpYyBmY19wb3J0X3QgKnFsdF9nZXRfcG9ydF9kYXRhYmFzZShzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLAogCiAvKiBNdXN0IGJlIGNhbGxlZCB1bmRlciB0Z3RfbXV0ZXggKi8KIHN0YXRpYyBzdHJ1Y3QgZmNfcG9ydCAqcWx0X21ha2VfbG9jYWxfc2VzcyhzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLAotCXVpbnQ4X3QgKnNfaWQpCisJCQkJCSAgIGJlX2lkX3Qgc19pZCkKIHsKIAlzdHJ1Y3QgZmNfcG9ydCAqc2VzcyA9IE5VTEw7CiAJZmNfcG9ydF90ICpmY3BvcnQgPSBOVUxMOwogCWludCByYywgZ2xvYmFsX3Jlc2V0czsKIAl1aW50MTZfdCBsb29wX2lkID0gMDsKIAotCWlmICgoc19pZFswXSA9PSAweEZGKSAmJiAoc19pZFsxXSA9PSAweEZDKSkgeworCWlmIChzX2lkLmRvbWFpbiA9PSAweEZGICYmIHNfaWQuYXJlYSA9PSAweEZDKSB7CiAJCS8qCiAJCSAqIFRoaXMgaXMgRG9tYWluIENvbnRyb2xsZXIsIHNvIGl0IHNob3VsZCBiZQogCQkgKiBPSyB0byBkcm9wIFNDU0kgY29tbWFuZHMgZnJvbSBpdC4KIAkJICovCiAJCXFsX2RiZyhxbF9kYmdfdGd0X21ndCwgdmhhLCAweGYwNDIsCiAJCSAgICAiVW5hYmxlIHRvIGZpbmQgaW5pdGlhdG9yIHdpdGggU19JRCAleDoleDoleCIsCi0JCSAgICBzX2lkWzBdLCBzX2lkWzFdLCBzX2lkWzJdKTsKKwkJICAgIHNfaWQuZG9tYWluLCBzX2lkLmFyZWEsIHNfaWQuYWxfcGEpOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAKQEAgLTYxNTIsMTMgKzYxMTksMTIgQEAgc3RhdGljIHN0cnVjdCBmY19wb3J0ICpxbHRfbWFrZV9sb2NhbF9zZXNzKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsCiAJCXFsX2xvZyhxbF9sb2dfaW5mbywgdmhhLCAweGYwNzEsCiAJCSAgICAicWxhX3RhcmdldCglZCk6IFVuYWJsZSB0byBmaW5kICIKIAkJICAgICJpbml0aWF0b3Igd2l0aCBTX0lEICV4OiV4OiV4IiwKLQkJICAgIHZoYS0+dnBfaWR4LCBzX2lkWzBdLCBzX2lkWzFdLAotCQkgICAgc19pZFsyXSk7CisJCSAgICB2aGEtPnZwX2lkeCwgc19pZC5kb21haW4sIHNfaWQuYXJlYSwgc19pZC5hbF9wYSk7CiAKIAkJaWYgKHJjID09IC1FTk9FTlQpIHsKIAkJCXFsdF9wb3J0X2xvZ29fdCBsb2dvOwogCi0JCQlzaWRfdG9fcG9ydGlkKHNfaWQsICZsb2dvLmlkKTsKKwkJCWxvZ28uaWQgPSBiZV90b19wb3J0X2lkKHNfaWQpOwogCQkJbG9nby5jbWRfY291bnQgPSAxOwogCQkJcWx0X3NlbmRfZmlyc3RfbG9nbyh2aGEsICZsb2dvKTsKIAkJfQpAQCAtNjE5Nyw4ICs2MTYzLDcgQEAgc3RhdGljIHZvaWQgcWx0X2Fib3J0X3dvcmsoc3RydWN0IHFsYV90Z3QgKnRndCwKIAlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gdmhhLT5odzsKIAlzdHJ1Y3QgZmNfcG9ydCAqc2VzcyA9IE5VTEw7CiAJdW5zaWduZWQgbG9uZyBmbGFncyA9IDAsIGZsYWdzMiA9IDA7Ci0JdWludDMyX3QgYmVfc19pZDsKLQl1aW50OF90IHNfaWRbM107CisJYmVfaWRfdCBzX2lkOwogCWludCByYzsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZoYS0+dGd0LnNlc3NfbG9jaywgZmxhZ3MyKTsKQEAgLTYyMDYsMTIgKzYxNzEsOSBAQCBzdGF0aWMgdm9pZCBxbHRfYWJvcnRfd29yayhzdHJ1Y3QgcWxhX3RndCAqdGd0LAogCWlmICh0Z3QtPnRndF9zdG9wKQogCQlnb3RvIG91dF90ZXJtMjsKIAotCXNfaWRbMF0gPSBwcm0tPmFidHMuZmNwX2hkcl9sZS5zX2lkWzJdOwotCXNfaWRbMV0gPSBwcm0tPmFidHMuZmNwX2hkcl9sZS5zX2lkWzFdOwotCXNfaWRbMl0gPSBwcm0tPmFidHMuZmNwX2hkcl9sZS5zX2lkWzBdOworCXNfaWQgPSBsZV9pZF90b19iZShwcm0tPmFidHMuZmNwX2hkcl9sZS5zX2lkKTsKIAotCXNlc3MgPSBoYS0+dGd0LnRndF9vcHMtPmZpbmRfc2Vzc19ieV9zX2lkKHZoYSwKLQkgICAgKHVuc2lnbmVkIGNoYXIgKikmYmVfc19pZCk7CisJc2VzcyA9IGhhLT50Z3QudGd0X29wcy0+ZmluZF9zZXNzX2J5X3NfaWQodmhhLCBzX2lkKTsKIAlpZiAoIXNlc3MpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaGEtPnRndC5zZXNzX2xvY2ssIGZsYWdzMik7CiAKQEAgLTYyNDgsOSArNjIxMCw2IEBAIHN0YXRpYyB2b2lkIHFsdF9hYm9ydF93b3JrKHN0cnVjdCBxbGFfdGd0ICp0Z3QsCiBvdXRfdGVybTI6CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaGEtPnRndC5zZXNzX2xvY2ssIGZsYWdzMik7CiAKLQlpZiAoc2VzcykKLQkJaGEtPnRndC50Z3Rfb3BzLT5wdXRfc2VzcyhzZXNzKTsKLQogb3V0X3Rlcm06CiAJc3Bpbl9sb2NrX2lycXNhdmUoJmhhLT5oYXJkd2FyZV9sb2NrLCBmbGFncyk7CiAJcWx0XzI0eHhfc2VuZF9hYnRzX3Jlc3AoaGEtPmJhc2VfcXBhaXIsICZwcm0tPmFidHMsCkBAIC02MjY2LDcgKzYyMjUsNyBAQCBzdGF0aWMgdm9pZCBxbHRfdG1yX3dvcmsoc3RydWN0IHFsYV90Z3QgKnRndCwKIAlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gdmhhLT5odzsKIAlzdHJ1Y3QgZmNfcG9ydCAqc2VzczsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVpbnQ4X3QgKnNfaWQgPSBOVUxMOyAvKiB0byBoaWRlIGNvbXBpbGVyIHdhcm5pbmdzICovCisJYmVfaWRfdCBzX2lkOwogCWludCByYzsKIAl1NjQgdW5wYWNrZWRfbHVuOwogCWludCBmbjsKQEAgLTY0OTUsMjIgKzY0NTQsMTAgQEAgdm9pZCBxbHRfcmVtb3ZlX3RhcmdldF9yZXNvdXJjZXMoc3RydWN0IHFsYV9od19kYXRhICpoYSkKIHN0YXRpYyB2b2lkIHFsdF9scG9ydF9kdW1wKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIHU2NCB3d3BuLAogCXVuc2lnbmVkIGNoYXIgKmIpCiB7Ci0JaW50IGk7Ci0KLQlwcl9kZWJ1ZygicWxhMnh4eCBIVyB2aGEtPm5vZGVfbmFtZTogIik7Ci0JZm9yIChpID0gMDsgaSA8IFdXTl9TSVpFOyBpKyspCi0JCXByX2RlYnVnKCIlMDJ4ICIsIHZoYS0+bm9kZV9uYW1lW2ldKTsKLQlwcl9kZWJ1ZygiXG4iKTsKLQlwcl9kZWJ1ZygicWxhMnh4eCBIVyB2aGEtPnBvcnRfbmFtZTogIik7Ci0JZm9yIChpID0gMDsgaSA8IFdXTl9TSVpFOyBpKyspCi0JCXByX2RlYnVnKCIlMDJ4ICIsIHZoYS0+cG9ydF9uYW1lW2ldKTsKLQlwcl9kZWJ1ZygiXG4iKTsKLQotCXByX2RlYnVnKCJxbGEyeHh4IHBhc3NlZCBjb25maWdmcyBXV1BOOiAiKTsKKwlwcl9kZWJ1ZygicWxhMnh4eCBIVyB2aGEtPm5vZGVfbmFtZTogJThwaENcbiIsIHZoYS0+bm9kZV9uYW1lKTsKKwlwcl9kZWJ1ZygicWxhMnh4eCBIVyB2aGEtPnBvcnRfbmFtZTogJThwaENcbiIsIHZoYS0+cG9ydF9uYW1lKTsKIAlwdXRfdW5hbGlnbmVkX2JlNjQod3dwbiwgYik7Ci0JZm9yIChpID0gMDsgaSA8IFdXTl9TSVpFOyBpKyspCi0JCXByX2RlYnVnKCIlMDJ4ICIsIGJbaV0pOwotCXByX2RlYnVnKCJcbiIpOworCXByX2RlYnVnKCJxbGEyeHh4IHBhc3NlZCBjb25maWdmcyBXV1BOOiAlOHBoQ1xuIiwgYik7CiB9CiAKIC8qKgpAQCAtNjY3MSw2ICs2NjE4LDggQEAgcWx0X2VuYWJsZV92aGEoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSkKIAlpZiAodmhhLT5xbGluaV9tb2RlID09IFFMQTJYWFhfSU5JX01PREVfRU5BQkxFRCkKIAkJcmV0dXJuOwogCisJaWYgKGhhLT50Z3QubnVtX2FjdF9xcGFpcnMgPiBoYS0+bWF4X3FwYWlycykKKwkJaGEtPnRndC5udW1fYWN0X3FwYWlycyA9IGhhLT5tYXhfcXBhaXJzOwogCXNwaW5fbG9ja19pcnFzYXZlKCZoYS0+aGFyZHdhcmVfbG9jaywgZmxhZ3MpOwogCXRndC0+dGd0X3N0b3BwZWQgPSAwOwogCXFsdF9zZXRfbW9kZSh2aGEpOwpAQCAtNjY4NSw3ICs2NjM0LDggQEAgcWx0X2VuYWJsZV92aGEoc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSkKIAl9IGVsc2UgewogCQlzZXRfYml0KElTUF9BQk9SVF9ORUVERUQsICZiYXNlX3ZoYS0+ZHBjX2ZsYWdzKTsKIAkJcWxhMnh4eF93YWtlX2RwYyhiYXNlX3ZoYSk7Ci0JCXFsYTJ4MDBfd2FpdF9mb3JfaGJhX29ubGluZShiYXNlX3ZoYSk7CisJCVdBUk5fT05fT05DRShxbGEyeDAwX3dhaXRfZm9yX2hiYV9vbmxpbmUoYmFzZV92aGEpICE9CisJCQkgICAgIFFMQV9TVUNDRVNTKTsKIAl9CiAJbXV0ZXhfdW5sb2NrKCZoYS0+b3B0cm9tX211dGV4KTsKIH0KQEAgLTY3MTYsNyArNjY2Niw5IEBAIHN0YXRpYyB2b2lkIHFsdF9kaXNhYmxlX3ZoYShzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhKQogCiAJc2V0X2JpdChJU1BfQUJPUlRfTkVFREVELCAmdmhhLT5kcGNfZmxhZ3MpOwogCXFsYTJ4eHhfd2FrZV9kcGModmhhKTsKLQlxbGEyeDAwX3dhaXRfZm9yX2hiYV9vbmxpbmUodmhhKTsKKwlpZiAocWxhMngwMF93YWl0X2Zvcl9oYmFfb25saW5lKHZoYSkgIT0gUUxBX1NVQ0NFU1MpCisJCXFsX2RiZyhxbF9kYmdfdGd0LCB2aGEsIDB4ZTA4MSwKKwkJICAgICAgICJxbGEyeDAwX3dhaXRfZm9yX2hiYV9vbmxpbmUoKSBmYWlsZWRcbiIpOwogfQogCiAvKgpAQCAtNjgxNSw3ICs2NzY3LDcgQEAgcWx0XzI0eHhfcHJvY2Vzc19hdGlvX3F1ZXVlKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICp2aGEsIHVpbnQ4X3QgaGFfbG9ja2VkKQogCQkJICovCiAJCQlxbF9sb2cocWxfbG9nX3dhcm4sIHZoYSwgMHhkMDNjLAogCQkJICAgICJjb3JydXB0ZWQgZmNwIGZyYW1lIFNJRFslM3BoTl0gT1hJRFslMDR4XSBFWENHWyV4XSAlNjRwaE5cbiIsCi0JCQkgICAgcGt0LT51LmlzcDI0LmZjcF9oZHIuc19pZCwKKwkJCSAgICAmcGt0LT51LmlzcDI0LmZjcF9oZHIuc19pZCwKIAkJCSAgICBiZTE2X3RvX2NwdShwa3QtPnUuaXNwMjQuZmNwX2hkci5veF9pZCksCiAJCQkgICAgbGUzMl90b19jcHUocGt0LT51LmlzcDI0LmV4Y2hhbmdlX2FkZHIpLCBwa3QpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfdGFyZ2V0LmggYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfdGFyZ2V0LmgKaW5kZXggYjhkMjQ0Zi4uZDAwNmYwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX3RhcmdldC5oCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV90YXJnZXQuaApAQCAtMjQ3LDkgKzI0Nyw5IEBAIHN0cnVjdCBjdGlvX3RvXzJ4eHggewogCiBzdHJ1Y3QgZmNwX2hkciB7CiAJdWludDhfdCAgcl9jdGw7Ci0JdWludDhfdCAgZF9pZFszXTsKKwliZV9pZF90ICBkX2lkOwogCXVpbnQ4X3QgIGNzX2N0bDsKLQl1aW50OF90ICBzX2lkWzNdOworCWJlX2lkX3QgIHNfaWQ7CiAJdWludDhfdCAgdHlwZTsKIAl1aW50OF90ICBmX2N0bFszXTsKIAl1aW50OF90ICBzZXFfaWQ7CkBAIC0yNjEsOSArMjYxLDkgQEAgc3RydWN0IGZjcF9oZHIgewogfSBfX3BhY2tlZDsKIAogc3RydWN0IGZjcF9oZHJfbGUgewotCXVpbnQ4X3QgIGRfaWRbM107CisJbGVfaWRfdCAgZF9pZDsKIAl1aW50OF90ICByX2N0bDsKLQl1aW50OF90ICBzX2lkWzNdOworCWxlX2lkX3QgIHNfaWQ7CiAJdWludDhfdCAgY3NfY3RsOwogCXVpbnQ4X3QgIGZfY3RsWzNdOwogCXVpbnQ4X3QgIHR5cGU7CkBAIC00MDIsNyArNDAyLDcgQEAgc3RydWN0IGN0aW83X3RvXzI0eHggewogCXVpbnQxNl90IGRzZWdfY291bnQ7CQkgICAgLyogRGF0YSBzZWdtZW50IGNvdW50LiAqLwogCXVpbnQ4X3QgIHZwX2luZGV4OwogCXVpbnQ4X3QgIGFkZF9mbGFnczsKLQl1aW50OF90ICBpbml0aWF0b3JfaWRbM107CisJbGVfaWRfdCAgaW5pdGlhdG9yX2lkOwogCXVpbnQ4X3QgIHJlc2VydmVkOwogCXVpbnQzMl90IGV4Y2hhbmdlX2FkZHI7CiAJdW5pb24gewpAQCAtNDk4LDcgKzQ5OCw3IEBAIHN0cnVjdCBjdGlvX2NyYzJfdG9fZncgewogCXVpbnQ4X3QgIGFkZF9mbGFnczsJCS8qIGFkZGl0aW9uYWwgZmxhZ3MgKi8KICNkZWZpbmUgQ1RJT19DUkMyX0FGX0RJRl9EU0RfRU5BIEJJVF8zCiAKLQl1aW50OF90ICBpbml0aWF0b3JfaWRbM107CS8qIGluaXRpYXRvciBJRCAqLworCWxlX2lkX3QgIGluaXRpYXRvcl9pZDsJCS8qIGluaXRpYXRvciBJRCAqLwogCXVpbnQ4X3QgIHJlc2VydmVkMTsKIAl1aW50MzJfdCBleGNoYW5nZV9hZGRyOwkJLyogcmN2IGV4Y2hhbmdlIGFkZHJlc3MgKi8KIAl1aW50MTZfdCByZXNlcnZlZDI7CkBAIC02ODIsNyArNjgyLDcgQEAgc3RydWN0IHFsYV90Z3RfZnVuY190bXBsIHsKIAlzdHJ1Y3QgZmNfcG9ydCAqKCpmaW5kX3Nlc3NfYnlfbG9vcF9pZCkoc3RydWN0IHNjc2lfcWxhX2hvc3QgKiwKIAkJCQkJCWNvbnN0IHVpbnQxNl90KTsKIAlzdHJ1Y3QgZmNfcG9ydCAqKCpmaW5kX3Nlc3NfYnlfc19pZCkoc3RydWN0IHNjc2lfcWxhX2hvc3QgKiwKLQkJCQkJCWNvbnN0IHVpbnQ4X3QgKik7CisJCQkJCSAgICAgY29uc3QgYmVfaWRfdCk7CiAJdm9pZCAoKmNsZWFyX25hY2xfZnJvbV9mY3BvcnRfbWFwKShzdHJ1Y3QgZmNfcG9ydCAqKTsKIAl2b2lkICgqcHV0X3Nlc3MpKHN0cnVjdCBmY19wb3J0ICopOwogCXZvaWQgKCpzaHV0ZG93bl9zZXNzKShzdHJ1Y3QgZmNfcG9ydCAqKTsKQEAgLTkxMiw3ICs5MTIsNyBAQCBzdHJ1Y3QgcWxhX3RndF9jbWQgewogCXVpbnQ4X3Qgc2NzaV9zdGF0dXMsIHNlbnNlX2tleSwgYXNjLCBhc2NxOwogCiAJc3RydWN0IGNyY19jb250ZXh0ICpjdHg7Ci0JdWludDhfdAkJKmNkYjsKKwljb25zdCB1aW50OF90CSpjZGI7CiAJdWludDY0X3QJbGJhOwogCXVpbnQxNl90CWFfZ3VhcmQsIGVfZ3VhcmQsIGFfYXBwX3RhZywgZV9hcHBfdGFnOwogCXVpbnQzMl90CWFfcmVmX3RhZywgZV9yZWZfdGFnOwpAQCAtMTAzMCwyMiArMTAzMCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcWxhX2R1YWxfbW9kZV9lbmFibGVkKHN0cnVjdCBzY3NpX3FsYV9ob3N0ICpoYSkKIAlyZXR1cm4gKGhhLT5ob3N0LT5hY3RpdmVfbW9kZSA9PSBNT0RFX0RVQUwpOwogfQogCi1zdGF0aWMgaW5saW5lIHVpbnQzMl90IHNpZF90b19rZXkoY29uc3QgdWludDhfdCAqc19pZCkKK3N0YXRpYyBpbmxpbmUgdWludDMyX3Qgc2lkX3RvX2tleShjb25zdCBiZV9pZF90IHNfaWQpCiB7Ci0JdWludDMyX3Qga2V5OwotCi0Ja2V5ID0gKCgodW5zaWduZWQgbG9uZylzX2lkWzBdIDw8IDE2KSB8Ci0JICAgICAgICgodW5zaWduZWQgbG9uZylzX2lkWzFdIDw8IDgpIHwKLQkgICAgICAgKHVuc2lnbmVkIGxvbmcpc19pZFsyXSk7Ci0JcmV0dXJuIGtleTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHNpZF90b19wb3J0aWQoY29uc3QgdWludDhfdCAqc19pZCwgcG9ydF9pZF90ICpwKQotewotCW1lbXNldChwLCAwLCBzaXplb2YoKnApKTsKLQlwLT5iLmRvbWFpbiA9IHNfaWRbMF07Ci0JcC0+Yi5hcmVhID0gc19pZFsxXTsKLQlwLT5iLmFsX3BhID0gc19pZFsyXTsKKwlyZXR1cm4gc19pZC5kb21haW4gPDwgMTYgfAorCQlzX2lkLmFyZWEgPDwgOCB8CisJCXNfaWQuYWxfcGE7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfdG1wbC5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX3RtcGwuYwppbmRleCBkZTY5NmEwLi4yOTRkNzdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfdG1wbC5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV90bXBsLmMKQEAgLTQyOSw3ICs0MjksNyBAQCBxbGEyN3h4X2Z3ZHRfZW50cnlfdDI2NihzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhLAogCXFsX2RiZyhxbF9kYmdfbWlzYywgdmhhLCAweGQyMGEsCiAJICAgICIlczogcmVzZXQgcmlzYyBbJWx4XVxuIiwgX19mdW5jX18sICpsZW4pOwogCWlmIChidWYpCi0JCXFsYTI0eHhfc29mdF9yZXNldCh2aGEtPmh3KTsKKwkJV0FSTl9PTl9PTkNFKHFsYTI0eHhfc29mdF9yZXNldCh2aGEtPmh3KSAhPSBRTEFfU1VDQ0VTUyk7CiAKIAlyZXR1cm4gcWxhMjd4eF9uZXh0X2VudHJ5KGVudCk7CiB9CkBAIC04NjAsOCArODYwLDkgQEAgcWxhMjd4eF9kcml2ZXJfaW5mbyhzdHJ1Y3QgcWxhMjd4eF9md2R0X3RlbXBsYXRlICp0bXApCiB7CiAJdWludDhfdCB2W10gPSB7IDAsIDAsIDAsIDAsIDAsIDAgfTsKIAotCXNzY2FuZihxbGEyeDAwX3ZlcnNpb25fc3RyLCAiJWhodS4laGh1LiVoaHUuJWhodS4laGh1LiVoaHUiLAotCSAgICB2KzAsIHYrMSwgdisyLCB2KzMsIHYrNCwgdis1KTsKKwlXQVJOX09OX09OQ0Uoc3NjYW5mKHFsYTJ4MDBfdmVyc2lvbl9zdHIsCisJCQkgICAgIiVoaHUuJWhodS4laGh1LiVoaHUuJWhodS4laGh1IiwKKwkJCSAgICB2KzAsIHYrMSwgdisyLCB2KzMsIHYrNCwgdis1KSAhPSA2KTsKIAogCXRtcC0+ZHJpdmVyX2luZm9bMF0gPSB2WzNdIDw8IDI0IHwgdlsyXSA8PCAxNiB8IHZbMV0gPDwgOCB8IHZbMF07CiAJdG1wLT5kcml2ZXJfaW5mb1sxXSA9IHZbNV0gPDwgOCB8IHZbNF07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfdmVyc2lvbi5oIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX3ZlcnNpb24uaAppbmRleCBjZDZiZGY3Li5hOGYyYTk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfdmVyc2lvbi5oCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV92ZXJzaW9uLmgKQEAgLTcsNyArNyw3IEBACiAvKgogICogRHJpdmVyIHZlcnNpb24KICAqLwotI2RlZmluZSBRTEEyWFhYX1ZFUlNJT04gICAgICAiMTAuMDEuMDAuMTYtayIKKyNkZWZpbmUgUUxBMlhYWF9WRVJTSU9OICAgICAgIjEwLjAxLjAwLjE5LWsiCiAKICNkZWZpbmUgUUxBX0RSSVZFUl9NQUpPUl9WRVIJMTAKICNkZWZpbmUgUUxBX0RSSVZFUl9NSU5PUl9WRVIJMQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvdGNtX3FsYTJ4eHguYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3RjbV9xbGEyeHh4LmMKaW5kZXggZDE1NDEyZC4uMDQyYTI0MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3RjbV9xbGEyeHh4LmMKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvdGNtX3FsYTJ4eHguYwpAQCAtNjIwLDYgKzYyMCw3IEBAIHN0YXRpYyBpbnQgdGNtX3FsYTJ4eHhfcXVldWVfZGF0YV9pbihzdHJ1Y3Qgc2VfY21kICpzZV9jbWQpCiB7CiAJc3RydWN0IHFsYV90Z3RfY21kICpjbWQgPSBjb250YWluZXJfb2Yoc2VfY21kLAogCQkJCXN0cnVjdCBxbGFfdGd0X2NtZCwgc2VfY21kKTsKKwlzdHJ1Y3Qgc2NzaV9xbGFfaG9zdCAqdmhhID0gY21kLT52aGE7CiAKIAlpZiAoY21kLT5hYm9ydGVkKSB7CiAJCS8qIENtZCBjYW4gbG9vcCBkdXJpbmcgUS1mdWxsLiAgdGNtX3FsYTJ4eHhfYWJvcnRlZF90YXNrCkBAIC02MzIsNiArNjMzLDcgQEAgc3RhdGljIGludCB0Y21fcWxhMnh4eF9xdWV1ZV9kYXRhX2luKHN0cnVjdCBzZV9jbWQgKnNlX2NtZCkKIAkJCWNtZC0+c2VfY21kLnRyYW5zcG9ydF9zdGF0ZSwKIAkJCWNtZC0+c2VfY21kLnRfc3RhdGUsCiAJCQljbWQtPnNlX2NtZC5zZV9jbWRfZmxhZ3MpOworCQl2aGEtPmh3LT50Z3QudGd0X29wcy0+ZnJlZV9jbWQoY21kKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC02NTksNiArNjYxLDcgQEAgc3RhdGljIGludCB0Y21fcWxhMnh4eF9xdWV1ZV9zdGF0dXMoc3RydWN0IHNlX2NtZCAqc2VfY21kKQogewogCXN0cnVjdCBxbGFfdGd0X2NtZCAqY21kID0gY29udGFpbmVyX29mKHNlX2NtZCwKIAkJCQlzdHJ1Y3QgcWxhX3RndF9jbWQsIHNlX2NtZCk7CisJc3RydWN0IHNjc2lfcWxhX2hvc3QgKnZoYSA9IGNtZC0+dmhhOwogCWludCB4bWl0X3R5cGUgPSBRTEFfVEdUX1hNSVRfU1RBVFVTOwogCiAJaWYgKGNtZC0+YWJvcnRlZCkgewpAQCAtNjcyLDYgKzY3NSw3IEBAIHN0YXRpYyBpbnQgdGNtX3FsYTJ4eHhfcXVldWVfc3RhdHVzKHN0cnVjdCBzZV9jbWQgKnNlX2NtZCkKIAkJICAgIGNtZCwga3JlZl9yZWFkKCZjbWQtPnNlX2NtZC5jbWRfa3JlZiksCiAJCSAgICBjbWQtPnNlX2NtZC50cmFuc3BvcnRfc3RhdGUsIGNtZC0+c2VfY21kLnRfc3RhdGUsCiAJCSAgICBjbWQtPnNlX2NtZC5zZV9jbWRfZmxhZ3MpOworCQl2aGEtPmh3LT50Z3QudGd0X29wcy0+ZnJlZV9jbWQoY21kKTsKIAkJcmV0dXJuIDA7CiAJfQogCWNtZC0+YnVmZmxlbiA9IHNlX2NtZC0+ZGF0YV9sZW5ndGg7CkBAIC0xMTM2LDkgKzExNDAsOCBAQCBzdGF0aWMgc3RydWN0IHNlX3BvcnRhbF9ncm91cCAqdGNtX3FsYTJ4eHhfbnBpdl9tYWtlX3RwZyhzdHJ1Y3Qgc2Vfd3duICp3d24sCiAvKgogICogRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIHdpdGggc3RydWN0IHFsYV9od19kYXRhLT50Z3Quc2Vzc19sb2NrIGhlbGQKICAqLwotc3RhdGljIHN0cnVjdCBmY19wb3J0ICp0Y21fcWxhMnh4eF9maW5kX3Nlc3NfYnlfc19pZCgKLQlzY3NpX3FsYV9ob3N0X3QgKnZoYSwKLQljb25zdCB1aW50OF90ICpzX2lkKQorc3RhdGljIHN0cnVjdCBmY19wb3J0ICp0Y21fcWxhMnh4eF9maW5kX3Nlc3NfYnlfc19pZChzY3NpX3FsYV9ob3N0X3QgKnZoYSwKKwkJCQkJCSAgICAgY29uc3QgYmVfaWRfdCBzX2lkKQogewogCXN0cnVjdCB0Y21fcWxhMnh4eF9scG9ydCAqbHBvcnQ7CiAJc3RydWN0IHNlX25vZGVfYWNsICpzZV9uYWNsOwpAQCAtMTE4MSw3ICsxMTg0LDcgQEAgc3RhdGljIHZvaWQgdGNtX3FsYTJ4eHhfc2V0X3Nlc3NfYnlfc19pZCgKIAlzdHJ1Y3QgdGNtX3FsYTJ4eHhfbmFjbCAqbmFjbCwKIAlzdHJ1Y3Qgc2Vfc2Vzc2lvbiAqc2Vfc2VzcywKIAlzdHJ1Y3QgZmNfcG9ydCAqZmNfcG9ydCwKLQl1aW50OF90ICpzX2lkKQorCWJlX2lkX3Qgc19pZCkKIHsKIAl1MzIga2V5OwogCXZvaWQgKnNsb3Q7CkBAIC0xMzQ4LDE0ICsxMzUxLDkgQEAgc3RhdGljIHZvaWQgdGNtX3FsYTJ4eHhfY2xlYXJfc2Vzc19sb29rdXAoc3RydWN0IHRjbV9xbGEyeHh4X2xwb3J0ICpscG9ydCwKIAkJc3RydWN0IHRjbV9xbGEyeHh4X25hY2wgKm5hY2wsIHN0cnVjdCBmY19wb3J0ICpzZXNzKQogewogCXN0cnVjdCBzZV9zZXNzaW9uICpzZV9zZXNzID0gc2Vzcy0+c2Vfc2VzczsKLQl1bnNpZ25lZCBjaGFyIGJlX3NpZFszXTsKLQotCWJlX3NpZFswXSA9IHNlc3MtPmRfaWQuYi5kb21haW47Ci0JYmVfc2lkWzFdID0gc2Vzcy0+ZF9pZC5iLmFyZWE7Ci0JYmVfc2lkWzJdID0gc2Vzcy0+ZF9pZC5iLmFsX3BhOwogCiAJdGNtX3FsYTJ4eHhfc2V0X3Nlc3NfYnlfc19pZChscG9ydCwgTlVMTCwgbmFjbCwgc2Vfc2VzcywKLQkJCQlzZXNzLCBiZV9zaWQpOworCQkJCSAgICAgc2VzcywgcG9ydF9pZF90b19iZV9pZChzZXNzLT5kX2lkKSk7CiAJdGNtX3FsYTJ4eHhfc2V0X3Nlc3NfYnlfbG9vcF9pZChscG9ydCwgTlVMTCwgbmFjbCwgc2Vfc2VzcywKIAkJCQlzZXNzLCBzZXNzLT5sb29wX2lkKTsKIH0KQEAgLTE0MDEsMTkgKzEzOTksMTQgQEAgc3RhdGljIGludCB0Y21fcWxhMnh4eF9zZXNzaW9uX2NiKHN0cnVjdCBzZV9wb3J0YWxfZ3JvdXAgKnNlX3RwZywKIAlzdHJ1Y3QgZmNfcG9ydCAqcWxhdF9zZXNzID0gcDsKIAl1aW50MTZfdCBsb29wX2lkID0gcWxhdF9zZXNzLT5sb29wX2lkOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgY2hhciBiZV9zaWRbM107Ci0KLQliZV9zaWRbMF0gPSBxbGF0X3Nlc3MtPmRfaWQuYi5kb21haW47Ci0JYmVfc2lkWzFdID0gcWxhdF9zZXNzLT5kX2lkLmIuYXJlYTsKLQliZV9zaWRbMl0gPSBxbGF0X3Nlc3MtPmRfaWQuYi5hbF9wYTsKIAogCS8qCiAJICogQW5kIG5vdyBzZXR1cCBzZV9uYWNsIGFuZCBzZXNzaW9uIHBvaW50ZXJzIGludG8gSFcgbHBvcnQgaW50ZXJuYWwKIAkgKiBtYXBwaW5ncyBmb3IgZmFicmljIFNfSUQgYW5kIExPT1BfSUQuCiAJICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmhhLT50Z3Quc2Vzc19sb2NrLCBmbGFncyk7Ci0JdGNtX3FsYTJ4eHhfc2V0X3Nlc3NfYnlfc19pZChscG9ydCwgc2VfbmFjbCwgbmFjbCwKLQkJCQkgICAgIHNlX3Nlc3MsIHFsYXRfc2VzcywgYmVfc2lkKTsKKwl0Y21fcWxhMnh4eF9zZXRfc2Vzc19ieV9zX2lkKGxwb3J0LCBzZV9uYWNsLCBuYWNsLCBzZV9zZXNzLCBxbGF0X3Nlc3MsCisJCQkJICAgICBwb3J0X2lkX3RvX2JlX2lkKHFsYXRfc2Vzcy0+ZF9pZCkpOwogCXRjbV9xbGEyeHh4X3NldF9zZXNzX2J5X2xvb3BfaWQobHBvcnQsIHNlX25hY2wsIG5hY2wsCiAJCQkJCXNlX3Nlc3MsIHFsYXRfc2VzcywgbG9vcF9pZCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaGEtPnRndC5zZXNzX2xvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbG9naWNwdGkuYyBiL2RyaXZlcnMvc2NzaS9xbG9naWNwdGkuYwppbmRleCA5MzM1ODQ5Li5kNTM5YmVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxvZ2ljcHRpLmMKKysrIGIvZHJpdmVycy9zY3NpL3Fsb2dpY3B0aS5jCkBAIC0yMDAsMTAgKzIwMCwxNSBAQCBzdGF0aWMgaW50IHFsb2dpY3B0aV9tYm94X2NvbW1hbmQoc3RydWN0IHFsb2dpY3B0aSAqcXB0aSwgdV9zaG9ydCBwYXJhbVtdLCBpbnQgZgogCS8qIFdyaXRlIG1haWxib3ggY29tbWFuZCByZWdpc3RlcnMuICovCiAJc3dpdGNoIChtYm94X3BhcmFtW3BhcmFtWzBdXSA+PiA0KSB7CiAJY2FzZSA2OiBzYnVzX3dyaXRldyhwYXJhbVs1XSwgcXB0aS0+cXJlZ3MgKyBNQk9YNSk7CisJCS8qIEZhbGwgdGhyb3VnaCAqLwogCWNhc2UgNTogc2J1c193cml0ZXcocGFyYW1bNF0sIHFwdGktPnFyZWdzICsgTUJPWDQpOworCQkvKiBGYWxsIHRocm91Z2ggKi8KIAljYXNlIDQ6IHNidXNfd3JpdGV3KHBhcmFtWzNdLCBxcHRpLT5xcmVncyArIE1CT1gzKTsKKwkJLyogRmFsbCB0aHJvdWdoICovCiAJY2FzZSAzOiBzYnVzX3dyaXRldyhwYXJhbVsyXSwgcXB0aS0+cXJlZ3MgKyBNQk9YMik7CisJCS8qIEZhbGwgdGhyb3VnaCAqLwogCWNhc2UgMjogc2J1c193cml0ZXcocGFyYW1bMV0sIHFwdGktPnFyZWdzICsgTUJPWDEpOworCQkvKiBGYWxsIHRocm91Z2ggKi8KIAljYXNlIDE6IHNidXNfd3JpdGV3KHBhcmFtWzBdLCBxcHRpLT5xcmVncyArIE1CT1gwKTsKIAl9CiAKQEAgLTI1NCwxMCArMjU5LDE1IEBAIHN0YXRpYyBpbnQgcWxvZ2ljcHRpX21ib3hfY29tbWFuZChzdHJ1Y3QgcWxvZ2ljcHRpICpxcHRpLCB1X3Nob3J0IHBhcmFtW10sIGludCBmCiAJLyogUmVhZCBiYWNrIG91dHB1dCBwYXJhbWV0ZXJzLiAqLwogCXN3aXRjaCAobWJveF9wYXJhbVtwYXJhbVswXV0gJiAweGYpIHsKIAljYXNlIDY6IHBhcmFtWzVdID0gc2J1c19yZWFkdyhxcHRpLT5xcmVncyArIE1CT1g1KTsKKwkJLyogRmFsbCB0aHJvdWdoICovCiAJY2FzZSA1OiBwYXJhbVs0XSA9IHNidXNfcmVhZHcocXB0aS0+cXJlZ3MgKyBNQk9YNCk7CisJCS8qIEZhbGwgdGhyb3VnaCAqLwogCWNhc2UgNDogcGFyYW1bM10gPSBzYnVzX3JlYWR3KHFwdGktPnFyZWdzICsgTUJPWDMpOworCQkvKiBGYWxsIHRocm91Z2ggKi8KIAljYXNlIDM6IHBhcmFtWzJdID0gc2J1c19yZWFkdyhxcHRpLT5xcmVncyArIE1CT1gyKTsKKwkJLyogRmFsbCB0aHJvdWdoICovCiAJY2FzZSAyOiBwYXJhbVsxXSA9IHNidXNfcmVhZHcocXB0aS0+cXJlZ3MgKyBNQk9YMSk7CisJCS8qIEZhbGwgdGhyb3VnaCAqLwogCWNhc2UgMTogcGFyYW1bMF0gPSBzYnVzX3JlYWR3KHFwdGktPnFyZWdzICsgTUJPWDApOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Njc2lfZGVidWdmcy5jIGIvZHJpdmVycy9zY3NpL3Njc2lfZGVidWdmcy5jCmluZGV4IGM1YTg3NTYuLmMxOWVhN2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zY3NpX2RlYnVnZnMuYworKysgYi9kcml2ZXJzL3Njc2kvc2NzaV9kZWJ1Z2ZzLmMKQEAgLTEsNCArMSw1IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX2NtbmQuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfZGJnLmg+CkBAIC0xOCw5ICsxOSw3IEBAIHN0YXRpYyBpbnQgc2NzaV9mbGFnc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3QgdW5zaWduZWQgbG9uZyBmbGFncywKIAlib29sIHNlcCA9IGZhbHNlOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IHNpemVvZihmbGFncykgKiBCSVRTX1BFUl9CWVRFOyBpKyspIHsKLQkJaWYgKCEoZmxhZ3MgJiBCSVQoaSkpKQotCQkJY29udGludWU7CisJZm9yX2VhY2hfc2V0X2JpdChpLCAmZmxhZ3MsIEJJVFNfUEVSX0xPTkcpIHsKIAkJaWYgKHNlcCkKIAkJCXNlcV9wdXRzKG0sICJ8Iik7CiAJCXNlcCA9IHRydWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYyBiL2RyaXZlcnMvc2NzaS9zY3NpX2xpYi5jCmluZGV4IDRlODhkN2UuLmRjMjEwYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zY3NpX2xpYi5jCisrKyBiL2RyaXZlcnMvc2NzaS9zY3NpX2xpYi5jCkBAIC0xNjc4LDEwICsxNjc4LDExIEBAIHN0YXRpYyBibGtfc3RhdHVzX3Qgc2NzaV9xdWV1ZV9ycShzdHJ1Y3QgYmxrX21xX2h3X2N0eCAqaGN0eCwKIAkJYmxrX21xX3N0YXJ0X3JlcXVlc3QocmVxKTsKIAl9CiAKKwljbWQtPmZsYWdzICY9IFNDTURfUFJFU0VSVkVEX0ZMQUdTOwogCWlmIChzZGV2LT5zaW1wbGVfdGFncykKIAkJY21kLT5mbGFncyB8PSBTQ01EX1RBR0dFRDsKLQllbHNlCi0JCWNtZC0+ZmxhZ3MgJj0gflNDTURfVEFHR0VEOworCWlmIChiZC0+bGFzdCkKKwkJY21kLT5mbGFncyB8PSBTQ01EX0xBU1Q7CiAKIAlzY3NpX2luaXRfY21kX2VycmgoY21kKTsKIAljbWQtPnNjc2lfZG9uZSA9IHNjc2lfbXFfZG9uZTsKQEAgLTE4MjEsMTAgKzE4MjIsMzcgQEAgdm9pZCBfX3Njc2lfaW5pdF9xdWV1ZShzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCwgc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChfX3Njc2lfaW5pdF9xdWV1ZSk7CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmxrX21xX29wcyBzY3NpX21xX29wc19ub19jb21taXQgPSB7CisJLmdldF9idWRnZXQJPSBzY3NpX21xX2dldF9idWRnZXQsCisJLnB1dF9idWRnZXQJPSBzY3NpX21xX3B1dF9idWRnZXQsCisJLnF1ZXVlX3JxCT0gc2NzaV9xdWV1ZV9ycSwKKwkuY29tcGxldGUJPSBzY3NpX3NvZnRpcnFfZG9uZSwKKwkudGltZW91dAk9IHNjc2lfdGltZW91dCwKKyNpZmRlZiBDT05GSUdfQkxLX0RFQlVHX0ZTCisJLnNob3dfcnEJPSBzY3NpX3Nob3dfcnEsCisjZW5kaWYKKwkuaW5pdF9yZXF1ZXN0CT0gc2NzaV9tcV9pbml0X3JlcXVlc3QsCisJLmV4aXRfcmVxdWVzdAk9IHNjc2lfbXFfZXhpdF9yZXF1ZXN0LAorCS5pbml0aWFsaXplX3JxX2ZuID0gc2NzaV9pbml0aWFsaXplX3JxLAorCS5idXN5CQk9IHNjc2lfbXFfbGxkX2J1c3ksCisJLm1hcF9xdWV1ZXMJPSBzY3NpX21hcF9xdWV1ZXMsCit9OworCisKK3N0YXRpYyB2b2lkIHNjc2lfY29tbWl0X3JxcyhzdHJ1Y3QgYmxrX21xX2h3X2N0eCAqaGN0eCkKK3sKKwlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGhjdHgtPnF1ZXVlOworCXN0cnVjdCBzY3NpX2RldmljZSAqc2RldiA9IHEtPnF1ZXVlZGF0YTsKKwlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IHNkZXYtPmhvc3Q7CisKKwlzaG9zdC0+aG9zdHQtPmNvbW1pdF9ycXMoc2hvc3QsIGhjdHgtPnF1ZXVlX251bSk7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmxrX21xX29wcyBzY3NpX21xX29wcyA9IHsKIAkuZ2V0X2J1ZGdldAk9IHNjc2lfbXFfZ2V0X2J1ZGdldCwKIAkucHV0X2J1ZGdldAk9IHNjc2lfbXFfcHV0X2J1ZGdldCwKIAkucXVldWVfcnEJPSBzY3NpX3F1ZXVlX3JxLAorCS5jb21taXRfcnFzCT0gc2NzaV9jb21taXRfcnFzLAogCS5jb21wbGV0ZQk9IHNjc2lfc29mdGlycV9kb25lLAogCS50aW1lb3V0CT0gc2NzaV90aW1lb3V0LAogI2lmZGVmIENPTkZJR19CTEtfREVCVUdfRlMKQEAgLTE4NjEsNyArMTg4OSwxMCBAQCBpbnQgc2NzaV9tcV9zZXR1cF90YWdzKHN0cnVjdCBTY3NpX0hvc3QgKnNob3N0KQogCQkJc2l6ZW9mKHN0cnVjdCBzY2F0dGVybGlzdCkgKiBTQ1NJX0lOTElORV9QUk9UX1NHX0NOVDsKIAogCW1lbXNldCgmc2hvc3QtPnRhZ19zZXQsIDAsIHNpemVvZihzaG9zdC0+dGFnX3NldCkpOwotCXNob3N0LT50YWdfc2V0Lm9wcyA9ICZzY3NpX21xX29wczsKKwlpZiAoc2hvc3QtPmhvc3R0LT5jb21taXRfcnFzKQorCQlzaG9zdC0+dGFnX3NldC5vcHMgPSAmc2NzaV9tcV9vcHM7CisJZWxzZQorCQlzaG9zdC0+dGFnX3NldC5vcHMgPSAmc2NzaV9tcV9vcHNfbm9fY29tbWl0OwogCXNob3N0LT50YWdfc2V0Lm5yX2h3X3F1ZXVlcyA9IHNob3N0LT5ucl9od19xdWV1ZXMgPyA6IDE7CiAJc2hvc3QtPnRhZ19zZXQucXVldWVfZGVwdGggPSBzaG9zdC0+Y2FuX3F1ZXVlOwogCXNob3N0LT50YWdfc2V0LmNtZF9zaXplID0gY21kX3NpemU7CkBAIC0yNjkxLDYgKzI3MjIsMTQgQEAgdm9pZCBzY3NpX3N0YXJ0X3F1ZXVlKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldikKIGludCBzY3NpX2ludGVybmFsX2RldmljZV91bmJsb2NrX25vd2FpdChzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsCiAJCQkJCWVudW0gc2NzaV9kZXZpY2Vfc3RhdGUgbmV3X3N0YXRlKQogeworCXN3aXRjaCAobmV3X3N0YXRlKSB7CisJY2FzZSBTREVWX1JVTk5JTkc6CisJY2FzZSBTREVWX1RSQU5TUE9SVF9PRkZMSU5FOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAkvKgogCSAqIFRyeSB0byB0cmFuc2l0aW9uIHRoZSBzY3NpIGRldmljZSB0byBTREVWX1JVTk5JTkcgb3Igb25lIG9mIHRoZQogCSAqIG9mZmxpbmVkIHN0YXRlcyBhbmQgZ29vc2UgdGhlIGRldmljZSBxdWV1ZSBpZiBzdWNjZXNzZnVsLgpAQCAtMjc0OCw3ICsyNzg3LDEyIEBAIHN0YXRpYyBpbnQgc2NzaV9pbnRlcm5hbF9kZXZpY2VfdW5ibG9jayhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsCiBzdGF0aWMgdm9pZAogZGV2aWNlX2Jsb2NrKHN0cnVjdCBzY3NpX2RldmljZSAqc2Rldiwgdm9pZCAqZGF0YSkKIHsKLQlzY3NpX2ludGVybmFsX2RldmljZV9ibG9jayhzZGV2KTsKKwlpbnQgcmV0OworCisJcmV0ID0gc2NzaV9pbnRlcm5hbF9kZXZpY2VfYmxvY2soc2Rldik7CisKKwlXQVJOX09OQ0UocmV0LCAic2NzaV9pbnRlcm5hbF9kZXZpY2VfYmxvY2soJXMpIGZhaWxlZDogcmV0ID0gJWRcbiIsCisJCSAgZGV2X25hbWUoJnNkZXYtPnNkZXZfZ2VuZGV2KSwgcmV0KTsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Njc2lfbG9nZ2luZy5jIGIvZHJpdmVycy9zY3NpL3Njc2lfbG9nZ2luZy5jCmluZGV4IDM5YjhjYzQuLmM2ZWQwYjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zY3NpX2xvZ2dpbmcuYworKysgYi9kcml2ZXJzL3Njc2kvc2NzaV9sb2dnaW5nLmMKQEAgLTE1LDU3ICsxNSwxNSBAQAogI2luY2x1ZGUgPHNjc2kvc2NzaV9laC5oPgogI2luY2x1ZGUgPHNjc2kvc2NzaV9kYmcuaD4KIAotI2RlZmluZSBTQ1NJX0xPR19TUE9PTFNJWkUgNDA5NgotCi0jaWYgKFNDU0lfTE9HX1NQT09MU0laRSAvIFNDU0lfTE9HX0JVRlNJWkUpID4gQklUU19QRVJfTE9ORwotI3dhcm5pbmcgU0NTSSBsb2dnaW5nIGJpdG1hc2sgdG9vIGxhcmdlCi0jZW5kaWYKLQotc3RydWN0IHNjc2lfbG9nX2J1ZiB7Ci0JY2hhciBidWZmZXJbU0NTSV9MT0dfU1BPT0xTSVpFXTsKLQl1bnNpZ25lZCBsb25nIG1hcDsKLX07Ci0KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qgc2NzaV9sb2dfYnVmLCBzY3NpX2Zvcm1hdF9sb2cpOwotCiBzdGF0aWMgY2hhciAqc2NzaV9sb2dfcmVzZXJ2ZV9idWZmZXIoc2l6ZV90ICpsZW4pCiB7Ci0Jc3RydWN0IHNjc2lfbG9nX2J1ZiAqYnVmOwotCXVuc2lnbmVkIGxvbmcgbWFwX2JpdHMgPSBzaXplb2YoYnVmLT5idWZmZXIpIC8gU0NTSV9MT0dfQlVGU0laRTsKLQl1bnNpZ25lZCBsb25nIGlkeCA9IDA7Ci0KLQlwcmVlbXB0X2Rpc2FibGUoKTsKLQlidWYgPSB0aGlzX2NwdV9wdHIoJnNjc2lfZm9ybWF0X2xvZyk7Ci0JaWR4ID0gZmluZF9maXJzdF96ZXJvX2JpdCgmYnVmLT5tYXAsIG1hcF9iaXRzKTsKLQlpZiAobGlrZWx5KGlkeCA8IG1hcF9iaXRzKSkgewotCQl3aGlsZSAodGVzdF9hbmRfc2V0X2JpdChpZHgsICZidWYtPm1hcCkpIHsKLQkJCWlkeCA9IGZpbmRfbmV4dF96ZXJvX2JpdCgmYnVmLT5tYXAsIG1hcF9iaXRzLCBpZHgpOwotCQkJaWYgKGlkeCA+PSBtYXBfYml0cykKLQkJCQlicmVhazsKLQkJfQotCX0KLQlpZiAoV0FSTl9PTihpZHggPj0gbWFwX2JpdHMpKSB7Ci0JCXByZWVtcHRfZW5hYmxlKCk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQkqbGVuID0gU0NTSV9MT0dfQlVGU0laRTsKLQlyZXR1cm4gYnVmLT5idWZmZXIgKyBpZHggKiBTQ1NJX0xPR19CVUZTSVpFOworCSpsZW4gPSAxMjg7CisJcmV0dXJuIGttYWxsb2MoKmxlbiwgR0ZQX0FUT01JQyk7CiB9CiAKIHN0YXRpYyB2b2lkIHNjc2lfbG9nX3JlbGVhc2VfYnVmZmVyKGNoYXIgKmJ1ZnB0cikKIHsKLQlzdHJ1Y3Qgc2NzaV9sb2dfYnVmICpidWY7Ci0JdW5zaWduZWQgbG9uZyBpZHg7Ci0JaW50IHJldDsKLQotCWJ1ZiA9IHRoaXNfY3B1X3B0cigmc2NzaV9mb3JtYXRfbG9nKTsKLQlpZiAoYnVmcHRyID49IGJ1Zi0+YnVmZmVyICYmCi0JICAgIGJ1ZnB0ciA8IGJ1Zi0+YnVmZmVyICsgU0NTSV9MT0dfU1BPT0xTSVpFKSB7Ci0JCWlkeCA9IChidWZwdHIgLSBidWYtPmJ1ZmZlcikgLyBTQ1NJX0xPR19CVUZTSVpFOwotCQlyZXQgPSB0ZXN0X2FuZF9jbGVhcl9iaXQoaWR4LCAmYnVmLT5tYXApOwotCQlXQVJOX09OKCFyZXQpOwotCX0KLQlwcmVlbXB0X2VuYWJsZSgpOworCWtmcmVlKGJ1ZnB0cik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqc2NtZF9uYW1lKGNvbnN0IHN0cnVjdCBzY3NpX2NtbmQgKnNjbWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2QuYyBiL2RyaXZlcnMvc2NzaS9zZC5jCmluZGV4IDRiOTI1NTUyNC4uNTA5MjhiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NkLmMKKysrIGIvZHJpdmVycy9zY3NpL3NkLmMKQEAgLTEyMTEsOSArMTIxMSw2IEBAIHN0YXRpYyBibGtfc3RhdHVzX3Qgc2Rfc2V0dXBfcmVhZF93cml0ZV9jbW5kKHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKIAlkaXggPSBzY3NpX3Byb3Rfc2dfY291bnQoY21kKTsKIAlkaWYgPSBzY3NpX2hvc3RfZGlmX2NhcGFibGUoY21kLT5kZXZpY2UtPmhvc3QsIHNka3AtPnByb3RlY3Rpb25fdHlwZSk7CiAKLQlpZiAod3JpdGUgJiYgZGl4KQotCQl0MTBfcGlfcHJlcGFyZShjbWQtPnJlcXVlc3QsIHNka3AtPnByb3RlY3Rpb25fdHlwZSk7Ci0KIAlpZiAoZGlmIHx8IGRpeCkKIAkJcHJvdGVjdCA9IHNkX3NldHVwX3Byb3RlY3RfY21uZChjbWQsIGRpeCwgZGlmKTsKIAllbHNlCkBAIC0xOTgxLDYgKzE5NzgsNyBAQCBzdGF0aWMgaW50IHNkX2RvbmUoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQpCiAJCQlzZF9wcmludGsoS0VSTl9JTkZPLCBzZGtwLAogCQkJCSJVbmFsaWduZWQgcGFydGlhbCBjb21wbGV0aW9uIChyZXNpZD0ldSwgc2VjdG9yX3N6PSV1KVxuIiwKIAkJCQlyZXNpZCwgc2VjdG9yX3NpemUpOworCQkJc2NzaV9wcmludF9jb21tYW5kKFNDcG50KTsKIAkJCXJlc2lkID0gbWluKHNjc2lfYnVmZmxlbihTQ3BudCksCiAJCQkJICAgIHJvdW5kX3VwKHJlc2lkLCBzZWN0b3Jfc2l6ZSkpOwogCQkJc2NzaV9zZXRfcmVzaWQoU0NwbnQsIHJlc2lkKTsKQEAgLTIwNTQsMTEgKzIwNTIsNiBAQCBzdGF0aWMgaW50IHNkX2RvbmUoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQpCiAJCQkJCSAgICJzZF9kb25lOiBjb21wbGV0ZWQgJWQgb2YgJWQgYnl0ZXNcbiIsCiAJCQkJCSAgIGdvb2RfYnl0ZXMsIHNjc2lfYnVmZmxlbihTQ3BudCkpKTsKIAotCWlmIChycV9kYXRhX2RpcihTQ3BudC0+cmVxdWVzdCkgPT0gUkVBRCAmJiBzY3NpX3Byb3Rfc2dfY291bnQoU0NwbnQpICYmCi0JICAgIGdvb2RfYnl0ZXMpCi0JCXQxMF9waV9jb21wbGV0ZShTQ3BudC0+cmVxdWVzdCwgc2RrcC0+cHJvdGVjdGlvbl90eXBlLAotCQkJCWdvb2RfYnl0ZXMgLyBzY3NpX3Byb3RfaW50ZXJ2YWwoU0NwbnQpKTsKLQogCXJldHVybiBnb29kX2J5dGVzOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc21hcnRwcWkvS2NvbmZpZyBiL2RyaXZlcnMvc2NzaS9zbWFydHBxaS9LY29uZmlnCmluZGV4IDk3ZTE1OWMuLmJjNjUwNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zbWFydHBxaS9LY29uZmlnCisrKyBiL2RyaXZlcnMvc2NzaS9zbWFydHBxaS9LY29uZmlnCkBAIC0xLDYgKzEsOCBAQAogIwogIyBLZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGZvciB0aGUgU01BUlRQUUkKICMKKyMgQ29weXJpZ2h0IChjKSAyMDE5IE1pY3JvY2hpcCBUZWNobm9sb2d5IEluYy4gYW5kIGl0cyBzdWJzaWRpYXJpZXMKKyMgQ29weXJpZ2h0IChjKSAyMDE3LTIwMTggTWljcm9zZW1pIENvcnBvcmF0aW9uCiAjIENvcHlyaWdodCAoYykgMjAxNiBNaWNyb3NlbWkgQ29ycG9yYXRpb24KICMgQ29weXJpZ2h0IChjKSAyMDE2IFBNQy1TaWVycmEsIEluYy4KICMgIChtYWlsdG86ZXNjLnN0b3JhZ2VkZXZAbWljcm9zZW1pLmNvbSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zbWFydHBxaS9zbWFydHBxaS5oIGIvZHJpdmVycy9zY3NpL3NtYXJ0cHFpL3NtYXJ0cHFpLmgKaW5kZXggZThlNzY4OC4uNzlkMmFmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NtYXJ0cHFpL3NtYXJ0cHFpLmgKKysrIGIvZHJpdmVycy9zY3NpL3NtYXJ0cHFpL3NtYXJ0cHFpLmgKQEAgLTgyMiw2ICs4MjIsNyBAQCB1bmlvbiBwcWlfcmVzZXRfcmVnaXN0ZXIgewogI2RlZmluZSBQUUlfSEJBX0JVUwkJCTIKICNkZWZpbmUgUFFJX0VYVEVSTkFMX1JBSURfVk9MVU1FX0JVUwkzCiAjZGVmaW5lIFBRSV9NQVhfQlVTCQkJUFFJX0VYVEVSTkFMX1JBSURfVk9MVU1FX0JVUworI2RlZmluZSBQUUlfVlNFUF9DSVNTX0JUTAkJMzc5CiAKIHN0cnVjdCByZXBvcnRfbHVuX2hlYWRlciB7CiAJX19iZTMyCWxpc3RfbGVuZ3RoOwpAQCAtOTMwLDYgKzkzMSw5IEBAIHN0cnVjdCBwcWlfc2NzaV9kZXYgewogCXU4CWFjdGl2ZV9wYXRoX2luZGV4OwogCXU4CXBhdGhfbWFwOwogCXU4CWJheTsKKwl1OAlib3hfaW5kZXg7CisJdTgJcGh5c19ib3hfb25fYnVzOworCXU4CXBoeV9jb25uZWN0ZWRfZGV2X3R5cGU7CiAJdTgJYm94WzhdOwogCXUxNglwaHlzX2Nvbm5lY3Rvcls4XTsKIAlib29sCXJhaWRfYnlwYXNzX2NvbmZpZ3VyZWQ7CS8qIFJBSUQgYnlwYXNzIGNvbmZpZ3VyZWQgKi8KQEAgLTEwNzMsNiArMTA3Nyw5IEBAIHN0cnVjdCBwcWlfY3RybF9pbmZvIHsKIAl1bnNpZ25lZCBpbnQJY3RybF9pZDsKIAlzdHJ1Y3QgcGNpX2RldgkqcGNpX2RldjsKIAljaGFyCQlmaXJtd2FyZV92ZXJzaW9uWzExXTsKKwljaGFyCQlzZXJpYWxfbnVtYmVyWzE3XTsKKwljaGFyCQltb2RlbFsxN107CisJY2hhcgkJdmVuZG9yWzldOwogCXZvaWQgX19pb21lbQkqaW9tZW1fYmFzZTsKIAlzdHJ1Y3QgcHFpX2N0cmxfcmVnaXN0ZXJzIF9faW9tZW0gKnJlZ2lzdGVyczsKIAlzdHJ1Y3QgcHFpX2RldmljZV9yZWdpc3RlcnMgX19pb21lbSAqcHFpX3JlZ2lzdGVyczsKQEAgLTEyMjQsMTIgKzEyMzEsMjEgQEAgc3RydWN0IGJtaWNfaWRlbnRpZnlfY29udHJvbGxlciB7CiAJX19sZTE2CWV4dGVuZGVkX2xvZ2ljYWxfdW5pdF9jb3VudDsKIAl1OAlyZXNlcnZlZDFbMzRdOwogCV9fbGUxNglmaXJtd2FyZV9idWlsZF9udW1iZXI7Ci0JdTgJcmVzZXJ2ZWQyWzEwMF07CisJdTgJcmVzZXJ2ZWQyWzhdOworCXU4CXZlbmRvcl9pZFs4XTsKKwl1OAlwcm9kdWN0X2lkWzE2XTsKKwl1OAlyZXNlcnZlZDNbNjhdOwogCXU4CWNvbnRyb2xsZXJfbW9kZTsKLQl1OAlyZXNlcnZlZDNbMzJdOworCXU4CXJlc2VydmVkNFszMl07Cit9OworCitzdHJ1Y3QgYm1pY19zZW5zZV9zdWJzeXN0ZW1faW5mbyB7CisJdTgJcmVzZXJ2ZWRbNDRdOworCXU4CWN0cmxfc2VyaWFsX251bWJlclsxNl07CiB9OwogCiAjZGVmaW5lIFNBX0VYUEFOREVSX1NNUF9ERVZJQ0UJCTB4MDUKKyNkZWZpbmUgU0FfQ09OVFJPTExFUl9ERVZJQ0UJCTB4MDcKIC8qU0NTSSBJbnZhbGlkIERldmljZSBUeXBlIGZvciBTQVMgZGV2aWNlcyovCiAjZGVmaW5lIFBRSV9TQVNfU0NTSV9JTlZBTElEX0RFVlRZUEUJMHhmZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc21hcnRwcWkvc21hcnRwcWlfaW5pdC5jIGIvZHJpdmVycy9zY3NpL3NtYXJ0cHFpL3NtYXJ0cHFpX2luaXQuYwppbmRleCA4ZmQ1ZmZjLi5lYTU0MDliIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc21hcnRwcWkvc21hcnRwcWlfaW5pdC5jCisrKyBiL2RyaXZlcnMvc2NzaS9zbWFydHBxaS9zbWFydHBxaV9pbml0LmMKQEAgLTMzLDExICszMywxMSBAQAogI2RlZmluZSBCVUlMRF9USU1FU1RBTVAKICNlbmRpZgogCi0jZGVmaW5lIERSSVZFUl9WRVJTSU9OCQkiMS4yLjYtMDE1IgorI2RlZmluZSBEUklWRVJfVkVSU0lPTgkJIjEuMi44LTAyNiIKICNkZWZpbmUgRFJJVkVSX01BSk9SCQkxCiAjZGVmaW5lIERSSVZFUl9NSU5PUgkJMgotI2RlZmluZSBEUklWRVJfUkVMRUFTRQkJNgotI2RlZmluZSBEUklWRVJfUkVWSVNJT04JCTE1CisjZGVmaW5lIERSSVZFUl9SRUxFQVNFCQk4CisjZGVmaW5lIERSSVZFUl9SRVZJU0lPTgkJMjYKIAogI2RlZmluZSBEUklWRVJfTkFNRQkJIk1pY3Jvc2VtaSBQUUkgRHJpdmVyICh2IiBcCiAJCQkJRFJJVkVSX1ZFUlNJT04gQlVJTERfVElNRVNUQU1QICIpIgpAQCAtMTQ1LDYgKzE0NSwxOCBAQCBNT0RVTEVfUEFSTV9ERVNDKGxvY2t1cF9hY3Rpb24sICJBY3Rpb24gdG8gdGFrZSB3aGVuIGNvbnRyb2xsZXIgbG9ja2VkIHVwLlxuIgogCSJcdFx0U3VwcG9ydGVkOiBub25lLCByZWJvb3QsIHBhbmljXG4iCiAJIlx0XHREZWZhdWx0OiBub25lIik7CiAKK3N0YXRpYyBpbnQgcHFpX2V4cG9zZV9sZF9maXJzdDsKK21vZHVsZV9wYXJhbV9uYW1lZChleHBvc2VfbGRfZmlyc3QsCisJcHFpX2V4cG9zZV9sZF9maXJzdCwgaW50LCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoZXhwb3NlX2xkX2ZpcnN0LAorCSJFeHBvc2UgbG9naWNhbCBkcml2ZXMgYmVmb3JlIHBoeXNpY2FsIGRyaXZlcy4iKTsKKworc3RhdGljIGludCBwcWlfaGlkZV92c2VwOworbW9kdWxlX3BhcmFtX25hbWVkKGhpZGVfdnNlcCwKKwlwcWlfaGlkZV92c2VwLCBpbnQsIDA2NDQpOworTU9EVUxFX1BBUk1fREVTQyhoaWRlX3ZzZXAsCisJIkhpZGUgdGhlIHZpcnR1YWwgU0VQIGZvciBkaXJlY3QgYXR0YWNoZWQgZHJpdmVzLiIpOworCiBzdGF0aWMgY2hhciAqcmFpZF9sZXZlbHNbXSA9IHsKIAkiUkFJRC0wIiwKIAkiUkFJRC00IiwKQEAgLTQ3Miw2ICs0ODQsNyBAQCBzdGF0aWMgaW50IHBxaV9idWlsZF9yYWlkX3BhdGhfcmVxdWVzdChzdHJ1Y3QgcHFpX2N0cmxfaW5mbyAqY3RybF9pbmZvLAogCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIEJNSUNfSURFTlRJRllfQ09OVFJPTExFUjoKIAljYXNlIEJNSUNfSURFTlRJRllfUEhZU0lDQUxfREVWSUNFOgorCWNhc2UgQk1JQ19TRU5TRV9TVUJTWVNURU1fSU5GT1JNQVRJT046CiAJCXJlcXVlc3QtPmRhdGFfZGlyZWN0aW9uID0gU09QX1JFQURfRkxBRzsKIAkJY2RiWzBdID0gQk1JQ19SRUFEOwogCQljZGJbNl0gPSBjbWQ7CkBAIC02MDAsNiArNjEzLDE0IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBxaV9pZGVudGlmeV9jb250cm9sbGVyKHN0cnVjdCBwcWlfY3RybF9pbmZvICpjdHJsX2luZm8sCiAJCQlidWZmZXIsIHNpemVvZigqYnVmZmVyKSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHBxaV9zZW5zZV9zdWJzeXN0ZW1faW5mbyhzdHJ1Y3QgIHBxaV9jdHJsX2luZm8gKmN0cmxfaW5mbywKKwkJc3RydWN0IGJtaWNfc2Vuc2Vfc3Vic3lzdGVtX2luZm8gKnNlbnNlX2luZm8pCit7CisJcmV0dXJuIHBxaV9zZW5kX2N0cmxfcmFpZF9yZXF1ZXN0KGN0cmxfaW5mbywKKwkJCUJNSUNfU0VOU0VfU1VCU1lTVEVNX0lORk9STUFUSU9OLAorCQkJc2Vuc2VfaW5mbywgc2l6ZW9mKCpzZW5zZV9pbmZvKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IHBxaV9zY3NpX2lucXVpcnkoc3RydWN0IHBxaV9jdHJsX2luZm8gKmN0cmxfaW5mbywKIAl1OCAqc2NzaTNhZGRyLCB1MTYgdnBkX3BhZ2UsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmZlcl9sZW5ndGgpCiB7CkBAIC0xMzkyLDcgKzE0MTMsOSBAQCBzdGF0aWMgdm9pZCBwcWlfZ2V0X3BoeXNpY2FsX2Rpc2tfaW5mbyhzdHJ1Y3QgcHFpX2N0cmxfaW5mbyAqY3RybF9pbmZvLAogCQlkZXZpY2UtPnF1ZXVlX2RlcHRoID0gUFFJX1BIWVNJQ0FMX0RJU0tfREVGQVVMVF9NQVhfUVVFVUVfREVQVEg7CiAJCXJldHVybjsKIAl9Ci0KKwlkZXZpY2UtPmJveF9pbmRleCA9IGlkX3BoeXMtPmJveF9pbmRleDsKKwlkZXZpY2UtPnBoeXNfYm94X29uX2J1cyA9IGlkX3BoeXMtPnBoeXNfYm94X29uX2J1czsKKwlkZXZpY2UtPnBoeV9jb25uZWN0ZWRfZGV2X3R5cGUgPSBpZF9waHlzLT5waHlfY29ubmVjdGVkX2Rldl90eXBlWzBdOwogCWRldmljZS0+cXVldWVfZGVwdGggPQogCQlnZXRfdW5hbGlnbmVkX2xlMTYoJmlkX3BoeXMtPmN1cnJlbnRfcXVldWVfZGVwdGhfbGltaXQpOwogCWRldmljZS0+ZGV2aWNlX3R5cGUgPSBpZF9waHlzLT5kZXZpY2VfdHlwZTsKQEAgLTE3MTksNiArMTc0MiwxMCBAQCBzdGF0aWMgdm9pZCBwcWlfc2NzaV91cGRhdGVfZGV2aWNlKHN0cnVjdCBwcWlfc2NzaV9kZXYgKmV4aXN0aW5nX2RldmljZSwKIAlleGlzdGluZ19kZXZpY2UtPmFjdGl2ZV9wYXRoX2luZGV4ID0gbmV3X2RldmljZS0+YWN0aXZlX3BhdGhfaW5kZXg7CiAJZXhpc3RpbmdfZGV2aWNlLT5wYXRoX21hcCA9IG5ld19kZXZpY2UtPnBhdGhfbWFwOwogCWV4aXN0aW5nX2RldmljZS0+YmF5ID0gbmV3X2RldmljZS0+YmF5OworCWV4aXN0aW5nX2RldmljZS0+Ym94X2luZGV4ID0gbmV3X2RldmljZS0+Ym94X2luZGV4OworCWV4aXN0aW5nX2RldmljZS0+cGh5c19ib3hfb25fYnVzID0gbmV3X2RldmljZS0+cGh5c19ib3hfb25fYnVzOworCWV4aXN0aW5nX2RldmljZS0+cGh5X2Nvbm5lY3RlZF9kZXZfdHlwZSA9CisJCW5ld19kZXZpY2UtPnBoeV9jb25uZWN0ZWRfZGV2X3R5cGU7CiAJbWVtY3B5KGV4aXN0aW5nX2RldmljZS0+Ym94LCBuZXdfZGV2aWNlLT5ib3gsCiAJCXNpemVvZihleGlzdGluZ19kZXZpY2UtPmJveCkpOwogCW1lbWNweShleGlzdGluZ19kZXZpY2UtPnBoeXNfY29ubmVjdG9yLCBuZXdfZGV2aWNlLT5waHlzX2Nvbm5lY3RvciwKQEAgLTE5NDUsNiArMTk3MiwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcHFpX3NraXBfZGV2aWNlKHU4ICpzY3NpM2FkZHIpCiAJcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgcHFpX21hc2tfZGV2aWNlKHU4ICpzY3NpM2FkZHIpCit7CisJc2NzaTNhZGRyWzNdIHw9IDB4YzA7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBwcWlfaXNfZGV2aWNlX3dpdGhfc2FzX2FkZHJlc3Moc3RydWN0IHBxaV9zY3NpX2RldiAqZGV2aWNlKQogewogCWlmICghZGV2aWNlLT5pc19waHlzaWNhbF9kZXZpY2UpCkBAIC0xOTg4LDYgKzIwMjAsOCBAQCBzdGF0aWMgaW50IHBxaV91cGRhdGVfc2NzaV9kZXZpY2VzKHN0cnVjdCBwcWlfY3RybF9pbmZvICpjdHJsX2luZm8pCiAJdW5zaWduZWQgaW50IG51bV92YWxpZF9kZXZpY2VzOwogCWJvb2wgaXNfcGh5c2ljYWxfZGV2aWNlOwogCXU4ICpzY3NpM2FkZHI7CisJdW5zaWduZWQgaW50IHBoeXNpY2FsX2luZGV4OworCXVuc2lnbmVkIGludCBsb2dpY2FsX2luZGV4OwogCXN0YXRpYyBjaGFyICpvdXRfb2ZfbWVtb3J5X21zZyA9CiAJCSJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5LCBkZXZpY2UgZGlzY292ZXJ5IHN0b3BwZWQiOwogCkBAIC0yMDIzLDYgKzIwNTcsMjEgQEAgc3RhdGljIGludCBwcWlfdXBkYXRlX3Njc2lfZGV2aWNlcyhzdHJ1Y3QgcHFpX2N0cmxfaW5mbyAqY3RybF9pbmZvKQogCQkJcmMgPSAtRU5PTUVNOwogCQkJZ290byBvdXQ7CiAJCX0KKwkJaWYgKHBxaV9oaWRlX3ZzZXApIHsKKwkJCWludCBpOworCisJCQlmb3IgKGkgPSBudW1fcGh5c2ljYWxzIC0gMTsgaSA+PSAwOyBpLS0pIHsKKwkJCQlwaHlzX2x1bl9leHRfZW50cnkgPQorCQkJCQkJJnBoeXNkZXZfbGlzdC0+bHVuX2VudHJpZXNbaV07CisJCQkJaWYgKENJU1NfR0VUX0RSSVZFX05VTUJFUigKKwkJCQkJcGh5c19sdW5fZXh0X2VudHJ5LT5sdW5pZCkgPT0KKwkJCQkJCVBRSV9WU0VQX0NJU1NfQlRMKSB7CisJCQkJCXBxaV9tYXNrX2RldmljZSgKKwkJCQkJCXBoeXNfbHVuX2V4dF9lbnRyeS0+bHVuaWQpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCX0KIAl9CiAKIAludW1fbmV3X2RldmljZXMgPSBudW1fcGh5c2ljYWxzICsgbnVtX2xvZ2ljYWxzOwpAQCAtMjA1MCwxOSArMjA5OSwyMyBAQCBzdGF0aWMgaW50IHBxaV91cGRhdGVfc2NzaV9kZXZpY2VzKHN0cnVjdCBwcWlfY3RybF9pbmZvICpjdHJsX2luZm8pCiAKIAlkZXZpY2UgPSBOVUxMOwogCW51bV92YWxpZF9kZXZpY2VzID0gMDsKKwlwaHlzaWNhbF9pbmRleCA9IDA7CisJbG9naWNhbF9pbmRleCA9IDA7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX25ld19kZXZpY2VzOyBpKyspIHsKIAotCQlpZiAoaSA8IG51bV9waHlzaWNhbHMpIHsKKwkJaWYgKCghcHFpX2V4cG9zZV9sZF9maXJzdCAmJiBpIDwgbnVtX3BoeXNpY2FscykgfHwKKwkJCShwcWlfZXhwb3NlX2xkX2ZpcnN0ICYmIGkgPj0gbnVtX2xvZ2ljYWxzKSkgewogCQkJaXNfcGh5c2ljYWxfZGV2aWNlID0gdHJ1ZTsKLQkJCXBoeXNfbHVuX2V4dF9lbnRyeSA9ICZwaHlzZGV2X2xpc3QtPmx1bl9lbnRyaWVzW2ldOworCQkJcGh5c19sdW5fZXh0X2VudHJ5ID0KKwkJCQkmcGh5c2Rldl9saXN0LT5sdW5fZW50cmllc1twaHlzaWNhbF9pbmRleCsrXTsKIAkJCWxvZ19sdW5fZXh0X2VudHJ5ID0gTlVMTDsKIAkJCXNjc2kzYWRkciA9IHBoeXNfbHVuX2V4dF9lbnRyeS0+bHVuaWQ7CiAJCX0gZWxzZSB7CiAJCQlpc19waHlzaWNhbF9kZXZpY2UgPSBmYWxzZTsKIAkJCXBoeXNfbHVuX2V4dF9lbnRyeSA9IE5VTEw7CiAJCQlsb2dfbHVuX2V4dF9lbnRyeSA9Ci0JCQkJJmxvZ2Rldl9saXN0LT5sdW5fZW50cmllc1tpIC0gbnVtX3BoeXNpY2Fsc107CisJCQkJJmxvZ2Rldl9saXN0LT5sdW5fZW50cmllc1tsb2dpY2FsX2luZGV4KytdOwogCQkJc2NzaTNhZGRyID0gbG9nX2x1bl9leHRfZW50cnktPmx1bmlkOwogCQl9CiAKQEAgLTIxMjIsMTEgKzIxNzUsMTAgQEAgc3RhdGljIGludCBwcWlfdXBkYXRlX3Njc2lfZGV2aWNlcyhzdHJ1Y3QgcHFpX2N0cmxfaW5mbyAqY3RybF9pbmZvKQogCQkJCQlkZXZpY2UtPmFpb19oYW5kbGUgPQogCQkJCQkJcGh5c19sdW5fZXh0X2VudHJ5LT5haW9faGFuZGxlOwogCQkJfQotCQkJaWYgKGRldmljZS0+ZGV2dHlwZSA9PSBUWVBFX0RJU0sgfHwKLQkJCQlkZXZpY2UtPmRldnR5cGUgPT0gVFlQRV9aQkMpIHsKKwogCQkJCXBxaV9nZXRfcGh5c2ljYWxfZGlza19pbmZvKGN0cmxfaW5mbywKIAkJCQkJZGV2aWNlLCBpZF9waHlzKTsKLQkJCX0KKwogCQl9IGVsc2UgewogCQkJbWVtY3B5KGRldmljZS0+dm9sdW1lX2lkLCBsb2dfbHVuX2V4dF9lbnRyeS0+dm9sdW1lX2lkLAogCQkJCXNpemVvZihkZXZpY2UtPnZvbHVtZV9pZCkpOwpAQCAtMjE4NCwxOCArMjIzNiwyMCBAQCBzdGF0aWMgdm9pZCBwcWlfcmVtb3ZlX2FsbF9zY3NpX2RldmljZXMoc3RydWN0IHBxaV9jdHJsX2luZm8gKmN0cmxfaW5mbykKIAogc3RhdGljIGludCBwcWlfc2Nhbl9zY3NpX2RldmljZXMoc3RydWN0IHBxaV9jdHJsX2luZm8gKmN0cmxfaW5mbykKIHsKLQlpbnQgcmM7CisJaW50IHJjID0gMDsKIAogCWlmIChwcWlfY3RybF9vZmZsaW5lKGN0cmxfaW5mbykpCiAJCXJldHVybiAtRU5YSU87CiAKLQltdXRleF9sb2NrKCZjdHJsX2luZm8tPnNjYW5fbXV0ZXgpOwotCi0JcmMgPSBwcWlfdXBkYXRlX3Njc2lfZGV2aWNlcyhjdHJsX2luZm8pOwotCWlmIChyYykKKwlpZiAoIW11dGV4X3RyeWxvY2soJmN0cmxfaW5mby0+c2Nhbl9tdXRleCkpIHsKIAkJcHFpX3NjaGVkdWxlX3Jlc2Nhbl93b3JrZXJfZGVsYXllZChjdHJsX2luZm8pOwotCi0JbXV0ZXhfdW5sb2NrKCZjdHJsX2luZm8tPnNjYW5fbXV0ZXgpOworCQlyYyA9IC1FSU5QUk9HUkVTUzsKKwl9IGVsc2UgeworCQlyYyA9IHBxaV91cGRhdGVfc2NzaV9kZXZpY2VzKGN0cmxfaW5mbyk7CisJCWlmIChyYykKKwkJCXBxaV9zY2hlZHVsZV9yZXNjYW5fd29ya2VyX2RlbGF5ZWQoY3RybF9pbmZvKTsKKwkJbXV0ZXhfdW5sb2NrKCZjdHJsX2luZm8tPnNjYW5fbXV0ZXgpOworCX0KIAogCXJldHVybiByYzsKIH0KQEAgLTYwOTEsMjMgKzYxNDUsNjUgQEAgc3RhdGljIGludCBwcWlfaW9jdGwoc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2LCB1bnNpZ25lZCBpbnQgY21kLAogCXJldHVybiByYzsKIH0KIAotc3RhdGljIHNzaXplX3QgcHFpX3ZlcnNpb25fc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCitzdGF0aWMgc3NpemVfdCBwcWlfZmlybXdhcmVfdmVyc2lvbl9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmZmVyKQogewotCXNzaXplX3QgY291bnQgPSAwOwogCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0OwogCXN0cnVjdCBwcWlfY3RybF9pbmZvICpjdHJsX2luZm87CiAKIAlzaG9zdCA9IGNsYXNzX3RvX3Nob3N0KGRldik7CiAJY3RybF9pbmZvID0gc2hvc3RfdG9faGJhKHNob3N0KTsKIAotCWNvdW50ICs9IHNucHJpbnRmKGJ1ZmZlciArIGNvdW50LCBQQUdFX1NJWkUgLSBjb3VudCwKLQkJIiAgZHJpdmVyOiAlc1xuIiwgRFJJVkVSX1ZFUlNJT04gQlVJTERfVElNRVNUQU1QKTsKKwlyZXR1cm4gc25wcmludGYoYnVmZmVyLCBQQUdFX1NJWkUsICIlc1xuIiwgY3RybF9pbmZvLT5maXJtd2FyZV92ZXJzaW9uKTsKK30KIAotCWNvdW50ICs9IHNucHJpbnRmKGJ1ZmZlciArIGNvdW50LCBQQUdFX1NJWkUgLSBjb3VudCwKLQkJImZpcm13YXJlOiAlc1xuIiwgY3RybF9pbmZvLT5maXJtd2FyZV92ZXJzaW9uKTsKK3N0YXRpYyBzc2l6ZV90IHBxaV9kcml2ZXJfdmVyc2lvbl9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmZmVyKQoreworCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0OworCXN0cnVjdCBwcWlfY3RybF9pbmZvICpjdHJsX2luZm87CiAKLQlyZXR1cm4gY291bnQ7CisJc2hvc3QgPSBjbGFzc190b19zaG9zdChkZXYpOworCWN0cmxfaW5mbyA9IHNob3N0X3RvX2hiYShzaG9zdCk7CisKKwlyZXR1cm4gc25wcmludGYoYnVmZmVyLCBQQUdFX1NJWkUsCisJCSIlc1xuIiwgRFJJVkVSX1ZFUlNJT04gQlVJTERfVElNRVNUQU1QKTsKK30KKworc3RhdGljIHNzaXplX3QgcHFpX3NlcmlhbF9udW1iZXJfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZmZlcikKK3sKKwlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdDsKKwlzdHJ1Y3QgcHFpX2N0cmxfaW5mbyAqY3RybF9pbmZvOworCisJc2hvc3QgPSBjbGFzc190b19zaG9zdChkZXYpOworCWN0cmxfaW5mbyA9IHNob3N0X3RvX2hiYShzaG9zdCk7CisKKwlyZXR1cm4gc25wcmludGYoYnVmZmVyLCBQQUdFX1NJWkUsICIlc1xuIiwgY3RybF9pbmZvLT5zZXJpYWxfbnVtYmVyKTsKK30KKworc3RhdGljIHNzaXplX3QgcHFpX21vZGVsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAorCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWZmZXIpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3Q7CisJc3RydWN0IHBxaV9jdHJsX2luZm8gKmN0cmxfaW5mbzsKKworCXNob3N0ID0gY2xhc3NfdG9fc2hvc3QoZGV2KTsKKwljdHJsX2luZm8gPSBzaG9zdF90b19oYmEoc2hvc3QpOworCisJcmV0dXJuIHNucHJpbnRmKGJ1ZmZlciwgUEFHRV9TSVpFLCAiJXNcbiIsIGN0cmxfaW5mby0+bW9kZWwpOworfQorCitzdGF0aWMgc3NpemVfdCBwcWlfdmVuZG9yX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAorCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWZmZXIpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3Q7CisJc3RydWN0IHBxaV9jdHJsX2luZm8gKmN0cmxfaW5mbzsKKworCXNob3N0ID0gY2xhc3NfdG9fc2hvc3QoZGV2KTsKKwljdHJsX2luZm8gPSBzaG9zdF90b19oYmEoc2hvc3QpOworCisJcmV0dXJuIHNucHJpbnRmKGJ1ZmZlciwgUEFHRV9TSVpFLCAiJXNcbiIsIGN0cmxfaW5mby0+dmVuZG9yKTsKIH0KIAogc3RhdGljIHNzaXplX3QgcHFpX2hvc3RfcmVzY2FuX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKQEAgLTYxNjAsMTMgKzYyNTYsMjEgQEAgc3RhdGljIHNzaXplX3QgcHFpX2xvY2t1cF9hY3Rpb25fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCXJldHVybiAtRUlOVkFMOwogfQogCi1zdGF0aWMgREVWSUNFX0FUVFIodmVyc2lvbiwgMDQ0NCwgcHFpX3ZlcnNpb25fc2hvdywgTlVMTCk7CitzdGF0aWMgREVWSUNFX0FUVFIoZHJpdmVyX3ZlcnNpb24sIDA0NDQsIHBxaV9kcml2ZXJfdmVyc2lvbl9zaG93LCBOVUxMKTsKK3N0YXRpYyBERVZJQ0VfQVRUUihmaXJtd2FyZV92ZXJzaW9uLCAwNDQ0LCBwcWlfZmlybXdhcmVfdmVyc2lvbl9zaG93LCBOVUxMKTsKK3N0YXRpYyBERVZJQ0VfQVRUUihtb2RlbCwgMDQ0NCwgcHFpX21vZGVsX3Nob3csIE5VTEwpOworc3RhdGljIERFVklDRV9BVFRSKHNlcmlhbF9udW1iZXIsIDA0NDQsIHBxaV9zZXJpYWxfbnVtYmVyX3Nob3csIE5VTEwpOworc3RhdGljIERFVklDRV9BVFRSKHZlbmRvciwgMDQ0NCwgcHFpX3ZlbmRvcl9zaG93LCBOVUxMKTsKIHN0YXRpYyBERVZJQ0VfQVRUUihyZXNjYW4sIDAyMDAsIE5VTEwsIHBxaV9ob3N0X3Jlc2Nhbl9zdG9yZSk7CiBzdGF0aWMgREVWSUNFX0FUVFIobG9ja3VwX2FjdGlvbiwgMDY0NCwKIAlwcWlfbG9ja3VwX2FjdGlvbl9zaG93LCBwcWlfbG9ja3VwX2FjdGlvbl9zdG9yZSk7CiAKIHN0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqcHFpX3Nob3N0X2F0dHJzW10gPSB7Ci0JJmRldl9hdHRyX3ZlcnNpb24sCisJJmRldl9hdHRyX2RyaXZlcl92ZXJzaW9uLAorCSZkZXZfYXR0cl9maXJtd2FyZV92ZXJzaW9uLAorCSZkZXZfYXR0cl9tb2RlbCwKKwkmZGV2X2F0dHJfc2VyaWFsX251bWJlciwKKwkmZGV2X2F0dHJfdmVuZG9yLAogCSZkZXZfYXR0cl9yZXNjYW4sCiAJJmRldl9hdHRyX2xvY2t1cF9hY3Rpb24sCiAJTlVMTApAQCAtNjU1OCw3ICs2NjYyLDMwIEBAIHN0YXRpYyBpbnQgcHFpX3Jlc2V0KHN0cnVjdCBwcWlfY3RybF9pbmZvICpjdHJsX2luZm8pCiAJcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IHBxaV9nZXRfY3RybF9maXJtd2FyZV92ZXJzaW9uKHN0cnVjdCBwcWlfY3RybF9pbmZvICpjdHJsX2luZm8pCitzdGF0aWMgaW50IHBxaV9nZXRfY3RybF9zZXJpYWxfbnVtYmVyKHN0cnVjdCBwcWlfY3RybF9pbmZvICpjdHJsX2luZm8pCit7CisJaW50IHJjOworCXN0cnVjdCBibWljX3NlbnNlX3N1YnN5c3RlbV9pbmZvICpzZW5zZV9pbmZvOworCisJc2Vuc2VfaW5mbyA9IGt6YWxsb2Moc2l6ZW9mKCpzZW5zZV9pbmZvKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzZW5zZV9pbmZvKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJjID0gcHFpX3NlbnNlX3N1YnN5c3RlbV9pbmZvKGN0cmxfaW5mbywgc2Vuc2VfaW5mbyk7CisJaWYgKHJjKQorCQlnb3RvIG91dDsKKworCW1lbWNweShjdHJsX2luZm8tPnNlcmlhbF9udW1iZXIsIHNlbnNlX2luZm8tPmN0cmxfc2VyaWFsX251bWJlciwKKwkJc2l6ZW9mKHNlbnNlX2luZm8tPmN0cmxfc2VyaWFsX251bWJlcikpOworCWN0cmxfaW5mby0+c2VyaWFsX251bWJlcltzaXplb2Yoc2Vuc2VfaW5mby0+Y3RybF9zZXJpYWxfbnVtYmVyKV0gPSAnXDAnOworCitvdXQ6CisJa2ZyZWUoc2Vuc2VfaW5mbyk7CisKKwlyZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQgcHFpX2dldF9jdHJsX3Byb2R1Y3RfZGV0YWlscyhzdHJ1Y3QgcHFpX2N0cmxfaW5mbyAqY3RybF9pbmZvKQogewogCWludCByYzsKIAlzdHJ1Y3QgYm1pY19pZGVudGlmeV9jb250cm9sbGVyICppZGVudGlmeTsKQEAgLTY1NzksNiArNjcwNiwxNCBAQCBzdGF0aWMgaW50IHBxaV9nZXRfY3RybF9maXJtd2FyZV92ZXJzaW9uKHN0cnVjdCBwcWlfY3RybF9pbmZvICpjdHJsX2luZm8pCiAJCXNpemVvZihjdHJsX2luZm8tPmZpcm13YXJlX3ZlcnNpb24pLAogCQkiLSV1IiwgZ2V0X3VuYWxpZ25lZF9sZTE2KCZpZGVudGlmeS0+ZmlybXdhcmVfYnVpbGRfbnVtYmVyKSk7CiAKKwltZW1jcHkoY3RybF9pbmZvLT5tb2RlbCwgaWRlbnRpZnktPnByb2R1Y3RfaWQsCisJCXNpemVvZihpZGVudGlmeS0+cHJvZHVjdF9pZCkpOworCWN0cmxfaW5mby0+bW9kZWxbc2l6ZW9mKGlkZW50aWZ5LT5wcm9kdWN0X2lkKV0gPSAnXDAnOworCisJbWVtY3B5KGN0cmxfaW5mby0+dmVuZG9yLCBpZGVudGlmeS0+dmVuZG9yX2lkLAorCQlzaXplb2YoaWRlbnRpZnktPnZlbmRvcl9pZCkpOworCWN0cmxfaW5mby0+dmVuZG9yW3NpemVvZihpZGVudGlmeS0+dmVuZG9yX2lkKV0gPSAnXDAnOworCiBvdXQ6CiAJa2ZyZWUoaWRlbnRpZnkpOwogCkBAIC03MDk4LDEwICs3MjMzLDE3IEBAIHN0YXRpYyBpbnQgcHFpX2N0cmxfaW5pdChzdHJ1Y3QgcHFpX2N0cmxfaW5mbyAqY3RybF9pbmZvKQogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCi0JcmMgPSBwcWlfZ2V0X2N0cmxfZmlybXdhcmVfdmVyc2lvbihjdHJsX2luZm8pOworCXJjID0gcHFpX2dldF9jdHJsX3Byb2R1Y3RfZGV0YWlscyhjdHJsX2luZm8pOwogCWlmIChyYykgewogCQlkZXZfZXJyKCZjdHJsX2luZm8tPnBjaV9kZXYtPmRldiwKLQkJCSJlcnJvciBvYnRhaW5pbmcgZmlybXdhcmUgdmVyc2lvblxuIik7CisJCQkiZXJyb3Igb2J0YWluaW5nIHByb2R1Y3QgZGV0YWlsc1xuIik7CisJCXJldHVybiByYzsKKwl9CisKKwlyYyA9IHBxaV9nZXRfY3RybF9zZXJpYWxfbnVtYmVyKGN0cmxfaW5mbyk7CisJaWYgKHJjKSB7CisJCWRldl9lcnIoJmN0cmxfaW5mby0+cGNpX2Rldi0+ZGV2LAorCQkJImVycm9yIG9idGFpbmluZyBjdHJsIHNlcmlhbCBudW1iZXJcbiIpOwogCQlyZXR1cm4gcmM7CiAJfQogCkBAIC03MjQxLDEwICs3MzgzLDEwIEBAIHN0YXRpYyBpbnQgcHFpX2N0cmxfaW5pdF9yZXN1bWUoc3RydWN0IHBxaV9jdHJsX2luZm8gKmN0cmxfaW5mbykKIAkJcmV0dXJuIHJjOwogCX0KIAotCXJjID0gcHFpX2dldF9jdHJsX2Zpcm13YXJlX3ZlcnNpb24oY3RybF9pbmZvKTsKKwlyYyA9IHBxaV9nZXRfY3RybF9wcm9kdWN0X2RldGFpbHMoY3RybF9pbmZvKTsKIAlpZiAocmMpIHsKIAkJZGV2X2VycigmY3RybF9pbmZvLT5wY2lfZGV2LT5kZXYsCi0JCQkiZXJyb3Igb2J0YWluaW5nIGZpcm13YXJlIHZlcnNpb25cbiIpOworCQkJImVycm9yIG9idGFpbmluZyBwcm9kdWN0IGRldGFpbFxuIik7CiAJCXJldHVybiByYzsKIAl9CiAKQEAgLTgwMjQsNiArODE2NiwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHFpX3BjaV9pZF90YWJsZVtdID0gewogCX0sCiAJewogCQlQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0FEQVBURUMyLCAweDAyOGYsCisJCQkgICAgICAgMHgxYmQ0LCAweDAwNGYpCisJfSwKKwl7CisJCVBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQURBUFRFQzIsIDB4MDI4ZiwKIAkJCSAgICAgICAweDE5ZTUsIDB4ZDIyNykKIAl9LAogCXsKQEAgLTgwODgsNiArODIzNCwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHFpX3BjaV9pZF90YWJsZVtdID0gewogCX0sCiAJewogCQlQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0FEQVBURUMyLCAweDAyOGYsCisJCQkgICAgICAgUENJX1ZFTkRPUl9JRF9BREFQVEVDMiwgMHgwODA4KQorCX0sCisJeworCQlQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0FEQVBURUMyLCAweDAyOGYsCisJCQkgICAgICAgUENJX1ZFTkRPUl9JRF9BREFQVEVDMiwgMHgwODA5KQorCX0sCisJeworCQlQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0FEQVBURUMyLCAweDAyOGYsCiAJCQkgICAgICAgUENJX1ZFTkRPUl9JRF9BREFQVEVDMiwgMHgwOTAwKQogCX0sCiAJewpAQCAtODI0NCw2ICs4Mzk4LDI2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwcWlfcGNpX2lkX3RhYmxlW10gPSB7CiAJfSwKIAl7CiAJCVBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQURBUFRFQzIsIDB4MDI4ZiwKKwkJCSAgICAgICAweDFkOGQsIDB4MDgwMCkKKwl9LAorCXsKKwkJUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9BREFQVEVDMiwgMHgwMjhmLAorCQkJICAgICAgIDB4MWQ4ZCwgMHgwOTA4KQorCX0sCisJeworCQlQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0FEQVBURUMyLCAweDAyOGYsCisJCQkgICAgICAgMHgxZDhkLCAweDA4MDYpCisJfSwKKwl7CisJCVBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQURBUFRFQzIsIDB4MDI4ZiwKKwkJCSAgICAgICAweDFkOGQsIDB4MDkxNikKKwl9LAorCXsKKwkJUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9BREFQVEVDMiwgMHgwMjhmLAorCQkJICAgICAgIFBDSV9WRU5ET1JfSURfR0lHQUJZVEUsIDB4MTAwMCkKKwl9LAorCXsKKwkJUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9BREFQVEVDMiwgMHgwMjhmLAogCQkJICAgICAgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQpCiAJfSwKIAl7IDAgfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3NtYXJ0cHFpL3NtYXJ0cHFpX3Nhc190cmFuc3BvcnQuYyBiL2RyaXZlcnMvc2NzaS9zbWFydHBxaS9zbWFydHBxaV9zYXNfdHJhbnNwb3J0LmMKaW5kZXggNWNjYTFiOS4uNjc3NmRmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NtYXJ0cHFpL3NtYXJ0cHFpX3Nhc190cmFuc3BvcnQuYworKysgYi9kcml2ZXJzL3Njc2kvc21hcnRwcWkvc21hcnRwcWlfc2FzX3RyYW5zcG9ydC5jCkBAIC0zMTIsMTIgKzMxMiwxMTAgQEAgc3RhdGljIGludCBwcWlfc2FzX2dldF9saW5rZXJyb3JzKHN0cnVjdCBzYXNfcGh5ICpwaHkpCiBzdGF0aWMgaW50IHBxaV9zYXNfZ2V0X2VuY2xvc3VyZV9pZGVudGlmaWVyKHN0cnVjdCBzYXNfcnBoeSAqcnBoeSwKIAl1NjQgKmlkZW50aWZpZXIpCiB7Ci0JcmV0dXJuIDA7CisKKwlpbnQgcmM7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdDsKKwlzdHJ1Y3QgcHFpX2N0cmxfaW5mbyAqY3RybF9pbmZvOworCXN0cnVjdCBwcWlfc2NzaV9kZXYgKmZvdW5kX2RldmljZTsKKwlzdHJ1Y3QgcHFpX3Njc2lfZGV2ICpkZXZpY2U7CisKKwlpZiAoIXJwaHkpCisJCXJldHVybiAtRU5PREVWOworCisJc2hvc3QgPSBycGh5X3RvX3Nob3N0KHJwaHkpOworCWN0cmxfaW5mbyA9IHNob3N0X3RvX2hiYShzaG9zdCk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmN0cmxfaW5mby0+c2NzaV9kZXZpY2VfbGlzdF9sb2NrLCBmbGFncyk7CisJZm91bmRfZGV2aWNlID0gcHFpX2ZpbmRfZGV2aWNlX2J5X3Nhc19ycGh5KGN0cmxfaW5mbywgcnBoeSk7CisKKwlpZiAoIWZvdW5kX2RldmljZSkgeworCQlyYyA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChmb3VuZF9kZXZpY2UtPmRldnR5cGUgPT0gVFlQRV9FTkNMT1NVUkUpIHsKKwkJKmlkZW50aWZpZXIgPSBnZXRfdW5hbGlnbmVkX2JlNjQoJmZvdW5kX2RldmljZS0+d3dpZCk7CisJCXJjID0gMDsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKGZvdW5kX2RldmljZS0+Ym94X2luZGV4ID09IDB4ZmYgfHwKKwkJZm91bmRfZGV2aWNlLT5waHlzX2JveF9vbl9idXMgPT0gMCB8fAorCQlmb3VuZF9kZXZpY2UtPmJheSA9PSAweGZmKSB7CisJCXJjID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7CisJfQorCisJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXZpY2UsICZjdHJsX2luZm8tPnNjc2lfZGV2aWNlX2xpc3QsCisJCXNjc2lfZGV2aWNlX2xpc3RfZW50cnkpIHsKKwkJaWYgKGRldmljZS0+ZGV2dHlwZSA9PSBUWVBFX0VOQ0xPU1VSRSAmJgorCQkJZGV2aWNlLT5ib3hfaW5kZXggPT0gZm91bmRfZGV2aWNlLT5ib3hfaW5kZXggJiYKKwkJCWRldmljZS0+cGh5c19ib3hfb25fYnVzID09CisJCQkJZm91bmRfZGV2aWNlLT5waHlzX2JveF9vbl9idXMgJiYKKwkJCW1lbWNtcChkZXZpY2UtPnBoeXNfY29ubmVjdG9yLAorCQkJCWZvdW5kX2RldmljZS0+cGh5c19jb25uZWN0b3IsIDIpID09IDApIHsKKwkJCSppZGVudGlmaWVyID0KKwkJCQlnZXRfdW5hbGlnbmVkX2JlNjQoJmRldmljZS0+d3dpZCk7CisJCQlyYyA9IDA7CisJCQlnb3RvIG91dDsKKwkJfQorCX0KKworCWlmIChmb3VuZF9kZXZpY2UtPnBoeV9jb25uZWN0ZWRfZGV2X3R5cGUgIT0gU0FfQ09OVFJPTExFUl9ERVZJQ0UpIHsKKwkJcmMgPSAtRUlOVkFMOworCQlnb3RvIG91dDsKKwl9CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldmljZSwgJmN0cmxfaW5mby0+c2NzaV9kZXZpY2VfbGlzdCwKKwkJc2NzaV9kZXZpY2VfbGlzdF9lbnRyeSkgeworCQlpZiAoZGV2aWNlLT5kZXZ0eXBlID09IFRZUEVfRU5DTE9TVVJFICYmCisJCQlDSVNTX0dFVF9EUklWRV9OVU1CRVIoZGV2aWNlLT5zY3NpM2FkZHIpID09CisJCQkJUFFJX1ZTRVBfQ0lTU19CVEwpIHsKKwkJCSppZGVudGlmaWVyID0gZ2V0X3VuYWxpZ25lZF9iZTY0KCZkZXZpY2UtPnd3aWQpOworCQkJcmMgPSAwOworCQkJZ290byBvdXQ7CisJCX0KKwl9CisKKwlyYyA9IC1FSU5WQUw7CitvdXQ6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3RybF9pbmZvLT5zY3NpX2RldmljZV9saXN0X2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByYzsKKwogfQogCiBzdGF0aWMgaW50IHBxaV9zYXNfZ2V0X2JheV9pZGVudGlmaWVyKHN0cnVjdCBzYXNfcnBoeSAqcnBoeSkKIHsKLQlyZXR1cm4gLUVOWElPOworCisJaW50IHJjOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IHBxaV9jdHJsX2luZm8gKmN0cmxfaW5mbzsKKwlzdHJ1Y3QgcHFpX3Njc2lfZGV2ICpkZXZpY2U7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3Q7CisKKwlpZiAoIXJwaHkpCisJCXJldHVybiAtRU5PREVWOworCisJc2hvc3QgPSBycGh5X3RvX3Nob3N0KHJwaHkpOworCWN0cmxfaW5mbyA9IHNob3N0X3RvX2hiYShzaG9zdCk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmN0cmxfaW5mby0+c2NzaV9kZXZpY2VfbGlzdF9sb2NrLCBmbGFncyk7CisJZGV2aWNlID0gcHFpX2ZpbmRfZGV2aWNlX2J5X3Nhc19ycGh5KGN0cmxfaW5mbywgcnBoeSk7CisKKwlpZiAoIWRldmljZSkgeworCQlyYyA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChkZXZpY2UtPmJheSA9PSAweGZmKQorCQlyYyA9IC1FSU5WQUw7CisJZWxzZQorCQlyYyA9IGRldmljZS0+YmF5OworCitvdXQ6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3RybF9pbmZvLT5zY3NpX2RldmljZV9saXN0X2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByYzsKIH0KIAogc3RhdGljIGludCBwcWlfc2FzX3BoeV9yZXNldChzdHJ1Y3Qgc2FzX3BoeSAqcGh5LCBpbnQgaGFyZF9yZXNldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zdW4zX3Njc2kuYyBiL2RyaXZlcnMvc2NzaS9zdW4zX3Njc2kuYwppbmRleCAzZDgwYWI2Li45NTVlNGM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc3VuM19zY3NpLmMKKysrIGIvZHJpdmVycy9zY3NpL3N1bjNfc2NzaS5jCkBAIC0zOTcsMTAgKzM5NywxMiBAQCBzdGF0aWMgaW50IHN1bjNzY3NpX2RtYV9maW5pc2goaW50IHdyaXRlX2ZsYWcpCiAJCWNhc2UgQ1NSX0xFRlRfMzoKIAkJCSp2YWRkciA9IChkcmVncy0+YnBhY2tfbG8gJiAweGZmMDApID4+IDg7CiAJCQl2YWRkci0tOworCQkJLyogRmFsbCB0aHJvdWdoICovCiAKIAkJY2FzZSBDU1JfTEVGVF8yOgogCQkJKnZhZGRyID0gKGRyZWdzLT5icGFja19oaSAmIDB4MDBmZik7CiAJCQl2YWRkci0tOworCQkJLyogRmFsbCB0aHJvdWdoICovCiAKIAkJY2FzZSBDU1JfTEVGVF8xOgogCQkJKnZhZGRyID0gKGRyZWdzLT5icGFja19oaSAmIDB4ZmYwMCkgPj4gODsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1fbnZyYW0uYyBiL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1fbnZyYW0uYwppbmRleCBkZDNmMDdiLi45ZGMxN2YxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX252cmFtLmMKKysrIGIvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bV9udnJhbS5jCkBAIC02NDgsNyArNjQ4LDcgQEAgc3RhdGljIGludCBzeW1fcmVhZF9UOTNDNDZfbnZyYW0oc3RydWN0IHN5bV9kZXZpY2UgKm5wLCBUZWtyYW1fbnZyYW0gKm52cmFtKQogewogCXVfY2hhciBncGNudGwsIGdwcmVnOwogCXVfY2hhciBvbGRfZ3BjbnRsLCBvbGRfZ3ByZWc7Ci0JaW50IHJldHYgPSAxOworCWludCByZXR2OwogCiAJLyogc2F2ZSBjdXJyZW50IHN0YXRlIG9mIEdQQ05UTCBhbmQgR1BSRUcgKi8KIAlvbGRfZ3ByZWcJPSBJTkIobnAsIG5jX2dwcmVnKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS91ZnMvY2Rucy1wbHRmcm0uYyBiL2RyaXZlcnMvc2NzaS91ZnMvY2Rucy1wbHRmcm0uYwppbmRleCA4NmRiYjcyLi5iMmFmMDRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvdWZzL2NkbnMtcGx0ZnJtLmMKKysrIGIvZHJpdmVycy9zY3NpL3Vmcy9jZG5zLXBsdGZybS5jCkBAIC02MiwyMyArNjIsNDcgQEAgc3RhdGljIGludCBjZG5zX3Vmc19zZXRfaGNsa2RpdihzdHJ1Y3QgdWZzX2hiYSAqaGJhKQogfQogCiAvKioKLSAqIFNldHMgY2xvY2tzIHVzZWQgYnkgdGhlIGNvbnRyb2xsZXIKKyAqIENhbGxlZCBiZWZvcmUgYW5kIGFmdGVyIEhDRSBlbmFibGUgYml0IGlzIHNldC4KICAqIEBoYmE6IGhvc3QgY29udHJvbGxlciBpbnN0YW5jZQotICogQG9uOiBpZiB0cnVlLCBlbmFibGUgY2xvY2tzLCBvdGhlcndpc2UgZGlzYWJsZQogICogQHN0YXR1czogbm90aWZ5IHN0YWdlIChwcmUsIHBvc3QgY2hhbmdlKQogICoKICAqIFJldHVybiB6ZXJvIGZvciBzdWNjZXNzIGFuZCBub24temVybyBmb3IgZmFpbHVyZQogICovCi1zdGF0aWMgaW50IGNkbnNfdWZzX3NldHVwX2Nsb2NrcyhzdHJ1Y3QgdWZzX2hiYSAqaGJhLCBib29sIG9uLAotCQkJCSBlbnVtIHVmc19ub3RpZnlfY2hhbmdlX3N0YXR1cyBzdGF0dXMpCitzdGF0aWMgaW50IGNkbnNfdWZzX2hjZV9lbmFibGVfbm90aWZ5KHN0cnVjdCB1ZnNfaGJhICpoYmEsCisJCQkJICAgICAgZW51bSB1ZnNfbm90aWZ5X2NoYW5nZV9zdGF0dXMgc3RhdHVzKQogewotCWlmICgoIW9uKSB8fCAoc3RhdHVzID09IFBSRV9DSEFOR0UpKQorCWlmIChzdGF0dXMgIT0gUFJFX0NIQU5HRSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1cm4gY2Ruc191ZnNfc2V0X2hjbGtkaXYoaGJhKTsKIH0KIAogLyoqCisgKiBDYWxsZWQgYmVmb3JlIGFuZCBhZnRlciBMaW5rIHN0YXJ0dXAgaXMgY2FycmllZCBvdXQuCisgKiBAaGJhOiBob3N0IGNvbnRyb2xsZXIgaW5zdGFuY2UKKyAqIEBzdGF0dXM6IG5vdGlmeSBzdGFnZSAocHJlLCBwb3N0IGNoYW5nZSkKKyAqCisgKiBSZXR1cm4gemVybyBmb3Igc3VjY2VzcyBhbmQgbm9uLXplcm8gZm9yIGZhaWx1cmUKKyAqLworc3RhdGljIGludCBjZG5zX3Vmc19saW5rX3N0YXJ0dXBfbm90aWZ5KHN0cnVjdCB1ZnNfaGJhICpoYmEsCisJCQkJCWVudW0gdWZzX25vdGlmeV9jaGFuZ2Vfc3RhdHVzIHN0YXR1cykKK3sKKwlpZiAoc3RhdHVzICE9IFBSRV9DSEFOR0UpCisJCXJldHVybiAwOworCisJLyoKKwkgKiBTb21lIFVGUyBkZXZpY2VzIGhhdmUgaXNzdWVzIGlmIExDQyBpcyBlbmFibGVkLgorCSAqIFNvIHdlIGFyZSBzZXR0aW5nIFBBX0xvY2FsX1RYX0xDQ19FbmFibGUgdG8gMAorCSAqIGJlZm9yZSBsaW5rIHN0YXJ0dXAgd2hpY2ggd2lsbCBtYWtlIHN1cmUgdGhhdCBib3RoIGhvc3QKKwkgKiBhbmQgZGV2aWNlIFRYIExDQyBhcmUgZGlzYWJsZWQgb25jZSBsaW5rIHN0YXJ0dXAgaXMKKwkgKiBjb21wbGV0ZWQuCisJICovCisJdWZzaGNkX2RtZV9zZXQoaGJhLCBVSUNfQVJHX01JQihQQV9MT0NBTF9UWF9MQ0NfRU5BQkxFKSwgMCk7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCiAgKiBjZG5zX3Vmc19pbml0IC0gcGVyZm9ybXMgYWRkaXRpb25hbCB1ZnMgaW5pdGlhbGl6YXRpb24KICAqIEBoYmE6IGhvc3QgY29udHJvbGxlciBpbnN0YW5jZQogICoKQEAgLTExNCwxMyArMTM4LDE1IEBAIHN0YXRpYyBpbnQgY2Ruc191ZnNfbTMxXzE2bm1fcGh5X2luaXRpYWxpemF0aW9uKHN0cnVjdCB1ZnNfaGJhICpoYmEpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdWZzX2hiYV92YXJpYW50X29wcyBjZG5zX3Vmc19wbHRmbV9oYmFfdm9wcyA9IHsKIAkubmFtZSA9ICJjZG5zLXVmcy1wbHRmbSIsCi0JLnNldHVwX2Nsb2NrcyA9IGNkbnNfdWZzX3NldHVwX2Nsb2NrcywKKwkuaGNlX2VuYWJsZV9ub3RpZnkgPSBjZG5zX3Vmc19oY2VfZW5hYmxlX25vdGlmeSwKKwkubGlua19zdGFydHVwX25vdGlmeSA9IGNkbnNfdWZzX2xpbmtfc3RhcnR1cF9ub3RpZnksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHVmc19oYmFfdmFyaWFudF9vcHMgY2Ruc191ZnNfbTMxXzE2bm1fcGx0Zm1faGJhX3ZvcHMgPSB7CiAJLm5hbWUgPSAiY2Rucy11ZnMtcGx0Zm0iLAogCS5pbml0ID0gY2Ruc191ZnNfaW5pdCwKLQkuc2V0dXBfY2xvY2tzID0gY2Ruc191ZnNfc2V0dXBfY2xvY2tzLAorCS5oY2VfZW5hYmxlX25vdGlmeSA9IGNkbnNfdWZzX2hjZV9lbmFibGVfbm90aWZ5LAorCS5saW5rX3N0YXJ0dXBfbm90aWZ5ID0gY2Ruc191ZnNfbGlua19zdGFydHVwX25vdGlmeSwKIAkucGh5X2luaXRpYWxpemF0aW9uID0gY2Ruc191ZnNfbTMxXzE2bm1fcGh5X2luaXRpYWxpemF0aW9uLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Vmcy91ZnMtaGlzaS5jIGIvZHJpdmVycy9zY3NpL3Vmcy91ZnMtaGlzaS5jCmluZGV4IGY0ZDFkY2EuLjZiYmIxNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS91ZnMvdWZzLWhpc2kuYworKysgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmcy1oaXNpLmMKQEAgLTQ0NywxMyArNDQ3LDExIEBAIHN0YXRpYyBpbnQgdWZzX2hpc2lfcmVzdW1lKHN0cnVjdCB1ZnNfaGJhICpoYmEsIGVudW0gdWZzX3BtX29wIHBtX29wKQogCiBzdGF0aWMgaW50IHVmc19oaXNpX2dldF9yZXNvdXJjZShzdHJ1Y3QgdWZzX2hpc2lfaG9zdCAqaG9zdCkKIHsKLQlzdHJ1Y3QgcmVzb3VyY2UgKm1lbV9yZXM7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gaG9zdC0+aGJhLT5kZXY7CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOwogCiAJLyogZ2V0IHJlc291cmNlIG9mIHVmcyBzeXMgY3RybCAqLwotCW1lbV9yZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDEpOwotCWhvc3QtPnVmc19zeXNfY3RybCA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIG1lbV9yZXMpOworCWhvc3QtPnVmc19zeXNfY3RybCA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAxKTsKIAlpZiAoSVNfRVJSKGhvc3QtPnVmc19zeXNfY3RybCkpCiAJCXJldHVybiBQVFJfRVJSKGhvc3QtPnVmc19zeXNfY3RybCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS91ZnMvdWZzLXFjb20uYyBiL2RyaXZlcnMvc2NzaS91ZnMvdWZzLXFjb20uYwppbmRleCBlZTRiMWRhLi5hNWI3MTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvdWZzL3Vmcy1xY29tLmMKKysrIGIvZHJpdmVycy9zY3NpL3Vmcy91ZnMtcWNvbS5jCkBAIC04LDYgKzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L29mLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KICNpbmNsdWRlIDxsaW51eC9yZXNldC1jb250cm9sbGVyLmg+CiAKICNpbmNsdWRlICJ1ZnNoY2QuaCIKQEAgLTgwMCw3ICs4MDEsNiBAQCBzdGF0aWMgaW50IHVmc19xY29tX3B3cl9jaGFuZ2Vfbm90aWZ5KHN0cnVjdCB1ZnNfaGJhICpoYmEsCiAJCQkJc3RydWN0IHVmc19wYV9sYXllcl9hdHRyICpkZXZfbWF4X3BhcmFtcywKIAkJCQlzdHJ1Y3QgdWZzX3BhX2xheWVyX2F0dHIgKmRldl9yZXFfcGFyYW1zKQogewotCXUzMiB2YWw7CiAJc3RydWN0IHVmc19xY29tX2hvc3QgKmhvc3QgPSB1ZnNoY2RfZ2V0X3ZhcmlhbnQoaGJhKTsKIAlzdHJ1Y3QgdWZzX2Rldl9wYXJhbXMgdWZzX3Fjb21fY2FwOwogCWludCByZXQgPSAwOwpAQCAtODY5LDggKzg2OSw2IEBAIHN0YXRpYyBpbnQgdWZzX3Fjb21fcHdyX2NoYW5nZV9ub3RpZnkoc3RydWN0IHVmc19oYmEgKmhiYSwKIAkJCXJldCA9IC1FSU5WQUw7CiAJCX0KIAotCQl2YWwgPSB+KE1BWF9VMzIgPDwgZGV2X3JlcV9wYXJhbXMtPmxhbmVfdHgpOwotCiAJCS8qIGNhY2hlIHRoZSBwb3dlciBtb2RlIHBhcmFtZXRlcnMgdG8gdXNlIGludGVybmFsbHkgKi8KIAkJbWVtY3B5KCZob3N0LT5kZXZfcmVxX3BhcmFtcywKIAkJCQlkZXZfcmVxX3BhcmFtcywgc2l6ZW9mKCpkZXZfcmVxX3BhcmFtcykpOwpAQCAtMTE0MCw2ICsxMTM4LDE1IEBAIHN0YXRpYyBpbnQgdWZzX3Fjb21faW5pdChzdHJ1Y3QgdWZzX2hiYSAqaGJhKQogCQl9CiAJfQogCisJaG9zdC0+ZGV2aWNlX3Jlc2V0ID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoZGV2LCAicmVzZXQiLAorCQkJCQkJICAgICBHUElPRF9PVVRfSElHSCk7CisJaWYgKElTX0VSUihob3N0LT5kZXZpY2VfcmVzZXQpKSB7CisJCWVyciA9IFBUUl9FUlIoaG9zdC0+ZGV2aWNlX3Jlc2V0KTsKKwkJaWYgKGVyciAhPSAtRVBST0JFX0RFRkVSKQorCQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gYWNxdWlyZSByZXNldCBncGlvOiAlZFxuIiwgZXJyKTsKKwkJZ290byBvdXRfdmFyaWFudF9jbGVhcjsKKwl9CisKIAllcnIgPSB1ZnNfcWNvbV9idXNfcmVnaXN0ZXIoaG9zdCk7CiAJaWYgKGVycikKIAkJZ290byBvdXRfdmFyaWFudF9jbGVhcjsKQEAgLTE1NDYsMTIgKzE1NTMsMzcgQEAgc3RhdGljIHZvaWQgdWZzX3Fjb21fZHVtcF9kYmdfcmVncyhzdHJ1Y3QgdWZzX2hiYSAqaGJhKQogfQogCiAvKioKKyAqIHVmc19xY29tX2RldmljZV9yZXNldCgpIC0gdG9nZ2xlIHRoZSAob3B0aW9uYWwpIGRldmljZSByZXNldCBsaW5lCisgKiBAaGJhOiBwZXItYWRhcHRlciBpbnN0YW5jZQorICoKKyAqIFRvZ2dsZXMgdGhlIChvcHRpb25hbCkgcmVzZXQgbGluZSB0byByZXNldCB0aGUgYXR0YWNoZWQgZGV2aWNlLgorICovCitzdGF0aWMgdm9pZCB1ZnNfcWNvbV9kZXZpY2VfcmVzZXQoc3RydWN0IHVmc19oYmEgKmhiYSkKK3sKKwlzdHJ1Y3QgdWZzX3Fjb21faG9zdCAqaG9zdCA9IHVmc2hjZF9nZXRfdmFyaWFudChoYmEpOworCisJLyogcmVzZXQgZ3BpbyBpcyBvcHRpb25hbCAqLworCWlmICghaG9zdC0+ZGV2aWNlX3Jlc2V0KQorCQlyZXR1cm47CisKKwkvKgorCSAqIFRoZSBVRlMgZGV2aWNlIHNoYWxsIGRldGVjdCByZXNldCBwdWxzZXMgb2YgMXVzLCBzbGVlcCBmb3IgMTB1cyB0bworCSAqIGJlIG9uIHRoZSBzYWZlIHNpZGUuCisJICovCisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGhvc3QtPmRldmljZV9yZXNldCwgMSk7CisJdXNsZWVwX3JhbmdlKDEwLCAxNSk7CisKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoaG9zdC0+ZGV2aWNlX3Jlc2V0LCAwKTsKKwl1c2xlZXBfcmFuZ2UoMTAsIDE1KTsKK30KKworLyoqCiAgKiBzdHJ1Y3QgdWZzX2hiYV9xY29tX3ZvcHMgLSBVRlMgUUNPTSBzcGVjaWZpYyB2YXJpYW50IG9wZXJhdGlvbnMKICAqCiAgKiBUaGUgdmFyaWFudCBvcGVyYXRpb25zIGNvbmZpZ3VyZSB0aGUgbmVjZXNzYXJ5IGNvbnRyb2xsZXIgYW5kIFBIWQogICogaGFuZHNoYWtlIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotc3RhdGljIHN0cnVjdCB1ZnNfaGJhX3ZhcmlhbnRfb3BzIHVmc19oYmFfcWNvbV92b3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCB1ZnNfaGJhX3ZhcmlhbnRfb3BzIHVmc19oYmFfcWNvbV92b3BzID0gewogCS5uYW1lICAgICAgICAgICAgICAgICAgID0gInFjb20iLAogCS5pbml0ICAgICAgICAgICAgICAgICAgID0gdWZzX3Fjb21faW5pdCwKIAkuZXhpdCAgICAgICAgICAgICAgICAgICA9IHVmc19xY29tX2V4aXQsCkBAIC0xNTY1LDYgKzE1OTcsNyBAQCBzdGF0aWMgc3RydWN0IHVmc19oYmFfdmFyaWFudF9vcHMgdWZzX2hiYV9xY29tX3ZvcHMgPSB7CiAJLnN1c3BlbmQJCT0gdWZzX3Fjb21fc3VzcGVuZCwKIAkucmVzdW1lCQkJPSB1ZnNfcWNvbV9yZXN1bWUsCiAJLmRiZ19yZWdpc3Rlcl9kdW1wCT0gdWZzX3Fjb21fZHVtcF9kYmdfcmVncywKKwkuZGV2aWNlX3Jlc2V0CQk9IHVmc19xY29tX2RldmljZV9yZXNldCwKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Vmcy91ZnMtcWNvbS5oIGIvZHJpdmVycy9zY3NpL3Vmcy91ZnMtcWNvbS5oCmluZGV4IDAwMTkxNWQuLmQ0MDFmMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS91ZnMvdWZzLXFjb20uaAorKysgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmcy1xY29tLmgKQEAgLTE5NSw2ICsxOTUsOCBAQCBzdHJ1Y3QgdWZzX3Fjb21fdGVzdGJ1cyB7CiAJdTggc2VsZWN0X21pbm9yOwogfTsKIAorc3RydWN0IGdwaW9fZGVzYzsKKwogc3RydWN0IHVmc19xY29tX2hvc3QgewogCS8qCiAJICogU2V0IHRoaXMgY2FwYWJpbGl0eSBpZiBob3N0IGNvbnRyb2xsZXIgc3VwcG9ydHMgdGhlIFFVbmlQcm8gbW9kZQpAQCAtMjMyLDYgKzIzNCw4IEBAIHN0cnVjdCB1ZnNfcWNvbV9ob3N0IHsKIAlzdHJ1Y3QgdWZzX3Fjb21fdGVzdGJ1cyB0ZXN0YnVzOwogCiAJc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2IHJjZGV2OworCisJc3RydWN0IGdwaW9fZGVzYyAqZGV2aWNlX3Jlc2V0OwogfTsKIAogc3RhdGljIGlubGluZSB1MzIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS91ZnMvdWZzLXN5c2ZzLmMgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmcy1zeXNmcy5jCmluZGV4IGY0Nzg2ODUuLjk2OWEzNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS91ZnMvdWZzLXN5c2ZzLmMKKysrIGIvZHJpdmVycy9zY3NpL3Vmcy91ZnMtc3lzZnMuYwpAQCAtNTcxLDkgKzU3MSwxMCBAQCBzdGF0aWMgc3NpemVfdCBfbmFtZSMjX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAkJCQlcCiAJaW50IHJldDsJCQkJCQkJXAogCWludCBkZXNjX2xlbiA9IFFVRVJZX0RFU0NfTUFYX1NJWkU7CQkJCVwKIAl1OCAqZGVzY19idWY7CQkJCQkJCVwKKwkJCQkJCQkJCVwKIAlkZXNjX2J1ZiA9IGt6YWxsb2MoUVVFUllfREVTQ19NQVhfU0laRSwgR0ZQX0FUT01JQyk7CQlcCi0JaWYgKCFkZXNjX2J1ZikJCQkJCQkJXAotCQlyZXR1cm4gLUVOT01FTTsJCQkJCQlcCisJaWYgKCFkZXNjX2J1ZikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJcmV0dXJuIC1FTk9NRU07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJcmV0ID0gdWZzaGNkX3F1ZXJ5X2Rlc2NyaXB0b3JfcmV0cnkoaGJhLAkJCVwKIAkJVVBJVV9RVUVSWV9PUENPREVfUkVBRF9ERVNDLCBRVUVSWV9ERVNDX0lETl9ERVZJQ0UsCVwKIAkJMCwgMCwgZGVzY19idWYsICZkZXNjX2xlbik7CQkJCVwKQEAgLTU4MiwxNCArNTgzLDEzIEBAIHN0YXRpYyBzc2l6ZV90IF9uYW1lIyNfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCQkJCVwKIAkJZ290byBvdXQ7CQkJCQkJXAogCX0JCQkJCQkJCVwKIAlpbmRleCA9IGRlc2NfYnVmW0RFVklDRV9ERVNDX1BBUkFNIyNfcG5hbWVdOwkJCVwKLQltZW1zZXQoZGVzY19idWYsIDAsIFFVRVJZX0RFU0NfTUFYX1NJWkUpOwkJCVwKLQlpZiAodWZzaGNkX3JlYWRfc3RyaW5nX2Rlc2MoaGJhLCBpbmRleCwgZGVzY19idWYsCQlcCi0JCVFVRVJZX0RFU0NfTUFYX1NJWkUsIHRydWUpKSB7CQkJCVwKLQkJcmV0ID0gLUVJTlZBTDsJCQkJCQlcCisJa2ZyZWUoZGVzY19idWYpOwkJCQkJCVwKKwlkZXNjX2J1ZiA9IE5VTEw7CQkJCQkJXAorCXJldCA9IHVmc2hjZF9yZWFkX3N0cmluZ19kZXNjKGhiYSwgaW5kZXgsICZkZXNjX2J1ZiwJCVwKKwkJCQkgICAgICBTRF9BU0NJSV9TVEQpOwkJCVwKKwlpZiAocmV0IDwgMCkJCQkJCQkJXAogCQlnb3RvIG91dDsJCQkJCQlcCi0JfQkJCQkJCQkJXAotCXJldCA9IHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXNcbiIsCQkJCVwKLQkJZGVzY19idWYgKyBRVUVSWV9ERVNDX0hEUl9TSVpFKTsJCQlcCisJcmV0ID0gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlc1xuIiwgZGVzY19idWYpOwkJXAogb3V0OgkJCQkJCQkJCVwKIAlrZnJlZShkZXNjX2J1Zik7CQkJCQkJXAogCXJldHVybiByZXQ7CQkJCQkJCVwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS91ZnMvdWZzLmggYi9kcml2ZXJzL3Njc2kvdWZzL3Vmcy5oCmluZGV4IDk5YTljNGQuLjMzMjc5ODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS91ZnMvdWZzLmgKKysrIGIvZHJpdmVycy9zY3NpL3Vmcy91ZnMuaApAQCAtNTQxLDcgKzU0MSw3IEBAIHN0cnVjdCB1ZnNfZGV2X2luZm8gewogICovCiBzdHJ1Y3QgdWZzX2Rldl9kZXNjIHsKIAl1MTYgd21hbnVmYWN0dXJlcmlkOwotCWNoYXIgbW9kZWxbTUFYX01PREVMX0xFTiArIDFdOworCXU4ICptb2RlbDsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Vmcy91ZnNoY2QtcGx0ZnJtLmMgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC1wbHRmcm0uYwppbmRleCBkN2Q1MjFiLi44ZDQwZGM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC1wbHRmcm0uYworKysgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC1wbHRmcm0uYwpAQCAtMzkxLDEyICszOTEsMTAgQEAgaW50IHVmc2hjZF9wbHRmcm1faW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogewogCXN0cnVjdCB1ZnNfaGJhICpoYmE7CiAJdm9pZCBfX2lvbWVtICptbWlvX2Jhc2U7Ci0Jc3RydWN0IHJlc291cmNlICptZW1fcmVzOwogCWludCBpcnEsIGVycjsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwogCi0JbWVtX3JlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JbW1pb19iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgbWVtX3Jlcyk7CisJbW1pb19iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwogCWlmIChJU19FUlIobW1pb19iYXNlKSkgewogCQllcnIgPSBQVFJfRVJSKG1taW9fYmFzZSk7CiAJCWdvdG8gb3V0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Vmcy91ZnNoY2QuYyBiL2RyaXZlcnMvc2NzaS91ZnMvdWZzaGNkLmMKaW5kZXggMDI5ZGE3NC4uMDM0ZGQ5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3Vmcy91ZnNoY2QuYworKysgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC5jCkBAIC0yOTksMTYgKzI5OSw2IEBAIHN0YXRpYyB2b2lkIHVmc2hjZF9zY3NpX2Jsb2NrX3JlcXVlc3RzKHN0cnVjdCB1ZnNfaGJhICpoYmEpCiAJCXNjc2lfYmxvY2tfcmVxdWVzdHMoaGJhLT5ob3N0KTsKIH0KIAotLyogcmVwbGFjZSBub24tcHJpbnRhYmxlIG9yIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIHdpdGggc3BhY2VzICovCi1zdGF0aWMgaW5saW5lIHZvaWQgdWZzaGNkX3JlbW92ZV9ub25fcHJpbnRhYmxlKGNoYXIgKnZhbCkKLXsKLQlpZiAoIXZhbCkKLQkJcmV0dXJuOwotCi0JaWYgKCp2YWwgPCAweDIwIHx8ICp2YWwgPiAweDdlKQotCQkqdmFsID0gJyAnOwotfQotCiBzdGF0aWMgdm9pZCB1ZnNoY2RfYWRkX2NtZF91cGl1X3RyYWNlKHN0cnVjdCB1ZnNfaGJhICpoYmEsIHVuc2lnbmVkIGludCB0YWcsCiAJCWNvbnN0IGNoYXIgKnN0cikKIHsKQEAgLTM5MCwyNCArMzgwLDI1IEBAIHN0YXRpYyB2b2lkIHVmc2hjZF9wcmludF9jbGtfZnJlcXMoc3RydWN0IHVmc19oYmEgKmhiYSkKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIHVmc2hjZF9wcmludF91aWNfZXJyX2hpc3Qoc3RydWN0IHVmc19oYmEgKmhiYSwKLQkJc3RydWN0IHVmc191aWNfZXJyX3JlZ19oaXN0ICplcnJfaGlzdCwgY2hhciAqZXJyX25hbWUpCitzdGF0aWMgdm9pZCB1ZnNoY2RfcHJpbnRfZXJyX2hpc3Qoc3RydWN0IHVmc19oYmEgKmhiYSwKKwkJCQkgIHN0cnVjdCB1ZnNfZXJyX3JlZ19oaXN0ICplcnJfaGlzdCwKKwkJCQkgIGNoYXIgKmVycl9uYW1lKQogewogCWludCBpOwogCWJvb2wgZm91bmQgPSBmYWxzZTsKIAotCWZvciAoaSA9IDA7IGkgPCBVSUNfRVJSX1JFR19ISVNUX0xFTkdUSDsgaSsrKSB7Ci0JCWludCBwID0gKGkgKyBlcnJfaGlzdC0+cG9zKSAlIFVJQ19FUlJfUkVHX0hJU1RfTEVOR1RIOworCWZvciAoaSA9IDA7IGkgPCBVRlNfRVJSX1JFR19ISVNUX0xFTkdUSDsgaSsrKSB7CisJCWludCBwID0gKGkgKyBlcnJfaGlzdC0+cG9zKSAlIFVGU19FUlJfUkVHX0hJU1RfTEVOR1RIOwogCiAJCWlmIChlcnJfaGlzdC0+cmVnW3BdID09IDApCiAJCQljb250aW51ZTsKLQkJZGV2X2VycihoYmEtPmRldiwgIiVzWyVkXSA9IDB4JXggYXQgJWxsZCB1c1xuIiwgZXJyX25hbWUsIGksCisJCWRldl9lcnIoaGJhLT5kZXYsICIlc1slZF0gPSAweCV4IGF0ICVsbGQgdXNcbiIsIGVycl9uYW1lLCBwLAogCQkJZXJyX2hpc3QtPnJlZ1twXSwga3RpbWVfdG9fdXMoZXJyX2hpc3QtPnRzdGFtcFtwXSkpOwogCQlmb3VuZCA9IHRydWU7CiAJfQogCiAJaWYgKCFmb3VuZCkKLQkJZGV2X2VycihoYmEtPmRldiwgIk5vIHJlY29yZCBvZiAlcyB1aWMgZXJyb3JzXG4iLCBlcnJfbmFtZSk7CisJCWRldl9lcnIoaGJhLT5kZXYsICJObyByZWNvcmQgb2YgJXMgZXJyb3JzXG4iLCBlcnJfbmFtZSk7CiB9CiAKIHN0YXRpYyB2b2lkIHVmc2hjZF9wcmludF9ob3N0X3JlZ3Moc3RydWN0IHVmc19oYmEgKmhiYSkKQEAgLTQyMywxMSArNDE0LDIyIEBAIHN0YXRpYyB2b2lkIHVmc2hjZF9wcmludF9ob3N0X3JlZ3Moc3RydWN0IHVmc19oYmEgKmhiYSkKIAkJa3RpbWVfdG9fdXMoaGJhLT51ZnNfc3RhdHMubGFzdF9oaWJlcm44X2V4aXRfdHN0YW1wKSwKIAkJaGJhLT51ZnNfc3RhdHMuaGliZXJuOF9leGl0X2NudCk7CiAKLQl1ZnNoY2RfcHJpbnRfdWljX2Vycl9oaXN0KGhiYSwgJmhiYS0+dWZzX3N0YXRzLnBhX2VyciwgInBhX2VyciIpOwotCXVmc2hjZF9wcmludF91aWNfZXJyX2hpc3QoaGJhLCAmaGJhLT51ZnNfc3RhdHMuZGxfZXJyLCAiZGxfZXJyIik7Ci0JdWZzaGNkX3ByaW50X3VpY19lcnJfaGlzdChoYmEsICZoYmEtPnVmc19zdGF0cy5ubF9lcnIsICJubF9lcnIiKTsKLQl1ZnNoY2RfcHJpbnRfdWljX2Vycl9oaXN0KGhiYSwgJmhiYS0+dWZzX3N0YXRzLnRsX2VyciwgInRsX2VyciIpOwotCXVmc2hjZF9wcmludF91aWNfZXJyX2hpc3QoaGJhLCAmaGJhLT51ZnNfc3RhdHMuZG1lX2VyciwgImRtZV9lcnIiKTsKKwl1ZnNoY2RfcHJpbnRfZXJyX2hpc3QoaGJhLCAmaGJhLT51ZnNfc3RhdHMucGFfZXJyLCAicGFfZXJyIik7CisJdWZzaGNkX3ByaW50X2Vycl9oaXN0KGhiYSwgJmhiYS0+dWZzX3N0YXRzLmRsX2VyciwgImRsX2VyciIpOworCXVmc2hjZF9wcmludF9lcnJfaGlzdChoYmEsICZoYmEtPnVmc19zdGF0cy5ubF9lcnIsICJubF9lcnIiKTsKKwl1ZnNoY2RfcHJpbnRfZXJyX2hpc3QoaGJhLCAmaGJhLT51ZnNfc3RhdHMudGxfZXJyLCAidGxfZXJyIik7CisJdWZzaGNkX3ByaW50X2Vycl9oaXN0KGhiYSwgJmhiYS0+dWZzX3N0YXRzLmRtZV9lcnIsICJkbWVfZXJyIik7CisJdWZzaGNkX3ByaW50X2Vycl9oaXN0KGhiYSwgJmhiYS0+dWZzX3N0YXRzLmF1dG9faGliZXJuOF9lcnIsCisJCQkgICAgICAiYXV0b19oaWJlcm44X2VyciIpOworCXVmc2hjZF9wcmludF9lcnJfaGlzdChoYmEsICZoYmEtPnVmc19zdGF0cy5mYXRhbF9lcnIsICJmYXRhbF9lcnIiKTsKKwl1ZnNoY2RfcHJpbnRfZXJyX2hpc3QoaGJhLCAmaGJhLT51ZnNfc3RhdHMubGlua19zdGFydHVwX2VyciwKKwkJCSAgICAgICJsaW5rX3N0YXJ0dXBfZmFpbCIpOworCXVmc2hjZF9wcmludF9lcnJfaGlzdChoYmEsICZoYmEtPnVmc19zdGF0cy5yZXN1bWVfZXJyLCAicmVzdW1lX2ZhaWwiKTsKKwl1ZnNoY2RfcHJpbnRfZXJyX2hpc3QoaGJhLCAmaGJhLT51ZnNfc3RhdHMuc3VzcGVuZF9lcnIsCisJCQkgICAgICAic3VzcGVuZF9mYWlsIik7CisJdWZzaGNkX3ByaW50X2Vycl9oaXN0KGhiYSwgJmhiYS0+dWZzX3N0YXRzLmRldl9yZXNldCwgImRldl9yZXNldCIpOworCXVmc2hjZF9wcmludF9lcnJfaGlzdChoYmEsICZoYmEtPnVmc19zdGF0cy5ob3N0X3Jlc2V0LCAiaG9zdF9yZXNldCIpOworCXVmc2hjZF9wcmludF9lcnJfaGlzdChoYmEsICZoYmEtPnVmc19zdGF0cy50YXNrX2Fib3J0LCAidGFza19hYm9ydCIpOwogCiAJdWZzaGNkX3ByaW50X2Nsa19mcmVxcyhoYmEpOwogCkBAIC0zMTk5LDcgKzMyMDEsNyBAQCBpbnQgdWZzaGNkX3JlYWRfZGVzY19wYXJhbShzdHJ1Y3QgdWZzX2hiYSAqaGJhLAogc3RhdGljIGlubGluZSBpbnQgdWZzaGNkX3JlYWRfZGVzYyhzdHJ1Y3QgdWZzX2hiYSAqaGJhLAogCQkJCSAgIGVudW0gZGVzY19pZG4gZGVzY19pZCwKIAkJCQkgICBpbnQgZGVzY19pbmRleCwKLQkJCQkgICB1OCAqYnVmLAorCQkJCSAgIHZvaWQgKmJ1ZiwKIAkJCQkgICB1MzIgc2l6ZSkKIHsKIAlyZXR1cm4gdWZzaGNkX3JlYWRfZGVzY19wYXJhbShoYmEsIGRlc2NfaWQsIGRlc2NfaW5kZXgsIDAsIGJ1Ziwgc2l6ZSk7CkBAIC0zMjE4LDQ4ICszMjIwLDc3IEBAIHN0YXRpYyBpbnQgdWZzaGNkX3JlYWRfZGV2aWNlX2Rlc2Moc3RydWN0IHVmc19oYmEgKmhiYSwgdTggKmJ1ZiwgdTMyIHNpemUpCiB9CiAKIC8qKgorICogc3RydWN0IHVjX3N0cmluZ19pZCAtIHVuaWNvZGUgc3RyaW5nCisgKgorICogQGxlbjogc2l6ZSBvZiB0aGlzIGRlc2NyaXB0b3IgaW5jbHVzaXZlCisgKiBAdHlwZTogZGVzY3JpcHRvciB0eXBlCisgKiBAdWM6IHVuaWNvZGUgc3RyaW5nIGNoYXJhY3RlcgorICovCitzdHJ1Y3QgdWNfc3RyaW5nX2lkIHsKKwl1OCBsZW47CisJdTggdHlwZTsKKwl3Y2hhcl90IHVjWzBdOworfSBfX3BhY2tlZDsKKworLyogcmVwbGFjZSBub24tcHJpbnRhYmxlIG9yIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIHdpdGggc3BhY2VzICovCitzdGF0aWMgaW5saW5lIGNoYXIgdWZzaGNkX3JlbW92ZV9ub25fcHJpbnRhYmxlKHU4IGNoKQoreworCXJldHVybiAoY2ggPj0gMHgyMCAmJiBjaCA8PSAweDdlKSA/IGNoIDogJyAnOworfQorCisvKioKICAqIHVmc2hjZF9yZWFkX3N0cmluZ19kZXNjIC0gcmVhZCBzdHJpbmcgZGVzY3JpcHRvcgogICogQGhiYTogcG9pbnRlciB0byBhZGFwdGVyIGluc3RhbmNlCiAgKiBAZGVzY19pbmRleDogZGVzY3JpcHRvciBpbmRleAotICogQGJ1ZjogcG9pbnRlciB0byBidWZmZXIgd2hlcmUgZGVzY3JpcHRvciB3b3VsZCBiZSByZWFkCi0gKiBAc2l6ZTogc2l6ZSBvZiBidWYKKyAqIEBidWY6IHBvaW50ZXIgdG8gYnVmZmVyIHdoZXJlIGRlc2NyaXB0b3Igd291bGQgYmUgcmVhZCwKKyAqICAgICAgIHRoZSBjYWxsZXIgc2hvdWxkIGZyZWUgdGhlIG1lbW9yeS4KICAqIEBhc2NpaTogaWYgdHJ1ZSBjb252ZXJ0IGZyb20gdW5pY29kZSB0byBhc2NpaSBjaGFyYWN0ZXJzCisgKiAgICAgICAgIG51bGwgdGVybWluYXRlZCBzdHJpbmcuCiAgKgotICogUmV0dXJuIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCBub24temVybyBvdGhlcndpc2UKKyAqIFJldHVybjoKKyAqICogICAgICBzdHJpbmcgc2l6ZSBvbiBzdWNjZXNzLgorICogKiAgICAgIC1FTk9NRU06IG9uIGFsbG9jYXRpb24gZmFpbHVyZQorICogKiAgICAgIC1FSU5WQUw6IG9uIGEgd3JvbmcgcGFyYW1ldGVyCiAgKi8KLWludCB1ZnNoY2RfcmVhZF9zdHJpbmdfZGVzYyhzdHJ1Y3QgdWZzX2hiYSAqaGJhLCBpbnQgZGVzY19pbmRleCwKLQkJCSAgICB1OCAqYnVmLCB1MzIgc2l6ZSwgYm9vbCBhc2NpaSkKK2ludCB1ZnNoY2RfcmVhZF9zdHJpbmdfZGVzYyhzdHJ1Y3QgdWZzX2hiYSAqaGJhLCB1OCBkZXNjX2luZGV4LAorCQkJICAgIHU4ICoqYnVmLCBib29sIGFzY2lpKQogewotCWludCBlcnIgPSAwOworCXN0cnVjdCB1Y19zdHJpbmdfaWQgKnVjX3N0cjsKKwl1OCAqc3RyOworCWludCByZXQ7CiAKLQllcnIgPSB1ZnNoY2RfcmVhZF9kZXNjKGhiYSwKLQkJCQlRVUVSWV9ERVNDX0lETl9TVFJJTkcsIGRlc2NfaW5kZXgsIGJ1Ziwgc2l6ZSk7CisJaWYgKCFidWYpCisJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKGVycikgewotCQlkZXZfZXJyKGhiYS0+ZGV2LCAiJXM6IHJlYWRpbmcgU3RyaW5nIERlc2MgZmFpbGVkIGFmdGVyICVkIHJldHJpZXMuIGVyciA9ICVkXG4iLAotCQkJX19mdW5jX18sIFFVRVJZX1JFUV9SRVRSSUVTLCBlcnIpOworCXVjX3N0ciA9IGt6YWxsb2MoUVVFUllfREVTQ19NQVhfU0laRSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF1Y19zdHIpCisJCXJldHVybiAtRU5PTUVNOworCisJcmV0ID0gdWZzaGNkX3JlYWRfZGVzYyhoYmEsIFFVRVJZX0RFU0NfSUROX1NUUklORywKKwkJCSAgICAgICBkZXNjX2luZGV4LCB1Y19zdHIsCisJCQkgICAgICAgUVVFUllfREVTQ19NQVhfU0laRSk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihoYmEtPmRldiwgIlJlYWRpbmcgU3RyaW5nIERlc2MgZmFpbGVkIGFmdGVyICVkIHJldHJpZXMuIGVyciA9ICVkXG4iLAorCQkJUVVFUllfUkVRX1JFVFJJRVMsIHJldCk7CisJCXN0ciA9IE5VTEw7CisJCWdvdG8gb3V0OworCX0KKworCWlmICh1Y19zdHItPmxlbiA8PSBRVUVSWV9ERVNDX0hEUl9TSVpFKSB7CisJCWRldl9kYmcoaGJhLT5kZXYsICJTdHJpbmcgRGVzYyBpcyBvZiB6ZXJvIGxlbmd0aFxuIik7CisJCXN0ciA9IE5VTEw7CisJCXJldCA9IDA7CiAJCWdvdG8gb3V0OwogCX0KIAogCWlmIChhc2NpaSkgewotCQlpbnQgZGVzY19sZW47Ci0JCWludCBhc2NpaV9sZW47CisJCXNzaXplX3QgYXNjaWlfbGVuOwogCQlpbnQgaTsKLQkJY2hhciAqYnVmZl9hc2NpaTsKLQotCQlkZXNjX2xlbiA9IGJ1ZlswXTsKIAkJLyogcmVtb3ZlIGhlYWRlciBhbmQgZGl2aWRlIGJ5IDIgdG8gbW92ZSBmcm9tIFVURjE2IHRvIFVURjggKi8KLQkJYXNjaWlfbGVuID0gKGRlc2NfbGVuIC0gUVVFUllfREVTQ19IRFJfU0laRSkgLyAyICsgMTsKLQkJaWYgKHNpemUgPCBhc2NpaV9sZW4gKyBRVUVSWV9ERVNDX0hEUl9TSVpFKSB7Ci0JCQlkZXZfZXJyKGhiYS0+ZGV2LCAiJXM6IGJ1ZmZlciBhbGxvY2F0ZWQgc2l6ZSBpcyB0b28gc21hbGxcbiIsCi0JCQkJCV9fZnVuY19fKTsKLQkJCWVyciA9IC1FTk9NRU07Ci0JCQlnb3RvIG91dDsKLQkJfQotCi0JCWJ1ZmZfYXNjaWkgPSBrbWFsbG9jKGFzY2lpX2xlbiwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghYnVmZl9hc2NpaSkgewotCQkJZXJyID0gLUVOT01FTTsKKwkJYXNjaWlfbGVuID0gKHVjX3N0ci0+bGVuIC0gUVVFUllfREVTQ19IRFJfU0laRSkgLyAyICsgMTsKKwkJc3RyID0ga3phbGxvYyhhc2NpaV9sZW4sIEdGUF9LRVJORUwpOworCQlpZiAoIXN0cikgeworCQkJcmV0ID0gLUVOT01FTTsKIAkJCWdvdG8gb3V0OwogCQl9CiAKQEAgLTMyNjcsMjIgKzMyOTgsMjggQEAgaW50IHVmc2hjZF9yZWFkX3N0cmluZ19kZXNjKHN0cnVjdCB1ZnNfaGJhICpoYmEsIGludCBkZXNjX2luZGV4LAogCQkgKiB0aGUgZGVzY3JpcHRvciBjb250YWlucyBzdHJpbmcgaW4gVVRGMTYgZm9ybWF0CiAJCSAqIHdlIG5lZWQgdG8gY29udmVydCB0byB1dGYtOCBzbyBpdCBjYW4gYmUgZGlzcGxheWVkCiAJCSAqLwotCQl1dGYxNnNfdG9fdXRmOHMoKHdjaGFyX3QgKikmYnVmW1FVRVJZX0RFU0NfSERSX1NJWkVdLAotCQkJCWRlc2NfbGVuIC0gUVVFUllfREVTQ19IRFJfU0laRSwKLQkJCQlVVEYxNl9CSUdfRU5ESUFOLCBidWZmX2FzY2lpLCBhc2NpaV9sZW4pOworCQlyZXQgPSB1dGYxNnNfdG9fdXRmOHModWNfc3RyLT51YywKKwkJCQkgICAgICB1Y19zdHItPmxlbiAtIFFVRVJZX0RFU0NfSERSX1NJWkUsCisJCQkJICAgICAgVVRGMTZfQklHX0VORElBTiwgc3RyLCBhc2NpaV9sZW4pOwogCiAJCS8qIHJlcGxhY2Ugbm9uLXByaW50YWJsZSBvciBub24tQVNDSUkgY2hhcmFjdGVycyB3aXRoIHNwYWNlcyAqLwotCQlmb3IgKGkgPSAwOyBpIDwgYXNjaWlfbGVuOyBpKyspCi0JCQl1ZnNoY2RfcmVtb3ZlX25vbl9wcmludGFibGUoJmJ1ZmZfYXNjaWlbaV0pOworCQlmb3IgKGkgPSAwOyBpIDwgcmV0OyBpKyspCisJCQlzdHJbaV0gPSB1ZnNoY2RfcmVtb3ZlX25vbl9wcmludGFibGUoc3RyW2ldKTsKIAotCQltZW1zZXQoYnVmICsgUVVFUllfREVTQ19IRFJfU0laRSwgMCwKLQkJCQlzaXplIC0gUVVFUllfREVTQ19IRFJfU0laRSk7Ci0JCW1lbWNweShidWYgKyBRVUVSWV9ERVNDX0hEUl9TSVpFLCBidWZmX2FzY2lpLCBhc2NpaV9sZW4pOwotCQlidWZbUVVFUllfREVTQ19MRU5HVEhfT0ZGU0VUXSA9IGFzY2lpX2xlbiArIFFVRVJZX0RFU0NfSERSX1NJWkU7Ci0JCWtmcmVlKGJ1ZmZfYXNjaWkpOworCQlzdHJbcmV0KytdID0gJ1wwJzsKKworCX0gZWxzZSB7CisJCXN0ciA9IGttZW1kdXAodWNfc3RyLCB1Y19zdHItPmxlbiwgR0ZQX0tFUk5FTCk7CisJCWlmICghc3RyKSB7CisJCQlyZXQgPSAtRU5PTUVNOworCQkJZ290byBvdXQ7CisJCX0KKwkJcmV0ID0gdWNfc3RyLT5sZW47CiAJfQogb3V0OgotCXJldHVybiBlcnI7CisJKmJ1ZiA9IHN0cjsKKwlrZnJlZSh1Y19zdHIpOworCXJldHVybiByZXQ7CiB9CiAKIC8qKgpAQCAtNDIxNCwxMiArNDI1MSw2IEBAIHN0YXRpYyBpbnQgdWZzaGNkX2hiYV9leGVjdXRlX2hjZShzdHJ1Y3QgdWZzX2hiYSAqaGJhKQogewogCWludCByZXRyeTsKIAotCS8qCi0JICogbXNsZWVwIG9mIDEgYW5kIDUgdXNlZCBpbiB0aGlzIGZ1bmN0aW9uIG1pZ2h0IHJlc3VsdCBpbiBtc2xlZXAoMjApLAotCSAqIGJ1dCBpdCB3YXMgbmVjZXNzYXJ5IHRvIHNlbmQgdGhlIFVGUyBGUEdBIHRvIHJlc2V0IG1vZGUgZHVyaW5nCi0JICogZGV2ZWxvcG1lbnQgYW5kIHRlc3Rpbmcgb2YgdGhpcyBkcml2ZXIuIG1zbGVlcCBjYW4gYmUgY2hhbmdlZCB0bwotCSAqIG1kZWxheSBhbmQgcmV0cnkgY291bnQgY2FuIGJlIHJlZHVjZWQgYmFzZWQgb24gdGhlIGNvbnRyb2xsZXIuCi0JICovCiAJaWYgKCF1ZnNoY2RfaXNfaGJhX2FjdGl2ZShoYmEpKQogCQkvKiBjaGFuZ2UgY29udHJvbGxlciBzdGF0ZSB0byAicmVzZXQgc3RhdGUiICovCiAJCXVmc2hjZF9oYmFfc3RvcChoYmEsIHRydWUpOwpAQCAtNDI0Miw3ICs0MjczLDcgQEAgc3RhdGljIGludCB1ZnNoY2RfaGJhX2V4ZWN1dGVfaGNlKHN0cnVjdCB1ZnNfaGJhICpoYmEpCiAJICogaW5zdHJ1Y3Rpb24gbWlnaHQgYmUgcmVhZCBiYWNrLgogCSAqIFRoaXMgZGVsYXkgY2FuIGJlIGNoYW5nZWQgYmFzZWQgb24gdGhlIGNvbnRyb2xsZXIuCiAJICovCi0JbXNsZWVwKDEpOworCXVzbGVlcF9yYW5nZSgxMDAwLCAxMTAwKTsKIAogCS8qIHdhaXQgZm9yIHRoZSBob3N0IGNvbnRyb2xsZXIgdG8gY29tcGxldGUgaW5pdGlhbGl6YXRpb24gKi8KIAlyZXRyeSA9IDEwOwpAQCAtNDI1NCw3ICs0Mjg1LDcgQEAgc3RhdGljIGludCB1ZnNoY2RfaGJhX2V4ZWN1dGVfaGNlKHN0cnVjdCB1ZnNfaGJhICpoYmEpCiAJCQkJIkNvbnRyb2xsZXIgZW5hYmxlIGZhaWxlZFxuIik7CiAJCQlyZXR1cm4gLUVJTzsKIAkJfQotCQltc2xlZXAoNSk7CisJCXVzbGVlcF9yYW5nZSg1MDAwLCA1MTAwKTsKIAl9CiAKIAkvKiBlbmFibGUgVUlDIHJlbGF0ZWQgaW50ZXJydXB0cyAqLwpAQCAtNDMyNiw2ICs0MzU3LDE0IEBAIHN0YXRpYyBpbmxpbmUgaW50IHVmc2hjZF9kaXNhYmxlX2RldmljZV90eF9sY2Moc3RydWN0IHVmc19oYmEgKmhiYSkKIAlyZXR1cm4gdWZzaGNkX2Rpc2FibGVfdHhfbGNjKGhiYSwgdHJ1ZSk7CiB9CiAKK3N0YXRpYyB2b2lkIHVmc2hjZF91cGRhdGVfcmVnX2hpc3Qoc3RydWN0IHVmc19lcnJfcmVnX2hpc3QgKnJlZ19oaXN0LAorCQkJCSAgIHUzMiByZWcpCit7CisJcmVnX2hpc3QtPnJlZ1tyZWdfaGlzdC0+cG9zXSA9IHJlZzsKKwlyZWdfaGlzdC0+dHN0YW1wW3JlZ19oaXN0LT5wb3NdID0ga3RpbWVfZ2V0KCk7CisJcmVnX2hpc3QtPnBvcyA9IChyZWdfaGlzdC0+cG9zICsgMSkgJSBVRlNfRVJSX1JFR19ISVNUX0xFTkdUSDsKK30KKwogLyoqCiAgKiB1ZnNoY2RfbGlua19zdGFydHVwIC0gSW5pdGlhbGl6ZSB1bmlwcm8gbGluayBzdGFydHVwCiAgKiBAaGJhOiBwZXIgYWRhcHRlciBpbnN0YW5jZQpAQCAtNDM1Myw2ICs0MzkyLDggQEAgc3RhdGljIGludCB1ZnNoY2RfbGlua19zdGFydHVwKHN0cnVjdCB1ZnNfaGJhICpoYmEpCiAKIAkJLyogY2hlY2sgaWYgZGV2aWNlIGlzIGRldGVjdGVkIGJ5IGludGVyLWNvbm5lY3QgbGF5ZXIgKi8KIAkJaWYgKCFyZXQgJiYgIXVmc2hjZF9pc19kZXZpY2VfcHJlc2VudChoYmEpKSB7CisJCQl1ZnNoY2RfdXBkYXRlX3JlZ19oaXN0KCZoYmEtPnVmc19zdGF0cy5saW5rX3N0YXJ0dXBfZXJyLAorCQkJCQkgICAgICAgMCk7CiAJCQlkZXZfZXJyKGhiYS0+ZGV2LCAiJXM6IERldmljZSBub3QgcHJlc2VudFxuIiwgX19mdW5jX18pOwogCQkJcmV0ID0gLUVOWElPOwogCQkJZ290byBvdXQ7CkBAIC00MzYzLDEzICs0NDA0LDE5IEBAIHN0YXRpYyBpbnQgdWZzaGNkX2xpbmtfc3RhcnR1cChzdHJ1Y3QgdWZzX2hiYSAqaGJhKQogCQkgKiBidXQgd2UgY2FuJ3QgYmUgc3VyZSBpZiB0aGUgbGluayBpcyB1cCB1bnRpbCBsaW5rIHN0YXJ0dXAKIAkJICogc3VjY2VlZHMuIFNvIHJlc2V0IHRoZSBsb2NhbCBVbmktUHJvIGFuZCB0cnkgYWdhaW4uCiAJCSAqLwotCQlpZiAocmV0ICYmIHVmc2hjZF9oYmFfZW5hYmxlKGhiYSkpCisJCWlmIChyZXQgJiYgdWZzaGNkX2hiYV9lbmFibGUoaGJhKSkgeworCQkJdWZzaGNkX3VwZGF0ZV9yZWdfaGlzdCgmaGJhLT51ZnNfc3RhdHMubGlua19zdGFydHVwX2VyciwKKwkJCQkJICAgICAgICh1MzIpcmV0KTsKIAkJCWdvdG8gb3V0OworCQl9CiAJfSB3aGlsZSAocmV0ICYmIHJldHJpZXMtLSk7CiAKLQlpZiAocmV0KQorCWlmIChyZXQpIHsKIAkJLyogZmFpbGVkIHRvIGdldCB0aGUgbGluayB1cC4uLiByZXRpcmUgKi8KKwkJdWZzaGNkX3VwZGF0ZV9yZWdfaGlzdCgmaGJhLT51ZnNfc3RhdHMubGlua19zdGFydHVwX2VyciwKKwkJCQkgICAgICAgKHUzMilyZXQpOwogCQlnb3RvIG91dDsKKwl9CiAKIAlpZiAobGlua19zdGFydHVwX2FnYWluKSB7CiAJCWxpbmtfc3RhcnR1cF9hZ2FpbiA9IGZhbHNlOwpAQCAtNTM0NSwxNCArNTM5Miw2IEBAIHN0YXRpYyB2b2lkIHVmc2hjZF9lcnJfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJcG1fcnVudGltZV9wdXRfc3luYyhoYmEtPmRldik7CiB9CiAKLXN0YXRpYyB2b2lkIHVmc2hjZF91cGRhdGVfdWljX3JlZ19oaXN0KHN0cnVjdCB1ZnNfdWljX2Vycl9yZWdfaGlzdCAqcmVnX2hpc3QsCi0JCXUzMiByZWcpCi17Ci0JcmVnX2hpc3QtPnJlZ1tyZWdfaGlzdC0+cG9zXSA9IHJlZzsKLQlyZWdfaGlzdC0+dHN0YW1wW3JlZ19oaXN0LT5wb3NdID0ga3RpbWVfZ2V0KCk7Ci0JcmVnX2hpc3QtPnBvcyA9IChyZWdfaGlzdC0+cG9zICsgMSkgJSBVSUNfRVJSX1JFR19ISVNUX0xFTkdUSDsKLX0KLQogLyoqCiAgKiB1ZnNoY2RfdXBkYXRlX3VpY19lcnJvciAtIGNoZWNrIGFuZCBzZXQgZmF0YWwgVUlDIGVycm9yIGZsYWdzLgogICogQGhiYTogcGVyLWFkYXB0ZXIgaW5zdGFuY2UKQEAgLTUzNzEsMTMgKzU0MTAsMTMgQEAgc3RhdGljIHZvaWQgdWZzaGNkX3VwZGF0ZV91aWNfZXJyb3Ioc3RydWN0IHVmc19oYmEgKmhiYSkKIAkJICogbXVzdCBiZSBjaGVja2VkIGJ1dCB0aGlzIGVycm9yIGlzIGhhbmRsZWQgc2VwYXJhdGVseS4KIAkJICovCiAJCWRldl9kYmcoaGJhLT5kZXYsICIlczogVUlDIExhbmUgZXJyb3IgcmVwb3J0ZWRcbiIsIF9fZnVuY19fKTsKLQkJdWZzaGNkX3VwZGF0ZV91aWNfcmVnX2hpc3QoJmhiYS0+dWZzX3N0YXRzLnBhX2VyciwgcmVnKTsKKwkJdWZzaGNkX3VwZGF0ZV9yZWdfaGlzdCgmaGJhLT51ZnNfc3RhdHMucGFfZXJyLCByZWcpOwogCX0KIAogCS8qIFBBX0lOSVRfRVJST1IgaXMgZmF0YWwgYW5kIG5lZWRzIFVJQyByZXNldCAqLwogCXJlZyA9IHVmc2hjZF9yZWFkbChoYmEsIFJFR19VSUNfRVJST1JfQ09ERV9EQVRBX0xJTktfTEFZRVIpOwogCWlmIChyZWcpCi0JCXVmc2hjZF91cGRhdGVfdWljX3JlZ19oaXN0KCZoYmEtPnVmc19zdGF0cy5kbF9lcnIsIHJlZyk7CisJCXVmc2hjZF91cGRhdGVfcmVnX2hpc3QoJmhiYS0+dWZzX3N0YXRzLmRsX2VyciwgcmVnKTsKIAogCWlmIChyZWcgJiBVSUNfREFUQV9MSU5LX0xBWUVSX0VSUk9SX1BBX0lOSVQpCiAJCWhiYS0+dWljX2Vycm9yIHw9IFVGU0hDRF9VSUNfRExfUEFfSU5JVF9FUlJPUjsKQEAgLTUzOTMsMTkgKzU0MzIsMTkgQEAgc3RhdGljIHZvaWQgdWZzaGNkX3VwZGF0ZV91aWNfZXJyb3Ioc3RydWN0IHVmc19oYmEgKmhiYSkKIAkvKiBVSUMgTkwvVEwvRE1FIGVycm9ycyBuZWVkcyBzb2Z0d2FyZSByZXRyeSAqLwogCXJlZyA9IHVmc2hjZF9yZWFkbChoYmEsIFJFR19VSUNfRVJST1JfQ09ERV9ORVRXT1JLX0xBWUVSKTsKIAlpZiAocmVnKSB7Ci0JCXVmc2hjZF91cGRhdGVfdWljX3JlZ19oaXN0KCZoYmEtPnVmc19zdGF0cy5ubF9lcnIsIHJlZyk7CisJCXVmc2hjZF91cGRhdGVfcmVnX2hpc3QoJmhiYS0+dWZzX3N0YXRzLm5sX2VyciwgcmVnKTsKIAkJaGJhLT51aWNfZXJyb3IgfD0gVUZTSENEX1VJQ19OTF9FUlJPUjsKIAl9CiAKIAlyZWcgPSB1ZnNoY2RfcmVhZGwoaGJhLCBSRUdfVUlDX0VSUk9SX0NPREVfVFJBTlNQT1JUX0xBWUVSKTsKIAlpZiAocmVnKSB7Ci0JCXVmc2hjZF91cGRhdGVfdWljX3JlZ19oaXN0KCZoYmEtPnVmc19zdGF0cy50bF9lcnIsIHJlZyk7CisJCXVmc2hjZF91cGRhdGVfcmVnX2hpc3QoJmhiYS0+dWZzX3N0YXRzLnRsX2VyciwgcmVnKTsKIAkJaGJhLT51aWNfZXJyb3IgfD0gVUZTSENEX1VJQ19UTF9FUlJPUjsKIAl9CiAKIAlyZWcgPSB1ZnNoY2RfcmVhZGwoaGJhLCBSRUdfVUlDX0VSUk9SX0NPREVfRE1FKTsKIAlpZiAocmVnKSB7Ci0JCXVmc2hjZF91cGRhdGVfdWljX3JlZ19oaXN0KCZoYmEtPnVmc19zdGF0cy5kbWVfZXJyLCByZWcpOworCQl1ZnNoY2RfdXBkYXRlX3JlZ19oaXN0KCZoYmEtPnVmc19zdGF0cy5kbWVfZXJyLCByZWcpOwogCQloYmEtPnVpY19lcnJvciB8PSBVRlNIQ0RfVUlDX0RNRV9FUlJPUjsKIAl9CiAKQEAgLTU0MzgsOCArNTQ3NywxMCBAQCBzdGF0aWMgdm9pZCB1ZnNoY2RfY2hlY2tfZXJyb3JzKHN0cnVjdCB1ZnNfaGJhICpoYmEpCiB7CiAJYm9vbCBxdWV1ZV9laF93b3JrID0gZmFsc2U7CiAKLQlpZiAoaGJhLT5lcnJvcnMgJiBJTlRfRkFUQUxfRVJST1JTKQorCWlmIChoYmEtPmVycm9ycyAmIElOVF9GQVRBTF9FUlJPUlMpIHsKKwkJdWZzaGNkX3VwZGF0ZV9yZWdfaGlzdCgmaGJhLT51ZnNfc3RhdHMuZmF0YWxfZXJyLCBoYmEtPmVycm9ycyk7CiAJCXF1ZXVlX2VoX3dvcmsgPSB0cnVlOworCX0KIAogCWlmIChoYmEtPmVycm9ycyAmIFVJQ19FUlJPUikgewogCQloYmEtPnVpY19lcnJvciA9IDA7CkBAIC01NDU0LDYgKzU0OTUsOCBAQCBzdGF0aWMgdm9pZCB1ZnNoY2RfY2hlY2tfZXJyb3JzKHN0cnVjdCB1ZnNfaGJhICpoYmEpCiAJCQlfX2Z1bmNfXywgKGhiYS0+ZXJyb3JzICYgVUlDX0hJQkVSTkFURV9FTlRFUikgPwogCQkJIkVudGVyIiA6ICJFeGl0IiwKIAkJCWhiYS0+ZXJyb3JzLCB1ZnNoY2RfZ2V0X3VwbWNycyhoYmEpKTsKKwkJdWZzaGNkX3VwZGF0ZV9yZWdfaGlzdCgmaGJhLT51ZnNfc3RhdHMuYXV0b19oaWJlcm44X2VyciwKKwkJCQkgICAgICAgaGJhLT5lcnJvcnMpOwogCQlxdWV1ZV9laF93b3JrID0gdHJ1ZTsKIAl9CiAKQEAgLTU2NTIsMTMgKzU2OTUsMTIgQEAgc3RhdGljIGludCBfX3Vmc2hjZF9pc3N1ZV90bV9jbWQoc3RydWN0IHVmc19oYmEgKmhiYSwKIAkJbWVtY3B5KHRyZXEsIGhiYS0+dXRtcmRsX2Jhc2VfYWRkciArIGZyZWVfc2xvdCwgc2l6ZW9mKCp0cmVxKSk7CiAKIAkJdWZzaGNkX2FkZF90bV91cGl1X3RyYWNlKGhiYSwgdGFza190YWcsICJ0bV9jb21wbGV0ZSIpOwotCi0JCXNwaW5fbG9ja19pcnFzYXZlKGhiYS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7Ci0JCV9fY2xlYXJfYml0KGZyZWVfc2xvdCwgJmhiYS0+b3V0c3RhbmRpbmdfdGFza3MpOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGhiYS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7Ci0KIAl9CiAKKwlzcGluX2xvY2tfaXJxc2F2ZShoYmEtPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOworCV9fY2xlYXJfYml0KGZyZWVfc2xvdCwgJmhiYS0+b3V0c3RhbmRpbmdfdGFza3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoaGJhLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKKwogCWNsZWFyX2JpdChmcmVlX3Nsb3QsICZoYmEtPnRtX2NvbmRpdGlvbik7CiAJdWZzaGNkX3B1dF90bV9zbG90KGhiYSwgZnJlZV9zbG90KTsKIAl3YWtlX3VwKCZoYmEtPnRtX3RhZ193cSk7CkBAIC01OTQxLDYgKzU5ODMsNyBAQCBzdGF0aWMgaW50IHVmc2hjZF9laF9kZXZpY2VfcmVzZXRfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCiAKIG91dDoKIAloYmEtPnJlcV9hYm9ydF9jb3VudCA9IDA7CisJdWZzaGNkX3VwZGF0ZV9yZWdfaGlzdCgmaGJhLT51ZnNfc3RhdHMuZGV2X3Jlc2V0LCAodTMyKWVycik7CiAJaWYgKCFlcnIpIHsKIAkJZXJyID0gU1VDQ0VTUzsKIAl9IGVsc2UgewpAQCAtNjAzNCw2ICs2MDc3LDcgQEAgc3RhdGljIGludCB1ZnNoY2RfYWJvcnQoc3RydWN0IHNjc2lfY21uZCAqY21kKQogCSAqLwogCXNjc2lfcHJpbnRfY29tbWFuZChoYmEtPmxyYlt0YWddLmNtZCk7CiAJaWYgKCFoYmEtPnJlcV9hYm9ydF9jb3VudCkgeworCQl1ZnNoY2RfdXBkYXRlX3JlZ19oaXN0KCZoYmEtPnVmc19zdGF0cy50YXNrX2Fib3J0LCAwKTsKIAkJdWZzaGNkX3ByaW50X2hvc3RfcmVncyhoYmEpOwogCQl1ZnNoY2RfcHJpbnRfaG9zdF9zdGF0ZShoYmEpOwogCQl1ZnNoY2RfcHJpbnRfcHdyX2luZm8oaGJhKTsKQEAgLTYxNjksNyArNjIxMyw3IEBAIHN0YXRpYyBpbnQgdWZzaGNkX2hvc3RfcmVzZXRfYW5kX3Jlc3RvcmUoc3RydWN0IHVmc19oYmEgKmhiYSkKIG91dDoKIAlpZiAoZXJyKQogCQlkZXZfZXJyKGhiYS0+ZGV2LCAiJXM6IEhvc3QgaW5pdCBmYWlsZWQgJWRcbiIsIF9fZnVuY19fLCBlcnIpOwotCisJdWZzaGNkX3VwZGF0ZV9yZWdfaGlzdCgmaGJhLT51ZnNfc3RhdHMuaG9zdF9yZXNldCwgKHUzMillcnIpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTYxODksNiArNjIzMyw5IEBAIHN0YXRpYyBpbnQgdWZzaGNkX3Jlc2V0X2FuZF9yZXN0b3JlKHN0cnVjdCB1ZnNfaGJhICpoYmEpCiAJaW50IHJldHJpZXMgPSBNQVhfSE9TVF9SRVNFVF9SRVRSSUVTOwogCiAJZG8geworCQkvKiBSZXNldCB0aGUgYXR0YWNoZWQgZGV2aWNlICovCisJCXVmc2hjZF92b3BzX2RldmljZV9yZXNldChoYmEpOworCiAJCWVyciA9IHVmc2hjZF9ob3N0X3Jlc2V0X2FuZF9yZXN0b3JlKGhiYSk7CiAJfSB3aGlsZSAoZXJyICYmIC0tcmV0cmllcyk7CiAKQEAgLTY0NTMsNiArNjUwMCw5IEBAIHN0YXRpYyBpbnQgdWZzX2dldF9kZXZpY2VfZGVzYyhzdHJ1Y3QgdWZzX2hiYSAqaGJhLAogCXU4IG1vZGVsX2luZGV4OwogCXU4ICpkZXNjX2J1ZjsKIAorCWlmICghZGV2X2Rlc2MpCisJCXJldHVybiAtRUlOVkFMOworCiAJYnVmZl9sZW4gPSBtYXhfdChzaXplX3QsIGhiYS0+ZGVzY19zaXplLmRldl9kZXNjLAogCQkJIFFVRVJZX0RFU0NfTUFYX1NJWkUgKyAxKTsKIAlkZXNjX2J1ZiA9IGttYWxsb2MoYnVmZl9sZW4sIEdGUF9LRVJORUwpOwpAQCAtNjQ3NiwzMSArNjUyNiwzMSBAQCBzdGF0aWMgaW50IHVmc19nZXRfZGV2aWNlX2Rlc2Moc3RydWN0IHVmc19oYmEgKmhiYSwKIAkJCQkgICAgIGRlc2NfYnVmW0RFVklDRV9ERVNDX1BBUkFNX01BTkZfSUQgKyAxXTsKIAogCW1vZGVsX2luZGV4ID0gZGVzY19idWZbREVWSUNFX0RFU0NfUEFSQU1fUFJEQ1RfTkFNRV07Ci0KLQkvKiBaZXJvLXBhZCBlbnRpcmUgYnVmZmVyIGZvciBzdHJpbmcgdGVybWluYXRpb24uICovCi0JbWVtc2V0KGRlc2NfYnVmLCAwLCBidWZmX2xlbik7Ci0KLQllcnIgPSB1ZnNoY2RfcmVhZF9zdHJpbmdfZGVzYyhoYmEsIG1vZGVsX2luZGV4LCBkZXNjX2J1ZiwKLQkJCQkgICAgICBRVUVSWV9ERVNDX01BWF9TSVpFLCB0cnVlLypBU0NJSSovKTsKLQlpZiAoZXJyKSB7CisJZXJyID0gdWZzaGNkX3JlYWRfc3RyaW5nX2Rlc2MoaGJhLCBtb2RlbF9pbmRleCwKKwkJCQkgICAgICAmZGV2X2Rlc2MtPm1vZGVsLCBTRF9BU0NJSV9TVEQpOworCWlmIChlcnIgPCAwKSB7CiAJCWRldl9lcnIoaGJhLT5kZXYsICIlczogRmFpbGVkIHJlYWRpbmcgUHJvZHVjdCBOYW1lLiBlcnIgPSAlZFxuIiwKIAkJCV9fZnVuY19fLCBlcnIpOwogCQlnb3RvIG91dDsKIAl9CiAKLQlkZXNjX2J1ZltRVUVSWV9ERVNDX01BWF9TSVpFXSA9ICdcMCc7Ci0Jc3RybGNweShkZXZfZGVzYy0+bW9kZWwsIChkZXNjX2J1ZiArIFFVRVJZX0RFU0NfSERSX1NJWkUpLAotCQltaW5fdCh1OCwgZGVzY19idWZbUVVFUllfREVTQ19MRU5HVEhfT0ZGU0VUXSwKLQkJICAgICAgTUFYX01PREVMX0xFTikpOwotCi0JLyogTnVsbCB0ZXJtaW5hdGUgdGhlIG1vZGVsIHN0cmluZyAqLwotCWRldl9kZXNjLT5tb2RlbFtNQVhfTU9ERUxfTEVOXSA9ICdcMCc7CisJLyoKKwkgKiB1ZnNoY2RfcmVhZF9zdHJpbmdfZGVzYyByZXR1cm5zIHNpemUgb2YgdGhlIHN0cmluZworCSAqIHJlc2V0IHRoZSBlcnJvciB2YWx1ZQorCSAqLworCWVyciA9IDA7CiAKIG91dDoKIAlrZnJlZShkZXNjX2J1Zik7CiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIHZvaWQgdWZzX3B1dF9kZXZpY2VfZGVzYyhzdHJ1Y3QgdWZzX2Rldl9kZXNjICpkZXZfZGVzYykKK3sKKwlrZnJlZShkZXZfZGVzYy0+bW9kZWwpOworCWRldl9kZXNjLT5tb2RlbCA9IE5VTEw7Cit9CisKIHN0YXRpYyB2b2lkIHVmc19maXh1cF9kZXZpY2Vfc2V0dXAoc3RydWN0IHVmc19oYmEgKmhiYSwKIAkJCQkgICBzdHJ1Y3QgdWZzX2Rldl9kZXNjICpkZXZfZGVzYykKIHsKQEAgLTY1MDksOCArNjU1OSw5IEBAIHN0YXRpYyB2b2lkIHVmc19maXh1cF9kZXZpY2Vfc2V0dXAoc3RydWN0IHVmc19oYmEgKmhiYSwKIAlmb3IgKGYgPSB1ZnNfZml4dXBzOyBmLT5xdWlyazsgZisrKSB7CiAJCWlmICgoZi0+Y2FyZC53bWFudWZhY3R1cmVyaWQgPT0gZGV2X2Rlc2MtPndtYW51ZmFjdHVyZXJpZCB8fAogCQkgICAgIGYtPmNhcmQud21hbnVmYWN0dXJlcmlkID09IFVGU19BTllfVkVORE9SKSAmJgotCQkgICAgKFNUUl9QUkZYX0VRVUFMKGYtPmNhcmQubW9kZWwsIGRldl9kZXNjLT5tb2RlbCkgfHwKLQkJICAgICAhc3RyY21wKGYtPmNhcmQubW9kZWwsIFVGU19BTllfTU9ERUwpKSkKKwkJICAgICAoKGRldl9kZXNjLT5tb2RlbCAmJgorCQkgICAgICAgU1RSX1BSRlhfRVFVQUwoZi0+Y2FyZC5tb2RlbCwgZGV2X2Rlc2MtPm1vZGVsKSkgfHwKKwkJICAgICAgIXN0cmNtcChmLT5jYXJkLm1vZGVsLCBVRlNfQU5ZX01PREVMKSkpCiAJCQloYmEtPmRldl9xdWlya3MgfD0gZi0+cXVpcms7CiAJfQogfQpAQCAtNjY4MSwxNyArNjczMiw4IEBAIHN0YXRpYyB2b2lkIHVmc2hjZF90dW5lX3VuaXByb19wYXJhbXMoc3RydWN0IHVmc19oYmEgKmhiYSkKIAogc3RhdGljIHZvaWQgdWZzaGNkX2NsZWFyX2RiZ191ZnNfc3RhdHMoc3RydWN0IHVmc19oYmEgKmhiYSkKIHsKLQlpbnQgZXJyX3JlZ19oaXN0X3NpemUgPSBzaXplb2Yoc3RydWN0IHVmc191aWNfZXJyX3JlZ19oaXN0KTsKLQogCWhiYS0+dWZzX3N0YXRzLmhpYmVybjhfZXhpdF9jbnQgPSAwOwogCWhiYS0+dWZzX3N0YXRzLmxhc3RfaGliZXJuOF9leGl0X3RzdGFtcCA9IGt0aW1lX3NldCgwLCAwKTsKLQotCW1lbXNldCgmaGJhLT51ZnNfc3RhdHMucGFfZXJyLCAwLCBlcnJfcmVnX2hpc3Rfc2l6ZSk7Ci0JbWVtc2V0KCZoYmEtPnVmc19zdGF0cy5kbF9lcnIsIDAsIGVycl9yZWdfaGlzdF9zaXplKTsKLQltZW1zZXQoJmhiYS0+dWZzX3N0YXRzLm5sX2VyciwgMCwgZXJyX3JlZ19oaXN0X3NpemUpOwotCW1lbXNldCgmaGJhLT51ZnNfc3RhdHMudGxfZXJyLCAwLCBlcnJfcmVnX2hpc3Rfc2l6ZSk7Ci0JbWVtc2V0KCZoYmEtPnVmc19zdGF0cy5kbWVfZXJyLCAwLCBlcnJfcmVnX2hpc3Rfc2l6ZSk7Ci0KIAloYmEtPnJlcV9hYm9ydF9jb3VudCA9IDA7CiB9CiAKQEAgLTY4NjEsNiArNjkwMyw4IEBAIHN0YXRpYyBpbnQgdWZzaGNkX3Byb2JlX2hiYShzdHJ1Y3QgdWZzX2hiYSAqaGJhKQogCX0KIAogCXVmc19maXh1cF9kZXZpY2Vfc2V0dXAoaGJhLCAmY2FyZCk7CisJdWZzX3B1dF9kZXZpY2VfZGVzYygmY2FyZCk7CisKIAl1ZnNoY2RfdHVuZV91bmlwcm9fcGFyYW1zKGhiYSk7CiAKIAkvKiBVRlMgZGV2aWNlIGlzIGFsc28gYWN0aXZlIG5vdyAqLwpAQCAtNzgyMyw2ICs3ODY3LDggQEAgc3RhdGljIGludCB1ZnNoY2Rfc3VzcGVuZChzdHJ1Y3QgdWZzX2hiYSAqaGJhLCBlbnVtIHVmc19wbV9vcCBwbV9vcCkKIAl1ZnNoY2RfcmVsZWFzZShoYmEpOwogb3V0OgogCWhiYS0+cG1fb3BfaW5fcHJvZ3Jlc3MgPSAwOworCWlmIChyZXQpCisJCXVmc2hjZF91cGRhdGVfcmVnX2hpc3QoJmhiYS0+dWZzX3N0YXRzLnN1c3BlbmRfZXJyLCAodTMyKXJldCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNzkyNSw2ICs3OTcxLDggQEAgc3RhdGljIGludCB1ZnNoY2RfcmVzdW1lKHN0cnVjdCB1ZnNfaGJhICpoYmEsIGVudW0gdWZzX3BtX29wIHBtX29wKQogCXVmc2hjZF9zZXR1cF9jbG9ja3MoaGJhLCBmYWxzZSk7CiBvdXQ6CiAJaGJhLT5wbV9vcF9pbl9wcm9ncmVzcyA9IDA7CisJaWYgKHJldCkKKwkJdWZzaGNkX3VwZGF0ZV9yZWdfaGlzdCgmaGJhLT51ZnNfc3RhdHMucmVzdW1lX2VyciwgKHUzMilyZXQpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTgzMjQsNiArODM3Miw5IEBAIGludCB1ZnNoY2RfaW5pdChzdHJ1Y3QgdWZzX2hiYSAqaGJhLCB2b2lkIF9faW9tZW0gKm1taW9fYmFzZSwgdW5zaWduZWQgaW50IGlycSkKIAkJZ290byBleGl0X2dhdGluZzsKIAl9CiAKKwkvKiBSZXNldCB0aGUgYXR0YWNoZWQgZGV2aWNlICovCisJdWZzaGNkX3ZvcHNfZGV2aWNlX3Jlc2V0KGhiYSk7CisKIAkvKiBIb3N0IGNvbnRyb2xsZXIgZW5hYmxlICovCiAJZXJyID0gdWZzaGNkX2hiYV9lbmFibGUoaGJhKTsKIAlpZiAoZXJyKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC5oIGIvZHJpdmVycy9zY3NpL3Vmcy91ZnNoY2QuaAppbmRleCA5OTRkNzNkLi5jOTRjZmRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC5oCisrKyBiL2RyaXZlcnMvc2NzaS91ZnMvdWZzaGNkLmgKQEAgLTI5OCw2ICsyOTgsNyBAQCBzdHJ1Y3QgdWZzX3B3cl9tb2RlX2luZm8gewogICogQHJlc3VtZTogY2FsbGVkIGR1cmluZyBob3N0IGNvbnRyb2xsZXIgUE0gY2FsbGJhY2sKICAqIEBkYmdfcmVnaXN0ZXJfZHVtcDogdXNlZCB0byBkdW1wIGNvbnRyb2xsZXIgZGVidWcgaW5mb3JtYXRpb24KICAqIEBwaHlfaW5pdGlhbGl6YXRpb246IHVzZWQgdG8gaW5pdGlhbGl6ZSBwaHlzCisgKiBAZGV2aWNlX3Jlc2V0OiBjYWxsZWQgdG8gaXNzdWUgYSByZXNldCBwdWxzZSBvbiB0aGUgVUZTIGRldmljZQogICovCiBzdHJ1Y3QgdWZzX2hiYV92YXJpYW50X29wcyB7CiAJY29uc3QgY2hhciAqbmFtZTsKQEAgLTMyNiw2ICszMjcsNyBAQCBzdHJ1Y3QgdWZzX2hiYV92YXJpYW50X29wcyB7CiAJaW50ICAgICAoKnJlc3VtZSkoc3RydWN0IHVmc19oYmEgKiwgZW51bSB1ZnNfcG1fb3ApOwogCXZvaWQJKCpkYmdfcmVnaXN0ZXJfZHVtcCkoc3RydWN0IHVmc19oYmEgKmhiYSk7CiAJaW50CSgqcGh5X2luaXRpYWxpemF0aW9uKShzdHJ1Y3QgdWZzX2hiYSAqKTsKKwl2b2lkCSgqZGV2aWNlX3Jlc2V0KShzdHJ1Y3QgdWZzX2hiYSAqaGJhKTsKIH07CiAKIC8qIGNsb2NrIGdhdGluZyBzdGF0ZSAgKi8KQEAgLTQxMiwxNyArNDE0LDE3IEBAIHN0cnVjdCB1ZnNfaW5pdF9wcmVmZXRjaCB7CiAJdTMyIGljY19sZXZlbDsKIH07CiAKLSNkZWZpbmUgVUlDX0VSUl9SRUdfSElTVF9MRU5HVEggOAorI2RlZmluZSBVRlNfRVJSX1JFR19ISVNUX0xFTkdUSCA4CiAvKioKLSAqIHN0cnVjdCB1ZnNfdWljX2Vycl9yZWdfaGlzdCAtIGtlZXBzIGhpc3Rvcnkgb2YgdWljIGVycm9ycworICogc3RydWN0IHVmc19lcnJfcmVnX2hpc3QgLSBrZWVwcyBoaXN0b3J5IG9mIGVycm9ycwogICogQHBvczogaW5kZXggdG8gaW5kaWNhdGUgY3ljbGljIGJ1ZmZlciBwb3NpdGlvbgogICogQHJlZzogY3ljbGljIGJ1ZmZlciBmb3IgcmVnaXN0ZXJzIHZhbHVlCiAgKiBAdHN0YW1wOiBjeWNsaWMgYnVmZmVyIGZvciB0aW1lIHN0YW1wCiAgKi8KLXN0cnVjdCB1ZnNfdWljX2Vycl9yZWdfaGlzdCB7CitzdHJ1Y3QgdWZzX2Vycl9yZWdfaGlzdCB7CiAJaW50IHBvczsKLQl1MzIgcmVnW1VJQ19FUlJfUkVHX0hJU1RfTEVOR1RIXTsKLQlrdGltZV90IHRzdGFtcFtVSUNfRVJSX1JFR19ISVNUX0xFTkdUSF07CisJdTMyIHJlZ1tVRlNfRVJSX1JFR19ISVNUX0xFTkdUSF07CisJa3RpbWVfdCB0c3RhbXBbVUZTX0VSUl9SRUdfSElTVF9MRU5HVEhdOwogfTsKIAogLyoqCkBAIC00MzYsMTUgKzQzOCwzNyBAQCBzdHJ1Y3QgdWZzX3VpY19lcnJfcmVnX2hpc3QgewogICogQG5sX2VycjogdHJhY2tzIG5sLXVpYyBlcnJvcnMKICAqIEB0bF9lcnI6IHRyYWNrcyB0bC11aWMgZXJyb3JzCiAgKiBAZG1lX2VycjogdHJhY2tzIGRtZSBlcnJvcnMKKyAqIEBhdXRvX2hpYmVybjhfZXJyOiB0cmFja3MgYXV0by1oaWJlcm5hdGUgZXJyb3JzCisgKiBAZmF0YWxfZXJyOiB0cmFja3MgZmF0YWwgZXJyb3JzCisgKiBAbGlua3VwX2VycjogdHJhY2tzIGxpbmstc3RhcnR1cCBlcnJvcnMKKyAqIEByZXN1bWVfZXJyOiB0cmFja3MgcmVzdW1lIGVycm9ycworICogQHN1c3BlbmRfZXJyOiB0cmFja3Mgc3VzcGVuZCBlcnJvcnMKKyAqIEBkZXZfcmVzZXQ6IHRyYWNrcyBkZXZpY2UgcmVzZXQgZXZlbnRzCisgKiBAaG9zdF9yZXNldDogdHJhY2tzIGhvc3QgcmVzZXQgZXZlbnRzCisgKiBAdHNrX2Fib3J0OiB0cmFja3MgdGFzayBhYm9ydCBldmVudHMKICAqLwogc3RydWN0IHVmc19zdGF0cyB7CiAJdTMyIGhpYmVybjhfZXhpdF9jbnQ7CiAJa3RpbWVfdCBsYXN0X2hpYmVybjhfZXhpdF90c3RhbXA7Ci0Jc3RydWN0IHVmc191aWNfZXJyX3JlZ19oaXN0IHBhX2VycjsKLQlzdHJ1Y3QgdWZzX3VpY19lcnJfcmVnX2hpc3QgZGxfZXJyOwotCXN0cnVjdCB1ZnNfdWljX2Vycl9yZWdfaGlzdCBubF9lcnI7Ci0Jc3RydWN0IHVmc191aWNfZXJyX3JlZ19oaXN0IHRsX2VycjsKLQlzdHJ1Y3QgdWZzX3VpY19lcnJfcmVnX2hpc3QgZG1lX2VycjsKKworCS8qIHVpYyBzcGVjaWZpYyBlcnJvcnMgKi8KKwlzdHJ1Y3QgdWZzX2Vycl9yZWdfaGlzdCBwYV9lcnI7CisJc3RydWN0IHVmc19lcnJfcmVnX2hpc3QgZGxfZXJyOworCXN0cnVjdCB1ZnNfZXJyX3JlZ19oaXN0IG5sX2VycjsKKwlzdHJ1Y3QgdWZzX2Vycl9yZWdfaGlzdCB0bF9lcnI7CisJc3RydWN0IHVmc19lcnJfcmVnX2hpc3QgZG1lX2VycjsKKworCS8qIGZhdGFsIGVycm9ycyAqLworCXN0cnVjdCB1ZnNfZXJyX3JlZ19oaXN0IGF1dG9faGliZXJuOF9lcnI7CisJc3RydWN0IHVmc19lcnJfcmVnX2hpc3QgZmF0YWxfZXJyOworCXN0cnVjdCB1ZnNfZXJyX3JlZ19oaXN0IGxpbmtfc3RhcnR1cF9lcnI7CisJc3RydWN0IHVmc19lcnJfcmVnX2hpc3QgcmVzdW1lX2VycjsKKwlzdHJ1Y3QgdWZzX2Vycl9yZWdfaGlzdCBzdXNwZW5kX2VycjsKKworCS8qIGFibm9ybWFsIGV2ZW50cyAqLworCXN0cnVjdCB1ZnNfZXJyX3JlZ19oaXN0IGRldl9yZXNldDsKKwlzdHJ1Y3QgdWZzX2Vycl9yZWdfaGlzdCBob3N0X3Jlc2V0OworCXN0cnVjdCB1ZnNfZXJyX3JlZ19oaXN0IHRhc2tfYWJvcnQ7CiB9OwogCiAvKioKQEAgLTg5MSw4ICs5MTUsMTEgQEAgaW50IHVmc2hjZF9xdWVyeV9hdHRyKHN0cnVjdCB1ZnNfaGJhICpoYmEsIGVudW0gcXVlcnlfb3Bjb2RlIG9wY29kZSwKIAkJICAgICAgZW51bSBhdHRyX2lkbiBpZG4sIHU4IGluZGV4LCB1OCBzZWxlY3RvciwgdTMyICphdHRyX3ZhbCk7CiBpbnQgdWZzaGNkX3F1ZXJ5X2ZsYWcoc3RydWN0IHVmc19oYmEgKmhiYSwgZW51bSBxdWVyeV9vcGNvZGUgb3Bjb2RlLAogCWVudW0gZmxhZ19pZG4gaWRuLCBib29sICpmbGFnX3Jlcyk7Ci1pbnQgdWZzaGNkX3JlYWRfc3RyaW5nX2Rlc2Moc3RydWN0IHVmc19oYmEgKmhiYSwgaW50IGRlc2NfaW5kZXgsCi0JCQkgICAgdTggKmJ1ZiwgdTMyIHNpemUsIGJvb2wgYXNjaWkpOworCisjZGVmaW5lIFNEX0FTQ0lJX1NURCB0cnVlCisjZGVmaW5lIFNEX1JBVyBmYWxzZQoraW50IHVmc2hjZF9yZWFkX3N0cmluZ19kZXNjKHN0cnVjdCB1ZnNfaGJhICpoYmEsIHU4IGRlc2NfaW5kZXgsCisJCQkgICAgdTggKipidWYsIGJvb2wgYXNjaWkpOwogCiBpbnQgdWZzaGNkX2hvbGQoc3RydWN0IHVmc19oYmEgKmhiYSwgYm9vbCBhc3luYyk7CiB2b2lkIHVmc2hjZF9yZWxlYXNlKHN0cnVjdCB1ZnNfaGJhICpoYmEpOwpAQCAtMTA0NSw2ICsxMDcyLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1ZnNoY2Rfdm9wc19kYmdfcmVnaXN0ZXJfZHVtcChzdHJ1Y3QgdWZzX2hiYSAqaGJhKQogCQloYmEtPnZvcHMtPmRiZ19yZWdpc3Rlcl9kdW1wKGhiYSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCB1ZnNoY2Rfdm9wc19kZXZpY2VfcmVzZXQoc3RydWN0IHVmc19oYmEgKmhiYSkKK3sKKwlpZiAoaGJhLT52b3BzICYmIGhiYS0+dm9wcy0+ZGV2aWNlX3Jlc2V0KQorCQloYmEtPnZvcHMtPmRldmljZV9yZXNldChoYmEpOworfQorCiBleHRlcm4gc3RydWN0IHVmc19wbV9sdmxfc3RhdGVzIHVmc19wbV9sdmxfc3RhdGVzW107CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvdmlydGlvX3Njc2kuYyBiL2RyaXZlcnMvc2NzaS92aXJ0aW9fc2NzaS5jCmluZGV4IDI5N2UxMDcuLmJmZWM4NGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS92aXJ0aW9fc2NzaS5jCisrKyBiL2RyaXZlcnMvc2NzaS92aXJ0aW9fc2NzaS5jCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSA8bGludXgvc2VxbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2Jsay1tcS12aXJ0aW8uaD4KIAorI2luY2x1ZGUgInNkLmgiCisKICNkZWZpbmUgVklSVElPX1NDU0lfTUVNUE9PTF9TWiA2NAogI2RlZmluZSBWSVJUSU9fU0NTSV9FVkVOVF9MRU4gOAogI2RlZmluZSBWSVJUSU9fU0NTSV9WUV9CQVNFIDIKQEAgLTMyNCw2ICszMjYsMzYgQEAgc3RhdGljIHZvaWQgdmlydHNjc2lfaGFuZGxlX3BhcmFtX2NoYW5nZShzdHJ1Y3QgdmlydGlvX3Njc2kgKnZzY3NpLAogCXNjc2lfZGV2aWNlX3B1dChzZGV2KTsKIH0KIAorc3RhdGljIHZvaWQgdmlydHNjc2lfcmVzY2FuX2hvdHVucGx1ZyhzdHJ1Y3QgdmlydGlvX3Njc2kgKnZzY3NpKQoreworCXN0cnVjdCBzY3NpX2RldmljZSAqc2RldjsKKwlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IHZpcnRpb19zY3NpX2hvc3QodnNjc2ktPnZkZXYpOworCXVuc2lnbmVkIGNoYXIgc2NzaV9jbWRbTUFYX0NPTU1BTkRfU0laRV07CisJaW50IHJlc3VsdCwgaW5xdWlyeV9sZW4sIGlucV9yZXN1bHRfbGVuID0gMjU2OworCWNoYXIgKmlucV9yZXN1bHQgPSBrbWFsbG9jKGlucV9yZXN1bHRfbGVuLCBHRlBfS0VSTkVMKTsKKworCXNob3N0X2Zvcl9lYWNoX2RldmljZShzZGV2LCBzaG9zdCkgeworCQlpbnF1aXJ5X2xlbiA9IHNkZXYtPmlucXVpcnlfbGVuID8gc2Rldi0+aW5xdWlyeV9sZW4gOiAzNjsKKworCQltZW1zZXQoc2NzaV9jbWQsIDAsIHNpemVvZihzY3NpX2NtZCkpOworCQlzY3NpX2NtZFswXSA9IElOUVVJUlk7CisJCXNjc2lfY21kWzRdID0gKHVuc2lnbmVkIGNoYXIpIGlucXVpcnlfbGVuOworCisJCW1lbXNldChpbnFfcmVzdWx0LCAwLCBpbnFfcmVzdWx0X2xlbik7CisKKwkJcmVzdWx0ID0gc2NzaV9leGVjdXRlX3JlcShzZGV2LCBzY3NpX2NtZCwgRE1BX0ZST01fREVWSUNFLAorCQkJCQkgIGlucV9yZXN1bHQsIGlucXVpcnlfbGVuLCBOVUxMLAorCQkJCQkgIFNEX1RJTUVPVVQsIFNEX01BWF9SRVRSSUVTLCBOVUxMKTsKKworCQlpZiAocmVzdWx0ID09IDAgJiYgaW5xX3Jlc3VsdFswXSA+PiA1KSB7CisJCQkvKiBQUSBpbmRpY2F0ZXMgdGhlIExVTiBpcyBub3QgYXR0YWNoZWQgKi8KKwkJCXNjc2lfcmVtb3ZlX2RldmljZShzZGV2KTsKKwkJfQorCX0KKworCWtmcmVlKGlucV9yZXN1bHQpOworfQorCiBzdGF0aWMgdm9pZCB2aXJ0c2NzaV9oYW5kbGVfZXZlbnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCB2aXJ0aW9fc2NzaV9ldmVudF9ub2RlICpldmVudF9ub2RlID0KQEAgLTMzNSw2ICszNjcsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0c2NzaV9oYW5kbGVfZXZlbnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCSAgICBjcHVfdG9fdmlydGlvMzIodnNjc2ktPnZkZXYsIFZJUlRJT19TQ1NJX1RfRVZFTlRTX01JU1NFRCkpIHsKIAkJZXZlbnQtPmV2ZW50ICY9IH5jcHVfdG9fdmlydGlvMzIodnNjc2ktPnZkZXYsCiAJCQkJCQkgICBWSVJUSU9fU0NTSV9UX0VWRU5UU19NSVNTRUQpOworCQl2aXJ0c2NzaV9yZXNjYW5faG90dW5wbHVnKHZzY3NpKTsKIAkJc2NzaV9zY2FuX2hvc3QodmlydGlvX3Njc2lfaG9zdCh2c2NzaS0+dmRldikpOwogCX0KIApAQCAtMzY5LDE0ICs0MDIsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0c2NzaV9ldmVudF9kb25lKHN0cnVjdCB2aXJ0cXVldWUgKnZxKQogCXZpcnRzY3NpX3ZxX2RvbmUodnNjc2ksICZ2c2NzaS0+ZXZlbnRfdnEsIHZpcnRzY3NpX2NvbXBsZXRlX2V2ZW50KTsKIH07CiAKLS8qKgotICogdmlydHNjc2lfYWRkX2NtZCAtIGFkZCBhIHZpcnRpb19zY3NpX2NtZCB0byBhIHZpcnRxdWV1ZQotICogQHZxCQk6IHRoZSBzdHJ1Y3QgdmlydHF1ZXVlIHdlJ3JlIHRhbGtpbmcgYWJvdXQKLSAqIEBjbWQJCTogY29tbWFuZCBzdHJ1Y3R1cmUKLSAqIEByZXFfc2l6ZQk6IHNpemUgb2YgdGhlIHJlcXVlc3QgYnVmZmVyCi0gKiBAcmVzcF9zaXplCTogc2l6ZSBvZiB0aGUgcmVzcG9uc2UgYnVmZmVyCi0gKi8KLXN0YXRpYyBpbnQgdmlydHNjc2lfYWRkX2NtZChzdHJ1Y3QgdmlydHF1ZXVlICp2cSwKK3N0YXRpYyBpbnQgX192aXJ0c2NzaV9hZGRfY21kKHN0cnVjdCB2aXJ0cXVldWUgKnZxLAogCQkJICAgIHN0cnVjdCB2aXJ0aW9fc2NzaV9jbWQgKmNtZCwKIAkJCSAgICBzaXplX3QgcmVxX3NpemUsIHNpemVfdCByZXNwX3NpemUpCiB7CkBAIC00MjEsMTcgKzQ0NywzOSBAQCBzdGF0aWMgaW50IHZpcnRzY3NpX2FkZF9jbWQoc3RydWN0IHZpcnRxdWV1ZSAqdnEsCiAJcmV0dXJuIHZpcnRxdWV1ZV9hZGRfc2dzKHZxLCBzZ3MsIG91dF9udW0sIGluX251bSwgY21kLCBHRlBfQVRPTUlDKTsKIH0KIAotc3RhdGljIGludCB2aXJ0c2NzaV9raWNrX2NtZChzdHJ1Y3QgdmlydGlvX3Njc2lfdnEgKnZxLAorc3RhdGljIHZvaWQgdmlydHNjc2lfa2lja192cShzdHJ1Y3QgdmlydGlvX3Njc2lfdnEgKnZxKQoreworCWJvb2wgbmVlZHNfa2ljazsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnZxLT52cV9sb2NrLCBmbGFncyk7CisJbmVlZHNfa2ljayA9IHZpcnRxdWV1ZV9raWNrX3ByZXBhcmUodnEtPnZxKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2cS0+dnFfbG9jaywgZmxhZ3MpOworCisJaWYgKG5lZWRzX2tpY2spCisJCXZpcnRxdWV1ZV9ub3RpZnkodnEtPnZxKTsKK30KKworLyoqCisgKiB2aXJ0c2NzaV9hZGRfY21kIC0gYWRkIGEgdmlydGlvX3Njc2lfY21kIHRvIGEgdmlydHF1ZXVlLCBvcHRpb25hbGx5IGtpY2sgaXQKKyAqIEB2cQkJOiB0aGUgc3RydWN0IHZpcnRxdWV1ZSB3ZSdyZSB0YWxraW5nIGFib3V0CisgKiBAY21kCQk6IGNvbW1hbmQgc3RydWN0dXJlCisgKiBAcmVxX3NpemUJOiBzaXplIG9mIHRoZSByZXF1ZXN0IGJ1ZmZlcgorICogQHJlc3Bfc2l6ZQk6IHNpemUgb2YgdGhlIHJlc3BvbnNlIGJ1ZmZlcgorICogQGtpY2sJOiB3aGV0aGVyIHRvIGtpY2sgdGhlIHZpcnRxdWV1ZSBpbW1lZGlhdGVseQorICovCitzdGF0aWMgaW50IHZpcnRzY3NpX2FkZF9jbWQoc3RydWN0IHZpcnRpb19zY3NpX3ZxICp2cSwKIAkJCSAgICAgc3RydWN0IHZpcnRpb19zY3NpX2NtZCAqY21kLAotCQkJICAgICBzaXplX3QgcmVxX3NpemUsIHNpemVfdCByZXNwX3NpemUpCisJCQkgICAgIHNpemVfdCByZXFfc2l6ZSwgc2l6ZV90IHJlc3Bfc2l6ZSwKKwkJCSAgICAgYm9vbCBraWNrKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGVycjsKIAlib29sIG5lZWRzX2tpY2sgPSBmYWxzZTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZ2cS0+dnFfbG9jaywgZmxhZ3MpOwotCWVyciA9IHZpcnRzY3NpX2FkZF9jbWQodnEtPnZxLCBjbWQsIHJlcV9zaXplLCByZXNwX3NpemUpOwotCWlmICghZXJyKQorCWVyciA9IF9fdmlydHNjc2lfYWRkX2NtZCh2cS0+dnEsIGNtZCwgcmVxX3NpemUsIHJlc3Bfc2l6ZSk7CisJaWYgKCFlcnIgJiYga2ljaykKIAkJbmVlZHNfa2ljayA9IHZpcnRxdWV1ZV9raWNrX3ByZXBhcmUodnEtPnZxKTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZxLT52cV9sb2NrLCBmbGFncyk7CkBAIC00OTYsNiArNTQ0LDcgQEAgc3RhdGljIGludCB2aXJ0c2NzaV9xdWV1ZWNvbW1hbmQoc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QsCiAJc3RydWN0IHZpcnRpb19zY3NpICp2c2NzaSA9IHNob3N0X3ByaXYoc2hvc3QpOwogCXN0cnVjdCB2aXJ0aW9fc2NzaV92cSAqcmVxX3ZxID0gdmlydHNjc2lfcGlja192cV9tcSh2c2NzaSwgc2MpOwogCXN0cnVjdCB2aXJ0aW9fc2NzaV9jbWQgKmNtZCA9IHNjc2lfY21kX3ByaXYoc2MpOworCWJvb2wga2ljazsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCByZXFfc2l6ZTsKIAlpbnQgcmV0OwpAQCAtNTI1LDcgKzU3NCw4IEBAIHN0YXRpYyBpbnQgdmlydHNjc2lfcXVldWVjb21tYW5kKHN0cnVjdCBTY3NpX0hvc3QgKnNob3N0LAogCQlyZXFfc2l6ZSA9IHNpemVvZihjbWQtPnJlcS5jbWQpOwogCX0KIAotCXJldCA9IHZpcnRzY3NpX2tpY2tfY21kKHJlcV92cSwgY21kLCByZXFfc2l6ZSwgc2l6ZW9mKGNtZC0+cmVzcC5jbWQpKTsKKwlraWNrID0gKHNjLT5mbGFncyAmIFNDTURfTEFTVCkgIT0gMDsKKwlyZXQgPSB2aXJ0c2NzaV9hZGRfY21kKHJlcV92cSwgY21kLCByZXFfc2l6ZSwgc2l6ZW9mKGNtZC0+cmVzcC5jbWQpLCBraWNrKTsKIAlpZiAocmV0ID09IC1FSU8pIHsKIAkJY21kLT5yZXNwLmNtZC5yZXNwb25zZSA9IFZJUlRJT19TQ1NJX1NfQkFEX1RBUkdFVDsKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnJlcV92cS0+dnFfbG9jaywgZmxhZ3MpOwpAQCAtNTQzLDggKzU5Myw4IEBAIHN0YXRpYyBpbnQgdmlydHNjc2lfdG1mKHN0cnVjdCB2aXJ0aW9fc2NzaSAqdnNjc2ksIHN0cnVjdCB2aXJ0aW9fc2NzaV9jbWQgKmNtZCkKIAlpbnQgcmV0ID0gRkFJTEVEOwogCiAJY21kLT5jb21wID0gJmNvbXA7Ci0JaWYgKHZpcnRzY3NpX2tpY2tfY21kKCZ2c2NzaS0+Y3RybF92cSwgY21kLAotCQkJICAgICAgc2l6ZW9mIGNtZC0+cmVxLnRtZiwgc2l6ZW9mIGNtZC0+cmVzcC50bWYpIDwgMCkKKwlpZiAodmlydHNjc2lfYWRkX2NtZCgmdnNjc2ktPmN0cmxfdnEsIGNtZCwKKwkJCSAgICAgIHNpemVvZiBjbWQtPnJlcS50bWYsIHNpemVvZiBjbWQtPnJlc3AudG1mLCB0cnVlKSA8IDApCiAJCWdvdG8gb3V0OwogCiAJd2FpdF9mb3JfY29tcGxldGlvbigmY29tcCk7CkBAIC02NTgsNiArNzA4LDEzIEBAIHN0YXRpYyBpbnQgdmlydHNjc2lfbWFwX3F1ZXVlcyhzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCkKIAlyZXR1cm4gYmxrX21xX3ZpcnRpb19tYXBfcXVldWVzKHFtYXAsIHZzY3NpLT52ZGV2LCAyKTsKIH0KIAorc3RhdGljIHZvaWQgdmlydHNjc2lfY29tbWl0X3JxcyhzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCwgdTE2IGh3cSkKK3sKKwlzdHJ1Y3QgdmlydGlvX3Njc2kgKnZzY3NpID0gc2hvc3RfcHJpdihzaG9zdCk7CisKKwl2aXJ0c2NzaV9raWNrX3ZxKCZ2c2NzaS0+cmVxX3Zxc1tod3FdKTsKK30KKwogLyoKICAqIFRoZSBob3N0IGd1YXJhbnRlZXMgdG8gcmVzcG9uZCB0byBlYWNoIGNvbW1hbmQsIGFsdGhvdWdoIEkvTwogICogbGF0ZW5jaWVzIG1pZ2h0IGJlIGhpZ2hlciB0aGFuIG9uIGJhcmUgbWV0YWwuICBSZXNldCB0aGUgdGltZXIKQEAgLTY3NSw2ICs3MzIsNyBAQCBzdGF0aWMgc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSB2aXJ0c2NzaV9ob3N0X3RlbXBsYXRlID0gewogCS50aGlzX2lkID0gLTEsCiAJLmNtZF9zaXplID0gc2l6ZW9mKHN0cnVjdCB2aXJ0aW9fc2NzaV9jbWQpLAogCS5xdWV1ZWNvbW1hbmQgPSB2aXJ0c2NzaV9xdWV1ZWNvbW1hbmQsCisJLmNvbW1pdF9ycXMgPSB2aXJ0c2NzaV9jb21taXRfcnFzLAogCS5jaGFuZ2VfcXVldWVfZGVwdGggPSB2aXJ0c2NzaV9jaGFuZ2VfcXVldWVfZGVwdGgsCiAJLmVoX2Fib3J0X2hhbmRsZXIgPSB2aXJ0c2NzaV9hYm9ydCwKIAkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIgPSB2aXJ0c2NzaV9kZXZpY2VfcmVzZXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvd2QzM2M5My5jIGIvZHJpdmVycy9zY3NpL3dkMzNjOTMuYwppbmRleCBmYjdiMjg5Li5mODEwNDZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvd2QzM2M5My5jCisrKyBiL2RyaXZlcnMvc2NzaS93ZDMzYzkzLmMKQEAgLTE4NTQsNiArMTg1NCw3IEBAIHJvdW5kXzQodW5zaWduZWQgaW50IHgpCiAJCWNhc2UgMTogLS14OwogCQkJYnJlYWs7CiAJCWNhc2UgMjogKyt4OworCQkJLyogZmFsbCB0aHJvdWdoICovCiAJCWNhc2UgMzogKyt4OwogCX0KIAlyZXR1cm4geDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc291bmR3aXJlL01ha2VmaWxlIGIvZHJpdmVycy9zb3VuZHdpcmUvTWFrZWZpbGUKaW5kZXggNDViN2U1MC4uNTYzODk0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zb3VuZHdpcmUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9zb3VuZHdpcmUvTWFrZWZpbGUKQEAgLTcsNiArNywxMCBAQAogc291bmR3aXJlLWJ1cy1vYmpzIDo9IGJ1c190eXBlLm8gYnVzLm8gc2xhdmUubyBtaXBpX2Rpc2NvLm8gc3RyZWFtLm8KIG9iai0kKENPTkZJR19TT1VORFdJUkUpICs9IHNvdW5kd2lyZS1idXMubwogCitpZmRlZiBDT05GSUdfREVCVUdfRlMKK3NvdW5kd2lyZS1idXMtb2JqcyArPSBkZWJ1Z2ZzLm8KK2VuZGlmCisKICNDYWRlbmNlIE9ianMKIHNvdW5kd2lyZS1jYWRlbmNlLW9ianMgOj0gY2FkZW5jZV9tYXN0ZXIubwogb2JqLSQoQ09ORklHX1NPVU5EV0lSRV9DQURFTkNFKSArPSBzb3VuZHdpcmUtY2FkZW5jZS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NvdW5kd2lyZS9idXMuYyBiL2RyaXZlcnMvc291bmR3aXJlL2J1cy5jCmluZGV4IGZlNzQ1ODMuLmZjNTNkYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc291bmR3aXJlL2J1cy5jCisrKyBiL2RyaXZlcnMvc291bmR3aXJlL2J1cy5jCkBAIC00OSw2ICs0OSw4IEBAIGludCBzZHdfYWRkX2J1c19tYXN0ZXIoc3RydWN0IHNkd19idXMgKmJ1cykKIAkJfQogCX0KIAorCXNkd19idXNfZGVidWdmc19pbml0KGJ1cyk7CisKIAkvKgogCSAqIERldmljZSBudW1iZXJzIGluIFNvdW5kV2lyZSBhcmUgMCB0aHJvdWdoIDE1LiBFbnVtZXJhdGlvbiBkZXZpY2UKIAkgKiBudW1iZXIgKDApLCBCcm9hZGNhc3QgZGV2aWNlIG51bWJlciAoMTUpLCBHcm91cCBudW1iZXJzICgxMiBhbmQKQEAgLTc3LDYgKzc5LDggQEAgaW50IHNkd19hZGRfYnVzX21hc3RlcihzdHJ1Y3Qgc2R3X2J1cyAqYnVzKQogCSAqLwogCWlmIChJU19FTkFCTEVEKENPTkZJR19BQ1BJKSAmJiBBQ1BJX0hBTkRMRShidXMtPmRldikpCiAJCXJldCA9IHNkd19hY3BpX2ZpbmRfc2xhdmVzKGJ1cyk7CisJZWxzZSBpZiAoSVNfRU5BQkxFRChDT05GSUdfT0YpICYmIGJ1cy0+ZGV2LT5vZl9ub2RlKQorCQlyZXQgPSBzZHdfb2ZfZmluZF9zbGF2ZXMoYnVzKTsKIAllbHNlCiAJCXJldCA9IC1FTk9UU1VQUDsgLyogTm8gQUNQSS9EVCBzbyBlcnJvciBvdXQgKi8KIApAQCAtMTA5LDYgKzExMyw4IEBAIHN0YXRpYyBpbnQgc2R3X2RlbGV0ZV9zbGF2ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCiAJc3RydWN0IHNkd19zbGF2ZSAqc2xhdmUgPSBkZXZfdG9fc2R3X2RldihkZXYpOwogCXN0cnVjdCBzZHdfYnVzICpidXMgPSBzbGF2ZS0+YnVzOwogCisJc2R3X3NsYXZlX2RlYnVnZnNfZXhpdChzbGF2ZSk7CisKIAltdXRleF9sb2NrKCZidXMtPmJ1c19sb2NrKTsKIAogCWlmIChzbGF2ZS0+ZGV2X251bSkgLyogY2xlYXIgZGV2X251bSBpZiBhc3NpZ25lZCAqLwpAQCAtMTMwLDYgKzEzNiw4IEBAIHN0YXRpYyBpbnQgc2R3X2RlbGV0ZV9zbGF2ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCiB2b2lkIHNkd19kZWxldGVfYnVzX21hc3RlcihzdHJ1Y3Qgc2R3X2J1cyAqYnVzKQogewogCWRldmljZV9mb3JfZWFjaF9jaGlsZChidXMtPmRldiwgTlVMTCwgc2R3X2RlbGV0ZV9zbGF2ZSk7CisKKwlzZHdfYnVzX2RlYnVnZnNfZXhpdChidXMpOwogfQogRVhQT1JUX1NZTUJPTChzZHdfZGVsZXRlX2J1c19tYXN0ZXIpOwogCkBAIC00NzAsNyArNDc4LDggQEAgc3RhdGljIGludCBzZHdfYXNzaWduX2RldmljZV9udW0oc3RydWN0IHNkd19zbGF2ZSAqc2xhdmUpCiAKIAlyZXQgPSBzZHdfd3JpdGUoc2xhdmUsIFNEV19TQ1BfREVWTlVNQkVSLCBkZXZfbnVtKTsKIAlpZiAocmV0IDwgMCkgewotCQlkZXZfZXJyKCZzbGF2ZS0+ZGV2LCAiUHJvZ3JhbSBkZXZpY2VfbnVtIGZhaWxlZDogJWRcbiIsIHJldCk7CisJCWRldl9lcnIoJnNsYXZlLT5kZXYsICJQcm9ncmFtIGRldmljZV9udW0gJWQgZmFpbGVkOiAlZFxuIiwKKwkJCWRldl9udW0sIHJldCk7CiAJCXJldHVybiByZXQ7CiAJfQogCkBAIC01MjcsNiArNTM2LDcgQEAgc3RhdGljIGludCBzZHdfcHJvZ3JhbV9kZXZpY2VfbnVtKHN0cnVjdCBzZHdfYnVzICpidXMpCiAJZG8gewogCQlyZXQgPSBzZHdfdHJhbnNmZXIoYnVzLCAmbXNnKTsKIAkJaWYgKHJldCA9PSAtRU5PREFUQSkgeyAvKiBlbmQgb2YgZGV2aWNlIGlkIHJlYWRzICovCisJCQlkZXZfZGJnKGJ1cy0+ZGV2LCAiTm8gbW9yZSBkZXZpY2VzIHRvIGVudW1lcmF0ZVxuIik7CiAJCQlyZXQgPSAwOwogCQkJYnJlYWs7CiAJCX0KQEAgLTgwMyw3ICs4MTMsNyBAQCBzdGF0aWMgaW50IHNkd19oYW5kbGVfcG9ydF9pbnRlcnJ1cHQoc3RydWN0IHNkd19zbGF2ZSAqc2xhdmUsCiBzdGF0aWMgaW50IHNkd19oYW5kbGVfc2xhdmVfYWxlcnRzKHN0cnVjdCBzZHdfc2xhdmUgKnNsYXZlKQogewogCXN0cnVjdCBzZHdfc2xhdmVfaW50cl9zdGF0dXMgc2xhdmVfaW50cjsKLQl1OCBjbGVhciA9IDAsIGJpdCwgcG9ydF9zdGF0dXNbMTVdOworCXU4IGNsZWFyID0gMCwgYml0LCBwb3J0X3N0YXR1c1sxNV0gPSB7MH07CiAJaW50IHBvcnRfbnVtLCBzdGF0LCByZXQsIGNvdW50ID0gMDsKIAl1bnNpZ25lZCBsb25nIHBvcnQ7CiAJYm9vbCBzbGF2ZV9ub3RpZnkgPSBmYWxzZTsKQEAgLTk2OSw5ICs5NzksMTUgQEAgaW50IHNkd19oYW5kbGVfc2xhdmVfc3RhdHVzKHN0cnVjdCBzZHdfYnVzICpidXMsCiAJaW50IGksIHJldCA9IDA7CiAKIAlpZiAoc3RhdHVzWzBdID09IFNEV19TTEFWRV9BVFRBQ0hFRCkgeworCQlkZXZfZGJnKGJ1cy0+ZGV2LCAiU2xhdmUgYXR0YWNoZWQsIHByb2dyYW1taW5nIGRldmljZSBudW1iZXJcbiIpOwogCQlyZXQgPSBzZHdfcHJvZ3JhbV9kZXZpY2VfbnVtKGJ1cyk7CiAJCWlmIChyZXQpCiAJCQlkZXZfZXJyKGJ1cy0+ZGV2LCAiU2xhdmUgYXR0YWNoIGZhaWxlZDogJWRcbiIsIHJldCk7CisJCS8qCisJCSAqIHByb2dyYW1taW5nIGEgZGV2aWNlIG51bWJlciB3aWxsIGhhdmUgc2lkZSBlZmZlY3RzLAorCQkgKiBzbyB3ZSBkZWFsIHdpdGggb3RoZXIgZGV2aWNlcyBhdCBhIGxhdGVyIHRpbWUKKwkJICovCisJCXJldHVybiByZXQ7CiAJfQogCiAJLyogQ29udGludWUgdG8gY2hlY2sgb3RoZXIgc2xhdmUgc3RhdHVzZXMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc291bmR3aXJlL2J1cy5oIGIvZHJpdmVycy9zb3VuZHdpcmUvYnVzLmgKaW5kZXggMzA0OGNhMS4uY2I0ODJkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zb3VuZHdpcmUvYnVzLmgKKysrIGIvZHJpdmVycy9zb3VuZHdpcmUvYnVzLmgKQEAgLTE1LDkgKzE1LDI2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHNkd19hY3BpX2ZpbmRfc2xhdmVzKHN0cnVjdCBzZHdfYnVzICpidXMpCiB9CiAjZW5kaWYKIAoraW50IHNkd19vZl9maW5kX3NsYXZlcyhzdHJ1Y3Qgc2R3X2J1cyAqYnVzKTsKIHZvaWQgc2R3X2V4dHJhY3Rfc2xhdmVfaWQoc3RydWN0IHNkd19idXMgKmJ1cywKIAkJCSAgdTY0IGFkZHIsIHN0cnVjdCBzZHdfc2xhdmVfaWQgKmlkKTsKIAorI2lmZGVmIENPTkZJR19ERUJVR19GUwordm9pZCBzZHdfYnVzX2RlYnVnZnNfaW5pdChzdHJ1Y3Qgc2R3X2J1cyAqYnVzKTsKK3ZvaWQgc2R3X2J1c19kZWJ1Z2ZzX2V4aXQoc3RydWN0IHNkd19idXMgKmJ1cyk7Cit2b2lkIHNkd19zbGF2ZV9kZWJ1Z2ZzX2luaXQoc3RydWN0IHNkd19zbGF2ZSAqc2xhdmUpOwordm9pZCBzZHdfc2xhdmVfZGVidWdmc19leGl0KHN0cnVjdCBzZHdfc2xhdmUgKnNsYXZlKTsKK3ZvaWQgc2R3X2RlYnVnZnNfaW5pdCh2b2lkKTsKK3ZvaWQgc2R3X2RlYnVnZnNfZXhpdCh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgc2R3X2J1c19kZWJ1Z2ZzX2luaXQoc3RydWN0IHNkd19idXMgKmJ1cykge30KK3N0YXRpYyBpbmxpbmUgdm9pZCBzZHdfYnVzX2RlYnVnZnNfZXhpdChzdHJ1Y3Qgc2R3X2J1cyAqYnVzKSB7fQorc3RhdGljIGlubGluZSB2b2lkIHNkd19zbGF2ZV9kZWJ1Z2ZzX2luaXQoc3RydWN0IHNkd19zbGF2ZSAqc2xhdmUpIHt9CitzdGF0aWMgaW5saW5lIHZvaWQgc2R3X3NsYXZlX2RlYnVnZnNfZXhpdChzdHJ1Y3Qgc2R3X3NsYXZlICpzbGF2ZSkge30KK3N0YXRpYyBpbmxpbmUgdm9pZCBzZHdfZGVidWdmc19pbml0KHZvaWQpIHt9CitzdGF0aWMgaW5saW5lIHZvaWQgc2R3X2RlYnVnZnNfZXhpdCh2b2lkKSB7fQorI2VuZGlmCisKIGVudW0gewogCVNEV19NU0dfRkxBR19SRUFEID0gMCwKIAlTRFdfTVNHX0ZMQUdfV1JJVEUsCkBAIC00OSw4ICs2NiwxMSBAQCBzdHJ1Y3Qgc2R3X21zZyB7CiAKICNkZWZpbmUgU0RXX0RPVUJMRV9SQVRFX0ZBQ1RPUgkJMgogCi1leHRlcm4gaW50IHJvd3NbU0RXX0ZSQU1FX1JPV1NdOwotZXh0ZXJuIGludCBjb2xzW1NEV19GUkFNRV9DT0xTXTsKK2V4dGVybiBpbnQgc2R3X3Jvd3NbU0RXX0ZSQU1FX1JPV1NdOworZXh0ZXJuIGludCBzZHdfY29sc1tTRFdfRlJBTUVfQ09MU107CisKK2ludCBzZHdfZmluZF9yb3dfaW5kZXgoaW50IHJvdyk7CitpbnQgc2R3X2ZpbmRfY29sX2luZGV4KGludCBjb2wpOwogCiAvKioKICAqIHNkd19wb3J0X3J1bnRpbWU6IFJ1bnRpbWUgcG9ydCBwYXJhbWV0ZXJzIGZvciBNYXN0ZXIgb3IgU2xhdmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc291bmR3aXJlL2J1c190eXBlLmMgYi9kcml2ZXJzL3NvdW5kd2lyZS9idXNfdHlwZS5jCmluZGV4IDI2NTU2MDIuLjRhNDY1ZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc291bmR3aXJlL2J1c190eXBlLmMKKysrIGIvZHJpdmVycy9zb3VuZHdpcmUvYnVzX3R5cGUuYwpAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbV9kb21haW4uaD4KICNpbmNsdWRlIDxsaW51eC9zb3VuZHdpcmUvc2R3Lmg+CiAjaW5jbHVkZSA8bGludXgvc291bmR3aXJlL3Nkd190eXBlLmg+CisjaW5jbHVkZSAiYnVzLmgiCiAKIC8qKgogICogc2R3X2dldF9kZXZpY2VfaWQgLSBmaW5kIHRoZSBtYXRjaGluZyBTb3VuZFdpcmUgZGV2aWNlIGlkCkBAIC0xNzcsMTEgKzE3OCwxMyBAQCBFWFBPUlRfU1lNQk9MX0dQTChzZHdfdW5yZWdpc3Rlcl9kcml2ZXIpOwogCiBzdGF0aWMgaW50IF9faW5pdCBzZHdfYnVzX2luaXQodm9pZCkKIHsKKwlzZHdfZGVidWdmc19pbml0KCk7CiAJcmV0dXJuIGJ1c19yZWdpc3Rlcigmc2R3X2J1c190eXBlKTsKIH0KIAogc3RhdGljIHZvaWQgX19leGl0IHNkd19idXNfZXhpdCh2b2lkKQogeworCXNkd19kZWJ1Z2ZzX2V4aXQoKTsKIAlidXNfdW5yZWdpc3Rlcigmc2R3X2J1c190eXBlKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb3VuZHdpcmUvY2FkZW5jZV9tYXN0ZXIuYyBiL2RyaXZlcnMvc291bmR3aXJlL2NhZGVuY2VfbWFzdGVyLmMKaW5kZXggNjBlOGJkZS4uNTAyZWQ0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zb3VuZHdpcmUvY2FkZW5jZV9tYXN0ZXIuYworKysgYi9kcml2ZXJzL3NvdW5kd2lyZS9jYWRlbmNlX21hc3Rlci5jCkBAIC04LDYgKzgsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTE5LDYgKzIwLDEwIEBACiAjaW5jbHVkZSAiYnVzLmgiCiAjaW5jbHVkZSAiY2FkZW5jZV9tYXN0ZXIuaCIKIAorc3RhdGljIGludCBpbnRlcnJ1cHRfbWFzazsKK21vZHVsZV9wYXJhbV9uYW1lZChjbmRzX21jcF9pbnRfbWFzaywgaW50ZXJydXB0X21hc2ssIGludCwgMDQ0NCk7CitNT0RVTEVfUEFSTV9ERVNDKGNkbnNfbWNwX2ludF9tYXNrLCAiQ2FkZW5jZSBNQ1AgSW50TWFzayIpOworCiAjZGVmaW5lIENETlNfTUNQX0NPTkZJRwkJCQkweDAKIAogI2RlZmluZSBDRE5TX01DUF9DT05GSUdfTUNNRF9SRVRSWQkJR0VOTUFTSygyNywgMjQpCkBAIC00Nyw2ICs1Miw4IEBACiAjZGVmaW5lIENETlNfTUNQX1NTUFNUQVQJCQkweEMKICNkZWZpbmUgQ0ROU19NQ1BfRlJBTUVfU0hBUEUJCQkweDEwCiAjZGVmaW5lIENETlNfTUNQX0ZSQU1FX1NIQVBFX0lOSVQJCTB4MTQKKyNkZWZpbmUgQ0ROU19NQ1BfRlJBTUVfU0hBUEVfQ09MX01BU0sJCUdFTk1BU0soMiwgMCkKKyNkZWZpbmUgQ0ROU19NQ1BfRlJBTUVfU0hBUEVfUk9XX09GRlNFVAkJMwogCiAjZGVmaW5lIENETlNfTUNQX0NPTkZJR19VUERBVEUJCQkweDE4CiAjZGVmaW5lIENETlNfTUNQX0NPTkZJR19VUERBVEVfQklUCQlCSVQoMCkKQEAgLTU2LDYgKzYzLDcgQEAKICNkZWZpbmUgQ0ROU19NQ1BfU1NQX0NUUkwxCQkJMHgyOAogI2RlZmluZSBDRE5TX01DUF9DTEtfQ1RSTDAJCQkweDMwCiAjZGVmaW5lIENETlNfTUNQX0NMS19DVFJMMQkJCTB4MzgKKyNkZWZpbmUgQ0ROU19NQ1BfQ0xLX01DTEtEX01BU0sJCUdFTk1BU0soNywgMCkKIAogI2RlZmluZSBDRE5TX01DUF9TVEFUCQkJCTB4NDAKIApAQCAtNzUsOSArODMsMTIgQEAKICNkZWZpbmUgQ0ROU19NQ1BfSU5UX0RQSU5UCQkJQklUKDExKQogI2RlZmluZSBDRE5TX01DUF9JTlRfQ1RSTF9DTEFTSAkJCUJJVCgxMCkKICNkZWZpbmUgQ0ROU19NQ1BfSU5UX0RBVEFfQ0xBU0gJCQlCSVQoOSkKKyNkZWZpbmUgQ0ROU19NQ1BfSU5UX1BBUklUWQkJCUJJVCg4KQogI2RlZmluZSBDRE5TX01DUF9JTlRfQ01EX0VSUgkJCUJJVCg3KQorI2RlZmluZSBDRE5TX01DUF9JTlRfUlhfTkUJCQlCSVQoMykKICNkZWZpbmUgQ0ROU19NQ1BfSU5UX1JYX1dMCQkJQklUKDIpCiAjZGVmaW5lIENETlNfTUNQX0lOVF9UWEUJCQlCSVQoMSkKKyNkZWZpbmUgQ0ROU19NQ1BfSU5UX1RYRgkJCUJJVCgwKQogCiAjZGVmaW5lIENETlNfTUNQX0lOVFNFVAkJCQkweDRDCiAKQEAgLTE2OSw5ICsxODAsNiBAQAogI2RlZmluZSBDRE5TX1BESV9DT05GSUdfUE9SVAkJCUdFTk1BU0soNCwgMCkKIAogLyogRHJpdmVyIGRlZmF1bHRzICovCi0KLSNkZWZpbmUgQ0ROU19ERUZBVUxUX0NMS19ESVZJREVSCQkwCi0jZGVmaW5lIENETlNfREVGQVVMVF9GUkFNRV9TSEFQRQkJMHgzMAogI2RlZmluZSBDRE5TX0RFRkFVTFRfU1NQX0lOVEVSVkFMCQkweDE4CiAjZGVmaW5lIENETlNfVFhfVElNRU9VVAkJCQkyMDAwCiAKQEAgLTIyNCw2ICsyMzIsMTEyIEBAIHN0YXRpYyBpbnQgY2Ruc19jbGVhcl9iaXQoc3RydWN0IHNkd19jZG5zICpjZG5zLCBpbnQgb2Zmc2V0LCB1MzIgdmFsdWUpCiB9CiAKIC8qCisgKiBkZWJ1Z2ZzCisgKi8KKyNpZmRlZiBDT05GSUdfREVCVUdfRlMKKworI2RlZmluZSBSRF9CVUYgKDIgKiBQQUdFX1NJWkUpCisKK3N0YXRpYyBzc2l6ZV90IGNkbnNfc3ByaW50ZihzdHJ1Y3Qgc2R3X2NkbnMgKmNkbnMsCisJCQkgICAgY2hhciAqYnVmLCBzaXplX3QgcG9zLCB1bnNpZ25lZCBpbnQgcmVnKQoreworCXJldHVybiBzY25wcmludGYoYnVmICsgcG9zLCBSRF9CVUYgLSBwb3MsCisJCQkgIiU0eFx0JTh4XG4iLCByZWcsIGNkbnNfcmVhZGwoY2RucywgcmVnKSk7Cit9CisKK3N0YXRpYyBpbnQgY2Ruc19yZWdfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHNkd19jZG5zICpjZG5zID0gcy0+cHJpdmF0ZTsKKwljaGFyICpidWY7CisJc3NpemVfdCByZXQ7CisJaW50IG51bV9wb3J0czsKKwlpbnQgaSwgajsKKworCWJ1ZiA9IGt6YWxsb2MoUkRfQlVGLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXQgPSBzY25wcmludGYoYnVmLCBSRF9CVUYsICJSZWdpc3RlciAgVmFsdWVcbiIpOworCXJldCArPSBzY25wcmludGYoYnVmICsgcmV0LCBSRF9CVUYgLSByZXQsICJcbk1DUCBSZWdpc3RlcnNcbiIpOworCS8qIDggTUNQIHJlZ2lzdGVycyAqLworCWZvciAoaSA9IENETlNfTUNQX0NPTkZJRzsgaSA8PSBDRE5TX01DUF9QSFlDVFJMOyBpICs9IHNpemVvZih1MzIpKQorCQlyZXQgKz0gY2Ruc19zcHJpbnRmKGNkbnMsIGJ1ZiwgcmV0LCBpKTsKKworCXJldCArPSBzY25wcmludGYoYnVmICsgcmV0LCBSRF9CVUYgLSByZXQsCisJCQkgIlxuU3RhdHVzICYgSW50ciBSZWdpc3RlcnNcbiIpOworCS8qIDEzIFN0YXR1cyAmIEludHIgcmVnaXN0ZXJzIChvZmZzZXRzIDB4NzAgYW5kIDB4NzQgbm90IGRlZmluZWQpICovCisJZm9yIChpID0gQ0ROU19NQ1BfU1RBVDsgaSA8PSAgQ0ROU19NQ1BfRklGT1NUQVQ7IGkgKz0gc2l6ZW9mKHUzMikpCisJCXJldCArPSBjZG5zX3NwcmludGYoY2RucywgYnVmLCByZXQsIGkpOworCisJcmV0ICs9IHNjbnByaW50ZihidWYgKyByZXQsIFJEX0JVRiAtIHJldCwKKwkJCSAiXG5TU1AgJiBDbGsgY3RybCBSZWdpc3RlcnNcbiIpOworCXJldCArPSBjZG5zX3NwcmludGYoY2RucywgYnVmLCByZXQsIENETlNfTUNQX1NTUF9DVFJMMCk7CisJcmV0ICs9IGNkbnNfc3ByaW50ZihjZG5zLCBidWYsIHJldCwgQ0ROU19NQ1BfU1NQX0NUUkwxKTsKKwlyZXQgKz0gY2Ruc19zcHJpbnRmKGNkbnMsIGJ1ZiwgcmV0LCBDRE5TX01DUF9DTEtfQ1RSTDApOworCXJldCArPSBjZG5zX3NwcmludGYoY2RucywgYnVmLCByZXQsIENETlNfTUNQX0NMS19DVFJMMSk7CisKKwlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LAorCQkJICJcbkRQbiBCMCBSZWdpc3RlcnNcbiIpOworCisJLyoKKwkgKiBpbiBzZHdfY2Ruc19wZGlfaW5pdCgpIHdlIGZpbHRlciBvdXQgdGhlIEJ1bGsgUERJcywKKwkgKiBzbyB0aGUgaW5kaWNlcyBuZWVkIHRvIGJlIGNvcnJlY3RlZCBhZ2FpbgorCSAqLworCW51bV9wb3J0cyA9IGNkbnMtPm51bV9wb3J0cyArIENETlNfUENNX1BESV9PRkZTRVQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3BvcnRzOyBpKyspIHsKKwkJcmV0ICs9IHNjbnByaW50ZihidWYgKyByZXQsIFJEX0JVRiAtIHJldCwKKwkJCQkgIlxuRFAtJWRcbiIsIGkpOworCQlmb3IgKGogPSBDRE5TX0RQTl9CMF9DT05GSUcoaSk7CisJCSAgICAgaiA8IENETlNfRFBOX0IwX0FTWU5DX0NUUkwoaSk7IGogKz0gc2l6ZW9mKHUzMikpCisJCQlyZXQgKz0gY2Ruc19zcHJpbnRmKGNkbnMsIGJ1ZiwgcmV0LCBqKTsKKwl9CisKKwlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LAorCQkJICJcbkRQbiBCMSBSZWdpc3RlcnNcbiIpOworCWZvciAoaSA9IDA7IGkgPCBudW1fcG9ydHM7IGkrKykgeworCQlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LAorCQkJCSAiXG5EUC0lZFxuIiwgaSk7CisKKwkJZm9yIChqID0gQ0ROU19EUE5fQjFfQ09ORklHKGkpOworCQkgICAgIGogPCBDRE5TX0RQTl9CMV9BU1lOQ19DVFJMKGkpOyBqICs9IHNpemVvZih1MzIpKQorCQkJcmV0ICs9IGNkbnNfc3ByaW50ZihjZG5zLCBidWYsIHJldCwgaik7CisJfQorCisJcmV0ICs9IHNjbnByaW50ZihidWYgKyByZXQsIFJEX0JVRiAtIHJldCwKKwkJCSAiXG5EUG4gQ29udHJvbCBSZWdpc3RlcnNcbiIpOworCWZvciAoaSA9IDA7IGkgPCBudW1fcG9ydHM7IGkrKykKKwkJcmV0ICs9IGNkbnNfc3ByaW50ZihjZG5zLCBidWYsIHJldCwKKwkJCQlDRE5TX1BPUlRDVFJMICsgaSAqIENETlNfUE9SVF9PRkZTRVQpOworCisJcmV0ICs9IHNjbnByaW50ZihidWYgKyByZXQsIFJEX0JVRiAtIHJldCwKKwkJCSAiXG5QREluIENvbmZpZyBSZWdpc3RlcnNcbiIpOworCisJLyogbnVtYmVyIG9mIFBESSBhbmQgcG9ydHMgaXMgaW50ZXJjaGFuZ2VhYmxlICovCisJZm9yIChpID0gMDsgaSA8IG51bV9wb3J0czsgaSsrKQorCQlyZXQgKz0gY2Ruc19zcHJpbnRmKGNkbnMsIGJ1ZiwgcmV0LCBDRE5TX1BESV9DT05GSUcoaSkpOworCisJc2VxX3ByaW50ZihzLCAiJXMiLCBidWYpOworCWtmcmVlKGJ1Zik7CisKKwlyZXR1cm4gMDsKK30KK0RFRklORV9TSE9XX0FUVFJJQlVURShjZG5zX3JlZyk7CisKKy8qKgorICogc2R3X2NkbnNfZGVidWdmc19pbml0KCkgLSBDYWRlbmNlIGRlYnVnZnMgaW5pdAorICogQGNkbnM6IENhZGVuY2UgaW5zdGFuY2UKKyAqIEByb290OiBkZWJ1Z2ZzIHJvb3QKKyAqLwordm9pZCBzZHdfY2Ruc19kZWJ1Z2ZzX2luaXQoc3RydWN0IHNkd19jZG5zICpjZG5zLCBzdHJ1Y3QgZGVudHJ5ICpyb290KQoreworCWRlYnVnZnNfY3JlYXRlX2ZpbGUoImNkbnMtcmVnaXN0ZXJzIiwgMDQwMCwgcm9vdCwgY2RucywgJmNkbnNfcmVnX2ZvcHMpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc2R3X2NkbnNfZGVidWdmc19pbml0KTsKKworI2VuZGlmIC8qIENPTkZJR19ERUJVR19GUyAqLworCisvKgogICogSU8gQ2FsbHMKICAqLwogc3RhdGljIGVudW0gc2R3X2NvbW1hbmRfcmVzcG9uc2UKQEAgLTU3NSwxMCArNjg5LDE0IEBAIGlycXJldHVybl90IHNkd19jZG5zX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJCX0KIAl9CiAKKwlpZiAoaW50X3N0YXR1cyAmIENETlNfTUNQX0lOVF9QQVJJVFkpIHsKKwkJLyogUGFyaXR5IGVycm9yIGRldGVjdGVkIGJ5IE1hc3RlciAqLworCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGNkbnMtPmRldiwgIlBhcml0eSBlcnJvclxuIik7CisJfQorCiAJaWYgKGludF9zdGF0dXMgJiBDRE5TX01DUF9JTlRfQ1RSTF9DTEFTSCkgewogCQkvKiBTbGF2ZSBpcyBkcml2aW5nIGJpdCBzbG90IGR1cmluZyBjb250cm9sIHdvcmQgKi8KIAkJZGV2X2Vycl9yYXRlbGltaXRlZChjZG5zLT5kZXYsICJCdXMgY2xhc2ggZm9yIGNvbnRyb2wgd29yZFxuIik7Ci0JCWludF9zdGF0dXMgfD0gQ0ROU19NQ1BfSU5UX0NUUkxfQ0xBU0g7CiAJfQogCiAJaWYgKGludF9zdGF0dXMgJiBDRE5TX01DUF9JTlRfREFUQV9DTEFTSCkgewpAQCAtNTg3LDcgKzcwNSw2IEBAIGlycXJldHVybl90IHNkd19jZG5zX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJCSAqIG93bmVyc2hpcCBvZiBkYXRhIGJpdHMgb3IgU2xhdmUgZ29uZSBib25rZXJzCiAJCSAqLwogCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGNkbnMtPmRldiwgIkJ1cyBjbGFzaCBmb3IgZGF0YSB3b3JkXG4iKTsKLQkJaW50X3N0YXR1cyB8PSBDRE5TX01DUF9JTlRfREFUQV9DTEFTSDsKIAl9CiAKIAlpZiAoaW50X3N0YXR1cyAmIENETlNfTUNQX0lOVF9TTEFWRV9NQVNLKSB7CkBAIC02NDQsMTAgKzc2MSwyNiBAQCBzdGF0aWMgaW50IF9jZG5zX2VuYWJsZV9pbnRlcnJ1cHQoc3RydWN0IHNkd19jZG5zICpjZG5zKQogCWNkbnNfd3JpdGVsKGNkbnMsIENETlNfTUNQX1NMQVZFX0lOVE1BU0sxLAogCQkgICAgQ0ROU19NQ1BfU0xBVkVfSU5UTUFTSzFfTUFTSyk7CiAKLQltYXNrID0gQ0ROU19NQ1BfSU5UX1NMQVZFX1JTVkQgfCBDRE5TX01DUF9JTlRfU0xBVkVfQUxFUlQgfAotCQlDRE5TX01DUF9JTlRfU0xBVkVfQVRUQUNIIHwgQ0ROU19NQ1BfSU5UX1NMQVZFX05BVFRBQ0ggfAotCQlDRE5TX01DUF9JTlRfQ1RSTF9DTEFTSCB8IENETlNfTUNQX0lOVF9EQVRBX0NMQVNIIHwKLQkJQ0ROU19NQ1BfSU5UX1JYX1dMIHwgQ0ROU19NQ1BfSU5UX0lSUSB8IENETlNfTUNQX0lOVF9EUElOVDsKKwkvKiBlbmFibGUgZGV0ZWN0aW9uIG9mIGFsbCBzbGF2ZSBzdGF0ZSBjaGFuZ2VzICovCisJbWFzayA9IENETlNfTUNQX0lOVF9TTEFWRV9NQVNLOworCisJLyogZW5hYmxlIGRldGVjdGlvbiBvZiBidXMgaXNzdWVzICovCisJbWFzayB8PSBDRE5TX01DUF9JTlRfQ1RSTF9DTEFTSCB8IENETlNfTUNQX0lOVF9EQVRBX0NMQVNIIHwKKwkJQ0ROU19NQ1BfSU5UX1BBUklUWTsKKworCS8qIG5vIGRldGVjdGlvbiBvZiBwb3J0IGludGVycnVwdHMgZm9yIG5vdyAqLworCisJLyogZW5hYmxlIGRldGVjdGlvbiBvZiBSWCBmaWZvIGxldmVsICovCisJbWFzayB8PSBDRE5TX01DUF9JTlRfUlhfV0w7CisKKwkvKgorCSAqIENETlNfTUNQX0lOVF9JUlEgbmVlZHMgdG8gYmUgc2V0IG90aGVyd2lzZSBhbGwgcHJldmlvdXMKKwkgKiBzZXR0aW5ncyBhcmUgaXJyZWxldmFudAorCSAqLworCW1hc2sgfD0gQ0ROU19NQ1BfSU5UX0lSUTsKKworCWlmIChpbnRlcnJ1cHRfbWFzaykgLyogcGFyYW1ldGVyIG92ZXJyaWRlICovCisJCW1hc2sgPSBpbnRlcnJ1cHRfbWFzazsKIAogCWNkbnNfd3JpdGVsKGNkbnMsIENETlNfTUNQX0lOVE1BU0ssIG1hc2spOwogCkBAIC03ODgsMTMgKzkyMSwzMCBAQCBpbnQgc2R3X2NkbnNfcGRpX2luaXQoc3RydWN0IHNkd19jZG5zICpjZG5zLAogfQogRVhQT1JUX1NZTUJPTChzZHdfY2Ruc19wZGlfaW5pdCk7CiAKK3N0YXRpYyB1MzIgY2Ruc19zZXRfaW5pdGlhbF9mcmFtZV9zaGFwZShpbnQgbl9yb3dzLCBpbnQgbl9jb2xzKQoreworCXUzMiB2YWw7CisJaW50IGM7CisJaW50IHI7CisKKwlyID0gc2R3X2ZpbmRfcm93X2luZGV4KG5fcm93cyk7CisJYyA9IHNkd19maW5kX2NvbF9pbmRleChuX2NvbHMpICYgQ0ROU19NQ1BfRlJBTUVfU0hBUEVfQ09MX01BU0s7CisKKwl2YWwgPSAociA8PCBDRE5TX01DUF9GUkFNRV9TSEFQRV9ST1dfT0ZGU0VUKSB8IGM7CisKKwlyZXR1cm4gdmFsOworfQorCiAvKioKICAqIHNkd19jZG5zX2luaXQoKSAtIENhZGVuY2UgaW5pdGlhbGl6YXRpb24KICAqIEBjZG5zOiBDYWRlbmNlIGluc3RhbmNlCiAgKi8KIGludCBzZHdfY2Ruc19pbml0KHN0cnVjdCBzZHdfY2RucyAqY2RucykKIHsKKwlzdHJ1Y3Qgc2R3X2J1cyAqYnVzID0gJmNkbnMtPmJ1czsKKwlzdHJ1Y3Qgc2R3X21hc3Rlcl9wcm9wICpwcm9wID0gJmJ1cy0+cHJvcDsKIAl1MzIgdmFsOworCWludCBkaXZpZGVyOwogCWludCByZXQ7CiAKIAkvKiBFeGl0IGNsb2NrIHN0b3AgKi8KQEAgLTgwNiwxMiArOTU2LDIwIEBAIGludCBzZHdfY2Ruc19pbml0KHN0cnVjdCBzZHdfY2RucyAqY2RucykKIAl9CiAKIAkvKiBTZXQgY2xvY2sgZGl2aWRlciAqLwotCXZhbCA9IGNkbnNfcmVhZGwoY2RucywgQ0ROU19NQ1BfQ0xLX0NUUkwwKTsKLQl2YWwgfD0gQ0ROU19ERUZBVUxUX0NMS19ESVZJREVSOwotCWNkbnNfd3JpdGVsKGNkbnMsIENETlNfTUNQX0NMS19DVFJMMCwgdmFsKTsKKwlkaXZpZGVyCT0gKHByb3AtPm1jbGtfZnJlcSAvIHByb3AtPm1heF9jbGtfZnJlcSkgLSAxOwogCi0JLyogU2V0IHRoZSBkZWZhdWx0IGZyYW1lIHNoYXBlICovCi0JY2Ruc193cml0ZWwoY2RucywgQ0ROU19NQ1BfRlJBTUVfU0hBUEVfSU5JVCwgQ0ROU19ERUZBVUxUX0ZSQU1FX1NIQVBFKTsKKwljZG5zX3VwZGF0ZWwoY2RucywgQ0ROU19NQ1BfQ0xLX0NUUkwwLAorCQkgICAgIENETlNfTUNQX0NMS19NQ0xLRF9NQVNLLCBkaXZpZGVyKTsKKwljZG5zX3VwZGF0ZWwoY2RucywgQ0ROU19NQ1BfQ0xLX0NUUkwxLAorCQkgICAgIENETlNfTUNQX0NMS19NQ0xLRF9NQVNLLCBkaXZpZGVyKTsKKworCS8qCisJICogRnJhbWUgc2hhcGUgY2hhbmdlcyBhZnRlciBpbml0aWFsaXphdGlvbiBoYXZlIHRvIGJlIGRvbmUKKwkgKiB3aXRoIHRoZSBiYW5rIHN3aXRjaCBtZWNoYW5pc20KKwkgKi8KKwl2YWwgPSBjZG5zX3NldF9pbml0aWFsX2ZyYW1lX3NoYXBlKHByb3AtPmRlZmF1bHRfcm93LAorCQkJCQkgICBwcm9wLT5kZWZhdWx0X2NvbCk7CisJY2Ruc193cml0ZWwoY2RucywgQ0ROU19NQ1BfRlJBTUVfU0hBUEVfSU5JVCwgdmFsKTsKIAogCS8qIFNldCBTU1AgaW50ZXJ2YWwgdG8gZGVmYXVsdCB2YWx1ZSAqLwogCWNkbnNfd3JpdGVsKGNkbnMsIENETlNfTUNQX1NTUF9DVFJMMCwgQ0ROU19ERUZBVUxUX1NTUF9JTlRFUlZBTCk7CkBAIC04NTEsOCArMTAwOSw5IEBAIEVYUE9SVF9TWU1CT0woc2R3X2NkbnNfaW5pdCk7CiAKIGludCBjZG5zX2J1c19jb25mKHN0cnVjdCBzZHdfYnVzICpidXMsIHN0cnVjdCBzZHdfYnVzX3BhcmFtcyAqcGFyYW1zKQogeworCXN0cnVjdCBzZHdfbWFzdGVyX3Byb3AgKnByb3AgPSAmYnVzLT5wcm9wOwogCXN0cnVjdCBzZHdfY2RucyAqY2RucyA9IGJ1c190b19jZG5zKGJ1cyk7Ci0JaW50IG1jcF9jbGtjdHJsX29mZiwgbWNwX2Nsa2N0cmw7CisJaW50IG1jcF9jbGtjdHJsX29mZjsKIAlpbnQgZGl2aWRlcjsKIAogCWlmICghcGFyYW1zLT5jdXJyX2RyX2ZyZXEpIHsKQEAgLTg2MCwxNiArMTAxOSwxNiBAQCBpbnQgY2Ruc19idXNfY29uZihzdHJ1Y3Qgc2R3X2J1cyAqYnVzLCBzdHJ1Y3Qgc2R3X2J1c19wYXJhbXMgKnBhcmFtcykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JZGl2aWRlcgk9IChwYXJhbXMtPm1heF9kcl9mcmVxIC8gcGFyYW1zLT5jdXJyX2RyX2ZyZXEpIC0gMTsKKwlkaXZpZGVyCT0gcHJvcC0+bWNsa19mcmVxICogU0RXX0RPVUJMRV9SQVRFX0ZBQ1RPUiAvCisJCXBhcmFtcy0+Y3Vycl9kcl9mcmVxOworCWRpdmlkZXItLTsgLyogZGl2aWRlciBpcyAxLyhOKzEpICovCiAKIAlpZiAocGFyYW1zLT5uZXh0X2JhbmspCiAJCW1jcF9jbGtjdHJsX29mZiA9IENETlNfTUNQX0NMS19DVFJMMTsKIAllbHNlCiAJCW1jcF9jbGtjdHJsX29mZiA9IENETlNfTUNQX0NMS19DVFJMMDsKIAotCW1jcF9jbGtjdHJsID0gY2Ruc19yZWFkbChjZG5zLCBtY3BfY2xrY3RybF9vZmYpOwotCW1jcF9jbGtjdHJsIHw9IGRpdmlkZXI7Ci0JY2Ruc193cml0ZWwoY2RucywgbWNwX2Nsa2N0cmxfb2ZmLCBtY3BfY2xrY3RybCk7CisJY2Ruc191cGRhdGVsKGNkbnMsIG1jcF9jbGtjdHJsX29mZiwgQ0ROU19NQ1BfQ0xLX01DTEtEX01BU0ssIGRpdmlkZXIpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMTcwLDE5ICsxMzI5LDUgQEAgaW50IHNkd19jZG5zX2FsbG9jX3N0cmVhbShzdHJ1Y3Qgc2R3X2NkbnMgKmNkbnMsCiB9CiBFWFBPUlRfU1lNQk9MKHNkd19jZG5zX2FsbG9jX3N0cmVhbSk7CiAKLXZvaWQgc2R3X2NkbnNfc2h1dGRvd24oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCi0JCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKLXsKLQlzdHJ1Y3Qgc2R3X2NkbnNfZG1hX2RhdGEgKmRtYTsKLQotCWRtYSA9IHNuZF9zb2NfZGFpX2dldF9kbWFfZGF0YShkYWksIHN1YnN0cmVhbSk7Ci0JaWYgKCFkbWEpCi0JCXJldHVybjsKLQotCXNuZF9zb2NfZGFpX3NldF9kbWFfZGF0YShkYWksIHN1YnN0cmVhbSwgTlVMTCk7Ci0Ja2ZyZWUoZG1hKTsKLX0KLUVYUE9SVF9TWU1CT0woc2R3X2NkbnNfc2h1dGRvd24pOwotCiBNT0RVTEVfTElDRU5TRSgiRHVhbCBCU0QvR1BMIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkNhZGVuY2UgU291bmR3aXJlIExpYnJhcnkiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc291bmR3aXJlL2NhZGVuY2VfbWFzdGVyLmggYi9kcml2ZXJzL3NvdW5kd2lyZS9jYWRlbmNlX21hc3Rlci5oCmluZGV4IGZlMmFmNjIuLjBiNzJiNzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc291bmR3aXJlL2NhZGVuY2VfbWFzdGVyLmgKKysrIGIvZHJpdmVycy9zb3VuZHdpcmUvY2FkZW5jZV9tYXN0ZXIuaApAQCAtMTYzLDYgKzE2MywxMCBAQCBpbnQgc2R3X2NkbnNfcGRpX2luaXQoc3RydWN0IHNkd19jZG5zICpjZG5zLAogCQkgICAgICBzdHJ1Y3Qgc2R3X2NkbnNfc3RyZWFtX2NvbmZpZyBjb25maWcpOwogaW50IHNkd19jZG5zX2VuYWJsZV9pbnRlcnJ1cHQoc3RydWN0IHNkd19jZG5zICpjZG5zKTsKIAorI2lmZGVmIENPTkZJR19ERUJVR19GUwordm9pZCBzZHdfY2Ruc19kZWJ1Z2ZzX2luaXQoc3RydWN0IHNkd19jZG5zICpjZG5zLCBzdHJ1Y3QgZGVudHJ5ICpyb290KTsKKyNlbmRpZgorCiBpbnQgc2R3X2NkbnNfZ2V0X3N0cmVhbShzdHJ1Y3Qgc2R3X2NkbnMgKmNkbnMsCiAJCQlzdHJ1Y3Qgc2R3X2NkbnNfc3RyZWFtcyAqc3RyZWFtLAogCQkJdTMyIGNoLCB1MzIgZGlyKTsKQEAgLTE3Miw4ICsxNzYsNiBAQCBpbnQgc2R3X2NkbnNfYWxsb2Nfc3RyZWFtKHN0cnVjdCBzZHdfY2RucyAqY2RucywKIHZvaWQgc2R3X2NkbnNfY29uZmlnX3N0cmVhbShzdHJ1Y3Qgc2R3X2NkbnMgKmNkbnMsIHN0cnVjdCBzZHdfY2Ruc19wb3J0ICpwb3J0LAogCQkJICAgIHUzMiBjaCwgdTMyIGRpciwgc3RydWN0IHNkd19jZG5zX3BkaSAqcGRpKTsKIAotdm9pZCBzZHdfY2Ruc19zaHV0ZG93bihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKLQkJICAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKTsKIGludCBzZHdfY2Ruc19wY21fc2V0X3N0cmVhbShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKIAkJCSAgICB2b2lkICpzdHJlYW0sIGludCBkaXJlY3Rpb24pOwogaW50IHNkd19jZG5zX3BkbV9zZXRfc3RyZWFtKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb3VuZHdpcmUvZGVidWdmcy5jIGIvZHJpdmVycy9zb3VuZHdpcmUvZGVidWdmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMTE0MGUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3NvdW5kd2lyZS9kZWJ1Z2ZzLmMKQEAgLTAsMCArMSwxNTEgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvLyBDb3B5cmlnaHQoYykgMjAxNy0yMDE5IEludGVsIENvcnBvcmF0aW9uLgorCisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zb3VuZHdpcmUvc2R3Lmg+CisjaW5jbHVkZSA8bGludXgvc291bmR3aXJlL3Nkd19yZWdpc3RlcnMuaD4KKyNpbmNsdWRlICJidXMuaCIKKworc3RhdGljIHN0cnVjdCBkZW50cnkgKnNkd19kZWJ1Z2ZzX3Jvb3Q7CisKK3ZvaWQgc2R3X2J1c19kZWJ1Z2ZzX2luaXQoc3RydWN0IHNkd19idXMgKmJ1cykKK3sKKwljaGFyIG5hbWVbMTZdOworCisJaWYgKCFzZHdfZGVidWdmc19yb290KQorCQlyZXR1cm47CisKKwkvKiBjcmVhdGUgdGhlIGRlYnVnZnMgbWFzdGVyLU4gKi8KKwlzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksICJtYXN0ZXItJWQiLCBidXMtPmxpbmtfaWQpOworCWJ1cy0+ZGVidWdmcyA9IGRlYnVnZnNfY3JlYXRlX2RpcihuYW1lLCBzZHdfZGVidWdmc19yb290KTsKK30KKwordm9pZCBzZHdfYnVzX2RlYnVnZnNfZXhpdChzdHJ1Y3Qgc2R3X2J1cyAqYnVzKQoreworCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShidXMtPmRlYnVnZnMpOworfQorCisjZGVmaW5lIFJEX0JVRiAoMyAqIFBBR0VfU0laRSkKKworc3RhdGljIHNzaXplX3Qgc2R3X3NwcmludGYoc3RydWN0IHNkd19zbGF2ZSAqc2xhdmUsCisJCQkgICBjaGFyICpidWYsIHNpemVfdCBwb3MsIHVuc2lnbmVkIGludCByZWcpCit7CisJaW50IHZhbHVlOworCisJdmFsdWUgPSBzZHdfcmVhZChzbGF2ZSwgcmVnKTsKKworCWlmICh2YWx1ZSA8IDApCisJCXJldHVybiBzY25wcmludGYoYnVmICsgcG9zLCBSRF9CVUYgLSBwb3MsICIlM3hcdFhYXG4iLCByZWcpOworCWVsc2UKKwkJcmV0dXJuIHNjbnByaW50ZihidWYgKyBwb3MsIFJEX0JVRiAtIHBvcywKKwkJCQkiJTN4XHQlMnhcbiIsIHJlZywgdmFsdWUpOworfQorCitzdGF0aWMgaW50IHNkd19zbGF2ZV9yZWdfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNfZmlsZSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3Qgc2R3X3NsYXZlICpzbGF2ZSA9IHNfZmlsZS0+cHJpdmF0ZTsKKwljaGFyICpidWY7CisJc3NpemVfdCByZXQ7CisJaW50IGksIGo7CisKKwlidWYgPSBremFsbG9jKFJEX0JVRiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFidWYpCisJCXJldHVybiAtRU5PTUVNOworCisJcmV0ID0gc2NucHJpbnRmKGJ1ZiwgUkRfQlVGLCAiUmVnaXN0ZXIgIFZhbHVlXG4iKTsKKworCS8qIERQMCBub24tYmFua2VkIHJlZ2lzdGVycyAqLworCXJldCArPSBzY25wcmludGYoYnVmICsgcmV0LCBSRF9CVUYgLSByZXQsICJcbkRQMFxuIik7CisJZm9yIChpID0gU0RXX0RQMF9JTlQ7IGkgPD0gU0RXX0RQMF9QUkVQQVJFQ1RSTDsgaSsrKQorCQlyZXQgKz0gc2R3X3NwcmludGYoc2xhdmUsIGJ1ZiwgcmV0LCBpKTsKKworCS8qIERQMCBCYW5rIDAgcmVnaXN0ZXJzICovCisJcmV0ICs9IHNjbnByaW50ZihidWYgKyByZXQsIFJEX0JVRiAtIHJldCwgIkJhbmswXG4iKTsKKwlyZXQgKz0gc2R3X3NwcmludGYoc2xhdmUsIGJ1ZiwgcmV0LCBTRFdfRFAwX0NIQU5ORUxFTik7CisJZm9yIChpID0gU0RXX0RQMF9TQU1QTEVDVFJMMTsgaSA8PSBTRFdfRFAwX0xBTkVDVFJMOyBpKyspCisJCXJldCArPSBzZHdfc3ByaW50ZihzbGF2ZSwgYnVmLCByZXQsIGkpOworCisJLyogRFAwIEJhbmsgMSByZWdpc3RlcnMgKi8KKwlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LCAiQmFuazFcbiIpOworCXJldCArPSBzZHdfc3ByaW50ZihzbGF2ZSwgYnVmLCByZXQsCisJCQlTRFdfRFAwX0NIQU5ORUxFTiArIFNEV19CQU5LMV9PRkZTRVQpOworCWZvciAoaSA9IFNEV19EUDBfU0FNUExFQ1RSTDEgKyBTRFdfQkFOSzFfT0ZGU0VUOworCQkJaSA8PSBTRFdfRFAwX0xBTkVDVFJMICsgU0RXX0JBTksxX09GRlNFVDsgaSsrKQorCQlyZXQgKz0gc2R3X3NwcmludGYoc2xhdmUsIGJ1ZiwgcmV0LCBpKTsKKworCS8qIFNDUCByZWdpc3RlcnMgKi8KKwlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LCAiXG5TQ1BcbiIpOworCWZvciAoaSA9IFNEV19TQ1BfSU5UMTsgaSA8PSBTRFdfU0NQX0JBTktERUxBWTsgaSsrKQorCQlyZXQgKz0gc2R3X3NwcmludGYoc2xhdmUsIGJ1ZiwgcmV0LCBpKTsKKwlmb3IgKGkgPSBTRFdfU0NQX0RFVklEXzA7IGkgPD0gU0RXX1NDUF9ERVZJRF81OyBpKyspCisJCXJldCArPSBzZHdfc3ByaW50ZihzbGF2ZSwgYnVmLCByZXQsIGkpOworCisJLyoKKwkgKiBTQ1AgQmFuayAwLzEgcmVnaXN0ZXJzIGFyZSByZWFkLW9ubHkgYW5kIGNhbm5vdCBiZQorCSAqIHJldHJpZXZlZCBmcm9tIHRoZSBTbGF2ZS4gVGhlIE1hc3RlciB0eXBpY2FsbHkga2VlcHMgdHJhY2sKKwkgKiBvZiB0aGUgY3VycmVudCBmcmFtZSBzaXplIHNvIHRoZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQKKwkgKiBpbiBvdGhlciBwbGFjZXMKKwkgKi8KKworCS8qIERQMS4uMTQgcmVnaXN0ZXJzICovCisJZm9yIChpID0gMTsgU0RXX1ZBTElEX1BPUlRfUkFOR0UoaSk7IGkrKykgeworCisJCS8qIERQaSByZWdpc3RlcnMgKi8KKwkJcmV0ICs9IHNjbnByaW50ZihidWYgKyByZXQsIFJEX0JVRiAtIHJldCwgIlxuRFAlZFxuIiwgaSk7CisJCWZvciAoaiA9IFNEV19EUE5fSU5UKGkpOyBqIDw9IFNEV19EUE5fUFJFUEFSRUNUUkwoaSk7IGorKykKKwkJCXJldCArPSBzZHdfc3ByaW50ZihzbGF2ZSwgYnVmLCByZXQsIGopOworCisJCS8qIERQaSBCYW5rMCByZWdpc3RlcnMgKi8KKwkJcmV0ICs9IHNjbnByaW50ZihidWYgKyByZXQsIFJEX0JVRiAtIHJldCwgIkJhbmswXG4iKTsKKwkJZm9yIChqID0gU0RXX0RQTl9DSEFOTkVMRU5fQjAoaSk7CisJCSAgICAgaiA8PSBTRFdfRFBOX0xBTkVDVFJMX0IwKGkpOyBqKyspCisJCQlyZXQgKz0gc2R3X3NwcmludGYoc2xhdmUsIGJ1ZiwgcmV0LCBqKTsKKworCQkvKiBEUGkgQmFuazEgcmVnaXN0ZXJzICovCisJCXJldCArPSBzY25wcmludGYoYnVmICsgcmV0LCBSRF9CVUYgLSByZXQsICJCYW5rMVxuIik7CisJCWZvciAoaiA9IFNEV19EUE5fQ0hBTk5FTEVOX0IxKGkpOworCQkgICAgIGogPD0gU0RXX0RQTl9MQU5FQ1RSTF9CMShpKTsgaisrKQorCQkJcmV0ICs9IHNkd19zcHJpbnRmKHNsYXZlLCBidWYsIHJldCwgaik7CisJfQorCisJc2VxX3ByaW50ZihzX2ZpbGUsICIlcyIsIGJ1Zik7CisJa2ZyZWUoYnVmKTsKKworCXJldHVybiAwOworfQorREVGSU5FX1NIT1dfQVRUUklCVVRFKHNkd19zbGF2ZV9yZWcpOworCit2b2lkIHNkd19zbGF2ZV9kZWJ1Z2ZzX2luaXQoc3RydWN0IHNkd19zbGF2ZSAqc2xhdmUpCit7CisJc3RydWN0IGRlbnRyeSAqbWFzdGVyOworCXN0cnVjdCBkZW50cnkgKmQ7CisJY2hhciBuYW1lWzMyXTsKKworCW1hc3RlciA9IHNsYXZlLT5idXMtPmRlYnVnZnM7CisKKwkvKiBjcmVhdGUgdGhlIGRlYnVnZnMgc2xhdmUtbmFtZSAqLworCXNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgIiVzIiwgZGV2X25hbWUoJnNsYXZlLT5kZXYpKTsKKwlkID0gZGVidWdmc19jcmVhdGVfZGlyKG5hbWUsIG1hc3Rlcik7CisKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJyZWdpc3RlcnMiLCAwNDAwLCBkLCBzbGF2ZSwgJnNkd19zbGF2ZV9yZWdfZm9wcyk7CisKKwlzbGF2ZS0+ZGVidWdmcyA9IGQ7Cit9CisKK3ZvaWQgc2R3X3NsYXZlX2RlYnVnZnNfZXhpdChzdHJ1Y3Qgc2R3X3NsYXZlICpzbGF2ZSkKK3sKKwlkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoc2xhdmUtPmRlYnVnZnMpOworfQorCit2b2lkIHNkd19kZWJ1Z2ZzX2luaXQodm9pZCkKK3sKKwlzZHdfZGVidWdmc19yb290ID0gZGVidWdmc19jcmVhdGVfZGlyKCJzb3VuZHdpcmUiLCBOVUxMKTsKK30KKwordm9pZCBzZHdfZGVidWdmc19leGl0KHZvaWQpCit7CisJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHNkd19kZWJ1Z2ZzX3Jvb3QpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb3VuZHdpcmUvaW50ZWwuYyBiL2RyaXZlcnMvc291bmR3aXJlL2ludGVsLmMKaW5kZXggMzE3ODczYi4uZjFlMzhhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zb3VuZHdpcmUvaW50ZWwuYworKysgYi9kcml2ZXJzL3NvdW5kd2lyZS9pbnRlbC5jCkBAIC02LDYgKzYsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CkBAIC0xNiw2ICsxNyw3IEBACiAjaW5jbHVkZSA8bGludXgvc291bmR3aXJlL3Nkdy5oPgogI2luY2x1ZGUgPGxpbnV4L3NvdW5kd2lyZS9zZHdfaW50ZWwuaD4KICNpbmNsdWRlICJjYWRlbmNlX21hc3Rlci5oIgorI2luY2x1ZGUgImJ1cy5oIgogI2luY2x1ZGUgImludGVsLmgiCiAKIC8qIEludGVsIFNISU0gUmVnaXN0ZXJzIERlZmluaXRpb24gKi8KQEAgLTgzLDExICs4NSwxNCBAQAogCiAvKiBJbnRlbCBBTEggUmVnaXN0ZXIgZGVmaW5pdGlvbnMgKi8KICNkZWZpbmUgU0RXX0FMSF9TVFJNWkNGRyh4KQkJKDB4MDAwICsgKDB4NCAqICh4KSkpCisjZGVmaW5lIFNEV19BTEhfTlVNX1NUUkVBTVMJCTY0CiAKICNkZWZpbmUgU0RXX0FMSF9TVFJNWkNGR19ETUFUX1ZBTAkweDMKICNkZWZpbmUgU0RXX0FMSF9TVFJNWkNGR19ETUFUCQlHRU5NQVNLKDcsIDApCiAjZGVmaW5lIFNEV19BTEhfU1RSTVpDRkdfQ0hOCQlHRU5NQVNLKDE5LCAxNikKIAorI2RlZmluZSBTRFdfSU5URUxfUVVJUktfTUFTS19CVVNfRElTQUJMRQlCSVQoMSkKKwogZW51bSBpbnRlbF9wZGlfdHlwZSB7CiAJSU5URUxfUERJX0lOID0gMCwKIAlJTlRFTF9QRElfT1VUID0gMSwKQEAgLTk4LDYgKzEwMyw5IEBAIHN0cnVjdCBzZHdfaW50ZWwgewogCXN0cnVjdCBzZHdfY2RucyBjZG5zOwogCWludCBpbnN0YW5jZTsKIAlzdHJ1Y3Qgc2R3X2ludGVsX2xpbmtfcmVzICpyZXM7CisjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCisJc3RydWN0IGRlbnRyeSAqZGVidWdmczsKKyNlbmRpZgogfTsKIAogI2RlZmluZSBjZG5zX3RvX2ludGVsKF9jZG5zKSBjb250YWluZXJfb2YoX2NkbnMsIHN0cnVjdCBzZHdfaW50ZWwsIGNkbnMpCkBAIC0xNjIsNiArMTcwLDExOCBAQCBzdGF0aWMgaW50IGludGVsX3NldF9iaXQodm9pZCBfX2lvbWVtICpiYXNlLCBpbnQgb2Zmc2V0LCB1MzIgdmFsdWUsIHUzMiBtYXNrKQogfQogCiAvKgorICogZGVidWdmcworICovCisjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCisKKyNkZWZpbmUgUkRfQlVGICgyICogUEFHRV9TSVpFKQorCitzdGF0aWMgc3NpemVfdCBpbnRlbF9zcHJpbnRmKHZvaWQgX19pb21lbSAqbWVtLCBib29sIGwsCisJCQkgICAgIGNoYXIgKmJ1Ziwgc2l6ZV90IHBvcywgdW5zaWduZWQgaW50IHJlZykKK3sKKwlpbnQgdmFsdWU7CisKKwlpZiAobCkKKwkJdmFsdWUgPSBpbnRlbF9yZWFkbChtZW0sIHJlZyk7CisJZWxzZQorCQl2YWx1ZSA9IGludGVsX3JlYWR3KG1lbSwgcmVnKTsKKworCXJldHVybiBzY25wcmludGYoYnVmICsgcG9zLCBSRF9CVUYgLSBwb3MsICIlNHhcdCU0eFxuIiwgcmVnLCB2YWx1ZSk7Cit9CisKK3N0YXRpYyBpbnQgaW50ZWxfcmVnX3Nob3coc3RydWN0IHNlcV9maWxlICpzX2ZpbGUsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHNkd19pbnRlbCAqc2R3ID0gc19maWxlLT5wcml2YXRlOworCXZvaWQgX19pb21lbSAqcyA9IHNkdy0+cmVzLT5zaGltOworCXZvaWQgX19pb21lbSAqYSA9IHNkdy0+cmVzLT5hbGg7CisJY2hhciAqYnVmOworCXNzaXplX3QgcmV0OworCWludCBpLCBqOworCXVuc2lnbmVkIGludCBsaW5rcywgcmVnOworCisJYnVmID0ga3phbGxvYyhSRF9CVUYsIEdGUF9LRVJORUwpOworCWlmICghYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWxpbmtzID0gaW50ZWxfcmVhZGwocywgU0RXX1NISU1fTENBUCkgJiBHRU5NQVNLKDIsIDApOworCisJcmV0ID0gc2NucHJpbnRmKGJ1ZiwgUkRfQlVGLCAiUmVnaXN0ZXIgIFZhbHVlXG4iKTsKKwlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LCAiXG5TaGltXG4iKTsKKworCWZvciAoaSA9IDA7IGkgPCBsaW5rczsgaSsrKSB7CisJCXJlZyA9IFNEV19TSElNX0xDQVAgKyBpICogNDsKKwkJcmV0ICs9IGludGVsX3NwcmludGYocywgdHJ1ZSwgYnVmLCByZXQsIHJlZyk7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGxpbmtzOyBpKyspIHsKKwkJcmV0ICs9IHNjbnByaW50ZihidWYgKyByZXQsIFJEX0JVRiAtIHJldCwgIlxuTGluayVkXG4iLCBpKTsKKwkJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LCBTRFdfU0hJTV9DVExTQ0FQKGkpKTsKKwkJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LCBTRFdfU0hJTV9DVExTMENNKGkpKTsKKwkJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LCBTRFdfU0hJTV9DVExTMUNNKGkpKTsKKwkJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LCBTRFdfU0hJTV9DVExTMkNNKGkpKTsKKwkJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LCBTRFdfU0hJTV9DVExTM0NNKGkpKTsKKwkJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LCBTRFdfU0hJTV9QQ01TQ0FQKGkpKTsKKworCQlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LCAiXG4gUENNU3lDSCByZWdpc3RlcnNcbiIpOworCisJCS8qCisJCSAqIHRoZSB2YWx1ZSAxMCBpcyB0aGUgbnVtYmVyIG9mIFBESXMuIFdlIHdpbGwgbmVlZCBhCisJCSAqIGNsZWFudXAgdG8gcmVtb3ZlIGhhcmQtY29kZWQgSW50ZWwgY29uZmlndXJhdGlvbnMKKwkJICogZnJvbSBjYWRlbmNlX21hc3Rlci5jCisJCSAqLworCQlmb3IgKGogPSAwOyBqIDwgMTA7IGorKykgeworCQkJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LAorCQkJCQlTRFdfU0hJTV9QQ01TWUNITShpLCBqKSk7CisJCQlyZXQgKz0gaW50ZWxfc3ByaW50ZihzLCBmYWxzZSwgYnVmLCByZXQsCisJCQkJCVNEV19TSElNX1BDTVNZQ0hDKGksIGopKTsKKwkJfQorCQlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LCAiXG4gUERNU0NBUCwgSU9DVEwsIENUTUNUTFxuIik7CisKKwkJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LCBTRFdfU0hJTV9QRE1TQ0FQKGkpKTsKKwkJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LCBTRFdfU0hJTV9JT0NUTChpKSk7CisJCXJldCArPSBpbnRlbF9zcHJpbnRmKHMsIGZhbHNlLCBidWYsIHJldCwgU0RXX1NISU1fQ1RNQ1RMKGkpKTsKKwl9CisKKwlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LCAiXG5XYWtlIHJlZ2lzdGVyc1xuIik7CisJcmV0ICs9IGludGVsX3NwcmludGYocywgZmFsc2UsIGJ1ZiwgcmV0LCBTRFdfU0hJTV9XQUtFRU4pOworCXJldCArPSBpbnRlbF9zcHJpbnRmKHMsIGZhbHNlLCBidWYsIHJldCwgU0RXX1NISU1fV0FLRVNUUyk7CisKKwlyZXQgKz0gc2NucHJpbnRmKGJ1ZiArIHJldCwgUkRfQlVGIC0gcmV0LCAiXG5BTEggU1RSTXpDRkdcbiIpOworCWZvciAoaSA9IDA7IGkgPCBTRFdfQUxIX05VTV9TVFJFQU1TOyBpKyspCisJCXJldCArPSBpbnRlbF9zcHJpbnRmKGEsIHRydWUsIGJ1ZiwgcmV0LCBTRFdfQUxIX1NUUk1aQ0ZHKGkpKTsKKworCXNlcV9wcmludGYoc19maWxlLCAiJXMiLCBidWYpOworCWtmcmVlKGJ1Zik7CisKKwlyZXR1cm4gMDsKK30KK0RFRklORV9TSE9XX0FUVFJJQlVURShpbnRlbF9yZWcpOworCitzdGF0aWMgdm9pZCBpbnRlbF9kZWJ1Z2ZzX2luaXQoc3RydWN0IHNkd19pbnRlbCAqc2R3KQoreworCXN0cnVjdCBkZW50cnkgKnJvb3QgPSBzZHctPmNkbnMuYnVzLmRlYnVnZnM7CisKKwlpZiAoIXJvb3QpCisJCXJldHVybjsKKworCXNkdy0+ZGVidWdmcyA9IGRlYnVnZnNfY3JlYXRlX2RpcigiaW50ZWwtc2R3Iiwgcm9vdCk7CisKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJpbnRlbC1yZWdpc3RlcnMiLCAwNDAwLCBzZHctPmRlYnVnZnMsIHNkdywKKwkJCSAgICAmaW50ZWxfcmVnX2ZvcHMpOworCisJc2R3X2NkbnNfZGVidWdmc19pbml0KCZzZHctPmNkbnMsIHNkdy0+ZGVidWdmcyk7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2RlYnVnZnNfZXhpdChzdHJ1Y3Qgc2R3X2ludGVsICpzZHcpCit7CisJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHNkdy0+ZGVidWdmcyk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgaW50ZWxfZGVidWdmc19pbml0KHN0cnVjdCBzZHdfaW50ZWwgKnNkdykge30KK3N0YXRpYyB2b2lkIGludGVsX2RlYnVnZnNfZXhpdChzdHJ1Y3Qgc2R3X2ludGVsICpzZHcpIHt9CisjZW5kaWYgLyogQ09ORklHX0RFQlVHX0ZTICovCisKKy8qCiAgKiBzaGltIG9wcwogICovCiAKQEAgLTI4OSw2ICs0MDksMTYgQEAgaW50ZWxfcGRpX2dldF9jaF9jYXAoc3RydWN0IHNkd19pbnRlbCAqc2R3LCB1bnNpZ25lZCBpbnQgcGRpX251bSwgYm9vbCBwY20pCiAKIAlpZiAocGNtKSB7CiAJCWNvdW50ID0gaW50ZWxfcmVhZHcoc2hpbSwgU0RXX1NISU1fUENNU1lDSEMobGlua19pZCwgcGRpX251bSkpOworCisJCS8qCisJCSAqIFdPUktBUk9VTkQ6IG9uIGFsbCBleGlzdGluZyBJbnRlbCBjb250cm9sbGVycywgcGRpCisJCSAqIG51bWJlciAyIHJlcG9ydHMgY2hhbm5lbCBjb3VudCBhcyAxIGV2ZW4gdGhvdWdoIGl0CisJCSAqIHN1cHBvcnRzIDggY2hhbm5lbHMuIFBlcmZvcm1pbmcgaGFyZGNvZGluZyBmb3IgcGRpCisJCSAqIG51bWJlciAyLgorCQkgKi8KKwkJaWYgKHBkaV9udW0gPT0gMikKKwkJCWNvdW50ID0gNzsKKwogCX0gZWxzZSB7CiAJCWNvdW50ID0gaW50ZWxfcmVhZHcoc2hpbSwgU0RXX1NISU1fUERNU0NBUChsaW5rX2lkKSk7CiAJCWNvdW50ID0gKChjb3VudCAmIFNEV19TSElNX1BETVNDQVBfQ1BTUykgPj4KQEAgLTM5Nyw4ICs1MjcsMTAgQEAgc3RhdGljIGludCBpbnRlbF9jb25maWdfc3RyZWFtKHN0cnVjdCBzZHdfaW50ZWwgKnNkdywKIAkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKIAkJCSAgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKmh3X3BhcmFtcywgaW50IGxpbmtfaWQpCiB7Ci0JaWYgKHNkdy0+cmVzLT5vcHMgJiYgc2R3LT5yZXMtPm9wcy0+Y29uZmlnX3N0cmVhbSkKLQkJcmV0dXJuIHNkdy0+cmVzLT5vcHMtPmNvbmZpZ19zdHJlYW0oc2R3LT5yZXMtPmFyZywKKwlzdHJ1Y3Qgc2R3X2ludGVsX2xpbmtfcmVzICpyZXMgPSBzZHctPnJlczsKKworCWlmIChyZXMtPm9wcyAmJiByZXMtPm9wcy0+Y29uZmlnX3N0cmVhbSAmJiByZXMtPmFyZykKKwkJcmV0dXJuIHJlcy0+b3BzLT5jb25maWdfc3RyZWFtKHJlcy0+YXJnLAogCQkJCXN1YnN0cmVhbSwgZGFpLCBod19wYXJhbXMsIGxpbmtfaWQpOwogCiAJcmV0dXJuIC1FSU87CkBAIC02NDksNiArNzgxLDE5IEBAIGludGVsX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIGludGVsX3NodXRkb3duKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJc3RydWN0IHNkd19jZG5zX2RtYV9kYXRhICpkbWE7CisKKwlkbWEgPSBzbmRfc29jX2RhaV9nZXRfZG1hX2RhdGEoZGFpLCBzdWJzdHJlYW0pOworCWlmICghZG1hKQorCQlyZXR1cm47CisKKwlzbmRfc29jX2RhaV9zZXRfZG1hX2RhdGEoZGFpLCBzdWJzdHJlYW0sIE5VTEwpOworCWtmcmVlKGRtYSk7Cit9CisKIHN0YXRpYyBpbnQgaW50ZWxfcGNtX3NldF9zZHdfc3RyZWFtKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAogCQkJCSAgICB2b2lkICpzdHJlYW0sIGludCBkaXJlY3Rpb24pCiB7CkBAIC02NjQsMTQgKzgwOSwxNCBAQCBzdGF0aWMgaW50IGludGVsX3BkbV9zZXRfc2R3X3N0cmVhbShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYWlfb3BzIGludGVsX3BjbV9kYWlfb3BzID0gewogCS5od19wYXJhbXMgPSBpbnRlbF9od19wYXJhbXMsCiAJLmh3X2ZyZWUgPSBpbnRlbF9od19mcmVlLAotCS5zaHV0ZG93biA9IHNkd19jZG5zX3NodXRkb3duLAorCS5zaHV0ZG93biA9IGludGVsX3NodXRkb3duLAogCS5zZXRfc2R3X3N0cmVhbSA9IGludGVsX3BjbV9zZXRfc2R3X3N0cmVhbSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYWlfb3BzIGludGVsX3BkbV9kYWlfb3BzID0gewogCS5od19wYXJhbXMgPSBpbnRlbF9od19wYXJhbXMsCiAJLmh3X2ZyZWUgPSBpbnRlbF9od19mcmVlLAotCS5zaHV0ZG93biA9IHNkd19jZG5zX3NodXRkb3duLAorCS5zaHV0ZG93biA9IGludGVsX3NodXRkb3duLAogCS5zZXRfc2R3X3N0cmVhbSA9IGludGVsX3BkbV9zZXRfc2R3X3N0cmVhbSwKIH07CiAKQEAgLTc5NiwyMSArOTQxLDQ0IEBAIHN0YXRpYyBpbnQgaW50ZWxfcmVnaXN0ZXJfZGFpKHN0cnVjdCBzZHdfaW50ZWwgKnNkdykKIAkJCQkJICBkYWlzLCBudW1fZGFpKTsKIH0KIAorc3RhdGljIGludCBzZHdfbWFzdGVyX3JlYWRfaW50ZWxfcHJvcChzdHJ1Y3Qgc2R3X2J1cyAqYnVzKQoreworCXN0cnVjdCBzZHdfbWFzdGVyX3Byb3AgKnByb3AgPSAmYnVzLT5wcm9wOworCXN0cnVjdCBmd25vZGVfaGFuZGxlICpsaW5rOworCWNoYXIgbmFtZVszMl07CisJdTMyIHF1aXJrX21hc2s7CisKKwkvKiBGaW5kIG1hc3RlciBoYW5kbGUgKi8KKwlzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksCisJCSAibWlwaS1zZHctbGluay0lZC1zdWJwcm9wZXJ0aWVzIiwgYnVzLT5saW5rX2lkKTsKKworCWxpbmsgPSBkZXZpY2VfZ2V0X25hbWVkX2NoaWxkX25vZGUoYnVzLT5kZXYsIG5hbWUpOworCWlmICghbGluaykgeworCQlkZXZfZXJyKGJ1cy0+ZGV2LCAiTWFzdGVyIG5vZGUgJXMgbm90IGZvdW5kXG4iLCBuYW1lKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKGxpbmssCisJCQkJICJpbnRlbC1zZHctaXAtY2xvY2siLAorCQkJCSAmcHJvcC0+bWNsa19mcmVxKTsKKworCWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMihsaW5rLAorCQkJCSAiaW50ZWwtcXVpcmstbWFzayIsCisJCQkJICZxdWlya19tYXNrKTsKKworCWlmIChxdWlya19tYXNrICYgU0RXX0lOVEVMX1FVSVJLX01BU0tfQlVTX0RJU0FCTEUpCisJCXByb3AtPmh3X2Rpc2FibGVkID0gdHJ1ZTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGludGVsX3Byb3BfcmVhZChzdHJ1Y3Qgc2R3X2J1cyAqYnVzKQogewogCS8qIEluaXRpYWxpemUgd2l0aCBkZWZhdWx0IGhhbmRsZXIgdG8gcmVhZCBhbGwgRGlzQ28gcHJvcGVydGllcyAqLwogCXNkd19tYXN0ZXJfcmVhZF9wcm9wKGJ1cyk7CiAKLQkvKiBCSU9TIGlzIG5vdCBnaXZpbmcgc29tZSB2YWx1ZXMgY29ycmVjdGx5LiBTbywgbGV0cyBvdmVycmlkZSB0aGVtICovCi0JYnVzLT5wcm9wLm51bV9jbGtfZnJlcSA9IDE7Ci0JYnVzLT5wcm9wLmNsa19mcmVxID0gZGV2bV9rY2FsbG9jKGJ1cy0+ZGV2LCBidXMtPnByb3AubnVtX2Nsa19mcmVxLAotCQkJCQkgIHNpemVvZigqYnVzLT5wcm9wLmNsa19mcmVxKSwKLQkJCQkJICBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1cy0+cHJvcC5jbGtfZnJlcSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlidXMtPnByb3AuY2xrX2ZyZXFbMF0gPSBidXMtPnByb3AubWF4X2Nsa19mcmVxOwotCWJ1cy0+cHJvcC5lcnJfdGhyZXNob2xkID0gNTsKKwkvKiByZWFkIEludGVsLXNwZWNpZmljIHByb3BlcnRpZXMgKi8KKwlzZHdfbWFzdGVyX3JlYWRfaW50ZWxfcHJvcChidXMpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC04NjEsNiArMTAyOSwxMiBAQCBzdGF0aWMgaW50IGludGVsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWdvdG8gZXJyX21hc3Rlcl9yZWc7CiAJfQogCisJaWYgKHNkdy0+Y2Rucy5idXMucHJvcC5od19kaXNhYmxlZCkgeworCQlkZXZfaW5mbygmcGRldi0+ZGV2LCAiU291bmRXaXJlIG1hc3RlciAlZCBpcyBkaXNhYmxlZCwgaWdub3JpbmdcbiIsCisJCQkgc2R3LT5jZG5zLmJ1cy5saW5rX2lkKTsKKwkJcmV0dXJuIDA7CisJfQorCiAJLyogSW5pdGlhbGl6ZSBzaGltIGFuZCBjb250cm9sbGVyICovCiAJaW50ZWxfbGlua19wb3dlcl91cChzZHcpOwogCWludGVsX3NoaW1faW5pdChzZHcpOwpAQCAtODk2LDYgKzEwNzAsOCBAQCBzdGF0aWMgaW50IGludGVsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWdvdG8gZXJyX2RhaTsKIAl9CiAKKwlpbnRlbF9kZWJ1Z2ZzX2luaXQoc2R3KTsKKwogCXJldHVybiAwOwogCiBlcnJfZGFpOgpAQCAtOTEyLDggKzEwODgsMTEgQEAgc3RhdGljIGludCBpbnRlbF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCXNkdyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCi0JZnJlZV9pcnEoc2R3LT5yZXMtPmlycSwgc2R3KTsKLQlzbmRfc29jX3VucmVnaXN0ZXJfY29tcG9uZW50KHNkdy0+Y2Rucy5kZXYpOworCWlmICghc2R3LT5jZG5zLmJ1cy5wcm9wLmh3X2Rpc2FibGVkKSB7CisJCWludGVsX2RlYnVnZnNfZXhpdChzZHcpOworCQlmcmVlX2lycShzZHctPnJlcy0+aXJxLCBzZHcpOworCQlzbmRfc29jX3VucmVnaXN0ZXJfY29tcG9uZW50KHNkdy0+Y2Rucy5kZXYpOworCX0KIAlzZHdfZGVsZXRlX2J1c19tYXN0ZXIoJnNkdy0+Y2Rucy5idXMpOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NvdW5kd2lyZS9pbnRlbF9pbml0LmMgYi9kcml2ZXJzL3NvdW5kd2lyZS9pbnRlbF9pbml0LmMKaW5kZXggNzA2MzdhMC4uYjc0YzJmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zb3VuZHdpcmUvaW50ZWxfaW5pdC5jCisrKyBiL2RyaXZlcnMvc291bmR3aXJlL2ludGVsX2luaXQuYwpAQCAtMjIsNiArMjIsMTAgQEAKICNkZWZpbmUgU0RXX0xJTktfQkFTRQkJMHgzMDAwMAogI2RlZmluZSBTRFdfTElOS19TSVpFCQkweDEwMDAwCiAKK3N0YXRpYyBpbnQgbGlua19tYXNrOworbW9kdWxlX3BhcmFtX25hbWVkKHNkd19saW5rX21hc2ssIGxpbmtfbWFzaywgaW50LCAwNDQ0KTsKK01PRFVMRV9QQVJNX0RFU0Moc2R3X2xpbmtfbWFzaywgIkludGVsIGxpbmsgbWFzayAob25lIGJpdCBwZXIgbGluaykiKTsKKwogc3RydWN0IHNkd19saW5rX2RhdGEgewogCXN0cnVjdCBzZHdfaW50ZWxfbGlua19yZXMgcmVzOwogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CkBAIC0xMTEsNiArMTE1LDEzIEBAIHN0YXRpYyBzdHJ1Y3Qgc2R3X2ludGVsX2N0eAogCiAJLyogQ3JlYXRlIFNEVyBNYXN0ZXIgZGV2aWNlcyAqLwogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisJCWlmIChsaW5rX21hc2sgJiYgIShsaW5rX21hc2sgJiBCSVQoaSkpKSB7CisJCQlkZXZfZGJnKCZhZGV2LT5kZXYsCisJCQkJIkxpbmsgJWQgbWFza2VkLCB3aWxsIG5vdCBiZSBlbmFibGVkXG4iLCBpKTsKKwkJCWxpbmsrKzsKKwkJCWNvbnRpbnVlOworCQl9CisKIAkJbGluay0+cmVzLmlycSA9IHJlcy0+aXJxOwogCQlsaW5rLT5yZXMucmVnaXN0ZXJzID0gcmVzLT5tbWlvX2Jhc2UgKyBTRFdfTElOS19CQVNFCiAJCQkJCSsgKFNEV19MSU5LX1NJWkUgKiBpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc291bmR3aXJlL21pcGlfZGlzY28uYyBiL2RyaXZlcnMvc291bmR3aXJlL21pcGlfZGlzY28uYwppbmRleCA3OWZlZTFiLi44NDRlNmIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NvdW5kd2lyZS9taXBpX2Rpc2NvLmMKKysrIGIvZHJpdmVycy9zb3VuZHdpcmUvbWlwaV9kaXNjby5jCkBAIC02MCw4ICs2MCw3IEBAIGludCBzZHdfbWFzdGVyX3JlYWRfcHJvcChzdHJ1Y3Qgc2R3X2J1cyAqYnVzKQogCQkJCSAibWlwaS1zZHctbWF4LWNsb2NrLWZyZXF1ZW5jeSIsCiAJCQkJICZwcm9wLT5tYXhfY2xrX2ZyZXEpOwogCi0JbnZhbCA9IGZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMl9hcnJheShsaW5rLAotCQkJIm1pcGktc2R3LWNsb2NrLWZyZXF1ZW5jaWVzLXN1cHBvcnRlZCIsIE5VTEwsIDApOworCW52YWwgPSBmd25vZGVfcHJvcGVydHlfY291bnRfdTMyKGxpbmssICJtaXBpLXNkdy1jbG9jay1mcmVxdWVuY2llcy1zdXBwb3J0ZWQiKTsKIAlpZiAobnZhbCA+IDApIHsKIAkJcHJvcC0+bnVtX2Nsa19mcmVxID0gbnZhbDsKIAkJcHJvcC0+Y2xrX2ZyZXEgPSBkZXZtX2tjYWxsb2MoYnVzLT5kZXYsIHByb3AtPm51bV9jbGtfZnJlcSwKQEAgLTg3LDggKzg2LDcgQEAgaW50IHNkd19tYXN0ZXJfcmVhZF9wcm9wKHN0cnVjdCBzZHdfYnVzICpidXMpCiAJCX0KIAl9CiAKLQludmFsID0gZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KGxpbmssCi0JCQkibWlwaS1zZHctc3VwcG9ydGVkLWNsb2NrLWdlYXJzIiwgTlVMTCwgMCk7CisJbnZhbCA9IGZ3bm9kZV9wcm9wZXJ0eV9jb3VudF91MzIobGluaywgIm1pcGktc2R3LXN1cHBvcnRlZC1jbG9jay1nZWFycyIpOwogCWlmIChudmFsID4gMCkgewogCQlwcm9wLT5udW1fY2xrX2dlYXJzID0gbnZhbDsKIAkJcHJvcC0+Y2xrX2dlYXJzID0gZGV2bV9rY2FsbG9jKGJ1cy0+ZGV2LCBwcm9wLT5udW1fY2xrX2dlYXJzLApAQCAtMTM0LDggKzEzMiw3IEBAIHN0YXRpYyBpbnQgc2R3X3NsYXZlX3JlYWRfZHAwKHN0cnVjdCBzZHdfc2xhdmUgKnNsYXZlLAogCWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMihwb3J0LCAibWlwaS1zZHctcG9ydC1taW4td29yZGxlbmd0aCIsCiAJCQkJICZkcDAtPm1pbl93b3JkKTsKIAotCW52YWwgPSBmd25vZGVfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkocG9ydCwKLQkJCSJtaXBpLXNkdy1wb3J0LXdvcmRsZW5ndGgtY29uZmlncyIsIE5VTEwsIDApOworCW52YWwgPSBmd25vZGVfcHJvcGVydHlfY291bnRfdTMyKHBvcnQsICJtaXBpLXNkdy1wb3J0LXdvcmRsZW5ndGgtY29uZmlncyIpOwogCWlmIChudmFsID4gMCkgewogCiAJCWRwMC0+bnVtX3dvcmRzID0gbnZhbDsKQEAgLTE5Myw4ICsxOTAsNyBAQCBzdGF0aWMgaW50IHNkd19zbGF2ZV9yZWFkX2RwbihzdHJ1Y3Qgc2R3X3NsYXZlICpzbGF2ZSwKIAkJZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJtaXBpLXNkdy1wb3J0LW1pbi13b3JkbGVuZ3RoIiwKIAkJCQkJICZkcG5baV0ubWluX3dvcmQpOwogCi0JCW52YWwgPSBmd25vZGVfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkobm9kZSwKLQkJCQkibWlwaS1zZHctcG9ydC13b3JkbGVuZ3RoLWNvbmZpZ3MiLCBOVUxMLCAwKTsKKwkJbnZhbCA9IGZ3bm9kZV9wcm9wZXJ0eV9jb3VudF91MzIobm9kZSwgIm1pcGktc2R3LXBvcnQtd29yZGxlbmd0aC1jb25maWdzIik7CiAJCWlmIChudmFsID4gMCkgewogCQkJZHBuW2ldLm51bV93b3JkcyA9IG52YWw7CiAJCQlkcG5baV0ud29yZHMgPSBkZXZtX2tjYWxsb2MoJnNsYXZlLT5kZXYsCkBAIC0yMzMsOCArMjI5LDcgQEAgc3RhdGljIGludCBzZHdfc2xhdmVfcmVhZF9kcG4oc3RydWN0IHNkd19zbGF2ZSAqc2xhdmUsCiAJCWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAibWlwaS1zZHctbWF4LWNoYW5uZWwtbnVtYmVyIiwKIAkJCQkJICZkcG5baV0ubWF4X2NoKTsKIAotCQludmFsID0gZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KG5vZGUsCi0JCQkJIm1pcGktc2R3LWNoYW5uZWwtbnVtYmVyLWxpc3QiLCBOVUxMLCAwKTsKKwkJbnZhbCA9IGZ3bm9kZV9wcm9wZXJ0eV9jb3VudF91MzIobm9kZSwgIm1pcGktc2R3LWNoYW5uZWwtbnVtYmVyLWxpc3QiKTsKIAkJaWYgKG52YWwgPiAwKSB7CiAJCQlkcG5baV0ubnVtX2NoID0gbnZhbDsKIAkJCWRwbltpXS5jaCA9IGRldm1fa2NhbGxvYygmc2xhdmUtPmRldiwgZHBuW2ldLm51bV9jaCwKQEAgLTI0OCw4ICsyNDMsNyBAQCBzdGF0aWMgaW50IHNkd19zbGF2ZV9yZWFkX2RwbihzdHJ1Y3Qgc2R3X3NsYXZlICpzbGF2ZSwKIAkJCQkJZHBuW2ldLmNoLCBkcG5baV0ubnVtX2NoKTsKIAkJfQogCi0JCW52YWwgPSBmd25vZGVfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkobm9kZSwKLQkJCQkibWlwaS1zZHctY2hhbm5lbC1jb21iaW5hdGlvbi1saXN0IiwgTlVMTCwgMCk7CisJCW52YWwgPSBmd25vZGVfcHJvcGVydHlfY291bnRfdTMyKG5vZGUsICJtaXBpLXNkdy1jaGFubmVsLWNvbWJpbmF0aW9uLWxpc3QiKTsKIAkJaWYgKG52YWwgPiAwKSB7CiAJCQlkcG5baV0ubnVtX2NoX2NvbWJpbmF0aW9ucyA9IG52YWw7CiAJCQlkcG5baV0uY2hfY29tYmluYXRpb25zID0gZGV2bV9rY2FsbG9jKCZzbGF2ZS0+ZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb3VuZHdpcmUvc2xhdmUuYyBiL2RyaXZlcnMvc291bmR3aXJlL3NsYXZlLmMKaW5kZXggZjM5YTU4MS4uNDhhNjNjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zb3VuZHdpcmUvc2xhdmUuYworKysgYi9kcml2ZXJzL3NvdW5kd2lyZS9zbGF2ZS5jCkBAIC0yLDYgKzIsNyBAQAogLy8gQ29weXJpZ2h0KGMpIDIwMTUtMTcgSW50ZWwgQ29ycG9yYXRpb24uCiAKICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KICNpbmNsdWRlIDxsaW51eC9zb3VuZHdpcmUvc2R3Lmg+CiAjaW5jbHVkZSA8bGludXgvc291bmR3aXJlL3Nkd190eXBlLmg+CiAjaW5jbHVkZSAiYnVzLmgiCkBAIC0zNSw2ICszNiw3IEBAIHN0YXRpYyBpbnQgc2R3X3NsYXZlX2FkZChzdHJ1Y3Qgc2R3X2J1cyAqYnVzLAogCiAJc2xhdmUtPmRldi5yZWxlYXNlID0gc2R3X3NsYXZlX3JlbGVhc2U7CiAJc2xhdmUtPmRldi5idXMgPSAmc2R3X2J1c190eXBlOworCXNsYXZlLT5kZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KHRvX29mX25vZGUoZndub2RlKSk7CiAJc2xhdmUtPmJ1cyA9IGJ1czsKIAlzbGF2ZS0+c3RhdHVzID0gU0RXX1NMQVZFX1VOQVRUQUNIRUQ7CiAJc2xhdmUtPmRldl9udW0gPSAwOwpAQCAtNTYsNiArNTgsNyBAQCBzdGF0aWMgaW50IHNkd19zbGF2ZV9hZGQoc3RydWN0IHNkd19idXMgKmJ1cywKIAkJbXV0ZXhfdW5sb2NrKCZidXMtPmJ1c19sb2NrKTsKIAkJcHV0X2RldmljZSgmc2xhdmUtPmRldik7CiAJfQorCXNkd19zbGF2ZV9kZWJ1Z2ZzX2luaXQoc2xhdmUpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTExMiwzICsxMTUsNTMgQEAgaW50IHNkd19hY3BpX2ZpbmRfc2xhdmVzKHN0cnVjdCBzZHdfYnVzICpidXMpCiB9CiAKICNlbmRpZgorCisvKgorICogc2R3X29mX2ZpbmRfc2xhdmVzKCkgLSBGaW5kIFNsYXZlIGRldmljZXMgaW4gbWFzdGVyIGRldmljZSB0cmVlIG5vZGUKKyAqIEBidXM6IFNEVyBidXMgaW5zdGFuY2UKKyAqCisgKiBTY2FucyBNYXN0ZXIgRFQgbm9kZSBmb3IgU0RXIGNoaWxkIFNsYXZlIGRldmljZXMgYW5kIHJlZ2lzdGVycyBpdC4KKyAqLworaW50IHNkd19vZl9maW5kX3NsYXZlcyhzdHJ1Y3Qgc2R3X2J1cyAqYnVzKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGJ1cy0+ZGV2OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZTsKKworCWZvcl9lYWNoX2NoaWxkX29mX25vZGUoYnVzLT5kZXYtPm9mX25vZGUsIG5vZGUpIHsKKwkJaW50IGxpbmtfaWQsIHNkd192ZXJzaW9uLCByZXQsIGxlbjsKKwkJY29uc3QgY2hhciAqY29tcGF0ID0gTlVMTDsKKwkJc3RydWN0IHNkd19zbGF2ZV9pZCBpZDsKKwkJY29uc3QgX19iZTMyICphZGRyOworCisJCWNvbXBhdCA9IG9mX2dldF9wcm9wZXJ0eShub2RlLCAiY29tcGF0aWJsZSIsIE5VTEwpOworCQlpZiAoIWNvbXBhdCkKKwkJCWNvbnRpbnVlOworCisJCXJldCA9IHNzY2FuZihjb21wYXQsICJzZHclMDF4JTA0aHglMDRoeCUwMmhoeCIsICZzZHdfdmVyc2lvbiwKKwkJCSAgICAgJmlkLm1mZ19pZCwgJmlkLnBhcnRfaWQsICZpZC5jbGFzc19pZCk7CisKKwkJaWYgKHJldCAhPSA0KSB7CisJCQlkZXZfZXJyKGRldiwgIkludmFsaWQgY29tcGF0aWJsZSBzdHJpbmcgZm91bmQgJXNcbiIsCisJCQkJY29tcGF0KTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJYWRkciA9IG9mX2dldF9wcm9wZXJ0eShub2RlLCAicmVnIiwgJmxlbik7CisJCWlmICghYWRkciB8fCAobGVuIDwgMiAqIHNpemVvZih1MzIpKSkgeworCQkJZGV2X2VycihkZXYsICJJbnZhbGlkIExpbmsgYW5kIEluc3RhbmNlIElEXG4iKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJbGlua19pZCA9IGJlMzJfdG9fY3B1cChhZGRyKyspOworCQlpZC51bmlxdWVfaWQgPSBiZTMyX3RvX2NwdXAoYWRkcik7CisJCWlkLnNkd192ZXJzaW9uID0gc2R3X3ZlcnNpb247CisKKwkJLyogQ2hlY2sgZm9yIGxpbmtfaWQgbWF0Y2ggKi8KKwkJaWYgKGxpbmtfaWQgIT0gYnVzLT5saW5rX2lkKQorCQkJY29udGludWU7CisKKwkJc2R3X3NsYXZlX2FkZChidXMsICZpZCwgb2ZfZndub2RlX2hhbmRsZShub2RlKSk7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NvdW5kd2lyZS9zdHJlYW0uYyBiL2RyaXZlcnMvc291bmR3aXJlL3N0cmVhbS5jCmluZGV4IGEwNDc2NzUuLmU2OWY5NGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc291bmR3aXJlL3N0cmVhbS5jCisrKyBiL2RyaXZlcnMvc291bmR3aXJlL3N0cmVhbS5jCkBAIC0yMSwzNyArMjEsMzkgQEAKICAqIFRoZSByb3dzIGFyZSBhcnJhbmdlZCBhcyBwZXIgdGhlIGFycmF5IGluZGV4IHZhbHVlIHByb2dyYW1tZWQKICAqIGluIHJlZ2lzdGVyLiBUaGUgaW5kZXggMTUgaGFzIGR1bW15IHZhbHVlIDAgaW4gb3JkZXIgdG8gZmlsbCBob2xlLgogICovCi1pbnQgcm93c1tTRFdfRlJBTUVfUk9XU10gPSB7NDgsIDUwLCA2MCwgNjQsIDc1LCA4MCwgMTI1LCAxNDcsCitpbnQgc2R3X3Jvd3NbU0RXX0ZSQU1FX1JPV1NdID0gezQ4LCA1MCwgNjAsIDY0LCA3NSwgODAsIDEyNSwgMTQ3LAogCQkJOTYsIDEwMCwgMTIwLCAxMjgsIDE1MCwgMTYwLCAyNTAsIDAsCiAJCQkxOTIsIDIwMCwgMjQwLCAyNTYsIDcyLCAxNDQsIDkwLCAxODB9OwogCi1pbnQgY29sc1tTRFdfRlJBTUVfQ09MU10gPSB7MiwgNCwgNiwgOCwgMTAsIDEyLCAxNCwgMTZ9OworaW50IHNkd19jb2xzW1NEV19GUkFNRV9DT0xTXSA9IHsyLCA0LCA2LCA4LCAxMCwgMTIsIDE0LCAxNn07CiAKLXN0YXRpYyBpbnQgc2R3X2ZpbmRfY29sX2luZGV4KGludCBjb2wpCitpbnQgc2R3X2ZpbmRfY29sX2luZGV4KGludCBjb2wpCiB7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgU0RXX0ZSQU1FX0NPTFM7IGkrKykgewotCQlpZiAoY29sc1tpXSA9PSBjb2wpCisJCWlmIChzZHdfY29sc1tpXSA9PSBjb2wpCiAJCQlyZXR1cm4gaTsKIAl9CiAKIAlwcl93YXJuKCJSZXF1ZXN0ZWQgY29sdW1uIG5vdCBmb3VuZCwgc2VsZWN0aW5nIGxvd2VzdCBjb2x1bW4gbm86IDJcbiIpOwogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChzZHdfZmluZF9jb2xfaW5kZXgpOwogCi1zdGF0aWMgaW50IHNkd19maW5kX3Jvd19pbmRleChpbnQgcm93KQoraW50IHNkd19maW5kX3Jvd19pbmRleChpbnQgcm93KQogewogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IFNEV19GUkFNRV9ST1dTOyBpKyspIHsKLQkJaWYgKHJvd3NbaV0gPT0gcm93KQorCQlpZiAoc2R3X3Jvd3NbaV0gPT0gcm93KQogCQkJcmV0dXJuIGk7CiAJfQogCiAJcHJfd2FybigiUmVxdWVzdGVkIHJvdyBub3QgZm91bmQsIHNlbGVjdGluZyBsb3dlc3Qgcm93IG5vOiA0OFxuIik7CiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKHNkd19maW5kX3Jvd19pbmRleCk7CiAKIHN0YXRpYyBpbnQgX3Nkd19wcm9ncmFtX3NsYXZlX3BvcnRfcGFyYW1zKHN0cnVjdCBzZHdfYnVzICpidXMsCiAJCQkJCSAgc3RydWN0IHNkd19zbGF2ZSAqc2xhdmUsCkBAIC0zNjcsNyArMzY5LDcgQEAgc3RhdGljIGludCBzZHdfZW5hYmxlX2Rpc2FibGVfbWFzdGVyX3BvcnRzKHN0cnVjdCBzZHdfbWFzdGVyX3J1bnRpbWUgKm1fcnQsCiBzdGF0aWMgaW50IHNkd19lbmFibGVfZGlzYWJsZV9wb3J0cyhzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0LCBib29sIGVuKQogewogCXN0cnVjdCBzZHdfcG9ydF9ydW50aW1lICpzX3BvcnQsICptX3BvcnQ7Ci0Jc3RydWN0IHNkd19zbGF2ZV9ydW50aW1lICpzX3J0ID0gTlVMTDsKKwlzdHJ1Y3Qgc2R3X3NsYXZlX3J1bnRpbWUgKnNfcnQ7CiAJaW50IHJldCA9IDA7CiAKIAkvKiBFbmFibGUvRGlzYWJsZSBTbGF2ZSBwb3J0KHMpICovCkBAIC00MTUsNyArNDE3LDcgQEAgc3RhdGljIGludCBzZHdfcHJlcF9kZXByZXBfc2xhdmVfcG9ydHMoc3RydWN0IHNkd19idXMgKmJ1cywKIAkJCQkgICAgICAgc3RydWN0IHNkd19wb3J0X3J1bnRpbWUgKnBfcnQsCiAJCQkJICAgICAgIGJvb2wgcHJlcCkKIHsKLQlzdHJ1Y3QgY29tcGxldGlvbiAqcG9ydF9yZWFkeSA9IE5VTEw7CisJc3RydWN0IGNvbXBsZXRpb24gKnBvcnRfcmVhZHk7CiAJc3RydWN0IHNkd19kcG5fcHJvcCAqZHBuX3Byb3A7CiAJc3RydWN0IHNkd19wcmVwYXJlX2NoIHByZXBfY2g7CiAJdW5zaWduZWQgaW50IHRpbWVfbGVmdDsKQEAgLTUzNSw3ICs1MzcsNyBAQCBzdGF0aWMgaW50IHNkd19wcmVwX2RlcHJlcF9tYXN0ZXJfcG9ydHMoc3RydWN0IHNkd19tYXN0ZXJfcnVudGltZSAqbV9ydCwKICAqLwogc3RhdGljIGludCBzZHdfcHJlcF9kZXByZXBfcG9ydHMoc3RydWN0IHNkd19tYXN0ZXJfcnVudGltZSAqbV9ydCwgYm9vbCBwcmVwKQogewotCXN0cnVjdCBzZHdfc2xhdmVfcnVudGltZSAqc19ydCA9IE5VTEw7CisJc3RydWN0IHNkd19zbGF2ZV9ydW50aW1lICpzX3J0OwogCXN0cnVjdCBzZHdfcG9ydF9ydW50aW1lICpwX3J0OwogCWludCByZXQgPSAwOwogCkBAIC02MDMsNyArNjA1LDcgQEAgc3RhdGljIGludCBzZHdfbm90aWZ5X2NvbmZpZyhzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0KQogICovCiBzdGF0aWMgaW50IHNkd19wcm9ncmFtX3BhcmFtcyhzdHJ1Y3Qgc2R3X2J1cyAqYnVzKQogewotCXN0cnVjdCBzZHdfbWFzdGVyX3J1bnRpbWUgKm1fcnQgPSBOVUxMOworCXN0cnVjdCBzZHdfbWFzdGVyX3J1bnRpbWUgKm1fcnQ7CiAJaW50IHJldCA9IDA7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1fcnQsICZidXMtPm1fcnRfbGlzdCwgYnVzX25vZGUpIHsKQEAgLTY0MCw4ICs2NDIsOCBAQCBzdGF0aWMgaW50IHNkd19iYW5rX3N3aXRjaChzdHJ1Y3Qgc2R3X2J1cyAqYnVzLCBpbnQgbV9ydF9jb3VudCkKIAlpbnQgY29sX2luZGV4LCByb3dfaW5kZXg7CiAJYm9vbCBtdWx0aV9saW5rOwogCXN0cnVjdCBzZHdfbXNnICp3cl9tc2c7Ci0JdTggKndidWYgPSBOVUxMOwotCWludCByZXQgPSAwOworCXU4ICp3YnVmOworCWludCByZXQ7CiAJdTE2IGFkZHI7CiAKIAl3cl9tc2cgPSBremFsbG9jKHNpemVvZigqd3JfbXNnKSwgR0ZQX0tFUk5FTCk7CkBAIC03MzksOSArNzQxLDkgQEAgc3RhdGljIGludCBzZHdfbWxfc3luY19iYW5rX3N3aXRjaChzdHJ1Y3Qgc2R3X2J1cyAqYnVzKQogCiBzdGF0aWMgaW50IGRvX2Jhbmtfc3dpdGNoKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKIHsKLQlzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0ID0gTlVMTDsKKwlzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0OwogCWNvbnN0IHN0cnVjdCBzZHdfbWFzdGVyX29wcyAqb3BzOwotCXN0cnVjdCBzZHdfYnVzICpidXMgPSBOVUxMOworCXN0cnVjdCBzZHdfYnVzICpidXM7CiAJYm9vbCBtdWx0aV9saW5rID0gZmFsc2U7CiAJaW50IHJldCA9IDA7CiAKQEAgLTg2Myw3ICs4NjUsNyBAQCBFWFBPUlRfU1lNQk9MKHNkd19yZWxlYXNlX3N0cmVhbSk7CiAgKiBzZHdfYWxsb2Nfc3RyZWFtIHNob3VsZCBiZSBjYWxsZWQgb25seSBvbmNlIHBlciBzdHJlYW0uIFR5cGljYWxseQogICogaW52b2tlZCBmcm9tIEFMU0EvQVNvQyBtYWNoaW5lL3BsYXRmb3JtIGRyaXZlci4KICAqLwotc3RydWN0IHNkd19zdHJlYW1fcnVudGltZSAqc2R3X2FsbG9jX3N0cmVhbShjaGFyICpzdHJlYW1fbmFtZSkKK3N0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnNkd19hbGxvY19zdHJlYW0oY29uc3QgY2hhciAqc3RyZWFtX25hbWUpCiB7CiAJc3RydWN0IHNkd19zdHJlYW1fcnVudGltZSAqc3RyZWFtOwogCkBAIC04ODQsNyArODg2LDcgQEAgc3RhdGljIHN0cnVjdCBzZHdfbWFzdGVyX3J1bnRpbWUKICpzZHdfZmluZF9tYXN0ZXJfcnQoc3RydWN0IHNkd19idXMgKmJ1cywKIAkJICAgIHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKIHsKLQlzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0ID0gTlVMTDsKKwlzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0OwogCiAJLyogUmV0cmlldmUgQnVzIGhhbmRsZSBpZiBhbHJlYWR5IGF2YWlsYWJsZSAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkobV9ydCwgJnN0cmVhbS0+bWFzdGVyX2xpc3QsIHN0cmVhbV9ub2RlKSB7CkBAIC05NTMsNyArOTU1LDcgQEAgc3RhdGljIHN0cnVjdCBzZHdfc2xhdmVfcnVudGltZQogCQkgICAgc3RydWN0IHNkd19zdHJlYW1fY29uZmlnICpzdHJlYW1fY29uZmlnLAogCQkgICAgc3RydWN0IHNkd19zdHJlYW1fcnVudGltZSAqc3RyZWFtKQogewotCXN0cnVjdCBzZHdfc2xhdmVfcnVudGltZSAqc19ydCA9IE5VTEw7CisJc3RydWN0IHNkd19zbGF2ZV9ydW50aW1lICpzX3J0OwogCiAJc19ydCA9IGt6YWxsb2Moc2l6ZW9mKCpzX3J0KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzX3J0KQpAQCAtMTI1OSw3ICsxMjYxLDcgQEAgaW50IHNkd19zdHJlYW1fYWRkX21hc3RlcihzdHJ1Y3Qgc2R3X2J1cyAqYnVzLAogCQkJICB1bnNpZ25lZCBpbnQgbnVtX3BvcnRzLAogCQkJICBzdHJ1Y3Qgc2R3X3N0cmVhbV9ydW50aW1lICpzdHJlYW0pCiB7Ci0Jc3RydWN0IHNkd19tYXN0ZXJfcnVudGltZSAqbV9ydCA9IE5VTEw7CisJc3RydWN0IHNkd19tYXN0ZXJfcnVudGltZSAqbV9ydDsKIAlpbnQgcmV0OwogCiAJbXV0ZXhfbG9jaygmYnVzLT5idXNfbG9jayk7CkBAIC0xNDI2LDcgKzE0MjgsNyBAQCBzdHJ1Y3Qgc2R3X2Rwbl9wcm9wICpzZHdfZ2V0X3NsYXZlX2Rwbl9wcm9wKHN0cnVjdCBzZHdfc2xhdmUgKnNsYXZlLAogICovCiBzdGF0aWMgdm9pZCBzZHdfYWNxdWlyZV9idXNfbG9jayhzdHJ1Y3Qgc2R3X3N0cmVhbV9ydW50aW1lICpzdHJlYW0pCiB7Ci0Jc3RydWN0IHNkd19tYXN0ZXJfcnVudGltZSAqbV9ydCA9IE5VTEw7CisJc3RydWN0IHNkd19tYXN0ZXJfcnVudGltZSAqbV9ydDsKIAlzdHJ1Y3Qgc2R3X2J1cyAqYnVzID0gTlVMTDsKIAogCS8qIEl0ZXJhdGUgZm9yIGFsbCBNYXN0ZXIocykgaW4gTWFzdGVyIGxpc3QgKi8KQEAgLTE0NjAsOSArMTQ2Miw5IEBAIHN0YXRpYyB2b2lkIHNkd19yZWxlYXNlX2J1c19sb2NrKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKIAogc3RhdGljIGludCBfc2R3X3ByZXBhcmVfc3RyZWFtKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKIHsKLQlzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0ID0gTlVMTDsKKwlzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0OwogCXN0cnVjdCBzZHdfYnVzICpidXMgPSBOVUxMOwotCXN0cnVjdCBzZHdfbWFzdGVyX3Byb3AgKnByb3AgPSBOVUxMOworCXN0cnVjdCBzZHdfbWFzdGVyX3Byb3AgKnByb3A7CiAJc3RydWN0IHNkd19idXNfcGFyYW1zIHBhcmFtczsKIAlpbnQgcmV0OwogCkBAIC0xNDgzLDYgKzE0ODUsMTYgQEAgc3RhdGljIGludCBfc2R3X3ByZXBhcmVfc3RyZWFtKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKIAkJYnVzLT5wYXJhbXMuYmFuZHdpZHRoICs9IG1fcnQtPnN0cmVhbS0+cGFyYW1zLnJhdGUgKgogCQkJbV9ydC0+Y2hfY291bnQgKiBtX3J0LT5zdHJlYW0tPnBhcmFtcy5icHM7CiAKKwkJLyogQ29tcHV0ZSBwYXJhbXMgKi8KKwkJaWYgKGJ1cy0+Y29tcHV0ZV9wYXJhbXMpIHsKKwkJCXJldCA9IGJ1cy0+Y29tcHV0ZV9wYXJhbXMoYnVzKTsKKwkJCWlmIChyZXQgPCAwKSB7CisJCQkJZGV2X2VycihidXMtPmRldiwgIkNvbXB1dGUgcGFyYW1zIGZhaWxlZDogJWQiLAorCQkJCQlyZXQpOworCQkJCXJldHVybiByZXQ7CisJCQl9CisJCX0KKwogCQkvKiBQcm9ncmFtIHBhcmFtcyAqLwogCQlyZXQgPSBzZHdfcHJvZ3JhbV9wYXJhbXMoYnVzKTsKIAkJaWYgKHJldCA8IDApIHsKQEAgLTE0OTEsNiArMTUwMywxMSBAQCBzdGF0aWMgaW50IF9zZHdfcHJlcGFyZV9zdHJlYW0oc3RydWN0IHNkd19zdHJlYW1fcnVudGltZSAqc3RyZWFtKQogCQl9CiAJfQogCisJaWYgKCFidXMpIHsKKwkJcHJfZXJyKCJDb25maWd1cmF0aW9uIGVycm9yIGluICVzXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwogCXJldCA9IGRvX2Jhbmtfc3dpdGNoKHN0cmVhbSk7CiAJaWYgKHJldCA8IDApIHsKIAkJZGV2X2VycihidXMtPmRldiwgIkJhbmsgc3dpdGNoIGZhaWxlZDogJWRcbiIsIHJldCk7CkBAIC0xNTQ3LDcgKzE1NjQsNyBAQCBFWFBPUlRfU1lNQk9MKHNkd19wcmVwYXJlX3N0cmVhbSk7CiAKIHN0YXRpYyBpbnQgX3Nkd19lbmFibGVfc3RyZWFtKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKIHsKLQlzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0ID0gTlVMTDsKKwlzdHJ1Y3Qgc2R3X21hc3Rlcl9ydW50aW1lICptX3J0OwogCXN0cnVjdCBzZHdfYnVzICpidXMgPSBOVUxMOwogCWludCByZXQ7CiAKQEAgLTE1NzEsNiArMTU4OCwxMSBAQCBzdGF0aWMgaW50IF9zZHdfZW5hYmxlX3N0cmVhbShzdHJ1Y3Qgc2R3X3N0cmVhbV9ydW50aW1lICpzdHJlYW0pCiAJCX0KIAl9CiAKKwlpZiAoIWJ1cykgeworCQlwcl9lcnIoIkNvbmZpZ3VyYXRpb24gZXJyb3IgaW4gJXNcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJcmV0ID0gZG9fYmFua19zd2l0Y2goc3RyZWFtKTsKIAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKGJ1cy0+ZGV2LCAiQmFuayBzd2l0Y2ggZmFpbGVkOiAlZFxuIiwgcmV0KTsKQEAgLTE1OTAsNyArMTYxMiw3IEBAIHN0YXRpYyBpbnQgX3Nkd19lbmFibGVfc3RyZWFtKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKICAqLwogaW50IHNkd19lbmFibGVfc3RyZWFtKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKIHsKLQlpbnQgcmV0ID0gMDsKKwlpbnQgcmV0OwogCiAJaWYgKCFzdHJlYW0pIHsKIAkJcHJfZXJyKCJTb3VuZFdpcmU6IEhhbmRsZSBub3QgZm91bmQgZm9yIHN0cmVhbVxuIik7CkBAIC0xNjEwLDEyICsxNjMyLDEyIEBAIEVYUE9SVF9TWU1CT0woc2R3X2VuYWJsZV9zdHJlYW0pOwogCiBzdGF0aWMgaW50IF9zZHdfZGlzYWJsZV9zdHJlYW0oc3RydWN0IHNkd19zdHJlYW1fcnVudGltZSAqc3RyZWFtKQogewotCXN0cnVjdCBzZHdfbWFzdGVyX3J1bnRpbWUgKm1fcnQgPSBOVUxMOwotCXN0cnVjdCBzZHdfYnVzICpidXMgPSBOVUxMOworCXN0cnVjdCBzZHdfbWFzdGVyX3J1bnRpbWUgKm1fcnQ7CiAJaW50IHJldDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkobV9ydCwgJnN0cmVhbS0+bWFzdGVyX2xpc3QsIHN0cmVhbV9ub2RlKSB7Ci0JCWJ1cyA9IG1fcnQtPmJ1czsKKwkJc3RydWN0IHNkd19idXMgKmJ1cyA9IG1fcnQtPmJ1czsKKwogCQkvKiBEaXNhYmxlIHBvcnQocykgKi8KIAkJcmV0ID0gc2R3X2VuYWJsZV9kaXNhYmxlX3BvcnRzKG1fcnQsIGZhbHNlKTsKIAkJaWYgKHJldCA8IDApIHsKQEAgLTE2MjYsNyArMTY0OCw4IEBAIHN0YXRpYyBpbnQgX3Nkd19kaXNhYmxlX3N0cmVhbShzdHJ1Y3Qgc2R3X3N0cmVhbV9ydW50aW1lICpzdHJlYW0pCiAJc3RyZWFtLT5zdGF0ZSA9IFNEV19TVFJFQU1fRElTQUJMRUQ7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1fcnQsICZzdHJlYW0tPm1hc3Rlcl9saXN0LCBzdHJlYW1fbm9kZSkgewotCQlidXMgPSBtX3J0LT5idXM7CisJCXN0cnVjdCBzZHdfYnVzICpidXMgPSBtX3J0LT5idXM7CisKIAkJLyogUHJvZ3JhbSBwYXJhbXMgKi8KIAkJcmV0ID0gc2R3X3Byb2dyYW1fcGFyYW1zKGJ1cyk7CiAJCWlmIChyZXQgPCAwKSB7CkBAIC0xNjM1LDcgKzE2NTgsMjUgQEAgc3RhdGljIGludCBfc2R3X2Rpc2FibGVfc3RyZWFtKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKIAkJfQogCX0KIAotCXJldHVybiBkb19iYW5rX3N3aXRjaChzdHJlYW0pOworCXJldCA9IGRvX2Jhbmtfc3dpdGNoKHN0cmVhbSk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJCYW5rIHN3aXRjaCBmYWlsZWQ6ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qIG1ha2Ugc3VyZSBhbHRlcm5hdGUgYmFuayAocHJldmlvdXMgY3VycmVudCkgaXMgYWxzbyBkaXNhYmxlZCAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkobV9ydCwgJnN0cmVhbS0+bWFzdGVyX2xpc3QsIHN0cmVhbV9ub2RlKSB7CisJCXN0cnVjdCBzZHdfYnVzICpidXMgPSBtX3J0LT5idXM7CisKKwkJLyogRGlzYWJsZSBwb3J0KHMpICovCisJCXJldCA9IHNkd19lbmFibGVfZGlzYWJsZV9wb3J0cyhtX3J0LCBmYWxzZSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlkZXZfZXJyKGJ1cy0+ZGV2LCAiRGlzYWJsZSBwb3J0KHMpIGZhaWxlZDogJWRcbiIsIHJldCk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCisJcmV0dXJuIDA7CiB9CiAKIC8qKgpAQCAtMTY0Nyw3ICsxNjg4LDcgQEAgc3RhdGljIGludCBfc2R3X2Rpc2FibGVfc3RyZWFtKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKICAqLwogaW50IHNkd19kaXNhYmxlX3N0cmVhbShzdHJ1Y3Qgc2R3X3N0cmVhbV9ydW50aW1lICpzdHJlYW0pCiB7Ci0JaW50IHJldCA9IDA7CisJaW50IHJldDsKIAogCWlmICghc3RyZWFtKSB7CiAJCXByX2VycigiU291bmRXaXJlOiBIYW5kbGUgbm90IGZvdW5kIGZvciBzdHJlYW1cbiIpOwpAQCAtMTY2Nyw4ICsxNzA4LDggQEAgRVhQT1JUX1NZTUJPTChzZHdfZGlzYWJsZV9zdHJlYW0pOwogCiBzdGF0aWMgaW50IF9zZHdfZGVwcmVwYXJlX3N0cmVhbShzdHJ1Y3Qgc2R3X3N0cmVhbV9ydW50aW1lICpzdHJlYW0pCiB7Ci0Jc3RydWN0IHNkd19tYXN0ZXJfcnVudGltZSAqbV9ydCA9IE5VTEw7Ci0Jc3RydWN0IHNkd19idXMgKmJ1cyA9IE5VTEw7CisJc3RydWN0IHNkd19tYXN0ZXJfcnVudGltZSAqbV9ydDsKKwlzdHJ1Y3Qgc2R3X2J1cyAqYnVzOwogCWludCByZXQgPSAwOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShtX3J0LCAmc3RyZWFtLT5tYXN0ZXJfbGlzdCwgc3RyZWFtX25vZGUpIHsKQEAgLTE3MDYsNyArMTc0Nyw3IEBAIHN0YXRpYyBpbnQgX3Nkd19kZXByZXBhcmVfc3RyZWFtKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKICAqLwogaW50IHNkd19kZXByZXBhcmVfc3RyZWFtKHN0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnN0cmVhbSkKIHsKLQlpbnQgcmV0ID0gMDsKKwlpbnQgcmV0OwogCiAJaWYgKCFzdHJlYW0pIHsKIAkJcHJfZXJyKCJTb3VuZFdpcmU6IEhhbmRsZSBub3QgZm91bmQgZm9yIHN0cmVhbVxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvYW5kcm9pZC9pb24vaW9uX3N5c3RlbV9oZWFwLmMgYi9kcml2ZXJzL3N0YWdpbmcvYW5kcm9pZC9pb24vaW9uX3N5c3RlbV9oZWFwLmMKaW5kZXggYWE4ZDg0Mi4uYjgzYTFkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2FuZHJvaWQvaW9uL2lvbl9zeXN0ZW1faGVhcC5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL2lvbi9pb25fc3lzdGVtX2hlYXAuYwpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyBpbnQgaW9uX3N5c3RlbV9oZWFwX2FsbG9jYXRlKHN0cnVjdCBpb25faGVhcCAqaGVhcCwKIAkJaWYgKCFwYWdlKQogCQkJZ290byBmcmVlX3BhZ2VzOwogCQlsaXN0X2FkZF90YWlsKCZwYWdlLT5scnUsICZwYWdlcyk7Ci0JCXNpemVfcmVtYWluaW5nIC09IFBBR0VfU0laRSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKTsKKwkJc2l6ZV9yZW1haW5pbmcgLT0gcGFnZV9zaXplKHBhZ2UpOwogCQltYXhfb3JkZXIgPSBjb21wb3VuZF9vcmRlcihwYWdlKTsKIAkJaSsrOwogCX0KQEAgLTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgaW50IGlvbl9zeXN0ZW1faGVhcF9hbGxvY2F0ZShzdHJ1Y3QgaW9uX2hlYXAgKmhlYXAsCiAKIAlzZyA9IHRhYmxlLT5zZ2w7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBhZ2UsIHRtcF9wYWdlLCAmcGFnZXMsIGxydSkgewotCQlzZ19zZXRfcGFnZShzZywgcGFnZSwgUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpLCAwKTsKKwkJc2dfc2V0X3BhZ2Uoc2csIHBhZ2UsIHBhZ2Vfc2l6ZShwYWdlKSwgMCk7CiAJCXNnID0gc2dfbmV4dChzZyk7CiAJCWxpc3RfZGVsKCZwYWdlLT5scnUpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX3VzZXIuYyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX3VzZXIuYwppbmRleCA2NjFiYjkzLi4zNWJlMWJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV91c2VyLmMKKysrIGIvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfdXNlci5jCkBAIC0xNzEyLDYgKzE3MTIsMjQgQEAgc3RhdGljIGludCB0Y211X2luaXRfZ2VubF9jbWRfcmVwbHkoc3RydWN0IHRjbXVfZGV2ICp1ZGV2LCBpbnQgY21kKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCB0Y211X2Rlc3Ryb3lfZ2VubF9jbWRfcmVwbHkoc3RydWN0IHRjbXVfZGV2ICp1ZGV2KQoreworCXN0cnVjdCB0Y211X25sX2NtZCAqbmxfY21kID0gJnVkZXYtPmN1cnJfbmxfY21kOworCisJaWYgKCF0Y211X2tlcm5fY21kX3JlcGx5X3N1cHBvcnRlZCkKKwkJcmV0dXJuOworCisJaWYgKHVkZXYtPm5sX3JlcGx5X3N1cHBvcnRlZCA8PSAwKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZ0Y211X25sX2NtZF9tdXRleCk7CisKKwlsaXN0X2RlbCgmbmxfY21kLT5ubF9saXN0KTsKKwltZW1zZXQobmxfY21kLCAwLCBzaXplb2YoKm5sX2NtZCkpOworCisJbXV0ZXhfdW5sb2NrKCZ0Y211X25sX2NtZF9tdXRleCk7Cit9CisKIHN0YXRpYyBpbnQgdGNtdV93YWl0X2dlbmxfY21kX3JlcGx5KHN0cnVjdCB0Y211X2RldiAqdWRldikKIHsKIAlzdHJ1Y3QgdGNtdV9ubF9jbWQgKm5sX2NtZCA9ICZ1ZGV2LT5jdXJyX25sX2NtZDsKQEAgLTE3OTIsNiArMTgxMCw4IEBAIHN0YXRpYyBpbnQgdGNtdV9uZXRsaW5rX2V2ZW50X3NlbmQoc3RydWN0IHRjbXVfZGV2ICp1ZGV2LAogCWlmIChyZXQgPT0gMCB8fAogCSAgIChyZXQgPT0gLUVTUkNIICYmIGNtZCA9PSBUQ01VX0NNRF9BRERFRF9ERVZJQ0UpKQogCQlyZXR1cm4gdGNtdV93YWl0X2dlbmxfY21kX3JlcGx5KHVkZXYpOworCWVsc2UKKwkJdGNtdV9kZXN0cm95X2dlbmxfY21kX3JlcGx5KHVkZXYpOwogCiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFyZ2V0L3RjbV9mYy90ZmNfaW8uYyBiL2RyaXZlcnMvdGFyZ2V0L3RjbV9mYy90ZmNfaW8uYwppbmRleCBhMjU0NzkyLi4xMzU0YTE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC90Y21fZmMvdGZjX2lvLmMKKysrIGIvZHJpdmVycy90YXJnZXQvdGNtX2ZjL3RmY19pby5jCkBAIC0xMzYsOCArMTM2LDcgQEAgaW50IGZ0X3F1ZXVlX2RhdGFfaW4oc3RydWN0IHNlX2NtZCAqc2VfY21kKQogCQkJCQkgICBwYWdlLCBvZmZfaW5fcGFnZSwgdGxlbik7CiAJCQlmcl9sZW4oZnApICs9IHRsZW47CiAJCQlmcF9za2IoZnApLT5kYXRhX2xlbiArPSB0bGVuOwotCQkJZnBfc2tiKGZwKS0+dHJ1ZXNpemUgKz0KLQkJCQkJUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpOworCQkJZnBfc2tiKGZwKS0+dHJ1ZXNpemUgKz0gcGFnZV9zaXplKHBhZ2UpOwogCQl9IGVsc2UgewogCQkJQlVHX09OKCFwYWdlKTsKIAkJCWZyb20gPSBrbWFwX2F0b21pYyhwYWdlICsgKG1lbV9vZmYgPj4gUEFHRV9TSElGVCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90ZWUvdGVlX3NobS5jIGIvZHJpdmVycy90ZWUvdGVlX3NobS5jCmluZGV4IDJkYTAyNmYuLjA5ZGRjZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGVlL3RlZV9zaG0uYworKysgYi9kcml2ZXJzL3RlZS90ZWVfc2htLmMKQEAgLTI1NCw2ICsyNTQsNyBAQCBzdHJ1Y3QgdGVlX3NobSAqdGVlX3NobV9yZWdpc3RlcihzdHJ1Y3QgdGVlX2NvbnRleHQgKmN0eCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCXNobS0+dGVlZGV2ID0gdGVlZGV2OwogCXNobS0+Y3R4ID0gY3R4OwogCXNobS0+aWQgPSAtMTsKKwlhZGRyID0gdW50YWdnZWRfYWRkcihhZGRyKTsKIAlzdGFydCA9IHJvdW5kZG93bihhZGRyLCBQQUdFX1NJWkUpOwogCXNobS0+b2Zmc2V0ID0gYWRkciAtIHN0YXJ0OwogCXNobS0+c2l6ZSA9IGxlbmd0aDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9hcm1hZGFfdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2FybWFkYV90aGVybWFsLmMKaW5kZXggOGMwN2EzOS4uNzA5YTIyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2FybWFkYV90aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2FybWFkYV90aGVybWFsLmMKQEAgLTUzLDcgKzUzLDYgQEAKICNkZWZpbmUgQ09OVFJPTDBfVFNFTl9NT0RFX0VYVEVSTkFMCTB4MgogI2RlZmluZSBDT05UUk9MMF9UU0VOX01PREVfTUFTSwkJMHgzCiAKLSNkZWZpbmUgQ09OVFJPTDFfVFNFTl9BVkdfU0hJRlQJCTAKICNkZWZpbmUgQ09OVFJPTDFfVFNFTl9BVkdfTUFTSwkJMHg3CiAjZGVmaW5lIENPTlRST0wxX0VYVF9UU0VOX1NXX1JFU0VUCUJJVCg3KQogI2RlZmluZSBDT05UUk9MMV9FWFRfVFNFTl9IV19SRVNFVG4JQklUKDgpCkBAIC0yNjcsOCArMjY2LDggQEAgc3RhdGljIHZvaWQgYXJtYWRhX2NwMTEwX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAogCS8qIEF2ZXJhZ2UgdGhlIG91dHB1dCB2YWx1ZSBvdmVyIDJeMSA9IDIgc2FtcGxlcyAqLwogCXJlZ21hcF9yZWFkKHByaXYtPnN5c2NvbiwgZGF0YS0+c3lzY29uX2NvbnRyb2wxX29mZiwgJnJlZyk7Ci0JcmVnICY9IH5DT05UUk9MMV9UU0VOX0FWR19NQVNLIDw8IENPTlRST0wxX1RTRU5fQVZHX1NISUZUOwotCXJlZyB8PSAxIDw8IENPTlRST0wxX1RTRU5fQVZHX1NISUZUOworCXJlZyAmPSB+Q09OVFJPTDFfVFNFTl9BVkdfTUFTSzsKKwlyZWcgfD0gMTsKIAlyZWdtYXBfd3JpdGUocHJpdi0+c3lzY29uLCBkYXRhLT5zeXNjb25fY29udHJvbDFfb2ZmLCByZWcpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2FjcGlfdGhlcm1hbF9yZWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvYWNwaV90aGVybWFsX3JlbC5jCmluZGV4IDk3MTZiYzMuLjcxMzBlOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvYWNwaV90aGVybWFsX3JlbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvYWNwaV90aGVybWFsX3JlbC5jCkBAIC03Nyw5ICs3Nyw2IEBAIGludCBhY3BpX3BhcnNlX3RydChhY3BpX2hhbmRsZSBoYW5kbGUsIGludCAqdHJ0X2NvdW50LCBzdHJ1Y3QgdHJ0ICoqdHJ0cCwKIAlzdHJ1Y3QgYWNwaV9idWZmZXIgZWxlbWVudCA9IHsgMCwgTlVMTCB9OwogCXN0cnVjdCBhY3BpX2J1ZmZlciB0cnRfZm9ybWF0ID0geyBzaXplb2YoIlJSTk5OTk5OIiksICJSUk5OTk5OTiIgfTsKIAotCWlmICghYWNwaV9oYXNfbWV0aG9kKGhhbmRsZSwgIl9UUlQiKSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KIAlzdGF0dXMgPSBhY3BpX2V2YWx1YXRlX29iamVjdChoYW5kbGUsICJfVFJUIiwgTlVMTCwgJmJ1ZmZlcik7CiAJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTE1OCw5ICsxNTUsNiBAQCBpbnQgYWNwaV9wYXJzZV9hcnQoYWNwaV9oYW5kbGUgaGFuZGxlLCBpbnQgKmFydF9jb3VudCwgc3RydWN0IGFydCAqKmFydHAsCiAJc3RydWN0IGFjcGlfYnVmZmVyIGFydF9mb3JtYXQgPQl7CiAJCXNpemVvZigiUlJOTk5OTk5OTk5OTiIpLCAiUlJOTk5OTk5OTk5OTiIgfTsKIAotCWlmICghYWNwaV9oYXNfbWV0aG9kKGhhbmRsZSwgIl9BUlQiKSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KIAlzdGF0dXMgPSBhY3BpX2V2YWx1YXRlX29iamVjdChoYW5kbGUsICJfQVJUIiwgTlVMTCwgJmJ1ZmZlcik7CiAJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKQogCQlyZXR1cm4gLUVOT0RFVjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvaW50MzQwM190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MDNfdGhlcm1hbC5jCmluZGV4IGY1NzQ5ZDQuLmE3YmJkODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvaW50MzQwM190aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1hbC9pbnQzNDAzX3RoZXJtYWwuYwpAQCAtMTgxLDcgKzE4MSw3IEBAIHN0YXRpYyBpbnQgaW50MzQwM19jZGV2X2FkZChzdHJ1Y3QgaW50MzQwM19wcml2ICpwcml2KQogCiAJcCA9IGJ1Zi5wb2ludGVyOwogCWlmICghcCB8fCAocC0+dHlwZSAhPSBBQ1BJX1RZUEVfUEFDS0FHRSkpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiSW52YWxpZCBQUFNTIGRhdGFcbiIpOworCQlwcl93YXJuKCJJbnZhbGlkIFBQU1MgZGF0YVxuIik7CiAJCWtmcmVlKGJ1Zi5wb2ludGVyKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1hbC9wcm9jZXNzb3JfdGhlcm1hbF9kZXZpY2UuYyBiL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvcHJvY2Vzc29yX3RoZXJtYWxfZGV2aWNlLmMKaW5kZXggZDM0NDZhYy4uODlhMDE1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1hbC9wcm9jZXNzb3JfdGhlcm1hbF9kZXZpY2UuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL3Byb2Nlc3Nvcl90aGVybWFsX2RldmljZS5jCkBAIC0zOSw2ICszOSw5IEBACiAvKiBHZW1pbmlMYWtlIHRoZXJtYWwgcmVwb3J0aW5nIGRldmljZSAqLwogI2RlZmluZSBQQ0lfREVWSUNFX0lEX1BST0NfR0xLX1RIRVJNQUwJMHgzMThDCiAKKy8qIEljZUxha2UgdGhlcm1hbCByZXBvcnRpbmcgZGV2aWNlICovCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfUFJPQ19JQ0xfVEhFUk1BTAkweDhhMDMKKwogI2RlZmluZSBEUlZfTkFNRSAicHJvY190aGVybWFsIgogCiBzdHJ1Y3QgcG93ZXJfY29uZmlnIHsKQEAgLTEzNyw2ICsxNDAsNzIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcG93ZXJfbGltaXRfYXR0cmlidXRlX2dyb3VwID0gewogCS5uYW1lID0gInBvd2VyX2xpbWl0cyIKIH07CiAKK3N0YXRpYyBzc2l6ZV90IHRjY19vZmZzZXRfZGVncmVlX2NlbHNpdXNfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkgICAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwl1NjQgdmFsOworCWludCBlcnI7CisKKwllcnIgPSByZG1zcmxfc2FmZShNU1JfSUEzMl9URU1QRVJBVFVSRV9UQVJHRVQsICZ2YWwpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwl2YWwgPSAodmFsID4+IDI0KSAmIDB4ZmY7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIChpbnQpdmFsKTsKK30KKworc3RhdGljIGludCB0Y2Nfb2Zmc2V0X3VwZGF0ZShpbnQgdGNjKQoreworCXU2NCB2YWw7CisJaW50IGVycjsKKworCWlmICghdGNjKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWVyciA9IHJkbXNybF9zYWZlKE1TUl9JQTMyX1RFTVBFUkFUVVJFX1RBUkdFVCwgJnZhbCk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCXZhbCAmPSB+R0VOTUFTS19VTEwoMzEsIDI0KTsKKwl2YWwgfD0gKHRjYyAmIDB4ZmYpIDw8IDI0OworCisJZXJyID0gd3Jtc3JsX3NhZmUoTVNSX0lBMzJfVEVNUEVSQVRVUkVfVEFSR0VULCB2YWwpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0Y2Nfb2Zmc2V0X3NhdmU7CisKK3N0YXRpYyBzc2l6ZV90IHRjY19vZmZzZXRfZGVncmVlX2NlbHNpdXNfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjb25zdCBjaGFyICpidWYsCisJCQkJc2l6ZV90IGNvdW50KQoreworCXU2NCB2YWw7CisJaW50IHRjYywgZXJyOworCisJZXJyID0gcmRtc3JsX3NhZmUoTVNSX1BMQVRGT1JNX0lORk8sICZ2YWwpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlpZiAoISh2YWwgJiBCSVQoMzApKSkKKwkJcmV0dXJuIC1FQUNDRVM7CisKKwlpZiAoa3N0cnRvaW50KGJ1ZiwgMCwgJnRjYykpCisJCXJldHVybiAtRUlOVkFMOworCisJZXJyID0gdGNjX29mZnNldF91cGRhdGUodGNjKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJdGNjX29mZnNldF9zYXZlID0gdGNjOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgREVWSUNFX0FUVFJfUlcodGNjX29mZnNldF9kZWdyZWVfY2Vsc2l1cyk7CisKIHN0YXRpYyBpbnQgc3RvcmVkX3RqbWF4OyAvKiBzaW5jZSBpdCBpcyBmaXhlZCwgd2UgY2FuIGhhdmUgbG9jYWwgc3RvcmFnZSAqLwogCiBzdGF0aWMgaW50IGdldF90am1heCh2b2lkKQpAQCAtMzMyLDYgKzQwMSw3IEBAIHN0YXRpYyB2b2lkIHByb2NfdGhlcm1hbF9yZW1vdmUoc3RydWN0IHByb2NfdGhlcm1hbF9kZXZpY2UgKnByb2NfcHJpdikKIAlhY3BpX3JlbW92ZV9ub3RpZnlfaGFuZGxlcihwcm9jX3ByaXYtPmFkZXYtPmhhbmRsZSwKIAkJCQkgICBBQ1BJX0RFVklDRV9OT1RJRlksIHByb2NfdGhlcm1hbF9ub3RpZnkpOwogCWludDM0MHhfdGhlcm1hbF96b25lX3JlbW92ZShwcm9jX3ByaXYtPmludDM0MHhfem9uZSk7CisJc3lzZnNfcmVtb3ZlX2ZpbGUoJnByb2NfcHJpdi0+ZGV2LT5rb2JqLCAmZGV2X2F0dHJfdGNjX29mZnNldF9kZWdyZWVfY2Vsc2l1cy5hdHRyKTsKIAlzeXNmc19yZW1vdmVfZ3JvdXAoJnByb2NfcHJpdi0+ZGV2LT5rb2JqLAogCQkJICAgJnBvd2VyX2xpbWl0X2F0dHJpYnV0ZV9ncm91cCk7CiB9CkBAIC0zNTUsOCArNDI1LDE1IEBAIHN0YXRpYyBpbnQgaW50MzQwMV9hZGQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWRldl9pbmZvKCZwZGV2LT5kZXYsICJDcmVhdGluZyBzeXNmcyBncm91cCBmb3IgUFJPQ19USEVSTUFMX1BMQVRGT1JNX0RFVlxuIik7CiAKLQlyZXR1cm4gc3lzZnNfY3JlYXRlX2dyb3VwKCZwZGV2LT5kZXYua29iaiwKLQkJCQkJICZwb3dlcl9saW1pdF9hdHRyaWJ1dGVfZ3JvdXApOworCXJldCA9IHN5c2ZzX2NyZWF0ZV9maWxlKCZwZGV2LT5kZXYua29iaiwgJmRldl9hdHRyX3RjY19vZmZzZXRfZGVncmVlX2NlbHNpdXMuYXR0cik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmcGRldi0+ZGV2LmtvYmosICZwb3dlcl9saW1pdF9hdHRyaWJ1dGVfZ3JvdXApOworCWlmIChyZXQpCisJCXN5c2ZzX3JlbW92ZV9maWxlKCZwZGV2LT5kZXYua29iaiwgJmRldl9hdHRyX3RjY19vZmZzZXRfZGVncmVlX2NlbHNpdXMuYXR0cik7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGludDM0MDFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCkBAIC01ODgsOCArNjY1LDE1IEBAIHN0YXRpYyBpbnQgIHByb2NfdGhlcm1hbF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAKIAlkZXZfaW5mbygmcGRldi0+ZGV2LCAiQ3JlYXRpbmcgc3lzZnMgZ3JvdXAgZm9yIFBST0NfVEhFUk1BTF9QQ0lcbiIpOwogCi0JcmV0dXJuIHN5c2ZzX2NyZWF0ZV9ncm91cCgmcGRldi0+ZGV2LmtvYmosCi0JCQkJCSAmcG93ZXJfbGltaXRfYXR0cmlidXRlX2dyb3VwKTsKKwlyZXQgPSBzeXNmc19jcmVhdGVfZmlsZSgmcGRldi0+ZGV2LmtvYmosICZkZXZfYXR0cl90Y2Nfb2Zmc2V0X2RlZ3JlZV9jZWxzaXVzLmF0dHIpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnBkZXYtPmRldi5rb2JqLCAmcG93ZXJfbGltaXRfYXR0cmlidXRlX2dyb3VwKTsKKwlpZiAocmV0KQorCQlzeXNmc19yZW1vdmVfZmlsZSgmcGRldi0+ZGV2LmtvYmosICZkZXZfYXR0cl90Y2Nfb2Zmc2V0X2RlZ3JlZV9jZWxzaXVzLmF0dHIpOworCisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgIHByb2NfdGhlcm1hbF9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQpAQCAtNjE1LDYgKzY5OSw4IEBAIHN0YXRpYyBpbnQgcHJvY190aGVybWFsX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcHJvY19kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlwcm9jX3RoZXJtYWxfcmVhZF9wcGNjKHByb2NfZGV2KTsKIAorCXRjY19vZmZzZXRfdXBkYXRlKHRjY19vZmZzZXRfc2F2ZSk7CisKIAlyZXR1cm4gMDsKIH0KICNlbHNlCkBAIC02MzYsNiArNzIyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHByb2NfdGhlcm1hbF9wY2lfaWRzW10gPSB7CiAJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfUFJPQ19DTkxfVEhFUk1BTCl9LAogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX1BST0NfQ0ZMX1RIRVJNQUwpfSwKIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9QUk9DX0dMS19USEVSTUFMKX0sCisJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfUFJPQ19JQ0xfVEhFUk1BTCksCisJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdCkmcmFwbF9tbWlvX2hzdywgfSwKIAl7IDAsIH0sCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfcGNoX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9wY2hfdGhlcm1hbC5jCmluZGV4IDk5ZjhiMjUuLjRmMGJiOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9wY2hfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9wY2hfdGhlcm1hbC5jCkBAIC0zNzEsMTYgKzM3MSwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wY2hfdGhlcm1hbF9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAKIHN0YXRpYyBpbnQgaW50ZWxfcGNoX3RoZXJtYWxfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldmljZSk7Ci0Jc3RydWN0IHBjaF90aGVybWFsX2RldmljZSAqcHRkID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBwY2hfdGhlcm1hbF9kZXZpY2UgKnB0ZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXZpY2UpOwogCiAJcmV0dXJuIHB0ZC0+b3BzLT5zdXNwZW5kKHB0ZCk7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxfcGNoX3RoZXJtYWxfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldmljZSkKIHsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2aWNlKTsKLQlzdHJ1Y3QgcGNoX3RoZXJtYWxfZGV2aWNlICpwdGQgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHBjaF90aGVybWFsX2RldmljZSAqcHRkID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7CiAKIAlyZXR1cm4gcHRkLT5vcHMtPnJlc3VtZShwdGQpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3Fjb20vdHNlbnMtODk2MC5jIGIvZHJpdmVycy90aGVybWFsL3Fjb20vdHNlbnMtODk2MC5jCmluZGV4IDhkOWI3MjEuLmU0NmE0ZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9xY29tL3RzZW5zLTg5NjAuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvcWNvbS90c2Vucy04OTYwLmMKQEAgLTIyOSw2ICsyMjksOCBAQCBzdGF0aWMgaW50IGNhbGlicmF0ZV84OTYwKHN0cnVjdCB0c2Vuc19wcml2ICpwcml2KQogCWZvciAoaSA9IDA7IGkgPCBudW1fcmVhZDsgaSsrLCBzKyspCiAJCXMtPm9mZnNldCA9IGRhdGFbaV07CiAKKwlrZnJlZShkYXRhKTsKKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvcWNvbS90c2Vucy12MF8xLmMgYi9kcml2ZXJzL3RoZXJtYWwvcWNvbS90c2Vucy12MF8xLmMKaW5kZXggNmYyNmZhZC4uMDU1NjQ3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3Fjb20vdHNlbnMtdjBfMS5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9xY29tL3RzZW5zLXYwXzEuYwpAQCAtMTQ1LDggKzE0NSwxMCBAQCBzdGF0aWMgaW50IGNhbGlicmF0ZV84OTE2KHN0cnVjdCB0c2Vuc19wcml2ICpwcml2KQogCQlyZXR1cm4gUFRSX0VSUihxZnByb21fY2RhdGEpOwogCiAJcWZwcm9tX2NzZWwgPSAodTMyICopcWZwcm9tX3JlYWQocHJpdi0+ZGV2LCAiY2FsaWJfc2VsIik7Ci0JaWYgKElTX0VSUihxZnByb21fY3NlbCkpCisJaWYgKElTX0VSUihxZnByb21fY3NlbCkpIHsKKwkJa2ZyZWUocWZwcm9tX2NkYXRhKTsKIAkJcmV0dXJuIFBUUl9FUlIocWZwcm9tX2NzZWwpOworCX0KIAogCW1vZGUgPSAocWZwcm9tX2NzZWxbMF0gJiBNU004OTE2X0NBTF9TRUxfTUFTSykgPj4gTVNNODkxNl9DQUxfU0VMX1NISUZUOwogCWRldl9kYmcocHJpdi0+ZGV2LCAiY2FsaWJyYXRpb24gbW9kZSBpcyAlZFxuIiwgbW9kZSk7CkBAIC0xODEsNiArMTgzLDggQEAgc3RhdGljIGludCBjYWxpYnJhdGVfODkxNihzdHJ1Y3QgdHNlbnNfcHJpdiAqcHJpdikKIAl9CiAKIAljb21wdXRlX2ludGVyY2VwdF9zbG9wZShwcml2LCBwMSwgcDIsIG1vZGUpOworCWtmcmVlKHFmcHJvbV9jZGF0YSk7CisJa2ZyZWUocWZwcm9tX2NzZWwpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xOTgsOCArMjAyLDEwIEBAIHN0YXRpYyBpbnQgY2FsaWJyYXRlXzg5NzQoc3RydWN0IHRzZW5zX3ByaXYgKnByaXYpCiAJCXJldHVybiBQVFJfRVJSKGNhbGliKTsKIAogCWJrcCA9ICh1MzIgKilxZnByb21fcmVhZChwcml2LT5kZXYsICJjYWxpYl9iYWNrdXAiKTsKLQlpZiAoSVNfRVJSKGJrcCkpCisJaWYgKElTX0VSUihia3ApKSB7CisJCWtmcmVlKGNhbGliKTsKIAkJcmV0dXJuIFBUUl9FUlIoYmtwKTsKKwl9CiAKIAljYWxpYl9yZWR1bl9zZWwgPSAgYmtwWzFdICYgQktQX1JFRFVOX1NFTDsKIAljYWxpYl9yZWR1bl9zZWwgPj49IEJLUF9SRURVTl9TSElGVDsKQEAgLTMxMyw2ICszMTksOCBAQCBzdGF0aWMgaW50IGNhbGlicmF0ZV84OTc0KHN0cnVjdCB0c2Vuc19wcml2ICpwcml2KQogCX0KIAogCWNvbXB1dGVfaW50ZXJjZXB0X3Nsb3BlKHByaXYsIHAxLCBwMiwgbW9kZSk7CisJa2ZyZWUoY2FsaWIpOworCWtmcmVlKGJrcCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9xY29tL3RzZW5zLXYxLmMgYi9kcml2ZXJzL3RoZXJtYWwvcWNvbS90c2Vucy12MS5jCmluZGV4IDEwYjU5NWQuLjg3MGY1MDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9xY29tL3RzZW5zLXYxLmMKKysrIGIvZHJpdmVycy90aGVybWFsL3Fjb20vdHNlbnMtdjEuYwpAQCAtMTM4LDYgKzEzOCw3IEBAIHN0YXRpYyBpbnQgY2FsaWJyYXRlX3YxKHN0cnVjdCB0c2Vuc19wcml2ICpwcml2KQogCX0KIAogCWNvbXB1dGVfaW50ZXJjZXB0X3Nsb3BlKHByaXYsIHAxLCBwMiwgbW9kZSk7CisJa2ZyZWUocWZwcm9tX2NkYXRhKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3Fjb20vdHNlbnMuaCBiL2RyaXZlcnMvdGhlcm1hbC9xY29tL3RzZW5zLmgKaW5kZXggMmZkOTQ5OS4uYjg5MDgzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3Fjb20vdHNlbnMuaAorKysgYi9kcml2ZXJzL3RoZXJtYWwvcWNvbS90c2Vucy5oCkBAIC0xNyw2ICsxNyw3IEBACiAKICNpbmNsdWRlIDxsaW51eC90aGVybWFsLmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogCiBzdHJ1Y3QgdHNlbnNfcHJpdjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3FvcmlxX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9xb3JpcV90aGVybWFsLmMKaW5kZXggN2IzNjQ5My4uMzk1NDJjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3FvcmlxX3RoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvcW9yaXFfdGhlcm1hbC5jCkBAIC0yLDYgKzIsNyBAQAogLy8KIC8vIENvcHlyaWdodCAyMDE2IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuCiAKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KQEAgLTcyLDYgKzczLDcgQEAgc3RydWN0IHFvcmlxX3NlbnNvciB7CiAKIHN0cnVjdCBxb3JpcV90bXVfZGF0YSB7CiAJc3RydWN0IHFvcmlxX3RtdV9yZWdzIF9faW9tZW0gKnJlZ3M7CisJc3RydWN0IGNsayAqY2xrOwogCWJvb2wgbGl0dGxlX2VuZGlhbjsKIAlzdHJ1Y3QgcW9yaXFfc2Vuc29yCSpzZW5zb3JbU0lURVNfTUFYXTsKIH07CkBAIC0yMDIsMzIgKzIwNCwzOSBAQCBzdGF0aWMgaW50IHFvcmlxX3RtdV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJZGF0YS0+bGl0dGxlX2VuZGlhbiA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgImxpdHRsZS1lbmRpYW4iKTsKIAotCWRhdGEtPnJlZ3MgPSBvZl9pb21hcChucCwgMCk7Ci0JaWYgKCFkYXRhLT5yZWdzKSB7CisJZGF0YS0+cmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKwlpZiAoSVNfRVJSKGRhdGEtPnJlZ3MpKSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBnZXQgbWVtb3J5IHJlZ2lvblxuIik7Ci0JCXJldCA9IC1FTk9ERVY7Ci0JCWdvdG8gZXJyX2lvbWFwOworCQlyZXR1cm4gUFRSX0VSUihkYXRhLT5yZWdzKTsKKwl9CisKKwlkYXRhLT5jbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWwoJnBkZXYtPmRldiwgTlVMTCk7CisJaWYgKElTX0VSUihkYXRhLT5jbGspKQorCQlyZXR1cm4gUFRSX0VSUihkYXRhLT5jbGspOworCisJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGRhdGEtPmNsayk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gZW5hYmxlIGNsb2NrXG4iKTsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIAlxb3JpcV90bXVfaW5pdF9kZXZpY2UoZGF0YSk7CS8qIFRNVSBpbml0aWFsaXphdGlvbiAqLwogCiAJcmV0ID0gcW9yaXFfdG11X2NhbGlicmF0aW9uKHBkZXYpOwkvKiBUTVUgY2FsaWJyYXRpb24gKi8KIAlpZiAocmV0IDwgMCkKLQkJZ290byBlcnJfdG11OworCQlnb3RvIGVycjsKIAogCXJldCA9IHFvcmlxX3RtdV9yZWdpc3Rlcl90bXVfem9uZShwZGV2KTsKIAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgc2Vuc29yc1xuIik7CiAJCXJldCA9IC1FTk9ERVY7Ci0JCWdvdG8gZXJyX2lvbWFwOworCQlnb3RvIGVycjsKIAl9CiAKIAlyZXR1cm4gMDsKIAotZXJyX3RtdToKLQlpb3VubWFwKGRhdGEtPnJlZ3MpOwotCi1lcnJfaW9tYXA6CitlcnI6CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRhdGEtPmNsayk7CiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgTlVMTCk7CiAKIAlyZXR1cm4gcmV0OwpAQCAtMjQwLDE0ICsyNDksMTQgQEAgc3RhdGljIGludCBxb3JpcV90bXVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJLyogRGlzYWJsZSBtb25pdG9yaW5nICovCiAJdG11X3dyaXRlKGRhdGEsIFRNUl9ESVNBQkxFLCAmZGF0YS0+cmVncy0+dG1yKTsKIAotCWlvdW5tYXAoZGF0YS0+cmVncyk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRhdGEtPmNsayk7CisKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKIAogCXJldHVybiAwOwogfQogCi0jaWZkZWYgQ09ORklHX1BNX1NMRUVQCi1zdGF0aWMgaW50IHFvcmlxX3RtdV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgcW9yaXFfdG11X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogewogCXUzMiB0bXI7CiAJc3RydWN0IHFvcmlxX3RtdV9kYXRhICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7CkBAIC0yNTcsMTQgKzI2NiwyMSBAQCBzdGF0aWMgaW50IHFvcmlxX3RtdV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIAl0bXIgJj0gflRNUl9NRTsKIAl0bXVfd3JpdGUoZGF0YSwgdG1yLCAmZGF0YS0+cmVncy0+dG1yKTsKIAorCWNsa19kaXNhYmxlX3VucHJlcGFyZShkYXRhLT5jbGspOworCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcW9yaXFfdG11X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIHFvcmlxX3RtdV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogewogCXUzMiB0bXI7CisJaW50IHJldDsKIAlzdHJ1Y3QgcW9yaXFfdG11X2RhdGEgKmRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAorCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShkYXRhLT5jbGspOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAkvKiBFbmFibGUgbW9uaXRvcmluZyAqLwogCXRtciA9IHRtdV9yZWFkKGRhdGEsICZkYXRhLT5yZWdzLT50bXIpOwogCXRtciB8PSBUTVJfTUU7CkBAIC0yNzIsNyArMjg4LDYgQEAgc3RhdGljIGludCBxb3JpcV90bXVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIAogCXJldHVybiAwOwogfQotI2VuZGlmCiAKIHN0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhxb3JpcV90bXVfcG1fb3BzLAogCQkJIHFvcmlxX3RtdV9zdXNwZW5kLCBxb3JpcV90bXVfcmVzdW1lKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9yY2FyX2dlbjNfdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMKaW5kZXggYTU2NDYzMy4uNzU1ZDJiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMKQEAgLTQ0Myw5ICs0NDMsOCBAQCBzdGF0aWMgaW50IHJjYXJfZ2VuM190aGVybWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycm9yX3VucmVnaXN0ZXI7CiAKLQkJcmV0ID0gZGV2bV9hZGRfYWN0aW9uKGRldiwgcmNhcl9nZW4zX2h3bW9uX2FjdGlvbiwgem9uZSk7CisJCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldChkZXYsIHJjYXJfZ2VuM19od21vbl9hY3Rpb24sIHpvbmUpOwogCQlpZiAocmV0KSB7Ci0JCQlyY2FyX2dlbjNfaHdtb25fYWN0aW9uKHpvbmUpOwogCQkJZ290byBlcnJvcl91bnJlZ2lzdGVyOwogCQl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC90ZWdyYS9zb2N0aGVybS5jIGIvZHJpdmVycy90aGVybWFsL3RlZ3JhL3NvY3RoZXJtLmMKaW5kZXggNDM5NDFlYi4uNWFjYWFkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3RlZ3JhL3NvY3RoZXJtLmMKKysrIGIvZHJpdmVycy90aGVybWFsL3RlZ3JhL3NvY3RoZXJtLmMKQEAgLTIwMiw3ICsyMDIsNyBAQAogLyogZ2V0IGRpdmlkZW5kIGZyb20gdGhlIGRlcHRoICovCiAjZGVmaW5lIFRIUk9UX0RFUFRIX0RJVklERU5EKGRlcHRoKQkoKDI1NiAqICgxMDAgLSAoZGVwdGgpKSAvIDEwMCkgLSAxKQogCi0vKiBnazIwYSBudl90aGVybSBpbnRlcmZhY2UgTjozIE1hcHBpbmcuIExldmVscyBkZWZpbmVkIGluIHRlZ3JhMTI0LXNvY2h0ZXJtLmgKKy8qIGdrMjBhIG52X3RoZXJtIGludGVyZmFjZSBOOjMgTWFwcGluZy4gTGV2ZWxzIGRlZmluZWQgaW4gdGVncmExMjQtc29jdGhlcm0uaAogICogbGV2ZWwJdmVjdG9yCiAgKiBOT05FCQkzJ2IwMDAKICAqIExPVwkJMydiMDAxCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9jb3JlLmMgYi9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9jb3JlLmMKaW5kZXggNmJhYjY2ZS4uZDQ0ODFjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfY29yZS5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX2NvcmUuYwpAQCAtMzA0LDcgKzMwNCw3IEBAIHN0YXRpYyB2b2lkIHRoZXJtYWxfem9uZV9kZXZpY2Vfc2V0X3BvbGxpbmcoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LAogCQkJCSAmdHotPnBvbGxfcXVldWUsCiAJCQkJIG1zZWNzX3RvX2ppZmZpZXMoZGVsYXkpKTsKIAllbHNlCi0JCWNhbmNlbF9kZWxheWVkX3dvcmsoJnR6LT5wb2xsX3F1ZXVlKTsKKwkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZ0ei0+cG9sbF9xdWV1ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIG1vbml0b3JfdGhlcm1hbF96b25lKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eikKQEAgLTk4NSw3ICs5ODUsNyBAQCBfX3RoZXJtYWxfY29vbGluZ19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGRldmljZV9ub2RlICpucCwKIAlyZXN1bHQgPSBkZXZpY2VfcmVnaXN0ZXIoJmNkZXYtPmRldmljZSk7CiAJaWYgKHJlc3VsdCkgewogCQlpZGFfc2ltcGxlX3JlbW92ZSgmdGhlcm1hbF9jZGV2X2lkYSwgY2Rldi0+aWQpOwotCQlrZnJlZShjZGV2KTsKKwkJcHV0X2RldmljZSgmY2Rldi0+ZGV2aWNlKTsKIAkJcmV0dXJuIEVSUl9QVFIocmVzdWx0KTsKIAl9CiAKQEAgLTEyNDAsMjEgKzEyNDAsMzEgQEAgdGhlcm1hbF96b25lX2RldmljZV9yZWdpc3Rlcihjb25zdCBjaGFyICp0eXBlLCBpbnQgdHJpcHMsIGludCBtYXNrLAogCXN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0ejsKIAllbnVtIHRoZXJtYWxfdHJpcF90eXBlIHRyaXBfdHlwZTsKIAlpbnQgdHJpcF90ZW1wOworCWludCBpZDsKIAlpbnQgcmVzdWx0OwogCWludCBjb3VudDsKIAlzdHJ1Y3QgdGhlcm1hbF9nb3Zlcm5vciAqZ292ZXJub3I7CiAKLQlpZiAoIXR5cGUgfHwgc3RybGVuKHR5cGUpID09IDApCisJaWYgKCF0eXBlIHx8IHN0cmxlbih0eXBlKSA9PSAwKSB7CisJCXByX2VycigiRXJyb3I6IE5vIHRoZXJtYWwgem9uZSB0eXBlIGRlZmluZWRcbiIpOwogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwl9CiAKLQlpZiAodHlwZSAmJiBzdHJsZW4odHlwZSkgPj0gVEhFUk1BTF9OQU1FX0xFTkdUSCkKKwlpZiAodHlwZSAmJiBzdHJsZW4odHlwZSkgPj0gVEhFUk1BTF9OQU1FX0xFTkdUSCkgeworCQlwcl9lcnIoIkVycm9yOiBUaGVybWFsIHpvbmUgbmFtZSAoJXMpIHRvbyBsb25nLCBzaG91bGQgYmUgdW5kZXIgJWQgY2hhcnNcbiIsCisJCSAgICAgICB0eXBlLCBUSEVSTUFMX05BTUVfTEVOR1RIKTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJfQogCi0JaWYgKHRyaXBzID4gVEhFUk1BTF9NQVhfVFJJUFMgfHwgdHJpcHMgPCAwIHx8IG1hc2sgPj4gdHJpcHMpCisJaWYgKHRyaXBzID4gVEhFUk1BTF9NQVhfVFJJUFMgfHwgdHJpcHMgPCAwIHx8IG1hc2sgPj4gdHJpcHMpIHsKKwkJcHJfZXJyKCJFcnJvcjogSW5jb3JyZWN0IG51bWJlciBvZiB0aGVybWFsIHRyaXBzXG4iKTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJfQogCi0JaWYgKCFvcHMpCisJaWYgKCFvcHMpIHsKKwkJcHJfZXJyKCJFcnJvcjogVGhlcm1hbCB6b25lIGRldmljZSBvcHMgbm90IGRlZmluZWRcbiIpOwogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwl9CiAKIAlpZiAodHJpcHMgPiAwICYmICghb3BzLT5nZXRfdHJpcF90eXBlIHx8ICFvcHMtPmdldF90cmlwX3RlbXApKQogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKQEAgLTEyNjYsMTEgKzEyNzYsMTMgQEAgdGhlcm1hbF96b25lX2RldmljZV9yZWdpc3Rlcihjb25zdCBjaGFyICp0eXBlLCBpbnQgdHJpcHMsIGludCBtYXNrLAogCUlOSVRfTElTVF9IRUFEKCZ0ei0+dGhlcm1hbF9pbnN0YW5jZXMpOwogCWlkYV9pbml0KCZ0ei0+aWRhKTsKIAltdXRleF9pbml0KCZ0ei0+bG9jayk7Ci0JcmVzdWx0ID0gaWRhX3NpbXBsZV9nZXQoJnRoZXJtYWxfdHpfaWRhLCAwLCAwLCBHRlBfS0VSTkVMKTsKLQlpZiAocmVzdWx0IDwgMCkKKwlpZCA9IGlkYV9zaW1wbGVfZ2V0KCZ0aGVybWFsX3R6X2lkYSwgMCwgMCwgR0ZQX0tFUk5FTCk7CisJaWYgKGlkIDwgMCkgeworCQlyZXN1bHQgPSBpZDsKIAkJZ290byBmcmVlX3R6OworCX0KIAotCXR6LT5pZCA9IHJlc3VsdDsKKwl0ei0+aWQgPSBpZDsKIAlzdHJsY3B5KHR6LT50eXBlLCB0eXBlLCBzaXplb2YodHotPnR5cGUpKTsKIAl0ei0+b3BzID0gb3BzOwogCXR6LT50enAgPSB0enA7CkBAIC0xMjkyLDcgKzEzMDQsNyBAQCB0aGVybWFsX3pvbmVfZGV2aWNlX3JlZ2lzdGVyKGNvbnN0IGNoYXIgKnR5cGUsIGludCB0cmlwcywgaW50IG1hc2ssCiAJZGV2X3NldF9uYW1lKCZ0ei0+ZGV2aWNlLCAidGhlcm1hbF96b25lJWQiLCB0ei0+aWQpOwogCXJlc3VsdCA9IGRldmljZV9yZWdpc3RlcigmdHotPmRldmljZSk7CiAJaWYgKHJlc3VsdCkKLQkJZ290byByZW1vdmVfZGV2aWNlX2dyb3VwczsKKwkJZ290byByZWxlYXNlX2RldmljZTsKIAogCWZvciAoY291bnQgPSAwOyBjb3VudCA8IHRyaXBzOyBjb3VudCsrKSB7CiAJCWlmICh0ei0+b3BzLT5nZXRfdHJpcF90eXBlKHR6LCBjb3VudCwgJnRyaXBfdHlwZSkpCkBAIC0xMzQzLDE0ICsxMzU1LDEyIEBAIHRoZXJtYWxfem9uZV9kZXZpY2VfcmVnaXN0ZXIoY29uc3QgY2hhciAqdHlwZSwgaW50IHRyaXBzLCBpbnQgbWFzaywKIAlyZXR1cm4gdHo7CiAKIHVucmVnaXN0ZXI6Ci0JaWRhX3NpbXBsZV9yZW1vdmUoJnRoZXJtYWxfdHpfaWRhLCB0ei0+aWQpOwotCWRldmljZV91bnJlZ2lzdGVyKCZ0ei0+ZGV2aWNlKTsKLQlyZXR1cm4gRVJSX1BUUihyZXN1bHQpOwotCi1yZW1vdmVfZGV2aWNlX2dyb3VwczoKLQl0aGVybWFsX3pvbmVfZGVzdHJveV9kZXZpY2VfZ3JvdXBzKHR6KTsKKwlkZXZpY2VfZGVsKCZ0ei0+ZGV2aWNlKTsKK3JlbGVhc2VfZGV2aWNlOgorCXB1dF9kZXZpY2UoJnR6LT5kZXZpY2UpOworCXR6ID0gTlVMTDsKIHJlbW92ZV9pZDoKLQlpZGFfc2ltcGxlX3JlbW92ZSgmdGhlcm1hbF90el9pZGEsIHR6LT5pZCk7CisJaWRhX3NpbXBsZV9yZW1vdmUoJnRoZXJtYWxfdHpfaWRhLCBpZCk7CiBmcmVlX3R6OgogCWtmcmVlKHR6KTsKIAlyZXR1cm4gRVJSX1BUUihyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfaHdtb24uYyBiL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX2h3bW9uLmMKaW5kZXggNDBjNjlhNS4uZGQ1ZDhlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfaHdtb24uYworKysgYi9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9od21vbi5jCkBAIC04NywxMyArODcsMTcgQEAgc3RhdGljIHN0cnVjdCB0aGVybWFsX2h3bW9uX2RldmljZSAqCiB0aGVybWFsX2h3bW9uX2xvb2t1cF9ieV90eXBlKGNvbnN0IHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eikKIHsKIAlzdHJ1Y3QgdGhlcm1hbF9od21vbl9kZXZpY2UgKmh3bW9uOworCWNoYXIgdHlwZVtUSEVSTUFMX05BTUVfTEVOR1RIXTsKIAogCW11dGV4X2xvY2soJnRoZXJtYWxfaHdtb25fbGlzdF9sb2NrKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGh3bW9uLCAmdGhlcm1hbF9od21vbl9saXN0LCBub2RlKQotCQlpZiAoIXN0cmNtcChod21vbi0+dHlwZSwgdHotPnR5cGUpKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShod21vbiwgJnRoZXJtYWxfaHdtb25fbGlzdCwgbm9kZSkgeworCQlzdHJjcHkodHlwZSwgdHotPnR5cGUpOworCQlzdHJyZXBsYWNlKHR5cGUsICctJywgJ18nKTsKKwkJaWYgKCFzdHJjbXAoaHdtb24tPnR5cGUsIHR5cGUpKSB7CiAJCQltdXRleF91bmxvY2soJnRoZXJtYWxfaHdtb25fbGlzdF9sb2NrKTsKIAkJCXJldHVybiBod21vbjsKIAkJfQorCX0KIAltdXRleF91bmxvY2soJnRoZXJtYWxfaHdtb25fbGlzdF9sb2NrKTsKIAogCXJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsL3NlcmlhbF9jb3JlLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvc2VyaWFsX2NvcmUuYwppbmRleCA0MjIzY2I0Li42ZTcxM2JlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvc2VyaWFsX2NvcmUuYworKysgYi9kcml2ZXJzL3R0eS9zZXJpYWwvc2VyaWFsX2NvcmUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAKICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CkBAIC04NjIsNiArODYzLDEwIEBAIHN0YXRpYyBpbnQgdWFydF9zZXRfaW5mbyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdHR5X3BvcnQgKnBvcnQsCiAJCWdvdG8gY2hlY2tfYW5kX2V4aXQ7CiAJfQogCisJcmV0dmFsID0gc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fVElPQ1NTRVJJQUwpOworCWlmIChyZXR2YWwgJiYgKGNoYW5nZV9pcnEgfHwgY2hhbmdlX3BvcnQpKQorCQlnb3RvIGV4aXQ7CisKIAkvKgogCSAqIEFzayB0aGUgbG93IGxldmVsIGRyaXZlciB0byB2ZXJpZnkgdGhlIHNldHRpbmdzLgogCSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfZnMuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX2ZzLmMKaW5kZXggMjEzZmYwMy4uNTlkOWQ1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfZnMuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9mcy5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzX3BhcnNlci5oPgogI2luY2x1ZGUgPGxpbnV4L2hpZC5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC0xNDUxLDkgKzE0NTIsOSBAQCBzdHJ1Y3QgZmZzX3NiX2ZpbGxfZGF0YSB7CiAJc3RydWN0IGZmc19kYXRhICpmZnNfZGF0YTsKIH07CiAKLXN0YXRpYyBpbnQgZmZzX3NiX2ZpbGwoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqX2RhdGEsIGludCBzaWxlbnQpCitzdGF0aWMgaW50IGZmc19zYl9maWxsKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKLQlzdHJ1Y3QgZmZzX3NiX2ZpbGxfZGF0YSAqZGF0YSA9IF9kYXRhOworCXN0cnVjdCBmZnNfc2JfZmlsbF9kYXRhICpkYXRhID0gZmMtPmZzX3ByaXZhdGU7CiAJc3RydWN0IGlub2RlCSppbm9kZTsKIAlzdHJ1Y3QgZmZzX2RhdGEJKmZmcyA9IGRhdGEtPmZmc19kYXRhOwogCkBAIC0xNDg2LDE0NyArMTQ4NywxNTIgQEAgc3RhdGljIGludCBmZnNfc2JfZmlsbChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpfZGF0YSwgaW50IHNpbGVudCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBmZnNfZnNfcGFyc2Vfb3B0cyhzdHJ1Y3QgZmZzX3NiX2ZpbGxfZGF0YSAqZGF0YSwgY2hhciAqb3B0cykKK2VudW0geworCU9wdF9ub19kaXNjb25uZWN0LAorCU9wdF9ybW9kZSwKKwlPcHRfZm1vZGUsCisJT3B0X21vZGUsCisJT3B0X3VpZCwKKwlPcHRfZ2lkLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfc3BlYyBmZnNfZnNfcGFyYW1fc3BlY3NbXSA9IHsKKwlmc3BhcmFtX2Jvb2wJKCJub19kaXNjb25uZWN0IiwJT3B0X25vX2Rpc2Nvbm5lY3QpLAorCWZzcGFyYW1fdTMyCSgicm1vZGUiLAkJT3B0X3Jtb2RlKSwKKwlmc3BhcmFtX3UzMgkoImZtb2RlIiwJCU9wdF9mbW9kZSksCisJZnNwYXJhbV91MzIJKCJtb2RlIiwJCU9wdF9tb2RlKSwKKwlmc3BhcmFtX3UzMgkoInVpZCIsCQkJT3B0X3VpZCksCisJZnNwYXJhbV91MzIJKCJnaWQiLAkJCU9wdF9naWQpLAorCXt9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX3BhcmFtZXRlcl9kZXNjcmlwdGlvbiBmZnNfZnNfZnNfcGFyYW1ldGVycyA9IHsKKwkubmFtZQkJPSAia0FGUyIsCisJLnNwZWNzCQk9IGZmc19mc19wYXJhbV9zcGVjcywKK307CisKK3N0YXRpYyBpbnQgZmZzX2ZzX3BhcnNlX3BhcmFtKHN0cnVjdCBmc19jb250ZXh0ICpmYywgc3RydWN0IGZzX3BhcmFtZXRlciAqcGFyYW0pCiB7CisJc3RydWN0IGZmc19zYl9maWxsX2RhdGEgKmRhdGEgPSBmYy0+ZnNfcHJpdmF0ZTsKKwlzdHJ1Y3QgZnNfcGFyc2VfcmVzdWx0IHJlc3VsdDsKKwlpbnQgb3B0OworCiAJRU5URVIoKTsKIAotCWlmICghb3B0cyB8fCAhKm9wdHMpCi0JCXJldHVybiAwOworCW9wdCA9IGZzX3BhcnNlKGZjLCAmZmZzX2ZzX2ZzX3BhcmFtZXRlcnMsIHBhcmFtLCAmcmVzdWx0KTsKKwlpZiAob3B0IDwgMCkKKwkJcmV0dXJuIG9wdDsKIAotCWZvciAoOzspIHsKLQkJdW5zaWduZWQgbG9uZyB2YWx1ZTsKLQkJY2hhciAqZXEsICpjb21tYTsKKwlzd2l0Y2ggKG9wdCkgeworCWNhc2UgT3B0X25vX2Rpc2Nvbm5lY3Q6CisJCWRhdGEtPm5vX2Rpc2Nvbm5lY3QgPSByZXN1bHQuYm9vbGVhbjsKKwkJYnJlYWs7CisJY2FzZSBPcHRfcm1vZGU6CisJCWRhdGEtPnJvb3RfbW9kZSAgPSAocmVzdWx0LnVpbnRfMzIgJiAwNTU1KSB8IFNfSUZESVI7CisJCWJyZWFrOworCWNhc2UgT3B0X2Ztb2RlOgorCQlkYXRhLT5wZXJtcy5tb2RlID0gKHJlc3VsdC51aW50XzMyICYgMDY2NikgfCBTX0lGUkVHOworCQlicmVhazsKKwljYXNlIE9wdF9tb2RlOgorCQlkYXRhLT5yb290X21vZGUgID0gKHJlc3VsdC51aW50XzMyICYgMDU1NSkgfCBTX0lGRElSOworCQlkYXRhLT5wZXJtcy5tb2RlID0gKHJlc3VsdC51aW50XzMyICYgMDY2NikgfCBTX0lGUkVHOworCQlicmVhazsKIAotCQkvKiBPcHRpb24gbGltaXQgKi8KLQkJY29tbWEgPSBzdHJjaHIob3B0cywgJywnKTsKLQkJaWYgKGNvbW1hKQotCQkJKmNvbW1hID0gMDsKKwljYXNlIE9wdF91aWQ6CisJCWRhdGEtPnBlcm1zLnVpZCA9IG1ha2Vfa3VpZChjdXJyZW50X3VzZXJfbnMoKSwgcmVzdWx0LnVpbnRfMzIpOworCQlpZiAoIXVpZF92YWxpZChkYXRhLT5wZXJtcy51aWQpKQorCQkJZ290byB1bm1hcHBlZF92YWx1ZTsKKwkJYnJlYWs7CisJY2FzZSBPcHRfZ2lkOgorCQlkYXRhLT5wZXJtcy5naWQgPSBtYWtlX2tnaWQoY3VycmVudF91c2VyX25zKCksIHJlc3VsdC51aW50XzMyKTsKKwkJaWYgKCFnaWRfdmFsaWQoZGF0YS0+cGVybXMuZ2lkKSkKKwkJCWdvdG8gdW5tYXBwZWRfdmFsdWU7CisJCWJyZWFrOwogCi0JCS8qIFZhbHVlIGxpbWl0ICovCi0JCWVxID0gc3RyY2hyKG9wdHMsICc9Jyk7Ci0JCWlmICh1bmxpa2VseSghZXEpKSB7Ci0JCQlwcl9lcnIoIic9JyBtaXNzaW5nIGluICVzXG4iLCBvcHRzKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCSplcSA9IDA7Ci0KLQkJLyogUGFyc2UgdmFsdWUgKi8KLQkJaWYgKGtzdHJ0b3VsKGVxICsgMSwgMCwgJnZhbHVlKSkgewotCQkJcHJfZXJyKCIlczogaW52YWxpZCB2YWx1ZTogJXNcbiIsIG9wdHMsIGVxICsgMSk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCS8qIEludGVycHJldCBvcHRpb24gKi8KLQkJc3dpdGNoIChlcSAtIG9wdHMpIHsKLQkJY2FzZSAxMzoKLQkJCWlmICghbWVtY21wKG9wdHMsICJub19kaXNjb25uZWN0IiwgMTMpKQotCQkJCWRhdGEtPm5vX2Rpc2Nvbm5lY3QgPSAhIXZhbHVlOwotCQkJZWxzZQotCQkJCWdvdG8gaW52YWxpZDsKLQkJCWJyZWFrOwotCQljYXNlIDU6Ci0JCQlpZiAoIW1lbWNtcChvcHRzLCAicm1vZGUiLCA1KSkKLQkJCQlkYXRhLT5yb290X21vZGUgID0gKHZhbHVlICYgMDU1NSkgfCBTX0lGRElSOwotCQkJZWxzZSBpZiAoIW1lbWNtcChvcHRzLCAiZm1vZGUiLCA1KSkKLQkJCQlkYXRhLT5wZXJtcy5tb2RlID0gKHZhbHVlICYgMDY2NikgfCBTX0lGUkVHOwotCQkJZWxzZQotCQkJCWdvdG8gaW52YWxpZDsKLQkJCWJyZWFrOwotCi0JCWNhc2UgNDoKLQkJCWlmICghbWVtY21wKG9wdHMsICJtb2RlIiwgNCkpIHsKLQkJCQlkYXRhLT5yb290X21vZGUgID0gKHZhbHVlICYgMDU1NSkgfCBTX0lGRElSOwotCQkJCWRhdGEtPnBlcm1zLm1vZGUgPSAodmFsdWUgJiAwNjY2KSB8IFNfSUZSRUc7Ci0JCQl9IGVsc2UgewotCQkJCWdvdG8gaW52YWxpZDsKLQkJCX0KLQkJCWJyZWFrOwotCi0JCWNhc2UgMzoKLQkJCWlmICghbWVtY21wKG9wdHMsICJ1aWQiLCAzKSkgewotCQkJCWRhdGEtPnBlcm1zLnVpZCA9IG1ha2Vfa3VpZChjdXJyZW50X3VzZXJfbnMoKSwgdmFsdWUpOwotCQkJCWlmICghdWlkX3ZhbGlkKGRhdGEtPnBlcm1zLnVpZCkpIHsKLQkJCQkJcHJfZXJyKCIlczogdW5tYXBwZWQgdmFsdWU6ICVsdVxuIiwgb3B0cywgdmFsdWUpOwotCQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCQl9Ci0JCQl9IGVsc2UgaWYgKCFtZW1jbXAob3B0cywgImdpZCIsIDMpKSB7Ci0JCQkJZGF0YS0+cGVybXMuZ2lkID0gbWFrZV9rZ2lkKGN1cnJlbnRfdXNlcl9ucygpLCB2YWx1ZSk7Ci0JCQkJaWYgKCFnaWRfdmFsaWQoZGF0YS0+cGVybXMuZ2lkKSkgewotCQkJCQlwcl9lcnIoIiVzOiB1bm1hcHBlZCB2YWx1ZTogJWx1XG4iLCBvcHRzLCB2YWx1ZSk7Ci0JCQkJCXJldHVybiAtRUlOVkFMOwotCQkJCX0KLQkJCX0gZWxzZSB7Ci0JCQkJZ290byBpbnZhbGlkOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLWludmFsaWQ6Ci0JCQlwcl9lcnIoIiVzOiBpbnZhbGlkIG9wdGlvblxuIiwgb3B0cyk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCS8qIE5leHQgaXRlcmF0aW9uICovCi0JCWlmICghY29tbWEpCi0JCQlicmVhazsKLQkJb3B0cyA9IGNvbW1hICsgMTsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVOT1BBUkFNOwogCX0KIAogCXJldHVybiAwOworCit1bm1hcHBlZF92YWx1ZToKKwlyZXR1cm4gaW52YWxmKGZjLCAiJXM6IHVubWFwcGVkIHZhbHVlOiAldSIsIHBhcmFtLT5rZXksIHJlc3VsdC51aW50XzMyKTsKIH0KIAotLyogIm1vdW50IC10IGZ1bmN0aW9uZnMgZGV2X25hbWUgL2Rldi9mdW5jdGlvbiIgZW5kcyB1cCBoZXJlICovCi0KLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoKLWZmc19mc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqdCwgaW50IGZsYWdzLAotCSAgICAgIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpvcHRzKQorLyoKKyAqIFNldCB1cCB0aGUgc3VwZXJibG9jayBmb3IgYSBtb3VudC4KKyAqLworc3RhdGljIGludCBmZnNfZnNfZ2V0X3RyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewotCXN0cnVjdCBmZnNfc2JfZmlsbF9kYXRhIGRhdGEgPSB7Ci0JCS5wZXJtcyA9IHsKLQkJCS5tb2RlID0gU19JRlJFRyB8IDA2MDAsCi0JCQkudWlkID0gR0xPQkFMX1JPT1RfVUlELAotCQkJLmdpZCA9IEdMT0JBTF9ST09UX0dJRCwKLQkJfSwKLQkJLnJvb3RfbW9kZSA9IFNfSUZESVIgfCAwNTAwLAotCQkubm9fZGlzY29ubmVjdCA9IGZhbHNlLAotCX07Ci0Jc3RydWN0IGRlbnRyeSAqcnY7Ci0JaW50IHJldDsKKwlzdHJ1Y3QgZmZzX3NiX2ZpbGxfZGF0YSAqY3R4ID0gZmMtPmZzX3ByaXZhdGU7CiAJdm9pZCAqZmZzX2RldjsKIAlzdHJ1Y3QgZmZzX2RhdGEJKmZmczsKIAogCUVOVEVSKCk7CiAKLQlyZXQgPSBmZnNfZnNfcGFyc2Vfb3B0cygmZGF0YSwgb3B0cyk7Ci0JaWYgKHVubGlrZWx5KHJldCA8IDApKQotCQlyZXR1cm4gRVJSX1BUUihyZXQpOworCWlmICghZmMtPnNvdXJjZSkKKwkJcmV0dXJuIGludmFsZihmYywgIk5vIHNvdXJjZSBzcGVjaWZpZWQiKTsKIAotCWZmcyA9IGZmc19kYXRhX25ldyhkZXZfbmFtZSk7CisJZmZzID0gZmZzX2RhdGFfbmV3KGZjLT5zb3VyY2UpOwogCWlmICh1bmxpa2VseSghZmZzKSkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JZmZzLT5maWxlX3Blcm1zID0gZGF0YS5wZXJtczsKLQlmZnMtPm5vX2Rpc2Nvbm5lY3QgPSBkYXRhLm5vX2Rpc2Nvbm5lY3Q7CisJCXJldHVybiAtRU5PTUVNOworCWZmcy0+ZmlsZV9wZXJtcyA9IGN0eC0+cGVybXM7CisJZmZzLT5ub19kaXNjb25uZWN0ID0gY3R4LT5ub19kaXNjb25uZWN0OwogCi0JZmZzLT5kZXZfbmFtZSA9IGtzdHJkdXAoZGV2X25hbWUsIEdGUF9LRVJORUwpOworCWZmcy0+ZGV2X25hbWUgPSBrc3RyZHVwKGZjLT5zb3VyY2UsIEdGUF9LRVJORUwpOwogCWlmICh1bmxpa2VseSghZmZzLT5kZXZfbmFtZSkpIHsKIAkJZmZzX2RhdGFfcHV0KGZmcyk7Ci0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKLQlmZnNfZGV2ID0gZmZzX2FjcXVpcmVfZGV2KGRldl9uYW1lKTsKKwlmZnNfZGV2ID0gZmZzX2FjcXVpcmVfZGV2KGZmcy0+ZGV2X25hbWUpOwogCWlmIChJU19FUlIoZmZzX2RldikpIHsKIAkJZmZzX2RhdGFfcHV0KGZmcyk7Ci0JCXJldHVybiBFUlJfQ0FTVChmZnNfZGV2KTsKKwkJcmV0dXJuIFBUUl9FUlIoZmZzX2Rldik7CiAJfQotCWZmcy0+cHJpdmF0ZV9kYXRhID0gZmZzX2RldjsKLQlkYXRhLmZmc19kYXRhID0gZmZzOwogCi0JcnYgPSBtb3VudF9ub2Rldih0LCBmbGFncywgJmRhdGEsIGZmc19zYl9maWxsKTsKLQlpZiAoSVNfRVJSKHJ2KSAmJiBkYXRhLmZmc19kYXRhKSB7Ci0JCWZmc19yZWxlYXNlX2RldihkYXRhLmZmc19kYXRhKTsKLQkJZmZzX2RhdGFfcHV0KGRhdGEuZmZzX2RhdGEpOworCWZmcy0+cHJpdmF0ZV9kYXRhID0gZmZzX2RldjsKKwljdHgtPmZmc19kYXRhID0gZmZzOworCXJldHVybiBnZXRfdHJlZV9ub2RldihmYywgZmZzX3NiX2ZpbGwpOworfQorCitzdGF0aWMgdm9pZCBmZnNfZnNfZnJlZV9mYyhzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCit7CisJc3RydWN0IGZmc19zYl9maWxsX2RhdGEgKmN0eCA9IGZjLT5mc19wcml2YXRlOworCisJaWYgKGN0eCkgeworCQlpZiAoY3R4LT5mZnNfZGF0YSkgeworCQkJZmZzX3JlbGVhc2VfZGV2KGN0eC0+ZmZzX2RhdGEpOworCQkJZmZzX2RhdGFfcHV0KGN0eC0+ZmZzX2RhdGEpOworCQl9CisKKwkJa2ZyZWUoY3R4KTsKIAl9Ci0JcmV0dXJuIHJ2OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX2NvbnRleHRfb3BlcmF0aW9ucyBmZnNfZnNfY29udGV4dF9vcHMgPSB7CisJLmZyZWUJCT0gZmZzX2ZzX2ZyZWVfZmMsCisJLnBhcnNlX3BhcmFtCT0gZmZzX2ZzX3BhcnNlX3BhcmFtLAorCS5nZXRfdHJlZQk9IGZmc19mc19nZXRfdHJlZSwKK307CisKK3N0YXRpYyBpbnQgZmZzX2ZzX2luaXRfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCit7CisJc3RydWN0IGZmc19zYl9maWxsX2RhdGEgKmN0eDsKKworCWN0eCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBmZnNfc2JfZmlsbF9kYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjdHgpCisJCXJldHVybiAtRU5PTUVNOworCisJY3R4LT5wZXJtcy5tb2RlID0gU19JRlJFRyB8IDA2MDA7CisJY3R4LT5wZXJtcy51aWQgPSBHTE9CQUxfUk9PVF9VSUQ7CisJY3R4LT5wZXJtcy5naWQgPSBHTE9CQUxfUk9PVF9HSUQ7CisJY3R4LT5yb290X21vZGUgPSBTX0lGRElSIHwgMDUwMDsKKwljdHgtPm5vX2Rpc2Nvbm5lY3QgPSBmYWxzZTsKKworCWZjLT5mc19wcml2YXRlID0gY3R4OworCWZjLT5vcHMgPSAmZmZzX2ZzX2NvbnRleHRfb3BzOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTY0NCw3ICsxNjUwLDggQEAgZmZzX2ZzX2tpbGxfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBmZnNfZnNfdHlwZSA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLm5hbWUJCT0gImZ1bmN0aW9uZnMiLAotCS5tb3VudAkJPSBmZnNfZnNfbW91bnQsCisJLmluaXRfZnNfY29udGV4dCA9IGZmc19mc19pbml0X2ZzX2NvbnRleHQsCisJLnBhcmFtZXRlcnMJPSAmZmZzX2ZzX2ZzX3BhcmFtZXRlcnMsCiAJLmtpbGxfc2IJPSBmZnNfZnNfa2lsbF9zYiwKIH07CiBNT0RVTEVfQUxJQVNfRlMoImZ1bmN0aW9uZnMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvTWFrZWZpbGUgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL01ha2VmaWxlCmluZGV4IGE2N2RkY2IuLjQ2NjM1ZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvTWFrZWZpbGUKKysrIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9NYWtlZmlsZQpAQCAtOCw2ICs4LDggQEAKIAogY2NmbGFncy15IDo9IC1JICQoc3JjdHJlZSkvZHJpdmVycy9zY3NpCiAKK2NjZmxhZ3MteSArPSAtRERFRkFVTFRfU1lNQk9MX05BTUVTUEFDRT1VU0JfU1RPUkFHRQorCiBvYmotJChDT05GSUdfVVNCX1VBUykJCSs9IHVhcy5vCiBvYmotJChDT05GSUdfVVNCX1NUT1JBR0UpCSs9IHVzYi1zdG9yYWdlLm8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS9hbGF1ZGEuYyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvYWxhdWRhLmMKaW5kZXggNmI4ZWRmNi4uZGRhYjJjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS9hbGF1ZGEuYworKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL2FsYXVkYS5jCkBAIC0zNiw2ICszNiw3IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oIkRyaXZlciBmb3IgQWxhdWRhLWJhc2VkIGNhcmQgcmVhZGVycyIpOwogTU9EVUxFX0FVVEhPUigiRGFuaWVsIERyYWtlIDxkc2RAZ2VudG9vLm9yZz4iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9JTVBPUlRfTlMoVVNCX1NUT1JBR0UpOwogCiAvKgogICogU3RhdHVzIGJ5dGVzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2N5cHJlc3NfYXRhY2IuYyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvY3lwcmVzc19hdGFjYi5jCmluZGV4IDQ4MjU5MDIuLmE2ZjMyNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvY3lwcmVzc19hdGFjYi5jCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvY3lwcmVzc19hdGFjYi5jCkBAIC0yMiw2ICsyMiw3IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oIlNBVCBzdXBwb3J0IGZvciBDeXByZXNzIFVTQi9BVEEgYnJpZGdlcyB3aXRoIEFUQUNCIik7CiBNT0RVTEVfQVVUSE9SKCJNYXR0aGlldSBDYXN0ZXQgPGNhc3RldC5tYXR0aGlldUBmcmVlLmZyPiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0lNUE9SVF9OUyhVU0JfU1RPUkFHRSk7CiAKIC8qCiAgKiBUaGUgdGFibGUgb2YgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS9kYXRhZmFiLmMgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL2RhdGFmYWIuYwppbmRleCAwOTM1M2JlLi41ODg4MTg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2RhdGFmYWIuYworKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL2RhdGFmYWIuYwpAQCAtNTQsNiArNTQsNyBAQAogTU9EVUxFX0RFU0NSSVBUSU9OKCJEcml2ZXIgZm9yIERhdGFmYWIgVVNCIENvbXBhY3QgRmxhc2ggcmVhZGVyIik7CiBNT0RVTEVfQVVUSE9SKCJKaW1taWUgTWF5ZmllbGQgPG1heWZpZWxkK2RhdGFmYWJAc2Fja2hlYWRzLm9yZz4iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9JTVBPUlRfTlMoVVNCX1NUT1JBR0UpOwogCiBzdHJ1Y3QgZGF0YWZhYl9pbmZvIHsKIAl1bnNpZ25lZCBsb25nICAgc2VjdG9yczsJLyogdG90YWwgc2VjdG9yIGNvdW50ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2VuZV91YjYyNTAuYyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvZW5lX3ViNjI1MC5jCmluZGV4IGMyNjEyOWQuLjhiMWI3MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvZW5lX3ViNjI1MC5jCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvZW5lX3ViNjI1MC5jCkBAIC0yNiw2ICsyNiw3IEBACiAKIE1PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIGZvciBFTkUgVUI2MjUwIHJlYWRlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0lNUE9SVF9OUyhVU0JfU1RPUkFHRSk7CiBNT0RVTEVfRklSTVdBUkUoU0RfSU5JVDFfRklSTVdBUkUpOwogTU9EVUxFX0ZJUk1XQVJFKFNEX0lOSVQyX0ZJUk1XQVJFKTsKIE1PRFVMRV9GSVJNV0FSRShTRF9SV19GSVJNV0FSRSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2ZyZWVjb20uYyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvZnJlZWNvbS5jCmluZGV4IDRmNTQyZGYuLjM0ZTdlYWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvZnJlZWNvbS5jCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvZnJlZWNvbS5jCkBAIC0yOSw2ICsyOSw3IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oIkRyaXZlciBmb3IgRnJlZWNvbSBVU0IvSURFIGFkYXB0b3IiKTsKIE1PRFVMRV9BVVRIT1IoIkRhdmlkIEJyb3duIDx1c2Itc3RvcmFnZUBkYXZpZGIub3JnPiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0lNUE9SVF9OUyhVU0JfU1RPUkFHRSk7CiAKICNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcKIHN0YXRpYyB2b2lkIHBkdW1wKHN0cnVjdCB1c19kYXRhICp1cywgdm9pZCAqaWJ1ZmZlciwgaW50IGxlbmd0aCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2lzZDIwMC5jIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9pc2QyMDAuYwppbmRleCAyOGUxMTI4Li44OWY1ZTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2lzZDIwMC5jCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvaXNkMjAwLmMKQEAgLTUzLDYgKzUzLDcgQEAKIE1PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIGZvciBJbi1TeXN0ZW0gRGVzaWduLCBJbmMuIElTRDIwMCBBU0lDIik7CiBNT0RVTEVfQVVUSE9SKCJCasO2cm4gU3RlbmJlcmcgPGJqb3JuQGhheHguc2U+Iik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfSU1QT1JUX05TKFVTQl9TVE9SQUdFKTsKIAogc3RhdGljIGludCBpc2QyMDBfSW5pdGlhbGl6YXRpb24oc3RydWN0IHVzX2RhdGEgKnVzKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS9qdW1wc2hvdC5jIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9qdW1wc2hvdC5jCmluZGV4IDkxN2YxNzAuLjIyOWJmMGMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2p1bXBzaG90LmMKKysrIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9qdW1wc2hvdC5jCkBAIC01MSw2ICs1MSw3IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oIkRyaXZlciBmb3IgTGV4YXIgXCJKdW1wc2hvdFwiIENvbXBhY3QgRmxhc2ggcmVhZGVyIik7CiBNT0RVTEVfQVVUSE9SKCJKaW1taWUgTWF5ZmllbGQgPG1heWZpZWxkK3VzYkBzYWNraGVhZHMub3JnPiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0lNUE9SVF9OUyhVU0JfU1RPUkFHRSk7CiAKIC8qCiAgKiBUaGUgdGFibGUgb2YgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS9rYXJtYS5jIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9rYXJtYS5jCmluZGV4IDM5NWNmOGYuLjA1Y2VjODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2Uva2FybWEuYworKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL2thcm1hLmMKQEAgLTIzLDYgKzIzLDcgQEAKIE1PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIGZvciBSaW8gS2FybWEiKTsKIE1PRFVMRV9BVVRIT1IoIkJvYiBDb3BlbGFuZCA8bWVAYm9iY29wZWxhbmQuY29tPiwgS2VpdGggQmVubmV0dCA8a2VpdGhAbWNzLnN0LWFuZC5hYy51az4iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9JTVBPUlRfTlMoVVNCX1NUT1JBR0UpOwogCiAjZGVmaW5lIFJJT19QUkVGSVggIlJJT1BceDAwIgogI2RlZmluZSBSSU9fUFJFRklYX0xFTiA1CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL29uZXRvdWNoLmMgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL29uZXRvdWNoLmMKaW5kZXggMzlhNTAwOWEuLmE5ODlmZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2Uvb25ldG91Y2guYworKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL29uZXRvdWNoLmMKQEAgLTI1LDYgKzI1LDcgQEAKIE1PRFVMRV9ERVNDUklQVElPTigiTWF4dG9yIFVTQiBPbmVUb3VjaCBoYXJkIGRyaXZlIGJ1dHRvbiBkcml2ZXIiKTsKIE1PRFVMRV9BVVRIT1IoIk5pY2sgU2lsbGlrIDxuLnNpbGxpa0B0ZW1wbGUuZWR1PiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0lNUE9SVF9OUyhVU0JfU1RPUkFHRSk7CiAKICNkZWZpbmUgT05FVE9VQ0hfUEtUX0xFTiAgICAgICAgMHgwMgogI2RlZmluZSBPTkVUT1VDSF9CVVRUT04gICAgICAgICBLRVlfUFJPRzEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvcmVhbHRla19jci5jIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9yZWFsdGVrX2NyLmMKaW5kZXggMWQ5Y2U5Y2IuLjM3ODk2OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvcmVhbHRla19jci5jCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvcmVhbHRla19jci5jCkBAIC0zNSw2ICszNSw3IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oIkRyaXZlciBmb3IgUmVhbHRlayBVU0IgQ2FyZCBSZWFkZXIiKTsKIE1PRFVMRV9BVVRIT1IoInd3YW5nIDx3ZWlfd2FuZ0ByZWFsc2lsLmNvbS5jbj4iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9JTVBPUlRfTlMoVVNCX1NUT1JBR0UpOwogCiBzdGF0aWMgaW50IGF1dG9fZGVsaW5rX2VuID0gMTsKIG1vZHVsZV9wYXJhbShhdXRvX2RlbGlua19lbiwgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3NkZHIwOS5jIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9zZGRyMDkuYwppbmRleCBiYzlkYTczLi41MWJjZDRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3NkZHIwOS5jCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2Uvc2RkcjA5LmMKQEAgLTQ3LDYgKzQ3LDcgQEAKIE1PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIGZvciBTYW5EaXNrIFNERFItMDkgU21hcnRNZWRpYSByZWFkZXIiKTsKIE1PRFVMRV9BVVRIT1IoIkFuZHJpZXMgQnJvdXdlciA8YWViQGN3aS5ubD4sIFJvYmVydCBCYXJ1Y2ggPGF1dG9waGlsZUBzdGFyYmFuZC5uZXQ+Iik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfSU1QT1JUX05TKFVTQl9TVE9SQUdFKTsKIAogc3RhdGljIGludCB1c2Jfc3Rvcl9zZGRyMDlfZHBjbV9pbml0KHN0cnVjdCB1c19kYXRhICp1cyk7CiBzdGF0aWMgaW50IHNkZHIwOV90cmFuc3BvcnQoc3RydWN0IHNjc2lfY21uZCAqc3JiLCBzdHJ1Y3QgdXNfZGF0YSAqdXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS9zZGRyNTUuYyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2Uvc2RkcjU1LmMKaW5kZXggYjg1MjdjNS4uYmE5NTVkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS9zZGRyNTUuYworKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3NkZHI1NS5jCkBAIC0yOSw2ICsyOSw3IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oIkRyaXZlciBmb3IgU2FuRGlzayBTRERSLTU1IFNtYXJ0TWVkaWEgcmVhZGVyIik7CiBNT0RVTEVfQVVUSE9SKCJTaW1vbiBNdW50b24iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9JTVBPUlRfTlMoVVNCX1NUT1JBR0UpOwogCiAvKgogICogVGhlIHRhYmxlIG9mIGRldmljZXMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2Uvc2h1dHRsZV91c2JhdC5jIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9zaHV0dGxlX3VzYmF0LmMKaW5kZXggODU0NDk4ZS4uNTRhYTEzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS9zaHV0dGxlX3VzYmF0LmMKKysrIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9zaHV0dGxlX3VzYmF0LmMKQEAgLTQ4LDYgKzQ4LDcgQEAKIE1PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIGZvciBTQ00gTWljcm9zeXN0ZW1zIChhLmsuYS4gU2h1dHRsZSkgVVNCLUFUQVBJIGNhYmxlIik7CiBNT0RVTEVfQVVUSE9SKCJEYW5pZWwgRHJha2UgPGRzZEBnZW50b28ub3JnPiwgUm9iZXJ0IEJhcnVjaCA8YXV0b3BoaWxlQHN0YXJiYW5kLm5ldD4iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9JTVBPUlRfTlMoVVNCX1NUT1JBR0UpOwogCiAvKiBTdXBwb3J0ZWQgZGV2aWNlIHR5cGVzICovCiAjZGVmaW5lIFVTQkFUX0RFVl9IUDgyMDAJMHgwMQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS91YXMuYyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdWFzLmMKaW5kZXggMDQ3YzU5Mi4uYmY4MGQ2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS91YXMuYworKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3Vhcy5jCkBAIC0xMjE5LDUgKzEyMTksNiBAQCBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgdWFzX2RyaXZlciA9IHsKIG1vZHVsZV91c2JfZHJpdmVyKHVhc19kcml2ZXIpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfSU1QT1JUX05TKFVTQl9TVE9SQUdFKTsKIE1PRFVMRV9BVVRIT1IoCiAJIkhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+LCBNYXR0aGV3IFdpbGNveCBhbmQgU2FyYWggU2hhcnAiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2kuYyBiL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2kuYwppbmRleCA3MDM5NDhjLi4wMjIwNjE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpLmMKKysrIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaS5jCkBAIC00MzgsMTEgKzQzOCwyMCBAQCBzdGF0aWMgdm9pZCB2ZmlvX3BjaV9kaXNhYmxlKHN0cnVjdCB2ZmlvX3BjaV9kZXZpY2UgKnZkZXYpCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHBkZXYsIFBDSV9DT01NQU5ELCBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUpOwogCiAJLyoKLQkgKiBUcnkgdG8gcmVzZXQgdGhlIGRldmljZS4gIFRoZSBzdWNjZXNzIG9mIHRoaXMgaXMgZGVwZW5kZW50IG9uCi0JICogYmVpbmcgYWJsZSB0byBsb2NrIHRoZSBkZXZpY2UsIHdoaWNoIGlzIG5vdCBhbHdheXMgcG9zc2libGUuCisJICogVHJ5IHRvIGdldCB0aGUgbG9ja3Mgb3Vyc2VsdmVzIHRvIHByZXZlbnQgYSBkZWFkbG9jay4gVGhlCisJICogc3VjY2VzcyBvZiB0aGlzIGlzIGRlcGVuZGVudCBvbiBiZWluZyBhYmxlIHRvIGxvY2sgdGhlIGRldmljZSwKKwkgKiB3aGljaCBpcyBub3QgYWx3YXlzIHBvc3NpYmxlLgorCSAqIFdlIGNhbiBub3QgdXNlIHRoZSAidHJ5IiByZXNldCBpbnRlcmZhY2UgaGVyZSwgd2hpY2ggd2lsbAorCSAqIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXNseSByZXN0b3JlZCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uLgogCSAqLwotCWlmICh2ZGV2LT5yZXNldF93b3JrcyAmJiAhcGNpX3RyeV9yZXNldF9mdW5jdGlvbihwZGV2KSkKLQkJdmRldi0+bmVlZHNfcmVzZXQgPSBmYWxzZTsKKwlpZiAodmRldi0+cmVzZXRfd29ya3MgJiYgcGNpX2NmZ19hY2Nlc3NfdHJ5bG9jayhwZGV2KSkgeworCQlpZiAoZGV2aWNlX3RyeWxvY2soJnBkZXYtPmRldikpIHsKKwkJCWlmICghX19wY2lfcmVzZXRfZnVuY3Rpb25fbG9ja2VkKHBkZXYpKQorCQkJCXZkZXYtPm5lZWRzX3Jlc2V0ID0gZmFsc2U7CisJCQlkZXZpY2VfdW5sb2NrKCZwZGV2LT5kZXYpOworCQl9CisJCXBjaV9jZmdfYWNjZXNzX3VubG9jayhwZGV2KTsKKwl9CiAKIAlwY2lfcmVzdG9yZV9zdGF0ZShwZGV2KTsKIG91dDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby92ZmlvX2lvbW11X3NwYXByX3RjZS5jIGIvZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfc3BhcHJfdGNlLmMKaW5kZXggOGNlOWFkMi4uMjZjZWY2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfc3BhcHJfdGNlLmMKKysrIGIvZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfc3BhcHJfdGNlLmMKQEAgLTE3NiwxMyArMTc2LDEzIEBAIHN0YXRpYyBsb25nIHRjZV9pb21tdV9yZWdpc3Rlcl9wYWdlcyhzdHJ1Y3QgdGNlX2NvbnRhaW5lciAqY29udGFpbmVyLAogfQogCiBzdGF0aWMgYm9vbCB0Y2VfcGFnZV9pc19jb250YWluZWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgaHBhLAotCQl1bnNpZ25lZCBpbnQgcGFnZV9zaGlmdCkKKwkJdW5zaWduZWQgaW50IGl0X3BhZ2Vfc2hpZnQpCiB7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJdW5zaWduZWQgbG9uZyBzaXplID0gMDsKIAotCWlmIChtbV9pb21tdV9pc19kZXZtZW0obW0sIGhwYSwgcGFnZV9zaGlmdCwgJnNpemUpKQotCQlyZXR1cm4gc2l6ZSA9PSAoMVVMIDw8IHBhZ2Vfc2hpZnQpOworCWlmIChtbV9pb21tdV9pc19kZXZtZW0obW0sIGhwYSwgaXRfcGFnZV9zaGlmdCwgJnNpemUpKQorCQlyZXR1cm4gc2l6ZSA9PSAoMVVMIDw8IGl0X3BhZ2Vfc2hpZnQpOwogCiAJcGFnZSA9IHBmbl90b19wYWdlKGhwYSA+PiBQQUdFX1NISUZUKTsKIAkvKgpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBib29sIHRjZV9wYWdlX2lzX2NvbnRhaW5lZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBocGEsCiAJICogYSBwYWdlIHdlIGp1c3QgZm91bmQuIE90aGVyd2lzZSB0aGUgaGFyZHdhcmUgY2FuIGdldCBhY2Nlc3MgdG8KIAkgKiBhIGJpZ2dlciBtZW1vcnkgY2h1bmsgdGhhdCBpdCBzaG91bGQuCiAJICovCi0JcmV0dXJuIChQQUdFX1NISUZUICsgY29tcG91bmRfb3JkZXIoY29tcG91bmRfaGVhZChwYWdlKSkpID49IHBhZ2Vfc2hpZnQ7CisJcmV0dXJuIHBhZ2Vfc2hpZnQoY29tcG91bmRfaGVhZChwYWdlKSkgPj0gaXRfcGFnZV9zaGlmdDsKIH0KIAogc3RhdGljIGlubGluZSBib29sIHRjZV9ncm91cHNfYXR0YWNoZWQoc3RydWN0IHRjZV9jb250YWluZXIgKmNvbnRhaW5lcikKQEAgLTQzNSw3ICs0MzUsNyBAQCBzdGF0aWMgaW50IHRjZV9pb21tdV9jbGVhcihzdHJ1Y3QgdGNlX2NvbnRhaW5lciAqY29udGFpbmVyLAogCXVuc2lnbmVkIGxvbmcgb2xkaHBhOwogCWxvbmcgcmV0OwogCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlvbjsKLQl1bnNpZ25lZCBsb25nIGxhc3RlbnRyeSA9IGVudHJ5ICsgcGFnZXM7CisJdW5zaWduZWQgbG9uZyBsYXN0ZW50cnkgPSBlbnRyeSArIHBhZ2VzLCBmaXJzdGVudHJ5ID0gZW50cnk7CiAKIAlmb3IgKCA7IGVudHJ5IDwgbGFzdGVudHJ5OyArK2VudHJ5KSB7CiAJCWlmICh0YmwtPml0X2luZGlyZWN0X2xldmVscyAmJiB0YmwtPml0X3VzZXJzcGFjZSkgewpAQCAtNDYwLDcgKzQ2MCw3IEBAIHN0YXRpYyBpbnQgdGNlX2lvbW11X2NsZWFyKHN0cnVjdCB0Y2VfY29udGFpbmVyICpjb250YWluZXIsCiAKIAkJZGlyZWN0aW9uID0gRE1BX05PTkU7CiAJCW9sZGhwYSA9IDA7Ci0JCXJldCA9IGlvbW11X3RjZV94Y2hnKGNvbnRhaW5lci0+bW0sIHRibCwgZW50cnksICZvbGRocGEsCisJCXJldCA9IGlvbW11X3RjZV94Y2hnX25vX2tpbGwoY29udGFpbmVyLT5tbSwgdGJsLCBlbnRyeSwgJm9sZGhwYSwKIAkJCQkmZGlyZWN0aW9uKTsKIAkJaWYgKHJldCkKIAkJCWNvbnRpbnVlOwpAQCAtNDc2LDYgKzQ3Niw4IEBAIHN0YXRpYyBpbnQgdGNlX2lvbW11X2NsZWFyKHN0cnVjdCB0Y2VfY29udGFpbmVyICpjb250YWluZXIsCiAJCXRjZV9pb21tdV91bnVzZV9wYWdlKGNvbnRhaW5lciwgb2xkaHBhKTsKIAl9CiAKKwlpb21tdV90Y2Vfa2lsbCh0YmwsIGZpcnN0ZW50cnksIHBhZ2VzKTsKKwogCXJldHVybiAwOwogfQogCkBAIC01MTgsOCArNTIwLDggQEAgc3RhdGljIGxvbmcgdGNlX2lvbW11X2J1aWxkKHN0cnVjdCB0Y2VfY29udGFpbmVyICpjb250YWluZXIsCiAKIAkJaHBhIHw9IG9mZnNldDsKIAkJZGlydG1wID0gZGlyZWN0aW9uOwotCQlyZXQgPSBpb21tdV90Y2VfeGNoZyhjb250YWluZXItPm1tLCB0YmwsIGVudHJ5ICsgaSwgJmhwYSwKLQkJCQkmZGlydG1wKTsKKwkJcmV0ID0gaW9tbXVfdGNlX3hjaGdfbm9fa2lsbChjb250YWluZXItPm1tLCB0YmwsIGVudHJ5ICsgaSwKKwkJCQkmaHBhLCAmZGlydG1wKTsKIAkJaWYgKHJldCkgewogCQkJdGNlX2lvbW11X3VudXNlX3BhZ2UoY29udGFpbmVyLCBocGEpOwogCQkJcHJfZXJyKCJpb21tdV90Y2U6ICVzIGZhaWxlZCBpb2JhPSVseCwgdGNlPSVseCwgcmV0PSVsZFxuIiwKQEAgLTUzNiw2ICs1MzgsOCBAQCBzdGF0aWMgbG9uZyB0Y2VfaW9tbXVfYnVpbGQoc3RydWN0IHRjZV9jb250YWluZXIgKmNvbnRhaW5lciwKIAogCWlmIChyZXQpCiAJCXRjZV9pb21tdV9jbGVhcihjb250YWluZXIsIHRibCwgZW50cnksIGkpOworCWVsc2UKKwkJaW9tbXVfdGNlX2tpbGwodGJsLCBlbnRyeSwgcGFnZXMpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTU3Miw4ICs1NzYsOCBAQCBzdGF0aWMgbG9uZyB0Y2VfaW9tbXVfYnVpbGRfdjIoc3RydWN0IHRjZV9jb250YWluZXIgKmNvbnRhaW5lciwKIAkJaWYgKG1tX2lvbW11X21hcHBlZF9pbmMobWVtKSkKIAkJCWJyZWFrOwogCi0JCXJldCA9IGlvbW11X3RjZV94Y2hnKGNvbnRhaW5lci0+bW0sIHRibCwgZW50cnkgKyBpLCAmaHBhLAotCQkJCSZkaXJ0bXApOworCQlyZXQgPSBpb21tdV90Y2VfeGNoZ19ub19raWxsKGNvbnRhaW5lci0+bW0sIHRibCwgZW50cnkgKyBpLAorCQkJCSZocGEsICZkaXJ0bXApOwogCQlpZiAocmV0KSB7CiAJCQkvKiBkaXJ0bXAgY2Fubm90IGJlIERNQV9OT05FIGhlcmUgKi8KIAkJCXRjZV9pb21tdV91bnVzZV9wYWdlX3YyKGNvbnRhaW5lciwgdGJsLCBlbnRyeSArIGkpOwpAQCAtNTkzLDYgKzU5Nyw4IEBAIHN0YXRpYyBsb25nIHRjZV9pb21tdV9idWlsZF92MihzdHJ1Y3QgdGNlX2NvbnRhaW5lciAqY29udGFpbmVyLAogCiAJaWYgKHJldCkKIAkJdGNlX2lvbW11X2NsZWFyKGNvbnRhaW5lciwgdGJsLCBlbnRyeSwgaSk7CisJZWxzZQorCQlpb21tdV90Y2Vfa2lsbCh0YmwsIGVudHJ5LCBwYWdlcyk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTIzNCw3ICsxMjQwLDcgQEAgc3RhdGljIGxvbmcgdGNlX2lvbW11X3Rha2Vfb3duZXJzaGlwX2RkdyhzdHJ1Y3QgdGNlX2NvbnRhaW5lciAqY29udGFpbmVyLAogc3RhdGljIGludCB0Y2VfaW9tbXVfYXR0YWNoX2dyb3VwKHZvaWQgKmlvbW11X2RhdGEsCiAJCXN0cnVjdCBpb21tdV9ncm91cCAqaW9tbXVfZ3JvdXApCiB7Ci0JaW50IHJldDsKKwlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3QgdGNlX2NvbnRhaW5lciAqY29udGFpbmVyID0gaW9tbXVfZGF0YTsKIAlzdHJ1Y3QgaW9tbXVfdGFibGVfZ3JvdXAgKnRhYmxlX2dyb3VwOwogCXN0cnVjdCB0Y2VfaW9tbXVfZ3JvdXAgKnRjZWdycCA9IE5VTEw7CkBAIC0xMjg3LDEzICsxMjkzLDEzIEBAIHN0YXRpYyBpbnQgdGNlX2lvbW11X2F0dGFjaF9ncm91cCh2b2lkICppb21tdV9kYXRhLAogCQkJIXRhYmxlX2dyb3VwLT5vcHMtPnJlbGVhc2Vfb3duZXJzaGlwKSB7CiAJCWlmIChjb250YWluZXItPnYyKSB7CiAJCQlyZXQgPSAtRVBFUk07Ci0JCQlnb3RvIHVubG9ja19leGl0OworCQkJZ290byBmcmVlX2V4aXQ7CiAJCX0KIAkJcmV0ID0gdGNlX2lvbW11X3Rha2Vfb3duZXJzaGlwKGNvbnRhaW5lciwgdGFibGVfZ3JvdXApOwogCX0gZWxzZSB7CiAJCWlmICghY29udGFpbmVyLT52MikgewogCQkJcmV0ID0gLUVQRVJNOwotCQkJZ290byB1bmxvY2tfZXhpdDsKKwkJCWdvdG8gZnJlZV9leGl0OwogCQl9CiAJCXJldCA9IHRjZV9pb21tdV90YWtlX293bmVyc2hpcF9kZHcoY29udGFpbmVyLCB0YWJsZV9ncm91cCk7CiAJCWlmICghdGNlX2dyb3Vwc19hdHRhY2hlZChjb250YWluZXIpICYmICFjb250YWluZXItPnRhYmxlc1swXSkKQEAgLTEzMDUsMTAgKzEzMTEsMTEgQEAgc3RhdGljIGludCB0Y2VfaW9tbXVfYXR0YWNoX2dyb3VwKHZvaWQgKmlvbW11X2RhdGEsCiAJCWxpc3RfYWRkKCZ0Y2VncnAtPm5leHQsICZjb250YWluZXItPmdyb3VwX2xpc3QpOwogCX0KIAotdW5sb2NrX2V4aXQ6CitmcmVlX2V4aXQ6CiAJaWYgKHJldCAmJiB0Y2VncnApCiAJCWtmcmVlKHRjZWdycCk7CiAKK3VubG9ja19leGl0OgogCW11dGV4X3VubG9jaygmY29udGFpbmVyLT5sb2NrKTsKIAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vdmZpb19pb21tdV90eXBlMS5jIGIvZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfdHlwZTEuYwppbmRleCBhZDgzMGFiLi45NmZkZGMxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfdHlwZTEuYworKysgYi9kcml2ZXJzL3ZmaW8vdmZpb19pb21tdV90eXBlMS5jCkBAIC02Miw2ICs2Miw3IEBAIE1PRFVMRV9QQVJNX0RFU0MoZG1hX2VudHJ5X2xpbWl0LAogCiBzdHJ1Y3QgdmZpb19pb21tdSB7CiAJc3RydWN0IGxpc3RfaGVhZAlkb21haW5fbGlzdDsKKwlzdHJ1Y3QgbGlzdF9oZWFkCWlvdmFfbGlzdDsKIAlzdHJ1Y3QgdmZpb19kb21haW4JKmV4dGVybmFsX2RvbWFpbjsgLyogZG9tYWluIGZvciBleHRlcm5hbCB1c2VyICovCiAJc3RydWN0IG11dGV4CQlsb2NrOwogCXN0cnVjdCByYl9yb290CQlkbWFfbGlzdDsKQEAgLTk3LDYgKzk4LDEyIEBAIHN0cnVjdCB2ZmlvX2dyb3VwIHsKIAlib29sCQkJbWRldl9ncm91cDsJLyogQW4gbWRldiBncm91cCAqLwogfTsKIAorc3RydWN0IHZmaW9faW92YSB7CisJc3RydWN0IGxpc3RfaGVhZAlsaXN0OworCWRtYV9hZGRyX3QJCXN0YXJ0OworCWRtYV9hZGRyX3QJCWVuZDsKK307CisKIC8qCiAgKiBHdWVzdCBSQU0gcGlubmluZyB3b3JraW5nIHNldCBvciBETUEgdGFyZ2V0CiAgKi8KQEAgLTM2OCw2ICszNzUsOCBAQCBzdGF0aWMgaW50IHZhZGRyX2dldF9wZm4oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgdmFkZHIsCiAKIAlkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAKKwl2YWRkciA9IHVudGFnZ2VkX2FkZHIodmFkZHIpOworCiAJdm1hID0gZmluZF92bWFfaW50ZXJzZWN0aW9uKG1tLCB2YWRkciwgdmFkZHIgKyAxKTsKIAogCWlmICh2bWEgJiYgdm1hLT52bV9mbGFncyAmIFZNX1BGTk1BUCkgewpAQCAtMTAzOCw2ICsxMDQ3LDI3IEBAIHN0YXRpYyBpbnQgdmZpb19waW5fbWFwX2RtYShzdHJ1Y3QgdmZpb19pb21tdSAqaW9tbXUsIHN0cnVjdCB2ZmlvX2RtYSAqZG1hLAogCXJldHVybiByZXQ7CiB9CiAKKy8qCisgKiBDaGVjayBkbWEgbWFwIHJlcXVlc3QgaXMgd2l0aGluIGEgdmFsaWQgaW92YSByYW5nZQorICovCitzdGF0aWMgYm9vbCB2ZmlvX2lvbW11X2lvdmFfZG1hX3ZhbGlkKHN0cnVjdCB2ZmlvX2lvbW11ICppb21tdSwKKwkJCQkgICAgICBkbWFfYWRkcl90IHN0YXJ0LCBkbWFfYWRkcl90IGVuZCkKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkICppb3ZhID0gJmlvbW11LT5pb3ZhX2xpc3Q7CisJc3RydWN0IHZmaW9faW92YSAqbm9kZTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkobm9kZSwgaW92YSwgbGlzdCkgeworCQlpZiAoc3RhcnQgPj0gbm9kZS0+c3RhcnQgJiYgZW5kIDw9IG5vZGUtPmVuZCkKKwkJCXJldHVybiB0cnVlOworCX0KKworCS8qCisJICogQ2hlY2sgZm9yIGxpc3RfZW1wdHkoKSBhcyB3ZWxsIHNpbmNlIGEgY29udGFpbmVyIHdpdGgKKwkgKiBhIHNpbmdsZSBtZGV2IGRldmljZSB3aWxsIGhhdmUgYW4gZW1wdHkgbGlzdC4KKwkgKi8KKwlyZXR1cm4gbGlzdF9lbXB0eShpb3ZhKTsKK30KKwogc3RhdGljIGludCB2ZmlvX2RtYV9kb19tYXAoc3RydWN0IHZmaW9faW9tbXUgKmlvbW11LAogCQkJICAgc3RydWN0IHZmaW9faW9tbXVfdHlwZTFfZG1hX21hcCAqbWFwKQogewpAQCAtMTA4MSw2ICsxMTExLDExIEBAIHN0YXRpYyBpbnQgdmZpb19kbWFfZG9fbWFwKHN0cnVjdCB2ZmlvX2lvbW11ICppb21tdSwKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAorCWlmICghdmZpb19pb21tdV9pb3ZhX2RtYV92YWxpZChpb21tdSwgaW92YSwgaW92YSArIHNpemUgLSAxKSkgeworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIG91dF91bmxvY2s7CisJfQorCiAJZG1hID0ga3phbGxvYyhzaXplb2YoKmRtYSksIEdGUF9LRVJORUwpOwogCWlmICghZG1hKSB7CiAJCXJldCA9IC1FTk9NRU07CkBAIC0xMjcwLDE1ICsxMzA1LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgdmZpb19ncm91cCAqZmluZF9pb21tdV9ncm91cChzdHJ1Y3QgdmZpb19kb21haW4gKmRvbWFpbiwKIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGJvb2wgdmZpb19pb21tdV9oYXNfc3dfbXNpKHN0cnVjdCBpb21tdV9ncm91cCAqZ3JvdXAsIHBoeXNfYWRkcl90ICpiYXNlKQorc3RhdGljIGJvb2wgdmZpb19pb21tdV9oYXNfc3dfbXNpKHN0cnVjdCBsaXN0X2hlYWQgKmdyb3VwX3Jlc3ZfcmVnaW9ucywKKwkJCQkgIHBoeXNfYWRkcl90ICpiYXNlKQogewotCXN0cnVjdCBsaXN0X2hlYWQgZ3JvdXBfcmVzdl9yZWdpb25zOwotCXN0cnVjdCBpb21tdV9yZXN2X3JlZ2lvbiAqcmVnaW9uLCAqbmV4dDsKKwlzdHJ1Y3QgaW9tbXVfcmVzdl9yZWdpb24gKnJlZ2lvbjsKIAlib29sIHJldCA9IGZhbHNlOwogCi0JSU5JVF9MSVNUX0hFQUQoJmdyb3VwX3Jlc3ZfcmVnaW9ucyk7Ci0JaW9tbXVfZ2V0X2dyb3VwX3Jlc3ZfcmVnaW9ucyhncm91cCwgJmdyb3VwX3Jlc3ZfcmVnaW9ucyk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShyZWdpb24sICZncm91cF9yZXN2X3JlZ2lvbnMsIGxpc3QpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlZ2lvbiwgZ3JvdXBfcmVzdl9yZWdpb25zLCBsaXN0KSB7CiAJCS8qCiAJCSAqIFRoZSBwcmVzZW5jZSBvZiBhbnkgJ3JlYWwnIE1TSSByZWdpb25zIHNob3VsZCB0YWtlCiAJCSAqIHByZWNlZGVuY2Ugb3ZlciB0aGUgc29mdHdhcmUtbWFuYWdlZCBvbmUgaWYgdGhlCkBAIC0xMjk0LDggKzEzMjcsNyBAQCBzdGF0aWMgYm9vbCB2ZmlvX2lvbW11X2hhc19zd19tc2koc3RydWN0IGlvbW11X2dyb3VwICpncm91cCwgcGh5c19hZGRyX3QgKmJhc2UpCiAJCQlyZXQgPSB0cnVlOwogCQl9CiAJfQotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZWdpb24sIG5leHQsICZncm91cF9yZXN2X3JlZ2lvbnMsIGxpc3QpCi0JCWtmcmVlKHJlZ2lvbik7CisKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMzk1LDYgKzE0MjcsMjI4IEBAIHN0YXRpYyBpbnQgdmZpb19tZGV2X2lvbW11X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBUaGlzIGlzIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGluc2VydCBhbiBhZGRyZXNzIHJhbmdlIHRvIGlvdmEgbGlzdC4KKyAqIFRoZSBsaXN0IGlzIGluaXRpYWxseSBjcmVhdGVkIHdpdGggYSBzaW5nbGUgZW50cnkgY29ycmVzcG9uZGluZyB0bworICogdGhlIElPTU1VIGRvbWFpbiBnZW9tZXRyeSB0byB3aGljaCB0aGUgZGV2aWNlIGdyb3VwIGlzIGF0dGFjaGVkLgorICogVGhlIGxpc3QgYXBlcnR1cmUgZ2V0cyBtb2RpZmllZCB3aGVuIGEgbmV3IGRvbWFpbiBpcyBhZGRlZCB0byB0aGUKKyAqIGNvbnRhaW5lciBpZiB0aGUgbmV3IGFwZXJ0dXJlIGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgY3VycmVudCBvbmUKKyAqIG9yIHdpdGggYW55IGV4aXN0aW5nIGRtYSBtYXBwaW5ncy4gVGhlIGxpc3QgaXMgYWxzbyBtb2RpZmllZCB0bworICogZXhjbHVkZSBhbnkgcmVzZXJ2ZWQgcmVnaW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIGRldmljZSBncm91cC4KKyAqLworc3RhdGljIGludCB2ZmlvX2lvbW11X2lvdmFfaW5zZXJ0KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCisJCQkJICBkbWFfYWRkcl90IHN0YXJ0LCBkbWFfYWRkcl90IGVuZCkKK3sKKwlzdHJ1Y3QgdmZpb19pb3ZhICpyZWdpb247CisKKwlyZWdpb24gPSBrbWFsbG9jKHNpemVvZigqcmVnaW9uKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFyZWdpb24pCisJCXJldHVybiAtRU5PTUVNOworCisJSU5JVF9MSVNUX0hFQUQoJnJlZ2lvbi0+bGlzdCk7CisJcmVnaW9uLT5zdGFydCA9IHN0YXJ0OworCXJlZ2lvbi0+ZW5kID0gZW5kOworCisJbGlzdF9hZGRfdGFpbCgmcmVnaW9uLT5saXN0LCBoZWFkKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIENoZWNrIHRoZSBuZXcgaW9tbXUgYXBlcnR1cmUgY29uZmxpY3RzIHdpdGggZXhpc3RpbmcgYXBlciBvciB3aXRoIGFueQorICogZXhpc3RpbmcgZG1hIG1hcHBpbmdzLgorICovCitzdGF0aWMgYm9vbCB2ZmlvX2lvbW11X2FwZXJfY29uZmxpY3Qoc3RydWN0IHZmaW9faW9tbXUgKmlvbW11LAorCQkJCSAgICAgZG1hX2FkZHJfdCBzdGFydCwgZG1hX2FkZHJfdCBlbmQpCit7CisJc3RydWN0IHZmaW9faW92YSAqZmlyc3QsICpsYXN0OworCXN0cnVjdCBsaXN0X2hlYWQgKmlvdmEgPSAmaW9tbXUtPmlvdmFfbGlzdDsKKworCWlmIChsaXN0X2VtcHR5KGlvdmEpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBEaXNqb2ludCBzZXRzLCByZXR1cm4gY29uZmxpY3QgKi8KKwlmaXJzdCA9IGxpc3RfZmlyc3RfZW50cnkoaW92YSwgc3RydWN0IHZmaW9faW92YSwgbGlzdCk7CisJbGFzdCA9IGxpc3RfbGFzdF9lbnRyeShpb3ZhLCBzdHJ1Y3QgdmZpb19pb3ZhLCBsaXN0KTsKKwlpZiAoc3RhcnQgPiBsYXN0LT5lbmQgfHwgZW5kIDwgZmlyc3QtPnN0YXJ0KQorCQlyZXR1cm4gdHJ1ZTsKKworCS8qIENoZWNrIGZvciBhbnkgZXhpc3RpbmcgZG1hIG1hcHBpbmdzIGJlbG93IHRoZSBuZXcgc3RhcnQgKi8KKwlpZiAoc3RhcnQgPiBmaXJzdC0+c3RhcnQpIHsKKwkJaWYgKHZmaW9fZmluZF9kbWEoaW9tbXUsIGZpcnN0LT5zdGFydCwgc3RhcnQgLSBmaXJzdC0+c3RhcnQpKQorCQkJcmV0dXJuIHRydWU7CisJfQorCisJLyogQ2hlY2sgZm9yIGFueSBleGlzdGluZyBkbWEgbWFwcGluZ3MgYmV5b25kIHRoZSBuZXcgZW5kICovCisJaWYgKGVuZCA8IGxhc3QtPmVuZCkgeworCQlpZiAodmZpb19maW5kX2RtYShpb21tdSwgZW5kICsgMSwgbGFzdC0+ZW5kIC0gZW5kKSkKKwkJCXJldHVybiB0cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKworLyoKKyAqIFJlc2l6ZSBpb21tdSBpb3ZhIGFwZXJ0dXJlIHdpbmRvdy4gVGhpcyBpcyBjYWxsZWQgb25seSBpZiB0aGUgbmV3CisgKiBhcGVydHVyZSBoYXMgbm8gY29uZmxpY3Qgd2l0aCBleGlzdGluZyBhcGVydHVyZSBhbmQgZG1hIG1hcHBpbmdzLgorICovCitzdGF0aWMgaW50IHZmaW9faW9tbXVfYXBlcl9yZXNpemUoc3RydWN0IGxpc3RfaGVhZCAqaW92YSwKKwkJCQkgIGRtYV9hZGRyX3Qgc3RhcnQsIGRtYV9hZGRyX3QgZW5kKQoreworCXN0cnVjdCB2ZmlvX2lvdmEgKm5vZGUsICpuZXh0OworCisJaWYgKGxpc3RfZW1wdHkoaW92YSkpCisJCXJldHVybiB2ZmlvX2lvbW11X2lvdmFfaW5zZXJ0KGlvdmEsIHN0YXJ0LCBlbmQpOworCisJLyogQWRqdXN0IGlvdmEgbGlzdCBzdGFydCAqLworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShub2RlLCBuZXh0LCBpb3ZhLCBsaXN0KSB7CisJCWlmIChzdGFydCA8IG5vZGUtPnN0YXJ0KQorCQkJYnJlYWs7CisJCWlmIChzdGFydCA+PSBub2RlLT5zdGFydCAmJiBzdGFydCA8IG5vZGUtPmVuZCkgeworCQkJbm9kZS0+c3RhcnQgPSBzdGFydDsKKwkJCWJyZWFrOworCQl9CisJCS8qIERlbGV0ZSBub2RlcyBiZWZvcmUgbmV3IHN0YXJ0ICovCisJCWxpc3RfZGVsKCZub2RlLT5saXN0KTsKKwkJa2ZyZWUobm9kZSk7CisJfQorCisJLyogQWRqdXN0IGlvdmEgbGlzdCBlbmQgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobm9kZSwgbmV4dCwgaW92YSwgbGlzdCkgeworCQlpZiAoZW5kID4gbm9kZS0+ZW5kKQorCQkJY29udGludWU7CisJCWlmIChlbmQgPiBub2RlLT5zdGFydCAmJiBlbmQgPD0gbm9kZS0+ZW5kKSB7CisJCQlub2RlLT5lbmQgPSBlbmQ7CisJCQljb250aW51ZTsKKwkJfQorCQkvKiBEZWxldGUgbm9kZXMgYWZ0ZXIgbmV3IGVuZCAqLworCQlsaXN0X2RlbCgmbm9kZS0+bGlzdCk7CisJCWtmcmVlKG5vZGUpOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogQ2hlY2sgcmVzZXJ2ZWQgcmVnaW9uIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGRtYSBtYXBwaW5ncworICovCitzdGF0aWMgYm9vbCB2ZmlvX2lvbW11X3Jlc3ZfY29uZmxpY3Qoc3RydWN0IHZmaW9faW9tbXUgKmlvbW11LAorCQkJCSAgICAgc3RydWN0IGxpc3RfaGVhZCAqcmVzdl9yZWdpb25zKQoreworCXN0cnVjdCBpb21tdV9yZXN2X3JlZ2lvbiAqcmVnaW9uOworCisJLyogQ2hlY2sgZm9yIGNvbmZsaWN0IHdpdGggZXhpc3RpbmcgZG1hIG1hcHBpbmdzICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeShyZWdpb24sIHJlc3ZfcmVnaW9ucywgbGlzdCkgeworCQlpZiAocmVnaW9uLT50eXBlID09IElPTU1VX1JFU1ZfRElSRUNUX1JFTEFYQUJMRSkKKwkJCWNvbnRpbnVlOworCisJCWlmICh2ZmlvX2ZpbmRfZG1hKGlvbW11LCByZWdpb24tPnN0YXJ0LCByZWdpb24tPmxlbmd0aCkpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKKy8qCisgKiBDaGVjayBpb3ZhIHJlZ2lvbiBvdmVybGFwIHdpdGggIHJlc2VydmVkIHJlZ2lvbnMgYW5kCisgKiBleGNsdWRlIHRoZW0gZnJvbSB0aGUgaW9tbXUgaW92YSByYW5nZQorICovCitzdGF0aWMgaW50IHZmaW9faW9tbXVfcmVzdl9leGNsdWRlKHN0cnVjdCBsaXN0X2hlYWQgKmlvdmEsCisJCQkJICAgc3RydWN0IGxpc3RfaGVhZCAqcmVzdl9yZWdpb25zKQoreworCXN0cnVjdCBpb21tdV9yZXN2X3JlZ2lvbiAqcmVzdjsKKwlzdHJ1Y3QgdmZpb19pb3ZhICpuLCAqbmV4dDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkocmVzdiwgcmVzdl9yZWdpb25zLCBsaXN0KSB7CisJCXBoeXNfYWRkcl90IHN0YXJ0LCBlbmQ7CisKKwkJaWYgKHJlc3YtPnR5cGUgPT0gSU9NTVVfUkVTVl9ESVJFQ1RfUkVMQVhBQkxFKQorCQkJY29udGludWU7CisKKwkJc3RhcnQgPSByZXN2LT5zdGFydDsKKwkJZW5kID0gcmVzdi0+c3RhcnQgKyByZXN2LT5sZW5ndGggLSAxOworCisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShuLCBuZXh0LCBpb3ZhLCBsaXN0KSB7CisJCQlpbnQgcmV0ID0gMDsKKworCQkJLyogTm8gb3ZlcmxhcCAqLworCQkJaWYgKHN0YXJ0ID4gbi0+ZW5kIHx8IGVuZCA8IG4tPnN0YXJ0KQorCQkJCWNvbnRpbnVlOworCQkJLyoKKwkJCSAqIEluc2VydCBhIG5ldyBub2RlIGlmIGN1cnJlbnQgbm9kZSBvdmVybGFwcyB3aXRoIHRoZQorCQkJICogcmVzZXJ2ZSByZWdpb24gdG8gZXhsdWRlIHRoYXQgZnJvbSB2YWxpZCBpb3ZhIHJhbmdlLgorCQkJICogTm90ZSB0aGF0LCBuZXcgbm9kZSBpcyBpbnNlcnRlZCBiZWZvcmUgdGhlIGN1cnJlbnQKKwkJCSAqIG5vZGUgYW5kIGZpbmFsbHkgdGhlIGN1cnJlbnQgbm9kZSBpcyBkZWxldGVkIGtlZXBpbmcKKwkJCSAqIHRoZSBsaXN0IHVwZGF0ZWQgYW5kIHNvcnRlZC4KKwkJCSAqLworCQkJaWYgKHN0YXJ0ID4gbi0+c3RhcnQpCisJCQkJcmV0ID0gdmZpb19pb21tdV9pb3ZhX2luc2VydCgmbi0+bGlzdCwgbi0+c3RhcnQsCisJCQkJCQkJICAgICBzdGFydCAtIDEpOworCQkJaWYgKCFyZXQgJiYgZW5kIDwgbi0+ZW5kKQorCQkJCXJldCA9IHZmaW9faW9tbXVfaW92YV9pbnNlcnQoJm4tPmxpc3QsIGVuZCArIDEsCisJCQkJCQkJICAgICBuLT5lbmQpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCisJCQlsaXN0X2RlbCgmbi0+bGlzdCk7CisJCQlrZnJlZShuKTsKKwkJfQorCX0KKworCWlmIChsaXN0X2VtcHR5KGlvdmEpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB2ZmlvX2lvbW11X3Jlc3ZfZnJlZShzdHJ1Y3QgbGlzdF9oZWFkICpyZXN2X3JlZ2lvbnMpCit7CisJc3RydWN0IGlvbW11X3Jlc3ZfcmVnaW9uICpuLCAqbmV4dDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShuLCBuZXh0LCByZXN2X3JlZ2lvbnMsIGxpc3QpIHsKKwkJbGlzdF9kZWwoJm4tPmxpc3QpOworCQlrZnJlZShuKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHZmaW9faW9tbXVfaW92YV9mcmVlKHN0cnVjdCBsaXN0X2hlYWQgKmlvdmEpCit7CisJc3RydWN0IHZmaW9faW92YSAqbiwgKm5leHQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobiwgbmV4dCwgaW92YSwgbGlzdCkgeworCQlsaXN0X2RlbCgmbi0+bGlzdCk7CisJCWtmcmVlKG4pOworCX0KK30KKworc3RhdGljIGludCB2ZmlvX2lvbW11X2lvdmFfZ2V0X2NvcHkoc3RydWN0IHZmaW9faW9tbXUgKmlvbW11LAorCQkJCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICppb3ZhX2NvcHkpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqaW92YSA9ICZpb21tdS0+aW92YV9saXN0OworCXN0cnVjdCB2ZmlvX2lvdmEgKm47CisJaW50IHJldDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkobiwgaW92YSwgbGlzdCkgeworCQlyZXQgPSB2ZmlvX2lvbW11X2lvdmFfaW5zZXJ0KGlvdmFfY29weSwgbi0+c3RhcnQsIG4tPmVuZCk7CisJCWlmIChyZXQpCisJCQlnb3RvIG91dF9mcmVlOworCX0KKworCXJldHVybiAwOworCitvdXRfZnJlZToKKwl2ZmlvX2lvbW11X2lvdmFfZnJlZShpb3ZhX2NvcHkpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHZmaW9faW9tbXVfaW92YV9pbnNlcnRfY29weShzdHJ1Y3QgdmZpb19pb21tdSAqaW9tbXUsCisJCQkJCXN0cnVjdCBsaXN0X2hlYWQgKmlvdmFfY29weSkKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkICppb3ZhID0gJmlvbW11LT5pb3ZhX2xpc3Q7CisKKwl2ZmlvX2lvbW11X2lvdmFfZnJlZShpb3ZhKTsKKworCWxpc3Rfc3BsaWNlX3RhaWwoaW92YV9jb3B5LCBpb3ZhKTsKK30KIHN0YXRpYyBpbnQgdmZpb19pb21tdV90eXBlMV9hdHRhY2hfZ3JvdXAodm9pZCAqaW9tbXVfZGF0YSwKIAkJCQkJIHN0cnVjdCBpb21tdV9ncm91cCAqaW9tbXVfZ3JvdXApCiB7CkBAIC0xNDA1LDYgKzE2NTksOSBAQCBzdGF0aWMgaW50IHZmaW9faW9tbXVfdHlwZTFfYXR0YWNoX2dyb3VwKHZvaWQgKmlvbW11X2RhdGEsCiAJaW50IHJldDsKIAlib29sIHJlc3ZfbXNpLCBtc2lfcmVtYXA7CiAJcGh5c19hZGRyX3QgcmVzdl9tc2lfYmFzZTsKKwlzdHJ1Y3QgaW9tbXVfZG9tYWluX2dlb21ldHJ5IGdlbzsKKwlMSVNUX0hFQUQoaW92YV9jb3B5KTsKKwlMSVNUX0hFQUQoZ3JvdXBfcmVzdl9yZWdpb25zKTsKIAogCW11dGV4X2xvY2soJmlvbW11LT5sb2NrKTsKIApAQCAtMTQ4MSw3ICsxNzM4LDQzIEBAIHN0YXRpYyBpbnQgdmZpb19pb21tdV90eXBlMV9hdHRhY2hfZ3JvdXAodm9pZCAqaW9tbXVfZGF0YSwKIAlpZiAocmV0KQogCQlnb3RvIG91dF9kb21haW47CiAKLQlyZXN2X21zaSA9IHZmaW9faW9tbXVfaGFzX3N3X21zaShpb21tdV9ncm91cCwgJnJlc3ZfbXNpX2Jhc2UpOworCS8qIEdldCBhcGVydHVyZSBpbmZvICovCisJaW9tbXVfZG9tYWluX2dldF9hdHRyKGRvbWFpbi0+ZG9tYWluLCBET01BSU5fQVRUUl9HRU9NRVRSWSwgJmdlbyk7CisKKwlpZiAodmZpb19pb21tdV9hcGVyX2NvbmZsaWN0KGlvbW11LCBnZW8uYXBlcnR1cmVfc3RhcnQsCisJCQkJICAgICBnZW8uYXBlcnR1cmVfZW5kKSkgeworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIG91dF9kZXRhY2g7CisJfQorCisJcmV0ID0gaW9tbXVfZ2V0X2dyb3VwX3Jlc3ZfcmVnaW9ucyhpb21tdV9ncm91cCwgJmdyb3VwX3Jlc3ZfcmVnaW9ucyk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfZGV0YWNoOworCisJaWYgKHZmaW9faW9tbXVfcmVzdl9jb25mbGljdChpb21tdSwgJmdyb3VwX3Jlc3ZfcmVnaW9ucykpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXRfZGV0YWNoOworCX0KKworCS8qCisJICogV2UgZG9uJ3Qgd2FudCB0byB3b3JrIG9uIHRoZSBvcmlnaW5hbCBpb3ZhIGxpc3QgYXMgdGhlIGxpc3QKKwkgKiBnZXRzIG1vZGlmaWVkIGFuZCBpbiBjYXNlIG9mIGZhaWx1cmUgd2UgaGF2ZSB0byByZXRhaW4gdGhlCisJICogb3JpZ2luYWwgbGlzdC4gR2V0IGEgY29weSBoZXJlLgorCSAqLworCXJldCA9IHZmaW9faW9tbXVfaW92YV9nZXRfY29weShpb21tdSwgJmlvdmFfY29weSk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfZGV0YWNoOworCisJcmV0ID0gdmZpb19pb21tdV9hcGVyX3Jlc2l6ZSgmaW92YV9jb3B5LCBnZW8uYXBlcnR1cmVfc3RhcnQsCisJCQkJICAgICBnZW8uYXBlcnR1cmVfZW5kKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9kZXRhY2g7CisKKwlyZXQgPSB2ZmlvX2lvbW11X3Jlc3ZfZXhjbHVkZSgmaW92YV9jb3B5LCAmZ3JvdXBfcmVzdl9yZWdpb25zKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9kZXRhY2g7CisKKwlyZXN2X21zaSA9IHZmaW9faW9tbXVfaGFzX3N3X21zaSgmZ3JvdXBfcmVzdl9yZWdpb25zLCAmcmVzdl9tc2lfYmFzZSk7CiAKIAlJTklUX0xJU1RfSEVBRCgmZG9tYWluLT5ncm91cF9saXN0KTsKIAlsaXN0X2FkZCgmZ3JvdXAtPm5leHQsICZkb21haW4tPmdyb3VwX2xpc3QpOwpAQCAtMTUxNCw4ICsxODA3LDcgQEAgc3RhdGljIGludCB2ZmlvX2lvbW11X3R5cGUxX2F0dGFjaF9ncm91cCh2b2lkICppb21tdV9kYXRhLAogCQkJCWxpc3RfYWRkKCZncm91cC0+bmV4dCwgJmQtPmdyb3VwX2xpc3QpOwogCQkJCWlvbW11X2RvbWFpbl9mcmVlKGRvbWFpbi0+ZG9tYWluKTsKIAkJCQlrZnJlZShkb21haW4pOwotCQkJCW11dGV4X3VubG9jaygmaW9tbXUtPmxvY2spOwotCQkJCXJldHVybiAwOworCQkJCWdvdG8gZG9uZTsKIAkJCX0KIAogCQkJcmV0ID0gdmZpb19pb21tdV9hdHRhY2hfZ3JvdXAoZG9tYWluLCBncm91cCk7CkBAIC0xNTM4LDggKzE4MzAsMTEgQEAgc3RhdGljIGludCB2ZmlvX2lvbW11X3R5cGUxX2F0dGFjaF9ncm91cCh2b2lkICppb21tdV9kYXRhLAogCX0KIAogCWxpc3RfYWRkKCZkb21haW4tPm5leHQsICZpb21tdS0+ZG9tYWluX2xpc3QpOwotCitkb25lOgorCS8qIERlbGV0ZSB0aGUgb2xkIG9uZSBhbmQgaW5zZXJ0IG5ldyBpb3ZhIGxpc3QgKi8KKwl2ZmlvX2lvbW11X2lvdmFfaW5zZXJ0X2NvcHkoaW9tbXUsICZpb3ZhX2NvcHkpOwogCW11dGV4X3VubG9jaygmaW9tbXUtPmxvY2spOworCXZmaW9faW9tbXVfcmVzdl9mcmVlKCZncm91cF9yZXN2X3JlZ2lvbnMpOwogCiAJcmV0dXJuIDA7CiAKQEAgLTE1NDcsNiArMTg0Miw4IEBAIHN0YXRpYyBpbnQgdmZpb19pb21tdV90eXBlMV9hdHRhY2hfZ3JvdXAodm9pZCAqaW9tbXVfZGF0YSwKIAl2ZmlvX2lvbW11X2RldGFjaF9ncm91cChkb21haW4sIGdyb3VwKTsKIG91dF9kb21haW46CiAJaW9tbXVfZG9tYWluX2ZyZWUoZG9tYWluLT5kb21haW4pOworCXZmaW9faW9tbXVfaW92YV9mcmVlKCZpb3ZhX2NvcHkpOworCXZmaW9faW9tbXVfcmVzdl9mcmVlKCZncm91cF9yZXN2X3JlZ2lvbnMpOwogb3V0X2ZyZWU6CiAJa2ZyZWUoZG9tYWluKTsKIAlrZnJlZShncm91cCk7CkBAIC0xNjAyLDEyICsxODk5LDkzIEBAIHN0YXRpYyB2b2lkIHZmaW9fc2FuaXR5X2NoZWNrX3Bmbl9saXN0KHN0cnVjdCB2ZmlvX2lvbW11ICppb21tdSkKIAlXQVJOX09OKGlvbW11LT5ub3RpZmllci5oZWFkKTsKIH0KIAorLyoKKyAqIENhbGxlZCB3aGVuIGEgZG9tYWluIGlzIHJlbW92ZWQgaW4gZGV0YWNoLiBJdCBpcyBwb3NzaWJsZSB0aGF0CisgKiB0aGUgcmVtb3ZlZCBkb21haW4gZGVjaWRlZCB0aGUgaW92YSBhcGVydHVyZSB3aW5kb3cuIE1vZGlmeSB0aGUKKyAqIGlvdmEgYXBlcnR1cmUgd2l0aCB0aGUgc21hbGxlc3Qgd2luZG93IGFtb25nIGV4aXN0aW5nIGRvbWFpbnMuCisgKi8KK3N0YXRpYyB2b2lkIHZmaW9faW9tbXVfYXBlcl9leHBhbmQoc3RydWN0IHZmaW9faW9tbXUgKmlvbW11LAorCQkJCSAgIHN0cnVjdCBsaXN0X2hlYWQgKmlvdmFfY29weSkKK3sKKwlzdHJ1Y3QgdmZpb19kb21haW4gKmRvbWFpbjsKKwlzdHJ1Y3QgaW9tbXVfZG9tYWluX2dlb21ldHJ5IGdlbzsKKwlzdHJ1Y3QgdmZpb19pb3ZhICpub2RlOworCWRtYV9hZGRyX3Qgc3RhcnQgPSAwOworCWRtYV9hZGRyX3QgZW5kID0gKGRtYV9hZGRyX3QpfjA7CisKKwlpZiAobGlzdF9lbXB0eShpb3ZhX2NvcHkpKQorCQlyZXR1cm47CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRvbWFpbiwgJmlvbW11LT5kb21haW5fbGlzdCwgbmV4dCkgeworCQlpb21tdV9kb21haW5fZ2V0X2F0dHIoZG9tYWluLT5kb21haW4sIERPTUFJTl9BVFRSX0dFT01FVFJZLAorCQkJCSAgICAgICZnZW8pOworCQlpZiAoZ2VvLmFwZXJ0dXJlX3N0YXJ0ID4gc3RhcnQpCisJCQlzdGFydCA9IGdlby5hcGVydHVyZV9zdGFydDsKKwkJaWYgKGdlby5hcGVydHVyZV9lbmQgPCBlbmQpCisJCQllbmQgPSBnZW8uYXBlcnR1cmVfZW5kOworCX0KKworCS8qIE1vZGlmeSBhcGVydHVyZSBsaW1pdHMuIFRoZSBuZXcgYXBlciBpcyBlaXRoZXIgc2FtZSBvciBiaWdnZXIgKi8KKwlub2RlID0gbGlzdF9maXJzdF9lbnRyeShpb3ZhX2NvcHksIHN0cnVjdCB2ZmlvX2lvdmEsIGxpc3QpOworCW5vZGUtPnN0YXJ0ID0gc3RhcnQ7CisJbm9kZSA9IGxpc3RfbGFzdF9lbnRyeShpb3ZhX2NvcHksIHN0cnVjdCB2ZmlvX2lvdmEsIGxpc3QpOworCW5vZGUtPmVuZCA9IGVuZDsKK30KKworLyoKKyAqIENhbGxlZCB3aGVuIGEgZ3JvdXAgaXMgZGV0YWNoZWQuIFRoZSByZXNlcnZlZCByZWdpb25zIGZvciB0aGF0CisgKiBncm91cCBjYW4gYmUgcGFydCBvZiB2YWxpZCBpb3ZhIG5vdy4gQnV0IHNpbmNlIHJlc2VydmVkIHJlZ2lvbnMKKyAqIG1heSBiZSBkdXBsaWNhdGVkIGFtb25nIGdyb3VwcywgcG9wdWxhdGUgdGhlIGlvdmEgdmFsaWQgcmVnaW9ucworICogbGlzdCBhZ2Fpbi4KKyAqLworc3RhdGljIGludCB2ZmlvX2lvbW11X3Jlc3ZfcmVmcmVzaChzdHJ1Y3QgdmZpb19pb21tdSAqaW9tbXUsCisJCQkJICAgc3RydWN0IGxpc3RfaGVhZCAqaW92YV9jb3B5KQoreworCXN0cnVjdCB2ZmlvX2RvbWFpbiAqZDsKKwlzdHJ1Y3QgdmZpb19ncm91cCAqZzsKKwlzdHJ1Y3QgdmZpb19pb3ZhICpub2RlOworCWRtYV9hZGRyX3Qgc3RhcnQsIGVuZDsKKwlMSVNUX0hFQUQocmVzdl9yZWdpb25zKTsKKwlpbnQgcmV0OworCisJaWYgKGxpc3RfZW1wdHkoaW92YV9jb3B5KSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGQsICZpb21tdS0+ZG9tYWluX2xpc3QsIG5leHQpIHsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShnLCAmZC0+Z3JvdXBfbGlzdCwgbmV4dCkgeworCQkJcmV0ID0gaW9tbXVfZ2V0X2dyb3VwX3Jlc3ZfcmVnaW9ucyhnLT5pb21tdV9ncm91cCwKKwkJCQkJCQkgICAmcmVzdl9yZWdpb25zKTsKKwkJCWlmIChyZXQpCisJCQkJZ290byBkb25lOworCQl9CisJfQorCisJbm9kZSA9IGxpc3RfZmlyc3RfZW50cnkoaW92YV9jb3B5LCBzdHJ1Y3QgdmZpb19pb3ZhLCBsaXN0KTsKKwlzdGFydCA9IG5vZGUtPnN0YXJ0OworCW5vZGUgPSBsaXN0X2xhc3RfZW50cnkoaW92YV9jb3B5LCBzdHJ1Y3QgdmZpb19pb3ZhLCBsaXN0KTsKKwllbmQgPSBub2RlLT5lbmQ7CisKKwkvKiBwdXJnZSB0aGUgaW92YSBsaXN0IGFuZCBjcmVhdGUgbmV3IG9uZSAqLworCXZmaW9faW9tbXVfaW92YV9mcmVlKGlvdmFfY29weSk7CisKKwlyZXQgPSB2ZmlvX2lvbW11X2FwZXJfcmVzaXplKGlvdmFfY29weSwgc3RhcnQsIGVuZCk7CisJaWYgKHJldCkKKwkJZ290byBkb25lOworCisJLyogRXhjbHVkZSBjdXJyZW50IHJlc2VydmVkIHJlZ2lvbnMgZnJvbSBpb3ZhIHJhbmdlcyAqLworCXJldCA9IHZmaW9faW9tbXVfcmVzdl9leGNsdWRlKGlvdmFfY29weSwgJnJlc3ZfcmVnaW9ucyk7Citkb25lOgorCXZmaW9faW9tbXVfcmVzdl9mcmVlKCZyZXN2X3JlZ2lvbnMpOworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyB2b2lkIHZmaW9faW9tbXVfdHlwZTFfZGV0YWNoX2dyb3VwKHZvaWQgKmlvbW11X2RhdGEsCiAJCQkJCSAgc3RydWN0IGlvbW11X2dyb3VwICppb21tdV9ncm91cCkKIHsKIAlzdHJ1Y3QgdmZpb19pb21tdSAqaW9tbXUgPSBpb21tdV9kYXRhOwogCXN0cnVjdCB2ZmlvX2RvbWFpbiAqZG9tYWluOwogCXN0cnVjdCB2ZmlvX2dyb3VwICpncm91cDsKKwlMSVNUX0hFQUQoaW92YV9jb3B5KTsKIAogCW11dGV4X2xvY2soJmlvbW11LT5sb2NrKTsKIApAQCAtMTYzMCw2ICsyMDA4LDEzIEBAIHN0YXRpYyB2b2lkIHZmaW9faW9tbXVfdHlwZTFfZGV0YWNoX2dyb3VwKHZvaWQgKmlvbW11X2RhdGEsCiAJCX0KIAl9CiAKKwkvKgorCSAqIEdldCBhIGNvcHkgb2YgaW92YSBsaXN0LiBUaGlzIHdpbGwgYmUgdXNlZCB0byB1cGRhdGUKKwkgKiBhbmQgdG8gcmVwbGFjZSB0aGUgY3VycmVudCBvbmUgbGF0ZXIuIFBsZWFzZSBub3RlIHRoYXQKKwkgKiB3ZSB3aWxsIGxlYXZlIHRoZSBvcmlnaW5hbCBsaXN0IGFzIGl0IGlzIGlmIHVwZGF0ZSBmYWlscy4KKwkgKi8KKwl2ZmlvX2lvbW11X2lvdmFfZ2V0X2NvcHkoaW9tbXUsICZpb3ZhX2NvcHkpOworCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShkb21haW4sICZpb21tdS0+ZG9tYWluX2xpc3QsIG5leHQpIHsKIAkJZ3JvdXAgPSBmaW5kX2lvbW11X2dyb3VwKGRvbWFpbiwgaW9tbXVfZ3JvdXApOwogCQlpZiAoIWdyb3VwKQpAQCAtMTY1NSwxMCArMjA0MCwxNiBAQCBzdGF0aWMgdm9pZCB2ZmlvX2lvbW11X3R5cGUxX2RldGFjaF9ncm91cCh2b2lkICppb21tdV9kYXRhLAogCQkJaW9tbXVfZG9tYWluX2ZyZWUoZG9tYWluLT5kb21haW4pOwogCQkJbGlzdF9kZWwoJmRvbWFpbi0+bmV4dCk7CiAJCQlrZnJlZShkb21haW4pOworCQkJdmZpb19pb21tdV9hcGVyX2V4cGFuZChpb21tdSwgJmlvdmFfY29weSk7CiAJCX0KIAkJYnJlYWs7CiAJfQogCisJaWYgKCF2ZmlvX2lvbW11X3Jlc3ZfcmVmcmVzaChpb21tdSwgJmlvdmFfY29weSkpCisJCXZmaW9faW9tbXVfaW92YV9pbnNlcnRfY29weShpb21tdSwgJmlvdmFfY29weSk7CisJZWxzZQorCQl2ZmlvX2lvbW11X2lvdmFfZnJlZSgmaW92YV9jb3B5KTsKKwogZGV0YWNoX2dyb3VwX2RvbmU6CiAJbXV0ZXhfdW5sb2NrKCZpb21tdS0+bG9jayk7CiB9CkBAIC0xNjg2LDYgKzIwNzcsNyBAQCBzdGF0aWMgdm9pZCAqdmZpb19pb21tdV90eXBlMV9vcGVuKHVuc2lnbmVkIGxvbmcgYXJnKQogCX0KIAogCUlOSVRfTElTVF9IRUFEKCZpb21tdS0+ZG9tYWluX2xpc3QpOworCUlOSVRfTElTVF9IRUFEKCZpb21tdS0+aW92YV9saXN0KTsKIAlpb21tdS0+ZG1hX2xpc3QgPSBSQl9ST09UOwogCWlvbW11LT5kbWFfYXZhaWwgPSBkbWFfZW50cnlfbGltaXQ7CiAJbXV0ZXhfaW5pdCgmaW9tbXUtPmxvY2spOwpAQCAtMTcyOSw2ICsyMTIxLDkgQEAgc3RhdGljIHZvaWQgdmZpb19pb21tdV90eXBlMV9yZWxlYXNlKHZvaWQgKmlvbW11X2RhdGEpCiAJCWxpc3RfZGVsKCZkb21haW4tPm5leHQpOwogCQlrZnJlZShkb21haW4pOwogCX0KKworCXZmaW9faW9tbXVfaW92YV9mcmVlKCZpb21tdS0+aW92YV9saXN0KTsKKwogCWtmcmVlKGlvbW11KTsKIH0KIApAQCAtMTc0OSw2ICsyMTQ0LDczIEBAIHN0YXRpYyBpbnQgdmZpb19kb21haW5zX2hhdmVfaW9tbXVfY2FjaGUoc3RydWN0IHZmaW9faW9tbXUgKmlvbW11KQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgdmZpb19pb21tdV9pb3ZhX2FkZF9jYXAoc3RydWN0IHZmaW9faW5mb19jYXAgKmNhcHMsCisJCSBzdHJ1Y3QgdmZpb19pb21tdV90eXBlMV9pbmZvX2NhcF9pb3ZhX3JhbmdlICpjYXBfaW92YXMsCisJCSBzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgdmZpb19pbmZvX2NhcF9oZWFkZXIgKmhlYWRlcjsKKwlzdHJ1Y3QgdmZpb19pb21tdV90eXBlMV9pbmZvX2NhcF9pb3ZhX3JhbmdlICppb3ZhX2NhcDsKKworCWhlYWRlciA9IHZmaW9faW5mb19jYXBfYWRkKGNhcHMsIHNpemUsCisJCQkJICAgVkZJT19JT01NVV9UWVBFMV9JTkZPX0NBUF9JT1ZBX1JBTkdFLCAxKTsKKwlpZiAoSVNfRVJSKGhlYWRlcikpCisJCXJldHVybiBQVFJfRVJSKGhlYWRlcik7CisKKwlpb3ZhX2NhcCA9IGNvbnRhaW5lcl9vZihoZWFkZXIsCisJCQkJc3RydWN0IHZmaW9faW9tbXVfdHlwZTFfaW5mb19jYXBfaW92YV9yYW5nZSwKKwkJCQloZWFkZXIpOworCWlvdmFfY2FwLT5ucl9pb3ZhcyA9IGNhcF9pb3Zhcy0+bnJfaW92YXM7CisJbWVtY3B5KGlvdmFfY2FwLT5pb3ZhX3JhbmdlcywgY2FwX2lvdmFzLT5pb3ZhX3JhbmdlcywKKwkgICAgICAgY2FwX2lvdmFzLT5ucl9pb3ZhcyAqIHNpemVvZigqY2FwX2lvdmFzLT5pb3ZhX3JhbmdlcykpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZmaW9faW9tbXVfaW92YV9idWlsZF9jYXBzKHN0cnVjdCB2ZmlvX2lvbW11ICppb21tdSwKKwkJCQkgICAgICBzdHJ1Y3QgdmZpb19pbmZvX2NhcCAqY2FwcykKK3sKKwlzdHJ1Y3QgdmZpb19pb21tdV90eXBlMV9pbmZvX2NhcF9pb3ZhX3JhbmdlICpjYXBfaW92YXM7CisJc3RydWN0IHZmaW9faW92YSAqaW92YTsKKwlzaXplX3Qgc2l6ZTsKKwlpbnQgaW92YXMgPSAwLCBpID0gMCwgcmV0OworCisJbXV0ZXhfbG9jaygmaW9tbXUtPmxvY2spOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpb3ZhLCAmaW9tbXUtPmlvdmFfbGlzdCwgbGlzdCkKKwkJaW92YXMrKzsKKworCWlmICghaW92YXMpIHsKKwkJLyoKKwkJICogUmV0dXJuIDAgYXMgYSBjb250YWluZXIgd2l0aCBhIHNpbmdsZSBtZGV2IGRldmljZQorCQkgKiB3aWxsIGhhdmUgYW4gZW1wdHkgbGlzdAorCQkgKi8KKwkJcmV0ID0gMDsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKworCXNpemUgPSBzaXplb2YoKmNhcF9pb3ZhcykgKyAoaW92YXMgKiBzaXplb2YoKmNhcF9pb3Zhcy0+aW92YV9yYW5nZXMpKTsKKworCWNhcF9pb3ZhcyA9IGt6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjYXBfaW92YXMpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKworCWNhcF9pb3Zhcy0+bnJfaW92YXMgPSBpb3ZhczsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW92YSwgJmlvbW11LT5pb3ZhX2xpc3QsIGxpc3QpIHsKKwkJY2FwX2lvdmFzLT5pb3ZhX3Jhbmdlc1tpXS5zdGFydCA9IGlvdmEtPnN0YXJ0OworCQljYXBfaW92YXMtPmlvdmFfcmFuZ2VzW2ldLmVuZCA9IGlvdmEtPmVuZDsKKwkJaSsrOworCX0KKworCXJldCA9IHZmaW9faW9tbXVfaW92YV9hZGRfY2FwKGNhcHMsIGNhcF9pb3Zhcywgc2l6ZSk7CisKKwlrZnJlZShjYXBfaW92YXMpOworb3V0X3VubG9jazoKKwltdXRleF91bmxvY2soJmlvbW11LT5sb2NrKTsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgbG9uZyB2ZmlvX2lvbW11X3R5cGUxX2lvY3RsKHZvaWQgKmlvbW11X2RhdGEsCiAJCQkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiB7CkBAIC0xNzcwLDE5ICsyMjMyLDUzIEBAIHN0YXRpYyBsb25nIHZmaW9faW9tbXVfdHlwZTFfaW9jdGwodm9pZCAqaW9tbXVfZGF0YSwKIAkJfQogCX0gZWxzZSBpZiAoY21kID09IFZGSU9fSU9NTVVfR0VUX0lORk8pIHsKIAkJc3RydWN0IHZmaW9faW9tbXVfdHlwZTFfaW5mbyBpbmZvOworCQlzdHJ1Y3QgdmZpb19pbmZvX2NhcCBjYXBzID0geyAuYnVmID0gTlVMTCwgLnNpemUgPSAwIH07CisJCXVuc2lnbmVkIGxvbmcgY2Fwc3o7CisJCWludCByZXQ7CiAKIAkJbWluc3ogPSBvZmZzZXRvZmVuZChzdHJ1Y3QgdmZpb19pb21tdV90eXBlMV9pbmZvLCBpb3ZhX3Bnc2l6ZXMpOwogCisJCS8qIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBjYW5ub3QgcmVxdWlyZSB0aGlzICovCisJCWNhcHN6ID0gb2Zmc2V0b2ZlbmQoc3RydWN0IHZmaW9faW9tbXVfdHlwZTFfaW5mbywgY2FwX29mZnNldCk7CisKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZpbmZvLCAodm9pZCBfX3VzZXIgKilhcmcsIG1pbnN6KSkKIAkJCXJldHVybiAtRUZBVUxUOwogCiAJCWlmIChpbmZvLmFyZ3N6IDwgbWluc3opCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAorCQlpZiAoaW5mby5hcmdzeiA+PSBjYXBzeikgeworCQkJbWluc3ogPSBjYXBzejsKKwkJCWluZm8uY2FwX29mZnNldCA9IDA7IC8qIG91dHB1dCwgbm8tcmVjb3B5IG5lY2Vzc2FyeSAqLworCQl9CisKIAkJaW5mby5mbGFncyA9IFZGSU9fSU9NTVVfSU5GT19QR1NJWkVTOwogCiAJCWluZm8uaW92YV9wZ3NpemVzID0gdmZpb19wZ3NpemVfYml0bWFwKGlvbW11KTsKIAorCQlyZXQgPSB2ZmlvX2lvbW11X2lvdmFfYnVpbGRfY2Fwcyhpb21tdSwgJmNhcHMpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKworCQlpZiAoY2Fwcy5zaXplKSB7CisJCQlpbmZvLmZsYWdzIHw9IFZGSU9fSU9NTVVfSU5GT19DQVBTOworCisJCQlpZiAoaW5mby5hcmdzeiA8IHNpemVvZihpbmZvKSArIGNhcHMuc2l6ZSkgeworCQkJCWluZm8uYXJnc3ogPSBzaXplb2YoaW5mbykgKyBjYXBzLnNpemU7CisJCQl9IGVsc2UgeworCQkJCXZmaW9faW5mb19jYXBfc2hpZnQoJmNhcHMsIHNpemVvZihpbmZvKSk7CisJCQkJaWYgKGNvcHlfdG9fdXNlcigodm9pZCBfX3VzZXIgKilhcmcgKworCQkJCQkJc2l6ZW9mKGluZm8pLCBjYXBzLmJ1ZiwKKwkJCQkJCWNhcHMuc2l6ZSkpIHsKKwkJCQkJa2ZyZWUoY2Fwcy5idWYpOworCQkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCQl9CisJCQkJaW5mby5jYXBfb2Zmc2V0ID0gc2l6ZW9mKGluZm8pOworCQkJfQorCisJCQlrZnJlZShjYXBzLmJ1Zik7CisJCX0KKwogCQlyZXR1cm4gY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKWFyZywgJmluZm8sIG1pbnN6KSA/CiAJCQktRUZBVUxUIDogMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvS2NvbmZpZyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L0tjb25maWcKaW5kZXggOGIwODFkNi4uNDA2NzZiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9LY29uZmlnCkBAIC0xMCw3ICsxMCw2IEBACiAjCiBjb25maWcgTENEX0NMQVNTX0RFVklDRQogICAgICAgICB0cmlzdGF0ZSAiTG93bGV2ZWwgTENEIGNvbnRyb2xzIgotCWRlZmF1bHQgbQogCWhlbHAKIAkgIFRoaXMgZnJhbWV3b3JrIGFkZHMgc3VwcG9ydCBmb3IgbG93LWxldmVsIGNvbnRyb2wgb2YgTENELgogCSAgU29tZSBmcmFtZWJ1ZmZlciBkZXZpY2VzIGNvbm5lY3QgdG8gcGxhdGZvcm0tc3BlY2lmaWMgTENEIG1vZHVsZXMKQEAgLTE0Myw3ICsxNDIsNiBAQAogIwogY29uZmlnIEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKICAgICAgICAgdHJpc3RhdGUgIkxvd2xldmVsIEJhY2tsaWdodCBjb250cm9scyIKLQlkZWZhdWx0IG0KIAloZWxwCiAJICBUaGlzIGZyYW1ld29yayBhZGRzIHN1cHBvcnQgZm9yIGxvdy1sZXZlbCBjb250cm9sIG9mIHRoZSBMQ0QKICAgICAgICAgICBiYWNrbGlnaHQuIFRoaXMgaW5jbHVkZXMgc3VwcG9ydCBmb3IgYnJpZ2h0bmVzcyBhbmQgcG93ZXIuCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9iYWNrbGlnaHQuYyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2JhY2tsaWdodC5jCmluZGV4IDVkYzA3MTAuLmNhYzNlMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2JhY2tsaWdodC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2JhY2tsaWdodC5jCkBAIC0zMiw2ICszMiwxMiBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgYmFja2xpZ2h0X3R5cGVzW10gPSB7CiAJW0JBQ0tMSUdIVF9GSVJNV0FSRV0gPSAiZmlybXdhcmUiLAogfTsKIAorc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGJhY2tsaWdodF9zY2FsZV90eXBlc1tdID0geworCVtCQUNLTElHSFRfU0NBTEVfVU5LTk9XTl0JPSAidW5rbm93biIsCisJW0JBQ0tMSUdIVF9TQ0FMRV9MSU5FQVJdCT0gImxpbmVhciIsCisJW0JBQ0tMSUdIVF9TQ0FMRV9OT05fTElORUFSXQk9ICJub24tbGluZWFyIiwKK307CisKICNpZiBkZWZpbmVkKENPTkZJR19GQikgfHwgKGRlZmluZWQoQ09ORklHX0ZCX01PRFVMRSkgJiYgXAogCQkJICAgZGVmaW5lZChDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RFVklDRV9NT0RVTEUpKQogLyogVGhpcyBjYWxsYmFjayBnZXRzIGNhbGxlZCB3aGVuIHNvbWV0aGluZyBpbXBvcnRhbnQgaGFwcGVucyBpbnNpZGUgYQpAQCAtMjQ2LDYgKzI1MiwxOCBAQCBzdGF0aWMgc3NpemVfdCBhY3R1YWxfYnJpZ2h0bmVzc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKIH0KIHN0YXRpYyBERVZJQ0VfQVRUUl9STyhhY3R1YWxfYnJpZ2h0bmVzcyk7CiAKK3N0YXRpYyBzc2l6ZV90IHNjYWxlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAorCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiZCA9IHRvX2JhY2tsaWdodF9kZXZpY2UoZGV2KTsKKworCWlmIChXQVJOX09OKGJkLT5wcm9wcy5zY2FsZSA+IEJBQ0tMSUdIVF9TQ0FMRV9OT05fTElORUFSKSkKKwkJcmV0dXJuIHNwcmludGYoYnVmLCAidW5rbm93blxuIik7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlc1xuIiwgYmFja2xpZ2h0X3NjYWxlX3R5cGVzW2JkLT5wcm9wcy5zY2FsZV0pOworfQorc3RhdGljIERFVklDRV9BVFRSX1JPKHNjYWxlKTsKKwogc3RhdGljIHN0cnVjdCBjbGFzcyAqYmFja2xpZ2h0X2NsYXNzOwogCiAjaWZkZWYgQ09ORklHX1BNX1NMRUVQCkBAIC0yOTIsNiArMzEwLDcgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmJsX2RldmljZV9hdHRyc1tdID0gewogCSZkZXZfYXR0cl9icmlnaHRuZXNzLmF0dHIsCiAJJmRldl9hdHRyX2FjdHVhbF9icmlnaHRuZXNzLmF0dHIsCiAJJmRldl9hdHRyX21heF9icmlnaHRuZXNzLmF0dHIsCisJJmRldl9hdHRyX3NjYWxlLmF0dHIsCiAJJmRldl9hdHRyX3R5cGUuYXR0ciwKIAlOVUxMLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2dwaW9fYmFja2xpZ2h0LmMgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9ncGlvX2JhY2tsaWdodC5jCmluZGV4IGU4NGYzMDguLjE4ZTA1M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2dwaW9fYmFja2xpZ2h0LmMKKysrIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvZ3Bpb19iYWNrbGlnaHQuYwpAQCAtNTksMTMgKzU5LDExIEBAIHN0YXRpYyBpbnQgZ3Bpb19iYWNrbGlnaHRfcHJvYmVfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkgICBzdHJ1Y3QgZ3Bpb19iYWNrbGlnaHQgKmdibCkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwotCWVudW0gZ3Bpb2RfZmxhZ3MgZmxhZ3M7CiAJaW50IHJldDsKIAogCWdibC0+ZGVmX3ZhbHVlID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYsICJkZWZhdWx0LW9uIik7Ci0JZmxhZ3MgPSBnYmwtPmRlZl92YWx1ZSA/IEdQSU9EX09VVF9ISUdIIDogR1BJT0RfT1VUX0xPVzsKIAotCWdibC0+Z3Bpb2QgPSBkZXZtX2dwaW9kX2dldChkZXYsIE5VTEwsIGZsYWdzKTsKKwlnYmwtPmdwaW9kID0gZGV2bV9ncGlvZF9nZXQoZGV2LCBOVUxMLCBHUElPRF9BU0lTKTsKIAlpZiAoSVNfRVJSKGdibC0+Z3Bpb2QpKSB7CiAJCXJldCA9IFBUUl9FUlIoZ2JsLT5ncGlvZCk7CiAKQEAgLTc5LDYgKzc3LDIyIEBAIHN0YXRpYyBpbnQgZ3Bpb19iYWNrbGlnaHRfcHJvYmVfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBncGlvX2JhY2tsaWdodF9pbml0aWFsX3Bvd2VyX3N0YXRlKHN0cnVjdCBncGlvX2JhY2tsaWdodCAqZ2JsKQoreworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IGdibC0+ZGV2LT5vZl9ub2RlOworCisJLyogTm90IGJvb3RlZCB3aXRoIGRldmljZSB0cmVlIG9yIG5vIHBoYW5kbGUgbGluayB0byB0aGUgbm9kZSAqLworCWlmICghbm9kZSB8fCAhbm9kZS0+cGhhbmRsZSkKKwkJcmV0dXJuIGdibC0+ZGVmX3ZhbHVlID8gRkJfQkxBTktfVU5CTEFOSyA6IEZCX0JMQU5LX1BPV0VSRE9XTjsKKworCS8qIGlmIHRoZSBlbmFibGUgR1BJTyBpcyBkaXNhYmxlZCwgZG8gbm90IGVuYWJsZSB0aGUgYmFja2xpZ2h0ICovCisJaWYgKGdwaW9kX2dldF92YWx1ZV9jYW5zbGVlcChnYmwtPmdwaW9kKSA9PSAwKQorCQlyZXR1cm4gRkJfQkxBTktfUE9XRVJET1dOOworCisJcmV0dXJuIEZCX0JMQU5LX1VOQkxBTks7Cit9CisKKwogc3RhdGljIGludCBncGlvX2JhY2tsaWdodF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBncGlvX2JhY2tsaWdodF9wbGF0Zm9ybV9kYXRhICpwZGF0YSA9CkBAIC0xMzYsNyArMTUwLDkgQEAgc3RhdGljIGludCBncGlvX2JhY2tsaWdodF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gUFRSX0VSUihibCk7CiAJfQogCi0JYmwtPnByb3BzLmJyaWdodG5lc3MgPSBnYmwtPmRlZl92YWx1ZTsKKwlibC0+cHJvcHMucG93ZXIgPSBncGlvX2JhY2tsaWdodF9pbml0aWFsX3Bvd2VyX3N0YXRlKGdibCk7CisJYmwtPnByb3BzLmJyaWdodG5lc3MgPSAxOworCiAJYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoYmwpOwogCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgYmwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvbGNkLmMgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9sY2QuYwppbmRleCBkNmI2NTNhLi43OGIwMzMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9sY2QuYworKysgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9sY2QuYwpAQCAtMzksMTQgKzM5LDYgQEAgc3RhdGljIGludCBmYl9ub3RpZmllcl9jYWxsYmFjayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnNlbGYsCiAJCWlmIChldmVudCA9PSBGQl9FVkVOVF9CTEFOSykgewogCQkJaWYgKGxkLT5vcHMtPnNldF9wb3dlcikKIAkJCQlsZC0+b3BzLT5zZXRfcG93ZXIobGQsICooaW50ICopZXZkYXRhLT5kYXRhKTsKLQkJfSBlbHNlIGlmIChldmVudCA9PSBGQl9FQVJMWV9FVkVOVF9CTEFOSykgewotCQkJaWYgKGxkLT5vcHMtPmVhcmx5X3NldF9wb3dlcikKLQkJCQlsZC0+b3BzLT5lYXJseV9zZXRfcG93ZXIobGQsCi0JCQkJCQkqKGludCAqKWV2ZGF0YS0+ZGF0YSk7Ci0JCX0gZWxzZSBpZiAoZXZlbnQgPT0gRkJfUl9FQVJMWV9FVkVOVF9CTEFOSykgewotCQkJaWYgKGxkLT5vcHMtPnJfZWFybHlfc2V0X3Bvd2VyKQotCQkJCWxkLT5vcHMtPnJfZWFybHlfc2V0X3Bvd2VyKGxkLAotCQkJCQkJKihpbnQgKilldmRhdGEtPmRhdGEpOwogCQl9IGVsc2UgewogCQkJaWYgKGxkLT5vcHMtPnNldF9tb2RlKQogCQkJCWxkLT5vcHMtPnNldF9tb2RlKGxkLCBldmRhdGEtPmRhdGEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvbG0zNjMwYV9ibC5jIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvbG0zNjMwYV9ibC5jCmluZGV4IGIwNGIzNWQuLjJkOGU4MTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2xtMzYzMGFfYmwuYworKysgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9sbTM2MzBhX2JsLmMKQEAgLTM3Nyw4ICszNzcsNyBAQCBzdGF0aWMgaW50IGxtMzYzMGFfcGFyc2VfbGVkX3NvdXJjZXMoc3RydWN0IGZ3bm9kZV9oYW5kbGUgKm5vZGUsCiAJdTMyIHNvdXJjZXNbTE0zNjMwQV9OVU1fU0lOS1NdOwogCWludCByZXQsIG51bV9zb3VyY2VzLCBpOwogCi0JbnVtX3NvdXJjZXMgPSBmd25vZGVfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkobm9kZSwgImxlZC1zb3VyY2VzIiwgTlVMTCwKLQkJCQkJCSAgICAgMCk7CisJbnVtX3NvdXJjZXMgPSBmd25vZGVfcHJvcGVydHlfY291bnRfdTMyKG5vZGUsICJsZWQtc291cmNlcyIpOwogCWlmIChudW1fc291cmNlcyA8IDApCiAJCXJldHVybiBkZWZhdWx0X2xlZF9zb3VyY2VzOwogCWVsc2UgaWYgKG51bV9zb3VyY2VzID4gQVJSQVlfU0laRShzb3VyY2VzKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2xtczI4M2dmMDUuYyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2xtczI4M2dmMDUuYwppbmRleCAzNWJjMDEyLi4wZTQ1Njg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9sbXMyODNnZjA1LmMKKysrIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvbG1zMjgzZ2YwNS5jCkBAIC0xNTgsNyArMTU4LDcgQEAgc3RhdGljIGludCBsbXMyODNnZjA1X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJCXJldCA9IGRldm1fZ3Bpb19yZXF1ZXN0X29uZSgmc3BpLT5kZXYsIHBkYXRhLT5yZXNldF9ncGlvLAogCQkJCUdQSU9GX0RJUl9PVVQgfCAoIXBkYXRhLT5yZXNldF9pbnZlcnRlZCA/CiAJCQkJR1BJT0ZfSU5JVF9ISUdIIDogR1BJT0ZfSU5JVF9MT1cpLAotCQkJCSJMTVMyODVHRjA1IFJFU0VUIik7CisJCQkJIkxNUzI4M0dGMDUgUkVTRVQiKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvcHdtX2JsLmMgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYwppbmRleCAyMjAxYjhjLi43NDZlZWJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYworKysgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYwpAQCAtMzg3LDYgKzM4NywzMSBAQCBpbnQgcHdtX2JhY2tsaWdodF9icmlnaHRuZXNzX2RlZmF1bHQoc3RydWN0IGRldmljZSAqZGV2LAogfQogI2VuZGlmCiAKK3N0YXRpYyBib29sIHB3bV9iYWNrbGlnaHRfaXNfbGluZWFyKHN0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgKmRhdGEpCit7CisJdW5zaWduZWQgaW50IG5sZXZlbHMgPSBkYXRhLT5tYXhfYnJpZ2h0bmVzcyArIDE7CisJdW5zaWduZWQgaW50IG1pbl92YWwgPSBkYXRhLT5sZXZlbHNbMF07CisJdW5zaWduZWQgaW50IG1heF92YWwgPSBkYXRhLT5sZXZlbHNbbmxldmVscyAtIDFdOworCS8qCisJICogTXVsdGlwbHlpbmcgYnkgMTI4IG1lYW5zIHRoYXQgZXZlbiBpbiBwYXRob2xvZ2ljYWwgY2FzZXMgc3VjaAorCSAqIGFzIChtYXhfdmFsIC0gbWluX3ZhbCkgPT0gbmxldmVscyB0aGUgZXJyb3IgYXQgbWF4X3ZhbCBpcyBsZXNzCisJICogdGhhbiAxJS4KKwkgKi8KKwl1bnNpZ25lZCBpbnQgc2xvcGUgPSAoMTI4ICogKG1heF92YWwgLSBtaW5fdmFsKSkgLyBubGV2ZWxzOworCXVuc2lnbmVkIGludCBtYXJnaW4gPSAobWF4X3ZhbCAtIG1pbl92YWwpIC8gMjA7IC8qIDUlICovCisJaW50IGk7CisKKwlmb3IgKGkgPSAxOyBpIDwgbmxldmVsczsgaSsrKSB7CisJCXVuc2lnbmVkIGludCBsaW5lYXJfdmFsdWUgPSBtaW5fdmFsICsgKChpICogc2xvcGUpIC8gMTI4KTsKKwkJdW5zaWduZWQgaW50IGRlbHRhID0gYWJzKGxpbmVhcl92YWx1ZSAtIGRhdGEtPmxldmVsc1tpXSk7CisKKwkJaWYgKGRlbHRhID4gbWFyZ2luKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCiBzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfaW5pdGlhbF9wb3dlcl9zdGF0ZShjb25zdCBzdHJ1Y3QgcHdtX2JsX2RhdGEgKnBiKQogewogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBiLT5kZXYtPm9mX25vZGU7CkBAIC01MzYsNiArNTYxLDggQEAgc3RhdGljIGludCBwd21fYmFja2xpZ2h0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWdvdG8gZXJyX2FsbG9jOwogCX0KIAorCW1lbXNldCgmcHJvcHMsIDAsIHNpemVvZihzdHJ1Y3QgYmFja2xpZ2h0X3Byb3BlcnRpZXMpKTsKKwogCWlmIChkYXRhLT5sZXZlbHMpIHsKIAkJLyoKIAkJICogRm9yIHRoZSBEVCBjYXNlLCBvbmx5IHdoZW4gYnJpZ2h0bmVzcyBsZXZlbHMgaXMgZGVmaW5lZApAQCAtNTQ4LDYgKzU3NSwxMSBAQCBzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCQkJcGItPmxldmVscyA9IGRhdGEtPmxldmVsczsKIAkJfQorCisJCWlmIChwd21fYmFja2xpZ2h0X2lzX2xpbmVhcihkYXRhKSkKKwkJCXByb3BzLnNjYWxlID0gQkFDS0xJR0hUX1NDQUxFX0xJTkVBUjsKKwkJZWxzZQorCQkJcHJvcHMuc2NhbGUgPSBCQUNLTElHSFRfU0NBTEVfTk9OX0xJTkVBUjsKIAl9IGVsc2UgaWYgKCFkYXRhLT5tYXhfYnJpZ2h0bmVzcykgewogCQkvKgogCQkgKiBJZiBubyBicmlnaHRuZXNzIGxldmVscyBhcmUgcHJvdmlkZWQgYW5kIG1heF9icmlnaHRuZXNzIGlzCkBAIC01NzQsNiArNjA2LDggQEAgc3RhdGljIGludCBwd21fYmFja2xpZ2h0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkJCXBiLT5sZXZlbHMgPSBkYXRhLT5sZXZlbHM7CiAJCX0KKworCQlwcm9wcy5zY2FsZSA9IEJBQ0tMSUdIVF9TQ0FMRV9OT05fTElORUFSOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIFRoYXQgb25seSBoYXBwZW5zIGZvciB0aGUgbm9uLURUIGNhc2UsIHdoZXJlIHBsYXRmb3JtIGRhdGEKQEAgLTU4NCw3ICs2MTgsNiBAQCBzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCXBiLT5sdGhfYnJpZ2h0bmVzcyA9IGRhdGEtPmx0aF9icmlnaHRuZXNzICogKHN0YXRlLnBlcmlvZCAvIHBiLT5zY2FsZSk7CiAKLQltZW1zZXQoJnByb3BzLCAwLCBzaXplb2Yoc3RydWN0IGJhY2tsaWdodF9wcm9wZXJ0aWVzKSk7CiAJcHJvcHMudHlwZSA9IEJBQ0tMSUdIVF9SQVc7CiAJcHJvcHMubWF4X2JyaWdodG5lc3MgPSBkYXRhLT5tYXhfYnJpZ2h0bmVzczsKIAlibCA9IGJhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoZGV2X25hbWUoJnBkZXYtPmRldiksICZwZGV2LT5kZXYsIHBiLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvcmF2ZS1zcC1iYWNrbGlnaHQuYyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L3JhdmUtc3AtYmFja2xpZ2h0LmMKaW5kZXggNDYyZjE0YS4uMDViNWYwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvcmF2ZS1zcC1iYWNrbGlnaHQuYworKysgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9yYXZlLXNwLWJhY2tsaWdodC5jCkBAIC00OCwxNCArNDgsMjAgQEAgc3RhdGljIGludCByYXZlX3NwX2JhY2tsaWdodF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CiAJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJkOwogCi0JYmQgPSBkZXZtX2JhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoZGV2LCBwZGV2LT5uYW1lLCBkZXYtPnBhcmVudCwKKwliZCA9IGRldm1fYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcihkZXYsIHBkZXYtPm5hbWUsIGRldiwKIAkJCQkJICAgIGRldl9nZXRfZHJ2ZGF0YShkZXYtPnBhcmVudCksCiAJCQkJCSAgICAmcmF2ZV9zcF9iYWNrbGlnaHRfb3BzLAogCQkJCQkgICAgJnJhdmVfc3BfYmFja2xpZ2h0X3Byb3BzKTsKIAlpZiAoSVNfRVJSKGJkKSkKIAkJcmV0dXJuIFBUUl9FUlIoYmQpOwogCi0JYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoYmQpOworCS8qCisJICogSWYgdGhlcmUgaXMgYSBwaGFuZGxlIHBvaW50aW5nIHRvIHRoZSBkZXZpY2Ugbm9kZSB3ZSBjYW4KKwkgKiBhc3N1bWUgdGhhdCBhbm90aGVyIGRldmljZSB3aWxsIG1hbmFnZSB0aGUgc3RhdHVzIGNoYW5nZXMuCisJICogSWYgbm90IHdlIG1ha2Ugc3VyZSB0aGUgYmFja2xpZ2h0IGlzIGluIGEgY29uc2lzdGVudCBzdGF0ZS4KKwkgKi8KKwlpZiAoIWRldi0+b2Zfbm9kZS0+cGhhbmRsZSkKKwkJYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoYmQpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC90b3NhX2xjZC5jIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvdG9zYV9sY2QuYwppbmRleCA2NWNiNzU3Li4yOWFmOGUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC90b3NhX2xjZC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L3Rvc2FfbGNkLmMKQEAgLTIyMiw4ICsyMjIsNyBAQCBzdGF0aWMgaW50IHRvc2FfbGNkX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogewogCXN0cnVjdCB0b3NhX2xjZF9kYXRhICpkYXRhID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7CiAKLQlpZiAoZGF0YS0+aTJjKQotCQlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoZGF0YS0+aTJjKTsKKwlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoZGF0YS0+aTJjKTsKIAogCXRvc2FfbGNkX3RnX29mZihkYXRhKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnIGIvZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnCmluZGV4IDVmODNjZDcuLjFlNzBlODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWcKQEAgLTIxOTcsMTUgKzIxOTcsNiBAQAogCSAgYW5kIGNvdWxkIGFsc28gaGF2ZSBiZWVuIGNhbGxlZCBieSBvdGhlciBuYW1lcyB3aGVuIGNvdXBsZWQgd2l0aAogCSAgYSBicmlkZ2UgYWRhcHRlci4KIAotY29uZmlnIEZCX0paNDc0MAotCXRyaXN0YXRlICJKWjQ3NDAgTENEIGZyYW1lYnVmZmVyIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBGQiAmJiBNQUNIX0paNDc0MAotCXNlbGVjdCBGQl9TWVNfRklMTFJFQ1QKLQlzZWxlY3QgRkJfU1lTX0NPUFlBUkVBCi0Jc2VsZWN0IEZCX1NZU19JTUFHRUJMSVQKLQloZWxwCi0JICBGcmFtZWJ1ZmZlciBzdXBwb3J0IGZvciB0aGUgSlo0NzQwIFNvQy4KLQogY29uZmlnIEZCX1BVVjNfVU5JR0ZYCiAJdHJpc3RhdGUgIlBLVW5pdHkgdjMgVW5pZ2Z4IGZyYW1lYnVmZmVyIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBGQiAmJiBVTklDT1JFMzIgJiYgQVJDSF9QVVYzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L01ha2VmaWxlIGIvZHJpdmVycy92aWRlby9mYmRldi9NYWtlZmlsZQppbmRleCBhYWI3MTU1Li5hYTYzNTI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvTWFrZWZpbGUKQEAgLTExNiw3ICsxMTYsNiBAQAogb2JqLSQoQ09ORklHX1hFTl9GQkRFVl9GUk9OVEVORCkgICs9IHhlbi1mYmZyb250Lm8KIG9iai0kKENPTkZJR19GQl9DQVJNSU5FKSAgICAgICAgICArPSBjYXJtaW5lZmIubwogb2JqLSQoQ09ORklHX0ZCX01CODYyWFgpCSAgKz0gbWI4NjJ4eC8KLW9iai0kKENPTkZJR19GQl9KWjQ3NDApCQkgICs9IGp6NDc0MF9mYi5vCiBvYmotJChDT05GSUdfRkJfUFVWM19VTklHRlgpICAgICAgKz0gZmItcHV2My5vCiBvYmotJChDT05GSUdfRkJfSFlQRVJWKQkJICArPSBoeXBlcnZfZmIubwogb2JqLSQoQ09ORklHX0ZCX09QRU5DT1JFUykJICArPSBvY2ZiLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYW1iYS1jbGNkLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2FtYmEtY2xjZC5jCmluZGV4IDg5MzI0ZTQuLjdkZTQzYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYW1iYS1jbGNkLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hbWJhLWNsY2QuYwpAQCAtNTYxLDggKzU2MSwxMCBAQCBzdGF0aWMgaW50IGNsY2RmYl9vZl9nZXRfZHBpX3BhbmVsX21vZGUoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCXN0cnVjdCB2aWRlb21vZGUgdmlkZW87CiAKIAllcnIgPSBvZl9nZXRfZGlzcGxheV90aW1pbmcobm9kZSwgInBhbmVsLXRpbWluZyIsICZ0aW1pbmcpOwotCWlmIChlcnIpCisJaWYgKGVycikgeworCQlwcl9lcnIoIiVwT0Y6IHByb2JsZW1zIHBhcnNpbmcgcGFuZWwtdGltaW5nICglZClcbiIsIG5vZGUsIGVycik7CiAJCXJldHVybiBlcnI7CisJfQogCiAJdmlkZW9tb2RlX2Zyb21fdGltaW5nKCZ0aW1pbmcsICZ2aWRlbyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L2F0eTEyOGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0eS9hdHkxMjhmYi5jCmluZGV4IDg1MDRlMTkuLmZjMWU0NWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L2F0eTEyOGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hdHkvYXR5MTI4ZmIuYwpAQCAtNDg3LDExICs0ODcsNiBAQCBzdGF0aWMgaW50IGF0eTEyOF9lbmNvZGVfdmFyKHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYXR5MTI4ZmJfcGFyICpwYXIpOwogc3RhdGljIGludCBhdHkxMjhfZGVjb2RlX3ZhcihzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGF0eTEyOGZiX3BhciAqcGFyKTsKLSNpZiAwCi1zdGF0aWMgdm9pZCBhdHkxMjhfZ2V0X3BsbGluZm8oc3RydWN0IGF0eTEyOGZiX3BhciAqcGFyLCB2b2lkIF9faW9tZW0gKmJpb3MpOwotc3RhdGljIHZvaWQgX19pb21lbSAqYXR5MTI4X21hcF9ST00oc3RydWN0IHBjaV9kZXYgKnBkZXYsCi0JCQkJICAgIGNvbnN0IHN0cnVjdCBhdHkxMjhmYl9wYXIgKnBhcik7Ci0jZW5kaWYKIHN0YXRpYyB2b2lkIGF0eTEyOF90aW1pbmdzKHN0cnVjdCBhdHkxMjhmYl9wYXIgKnBhcik7CiBzdGF0aWMgdm9pZCBhdHkxMjhfaW5pdF9lbmdpbmUoc3RydWN0IGF0eTEyOGZiX3BhciAqcGFyKTsKIHN0YXRpYyB2b2lkIGF0eTEyOF9yZXNldF9lbmdpbmUoY29uc3Qgc3RydWN0IGF0eTEyOGZiX3BhciAqcGFyKTsKQEAgLTE2NjUsMTkgKzE2NjAsNiBAQCBzdGF0aWMgdm9pZCBhdHkxMjhfc3RfcGFsKHVfaW50IHJlZ25vLCB1X2ludCByZWQsIHVfaW50IGdyZWVuLCB1X2ludCBibHVlLAogCQkJICBzdHJ1Y3QgYXR5MTI4ZmJfcGFyICpwYXIpCiB7CiAJaWYgKHBhci0+Y2hpcF9nZW4gPT0gcmFnZV9NMykgewotI2lmIDAKLQkJLyogTm90ZTogRm9yIG5vdywgb24gTTMsIHdlIHNldCBwYWxldHRlIG9uIGJvdGggaGVhZHMsIHdoaWNoIG1heQotCQkgKiBiZSB1c2VsZXNzLiBDYW4gc29tZW9uZSB3aXRoIGEgTTMgY2hlY2sgdGhpcyA/Ci0JCSAqIAotCQkgKiBUaGlzIGNvZGUgd291bGQgc3RpbGwgYmUgdXNlZnVsIGlmIHVzaW5nIHRoZSBzZWNvbmQgQ1JUQyB0byAKLQkJICogZG8gbWlycm9yaW5nCi0JCSAqLwotCi0JCWF0eV9zdF9sZTMyKERBQ19DTlRMLCBhdHlfbGRfbGUzMihEQUNfQ05UTCkgfAotCQkJICAgIERBQ19QQUxFVFRFX0FDQ0VTU19DTlRMKTsKLQkJYXR5X3N0XzgoUEFMRVRURV9JTkRFWCwgcmVnbm8pOwotCQlhdHlfc3RfbGUzMihQQUxFVFRFX0RBVEEsIChyZWQ8PDE2KXwoZ3JlZW48PDgpfGJsdWUpOwotI2VuZGlmCiAJCWF0eV9zdF9sZTMyKERBQ19DTlRMLCBhdHlfbGRfbGUzMihEQUNfQ05UTCkgJgogCQkJICAgIH5EQUNfUEFMRVRURV9BQ0NFU1NfQ05UTCk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9hdHkvYXR5ZmJfYmFzZS5jIGIvZHJpdmVycy92aWRlby9mYmRldi9hdHkvYXR5ZmJfYmFzZS5jCmluZGV4IDcyYmNmYmUuLjZkZGE1ZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L2F0eWZiX2Jhc2UuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0eS9hdHlmYl9iYXNlLmMKQEAgLTExODgsMTkgKzExODgsNiBAQCBzdGF0aWMgaW50IGF0eV9jcnRjX3RvX3Zhcihjb25zdCBzdHJ1Y3QgY3J0YyAqY3J0YywKIAkJKGNfc3luYyA/IEZCX1NZTkNfQ09NUF9ISUdIX0FDVCA6IDApOwogCiAJc3dpdGNoIChwaXhfd2lkdGgpIHsKLSNpZiAwCi0JY2FzZSBDUlRDX1BJWF9XSURUSF80QlBQOgotCQlicHAgPSA0OwotCQl2YXItPnJlZC5vZmZzZXQgPSAwOwotCQl2YXItPnJlZC5sZW5ndGggPSA4OwotCQl2YXItPmdyZWVuLm9mZnNldCA9IDA7Ci0JCXZhci0+Z3JlZW4ubGVuZ3RoID0gODsKLQkJdmFyLT5ibHVlLm9mZnNldCA9IDA7Ci0JCXZhci0+Ymx1ZS5sZW5ndGggPSA4OwotCQl2YXItPnRyYW5zcC5vZmZzZXQgPSAwOwotCQl2YXItPnRyYW5zcC5sZW5ndGggPSAwOwotCQlicmVhazsKLSNlbmRpZgogCWNhc2UgQ1JUQ19QSVhfV0lEVEhfOEJQUDoKIAkJYnBwID0gODsKIAkJdmFyLT5yZWQub2Zmc2V0ID0gMDsKQEAgLTE0NjYsMTEgKzE0NTMsNiBAQCBzdGF0aWMgaW50IGF0eWZiX3NldF9wYXIoc3RydWN0IGZiX2luZm8gKmluZm8pCiAJCXZhci0+Yml0c19wZXJfcGl4ZWwsCiAJCXBhci0+Y3J0Yy52eHJlcyAqIHZhci0+Yml0c19wZXJfcGl4ZWwgLyA4KTsKICNlbmRpZiAvKiBDT05GSUdfQk9PVFhfVEVYVCAqLwotI2lmIDAKLQkvKiBzd2l0Y2ggdG8gYWNjZWxlcmF0b3IgbW9kZSAqLwotCWlmICghKHBhci0+Y3J0Yy5nZW5fY250bCAmIENSVENfRVhUX0RJU1BfRU4pKQotCQlhdHlfc3RfbGUzMihDUlRDX0dFTl9DTlRMLCBwYXItPmNydGMuZ2VuX2NudGwgfCBDUlRDX0VYVF9ESVNQX0VOLCBwYXIpOwotI2VuZGlmCiAjaWZkZWYgREVCVUcKIHsKIAkvKiBkdW1wIG5vbiBzaGFkb3cgQ1JUQywgcGxsLCBMQ0QgcmVnaXN0ZXJzICovCkBAIC0yMzk2LDE3ICsyMzc4LDYgQEAgc3RhdGljIGludCBhdHlfaW5pdChzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAkJCXBhci0+cGxsX29wcyA9ICZhdHlfcGxsX2libTUxNDsKIAkJCWJyZWFrOwogI2VuZGlmCi0jaWYgMCAvKiBkZWFkIGNvZGUgKi8KLQkJY2FzZSBDTEtfU1RHMTcwMzoKLQkJCXBhci0+cGxsX29wcyA9ICZhdHlfcGxsX3N0ZzE3MDM7Ci0JCQlicmVhazsKLQkJY2FzZSBDTEtfQ0g4Mzk4OgotCQkJcGFyLT5wbGxfb3BzID0gJmF0eV9wbGxfY2g4Mzk4OwotCQkJYnJlYWs7Ci0JCWNhc2UgQ0xLX0FUVDIwQzQwODoKLQkJCXBhci0+cGxsX29wcyA9ICZhdHlfcGxsX2F0dDIwYzQwODsKLQkJCWJyZWFrOwotI2VuZGlmCiAJCWRlZmF1bHQ6CiAJCQlQUklOVEtJKCJhdHlfaW5pdDogQ0xLIHR5cGUgbm90IGltcGxlbWVudGVkIHlldCEiKTsKIAkJCXBhci0+cGxsX29wcyA9ICZhdHlfcGxsX3Vuc3VwcG9ydGVkOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9hdHkvcmFkZW9uX2Jhc2UuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L3JhZGVvbl9iYXNlLmMKaW5kZXggNmY4OTFkOC4uNGNhMDc4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9hdHkvcmFkZW9uX2Jhc2UuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0eS9yYWRlb25fYmFzZS5jCkBAIC0yMjE3LDggKzIyMTcsNyBAQCBzdGF0aWMgc3NpemVfdCByYWRlb25fc2hvd19lZGlkMShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCQkJIGNoYXIgKmJ1ZiwgbG9mZl90IG9mZiwgc2l6ZV90IGNvdW50KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgZGV2aWNlLCBrb2JqKTsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKLSAgICAgICAgc3RydWN0IGZiX2luZm8gKmluZm8gPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGZiX2luZm8gKmluZm8gPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKICAgICAgICAgc3RydWN0IHJhZGVvbmZiX2luZm8gKnJpbmZvID0gaW5mby0+cGFyOwogCiAJcmV0dXJuIHJhZGVvbl9zaG93X29uZV9lZGlkKGJ1Ziwgb2ZmLCBjb3VudCwgcmluZm8tPm1vbjFfRURJRCk7CkBAIC0yMjMwLDggKzIyMjksNyBAQCBzdGF0aWMgc3NpemVfdCByYWRlb25fc2hvd19lZGlkMihzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCQkJIGNoYXIgKmJ1ZiwgbG9mZl90IG9mZiwgc2l6ZV90IGNvdW50KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgZGV2aWNlLCBrb2JqKTsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKLSAgICAgICAgc3RydWN0IGZiX2luZm8gKmluZm8gPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGZiX2luZm8gKmluZm8gPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKICAgICAgICAgc3RydWN0IHJhZGVvbmZiX2luZm8gKnJpbmZvID0gaW5mby0+cGFyOwogCiAJcmV0dXJuIHJhZGVvbl9zaG93X29uZV9lZGlkKGJ1Ziwgb2ZmLCBjb3VudCwgcmluZm8tPm1vbjJfRURJRCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F1MTIwMGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F1MTIwMGZiLmMKaW5kZXggMjZjYWZmYi4uMjY1ZDNiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9hdTEyMDBmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXUxMjAwZmIuYwpAQCAtMTIzNCw3ICsxMjM0LDcgQEAgc3RhdGljIGludCBhdTEyMDBmYl9mYl9tbWFwKHN0cnVjdCBmYl9pbmZvICppbmZvLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAlzdHJ1Y3QgYXUxMjAwZmJfZGV2aWNlICpmYmRldiA9IGluZm8tPnBhcjsKIAogCXJldHVybiBkbWFfbW1hcF9hdHRycyhmYmRldi0+ZGV2LCB2bWEsIGZiZGV2LT5mYl9tZW0sIGZiZGV2LT5mYl9waHlzLAotCQkJZmJkZXYtPmZiX2xlbiwgRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQpOworCQkJZmJkZXYtPmZiX2xlbiwgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldF9nbG9iYWwodV9pbnQgY21kLCBzdHJ1Y3QgYXUxMjAwX2xjZF9nbG9iYWxfcmVnc190ICpwZGF0YSkKQEAgLTE2OTIsOCArMTY5Miw3IEBAIHN0YXRpYyBpbnQgYXUxMjAwZmJfZHJ2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKIAogCQlmYmRldi0+ZmJfbWVtID0gZG1hbV9hbGxvY19hdHRycygmZGV2LT5kZXYsCiAJCQkJUEFHRV9BTElHTihmYmRldi0+ZmJfbGVuKSwKLQkJCQkmZmJkZXYtPmZiX3BoeXMsIEdGUF9LRVJORUwsCi0JCQkJRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQpOworCQkJCSZmYmRldi0+ZmJfcGh5cywgR0ZQX0tFUk5FTCwgMCk7CiAJCWlmICghZmJkZXYtPmZiX21lbSkgewogCQkJcHJpbnRfZXJyKCJmYWlsIHRvIGFsbG9jYXRlIGZyYW1lYnVmZmVyIChzaXplOiAlZEspKSIsCiAJCQkJICBmYmRldi0+ZmJfbGVuIC8gMTAyNCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvZmJtZW0uYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9mYm1lbS5jCmluZGV4IDY0ZGQ3MzIuLmU2YTFjODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9mYm1lbS5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9mYm1lbS5jCkBAIC0xMDU4LDcgKzEwNTgsNyBAQCBpbnQKIGZiX2JsYW5rKHN0cnVjdCBmYl9pbmZvICppbmZvLCBpbnQgYmxhbmspCiB7CQogCXN0cnVjdCBmYl9ldmVudCBldmVudDsKLQlpbnQgcmV0ID0gLUVJTlZBTCwgZWFybHlfcmV0OworCWludCByZXQgPSAtRUlOVkFMOwogCiAgCWlmIChibGFuayA+IEZCX0JMQU5LX1BPV0VSRE9XTikKICAJCWJsYW5rID0gRkJfQkxBTktfUE9XRVJET1dOOwpAQCAtMTA2NiwyMSArMTA2NiwxMSBAQCBmYl9ibGFuayhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IGJsYW5rKQogCWV2ZW50LmluZm8gPSBpbmZvOwogCWV2ZW50LmRhdGEgPSAmYmxhbms7CiAKLQllYXJseV9yZXQgPSBmYl9ub3RpZmllcl9jYWxsX2NoYWluKEZCX0VBUkxZX0VWRU5UX0JMQU5LLCAmZXZlbnQpOwotCiAJaWYgKGluZm8tPmZib3BzLT5mYl9ibGFuaykKICAJCXJldCA9IGluZm8tPmZib3BzLT5mYl9ibGFuayhibGFuaywgaW5mbyk7CiAKIAlpZiAoIXJldCkKIAkJZmJfbm90aWZpZXJfY2FsbF9jaGFpbihGQl9FVkVOVF9CTEFOSywgJmV2ZW50KTsKLQllbHNlIHsKLQkJLyoKLQkJICogaWYgZmJfYmxhbmsgaXMgZmFpbGVkIHRoZW4gcmV2ZXJ0IGVmZmVjdHMgb2YKLQkJICogdGhlIGVhcmx5IGJsYW5rIGV2ZW50LgotCQkgKi8KLQkJaWYgKCFlYXJseV9yZXQpCi0JCQlmYl9ub3RpZmllcl9jYWxsX2NoYWluKEZCX1JfRUFSTFlfRVZFTlRfQkxBTkssICZldmVudCk7Ci0JfQogCiAgCXJldHVybiByZXQ7CiB9CkBAIC0xOTU3LDcgKzE5NDcsNyBAQCBpbnQgZmJfbmV3X21vZGVsaXN0KHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXN0cnVjdCBsaXN0X2hlYWQgKnBvcywgKm47CiAJc3RydWN0IGZiX21vZGVsaXN0ICptb2RlbGlzdDsKIAlzdHJ1Y3QgZmJfdmlkZW9tb2RlICptLCBtb2RlOwotCWludCBlcnIgPSAxOworCWludCBlcnI7CiAKIAlsaXN0X2Zvcl9lYWNoX3NhZmUocG9zLCBuLCAmaW5mby0+bW9kZWxpc3QpIHsKIAkJbW9kZWxpc3QgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGZiX21vZGVsaXN0LCBsaXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9mYm1vbi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZibW9uLmMKaW5kZXggMzU1OGE3MC4uOGUyZTE5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZibW9uLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZibW9uLmMKQEAgLTk5OSw5OCArOTk5LDYgQEAgdm9pZCBmYl9lZGlkX3RvX21vbnNwZWNzKHVuc2lnbmVkIGNoYXIgKmVkaWQsIHN0cnVjdCBmYl9tb25zcGVjcyAqc3BlY3MpCiAJRFBSSU5USygiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIik7CiB9CiAKLS8qKgotICogZmJfZWRpZF9hZGRfbW9uc3BlY3MoKSAtIGFkZCBtb25pdG9yIHZpZGVvIG1vZGVzIGZyb20gRS1FRElEIGRhdGEKLSAqIEBlZGlkOgkxMjggYnl0ZSBhcnJheSB3aXRoIGFuIEUtRURJRCBibG9jawotICogQHNwYWNzOgltb25pdG9yIHNwZWNzIHRvIGJlIGV4dGVuZGVkCi0gKi8KLXZvaWQgZmJfZWRpZF9hZGRfbW9uc3BlY3ModW5zaWduZWQgY2hhciAqZWRpZCwgc3RydWN0IGZiX21vbnNwZWNzICpzcGVjcykKLXsKLQl1bnNpZ25lZCBjaGFyICpibG9jazsKLQlzdHJ1Y3QgZmJfdmlkZW9tb2RlICptOwotCWludCBudW0gPSAwLCBpOwotCXU4IHN2ZFs2NF0sIGVkdFsoMTI4IC0gNCkgLyBERVRBSUxFRF9USU1JTkdfREVTQ1JJUFRJT05fU0laRV07Ci0JdTggcG9zID0gNCwgc3ZkX24gPSAwOwotCi0JaWYgKCFlZGlkKQotCQlyZXR1cm47Ci0KLQlpZiAoIWVkaWRfY2hlY2tzdW0oZWRpZCkpCi0JCXJldHVybjsKLQotCWlmIChlZGlkWzBdICE9IDB4MiB8fAotCSAgICBlZGlkWzJdIDwgNCB8fCBlZGlkWzJdID4gMTI4IC0gREVUQUlMRURfVElNSU5HX0RFU0NSSVBUSU9OX1NJWkUpCi0JCXJldHVybjsKLQotCURQUklOVEsoIiAgU2hvcnQgVmlkZW8gRGVzY3JpcHRvcnNcbiIpOwotCi0Jd2hpbGUgKHBvcyA8IGVkaWRbMl0pIHsKLQkJdTggbGVuID0gZWRpZFtwb3NdICYgMHgxZiwgdHlwZSA9IChlZGlkW3Bvc10gPj4gNSkgJiA3OwotCQlwcl9kZWJ1ZygiRGF0YSBibG9jayAldSBvZiAldSBieXRlc1xuIiwgdHlwZSwgbGVuKTsKLQkJaWYgKHR5cGUgPT0gMikgewotCQkJZm9yIChpID0gcG9zOyBpIDwgcG9zICsgbGVuOyBpKyspIHsKLQkJCQl1OCBpZHggPSBlZGlkW3BvcyArIGldICYgMHg3ZjsKLQkJCQlzdmRbc3ZkX24rK10gPSBpZHg7Ci0JCQkJcHJfZGVidWcoIk4lc2F0aXZlIG1vZGUgIyVkXG4iLAotCQkJCQkgZWRpZFtwb3MgKyBpXSAmIDB4ODAgPyAiIiA6ICJvbi1uIiwgaWR4KTsKLQkJCX0KLQkJfSBlbHNlIGlmICh0eXBlID09IDMgJiYgbGVuID49IDMpIHsKLQkJCS8qIENoZWNrIFZlbmRvciBTcGVjaWZpYyBEYXRhIEJsb2NrLiAgRm9yIEhETUksCi0JCQkgICBpdCBpcyBhbHdheXMgMDAtMEMtMDMgZm9yIEhETUkgTGljZW5zaW5nLCBMTEMuICovCi0JCQlpZiAoZWRpZFtwb3MgKyAxXSA9PSAzICYmIGVkaWRbcG9zICsgMl0gPT0gMHhjICYmCi0JCQkgICAgZWRpZFtwb3MgKyAzXSA9PSAwKQotCQkJCXNwZWNzLT5taXNjIHw9IEZCX01JU0NfSERNSTsKLQkJfQotCQlwb3MgKz0gbGVuICsgMTsKLQl9Ci0KLQlibG9jayA9IGVkaWQgKyBlZGlkWzJdOwotCi0JRFBSSU5USygiICBFeHRlbmRlZCBEZXRhaWxlZCBUaW1pbmdzXG4iKTsKLQotCWZvciAoaSA9IDA7IGkgPCAoMTI4IC0gZWRpZFsyXSkgLyBERVRBSUxFRF9USU1JTkdfREVTQ1JJUFRJT05fU0laRTsKLQkgICAgIGkrKywgYmxvY2sgKz0gREVUQUlMRURfVElNSU5HX0RFU0NSSVBUSU9OX1NJWkUpCi0JCWlmIChQSVhFTF9DTE9DSyAhPSAwKQotCQkJZWR0W251bSsrXSA9IGJsb2NrIC0gZWRpZDsKLQotCS8qIFlpa2VzLCBFRElEIGRhdGEgaXMgdG90YWxseSB1c2VsZXNzICovCi0JaWYgKCEobnVtICsgc3ZkX24pKQotCQlyZXR1cm47Ci0KLQltID0ga2NhbGxvYyhzcGVjcy0+bW9kZWRiX2xlbiArIG51bSArIHN2ZF9uLAotCQkgICAgc2l6ZW9mKHN0cnVjdCBmYl92aWRlb21vZGUpLAotCQkgICAgR0ZQX0tFUk5FTCk7Ci0KLQlpZiAoIW0pCi0JCXJldHVybjsKLQotCW1lbWNweShtLCBzcGVjcy0+bW9kZWRiLCBzcGVjcy0+bW9kZWRiX2xlbiAqIHNpemVvZihzdHJ1Y3QgZmJfdmlkZW9tb2RlKSk7Ci0KLQlmb3IgKGkgPSBzcGVjcy0+bW9kZWRiX2xlbjsgaSA8IHNwZWNzLT5tb2RlZGJfbGVuICsgbnVtOyBpKyspIHsKLQkJZ2V0X2RldGFpbGVkX3RpbWluZyhlZGlkICsgZWR0W2kgLSBzcGVjcy0+bW9kZWRiX2xlbl0sICZtW2ldKTsKLQkJaWYgKGkgPT0gc3BlY3MtPm1vZGVkYl9sZW4pCi0JCQltW2ldLmZsYWcgfD0gRkJfTU9ERV9JU19GSVJTVDsKLQkJcHJfZGVidWcoIkFkZGluZyAldXgldUAldVxuIiwgbVtpXS54cmVzLCBtW2ldLnlyZXMsIG1baV0ucmVmcmVzaCk7Ci0JfQotCi0JZm9yIChpID0gc3BlY3MtPm1vZGVkYl9sZW4gKyBudW07IGkgPCBzcGVjcy0+bW9kZWRiX2xlbiArIG51bSArIHN2ZF9uOyBpKyspIHsKLQkJaW50IGlkeCA9IHN2ZFtpIC0gc3BlY3MtPm1vZGVkYl9sZW4gLSBudW1dOwotCQlpZiAoIWlkeCB8fCBpZHggPj0gQVJSQVlfU0laRShjZWFfbW9kZXMpKSB7Ci0JCQlwcl93YXJuKCJSZXNlcnZlZCBTVkQgY29kZSAlZFxuIiwgaWR4KTsKLQkJfSBlbHNlIGlmICghY2VhX21vZGVzW2lkeF0ueHJlcykgewotCQkJcHJfd2FybigiVW5pbXBsZW1lbnRlZCBTVkQgY29kZSAlZFxuIiwgaWR4KTsKLQkJfSBlbHNlIHsKLQkJCW1lbWNweSgmbVtpXSwgY2VhX21vZGVzICsgaWR4LCBzaXplb2YobVtpXSkpOwotCQkJcHJfZGVidWcoIkFkZGluZyBTVkQgIyVkOiAldXgldUAldVxuIiwgaWR4LAotCQkJCSBtW2ldLnhyZXMsIG1baV0ueXJlcywgbVtpXS5yZWZyZXNoKTsKLQkJfQotCX0KLQotCWtmcmVlKHNwZWNzLT5tb2RlZGIpOwotCXNwZWNzLT5tb2RlZGIgPSBtOwotCXNwZWNzLT5tb2RlZGJfbGVuID0gc3BlY3MtPm1vZGVkYl9sZW4gKyBudW0gKyBzdmRfbjsKLX0KLQogLyoKICAqIFZFU0EgR2VuZXJhbGl6ZWQgVGltaW5nIEZvcm11bGEgKEdURikKICAqLwpAQCAtMTUwMCw5ICsxNDA4LDYgQEAgaW50IGZiX3BhcnNlX2VkaWQodW5zaWduZWQgY2hhciAqZWRpZCwgc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIpCiB2b2lkIGZiX2VkaWRfdG9fbW9uc3BlY3ModW5zaWduZWQgY2hhciAqZWRpZCwgc3RydWN0IGZiX21vbnNwZWNzICpzcGVjcykKIHsKIH0KLXZvaWQgZmJfZWRpZF9hZGRfbW9uc3BlY3ModW5zaWduZWQgY2hhciAqZWRpZCwgc3RydWN0IGZiX21vbnNwZWNzICpzcGVjcykKLXsKLX0KIHZvaWQgZmJfZGVzdHJveV9tb2RlZGIoc3RydWN0IGZiX3ZpZGVvbW9kZSAqbW9kZWRiKQogewogfQpAQCAtMTYxMCw3ICsxNTE1LDYgQEAgRVhQT1JUX1NZTUJPTChmYl9maXJtd2FyZV9lZGlkKTsKIAogRVhQT1JUX1NZTUJPTChmYl9wYXJzZV9lZGlkKTsKIEVYUE9SVF9TWU1CT0woZmJfZWRpZF90b19tb25zcGVjcyk7Ci1FWFBPUlRfU1lNQk9MKGZiX2VkaWRfYWRkX21vbnNwZWNzKTsKIEVYUE9SVF9TWU1CT0woZmJfZ2V0X21vZGUpOwogRVhQT1JUX1NZTUJPTChmYl92YWxpZGF0ZV9tb2RlKTsKIEVYUE9SVF9TWU1CT0woZmJfZGVzdHJveV9tb2RlZGIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL21vZGVkYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL21vZGVkYi5jCmluZGV4IGFjMDQ5ODcuLjY0NzNlMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9tb2RlZGIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvbW9kZWRiLmMKQEAgLTI4OSw2MyArMjg5LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmYl92aWRlb21vZGUgbW9kZWRiW10gPSB7CiB9OwogCiAjaWZkZWYgQ09ORklHX0ZCX01PREVfSEVMUEVSUwotY29uc3Qgc3RydWN0IGZiX3ZpZGVvbW9kZSBjZWFfbW9kZXNbNjVdID0gewotCS8qICMxOiA2NDB4NDgwcEA1OS45NC82MEh6ICovCi0JWzFdID0gewotCQlOVUxMLCA2MCwgNjQwLCA0ODAsIDM5NzIyLCA0OCwgMTYsIDMzLCAxMCwgOTYsIDIsIDAsCi0JCUZCX1ZNT0RFX05PTklOVEVSTEFDRUQsIDAsCi0JfSwKLQkvKiAjMzogNzIweDQ4MHBANTkuOTQvNjBIeiAqLwotCVszXSA9IHsKLQkJTlVMTCwgNjAsIDcyMCwgNDgwLCAzNzAzNywgNjAsIDE2LCAzMCwgOSwgNjIsIDYsIDAsCi0JCUZCX1ZNT0RFX05PTklOVEVSTEFDRUQsIDAsCi0JfSwKLQkvKiAjNTogMTkyMHgxMDgwaUA1OS45NC82MEh6ICovCi0JWzVdID0gewotCQlOVUxMLCA2MCwgMTkyMCwgMTA4MCwgMTM3NjMsIDE0OCwgODgsIDE1LCAyLCA0NCwgNSwKLQkJRkJfU1lOQ19IT1JfSElHSF9BQ1QgfCBGQl9TWU5DX1ZFUlRfSElHSF9BQ1QsCi0JCUZCX1ZNT0RFX0lOVEVSTEFDRUQsIDAsCi0JfSwKLQkvKiAjNzogNzIwKDE0NDApeDQ4MGlIQDU5Ljk0LzYwSHogKi8KLQlbN10gPSB7Ci0JCU5VTEwsIDYwLCAxNDQwLCA0ODAsIDE4NTU0LyozNzEwOCovLCAxMTQsIDM4LCAxNSwgNCwgMTI0LCAzLCAwLAotCQlGQl9WTU9ERV9JTlRFUkxBQ0VELCAwLAotCX0sCi0JLyogIzk6IDcyMCgxNDQwKXgyNDBwSEA1OS45NC82MEh6ICovCi0JWzldID0gewotCQlOVUxMLCA2MCwgMTQ0MCwgMjQwLCAxODU1NCwgMTE0LCAzOCwgMTYsIDQsIDEyNCwgMywgMCwKLQkJRkJfVk1PREVfTk9OSU5URVJMQUNFRCwgMCwKLQl9LAotCS8qICMxODogNzIweDU3NnBIQDUwSHogKi8KLQlbMThdID0gewotCQlOVUxMLCA1MCwgNzIwLCA1NzYsIDM3MDM3LCA2OCwgMTIsIDM5LCA1LCA2NCwgNSwgMCwKLQkJRkJfVk1PREVfTk9OSU5URVJMQUNFRCwgMCwKLQl9LAotCS8qICMxOTogMTI4MHg3MjBwQDUwSHogKi8KLQlbMTldID0gewotCQlOVUxMLCA1MCwgMTI4MCwgNzIwLCAxMzQ2OCwgMjIwLCA0NDAsIDIwLCA1LCA0MCwgNSwKLQkJRkJfU1lOQ19IT1JfSElHSF9BQ1QgfCBGQl9TWU5DX1ZFUlRfSElHSF9BQ1QsCi0JCUZCX1ZNT0RFX05PTklOVEVSTEFDRUQsIDAsCi0JfSwKLQkvKiAjMjA6IDE5MjB4MTA4MGlANTBIeiAqLwotCVsyMF0gPSB7Ci0JCU5VTEwsIDUwLCAxOTIwLCAxMDgwLCAxMzQ4MCwgMTQ4LCA1MjgsIDE1LCA1LCA1MjgsIDUsCi0JCUZCX1NZTkNfSE9SX0hJR0hfQUNUIHwgRkJfU1lOQ19WRVJUX0hJR0hfQUNULAotCQlGQl9WTU9ERV9JTlRFUkxBQ0VELCAwLAotCX0sCi0JLyogIzMyOiAxOTIweDEwODBwQDIzLjk4LzI0SHogKi8KLQlbMzJdID0gewotCQlOVUxMLCAyNCwgMTkyMCwgMTA4MCwgMTM0NjgsIDE0OCwgNjM4LCAzNiwgNCwgNDQsIDUsCi0JCUZCX1NZTkNfSE9SX0hJR0hfQUNUIHwgRkJfU1lOQ19WRVJUX0hJR0hfQUNULAotCQlGQl9WTU9ERV9OT05JTlRFUkxBQ0VELCAwLAotCX0sCi0JLyogIzM1OiAoMjg4MCl4NDgwcDR4QDU5Ljk0LzYwSHogKi8KLQlbMzVdID0gewotCQlOVUxMLCA2MCwgMjg4MCwgNDgwLCA5MjUwLCAyNDAsIDY0LCAzMCwgOSwgMjQ4LCA2LCAwLAotCQlGQl9WTU9ERV9OT05JTlRFUkxBQ0VELCAwLAotCX0sCi19OwotCiBjb25zdCBzdHJ1Y3QgZmJfdmlkZW9tb2RlIHZlc2FfbW9kZXNbXSA9IHsKIAkvKiAwIDY0MHgzNTAtODUgVkVTQSAqLwogCXsgTlVMTCwgODUsIDY0MCwgMzUwLCAzMTc0NiwgIDk2LCAzMiwgNjAsIDMyLCA2NCwgMywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZWZpZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZWZpZmIuYwppbmRleCAwNGEyMjY2Li41MWQ5N2VjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2VmaWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9lZmlmYi5jCkBAIC0xMjIsMjggKzEyMiwxMyBAQCBzdGF0aWMgdm9pZCBlZmlmYl9jb3B5X2JtcCh1OCAqc3JjLCB1MzIgKmRzdCwgaW50IHdpZHRoLCBzdHJ1Y3Qgc2NyZWVuX2luZm8gKnNpKQogICovCiBzdGF0aWMgYm9vbCBlZmlmYl9iZ3J0X3Nhbml0eV9jaGVjayhzdHJ1Y3Qgc2NyZWVuX2luZm8gKnNpLCB1MzIgYm1wX3dpZHRoKQogewotCXN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdF9yZXNvbHV0aW9uc1tdWzJdID0gewotCQl7ICA4MDAsICA2MDAgfSwKLQkJeyAxMDI0LCAgNzY4IH0sCi0JCXsgMTI4MCwgMTAyNCB9LAotCX07Ci0JdTMyIGksIHJpZ2h0X21hcmdpbjsKKwkvKgorCSAqIEFsbCB4ODYgZmlybXdhcmVzIGhvcml6b250YWxseSBjZW50ZXIgdGhlIGltYWdlICh0aGUgeW9mZnNldAorCSAqIGNhbGN1bGF0aW9ucyBkaWZmZXIgYmV0d2VlbiBib2FyZHMsIGJ1dCB4b2Zmc2V0IGlzIHByZWRpY3RhYmxlKS4KKwkgKi8KKwl1MzIgZXhwZWN0ZWRfeG9mZnNldCA9IChzaS0+bGZiX3dpZHRoIC0gYm1wX3dpZHRoKSAvIDI7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkZWZhdWx0X3Jlc29sdXRpb25zKTsgaSsrKSB7Ci0JCWlmIChkZWZhdWx0X3Jlc29sdXRpb25zW2ldWzBdID09IHNpLT5sZmJfd2lkdGggJiYKLQkJICAgIGRlZmF1bHRfcmVzb2x1dGlvbnNbaV1bMV0gPT0gc2ktPmxmYl9oZWlnaHQpCi0JCQlicmVhazsKLQl9Ci0JLyogSWYgbm90IGEgZGVmYXVsdCByZXNvbHV0aW9uIHVzZWQgZm9yIHRleHRtb2RlLCB0aGlzIHNob3VsZCBiZSBmaW5lICovCi0JaWYgKGkgPj0gQVJSQVlfU0laRShkZWZhdWx0X3Jlc29sdXRpb25zKSkKLQkJcmV0dXJuIHRydWU7Ci0KLQkvKiBJZiB0aGUgcmlnaHQgbWFyZ2luIGlzIDUgdGltZXMgc21hbGxlciB0aGVuIHRoZSBsZWZ0IG9uZSwgcmVqZWN0ICovCi0JcmlnaHRfbWFyZ2luID0gc2ktPmxmYl93aWR0aCAtIChiZ3J0X3RhYi5pbWFnZV9vZmZzZXRfeCArIGJtcF93aWR0aCk7Ci0JaWYgKHJpZ2h0X21hcmdpbiA8IChiZ3J0X3RhYi5pbWFnZV9vZmZzZXRfeCAvIDUpKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gYmdydF90YWIuaW1hZ2Vfb2Zmc2V0X3ggPT0gZXhwZWN0ZWRfeG9mZnNldDsKIH0KICNlbHNlCiBzdGF0aWMgYm9vbCBlZmlmYl9iZ3J0X3Nhbml0eV9jaGVjayhzdHJ1Y3Qgc2NyZWVuX2luZm8gKnNpLCB1MzIgYm1wX3dpZHRoKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9qejQ3NDBfZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvano0NzQwX2ZiLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiNmZhMjUuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9qejQ3NDBfZmIuYworKysgL2Rldi9udWxsCkBAIC0xLDY5MCArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Ci0gKglKWjQ3NDAgU29DIExDRCBmcmFtZWJ1ZmZlciBkcml2ZXIKLSAqLwotCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9waW5jdHJsL2NvbnN1bWVyLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotCi0jaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZiLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgotCi0jaW5jbHVkZSA8YXNtL21hY2gtano0NzQwL2p6NDc0MF9mYi5oPgotCi0jZGVmaW5lIEpaX1JFR19MQ0RfQ0ZHCQkweDAwCi0jZGVmaW5lIEpaX1JFR19MQ0RfVlNZTkMJMHgwNAotI2RlZmluZSBKWl9SRUdfTENEX0hTWU5DCTB4MDgKLSNkZWZpbmUgSlpfUkVHX0xDRF9WQVQJCTB4MEMKLSNkZWZpbmUgSlpfUkVHX0xDRF9EQUgJCTB4MTAKLSNkZWZpbmUgSlpfUkVHX0xDRF9EQVYJCTB4MTQKLSNkZWZpbmUgSlpfUkVHX0xDRF9QUwkJMHgxOAotI2RlZmluZSBKWl9SRUdfTENEX0NMUwkJMHgxQwotI2RlZmluZSBKWl9SRUdfTENEX1NQTAkJMHgyMAotI2RlZmluZSBKWl9SRUdfTENEX1JFVgkJMHgyNAotI2RlZmluZSBKWl9SRUdfTENEX0NUUkwJCTB4MzAKLSNkZWZpbmUgSlpfUkVHX0xDRF9TVEFURQkweDM0Ci0jZGVmaW5lIEpaX1JFR19MQ0RfSUlECQkweDM4Ci0jZGVmaW5lIEpaX1JFR19MQ0RfREEwCQkweDQwCi0jZGVmaW5lIEpaX1JFR19MQ0RfU0EwCQkweDQ0Ci0jZGVmaW5lIEpaX1JFR19MQ0RfRklEMAkJMHg0OAotI2RlZmluZSBKWl9SRUdfTENEX0NNRDAJCTB4NEMKLSNkZWZpbmUgSlpfUkVHX0xDRF9EQTEJCTB4NTAKLSNkZWZpbmUgSlpfUkVHX0xDRF9TQTEJCTB4NTQKLSNkZWZpbmUgSlpfUkVHX0xDRF9GSUQxCQkweDU4Ci0jZGVmaW5lIEpaX1JFR19MQ0RfQ01EMQkJMHg1QwotCi0jZGVmaW5lIEpaX0xDRF9DRkdfU0xDRAkJCUJJVCgzMSkKLSNkZWZpbmUgSlpfTENEX0NGR19QU19ESVNBQkxFCQlCSVQoMjMpCi0jZGVmaW5lIEpaX0xDRF9DRkdfQ0xTX0RJU0FCTEUJCUJJVCgyMikKLSNkZWZpbmUgSlpfTENEX0NGR19TUExfRElTQUJMRQkJQklUKDIxKQotI2RlZmluZSBKWl9MQ0RfQ0ZHX1JFVl9ESVNBQkxFCQlCSVQoMjApCi0jZGVmaW5lIEpaX0xDRF9DRkdfSFNZTkNNCQlCSVQoMTkpCi0jZGVmaW5lIEpaX0xDRF9DRkdfUENMS00JCUJJVCgxOCkKLSNkZWZpbmUgSlpfTENEX0NGR19JTlYJCQlCSVQoMTcpCi0jZGVmaW5lIEpaX0xDRF9DRkdfU1lOQ19ESVIJCUJJVCgxNikKLSNkZWZpbmUgSlpfTENEX0NGR19QU19QT0xBUklUWQkJQklUKDE1KQotI2RlZmluZSBKWl9MQ0RfQ0ZHX0NMU19QT0xBUklUWQkJQklUKDE0KQotI2RlZmluZSBKWl9MQ0RfQ0ZHX1NQTF9QT0xBUklUWQkJQklUKDEzKQotI2RlZmluZSBKWl9MQ0RfQ0ZHX1JFVl9QT0xBUklUWQkJQklUKDEyKQotI2RlZmluZSBKWl9MQ0RfQ0ZHX0hTWU5DX0FDVElWRV9MT1cJQklUKDExKQotI2RlZmluZSBKWl9MQ0RfQ0ZHX1BDTEtfRkFMTElOR19FREdFCUJJVCgxMCkKLSNkZWZpbmUgSlpfTENEX0NGR19ERV9BQ1RJVkVfTE9XCUJJVCg5KQotI2RlZmluZSBKWl9MQ0RfQ0ZHX1ZTWU5DX0FDVElWRV9MT1cJQklUKDgpCi0jZGVmaW5lIEpaX0xDRF9DRkdfMThfQklUCQlCSVQoNykKLSNkZWZpbmUgSlpfTENEX0NGR19QRFcJCQkoQklUKDUpIHwgQklUKDQpKQotI2RlZmluZSBKWl9MQ0RfQ0ZHX01PREVfTUFTSyAweGYKLQotI2RlZmluZSBKWl9MQ0RfQ1RSTF9CVVJTVF80CQkoMHgwIDw8IDI4KQotI2RlZmluZSBKWl9MQ0RfQ1RSTF9CVVJTVF84CQkoMHgxIDw8IDI4KQotI2RlZmluZSBKWl9MQ0RfQ1RSTF9CVVJTVF8xNgkJKDB4MiA8PCAyOCkKLSNkZWZpbmUgSlpfTENEX0NUUkxfUkdCNTU1CQlCSVQoMjcpCi0jZGVmaW5lIEpaX0xDRF9DVFJMX09GVVAJCUJJVCgyNikKLSNkZWZpbmUgSlpfTENEX0NUUkxfRlJDX0dSQVlTQ0FMRV8xNgkoMHgwIDw8IDI0KQotI2RlZmluZSBKWl9MQ0RfQ1RSTF9GUkNfR1JBWVNDQUxFXzQJKDB4MSA8PCAyNCkKLSNkZWZpbmUgSlpfTENEX0NUUkxfRlJDX0dSQVlTQ0FMRV8yCSgweDIgPDwgMjQpCi0jZGVmaW5lIEpaX0xDRF9DVFJMX1BERF9NQVNLCQkoMHhmZiA8PCAxNikKLSNkZWZpbmUgSlpfTENEX0NUUkxfRU9GX0lSUQkJQklUKDEzKQotI2RlZmluZSBKWl9MQ0RfQ1RSTF9TT0ZfSVJRCQlCSVQoMTIpCi0jZGVmaW5lIEpaX0xDRF9DVFJMX09GVV9JUlEJCUJJVCgxMSkKLSNkZWZpbmUgSlpfTENEX0NUUkxfSUZVMF9JUlEJCUJJVCgxMCkKLSNkZWZpbmUgSlpfTENEX0NUUkxfSUZVMV9JUlEJCUJJVCg5KQotI2RlZmluZSBKWl9MQ0RfQ1RSTF9ERF9JUlEJCUJJVCg4KQotI2RlZmluZSBKWl9MQ0RfQ1RSTF9RRERfSVJRCQlCSVQoNykKLSNkZWZpbmUgSlpfTENEX0NUUkxfUkVWRVJTRV9FTkRJQU4JQklUKDYpCi0jZGVmaW5lIEpaX0xDRF9DVFJMX0xTQl9GSVNSVAkJQklUKDUpCi0jZGVmaW5lIEpaX0xDRF9DVFJMX0RJU0FCTEUJCUJJVCg0KQotI2RlZmluZSBKWl9MQ0RfQ1RSTF9FTkFCTEUJCUJJVCgzKQotI2RlZmluZSBKWl9MQ0RfQ1RSTF9CUFBfMQkJMHgwCi0jZGVmaW5lIEpaX0xDRF9DVFJMX0JQUF8yCQkweDEKLSNkZWZpbmUgSlpfTENEX0NUUkxfQlBQXzQJCTB4MgotI2RlZmluZSBKWl9MQ0RfQ1RSTF9CUFBfOAkJMHgzCi0jZGVmaW5lIEpaX0xDRF9DVFJMX0JQUF8xNV8xNgkJMHg0Ci0jZGVmaW5lIEpaX0xDRF9DVFJMX0JQUF8xOF8yNAkJMHg1Ci0KLSNkZWZpbmUgSlpfTENEX0NNRF9TT0ZfSVJRIEJJVCgzMSkKLSNkZWZpbmUgSlpfTENEX0NNRF9FT0ZfSVJRIEJJVCgzMCkKLSNkZWZpbmUgSlpfTENEX0NNRF9FTkFCTEVfUEFMIEJJVCgyOCkKLQotI2RlZmluZSBKWl9MQ0RfU1lOQ19NQVNLIDB4M2ZmCi0KLSNkZWZpbmUgSlpfTENEX1NUQVRFX0RJU0FCTEVEIEJJVCgwKQotCi1zdHJ1Y3QganpmYl9mcmFtZWRlc2MgewotCXVpbnQzMl90IG5leHQ7Ci0JdWludDMyX3QgYWRkcjsKLQl1aW50MzJfdCBpZDsKLQl1aW50MzJfdCBjbWQ7Ci19IF9fcGFja2VkOwotCi1zdHJ1Y3QganpmYiB7Ci0Jc3RydWN0IGZiX2luZm8gKmZiOwotCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7Ci0Jdm9pZCBfX2lvbWVtICpiYXNlOwotCXN0cnVjdCByZXNvdXJjZSAqbWVtOwotCXN0cnVjdCBqejQ3NDBfZmJfcGxhdGZvcm1fZGF0YSAqcGRhdGE7Ci0KLQlzaXplX3QgdmlkbWVtX3NpemU7Ci0Jdm9pZCAqdmlkbWVtOwotCWRtYV9hZGRyX3QgdmlkbWVtX3BoeXM7Ci0Jc3RydWN0IGp6ZmJfZnJhbWVkZXNjICpmcmFtZWRlc2M7Ci0JZG1hX2FkZHJfdCBmcmFtZWRlc2NfcGh5czsKLQotCXN0cnVjdCBjbGsgKmxkY2xrOwotCXN0cnVjdCBjbGsgKmxwY2xrOwotCi0JdW5zaWduZWQgaXNfZW5hYmxlZDoxOwotCXN0cnVjdCBtdXRleCBsb2NrOwotCi0JdWludDMyX3QgcHNldWRvX3BhbGV0dGVbMTZdOwotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9maXhfc2NyZWVuaW5mbyBqemZiX2ZpeCA9IHsKLQkuaWQJCT0gIkpaNDc0MCBGQiIsCi0JLnR5cGUJCT0gRkJfVFlQRV9QQUNLRURfUElYRUxTLAotCS52aXN1YWwJCT0gRkJfVklTVUFMX1RSVUVDT0xPUiwKLQkueHBhbnN0ZXAJPSAwLAotCS55cGFuc3RlcAk9IDAsCi0JLnl3cmFwc3RlcAk9IDAsCi0JLmFjY2VsCQk9IEZCX0FDQ0VMX05PTkUsCi19OwotCi0vKiBCYXNlZCBvbiBDTlZUX1RPSFcgbWFjcm8gZnJvbSBza2VsZXRvbmZiLmMgKi8KLXN0YXRpYyBpbmxpbmUgdWludDMyX3QganpmYl9jb252ZXJ0X2NvbG9yX3RvX2h3KHVuc2lnbmVkIHZhbCwKLQlzdHJ1Y3QgZmJfYml0ZmllbGQgKmJmKQotewotCXJldHVybiAoKCh2YWwgPDwgYmYtPmxlbmd0aCkgKyAweDdGRkYgLSB2YWwpID4+IDE2KSA8PCBiZi0+b2Zmc2V0OwotfQotCi1zdGF0aWMgaW50IGp6ZmJfc2V0Y29scmVnKHVuc2lnbmVkIHJlZ25vLCB1bnNpZ25lZCByZWQsIHVuc2lnbmVkIGdyZWVuLAotCQkJdW5zaWduZWQgYmx1ZSwgdW5zaWduZWQgdHJhbnNwLCBzdHJ1Y3QgZmJfaW5mbyAqZmIpCi17Ci0JdWludDMyX3QgY29sb3I7Ci0KLQlpZiAocmVnbm8gPj0gMTYpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JY29sb3IgPSBqemZiX2NvbnZlcnRfY29sb3JfdG9faHcocmVkLCAmZmItPnZhci5yZWQpOwotCWNvbG9yIHw9IGp6ZmJfY29udmVydF9jb2xvcl90b19odyhncmVlbiwgJmZiLT52YXIuZ3JlZW4pOwotCWNvbG9yIHw9IGp6ZmJfY29udmVydF9jb2xvcl90b19odyhibHVlLCAmZmItPnZhci5ibHVlKTsKLQljb2xvciB8PSBqemZiX2NvbnZlcnRfY29sb3JfdG9faHcodHJhbnNwLCAmZmItPnZhci50cmFuc3ApOwotCi0JKCh1aW50MzJfdCAqKShmYi0+cHNldWRvX3BhbGV0dGUpKVtyZWdub10gPSBjb2xvcjsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGp6ZmJfZ2V0X2NvbnRyb2xsZXJfYnBwKHN0cnVjdCBqemZiICpqemZiKQotewotCXN3aXRjaCAoanpmYi0+cGRhdGEtPmJwcCkgewotCWNhc2UgMTg6Ci0JY2FzZSAyNDoKLQkJcmV0dXJuIDMyOwotCWNhc2UgMTU6Ci0JCXJldHVybiAxNjsKLQlkZWZhdWx0OgotCQlyZXR1cm4ganpmYi0+cGRhdGEtPmJwcDsKLQl9Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgZmJfdmlkZW9tb2RlICpqemZiX2dldF9tb2RlKHN0cnVjdCBqemZiICpqemZiLAotCXN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyKQotewotCXNpemVfdCBpOwotCXN0cnVjdCBmYl92aWRlb21vZGUgKm1vZGUgPSBqemZiLT5wZGF0YS0+bW9kZXM7Ci0KLQlmb3IgKGkgPSAwOyBpIDwganpmYi0+cGRhdGEtPm51bV9tb2RlczsgKytpLCArK21vZGUpIHsKLQkJaWYgKG1vZGUtPnhyZXMgPT0gdmFyLT54cmVzICYmIG1vZGUtPnlyZXMgPT0gdmFyLT55cmVzKQotCQkJcmV0dXJuIG1vZGU7Ci0JfQotCi0JcmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXRpYyBpbnQganpmYl9jaGVja192YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICpmYikKLXsKLQlzdHJ1Y3QganpmYiAqanpmYiA9IGZiLT5wYXI7Ci0Jc3RydWN0IGZiX3ZpZGVvbW9kZSAqbW9kZTsKLQotCWlmICh2YXItPmJpdHNfcGVyX3BpeGVsICE9IGp6ZmJfZ2V0X2NvbnRyb2xsZXJfYnBwKGp6ZmIpICYmCi0JCXZhci0+Yml0c19wZXJfcGl4ZWwgIT0ganpmYi0+cGRhdGEtPmJwcCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQltb2RlID0ganpmYl9nZXRfbW9kZShqemZiLCB2YXIpOwotCWlmIChtb2RlID09IE5VTEwpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZmJfdmlkZW9tb2RlX3RvX3Zhcih2YXIsIG1vZGUpOwotCi0Jc3dpdGNoIChqemZiLT5wZGF0YS0+YnBwKSB7Ci0JY2FzZSA4OgotCQlicmVhazsKLQljYXNlIDE1OgotCQl2YXItPnJlZC5vZmZzZXQgPSAxMDsKLQkJdmFyLT5yZWQubGVuZ3RoID0gNTsKLQkJdmFyLT5ncmVlbi5vZmZzZXQgPSA2OwotCQl2YXItPmdyZWVuLmxlbmd0aCA9IDU7Ci0JCXZhci0+Ymx1ZS5vZmZzZXQgPSAwOwotCQl2YXItPmJsdWUubGVuZ3RoID0gNTsKLQkJYnJlYWs7Ci0JY2FzZSAxNjoKLQkJdmFyLT5yZWQub2Zmc2V0ID0gMTE7Ci0JCXZhci0+cmVkLmxlbmd0aCA9IDU7Ci0JCXZhci0+Z3JlZW4ub2Zmc2V0ID0gNTsKLQkJdmFyLT5ncmVlbi5sZW5ndGggPSA2OwotCQl2YXItPmJsdWUub2Zmc2V0ID0gMDsKLQkJdmFyLT5ibHVlLmxlbmd0aCA9IDU7Ci0JCWJyZWFrOwotCWNhc2UgMTg6Ci0JCXZhci0+cmVkLm9mZnNldCA9IDE2OwotCQl2YXItPnJlZC5sZW5ndGggPSA2OwotCQl2YXItPmdyZWVuLm9mZnNldCA9IDg7Ci0JCXZhci0+Z3JlZW4ubGVuZ3RoID0gNjsKLQkJdmFyLT5ibHVlLm9mZnNldCA9IDA7Ci0JCXZhci0+Ymx1ZS5sZW5ndGggPSA2OwotCQl2YXItPmJpdHNfcGVyX3BpeGVsID0gMzI7Ci0JCWJyZWFrOwotCWNhc2UgMzI6Ci0JY2FzZSAyNDoKLQkJdmFyLT50cmFuc3Aub2Zmc2V0ID0gMjQ7Ci0JCXZhci0+dHJhbnNwLmxlbmd0aCA9IDg7Ci0JCXZhci0+cmVkLm9mZnNldCA9IDE2OwotCQl2YXItPnJlZC5sZW5ndGggPSA4OwotCQl2YXItPmdyZWVuLm9mZnNldCA9IDg7Ci0JCXZhci0+Z3JlZW4ubGVuZ3RoID0gODsKLQkJdmFyLT5ibHVlLm9mZnNldCA9IDA7Ci0JCXZhci0+Ymx1ZS5sZW5ndGggPSA4OwotCQl2YXItPmJpdHNfcGVyX3BpeGVsID0gMzI7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWJyZWFrOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGp6ZmJfc2V0X3BhcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKLXsKLQlzdHJ1Y3QganpmYiAqanpmYiA9IGluZm8tPnBhcjsKLQlzdHJ1Y3Qgano0NzQwX2ZiX3BsYXRmb3JtX2RhdGEgKnBkYXRhID0ganpmYi0+cGRhdGE7Ci0Jc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIgPSAmaW5mby0+dmFyOwotCXN0cnVjdCBmYl92aWRlb21vZGUgKm1vZGU7Ci0JdWludDE2X3QgaGRzLCB2ZHM7Ci0JdWludDE2X3QgaGRlLCB2ZGU7Ci0JdWludDE2X3QgaHQsIHZ0OwotCXVpbnQzMl90IGN0cmw7Ci0JdWludDMyX3QgY2ZnOwotCXVuc2lnbmVkIGxvbmcgcmF0ZTsKLQotCW1vZGUgPSBqemZiX2dldF9tb2RlKGp6ZmIsIHZhcik7Ci0JaWYgKG1vZGUgPT0gTlVMTCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlpZiAobW9kZSA9PSBpbmZvLT5tb2RlKQotCQlyZXR1cm4gMDsKLQotCWluZm8tPm1vZGUgPSBtb2RlOwotCi0JaGRzID0gbW9kZS0+aHN5bmNfbGVuICsgbW9kZS0+bGVmdF9tYXJnaW47Ci0JaGRlID0gaGRzICsgbW9kZS0+eHJlczsKLQlodCA9IGhkZSArIG1vZGUtPnJpZ2h0X21hcmdpbjsKLQotCXZkcyA9IG1vZGUtPnZzeW5jX2xlbiArIG1vZGUtPnVwcGVyX21hcmdpbjsKLQl2ZGUgPSB2ZHMgKyBtb2RlLT55cmVzOwotCXZ0ID0gdmRlICsgbW9kZS0+bG93ZXJfbWFyZ2luOwotCi0JY3RybCA9IEpaX0xDRF9DVFJMX09GVVAgfCBKWl9MQ0RfQ1RSTF9CVVJTVF8xNjsKLQotCXN3aXRjaCAocGRhdGEtPmJwcCkgewotCWNhc2UgMToKLQkJY3RybCB8PSBKWl9MQ0RfQ1RSTF9CUFBfMTsKLQkJYnJlYWs7Ci0JY2FzZSAyOgotCQljdHJsIHw9IEpaX0xDRF9DVFJMX0JQUF8yOwotCQlicmVhazsKLQljYXNlIDQ6Ci0JCWN0cmwgfD0gSlpfTENEX0NUUkxfQlBQXzQ7Ci0JCWJyZWFrOwotCWNhc2UgODoKLQkJY3RybCB8PSBKWl9MQ0RfQ1RSTF9CUFBfODsKLQlicmVhazsKLQljYXNlIDE1OgotCQljdHJsIHw9IEpaX0xDRF9DVFJMX1JHQjU1NTsgLyogRmFsbHRyb3VnaCAqLwotCWNhc2UgMTY6Ci0JCWN0cmwgfD0gSlpfTENEX0NUUkxfQlBQXzE1XzE2OwotCQlicmVhazsKLQljYXNlIDE4OgotCWNhc2UgMjQ6Ci0JY2FzZSAzMjoKLQkJY3RybCB8PSBKWl9MQ0RfQ1RSTF9CUFBfMThfMjQ7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWJyZWFrOwotCX0KLQotCWNmZyA9IHBkYXRhLT5sY2RfdHlwZSAmIDB4ZjsKLQotCWlmICghKG1vZGUtPnN5bmMgJiBGQl9TWU5DX0hPUl9ISUdIX0FDVCkpCi0JCWNmZyB8PSBKWl9MQ0RfQ0ZHX0hTWU5DX0FDVElWRV9MT1c7Ci0KLQlpZiAoIShtb2RlLT5zeW5jICYgRkJfU1lOQ19WRVJUX0hJR0hfQUNUKSkKLQkJY2ZnIHw9IEpaX0xDRF9DRkdfVlNZTkNfQUNUSVZFX0xPVzsKLQotCWlmIChwZGF0YS0+cGl4Y2xrX2ZhbGxpbmdfZWRnZSkKLQkJY2ZnIHw9IEpaX0xDRF9DRkdfUENMS19GQUxMSU5HX0VER0U7Ci0KLQlpZiAocGRhdGEtPmRhdGVfZW5hYmxlX2FjdGl2ZV9sb3cpCi0JCWNmZyB8PSBKWl9MQ0RfQ0ZHX0RFX0FDVElWRV9MT1c7Ci0KLQlpZiAocGRhdGEtPmxjZF90eXBlID09IEpaX0xDRF9UWVBFX0dFTkVSSUNfMThfQklUKQotCQljZmcgfD0gSlpfTENEX0NGR18xOF9CSVQ7Ci0KLQlpZiAobW9kZS0+cGl4Y2xvY2spIHsKLQkJcmF0ZSA9IFBJQ09TMktIWihtb2RlLT5waXhjbG9jaykgKiAxMDAwOwotCQltb2RlLT5yZWZyZXNoID0gcmF0ZSAvIHZ0IC8gaHQ7Ci0JfSBlbHNlIHsKLQkJaWYgKHBkYXRhLT5sY2RfdHlwZSA9PSBKWl9MQ0RfVFlQRV84QklUX1NFUklBTCkKLQkJCXJhdGUgPSBtb2RlLT5yZWZyZXNoICogKHZ0ICsgMiAqIG1vZGUtPnhyZXMpICogaHQ7Ci0JCWVsc2UKLQkJCXJhdGUgPSBtb2RlLT5yZWZyZXNoICogdnQgKiBodDsKLQotCQltb2RlLT5waXhjbG9jayA9IEtIWjJQSUNPUyhyYXRlIC8gMTAwMCk7Ci0JfQotCi0JbXV0ZXhfbG9jaygmanpmYi0+bG9jayk7Ci0JaWYgKCFqemZiLT5pc19lbmFibGVkKQotCQljbGtfZW5hYmxlKGp6ZmItPmxkY2xrKTsKLQllbHNlCi0JCWN0cmwgfD0gSlpfTENEX0NUUkxfRU5BQkxFOwotCi0Jc3dpdGNoIChwZGF0YS0+bGNkX3R5cGUpIHsKLQljYXNlIEpaX0xDRF9UWVBFX1NQRUNJQUxfVEZUXzE6Ci0JY2FzZSBKWl9MQ0RfVFlQRV9TUEVDSUFMX1RGVF8yOgotCWNhc2UgSlpfTENEX1RZUEVfU1BFQ0lBTF9URlRfMzoKLQkJd3JpdGVsKHBkYXRhLT5zcGVjaWFsX3RmdF9jb25maWcuc3BsLCBqemZiLT5iYXNlICsgSlpfUkVHX0xDRF9TUEwpOwotCQl3cml0ZWwocGRhdGEtPnNwZWNpYWxfdGZ0X2NvbmZpZy5jbHMsIGp6ZmItPmJhc2UgKyBKWl9SRUdfTENEX0NMUyk7Ci0JCXdyaXRlbChwZGF0YS0+c3BlY2lhbF90ZnRfY29uZmlnLnBzLCBqemZiLT5iYXNlICsgSlpfUkVHX0xDRF9QUyk7Ci0JCXdyaXRlbChwZGF0YS0+c3BlY2lhbF90ZnRfY29uZmlnLnBzLCBqemZiLT5iYXNlICsgSlpfUkVHX0xDRF9SRVYpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQljZmcgfD0gSlpfTENEX0NGR19QU19ESVNBQkxFOwotCQljZmcgfD0gSlpfTENEX0NGR19DTFNfRElTQUJMRTsKLQkJY2ZnIHw9IEpaX0xDRF9DRkdfU1BMX0RJU0FCTEU7Ci0JCWNmZyB8PSBKWl9MQ0RfQ0ZHX1JFVl9ESVNBQkxFOwotCQlicmVhazsKLQl9Ci0KLQl3cml0ZWwobW9kZS0+aHN5bmNfbGVuLCBqemZiLT5iYXNlICsgSlpfUkVHX0xDRF9IU1lOQyk7Ci0Jd3JpdGVsKG1vZGUtPnZzeW5jX2xlbiwganpmYi0+YmFzZSArIEpaX1JFR19MQ0RfVlNZTkMpOwotCi0Jd3JpdGVsKChodCA8PCAxNikgfCB2dCwganpmYi0+YmFzZSArIEpaX1JFR19MQ0RfVkFUKTsKLQotCXdyaXRlbCgoaGRzIDw8IDE2KSB8IGhkZSwganpmYi0+YmFzZSArIEpaX1JFR19MQ0RfREFIKTsKLQl3cml0ZWwoKHZkcyA8PCAxNikgfCB2ZGUsIGp6ZmItPmJhc2UgKyBKWl9SRUdfTENEX0RBVik7Ci0KLQl3cml0ZWwoY2ZnLCBqemZiLT5iYXNlICsgSlpfUkVHX0xDRF9DRkcpOwotCi0Jd3JpdGVsKGN0cmwsIGp6ZmItPmJhc2UgKyBKWl9SRUdfTENEX0NUUkwpOwotCi0JaWYgKCFqemZiLT5pc19lbmFibGVkKQotCQljbGtfZGlzYWJsZV91bnByZXBhcmUoanpmYi0+bGRjbGspOwotCi0JbXV0ZXhfdW5sb2NrKCZqemZiLT5sb2NrKTsKLQotCWNsa19zZXRfcmF0ZShqemZiLT5scGNsaywgcmF0ZSk7Ci0JY2xrX3NldF9yYXRlKGp6ZmItPmxkY2xrLCByYXRlICogMyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQganpmYl9lbmFibGUoc3RydWN0IGp6ZmIgKmp6ZmIpCi17Ci0JdWludDMyX3QgY3RybDsKLQotCWNsa19wcmVwYXJlX2VuYWJsZShqemZiLT5sZGNsayk7Ci0KLQlwaW5jdHJsX3BtX3NlbGVjdF9kZWZhdWx0X3N0YXRlKCZqemZiLT5wZGV2LT5kZXYpOwotCi0Jd3JpdGVsKDAsIGp6ZmItPmJhc2UgKyBKWl9SRUdfTENEX1NUQVRFKTsKLQotCXdyaXRlbChqemZiLT5mcmFtZWRlc2MtPm5leHQsIGp6ZmItPmJhc2UgKyBKWl9SRUdfTENEX0RBMCk7Ci0KLQljdHJsID0gcmVhZGwoanpmYi0+YmFzZSArIEpaX1JFR19MQ0RfQ1RSTCk7Ci0JY3RybCB8PSBKWl9MQ0RfQ1RSTF9FTkFCTEU7Ci0JY3RybCAmPSB+SlpfTENEX0NUUkxfRElTQUJMRTsKLQl3cml0ZWwoY3RybCwganpmYi0+YmFzZSArIEpaX1JFR19MQ0RfQ1RSTCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGp6ZmJfZGlzYWJsZShzdHJ1Y3QganpmYiAqanpmYikKLXsKLQl1aW50MzJfdCBjdHJsOwotCi0JY3RybCA9IHJlYWRsKGp6ZmItPmJhc2UgKyBKWl9SRUdfTENEX0NUUkwpOwotCWN0cmwgfD0gSlpfTENEX0NUUkxfRElTQUJMRTsKLQl3cml0ZWwoY3RybCwganpmYi0+YmFzZSArIEpaX1JFR19MQ0RfQ1RSTCk7Ci0JZG8gewotCQljdHJsID0gcmVhZGwoanpmYi0+YmFzZSArIEpaX1JFR19MQ0RfU1RBVEUpOwotCX0gd2hpbGUgKCEoY3RybCAmIEpaX0xDRF9TVEFURV9ESVNBQkxFRCkpOwotCi0JcGluY3RybF9wbV9zZWxlY3Rfc2xlZXBfc3RhdGUoJmp6ZmItPnBkZXYtPmRldik7Ci0KLQljbGtfZGlzYWJsZV91bnByZXBhcmUoanpmYi0+bGRjbGspOwotfQotCi1zdGF0aWMgaW50IGp6ZmJfYmxhbmsoaW50IGJsYW5rX21vZGUsIHN0cnVjdCBmYl9pbmZvICppbmZvKQotewotCXN0cnVjdCBqemZiICpqemZiID0gaW5mby0+cGFyOwotCi0Jc3dpdGNoIChibGFua19tb2RlKSB7Ci0JY2FzZSBGQl9CTEFOS19VTkJMQU5LOgotCQltdXRleF9sb2NrKCZqemZiLT5sb2NrKTsKLQkJaWYgKGp6ZmItPmlzX2VuYWJsZWQpIHsKLQkJCW11dGV4X3VubG9jaygmanpmYi0+bG9jayk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCi0JCWp6ZmJfZW5hYmxlKGp6ZmIpOwotCQlqemZiLT5pc19lbmFibGVkID0gMTsKLQotCQltdXRleF91bmxvY2soJmp6ZmItPmxvY2spOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQltdXRleF9sb2NrKCZqemZiLT5sb2NrKTsKLQkJaWYgKCFqemZiLT5pc19lbmFibGVkKSB7Ci0JCQltdXRleF91bmxvY2soJmp6ZmItPmxvY2spOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQotCQlqemZiX2Rpc2FibGUoanpmYik7Ci0JCWp6ZmItPmlzX2VuYWJsZWQgPSAwOwotCi0JCW11dGV4X3VubG9jaygmanpmYi0+bG9jayk7Ci0JCWJyZWFrOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGp6ZmJfYWxsb2NfZGV2bWVtKHN0cnVjdCBqemZiICpqemZiKQotewotCWludCBtYXhfdmlkZW9zaXplID0gMDsKLQlzdHJ1Y3QgZmJfdmlkZW9tb2RlICptb2RlID0ganpmYi0+cGRhdGEtPm1vZGVzOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGp6ZmItPnBkYXRhLT5udW1fbW9kZXM7ICsrbW9kZSwgKytpKSB7Ci0JCWlmIChtYXhfdmlkZW9zaXplIDwgbW9kZS0+eHJlcyAqIG1vZGUtPnlyZXMpCi0JCQltYXhfdmlkZW9zaXplID0gbW9kZS0+eHJlcyAqIG1vZGUtPnlyZXM7Ci0JfQotCi0JbWF4X3ZpZGVvc2l6ZSAqPSBqemZiX2dldF9jb250cm9sbGVyX2JwcChqemZiKSA+PiAzOwotCi0JanpmYi0+ZnJhbWVkZXNjID0gZG1hX2FsbG9jX2NvaGVyZW50KCZqemZiLT5wZGV2LT5kZXYsCi0JCQkJCXNpemVvZigqanpmYi0+ZnJhbWVkZXNjKSwKLQkJCQkJJmp6ZmItPmZyYW1lZGVzY19waHlzLCBHRlBfS0VSTkVMKTsKLQotCWlmICghanpmYi0+ZnJhbWVkZXNjKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWp6ZmItPnZpZG1lbV9zaXplID0gUEFHRV9BTElHTihtYXhfdmlkZW9zaXplKTsKLQlqemZiLT52aWRtZW0gPSBkbWFfYWxsb2NfY29oZXJlbnQoJmp6ZmItPnBkZXYtPmRldiwKLQkJCQkJanpmYi0+dmlkbWVtX3NpemUsCi0JCQkJCSZqemZiLT52aWRtZW1fcGh5cywgR0ZQX0tFUk5FTCk7Ci0KLQlpZiAoIWp6ZmItPnZpZG1lbSkKLQkJZ290byBlcnJfZnJlZV9mcmFtZWRlc2M7Ci0KLQlqemZiLT5mcmFtZWRlc2MtPm5leHQgPSBqemZiLT5mcmFtZWRlc2NfcGh5czsKLQlqemZiLT5mcmFtZWRlc2MtPmFkZHIgPSBqemZiLT52aWRtZW1fcGh5czsKLQlqemZiLT5mcmFtZWRlc2MtPmlkID0gMHhkZWFmYmVhZDsKLQlqemZiLT5mcmFtZWRlc2MtPmNtZCA9IDA7Ci0JanpmYi0+ZnJhbWVkZXNjLT5jbWQgfD0gbWF4X3ZpZGVvc2l6ZSAvIDQ7Ci0KLQlyZXR1cm4gMDsKLQotZXJyX2ZyZWVfZnJhbWVkZXNjOgotCWRtYV9mcmVlX2NvaGVyZW50KCZqemZiLT5wZGV2LT5kZXYsIHNpemVvZigqanpmYi0+ZnJhbWVkZXNjKSwKLQkJCQlqemZiLT5mcmFtZWRlc2MsIGp6ZmItPmZyYW1lZGVzY19waHlzKTsKLQlyZXR1cm4gLUVOT01FTTsKLX0KLQotc3RhdGljIHZvaWQganpmYl9mcmVlX2Rldm1lbShzdHJ1Y3QganpmYiAqanpmYikKLXsKLQlkbWFfZnJlZV9jb2hlcmVudCgmanpmYi0+cGRldi0+ZGV2LCBqemZiLT52aWRtZW1fc2l6ZSwKLQkJCQlqemZiLT52aWRtZW0sIGp6ZmItPnZpZG1lbV9waHlzKTsKLQlkbWFfZnJlZV9jb2hlcmVudCgmanpmYi0+cGRldi0+ZGV2LCBzaXplb2YoKmp6ZmItPmZyYW1lZGVzYyksCi0JCQkJanpmYi0+ZnJhbWVkZXNjLCBqemZiLT5mcmFtZWRlc2NfcGh5cyk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgIGZiX29wcyBqemZiX29wcyA9IHsKLQkub3duZXIgPSBUSElTX01PRFVMRSwKLQkuZmJfY2hlY2tfdmFyID0ganpmYl9jaGVja192YXIsCi0JLmZiX3NldF9wYXIgPSBqemZiX3NldF9wYXIsCi0JLmZiX2JsYW5rID0ganpmYl9ibGFuaywKLQkuZmJfZmlsbHJlY3QJPSBzeXNfZmlsbHJlY3QsCi0JLmZiX2NvcHlhcmVhCT0gc3lzX2NvcHlhcmVhLAotCS5mYl9pbWFnZWJsaXQJPSBzeXNfaW1hZ2VibGl0LAotCS5mYl9zZXRjb2xyZWcgPSBqemZiX3NldGNvbHJlZywKLX07Ci0KLXN0YXRpYyBpbnQganpmYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCWludCByZXQ7Ci0Jc3RydWN0IGp6ZmIgKmp6ZmI7Ci0Jc3RydWN0IGZiX2luZm8gKmZiOwotCXN0cnVjdCBqejQ3NDBfZmJfcGxhdGZvcm1fZGF0YSAqcGRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKLQlzdHJ1Y3QgcmVzb3VyY2UgKm1lbTsKLQotCWlmICghcGRhdGEpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiTWlzc2luZyBwbGF0Zm9ybSBkYXRhXG4iKTsKLQkJcmV0dXJuIC1FTlhJTzsKLQl9Ci0KLQlmYiA9IGZyYW1lYnVmZmVyX2FsbG9jKHNpemVvZihzdHJ1Y3QganpmYiksICZwZGV2LT5kZXYpOwotCWlmICghZmIpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZmItPmZib3BzID0gJmp6ZmJfb3BzOwotCWZiLT5mbGFncyA9IEZCSU5GT19ERUZBVUxUOwotCi0JanpmYiA9IGZiLT5wYXI7Ci0JanpmYi0+cGRldiA9IHBkZXY7Ci0JanpmYi0+cGRhdGEgPSBwZGF0YTsKLQotCWp6ZmItPmxkY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJsY2QiKTsKLQlpZiAoSVNfRVJSKGp6ZmItPmxkY2xrKSkgewotCQlyZXQgPSBQVFJfRVJSKGp6ZmItPmxkY2xrKTsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGdldCBsY2QgY2xvY2s6ICVkXG4iLCByZXQpOwotCQlnb3RvIGVycl9mcmFtZWJ1ZmZlcl9yZWxlYXNlOwotCX0KLQotCWp6ZmItPmxwY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJsY2RfcGNsayIpOwotCWlmIChJU19FUlIoanpmYi0+bHBjbGspKSB7Ci0JCXJldCA9IFBUUl9FUlIoanpmYi0+bHBjbGspOwotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IGxjZCBwaXhlbCBjbG9jazogJWRcbiIsIHJldCk7Ci0JCWdvdG8gZXJyX2ZyYW1lYnVmZmVyX3JlbGVhc2U7Ci0JfQotCi0JbWVtID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlqemZiLT5iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIG1lbSk7Ci0JaWYgKElTX0VSUihqemZiLT5iYXNlKSkgewotCQlyZXQgPSBQVFJfRVJSKGp6ZmItPmJhc2UpOwotCQlnb3RvIGVycl9mcmFtZWJ1ZmZlcl9yZWxlYXNlOwotCX0KLQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGp6ZmIpOwotCi0JbXV0ZXhfaW5pdCgmanpmYi0+bG9jayk7Ci0KLQlmYl92aWRlb21vZGVfdG9fbW9kZWxpc3QocGRhdGEtPm1vZGVzLCBwZGF0YS0+bnVtX21vZGVzLAotCQkJCSAmZmItPm1vZGVsaXN0KTsKLQlmYl92aWRlb21vZGVfdG9fdmFyKCZmYi0+dmFyLCBwZGF0YS0+bW9kZXMpOwotCWZiLT52YXIuYml0c19wZXJfcGl4ZWwgPSBwZGF0YS0+YnBwOwotCWp6ZmJfY2hlY2tfdmFyKCZmYi0+dmFyLCBmYik7Ci0KLQlyZXQgPSBqemZiX2FsbG9jX2Rldm1lbShqemZiKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSB2aWRlbyBtZW1vcnlcbiIpOwotCQlnb3RvIGVycl9mcmFtZWJ1ZmZlcl9yZWxlYXNlOwotCX0KLQotCWZiLT5maXggPSBqemZiX2ZpeDsKLQlmYi0+Zml4LmxpbmVfbGVuZ3RoID0gZmItPnZhci5iaXRzX3Blcl9waXhlbCAqIGZiLT52YXIueHJlcyAvIDg7Ci0JZmItPmZpeC5tbWlvX3N0YXJ0ID0gbWVtLT5zdGFydDsKLQlmYi0+Zml4Lm1taW9fbGVuID0gcmVzb3VyY2Vfc2l6ZShtZW0pOwotCWZiLT5maXguc21lbV9zdGFydCA9IGp6ZmItPnZpZG1lbV9waHlzOwotCWZiLT5maXguc21lbV9sZW4gPSAgZmItPmZpeC5saW5lX2xlbmd0aCAqIGZiLT52YXIueXJlczsKLQlmYi0+c2NyZWVuX2Jhc2UgPSBqemZiLT52aWRtZW07Ci0JZmItPnBzZXVkb19wYWxldHRlID0ganpmYi0+cHNldWRvX3BhbGV0dGU7Ci0KLQlmYl9hbGxvY19jbWFwKCZmYi0+Y21hcCwgMjU2LCAwKTsKLQotCWNsa19wcmVwYXJlX2VuYWJsZShqemZiLT5sZGNsayk7Ci0JanpmYi0+aXNfZW5hYmxlZCA9IDE7Ci0KLQl3cml0ZWwoanpmYi0+ZnJhbWVkZXNjLT5uZXh0LCBqemZiLT5iYXNlICsgSlpfUkVHX0xDRF9EQTApOwotCi0JZmItPm1vZGUgPSBOVUxMOwotCWp6ZmJfc2V0X3BhcihmYik7Ci0KLQlyZXQgPSByZWdpc3Rlcl9mcmFtZWJ1ZmZlcihmYik7Ci0JaWYgKHJldCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgZnJhbWVidWZmZXI6ICVkXG4iLCByZXQpOwotCQlnb3RvIGVycl9mcmVlX2Rldm1lbTsKLQl9Ci0KLQlqemZiLT5mYiA9IGZiOwotCi0JcmV0dXJuIDA7Ci0KLWVycl9mcmVlX2Rldm1lbToKLQlmYl9kZWFsbG9jX2NtYXAoJmZiLT5jbWFwKTsKLQlqemZiX2ZyZWVfZGV2bWVtKGp6ZmIpOwotZXJyX2ZyYW1lYnVmZmVyX3JlbGVhc2U6Ci0JZnJhbWVidWZmZXJfcmVsZWFzZShmYik7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBqemZiX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBqemZiICpqemZiID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Ci0KLQlqemZiX2JsYW5rKEZCX0JMQU5LX1BPV0VSRE9XTiwganpmYi0+ZmIpOwotCi0JZmJfZGVhbGxvY19jbWFwKCZqemZiLT5mYi0+Y21hcCk7Ci0JanpmYl9mcmVlX2Rldm1lbShqemZiKTsKLQotCWZyYW1lYnVmZmVyX3JlbGVhc2UoanpmYi0+ZmIpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBDT05GSUdfUE0KLQotc3RhdGljIGludCBqemZiX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQotewotCXN0cnVjdCBqemZiICpqemZiID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0KLQljb25zb2xlX2xvY2soKTsKLQlmYl9zZXRfc3VzcGVuZChqemZiLT5mYiwgMSk7Ci0JY29uc29sZV91bmxvY2soKTsKLQotCW11dGV4X2xvY2soJmp6ZmItPmxvY2spOwotCWlmIChqemZiLT5pc19lbmFibGVkKQotCQlqemZiX2Rpc2FibGUoanpmYik7Ci0JbXV0ZXhfdW5sb2NrKCZqemZiLT5sb2NrKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGp6ZmJfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QganpmYiAqanpmYiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCWNsa19wcmVwYXJlX2VuYWJsZShqemZiLT5sZGNsayk7Ci0KLQltdXRleF9sb2NrKCZqemZiLT5sb2NrKTsKLQlpZiAoanpmYi0+aXNfZW5hYmxlZCkKLQkJanpmYl9lbmFibGUoanpmYik7Ci0JbXV0ZXhfdW5sb2NrKCZqemZiLT5sb2NrKTsKLQotCWNvbnNvbGVfbG9jaygpOwotCWZiX3NldF9zdXNwZW5kKGp6ZmItPmZiLCAwKTsKLQljb25zb2xlX3VubG9jaygpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBqemZiX3BtX29wcyA9IHsKLQkuc3VzcGVuZAk9IGp6ZmJfc3VzcGVuZCwKLQkucmVzdW1lCQk9IGp6ZmJfcmVzdW1lLAotCS5wb3dlcm9mZgk9IGp6ZmJfc3VzcGVuZCwKLQkucmVzdG9yZQk9IGp6ZmJfcmVzdW1lLAotfTsKLQotI2RlZmluZSBKWkZCX1BNX09QUyAoJmp6ZmJfcG1fb3BzKQotCi0jZWxzZQotI2RlZmluZSBKWkZCX1BNX09QUyBOVUxMCi0jZW5kaWYKLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIganpmYl9kcml2ZXIgPSB7Ci0JLnByb2JlID0ganpmYl9wcm9iZSwKLQkucmVtb3ZlID0ganpmYl9yZW1vdmUsCi0JLmRyaXZlciA9IHsKLQkJLm5hbWUgPSAiano0NzQwLWZiIiwKLQkJLnBtID0gSlpGQl9QTV9PUFMsCi0JfSwKLX07Ci1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGp6ZmJfZHJpdmVyKTsKLQotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotTU9EVUxFX0FVVEhPUigiTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIkpaNDc0MCBTb0MgTENEIGZyYW1lYnVmZmVyIGRyaXZlciIpOwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpqejQ3NDAtZmIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvbW1wL2NvcmUuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvbW1wL2NvcmUuYwppbmRleCAwZmZjMWI3Li4xNTQxMjcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21tcC9jb3JlLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9tbXAvY29yZS5jCkBAIC0xNTMsMTMgKzE1MywxMSBAQCBFWFBPUlRfU1lNQk9MX0dQTChtbXBfZ2V0X3BhdGgpOwogc3RydWN0IG1tcF9wYXRoICptbXBfcmVnaXN0ZXJfcGF0aChzdHJ1Y3QgbW1wX3BhdGhfaW5mbyAqaW5mbykKIHsKIAlpbnQgaTsKLQlzaXplX3Qgc2l6ZTsKIAlzdHJ1Y3QgbW1wX3BhdGggKnBhdGggPSBOVUxMOwogCXN0cnVjdCBtbXBfcGFuZWwgKnBhbmVsOwogCi0Jc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbW1wX3BhdGgpCi0JCSsgc2l6ZW9mKHN0cnVjdCBtbXBfb3ZlcmxheSkgKiBpbmZvLT5vdmVybGF5X251bTsKLQlwYXRoID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKKwlwYXRoID0ga3phbGxvYyhzdHJ1Y3Rfc2l6ZShwYXRoLCBvdmVybGF5cywgaW5mby0+b3ZlcmxheV9udW0pLAorCQkgICAgICAgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwYXRoKQogCQlyZXR1cm4gTlVMTDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9tbXAvZmIvbW1wZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvbW1wL2ZiL21tcGZiLmMKaW5kZXggZTViNTZmMi4uNDdiYzdjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9tbXAvZmIvbW1wZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21tcC9mYi9tbXBmYi5jCkBAIC02MTIsNyArNjEyLDYgQEAgc3RhdGljIGludCBtbXBmYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGZhaWxlZF9kZXN0cm95X211dGV4OwogCX0KLQltZW1zZXQoZmJpLT5mYl9zdGFydCwgMCwgZmJpLT5mYl9zaXplKTsKIAlkZXZfaW5mbyhmYmktPmRldiwgImZiICVkayBhbGxvY2F0ZWRcbiIsIGZiaS0+ZmJfc2l6ZS8xMDI0KTsKIAogCS8qIGZiIHBvd2VyIG9uICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L252aWRpYS9udl9iYWNrbGlnaHQuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvbnZpZGlhL252X2JhY2tsaWdodC5jCmluZGV4IGU3MDVhNzguLjJjZTUzNTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvbnZpZGlhL252X2JhY2tsaWdodC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvbnZpZGlhL252X2JhY2tsaWdodC5jCkBAIC0xMjMsOCArMTIzLDYgQEAgdm9pZCBudmlkaWFfYmxfaW5pdChzdHJ1Y3QgbnZpZGlhX3BhciAqcGFyKQogCiAJcHJpbnRrKCJudmlkaWE6IEJhY2tsaWdodCBpbml0aWFsaXplZCAoJXMpXG4iLCBuYW1lKTsKIAotCXJldHVybjsKLQogZXJyb3I6CiAJcmV0dXJuOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9udmlkaWEvbnZfc2V0dXAuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvbnZpZGlhL252X3NldHVwLmMKaW5kZXggYjE3YWNkMi4uMmZhNjg2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9udmlkaWEvbnZfc2V0dXAuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L252aWRpYS9udl9zZXR1cC5jCkBAIC0xMTksMzQgKzExOSwxMCBAQCB1OCBOVlJlYWRNaXNjT3V0KHN0cnVjdCBudmlkaWFfcGFyICpwYXIpCiB7CiAJcmV0dXJuIChWR0FfUkQwOChwYXItPlBWSU8sIFZHQV9NSVNfUikpOwogfQotI2lmIDAKLXZvaWQgTlZFbmFibGVQYWxldHRlKHN0cnVjdCBudmlkaWFfcGFyICpwYXIpCi17Ci0Jdm9sYXRpbGUgdTggdG1wOwotCi0JdG1wID0gVkdBX1JEMDgocGFyLT5QQ0lPLCBwYXItPklPQmFzZSArIDB4MGEpOwotCVZHQV9XUjA4KHBhci0+UENJTywgVkdBX0FUVF9JVywgMHgwMCk7Ci0JcGFyLT5wYWxldHRlRW5hYmxlZCA9IDE7Ci19Ci12b2lkIE5WRGlzYWJsZVBhbGV0dGUoc3RydWN0IG52aWRpYV9wYXIgKnBhcikKLXsKLQl2b2xhdGlsZSB1OCB0bXA7Ci0KLQl0bXAgPSBWR0FfUkQwOChwYXItPlBDSU8sIHBhci0+SU9CYXNlICsgMHgwYSk7Ci0JVkdBX1dSMDgocGFyLT5QQ0lPLCBWR0FfQVRUX0lXLCAweDIwKTsKLQlwYXItPnBhbGV0dGVFbmFibGVkID0gMDsKLX0KLSNlbmRpZiAgLyogIDAgICovCiB2b2lkIE5WV3JpdGVEYWNNYXNrKHN0cnVjdCBudmlkaWFfcGFyICpwYXIsIHU4IHZhbHVlKQogewogCVZHQV9XUjA4KHBhci0+UERJTywgVkdBX1BFTF9NU0ssIHZhbHVlKTsKIH0KLSNpZiAwCi11OCBOVlJlYWREYWNNYXNrKHN0cnVjdCBudmlkaWFfcGFyICpwYXIpCi17Ci0JcmV0dXJuIChWR0FfUkQwOChwYXItPlBESU8sIFZHQV9QRUxfTVNLKSk7Ci19Ci0jZW5kaWYgIC8qICAwICAqLwogdm9pZCBOVldyaXRlRGFjUmVhZEFkZHIoc3RydWN0IG52aWRpYV9wYXIgKnBhciwgdTggdmFsdWUpCiB7CiAJVkdBX1dSMDgocGFyLT5QRElPLCBWR0FfUEVMX0lSLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9LY29uZmlnIGIvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvS2NvbmZpZwppbmRleCA4YzFjNWE0Li43NDQ0MTZkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9LY29uZmlnCkBAIC00OSw2ICs0OSw3IEBACiBjb25maWcgRkJfT01BUDJfUEFORUxfU09OWV9BQ1g1NjVBS00KIAl0cmlzdGF0ZSAiQUNYNTY1QUtNIFBhbmVsIgogCWRlcGVuZHMgb24gU1BJICYmIEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKKwlkZXBlbmRzIG9uIERSTV9QQU5FTF9TT05ZX0FDWDU2NUFLTSA9IG4KIAloZWxwCiAJICBUaGlzIGlzIHRoZSBMQ0QgcGFuZWwgdXNlZCBvbiBOb2tpYSBOOTAwCiAKQEAgLTYxLDE4ICs2MiwyMSBAQAogY29uZmlnIEZCX09NQVAyX1BBTkVMX1NIQVJQX0xTMDM3VjdEVzAxCiAJdHJpc3RhdGUgIlNoYXJwIExTMDM3VjdEVzAxIExDRCBQYW5lbCIKIAlkZXBlbmRzIG9uIEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKKwlkZXBlbmRzIG9uIERSTV9QQU5FTF9TSEFSUF9MUzAzN1Y3RFcwMSA9IG4KIAloZWxwCiAJICBMQ0QgUGFuZWwgdXNlZCBpbiBUSSdzIFNEUDM0MzAgYW5kIEVWTSBib2FyZHMKIAogY29uZmlnIEZCX09NQVAyX1BBTkVMX1RQT19URDAyOFRURUMxCiAJdHJpc3RhdGUgIlRQTyBURDAyOFRURUMxIExDRCBQYW5lbCIKIAlkZXBlbmRzIG9uIFNQSQorCWRlcGVuZHMgb24gRFJNX1BBTkVMX1RQT19URDAyOFRURUMxID0gbgogCWhlbHAKIAkgIExDRCBwYW5lbCB1c2VkIGluIE9wZW5tb2tvLgogCiBjb25maWcgRkJfT01BUDJfUEFORUxfVFBPX1REMDQzTVRFQTEKIAl0cmlzdGF0ZSAiVFBPIFREMDQzTVRFQTEgTENEIFBhbmVsIgogCWRlcGVuZHMgb24gU1BJCisJZGVwZW5kcyBvbiBEUk1fUEFORUxfVFBPX1REMDQzTVRFQTEgPSBuCiAJaGVscAogCSAgTENEIFBhbmVsIHVzZWQgaW4gT01BUDMgUGFuZG9yYQogCkBAIC04MCw2ICs4NCw3IEBACiAJdHJpc3RhdGUgIk5FQyBOTDgwNDhITDExIFBhbmVsIgogCWRlcGVuZHMgb24gU1BJCiAJZGVwZW5kcyBvbiBCQUNLTElHSFRfQ0xBU1NfREVWSUNFCisJZGVwZW5kcyBvbiBEUk1fUEFORUxfTkVDX05MODA0OEhMMTEgPSBuCiAJaGVscAogCSAgVGhpcyBORUMgTkw4MDQ4SEwxMSBwYW5lbCBpcyBURlQgTENEIHVzZWQgaW4gdGhlCiAJICBab29tMi8zLzM2MzAgc2RwIGJvYXJkcy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcHZyMmZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3B2cjJmYi5jCmluZGV4IDdmZjRiNmIuLjBhM2IyYjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcHZyMmZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9wdnIyZmIuYwpAQCAtNDU4LDEzICs0NTgsMTEgQEAgc3RhdGljIGludCBwdnIyZmJfY2hlY2tfdmFyKHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlzZXRfY29sb3JfYml0ZmllbGRzKHZhcik7CiAKIAlpZiAodmFyLT52bW9kZSAmIEZCX1ZNT0RFX1lXUkFQKSB7Ci0JCWlmICh2YXItPnhvZmZzZXQgfHwgdmFyLT55b2Zmc2V0IDwgMCB8fAotCQkgICAgdmFyLT55b2Zmc2V0ID49IHZhci0+eXJlc192aXJ0dWFsKSB7CisJCWlmICh2YXItPnhvZmZzZXQgfHwgdmFyLT55b2Zmc2V0ID49IHZhci0+eXJlc192aXJ0dWFsKSB7CiAJCQl2YXItPnhvZmZzZXQgPSB2YXItPnlvZmZzZXQgPSAwOwogCQl9IGVsc2UgewogCQkJaWYgKHZhci0+eG9mZnNldCA+IHZhci0+eHJlc192aXJ0dWFsIC0gdmFyLT54cmVzIHx8Ci0JCQkgICAgdmFyLT55b2Zmc2V0ID4gdmFyLT55cmVzX3ZpcnR1YWwgLSB2YXItPnlyZXMgfHwKLQkJCSAgICB2YXItPnhvZmZzZXQgPCAwIHx8IHZhci0+eW9mZnNldCA8IDApCisJCQkgICAgdmFyLT55b2Zmc2V0ID4gdmFyLT55cmVzX3ZpcnR1YWwgLSB2YXItPnlyZXMpCiAJCQkJdmFyLT54b2Zmc2V0ID0gdmFyLT55b2Zmc2V0ID0gMDsKIAkJfQogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NoX21vYmlsZV9sY2RjZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2hfbW9iaWxlX2xjZGNmYi5jCmluZGV4IGFjMGJjYWMuLmMyNDk3NjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2hfbW9iaWxlX2xjZGNmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2hfbW9iaWxlX2xjZGNmYi5jCkBAIC0xNTk0LDYgKzE1OTQsNyBAQCBzaF9tb2JpbGVfbGNkY19vdmVybGF5X2ZiX2luaXQoc3RydWN0IHNoX21vYmlsZV9sY2RjX292ZXJsYXkgKm92bCkKIAljYXNlIFY0TDJfUElYX0ZNVF9OVjEyOgogCWNhc2UgVjRMMl9QSVhfRk1UX05WMjE6CiAJCWluZm8tPmZpeC55cGFuc3RlcCA9IDI7CisJCS8qIEZhbGwgdGhyb3VnaCAqLwogCWNhc2UgVjRMMl9QSVhfRk1UX05WMTY6CiAJY2FzZSBWNEwyX1BJWF9GTVRfTlY2MToKIAkJaW5mby0+Zml4LnhwYW5zdGVwID0gMjsKQEAgLTIwODQsNiArMjA4NSw3IEBAIHNoX21vYmlsZV9sY2RjX2NoYW5uZWxfZmJfaW5pdChzdHJ1Y3Qgc2hfbW9iaWxlX2xjZGNfY2hhbiAqY2gsCiAJY2FzZSBWNEwyX1BJWF9GTVRfTlYxMjoKIAljYXNlIFY0TDJfUElYX0ZNVF9OVjIxOgogCQlpbmZvLT5maXgueXBhbnN0ZXAgPSAyOworCQkvKiBGYWxsIHRocm91Z2ggKi8KIAljYXNlIFY0TDJfUElYX0ZNVF9OVjE2OgogCWNhc2UgVjRMMl9QSVhfRk1UX05WNjE6CiAJCWluZm8tPmZpeC54cGFuc3RlcCA9IDI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc203MTJmYi5jCmluZGV4IDdiMWIwZDguLjIwN2QwYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc203MTJmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc203MTJmYi5jCkBAIC0xNjk0LDEwICsxNjk0LDggQEAgc3RhdGljIHZvaWQgc210Y2ZiX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAKIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc210Y2ZiX3BjaV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldmljZSkKIHsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2aWNlKTsKLQlzdHJ1Y3Qgc210Y2ZiX2luZm8gKnNmYjsKKwlzdHJ1Y3Qgc210Y2ZiX2luZm8gKnNmYiA9IGRldl9nZXRfZHJ2ZGF0YShkZXZpY2UpOwogCi0Jc2ZiID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCiAJLyogc2V0IHRoZSBodyBpbiBzbGVlcCBtb2RlIHVzZSBleHRlcm5hbCBjbG9jayBhbmQgc2VsZiBtZW1vcnkgcmVmcmVzaAogCSAqIHNvIHRoYXQgd2UgY2FuIHR1cm4gb2ZmIGludGVybmFsIFBMTHMgbGF0ZXIgb24KQEAgLTE3MTcsMTAgKzE3MTUsOCBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIHNtdGNmYl9wY2lfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCiAKIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc210Y2ZiX3BjaV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2aWNlKQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXZpY2UpOwotCXN0cnVjdCBzbXRjZmJfaW5mbyAqc2ZiOworCXN0cnVjdCBzbXRjZmJfaW5mbyAqc2ZiID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7CiAKLQlzZmIgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CiAKIAkvKiByZWluaXQgaGFyZHdhcmUgKi8KIAlzbTd4eF9pbml0X2h3KCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NzZDEzMDdmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9zc2QxMzA3ZmIuYwppbmRleCBiNjc0OTQ4Li43OGNhN2ZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NzZDEzMDdmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc3NkMTMwN2ZiLmMKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgU1NEMTMwN0ZCX1NFVF9DT0xfUkFOR0UJCTB4MjEKICNkZWZpbmUgU1NEMTMwN0ZCX1NFVF9QQUdFX1JBTkdFCTB4MjIKICNkZWZpbmUgU1NEMTMwN0ZCX0NPTlRSQVNUCQkweDgxCisjZGVmaW5lIFNTRDEzMDdGQl9TRVRfTE9PS1VQX1RBQkxFCTB4OTEKICNkZWZpbmUJU1NEMTMwN0ZCX0NIQVJHRV9QVU1QCQkweDhkCiAjZGVmaW5lIFNTRDEzMDdGQl9TRUdfUkVNQVBfT04JCTB4YTEKICNkZWZpbmUgU1NEMTMwN0ZCX0RJU1BMQVlfT0ZGCQkweGFlCkBAIC0zNiw2ICszNyw3IEBACiAjZGVmaW5lIFNTRDEzMDdGQl9TVEFSVF9QQUdFX0FERFJFU1MJMHhiMAogI2RlZmluZSBTU0QxMzA3RkJfU0VUX0RJU1BMQVlfT0ZGU0VUCTB4ZDMKICNkZWZpbmUJU1NEMTMwN0ZCX1NFVF9DTE9DS19GUkVRCTB4ZDUKKyNkZWZpbmUJU1NEMTMwN0ZCX1NFVF9BUkVBX0NPTE9SX01PREUJMHhkOAogI2RlZmluZQlTU0QxMzA3RkJfU0VUX1BSRUNIQVJHRV9QRVJJT0QJMHhkOQogI2RlZmluZQlTU0QxMzA3RkJfU0VUX0NPTV9QSU5TX0NPTkZJRwkweGRhCiAjZGVmaW5lCVNTRDEzMDdGQl9TRVRfVkNPTUgJCTB4ZGIKQEAgLTU4LDEwICs2MCwxNCBAQCBzdHJ1Y3Qgc3NkMTMwN2ZiX2RldmljZWluZm8gewogfTsKIAogc3RydWN0IHNzZDEzMDdmYl9wYXIgewotCXUzMiBjb21faW52ZGlyOwotCXUzMiBjb21fbHJyZW1hcDsKKwl1bnNpZ25lZCBhcmVhX2NvbG9yX2VuYWJsZSA6IDE7CisJdW5zaWduZWQgY29tX2ludmRpciA6IDE7CisJdW5zaWduZWQgY29tX2xycmVtYXAgOiAxOworCXVuc2lnbmVkIGNvbV9zZXEgOiAxOworCXVuc2lnbmVkIGxvb2t1cF90YWJsZV9zZXQgOiAxOworCXVuc2lnbmVkIGxvd19wb3dlciA6IDE7CisJdW5zaWduZWQgc2VnX3JlbWFwIDogMTsKIAl1MzIgY29tX29mZnNldDsKLQl1MzIgY29tX3NlcTsKIAl1MzIgY29udHJhc3Q7CiAJdTMyIGRjbGtfZGl2OwogCXUzMiBkY2xrX2ZycTsKQEAgLTY5LDYgKzc1LDcgQEAgc3RydWN0IHNzZDEzMDdmYl9wYXIgewogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQ7CiAJdTMyIGhlaWdodDsKIAlzdHJ1Y3QgZmJfaW5mbyAqaW5mbzsKKwl1OCBsb29rdXBfdGFibGVbNF07CiAJdTMyIHBhZ2Vfb2Zmc2V0OwogCXUzMiBwcmVjaGFyZ2VwMTsKIAl1MzIgcHJlY2hhcmdlcDI7CkBAIC03Niw3ICs4Myw2IEBAIHN0cnVjdCBzc2QxMzA3ZmJfcGFyIHsKIAl1MzIgcHdtX3BlcmlvZDsKIAlzdHJ1Y3QgZ3Bpb19kZXNjICpyZXNldDsKIAlzdHJ1Y3QgcmVndWxhdG9yICp2YmF0X3JlZzsKLQl1MzIgc2VnX3JlbWFwOwogCXUzMiB2Y29taDsKIAl1MzIgd2lkdGg7CiB9OwpAQCAtOTgsNiArMTA0LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9maXhfc2NyZWVuaW5mbyBzc2QxMzA3ZmJfZml4ID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvIHNzZDEzMDdmYl92YXIgPSB7CiAJLmJpdHNfcGVyX3BpeGVsCT0gMSwKKwkucmVkID0geyAubGVuZ3RoID0gMSB9LAorCS5ncmVlbiA9IHsgLmxlbmd0aCA9IDEgfSwKKwkuYmx1ZSA9IHsgLmxlbmd0aCA9IDEgfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgc3NkMTMwN2ZiX2FycmF5ICpzc2QxMzA3ZmJfYWxsb2NfYXJyYXkodTMyIGxlbiwgdTggdHlwZSkKQEAgLTE0OSwxMSArMTU4LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IHNzZDEzMDdmYl93cml0ZV9jbWQoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggY21kKQogc3RhdGljIHZvaWQgc3NkMTMwN2ZiX3VwZGF0ZV9kaXNwbGF5KHN0cnVjdCBzc2QxMzA3ZmJfcGFyICpwYXIpCiB7CiAJc3RydWN0IHNzZDEzMDdmYl9hcnJheSAqYXJyYXk7Ci0JdTggKnZtZW0gPSBwYXItPmluZm8tPnNjcmVlbl9iYXNlOworCXU4ICp2bWVtID0gcGFyLT5pbmZvLT5zY3JlZW5fYnVmZmVyOworCXVuc2lnbmVkIGludCBsaW5lX2xlbmd0aCA9IHBhci0+aW5mby0+Zml4LmxpbmVfbGVuZ3RoOworCXVuc2lnbmVkIGludCBwYWdlcyA9IERJVl9ST1VORF9VUChwYXItPmhlaWdodCwgOCk7CiAJaW50IGksIGosIGs7CiAKLQlhcnJheSA9IHNzZDEzMDdmYl9hbGxvY19hcnJheShwYXItPndpZHRoICogcGFyLT5oZWlnaHQgLyA4LAotCQkJCSAgICAgIFNTRDEzMDdGQl9EQVRBKTsKKwlhcnJheSA9IHNzZDEzMDdmYl9hbGxvY19hcnJheShwYXItPndpZHRoICogcGFnZXMsIFNTRDEzMDdGQl9EQVRBKTsKIAlpZiAoIWFycmF5KQogCQlyZXR1cm47CiAKQEAgLTE4NiwyMiArMTk2LDI0IEBAIHN0YXRpYyB2b2lkIHNzZDEzMDdmYl91cGRhdGVfZGlzcGxheShzdHJ1Y3Qgc3NkMTMwN2ZiX3BhciAqcGFyKQogCSAqICAoNSkgQTQgQjQgQzQgRDQgRTQgRjQgRzQgSDQKIAkgKi8KIAotCWZvciAoaSA9IDA7IGkgPCAocGFyLT5oZWlnaHQgLyA4KTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IHBhZ2VzOyBpKyspIHsKIAkJZm9yIChqID0gMDsgaiA8IHBhci0+d2lkdGg7IGorKykgeworCQkJaW50IG0gPSA4OwogCQkJdTMyIGFycmF5X2lkeCA9IGkgKiBwYXItPndpZHRoICsgajsKIAkJCWFycmF5LT5kYXRhW2FycmF5X2lkeF0gPSAwOwotCQkJZm9yIChrID0gMDsgayA8IDg7IGsrKykgewotCQkJCXUzMiBwYWdlX2xlbmd0aCA9IHBhci0+d2lkdGggKiBpOwotCQkJCXUzMiBpbmRleCA9IHBhZ2VfbGVuZ3RoICsgKHBhci0+d2lkdGggKiBrICsgaikgLyA4OwotCQkJCXU4IGJ5dGUgPSAqKHZtZW0gKyBpbmRleCk7Ci0JCQkJdTggYml0ID0gYnl0ZSAmICgxIDw8IChqICUgOCkpOwotCQkJCWJpdCA9IGJpdCA+PiAoaiAlIDgpOworCQkJLyogTGFzdCBwYWdlIG1heSBiZSBwYXJ0aWFsICovCisJCQlpZiAoaSArIDEgPT0gcGFnZXMgJiYgcGFyLT5oZWlnaHQgJSA4KQorCQkJCW0gPSBwYXItPmhlaWdodCAlIDg7CisJCQlmb3IgKGsgPSAwOyBrIDwgbTsgaysrKSB7CisJCQkJdTggYnl0ZSA9IHZtZW1bKDggKiBpICsgaykgKiBsaW5lX2xlbmd0aCArCisJCQkJCSAgICAgICBqIC8gOF07CisJCQkJdTggYml0ID0gKGJ5dGUgPj4gKGogJSA4KSkgJiAxOwogCQkJCWFycmF5LT5kYXRhW2FycmF5X2lkeF0gfD0gYml0IDw8IGs7CiAJCQl9CiAJCX0KIAl9CiAKLQlzc2QxMzA3ZmJfd3JpdGVfYXJyYXkocGFyLT5jbGllbnQsIGFycmF5LCBwYXItPndpZHRoICogcGFyLT5oZWlnaHQgLyA4KTsKKwlzc2QxMzA3ZmJfd3JpdGVfYXJyYXkocGFyLT5jbGllbnQsIGFycmF5LCBwYXItPndpZHRoICogcGFnZXMpOwogCWtmcmVlKGFycmF5KTsKIH0KIApAQCAtMjEyLDcgKzIyNCw3IEBAIHN0YXRpYyBzc2l6ZV90IHNzZDEzMDdmYl93cml0ZShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAlzdHJ1Y3Qgc3NkMTMwN2ZiX3BhciAqcGFyID0gaW5mby0+cGFyOwogCXVuc2lnbmVkIGxvbmcgdG90YWxfc2l6ZTsKIAl1bnNpZ25lZCBsb25nIHAgPSAqcHBvczsKLQl1OCBfX2lvbWVtICpkc3Q7CisJdm9pZCAqZHN0OwogCiAJdG90YWxfc2l6ZSA9IGluZm8tPmZpeC5zbWVtX2xlbjsKIApAQCAtMjI1LDcgKzIzNyw3IEBAIHN0YXRpYyBzc2l6ZV90IHNzZDEzMDdmYl93cml0ZShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAlpZiAoIWNvdW50KQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWRzdCA9ICh2b2lkIF9fZm9yY2UgKikgKGluZm8tPnNjcmVlbl9iYXNlICsgcCk7CisJZHN0ID0gaW5mby0+c2NyZWVuX2J1ZmZlciArIHA7CiAKIAlpZiAoY29weV9mcm9tX3VzZXIoZHN0LCBidWYsIGNvdW50KSkKIAkJcmV0dXJuIC1FRkFVTFQ7CkBAIC0zMTIsNyArMzI0LDcgQEAgc3RhdGljIGludCBzc2QxMzA3ZmJfaW5pdChzdHJ1Y3Qgc3NkMTMwN2ZiX3BhciAqcGFyKQogCiAJCWRldl9kYmcoJnBhci0+Y2xpZW50LT5kZXYsICJVc2luZyBQV00lZCB3aXRoIGEgJWRucyBwZXJpb2QuXG4iLAogCQkJcGFyLT5wd20tPnB3bSwgcGFyLT5wd21fcGVyaW9kKTsKLQl9OworCX0KIAogCS8qIFNldCBpbml0aWFsIGNvbnRyYXN0ICovCiAJcmV0ID0gc3NkMTMwN2ZiX3dyaXRlX2NtZChwYXItPmNsaWVudCwgU1NEMTMwN0ZCX0NPTlRSQVNUKTsKQEAgLTMyOCwxMCArMzQwLDEwIEBAIHN0YXRpYyBpbnQgc3NkMTMwN2ZiX2luaXQoc3RydWN0IHNzZDEzMDdmYl9wYXIgKnBhcikKIAkJcmV0ID0gc3NkMTMwN2ZiX3dyaXRlX2NtZChwYXItPmNsaWVudCwgU1NEMTMwN0ZCX1NFR19SRU1BUF9PTik7CiAJCWlmIChyZXQgPCAwKQogCQkJcmV0dXJuIHJldDsKLQl9OworCX0KIAogCS8qIFNldCBDT00gZGlyZWN0aW9uICovCi0JY29tX2ludmRpciA9IDB4YzAgfCAocGFyLT5jb21faW52ZGlyICYgMHgxKSA8PCAzOworCWNvbV9pbnZkaXIgPSAweGMwIHwgcGFyLT5jb21faW52ZGlyIDw8IDM7CiAJcmV0ID0gc3NkMTMwN2ZiX3dyaXRlX2NtZChwYXItPmNsaWVudCwgIGNvbV9pbnZkaXIpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwpAQCAtMzY0LDYgKzM3NiwyMiBAQCBzdGF0aWMgaW50IHNzZDEzMDdmYl9pbml0KHN0cnVjdCBzc2QxMzA3ZmJfcGFyICpwYXIpCiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKKwkvKiBTZXQgU2V0IEFyZWEgQ29sb3IgTW9kZSBPTi9PRkYgJiBMb3cgUG93ZXIgRGlzcGxheSBNb2RlICovCisJaWYgKHBhci0+YXJlYV9jb2xvcl9lbmFibGUgfHwgcGFyLT5sb3dfcG93ZXIpIHsKKwkJdTMyIG1vZGU7CisKKwkJcmV0ID0gc3NkMTMwN2ZiX3dyaXRlX2NtZChwYXItPmNsaWVudCwKKwkJCQkJICBTU0QxMzA3RkJfU0VUX0FSRUFfQ09MT1JfTU9ERSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQltb2RlID0gKHBhci0+YXJlYV9jb2xvcl9lbmFibGUgPyAweDMwIDogMCkgfAorCQkJKHBhci0+bG93X3Bvd2VyID8gNSA6IDApOworCQlyZXQgPSBzc2QxMzA3ZmJfd3JpdGVfY21kKHBhci0+Y2xpZW50LCBtb2RlKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCX0KKwogCS8qIFNldCBwcmVjaGFyZ2UgcGVyaW9kIGluIG51bWJlciBvZiB0aWNrcyBmcm9tIHRoZSBpbnRlcm5hbCBjbG9jayAqLwogCXJldCA9IHNzZDEzMDdmYl93cml0ZV9jbWQocGFyLT5jbGllbnQsIFNTRDEzMDdGQl9TRVRfUFJFQ0hBUkdFX1BFUklPRCk7CiAJaWYgKHJldCA8IDApCkBAIC0zNzksOCArNDA3LDcgQEAgc3RhdGljIGludCBzc2QxMzA3ZmJfaW5pdChzdHJ1Y3Qgc3NkMTMwN2ZiX3BhciAqcGFyKQogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCi0JY29tcGlucyA9IDB4MDIgfCAhKHBhci0+Y29tX3NlcSAmIDB4MSkgPDwgNAotCQkJCSAgIHwgKHBhci0+Y29tX2xycmVtYXAgJiAweDEpIDw8IDU7CisJY29tcGlucyA9IDB4MDIgfCAhcGFyLT5jb21fc2VxIDw8IDQgfCBwYXItPmNvbV9scnJlbWFwIDw8IDU7CiAJcmV0ID0gc3NkMTMwN2ZiX3dyaXRlX2NtZChwYXItPmNsaWVudCwgY29tcGlucyk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC00MDQsNiArNDMxLDI4IEBAIHN0YXRpYyBpbnQgc3NkMTMwN2ZiX2luaXQoc3RydWN0IHNzZDEzMDdmYl9wYXIgKnBhcikKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAorCS8qIFNldCBsb29rdXAgdGFibGUgKi8KKwlpZiAocGFyLT5sb29rdXBfdGFibGVfc2V0KSB7CisJCWludCBpOworCisJCXJldCA9IHNzZDEzMDdmYl93cml0ZV9jbWQocGFyLT5jbGllbnQsCisJCQkJCSAgU1NEMTMwN0ZCX1NFVF9MT09LVVBfVEFCTEUpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGFyLT5sb29rdXBfdGFibGUpOyArK2kpIHsKKwkJCXU4IHZhbCA9IHBhci0+bG9va3VwX3RhYmxlW2ldOworCisJCQlpZiAodmFsIDwgMzEgfHwgdmFsID4gNjMpCisJCQkJZGV2X3dhcm4oJnBhci0+Y2xpZW50LT5kZXYsCisJCQkJCSAibG9va3VwIHRhYmxlIGluZGV4ICVkIHZhbHVlIG91dCBvZiByYW5nZSAzMSA8PSAlZCA8PSA2M1xuIiwKKwkJCQkJIGksIHZhbCk7CisJCQlyZXQgPSBzc2QxMzA3ZmJfd3JpdGVfY21kKHBhci0+Y2xpZW50LCB2YWwpOworCQkJaWYgKHJldCA8IDApCisJCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKwogCS8qIFN3aXRjaCB0byBob3Jpem9udGFsIGFkZHJlc3NpbmcgbW9kZSAqLwogCXJldCA9IHNzZDEzMDdmYl93cml0ZV9jbWQocGFyLT5jbGllbnQsIFNTRDEzMDdGQl9TRVRfQUREUkVTU19NT0RFKTsKIAlpZiAocmV0IDwgMCkKQEAgLTQzMiwxMiArNDgxLDEzIEBAIHN0YXRpYyBpbnQgc3NkMTMwN2ZiX2luaXQoc3RydWN0IHNzZDEzMDdmYl9wYXIgKnBhcikKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IHNzZDEzMDdmYl93cml0ZV9jbWQocGFyLT5jbGllbnQsIDB4MCk7CisJcmV0ID0gc3NkMTMwN2ZiX3dyaXRlX2NtZChwYXItPmNsaWVudCwgcGFyLT5wYWdlX29mZnNldCk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAlyZXQgPSBzc2QxMzA3ZmJfd3JpdGVfY21kKHBhci0+Y2xpZW50LAotCQkJCSAgcGFyLT5wYWdlX29mZnNldCArIChwYXItPmhlaWdodCAvIDgpIC0gMSk7CisJCQkJICBwYXItPnBhZ2Vfb2Zmc2V0ICsKKwkJCQkgIERJVl9ST1VORF9VUChwYXItPmhlaWdodCwgOCkgLSAxKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIApAQCAtNTQ2LDcgKzU5Niw3IEBAIHN0YXRpYyBpbnQgc3NkMTMwN2ZiX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJc3RydWN0IGZiX2RlZmVycmVkX2lvICpzc2QxMzA3ZmJfZGVmaW87CiAJdTMyIHZtZW1fc2l6ZTsKIAlzdHJ1Y3Qgc3NkMTMwN2ZiX3BhciAqcGFyOwotCXU4ICp2bWVtOworCXZvaWQgKnZtZW07CiAJaW50IHJldDsKIAogCWlmICghbm9kZSkgewpAQCAtNjAzLDE5ICs2NTMsMjkgQEAgc3RhdGljIGludCBzc2QxMzA3ZmJfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIobm9kZSwgInNvbG9tb24scHJlY2hhcmdlcDIiLCAmcGFyLT5wcmVjaGFyZ2VwMikpCiAJCXBhci0+cHJlY2hhcmdlcDIgPSAyOwogCisJaWYgKCFvZl9wcm9wZXJ0eV9yZWFkX3U4X2FycmF5KG5vZGUsICJzb2xvbW9uLGxvb2t1cC10YWJsZSIsCisJCQkJICAgICAgIHBhci0+bG9va3VwX3RhYmxlLAorCQkJCSAgICAgICBBUlJBWV9TSVpFKHBhci0+bG9va3VwX3RhYmxlKSkpCisJCXBhci0+bG9va3VwX3RhYmxlX3NldCA9IDE7CisKIAlwYXItPnNlZ19yZW1hcCA9ICFvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobm9kZSwgInNvbG9tb24sc2VnbWVudC1uby1yZW1hcCIpOwogCXBhci0+Y29tX3NlcSA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChub2RlLCAic29sb21vbixjb20tc2VxIik7CiAJcGFyLT5jb21fbHJyZW1hcCA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChub2RlLCAic29sb21vbixjb20tbHJyZW1hcCIpOwogCXBhci0+Y29tX2ludmRpciA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChub2RlLCAic29sb21vbixjb20taW52ZGlyIik7CisJcGFyLT5hcmVhX2NvbG9yX2VuYWJsZSA9CisJCW9mX3Byb3BlcnR5X3JlYWRfYm9vbChub2RlLCAic29sb21vbixhcmVhLWNvbG9yLWVuYWJsZSIpOworCXBhci0+bG93X3Bvd2VyID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUsICJzb2xvbW9uLGxvdy1wb3dlciIpOwogCiAJcGFyLT5jb250cmFzdCA9IDEyNzsKIAlwYXItPnZjb21oID0gcGFyLT5kZXZpY2VfaW5mby0+ZGVmYXVsdF92Y29taDsKIAogCS8qIFNldHVwIGRpc3BsYXkgdGltaW5nICovCi0JcGFyLT5kY2xrX2RpdiA9IHBhci0+ZGV2aWNlX2luZm8tPmRlZmF1bHRfZGNsa19kaXY7Ci0JcGFyLT5kY2xrX2ZycSA9IHBhci0+ZGV2aWNlX2luZm8tPmRlZmF1bHRfZGNsa19mcnE7CisJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJzb2xvbW9uLGRjbGstZGl2IiwgJnBhci0+ZGNsa19kaXYpKQorCQlwYXItPmRjbGtfZGl2ID0gcGFyLT5kZXZpY2VfaW5mby0+ZGVmYXVsdF9kY2xrX2RpdjsKKwlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIobm9kZSwgInNvbG9tb24sZGNsay1mcnEiLCAmcGFyLT5kY2xrX2ZycSkpCisJCXBhci0+ZGNsa19mcnEgPSBwYXItPmRldmljZV9pbmZvLT5kZWZhdWx0X2RjbGtfZnJxOwogCi0Jdm1lbV9zaXplID0gcGFyLT53aWR0aCAqIHBhci0+aGVpZ2h0IC8gODsKKwl2bWVtX3NpemUgPSBESVZfUk9VTkRfVVAocGFyLT53aWR0aCwgOCkgKiBwYXItPmhlaWdodDsKIAogCXZtZW0gPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8sCiAJCQkJCWdldF9vcmRlcih2bWVtX3NpemUpKTsKQEAgLTYzOCw3ICs2OTgsNyBAQCBzdGF0aWMgaW50IHNzZDEzMDdmYl9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCiAJaW5mby0+ZmJvcHMgPSAmc3NkMTMwN2ZiX29wczsKIAlpbmZvLT5maXggPSBzc2QxMzA3ZmJfZml4OwotCWluZm8tPmZpeC5saW5lX2xlbmd0aCA9IHBhci0+d2lkdGggLyA4OworCWluZm8tPmZpeC5saW5lX2xlbmd0aCA9IERJVl9ST1VORF9VUChwYXItPndpZHRoLCA4KTsKIAlpbmZvLT5mYmRlZmlvID0gc3NkMTMwN2ZiX2RlZmlvOwogCiAJaW5mby0+dmFyID0gc3NkMTMwN2ZiX3ZhcjsKQEAgLTY0NywxNCArNzA3LDcgQEAgc3RhdGljIGludCBzc2QxMzA3ZmJfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAlpbmZvLT52YXIueXJlcyA9IHBhci0+aGVpZ2h0OwogCWluZm8tPnZhci55cmVzX3ZpcnR1YWwgPSBwYXItPmhlaWdodDsKIAotCWluZm8tPnZhci5yZWQubGVuZ3RoID0gMTsKLQlpbmZvLT52YXIucmVkLm9mZnNldCA9IDA7Ci0JaW5mby0+dmFyLmdyZWVuLmxlbmd0aCA9IDE7Ci0JaW5mby0+dmFyLmdyZWVuLm9mZnNldCA9IDA7Ci0JaW5mby0+dmFyLmJsdWUubGVuZ3RoID0gMTsKLQlpbmZvLT52YXIuYmx1ZS5vZmZzZXQgPSAwOwotCi0JaW5mby0+c2NyZWVuX2Jhc2UgPSAodTggX19mb3JjZSBfX2lvbWVtICopdm1lbTsKKwlpbmZvLT5zY3JlZW5fYnVmZmVyID0gdm1lbTsKIAlpbmZvLT5maXguc21lbV9zdGFydCA9IF9fcGEodm1lbSk7CiAJaW5mby0+Zml4LnNtZW1fbGVuID0gdm1lbV9zaXplOwogCkBAIC03MTMsNyArNzY2LDcgQEAgc3RhdGljIGludCBzc2QxMzA3ZmJfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAlpZiAocGFyLT5kZXZpY2VfaW5mby0+bmVlZF9wd20pIHsKIAkJcHdtX2Rpc2FibGUocGFyLT5wd20pOwogCQlwd21fcHV0KHBhci0+cHdtKTsKLQl9OworCX0KIHJlZ3VsYXRvcl9lbmFibGVfZXJyb3I6CiAJaWYgKHBhci0+dmJhdF9yZWcpCiAJCXJlZ3VsYXRvcl9kaXNhYmxlKHBhci0+dmJhdF9yZWcpOwpAQCAtNzM3LDcgKzc5MCw3IEBAIHN0YXRpYyBpbnQgc3NkMTMwN2ZiX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQogCWlmIChwYXItPmRldmljZV9pbmZvLT5uZWVkX3B3bSkgewogCQlwd21fZGlzYWJsZShwYXItPnB3bSk7CiAJCXB3bV9wdXQocGFyLT5wd20pOwotCX07CisJfQogCWZiX2RlZmVycmVkX2lvX2NsZWFudXAoaW5mbyk7CiAJX19mcmVlX3BhZ2VzKF9fdmEoaW5mby0+Zml4LnNtZW1fc3RhcnQpLCBnZXRfb3JkZXIoaW5mby0+Zml4LnNtZW1fbGVuKSk7CiAJZnJhbWVidWZmZXJfcmVsZWFzZShpbmZvKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdWRsZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdWRsZmIuYwppbmRleCBjMzI4ZTgyLi5mZTM3M2I2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3VkbGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi91ZGxmYi5jCkBAIC0xMTgzLDcgKzExODMsNyBAQCBzdGF0aWMgaW50IGRsZmJfb3BzX2JsYW5rKGludCBibGFua19tb2RlLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgZGxmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBkbGZiX29wcyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIAkuZmJfcmVhZCA9IGZiX3N5c19yZWFkLAogCS5mYl93cml0ZSA9IGRsZmJfb3BzX3dyaXRlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi92aWEvdmlhLWNvcmUuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdmlhL3ZpYS1jb3JlLmMKaW5kZXggZTJiMjA2Mi4uZmZhMmNhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi92aWEvdmlhLWNvcmUuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3ZpYS92aWEtY29yZS5jCkBAIC0yMjEsNDkgKzIyMSw2IEBAIHZvaWQgdmlhZmJfcmVsZWFzZV9kbWEodm9pZCkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHZpYWZiX3JlbGVhc2VfZG1hKTsKIAotCi0jaWYgMAotLyoKLSAqIENvcHkgYSBzaW5nbGUgYnVmZmVyIGZyb20gRkIgbWVtb3J5LCBzeW5jaHJvbm91c2x5LiAgVGhpcyBjb2RlIHdvcmtzCi0gKiBidXQgaXMgbm90IGN1cnJlbnRseSB1c2VkLgotICovCi12b2lkIHZpYWZiX2RtYV9jb3B5X291dCh1bnNpZ25lZCBpbnQgb2Zmc2V0LCBkbWFfYWRkcl90IHBhZGRyLCBpbnQgbGVuKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IGNzcjsKLQotCW11dGV4X2xvY2soJnZpYWZiX2RtYV9sb2NrKTsKLQlpbml0X2NvbXBsZXRpb24oJnZpYWZiX2RtYV9jb21wbGV0aW9uKTsKLQkvKgotCSAqIFByb2dyYW0gdGhlIGNvbnRyb2xsZXIuCi0JICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmdsb2JhbF9kZXYucmVnX2xvY2ssIGZsYWdzKTsKLQl2aWFmYl9tbWlvX3dyaXRlKFZETUFfQ1NSMCwgVkRNQV9DX0VOQUJMRXxWRE1BX0NfRE9ORSk7Ci0JLyogRW5hYmxlIGludHM7IG11c3QgaGFwcGVuIGFmdGVyIENTUjAgd3JpdGUhICovCi0JdmlhZmJfbW1pb193cml0ZShWRE1BX01SMCwgVkRNQV9NUl9URElFKTsKLQl2aWFmYl9tbWlvX3dyaXRlKFZETUFfTUFSTDAsIChpbnQpIChwYWRkciAmIDB4ZmZmZmZmZjApKTsKLQl2aWFmYl9tbWlvX3dyaXRlKFZETUFfTUFSSDAsIChpbnQpICgocGFkZHIgPj4gMjgpICYgMHhmZmYpKTsKLQkvKiBEYXRhIHNoZWV0IHN1Z2dlc3RzIERBUjAgc2hvdWxkIGJlIDw8NCwgYnV0IGl0IGxpZXMgKi8KLQl2aWFmYl9tbWlvX3dyaXRlKFZETUFfREFSMCwgb2Zmc2V0KTsKLQl2aWFmYl9tbWlvX3dyaXRlKFZETUFfRFFXQ1IwLCBsZW4gPj4gNCk7Ci0JdmlhZmJfbW1pb193cml0ZShWRE1BX1RNUjAsIDApOwotCXZpYWZiX21taW9fd3JpdGUoVkRNQV9EUFJMMCwgMCk7Ci0JdmlhZmJfbW1pb193cml0ZShWRE1BX0RQUkgwLCAwKTsKLQl2aWFmYl9tbWlvX3dyaXRlKFZETUFfUE1SMCwgMCk7Ci0JY3NyID0gdmlhZmJfbW1pb19yZWFkKFZETUFfQ1NSMCk7Ci0JdmlhZmJfbW1pb193cml0ZShWRE1BX0NTUjAsIFZETUFfQ19FTkFCTEV8VkRNQV9DX1NUQVJUKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZnbG9iYWxfZGV2LnJlZ19sb2NrLCBmbGFncyk7Ci0JLyoKLQkgKiBOb3cgd2UganVzdCB3YWl0IHVudGlsIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBzYXlzCi0JICogd2UncmUgZG9uZS4KLQkgKi8KLQl3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJnZpYWZiX2RtYV9jb21wbGV0aW9uKTsKLQl2aWFmYl9tbWlvX3dyaXRlKFZETUFfTVIwLCAwKTsgLyogUmVzZXQgaW50IGVuYWJsZSAqLwotCW11dGV4X3VubG9jaygmdmlhZmJfZG1hX2xvY2spOwotfQotRVhQT1JUX1NZTUJPTF9HUEwodmlhZmJfZG1hX2NvcHlfb3V0KTsKLSNlbmRpZgotCiAvKgogICogRG8gYSBzY2F0dGVyL2dhdGhlciBETUEgY29weSBmcm9tIEZCIG1lbW9yeS4gIFlvdSBtdXN0IGhhdmUgZG9uZQogICogYSBzdWNjZXNzZnVsIGNhbGwgdG8gdmlhZmJfcmVxdWVzdF9kbWEoKSBmaXJzdC4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vb2ZfZGlzcGxheV90aW1pbmcuYyBiL2RyaXZlcnMvdmlkZW8vb2ZfZGlzcGxheV90aW1pbmcuYwppbmRleCBmNWMxYzQ2Li5hYmM5YWRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL29mX2Rpc3BsYXlfdGltaW5nLmMKKysrIGIvZHJpdmVycy92aWRlby9vZl9kaXNwbGF5X3RpbWluZy5jCkBAIC0xMTksMTcgKzExOSwyMCBAQCBpbnQgb2ZfZ2V0X2Rpc3BsYXlfdGltaW5nKGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCXN0cnVjdCBkaXNwbGF5X3RpbWluZyAqZHQpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICp0aW1pbmdfbnA7CisJaW50IHJldDsKIAogCWlmICghbnApCiAJCXJldHVybiAtRUlOVkFMOwogCiAJdGltaW5nX25wID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUobnAsIG5hbWUpOwotCWlmICghdGltaW5nX25wKSB7Ci0JCXByX2VycigiJXBPRjogY291bGQgbm90IGZpbmQgbm9kZSAnJXMnXG4iLCBucCwgbmFtZSk7CisJaWYgKCF0aW1pbmdfbnApCiAJCXJldHVybiAtRU5PRU5UOwotCX0KIAotCXJldHVybiBvZl9wYXJzZV9kaXNwbGF5X3RpbWluZyh0aW1pbmdfbnAsIGR0KTsKKwlyZXQgPSBvZl9wYXJzZV9kaXNwbGF5X3RpbWluZyh0aW1pbmdfbnAsIGR0KTsKKworCW9mX25vZGVfcHV0KHRpbWluZ19ucCk7CisKKwlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTF9HUEwob2ZfZ2V0X2Rpc3BsYXlfdGltaW5nKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9LY29uZmlnIGIvZHJpdmVycy93YXRjaGRvZy9LY29uZmlnCmluZGV4IGE0NWY5ZTMuLjU4ZTdjMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvS2NvbmZpZworKysgYi9kcml2ZXJzL3dhdGNoZG9nL0tjb25maWcKQEAgLTQ3NywxMyArNDc3LDYgQEAKIAogCSAgU2F5IE4gaWYgeW91IGFyZSB1bnN1cmUuCiAKLWNvbmZpZyBLUzg2OTVfV0FUQ0hET0cKLQl0cmlzdGF0ZSAiS1M4Njk1IHdhdGNoZG9nIgotCWRlcGVuZHMgb24gQVJDSF9LUzg2OTUKLQloZWxwCi0JICBXYXRjaGRvZyB0aW1lciBlbWJlZGRlZCBpbnRvIEtTODY5NSBwcm9jZXNzb3IuIFRoaXMgd2lsbCByZWJvb3QgeW91cgotCSAgc3lzdGVtIHdoZW4gdGhlIHRpbWVvdXQgaXMgcmVhY2hlZC4KLQogY29uZmlnIEhBVkVfUzNDMjQxMF9XQVRDSERPRwogCWJvb2wKIAloZWxwCkBAIC02NjIsMTUgKzY1NSw2IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzdG1wM3h4eF9ydGNfd2R0LgogCi1jb25maWcgTlVDOTAwX1dBVENIRE9HCi0JdHJpc3RhdGUgIk51dm90b24gTlVDOTAwIHdhdGNoZG9nIgotCWRlcGVuZHMgb24gQVJDSF9XOTBYOTAwIHx8IENPTVBJTEVfVEVTVAotCWhlbHAKLQkgIFNheSBZIGhlcmUgaWYgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgd2F0Y2hkb2cgdGltZXIKLQkgIGZvciB0aGUgTnV2b3RvbiBOVUM5MDAgc2VyaWVzIFNvQ3MuCi0JICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKLQkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBudWM5MDBfd2R0LgotCiBjb25maWcgVFM0ODAwX1dBVENIRE9HCiAJdHJpc3RhdGUgIlRTLTQ4MDAgV2F0Y2hkb2ciCiAJZGVwZW5kcyBvbiBIQVNfSU9NRU0gJiYgT0YKQEAgLTc0MCw2ICs3MjQsMTkgQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQogCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGlteF9zY193ZHQuCiAKK2NvbmZpZyBJTVg3VUxQX1dEVAorCXRyaXN0YXRlICJJTVg3VUxQIFdhdGNoZG9nIgorCWRlcGVuZHMgb24gQVJDSF9NWEMgfHwgQ09NUElMRV9URVNUCisJc2VsZWN0IFdBVENIRE9HX0NPUkUKKwloZWxwCisJICBUaGlzIGlzIHRoZSBkcml2ZXIgZm9yIHRoZSBoYXJkd2FyZSB3YXRjaGRvZyBvbiB0aGUgRnJlZXNjYWxlCisJICBJTVg3VUxQIGFuZCBsYXRlciBwcm9jZXNzb3JzLiBJZiB5b3UgaGF2ZSBvbmUgb2YgdGhlc2UKKwkgIHByb2Nlc3NvcnMgYW5kIHdpc2ggdG8gaGF2ZSB3YXRjaGRvZyBzdXBwb3J0IGVuYWJsZWQsCisJICBzYXkgWSwgb3RoZXJ3aXNlIHNheSBOLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBpbXg3dWxwX3dkdC4KKwogY29uZmlnIFVYNTAwX1dBVENIRE9HCiAJdHJpc3RhdGUgIlNULUVyaWNzc29uIFV4NTAwIHdhdGNoZG9nIgogCWRlcGVuZHMgb24gTUZEX0RCODUwMF9QUkNNVQpAQCAtMTA0Niw4ICsxMDQzLDggQEAKIAlkZXBlbmRzIG9uIFg4NgogCWhlbHAKIAkgIFRoaXMgaXMgdGhlIGRyaXZlciBmb3IgdGhlIGhhcmR3YXJlIHdhdGNoZG9nIG9uIHRoZSBGaW50ZWsgRjcxODA4RSwKLQkgIEY3MTg2MkZHLCBGNzE4NjgsIEY3MTg2OSwgRjcxODgyRkcsIEY3MTg4OUZHLCBGODE4NjUgYW5kIEY4MTg2NgotCSAgU3VwZXIgSS9PIGNvbnRyb2xsZXJzLgorCSAgRjcxODYyRkcsIEY3MTg2OCwgRjcxODY5LCBGNzE4ODJGRywgRjcxODg5RkcsIEY4MTgwMywgRjgxODY1LCBhbmQKKwkgIEY4MTg2NiBTdXBlciBJL08gY29udHJvbGxlcnMuCiAKIAkgIFlvdSBjYW4gY29tcGlsZSB0aGlzIGRyaXZlciBkaXJlY3RseSBpbnRvIHRoZSBrZXJuZWwsIG9yIHVzZQogCSAgaXQgYXMgYSBtb2R1bGUuICBUaGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGY3MTgwOGVfd2R0LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9NYWtlZmlsZSBiL2RyaXZlcnMvd2F0Y2hkb2cvTWFrZWZpbGUKaW5kZXggN2NhYTkyMC4uMmVlMzUyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3dhdGNoZG9nL01ha2VmaWxlCkBAIC00OSw3ICs0OSw2IEBACiBvYmotJChDT05GSUdfOTc3X1dBVENIRE9HKSArPSB3ZHQ5Nzcubwogb2JqLSQoQ09ORklHX0ZUV0RUMDEwX1dBVENIRE9HKSArPSBmdHdkdDAxMF93ZHQubwogb2JqLSQoQ09ORklHX0lYUDRYWF9XQVRDSERPRykgKz0gaXhwNHh4X3dkdC5vCi1vYmotJChDT05GSUdfS1M4Njk1X1dBVENIRE9HKSArPSBrczg2OTVfd2R0Lm8KIG9iai0kKENPTkZJR19TM0MyNDEwX1dBVENIRE9HKSArPSBzM2MyNDEwX3dkdC5vCiBvYmotJChDT05GSUdfU0ExMTAwX1dBVENIRE9HKSArPSBzYTExMDBfd2R0Lm8KIG9iai0kKENPTkZJR19TQU1BNUQ0X1dBVENIRE9HKSArPSBzYW1hNWQ0X3dkdC5vCkBAIC02NCwxMSArNjMsMTEgQEAKIG9iai0kKENPTkZJR19DT0g5MDEzMjdfV0FUQ0hET0cpICs9IGNvaDkwMTMyN193ZHQubwogb2JqLSQoQ09ORklHX05QQ003WFhfV0FUQ0hET0cpICs9IG5wY21fd2R0Lm8KIG9iai0kKENPTkZJR19TVE1QM1hYWF9SVENfV0FUQ0hET0cpICs9IHN0bXAzeHh4X3J0Y193ZHQubwotb2JqLSQoQ09ORklHX05VQzkwMF9XQVRDSERPRykgKz0gbnVjOTAwX3dkdC5vCiBvYmotJChDT05GSUdfVFM0ODAwX1dBVENIRE9HKSArPSB0czQ4MDBfd2R0Lm8KIG9iai0kKENPTkZJR19UUzcyWFhfV0FUQ0hET0cpICs9IHRzNzJ4eF93ZHQubwogb2JqLSQoQ09ORklHX0lNWDJfV0RUKSArPSBpbXgyX3dkdC5vCiBvYmotJChDT05GSUdfSU1YX1NDX1dEVCkgKz0gaW14X3NjX3dkdC5vCitvYmotJChDT05GSUdfSU1YN1VMUF9XRFQpICs9IGlteDd1bHBfd2R0Lm8KIG9iai0kKENPTkZJR19VWDUwMF9XQVRDSERPRykgKz0gdXg1MDBfd2R0Lm8KIG9iai0kKENPTkZJR19SRVRVX1dBVENIRE9HKSArPSByZXR1X3dkdC5vCiBvYmotJChDT05GSUdfQkNNMjgzNV9XRFQpICs9IGJjbTI4MzVfd2R0Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvd2F0Y2hkb2cvYXNwZWVkX3dkdC5jIGIvZHJpdmVycy93YXRjaGRvZy9hc3BlZWRfd2R0LmMKaW5kZXggY2M3MTg2MS4uNGVjMDkwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9hc3BlZWRfd2R0LmMKKysrIGIvZHJpdmVycy93YXRjaGRvZy9hc3BlZWRfd2R0LmMKQEAgLTM0LDYgKzM0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhc3BlZWRfd2R0X2NvbmZpZyBhc3QyNTAwX2NvbmZpZyA9IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFzcGVlZF93ZHRfb2ZfdGFibGVbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gImFzcGVlZCxhc3QyNDAwLXdkdCIsIC5kYXRhID0gJmFzdDI0MDBfY29uZmlnIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjUwMC13ZHQiLCAuZGF0YSA9ICZhc3QyNTAwX2NvbmZpZyB9LAorCXsgLmNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI2MDAtd2R0IiwgLmRhdGEgPSAmYXN0MjUwMF9jb25maWcgfSwKIAl7IH0sCiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYXNwZWVkX3dkdF9vZl90YWJsZSk7CkBAIC01Myw2ICs1NCw4IEBAIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFzcGVlZF93ZHRfb2ZfdGFibGUpOwogI2RlZmluZSAgIFdEVF9DVFJMX0VOQUJMRQkJQklUKDApCiAjZGVmaW5lIFdEVF9USU1FT1VUX1NUQVRVUwkweDEwCiAjZGVmaW5lICAgV0RUX1RJTUVPVVRfU1RBVFVTX0JPT1RfU0VDT05EQVJZCUJJVCgxKQorI2RlZmluZSBXRFRfQ0xFQVJfVElNRU9VVF9TVEFUVVMJMHgxNAorI2RlZmluZSAgIFdEVF9DTEVBUl9USU1FT1VUX0FORF9CT09UX0NPREVfU0VMRUNUSU9OCUJJVCgwKQogCiAvKgogICogV0RUX1JFU0VUX1dJRFRIIGNvbnRyb2xzIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGV4dGVybmFsIHB1bHNlIChpZgpAQCAtMTY1LDYgKzE2OCw2MCBAQCBzdGF0aWMgaW50IGFzcGVlZF93ZHRfcmVzdGFydChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQsCiAJcmV0dXJuIDA7CiB9CiAKKy8qIGFjY2Vzc19jczAgc2hvd3MgaWYgY3MwIGlzIGFjY2Vzc2libGUsIGhlbmNlIHRoZSByZXZlcnRlZCBiaXQgKi8KK3N0YXRpYyBzc2l6ZV90IGFjY2Vzc19jczBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkgICAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgYXNwZWVkX3dkdCAqd2R0ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdTMyIHN0YXR1cyA9IHJlYWRsKHdkdC0+YmFzZSArIFdEVF9USU1FT1VUX1NUQVRVUyk7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIldVxuIiwKKwkJICAgICAgIShzdGF0dXMgJiBXRFRfVElNRU9VVF9TVEFUVVNfQk9PVF9TRUNPTkRBUlkpKTsKK30KKworc3RhdGljIHNzaXplX3QgYWNjZXNzX2NzMF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNvbnN0IGNoYXIgKmJ1ZiwKKwkJCQlzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgYXNwZWVkX3dkdCAqd2R0ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdW5zaWduZWQgbG9uZyB2YWw7CisKKwlpZiAoa3N0cnRvdWwoYnVmLCAxMCwgJnZhbCkpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHZhbCkKKwkJd3JpdGVsKFdEVF9DTEVBUl9USU1FT1VUX0FORF9CT09UX0NPREVfU0VMRUNUSU9OLAorCQkgICAgICAgd2R0LT5iYXNlICsgV0RUX0NMRUFSX1RJTUVPVVRfU1RBVFVTKTsKKworCXJldHVybiBzaXplOworfQorCisvKgorICogVGhpcyBhdHRyaWJ1dGUgZXhpc3RzIG9ubHkgaWYgdGhlIHN5c3RlbSBoYXMgYm9vdGVkIGZyb20gdGhlIGFsdGVybmF0ZQorICogZmxhc2ggd2l0aCAnYWx0LWJvb3QnIG9wdGlvbi4KKyAqCisgKiBBdCBhbHRlcm5hdGUgZmxhc2ggdGhlICdhY2Nlc3NfY3MwJyBzeXNmcyBub2RlIHByb3ZpZGVzOgorICogICBhc3QyNDAwOiBhIHdheSB0byBnZXQgYWNjZXNzIHRvIHRoZSBwcmltYXJ5IFNQSSBmbGFzaCBjaGlwIGF0IENTMAorICogICAgICAgICAgICBhZnRlciBib290aW5nIGZyb20gdGhlIGFsdGVybmF0ZSBjaGlwIGF0IENTMS4KKyAqICAgYXN0MjUwMDogYSB3YXkgdG8gcmVzdG9yZSB0aGUgbm9ybWFsIGFkZHJlc3MgbWFwcGluZyBmcm9tCisgKiAgICAgICAgICAgIChDUzAtPkNTMSwgQ1MxLT5DUzApIHRvIChDUzAtPkNTMCwgQ1MxLT5DUzEpLgorICoKKyAqIENsZWFyaW5nIHRoZSBib290IGNvZGUgc2VsZWN0aW9uIGFuZCB0aW1lb3V0IGNvdW50ZXIgYWxzbyByZXNldHMgdG8gdGhlCisgKiBpbml0aWFsIHN0YXRlIHRoZSBjaGlwIHNlbGVjdCBsaW5lIG1hcHBpbmcuIFdoZW4gdGhlIFNvQyBpcyBpbiBub3JtYWwKKyAqIG1hcHBpbmcgc3RhdGUgKGkuZS4gYm9vdGVkIGZyb20gQ1MwKSwgY2xlYXJpbmcgdGhvc2UgYml0cyBkb2VzIG5vdGhpbmcgZm9yCisgKiBib3RoIHZlcnNpb25zIG9mIHRoZSBTb0MuIEZvciBhbHRlcm5hdGUgYm9vdCBtb2RlIChib290ZWQgZnJvbSBDUzEgZHVlIHRvCisgKiB3ZHQyIGV4cGlyYXRpb24pIHRoZSBiZWhhdmlvciBkaWZmZXJzIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAqCisgKiBUaGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB3aXRoIHdkdDIgKHdhdGNoZG9nMSkgb25seS4KKyAqLworc3RhdGljIERFVklDRV9BVFRSX1JXKGFjY2Vzc19jczApOworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYnN3aXRjaF9hdHRyc1tdID0geworCSZkZXZfYXR0cl9hY2Nlc3NfY3MwLmF0dHIsCisJTlVMTAorfTsKK0FUVFJJQlVURV9HUk9VUFMoYnN3aXRjaCk7CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2F0Y2hkb2dfb3BzIGFzcGVlZF93ZHRfb3BzID0gewogCS5zdGFydAkJPSBhc3BlZWRfd2R0X3N0YXJ0LAogCS5zdG9wCQk9IGFzcGVlZF93ZHRfc3RvcCwKQEAgLTI1OSw3ICszMTYsOCBAQCBzdGF0aWMgaW50IGFzcGVlZF93ZHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJc2V0X2JpdChXRE9HX0hXX1JVTk5JTkcsICZ3ZHQtPndkZC5zdGF0dXMpOwogCX0KIAotCWlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgImFzcGVlZCxhc3QyNTAwLXdkdCIpKSB7CisJaWYgKChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgImFzcGVlZCxhc3QyNTAwLXdkdCIpKSB8fAorCQkob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJhc3BlZWQsYXN0MjYwMC13ZHQiKSkpIHsKIAkJdTMyIHJlZyA9IHJlYWRsKHdkdC0+YmFzZSArIFdEVF9SRVNFVF9XSURUSCk7CiAKIAkJcmVnICY9IGNvbmZpZy0+ZXh0X3B1bHNlX3dpZHRoX21hc2s7CkBAIC0zMDYsOSArMzY0LDE2IEBAIHN0YXRpYyBpbnQgYXNwZWVkX3dkdF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCX0KIAogCXN0YXR1cyA9IHJlYWRsKHdkdC0+YmFzZSArIFdEVF9USU1FT1VUX1NUQVRVUyk7Ci0JaWYgKHN0YXR1cyAmIFdEVF9USU1FT1VUX1NUQVRVU19CT09UX1NFQ09OREFSWSkKKwlpZiAoc3RhdHVzICYgV0RUX1RJTUVPVVRfU1RBVFVTX0JPT1RfU0VDT05EQVJZKSB7CiAJCXdkdC0+d2RkLmJvb3RzdGF0dXMgPSBXRElPRl9DQVJEUkVTRVQ7CiAKKwkJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAiYXNwZWVkLGFzdDI0MDAtd2R0IikgfHwKKwkJICAgIG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAiYXNwZWVkLGFzdDI1MDAtd2R0IikpCisJCQl3ZHQtPndkZC5ncm91cHMgPSBic3dpdGNoX2dyb3VwczsKKwl9CisKKwlkZXZfc2V0X2RydmRhdGEoZGV2LCB3ZHQpOworCiAJcmV0dXJuIGRldm1fd2F0Y2hkb2dfcmVnaXN0ZXJfZGV2aWNlKGRldiwgJndkdC0+d2RkKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9hdGg3OV93ZHQuYyBiL2RyaXZlcnMvd2F0Y2hkb2cvYXRoNzlfd2R0LmMKaW5kZXggMmUwOTk4MS4uNzVkZTY2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9hdGg3OV93ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL2F0aDc5X3dkdC5jCkBAIC0zMDIsNyArMzAyLDcgQEAgc3RhdGljIGludCBhdGg3OV93ZHRfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGF0aDk3X3dkdF9zaHV0ZG93bihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIHZvaWQgYXRoNzlfd2R0X3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJYXRoNzlfd2R0X2Rpc2FibGUoKTsKIH0KQEAgLTMxOCw3ICszMTgsNyBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhdGg3OV93ZHRfbWF0Y2gpOwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXRoNzlfd2R0X2RyaXZlciA9IHsKIAkucHJvYmUJCT0gYXRoNzlfd2R0X3Byb2JlLAogCS5yZW1vdmUJCT0gYXRoNzlfd2R0X3JlbW92ZSwKLQkuc2h1dGRvd24JPSBhdGg5N193ZHRfc2h1dGRvd24sCisJLnNodXRkb3duCT0gYXRoNzlfd2R0X3NodXRkb3duLAogCS5kcml2ZXIJCT0gewogCQkubmFtZQk9IERSSVZFUl9OQU1FLAogCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9tYXRjaF9wdHIoYXRoNzlfd2R0X21hdGNoKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvd2F0Y2hkb2cvY3B3ZC5jIGIvZHJpdmVycy93YXRjaGRvZy9jcHdkLmMKaW5kZXggYjk3M2IzMS4uOTM5M2JlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9jcHdkLmMKKysrIGIvZHJpdmVycy93YXRjaGRvZy9jcHdkLmMKQEAgLTQ3MywyOSArNDczLDYgQEAgc3RhdGljIGxvbmcgY3B3ZF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBsb25nIGNwd2RfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBhcmcpCi17Ci0JaW50IHJ2YWwgPSAtRU5PSU9DVExDTUQ7Ci0KLQlzd2l0Y2ggKGNtZCkgewotCS8qIHNvbGFyaXMgaW9jdGxzIGFyZSBzcGVjaWZpYyB0byB0aGlzIGRyaXZlciAqLwotCWNhc2UgV0lPQ1NUQVJUOgotCWNhc2UgV0lPQ1NUT1A6Ci0JY2FzZSBXSU9DR1NUQVQ6Ci0JCW11dGV4X2xvY2soJmNwd2RfbXV0ZXgpOwotCQlydmFsID0gY3B3ZF9pb2N0bChmaWxlLCBjbWQsIGFyZyk7Ci0JCW11dGV4X3VubG9jaygmY3B3ZF9tdXRleCk7Ci0JCWJyZWFrOwotCi0JLyogZXZlcnl0aGluZyBlbHNlIGlzIGhhbmRsZWQgYnkgdGhlIGdlbmVyaWMgY29tcGF0IGxheWVyICovCi0JZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfQotCi0JcmV0dXJuIHJ2YWw7Ci19Ci0KIHN0YXRpYyBzc2l6ZV90IGNwd2Rfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJCQkgIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQogewpAQCAtNTIwLDcgKzQ5Nyw3IEBAIHN0YXRpYyBzc2l6ZV90IGNwd2RfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZmZlciwKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGNwd2RfZm9wcyA9IHsKIAkub3duZXIgPQkJVEhJU19NT0RVTEUsCiAJLnVubG9ja2VkX2lvY3RsID0JY3B3ZF9pb2N0bCwKLQkuY29tcGF0X2lvY3RsID0JCWNwd2RfY29tcGF0X2lvY3RsLAorCS5jb21wYXRfaW9jdGwgPQkJY29tcGF0X3B0cl9pb2N0bCwKIAkub3BlbiA9CQkJY3B3ZF9vcGVuLAogCS53cml0ZSA9CQljcHdkX3dyaXRlLAogCS5yZWFkID0JCQljcHdkX3JlYWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL2RpYWcyODhfd2R0LmMgYi9kcml2ZXJzL3dhdGNoZG9nL2RpYWcyODhfd2R0LmMKaW5kZXggMTgxNDQwYi4uYWFmYzhkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9kaWFnMjg4X3dkdC5jCisrKyBiL2RyaXZlcnMvd2F0Y2hkb2cvZGlhZzI4OF93ZHQuYwpAQCAtMjYsMTMgKzI2LDExIEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3dhdGNoZG9nLmg+CiAjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgogI2luY2x1ZGUgPGFzbS9lYmNkaWMuaD4KICNpbmNsdWRlIDxhc20vZGlhZy5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0jaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogCiAjZGVmaW5lIE1BWF9DTURMRU4gMjQwCiAjZGVmaW5lIERFRkFVTFRfQ01EICJTWVNURU0gUkVTVEFSVCIKQEAgLTcwLDcgKzY4LDYgQEAgTU9EVUxFX1BBUk1fREVTQyhjb25jZWFsLCAiRW5hYmxlIHRoZSBDT05DRUFMIENQIG9wdGlvbiB3aGlsZSB0aGUgd2F0Y2hkb2cgaXMgYWMKIG1vZHVsZV9wYXJhbV9uYW1lZChub3dheW91dCwgbm93YXlvdXRfaW5mbywgYm9vbCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKG5vd2F5b3V0LCAiV2F0Y2hkb2cgY2Fubm90IGJlIHN0b3BwZWQgb25jZSBzdGFydGVkIChkZWZhdWx0ID0gQ09ORklHX1dBVENIRE9HX05PV0FZT1VUKSIpOwogCi1NT0RVTEVfQUxJQVNfTUlTQ0RFVihXQVRDSERPR19NSU5PUik7CiBNT0RVTEVfQUxJQVMoInZtd2F0Y2hkb2ciKTsKIAogc3RhdGljIGludCBfX2RpYWcyODgodW5zaWduZWQgaW50IGZ1bmMsIHVuc2lnbmVkIGludCB0aW1lb3V0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9mNzE4MDhlX3dkdC5jIGIvZHJpdmVycy93YXRjaGRvZy9mNzE4MDhlX3dkdC5jCmluZGV4IGZmNWNmMWIuLmU0NjEwNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvZjcxODA4ZV93ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL2Y3MTgwOGVfd2R0LmMKQEAgLTMxLDggKzMxLDEwIEBACiAjZGVmaW5lIFNJT19SRUdfREVWSUQJCTB4MjAJLyogRGV2aWNlIElEICgyIGJ5dGVzKSAqLwogI2RlZmluZSBTSU9fUkVHX0RFVlJFVgkJMHgyMgkvKiBEZXZpY2UgcmV2aXNpb24gKi8KICNkZWZpbmUgU0lPX1JFR19NQU5JRAkJMHgyMwkvKiBGaW50ZWsgSUQgKDIgYnl0ZXMpICovCisjZGVmaW5lIFNJT19SRUdfQ0xPQ0tfU0VMCTB4MjYJLyogQ2xvY2sgc2VsZWN0ICovCiAjZGVmaW5lIFNJT19SRUdfUk9NX0FERFJfU0VMCTB4MjcJLyogUk9NIGFkZHJlc3Mgc2VsZWN0ICovCiAjZGVmaW5lIFNJT19GODE4NjZfUkVHX1BPUlRfU0VMCTB4MjcJLyogRjgxODY2IE11bHRpLUZ1bmN0aW9uIFJlZ2lzdGVyICovCisjZGVmaW5lIFNJT19SRUdfVFNJX0xFVkVMX1NFTAkweDI4CS8qIFRTSSBMZXZlbCBzZWxlY3QgKi8KICNkZWZpbmUgU0lPX1JFR19NRlVOQ1QxCQkweDI5CS8qIE11bHRpIGZ1bmN0aW9uIHNlbGVjdCAxICovCiAjZGVmaW5lIFNJT19SRUdfTUZVTkNUMgkJMHgyYQkvKiBNdWx0aSBmdW5jdGlvbiBzZWxlY3QgMiAqLwogI2RlZmluZSBTSU9fUkVHX01GVU5DVDMJCTB4MmIJLyogTXVsdGkgZnVuY3Rpb24gc2VsZWN0IDMgKi8KQEAgLTQ5LDYgKzUxLDcgQEAKICNkZWZpbmUgU0lPX0Y3MTg2OUFfSUQJCTB4MTAwNwkvKiBDaGlwc2V0IElEICovCiAjZGVmaW5lIFNJT19GNzE4ODJfSUQJCTB4MDU0MQkvKiBDaGlwc2V0IElEICovCiAjZGVmaW5lIFNJT19GNzE4ODlfSUQJCTB4MDcyMwkvKiBDaGlwc2V0IElEICovCisjZGVmaW5lIFNJT19GODE4MDNfSUQJCTB4MTIxMAkvKiBDaGlwc2V0IElEICovCiAjZGVmaW5lIFNJT19GODE4NjVfSUQJCTB4MDcwNAkvKiBDaGlwc2V0IElEICovCiAjZGVmaW5lIFNJT19GODE4NjZfSUQJCTB4MTAxMAkvKiBDaGlwc2V0IElEICovCiAKQEAgLTEwOCw3ICsxMTEsNyBAQCBNT0RVTEVfUEFSTV9ERVNDKHN0YXJ0X3dpdGh0aW1lb3V0LCAiU3RhcnQgd2F0Y2hkb2cgdGltZXIgb24gbW9kdWxlIGxvYWQgd2l0aCIKIAkiIGdpdmVuIGluaXRpYWwgdGltZW91dC4gWmVybyAoZGVmYXVsdCkgZGlzYWJsZXMgdGhpcyBmZWF0dXJlLiIpOwogCiBlbnVtIGNoaXBzIHsgZjcxODA4ZmcsIGY3MTg1OGZnLCBmNzE4NjJmZywgZjcxODY4LCBmNzE4NjksIGY3MTg4MmZnLCBmNzE4ODlmZywKLQkgICAgIGY4MTg2NSwgZjgxODY2fTsKKwkgICAgIGY4MTgwMywgZjgxODY1LCBmODE4NjZ9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqZjcxODA4ZV9uYW1lc1tdID0gewogCSJmNzE4MDhmZyIsCkBAIC0xMTgsNiArMTIxLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmY3MTgwOGVfbmFtZXNbXSA9IHsKIAkiZjcxODY5IiwKIAkiZjcxODgyZmciLAogCSJmNzE4ODlmZyIsCisJImY4MTgwMyIsCiAJImY4MTg2NSIsCiAJImY4MTg2NiIsCiB9OwpAQCAtMzcwLDYgKzM3NCwxNCBAQCBzdGF0aWMgaW50IHdhdGNoZG9nX3N0YXJ0KHZvaWQpCiAJCQlzdXBlcmlvX2luYih3YXRjaGRvZy5zaW9hZGRyLCBTSU9fUkVHX01GVU5DVDMpICYgMHhjZik7CiAJCWJyZWFrOwogCisJY2FzZSBmODE4MDM6CisJCS8qIEVuYWJsZSBUU0kgTGV2ZWwgcmVnaXN0ZXIgYmFuayAqLworCQlzdXBlcmlvX2NsZWFyX2JpdCh3YXRjaGRvZy5zaW9hZGRyLCBTSU9fUkVHX0NMT0NLX1NFTCwgMyk7CisJCS8qIFNldCBwaW4gMjcgdG8gV0RUUlNUIyAqLworCQlzdXBlcmlvX291dGIod2F0Y2hkb2cuc2lvYWRkciwgU0lPX1JFR19UU0lfTEVWRUxfU0VMLCAweDVmICYKKwkJCXN1cGVyaW9faW5iKHdhdGNoZG9nLnNpb2FkZHIsIFNJT19SRUdfVFNJX0xFVkVMX1NFTCkpOworCQlicmVhazsKKwogCWNhc2UgZjgxODY1OgogCQkvKiBTZXQgcGluIDcwIHRvIFdEVFJTVCMgKi8KIAkJc3VwZXJpb19jbGVhcl9iaXQod2F0Y2hkb2cuc2lvYWRkciwgU0lPX1JFR19NRlVOQ1QzLCA1KTsKQEAgLTgwOSw2ICs4MjEsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBmNzE4MDhlX2ZpbmQoaW50IHNpb2FkZHIpCiAJCS8qIENvbmZpcm1lZCAoYnkgZGF0YXNoZWV0KSBub3QgdG8gaGF2ZSBhIHdhdGNoZG9nLiAqLwogCQllcnIgPSAtRU5PREVWOwogCQlnb3RvIGV4aXQ7CisJY2FzZSBTSU9fRjgxODAzX0lEOgorCQl3YXRjaGRvZy50eXBlID0gZjgxODAzOworCQlicmVhazsKIAljYXNlIFNJT19GODE4NjVfSUQ6CiAJCXdhdGNoZG9nLnR5cGUgPSBmODE4NjU7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9pVENPX3dkdC5jIGIvZHJpdmVycy93YXRjaGRvZy9pVENPX3dkdC5jCmluZGV4IGM1NTlmNzAuLjE1NjM2MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvaVRDT193ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL2lUQ09fd2R0LmMKQEAgLTQ4LDYgKzQ4LDcgQEAKIAogLyogSW5jbHVkZXMgKi8KICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CQkJLyogRm9yIEFDUEkgc3VwcG9ydCAqLworI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4JCQkvKiBGb3IgQklUKCkgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4JCS8qIEZvciBtb2R1bGUgc3BlY2lmaWMgaXRlbXMgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgkJLyogRm9yIG5ldyBtb2R1bGVwYXJhbSdzICovCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4JCS8qIEZvciBzdGFuZGFyZCB0eXBlcyAobGlrZSBzaXplX3QpICovCkBAIC0yMTUsNiArMjE2LDIzIEBAIHN0YXRpYyBpbnQgdXBkYXRlX25vX3JlYm9vdF9iaXRfbWVtKHZvaWQgKnByaXYsIGJvb2wgc2V0KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHVwZGF0ZV9ub19yZWJvb3RfYml0X2NudCh2b2lkICpwcml2LCBib29sIHNldCkKK3sKKwlzdHJ1Y3QgaVRDT193ZHRfcHJpdmF0ZSAqcCA9IHByaXY7CisJdTE2IHZhbCwgbmV3dmFsOworCisJdmFsID0gaW53KFRDTzFfQ05UKHApKTsKKwlpZiAoc2V0KQorCQl2YWwgfD0gQklUKDApOworCWVsc2UKKwkJdmFsICY9IH5CSVQoMCk7CisJb3V0dyh2YWwsIFRDTzFfQ05UKHApKTsKKwluZXd2YWwgPSBpbncoVENPMV9DTlQocCkpOworCisJLyogbWFrZSBzdXJlIHRoZSB1cGRhdGUgaXMgc3VjY2Vzc2Z1bCAqLworCXJldHVybiB2YWwgIT0gbmV3dmFsID8gLUVJTyA6IDA7Cit9CisKIHN0YXRpYyB2b2lkIGlUQ09fd2R0X25vX3JlYm9vdF9iaXRfc2V0dXAoc3RydWN0IGlUQ09fd2R0X3ByaXZhdGUgKnAsCiAJCXN0cnVjdCBpdGNvX3dkdF9wbGF0Zm9ybV9kYXRhICpwZGF0YSkKIHsKQEAgLTIyNCw3ICsyNDIsOSBAQCBzdGF0aWMgdm9pZCBpVENPX3dkdF9ub19yZWJvb3RfYml0X3NldHVwKHN0cnVjdCBpVENPX3dkdF9wcml2YXRlICpwLAogCQlyZXR1cm47CiAJfQogCi0JaWYgKHAtPmlUQ09fdmVyc2lvbiA+PSAyKQorCWlmIChwLT5pVENPX3ZlcnNpb24gPj0gNikKKwkJcC0+dXBkYXRlX25vX3JlYm9vdF9iaXQgPSB1cGRhdGVfbm9fcmVib290X2JpdF9jbnQ7CisJZWxzZSBpZiAocC0+aVRDT192ZXJzaW9uID49IDIpCiAJCXAtPnVwZGF0ZV9ub19yZWJvb3RfYml0ID0gdXBkYXRlX25vX3JlYm9vdF9iaXRfbWVtOwogCWVsc2UgaWYgKHAtPmlUQ09fdmVyc2lvbiA9PSAxKQogCQlwLT51cGRhdGVfbm9fcmVib290X2JpdCA9IHVwZGF0ZV9ub19yZWJvb3RfYml0X3BjaTsKQEAgLTQ1Miw3ICs0NzIsOCBAQCBzdGF0aWMgaW50IGlUQ09fd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJICogR2V0IHRoZSBNZW1vcnktTWFwcGVkIEdDUyBvciBQTUMgcmVnaXN0ZXIsIHdlIG5lZWQgaXQgZm9yIHRoZQogCSAqIE5PX1JFQk9PVCBmbGFnIChUQ08gdjIgYW5kIHYzKS4KIAkgKi8KLQlpZiAocC0+aVRDT192ZXJzaW9uID49IDIgJiYgIXBkYXRhLT51cGRhdGVfbm9fcmVib290X2JpdCkgeworCWlmIChwLT5pVENPX3ZlcnNpb24gPj0gMiAmJiBwLT5pVENPX3ZlcnNpb24gPCA2ICYmCisJICAgICFwZGF0YS0+dXBkYXRlX25vX3JlYm9vdF9iaXQpIHsKIAkJcC0+Z2NzX3BtY19yZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwKIAkJCQkJCSAgICAgICBJT1JFU09VUkNFX01FTSwKIAkJCQkJCSAgICAgICBJQ0hfUkVTX01FTV9HQ1NfUE1DKTsKQEAgLTUwMiw2ICs1MjMsNyBAQCBzdGF0aWMgaW50IGlUQ09fd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkvKiBDbGVhciBvdXQgdGhlIChwcm9iYWJseSBvbGQpIHN0YXR1cyAqLwogCXN3aXRjaCAocC0+aVRDT192ZXJzaW9uKSB7CisJY2FzZSA2OgogCWNhc2UgNToKIAljYXNlIDQ6CiAJCW91dHcoMHgwMDA4LCBUQ08xX1NUUyhwKSk7IC8qIENsZWFyIHRoZSBUaW1lIE91dCBTdGF0dXMgYml0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL2lteDJfd2R0LmMgYi9kcml2ZXJzL3dhdGNoZG9nL2lteDJfd2R0LmMKaW5kZXggMzJhZjM5Ny4uOGQwMTlhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9pbXgyX3dkdC5jCisrKyBiL2RyaXZlcnMvd2F0Y2hkb2cvaW14Ml93ZHQuYwpAQCAtNTUsNyArNTUsNyBAQAogCiAjZGVmaW5lIElNWDJfV0RUX1dNQ1IJCTB4MDgJCS8qIE1pc2MgUmVnaXN0ZXIgKi8KIAotI2RlZmluZSBJTVgyX1dEVF9NQVhfVElNRQkxMjgKKyNkZWZpbmUgSU1YMl9XRFRfTUFYX1RJTUUJMTI4VQogI2RlZmluZSBJTVgyX1dEVF9ERUZBVUxUX1RJTUUJNjAJCS8qIGluIHNlY29uZHMgKi8KIAogI2RlZmluZSBXRE9HX1NFQ19UT19DT1VOVChzKQkoKHMgKiAyIC0gMSkgPDwgOCkKQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgaW50IGlteDJfd2R0X3NldF90aW1lb3V0KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkb2csCiB7CiAJdW5zaWduZWQgaW50IGFjdHVhbDsKIAotCWFjdHVhbCA9IG1pbihuZXdfdGltZW91dCwgd2RvZy0+bWF4X2h3X2hlYXJ0YmVhdF9tcyAqIDEwMDApOworCWFjdHVhbCA9IG1pbihuZXdfdGltZW91dCwgSU1YMl9XRFRfTUFYX1RJTUUpOwogCV9faW14Ml93ZHRfc2V0X3RpbWVvdXQod2RvZywgYWN0dWFsKTsKIAl3ZG9nLT50aW1lb3V0ID0gbmV3X3RpbWVvdXQ7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL2lteDd1bHBfd2R0LmMgYi9kcml2ZXJzL3dhdGNoZG9nL2lteDd1bHBfd2R0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNlNTEwMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvd2F0Y2hkb2cvaW14N3VscF93ZHQuYwpAQCAtMCwwICsxLDI0MyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBDb3B5cmlnaHQgMjAxOSBOWFAuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CisjaW5jbHVkZSA8bGludXgvd2F0Y2hkb2cuaD4KKworI2RlZmluZSBXRE9HX0NTCQkJMHgwCisjZGVmaW5lIFdET0dfQ1NfQ01EMzJFTgkJQklUKDEzKQorI2RlZmluZSBXRE9HX0NTX1VMSwkJQklUKDExKQorI2RlZmluZSBXRE9HX0NTX1JDUwkJQklUKDEwKQorI2RlZmluZSBXRE9HX0NTX0VOCQlCSVQoNykKKyNkZWZpbmUgV0RPR19DU19VUERBVEUJCUJJVCg1KQorCisjZGVmaW5lIFdET0dfQ05UCTB4NAorI2RlZmluZSBXRE9HX1RPVkFMCTB4OAorCisjZGVmaW5lIFJFRlJFU0hfU0VRMAkweEE2MDIKKyNkZWZpbmUgUkVGUkVTSF9TRVExCTB4QjQ4MAorI2RlZmluZSBSRUZSRVNICQkoKFJFRlJFU0hfU0VRMSA8PCAxNikgfCBSRUZSRVNIX1NFUTApCisKKyNkZWZpbmUgVU5MT0NLX1NFUTAJMHhDNTIwCisjZGVmaW5lIFVOTE9DS19TRVExCTB4RDkyOAorI2RlZmluZSBVTkxPQ0sJCSgoVU5MT0NLX1NFUTEgPDwgMTYpIHwgVU5MT0NLX1NFUTApCisKKyNkZWZpbmUgREVGQVVMVF9USU1FT1VUCTYwCisjZGVmaW5lIE1BWF9USU1FT1VUCTEyOAorI2RlZmluZSBXRE9HX0NMT0NLX1JBVEUJMTAwMAorCitzdGF0aWMgYm9vbCBub3dheW91dCA9IFdBVENIRE9HX05PV0FZT1VUOworbW9kdWxlX3BhcmFtKG5vd2F5b3V0LCBib29sLCAwMDAwKTsKK01PRFVMRV9QQVJNX0RFU0Mobm93YXlvdXQsICJXYXRjaGRvZyBjYW5ub3QgYmUgc3RvcHBlZCBvbmNlIHN0YXJ0ZWQgKGRlZmF1bHQ9IgorCQkgX19NT0RVTEVfU1RSSU5HKFdBVENIRE9HX05PV0FZT1VUKSAiKSIpOworCitzdHJ1Y3QgaW14N3VscF93ZHRfZGV2aWNlIHsKKwlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgcmVzdGFydF9oYW5kbGVyOworCXN0cnVjdCB3YXRjaGRvZ19kZXZpY2Ugd2RkOworCXZvaWQgX19pb21lbSAqYmFzZTsKKwlzdHJ1Y3QgY2xrICpjbGs7Cit9OworCitzdGF0aWMgaW5saW5lIHZvaWQgaW14N3VscF93ZHRfZW5hYmxlKHZvaWQgX19pb21lbSAqYmFzZSwgYm9vbCBlbmFibGUpCit7CisJdTMyIHZhbCA9IHJlYWRsKGJhc2UgKyBXRE9HX0NTKTsKKworCXdyaXRlbChVTkxPQ0ssIGJhc2UgKyBXRE9HX0NOVCk7CisJaWYgKGVuYWJsZSkKKwkJd3JpdGVsKHZhbCB8IFdET0dfQ1NfRU4sIGJhc2UgKyBXRE9HX0NTKTsKKwllbHNlCisJCXdyaXRlbCh2YWwgJiB+V0RPR19DU19FTiwgYmFzZSArIFdET0dfQ1MpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaW14N3VscF93ZHRfaXNfZW5hYmxlZCh2b2lkIF9faW9tZW0gKmJhc2UpCit7CisJdTMyIHZhbCA9IHJlYWRsKGJhc2UgKyBXRE9HX0NTKTsKKworCXJldHVybiB2YWwgJiBXRE9HX0NTX0VOOworfQorCitzdGF0aWMgaW50IGlteDd1bHBfd2R0X3Bpbmcoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RvZykKK3sKKwlzdHJ1Y3QgaW14N3VscF93ZHRfZGV2aWNlICp3ZHQgPSB3YXRjaGRvZ19nZXRfZHJ2ZGF0YSh3ZG9nKTsKKworCXdyaXRlbChSRUZSRVNILCB3ZHQtPmJhc2UgKyBXRE9HX0NOVCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbXg3dWxwX3dkdF9zdGFydChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZG9nKQoreworCXN0cnVjdCBpbXg3dWxwX3dkdF9kZXZpY2UgKndkdCA9IHdhdGNoZG9nX2dldF9kcnZkYXRhKHdkb2cpOworCisJaW14N3VscF93ZHRfZW5hYmxlKHdkdC0+YmFzZSwgdHJ1ZSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbXg3dWxwX3dkdF9zdG9wKHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkb2cpCit7CisJc3RydWN0IGlteDd1bHBfd2R0X2RldmljZSAqd2R0ID0gd2F0Y2hkb2dfZ2V0X2RydmRhdGEod2RvZyk7CisKKwlpbXg3dWxwX3dkdF9lbmFibGUod2R0LT5iYXNlLCBmYWxzZSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbXg3dWxwX3dkdF9zZXRfdGltZW91dChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZG9nLAorCQkJCSAgIHVuc2lnbmVkIGludCB0aW1lb3V0KQoreworCXN0cnVjdCBpbXg3dWxwX3dkdF9kZXZpY2UgKndkdCA9IHdhdGNoZG9nX2dldF9kcnZkYXRhKHdkb2cpOworCXUzMiB2YWwgPSBXRE9HX0NMT0NLX1JBVEUgKiB0aW1lb3V0OworCisJd3JpdGVsKFVOTE9DSywgd2R0LT5iYXNlICsgV0RPR19DTlQpOworCXdyaXRlbCh2YWwsIHdkdC0+YmFzZSArIFdET0dfVE9WQUwpOworCisJd2RvZy0+dGltZW91dCA9IHRpbWVvdXQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB3YXRjaGRvZ19vcHMgaW14N3VscF93ZHRfb3BzID0geworCS5vd25lciA9IFRISVNfTU9EVUxFLAorCS5zdGFydCA9IGlteDd1bHBfd2R0X3N0YXJ0LAorCS5zdG9wICA9IGlteDd1bHBfd2R0X3N0b3AsCisJLnBpbmcgID0gaW14N3VscF93ZHRfcGluZywKKwkuc2V0X3RpbWVvdXQgPSBpbXg3dWxwX3dkdF9zZXRfdGltZW91dCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgd2F0Y2hkb2dfaW5mbyBpbXg3dWxwX3dkdF9pbmZvID0geworCS5pZGVudGl0eSA9ICJpLk1YN1VMUCB3YXRjaGRvZyB0aW1lciIsCisJLm9wdGlvbnMgID0gV0RJT0ZfU0VUVElNRU9VVCB8IFdESU9GX0tFRVBBTElWRVBJTkcgfAorCQkgICAgV0RJT0ZfTUFHSUNDTE9TRSwKK307CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbXg3dWxwX3dkdF9pbml0KHZvaWQgX19pb21lbSAqYmFzZSwgdW5zaWduZWQgaW50IHRpbWVvdXQpCit7CisJdTMyIHZhbDsKKworCS8qIHVubG9jayB0aGUgd2RvZyBmb3IgcmVjb25maWd1cmF0aW9uICovCisJd3JpdGVsX3JlbGF4ZWQoVU5MT0NLX1NFUTAsIGJhc2UgKyBXRE9HX0NOVCk7CisJd3JpdGVsX3JlbGF4ZWQoVU5MT0NLX1NFUTEsIGJhc2UgKyBXRE9HX0NOVCk7CisKKwkvKiBzZXQgYW4gaW5pdGlhbCB0aW1lb3V0IHZhbHVlIGluIFRPVkFMICovCisJd3JpdGVsKHRpbWVvdXQsIGJhc2UgKyBXRE9HX1RPVkFMKTsKKwkvKiBlbmFibGUgMzJiaXQgY29tbWFuZCBzZXF1ZW5jZSBhbmQgcmVjb25maWd1cmUgKi8KKwl2YWwgPSBCSVQoMTMpIHwgQklUKDgpIHwgQklUKDUpOworCXdyaXRlbCh2YWwsIGJhc2UgKyBXRE9HX0NTKTsKK30KKworc3RhdGljIHZvaWQgaW14N3VscF93ZHRfYWN0aW9uKHZvaWQgKmRhdGEpCit7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRhdGEpOworfQorCitzdGF0aWMgaW50IGlteDd1bHBfd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGlteDd1bHBfd2R0X2RldmljZSAqaW14N3VscF93ZHQ7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKwlzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZG9nOworCWludCByZXQ7CisKKwlpbXg3dWxwX3dkdCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqaW14N3VscF93ZHQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWlteDd1bHBfd2R0KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGlteDd1bHBfd2R0KTsKKworCWlteDd1bHBfd2R0LT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOworCWlmIChJU19FUlIoaW14N3VscF93ZHQtPmJhc2UpKQorCQlyZXR1cm4gUFRSX0VSUihpbXg3dWxwX3dkdC0+YmFzZSk7CisKKwlpbXg3dWxwX3dkdC0+Y2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgTlVMTCk7CisJaWYgKElTX0VSUihpbXg3dWxwX3dkdC0+Y2xrKSkgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgd2F0Y2hkb2cgY2xvY2tcbiIpOworCQlyZXR1cm4gUFRSX0VSUihpbXg3dWxwX3dkdC0+Y2xrKTsKKwl9CisKKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoaW14N3VscF93ZHQtPmNsayk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldChkZXYsIGlteDd1bHBfd2R0X2FjdGlvbiwgaW14N3VscF93ZHQtPmNsayk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXdkb2cgPSAmaW14N3VscF93ZHQtPndkZDsKKwl3ZG9nLT5pbmZvID0gJmlteDd1bHBfd2R0X2luZm87CisJd2RvZy0+b3BzID0gJmlteDd1bHBfd2R0X29wczsKKwl3ZG9nLT5taW5fdGltZW91dCA9IDE7CisJd2RvZy0+bWF4X3RpbWVvdXQgPSBNQVhfVElNRU9VVDsKKwl3ZG9nLT5wYXJlbnQgPSBkZXY7CisJd2RvZy0+dGltZW91dCA9IERFRkFVTFRfVElNRU9VVDsKKworCXdhdGNoZG9nX2luaXRfdGltZW91dCh3ZG9nLCAwLCBkZXYpOworCXdhdGNoZG9nX3N0b3Bfb25fcmVib290KHdkb2cpOworCXdhdGNoZG9nX3N0b3Bfb25fdW5yZWdpc3Rlcih3ZG9nKTsKKwl3YXRjaGRvZ19zZXRfZHJ2ZGF0YSh3ZG9nLCBpbXg3dWxwX3dkdCk7CisJaW14N3VscF93ZHRfaW5pdChpbXg3dWxwX3dkdC0+YmFzZSwgd2RvZy0+dGltZW91dCAqIFdET0dfQ0xPQ0tfUkFURSk7CisKKwlyZXR1cm4gZGV2bV93YXRjaGRvZ19yZWdpc3Rlcl9kZXZpY2UoZGV2LCB3ZG9nKTsKK30KKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBpbXg3dWxwX3dkdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgaW14N3VscF93ZHRfZGV2aWNlICppbXg3dWxwX3dkdCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJaWYgKHdhdGNoZG9nX2FjdGl2ZSgmaW14N3VscF93ZHQtPndkZCkpCisJCWlteDd1bHBfd2R0X3N0b3AoJmlteDd1bHBfd2R0LT53ZGQpOworCisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGlteDd1bHBfd2R0LT5jbGspOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgaW14N3VscF93ZHRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgaW14N3VscF93ZHRfZGV2aWNlICppbXg3dWxwX3dkdCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXUzMiB0aW1lb3V0ID0gaW14N3VscF93ZHQtPndkZC50aW1lb3V0ICogV0RPR19DTE9DS19SQVRFOworCWludCByZXQ7CisKKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoaW14N3VscF93ZHQtPmNsayk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWlmIChpbXg3dWxwX3dkdF9pc19lbmFibGVkKGlteDd1bHBfd2R0LT5iYXNlKSkKKwkJaW14N3VscF93ZHRfaW5pdChpbXg3dWxwX3dkdC0+YmFzZSwgdGltZW91dCk7CisKKwlpZiAod2F0Y2hkb2dfYWN0aXZlKCZpbXg3dWxwX3dkdC0+d2RkKSkKKwkJaW14N3VscF93ZHRfc3RhcnQoJmlteDd1bHBfd2R0LT53ZGQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhpbXg3dWxwX3dkdF9wbV9vcHMsIGlteDd1bHBfd2R0X3N1c3BlbmQsCisJCQkgaW14N3VscF93ZHRfcmVzdW1lKTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW14N3VscF93ZHRfZHRfaWRzW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJmc2wsaW14N3VscC13ZHQiLCB9LAorCXsgLyogc2VudGluZWwgKi8gfQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlteDd1bHBfd2R0X2R0X2lkcyk7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlteDd1bHBfd2R0X2RyaXZlciA9IHsKKwkucHJvYmUJCT0gaW14N3VscF93ZHRfcHJvYmUsCisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gImlteDd1bHAtd2R0IiwKKwkJLnBtCT0gJmlteDd1bHBfd2R0X3BtX29wcywKKwkJLm9mX21hdGNoX3RhYmxlID0gaW14N3VscF93ZHRfZHRfaWRzLAorCX0sCit9OworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihpbXg3dWxwX3dkdF9kcml2ZXIpOworCitNT0RVTEVfQVVUSE9SKCJBbnNvbiBIdWFuZyA8QW5zb24uSHVhbmdAbnhwLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiRnJlZXNjYWxlIGkuTVg3VUxQIHdhdGNoZG9nIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9pbXhfc2Nfd2R0LmMgYi9kcml2ZXJzL3dhdGNoZG9nL2lteF9zY193ZHQuYwppbmRleCA3OGVhYWY3Li43ZWE1Y2Y1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3dhdGNoZG9nL2lteF9zY193ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL2lteF9zY193ZHQuYwpAQCAtMTc1LDEyICsxNzUsOSBAQCBzdGF0aWMgaW50IGlteF9zY193ZHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl3YXRjaGRvZ19zdG9wX29uX3VucmVnaXN0ZXIod2RvZyk7CiAKIAlyZXQgPSBkZXZtX3dhdGNoZG9nX3JlZ2lzdGVyX2RldmljZShkZXYsIHdkb2cpOwotIAotIAlpZiAocmV0KSB7Ci0gCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byByZWdpc3RlciB3YXRjaGRvZyBkZXZpY2VcbiIpOwotIAkJcmV0dXJuIHJldDsKLSAJfQotIAorCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAlyZXQgPSBpbXhfc2N1X2lycV9ncm91cF9lbmFibGUoU0NfSVJRX0dST1VQX1dET0csCiAJCQkJICAgICAgIFNDX0lSUV9XRE9HLAogCQkJCSAgICAgICB0cnVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvd2F0Y2hkb2cvano0NzQwX3dkdC5jIGIvZHJpdmVycy93YXRjaGRvZy9qejQ3NDBfd2R0LmMKaW5kZXggZDRhOTA5MS4uYzYwNTJhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9qejQ3NDBfd2R0LmMKKysrIGIvZHJpdmVycy93YXRjaGRvZy9qejQ3NDBfd2R0LmMKQEAgLTE2Miw3ICsxNjIsNiBAQCBzdGF0aWMgaW50IGp6NDc0MF93ZHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwogCXN0cnVjdCBqejQ3NDBfd2R0X2RydmRhdGEgKmRydmRhdGE7CiAJc3RydWN0IHdhdGNoZG9nX2RldmljZSAqano0NzQwX3dkdDsKLQlpbnQgcmV0OwogCiAJZHJ2ZGF0YSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZihzdHJ1Y3Qgano0NzQwX3dkdF9kcnZkYXRhKSwKIAkJCSAgICAgICBHRlBfS0VSTkVMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvd2F0Y2hkb2cva3M4Njk1X3dkdC5jIGIvZHJpdmVycy93YXRjaGRvZy9rczg2OTVfd2R0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1NTBjZTMuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9rczg2OTVfd2R0LmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMTkgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIFdhdGNoZG9nIGRyaXZlciBmb3IgS2VuZGluL01pY3JlbCBLUzg2OTUuCi0gKgotICogKEMpIDIwMDcgQW5kcmV3IFZpY3RvcgotICovCi0KLSNkZWZpbmUgcHJfZm10KGZtdCkgS0JVSUxEX01PRE5BTUUgIjogIiBmbXQKLQotI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC93YXRjaGRvZy5oPgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0jaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgotI2luY2x1ZGUgPG1hY2gvaGFyZHdhcmUuaD4KLQotI2RlZmluZSBLUzg2OTVfVE1SX09GRlNFVAkoMHhGMDAwMCArIDB4RTQwMCkKLSNkZWZpbmUgS1M4Njk1X1RNUl9WQQkJKEtTODY5NV9JT19WQSArIEtTODY5NV9UTVJfT0ZGU0VUKQotCi0vKgotICogVGltZXIgcmVnaXN0ZXJzCi0gKi8KLSNkZWZpbmUgS1M4Njk1X1RNQ09OCQkoMHgwMCkJCS8qIFRpbWVyIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgS1M4Njk1X1QwVEMJCSgweDA4KQkJLyogVGltZXIgMCBUaW1lb3V0IENvdW50IFJlZ2lzdGVyICovCi0jZGVmaW5lIFRNQ09OX1QwRU4JCSgxIDw8IDApCS8qIFRpbWVyIDAgRW5hYmxlICovCi0KLS8qIFRpbWVyMCBUaW1lb3V0IENvdW50ZXIgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVDBUQ19XQVRDSERPRwkJKDB4ZmYpCQkvKiBFbmFibGUgd2F0Y2hkb2cgbW9kZSAqLwotCi0jZGVmaW5lIFdEVF9ERUZBVUxUX1RJTUUJNQkvKiBzZWNvbmRzICovCi0jZGVmaW5lIFdEVF9NQVhfVElNRQkJMTcxCS8qIHNlY29uZHMgKi8KLQotc3RhdGljIGludCB3ZHRfdGltZSA9IFdEVF9ERUZBVUxUX1RJTUU7Ci1zdGF0aWMgYm9vbCBub3dheW91dCA9IFdBVENIRE9HX05PV0FZT1VUOwotCi1tb2R1bGVfcGFyYW0od2R0X3RpbWUsIGludCwgMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKHdkdF90aW1lLCAiV2F0Y2hkb2cgdGltZSBpbiBzZWNvbmRzLiAoZGVmYXVsdD0iCi0JCQkJCV9fTU9EVUxFX1NUUklORyhXRFRfREVGQVVMVF9USU1FKSAiKSIpOwotCi0jaWZkZWYgQ09ORklHX1dBVENIRE9HX05PV0FZT1VUCi1tb2R1bGVfcGFyYW0obm93YXlvdXQsIGJvb2wsIDApOwotTU9EVUxFX1BBUk1fREVTQyhub3dheW91dCwgIldhdGNoZG9nIGNhbm5vdCBiZSBzdG9wcGVkIG9uY2Ugc3RhcnRlZCAoZGVmYXVsdD0iCi0JCQkJX19NT0RVTEVfU1RSSU5HKFdBVENIRE9HX05PV0FZT1VUKSAiKSIpOwotI2VuZGlmCi0KLQotc3RhdGljIHVuc2lnbmVkIGxvbmcga3M4Njk1d2R0X2J1c3k7Ci1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKGtzODY5NV9sb2NrKTsKLQotLyogLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAqLwotCi0vKgotICogRGlzYWJsZSB0aGUgd2F0Y2hkb2cuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBrczg2OTVfd2R0X3N0b3Aodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIHRtY29uOwotCi0Jc3Bpbl9sb2NrKCZrczg2OTVfbG9jayk7Ci0JLyogZGlzYWJsZSB0aW1lcjAgKi8KLQl0bWNvbiA9IF9fcmF3X3JlYWRsKEtTODY5NV9UTVJfVkEgKyBLUzg2OTVfVE1DT04pOwotCV9fcmF3X3dyaXRlbCh0bWNvbiAmIH5UTUNPTl9UMEVOLCBLUzg2OTVfVE1SX1ZBICsgS1M4Njk1X1RNQ09OKTsKLQlzcGluX3VubG9jaygma3M4Njk1X2xvY2spOwotfQotCi0vKgotICogRW5hYmxlIGFuZCByZXNldCB0aGUgd2F0Y2hkb2cuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBrczg2OTVfd2R0X3N0YXJ0KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyB0bWNvbjsKLQl1bnNpZ25lZCBsb25nIHR2YWwgPSB3ZHRfdGltZSAqIEtTODY5NV9DTE9DS19SQVRFOwotCi0Jc3Bpbl9sb2NrKCZrczg2OTVfbG9jayk7Ci0JLyogZGlzYWJsZSB0aW1lcjAgKi8KLQl0bWNvbiA9IF9fcmF3X3JlYWRsKEtTODY5NV9UTVJfVkEgKyBLUzg2OTVfVE1DT04pOwotCV9fcmF3X3dyaXRlbCh0bWNvbiAmIH5UTUNPTl9UMEVOLCBLUzg2OTVfVE1SX1ZBICsgS1M4Njk1X1RNQ09OKTsKLQotCS8qIHByb2dyYW0gdGltZXIwICovCi0JX19yYXdfd3JpdGVsKHR2YWwgfCBUMFRDX1dBVENIRE9HLCBLUzg2OTVfVE1SX1ZBICsgS1M4Njk1X1QwVEMpOwotCi0JLyogcmUtZW5hYmxlIHRpbWVyMCAqLwotCXRtY29uID0gX19yYXdfcmVhZGwoS1M4Njk1X1RNUl9WQSArIEtTODY5NV9UTUNPTik7Ci0JX19yYXdfd3JpdGVsKHRtY29uIHwgVE1DT05fVDBFTiwgS1M4Njk1X1RNUl9WQSArIEtTODY5NV9UTUNPTik7Ci0Jc3Bpbl91bmxvY2soJmtzODY5NV9sb2NrKTsKLX0KLQotLyoKLSAqIFJlbG9hZCB0aGUgd2F0Y2hkb2cgdGltZXIuICAoaWUsIHBhdCB0aGUgd2F0Y2hkb2cpCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBrczg2OTVfd2R0X3JlbG9hZCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgdG1jb247Ci0KLQlzcGluX2xvY2soJmtzODY5NV9sb2NrKTsKLQkvKiBkaXNhYmxlLCB0aGVuIHJlLWVuYWJsZSB0aW1lcjAgKi8KLQl0bWNvbiA9IF9fcmF3X3JlYWRsKEtTODY5NV9UTVJfVkEgKyBLUzg2OTVfVE1DT04pOwotCV9fcmF3X3dyaXRlbCh0bWNvbiAmIH5UTUNPTl9UMEVOLCBLUzg2OTVfVE1SX1ZBICsgS1M4Njk1X1RNQ09OKTsKLQlfX3Jhd193cml0ZWwodG1jb24gfCBUTUNPTl9UMEVOLCBLUzg2OTVfVE1SX1ZBICsgS1M4Njk1X1RNQ09OKTsKLQlzcGluX3VubG9jaygma3M4Njk1X2xvY2spOwotfQotCi0vKgotICogQ2hhbmdlIHRoZSB3YXRjaGRvZyB0aW1lIGludGVydmFsLgotICovCi1zdGF0aWMgaW50IGtzODY5NV93ZHRfc2V0dGltZW91dChpbnQgbmV3X3RpbWUpCi17Ci0JLyoKLQkgKiBBbGwgY291bnRpbmcgb2NjdXJzIGF0IEtTODY5NV9DTE9DS19SQVRFIC8gMTI4ID0gMC4yNTYgSHoKLQkgKgotCSAqIFNpbmNlIFdEViBpcyBhIDE2LWJpdCBjb3VudGVyLCB0aGUgbWF4aW11bSBwZXJpb2QgaXMKLQkgKiA2NTUzNiAvIDAuMjU2ID0gMjU2IHNlY29uZHMuCi0JICovCi0JaWYgKChuZXdfdGltZSA8PSAwKSB8fCAobmV3X3RpbWUgPiBXRFRfTUFYX1RJTUUpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCS8qIFNldCBuZXcgd2F0Y2hkb2cgdGltZS4gSXQgd2lsbCBiZSB1c2VkIHdoZW4KLQkgICBrczg2OTVfd2R0X3N0YXJ0KCkgaXMgY2FsbGVkLiAqLwotCXdkdF90aW1lID0gbmV3X3RpbWU7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gKi8KLQotLyoKLSAqIFdhdGNoZG9nIGRldmljZSBpcyBvcGVuZWQsIGFuZCB3YXRjaGRvZyBzdGFydHMgcnVubmluZy4KLSAqLwotc3RhdGljIGludCBrczg2OTVfd2R0X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJmtzODY5NXdkdF9idXN5KSkKLQkJcmV0dXJuIC1FQlVTWTsKLQotCWtzODY5NV93ZHRfc3RhcnQoKTsKLQlyZXR1cm4gc3RyZWFtX29wZW4oaW5vZGUsIGZpbGUpOwotfQotCi0vKgotICogQ2xvc2UgdGhlIHdhdGNoZG9nIGRldmljZS4KLSAqIElmIENPTkZJR19XQVRDSERPR19OT1dBWU9VVCBpcyBOT1QgZGVmaW5lZCB0aGVuIHRoZSB3YXRjaGRvZyBpcyBhbHNvCi0gKiAgZGlzYWJsZWQuCi0gKi8KLXN0YXRpYyBpbnQga3M4Njk1X3dkdF9jbG9zZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQkvKiBEaXNhYmxlIHRoZSB3YXRjaGRvZyB3aGVuIGZpbGUgaXMgY2xvc2VkICovCi0JaWYgKCFub3dheW91dCkKLQkJa3M4Njk1X3dkdF9zdG9wKCk7Ci0JY2xlYXJfYml0KDAsICZrczg2OTV3ZHRfYnVzeSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2F0Y2hkb2dfaW5mbyBrczg2OTVfd2R0X2luZm8gPSB7Ci0JLmlkZW50aXR5CT0gImtzODY5NSB3YXRjaGRvZyIsCi0JLm9wdGlvbnMJPSBXRElPRl9TRVRUSU1FT1VUIHwgV0RJT0ZfS0VFUEFMSVZFUElORywKLX07Ci0KLS8qCi0gKiBIYW5kbGUgY29tbWFuZHMgZnJvbSB1c2VyLXNwYWNlLgotICovCi1zdGF0aWMgbG9uZyBrczg2OTVfd2R0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJCQkJCXVuc2lnbmVkIGxvbmcgYXJnKQotewotCXZvaWQgX191c2VyICphcmdwID0gKHZvaWQgX191c2VyICopYXJnOwotCWludCBfX3VzZXIgKnAgPSBhcmdwOwotCWludCBuZXdfdmFsdWU7Ci0KLQlzd2l0Y2ggKGNtZCkgewotCWNhc2UgV0RJT0NfR0VUU1VQUE9SVDoKLQkJcmV0dXJuIGNvcHlfdG9fdXNlcihhcmdwLCAma3M4Njk1X3dkdF9pbmZvLAotCQkJCQlzaXplb2Yoa3M4Njk1X3dkdF9pbmZvKSkgPyAtRUZBVUxUIDogMDsKLQljYXNlIFdESU9DX0dFVFNUQVRVUzoKLQljYXNlIFdESU9DX0dFVEJPT1RTVEFUVVM6Ci0JCXJldHVybiBwdXRfdXNlcigwLCBwKTsKLQljYXNlIFdESU9DX1NFVE9QVElPTlM6Ci0JCWlmIChnZXRfdXNlcihuZXdfdmFsdWUsIHApKQotCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCWlmIChuZXdfdmFsdWUgJiBXRElPU19ESVNBQkxFQ0FSRCkKLQkJCWtzODY5NV93ZHRfc3RvcCgpOwotCQlpZiAobmV3X3ZhbHVlICYgV0RJT1NfRU5BQkxFQ0FSRCkKLQkJCWtzODY5NV93ZHRfc3RhcnQoKTsKLQkJcmV0dXJuIDA7Ci0JY2FzZSBXRElPQ19LRUVQQUxJVkU6Ci0JCWtzODY5NV93ZHRfcmVsb2FkKCk7CS8qIHBhdCB0aGUgd2F0Y2hkb2cgKi8KLQkJcmV0dXJuIDA7Ci0JY2FzZSBXRElPQ19TRVRUSU1FT1VUOgotCQlpZiAoZ2V0X3VzZXIobmV3X3ZhbHVlLCBwKSkKLQkJCXJldHVybiAtRUZBVUxUOwotCQlpZiAoa3M4Njk1X3dkdF9zZXR0aW1lb3V0KG5ld192YWx1ZSkpCi0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJLyogRW5hYmxlIG5ldyB0aW1lIHZhbHVlICovCi0JCWtzODY5NV93ZHRfc3RhcnQoKTsKLQkJLyogUmV0dXJuIGN1cnJlbnQgdmFsdWUgKi8KLQkJcmV0dXJuIHB1dF91c2VyKHdkdF90aW1lLCBwKTsKLQljYXNlIFdESU9DX0dFVFRJTUVPVVQ6Ci0JCXJldHVybiBwdXRfdXNlcih3ZHRfdGltZSwgcCk7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FTk9UVFk7Ci0JfQotfQotCi0vKgotICogUGF0IHRoZSB3YXRjaGRvZyB3aGVuZXZlciBkZXZpY2UgaXMgd3JpdHRlbiB0by4KLSAqLwotc3RhdGljIHNzaXplX3Qga3M4Njk1X3dkdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciAqZGF0YSwKLQkJCQkJCXNpemVfdCBsZW4sIGxvZmZfdCAqcHBvcykKLXsKLQlrczg2OTVfd2R0X3JlbG9hZCgpOwkJLyogcGF0IHRoZSB3YXRjaGRvZyAqLwotCXJldHVybiBsZW47Ci19Ci0KLS8qIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMga3M4Njk1d2R0X2ZvcHMgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5sbHNlZWsJCT0gbm9fbGxzZWVrLAotCS51bmxvY2tlZF9pb2N0bAk9IGtzODY5NV93ZHRfaW9jdGwsCi0JLm9wZW4JCT0ga3M4Njk1X3dkdF9vcGVuLAotCS5yZWxlYXNlCT0ga3M4Njk1X3dkdF9jbG9zZSwKLQkud3JpdGUJCT0ga3M4Njk1X3dkdF93cml0ZSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgbWlzY2RldmljZSBrczg2OTV3ZHRfbWlzY2RldiA9IHsKLQkubWlub3IJCT0gV0FUQ0hET0dfTUlOT1IsCi0JLm5hbWUJCT0gIndhdGNoZG9nIiwKLQkuZm9wcwkJPSAma3M4Njk1d2R0X2ZvcHMsCi19OwotCi1zdGF0aWMgaW50IGtzODY5NXdkdF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCWludCByZXM7Ci0KLQlpZiAoa3M4Njk1d2R0X21pc2NkZXYucGFyZW50KQotCQlyZXR1cm4gLUVCVVNZOwotCWtzODY5NXdkdF9taXNjZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7Ci0KLQlyZXMgPSBtaXNjX3JlZ2lzdGVyKCZrczg2OTV3ZHRfbWlzY2Rldik7Ci0JaWYgKHJlcykKLQkJcmV0dXJuIHJlczsKLQotCXByX2luZm8oIktTODY5NSBXYXRjaGRvZyBUaW1lciBlbmFibGVkICglZCBzZWNvbmRzJXMpXG4iLAotCQl3ZHRfdGltZSwgbm93YXlvdXQgPyAiLCBub3dheW91dCIgOiAiIik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQga3M4Njk1d2R0X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCW1pc2NfZGVyZWdpc3Rlcigma3M4Njk1d2R0X21pc2NkZXYpOwotCWtzODY5NXdkdF9taXNjZGV2LnBhcmVudCA9IE5VTEw7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQga3M4Njk1d2R0X3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Ja3M4Njk1X3dkdF9zdG9wKCk7Ci19Ci0KLSNpZmRlZiBDT05GSUdfUE0KLQotc3RhdGljIGludCBrczg2OTV3ZHRfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3QgbWVzc2FnZSkKLXsKLQlrczg2OTVfd2R0X3N0b3AoKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBrczg2OTV3ZHRfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0JaWYgKGtzODY5NXdkdF9idXN5KQotCQlrczg2OTVfd2R0X3N0YXJ0KCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlCi0jZGVmaW5lIGtzODY5NXdkdF9zdXNwZW5kIE5VTEwKLSNkZWZpbmUga3M4Njk1d2R0X3Jlc3VtZQlOVUxMCi0jZW5kaWYKLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIga3M4Njk1d2R0X2RyaXZlciA9IHsKLQkucHJvYmUJCT0ga3M4Njk1d2R0X3Byb2JlLAotCS5yZW1vdmUJCT0ga3M4Njk1d2R0X3JlbW92ZSwKLQkuc2h1dGRvd24JPSBrczg2OTV3ZHRfc2h1dGRvd24sCi0JLnN1c3BlbmQJPSBrczg2OTV3ZHRfc3VzcGVuZCwKLQkucmVzdW1lCQk9IGtzODY5NXdkdF9yZXN1bWUsCi0JLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gImtzODY5NV93ZHQiLAotCX0sCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBrczg2OTVfd2R0X2luaXQodm9pZCkKLXsKLQkvKiBDaGVjayB0aGF0IHRoZSBoZWFydGJlYXQgdmFsdWUgaXMgd2l0aGluIHJhbmdlOwotCSAgIGlmIG5vdCByZXNldCB0byB0aGUgZGVmYXVsdCAqLwotCWlmIChrczg2OTVfd2R0X3NldHRpbWVvdXQod2R0X3RpbWUpKSB7Ci0JCWtzODY5NV93ZHRfc2V0dGltZW91dChXRFRfREVGQVVMVF9USU1FKTsKLQkJcHJfaW5mbygia3M4Njk1X3dkdDogd2R0X3RpbWUgdmFsdWUgbXVzdCBiZSAxIDw9IHdkdF90aW1lIDw9ICVpIgotCQkJCQkiLCB1c2luZyAlZFxuIiwgd2R0X3RpbWUsIFdEVF9NQVhfVElNRSk7Ci0JfQotCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmtzODY5NXdkdF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQga3M4Njk1X3dkdF9leGl0KHZvaWQpCi17Ci0JcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmtzODY5NXdkdF9kcml2ZXIpOwotfQotCi1tb2R1bGVfaW5pdChrczg2OTVfd2R0X2luaXQpOwotbW9kdWxlX2V4aXQoa3M4Njk1X3dkdF9leGl0KTsKLQotTU9EVUxFX0FVVEhPUigiQW5kcmV3IFZpY3RvciIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJXYXRjaGRvZyBkcml2ZXIgZm9yIEtTODY5NSIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTprczg2OTVfd2R0Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL251YzkwMF93ZHQuYyBiL2RyaXZlcnMvd2F0Y2hkb2cvbnVjOTAwX3dkdC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjEyNGNlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvbnVjOTAwX3dkdC5jCisrKyAvZGV2L251bGwKQEAgLTEsMzAyICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgTnV2b3RvbiB0ZWNobm9sb2d5IGNvcnBvcmF0aW9uLgotICoKLSAqIFdhbiBab25nU2h1biA8bWN1b3MuY29tQGdtYWlsLmNvbT4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvYml0b3BzLmg+Ci0jaW5jbHVkZSA8bGludXgvZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51eC9mcy5oPgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvd2F0Y2hkb2cuaD4KLSNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+Ci0KLSNkZWZpbmUgUkVHX1dUQ1IJCTB4MWMKLSNkZWZpbmUgV1RDTEsJCQkoMHgwMSA8PCAxMCkKLSNkZWZpbmUgV1RFCQkJKDB4MDEgPDwgNykJLyp3ZHQgZW5hYmxlKi8KLSNkZWZpbmUgV1RJUwkJCSgweDAzIDw8IDQpCi0jZGVmaW5lIFdUSUYJCQkoMHgwMSA8PCAzKQotI2RlZmluZSBXVFJGCQkJKDB4MDEgPDwgMikKLSNkZWZpbmUgV1RSRQkJCSgweDAxIDw8IDEpCi0jZGVmaW5lIFdUUgkJCSgweDAxIDw8IDApCi0vKgotICogVGhlIHdhdGNoZG9nIHRpbWUgaW50ZXJ2YWwgY2FuIGJlIGNhbGN1bGF0ZWQgdmlhIGZvbGxvd2luZyBmb3JtdWxhOgotICogV1RJUwkJcmVhbCB0aW1lIGludGVydmFsIChmb3JtdWxhKQotICogMHgwMAkJKCgyXiAxNCApICogKChleHRlcm5hbCBjcnlzdGFsIGZyZXEpIC8gMjU2KSlzZWNvbmRzCi0gKiAweDAxCQkoKDJeIDE2ICkgKiAoKGV4dGVybmFsIGNyeXN0YWwgZnJlcSkgLyAyNTYpKXNlY29uZHMKLSAqIDB4MDIJCSgoMl4gMTggKSAqICgoZXh0ZXJuYWwgY3J5c3RhbCBmcmVxKSAvIDI1Nikpc2Vjb25kcwotICogMHgwMwkJKCgyXiAyMCApICogKChleHRlcm5hbCBjcnlzdGFsIGZyZXEpIC8gMjU2KSlzZWNvbmRzCi0gKgotICogVGhlIGV4dGVybmFsIGNyeXN0YWwgZnJlcSBpcyAxNU1oeiBpbiB0aGUgbnVjOTAwIGV2YWx1YXRpb24gYm9hcmQuCi0gKiBTbyAweDAwID0gKy0wLjI4IHNlY29uZHMsIDB4MDEgPSArLTEuMTIgc2Vjb25kcywgMHgwMiA9ICstNC40OCBzZWNvbmRzLAotICogMHgwMyA9ICstIDE2LjkyIHNlY29uZHMuLgotICovCi0jZGVmaW5lIFdEVF9IV19USU1FT1VUCQkweDAyCi0jZGVmaW5lIFdEVF9USU1FT1VUCQkoSFovMikKLSNkZWZpbmUgV0RUX0hFQVJUQkVBVAkJMTUKLQotc3RhdGljIGludCBoZWFydGJlYXQgPSBXRFRfSEVBUlRCRUFUOwotbW9kdWxlX3BhcmFtKGhlYXJ0YmVhdCwgaW50LCAwKTsKLU1PRFVMRV9QQVJNX0RFU0MoaGVhcnRiZWF0LCAiV2F0Y2hkb2cgaGVhcnRiZWF0cyBpbiBzZWNvbmRzLiAiCi0JIihkZWZhdWx0ID0gIiBfX01PRFVMRV9TVFJJTkcoV0RUX0hFQVJUQkVBVCkgIikiKTsKLQotc3RhdGljIGJvb2wgbm93YXlvdXQgPSBXQVRDSERPR19OT1dBWU9VVDsKLW1vZHVsZV9wYXJhbShub3dheW91dCwgYm9vbCwgMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKG5vd2F5b3V0LCAiV2F0Y2hkb2cgY2Fubm90IGJlIHN0b3BwZWQgb25jZSBzdGFydGVkICIKLQkiKGRlZmF1bHQ9IiBfX01PRFVMRV9TVFJJTkcoV0FUQ0hET0dfTk9XQVlPVVQpICIpIik7Ci0KLXN0cnVjdCBudWM5MDBfd2R0IHsKLQlzdHJ1Y3QgY2xrCSAqd2R0X2Nsb2NrOwotCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7Ci0Jdm9pZCBfX2lvbWVtCSAqd2R0X2Jhc2U7Ci0JY2hhcgkJIGV4cGVjdF9jbG9zZTsKLQlzdHJ1Y3QgdGltZXJfbGlzdCB0aW1lcjsKLQlzcGlubG9ja190ICAgICAgIHdkdF9sb2NrOwotCXVuc2lnbmVkIGxvbmcgbmV4dF9oZWFydGJlYXQ7Ci19OwotCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBudWM5MDB3ZHRfYnVzeTsKLXN0YXRpYyBzdHJ1Y3QgbnVjOTAwX3dkdCAqbnVjOTAwX3dkdDsKLQotc3RhdGljIGlubGluZSB2b2lkIG51YzkwMF93ZHRfa2VlcGFsaXZlKHZvaWQpCi17Ci0JdW5zaWduZWQgaW50IHZhbDsKLQotCXNwaW5fbG9jaygmbnVjOTAwX3dkdC0+d2R0X2xvY2spOwotCi0JdmFsID0gX19yYXdfcmVhZGwobnVjOTAwX3dkdC0+d2R0X2Jhc2UgKyBSRUdfV1RDUik7Ci0JdmFsIHw9IChXVFIgfCBXVElGKTsKLQlfX3Jhd193cml0ZWwodmFsLCBudWM5MDBfd2R0LT53ZHRfYmFzZSArIFJFR19XVENSKTsKLQotCXNwaW5fdW5sb2NrKCZudWM5MDBfd2R0LT53ZHRfbG9jayk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBudWM5MDBfd2R0X3N0YXJ0KHZvaWQpCi17Ci0JdW5zaWduZWQgaW50IHZhbDsKLQotCXNwaW5fbG9jaygmbnVjOTAwX3dkdC0+d2R0X2xvY2spOwotCi0JdmFsID0gX19yYXdfcmVhZGwobnVjOTAwX3dkdC0+d2R0X2Jhc2UgKyBSRUdfV1RDUik7Ci0JdmFsIHw9IChXVFJFIHwgV1RFIHwgV1RSIHwgV1RDTEsgfCBXVElGKTsKLQl2YWwgJj0gfldUSVM7Ci0JdmFsIHw9IChXRFRfSFdfVElNRU9VVCA8PCAweDA0KTsKLQlfX3Jhd193cml0ZWwodmFsLCBudWM5MDBfd2R0LT53ZHRfYmFzZSArIFJFR19XVENSKTsKLQotCXNwaW5fdW5sb2NrKCZudWM5MDBfd2R0LT53ZHRfbG9jayk7Ci0KLQludWM5MDBfd2R0LT5uZXh0X2hlYXJ0YmVhdCA9IGppZmZpZXMgKyBoZWFydGJlYXQgKiBIWjsKLQltb2RfdGltZXIoJm51YzkwMF93ZHQtPnRpbWVyLCBqaWZmaWVzICsgV0RUX1RJTUVPVVQpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgbnVjOTAwX3dkdF9zdG9wKHZvaWQpCi17Ci0JdW5zaWduZWQgaW50IHZhbDsKLQotCWRlbF90aW1lcigmbnVjOTAwX3dkdC0+dGltZXIpOwotCi0Jc3Bpbl9sb2NrKCZudWM5MDBfd2R0LT53ZHRfbG9jayk7Ci0KLQl2YWwgPSBfX3Jhd19yZWFkbChudWM5MDBfd2R0LT53ZHRfYmFzZSArIFJFR19XVENSKTsKLQl2YWwgJj0gfldURTsKLQlfX3Jhd193cml0ZWwodmFsLCBudWM5MDBfd2R0LT53ZHRfYmFzZSArIFJFR19XVENSKTsKLQotCXNwaW5fdW5sb2NrKCZudWM5MDBfd2R0LT53ZHRfbG9jayk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBudWM5MDBfd2R0X3Bpbmcodm9pZCkKLXsKLQludWM5MDBfd2R0LT5uZXh0X2hlYXJ0YmVhdCA9IGppZmZpZXMgKyBoZWFydGJlYXQgKiBIWjsKLX0KLQotc3RhdGljIGludCBudWM5MDBfd2R0X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0KLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmbnVjOTAwd2R0X2J1c3kpKQotCQlyZXR1cm4gLUVCVVNZOwotCi0JbnVjOTAwX3dkdF9zdGFydCgpOwotCi0JcmV0dXJuIHN0cmVhbV9vcGVuKGlub2RlLCBmaWxlKTsKLX0KLQotc3RhdGljIGludCBudWM5MDBfd2R0X2Nsb3NlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQotewotCWlmIChudWM5MDBfd2R0LT5leHBlY3RfY2xvc2UgPT0gNDIpCi0JCW51YzkwMF93ZHRfc3RvcCgpOwotCWVsc2UgewotCQlkZXZfY3JpdCgmbnVjOTAwX3dkdC0+cGRldi0+ZGV2LAotCQkJIlVuZXhwZWN0ZWQgY2xvc2UsIG5vdCBzdG9wcGluZyB3YXRjaGRvZyFcbiIpOwotCQludWM5MDBfd2R0X3BpbmcoKTsKLQl9Ci0KLQludWM5MDBfd2R0LT5leHBlY3RfY2xvc2UgPSAwOwotCWNsZWFyX2JpdCgwLCAmbnVjOTAwd2R0X2J1c3kpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHdhdGNoZG9nX2luZm8gbnVjOTAwX3dkdF9pbmZvID0gewotCS5pZGVudGl0eQk9ICJudWM5MDAgd2F0Y2hkb2ciLAotCS5vcHRpb25zCT0gV0RJT0ZfU0VUVElNRU9VVCB8IFdESU9GX0tFRVBBTElWRVBJTkcgfAotCQkJCQkJV0RJT0ZfTUFHSUNDTE9TRSwKLX07Ci0KLXN0YXRpYyBsb25nIG51YzkwMF93ZHRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsCi0JCQkJCXVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQotewotCXZvaWQgX191c2VyICphcmdwID0gKHZvaWQgX191c2VyICopYXJnOwotCWludCBfX3VzZXIgKnAgPSBhcmdwOwotCWludCBuZXdfdmFsdWU7Ci0KLQlzd2l0Y2ggKGNtZCkgewotCWNhc2UgV0RJT0NfR0VUU1VQUE9SVDoKLQkJcmV0dXJuIGNvcHlfdG9fdXNlcihhcmdwLCAmbnVjOTAwX3dkdF9pbmZvLAotCQkJCXNpemVvZihudWM5MDBfd2R0X2luZm8pKSA/IC1FRkFVTFQgOiAwOwotCWNhc2UgV0RJT0NfR0VUU1RBVFVTOgotCWNhc2UgV0RJT0NfR0VUQk9PVFNUQVRVUzoKLQkJcmV0dXJuIHB1dF91c2VyKDAsIHApOwotCi0JY2FzZSBXRElPQ19LRUVQQUxJVkU6Ci0JCW51YzkwMF93ZHRfcGluZygpOwotCQlyZXR1cm4gMDsKLQotCWNhc2UgV0RJT0NfU0VUVElNRU9VVDoKLQkJaWYgKGdldF91c2VyKG5ld192YWx1ZSwgcCkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQotCQloZWFydGJlYXQgPSBuZXdfdmFsdWU7Ci0JCW51YzkwMF93ZHRfcGluZygpOwotCi0JCXJldHVybiBwdXRfdXNlcihuZXdfdmFsdWUsIHApOwotCWNhc2UgV0RJT0NfR0VUVElNRU9VVDoKLQkJcmV0dXJuIHB1dF91c2VyKGhlYXJ0YmVhdCwgcCk7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FTk9UVFk7Ci0JfQotfQotCi1zdGF0aWMgc3NpemVfdCBudWM5MDBfd2R0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqZGF0YSwKLQkJCQkJCXNpemVfdCBsZW4sIGxvZmZfdCAqcHBvcykKLXsKLQlpZiAoIWxlbikKLQkJcmV0dXJuIDA7Ci0KLQkvKiBTY2FuIGZvciBtYWdpYyBjaGFyYWN0ZXIgKi8KLQlpZiAoIW5vd2F5b3V0KSB7Ci0JCXNpemVfdCBpOwotCi0JCW51YzkwMF93ZHQtPmV4cGVjdF9jbG9zZSA9IDA7Ci0KLQkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0JCQljaGFyIGM7Ci0JCQlpZiAoZ2V0X3VzZXIoYywgZGF0YSArIGkpKQotCQkJCXJldHVybiAtRUZBVUxUOwotCQkJaWYgKGMgPT0gJ1YnKSB7Ci0JCQkJbnVjOTAwX3dkdC0+ZXhwZWN0X2Nsb3NlID0gNDI7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQludWM5MDBfd2R0X3BpbmcoKTsKLQlyZXR1cm4gbGVuOwotfQotCi1zdGF0aWMgdm9pZCBudWM5MDBfd2R0X3RpbWVyX3Bpbmcoc3RydWN0IHRpbWVyX2xpc3QgKnVudXNlZCkKLXsKLQlpZiAodGltZV9iZWZvcmUoamlmZmllcywgbnVjOTAwX3dkdC0+bmV4dF9oZWFydGJlYXQpKSB7Ci0JCW51YzkwMF93ZHRfa2VlcGFsaXZlKCk7Ci0JCW1vZF90aW1lcigmbnVjOTAwX3dkdC0+dGltZXIsIGppZmZpZXMgKyBXRFRfVElNRU9VVCk7Ci0JfSBlbHNlCi0JCWRldl93YXJuKCZudWM5MDBfd2R0LT5wZGV2LT5kZXYsICJXaWxsIHJlc2V0IHRoZSBtYWNoaW5lICFcbiIpOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBudWM5MDB3ZHRfZm9wcyA9IHsKLQkub3duZXIJCT0gVEhJU19NT0RVTEUsCi0JLmxsc2VlawkJPSBub19sbHNlZWssCi0JLnVubG9ja2VkX2lvY3RsCT0gbnVjOTAwX3dkdF9pb2N0bCwKLQkub3BlbgkJPSBudWM5MDBfd2R0X29wZW4sCi0JLnJlbGVhc2UJPSBudWM5MDBfd2R0X2Nsb3NlLAotCS53cml0ZQkJPSBudWM5MDBfd2R0X3dyaXRlLAotfTsKLQotc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIG51YzkwMHdkdF9taXNjZGV2ID0gewotCS5taW5vcgkJPSBXQVRDSERPR19NSU5PUiwKLQkubmFtZQkJPSAid2F0Y2hkb2ciLAotCS5mb3BzCQk9ICZudWM5MDB3ZHRfZm9wcywKLX07Ci0KLXN0YXRpYyBpbnQgbnVjOTAwd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0JaW50IHJldCA9IDA7Ci0KLQludWM5MDBfd2R0ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqbnVjOTAwX3dkdCksCi0JCQkJR0ZQX0tFUk5FTCk7Ci0JaWYgKCFudWM5MDBfd2R0KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW51YzkwMF93ZHQtPnBkZXYgPSBwZGV2OwotCi0Jc3Bpbl9sb2NrX2luaXQoJm51YzkwMF93ZHQtPndkdF9sb2NrKTsKLQotCW51YzkwMF93ZHQtPndkdF9iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwotCWlmIChJU19FUlIobnVjOTAwX3dkdC0+d2R0X2Jhc2UpKQotCQlyZXR1cm4gUFRSX0VSUihudWM5MDBfd2R0LT53ZHRfYmFzZSk7Ci0KLQludWM5MDBfd2R0LT53ZHRfY2xvY2sgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgTlVMTCk7Ci0JaWYgKElTX0VSUihudWM5MDBfd2R0LT53ZHRfY2xvY2spKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBmaW5kIHdhdGNoZG9nIGNsb2NrIHNvdXJjZVxuIik7Ci0JCXJldHVybiBQVFJfRVJSKG51YzkwMF93ZHQtPndkdF9jbG9jayk7Ci0JfQotCi0JY2xrX2VuYWJsZShudWM5MDBfd2R0LT53ZHRfY2xvY2spOwotCi0JdGltZXJfc2V0dXAoJm51YzkwMF93ZHQtPnRpbWVyLCBudWM5MDBfd2R0X3RpbWVyX3BpbmcsIDApOwotCi0JcmV0ID0gbWlzY19yZWdpc3RlcigmbnVjOTAwd2R0X21pc2NkZXYpOwotCWlmIChyZXQpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZXJyIHJlZ2lzdGVyIG1pc2NkZXYgb24gbWlub3I9JWQgKCVkKVxuIiwKLQkJCVdBVENIRE9HX01JTk9SLCByZXQpOwotCQlnb3RvIGVycl9jbGs7Ci0JfQotCi0JcmV0dXJuIDA7Ci0KLWVycl9jbGs6Ci0JY2xrX2Rpc2FibGUobnVjOTAwX3dkdC0+d2R0X2Nsb2NrKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IG51YzkwMHdkdF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQltaXNjX2RlcmVnaXN0ZXIoJm51YzkwMHdkdF9taXNjZGV2KTsKLQotCWNsa19kaXNhYmxlKG51YzkwMF93ZHQtPndkdF9jbG9jayk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbnVjOTAwd2R0X2RyaXZlciA9IHsKLQkucHJvYmUJCT0gbnVjOTAwd2R0X3Byb2JlLAotCS5yZW1vdmUJCT0gbnVjOTAwd2R0X3JlbW92ZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAibnVjOTAwLXdkdCIsCi0JfSwKLX07Ci0KLW1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobnVjOTAwd2R0X2RyaXZlcik7Ci0KLU1PRFVMRV9BVVRIT1IoIldhbiBab25nU2h1biA8bWN1b3MuY29tQGdtYWlsLmNvbT4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiV2F0Y2hkb2cgZHJpdmVyIGZvciBOVUM5MDAiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06bnVjOTAwLXdkdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9vcmlvbl93ZHQuYyBiL2RyaXZlcnMvd2F0Y2hkb2cvb3Jpb25fd2R0LmMKaW5kZXggY2RiMGQxNy4uMWNjY2Y4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9vcmlvbl93ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL29yaW9uX3dkdC5jCkBAIC0zNSw3ICszNSwxNSBAQAogICogV2F0Y2hkb2cgdGltZXIgYmxvY2sgcmVnaXN0ZXJzLgogICovCiAjZGVmaW5lIFRJTUVSX0NUUkwJCTB4MDAwMAotI2RlZmluZSBUSU1FUl9BMzcwX1NUQVRVUwkweDA0CisjZGVmaW5lIFRJTUVSMV9GSVhFRF9FTkFCTEVfQklUCUJJVCgxMikKKyNkZWZpbmUgV0RUX0FYUF9GSVhFRF9FTkFCTEVfQklUIEJJVCgxMCkKKyNkZWZpbmUgVElNRVIxX0VOQUJMRV9CSVQJQklUKDIpCisKKyNkZWZpbmUgVElNRVJfQTM3MF9TVEFUVVMJMHgwMDA0CisjZGVmaW5lIFdEVF9BMzcwX0VYUElSRUQJQklUKDMxKQorI2RlZmluZSBUSU1FUjFfU1RBVFVTX0JJVAlCSVQoOCkKKworI2RlZmluZSBUSU1FUjFfVkFMX09GRgkJMHgwMDFjCiAKICNkZWZpbmUgV0RUX01BWF9DWUNMRV9DT1VOVAkweGZmZmZmZmZmCiAKQEAgLTQzLDkgKzUxLDYgQEAKICNkZWZpbmUgV0RUX0EzNzBfUkFUSU9fU0hJRlQJNQogI2RlZmluZSBXRFRfQTM3MF9SQVRJTwkJKDEgPDwgV0RUX0EzNzBfUkFUSU9fU0hJRlQpCiAKLSNkZWZpbmUgV0RUX0FYUF9GSVhFRF9FTkFCTEVfQklUIEJJVCgxMCkKLSNkZWZpbmUgV0RUX0EzNzBfRVhQSVJFRAlCSVQoMzEpCi0KIHN0YXRpYyBib29sIG5vd2F5b3V0ID0gV0FUQ0hET0dfTk9XQVlPVVQ7CiBzdGF0aWMgaW50IGhlYXJ0YmVhdCA9IC0xOwkJLyogbW9kdWxlIHBhcmFtZXRlciAoc2Vjb25kcykgKi8KIApAQCAtMTU4LDYgKzE2Myw3IEBAIHN0YXRpYyBpbnQgYXJtYWRheHBfd2R0X2Nsb2NrX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkgICBzdHJ1Y3Qgb3Jpb25fd2F0Y2hkb2cgKmRldikKIHsKIAlpbnQgcmV0OworCXUzMiB2YWw7CiAKIAlkZXYtPmNsayA9IG9mX2Nsa19nZXRfYnlfbmFtZShwZGV2LT5kZXYub2Zfbm9kZSwgImZpeGVkIik7CiAJaWYgKElTX0VSUihkZXYtPmNsaykpCkBAIC0xNjgsMTAgKzE3NCw5IEBAIHN0YXRpYyBpbnQgYXJtYWRheHBfd2R0X2Nsb2NrX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQkvKiBFbmFibGUgdGhlIGZpeGVkIHdhdGNoZG9nIGNsb2NrIGlucHV0ICovCi0JYXRvbWljX2lvX21vZGlmeShkZXYtPnJlZyArIFRJTUVSX0NUUkwsCi0JCQkgV0RUX0FYUF9GSVhFRF9FTkFCTEVfQklULAotCQkJIFdEVF9BWFBfRklYRURfRU5BQkxFX0JJVCk7CisJLyogRml4IHRoZSB3ZHQgYW5kIHRpbWVyMSBjbG9jayBmcmVxZW5jeSB0byAyNU1IeiAqLworCXZhbCA9IFdEVF9BWFBfRklYRURfRU5BQkxFX0JJVCB8IFRJTUVSMV9GSVhFRF9FTkFCTEVfQklUOworCWF0b21pY19pb19tb2RpZnkoZGV2LT5yZWcgKyBUSU1FUl9DVFJMLCB2YWwsIHZhbCk7CiAKIAlkZXYtPmNsa19yYXRlID0gY2xrX2dldF9yYXRlKGRldi0+Y2xrKTsKIAlyZXR1cm4gMDsKQEAgLTE4Myw2ICsxODgsMTAgQEAgc3RhdGljIGludCBvcmlvbl93ZHRfcGluZyhzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZHRfZGV2KQogCS8qIFJlbG9hZCB3YXRjaGRvZyBkdXJhdGlvbiAqLwogCXdyaXRlbChkZXYtPmNsa19yYXRlICogd2R0X2Rldi0+dGltZW91dCwKIAkgICAgICAgZGV2LT5yZWcgKyBkZXYtPmRhdGEtPndkdF9jb3VudGVyX29mZnNldCk7CisJaWYgKGRldi0+d2R0LmluZm8tPm9wdGlvbnMgJiBXRElPRl9QUkVUSU1FT1VUKQorCQl3cml0ZWwoZGV2LT5jbGtfcmF0ZSAqICh3ZHRfZGV2LT50aW1lb3V0IC0gd2R0X2Rldi0+cHJldGltZW91dCksCisJCSAgICAgICBkZXYtPnJlZyArIFRJTUVSMV9WQUxfT0ZGKTsKKwogCXJldHVybiAwOwogfQogCkBAIC0xOTQsMTMgKzIwMywxOCBAQCBzdGF0aWMgaW50IGFybWFkYTM3NV9zdGFydChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZHRfZGV2KQogCS8qIFNldCB3YXRjaGRvZyBkdXJhdGlvbiAqLwogCXdyaXRlbChkZXYtPmNsa19yYXRlICogd2R0X2Rldi0+dGltZW91dCwKIAkgICAgICAgZGV2LT5yZWcgKyBkZXYtPmRhdGEtPndkdF9jb3VudGVyX29mZnNldCk7CisJaWYgKGRldi0+d2R0LmluZm8tPm9wdGlvbnMgJiBXRElPRl9QUkVUSU1FT1VUKQorCQl3cml0ZWwoZGV2LT5jbGtfcmF0ZSAqICh3ZHRfZGV2LT50aW1lb3V0IC0gd2R0X2Rldi0+cHJldGltZW91dCksCisJCSAgICAgICBkZXYtPnJlZyArIFRJTUVSMV9WQUxfT0ZGKTsKIAogCS8qIENsZWFyIHRoZSB3YXRjaGRvZyBleHBpcmF0aW9uIGJpdCAqLwogCWF0b21pY19pb19tb2RpZnkoZGV2LT5yZWcgKyBUSU1FUl9BMzcwX1NUQVRVUywgV0RUX0EzNzBfRVhQSVJFRCwgMCk7CiAKIAkvKiBFbmFibGUgd2F0Y2hkb2cgdGltZXIgKi8KLQlhdG9taWNfaW9fbW9kaWZ5KGRldi0+cmVnICsgVElNRVJfQ1RSTCwgZGV2LT5kYXRhLT53ZHRfZW5hYmxlX2JpdCwKLQkJCQkJCWRldi0+ZGF0YS0+d2R0X2VuYWJsZV9iaXQpOworCXJlZyA9IGRldi0+ZGF0YS0+d2R0X2VuYWJsZV9iaXQ7CisJaWYgKGRldi0+d2R0LmluZm8tPm9wdGlvbnMgJiBXRElPRl9QUkVUSU1FT1VUKQorCQlyZWcgfD0gVElNRVIxX0VOQUJMRV9CSVQ7CisJYXRvbWljX2lvX21vZGlmeShkZXYtPnJlZyArIFRJTUVSX0NUUkwsIHJlZywgcmVnKTsKIAogCS8qIEVuYWJsZSByZXNldCBvbiB3YXRjaGRvZyAqLwogCXJlZyA9IHJlYWRsKGRldi0+cnN0b3V0KTsKQEAgLTI3Nyw3ICsyOTEsNyBAQCBzdGF0aWMgaW50IG9yaW9uX3N0b3Aoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2R0X2RldikKIHN0YXRpYyBpbnQgYXJtYWRhMzc1X3N0b3Aoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2R0X2RldikKIHsKIAlzdHJ1Y3Qgb3Jpb25fd2F0Y2hkb2cgKmRldiA9IHdhdGNoZG9nX2dldF9kcnZkYXRhKHdkdF9kZXYpOwotCXUzMiByZWc7CisJdTMyIHJlZywgbWFzazsKIAogCS8qIERpc2FibGUgcmVzZXQgb24gd2F0Y2hkb2cgKi8KIAlhdG9taWNfaW9fbW9kaWZ5KGRldi0+cnN0b3V0X21hc2ssIGRldi0+ZGF0YS0+cnN0b3V0X21hc2tfYml0LApAQCAtMjg3LDcgKzMwMSwxMCBAQCBzdGF0aWMgaW50IGFybWFkYTM3NV9zdG9wKHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkdF9kZXYpCiAJd3JpdGVsKHJlZywgZGV2LT5yc3RvdXQpOwogCiAJLyogRGlzYWJsZSB3YXRjaGRvZyB0aW1lciAqLwotCWF0b21pY19pb19tb2RpZnkoZGV2LT5yZWcgKyBUSU1FUl9DVFJMLCBkZXYtPmRhdGEtPndkdF9lbmFibGVfYml0LCAwKTsKKwltYXNrID0gZGV2LT5kYXRhLT53ZHRfZW5hYmxlX2JpdDsKKwlpZiAod2R0X2Rldi0+aW5mby0+b3B0aW9ucyAmIFdESU9GX1BSRVRJTUVPVVQpCisJCW1hc2sgfD0gVElNRVIxX0VOQUJMRV9CSVQ7CisJYXRvbWljX2lvX21vZGlmeShkZXYtPnJlZyArIFRJTUVSX0NUUkwsIG1hc2ssIDApOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zNDksNyArMzY2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBvcmlvbl93ZHRfZ2V0X3RpbWVsZWZ0KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkdF9kZXYpCiAJcmV0dXJuIHJlYWRsKGRldi0+cmVnICsgZGV2LT5kYXRhLT53ZHRfY291bnRlcl9vZmZzZXQpIC8gZGV2LT5jbGtfcmF0ZTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCB3YXRjaGRvZ19pbmZvIG9yaW9uX3dkdF9pbmZvID0geworc3RhdGljIHN0cnVjdCB3YXRjaGRvZ19pbmZvIG9yaW9uX3dkdF9pbmZvID0gewogCS5vcHRpb25zID0gV0RJT0ZfU0VUVElNRU9VVCB8IFdESU9GX0tFRVBBTElWRVBJTkcgfCBXRElPRl9NQUdJQ0NMT1NFLAogCS5pZGVudGl0eSA9ICJPcmlvbiBXYXRjaGRvZyIsCiB9OwpAQCAtMzY4LDYgKzM4NSwxNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgb3Jpb25fd2R0X2lycShpbnQgaXJxLCB2b2lkICpkZXZpZCkKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKK3N0YXRpYyBpcnFyZXR1cm5fdCBvcmlvbl93ZHRfcHJlX2lycShpbnQgaXJxLCB2b2lkICpkZXZpZCkKK3sKKwlzdHJ1Y3Qgb3Jpb25fd2F0Y2hkb2cgKmRldiA9IGRldmlkOworCisJYXRvbWljX2lvX21vZGlmeShkZXYtPnJlZyArIFRJTUVSX0EzNzBfU1RBVFVTLAorCQkJIFRJTUVSMV9TVEFUVVNfQklULCAwKTsKKwl3YXRjaGRvZ19ub3RpZnlfcHJldGltZW91dCgmZGV2LT53ZHQpOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKwogLyoKICAqIFRoZSBvcmlnaW5hbCBkZXZpY2V0cmVlIGJpbmRpbmcgZm9yIHRoaXMgZHJpdmVyIHNwZWNpZmllZCBvbmx5CiAgKiBvbmUgbWVtb3J5IHJlc291cmNlLCBzbyBpbiBvcmRlciB0byBrZWVwIERUIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CkBAIC01ODksNiArNjE2LDE5IEBAIHN0YXRpYyBpbnQgb3Jpb25fd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCX0KIAl9CiAKKwkvKiBPcHRpb25hbCAybmQgaW50ZXJydXB0IGZvciBwcmV0aW1lb3V0ICovCisJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAxKTsKKwlpZiAoaXJxID4gMCkgeworCQlvcmlvbl93ZHRfaW5mby5vcHRpb25zIHw9IFdESU9GX1BSRVRJTUVPVVQ7CisJCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRldiwgaXJxLCBvcmlvbl93ZHRfcHJlX2lycSwKKwkJCQkgICAgICAgMCwgcGRldi0+bmFtZSwgZGV2KTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZXF1ZXN0IElSUVxuIik7CisJCQlnb3RvIGRpc2FibGVfY2xrOworCQl9CisJfQorCisKIAl3YXRjaGRvZ19zZXRfbm93YXlvdXQoJmRldi0+d2R0LCBub3dheW91dCk7CiAJcmV0ID0gd2F0Y2hkb2dfcmVnaXN0ZXJfZGV2aWNlKCZkZXYtPndkdCk7CiAJaWYgKHJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvd2F0Y2hkb2cvcWNvbS13ZHQuYyBiL2RyaXZlcnMvd2F0Y2hkb2cvcWNvbS13ZHQuYwppbmRleCA3YmU3Zjg3Li5hNDk0NTQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3dhdGNoZG9nL3Fjb20td2R0LmMKKysrIGIvZHJpdmVycy93YXRjaGRvZy9xY29tLXdkdC5jCkBAIC0xLDggKzEsMTAgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKIC8qIENvcHlyaWdodCAoYykgMjAxNCwgVGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKi8KKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtMTksNiArMjEsOSBAQCBlbnVtIHdkdF9yZWcgewogCVdEVF9CSVRFX1RJTUUsCiB9OwogCisjZGVmaW5lIFFDT01fV0RUX0VOQUJMRQkJQklUKDApCisjZGVmaW5lIFFDT01fV0RUX0VOQUJMRV9JUlEJQklUKDEpCisKIHN0YXRpYyBjb25zdCB1MzIgcmVnX29mZnNldF9kYXRhX2FwY3NfdG1yW10gPSB7CiAJW1dEVF9SU1RdID0gMHgzOCwKIAlbV0RUX0VOXSA9IDB4NDAsCkBAIC0zNyw3ICs0Miw2IEBAIHN0YXRpYyBjb25zdCB1MzIgcmVnX29mZnNldF9kYXRhX2twc3NbXSA9IHsKIAogc3RydWN0IHFjb21fd2R0IHsKIAlzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlCXdkZDsKLQlzdHJ1Y3QgY2xrCQkqY2xrOwogCXVuc2lnbmVkIGxvbmcJCXJhdGU7CiAJdm9pZCBfX2lvbWVtCQkqYmFzZTsKIAljb25zdCB1MzIJCSpsYXlvdXQ7CkBAIC01NCwxNSArNTgsMzUgQEAgc3RydWN0IHFjb21fd2R0ICp0b19xY29tX3dkdChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZih3ZGQsIHN0cnVjdCBxY29tX3dkdCwgd2RkKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgcWNvbV9nZXRfZW5hYmxlKHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCkKK3sKKwlpbnQgZW5hYmxlID0gUUNPTV9XRFRfRU5BQkxFOworCisJaWYgKHdkZC0+cHJldGltZW91dCkKKwkJZW5hYmxlIHw9IFFDT01fV0RUX0VOQUJMRV9JUlE7CisKKwlyZXR1cm4gZW5hYmxlOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3QgcWNvbV93ZHRfaXNyKGludCBpcnEsIHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQgPSBhcmc7CisKKwl3YXRjaGRvZ19ub3RpZnlfcHJldGltZW91dCh3ZGQpOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCiBzdGF0aWMgaW50IHFjb21fd2R0X3N0YXJ0KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCkKIHsKIAlzdHJ1Y3QgcWNvbV93ZHQgKndkdCA9IHRvX3Fjb21fd2R0KHdkZCk7CisJdW5zaWduZWQgaW50IGJhcmsgPSB3ZGQtPnRpbWVvdXQgLSB3ZGQtPnByZXRpbWVvdXQ7CiAKIAl3cml0ZWwoMCwgd2R0X2FkZHIod2R0LCBXRFRfRU4pKTsKIAl3cml0ZWwoMSwgd2R0X2FkZHIod2R0LCBXRFRfUlNUKSk7Ci0Jd3JpdGVsKHdkZC0+dGltZW91dCAqIHdkdC0+cmF0ZSwgd2R0X2FkZHIod2R0LCBXRFRfQkFSS19USU1FKSk7CisJd3JpdGVsKGJhcmsgKiB3ZHQtPnJhdGUsIHdkdF9hZGRyKHdkdCwgV0RUX0JBUktfVElNRSkpOwogCXdyaXRlbCh3ZGQtPnRpbWVvdXQgKiB3ZHQtPnJhdGUsIHdkdF9hZGRyKHdkdCwgV0RUX0JJVEVfVElNRSkpOwotCXdyaXRlbCgxLCB3ZHRfYWRkcih3ZHQsIFdEVF9FTikpOworCXdyaXRlbChxY29tX2dldF9lbmFibGUod2RkKSwgd2R0X2FkZHIod2R0LCBXRFRfRU4pKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtODksNiArMTEzLDEzIEBAIHN0YXRpYyBpbnQgcWNvbV93ZHRfc2V0X3RpbWVvdXQoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkLAogCXJldHVybiBxY29tX3dkdF9zdGFydCh3ZGQpOwogfQogCitzdGF0aWMgaW50IHFjb21fd2R0X3NldF9wcmV0aW1lb3V0KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwKKwkJCQkgICB1bnNpZ25lZCBpbnQgdGltZW91dCkKK3sKKwl3ZGQtPnByZXRpbWVvdXQgPSB0aW1lb3V0OworCXJldHVybiBxY29tX3dkdF9zdGFydCh3ZGQpOworfQorCiBzdGF0aWMgaW50IHFjb21fd2R0X3Jlc3RhcnQoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkLCB1bnNpZ25lZCBsb25nIGFjdGlvbiwKIAkJCSAgICB2b2lkICpkYXRhKQogewpAQCAtMTA1LDcgKzEzNiw3IEBAIHN0YXRpYyBpbnQgcWNvbV93ZHRfcmVzdGFydChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQsIHVuc2lnbmVkIGxvbmcgYWN0aW9uLAogCXdyaXRlbCgxLCB3ZHRfYWRkcih3ZHQsIFdEVF9SU1QpKTsKIAl3cml0ZWwodGltZW91dCwgd2R0X2FkZHIod2R0LCBXRFRfQkFSS19USU1FKSk7CiAJd3JpdGVsKHRpbWVvdXQsIHdkdF9hZGRyKHdkdCwgV0RUX0JJVEVfVElNRSkpOwotCXdyaXRlbCgxLCB3ZHRfYWRkcih3ZHQsIFdEVF9FTikpOworCXdyaXRlbChRQ09NX1dEVF9FTkFCTEUsIHdkdF9hZGRyKHdkdCwgV0RUX0VOKSk7CiAKIAkvKgogCSAqIEFjdHVhbGx5IG1ha2Ugc3VyZSB0aGUgYWJvdmUgc2VxdWVuY2UgaGl0cyBoYXJkd2FyZSBiZWZvcmUgc2xlZXBpbmcuCkBAIC0xMjEsNiArMTUyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB3YXRjaGRvZ19vcHMgcWNvbV93ZHRfb3BzID0gewogCS5zdG9wCQk9IHFjb21fd2R0X3N0b3AsCiAJLnBpbmcJCT0gcWNvbV93ZHRfcGluZywKIAkuc2V0X3RpbWVvdXQJPSBxY29tX3dkdF9zZXRfdGltZW91dCwKKwkuc2V0X3ByZXRpbWVvdXQJPSBxY29tX3dkdF9zZXRfcHJldGltZW91dCwKIAkucmVzdGFydCAgICAgICAgPSBxY29tX3dkdF9yZXN0YXJ0LAogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIH07CkBAIC0xMzMsNiArMTY1LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2F0Y2hkb2dfaW5mbyBxY29tX3dkdF9pbmZvID0gewogCS5pZGVudGl0eQk9IEtCVUlMRF9NT0ROQU1FLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCB3YXRjaGRvZ19pbmZvIHFjb21fd2R0X3B0X2luZm8gPSB7CisJLm9wdGlvbnMJPSBXRElPRl9LRUVQQUxJVkVQSU5HCisJCQl8IFdESU9GX01BR0lDQ0xPU0UKKwkJCXwgV0RJT0ZfU0VUVElNRU9VVAorCQkJfCBXRElPRl9QUkVUSU1FT1VUCisJCQl8IFdESU9GX0NBUkRSRVNFVCwKKwkuaWRlbnRpdHkJPSBLQlVJTERfTU9ETkFNRSwKK307CisKIHN0YXRpYyB2b2lkIHFjb21fY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHZvaWQgKmRhdGEpCiB7CiAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRhdGEpOwpAQCAtMTQ2LDcgKzE4Nyw4IEBAIHN0YXRpYyBpbnQgcWNvbV93ZHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZGV2LT5vZl9ub2RlOwogCWNvbnN0IHUzMiAqcmVnczsKIAl1MzIgcGVyY3B1X29mZnNldDsKLQlpbnQgcmV0OworCWludCBpcnEsIHJldDsKKwlzdHJ1Y3QgY2xrICpjbGs7CiAKIAlyZWdzID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7CiAJaWYgKCFyZWdzKSB7CkBAIC0xNzMsMTkgKzIxNSwxOCBAQCBzdGF0aWMgaW50IHFjb21fd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKElTX0VSUih3ZHQtPmJhc2UpKQogCQlyZXR1cm4gUFRSX0VSUih3ZHQtPmJhc2UpOwogCi0Jd2R0LT5jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCBOVUxMKTsKLQlpZiAoSVNfRVJSKHdkdC0+Y2xrKSkgeworCWNsayA9IGRldm1fY2xrX2dldChkZXYsIE5VTEwpOworCWlmIChJU19FUlIoY2xrKSkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgaW5wdXQgY2xvY2tcbiIpOwotCQlyZXR1cm4gUFRSX0VSUih3ZHQtPmNsayk7CisJCXJldHVybiBQVFJfRVJSKGNsayk7CiAJfQogCi0JcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHdkdC0+Y2xrKTsKKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoY2xrKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHNldHVwIGNsb2NrXG4iKTsKIAkJcmV0dXJuIHJldDsKIAl9Ci0JcmV0ID0gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRldiwgcWNvbV9jbGtfZGlzYWJsZV91bnByZXBhcmUsCi0JCQkJICAgICAgIHdkdC0+Y2xrKTsKKwlyZXQgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoZGV2LCBxY29tX2Nsa19kaXNhYmxlX3VucHJlcGFyZSwgY2xrKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0xOTcsMTQgKzIzOCwzMSBAQCBzdGF0aWMgaW50IHFjb21fd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJICogdGhhdCBpdCB3b3VsZCBiaXRlIGJlZm9yZSBhIHNlY29uZCBlbGFwc2VzIGl0J3MgdXNlZnVsbmVzcyBpcwogCSAqIGxpbWl0ZWQuICBCYWlsIGlmIHRoaXMgaXMgdGhlIGNhc2UuCiAJICovCi0Jd2R0LT5yYXRlID0gY2xrX2dldF9yYXRlKHdkdC0+Y2xrKTsKKwl3ZHQtPnJhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrKTsKIAlpZiAod2R0LT5yYXRlID09IDAgfHwKIAkgICAgd2R0LT5yYXRlID4gMHgxMDAwMDAwMFUpIHsKIAkJZGV2X2VycihkZXYsICJpbnZhbGlkIGNsb2NrIHJhdGVcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQl3ZHQtPndkZC5pbmZvID0gJnFjb21fd2R0X2luZm87CisJLyogY2hlY2sgaWYgdGhlcmUgaXMgcHJldGltZW91dCBzdXBwb3J0ICovCisJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKwlpZiAoaXJxID4gMCkgeworCQlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKGRldiwgaXJxLCBxY29tX3dkdF9pc3IsCisJCQkJICAgICAgIElSUUZfVFJJR0dFUl9SSVNJTkcsCisJCQkJICAgICAgICJ3ZHRfYmFyayIsICZ3ZHQtPndkZCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCXdkdC0+d2RkLmluZm8gPSAmcWNvbV93ZHRfcHRfaW5mbzsKKwkJd2R0LT53ZGQucHJldGltZW91dCA9IDE7CisJfSBlbHNlIHsKKwkJaWYgKGlycSA9PSAtRVBST0JFX0RFRkVSKQorCQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CisKKwkJd2R0LT53ZGQuaW5mbyA9ICZxY29tX3dkdF9pbmZvOworCX0KKwogCXdkdC0+d2RkLm9wcyA9ICZxY29tX3dkdF9vcHM7CiAJd2R0LT53ZGQubWluX3RpbWVvdXQgPSAxOwogCXdkdC0+d2RkLm1heF90aW1lb3V0ID0gMHgxMDAwMDAwMFUgLyB3ZHQtPnJhdGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL3NwcmRfd2R0LmMgYi9kcml2ZXJzL3dhdGNoZG9nL3NwcmRfd2R0LmMKaW5kZXggZWRiYTRlMi4uMGJiMTdiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9zcHJkX3dkdC5jCisrKyBiL2RyaXZlcnMvd2F0Y2hkb2cvc3ByZF93ZHQuYwpAQCAtMjg0LDEwICsyODQsOCBAQCBzdGF0aWMgaW50IHNwcmRfd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJfQogCiAJd2R0LT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmICh3ZHQtPmlycSA8IDApIHsKLQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IElSUSByZXNvdXJjZVxuIik7CisJaWYgKHdkdC0+aXJxIDwgMCkKIAkJcmV0dXJuIHdkdC0+aXJxOwotCX0KIAogCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoZGV2LCB3ZHQtPmlycSwgc3ByZF93ZHRfaXNyLCBJUlFGX05PX1NVU1BFTkQsCiAJCQkgICAgICAgInNwcmQtd2R0IiwgKHZvaWQgKil3ZHQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy96aWlyYXZlX3dkdC5jIGIvZHJpdmVycy93YXRjaGRvZy96aWlyYXZlX3dkdC5jCmluZGV4IGRlYzY2MGMuLjRhMzYzYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvemlpcmF2ZV93ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL3ppaXJhdmVfd2R0LmMKQEAgLTIxLDggKzIxLDExIEBACiAjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgogI2luY2x1ZGUgPGxpbnV4L3dhdGNoZG9nLmg+CiAKKyNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CisKICNkZWZpbmUgWklJUkFWRV9USU1FT1VUX01JTgkzCiAjZGVmaW5lIFpJSVJBVkVfVElNRU9VVF9NQVgJMjU1CisjZGVmaW5lIFpJSVJBVkVfVElNRU9VVF9ERUZBVUxUCTMwCiAKICNkZWZpbmUgWklJUkFWRV9QSU5HX1ZBTFVFCTB4MAogCkBAIC00OCwxNiArNTEsMTIgQEAgc3RhdGljIGNoYXIgKnppaXJhdmVfcmVhc29uc1tdID0geyJwb3dlciBjeWNsZSIsICJodyB3YXRjaGRvZyIsIE5VTEwsIE5VTEwsCiAKICNkZWZpbmUgWklJUkFWRV9GSVJNX1BLVF9UT1RBTF9TSVpFCTIwCiAjZGVmaW5lIFpJSVJBVkVfRklSTV9QS1RfREFUQV9TSVpFCTE2Ci0jZGVmaW5lIFpJSVJBVkVfRklSTV9GTEFTSF9NRU1PUllfU1RBUlQJMHgxNjAwCi0jZGVmaW5lIFpJSVJBVkVfRklSTV9GTEFTSF9NRU1PUllfRU5ECTB4MmJiZgorI2RlZmluZSBaSUlSQVZFX0ZJUk1fRkxBU0hfTUVNT1JZX1NUQVJUCSgyICogMHgxNjAwKQorI2RlZmluZSBaSUlSQVZFX0ZJUk1fRkxBU0hfTUVNT1JZX0VORAkoMiAqIDB4MmJiZikKKyNkZWZpbmUgWklJUkFWRV9GSVJNX1BBR0VfU0laRQkJMTI4CiAKIC8qIFJlY2VpdmVkIGFuZCByZWFkeSBmb3IgbmV4dCBEb3dubG9hZCBwYWNrZXQuICovCiAjZGVmaW5lIFpJSVJBVkVfRklSTV9ET1dOTE9BRF9BQ0sJMQotLyogQ3VycmVudGx5IHdyaXRpbmcgdG8gZmxhc2guIFJldHJ5IERvd25sb2FkIHN0YXR1cyBpbiBhIG1vbWVudCEgKi8KLSNkZWZpbmUgWklJUkFWRV9GSVJNX0RPV05MT0FEX0JVU1kJMgotCi0vKiBXYWl0IGZvciBBQ0sgdGltZW91dCBpbiBtcyAqLwotI2RlZmluZSBaSUlSQVZFX0ZJUk1fV0FJVF9GT1JfQUNLX1RJTUVPVVQJNTAKIAogLyogRmlybXdhcmUgY29tbWFuZHMgKi8KICNkZWZpbmUgWklJUkFWRV9DTURfRE9XTkxPQURfU1RBUlQJCTB4MTAKQEAgLTY4LDYgKzY3LDEyIEBAIHN0YXRpYyBjaGFyICp6aWlyYXZlX3JlYXNvbnNbXSA9IHsicG93ZXIgY3ljbGUiLCAiaHcgd2F0Y2hkb2ciLCBOVUxMLCBOVUxMLAogI2RlZmluZSBaSUlSQVZFX0NNRF9KVU1QX1RPX0JPT1RMT0FERVIJCTB4MGMKICNkZWZpbmUgWklJUkFWRV9DTURfRE9XTkxPQURfUEFDS0VUCQkweDBlCiAKKyNkZWZpbmUgWklJUkFWRV9DTURfSlVNUF9UT19CT09UTE9BREVSX01BR0lDCTEKKyNkZWZpbmUgWklJUkFWRV9DTURfUkVTRVRfUFJPQ0VTU09SX01BR0lDCTEKKworI2RlZmluZSBaSUlSQVZFX0ZXX1ZFUlNJT05fRk1UCSIwMi4lMDJ1LiUwMnUiCisjZGVmaW5lIFpJSVJBVkVfQkxfVkVSU0lPTl9GTVQJIjAxLiUwMnUuJTAydSIKKwogc3RydWN0IHppaXJhdmVfd2R0X3JldiB7CiAJdW5zaWduZWQgY2hhciBtYWpvcjsKIAl1bnNpZ25lZCBjaGFyIG1pbm9yOwpAQCAtMTY1LDY3ICsxNzAsMzcgQEAgc3RhdGljIHVuc2lnbmVkIGludCB6aWlyYXZlX3dkdF9nZXRfdGltZWxlZnQoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgemlpcmF2ZV9maXJtX3dhaXRfZm9yX2FjayhzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQpCitzdGF0aWMgaW50IHppaXJhdmVfZmlybV9yZWFkX2FjayhzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQpCiB7CiAJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHRvX2kyY19jbGllbnQod2RkLT5wYXJlbnQpOwogCWludCByZXQ7Ci0JdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogCi0JdGltZW91dCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKFpJSVJBVkVfRklSTV9XQUlUX0ZPUl9BQ0tfVElNRU9VVCk7Ci0JZG8gewotCQlpZiAodGltZV9hZnRlcihqaWZmaWVzLCB0aW1lb3V0KSkKLQkJCXJldHVybiAtRVRJTUVET1VUOwotCi0JCXVzbGVlcF9yYW5nZSg1MDAwLCAxMDAwMCk7Ci0KLQkJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZShjbGllbnQpOwotCQlpZiAocmV0IDwgMCkgewotCQkJZGV2X2VycigmY2xpZW50LT5kZXYsICJGYWlsZWQgdG8gcmVhZCBieXRlXG4iKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQl9IHdoaWxlIChyZXQgPT0gWklJUkFWRV9GSVJNX0RPV05MT0FEX0JVU1kpOworCXJldCA9IGkyY19zbWJ1c19yZWFkX2J5dGUoY2xpZW50KTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkZhaWxlZCB0byByZWFkIHN0YXR1cyBieXRlXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CiAKIAlyZXR1cm4gcmV0ID09IFpJSVJBVkVfRklSTV9ET1dOTE9BRF9BQ0sgPyAwIDogLUVJTzsKIH0KIAotc3RhdGljIGludCB6aWlyYXZlX2Zpcm1fc2V0X3JlYWRfYWRkcihzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQsIHUxNiBhZGRyKQorc3RhdGljIGludCB6aWlyYXZlX2Zpcm1fc2V0X3JlYWRfYWRkcihzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQsIHUzMiBhZGRyKQogewogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KHdkZC0+cGFyZW50KTsKKwljb25zdCB1MTYgYWRkcjE2ID0gKHUxNilhZGRyIC8gMjsKIAl1OCBhZGRyZXNzWzJdOwogCi0JYWRkcmVzc1swXSA9IGFkZHIgJiAweGZmOwotCWFkZHJlc3NbMV0gPSAoYWRkciA+PiA4KSAmIDB4ZmY7CisJcHV0X3VuYWxpZ25lZF9sZTE2KGFkZHIxNiwgYWRkcmVzcyk7CiAKIAlyZXR1cm4gaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEoY2xpZW50LAogCQkJCQkgIFpJSVJBVkVfQ01EX0RPV05MT0FEX1NFVF9SRUFEX0FERFIsCi0JCQkJCSAgQVJSQVlfU0laRShhZGRyZXNzKSwgYWRkcmVzcyk7CisJCQkJCSAgc2l6ZW9mKGFkZHJlc3MpLCBhZGRyZXNzKTsKIH0KIAotc3RhdGljIGludCB6aWlyYXZlX2Zpcm1fd3JpdGVfYmxvY2tfZGF0YShzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQsCi0JCQkJCSB1OCBjb21tYW5kLCB1OCBsZW5ndGgsIGNvbnN0IHU4ICpkYXRhLAotCQkJCQkgYm9vbCB3YWl0X2Zvcl9hY2spCitzdGF0aWMgYm9vbCB6aWlyYXZlX2Zpcm1fYWRkcl9yZWFkb25seSh1MzIgYWRkcikKIHsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gdG9faTJjX2NsaWVudCh3ZGQtPnBhcmVudCk7Ci0JaW50IHJldDsKLQotCXJldCA9IGkyY19zbWJ1c193cml0ZV9ibG9ja19kYXRhKGNsaWVudCwgY29tbWFuZCwgbGVuZ3RoLCBkYXRhKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJmNsaWVudC0+ZGV2LAotCQkJIkZhaWxlZCB0byBzZW5kIGNvbW1hbmQgMHglMDJ4OiAlZFxuIiwgY29tbWFuZCwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlpZiAod2FpdF9mb3JfYWNrKQotCQlyZXQgPSB6aWlyYXZlX2Zpcm1fd2FpdF9mb3JfYWNrKHdkZCk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IHppaXJhdmVfZmlybV93cml0ZV9ieXRlKHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwgdTggY29tbWFuZCwKLQkJCQkgICB1OCBieXRlLCBib29sIHdhaXRfZm9yX2FjaykKLXsKLQlyZXR1cm4gemlpcmF2ZV9maXJtX3dyaXRlX2Jsb2NrX2RhdGEod2RkLCBjb21tYW5kLCAxLCAmYnl0ZSwKLQkJCQkJICAgICB3YWl0X2Zvcl9hY2spOworCXJldHVybiBhZGRyIDwgWklJUkFWRV9GSVJNX0ZMQVNIX01FTU9SWV9TVEFSVCB8fAorCSAgICAgICBhZGRyID4gWklJUkFWRV9GSVJNX0ZMQVNIX01FTU9SWV9FTkQ7CiB9CiAKIC8qCkBAIC0yNDAsMzUgKzIxNSw1MyBAQCBzdGF0aWMgaW50IHppaXJhdmVfZmlybV93cml0ZV9ieXRlKHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwgdTggY29tbWFuZCwKICAqICAgICBEYXRhMCAuLiBEYXRhMTU6IEFycmF5IG9mIDE2IGJ5dGVzIG9mIGRhdGEuCiAgKiAgICAgQ2hlY2tzdW06IENoZWNrc3VtIGJ5dGUgdG8gdmVyaWZ5IGRhdGEgaW50ZWdyaXR5LgogICovCi1zdGF0aWMgaW50IHppaXJhdmVfZmlybV93cml0ZV9wa3Qoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkLAotCQkJCSAgY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWMpCitzdGF0aWMgaW50IF9femlpcmF2ZV9maXJtX3dyaXRlX3BrdChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQsCisJCQkJICAgIHUzMiBhZGRyLCBjb25zdCB1OCAqZGF0YSwgdTggbGVuKQogeworCWNvbnN0IHUxNiBhZGRyMTYgPSAodTE2KWFkZHIgLyAyOwogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KHdkZC0+cGFyZW50KTsKIAl1OCBpLCBjaGVja3N1bSA9IDAsIHBhY2tldFtaSUlSQVZFX0ZJUk1fUEtUX1RPVEFMX1NJWkVdOwogCWludCByZXQ7Ci0JdTE2IGFkZHI7CiAKLQltZW1zZXQocGFja2V0LCAwLCBBUlJBWV9TSVpFKHBhY2tldCkpOworCS8qIENoZWNrIG1heCBkYXRhIHNpemUgKi8KKwlpZiAobGVuID4gWklJUkFWRV9GSVJNX1BLVF9EQVRBX1NJWkUpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJGaXJtd2FyZSBwYWNrZXQgdG9vIGxvbmcgKCVkKVxuIiwKKwkJCWxlbik7CisJCXJldHVybiAtRU1TR1NJWkU7CisJfQorCisJLyoKKwkgKiBJZ25vcmUgcGFja2V0cyB0aGF0IGFyZSB0YXJnZXRpbmcgcHJvZ3JhbSBtZW1vcnkgb3V0aXNkZSBvZgorCSAqIGFwcCBwYXJ0aXRpb24sIHNpbmNlIHRoZXkgd2lsbCBiZSBpZ25vcmVkIGJ5IHRoZQorCSAqIGJvb3Rsb2FkZXIuIEF0IHRoZSBzYW1lIHRpbWUsIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlJ2xsCisJICogYWxsb3cgemVybyBsZW5ndGggcGFja2V0IHRoYXQgd2lsbCBiZSBzZW50IGFzIHRoZSBsYXN0IHN0ZXAKKwkgKiBvZiBmaXJtd2FyZSB1cGRhdGUKKwkgKi8KKwlpZiAobGVuICYmIHppaXJhdmVfZmlybV9hZGRyX3JlYWRvbmx5KGFkZHIpKQorCQlyZXR1cm4gMDsKIAogCS8qIFBhY2tldCBsZW5ndGggKi8KLQlwYWNrZXRbMF0gPSAodTgpYmUxNl90b19jcHUocmVjLT5sZW4pOworCXBhY2tldFswXSA9IGxlbjsKIAkvKiBQYWNrZXQgYWRkcmVzcyAqLwotCWFkZHIgPSAoYmUzMl90b19jcHUocmVjLT5hZGRyKSAmIDB4ZmZmZikgPj4gMTsKLQlwYWNrZXRbMV0gPSBhZGRyICYgMHhmZjsKLQlwYWNrZXRbMl0gPSAoYWRkciAmIDB4ZmYwMCkgPj4gODsKKwlwdXRfdW5hbGlnbmVkX2xlMTYoYWRkcjE2LCBwYWNrZXQgKyAxKTsKIAotCS8qIFBhY2tldCBkYXRhICovCi0JaWYgKGJlMTZfdG9fY3B1KHJlYy0+bGVuKSA+IFpJSVJBVkVfRklSTV9QS1RfREFUQV9TSVpFKQotCQlyZXR1cm4gLUVNU0dTSVpFOwotCW1lbWNweShwYWNrZXQgKyAzLCByZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CisJbWVtY3B5KHBhY2tldCArIDMsIGRhdGEsIGxlbik7CisJbWVtc2V0KHBhY2tldCArIDMgKyBsZW4sIDAsIFpJSVJBVkVfRklSTV9QS1RfREFUQV9TSVpFIC0gbGVuKTsKIAogCS8qIFBhY2tldCBjaGVja3N1bSAqLwotCWZvciAoaSA9IDA7IGkgPCBaSUlSQVZFX0ZJUk1fUEtUX1RPVEFMX1NJWkUgLSAxOyBpKyspCisJZm9yIChpID0gMDsgaSA8IGxlbiArIDM7IGkrKykKIAkJY2hlY2tzdW0gKz0gcGFja2V0W2ldOwogCXBhY2tldFtaSUlSQVZFX0ZJUk1fUEtUX1RPVEFMX1NJWkUgLSAxXSA9IGNoZWNrc3VtOwogCi0JcmV0ID0gemlpcmF2ZV9maXJtX3dyaXRlX2Jsb2NrX2RhdGEod2RkLCBaSUlSQVZFX0NNRF9ET1dOTE9BRF9QQUNLRVQsCi0JCQkJCSAgICBBUlJBWV9TSVpFKHBhY2tldCksIHBhY2tldCwgdHJ1ZSk7CisJcmV0ID0gaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEoY2xpZW50LCBaSUlSQVZFX0NNRF9ET1dOTE9BRF9QQUNLRVQsCisJCQkJCSBzaXplb2YocGFja2V0KSwgcGFja2V0KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAorCQkJIkZhaWxlZCB0byBzZW5kIERPV05MT0FEX1BBQ0tFVDogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gemlpcmF2ZV9maXJtX3JlYWRfYWNrKHdkZCk7CiAJaWYgKHJldCkKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsCiAJCSAgICAgICJGYWlsZWQgdG8gd3JpdGUgZmlybXdhcmUgcGFja2V0IGF0IGFkZHJlc3MgMHglMDR4OiAlZFxuIiwKQEAgLTI3Nyw2ICsyNzAsMzAgQEAgc3RhdGljIGludCB6aWlyYXZlX2Zpcm1fd3JpdGVfcGt0KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IHppaXJhdmVfZmlybV93cml0ZV9wa3Qoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkLAorCQkJCSAgdTMyIGFkZHIsIGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4pCit7CisJY29uc3QgdTggbWF4X3dyaXRlX2xlbiA9IFpJSVJBVkVfRklSTV9QQUdFX1NJWkUgLQorCQkoYWRkciAtIEFMSUdOX0RPV04oYWRkciwgWklJUkFWRV9GSVJNX1BBR0VfU0laRSkpOworCWludCByZXQ7CisKKwlpZiAobGVuID4gbWF4X3dyaXRlX2xlbikgeworCQkvKgorCQkgKiBJZiBkYXRhIGNyb3NzZWQgcGFnZSBib3VuZGFyeSB3ZSBuZWVkIHRvIHNwbGl0IHRoaXMKKwkJICogd3JpdGUgaW4gdHdvCisJCSAqLworCQlyZXQgPSBfX3ppaXJhdmVfZmlybV93cml0ZV9wa3Qod2RkLCBhZGRyLCBkYXRhLCBtYXhfd3JpdGVfbGVuKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJYWRkciArPSBtYXhfd3JpdGVfbGVuOworCQlkYXRhICs9IG1heF93cml0ZV9sZW47CisJCWxlbiAgLT0gbWF4X3dyaXRlX2xlbjsKKwl9CisKKwlyZXR1cm4gX196aWlyYXZlX2Zpcm1fd3JpdGVfcGt0KHdkZCwgYWRkciwgZGF0YSwgbGVuKTsKK30KKwogc3RhdGljIGludCB6aWlyYXZlX2Zpcm1fdmVyaWZ5KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQogewpAQCAtMjg0LDE2ICszMDEsMTIgQEAgc3RhdGljIGludCB6aWlyYXZlX2Zpcm1fdmVyaWZ5KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwKIAljb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKIAlpbnQgaSwgcmV0OwogCXU4IGRhdGFbWklJUkFWRV9GSVJNX1BLVF9EQVRBX1NJWkVdOwotCXUxNiBhZGRyOwogCiAJZm9yIChyZWMgPSAodm9pZCAqKWZ3LT5kYXRhOyByZWM7IHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgewotCQkvKiBaZXJvIGxlbmd0aCBtYXJrcyBlbmQgb2YgcmVjb3JkcyAqLwotCQlpZiAoIWJlMTZfdG9fY3B1KHJlYy0+bGVuKSkKLQkJCWJyZWFrOworCQljb25zdCB1MTYgbGVuID0gYmUxNl90b19jcHUocmVjLT5sZW4pOworCQljb25zdCB1MzIgYWRkciA9IGJlMzJfdG9fY3B1KHJlYy0+YWRkcik7CiAKLQkJYWRkciA9IChiZTMyX3RvX2NwdShyZWMtPmFkZHIpICYgMHhmZmZmKSA+PiAxOwotCQlpZiAoYWRkciA8IFpJSVJBVkVfRklSTV9GTEFTSF9NRU1PUllfU1RBUlQgfHwKLQkJICAgIGFkZHIgPiBaSUlSQVZFX0ZJUk1fRkxBU0hfTUVNT1JZX0VORCkKKwkJaWYgKHppaXJhdmVfZmlybV9hZGRyX3JlYWRvbmx5KGFkZHIpKQogCQkJY29udGludWU7CiAKIAkJcmV0ID0gemlpcmF2ZV9maXJtX3NldF9yZWFkX2FkZHIod2RkLCBhZGRyKTsKQEAgLTMwNCw3ICszMTcsNyBAQCBzdGF0aWMgaW50IHppaXJhdmVfZmlybV92ZXJpZnkoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkLAogCQkJcmV0dXJuIHJldDsKIAkJfQogCi0JCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRhdGEpOyBpKyspIHsKKwkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAJCQlyZXQgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LAogCQkJCQkJWklJUkFWRV9DTURfRE9XTkxPQURfUkVBRF9CWVRFKTsKIAkJCWlmIChyZXQgPCAwKSB7CkBAIC0zMTUsNyArMzI4LDcgQEAgc3RhdGljIGludCB6aWlyYXZlX2Zpcm1fdmVyaWZ5KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwKIAkJCWRhdGFbaV0gPSByZXQ7CiAJCX0KIAotCQlpZiAobWVtY21wKGRhdGEsIHJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pKSkgeworCQlpZiAobWVtY21wKGRhdGEsIHJlYy0+ZGF0YSwgbGVuKSkgewogCQkJZGV2X2VycigmY2xpZW50LT5kZXYsCiAJCQkJIkZpcm13YXJlIG1pc21hdGNoIGF0IGFkZHJlc3MgMHglMDR4XG4iLCBhZGRyKTsKIAkJCXJldHVybiAtRUlOVkFMOwpAQCAtMzI5LDk3ICszNDIsNDUgQEAgc3RhdGljIGludCB6aWlyYXZlX2Zpcm1fdXBsb2FkKHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQogewogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KHdkZC0+cGFyZW50KTsKLQlpbnQgcmV0LCB3b3Jkc190aWxsX3BhZ2VfYnJlYWs7CiAJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7Ci0Jc3RydWN0IGloZXhfYmlucmVjICpyZWNfbmV3OworCWludCByZXQ7CiAKLQlyZXQgPSB6aWlyYXZlX2Zpcm1fd3JpdGVfYnl0ZSh3ZGQsIFpJSVJBVkVfQ01EX0pVTVBfVE9fQk9PVExPQURFUiwgMSwKLQkJCQkgICAgICBmYWxzZSk7Ci0JaWYgKHJldCkKKwlyZXQgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwKKwkJCQkJWklJUkFWRV9DTURfSlVNUF9UT19CT09UTE9BREVSLAorCQkJCQlaSUlSQVZFX0NNRF9KVU1QX1RPX0JPT1RMT0FERVJfTUFHSUMpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJGYWlsZWQgdG8ganVtcCB0byBib290bG9hZGVyXG4iKTsKIAkJcmV0dXJuIHJldDsKKwl9CiAKIAltc2xlZXAoNTAwKTsKIAotCXJldCA9IHppaXJhdmVfZmlybV93cml0ZV9ieXRlKHdkZCwgWklJUkFWRV9DTURfRE9XTkxPQURfU1RBUlQsIDEsIHRydWUpOwotCWlmIChyZXQpCisJcmV0ID0gaTJjX3NtYnVzX3dyaXRlX2J5dGUoY2xpZW50LCBaSUlSQVZFX0NNRF9ET1dOTE9BRF9TVEFSVCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkZhaWxlZCB0byBzdGFydCBkb3dubG9hZFxuIik7CiAJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gemlpcmF2ZV9maXJtX3JlYWRfYWNrKHdkZCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIk5vIEFDSyBmb3Igc3RhcnQgZG93bmxvYWRcbiIpOworCQlyZXR1cm4gcmV0OworCX0KIAogCW1zbGVlcCg1MDApOwogCiAJZm9yIChyZWMgPSAodm9pZCAqKWZ3LT5kYXRhOyByZWM7IHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgewotCQkvKiBaZXJvIGxlbmd0aCBtYXJrcyBlbmQgb2YgcmVjb3JkcyAqLwotCQlpZiAoIWJlMTZfdG9fY3B1KHJlYy0+bGVuKSkKLQkJCWJyZWFrOwotCi0JCS8qIENoZWNrIG1heCBkYXRhIHNpemUgKi8KLQkJaWYgKGJlMTZfdG9fY3B1KHJlYy0+bGVuKSA+IFpJSVJBVkVfRklSTV9QS1RfREFUQV9TSVpFKSB7Ci0JCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkZpcm13YXJlIHBhY2tldCB0b28gbG9uZyAoJWQpXG4iLAotCQkJCWJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7Ci0JCQlyZXR1cm4gLUVNU0dTSVpFOwotCQl9Ci0KLQkJLyogQ2FsY3VsYXRlIHdvcmRzIHRpbGwgcGFnZSBicmVhayAqLwotCQl3b3Jkc190aWxsX3BhZ2VfYnJlYWsgPSAoNjQgLSAoKGJlMzJfdG9fY3B1KHJlYy0+YWRkcikgPj4gMSkgJgotCQkJCQkgMHgzZikpOwotCQlpZiAoKGJlMTZfdG9fY3B1KHJlYy0+bGVuKSA+PiAxKSA+IHdvcmRzX3RpbGxfcGFnZV9icmVhaykgewotCQkJLyoKLQkJCSAqIERhdGEgaW4gcGFzc2VzIHBhZ2UgYm91bmRhcnksIHNvIHdlIG5lZWQgdG8gc3BsaXQgaW4KLQkJCSAqIHR3byBibG9ja3Mgb2YgZGF0YS4gQ3JlYXRlIGEgcGFja2V0IHdpdGggdGhlIGZpcnN0Ci0JCQkgKiBibG9jayBvZiBkYXRhLgotCQkJICovCi0JCQlyZWNfbmV3ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGloZXhfYmlucmVjKSArCi0JCQkJCSAgKHdvcmRzX3RpbGxfcGFnZV9icmVhayA8PCAxKSwKLQkJCQkJICBHRlBfS0VSTkVMKTsKLQkJCWlmICghcmVjX25ldykKLQkJCQlyZXR1cm4gLUVOT01FTTsKLQotCQkJcmVjX25ldy0+bGVuID0gY3B1X3RvX2JlMTYod29yZHNfdGlsbF9wYWdlX2JyZWFrIDw8IDEpOwotCQkJcmVjX25ldy0+YWRkciA9IHJlYy0+YWRkcjsKLQkJCW1lbWNweShyZWNfbmV3LT5kYXRhLCByZWMtPmRhdGEsCi0JCQkgICAgICAgYmUxNl90b19jcHUocmVjX25ldy0+bGVuKSk7Ci0KLQkJCXJldCA9IHppaXJhdmVfZmlybV93cml0ZV9wa3Qod2RkLCByZWNfbmV3KTsKLQkJCWtmcmVlKHJlY19uZXcpOwotCQkJaWYgKHJldCkKLQkJCQlyZXR1cm4gcmV0OwotCi0JCQkvKiBDcmVhdGUgYSBwYWNrZXQgd2l0aCB0aGUgc2Vjb25kIGJsb2NrIG9mIGRhdGEgKi8KLQkJCXJlY19uZXcgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgaWhleF9iaW5yZWMpICsKLQkJCQkJICBiZTE2X3RvX2NwdShyZWMtPmxlbikgLQotCQkJCQkgICh3b3Jkc190aWxsX3BhZ2VfYnJlYWsgPDwgMSksCi0JCQkJCSAgR0ZQX0tFUk5FTCk7Ci0JCQlpZiAoIXJlY19uZXcpCi0JCQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkJCS8qIFJlbWFpbmluZyBieXRlcyAqLwotCQkJcmVjX25ldy0+bGVuID0gcmVjLT5sZW4gLQotCQkJCSAgICAgICBjcHVfdG9fYmUxNih3b3Jkc190aWxsX3BhZ2VfYnJlYWsgPDwgMSk7Ci0KLQkJCXJlY19uZXctPmFkZHIgPSBjcHVfdG9fYmUzMihiZTMyX3RvX2NwdShyZWMtPmFkZHIpICsKLQkJCQkJKHdvcmRzX3RpbGxfcGFnZV9icmVhayA8PCAxKSk7Ci0KLQkJCW1lbWNweShyZWNfbmV3LT5kYXRhLAotCQkJICAgICAgIHJlYy0+ZGF0YSArICh3b3Jkc190aWxsX3BhZ2VfYnJlYWsgPDwgMSksCi0JCQkgICAgICAgYmUxNl90b19jcHUocmVjX25ldy0+bGVuKSk7Ci0KLQkJCXJldCA9IHppaXJhdmVfZmlybV93cml0ZV9wa3Qod2RkLCByZWNfbmV3KTsKLQkJCWtmcmVlKHJlY19uZXcpOwotCQkJaWYgKHJldCkKLQkJCQlyZXR1cm4gcmV0OwotCQl9IGVsc2UgewotCQkJcmV0ID0gemlpcmF2ZV9maXJtX3dyaXRlX3BrdCh3ZGQsIHJlYyk7Ci0JCQlpZiAocmV0KQotCQkJCXJldHVybiByZXQ7Ci0JCX0KKwkJcmV0ID0gemlpcmF2ZV9maXJtX3dyaXRlX3BrdCh3ZGQsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCQkJCSAgICAgcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbikpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKIAl9CiAKLQkvKiBGb3IgZW5kIG9mIGRvd25sb2FkLCB0aGUgbGVuZ3RoIGZpZWxkIHdpbGwgYmUgc2V0IHRvIDAgKi8KLQlyZWNfbmV3ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGloZXhfYmlucmVjKSArIDEsIEdGUF9LRVJORUwpOwotCWlmICghcmVjX25ldykKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyZXQgPSB6aWlyYXZlX2Zpcm1fd3JpdGVfcGt0KHdkZCwgcmVjX25ldyk7Ci0Ja2ZyZWUocmVjX25ldyk7CisJLyoKKwkgKiBGaW5pc2ggZmlybXdhcmUgZG93bmxvYWQgcHJvY2VzcyBieSBzZW5kaW5nIGEgemVybyBsZW5ndGgKKwkgKiBwYXlsb2FkCisJICovCisJcmV0ID0gemlpcmF2ZV9maXJtX3dyaXRlX3BrdCh3ZGQsIDAsIE5VTEwsIDApOwogCWlmIChyZXQpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICJGYWlsZWQgdG8gc2VuZCBFTVBUWSBwYWNrZXQ6ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwpAQCAtNDM3LDE1ICszOTgsMjIgQEAgc3RhdGljIGludCB6aWlyYXZlX2Zpcm1fdXBsb2FkKHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwKIAl9CiAKIAkvKiBFbmQgZG93bmxvYWQgb3BlcmF0aW9uICovCi0JcmV0ID0gemlpcmF2ZV9maXJtX3dyaXRlX2J5dGUod2RkLCBaSUlSQVZFX0NNRF9ET1dOTE9BRF9FTkQsIDEsIGZhbHNlKTsKLQlpZiAocmV0KQorCXJldCA9IGkyY19zbWJ1c193cml0ZV9ieXRlKGNsaWVudCwgWklJUkFWRV9DTURfRE9XTkxPQURfRU5EKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAorCQkJIkZhaWxlZCB0byBlbmQgZmlybXdhcmUgZG93bmxvYWQ6ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OworCX0KIAogCS8qIFJlc2V0IHRoZSBwcm9jZXNzb3IgKi8KLQlyZXQgPSB6aWlyYXZlX2Zpcm1fd3JpdGVfYnl0ZSh3ZGQsIFpJSVJBVkVfQ01EX1JFU0VUX1BST0NFU1NPUiwgMSwKLQkJCQkgICAgICBmYWxzZSk7Ci0JaWYgKHJldCkKKwlyZXQgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwKKwkJCQkJWklJUkFWRV9DTURfUkVTRVRfUFJPQ0VTU09SLAorCQkJCQlaSUlSQVZFX0NNRF9SRVNFVF9QUk9DRVNTT1JfTUFHSUMpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsCisJCQkiRmFpbGVkIHRvIHJlc2V0IHRoZSB3YXRjaGRvZzogJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7CisJfQogCiAJbXNsZWVwKDUwMCk7CiAKQEAgLTQ3OCw3ICs0NDYsNyBAQCBzdGF0aWMgc3NpemVfdCB6aWlyYXZlX3dkdF9zeXNmc19zaG93X2Zpcm0oc3RydWN0IGRldmljZSAqZGV2LAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSBzcHJpbnRmKGJ1ZiwgIjAyLiUwMnUuJTAydSIsIHdfcHJpdi0+ZmlybXdhcmVfcmV2Lm1ham9yLAorCXJldCA9IHNwcmludGYoYnVmLCBaSUlSQVZFX0ZXX1ZFUlNJT05fRk1ULCB3X3ByaXYtPmZpcm13YXJlX3Jldi5tYWpvciwKIAkJICAgICAgd19wcml2LT5maXJtd2FyZV9yZXYubWlub3IpOwogCiAJbXV0ZXhfdW5sb2NrKCZ3X3ByaXYtPnN5c2ZzX211dGV4KTsKQEAgLTUwMSw3ICs0NjksNyBAQCBzdGF0aWMgc3NpemVfdCB6aWlyYXZlX3dkdF9zeXNmc19zaG93X2Jvb3Qoc3RydWN0IGRldmljZSAqZGV2LAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSBzcHJpbnRmKGJ1ZiwgIjAxLiUwMnUuJTAydSIsIHdfcHJpdi0+Ym9vdGxvYWRlcl9yZXYubWFqb3IsCisJcmV0ID0gc3ByaW50ZihidWYsIFpJSVJBVkVfQkxfVkVSU0lPTl9GTVQsIHdfcHJpdi0+Ym9vdGxvYWRlcl9yZXYubWFqb3IsCiAJCSAgICAgIHdfcHJpdi0+Ym9vdGxvYWRlcl9yZXYubWlub3IpOwogCiAJbXV0ZXhfdW5sb2NrKCZ3X3ByaXYtPnN5c2ZzX211dGV4KTsKQEAgLTU2OCw3ICs1MzYsOCBAQCBzdGF0aWMgc3NpemVfdCB6aWlyYXZlX3dkdF9zeXNmc19zdG9yZV9maXJtKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJZ290byB1bmxvY2tfbXV0ZXg7CiAJfQogCi0JZGV2X2luZm8oJmNsaWVudC0+ZGV2LCAiRmlybXdhcmUgdXBkYXRlZCB0byB2ZXJzaW9uIDAyLiUwMnUuJTAydVxuIiwKKwlkZXZfaW5mbygmY2xpZW50LT5kZXYsCisJCSAiRmlybXdhcmUgdXBkYXRlZCB0byB2ZXJzaW9uICIgWklJUkFWRV9GV19WRVJTSU9OX0ZNVCAiXG4iLAogCQkgd19wcml2LT5maXJtd2FyZV9yZXYubWFqb3IsIHdfcHJpdi0+ZmlybXdhcmVfcmV2Lm1pbm9yKTsKIAogCS8qIFJlc3RvcmUgdGhlIHdhdGNoZG9nIHRpbWVvdXQgKi8KQEAgLTYxMSw3ICs1ODAsNyBAQCBzdGF0aWMgaW50IHppaXJhdmVfd2R0X2luaXRfZHVyYXRpb24oc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKIAkJCQkJCSAgICZyZXNldF9kdXJhdGlvbik7CiAJCWlmIChyZXQpIHsKIAkJCWRldl9pbmZvKCZjbGllbnQtPmRldiwKLQkJCQkgIlVuYWJsZSB0byBzZXQgcmVzZXQgcHVsc2UgZHVyYXRpb24sIHVzaW5nIGRlZmF1bHRcbiIpOworCQkJICJObyByZXNldCBwdWxzZSBkdXJhdGlvbiBzcGVjaWZpZWQsIHVzaW5nIGRlZmF1bHRcbiIpOwogCQkJcmV0dXJuIDA7CiAJCX0KIAl9CkBAIC02MzMsNyArNjAyLDEwIEBAIHN0YXRpYyBpbnQgemlpcmF2ZV93ZHRfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAlzdHJ1Y3QgemlpcmF2ZV93ZHRfZGF0YSAqd19wcml2OwogCWludCB2YWw7CiAKLQlpZiAoIWkyY19jaGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwgSTJDX0ZVTkNfU01CVVNfQllURV9EQVRBKSkKKwlpZiAoIWkyY19jaGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwKKwkJCQkgICAgIEkyQ19GVU5DX1NNQlVTX0JZVEUgfAorCQkJCSAgICAgSTJDX0ZVTkNfU01CVVNfQllURV9EQVRBIHwKKwkJCQkgICAgIEkyQ19GVU5DX1NNQlVTX1dSSVRFX0JMT0NLX0RBVEEpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCXdfcHJpdiA9IGRldm1fa3phbGxvYygmY2xpZW50LT5kZXYsIHNpemVvZigqd19wcml2KSwgR0ZQX0tFUk5FTCk7CkBAIC02NTgsNTcgKzYzMCw4MCBAQCBzdGF0aWMgaW50IHppaXJhdmVfd2R0X3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJICovCiAJaWYgKHdfcHJpdi0+d2RkLnRpbWVvdXQgPT0gMCkgewogCQl2YWwgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCBaSUlSQVZFX1dEVF9USU1FT1VUKTsKLQkJaWYgKHZhbCA8IDApCisJCWlmICh2YWwgPCAwKSB7CisJCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkZhaWxlZCB0byByZWFkIHRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIHZhbDsKKwkJfQogCi0JCWlmICh2YWwgPCBaSUlSQVZFX1RJTUVPVVRfTUlOKQotCQkJcmV0dXJuIC1FTk9ERVY7CisJCWlmICh2YWwgPiBaSUlSQVZFX1RJTUVPVVRfTUFYIHx8CisJCSAgICB2YWwgPCBaSUlSQVZFX1RJTUVPVVRfTUlOKQorCQkJdmFsID0gWklJUkFWRV9USU1FT1VUX0RFRkFVTFQ7CiAKIAkJd19wcml2LT53ZGQudGltZW91dCA9IHZhbDsKLQl9IGVsc2UgewotCQlyZXQgPSB6aWlyYXZlX3dkdF9zZXRfdGltZW91dCgmd19wcml2LT53ZGQsCi0JCQkJCSAgICAgIHdfcHJpdi0+d2RkLnRpbWVvdXQpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQotCQlkZXZfaW5mbygmY2xpZW50LT5kZXYsICJUaW1lb3V0IHNldCB0byAlZHMuIiwKLQkJCSB3X3ByaXYtPndkZC50aW1lb3V0KTsKIAl9CiAKKwlyZXQgPSB6aWlyYXZlX3dkdF9zZXRfdGltZW91dCgmd19wcml2LT53ZGQsIHdfcHJpdi0+d2RkLnRpbWVvdXQpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJGYWlsZWQgdG8gc2V0IHRpbWVvdXRcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCWRldl9pbmZvKCZjbGllbnQtPmRldiwgIlRpbWVvdXQgc2V0IHRvICVkc1xuIiwgd19wcml2LT53ZGQudGltZW91dCk7CisKIAl3YXRjaGRvZ19zZXRfbm93YXlvdXQoJndfcHJpdi0+d2RkLCBub3dheW91dCk7CiAKIAlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCB3X3ByaXYpOwogCiAJLyogSWYgaW4gdW5jb25maWd1cmVkIHN0YXRlLCBzZXQgdG8gc3RvcHBlZCAqLwogCXZhbCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIFpJSVJBVkVfV0RUX1NUQVRFKTsKLQlpZiAodmFsIDwgMCkKKwlpZiAodmFsIDwgMCkgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkZhaWxlZCB0byByZWFkIHN0YXRlXG4iKTsKIAkJcmV0dXJuIHZhbDsKKwl9CiAKIAlpZiAodmFsID09IFpJSVJBVkVfU1RBVEVfSU5JVElBTCkKIAkJemlpcmF2ZV93ZHRfc3RvcCgmd19wcml2LT53ZGQpOwogCiAJcmV0ID0gemlpcmF2ZV93ZHRfaW5pdF9kdXJhdGlvbihjbGllbnQpOwotCWlmIChyZXQpCisJaWYgKHJldCkgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkZhaWxlZCB0byBpbml0IGR1cmF0aW9uXG4iKTsKIAkJcmV0dXJuIHJldDsKKwl9CiAKIAlyZXQgPSB6aWlyYXZlX3dkdF9yZXZpc2lvbihjbGllbnQsICZ3X3ByaXYtPmZpcm13YXJlX3JldiwKIAkJCQkgICBaSUlSQVZFX1dEVF9GSVJNX1ZFUl9NQUpPUik7Ci0JaWYgKHJldCkKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiRmFpbGVkIHRvIHJlYWQgZmlybXdhcmUgdmVyc2lvblxuIik7CiAJCXJldHVybiByZXQ7CisJfQorCisJZGV2X2luZm8oJmNsaWVudC0+ZGV2LAorCQkgIkZpcm13YXJlIHZlcnNpb246ICIgWklJUkFWRV9GV19WRVJTSU9OX0ZNVCAiXG4iLAorCQkgd19wcml2LT5maXJtd2FyZV9yZXYubWFqb3IsIHdfcHJpdi0+ZmlybXdhcmVfcmV2Lm1pbm9yKTsKIAogCXJldCA9IHppaXJhdmVfd2R0X3JldmlzaW9uKGNsaWVudCwgJndfcHJpdi0+Ym9vdGxvYWRlcl9yZXYsCiAJCQkJICAgWklJUkFWRV9XRFRfQk9PVF9WRVJfTUFKT1IpOwotCWlmIChyZXQpCisJaWYgKHJldCkgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkZhaWxlZCB0byByZWFkIGJvb3Rsb2FkZXIgdmVyc2lvblxuIik7CiAJCXJldHVybiByZXQ7CisJfQorCisJZGV2X2luZm8oJmNsaWVudC0+ZGV2LAorCQkgIkJvb3Rsb2FkZXIgdmVyc2lvbjogIiBaSUlSQVZFX0JMX1ZFUlNJT05fRk1UICJcbiIsCisJCSB3X3ByaXYtPmJvb3Rsb2FkZXJfcmV2Lm1ham9yLCB3X3ByaXYtPmJvb3Rsb2FkZXJfcmV2Lm1pbm9yKTsKIAogCXdfcHJpdi0+cmVzZXRfcmVhc29uID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwKIAkJCQkJCVpJSVJBVkVfV0RUX1JFU0VUX1JFQVNPTik7Ci0JaWYgKHdfcHJpdi0+cmVzZXRfcmVhc29uIDwgMCkKKwlpZiAod19wcml2LT5yZXNldF9yZWFzb24gPCAwKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiRmFpbGVkIHRvIHJlYWQgcmVzZXQgcmVhc29uXG4iKTsKIAkJcmV0dXJuIHdfcHJpdi0+cmVzZXRfcmVhc29uOworCX0KIAogCWlmICh3X3ByaXYtPnJlc2V0X3JlYXNvbiA+PSBBUlJBWV9TSVpFKHppaXJhdmVfcmVhc29ucykgfHwKLQkgICAgIXppaXJhdmVfcmVhc29uc1t3X3ByaXYtPnJlc2V0X3JlYXNvbl0pCisJICAgICF6aWlyYXZlX3JlYXNvbnNbd19wcml2LT5yZXNldF9yZWFzb25dKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiSW52YWxpZCByZXNldCByZWFzb25cbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKIAlyZXQgPSB3YXRjaGRvZ19yZWdpc3Rlcl9kZXZpY2UoJndfcHJpdi0+d2RkKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19iYXNlLmMgYi9kcml2ZXJzL3hlbi9ldmVudHMvZXZlbnRzX2Jhc2UuYwppbmRleCAyZTg1NzBjLi42Yzg4NDM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9ldmVudHMvZXZlbnRzX2Jhc2UuYworKysgYi9kcml2ZXJzL3hlbi9ldmVudHMvZXZlbnRzX2Jhc2UuYwpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0YXRpYyB2b2lkIHhlbl9pcnFfaW5mb19jbGVhbnVwKHN0cnVjdCBpcnFfaW5mbyAqaW5mbykKICAqLwogdW5zaWduZWQgaW50IGV2dGNobl9mcm9tX2lycSh1bnNpZ25lZCBpcnEpCiB7Ci0JaWYgKHVubGlrZWx5KFdBUk4oaXJxID49IG5yX2lycXMsICJJbnZhbGlkIGlycSAlZCFcbiIsIGlycSkpKQorCWlmIChXQVJOKGlycSA+PSBucl9pcnFzLCAiSW52YWxpZCBpcnEgJWQhXG4iLCBpcnEpKQogCQlyZXR1cm4gMDsKIAogCXJldHVybiBpbmZvX2Zvcl9pcnEoaXJxKS0+ZXZ0Y2huOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vcGNpLmMgYi9kcml2ZXJzL3hlbi9wY2kuYwppbmRleCAzZWViOWJlLi4yMjRkZjAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9wY2kuYworKysgYi9kcml2ZXJzL3hlbi9wY2kuYwpAQCAtMTcsNiArMTcsOCBAQAogI2luY2x1ZGUgIi4uL3BjaS9wY2kuaCIKICNpZmRlZiBDT05GSUdfUENJX01NQ09ORklHCiAjaW5jbHVkZSA8YXNtL3BjaV94ODYuaD4KKworc3RhdGljIGludCB4ZW5fbWNmZ19sYXRlKHZvaWQpOwogI2VuZGlmCiAKIHN0YXRpYyBib29sIF9fcmVhZF9tb3N0bHkgcGNpX3NlZ19zdXBwb3J0ZWQgPSB0cnVlOwpAQCAtMjgsNyArMzAsMTggQEAgc3RhdGljIGludCB4ZW5fYWRkX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAjaWZkZWYgQ09ORklHX1BDSV9JT1YKIAlzdHJ1Y3QgcGNpX2RldiAqcGh5c2ZuID0gcGNpX2Rldi0+cGh5c2ZuOwogI2VuZGlmCi0KKyNpZmRlZiBDT05GSUdfUENJX01NQ09ORklHCisJc3RhdGljIGJvb2wgcGNpX21jZmdfcmVzZXJ2ZWQgPSBmYWxzZTsKKwkvKgorCSAqIFJlc2VydmUgTUNGRyBhcmVhcyBpbiBYZW4gb24gZmlyc3QgaW52b2NhdGlvbiBkdWUgdG8gdGhpcyBiZWluZworCSAqIHBvdGVudGlhbGx5IGNhbGxlZCBmcm9tIGluc2lkZSBvZiBhY3BpX2luaXQgaW1tZWRpYXRlbHkgYWZ0ZXIKKwkgKiBNQ0ZHIHRhYmxlIGhhcyBiZWVuIGZpbmFsbHkgcGFyc2VkLgorCSAqLworCWlmICghcGNpX21jZmdfcmVzZXJ2ZWQpIHsKKwkJeGVuX21jZmdfbGF0ZSgpOworCQlwY2lfbWNmZ19yZXNlcnZlZCA9IHRydWU7CisJfQorI2VuZGlmCiAJaWYgKHBjaV9zZWdfc3VwcG9ydGVkKSB7CiAJCXN0cnVjdCB7CiAJCQlzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlX2FkZCBhZGQ7CkBAIC0yMDEsNyArMjE0LDcgQEAgc3RhdGljIGludCBfX2luaXQgcmVnaXN0ZXJfeGVuX3BjaV9ub3RpZmllcih2b2lkKQogYXJjaF9pbml0Y2FsbChyZWdpc3Rlcl94ZW5fcGNpX25vdGlmaWVyKTsKIAogI2lmZGVmIENPTkZJR19QQ0lfTU1DT05GSUcKLXN0YXRpYyBpbnQgX19pbml0IHhlbl9tY2ZnX2xhdGUodm9pZCkKK3N0YXRpYyBpbnQgeGVuX21jZmdfbGF0ZSh2b2lkKQogewogCXN0cnVjdCBwY2lfbW1jZmdfcmVnaW9uICpjZmc7CiAJaW50IHJjOwpAQCAtMjQwLDggKzI1Myw0IEBAIHN0YXRpYyBpbnQgX19pbml0IHhlbl9tY2ZnX2xhdGUodm9pZCkKIAl9CiAJcmV0dXJuIDA7CiB9Ci0vKgotICogTmVlZHMgdG8gYmUgZG9uZSBhZnRlciBhY3BpX2luaXQgd2hpY2ggYXJlIHN1YnN5c19pbml0Y2FsbC4KLSAqLwotc3Vic3lzX2luaXRjYWxsX3N5bmMoeGVuX21jZmdfbGF0ZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3N3aW90bGIteGVuLmMgYi9kcml2ZXJzL3hlbi9zd2lvdGxiLXhlbi5jCmluZGV4IGFkY2FiZDkuLmJkM2ExMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3N3aW90bGIteGVuLmMKKysrIGIvZHJpdmVycy94ZW4vc3dpb3RsYi14ZW4uYwpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvbWVtYmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtZGlyZWN0Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW5vbmNvaGVyZW50Lmg+CiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8eGVuL3N3aW90bGIteGVuLmg+CiAjaW5jbHVkZSA8eGVuL3BhZ2UuaD4KQEAgLTM4LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxhc20veGVuL3BhZ2UtY29oZXJlbnQuaD4KIAogI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9zd2lvdGxiLmg+CisjZGVmaW5lIE1BWF9ETUFfQklUUyAzMgogLyoKICAqIFVzZWQgdG8gZG8gYSBxdWljayByYW5nZSBjaGVjayBpbiBzd2lvdGxiX3RibF91bm1hcF9zaW5nbGUgYW5kCiAgKiBzd2lvdGxiX3RibF9zeW5jX3NpbmdsZV8qLCB0byBzZWUgaWYgdGhlIG1lbW9yeSB3YXMgaW4gZmFjdCBhbGxvY2F0ZWQgYnkgdGhpcwpAQCAtMTE0LDggKzExNiw2IEBAIHN0YXRpYyBpbnQgaXNfeGVuX3N3aW90bGJfYnVmZmVyKGRtYV9hZGRyX3QgZG1hX2FkZHIpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWF4X2RtYV9iaXRzID0gMzI7Ci0KIHN0YXRpYyBpbnQKIHhlbl9zd2lvdGxiX2ZpeHVwKHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGxvbmcgbnNsYWJzKQogewpAQCAtMTM1LDcgKzEzNSw3IEBAIHhlbl9zd2lvdGxiX2ZpeHVwKHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGxvbmcgbnNsYWJzKQogCQkJCXAgKyAoaSA8PCBJT19UTEJfU0hJRlQpLAogCQkJCWdldF9vcmRlcihzbGFicyA8PCBJT19UTEJfU0hJRlQpLAogCQkJCWRtYV9iaXRzLCAmZG1hX2hhbmRsZSk7Ci0JCX0gd2hpbGUgKHJjICYmIGRtYV9iaXRzKysgPCBtYXhfZG1hX2JpdHMpOworCQl9IHdoaWxlIChyYyAmJiBkbWFfYml0cysrIDwgTUFYX0RNQV9CSVRTKTsKIAkJaWYgKHJjKQogCQkJcmV0dXJuIHJjOwogCkBAIC0zOTEsNiArMzkxLDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgeGVuX3N3aW90bGJfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAlpZiAobWFwID09IChwaHlzX2FkZHJfdClETUFfTUFQUElOR19FUlJPUikKIAkJcmV0dXJuIERNQV9NQVBQSU5HX0VSUk9SOwogCisJcGh5cyA9IG1hcDsKIAlkZXZfYWRkciA9IHhlbl9waHlzX3RvX2J1cyhtYXApOwogCiAJLyoKQEAgLTQwMiwxNCArNDAzLDkgQEAgc3RhdGljIGRtYV9hZGRyX3QgeGVuX3N3aW90bGJfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJcmV0dXJuIERNQV9NQVBQSU5HX0VSUk9SOwogCX0KIAotCXBhZ2UgPSBwZm5fdG9fcGFnZShtYXAgPj4gUEFHRV9TSElGVCk7Ci0Jb2Zmc2V0ID0gbWFwICYgflBBR0VfTUFTSzsKIGRvbmU6Ci0JLyoKLQkgKiB3ZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gdGhlIGRtYV9hZGRyIHJldHVybmVkIGJ5IHhlbl9kbWFfbWFwX3BhZ2UsCi0JICogb25seSBpbiB0aGUgcG90ZW50aWFsIGNhY2hlIGZsdXNoZXMgZXhlY3V0ZWQgYnkgdGhlIGZ1bmN0aW9uLgotCSAqLwotCXhlbl9kbWFfbWFwX3BhZ2UoZGV2LCBwYWdlLCBkZXZfYWRkciwgb2Zmc2V0LCBzaXplLCBkaXIsIGF0dHJzKTsKKwlpZiAoIWRldl9pc19kbWFfY29oZXJlbnQoZGV2KSAmJiAhKGF0dHJzICYgRE1BX0FUVFJfU0tJUF9DUFVfU1lOQykpCisJCXhlbl9kbWFfc3luY19mb3JfZGV2aWNlKGRldiwgZGV2X2FkZHIsIHBoeXMsIHNpemUsIGRpcik7CiAJcmV0dXJuIGRldl9hZGRyOwogfQogCkBAIC00MjEsMzUgKzQxNywyOSBAQCBzdGF0aWMgZG1hX2FkZHJfdCB4ZW5fc3dpb3RsYl9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAogICogQWZ0ZXIgdGhpcyBjYWxsLCByZWFkcyBieSB0aGUgY3B1IHRvIHRoZSBidWZmZXIgYXJlIGd1YXJhbnRlZWQgdG8gc2VlCiAgKiB3aGF0ZXZlciB0aGUgZGV2aWNlIHdyb3RlIHRoZXJlLgogICovCi1zdGF0aWMgdm9pZCB4ZW5fdW5tYXBfc2luZ2xlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBkbWFfYWRkcl90IGRldl9hZGRyLAotCQkJICAgICBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCQkJICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQorc3RhdGljIHZvaWQgeGVuX3N3aW90bGJfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2RldiwgZG1hX2FkZHJfdCBkZXZfYWRkciwKKwkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlwaHlzX2FkZHJfdCBwYWRkciA9IHhlbl9idXNfdG9fcGh5cyhkZXZfYWRkcik7CiAKIAlCVUdfT04oZGlyID09IERNQV9OT05FKTsKIAotCXhlbl9kbWFfdW5tYXBfcGFnZShod2RldiwgZGV2X2FkZHIsIHNpemUsIGRpciwgYXR0cnMpOworCWlmICghZGV2X2lzX2RtYV9jb2hlcmVudChod2RldikgJiYgIShhdHRycyAmIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpKQorCQl4ZW5fZG1hX3N5bmNfZm9yX2NwdShod2RldiwgZGV2X2FkZHIsIHBhZGRyLCBzaXplLCBkaXIpOwogCiAJLyogTk9URTogV2UgdXNlIGRldl9hZGRyIGhlcmUsIG5vdCBwYWRkciEgKi8KIAlpZiAoaXNfeGVuX3N3aW90bGJfYnVmZmVyKGRldl9hZGRyKSkKIAkJc3dpb3RsYl90YmxfdW5tYXBfc2luZ2xlKGh3ZGV2LCBwYWRkciwgc2l6ZSwgc2l6ZSwgZGlyLCBhdHRycyk7CiB9CiAKLXN0YXRpYyB2b2lkIHhlbl9zd2lvdGxiX3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIGRtYV9hZGRyX3QgZGV2X2FkZHIsCi0JCQkgICAgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJCSAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQotewotCXhlbl91bm1hcF9zaW5nbGUoaHdkZXYsIGRldl9hZGRyLCBzaXplLCBkaXIsIGF0dHJzKTsKLX0KLQogc3RhdGljIHZvaWQKIHhlbl9zd2lvdGxiX3N5bmNfc2luZ2xlX2Zvcl9jcHUoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGRtYV9hZGRyLAogCQlzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQogewogCXBoeXNfYWRkcl90IHBhZGRyID0geGVuX2J1c190b19waHlzKGRtYV9hZGRyKTsKIAotCXhlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShkZXYsIGRtYV9hZGRyLCBzaXplLCBkaXIpOworCWlmICghZGV2X2lzX2RtYV9jb2hlcmVudChkZXYpKQorCQl4ZW5fZG1hX3N5bmNfZm9yX2NwdShkZXYsIGRtYV9hZGRyLCBwYWRkciwgc2l6ZSwgZGlyKTsKIAogCWlmIChpc194ZW5fc3dpb3RsYl9idWZmZXIoZG1hX2FkZHIpKQogCQlzd2lvdGxiX3RibF9zeW5jX3NpbmdsZShkZXYsIHBhZGRyLCBzaXplLCBkaXIsIFNZTkNfRk9SX0NQVSk7CkBAIC00NjQsNyArNDU0LDggQEAgeGVuX3N3aW90bGJfc3luY19zaW5nbGVfZm9yX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRyX3QgZG1hX2FkZHIsCiAJaWYgKGlzX3hlbl9zd2lvdGxiX2J1ZmZlcihkbWFfYWRkcikpCiAJCXN3aW90bGJfdGJsX3N5bmNfc2luZ2xlKGRldiwgcGFkZHIsIHNpemUsIGRpciwgU1lOQ19GT1JfREVWSUNFKTsKIAotCXhlbl9kbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShkZXYsIGRtYV9hZGRyLCBzaXplLCBkaXIpOworCWlmICghZGV2X2lzX2RtYV9jb2hlcmVudChkZXYpKQorCQl4ZW5fZG1hX3N5bmNfZm9yX2RldmljZShkZXYsIGRtYV9hZGRyLCBwYWRkciwgc2l6ZSwgZGlyKTsKIH0KIAogLyoKQEAgLTQ4MSw3ICs0NzIsOCBAQCB4ZW5fc3dpb3RsYl91bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2wsIGludCBuZWxlbXMsCiAJQlVHX09OKGRpciA9PSBETUFfTk9ORSk7CiAKIAlmb3JfZWFjaF9zZyhzZ2wsIHNnLCBuZWxlbXMsIGkpCi0JCXhlbl91bm1hcF9zaW5nbGUoaHdkZXYsIHNnLT5kbWFfYWRkcmVzcywgc2dfZG1hX2xlbihzZyksIGRpciwgYXR0cnMpOworCQl4ZW5fc3dpb3RsYl91bm1hcF9wYWdlKGh3ZGV2LCBzZy0+ZG1hX2FkZHJlc3MsIHNnX2RtYV9sZW4oc2cpLAorCQkJCWRpciwgYXR0cnMpOwogCiB9CiAKQEAgLTU0Nyw1MSArNTM5LDYgQEAgeGVuX3N3aW90bGJfZG1hX3N1cHBvcnRlZChzdHJ1Y3QgZGV2aWNlICpod2RldiwgdTY0IG1hc2spCiAJcmV0dXJuIHhlbl92aXJ0X3RvX2J1cyh4ZW5faW9fdGxiX2VuZCAtIDEpIDw9IG1hc2s7CiB9CiAKLS8qCi0gKiBDcmVhdGUgdXNlcnNwYWNlIG1hcHBpbmcgZm9yIHRoZSBETUEtY29oZXJlbnQgbWVtb3J5LgotICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIHdpdGggdGhlIHBhZ2VzIGZyb20gdGhlIGN1cnJlbnQgZG9tYWluIG9ubHksCi0gKiBwYXNzaW5nIHBhZ2VzIG1hcHBlZCBmcm9tIG90aGVyIGRvbWFpbnMgd291bGQgbGVhZCB0byBtZW1vcnkgY29ycnVwdGlvbi4KLSAqLwotc3RhdGljIGludAoteGVuX3N3aW90bGJfZG1hX21tYXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJICAgICB2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfYWRkciwgc2l6ZV90IHNpemUsCi0JCSAgICAgdW5zaWduZWQgbG9uZyBhdHRycykKLXsKLSNpZmRlZiBDT05GSUdfQVJNCi0JaWYgKHhlbl9nZXRfZG1hX29wcyhkZXYpLT5tbWFwKQotCQlyZXR1cm4geGVuX2dldF9kbWFfb3BzKGRldiktPm1tYXAoZGV2LCB2bWEsIGNwdV9hZGRyLAotCQkJCQkJICAgIGRtYV9hZGRyLCBzaXplLCBhdHRycyk7Ci0jZW5kaWYKLQlyZXR1cm4gZG1hX2NvbW1vbl9tbWFwKGRldiwgdm1hLCBjcHVfYWRkciwgZG1hX2FkZHIsIHNpemUsIGF0dHJzKTsKLX0KLQotLyoKLSAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHRoZSBwYWdlcyBmcm9tIHRoZSBjdXJyZW50IGRvbWFpbiBvbmx5LAotICogcGFzc2luZyBwYWdlcyBtYXBwZWQgZnJvbSBvdGhlciBkb21haW5zIHdvdWxkIGxlYWQgdG8gbWVtb3J5IGNvcnJ1cHRpb24uCi0gKi8KLXN0YXRpYyBpbnQKLXhlbl9zd2lvdGxiX2dldF9zZ3RhYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNnX3RhYmxlICpzZ3QsCi0JCQl2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLAotCQkJdW5zaWduZWQgbG9uZyBhdHRycykKLXsKLSNpZmRlZiBDT05GSUdfQVJNCi0JaWYgKHhlbl9nZXRfZG1hX29wcyhkZXYpLT5nZXRfc2d0YWJsZSkgewotI2lmIDAKLQkvKgotCSAqIFRoaXMgY2hlY2sgdmVyaWZpZXMgdGhhdCB0aGUgcGFnZSBiZWxvbmdzIHRvIHRoZSBjdXJyZW50IGRvbWFpbiBhbmQKLQkgKiBpcyBub3Qgb25lIG1hcHBlZCBmcm9tIGFub3RoZXIgZG9tYWluLgotCSAqIFRoaXMgY2hlY2sgaXMgZm9yIGRlYnVnIG9ubHksIGFuZCBzaG91bGQgbm90IGdvIHRvIHByb2R1Y3Rpb24gYnVpbGQKLQkgKi8KLQkJdW5zaWduZWQgbG9uZyBiZm4gPSBQSFlTX1BGTihkbWFfdG9fcGh5cyhkZXYsIGhhbmRsZSkpOwotCQlCVUdfT04gKCFwYWdlX2lzX3JhbShiZm4pKTsKLSNlbmRpZgotCQlyZXR1cm4geGVuX2dldF9kbWFfb3BzKGRldiktPmdldF9zZ3RhYmxlKGRldiwgc2d0LCBjcHVfYWRkciwKLQkJCQkJCQkgICBoYW5kbGUsIHNpemUsIGF0dHJzKTsKLQl9Ci0jZW5kaWYKLQlyZXR1cm4gZG1hX2NvbW1vbl9nZXRfc2d0YWJsZShkZXYsIHNndCwgY3B1X2FkZHIsIGhhbmRsZSwgc2l6ZSwgYXR0cnMpOwotfQotCiBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgeGVuX3N3aW90bGJfZG1hX29wcyA9IHsKIAkuYWxsb2MgPSB4ZW5fc3dpb3RsYl9hbGxvY19jb2hlcmVudCwKIAkuZnJlZSA9IHhlbl9zd2lvdGxiX2ZyZWVfY29oZXJlbnQsCkBAIC02MDQsNiArNTUxLDYgQEAgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIHhlbl9zd2lvdGxiX2RtYV9vcHMgPSB7CiAJLm1hcF9wYWdlID0geGVuX3N3aW90bGJfbWFwX3BhZ2UsCiAJLnVubWFwX3BhZ2UgPSB4ZW5fc3dpb3RsYl91bm1hcF9wYWdlLAogCS5kbWFfc3VwcG9ydGVkID0geGVuX3N3aW90bGJfZG1hX3N1cHBvcnRlZCwKLQkubW1hcCA9IHhlbl9zd2lvdGxiX2RtYV9tbWFwLAotCS5nZXRfc2d0YWJsZSA9IHhlbl9zd2lvdGxiX2dldF9zZ3RhYmxlLAorCS5tbWFwID0gZG1hX2NvbW1vbl9tbWFwLAorCS5nZXRfc2d0YWJsZSA9IGRtYV9jb21tb25fZ2V0X3NndGFibGUsCiB9OwpkaWZmIC0tZ2l0IGEvZnMvOXAvY2FjaGUuYyBiL2ZzLzlwL2NhY2hlLmMKaW5kZXggOTk1ZTMzMmUuLmViMjE1MWYgMTAwNjQ0Ci0tLSBhL2ZzLzlwL2NhY2hlLmMKKysrIGIvZnMvOXAvY2FjaGUuYwpAQCAtNTEsNiArNTEsOCBAQCB2b2lkIHY5ZnNfY2FjaGVfc2Vzc2lvbl9nZXRfY29va2llKHN0cnVjdCB2OWZzX3Nlc3Npb25faW5mbyAqdjlzZXMpCiAJaWYgKCF2OXNlcy0+Y2FjaGV0YWcpIHsKIAkJaWYgKHY5ZnNfcmFuZG9tX2NhY2hldGFnKHY5c2VzKSA8IDApIHsKIAkJCXY5c2VzLT5mc2NhY2hlID0gTlVMTDsKKwkJCWtmcmVlKHY5c2VzLT5jYWNoZXRhZyk7CisJCQl2OXNlcy0+Y2FjaGV0YWcgPSBOVUxMOwogCQkJcmV0dXJuOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZnMvOXAvdmZzX2ZpbGUuYyBiL2ZzLzlwL3Zmc19maWxlLmMKaW5kZXggNGNjOTY2YS4uZmU3ZjBiZCAxMDA2NDQKLS0tIGEvZnMvOXAvdmZzX2ZpbGUuYworKysgYi9mcy85cC92ZnNfZmlsZS5jCkBAIC01MTMsNiArNTEzLDcgQEAgdjlmc19tbWFwX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJdjlpbm9kZSA9IFY5RlNfSShpbm9kZSk7CiAJbXV0ZXhfbG9jaygmdjlpbm9kZS0+dl9tdXRleCk7CiAJaWYgKCF2OWlub2RlLT53cml0ZWJhY2tfZmlkICYmCisJICAgICh2bWEtPnZtX2ZsYWdzICYgVk1fU0hBUkVEKSAmJgogCSAgICAodm1hLT52bV9mbGFncyAmIFZNX1dSSVRFKSkgewogCQkvKgogCQkgKiBjbG9uZSBhIGZpZCBhbmQgYWRkIGl0IHRvIHdyaXRlYmFja19maWQKQEAgLTYxNCw2ICs2MTUsOCBAQCBzdGF0aWMgdm9pZCB2OWZzX21tYXBfdm1fY2xvc2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJCQkodm1hLT52bV9lbmQgLSB2bWEtPnZtX3N0YXJ0IC0gMSksCiAJfTsKIAorCWlmICghKHZtYS0+dm1fZmxhZ3MgJiBWTV9TSEFSRUQpKQorCQlyZXR1cm47CiAKIAlwOV9kZWJ1ZyhQOV9ERUJVR19WRlMsICI5cCBWTUEgY2xvc2UsICVwLCBmbHVzaGluZyIsIHZtYSk7CiAKZGlmZiAtLWdpdCBhL2ZzLzlwL3Zmc19zdXBlci5jIGIvZnMvOXAvdmZzX3N1cGVyLmMKaW5kZXggMDgxMTJmYi4uNzRkZjMyYiAxMDA2NDQKLS0tIGEvZnMvOXAvdmZzX3N1cGVyLmMKKysrIGIvZnMvOXAvdmZzX3N1cGVyLmMKQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIGludCB2OWZzX3NldF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKmRhdGEpCiAKIHN0YXRpYyBpbnQKIHY5ZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qgdjlmc19zZXNzaW9uX2luZm8gKnY5c2VzLAotCQlpbnQgZmxhZ3MsIHZvaWQgKmRhdGEpCisJCWludCBmbGFncykKIHsKIAlpbnQgcmV0OwogCkBAIC02OSw4ICs2OSwxMiBAQCB2OWZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IHY5ZnNfc2Vzc2lvbl9pbmZvICp2OXNlcywKIAlpZiAodjlmc19wcm90b19kb3RsKHY5c2VzKSkgewogCQlzYi0+c19vcCA9ICZ2OWZzX3N1cGVyX29wc19kb3RsOwogCQlzYi0+c194YXR0ciA9IHY5ZnNfeGF0dHJfaGFuZGxlcnM7Ci0JfSBlbHNlCisJfSBlbHNlIHsKIAkJc2ItPnNfb3AgPSAmdjlmc19zdXBlcl9vcHM7CisJCXNiLT5zX3RpbWVfbWF4ID0gVTMyX01BWDsKKwl9CisKKwlzYi0+c190aW1lX21pbiA9IDA7CiAKIAlyZXQgPSBzdXBlcl9zZXR1cF9iZGkoc2IpOwogCWlmIChyZXQpCkBAIC0xMjgsNyArMTMyLDcgQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKnY5ZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsIGludCBmbGFncywKIAkJcmV0dmFsID0gUFRSX0VSUihzYik7CiAJCWdvdG8gY2x1bmtfZmlkOwogCX0KLQlyZXR2YWwgPSB2OWZzX2ZpbGxfc3VwZXIoc2IsIHY5c2VzLCBmbGFncywgZGF0YSk7CisJcmV0dmFsID0gdjlmc19maWxsX3N1cGVyKHNiLCB2OXNlcywgZmxhZ3MpOwogCWlmIChyZXR2YWwpCiAJCWdvdG8gcmVsZWFzZV9zYjsKIApkaWZmIC0tZ2l0IGEvZnMvYWZmcy9hbWlnYWZmcy5jIGIvZnMvYWZmcy9hbWlnYWZmcy5jCmluZGV4IDE0YTZjMWIuLmY3MDhjNDVkIDEwMDY0NAotLS0gYS9mcy9hZmZzL2FtaWdhZmZzLmMKKysrIGIvZnMvYWZmcy9hbWlnYWZmcy5jCkBAIC0zNzUsNyArMzc1LDcgQEAgYWZmc19zZWNzX3RvX2RhdGVzdGFtcCh0aW1lNjRfdCBzZWNzLCBzdHJ1Y3QgYWZmc19kYXRlICpkcykKIAl1MzIJIG1pbnV0ZTsKIAlzMzIJIHJlbTsKIAotCXNlY3MgLT0gc3lzX3R6LnR6X21pbnV0ZXN3ZXN0ICogNjAgKyAoKDggKiAzNjUgKyAyKSAqIDI0ICogNjAgKiA2MCk7CisJc2VjcyAtPSBzeXNfdHoudHpfbWludXRlc3dlc3QgKiA2MCArIEFGRlNfRVBPQ0hfREVMVEE7CiAJaWYgKHNlY3MgPCAwKQogCQlzZWNzID0gMDsKIAlkYXlzICAgID0gZGl2X3M2NF9yZW0oc2VjcywgODY0MDAsICZyZW0pOwpkaWZmIC0tZ2l0IGEvZnMvYWZmcy9hbWlnYWZmcy5oIGIvZnMvYWZmcy9hbWlnYWZmcy5oCmluZGV4IGY5YmVmOTAuLjgxZmIzOTYgMTAwNjQ0Ci0tLSBhL2ZzL2FmZnMvYW1pZ2FmZnMuaAorKysgYi9mcy9hZmZzL2FtaWdhZmZzLmgKQEAgLTMyLDYgKzMyLDkgQEAKIAogI2RlZmluZSBBRkZTX1JPT1RfQk1BUFMJCTI1CiAKKy8qIFNlY29uZHMgc2luY2UgQW1pZ2EgZXBvY2ggb2YgMTk3OC8wMS8wMSB0byBVTklYICovCisjZGVmaW5lIEFGRlNfRVBPQ0hfREVMVEEgKCg4ICogMzY1ICsgMikgKiA4NjQwMExMKQorCiBzdHJ1Y3QgYWZmc19kYXRlIHsKIAlfX2JlMzIgZGF5czsKIAlfX2JlMzIgbWluczsKZGlmZiAtLWdpdCBhL2ZzL2FmZnMvaW5vZGUuYyBiL2ZzL2FmZnMvaW5vZGUuYwppbmRleCA3MzU5OGJmLi5hMzQ2Y2Y3IDEwMDY0NAotLS0gYS9mcy9hZmZzL2lub2RlLmMKKysrIGIvZnMvYWZmcy9pbm9kZS5jCkBAIC0xNTAsMTAgKzE1MCwxMCBAQCBzdHJ1Y3QgaW5vZGUgKmFmZnNfaWdldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1bnNpZ25lZCBsb25nIGlubykKIAl9CiAKIAlpbm9kZS0+aV9tdGltZS50dl9zZWMgPSBpbm9kZS0+aV9hdGltZS50dl9zZWMgPSBpbm9kZS0+aV9jdGltZS50dl9zZWMKLQkJICAgICAgID0gKGJlMzJfdG9fY3B1KHRhaWwtPmNoYW5nZS5kYXlzKSAqICgyNCAqIDYwICogNjApICsKKwkJICAgICAgID0gKGJlMzJfdG9fY3B1KHRhaWwtPmNoYW5nZS5kYXlzKSAqIDg2NDAwTEwgKwogCQkgICAgICAgICBiZTMyX3RvX2NwdSh0YWlsLT5jaGFuZ2UubWlucykgKiA2MCArCiAJCQkgYmUzMl90b19jcHUodGFpbC0+Y2hhbmdlLnRpY2tzKSAvIDUwICsKLQkJCSAoKDggKiAzNjUgKyAyKSAqIDI0ICogNjAgKiA2MCkpICsKKwkJCSBBRkZTX0VQT0NIX0RFTFRBKSArCiAJCQkgc3lzX3R6LnR6X21pbnV0ZXN3ZXN0ICogNjA7CiAJaW5vZGUtPmlfbXRpbWUudHZfbnNlYyA9IGlub2RlLT5pX2N0aW1lLnR2X25zZWMgPSBpbm9kZS0+aV9hdGltZS50dl9uc2VjID0gMDsKIAlhZmZzX2JyZWxzZShiaCk7CmRpZmYgLS1naXQgYS9mcy9hZmZzL3N1cGVyLmMgYi9mcy9hZmZzL3N1cGVyLmMKaW5kZXggZTdkMDM2ZS4uY2M0NjNhZTQgMTAwNjQ0Ci0tLSBhL2ZzL2FmZnMvc3VwZXIuYworKysgYi9mcy9hZmZzL3N1cGVyLmMKQEAgLTM1NSw2ICszNTUsMTAgQEAgc3RhdGljIGludCBhZmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAlzYi0+c19vcCAgICAgICAgICAgICAgICA9ICZhZmZzX3NvcHM7CiAJc2ItPnNfZmxhZ3MgfD0gU0JfTk9ESVJBVElNRTsKIAorCXNiLT5zX3RpbWVfZ3JhbiA9IE5TRUNfUEVSX1NFQzsKKwlzYi0+c190aW1lX21pbiA9IHN5c190ei50el9taW51dGVzd2VzdCAqIDYwICsgQUZGU19FUE9DSF9ERUxUQTsKKwlzYi0+c190aW1lX21heCA9IDg2NDAwTEwgKiBVMzJfTUFYICsgODY0MDAgKyBzYi0+c190aW1lX21pbjsKKwogCXNiaSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhZmZzX3NiX2luZm8pLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNiaSkKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9mcy9hdHRyLmMgYi9mcy9hdHRyLmMKaW5kZXggZDIyZTgxOC4uZGYyODAzNSAxMDA2NDQKLS0tIGEvZnMvYXR0ci5jCisrKyBiL2ZzL2F0dHIuYwpAQCAtMTgzLDE1ICsxODMsMTggQEAgdm9pZCBzZXRhdHRyX2NvcHkoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGlhdHRyICphdHRyKQogCQlpbm9kZS0+aV91aWQgPSBhdHRyLT5pYV91aWQ7CiAJaWYgKGlhX3ZhbGlkICYgQVRUUl9HSUQpCiAJCWlub2RlLT5pX2dpZCA9IGF0dHItPmlhX2dpZDsKLQlpZiAoaWFfdmFsaWQgJiBBVFRSX0FUSU1FKQotCQlpbm9kZS0+aV9hdGltZSA9IHRpbWVzcGVjNjRfdHJ1bmMoYXR0ci0+aWFfYXRpbWUsCi0JCQkJCQkgIGlub2RlLT5pX3NiLT5zX3RpbWVfZ3Jhbik7Ci0JaWYgKGlhX3ZhbGlkICYgQVRUUl9NVElNRSkKLQkJaW5vZGUtPmlfbXRpbWUgPSB0aW1lc3BlYzY0X3RydW5jKGF0dHItPmlhX210aW1lLAotCQkJCQkJICBpbm9kZS0+aV9zYi0+c190aW1lX2dyYW4pOwotCWlmIChpYV92YWxpZCAmIEFUVFJfQ1RJTUUpCi0JCWlub2RlLT5pX2N0aW1lID0gdGltZXNwZWM2NF90cnVuYyhhdHRyLT5pYV9jdGltZSwKLQkJCQkJCSAgaW5vZGUtPmlfc2ItPnNfdGltZV9ncmFuKTsKKwlpZiAoaWFfdmFsaWQgJiBBVFRSX0FUSU1FKSB7CisJCWlub2RlLT5pX2F0aW1lID0gdGltZXN0YW1wX3RydW5jYXRlKGF0dHItPmlhX2F0aW1lLAorCQkJCQkJICBpbm9kZSk7CisJfQorCWlmIChpYV92YWxpZCAmIEFUVFJfTVRJTUUpIHsKKwkJaW5vZGUtPmlfbXRpbWUgPSB0aW1lc3RhbXBfdHJ1bmNhdGUoYXR0ci0+aWFfbXRpbWUsCisJCQkJCQkgIGlub2RlKTsKKwl9CisJaWYgKGlhX3ZhbGlkICYgQVRUUl9DVElNRSkgeworCQlpbm9kZS0+aV9jdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZShhdHRyLT5pYV9jdGltZSwKKwkJCQkJCSAgaW5vZGUpOworCX0KIAlpZiAoaWFfdmFsaWQgJiBBVFRSX01PREUpIHsKIAkJdW1vZGVfdCBtb2RlID0gYXR0ci0+aWFfbW9kZTsKIApkaWZmIC0tZ2l0IGEvZnMvYXV0b2ZzL2F1dG9mc19pLmggYi9mcy9hdXRvZnMvYXV0b2ZzX2kuaAppbmRleCA4YzBjMTExLi44YmNlYzhkIDEwMDY0NAotLS0gYS9mcy9hdXRvZnMvYXV0b2ZzX2kuaAorKysgYi9mcy9hdXRvZnMvYXV0b2ZzX2kuaApAQCAtNTgsNyArNTgsNiBAQCBzdHJ1Y3QgYXV0b2ZzX2luZm8gewogCXN0cnVjdCBjb21wbGV0aW9uIGV4cGlyZV9jb21wbGV0ZTsKIAogCXN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlOwotCWludCBhY3RpdmVfY291bnQ7CiAKIAlzdHJ1Y3QgbGlzdF9oZWFkIGV4cGlyaW5nOwogCmRpZmYgLS1naXQgYS9mcy9hdXRvZnMvZXhwaXJlLmMgYi9mcy9hdXRvZnMvZXhwaXJlLmMKaW5kZXggY2RmZjA1Ni4uMjg2NmZhYiAxMDA2NDQKLS0tIGEvZnMvYXV0b2ZzL2V4cGlyZS5jCisrKyBiL2ZzL2F1dG9mcy9leHBpcmUuYwpAQCAtNzAsNiArNzAsMjcgQEAgc3RhdGljIGludCBhdXRvZnNfbW91bnRfYnVzeShzdHJ1Y3QgdmZzbW91bnQgKm1udCwKIAlyZXR1cm4gc3RhdHVzOwogfQogCisvKiBwLT5kX2xvY2sgaGVsZCAqLworc3RhdGljIHN0cnVjdCBkZW50cnkgKnBvc2l0aXZlX2FmdGVyKHN0cnVjdCBkZW50cnkgKnAsIHN0cnVjdCBkZW50cnkgKmNoaWxkKQoreworCWlmIChjaGlsZCkKKwkJY2hpbGQgPSBsaXN0X25leHRfZW50cnkoY2hpbGQsIGRfY2hpbGQpOworCWVsc2UKKwkJY2hpbGQgPSBsaXN0X2ZpcnN0X2VudHJ5KCZwLT5kX3N1YmRpcnMsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9mcm9tKGNoaWxkLCAmcC0+ZF9zdWJkaXJzLCBkX2NoaWxkKSB7CisJCXNwaW5fbG9ja19uZXN0ZWQoJmNoaWxkLT5kX2xvY2ssIERFTlRSWV9EX0xPQ0tfTkVTVEVEKTsKKwkJaWYgKHNpbXBsZV9wb3NpdGl2ZShjaGlsZCkpIHsKKwkJCWRnZXRfZGxvY2soY2hpbGQpOworCQkJc3Bpbl91bmxvY2soJmNoaWxkLT5kX2xvY2spOworCQkJcmV0dXJuIGNoaWxkOworCQl9CisJCXNwaW5fdW5sb2NrKCZjaGlsZC0+ZF9sb2NrKTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKwogLyoKICAqIENhbGN1bGF0ZSBhbmQgZGdldCBuZXh0IGVudHJ5IGluIHRoZSBzdWJkaXJzIGxpc3QgdW5kZXIgcm9vdC4KICAqLwpAQCAtNzcsNDMgKzk4LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpnZXRfbmV4dF9wb3NpdGl2ZV9zdWJkaXIoc3RydWN0IGRlbnRyeSAqcHJldiwKIAkJCQkJICAgICAgIHN0cnVjdCBkZW50cnkgKnJvb3QpCiB7CiAJc3RydWN0IGF1dG9mc19zYl9pbmZvICpzYmkgPSBhdXRvZnNfc2JpKHJvb3QtPmRfc2IpOwotCXN0cnVjdCBsaXN0X2hlYWQgKm5leHQ7CiAJc3RydWN0IGRlbnRyeSAqcTsKIAogCXNwaW5fbG9jaygmc2JpLT5sb29rdXBfbG9jayk7CiAJc3Bpbl9sb2NrKCZyb290LT5kX2xvY2spOwotCi0JaWYgKHByZXYpCi0JCW5leHQgPSBwcmV2LT5kX2NoaWxkLm5leHQ7Ci0JZWxzZSB7Ci0JCXByZXYgPSBkZ2V0X2Rsb2NrKHJvb3QpOwotCQluZXh0ID0gcHJldi0+ZF9zdWJkaXJzLm5leHQ7Ci0JfQotCi1jb250OgotCWlmIChuZXh0ID09ICZyb290LT5kX3N1YmRpcnMpIHsKLQkJc3Bpbl91bmxvY2soJnJvb3QtPmRfbG9jayk7Ci0JCXNwaW5fdW5sb2NrKCZzYmktPmxvb2t1cF9sb2NrKTsKLQkJZHB1dChwcmV2KTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCi0JcSA9IGxpc3RfZW50cnkobmV4dCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7Ci0KLQlzcGluX2xvY2tfbmVzdGVkKCZxLT5kX2xvY2ssIERFTlRSWV9EX0xPQ0tfTkVTVEVEKTsKLQkvKiBBbHJlYWR5IGdvbmUgb3IgbmVnYXRpdmUgZGVudHJ5ICh1bmRlciBjb25zdHJ1Y3Rpb24pIC0gdHJ5IG5leHQgKi8KLQlpZiAoIWRfY291bnQocSkgfHwgIXNpbXBsZV9wb3NpdGl2ZShxKSkgewotCQlzcGluX3VubG9jaygmcS0+ZF9sb2NrKTsKLQkJbmV4dCA9IHEtPmRfY2hpbGQubmV4dDsKLQkJZ290byBjb250OwotCX0KLQlkZ2V0X2Rsb2NrKHEpOwotCXNwaW5fdW5sb2NrKCZxLT5kX2xvY2spOworCXEgPSBwb3NpdGl2ZV9hZnRlcihyb290LCBwcmV2KTsKIAlzcGluX3VubG9jaygmcm9vdC0+ZF9sb2NrKTsKIAlzcGluX3VubG9jaygmc2JpLT5sb29rdXBfbG9jayk7Ci0KIAlkcHV0KHByZXYpOwotCiAJcmV0dXJuIHE7CiB9CiAKQEAgLTEyNCw1OSArMTE2LDI4IEBAIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpnZXRfbmV4dF9wb3NpdGl2ZV9kZW50cnkoc3RydWN0IGRlbnRyeSAqcHJldiwKIAkJCQkJICAgICAgIHN0cnVjdCBkZW50cnkgKnJvb3QpCiB7CiAJc3RydWN0IGF1dG9mc19zYl9pbmZvICpzYmkgPSBhdXRvZnNfc2JpKHJvb3QtPmRfc2IpOwotCXN0cnVjdCBsaXN0X2hlYWQgKm5leHQ7Ci0Jc3RydWN0IGRlbnRyeSAqcCwgKnJldDsKKwlzdHJ1Y3QgZGVudHJ5ICpwID0gcHJldiwgKnJldCA9IE5VTEwsICpkID0gTlVMTDsKIAogCWlmIChwcmV2ID09IE5VTEwpCiAJCXJldHVybiBkZ2V0KHJvb3QpOwogCiAJc3Bpbl9sb2NrKCZzYmktPmxvb2t1cF9sb2NrKTsKLXJlbG9jazoKLQlwID0gcHJldjsKIAlzcGluX2xvY2soJnAtPmRfbG9jayk7Ci1hZ2FpbjoKLQluZXh0ID0gcC0+ZF9zdWJkaXJzLm5leHQ7Ci0JaWYgKG5leHQgPT0gJnAtPmRfc3ViZGlycykgewotCQl3aGlsZSAoMSkgewotCQkJc3RydWN0IGRlbnRyeSAqcGFyZW50OworCXdoaWxlICgxKSB7CisJCXN0cnVjdCBkZW50cnkgKnBhcmVudDsKIAotCQkJaWYgKHAgPT0gcm9vdCkgewotCQkJCXNwaW5fdW5sb2NrKCZwLT5kX2xvY2spOwotCQkJCXNwaW5fdW5sb2NrKCZzYmktPmxvb2t1cF9sb2NrKTsKLQkJCQlkcHV0KHByZXYpOwotCQkJCXJldHVybiBOVUxMOwotCQkJfQotCi0JCQlwYXJlbnQgPSBwLT5kX3BhcmVudDsKLQkJCWlmICghc3Bpbl90cnlsb2NrKCZwYXJlbnQtPmRfbG9jaykpIHsKLQkJCQlzcGluX3VubG9jaygmcC0+ZF9sb2NrKTsKLQkJCQljcHVfcmVsYXgoKTsKLQkJCQlnb3RvIHJlbG9jazsKLQkJCX0KLQkJCXNwaW5fdW5sb2NrKCZwLT5kX2xvY2spOwotCQkJbmV4dCA9IHAtPmRfY2hpbGQubmV4dDsKLQkJCXAgPSBwYXJlbnQ7Ci0JCQlpZiAobmV4dCAhPSAmcGFyZW50LT5kX3N1YmRpcnMpCi0JCQkJYnJlYWs7Ci0JCX0KLQl9Ci0JcmV0ID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsKLQotCXNwaW5fbG9ja19uZXN0ZWQoJnJldC0+ZF9sb2NrLCBERU5UUllfRF9MT0NLX05FU1RFRCk7Ci0JLyogTmVnYXRpdmUgZGVudHJ5IC0gdHJ5IG5leHQgKi8KLQlpZiAoIXNpbXBsZV9wb3NpdGl2ZShyZXQpKSB7CisJCXJldCA9IHBvc2l0aXZlX2FmdGVyKHAsIGQpOworCQlpZiAocmV0IHx8IHAgPT0gcm9vdCkKKwkJCWJyZWFrOworCQlwYXJlbnQgPSBwLT5kX3BhcmVudDsKIAkJc3Bpbl91bmxvY2soJnAtPmRfbG9jayk7Ci0JCWxvY2tfc2V0X3N1YmNsYXNzKCZyZXQtPmRfbG9jay5kZXBfbWFwLCAwLCBfUkVUX0lQXyk7Ci0JCXAgPSByZXQ7Ci0JCWdvdG8gYWdhaW47CisJCXNwaW5fbG9jaygmcGFyZW50LT5kX2xvY2spOworCQlkID0gcDsKKwkJcCA9IHBhcmVudDsKIAl9Ci0JZGdldF9kbG9jayhyZXQpOwotCXNwaW5fdW5sb2NrKCZyZXQtPmRfbG9jayk7CiAJc3Bpbl91bmxvY2soJnAtPmRfbG9jayk7CiAJc3Bpbl91bmxvY2soJnNiaS0+bG9va3VwX2xvY2spOwotCiAJZHB1dChwcmV2KTsKLQogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL2F1dG9mcy9yb290LmMgYi9mcy9hdXRvZnMvcm9vdC5jCmluZGV4IGU2NDY1NjkuLjI5YWJhZmMgMTAwNjQ0Ci0tLSBhL2ZzL2F1dG9mcy9yb290LmMKKysrIGIvZnMvYXV0b2ZzL3Jvb3QuYwpAQCAtNjAsMzggKzYwLDE1IEBAIGNvbnN0IHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyBhdXRvZnNfZGVudHJ5X29wZXJhdGlvbnMgPSB7CiAJLmRfcmVsZWFzZQk9IGF1dG9mc19kZW50cnlfcmVsZWFzZSwKIH07CiAKLXN0YXRpYyB2b2lkIGF1dG9mc19hZGRfYWN0aXZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlzdHJ1Y3QgYXV0b2ZzX3NiX2luZm8gKnNiaSA9IGF1dG9mc19zYmkoZGVudHJ5LT5kX3NiKTsKLQlzdHJ1Y3QgYXV0b2ZzX2luZm8gKmlubzsKLQotCWlubyA9IGF1dG9mc19kZW50cnlfaW5vKGRlbnRyeSk7Ci0JaWYgKGlubykgewotCQlzcGluX2xvY2soJnNiaS0+bG9va3VwX2xvY2spOwotCQlpZiAoIWluby0+YWN0aXZlX2NvdW50KSB7Ci0JCQlpZiAobGlzdF9lbXB0eSgmaW5vLT5hY3RpdmUpKQotCQkJCWxpc3RfYWRkKCZpbm8tPmFjdGl2ZSwgJnNiaS0+YWN0aXZlX2xpc3QpOwotCQl9Ci0JCWluby0+YWN0aXZlX2NvdW50Kys7Ci0JCXNwaW5fdW5sb2NrKCZzYmktPmxvb2t1cF9sb2NrKTsKLQl9Ci19Ci0KIHN0YXRpYyB2b2lkIGF1dG9mc19kZWxfYWN0aXZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIHsKIAlzdHJ1Y3QgYXV0b2ZzX3NiX2luZm8gKnNiaSA9IGF1dG9mc19zYmkoZGVudHJ5LT5kX3NiKTsKIAlzdHJ1Y3QgYXV0b2ZzX2luZm8gKmlubzsKIAogCWlubyA9IGF1dG9mc19kZW50cnlfaW5vKGRlbnRyeSk7Ci0JaWYgKGlubykgewotCQlzcGluX2xvY2soJnNiaS0+bG9va3VwX2xvY2spOwotCQlpbm8tPmFjdGl2ZV9jb3VudC0tOwotCQlpZiAoIWluby0+YWN0aXZlX2NvdW50KSB7Ci0JCQlpZiAoIWxpc3RfZW1wdHkoJmluby0+YWN0aXZlKSkKLQkJCQlsaXN0X2RlbF9pbml0KCZpbm8tPmFjdGl2ZSk7Ci0JCX0KLQkJc3Bpbl91bmxvY2soJnNiaS0+bG9va3VwX2xvY2spOwotCX0KKwlzcGluX2xvY2soJnNiaS0+bG9va3VwX2xvY2spOworCWxpc3RfZGVsX2luaXQoJmluby0+YWN0aXZlKTsKKwlzcGluX3VubG9jaygmc2JpLT5sb29rdXBfbG9jayk7CiB9CiAKIHN0YXRpYyBpbnQgYXV0b2ZzX2Rpcl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpAQCAtNTI3LDE5ICs1MDQsMjIgQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKmF1dG9mc19sb29rdXAoc3RydWN0IGlub2RlICpkaXIsCiAJCWlmICghYXV0b2ZzX296X21vZGUoc2JpKSAmJiAhSVNfUk9PVChkZW50cnktPmRfcGFyZW50KSkKIAkJCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwogCi0JCS8qIE1hcmsgZW50cmllcyBpbiB0aGUgcm9vdCBhcyBtb3VudCB0cmlnZ2VycyAqLwotCQlpZiAoSVNfUk9PVChkZW50cnktPmRfcGFyZW50KSAmJgotCQkgICAgYXV0b2ZzX3R5cGVfaW5kaXJlY3Qoc2JpLT50eXBlKSkKLQkJCV9fbWFuYWdlZF9kZW50cnlfc2V0X21hbmFnZWQoZGVudHJ5KTsKLQogCQlpbm8gPSBhdXRvZnNfbmV3X2lubyhzYmkpOwogCQlpZiAoIWlubykKIAkJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCisJCXNwaW5fbG9jaygmc2JpLT5sb29rdXBfbG9jayk7CisJCXNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOworCQkvKiBNYXJrIGVudHJpZXMgaW4gdGhlIHJvb3QgYXMgbW91bnQgdHJpZ2dlcnMgKi8KKwkJaWYgKElTX1JPT1QoZGVudHJ5LT5kX3BhcmVudCkgJiYKKwkJICAgIGF1dG9mc190eXBlX2luZGlyZWN0KHNiaS0+dHlwZSkpCisJCQlfX21hbmFnZWRfZGVudHJ5X3NldF9tYW5hZ2VkKGRlbnRyeSk7CiAJCWRlbnRyeS0+ZF9mc2RhdGEgPSBpbm87CiAJCWluby0+ZGVudHJ5ID0gZGVudHJ5OwogCi0JCWF1dG9mc19hZGRfYWN0aXZlKGRlbnRyeSk7CisJCWxpc3RfYWRkKCZpbm8tPmFjdGl2ZSwgJnNiaS0+YWN0aXZlX2xpc3QpOworCQlzcGluX3VubG9jaygmc2JpLT5sb29rdXBfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7CiAJfQogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZnMvYmVmcy9saW51eHZmcy5jIGIvZnMvYmVmcy9saW51eHZmcy5jCmluZGV4IDQ2MmQwOTYuLjY0Y2RmNGQgMTAwNjQ0Ci0tLSBhL2ZzL2JlZnMvbGludXh2ZnMuYworKysgYi9mcy9iZWZzL2xpbnV4dmZzLmMKQEAgLTg5Myw2ICs4OTMsOCBAQCBiZWZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAlzYl9zZXRfYmxvY2tzaXplKHNiLCAodWxvbmcpIGJlZnNfc2ItPmJsb2NrX3NpemUpOwogCXNiLT5zX29wID0gJmJlZnNfc29wczsKIAlzYi0+c19leHBvcnRfb3AgPSAmYmVmc19leHBvcnRfb3BlcmF0aW9uczsKKwlzYi0+c190aW1lX21pbiA9IDA7CisJc2ItPnNfdGltZV9tYXggPSAweGZmZmZmZmZmZmZmZmxsOwogCXJvb3QgPSBiZWZzX2lnZXQoc2IsIGlhZGRyMmJsb2Nrbm8oc2IsICYoYmVmc19zYi0+cm9vdF9kaXIpKSk7CiAJaWYgKElTX0VSUihyb290KSkgewogCQlyZXQgPSBQVFJfRVJSKHJvb3QpOwpkaWZmIC0tZ2l0IGEvZnMvYmZzL2lub2RlLmMgYi9mcy9iZnMvaW5vZGUuYwppbmRleCA1ZTk3YmVkLi5mOGNlMTM2IDEwMDY0NAotLS0gYS9mcy9iZnMvaW5vZGUuYworKysgYi9mcy9iZnMvaW5vZGUuYwpAQCAtMzI0LDYgKzMyNCw4IEBAIHN0YXRpYyBpbnQgYmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCQlyZXR1cm4gLUVOT01FTTsKIAltdXRleF9pbml0KCZpbmZvLT5iZnNfbG9jayk7CiAJcy0+c19mc19pbmZvID0gaW5mbzsKKwlzLT5zX3RpbWVfbWluID0gMDsKKwlzLT5zX3RpbWVfbWF4ID0gVTMyX01BWDsKIAogCXNiX3NldF9ibG9ja3NpemUocywgQkZTX0JTSVpFKTsKIApkaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZi5jIGIvZnMvYmluZm10X2VsZi5jCmluZGV4IGQ0ZTExYjIuLmFkNGM2YjEgMTAwNjQ0Ci0tLSBhL2ZzL2JpbmZtdF9lbGYuYworKysgYi9mcy9iaW5mbXRfZWxmLmMKQEAgLTY3MCwyNiArNjcwLDYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9hZF9lbGZfaW50ZXJwKHN0cnVjdCBlbGZoZHIgKmludGVycF9lbGZfZXgsCiAgKiBsaWJyYXJpZXMuICBUaGVyZSBpcyBubyBiaW5hcnkgZGVwZW5kZW50IGNvZGUgYW55d2hlcmUgZWxzZS4KICAqLwogCi0jaWZuZGVmIFNUQUNLX1JORF9NQVNLCi0jZGVmaW5lIFNUQUNLX1JORF9NQVNLICgweDdmZiA+PiAoUEFHRV9TSElGVCAtIDEyKSkJLyogOE1CIG9mIFZBICovCi0jZW5kaWYKLQotc3RhdGljIHVuc2lnbmVkIGxvbmcgcmFuZG9taXplX3N0YWNrX3RvcCh1bnNpZ25lZCBsb25nIHN0YWNrX3RvcCkKLXsKLQl1bnNpZ25lZCBsb25nIHJhbmRvbV92YXJpYWJsZSA9IDA7Ci0KLQlpZiAoY3VycmVudC0+ZmxhZ3MgJiBQRl9SQU5ET01JWkUpIHsKLQkJcmFuZG9tX3ZhcmlhYmxlID0gZ2V0X3JhbmRvbV9sb25nKCk7Ci0JCXJhbmRvbV92YXJpYWJsZSAmPSBTVEFDS19STkRfTUFTSzsKLQkJcmFuZG9tX3ZhcmlhYmxlIDw8PSBQQUdFX1NISUZUOwotCX0KLSNpZmRlZiBDT05GSUdfU1RBQ0tfR1JPV1NVUAotCXJldHVybiBQQUdFX0FMSUdOKHN0YWNrX3RvcCkgKyByYW5kb21fdmFyaWFibGU7Ci0jZWxzZQotCXJldHVybiBQQUdFX0FMSUdOKHN0YWNrX3RvcCkgLSByYW5kb21fdmFyaWFibGU7Ci0jZW5kaWYKLX0KLQogc3RhdGljIGludCBsb2FkX2VsZl9iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKIHsKIAlzdHJ1Y3QgZmlsZSAqaW50ZXJwcmV0ZXIgPSBOVUxMOyAvKiB0byBzaHV0IGdjYyB1cCAqLwpAQCAtMTE0MSw3ICsxMTIxLDggQEAgc3RhdGljIGludCBsb2FkX2VsZl9iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKIAkJICogKHNpbmNlIGl0IGdyb3dzIHVwLCBhbmQgbWF5IGNvbGxpZGUgZWFybHkgd2l0aCB0aGUgc3RhY2sKIAkJICogZ3Jvd2luZyBkb3duKSwgYW5kIGludG8gdGhlIHVudXNlZCBFTEZfRVRfRFlOX0JBU0UgcmVnaW9uLgogCQkgKi8KLQkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0FSQ0hfSEFTX0VMRl9SQU5ET01JWkUpICYmICFpbnRlcnByZXRlcikKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0FSQ0hfSEFTX0VMRl9SQU5ET01JWkUpICYmCisJCSAgICBsb2MtPmVsZl9leC5lX3R5cGUgPT0gRVRfRFlOICYmICFpbnRlcnByZXRlcikKIAkJCWN1cnJlbnQtPm1tLT5icmsgPSBjdXJyZW50LT5tbS0+c3RhcnRfYnJrID0KIAkJCQlFTEZfRVRfRFlOX0JBU0U7CiAKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvTWFrZWZpbGUgYi9mcy9jZXBoL01ha2VmaWxlCmluZGV4IGE2OTllMzIuLmMxZGEyOTQgMTAwNjQ0Ci0tLSBhL2ZzL2NlcGgvTWFrZWZpbGUKKysrIGIvZnMvY2VwaC9NYWtlZmlsZQpAQCAtNiw3ICs2LDcgQEAKIG9iai0kKENPTkZJR19DRVBIX0ZTKSArPSBjZXBoLm8KIAogY2VwaC15IDo9IHN1cGVyLm8gaW5vZGUubyBkaXIubyBmaWxlLm8gbG9ja3MubyBhZGRyLm8gaW9jdGwubyBcCi0JZXhwb3J0Lm8gY2Fwcy5vIHNuYXAubyB4YXR0ci5vIHF1b3RhLm8gXAorCWV4cG9ydC5vIGNhcHMubyBzbmFwLm8geGF0dHIubyBxdW90YS5vIGlvLm8gXAogCW1kc19jbGllbnQubyBtZHNtYXAubyBzdHJpbmdzLm8gY2VwaF9mcmFnLm8gXAogCWRlYnVnZnMubwogCmRpZmYgLS1naXQgYS9mcy9jZXBoL2FkZHIuYyBiL2ZzL2NlcGgvYWRkci5jCmluZGV4IGIzYzhiODguLjdhYjYxNjYgMTAwNjQ0Ci0tLSBhL2ZzL2NlcGgvYWRkci5jCisrKyBiL2ZzL2NlcGgvYWRkci5jCkBAIC0xODksOCArMTg5LDcgQEAgc3RhdGljIGludCBjZXBoX2RvX3JlYWRwYWdlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxwKTsKIAlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSA9IGNlcGhfaW5vZGUoaW5vZGUpOwotCXN0cnVjdCBjZXBoX29zZF9jbGllbnQgKm9zZGMgPQotCQkmY2VwaF9pbm9kZV90b19jbGllbnQoaW5vZGUpLT5jbGllbnQtPm9zZGM7CisJc3RydWN0IGNlcGhfZnNfY2xpZW50ICpmc2MgPSBjZXBoX2lub2RlX3RvX2NsaWVudChpbm9kZSk7CiAJaW50IGVyciA9IDA7CiAJdTY0IG9mZiA9IHBhZ2Vfb2Zmc2V0KHBhZ2UpOwogCXU2NCBsZW4gPSBQQUdFX1NJWkU7CkBAIC0yMTksOCArMjE4LDggQEAgc3RhdGljIGludCBjZXBoX2RvX3JlYWRwYWdlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAogCWRvdXQoInJlYWRwYWdlIGlub2RlICVwIGZpbGUgJXAgcGFnZSAlcCBpbmRleCAlbHVcbiIsCiAJICAgICBpbm9kZSwgZmlscCwgcGFnZSwgcGFnZS0+aW5kZXgpOwotCWVyciA9IGNlcGhfb3NkY19yZWFkcGFnZXMob3NkYywgY2VwaF92aW5vKGlub2RlKSwgJmNpLT5pX2xheW91dCwKLQkJCQkgIG9mZiwgJmxlbiwKKwllcnIgPSBjZXBoX29zZGNfcmVhZHBhZ2VzKCZmc2MtPmNsaWVudC0+b3NkYywgY2VwaF92aW5vKGlub2RlKSwKKwkJCQkgICZjaS0+aV9sYXlvdXQsIG9mZiwgJmxlbiwKIAkJCQkgIGNpLT5pX3RydW5jYXRlX3NlcSwgY2ktPmlfdHJ1bmNhdGVfc2l6ZSwKIAkJCQkgICZwYWdlLCAxLCAwKTsKIAlpZiAoZXJyID09IC1FTk9FTlQpCkBAIC0yMjgsNiArMjI3LDggQEAgc3RhdGljIGludCBjZXBoX2RvX3JlYWRwYWdlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAlpZiAoZXJyIDwgMCkgewogCQlTZXRQYWdlRXJyb3IocGFnZSk7CiAJCWNlcGhfZnNjYWNoZV9yZWFkcGFnZV9jYW5jZWwoaW5vZGUsIHBhZ2UpOworCQlpZiAoZXJyID09IC1FQkxBQ0tMSVNURUQpCisJCQlmc2MtPmJsYWNrbGlzdGVkID0gdHJ1ZTsKIAkJZ290byBvdXQ7CiAJfQogCWlmIChlcnIgPCBQQUdFX1NJWkUpCkBAIC0yNjYsNiArMjY3LDggQEAgc3RhdGljIHZvaWQgZmluaXNoX3JlYWQoc3RydWN0IGNlcGhfb3NkX3JlcXVlc3QgKnJlcSkKIAlpbnQgaTsKIAogCWRvdXQoImZpbmlzaF9yZWFkICVwIHJlcSAlcCByYyAlZCBieXRlcyAlZFxuIiwgaW5vZGUsIHJlcSwgcmMsIGJ5dGVzKTsKKwlpZiAocmMgPT0gLUVCTEFDS0xJU1RFRCkKKwkJY2VwaF9pbm9kZV90b19jbGllbnQoaW5vZGUpLT5ibGFja2xpc3RlZCA9IHRydWU7CiAKIAkvKiB1bmxvY2sgYWxsIHBhZ2VzLCB6ZXJvaW5nIGFueSBkYXRhIHdlIGRpZG4ndCByZWFkICovCiAJb3NkX2RhdGEgPSBvc2RfcmVxX29wX2V4dGVudF9vc2RfZGF0YShyZXEsIDApOwpAQCAtMzIzLDcgKzMyNiw4IEBAIHN0YXRpYyBpbnQgc3RhcnRfcmVhZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgY2VwaF9yd19jb250ZXh0ICpyd19jdHgsCiAJCS8qIGNhbGxlciBvZiByZWFkcGFnZXMgZG9lcyBub3QgaG9sZCBidWZmZXIgYW5kIHJlYWQgY2FwcwogCQkgKiAoZmFkdmlzZSwgbWFkdmlzZSBhbmQgcmVhZGFoZWFkIGNhc2VzKSAqLwogCQlpbnQgd2FudCA9IENFUEhfQ0FQX0ZJTEVfQ0FDSEU7Ci0JCXJldCA9IGNlcGhfdHJ5X2dldF9jYXBzKGNpLCBDRVBIX0NBUF9GSUxFX1JELCB3YW50LCB0cnVlLCAmZ290KTsKKwkJcmV0ID0gY2VwaF90cnlfZ2V0X2NhcHMoaW5vZGUsIENFUEhfQ0FQX0ZJTEVfUkQsIHdhbnQsCisJCQkJCXRydWUsICZnb3QpOwogCQlpZiAocmV0IDwgMCkgewogCQkJZG91dCgic3RhcnRfcmVhZCAlcCwgZXJyb3IgZ2V0dGluZyBjYXBcbiIsIGlub2RlKTsKIAkJfSBlbHNlIGlmICghKGdvdCAmIHdhbnQpKSB7CkBAIC01NjksNyArNTczLDcgQEAgc3RhdGljIHU2NCBnZXRfd3JpdGVwYWdlc19kYXRhX2xlbmd0aChzdHJ1Y3QgaW5vZGUgKmlub2RlLAogLyoKICAqIFdyaXRlIGEgc2luZ2xlIHBhZ2UsIGJ1dCBsZWF2ZSB0aGUgcGFnZSBsb2NrZWQuCiAgKgotICogSWYgd2UgZ2V0IGEgd3JpdGUgZXJyb3IsIHNldCB0aGUgcGFnZSBlcnJvciBiaXQsIGJ1dCBzdGlsbCBhZGp1c3QgdGhlCisgKiBJZiB3ZSBnZXQgYSB3cml0ZSBlcnJvciwgbWFyayB0aGUgbWFwcGluZyBmb3IgZXJyb3IsIGJ1dCBzdGlsbCBhZGp1c3QgdGhlCiAgKiBkaXJ0eSBwYWdlIGFjY291bnRpbmcgKGkuZS4sIHBhZ2UgaXMgbm8gbG9uZ2VyIGRpcnR5KS4KICAqLwogc3RhdGljIGludCB3cml0ZXBhZ2Vfbm91bmxvY2soc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQpAQCAtNjQwLDkgKzY0NCwxMCBAQCBzdGF0aWMgaW50IHdyaXRlcGFnZV9ub3VubG9jayhzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCiAJCQllbmRfcGFnZV93cml0ZWJhY2socGFnZSk7CiAJCQlyZXR1cm4gZXJyOwogCQl9CisJCWlmIChlcnIgPT0gLUVCTEFDS0xJU1RFRCkKKwkJCWZzYy0+YmxhY2tsaXN0ZWQgPSB0cnVlOwogCQlkb3V0KCJ3cml0ZXBhZ2Ugc2V0dGluZyBwYWdlL21hcHBpbmcgZXJyb3IgJWQgJXBcbiIsCiAJCSAgICAgZXJyLCBwYWdlKTsKLQkJU2V0UGFnZUVycm9yKHBhZ2UpOwogCQltYXBwaW5nX3NldF9lcnJvcigmaW5vZGUtPmlfZGF0YSwgZXJyKTsKIAkJd2JjLT5wYWdlc19za2lwcGVkKys7CiAJfSBlbHNlIHsKQEAgLTY4MCwyMyArNjg1LDYgQEAgc3RhdGljIGludCBjZXBoX3dyaXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCiB9CiAKIC8qCi0gKiBsYW1lIHJlbGVhc2VfcGFnZXMgaGVscGVyLiAgcmVsZWFzZV9wYWdlcygpIGlzbid0IGV4cG9ydGVkIHRvCi0gKiBtb2R1bGVzLgotICovCi1zdGF0aWMgdm9pZCBjZXBoX3JlbGVhc2VfcGFnZXMoc3RydWN0IHBhZ2UgKipwYWdlcywgaW50IG51bSkKLXsKLQlzdHJ1Y3QgcGFnZXZlYyBwdmVjOwotCWludCBpOwotCi0JcGFnZXZlY19pbml0KCZwdmVjKTsKLQlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKLQkJaWYgKHBhZ2V2ZWNfYWRkKCZwdmVjLCBwYWdlc1tpXSkgPT0gMCkKLQkJCXBhZ2V2ZWNfcmVsZWFzZSgmcHZlYyk7Ci0JfQotCXBhZ2V2ZWNfcmVsZWFzZSgmcHZlYyk7Ci19Ci0KLS8qCiAgKiBhc3luYyB3cml0ZWJhY2sgY29tcGxldGlvbiBoYW5kbGVyLgogICoKICAqIElmIHdlIGdldCBhbiBlcnJvciwgc2V0IHRoZSBtYXBwaW5nIGVycm9yIGJpdCwgYnV0IG5vdCB0aGUgaW5kaXZpZHVhbApAQCAtNzIwLDYgKzcwOCw4IEBAIHN0YXRpYyB2b2lkIHdyaXRlcGFnZXNfZmluaXNoKHN0cnVjdCBjZXBoX29zZF9yZXF1ZXN0ICpyZXEpCiAJaWYgKHJjIDwgMCkgewogCQltYXBwaW5nX3NldF9lcnJvcihtYXBwaW5nLCByYyk7CiAJCWNlcGhfc2V0X2Vycm9yX3dyaXRlKGNpKTsKKwkJaWYgKHJjID09IC1FQkxBQ0tMSVNURUQpCisJCQlmc2MtPmJsYWNrbGlzdGVkID0gdHJ1ZTsKIAl9IGVsc2UgewogCQljZXBoX2NsZWFyX2Vycm9yX3dyaXRlKGNpKTsKIAl9CkBAIC03NjksNyArNzU5LDcgQEAgc3RhdGljIHZvaWQgd3JpdGVwYWdlc19maW5pc2goc3RydWN0IGNlcGhfb3NkX3JlcXVlc3QgKnJlcSkKIAkJZG91dCgid3JpdGVwYWdlc19maW5pc2ggJXAgd3JvdGUgJWxsdSBieXRlcyBjbGVhbmVkICVkIHBhZ2VzXG4iLAogCQkgICAgIGlub2RlLCBvc2RfZGF0YS0+bGVuZ3RoLCByYyA+PSAwID8gbnVtX3BhZ2VzIDogMCk7CiAKLQkJY2VwaF9yZWxlYXNlX3BhZ2VzKG9zZF9kYXRhLT5wYWdlcywgbnVtX3BhZ2VzKTsKKwkJcmVsZWFzZV9wYWdlcyhvc2RfZGF0YS0+cGFnZXMsIG51bV9wYWdlcyk7CiAJfQogCiAJY2VwaF9wdXRfd3JidWZmZXJfY2FwX3JlZnMoY2ksIHRvdGFsX3BhZ2VzLCBzbmFwYyk7CkBAIC0xNDUyLDcgKzE0NDIsOCBAQCBzdGF0aWMgdm1fZmF1bHRfdCBjZXBoX2ZpbGVtYXBfZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJCXdhbnQgPSBDRVBIX0NBUF9GSUxFX0NBQ0hFOwogCiAJZ290ID0gMDsKLQllcnIgPSBjZXBoX2dldF9jYXBzKGNpLCBDRVBIX0NBUF9GSUxFX1JELCB3YW50LCAtMSwgJmdvdCwgJnBpbm5lZF9wYWdlKTsKKwllcnIgPSBjZXBoX2dldF9jYXBzKHZtYS0+dm1fZmlsZSwgQ0VQSF9DQVBfRklMRV9SRCwgd2FudCwgLTEsCisJCQkgICAgJmdvdCwgJnBpbm5lZF9wYWdlKTsKIAlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfcmVzdG9yZTsKIApAQCAtMTU0MCw2ICsxNTMxLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgY2VwaF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJaWYgKCFwcmVhbGxvY19jZikKIAkJcmV0dXJuIFZNX0ZBVUxUX09PTTsKIAorCXNiX3N0YXJ0X3BhZ2VmYXVsdChpbm9kZS0+aV9zYik7CiAJY2VwaF9ibG9ja19zaWdzKCZvbGRzZXQpOwogCiAJaWYgKGNpLT5pX2lubGluZV92ZXJzaW9uICE9IENFUEhfSU5MSU5FX05PTkUpIHsKQEAgLTE1NjgsNyArMTU2MCw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IGNlcGhfcGFnZV9ta3dyaXRlKHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCQl3YW50ID0gQ0VQSF9DQVBfRklMRV9CVUZGRVI7CiAKIAlnb3QgPSAwOwotCWVyciA9IGNlcGhfZ2V0X2NhcHMoY2ksIENFUEhfQ0FQX0ZJTEVfV1IsIHdhbnQsIG9mZiArIGxlbiwKKwllcnIgPSBjZXBoX2dldF9jYXBzKHZtYS0+dm1fZmlsZSwgQ0VQSF9DQVBfRklMRV9XUiwgd2FudCwgb2ZmICsgbGVuLAogCQkJICAgICZnb3QsIE5VTEwpOwogCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dF9mcmVlOwpAQCAtMTYxNCw2ICsxNjA2LDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgY2VwaF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJY2VwaF9wdXRfY2FwX3JlZnMoY2ksIGdvdCk7CiBvdXRfZnJlZToKIAljZXBoX3Jlc3RvcmVfc2lncygmb2xkc2V0KTsKKwlzYl9lbmRfcGFnZWZhdWx0KGlub2RlLT5pX3NiKTsKIAljZXBoX2ZyZWVfY2FwX2ZsdXNoKHByZWFsbG9jX2NmKTsKIAlpZiAoZXJyIDwgMCkKIAkJcmV0ID0gdm1mX2Vycm9yKGVycik7CkBAIC0xOTQ2LDEyICsxOTM5LDE3IEBAIHN0YXRpYyBpbnQgX19jZXBoX3Bvb2xfcGVybV9nZXQoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksCiAKIAlpZiAoZXJyID49IDAgfHwgZXJyID09IC1FTk9FTlQpCiAJCWhhdmUgfD0gUE9PTF9SRUFEOwotCWVsc2UgaWYgKGVyciAhPSAtRVBFUk0pCisJZWxzZSBpZiAoZXJyICE9IC1FUEVSTSkgeworCQlpZiAoZXJyID09IC1FQkxBQ0tMSVNURUQpCisJCQlmc2MtPmJsYWNrbGlzdGVkID0gdHJ1ZTsKIAkJZ290byBvdXRfdW5sb2NrOworCX0KIAogCWlmIChlcnIyID09IDAgfHwgZXJyMiA9PSAtRUVYSVNUKQogCQloYXZlIHw9IFBPT0xfV1JJVEU7CiAJZWxzZSBpZiAoZXJyMiAhPSAtRVBFUk0pIHsKKwkJaWYgKGVycjIgPT0gLUVCTEFDS0xJU1RFRCkKKwkJCWZzYy0+YmxhY2tsaXN0ZWQgPSB0cnVlOwogCQllcnIgPSBlcnIyOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQpAQCAtMTk4OSwxMCArMTk4NywxMSBAQCBzdGF0aWMgaW50IF9fY2VwaF9wb29sX3Blcm1fZ2V0KHN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpLAogCXJldHVybiBlcnI7CiB9CiAKLWludCBjZXBoX3Bvb2xfcGVybV9jaGVjayhzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgaW50IG5lZWQpCitpbnQgY2VwaF9wb29sX3Blcm1fY2hlY2soc3RydWN0IGlub2RlICppbm9kZSwgaW50IG5lZWQpCiB7Ci0JczY0IHBvb2w7CisJc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2kgPSBjZXBoX2lub2RlKGlub2RlKTsKIAlzdHJ1Y3QgY2VwaF9zdHJpbmcgKnBvb2xfbnM7CisJczY0IHBvb2w7CiAJaW50IHJldCwgZmxhZ3M7CiAKIAlpZiAoY2ktPmlfdmluby5zbmFwICE9IENFUEhfTk9TTkFQKSB7CkBAIC0yMDA0LDcgKzIwMDMsNyBAQCBpbnQgY2VwaF9wb29sX3Blcm1fY2hlY2soc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksIGludCBuZWVkKQogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoY2VwaF90ZXN0X21vdW50X29wdChjZXBoX2lub2RlX3RvX2NsaWVudCgmY2ktPnZmc19pbm9kZSksCisJaWYgKGNlcGhfdGVzdF9tb3VudF9vcHQoY2VwaF9pbm9kZV90b19jbGllbnQoaW5vZGUpLAogCQkJCU5PUE9PTFBFUk0pKQogCQlyZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvZnMvY2VwaC9jYWNoZS5jIGIvZnMvY2VwaC9jYWNoZS5jCmluZGV4IGJjOTBjZjYuLmIyZWMyOWUgMTAwNjQ0Ci0tLSBhL2ZzL2NlcGgvY2FjaGUuYworKysgYi9mcy9jZXBoL2NhY2hlLmMKQEAgLTYsNiArNiw4IEBACiAgKiAgV3JpdHRlbiBieSBNaWxvc3ogVGFuc2tpIChtaWxvc3pAYWRmaW4uY29tKQogICovCiAKKyNpbmNsdWRlIDxsaW51eC9jZXBoL2NlcGhfZGVidWcuaD4KKwogI2luY2x1ZGUgInN1cGVyLmgiCiAjaW5jbHVkZSAiY2FjaGUuaCIKIApkaWZmIC0tZ2l0IGEvZnMvY2VwaC9jYXBzLmMgYi9mcy9jZXBoL2NhcHMuYwppbmRleCBjZTBmNTY1Li5kM2I5YzlkIDEwMDY0NAotLS0gYS9mcy9jZXBoL2NhcHMuYworKysgYi9mcy9jZXBoL2NhcHMuYwpAQCAtNDU4LDM3ICs0NTgsNiBAQCBzdHJ1Y3QgY2VwaF9jYXAgKmNlcGhfZ2V0X2NhcF9mb3JfbWRzKHN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpLCBpbnQgbWRzKQogfQogCiAvKgotICogUmV0dXJuIGlkIG9mIGFueSBNRFMgd2l0aCBhIGNhcCwgcHJlZmVyYWJseSBGSUxFX1dSfEJVRkZFUnxFWENMLCBlbHNlIC0xLgotICovCi1zdGF0aWMgaW50IF9fY2VwaF9nZXRfY2FwX21kcyhzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSkKLXsKLQlzdHJ1Y3QgY2VwaF9jYXAgKmNhcDsKLQlpbnQgbWRzID0gLTE7Ci0Jc3RydWN0IHJiX25vZGUgKnA7Ci0KLQkvKiBwcmVmZXIgbWRzIHdpdGggV1J8QlVGRkVSfEVYQ0wgY2FwcyAqLwotCWZvciAocCA9IHJiX2ZpcnN0KCZjaS0+aV9jYXBzKTsgcDsgcCA9IHJiX25leHQocCkpIHsKLQkJY2FwID0gcmJfZW50cnkocCwgc3RydWN0IGNlcGhfY2FwLCBjaV9ub2RlKTsKLQkJbWRzID0gY2FwLT5tZHM7Ci0JCWlmIChjYXAtPmlzc3VlZCAmIChDRVBIX0NBUF9GSUxFX1dSIHwKLQkJCQkgICBDRVBIX0NBUF9GSUxFX0JVRkZFUiB8Ci0JCQkJICAgQ0VQSF9DQVBfRklMRV9FWENMKSkKLQkJCWJyZWFrOwotCX0KLQlyZXR1cm4gbWRzOwotfQotCi1pbnQgY2VwaF9nZXRfY2FwX21kcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQotewotCXN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpID0gY2VwaF9pbm9kZShpbm9kZSk7Ci0JaW50IG1kczsKLQlzcGluX2xvY2soJmNpLT5pX2NlcGhfbG9jayk7Ci0JbWRzID0gX19jZXBoX2dldF9jYXBfbWRzKGNlcGhfaW5vZGUoaW5vZGUpKTsKLQlzcGluX3VubG9jaygmY2ktPmlfY2VwaF9sb2NrKTsKLQlyZXR1cm4gbWRzOwotfQotCi0vKgogICogQ2FsbGVkIHVuZGVyIGlfY2VwaF9sb2NrLgogICovCiBzdGF0aWMgdm9pZCBfX2luc2VydF9jYXBfbm9kZShzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwKQEAgLTYyOCw3ICs1OTcsNyBAQCBzdGF0aWMgdm9pZCBfX2NoZWNrX2NhcF9pc3N1ZShzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgc3RydWN0IGNlcGhfY2FwICpjYXAsCiAvKgogICogQWRkIGEgY2FwYWJpbGl0eSB1bmRlciB0aGUgZ2l2ZW4gTURTIHNlc3Npb24uCiAgKgotICogQ2FsbGVyIHNob3VsZCBob2xkIHNlc3Npb24gc25hcF9yd3NlbSAocmVhZCkgYW5kIHNfbXV0ZXguCisgKiBDYWxsZXIgc2hvdWxkIGhvbGQgc2Vzc2lvbiBzbmFwX3J3c2VtIChyZWFkKSBhbmQgY2ktPmlfY2VwaF9sb2NrCiAgKgogICogQGZtb2RlIGlzIHRoZSBvcGVuIGZpbGUgbW9kZSwgaWYgd2UgYXJlIG9wZW5pbmcgYSBmaWxlLCBvdGhlcndpc2UKICAqIGl0IGlzIDwgMC4gIChUaGlzIGlzIHNvIHdlIGNhbiBhdG9taWNhbGx5IGFkZCB0aGUgY2FwIGFuZCBhZGQgYW4KQEAgLTY0NSw2ICs2MTQsOSBAQCB2b2lkIGNlcGhfYWRkX2NhcChzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCXN0cnVjdCBjZXBoX2NhcCAqY2FwOwogCWludCBtZHMgPSBzZXNzaW9uLT5zX21kczsKIAlpbnQgYWN0dWFsX3dhbnRlZDsKKwl1MzIgZ2VuOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmY2ktPmlfY2VwaF9sb2NrKTsKIAogCWRvdXQoImFkZF9jYXAgJXAgbWRzJWQgY2FwICVsbHggJXMgc2VxICVkXG4iLCBpbm9kZSwKIAkgICAgIHNlc3Npb24tPnNfbWRzLCBjYXBfaWQsIGNlcGhfY2FwX3N0cmluZyhpc3N1ZWQpLCBzZXEpOwpAQCAtNjU2LDYgKzYyOCwxMCBAQCB2b2lkIGNlcGhfYWRkX2NhcChzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCWlmIChmbW9kZSA+PSAwKQogCQl3YW50ZWQgfD0gY2VwaF9jYXBzX2Zvcl9tb2RlKGZtb2RlKTsKIAorCXNwaW5fbG9jaygmc2Vzc2lvbi0+c19nZW5fdHRsX2xvY2spOworCWdlbiA9IHNlc3Npb24tPnNfY2FwX2dlbjsKKwlzcGluX3VubG9jaygmc2Vzc2lvbi0+c19nZW5fdHRsX2xvY2spOworCiAJY2FwID0gX19nZXRfY2FwX2Zvcl9tZHMoY2ksIG1kcyk7CiAJaWYgKCFjYXApIHsKIAkJY2FwID0gKm5ld19jYXA7CkBAIC02ODEsNyArNjU3LDcgQEAgdm9pZCBjZXBoX2FkZF9jYXAoc3RydWN0IGlub2RlICppbm9kZSwKIAkJbGlzdF9tb3ZlX3RhaWwoJmNhcC0+c2Vzc2lvbl9jYXBzLCAmc2Vzc2lvbi0+c19jYXBzKTsKIAkJc3Bpbl91bmxvY2soJnNlc3Npb24tPnNfY2FwX2xvY2spOwogCi0JCWlmIChjYXAtPmNhcF9nZW4gPCBzZXNzaW9uLT5zX2NhcF9nZW4pCisJCWlmIChjYXAtPmNhcF9nZW4gPCBnZW4pCiAJCQljYXAtPmlzc3VlZCA9IGNhcC0+aW1wbGVtZW50ZWQgPSBDRVBIX0NBUF9QSU47CiAKIAkJLyoKQEAgLTc3NSw3ICs3NTEsNyBAQCB2b2lkIGNlcGhfYWRkX2NhcChzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCWNhcC0+c2VxID0gc2VxOwogCWNhcC0+aXNzdWVfc2VxID0gc2VxOwogCWNhcC0+bXNlcSA9IG1zZXE7Ci0JY2FwLT5jYXBfZ2VuID0gc2Vzc2lvbi0+c19jYXBfZ2VuOworCWNhcC0+Y2FwX2dlbiA9IGdlbjsKIAogCWlmIChmbW9kZSA+PSAwKQogCQlfX2NlcGhfZ2V0X2Ztb2RlKGNpLCBmbW9kZSk7CkBAIC0xMjg0LDEwICsxMjYwLDYgQEAgdm9pZCBfX2NlcGhfcmVtb3ZlX2NhcHMoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2kpCiAgKiBNYWtlIG5vdGUgb2YgbWF4X3NpemUgcmVwb3J0ZWQvcmVxdWVzdGVkIGZyb20gbWRzLCByZXZva2VkIGNhcHMKICAqIHRoYXQgaGF2ZSBub3cgYmVlbiBpbXBsZW1lbnRlZC4KICAqCi0gKiBNYWtlIGhhbGYtaGVhcnRlZCBhdHRlbXB0IG90IHRvIGludmFsaWRhdGUgcGFnZSBjYWNoZSBpZiB3ZSBhcmUKLSAqIGRyb3BwaW5nIFJEQ0FDSEUuICBOb3RlIHRoYXQgdGhpcyB3aWxsIGxlYXZlIGJlaGluZCBsb2NrZWQgcGFnZXMKLSAqIHRoYXQgd2UnbGwgdGhlbiBuZWVkIHRvIGRlYWwgd2l0aCBlbHNld2hlcmUuCi0gKgogICogUmV0dXJuIG5vbi16ZXJvIGlmIGRlbGF5ZWQgcmVsZWFzZSwgb3Igd2UgZXhwZXJpZW5jZWQgYW4gZXJyb3IKICAqIHN1Y2ggdGhhdCB0aGUgY2FsbGVyIHNob3VsZCByZXF1ZXVlICsgcmV0cnkgbGF0ZXIuCiAgKgpAQCAtMTc0NiwxMSArMTcxOCwxMSBAQCBzdGF0aWMgYm9vbCBfX2ZpbmlzaF9jYXBfZmx1c2goc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWRzYywKICAqIEFkZCBkaXJ0eSBpbm9kZSB0byB0aGUgZmx1c2hpbmcgbGlzdC4gIEFzc2lnbmVkIGEgc2VxIG51bWJlciBzbyB3ZQogICogY2FuIHdhaXQgZm9yIGNhcHMgdG8gZmx1c2ggd2l0aG91dCBzdGFydmluZy4KICAqCi0gKiBDYWxsZWQgdW5kZXIgaV9jZXBoX2xvY2suCisgKiBDYWxsZWQgdW5kZXIgaV9jZXBoX2xvY2suIFJldHVybnMgdGhlIGZsdXNoIHRpZC4KICAqLwotc3RhdGljIGludCBfX21hcmtfY2Fwc19mbHVzaGluZyhzdHJ1Y3QgaW5vZGUgKmlub2RlLAorc3RhdGljIHU2NCBfX21hcmtfY2Fwc19mbHVzaGluZyhzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJCXN0cnVjdCBjZXBoX21kc19zZXNzaW9uICpzZXNzaW9uLCBib29sIHdha2UsCi0JCQkJdTY0ICpmbHVzaF90aWQsIHU2NCAqb2xkZXN0X2ZsdXNoX3RpZCkKKwkJCQl1NjQgKm9sZGVzdF9mbHVzaF90aWQpCiB7CiAJc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWRzYyA9IGNlcGhfc2JfdG9fY2xpZW50KGlub2RlLT5pX3NiKS0+bWRzYzsKIAlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSA9IGNlcGhfaW5vZGUoaW5vZGUpOwpAQCAtMTc4OSw4ICsxNzYxLDcgQEAgc3RhdGljIGludCBfX21hcmtfY2Fwc19mbHVzaGluZyhzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCiAJbGlzdF9hZGRfdGFpbCgmY2YtPmlfbGlzdCwgJmNpLT5pX2NhcF9mbHVzaF9saXN0KTsKIAotCSpmbHVzaF90aWQgPSBjZi0+dGlkOwotCXJldHVybiBmbHVzaGluZzsKKwlyZXR1cm4gY2YtPnRpZDsKIH0KIAogLyoKQEAgLTIwMjgsMTEgKzE5OTksNiBAQCB2b2lkIGNlcGhfY2hlY2tfY2FwcyhzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgaW50IGZsYWdzLAogCQl9CiAKIGFjazoKLQkJaWYgKGNpLT5pX2NlcGhfZmxhZ3MgJiBDRVBIX0lfTk9GTFVTSCkgewotCQkJZG91dCgiIHNraXBwaW5nICVwIElfTk9GTFVTSCBzZXRcbiIsIGlub2RlKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KIAkJaWYgKHNlc3Npb24gJiYgc2Vzc2lvbiAhPSBjYXAtPnNlc3Npb24pIHsKIAkJCWRvdXQoIm9vcHMsIHdyb25nIHNlc3Npb24gJXAgbXV0ZXhcbiIsIHNlc3Npb24pOwogCQkJbXV0ZXhfdW5sb2NrKCZzZXNzaW9uLT5zX211dGV4KTsKQEAgLTIwODAsOSArMjA0Niw5IEBAIHZvaWQgY2VwaF9jaGVja19jYXBzKHN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpLCBpbnQgZmxhZ3MsCiAJCX0KIAogCQlpZiAoY2FwID09IGNpLT5pX2F1dGhfY2FwICYmIGNpLT5pX2RpcnR5X2NhcHMpIHsKLQkJCWZsdXNoaW5nID0gX19tYXJrX2NhcHNfZmx1c2hpbmcoaW5vZGUsIHNlc3Npb24sIGZhbHNlLAotCQkJCQkJCSZmbHVzaF90aWQsCi0JCQkJCQkJJm9sZGVzdF9mbHVzaF90aWQpOworCQkJZmx1c2hpbmcgPSBjaS0+aV9kaXJ0eV9jYXBzOworCQkJZmx1c2hfdGlkID0gX19tYXJrX2NhcHNfZmx1c2hpbmcoaW5vZGUsIHNlc3Npb24sIGZhbHNlLAorCQkJCQkJCSAmb2xkZXN0X2ZsdXNoX3RpZCk7CiAJCX0gZWxzZSB7CiAJCQlmbHVzaGluZyA9IDA7CiAJCQlmbHVzaF90aWQgPSAwOwpAQCAtMjEzMCwxNiArMjA5NiwxMSBAQCBzdGF0aWMgaW50IHRyeV9mbHVzaF9jYXBzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHU2NCAqcHRpZCkKIHJldHJ5OgogCXNwaW5fbG9jaygmY2ktPmlfY2VwaF9sb2NrKTsKIHJldHJ5X2xvY2tlZDoKLQlpZiAoY2ktPmlfY2VwaF9mbGFncyAmIENFUEhfSV9OT0ZMVVNIKSB7Ci0JCXNwaW5fdW5sb2NrKCZjaS0+aV9jZXBoX2xvY2spOwotCQlkb3V0KCJ0cnlfZmx1c2hfY2FwcyBza2lwcGluZyAlcCBJX05PRkxVU0ggc2V0XG4iLCBpbm9kZSk7Ci0JCWdvdG8gb3V0OwotCX0KIAlpZiAoY2ktPmlfZGlydHlfY2FwcyAmJiBjaS0+aV9hdXRoX2NhcCkgewogCQlzdHJ1Y3QgY2VwaF9jYXAgKmNhcCA9IGNpLT5pX2F1dGhfY2FwOwogCQlpbnQgZGVsYXllZDsKIAotCQlpZiAoIXNlc3Npb24gfHwgc2Vzc2lvbiAhPSBjYXAtPnNlc3Npb24pIHsKKwkJaWYgKHNlc3Npb24gIT0gY2FwLT5zZXNzaW9uKSB7CiAJCQlzcGluX3VubG9jaygmY2ktPmlfY2VwaF9sb2NrKTsKIAkJCWlmIChzZXNzaW9uKQogCQkJCW11dGV4X3VubG9jaygmc2Vzc2lvbi0+c19tdXRleCk7CkBAIC0yMTYxLDggKzIxMjIsOSBAQCBzdGF0aWMgaW50IHRyeV9mbHVzaF9jYXBzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHU2NCAqcHRpZCkKIAkJCWdvdG8gcmV0cnlfbG9ja2VkOwogCQl9CiAKLQkJZmx1c2hpbmcgPSBfX21hcmtfY2Fwc19mbHVzaGluZyhpbm9kZSwgc2Vzc2lvbiwgdHJ1ZSwKLQkJCQkJCSZmbHVzaF90aWQsICZvbGRlc3RfZmx1c2hfdGlkKTsKKwkJZmx1c2hpbmcgPSBjaS0+aV9kaXJ0eV9jYXBzOworCQlmbHVzaF90aWQgPSBfX21hcmtfY2Fwc19mbHVzaGluZyhpbm9kZSwgc2Vzc2lvbiwgdHJ1ZSwKKwkJCQkJCSAmb2xkZXN0X2ZsdXNoX3RpZCk7CiAKIAkJLyogX19zZW5kX2NhcCBkcm9wcyBpX2NlcGhfbG9jayAqLwogCQlkZWxheWVkID0gX19zZW5kX2NhcChtZHNjLCBjYXAsIENFUEhfQ0FQX09QX0ZMVVNILApAQCAtMjI2MSwzNSArMjIyMyw0NSBAQCBzdGF0aWMgaW50IHVuc2FmZV9yZXF1ZXN0X3dhaXQoc3RydWN0IGlub2RlICppbm9kZSkKIAogaW50IGNlcGhfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwgaW50IGRhdGFzeW5jKQogeworCXN0cnVjdCBjZXBoX2ZpbGVfaW5mbyAqZmkgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfbWFwcGluZy0+aG9zdDsKIAlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSA9IGNlcGhfaW5vZGUoaW5vZGUpOwogCXU2NCBmbHVzaF90aWQ7Ci0JaW50IHJldDsKKwlpbnQgcmV0LCBlcnI7CiAJaW50IGRpcnR5OwogCiAJZG91dCgiZnN5bmMgJXAlc1xuIiwgaW5vZGUsIGRhdGFzeW5jID8gIiBkYXRhc3luYyIgOiAiIik7CiAKIAlyZXQgPSBmaWxlX3dyaXRlX2FuZF93YWl0X3JhbmdlKGZpbGUsIHN0YXJ0LCBlbmQpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIG91dDsKLQogCWlmIChkYXRhc3luYykKIAkJZ290byBvdXQ7CiAKIAlkaXJ0eSA9IHRyeV9mbHVzaF9jYXBzKGlub2RlLCAmZmx1c2hfdGlkKTsKIAlkb3V0KCJmc3luYyBkaXJ0eSBjYXBzIGFyZSAlc1xuIiwgY2VwaF9jYXBfc3RyaW5nKGRpcnR5KSk7CiAKLQlyZXQgPSB1bnNhZmVfcmVxdWVzdF93YWl0KGlub2RlKTsKKwllcnIgPSB1bnNhZmVfcmVxdWVzdF93YWl0KGlub2RlKTsKIAogCS8qCiAJICogb25seSB3YWl0IG9uIG5vbi1maWxlIG1ldGFkYXRhIHdyaXRlYmFjayAodGhlIG1kcwogCSAqIGNhbiByZWNvdmVyIHNpemUgYW5kIG10aW1lLCBzbyB3ZSBkb24ndCBuZWVkIHRvCiAJICogd2FpdCBmb3IgdGhhdCkKIAkgKi8KLQlpZiAoIXJldCAmJiAoZGlydHkgJiB+Q0VQSF9DQVBfQU5ZX0ZJTEVfV1IpKSB7Ci0JCXJldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShjaS0+aV9jYXBfd3EsCisJaWYgKCFlcnIgJiYgKGRpcnR5ICYgfkNFUEhfQ0FQX0FOWV9GSUxFX1dSKSkgeworCQllcnIgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoY2ktPmlfY2FwX3dxLAogCQkJCQljYXBzX2FyZV9mbHVzaGVkKGlub2RlLCBmbHVzaF90aWQpKTsKIAl9CisKKwlpZiAoZXJyIDwgMCkKKwkJcmV0ID0gZXJyOworCisJaWYgKGVycnNlcV9jaGVjaygmY2ktPmlfbWV0YV9lcnIsIFJFQURfT05DRShmaS0+bWV0YV9lcnIpKSkgeworCQlzcGluX2xvY2soJmZpbGUtPmZfbG9jayk7CisJCWVyciA9IGVycnNlcV9jaGVja19hbmRfYWR2YW5jZSgmY2ktPmlfbWV0YV9lcnIsCisJCQkJCSAgICAgICAmZmktPm1ldGFfZXJyKTsKKwkJc3Bpbl91bmxvY2soJmZpbGUtPmZfbG9jayk7CisJCWlmIChlcnIgPCAwKQorCQkJcmV0ID0gZXJyOworCX0KIG91dDoKIAlkb3V0KCJmc3luYyAlcCVzIHJlc3VsdD0lZFxuIiwgaW5vZGUsIGRhdGFzeW5jID8gIiBkYXRhc3luYyIgOiAiIiwgcmV0KTsKIAlyZXR1cm4gcmV0OwpAQCAtMjU2MCwxMCArMjUzMiwxNSBAQCBzdGF0aWMgdm9pZCBfX3Rha2VfY2FwX3JlZnMoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksIGludCBnb3QsCiAgKgogICogRklYTUU6IGhvdyBkb2VzIGEgMCByZXR1cm4gZGlmZmVyIGZyb20gLUVBR0FJTj8KICAqLwotc3RhdGljIGludCB0cnlfZ2V0X2NhcF9yZWZzKHN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpLCBpbnQgbmVlZCwgaW50IHdhbnQsCi0JCQkgICAgbG9mZl90IGVuZG9mZiwgYm9vbCBub25ibG9jaywgaW50ICpnb3QpCitlbnVtIHsKKwlOT05fQkxPQ0tJTkcJPSAxLAorCUNIRUNLX0ZJTEVMT0NLCT0gMiwKK307CisKK3N0YXRpYyBpbnQgdHJ5X2dldF9jYXBfcmVmcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbmVlZCwgaW50IHdhbnQsCisJCQkgICAgbG9mZl90IGVuZG9mZiwgaW50IGZsYWdzLCBpbnQgKmdvdCkKIHsKLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gJmNpLT52ZnNfaW5vZGU7CisJc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2kgPSBjZXBoX2lub2RlKGlub2RlKTsKIAlzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICptZHNjID0gY2VwaF9pbm9kZV90b19jbGllbnQoaW5vZGUpLT5tZHNjOwogCWludCByZXQgPSAwOwogCWludCBoYXZlLCBpbXBsZW1lbnRlZDsKQEAgLTI1NzYsNiArMjU1MywxMyBAQCBzdGF0aWMgaW50IHRyeV9nZXRfY2FwX3JlZnMoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksIGludCBuZWVkLCBpbnQgd2FudCwKIGFnYWluOgogCXNwaW5fbG9jaygmY2ktPmlfY2VwaF9sb2NrKTsKIAorCWlmICgoZmxhZ3MgJiBDSEVDS19GSUxFTE9DSykgJiYKKwkgICAgKGNpLT5pX2NlcGhfZmxhZ3MgJiBDRVBIX0lfRVJST1JfRklMRUxPQ0spKSB7CisJCWRvdXQoInRyeV9nZXRfY2FwX3JlZnMgJXAgZXJyb3IgZmlsZWxvY2tcbiIsIGlub2RlKTsKKwkJcmV0ID0gLUVJTzsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKwogCS8qIG1ha2Ugc3VyZSBmaWxlIGlzIGFjdHVhbGx5IG9wZW4gKi8KIAlmaWxlX3dhbnRlZCA9IF9fY2VwaF9jYXBzX2ZpbGVfd2FudGVkKGNpKTsKIAlpZiAoKGZpbGVfd2FudGVkICYgbmVlZCkgIT0gbmVlZCkgewpAQCAtMjYzNyw3ICsyNjIxLDcgQEAgc3RhdGljIGludCB0cnlfZ2V0X2NhcF9yZWZzKHN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpLCBpbnQgbmVlZCwgaW50IHdhbnQsCiAJCQkJCSAqIHdlIGNhbiBub3QgY2FsbCBkb3duX3JlYWQoKSB3aGVuCiAJCQkJCSAqIHRhc2sgaXNuJ3QgaW4gVEFTS19SVU5OSU5HIHN0YXRlCiAJCQkJCSAqLwotCQkJCQlpZiAobm9uYmxvY2spIHsKKwkJCQkJaWYgKGZsYWdzICYgTk9OX0JMT0NLSU5HKSB7CiAJCQkJCQlyZXQgPSAtRUFHQUlOOwogCQkJCQkJZ290byBvdXRfdW5sb2NrOwogCQkJCQl9CkBAIC0yNzMxLDE4ICsyNzE1LDE5IEBAIHN0YXRpYyB2b2lkIGNoZWNrX21heF9zaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBlbmRvZmYpCiAJCWNlcGhfY2hlY2tfY2FwcyhjaSwgQ0hFQ0tfQ0FQU19BVVRIT05MWSwgTlVMTCk7CiB9CiAKLWludCBjZXBoX3RyeV9nZXRfY2FwcyhzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgaW50IG5lZWQsIGludCB3YW50LAoraW50IGNlcGhfdHJ5X2dldF9jYXBzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBuZWVkLCBpbnQgd2FudCwKIAkJICAgICAgYm9vbCBub25ibG9jaywgaW50ICpnb3QpCiB7CiAJaW50IHJldDsKIAogCUJVR19PTihuZWVkICYgfkNFUEhfQ0FQX0ZJTEVfUkQpOwogCUJVR19PTih3YW50ICYgfihDRVBIX0NBUF9GSUxFX0NBQ0hFfENFUEhfQ0FQX0ZJTEVfTEFaWUlPfENFUEhfQ0FQX0ZJTEVfU0hBUkVEKSk7Ci0JcmV0ID0gY2VwaF9wb29sX3Blcm1fY2hlY2soY2ksIG5lZWQpOworCXJldCA9IGNlcGhfcG9vbF9wZXJtX2NoZWNrKGlub2RlLCBuZWVkKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IHRyeV9nZXRfY2FwX3JlZnMoY2ksIG5lZWQsIHdhbnQsIDAsIG5vbmJsb2NrLCBnb3QpOworCXJldCA9IHRyeV9nZXRfY2FwX3JlZnMoaW5vZGUsIG5lZWQsIHdhbnQsIDAsCisJCQkgICAgICAgKG5vbmJsb2NrID8gTk9OX0JMT0NLSU5HIDogMCksIGdvdCk7CiAJcmV0dXJuIHJldCA9PSAtRUFHQUlOID8gMCA6IHJldDsKIH0KIApAQCAtMjc1MSwzMCArMjczNiw0MCBAQCBpbnQgY2VwaF90cnlfZ2V0X2NhcHMoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksIGludCBuZWVkLCBpbnQgd2FudCwKICAqIGR1ZSB0byBhIHNtYWxsIG1heF9zaXplLCBtYWtlIHN1cmUgd2UgY2hlY2tfbWF4X3NpemUgKGFuZCBwb3NzaWJseQogICogYXNrIHRoZSBtZHMpIHNvIHdlIGRvbid0IGdldCBodW5nIHVwIGluZGVmaW5pdGVseS4KICAqLwotaW50IGNlcGhfZ2V0X2NhcHMoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksIGludCBuZWVkLCBpbnQgd2FudCwKK2ludCBjZXBoX2dldF9jYXBzKHN0cnVjdCBmaWxlICpmaWxwLCBpbnQgbmVlZCwgaW50IHdhbnQsCiAJCSAgbG9mZl90IGVuZG9mZiwgaW50ICpnb3QsIHN0cnVjdCBwYWdlICoqcGlubmVkX3BhZ2UpCiB7Ci0JaW50IF9nb3QsIHJldDsKKwlzdHJ1Y3QgY2VwaF9maWxlX2luZm8gKmZpID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlX2lub2RlKGZpbHApOworCXN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpID0gY2VwaF9pbm9kZShpbm9kZSk7CisJc3RydWN0IGNlcGhfZnNfY2xpZW50ICpmc2MgPSBjZXBoX2lub2RlX3RvX2NsaWVudChpbm9kZSk7CisJaW50IHJldCwgX2dvdCwgZmxhZ3M7CiAKLQlyZXQgPSBjZXBoX3Bvb2xfcGVybV9jaGVjayhjaSwgbmVlZCk7CisJcmV0ID0gY2VwaF9wb29sX3Blcm1fY2hlY2soaW5vZGUsIG5lZWQpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCisJaWYgKChmaS0+Zm1vZGUgJiBDRVBIX0ZJTEVfTU9ERV9XUikgJiYKKwkgICAgZmktPmZpbHBfZ2VuICE9IFJFQURfT05DRShmc2MtPmZpbHBfZ2VuKSkKKwkJcmV0dXJuIC1FQkFERjsKKwogCXdoaWxlICh0cnVlKSB7CiAJCWlmIChlbmRvZmYgPiAwKQotCQkJY2hlY2tfbWF4X3NpemUoJmNpLT52ZnNfaW5vZGUsIGVuZG9mZik7CisJCQljaGVja19tYXhfc2l6ZShpbm9kZSwgZW5kb2ZmKTsKIAorCQlmbGFncyA9IGF0b21pY19yZWFkKCZmaS0+bnVtX2xvY2tzKSA/IENIRUNLX0ZJTEVMT0NLIDogMDsKIAkJX2dvdCA9IDA7Ci0JCXJldCA9IHRyeV9nZXRfY2FwX3JlZnMoY2ksIG5lZWQsIHdhbnQsIGVuZG9mZiwKLQkJCQkgICAgICAgZmFsc2UsICZfZ290KTsKKwkJcmV0ID0gdHJ5X2dldF9jYXBfcmVmcyhpbm9kZSwgbmVlZCwgd2FudCwgZW5kb2ZmLAorCQkJCSAgICAgICBmbGFncywgJl9nb3QpOwogCQlpZiAocmV0ID09IC1FQUdBSU4pCiAJCQljb250aW51ZTsKIAkJaWYgKCFyZXQpIHsKIAkJCURFRklORV9XQUlUX0ZVTkMod2FpdCwgd29rZW5fd2FrZV9mdW5jdGlvbik7CiAJCQlhZGRfd2FpdF9xdWV1ZSgmY2ktPmlfY2FwX3dxLCAmd2FpdCk7CiAKLQkJCXdoaWxlICghKHJldCA9IHRyeV9nZXRfY2FwX3JlZnMoY2ksIG5lZWQsIHdhbnQsIGVuZG9mZiwKLQkJCQkJCQl0cnVlLCAmX2dvdCkpKSB7CisJCQlmbGFncyB8PSBOT05fQkxPQ0tJTkc7CisJCQl3aGlsZSAoIShyZXQgPSB0cnlfZ2V0X2NhcF9yZWZzKGlub2RlLCBuZWVkLCB3YW50LAorCQkJCQkJCWVuZG9mZiwgZmxhZ3MsICZfZ290KSkpIHsKIAkJCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKIAkJCQkJcmV0ID0gLUVSRVNUQVJUU1lTOwogCQkJCQlicmVhazsKQEAgLTI3ODYsMTAgKzI3ODEsMTggQEAgaW50IGNlcGhfZ2V0X2NhcHMoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksIGludCBuZWVkLCBpbnQgd2FudCwKIAkJCWlmIChyZXQgPT0gLUVBR0FJTikKIAkJCQljb250aW51ZTsKIAkJfQorCisJCWlmICgoZmktPmZtb2RlICYgQ0VQSF9GSUxFX01PREVfV1IpICYmCisJCSAgICBmaS0+ZmlscF9nZW4gIT0gUkVBRF9PTkNFKGZzYy0+ZmlscF9nZW4pKSB7CisJCQlpZiAocmV0ID49IDAgJiYgX2dvdCkKKwkJCQljZXBoX3B1dF9jYXBfcmVmcyhjaSwgX2dvdCk7CisJCQlyZXR1cm4gLUVCQURGOworCQl9CisKIAkJaWYgKHJldCA8IDApIHsKIAkJCWlmIChyZXQgPT0gLUVTVEFMRSkgewogCQkJCS8qIHNlc3Npb24gd2FzIGtpbGxlZCwgdHJ5IHJlbmV3IGNhcHMgKi8KLQkJCQlyZXQgPSBjZXBoX3JlbmV3X2NhcHMoJmNpLT52ZnNfaW5vZGUpOworCQkJCXJldCA9IGNlcGhfcmVuZXdfY2Fwcyhpbm9kZSk7CiAJCQkJaWYgKHJldCA9PSAwKQogCQkJCQljb250aW51ZTsKIAkJCX0KQEAgLTI3OTgsOSArMjgwMSw5IEBAIGludCBjZXBoX2dldF9jYXBzKHN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpLCBpbnQgbmVlZCwgaW50IHdhbnQsCiAKIAkJaWYgKGNpLT5pX2lubGluZV92ZXJzaW9uICE9IENFUEhfSU5MSU5FX05PTkUgJiYKIAkJICAgIChfZ290ICYgKENFUEhfQ0FQX0ZJTEVfQ0FDSEV8Q0VQSF9DQVBfRklMRV9MQVpZSU8pKSAmJgotCQkgICAgaV9zaXplX3JlYWQoJmNpLT52ZnNfaW5vZGUpID4gMCkgeworCQkgICAgaV9zaXplX3JlYWQoaW5vZGUpID4gMCkgewogCQkJc3RydWN0IHBhZ2UgKnBhZ2UgPQotCQkJCWZpbmRfZ2V0X3BhZ2UoY2ktPnZmc19pbm9kZS5pX21hcHBpbmcsIDApOworCQkJCWZpbmRfZ2V0X3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgMCk7CiAJCQlpZiAocGFnZSkgewogCQkJCWlmIChQYWdlVXB0b2RhdGUocGFnZSkpIHsKIAkJCQkJKnBpbm5lZF9wYWdlID0gcGFnZTsKQEAgLTI4MTksNyArMjgyMiw3IEBAIGludCBjZXBoX2dldF9jYXBzKHN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpLCBpbnQgbmVlZCwgaW50IHdhbnQsCiAJCQkgKiBnZXRhdHRyIHJlcXVlc3Qgd2lsbCBicmluZyBpbmxpbmUgZGF0YSBpbnRvCiAJCQkgKiBwYWdlIGNhY2hlCiAJCQkgKi8KLQkJCXJldCA9IF9fY2VwaF9kb19nZXRhdHRyKCZjaS0+dmZzX2lub2RlLCBOVUxMLAorCQkJcmV0ID0gX19jZXBoX2RvX2dldGF0dHIoaW5vZGUsIE5VTEwsCiAJCQkJCQlDRVBIX1NUQVRfQ0FQX0lOTElORV9EQVRBLAogCQkJCQkJdHJ1ZSk7CiAJCQlpZiAocmV0IDwgMCkKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvZGVidWdmcy5jIGIvZnMvY2VwaC9kZWJ1Z2ZzLmMKaW5kZXggMmViODhlZC4uZmFjYjM4NyAxMDA2NDQKLS0tIGEvZnMvY2VwaC9kZWJ1Z2ZzLmMKKysrIGIvZnMvY2VwaC9kZWJ1Z2ZzLmMKQEAgLTI5NCw3ICsyOTQsNiBAQCB2b2lkIGNlcGhfZnNfZGVidWdmc19pbml0KHN0cnVjdCBjZXBoX2ZzX2NsaWVudCAqZnNjKQogCiB2b2lkIGNlcGhfZnNfZGVidWdmc19pbml0KHN0cnVjdCBjZXBoX2ZzX2NsaWVudCAqZnNjKQogewotCXJldHVybiAwOwogfQogCiB2b2lkIGNlcGhfZnNfZGVidWdmc19jbGVhbnVwKHN0cnVjdCBjZXBoX2ZzX2NsaWVudCAqZnNjKQpkaWZmIC0tZ2l0IGEvZnMvY2VwaC9leHBvcnQuYyBiL2ZzL2NlcGgvZXhwb3J0LmMKaW5kZXggMTVmZjFiMC4uYjZiZmE5NCAxMDA2NDQKLS0tIGEvZnMvY2VwaC9leHBvcnQuYworKysgYi9mcy9jZXBoL2V4cG9ydC5jCkBAIC0zNSw3ICszNSw3IEBAIHN0cnVjdCBjZXBoX25mc19zbmFwZmggewogc3RhdGljIGludCBjZXBoX2VuY29kZV9zbmFwZmgoc3RydWN0IGlub2RlICppbm9kZSwgdTMyICpyYXdmaCwgaW50ICptYXhfbGVuLAogCQkJICAgICAgc3RydWN0IGlub2RlICpwYXJlbnRfaW5vZGUpCiB7Ci0JY29uc3Qgc3RhdGljIGludCBzbmFwX2hhbmRsZV9sZW5ndGggPQorCXN0YXRpYyBjb25zdCBpbnQgc25hcF9oYW5kbGVfbGVuZ3RoID0KIAkJc2l6ZW9mKHN0cnVjdCBjZXBoX25mc19zbmFwZmgpID4+IDI7CiAJc3RydWN0IGNlcGhfbmZzX3NuYXBmaCAqc2ZoID0gKHZvaWQgKilyYXdmaDsKIAl1NjQgc25hcGlkID0gY2VwaF9zbmFwKGlub2RlKTsKQEAgLTg1LDkgKzg1LDkgQEAgc3RhdGljIGludCBjZXBoX2VuY29kZV9zbmFwZmgoc3RydWN0IGlub2RlICppbm9kZSwgdTMyICpyYXdmaCwgaW50ICptYXhfbGVuLAogc3RhdGljIGludCBjZXBoX2VuY29kZV9maChzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1MzIgKnJhd2ZoLCBpbnQgKm1heF9sZW4sCiAJCQkgIHN0cnVjdCBpbm9kZSAqcGFyZW50X2lub2RlKQogewotCWNvbnN0IHN0YXRpYyBpbnQgaGFuZGxlX2xlbmd0aCA9CisJc3RhdGljIGNvbnN0IGludCBoYW5kbGVfbGVuZ3RoID0KIAkJc2l6ZW9mKHN0cnVjdCBjZXBoX25mc19maCkgPj4gMjsKLQljb25zdCBzdGF0aWMgaW50IGNvbm5lY3RlZF9oYW5kbGVfbGVuZ3RoID0KKwlzdGF0aWMgY29uc3QgaW50IGNvbm5lY3RlZF9oYW5kbGVfbGVuZ3RoID0KIAkJc2l6ZW9mKHN0cnVjdCBjZXBoX25mc19jb25maCkgPj4gMjsKIAlpbnQgdHlwZTsKIApAQCAtNDU4LDMzICs0NTgsMzMgQEAgc3RhdGljIGludCBfX2dldF9zbmFwX25hbWUoc3RydWN0IGRlbnRyeSAqcGFyZW50LCBjaGFyICpuYW1lLAogCQlpZiAoZXJyIDwgMCkKIAkJCWdvdG8gb3V0OwogCi0JCSByaW5mbyA9ICZyZXEtPnJfcmVwbHlfaW5mbzsKLQkJIGZvciAoaSA9IDA7IGkgPCByaW5mby0+ZGlyX25yOyBpKyspIHsKLQkJCSByZGUgPSByaW5mby0+ZGlyX2VudHJpZXMgKyBpOwotCQkJIEJVR19PTighcmRlLT5pbm9kZS5pbik7Ci0JCQkgaWYgKGNlcGhfc25hcChpbm9kZSkgPT0KLQkJCSAgICAgbGU2NF90b19jcHUocmRlLT5pbm9kZS5pbi0+c25hcGlkKSkgewotCQkJCSBtZW1jcHkobmFtZSwgcmRlLT5uYW1lLCByZGUtPm5hbWVfbGVuKTsKLQkJCQkgbmFtZVtyZGUtPm5hbWVfbGVuXSA9ICdcMCc7Ci0JCQkJIGVyciA9IDA7Ci0JCQkJIGdvdG8gb3V0OwotCQkJIH0KLQkJIH0KKwkJcmluZm8gPSAmcmVxLT5yX3JlcGx5X2luZm87CisJCWZvciAoaSA9IDA7IGkgPCByaW5mby0+ZGlyX25yOyBpKyspIHsKKwkJCXJkZSA9IHJpbmZvLT5kaXJfZW50cmllcyArIGk7CisJCQlCVUdfT04oIXJkZS0+aW5vZGUuaW4pOworCQkJaWYgKGNlcGhfc25hcChpbm9kZSkgPT0KKwkJCSAgICBsZTY0X3RvX2NwdShyZGUtPmlub2RlLmluLT5zbmFwaWQpKSB7CisJCQkJbWVtY3B5KG5hbWUsIHJkZS0+bmFtZSwgcmRlLT5uYW1lX2xlbik7CisJCQkJbmFtZVtyZGUtPm5hbWVfbGVuXSA9ICdcMCc7CisJCQkJZXJyID0gMDsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKwkJfQogCi0JCSBpZiAocmluZm8tPmRpcl9lbmQpCi0JCQkgYnJlYWs7CisJCWlmIChyaW5mby0+ZGlyX2VuZCkKKwkJCWJyZWFrOwogCi0JCSBCVUdfT04ocmluZm8tPmRpcl9uciA8PSAwKTsKLQkJIHJkZSA9IHJpbmZvLT5kaXJfZW50cmllcyArIChyaW5mby0+ZGlyX25yIC0gMSk7Ci0JCSBuZXh0X29mZnNldCArPSByaW5mby0+ZGlyX25yOwotCQkgbGFzdF9uYW1lID0ga3N0cm5kdXAocmRlLT5uYW1lLCByZGUtPm5hbWVfbGVuLCBHRlBfS0VSTkVMKTsKLQkJIGlmICghbGFzdF9uYW1lKSB7Ci0JCQkgZXJyID0gLUVOT01FTTsKLQkJCSBnb3RvIG91dDsKLQkJIH0KKwkJQlVHX09OKHJpbmZvLT5kaXJfbnIgPD0gMCk7CisJCXJkZSA9IHJpbmZvLT5kaXJfZW50cmllcyArIChyaW5mby0+ZGlyX25yIC0gMSk7CisJCW5leHRfb2Zmc2V0ICs9IHJpbmZvLT5kaXJfbnI7CisJCWxhc3RfbmFtZSA9IGtzdHJuZHVwKHJkZS0+bmFtZSwgcmRlLT5uYW1lX2xlbiwgR0ZQX0tFUk5FTCk7CisJCWlmICghbGFzdF9uYW1lKSB7CisJCQllcnIgPSAtRU5PTUVNOworCQkJZ290byBvdXQ7CisJCX0KIAotCQkgY2VwaF9tZHNjX3B1dF9yZXF1ZXN0KHJlcSk7Ci0JCSByZXEgPSBOVUxMOworCQljZXBoX21kc2NfcHV0X3JlcXVlc3QocmVxKTsKKwkJcmVxID0gTlVMTDsKIAl9CiAJZXJyID0gLUVOT0VOVDsKIG91dDoKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvZmlsZS5jIGIvZnMvY2VwaC9maWxlLmMKaW5kZXggNjg1YTAzYy4uZDI3N2Y3MSAxMDA2NDQKLS0tIGEvZnMvY2VwaC9maWxlLmMKKysrIGIvZnMvY2VwaC9maWxlLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlICJzdXBlci5oIgogI2luY2x1ZGUgIm1kc19jbGllbnQuaCIKICNpbmNsdWRlICJjYWNoZS5oIgorI2luY2x1ZGUgImlvLmgiCiAKIHN0YXRpYyBfX2xlMzIgY2VwaF9mbGFnc19zeXMyd2lyZSh1MzIgZmxhZ3MpCiB7CkBAIC0yMDEsNiArMjAyLDcgQEAgcHJlcGFyZV9vcGVuX3JlcXVlc3Qoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IGZsYWdzLCBpbnQgY3JlYXRlX21vZGUpCiBzdGF0aWMgaW50IGNlcGhfaW5pdF9maWxlX2luZm8oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCiAJCQkJCWludCBmbW9kZSwgYm9vbCBpc2RpcikKIHsKKwlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSA9IGNlcGhfaW5vZGUoaW5vZGUpOwogCXN0cnVjdCBjZXBoX2ZpbGVfaW5mbyAqZmk7CiAKIAlkb3V0KCIlcyAlcCAlcCAwJW8gKCVzKVxuIiwgX19mdW5jX18sIGlub2RlLCBmaWxlLApAQCAtMjExLDcgKzIxMyw3IEBAIHN0YXRpYyBpbnQgY2VwaF9pbml0X2ZpbGVfaW5mbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJc3RydWN0IGNlcGhfZGlyX2ZpbGVfaW5mbyAqZGZpID0KIAkJCWttZW1fY2FjaGVfemFsbG9jKGNlcGhfZGlyX2ZpbGVfY2FjaGVwLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFkZmkpIHsKLQkJCWNlcGhfcHV0X2Ztb2RlKGNlcGhfaW5vZGUoaW5vZGUpLCBmbW9kZSk7IC8qIGNsZWFuIHVwICovCisJCQljZXBoX3B1dF9mbW9kZShjaSwgZm1vZGUpOyAvKiBjbGVhbiB1cCAqLwogCQkJcmV0dXJuIC1FTk9NRU07CiAJCX0KIApAQCAtMjIyLDcgKzIyNCw3IEBAIHN0YXRpYyBpbnQgY2VwaF9pbml0X2ZpbGVfaW5mbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9IGVsc2UgewogCQlmaSA9IGttZW1fY2FjaGVfemFsbG9jKGNlcGhfZmlsZV9jYWNoZXAsIEdGUF9LRVJORUwpOwogCQlpZiAoIWZpKSB7Ci0JCQljZXBoX3B1dF9mbW9kZShjZXBoX2lub2RlKGlub2RlKSwgZm1vZGUpOyAvKiBjbGVhbiB1cCAqLworCQkJY2VwaF9wdXRfZm1vZGUoY2ksIGZtb2RlKTsgLyogY2xlYW4gdXAgKi8KIAkJCXJldHVybiAtRU5PTUVNOwogCQl9CiAKQEAgLTIzMiw2ICsyMzQsOCBAQCBzdGF0aWMgaW50IGNlcGhfaW5pdF9maWxlX2luZm8oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCiAJZmktPmZtb2RlID0gZm1vZGU7CiAJc3Bpbl9sb2NrX2luaXQoJmZpLT5yd19jb250ZXh0c19sb2NrKTsKIAlJTklUX0xJU1RfSEVBRCgmZmktPnJ3X2NvbnRleHRzKTsKKwlmaS0+bWV0YV9lcnIgPSBlcnJzZXFfc2FtcGxlKCZjaS0+aV9tZXRhX2Vycik7CisJZmktPmZpbHBfZ2VuID0gUkVBRF9PTkNFKGNlcGhfaW5vZGVfdG9fY2xpZW50KGlub2RlKS0+ZmlscF9nZW4pOwogCiAJcmV0dXJuIDA7CiB9CkBAIC02OTUsNyArNjk5LDEzIEBAIHN0YXRpYyBzc2l6ZV90IGNlcGhfc3luY19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bywKIAkJCWNlcGhfcmVsZWFzZV9wYWdlX3ZlY3RvcihwYWdlcywgbnVtX3BhZ2VzKTsKIAkJfQogCi0JCWlmIChyZXQgPD0gMCB8fCBvZmYgPj0gaV9zaXplIHx8ICFtb3JlKQorCQlpZiAocmV0IDwgMCkgeworCQkJaWYgKHJldCA9PSAtRUJMQUNLTElTVEVEKQorCQkJCWZzYy0+YmxhY2tsaXN0ZWQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAob2ZmID49IGlfc2l6ZSB8fCAhbW9yZSkKIAkJCWJyZWFrOwogCX0KIApAQCAtOTIxLDcgKzkzMSw3IEBAIGNlcGhfZGlyZWN0X3JlYWRfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCiAJc3RydWN0IGNlcGhfYWlvX3JlcXVlc3QgKmFpb19yZXEgPSBOVUxMOwogCWludCBudW1fcGFnZXMgPSAwOwogCWludCBmbGFnczsKLQlpbnQgcmV0OworCWludCByZXQgPSAwOwogCXN0cnVjdCB0aW1lc3BlYzY0IG10aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAlzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudChpdGVyKTsKIAlsb2ZmX3QgcG9zID0gaW9jYi0+a2lfcG9zOwpAQCAtOTM1LDExICs5NDUsNiBAQCBjZXBoX2RpcmVjdF9yZWFkX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVyLAogCSAgICAgKHdyaXRlID8gIndyaXRlIiA6ICJyZWFkIiksIGZpbGUsIHBvcywgKHVuc2lnbmVkKWNvdW50LAogCSAgICAgc25hcGMsIHNuYXBjID8gc25hcGMtPnNlcSA6IDApOwogCi0JcmV0ID0gZmlsZW1hcF93cml0ZV9hbmRfd2FpdF9yYW5nZShpbm9kZS0+aV9tYXBwaW5nLAotCQkJCQkgICBwb3MsIHBvcyArIGNvdW50IC0gMSk7Ci0JaWYgKHJldCA8IDApCi0JCXJldHVybiByZXQ7Ci0KIAlpZiAod3JpdGUpIHsKIAkJaW50IHJldDIgPSBpbnZhbGlkYXRlX2lub2RlX3BhZ2VzMl9yYW5nZShpbm9kZS0+aV9tYXBwaW5nLAogCQkJCQlwb3MgPj4gUEFHRV9TSElGVCwKQEAgLTEyNjAsNyArMTI2NSw4IEBAIHN0YXRpYyBzc2l6ZV90IGNlcGhfcmVhZF9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykKIAkJd2FudCA9IENFUEhfQ0FQX0ZJTEVfQ0FDSEUgfCBDRVBIX0NBUF9GSUxFX0xBWllJTzsKIAllbHNlCiAJCXdhbnQgPSBDRVBIX0NBUF9GSUxFX0NBQ0hFOwotCXJldCA9IGNlcGhfZ2V0X2NhcHMoY2ksIENFUEhfQ0FQX0ZJTEVfUkQsIHdhbnQsIC0xLCAmZ290LCAmcGlubmVkX3BhZ2UpOworCXJldCA9IGNlcGhfZ2V0X2NhcHMoZmlscCwgQ0VQSF9DQVBfRklMRV9SRCwgd2FudCwgLTEsCisJCQkgICAgJmdvdCwgJnBpbm5lZF9wYWdlKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMTI3NCwxMiArMTI4MCwxNiBAQCBzdGF0aWMgc3NpemVfdCBjZXBoX3JlYWRfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pCiAKIAkJaWYgKGNpLT5pX2lubGluZV92ZXJzaW9uID09IENFUEhfSU5MSU5FX05PTkUpIHsKIAkJCWlmICghcmV0cnlfb3AgJiYgKGlvY2ItPmtpX2ZsYWdzICYgSU9DQl9ESVJFQ1QpKSB7CisJCQkJY2VwaF9zdGFydF9pb19kaXJlY3QoaW5vZGUpOwogCQkJCXJldCA9IGNlcGhfZGlyZWN0X3JlYWRfd3JpdGUoaW9jYiwgdG8sCiAJCQkJCQkJICAgICBOVUxMLCBOVUxMKTsKKwkJCQljZXBoX2VuZF9pb19kaXJlY3QoaW5vZGUpOwogCQkJCWlmIChyZXQgPj0gMCAmJiByZXQgPCBsZW4pCiAJCQkJCXJldHJ5X29wID0gQ0hFQ0tfRU9GOwogCQkJfSBlbHNlIHsKKwkJCQljZXBoX3N0YXJ0X2lvX3JlYWQoaW5vZGUpOwogCQkJCXJldCA9IGNlcGhfc3luY19yZWFkKGlvY2IsIHRvLCAmcmV0cnlfb3ApOworCQkJCWNlcGhfZW5kX2lvX3JlYWQoaW5vZGUpOwogCQkJfQogCQl9IGVsc2UgewogCQkJcmV0cnlfb3AgPSBSRUFEX0lOTElORTsKQEAgLTEyOTAsNyArMTMwMCw5IEBAIHN0YXRpYyBzc2l6ZV90IGNlcGhfcmVhZF9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykKIAkJICAgICBpbm9kZSwgY2VwaF92aW5vcChpbm9kZSksIGlvY2ItPmtpX3BvcywgKHVuc2lnbmVkKWxlbiwKIAkJICAgICBjZXBoX2NhcF9zdHJpbmcoZ290KSk7CiAJCWNlcGhfYWRkX3J3X2NvbnRleHQoZmksICZyd19jdHgpOworCQljZXBoX3N0YXJ0X2lvX3JlYWQoaW5vZGUpOwogCQlyZXQgPSBnZW5lcmljX2ZpbGVfcmVhZF9pdGVyKGlvY2IsIHRvKTsKKwkJY2VwaF9lbmRfaW9fcmVhZChpbm9kZSk7CiAJCWNlcGhfZGVsX3J3X2NvbnRleHQoZmksICZyd19jdHgpOwogCX0KIAlkb3V0KCJhaW9fcmVhZCAlcCAlbGx4LiVsbHggZHJvcHBpbmcgY2FwIHJlZnMgb24gJXMgPSAlZFxuIiwKQEAgLTEzOTksNyArMTQxMSwxMCBAQCBzdGF0aWMgc3NpemVfdCBjZXBoX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pCiAJCXJldHVybiAtRU5PTUVNOwogCiByZXRyeV9zbmFwOgotCWlub2RlX2xvY2soaW5vZGUpOworCWlmIChpb2NiLT5raV9mbGFncyAmIElPQ0JfRElSRUNUKQorCQljZXBoX3N0YXJ0X2lvX2RpcmVjdChpbm9kZSk7CisJZWxzZQorCQljZXBoX3N0YXJ0X2lvX3dyaXRlKGlub2RlKTsKIAogCS8qIFdlIGNhbiB3cml0ZSBiYWNrIHRoaXMgcXVldWUgaW4gcGFnZSByZWNsYWltICovCiAJY3VycmVudC0+YmFja2luZ19kZXZfaW5mbyA9IGlub2RlX3RvX2JkaShpbm9kZSk7CkBAIC0xNDU3LDcgKzE0NzIsNyBAQCBzdGF0aWMgc3NpemVfdCBjZXBoX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pCiAJZWxzZQogCQl3YW50ID0gQ0VQSF9DQVBfRklMRV9CVUZGRVI7CiAJZ290ID0gMDsKLQllcnIgPSBjZXBoX2dldF9jYXBzKGNpLCBDRVBIX0NBUF9GSUxFX1dSLCB3YW50LCBwb3MgKyBjb3VudCwKKwllcnIgPSBjZXBoX2dldF9jYXBzKGZpbGUsIENFUEhfQ0FQX0ZJTEVfV1IsIHdhbnQsIHBvcyArIGNvdW50LAogCQkJICAgICZnb3QsIE5VTEwpOwogCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dDsKQEAgLTE0NzAsNyArMTQ4NSw2IEBAIHN0YXRpYyBzc2l6ZV90IGNlcGhfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkKIAkgICAgKGNpLT5pX2NlcGhfZmxhZ3MgJiBDRVBIX0lfRVJST1JfV1JJVEUpKSB7CiAJCXN0cnVjdCBjZXBoX3NuYXBfY29udGV4dCAqc25hcGM7CiAJCXN0cnVjdCBpb3ZfaXRlciBkYXRhOwotCQlpbm9kZV91bmxvY2soaW5vZGUpOwogCiAJCXNwaW5fbG9jaygmY2ktPmlfY2VwaF9sb2NrKTsKIAkJaWYgKF9fY2VwaF9oYXZlX3BlbmRpbmdfY2FwX3NuYXAoY2kpKSB7CkBAIC0xNDg3LDExICsxNTAxLDE0IEBAIHN0YXRpYyBzc2l6ZV90IGNlcGhfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkKIAogCQkvKiB3ZSBtaWdodCBuZWVkIHRvIHJldmVydCBiYWNrIHRvIHRoYXQgcG9pbnQgKi8KIAkJZGF0YSA9ICpmcm9tOwotCQlpZiAoaW9jYi0+a2lfZmxhZ3MgJiBJT0NCX0RJUkVDVCkKKwkJaWYgKGlvY2ItPmtpX2ZsYWdzICYgSU9DQl9ESVJFQ1QpIHsKIAkJCXdyaXR0ZW4gPSBjZXBoX2RpcmVjdF9yZWFkX3dyaXRlKGlvY2IsICZkYXRhLCBzbmFwYywKIAkJCQkJCQkgJnByZWFsbG9jX2NmKTsKLQkJZWxzZQorCQkJY2VwaF9lbmRfaW9fZGlyZWN0KGlub2RlKTsKKwkJfSBlbHNlIHsKIAkJCXdyaXR0ZW4gPSBjZXBoX3N5bmNfd3JpdGUoaW9jYiwgJmRhdGEsIHBvcywgc25hcGMpOworCQkJY2VwaF9lbmRfaW9fd3JpdGUoaW5vZGUpOworCQl9CiAJCWlmICh3cml0dGVuID4gMCkKIAkJCWlvdl9pdGVyX2FkdmFuY2UoZnJvbSwgd3JpdHRlbik7CiAJCWNlcGhfcHV0X3NuYXBfY29udGV4dChzbmFwYyk7CkBAIC0xNTA2LDcgKzE1MjMsNyBAQCBzdGF0aWMgc3NpemVfdCBjZXBoX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pCiAJCXdyaXR0ZW4gPSBnZW5lcmljX3BlcmZvcm1fd3JpdGUoZmlsZSwgZnJvbSwgcG9zKTsKIAkJaWYgKGxpa2VseSh3cml0dGVuID49IDApKQogCQkJaW9jYi0+a2lfcG9zID0gcG9zICsgd3JpdHRlbjsKLQkJaW5vZGVfdW5sb2NrKGlub2RlKTsKKwkJY2VwaF9lbmRfaW9fd3JpdGUoaW5vZGUpOwogCX0KIAogCWlmICh3cml0dGVuID49IDApIHsKQEAgLTE1NDEsOSArMTU1OCwxMSBAQCBzdGF0aWMgc3NpemVfdCBjZXBoX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pCiAJfQogCiAJZ290byBvdXRfdW5sb2NrZWQ7Ci0KIG91dDoKLQlpbm9kZV91bmxvY2soaW5vZGUpOworCWlmIChpb2NiLT5raV9mbGFncyAmIElPQ0JfRElSRUNUKQorCQljZXBoX2VuZF9pb19kaXJlY3QoaW5vZGUpOworCWVsc2UKKwkJY2VwaF9lbmRfaW9fd3JpdGUoaW5vZGUpOwogb3V0X3VubG9ja2VkOgogCWNlcGhfZnJlZV9jYXBfZmx1c2gocHJlYWxsb2NfY2YpOwogCWN1cnJlbnQtPmJhY2tpbmdfZGV2X2luZm8gPSBOVUxMOwpAQCAtMTc4MSw3ICsxODAwLDcgQEAgc3RhdGljIGxvbmcgY2VwaF9mYWxsb2NhdGUoc3RydWN0IGZpbGUgKmZpbGUsIGludCBtb2RlLAogCWVsc2UKIAkJd2FudCA9IENFUEhfQ0FQX0ZJTEVfQlVGRkVSOwogCi0JcmV0ID0gY2VwaF9nZXRfY2FwcyhjaSwgQ0VQSF9DQVBfRklMRV9XUiwgd2FudCwgZW5kb2ZmLCAmZ290LCBOVUxMKTsKKwlyZXQgPSBjZXBoX2dldF9jYXBzKGZpbGUsIENFUEhfQ0FQX0ZJTEVfV1IsIHdhbnQsIGVuZG9mZiwgJmdvdCwgTlVMTCk7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gdW5sb2NrOwogCkBAIC0xODEwLDE2ICsxODI5LDE1IEBAIHN0YXRpYyBsb25nIGNlcGhfZmFsbG9jYXRlKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbW9kZSwKICAqIHNyY19jaS4gIFR3byBhdHRlbXB0cyBhcmUgbWFkZSB0byBvYnRhaW4gYm90aCBjYXBzLCBhbmQgYW4gZXJyb3IgaXMgcmV0dXJuIGlmCiAgKiB0aGlzIGZhaWxzOyB6ZXJvIGlzIHJldHVybmVkIG9uIHN1Y2Nlc3MuCiAgKi8KLXN0YXRpYyBpbnQgZ2V0X3JkX3dyX2NhcHMoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqc3JjX2NpLAotCQkJICBsb2ZmX3Qgc3JjX2VuZG9mZiwgaW50ICpzcmNfZ290LAotCQkJICBzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpkc3RfY2ksCitzdGF0aWMgaW50IGdldF9yZF93cl9jYXBzKHN0cnVjdCBmaWxlICpzcmNfZmlscCwgaW50ICpzcmNfZ290LAorCQkJICBzdHJ1Y3QgZmlsZSAqZHN0X2ZpbHAsCiAJCQkgIGxvZmZfdCBkc3RfZW5kb2ZmLCBpbnQgKmRzdF9nb3QpCiB7CiAJaW50IHJldCA9IDA7CiAJYm9vbCByZXRyeWluZyA9IGZhbHNlOwogCiByZXRyeV9jYXBzOgotCXJldCA9IGNlcGhfZ2V0X2NhcHMoZHN0X2NpLCBDRVBIX0NBUF9GSUxFX1dSLCBDRVBIX0NBUF9GSUxFX0JVRkZFUiwKKwlyZXQgPSBjZXBoX2dldF9jYXBzKGRzdF9maWxwLCBDRVBIX0NBUF9GSUxFX1dSLCBDRVBIX0NBUF9GSUxFX0JVRkZFUiwKIAkJCSAgICBkc3RfZW5kb2ZmLCBkc3RfZ290LCBOVUxMKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTE4MjksMjQgKzE4NDcsMjQgQEAgc3RhdGljIGludCBnZXRfcmRfd3JfY2FwcyhzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpzcmNfY2ksCiAJICogd2Ugd291bGQgcmlzayBhIGRlYWRsb2NrIGJ5IHVzaW5nIGNlcGhfZ2V0X2NhcHMuICBUaHVzLCB3ZSdsbCBkbyBzb21lCiAJICogcmV0cnkgZGFuY2UgaW5zdGVhZCB0byB0cnkgdG8gZ2V0IGJvdGggY2FwYWJpbGl0aWVzLgogCSAqLwotCXJldCA9IGNlcGhfdHJ5X2dldF9jYXBzKHNyY19jaSwgQ0VQSF9DQVBfRklMRV9SRCwgQ0VQSF9DQVBfRklMRV9TSEFSRUQsCisJcmV0ID0gY2VwaF90cnlfZ2V0X2NhcHMoZmlsZV9pbm9kZShzcmNfZmlscCksCisJCQkJQ0VQSF9DQVBfRklMRV9SRCwgQ0VQSF9DQVBfRklMRV9TSEFSRUQsCiAJCQkJZmFsc2UsIHNyY19nb3QpOwogCWlmIChyZXQgPD0gMCkgewogCQkvKiBTdGFydCBieSBkcm9wcGluZyBkc3RfY2kgY2FwcyBhbmQgZ2V0dGluZyBzcmNfY2kgY2FwcyAqLwotCQljZXBoX3B1dF9jYXBfcmVmcyhkc3RfY2ksICpkc3RfZ290KTsKKwkJY2VwaF9wdXRfY2FwX3JlZnMoY2VwaF9pbm9kZShmaWxlX2lub2RlKGRzdF9maWxwKSksICpkc3RfZ290KTsKIAkJaWYgKHJldHJ5aW5nKSB7CiAJCQlpZiAoIXJldCkKIAkJCQkvKiBjZXBoX3RyeV9nZXRfY2FwcyBtYXNrcyBFQUdBSU4gKi8KIAkJCQlyZXQgPSAtRUFHQUlOOwogCQkJcmV0dXJuIHJldDsKIAkJfQotCQlyZXQgPSBjZXBoX2dldF9jYXBzKHNyY19jaSwgQ0VQSF9DQVBfRklMRV9SRCwKLQkJCQkgICAgQ0VQSF9DQVBfRklMRV9TSEFSRUQsIHNyY19lbmRvZmYsCi0JCQkJICAgIHNyY19nb3QsIE5VTEwpOworCQlyZXQgPSBjZXBoX2dldF9jYXBzKHNyY19maWxwLCBDRVBIX0NBUF9GSUxFX1JELAorCQkJCSAgICBDRVBIX0NBUF9GSUxFX1NIQVJFRCwgLTEsIHNyY19nb3QsIE5VTEwpOwogCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CiAJCS8qLi4uIGRyb3Agc3JjX2NpIGNhcHMgdG9vLCBhbmQgcmV0cnkgKi8KLQkJY2VwaF9wdXRfY2FwX3JlZnMoc3JjX2NpLCAqc3JjX2dvdCk7CisJCWNlcGhfcHV0X2NhcF9yZWZzKGNlcGhfaW5vZGUoZmlsZV9pbm9kZShzcmNfZmlscCkpLCAqc3JjX2dvdCk7CiAJCXJldHJ5aW5nID0gdHJ1ZTsKIAkJZ290byByZXRyeV9jYXBzOwogCX0KQEAgLTE5MDQsNiArMTkyMiw3IEBAIHN0YXRpYyBzc2l6ZV90IF9fY2VwaF9jb3B5X2ZpbGVfcmFuZ2Uoc3RydWN0IGZpbGUgKnNyY19maWxlLCBsb2ZmX3Qgc3JjX29mZiwKIAlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpzcmNfY2kgPSBjZXBoX2lub2RlKHNyY19pbm9kZSk7CiAJc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqZHN0X2NpID0gY2VwaF9pbm9kZShkc3RfaW5vZGUpOwogCXN0cnVjdCBjZXBoX2NhcF9mbHVzaCAqcHJlYWxsb2NfY2Y7CisJc3RydWN0IGNlcGhfZnNfY2xpZW50ICpzcmNfZnNjID0gY2VwaF9pbm9kZV90b19jbGllbnQoc3JjX2lub2RlKTsKIAlzdHJ1Y3QgY2VwaF9vYmplY3RfbG9jYXRvciBzcmNfb2xvYywgZHN0X29sb2M7CiAJc3RydWN0IGNlcGhfb2JqZWN0X2lkIHNyY19vaWQsIGRzdF9vaWQ7CiAJbG9mZl90IGVuZG9mZiA9IDAsIHNpemU7CkBAIC0xOTEzLDEwICsxOTMyLDE2IEBAIHN0YXRpYyBzc2l6ZV90IF9fY2VwaF9jb3B5X2ZpbGVfcmFuZ2Uoc3RydWN0IGZpbGUgKnNyY19maWxlLCBsb2ZmX3Qgc3JjX29mZiwKIAlpbnQgc3JjX2dvdCA9IDAsIGRzdF9nb3QgPSAwLCBlcnIsIGRpcnR5OwogCWJvb2wgZG9fZmluYWxfY29weSA9IGZhbHNlOwogCi0JaWYgKHNyY19pbm9kZSA9PSBkc3RfaW5vZGUpCi0JCXJldHVybiAtRUlOVkFMOwotCWlmIChzcmNfaW5vZGUtPmlfc2IgIT0gZHN0X2lub2RlLT5pX3NiKQotCQlyZXR1cm4gLUVYREVWOworCWlmIChzcmNfaW5vZGUtPmlfc2IgIT0gZHN0X2lub2RlLT5pX3NiKSB7CisJCXN0cnVjdCBjZXBoX2ZzX2NsaWVudCAqZHN0X2ZzYyA9IGNlcGhfaW5vZGVfdG9fY2xpZW50KGRzdF9pbm9kZSk7CisKKwkJaWYgKGNlcGhfZnNpZF9jb21wYXJlKCZzcmNfZnNjLT5jbGllbnQtPmZzaWQsCisJCQkJICAgICAgJmRzdF9mc2MtPmNsaWVudC0+ZnNpZCkpIHsKKwkJCWRvdXQoIkNvcHlpbmcgZmlsZXMgYWNyb3NzIGNsdXN0ZXJzOiBzcmM6ICVwVSBkc3Q6ICVwVVxuIiwKKwkJCSAgICAgJnNyY19mc2MtPmNsaWVudC0+ZnNpZCwgJmRzdF9mc2MtPmNsaWVudC0+ZnNpZCk7CisJCQlyZXR1cm4gLUVYREVWOworCQl9CisJfQogCWlmIChjZXBoX3NuYXAoZHN0X2lub2RlKSAhPSBDRVBIX05PU05BUCkKIAkJcmV0dXJuIC1FUk9GUzsKIApAQCAtMTkyOCw3ICsxOTUzLDcgQEAgc3RhdGljIHNzaXplX3QgX19jZXBoX2NvcHlfZmlsZV9yYW5nZShzdHJ1Y3QgZmlsZSAqc3JjX2ZpbGUsIGxvZmZfdCBzcmNfb2ZmLAogCSAqIGVmZmljaWVudCkuCiAJICovCiAKLQlpZiAoY2VwaF90ZXN0X21vdW50X29wdChjZXBoX2lub2RlX3RvX2NsaWVudChzcmNfaW5vZGUpLCBOT0NPUFlGUk9NKSkKKwlpZiAoY2VwaF90ZXN0X21vdW50X29wdChzcmNfZnNjLCBOT0NPUFlGUk9NKSkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCiAJaWYgKChzcmNfY2ktPmlfbGF5b3V0LnN0cmlwZV91bml0ICE9IGRzdF9jaS0+aV9sYXlvdXQuc3RyaXBlX3VuaXQpIHx8CkBAIC0xOTYwLDggKzE5ODUsOCBAQCBzdGF0aWMgc3NpemVfdCBfX2NlcGhfY29weV9maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpzcmNfZmlsZSwgbG9mZl90IHNyY19vZmYsCiAJICogY2xpZW50cyBtYXkgaGF2ZSBkaXJ0eSBkYXRhIGluIHRoZWlyIGNhY2hlcy4gIEFuZCBPU0RzIGtub3cgbm90aGluZwogCSAqIGFib3V0IGNhcHMsIHNvIHRoZXkgY2FuJ3Qgc2FmZWx5IGRvIHRoZSByZW1vdGUgb2JqZWN0IGNvcGllcy4KIAkgKi8KLQllcnIgPSBnZXRfcmRfd3JfY2FwcyhzcmNfY2ksIChzcmNfb2ZmICsgbGVuKSwgJnNyY19nb3QsCi0JCQkgICAgIGRzdF9jaSwgKGRzdF9vZmYgKyBsZW4pLCAmZHN0X2dvdCk7CisJZXJyID0gZ2V0X3JkX3dyX2NhcHMoc3JjX2ZpbGUsICZzcmNfZ290LAorCQkJICAgICBkc3RfZmlsZSwgKGRzdF9vZmYgKyBsZW4pLCAmZHN0X2dvdCk7CiAJaWYgKGVyciA8IDApIHsKIAkJZG91dCgiZ2V0X3JkX3dyX2NhcHMgcmV0dXJuZWQgJWRcbiIsIGVycik7CiAJCXJldCA9IC1FT1BOT1RTVVBQOwpAQCAtMjAxOCw5ICsyMDQzLDggQEAgc3RhdGljIHNzaXplX3QgX19jZXBoX2NvcHlfZmlsZV9yYW5nZShzdHJ1Y3QgZmlsZSAqc3JjX2ZpbGUsIGxvZmZfdCBzcmNfb2ZmLAogCQkJZ290byBvdXQ7CiAJCX0KIAkJbGVuIC09IHJldDsKLQkJZXJyID0gZ2V0X3JkX3dyX2NhcHMoc3JjX2NpLCAoc3JjX29mZiArIGxlbiksCi0JCQkJICAgICAmc3JjX2dvdCwgZHN0X2NpLAotCQkJCSAgICAgKGRzdF9vZmYgKyBsZW4pLCAmZHN0X2dvdCk7CisJCWVyciA9IGdldF9yZF93cl9jYXBzKHNyY19maWxlLCAmc3JjX2dvdCwKKwkJCQkgICAgIGRzdF9maWxlLCAoZHN0X29mZiArIGxlbiksICZkc3RfZ290KTsKIAkJaWYgKGVyciA8IDApCiAJCQlnb3RvIG91dDsKIAkJZXJyID0gaXNfZmlsZV9zaXplX29rKHNyY19pbm9kZSwgZHN0X2lub2RlLApAQCAtMjA0NCw3ICsyMDY4LDcgQEAgc3RhdGljIHNzaXplX3QgX19jZXBoX2NvcHlfZmlsZV9yYW5nZShzdHJ1Y3QgZmlsZSAqc3JjX2ZpbGUsIGxvZmZfdCBzcmNfb2ZmLAogCQkJCWRzdF9jaS0+aV92aW5vLmlubywgZHN0X29iam51bSk7CiAJCS8qIERvIGFuIG9iamVjdCByZW1vdGUgY29weSAqLwogCQllcnIgPSBjZXBoX29zZGNfY29weV9mcm9tKAotCQkJJmNlcGhfaW5vZGVfdG9fY2xpZW50KHNyY19pbm9kZSktPmNsaWVudC0+b3NkYywKKwkJCSZzcmNfZnNjLT5jbGllbnQtPm9zZGMsCiAJCQlzcmNfY2ktPmlfdmluby5zbmFwLCAwLAogCQkJJnNyY19vaWQsICZzcmNfb2xvYywKIAkJCUNFUEhfT1NEX09QX0ZMQUdfRkFEVklTRV9TRVFVRU5USUFMIHwKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvaW5vZGUuYyBiL2ZzL2NlcGgvaW5vZGUuYwppbmRleCAxODUwMGVkZS4uOWYxMzU2MiAxMDA2NDQKLS0tIGEvZnMvY2VwaC9pbm9kZS5jCisrKyBiL2ZzL2NlcGgvaW5vZGUuYwpAQCAtNTE1LDYgKzUxNSw4IEBAIHN0cnVjdCBpbm9kZSAqY2VwaF9hbGxvY19pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCiAJY2VwaF9mc2NhY2hlX2lub2RlX2luaXQoY2kpOwogCisJY2ktPmlfbWV0YV9lcnIgPSAwOworCiAJcmV0dXJuICZjaS0+dmZzX2lub2RlOwogfQogCkBAIC04MDEsNyArODAzLDEyIEBAIHN0YXRpYyBpbnQgZmlsbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcGFnZSAqbG9ja2VkX3BhZ2UsCiAKIAkvKiB1cGRhdGUgaW5vZGUgKi8KIAlpbm9kZS0+aV9yZGV2ID0gbGUzMl90b19jcHUoaW5mby0+cmRldik7Ci0JaW5vZGUtPmlfYmxrYml0cyA9IGZscyhsZTMyX3RvX2NwdShpbmZvLT5sYXlvdXQuZmxfc3RyaXBlX3VuaXQpKSAtIDE7CisJLyogZGlyZWN0b3JpZXMgaGF2ZSBmbF9zdHJpcGVfdW5pdCBzZXQgdG8gemVybyAqLworCWlmIChsZTMyX3RvX2NwdShpbmZvLT5sYXlvdXQuZmxfc3RyaXBlX3VuaXQpKQorCQlpbm9kZS0+aV9ibGtiaXRzID0KKwkJCWZscyhsZTMyX3RvX2NwdShpbmZvLT5sYXlvdXQuZmxfc3RyaXBlX3VuaXQpKSAtIDE7CisJZWxzZQorCQlpbm9kZS0+aV9ibGtiaXRzID0gQ0VQSF9CTE9DS19TSElGVDsKIAogCV9fY2VwaF91cGRhdGVfcXVvdGEoY2ksIGlpbmZvLT5tYXhfYnl0ZXMsIGlpbmZvLT5tYXhfZmlsZXMpOwogCkBAIC0xOTgyLDcgKzE5ODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgY2VwaF9zeW1saW5rX2lvcHMgPSB7CiBpbnQgX19jZXBoX3NldGF0dHIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlhdHRyICphdHRyKQogewogCXN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpID0gY2VwaF9pbm9kZShpbm9kZSk7Ci0JY29uc3QgdW5zaWduZWQgaW50IGlhX3ZhbGlkID0gYXR0ci0+aWFfdmFsaWQ7CisJdW5zaWduZWQgaW50IGlhX3ZhbGlkID0gYXR0ci0+aWFfdmFsaWQ7CiAJc3RydWN0IGNlcGhfbWRzX3JlcXVlc3QgKnJlcTsKIAlzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICptZHNjID0gY2VwaF9zYl90b19jbGllbnQoaW5vZGUtPmlfc2IpLT5tZHNjOwogCXN0cnVjdCBjZXBoX2NhcF9mbHVzaCAqcHJlYWxsb2NfY2Y7CkBAIC0yMDg3LDYgKzIwOTQsMjYgQEAgaW50IF9fY2VwaF9zZXRhdHRyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBpYXR0ciAqYXR0cikKIAkJCQkgICBDRVBIX0NBUF9GSUxFX1JEIHwgQ0VQSF9DQVBfRklMRV9XUjsKIAkJfQogCX0KKwlpZiAoaWFfdmFsaWQgJiBBVFRSX1NJWkUpIHsKKwkJZG91dCgic2V0YXR0ciAlcCBzaXplICVsbGQgLT4gJWxsZFxuIiwgaW5vZGUsCisJCSAgICAgaW5vZGUtPmlfc2l6ZSwgYXR0ci0+aWFfc2l6ZSk7CisJCWlmICgoaXNzdWVkICYgQ0VQSF9DQVBfRklMRV9FWENMKSAmJgorCQkgICAgYXR0ci0+aWFfc2l6ZSA+IGlub2RlLT5pX3NpemUpIHsKKwkJCWlfc2l6ZV93cml0ZShpbm9kZSwgYXR0ci0+aWFfc2l6ZSk7CisJCQlpbm9kZS0+aV9ibG9ja3MgPSBjYWxjX2lub2RlX2Jsb2NrcyhhdHRyLT5pYV9zaXplKTsKKwkJCWNpLT5pX3JlcG9ydGVkX3NpemUgPSBhdHRyLT5pYV9zaXplOworCQkJZGlydGllZCB8PSBDRVBIX0NBUF9GSUxFX0VYQ0w7CisJCQlpYV92YWxpZCB8PSBBVFRSX01USU1FOworCQl9IGVsc2UgaWYgKChpc3N1ZWQgJiBDRVBIX0NBUF9GSUxFX1NIQVJFRCkgPT0gMCB8fAorCQkJICAgYXR0ci0+aWFfc2l6ZSAhPSBpbm9kZS0+aV9zaXplKSB7CisJCQlyZXEtPnJfYXJncy5zZXRhdHRyLnNpemUgPSBjcHVfdG9fbGU2NChhdHRyLT5pYV9zaXplKTsKKwkJCXJlcS0+cl9hcmdzLnNldGF0dHIub2xkX3NpemUgPQorCQkJCWNwdV90b19sZTY0KGlub2RlLT5pX3NpemUpOworCQkJbWFzayB8PSBDRVBIX1NFVEFUVFJfU0laRTsKKwkJCXJlbGVhc2UgfD0gQ0VQSF9DQVBfRklMRV9TSEFSRUQgfCBDRVBIX0NBUF9GSUxFX0VYQ0wgfAorCQkJCSAgIENFUEhfQ0FQX0ZJTEVfUkQgfCBDRVBIX0NBUF9GSUxFX1dSOworCQl9CisJfQogCWlmIChpYV92YWxpZCAmIEFUVFJfTVRJTUUpIHsKIAkJZG91dCgic2V0YXR0ciAlcCBtdGltZSAlbGxkLiVsZCAtPiAlbGxkLiVsZFxuIiwgaW5vZGUsCiAJCSAgICAgaW5vZGUtPmlfbXRpbWUudHZfc2VjLCBpbm9kZS0+aV9tdGltZS50dl9uc2VjLApAQCAtMjEwOSwyNSArMjEzNiw2IEBAIGludCBfX2NlcGhfc2V0YXR0cihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaWF0dHIgKmF0dHIpCiAJCQkJICAgQ0VQSF9DQVBfRklMRV9SRCB8IENFUEhfQ0FQX0ZJTEVfV1I7CiAJCX0KIAl9Ci0JaWYgKGlhX3ZhbGlkICYgQVRUUl9TSVpFKSB7Ci0JCWRvdXQoInNldGF0dHIgJXAgc2l6ZSAlbGxkIC0+ICVsbGRcbiIsIGlub2RlLAotCQkgICAgIGlub2RlLT5pX3NpemUsIGF0dHItPmlhX3NpemUpOwotCQlpZiAoKGlzc3VlZCAmIENFUEhfQ0FQX0ZJTEVfRVhDTCkgJiYKLQkJICAgIGF0dHItPmlhX3NpemUgPiBpbm9kZS0+aV9zaXplKSB7Ci0JCQlpX3NpemVfd3JpdGUoaW5vZGUsIGF0dHItPmlhX3NpemUpOwotCQkJaW5vZGUtPmlfYmxvY2tzID0gY2FsY19pbm9kZV9ibG9ja3MoYXR0ci0+aWFfc2l6ZSk7Ci0JCQljaS0+aV9yZXBvcnRlZF9zaXplID0gYXR0ci0+aWFfc2l6ZTsKLQkJCWRpcnRpZWQgfD0gQ0VQSF9DQVBfRklMRV9FWENMOwotCQl9IGVsc2UgaWYgKChpc3N1ZWQgJiBDRVBIX0NBUF9GSUxFX1NIQVJFRCkgPT0gMCB8fAotCQkJICAgYXR0ci0+aWFfc2l6ZSAhPSBpbm9kZS0+aV9zaXplKSB7Ci0JCQlyZXEtPnJfYXJncy5zZXRhdHRyLnNpemUgPSBjcHVfdG9fbGU2NChhdHRyLT5pYV9zaXplKTsKLQkJCXJlcS0+cl9hcmdzLnNldGF0dHIub2xkX3NpemUgPQotCQkJCWNwdV90b19sZTY0KGlub2RlLT5pX3NpemUpOwotCQkJbWFzayB8PSBDRVBIX1NFVEFUVFJfU0laRTsKLQkJCXJlbGVhc2UgfD0gQ0VQSF9DQVBfRklMRV9TSEFSRUQgfCBDRVBIX0NBUF9GSUxFX0VYQ0wgfAotCQkJCSAgIENFUEhfQ0FQX0ZJTEVfUkQgfCBDRVBIX0NBUF9GSUxFX1dSOwotCQl9Ci0JfQogCiAJLyogdGhlc2UgZG8gbm90aGluZyAqLwogCWlmIChpYV92YWxpZCAmIEFUVFJfQ1RJTUUpIHsKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvaW8uYyBiL2ZzL2NlcGgvaW8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzYwMmVhCi0tLSAvZGV2L251bGwKKysrIGIvZnMvY2VwaC9pby5jCkBAIC0wLDAgKzEsMTYzIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBUcm9uZCBNeWtsZWJ1c3QKKyAqIENvcHlyaWdodCAoYykgMjAxOSBKZWZmIExheXRvbgorICoKKyAqIEkvTyBhbmQgZGF0YSBwYXRoIGhlbHBlciBmdW5jdGlvbmFsaXR5LgorICoKKyAqIEhlYXZpbHkgYm9ycm93ZWQgZnJvbSBlcXVpdmFsZW50IGNvZGUgaW4gZnMvbmZzL2lvLmMKKyAqLworCisjaW5jbHVkZSA8bGludXgvY2VwaC9jZXBoX2RlYnVnLmg+CisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3J3c2VtLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKworI2luY2x1ZGUgInN1cGVyLmgiCisjaW5jbHVkZSAiaW8uaCIKKworLyogQ2FsbCB3aXRoIGV4Y2x1c2l2ZWx5IGxvY2tlZCBpbm9kZS0+aV9yd3NlbSAqLworc3RhdGljIHZvaWQgY2VwaF9ibG9ja19vX2RpcmVjdChzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlsb2NrZGVwX2Fzc2VydF9oZWxkX3dyaXRlKCZpbm9kZS0+aV9yd3NlbSk7CisKKwlpZiAoUkVBRF9PTkNFKGNpLT5pX2NlcGhfZmxhZ3MpICYgQ0VQSF9JX09ESVJFQ1QpIHsKKwkJc3Bpbl9sb2NrKCZjaS0+aV9jZXBoX2xvY2spOworCQljaS0+aV9jZXBoX2ZsYWdzICY9IH5DRVBIX0lfT0RJUkVDVDsKKwkJc3Bpbl91bmxvY2soJmNpLT5pX2NlcGhfbG9jayk7CisJCWlub2RlX2Rpb193YWl0KGlub2RlKTsKKwl9Cit9CisKKy8qKgorICogY2VwaF9zdGFydF9pb19yZWFkIC0gZGVjbGFyZSB0aGUgZmlsZSBpcyBiZWluZyB1c2VkIGZvciBidWZmZXJlZCByZWFkcworICogQGlub2RlOiBmaWxlIGlub2RlCisgKgorICogRGVjbGFyZSB0aGF0IGEgYnVmZmVyZWQgcmVhZCBvcGVyYXRpb24gaXMgYWJvdXQgdG8gc3RhcnQsIGFuZCBlbnN1cmUKKyAqIHRoYXQgd2UgYmxvY2sgYWxsIGRpcmVjdCBJL08uCisgKiBPbiBleGl0LCB0aGUgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZSBDRVBIX0lfT0RJUkVDVCBmbGFnIGlzIHVuc2V0LAorICogYW5kIGhvbGRzIGEgc2hhcmVkIGxvY2sgb24gaW5vZGUtPmlfcndzZW0gdG8gZW5zdXJlIHRoYXQgdGhlIGZsYWcKKyAqIGNhbm5vdCBiZSBjaGFuZ2VkLgorICogSW4gcHJhY3RpY2UsIHRoaXMgbWVhbnMgdGhhdCBidWZmZXJlZCByZWFkIG9wZXJhdGlvbnMgYXJlIGFsbG93ZWQgdG8KKyAqIGV4ZWN1dGUgaW4gcGFyYWxsZWwsIHRoYW5rcyB0byB0aGUgc2hhcmVkIGxvY2ssIHdoZXJlYXMgZGlyZWN0IEkvTworICogb3BlcmF0aW9ucyBuZWVkIHRvIHdhaXQgdG8gZ3JhYiBhbiBleGNsdXNpdmUgbG9jayBpbiBvcmRlciB0byBzZXQKKyAqIENFUEhfSV9PRElSRUNULgorICogTm90ZSB0aGF0IGJ1ZmZlcmVkIHdyaXRlcyBhbmQgdHJ1bmNhdGVzIGJvdGggdGFrZSBhIHdyaXRlIGxvY2sgb24KKyAqIGlub2RlLT5pX3J3c2VtLCBtZWFuaW5nIHRoYXQgdGhvc2UgYXJlIHNlcmlhbGlzZWQgdy5yLnQuIHRoZSByZWFkcy4KKyAqLwordm9pZAorY2VwaF9zdGFydF9pb19yZWFkKHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2kgPSBjZXBoX2lub2RlKGlub2RlKTsKKworCS8qIEJlIGFuIG9wdGltaXN0ISAqLworCWRvd25fcmVhZCgmaW5vZGUtPmlfcndzZW0pOworCWlmICghKFJFQURfT05DRShjaS0+aV9jZXBoX2ZsYWdzKSAmIENFUEhfSV9PRElSRUNUKSkKKwkJcmV0dXJuOworCXVwX3JlYWQoJmlub2RlLT5pX3J3c2VtKTsKKwkvKiBTbG93IHBhdGguLi4uICovCisJZG93bl93cml0ZSgmaW5vZGUtPmlfcndzZW0pOworCWNlcGhfYmxvY2tfb19kaXJlY3QoY2ksIGlub2RlKTsKKwlkb3duZ3JhZGVfd3JpdGUoJmlub2RlLT5pX3J3c2VtKTsKK30KKworLyoqCisgKiBjZXBoX2VuZF9pb19yZWFkIC0gZGVjbGFyZSB0aGF0IHRoZSBidWZmZXJlZCByZWFkIG9wZXJhdGlvbiBpcyBkb25lCisgKiBAaW5vZGU6IGZpbGUgaW5vZGUKKyAqCisgKiBEZWNsYXJlIHRoYXQgYSBidWZmZXJlZCByZWFkIG9wZXJhdGlvbiBpcyBkb25lLCBhbmQgcmVsZWFzZSB0aGUgc2hhcmVkCisgKiBsb2NrIG9uIGlub2RlLT5pX3J3c2VtLgorICovCit2b2lkCitjZXBoX2VuZF9pb19yZWFkKHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJdXBfcmVhZCgmaW5vZGUtPmlfcndzZW0pOworfQorCisvKioKKyAqIGNlcGhfc3RhcnRfaW9fd3JpdGUgLSBkZWNsYXJlIHRoZSBmaWxlIGlzIGJlaW5nIHVzZWQgZm9yIGJ1ZmZlcmVkIHdyaXRlcworICogQGlub2RlOiBmaWxlIGlub2RlCisgKgorICogRGVjbGFyZSB0aGF0IGEgYnVmZmVyZWQgd3JpdGUgb3BlcmF0aW9uIGlzIGFib3V0IHRvIHN0YXJ0LCBhbmQgZW5zdXJlCisgKiB0aGF0IHdlIGJsb2NrIGFsbCBkaXJlY3QgSS9PLgorICovCit2b2lkCitjZXBoX3N0YXJ0X2lvX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJZG93bl93cml0ZSgmaW5vZGUtPmlfcndzZW0pOworCWNlcGhfYmxvY2tfb19kaXJlY3QoY2VwaF9pbm9kZShpbm9kZSksIGlub2RlKTsKK30KKworLyoqCisgKiBjZXBoX2VuZF9pb193cml0ZSAtIGRlY2xhcmUgdGhhdCB0aGUgYnVmZmVyZWQgd3JpdGUgb3BlcmF0aW9uIGlzIGRvbmUKKyAqIEBpbm9kZTogZmlsZSBpbm9kZQorICoKKyAqIERlY2xhcmUgdGhhdCBhIGJ1ZmZlcmVkIHdyaXRlIG9wZXJhdGlvbiBpcyBkb25lLCBhbmQgcmVsZWFzZSB0aGUKKyAqIGxvY2sgb24gaW5vZGUtPmlfcndzZW0uCisgKi8KK3ZvaWQKK2NlcGhfZW5kX2lvX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJdXBfd3JpdGUoJmlub2RlLT5pX3J3c2VtKTsKK30KKworLyogQ2FsbCB3aXRoIGV4Y2x1c2l2ZWx5IGxvY2tlZCBpbm9kZS0+aV9yd3NlbSAqLworc3RhdGljIHZvaWQgY2VwaF9ibG9ja19idWZmZXJlZChzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlsb2NrZGVwX2Fzc2VydF9oZWxkX3dyaXRlKCZpbm9kZS0+aV9yd3NlbSk7CisKKwlpZiAoIShSRUFEX09OQ0UoY2ktPmlfY2VwaF9mbGFncykgJiBDRVBIX0lfT0RJUkVDVCkpIHsKKwkJc3Bpbl9sb2NrKCZjaS0+aV9jZXBoX2xvY2spOworCQljaS0+aV9jZXBoX2ZsYWdzIHw9IENFUEhfSV9PRElSRUNUOworCQlzcGluX3VubG9jaygmY2ktPmlfY2VwaF9sb2NrKTsKKwkJLyogRklYTUU6IHVubWFwX21hcHBpbmdfcmFuZ2U/ICovCisJCWZpbGVtYXBfd3JpdGVfYW5kX3dhaXQoaW5vZGUtPmlfbWFwcGluZyk7CisJfQorfQorCisvKioKKyAqIGNlcGhfZW5kX2lvX2RpcmVjdCAtIGRlY2xhcmUgdGhlIGZpbGUgaXMgYmVpbmcgdXNlZCBmb3IgZGlyZWN0IGkvbworICogQGlub2RlOiBmaWxlIGlub2RlCisgKgorICogRGVjbGFyZSB0aGF0IGEgZGlyZWN0IEkvTyBvcGVyYXRpb24gaXMgYWJvdXQgdG8gc3RhcnQsIGFuZCBlbnN1cmUKKyAqIHRoYXQgd2UgYmxvY2sgYWxsIGJ1ZmZlcmVkIEkvTy4KKyAqIE9uIGV4aXQsIHRoZSBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlIENFUEhfSV9PRElSRUNUIGZsYWcgaXMgc2V0LAorICogYW5kIGhvbGRzIGEgc2hhcmVkIGxvY2sgb24gaW5vZGUtPmlfcndzZW0gdG8gZW5zdXJlIHRoYXQgdGhlIGZsYWcKKyAqIGNhbm5vdCBiZSBjaGFuZ2VkLgorICogSW4gcHJhY3RpY2UsIHRoaXMgbWVhbnMgdGhhdCBkaXJlY3QgSS9PIG9wZXJhdGlvbnMgYXJlIGFsbG93ZWQgdG8KKyAqIGV4ZWN1dGUgaW4gcGFyYWxsZWwsIHRoYW5rcyB0byB0aGUgc2hhcmVkIGxvY2ssIHdoZXJlYXMgYnVmZmVyZWQgSS9PCisgKiBvcGVyYXRpb25zIG5lZWQgdG8gd2FpdCB0byBncmFiIGFuIGV4Y2x1c2l2ZSBsb2NrIGluIG9yZGVyIHRvIGNsZWFyCisgKiBDRVBIX0lfT0RJUkVDVC4KKyAqIE5vdGUgdGhhdCBidWZmZXJlZCB3cml0ZXMgYW5kIHRydW5jYXRlcyBib3RoIHRha2UgYSB3cml0ZSBsb2NrIG9uCisgKiBpbm9kZS0+aV9yd3NlbSwgbWVhbmluZyB0aGF0IHRob3NlIGFyZSBzZXJpYWxpc2VkIHcuci50LiBPX0RJUkVDVC4KKyAqLwordm9pZAorY2VwaF9zdGFydF9pb19kaXJlY3Qoc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSA9IGNlcGhfaW5vZGUoaW5vZGUpOworCisJLyogQmUgYW4gb3B0aW1pc3QhICovCisJZG93bl9yZWFkKCZpbm9kZS0+aV9yd3NlbSk7CisJaWYgKFJFQURfT05DRShjaS0+aV9jZXBoX2ZsYWdzKSAmIENFUEhfSV9PRElSRUNUKQorCQlyZXR1cm47CisJdXBfcmVhZCgmaW5vZGUtPmlfcndzZW0pOworCS8qIFNsb3cgcGF0aC4uLi4gKi8KKwlkb3duX3dyaXRlKCZpbm9kZS0+aV9yd3NlbSk7CisJY2VwaF9ibG9ja19idWZmZXJlZChjaSwgaW5vZGUpOworCWRvd25ncmFkZV93cml0ZSgmaW5vZGUtPmlfcndzZW0pOworfQorCisvKioKKyAqIGNlcGhfZW5kX2lvX2RpcmVjdCAtIGRlY2xhcmUgdGhhdCB0aGUgZGlyZWN0IGkvbyBvcGVyYXRpb24gaXMgZG9uZQorICogQGlub2RlOiBmaWxlIGlub2RlCisgKgorICogRGVjbGFyZSB0aGF0IGEgZGlyZWN0IEkvTyBvcGVyYXRpb24gaXMgZG9uZSwgYW5kIHJlbGVhc2UgdGhlIHNoYXJlZAorICogbG9jayBvbiBpbm9kZS0+aV9yd3NlbS4KKyAqLwordm9pZAorY2VwaF9lbmRfaW9fZGlyZWN0KHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJdXBfcmVhZCgmaW5vZGUtPmlfcndzZW0pOworfQpkaWZmIC0tZ2l0IGEvZnMvY2VwaC9pby5oIGIvZnMvY2VwaC9pby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhNTk0Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9mcy9jZXBoL2lvLmgKQEAgLTAsMCArMSwxMiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKyNpZm5kZWYgX0ZTX0NFUEhfSU9fSAorI2RlZmluZSBfRlNfQ0VQSF9JT19ICisKK3ZvaWQgY2VwaF9zdGFydF9pb19yZWFkKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwordm9pZCBjZXBoX2VuZF9pb19yZWFkKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwordm9pZCBjZXBoX3N0YXJ0X2lvX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwordm9pZCBjZXBoX2VuZF9pb193cml0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKK3ZvaWQgY2VwaF9zdGFydF9pb19kaXJlY3Qoc3RydWN0IGlub2RlICppbm9kZSk7Cit2b2lkIGNlcGhfZW5kX2lvX2RpcmVjdChzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKKworI2VuZGlmIC8qIEZTX0NFUEhfSU9fSCAqLwpkaWZmIC0tZ2l0IGEvZnMvY2VwaC9sb2Nrcy5jIGIvZnMvY2VwaC9sb2Nrcy5jCmluZGV4IDUwODNlMjMuLjU0NGU5ZTggMTAwNjQ0Ci0tLSBhL2ZzL2NlcGgvbG9ja3MuYworKysgYi9mcy9jZXBoL2xvY2tzLmMKQEAgLTMyLDE0ICszMiwxOCBAQCB2b2lkIF9faW5pdCBjZXBoX2Zsb2NrX2luaXQodm9pZCkKIAogc3RhdGljIHZvaWQgY2VwaF9mbF9jb3B5X2xvY2soc3RydWN0IGZpbGVfbG9jayAqZHN0LCBzdHJ1Y3QgZmlsZV9sb2NrICpzcmMpCiB7Ci0Jc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoc3JjLT5mbF9maWxlKTsKKwlzdHJ1Y3QgY2VwaF9maWxlX2luZm8gKmZpID0gZHN0LT5mbF9maWxlLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZHN0LT5mbF9maWxlKTsKIAlhdG9taWNfaW5jKCZjZXBoX2lub2RlKGlub2RlKS0+aV9maWxlbG9ja19yZWYpOworCWF0b21pY19pbmMoJmZpLT5udW1fbG9ja3MpOwogfQogCiBzdGF0aWMgdm9pZCBjZXBoX2ZsX3JlbGVhc2VfbG9jayhzdHJ1Y3QgZmlsZV9sb2NrICpmbCkKIHsKKwlzdHJ1Y3QgY2VwaF9maWxlX2luZm8gKmZpID0gZmwtPmZsX2ZpbGUtPnByaXZhdGVfZGF0YTsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmbC0+ZmxfZmlsZSk7CiAJc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2kgPSBjZXBoX2lub2RlKGlub2RlKTsKKwlhdG9taWNfZGVjKCZmaS0+bnVtX2xvY2tzKTsKIAlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY2ktPmlfZmlsZWxvY2tfcmVmKSkgewogCQkvKiBjbGVhciBlcnJvciB3aGVuIGFsbCBsb2NrcyBhcmUgcmVsZWFzZWQgKi8KIAkJc3Bpbl9sb2NrKCZjaS0+aV9jZXBoX2xvY2spOwpAQCAtNzMsNyArNzcsNyBAQCBzdGF0aWMgaW50IGNlcGhfbG9ja19tZXNzYWdlKHU4IGxvY2tfdHlwZSwgdTE2IG9wZXJhdGlvbiwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJICogd2luZG93LiBDYWxsZXIgZnVuY3Rpb24gd2lsbCBkZWNyZWFzZSB0aGUgY291bnRlci4KIAkJICovCiAJCWZsLT5mbF9vcHMgPSAmY2VwaF9mbF9sb2NrX29wczsKLQkJYXRvbWljX2luYygmY2VwaF9pbm9kZShpbm9kZSktPmlfZmlsZWxvY2tfcmVmKTsKKwkJZmwtPmZsX29wcy0+ZmxfY29weV9sb2NrKGZsLCBOVUxMKTsKIAl9CiAKIAlpZiAob3BlcmF0aW9uICE9IENFUEhfTURTX09QX1NFVEZJTEVMT0NLIHx8IGNtZCA9PSBDRVBIX0xPQ0tfVU5MT0NLKQpkaWZmIC0tZ2l0IGEvZnMvY2VwaC9tZHNfY2xpZW50LmMgYi9mcy9jZXBoL21kc19jbGllbnQuYwppbmRleCA5MjBlOWYwLi5hOGE4Zjg0IDEwMDY0NAotLS0gYS9mcy9jZXBoL21kc19jbGllbnQuYworKysgYi9mcy9jZXBoL21kc19jbGllbnQuYwpAQCAtNjM5LDcgKzYzOSw2IEBAIHN0YXRpYyBzdHJ1Y3QgY2VwaF9tZHNfc2Vzc2lvbiAqcmVnaXN0ZXJfc2Vzc2lvbihzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICptZHNjLAogCXMtPnNfcmVuZXdfc2VxID0gMDsKIAlJTklUX0xJU1RfSEVBRCgmcy0+c19jYXBzKTsKIAlzLT5zX25yX2NhcHMgPSAwOwotCXMtPnNfdHJpbV9jYXBzID0gMDsKIAlyZWZjb3VudF9zZXQoJnMtPnNfcmVmLCAxKTsKIAlJTklUX0xJU1RfSEVBRCgmcy0+c193YWl0aW5nKTsKIAlJTklUX0xJU1RfSEVBRCgmcy0+c191bnNhZmUpOwpAQCAtMTI3MCw2ICsxMjY5LDcgQEAgc3RhdGljIHZvaWQgY2xlYW51cF9zZXNzaW9uX3JlcXVlc3RzKHN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kc2MsCiB7CiAJc3RydWN0IGNlcGhfbWRzX3JlcXVlc3QgKnJlcTsKIAlzdHJ1Y3QgcmJfbm9kZSAqcDsKKwlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaTsKIAogCWRvdXQoImNsZWFudXBfc2Vzc2lvbl9yZXF1ZXN0cyBtZHMlZFxuIiwgc2Vzc2lvbi0+c19tZHMpOwogCW11dGV4X2xvY2soJm1kc2MtPm11dGV4KTsKQEAgLTEyNzgsNiArMTI3OCwxNiBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwX3Nlc3Npb25fcmVxdWVzdHMoc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWRzYywKIAkJCQkgICAgICAgc3RydWN0IGNlcGhfbWRzX3JlcXVlc3QsIHJfdW5zYWZlX2l0ZW0pOwogCQlwcl93YXJuX3JhdGVsaW1pdGVkKCIgZHJvcHBpbmcgdW5zYWZlIHJlcXVlc3QgJWxsdVxuIiwKIAkJCQkgICAgcmVxLT5yX3RpZCk7CisJCWlmIChyZXEtPnJfdGFyZ2V0X2lub2RlKSB7CisJCQkvKiBkcm9wcGluZyB1bnNhZmUgY2hhbmdlIG9mIGlub2RlJ3MgYXR0cmlidXRlcyAqLworCQkJY2kgPSBjZXBoX2lub2RlKHJlcS0+cl90YXJnZXRfaW5vZGUpOworCQkJZXJyc2VxX3NldCgmY2ktPmlfbWV0YV9lcnIsIC1FSU8pOworCQl9CisJCWlmIChyZXEtPnJfdW5zYWZlX2RpcikgeworCQkJLyogZHJvcHBpbmcgdW5zYWZlIGRpcmVjdG9yeSBvcGVyYXRpb24gKi8KKwkJCWNpID0gY2VwaF9pbm9kZShyZXEtPnJfdW5zYWZlX2Rpcik7CisJCQllcnJzZXFfc2V0KCZjaS0+aV9tZXRhX2VyciwgLUVJTyk7CisJCX0KIAkJX191bnJlZ2lzdGVyX3JlcXVlc3QobWRzYywgcmVxKTsKIAl9CiAJLyogemVybyByX2F0dGVtcHRzLCBzbyBraWNrX3JlcXVlc3RzKCkgd2lsbCByZS1zZW5kIHJlcXVlc3RzICovCkBAIC0xMzcwLDcgKzEzODAsNyBAQCBzdGF0aWMgaW50IHJlbW92ZV9zZXNzaW9uX2NhcHNfY2Ioc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGNlcGhfY2FwICpjYXAsCiAJc3RydWN0IGNlcGhfZnNfY2xpZW50ICpmc2MgPSAoc3RydWN0IGNlcGhfZnNfY2xpZW50ICopYXJnOwogCXN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpID0gY2VwaF9pbm9kZShpbm9kZSk7CiAJTElTVF9IRUFEKHRvX3JlbW92ZSk7Ci0JYm9vbCBkcm9wID0gZmFsc2U7CisJYm9vbCBkaXJ0eV9kcm9wcGVkID0gZmFsc2U7CiAJYm9vbCBpbnZhbGlkYXRlID0gZmFsc2U7CiAKIAlkb3V0KCJyZW1vdmluZyBjYXAgJXAsIGNpIGlzICVwLCBpbm9kZSBpcyAlcFxuIiwKQEAgLTEzODMsOSArMTM5MywxMiBAQCBzdGF0aWMgaW50IHJlbW92ZV9zZXNzaW9uX2NhcHNfY2Ioc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGNlcGhfY2FwICpjYXAsCiAJCXN0cnVjdCBjZXBoX2NhcF9mbHVzaCAqY2Y7CiAJCXN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kc2MgPSBmc2MtPm1kc2M7CiAKLQkJaWYgKGNpLT5pX3dyYnVmZmVyX3JlZiA+IDAgJiYKLQkJICAgIFJFQURfT05DRShmc2MtPm1vdW50X3N0YXRlKSA9PSBDRVBIX01PVU5UX1NIVVRET1dOKQotCQkJaW52YWxpZGF0ZSA9IHRydWU7CisJCWlmIChSRUFEX09OQ0UoZnNjLT5tb3VudF9zdGF0ZSkgPT0gQ0VQSF9NT1VOVF9TSFVURE9XTikgeworCQkJaWYgKGlub2RlLT5pX2RhdGEubnJwYWdlcyA+IDApCisJCQkJaW52YWxpZGF0ZSA9IHRydWU7CisJCQlpZiAoY2ktPmlfd3JidWZmZXJfcmVmID4gMCkKKwkJCQltYXBwaW5nX3NldF9lcnJvcigmaW5vZGUtPmlfZGF0YSwgLUVJTyk7CisJCX0KIAogCQl3aGlsZSAoIWxpc3RfZW1wdHkoJmNpLT5pX2NhcF9mbHVzaF9saXN0KSkgewogCQkJY2YgPSBsaXN0X2ZpcnN0X2VudHJ5KCZjaS0+aV9jYXBfZmx1c2hfbGlzdCwKQEAgLTE0MDUsNyArMTQxOCw3IEBAIHN0YXRpYyBpbnQgcmVtb3ZlX3Nlc3Npb25fY2Fwc19jYihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgY2VwaF9jYXAgKmNhcCwKIAkJCQlpbm9kZSwgY2VwaF9pbm8oaW5vZGUpKTsKIAkJCWNpLT5pX2RpcnR5X2NhcHMgPSAwOwogCQkJbGlzdF9kZWxfaW5pdCgmY2ktPmlfZGlydHlfaXRlbSk7Ci0JCQlkcm9wID0gdHJ1ZTsKKwkJCWRpcnR5X2Ryb3BwZWQgPSB0cnVlOwogCQl9CiAJCWlmICghbGlzdF9lbXB0eSgmY2ktPmlfZmx1c2hpbmdfaXRlbSkpIHsKIAkJCXByX3dhcm5fcmF0ZWxpbWl0ZWQoCkBAIC0xNDE1LDEwICsxNDI4LDIyIEBAIHN0YXRpYyBpbnQgcmVtb3ZlX3Nlc3Npb25fY2Fwc19jYihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgY2VwaF9jYXAgKmNhcCwKIAkJCWNpLT5pX2ZsdXNoaW5nX2NhcHMgPSAwOwogCQkJbGlzdF9kZWxfaW5pdCgmY2ktPmlfZmx1c2hpbmdfaXRlbSk7CiAJCQltZHNjLT5udW1fY2FwX2ZsdXNoaW5nLS07Ci0JCQlkcm9wID0gdHJ1ZTsKKwkJCWRpcnR5X2Ryb3BwZWQgPSB0cnVlOwogCQl9CiAJCXNwaW5fdW5sb2NrKCZtZHNjLT5jYXBfZGlydHlfbG9jayk7CiAKKwkJaWYgKGRpcnR5X2Ryb3BwZWQpIHsKKwkJCWVycnNlcV9zZXQoJmNpLT5pX21ldGFfZXJyLCAtRUlPKTsKKworCQkJaWYgKGNpLT5pX3dyYnVmZmVyX3JlZl9oZWFkID09IDAgJiYKKwkJCSAgICBjaS0+aV93cl9yZWYgPT0gMCAmJgorCQkJICAgIGNpLT5pX2RpcnR5X2NhcHMgPT0gMCAmJgorCQkJICAgIGNpLT5pX2ZsdXNoaW5nX2NhcHMgPT0gMCkgeworCQkJCWNlcGhfcHV0X3NuYXBfY29udGV4dChjaS0+aV9oZWFkX3NuYXBjKTsKKwkJCQljaS0+aV9oZWFkX3NuYXBjID0gTlVMTDsKKwkJCX0KKwkJfQorCiAJCWlmIChhdG9taWNfcmVhZCgmY2ktPmlfZmlsZWxvY2tfcmVmKSA+IDApIHsKIAkJCS8qIG1ha2UgZnVydGhlciBmaWxlIGxvY2sgc3lzY2FsbCByZXR1cm4gLUVJTyAqLwogCQkJY2ktPmlfY2VwaF9mbGFncyB8PSBDRVBIX0lfRVJST1JfRklMRUxPQ0s7CkBAIC0xNDMwLDE1ICsxNDU1LDYgQEAgc3RhdGljIGludCByZW1vdmVfc2Vzc2lvbl9jYXBzX2NiKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBjZXBoX2NhcCAqY2FwLAogCQkJbGlzdF9hZGQoJmNpLT5pX3ByZWFsbG9jX2NhcF9mbHVzaC0+aV9saXN0LCAmdG9fcmVtb3ZlKTsKIAkJCWNpLT5pX3ByZWFsbG9jX2NhcF9mbHVzaCA9IE5VTEw7CiAJCX0KLQotICAgICAgICAgICAgICAgaWYgKGRyb3AgJiYKLSAgICAgICAgICAgICAgICAgIGNpLT5pX3dyYnVmZmVyX3JlZl9oZWFkID09IDAgJiYKLSAgICAgICAgICAgICAgICAgIGNpLT5pX3dyX3JlZiA9PSAwICYmCi0gICAgICAgICAgICAgICAgICBjaS0+aV9kaXJ0eV9jYXBzID09IDAgJiYKLSAgICAgICAgICAgICAgICAgIGNpLT5pX2ZsdXNoaW5nX2NhcHMgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgIGNlcGhfcHV0X3NuYXBfY29udGV4dChjaS0+aV9oZWFkX3NuYXBjKTsKLSAgICAgICAgICAgICAgICAgICAgICBjaS0+aV9oZWFkX3NuYXBjID0gTlVMTDsKLSAgICAgICAgICAgICAgIH0KIAl9CiAJc3Bpbl91bmxvY2soJmNpLT5pX2NlcGhfbG9jayk7CiAJd2hpbGUgKCFsaXN0X2VtcHR5KCZ0b19yZW1vdmUpKSB7CkBAIC0xNDUyLDcgKzE0NjgsNyBAQCBzdGF0aWMgaW50IHJlbW92ZV9zZXNzaW9uX2NhcHNfY2Ioc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGNlcGhfY2FwICpjYXAsCiAJd2FrZV91cF9hbGwoJmNpLT5pX2NhcF93cSk7CiAJaWYgKGludmFsaWRhdGUpCiAJCWNlcGhfcXVldWVfaW52YWxpZGF0ZShpbm9kZSk7Ci0JaWYgKGRyb3ApCisJaWYgKGRpcnR5X2Ryb3BwZWQpCiAJCWlwdXQoaW5vZGUpOwogCXJldHVybiAwOwogfQpAQCAtMTcwNSwxMSArMTcyMSwxMSBAQCBzdGF0aWMgYm9vbCBkcm9wX25lZ2F0aXZlX2NoaWxkcmVuKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKICAqLwogc3RhdGljIGludCB0cmltX2NhcHNfY2Ioc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGNlcGhfY2FwICpjYXAsIHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgY2VwaF9tZHNfc2Vzc2lvbiAqc2Vzc2lvbiA9IGFyZzsKKwlpbnQgKnJlbWFpbmluZyA9IGFyZzsKIAlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSA9IGNlcGhfaW5vZGUoaW5vZGUpOwogCWludCB1c2VkLCB3YW50ZWQsIG9pc3N1ZWQsIG1pbmU7CiAKLQlpZiAoc2Vzc2lvbi0+c190cmltX2NhcHMgPD0gMCkKKwlpZiAoKnJlbWFpbmluZyA8PSAwKQogCQlyZXR1cm4gLTE7CiAKIAlzcGluX2xvY2soJmNpLT5pX2NlcGhfbG9jayk7CkBAIC0xNzQ2LDcgKzE3NjIsNyBAQCBzdGF0aWMgaW50IHRyaW1fY2Fwc19jYihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgY2VwaF9jYXAgKmNhcCwgdm9pZCAqYXJnKQogCWlmIChvaXNzdWVkKSB7CiAJCS8qIHdlIGFyZW4ndCB0aGUgb25seSBjYXAuLiBqdXN0IHJlbW92ZSB1cyAqLwogCQlfX2NlcGhfcmVtb3ZlX2NhcChjYXAsIHRydWUpOwotCQlzZXNzaW9uLT5zX3RyaW1fY2Fwcy0tOworCQkoKnJlbWFpbmluZyktLTsKIAl9IGVsc2UgewogCQlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7CiAJCS8qIHRyeSBkcm9wcGluZyByZWZlcnJpbmcgZGVudHJpZXMgKi8KQEAgLTE3NTgsNyArMTc3NCw3IEBAIHN0YXRpYyBpbnQgdHJpbV9jYXBzX2NiKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBjZXBoX2NhcCAqY2FwLCB2b2lkICphcmcpCiAJCQlkX3BydW5lX2FsaWFzZXMoaW5vZGUpOwogCQkJY291bnQgPSBhdG9taWNfcmVhZCgmaW5vZGUtPmlfY291bnQpOwogCQkJaWYgKGNvdW50ID09IDEpCi0JCQkJc2Vzc2lvbi0+c190cmltX2NhcHMtLTsKKwkJCQkoKnJlbWFpbmluZyktLTsKIAkJCWRvdXQoInRyaW1fY2Fwc19jYiAlcCBjYXAgJXAgcHJ1bmVkLCBjb3VudCBub3cgJWRcbiIsCiAJCQkgICAgIGlub2RlLCBjYXAsIGNvdW50KTsKIAkJfSBlbHNlIHsKQEAgLTE3ODQsMTIgKzE4MDAsMTIgQEAgaW50IGNlcGhfdHJpbV9jYXBzKHN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kc2MsCiAJZG91dCgidHJpbV9jYXBzIG1kcyVkIHN0YXJ0OiAlZCAvICVkLCB0cmltICVkXG4iLAogCSAgICAgc2Vzc2lvbi0+c19tZHMsIHNlc3Npb24tPnNfbnJfY2FwcywgbWF4X2NhcHMsIHRyaW1fY2Fwcyk7CiAJaWYgKHRyaW1fY2FwcyA+IDApIHsKLQkJc2Vzc2lvbi0+c190cmltX2NhcHMgPSB0cmltX2NhcHM7Ci0JCWNlcGhfaXRlcmF0ZV9zZXNzaW9uX2NhcHMoc2Vzc2lvbiwgdHJpbV9jYXBzX2NiLCBzZXNzaW9uKTsKKwkJaW50IHJlbWFpbmluZyA9IHRyaW1fY2FwczsKKworCQljZXBoX2l0ZXJhdGVfc2Vzc2lvbl9jYXBzKHNlc3Npb24sIHRyaW1fY2Fwc19jYiwgJnJlbWFpbmluZyk7CiAJCWRvdXQoInRyaW1fY2FwcyBtZHMlZCBkb25lOiAlZCAvICVkLCB0cmltbWVkICVkXG4iLAogCQkgICAgIHNlc3Npb24tPnNfbWRzLCBzZXNzaW9uLT5zX25yX2NhcHMsIG1heF9jYXBzLAotCQkJdHJpbV9jYXBzIC0gc2Vzc2lvbi0+c190cmltX2NhcHMpOwotCQlzZXNzaW9uLT5zX3RyaW1fY2FwcyA9IDA7CisJCQl0cmltX2NhcHMgLSByZW1haW5pbmcpOwogCX0KIAogCWNlcGhfZmx1c2hfY2FwX3JlbGVhc2VzKG1kc2MsIHNlc3Npb24pOwpAQCAtMzAxNSwxOCArMzAzMSwyMyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfZm9yd2FyZChzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICptZHNjLAogCXByX2VycigibWRzY19oYW5kbGVfZm9yd2FyZCBkZWNvZGUgZXJyb3IgZXJyPSVkXG4iLCBlcnIpOwogfQogCi1zdGF0aWMgaW50IF9fZGVjb2RlX2FuZF9kcm9wX3Nlc3Npb25fbWV0YWRhdGEodm9pZCAqKnAsIHZvaWQgKmVuZCkKK3N0YXRpYyBpbnQgX19kZWNvZGVfc2Vzc2lvbl9tZXRhZGF0YSh2b2lkICoqcCwgdm9pZCAqZW5kLAorCQkJCSAgICAgYm9vbCAqYmxhY2tsaXN0ZWQpCiB7CiAJLyogbWFwPHN0cmluZyxzdHJpbmc+ICovCiAJdTMyIG47CisJYm9vbCBlcnJfc3RyOwogCWNlcGhfZGVjb2RlXzMyX3NhZmUocCwgZW5kLCBuLCBiYWQpOwogCXdoaWxlIChuLS0gPiAwKSB7CiAJCXUzMiBsZW47CiAJCWNlcGhfZGVjb2RlXzMyX3NhZmUocCwgZW5kLCBsZW4sIGJhZCk7CiAJCWNlcGhfZGVjb2RlX25lZWQocCwgZW5kLCBsZW4sIGJhZCk7CisJCWVycl9zdHIgPSAhc3RybmNtcCgqcCwgImVycm9yX3N0cmluZyIsIGxlbik7CiAJCSpwICs9IGxlbjsKIAkJY2VwaF9kZWNvZGVfMzJfc2FmZShwLCBlbmQsIGxlbiwgYmFkKTsKIAkJY2VwaF9kZWNvZGVfbmVlZChwLCBlbmQsIGxlbiwgYmFkKTsKKwkJaWYgKGVycl9zdHIgJiYgc3RybnN0cigqcCwgImJsYWNrbGlzdGVkIiwgbGVuKSkKKwkJCSpibGFja2xpc3RlZCA9IHRydWU7CiAJCSpwICs9IGxlbjsKIAl9CiAJcmV0dXJuIDA7CkBAIC0zMDUwLDYgKzMwNzEsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfc2Vzc2lvbihzdHJ1Y3QgY2VwaF9tZHNfc2Vzc2lvbiAqc2Vzc2lvbiwKIAl1NjQgc2VxOwogCXVuc2lnbmVkIGxvbmcgZmVhdHVyZXMgPSAwOwogCWludCB3YWtlID0gMDsKKwlib29sIGJsYWNrbGlzdGVkID0gZmFsc2U7CiAKIAkvKiBkZWNvZGUgKi8KIAljZXBoX2RlY29kZV9uZWVkKCZwLCBlbmQsIHNpemVvZigqaCksIGJhZCk7CkBAIC0zMDYyLDcgKzMwODQsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfc2Vzc2lvbihzdHJ1Y3QgY2VwaF9tZHNfc2Vzc2lvbiAqc2Vzc2lvbiwKIAlpZiAobXNnX3ZlcnNpb24gPj0gMykgewogCQl1MzIgbGVuOwogCQkvKiB2ZXJzaW9uID49IDIsIG1ldGFkYXRhICovCi0JCWlmIChfX2RlY29kZV9hbmRfZHJvcF9zZXNzaW9uX21ldGFkYXRhKCZwLCBlbmQpIDwgMCkKKwkJaWYgKF9fZGVjb2RlX3Nlc3Npb25fbWV0YWRhdGEoJnAsIGVuZCwgJmJsYWNrbGlzdGVkKSA8IDApCiAJCQlnb3RvIGJhZDsKIAkJLyogdmVyc2lvbiA+PSAzLCBmZWF0dXJlIGJpdHMgKi8KIAkJY2VwaF9kZWNvZGVfMzJfc2FmZSgmcCwgZW5kLCBsZW4sIGJhZCk7CkBAIC0zMTQ5LDYgKzMxNzEsOCBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfc2Vzc2lvbihzdHJ1Y3QgY2VwaF9tZHNfc2Vzc2lvbiAqc2Vzc2lvbiwKIAkJc2Vzc2lvbi0+c19zdGF0ZSA9IENFUEhfTURTX1NFU1NJT05fUkVKRUNURUQ7CiAJCWNsZWFudXBfc2Vzc2lvbl9yZXF1ZXN0cyhtZHNjLCBzZXNzaW9uKTsKIAkJcmVtb3ZlX3Nlc3Npb25fY2FwcyhzZXNzaW9uKTsKKwkJaWYgKGJsYWNrbGlzdGVkKQorCQkJbWRzYy0+ZnNjLT5ibGFja2xpc3RlZCA9IHRydWU7CiAJCXdha2UgPSAyOyAvKiBmb3IgZ29vZCBtZWFzdXJlICovCiAJCWJyZWFrOwogCkBAIC0zOTk4LDcgKzQwMjIsMjcgQEAgc3RhdGljIHZvaWQgbG9ja191bmxvY2tfc2Vzc2lvbnMoc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWRzYykKIAltdXRleF91bmxvY2soJm1kc2MtPm11dGV4KTsKIH0KIAorc3RhdGljIHZvaWQgbWF5YmVfcmVjb3Zlcl9zZXNzaW9uKHN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kc2MpCit7CisJc3RydWN0IGNlcGhfZnNfY2xpZW50ICpmc2MgPSBtZHNjLT5mc2M7CiAKKwlpZiAoIWNlcGhfdGVzdF9tb3VudF9vcHQoZnNjLCBDTEVBTlJFQ09WRVIpKQorCQlyZXR1cm47CisKKwlpZiAoUkVBRF9PTkNFKGZzYy0+bW91bnRfc3RhdGUpICE9IENFUEhfTU9VTlRfTU9VTlRFRCkKKwkJcmV0dXJuOworCisJaWYgKCFSRUFEX09OQ0UoZnNjLT5ibGFja2xpc3RlZCkpCisJCXJldHVybjsKKworCWlmIChmc2MtPmxhc3RfYXV0b19yZWNvbm5lY3QgJiYKKwkgICAgdGltZV9iZWZvcmUoamlmZmllcywgZnNjLT5sYXN0X2F1dG9fcmVjb25uZWN0ICsgSFogKiA2MCAqIDMwKSkKKwkJcmV0dXJuOworCisJcHJfaW5mbygiYXV0byByZWNvbm5lY3QgYWZ0ZXIgYmxhY2tsaXN0ZWRcbiIpOworCWZzYy0+bGFzdF9hdXRvX3JlY29ubmVjdCA9IGppZmZpZXM7CisJY2VwaF9mb3JjZV9yZWNvbm5lY3QoZnNjLT5zYik7Cit9CiAKIC8qCiAgKiBkZWxheWVkIHdvcmsgLS0gcGVyaW9kaWNhbGx5IHRyaW0gZXhwaXJlZCBsZWFzZXMsIHJlbmV3IGNhcHMgd2l0aCBtZHMKQEAgLTQwNDQsNyArNDA4OCw5IEBAIHN0YXRpYyB2b2lkIGRlbGF5ZWRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQkJcHJfaW5mbygibWRzJWQgaHVuZ1xuIiwgcy0+c19tZHMpOwogCQkJfQogCQl9Ci0JCWlmIChzLT5zX3N0YXRlIDwgQ0VQSF9NRFNfU0VTU0lPTl9PUEVOKSB7CisJCWlmIChzLT5zX3N0YXRlID09IENFUEhfTURTX1NFU1NJT05fTkVXIHx8CisJCSAgICBzLT5zX3N0YXRlID09IENFUEhfTURTX1NFU1NJT05fUkVTVEFSVElORyB8fAorCQkgICAgcy0+c19zdGF0ZSA9PSBDRVBIX01EU19TRVNTSU9OX1JFSkVDVEVEKSB7CiAJCQkvKiB0aGlzIG1kcyBpcyBmYWlsZWQgb3IgcmVjb3ZlcmluZywganVzdCB3YWl0ICovCiAJCQljZXBoX3B1dF9tZHNfc2Vzc2lvbihzKTsKIAkJCWNvbnRpbnVlOwpAQCAtNDA3Miw2ICs0MTE4LDggQEAgc3RhdGljIHZvaWQgZGVsYXllZF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAogCWNlcGhfdHJpbV9zbmFwaWRfbWFwKG1kc2MpOwogCisJbWF5YmVfcmVjb3Zlcl9zZXNzaW9uKG1kc2MpOworCiAJc2NoZWR1bGVfZGVsYXllZChtZHNjKTsKIH0KIApAQCAtNDM1NSw3ICs0NDAzLDEyIEBAIHZvaWQgY2VwaF9tZHNjX2ZvcmNlX3Vtb3VudChzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICptZHNjKQogCQlzZXNzaW9uID0gX19jZXBoX2xvb2t1cF9tZHNfc2Vzc2lvbihtZHNjLCBtZHMpOwogCQlpZiAoIXNlc3Npb24pCiAJCQljb250aW51ZTsKKworCQlpZiAoc2Vzc2lvbi0+c19zdGF0ZSA9PSBDRVBIX01EU19TRVNTSU9OX1JFSkVDVEVEKQorCQkJX191bnJlZ2lzdGVyX3Nlc3Npb24obWRzYywgc2Vzc2lvbik7CisJCV9fd2FrZV9yZXF1ZXN0cyhtZHNjLCAmc2Vzc2lvbi0+c193YWl0aW5nKTsKIAkJbXV0ZXhfdW5sb2NrKCZtZHNjLT5tdXRleCk7CisKIAkJbXV0ZXhfbG9jaygmc2Vzc2lvbi0+c19tdXRleCk7CiAJCV9fY2xvc2Vfc2Vzc2lvbihtZHNjLCBzZXNzaW9uKTsKIAkJaWYgKHNlc3Npb24tPnNfc3RhdGUgPT0gQ0VQSF9NRFNfU0VTU0lPTl9DTE9TSU5HKSB7CkBAIC00MzY0LDYgKzQ0MTcsNyBAQCB2b2lkIGNlcGhfbWRzY19mb3JjZV91bW91bnQoc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWRzYykKIAkJfQogCQltdXRleF91bmxvY2soJnNlc3Npb24tPnNfbXV0ZXgpOwogCQljZXBoX3B1dF9tZHNfc2Vzc2lvbihzZXNzaW9uKTsKKwogCQltdXRleF9sb2NrKCZtZHNjLT5tdXRleCk7CiAJCWtpY2tfcmVxdWVzdHMobWRzYywgbWRzKTsKIAl9CmRpZmYgLS1naXQgYS9mcy9jZXBoL21kc19jbGllbnQuaCBiL2ZzL2NlcGgvbWRzX2NsaWVudC5oCmluZGV4IGY3Yzg2MDMuLjVjZDEzMWIgMTAwNjQ0Ci0tLSBhL2ZzL2NlcGgvbWRzX2NsaWVudC5oCisrKyBiL2ZzL2NlcGgvbWRzX2NsaWVudC5oCkBAIC0xNDgsOSArMTQ4LDkgQEAgZW51bSB7CiAJQ0VQSF9NRFNfU0VTU0lPTl9PUEVOSU5HID0gMiwKIAlDRVBIX01EU19TRVNTSU9OX09QRU4gPSAzLAogCUNFUEhfTURTX1NFU1NJT05fSFVORyA9IDQsCi0JQ0VQSF9NRFNfU0VTU0lPTl9DTE9TSU5HID0gNSwKLQlDRVBIX01EU19TRVNTSU9OX1JFU1RBUlRJTkcgPSA2LAotCUNFUEhfTURTX1NFU1NJT05fUkVDT05ORUNUSU5HID0gNywKKwlDRVBIX01EU19TRVNTSU9OX1JFU1RBUlRJTkcgPSA1LAorCUNFUEhfTURTX1NFU1NJT05fUkVDT05ORUNUSU5HID0gNiwKKwlDRVBIX01EU19TRVNTSU9OX0NMT1NJTkcgPSA3LAogCUNFUEhfTURTX1NFU1NJT05fUkVKRUNURUQgPSA4LAogfTsKIApAQCAtMTc2LDcgKzE3Niw3IEBAIHN0cnVjdCBjZXBoX21kc19zZXNzaW9uIHsKIAlzcGlubG9ja190ICAgICAgICBzX2NhcF9sb2NrOwogCXN0cnVjdCBsaXN0X2hlYWQgIHNfY2FwczsgICAgIC8qIGFsbCBjYXBzIGlzc3VlZCBieSB0aGlzIHNlc3Npb24gKi8KIAlzdHJ1Y3QgY2VwaF9jYXAgICpzX2NhcF9pdGVyYXRvcjsKLQlpbnQgICAgICAgICAgICAgICBzX25yX2NhcHMsIHNfdHJpbV9jYXBzOworCWludCAgICAgICAgICAgICAgIHNfbnJfY2FwczsKIAlpbnQgICAgICAgICAgICAgICBzX251bV9jYXBfcmVsZWFzZXM7CiAJaW50CQkgIHNfY2FwX3JlY29ubmVjdDsKIAlpbnQJCSAgc19yZWFkb25seTsKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvc3VwZXIuYyBiL2ZzL2NlcGgvc3VwZXIuYwppbmRleCBhYjQ4NjhjLi5lZGZkNjQzIDEwMDY0NAotLS0gYS9mcy9jZXBoL3N1cGVyLmMKKysrIGIvZnMvY2VwaC9zdXBlci5jCkBAIC0xNDMsNiArMTQzLDcgQEAgZW51bSB7CiAJT3B0X3NuYXBkaXJuYW1lLAogCU9wdF9tZHNfbmFtZXNwYWNlLAogCU9wdF9mc2NhY2hlX3VuaXEsCisJT3B0X3JlY292ZXJfc2Vzc2lvbiwKIAlPcHRfbGFzdF9zdHJpbmcsCiAJLyogc3RyaW5nIGFyZ3MgYWJvdmUgKi8KIAlPcHRfZGlyc3RhdCwKQEAgLTE4NCw2ICsxODUsNyBAQCBzdGF0aWMgbWF0Y2hfdGFibGVfdCBmc29wdF90b2tlbnMgPSB7CiAJLyogaW50IGFyZ3MgYWJvdmUgKi8KIAl7T3B0X3NuYXBkaXJuYW1lLCAic25hcGRpcm5hbWU9JXMifSwKIAl7T3B0X21kc19uYW1lc3BhY2UsICJtZHNfbmFtZXNwYWNlPSVzIn0sCisJe09wdF9yZWNvdmVyX3Nlc3Npb24sICJyZWNvdmVyX3Nlc3Npb249JXMifSwKIAl7T3B0X2ZzY2FjaGVfdW5pcSwgImZzYz0lcyJ9LAogCS8qIHN0cmluZyBhcmdzIGFib3ZlICovCiAJe09wdF9kaXJzdGF0LCAiZGlyc3RhdCJ9LApAQCAtMjU0LDYgKzI1NiwxNyBAQCBzdGF0aWMgaW50IHBhcnNlX2Zzb3B0X3Rva2VuKGNoYXIgKmMsIHZvaWQgKnByaXZhdGUpCiAJCWlmICghZnNvcHQtPm1kc19uYW1lc3BhY2UpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJYnJlYWs7CisJY2FzZSBPcHRfcmVjb3Zlcl9zZXNzaW9uOgorCQlpZiAoIXN0cm5jbXAoYXJnc3RyWzBdLmZyb20sICJubyIsCisJCQkgICAgIGFyZ3N0clswXS50byAtIGFyZ3N0clswXS5mcm9tKSkgeworCQkJZnNvcHQtPmZsYWdzICY9IH5DRVBIX01PVU5UX09QVF9DTEVBTlJFQ09WRVI7CisJCX0gZWxzZSBpZiAoIXN0cm5jbXAoYXJnc3RyWzBdLmZyb20sICJjbGVhbiIsCisJCQkJICAgIGFyZ3N0clswXS50byAtIGFyZ3N0clswXS5mcm9tKSkgeworCQkJZnNvcHQtPmZsYWdzIHw9IENFUEhfTU9VTlRfT1BUX0NMRUFOUkVDT1ZFUjsKKwkJfSBlbHNlIHsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOwogCWNhc2UgT3B0X2ZzY2FjaGVfdW5pcToKIAkJa2ZyZWUoZnNvcHQtPmZzY2FjaGVfdW5pcSk7CiAJCWZzb3B0LT5mc2NhY2hlX3VuaXEgPSBrc3RybmR1cChhcmdzdHJbMF0uZnJvbSwKQEAgLTU3Niw2ICs1ODksMTAgQEAgc3RhdGljIGludCBjZXBoX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkZW50cnkgKnJvb3QpCiAKIAlpZiAoZnNvcHQtPm1kc19uYW1lc3BhY2UpCiAJCXNlcV9zaG93X29wdGlvbihtLCAibWRzX25hbWVzcGFjZSIsIGZzb3B0LT5tZHNfbmFtZXNwYWNlKTsKKworCWlmIChmc29wdC0+ZmxhZ3MgJiBDRVBIX01PVU5UX09QVF9DTEVBTlJFQ09WRVIpCisJCXNlcV9zaG93X29wdGlvbihtLCAicmVjb3Zlcl9zZXNzaW9uIiwgImNsZWFuIik7CisKIAlpZiAoZnNvcHQtPndzaXplICE9IENFUEhfTUFYX1dSSVRFX1NJWkUpCiAJCXNlcV9wcmludGYobSwgIix3c2l6ZT0lZCIsIGZzb3B0LT53c2l6ZSk7CiAJaWYgKGZzb3B0LT5yc2l6ZSAhPSBDRVBIX01BWF9SRUFEX1NJWkUpCkBAIC02NjQsNiArNjgxLDcgQEAgc3RhdGljIHN0cnVjdCBjZXBoX2ZzX2NsaWVudCAqY3JlYXRlX2ZzX2NsaWVudChzdHJ1Y3QgY2VwaF9tb3VudF9vcHRpb25zICpmc29wdCwKIAogCWZzYy0+c2IgPSBOVUxMOwogCWZzYy0+bW91bnRfc3RhdGUgPSBDRVBIX01PVU5UX01PVU5USU5HOworCWZzYy0+ZmlscF9nZW4gPSAxOwogCiAJYXRvbWljX2xvbmdfc2V0KCZmc2MtPndyaXRlYmFja19jb3VudCwgMCk7CiAKQEAgLTcxMyw2ICs3MzEsNyBAQCBzdGF0aWMgdm9pZCBkZXN0cm95X2ZzX2NsaWVudChzdHJ1Y3QgY2VwaF9mc19jbGllbnQgKmZzYykKIHsKIAlkb3V0KCJkZXN0cm95X2ZzX2NsaWVudCAlcFxuIiwgZnNjKTsKIAorCWNlcGhfbWRzY19kZXN0cm95KGZzYyk7CiAJZGVzdHJveV93b3JrcXVldWUoZnNjLT5pbm9kZV93cSk7CiAJZGVzdHJveV93b3JrcXVldWUoZnNjLT5jYXBfd3EpOwogCkBAIC04MjksNyArODQ4LDcgQEAgc3RhdGljIHZvaWQgY2VwaF91bW91bnRfYmVnaW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlmc2MtPm1vdW50X3N0YXRlID0gQ0VQSF9NT1VOVF9TSFVURE9XTjsKIAljZXBoX29zZGNfYWJvcnRfcmVxdWVzdHMoJmZzYy0+Y2xpZW50LT5vc2RjLCAtRUlPKTsKIAljZXBoX21kc2NfZm9yY2VfdW1vdW50KGZzYy0+bWRzYyk7Ci0JcmV0dXJuOworCWZzYy0+ZmlscF9nZW4rKzsgLy8gaW52YWxpZGF0ZSBvcGVuIGZpbGVzCiB9CiAKIHN0YXRpYyBpbnQgY2VwaF9yZW1vdW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRhdGEpCkBAIC05NzksNiArOTk4LDggQEAgc3RhdGljIGludCBjZXBoX3NldF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKmRhdGEpCiAJcy0+c19leHBvcnRfb3AgPSAmY2VwaF9leHBvcnRfb3BzOwogCiAJcy0+c190aW1lX2dyYW4gPSAxOworCXMtPnNfdGltZV9taW4gPSAwOworCXMtPnNfdGltZV9tYXggPSBVMzJfTUFYOwogCiAJcmV0ID0gc2V0X2Fub25fc3VwZXIocywgTlVMTCk7ICAvKiB3aGF0IGlzIHRoYXQgc2Vjb25kIGFyZyBmb3I/ICovCiAJaWYgKHJldCAhPSAwKQpAQCAtMTA4Nyw3ICsxMTA4LDYgQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKmNlcGhfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsCiAJfQogCiAJaWYgKGNlcGhfc2JfdG9fY2xpZW50KHNiKSAhPSBmc2MpIHsKLQkJY2VwaF9tZHNjX2Rlc3Ryb3koZnNjKTsKIAkJZGVzdHJveV9mc19jbGllbnQoZnNjKTsKIAkJZnNjID0gY2VwaF9zYl90b19jbGllbnQoc2IpOwogCQlkb3V0KCJnZXRfc2IgZ290IGV4aXN0aW5nIGNsaWVudCAlcFxuIiwgZnNjKTsKQEAgLTExMTMsNyArMTEzMyw2IEBAIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpjZXBoX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLAogCWdvdG8gb3V0X2ZpbmFsOwogCiBvdXQ6Ci0JY2VwaF9tZHNjX2Rlc3Ryb3koZnNjKTsKIAlkZXN0cm95X2ZzX2NsaWVudChmc2MpOwogb3V0X2ZpbmFsOgogCWRvdXQoImNlcGhfbW91bnQgZmFpbCAlbGRcbiIsIFBUUl9FUlIocmVzKSk7CkBAIC0xMTM3LDggKzExNTYsNiBAQCBzdGF0aWMgdm9pZCBjZXBoX2tpbGxfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzKQogCiAJY2VwaF9mc2NhY2hlX3VucmVnaXN0ZXJfZnMoZnNjKTsKIAotCWNlcGhfbWRzY19kZXN0cm95KGZzYyk7Ci0KIAlkZXN0cm95X2ZzX2NsaWVudChmc2MpOwogCWZyZWVfYW5vbl9iZGV2KGRldik7CiB9CkBAIC0xMTUyLDYgKzExNjksMzMgQEAgc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIGNlcGhfZnNfdHlwZSA9IHsKIH07CiBNT0RVTEVfQUxJQVNfRlMoImNlcGgiKTsKIAoraW50IGNlcGhfZm9yY2VfcmVjb25uZWN0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJc3RydWN0IGNlcGhfZnNfY2xpZW50ICpmc2MgPSBjZXBoX3NiX3RvX2NsaWVudChzYik7CisJaW50IGVyciA9IDA7CisKKwljZXBoX3Vtb3VudF9iZWdpbihzYik7CisKKwkvKiBNYWtlIHN1cmUgYWxsIHBhZ2UgY2FjaGVzIGdldCBpbnZhbGlkYXRlZC4KKwkgKiBzZWUgcmVtb3ZlX3Nlc3Npb25fY2Fwc19jYigpICovCisJZmx1c2hfd29ya3F1ZXVlKGZzYy0+aW5vZGVfd3EpOworCisJLyogSW4gY2FzZSB0aGF0IHdlIHdlcmUgYmxhY2tsaXN0ZWQuIFRoaXMgYWxzbyByZXNldAorCSAqIGFsbCBtb24vb3NkIGNvbm5lY3Rpb25zICovCisJY2VwaF9yZXNldF9jbGllbnRfYWRkcihmc2MtPmNsaWVudCk7CisKKwljZXBoX29zZGNfY2xlYXJfYWJvcnRfZXJyKCZmc2MtPmNsaWVudC0+b3NkYyk7CisKKwlmc2MtPmJsYWNrbGlzdGVkID0gZmFsc2U7CisJZnNjLT5tb3VudF9zdGF0ZSA9IENFUEhfTU9VTlRfTU9VTlRFRDsKKworCWlmIChzYi0+c19yb290KSB7CisJCWVyciA9IF9fY2VwaF9kb19nZXRhdHRyKGRfaW5vZGUoc2ItPnNfcm9vdCksIE5VTEwsCisJCQkJCUNFUEhfU1RBVF9DQVBfSU5PREUsIHRydWUpOworCX0KKwlyZXR1cm4gZXJyOworfQorCiBzdGF0aWMgaW50IF9faW5pdCBpbml0X2NlcGgodm9pZCkKIHsKIAlpbnQgcmV0ID0gaW5pdF9jYWNoZXMoKTsKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvc3VwZXIuaCBiL2ZzL2NlcGgvc3VwZXIuaAppbmRleCA2YjlmMWVlLi5mOThkOTI0IDEwMDY0NAotLS0gYS9mcy9jZXBoL3N1cGVyLmgKKysrIGIvZnMvY2VwaC9zdXBlci5oCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3Bvc2l4X2FjbC5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZmNvdW50Lmg+CisjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KIAogI2luY2x1ZGUgPGxpbnV4L2NlcGgvbGliY2VwaC5oPgogCkBAIC0zMSw2ICszMiw3IEBACiAjZGVmaW5lIENFUEhfQkxPQ0tfU0hJRlQgICAyMiAgLyogNCBNQiAqLwogI2RlZmluZSBDRVBIX0JMT0NLICAgICAgICAgKDEgPDwgQ0VQSF9CTE9DS19TSElGVCkKIAorI2RlZmluZSBDRVBIX01PVU5UX09QVF9DTEVBTlJFQ09WRVIgICAgKDE8PDEpIC8qIGF1dG8gcmVvbm5lY3QgKGNsZWFuIG1vZGUpIGFmdGVyIGJsYWNrbGlzdGVkICovCiAjZGVmaW5lIENFUEhfTU9VTlRfT1BUX0RJUlNUQVQgICAgICAgICAoMTw8NCkgLyogYGNhdCBkaXJuYW1lYCBmb3Igc3RhdHMgKi8KICNkZWZpbmUgQ0VQSF9NT1VOVF9PUFRfUkJZVEVTICAgICAgICAgICgxPDw1KSAvKiBkaXIgc3RfYnl0ZXMgPSByYnl0ZXMgKi8KICNkZWZpbmUgQ0VQSF9NT1VOVF9PUFRfTk9BU1lOQ1JFQURESVIgICgxPDw3KSAvKiBubyBkY2FjaGUgcmVhZGRpciAqLwpAQCAtMTAxLDYgKzEwMywxMSBAQCBzdHJ1Y3QgY2VwaF9mc19jbGllbnQgewogCXN0cnVjdCBjZXBoX2NsaWVudCAqY2xpZW50OwogCiAJdW5zaWduZWQgbG9uZyBtb3VudF9zdGF0ZTsKKworCXVuc2lnbmVkIGxvbmcgbGFzdF9hdXRvX3JlY29ubmVjdDsKKwlib29sIGJsYWNrbGlzdGVkOworCisJdTMyIGZpbHBfZ2VuOwogCWxvZmZfdCBtYXhfZmlsZV9zaXplOwogCiAJc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWRzYzsKQEAgLTM5NSw2ICs0MDIsOCBAQCBzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvIHsKIAlzdHJ1Y3QgZnNjYWNoZV9jb29raWUgKmZzY2FjaGU7CiAJdTMyIGlfZnNjYWNoZV9nZW47CiAjZW5kaWYKKwllcnJzZXFfdCBpX21ldGFfZXJyOworCiAJc3RydWN0IGlub2RlIHZmc19pbm9kZTsgLyogYXQgZW5kICovCiB9OwogCkBAIC00OTksMTcgKzUwOCwxNiBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbm9kZSAqY2VwaF9maW5kX2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAjZGVmaW5lIENFUEhfSV9ESVJfT1JERVJFRAkoMSA8PCAwKSAgLyogZGVudHJpZXMgaW4gZGlyIGFyZSBvcmRlcmVkICovCiAjZGVmaW5lIENFUEhfSV9OT0RFTEFZCQkoMSA8PCAxKSAgLyogZG8gbm90IGRlbGF5IGNhcCByZWxlYXNlICovCiAjZGVmaW5lIENFUEhfSV9GTFVTSAkJKDEgPDwgMikgIC8qIGRvIG5vdCBkZWxheSBmbHVzaCBvZiBkaXJ0eSBtZXRhZGF0YSAqLwotI2RlZmluZSBDRVBIX0lfTk9GTFVTSAkJKDEgPDwgMykgIC8qIGRvIG5vdCBmbHVzaCBkaXJ0eSBjYXBzICovCi0jZGVmaW5lIENFUEhfSV9QT09MX1BFUk0JKDEgPDwgNCkgIC8qIHBvb2wgcmQvd3IgYml0cyBhcmUgdmFsaWQgKi8KLSNkZWZpbmUgQ0VQSF9JX1BPT0xfUkQJCSgxIDw8IDUpICAvKiBjYW4gcmVhZCBmcm9tIHBvb2wgKi8KLSNkZWZpbmUgQ0VQSF9JX1BPT0xfV1IJCSgxIDw8IDYpICAvKiBjYW4gd3JpdGUgdG8gcG9vbCAqLwotI2RlZmluZSBDRVBIX0lfU0VDX0lOSVRFRAkoMSA8PCA3KSAgLyogc2VjdXJpdHkgaW5pdGlhbGl6ZWQgKi8KLSNkZWZpbmUgQ0VQSF9JX0NBUF9EUk9QUEVECSgxIDw8IDgpICAvKiBjYXBzIHdlcmUgZm9yY2libHkgZHJvcHBlZCAqLwotI2RlZmluZSBDRVBIX0lfS0lDS19GTFVTSAkoMSA8PCA5KSAgLyoga2ljayBmbHVzaGluZyBjYXBzICovCi0jZGVmaW5lIENFUEhfSV9GTFVTSF9TTkFQUwkoMSA8PCAxMCkgLyogbmVlZCBmbHVzaCBzbmFwc3MgKi8KLSNkZWZpbmUgQ0VQSF9JX0VSUk9SX1dSSVRFCSgxIDw8IDExKSAvKiBoYXZlIHNlZW4gd3JpdGUgZXJyb3JzICovCi0jZGVmaW5lIENFUEhfSV9FUlJPUl9GSUxFTE9DSwkoMSA8PCAxMikgLyogaGF2ZSBzZWVuIGZpbGUgbG9jayBlcnJvcnMgKi8KLQorI2RlZmluZSBDRVBIX0lfUE9PTF9QRVJNCSgxIDw8IDMpICAvKiBwb29sIHJkL3dyIGJpdHMgYXJlIHZhbGlkICovCisjZGVmaW5lIENFUEhfSV9QT09MX1JECQkoMSA8PCA0KSAgLyogY2FuIHJlYWQgZnJvbSBwb29sICovCisjZGVmaW5lIENFUEhfSV9QT09MX1dSCQkoMSA8PCA1KSAgLyogY2FuIHdyaXRlIHRvIHBvb2wgKi8KKyNkZWZpbmUgQ0VQSF9JX1NFQ19JTklURUQJKDEgPDwgNikgIC8qIHNlY3VyaXR5IGluaXRpYWxpemVkICovCisjZGVmaW5lIENFUEhfSV9DQVBfRFJPUFBFRAkoMSA8PCA3KSAgLyogY2FwcyB3ZXJlIGZvcmNpYmx5IGRyb3BwZWQgKi8KKyNkZWZpbmUgQ0VQSF9JX0tJQ0tfRkxVU0gJKDEgPDwgOCkgIC8qIGtpY2sgZmx1c2hpbmcgY2FwcyAqLworI2RlZmluZSBDRVBIX0lfRkxVU0hfU05BUFMJKDEgPDwgOSkgIC8qIG5lZWQgZmx1c2ggc25hcHNzICovCisjZGVmaW5lIENFUEhfSV9FUlJPUl9XUklURQkoMSA8PCAxMCkgLyogaGF2ZSBzZWVuIHdyaXRlIGVycm9ycyAqLworI2RlZmluZSBDRVBIX0lfRVJST1JfRklMRUxPQ0sJKDEgPDwgMTEpIC8qIGhhdmUgc2VlbiBmaWxlIGxvY2sgZXJyb3JzICovCisjZGVmaW5lIENFUEhfSV9PRElSRUNUCQkoMSA8PCAxMikgLyogaW5vZGUgaW4gZGlyZWN0IEkvTyBtb2RlICovCiAKIC8qCiAgKiBNYXNrcyBvZiBjZXBoIGlub2RlIHdvcmsuCkBAIC03MDMsNiArNzExLDEwIEBAIHN0cnVjdCBjZXBoX2ZpbGVfaW5mbyB7CiAKIAlzcGlubG9ja190IHJ3X2NvbnRleHRzX2xvY2s7CiAJc3RydWN0IGxpc3RfaGVhZCByd19jb250ZXh0czsKKworCWVycnNlcV90IG1ldGFfZXJyOworCXUzMiBmaWxwX2dlbjsKKwlhdG9taWNfdCBudW1fbG9ja3M7CiB9OwogCiBzdHJ1Y3QgY2VwaF9kaXJfZmlsZV9pbmZvIHsKQEAgLTg0Miw3ICs4NTQsOCBAQCBzdGF0aWMgaW5saW5lIGludCBkZWZhdWx0X2Nvbmdlc3Rpb25fa2Iodm9pZCkKIH0KIAogCi0KKy8qIHN1cGVyLmMgKi8KK2V4dGVybiBpbnQgY2VwaF9mb3JjZV9yZWNvbm5lY3Qoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiAvKiBzbmFwLmMgKi8KIHN0cnVjdCBjZXBoX3NuYXBfcmVhbG0gKmNlcGhfbG9va3VwX3NuYXBfcmVhbG0oc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWRzYywKIAkJCQkJICAgICAgIHU2NCBpbm8pOwpAQCAtOTU5LDcgKzk3MiwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY2VwaF9zZWN1cml0eV94YXR0cl93YW50ZWQoc3RydWN0IGlub2RlICppbikKICNpZmRlZiBDT05GSUdfQ0VQSF9GU19TRUNVUklUWV9MQUJFTAogZXh0ZXJuIGludCBjZXBoX3NlY3VyaXR5X2luaXRfc2VjY3R4KHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlLAogCQkJCSAgICAgc3RydWN0IGNlcGhfYWNsX3NlY19jdHggKmN0eCk7Ci1leHRlcm4gdm9pZCBjZXBoX3NlY3VyaXR5X2ludmFsaWRhdGVfc2VjY3R4KHN0cnVjdCBpbm9kZSAqaW5vZGUpOworc3RhdGljIGlubGluZSB2b2lkIGNlcGhfc2VjdXJpdHlfaW52YWxpZGF0ZV9zZWNjdHgoc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlzZWN1cml0eV9pbm9kZV9pbnZhbGlkYXRlX3NlY2N0eChpbm9kZSk7Cit9CiAjZWxzZQogc3RhdGljIGlubGluZSBpbnQgY2VwaF9zZWN1cml0eV9pbml0X3NlY2N0eChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSwKIAkJCQkJICAgIHN0cnVjdCBjZXBoX2FjbF9zZWNfY3R4ICpjdHgpCkBAIC0xMDM5LDcgKzEwNTUsNiBAQCBleHRlcm4gdm9pZCBjZXBoX2tpY2tfZmx1c2hpbmdfY2FwcyhzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICptZHNjLAogCQkJCSAgICBzdHJ1Y3QgY2VwaF9tZHNfc2Vzc2lvbiAqc2Vzc2lvbik7CiBleHRlcm4gc3RydWN0IGNlcGhfY2FwICpjZXBoX2dldF9jYXBfZm9yX21kcyhzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwKIAkJCQkJICAgICBpbnQgbWRzKTsKLWV4dGVybiBpbnQgY2VwaF9nZXRfY2FwX21kcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGV4dGVybiB2b2lkIGNlcGhfZ2V0X2NhcF9yZWZzKHN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpLCBpbnQgY2Fwcyk7CiBleHRlcm4gdm9pZCBjZXBoX3B1dF9jYXBfcmVmcyhzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgaW50IGhhZCk7CiBleHRlcm4gdm9pZCBjZXBoX3B1dF93cmJ1ZmZlcl9jYXBfcmVmcyhzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgaW50IG5yLApAQCAtMTA1OCw5ICsxMDczLDkgQEAgZXh0ZXJuIGludCBjZXBoX2VuY29kZV9kZW50cnlfcmVsZWFzZSh2b2lkICoqcCwgc3RydWN0IGRlbnRyeSAqZG4sCiAJCQkJICAgICAgc3RydWN0IGlub2RlICpkaXIsCiAJCQkJICAgICAgaW50IG1kcywgaW50IGRyb3AsIGludCB1bmxlc3MpOwogCi1leHRlcm4gaW50IGNlcGhfZ2V0X2NhcHMoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksIGludCBuZWVkLCBpbnQgd2FudCwKK2V4dGVybiBpbnQgY2VwaF9nZXRfY2FwcyhzdHJ1Y3QgZmlsZSAqZmlscCwgaW50IG5lZWQsIGludCB3YW50LAogCQkJIGxvZmZfdCBlbmRvZmYsIGludCAqZ290LCBzdHJ1Y3QgcGFnZSAqKnBpbm5lZF9wYWdlKTsKLWV4dGVybiBpbnQgY2VwaF90cnlfZ2V0X2NhcHMoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksCitleHRlcm4gaW50IGNlcGhfdHJ5X2dldF9jYXBzKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQkgICAgIGludCBuZWVkLCBpbnQgd2FudCwgYm9vbCBub25ibG9jaywgaW50ICpnb3QpOwogCiAvKiBmb3IgY291bnRpbmcgb3BlbiBmaWxlcyBieSBtb2RlICovCkBAIC0xMDcxLDcgKzEwODYsNyBAQCBleHRlcm4gdm9pZCBjZXBoX3B1dF9mbW9kZShzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgaW50IG1vZGUpOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgY2VwaF9hb3BzOwogZXh0ZXJuIGludCBjZXBoX21tYXAoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIGV4dGVybiBpbnQgY2VwaF91bmlubGluZV9kYXRhKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcGFnZSAqbG9ja2VkX3BhZ2UpOwotZXh0ZXJuIGludCBjZXBoX3Bvb2xfcGVybV9jaGVjayhzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSwgaW50IG5lZWQpOworZXh0ZXJuIGludCBjZXBoX3Bvb2xfcGVybV9jaGVjayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbmVlZCk7CiBleHRlcm4gdm9pZCBjZXBoX3Bvb2xfcGVybV9kZXN0cm95KHN0cnVjdCBjZXBoX21kc19jbGllbnQqIG1kc2MpOwogCiAvKiBmaWxlLmMgKi8KZGlmZiAtLWdpdCBhL2ZzL2NlcGgveGF0dHIuYyBiL2ZzL2NlcGgveGF0dHIuYwppbmRleCA5MzllYWI3Li5jYjE4ZWU2IDEwMDY0NAotLS0gYS9mcy9jZXBoL3hhdHRyLmMKKysrIGIvZnMvY2VwaC94YXR0ci5jCkBAIC0yMCw3ICsyMCw4IEBAIHN0YXRpYyBpbnQgX19yZW1vdmVfeGF0dHIoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksCiAKIHN0YXRpYyBib29sIGNlcGhfaXNfdmFsaWRfeGF0dHIoY29uc3QgY2hhciAqbmFtZSkKIHsKLQlyZXR1cm4gIXN0cm5jbXAobmFtZSwgWEFUVFJfQ0VQSF9QUkVGSVgsIFhBVFRSX0NFUEhfUFJFRklYX0xFTikgfHwKKwlyZXR1cm4gIXN0cm5jbXAobmFtZSwgWEFUVFJfU0VDVVJJVFlfUFJFRklYLCBYQVRUUl9TRUNVUklUWV9QUkVGSVhfTEVOKSB8fAorCSAgICAgICAhc3RybmNtcChuYW1lLCBYQVRUUl9DRVBIX1BSRUZJWCwgWEFUVFJfQ0VQSF9QUkVGSVhfTEVOKSB8fAogCSAgICAgICAhc3RybmNtcChuYW1lLCBYQVRUUl9UUlVTVEVEX1BSRUZJWCwgWEFUVFJfVFJVU1RFRF9QUkVGSVhfTEVOKSB8fAogCSAgICAgICAhc3RybmNtcChuYW1lLCBYQVRUUl9VU0VSX1BSRUZJWCwgWEFUVFJfVVNFUl9QUkVGSVhfTEVOKTsKIH0KQEAgLTg5Miw3ICs4OTMsOCBAQCBzc2l6ZV90IF9fY2VwaF9nZXR4YXR0cihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpuYW1lLCB2b2lkICp2YWx1ZSwKIAltZW1jcHkodmFsdWUsIHhhdHRyLT52YWwsIHhhdHRyLT52YWxfbGVuKTsKIAogCWlmIChjdXJyZW50LT5qb3VybmFsX2luZm8gJiYKLQkgICAgIXN0cm5jbXAobmFtZSwgWEFUVFJfU0VDVVJJVFlfUFJFRklYLCBYQVRUUl9TRUNVUklUWV9QUkVGSVhfTEVOKSkKKwkgICAgIXN0cm5jbXAobmFtZSwgWEFUVFJfU0VDVVJJVFlfUFJFRklYLCBYQVRUUl9TRUNVUklUWV9QUkVGSVhfTEVOKSAmJgorCSAgICBzZWN1cml0eV9pc21hY2xhYmVsKG5hbWUgKyBYQVRUUl9TRUNVUklUWV9QUkVGSVhfTEVOKSkKIAkJY2ktPmlfY2VwaF9mbGFncyB8PSBDRVBIX0lfU0VDX0lOSVRFRDsKIG91dDoKIAlzcGluX3VubG9jaygmY2ktPmlfY2VwaF9sb2NrKTsKQEAgLTkwMywxMSArOTA1LDkgQEAgc3NpemVfdCBjZXBoX2xpc3R4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNoYXIgKm5hbWVzLCBzaXplX3Qgc2l6ZSkKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZF9pbm9kZShkZW50cnkpOwogCXN0cnVjdCBjZXBoX2lub2RlX2luZm8gKmNpID0gY2VwaF9pbm9kZShpbm9kZSk7Ci0Jc3RydWN0IGNlcGhfdnhhdHRyICp2eGF0dHJzID0gY2VwaF9pbm9kZV92eGF0dHJzKGlub2RlKTsKIAlib29sIGxlbl9vbmx5ID0gKHNpemUgPT0gMCk7CiAJdTMyIG5hbWVsZW47CiAJaW50IGVycjsKLQlpbnQgaTsKIAogCXNwaW5fbG9jaygmY2ktPmlfY2VwaF9sb2NrKTsKIAlkb3V0KCJsaXN0eGF0dHIgJXAgdmVyPSVsbGQgaW5kZXhfdmVyPSVsbGRcbiIsIGlub2RlLApAQCAtOTM2LDMzICs5MzYsNiBAQCBzc2l6ZV90IGNlcGhfbGlzdHhhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY2hhciAqbmFtZXMsIHNpemVfdCBzaXplKQogCQluYW1lcyA9IF9fY29weV94YXR0cl9uYW1lcyhjaSwgbmFtZXMpOwogCQlzaXplIC09IG5hbWVsZW47CiAJfQotCi0KLQkvKiB2aXJ0dWFsIHhhdHRyIG5hbWVzLCB0b28gKi8KLQlpZiAodnhhdHRycykgewotCQlmb3IgKGkgPSAwOyB2eGF0dHJzW2ldLm5hbWU7IGkrKykgewotCQkJc2l6ZV90IHRoaXNfbGVuOwotCi0JCQlpZiAodnhhdHRyc1tpXS5mbGFncyAmIFZYQVRUUl9GTEFHX0hJRERFTikKLQkJCQljb250aW51ZTsKLQkJCWlmICh2eGF0dHJzW2ldLmV4aXN0c19jYiAmJiAhdnhhdHRyc1tpXS5leGlzdHNfY2IoY2kpKQotCQkJCWNvbnRpbnVlOwotCi0JCQl0aGlzX2xlbiA9IHN0cmxlbih2eGF0dHJzW2ldLm5hbWUpICsgMTsKLQkJCW5hbWVsZW4gKz0gdGhpc19sZW47Ci0JCQlpZiAobGVuX29ubHkpCi0JCQkJY29udGludWU7Ci0KLQkJCWlmICh0aGlzX2xlbiA+IHNpemUpIHsKLQkJCQllcnIgPSAtRVJBTkdFOwotCQkJCWdvdG8gb3V0OwotCQkJfQotCi0JCQltZW1jcHkobmFtZXMsIHZ4YXR0cnNbaV0ubmFtZSwgdGhpc19sZW4pOwotCQkJbmFtZXMgKz0gdGhpc19sZW47Ci0JCQlzaXplIC09IHRoaXNfbGVuOwotCQl9Ci0JfQogCWVyciA9IG5hbWVsZW47CiBvdXQ6CiAJc3Bpbl91bmxvY2soJmNpLT5pX2NlcGhfbG9jayk7CkBAIC0xMjkzLDQyICsxMjY2LDggQEAgaW50IGNlcGhfc2VjdXJpdHlfaW5pdF9zZWNjdHgoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUsCiAJCWNlcGhfcGFnZWxpc3RfcmVsZWFzZShwYWdlbGlzdCk7CiAJcmV0dXJuIGVycjsKIH0KLQotdm9pZCBjZXBoX3NlY3VyaXR5X2ludmFsaWRhdGVfc2VjY3R4KHN0cnVjdCBpbm9kZSAqaW5vZGUpCi17Ci0Jc2VjdXJpdHlfaW5vZGVfaW52YWxpZGF0ZV9zZWNjdHgoaW5vZGUpOwotfQotCi1zdGF0aWMgaW50IGNlcGhfeGF0dHJfc2V0X3NlY3VyaXR5X2xhYmVsKGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyICpoYW5kbGVyLAotCQkJCSAgICBzdHJ1Y3QgZGVudHJ5ICp1bnVzZWQsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCi0JCQkJICAgIGNvbnN0IGNoYXIgKmtleSwgY29uc3Qgdm9pZCAqYnVmLAotCQkJCSAgICBzaXplX3QgYnVmbGVuLCBpbnQgZmxhZ3MpCi17Ci0JaWYgKHNlY3VyaXR5X2lzbWFjbGFiZWwoa2V5KSkgewotCQljb25zdCBjaGFyICpuYW1lID0geGF0dHJfZnVsbF9uYW1lKGhhbmRsZXIsIGtleSk7Ci0JCXJldHVybiBfX2NlcGhfc2V0eGF0dHIoaW5vZGUsIG5hbWUsIGJ1ZiwgYnVmbGVuLCBmbGFncyk7Ci0JfQotCXJldHVybiAgLUVPUE5PVFNVUFA7Ci19Ci0KLXN0YXRpYyBpbnQgY2VwaF94YXR0cl9nZXRfc2VjdXJpdHlfbGFiZWwoY29uc3Qgc3RydWN0IHhhdHRyX2hhbmRsZXIgKmhhbmRsZXIsCi0JCQkJICAgIHN0cnVjdCBkZW50cnkgKnVudXNlZCwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJCQkgICAgY29uc3QgY2hhciAqa2V5LCB2b2lkICpidWYsIHNpemVfdCBidWZsZW4pCi17Ci0JaWYgKHNlY3VyaXR5X2lzbWFjbGFiZWwoa2V5KSkgewotCQljb25zdCBjaGFyICpuYW1lID0geGF0dHJfZnVsbF9uYW1lKGhhbmRsZXIsIGtleSk7Ci0JCXJldHVybiBfX2NlcGhfZ2V0eGF0dHIoaW5vZGUsIG5hbWUsIGJ1ZiwgYnVmbGVuKTsKLQl9Ci0JcmV0dXJuICAtRU9QTk9UU1VQUDsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyIGNlcGhfc2VjdXJpdHlfbGFiZWxfaGFuZGxlciA9IHsKLQkucHJlZml4ID0gWEFUVFJfU0VDVVJJVFlfUFJFRklYLAotCS5nZXQgICAgPSBjZXBoX3hhdHRyX2dldF9zZWN1cml0eV9sYWJlbCwKLQkuc2V0ICAgID0gY2VwaF94YXR0cl9zZXRfc2VjdXJpdHlfbGFiZWwsCi19OwotI2VuZGlmCi0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfQ0VQSF9GU19TRUNVUklUWV9MQUJFTCAqLworI2VuZGlmIC8qIENPTkZJR19TRUNVUklUWSAqLwogCiB2b2lkIGNlcGhfcmVsZWFzZV9hY2xfc2VjX2N0eChzdHJ1Y3QgY2VwaF9hY2xfc2VjX2N0eCAqYXNfY3R4KQogewpAQCAtMTM1Miw5ICsxMjkxLDYgQEAgY29uc3Qgc3RydWN0IHhhdHRyX2hhbmRsZXIgKmNlcGhfeGF0dHJfaGFuZGxlcnNbXSA9IHsKIAkmcG9zaXhfYWNsX2FjY2Vzc194YXR0cl9oYW5kbGVyLAogCSZwb3NpeF9hY2xfZGVmYXVsdF94YXR0cl9oYW5kbGVyLAogI2VuZGlmCi0jaWZkZWYgQ09ORklHX0NFUEhfRlNfU0VDVVJJVFlfTEFCRUwKLQkmY2VwaF9zZWN1cml0eV9sYWJlbF9oYW5kbGVyLAotI2VuZGlmCiAJJmNlcGhfb3RoZXJfeGF0dHJfaGFuZGxlciwKIAlOVUxMLAogfTsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvS2NvbmZpZyBiL2ZzL2NpZnMvS2NvbmZpZwppbmRleCAzNTBiYzMwLi4yMmNmMDRmIDEwMDY0NAotLS0gYS9mcy9jaWZzL0tjb25maWcKKysrIGIvZnMvY2lmcy9LY29uZmlnCkBAIC0yMTEsMyArMjExLDExIEBACiAJICBNYWtlcyBDSUZTIEZTLUNhY2hlIGNhcGFibGUuIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgeW91ciBDSUZTIGRhdGEKIAkgIHRvIGJlIGNhY2hlZCBsb2NhbGx5IG9uIGRpc2sgdGhyb3VnaCB0aGUgZ2VuZXJhbCBmaWxlc3lzdGVtIGNhY2hlCiAJICBtYW5hZ2VyLiBJZiB1bnN1cmUsIHNheSBOLgorCitjb25maWcgQ0lGU19ST09UCisJYm9vbCAiU01CIHJvb3QgZmlsZSBzeXN0ZW0gKEV4cGVyaW1lbnRhbCkiCisJZGVwZW5kcyBvbiBDSUZTPXkgJiYgSVBfUE5QCisJaGVscAorCSAgRW5hYmxlcyByb290IGZpbGUgc3lzdGVtIHN1cHBvcnQgb3ZlciBTTUIgcHJvdG9jb2wuCisKKwkgIE1vc3QgcGVvcGxlIHNheSBOIGhlcmUuCmRpZmYgLS1naXQgYS9mcy9jaWZzL01ha2VmaWxlIGIvZnMvY2lmcy9NYWtlZmlsZQppbmRleCA0MTMzMmYyLi41MWJhZTkzIDEwMDY0NAotLS0gYS9mcy9jaWZzL01ha2VmaWxlCisrKyBiL2ZzL2NpZnMvTWFrZWZpbGUKQEAgLTIxLDMgKzIxLDUgQEAKIGNpZnMtJChDT05GSUdfQ0lGU19GU0NBQ0hFKSArPSBmc2NhY2hlLm8gY2FjaGUubwogCiBjaWZzLSQoQ09ORklHX0NJRlNfU01CX0RJUkVDVCkgKz0gc21iZGlyZWN0Lm8KKworY2lmcy0kKENPTkZJR19DSUZTX1JPT1QpICs9IGNpZnNyb290Lm8KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc19kZWJ1Zy5jIGIvZnMvY2lmcy9jaWZzX2RlYnVnLmMKaW5kZXggYTM4ZDc5Ni4uMGI0ZWVlMyAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jaWZzX2RlYnVnLmMKKysrIGIvZnMvY2lmcy9jaWZzX2RlYnVnLmMKQEAgLTQ1Miw2ICs0NTIsNyBAQCBzdGF0aWMgc3NpemVfdCBjaWZzX3N0YXRzX3Byb2Nfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCWxpc3RfZm9yX2VhY2godG1wMSwgJmNpZnNfdGNwX3Nlc19saXN0KSB7CiAJCQlzZXJ2ZXIgPSBsaXN0X2VudHJ5KHRtcDEsIHN0cnVjdCBUQ1BfU2VydmVyX0luZm8sCiAJCQkJCSAgICB0Y3Bfc2VzX2xpc3QpOworCQkJc2VydmVyLT5tYXhfaW5fZmxpZ2h0ID0gMDsKICNpZmRlZiBDT05GSUdfQ0lGU19TVEFUUzIKIAkJCWZvciAoaSA9IDA7IGkgPCBOVU1CRVJfT0ZfU01CMl9DT01NQU5EUzsgaSsrKSB7CiAJCQkJYXRvbWljX3NldCgmc2VydmVyLT5udW1fY21kc1tpXSwgMCk7CkBAIC01MjYsNiArNTI3LDcgQEAgc3RhdGljIGludCBjaWZzX3N0YXRzX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiAJbGlzdF9mb3JfZWFjaCh0bXAxLCAmY2lmc190Y3Bfc2VzX2xpc3QpIHsKIAkJc2VydmVyID0gbGlzdF9lbnRyeSh0bXAxLCBzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvLAogCQkJCSAgICB0Y3Bfc2VzX2xpc3QpOworCQlzZXFfcHJpbnRmKG0sICJcbk1heCByZXF1ZXN0cyBpbiBmbGlnaHQ6ICVkIiwgc2VydmVyLT5tYXhfaW5fZmxpZ2h0KTsKICNpZmRlZiBDT05GSUdfQ0lGU19TVEFUUzIKIAkJc2VxX3B1dHMobSwgIlxuVG90YWwgdGltZSBzcGVudCBwcm9jZXNzaW5nIGJ5IGNvbW1hbmQuIFRpbWUgIik7CiAJCXNlcV9wcmludGYobSwgInVuaXRzIGFyZSBqaWZmaWVzICglZCBwZXIgc2Vjb25kKVxuIiwgSFopOwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9jaWZzX2RlYnVnLmggYi9mcy9jaWZzL2NpZnNfZGVidWcuaAppbmRleCAzZDM5MjYyLi4xMDBiMDA1IDEwMDY0NAotLS0gYS9mcy9jaWZzL2NpZnNfZGVidWcuaAorKysgYi9mcy9jaWZzL2NpZnNfZGVidWcuaApAQCAtODAsNiArODAsNjAgQEAgZG8gewkJCQkJCQlcCiAJCQl0eXBlLCBmbXQsICMjX19WQV9BUkdTX18pOwlcCiB9IHdoaWxlICgwKQogCisjZGVmaW5lIGNpZnNfc2VydmVyX2RiZ19mdW5jKHJhdGVmdW5jLCB0eXBlLCBmbXQsIC4uLikJCVwKK2RvIHsJCQkJCQkJCVwKKwljb25zdCBjaGFyICpzbiA9ICIiOwkJCQkJXAorCWlmIChzZXJ2ZXIgJiYgc2VydmVyLT5ob3N0bmFtZSkJCQkJXAorCQlzbiA9IHNlcnZlci0+aG9zdG5hbWU7CQkJCVwKKwlpZiAoKHR5cGUpICYgRllJICYmIGNpZnNGWUkgJiBDSUZTX0lORk8pIHsJCVwKKwkJcHJfZGVidWdfICMjIHJhdGVmdW5jKCIlczogXFxcXCVzICIJZm10LAlcCisJCQlfX0ZJTEVfXywgc24sICMjX19WQV9BUkdTX18pOwkJXAorCX0gZWxzZSBpZiAoKHR5cGUpICYgVkZTKSB7CQkJCVwKKwkJcHJfZXJyXyAjIyByYXRlZnVuYygiQ0lGUyBWRlM6IFxcXFwlcyAiIGZtdCwJXAorCQkJc24sICMjX19WQV9BUkdTX18pOwkJCVwKKwl9IGVsc2UgaWYgKCh0eXBlKSAmIE5PSVNZICYmIChOT0lTWSAhPSAwKSkgewkJXAorCQlwcl9kZWJ1Z18gIyMgcmF0ZWZ1bmMoIlxcXFwlcyAiIGZtdCwJCVwKKwkJCXNuLCAjI19fVkFfQVJHU19fKTsJCQlcCisJfQkJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIGNpZnNfc2VydmVyX2RiZyh0eXBlLCBmbXQsIC4uLikJCQlcCitkbyB7CQkJCQkJCVwKKwlpZiAoKHR5cGUpICYgT05DRSkJCQkJXAorCQljaWZzX3NlcnZlcl9kYmdfZnVuYyhvbmNlLAkJXAorCQkJdHlwZSwgZm10LCAjI19fVkFfQVJHU19fKTsJXAorCWVsc2UJCQkJCQlcCisJCWNpZnNfc2VydmVyX2RiZ19mdW5jKHJhdGVsaW1pdGVkLAlcCisJCQl0eXBlLCBmbXQsICMjX19WQV9BUkdTX18pOwlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIGNpZnNfdGNvbl9kYmdfZnVuYyhyYXRlZnVuYywgdHlwZSwgZm10LCAuLi4pCQlcCitkbyB7CQkJCQkJCQlcCisJY29uc3QgY2hhciAqdG4gPSAiIjsJCQkJCVwKKwlpZiAodGNvbiAmJiB0Y29uLT50cmVlTmFtZSkJCQkJXAorCQl0biA9IHRjb24tPnRyZWVOYW1lOwkJCQlcCisJaWYgKCh0eXBlKSAmIEZZSSAmJiBjaWZzRllJICYgQ0lGU19JTkZPKSB7CQlcCisJCXByX2RlYnVnXyAjIyByYXRlZnVuYygiJXM6ICVzICIJZm10LAkJXAorCQkJX19GSUxFX18sIHRuLCAjI19fVkFfQVJHU19fKTsJCVwKKwl9IGVsc2UgaWYgKCh0eXBlKSAmIFZGUykgewkJCQlcCisJCXByX2Vycl8gIyMgcmF0ZWZ1bmMoIkNJRlMgVkZTOiAlcyAiIGZtdCwJXAorCQkJdG4sICMjX19WQV9BUkdTX18pOwkJCVwKKwl9IGVsc2UgaWYgKCh0eXBlKSAmIE5PSVNZICYmIChOT0lTWSAhPSAwKSkgewkJXAorCQlwcl9kZWJ1Z18gIyMgcmF0ZWZ1bmMoIiVzICIgZm10LAkJXAorCQkJdG4sICMjX19WQV9BUkdTX18pOwkJCVwKKwl9CQkJCQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgY2lmc190Y29uX2RiZyh0eXBlLCBmbXQsIC4uLikJCQlcCitkbyB7CQkJCQkJCVwKKwlpZiAoKHR5cGUpICYgT05DRSkJCQkJXAorCQljaWZzX3Rjb25fZGJnX2Z1bmMob25jZSwJCVwKKwkJCXR5cGUsIGZtdCwgIyNfX1ZBX0FSR1NfXyk7CVwKKwllbHNlCQkJCQkJXAorCQljaWZzX3Rjb25fZGJnX2Z1bmMocmF0ZWxpbWl0ZWQsCVwKKwkJCXR5cGUsIGZtdCwgIyNfX1ZBX0FSR1NfXyk7CVwKK30gd2hpbGUgKDApCisKIC8qCiAgKglkZWJ1ZyBPRkYKICAqCS0tLS0tLS0tLQpAQCAtOTEsNiArMTQ1LDE5IEBAIGRvIHsJCQkJCQkJCQlcCiAJCXByX2RlYnVnKGZtdCwgIyNfX1ZBX0FSR1NfXyk7CQkJCVwKIH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgY2lmc19zZXJ2ZXJfZGJnKHR5cGUsIGZtdCwgLi4uKQkJCQkJXAorZG8gewkJCQkJCQkJCVwKKwlpZiAoMCkJCQkJCQkJCVwKKwkJcHJfZGVidWcoIlxcXFwlcyAiIGZtdCwJCQkJCVwKKwkJCSBzZXJ2ZXItPmhvc3RuYW1lLCAjI19fVkFfQVJHU19fKTsJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgY2lmc190Y29uX2RiZyh0eXBlLCBmbXQsIC4uLikJCQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJaWYgKDApCQkJCQkJCQlcCisJCXByX2RlYnVnKCIlcyAiIGZtdCwgdGNvbi0+dHJlZU5hbWUsICMjX19WQV9BUkdTX18pOwlcCit9IHdoaWxlICgwKQorCiAjZGVmaW5lIGNpZnNfaW5mbyhmbXQsIC4uLikJCQkJCQlcCiBkbyB7CQkJCQkJCQkJXAogCXByX2luZm8oIkNJRlM6ICJmbXQsICMjX19WQV9BUkdTX18pOwkJCQlcCmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNfZnNfc2IuaCBiL2ZzL2NpZnMvY2lmc19mc19zYi5oCmluZGV4IGIzMjZkMmMuLjZlN2M0NDIgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc19mc19zYi5oCisrKyBiL2ZzL2NpZnMvY2lmc19mc19zYi5oCkBAIC01Myw2ICs1Myw4IEBACiAjZGVmaW5lIENJRlNfTU9VTlRfTk9fSEFORExFX0NBQ0hFIDB4NDAwMDAwMCAvKiBkaXNhYmxlIGNhY2hpbmcgZGlyIGhhbmRsZXMgKi8KICNkZWZpbmUgQ0lGU19NT1VOVF9OT19ERlMgMHg4MDAwMDAwIC8qIGRpc2FibGUgREZTIHJlc29sdmluZyAqLwogI2RlZmluZSBDSUZTX01PVU5UX01PREVfRlJPTV9TSUQgMHgxMDAwMDAwMCAvKiByZXRyaWV2ZSBtb2RlIGZyb20gc3BlY2lhbCBBQ0UgKi8KKyNkZWZpbmUgQ0lGU19NT1VOVF9ST19DQUNIRQkweDIwMDAwMDAwICAvKiBhc3N1bWVzIHNoYXJlIHdpbGwgbm90IGNoYW5nZSAqLworI2RlZmluZSBDSUZTX01PVU5UX1JXX0NBQ0hFCTB4NDAwMDAwMDAgIC8qIGFzc3VtZXMgb25seSBjbGllbnQgYWNjZXNzaW5nICovCiAKIHN0cnVjdCBjaWZzX3NiX2luZm8gewogCXN0cnVjdCByYl9yb290IHRsaW5rX3RyZWU7CmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNfaW9jdGwuaCBiL2ZzL2NpZnMvY2lmc19pb2N0bC5oCmluZGV4IDA4NmRkYzUuLjZjM2JkMDcgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc19pb2N0bC5oCisrKyBiL2ZzL2NpZnMvY2lmc19pb2N0bC5oCkBAIC00Niw2ICs0Niw3IEBAIHN0cnVjdCBzbWJfc25hcHNob3RfYXJyYXkgewogLyogcXVlcnlfaW5mbyBmbGFncyAqLwogI2RlZmluZSBQQVNTVEhSVV9RVUVSWV9JTkZPCTB4MDAwMDAwMDAKICNkZWZpbmUgUEFTU1RIUlVfRlNDVEwJCTB4MDAwMDAwMDEKKyNkZWZpbmUgUEFTU1RIUlVfU0VUX0lORk8JMHgwMDAwMDAwMgogc3RydWN0IHNtYl9xdWVyeV9pbmZvIHsKIAlfX3UzMiAgIGluZm9fdHlwZTsKIAlfX3UzMiAgIGZpbGVfaW5mb19jbGFzczsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc2FjbC5jIGIvZnMvY2lmcy9jaWZzYWNsLmMKaW5kZXggMWQzNzdiNy4uZjg0Mjk0NGEgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc2FjbC5jCisrKyBiL2ZzL2NpZnMvY2lmc2FjbC5jCkBAIC03MDEsMTAgKzcwMSw5IEBAIHN0YXRpYyB2b2lkIGR1bXBfYWNlKHN0cnVjdCBjaWZzX2FjZSAqcGFjZSwgY2hhciAqZW5kX29mX2FjbCkKIH0KICNlbmRpZgogCi0KIHN0YXRpYyB2b2lkIHBhcnNlX2RhY2woc3RydWN0IGNpZnNfYWNsICpwZGFjbCwgY2hhciAqZW5kX29mX2FjbCwKIAkJICAgICAgIHN0cnVjdCBjaWZzX3NpZCAqcG93bmVyc2lkLCBzdHJ1Y3QgY2lmc19zaWQgKnBncnBzaWQsCi0JCSAgICAgICBzdHJ1Y3QgY2lmc19mYXR0ciAqZmF0dHIpCisJCSAgICAgICBzdHJ1Y3QgY2lmc19mYXR0ciAqZmF0dHIsIGJvb2wgbW9kZV9mcm9tX3NwZWNpYWxfc2lkKQogewogCWludCBpOwogCWludCBudW1fYWNlcyA9IDA7CkBAIC03NTcsMjIgKzc1NiwzNCBAQCBzdGF0aWMgdm9pZCBwYXJzZV9kYWNsKHN0cnVjdCBjaWZzX2FjbCAqcGRhY2wsIGNoYXIgKmVuZF9vZl9hY2wsCiAjaWZkZWYgQ09ORklHX0NJRlNfREVCVUcyCiAJCQlkdW1wX2FjZShwcGFjZVtpXSwgZW5kX29mX2FjbCk7CiAjZW5kaWYKLQkJCWlmIChjb21wYXJlX3NpZHMoJihwcGFjZVtpXS0+c2lkKSwgcG93bmVyc2lkKSA9PSAwKQorCQkJaWYgKG1vZGVfZnJvbV9zcGVjaWFsX3NpZCAmJgorCQkJICAgIChjb21wYXJlX3NpZHMoJihwcGFjZVtpXS0+c2lkKSwKKwkJCQkJICAmc2lkX3VuaXhfTkZTX21vZGUpID09IDApKSB7CisJCQkJLyoKKwkJCQkgKiBGdWxsIHBlcm1pc3Npb25zIGFyZToKKwkJCQkgKiAwNzc3NyA9IFNfSVNVSUQgfCBTX0lTR0lEIHwgU19JU1ZUWCB8CisJCQkJICogICAgICAgICBTX0lSV1hVIHwgU19JUldYRyB8IFNfSVJXWE8KKwkJCQkgKi8KKwkJCQlmYXR0ci0+Y2ZfbW9kZSAmPSB+MDc3Nzc7CisJCQkJZmF0dHItPmNmX21vZGUgfD0KKwkJCQkJbGUzMl90b19jcHUocHBhY2VbaV0tPnNpZC5zdWJfYXV0aFsyXSk7CisJCQkJYnJlYWs7CisJCQl9IGVsc2UgaWYgKGNvbXBhcmVfc2lkcygmKHBwYWNlW2ldLT5zaWQpLCBwb3duZXJzaWQpID09IDApCiAJCQkJYWNjZXNzX2ZsYWdzX3RvX21vZGUocHBhY2VbaV0tPmFjY2Vzc19yZXEsCiAJCQkJCQkgICAgIHBwYWNlW2ldLT50eXBlLAogCQkJCQkJICAgICAmZmF0dHItPmNmX21vZGUsCiAJCQkJCQkgICAgICZ1c2VyX21hc2spOwotCQkJaWYgKGNvbXBhcmVfc2lkcygmKHBwYWNlW2ldLT5zaWQpLCBwZ3Jwc2lkKSA9PSAwKQorCQkJZWxzZSBpZiAoY29tcGFyZV9zaWRzKCYocHBhY2VbaV0tPnNpZCksIHBncnBzaWQpID09IDApCiAJCQkJYWNjZXNzX2ZsYWdzX3RvX21vZGUocHBhY2VbaV0tPmFjY2Vzc19yZXEsCiAJCQkJCQkgICAgIHBwYWNlW2ldLT50eXBlLAogCQkJCQkJICAgICAmZmF0dHItPmNmX21vZGUsCiAJCQkJCQkgICAgICZncm91cF9tYXNrKTsKLQkJCWlmIChjb21wYXJlX3NpZHMoJihwcGFjZVtpXS0+c2lkKSwgJnNpZF9ldmVyeW9uZSkgPT0gMCkKKwkJCWVsc2UgaWYgKGNvbXBhcmVfc2lkcygmKHBwYWNlW2ldLT5zaWQpLCAmc2lkX2V2ZXJ5b25lKSA9PSAwKQogCQkJCWFjY2Vzc19mbGFnc190b19tb2RlKHBwYWNlW2ldLT5hY2Nlc3NfcmVxLAogCQkJCQkJICAgICBwcGFjZVtpXS0+dHlwZSwKIAkJCQkJCSAgICAgJmZhdHRyLT5jZl9tb2RlLAogCQkJCQkJICAgICAmb3RoZXJfbWFzayk7Ci0JCQlpZiAoY29tcGFyZV9zaWRzKCYocHBhY2VbaV0tPnNpZCksICZzaWRfYXV0aHVzZXJzKSA9PSAwKQorCQkJZWxzZSBpZiAoY29tcGFyZV9zaWRzKCYocHBhY2VbaV0tPnNpZCksICZzaWRfYXV0aHVzZXJzKSA9PSAwKQogCQkJCWFjY2Vzc19mbGFnc190b19tb2RlKHBwYWNlW2ldLT5hY2Nlc3NfcmVxLAogCQkJCQkJICAgICBwcGFjZVtpXS0+dHlwZSwKIAkJCQkJCSAgICAgJmZhdHRyLT5jZl9tb2RlLApAQCAtNzk1LDIyICs4MDYsNDkgQEAgc3RhdGljIHZvaWQgcGFyc2VfZGFjbChzdHJ1Y3QgY2lmc19hY2wgKnBkYWNsLCBjaGFyICplbmRfb2ZfYWNsLAogCiAKIHN0YXRpYyBpbnQgc2V0X2NobW9kX2RhY2woc3RydWN0IGNpZnNfYWNsICpwbmRhY2wsIHN0cnVjdCBjaWZzX3NpZCAqcG93bmVyc2lkLAotCQkJc3RydWN0IGNpZnNfc2lkICpwZ3Jwc2lkLCBfX3U2NCBubW9kZSkKKwkJCXN0cnVjdCBjaWZzX3NpZCAqcGdycHNpZCwgX191NjQgbm1vZGUsIGJvb2wgbW9kZWZyb21zaWQpCiB7CiAJdTE2IHNpemUgPSAwOworCXUzMiBudW1fYWNlcyA9IDA7CiAJc3RydWN0IGNpZnNfYWNsICpwbm5kYWNsOwogCiAJcG5uZGFjbCA9IChzdHJ1Y3QgY2lmc19hY2wgKikoKGNoYXIgKilwbmRhY2wgKyBzaXplb2Yoc3RydWN0IGNpZnNfYWNsKSk7CiAKKwlpZiAobW9kZWZyb21zaWQpIHsKKwkJc3RydWN0IGNpZnNfYWNlICpwbnRhY2UgPQorCQkJKHN0cnVjdCBjaWZzX2FjZSAqKSgoY2hhciAqKXBubmRhY2wgKyBzaXplKTsKKwkJaW50IGk7CisKKwkJcG50YWNlLT50eXBlID0gQUNDRVNTX0FMTE9XRUQ7CisJCXBudGFjZS0+ZmxhZ3MgPSAweDA7CisJCXBudGFjZS0+YWNjZXNzX3JlcSA9IDA7CisJCXBudGFjZS0+c2lkLm51bV9zdWJhdXRoID0gMzsKKwkJcG50YWNlLT5zaWQucmV2aXNpb24gPSAxOworCQlmb3IgKGkgPSAwOyBpIDwgTlVNX0FVVEhTOyBpKyspCisJCQlwbnRhY2UtPnNpZC5hdXRob3JpdHlbaV0gPQorCQkJCXNpZF91bml4X05GU19tb2RlLmF1dGhvcml0eVtpXTsKKwkJcG50YWNlLT5zaWQuc3ViX2F1dGhbMF0gPSBzaWRfdW5peF9ORlNfbW9kZS5zdWJfYXV0aFswXTsKKwkJcG50YWNlLT5zaWQuc3ViX2F1dGhbMV0gPSBzaWRfdW5peF9ORlNfbW9kZS5zdWJfYXV0aFsxXTsKKwkJcG50YWNlLT5zaWQuc3ViX2F1dGhbMl0gPSBjcHVfdG9fbGUzMihubW9kZSAmIDA3Nzc3KTsKKworCQkvKiBzaXplID0gMSArIDEgKyAyICsgNCArIDEgKyAxICsgNiArIChwc2lkLT5udW1fc3ViYXV0aCo0KSAqLworCQlwbnRhY2UtPnNpemUgPSBjcHVfdG9fbGUxNigyOCk7CisJCXNpemUgKz0gMjg7CisJCW51bV9hY2VzKys7CisJfQorCiAJc2l6ZSArPSBmaWxsX2FjZV9mb3Jfc2lkKChzdHJ1Y3QgY2lmc19hY2UgKikgKChjaGFyICopcG5uZGFjbCArIHNpemUpLAogCQkJCQlwb3duZXJzaWQsIG5tb2RlLCBTX0lSV1hVKTsKKwludW1fYWNlcysrOwogCXNpemUgKz0gZmlsbF9hY2VfZm9yX3NpZCgoc3RydWN0IGNpZnNfYWNlICopKChjaGFyICopcG5uZGFjbCArIHNpemUpLAogCQkJCQlwZ3Jwc2lkLCBubW9kZSwgU19JUldYRyk7CisJbnVtX2FjZXMrKzsKIAlzaXplICs9IGZpbGxfYWNlX2Zvcl9zaWQoKHN0cnVjdCBjaWZzX2FjZSAqKSgoY2hhciAqKXBubmRhY2wgKyBzaXplKSwKIAkJCQkJICZzaWRfZXZlcnlvbmUsIG5tb2RlLCBTX0lSV1hPKTsKKwludW1fYWNlcysrOwogCisJcG5kYWNsLT5udW1fYWNlcyA9IGNwdV90b19sZTMyKG51bV9hY2VzKTsKIAlwbmRhY2wtPnNpemUgPSBjcHVfdG9fbGUxNihzaXplICsgc2l6ZW9mKHN0cnVjdCBjaWZzX2FjbCkpOwotCXBuZGFjbC0+bnVtX2FjZXMgPSBjcHVfdG9fbGUzMigzKTsKIAogCXJldHVybiAwOwogfQpAQCAtODUxLDcgKzg4OSw4IEBAIHN0YXRpYyBpbnQgcGFyc2Vfc2lkKHN0cnVjdCBjaWZzX3NpZCAqcHNpZCwgY2hhciAqZW5kX29mX2FjbCkKIAogLyogQ29udmVydCBDSUZTIEFDTCB0byBQT1NJWCBmb3JtICovCiBzdGF0aWMgaW50IHBhcnNlX3NlY19kZXNjKHN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2IsCi0JCXN0cnVjdCBjaWZzX250c2QgKnBudHNkLCBpbnQgYWNsX2xlbiwgc3RydWN0IGNpZnNfZmF0dHIgKmZhdHRyKQorCQlzdHJ1Y3QgY2lmc19udHNkICpwbnRzZCwgaW50IGFjbF9sZW4sIHN0cnVjdCBjaWZzX2ZhdHRyICpmYXR0ciwKKwkJYm9vbCBnZXRfbW9kZV9mcm9tX3NwZWNpYWxfc2lkKQogewogCWludCByYyA9IDA7CiAJc3RydWN0IGNpZnNfc2lkICpvd25lcl9zaWRfcHRyLCAqZ3JvdXBfc2lkX3B0cjsKQEAgLTkwMCw3ICs5MzksNyBAQCBzdGF0aWMgaW50IHBhcnNlX3NlY19kZXNjKHN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2IsCiAKIAlpZiAoZGFjbG9mZnNldCkKIAkJcGFyc2VfZGFjbChkYWNsX3B0ciwgZW5kX29mX2FjbCwgb3duZXJfc2lkX3B0ciwKLQkJCSAgIGdyb3VwX3NpZF9wdHIsIGZhdHRyKTsKKwkJCSAgIGdyb3VwX3NpZF9wdHIsIGZhdHRyLCBnZXRfbW9kZV9mcm9tX3NwZWNpYWxfc2lkKTsKIAllbHNlCiAJCWNpZnNfZGJnKEZZSSwgIm5vIEFDTFxuIik7IC8qIEJCIGdyYW50IGFsbCBvciBkZWZhdWx0IHBlcm1zPyAqLwogCkBAIC05MDksNyArOTQ4LDggQEAgc3RhdGljIGludCBwYXJzZV9zZWNfZGVzYyhzdHJ1Y3QgY2lmc19zYl9pbmZvICpjaWZzX3NiLAogCiAvKiBDb252ZXJ0IHBlcm1pc3Npb24gYml0cyBmcm9tIG1vZGUgdG8gZXF1aXZhbGVudCBDSUZTIEFDTCAqLwogc3RhdGljIGludCBidWlsZF9zZWNfZGVzYyhzdHJ1Y3QgY2lmc19udHNkICpwbnRzZCwgc3RydWN0IGNpZnNfbnRzZCAqcG5udHNkLAotCV9fdTMyIHNlY2Rlc2NsZW4sIF9fdTY0IG5tb2RlLCBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLCBpbnQgKmFjbGZsYWcpCisJX191MzIgc2VjZGVzY2xlbiwgX191NjQgbm1vZGUsIGt1aWRfdCB1aWQsIGtnaWRfdCBnaWQsCisJYm9vbCBtb2RlX2Zyb21fc2lkLCBpbnQgKmFjbGZsYWcpCiB7CiAJaW50IHJjID0gMDsKIAlfX3UzMiBkYWNsb2Zmc2V0OwpAQCAtOTM0LDcgKzk3NCw3IEBAIHN0YXRpYyBpbnQgYnVpbGRfc2VjX2Rlc2Moc3RydWN0IGNpZnNfbnRzZCAqcG50c2QsIHN0cnVjdCBjaWZzX250c2QgKnBubnRzZCwKIAkJbmRhY2xfcHRyLT5udW1fYWNlcyA9IDA7CiAKIAkJcmMgPSBzZXRfY2htb2RfZGFjbChuZGFjbF9wdHIsIG93bmVyX3NpZF9wdHIsIGdyb3VwX3NpZF9wdHIsCi0JCQkJCW5tb2RlKTsKKwkJCQkgICAgbm1vZGUsIG1vZGVfZnJvbV9zaWQpOwogCQlzaWRzb2Zmc2V0ID0gbmRhY2xvZmZzZXQgKyBsZTE2X3RvX2NwdShuZGFjbF9wdHItPnNpemUpOwogCQkvKiBjb3B5IHNlYyBkZXNjIGNvbnRyb2wgcG9ydGlvbiAmIG93bmVyIGFuZCBncm91cCBzaWRzICovCiAJCWNvcHlfc2VjX2Rlc2MocG50c2QsIHBubnRzZCwgc2lkc29mZnNldCk7CkBAIC0xMTI4LDggKzExNjgsOCBAQCBpbnQgc2V0X2NpZnNfYWNsKHN0cnVjdCBjaWZzX250c2QgKnBubnRzZCwgX191MzIgYWNsbGVuLAogLyogVHJhbnNsYXRlIHRoZSBDSUZTIEFDTCAoc2ltaWxhciB0byBOVEZTIEFDTCkgZm9yIGEgZmlsZSBpbnRvIG1vZGUgYml0cyAqLwogaW50CiBjaWZzX2FjbF90b19mYXR0cihzdHJ1Y3QgY2lmc19zYl9pbmZvICpjaWZzX3NiLCBzdHJ1Y3QgY2lmc19mYXR0ciAqZmF0dHIsCi0JCSAgc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqcGF0aCwKLQkJICBjb25zdCBzdHJ1Y3QgY2lmc19maWQgKnBmaWQpCisJCSAgc3RydWN0IGlub2RlICppbm9kZSwgYm9vbCBtb2RlX2Zyb21fc3BlY2lhbF9zaWQsCisJCSAgY29uc3QgY2hhciAqcGF0aCwgY29uc3Qgc3RydWN0IGNpZnNfZmlkICpwZmlkKQogewogCXN0cnVjdCBjaWZzX250c2QgKnBudHNkID0gTlVMTDsKIAl1MzIgYWNsbGVuID0gMDsKQEAgLTExNTYsOCArMTE5NiwxMSBAQCBjaWZzX2FjbF90b19mYXR0cihzdHJ1Y3QgY2lmc19zYl9pbmZvICpjaWZzX3NiLCBzdHJ1Y3QgY2lmc19mYXR0ciAqZmF0dHIsCiAJaWYgKElTX0VSUihwbnRzZCkpIHsKIAkJcmMgPSBQVFJfRVJSKHBudHNkKTsKIAkJY2lmc19kYmcoVkZTLCAiJXM6IGVycm9yICVkIGdldHRpbmcgc2VjIGRlc2NcbiIsIF9fZnVuY19fLCByYyk7CisJfSBlbHNlIGlmIChtb2RlX2Zyb21fc3BlY2lhbF9zaWQpIHsKKwkJcmMgPSBwYXJzZV9zZWNfZGVzYyhjaWZzX3NiLCBwbnRzZCwgYWNsbGVuLCBmYXR0ciwgdHJ1ZSk7CiAJfSBlbHNlIHsKLQkJcmMgPSBwYXJzZV9zZWNfZGVzYyhjaWZzX3NiLCBwbnRzZCwgYWNsbGVuLCBmYXR0cik7CisJCS8qIGdldCBhcHByb3hpbWF0ZWQgbW9kZSBmcm9tIEFDTCAqLworCQlyYyA9IHBhcnNlX3NlY19kZXNjKGNpZnNfc2IsIHBudHNkLCBhY2xsZW4sIGZhdHRyLCBmYWxzZSk7CiAJCWtmcmVlKHBudHNkKTsKIAkJaWYgKHJjKQogCQkJY2lmc19kYmcoVkZTLCAicGFyc2Ugc2VjIGRlc2MgZmFpbGVkIHJjID0gJWRcbiIsIHJjKTsKQEAgLTExODEsNiArMTIyNCw3IEBAIGlkX21vZGVfdG9fY2lmc19hY2woc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqcGF0aCwgX191NjQgbm1vZGUsCiAJc3RydWN0IGNpZnNfc2JfaW5mbyAqY2lmc19zYiA9IENJRlNfU0IoaW5vZGUtPmlfc2IpOwogCXN0cnVjdCB0Y29uX2xpbmsgKnRsaW5rID0gY2lmc19zYl90bGluayhjaWZzX3NiKTsKIAlzdHJ1Y3Qgc21iX3ZlcnNpb25fb3BlcmF0aW9ucyAqb3BzOworCWJvb2wgbW9kZV9mcm9tX3NpZDsKIAogCWlmIChJU19FUlIodGxpbmspKQogCQlyZXR1cm4gUFRSX0VSUih0bGluayk7CkBAIC0xMjE4LDggKzEyNjIsMTMgQEAgaWRfbW9kZV90b19jaWZzX2FjbChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpwYXRoLCBfX3U2NCBubW9kZSwKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCisJaWYgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9NT0RFX0ZST01fU0lEKQorCQltb2RlX2Zyb21fc2lkID0gdHJ1ZTsKKwllbHNlCisJCW1vZGVfZnJvbV9zaWQgPSBmYWxzZTsKKwogCXJjID0gYnVpbGRfc2VjX2Rlc2MocG50c2QsIHBubnRzZCwgc2VjZGVzY2xlbiwgbm1vZGUsIHVpZCwgZ2lkLAotCQkJCSZhY2xmbGFnKTsKKwkJCSAgICBtb2RlX2Zyb21fc2lkLCAmYWNsZmxhZyk7CiAKIAljaWZzX2RiZyhOT0lTWSwgImJ1aWxkX3NlY19kZXNjIHJjOiAlZFxuIiwgcmMpOwogCmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNhY2wuaCBiL2ZzL2NpZnMvY2lmc2FjbC5oCmluZGV4IGRkOTVhNmYuLmViNDI4MzQgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc2FjbC5oCisrKyBiL2ZzL2NpZnMvY2lmc2FjbC5oCkBAIC00NSw3ICs0NSw3IEBACiAgKi8KICNkZWZpbmUgREVGQVVMVF9TRUNfREVTQ19MRU4gKHNpemVvZihzdHJ1Y3QgY2lmc19udHNkKSArIFwKIAkJCSAgICAgIHNpemVvZihzdHJ1Y3QgY2lmc19hY2wpICsgXAotCQkJICAgICAgKHNpemVvZihzdHJ1Y3QgY2lmc19hY2UpICogMykpCisJCQkgICAgICAoc2l6ZW9mKHN0cnVjdCBjaWZzX2FjZSkgKiA0KSkKIAogLyoKICAqIE1heGltdW0gc2l6ZSBvZiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIFNJRDoKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc2ZzLmMgYi9mcy9jaWZzL2NpZnNmcy5jCmluZGV4IDRlMmY3NDguLjJlOWM3ZjQgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc2ZzLmMKKysrIGIvZnMvY2lmcy9jaWZzZnMuYwpAQCAtNTYsNiArNTYsMTUgQEAKICNpbmNsdWRlICJkZnNfY2FjaGUuaCIKICNlbmRpZgogCisvKgorICogRE9TIGRhdGVzIGZyb20gMTk4MC8xLzEgdGhyb3VnaCAyMTA3LzEyLzMxCisgKiBQcm90b2NvbCBzcGVjaWZpY2F0aW9ucyBpbmRpY2F0ZSB0aGUgcmFuZ2Ugc2hvdWxkIGJlIHRvIDExOSwgd2hpY2gKKyAqIGxpbWl0cyBtYXhpbXVtIHllYXIgdG8gMjA5OS4gQnV0IHRoaXMgcmFuZ2UgaGFzIG5vdCBiZWVuIGNoZWNrZWQuCisgKi8KKyNkZWZpbmUgU01CX0RBVEVfTUFYICgxMjc8PDkgfCAxMjw8NSB8IDMxKQorI2RlZmluZSBTTUJfREFURV9NSU4gKDA8PDkgfCAxPDw1IHwgMSkKKyNkZWZpbmUgU01CX1RJTUVfTUFYICgyMzw8MTEgfCA1OTw8NSB8IDI5KQorCiBpbnQgY2lmc0ZZSSA9IDA7CiBib29sIHRyYWNlU01COwogYm9vbCBlbmFibGVfb3Bsb2NrcyA9IHRydWU7CkBAIC0xMDksNiArMTE4LDcgQEAgZXh0ZXJuIG1lbXBvb2xfdCAqY2lmc19yZXFfcG9vbHA7CiBleHRlcm4gbWVtcG9vbF90ICpjaWZzX21pZF9wb29scDsKIAogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QJKmNpZnNpb2Rfd3E7CitzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdAkqZGVjcnlwdF93cTsKIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0CSpjaWZzb3Bsb2NrZF93cTsKIF9fdTMyIGNpZnNfbG9ja19zZWNyZXQ7CiAKQEAgLTE0Miw2ICsxNTIsNyBAQCBjaWZzX3JlYWRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCXN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2I7CiAJc3RydWN0IGNpZnNfdGNvbiAqdGNvbjsKKwlzdHJ1Y3QgdGltZXNwZWM2NCB0czsKIAlpbnQgcmMgPSAwOwogCiAJY2lmc19zYiA9IENJRlNfU0Ioc2IpOwpAQCAtMTYxLDYgKzE3MiwxOCBAQCBjaWZzX3JlYWRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAkvKiBCQiBGSVhNRSBmaXggdGltZV9ncmFuIHRvIGJlIGxhcmdlciBmb3IgTEFOTUFOIHNlc3Npb25zICovCiAJc2ItPnNfdGltZV9ncmFuID0gMTAwOwogCisJaWYgKHRjb24tPnVuaXhfZXh0KSB7CisJCXRzID0gY2lmc19OVHRpbWVUb1VuaXgoMCk7CisJCXNiLT5zX3RpbWVfbWluID0gdHMudHZfc2VjOworCQl0cyA9IGNpZnNfTlR0aW1lVG9Vbml4KGNwdV90b19sZTY0KFM2NF9NQVgpKTsKKwkJc2ItPnNfdGltZV9tYXggPSB0cy50dl9zZWM7CisJfSBlbHNlIHsKKwkJdHMgPSBjbnZydERvc1VuaXhUbShjcHVfdG9fbGUxNihTTUJfREFURV9NSU4pLCAwLCAwKTsKKwkJc2ItPnNfdGltZV9taW4gPSB0cy50dl9zZWM7CisJCXRzID0gY252cnREb3NVbml4VG0oY3B1X3RvX2xlMTYoU01CX0RBVEVfTUFYKSwgY3B1X3RvX2xlMTYoU01CX1RJTUVfTUFYKSwgMCk7CisJCXNiLT5zX3RpbWVfbWF4ID0gdHMudHZfc2VjOworCX0KKwogCXNiLT5zX21hZ2ljID0gQ0lGU19NQUdJQ19OVU1CRVI7CiAJc2ItPnNfb3AgPSAmY2lmc19zdXBlcl9vcHM7CiAJc2ItPnNfeGF0dHIgPSBjaWZzX3hhdHRyX2hhbmRsZXJzOwpAQCAtNDAwLDYgKzQyMywxMCBAQCBjaWZzX3Nob3dfY2FjaGVfZmxhdm9yKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IGNpZnNfc2JfaW5mbyAqY2lmc19zYikKIAkJc2VxX3B1dHMocywgInN0cmljdCIpOwogCWVsc2UgaWYgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9ESVJFQ1RfSU8pCiAJCXNlcV9wdXRzKHMsICJub25lIik7CisJZWxzZSBpZiAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1JXX0NBQ0hFKQorCQlzZXFfcHV0cyhzLCAic2luZ2xlY2xpZW50Iik7IC8qIGFzc3VtZSBvbmx5IG9uZSBjbGllbnQgYWNjZXNzICovCisJZWxzZSBpZiAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1JPX0NBQ0hFKQorCQlzZXFfcHV0cyhzLCAicm8iKTsgLyogcmVhZCBvbmx5IGNhY2hpbmcgYXNzdW1lZCAqLwogCWVsc2UKIAkJc2VxX3B1dHMocywgImxvb3NlIik7CiB9CkBAIC00MzMsNiArNDYwLDggQEAgY2lmc19zaG93X29wdGlvbnMoc3RydWN0IHNlcV9maWxlICpzLCBzdHJ1Y3QgZGVudHJ5ICpyb290KQogCWNpZnNfc2hvd19zZWN1cml0eShzLCB0Y29uLT5zZXMpOwogCWNpZnNfc2hvd19jYWNoZV9mbGF2b3IocywgY2lmc19zYik7CiAKKwlpZiAodGNvbi0+bm9fbGVhc2UpCisJCXNlcV9wdXRzKHMsICIsbm9sZWFzZSIpOwogCWlmIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfTVVMVElVU0VSKQogCQlzZXFfcHV0cyhzLCAiLG11bHRpdXNlciIpOwogCWVsc2UgaWYgKHRjb24tPnNlcy0+dXNlcl9uYW1lKQpAQCAtNTU0LDYgKzU4Myw4IEBAIGNpZnNfc2hvd19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IGRlbnRyeSAqcm9vdCkKIAlzZXFfcHJpbnRmKHMsICIscnNpemU9JXUiLCBjaWZzX3NiLT5yc2l6ZSk7CiAJc2VxX3ByaW50ZihzLCAiLHdzaXplPSV1IiwgY2lmc19zYi0+d3NpemUpOwogCXNlcV9wcmludGYocywgIixic2l6ZT0ldSIsIGNpZnNfc2ItPmJzaXplKTsKKwlpZiAodGNvbi0+c2VzLT5zZXJ2ZXItPm1pbl9vZmZsb2FkKQorCQlzZXFfcHJpbnRmKHMsICIsZXNpemU9JXUiLCB0Y29uLT5zZXMtPnNlcnZlci0+bWluX29mZmxvYWQpOwogCXNlcV9wcmludGYocywgIixlY2hvX2ludGVydmFsPSVsdSIsCiAJCQl0Y29uLT5zZXMtPnNlcnZlci0+ZWNob19pbnRlcnZhbCAvIEhaKTsKIApAQCAtMTQ5NSwxMSArMTUyNiwyNSBAQCBpbml0X2NpZnModm9pZCkKIAkJZ290byBvdXRfY2xlYW5fcHJvYzsKIAl9CiAKKwkvKgorCSAqIENvbnNpZGVyIGluIGZ1dHVyZSBzZXR0aW5nIGxpbWl0IT0wIG1heWJlIHRvIG1pbihudW1fb2ZfY29yZXMgLSAxLCAzKQorCSAqIHNvIHRoYXQgd2UgZG9uJ3QgbGF1bmNoIHRvbyBtYW55IHdvcmtlciB0aHJlYWRzIGJ1dAorCSAqIERvY3VtZW50YXRpb24vd29ya3F1ZXVlLnR4dCByZWNvbW1lbmRzIHNldHRpbmcgaXQgdG8gMAorCSAqLworCisJLyogV1FfVU5CT1VORCBhbGxvd3MgZGVjcnlwdCB0YXNrcyB0byBydW4gb24gYW55IENQVSAqLworCWRlY3J5cHRfd3EgPSBhbGxvY193b3JrcXVldWUoInNtYjNkZWNyeXB0ZCIsCisJCQkJICAgICBXUV9VTkJPVU5EfFdRX0ZSRUVaQUJMRXxXUV9NRU1fUkVDTEFJTSwgMCk7CisJaWYgKCFkZWNyeXB0X3dxKSB7CisJCXJjID0gLUVOT01FTTsKKwkJZ290byBvdXRfZGVzdHJveV9jaWZzaW9kX3dxOworCX0KKwogCWNpZnNvcGxvY2tkX3dxID0gYWxsb2Nfd29ya3F1ZXVlKCJjaWZzb3Bsb2NrZCIsCiAJCQkJCSBXUV9GUkVFWkFCTEV8V1FfTUVNX1JFQ0xBSU0sIDApOwogCWlmICghY2lmc29wbG9ja2Rfd3EpIHsKIAkJcmMgPSAtRU5PTUVNOwotCQlnb3RvIG91dF9kZXN0cm95X2NpZnNpb2Rfd3E7CisJCWdvdG8gb3V0X2Rlc3Ryb3lfZGVjcnlwdF93cTsKIAl9CiAKIAlyYyA9IGNpZnNfZnNjYWNoZV9yZWdpc3RlcigpOwpAQCAtMTU2NSw2ICsxNjEwLDggQEAgaW5pdF9jaWZzKHZvaWQpCiAJY2lmc19mc2NhY2hlX3VucmVnaXN0ZXIoKTsKIG91dF9kZXN0cm95X2NpZnNvcGxvY2tkX3dxOgogCWRlc3Ryb3lfd29ya3F1ZXVlKGNpZnNvcGxvY2tkX3dxKTsKK291dF9kZXN0cm95X2RlY3J5cHRfd3E6CisJZGVzdHJveV93b3JrcXVldWUoZGVjcnlwdF93cSk7CiBvdXRfZGVzdHJveV9jaWZzaW9kX3dxOgogCWRlc3Ryb3lfd29ya3F1ZXVlKGNpZnNpb2Rfd3EpOwogb3V0X2NsZWFuX3Byb2M6CkBAIC0xNTkxLDYgKzE2MzgsNyBAQCBleGl0X2NpZnModm9pZCkKIAljaWZzX2Rlc3Ryb3lfaW5vZGVjYWNoZSgpOwogCWNpZnNfZnNjYWNoZV91bnJlZ2lzdGVyKCk7CiAJZGVzdHJveV93b3JrcXVldWUoY2lmc29wbG9ja2Rfd3EpOworCWRlc3Ryb3lfd29ya3F1ZXVlKGRlY3J5cHRfd3EpOwogCWRlc3Ryb3lfd29ya3F1ZXVlKGNpZnNpb2Rfd3EpOwogCWNpZnNfcHJvY19jbGVhbigpOwogfQpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9jaWZzZnMuaCBiL2ZzL2NpZnMvY2lmc2ZzLmgKaW5kZXggOTljYWY3Ny4uYmM0Y2E5NCAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jaWZzZnMuaAorKysgYi9mcy9jaWZzL2NpZnNmcy5oCkBAIC0xNTIsNSArMTUyLDUgQEAgZXh0ZXJuIGxvbmcgY2lmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZXAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZXhwb3J0X29wZXJhdGlvbnMgY2lmc19leHBvcnRfb3BzOwogI2VuZGlmIC8qIENPTkZJR19DSUZTX05GU0RfRVhQT1JUICovCiAKLSNkZWZpbmUgQ0lGU19WRVJTSU9OICAgIjIuMjIiCisjZGVmaW5lIENJRlNfVkVSU0lPTiAgICIyLjIzIgogI2VuZGlmCQkJCS8qIF9DSUZTRlNfSCAqLwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9jaWZzZ2xvYi5oIGIvZnMvY2lmcy9jaWZzZ2xvYi5oCmluZGV4IGZlNjEwZTcuLjU0ZTIwNDUgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc2dsb2IuaAorKysgYi9mcy9jaWZzL2NpZnNnbG9iLmgKQEAgLTU0Miw2ICs1NDIsNyBAQCBzdHJ1Y3Qgc21iX3ZvbCB7CiAJdW1vZGVfdCBkaXJfbW9kZTsKIAllbnVtIHNlY3VyaXR5RW51bSBzZWN0eXBlOyAvKiBzZWN0eXBlIHJlcXVlc3RlZCB2aWEgbW50IG9wdHMgKi8KIAlib29sIHNpZ247IC8qIHdhcyBzaWduaW5nIHJlcXVlc3RlZCB2aWEgbW50IG9wdHM/ICovCisJYm9vbCBpZ25vcmVfc2lnbmF0dXJlOjE7CiAJYm9vbCByZXRyeToxOwogCWJvb2wgaW50cjoxOwogCWJvb2wgc2V0dWlkczoxOwpAQCAtNTU5LDYgKzU2MCw4IEBAIHN0cnVjdCBzbWJfdm9sIHsKIAlib29sIHNlcnZlcl9pbm86MTsgLyogdXNlIGlub2RlIG51bWJlcnMgZnJvbSBzZXJ2ZXIgaWUgVW5pcXVlSWQgKi8KIAlib29sIGRpcmVjdF9pbzoxOwogCWJvb2wgc3RyaWN0X2lvOjE7IC8qIHN0cmljdCBjYWNoZSBiZWhhdmlvciAqLworCWJvb2wgY2FjaGVfcm86MTsKKwlib29sIGNhY2hlX3J3OjE7CiAJYm9vbCByZW1hcDoxOyAgICAgIC8qIHNldCB0byByZW1hcCBzZXZlbiByZXNlcnZlZCBjaGFycyBpbiBmaWxlbmFtZXMgKi8KIAlib29sIHNmdV9yZW1hcDoxOyAgLyogcmVtYXAgc2V2ZW4gcmVzZXJ2ZWQgY2hhcnMgYWxhIFNGVSAqLwogCWJvb2wgcG9zaXhfcGF0aHM6MTsgLyogdW5zZXQgdG8gbm90IGFzayBmb3IgcG9zaXggcGF0aG5hbWVzLiAqLwpAQCAtNTc2LDYgKzU3OSw3IEBAIHN0cnVjdCBzbWJfdm9sIHsKIAlib29sIG5vYmxvY2tzbmQ6MTsKIAlib29sIG5vYXV0b3R1bmU6MTsKIAlib29sIG5vc3RyaWN0c3luYzoxOyAvKiBkbyBub3QgZm9yY2UgZXhwZW5zaXZlIFNNQmZsdXNoIG9uIGV2ZXJ5IHN5bmMgKi8KKwlib29sIG5vX2xlYXNlOjE7ICAgICAvKiBkaXNhYmxlIHJlcXVlc3RpbmcgbGVhc2VzICovCiAJYm9vbCBmc2M6MTsJLyogZW5hYmxlIGZzY2FjaGUgKi8KIAlib29sIG1mc3ltbGlua3M6MTsgLyogdXNlIE1pbnNoYWxsK0ZyZW5jaCBTeW1saW5rcyAqLwogCWJvb2wgbXVsdGl1c2VyOjE7CkBAIC01ODksNiArNTkzLDcgQEAgc3RydWN0IHNtYl92b2wgewogCXVuc2lnbmVkIGludCBic2l6ZTsKIAl1bnNpZ25lZCBpbnQgcnNpemU7CiAJdW5zaWduZWQgaW50IHdzaXplOworCXVuc2lnbmVkIGludCBtaW5fb2ZmbG9hZDsKIAlib29sIHNvY2tvcHRfdGNwX25vZGVsYXk6MTsKIAl1bnNpZ25lZCBsb25nIGFjdGltZW87IC8qIGF0dHJpYnV0ZSBjYWNoZSB0aW1lb3V0IChqaWZmaWVzKSAqLwogCXN0cnVjdCBzbWJfdmVyc2lvbl9vcGVyYXRpb25zICpvcHM7CkBAIC02MDIsNiArNjA3LDcgQEAgc3RydWN0IHNtYl92b2wgewogCV9fdTMyIGhhbmRsZV90aW1lb3V0OyAvKiBwZXJzaXN0ZW50IGFuZCBkdXJhYmxlIGhhbmRsZSB0aW1lb3V0IGluIG1zICovCiAJdW5zaWduZWQgaW50IG1heF9jcmVkaXRzOyAvKiBzbWIzIG1heF9jcmVkaXRzIDEwIDwgY3JlZGl0cyA8IDYwMDAwICovCiAJX191MTYgY29tcHJlc3Npb247IC8qIGNvbXByZXNzaW9uIGFsZ29yaXRobSAweEZGRkYgZGVmYXVsdCAwPWRpc2FibGVkICovCisJYm9vbCByb290ZnM6MTsgLyogaWYgaXQncyBhIFNNQiByb290IGZpbGUgc3lzdGVtICovCiB9OwogCiAvKioKQEAgLTYyMCw3ICs2MjYsOCBAQCBzdHJ1Y3Qgc21iX3ZvbCB7CiAJCQkgQ0lGU19NT1VOVF9NVUxUSVVTRVIgfCBDSUZTX01PVU5UX1NUUklDVF9JTyB8IFwKIAkJCSBDSUZTX01PVU5UX0NJRlNfQkFDS1VQVUlEIHwgQ0lGU19NT1VOVF9DSUZTX0JBQ0tVUEdJRCB8IFwKIAkJCSBDSUZTX01PVU5UX1VJRF9GUk9NX0FDTCB8IENJRlNfTU9VTlRfTk9fSEFORExFX0NBQ0hFIHwgXAotCQkJIENJRlNfTU9VTlRfTk9fREZTIHwgQ0lGU19NT1VOVF9NT0RFX0ZST01fU0lEKQorCQkJIENJRlNfTU9VTlRfTk9fREZTIHwgQ0lGU19NT1VOVF9NT0RFX0ZST01fU0lEIHwgXAorCQkJIENJRlNfTU9VTlRfUk9fQ0FDSEUgfCBDSUZTX01PVU5UX1JXX0NBQ0hFKQogCiAvKioKICAqIEdlbmVyaWMgVkZTIHN1cGVyYmxvY2sgbW91bnQgZmxhZ3MgKHNfZmxhZ3MpIHRvIGNvbnNpZGVyIHdoZW4KQEAgLTY3MiwxMiArNjc5LDE0IEBAIHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gewogCXVuc2lnbmVkIGludCBjcmVkaXRzOyAgLyogc2VuZCBubyBtb3JlIHJlcXVlc3RzIGF0IG9uY2UgKi8KIAl1bnNpZ25lZCBpbnQgbWF4X2NyZWRpdHM7IC8qIGNhbiBvdmVycmlkZSBsYXJnZSAzMjAwMCBkZWZhdWx0IGF0IG1udCAqLwogCXVuc2lnbmVkIGludCBpbl9mbGlnaHQ7ICAvKiBudW1iZXIgb2YgcmVxdWVzdHMgb24gdGhlIHdpcmUgdG8gc2VydmVyICovCisJdW5zaWduZWQgaW50IG1heF9pbl9mbGlnaHQ7IC8qIG1heCBudW1iZXIgb2YgcmVxdWVzdHMgdGhhdCB3ZXJlIG9uIHdpcmUgKi8KIAlzcGlubG9ja190IHJlcV9sb2NrOyAgLyogcHJvdGVjdCB0aGUgdHdvIHZhbHVlcyBhYm92ZSAqLwogCXN0cnVjdCBtdXRleCBzcnZfbXV0ZXg7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0c2s7CiAJY2hhciBzZXJ2ZXJfR1VJRFsxNl07CiAJX191MTYgc2VjX21vZGU7CiAJYm9vbCBzaWduOyAvKiBpcyBzaWduaW5nIGVuYWJsZWQgb24gdGhpcyBjb25uZWN0aW9uPyAqLworCWJvb2wgaWdub3JlX3NpZ25hdHVyZToxOyAvKiBza2lwIHZhbGlkYXRpb24gb2Ygc2lnbmF0dXJlcyBpbiBTTUIyLzMgcnNwICovCiAJYm9vbCBzZXNzaW9uX2VzdGFiOyAvKiBtYXJrIHdoZW4gdmVyeSBmaXJzdCBzZXNzIGlzIGVzdGFibGlzaGVkICovCiAJaW50IGVjaG9fY3JlZGl0czsgIC8qIGVjaG8gcmVzZXJ2ZWQgc2xvdHMgKi8KIAlpbnQgb3Bsb2NrX2NyZWRpdHM7ICAvKiBvcGxvY2sgYnJlYWsgcmVzZXJ2ZWQgc2xvdHMgKi8KQEAgLTc0MCw2ICs3NDksNyBAQCBzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvIHsKICNlbmRpZiAvKiBTVEFUUzIgKi8KIAl1bnNpZ25lZCBpbnQJbWF4X3JlYWQ7CiAJdW5zaWduZWQgaW50CW1heF93cml0ZTsKKwl1bnNpZ25lZCBpbnQJbWluX29mZmxvYWQ7CiAJX19sZTE2CWNvbXByZXNzX2FsZ29yaXRobTsKIAlfX2xlMTYJY2lwaGVyX3R5cGU7CiAJIC8qIHNhdmUgaW5pdGl0YWwgbmVncHJvdCBoYXNoICovCkBAIC03NTUsNiArNzY1LDcgQEAgc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyB7CiAJICogcmVjb25uZWN0LgogCSAqLwogCWludCBucl90YXJnZXRzOworCWJvb2wgbm9ibG9ja2NudDsgLyogdXNlIG5vbi1ibG9ja2luZyBjb25uZWN0KCkgKi8KIH07CiAKIHN0cnVjdCBjaWZzX2NyZWRpdHMgewpAQCAtMTA4Miw2ICsxMDkzLDcgQEAgc3RydWN0IGNpZnNfdGNvbiB7CiAJYm9vbCBuZWVkX3Jlb3Blbl9maWxlczoxOyAvKiBuZWVkIHRvIHJlb3BlbiB0Y29uIGZpbGUgaGFuZGxlcyAqLwogCWJvb2wgdXNlX3Jlc2lsaWVudDoxOyAvKiB1c2UgcmVzaWxpZW50IGluc3RlYWQgb2YgZHVyYWJsZSBoYW5kbGVzICovCiAJYm9vbCB1c2VfcGVyc2lzdGVudDoxOyAvKiB1c2UgcGVyc2lzdGVudCBpbnN0ZWFkIG9mIGR1cmFibGUgaGFuZGxlcyAqLworCWJvb2wgbm9fbGVhc2U6MTsgICAgLyogRG8gbm90IHJlcXVlc3QgbGVhc2VzIG9uIGZpbGVzIG9yIGRpcmVjdG9yaWVzICovCiAJX19sZTMyIGNhcGFiaWxpdGllczsKIAlfX3UzMiBzaGFyZV9mbGFnczsKIAlfX3UzMiBtYXhpbWFsX2FjY2VzczsKQEAgLTEzNjYsOSArMTM3OCw5IEBAIHZvaWQgY2lmc0ZpbGVJbmZvX3B1dChzdHJ1Y3QgY2lmc0ZpbGVJbmZvICpjaWZzX2ZpbGUpOwogI2RlZmluZSBDSUZTX0NBQ0hFX1JXX0ZMRwkoQ0lGU19DQUNIRV9SRUFEX0ZMRyB8IENJRlNfQ0FDSEVfV1JJVEVfRkxHKQogI2RlZmluZSBDSUZTX0NBQ0hFX1JIV19GTEcJKENJRlNfQ0FDSEVfUldfRkxHIHwgQ0lGU19DQUNIRV9IQU5ETEVfRkxHKQogCi0jZGVmaW5lIENJRlNfQ0FDSEVfUkVBRChjaW5vZGUpIChjaW5vZGUtPm9wbG9jayAmIENJRlNfQ0FDSEVfUkVBRF9GTEcpCisjZGVmaW5lIENJRlNfQ0FDSEVfUkVBRChjaW5vZGUpICgoY2lub2RlLT5vcGxvY2sgJiBDSUZTX0NBQ0hFX1JFQURfRkxHKSB8fCAoQ0lGU19TQihjaW5vZGUtPnZmc19pbm9kZS5pX3NiKS0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1JPX0NBQ0hFKSkKICNkZWZpbmUgQ0lGU19DQUNIRV9IQU5ETEUoY2lub2RlKSAoY2lub2RlLT5vcGxvY2sgJiBDSUZTX0NBQ0hFX0hBTkRMRV9GTEcpCi0jZGVmaW5lIENJRlNfQ0FDSEVfV1JJVEUoY2lub2RlKSAoY2lub2RlLT5vcGxvY2sgJiBDSUZTX0NBQ0hFX1dSSVRFX0ZMRykKKyNkZWZpbmUgQ0lGU19DQUNIRV9XUklURShjaW5vZGUpICgoY2lub2RlLT5vcGxvY2sgJiBDSUZTX0NBQ0hFX1dSSVRFX0ZMRykgfHwgKENJRlNfU0IoY2lub2RlLT52ZnNfaW5vZGUuaV9zYiktPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9SV19DQUNIRSkpCiAKIC8qCiAgKiBPbmUgb2YgdGhlc2UgZm9yIGVhY2ggZmlsZSBpbm9kZQpAQCAtMTg4Nyw2ICsxODk5LDcgQEAgdm9pZCBjaWZzX3F1ZXVlX29wbG9ja19icmVhayhzdHJ1Y3QgY2lmc0ZpbGVJbmZvICpjZmlsZSk7CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc2xvd193b3JrX29wcyBjaWZzX29wbG9ja19icmVha19vcHM7CiBleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmNpZnNpb2Rfd3E7CitleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmRlY3J5cHRfd3E7CiBleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmNpZnNvcGxvY2tkX3dxOwogZXh0ZXJuIF9fdTMyIGNpZnNfbG9ja19zZWNyZXQ7CiAKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc3Byb3RvLmggYi9mcy9jaWZzL2NpZnNwcm90by5oCmluZGV4IDU5MmE2Y2UuLjk5YjFiMWUgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc3Byb3RvLmgKKysrIGIvZnMvY2lmcy9jaWZzcHJvdG8uaApAQCAtMTM3LDcgKzEzNywxMSBAQCBleHRlcm4gc3RydWN0IGNpZnNGaWxlSW5mbyAqZmluZF93cml0YWJsZV9maWxlKHN0cnVjdCBjaWZzSW5vZGVJbmZvICosIGJvb2wpOwogZXh0ZXJuIGludCBjaWZzX2dldF93cml0YWJsZV9maWxlKHN0cnVjdCBjaWZzSW5vZGVJbmZvICpjaWZzX2lub2RlLAogCQkJCSAgYm9vbCBmc3VpZF9vbmx5LAogCQkJCSAgc3RydWN0IGNpZnNGaWxlSW5mbyAqKnJldF9maWxlKTsKK2V4dGVybiBpbnQgY2lmc19nZXRfd3JpdGFibGVfcGF0aChzdHJ1Y3QgY2lmc190Y29uICp0Y29uLCBjb25zdCBjaGFyICpuYW1lLAorCQkJCSAgc3RydWN0IGNpZnNGaWxlSW5mbyAqKnJldF9maWxlKTsKIGV4dGVybiBzdHJ1Y3QgY2lmc0ZpbGVJbmZvICpmaW5kX3JlYWRhYmxlX2ZpbGUoc3RydWN0IGNpZnNJbm9kZUluZm8gKiwgYm9vbCk7CitleHRlcm4gaW50IGNpZnNfZ2V0X3JlYWRhYmxlX3BhdGgoc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwgY29uc3QgY2hhciAqbmFtZSwKKwkJCQkgIHN0cnVjdCBjaWZzRmlsZUluZm8gKipyZXRfZmlsZSk7CiBleHRlcm4gdW5zaWduZWQgaW50IHNtYkNhbGNTaXplKHZvaWQgKmJ1Ziwgc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyKTsKIGV4dGVybiBpbnQgZGVjb2RlX25lZ1Rva2VuSW5pdCh1bnNpZ25lZCBjaGFyICpzZWN1cml0eV9ibG9iLCBpbnQgbGVuZ3RoLAogCQkJc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyKTsKQEAgLTE5Nyw2ICsyMDEsNyBAQCBleHRlcm4gaW50IGNpZnNfcmVuYW1lX3BlbmRpbmdfZGVsZXRlKGNvbnN0IGNoYXIgKmZ1bGxfcGF0aCwKIAkJCQkgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgeGlkKTsKIGV4dGVybiBpbnQgY2lmc19hY2xfdG9fZmF0dHIoc3RydWN0IGNpZnNfc2JfaW5mbyAqY2lmc19zYiwKIAkJCSAgICAgIHN0cnVjdCBjaWZzX2ZhdHRyICpmYXR0ciwgc3RydWN0IGlub2RlICppbm9kZSwKKwkJCSAgICAgIGJvb2wgZ2V0X21vZGVfZnJvbV9zcGVjaWFsX3NpZCwKIAkJCSAgICAgIGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHN0cnVjdCBjaWZzX2ZpZCAqcGZpZCk7CiBleHRlcm4gaW50IGlkX21vZGVfdG9fY2lmc19hY2woc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqcGF0aCwgX191NjQsCiAJCQkJCWt1aWRfdCwga2dpZF90KTsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc3Jvb3QuYyBiL2ZzL2NpZnMvY2lmc3Jvb3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2VkYmZiCi0tLSAvZGV2L251bGwKKysrIGIvZnMvY2lmcy9jaWZzcm9vdC5jCkBAIC0wLDAgKzEsOTQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogU01CIHJvb3QgZmlsZSBzeXN0ZW0gc3VwcG9ydAorICoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBQYXVsbyBBbGNhbnRhcmEgPHBhbGNhbnRhcmFAc3VzZS5kZT4KKyAqLworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9yb290X2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luLmg+CisjaW5jbHVkZSA8bGludXgvaW5ldC5oPgorI2luY2x1ZGUgPG5ldC9pcGNvbmZpZy5oPgorCisjZGVmaW5lIERFRkFVTFRfTU5UX09QVFMgXAorCSJ2ZXJzPTEuMCxjaWZzYWNsLG1mc3ltbGlua3MscnNpemU9MTA0ODU3Nix3c2l6ZT02NTUzNix1aWQ9MCxnaWQ9MCwiIFwKKwkiaGFyZCxyb290ZnMiCisKK3N0YXRpYyBjaGFyIHJvb3RfZGV2WzIwNDhdIF9faW5pdGRhdGEgPSAiIjsKK3N0YXRpYyBjaGFyIHJvb3Rfb3B0c1sxMDI0XSBfX2luaXRkYXRhID0gREVGQVVMVF9NTlRfT1BUUzsKKworc3RhdGljIF9fYmUzMiBfX2luaXQgcGFyc2Vfc3J2YWRkcihjaGFyICpzdGFydCwgY2hhciAqZW5kKQoreworCS8qIFRPRE86IGlwdjYgc3VwcG9ydCAqLworCWNoYXIgYWRkcltzaXplb2YoImFhYS5iYmIuY2NjLmRkZCIpXTsKKwlpbnQgaSA9IDA7CisKKwl3aGlsZSAoc3RhcnQgPCBlbmQgJiYgaSA8IHNpemVvZihhZGRyKSAtIDEpIHsKKwkJaWYgKGlzZGlnaXQoKnN0YXJ0KSB8fCAqc3RhcnQgPT0gJy4nKQorCQkJYWRkcltpKytdID0gKnN0YXJ0OworCQlzdGFydCsrOworCX0KKwlhZGRyW2ldID0gJ1wwJzsKKwlyZXR1cm4gaW5fYXRvbihhZGRyKTsKK30KKworLyogY2lmc3Jvb3Q9Ly88c2VydmVyLWlwPi88c2hhcmU+WyxvcHRpb25zXSAqLworc3RhdGljIGludCBfX2luaXQgY2lmc19yb290X3NldHVwKGNoYXIgKmxpbmUpCit7CisJY2hhciAqczsKKwlpbnQgbGVuOworCV9fYmUzMiBzcnZhZGRyID0gaHRvbmwoSU5BRERSX05PTkUpOworCisJUk9PVF9ERVYgPSBSb290X0NJRlM7CisKKwlpZiAoc3RybGVuKGxpbmUpID4gMyAmJiBsaW5lWzBdID09ICcvJyAmJiBsaW5lWzFdID09ICcvJykgeworCQlzID0gc3RyY2hyKCZsaW5lWzJdLCAnLycpOworCQlpZiAoIXMgfHwgc1sxXSA9PSAnXDAnKQorCQkJcmV0dXJuIDE7CisKKwkJLyogbWFrZSBzIHBvaW50IHRvICcsJyBvciAnXDAnIGF0IGVuZCBvZiBsaW5lICovCisJCXMgPSBzdHJjaHJudWwocywgJywnKTsKKwkJLyogbGVuIGlzIHN0cmxlbih1bmMpICsgJ1wwJyAqLworCQlsZW4gPSBzIC0gbGluZSArIDE7CisJCWlmIChsZW4gPiBzaXplb2Yocm9vdF9kZXYpKSB7CisJCQlwcmludGsoS0VSTl9FUlIgIlJvb3QtQ0lGUzogVU5DIHBhdGggdG9vIGxvbmdcbiIpOworCQkJcmV0dXJuIDE7CisJCX0KKwkJc3RybGNweShyb290X2RldiwgbGluZSwgbGVuKTsKKwkJc3J2YWRkciA9IHBhcnNlX3NydmFkZHIoJmxpbmVbMl0sIHMpOworCQlpZiAoKnMpIHsKKwkJCWludCBuID0gc25wcmludGYocm9vdF9vcHRzLAorCQkJCQkgc2l6ZW9mKHJvb3Rfb3B0cyksICIlcywlcyIsCisJCQkJCSBERUZBVUxUX01OVF9PUFRTLCBzICsgMSk7CisJCQlpZiAobiA+PSBzaXplb2Yocm9vdF9vcHRzKSkgeworCQkJCXByaW50ayhLRVJOX0VSUiAiUm9vdC1DSUZTOiBtb3VudCBvcHRpb25zIHN0cmluZyB0b28gbG9uZ1xuIik7CisJCQkJcm9vdF9vcHRzW3NpemVvZihyb290X29wdHMpLTFdID0gJ1wwJzsKKwkJCQlyZXR1cm4gMTsKKwkJCX0KKwkJfQorCX0KKworCXJvb3Rfc2VydmVyX2FkZHIgPSBzcnZhZGRyOworCisJcmV0dXJuIDE7Cit9CisKK19fc2V0dXAoImNpZnNyb290PSIsIGNpZnNfcm9vdF9zZXR1cCk7CisKK2ludCBfX2luaXQgY2lmc19yb290X2RhdGEoY2hhciAqKmRldiwgY2hhciAqKm9wdHMpCit7CisJaWYgKCFyb290X2RldlswXSB8fCByb290X3NlcnZlcl9hZGRyID09IGh0b25sKElOQUREUl9OT05FKSkgeworCQlwcmludGsoS0VSTl9FUlIgIlJvb3QtQ0lGUzogbm8gU01CIHNlcnZlciBhZGRyZXNzXG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCSpkZXYgPSByb290X2RldjsKKwkqb3B0cyA9IHJvb3Rfb3B0czsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9jaWZzc21iLmMgYi9mcy9jaWZzL2NpZnNzbWIuYwppbmRleCAzOTA3NjUzLi5kYmVlMjEzIDEwMDY0NAotLS0gYS9mcy9jaWZzL2NpZnNzbWIuYworKysgYi9mcy9jaWZzL2NpZnNzbWIuYwpAQCAtMTM5Myw3ICsxMzkzLDcgQEAgaW50CiBDSUZTX29wZW4oY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfb3Blbl9wYXJtcyAqb3Bhcm1zLCBpbnQgKm9wbG9jaywKIAkgIEZJTEVfQUxMX0lORk8gKmJ1ZikKIHsKLQlpbnQgcmMgPSAtRUFDQ0VTOworCWludCByYzsKIAlPUEVOX1JFUSAqcmVxID0gTlVMTDsKIAlPUEVOX1JTUCAqcnNwID0gTlVMTDsKIAlpbnQgYnl0ZXNfcmV0dXJuZWQ7CmRpZmYgLS1naXQgYS9mcy9jaWZzL2Nvbm5lY3QuYyBiL2ZzL2NpZnMvY29ubmVjdC5jCmluZGV4IDUyOTllZmYuLjI4NTBjM2MgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY29ubmVjdC5jCisrKyBiL2ZzL2NpZnMvY29ubmVjdC5jCkBAIC03NCw3ICs3NCw3IEBAIGVudW0gewogCU9wdF91c2VyX3hhdHRyLCBPcHRfbm91c2VyX3hhdHRyLAogCU9wdF9mb3JjZXVpZCwgT3B0X25vZm9yY2V1aWQsCiAJT3B0X2ZvcmNlZ2lkLCBPcHRfbm9mb3JjZWdpZCwKLQlPcHRfbm9ibG9ja3NlbmQsIE9wdF9ub2F1dG90dW5lLAorCU9wdF9ub2Jsb2Nrc2VuZCwgT3B0X25vYXV0b3R1bmUsIE9wdF9ub2xlYXNlLAogCU9wdF9oYXJkLCBPcHRfc29mdCwgT3B0X3Blcm0sIE9wdF9ub3Blcm0sCiAJT3B0X21hcHBvc2l4LCBPcHRfbm9tYXBwb3NpeCwKIAlPcHRfbWFwY2hhcnMsIE9wdF9ub21hcGNoYXJzLCBPcHRfc2Z1LApAQCAtOTEsMTggKzkxLDE5IEBAIGVudW0gewogCU9wdF9zZXJ2ZXJpbm8sIE9wdF9ub3NlcnZlcmlubywKIAlPcHRfcndwaWRmb3J3YXJkLCBPcHRfY2lmc2FjbCwgT3B0X25vY2lmc2FjbCwKIAlPcHRfYWNsLCBPcHRfbm9hY2wsIE9wdF9sb2NhbGxlYXNlLAotCU9wdF9zaWduLCBPcHRfc2VhbCwgT3B0X25vYWMsCisJT3B0X3NpZ24sIE9wdF9pZ25vcmVfc2lnbmF0dXJlLCBPcHRfc2VhbCwgT3B0X25vYWMsCiAJT3B0X2ZzYywgT3B0X21mc3ltbGlua3MsCiAJT3B0X211bHRpdXNlciwgT3B0X3Nsb3BweSwgT3B0X25vc2hhcmVzb2NrLAogCU9wdF9wZXJzaXN0ZW50LCBPcHRfbm9wZXJzaXN0ZW50LAogCU9wdF9yZXNpbGllbnQsIE9wdF9ub3Jlc2lsaWVudCwKLQlPcHRfZG9tYWluYXV0bywgT3B0X3JkbWEsIE9wdF9tb2Rlc2lkLAorCU9wdF9kb21haW5hdXRvLCBPcHRfcmRtYSwgT3B0X21vZGVzaWQsIE9wdF9yb290ZnMsCiAJT3B0X2NvbXByZXNzLAogCiAJLyogTW91bnQgb3B0aW9ucyB3aGljaCB0YWtlIG51bWVyaWMgdmFsdWUgKi8KIAlPcHRfYmFja3VwdWlkLCBPcHRfYmFja3VwZ2lkLCBPcHRfdWlkLAogCU9wdF9jcnVpZCwgT3B0X2dpZCwgT3B0X2ZpbGVfbW9kZSwKIAlPcHRfZGlybW9kZSwgT3B0X3BvcnQsCisJT3B0X21pbl9lbmNfb2ZmbG9hZCwKIAlPcHRfYmxvY2tzaXplLCBPcHRfcnNpemUsIE9wdF93c2l6ZSwgT3B0X2FjdGltZW8sCiAJT3B0X2VjaG9faW50ZXJ2YWwsIE9wdF9tYXhfY3JlZGl0cywgT3B0X2hhbmRsZXRpbWVvdXQsCiAJT3B0X3NuYXBzaG90LApAQCAtMTM0LDYgKzEzNSw3IEBAIHN0YXRpYyBjb25zdCBtYXRjaF90YWJsZV90IGNpZnNfbW91bnRfb3B0aW9uX3Rva2VucyA9IHsKIAl7IE9wdF9ub2ZvcmNlZ2lkLCAibm9mb3JjZWdpZCIgfSwKIAl7IE9wdF9ub2Jsb2Nrc2VuZCwgIm5vYmxvY2tzZW5kIiB9LAogCXsgT3B0X25vYXV0b3R1bmUsICJub2F1dG90dW5lIiB9LAorCXsgT3B0X25vbGVhc2UsICJub2xlYXNlIiB9LAogCXsgT3B0X2hhcmQsICJoYXJkIiB9LAogCXsgT3B0X3NvZnQsICJzb2Z0IiB9LAogCXsgT3B0X3Blcm0sICJwZXJtIiB9LApAQCAtMTgzLDYgKzE4NSw3IEBAIHN0YXRpYyBjb25zdCBtYXRjaF90YWJsZV90IGNpZnNfbW91bnRfb3B0aW9uX3Rva2VucyA9IHsKIAl7IE9wdF9ub2FjbCwgIm5vYWNsIiB9LAogCXsgT3B0X2xvY2FsbGVhc2UsICJsb2NhbGxlYXNlIiB9LAogCXsgT3B0X3NpZ24sICJzaWduIiB9LAorCXsgT3B0X2lnbm9yZV9zaWduYXR1cmUsICJzaWdubG9vc2VseSIgfSwKIAl7IE9wdF9zZWFsLCAic2VhbCIgfSwKIAl7IE9wdF9ub2FjLCAibm9hYyIgfSwKIAl7IE9wdF9mc2MsICJmc2MiIH0sCkBAIC0yMDYsNiArMjA5LDcgQEAgc3RhdGljIGNvbnN0IG1hdGNoX3RhYmxlX3QgY2lmc19tb3VudF9vcHRpb25fdG9rZW5zID0gewogCXsgT3B0X2Rpcm1vZGUsICJkaXJtb2RlPSVzIiB9LAogCXsgT3B0X2Rpcm1vZGUsICJkaXJfbW9kZT0lcyIgfSwKIAl7IE9wdF9wb3J0LCAicG9ydD0lcyIgfSwKKwl7IE9wdF9taW5fZW5jX29mZmxvYWQsICJlc2l6ZT0lcyIgfSwKIAl7IE9wdF9ibG9ja3NpemUsICJic2l6ZT0lcyIgfSwKIAl7IE9wdF9yc2l6ZSwgInJzaXplPSVzIiB9LAogCXsgT3B0X3dzaXplLCAid3NpemU9JXMiIH0sCkBAIC0yNjIsNiArMjY2LDcgQEAgc3RhdGljIGNvbnN0IG1hdGNoX3RhYmxlX3QgY2lmc19tb3VudF9vcHRpb25fdG9rZW5zID0gewogCXsgT3B0X2lnbm9yZSwgIm5vbWFuZCIgfSwKIAl7IE9wdF9pZ25vcmUsICJyZWxhdGltZSIgfSwKIAl7IE9wdF9pZ25vcmUsICJfbmV0ZGV2IiB9LAorCXsgT3B0X3Jvb3RmcywgInJvb3RmcyIgfSwKIAogCXsgT3B0X2VyciwgTlVMTCB9CiB9OwpAQCAtMjk4LDYgKzMwMyw4IEBAIGVudW0gewogCU9wdF9jYWNoZV9sb29zZSwKIAlPcHRfY2FjaGVfc3RyaWN0LAogCU9wdF9jYWNoZV9ub25lLAorCU9wdF9jYWNoZV9ybywKKwlPcHRfY2FjaGVfcncsCiAJT3B0X2NhY2hlX2VycgogfTsKIApAQCAtMzA1LDYgKzMxMiw4IEBAIHN0YXRpYyBjb25zdCBtYXRjaF90YWJsZV90IGNpZnNfY2FjaGVmbGF2b3JfdG9rZW5zID0gewogCXsgT3B0X2NhY2hlX2xvb3NlLCAibG9vc2UiIH0sCiAJeyBPcHRfY2FjaGVfc3RyaWN0LCAic3RyaWN0IiB9LAogCXsgT3B0X2NhY2hlX25vbmUsICJub25lIiB9LAorCXsgT3B0X2NhY2hlX3JvLCAicm8iIH0sCisJeyBPcHRfY2FjaGVfcncsICJzaW5nbGVjbGllbnQiIH0sCiAJeyBPcHRfY2FjaGVfZXJyLCBOVUxMIH0KIH07CiAKQEAgLTQ4OSw3ICs0OTgsNyBAQCBjaWZzX3JlY29ubmVjdChzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIpCiAJfSBlbHNlIHsKIAkJcmMgPSByZWNvbm5fc2V0dXBfZGZzX3RhcmdldHMoY2lmc19zYiwgJnRndF9saXN0LCAmdGd0X2l0KTsKIAkJaWYgKHJjICYmIChyYyAhPSAtRU9QTk9UU1VQUCkpIHsKLQkJCWNpZnNfZGJnKFZGUywgIiVzOiBubyB0YXJnZXQgc2VydmVycyBmb3IgREZTIGZhaWxvdmVyXG4iLAorCQkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBubyB0YXJnZXQgc2VydmVycyBmb3IgREZTIGZhaWxvdmVyXG4iLAogCQkJCSBfX2Z1bmNfXyk7CiAJCX0gZWxzZSB7CiAJCQlzZXJ2ZXItPm5yX3RhcmdldHMgPSBkZnNfY2FjaGVfZ2V0X25yX3RndHMoJnRndF9saXN0KTsKQEAgLTYxNywxMiArNjI2LDEyIEBAIGNpZnNfcmVjb25uZWN0KHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAkJcmMgPSBkZnNfY2FjaGVfbm9yZXFfdXBkYXRlX3RndGhpbnQoY2lmc19zYi0+b3JpZ2luX2Z1bGxwYXRoICsgMSwKIAkJCQkJCSAgICB0Z3RfaXQpOwogCQlpZiAocmMpIHsKLQkJCWNpZnNfZGJnKFZGUywgIiVzOiBmYWlsZWQgdG8gdXBkYXRlIERGUyB0YXJnZXQgaGludDogcmMgPSAlZFxuIiwKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsICIlczogZmFpbGVkIHRvIHVwZGF0ZSBERlMgdGFyZ2V0IGhpbnQ6IHJjID0gJWRcbiIsCiAJCQkJIF9fZnVuY19fLCByYyk7CiAJCX0KIAkJcmMgPSBkZnNfY2FjaGVfdXBkYXRlX3ZvbChjaWZzX3NiLT5vcmlnaW5fZnVsbHBhdGgsIHNlcnZlcik7CiAJCWlmIChyYykgewotCQkJY2lmc19kYmcoVkZTLCAiJXM6IGZhaWxlZCB0byB1cGRhdGUgdm9sIGluZm8gaW4gREZTIGNhY2hlOiByYyA9ICVkXG4iLAorCQkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBmYWlsZWQgdG8gdXBkYXRlIHZvbCBpbmZvIGluIERGUyBjYWNoZTogcmMgPSAlZFxuIiwKIAkJCQkgX19mdW5jX18sIHJjKTsKIAkJfQogCQlkZnNfY2FjaGVfZnJlZV90Z3RzKCZ0Z3RfbGlzdCk7CkBAIC02NzgsNyArNjg3LDcgQEAgYWxsb2NhdGVfYnVmZmVycyhzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIpCiAJaWYgKCFzZXJ2ZXItPmJpZ2J1ZikgewogCQlzZXJ2ZXItPmJpZ2J1ZiA9IChjaGFyICopY2lmc19idWZfZ2V0KCk7CiAJCWlmICghc2VydmVyLT5iaWdidWYpIHsKLQkJCWNpZnNfZGJnKFZGUywgIk5vIG1lbW9yeSBmb3IgbGFyZ2UgU01CIHJlc3BvbnNlXG4iKTsKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsICJObyBtZW1vcnkgZm9yIGxhcmdlIFNNQiByZXNwb25zZVxuIik7CiAJCQltc2xlZXAoMzAwMCk7CiAJCQkvKiByZXRyeSB3aWxsIGNoZWNrIGlmIGV4aXRpbmcgKi8KIAkJCXJldHVybiBmYWxzZTsKQEAgLTY5MSw3ICs3MDAsNyBAQCBhbGxvY2F0ZV9idWZmZXJzKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAlpZiAoIXNlcnZlci0+c21hbGxidWYpIHsKIAkJc2VydmVyLT5zbWFsbGJ1ZiA9IChjaGFyICopY2lmc19zbWFsbF9idWZfZ2V0KCk7CiAJCWlmICghc2VydmVyLT5zbWFsbGJ1ZikgewotCQkJY2lmc19kYmcoVkZTLCAiTm8gbWVtb3J5IGZvciBTTUIgcmVzcG9uc2VcbiIpOworCQkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIk5vIG1lbW9yeSBmb3IgU01CIHJlc3BvbnNlXG4iKTsKIAkJCW1zbGVlcCgxMDAwKTsKIAkJCS8qIHJldHJ5IHdpbGwgY2hlY2sgaWYgZXhpdGluZyAqLwogCQkJcmV0dXJuIGZhbHNlOwpAQCAtNzEyLDcgKzcyMSw3IEBAIHNlcnZlcl91bnJlc3BvbnNpdmUoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyKQogCSAqIFdlIG5lZWQgdG8gd2FpdCAzIGVjaG8gaW50ZXJ2YWxzIHRvIG1ha2Ugc3VyZSB3ZSBoYW5kbGUgc3VjaAogCSAqIHNpdHVhdGlvbnMgcmlnaHQ6CiAJICogMXMgIGNsaWVudCBzZW5kcyBhIG5vcm1hbCBTTUIgcmVxdWVzdAotCSAqIDNzICBjbGllbnQgZ2V0cyBhIHJlc3BvbnNlCisJICogMnMgIGNsaWVudCBnZXRzIGEgcmVzcG9uc2UKIAkgKiAzMHMgZWNobyB3b3JrcXVldWUgam9iIHBvcHMsIGFuZCBkZWNpZGVzIHdlIGdvdCBhIHJlc3BvbnNlIHJlY2VudGx5CiAJICogICAgIGFuZCBkb24ndCBuZWVkIHRvIHNlbmQgYW5vdGhlcgogCSAqIC4uLgpAQCAtNzIyLDggKzczMSw4IEBAIHNlcnZlcl91bnJlc3BvbnNpdmUoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyKQogCWlmICgoc2VydmVyLT50Y3BTdGF0dXMgPT0gQ2lmc0dvb2QgfHwKIAkgICAgc2VydmVyLT50Y3BTdGF0dXMgPT0gQ2lmc05lZWROZWdvdGlhdGUpICYmCiAJICAgIHRpbWVfYWZ0ZXIoamlmZmllcywgc2VydmVyLT5sc3RycCArIDMgKiBzZXJ2ZXItPmVjaG9faW50ZXJ2YWwpKSB7Ci0JCWNpZnNfZGJnKFZGUywgIlNlcnZlciAlcyBoYXMgbm90IHJlc3BvbmRlZCBpbiAlbHUgc2Vjb25kcy4gUmVjb25uZWN0aW5nLi4uXG4iLAotCQkJIHNlcnZlci0+aG9zdG5hbWUsICgzICogc2VydmVyLT5lY2hvX2ludGVydmFsKSAvIEhaKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgImhhcyBub3QgcmVzcG9uZGVkIGluICVsdSBzZWNvbmRzLiBSZWNvbm5lY3RpbmcuLi5cbiIsCisJCQkgKDMgKiBzZXJ2ZXItPmVjaG9faW50ZXJ2YWwpIC8gSFopOwogCQljaWZzX3JlY29ubmVjdChzZXJ2ZXIpOwogCQl3YWtlX3VwKCZzZXJ2ZXItPnJlc3BvbnNlX3EpOwogCQlyZXR1cm4gdHJ1ZTsKQEAgLTg2MSw3ICs4NzAsNyBAQCBpc19zbWJfcmVzcG9uc2Uoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyLCB1bnNpZ25lZCBjaGFyIHR5cGUpCiAJCXdha2VfdXAoJnNlcnZlci0+cmVzcG9uc2VfcSk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCWNpZnNfZGJnKFZGUywgIlJGQyAxMDAyIHVua25vd24gcmVzcG9uc2UgdHlwZSAweCV4XG4iLCB0eXBlKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIlJGQyAxMDAyIHVua25vd24gcmVzcG9uc2UgdHlwZSAweCV4XG4iLCB0eXBlKTsKIAkJY2lmc19yZWNvbm5lY3Qoc2VydmVyKTsKIAl9CiAKQEAgLTEwMDgsNyArMTAxNyw3IEBAIHN0YW5kYXJkX3JlY2VpdmUzKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgc3RydWN0IG1pZF9xX2VudHJ5ICptaWQpCiAJLyogbWFrZSBzdXJlIHRoaXMgd2lsbCBmaXQgaW4gYSBsYXJnZSBidWZmZXIgKi8KIAlpZiAocGR1X2xlbmd0aCA+IENJRlNNYXhCdWZTaXplICsgTUFYX0hFQURFUl9TSVpFKHNlcnZlcikgLQogCQlzZXJ2ZXItPnZhbHMtPmhlYWRlcl9wcmVhbWJsZV9zaXplKSB7Ci0JCWNpZnNfZGJnKFZGUywgIlNNQiByZXNwb25zZSB0b28gbG9uZyAoJXUgYnl0ZXMpXG4iLCBwZHVfbGVuZ3RoKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIlNNQiByZXNwb25zZSB0b28gbG9uZyAoJXUgYnl0ZXMpXG4iLCBwZHVfbGVuZ3RoKTsKIAkJY2lmc19yZWNvbm5lY3Qoc2VydmVyKTsKIAkJd2FrZV91cCgmc2VydmVyLT5yZXNwb25zZV9xKTsKIAkJcmV0dXJuIC1FQ09OTkFCT1JURUQ7CkBAIC0xMTQ5LDcgKzExNTgsNyBAQCBjaWZzX2RlbXVsdGlwbGV4X3RocmVhZCh2b2lkICpwKQogCQkvKiBtYWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggdG8gZ2V0IHRvIHRoZSBNSUQgKi8KIAkJaWYgKHNlcnZlci0+cGR1X3NpemUgPCBIRUFERVJfU0laRShzZXJ2ZXIpIC0gMSAtCiAJCSAgICBzZXJ2ZXItPnZhbHMtPmhlYWRlcl9wcmVhbWJsZV9zaXplKSB7Ci0JCQljaWZzX2RiZyhWRlMsICJTTUIgcmVzcG9uc2UgdG9vIHNob3J0ICgldSBieXRlcylcbiIsCisJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiU01CIHJlc3BvbnNlIHRvbyBzaG9ydCAoJXUgYnl0ZXMpXG4iLAogCQkJCSBzZXJ2ZXItPnBkdV9zaXplKTsKIAkJCWNpZnNfcmVjb25uZWN0KHNlcnZlcik7CiAJCQl3YWtlX3VwKCZzZXJ2ZXItPnJlc3BvbnNlX3EpOwpAQCAtMTIyMiw3ICsxMjMxLDcgQEAgY2lmc19kZW11bHRpcGxleF90aHJlYWQodm9pZCAqcCkKIAkJCQlzbWIyX2FkZF9jcmVkaXRzX2Zyb21faGRyKGJ1ZnNbaV0sIHNlcnZlcik7CiAJCQkJY2lmc19kYmcoRllJLCAiUmVjZWl2ZWQgb3Bsb2NrIGJyZWFrXG4iKTsKIAkJCX0gZWxzZSB7Ci0JCQkJY2lmc19kYmcoVkZTLCAiTm8gdGFzayB0byB3YWtlLCB1bmtub3duIGZyYW1lICIKKwkJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiTm8gdGFzayB0byB3YWtlLCB1bmtub3duIGZyYW1lICIKIAkJCQkJICJyZWNlaXZlZCEgTnVtTWlkcyAlZFxuIiwKIAkJCQkJIGF0b21pY19yZWFkKCZtaWRDb3VudCkpOwogCQkJCWNpZnNfZHVtcF9tZW0oIlJlY2VpdmVkIERhdGEgaXM6ICIsIGJ1ZnNbaV0sCkBAIC0xNDE4LDE0ICsxNDI3LDMyIEBAIGNpZnNfcGFyc2VfY2FjaGVfZmxhdm9yKGNoYXIgKnZhbHVlLCBzdHJ1Y3Qgc21iX3ZvbCAqdm9sKQogCWNhc2UgT3B0X2NhY2hlX2xvb3NlOgogCQl2b2wtPmRpcmVjdF9pbyA9IGZhbHNlOwogCQl2b2wtPnN0cmljdF9pbyA9IGZhbHNlOworCQl2b2wtPmNhY2hlX3JvID0gZmFsc2U7CisJCXZvbC0+Y2FjaGVfcncgPSBmYWxzZTsKIAkJYnJlYWs7CiAJY2FzZSBPcHRfY2FjaGVfc3RyaWN0OgogCQl2b2wtPmRpcmVjdF9pbyA9IGZhbHNlOwogCQl2b2wtPnN0cmljdF9pbyA9IHRydWU7CisJCXZvbC0+Y2FjaGVfcm8gPSBmYWxzZTsKKwkJdm9sLT5jYWNoZV9ydyA9IGZhbHNlOwogCQlicmVhazsKIAljYXNlIE9wdF9jYWNoZV9ub25lOgogCQl2b2wtPmRpcmVjdF9pbyA9IHRydWU7CiAJCXZvbC0+c3RyaWN0X2lvID0gZmFsc2U7CisJCXZvbC0+Y2FjaGVfcm8gPSBmYWxzZTsKKwkJdm9sLT5jYWNoZV9ydyA9IGZhbHNlOworCQlicmVhazsKKwljYXNlIE9wdF9jYWNoZV9ybzoKKwkJdm9sLT5kaXJlY3RfaW8gPSBmYWxzZTsKKwkJdm9sLT5zdHJpY3RfaW8gPSBmYWxzZTsKKwkJdm9sLT5jYWNoZV9ybyA9IHRydWU7CisJCXZvbC0+Y2FjaGVfcncgPSBmYWxzZTsKKwkJYnJlYWs7CisJY2FzZSBPcHRfY2FjaGVfcnc6CisJCXZvbC0+ZGlyZWN0X2lvID0gZmFsc2U7CisJCXZvbC0+c3RyaWN0X2lvID0gZmFsc2U7CisJCXZvbC0+Y2FjaGVfcm8gPSBmYWxzZTsKKwkJdm9sLT5jYWNoZV9ydyA9IHRydWU7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWNpZnNfZGJnKFZGUywgImJhZCBjYWNoZT0gb3B0aW9uOiAlc1xuIiwgdmFsdWUpOwpAQCAtMTcxMyw2ICsxNzQwLDkgQEAgY2lmc19wYXJzZV9tb3VudF9vcHRpb25zKGNvbnN0IGNoYXIgKm1vdW50ZGF0YSwgY29uc3QgY2hhciAqZGV2bmFtZSwKIAkJY2FzZSBPcHRfbm9hdXRvdHVuZToKIAkJCXZvbC0+bm9hdXRvdHVuZSA9IDE7CiAJCQlicmVhazsKKwkJY2FzZSBPcHRfbm9sZWFzZToKKwkJCXZvbC0+bm9fbGVhc2UgPSAxOworCQkJYnJlYWs7CiAJCWNhc2UgT3B0X2hhcmQ6CiAJCQl2b2wtPnJldHJ5ID0gMTsKIAkJCWJyZWFrOwpAQCAtMTc0OCw2ICsxNzc4LDExIEBAIGNpZnNfcGFyc2VfbW91bnRfb3B0aW9ucyhjb25zdCBjaGFyICptb3VudGRhdGEsIGNvbnN0IGNoYXIgKmRldm5hbWUsCiAJCWNhc2UgT3B0X25vZGZzOgogCQkJdm9sLT5ub2RmcyA9IDE7CiAJCQlicmVhazsKKwkJY2FzZSBPcHRfcm9vdGZzOgorI2lmZGVmIENPTkZJR19DSUZTX1JPT1QKKwkJCXZvbC0+cm9vdGZzID0gdHJ1ZTsKKyNlbmRpZgorCQkJYnJlYWs7CiAJCWNhc2UgT3B0X3Bvc2l4cGF0aHM6CiAJCQl2b2wtPnBvc2l4X3BhdGhzID0gMTsKIAkJCWJyZWFrOwpAQCAtMTg1NSw2ICsxODkwLDEwIEBAIGNpZnNfcGFyc2VfbW91bnRfb3B0aW9ucyhjb25zdCBjaGFyICptb3VudGRhdGEsIGNvbnN0IGNoYXIgKmRldm5hbWUsCiAJCWNhc2UgT3B0X3NpZ246CiAJCQl2b2wtPnNpZ24gPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgT3B0X2lnbm9yZV9zaWduYXR1cmU6CisJCQl2b2wtPnNpZ24gPSB0cnVlOworCQkJdm9sLT5pZ25vcmVfc2lnbmF0dXJlID0gdHJ1ZTsKKwkJCWJyZWFrOwogCQljYXNlIE9wdF9zZWFsOgogCQkJLyogd2UgZG8gbm90IGRvIHRoZSBmb2xsb3dpbmcgaW4gc2VjRmxhZ3MgYmVjYXVzZSBzZWFsCiAJCQkgKiBpcyBhIHBlciB0cmVlIGNvbm5lY3Rpb24gKG1vdW50KSBub3QgYSBwZXIgc29ja2V0CkBAIC0xOTg5LDYgKzIwMjgsMTMgQEAgY2lmc19wYXJzZV9tb3VudF9vcHRpb25zKGNvbnN0IGNoYXIgKm1vdW50ZGF0YSwgY29uc3QgY2hhciAqZGV2bmFtZSwKIAkJCX0KIAkJCXBvcnQgPSAodW5zaWduZWQgc2hvcnQpb3B0aW9uOwogCQkJYnJlYWs7CisJCWNhc2UgT3B0X21pbl9lbmNfb2ZmbG9hZDoKKwkJCWlmIChnZXRfb3B0aW9uX3VsKGFyZ3MsICZvcHRpb24pKSB7CisJCQkJY2lmc19kYmcoVkZTLCAiSW52YWxpZCBtaW5pbXVtIGVuY3J5cHRlZCByZWFkIG9mZmxvYWQgc2l6ZSAoZXNpemUpXG4iKTsKKwkJCQlnb3RvIGNpZnNfcGFyc2VfbW91bnRfZXJyOworCQkJfQorCQkJdm9sLT5taW5fb2ZmbG9hZCA9IG9wdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIE9wdF9ibG9ja3NpemU6CiAJCQlpZiAoZ2V0X29wdGlvbl91bChhcmdzLCAmb3B0aW9uKSkgewogCQkJCWNpZnNfZGJnKFZGUywgIiVzOiBJbnZhbGlkIGJsb2Nrc2l6ZSB2YWx1ZVxuIiwKQEAgLTI1ODYsNiArMjYzMiwxMiBAQCBzdGF0aWMgaW50IG1hdGNoX3NlcnZlcihzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsIHN0cnVjdCBzbWJfdm9sICp2b2wpCiAJaWYgKHNlcnZlci0+cmRtYSAhPSB2b2wtPnJkbWEpCiAJCXJldHVybiAwOwogCisJaWYgKHNlcnZlci0+aWdub3JlX3NpZ25hdHVyZSAhPSB2b2wtPmlnbm9yZV9zaWduYXR1cmUpCisJCXJldHVybiAwOworCisJaWYgKHNlcnZlci0+bWluX29mZmxvYWQgIT0gdm9sLT5taW5fb2ZmbG9hZCkKKwkJcmV0dXJuIDA7CisKIAlyZXR1cm4gMTsKIH0KIApAQCAtMjY4MSwxMSArMjczMywxMyBAQCBjaWZzX2dldF90Y3Bfc2Vzc2lvbihzdHJ1Y3Qgc21iX3ZvbCAqdm9sdW1lX2luZm8pCiAJCWdvdG8gb3V0X2Vycl9jcnlwdG9fcmVsZWFzZTsKIAl9CiAKLQl0Y3Bfc2VzLT5ub2Jsb2Nrc25kID0gdm9sdW1lX2luZm8tPm5vYmxvY2tzbmQ7CisJdGNwX3Nlcy0+bm9ibG9ja2NudCA9IHZvbHVtZV9pbmZvLT5yb290ZnM7CisJdGNwX3Nlcy0+bm9ibG9ja3NuZCA9IHZvbHVtZV9pbmZvLT5ub2Jsb2Nrc25kIHx8IHZvbHVtZV9pbmZvLT5yb290ZnM7CiAJdGNwX3Nlcy0+bm9hdXRvdHVuZSA9IHZvbHVtZV9pbmZvLT5ub2F1dG90dW5lOwogCXRjcF9zZXMtPnRjcF9ub2RlbGF5ID0gdm9sdW1lX2luZm8tPnNvY2tvcHRfdGNwX25vZGVsYXk7CiAJdGNwX3Nlcy0+cmRtYSA9IHZvbHVtZV9pbmZvLT5yZG1hOwogCXRjcF9zZXMtPmluX2ZsaWdodCA9IDA7CisJdGNwX3Nlcy0+bWF4X2luX2ZsaWdodCA9IDA7CiAJdGNwX3Nlcy0+Y3JlZGl0cyA9IDE7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmdGNwX3Nlcy0+cmVzcG9uc2VfcSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmdGNwX3Nlcy0+cmVxdWVzdF9xKTsKQEAgLTI3NjAsMTAgKzI4MTQsMTEgQEAgY2lmc19nZXRfdGNwX3Nlc3Npb24oc3RydWN0IHNtYl92b2wgKnZvbHVtZV9pbmZvKQogCQltb2R1bGVfcHV0KFRISVNfTU9EVUxFKTsKIAkJZ290byBvdXRfZXJyX2NyeXB0b19yZWxlYXNlOwogCX0KKwl0Y3Bfc2VzLT5taW5fb2ZmbG9hZCA9IHZvbHVtZV9pbmZvLT5taW5fb2ZmbG9hZDsKIAl0Y3Bfc2VzLT50Y3BTdGF0dXMgPSBDaWZzTmVlZE5lZ290aWF0ZTsKIAogCXRjcF9zZXMtPm5yX3RhcmdldHMgPSAxOwotCisJdGNwX3Nlcy0+aWdub3JlX3NpZ25hdHVyZSA9IHZvbHVtZV9pbmZvLT5pZ25vcmVfc2lnbmF0dXJlOwogCS8qIHRocmVhZCBzcGF3bmVkLCBwdXQgaXQgb24gdGhlIGxpc3QgKi8KIAlzcGluX2xvY2soJmNpZnNfdGNwX3Nlc19sb2NrKTsKIAlsaXN0X2FkZCgmdGNwX3Nlcy0+dGNwX3Nlc19saXN0LCAmY2lmc190Y3Bfc2VzX2xpc3QpOwpAQCAtMjg0MCwxNiArMjg5NSwxNyBAQCBjaWZzX3NldHVwX2lwYyhzdHJ1Y3QgY2lmc19zZXMgKnNlcywgc3RydWN0IHNtYl92b2wgKnZvbHVtZV9pbmZvKQogCXN0cnVjdCBubHNfdGFibGUgKm5sc19jb2RlcGFnZTsKIAljaGFyIHVuY1tTRVJWRVJfTkFNRV9MRU5HVEggKyBzaXplb2YoIi8veC9JUEMkIildID0gezB9OwogCWJvb2wgc2VhbCA9IGZhbHNlOworCXN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciA9IHNlcy0+c2VydmVyOwogCiAJLyoKIAkgKiBJZiB0aGUgbW91bnQgcmVxdWVzdCB0aGF0IHJlc3VsdGVkIGluIHRoZSBjcmVhdGlvbiBvZiB0aGUKIAkgKiBzZXNzaW9uIHJlcXVpcmVzIGVuY3J5cHRpb24sIGZvcmNlIElQQyB0byBiZSBlbmNyeXB0ZWQgdG9vLgogCSAqLwogCWlmICh2b2x1bWVfaW5mby0+c2VhbCkgewotCQlpZiAoc2VzLT5zZXJ2ZXItPmNhcGFiaWxpdGllcyAmIFNNQjJfR0xPQkFMX0NBUF9FTkNSWVBUSU9OKQorCQlpZiAoc2VydmVyLT5jYXBhYmlsaXRpZXMgJiBTTUIyX0dMT0JBTF9DQVBfRU5DUllQVElPTikKIAkJCXNlYWwgPSB0cnVlOwogCQllbHNlIHsKLQkJCWNpZnNfZGJnKFZGUywKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsCiAJCQkJICJJUEM6IHNlcnZlciBkb2Vzbid0IHN1cHBvcnQgZW5jcnlwdGlvblxuIik7CiAJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJCX0KQEAgLTI4NTksNyArMjkxNSw3IEBAIGNpZnNfc2V0dXBfaXBjKHN0cnVjdCBjaWZzX3NlcyAqc2VzLCBzdHJ1Y3Qgc21iX3ZvbCAqdm9sdW1lX2luZm8pCiAJaWYgKHRjb24gPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlzY25wcmludGYodW5jLCBzaXplb2YodW5jKSwgIlxcXFwlc1xcSVBDJCIsIHNlcy0+c2VydmVyLT5ob3N0bmFtZSk7CisJc2NucHJpbnRmKHVuYywgc2l6ZW9mKHVuYyksICJcXFxcJXNcXElQQyQiLCBzZXJ2ZXItPmhvc3RuYW1lKTsKIAogCS8qIGNhbm5vdCBmYWlsICovCiAJbmxzX2NvZGVwYWdlID0gbG9hZF9ubHNfZGVmYXVsdCgpOwpAQCAtMjg2OCwxMSArMjkyNCwxMSBAQCBjaWZzX3NldHVwX2lwYyhzdHJ1Y3QgY2lmc19zZXMgKnNlcywgc3RydWN0IHNtYl92b2wgKnZvbHVtZV9pbmZvKQogCXRjb24tPnNlcyA9IHNlczsKIAl0Y29uLT5pcGMgPSB0cnVlOwogCXRjb24tPnNlYWwgPSBzZWFsOwotCXJjID0gc2VzLT5zZXJ2ZXItPm9wcy0+dHJlZV9jb25uZWN0KHhpZCwgc2VzLCB1bmMsIHRjb24sIG5sc19jb2RlcGFnZSk7CisJcmMgPSBzZXJ2ZXItPm9wcy0+dHJlZV9jb25uZWN0KHhpZCwgc2VzLCB1bmMsIHRjb24sIG5sc19jb2RlcGFnZSk7CiAJZnJlZV94aWQoeGlkKTsKIAogCWlmIChyYykgewotCQljaWZzX2RiZyhWRlMsICJmYWlsZWQgdG8gY29ubmVjdCB0byBJUEMgKHJjPSVkKVxuIiwgcmMpOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiZmFpbGVkIHRvIGNvbm5lY3QgdG8gSVBDIChyYz0lZClcbiIsIHJjKTsKIAkJdGNvbkluZm9GcmVlKHRjb24pOwogCQlnb3RvIG91dDsKIAl9CkBAIC0yOTU4LDcgKzMwMTQsNyBAQCB2b2lkIGNpZnNfcHV0X3NtYl9zZXMoc3RydWN0IGNpZnNfc2VzICpzZXMpCiAJCXhpZCA9IGdldF94aWQoKTsKIAkJcmMgPSBzZXJ2ZXItPm9wcy0+bG9nb2ZmKHhpZCwgc2VzKTsKIAkJaWYgKHJjKQotCQkJY2lmc19kYmcoVkZTLCAiJXM6IFNlc3Npb24gTG9nb2ZmIGZhaWx1cmUgcmM9JWRcbiIsCisJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IFNlc3Npb24gTG9nb2ZmIGZhaWx1cmUgcmM9JWRcbiIsCiAJCQkJX19mdW5jX18sIHJjKTsKIAkJX2ZyZWVfeGlkKHhpZCk7CiAJfQpAQCAtMzIxMiw3ICszMjY4LDYgQEAgY2lmc19nZXRfc21iX3NlcyhzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsIHN0cnVjdCBzbWJfdm9sICp2b2x1bWVfaW5mbykKIAogCXNlcy0+c2VjdHlwZSA9IHZvbHVtZV9pbmZvLT5zZWN0eXBlOwogCXNlcy0+c2lnbiA9IHZvbHVtZV9pbmZvLT5zaWduOwotCiAJbXV0ZXhfbG9jaygmc2VzLT5zZXNzaW9uX211dGV4KTsKIAlyYyA9IGNpZnNfbmVnb3RpYXRlX3Byb3RvY29sKHhpZCwgc2VzKTsKIAlpZiAoIXJjKQpAQCAtMzI1MCw2ICszMzA1LDggQEAgc3RhdGljIGludCBtYXRjaF90Y29uKHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sIHN0cnVjdCBzbWJfdm9sICp2b2x1bWVfaW5mbykKIAkJcmV0dXJuIDA7CiAJaWYgKHRjb24tPmhhbmRsZV90aW1lb3V0ICE9IHZvbHVtZV9pbmZvLT5oYW5kbGVfdGltZW91dCkKIAkJcmV0dXJuIDA7CisJaWYgKHRjb24tPm5vX2xlYXNlICE9IHZvbHVtZV9pbmZvLT5ub19sZWFzZSkKKwkJcmV0dXJuIDA7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTM0NTUsNiArMzUxMiwxNCBAQCBjaWZzX2dldF90Y29uKHN0cnVjdCBjaWZzX3NlcyAqc2VzLCBzdHJ1Y3Qgc21iX3ZvbCAqdm9sdW1lX2luZm8pCiAJCXRjb24tPnVzZV9yZXNpbGllbnQgPSB0cnVlOwogCX0KIAorCS8qIElmIHRoZSB1c2VyIHJlYWxseSBrbm93cyB3aGF0IHRoZXkgYXJlIGRvaW5nIHRoZXkgY2FuIG92ZXJyaWRlICovCisJaWYgKHRjb24tPnNoYXJlX2ZsYWdzICYgU01CMl9TSEFSRUZMQUdfTk9fQ0FDSElORykgeworCQlpZiAodm9sdW1lX2luZm8tPmNhY2hlX3JvKQorCQkJY2lmc19kYmcoVkZTLCAiY2FjaGU9cm8gcmVxdWVzdGVkIG9uIG1vdW50IGJ1dCBOT19DQUNISU5HIGZsYWcgc2V0IG9uIHNoYXJlXG4iKTsKKwkJZWxzZSBpZiAodm9sdW1lX2luZm8tPmNhY2hlX3J3KQorCQkJY2lmc19kYmcoVkZTLCAiY2FjaGU9c2luZ2xlY2xpZW50IHJlcXVlc3RlZCBvbiBtb3VudCBidXQgTk9fQ0FDSElORyBmbGFnIHNldCBvbiBzaGFyZVxuIik7CisJfQorCiAJLyoKIAkgKiBXZSBjYW4gaGF2ZSBvbmx5IG9uZSByZXRyeSB2YWx1ZSBmb3IgYSBjb25uZWN0aW9uIHRvIGEgc2hhcmUgc28gZm9yCiAJICogcmVzb3VyY2VzIG1vdW50ZWQgbW9yZSB0aGFuIG9uY2UgdG8gdGhlIHNhbWUgc2VydmVyIHNoYXJlIHRoZSBsYXN0CkBAIC0zNDY0LDYgKzM1MjksNyBAQCBjaWZzX2dldF90Y29uKHN0cnVjdCBjaWZzX3NlcyAqc2VzLCBzdHJ1Y3Qgc21iX3ZvbCAqdm9sdW1lX2luZm8pCiAJdGNvbi0+bm9jYXNlID0gdm9sdW1lX2luZm8tPm5vY2FzZTsKIAl0Y29uLT5ub2hhbmRsZWNhY2hlID0gdm9sdW1lX2luZm8tPm5vaGFuZGxlY2FjaGU7CiAJdGNvbi0+bG9jYWxfbGVhc2UgPSB2b2x1bWVfaW5mby0+bG9jYWxfbGVhc2U7CisJdGNvbi0+bm9fbGVhc2UgPSB2b2x1bWVfaW5mby0+bm9fbGVhc2U7CiAJSU5JVF9MSVNUX0hFQUQoJnRjb24tPnBlbmRpbmdfb3BlbnMpOwogCiAJc3Bpbl9sb2NrKCZjaWZzX3RjcF9zZXNfbG9jayk7CkBAIC0zNjU5LDEwICszNzI1LDEwIEBAIGJpbmRfc29ja2V0KHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAkJCXNhZGRyNCA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikmc2VydmVyLT5zcmNhZGRyOwogCQkJc2FkZHI2ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikmc2VydmVyLT5zcmNhZGRyOwogCQkJaWYgKHNhZGRyNi0+c2luNl9mYW1pbHkgPT0gQUZfSU5FVDYpCi0JCQkJY2lmc19kYmcoVkZTLCAiRmFpbGVkIHRvIGJpbmQgdG86ICVwSTZjLCBlcnJvcjogJWRcbiIsCisJCQkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIkZhaWxlZCB0byBiaW5kIHRvOiAlcEk2YywgZXJyb3I6ICVkXG4iLAogCQkJCQkgJnNhZGRyNi0+c2luNl9hZGRyLCByYyk7CiAJCQllbHNlCi0JCQkJY2lmc19kYmcoVkZTLCAiRmFpbGVkIHRvIGJpbmQgdG86ICVwSTQsIGVycm9yOiAlZFxuIiwKKwkJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiRmFpbGVkIHRvIGJpbmQgdG86ICVwSTQsIGVycm9yOiAlZFxuIiwKIAkJCQkJICZzYWRkcjQtPnNpbl9hZGRyLnNfYWRkciwgcmMpOwogCQl9CiAJfQpAQCAtMzc2Niw3ICszODMyLDcgQEAgZ2VuZXJpY19pcF9jb25uZWN0KHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAkJcmMgPSBfX3NvY2tfY3JlYXRlKGNpZnNfbmV0X25zKHNlcnZlciksIHNmYW1pbHksIFNPQ0tfU1RSRUFNLAogCQkJCSAgIElQUFJPVE9fVENQLCAmc29ja2V0LCAxKTsKIAkJaWYgKHJjIDwgMCkgewotCQkJY2lmc19kYmcoVkZTLCAiRXJyb3IgJWQgY3JlYXRpbmcgc29ja2V0XG4iLCByYyk7CisJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiRXJyb3IgJWQgY3JlYXRpbmcgc29ja2V0XG4iLCByYyk7CiAJCQlzZXJ2ZXItPnNzb2NrZXQgPSBOVUxMOwogCQkJcmV0dXJuIHJjOwogCQl9CkBAIC0zODE0LDcgKzM4ODAsMTEgQEAgZ2VuZXJpY19pcF9jb25uZWN0KHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAkJIHNvY2tldC0+c2stPnNrX3NuZGJ1ZiwKIAkJIHNvY2tldC0+c2stPnNrX3JjdmJ1Ziwgc29ja2V0LT5zay0+c2tfcmN2dGltZW8pOwogCi0JcmMgPSBzb2NrZXQtPm9wcy0+Y29ubmVjdChzb2NrZXQsIHNhZGRyLCBzbGVuLCAwKTsKKwlyYyA9IHNvY2tldC0+b3BzLT5jb25uZWN0KHNvY2tldCwgc2FkZHIsIHNsZW4sCisJCQkJICBzZXJ2ZXItPm5vYmxvY2tjbnQgPyBPX05PTkJMT0NLIDogMCk7CisKKwlpZiAocmMgPT0gLUVJTlBST0dSRVNTKQorCQlyYyA9IDA7CiAJaWYgKHJjIDwgMCkgewogCQljaWZzX2RiZyhGWUksICJFcnJvciAlZCBjb25uZWN0aW5nIHRvIHNlcnZlclxuIiwgcmMpOwogCQlzb2NrX3JlbGVhc2Uoc29ja2V0KTsKQEAgLTQwNDAsNiArNDExMCwxNCBAQCBpbnQgY2lmc19zZXR1cF9jaWZzX3NiKHN0cnVjdCBzbWJfdm9sICpwdm9sdW1lX2luZm8sCiAJCWNpZnNfZGJnKEZZSSwgIm1vdW50aW5nIHNoYXJlIHVzaW5nIGRpcmVjdCBpL29cbiIpOwogCQljaWZzX3NiLT5tbnRfY2lmc19mbGFncyB8PSBDSUZTX01PVU5UX0RJUkVDVF9JTzsKIAl9CisJaWYgKHB2b2x1bWVfaW5mby0+Y2FjaGVfcm8pIHsKKwkJY2lmc19kYmcoVkZTLCAibW91bnRpbmcgc2hhcmUgd2l0aCByZWFkIG9ubHkgY2FjaGluZy4gRW5zdXJlIHRoYXQgdGhlIHNoYXJlIHdpbGwgbm90IGJlIG1vZGlmaWVkIHdoaWxlIGluIHVzZS5cbiIpOworCQljaWZzX3NiLT5tbnRfY2lmc19mbGFncyB8PSBDSUZTX01PVU5UX1JPX0NBQ0hFOworCX0gZWxzZSBpZiAocHZvbHVtZV9pbmZvLT5jYWNoZV9ydykgeworCQljaWZzX2RiZyhWRlMsICJtb3VudGluZyBzaGFyZSBpbiBzaW5nbGUgY2xpZW50IFJXIGNhY2hpbmcgbW9kZS4gRW5zdXJlIHRoYXQgbm8gb3RoZXIgc3lzdGVtcyB3aWxsIGJlIGFjY2Vzc2luZyB0aGUgc2hhcmUuXG4iKTsKKwkJY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgfD0gKENJRlNfTU9VTlRfUk9fQ0FDSEUgfAorCQkJCQkgICAgQ0lGU19NT1VOVF9SV19DQUNIRSk7CisJfQogCWlmIChwdm9sdW1lX2luZm8tPm1mc3ltbGlua3MpIHsKIAkJaWYgKHB2b2x1bWVfaW5mby0+c2Z1X2VtdWwpIHsKIAkJCS8qCkBAIC00MTUwLDcgKzQyMjgsNyBAQCBzdGF0aWMgaW50IG1vdW50X2dldF9jb25ucyhzdHJ1Y3Qgc21iX3ZvbCAqdm9sLCBzdHJ1Y3QgY2lmc19zYl9pbmZvICpjaWZzX3NiLAogCiAJaWYgKCh2b2wtPnBlcnNpc3RlbnQgPT0gdHJ1ZSkgJiYgKCEoc2VzLT5zZXJ2ZXItPmNhcGFiaWxpdGllcyAmCiAJCQkJCSAgICBTTUIyX0dMT0JBTF9DQVBfUEVSU0lTVEVOVF9IQU5ETEVTKSkpIHsKLQkJY2lmc19kYmcoVkZTLCAicGVyc2lzdGVudCBoYW5kbGVzIG5vdCBzdXBwb3J0ZWQgYnkgc2VydmVyXG4iKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgInBlcnNpc3RlbnQgaGFuZGxlcyBub3Qgc3VwcG9ydGVkIGJ5IHNlcnZlclxuIik7CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKQEAgLTQxODIsOCArNDI2MCwxOCBAQCBzdGF0aWMgaW50IG1vdW50X2dldF9jb25ucyhzdHJ1Y3Qgc21iX3ZvbCAqdm9sLCBzdHJ1Y3QgY2lmc19zYl9pbmZvICpjaWZzX3NiLAogCQl0Y29uLT51bml4X2V4dCA9IDA7IC8qIHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZW0gKi8KIAogCS8qIGRvIG5vdCBjYXJlIGlmIGEgZm9sbG93aW5nIGNhbGwgc3VjY2VlZCAtIGluZm9ybWF0aW9uYWwgKi8KLQlpZiAoIXRjb24tPnBpcGUgJiYgc2VydmVyLT5vcHMtPnFmc190Y29uKQorCWlmICghdGNvbi0+cGlwZSAmJiBzZXJ2ZXItPm9wcy0+cWZzX3Rjb24pIHsKIAkJc2VydmVyLT5vcHMtPnFmc190Y29uKCp4aWQsIHRjb24pOworCQlpZiAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1JPX0NBQ0hFKSB7CisJCQlpZiAodGNvbi0+ZnNEZXZJbmZvLkRldmljZUNoYXJhY3RlcmlzdGljcyAmCisJCQkgICAgRklMRV9SRUFEX09OTFlfREVWSUNFKQorCQkJCWNpZnNfZGJnKFZGUywgIm1vdW50ZWQgdG8gcmVhZCBvbmx5IHNoYXJlXG4iKTsKKwkJCWVsc2UgaWYgKChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmCisJCQkJICBDSUZTX01PVU5UX1JXX0NBQ0hFKSA9PSAwKQorCQkJCWNpZnNfZGJnKFZGUywgInJlYWQgb25seSBtb3VudCBvZiBSVyBzaGFyZVxuIik7CisJCQkvKiBubyBuZWVkIHRvIGxvZyBhIFJXIG1vdW50IG9mIGEgdHlwaWNhbCBSVyBzaGFyZSAqLworCQl9CisJfQogCiAJY2lmc19zYi0+d3NpemUgPSBzZXJ2ZXItPm9wcy0+bmVnb3RpYXRlX3dzaXplKHRjb24sIHZvbCk7CiAJY2lmc19zYi0+cnNpemUgPSBzZXJ2ZXItPm9wcy0+bmVnb3RpYXRlX3JzaXplKHRjb24sIHZvbCk7CkBAIC00NTg4LDcgKzQ2NzYsNyBAQCBzdGF0aWMgaW50IGlzX3BhdGhfcmVtb3RlKHN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2IsIHN0cnVjdCBzbWJfdm9sICp2b2wsCiAJCXJjID0gY2lmc19hcmVfYWxsX3BhdGhfY29tcG9uZW50c19hY2Nlc3NpYmxlKHNlcnZlciwgeGlkLCB0Y29uLAogCQkJY2lmc19zYiwgZnVsbF9wYXRoLCB0Y29uLT5GbGFncyAmIFNNQl9TSEFSRV9JU19JTl9ERlMpOwogCQlpZiAocmMgIT0gMCkgewotCQkJY2lmc19kYmcoVkZTLCAiY2Fubm90IHF1ZXJ5IGRpcnMgYmV0d2VlbiByb290IGFuZCBmaW5hbCBwYXRoLCAiCisJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiY2Fubm90IHF1ZXJ5IGRpcnMgYmV0d2VlbiByb290IGFuZCBmaW5hbCBwYXRoLCAiCiAJCQkJICJlbmFibGluZyBDSUZTX01PVU5UX1VTRV9QUkVGSVhfUEFUSFxuIik7CiAJCQljaWZzX3NiLT5tbnRfY2lmc19mbGFncyB8PSBDSUZTX01PVU5UX1VTRV9QUkVGSVhfUEFUSDsKIAkJCXJjID0gMDsKQEAgLTUwOTAsNyArNTE3OCw3IEBAIGNpZnNfc2V0dXBfc2Vzc2lvbihjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc19zZXMgKnNlcywKIAkJcmMgPSBzZXJ2ZXItPm9wcy0+c2Vzc19zZXR1cCh4aWQsIHNlcywgbmxzX2luZm8pOwogCiAJaWYgKHJjKQotCQljaWZzX2RiZyhWRlMsICJTZW5kIGVycm9yIGluIFNlc3NTZXR1cCA9ICVkXG4iLCByYyk7CisJCWNpZnNfc2VydmVyX2RiZyhWRlMsICJTZW5kIGVycm9yIGluIFNlc3NTZXR1cCA9ICVkXG4iLCByYyk7CiAKIAlyZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS9mcy9jaWZzL2Rpci5jIGIvZnMvY2lmcy9kaXIuYwppbmRleCBiZTQyNGU4Li5kZDVhYzg0IDEwMDY0NAotLS0gYS9mcy9jaWZzL2Rpci5jCisrKyBiL2ZzL2NpZnMvZGlyLmMKQEAgLTEyNSw3ICsxMjUsNyBAQCBidWlsZF9wYXRoX2Zyb21fZGVudHJ5X29wdGlvbmFsX3ByZWZpeChzdHJ1Y3QgZGVudHJ5ICpkaXJlbnRyeSwgYm9vbCBwcmVmaXgpCiAJfQogCXJjdV9yZWFkX3VubG9jaygpOwogCi0JZnVsbF9wYXRoID0ga21hbGxvYyhuYW1lbGVuKzEsIEdGUF9LRVJORUwpOworCWZ1bGxfcGF0aCA9IGttYWxsb2MobmFtZWxlbisxLCBHRlBfQVRPTUlDKTsKIAlpZiAoZnVsbF9wYXRoID09IE5VTEwpCiAJCXJldHVybiBmdWxsX3BhdGg7CiAJZnVsbF9wYXRoW25hbWVsZW5dID0gMDsJLyogdHJhaWxpbmcgbnVsbCAqLwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9maWxlLmMgYi9mcy9jaWZzL2ZpbGUuYwppbmRleCA5NzA5MDY5Li40Yjk1NzAwIDEwMDY0NAotLS0gYS9mcy9jaWZzL2ZpbGUuYworKysgYi9mcy9jaWZzL2ZpbGUuYwpAQCAtMTY5Myw5ICsxNjkzLDcgQEAgaW50IGNpZnNfbG9jayhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGNtZCwgc3RydWN0IGZpbGVfbG9jayAqZmxvY2spCiAJYm9vbCBwb3NpeF9sY2sgPSBmYWxzZTsKIAlzdHJ1Y3QgY2lmc19zYl9pbmZvICpjaWZzX3NiOwogCXN0cnVjdCBjaWZzX3Rjb24gKnRjb247Ci0Jc3RydWN0IGNpZnNJbm9kZUluZm8gKmNpbm9kZTsKIAlzdHJ1Y3QgY2lmc0ZpbGVJbmZvICpjZmlsZTsKLQlfX3UxNiBuZXRmaWQ7CiAJX191MzIgdHlwZTsKIAogCXJjID0gLUVBQ0NFUzsKQEAgLTE3MTEsOCArMTcwOSw2IEBAIGludCBjaWZzX2xvY2soc3RydWN0IGZpbGUgKmZpbGUsIGludCBjbWQsIHN0cnVjdCBmaWxlX2xvY2sgKmZsb2NrKQogCWNpZnNfcmVhZF9mbG9jayhmbG9jaywgJnR5cGUsICZsb2NrLCAmdW5sb2NrLCAmd2FpdF9mbGFnLAogCQkJdGNvbi0+c2VzLT5zZXJ2ZXIpOwogCWNpZnNfc2IgPSBDSUZTX0ZJTEVfU0IoZmlsZSk7Ci0JbmV0ZmlkID0gY2ZpbGUtPmZpZC5uZXRmaWQ7Ci0JY2lub2RlID0gQ0lGU19JKGZpbGVfaW5vZGUoZmlsZSkpOwogCiAJaWYgKGNhcF91bml4KHRjb24tPnNlcykgJiYKIAkgICAgKENJRlNfVU5JWF9GQ05UTF9DQVAgJiBsZTY0X3RvX2NwdSh0Y29uLT5mc1VuaXhJbmZvLkNhcGFiaWxpdHkpKSAmJgpAQCAtMTc2NCw3ICsxNzYwLDYgQEAgY2lmc193cml0ZShzdHJ1Y3QgY2lmc0ZpbGVJbmZvICpvcGVuX2ZpbGUsIF9fdTMyIHBpZCwgY29uc3QgY2hhciAqd3JpdGVfZGF0YSwKIAlpbnQgcmMgPSAwOwogCXVuc2lnbmVkIGludCBieXRlc193cml0dGVuID0gMDsKIAl1bnNpZ25lZCBpbnQgdG90YWxfd3JpdHRlbjsKLQlzdHJ1Y3QgY2lmc19zYl9pbmZvICpjaWZzX3NiOwogCXN0cnVjdCBjaWZzX3Rjb24gKnRjb247CiAJc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyOwogCXVuc2lnbmVkIGludCB4aWQ7CkBAIC0xNzcyLDggKzE3NjcsNiBAQCBjaWZzX3dyaXRlKHN0cnVjdCBjaWZzRmlsZUluZm8gKm9wZW5fZmlsZSwgX191MzIgcGlkLCBjb25zdCBjaGFyICp3cml0ZV9kYXRhLAogCXN0cnVjdCBjaWZzSW5vZGVJbmZvICpjaWZzaSA9IENJRlNfSShkX2lub2RlKGRlbnRyeSkpOwogCXN0cnVjdCBjaWZzX2lvX3Bhcm1zIGlvX3Bhcm1zOwogCi0JY2lmc19zYiA9IENJRlNfU0IoZGVudHJ5LT5kX3NiKTsKLQogCWNpZnNfZGJnKEZZSSwgIndyaXRlICV6ZCBieXRlcyB0byBvZmZzZXQgJWxsZCBvZiAlcGRcbiIsCiAJCSB3cml0ZV9zaXplLCAqb2Zmc2V0LCBkZW50cnkpOwogCkBAIC0xOTgwLDYgKzE5NzMsNzcgQEAgZmluZF93cml0YWJsZV9maWxlKHN0cnVjdCBjaWZzSW5vZGVJbmZvICpjaWZzX2lub2RlLCBib29sIGZzdWlkX29ubHkpCiAJcmV0dXJuIGNmaWxlOwogfQogCitpbnQKK2NpZnNfZ2V0X3dyaXRhYmxlX3BhdGgoc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwgY29uc3QgY2hhciAqbmFtZSwKKwkJICAgICAgIHN0cnVjdCBjaWZzRmlsZUluZm8gKipyZXRfZmlsZSkKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkICp0bXA7CisJc3RydWN0IGNpZnNGaWxlSW5mbyAqY2ZpbGU7CisJc3RydWN0IGNpZnNJbm9kZUluZm8gKmNpbm9kZTsKKwljaGFyICpmdWxsX3BhdGg7CisKKwkqcmV0X2ZpbGUgPSBOVUxMOworCisJc3Bpbl9sb2NrKCZ0Y29uLT5vcGVuX2ZpbGVfbG9jayk7CisJbGlzdF9mb3JfZWFjaCh0bXAsICZ0Y29uLT5vcGVuRmlsZUxpc3QpIHsKKwkJY2ZpbGUgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGNpZnNGaWxlSW5mbywKKwkJCSAgICAgdGxpc3QpOworCQlmdWxsX3BhdGggPSBidWlsZF9wYXRoX2Zyb21fZGVudHJ5KGNmaWxlLT5kZW50cnkpOworCQlpZiAoZnVsbF9wYXRoID09IE5VTEwpIHsKKwkJCXNwaW5fdW5sb2NrKCZ0Y29uLT5vcGVuX2ZpbGVfbG9jayk7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCQlpZiAoc3RyY21wKGZ1bGxfcGF0aCwgbmFtZSkpIHsKKwkJCWtmcmVlKGZ1bGxfcGF0aCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWtmcmVlKGZ1bGxfcGF0aCk7CisJCWNpbm9kZSA9IENJRlNfSShkX2lub2RlKGNmaWxlLT5kZW50cnkpKTsKKwkJc3Bpbl91bmxvY2soJnRjb24tPm9wZW5fZmlsZV9sb2NrKTsKKwkJcmV0dXJuIGNpZnNfZ2V0X3dyaXRhYmxlX2ZpbGUoY2lub2RlLCAwLCByZXRfZmlsZSk7CisJfQorCisJc3Bpbl91bmxvY2soJnRjb24tPm9wZW5fZmlsZV9sb2NrKTsKKwlyZXR1cm4gLUVOT0VOVDsKK30KKworaW50CitjaWZzX2dldF9yZWFkYWJsZV9wYXRoKHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sIGNvbnN0IGNoYXIgKm5hbWUsCisJCSAgICAgICBzdHJ1Y3QgY2lmc0ZpbGVJbmZvICoqcmV0X2ZpbGUpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqdG1wOworCXN0cnVjdCBjaWZzRmlsZUluZm8gKmNmaWxlOworCXN0cnVjdCBjaWZzSW5vZGVJbmZvICpjaW5vZGU7CisJY2hhciAqZnVsbF9wYXRoOworCisJKnJldF9maWxlID0gTlVMTDsKKworCXNwaW5fbG9jaygmdGNvbi0+b3Blbl9maWxlX2xvY2spOworCWxpc3RfZm9yX2VhY2godG1wLCAmdGNvbi0+b3BlbkZpbGVMaXN0KSB7CisJCWNmaWxlID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBjaWZzRmlsZUluZm8sCisJCQkgICAgIHRsaXN0KTsKKwkJZnVsbF9wYXRoID0gYnVpbGRfcGF0aF9mcm9tX2RlbnRyeShjZmlsZS0+ZGVudHJ5KTsKKwkJaWYgKGZ1bGxfcGF0aCA9PSBOVUxMKSB7CisJCQlzcGluX3VubG9jaygmdGNvbi0+b3Blbl9maWxlX2xvY2spOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwkJaWYgKHN0cmNtcChmdWxsX3BhdGgsIG5hbWUpKSB7CisJCQlrZnJlZShmdWxsX3BhdGgpOworCQkJY29udGludWU7CisJCX0KKworCQlrZnJlZShmdWxsX3BhdGgpOworCQljaW5vZGUgPSBDSUZTX0koZF9pbm9kZShjZmlsZS0+ZGVudHJ5KSk7CisJCXNwaW5fdW5sb2NrKCZ0Y29uLT5vcGVuX2ZpbGVfbG9jayk7CisJCSpyZXRfZmlsZSA9IGZpbmRfcmVhZGFibGVfZmlsZShjaW5vZGUsIDApOworCQlyZXR1cm4gKnJldF9maWxlID8gMCA6IC1FTk9FTlQ7CisJfQorCisJc3Bpbl91bmxvY2soJnRjb24tPm9wZW5fZmlsZV9sb2NrKTsKKwlyZXR1cm4gLUVOT0VOVDsKK30KKwogc3RhdGljIGludCBjaWZzX3BhcnRpYWxwYWdld3JpdGUoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQogewogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gcGFnZS0+bWFwcGluZzsKQEAgLTM1NzcsMTAgKzM2NDEsOCBAQCBjb2xsZWN0X3VuY2FjaGVkX3JlYWRfZGF0YShzdHJ1Y3QgY2lmc19haW9fY3R4ICpjdHgpCiAJc3RydWN0IGNpZnNfcmVhZGRhdGEgKnJkYXRhLCAqdG1wOwogCXN0cnVjdCBpb3ZfaXRlciAqdG8gPSAmY3R4LT5pdGVyOwogCXN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2I7Ci0Jc3RydWN0IGNpZnNfdGNvbiAqdGNvbjsKIAlpbnQgcmM7CiAKLQl0Y29uID0gdGxpbmtfdGNvbihjdHgtPmNmaWxlLT50bGluayk7CiAJY2lmc19zYiA9IENJRlNfU0IoY3R4LT5jZmlsZS0+ZGVudHJ5LT5kX3NiKTsKIAogCW11dGV4X2xvY2soJmN0eC0+YWlvX211dGV4KTsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvaW5vZGUuYyBiL2ZzL2NpZnMvaW5vZGUuYwppbmRleCA1NmNhNGI4Li4yNmNkZmJmIDEwMDY0NAotLS0gYS9mcy9jaWZzL2lub2RlLmMKKysrIGIvZnMvY2lmcy9pbm9kZS5jCkBAIC04OTMsOCArODkzLDE3IEBAIGNpZnNfZ2V0X2lub2RlX2luZm8oc3RydWN0IGlub2RlICoqaW5vZGUsIGNvbnN0IGNoYXIgKmZ1bGxfcGF0aCwKIAl9CiAKIAkvKiBmaWxsIGluIDA3NzcgYml0cyBmcm9tIEFDTCAqLwotCWlmIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfQ0lGU19BQ0wpIHsKLQkJcmMgPSBjaWZzX2FjbF90b19mYXR0cihjaWZzX3NiLCAmZmF0dHIsICppbm9kZSwgZnVsbF9wYXRoLCBmaWQpOworCWlmIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfTU9ERV9GUk9NX1NJRCkgeworCQlyYyA9IGNpZnNfYWNsX3RvX2ZhdHRyKGNpZnNfc2IsICZmYXR0ciwgKmlub2RlLCB0cnVlLAorCQkJCSAgICAgICBmdWxsX3BhdGgsIGZpZCk7CisJCWlmIChyYykgeworCQkJY2lmc19kYmcoRllJLCAiJXM6IEdldCBtb2RlIGZyb20gU0lEIGZhaWxlZC4gcmM9JWRcbiIsCisJCQkJX19mdW5jX18sIHJjKTsKKwkJCWdvdG8gY2dpaV9leGl0OworCQl9CisJfSBlbHNlIGlmIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfQ0lGU19BQ0wpIHsKKwkJcmMgPSBjaWZzX2FjbF90b19mYXR0cihjaWZzX3NiLCAmZmF0dHIsICppbm9kZSwgZmFsc2UsCisJCQkJICAgICAgIGZ1bGxfcGF0aCwgZmlkKTsKIAkJaWYgKHJjKSB7CiAJCQljaWZzX2RiZyhGWUksICIlczogR2V0dGluZyBBQ0wgZmFpbGVkIHdpdGggZXJyb3I6ICVkXG4iLAogCQkJCSBfX2Z1bmNfXywgcmMpOwpAQCAtMjQ4MCw3ICsyNDg5LDggQEAgY2lmc19zZXRhdHRyX25vdW5peChzdHJ1Y3QgZGVudHJ5ICpkaXJlbnRyeSwgc3RydWN0IGlhdHRyICphdHRycykKIAlpZiAoYXR0cnMtPmlhX3ZhbGlkICYgQVRUUl9HSUQpCiAJCWdpZCA9IGF0dHJzLT5pYV9naWQ7CiAKLQlpZiAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX0NJRlNfQUNMKSB7CisJaWYgKChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfQ0lGU19BQ0wpIHx8CisJICAgIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfTU9ERV9GUk9NX1NJRCkpIHsKIAkJaWYgKHVpZF92YWxpZCh1aWQpIHx8IGdpZF92YWxpZChnaWQpKSB7CiAJCQlyYyA9IGlkX21vZGVfdG9fY2lmc19hY2woaW5vZGUsIGZ1bGxfcGF0aCwgTk9fQ0hBTkdFXzY0LAogCQkJCQkJCXVpZCwgZ2lkKTsKQEAgLTI1MDEsNyArMjUxMSw4IEBAIGNpZnNfc2V0YXR0cl9ub3VuaXgoc3RydWN0IGRlbnRyeSAqZGlyZW50cnksIHN0cnVjdCBpYXR0ciAqYXR0cnMpCiAJaWYgKGF0dHJzLT5pYV92YWxpZCAmIEFUVFJfTU9ERSkgewogCQltb2RlID0gYXR0cnMtPmlhX21vZGU7CiAJCXJjID0gMDsKLQkJaWYgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9DSUZTX0FDTCkgeworCQlpZiAoKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9DSUZTX0FDTCkgfHwKKwkJICAgIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfTU9ERV9GUk9NX1NJRCkpIHsKIAkJCXJjID0gaWRfbW9kZV90b19jaWZzX2FjbChpbm9kZSwgZnVsbF9wYXRoLCBtb2RlLAogCQkJCQkJSU5WQUxJRF9VSUQsIElOVkFMSURfR0lEKTsKIAkJCWlmIChyYykgewpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9uZXRtaXNjLmMgYi9mcy9jaWZzL25ldG1pc2MuYwppbmRleCBlZDkyOTU4Li40OWMxN2VlMSAxMDA2NDQKLS0tIGEvZnMvY2lmcy9uZXRtaXNjLmMKKysrIGIvZnMvY2lmcy9uZXRtaXNjLmMKQEAgLTk0OSw4ICs5NDksOCBAQCBzdGF0aWMgY29uc3QgaW50IHRvdGFsX2RheXNfb2ZfcHJldl9tb250aHNbXSA9IHsKIHN0cnVjdCB0aW1lc3BlYzY0IGNudnJ0RG9zVW5peFRtKF9fbGUxNiBsZV9kYXRlLCBfX2xlMTYgbGVfdGltZSwgaW50IG9mZnNldCkKIHsKIAlzdHJ1Y3QgdGltZXNwZWM2NCB0czsKLQl0aW1lNjRfdCBzZWM7Ci0JaW50IG1pbiwgZGF5cywgbW9udGgsIHllYXI7CisJdGltZTY0X3Qgc2VjLCBkYXlzOworCWludCBtaW4sIGRheSwgbW9udGgsIHllYXI7CiAJdTE2IGRhdGUgPSBsZTE2X3RvX2NwdShsZV9kYXRlKTsKIAl1MTYgdGltZSA9IGxlMTZfdG9fY3B1KGxlX3RpbWUpOwogCVNNQl9USU1FICpzdCA9IChTTUJfVElNRSAqKSZ0aW1lOwpAQCAtOTY2LDE1ICs5NjYsMTUgQEAgc3RydWN0IHRpbWVzcGVjNjQgY252cnREb3NVbml4VG0oX19sZTE2IGxlX2RhdGUsIF9fbGUxNiBsZV90aW1lLCBpbnQgb2Zmc2V0KQogCXNlYyArPSA2MCAqIDYwICogc3QtPkhvdXJzOwogCWlmIChzdC0+SG91cnMgPiAyNCkKIAkJY2lmc19kYmcoVkZTLCAiaWxsZWdhbCBob3VycyAlZFxuIiwgc3QtPkhvdXJzKTsKLQlkYXlzID0gc2QtPkRheTsKKwlkYXkgPSBzZC0+RGF5OwogCW1vbnRoID0gc2QtPk1vbnRoOwotCWlmIChkYXlzIDwgMSB8fCBkYXlzID4gMzEgfHwgbW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHsKLQkJY2lmc19kYmcoVkZTLCAiaWxsZWdhbCBkYXRlLCBtb250aCAlZCBkYXk6ICVkXG4iLCBtb250aCwgZGF5cyk7Ci0JCWRheXMgPSBjbGFtcChkYXlzLCAxLCAzMSk7CisJaWYgKGRheSA8IDEgfHwgZGF5ID4gMzEgfHwgbW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHsKKwkJY2lmc19kYmcoVkZTLCAiaWxsZWdhbCBkYXRlLCBtb250aCAlZCBkYXk6ICVkXG4iLCBtb250aCwgZGF5KTsKKwkJZGF5ID0gY2xhbXAoZGF5LCAxLCAzMSk7CiAJCW1vbnRoID0gY2xhbXAobW9udGgsIDEsIDEyKTsKIAl9CiAJbW9udGggLT0gMTsKLQlkYXlzICs9IHRvdGFsX2RheXNfb2ZfcHJldl9tb250aHNbbW9udGhdOworCWRheXMgPSBkYXkgKyB0b3RhbF9kYXlzX29mX3ByZXZfbW9udGhzW21vbnRoXTsKIAlkYXlzICs9IDM2NTI7IC8qIGFjY291bnQgZm9yIGRpZmZlcmVuY2UgaW4gZGF5cyBiZXR3ZWVuIDE5ODAgYW5kIDE5NzAgKi8KIAl5ZWFyID0gc2QtPlllYXI7CiAJZGF5cyArPSB5ZWFyICogMzY1OwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9zbWIyaW5vZGUuYyBiL2ZzL2NpZnMvc21iMmlub2RlLmMKaW5kZXggZDhkOWNkZi4uZDJhM2ZiNyAxMDA2NDQKLS0tIGEvZnMvY2lmcy9zbWIyaW5vZGUuYworKysgYi9mcy9jaWZzL3NtYjJpbm9kZS5jCkBAIC01MSw3ICs1MSw4IEBAIHN0YXRpYyBpbnQKIHNtYjJfY29tcG91bmRfb3AoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAkJIHN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2IsIGNvbnN0IGNoYXIgKmZ1bGxfcGF0aCwKIAkJIF9fdTMyIGRlc2lyZWRfYWNjZXNzLCBfX3UzMiBjcmVhdGVfZGlzcG9zaXRpb24sCi0JCSBfX3UzMiBjcmVhdGVfb3B0aW9ucywgdm9pZCAqcHRyLCBpbnQgY29tbWFuZCkKKwkJIF9fdTMyIGNyZWF0ZV9vcHRpb25zLCB2b2lkICpwdHIsIGludCBjb21tYW5kLAorCQkgc3RydWN0IGNpZnNGaWxlSW5mbyAqY2ZpbGUpCiB7CiAJaW50IHJjOwogCV9fbGUxNiAqdXRmMTZfcGF0aCA9IE5VTEw7CkBAIC04MywxMCArODQsMTYgQEAgc21iMl9jb21wb3VuZF9vcChjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAogCXJlc3BfYnVmdHlwZVswXSA9IHJlc3BfYnVmdHlwZVsxXSA9IHJlc3BfYnVmdHlwZVsyXSA9IENJRlNfTk9fQlVGRkVSOwogCW1lbXNldChyc3BfaW92LCAwLCBzaXplb2YocnNwX2lvdikpOwogCisJLyogV2UgYWxyZWFkeSBoYXZlIGEgaGFuZGxlIHNvIHdlIGNhbiBza2lwIHRoZSBvcGVuICovCisJaWYgKGNmaWxlKQorCQlnb3RvIGFmdGVyX29wZW47CisKIAkvKiBPcGVuICovCiAJdXRmMTZfcGF0aCA9IGNpZnNfY29udmVydF9wYXRoX3RvX3V0ZjE2KGZ1bGxfcGF0aCwgY2lmc19zYik7Ci0JaWYgKCF1dGYxNl9wYXRoKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoIXV0ZjE2X3BhdGgpIHsKKwkJcmMgPSAtRU5PTUVNOworCQlnb3RvIGZpbmlzaGVkOworCX0KIAogCW9wYXJtcy50Y29uID0gdGNvbjsKIAlvcGFybXMuZGVzaXJlZF9hY2Nlc3MgPSBkZXNpcmVkX2FjY2VzczsKQEAgLTEwNiw3ICsxMTMsMTAgQEAgc21iMl9jb21wb3VuZF9vcChjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAogCWlmIChyYykKIAkJZ290byBmaW5pc2hlZDsKIAotCXNtYjJfc2V0X25leHRfY29tbWFuZCh0Y29uLCAmcnFzdFtudW1fcnFzdCsrXSk7CisJc21iMl9zZXRfbmV4dF9jb21tYW5kKHRjb24sICZycXN0W251bV9ycXN0XSk7CisgYWZ0ZXJfb3BlbjoKKwludW1fcnFzdCsrOworCXJjID0gMDsKIAogCS8qIE9wZXJhdGlvbiAqLwogCXN3aXRjaCAoY29tbWFuZCkgewpAQCAtMTE1LDE1ICsxMjUsMzEgQEAgc21iMl9jb21wb3VuZF9vcChjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAogCQlycXN0W251bV9ycXN0XS5ycV9pb3YgPSBxaV9pb3Y7CiAJCXJxc3RbbnVtX3Jxc3RdLnJxX252ZWMgPSAxOwogCi0JCXJjID0gU01CMl9xdWVyeV9pbmZvX2luaXQodGNvbiwgJnJxc3RbbnVtX3Jxc3RdLCBDT01QT1VORF9GSUQsCi0JCQkJQ09NUE9VTkRfRklELCBGSUxFX0FMTF9JTkZPUk1BVElPTiwKKwkJaWYgKGNmaWxlKQorCQkJcmMgPSBTTUIyX3F1ZXJ5X2luZm9faW5pdCh0Y29uLCAmcnFzdFtudW1fcnFzdF0sCisJCQkJY2ZpbGUtPmZpZC5wZXJzaXN0ZW50X2ZpZCwKKwkJCQljZmlsZS0+ZmlkLnZvbGF0aWxlX2ZpZCwKKwkJCQlGSUxFX0FMTF9JTkZPUk1BVElPTiwKIAkJCQlTTUIyX09fSU5GT19GSUxFLCAwLAogCQkJCXNpemVvZihzdHJ1Y3Qgc21iMl9maWxlX2FsbF9pbmZvKSArCiAJCQkJCSAgUEFUSF9NQVggKiAyLCAwLCBOVUxMKTsKKwkJZWxzZSB7CisJCQlyYyA9IFNNQjJfcXVlcnlfaW5mb19pbml0KHRjb24sICZycXN0W251bV9ycXN0XSwKKwkJCQlDT01QT1VORF9GSUQsCisJCQkJQ09NUE9VTkRfRklELAorCQkJCSBGSUxFX0FMTF9JTkZPUk1BVElPTiwKKwkJCQlTTUIyX09fSU5GT19GSUxFLCAwLAorCQkJCXNpemVvZihzdHJ1Y3Qgc21iMl9maWxlX2FsbF9pbmZvKSArCisJCQkJCSAgUEFUSF9NQVggKiAyLCAwLCBOVUxMKTsKKwkJCWlmICghcmMpIHsKKwkJCQlzbWIyX3NldF9uZXh0X2NvbW1hbmQodGNvbiwgJnJxc3RbbnVtX3Jxc3RdKTsKKwkJCQlzbWIyX3NldF9yZWxhdGVkKCZycXN0W251bV9ycXN0XSk7CisJCQl9CisJCX0KKwogCQlpZiAocmMpCiAJCQlnb3RvIGZpbmlzaGVkOwotCQlzbWIyX3NldF9uZXh0X2NvbW1hbmQodGNvbiwgJnJxc3RbbnVtX3Jxc3RdKTsKLQkJc21iMl9zZXRfcmVsYXRlZCgmcnFzdFtudW1fcnFzdCsrXSk7CisJCW51bV9ycXN0Kys7CiAJCXRyYWNlX3NtYjNfcXVlcnlfaW5mb19jb21wb3VuZF9lbnRlcih4aWQsIHNlcy0+U3VpZCwgdGNvbi0+dGlkLAogCQkJCQkJICAgICBmdWxsX3BhdGgpOwogCQlicmVhazsKQEAgLTE4MiwxNCArMjA4LDI3IEBAIHNtYjJfY29tcG91bmRfb3AoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAkJc2l6ZVswXSA9IHNpemVvZihGSUxFX0JBU0lDX0lORk8pOwogCQlkYXRhWzBdID0gcHRyOwogCi0JCXJjID0gU01CMl9zZXRfaW5mb19pbml0KHRjb24sICZycXN0W251bV9ycXN0XSwgQ09NUE9VTkRfRklELAotCQkJCQlDT01QT1VORF9GSUQsIGN1cnJlbnQtPnRnaWQsCi0JCQkJCUZJTEVfQkFTSUNfSU5GT1JNQVRJT04sCi0JCQkJCVNNQjJfT19JTkZPX0ZJTEUsIDAsIGRhdGEsIHNpemUpOworCQlpZiAoY2ZpbGUpCisJCQlyYyA9IFNNQjJfc2V0X2luZm9faW5pdCh0Y29uLCAmcnFzdFtudW1fcnFzdF0sCisJCQkJY2ZpbGUtPmZpZC5wZXJzaXN0ZW50X2ZpZCwKKwkJCQljZmlsZS0+ZmlkLnZvbGF0aWxlX2ZpZCwgY3VycmVudC0+dGdpZCwKKwkJCQlGSUxFX0JBU0lDX0lORk9STUFUSU9OLAorCQkJCVNNQjJfT19JTkZPX0ZJTEUsIDAsIGRhdGEsIHNpemUpOworCQllbHNlIHsKKwkJCXJjID0gU01CMl9zZXRfaW5mb19pbml0KHRjb24sICZycXN0W251bV9ycXN0XSwKKwkJCQlDT01QT1VORF9GSUQsCisJCQkJQ09NUE9VTkRfRklELCBjdXJyZW50LT50Z2lkLAorCQkJCUZJTEVfQkFTSUNfSU5GT1JNQVRJT04sCisJCQkJU01CMl9PX0lORk9fRklMRSwgMCwgZGF0YSwgc2l6ZSk7CisJCQlpZiAoIXJjKSB7CisJCQkJc21iMl9zZXRfbmV4dF9jb21tYW5kKHRjb24sICZycXN0W251bV9ycXN0XSk7CisJCQkJc21iMl9zZXRfcmVsYXRlZCgmcnFzdFtudW1fcnFzdF0pOworCQkJfQorCQl9CisKIAkJaWYgKHJjKQogCQkJZ290byBmaW5pc2hlZDsKLQkJc21iMl9zZXRfbmV4dF9jb21tYW5kKHRjb24sICZycXN0W251bV9ycXN0XSk7Ci0JCXNtYjJfc2V0X3JlbGF0ZWQoJnJxc3RbbnVtX3Jxc3QrK10pOworCQludW1fcnFzdCsrOwogCQl0cmFjZV9zbWIzX3NldF9pbmZvX2NvbXBvdW5kX2VudGVyKHhpZCwgc2VzLT5TdWlkLCB0Y29uLT50aWQsCiAJCQkJCQkgICBmdWxsX3BhdGgpOwogCQlicmVhazsKQEAgLTIxMCwxNCArMjQ5LDI1IEBAIHNtYjJfY29tcG91bmRfb3AoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAkJc2l6ZVsxXSA9IGxlbiArIDIgLyogbnVsbCAqLzsKIAkJZGF0YVsxXSA9IChfX2xlMTYgKilwdHI7CiAKLQkJcmMgPSBTTUIyX3NldF9pbmZvX2luaXQodGNvbiwgJnJxc3RbbnVtX3Jxc3RdLCBDT01QT1VORF9GSUQsCi0JCQkJCUNPTVBPVU5EX0ZJRCwgY3VycmVudC0+dGdpZCwKLQkJCQkJRklMRV9SRU5BTUVfSU5GT1JNQVRJT04sCisJCWlmIChjZmlsZSkKKwkJCXJjID0gU01CMl9zZXRfaW5mb19pbml0KHRjb24sICZycXN0W251bV9ycXN0XSwKKwkJCQkJCWNmaWxlLT5maWQucGVyc2lzdGVudF9maWQsCisJCQkJCQljZmlsZS0+ZmlkLnZvbGF0aWxlX2ZpZCwKKwkJCQkJY3VycmVudC0+dGdpZCwgRklMRV9SRU5BTUVfSU5GT1JNQVRJT04sCiAJCQkJCVNNQjJfT19JTkZPX0ZJTEUsIDAsIGRhdGEsIHNpemUpOworCQllbHNlIHsKKwkJCXJjID0gU01CMl9zZXRfaW5mb19pbml0KHRjb24sICZycXN0W251bV9ycXN0XSwKKwkJCQkJQ09NUE9VTkRfRklELCBDT01QT1VORF9GSUQsCisJCQkJCWN1cnJlbnQtPnRnaWQsIEZJTEVfUkVOQU1FX0lORk9STUFUSU9OLAorCQkJCQlTTUIyX09fSU5GT19GSUxFLCAwLCBkYXRhLCBzaXplKTsKKwkJCWlmICghcmMpIHsKKwkJCQlzbWIyX3NldF9uZXh0X2NvbW1hbmQodGNvbiwgJnJxc3RbbnVtX3Jxc3RdKTsKKwkJCQlzbWIyX3NldF9yZWxhdGVkKCZycXN0W251bV9ycXN0XSk7CisJCQl9CisJCX0KIAkJaWYgKHJjKQogCQkJZ290byBmaW5pc2hlZDsKLQkJc21iMl9zZXRfbmV4dF9jb21tYW5kKHRjb24sICZycXN0W251bV9ycXN0XSk7Ci0JCXNtYjJfc2V0X3JlbGF0ZWQoJnJxc3RbbnVtX3Jxc3QrK10pOworCQludW1fcnFzdCsrOwogCQl0cmFjZV9zbWIzX3JlbmFtZV9lbnRlcih4aWQsIHNlcy0+U3VpZCwgdGNvbi0+dGlkLCBmdWxsX3BhdGgpOwogCQlicmVhazsKIAljYXNlIFNNQjJfT1BfSEFSRExJTks6CkBAIC0yNTQsMjEgKzMwNCw0MyBAQCBzbWIyX2NvbXBvdW5kX29wKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJaWYgKHJjKQogCQlnb3RvIGZpbmlzaGVkOwogCisJLyogV2UgYWxyZWFkeSBoYXZlIGEgaGFuZGxlIHNvIHdlIGNhbiBza2lwIHRoZSBjbG9zZSAqLworCWlmIChjZmlsZSkKKwkJZ290byBhZnRlcl9jbG9zZTsKIAkvKiBDbG9zZSAqLwogCW1lbXNldCgmY2xvc2VfaW92LCAwLCBzaXplb2YoY2xvc2VfaW92KSk7CiAJcnFzdFtudW1fcnFzdF0ucnFfaW92ID0gY2xvc2VfaW92OwogCXJxc3RbbnVtX3Jxc3RdLnJxX252ZWMgPSAxOwogCXJjID0gU01CMl9jbG9zZV9pbml0KHRjb24sICZycXN0W251bV9ycXN0XSwgQ09NUE9VTkRfRklELAogCQkJICAgICBDT01QT1VORF9GSUQpOwotCXNtYjJfc2V0X3JlbGF0ZWQoJnJxc3RbbnVtX3Jxc3QrK10pOworCXNtYjJfc2V0X3JlbGF0ZWQoJnJxc3RbbnVtX3Jxc3RdKTsKIAlpZiAocmMpCiAJCWdvdG8gZmluaXNoZWQ7CisgYWZ0ZXJfY2xvc2U6CisJbnVtX3Jxc3QrKzsKIAotCXJjID0gY29tcG91bmRfc2VuZF9yZWN2KHhpZCwgc2VzLCBmbGFncywgbnVtX3Jxc3QsIHJxc3QsCi0JCQkJcmVzcF9idWZ0eXBlLCByc3BfaW92KTsKKwlpZiAoY2ZpbGUpIHsKKwkJY2lmc0ZpbGVJbmZvX3B1dChjZmlsZSk7CisJCWNmaWxlID0gTlVMTDsKKwkJcmMgPSBjb21wb3VuZF9zZW5kX3JlY3YoeGlkLCBzZXMsIGZsYWdzLCBudW1fcnFzdCAtIDIsCisJCQkJCSZycXN0WzFdLCAmcmVzcF9idWZ0eXBlWzFdLAorCQkJCQkmcnNwX2lvdlsxXSk7CisJfSBlbHNlCisJCXJjID0gY29tcG91bmRfc2VuZF9yZWN2KHhpZCwgc2VzLCBmbGFncywgbnVtX3Jxc3QsCisJCQkJCXJxc3QsIHJlc3BfYnVmdHlwZSwKKwkJCQkJcnNwX2lvdik7CiAKICBmaW5pc2hlZDoKKwlpZiAoY2ZpbGUpCisJCWNpZnNGaWxlSW5mb19wdXQoY2ZpbGUpOworCiAJU01CMl9vcGVuX2ZyZWUoJnJxc3RbMF0pOworCWlmIChyYyA9PSAtRVJFTUNIRykgeworCQlwcmludGtfb25jZShLRVJOX1dBUk5JTkcgInNlcnZlciBzaGFyZSAlcyBkZWxldGVkXG4iLAorCQkJICAgIHRjb24tPnRyZWVOYW1lKTsKKwkJdGNvbi0+bmVlZF9yZWNvbm5lY3QgPSB0cnVlOworCX0KKwogCXN3aXRjaCAoY29tbWFuZCkgewogCWNhc2UgU01CMl9PUF9RVUVSWV9JTkZPOgogCQlpZiAocmMgPT0gMCkgewpAQCAtMzcxLDYgKzQ0Myw3IEBAIHNtYjJfcXVlcnlfcGF0aF9pbmZvKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJX191MzIgY3JlYXRlX29wdGlvbnMgPSAwOwogCXN0cnVjdCBjaWZzX2ZpZCBmaWQ7CiAJYm9vbCBub19jYWNoZWRfb3BlbiA9IHRjb24tPm5vaGFuZGxlY2FjaGU7CisJc3RydWN0IGNpZnNGaWxlSW5mbyAqY2ZpbGU7CiAKIAkqYWRqdXN0X3R6ID0gZmFsc2U7CiAJKnN5bWxpbmsgPSBmYWxzZTsKQEAgLTQwMiw5ICs0NzUsMTAgQEAgc21iMl9xdWVyeV9wYXRoX2luZm8oY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAlpZiAoYmFja3VwX2NyZWQoY2lmc19zYikpCiAJCWNyZWF0ZV9vcHRpb25zIHw9IENSRUFURV9PUEVOX0JBQ0tVUF9JTlRFTlQ7CiAKKwljaWZzX2dldF9yZWFkYWJsZV9wYXRoKHRjb24sIGZ1bGxfcGF0aCwgJmNmaWxlKTsKIAlyYyA9IHNtYjJfY29tcG91bmRfb3AoeGlkLCB0Y29uLCBjaWZzX3NiLCBmdWxsX3BhdGgsCiAJCQkgICAgICBGSUxFX1JFQURfQVRUUklCVVRFUywgRklMRV9PUEVOLCBjcmVhdGVfb3B0aW9ucywKLQkJCSAgICAgIHNtYjJfZGF0YSwgU01CMl9PUF9RVUVSWV9JTkZPKTsKKwkJCSAgICAgIHNtYjJfZGF0YSwgU01CMl9PUF9RVUVSWV9JTkZPLCBjZmlsZSk7CiAJaWYgKHJjID09IC1FT1BOT1RTVVBQKSB7CiAJCSpzeW1saW5rID0gdHJ1ZTsKIAkJY3JlYXRlX29wdGlvbnMgfD0gT1BFTl9SRVBBUlNFX1BPSU5UOwpAQCAtNDEzLDcgKzQ4Nyw3IEBAIHNtYjJfcXVlcnlfcGF0aF9pbmZvKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJCXJjID0gc21iMl9jb21wb3VuZF9vcCh4aWQsIHRjb24sIGNpZnNfc2IsIGZ1bGxfcGF0aCwKIAkJCQkgICAgICBGSUxFX1JFQURfQVRUUklCVVRFUywgRklMRV9PUEVOLAogCQkJCSAgICAgIGNyZWF0ZV9vcHRpb25zLCBzbWIyX2RhdGEsCi0JCQkJICAgICAgU01CMl9PUF9RVUVSWV9JTkZPKTsKKwkJCQkgICAgICBTTUIyX09QX1FVRVJZX0lORk8sIE5VTEwpOwogCX0KIAlpZiAocmMpCiAJCWdvdG8gb3V0OwpAQCAtNDMwLDcgKzUwNCw3IEBAIHNtYjJfbWtkaXIoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwgY29uc3QgY2hhciAqbmFtZSwKIHsKIAlyZXR1cm4gc21iMl9jb21wb3VuZF9vcCh4aWQsIHRjb24sIGNpZnNfc2IsIG5hbWUsCiAJCQkJRklMRV9XUklURV9BVFRSSUJVVEVTLCBGSUxFX0NSRUFURSwKLQkJCQlDUkVBVEVfTk9UX0ZJTEUsIE5VTEwsIFNNQjJfT1BfTUtESVIpOworCQkJCUNSRUFURV9OT1RfRklMRSwgTlVMTCwgU01CMl9PUF9NS0RJUiwgTlVMTCk7CiB9CiAKIHZvaWQKQEAgLTQ0MCw2ICs1MTQsNyBAQCBzbWIyX21rZGlyX3NldGluZm8oc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqbmFtZSwKIHsKIAlGSUxFX0JBU0lDX0lORk8gZGF0YTsKIAlzdHJ1Y3QgY2lmc0lub2RlSW5mbyAqY2lmc19pOworCXN0cnVjdCBjaWZzRmlsZUluZm8gKmNmaWxlOwogCXUzMiBkb3NhdHRyczsKIAlpbnQgdG1wcmM7CiAKQEAgLTQ0Nyw5ICs1MjIsMTEgQEAgc21iMl9ta2Rpcl9zZXRpbmZvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKm5hbWUsCiAJY2lmc19pID0gQ0lGU19JKGlub2RlKTsKIAlkb3NhdHRycyA9IGNpZnNfaS0+Y2lmc0F0dHJzIHwgQVRUUl9SRUFET05MWTsKIAlkYXRhLkF0dHJpYnV0ZXMgPSBjcHVfdG9fbGUzMihkb3NhdHRycyk7CisJY2lmc19nZXRfd3JpdGFibGVfcGF0aCh0Y29uLCBuYW1lLCAmY2ZpbGUpOwogCXRtcHJjID0gc21iMl9jb21wb3VuZF9vcCh4aWQsIHRjb24sIGNpZnNfc2IsIG5hbWUsCiAJCQkJIEZJTEVfV1JJVEVfQVRUUklCVVRFUywgRklMRV9DUkVBVEUsCi0JCQkJIENSRUFURV9OT1RfRklMRSwgJmRhdGEsIFNNQjJfT1BfU0VUX0lORk8pOworCQkJCSBDUkVBVEVfTk9UX0ZJTEUsICZkYXRhLCBTTUIyX09QX1NFVF9JTkZPLAorCQkJCSBjZmlsZSk7CiAJaWYgKHRtcHJjID09IDApCiAJCWNpZnNfaS0+Y2lmc0F0dHJzID0gZG9zYXR0cnM7CiB9CkBAIC00NjAsNyArNTM3LDcgQEAgc21iMl9ybWRpcihjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLCBjb25zdCBjaGFyICpuYW1lLAogewogCXJldHVybiBzbWIyX2NvbXBvdW5kX29wKHhpZCwgdGNvbiwgY2lmc19zYiwgbmFtZSwgREVMRVRFLCBGSUxFX09QRU4sCiAJCQkJQ1JFQVRFX05PVF9GSUxFLAotCQkJCU5VTEwsIFNNQjJfT1BfUk1ESVIpOworCQkJCU5VTEwsIFNNQjJfT1BfUk1ESVIsIE5VTEwpOwogfQogCiBpbnQKQEAgLTQ2OSwxMyArNTQ2LDE0IEBAIHNtYjJfdW5saW5rKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sIGNvbnN0IGNoYXIgKm5hbWUsCiB7CiAJcmV0dXJuIHNtYjJfY29tcG91bmRfb3AoeGlkLCB0Y29uLCBjaWZzX3NiLCBuYW1lLCBERUxFVEUsIEZJTEVfT1BFTiwKIAkJCQlDUkVBVEVfREVMRVRFX09OX0NMT1NFIHwgT1BFTl9SRVBBUlNFX1BPSU5ULAotCQkJCU5VTEwsIFNNQjJfT1BfREVMRVRFKTsKKwkJCQlOVUxMLCBTTUIyX09QX0RFTEVURSwgTlVMTCk7CiB9CiAKIHN0YXRpYyBpbnQKIHNtYjJfc2V0X3BhdGhfYXR0cihjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAogCQkgICBjb25zdCBjaGFyICpmcm9tX25hbWUsIGNvbnN0IGNoYXIgKnRvX25hbWUsCi0JCSAgIHN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2IsIF9fdTMyIGFjY2VzcywgaW50IGNvbW1hbmQpCisJCSAgIHN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2IsIF9fdTMyIGFjY2VzcywgaW50IGNvbW1hbmQsCisJCSAgIHN0cnVjdCBjaWZzRmlsZUluZm8gKmNmaWxlKQogewogCV9fbGUxNiAqc21iMl90b19uYW1lID0gTlVMTDsKIAlpbnQgcmM7CkBAIC00ODYsNyArNTY0LDcgQEAgc21iMl9zZXRfcGF0aF9hdHRyKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJCWdvdG8gc21iMl9yZW5hbWVfcGF0aDsKIAl9CiAJcmMgPSBzbWIyX2NvbXBvdW5kX29wKHhpZCwgdGNvbiwgY2lmc19zYiwgZnJvbV9uYW1lLCBhY2Nlc3MsCi0JCQkgICAgICBGSUxFX09QRU4sIDAsIHNtYjJfdG9fbmFtZSwgY29tbWFuZCk7CisJCQkgICAgICBGSUxFX09QRU4sIDAsIHNtYjJfdG9fbmFtZSwgY29tbWFuZCwgY2ZpbGUpOwogc21iMl9yZW5hbWVfcGF0aDoKIAlrZnJlZShzbWIyX3RvX25hbWUpOwogCXJldHVybiByYzsKQEAgLTQ5Nyw4ICs1NzUsMTIgQEAgc21iMl9yZW5hbWVfcGF0aChjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAogCQkgY29uc3QgY2hhciAqZnJvbV9uYW1lLCBjb25zdCBjaGFyICp0b19uYW1lLAogCQkgc3RydWN0IGNpZnNfc2JfaW5mbyAqY2lmc19zYikKIHsKLQlyZXR1cm4gc21iMl9zZXRfcGF0aF9hdHRyKHhpZCwgdGNvbiwgZnJvbV9uYW1lLCB0b19uYW1lLCBjaWZzX3NiLAotCQkJCSAgREVMRVRFLCBTTUIyX09QX1JFTkFNRSk7CisJc3RydWN0IGNpZnNGaWxlSW5mbyAqY2ZpbGU7CisKKwljaWZzX2dldF93cml0YWJsZV9wYXRoKHRjb24sIGZyb21fbmFtZSwgJmNmaWxlKTsKKworCXJldHVybiBzbWIyX3NldF9wYXRoX2F0dHIoeGlkLCB0Y29uLCBmcm9tX25hbWUsIHRvX25hbWUsCisJCQkJICBjaWZzX3NiLCBERUxFVEUsIFNNQjJfT1BfUkVOQU1FLCBjZmlsZSk7CiB9CiAKIGludApAQCAtNTA3LDcgKzU4OSw4IEBAIHNtYjJfY3JlYXRlX2hhcmRsaW5rKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJCSAgICAgc3RydWN0IGNpZnNfc2JfaW5mbyAqY2lmc19zYikKIHsKIAlyZXR1cm4gc21iMl9zZXRfcGF0aF9hdHRyKHhpZCwgdGNvbiwgZnJvbV9uYW1lLCB0b19uYW1lLCBjaWZzX3NiLAotCQkJCSAgRklMRV9SRUFEX0FUVFJJQlVURVMsIFNNQjJfT1BfSEFSRExJTkspOworCQkJCSAgRklMRV9SRUFEX0FUVFJJQlVURVMsIFNNQjJfT1BfSEFSRExJTkssCisJCQkJICBOVUxMKTsKIH0KIAogaW50CkBAIC01MTksNyArNjAyLDcgQEAgc21iMl9zZXRfcGF0aF9zaXplKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAKIAlyZXR1cm4gc21iMl9jb21wb3VuZF9vcCh4aWQsIHRjb24sIGNpZnNfc2IsIGZ1bGxfcGF0aCwKIAkJCQlGSUxFX1dSSVRFX0RBVEEsIEZJTEVfT1BFTiwgMCwgJmVvZiwKLQkJCQlTTUIyX09QX1NFVF9FT0YpOworCQkJCVNNQjJfT1BfU0VUX0VPRiwgTlVMTCk7CiB9CiAKIGludApAQCAtNTQxLDcgKzYyNCw3IEBAIHNtYjJfc2V0X2ZpbGVfaW5mbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpmdWxsX3BhdGgsCiAKIAlyYyA9IHNtYjJfY29tcG91bmRfb3AoeGlkLCB0bGlua190Y29uKHRsaW5rKSwgY2lmc19zYiwgZnVsbF9wYXRoLAogCQkJICAgICAgRklMRV9XUklURV9BVFRSSUJVVEVTLCBGSUxFX09QRU4sIDAsIGJ1ZiwKLQkJCSAgICAgIFNNQjJfT1BfU0VUX0lORk8pOworCQkJICAgICAgU01CMl9PUF9TRVRfSU5GTywgTlVMTCk7CiAJY2lmc19wdXRfdGxpbmsodGxpbmspOwogCXJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvc21iMm1hcGVycm9yLmMgYi9mcy9jaWZzL3NtYjJtYXBlcnJvci5jCmluZGV4IDgyYWRlMTYuLjdmZGUzNzcgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvc21iMm1hcGVycm9yLmMKKysrIGIvZnMvY2lmcy9zbWIybWFwZXJyb3IuYwpAQCAtNTExLDcgKzUxMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RhdHVzX3RvX3Bvc2l4X2Vycm9yIHNtYjJfZXJyb3JfbWFwX3RhYmxlW10gPSB7CiAJe1NUQVRVU19QUklOVF9RVUVVRV9GVUxMLCAtRUlPLCAiU1RBVFVTX1BSSU5UX1FVRVVFX0ZVTEwifSwKIAl7U1RBVFVTX05PX1NQT09MX1NQQUNFLCAtRUlPLCAiU1RBVFVTX05PX1NQT09MX1NQQUNFIn0sCiAJe1NUQVRVU19QUklOVF9DQU5DRUxMRUQsIC1FSU8sICJTVEFUVVNfUFJJTlRfQ0FOQ0VMTEVEIn0sCi0Je1NUQVRVU19ORVRXT1JLX05BTUVfREVMRVRFRCwgLUVJTywgIlNUQVRVU19ORVRXT1JLX05BTUVfREVMRVRFRCJ9LAorCXtTVEFUVVNfTkVUV09SS19OQU1FX0RFTEVURUQsIC1FUkVNQ0hHLCAiU1RBVFVTX05FVFdPUktfTkFNRV9ERUxFVEVEIn0sCiAJe1NUQVRVU19ORVRXT1JLX0FDQ0VTU19ERU5JRUQsIC1FQUNDRVMsICJTVEFUVVNfTkVUV09SS19BQ0NFU1NfREVOSUVEIn0sCiAJe1NUQVRVU19CQURfREVWSUNFX1RZUEUsIC1FSU8sICJTVEFUVVNfQkFEX0RFVklDRV9UWVBFIn0sCiAJe1NUQVRVU19CQURfTkVUV09SS19OQU1FLCAtRU5PRU5ULCAiU1RBVFVTX0JBRF9ORVRXT1JLX05BTUUifSwKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvc21iMm9wcy5jIGIvZnMvY2lmcy9zbWIyb3BzLmMKaW5kZXggNjRhNTg2NC4uZWFlZDE4MCAxMDA2NDQKLS0tIGEvZnMvY2lmcy9zbWIyb3BzLmMKKysrIGIvZnMvY2lmcy9zbWIyb3BzLmMKQEAgLTEwOSwxMCArMTA5LDEwIEBAIHNtYjJfYWRkX2NyZWRpdHMoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyLAogCQkvKiBjaGFuZ2VfY29uZiBoYXNuJ3QgYmVlbiBleGVjdXRlZCAqLwogCQlicmVhazsKIAljYXNlIDA6Ci0JCWNpZnNfZGJnKFZGUywgIlBvc3NpYmxlIGNsaWVudCBvciBzZXJ2ZXIgYnVnIC0gemVybyBjcmVkaXRzXG4iKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIlBvc3NpYmxlIGNsaWVudCBvciBzZXJ2ZXIgYnVnIC0gemVybyBjcmVkaXRzXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSAxOgotCQljaWZzX2RiZyhWRlMsICJkaXNhYmxpbmcgZWNob2VzIGFuZCBvcGxvY2tzXG4iKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgImRpc2FibGluZyBlY2hvZXMgYW5kIG9wbG9ja3NcbiIpOwogCQlicmVhazsKIAljYXNlIDI6CiAJCWNpZnNfZGJnKEZZSSwgImRpc2FibGluZyBvcGxvY2tzXG4iKTsKQEAgLTIwMyw2ICsyMDMsOCBAQCBzbWIyX3dhaXRfbXR1X2NyZWRpdHMoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyLCB1bnNpZ25lZCBpbnQgc2l6ZSwKIAkJCWNyZWRpdHMtPmluc3RhbmNlID0gc2VydmVyLT5yZWNvbm5lY3RfaW5zdGFuY2U7CiAJCQlzZXJ2ZXItPmNyZWRpdHMgLT0gY3JlZGl0cy0+dmFsdWU7CiAJCQlzZXJ2ZXItPmluX2ZsaWdodCsrOworCQkJaWYgKHNlcnZlci0+aW5fZmxpZ2h0ID4gc2VydmVyLT5tYXhfaW5fZmxpZ2h0KQorCQkJCXNlcnZlci0+bWF4X2luX2ZsaWdodCA9IHNlcnZlci0+aW5fZmxpZ2h0OwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0yMzAsNyArMjMyLDcgQEAgc21iMl9hZGp1c3RfY3JlZGl0cyhzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsCiAKIAlpZiAoc2VydmVyLT5yZWNvbm5lY3RfaW5zdGFuY2UgIT0gY3JlZGl0cy0+aW5zdGFuY2UpIHsKIAkJc3Bpbl91bmxvY2soJnNlcnZlci0+cmVxX2xvY2spOwotCQljaWZzX2RiZyhWRlMsICJ0cnlpbmcgdG8gcmV0dXJuICVkIGNyZWRpdHMgdG8gb2xkIHNlc3Npb25cbiIsCisJCWNpZnNfc2VydmVyX2RiZyhWRlMsICJ0cnlpbmcgdG8gcmV0dXJuICVkIGNyZWRpdHMgdG8gb2xkIHNlc3Npb25cbiIsCiAJCQkgY3JlZGl0cy0+dmFsdWUgLSBuZXdfdmFsKTsKIAkJcmV0dXJuIC1FQUdBSU47CiAJfQpAQCAtMjcwLDcgKzI3Miw3IEBAIHNtYjJfZmluZF9taWQoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyLCBjaGFyICpidWYpCiAJX191NjQgd2lyZV9taWQgPSBsZTY0X3RvX2NwdShzaGRyLT5NZXNzYWdlSWQpOwogCiAJaWYgKHNoZHItPlByb3RvY29sSWQgPT0gU01CMl9UUkFOU0ZPUk1fUFJPVE9fTlVNKSB7Ci0JCWNpZnNfZGJnKFZGUywgIkVuY3J5cHRlZCBmcmFtZSBwYXJzaW5nIG5vdCBzdXBwb3J0ZWQgeWV0XG4iKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIkVuY3J5cHRlZCBmcmFtZSBwYXJzaW5nIG5vdCBzdXBwb3J0ZWQgeWV0XG4iKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQogCkBAIC0yOTQsMTAgKzI5NiwxMCBAQCBzbWIyX2R1bXBfZGV0YWlsKHZvaWQgKmJ1Ziwgc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyKQogI2lmZGVmIENPTkZJR19DSUZTX0RFQlVHMgogCXN0cnVjdCBzbWIyX3N5bmNfaGRyICpzaGRyID0gKHN0cnVjdCBzbWIyX3N5bmNfaGRyICopYnVmOwogCi0JY2lmc19kYmcoVkZTLCAiQ21kOiAlZCBFcnI6IDB4JXggRmxhZ3M6IDB4JXggTWlkOiAlbGx1IFBpZDogJWRcbiIsCisJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIkNtZDogJWQgRXJyOiAweCV4IEZsYWdzOiAweCV4IE1pZDogJWxsdSBQaWQ6ICVkXG4iLAogCQkgc2hkci0+Q29tbWFuZCwgc2hkci0+U3RhdHVzLCBzaGRyLT5GbGFncywgc2hkci0+TWVzc2FnZUlkLAogCQkgc2hkci0+UHJvY2Vzc0lkKTsKLQljaWZzX2RiZyhWRlMsICJzbWIgYnVmICVwIGxlbiAldVxuIiwgYnVmLAorCWNpZnNfc2VydmVyX2RiZyhWRlMsICJzbWIgYnVmICVwIGxlbiAldVxuIiwgYnVmLAogCQkgc2VydmVyLT5vcHMtPmNhbGNfc21iX3NpemUoYnVmLCBzZXJ2ZXIpKTsKICNlbmRpZgogfQpAQCAtNTc2LDcgKzU3OCw3IEBAIFNNQjNfcmVxdWVzdF9pbnRlcmZhY2VzKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24pCiAJCQkgInNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IHF1ZXJ5IG5ldHdvcmsgaW50ZXJmYWNlc1xuIik7CiAJCWdvdG8gb3V0OwogCX0gZWxzZSBpZiAocmMgIT0gMCkgewotCQljaWZzX2RiZyhWRlMsICJlcnJvciAlZCBvbiBpb2N0bCB0byBnZXQgaW50ZXJmYWNlIGxpc3RcbiIsIHJjKTsKKwkJY2lmc190Y29uX2RiZyhWRlMsICJlcnJvciAlZCBvbiBpb2N0bCB0byBnZXQgaW50ZXJmYWNlIGxpc3RcbiIsIHJjKTsKIAkJZ290byBvdXQ7CiAJfQogCkBAIC02NTYsNiArNjU4LDE1IEBAIGludCBvcGVuX3Nocm9vdCh1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLCBzdHJ1Y3QgY2lmc19maWQgKnBmaWQpCiAJCXJldHVybiAwOwogCX0KIAorCS8qCisJICogV2UgZG8gbm90IGhvbGQgdGhlIGxvY2sgZm9yIHRoZSBvcGVuIGJlY2F1c2UgaW4gY2FzZQorCSAqIFNNQjJfb3BlbiBuZWVkcyB0byByZWNvbm5lY3QsIGl0IHdpbGwgZW5kIHVwIGNhbGxpbmcKKwkgKiBjaWZzX21hcmtfb3Blbl9maWxlc19pbnZhbGlkKCkgd2hpY2ggdGFrZXMgdGhlIGxvY2sgYWdhaW4KKwkgKiB0aHVzIGNhdXNpbmcgYSBkZWFkbG9jaworCSAqLworCisJbXV0ZXhfdW5sb2NrKCZ0Y29uLT5jcmZpZC5maWRfbXV0ZXgpOworCiAJaWYgKHNtYjNfZW5jcnlwdGlvbl9yZXF1aXJlZCh0Y29uKSkKIAkJZmxhZ3MgfD0gQ0lGU19UUkFOU0ZPUk1fUkVROwogCkBAIC02NzcsNyArNjg4LDcgQEAgaW50IG9wZW5fc2hyb290KHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sIHN0cnVjdCBjaWZzX2ZpZCAqcGZpZCkKIAogCXJjID0gU01CMl9vcGVuX2luaXQodGNvbiwgJnJxc3RbMF0sICZvcGxvY2ssICZvcGFybXMsICZ1dGYxNl9wYXRoKTsKIAlpZiAocmMpCi0JCWdvdG8gb3Nocl9leGl0OworCQlnb3RvIG9zaHJfZnJlZTsKIAlzbWIyX3NldF9uZXh0X2NvbW1hbmQodGNvbiwgJnJxc3RbMF0pOwogCiAJbWVtc2V0KCZxaV9pb3YsIDAsIHNpemVvZihxaV9pb3YpKTsKQEAgLTY5MCwxOCArNzAxLDEwIEBAIGludCBvcGVuX3Nocm9vdCh1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLCBzdHJ1Y3QgY2lmc19maWQgKnBmaWQpCiAJCQkJICBzaXplb2Yoc3RydWN0IHNtYjJfZmlsZV9hbGxfaW5mbykgKwogCQkJCSAgUEFUSF9NQVggKiAyLCAwLCBOVUxMKTsKIAlpZiAocmMpCi0JCWdvdG8gb3Nocl9leGl0OworCQlnb3RvIG9zaHJfZnJlZTsKIAogCXNtYjJfc2V0X3JlbGF0ZWQoJnJxc3RbMV0pOwogCi0JLyoKLQkgKiBXZSBkbyBub3QgaG9sZCB0aGUgbG9jayBmb3IgdGhlIG9wZW4gYmVjYXVzZSBpbiBjYXNlCi0JICogU01CMl9vcGVuIG5lZWRzIHRvIHJlY29ubmVjdCwgaXQgd2lsbCBlbmQgdXAgY2FsbGluZwotCSAqIGNpZnNfbWFya19vcGVuX2ZpbGVzX2ludmFsaWQoKSB3aGljaCB0YWtlcyB0aGUgbG9jayBhZ2FpbgotCSAqIHRodXMgY2F1c2luZyBhIGRlYWRsb2NrCi0JICovCi0KLQltdXRleF91bmxvY2soJnRjb24tPmNyZmlkLmZpZF9tdXRleCk7CiAJcmMgPSBjb21wb3VuZF9zZW5kX3JlY3YoeGlkLCBzZXMsIGZsYWdzLCAyLCBycXN0LAogCQkJCXJlc3BfYnVmdHlwZSwgcnNwX2lvdik7CiAJbXV0ZXhfbG9jaygmdGNvbi0+Y3JmaWQuZmlkX211dGV4KTsKQEAgLTczOSw4ICs3NDIsMTQgQEAgaW50IG9wZW5fc2hyb290KHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sIHN0cnVjdCBjaWZzX2ZpZCAqcGZpZCkKIAogCS8qIENhY2hlZCByb290IGlzIHN0aWxsIGludmFsaWQsIGNvbnRpbnVlIG5vcm1hbHkgKi8KIAotCWlmIChyYykKKwlpZiAocmMpIHsKKwkJaWYgKHJjID09IC1FUkVNQ0hHKSB7CisJCQl0Y29uLT5uZWVkX3JlY29ubmVjdCA9IHRydWU7CisJCQlwcmludGtfb25jZShLRVJOX1dBUk5JTkcgInNlcnZlciBzaGFyZSAlcyBkZWxldGVkXG4iLAorCQkJCSAgICB0Y29uLT50cmVlTmFtZSk7CisJCX0KIAkJZ290byBvc2hyX2V4aXQ7CisJfQogCiAJb19yc3AgPSAoc3RydWN0IHNtYjJfY3JlYXRlX3JzcCAqKXJzcF9pb3ZbMF0uaW92X2Jhc2U7CiAJb3Bhcm1zLmZpZC0+cGVyc2lzdGVudF9maWQgPSBvX3JzcC0+UGVyc2lzdGVudEZpbGVJZDsKQEAgLTEzMzAsMTEgKzEzMzksMTEgQEAgU01CMl9yZXF1ZXN0X3Jlc19rZXkoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAkJCShjaGFyICoqKSZyZXNfa2V5LCAmcmV0X2RhdGFfbGVuKTsKIAogCWlmIChyYykgewotCQljaWZzX2RiZyhWRlMsICJyZWZjcHkgaW9jdGwgZXJyb3IgJWQgZ2V0dGluZyByZXN1bWUga2V5XG4iLCByYyk7CisJCWNpZnNfdGNvbl9kYmcoVkZTLCAicmVmY3B5IGlvY3RsIGVycm9yICVkIGdldHRpbmcgcmVzdW1lIGtleVxuIiwgcmMpOwogCQlnb3RvIHJlcV9yZXNfa2V5X2V4aXQ7CiAJfQogCWlmIChyZXRfZGF0YV9sZW4gPCBzaXplb2Yoc3RydWN0IHJlc3VtZV9rZXlfcmVxKSkgewotCQljaWZzX2RiZyhWRlMsICJJbnZhbGlkIHJlZmNvcHkgcmVzdW1lIGtleSBsZW5ndGhcbiIpOworCQljaWZzX3Rjb25fZGJnKFZGUywgIkludmFsaWQgcmVmY29weSByZXN1bWUga2V5IGxlbmd0aFxuIik7CiAJCXJjID0gLUVJTlZBTDsKIAkJZ290byByZXFfcmVzX2tleV9leGl0OwogCX0KQEAgLTEzNjksNyArMTM3OCwxMCBAQCBzbWIyX2lvY3RsX3F1ZXJ5X2luZm8oY29uc3QgdW5zaWduZWQgaW50IHhpZCwKIAlzdHJ1Y3QgY2lmc19maWQgZmlkOwogCXN0cnVjdCBrdmVjIHFpX2lvdlsxXTsKIAlzdHJ1Y3Qga3ZlYyBpb19pb3ZbU01CMl9JT0NUTF9JT1ZfU0laRV07CisJc3RydWN0IGt2ZWMgc2lfaW92W1NNQjJfU0VUX0lORk9fSU9WX1NJWkVdOwogCXN0cnVjdCBrdmVjIGNsb3NlX2lvdlsxXTsKKwl1bnNpZ25lZCBpbnQgc2l6ZVsyXTsKKwl2b2lkICpkYXRhWzJdOwogCiAJbWVtc2V0KHJxc3QsIDAsIHNpemVvZihycXN0KSk7CiAJcmVzcF9idWZ0eXBlWzBdID0gcmVzcF9idWZ0eXBlWzFdID0gcmVzcF9idWZ0eXBlWzJdID0gQ0lGU19OT19CVUZGRVI7CkBAIC0xNDA0LDcgKzE0MTYsNiBAQCBzbWIyX2lvY3RsX3F1ZXJ5X2luZm8oY29uc3QgdW5zaWduZWQgaW50IHhpZCwKIAogCW1lbXNldCgmb3Bhcm1zLCAwLCBzaXplb2Yob3Bhcm1zKSk7CiAJb3Bhcm1zLnRjb24gPSB0Y29uOwotCW9wYXJtcy5kZXNpcmVkX2FjY2VzcyA9IEZJTEVfUkVBRF9BVFRSSUJVVEVTIHwgUkVBRF9DT05UUk9MOwogCW9wYXJtcy5kaXNwb3NpdGlvbiA9IEZJTEVfT1BFTjsKIAlpZiAoaXNfZGlyKQogCQlvcGFybXMuY3JlYXRlX29wdGlvbnMgPSBDUkVBVEVfTk9UX0ZJTEU7CkBAIC0xNDEzLDkgKzE0MjQsNiBAQCBzbWIyX2lvY3RsX3F1ZXJ5X2luZm8oY29uc3QgdW5zaWduZWQgaW50IHhpZCwKIAlvcGFybXMuZmlkID0gJmZpZDsKIAlvcGFybXMucmVjb25uZWN0ID0gZmFsc2U7CiAKLQkvKgotCSAqIEZTQ1RMIGNvZGVzIGVuY29kZSB0aGUgc3BlY2lhbCBhY2Nlc3MgdGhleSBuZWVkIGluIHRoZSBmc2N0bCBjb2RlLgotCSAqLwogCWlmIChxaS5mbGFncyAmIFBBU1NUSFJVX0ZTQ1RMKSB7CiAJCXN3aXRjaCAocWkuaW5mb190eXBlICYgRlNDVExfREVWSUNFX0FDQ0VTU19NQVNLKSB7CiAJCWNhc2UgRlNDVExfREVWSUNFX0FDQ0VTU19GSUxFX1JFQURfV1JJVEVfQUNDRVNTOgpAQCAtMTQzMSw2ICsxNDM5LDEwIEBAIHNtYjJfaW9jdGxfcXVlcnlfaW5mbyhjb25zdCB1bnNpZ25lZCBpbnQgeGlkLAogCQkJb3Bhcm1zLmRlc2lyZWRfYWNjZXNzID0gR0VORVJJQ19XUklURTsKIAkJCWJyZWFrOwogCQl9CisJfSBlbHNlIGlmIChxaS5mbGFncyAmIFBBU1NUSFJVX1NFVF9JTkZPKSB7CisJCW9wYXJtcy5kZXNpcmVkX2FjY2VzcyA9IEdFTkVSSUNfV1JJVEU7CisJfSBlbHNlIHsKKwkJb3Bhcm1zLmRlc2lyZWRfYWNjZXNzID0gRklMRV9SRUFEX0FUVFJJQlVURVMgfCBSRUFEX0NPTlRST0w7CiAJfQogCiAJcmMgPSBTTUIyX29wZW5faW5pdCh0Y29uLCAmcnFzdFswXSwgJm9wbG9jaywgJm9wYXJtcywgcGF0aCk7CkBAIC0xNDU0LDYgKzE0NjYsMjQgQEAgc21iMl9pb2N0bF9xdWVyeV9pbmZvKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsCiAJCQkJCSAgICAgcWkub3V0cHV0X2J1ZmZlcl9sZW5ndGgsCiAJCQkJCSAgICAgQ0lGU01heEJ1ZlNpemUpOwogCQl9CisJfSBlbHNlIGlmIChxaS5mbGFncyA9PSBQQVNTVEhSVV9TRVRfSU5GTykgeworCQkvKiBDYW4gZXZlbnR1YWxseSByZWxheCBwZXJtIGNoZWNrIHNpbmNlIHNlcnZlciBlbmZvcmNlcyB0b28gKi8KKwkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQorCQkJcmMgPSAtRVBFUk07CisJCWVsc2UgIHsKKwkJCW1lbXNldCgmc2lfaW92LCAwLCBzaXplb2Yoc2lfaW92KSk7CisJCQlycXN0WzFdLnJxX2lvdiA9IHNpX2lvdjsKKwkJCXJxc3RbMV0ucnFfbnZlYyA9IDE7CisKKwkJCXNpemVbMF0gPSA4OworCQkJZGF0YVswXSA9IGJ1ZmZlcjsKKworCQkJcmMgPSBTTUIyX3NldF9pbmZvX2luaXQodGNvbiwgJnJxc3RbMV0sCisJCQkJCUNPTVBPVU5EX0ZJRCwgQ09NUE9VTkRfRklELAorCQkJCQljdXJyZW50LT50Z2lkLAorCQkJCQlGSUxFX0VORF9PRl9GSUxFX0lORk9STUFUSU9OLAorCQkJCQlTTUIyX09fSU5GT19GSUxFLCAwLCBkYXRhLCBzaXplKTsKKwkJfQogCX0gZWxzZSBpZiAocWkuZmxhZ3MgPT0gUEFTU1RIUlVfUVVFUllfSU5GTykgewogCQltZW1zZXQoJnFpX2lvdiwgMCwgc2l6ZW9mKHFpX2lvdikpOwogCQlycXN0WzFdLnJxX2lvdiA9IHFpX2lvdjsKQEAgLTE0NjUsNyArMTQ5NSw3IEBAIHNtYjJfaW9jdGxfcXVlcnlfaW5mbyhjb25zdCB1bnNpZ25lZCBpbnQgeGlkLAogCQkJCSAgcWkuaW5wdXRfYnVmZmVyX2xlbmd0aCwKIAkJCQkgIHFpLm91dHB1dF9idWZmZXJfbGVuZ3RoLCBidWZmZXIpOwogCX0gZWxzZSB7IC8qIHVua25vd24gZmxhZ3MgKi8KLQkJY2lmc19kYmcoVkZTLCAiaW52YWxpZCBwYXNzdGhydSBxdWVyeSBmbGFnczogMHgleFxuIiwgcWkuZmxhZ3MpOworCQljaWZzX3Rjb25fZGJnKFZGUywgImludmFsaWQgcGFzc3RocnUgcXVlcnkgZmxhZ3M6IDB4JXhcbiIsIHFpLmZsYWdzKTsKIAkJcmMgPSAtRUlOVkFMOwogCX0KIApAQCAtMTU5Miw3ICsxNjIyLDcgQEAgc21iMl9jb3B5Y2h1bmtfcmFuZ2UoY29uc3QgdW5zaWduZWQgaW50IHhpZCwKIAkJaWYgKHJjID09IDApIHsKIAkJCWlmIChyZXRfZGF0YV9sZW4gIT0KIAkJCQkJc2l6ZW9mKHN0cnVjdCBjb3B5Y2h1bmtfaW9jdGxfcnNwKSkgewotCQkJCWNpZnNfZGJnKFZGUywgImludmFsaWQgY2NodW5rIHJlc3BvbnNlIHNpemVcbiIpOworCQkJCWNpZnNfdGNvbl9kYmcoVkZTLCAiaW52YWxpZCBjY2h1bmsgcmVzcG9uc2Ugc2l6ZVxuIik7CiAJCQkJcmMgPSAtRUlPOwogCQkJCWdvdG8gY2NodW5rX291dDsKIAkJCX0KQEAgLTE2MDYsMTIgKzE2MzYsMTIgQEAgc21iMl9jb3B5Y2h1bmtfcmFuZ2UoY29uc3QgdW5zaWduZWQgaW50IHhpZCwKIAkJCSAqLwogCQkJaWYgKGxlMzJfdG9fY3B1KHJldGJ1Zi0+VG90YWxCeXRlc1dyaXR0ZW4pID4KIAkJCSAgICBsZTMyX3RvX2NwdShwY2NodW5rLT5MZW5ndGgpKSB7Ci0JCQkJY2lmc19kYmcoVkZTLCAiaW52YWxpZCBjb3B5IGNodW5rIHJlc3BvbnNlXG4iKTsKKwkJCQljaWZzX3Rjb25fZGJnKFZGUywgImludmFsaWQgY29weSBjaHVuayByZXNwb25zZVxuIik7CiAJCQkJcmMgPSAtRUlPOwogCQkJCWdvdG8gY2NodW5rX291dDsKIAkJCX0KIAkJCWlmIChsZTMyX3RvX2NwdShyZXRidWYtPkNodW5rc1dyaXR0ZW4pICE9IDEpIHsKLQkJCQljaWZzX2RiZyhWRlMsICJpbnZhbGlkIG51bSBjaHVua3Mgd3JpdHRlblxuIik7CisJCQkJY2lmc190Y29uX2RiZyhWRlMsICJpbnZhbGlkIG51bSBjaHVua3Mgd3JpdHRlblxuIik7CiAJCQkJcmMgPSAtRUlPOwogCQkJCWdvdG8gY2NodW5rX291dDsKIAkJCX0KQEAgLTIyMTQsNiArMjI0NCwxMSBAQCBzbWIyX3F1ZXJ5X2luZm9fY29tcG91bmQoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAkJCQlyZXNwX2J1ZnR5cGUsIHJzcF9pb3YpOwogCWlmIChyYykgewogCQlmcmVlX3JzcF9idWYocmVzcF9idWZ0eXBlWzFdLCByc3BfaW92WzFdLmlvdl9iYXNlKTsKKwkJaWYgKHJjID09IC1FUkVNQ0hHKSB7CisJCQl0Y29uLT5uZWVkX3JlY29ubmVjdCA9IHRydWU7CisJCQlwcmludGtfb25jZShLRVJOX1dBUk5JTkcgInNlcnZlciBzaGFyZSAlcyBkZWxldGVkXG4iLAorCQkJCSAgICB0Y29uLT50cmVlTmFtZSk7CisJCX0KIAkJZ290byBxaWNfZXhpdDsKIAl9CiAJKnJzcCA9IHJzcF9pb3ZbMV07CkBAIC0yNDAxLDcgKzI0MzYsNyBAQCBzbWIyX2dldF9kZnNfcmVmZXIoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfc2VzICpzZXMsCiAKIAlpZiAocmMpIHsKIAkJaWYgKChyYyAhPSAtRU5PRU5UKSAmJiAocmMgIT0gLUVPUE5PVFNVUFApKQotCQkJY2lmc19kYmcoVkZTLCAiaW9jdGwgZXJyb3IgaW4gJXMgcmM9JWRcbiIsIF9fZnVuY19fLCByYyk7CisJCQljaWZzX3Rjb25fZGJnKFZGUywgImlvY3RsIGVycm9yIGluICVzIHJjPSVkXG4iLCBfX2Z1bmNfXywgcmMpOwogCQlnb3RvIG91dDsKIAl9CiAKQEAgLTI0MTAsNyArMjQ0NSw3IEBAIHNtYjJfZ2V0X2Rmc19yZWZlcihjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc19zZXMgKnNlcywKIAkJCQkgbmxzX2NvZGVwYWdlLCByZW1hcCwgc2VhcmNoX25hbWUsCiAJCQkJIHRydWUgLyogaXNfdW5pY29kZSAqLyk7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgInBhcnNlIGVycm9yIGluICVzIHJjPSVkXG4iLCBfX2Z1bmNfXywgcmMpOworCQljaWZzX3Rjb25fZGJnKFZGUywgInBhcnNlIGVycm9yIGluICVzIHJjPSVkXG4iLCBfX2Z1bmNfXywgcmMpOwogCQlnb3RvIG91dDsKIAl9CiAKQEAgLTI2NDAsNyArMjY3NSw3IEBAIHNtYjJfcXVlcnlfc3ltbGluayhjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAogCiAJCWlmIChwbGVuICsgbGUzMl90b19jcHUoaW9jdGxfcnNwLT5PdXRwdXRPZmZzZXQpID4KIAkJICAgIHJzcF9pb3ZbMV0uaW92X2xlbikgewotCQkJY2lmc19kYmcoVkZTLCAic3J2IHJldHVybmVkIGludmFsaWQgaW9jdGwgbGVuOiAlZFxuIiwKKwkJCWNpZnNfdGNvbl9kYmcoVkZTLCAic3J2IHJldHVybmVkIGludmFsaWQgaW9jdGwgbGVuOiAlZFxuIiwKIAkJCQkgcGxlbik7CiAJCQlyYyA9IC1FSU87CiAJCQlnb3RvIHF1ZXJ0eV9leGl0OwpAQCAtMjkzOSw3ICsyOTc0LDYgQEAgc3RhdGljIGxvbmcgc21iM19wdW5jaF9ob2xlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAogCQkJICAgIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4pCiB7CiAJc3RydWN0IGlub2RlICppbm9kZTsKLQlzdHJ1Y3QgY2lmc0lub2RlSW5mbyAqY2lmc2k7CiAJc3RydWN0IGNpZnNGaWxlSW5mbyAqY2ZpbGUgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IGZpbGVfemVyb19kYXRhX2luZm9ybWF0aW9uIGZzY3RsX2J1ZjsKIAlsb25nIHJjOwpAQCAtMjk0OSw3ICsyOTgzLDYgQEAgc3RhdGljIGxvbmcgc21iM19wdW5jaF9ob2xlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAogCXhpZCA9IGdldF94aWQoKTsKIAogCWlub2RlID0gZF9pbm9kZShjZmlsZS0+ZGVudHJ5KTsKLQljaWZzaSA9IENJRlNfSShpbm9kZSk7CiAKIAkvKiBOZWVkIHRvIG1ha2UgZmlsZSBzcGFyc2UsIGlmIG5vdCBhbHJlYWR5LCBiZWZvcmUgZnJlZWluZyByYW5nZS4gKi8KIAkvKiBDb25zaWRlciBhZGRpbmcgZXF1aXZhbGVudCBmb3IgY29tcHJlc3NlZCBzaW5jZSBpdCBjb3VsZCBhbHNvIHdvcmsgKi8KQEAgLTM1OTUsMTQgKzM2MjgsMTQgQEAgY3J5cHRfbWVzc2FnZShzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsIGludCBudW1fcnFzdCwKIAogCXJjID0gc21iMl9nZXRfZW5jX2tleShzZXJ2ZXIsIHRyX2hkci0+U2Vzc2lvbklkLCBlbmMsIGtleSk7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgZ2V0ICVzY3J5cHRpb24ga2V5XG4iLCBfX2Z1bmNfXywKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgZ2V0ICVzY3J5cHRpb24ga2V5XG4iLCBfX2Z1bmNfXywKIAkJCSBlbmMgPyAiZW4iIDogImRlIik7CiAJCXJldHVybiAwOwogCX0KIAogCXJjID0gc21iM19jcnlwdG9fYWVhZF9hbGxvY2F0ZShzZXJ2ZXIpOwogCWlmIChyYykgewotCQljaWZzX2RiZyhWRlMsICIlczogY3J5cHRvIGFsbG9jIGZhaWxlZFxuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IGNyeXB0byBhbGxvYyBmYWlsZWRcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIHJjOwogCX0KIApAQCAtMzYxMCwxOSArMzY0MywxOSBAQCBjcnlwdF9tZXNzYWdlKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgaW50IG51bV9ycXN0LAogCQkJCQkJc2VydmVyLT5zZWNtZWNoLmNjbWFlc2RlY3J5cHQ7CiAJcmMgPSBjcnlwdG9fYWVhZF9zZXRrZXkodGZtLCBrZXksIFNNQjNfU0lHTl9LRVlfU0laRSk7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBGYWlsZWQgdG8gc2V0IGFlYWQga2V5ICVkXG4iLCBfX2Z1bmNfXywgcmMpOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IEZhaWxlZCB0byBzZXQgYWVhZCBrZXkgJWRcbiIsIF9fZnVuY19fLCByYyk7CiAJCXJldHVybiByYzsKIAl9CiAKIAlyYyA9IGNyeXB0b19hZWFkX3NldGF1dGhzaXplKHRmbSwgU01CMl9TSUdOQVRVUkVfU0laRSk7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBGYWlsZWQgdG8gc2V0IGF1dGhzaXplICVkXG4iLCBfX2Z1bmNfXywgcmMpOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IEZhaWxlZCB0byBzZXQgYXV0aHNpemUgJWRcbiIsIF9fZnVuY19fLCByYyk7CiAJCXJldHVybiByYzsKIAl9CiAKIAlyZXEgPSBhZWFkX3JlcXVlc3RfYWxsb2ModGZtLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXJlcSkgewotCQljaWZzX2RiZyhWRlMsICIlczogRmFpbGVkIHRvIGFsbG9jIGFlYWQgcmVxdWVzdFxuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IEZhaWxlZCB0byBhbGxvYyBhZWFkIHJlcXVlc3RcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCkBAIC0zNjMzLDcgKzM2NjYsNyBAQCBjcnlwdF9tZXNzYWdlKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgaW50IG51bV9ycXN0LAogCiAJc2cgPSBpbml0X3NnKG51bV9ycXN0LCBycXN0LCBzaWduKTsKIAlpZiAoIXNnKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBGYWlsZWQgdG8gaW5pdCBzZ1xuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IEZhaWxlZCB0byBpbml0IHNnXG4iLCBfX2Z1bmNfXyk7CiAJCXJjID0gLUVOT01FTTsKIAkJZ290byBmcmVlX3JlcTsKIAl9CkBAIC0zNjQxLDcgKzM2NzQsNyBAQCBjcnlwdF9tZXNzYWdlKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgaW50IG51bV9ycXN0LAogCWl2X2xlbiA9IGNyeXB0b19hZWFkX2l2c2l6ZSh0Zm0pOwogCWl2ID0ga3phbGxvYyhpdl9sZW4sIEdGUF9LRVJORUwpOwogCWlmICghaXYpIHsKLQkJY2lmc19kYmcoVkZTLCAiJXM6IEZhaWxlZCB0byBhbGxvYyBpdlxuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IEZhaWxlZCB0byBhbGxvYyBpdlxuIiwgX19mdW5jX18pOwogCQlyYyA9IC1FTk9NRU07CiAJCWdvdG8gZnJlZV9zZzsKIAl9CkBAIC0zODgzLDcgKzM5MTYsNyBAQCBoYW5kbGVfcmVhZF9kYXRhKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgc3RydWN0IG1pZF9xX2VudHJ5ICptaWQsCiAJYm9vbCB1c2VfcmRtYV9tciA9IGZhbHNlOwogCiAJaWYgKHNoZHItPkNvbW1hbmQgIT0gU01CMl9SRUFEKSB7Ci0JCWNpZnNfZGJnKFZGUywgIm9ubHkgYmlnIHJlYWQgcmVzcG9uc2VzIGFyZSBzdXBwb3J0ZWRcbiIpOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAib25seSBiaWcgcmVhZCByZXNwb25zZXMgYXJlIHN1cHBvcnRlZFxuIik7CiAJCXJldHVybiAtRU5PVFNVUFA7CiAJfQogCkBAIC0zOTk4LDggKzQwMzEsNTUgQEAgaGFuZGxlX3JlYWRfZGF0YShzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsIHN0cnVjdCBtaWRfcV9lbnRyeSAqbWlkLAogCXJldHVybiBsZW5ndGg7CiB9CiAKK3N0cnVjdCBzbWIyX2RlY3J5cHRfd29yayB7CisJc3RydWN0IHdvcmtfc3RydWN0IGRlY3J5cHQ7CisJc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyOworCXN0cnVjdCBwYWdlICoqcHBhZ2VzOworCWNoYXIgKmJ1ZjsKKwl1bnNpZ25lZCBpbnQgbnBhZ2VzOworCXVuc2lnbmVkIGludCBsZW47Cit9OworCisKK3N0YXRpYyB2b2lkIHNtYjJfZGVjcnlwdF9vZmZsb2FkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3Qgc21iMl9kZWNyeXB0X3dvcmsgKmR3ID0gY29udGFpbmVyX29mKHdvcmssCisJCQkJc3RydWN0IHNtYjJfZGVjcnlwdF93b3JrLCBkZWNyeXB0KTsKKwlpbnQgaSwgcmM7CisJc3RydWN0IG1pZF9xX2VudHJ5ICptaWQ7CisKKwlyYyA9IGRlY3J5cHRfcmF3X2RhdGEoZHctPnNlcnZlciwgZHctPmJ1ZiwgZHctPnNlcnZlci0+dmFscy0+cmVhZF9yc3Bfc2l6ZSwKKwkJCSAgICAgIGR3LT5wcGFnZXMsIGR3LT5ucGFnZXMsIGR3LT5sZW4pOworCWlmIChyYykgeworCQljaWZzX2RiZyhWRlMsICJlcnJvciBkZWNyeXB0aW5nIHJjPSVkXG4iLCByYyk7CisJCWdvdG8gZnJlZV9wYWdlczsKKwl9CisKKwlkdy0+c2VydmVyLT5sc3RycCA9IGppZmZpZXM7CisJbWlkID0gc21iMl9maW5kX21pZChkdy0+c2VydmVyLCBkdy0+YnVmKTsKKwlpZiAobWlkID09IE5VTEwpCisJCWNpZnNfZGJnKEZZSSwgIm1pZCBub3QgZm91bmRcbiIpOworCWVsc2UgeworCQltaWQtPmRlY3J5cHRlZCA9IHRydWU7CisJCXJjID0gaGFuZGxlX3JlYWRfZGF0YShkdy0+c2VydmVyLCBtaWQsIGR3LT5idWYsCisJCQkJICAgICAgZHctPnNlcnZlci0+dmFscy0+cmVhZF9yc3Bfc2l6ZSwKKwkJCQkgICAgICBkdy0+cHBhZ2VzLCBkdy0+bnBhZ2VzLCBkdy0+bGVuKTsKKwkJbWlkLT5jYWxsYmFjayhtaWQpOworCQljaWZzX21pZF9xX2VudHJ5X3JlbGVhc2UobWlkKTsKKwl9CisKK2ZyZWVfcGFnZXM6CisJZm9yIChpID0gZHctPm5wYWdlcy0xOyBpID49IDA7IGktLSkKKwkJcHV0X3BhZ2UoZHctPnBwYWdlc1tpXSk7CisKKwlrZnJlZShkdy0+cHBhZ2VzKTsKKwljaWZzX3NtYWxsX2J1Zl9yZWxlYXNlKGR3LT5idWYpOworfQorCisKIHN0YXRpYyBpbnQKLXJlY2VpdmVfZW5jcnlwdGVkX3JlYWQoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyLCBzdHJ1Y3QgbWlkX3FfZW50cnkgKiptaWQpCityZWNlaXZlX2VuY3J5cHRlZF9yZWFkKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgc3RydWN0IG1pZF9xX2VudHJ5ICoqbWlkLAorCQkgICAgICAgaW50ICpudW1fbWlkcykKIHsKIAljaGFyICpidWYgPSBzZXJ2ZXItPnNtYWxsYnVmOwogCXN0cnVjdCBzbWIyX3RyYW5zZm9ybV9oZHIgKnRyX2hkciA9IChzdHJ1Y3Qgc21iMl90cmFuc2Zvcm1faGRyICopYnVmOwpAQCAtNDAwOSw3ICs0MDg5LDkgQEAgcmVjZWl2ZV9lbmNyeXB0ZWRfcmVhZChzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsIHN0cnVjdCBtaWRfcV9lbnRyeSAqKm1pZCkKIAl1bnNpZ25lZCBpbnQgYnVmbGVuID0gc2VydmVyLT5wZHVfc2l6ZTsKIAlpbnQgcmM7CiAJaW50IGkgPSAwOworCXN0cnVjdCBzbWIyX2RlY3J5cHRfd29yayAqZHc7CiAKKwkqbnVtX21pZHMgPSAxOwogCWxlbiA9IG1pbl90KHVuc2lnbmVkIGludCwgYnVmbGVuLCBzZXJ2ZXItPnZhbHMtPnJlYWRfcnNwX3NpemUgKwogCQlzaXplb2Yoc3RydWN0IHNtYjJfdHJhbnNmb3JtX2hkcikpIC0gSEVBREVSX1NJWkUoc2VydmVyKSArIDE7CiAKQEAgLTQwNDUsNiArNDEyNywzMiBAQCByZWNlaXZlX2VuY3J5cHRlZF9yZWFkKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgc3RydWN0IG1pZF9xX2VudHJ5ICoqbWlkKQogCWlmIChyYykKIAkJZ290byBmcmVlX3BhZ2VzOwogCisJLyoKKwkgKiBGb3IgbGFyZ2UgcmVhZHMsIG9mZmxvYWQgdG8gZGlmZmVyZW50IHRocmVhZCBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLAorCSAqIHVzZSBtb3JlIGNvcmVzIGRlY3J5cHRpbmcgd2hpY2ggY2FuIGJlIGV4cGVuc2l2ZQorCSAqLworCisJaWYgKChzZXJ2ZXItPm1pbl9vZmZsb2FkKSAmJiAoc2VydmVyLT5pbl9mbGlnaHQgPiAxKSAmJgorCSAgICAoc2VydmVyLT5wZHVfc2l6ZSA+PSBzZXJ2ZXItPm1pbl9vZmZsb2FkKSkgeworCQlkdyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBzbWIyX2RlY3J5cHRfd29yayksIEdGUF9LRVJORUwpOworCQlpZiAoZHcgPT0gTlVMTCkKKwkJCWdvdG8gbm9uX29mZmxvYWRlZF9kZWNyeXB0OworCisJCWR3LT5idWYgPSBzZXJ2ZXItPnNtYWxsYnVmOworCQlzZXJ2ZXItPnNtYWxsYnVmID0gKGNoYXIgKiljaWZzX3NtYWxsX2J1Zl9nZXQoKTsKKworCQlJTklUX1dPUksoJmR3LT5kZWNyeXB0LCBzbWIyX2RlY3J5cHRfb2ZmbG9hZCk7CisKKwkJZHctPm5wYWdlcyA9IG5wYWdlczsKKwkJZHctPnNlcnZlciA9IHNlcnZlcjsKKwkJZHctPnBwYWdlcyA9IHBhZ2VzOworCQlkdy0+bGVuID0gbGVuOworCQlxdWV1ZV93b3JrKGNpZnNpb2Rfd3EsICZkdy0+ZGVjcnlwdCk7CisJCSpudW1fbWlkcyA9IDA7IC8qIHdvcmtlciB0aHJlYWQgdGFrZXMgY2FyZSBvZiBmaW5kaW5nIG1pZCAqLworCQlyZXR1cm4gLTE7CisJfQorCitub25fb2ZmbG9hZGVkX2RlY3J5cHQ6CiAJcmMgPSBkZWNyeXB0X3Jhd19kYXRhKHNlcnZlciwgYnVmLCBzZXJ2ZXItPnZhbHMtPnJlYWRfcnNwX3NpemUsCiAJCQkgICAgICBwYWdlcywgbnBhZ2VzLCBsZW4pOwogCWlmIChyYykKQEAgLTQxMjksNyArNDIzNyw3IEBAIHJlY2VpdmVfZW5jcnlwdGVkX3N0YW5kYXJkKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwKIAl9CiAKIAlpZiAoKm51bV9taWRzID49IE1BWF9DT01QT1VORCkgewotCQljaWZzX2RiZyhWRlMsICJ0b28gbWFueSBQRFVzIGluIGNvbXBvdW5kXG4iKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgInRvbyBtYW55IFBEVXMgaW4gY29tcG91bmRcbiIpOwogCQlyZXR1cm4gLTE7CiAJfQogCWJ1ZnNbKm51bV9taWRzXSA9IGJ1ZjsKQEAgLTQxNzUsNyArNDI4Myw3IEBAIHNtYjNfcmVjZWl2ZV90cmFuc2Zvcm0oc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyLAogCiAJaWYgKHBkdV9sZW5ndGggPCBzaXplb2Yoc3RydWN0IHNtYjJfdHJhbnNmb3JtX2hkcikgKwogCQkJCQkJc2l6ZW9mKHN0cnVjdCBzbWIyX3N5bmNfaGRyKSkgewotCQljaWZzX2RiZyhWRlMsICJUcmFuc2Zvcm0gbWVzc2FnZSBpcyB0b28gc21hbGwgKCV1KVxuIiwKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIlRyYW5zZm9ybSBtZXNzYWdlIGlzIHRvbyBzbWFsbCAoJXUpXG4iLAogCQkJIHBkdV9sZW5ndGgpOwogCQljaWZzX3JlY29ubmVjdChzZXJ2ZXIpOwogCQl3YWtlX3VwKCZzZXJ2ZXItPnJlc3BvbnNlX3EpOwpAQCAtNDE4Myw3ICs0MjkxLDcgQEAgc21iM19yZWNlaXZlX3RyYW5zZm9ybShzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsCiAJfQogCiAJaWYgKHBkdV9sZW5ndGggPCBvcmlnX2xlbiArIHNpemVvZihzdHJ1Y3Qgc21iMl90cmFuc2Zvcm1faGRyKSkgewotCQljaWZzX2RiZyhWRlMsICJUcmFuc2Zvcm0gbWVzc2FnZSBpcyBicm9rZW5cbiIpOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiVHJhbnNmb3JtIG1lc3NhZ2UgaXMgYnJva2VuXG4iKTsKIAkJY2lmc19yZWNvbm5lY3Qoc2VydmVyKTsKIAkJd2FrZV91cCgmc2VydmVyLT5yZXNwb25zZV9xKTsKIAkJcmV0dXJuIC1FQ09OTkFCT1JURUQ7CkBAIC00MTkxLDggKzQyOTksNyBAQCBzbWIzX3JlY2VpdmVfdHJhbnNmb3JtKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwKIAogCS8qIFRPRE86IGFkZCBzdXBwb3J0IGZvciBjb21wb3VuZHMgY29udGFpbmluZyBSRUFELiAqLwogCWlmIChwZHVfbGVuZ3RoID4gQ0lGU01heEJ1ZlNpemUgKyBNQVhfSEVBREVSX1NJWkUoc2VydmVyKSkgewotCQkqbnVtX21pZHMgPSAxOwotCQlyZXR1cm4gcmVjZWl2ZV9lbmNyeXB0ZWRfcmVhZChzZXJ2ZXIsICZtaWRzWzBdKTsKKwkJcmV0dXJuIHJlY2VpdmVfZW5jcnlwdGVkX3JlYWQoc2VydmVyLCAmbWlkc1swXSwgbnVtX21pZHMpOwogCX0KIAogCXJldHVybiByZWNlaXZlX2VuY3J5cHRlZF9zdGFuZGFyZChzZXJ2ZXIsIG1pZHMsIGJ1ZnMsIG51bV9taWRzKTsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvc21iMnBkdS5jIGIvZnMvY2lmcy9zbWIycGR1LmMKaW5kZXggMzFlNGExYi4uODcwNjZmMSAxMDA2NDQKLS0tIGEvZnMvY2lmcy9zbWIycGR1LmMKKysrIGIvZnMvY2lmcy9zbWIycGR1LmMKQEAgLTUwMyw4ICs1MDMsNyBAQCBidWlsZF9uZXRuYW1lX2N0eHQoc3RydWN0IHNtYjJfbmV0bmFtZV9uZWdfY29udGV4dCAqcG5lZ19jdHh0LCBjaGFyICpob3N0bmFtZSkKIAlwbmVnX2N0eHQtPkNvbnRleHRUeXBlID0gU01CMl9ORVROQU1FX05FR09USUFURV9DT05URVhUX0lEOwogCiAJLyogY29weSB1cCB0byBtYXggb2YgZmlyc3QgMTAwIGJ5dGVzIG9mIHNlcnZlciBuYW1lIHRvIE5ldE5hbWUgZmllbGQgKi8KLQlwbmVnX2N0eHQtPkRhdGFMZW5ndGggPSBjcHVfdG9fbGUxNigyICsKLQkJKDIgKiBjaWZzX3N0cnRvVVRGMTYocG5lZ19jdHh0LT5OZXROYW1lLCBob3N0bmFtZSwgMTAwLCBjcCkpKTsKKwlwbmVnX2N0eHQtPkRhdGFMZW5ndGggPSBjcHVfdG9fbGUxNigyICogY2lmc19zdHJ0b1VURjE2KHBuZWdfY3R4dC0+TmV0TmFtZSwgaG9zdG5hbWUsIDEwMCwgY3ApKTsKIAkvKiBjb250ZXh0IHNpemUgaXMgRGF0YUxlbmd0aCArIG1pbmltYWwgc21iMl9uZWdfY29udGV4dCAqLwogCXJldHVybiBESVZfUk9VTkRfVVAobGUxNl90b19jcHUocG5lZ19jdHh0LT5EYXRhTGVuZ3RoKSArCiAJCQlzaXplb2Yoc3RydWN0IHNtYjJfbmVnX2NvbnRleHQpLCA4KSAqIDg7CkBAIC01NDMsNyArNTQyLDcgQEAgYXNzZW1ibGVfbmVnX2NvbnRleHRzKHN0cnVjdCBzbWIyX25lZ290aWF0ZV9yZXEgKnJlcSwKIAogCWlmICgqdG90YWxfbGVuID4gMjAwKSB7CiAJCS8qIEluIGNhc2UgbGVuZ3RoIGNvcnJ1cHRlZCBkb24ndCB3YW50IHRvIG92ZXJydW4gc21iIGJ1ZmZlciAqLwotCQljaWZzX2RiZyhWRlMsICJCYWQgZnJhbWUgbGVuZ3RoIGFzc2VtYmxpbmcgbmVnIGNvbnRleHRzXG4iKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIkJhZCBmcmFtZSBsZW5ndGggYXNzZW1ibGluZyBuZWcgY29udGV4dHNcbiIpOwogCQlyZXR1cm47CiAJfQogCkBAIC02NjEsNyArNjYwLDcgQEAgc3RhdGljIGludCBzbWIzMTFfZGVjb2RlX25lZ19jb250ZXh0KHN0cnVjdCBzbWIyX25lZ290aWF0ZV9yc3AgKnJzcCwKIAogCWNpZnNfZGJnKEZZSSwgImRlY29kaW5nICVkIG5lZ290aWF0ZSBjb250ZXh0c1xuIiwgY3R4dF9jbnQpOwogCWlmIChsZW5fb2Zfc21iIDw9IG9mZnNldCkgewotCQljaWZzX2RiZyhWRlMsICJJbnZhbGlkIHJlc3BvbnNlOiBuZWdvdGlhdGUgY29udGV4dCBvZmZzZXRcbiIpOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiSW52YWxpZCByZXNwb25zZTogbmVnb3RpYXRlIGNvbnRleHQgb2Zmc2V0XG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC02OTMsNyArNjkyLDcgQEAgc3RhdGljIGludCBzbWIzMTFfZGVjb2RlX25lZ19jb250ZXh0KHN0cnVjdCBzbWIyX25lZ290aWF0ZV9yc3AgKnJzcCwKIAkJZWxzZSBpZiAocGN0eC0+Q29udGV4dFR5cGUgPT0gU01CMl9QT1NJWF9FWFRFTlNJT05TX0FWQUlMQUJMRSkKIAkJCXNlcnZlci0+cG9zaXhfZXh0X3N1cHBvcnRlZCA9IHRydWU7CiAJCWVsc2UKLQkJCWNpZnNfZGJnKFZGUywgInVua25vd24gbmVnY29udGV4dCBvZiB0eXBlICVkIGlnbm9yZWRcbiIsCisJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAidW5rbm93biBuZWdjb250ZXh0IG9mIHR5cGUgJWQgaWdub3JlZFxuIiwKIAkJCQlsZTE2X3RvX2NwdShwY3R4LT5Db250ZXh0VHlwZSkpOwogCiAJCWlmIChyYykKQEAgLTgxOCw3ICs4MTcsNyBAQCBTTUIyX25lZ290aWF0ZShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc19zZXMgKnNlcykKIAkJcmVxLT5EaWFsZWN0c1sxXSA9IGNwdV90b19sZTE2KFNNQjMwMl9QUk9UX0lEKTsKIAkJcmVxLT5EaWFsZWN0Q291bnQgPSBjcHVfdG9fbGUxNigyKTsKIAkJdG90YWxfbGVuICs9IDQ7Ci0JfSBlbHNlIGlmIChzdHJjbXAoc2VzLT5zZXJ2ZXItPnZhbHMtPnZlcnNpb25fc3RyaW5nLAorCX0gZWxzZSBpZiAoc3RyY21wKHNlcnZlci0+dmFscy0+dmVyc2lvbl9zdHJpbmcsCiAJCSAgIFNNQkRFRkFVTFRfVkVSU0lPTl9TVFJJTkcpID09IDApIHsKIAkJcmVxLT5EaWFsZWN0c1swXSA9IGNwdV90b19sZTE2KFNNQjIxX1BST1RfSUQpOwogCQlyZXEtPkRpYWxlY3RzWzFdID0gY3B1X3RvX2xlMTYoU01CMzBfUFJPVF9JRCk7CkBAIC04NDEsMTYgKzg0MCwxNiBAQCBTTUIyX25lZ290aWF0ZShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc19zZXMgKnNlcykKIAllbHNlCiAJCXJlcS0+U2VjdXJpdHlNb2RlID0gMDsKIAotCXJlcS0+Q2FwYWJpbGl0aWVzID0gY3B1X3RvX2xlMzIoc2VzLT5zZXJ2ZXItPnZhbHMtPnJlcV9jYXBhYmlsaXRpZXMpOworCXJlcS0+Q2FwYWJpbGl0aWVzID0gY3B1X3RvX2xlMzIoc2VydmVyLT52YWxzLT5yZXFfY2FwYWJpbGl0aWVzKTsKIAogCS8qIENsaWVudEdVSUQgbXVzdCBiZSB6ZXJvIGZvciBTTUIyLjAyIGRpYWxlY3QgKi8KLQlpZiAoc2VzLT5zZXJ2ZXItPnZhbHMtPnByb3RvY29sX2lkID09IFNNQjIwX1BST1RfSUQpCisJaWYgKHNlcnZlci0+dmFscy0+cHJvdG9jb2xfaWQgPT0gU01CMjBfUFJPVF9JRCkKIAkJbWVtc2V0KHJlcS0+Q2xpZW50R1VJRCwgMCwgU01CMl9DTElFTlRfR1VJRF9TSVpFKTsKIAllbHNlIHsKIAkJbWVtY3B5KHJlcS0+Q2xpZW50R1VJRCwgc2VydmVyLT5jbGllbnRfZ3VpZCwKIAkJCVNNQjJfQ0xJRU5UX0dVSURfU0laRSk7Ci0JCWlmICgoc2VzLT5zZXJ2ZXItPnZhbHMtPnByb3RvY29sX2lkID09IFNNQjMxMV9QUk9UX0lEKSB8fAotCQkgICAgKHN0cmNtcChzZXMtPnNlcnZlci0+dmFscy0+dmVyc2lvbl9zdHJpbmcsCisJCWlmICgoc2VydmVyLT52YWxzLT5wcm90b2NvbF9pZCA9PSBTTUIzMTFfUFJPVF9JRCkgfHwKKwkJICAgIChzdHJjbXAoc2VydmVyLT52YWxzLT52ZXJzaW9uX3N0cmluZywKIAkJICAgICBTTUJERUZBVUxUX1ZFUlNJT05fU1RSSU5HKSA9PSAwKSkKIAkJCWFzc2VtYmxlX25lZ19jb250ZXh0cyhyZXEsIHNlcnZlciwgJnRvdGFsX2xlbik7CiAJfQpAQCAtODY5LDQyICs4NjgsNDIgQEAgU01CMl9uZWdvdGlhdGUoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfc2VzICpzZXMpCiAJICogY2lmc19zdGF0c19pbmMoJnRjb24tPnN0YXRzLnNtYjJfc3RhdHMuc21iMl9jb21fZmFpbFtTTUIyLi4uXSk7CiAJICovCiAJaWYgKHJjID09IC1FT1BOT1RTVVBQKSB7Ci0JCWNpZnNfZGJnKFZGUywgIkRpYWxlY3Qgbm90IHN1cHBvcnRlZCBieSBzZXJ2ZXIuIENvbnNpZGVyICIKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIkRpYWxlY3Qgbm90IHN1cHBvcnRlZCBieSBzZXJ2ZXIuIENvbnNpZGVyICIKIAkJCSJzcGVjaWZ5aW5nIHZlcnM9MS4wIG9yIHZlcnM9Mi4wIG9uIG1vdW50IGZvciBhY2Nlc3NpbmciCiAJCQkiIG9sZGVyIHNlcnZlcnNcbiIpOwogCQlnb3RvIG5lZ19leGl0OwogCX0gZWxzZSBpZiAocmMgIT0gMCkKIAkJZ290byBuZWdfZXhpdDsKIAotCWlmIChzdHJjbXAoc2VzLT5zZXJ2ZXItPnZhbHMtPnZlcnNpb25fc3RyaW5nLAorCWlmIChzdHJjbXAoc2VydmVyLT52YWxzLT52ZXJzaW9uX3N0cmluZywKIAkJICAgU01CM0FOWV9WRVJTSU9OX1NUUklORykgPT0gMCkgewogCQlpZiAocnNwLT5EaWFsZWN0UmV2aXNpb24gPT0gY3B1X3RvX2xlMTYoU01CMjBfUFJPVF9JRCkpIHsKLQkJCWNpZnNfZGJnKFZGUywKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsCiAJCQkJIlNNQjIgZGlhbGVjdCByZXR1cm5lZCBidXQgbm90IHJlcXVlc3RlZFxuIik7CiAJCQlyZXR1cm4gLUVJTzsKIAkJfSBlbHNlIGlmIChyc3AtPkRpYWxlY3RSZXZpc2lvbiA9PSBjcHVfdG9fbGUxNihTTUIyMV9QUk9UX0lEKSkgewotCQkJY2lmc19kYmcoVkZTLAorCQkJY2lmc19zZXJ2ZXJfZGJnKFZGUywKIAkJCQkiU01CMi4xIGRpYWxlY3QgcmV0dXJuZWQgYnV0IG5vdCByZXF1ZXN0ZWRcbiIpOwogCQkJcmV0dXJuIC1FSU87CiAJCX0KLQl9IGVsc2UgaWYgKHN0cmNtcChzZXMtPnNlcnZlci0+dmFscy0+dmVyc2lvbl9zdHJpbmcsCisJfSBlbHNlIGlmIChzdHJjbXAoc2VydmVyLT52YWxzLT52ZXJzaW9uX3N0cmluZywKIAkJICAgU01CREVGQVVMVF9WRVJTSU9OX1NUUklORykgPT0gMCkgewogCQlpZiAocnNwLT5EaWFsZWN0UmV2aXNpb24gPT0gY3B1X3RvX2xlMTYoU01CMjBfUFJPVF9JRCkpIHsKLQkJCWNpZnNfZGJnKFZGUywKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsCiAJCQkJIlNNQjIgZGlhbGVjdCByZXR1cm5lZCBidXQgbm90IHJlcXVlc3RlZFxuIik7CiAJCQlyZXR1cm4gLUVJTzsKIAkJfSBlbHNlIGlmIChyc3AtPkRpYWxlY3RSZXZpc2lvbiA9PSBjcHVfdG9fbGUxNihTTUIyMV9QUk9UX0lEKSkgewogCQkJLyogb3BzIHNldCB0byAzLjAgYnkgZGVmYXVsdCBmb3IgZGVmYXVsdCBzbyB1cGRhdGUgKi8KLQkJCXNlcy0+c2VydmVyLT5vcHMgPSAmc21iMjFfb3BlcmF0aW9uczsKLQkJCXNlcy0+c2VydmVyLT52YWxzID0gJnNtYjIxX3ZhbHVlczsKKwkJCXNlcnZlci0+b3BzID0gJnNtYjIxX29wZXJhdGlvbnM7CisJCQlzZXJ2ZXItPnZhbHMgPSAmc21iMjFfdmFsdWVzOwogCQl9IGVsc2UgaWYgKHJzcC0+RGlhbGVjdFJldmlzaW9uID09IGNwdV90b19sZTE2KFNNQjMxMV9QUk9UX0lEKSkgewotCQkJc2VzLT5zZXJ2ZXItPm9wcyA9ICZzbWIzMTFfb3BlcmF0aW9uczsKLQkJCXNlcy0+c2VydmVyLT52YWxzID0gJnNtYjMxMV92YWx1ZXM7CisJCQlzZXJ2ZXItPm9wcyA9ICZzbWIzMTFfb3BlcmF0aW9uczsKKwkJCXNlcnZlci0+dmFscyA9ICZzbWIzMTFfdmFsdWVzOwogCQl9CiAJfSBlbHNlIGlmIChsZTE2X3RvX2NwdShyc3AtPkRpYWxlY3RSZXZpc2lvbikgIT0KLQkJCQlzZXMtPnNlcnZlci0+dmFscy0+cHJvdG9jb2xfaWQpIHsKKwkJCQlzZXJ2ZXItPnZhbHMtPnByb3RvY29sX2lkKSB7CiAJCS8qIGlmIHJlcXVlc3RlZCBzaW5nbGUgZGlhbGVjdCBlbnN1cmUgcmV0dXJuZWQgZGlhbGVjdCBtYXRjaGVkICovCi0JCWNpZnNfZGJnKFZGUywgIklsbGVnYWwgMHgleCBkaWFsZWN0IHJldHVybmVkOiBub3QgcmVxdWVzdGVkXG4iLAorCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiSWxsZWdhbCAweCV4IGRpYWxlY3QgcmV0dXJuZWQ6IG5vdCByZXF1ZXN0ZWRcbiIsCiAJCQlsZTE2X3RvX2NwdShyc3AtPkRpYWxlY3RSZXZpc2lvbikpOwogCQlyZXR1cm4gLUVJTzsKIAl9CkBAIC05MjIsNyArOTIxLDcgQEAgU01CMl9uZWdvdGlhdGUoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfc2VzICpzZXMpCiAJZWxzZSBpZiAocnNwLT5EaWFsZWN0UmV2aXNpb24gPT0gY3B1X3RvX2xlMTYoU01CMzExX1BST1RfSUQpKQogCQljaWZzX2RiZyhGWUksICJuZWdvdGlhdGVkIHNtYjMuMS4xIGRpYWxlY3RcbiIpOwogCWVsc2UgewotCQljaWZzX2RiZyhWRlMsICJJbGxlZ2FsIGRpYWxlY3QgcmV0dXJuZWQgYnkgc2VydmVyIDB4JXhcbiIsCisJCWNpZnNfc2VydmVyX2RiZyhWRlMsICJJbGxlZ2FsIGRpYWxlY3QgcmV0dXJuZWQgYnkgc2VydmVyIDB4JXhcbiIsCiAJCQkgbGUxNl90b19jcHUocnNwLT5EaWFsZWN0UmV2aXNpb24pKTsKIAkJcmMgPSAtRUlPOwogCQlnb3RvIG5lZ19leGl0OwpAQCAtOTgyLDcgKzk4MSw3IEBAIFNNQjJfbmVnb3RpYXRlKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3NlcyAqc2VzKQogCQkJcmMgPSBzbWIzMTFfZGVjb2RlX25lZ19jb250ZXh0KHJzcCwgc2VydmVyLAogCQkJCQkJICAgICAgIHJzcF9pb3YuaW92X2xlbik7CiAJCWVsc2UKLQkJCWNpZnNfZGJnKFZGUywgIk1pc3NpbmcgZXhwZWN0ZWQgbmVnb3RpYXRlIGNvbnRleHRzXG4iKTsKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsICJNaXNzaW5nIGV4cGVjdGVkIG5lZ290aWF0ZSBjb250ZXh0c1xuIik7CiAJfQogbmVnX2V4aXQ6CiAJZnJlZV9yc3BfYnVmKHJlc3BfYnVmdHlwZSwgcnNwKTsKQEAgLTk5NiwxMSArOTk1LDEyIEBAIGludCBzbWIzX3ZhbGlkYXRlX25lZ290aWF0ZShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uKQogCXN0cnVjdCB2YWxpZGF0ZV9uZWdvdGlhdGVfaW5mb19yc3AgKnBuZWdfcnNwID0gTlVMTDsKIAl1MzIgcnNwbGVuOwogCXUzMiBpbmJ1ZmxlbjsgLyogbWF4IG9mIDQgZGlhbGVjdHMgKi8KKwlzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIgPSB0Y29uLT5zZXMtPnNlcnZlcjsKIAogCWNpZnNfZGJnKEZZSSwgInZhbGlkYXRlIG5lZ290aWF0ZVxuIik7CiAKIAkvKiBJbiBTTUIzLjExIHByZWF1dGggaW50ZWdyaXR5IHN1cGVyc2VkZXMgdmFsaWRhdGUgbmVnb3RpYXRlICovCi0JaWYgKHRjb24tPnNlcy0+c2VydmVyLT5kaWFsZWN0ID09IFNNQjMxMV9QUk9UX0lEKQorCWlmIChzZXJ2ZXItPmRpYWxlY3QgPT0gU01CMzExX1BST1RfSUQpCiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTEwMTksMTUgKzEwMTksMTUgQEAgaW50IHNtYjNfdmFsaWRhdGVfbmVnb3RpYXRlKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24pCiAJfQogCiAJaWYgKHRjb24tPnNlcy0+c2Vzc2lvbl9mbGFncyAmIFNNQjJfU0VTU0lPTl9GTEFHX0lTX05VTEwpCi0JCWNpZnNfZGJnKFZGUywgIlVuZXhwZWN0ZWQgbnVsbCB1c2VyIChhbm9ueW1vdXMpIGF1dGggZmxhZyBzZW50IGJ5IHNlcnZlclxuIik7CisJCWNpZnNfdGNvbl9kYmcoVkZTLCAiVW5leHBlY3RlZCBudWxsIHVzZXIgKGFub255bW91cykgYXV0aCBmbGFnIHNlbnQgYnkgc2VydmVyXG4iKTsKIAogCXBuZWdfaW5idWYgPSBrbWFsbG9jKHNpemVvZigqcG5lZ19pbmJ1ZiksIEdGUF9OT0ZTKTsKIAlpZiAoIXBuZWdfaW5idWYpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJcG5lZ19pbmJ1Zi0+Q2FwYWJpbGl0aWVzID0KLQkJCWNwdV90b19sZTMyKHRjb24tPnNlcy0+c2VydmVyLT52YWxzLT5yZXFfY2FwYWJpbGl0aWVzKTsKLQltZW1jcHkocG5lZ19pbmJ1Zi0+R3VpZCwgdGNvbi0+c2VzLT5zZXJ2ZXItPmNsaWVudF9ndWlkLAorCQkJY3B1X3RvX2xlMzIoc2VydmVyLT52YWxzLT5yZXFfY2FwYWJpbGl0aWVzKTsKKwltZW1jcHkocG5lZ19pbmJ1Zi0+R3VpZCwgc2VydmVyLT5jbGllbnRfZ3VpZCwKIAkJCQkJU01CMl9DTElFTlRfR1VJRF9TSVpFKTsKIAogCWlmICh0Y29uLT5zZXMtPnNpZ24pCkBAIC0xMDQwLDcgKzEwNDAsNyBAQCBpbnQgc21iM192YWxpZGF0ZV9uZWdvdGlhdGUoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbikKIAkJcG5lZ19pbmJ1Zi0+U2VjdXJpdHlNb2RlID0gMDsKIAogCi0JaWYgKHN0cmNtcCh0Y29uLT5zZXMtPnNlcnZlci0+dmFscy0+dmVyc2lvbl9zdHJpbmcsCisJaWYgKHN0cmNtcChzZXJ2ZXItPnZhbHMtPnZlcnNpb25fc3RyaW5nLAogCQlTTUIzQU5ZX1ZFUlNJT05fU1RSSU5HKSA9PSAwKSB7CiAJCXBuZWdfaW5idWYtPkRpYWxlY3RzWzBdID0gY3B1X3RvX2xlMTYoU01CMzBfUFJPVF9JRCk7CiAJCXBuZWdfaW5idWYtPkRpYWxlY3RzWzFdID0gY3B1X3RvX2xlMTYoU01CMzAyX1BST1RfSUQpOwpAQCAtMTA0OCw3ICsxMDQ4LDcgQEAgaW50IHNtYjNfdmFsaWRhdGVfbmVnb3RpYXRlKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24pCiAJCS8qIHN0cnVjdHVyZSBpcyBiaWcgZW5vdWdoIGZvciAzIGRpYWxlY3RzLCBzZW5kaW5nIG9ubHkgMiAqLwogCQlpbmJ1ZmxlbiA9IHNpemVvZigqcG5lZ19pbmJ1ZikgLQogCQkJCSgyICogc2l6ZW9mKHBuZWdfaW5idWYtPkRpYWxlY3RzWzBdKSk7Ci0JfSBlbHNlIGlmIChzdHJjbXAodGNvbi0+c2VzLT5zZXJ2ZXItPnZhbHMtPnZlcnNpb25fc3RyaW5nLAorCX0gZWxzZSBpZiAoc3RyY21wKHNlcnZlci0+dmFscy0+dmVyc2lvbl9zdHJpbmcsCiAJCVNNQkRFRkFVTFRfVkVSU0lPTl9TVFJJTkcpID09IDApIHsKIAkJcG5lZ19pbmJ1Zi0+RGlhbGVjdHNbMF0gPSBjcHVfdG9fbGUxNihTTUIyMV9QUk9UX0lEKTsKIAkJcG5lZ19pbmJ1Zi0+RGlhbGVjdHNbMV0gPSBjcHVfdG9fbGUxNihTTUIzMF9QUk9UX0lEKTsKQEAgLTEwNjAsNyArMTA2MCw3IEBAIGludCBzbWIzX3ZhbGlkYXRlX25lZ290aWF0ZShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uKQogCX0gZWxzZSB7CiAJCS8qIG90aGVyd2lzZSBzcGVjaWZpYyBkaWFsZWN0IHdhcyByZXF1ZXN0ZWQgKi8KIAkJcG5lZ19pbmJ1Zi0+RGlhbGVjdHNbMF0gPQotCQkJY3B1X3RvX2xlMTYodGNvbi0+c2VzLT5zZXJ2ZXItPnZhbHMtPnByb3RvY29sX2lkKTsKKwkJCWNwdV90b19sZTE2KHNlcnZlci0+dmFscy0+cHJvdG9jb2xfaWQpOwogCQlwbmVnX2luYnVmLT5EaWFsZWN0Q291bnQgPSBjcHVfdG9fbGUxNigxKTsKIAkJLyogc3RydWN0dXJlIGlzIGJpZyBlbm91Z2ggZm9yIDMgZGlhbGVjdHMsIHNlbmRpbmcgb25seSAxICovCiAJCWluYnVmbGVuID0gc2l6ZW9mKCpwbmVnX2luYnVmKSAtCkBAIC0xMDc2LDE4ICsxMDc2LDE4IEBAIGludCBzbWIzX3ZhbGlkYXRlX25lZ290aWF0ZShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uKQogCQkgKiBPbGQgV2luZG93cyB2ZXJzaW9ucyBvciBOZXRhcHAgU01CIHNlcnZlciBjYW4gcmV0dXJuCiAJCSAqIG5vdCBzdXBwb3J0ZWQgZXJyb3IuIENsaWVudCBzaG91bGQgYWNjZXB0IGl0LgogCQkgKi8KLQkJY2lmc19kYmcoVkZTLCAiU2VydmVyIGRvZXMgbm90IHN1cHBvcnQgdmFsaWRhdGUgbmVnb3RpYXRlXG4iKTsKKwkJY2lmc190Y29uX2RiZyhWRlMsICJTZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCB2YWxpZGF0ZSBuZWdvdGlhdGVcbiIpOwogCQlyYyA9IDA7CiAJCWdvdG8gb3V0X2ZyZWVfaW5idWY7CiAJfSBlbHNlIGlmIChyYyAhPSAwKSB7Ci0JCWNpZnNfZGJnKFZGUywgInZhbGlkYXRlIHByb3RvY29sIG5lZ290aWF0ZSBmYWlsZWQ6ICVkXG4iLCByYyk7CisJCWNpZnNfdGNvbl9kYmcoVkZTLCAidmFsaWRhdGUgcHJvdG9jb2wgbmVnb3RpYXRlIGZhaWxlZDogJWRcbiIsIHJjKTsKIAkJcmMgPSAtRUlPOwogCQlnb3RvIG91dF9mcmVlX2luYnVmOwogCX0KIAogCXJjID0gLUVJTzsKIAlpZiAocnNwbGVuICE9IHNpemVvZigqcG5lZ19yc3ApKSB7Ci0JCWNpZnNfZGJnKFZGUywgImludmFsaWQgcHJvdG9jb2wgbmVnb3RpYXRlIHJlc3BvbnNlIHNpemU6ICVkXG4iLAorCQljaWZzX3Rjb25fZGJnKFZGUywgImludmFsaWQgcHJvdG9jb2wgbmVnb3RpYXRlIHJlc3BvbnNlIHNpemU6ICVkXG4iLAogCQkJIHJzcGxlbik7CiAKIAkJLyogcmVsYXggY2hlY2sgc2luY2UgTWFjIHJldHVybnMgbWF4IGJ1ZnNpemUgYWxsb3dlZCBvbiBpb2N0bCAqLwpAQCAtMTA5NiwxNiArMTA5NiwxNiBAQCBpbnQgc21iM192YWxpZGF0ZV9uZWdvdGlhdGUoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbikKIAl9CiAKIAkvKiBjaGVjayB2YWxpZGF0ZSBuZWdvdGlhdGUgaW5mbyByZXNwb25zZSBtYXRjaGVzIHdoYXQgd2UgZ290IGVhcmxpZXIgKi8KLQlpZiAocG5lZ19yc3AtPkRpYWxlY3QgIT0gY3B1X3RvX2xlMTYodGNvbi0+c2VzLT5zZXJ2ZXItPmRpYWxlY3QpKQorCWlmIChwbmVnX3JzcC0+RGlhbGVjdCAhPSBjcHVfdG9fbGUxNihzZXJ2ZXItPmRpYWxlY3QpKQogCQlnb3RvIHZuZWdfb3V0OwogCi0JaWYgKHBuZWdfcnNwLT5TZWN1cml0eU1vZGUgIT0gY3B1X3RvX2xlMTYodGNvbi0+c2VzLT5zZXJ2ZXItPnNlY19tb2RlKSkKKwlpZiAocG5lZ19yc3AtPlNlY3VyaXR5TW9kZSAhPSBjcHVfdG9fbGUxNihzZXJ2ZXItPnNlY19tb2RlKSkKIAkJZ290byB2bmVnX291dDsKIAogCS8qIGRvIG5vdCB2YWxpZGF0ZSBzZXJ2ZXIgZ3VpZCBiZWNhdXNlIG5vdCBzYXZlZCBhdCBuZWdwcm90IHRpbWUgeWV0ICovCiAKIAlpZiAoKGxlMzJfdG9fY3B1KHBuZWdfcnNwLT5DYXBhYmlsaXRpZXMpIHwgU01CMl9OVF9GSU5EIHwKLQkgICAgICBTTUIyX0xBUkdFX0ZJTEVTKSAhPSB0Y29uLT5zZXMtPnNlcnZlci0+Y2FwYWJpbGl0aWVzKQorCSAgICAgIFNNQjJfTEFSR0VfRklMRVMpICE9IHNlcnZlci0+Y2FwYWJpbGl0aWVzKQogCQlnb3RvIHZuZWdfb3V0OwogCiAJLyogdmFsaWRhdGUgbmVnb3RpYXRlIHN1Y2Nlc3NmdWwgKi8KQEAgLTExMTQsNyArMTExNCw3IEBAIGludCBzbWIzX3ZhbGlkYXRlX25lZ290aWF0ZShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uKQogCWdvdG8gb3V0X2ZyZWVfcnNwOwogCiB2bmVnX291dDoKLQljaWZzX2RiZyhWRlMsICJwcm90b2NvbCByZXZhbGlkYXRpb24gLSBzZWN1cml0eSBzZXR0aW5ncyBtaXNtYXRjaFxuIik7CisJY2lmc190Y29uX2RiZyhWRlMsICJwcm90b2NvbCByZXZhbGlkYXRpb24gLSBzZWN1cml0eSBzZXR0aW5ncyBtaXNtYXRjaFxuIik7CiBvdXRfZnJlZV9yc3A6CiAJa2ZyZWUocG5lZ19yc3ApOwogb3V0X2ZyZWVfaW5idWY6CkBAIC0xNTY4LDcgKzE1NjgsNyBAQCBTTUIyX3Nlc3Nfc2V0dXAoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfc2VzICpzZXMsCiAJCXNlc3NfZGF0YS0+ZnVuYyhzZXNzX2RhdGEpOwogCiAJaWYgKChzZXMtPnNlc3Npb25fZmxhZ3MgJiBTTUIyX1NFU1NJT05fRkxBR19JU19HVUVTVCkgJiYgKHNlcy0+c2lnbikpCi0JCWNpZnNfZGJnKFZGUywgInNpZ25pbmcgcmVxdWVzdGVkIGJ1dCBhdXRoZW50aWNhdGVkIGFzIGd1ZXN0XG4iKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgInNpZ25pbmcgcmVxdWVzdGVkIGJ1dCBhdXRoZW50aWNhdGVkIGFzIGd1ZXN0XG4iKTsKIAlyYyA9IHNlc3NfZGF0YS0+cmVzdWx0Owogb3V0OgogCWtmcmVlKHNlc3NfZGF0YSk7CkBAIC0xNjYxLDEwICsxNjYxLDExIEBAIFNNQjJfdGNvbihjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc19zZXMgKnNlcywgY29uc3QgY2hhciAqdHJlZSwKIAlfX2xlMTYgKnVuY19wYXRoID0gTlVMTDsKIAlpbnQgZmxhZ3MgPSAwOwogCXVuc2lnbmVkIGludCB0b3RhbF9sZW47CisJc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyID0gc2VzLT5zZXJ2ZXI7CiAKIAljaWZzX2RiZyhGWUksICJUQ09OXG4iKTsKIAotCWlmICghKHNlcy0+c2VydmVyKSB8fCAhdHJlZSkKKwlpZiAoIXNlcnZlciB8fCAhdHJlZSkKIAkJcmV0dXJuIC1FSU87CiAKIAl1bmNfcGF0aCA9IGttYWxsb2MoTUFYX1NIQVJFTkFNRV9MRU5HVEggKiAyLCBHRlBfS0VSTkVMKTsKQEAgLTE3MDcsNyArMTcwOCw3IEBAIFNNQjJfdGNvbihjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc19zZXMgKnNlcywgY29uc3QgY2hhciAqdHJlZSwKIAkgKiB1bmxlc3MgaXQgaXMgZ3Vlc3Qgb3IgYW5vbnltb3VzIHVzZXIuIFNlZSBNUy1TTUIyIDMuMi41LjMuMQogCSAqIChTYW1iYSBzZXJ2ZXJzIGRvbid0IGFsd2F5cyBzZXQgdGhlIGZsYWcgc28gYWxzbyBjaGVjayBpZiBudWxsIHVzZXIpCiAJICovCi0JaWYgKChzZXMtPnNlcnZlci0+ZGlhbGVjdCA9PSBTTUIzMTFfUFJPVF9JRCkgJiYKKwlpZiAoKHNlcnZlci0+ZGlhbGVjdCA9PSBTTUIzMTFfUFJPVF9JRCkgJiYKIAkgICAgIXNtYjNfZW5jcnlwdGlvbl9yZXF1aXJlZCh0Y29uKSAmJgogCSAgICAhKHNlcy0+c2Vzc2lvbl9mbGFncyAmCiAJCSAgICAoU01CMl9TRVNTSU9OX0ZMQUdfSVNfR1VFU1R8U01CMl9TRVNTSU9OX0ZMQUdfSVNfTlVMTCkpICYmCkBAIC0xNzQ2LDcgKzE3NDcsNyBAQCBTTUIyX3Rjb24oY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfc2VzICpzZXMsIGNvbnN0IGNoYXIgKnRyZWUsCiAJCWNpZnNfZGJnKEZZSSwgImNvbm5lY3Rpb24gdG8gcHJpbnRlclxuIik7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCWNpZnNfZGJnKFZGUywgInVua25vd24gc2hhcmUgdHlwZSAlZFxuIiwgcnNwLT5TaGFyZVR5cGUpOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAidW5rbm93biBzaGFyZSB0eXBlICVkXG4iLCByc3AtPlNoYXJlVHlwZSk7CiAJCXJjID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gdGNvbl9lcnJvcl9leGl0OwogCX0KQEAgLTE3NjEsMTUgKzE3NjIsMTUgQEAgU01CMl90Y29uKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3NlcyAqc2VzLCBjb25zdCBjaGFyICp0cmVlLAogCiAJaWYgKChyc3AtPkNhcGFiaWxpdGllcyAmIFNNQjJfU0hBUkVfQ0FQX0RGUykgJiYKIAkgICAgKCh0Y29uLT5zaGFyZV9mbGFncyAmIFNISTEwMDVfRkxBR1NfREZTKSA9PSAwKSkKLQkJY2lmc19kYmcoVkZTLCAiREZTIGNhcGFiaWxpdHkgY29udHJhZGljdHMgREZTIGZsYWdcbiIpOworCQljaWZzX3Rjb25fZGJnKFZGUywgIkRGUyBjYXBhYmlsaXR5IGNvbnRyYWRpY3RzIERGUyBmbGFnXG4iKTsKIAogCWlmICh0Y29uLT5zZWFsICYmCi0JICAgICEodGNvbi0+c2VzLT5zZXJ2ZXItPmNhcGFiaWxpdGllcyAmIFNNQjJfR0xPQkFMX0NBUF9FTkNSWVBUSU9OKSkKLQkJY2lmc19kYmcoVkZTLCAiRW5jcnlwdGlvbiBpcyByZXF1ZXN0ZWQgYnV0IG5vdCBzdXBwb3J0ZWRcbiIpOworCSAgICAhKHNlcnZlci0+Y2FwYWJpbGl0aWVzICYgU01CMl9HTE9CQUxfQ0FQX0VOQ1JZUFRJT04pKQorCQljaWZzX3Rjb25fZGJnKFZGUywgIkVuY3J5cHRpb24gaXMgcmVxdWVzdGVkIGJ1dCBub3Qgc3VwcG9ydGVkXG4iKTsKIAogCWluaXRfY29weV9jaHVua19kZWZhdWx0cyh0Y29uKTsKLQlpZiAodGNvbi0+c2VzLT5zZXJ2ZXItPm9wcy0+dmFsaWRhdGVfbmVnb3RpYXRlKQotCQlyYyA9IHRjb24tPnNlcy0+c2VydmVyLT5vcHMtPnZhbGlkYXRlX25lZ290aWF0ZSh4aWQsIHRjb24pOworCWlmIChzZXJ2ZXItPm9wcy0+dmFsaWRhdGVfbmVnb3RpYXRlKQorCQlyYyA9IHNlcnZlci0+b3BzLT52YWxpZGF0ZV9uZWdvdGlhdGUoeGlkLCB0Y29uKTsKIHRjb25fZXhpdDoKIAogCWZyZWVfcnNwX2J1ZihyZXNwX2J1ZnR5cGUsIHJzcCk7CkBAIC0xNzc4LDcgKzE3NzksNyBAQCBTTUIyX3Rjb24oY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfc2VzICpzZXMsIGNvbnN0IGNoYXIgKnRyZWUsCiAKIHRjb25fZXJyb3JfZXhpdDoKIAlpZiAocnNwICYmIHJzcC0+c3luY19oZHIuU3RhdHVzID09IFNUQVRVU19CQURfTkVUV09SS19OQU1FKSB7Ci0JCWNpZnNfZGJnKFZGUywgIkJBRF9ORVRXT1JLX05BTUU6ICVzXG4iLCB0cmVlKTsKKwkJY2lmc190Y29uX2RiZyhWRlMsICJCQURfTkVUV09SS19OQU1FOiAlc1xuIiwgdHJlZSk7CiAJfQogCWdvdG8gdGNvbl9leGl0OwogfQpAQCAtMjQ1OCw3ICsyNDU5LDcgQEAgU01CMl9vcGVuX2luaXQoc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwgc3RydWN0IHNtYl9ycXN0ICpycXN0LCBfX3U4ICpvcGxvY2ssCiAJaW92WzFdLmlvdl9sZW4gPSB1bmlfcGF0aF9sZW47CiAJaW92WzFdLmlvdl9iYXNlID0gcGF0aDsKIAotCWlmICghc2VydmVyLT5vcGxvY2tzKQorCWlmICgoIXNlcnZlci0+b3Bsb2NrcykgfHwgKHRjb24tPm5vX2xlYXNlKSkKIAkJKm9wbG9jayA9IFNNQjJfT1BMT0NLX0xFVkVMX05PTkU7CiAKIAlpZiAoIShzZXJ2ZXItPmNhcGFiaWxpdGllcyAmIFNNQjJfR0xPQkFMX0NBUF9MRUFTSU5HKSB8fApAQCAtMjU5NCw2ICsyNTk1LDExIEBAIFNNQjJfb3Blbihjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc19vcGVuX3Bhcm1zICpvcGFybXMsIF9fbGUxNiAqcGF0aCwKIAkJfQogCQl0cmFjZV9zbWIzX29wZW5fZXJyKHhpZCwgdGNvbi0+dGlkLCBzZXMtPlN1aWQsCiAJCQkJICAgIG9wYXJtcy0+Y3JlYXRlX29wdGlvbnMsIG9wYXJtcy0+ZGVzaXJlZF9hY2Nlc3MsIHJjKTsKKwkJaWYgKHJjID09IC1FUkVNQ0hHKSB7CisJCQlwcmludGtfb25jZShLRVJOX1dBUk5JTkcgInNlcnZlciBzaGFyZSAlcyBkZWxldGVkXG4iLAorCQkJCSAgICB0Y29uLT50cmVlTmFtZSk7CisJCQl0Y29uLT5uZWVkX3JlY29ubmVjdCA9IHRydWU7CisJCX0KIAkJZ290byBjcmVhdF9leGl0OwogCX0gZWxzZQogCQl0cmFjZV9zbWIzX29wZW5fZG9uZSh4aWQsIHJzcC0+UGVyc2lzdGVudEZpbGVJZCwgdGNvbi0+dGlkLApAQCAtMjc0Miw2ICsyNzQ4LDcgQEAgU01CMl9pb2N0bChjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLCB1NjQgcGVyc2lzdGVudF9maWQsCiAJaW50IHJlc3BfYnVmdHlwZSA9IENJRlNfTk9fQlVGRkVSOwogCWludCByYyA9IDA7CiAJaW50IGZsYWdzID0gMDsKKwlzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXI7CiAKIAljaWZzX2RiZyhGWUksICJTTUIyIElPQ1RMXG4iKTsKIApAQCAtMjc1Nyw3ICsyNzY0LDEwIEBAIFNNQjJfaW9jdGwoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwgdTY0IHBlcnNpc3RlbnRfZmlkLAogCWVsc2UKIAkJcmV0dXJuIC1FSU87CiAKLQlpZiAoIXNlcyB8fCAhKHNlcy0+c2VydmVyKSkKKwlpZiAoIXNlcykKKwkJcmV0dXJuIC1FSU87CisJc2VydmVyID0gc2VzLT5zZXJ2ZXI7CisJaWYgKCFzZXJ2ZXIpCiAJCXJldHVybiAtRUlPOwogCiAJaWYgKHNtYjNfZW5jcnlwdGlvbl9yZXF1aXJlZCh0Y29uKSkKQEAgLTI4MDcsMTQgKzI4MTcsMTQgQEAgU01CMl9pb2N0bChjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLCB1NjQgcGVyc2lzdGVudF9maWQsCiAJaWYgKCpwbGVuID09IDApCiAJCWdvdG8gaW9jdGxfZXhpdDsgLyogc2VydmVyIHJldHVybmVkIG5vIGRhdGEgKi8KIAllbHNlIGlmICgqcGxlbiA+IHJzcF9pb3YuaW92X2xlbiB8fCAqcGxlbiA+IDB4RkYwMCkgewotCQljaWZzX2RiZyhWRlMsICJzcnYgcmV0dXJuZWQgaW52YWxpZCBpb2N0bCBsZW5ndGg6ICVkXG4iLCAqcGxlbik7CisJCWNpZnNfdGNvbl9kYmcoVkZTLCAic3J2IHJldHVybmVkIGludmFsaWQgaW9jdGwgbGVuZ3RoOiAlZFxuIiwgKnBsZW4pOwogCQkqcGxlbiA9IDA7CiAJCXJjID0gLUVJTzsKIAkJZ290byBpb2N0bF9leGl0OwogCX0KIAogCWlmIChyc3BfaW92Lmlvdl9sZW4gLSAqcGxlbiA8IGxlMzJfdG9fY3B1KHJzcC0+T3V0cHV0T2Zmc2V0KSkgewotCQljaWZzX2RiZyhWRlMsICJNYWxmb3JtZWQgaW9jdGwgcmVzcDogbGVuICVkIG9mZnNldCAlZFxuIiwgKnBsZW4sCisJCWNpZnNfdGNvbl9kYmcoVkZTLCAiTWFsZm9ybWVkIGlvY3RsIHJlc3A6IGxlbiAlZCBvZmZzZXQgJWRcbiIsICpwbGVuLAogCQkJbGUzMl90b19jcHUocnNwLT5PdXRwdXRPZmZzZXQpKTsKIAkJKnBsZW4gPSAwOwogCQlyYyA9IC1FSU87CkBAIC0yOTEzLDYgKzI5MjMsNyBAQCBTTUIyX2Nsb3NlX2ZsYWdzKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJcnFzdC5ycV9pb3YgPSBpb3Y7CiAJcnFzdC5ycV9udmVjID0gMTsKIAorCXRyYWNlX3NtYjNfY2xvc2VfZW50ZXIoeGlkLCBwZXJzaXN0ZW50X2ZpZCwgdGNvbi0+dGlkLCBzZXMtPlN1aWQpOwogCXJjID0gU01CMl9jbG9zZV9pbml0KHRjb24sICZycXN0LCBwZXJzaXN0ZW50X2ZpZCwgdm9sYXRpbGVfZmlkKTsKIAlpZiAocmMpCiAJCWdvdG8gY2xvc2VfZXhpdDsKQEAgLTI5MjUsNyArMjkzNiw5IEBAIFNNQjJfY2xvc2VfZmxhZ3MoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAkJdHJhY2Vfc21iM19jbG9zZV9lcnIoeGlkLCBwZXJzaXN0ZW50X2ZpZCwgdGNvbi0+dGlkLCBzZXMtPlN1aWQsCiAJCQkJICAgICByYyk7CiAJCWdvdG8gY2xvc2VfZXhpdDsKLQl9CisJfSBlbHNlCisJCXRyYWNlX3NtYjNfY2xvc2VfZG9uZSh4aWQsIHBlcnNpc3RlbnRfZmlkLCB0Y29uLT50aWQsCisJCQkJICAgICAgc2VzLT5TdWlkKTsKIAogCWF0b21pY19kZWMoJnRjb24tPm51bV9yZW1vdGVfb3BlbnMpOwogCkBAIC0zMDU1LDEyICszMDY4LDE2IEBAIHF1ZXJ5X2luZm8oY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAlpbnQgcmMgPSAwOwogCWludCByZXNwX2J1ZnR5cGUgPSBDSUZTX05PX0JVRkZFUjsKIAlzdHJ1Y3QgY2lmc19zZXMgKnNlcyA9IHRjb24tPnNlczsKKwlzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXI7CiAJaW50IGZsYWdzID0gMDsKIAlib29sIGFsbG9jYXRlZCA9IGZhbHNlOwogCiAJY2lmc19kYmcoRllJLCAiUXVlcnkgSW5mb1xuIik7CiAKLQlpZiAoIXNlcyB8fCAhKHNlcy0+c2VydmVyKSkKKwlpZiAoIXNlcykKKwkJcmV0dXJuIC1FSU87CisJc2VydmVyID0gc2VzLT5zZXJ2ZXI7CisJaWYgKCFzZXJ2ZXIpCiAJCXJldHVybiAtRUlPOwogCiAJaWYgKHNtYjNfZW5jcnlwdGlvbl9yZXF1aXJlZCh0Y29uKSkKQEAgLTMwOTgsNyArMzExNSw3IEBAIHF1ZXJ5X2luZm8oY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAkJaWYgKCEqZGF0YSkgewogCQkJKmRhdGEgPSBrbWFsbG9jKCpkbGVuLCBHRlBfS0VSTkVMKTsKIAkJCWlmICghKmRhdGEpIHsKLQkJCQljaWZzX2RiZyhWRlMsCisJCQkJY2lmc190Y29uX2RiZyhWRlMsCiAJCQkJCSJFcnJvciAlZCBhbGxvY2F0aW5nIG1lbW9yeSBmb3IgYWNsXG4iLAogCQkJCQlyYyk7CiAJCQkJKmRsZW4gPSAwOwpAQCAtMzE1OSw2ICszMTc2LDkxIEBAIFNNQjJfZ2V0X3Nydl9udW0oY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIH0KIAogLyoKKyAqIENIQU5HRV9OT1RJRlkgUmVxdWVzdCBpcyBzZW50IHRvIGdldCBub3RpZmljYXRpb25zIG9uIGNoYW5nZXMgdG8gYSBkaXJlY3RvcnkKKyAqIFNlZSBNUy1TTUIyIDIuMi4zNSBhbmQgMi4yLjM2CisgKi8KKworaW50CitTTUIyX25vdGlmeV9pbml0KGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBzbWJfcnFzdCAqcnFzdCwKKwkJc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwgdTY0IHBlcnNpc3RlbnRfZmlkLCB1NjQgdm9sYXRpbGVfZmlkLAorCQl1MzIgY29tcGxldGlvbl9maWx0ZXIsIGJvb2wgd2F0Y2hfdHJlZSkKK3sKKwlzdHJ1Y3Qgc21iMl9jaGFuZ2Vfbm90aWZ5X3JlcSAqcmVxOworCXN0cnVjdCBrdmVjICppb3YgPSBycXN0LT5ycV9pb3Y7CisJdW5zaWduZWQgaW50IHRvdGFsX2xlbjsKKwlpbnQgcmM7CisKKwlyYyA9IHNtYjJfcGxhaW5fcmVxX2luaXQoU01CMl9DSEFOR0VfTk9USUZZLCB0Y29uLCAodm9pZCAqKikgJnJlcSwgJnRvdGFsX2xlbik7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlyZXEtPlBlcnNpc3RlbnRGaWxlSWQgPSBwZXJzaXN0ZW50X2ZpZDsKKwlyZXEtPlZvbGF0aWxlRmlsZUlkID0gdm9sYXRpbGVfZmlkOworCXJlcS0+T3V0cHV0QnVmZmVyTGVuZ3RoID0gU01CMl9NQVhfQlVGRkVSX1NJWkUgLSBNQVhfU01CMl9IRFJfU0laRTsKKwlyZXEtPkNvbXBsZXRpb25GaWx0ZXIgPSBjcHVfdG9fbGUzMihjb21wbGV0aW9uX2ZpbHRlcik7CisJaWYgKHdhdGNoX3RyZWUpCisJCXJlcS0+RmxhZ3MgPSBjcHVfdG9fbGUxNihTTUIyX1dBVENIX1RSRUUpOworCWVsc2UKKwkJcmVxLT5GbGFncyA9IDA7CisKKwlpb3ZbMF0uaW92X2Jhc2UgPSAoY2hhciAqKXJlcTsKKwlpb3ZbMF0uaW92X2xlbiA9IHRvdGFsX2xlbjsKKworCXJldHVybiAwOworfQorCitpbnQKK1NNQjJfY2hhbmdlX25vdGlmeShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAorCQl1NjQgcGVyc2lzdGVudF9maWQsIHU2NCB2b2xhdGlsZV9maWQsIGJvb2wgd2F0Y2hfdHJlZSwKKwkJdTMyIGNvbXBsZXRpb25fZmlsdGVyKQoreworCXN0cnVjdCBjaWZzX3NlcyAqc2VzID0gdGNvbi0+c2VzOworCXN0cnVjdCBzbWJfcnFzdCBycXN0OworCXN0cnVjdCBrdmVjIGlvdlsxXTsKKwlzdHJ1Y3Qga3ZlYyByc3BfaW92ID0ge05VTEwsIDB9OworCWludCByZXNwX2J1ZnR5cGUgPSBDSUZTX05PX0JVRkZFUjsKKwlpbnQgZmxhZ3MgPSAwOworCWludCByYyA9IDA7CisKKwljaWZzX2RiZyhGWUksICJjaGFuZ2Ugbm90aWZ5XG4iKTsKKwlpZiAoIXNlcyB8fCAhKHNlcy0+c2VydmVyKSkKKwkJcmV0dXJuIC1FSU87CisKKwlpZiAoc21iM19lbmNyeXB0aW9uX3JlcXVpcmVkKHRjb24pKQorCQlmbGFncyB8PSBDSUZTX1RSQU5TRk9STV9SRVE7CisKKwltZW1zZXQoJnJxc3QsIDAsIHNpemVvZihzdHJ1Y3Qgc21iX3Jxc3QpKTsKKwltZW1zZXQoJmlvdiwgMCwgc2l6ZW9mKGlvdikpOworCXJxc3QucnFfaW92ID0gaW92OworCXJxc3QucnFfbnZlYyA9IDE7CisKKwlyYyA9IFNNQjJfbm90aWZ5X2luaXQoeGlkLCAmcnFzdCwgdGNvbiwgcGVyc2lzdGVudF9maWQsIHZvbGF0aWxlX2ZpZCwKKwkJCSAgICAgIGNvbXBsZXRpb25fZmlsdGVyLCB3YXRjaF90cmVlKTsKKwlpZiAocmMpCisJCWdvdG8gY25vdGlmeV9leGl0OworCisJdHJhY2Vfc21iM19ub3RpZnlfZW50ZXIoeGlkLCBwZXJzaXN0ZW50X2ZpZCwgdGNvbi0+dGlkLCBzZXMtPlN1aWQsCisJCQkJKHU4KXdhdGNoX3RyZWUsIGNvbXBsZXRpb25fZmlsdGVyKTsKKwlyYyA9IGNpZnNfc2VuZF9yZWN2KHhpZCwgc2VzLCAmcnFzdCwgJnJlc3BfYnVmdHlwZSwgZmxhZ3MsICZyc3BfaW92KTsKKworCWlmIChyYyAhPSAwKSB7CisJCWNpZnNfc3RhdHNfZmFpbF9pbmModGNvbiwgU01CMl9DSEFOR0VfTk9USUZZX0hFKTsKKwkJdHJhY2Vfc21iM19ub3RpZnlfZXJyKHhpZCwgcGVyc2lzdGVudF9maWQsIHRjb24tPnRpZCwgc2VzLT5TdWlkLAorCQkJCSh1OCl3YXRjaF90cmVlLCBjb21wbGV0aW9uX2ZpbHRlciwgcmMpOworCX0gZWxzZQorCQl0cmFjZV9zbWIzX25vdGlmeV9kb25lKHhpZCwgcGVyc2lzdGVudF9maWQsIHRjb24tPnRpZCwKKwkJCQlzZXMtPlN1aWQsICh1OCl3YXRjaF90cmVlLCBjb21wbGV0aW9uX2ZpbHRlcik7CisKKyBjbm90aWZ5X2V4aXQ6CisJaWYgKHJxc3QucnFfaW92KQorCQljaWZzX3NtYWxsX2J1Zl9yZWxlYXNlKHJxc3QucnFfaW92WzBdLmlvdl9iYXNlKTsgLyogcmVxdWVzdCAqLworCWZyZWVfcnNwX2J1ZihyZXNwX2J1ZnR5cGUsIHJzcF9pb3YuaW92X2Jhc2UpOworCXJldHVybiByYzsKK30KKworCisKKy8qCiAgKiBUaGlzIGlzIGEgbm8tb3AgZm9yIG5vdy4gV2UncmUgbm90IHJlYWxseSBpbnRlcmVzdGVkIGluIHRoZSByZXBseSwgYnV0CiAgKiByYXRoZXIgaW4gdGhlIGZhY3QgdGhhdCB0aGUgc2VydmVyIHNlbnQgb25lIGFuZCB0aGF0IHNlcnZlci0+bHN0cnAKICAqIGdldHMgdXBkYXRlZC4KQEAgLTMyODcsNTEgKzMzODksNzYgQEAgU01CMl9lY2hvKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAlyZXR1cm4gcmM7CiB9CiAKLWludAotU01CMl9mbHVzaChjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLCB1NjQgcGVyc2lzdGVudF9maWQsCi0JICAgdTY0IHZvbGF0aWxlX2ZpZCkKK3ZvaWQKK1NNQjJfZmx1c2hfZnJlZShzdHJ1Y3Qgc21iX3Jxc3QgKnJxc3QpCiB7Ci0Jc3RydWN0IHNtYl9ycXN0IHJxc3Q7CisJaWYgKHJxc3QgJiYgcnFzdC0+cnFfaW92KQorCQljaWZzX3NtYWxsX2J1Zl9yZWxlYXNlKHJxc3QtPnJxX2lvdlswXS5pb3ZfYmFzZSk7IC8qIHJlcXVlc3QgKi8KK30KKworaW50CitTTUIyX2ZsdXNoX2luaXQoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IHNtYl9ycXN0ICpycXN0LAorCQlzdHJ1Y3QgY2lmc190Y29uICp0Y29uLCB1NjQgcGVyc2lzdGVudF9maWQsIHU2NCB2b2xhdGlsZV9maWQpCit7CiAJc3RydWN0IHNtYjJfZmx1c2hfcmVxICpyZXE7Ci0Jc3RydWN0IGNpZnNfc2VzICpzZXMgPSB0Y29uLT5zZXM7Ci0Jc3RydWN0IGt2ZWMgaW92WzFdOwotCXN0cnVjdCBrdmVjIHJzcF9pb3Y7Ci0JaW50IHJlc3BfYnVmdHlwZTsKLQlpbnQgcmMgPSAwOwotCWludCBmbGFncyA9IDA7CisJc3RydWN0IGt2ZWMgKmlvdiA9IHJxc3QtPnJxX2lvdjsKIAl1bnNpZ25lZCBpbnQgdG90YWxfbGVuOwotCi0JY2lmc19kYmcoRllJLCAiRmx1c2hcbiIpOwotCi0JaWYgKCFzZXMgfHwgIShzZXMtPnNlcnZlcikpCi0JCXJldHVybiAtRUlPOworCWludCByYzsKIAogCXJjID0gc21iMl9wbGFpbl9yZXFfaW5pdChTTUIyX0ZMVVNILCB0Y29uLCAodm9pZCAqKikgJnJlcSwgJnRvdGFsX2xlbik7CiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CiAKLQlpZiAoc21iM19lbmNyeXB0aW9uX3JlcXVpcmVkKHRjb24pKQotCQlmbGFncyB8PSBDSUZTX1RSQU5TRk9STV9SRVE7Ci0KIAlyZXEtPlBlcnNpc3RlbnRGaWxlSWQgPSBwZXJzaXN0ZW50X2ZpZDsKIAlyZXEtPlZvbGF0aWxlRmlsZUlkID0gdm9sYXRpbGVfZmlkOwogCiAJaW92WzBdLmlvdl9iYXNlID0gKGNoYXIgKilyZXE7CiAJaW92WzBdLmlvdl9sZW4gPSB0b3RhbF9sZW47CiAKKwlyZXR1cm4gMDsKK30KKworaW50CitTTUIyX2ZsdXNoKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sIHU2NCBwZXJzaXN0ZW50X2ZpZCwKKwkgICB1NjQgdm9sYXRpbGVfZmlkKQoreworCXN0cnVjdCBjaWZzX3NlcyAqc2VzID0gdGNvbi0+c2VzOworCXN0cnVjdCBzbWJfcnFzdCBycXN0OworCXN0cnVjdCBrdmVjIGlvdlsxXTsKKwlzdHJ1Y3Qga3ZlYyByc3BfaW92ID0ge05VTEwsIDB9OworCWludCByZXNwX2J1ZnR5cGUgPSBDSUZTX05PX0JVRkZFUjsKKwlpbnQgZmxhZ3MgPSAwOworCWludCByYyA9IDA7CisKKwljaWZzX2RiZyhGWUksICJmbHVzaFxuIik7CisJaWYgKCFzZXMgfHwgIShzZXMtPnNlcnZlcikpCisJCXJldHVybiAtRUlPOworCisJaWYgKHNtYjNfZW5jcnlwdGlvbl9yZXF1aXJlZCh0Y29uKSkKKwkJZmxhZ3MgfD0gQ0lGU19UUkFOU0ZPUk1fUkVROworCiAJbWVtc2V0KCZycXN0LCAwLCBzaXplb2Yoc3RydWN0IHNtYl9ycXN0KSk7CisJbWVtc2V0KCZpb3YsIDAsIHNpemVvZihpb3YpKTsKIAlycXN0LnJxX2lvdiA9IGlvdjsKIAlycXN0LnJxX252ZWMgPSAxOwogCisJcmMgPSBTTUIyX2ZsdXNoX2luaXQoeGlkLCAmcnFzdCwgdGNvbiwgcGVyc2lzdGVudF9maWQsIHZvbGF0aWxlX2ZpZCk7CisJaWYgKHJjKQorCQlnb3RvIGZsdXNoX2V4aXQ7CisKKwl0cmFjZV9zbWIzX2ZsdXNoX2VudGVyKHhpZCwgcGVyc2lzdGVudF9maWQsIHRjb24tPnRpZCwgc2VzLT5TdWlkKTsKIAlyYyA9IGNpZnNfc2VuZF9yZWN2KHhpZCwgc2VzLCAmcnFzdCwgJnJlc3BfYnVmdHlwZSwgZmxhZ3MsICZyc3BfaW92KTsKLQljaWZzX3NtYWxsX2J1Zl9yZWxlYXNlKHJlcSk7CiAKIAlpZiAocmMgIT0gMCkgewogCQljaWZzX3N0YXRzX2ZhaWxfaW5jKHRjb24sIFNNQjJfRkxVU0hfSEUpOwogCQl0cmFjZV9zbWIzX2ZsdXNoX2Vycih4aWQsIHBlcnNpc3RlbnRfZmlkLCB0Y29uLT50aWQsIHNlcy0+U3VpZCwKIAkJCQkgICAgIHJjKTsKLQl9CisJfSBlbHNlCisJCXRyYWNlX3NtYjNfZmx1c2hfZG9uZSh4aWQsIHBlcnNpc3RlbnRfZmlkLCB0Y29uLT50aWQsCisJCQkJICAgICAgc2VzLT5TdWlkKTsKIAorIGZsdXNoX2V4aXQ6CisJU01CMl9mbHVzaF9mcmVlKCZycXN0KTsKIAlmcmVlX3JzcF9idWYocmVzcF9idWZ0eXBlLCByc3BfaW92Lmlvdl9iYXNlKTsKIAlyZXR1cm4gcmM7CiB9CkBAIC0zNDQ2LDggKzM1NzMsOCBAQCBzbWIyX3JlYWR2X2NhbGxiYWNrKHN0cnVjdCBtaWRfcV9lbnRyeSAqbWlkKQogCXN0cnVjdCBzbWIyX3N5bmNfaGRyICpzaGRyID0KIAkJCQkoc3RydWN0IHNtYjJfc3luY19oZHIgKilyZGF0YS0+aW92WzBdLmlvdl9iYXNlOwogCXN0cnVjdCBjaWZzX2NyZWRpdHMgY3JlZGl0cyA9IHsgLnZhbHVlID0gMCwgLmluc3RhbmNlID0gMCB9OwotCXN0cnVjdCBzbWJfcnFzdCBycXN0ID0geyAucnFfaW92ID0gcmRhdGEtPmlvdiwKLQkJCQkgLnJxX252ZWMgPSAyLAorCXN0cnVjdCBzbWJfcnFzdCBycXN0ID0geyAucnFfaW92ID0gJnJkYXRhLT5pb3ZbMV0sCisJCQkJIC5ycV9udmVjID0gMSwKIAkJCQkgLnJxX3BhZ2VzID0gcmRhdGEtPnBhZ2VzLAogCQkJCSAucnFfb2Zmc2V0ID0gcmRhdGEtPnBhZ2Vfb2Zmc2V0LAogCQkJCSAucnFfbnBhZ2VzID0gcmRhdGEtPm5yX3BhZ2VzLApAQCAtMzQ2OCw3ICszNTk1LDcgQEAgc21iMl9yZWFkdl9jYWxsYmFjayhzdHJ1Y3QgbWlkX3FfZW50cnkgKm1pZCkKIAogCQkJcmMgPSBzbWIyX3ZlcmlmeV9zaWduYXR1cmUoJnJxc3QsIHNlcnZlcik7CiAJCQlpZiAocmMpCi0JCQkJY2lmc19kYmcoVkZTLCAiU01CIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gcmV0dXJuZWQgZXJyb3IgPSAlZFxuIiwKKwkJCQljaWZzX3Rjb25fZGJnKFZGUywgIlNNQiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHJldHVybmVkIGVycm9yID0gJWRcbiIsCiAJCQkJCSByYyk7CiAJCX0KIAkJLyogRklYTUU6IHNob3VsZCB0aGlzIGJlIGNvdW50ZWQgdG93YXJkIHRoZSBpbml0aWF0aW5nIHRhc2s/ICovCkBAIC0zNTk1LDcgKzM3MjIsNyBAQCBTTUIyX3JlYWQoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfaW9fcGFybXMgKmlvX3Bhcm1zLAogCSAgdW5zaWduZWQgaW50ICpuYnl0ZXMsIGNoYXIgKipidWYsIGludCAqYnVmX3R5cGUpCiB7CiAJc3RydWN0IHNtYl9ycXN0IHJxc3Q7Ci0JaW50IHJlc3BfYnVmdHlwZSwgcmMgPSAtRUFDQ0VTOworCWludCByZXNwX2J1ZnR5cGUsIHJjOwogCXN0cnVjdCBzbWIyX3JlYWRfcGxhaW5fcmVxICpyZXEgPSBOVUxMOwogCXN0cnVjdCBzbWIyX3JlYWRfcnNwICpyc3AgPSBOVUxMOwogCXN0cnVjdCBrdmVjIGlvdlsxXTsKQEAgLTQwNTgsNyArNDE4NSw3IEBAIFNNQjJfcXVlcnlfZGlyZWN0b3J5KGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJCWluZm9fYnVmX3NpemUgPSBzaXplb2YoU0VBUkNIX0lEX0ZVTExfRElSX0lORk8pIC0gMTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJY2lmc19kYmcoVkZTLCAiaW5mbyBsZXZlbCAldSBpc24ndCBzdXBwb3J0ZWRcbiIsCisJCWNpZnNfdGNvbl9kYmcoVkZTLCAiaW5mbyBsZXZlbCAldSBpc24ndCBzdXBwb3J0ZWRcbiIsCiAJCQkgc3JjaF9pbmYtPmluZm9fbGV2ZWwpOwogCQlyYyA9IC1FSU5WQUw7CiAJCWdvdG8gcWRpcl9leGl0OwpAQCAtNDE0OSw3ICs0Mjc2LDcgQEAgU01CMl9xdWVyeV9kaXJlY3RvcnkoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAllbHNlIGlmIChyZXNwX2J1ZnR5cGUgPT0gQ0lGU19TTUFMTF9CVUZGRVIpCiAJCXNyY2hfaW5mLT5zbWFsbEJ1ZiA9IHRydWU7CiAJZWxzZQotCQljaWZzX2RiZyhWRlMsICJpbGxlZ2FsIHNlYXJjaCBidWZmZXIgdHlwZVxuIik7CisJCWNpZnNfdGNvbl9kYmcoVkZTLCAiaWxsZWdhbCBzZWFyY2ggYnVmZmVyIHR5cGVcbiIpOwogCiAJdHJhY2Vfc21iM19xdWVyeV9kaXJfZG9uZSh4aWQsIHBlcnNpc3RlbnRfZmlkLCB0Y29uLT50aWQsCiAJCQl0Y29uLT5zZXMtPlN1aWQsIGluZGV4LCBzcmNoX2luZi0+ZW50cmllc19pbl9idWZmZXIpOwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9zbWIycGR1LmggYi9mcy9jaWZzL3NtYjJwZHUuaAppbmRleCA3NDdkZTkzLi5lYTczNWQ1IDEwMDY0NAotLS0gYS9mcy9jaWZzL3NtYjJwZHUuaAorKysgYi9mcy9jaWZzL3NtYjJwZHUuaApAQCAtMTQzLDcgKzE0Myw5IEBAIHN0cnVjdCBzbWIyX3RyYW5zZm9ybV9oZHIgewogI2RlZmluZSBTTUIyX0ZMQUdTX0FTWU5DX0NPTU1BTkQJY3B1X3RvX2xlMzIoMHgwMDAwMDAwMikKICNkZWZpbmUgU01CMl9GTEFHU19SRUxBVEVEX09QRVJBVElPTlMJY3B1X3RvX2xlMzIoMHgwMDAwMDAwNCkKICNkZWZpbmUgU01CMl9GTEFHU19TSUdORUQJCWNwdV90b19sZTMyKDB4MDAwMDAwMDgpCisjZGVmaW5lIFNNQjJfRkxBR1NfUFJJT1JJVFlfTUFTSwljcHVfdG9fbGUzMigweDAwMDAwMDcwKSAvKiBTTUIzLjEuMSAqLwogI2RlZmluZSBTTUIyX0ZMQUdTX0RGU19PUEVSQVRJT05TCWNwdV90b19sZTMyKDB4MTAwMDAwMDApCisjZGVmaW5lIFNNQjJfRkxBR1NfUkVQTEFZX09QRVJBVElPTgljcHVfdG9fbGUzMigweDIwMDAwMDAwKSAvKiBTTUIzICYgdXAgKi8KIAogLyoKICAqCURlZmluaXRpb25zIGZvciBTTUIyIFByb3RvY29sIERhdGEgVW5pdHMgKG5ldHdvcmsgZnJhbWVzKQpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9zbWIycHJvdG8uaCBiL2ZzL2NpZnMvc21iMnByb3RvLmgKaW5kZXggMDdjYTcyNC4uNjdhOTFiMSAxMDA2NDQKLS0tIGEvZnMvY2lmcy9zbWIycHJvdG8uaAorKysgYi9mcy9jaWZzL3NtYjJwcm90by5oCkBAIC0xNTgsNiArMTU4LDEwIEBAIGV4dGVybiBpbnQgU01CMl9jbG9zZV9pbml0KHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sIHN0cnVjdCBzbWJfcnFzdCAqcnFzdCwKIGV4dGVybiB2b2lkIFNNQjJfY2xvc2VfZnJlZShzdHJ1Y3Qgc21iX3Jxc3QgKnJxc3QpOwogZXh0ZXJuIGludCBTTUIyX2ZsdXNoKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJCSAgICAgIHU2NCBwZXJzaXN0ZW50X2ZpbGVfaWQsIHU2NCB2b2xhdGlsZV9maWxlX2lkKTsKK2V4dGVybiBpbnQgU01CMl9mbHVzaF9pbml0KGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBzbWJfcnFzdCAqcnFzdCwKKwkJCSAgIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCisJCQkgICB1NjQgcGVyc2lzdGVudF9maWxlX2lkLCB1NjQgdm9sYXRpbGVfZmlsZV9pZCk7CitleHRlcm4gdm9pZCBTTUIyX2ZsdXNoX2ZyZWUoc3RydWN0IHNtYl9ycXN0ICpycXN0KTsKIGV4dGVybiBpbnQgU01CMl9xdWVyeV9pbmZvKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJCQkgICB1NjQgcGVyc2lzdGVudF9maWxlX2lkLCB1NjQgdm9sYXRpbGVfZmlsZV9pZCwKIAkJCSAgIHN0cnVjdCBzbWIyX2ZpbGVfYWxsX2luZm8gKmRhdGEpOwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9zbWIydHJhbnNwb3J0LmMgYi9mcy9jaWZzL3NtYjJ0cmFuc3BvcnQuYwppbmRleCAxY2NiY2Y5Li4xNDhkNzk0IDEwMDY0NAotLS0gYS9mcy9jaWZzL3NtYjJ0cmFuc3BvcnQuYworKysgYi9mcy9jaWZzL3NtYjJ0cmFuc3BvcnQuYwpAQCAtMTc2LDcgKzE3Niw3IEBAIHNtYjJfY2FsY19zaWduYXR1cmUoc3RydWN0IHNtYl9ycXN0ICpycXN0LCBzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIpCiAKIAlzZXMgPSBzbWIyX2ZpbmRfc21iX3NlcyhzZXJ2ZXIsIHNoZHItPlNlc3Npb25JZCk7CiAJaWYgKCFzZXMpIHsKLQkJY2lmc19kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCBmaW5kIHNlc3Npb25cbiIsIF9fZnVuY19fKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgZmluZCBzZXNzaW9uXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAwOwogCX0KIApAQCAtMTg1LDIxICsxODUsMjEgQEAgc21iMl9jYWxjX3NpZ25hdHVyZShzdHJ1Y3Qgc21iX3Jxc3QgKnJxc3QsIHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAogCXJjID0gc21iMl9jcnlwdG9fc2hhc2hfYWxsb2NhdGUoc2VydmVyKTsKIAlpZiAocmMpIHsKLQkJY2lmc19kYmcoVkZTLCAiJXM6IHNoYTI1NiBhbGxvYyBmYWlsZWRcbiIsIF9fZnVuY19fKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBzaGEyNTYgYWxsb2MgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiByYzsKIAl9CiAKIAlyYyA9IGNyeXB0b19zaGFzaF9zZXRrZXkoc2VydmVyLT5zZWNtZWNoLmhtYWNzaGEyNTYsCiAJCQkJIHNlcy0+YXV0aF9rZXkucmVzcG9uc2UsIFNNQjJfTlRMTVYyX1NFU1NLRVlfU0laRSk7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgdXBkYXRlIHdpdGggcmVzcG9uc2VcbiIsIF9fZnVuY19fKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgdXBkYXRlIHdpdGggcmVzcG9uc2VcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIHJjOwogCX0KIAogCXNoYXNoID0gJnNlcnZlci0+c2VjbWVjaC5zZGVzY2htYWNzaGEyNTYtPnNoYXNoOwogCXJjID0gY3J5cHRvX3NoYXNoX2luaXQoc2hhc2gpOwogCWlmIChyYykgewotCQljaWZzX2RiZyhWRlMsICIlczogQ291bGQgbm90IGluaXQgc2hhMjU2IiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCBpbml0IHNoYTI1NiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIHJjOwogCX0KIApAQCAtMjE1LDcgKzIxNSw3IEBAIHNtYjJfY2FsY19zaWduYXR1cmUoc3RydWN0IHNtYl9ycXN0ICpycXN0LCBzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIpCiAJCXJjID0gY3J5cHRvX3NoYXNoX3VwZGF0ZShzaGFzaCwgaW92WzBdLmlvdl9iYXNlLAogCQkJCQkgaW92WzBdLmlvdl9sZW4pOwogCQlpZiAocmMpIHsKLQkJCWNpZnNfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgdXBkYXRlIHdpdGggcGF5bG9hZFxuIiwKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsICIlczogQ291bGQgbm90IHVwZGF0ZSB3aXRoIHBheWxvYWRcbiIsCiAJCQkJIF9fZnVuY19fKTsKIAkJCXJldHVybiByYzsKIAkJfQpAQCAtMjM5LDY4ICsyMzksNjkgQEAgc3RhdGljIGludCBnZW5lcmF0ZV9rZXkoc3RydWN0IGNpZnNfc2VzICpzZXMsIHN0cnVjdCBrdmVjIGxhYmVsLAogCWludCByYyA9IDA7CiAJdW5zaWduZWQgY2hhciBwcmZoYXNoW1NNQjJfSE1BQ1NIQTI1Nl9TSVpFXTsKIAl1bnNpZ25lZCBjaGFyICpoYXNocHRyID0gcHJmaGFzaDsKKwlzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIgPSBzZXMtPnNlcnZlcjsKIAogCW1lbXNldChwcmZoYXNoLCAweDAsIFNNQjJfSE1BQ1NIQTI1Nl9TSVpFKTsKIAltZW1zZXQoa2V5LCAweDAsIGtleV9zaXplKTsKIAotCXJjID0gc21iM19jcnlwdG9fc2hhc2hfYWxsb2NhdGUoc2VzLT5zZXJ2ZXIpOworCXJjID0gc21iM19jcnlwdG9fc2hhc2hfYWxsb2NhdGUoc2VydmVyKTsKIAlpZiAocmMpIHsKLQkJY2lmc19kYmcoVkZTLCAiJXM6IGNyeXB0byBhbGxvYyBmYWlsZWRcbiIsIF9fZnVuY19fKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBjcnlwdG8gYWxsb2MgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7CiAJCWdvdG8gc21iM3NpZ25rZXlfcmV0OwogCX0KIAotCXJjID0gY3J5cHRvX3NoYXNoX3NldGtleShzZXMtPnNlcnZlci0+c2VjbWVjaC5obWFjc2hhMjU2LAorCXJjID0gY3J5cHRvX3NoYXNoX3NldGtleShzZXJ2ZXItPnNlY21lY2guaG1hY3NoYTI1NiwKIAkJc2VzLT5hdXRoX2tleS5yZXNwb25zZSwgU01CMl9OVExNVjJfU0VTU0tFWV9TSVpFKTsKIAlpZiAocmMpIHsKLQkJY2lmc19kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCBzZXQgd2l0aCBzZXNzaW9uIGtleVxuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCBzZXQgd2l0aCBzZXNzaW9uIGtleVxuIiwgX19mdW5jX18pOwogCQlnb3RvIHNtYjNzaWdua2V5X3JldDsKIAl9CiAKLQlyYyA9IGNyeXB0b19zaGFzaF9pbml0KCZzZXMtPnNlcnZlci0+c2VjbWVjaC5zZGVzY2htYWNzaGEyNTYtPnNoYXNoKTsKKwlyYyA9IGNyeXB0b19zaGFzaF9pbml0KCZzZXJ2ZXItPnNlY21lY2guc2Rlc2NobWFjc2hhMjU2LT5zaGFzaCk7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgaW5pdCBzaWduIGhtYWNcbiIsIF9fZnVuY19fKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgaW5pdCBzaWduIGhtYWNcbiIsIF9fZnVuY19fKTsKIAkJZ290byBzbWIzc2lnbmtleV9yZXQ7CiAJfQogCi0JcmMgPSBjcnlwdG9fc2hhc2hfdXBkYXRlKCZzZXMtPnNlcnZlci0+c2VjbWVjaC5zZGVzY2htYWNzaGEyNTYtPnNoYXNoLAorCXJjID0gY3J5cHRvX3NoYXNoX3VwZGF0ZSgmc2VydmVyLT5zZWNtZWNoLnNkZXNjaG1hY3NoYTI1Ni0+c2hhc2gsCiAJCQkJaSwgNCk7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgdXBkYXRlIHdpdGggblxuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCB1cGRhdGUgd2l0aCBuXG4iLCBfX2Z1bmNfXyk7CiAJCWdvdG8gc21iM3NpZ25rZXlfcmV0OwogCX0KIAotCXJjID0gY3J5cHRvX3NoYXNoX3VwZGF0ZSgmc2VzLT5zZXJ2ZXItPnNlY21lY2guc2Rlc2NobWFjc2hhMjU2LT5zaGFzaCwKKwlyYyA9IGNyeXB0b19zaGFzaF91cGRhdGUoJnNlcnZlci0+c2VjbWVjaC5zZGVzY2htYWNzaGEyNTYtPnNoYXNoLAogCQkJCWxhYmVsLmlvdl9iYXNlLCBsYWJlbC5pb3ZfbGVuKTsKIAlpZiAocmMpIHsKLQkJY2lmc19kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCB1cGRhdGUgd2l0aCBsYWJlbFxuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCB1cGRhdGUgd2l0aCBsYWJlbFxuIiwgX19mdW5jX18pOwogCQlnb3RvIHNtYjNzaWdua2V5X3JldDsKIAl9CiAKLQlyYyA9IGNyeXB0b19zaGFzaF91cGRhdGUoJnNlcy0+c2VydmVyLT5zZWNtZWNoLnNkZXNjaG1hY3NoYTI1Ni0+c2hhc2gsCisJcmMgPSBjcnlwdG9fc2hhc2hfdXBkYXRlKCZzZXJ2ZXItPnNlY21lY2guc2Rlc2NobWFjc2hhMjU2LT5zaGFzaCwKIAkJCQkmemVybywgMSk7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgdXBkYXRlIHdpdGggemVyb1xuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCB1cGRhdGUgd2l0aCB6ZXJvXG4iLCBfX2Z1bmNfXyk7CiAJCWdvdG8gc21iM3NpZ25rZXlfcmV0OwogCX0KIAotCXJjID0gY3J5cHRvX3NoYXNoX3VwZGF0ZSgmc2VzLT5zZXJ2ZXItPnNlY21lY2guc2Rlc2NobWFjc2hhMjU2LT5zaGFzaCwKKwlyYyA9IGNyeXB0b19zaGFzaF91cGRhdGUoJnNlcnZlci0+c2VjbWVjaC5zZGVzY2htYWNzaGEyNTYtPnNoYXNoLAogCQkJCWNvbnRleHQuaW92X2Jhc2UsIGNvbnRleHQuaW92X2xlbik7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgdXBkYXRlIHdpdGggY29udGV4dFxuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCB1cGRhdGUgd2l0aCBjb250ZXh0XG4iLCBfX2Z1bmNfXyk7CiAJCWdvdG8gc21iM3NpZ25rZXlfcmV0OwogCX0KIAotCXJjID0gY3J5cHRvX3NoYXNoX3VwZGF0ZSgmc2VzLT5zZXJ2ZXItPnNlY21lY2guc2Rlc2NobWFjc2hhMjU2LT5zaGFzaCwKKwlyYyA9IGNyeXB0b19zaGFzaF91cGRhdGUoJnNlcnZlci0+c2VjbWVjaC5zZGVzY2htYWNzaGEyNTYtPnNoYXNoLAogCQkJCUwsIDQpOwogCWlmIChyYykgewotCQljaWZzX2RiZyhWRlMsICIlczogQ291bGQgbm90IHVwZGF0ZSB3aXRoIExcbiIsIF9fZnVuY19fKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgdXBkYXRlIHdpdGggTFxuIiwgX19mdW5jX18pOwogCQlnb3RvIHNtYjNzaWdua2V5X3JldDsKIAl9CiAKLQlyYyA9IGNyeXB0b19zaGFzaF9maW5hbCgmc2VzLT5zZXJ2ZXItPnNlY21lY2guc2Rlc2NobWFjc2hhMjU2LT5zaGFzaCwKKwlyYyA9IGNyeXB0b19zaGFzaF9maW5hbCgmc2VydmVyLT5zZWNtZWNoLnNkZXNjaG1hY3NoYTI1Ni0+c2hhc2gsCiAJCQkJaGFzaHB0cik7CiAJaWYgKHJjKSB7Ci0JCWNpZnNfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgZ2VuZXJhdGUgc2hhMjU2IGhhc2hcbiIsIF9fZnVuY19fKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgZ2VuZXJhdGUgc2hhMjU2IGhhc2hcbiIsIF9fZnVuY19fKTsKIAkJZ290byBzbWIzc2lnbmtleV9yZXQ7CiAJfQogCkBAIC00MzYsNyArNDM3LDcgQEAgc21iM19jYWxjX3NpZ25hdHVyZShzdHJ1Y3Qgc21iX3Jxc3QgKnJxc3QsIHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAogCXNlcyA9IHNtYjJfZmluZF9zbWJfc2VzKHNlcnZlciwgc2hkci0+U2Vzc2lvbklkKTsKIAlpZiAoIXNlcykgewotCQljaWZzX2RiZyhWRlMsICIlczogQ291bGQgbm90IGZpbmQgc2Vzc2lvblxuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCBmaW5kIHNlc3Npb25cbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC00NDYsNyArNDQ3LDcgQEAgc21iM19jYWxjX3NpZ25hdHVyZShzdHJ1Y3Qgc21iX3Jxc3QgKnJxc3QsIHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAlyYyA9IGNyeXB0b19zaGFzaF9zZXRrZXkoc2VydmVyLT5zZWNtZWNoLmNtYWNhZXMsCiAJCQkJIHNlcy0+c21iM3NpZ25pbmdrZXksIFNNQjJfQ01BQ0FFU19TSVpFKTsKIAlpZiAocmMpIHsKLQkJY2lmc19kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCBzZXQga2V5IGZvciBjbWFjIGFlc1xuIiwgX19mdW5jX18pOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCBzZXQga2V5IGZvciBjbWFjIGFlc1xuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gcmM7CiAJfQogCkBAIC00NTcsNyArNDU4LDcgQEAgc21iM19jYWxjX3NpZ25hdHVyZShzdHJ1Y3Qgc21iX3Jxc3QgKnJxc3QsIHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAkgKi8KIAlyYyA9IGNyeXB0b19zaGFzaF9pbml0KHNoYXNoKTsKIAlpZiAocmMpIHsKLQkJY2lmc19kYmcoVkZTLCAiJXM6IENvdWxkIG5vdCBpbml0IGNtYWMgYWVzXG4iLCBfX2Z1bmNfXyk7CisJCWNpZnNfc2VydmVyX2RiZyhWRlMsICIlczogQ291bGQgbm90IGluaXQgY21hYyBhZXNcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIHJjOwogCX0KIApAQCAtNDczLDcgKzQ3NCw3IEBAIHNtYjNfY2FsY19zaWduYXR1cmUoc3RydWN0IHNtYl9ycXN0ICpycXN0LCBzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIpCiAJCXJjID0gY3J5cHRvX3NoYXNoX3VwZGF0ZShzaGFzaCwgaW92WzBdLmlvdl9iYXNlLAogCQkJCQkgaW92WzBdLmlvdl9sZW4pOwogCQlpZiAocmMpIHsKLQkJCWNpZnNfZGJnKFZGUywgIiVzOiBDb3VsZCBub3QgdXBkYXRlIHdpdGggcGF5bG9hZFxuIiwKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsICIlczogQ291bGQgbm90IHVwZGF0ZSB3aXRoIHBheWxvYWRcbiIsCiAJCQkJIF9fZnVuY19fKTsKIAkJCXJldHVybiByYzsKIAkJfQpAQCAtNTIxLDYgKzUyMiw3IEBAIHNtYjJfdmVyaWZ5X3NpZ25hdHVyZShzdHJ1Y3Qgc21iX3Jxc3QgKnJxc3QsIHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikKIAlpZiAoKHNoZHItPkNvbW1hbmQgPT0gU01CMl9ORUdPVElBVEUpIHx8CiAJICAgIChzaGRyLT5Db21tYW5kID09IFNNQjJfU0VTU0lPTl9TRVRVUCkgfHwKIAkgICAgKHNoZHItPkNvbW1hbmQgPT0gU01CMl9PUExPQ0tfQlJFQUspIHx8CisJICAgIHNlcnZlci0+aWdub3JlX3NpZ25hdHVyZSB8fAogCSAgICAoIXNlcnZlci0+c2Vzc2lvbl9lc3RhYikpCiAJCXJldHVybiAwOwogCkBAIC02NjUsNyArNjY3LDcgQEAgc21iMl9jaGVja19yZWNlaXZlKHN0cnVjdCBtaWRfcV9lbnRyeSAqbWlkLCBzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsCiAKIAkJcmMgPSBzbWIyX3ZlcmlmeV9zaWduYXR1cmUoJnJxc3QsIHNlcnZlcik7CiAJCWlmIChyYykKLQkJCWNpZnNfZGJnKFZGUywgIlNNQiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHJldHVybmVkIGVycm9yID0gJWRcbiIsCisJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiU01CIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gcmV0dXJuZWQgZXJyb3IgPSAlZFxuIiwKIAkJCQkgcmMpOwogCX0KIApAQCAtNzM5LDcgKzc0MSw3IEBAIHNtYjNfY3J5cHRvX2FlYWRfYWxsb2NhdGUoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyKQogCQllbHNlCiAJCQl0Zm0gPSBjcnlwdG9fYWxsb2NfYWVhZCgiY2NtKGFlcykiLCAwLCAwKTsKIAkJaWYgKElTX0VSUih0Zm0pKSB7Ci0JCQljaWZzX2RiZyhWRlMsICIlczogRmFpbGVkIHRvIGFsbG9jIGVuY3J5cHQgYWVhZFxuIiwKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsICIlczogRmFpbGVkIHRvIGFsbG9jIGVuY3J5cHQgYWVhZFxuIiwKIAkJCQkgX19mdW5jX18pOwogCQkJcmV0dXJuIFBUUl9FUlIodGZtKTsKIAkJfQpAQCAtNzU0LDcgKzc1Niw3IEBAIHNtYjNfY3J5cHRvX2FlYWRfYWxsb2NhdGUoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyKQogCQlpZiAoSVNfRVJSKHRmbSkpIHsKIAkJCWNyeXB0b19mcmVlX2FlYWQoc2VydmVyLT5zZWNtZWNoLmNjbWFlc2VuY3J5cHQpOwogCQkJc2VydmVyLT5zZWNtZWNoLmNjbWFlc2VuY3J5cHQgPSBOVUxMOwotCQkJY2lmc19kYmcoVkZTLCAiJXM6IEZhaWxlZCB0byBhbGxvYyBkZWNyeXB0IGFlYWRcbiIsCisJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiJXM6IEZhaWxlZCB0byBhbGxvYyBkZWNyeXB0IGFlYWRcbiIsCiAJCQkJIF9fZnVuY19fKTsKIAkJCXJldHVybiBQVFJfRVJSKHRmbSk7CiAJCX0KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvc21iZGlyZWN0LmMgYi9mcy9jaWZzL3NtYmRpcmVjdC5jCmluZGV4IGNkMDdlNTMwLi4zYzkxZmE5IDEwMDY0NAotLS0gYS9mcy9jaWZzL3NtYmRpcmVjdC5jCisrKyBiL2ZzL2NpZnMvc21iZGlyZWN0LmMKQEAgLTE2NTQsMTUgKzE2NTQsMTcgQEAgc3RhdGljIHN0cnVjdCBzbWJkX2Nvbm5lY3Rpb24gKl9zbWJkX2dldF9jb25uZWN0aW9uKAogCiAJaW5mby0+c2VuZF9jcSA9IE5VTEw7CiAJaW5mby0+cmVjdl9jcSA9IE5VTEw7Ci0JaW5mby0+c2VuZF9jcSA9IGliX2FsbG9jX2NxKGluZm8tPmlkLT5kZXZpY2UsIGluZm8sCi0JCQlpbmZvLT5zZW5kX2NyZWRpdF90YXJnZXQsIDAsIElCX1BPTExfU09GVElSUSk7CisJaW5mby0+c2VuZF9jcSA9CisJCWliX2FsbG9jX2NxX2FueShpbmZvLT5pZC0+ZGV2aWNlLCBpbmZvLAorCQkJCWluZm8tPnNlbmRfY3JlZGl0X3RhcmdldCwgSUJfUE9MTF9TT0ZUSVJRKTsKIAlpZiAoSVNfRVJSKGluZm8tPnNlbmRfY3EpKSB7CiAJCWluZm8tPnNlbmRfY3EgPSBOVUxMOwogCQlnb3RvIGFsbG9jX2NxX2ZhaWxlZDsKIAl9CiAKLQlpbmZvLT5yZWN2X2NxID0gaWJfYWxsb2NfY3EoaW5mby0+aWQtPmRldmljZSwgaW5mbywKLQkJCWluZm8tPnJlY2VpdmVfY3JlZGl0X21heCwgMCwgSUJfUE9MTF9TT0ZUSVJRKTsKKwlpbmZvLT5yZWN2X2NxID0KKwkJaWJfYWxsb2NfY3FfYW55KGluZm8tPmlkLT5kZXZpY2UsIGluZm8sCisJCQkJaW5mby0+cmVjZWl2ZV9jcmVkaXRfbWF4LCBJQl9QT0xMX1NPRlRJUlEpOwogCWlmIChJU19FUlIoaW5mby0+cmVjdl9jcSkpIHsKIAkJaW5mby0+cmVjdl9jcSA9IE5VTEw7CiAJCWdvdG8gYWxsb2NfY3FfZmFpbGVkOwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy90cmFjZS5oIGIvZnMvY2lmcy90cmFjZS5oCmluZGV4IDk5YzRkNzkuLmU3ZTM1MGIgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvdHJhY2UuaAorKysgYi9mcy9jaWZzL3RyYWNlLmgKQEAgLTExNyw2ICsxMTcsNDEgQEAgREVGSU5FX1NNQjNfUldfRE9ORV9FVkVOVChmYWxsb2NfZG9uZSk7CiAvKgogICogRm9yIGhhbmRsZSBiYXNlZCBjYWxscyBvdGhlciB0aGFuIHJlYWQgYW5kIHdyaXRlLCBhbmQgZ2V0L3NldCBpbmZvCiAgKi8KK0RFQ0xBUkVfRVZFTlRfQ0xBU1Moc21iM19mZF9jbGFzcywKKwlUUF9QUk9UTyh1bnNpZ25lZCBpbnQgeGlkLAorCQlfX3U2NAlmaWQsCisJCV9fdTMyCXRpZCwKKwkJX191NjQJc2VzaWQpLAorCVRQX0FSR1MoeGlkLCBmaWQsIHRpZCwgc2VzaWQpLAorCVRQX1NUUlVDVF9fZW50cnkoCisJCV9fZmllbGQodW5zaWduZWQgaW50LCB4aWQpCisJCV9fZmllbGQoX191NjQsIGZpZCkKKwkJX19maWVsZChfX3UzMiwgdGlkKQorCQlfX2ZpZWxkKF9fdTY0LCBzZXNpZCkKKwkpLAorCVRQX2Zhc3RfYXNzaWduKAorCQlfX2VudHJ5LT54aWQgPSB4aWQ7CisJCV9fZW50cnktPmZpZCA9IGZpZDsKKwkJX19lbnRyeS0+dGlkID0gdGlkOworCQlfX2VudHJ5LT5zZXNpZCA9IHNlc2lkOworCSksCisJVFBfcHJpbnRrKCJcdHhpZD0ldSBzaWQ9MHglbGx4IHRpZD0weCV4IGZpZD0weCVsbHgiLAorCQlfX2VudHJ5LT54aWQsIF9fZW50cnktPnNlc2lkLCBfX2VudHJ5LT50aWQsIF9fZW50cnktPmZpZCkKKykKKworI2RlZmluZSBERUZJTkVfU01CM19GRF9FVkVOVChuYW1lKSAgICAgICAgICBcCitERUZJTkVfRVZFTlQoc21iM19mZF9jbGFzcywgc21iM18jI25hbWUsICAgIFwKKwlUUF9QUk9UTyh1bnNpZ25lZCBpbnQgeGlkLAkJXAorCQlfX3U2NAlmaWQsCQkJXAorCQlfX3UzMgl0aWQsCQkJXAorCQlfX3U2NAlzZXNpZCksCQkJXAorCVRQX0FSR1MoeGlkLCBmaWQsIHRpZCwgc2VzaWQpKQorCitERUZJTkVfU01CM19GRF9FVkVOVChmbHVzaF9lbnRlcik7CitERUZJTkVfU01CM19GRF9FVkVOVChmbHVzaF9kb25lKTsKK0RFRklORV9TTUIzX0ZEX0VWRU5UKGNsb3NlX2VudGVyKTsKK0RFRklORV9TTUIzX0ZEX0VWRU5UKGNsb3NlX2RvbmUpOworCiBERUNMQVJFX0VWRU5UX0NMQVNTKHNtYjNfZmRfZXJyX2NsYXNzLAogCVRQX1BST1RPKHVuc2lnbmVkIGludCB4aWQsCiAJCV9fdTY0CWZpZCwKQEAgLTIwMCw2ICsyMzUsOCBAQCBERUZJTkVfRVZFTlQoc21iM19pbmZfZW50ZXJfY2xhc3MsIHNtYjNfIyNuYW1lLCAgICBcCiAKIERFRklORV9TTUIzX0lORl9FTlRFUl9FVkVOVChxdWVyeV9pbmZvX2VudGVyKTsKIERFRklORV9TTUIzX0lORl9FTlRFUl9FVkVOVChxdWVyeV9pbmZvX2RvbmUpOworREVGSU5FX1NNQjNfSU5GX0VOVEVSX0VWRU5UKG5vdGlmeV9lbnRlcik7CitERUZJTkVfU01CM19JTkZfRU5URVJfRVZFTlQobm90aWZ5X2RvbmUpOwogCiBERUNMQVJFX0VWRU5UX0NMQVNTKHNtYjNfaW5mX2Vycl9jbGFzcywKIAlUUF9QUk9UTyh1bnNpZ25lZCBpbnQgeGlkLApAQCAtMjQ2LDYgKzI4Myw3IEBAIERFRklORV9FVkVOVChzbWIzX2luZl9lcnJfY2xhc3MsIHNtYjNfIyNuYW1lLCAgICBcCiAKIERFRklORV9TTUIzX0lORl9FUlJfRVZFTlQocXVlcnlfaW5mb19lcnIpOwogREVGSU5FX1NNQjNfSU5GX0VSUl9FVkVOVChzZXRfaW5mb19lcnIpOworREVGSU5FX1NNQjNfSU5GX0VSUl9FVkVOVChub3RpZnlfZXJyKTsKIERFRklORV9TTUIzX0lORl9FUlJfRVZFTlQoZnNjdGxfZXJyKTsKIAogREVDTEFSRV9FVkVOVF9DTEFTUyhzbWIzX2luZl9jb21wb3VuZF9lbnRlcl9jbGFzcywKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvdHJhbnNwb3J0LmMgYi9mcy9jaWZzL3RyYW5zcG9ydC5jCmluZGV4IDVkNmQ0NGIuLjMwOGFkMGYgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvdHJhbnNwb3J0LmMKKysrIGIvZnMvY2lmcy90cmFuc3BvcnQuYwpAQCAtMTE4LDcgKzExOCw3IEBAIERlbGV0ZU1pZFFFbnRyeShzdHJ1Y3QgbWlkX3FfZW50cnkgKm1pZEVudHJ5KQogI2lmZGVmIENPTkZJR19DSUZTX1NUQVRTMgogCW5vdyA9IGppZmZpZXM7CiAJaWYgKG5vdyA8IG1pZEVudHJ5LT53aGVuX2FsbG9jKQotCQljaWZzX2RiZyhWRlMsICJpbnZhbGlkIG1pZCBhbGxvY2F0aW9uIHRpbWVcbiIpOworCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAiaW52YWxpZCBtaWQgYWxsb2NhdGlvbiB0aW1lXG4iKTsKIAlyb3VuZHRyaXBfdGltZSA9IG5vdyAtIG1pZEVudHJ5LT53aGVuX2FsbG9jOwogCiAJaWYgKHNtYl9jbWQgPCBOVU1CRVJfT0ZfU01CMl9DT01NQU5EUykgewpAQCAtMjMyLDcgKzIzMiw3IEBAIHNtYl9zZW5kX2t2ZWMoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyLCBzdHJ1Y3QgbXNnaGRyICpzbWJfbXNnLAogCQkJcmV0cmllcysrOwogCQkJaWYgKHJldHJpZXMgPj0gMTQgfHwKIAkJCSAgICAoIXNlcnZlci0+bm9ibG9ja3NuZCAmJiAocmV0cmllcyA+IDIpKSkgewotCQkJCWNpZnNfZGJnKFZGUywgInNlbmRzIG9uIHNvY2sgJXAgc3R1Y2sgZm9yIDE1IHNlY29uZHNcbiIsCisJCQkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgInNlbmRzIG9uIHNvY2sgJXAgc3R1Y2sgZm9yIDE1IHNlY29uZHNcbiIsCiAJCQkJCSBzc29ja2V0KTsKIAkJCQlyZXR1cm4gLUVBR0FJTjsKIAkJCX0KQEAgLTI0Niw3ICsyNDYsNyBAQCBzbWJfc2VuZF9rdmVjKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgc3RydWN0IG1zZ2hkciAqc21iX21zZywKIAkJaWYgKHJjID09IDApIHsKIAkJCS8qIHNob3VsZCBuZXZlciBoYXBwZW4sIGxldHRpbmcgc29ja2V0IGNsZWFyIGJlZm9yZQogCQkJICAgcmV0cnlpbmcgaXMgb3VyIG9ubHkgb2J2aW91cyBvcHRpb24gaGVyZSAqLwotCQkJY2lmc19kYmcoVkZTLCAidGNwIHNlbnQgbm8gZGF0YVxuIik7CisJCQljaWZzX3NlcnZlcl9kYmcoVkZTLCAidGNwIHNlbnQgbm8gZGF0YVxuIik7CiAJCQltc2xlZXAoNTAwKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC00NDAsNyArNDQwLDcgQEAgX19zbWJfc2VuZF9ycXN0KHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgaW50IG51bV9ycXN0LAogCX0KIHNtYmRfZG9uZToKIAlpZiAocmMgPCAwICYmIHJjICE9IC1FSU5UUikKLQkJY2lmc19kYmcoVkZTLCAiRXJyb3IgJWQgc2VuZGluZyBkYXRhIG9uIHNvY2tldCB0byBzZXJ2ZXJcbiIsCisJCWNpZnNfc2VydmVyX2RiZyhWRlMsICJFcnJvciAlZCBzZW5kaW5nIGRhdGEgb24gc29ja2V0IHRvIHNlcnZlclxuIiwKIAkJCSByYyk7CiAJZWxzZSBpZiAocmMgPiAwKQogCQlyYyA9IDA7CkBAIC00NzMsOCArNDczLDggQEAgc21iX3NlbmRfcnFzdChzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsIGludCBudW1fcnFzdCwKIAljdXJfcnFzdFswXS5ycV9udmVjID0gMTsKIAogCWlmICghc2VydmVyLT5vcHMtPmluaXRfdHJhbnNmb3JtX3JxKSB7Ci0JCWNpZnNfZGJnKFZGUywgIkVuY3J5cHRpb24gcmVxdWVzdGVkIGJ1dCB0cmFuc2Zvcm0gY2FsbGJhY2sgIgotCQkJICJpcyBtaXNzaW5nXG4iKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIkVuY3J5cHRpb24gcmVxdWVzdGVkIGJ1dCB0cmFuc2Zvcm0gIgorCQkJCSJjYWxsYmFjayBpcyBtaXNzaW5nXG4iKTsKIAkJcmV0dXJuIC1FSU87CiAJfQogCkBAIC01MzIsNiArNTMyLDggQEAgd2FpdF9mb3JfZnJlZV9jcmVkaXRzKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgY29uc3QgaW50IG51bV9jcmVkaXRzLAogCWlmICgoZmxhZ3MgJiBDSUZTX1RJTUVPVVRfTUFTSykgPT0gQ0lGU19OT05fQkxPQ0tJTkcpIHsKIAkJLyogb3Bsb2NrIGJyZWFrcyBtdXN0IG5vdCBiZSBoZWxkIHVwICovCiAJCXNlcnZlci0+aW5fZmxpZ2h0Kys7CisJCWlmIChzZXJ2ZXItPmluX2ZsaWdodCA+IHNlcnZlci0+bWF4X2luX2ZsaWdodCkKKwkJCXNlcnZlci0+bWF4X2luX2ZsaWdodCA9IHNlcnZlci0+aW5fZmxpZ2h0OwogCQkqY3JlZGl0cyAtPSAxOwogCQkqaW5zdGFuY2UgPSBzZXJ2ZXItPnJlY29ubmVjdF9pbnN0YW5jZTsKIAkJc3Bpbl91bmxvY2soJnNlcnZlci0+cmVxX2xvY2spOwpAQCAtNTQ4LDcgKzU1MCw3IEBAIHdhaXRfZm9yX2ZyZWVfY3JlZGl0cyhzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsIGNvbnN0IGludCBudW1fY3JlZGl0cywKIAkJCWlmICghcmMpIHsKIAkJCQl0cmFjZV9zbWIzX2NyZWRpdF90aW1lb3V0KHNlcnZlci0+Q3VycmVudE1pZCwKIAkJCQkJc2VydmVyLT5ob3N0bmFtZSwgbnVtX2NyZWRpdHMpOwotCQkJCWNpZnNfZGJnKFZGUywgIndhaXQgdGltZWQgb3V0IGFmdGVyICVkIG1zXG4iLAorCQkJCWNpZnNfc2VydmVyX2RiZyhWRlMsICJ3YWl0IHRpbWVkIG91dCBhZnRlciAlZCBtc1xuIiwKIAkJCQkJIHRpbWVvdXQpOwogCQkJCXJldHVybiAtRU5PVFNVUFA7CiAJCQl9CkBAIC01ODksNyArNTkxLDcgQEAgd2FpdF9mb3JfZnJlZV9jcmVkaXRzKHN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlciwgY29uc3QgaW50IG51bV9jcmVkaXRzLAogCQkJCQl0cmFjZV9zbWIzX2NyZWRpdF90aW1lb3V0KAogCQkJCQkJc2VydmVyLT5DdXJyZW50TWlkLAogCQkJCQkJc2VydmVyLT5ob3N0bmFtZSwgbnVtX2NyZWRpdHMpOwotCQkJCQljaWZzX2RiZyhWRlMsICJ3YWl0IHRpbWVkIG91dCBhZnRlciAlZCBtc1xuIiwKKwkJCQkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIndhaXQgdGltZWQgb3V0IGFmdGVyICVkIG1zXG4iLAogCQkJCQkJIHRpbWVvdXQpOwogCQkJCQlyZXR1cm4gLUVOT1RTVVBQOwogCQkJCX0KQEAgLTYwOCw2ICs2MTAsOCBAQCB3YWl0X2Zvcl9mcmVlX2NyZWRpdHMoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyLCBjb25zdCBpbnQgbnVtX2NyZWRpdHMsCiAJCQlpZiAoKGZsYWdzICYgQ0lGU19USU1FT1VUX01BU0spICE9IENJRlNfQkxPQ0tJTkdfT1ApIHsKIAkJCQkqY3JlZGl0cyAtPSBudW1fY3JlZGl0czsKIAkJCQlzZXJ2ZXItPmluX2ZsaWdodCArPSBudW1fY3JlZGl0czsKKwkJCQlpZiAoc2VydmVyLT5pbl9mbGlnaHQgPiBzZXJ2ZXItPm1heF9pbl9mbGlnaHQpCisJCQkJCXNlcnZlci0+bWF4X2luX2ZsaWdodCA9IHNlcnZlci0+aW5fZmxpZ2h0OwogCQkJCSppbnN0YW5jZSA9IHNlcnZlci0+cmVjb25uZWN0X2luc3RhbmNlOwogCQkJfQogCQkJc3Bpbl91bmxvY2soJnNlcnZlci0+cmVxX2xvY2spOwpAQCAtODY5LDcgKzg3Myw3IEBAIGNpZnNfc3luY19taWRfcmVzdWx0KHN0cnVjdCBtaWRfcV9lbnRyeSAqbWlkLCBzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIpCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWxpc3RfZGVsX2luaXQoJm1pZC0+cWhlYWQpOwotCQljaWZzX2RiZyhWRlMsICIlczogaW52YWxpZCBtaWQgc3RhdGUgbWlkPSVsbHUgc3RhdGU9JWRcbiIsCisJCWNpZnNfc2VydmVyX2RiZyhWRlMsICIlczogaW52YWxpZCBtaWQgc3RhdGUgbWlkPSVsbHUgc3RhdGU9JWRcbiIsCiAJCQkgX19mdW5jX18sIG1pZC0+bWlkLCBtaWQtPm1pZF9zdGF0ZSk7CiAJCXJjID0gLUVJTzsKIAl9CkBAIC05MTAsNyArOTE0LDcgQEAgY2lmc19jaGVja19yZWNlaXZlKHN0cnVjdCBtaWRfcV9lbnRyeSAqbWlkLCBzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIsCiAJCXJjID0gY2lmc192ZXJpZnlfc2lnbmF0dXJlKCZycXN0LCBzZXJ2ZXIsCiAJCQkJCSAgIG1pZC0+c2VxdWVuY2VfbnVtYmVyKTsKIAkJaWYgKHJjKQotCQkJY2lmc19kYmcoVkZTLCAiU01CIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gcmV0dXJuZWQgZXJyb3IgPSAlZFxuIiwKKwkJCWNpZnNfc2VydmVyX2RiZyhWRlMsICJTTUIgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiByZXR1cm5lZCBlcnJvciA9ICVkXG4iLAogCQkJCSByYyk7CiAJfQogCkBAIC0xMTA3LDcgKzExMTEsNyBAQCBjb21wb3VuZF9zZW5kX3JlY3YoY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfc2VzICpzZXMsCiAJfQogCWlmIChyYyAhPSAwKSB7CiAJCWZvciAoOyBpIDwgbnVtX3Jxc3Q7IGkrKykgewotCQkJY2lmc19kYmcoVkZTLCAiQ2FuY2VsbGluZyB3YWl0IGZvciBtaWQgJWxsdSBjbWQ6ICVkXG4iLAorCQkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIkNhbmNlbGxpbmcgd2FpdCBmb3IgbWlkICVsbHUgY21kOiAlZFxuIiwKIAkJCQkgbWlkUVtpXS0+bWlkLCBsZTE2X3RvX2NwdShtaWRRW2ldLT5jb21tYW5kKSk7CiAJCQlzZW5kX2NhbmNlbChzZXJ2ZXIsICZycXN0W2ldLCBtaWRRW2ldKTsKIAkJCXNwaW5fbG9jaygmR2xvYmFsTWlkX0xvY2spOwpAQCAtMTI0MiwxNyArMTI0NiwxOSBAQCBTZW5kUmVjZWl2ZShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc19zZXMgKnNlcywKIAlzdHJ1Y3Qga3ZlYyBpb3YgPSB7IC5pb3ZfYmFzZSA9IGluX2J1ZiwgLmlvdl9sZW4gPSBsZW4gfTsKIAlzdHJ1Y3Qgc21iX3Jxc3QgcnFzdCA9IHsgLnJxX2lvdiA9ICZpb3YsIC5ycV9udmVjID0gMSB9OwogCXN0cnVjdCBjaWZzX2NyZWRpdHMgY3JlZGl0cyA9IHsgLnZhbHVlID0gMSwgLmluc3RhbmNlID0gMCB9OworCXN0cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcjsKIAogCWlmIChzZXMgPT0gTlVMTCkgewogCQljaWZzX2RiZyhWRlMsICJOdWxsIHNtYiBzZXNzaW9uXG4iKTsKIAkJcmV0dXJuIC1FSU87CiAJfQotCWlmIChzZXMtPnNlcnZlciA9PSBOVUxMKSB7CisJc2VydmVyID0gc2VzLT5zZXJ2ZXI7CisJaWYgKHNlcnZlciA9PSBOVUxMKSB7CiAJCWNpZnNfZGJnKFZGUywgIk51bGwgdGNwIHNlc3Npb25cbiIpOwogCQlyZXR1cm4gLUVJTzsKIAl9CiAKLQlpZiAoc2VzLT5zZXJ2ZXItPnRjcFN0YXR1cyA9PSBDaWZzRXhpdGluZykKKwlpZiAoc2VydmVyLT50Y3BTdGF0dXMgPT0gQ2lmc0V4aXRpbmcpCiAJCXJldHVybiAtRU5PRU5UOwogCiAJLyogRW5zdXJlIHRoYXQgd2UgZG8gbm90IHNlbmQgbW9yZSB0aGFuIDUwIG92ZXJsYXBwaW5nIHJlcXVlc3RzCkBAIC0xMjYwLDEyICsxMjY2LDEyIEBAIFNlbmRSZWNlaXZlKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3NlcyAqc2VzLAogCSAgIHVzZSBzZXMtPm1heFJlcSAqLwogCiAJaWYgKGxlbiA+IENJRlNNYXhCdWZTaXplICsgTUFYX0NJRlNfSERSX1NJWkUgLSA0KSB7Ci0JCWNpZnNfZGJnKFZGUywgIklsbGVnYWwgbGVuZ3RoLCBncmVhdGVyIHRoYW4gbWF4aW11bSBmcmFtZSwgJWRcbiIsCisJCWNpZnNfc2VydmVyX2RiZyhWRlMsICJJbGxlZ2FsIGxlbmd0aCwgZ3JlYXRlciB0aGFuIG1heGltdW0gZnJhbWUsICVkXG4iLAogCQkJIGxlbik7CiAJCXJldHVybiAtRUlPOwogCX0KIAotCXJjID0gd2FpdF9mb3JfZnJlZV9yZXF1ZXN0KHNlcy0+c2VydmVyLCBmbGFncywgJmNyZWRpdHMuaW5zdGFuY2UpOworCXJjID0gd2FpdF9mb3JfZnJlZV9yZXF1ZXN0KHNlcnZlciwgZmxhZ3MsICZjcmVkaXRzLmluc3RhbmNlKTsKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIApAQCAtMTI3Myw3MCArMTI3OSw3MCBAQCBTZW5kUmVjZWl2ZShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc19zZXMgKnNlcywKIAkgICBhbmQgYXZvaWQgcmFjZXMgaW5zaWRlIHRjcCBzZW5kbXNnIGNvZGUgdGhhdCBjb3VsZCBjYXVzZSBjb3JydXB0aW9uCiAJICAgb2Ygc21iIGRhdGEgKi8KIAotCW11dGV4X2xvY2soJnNlcy0+c2VydmVyLT5zcnZfbXV0ZXgpOworCW11dGV4X2xvY2soJnNlcnZlci0+c3J2X211dGV4KTsKIAogCXJjID0gYWxsb2NhdGVfbWlkKHNlcywgaW5fYnVmLCAmbWlkUSk7CiAJaWYgKHJjKSB7CiAJCW11dGV4X3VubG9jaygmc2VzLT5zZXJ2ZXItPnNydl9tdXRleCk7CiAJCS8qIFVwZGF0ZSAjIG9mIHJlcXVlc3RzIG9uIHdpcmUgdG8gc2VydmVyICovCi0JCWFkZF9jcmVkaXRzKHNlcy0+c2VydmVyLCAmY3JlZGl0cywgMCk7CisJCWFkZF9jcmVkaXRzKHNlcnZlciwgJmNyZWRpdHMsIDApOwogCQlyZXR1cm4gcmM7CiAJfQogCi0JcmMgPSBjaWZzX3NpZ25fc21iKGluX2J1Ziwgc2VzLT5zZXJ2ZXIsICZtaWRRLT5zZXF1ZW5jZV9udW1iZXIpOworCXJjID0gY2lmc19zaWduX3NtYihpbl9idWYsIHNlcnZlciwgJm1pZFEtPnNlcXVlbmNlX251bWJlcik7CiAJaWYgKHJjKSB7Ci0JCW11dGV4X3VubG9jaygmc2VzLT5zZXJ2ZXItPnNydl9tdXRleCk7CisJCW11dGV4X3VubG9jaygmc2VydmVyLT5zcnZfbXV0ZXgpOwogCQlnb3RvIG91dDsKIAl9CiAKIAltaWRRLT5taWRfc3RhdGUgPSBNSURfUkVRVUVTVF9TVUJNSVRURUQ7CiAKLQljaWZzX2luX3NlbmRfaW5jKHNlcy0+c2VydmVyKTsKLQlyYyA9IHNtYl9zZW5kKHNlcy0+c2VydmVyLCBpbl9idWYsIGxlbik7Ci0JY2lmc19pbl9zZW5kX2RlYyhzZXMtPnNlcnZlcik7CisJY2lmc19pbl9zZW5kX2luYyhzZXJ2ZXIpOworCXJjID0gc21iX3NlbmQoc2VydmVyLCBpbl9idWYsIGxlbik7CisJY2lmc19pbl9zZW5kX2RlYyhzZXJ2ZXIpOwogCWNpZnNfc2F2ZV93aGVuX3NlbnQobWlkUSk7CiAKIAlpZiAocmMgPCAwKQotCQlzZXMtPnNlcnZlci0+c2VxdWVuY2VfbnVtYmVyIC09IDI7CisJCXNlcnZlci0+c2VxdWVuY2VfbnVtYmVyIC09IDI7CiAKLQltdXRleF91bmxvY2soJnNlcy0+c2VydmVyLT5zcnZfbXV0ZXgpOworCW11dGV4X3VubG9jaygmc2VydmVyLT5zcnZfbXV0ZXgpOwogCiAJaWYgKHJjIDwgMCkKIAkJZ290byBvdXQ7CiAKLQlyYyA9IHdhaXRfZm9yX3Jlc3BvbnNlKHNlcy0+c2VydmVyLCBtaWRRKTsKKwlyYyA9IHdhaXRfZm9yX3Jlc3BvbnNlKHNlcnZlciwgbWlkUSk7CiAJaWYgKHJjICE9IDApIHsKLQkJc2VuZF9jYW5jZWwoc2VzLT5zZXJ2ZXIsICZycXN0LCBtaWRRKTsKKwkJc2VuZF9jYW5jZWwoc2VydmVyLCAmcnFzdCwgbWlkUSk7CiAJCXNwaW5fbG9jaygmR2xvYmFsTWlkX0xvY2spOwogCQlpZiAobWlkUS0+bWlkX3N0YXRlID09IE1JRF9SRVFVRVNUX1NVQk1JVFRFRCkgewogCQkJLyogbm8gbG9uZ2VyIGNvbnNpZGVyZWQgdG8gYmUgImluLWZsaWdodCIgKi8KIAkJCW1pZFEtPmNhbGxiYWNrID0gRGVsZXRlTWlkUUVudHJ5OwogCQkJc3Bpbl91bmxvY2soJkdsb2JhbE1pZF9Mb2NrKTsKLQkJCWFkZF9jcmVkaXRzKHNlcy0+c2VydmVyLCAmY3JlZGl0cywgMCk7CisJCQlhZGRfY3JlZGl0cyhzZXJ2ZXIsICZjcmVkaXRzLCAwKTsKIAkJCXJldHVybiByYzsKIAkJfQogCQlzcGluX3VubG9jaygmR2xvYmFsTWlkX0xvY2spOwogCX0KIAotCXJjID0gY2lmc19zeW5jX21pZF9yZXN1bHQobWlkUSwgc2VzLT5zZXJ2ZXIpOworCXJjID0gY2lmc19zeW5jX21pZF9yZXN1bHQobWlkUSwgc2VydmVyKTsKIAlpZiAocmMgIT0gMCkgewotCQlhZGRfY3JlZGl0cyhzZXMtPnNlcnZlciwgJmNyZWRpdHMsIDApOworCQlhZGRfY3JlZGl0cyhzZXJ2ZXIsICZjcmVkaXRzLCAwKTsKIAkJcmV0dXJuIHJjOwogCX0KIAogCWlmICghbWlkUS0+cmVzcF9idWYgfHwgIW91dF9idWYgfHwKIAkgICAgbWlkUS0+bWlkX3N0YXRlICE9IE1JRF9SRVNQT05TRV9SRUNFSVZFRCkgewogCQlyYyA9IC1FSU87Ci0JCWNpZnNfZGJnKFZGUywgIkJhZCBNSUQgc3RhdGU/XG4iKTsKKwkJY2lmc19zZXJ2ZXJfZGJnKFZGUywgIkJhZCBNSUQgc3RhdGU/XG4iKTsKIAkJZ290byBvdXQ7CiAJfQogCiAJKnBieXRlc19yZXR1cm5lZCA9IGdldF9yZmMxMDAyX2xlbmd0aChtaWRRLT5yZXNwX2J1Zik7CiAJbWVtY3B5KG91dF9idWYsIG1pZFEtPnJlc3BfYnVmLCAqcGJ5dGVzX3JldHVybmVkICsgNCk7Ci0JcmMgPSBjaWZzX2NoZWNrX3JlY2VpdmUobWlkUSwgc2VzLT5zZXJ2ZXIsIDApOworCXJjID0gY2lmc19jaGVja19yZWNlaXZlKG1pZFEsIHNlcnZlciwgMCk7CiBvdXQ6CiAJY2lmc19kZWxldGVfbWlkKG1pZFEpOwotCWFkZF9jcmVkaXRzKHNlcy0+c2VydmVyLCAmY3JlZGl0cywgMCk7CisJYWRkX2NyZWRpdHMoc2VydmVyLCAmY3JlZGl0cywgMCk7CiAKIAlyZXR1cm4gcmM7CiB9CkBAIC0xMzc5LDE5ICsxMzg1LDIxIEBAIFNlbmRSZWNlaXZlQmxvY2tpbmdMb2NrKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJc3RydWN0IGt2ZWMgaW92ID0geyAuaW92X2Jhc2UgPSBpbl9idWYsIC5pb3ZfbGVuID0gbGVuIH07CiAJc3RydWN0IHNtYl9ycXN0IHJxc3QgPSB7IC5ycV9pb3YgPSAmaW92LCAucnFfbnZlYyA9IDEgfTsKIAl1bnNpZ25lZCBpbnQgaW5zdGFuY2U7CisJc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyOwogCiAJaWYgKHRjb24gPT0gTlVMTCB8fCB0Y29uLT5zZXMgPT0gTlVMTCkgewogCQljaWZzX2RiZyhWRlMsICJOdWxsIHNtYiBzZXNzaW9uXG4iKTsKIAkJcmV0dXJuIC1FSU87CiAJfQogCXNlcyA9IHRjb24tPnNlczsKKwlzZXJ2ZXIgPSBzZXMtPnNlcnZlcjsKIAotCWlmIChzZXMtPnNlcnZlciA9PSBOVUxMKSB7CisJaWYgKHNlcnZlciA9PSBOVUxMKSB7CiAJCWNpZnNfZGJnKFZGUywgIk51bGwgdGNwIHNlc3Npb25cbiIpOwogCQlyZXR1cm4gLUVJTzsKIAl9CiAKLQlpZiAoc2VzLT5zZXJ2ZXItPnRjcFN0YXR1cyA9PSBDaWZzRXhpdGluZykKKwlpZiAoc2VydmVyLT50Y3BTdGF0dXMgPT0gQ2lmc0V4aXRpbmcpCiAJCXJldHVybiAtRU5PRU5UOwogCiAJLyogRW5zdXJlIHRoYXQgd2UgZG8gbm90IHNlbmQgbW9yZSB0aGFuIDUwIG92ZXJsYXBwaW5nIHJlcXVlc3RzCkBAIC0xMzk5LDEyICsxNDA3LDEyIEBAIFNlbmRSZWNlaXZlQmxvY2tpbmdMb2NrKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJICAgdXNlIHNlcy0+bWF4UmVxICovCiAKIAlpZiAobGVuID4gQ0lGU01heEJ1ZlNpemUgKyBNQVhfQ0lGU19IRFJfU0laRSAtIDQpIHsKLQkJY2lmc19kYmcoVkZTLCAiSWxsZWdhbCBsZW5ndGgsIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIGZyYW1lLCAlZFxuIiwKKwkJY2lmc190Y29uX2RiZyhWRlMsICJJbGxlZ2FsIGxlbmd0aCwgZ3JlYXRlciB0aGFuIG1heGltdW0gZnJhbWUsICVkXG4iLAogCQkJIGxlbik7CiAJCXJldHVybiAtRUlPOwogCX0KIAotCXJjID0gd2FpdF9mb3JfZnJlZV9yZXF1ZXN0KHNlcy0+c2VydmVyLCBDSUZTX0JMT0NLSU5HX09QLCAmaW5zdGFuY2UpOworCXJjID0gd2FpdF9mb3JfZnJlZV9yZXF1ZXN0KHNlcnZlciwgQ0lGU19CTE9DS0lOR19PUCwgJmluc3RhbmNlKTsKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIApAQCAtMTQxMiwzMSArMTQyMCwzMSBAQCBTZW5kUmVjZWl2ZUJsb2NraW5nTG9jayhjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLAogCSAgIGFuZCBhdm9pZCByYWNlcyBpbnNpZGUgdGNwIHNlbmRtc2cgY29kZSB0aGF0IGNvdWxkIGNhdXNlIGNvcnJ1cHRpb24KIAkgICBvZiBzbWIgZGF0YSAqLwogCi0JbXV0ZXhfbG9jaygmc2VzLT5zZXJ2ZXItPnNydl9tdXRleCk7CisJbXV0ZXhfbG9jaygmc2VydmVyLT5zcnZfbXV0ZXgpOwogCiAJcmMgPSBhbGxvY2F0ZV9taWQoc2VzLCBpbl9idWYsICZtaWRRKTsKIAlpZiAocmMpIHsKLQkJbXV0ZXhfdW5sb2NrKCZzZXMtPnNlcnZlci0+c3J2X211dGV4KTsKKwkJbXV0ZXhfdW5sb2NrKCZzZXJ2ZXItPnNydl9tdXRleCk7CiAJCXJldHVybiByYzsKIAl9CiAKLQlyYyA9IGNpZnNfc2lnbl9zbWIoaW5fYnVmLCBzZXMtPnNlcnZlciwgJm1pZFEtPnNlcXVlbmNlX251bWJlcik7CisJcmMgPSBjaWZzX3NpZ25fc21iKGluX2J1Ziwgc2VydmVyLCAmbWlkUS0+c2VxdWVuY2VfbnVtYmVyKTsKIAlpZiAocmMpIHsKIAkJY2lmc19kZWxldGVfbWlkKG1pZFEpOwotCQltdXRleF91bmxvY2soJnNlcy0+c2VydmVyLT5zcnZfbXV0ZXgpOworCQltdXRleF91bmxvY2soJnNlcnZlci0+c3J2X211dGV4KTsKIAkJcmV0dXJuIHJjOwogCX0KIAogCW1pZFEtPm1pZF9zdGF0ZSA9IE1JRF9SRVFVRVNUX1NVQk1JVFRFRDsKLQljaWZzX2luX3NlbmRfaW5jKHNlcy0+c2VydmVyKTsKLQlyYyA9IHNtYl9zZW5kKHNlcy0+c2VydmVyLCBpbl9idWYsIGxlbik7Ci0JY2lmc19pbl9zZW5kX2RlYyhzZXMtPnNlcnZlcik7CisJY2lmc19pbl9zZW5kX2luYyhzZXJ2ZXIpOworCXJjID0gc21iX3NlbmQoc2VydmVyLCBpbl9idWYsIGxlbik7CisJY2lmc19pbl9zZW5kX2RlYyhzZXJ2ZXIpOwogCWNpZnNfc2F2ZV93aGVuX3NlbnQobWlkUSk7CiAKIAlpZiAocmMgPCAwKQotCQlzZXMtPnNlcnZlci0+c2VxdWVuY2VfbnVtYmVyIC09IDI7CisJCXNlcnZlci0+c2VxdWVuY2VfbnVtYmVyIC09IDI7CiAKLQltdXRleF91bmxvY2soJnNlcy0+c2VydmVyLT5zcnZfbXV0ZXgpOworCW11dGV4X3VubG9jaygmc2VydmVyLT5zcnZfbXV0ZXgpOwogCiAJaWYgKHJjIDwgMCkgewogCQljaWZzX2RlbGV0ZV9taWQobWlkUSk7CkBAIC0xNDQ0LDIxICsxNDUyLDIxIEBAIFNlbmRSZWNlaXZlQmxvY2tpbmdMb2NrKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJfQogCiAJLyogV2FpdCBmb3IgYSByZXBseSAtIGFsbG93IHNpZ25hbHMgdG8gaW50ZXJydXB0LiAqLwotCXJjID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHNlcy0+c2VydmVyLT5yZXNwb25zZV9xLAorCXJjID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHNlcnZlci0+cmVzcG9uc2VfcSwKIAkJKCEobWlkUS0+bWlkX3N0YXRlID09IE1JRF9SRVFVRVNUX1NVQk1JVFRFRCkpIHx8Ci0JCSgoc2VzLT5zZXJ2ZXItPnRjcFN0YXR1cyAhPSBDaWZzR29vZCkgJiYKLQkJIChzZXMtPnNlcnZlci0+dGNwU3RhdHVzICE9IENpZnNOZXcpKSk7CisJCSgoc2VydmVyLT50Y3BTdGF0dXMgIT0gQ2lmc0dvb2QpICYmCisJCSAoc2VydmVyLT50Y3BTdGF0dXMgIT0gQ2lmc05ldykpKTsKIAogCS8qIFdlcmUgd2UgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwgPyAqLwogCWlmICgocmMgPT0gLUVSRVNUQVJUU1lTKSAmJgogCQkobWlkUS0+bWlkX3N0YXRlID09IE1JRF9SRVFVRVNUX1NVQk1JVFRFRCkgJiYKLQkJKChzZXMtPnNlcnZlci0+dGNwU3RhdHVzID09IENpZnNHb29kKSB8fAotCQkgKHNlcy0+c2VydmVyLT50Y3BTdGF0dXMgPT0gQ2lmc05ldykpKSB7CisJCSgoc2VydmVyLT50Y3BTdGF0dXMgPT0gQ2lmc0dvb2QpIHx8CisJCSAoc2VydmVyLT50Y3BTdGF0dXMgPT0gQ2lmc05ldykpKSB7CiAKIAkJaWYgKGluX2J1Zi0+Q29tbWFuZCA9PSBTTUJfQ09NX1RSQU5TQUNUSU9OMikgewogCQkJLyogUE9TSVggbG9jay4gV2Ugc2VuZCBhIE5UX0NBTkNFTCBTTUIgdG8gY2F1c2UgdGhlCiAJCQkgICBibG9ja2luZyBsb2NrIHRvIHJldHVybi4gKi8KLQkJCXJjID0gc2VuZF9jYW5jZWwoc2VzLT5zZXJ2ZXIsICZycXN0LCBtaWRRKTsKKwkJCXJjID0gc2VuZF9jYW5jZWwoc2VydmVyLCAmcnFzdCwgbWlkUSk7CiAJCQlpZiAocmMpIHsKIAkJCQljaWZzX2RlbGV0ZV9taWQobWlkUSk7CiAJCQkJcmV0dXJuIHJjOwpAQCAtMTQ3Nyw5ICsxNDg1LDkgQEAgU2VuZFJlY2VpdmVCbG9ja2luZ0xvY2soY29uc3QgdW5zaWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbiwKIAkJCX0KIAkJfQogCi0JCXJjID0gd2FpdF9mb3JfcmVzcG9uc2Uoc2VzLT5zZXJ2ZXIsIG1pZFEpOworCQlyYyA9IHdhaXRfZm9yX3Jlc3BvbnNlKHNlcnZlciwgbWlkUSk7CiAJCWlmIChyYykgewotCQkJc2VuZF9jYW5jZWwoc2VzLT5zZXJ2ZXIsICZycXN0LCBtaWRRKTsKKwkJCXNlbmRfY2FuY2VsKHNlcnZlciwgJnJxc3QsIG1pZFEpOwogCQkJc3Bpbl9sb2NrKCZHbG9iYWxNaWRfTG9jayk7CiAJCQlpZiAobWlkUS0+bWlkX3N0YXRlID09IE1JRF9SRVFVRVNUX1NVQk1JVFRFRCkgewogCQkJCS8qIG5vIGxvbmdlciBjb25zaWRlcmVkIHRvIGJlICJpbi1mbGlnaHQiICovCkBAIC0xNDk0LDIwICsxNTAyLDIwIEBAIFNlbmRSZWNlaXZlQmxvY2tpbmdMb2NrKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24sCiAJCXJzdGFydCA9IDE7CiAJfQogCi0JcmMgPSBjaWZzX3N5bmNfbWlkX3Jlc3VsdChtaWRRLCBzZXMtPnNlcnZlcik7CisJcmMgPSBjaWZzX3N5bmNfbWlkX3Jlc3VsdChtaWRRLCBzZXJ2ZXIpOwogCWlmIChyYyAhPSAwKQogCQlyZXR1cm4gcmM7CiAKIAkvKiByY3ZkIGZyYW1lIGlzIG9rICovCiAJaWYgKG91dF9idWYgPT0gTlVMTCB8fCBtaWRRLT5taWRfc3RhdGUgIT0gTUlEX1JFU1BPTlNFX1JFQ0VJVkVEKSB7CiAJCXJjID0gLUVJTzsKLQkJY2lmc19kYmcoVkZTLCAiQmFkIE1JRCBzdGF0ZT9cbiIpOworCQljaWZzX3Rjb25fZGJnKFZGUywgIkJhZCBNSUQgc3RhdGU/XG4iKTsKIAkJZ290byBvdXQ7CiAJfQogCiAJKnBieXRlc19yZXR1cm5lZCA9IGdldF9yZmMxMDAyX2xlbmd0aChtaWRRLT5yZXNwX2J1Zik7CiAJbWVtY3B5KG91dF9idWYsIG1pZFEtPnJlc3BfYnVmLCAqcGJ5dGVzX3JldHVybmVkICsgNCk7Ci0JcmMgPSBjaWZzX2NoZWNrX3JlY2VpdmUobWlkUSwgc2VzLT5zZXJ2ZXIsIDApOworCXJjID0gY2lmc19jaGVja19yZWNlaXZlKG1pZFEsIHNlcnZlciwgMCk7CiBvdXQ6CiAJY2lmc19kZWxldGVfbWlkKG1pZFEpOwogCWlmIChyc3RhcnQgJiYgcmMgPT0gLUVBQ0NFUykKZGlmZiAtLWdpdCBhL2ZzL2NvZGEvaW5vZGUuYyBiL2ZzL2NvZGEvaW5vZGUuYwppbmRleCAzMjFmNTZlLi5iMWM3MGUyIDEwMDY0NAotLS0gYS9mcy9jb2RhL2lub2RlLmMKKysrIGIvZnMvY29kYS9pbm9kZS5jCkBAIC0xODgsNiArMTg4LDkgQEAgc3RhdGljIGludCBjb2RhX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAlzYi0+c19tYWdpYyA9IENPREFfU1VQRVJfTUFHSUM7CiAJc2ItPnNfb3AgPSAmY29kYV9zdXBlcl9vcGVyYXRpb25zOwogCXNiLT5zX2Rfb3AgPSAmY29kYV9kZW50cnlfb3BlcmF0aW9uczsKKwlzYi0+c190aW1lX2dyYW4gPSAxOworCXNiLT5zX3RpbWVfbWluID0gUzY0X01JTjsKKwlzYi0+c190aW1lX21heCA9IFM2NF9NQVg7CiAKIAllcnJvciA9IHN1cGVyX3NldHVwX2JkaShzYik7CiAJaWYgKGVycm9yKQpkaWZmIC0tZ2l0IGEvZnMvY29uZmlnZnMvY29uZmlnZnNfaW50ZXJuYWwuaCBiL2ZzL2NvbmZpZ2ZzL2NvbmZpZ2ZzX2ludGVybmFsLmgKaW5kZXggNTIwZjE4MS4uMjJkY2UyZCAxMDA2NDQKLS0tIGEvZnMvY29uZmlnZnMvY29uZmlnZnNfaW50ZXJuYWwuaAorKysgYi9mcy9jb25maWdmcy9jb25maWdmc19pbnRlcm5hbC5oCkBAIC0zNCw3ICszNCw3IEBAIHN0cnVjdCBjb25maWdmc19kaXJlbnQgewogCWludAkJCXNfZGVwZW5kZW50X2NvdW50OwogCXN0cnVjdCBsaXN0X2hlYWQJc19zaWJsaW5nOwogCXN0cnVjdCBsaXN0X2hlYWQJc19jaGlsZHJlbjsKLQlzdHJ1Y3QgbGlzdF9oZWFkCXNfbGlua3M7CisJaW50CQkJc19saW5rczsKIAl2b2lkCQkJKiBzX2VsZW1lbnQ7CiAJaW50CQkJc190eXBlOwogCXVtb2RlX3QJCQlzX21vZGU7CkBAIC02Niw3ICs2Niw3IEBAIGV4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAqY29uZmlnZnNfZGlyX2NhY2hlcDsKIGV4dGVybiBpbnQgY29uZmlnZnNfaXNfcm9vdChzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0pOwogCiBleHRlcm4gc3RydWN0IGlub2RlICogY29uZmlnZnNfbmV3X2lub2RlKHVtb2RlX3QgbW9kZSwgc3RydWN0IGNvbmZpZ2ZzX2RpcmVudCAqLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7Ci1leHRlcm4gaW50IGNvbmZpZ2ZzX2NyZWF0ZShzdHJ1Y3QgZGVudHJ5ICosIHVtb2RlX3QgbW9kZSwgdm9pZCAoKmluaXQpKHN0cnVjdCBpbm9kZSAqKSk7CitleHRlcm4gc3RydWN0IGlub2RlICpjb25maWdmc19jcmVhdGUoc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90IG1vZGUpOwogCiBleHRlcm4gaW50IGNvbmZpZ2ZzX2NyZWF0ZV9maWxlKHN0cnVjdCBjb25maWdfaXRlbSAqLCBjb25zdCBzdHJ1Y3QgY29uZmlnZnNfYXR0cmlidXRlICopOwogZXh0ZXJuIGludCBjb25maWdmc19jcmVhdGVfYmluX2ZpbGUoc3RydWN0IGNvbmZpZ19pdGVtICosCkBAIC04NCw3ICs4NCw2IEBAIGV4dGVybiBpbnQgY29uZmlnZnNfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAqaWF0dHIpOwogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKmNvbmZpZ2ZzX3Bpbl9mcyh2b2lkKTsKIGV4dGVybiB2b2lkIGNvbmZpZ2ZzX3JlbGVhc2VfZnModm9pZCk7CiAKLWV4dGVybiBzdHJ1Y3Qgcndfc2VtYXBob3JlIGNvbmZpZ2ZzX3JlbmFtZV9zZW07CiBleHRlcm4gY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBjb25maWdmc19kaXJfb3BlcmF0aW9uczsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGNvbmZpZ2ZzX2ZpbGVfb3BlcmF0aW9uczsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGNvbmZpZ2ZzX2Jpbl9maWxlX29wZXJhdGlvbnM7CkBAIC05NywxNCArOTYsOCBAQCBleHRlcm4gaW50IGNvbmZpZ2ZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKIAkJCSAgICBjb25zdCBjaGFyICpzeW1uYW1lKTsKIGV4dGVybiBpbnQgY29uZmlnZnNfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwogCi1zdHJ1Y3QgY29uZmlnZnNfc3ltbGluayB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBzbF9saXN0OwotCXN0cnVjdCBjb25maWdfaXRlbSAqc2xfdGFyZ2V0OwotfTsKLQotZXh0ZXJuIGludCBjb25maWdmc19jcmVhdGVfbGluayhzdHJ1Y3QgY29uZmlnZnNfc3ltbGluayAqc2wsCi0JCQkJc3RydWN0IGRlbnRyeSAqcGFyZW50LAotCQkJCXN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CitpbnQgY29uZmlnZnNfY3JlYXRlX2xpbmsoc3RydWN0IGNvbmZpZ2ZzX2RpcmVudCAqdGFyZ2V0LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCisJCXN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY2hhciAqYm9keSk7CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNvbmZpZ19pdGVtICogdG9faXRlbShzdHJ1Y3QgZGVudHJ5ICogZGVudHJ5KQogewpAQCAtMTMyLDExICsxMjUsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBjb25maWdfaXRlbSAqY29uZmlnZnNfZ2V0X2NvbmZpZ19pdGVtKHN0cnVjdCBkZW50cnkgKmRlbnRyeQogCXNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOwogCWlmICghZF91bmhhc2hlZChkZW50cnkpKSB7CiAJCXN0cnVjdCBjb25maWdmc19kaXJlbnQgKiBzZCA9IGRlbnRyeS0+ZF9mc2RhdGE7Ci0JCWlmIChzZC0+c190eXBlICYgQ09ORklHRlNfSVRFTV9MSU5LKSB7Ci0JCQlzdHJ1Y3QgY29uZmlnZnNfc3ltbGluayAqIHNsID0gc2QtPnNfZWxlbWVudDsKLQkJCWl0ZW0gPSBjb25maWdfaXRlbV9nZXQoc2wtPnNsX3RhcmdldCk7Ci0JCX0gZWxzZQotCQkJaXRlbSA9IGNvbmZpZ19pdGVtX2dldChzZC0+c19lbGVtZW50KTsKKwkJaXRlbSA9IGNvbmZpZ19pdGVtX2dldChzZC0+c19lbGVtZW50KTsKIAl9CiAJc3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsKIApkaWZmIC0tZ2l0IGEvZnMvY29uZmlnZnMvZGlyLmMgYi9mcy9jb25maWdmcy9kaXIuYwppbmRleCA3OWZjMjVhLi5jZjdiN2UxZCAxMDA2NDQKLS0tIGEvZnMvY29uZmlnZnMvZGlyLmMKKysrIGIvZnMvY29uZmlnZnMvZGlyLmMKQEAgLTIyLDcgKzIyLDYgQEAKICNpbmNsdWRlIDxsaW51eC9jb25maWdmcy5oPgogI2luY2x1ZGUgImNvbmZpZ2ZzX2ludGVybmFsLmgiCiAKLURFQ0xBUkVfUldTRU0oY29uZmlnZnNfcmVuYW1lX3NlbSk7CiAvKgogICogUHJvdGVjdHMgbXV0YXRpb25zIG9mIGNvbmZpZ2ZzX2RpcmVudCBsaW5rYWdlIHRvZ2V0aGVyIHdpdGggcHJvcGVyIGlfbXV0ZXgKICAqIEFsc28gcHJvdGVjdHMgbXV0YXRpb25zIG9mIHN5bWxpbmtzIGxpbmthZ2UgdG8gdGFyZ2V0IGNvbmZpZ2ZzX2RpcmVudApAQCAtMTkxLDcgKzE5MCw2IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnZnNfZGlyZW50ICpjb25maWdmc19uZXdfZGlyZW50KHN0cnVjdCBjb25maWdmc19kaXJlbnQgKnBhcmVuCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCiAJYXRvbWljX3NldCgmc2QtPnNfY291bnQsIDEpOwotCUlOSVRfTElTVF9IRUFEKCZzZC0+c19saW5rcyk7CiAJSU5JVF9MSVNUX0hFQUQoJnNkLT5zX2NoaWxkcmVuKTsKIAlzZC0+c19lbGVtZW50ID0gZWxlbWVudDsKIAlzZC0+c190eXBlID0gdHlwZTsKQEAgLTI1MywzMCArMjUxLDE2IEBAIGludCBjb25maWdmc19tYWtlX2RpcmVudChzdHJ1Y3QgY29uZmlnZnNfZGlyZW50ICogcGFyZW50X3NkLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBpbml0X2RpcihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSkKK3N0YXRpYyB2b2lkIGNvbmZpZ2ZzX3JlbW92ZV9kaXJlbnQoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQogewotCWlub2RlLT5pX29wID0gJmNvbmZpZ2ZzX2Rpcl9pbm9kZV9vcGVyYXRpb25zOwotCWlub2RlLT5pX2ZvcCA9ICZjb25maWdmc19kaXJfb3BlcmF0aW9uczsKKwlzdHJ1Y3QgY29uZmlnZnNfZGlyZW50ICpzZCA9IGRlbnRyeS0+ZF9mc2RhdGE7CiAKLQkvKiBkaXJlY3RvcnkgaW5vZGVzIHN0YXJ0IG9mZiB3aXRoIGlfbmxpbmsgPT0gMiAoZm9yICIuIiBlbnRyeSkgKi8KLQlpbmNfbmxpbmsoaW5vZGUpOwotfQotCi1zdGF0aWMgdm9pZCBjb25maWdmc19pbml0X2ZpbGUoc3RydWN0IGlub2RlICogaW5vZGUpCi17Ci0JaW5vZGUtPmlfc2l6ZSA9IFBBR0VfU0laRTsKLQlpbm9kZS0+aV9mb3AgPSAmY29uZmlnZnNfZmlsZV9vcGVyYXRpb25zOwotfQotCi1zdGF0aWMgdm9pZCBjb25maWdmc19pbml0X2Jpbl9maWxlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCi17Ci0JaW5vZGUtPmlfc2l6ZSA9IDA7Ci0JaW5vZGUtPmlfZm9wID0gJmNvbmZpZ2ZzX2Jpbl9maWxlX29wZXJhdGlvbnM7Ci19Ci0KLXN0YXRpYyB2b2lkIGluaXRfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKiBpbm9kZSkKLXsKLQlpbm9kZS0+aV9vcCA9ICZjb25maWdmc19zeW1saW5rX2lub2RlX29wZXJhdGlvbnM7CisJaWYgKCFzZCkKKwkJcmV0dXJuOworCXNwaW5fbG9jaygmY29uZmlnZnNfZGlyZW50X2xvY2spOworCWxpc3RfZGVsX2luaXQoJnNkLT5zX3NpYmxpbmcpOworCXNwaW5fdW5sb2NrKCZjb25maWdmc19kaXJlbnRfbG9jayk7CisJY29uZmlnZnNfcHV0KHNkKTsKIH0KIAogLyoqCkBAIC0yOTQsNiArMjc4LDcgQEAgc3RhdGljIGludCBjb25maWdmc19jcmVhdGVfZGlyKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAogCWludCBlcnJvcjsKIAl1bW9kZV90IG1vZGUgPSBTX0lGRElSfCBTX0lSV1hVIHwgU19JUlVHTyB8IFNfSVhVR087CiAJc3RydWN0IGRlbnRyeSAqcCA9IGRlbnRyeS0+ZF9wYXJlbnQ7CisJc3RydWN0IGlub2RlICppbm9kZTsKIAogCUJVR19PTighaXRlbSk7CiAKQEAgLTMwOCwyMCArMjkzLDI0IEBAIHN0YXRpYyBpbnQgY29uZmlnZnNfY3JlYXRlX2RpcihzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKIAkJcmV0dXJuIGVycm9yOwogCiAJY29uZmlnZnNfc2V0X2Rpcl9kaXJlbnRfZGVwdGgocC0+ZF9mc2RhdGEsIGRlbnRyeS0+ZF9mc2RhdGEpOwotCWVycm9yID0gY29uZmlnZnNfY3JlYXRlKGRlbnRyeSwgbW9kZSwgaW5pdF9kaXIpOwotCWlmICghZXJyb3IpIHsKLQkJaW5jX25saW5rKGRfaW5vZGUocCkpOwotCQlpdGVtLT5jaV9kZW50cnkgPSBkZW50cnk7Ci0JfSBlbHNlIHsKLQkJc3RydWN0IGNvbmZpZ2ZzX2RpcmVudCAqc2QgPSBkZW50cnktPmRfZnNkYXRhOwotCQlpZiAoc2QpIHsKLQkJCXNwaW5fbG9jaygmY29uZmlnZnNfZGlyZW50X2xvY2spOwotCQkJbGlzdF9kZWxfaW5pdCgmc2QtPnNfc2libGluZyk7Ci0JCQlzcGluX3VubG9jaygmY29uZmlnZnNfZGlyZW50X2xvY2spOwotCQkJY29uZmlnZnNfcHV0KHNkKTsKLQkJfQotCX0KLQlyZXR1cm4gZXJyb3I7CisJaW5vZGUgPSBjb25maWdmc19jcmVhdGUoZGVudHJ5LCBtb2RlKTsKKwlpZiAoSVNfRVJSKGlub2RlKSkKKwkJZ290byBvdXRfcmVtb3ZlOworCisJaW5vZGUtPmlfb3AgPSAmY29uZmlnZnNfZGlyX2lub2RlX29wZXJhdGlvbnM7CisJaW5vZGUtPmlfZm9wID0gJmNvbmZpZ2ZzX2Rpcl9vcGVyYXRpb25zOworCS8qIGRpcmVjdG9yeSBpbm9kZXMgc3RhcnQgb2ZmIHdpdGggaV9ubGluayA9PSAyIChmb3IgIi4iIGVudHJ5KSAqLworCWluY19ubGluayhpbm9kZSk7CisJZF9pbnN0YW50aWF0ZShkZW50cnksIGlub2RlKTsKKwkvKiBhbHJlYWR5IGhhc2hlZCAqLworCWRnZXQoZGVudHJ5KTsgIC8qIHBpbiBkaXJlY3RvcnkgZGVudHJpZXMgaW4gY29yZSAqLworCWluY19ubGluayhkX2lub2RlKHApKTsKKwlpdGVtLT5jaV9kZW50cnkgPSBkZW50cnk7CisJcmV0dXJuIDA7CisKK291dF9yZW1vdmU6CisJY29uZmlnZnNfcmVtb3ZlX2RpcmVudChkZW50cnkpOworCXJldHVybiBQVFJfRVJSKGlub2RlKTsKIH0KIAogLyoKQEAgLTM2Miw0MSArMzUxLDQwIEBAIGludCBjb25maWdmc19kaXJlbnRfaXNfcmVhZHkoc3RydWN0IGNvbmZpZ2ZzX2RpcmVudCAqc2QpCiAJcmV0dXJuIHJldDsKIH0KIAotaW50IGNvbmZpZ2ZzX2NyZWF0ZV9saW5rKHN0cnVjdCBjb25maWdmc19zeW1saW5rICpzbCwKLQkJCSBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCi0JCQkgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoraW50IGNvbmZpZ2ZzX2NyZWF0ZV9saW5rKHN0cnVjdCBjb25maWdmc19kaXJlbnQgKnRhcmdldCwgc3RydWN0IGRlbnRyeSAqcGFyZW50LAorCQlzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNoYXIgKmJvZHkpCiB7CiAJaW50IGVyciA9IDA7CiAJdW1vZGVfdCBtb2RlID0gU19JRkxOSyB8IFNfSVJXWFVHTzsKIAlzdHJ1Y3QgY29uZmlnZnNfZGlyZW50ICpwID0gcGFyZW50LT5kX2ZzZGF0YTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCi0JZXJyID0gY29uZmlnZnNfbWFrZV9kaXJlbnQocCwgZGVudHJ5LCBzbCwgbW9kZSwKLQkJCQkgICBDT05GSUdGU19JVEVNX0xJTkssIHAtPnNfZnJhZyk7Ci0JaWYgKCFlcnIpIHsKLQkJZXJyID0gY29uZmlnZnNfY3JlYXRlKGRlbnRyeSwgbW9kZSwgaW5pdF9zeW1saW5rKTsKLQkJaWYgKGVycikgewotCQkJc3RydWN0IGNvbmZpZ2ZzX2RpcmVudCAqc2QgPSBkZW50cnktPmRfZnNkYXRhOwotCQkJaWYgKHNkKSB7Ci0JCQkJc3Bpbl9sb2NrKCZjb25maWdmc19kaXJlbnRfbG9jayk7Ci0JCQkJbGlzdF9kZWxfaW5pdCgmc2QtPnNfc2libGluZyk7Ci0JCQkJc3Bpbl91bmxvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsKLQkJCQljb25maWdmc19wdXQoc2QpOwotCQkJfQotCQl9Ci0JfQotCXJldHVybiBlcnI7CisJZXJyID0gY29uZmlnZnNfbWFrZV9kaXJlbnQocCwgZGVudHJ5LCB0YXJnZXQsIG1vZGUsIENPTkZJR0ZTX0lURU1fTElOSywKKwkJCXAtPnNfZnJhZyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWlub2RlID0gY29uZmlnZnNfY3JlYXRlKGRlbnRyeSwgbW9kZSk7CisJaWYgKElTX0VSUihpbm9kZSkpCisJCWdvdG8gb3V0X3JlbW92ZTsKKworCWlub2RlLT5pX2xpbmsgPSBib2R5OworCWlub2RlLT5pX29wID0gJmNvbmZpZ2ZzX3N5bWxpbmtfaW5vZGVfb3BlcmF0aW9uczsKKwlkX2luc3RhbnRpYXRlKGRlbnRyeSwgaW5vZGUpOworCWRnZXQoZGVudHJ5KTsgIC8qIHBpbiBsaW5rIGRlbnRyaWVzIGluIGNvcmUgKi8KKwlyZXR1cm4gMDsKKworb3V0X3JlbW92ZToKKwljb25maWdmc19yZW1vdmVfZGlyZW50KGRlbnRyeSk7CisJcmV0dXJuIFBUUl9FUlIoaW5vZGUpOwogfQogCiBzdGF0aWMgdm9pZCByZW1vdmVfZGlyKHN0cnVjdCBkZW50cnkgKiBkKQogewogCXN0cnVjdCBkZW50cnkgKiBwYXJlbnQgPSBkZ2V0KGQtPmRfcGFyZW50KTsKLQlzdHJ1Y3QgY29uZmlnZnNfZGlyZW50ICogc2Q7CiAKLQlzZCA9IGQtPmRfZnNkYXRhOwotCXNwaW5fbG9jaygmY29uZmlnZnNfZGlyZW50X2xvY2spOwotCWxpc3RfZGVsX2luaXQoJnNkLT5zX3NpYmxpbmcpOwotCXNwaW5fdW5sb2NrKCZjb25maWdmc19kaXJlbnRfbG9jayk7Ci0JY29uZmlnZnNfcHV0KHNkKTsKKwljb25maWdmc19yZW1vdmVfZGlyZW50KGQpOworCiAJaWYgKGRfcmVhbGx5X2lzX3Bvc2l0aXZlKGQpKQogCQlzaW1wbGVfcm1kaXIoZF9pbm9kZShwYXJlbnQpLGQpOwogCkBAIC00MzcsMjAgKzQyNSwyNyBAQCBzdGF0aWMgdm9pZCBjb25maWdmc19yZW1vdmVfZGlyKHN0cnVjdCBjb25maWdfaXRlbSAqIGl0ZW0pCiBzdGF0aWMgaW50IGNvbmZpZ2ZzX2F0dGFjaF9hdHRyKHN0cnVjdCBjb25maWdmc19kaXJlbnQgKiBzZCwgc3RydWN0IGRlbnRyeSAqIGRlbnRyeSkKIHsKIAlzdHJ1Y3QgY29uZmlnZnNfYXR0cmlidXRlICogYXR0ciA9IHNkLT5zX2VsZW1lbnQ7Ci0JaW50IGVycm9yOworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CiAKIAlzcGluX2xvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsKIAlkZW50cnktPmRfZnNkYXRhID0gY29uZmlnZnNfZ2V0KHNkKTsKIAlzZC0+c19kZW50cnkgPSBkZW50cnk7CiAJc3Bpbl91bmxvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsKIAotCWVycm9yID0gY29uZmlnZnNfY3JlYXRlKGRlbnRyeSwgKGF0dHItPmNhX21vZGUgJiBTX0lBTExVR08pIHwgU19JRlJFRywKLQkJCQkoc2QtPnNfdHlwZSAmIENPTkZJR0ZTX0lURU1fQklOX0FUVFIpID8KLQkJCQkJY29uZmlnZnNfaW5pdF9iaW5fZmlsZSA6Ci0JCQkJCWNvbmZpZ2ZzX2luaXRfZmlsZSk7Ci0JaWYgKGVycm9yKQorCWlub2RlID0gY29uZmlnZnNfY3JlYXRlKGRlbnRyeSwgKGF0dHItPmNhX21vZGUgJiBTX0lBTExVR08pIHwgU19JRlJFRyk7CisJaWYgKElTX0VSUihpbm9kZSkpIHsKIAkJY29uZmlnZnNfcHV0KHNkKTsKLQlyZXR1cm4gZXJyb3I7CisJCXJldHVybiBQVFJfRVJSKGlub2RlKTsKKwl9CisJaWYgKHNkLT5zX3R5cGUgJiBDT05GSUdGU19JVEVNX0JJTl9BVFRSKSB7CisJCWlub2RlLT5pX3NpemUgPSAwOworCQlpbm9kZS0+aV9mb3AgPSAmY29uZmlnZnNfYmluX2ZpbGVfb3BlcmF0aW9uczsKKwl9IGVsc2UgeworCQlpbm9kZS0+aV9zaXplID0gUEFHRV9TSVpFOworCQlpbm9kZS0+aV9mb3AgPSAmY29uZmlnZnNfZmlsZV9vcGVyYXRpb25zOworCX0KKwlkX2FkZChkZW50cnksIGlub2RlKTsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHN0cnVjdCBkZW50cnkgKiBjb25maWdmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXIsCkBAIC01MjAsNyArNTE1LDcgQEAgc3RhdGljIGludCBjb25maWdmc19kZXRhY2hfcHJlcChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBkZW50cnkgKip3YWl0KQogCXBhcmVudF9zZC0+c190eXBlIHw9IENPTkZJR0ZTX1VTRVRfRFJPUFBJTkc7CiAKIAlyZXQgPSAtRUJVU1k7Ci0JaWYgKCFsaXN0X2VtcHR5KCZwYXJlbnRfc2QtPnNfbGlua3MpKQorCWlmIChwYXJlbnRfc2QtPnNfbGlua3MpCiAJCWdvdG8gb3V0OwogCiAJcmV0ID0gMDsKQEAgLTE1NzgsNDQgKzE1NzMsNiBAQCBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBjb25maWdmc19yb290X2lub2RlX29wZXJhdGlvbnMgPSB7CiAJLnNldGF0dHIJPSBjb25maWdmc19zZXRhdHRyLAogfTsKIAotI2lmIDAKLWludCBjb25maWdmc19yZW5hbWVfZGlyKHN0cnVjdCBjb25maWdfaXRlbSAqIGl0ZW0sIGNvbnN0IGNoYXIgKm5ld19uYW1lKQotewotCWludCBlcnJvciA9IDA7Ci0Jc3RydWN0IGRlbnRyeSAqIG5ld19kZW50cnksICogcGFyZW50OwotCi0JaWYgKCFzdHJjbXAoY29uZmlnX2l0ZW1fbmFtZShpdGVtKSwgbmV3X25hbWUpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmICghaXRlbS0+cGFyZW50KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWRvd25fd3JpdGUoJmNvbmZpZ2ZzX3JlbmFtZV9zZW0pOwotCXBhcmVudCA9IGl0ZW0tPnBhcmVudC0+ZGVudHJ5OwotCi0JaW5vZGVfbG9jayhkX2lub2RlKHBhcmVudCkpOwotCi0JbmV3X2RlbnRyeSA9IGxvb2t1cF9vbmVfbGVuKG5ld19uYW1lLCBwYXJlbnQsIHN0cmxlbihuZXdfbmFtZSkpOwotCWlmICghSVNfRVJSKG5ld19kZW50cnkpKSB7Ci0JCWlmIChkX3JlYWxseV9pc19uZWdhdGl2ZShuZXdfZGVudHJ5KSkgewotCQkJZXJyb3IgPSBjb25maWdfaXRlbV9zZXRfbmFtZShpdGVtLCAiJXMiLCBuZXdfbmFtZSk7Ci0JCQlpZiAoIWVycm9yKSB7Ci0JCQkJZF9hZGQobmV3X2RlbnRyeSwgTlVMTCk7Ci0JCQkJZF9tb3ZlKGl0ZW0tPmRlbnRyeSwgbmV3X2RlbnRyeSk7Ci0JCQl9Ci0JCQllbHNlCi0JCQkJZF9kZWxldGUobmV3X2RlbnRyeSk7Ci0JCX0gZWxzZQotCQkJZXJyb3IgPSAtRUVYSVNUOwotCQlkcHV0KG5ld19kZW50cnkpOwotCX0KLQlpbm9kZV91bmxvY2soZF9pbm9kZShwYXJlbnQpKTsKLQl1cF93cml0ZSgmY29uZmlnZnNfcmVuYW1lX3NlbSk7Ci0KLQlyZXR1cm4gZXJyb3I7Ci19Ci0jZW5kaWYKLQogc3RhdGljIGludCBjb25maWdmc19kaXJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAlzdHJ1Y3QgZGVudHJ5ICogZGVudHJ5ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeTsKZGlmZiAtLWdpdCBhL2ZzL2NvbmZpZ2ZzL2lub2RlLmMgYi9mcy9jb25maWdmcy9pbm9kZS5jCmluZGV4IGFiMDI4NDMuLjY4MGFiYTkgMTAwNjQ0Ci0tLSBhL2ZzL2NvbmZpZ2ZzL2lub2RlLmMKKysrIGIvZnMvY29uZmlnZnMvaW5vZGUuYwpAQCAtNzYsMTQgKzc2LDE0IEBAIGludCBjb25maWdmc19zZXRhdHRyKHN0cnVjdCBkZW50cnkgKiBkZW50cnksIHN0cnVjdCBpYXR0ciAqIGlhdHRyKQogCWlmIChpYV92YWxpZCAmIEFUVFJfR0lEKQogCQlzZF9pYXR0ci0+aWFfZ2lkID0gaWF0dHItPmlhX2dpZDsKIAlpZiAoaWFfdmFsaWQgJiBBVFRSX0FUSU1FKQotCQlzZF9pYXR0ci0+aWFfYXRpbWUgPSB0aW1lc3BlYzY0X3RydW5jKGlhdHRyLT5pYV9hdGltZSwKLQkJCQkJCSAgICAgIGlub2RlLT5pX3NiLT5zX3RpbWVfZ3Jhbik7CisJCXNkX2lhdHRyLT5pYV9hdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZShpYXR0ci0+aWFfYXRpbWUsCisJCQkJCQkgICAgICBpbm9kZSk7CiAJaWYgKGlhX3ZhbGlkICYgQVRUUl9NVElNRSkKLQkJc2RfaWF0dHItPmlhX210aW1lID0gdGltZXNwZWM2NF90cnVuYyhpYXR0ci0+aWFfbXRpbWUsCi0JCQkJCQkgICAgICBpbm9kZS0+aV9zYi0+c190aW1lX2dyYW4pOworCQlzZF9pYXR0ci0+aWFfbXRpbWUgPSB0aW1lc3RhbXBfdHJ1bmNhdGUoaWF0dHItPmlhX210aW1lLAorCQkJCQkJICAgICAgaW5vZGUpOwogCWlmIChpYV92YWxpZCAmIEFUVFJfQ1RJTUUpCi0JCXNkX2lhdHRyLT5pYV9jdGltZSA9IHRpbWVzcGVjNjRfdHJ1bmMoaWF0dHItPmlhX2N0aW1lLAotCQkJCQkJICAgICAgaW5vZGUtPmlfc2ItPnNfdGltZV9ncmFuKTsKKwkJc2RfaWF0dHItPmlhX2N0aW1lID0gdGltZXN0YW1wX3RydW5jYXRlKGlhdHRyLT5pYV9jdGltZSwKKwkJCQkJCSAgICAgIGlub2RlKTsKIAlpZiAoaWFfdmFsaWQgJiBBVFRSX01PREUpIHsKIAkJdW1vZGVfdCBtb2RlID0gaWF0dHItPmlhX21vZGU7CiAKQEAgLTE2NCw0MSArMTY0LDI3IEBAIHN0YXRpYyB2b2lkIGNvbmZpZ2ZzX3NldF9pbm9kZV9sb2NrX2NsYXNzKHN0cnVjdCBjb25maWdmc19kaXJlbnQgKnNkLAogCiAjZW5kaWYgLyogQ09ORklHX0xPQ0tERVAgKi8KIAotaW50IGNvbmZpZ2ZzX2NyZWF0ZShzdHJ1Y3QgZGVudHJ5ICogZGVudHJ5LCB1bW9kZV90IG1vZGUsIHZvaWQgKCppbml0KShzdHJ1Y3QgaW5vZGUgKikpCitzdHJ1Y3QgaW5vZGUgKmNvbmZpZ2ZzX2NyZWF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkKIHsKLQlpbnQgZXJyb3IgPSAwOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBOVUxMOwogCXN0cnVjdCBjb25maWdmc19kaXJlbnQgKnNkOwogCXN0cnVjdCBpbm9kZSAqcF9pbm9kZTsKIAogCWlmICghZGVudHJ5KQotCQlyZXR1cm4gLUVOT0VOVDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT0VOVCk7CiAKIAlpZiAoZF9yZWFsbHlfaXNfcG9zaXRpdmUoZGVudHJ5KSkKLQkJcmV0dXJuIC1FRVhJU1Q7CisJCXJldHVybiBFUlJfUFRSKC1FRVhJU1QpOwogCiAJc2QgPSBkZW50cnktPmRfZnNkYXRhOwogCWlub2RlID0gY29uZmlnZnNfbmV3X2lub2RlKG1vZGUsIHNkLCBkZW50cnktPmRfc2IpOwogCWlmICghaW5vZGUpCi0JCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCXBfaW5vZGUgPSBkX2lub2RlKGRlbnRyeS0+ZF9wYXJlbnQpOwogCXBfaW5vZGUtPmlfbXRpbWUgPSBwX2lub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKHBfaW5vZGUpOwogCWNvbmZpZ2ZzX3NldF9pbm9kZV9sb2NrX2NsYXNzKHNkLCBpbm9kZSk7Ci0KLQlpbml0KGlub2RlKTsKLQlpZiAoU19JU0RJUihtb2RlKSB8fCBTX0lTTE5LKG1vZGUpKSB7Ci0JCS8qCi0JCSAqIC0+c3ltbGluaygpLCAtPm1rZGlyKCksIGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbSgpIG9yCi0JCSAqIGNyZWF0ZV9kZWZhdWx0X2dyb3VwKCkgLSBhbHJlYWR5IGhhc2hlZC4KLQkJICovCi0JCWRfaW5zdGFudGlhdGUoZGVudHJ5LCBpbm9kZSk7Ci0JCWRnZXQoZGVudHJ5KTsgIC8qIHBpbiBsaW5rIGFuZCBkaXJlY3RvcnkgZGVudHJpZXMgaW4gY29yZSAqLwotCX0gZWxzZSB7Ci0JCS8qIC0+bG9va3VwKCkgKi8KLQkJZF9hZGQoZGVudHJ5LCBpbm9kZSk7Ci0JfQotCXJldHVybiBlcnJvcjsKKwlyZXR1cm4gaW5vZGU7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9mcy9jb25maWdmcy9tb3VudC5jIGIvZnMvY29uZmlnZnMvbW91bnQuYwppbmRleCA1NTQzOGRkLi4wYzZlOGNmIDEwMDY0NAotLS0gYS9mcy9jb25maWdmcy9tb3VudC5jCisrKyBiL2ZzL2NvbmZpZ2ZzL21vdW50LmMKQEAgLTI4LDkgKzI4LDE4IEBAIHN0YXRpYyBzdHJ1Y3QgdmZzbW91bnQgKmNvbmZpZ2ZzX21vdW50ID0gTlVMTDsKIHN0cnVjdCBrbWVtX2NhY2hlICpjb25maWdmc19kaXJfY2FjaGVwOwogc3RhdGljIGludCBjb25maWdmc19tbnRfY291bnQgPSAwOwogCisKK3N0YXRpYyB2b2lkIGNvbmZpZ2ZzX2ZyZWVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlpZiAoU19JU0xOSyhpbm9kZS0+aV9tb2RlKSkKKwkJa2ZyZWUoaW5vZGUtPmlfbGluayk7CisJZnJlZV9pbm9kZV9ub25yY3UoaW5vZGUpOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgY29uZmlnZnNfb3BzID0gewogCS5zdGF0ZnMJCT0gc2ltcGxlX3N0YXRmcywKIAkuZHJvcF9pbm9kZQk9IGdlbmVyaWNfZGVsZXRlX2lub2RlLAorCS5mcmVlX2lub2RlCT0gY29uZmlnZnNfZnJlZV9pbm9kZSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX2dyb3VwIGNvbmZpZ2ZzX3Jvb3RfZ3JvdXAgPSB7CmRpZmYgLS1naXQgYS9mcy9jb25maWdmcy9zeW1saW5rLmMgYi9mcy9jb25maWdmcy9zeW1saW5rLmMKaW5kZXggOTFlYWM2Yy4uZGM1ZGJmNiAxMDA2NDQKLS0tIGEvZnMvY29uZmlnZnMvc3ltbGluay5jCisrKyBiL2ZzL2NvbmZpZ2ZzL3N5bWxpbmsuYwpAQCAtNTUsNDEgKzU1LDYzIEBAIHN0YXRpYyB2b2lkIGZpbGxfaXRlbV9wYXRoKHN0cnVjdCBjb25maWdfaXRlbSAqIGl0ZW0sIGNoYXIgKiBidWZmZXIsIGludCBsZW5ndGgpCiAJfQogfQogCitzdGF0aWMgaW50IGNvbmZpZ2ZzX2dldF90YXJnZXRfcGF0aChzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sCisJCXN0cnVjdCBjb25maWdfaXRlbSAqdGFyZ2V0LCBjaGFyICpwYXRoKQoreworCWludCBkZXB0aCwgc2l6ZTsKKwljaGFyICpzOworCisJZGVwdGggPSBpdGVtX2RlcHRoKGl0ZW0pOworCXNpemUgPSBpdGVtX3BhdGhfbGVuZ3RoKHRhcmdldCkgKyBkZXB0aCAqIDMgLSAxOworCWlmIChzaXplID4gUEFUSF9NQVgpCisJCXJldHVybiAtRU5BTUVUT09MT05HOworCisJcHJfZGVidWcoIiVzOiBkZXB0aCA9ICVkLCBzaXplID0gJWRcbiIsIF9fZnVuY19fLCBkZXB0aCwgc2l6ZSk7CisKKwlmb3IgKHMgPSBwYXRoOyBkZXB0aC0tOyBzICs9IDMpCisJCXN0cmNweShzLCIuLi8iKTsKKworCWZpbGxfaXRlbV9wYXRoKHRhcmdldCwgcGF0aCwgc2l6ZSk7CisJcHJfZGVidWcoIiVzOiBwYXRoID0gJyVzJ1xuIiwgX19mdW5jX18sIHBhdGgpOworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGNyZWF0ZV9saW5rKHN0cnVjdCBjb25maWdfaXRlbSAqcGFyZW50X2l0ZW0sCiAJCSAgICAgICBzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sCiAJCSAgICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJc3RydWN0IGNvbmZpZ2ZzX2RpcmVudCAqdGFyZ2V0X3NkID0gaXRlbS0+Y2lfZGVudHJ5LT5kX2ZzZGF0YTsKLQlzdHJ1Y3QgY29uZmlnZnNfc3ltbGluayAqc2w7CisJY2hhciAqYm9keTsKIAlpbnQgcmV0OwogCi0JcmV0ID0gLUVOT0VOVDsKIAlpZiAoIWNvbmZpZ2ZzX2RpcmVudF9pc19yZWFkeSh0YXJnZXRfc2QpKQotCQlnb3RvIG91dDsKLQlyZXQgPSAtRU5PTUVNOwotCXNsID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGNvbmZpZ2ZzX3N5bWxpbmspLCBHRlBfS0VSTkVMKTsKLQlpZiAoc2wpIHsKLQkJc3Bpbl9sb2NrKCZjb25maWdmc19kaXJlbnRfbG9jayk7Ci0JCWlmICh0YXJnZXRfc2QtPnNfdHlwZSAmIENPTkZJR0ZTX1VTRVRfRFJPUFBJTkcpIHsKLQkJCXNwaW5fdW5sb2NrKCZjb25maWdmc19kaXJlbnRfbG9jayk7Ci0JCQlrZnJlZShzbCk7Ci0JCQlyZXR1cm4gLUVOT0VOVDsKLQkJfQotCQlzbC0+c2xfdGFyZ2V0ID0gY29uZmlnX2l0ZW1fZ2V0KGl0ZW0pOwotCQlsaXN0X2FkZCgmc2wtPnNsX2xpc3QsICZ0YXJnZXRfc2QtPnNfbGlua3MpOwotCQlzcGluX3VubG9jaygmY29uZmlnZnNfZGlyZW50X2xvY2spOwotCQlyZXQgPSBjb25maWdmc19jcmVhdGVfbGluayhzbCwgcGFyZW50X2l0ZW0tPmNpX2RlbnRyeSwKLQkJCQkJICAgZGVudHJ5KTsKLQkJaWYgKHJldCkgewotCQkJc3Bpbl9sb2NrKCZjb25maWdmc19kaXJlbnRfbG9jayk7Ci0JCQlsaXN0X2RlbF9pbml0KCZzbC0+c2xfbGlzdCk7Ci0JCQlzcGluX3VubG9jaygmY29uZmlnZnNfZGlyZW50X2xvY2spOwotCQkJY29uZmlnX2l0ZW1fcHV0KGl0ZW0pOwotCQkJa2ZyZWUoc2wpOwotCQl9Ci0JfQorCQlyZXR1cm4gLUVOT0VOVDsKIAotb3V0OgorCWJvZHkgPSBremFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFib2R5KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWNvbmZpZ2ZzX2dldCh0YXJnZXRfc2QpOworCXNwaW5fbG9jaygmY29uZmlnZnNfZGlyZW50X2xvY2spOworCWlmICh0YXJnZXRfc2QtPnNfdHlwZSAmIENPTkZJR0ZTX1VTRVRfRFJPUFBJTkcpIHsKKwkJc3Bpbl91bmxvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsKKwkJY29uZmlnZnNfcHV0KHRhcmdldF9zZCk7CisJCWtmcmVlKGJvZHkpOworCQlyZXR1cm4gLUVOT0VOVDsKKwl9CisJdGFyZ2V0X3NkLT5zX2xpbmtzKys7CisJc3Bpbl91bmxvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsKKwlyZXQgPSBjb25maWdmc19nZXRfdGFyZ2V0X3BhdGgoaXRlbSwgaXRlbSwgYm9keSk7CisJaWYgKCFyZXQpCisJCXJldCA9IGNvbmZpZ2ZzX2NyZWF0ZV9saW5rKHRhcmdldF9zZCwgcGFyZW50X2l0ZW0tPmNpX2RlbnRyeSwKKwkJCQkJICAgZGVudHJ5LCBib2R5KTsKKwlpZiAocmV0KSB7CisJCXNwaW5fbG9jaygmY29uZmlnZnNfZGlyZW50X2xvY2spOworCQl0YXJnZXRfc2QtPnNfbGlua3MtLTsKKwkJc3Bpbl91bmxvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsKKwkJY29uZmlnZnNfcHV0KHRhcmdldF9zZCk7CisJCWtmcmVlKGJvZHkpOworCX0KIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMzEsOSArMTUzLDggQEAgaW50IGNvbmZpZ2ZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqc3ltbmEKIAkgKiBGYWtlIGludmlzaWJpbGl0eSBpZiBkaXIgYmVsb25ncyB0byBhIGdyb3VwL2RlZmF1bHQgZ3JvdXBzIGhpZXJhcmNoeQogCSAqIGJlaW5nIGF0dGFjaGVkCiAJICovCi0JcmV0ID0gLUVOT0VOVDsKIAlpZiAoIWNvbmZpZ2ZzX2RpcmVudF9pc19yZWFkeShzZCkpCi0JCWdvdG8gb3V0OworCQlyZXR1cm4gLUVOT0VOVDsKIAogCXBhcmVudF9pdGVtID0gY29uZmlnZnNfZ2V0X2NvbmZpZ19pdGVtKGRlbnRyeS0+ZF9wYXJlbnQpOwogCXR5cGUgPSBwYXJlbnRfaXRlbS0+Y2lfdHlwZTsKQEAgLTE0MywxMSArMTY0LDQyIEBAIGludCBjb25maWdmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKnN5bW5hCiAJICAgICF0eXBlLT5jdF9pdGVtX29wcy0+YWxsb3dfbGluaykKIAkJZ290byBvdXRfcHV0OwogCisJLyoKKwkgKiBUaGlzIGlzIHJlYWxseSBzaWNrLiAgV2hhdCB0aGV5IHdhbnRlZCB3YXMgYSBoeWJyaWQgb2YKKwkgKiBsaW5rKDIpIGFuZCBzeW1saW5rKDIpIC0gdGhleSB3YW50ZWQgdGhlIHRhcmdldCByZXNvbHZlZAorCSAqIGF0IHN5c2NhbGwgdGltZSAoYXMgbGluaygyKSB3b3VsZCd2ZSBkb25lKSwgYmUgYSBkaXJlY3RvcnkKKwkgKiAod2hpY2ggbGluaygyKSB3b3VsZCd2ZSByZWZ1c2VkIHRvIGRvKSAqQU5EKiBiZSBhIGRlZXAKKwkgKiBmdWNraW5nIG1hZ2ljLCBtYWtpbmcgdGhlIHRhcmdldCBidXN5IGZyb20gcm1kaXIgUE9WLgorCSAqIHN5bWxpbmsoMikgaXMgbm90aGluZyBvZiB0aGF0IHNvcnQsIGFuZCB0aGUgbG9ja2luZyBpdAorCSAqIGdldHMgbWF0Y2hlcyB0aGUgbm9ybWFsIHN5bWxpbmsoMikgc2VtYW50aWNzLiAgV2l0aG91dAorCSAqIGF0dGVtcHRzIHRvIHJlc29sdmUgdGhlIHRhcmdldCAod2hpY2ggbWlnaHQgdmVyeSB3ZWxsCisJICogbm90IGV2ZW4gZXhpc3QgeWV0KSBkb25lIHByaW9yIHRvIGxvY2tpbmcgdGhlIHBhcmVudAorCSAqIGRpcmVjdG9yeS4gIFRoaXMgcGVydmVyc2lvbiwgT1RPSCwgbmVlZHMgdG8gcmVzb2x2ZQorCSAqIHRoZSB0YXJnZXQsIHdoaWNoIHdvdWxkIGxlYWQgdG8gb2J2aW91cyBkZWFkbG9ja3MgaWYKKwkgKiBhdHRlbXB0ZWQgd2l0aCBhbnkgZGlyZWN0b3JpZXMgbG9ja2VkLgorCSAqCisJICogVW5mb3J0dW5hdGVseSwgdGhhdCBnYXJiYWdlIGlzIHVzZXJsYW5kIEFCSSBhbmQgd2Ugc2hvdWxkJ3ZlCisJICogc2FpZCAibm8iIGJhY2sgaW4gMjAwNS4gIFRvbyBsYXRlIG5vdywgc28gd2UgZ2V0IHRvCisJICogcGxheSB2ZXJ5IHVnbHkgZ2FtZXMgd2l0aCBsb2NraW5nLgorCSAqCisJICogVHJ5ICpBTllUSElORyogb2YgdGhhdCBzb3J0IGluIG5ldyBjb2RlLCBhbmQgeW91IHdpbGwKKwkgKiByZWFsbHkgcmVncmV0IGl0LiAgSnVzdCBhc2sgeW91cnNlbGYgLSB3aGF0IGNvdWxkIGEgQk9GSAorCSAqIGRvIHRvIG1lIGFuZCBkbyBJIHdhbnQgdG8gZmluZCBpdCBvdXQgZmlyc3QtaGFuZD8KKwkgKgorCSAqICBBViwgYSB0aG9yb3VnaGx5IGFubm95ZWQgYmFzdGFyZC4KKwkgKi8KKwlpbm9kZV91bmxvY2soZGlyKTsKIAlyZXQgPSBnZXRfdGFyZ2V0KHN5bW5hbWUsICZwYXRoLCAmdGFyZ2V0X2l0ZW0sIGRlbnRyeS0+ZF9zYik7CisJaW5vZGVfbG9jayhkaXIpOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0X3B1dDsKIAotCXJldCA9IHR5cGUtPmN0X2l0ZW1fb3BzLT5hbGxvd19saW5rKHBhcmVudF9pdGVtLCB0YXJnZXRfaXRlbSk7CisJaWYgKGRlbnRyeS0+ZF9pbm9kZSB8fCBkX3VuaGFzaGVkKGRlbnRyeSkpCisJCXJldCA9IC1FRVhJU1Q7CisJZWxzZQorCQlyZXQgPSBpbm9kZV9wZXJtaXNzaW9uKGRpciwgTUFZX1dSSVRFIHwgTUFZX0VYRUMpOworCWlmICghcmV0KQorCQlyZXQgPSB0eXBlLT5jdF9pdGVtX29wcy0+YWxsb3dfbGluayhwYXJlbnRfaXRlbSwgdGFyZ2V0X2l0ZW0pOwogCWlmICghcmV0KSB7CiAJCW11dGV4X2xvY2soJmNvbmZpZ2ZzX3N5bWxpbmtfbXV0ZXgpOwogCQlyZXQgPSBjcmVhdGVfbGluayhwYXJlbnRfaXRlbSwgdGFyZ2V0X2l0ZW0sIGRlbnRyeSk7CkBAIC0xNjIsMTUgKzIxNCwxMiBAQCBpbnQgY29uZmlnZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpzeW1uYQogCiBvdXRfcHV0OgogCWNvbmZpZ19pdGVtX3B1dChwYXJlbnRfaXRlbSk7Ci0KLW91dDoKIAlyZXR1cm4gcmV0OwogfQogCiBpbnQgY29uZmlnZnNfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7Ci0Jc3RydWN0IGNvbmZpZ2ZzX2RpcmVudCAqc2QgPSBkZW50cnktPmRfZnNkYXRhOwotCXN0cnVjdCBjb25maWdmc19zeW1saW5rICpzbDsKKwlzdHJ1Y3QgY29uZmlnZnNfZGlyZW50ICpzZCA9IGRlbnRyeS0+ZF9mc2RhdGEsICp0YXJnZXRfc2Q7CiAJc3RydWN0IGNvbmZpZ19pdGVtICpwYXJlbnRfaXRlbTsKIAljb25zdCBzdHJ1Y3QgY29uZmlnX2l0ZW1fdHlwZSAqdHlwZTsKIAlpbnQgcmV0OwpAQCAtMTc5LDcgKzIyOCw3IEBAIGludCBjb25maWdmc191bmxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAlpZiAoIShzZC0+c190eXBlICYgQ09ORklHRlNfSVRFTV9MSU5LKSkKIAkJZ290byBvdXQ7CiAKLQlzbCA9IHNkLT5zX2VsZW1lbnQ7CisJdGFyZ2V0X3NkID0gc2QtPnNfZWxlbWVudDsKIAogCXBhcmVudF9pdGVtID0gY29uZmlnZnNfZ2V0X2NvbmZpZ19pdGVtKGRlbnRyeS0+ZF9wYXJlbnQpOwogCXR5cGUgPSBwYXJlbnRfaXRlbS0+Y2lfdHlwZTsKQEAgLTE5MywyMSArMjQyLDE4IEBAIGludCBjb25maWdmc191bmxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAogCS8qCiAJICogZHJvcF9saW5rKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlCi0JICogbGlzdF9kZWxfaW5pdCgmc2wtPnNsX2xpc3QpLCBzbyB0aGF0IHRoZSBvcmRlciBvZgorCSAqIGRlY3JlbWVudGluZyB0YXJnZXQncyAtPnNfbGlua3MsIHNvIHRoYXQgdGhlIG9yZGVyIG9mCiAJICogZHJvcF9saW5rKHRoaXMsIHRhcmdldCkgYW5kIGRyb3BfaXRlbSh0YXJnZXQpIGlzIHByZXNlcnZlZC4KIAkgKi8KIAlpZiAodHlwZSAmJiB0eXBlLT5jdF9pdGVtX29wcyAmJgogCSAgICB0eXBlLT5jdF9pdGVtX29wcy0+ZHJvcF9saW5rKQogCQl0eXBlLT5jdF9pdGVtX29wcy0+ZHJvcF9saW5rKHBhcmVudF9pdGVtLAotCQkJCQkgICAgICAgc2wtPnNsX3RhcmdldCk7CisJCQkJCSAgICAgICB0YXJnZXRfc2QtPnNfZWxlbWVudCk7CiAKIAlzcGluX2xvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsKLQlsaXN0X2RlbF9pbml0KCZzbC0+c2xfbGlzdCk7CisJdGFyZ2V0X3NkLT5zX2xpbmtzLS07CiAJc3Bpbl91bmxvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsKLQotCS8qIFB1dCByZWZlcmVuY2UgZnJvbSBjcmVhdGVfbGluaygpICovCi0JY29uZmlnX2l0ZW1fcHV0KHNsLT5zbF90YXJnZXQpOwotCWtmcmVlKHNsKTsKKwljb25maWdmc19wdXQodGFyZ2V0X3NkKTsKIAogCWNvbmZpZ19pdGVtX3B1dChwYXJlbnRfaXRlbSk7CiAKQEAgLTIxNyw3OSArMjYzLDggQEAgaW50IGNvbmZpZ2ZzX3VubGluayhzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgY29uZmlnZnNfZ2V0X3RhcmdldF9wYXRoKHN0cnVjdCBjb25maWdfaXRlbSAqIGl0ZW0sIHN0cnVjdCBjb25maWdfaXRlbSAqIHRhcmdldCwKLQkJCQkgICBjaGFyICpwYXRoKQotewotCWNoYXIgKiBzOwotCWludCBkZXB0aCwgc2l6ZTsKLQotCWRlcHRoID0gaXRlbV9kZXB0aChpdGVtKTsKLQlzaXplID0gaXRlbV9wYXRoX2xlbmd0aCh0YXJnZXQpICsgZGVwdGggKiAzIC0gMTsKLQlpZiAoc2l6ZSA+IFBBVEhfTUFYKQotCQlyZXR1cm4gLUVOQU1FVE9PTE9ORzsKLQotCXByX2RlYnVnKCIlczogZGVwdGggPSAlZCwgc2l6ZSA9ICVkXG4iLCBfX2Z1bmNfXywgZGVwdGgsIHNpemUpOwotCi0JZm9yIChzID0gcGF0aDsgZGVwdGgtLTsgcyArPSAzKQotCQlzdHJjcHkocywiLi4vIik7Ci0KLQlmaWxsX2l0ZW1fcGF0aCh0YXJnZXQsIHBhdGgsIHNpemUpOwotCXByX2RlYnVnKCIlczogcGF0aCA9ICclcydcbiIsIF9fZnVuY19fLCBwYXRoKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGNvbmZpZ2ZzX2dldGxpbmsoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjaGFyICogcGF0aCkKLXsKLQlzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sICp0YXJnZXRfaXRlbTsKLQlpbnQgZXJyb3IgPSAwOwotCi0JaXRlbSA9IGNvbmZpZ2ZzX2dldF9jb25maWdfaXRlbShkZW50cnktPmRfcGFyZW50KTsKLQlpZiAoIWl0ZW0pCi0JCXJldHVybiAtRUlOVkFMOwotCi0JdGFyZ2V0X2l0ZW0gPSBjb25maWdmc19nZXRfY29uZmlnX2l0ZW0oZGVudHJ5KTsKLQlpZiAoIXRhcmdldF9pdGVtKSB7Ci0JCWNvbmZpZ19pdGVtX3B1dChpdGVtKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZG93bl9yZWFkKCZjb25maWdmc19yZW5hbWVfc2VtKTsKLQllcnJvciA9IGNvbmZpZ2ZzX2dldF90YXJnZXRfcGF0aChpdGVtLCB0YXJnZXRfaXRlbSwgcGF0aCk7Ci0JdXBfcmVhZCgmY29uZmlnZnNfcmVuYW1lX3NlbSk7Ci0KLQljb25maWdfaXRlbV9wdXQoaXRlbSk7Ci0JY29uZmlnX2l0ZW1fcHV0KHRhcmdldF9pdGVtKTsKLQlyZXR1cm4gZXJyb3I7Ci0KLX0KLQotc3RhdGljIGNvbnN0IGNoYXIgKmNvbmZpZ2ZzX2dldF9saW5rKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKLQkJCQkgICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUsCi0JCQkJICAgICBzdHJ1Y3QgZGVsYXllZF9jYWxsICpkb25lKQotewotCWNoYXIgKmJvZHk7Ci0JaW50IGVycm9yOwotCi0JaWYgKCFkZW50cnkpCi0JCXJldHVybiBFUlJfUFRSKC1FQ0hJTEQpOwotCi0JYm9keSA9IGt6YWxsb2MoUEFHRV9TSVpFLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJvZHkpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCi0JZXJyb3IgPSBjb25maWdmc19nZXRsaW5rKGRlbnRyeSwgYm9keSk7Ci0JaWYgKCFlcnJvcikgewotCQlzZXRfZGVsYXllZF9jYWxsKGRvbmUsIGtmcmVlX2xpbmssIGJvZHkpOwotCQlyZXR1cm4gYm9keTsKLQl9Ci0KLQlrZnJlZShib2R5KTsKLQlyZXR1cm4gRVJSX1BUUihlcnJvcik7Ci19Ci0KIGNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIGNvbmZpZ2ZzX3N5bWxpbmtfaW5vZGVfb3BlcmF0aW9ucyA9IHsKLQkuZ2V0X2xpbmsgPSBjb25maWdmc19nZXRfbGluaywKKwkuZ2V0X2xpbmsgPSBzaW1wbGVfZ2V0X2xpbmssCiAJLnNldGF0dHIgPSBjb25maWdmc19zZXRhdHRyLAogfTsKIApkaWZmIC0tZ2l0IGEvZnMvY3JhbWZzL2lub2RlLmMgYi9mcy9jcmFtZnMvaW5vZGUuYwppbmRleCA5MzUyNDg3Li5kMTJlYTI4OCAxMDA2NDQKLS0tIGEvZnMvY3JhbWZzL2lub2RlLmMKKysrIGIvZnMvY3JhbWZzL2lub2RlLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL3N1cGVyLmg+CisjaW5jbHVkZSA8bGludXgvZnNfY29udGV4dC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC92ZnMuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgpAQCAtNTA2LDE4ICs1MDcsMTkgQEAgc3RhdGljIHZvaWQgY3JhbWZzX2tpbGxfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlrZnJlZShzYmkpOwogfQogCi1zdGF0aWMgaW50IGNyYW1mc19yZW1vdW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRhdGEpCitzdGF0aWMgaW50IGNyYW1mc19yZWNvbmZpZ3VyZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0Jc3luY19maWxlc3lzdGVtKHNiKTsKLQkqZmxhZ3MgfD0gU0JfUkRPTkxZOworCXN5bmNfZmlsZXN5c3RlbShmYy0+cm9vdC0+ZF9zYik7CisJZmMtPnNiX2ZsYWdzIHw9IFNCX1JET05MWTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBjcmFtZnNfcmVhZF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJICAgICBzdHJ1Y3QgY3JhbWZzX3N1cGVyICpzdXBlciwgaW50IHNpbGVudCkKK3N0YXRpYyBpbnQgY3JhbWZzX3JlYWRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjLAorCQkJICAgICBzdHJ1Y3QgY3JhbWZzX3N1cGVyICpzdXBlcikKIHsKIAlzdHJ1Y3QgY3JhbWZzX3NiX2luZm8gKnNiaSA9IENSQU1GU19TQihzYik7CiAJdW5zaWduZWQgbG9uZyByb290X29mZnNldDsKKwlib29sIHNpbGVudCA9IGZjLT5zYl9mbGFncyAmIFNCX1NJTEVOVDsKIAogCS8qIFdlIGRvbid0IGtub3cgdGhlIHJlYWwgc2l6ZSB5ZXQgKi8KIAlzYmktPnNpemUgPSBQQUdFX1NJWkU7CkBAIC01MzIsNyArNTM0LDcgQEAgc3RhdGljIGludCBjcmFtZnNfcmVhZF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkvKiBjaGVjayBmb3Igd3JvbmcgZW5kaWFubmVzcyAqLwogCQlpZiAoc3VwZXItPm1hZ2ljID09IENSQU1GU19NQUdJQ19XRU5EKSB7CiAJCQlpZiAoIXNpbGVudCkKLQkJCQlwcl9lcnIoIndyb25nIGVuZGlhbm5lc3NcbiIpOworCQkJCWVycm9yZihmYywgImNyYW1mczogd3JvbmcgZW5kaWFubmVzcyIpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIApAQCAtNTQ0LDIyICs1NDYsMjIgQEAgc3RhdGljIGludCBjcmFtZnNfcmVhZF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQltdXRleF91bmxvY2soJnJlYWRfbXV0ZXgpOwogCQlpZiAoc3VwZXItPm1hZ2ljICE9IENSQU1GU19NQUdJQykgewogCQkJaWYgKHN1cGVyLT5tYWdpYyA9PSBDUkFNRlNfTUFHSUNfV0VORCAmJiAhc2lsZW50KQotCQkJCXByX2Vycigid3JvbmcgZW5kaWFubmVzc1xuIik7CisJCQkJZXJyb3JmKGZjLCAiY3JhbWZzOiB3cm9uZyBlbmRpYW5uZXNzIik7CiAJCQllbHNlIGlmICghc2lsZW50KQotCQkJCXByX2Vycigid3JvbmcgbWFnaWNcbiIpOworCQkJCWVycm9yZihmYywgImNyYW1mczogd3JvbmcgbWFnaWMiKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAJfQogCiAJLyogZ2V0IGZlYXR1cmUgZmxhZ3MgZmlyc3QgKi8KIAlpZiAoc3VwZXItPmZsYWdzICYgfkNSQU1GU19TVVBQT1JURURfRkxBR1MpIHsKLQkJcHJfZXJyKCJ1bnN1cHBvcnRlZCBmaWxlc3lzdGVtIGZlYXR1cmVzXG4iKTsKKwkJZXJyb3JmKGZjLCAiY3JhbWZzOiB1bnN1cHBvcnRlZCBmaWxlc3lzdGVtIGZlYXR1cmVzIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAogCS8qIENoZWNrIHRoYXQgdGhlIHJvb3QgaW5vZGUgaXMgaW4gYSBzYW5lIHN0YXRlICovCiAJaWYgKCFTX0lTRElSKHN1cGVyLT5yb290Lm1vZGUpKSB7Ci0JCXByX2Vycigicm9vdCBpcyBub3QgYSBkaXJlY3RvcnlcbiIpOworCQllcnJvcmYoZmMsICJjcmFtZnM6IHJvb3QgaXMgbm90IGEgZGlyZWN0b3J5Iik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAkvKiBjb3JyZWN0IHN0cmFuZ2UsIGhhcmQtY29kZWQgcGVybWlzc2lvbnMgb2YgbWtjcmFtZnMgKi8KQEAgLTU3OCwxMiArNTgwLDEyIEBAIHN0YXRpYyBpbnQgY3JhbWZzX3JlYWRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAlzYmktPm1hZ2ljID0gc3VwZXItPm1hZ2ljOwogCXNiaS0+ZmxhZ3MgPSBzdXBlci0+ZmxhZ3M7CiAJaWYgKHJvb3Rfb2Zmc2V0ID09IDApCi0JCXByX2luZm8oImVtcHR5IGZpbGVzeXN0ZW0iKTsKKwkJaW5mb2YoZmMsICJjcmFtZnM6IGVtcHR5IGZpbGVzeXN0ZW0iKTsKIAllbHNlIGlmICghKHN1cGVyLT5mbGFncyAmIENSQU1GU19GTEFHX1NISUZURURfUk9PVF9PRkZTRVQpICYmCiAJCSAoKHJvb3Rfb2Zmc2V0ICE9IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKSkgJiYKIAkJICAocm9vdF9vZmZzZXQgIT0gNTEyICsgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpKSkpCiAJewotCQlwcl9lcnIoImJhZCByb290IG9mZnNldCAlbHVcbiIsIHJvb3Rfb2Zmc2V0KTsKKwkJZXJyb3JmKGZjLCAiY3JhbWZzOiBiYWQgcm9vdCBvZmZzZXQgJWx1Iiwgcm9vdF9vZmZzZXQpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTU5Nyw2ICs1OTksOCBAQCBzdGF0aWMgaW50IGNyYW1mc19maW5hbGl6ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCiAJLyogU2V0IGl0IGFsbCB1cC4uICovCiAJc2ItPnNfZmxhZ3MgfD0gU0JfUkRPTkxZOworCXNiLT5zX3RpbWVfbWluID0gMDsKKwlzYi0+c190aW1lX21heCA9IDA7CiAJc2ItPnNfb3AgPSAmY3JhbWZzX29wczsKIAlyb290ID0gZ2V0X2NyYW1mc19pbm9kZShzYiwgY3JhbWZzX3Jvb3QsIDApOwogCWlmIChJU19FUlIocm9vdCkpCkBAIC02MDcsOCArNjExLDcgQEAgc3RhdGljIGludCBjcmFtZnNfZmluYWxpemVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBjcmFtZnNfYmxrZGV2X2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwKLQkJCQkgICAgaW50IHNpbGVudCkKK3N0YXRpYyBpbnQgY3JhbWZzX2Jsa2Rldl9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKIAlzdHJ1Y3QgY3JhbWZzX3NiX2luZm8gKnNiaTsKIAlzdHJ1Y3QgY3JhbWZzX3N1cGVyIHN1cGVyOwpAQCAtNjIzLDE0ICs2MjYsMTMgQEAgc3RhdGljIGludCBjcmFtZnNfYmxrZGV2X2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwKIAlmb3IgKGkgPSAwOyBpIDwgUkVBRF9CVUZGRVJTOyBpKyspCiAJCWJ1ZmZlcl9ibG9ja25yW2ldID0gLTE7CiAKLQllcnIgPSBjcmFtZnNfcmVhZF9zdXBlcihzYiwgJnN1cGVyLCBzaWxlbnQpOworCWVyciA9IGNyYW1mc19yZWFkX3N1cGVyKHNiLCBmYywgJnN1cGVyKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCXJldHVybiBjcmFtZnNfZmluYWxpemVfc3VwZXIoc2IsICZzdXBlci5yb290KTsKIH0KIAotc3RhdGljIGludCBjcmFtZnNfbXRkX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwKLQkJCQkgaW50IHNpbGVudCkKK3N0YXRpYyBpbnQgY3JhbWZzX210ZF9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKIAlzdHJ1Y3QgY3JhbWZzX3NiX2luZm8gKnNiaTsKIAlzdHJ1Y3QgY3JhbWZzX3N1cGVyIHN1cGVyOwpAQCAtNjUyLDcgKzY1NCw3IEBAIHN0YXRpYyBpbnQgY3JhbWZzX210ZF9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsCiAKIAlwcl9pbmZvKCJjaGVja2luZyBwaHlzaWNhbCBhZGRyZXNzICVwYXAgZm9yIGxpbmVhciBjcmFtZnMgaW1hZ2VcbiIsCiAJCSZzYmktPmxpbmVhcl9waHlzX2FkZHIpOwotCWVyciA9IGNyYW1mc19yZWFkX3N1cGVyKHNiLCAmc3VwZXIsIHNpbGVudCk7CisJZXJyID0gY3JhbWZzX3JlYWRfc3VwZXIoc2IsIGZjLCAmc3VwZXIpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKQEAgLTk0NywzMiArOTQ5LDQxIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBjcmFtZnNfZGlyX2lub2RlX29wZXJhdGlvbnMgPSB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgY3JhbWZzX29wcyA9IHsKLQkucmVtb3VudF9mcwk9IGNyYW1mc19yZW1vdW50LAogCS5zdGF0ZnMJCT0gY3JhbWZzX3N0YXRmcywKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpjcmFtZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsIGludCBmbGFncywKLQkJCQkgICBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAqZGF0YSkKK3N0YXRpYyBpbnQgY3JhbWZzX2dldF90cmVlKHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKLQlzdHJ1Y3QgZGVudHJ5ICpyZXQgPSBFUlJfUFRSKC1FTk9QUk9UT09QVCk7CisJaW50IHJldCA9IC1FTk9QUk9UT09QVDsKIAogCWlmIChJU19FTkFCTEVEKENPTkZJR19DUkFNRlNfTVREKSkgewotCQlyZXQgPSBtb3VudF9tdGQoZnNfdHlwZSwgZmxhZ3MsIGRldl9uYW1lLCBkYXRhLAotCQkJCWNyYW1mc19tdGRfZmlsbF9zdXBlcik7Ci0JCWlmICghSVNfRVJSKHJldCkpCisJCXJldCA9IGdldF90cmVlX210ZChmYywgY3JhbWZzX210ZF9maWxsX3N1cGVyKTsKKwkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0OwogCX0KLQlpZiAoSVNfRU5BQkxFRChDT05GSUdfQ1JBTUZTX0JMT0NLREVWKSkgewotCQlyZXQgPSBtb3VudF9iZGV2KGZzX3R5cGUsIGZsYWdzLCBkZXZfbmFtZSwgZGF0YSwKLQkJCQkgY3JhbWZzX2Jsa2Rldl9maWxsX3N1cGVyKTsKLQl9CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX0NSQU1GU19CTE9DS0RFVikpCisJCXJldCA9IGdldF90cmVlX2JkZXYoZmMsIGNyYW1mc19ibGtkZXZfZmlsbF9zdXBlcik7CiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBmc19jb250ZXh0X29wZXJhdGlvbnMgY3JhbWZzX2NvbnRleHRfb3BzID0geworCS5nZXRfdHJlZQk9IGNyYW1mc19nZXRfdHJlZSwKKwkucmVjb25maWd1cmUJPSBjcmFtZnNfcmVjb25maWd1cmUsCit9OworCisvKgorICogU2V0IHVwIHRoZSBmaWxlc3lzdGVtIG1vdW50IGNvbnRleHQuCisgKi8KK3N0YXRpYyBpbnQgY3JhbWZzX2luaXRfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCit7CisJZmMtPm9wcyA9ICZjcmFtZnNfY29udGV4dF9vcHM7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBjcmFtZnNfZnNfdHlwZSA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLm5hbWUJCT0gImNyYW1mcyIsCi0JLm1vdW50CQk9IGNyYW1mc19tb3VudCwKKwkuaW5pdF9mc19jb250ZXh0ID0gY3JhbWZzX2luaXRfZnNfY29udGV4dCwKIAkua2lsbF9zYgk9IGNyYW1mc19raWxsX3NiLAogCS5mc19mbGFncwk9IEZTX1JFUVVJUkVTX0RFViwKIH07CmRpZmYgLS1naXQgYS9mcy9kZWJ1Z2ZzL2ZpbGUuYyBiL2ZzL2RlYnVnZnMvZmlsZS5jCmluZGV4IDkzZTRjYTYuLjg3ODQ2YWEgMTAwNjQ0Ci0tLSBhL2ZzL2RlYnVnZnMvZmlsZS5jCisrKyBiL2ZzL2RlYnVnZnMvZmlsZS5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSA8bGludXgvYXRvbWljLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogCkBAIC0xMzYsNiArMTM3LDI1IEBAIHZvaWQgZGVidWdmc19maWxlX3B1dChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChkZWJ1Z2ZzX2ZpbGVfcHV0KTsKIAorLyoKKyAqIE9ubHkgcGVybWl0IGFjY2VzcyB0byB3b3JsZC1yZWFkYWJsZSBmaWxlcyB3aGVuIHRoZSBrZXJuZWwgaXMgbG9ja2VkIGRvd24uCisgKiBXZSBhbHNvIG5lZWQgdG8gZXhjbHVkZSBhbnkgZmlsZSB0aGF0IGhhcyB3YXlzIHRvIHdyaXRlIG9yIGFsdGVyIGl0IGFzIHJvb3QKKyAqIGNhbiBieXBhc3MgdGhlIHBlcm1pc3Npb25zIGNoZWNrLgorICovCitzdGF0aWMgYm9vbCBkZWJ1Z2ZzX2lzX2xvY2tlZF9kb3duKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJICAgc3RydWN0IGZpbGUgKmZpbHAsCisJCQkJICAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqcmVhbF9mb3BzKQoreworCWlmICgoaW5vZGUtPmlfbW9kZSAmIDA3Nzc3KSA9PSAwNDQ0ICYmCisJICAgICEoZmlscC0+Zl9tb2RlICYgRk1PREVfV1JJVEUpICYmCisJICAgICFyZWFsX2ZvcHMtPnVubG9ja2VkX2lvY3RsICYmCisJICAgICFyZWFsX2ZvcHMtPmNvbXBhdF9pb2N0bCAmJgorCSAgICAhcmVhbF9mb3BzLT5tbWFwKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fREVCVUdGUyk7Cit9CisKIHN0YXRpYyBpbnQgb3Blbl9wcm94eV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewogCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IEZfREVOVFJZKGZpbHApOwpAQCAtMTQ3LDYgKzE2NywxMSBAQCBzdGF0aWMgaW50IG9wZW5fcHJveHlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIAkJcmV0dXJuIHIgPT0gLUVJTyA/IC1FTk9FTlQgOiByOwogCiAJcmVhbF9mb3BzID0gZGVidWdmc19yZWFsX2ZvcHMoZmlscCk7CisKKwlyID0gZGVidWdmc19pc19sb2NrZWRfZG93bihpbm9kZSwgZmlscCwgcmVhbF9mb3BzKTsKKwlpZiAocikKKwkJZ290byBvdXQ7CisKIAlyZWFsX2ZvcHMgPSBmb3BzX2dldChyZWFsX2ZvcHMpOwogCWlmICghcmVhbF9mb3BzKSB7CiAJCS8qIEh1aD8gTW9kdWxlIGRpZCBub3QgY2xlYW4gdXAgYWZ0ZXIgaXRzZWxmIGF0IGV4aXQ/ICovCkBAIC0yNzIsNiArMjk3LDExIEBAIHN0YXRpYyBpbnQgZnVsbF9wcm94eV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCQlyZXR1cm4gciA9PSAtRUlPID8gLUVOT0VOVCA6IHI7CiAKIAlyZWFsX2ZvcHMgPSBkZWJ1Z2ZzX3JlYWxfZm9wcyhmaWxwKTsKKworCXIgPSBkZWJ1Z2ZzX2lzX2xvY2tlZF9kb3duKGlub2RlLCBmaWxwLCByZWFsX2ZvcHMpOworCWlmIChyKQorCQlnb3RvIG91dDsKKwogCXJlYWxfZm9wcyA9IGZvcHNfZ2V0KHJlYWxfZm9wcyk7CiAJaWYgKCFyZWFsX2ZvcHMpIHsKIAkJLyogSHVoPyBNb2R1bGUgZGlkIG5vdCBjbGVhbnVwIGFmdGVyIGl0c2VsZiBhdCBleGl0PyAqLwpkaWZmIC0tZ2l0IGEvZnMvZGVidWdmcy9pbm9kZS5jIGIvZnMvZGVidWdmcy9pbm9kZS5jCmluZGV4IDA0MmI2ODguLjdiOTc1ZGIgMTAwNjQ0Ci0tLSBhL2ZzL2RlYnVnZnMvaW5vZGUuYworKysgYi9mcy9kZWJ1Z2ZzL2lub2RlLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wYXJzZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tYWdpYy5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgogCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKIApAQCAtMzUsNiArMzYsMzIgQEAgc3RhdGljIHN0cnVjdCB2ZnNtb3VudCAqZGVidWdmc19tb3VudDsKIHN0YXRpYyBpbnQgZGVidWdmc19tb3VudF9jb3VudDsKIHN0YXRpYyBib29sIGRlYnVnZnNfcmVnaXN0ZXJlZDsKIAorLyoKKyAqIERvbid0IGFsbG93IGFjY2VzcyBhdHRyaWJ1dGVzIHRvIGJlIGNoYW5nZWQgd2hpbHN0IHRoZSBrZXJuZWwgaXMgbG9ja2VkIGRvd24KKyAqIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgZmlsZSBtb2RlIGFzIHBhcnQgb2YgYSBoZXVyaXN0aWMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIKKyAqIHRvIGxvY2sgZG93biBpbmRpdmlkdWFsIGZpbGVzLgorICovCitzdGF0aWMgaW50IGRlYnVnZnNfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAqaWEpCit7CisJaW50IHJldCA9IHNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX0RFQlVHRlMpOworCisJaWYgKHJldCAmJiAoaWEtPmlhX3ZhbGlkICYgKEFUVFJfTU9ERSB8IEFUVFJfVUlEIHwgQVRUUl9HSUQpKSkKKwkJcmV0dXJuIHJldDsKKwlyZXR1cm4gc2ltcGxlX3NldGF0dHIoZGVudHJ5LCBpYSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBkZWJ1Z2ZzX2ZpbGVfaW5vZGVfb3BlcmF0aW9ucyA9IHsKKwkuc2V0YXR0cgk9IGRlYnVnZnNfc2V0YXR0ciwKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgZGVidWdmc19kaXJfaW5vZGVfb3BlcmF0aW9ucyA9IHsKKwkubG9va3VwCQk9IHNpbXBsZV9sb29rdXAsCisJLnNldGF0dHIJPSBkZWJ1Z2ZzX3NldGF0dHIsCit9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIGRlYnVnZnNfc3ltbGlua19pbm9kZV9vcGVyYXRpb25zID0geworCS5nZXRfbGluawk9IHNpbXBsZV9nZXRfbGluaywKKwkuc2V0YXR0cgk9IGRlYnVnZnNfc2V0YXR0ciwKK307CisKIHN0YXRpYyBzdHJ1Y3QgaW5vZGUgKmRlYnVnZnNfZ2V0X2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IG5ld19pbm9kZShzYik7CkBAIC0zNjksNiArMzk2LDcgQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKl9fZGVidWdmc19jcmVhdGVfZmlsZShjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCiAJaW5vZGUtPmlfbW9kZSA9IG1vZGU7CiAJaW5vZGUtPmlfcHJpdmF0ZSA9IGRhdGE7CiAKKwlpbm9kZS0+aV9vcCA9ICZkZWJ1Z2ZzX2ZpbGVfaW5vZGVfb3BlcmF0aW9uczsKIAlpbm9kZS0+aV9mb3AgPSBwcm94eV9mb3BzOwogCWRlbnRyeS0+ZF9mc2RhdGEgPSAodm9pZCAqKSgodW5zaWduZWQgbG9uZylyZWFsX2ZvcHMgfAogCQkJCURFQlVHRlNfRlNEQVRBX0lTX1JFQUxfRk9QU19CSVQpOwpAQCAtNTMyLDcgKzU2MCw3IEBAIHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX2Rpcihjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQpCiAJfQogCiAJaW5vZGUtPmlfbW9kZSA9IFNfSUZESVIgfCBTX0lSV1hVIHwgU19JUlVHTyB8IFNfSVhVR087Ci0JaW5vZGUtPmlfb3AgPSAmc2ltcGxlX2Rpcl9pbm9kZV9vcGVyYXRpb25zOworCWlub2RlLT5pX29wID0gJmRlYnVnZnNfZGlyX2lub2RlX29wZXJhdGlvbnM7CiAJaW5vZGUtPmlfZm9wID0gJnNpbXBsZV9kaXJfb3BlcmF0aW9uczsKIAogCS8qIGRpcmVjdG9yeSBpbm9kZXMgc3RhcnQgb2ZmIHdpdGggaV9ubGluayA9PSAyIChmb3IgIi4iIGVudHJ5KSAqLwpAQCAtNjMyLDcgKzY2MCw3IEBAIHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX3N5bWxpbmsoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50LAogCQlyZXR1cm4gZmFpbGVkX2NyZWF0aW5nKGRlbnRyeSk7CiAJfQogCWlub2RlLT5pX21vZGUgPSBTX0lGTE5LIHwgU19JUldYVUdPOwotCWlub2RlLT5pX29wID0gJnNpbXBsZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnM7CisJaW5vZGUtPmlfb3AgPSAmZGVidWdmc19zeW1saW5rX2lub2RlX29wZXJhdGlvbnM7CiAJaW5vZGUtPmlfbGluayA9IGxpbms7CiAJZF9pbnN0YW50aWF0ZShkZW50cnksIGlub2RlKTsKIAlyZXR1cm4gZW5kX2NyZWF0aW5nKGRlbnRyeSk7CmRpZmYgLS1naXQgYS9mcy9lZnMvc3VwZXIuYyBiL2ZzL2Vmcy9zdXBlci5jCmluZGV4IDg2N2ZjMjRkLi40YTZlYmZmIDEwMDY0NAotLS0gYS9mcy9lZnMvc3VwZXIuYworKysgYi9mcy9lZnMvc3VwZXIuYwpAQCAtMjU3LDYgKzI1Nyw4IEBAIHN0YXRpYyBpbnQgZWZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCB2b2lkICpkLCBpbnQgc2lsZW50KQogCWlmICghc2IpCiAJCXJldHVybiAtRU5PTUVNOwogCXMtPnNfZnNfaW5mbyA9IHNiOworCXMtPnNfdGltZV9taW4gPSAwOworCXMtPnNfdGltZV9tYXggPSBVMzJfTUFYOwogIAogCXMtPnNfbWFnaWMJCT0gRUZTX1NVUEVSX01BR0lDOwogCWlmICghc2Jfc2V0X2Jsb2Nrc2l6ZShzLCBFRlNfQkxPQ0tTSVpFKSkgewpkaWZmIC0tZ2l0IGEvZnMvZXhlYy5jIGIvZnMvZXhlYy5jCmluZGV4IGY3ZjZhMTQuLjU1NWU5M2MgMTAwNjQ0Ci0tLSBhL2ZzL2V4ZWMuYworKysgYi9mcy9leGVjLmMKQEAgLTEwMzMsNiArMTAzMyw3IEBAIHN0YXRpYyBpbnQgZXhlY19tbWFwKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogCX0KIAl0YXNrX2xvY2sodHNrKTsKIAlhY3RpdmVfbW0gPSB0c2stPmFjdGl2ZV9tbTsKKwltZW1iYXJyaWVyX2V4ZWNfbW1hcChtbSk7CiAJdHNrLT5tbSA9IG1tOwogCXRzay0+YWN0aXZlX21tID0gbW07CiAJYWN0aXZhdGVfbW0oYWN0aXZlX21tLCBtbSk7CkBAIC0xODI1LDcgKzE4MjYsNiBAQCBzdGF0aWMgaW50IF9fZG9fZXhlY3ZlX2ZpbGUoaW50IGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLAogCS8qIGV4ZWN2ZSBzdWNjZWVkZWQgKi8KIAljdXJyZW50LT5mcy0+aW5fZXhlYyA9IDA7CiAJY3VycmVudC0+aW5fZXhlY3ZlID0gMDsKLQltZW1iYXJyaWVyX2V4ZWN2ZShjdXJyZW50KTsKIAlyc2VxX2V4ZWN2ZShjdXJyZW50KTsKIAlhY2N0X3VwZGF0ZV9pbnRlZ3JhbHMoY3VycmVudCk7CiAJdGFza19udW1hX2ZyZWUoY3VycmVudCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvZnMvZXh0Mi9iYWxsb2MuYyBiL2ZzL2V4dDIvYmFsbG9jLmMKaW5kZXggNTQ3YzE2NS4uZTBjYzU1MSAxMDA2NDQKLS0tIGEvZnMvZXh0Mi9iYWxsb2MuYworKysgYi9mcy9leHQyL2JhbGxvYy5jCkBAIC00OTAsOSArNDkwLDcgQEAgdm9pZCBleHQyX2ZyZWVfYmxvY2tzIChzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgdW5zaWduZWQgbG9uZyBibG9jaywKIAlzdHJ1Y3QgZXh0Ml9zdXBlcl9ibG9jayAqIGVzID0gc2JpLT5zX2VzOwogCXVuc2lnbmVkIGZyZWVkID0gMCwgZ3JvdXBfZnJlZWQ7CiAKLQlpZiAoYmxvY2sgPCBsZTMyX3RvX2NwdShlcy0+c19maXJzdF9kYXRhX2Jsb2NrKSB8fAotCSAgICBibG9jayArIGNvdW50IDwgYmxvY2sgfHwKLQkgICAgYmxvY2sgKyBjb3VudCA+IGxlMzJfdG9fY3B1KGVzLT5zX2Jsb2Nrc19jb3VudCkpIHsKKwlpZiAoIWV4dDJfZGF0YV9ibG9ja192YWxpZChzYmksIGJsb2NrLCBjb3VudCkpIHsKIAkJZXh0Ml9lcnJvciAoc2IsICJleHQyX2ZyZWVfYmxvY2tzIiwKIAkJCSAgICAiRnJlZWluZyBibG9ja3Mgbm90IGluIGRhdGF6b25lIC0gIgogCQkJICAgICJibG9jayA9ICVsdSwgY291bnQgPSAlbHUiLCBibG9jaywgY291bnQpOwpAQCAtMTIwMywxMyArMTIwMSwxMyBAQCBpbnQgZXh0Ml9kYXRhX2Jsb2NrX3ZhbGlkKHN0cnVjdCBleHQyX3NiX2luZm8gKnNiaSwgZXh0Ml9mc2Jsa190IHN0YXJ0X2JsaywKIAkJCSAgdW5zaWduZWQgaW50IGNvdW50KQogewogCWlmICgoc3RhcnRfYmxrIDw9IGxlMzJfdG9fY3B1KHNiaS0+c19lcy0+c19maXJzdF9kYXRhX2Jsb2NrKSkgfHwKLQkgICAgKHN0YXJ0X2JsayArIGNvdW50IDwgc3RhcnRfYmxrKSB8fAotCSAgICAoc3RhcnRfYmxrID4gbGUzMl90b19jcHUoc2JpLT5zX2VzLT5zX2Jsb2Nrc19jb3VudCkpKQorCSAgICAoc3RhcnRfYmxrICsgY291bnQgLSAxIDwgc3RhcnRfYmxrKSB8fAorCSAgICAoc3RhcnRfYmxrICsgY291bnQgLSAxID49IGxlMzJfdG9fY3B1KHNiaS0+c19lcy0+c19ibG9ja3NfY291bnQpKSkKIAkJcmV0dXJuIDA7CiAKIAkvKiBFbnN1cmUgd2UgZG8gbm90IHN0ZXAgb3ZlciBzdXBlcmJsb2NrICovCiAJaWYgKChzdGFydF9ibGsgPD0gc2JpLT5zX3NiX2Jsb2NrKSAmJgotCSAgICAoc3RhcnRfYmxrICsgY291bnQgPj0gc2JpLT5zX3NiX2Jsb2NrKSkKKwkgICAgKHN0YXJ0X2JsayArIGNvdW50IC0gMSA+PSBzYmktPnNfc2JfYmxvY2spKQogCQlyZXR1cm4gMDsKIAogCXJldHVybiAxOwpkaWZmIC0tZ2l0IGEvZnMvZXh0Mi9zdXBlci5jIGIvZnMvZXh0Mi9zdXBlci5jCmluZGV4IDQ0ZWI2ZTcuLjMwYzYzMGQgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDIvc3VwZXIuYworKysgYi9mcy9leHQyL3N1cGVyLmMKQEAgLTE2Miw4ICsxNjIsNyBAQCBzdGF0aWMgdm9pZCBleHQyX3B1dF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpCiAJfQogCWRiX2NvdW50ID0gc2JpLT5zX2dkYl9jb3VudDsKIAlmb3IgKGkgPSAwOyBpIDwgZGJfY291bnQ7IGkrKykKLQkJaWYgKHNiaS0+c19ncm91cF9kZXNjW2ldKQotCQkJYnJlbHNlIChzYmktPnNfZ3JvdXBfZGVzY1tpXSk7CisJCWJyZWxzZShzYmktPnNfZ3JvdXBfZGVzY1tpXSk7CiAJa2ZyZWUoc2JpLT5zX2dyb3VwX2Rlc2MpOwogCWtmcmVlKHNiaS0+c19kZWJ0cyk7CiAJcGVyY3B1X2NvdW50ZXJfZGVzdHJveSgmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlcik7CkBAIC0xMDAyLDYgKzEwMDEsOCBAQCBzdGF0aWMgaW50IGV4dDJfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCiAJc2ItPnNfbWF4Ynl0ZXMgPSBleHQyX21heF9zaXplKHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzKTsKIAlzYi0+c19tYXhfbGlua3MgPSBFWFQyX0xJTktfTUFYOworCXNiLT5zX3RpbWVfbWluID0gUzMyX01JTjsKKwlzYi0+c190aW1lX21heCA9IFMzMl9NQVg7CiAKIAlpZiAobGUzMl90b19jcHUoZXMtPnNfcmV2X2xldmVsKSA9PSBFWFQyX0dPT0RfT0xEX1JFVikgewogCQlzYmktPnNfaW5vZGVfc2l6ZSA9IEVYVDJfR09PRF9PTERfSU5PREVfU0laRTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDIveGF0dHIuYyBiL2ZzL2V4dDIveGF0dHIuYwppbmRleCA3OTM2OWMxLi4wNDU2YmM5IDEwMDY0NAotLS0gYS9mcy9leHQyL3hhdHRyLmMKKysrIGIvZnMvZXh0Mi94YXR0ci5jCkBAIC03OTQsNyArNzk0LDcgQEAgZXh0Ml94YXR0cl9kZWxldGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKIAlpZiAoIUVYVDJfSShpbm9kZSktPmlfZmlsZV9hY2wpCiAJCWdvdG8gY2xlYW51cDsKIAotCWlmICghZXh0Ml9kYXRhX2Jsb2NrX3ZhbGlkKHNiaSwgRVhUMl9JKGlub2RlKS0+aV9maWxlX2FjbCwgMCkpIHsKKwlpZiAoIWV4dDJfZGF0YV9ibG9ja192YWxpZChzYmksIEVYVDJfSShpbm9kZSktPmlfZmlsZV9hY2wsIDEpKSB7CiAJCWV4dDJfZXJyb3IoaW5vZGUtPmlfc2IsICJleHQyX3hhdHRyX2RlbGV0ZV9pbm9kZSIsCiAJCQkiaW5vZGUgJWxkOiB4YXR0ciBibG9jayAlZCBpcyBvdXQgb2YgZGF0YSBibG9ja3MgcmFuZ2UiLAogCQkJaW5vZGUtPmlfaW5vLCBFWFQyX0koaW5vZGUpLT5pX2ZpbGVfYWNsKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvYmxvY2tfdmFsaWRpdHkuYyBiL2ZzL2V4dDQvYmxvY2tfdmFsaWRpdHkuYwppbmRleCA4ZTgzNzQxLi5kNGQ0ZmRmIDEwMDY0NAotLS0gYS9mcy9leHQ0L2Jsb2NrX3ZhbGlkaXR5LmMKKysrIGIvZnMvZXh0NC9ibG9ja192YWxpZGl0eS5jCkBAIC0zOCw2ICszOCw3IEBAIGludCBfX2luaXQgZXh0NF9pbml0X3N5c3RlbV96b25lKHZvaWQpCiAKIHZvaWQgZXh0NF9leGl0X3N5c3RlbV96b25lKHZvaWQpCiB7CisJcmN1X2JhcnJpZXIoKTsKIAlrbWVtX2NhY2hlX2Rlc3Ryb3koZXh0NF9zeXN0ZW1fem9uZV9jYWNoZXApOwogfQogCkBAIC00OSwxNyArNTAsMjYgQEAgc3RhdGljIGlubGluZSBpbnQgY2FuX21lcmdlKHN0cnVjdCBleHQ0X3N5c3RlbV96b25lICplbnRyeTEsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHJlbGVhc2Vfc3lzdGVtX3pvbmUoc3RydWN0IGV4dDRfc3lzdGVtX2Jsb2NrcyAqc3lzdGVtX2Jsa3MpCit7CisJc3RydWN0IGV4dDRfc3lzdGVtX3pvbmUJKmVudHJ5LCAqbjsKKworCXJidHJlZV9wb3N0b3JkZXJfZm9yX2VhY2hfZW50cnlfc2FmZShlbnRyeSwgbiwKKwkJCQkmc3lzdGVtX2Jsa3MtPnJvb3QsIG5vZGUpCisJCWttZW1fY2FjaGVfZnJlZShleHQ0X3N5c3RlbV96b25lX2NhY2hlcCwgZW50cnkpOworfQorCiAvKgogICogTWFyayBhIHJhbmdlIG9mIGJsb2NrcyBhcyBiZWxvbmdpbmcgdG8gdGhlICJzeXN0ZW0gem9uZSIgLS0tIHRoYXQKICAqIGlzLCBmaWxlc3lzdGVtIG1ldGFkYXRhIGJsb2NrcyB3aGljaCBzaG91bGQgbmV2ZXIgYmUgdXNlZCBieQogICogaW5vZGVzLgogICovCi1zdGF0aWMgaW50IGFkZF9zeXN0ZW1fem9uZShzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksCitzdGF0aWMgaW50IGFkZF9zeXN0ZW1fem9uZShzdHJ1Y3QgZXh0NF9zeXN0ZW1fYmxvY2tzICpzeXN0ZW1fYmxrcywKIAkJCSAgIGV4dDRfZnNibGtfdCBzdGFydF9ibGssCiAJCQkgICB1bnNpZ25lZCBpbnQgY291bnQpCiB7CiAJc3RydWN0IGV4dDRfc3lzdGVtX3pvbmUgKm5ld19lbnRyeSA9IE5VTEwsICplbnRyeTsKLQlzdHJ1Y3QgcmJfbm9kZSAqKm4gPSAmc2JpLT5zeXN0ZW1fYmxrcy5yYl9ub2RlLCAqbm9kZTsKKwlzdHJ1Y3QgcmJfbm9kZSAqKm4gPSAmc3lzdGVtX2Jsa3MtPnJvb3QucmJfbm9kZSwgKm5vZGU7CiAJc3RydWN0IHJiX25vZGUgKnBhcmVudCA9IE5VTEwsICpuZXdfbm9kZSA9IE5VTEw7CiAKIAl3aGlsZSAoKm4pIHsKQEAgLTkxLDcgKzEwMSw3IEBAIHN0YXRpYyBpbnQgYWRkX3N5c3RlbV96b25lKHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSwKIAkJbmV3X25vZGUgPSAmbmV3X2VudHJ5LT5ub2RlOwogCiAJCXJiX2xpbmtfbm9kZShuZXdfbm9kZSwgcGFyZW50LCBuKTsKLQkJcmJfaW5zZXJ0X2NvbG9yKG5ld19ub2RlLCAmc2JpLT5zeXN0ZW1fYmxrcyk7CisJCXJiX2luc2VydF9jb2xvcihuZXdfbm9kZSwgJnN5c3RlbV9ibGtzLT5yb290KTsKIAl9CiAKIAkvKiBDYW4gd2UgbWVyZ2UgdG8gdGhlIGxlZnQ/ICovCkBAIC0xMDEsNyArMTExLDcgQEAgc3RhdGljIGludCBhZGRfc3lzdGVtX3pvbmUoc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLAogCQlpZiAoY2FuX21lcmdlKGVudHJ5LCBuZXdfZW50cnkpKSB7CiAJCQluZXdfZW50cnktPnN0YXJ0X2JsayA9IGVudHJ5LT5zdGFydF9ibGs7CiAJCQluZXdfZW50cnktPmNvdW50ICs9IGVudHJ5LT5jb3VudDsKLQkJCXJiX2VyYXNlKG5vZGUsICZzYmktPnN5c3RlbV9ibGtzKTsKKwkJCXJiX2VyYXNlKG5vZGUsICZzeXN0ZW1fYmxrcy0+cm9vdCk7CiAJCQlrbWVtX2NhY2hlX2ZyZWUoZXh0NF9zeXN0ZW1fem9uZV9jYWNoZXAsIGVudHJ5KTsKIAkJfQogCX0KQEAgLTExMiw3ICsxMjIsNyBAQCBzdGF0aWMgaW50IGFkZF9zeXN0ZW1fem9uZShzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksCiAJCWVudHJ5ID0gcmJfZW50cnkobm9kZSwgc3RydWN0IGV4dDRfc3lzdGVtX3pvbmUsIG5vZGUpOwogCQlpZiAoY2FuX21lcmdlKG5ld19lbnRyeSwgZW50cnkpKSB7CiAJCQluZXdfZW50cnktPmNvdW50ICs9IGVudHJ5LT5jb3VudDsKLQkJCXJiX2VyYXNlKG5vZGUsICZzYmktPnN5c3RlbV9ibGtzKTsKKwkJCXJiX2VyYXNlKG5vZGUsICZzeXN0ZW1fYmxrcy0+cm9vdCk7CiAJCQlrbWVtX2NhY2hlX2ZyZWUoZXh0NF9zeXN0ZW1fem9uZV9jYWNoZXAsIGVudHJ5KTsKIAkJfQogCX0KQEAgLTEyNiw3ICsxMzYsNyBAQCBzdGF0aWMgdm9pZCBkZWJ1Z19wcmludF90cmVlKHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSkKIAlpbnQgZmlyc3QgPSAxOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiU3lzdGVtIHpvbmVzOiAiKTsKLQlub2RlID0gcmJfZmlyc3QoJnNiaS0+c3lzdGVtX2Jsa3MpOworCW5vZGUgPSByYl9maXJzdCgmc2JpLT5zeXN0ZW1fYmxrcy0+cm9vdCk7CiAJd2hpbGUgKG5vZGUpIHsKIAkJZW50cnkgPSByYl9lbnRyeShub2RlLCBzdHJ1Y3QgZXh0NF9zeXN0ZW1fem9uZSwgbm9kZSk7CiAJCXByaW50ayhLRVJOX0NPTlQgIiVzJWxsdS0lbGx1IiwgZmlyc3QgPyAiIiA6ICIsICIsCkBAIC0xMzcsNyArMTQ3LDQ3IEBAIHN0YXRpYyB2b2lkIGRlYnVnX3ByaW50X3RyZWUoc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpKQogCXByaW50ayhLRVJOX0NPTlQgIlxuIik7CiB9CiAKLXN0YXRpYyBpbnQgZXh0NF9wcm90ZWN0X3Jlc2VydmVkX2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHUzMiBpbm8pCisvKgorICogUmV0dXJucyAxIGlmIHRoZSBwYXNzZWQtaW4gYmxvY2sgcmVnaW9uIChzdGFydF9ibGssCisgKiBzdGFydF9ibGsrY291bnQpIGlzIHZhbGlkOyAwIGlmIHNvbWUgcGFydCBvZiB0aGUgYmxvY2sgcmVnaW9uCisgKiBvdmVybGFwcyB3aXRoIGZpbGVzeXN0ZW0gbWV0YWRhdGEgYmxvY2tzLgorICovCitzdGF0aWMgaW50IGV4dDRfZGF0YV9ibG9ja192YWxpZF9yY3Uoc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLAorCQkJCSAgICAgc3RydWN0IGV4dDRfc3lzdGVtX2Jsb2NrcyAqc3lzdGVtX2Jsa3MsCisJCQkJICAgICBleHQ0X2ZzYmxrX3Qgc3RhcnRfYmxrLAorCQkJCSAgICAgdW5zaWduZWQgaW50IGNvdW50KQoreworCXN0cnVjdCBleHQ0X3N5c3RlbV96b25lICplbnRyeTsKKwlzdHJ1Y3QgcmJfbm9kZSAqbjsKKworCWlmICgoc3RhcnRfYmxrIDw9IGxlMzJfdG9fY3B1KHNiaS0+c19lcy0+c19maXJzdF9kYXRhX2Jsb2NrKSkgfHwKKwkgICAgKHN0YXJ0X2JsayArIGNvdW50IDwgc3RhcnRfYmxrKSB8fAorCSAgICAoc3RhcnRfYmxrICsgY291bnQgPiBleHQ0X2Jsb2Nrc19jb3VudChzYmktPnNfZXMpKSkgeworCQlzYmktPnNfZXMtPnNfbGFzdF9lcnJvcl9ibG9jayA9IGNwdV90b19sZTY0KHN0YXJ0X2Jsayk7CisJCXJldHVybiAwOworCX0KKworCWlmIChzeXN0ZW1fYmxrcyA9PSBOVUxMKQorCQlyZXR1cm4gMTsKKworCW4gPSBzeXN0ZW1fYmxrcy0+cm9vdC5yYl9ub2RlOworCXdoaWxlIChuKSB7CisJCWVudHJ5ID0gcmJfZW50cnkobiwgc3RydWN0IGV4dDRfc3lzdGVtX3pvbmUsIG5vZGUpOworCQlpZiAoc3RhcnRfYmxrICsgY291bnQgLSAxIDwgZW50cnktPnN0YXJ0X2JsaykKKwkJCW4gPSBuLT5yYl9sZWZ0OworCQllbHNlIGlmIChzdGFydF9ibGsgPj0gKGVudHJ5LT5zdGFydF9ibGsgKyBlbnRyeS0+Y291bnQpKQorCQkJbiA9IG4tPnJiX3JpZ2h0OworCQllbHNlIHsKKwkJCXNiaS0+c19lcy0+c19sYXN0X2Vycm9yX2Jsb2NrID0gY3B1X3RvX2xlNjQoc3RhcnRfYmxrKTsKKwkJCXJldHVybiAwOworCQl9CisJfQorCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IGV4dDRfcHJvdGVjdF9yZXNlcnZlZF9pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAorCQkJCSAgICAgICBzdHJ1Y3QgZXh0NF9zeXN0ZW1fYmxvY2tzICpzeXN0ZW1fYmxrcywKKwkJCQkgICAgICAgdTMyIGlubykKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IEVYVDRfU0Ioc2IpOwpAQCAtMTYzLDE0ICsyMTMsMTUgQEAgc3RhdGljIGludCBleHQ0X3Byb3RlY3RfcmVzZXJ2ZWRfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlubykKIAkJaWYgKG4gPT0gMCkgewogCQkJaSsrOwogCQl9IGVsc2UgewotCQkJaWYgKCFleHQ0X2RhdGFfYmxvY2tfdmFsaWQoc2JpLCBtYXAubV9wYmxrLCBuKSkgeworCQkJaWYgKCFleHQ0X2RhdGFfYmxvY2tfdmFsaWRfcmN1KHNiaSwgc3lzdGVtX2Jsa3MsCisJCQkJCQltYXAubV9wYmxrLCBuKSkgewogCQkJCWV4dDRfZXJyb3Ioc2IsICJibG9ja3MgJWxsdS0lbGx1IGZyb20gaW5vZGUgJXUgIgogCQkJCQkgICAib3ZlcmxhcCBzeXN0ZW0gem9uZSIsIG1hcC5tX3BibGssCiAJCQkJCSAgIG1hcC5tX3BibGsgKyBtYXAubV9sZW4gLSAxLCBpbm8pOwogCQkJCWVyciA9IC1FRlNDT1JSVVBURUQ7CiAJCQkJYnJlYWs7CiAJCQl9Ci0JCQllcnIgPSBhZGRfc3lzdGVtX3pvbmUoc2JpLCBtYXAubV9wYmxrLCBuKTsKKwkJCWVyciA9IGFkZF9zeXN0ZW1fem9uZShzeXN0ZW1fYmxrcywgbWFwLm1fcGJsaywgbik7CiAJCQlpZiAoZXJyIDwgMCkKIAkJCQlicmVhazsKIAkJCWkgKz0gbjsKQEAgLTE4MCw5NCArMjMxLDEzMCBAQCBzdGF0aWMgaW50IGV4dDRfcHJvdGVjdF9yZXNlcnZlZF9pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1MzIgaW5vKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyB2b2lkIGV4dDRfZGVzdHJveV9zeXN0ZW1fem9uZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSkKK3sKKwlzdHJ1Y3QgZXh0NF9zeXN0ZW1fYmxvY2tzICpzeXN0ZW1fYmxrczsKKworCXN5c3RlbV9ibGtzID0gY29udGFpbmVyX29mKHJjdSwgc3RydWN0IGV4dDRfc3lzdGVtX2Jsb2NrcywgcmN1KTsKKwlyZWxlYXNlX3N5c3RlbV96b25lKHN5c3RlbV9ibGtzKTsKKwlrZnJlZShzeXN0ZW1fYmxrcyk7Cit9CisKKy8qCisgKiBCdWlsZCBzeXN0ZW0gem9uZSByYnRyZWUgd2hpY2ggaXMgdXNlZCBmb3IgYmxvY2sgdmFsaWRpdHkgY2hlY2tpbmcuCisgKgorICogVGhlIHVwZGF0ZSBvZiBzeXN0ZW1fYmxrcyBwb2ludGVyIGluIHRoaXMgZnVuY3Rpb24gaXMgcHJvdGVjdGVkIGJ5CisgKiBzYi0+c191bW91bnQgc2VtYXBob3JlLiBIb3dldmVyIHdlIGhhdmUgdG8gYmUgY2FyZWZ1bCBhcyB3ZSBjYW4gYmUKKyAqIHJhY2luZyB3aXRoIGV4dDRfZGF0YV9ibG9ja192YWxpZCgpIGNhbGxzIHJlYWRpbmcgc3lzdGVtX2Jsa3MgcmJ0cmVlCisgKiBwcm90ZWN0ZWQgb25seSBieSBSQ1UuIFRoYXQncyB3aHkgd2UgZmlyc3QgYnVpbGQgdGhlIHJidHJlZSBhbmQgdGhlbgorICogc3dhcCBpdCBpbiBwbGFjZS4KKyAqLwogaW50IGV4dDRfc2V0dXBfc3lzdGVtX3pvbmUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlleHQ0X2dyb3VwX3Qgbmdyb3VwcyA9IGV4dDRfZ2V0X2dyb3Vwc19jb3VudChzYik7CiAJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihzYik7CisJc3RydWN0IGV4dDRfc3lzdGVtX2Jsb2NrcyAqc3lzdGVtX2Jsa3M7CiAJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZ2RwOwogCWV4dDRfZ3JvdXBfdCBpOwogCWludCBmbGV4X3NpemUgPSBleHQ0X2ZsZXhfYmdfc2l6ZShzYmkpOwogCWludCByZXQ7CiAKIAlpZiAoIXRlc3Rfb3B0KHNiLCBCTE9DS19WQUxJRElUWSkpIHsKLQkJaWYgKHNiaS0+c3lzdGVtX2Jsa3MucmJfbm9kZSkKKwkJaWYgKHNiaS0+c3lzdGVtX2Jsa3MpCiAJCQlleHQ0X3JlbGVhc2Vfc3lzdGVtX3pvbmUoc2IpOwogCQlyZXR1cm4gMDsKIAl9Ci0JaWYgKHNiaS0+c3lzdGVtX2Jsa3MucmJfbm9kZSkKKwlpZiAoc2JpLT5zeXN0ZW1fYmxrcykKIAkJcmV0dXJuIDA7CiAKKwlzeXN0ZW1fYmxrcyA9IGt6YWxsb2Moc2l6ZW9mKCpzeXN0ZW1fYmxrcyksIEdGUF9LRVJORUwpOworCWlmICghc3lzdGVtX2Jsa3MpCisJCXJldHVybiAtRU5PTUVNOworCiAJZm9yIChpPTA7IGkgPCBuZ3JvdXBzOyBpKyspIHsKIAkJY29uZF9yZXNjaGVkKCk7CiAJCWlmIChleHQ0X2JnX2hhc19zdXBlcihzYiwgaSkgJiYKIAkJICAgICgoaSA8IDUpIHx8ICgoaSAlIGZsZXhfc2l6ZSkgPT0gMCkpKQotCQkJYWRkX3N5c3RlbV96b25lKHNiaSwgZXh0NF9ncm91cF9maXJzdF9ibG9ja19ubyhzYiwgaSksCisJCQlhZGRfc3lzdGVtX3pvbmUoc3lzdGVtX2Jsa3MsCisJCQkJCWV4dDRfZ3JvdXBfZmlyc3RfYmxvY2tfbm8oc2IsIGkpLAogCQkJCQlleHQ0X2JnX251bV9nZGIoc2IsIGkpICsgMSk7CiAJCWdkcCA9IGV4dDRfZ2V0X2dyb3VwX2Rlc2Moc2IsIGksIE5VTEwpOwotCQlyZXQgPSBhZGRfc3lzdGVtX3pvbmUoc2JpLCBleHQ0X2Jsb2NrX2JpdG1hcChzYiwgZ2RwKSwgMSk7CisJCXJldCA9IGFkZF9zeXN0ZW1fem9uZShzeXN0ZW1fYmxrcywKKwkJCQlleHQ0X2Jsb2NrX2JpdG1hcChzYiwgZ2RwKSwgMSk7CiAJCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCQlyZXQgPSBhZGRfc3lzdGVtX3pvbmUoc2JpLCBleHQ0X2lub2RlX2JpdG1hcChzYiwgZ2RwKSwgMSk7CisJCQlnb3RvIGVycjsKKwkJcmV0ID0gYWRkX3N5c3RlbV96b25lKHN5c3RlbV9ibGtzLAorCQkJCWV4dDRfaW5vZGVfYml0bWFwKHNiLCBnZHApLCAxKTsKIAkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JCXJldCA9IGFkZF9zeXN0ZW1fem9uZShzYmksIGV4dDRfaW5vZGVfdGFibGUoc2IsIGdkcCksCisJCQlnb3RvIGVycjsKKwkJcmV0ID0gYWRkX3N5c3RlbV96b25lKHN5c3RlbV9ibGtzLAorCQkJCWV4dDRfaW5vZGVfdGFibGUoc2IsIGdkcCksCiAJCQkJc2JpLT5zX2l0Yl9wZXJfZ3JvdXApOwogCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKKwkJCWdvdG8gZXJyOwogCX0KIAlpZiAoZXh0NF9oYXNfZmVhdHVyZV9qb3VybmFsKHNiKSAmJiBzYmktPnNfZXMtPnNfam91cm5hbF9pbnVtKSB7Ci0JCXJldCA9IGV4dDRfcHJvdGVjdF9yZXNlcnZlZF9pbm9kZShzYiwKKwkJcmV0ID0gZXh0NF9wcm90ZWN0X3Jlc2VydmVkX2lub2RlKHNiLCBzeXN0ZW1fYmxrcywKIAkJCQlsZTMyX3RvX2NwdShzYmktPnNfZXMtPnNfam91cm5hbF9pbnVtKSk7CiAJCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OworCQkJZ290byBlcnI7CiAJfQogCisJLyoKKwkgKiBTeXN0ZW0gYmxrcyByYnRyZWUgY29tcGxldGUsIGFubm91bmNlIGl0IG9uY2UgdG8gcHJldmVudCByYWNpbmcKKwkgKiB3aXRoIGV4dDRfZGF0YV9ibG9ja192YWxpZCgpIGFjY2Vzc2luZyB0aGUgcmJ0cmVlIGF0IHRoZSBzYW1lCisJICogdGltZS4KKwkgKi8KKwlyY3VfYXNzaWduX3BvaW50ZXIoc2JpLT5zeXN0ZW1fYmxrcywgc3lzdGVtX2Jsa3MpOworCiAJaWYgKHRlc3Rfb3B0KHNiLCBERUJVRykpCiAJCWRlYnVnX3ByaW50X3RyZWUoc2JpKTsKIAlyZXR1cm4gMDsKLX0KLQotLyogQ2FsbGVkIHdoZW4gdGhlIGZpbGVzeXN0ZW0gaXMgdW5tb3VudGVkICovCi12b2lkIGV4dDRfcmVsZWFzZV9zeXN0ZW1fem9uZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQotewotCXN0cnVjdCBleHQ0X3N5c3RlbV96b25lCSplbnRyeSwgKm47Ci0KLQlyYnRyZWVfcG9zdG9yZGVyX2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50cnksIG4sCi0JCQkmRVhUNF9TQihzYiktPnN5c3RlbV9ibGtzLCBub2RlKQotCQlrbWVtX2NhY2hlX2ZyZWUoZXh0NF9zeXN0ZW1fem9uZV9jYWNoZXAsIGVudHJ5KTsKLQotCUVYVDRfU0Ioc2IpLT5zeXN0ZW1fYmxrcyA9IFJCX1JPT1Q7CitlcnI6CisJcmVsZWFzZV9zeXN0ZW1fem9uZShzeXN0ZW1fYmxrcyk7CisJa2ZyZWUoc3lzdGVtX2Jsa3MpOworCXJldHVybiByZXQ7CiB9CiAKIC8qCi0gKiBSZXR1cm5zIDEgaWYgdGhlIHBhc3NlZC1pbiBibG9jayByZWdpb24gKHN0YXJ0X2JsaywKLSAqIHN0YXJ0X2Jsaytjb3VudCkgaXMgdmFsaWQ7IDAgaWYgc29tZSBwYXJ0IG9mIHRoZSBibG9jayByZWdpb24KLSAqIG92ZXJsYXBzIHdpdGggZmlsZXN5c3RlbSBtZXRhZGF0YSBibG9ja3MuCisgKiBDYWxsZWQgd2hlbiB0aGUgZmlsZXN5c3RlbSBpcyB1bm1vdW50ZWQgb3Igd2hlbiByZW1vdW50aW5nIGl0IHdpdGgKKyAqIG5vYmxvY2tfdmFsaWRpdHkgc3BlY2lmaWVkLgorICoKKyAqIFRoZSB1cGRhdGUgb2Ygc3lzdGVtX2Jsa3MgcG9pbnRlciBpbiB0aGlzIGZ1bmN0aW9uIGlzIHByb3RlY3RlZCBieQorICogc2ItPnNfdW1vdW50IHNlbWFwaG9yZS4gSG93ZXZlciB3ZSBoYXZlIHRvIGJlIGNhcmVmdWwgYXMgd2UgY2FuIGJlCisgKiByYWNpbmcgd2l0aCBleHQ0X2RhdGFfYmxvY2tfdmFsaWQoKSBjYWxscyByZWFkaW5nIHN5c3RlbV9ibGtzIHJidHJlZQorICogcHJvdGVjdGVkIG9ubHkgYnkgUkNVLiBTbyB3ZSBmaXJzdCBjbGVhciB0aGUgc3lzdGVtX2Jsa3MgcG9pbnRlciBhbmQKKyAqIHRoZW4gZnJlZSB0aGUgcmJ0cmVlIG9ubHkgYWZ0ZXIgUkNVIGdyYWNlIHBlcmlvZCBleHBpcmVzLgogICovCit2b2lkIGV4dDRfcmVsZWFzZV9zeXN0ZW1fem9uZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQoreworCXN0cnVjdCBleHQ0X3N5c3RlbV9ibG9ja3MgKnN5c3RlbV9ibGtzOworCisJc3lzdGVtX2Jsa3MgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKEVYVDRfU0Ioc2IpLT5zeXN0ZW1fYmxrcywKKwkJCQkJbG9ja2RlcF9pc19oZWxkKCZzYi0+c191bW91bnQpKTsKKwlyY3VfYXNzaWduX3BvaW50ZXIoRVhUNF9TQihzYiktPnN5c3RlbV9ibGtzLCBOVUxMKTsKKworCWlmIChzeXN0ZW1fYmxrcykKKwkJY2FsbF9yY3UoJnN5c3RlbV9ibGtzLT5yY3UsIGV4dDRfZGVzdHJveV9zeXN0ZW1fem9uZSk7Cit9CisKIGludCBleHQ0X2RhdGFfYmxvY2tfdmFsaWQoc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLCBleHQ0X2ZzYmxrX3Qgc3RhcnRfYmxrLAogCQkJICB1bnNpZ25lZCBpbnQgY291bnQpCiB7Ci0Jc3RydWN0IGV4dDRfc3lzdGVtX3pvbmUgKmVudHJ5OwotCXN0cnVjdCByYl9ub2RlICpuID0gc2JpLT5zeXN0ZW1fYmxrcy5yYl9ub2RlOworCXN0cnVjdCBleHQ0X3N5c3RlbV9ibG9ja3MgKnN5c3RlbV9ibGtzOworCWludCByZXQ7CiAKLQlpZiAoKHN0YXJ0X2JsayA8PSBsZTMyX3RvX2NwdShzYmktPnNfZXMtPnNfZmlyc3RfZGF0YV9ibG9jaykpIHx8Ci0JICAgIChzdGFydF9ibGsgKyBjb3VudCA8IHN0YXJ0X2JsaykgfHwKLQkgICAgKHN0YXJ0X2JsayArIGNvdW50ID4gZXh0NF9ibG9ja3NfY291bnQoc2JpLT5zX2VzKSkpIHsKLQkJc2JpLT5zX2VzLT5zX2xhc3RfZXJyb3JfYmxvY2sgPSBjcHVfdG9fbGU2NChzdGFydF9ibGspOwotCQlyZXR1cm4gMDsKLQl9Ci0Jd2hpbGUgKG4pIHsKLQkJZW50cnkgPSByYl9lbnRyeShuLCBzdHJ1Y3QgZXh0NF9zeXN0ZW1fem9uZSwgbm9kZSk7Ci0JCWlmIChzdGFydF9ibGsgKyBjb3VudCAtIDEgPCBlbnRyeS0+c3RhcnRfYmxrKQotCQkJbiA9IG4tPnJiX2xlZnQ7Ci0JCWVsc2UgaWYgKHN0YXJ0X2JsayA+PSAoZW50cnktPnN0YXJ0X2JsayArIGVudHJ5LT5jb3VudCkpCi0JCQluID0gbi0+cmJfcmlnaHQ7Ci0JCWVsc2UgewotCQkJc2JpLT5zX2VzLT5zX2xhc3RfZXJyb3JfYmxvY2sgPSBjcHVfdG9fbGU2NChzdGFydF9ibGspOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQl9Ci0JcmV0dXJuIDE7CisJLyoKKwkgKiBMb2NrIHRoZSBzeXN0ZW0gem9uZSB0byBwcmV2ZW50IGl0IGJlaW5nIHJlbGVhc2VkIGNvbmN1cnJlbnRseQorCSAqIHdoZW4gZG9pbmcgYSByZW1vdW50IHdoaWNoIGludmVyc2UgY3VycmVudCAiW25vXWJsb2NrX3ZhbGlkaXR5IgorCSAqIG1vdW50IG9wdGlvbi4KKwkgKi8KKwlyY3VfcmVhZF9sb2NrKCk7CisJc3lzdGVtX2Jsa3MgPSByY3VfZGVyZWZlcmVuY2Uoc2JpLT5zeXN0ZW1fYmxrcyk7CisJcmV0ID0gZXh0NF9kYXRhX2Jsb2NrX3ZhbGlkX3JjdShzYmksIHN5c3RlbV9ibGtzLCBzdGFydF9ibGssCisJCQkJCWNvdW50KTsKKwlyY3VfcmVhZF91bmxvY2soKTsKKwlyZXR1cm4gcmV0OwogfQogCiBpbnQgZXh0NF9jaGVja19ibG9ja3JlZihjb25zdCBjaGFyICpmdW5jdGlvbiwgdW5zaWduZWQgaW50IGxpbmUsCmRpZmYgLS1naXQgYS9mcy9leHQ0L2Rpci5jIGIvZnMvZXh0NC9kaXIuYwppbmRleCA4NjA1NGYzLi45ZmRkMmIyIDEwMDY0NAotLS0gYS9mcy9leHQ0L2Rpci5jCisrKyBiL2ZzL2V4dDQvZGlyLmMKQEAgLTY2OCwxNCArNjY4LDE1IEBAIHN0YXRpYyBpbnQgZXh0NF9kX2NvbXBhcmUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgbGVuLAogCQkJICBjb25zdCBjaGFyICpzdHIsIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lKQogewogCXN0cnVjdCBxc3RyIHFzdHIgPSB7Lm5hbWUgPSBzdHIsIC5sZW4gPSBsZW4gfTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZTsKIAotCWlmICghSVNfQ0FTRUZPTERFRChkZW50cnktPmRfcGFyZW50LT5kX2lub2RlKSkgeworCWlmICghSVNfQ0FTRUZPTERFRChpbm9kZSkgfHwgIUVYVDRfU0IoaW5vZGUtPmlfc2IpLT5zX2VuY29kaW5nKSB7CiAJCWlmIChsZW4gIT0gbmFtZS0+bGVuKQogCQkJcmV0dXJuIC0xOwogCQlyZXR1cm4gbWVtY21wKHN0ciwgbmFtZS0+bmFtZSwgbGVuKTsKIAl9CiAKLQlyZXR1cm4gZXh0NF9jaV9jb21wYXJlKGRlbnRyeS0+ZF9wYXJlbnQtPmRfaW5vZGUsIG5hbWUsICZxc3RyLCBmYWxzZSk7CisJcmV0dXJuIGV4dDRfY2lfY29tcGFyZShpbm9kZSwgbmFtZSwgJnFzdHIsIGZhbHNlKTsKIH0KIAogc3RhdGljIGludCBleHQ0X2RfaGFzaChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBxc3RyICpzdHIpCkBAIC02ODUsNyArNjg2LDcgQEAgc3RhdGljIGludCBleHQ0X2RfaGFzaChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBxc3RyICpzdHIpCiAJdW5zaWduZWQgY2hhciAqbm9ybTsKIAlpbnQgbGVuLCByZXQgPSAwOwogCi0JaWYgKCFJU19DQVNFRk9MREVEKGRlbnRyeS0+ZF9pbm9kZSkpCisJaWYgKCFJU19DQVNFRk9MREVEKGRlbnRyeS0+ZF9pbm9kZSkgfHwgIXVtKQogCQlyZXR1cm4gMDsKIAogCW5vcm0gPSBrbWFsbG9jKFBBVEhfTUFYLCBHRlBfQVRPTUlDKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NC5oIGIvZnMvZXh0NC9leHQ0LmgKaW5kZXggOWM3ZjQwMy4uMDNkYjNlNyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHQ0LmgKKysrIGIvZnMvZXh0NC9leHQ0LmgKQEAgLTE4Niw2ICsxODYsMTQgQEAgc3RydWN0IGV4dDRfbWFwX2Jsb2NrcyB7CiB9OwogCiAvKgorICogQmxvY2sgdmFsaWRpdHkgY2hlY2tpbmcsIHN5c3RlbSB6b25lIHJidHJlZS4KKyAqLworc3RydWN0IGV4dDRfc3lzdGVtX2Jsb2NrcyB7CisJc3RydWN0IHJiX3Jvb3Qgcm9vdDsKKwlzdHJ1Y3QgcmN1X2hlYWQgcmN1OworfTsKKworLyoKICAqIEZsYWdzIGZvciBleHQ0X2lvX2VuZC0+ZmxhZ3MKICAqLwogI2RlZmluZQlFWFQ0X0lPX0VORF9VTldSSVRURU4JMHgwMDAxCkBAIC0yODUsNiArMjkzLDkgQEAgc3RydWN0IGV4dDRfaW9fc3VibWl0IHsKIAkJCQkgIH4oKGV4dDRfZnNibGtfdCkgKHMpLT5zX2NsdXN0ZXJfcmF0aW8gLSAxKSkKICNkZWZpbmUgRVhUNF9MQkxLX0NNQVNLKHMsIGxibGspICgobGJsaykgJgkJCQlcCiAJCQkJICB+KChleHQ0X2xibGtfdCkgKHMpLT5zX2NsdXN0ZXJfcmF0aW8gLSAxKSkKKy8qIEZpbGwgaW4gdGhlIGxvdyBiaXRzIHRvIGdldCB0aGUgbGFzdCBibG9jayBvZiB0aGUgY2x1c3RlciAqLworI2RlZmluZSBFWFQ0X0xCTEtfQ0ZJTEwoc2JpLCBsYmxrKSAoKGxibGspIHwJCQkJXAorCQkJCSAgICAoKGV4dDRfbGJsa190KSAoc2JpKS0+c19jbHVzdGVyX3JhdGlvIC0gMSkpCiAvKiBHZXQgdGhlIGNsdXN0ZXIgb2Zmc2V0ICovCiAjZGVmaW5lIEVYVDRfUEJMS19DT0ZGKHMsIHBibGspICgocGJsaykgJgkJCQlcCiAJCQkJICgoZXh0NF9mc2Jsa190KSAocyktPnNfY2x1c3Rlcl9yYXRpbyAtIDEpKQpAQCAtNjUzLDYgKzY2NCwxMCBAQCBlbnVtIHsKICNkZWZpbmUgRVhUNF9JT0NfU0VUX0VOQ1JZUFRJT05fUE9MSUNZCUZTX0lPQ19TRVRfRU5DUllQVElPTl9QT0xJQ1kKICNkZWZpbmUgRVhUNF9JT0NfR0VUX0VOQ1JZUFRJT05fUFdTQUxUCUZTX0lPQ19HRVRfRU5DUllQVElPTl9QV1NBTFQKICNkZWZpbmUgRVhUNF9JT0NfR0VUX0VOQ1JZUFRJT05fUE9MSUNZCUZTX0lPQ19HRVRfRU5DUllQVElPTl9QT0xJQ1kKKy8qIGlvY3RsIGNvZGVzIDE5LS0zOSBhcmUgcmVzZXJ2ZWQgZm9yIGZzY3J5cHQgKi8KKyNkZWZpbmUgRVhUNF9JT0NfQ0xFQVJfRVNfQ0FDSEUJCV9JTygnZicsIDQwKQorI2RlZmluZSBFWFQ0X0lPQ19HRVRTVEFURQkJX0lPVygnZicsIDQxLCBfX3UzMikKKyNkZWZpbmUgRVhUNF9JT0NfR0VUX0VTX0NBQ0hFCQlfSU9XUignZicsIDQyLCBzdHJ1Y3QgZmllbWFwKQogCiAjZGVmaW5lIEVYVDRfSU9DX0ZTR0VUWEFUVFIJCUZTX0lPQ19GU0dFVFhBVFRSCiAjZGVmaW5lIEVYVDRfSU9DX0ZTU0VUWEFUVFIJCUZTX0lPQ19GU1NFVFhBVFRSCkBAIC02NjYsNiArNjgxLDE2IEBAIGVudW0gewogI2RlZmluZSBFWFQ0X0dPSU5HX0ZMQUdTX0xPR0ZMVVNICQkweDEJLyogZmx1c2ggbG9nIGJ1dCBub3QgZGF0YSAqLwogI2RlZmluZSBFWFQ0X0dPSU5HX0ZMQUdTX05PTE9HRkxVU0gJCTB4MgkvKiBkb24ndCBmbHVzaCBsb2cgbm9yIGRhdGEgKi8KIAorLyoKKyAqIEZsYWdzIHJldHVybmVkIGJ5IEVYVDRfSU9DX0dFVFNUQVRFCisgKgorICogV2Ugb25seSBleHBvc2UgdG8gdXNlcnNwYWNlIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZSBmbGFncyBpbgorICogaV9zdGF0ZV9mbGFncworICovCisjZGVmaW5lIEVYVDRfU1RBVEVfRkxBR19FWFRfUFJFQ0FDSEVECTB4MDAwMDAwMDEKKyNkZWZpbmUgRVhUNF9TVEFURV9GTEFHX05FVwkJMHgwMDAwMDAwMgorI2RlZmluZSBFWFQ0X1NUQVRFX0ZMQUdfTkVXRU5UUlkJMHgwMDAwMDAwNAorI2RlZmluZSBFWFQ0X1NUQVRFX0ZMQUdfREFfQUxMT0NfQ0xPU0UJMHgwMDAwMDAwOAogCiAjaWYgZGVmaW5lZChfX0tFUk5FTF9fKSAmJiBkZWZpbmVkKENPTkZJR19DT01QQVQpCiAvKgpAQCAtNjgzLDYgKzcwOCwxMiBAQCBlbnVtIHsKICNkZWZpbmUgRVhUNF9JT0MzMl9TRVRWRVJTSU9OX09MRAlGU19JT0MzMl9TRVRWRVJTSU9OCiAjZW5kaWYKIAorLyoKKyAqIFJldHVybmVkIGJ5IEVYVDRfSU9DX0dFVF9FU19DQUNIRSBhcyBhbiBhZGRpdGlvbmFsIHBvc3NpYmxlIGZsYWcuCisgKiBJdCBpbmRpY2F0ZXMgdGhhdCB0aGUgZW50cnkgaW4gZXh0ZW50IHN0YXR1cyBjYWNoZSBpcyBmb3IgYSBob2xlLgorICovCisjZGVmaW5lIEVYVDRfRklFTUFQX0VYVEVOVF9IT0xFCQkweDA4MDAwMDAwCisKIC8qIE1heCBwaHlzaWNhbCBibG9jayB3ZSBjYW4gYWRkcmVzcyB3L28gZXh0ZW50cyAqLwogI2RlZmluZSBFWFQ0X01BWF9CTE9DS19GSUxFX1BIWVMJMHhGRkZGRkZGRgogCkBAIC04MTIsMzEgKzg0MywyMCBAQCBzdGF0aWMgaW5saW5lIF9fbGUzMiBleHQ0X2VuY29kZV9leHRyYV90aW1lKHN0cnVjdCB0aW1lc3BlYzY0ICp0aW1lKQogc3RhdGljIGlubGluZSB2b2lkIGV4dDRfZGVjb2RlX2V4dHJhX3RpbWUoc3RydWN0IHRpbWVzcGVjNjQgKnRpbWUsCiAJCQkJCSAgX19sZTMyIGV4dHJhKQogewotCWlmICh1bmxpa2VseShleHRyYSAmIGNwdV90b19sZTMyKEVYVDRfRVBPQ0hfTUFTSykpKSB7Ci0KLSNpZiAxCi0JCS8qIEhhbmRsZSBsZWdhY3kgZW5jb2Rpbmcgb2YgcHJlLTE5NzAgZGF0ZXMgd2l0aCBlcG9jaAotCQkgKiBiaXRzIDEsMS4gKFRoaXMgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgbWF5IGJlIHJlbW92ZWQKLQkJICogYXQgdGhlIGRpc2NyZXRpb24gb2YgdGhlIGV4dDQgZGV2ZWxvcGVycy4pCi0JCSAqLwotCQl1NjQgZXh0cmFfYml0cyA9IGxlMzJfdG9fY3B1KGV4dHJhKSAmIEVYVDRfRVBPQ0hfTUFTSzsKLQkJaWYgKGV4dHJhX2JpdHMgPT0gMyAmJiAoKHRpbWUtPnR2X3NlYykgJiAweDgwMDAwMDAwKSAhPSAwKQotCQkJZXh0cmFfYml0cyA9IDA7Ci0JCXRpbWUtPnR2X3NlYyArPSBleHRyYV9iaXRzIDw8IDMyOwotI2Vsc2UKKwlpZiAodW5saWtlbHkoZXh0cmEgJiBjcHVfdG9fbGUzMihFWFQ0X0VQT0NIX01BU0spKSkKIAkJdGltZS0+dHZfc2VjICs9ICh1NjQpKGxlMzJfdG9fY3B1KGV4dHJhKSAmIEVYVDRfRVBPQ0hfTUFTSykgPDwgMzI7Ci0jZW5kaWYKLQl9CiAJdGltZS0+dHZfbnNlYyA9IChsZTMyX3RvX2NwdShleHRyYSkgJiBFWFQ0X05TRUNfTUFTSykgPj4gRVhUNF9FUE9DSF9CSVRTOwogfQogCiAjZGVmaW5lIEVYVDRfSU5PREVfU0VUX1hUSU1FKHh0aW1lLCBpbm9kZSwgcmF3X2lub2RlKQkJCQlcCiBkbyB7CQkJCQkJCQkJCVwKLQkocmF3X2lub2RlKS0+eHRpbWUgPSBjcHVfdG9fbGUzMigoaW5vZGUpLT54dGltZS50dl9zZWMpOwkJXAogCWlmIChFWFQ0X0ZJVFNfSU5fSU5PREUocmF3X2lub2RlLCBFWFQ0X0koaW5vZGUpLCB4dGltZSAjIyBfZXh0cmEpKSAgICAge1wKKwkJKHJhd19pbm9kZSktPnh0aW1lID0gY3B1X3RvX2xlMzIoKGlub2RlKS0+eHRpbWUudHZfc2VjKTsJXAogCQkocmF3X2lub2RlKS0+eHRpbWUgIyMgX2V4dHJhID0JCQkJCVwKIAkJCQlleHQ0X2VuY29kZV9leHRyYV90aW1lKCYoaW5vZGUpLT54dGltZSk7CVwKIAkJfQkJCQkJCQkJXAorCWVsc2UJXAorCQkocmF3X2lub2RlKS0+eHRpbWUgPSBjcHVfdG9fbGUzMihjbGFtcF90KGludDMyX3QsIChpbm9kZSktPnh0aW1lLnR2X3NlYywgUzMyX01JTiwgUzMyX01BWCkpOwlcCiB9IHdoaWxlICgwKQogCiAjZGVmaW5lIEVYVDRfRUlOT0RFX1NFVF9YVElNRSh4dGltZSwgZWlub2RlLCByYXdfaW5vZGUpCQkJICAgICAgIFwKQEAgLTE0MjUsNyArMTQ0NSw3IEBAIHN0cnVjdCBleHQ0X3NiX2luZm8gewogCWludCBzX2pxdW90YV9mbXQ7CQkJLyogRm9ybWF0IG9mIHF1b3RhIHRvIHVzZSAqLwogI2VuZGlmCiAJdW5zaWduZWQgaW50IHNfd2FudF9leHRyYV9pc2l6ZTsgLyogTmV3IGlub2RlcyBzaG91bGQgcmVzZXJ2ZSAjIGJ5dGVzICovCi0Jc3RydWN0IHJiX3Jvb3Qgc3lzdGVtX2Jsa3M7CisJc3RydWN0IGV4dDRfc3lzdGVtX2Jsb2NrcyBfX3JjdSAqc3lzdGVtX2Jsa3M7CiAKICNpZmRlZiBFWFRFTlRTX1NUQVRTCiAJLyogZXh0NCBleHRlbnRzIHN0YXRzICovCkBAIC0xNjQzLDYgKzE2NjMsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGV4dDRfdmVyaXR5X2luX3Byb2dyZXNzKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAKICNkZWZpbmUgRVhUNF9HT09EX09MRF9JTk9ERV9TSVpFIDEyOAogCisjZGVmaW5lIEVYVDRfRVhUUkFfVElNRVNUQU1QX01BWAkoKChzNjQpMSA8PCAzNCkgLSAxICArIFMzMl9NSU4pCisjZGVmaW5lIEVYVDRfTk9OX0VYVFJBX1RJTUVTVEFNUF9NQVgJUzMyX01BWAorI2RlZmluZSBFWFQ0X1RJTUVTVEFNUF9NSU4JCVMzMl9NSU4KKwogLyoKICAqIEZlYXR1cmUgc2V0IGRlZmluaXRpb25zCiAgKi8KQEAgLTMyNjEsNiArMzI4NSw5IEBAIGV4dGVybiBpbnQgZXh0NF9leHRfY2hlY2tfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7CiBleHRlcm4gZXh0NF9sYmxrX3QgZXh0NF9leHRfbmV4dF9hbGxvY2F0ZWRfYmxvY2soc3RydWN0IGV4dDRfZXh0X3BhdGggKnBhdGgpOwogZXh0ZXJuIGludCBleHQ0X2ZpZW1hcChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICpmaWVpbmZvLAogCQkJX191NjQgc3RhcnQsIF9fdTY0IGxlbik7CitleHRlcm4gaW50IGV4dDRfZ2V0X2VzX2NhY2hlKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkgICAgIHN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8gKmZpZWluZm8sCisJCQkgICAgIF9fdTY0IHN0YXJ0LCBfX3U2NCBsZW4pOwogZXh0ZXJuIGludCBleHQ0X2V4dF9wcmVjYWNoZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGV4dGVybiBpbnQgZXh0NF9jb2xsYXBzZV9yYW5nZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuKTsKIGV4dGVybiBpbnQgZXh0NF9pbnNlcnRfcmFuZ2Uoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbik7CkBAIC0zMzUzLDYgKzMzODAsMTkgQEAgc3RhdGljIGlubGluZSB2b2lkIGV4dDRfY2xlYXJfaW9fdW53cml0dGVuX2ZsYWcoZXh0NF9pb19lbmRfdCAqaW9fZW5kKQogCiBleHRlcm4gY29uc3Qgc3RydWN0IGlvbWFwX29wcyBleHQ0X2lvbWFwX29wczsKIAorc3RhdGljIGlubGluZSBpbnQgZXh0NF9idWZmZXJfdXB0b2RhdGUoc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKK3sKKwkvKgorCSAqIElmIHRoZSBidWZmZXIgaGFzIHRoZSB3cml0ZSBlcnJvciBmbGFnLCB3ZSBoYXZlIGZhaWxlZAorCSAqIHRvIHdyaXRlIG91dCBkYXRhIGluIHRoZSBibG9jay4gIEluIHRoaXMgIGNhc2UsIHdlIGRvbid0CisJICogaGF2ZSB0byByZWFkIHRoZSBibG9jayBiZWNhdXNlIHdlIG1heSByZWFkIHRoZSBvbGQgZGF0YQorCSAqIHN1Y2Nlc3NmdWxseS4KKwkgKi8KKwlpZiAoIWJ1ZmZlcl91cHRvZGF0ZShiaCkgJiYgYnVmZmVyX3dyaXRlX2lvX2Vycm9yKGJoKSkKKwkJc2V0X2J1ZmZlcl91cHRvZGF0ZShiaCk7CisJcmV0dXJuIGJ1ZmZlcl91cHRvZGF0ZShiaCk7Cit9CisKICNlbmRpZgkvKiBfX0tFUk5FTF9fICovCiAKICNkZWZpbmUgRUZTQkFEQ1JDCUVCQURNU0cJCS8qIEJhZCBDUkMgZGV0ZWN0ZWQgKi8KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0ZW50cy5jIGIvZnMvZXh0NC9leHRlbnRzLmMKaW5kZXggOTIyNjZhMi4uZmIwZjk5ZCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHRlbnRzLmMKKysrIGIvZnMvZXh0NC9leHRlbnRzLmMKQEAgLTIzMTUsNiArMjMxNSw1MiBAQCBzdGF0aWMgaW50IGV4dDRfZmlsbF9maWVtYXBfZXh0ZW50cyhzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgZXh0NF9maWxsX2VzX2NhY2hlX2luZm8oc3RydWN0IGlub2RlICppbm9kZSwKKwkJCQkgICBleHQ0X2xibGtfdCBibG9jaywgZXh0NF9sYmxrX3QgbnVtLAorCQkJCSAgIHN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8gKmZpZWluZm8pCit7CisJZXh0NF9sYmxrX3QgbmV4dCwgZW5kID0gYmxvY2sgKyBudW0gLSAxOworCXN0cnVjdCBleHRlbnRfc3RhdHVzIGVzOworCXVuc2lnbmVkIGNoYXIgYmxrc2l6ZV9iaXRzID0gaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplX2JpdHM7CisJdW5zaWduZWQgaW50IGZsYWdzOworCWludCBlcnI7CisKKwl3aGlsZSAoYmxvY2sgPD0gZW5kKSB7CisJCW5leHQgPSAwOworCQlmbGFncyA9IDA7CisJCWlmICghZXh0NF9lc19sb29rdXBfZXh0ZW50KGlub2RlLCBibG9jaywgJm5leHQsICZlcykpCisJCQlicmVhazsKKwkJaWYgKGV4dDRfZXNfaXNfdW53cml0dGVuKCZlcykpCisJCQlmbGFncyB8PSBGSUVNQVBfRVhURU5UX1VOV1JJVFRFTjsKKwkJaWYgKGV4dDRfZXNfaXNfZGVsYXllZCgmZXMpKQorCQkJZmxhZ3MgfD0gKEZJRU1BUF9FWFRFTlRfREVMQUxMT0MgfAorCQkJCSAgRklFTUFQX0VYVEVOVF9VTktOT1dOKTsKKwkJaWYgKGV4dDRfZXNfaXNfaG9sZSgmZXMpKQorCQkJZmxhZ3MgfD0gRVhUNF9GSUVNQVBfRVhURU5UX0hPTEU7CisJCWlmIChuZXh0ID09IDApCisJCQlmbGFncyB8PSBGSUVNQVBfRVhURU5UX0xBU1Q7CisJCWlmIChmbGFncyAmIChGSUVNQVBfRVhURU5UX0RFTEFMTE9DfAorCQkJICAgICBFWFQ0X0ZJRU1BUF9FWFRFTlRfSE9MRSkpCisJCQllcy5lc19wYmxrID0gMDsKKwkJZWxzZQorCQkJZXMuZXNfcGJsayA9IGV4dDRfZXNfcGJsb2NrKCZlcyk7CisJCWVyciA9IGZpZW1hcF9maWxsX25leHRfZXh0ZW50KGZpZWluZm8sCisJCQkJKF9fdTY0KWVzLmVzX2xibGsgPDwgYmxrc2l6ZV9iaXRzLAorCQkJCShfX3U2NCllcy5lc19wYmxrIDw8IGJsa3NpemVfYml0cywKKwkJCQkoX191NjQpZXMuZXNfbGVuIDw8IGJsa3NpemVfYml0cywKKwkJCQlmbGFncyk7CisJCWlmIChuZXh0ID09IDApCisJCQlicmVhazsKKwkJYmxvY2sgPSBuZXh0OworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJCWlmIChlcnIgPT0gMSkKKwkJCXJldHVybiAwOworCX0KKwlyZXR1cm4gMDsKK30KKworCiAvKgogICogZXh0NF9leHRfZGV0ZXJtaW5lX2hvbGUgLSBkZXRlcm1pbmUgaG9sZSBhcm91bmQgZ2l2ZW4gYmxvY2sKICAqIEBpbm9kZToJaW5vZGUgd2UgbG9va3VwIGluCkBAIC0zODEzLDggKzM4NTksOCBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF91bndyaXR0ZW5fZXh0ZW50c19lbmRpbyhoYW5kbGVfdCAqaGFuZGxlLAogCSAqIGlsbGVnYWwuCiAJICovCiAJaWYgKGVlX2Jsb2NrICE9IG1hcC0+bV9sYmxrIHx8IGVlX2xlbiA+IG1hcC0+bV9sZW4pIHsKLSNpZmRlZiBFWFQ0X0RFQlVHCi0JCWV4dDRfd2FybmluZygiSW5vZGUgKCVsZCkgZmluaXNoZWQ6IGV4dGVudCBsb2dpY2FsIGJsb2NrICVsbHUsIgorI2lmZGVmIENPTkZJR19FWFQ0X0RFQlVHCisJCWV4dDRfd2FybmluZyhpbm9kZS0+aV9zYiwgIklub2RlICglbGQpIGZpbmlzaGVkOiBleHRlbnQgbG9naWNhbCBibG9jayAlbGx1LCIKIAkJCSAgICAgIiBsZW4gJXU7IElPIGxvZ2ljYWwgYmxvY2sgJWxsdSwgbGVuICV1IiwKIAkJCSAgICAgaW5vZGUtPmlfaW5vLCAodW5zaWduZWQgbG9uZyBsb25nKWVlX2Jsb2NrLCBlZV9sZW4sCiAJCQkgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpbWFwLT5tX2xibGssIG1hcC0+bV9sZW4pOwpAQCAtNTAxNyw4ICs1MDYzLDYgQEAgc3RhdGljIGludCBleHQ0X2ZpbmRfZGVsYXllZF9leHRlbnQoc3RydWN0IGlub2RlICppbm9kZSwKIAogCXJldHVybiBuZXh0X2RlbDsKIH0KLS8qIGZpZW1hcCBmbGFncyB3ZSBjYW4gaGFuZGxlIHNwZWNpZmllZCBoZXJlICovCi0jZGVmaW5lIEVYVDRfRklFTUFQX0ZMQUdTCShGSUVNQVBfRkxBR19TWU5DfEZJRU1BUF9GTEFHX1hBVFRSKQogCiBzdGF0aWMgaW50IGV4dDRfeGF0dHJfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQkJc3RydWN0IGZpZW1hcF9leHRlbnRfaW5mbyAqZmllaW5mbykKQEAgLTUwNTUsMTAgKzUwOTksMTYgQEAgc3RhdGljIGludCBleHQ0X3hhdHRyX2ZpZW1hcChzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCXJldHVybiAoZXJyb3IgPCAwID8gZXJyb3IgOiAwKTsKIH0KIAotaW50IGV4dDRfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8gKmZpZWluZm8sCi0JCV9fdTY0IHN0YXJ0LCBfX3U2NCBsZW4pCitzdGF0aWMgaW50IF9leHQ0X2ZpZW1hcChzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJc3RydWN0IGZpZW1hcF9leHRlbnRfaW5mbyAqZmllaW5mbywKKwkJCV9fdTY0IHN0YXJ0LCBfX3U2NCBsZW4sCisJCQlpbnQgKCpmaWxsKShzdHJ1Y3QgaW5vZGUgKiwgZXh0NF9sYmxrX3QsCisJCQkJICAgIGV4dDRfbGJsa190LAorCQkJCSAgICBzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICopKQogewogCWV4dDRfbGJsa190IHN0YXJ0X2JsazsKKwl1MzIgZXh0NF9maWVtYXBfZmxhZ3MgPSBGSUVNQVBfRkxBR19TWU5DfEZJRU1BUF9GTEFHX1hBVFRSOworCiAJaW50IGVycm9yID0gMDsKIAogCWlmIChleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpIHsKQEAgLTUwNzUsMTQgKzUxMjUsMTggQEAgaW50IGV4dDRfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8gKmZpZWluZm8sCiAJCWVycm9yID0gZXh0NF9leHRfcHJlY2FjaGUoaW5vZGUpOwogCQlpZiAoZXJyb3IpCiAJCQlyZXR1cm4gZXJyb3I7CisJCWZpZWluZm8tPmZpX2ZsYWdzICY9IH5GSUVNQVBfRkxBR19DQUNIRTsKIAl9CiAKIAkvKiBmYWxsYmFjayB0byBnZW5lcmljIGhlcmUgaWYgbm90IGluIGV4dGVudHMgZm10ICovCi0JaWYgKCEoZXh0NF90ZXN0X2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUykpKQorCWlmICghKGV4dDRfdGVzdF9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0VYVEVOVFMpKSAmJgorCSAgICBmaWxsID09IGV4dDRfZmlsbF9maWVtYXBfZXh0ZW50cykKIAkJcmV0dXJuIGdlbmVyaWNfYmxvY2tfZmllbWFwKGlub2RlLCBmaWVpbmZvLCBzdGFydCwgbGVuLAogCQkJZXh0NF9nZXRfYmxvY2spOwogCi0JaWYgKGZpZW1hcF9jaGVja19mbGFncyhmaWVpbmZvLCBFWFQ0X0ZJRU1BUF9GTEFHUykpCisJaWYgKGZpbGwgPT0gZXh0NF9maWxsX2VzX2NhY2hlX2luZm8pCisJCWV4dDRfZmllbWFwX2ZsYWdzICY9IEZJRU1BUF9GTEFHX1hBVFRSOworCWlmIChmaWVtYXBfY2hlY2tfZmxhZ3MoZmllaW5mbywgZXh0NF9maWVtYXBfZmxhZ3MpKQogCQlyZXR1cm4gLUVCQURSOwogCiAJaWYgKGZpZWluZm8tPmZpX2ZsYWdzICYgRklFTUFQX0ZMQUdfWEFUVFIpIHsKQEAgLTUxMDEsMTIgKzUxNTUsMzYgQEAgaW50IGV4dDRfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8gKmZpZWluZm8sCiAJCSAqIFdhbGsgdGhlIGV4dGVudCB0cmVlIGdhdGhlcmluZyBleHRlbnQgaW5mb3JtYXRpb24KIAkJICogYW5kIHB1c2hpbmcgZXh0ZW50cyBiYWNrIHRvIHRoZSB1c2VyLgogCQkgKi8KLQkJZXJyb3IgPSBleHQ0X2ZpbGxfZmllbWFwX2V4dGVudHMoaW5vZGUsIHN0YXJ0X2JsaywKLQkJCQkJCSBsZW5fYmxrcywgZmllaW5mbyk7CisJCWVycm9yID0gZmlsbChpbm9kZSwgc3RhcnRfYmxrLCBsZW5fYmxrcywgZmllaW5mbyk7CiAJfQogCXJldHVybiBlcnJvcjsKIH0KIAoraW50IGV4dDRfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8gKmZpZWluZm8sCisJCV9fdTY0IHN0YXJ0LCBfX3U2NCBsZW4pCit7CisJcmV0dXJuIF9leHQ0X2ZpZW1hcChpbm9kZSwgZmllaW5mbywgc3RhcnQsIGxlbiwKKwkJCSAgICBleHQ0X2ZpbGxfZmllbWFwX2V4dGVudHMpOworfQorCitpbnQgZXh0NF9nZXRfZXNfY2FjaGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpZW1hcF9leHRlbnRfaW5mbyAqZmllaW5mbywKKwkJICAgICAgX191NjQgc3RhcnQsIF9fdTY0IGxlbikKK3sKKwlpZiAoZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKSB7CisJCWludCBoYXNfaW5saW5lOworCisJCWRvd25fcmVhZCgmRVhUNF9JKGlub2RlKS0+eGF0dHJfc2VtKTsKKwkJaGFzX2lubGluZSA9IGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKTsKKwkJdXBfcmVhZCgmRVhUNF9JKGlub2RlKS0+eGF0dHJfc2VtKTsKKwkJaWYgKGhhc19pbmxpbmUpCisJCQlyZXR1cm4gMDsKKwl9CisKKwlyZXR1cm4gX2V4dDRfZmllbWFwKGlub2RlLCBmaWVpbmZvLCBzdGFydCwgbGVuLAorCQkJICAgIGV4dDRfZmlsbF9lc19jYWNoZV9pbmZvKTsKK30KKworCiAvKgogICogZXh0NF9hY2Nlc3NfcGF0aDoKICAqIEZ1bmN0aW9uIHRvIGFjY2VzcyB0aGUgcGF0aCBidWZmZXIgZm9yIG1hcmtpbmcgaXQgZGlydHkuCmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dGVudHNfc3RhdHVzLmMgYi9mcy9leHQ0L2V4dGVudHNfc3RhdHVzLmMKaW5kZXggNzUyMWRlMi4uZDk5NmI0NCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHRlbnRzX3N0YXR1cy5jCisrKyBiL2ZzL2V4dDQvZXh0ZW50c19zdGF0dXMuYwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqZXh0NF9wZW5kaW5nX2NhY2hlcDsKIAogc3RhdGljIGludCBfX2VzX2luc2VydF9leHRlbnQoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGV4dGVudF9zdGF0dXMgKm5ld2VzKTsKIHN0YXRpYyBpbnQgX19lc19yZW1vdmVfZXh0ZW50KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IGxibGssCi0JCQkgICAgICBleHQ0X2xibGtfdCBlbmQpOworCQkJICAgICAgZXh0NF9sYmxrX3QgZW5kLCBpbnQgKnJlc2VydmVkKTsKIHN0YXRpYyBpbnQgZXNfcmVjbGFpbV9leHRlbnRzKHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpLCBpbnQgKm5yX3RvX3NjYW4pOwogc3RhdGljIGludCBfX2VzX3NocmluayhzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksIGludCBucl90b19zY2FuLAogCQkgICAgICAgc3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqbG9ja2VkX2VpKTsKQEAgLTgzNiw3ICs4MzYsNyBAQCBpbnQgZXh0NF9lc19pbnNlcnRfZXh0ZW50KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IGxibGssCiAJZXh0NF9lc19pbnNlcnRfZXh0ZW50X2NoZWNrKGlub2RlLCAmbmV3ZXMpOwogCiAJd3JpdGVfbG9jaygmRVhUNF9JKGlub2RlKS0+aV9lc19sb2NrKTsKLQllcnIgPSBfX2VzX3JlbW92ZV9leHRlbnQoaW5vZGUsIGxibGssIGVuZCk7CisJZXJyID0gX19lc19yZW1vdmVfZXh0ZW50KGlub2RlLCBsYmxrLCBlbmQsIE5VTEwpOwogCWlmIChlcnIgIT0gMCkKIAkJZ290byBlcnJvcjsKIHJldHJ5OgpAQCAtODk5LDYgKzg5OSw3IEBAIHZvaWQgZXh0NF9lc19jYWNoZV9leHRlbnQoc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3QgbGJsaywKICAqIFJldHVybjogMSBvbiBmb3VuZCwgMCBvbiBub3QKICAqLwogaW50IGV4dDRfZXNfbG9va3VwX2V4dGVudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAorCQkJICBleHQ0X2xibGtfdCAqbmV4dF9sYmxrLAogCQkJICBzdHJ1Y3QgZXh0ZW50X3N0YXR1cyAqZXMpCiB7CiAJc3RydWN0IGV4dDRfZXNfdHJlZSAqdHJlZTsKQEAgLTk0Nyw5ICs5NDgsMTggQEAgaW50IGV4dDRfZXNfbG9va3VwX2V4dGVudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAogCQllcy0+ZXNfcGJsayA9IGVzMS0+ZXNfcGJsazsKIAkJaWYgKCFleHQ0X2VzX2lzX3JlZmVyZW5jZWQoZXMxKSkKIAkJCWV4dDRfZXNfc2V0X3JlZmVyZW5jZWQoZXMxKTsKLQkJc3RhdHMtPmVzX3N0YXRzX2NhY2hlX2hpdHMrKzsKKwkJcGVyY3B1X2NvdW50ZXJfaW5jKCZzdGF0cy0+ZXNfc3RhdHNfY2FjaGVfaGl0cyk7CisJCWlmIChuZXh0X2xibGspIHsKKwkJCW5vZGUgPSByYl9uZXh0KCZlczEtPnJiX25vZGUpOworCQkJaWYgKG5vZGUpIHsKKwkJCQllczEgPSByYl9lbnRyeShub2RlLCBzdHJ1Y3QgZXh0ZW50X3N0YXR1cywKKwkJCQkJICAgICAgIHJiX25vZGUpOworCQkJCSpuZXh0X2xibGsgPSBlczEtPmVzX2xibGs7CisJCQl9IGVsc2UKKwkJCQkqbmV4dF9sYmxrID0gMDsKKwkJfQogCX0gZWxzZSB7Ci0JCXN0YXRzLT5lc19zdGF0c19jYWNoZV9taXNzZXMrKzsKKwkJcGVyY3B1X2NvdW50ZXJfaW5jKCZzdGF0cy0+ZXNfc3RhdHNfY2FjaGVfbWlzc2VzKTsKIAl9CiAKIAlyZWFkX3VubG9jaygmRVhUNF9JKGlub2RlKS0+aV9lc19sb2NrKTsKQEAgLTk1OCw4ICs5NjgsMzIyIEBAIGludCBleHQ0X2VzX2xvb2t1cF9leHRlbnQoc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3QgbGJsaywKIAlyZXR1cm4gZm91bmQ7CiB9CiAKK3N0cnVjdCByc3ZkX2NvdW50IHsKKwlpbnQgbmRlbG9ubHk7CisJYm9vbCBmaXJzdF9kb19sYmxrX2ZvdW5kOworCWV4dDRfbGJsa190IGZpcnN0X2RvX2xibGs7CisJZXh0NF9sYmxrX3QgbGFzdF9kb19sYmxrOworCXN0cnVjdCBleHRlbnRfc3RhdHVzICpsZWZ0X2VzOworCWJvb2wgcGFydGlhbDsKKwlleHQ0X2xibGtfdCBsY2x1OworfTsKKworLyoKKyAqIGluaXRfcnN2ZCAtIGluaXRpYWxpemUgcmVzZXJ2ZWQgY291bnQgZGF0YSBiZWZvcmUgcmVtb3ZpbmcgYmxvY2sgcmFuZ2UKKyAqCSAgICAgICBpbiBmaWxlIGZyb20gZXh0ZW50IHN0YXR1cyB0cmVlCisgKgorICogQGlub2RlIC0gZmlsZSBjb250YWluaW5nIHJhbmdlCisgKiBAbGJsayAtIGZpcnN0IGJsb2NrIGluIHJhbmdlCisgKiBAZXMgLSBwb2ludGVyIHRvIGZpcnN0IGV4dGVudCBpbiByYW5nZQorICogQHJjIC0gcG9pbnRlciB0byByZXNlcnZlZCBjb3VudCBkYXRhCisgKgorICogQXNzdW1lcyBlcyBpcyBub3QgTlVMTAorICovCitzdGF0aWMgdm9pZCBpbml0X3JzdmQoc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3QgbGJsaywKKwkJICAgICAgc3RydWN0IGV4dGVudF9zdGF0dXMgKmVzLCBzdHJ1Y3QgcnN2ZF9jb3VudCAqcmMpCit7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS0+aV9zYik7CisJc3RydWN0IHJiX25vZGUgKm5vZGU7CisKKwlyYy0+bmRlbG9ubHkgPSAwOworCisJLyoKKwkgKiBmb3IgYmlnYWxsb2MsIG5vdGUgdGhlIGZpcnN0IGRlbG9ubHkgYmxvY2sgaW4gdGhlIHJhbmdlIGhhcyBub3QKKwkgKiBiZWVuIGZvdW5kLCByZWNvcmQgdGhlIGV4dGVudCBjb250YWluaW5nIHRoZSBibG9jayB0byB0aGUgbGVmdCBvZgorCSAqIHRoZSByZWdpb24gdG8gYmUgcmVtb3ZlZCwgaWYgYW55LCBhbmQgbm90ZSB0aGF0IHRoZXJlJ3Mgbm8gcGFydGlhbAorCSAqIGNsdXN0ZXIgdG8gdHJhY2sKKwkgKi8KKwlpZiAoc2JpLT5zX2NsdXN0ZXJfcmF0aW8gPiAxKSB7CisJCXJjLT5maXJzdF9kb19sYmxrX2ZvdW5kID0gZmFsc2U7CisJCWlmIChsYmxrID4gZXMtPmVzX2xibGspIHsKKwkJCXJjLT5sZWZ0X2VzID0gZXM7CisJCX0gZWxzZSB7CisJCQlub2RlID0gcmJfcHJldigmZXMtPnJiX25vZGUpOworCQkJcmMtPmxlZnRfZXMgPSBub2RlID8gcmJfZW50cnkobm9kZSwKKwkJCQkJCSAgICAgIHN0cnVjdCBleHRlbnRfc3RhdHVzLAorCQkJCQkJICAgICAgcmJfbm9kZSkgOiBOVUxMOworCQl9CisJCXJjLT5wYXJ0aWFsID0gZmFsc2U7CisJfQorfQorCisvKgorICogY291bnRfcnN2ZCAtIGNvdW50IHRoZSBjbHVzdGVycyBjb250YWluaW5nIGRlbGF5ZWQgYW5kIG5vdCB1bndyaXR0ZW4KKyAqCQkoZGVsb25seSkgYmxvY2tzIGluIGEgcmFuZ2Ugd2l0aGluIGFuIGV4dGVudCBhbmQgYWRkIHRvCisgKgkgICAgICAgIHRoZSBydW5uaW5nIHRhbGx5IGluIHJzdmRfY291bnQKKyAqCisgKiBAaW5vZGUgLSBmaWxlIGNvbnRhaW5pbmcgZXh0ZW50CisgKiBAbGJsayAtIGZpcnN0IGJsb2NrIGluIHJhbmdlCisgKiBAbGVuIC0gbGVuZ3RoIG9mIHJhbmdlIGluIGJsb2NrcworICogQGVzIC0gcG9pbnRlciB0byBleHRlbnQgY29udGFpbmluZyBjbHVzdGVycyB0byBiZSBjb3VudGVkCisgKiBAcmMgLSBwb2ludGVyIHRvIHJlc2VydmVkIGNvdW50IGRhdGEKKyAqCisgKiBUcmFja3MgcGFydGlhbCBjbHVzdGVycyBmb3VuZCBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgZXh0ZW50cyBzbworICogdGhleSBhcmVuJ3Qgb3ZlcmNvdW50ZWQgd2hlbiB0aGV5IHNwYW4gYWRqYWNlbnQgZXh0ZW50cworICovCitzdGF0aWMgdm9pZCBjb3VudF9yc3ZkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IGxibGssIGxvbmcgbGVuLAorCQkgICAgICAgc3RydWN0IGV4dGVudF9zdGF0dXMgKmVzLCBzdHJ1Y3QgcnN2ZF9jb3VudCAqcmMpCit7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS0+aV9zYik7CisJZXh0NF9sYmxrX3QgaSwgZW5kLCBuY2x1OworCisJaWYgKCFleHQ0X2VzX2lzX2RlbG9ubHkoZXMpKQorCQlyZXR1cm47CisKKwlXQVJOX09OKGxlbiA8PSAwKTsKKworCWlmIChzYmktPnNfY2x1c3Rlcl9yYXRpbyA9PSAxKSB7CisJCXJjLT5uZGVsb25seSArPSAoaW50KSBsZW47CisJCXJldHVybjsKKwl9CisKKwkvKiBiaWdhbGxvYyAqLworCisJaSA9IChsYmxrIDwgZXMtPmVzX2xibGspID8gZXMtPmVzX2xibGsgOiBsYmxrOworCWVuZCA9IGxibGsgKyAoZXh0NF9sYmxrX3QpIGxlbiAtIDE7CisJZW5kID0gKGVuZCA+IGV4dDRfZXNfZW5kKGVzKSkgPyBleHQ0X2VzX2VuZChlcykgOiBlbmQ7CisKKwkvKiByZWNvcmQgdGhlIGZpcnN0IGJsb2NrIG9mIHRoZSBmaXJzdCBkZWxvbmx5IGV4dGVudCBzZWVuICovCisJaWYgKHJjLT5maXJzdF9kb19sYmxrX2ZvdW5kID09IGZhbHNlKSB7CisJCXJjLT5maXJzdF9kb19sYmxrID0gaTsKKwkJcmMtPmZpcnN0X2RvX2xibGtfZm91bmQgPSB0cnVlOworCX0KKworCS8qIHVwZGF0ZSB0aGUgbGFzdCBsYmxrIGluIHRoZSByZWdpb24gc2VlbiBzbyBmYXIgKi8KKwlyYy0+bGFzdF9kb19sYmxrID0gZW5kOworCisJLyoKKwkgKiBpZiB3ZSdyZSB0cmFja2luZyBhIHBhcnRpYWwgY2x1c3RlciBhbmQgdGhlIGN1cnJlbnQgZXh0ZW50CisJICogZG9lc24ndCBzdGFydCB3aXRoIGl0LCBjb3VudCBpdCBhbmQgc3RvcCB0cmFja2luZworCSAqLworCWlmIChyYy0+cGFydGlhbCAmJiAocmMtPmxjbHUgIT0gRVhUNF9CMkMoc2JpLCBpKSkpIHsKKwkJcmMtPm5kZWxvbmx5Kys7CisJCXJjLT5wYXJ0aWFsID0gZmFsc2U7CisJfQorCisJLyoKKwkgKiBpZiB0aGUgZmlyc3QgY2x1c3RlciBkb2Vzbid0IHN0YXJ0IG9uIGEgY2x1c3RlciBib3VuZGFyeSBidXQKKwkgKiBlbmRzIG9uIG9uZSwgY291bnQgaXQKKwkgKi8KKwlpZiAoRVhUNF9MQkxLX0NPRkYoc2JpLCBpKSAhPSAwKSB7CisJCWlmIChlbmQgPj0gRVhUNF9MQkxLX0NGSUxMKHNiaSwgaSkpIHsKKwkJCXJjLT5uZGVsb25seSsrOworCQkJcmMtPnBhcnRpYWwgPSBmYWxzZTsKKwkJCWkgPSBFWFQ0X0xCTEtfQ0ZJTEwoc2JpLCBpKSArIDE7CisJCX0KKwl9CisKKwkvKgorCSAqIGlmIHRoZSBjdXJyZW50IGNsdXN0ZXIgc3RhcnRzIG9uIGEgY2x1c3RlciBib3VuZGFyeSwgY291bnQgdGhlCisJICogbnVtYmVyIG9mIHdob2xlIGRlbG9ubHkgY2x1c3RlcnMgaW4gdGhlIGV4dGVudAorCSAqLworCWlmICgoaSArIHNiaS0+c19jbHVzdGVyX3JhdGlvIC0gMSkgPD0gZW5kKSB7CisJCW5jbHUgPSAoZW5kIC0gaSArIDEpID4+IHNiaS0+c19jbHVzdGVyX2JpdHM7CisJCXJjLT5uZGVsb25seSArPSBuY2x1OworCQlpICs9IG5jbHUgPDwgc2JpLT5zX2NsdXN0ZXJfYml0czsKKwl9CisKKwkvKgorCSAqIHN0YXJ0IHRyYWNraW5nIGEgcGFydGlhbCBjbHVzdGVyIGlmIHRoZXJlJ3MgYSBwYXJ0aWFsIGF0IHRoZSBlbmQKKwkgKiBvZiB0aGUgY3VycmVudCBleHRlbnQgYW5kIHdlJ3JlIG5vdCBhbHJlYWR5IHRyYWNraW5nIG9uZQorCSAqLworCWlmICghcmMtPnBhcnRpYWwgJiYgaSA8PSBlbmQpIHsKKwkJcmMtPnBhcnRpYWwgPSB0cnVlOworCQlyYy0+bGNsdSA9IEVYVDRfQjJDKHNiaSwgaSk7CisJfQorfQorCisvKgorICogX19wcl90cmVlX3NlYXJjaCAtIHNlYXJjaCBmb3IgYSBwZW5kaW5nIGNsdXN0ZXIgcmVzZXJ2YXRpb24KKyAqCisgKiBAcm9vdCAtIHJvb3Qgb2YgcGVuZGluZyByZXNlcnZhdGlvbiB0cmVlCisgKiBAbGNsdSAtIGxvZ2ljYWwgY2x1c3RlciB0byBzZWFyY2ggZm9yCisgKgorICogUmV0dXJucyB0aGUgcGVuZGluZyByZXNlcnZhdGlvbiBmb3IgdGhlIGNsdXN0ZXIgaWRlbnRpZmllZCBieSBAbGNsdQorICogaWYgZm91bmQuICBJZiBub3QsIHJldHVybnMgYSByZXNlcnZhdGlvbiBmb3IgdGhlIG5leHQgY2x1c3RlciBpZiBhbnksCisgKiBhbmQgaWYgbm90LCByZXR1cm5zIE5VTEwuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgcGVuZGluZ19yZXNlcnZhdGlvbiAqX19wcl90cmVlX3NlYXJjaChzdHJ1Y3QgcmJfcm9vdCAqcm9vdCwKKwkJCQkJCSAgICBleHQ0X2xibGtfdCBsY2x1KQoreworCXN0cnVjdCByYl9ub2RlICpub2RlID0gcm9vdC0+cmJfbm9kZTsKKwlzdHJ1Y3QgcGVuZGluZ19yZXNlcnZhdGlvbiAqcHIgPSBOVUxMOworCisJd2hpbGUgKG5vZGUpIHsKKwkJcHIgPSByYl9lbnRyeShub2RlLCBzdHJ1Y3QgcGVuZGluZ19yZXNlcnZhdGlvbiwgcmJfbm9kZSk7CisJCWlmIChsY2x1IDwgcHItPmxjbHUpCisJCQlub2RlID0gbm9kZS0+cmJfbGVmdDsKKwkJZWxzZSBpZiAobGNsdSA+IHByLT5sY2x1KQorCQkJbm9kZSA9IG5vZGUtPnJiX3JpZ2h0OworCQllbHNlCisJCQlyZXR1cm4gcHI7CisJfQorCWlmIChwciAmJiBsY2x1IDwgcHItPmxjbHUpCisJCXJldHVybiBwcjsKKwlpZiAocHIgJiYgbGNsdSA+IHByLT5sY2x1KSB7CisJCW5vZGUgPSByYl9uZXh0KCZwci0+cmJfbm9kZSk7CisJCXJldHVybiBub2RlID8gcmJfZW50cnkobm9kZSwgc3RydWN0IHBlbmRpbmdfcmVzZXJ2YXRpb24sCisJCQkJICAgICAgIHJiX25vZGUpIDogTlVMTDsKKwl9CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBnZXRfcnN2ZCAtIGNhbGN1bGF0ZXMgYW5kIHJldHVybnMgdGhlIG51bWJlciBvZiBjbHVzdGVyIHJlc2VydmF0aW9ucyB0byBiZQorICoJICAgICAgcmVsZWFzZWQgd2hlbiByZW1vdmluZyBhIGJsb2NrIHJhbmdlIGZyb20gdGhlIGV4dGVudCBzdGF0dXMgdHJlZQorICoJICAgICAgYW5kIHJlbGVhc2VzIGFueSBwZW5kaW5nIHJlc2VydmF0aW9ucyB3aXRoaW4gdGhlIHJhbmdlCisgKgorICogQGlub2RlIC0gZmlsZSBjb250YWluaW5nIGJsb2NrIHJhbmdlCisgKiBAZW5kIC0gbGFzdCBibG9jayBpbiByYW5nZQorICogQHJpZ2h0X2VzIC0gcG9pbnRlciB0byBleHRlbnQgY29udGFpbmluZyBuZXh0IGJsb2NrIGJleW9uZCBlbmQgb3IgTlVMTAorICogQHJjIC0gcG9pbnRlciB0byByZXNlcnZlZCBjb3VudCBkYXRhCisgKgorICogVGhlIG51bWJlciBvZiByZXNlcnZhdGlvbnMgdG8gYmUgcmVsZWFzZWQgaXMgZXF1YWwgdG8gdGhlIG51bWJlciBvZgorICogY2x1c3RlcnMgY29udGFpbmluZyBkZWxheWVkIGFuZCBub3QgdW53cml0dGVuIChkZWxvbmx5KSBibG9ja3Mgd2l0aGluCisgKiB0aGUgcmFuZ2UsIG1pbnVzIHRoZSBudW1iZXIgb2YgY2x1c3RlcnMgc3RpbGwgY29udGFpbmluZyBkZWxvbmx5IGJsb2NrcworICogYXQgdGhlIGVuZHMgb2YgdGhlIHJhbmdlLCBhbmQgbWludXMgdGhlIG51bWJlciBvZiBwZW5kaW5nIHJlc2VydmF0aW9ucworICogd2l0aGluIHRoZSByYW5nZS4KKyAqLworc3RhdGljIHVuc2lnbmVkIGludCBnZXRfcnN2ZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBlbmQsCisJCQkgICAgIHN0cnVjdCBleHRlbnRfc3RhdHVzICpyaWdodF9lcywKKwkJCSAgICAgc3RydWN0IHJzdmRfY291bnQgKnJjKQoreworCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IEVYVDRfU0IoaW5vZGUtPmlfc2IpOworCXN0cnVjdCBwZW5kaW5nX3Jlc2VydmF0aW9uICpwcjsKKwlzdHJ1Y3QgZXh0NF9wZW5kaW5nX3RyZWUgKnRyZWUgPSAmRVhUNF9JKGlub2RlKS0+aV9wZW5kaW5nX3RyZWU7CisJc3RydWN0IHJiX25vZGUgKm5vZGU7CisJZXh0NF9sYmxrX3QgZmlyc3RfbGNsdSwgbGFzdF9sY2x1OworCWJvb2wgbGVmdF9kZWxvbmx5LCByaWdodF9kZWxvbmx5LCBjb3VudF9wZW5kaW5nOworCXN0cnVjdCBleHRlbnRfc3RhdHVzICplczsKKworCWlmIChzYmktPnNfY2x1c3Rlcl9yYXRpbyA+IDEpIHsKKwkJLyogY291bnQgYW55IHJlbWFpbmluZyBwYXJ0aWFsIGNsdXN0ZXIgKi8KKwkJaWYgKHJjLT5wYXJ0aWFsKQorCQkJcmMtPm5kZWxvbmx5Kys7CisKKwkJaWYgKHJjLT5uZGVsb25seSA9PSAwKQorCQkJcmV0dXJuIDA7CisKKwkJZmlyc3RfbGNsdSA9IEVYVDRfQjJDKHNiaSwgcmMtPmZpcnN0X2RvX2xibGspOworCQlsYXN0X2xjbHUgPSBFWFQ0X0IyQyhzYmksIHJjLT5sYXN0X2RvX2xibGspOworCisJCS8qCisJCSAqIGRlY3JlYXNlIHRoZSBkZWxvbmx5IGNvdW50IGJ5IHRoZSBudW1iZXIgb2YgY2x1c3RlcnMgYXQgdGhlCisJCSAqIGVuZHMgb2YgdGhlIHJhbmdlIHRoYXQgc3RpbGwgY29udGFpbiBkZWxvbmx5IGJsb2NrcyAtCisJCSAqIHRoZXNlIGNsdXN0ZXJzIHN0aWxsIG5lZWQgdG8gYmUgcmVzZXJ2ZWQKKwkJICovCisJCWxlZnRfZGVsb25seSA9IHJpZ2h0X2RlbG9ubHkgPSBmYWxzZTsKKworCQllcyA9IHJjLT5sZWZ0X2VzOworCQl3aGlsZSAoZXMgJiYgZXh0NF9lc19lbmQoZXMpID49CisJCSAgICAgICBFWFQ0X0xCTEtfQ01BU0soc2JpLCByYy0+Zmlyc3RfZG9fbGJsaykpIHsKKwkJCWlmIChleHQ0X2VzX2lzX2RlbG9ubHkoZXMpKSB7CisJCQkJcmMtPm5kZWxvbmx5LS07CisJCQkJbGVmdF9kZWxvbmx5ID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW5vZGUgPSByYl9wcmV2KCZlcy0+cmJfbm9kZSk7CisJCQlpZiAoIW5vZGUpCisJCQkJYnJlYWs7CisJCQllcyA9IHJiX2VudHJ5KG5vZGUsIHN0cnVjdCBleHRlbnRfc3RhdHVzLCByYl9ub2RlKTsKKwkJfQorCQlpZiAocmlnaHRfZXMgJiYgKCFsZWZ0X2RlbG9ubHkgfHwgZmlyc3RfbGNsdSAhPSBsYXN0X2xjbHUpKSB7CisJCQlpZiAoZW5kIDwgZXh0NF9lc19lbmQocmlnaHRfZXMpKSB7CisJCQkJZXMgPSByaWdodF9lczsKKwkJCX0gZWxzZSB7CisJCQkJbm9kZSA9IHJiX25leHQoJnJpZ2h0X2VzLT5yYl9ub2RlKTsKKwkJCQllcyA9IG5vZGUgPyByYl9lbnRyeShub2RlLCBzdHJ1Y3QgZXh0ZW50X3N0YXR1cywKKwkJCQkJCSAgICAgcmJfbm9kZSkgOiBOVUxMOworCQkJfQorCQkJd2hpbGUgKGVzICYmIGVzLT5lc19sYmxrIDw9CisJCQkgICAgICAgRVhUNF9MQkxLX0NGSUxMKHNiaSwgcmMtPmxhc3RfZG9fbGJsaykpIHsKKwkJCQlpZiAoZXh0NF9lc19pc19kZWxvbmx5KGVzKSkgeworCQkJCQlyYy0+bmRlbG9ubHktLTsKKwkJCQkJcmlnaHRfZGVsb25seSA9IHRydWU7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlub2RlID0gcmJfbmV4dCgmZXMtPnJiX25vZGUpOworCQkJCWlmICghbm9kZSkKKwkJCQkJYnJlYWs7CisJCQkJZXMgPSByYl9lbnRyeShub2RlLCBzdHJ1Y3QgZXh0ZW50X3N0YXR1cywKKwkJCQkJICAgICAgcmJfbm9kZSk7CisJCQl9CisJCX0KKworCQkvKgorCQkgKiBEZXRlcm1pbmUgdGhlIGJsb2NrIHJhbmdlIHRoYXQgc2hvdWxkIGJlIHNlYXJjaGVkIGZvcgorCQkgKiBwZW5kaW5nIHJlc2VydmF0aW9ucywgaWYgYW55LiAgQ2x1c3RlcnMgb24gdGhlIGVuZHMgb2YgdGhlCisJCSAqIG9yaWdpbmFsIHJlbW92ZWQgcmFuZ2UgY29udGFpbmluZyBkZWxvbmx5IGJsb2NrcyBhcmUKKwkJICogZXhjbHVkZWQuICBUaGV5J3ZlIGFscmVhZHkgYmVlbiBhY2NvdW50ZWQgZm9yIGFuZCBpdCdzIG5vdAorCQkgKiBwb3NzaWJsZSB0byBkZXRlcm1pbmUgaWYgYW4gYXNzb2NpYXRlZCBwZW5kaW5nIHJlc2VydmF0aW9uCisJCSAqIHNob3VsZCBiZSByZWxlYXNlZCB3aXRoIHRoZSBpbmZvcm1hdGlvbiBhdmFpbGFibGUgaW4gdGhlCisJCSAqIGV4dGVudHMgc3RhdHVzIHRyZWUuCisJCSAqLworCQlpZiAoZmlyc3RfbGNsdSA9PSBsYXN0X2xjbHUpIHsKKwkJCWlmIChsZWZ0X2RlbG9ubHkgfCByaWdodF9kZWxvbmx5KQorCQkJCWNvdW50X3BlbmRpbmcgPSBmYWxzZTsKKwkJCWVsc2UKKwkJCQljb3VudF9wZW5kaW5nID0gdHJ1ZTsKKwkJfSBlbHNlIHsKKwkJCWlmIChsZWZ0X2RlbG9ubHkpCisJCQkJZmlyc3RfbGNsdSsrOworCQkJaWYgKHJpZ2h0X2RlbG9ubHkpCisJCQkJbGFzdF9sY2x1LS07CisJCQlpZiAoZmlyc3RfbGNsdSA8PSBsYXN0X2xjbHUpCisJCQkJY291bnRfcGVuZGluZyA9IHRydWU7CisJCQllbHNlCisJCQkJY291bnRfcGVuZGluZyA9IGZhbHNlOworCQl9CisKKwkJLyoKKwkJICogYSBwZW5kaW5nIHJlc2VydmF0aW9uIGZvdW5kIGJldHdlZW4gZmlyc3RfbGNsdSBhbmQgbGFzdF9sY2x1CisJCSAqIHJlcHJlc2VudHMgYW4gYWxsb2NhdGVkIGNsdXN0ZXIgdGhhdCBjb250YWluZWQgYXQgbGVhc3Qgb25lCisJCSAqIGRlbG9ubHkgYmxvY2ssIHNvIHRoZSBkZWxvbmx5IHRvdGFsIG11c3QgYmUgcmVkdWNlZCBieSBvbmUKKwkJICogZm9yIGVhY2ggcGVuZGluZyByZXNlcnZhdGlvbiBmb3VuZCBhbmQgcmVsZWFzZWQKKwkJICovCisJCWlmIChjb3VudF9wZW5kaW5nKSB7CisJCQlwciA9IF9fcHJfdHJlZV9zZWFyY2goJnRyZWUtPnJvb3QsIGZpcnN0X2xjbHUpOworCQkJd2hpbGUgKHByICYmIHByLT5sY2x1IDw9IGxhc3RfbGNsdSkgeworCQkJCXJjLT5uZGVsb25seS0tOworCQkJCW5vZGUgPSByYl9uZXh0KCZwci0+cmJfbm9kZSk7CisJCQkJcmJfZXJhc2UoJnByLT5yYl9ub2RlLCAmdHJlZS0+cm9vdCk7CisJCQkJa21lbV9jYWNoZV9mcmVlKGV4dDRfcGVuZGluZ19jYWNoZXAsIHByKTsKKwkJCQlpZiAoIW5vZGUpCisJCQkJCWJyZWFrOworCQkJCXByID0gcmJfZW50cnkobm9kZSwgc3RydWN0IHBlbmRpbmdfcmVzZXJ2YXRpb24sCisJCQkJCSAgICAgIHJiX25vZGUpOworCQkJfQorCQl9CisJfQorCXJldHVybiByYy0+bmRlbG9ubHk7Cit9CisKKworLyoKKyAqIF9fZXNfcmVtb3ZlX2V4dGVudCAtIHJlbW92ZXMgYmxvY2sgcmFuZ2UgZnJvbSBleHRlbnQgc3RhdHVzIHRyZWUKKyAqCisgKiBAaW5vZGUgLSBmaWxlIGNvbnRhaW5pbmcgcmFuZ2UKKyAqIEBsYmxrIC0gZmlyc3QgYmxvY2sgaW4gcmFuZ2UKKyAqIEBlbmQgLSBsYXN0IGJsb2NrIGluIHJhbmdlCisgKiBAcmVzZXJ2ZWQgLSBudW1iZXIgb2YgY2x1c3RlciByZXNlcnZhdGlvbnMgcmVsZWFzZWQKKyAqCisgKiBJZiBAcmVzZXJ2ZWQgaXMgbm90IE5VTEwgYW5kIGRlbGF5ZWQgYWxsb2NhdGlvbiBpcyBlbmFibGVkLCBjb3VudHMKKyAqIGJsb2NrL2NsdXN0ZXIgcmVzZXJ2YXRpb25zIGZyZWVkIGJ5IHJlbW92aW5nIHJhbmdlIGFuZCBpZiBiaWdhbGxvYworICogZW5hYmxlZCBjYW5jZWxzIHBlbmRpbmcgcmVzZXJ2YXRpb25zIGFzIG5lZWRlZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3MsCisgKiBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KIHN0YXRpYyBpbnQgX19lc19yZW1vdmVfZXh0ZW50KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IGxibGssCi0JCQkgICAgICBleHQ0X2xibGtfdCBlbmQpCisJCQkgICAgICBleHQ0X2xibGtfdCBlbmQsIGludCAqcmVzZXJ2ZWQpCiB7CiAJc3RydWN0IGV4dDRfZXNfdHJlZSAqdHJlZSA9ICZFWFQ0X0koaW5vZGUpLT5pX2VzX3RyZWU7CiAJc3RydWN0IHJiX25vZGUgKm5vZGU7CkBAIC05NjgsOSArMTI5MiwxNCBAQCBzdGF0aWMgaW50IF9fZXNfcmVtb3ZlX2V4dGVudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAogCWV4dDRfbGJsa190IGxlbjEsIGxlbjI7CiAJZXh0NF9mc2Jsa190IGJsb2NrOwogCWludCBlcnI7CisJYm9vbCBjb3VudF9yZXNlcnZlZCA9IHRydWU7CisJc3RydWN0IHJzdmRfY291bnQgcmM7CiAKKwlpZiAocmVzZXJ2ZWQgPT0gTlVMTCB8fCAhdGVzdF9vcHQoaW5vZGUtPmlfc2IsIERFTEFMTE9DKSkKKwkJY291bnRfcmVzZXJ2ZWQgPSBmYWxzZTsKIHJldHJ5OgogCWVyciA9IDA7CisKIAllcyA9IF9fZXNfdHJlZV9zZWFyY2goJnRyZWUtPnJvb3QsIGxibGspOwogCWlmICghZXMpCiAJCWdvdG8gb3V0OwpAQCAtOTc5LDYgKzEzMDgsOCBAQCBzdGF0aWMgaW50IF9fZXNfcmVtb3ZlX2V4dGVudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAogCiAJLyogU2ltcGx5IGludmFsaWRhdGUgY2FjaGVfZXMuICovCiAJdHJlZS0+Y2FjaGVfZXMgPSBOVUxMOworCWlmIChjb3VudF9yZXNlcnZlZCkKKwkJaW5pdF9yc3ZkKGlub2RlLCBsYmxrLCBlcywgJnJjKTsKIAogCW9yaWdfZXMuZXNfbGJsayA9IGVzLT5lc19sYmxrOwogCW9yaWdfZXMuZXNfbGVuID0gZXMtPmVzX2xlbjsKQEAgLTEwMjAsMTAgKzEzNTEsMTYgQEAgc3RhdGljIGludCBfX2VzX3JlbW92ZV9leHRlbnQoc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3QgbGJsaywKIAkJCQlleHQ0X2VzX3N0b3JlX3BibG9jayhlcywgYmxvY2spOwogCQkJfQogCQl9CisJCWlmIChjb3VudF9yZXNlcnZlZCkKKwkJCWNvdW50X3JzdmQoaW5vZGUsIGxibGssIG9yaWdfZXMuZXNfbGVuIC0gbGVuMSAtIGxlbjIsCisJCQkJICAgJm9yaWdfZXMsICZyYyk7CiAJCWdvdG8gb3V0OwogCX0KIAogCWlmIChsZW4xID4gMCkgeworCQlpZiAoY291bnRfcmVzZXJ2ZWQpCisJCQljb3VudF9yc3ZkKGlub2RlLCBsYmxrLCBvcmlnX2VzLmVzX2xlbiAtIGxlbjEsCisJCQkJICAgJm9yaWdfZXMsICZyYyk7CiAJCW5vZGUgPSByYl9uZXh0KCZlcy0+cmJfbm9kZSk7CiAJCWlmIChub2RlKQogCQkJZXMgPSByYl9lbnRyeShub2RlLCBzdHJ1Y3QgZXh0ZW50X3N0YXR1cywgcmJfbm9kZSk7CkBAIC0xMDMyLDYgKzEzNjksOCBAQCBzdGF0aWMgaW50IF9fZXNfcmVtb3ZlX2V4dGVudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAogCX0KIAogCXdoaWxlIChlcyAmJiBleHQ0X2VzX2VuZChlcykgPD0gZW5kKSB7CisJCWlmIChjb3VudF9yZXNlcnZlZCkKKwkJCWNvdW50X3JzdmQoaW5vZGUsIGVzLT5lc19sYmxrLCBlcy0+ZXNfbGVuLCBlcywgJnJjKTsKIAkJbm9kZSA9IHJiX25leHQoJmVzLT5yYl9ub2RlKTsKIAkJcmJfZXJhc2UoJmVzLT5yYl9ub2RlLCAmdHJlZS0+cm9vdCk7CiAJCWV4dDRfZXNfZnJlZV9leHRlbnQoaW5vZGUsIGVzKTsKQEAgLTEwNDYsNiArMTM4NSw5IEBAIHN0YXRpYyBpbnQgX19lc19yZW1vdmVfZXh0ZW50KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IGxibGssCiAJCWV4dDRfbGJsa190IG9yaWdfbGVuID0gZXMtPmVzX2xlbjsKIAogCQlsZW4xID0gZXh0NF9lc19lbmQoZXMpIC0gZW5kOworCQlpZiAoY291bnRfcmVzZXJ2ZWQpCisJCQljb3VudF9yc3ZkKGlub2RlLCBlcy0+ZXNfbGJsaywgb3JpZ19sZW4gLSBsZW4xLAorCQkJCSAgIGVzLCAmcmMpOwogCQllcy0+ZXNfbGJsayA9IGVuZCArIDE7CiAJCWVzLT5lc19sZW4gPSBsZW4xOwogCQlpZiAoZXh0NF9lc19pc193cml0dGVuKGVzKSB8fCBleHQ0X2VzX2lzX3Vud3JpdHRlbihlcykpIHsKQEAgLTEwNTQsMjAgKzEzOTYsMjggQEAgc3RhdGljIGludCBfX2VzX3JlbW92ZV9leHRlbnQoc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3QgbGJsaywKIAkJfQogCX0KIAorCWlmIChjb3VudF9yZXNlcnZlZCkKKwkJKnJlc2VydmVkID0gZ2V0X3JzdmQoaW5vZGUsIGVuZCwgZXMsICZyYyk7CiBvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIAogLyoKLSAqIGV4dDRfZXNfcmVtb3ZlX2V4dGVudCgpIHJlbW92ZXMgYSBzcGFjZSBmcm9tIGEgZXh0ZW50IHN0YXR1cyB0cmVlLgorICogZXh0NF9lc19yZW1vdmVfZXh0ZW50IC0gcmVtb3ZlcyBibG9jayByYW5nZSBmcm9tIGV4dGVudCBzdGF0dXMgdHJlZQogICoKLSAqIFJldHVybiAwIG9uIHN1Y2Nlc3MsIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqIEBpbm9kZSAtIGZpbGUgY29udGFpbmluZyByYW5nZQorICogQGxibGsgLSBmaXJzdCBibG9jayBpbiByYW5nZQorICogQGxlbiAtIG51bWJlciBvZiBibG9ja3MgdG8gcmVtb3ZlCisgKgorICogUmVkdWNlcyBibG9jay9jbHVzdGVyIHJlc2VydmF0aW9uIGNvdW50IGFuZCBmb3IgYmlnYWxsb2MgY2FuY2VscyBwZW5kaW5nCisgKiByZXNlcnZhdGlvbnMgYXMgbmVlZGVkLiBSZXR1cm5zIDAgb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgogICovCiBpbnQgZXh0NF9lc19yZW1vdmVfZXh0ZW50KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IGxibGssCiAJCQkgIGV4dDRfbGJsa190IGxlbikKIHsKIAlleHQ0X2xibGtfdCBlbmQ7CiAJaW50IGVyciA9IDA7CisJaW50IHJlc2VydmVkID0gMDsKIAogCXRyYWNlX2V4dDRfZXNfcmVtb3ZlX2V4dGVudChpbm9kZSwgbGJsaywgbGVuKTsKIAllc19kZWJ1ZygicmVtb3ZlIFsldS8ldSkgZnJvbSBleHRlbnQgc3RhdHVzIHRyZWUgb2YgaW5vZGUgJWx1XG4iLApAQCAtMTA4NSw5ICsxNDM1LDEwIEBAIGludCBleHQ0X2VzX3JlbW92ZV9leHRlbnQoc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3QgbGJsaywKIAkgKiBpcyByZWNsYWltZWQuCiAJICovCiAJd3JpdGVfbG9jaygmRVhUNF9JKGlub2RlKS0+aV9lc19sb2NrKTsKLQllcnIgPSBfX2VzX3JlbW92ZV9leHRlbnQoaW5vZGUsIGxibGssIGVuZCk7CisJZXJyID0gX19lc19yZW1vdmVfZXh0ZW50KGlub2RlLCBsYmxrLCBlbmQsICZyZXNlcnZlZCk7CiAJd3JpdGVfdW5sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2VzX2xvY2spOwogCWV4dDRfZXNfcHJpbnRfdHJlZShpbm9kZSk7CisJZXh0NF9kYV9yZWxlYXNlX3NwYWNlKGlub2RlLCByZXNlcnZlZCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtMTIzNSw5ICsxNTg2LDkgQEAgaW50IGV4dDRfc2VxX2VzX3Nocmlua2VyX2luZm9fc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdikKIAlzZXFfcHJpbnRmKHNlcSwgInN0YXRzOlxuICAlbGxkIG9iamVjdHNcbiAgJWxsZCByZWNsYWltYWJsZSBvYmplY3RzXG4iLAogCQkgICBwZXJjcHVfY291bnRlcl9zdW1fcG9zaXRpdmUoJmVzX3N0YXRzLT5lc19zdGF0c19hbGxfY250KSwKIAkJICAgcGVyY3B1X2NvdW50ZXJfc3VtX3Bvc2l0aXZlKCZlc19zdGF0cy0+ZXNfc3RhdHNfc2hrX2NudCkpOwotCXNlcV9wcmludGYoc2VxLCAiICAlbHUvJWx1IGNhY2hlIGhpdHMvbWlzc2VzXG4iLAotCQkgICBlc19zdGF0cy0+ZXNfc3RhdHNfY2FjaGVfaGl0cywKLQkJICAgZXNfc3RhdHMtPmVzX3N0YXRzX2NhY2hlX21pc3Nlcyk7CisJc2VxX3ByaW50ZihzZXEsICIgICVsbGQvJWxsZCBjYWNoZSBoaXRzL21pc3Nlc1xuIiwKKwkJICAgcGVyY3B1X2NvdW50ZXJfc3VtX3Bvc2l0aXZlKCZlc19zdGF0cy0+ZXNfc3RhdHNfY2FjaGVfaGl0cyksCisJCSAgIHBlcmNwdV9jb3VudGVyX3N1bV9wb3NpdGl2ZSgmZXNfc3RhdHMtPmVzX3N0YXRzX2NhY2hlX21pc3NlcykpOwogCWlmIChpbm9kZV9jbnQpCiAJCXNlcV9wcmludGYoc2VxLCAiICAlZCBpbm9kZXMgb24gbGlzdFxuIiwgaW5vZGVfY250KTsKIApAQCAtMTI2NCwzNSArMTYxNSw0NiBAQCBpbnQgZXh0NF9lc19yZWdpc3Rlcl9zaHJpbmtlcihzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkpCiAJc2JpLT5zX2VzX25yX2lub2RlID0gMDsKIAlzcGluX2xvY2tfaW5pdCgmc2JpLT5zX2VzX2xvY2spOwogCXNiaS0+c19lc19zdGF0cy5lc19zdGF0c19zaHJ1bmsgPSAwOwotCXNiaS0+c19lc19zdGF0cy5lc19zdGF0c19jYWNoZV9oaXRzID0gMDsKLQlzYmktPnNfZXNfc3RhdHMuZXNfc3RhdHNfY2FjaGVfbWlzc2VzID0gMDsKKwllcnIgPSBwZXJjcHVfY291bnRlcl9pbml0KCZzYmktPnNfZXNfc3RhdHMuZXNfc3RhdHNfY2FjaGVfaGl0cywgMCwKKwkJCQkgIEdGUF9LRVJORUwpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisJZXJyID0gcGVyY3B1X2NvdW50ZXJfaW5pdCgmc2JpLT5zX2VzX3N0YXRzLmVzX3N0YXRzX2NhY2hlX21pc3NlcywgMCwKKwkJCQkgIEdGUF9LRVJORUwpOworCWlmIChlcnIpCisJCWdvdG8gZXJyMTsKIAlzYmktPnNfZXNfc3RhdHMuZXNfc3RhdHNfc2Nhbl90aW1lID0gMDsKIAlzYmktPnNfZXNfc3RhdHMuZXNfc3RhdHNfbWF4X3NjYW5fdGltZSA9IDA7CiAJZXJyID0gcGVyY3B1X2NvdW50ZXJfaW5pdCgmc2JpLT5zX2VzX3N0YXRzLmVzX3N0YXRzX2FsbF9jbnQsIDAsIEdGUF9LRVJORUwpOwogCWlmIChlcnIpCi0JCXJldHVybiBlcnI7CisJCWdvdG8gZXJyMjsKIAllcnIgPSBwZXJjcHVfY291bnRlcl9pbml0KCZzYmktPnNfZXNfc3RhdHMuZXNfc3RhdHNfc2hrX2NudCwgMCwgR0ZQX0tFUk5FTCk7CiAJaWYgKGVycikKLQkJZ290byBlcnIxOworCQlnb3RvIGVycjM7CiAKIAlzYmktPnNfZXNfc2hyaW5rZXIuc2Nhbl9vYmplY3RzID0gZXh0NF9lc19zY2FuOwogCXNiaS0+c19lc19zaHJpbmtlci5jb3VudF9vYmplY3RzID0gZXh0NF9lc19jb3VudDsKIAlzYmktPnNfZXNfc2hyaW5rZXIuc2Vla3MgPSBERUZBVUxUX1NFRUtTOwogCWVyciA9IHJlZ2lzdGVyX3Nocmlua2VyKCZzYmktPnNfZXNfc2hyaW5rZXIpOwogCWlmIChlcnIpCi0JCWdvdG8gZXJyMjsKKwkJZ290byBlcnI0OwogCiAJcmV0dXJuIDA7Ci0KLWVycjI6CitlcnI0OgogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19lc19zdGF0cy5lc19zdGF0c19zaGtfY250KTsKLWVycjE6CitlcnIzOgogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19lc19zdGF0cy5lc19zdGF0c19hbGxfY250KTsKK2VycjI6CisJcGVyY3B1X2NvdW50ZXJfZGVzdHJveSgmc2JpLT5zX2VzX3N0YXRzLmVzX3N0YXRzX2NhY2hlX21pc3Nlcyk7CitlcnIxOgorCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19lc19zdGF0cy5lc19zdGF0c19jYWNoZV9oaXRzKTsKIAlyZXR1cm4gZXJyOwogfQogCiB2b2lkIGV4dDRfZXNfdW5yZWdpc3Rlcl9zaHJpbmtlcihzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkpCiB7CisJcGVyY3B1X2NvdW50ZXJfZGVzdHJveSgmc2JpLT5zX2VzX3N0YXRzLmVzX3N0YXRzX2NhY2hlX2hpdHMpOworCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19lc19zdGF0cy5lc19zdGF0c19jYWNoZV9taXNzZXMpOwogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19lc19zdGF0cy5lc19zdGF0c19hbGxfY250KTsKIAlwZXJjcHVfY291bnRlcl9kZXN0cm95KCZzYmktPnNfZXNfc3RhdHMuZXNfc3RhdHNfc2hrX2NudCk7CiAJdW5yZWdpc3Rlcl9zaHJpbmtlcigmc2JpLT5zX2VzX3Nocmlua2VyKTsKQEAgLTEzMTcsNiArMTY3OSw3IEBAIHN0YXRpYyBpbnQgZXNfZG9fcmVjbGFpbV9leHRlbnRzKHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpLCBleHQ0X2xibGtfdCBlbmQsCiAJZXMgPSBfX2VzX3RyZWVfc2VhcmNoKCZ0cmVlLT5yb290LCBlaS0+aV9lc19zaHJpbmtfbGJsayk7CiAJaWYgKCFlcykKIAkJZ290byBvdXRfd3JhcDsKKwogCXdoaWxlICgqbnJfdG9fc2NhbiA+IDApIHsKIAkJaWYgKGVzLT5lc19sYmxrID4gZW5kKSB7CiAJCQllaS0+aV9lc19zaHJpbmtfbGJsayA9IGVuZCArIDE7CkBAIC0xMzc0LDYgKzE3MzcsMzQgQEAgc3RhdGljIGludCBlc19yZWNsYWltX2V4dGVudHMoc3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWksIGludCAqbnJfdG9fc2NhbikKIAlyZXR1cm4gbnJfc2hydW5rOwogfQogCisvKgorICogQ2FsbGVkIHRvIHN1cHBvcnQgRVhUNF9JT0NfQ0xFQVJfRVNfQ0FDSEUuICBXZSBjYW4gb25seSByZW1vdmUKKyAqIGRpc2NyZXRpb25hcnkgZW50cmllcyBmcm9tIHRoZSBleHRlbnQgc3RhdHVzIGNhY2hlLiAgKFNvbWUgZW50cmllcworICogbXVzdCBiZSBwcmVzZW50IGZvciBwcm9wZXIgb3BlcmF0aW9ucy4pCisgKi8KK3ZvaWQgZXh0NF9jbGVhcl9pbm9kZV9lcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworCXN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpID0gRVhUNF9JKGlub2RlKTsKKwlzdHJ1Y3QgZXh0ZW50X3N0YXR1cyAqZXM7CisJc3RydWN0IGV4dDRfZXNfdHJlZSAqdHJlZTsKKwlzdHJ1Y3QgcmJfbm9kZSAqbm9kZTsKKworCXdyaXRlX2xvY2soJmVpLT5pX2VzX2xvY2spOworCXRyZWUgPSAmRVhUNF9JKGlub2RlKS0+aV9lc190cmVlOworCXRyZWUtPmNhY2hlX2VzID0gTlVMTDsKKwlub2RlID0gcmJfZmlyc3QoJnRyZWUtPnJvb3QpOworCXdoaWxlIChub2RlKSB7CisJCWVzID0gcmJfZW50cnkobm9kZSwgc3RydWN0IGV4dGVudF9zdGF0dXMsIHJiX25vZGUpOworCQlub2RlID0gcmJfbmV4dChub2RlKTsKKwkJaWYgKCFleHQ0X2VzX2lzX2RlbGF5ZWQoZXMpKSB7CisJCQlyYl9lcmFzZSgmZXMtPnJiX25vZGUsICZ0cmVlLT5yb290KTsKKwkJCWV4dDRfZXNfZnJlZV9leHRlbnQoaW5vZGUsIGVzKTsKKwkJfQorCX0KKwlleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX0VYVF9QUkVDQUNIRUQpOworCXdyaXRlX3VubG9jaygmZWktPmlfZXNfbG9jayk7Cit9CisKICNpZmRlZiBFU19ERUJVR19fCiBzdGF0aWMgdm9pZCBleHQ0X3ByaW50X3BlbmRpbmdfdHJlZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewpAQCAtMTU5MCw3ICsxOTgxLDcgQEAgaW50IGV4dDRfZXNfaW5zZXJ0X2RlbGF5ZWRfYmxvY2soc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3QgbGJsaywKIAogCXdyaXRlX2xvY2soJkVYVDRfSShpbm9kZSktPmlfZXNfbG9jayk7CiAKLQllcnIgPSBfX2VzX3JlbW92ZV9leHRlbnQoaW5vZGUsIGxibGssIGxibGspOworCWVyciA9IF9fZXNfcmVtb3ZlX2V4dGVudChpbm9kZSwgbGJsaywgbGJsaywgTlVMTCk7CiAJaWYgKGVyciAhPSAwKQogCQlnb3RvIGVycm9yOwogcmV0cnk6CkBAIC0xNzc5LDkzICsyMTcwLDMgQEAgc3RhdGljIHZvaWQgX19yZXZpc2VfcGVuZGluZyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAogCQkJX19yZW1vdmVfcGVuZGluZyhpbm9kZSwgbGFzdCk7CiAJfQogfQotCi0vKgotICogZXh0NF9lc19yZW1vdmVfYmxrcyAtIHJlbW92ZSBibG9jayByYW5nZSBmcm9tIGV4dGVudHMgc3RhdHVzIHRyZWUgYW5kCi0gKiAgICAgICAgICAgICAgICAgICAgICAgcmVkdWNlIHJlc2VydmF0aW9uIGNvdW50IG9yIGNhbmNlbCBwZW5kaW5nCi0gKiAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2YXRpb24gYXMgbmVlZGVkCi0gKgotICogQGlub2RlIC0gZmlsZSBjb250YWluaW5nIHJhbmdlCi0gKiBAbGJsayAtIGZpcnN0IGJsb2NrIGluIHJhbmdlCi0gKiBAbGVuIC0gbnVtYmVyIG9mIGJsb2NrcyB0byByZW1vdmUKLSAqCi0gKi8KLXZvaWQgZXh0NF9lc19yZW1vdmVfYmxrcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAotCQkJIGV4dDRfbGJsa190IGxlbikKLXsKLQlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKGlub2RlLT5pX3NiKTsKLQl1bnNpZ25lZCBpbnQgY2x1X3NpemUsIHJlc2VydmVkID0gMDsKLQlleHQ0X2xibGtfdCBsYXN0X2xjbHUsIGZpcnN0LCBsZW5ndGgsIHJlbWFpbmRlciwgbGFzdDsKLQlib29sIGRlbG9ubHk7Ci0JaW50IGVyciA9IDA7Ci0Jc3RydWN0IHBlbmRpbmdfcmVzZXJ2YXRpb24gKnByOwotCXN0cnVjdCBleHQ0X3BlbmRpbmdfdHJlZSAqdHJlZTsKLQotCS8qCi0JICogUHJvY2VzcyBjbHVzdGVyIGJ5IGNsdXN0ZXIgZm9yIGJpZ2FsbG9jIC0gdGhlcmUgbWF5IGJlIHVwIHRvCi0JICogdHdvIGNsdXN0ZXJzIGluIGEgNGsgcGFnZSB3aXRoIGEgMWsgYmxvY2sgc2l6ZSBhbmQgdHdvIGJsb2NrcwotCSAqIHBlciBjbHVzdGVyLiAgQWxzbyBuZWNlc3NhcnkgZm9yIHN5c3RlbXMgd2l0aCBsYXJnZXIgcGFnZSBzaXplcwotCSAqIGFuZCBwb3RlbnRpYWxseSBsYXJnZXIgYmxvY2sgc2l6ZXMuCi0JICovCi0JY2x1X3NpemUgPSBzYmktPnNfY2x1c3Rlcl9yYXRpbzsKLQlsYXN0X2xjbHUgPSBFWFQ0X0IyQyhzYmksIGxibGsgKyBsZW4gLSAxKTsKLQotCXdyaXRlX2xvY2soJkVYVDRfSShpbm9kZSktPmlfZXNfbG9jayk7Ci0KLQlmb3IgKGZpcnN0ID0gbGJsaywgcmVtYWluZGVyID0gbGVuOwotCSAgICAgcmVtYWluZGVyID4gMDsKLQkgICAgIGZpcnN0ICs9IGxlbmd0aCwgcmVtYWluZGVyIC09IGxlbmd0aCkgewotCi0JCWlmIChFWFQ0X0IyQyhzYmksIGZpcnN0KSA9PSBsYXN0X2xjbHUpCi0JCQlsZW5ndGggPSByZW1haW5kZXI7Ci0JCWVsc2UKLQkJCWxlbmd0aCA9IGNsdV9zaXplIC0gRVhUNF9MQkxLX0NPRkYoc2JpLCBmaXJzdCk7Ci0KLQkJLyoKLQkJICogVGhlIEJIX0RlbGF5IGZsYWcsIHdoaWNoIHRyaWdnZXJzIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24sCi0JCSAqIGFuZCB0aGUgY29udGVudHMgb2YgdGhlIGV4dGVudHMgc3RhdHVzIHRyZWUgY2FuIGJlCi0JCSAqIGluY29uc2lzdGVudCBkdWUgdG8gd3JpdGVwYWdlcyBhY3Rpdml0eS4gU28sIG5vdGUgd2hldGhlcgotCQkgKiB0aGUgYmxvY2tzIHRvIGJlIHJlbW92ZWQgYWN0dWFsbHkgYmVsb25nIHRvIGFuIGV4dGVudCB3aXRoCi0JCSAqIGRlbGF5ZWQgb25seSBzdGF0dXMuCi0JCSAqLwotCQlkZWxvbmx5ID0gX19lc19zY2FuX2NsdShpbm9kZSwgJmV4dDRfZXNfaXNfZGVsb25seSwgZmlyc3QpOwotCi0JCS8qCi0JCSAqIGJlY2F1c2Ugb2YgdGhlIHdyaXRlcGFnZXMgZWZmZWN0LCB3cml0dGVuIGFuZCB1bndyaXR0ZW4KLQkJICogYmxvY2tzIGNvdWxkIGJlIHJlbW92ZWQgaGVyZQotCQkgKi8KLQkJbGFzdCA9IGZpcnN0ICsgbGVuZ3RoIC0gMTsKLQkJZXJyID0gX19lc19yZW1vdmVfZXh0ZW50KGlub2RlLCBmaXJzdCwgbGFzdCk7Ci0JCWlmIChlcnIpCi0JCQlleHQ0X3dhcm5pbmcoaW5vZGUtPmlfc2IsCi0JCQkJICAgICAiJXM6IGNvdWxkbid0IHJlbW92ZSBwYWdlIChlcnIgPSAlZCkiLAotCQkJCSAgICAgX19mdW5jX18sIGVycik7Ci0KLQkJLyogbm9uLWJpZ2FsbG9jIGNhc2U6IHNpbXBseSBjb3VudCB0aGUgY2x1c3RlciBmb3IgcmVsZWFzZSAqLwotCQlpZiAoc2JpLT5zX2NsdXN0ZXJfcmF0aW8gPT0gMSAmJiBkZWxvbmx5KSB7Ci0JCQlyZXNlcnZlZCsrOwotCQkJY29udGludWU7Ci0JCX0KLQotCQkvKgotCQkgKiBiaWdhbGxvYyBjYXNlOiBpZiBhbGwgZGVsYXllZCBhbGxvY2F0ZWQgb25seSBibG9ja3MgaGF2ZQotCQkgKiBqdXN0IGJlZW4gcmVtb3ZlZCBmcm9tIGEgY2x1c3RlciwgZWl0aGVyIGNhbmNlbCBhIHBlbmRpbmcKLQkJICogcmVzZXJ2YXRpb24gaWYgaXQgZXhpc3RzIG9yIGNvdW50IGEgY2x1c3RlciBmb3IgcmVsZWFzZQotCQkgKi8KLQkJaWYgKGRlbG9ubHkgJiYKLQkJICAgICFfX2VzX3NjYW5fY2x1KGlub2RlLCAmZXh0NF9lc19pc19kZWxvbmx5LCBmaXJzdCkpIHsKLQkJCXByID0gX19nZXRfcGVuZGluZyhpbm9kZSwgRVhUNF9CMkMoc2JpLCBmaXJzdCkpOwotCQkJaWYgKHByICE9IE5VTEwpIHsKLQkJCQl0cmVlID0gJkVYVDRfSShpbm9kZSktPmlfcGVuZGluZ190cmVlOwotCQkJCXJiX2VyYXNlKCZwci0+cmJfbm9kZSwgJnRyZWUtPnJvb3QpOwotCQkJCWttZW1fY2FjaGVfZnJlZShleHQ0X3BlbmRpbmdfY2FjaGVwLCBwcik7Ci0JCQl9IGVsc2UgewotCQkJCXJlc2VydmVkKys7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQl3cml0ZV91bmxvY2soJkVYVDRfSShpbm9kZSktPmlfZXNfbG9jayk7Ci0KLQlleHQ0X2RhX3JlbGVhc2Vfc3BhY2UoaW5vZGUsIHJlc2VydmVkKTsKLX0KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0ZW50c19zdGF0dXMuaCBiL2ZzL2V4dDQvZXh0ZW50c19zdGF0dXMuaAppbmRleCAxMzFhOGI3Li44MjUzMTNjIDEwMDY0NAotLS0gYS9mcy9leHQ0L2V4dGVudHNfc3RhdHVzLmgKKysrIGIvZnMvZXh0NC9leHRlbnRzX3N0YXR1cy5oCkBAIC03MCw4ICs3MCw4IEBAIHN0cnVjdCBleHQ0X2VzX3RyZWUgewogCiBzdHJ1Y3QgZXh0NF9lc19zdGF0cyB7CiAJdW5zaWduZWQgbG9uZyBlc19zdGF0c19zaHJ1bms7Ci0JdW5zaWduZWQgbG9uZyBlc19zdGF0c19jYWNoZV9oaXRzOwotCXVuc2lnbmVkIGxvbmcgZXNfc3RhdHNfY2FjaGVfbWlzc2VzOworCXN0cnVjdCBwZXJjcHVfY291bnRlciBlc19zdGF0c19jYWNoZV9oaXRzOworCXN0cnVjdCBwZXJjcHVfY291bnRlciBlc19zdGF0c19jYWNoZV9taXNzZXM7CiAJdTY0IGVzX3N0YXRzX3NjYW5fdGltZTsKIAl1NjQgZXNfc3RhdHNfbWF4X3NjYW5fdGltZTsKIAlzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgZXNfc3RhdHNfYWxsX2NudDsKQEAgLTE0MCw2ICsxNDAsNyBAQCBleHRlcm4gdm9pZCBleHQ0X2VzX2ZpbmRfZXh0ZW50X3JhbmdlKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQkJICAgICAgZXh0NF9sYmxrX3QgbGJsaywgZXh0NF9sYmxrX3QgZW5kLAogCQkJCSAgICAgIHN0cnVjdCBleHRlbnRfc3RhdHVzICplcyk7CiBleHRlcm4gaW50IGV4dDRfZXNfbG9va3VwX2V4dGVudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAorCQkJCSBleHQ0X2xibGtfdCAqbmV4dF9sYmxrLAogCQkJCSBzdHJ1Y3QgZXh0ZW50X3N0YXR1cyAqZXMpOwogZXh0ZXJuIGJvb2wgZXh0NF9lc19zY2FuX3JhbmdlKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQkgICAgICAgaW50ICgqbWF0Y2hpbmdfZm4pKHN0cnVjdCBleHRlbnRfc3RhdHVzICplcyksCkBAIC0yNDYsNyArMjQ3LDYgQEAgZXh0ZXJuIGludCBleHQ0X2VzX2luc2VydF9kZWxheWVkX2Jsb2NrKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IGxibGssCiAJCQkJCWJvb2wgYWxsb2NhdGVkKTsKIGV4dGVybiB1bnNpZ25lZCBpbnQgZXh0NF9lc19kZWxheWVkX2NsdShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAogCQkJCQlleHQ0X2xibGtfdCBsZW4pOwotZXh0ZXJuIHZvaWQgZXh0NF9lc19yZW1vdmVfYmxrcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2xibGtfdCBsYmxrLAotCQkJCWV4dDRfbGJsa190IGxlbik7CitleHRlcm4gdm9pZCBleHQ0X2NsZWFyX2lub2RlX2VzKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogCiAjZW5kaWYgLyogX0VYVDRfRVhURU5UU19TVEFUVVNfSCAqLwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9maWxlLmMgYi9mcy9leHQ0L2ZpbGUuYwppbmRleCBiOGEyMGJiLi44ZDJiYmNjIDEwMDY0NAotLS0gYS9mcy9leHQ0L2ZpbGUuYworKysgYi9mcy9leHQ0L2ZpbGUuYwpAQCAtMjMwLDggKzIzMCw2IEBAIGV4dDRfZmlsZV93cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKQogCWlmIChJU19EQVgoaW5vZGUpKQogCQlyZXR1cm4gZXh0NF9kYXhfd3JpdGVfaXRlcihpb2NiLCBmcm9tKTsKICNlbmRpZgotCWlmICghb19kaXJlY3QgJiYgKGlvY2ItPmtpX2ZsYWdzICYgSU9DQl9OT1dBSVQpKQotCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAlpZiAoIWlub2RlX3RyeWxvY2soaW5vZGUpKSB7CiAJCWlmIChpb2NiLT5raV9mbGFncyAmIElPQ0JfTk9XQUlUKQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9oYXNoLmMgYi9mcy9leHQ0L2hhc2guYwppbmRleCBkMzU4YmZjLi4zZTEzMzc5IDEwMDY0NAotLS0gYS9mcy9leHQ0L2hhc2guYworKysgYi9mcy9leHQ0L2hhc2guYwpAQCAtMjgwLDcgKzI4MCw3IEBAIGludCBleHQ0ZnNfZGlyaGFzaChjb25zdCBzdHJ1Y3QgaW5vZGUgKmRpciwgY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwKIAl1bnNpZ25lZCBjaGFyICpidWZmOwogCXN0cnVjdCBxc3RyIHFzdHIgPSB7Lm5hbWUgPSBuYW1lLCAubGVuID0gbGVuIH07CiAKLQlpZiAobGVuICYmIElTX0NBU0VGT0xERUQoZGlyKSkgeworCWlmIChsZW4gJiYgSVNfQ0FTRUZPTERFRChkaXIpICYmIHVtKSB7CiAJCWJ1ZmYgPSBremFsbG9jKHNpemVvZihjaGFyKSAqIFBBVEhfTUFYLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFidWZmKQogCQkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9mcy9leHQ0L2lubGluZS5jIGIvZnMvZXh0NC9pbmxpbmUuYwppbmRleCA4OGNkZjNjLi4yZmVjNjJkIDEwMDY0NAotLS0gYS9mcy9leHQ0L2lubGluZS5jCisrKyBiL2ZzL2V4dDQvaW5saW5lLmMKQEAgLTE0MTYsNyArMTQxNiw3IEBAIGludCBleHQ0X2lubGluZWRpcl90b190cmVlKHN0cnVjdCBmaWxlICpkaXJfZmlsZSwKIAkJZXJyID0gZXh0NF9odHJlZV9zdG9yZV9kaXJlbnQoZGlyX2ZpbGUsIGhpbmZvLT5oYXNoLAogCQkJCQkgICAgICBoaW5mby0+bWlub3JfaGFzaCwgZGUsICZ0bXBfc3RyKTsKIAkJaWYgKGVycikgewotCQkJY291bnQgPSBlcnI7CisJCQlyZXQgPSBlcnI7CiAJCQlnb3RvIG91dDsKIAkJfQogCQljb3VudCsrOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbm9kZS5jIGIvZnMvZXh0NC9pbm9kZS5jCmluZGV4IGQwZGMwZTMuLjEyM2UzZGVlIDEwMDY0NAotLS0gYS9mcy9leHQ0L2lub2RlLmMKKysrIGIvZnMvZXh0NC9pbm9kZS5jCkBAIC01MjcsNyArNTI3LDcgQEAgaW50IGV4dDRfbWFwX2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQlyZXR1cm4gLUVGU0NPUlJVUFRFRDsKIAogCS8qIExvb2t1cCBleHRlbnQgc3RhdHVzIHRyZWUgZmlyc3RseSAqLwotCWlmIChleHQ0X2VzX2xvb2t1cF9leHRlbnQoaW5vZGUsIG1hcC0+bV9sYmxrLCAmZXMpKSB7CisJaWYgKGV4dDRfZXNfbG9va3VwX2V4dGVudChpbm9kZSwgbWFwLT5tX2xibGssIE5VTEwsICZlcykpIHsKIAkJaWYgKGV4dDRfZXNfaXNfd3JpdHRlbigmZXMpIHx8IGV4dDRfZXNfaXNfdW53cml0dGVuKCZlcykpIHsKIAkJCW1hcC0+bV9wYmxrID0gZXh0NF9lc19wYmxvY2soJmVzKSArCiAJCQkJCW1hcC0+bV9sYmxrIC0gZXMuZXNfbGJsazsKQEAgLTY5NSw3ICs2OTUsNyBAQCBpbnQgZXh0NF9tYXBfYmxvY2tzKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCSAqIGV4dGVudCBzdGF0dXMgdHJlZS4KIAkJICovCiAJCWlmICgoZmxhZ3MgJiBFWFQ0X0dFVF9CTE9DS1NfUFJFX0lPKSAmJgotCQkgICAgZXh0NF9lc19sb29rdXBfZXh0ZW50KGlub2RlLCBtYXAtPm1fbGJsaywgJmVzKSkgeworCQkgICAgZXh0NF9lc19sb29rdXBfZXh0ZW50KGlub2RlLCBtYXAtPm1fbGJsaywgTlVMTCwgJmVzKSkgewogCQkJaWYgKGV4dDRfZXNfaXNfd3JpdHRlbigmZXMpKQogCQkJCWdvdG8gb3V0X3NlbTsKIAkJfQpAQCAtMTAyNCw3ICsxMDI0LDcgQEAgc3RydWN0IGJ1ZmZlcl9oZWFkICpleHQ0X2JyZWFkKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJYmggPSBleHQ0X2dldGJsayhoYW5kbGUsIGlub2RlLCBibG9jaywgbWFwX2ZsYWdzKTsKIAlpZiAoSVNfRVJSKGJoKSkKIAkJcmV0dXJuIGJoOwotCWlmICghYmggfHwgYnVmZmVyX3VwdG9kYXRlKGJoKSkKKwlpZiAoIWJoIHx8IGV4dDRfYnVmZmVyX3VwdG9kYXRlKGJoKSkKIAkJcmV0dXJuIGJoOwogCWxsX3J3X2Jsb2NrKFJFUV9PUF9SRUFELCBSRVFfTUVUQSB8IFJFUV9QUklPLCAxLCAmYmgpOwogCXdhaXRfb25fYnVmZmVyKGJoKTsKQEAgLTEwNTEsNyArMTA1MSw3IEBAIGludCBleHQ0X2JyZWFkX2JhdGNoKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IGJsb2NrLCBpbnQgYmhfY291bnQsCiAKIAlmb3IgKGkgPSAwOyBpIDwgYmhfY291bnQ7IGkrKykKIAkJLyogTm90ZSB0aGF0IE5VTEwgYmhzW2ldIGlzIHZhbGlkIGJlY2F1c2Ugb2YgaG9sZXMuICovCi0JCWlmIChiaHNbaV0gJiYgIWJ1ZmZlcl91cHRvZGF0ZShiaHNbaV0pKQorCQlpZiAoYmhzW2ldICYmICFleHQ0X2J1ZmZlcl91cHRvZGF0ZShiaHNbaV0pKQogCQkJbGxfcndfYmxvY2soUkVRX09QX1JFQUQsIFJFUV9NRVRBIHwgUkVRX1BSSU8sIDEsCiAJCQkJICAgICZiaHNbaV0pOwogCkBAIC0xNjU2LDQ5ICsxNjU2LDYgQEAgdm9pZCBleHQ0X2RhX3JlbGVhc2Vfc3BhY2Uoc3RydWN0IGlub2RlICppbm9kZSwgaW50IHRvX2ZyZWUpCiAJZHF1b3RfcmVsZWFzZV9yZXNlcnZhdGlvbl9ibG9jayhpbm9kZSwgRVhUNF9DMkIoc2JpLCB0b19mcmVlKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGV4dDRfZGFfcGFnZV9yZWxlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBwYWdlICpwYWdlLAotCQkJCQkgICAgIHVuc2lnbmVkIGludCBvZmZzZXQsCi0JCQkJCSAgICAgdW5zaWduZWQgaW50IGxlbmd0aCkKLXsKLQlpbnQgY29udGlndW91c19ibGtzID0gMDsKLQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmhlYWQsICpiaDsKLQl1bnNpZ25lZCBpbnQgY3Vycl9vZmYgPSAwOwotCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OwotCXVuc2lnbmVkIGludCBzdG9wID0gb2Zmc2V0ICsgbGVuZ3RoOwotCWV4dDRfZnNibGtfdCBsYmxrOwotCi0JQlVHX09OKHN0b3AgPiBQQUdFX1NJWkUgfHwgc3RvcCA8IGxlbmd0aCk7Ci0KLQloZWFkID0gcGFnZV9idWZmZXJzKHBhZ2UpOwotCWJoID0gaGVhZDsKLQlkbyB7Ci0JCXVuc2lnbmVkIGludCBuZXh0X29mZiA9IGN1cnJfb2ZmICsgYmgtPmJfc2l6ZTsKLQotCQlpZiAobmV4dF9vZmYgPiBzdG9wKQotCQkJYnJlYWs7Ci0KLQkJaWYgKChvZmZzZXQgPD0gY3Vycl9vZmYpICYmIChidWZmZXJfZGVsYXkoYmgpKSkgewotCQkJY29udGlndW91c19ibGtzKys7Ci0JCQljbGVhcl9idWZmZXJfZGVsYXkoYmgpOwotCQl9IGVsc2UgaWYgKGNvbnRpZ3VvdXNfYmxrcykgewotCQkJbGJsayA9IHBhZ2UtPmluZGV4IDw8Ci0JCQkgICAgICAgKFBBR0VfU0hJRlQgLSBpbm9kZS0+aV9ibGtiaXRzKTsKLQkJCWxibGsgKz0gKGN1cnJfb2ZmID4+IGlub2RlLT5pX2Jsa2JpdHMpIC0KLQkJCQljb250aWd1b3VzX2Jsa3M7Ci0JCQlleHQ0X2VzX3JlbW92ZV9ibGtzKGlub2RlLCBsYmxrLCBjb250aWd1b3VzX2Jsa3MpOwotCQkJY29udGlndW91c19ibGtzID0gMDsKLQkJfQotCQljdXJyX29mZiA9IG5leHRfb2ZmOwotCX0gd2hpbGUgKChiaCA9IGJoLT5iX3RoaXNfcGFnZSkgIT0gaGVhZCk7Ci0KLQlpZiAoY29udGlndW91c19ibGtzKSB7Ci0JCWxibGsgPSBwYWdlLT5pbmRleCA8PCAoUEFHRV9TSElGVCAtIGlub2RlLT5pX2Jsa2JpdHMpOwotCQlsYmxrICs9IChjdXJyX29mZiA+PiBpbm9kZS0+aV9ibGtiaXRzKSAtIGNvbnRpZ3VvdXNfYmxrczsKLQkJZXh0NF9lc19yZW1vdmVfYmxrcyhpbm9kZSwgbGJsaywgY29udGlndW91c19ibGtzKTsKLQl9Ci0KLX0KLQogLyoKICAqIERlbGF5ZWQgYWxsb2NhdGlvbiBzdHVmZgogICovCkBAIC0xODc4LDcgKzE4MzUsNyBAQCBzdGF0aWMgaW50IGV4dDRfZGFfbWFwX2Jsb2NrcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzZWN0b3JfdCBpYmxvY2ssCiAJCSAgKHVuc2lnbmVkIGxvbmcpIG1hcC0+bV9sYmxrKTsKIAogCS8qIExvb2t1cCBleHRlbnQgc3RhdHVzIHRyZWUgZmlyc3RseSAqLwotCWlmIChleHQ0X2VzX2xvb2t1cF9leHRlbnQoaW5vZGUsIGlibG9jaywgJmVzKSkgeworCWlmIChleHQ0X2VzX2xvb2t1cF9leHRlbnQoaW5vZGUsIGlibG9jaywgTlVMTCwgJmVzKSkgewogCQlpZiAoZXh0NF9lc19pc19ob2xlKCZlcykpIHsKIAkJCXJldHZhbCA9IDA7CiAJCQlkb3duX3JlYWQoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOwpAQCAtMjgwMCwxNSArMjc1Nyw2IEBAIHN0YXRpYyBpbnQgZXh0NF93cml0ZXBhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQlnb3RvIG91dF93cml0ZXBhZ2VzOwogCX0KIAotCWlmIChleHQ0X3Nob3VsZF9kaW9yZWFkX25vbG9jayhpbm9kZSkpIHsKLQkJLyoKLQkJICogV2UgbWF5IG5lZWQgdG8gY29udmVydCB1cCB0byBvbmUgZXh0ZW50IHBlciBibG9jayBpbgotCQkgKiB0aGUgcGFnZSBhbmQgd2UgbWF5IGRpcnR5IHRoZSBpbm9kZS4KLQkJICovCi0JCXJzdl9ibG9ja3MgPSAxICsgZXh0NF9jaHVua190cmFuc19ibG9ja3MoaW5vZGUsCi0JCQkJCQlQQUdFX1NJWkUgPj4gaW5vZGUtPmlfYmxrYml0cyk7Ci0JfQotCiAJLyoKIAkgKiBJZiB3ZSBoYXZlIGlubGluZSBkYXRhIGFuZCBhcnJpdmUgaGVyZSwgaXQgbWVhbnMgdGhhdAogCSAqIHdlIHdpbGwgc29vbiBjcmVhdGUgdGhlIGJsb2NrIGZvciB0aGUgMXN0IHBhZ2UsIHNvCkBAIC0yODI3LDYgKzI3NzUsMTUgQEAgc3RhdGljIGludCBleHQ0X3dyaXRlcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAJCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CiAJfQogCisJaWYgKGV4dDRfc2hvdWxkX2Rpb3JlYWRfbm9sb2NrKGlub2RlKSkgeworCQkvKgorCQkgKiBXZSBtYXkgbmVlZCB0byBjb252ZXJ0IHVwIHRvIG9uZSBleHRlbnQgcGVyIGJsb2NrIGluCisJCSAqIHRoZSBwYWdlIGFuZCB3ZSBtYXkgZGlydHkgdGhlIGlub2RlLgorCQkgKi8KKwkJcnN2X2Jsb2NrcyA9IDEgKyBleHQ0X2NodW5rX3RyYW5zX2Jsb2Nrcyhpbm9kZSwKKwkJCQkJCVBBR0VfU0laRSA+PiBpbm9kZS0+aV9ibGtiaXRzKTsKKwl9CisKIAlpZiAod2JjLT5yYW5nZV9zdGFydCA9PSAwICYmIHdiYy0+cmFuZ2VfZW5kID09IExMT05HX01BWCkKIAkJcmFuZ2Vfd2hvbGUgPSAxOwogCkBAIC0zMjQyLDI0ICszMTk5LDYgQEAgc3RhdGljIGludCBleHQ0X2RhX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwKIAlyZXR1cm4gcmV0ID8gcmV0IDogY29waWVkOwogfQogCi1zdGF0aWMgdm9pZCBleHQ0X2RhX2ludmFsaWRhdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAotCQkJCSAgIHVuc2lnbmVkIGludCBsZW5ndGgpCi17Ci0JLyoKLQkgKiBEcm9wIHJlc2VydmVkIGJsb2NrcwotCSAqLwotCUJVR19PTighUGFnZUxvY2tlZChwYWdlKSk7Ci0JaWYgKCFwYWdlX2hhc19idWZmZXJzKHBhZ2UpKQotCQlnb3RvIG91dDsKLQotCWV4dDRfZGFfcGFnZV9yZWxlYXNlX3Jlc2VydmF0aW9uKHBhZ2UsIG9mZnNldCwgbGVuZ3RoKTsKLQotb3V0OgotCWV4dDRfaW52YWxpZGF0ZXBhZ2UocGFnZSwgb2Zmc2V0LCBsZW5ndGgpOwotCi0JcmV0dXJuOwotfQotCiAvKgogICogRm9yY2UgYWxsIGRlbGF5ZWQgYWxsb2NhdGlvbiBibG9ja3MgdG8gYmUgYWxsb2NhdGVkIGZvciBhIGdpdmVuIGlub2RlLgogICovCkBAIC00MDAyLDcgKzM5NDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBleHQ0X2RhX2FvcHMgPSB7CiAJLndyaXRlX2VuZAkJPSBleHQ0X2RhX3dyaXRlX2VuZCwKIAkuc2V0X3BhZ2VfZGlydHkJCT0gZXh0NF9zZXRfcGFnZV9kaXJ0eSwKIAkuYm1hcAkJCT0gZXh0NF9ibWFwLAotCS5pbnZhbGlkYXRlcGFnZQkJPSBleHQ0X2RhX2ludmFsaWRhdGVwYWdlLAorCS5pbnZhbGlkYXRlcGFnZQkJPSBleHQ0X2ludmFsaWRhdGVwYWdlLAogCS5yZWxlYXNlcGFnZQkJPSBleHQ0X3JlbGVhc2VwYWdlLAogCS5kaXJlY3RfSU8JCT0gZXh0NF9kaXJlY3RfSU8sCiAJLm1pZ3JhdGVwYWdlCQk9IGJ1ZmZlcl9taWdyYXRlX3BhZ2UsCkBAIC00MzE0LDYgKzQyNTMsMTUgQEAgaW50IGV4dDRfcHVuY2hfaG9sZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoKQogCiAJdHJhY2VfZXh0NF9wdW5jaF9ob2xlKGlub2RlLCBvZmZzZXQsIGxlbmd0aCwgMCk7CiAKKwlleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7CisJaWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSkgeworCQlkb3duX3dyaXRlKCZFWFQ0X0koaW5vZGUpLT5pX21tYXBfc2VtKTsKKwkJcmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTsKKwkJdXBfd3JpdGUoJkVYVDRfSShpbm9kZSktPmlfbW1hcF9zZW0pOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKIAkvKgogCSAqIFdyaXRlIG91dCBhbGwgZGlydHkgcGFnZXMgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zCiAJICogVGhlbiByZWxlYXNlIHRoZW0uCkBAIC01MTM3LDYgKzUwODUsOSBAQCBzdHJ1Y3QgaW5vZGUgKl9fZXh0NF9pZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHVuc2lnbmVkIGxvbmcgaW5vLAogCQkJCSAiaWdldDogYm9ndXMgaV9tb2RlICglbykiLCBpbm9kZS0+aV9tb2RlKTsKIAkJZ290byBiYWRfaW5vZGU7CiAJfQorCWlmIChJU19DQVNFRk9MREVEKGlub2RlKSAmJiAhZXh0NF9oYXNfZmVhdHVyZV9jYXNlZm9sZChpbm9kZS0+aV9zYikpCisJCWV4dDRfZXJyb3JfaW5vZGUoaW5vZGUsIGZ1bmN0aW9uLCBsaW5lLCAwLAorCQkJCSAiY2FzZWZvbGQgZmxhZyB3aXRob3V0IGNhc2Vmb2xkIGZlYXR1cmUiKTsKIAlicmVsc2UoaWxvYy5iaCk7CiAKIAl1bmxvY2tfbmV3X2lub2RlKGlub2RlKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW9jdGwuYyBiL2ZzL2V4dDQvaW9jdGwuYwppbmRleCA1NDQ0ZDQ5Li4wYjdmMzE2IDEwMDY0NAotLS0gYS9mcy9leHQ0L2lvY3RsLmMKKysrIGIvZnMvZXh0NC9pb2N0bC5jCkBAIC03NDUsNiArNzQ1LDc0IEBAIHN0YXRpYyB2b2lkIGV4dDRfZmlsbF9mc3hhdHRyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmc3hhdHRyICpmYSkKIAkJZmEtPmZzeF9wcm9qaWQgPSBmcm9tX2twcm9qaWQoJmluaXRfdXNlcl9ucywgZWktPmlfcHJvamlkKTsKIH0KIAorLyogY29waWVkIGZyb20gZnMvaW9jdGwuYyAqLworc3RhdGljIGludCBmaWVtYXBfY2hlY2tfcmFuZ2VzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCisJCQkgICAgICAgdTY0IHN0YXJ0LCB1NjQgbGVuLCB1NjQgKm5ld19sZW4pCit7CisJdTY0IG1heGJ5dGVzID0gKHU2NCkgc2ItPnNfbWF4Ynl0ZXM7CisKKwkqbmV3X2xlbiA9IGxlbjsKKworCWlmIChsZW4gPT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoc3RhcnQgPiBtYXhieXRlcykKKwkJcmV0dXJuIC1FRkJJRzsKKworCS8qCisJICogU2hyaW5rIHJlcXVlc3Qgc2NvcGUgdG8gd2hhdCB0aGUgZnMgY2FuIGFjdHVhbGx5IGhhbmRsZS4KKwkgKi8KKwlpZiAobGVuID4gbWF4Ynl0ZXMgfHwgKG1heGJ5dGVzIC0gbGVuKSA8IHN0YXJ0KQorCQkqbmV3X2xlbiA9IG1heGJ5dGVzIC0gc3RhcnQ7CisKKwlyZXR1cm4gMDsKK30KKworLyogU28gdGhhdCB0aGUgZmllbWFwIGFjY2VzcyBjaGVja3MgY2FuJ3Qgb3ZlcmZsb3cgb24gMzIgYml0IG1hY2hpbmVzLiAqLworI2RlZmluZSBGSUVNQVBfTUFYX0VYVEVOVFMJKFVJTlRfTUFYIC8gc2l6ZW9mKHN0cnVjdCBmaWVtYXBfZXh0ZW50KSkKKworc3RhdGljIGludCBleHQ0X2lvY3RsX2dldF9lc19jYWNoZShzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3RydWN0IGZpZW1hcCBmaWVtYXA7CisJc3RydWN0IGZpZW1hcCBfX3VzZXIgKnVmaWVtYXAgPSAoc3RydWN0IGZpZW1hcCBfX3VzZXIgKikgYXJnOworCXN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8gZmllaW5mbyA9IHsgMCwgfTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxwKTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlfc2I7CisJdTY0IGxlbjsKKwlpbnQgZXJyb3I7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmZpZW1hcCwgdWZpZW1hcCwgc2l6ZW9mKGZpZW1hcCkpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWlmIChmaWVtYXAuZm1fZXh0ZW50X2NvdW50ID4gRklFTUFQX01BWF9FWFRFTlRTKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWVycm9yID0gZmllbWFwX2NoZWNrX3JhbmdlcyhzYiwgZmllbWFwLmZtX3N0YXJ0LCBmaWVtYXAuZm1fbGVuZ3RoLAorCQkJCSAgICAmbGVuKTsKKwlpZiAoZXJyb3IpCisJCXJldHVybiBlcnJvcjsKKworCWZpZWluZm8uZmlfZmxhZ3MgPSBmaWVtYXAuZm1fZmxhZ3M7CisJZmllaW5mby5maV9leHRlbnRzX21heCA9IGZpZW1hcC5mbV9leHRlbnRfY291bnQ7CisJZmllaW5mby5maV9leHRlbnRzX3N0YXJ0ID0gdWZpZW1hcC0+Zm1fZXh0ZW50czsKKworCWlmIChmaWVtYXAuZm1fZXh0ZW50X2NvdW50ICE9IDAgJiYKKwkgICAgIWFjY2Vzc19vayhmaWVpbmZvLmZpX2V4dGVudHNfc3RhcnQsCisJCSAgICAgICBmaWVpbmZvLmZpX2V4dGVudHNfbWF4ICogc2l6ZW9mKHN0cnVjdCBmaWVtYXBfZXh0ZW50KSkpCisJCXJldHVybiAtRUZBVUxUOworCisJaWYgKGZpZWluZm8uZmlfZmxhZ3MgJiBGSUVNQVBfRkxBR19TWU5DKQorCQlmaWxlbWFwX3dyaXRlX2FuZF93YWl0KGlub2RlLT5pX21hcHBpbmcpOworCisJZXJyb3IgPSBleHQ0X2dldF9lc19jYWNoZShpbm9kZSwgJmZpZWluZm8sIGZpZW1hcC5mbV9zdGFydCwgbGVuKTsKKwlmaWVtYXAuZm1fZmxhZ3MgPSBmaWVpbmZvLmZpX2ZsYWdzOworCWZpZW1hcC5mbV9tYXBwZWRfZXh0ZW50cyA9IGZpZWluZm8uZmlfZXh0ZW50c19tYXBwZWQ7CisJaWYgKGNvcHlfdG9fdXNlcih1ZmllbWFwLCAmZmllbWFwLCBzaXplb2YoZmllbWFwKSkpCisJCWVycm9yID0gLUVGQVVMVDsKKworCXJldHVybiBlcnJvcjsKK30KKwogbG9uZyBleHQ0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxwKTsKQEAgLTExNDIsNiArMTIxMCwzMyBAQCBsb25nIGV4dDRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCQlyZXR1cm4gZnNjcnlwdF9pb2N0bF9nZXRfa2V5X3N0YXR1cyhmaWxwLCAodm9pZCBfX3VzZXIgKilhcmcpOwogCisJY2FzZSBFWFQ0X0lPQ19DTEVBUl9FU19DQUNIRToKKwl7CisJCWlmICghaW5vZGVfb3duZXJfb3JfY2FwYWJsZShpbm9kZSkpCisJCQlyZXR1cm4gLUVBQ0NFUzsKKwkJZXh0NF9jbGVhcl9pbm9kZV9lcyhpbm9kZSk7CisJCXJldHVybiAwOworCX0KKworCWNhc2UgRVhUNF9JT0NfR0VUU1RBVEU6CisJeworCQlfX3UzMglzdGF0ZSA9IDA7CisKKwkJaWYgKGV4dDRfdGVzdF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9FWFRfUFJFQ0FDSEVEKSkKKwkJCXN0YXRlIHw9IEVYVDRfU1RBVEVfRkxBR19FWFRfUFJFQ0FDSEVEOworCQlpZiAoZXh0NF90ZXN0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX05FVykpCisJCQlzdGF0ZSB8PSBFWFQ0X1NUQVRFX0ZMQUdfTkVXOworCQlpZiAoZXh0NF90ZXN0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX05FV0VOVFJZKSkKKwkJCXN0YXRlIHw9IEVYVDRfU1RBVEVfRkxBR19ORVdFTlRSWTsKKwkJaWYgKGV4dDRfdGVzdF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9EQV9BTExPQ19DTE9TRSkpCisJCQlzdGF0ZSB8PSBFWFQ0X1NUQVRFX0ZMQUdfREFfQUxMT0NfQ0xPU0U7CisKKwkJcmV0dXJuIHB1dF91c2VyKHN0YXRlLCAoX191MzIgX191c2VyICopIGFyZyk7CisJfQorCisJY2FzZSBFWFQ0X0lPQ19HRVRfRVNfQ0FDSEU6CisJCXJldHVybiBleHQ0X2lvY3RsX2dldF9lc19jYWNoZShmaWxwLCBhcmcpOworCiAJY2FzZSBFWFQ0X0lPQ19GU0dFVFhBVFRSOgogCXsKIAkJc3RydWN0IGZzeGF0dHIgZmE7CkBAIC0xMjc4LDYgKzEzNzMsOSBAQCBsb25nIGV4dDRfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIAljYXNlIEZTX0lPQ19HRVRGU01BUDoKIAljYXNlIEZTX0lPQ19FTkFCTEVfVkVSSVRZOgogCWNhc2UgRlNfSU9DX01FQVNVUkVfVkVSSVRZOgorCWNhc2UgRVhUNF9JT0NfQ0xFQVJfRVNfQ0FDSEU6CisJY2FzZSBFWFQ0X0lPQ19HRVRTVEFURToKKwljYXNlIEVYVDRfSU9DX0dFVF9FU19DQUNIRToKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FTk9JT0NUTENNRDsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvbmFtZWkuYyBiL2ZzL2V4dDQvbmFtZWkuYwppbmRleCAxMjkwMjk1Li5hNDI3ZDIwIDEwMDY0NAotLS0gYS9mcy9leHQ0L25hbWVpLmMKKysrIGIvZnMvZXh0NC9uYW1laS5jCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCB2b2lkIGV4dDRfZm5hbWVfc2V0dXBfY2lfZmlsZW5hbWUoc3RydWN0IGlub2RlICpkaXIsIGNvbnN0IHN0cnVjdCBxc3RyICppbmFtZSwKIHsKIAlpbnQgbGVuOwogCi0JaWYgKCFJU19DQVNFRk9MREVEKGRpcikpIHsKKwlpZiAoIUlTX0NBU0VGT0xERUQoZGlyKSB8fCAhRVhUNF9TQihkaXItPmlfc2IpLT5zX2VuY29kaW5nKSB7CiAJCWNmX25hbWUtPm5hbWUgPSBOVUxMOwogCQlyZXR1cm47CiAJfQpAQCAtMjE4Myw3ICsyMTgzLDcgQEAgc3RhdGljIGludCBleHQ0X2FkZF9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCiAKICNpZmRlZiBDT05GSUdfVU5JQ09ERQogCWlmIChleHQ0X2hhc19zdHJpY3RfbW9kZShzYmkpICYmIElTX0NBU0VGT0xERUQoZGlyKSAmJgotCSAgICB1dGY4X3ZhbGlkYXRlKHNiaS0+c19lbmNvZGluZywgJmRlbnRyeS0+ZF9uYW1lKSkKKwkgICAgc2JpLT5zX2VuY29kaW5nICYmIHV0ZjhfdmFsaWRhdGUoc2JpLT5zX2VuY29kaW5nLCAmZGVudHJ5LT5kX25hbWUpKQogCQlyZXR1cm4gLUVJTlZBTDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9mcy9leHQ0L3N1cGVyLmMgYi9mcy9leHQ0L3N1cGVyLmMKaW5kZXggMjdjZDYyMi4uZGQ2NTRlNSAxMDA2NDQKLS0tIGEvZnMvZXh0NC9zdXBlci5jCisrKyBiL2ZzL2V4dDQvc3VwZXIuYwpAQCAtMTg3OCw2ICsxODc4LDEzIEBAIHN0YXRpYyBpbnQgaGFuZGxlX21vdW50X29wdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBjaGFyICpvcHQsIGludCB0b2tlbiwKIAl9IGVsc2UgaWYgKHRva2VuID09IE9wdF9jb21taXQpIHsKIAkJaWYgKGFyZyA9PSAwKQogCQkJYXJnID0gSkJEMl9ERUZBVUxUX01BWF9DT01NSVRfQUdFOworCQllbHNlIGlmIChhcmcgPiBJTlRfTUFYIC8gSFopIHsKKwkJCWV4dDRfbXNnKHNiLCBLRVJOX0VSUiwKKwkJCQkgIkludmFsaWQgY29tbWl0IGludGVydmFsICVkLCAiCisJCQkJICJtdXN0IGJlIHNtYWxsZXIgdGhhbiAlZCIsCisJCQkJIGFyZywgSU5UX01BWCAvIEhaKTsKKwkJCXJldHVybiAtMTsKKwkJfQogCQlzYmktPnNfY29tbWl0X2ludGVydmFsID0gSFogKiBhcmc7CiAJfSBlbHNlIGlmICh0b2tlbiA9PSBPcHRfZGVidWdfd2FudF9leHRyYV9pc2l6ZSkgewogCQlzYmktPnNfd2FudF9leHRyYV9pc2l6ZSA9IGFyZzsKQEAgLTQwMzksOCArNDA0NiwyMSBAQCBzdGF0aWMgaW50IGV4dDRfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCQkJICAgICAgIHNiaS0+c19pbm9kZV9zaXplKTsKIAkJCWdvdG8gZmFpbGVkX21vdW50OwogCQl9Ci0JCWlmIChzYmktPnNfaW5vZGVfc2l6ZSA+IEVYVDRfR09PRF9PTERfSU5PREVfU0laRSkKLQkJCXNiLT5zX3RpbWVfZ3JhbiA9IDEgPDwgKEVYVDRfRVBPQ0hfQklUUyAtIDIpOworCQkvKgorCQkgKiBpX2F0aW1lX2V4dHJhIGlzIHRoZSBsYXN0IGV4dHJhIGZpZWxkIGF2YWlsYWJsZSBmb3IgW2FjbV10aW1lcyBpbgorCQkgKiBzdHJ1Y3QgZXh0NF9pbm9kZS4gQ2hlY2tpbmcgZm9yIHRoYXQgZmllbGQgc2hvdWxkIHN1ZmZpY2UgdG8gZW5zdXJlCisJCSAqIHdlIGhhdmUgZXh0cmEgc3BhY2UgZm9yIGFsbCB0aHJlZS4KKwkJICovCisJCWlmIChzYmktPnNfaW5vZGVfc2l6ZSA+PSBvZmZzZXRvZihzdHJ1Y3QgZXh0NF9pbm9kZSwgaV9hdGltZV9leHRyYSkgKworCQkJc2l6ZW9mKCgoc3RydWN0IGV4dDRfaW5vZGUgKikwKS0+aV9hdGltZV9leHRyYSkpIHsKKwkJCXNiLT5zX3RpbWVfZ3JhbiA9IDE7CisJCQlzYi0+c190aW1lX21heCA9IEVYVDRfRVhUUkFfVElNRVNUQU1QX01BWDsKKwkJfSBlbHNlIHsKKwkJCXNiLT5zX3RpbWVfZ3JhbiA9IE5TRUNfUEVSX1NFQzsKKwkJCXNiLT5zX3RpbWVfbWF4ID0gRVhUNF9OT05fRVhUUkFfVElNRVNUQU1QX01BWDsKKwkJfQorCisJCXNiLT5zX3RpbWVfbWluID0gRVhUNF9USU1FU1RBTVBfTUlOOwogCX0KIAogCXNiaS0+c19kZXNjX3NpemUgPSBsZTE2X3RvX2NwdShlcy0+c19kZXNjX3NpemUpOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9LY29uZmlnIGIvZnMvZjJmcy9LY29uZmlnCmluZGV4IDExMGEzOGMuLjY1MmZkMmUgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvS2NvbmZpZworKysgYi9mcy9mMmZzL0tjb25maWcKQEAgLTIsNiArMiw3IEBACiBjb25maWcgRjJGU19GUwogCXRyaXN0YXRlICJGMkZTIGZpbGVzeXN0ZW0gc3VwcG9ydCIKIAlkZXBlbmRzIG9uIEJMT0NLCisJc2VsZWN0IE5MUwogCXNlbGVjdCBDUllQVE8KIAlzZWxlY3QgQ1JZUFRPX0NSQzMyCiAJc2VsZWN0IEYyRlNfRlNfWEFUVFIgaWYgRlNfRU5DUllQVElPTgpAQCAtNjAsNyArNjEsOSBAQAogCSAgU2VjdXJpdHkgTW9kZWxzIChMU01zKSBhY2NlcHRlZCBieSBBcHBBcm1vciwgU0VMaW51eCwgU21hY2sgYW5kIFRPTU9ZTwogCSAgTGludXguIFRoaXMgb3B0aW9uIGVuYWJsZXMgYW4gZXh0ZW5kZWQgYXR0cmlidXRlIGhhbmRsZXIgZm9yIGZpbGUKIAkgIHNlY3VyaXR5IGxhYmVscyBpbiB0aGUgZjJmcyBmaWxlc3lzdGVtLCBzbyB0aGF0IGl0IHJlcXVpcmVzIGVuYWJsaW5nCi0JICB0aGUgZXh0ZW5kZWQgYXR0cmlidXRlIHN1cHBvcnQgaW4gYWR2YW5jZS4KKwkgIHRoZSBleHRlbmRlZCBhdHRyaWJ1dGUgc3VwcG9ydCBpbiBhZHZhbmNlLiBJbiBwYXJ0aWN1bGFyIHlvdSBuZWVkIHRoaXMKKwkgIG9wdGlvbiBpZiB5b3UgdXNlIHRoZSBzZXRjYXAgY29tbWFuZCB0byBhc3NpZ24gaW5pdGlhbCBwcm9jZXNzIGNhcGFiaS0KKwkgIGxpdGllcyB0byBleGVjdXRhYmxlcyAodGhlIHNlY3VyaXR5LiogZXh0ZW5kZWQgYXR0cmlidXRlcykuCiAKIAkgIElmIHlvdSBhcmUgbm90IHVzaW5nIGEgc2VjdXJpdHkgbW9kdWxlLCBzYXkgTi4KIApkaWZmIC0tZ2l0IGEvZnMvZjJmcy9kYXRhLmMgYi9mcy9mMmZzL2RhdGEuYwppbmRleCA1NGNhZDgwLi41NzU1ZTg5IDEwMDY0NAotLS0gYS9mcy9mMmZzL2RhdGEuYworKysgYi9mcy9mMmZzL2RhdGEuYwpAQCAtMjgzLDI2ICsyODMsMjUgQEAgc3RhdGljIGJvb2wgX19zYW1lX2JkZXYoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogLyoKICAqIExvdy1sZXZlbCBibG9jayByZWFkL3dyaXRlIElPIG9wZXJhdGlvbnMuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgYmlvICpfX2Jpb19hbGxvYyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrX2FkZHIsCi0JCQkJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMsCi0JCQkJaW50IG5wYWdlcywgYm9vbCBpc19yZWFkLAotCQkJCWVudW0gcGFnZV90eXBlIHR5cGUsIGVudW0gdGVtcF90eXBlIHRlbXApCitzdGF0aWMgc3RydWN0IGJpbyAqX19iaW9fYWxsb2Moc3RydWN0IGYyZnNfaW9faW5mbyAqZmlvLCBpbnQgbnBhZ2VzKQogeworCXN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IGZpby0+c2JpOwogCXN0cnVjdCBiaW8gKmJpbzsKIAogCWJpbyA9IGYyZnNfYmlvX2FsbG9jKHNiaSwgbnBhZ2VzLCB0cnVlKTsKIAotCWYyZnNfdGFyZ2V0X2RldmljZShzYmksIGJsa19hZGRyLCBiaW8pOwotCWlmIChpc19yZWFkKSB7CisJZjJmc190YXJnZXRfZGV2aWNlKHNiaSwgZmlvLT5uZXdfYmxrYWRkciwgYmlvKTsKKwlpZiAoaXNfcmVhZF9pbyhmaW8tPm9wKSkgewogCQliaW8tPmJpX2VuZF9pbyA9IGYyZnNfcmVhZF9lbmRfaW87CiAJCWJpby0+YmlfcHJpdmF0ZSA9IE5VTEw7CiAJfSBlbHNlIHsKIAkJYmlvLT5iaV9lbmRfaW8gPSBmMmZzX3dyaXRlX2VuZF9pbzsKIAkJYmlvLT5iaV9wcml2YXRlID0gc2JpOwotCQliaW8tPmJpX3dyaXRlX2hpbnQgPSBmMmZzX2lvX3R5cGVfdG9fcndfaGludChzYmksIHR5cGUsIHRlbXApOworCQliaW8tPmJpX3dyaXRlX2hpbnQgPSBmMmZzX2lvX3R5cGVfdG9fcndfaGludChzYmksCisJCQkJCQlmaW8tPnR5cGUsIGZpby0+dGVtcCk7CiAJfQotCWlmICh3YmMpCi0JCXdiY19pbml0X2Jpbyh3YmMsIGJpbyk7CisJaWYgKGZpby0+aW9fd2JjKQorCQl3YmNfaW5pdF9iaW8oZmlvLT5pb193YmMsIGJpbyk7CiAKIAlyZXR1cm4gYmlvOwogfQpAQCAtMzE5LDYgKzMxOCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3N1Ym1pdF9iaW8oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCQlpZiAodGVzdF9vcHQoc2JpLCBMRlMpICYmIGN1cnJlbnQtPnBsdWcpCiAJCQlibGtfZmluaXNoX3BsdWcoY3VycmVudC0+cGx1Zyk7CiAKKwkJaWYgKEYyRlNfSU9fQUxJR05FRChzYmkpKQorCQkJZ290byBzdWJtaXRfaW87CisKIAkJc3RhcnQgPSBiaW8tPmJpX2l0ZXIuYmlfc2l6ZSA+PiBGMkZTX0JMS1NJWkVfQklUUzsKIAkJc3RhcnQgJT0gRjJGU19JT19TSVpFKHNiaSk7CiAKQEAgLTQ4NSw4ICs0ODcsNyBAQCBpbnQgZjJmc19zdWJtaXRfcGFnZV9iaW8oc3RydWN0IGYyZnNfaW9faW5mbyAqZmlvKQogCWYyZnNfdHJhY2VfaW9zKGZpbywgMCk7CiAKIAkvKiBBbGxvY2F0ZSBhIG5ldyBiaW8gKi8KLQliaW8gPSBfX2Jpb19hbGxvYyhmaW8tPnNiaSwgZmlvLT5uZXdfYmxrYWRkciwgZmlvLT5pb193YmMsCi0JCQkJMSwgaXNfcmVhZF9pbyhmaW8tPm9wKSwgZmlvLT50eXBlLCBmaW8tPnRlbXApOworCWJpbyA9IF9fYmlvX2FsbG9jKGZpbywgMSk7CiAKIAlpZiAoYmlvX2FkZF9wYWdlKGJpbywgcGFnZSwgUEFHRV9TSVpFLCAwKSA8IFBBR0VfU0laRSkgewogCQliaW9fcHV0KGJpbyk7CkBAIC01MDUsNiArNTA2LDQzIEBAIGludCBmMmZzX3N1Ym1pdF9wYWdlX2JpbyhzdHJ1Y3QgZjJmc19pb19pbmZvICpmaW8pCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBib29sIHBhZ2VfaXNfbWVyZ2VhYmxlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGJpbyAqYmlvLAorCQkJCWJsb2NrX3QgbGFzdF9ibGthZGRyLCBibG9ja190IGN1cl9ibGthZGRyKQoreworCWlmIChsYXN0X2Jsa2FkZHIgKyAxICE9IGN1cl9ibGthZGRyKQorCQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIF9fc2FtZV9iZGV2KHNiaSwgY3VyX2Jsa2FkZHIsIGJpbyk7Cit9CisKK3N0YXRpYyBib29sIGlvX3R5cGVfaXNfbWVyZ2VhYmxlKHN0cnVjdCBmMmZzX2Jpb19pbmZvICppbywKKwkJCQkJCXN0cnVjdCBmMmZzX2lvX2luZm8gKmZpbykKK3sKKwlpZiAoaW8tPmZpby5vcCAhPSBmaW8tPm9wKQorCQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIGlvLT5maW8ub3BfZmxhZ3MgPT0gZmlvLT5vcF9mbGFnczsKK30KKworc3RhdGljIGJvb2wgaW9faXNfbWVyZ2VhYmxlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGJpbyAqYmlvLAorCQkJCQlzdHJ1Y3QgZjJmc19iaW9faW5mbyAqaW8sCisJCQkJCXN0cnVjdCBmMmZzX2lvX2luZm8gKmZpbywKKwkJCQkJYmxvY2tfdCBsYXN0X2Jsa2FkZHIsCisJCQkJCWJsb2NrX3QgY3VyX2Jsa2FkZHIpCit7CisJaWYgKEYyRlNfSU9fQUxJR05FRChzYmkpICYmIChmaW8tPnR5cGUgPT0gREFUQSB8fCBmaW8tPnR5cGUgPT0gTk9ERSkpIHsKKwkJdW5zaWduZWQgaW50IGZpbGxlZF9ibG9ja3MgPQorCQkJCUYyRlNfQllURVNfVE9fQkxLKGJpby0+YmlfaXRlci5iaV9zaXplKTsKKwkJdW5zaWduZWQgaW50IGlvX3NpemUgPSBGMkZTX0lPX1NJWkUoc2JpKTsKKwkJdW5zaWduZWQgaW50IGxlZnRfdmVjcyA9IGJpby0+YmlfbWF4X3ZlY3MgLSBiaW8tPmJpX3ZjbnQ7CisKKwkJLyogSU9zIGluIGJpbyBpcyBhbGlnbmVkIGFuZCBsZWZ0IHNwYWNlIG9mIHZlY3RvcnMgaXMgbm90IGVub3VnaCAqLworCQlpZiAoIShmaWxsZWRfYmxvY2tzICUgaW9fc2l6ZSkgJiYgbGVmdF92ZWNzIDwgaW9fc2l6ZSkKKwkJCXJldHVybiBmYWxzZTsKKwl9CisJaWYgKCFwYWdlX2lzX21lcmdlYWJsZShzYmksIGJpbywgbGFzdF9ibGthZGRyLCBjdXJfYmxrYWRkcikpCisJCXJldHVybiBmYWxzZTsKKwlyZXR1cm4gaW9fdHlwZV9pc19tZXJnZWFibGUoaW8sIGZpbyk7Cit9CisKIGludCBmMmZzX21lcmdlX3BhZ2VfYmlvKHN0cnVjdCBmMmZzX2lvX2luZm8gKmZpbykKIHsKIAlzdHJ1Y3QgYmlvICpiaW8gPSAqZmlvLT5iaW87CkBAIC01MTgsMTUgKzU1NiwxNCBAQCBpbnQgZjJmc19tZXJnZV9wYWdlX2JpbyhzdHJ1Y3QgZjJmc19pb19pbmZvICpmaW8pCiAJdHJhY2VfZjJmc19zdWJtaXRfcGFnZV9iaW8ocGFnZSwgZmlvKTsKIAlmMmZzX3RyYWNlX2lvcyhmaW8sIDApOwogCi0JaWYgKGJpbyAmJiAoKmZpby0+bGFzdF9ibG9jayArIDEgIT0gZmlvLT5uZXdfYmxrYWRkciB8fAotCQkJIV9fc2FtZV9iZGV2KGZpby0+c2JpLCBmaW8tPm5ld19ibGthZGRyLCBiaW8pKSkgeworCWlmIChiaW8gJiYgIXBhZ2VfaXNfbWVyZ2VhYmxlKGZpby0+c2JpLCBiaW8sICpmaW8tPmxhc3RfYmxvY2ssCisJCQkJCQlmaW8tPm5ld19ibGthZGRyKSkgewogCQlfX3N1Ym1pdF9iaW8oZmlvLT5zYmksIGJpbywgZmlvLT50eXBlKTsKIAkJYmlvID0gTlVMTDsKIAl9CiBhbGxvY19uZXc6CiAJaWYgKCFiaW8pIHsKLQkJYmlvID0gX19iaW9fYWxsb2MoZmlvLT5zYmksIGZpby0+bmV3X2Jsa2FkZHIsIGZpby0+aW9fd2JjLAotCQkJCUJJT19NQVhfUEFHRVMsIGZhbHNlLCBmaW8tPnR5cGUsIGZpby0+dGVtcCk7CisJCWJpbyA9IF9fYmlvX2FsbG9jKGZpbywgQklPX01BWF9QQUdFUyk7CiAJCWJpb19zZXRfb3BfYXR0cnMoYmlvLCBmaW8tPm9wLCBmaW8tPm9wX2ZsYWdzKTsKIAl9CiAKQEAgLTU5MiwyMSArNjI5LDE5IEBAIHZvaWQgZjJmc19zdWJtaXRfcGFnZV93cml0ZShzdHJ1Y3QgZjJmc19pb19pbmZvICpmaW8pCiAKIAlpbmNfcGFnZV9jb3VudChzYmksIFdCX0RBVEFfVFlQRShiaW9fcGFnZSkpOwogCi0JaWYgKGlvLT5iaW8gJiYgKGlvLT5sYXN0X2Jsb2NrX2luX2JpbyAhPSBmaW8tPm5ld19ibGthZGRyIC0gMSB8fAotCSAgICAoaW8tPmZpby5vcCAhPSBmaW8tPm9wIHx8IGlvLT5maW8ub3BfZmxhZ3MgIT0gZmlvLT5vcF9mbGFncykgfHwKLQkJCSFfX3NhbWVfYmRldihzYmksIGZpby0+bmV3X2Jsa2FkZHIsIGlvLT5iaW8pKSkKKwlpZiAoaW8tPmJpbyAmJiAhaW9faXNfbWVyZ2VhYmxlKHNiaSwgaW8tPmJpbywgaW8sIGZpbywKKwkJCWlvLT5sYXN0X2Jsb2NrX2luX2JpbywgZmlvLT5uZXdfYmxrYWRkcikpCiAJCV9fc3VibWl0X21lcmdlZF9iaW8oaW8pOwogYWxsb2NfbmV3OgogCWlmIChpby0+YmlvID09IE5VTEwpIHsKLQkJaWYgKChmaW8tPnR5cGUgPT0gREFUQSB8fCBmaW8tPnR5cGUgPT0gTk9ERSkgJiYKKwkJaWYgKEYyRlNfSU9fQUxJR05FRChzYmkpICYmCisJCQkJKGZpby0+dHlwZSA9PSBEQVRBIHx8IGZpby0+dHlwZSA9PSBOT0RFKSAmJgogCQkJCWZpby0+bmV3X2Jsa2FkZHIgJiBGMkZTX0lPX1NJWkVfTUFTSyhzYmkpKSB7CiAJCQlkZWNfcGFnZV9jb3VudChzYmksIFdCX0RBVEFfVFlQRShiaW9fcGFnZSkpOwogCQkJZmlvLT5yZXRyeSA9IHRydWU7CiAJCQlnb3RvIHNraXA7CiAJCX0KLQkJaW8tPmJpbyA9IF9fYmlvX2FsbG9jKHNiaSwgZmlvLT5uZXdfYmxrYWRkciwgZmlvLT5pb193YmMsCi0JCQkJCQlCSU9fTUFYX1BBR0VTLCBmYWxzZSwKLQkJCQkJCWZpby0+dHlwZSwgZmlvLT50ZW1wKTsKKwkJaW8tPmJpbyA9IF9fYmlvX2FsbG9jKGZpbywgQklPX01BWF9QQUdFUyk7CiAJCWlvLT5maW8gPSAqZmlvOwogCX0KIApAQCAtNjI3LDcgKzY2Miw3IEBAIHZvaWQgZjJmc19zdWJtaXRfcGFnZV93cml0ZShzdHJ1Y3QgZjJmc19pb19pbmZvICpmaW8pCiAJCWdvdG8gbmV4dDsKIG91dDoKIAlpZiAoaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NIVVRET1dOKSB8fAotCQkJCWYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShzYmkpKQorCQkJCSFmMmZzX2lzX2NoZWNrcG9pbnRfcmVhZHkoc2JpKSkKIAkJX19zdWJtaXRfbWVyZ2VkX2Jpbyhpbyk7CiAJdXBfd3JpdGUoJmlvLT5pb19yd3NlbSk7CiB9CkBAIC0xMDIyLDcgKzEwNTcsNyBAQCBzdGF0aWMgaW50IF9fYWxsb2NhdGVfZGF0YV9ibG9jayhzdHJ1Y3QgZG5vZGVfb2ZfZGF0YSAqZG4sIGludCBzZWdfdHlwZSkKIAlpZiAoR0VUX1NFR05PKHNiaSwgb2xkX2Jsa2FkZHIpICE9IE5VTExfU0VHTk8pCiAJCWludmFsaWRhdGVfbWFwcGluZ19wYWdlcyhNRVRBX01BUFBJTkcoc2JpKSwKIAkJCQkJb2xkX2Jsa2FkZHIsIG9sZF9ibGthZGRyKTsKLQlmMmZzX3NldF9kYXRhX2Jsa2FkZHIoZG4pOworCWYyZnNfdXBkYXRlX2RhdGFfYmxrYWRkcihkbiwgZG4tPmRhdGFfYmxrYWRkcik7CiAKIAkvKgogCSAqIGlfc2l6ZSB3aWxsIGJlIHVwZGF0ZWQgYnkgZGlyZWN0X0lPLiBPdGhlcndpc2UsIHdlJ2xsIGdldCBzdGFsZQpAQCAtMTE5OSwxMCArMTIzNCwxMCBAQCBpbnQgZjJmc19tYXBfYmxvY2tzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmMmZzX21hcF9ibG9ja3MgKm1hcCwKIAkJaWYgKHRlc3Rfb3B0KHNiaSwgTEZTKSAmJiBmbGFnID09IEYyRlNfR0VUX0JMT0NLX0RJTyAmJgogCQkJCQkJCW1hcC0+bV9tYXlfY3JlYXRlKSB7CiAJCQllcnIgPSBfX2FsbG9jYXRlX2RhdGFfYmxvY2soJmRuLCBtYXAtPm1fc2VnX3R5cGUpOwotCQkJaWYgKCFlcnIpIHsKLQkJCQlibGthZGRyID0gZG4uZGF0YV9ibGthZGRyOwotCQkJCXNldF9pbm9kZV9mbGFnKGlub2RlLCBGSV9BUFBFTkRfV1JJVEUpOwotCQkJfQorCQkJaWYgKGVycikKKwkJCQlnb3RvIHN5bmNfb3V0OworCQkJYmxrYWRkciA9IGRuLmRhdGFfYmxrYWRkcjsKKwkJCXNldF9pbm9kZV9mbGFnKGlub2RlLCBGSV9BUFBFTkRfV1JJVEUpOwogCQl9CiAJfSBlbHNlIHsKIAkJaWYgKGNyZWF0ZSkgewpAQCAtMTQwNyw3ICsxNDQyLDcgQEAgc3RhdGljIGludCBnZXRfZGF0YV9ibG9ja19kaW9fd3JpdGUoc3RydWN0IGlub2RlICppbm9kZSwgc2VjdG9yX3QgaWJsb2NrLAogCXJldHVybiBfX2dldF9kYXRhX2Jsb2NrKGlub2RlLCBpYmxvY2ssIGJoX3Jlc3VsdCwgY3JlYXRlLAogCQkJCUYyRlNfR0VUX0JMT0NLX0RJTywgTlVMTCwKIAkJCQlmMmZzX3J3X2hpbnRfdG9fc2VnX3R5cGUoaW5vZGUtPmlfd3JpdGVfaGludCksCi0JCQkJdHJ1ZSk7CisJCQkJSVNfU1dBUEZJTEUoaW5vZGUpID8gZmFsc2UgOiB0cnVlKTsKIH0KIAogc3RhdGljIGludCBnZXRfZGF0YV9ibG9ja19kaW8oc3RydWN0IGlub2RlICppbm9kZSwgc2VjdG9yX3QgaWJsb2NrLApAQCAtMTUzOCw3ICsxNTczLDcgQEAgaW50IGYyZnNfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8gKmZpZWluZm8sCiAJCWdvdG8gb3V0OwogCX0KIAotCWlmIChmMmZzX2hhc19pbmxpbmVfZGF0YShpbm9kZSkpIHsKKwlpZiAoZjJmc19oYXNfaW5saW5lX2RhdGEoaW5vZGUpIHx8IGYyZnNfaGFzX2lubGluZV9kZW50cnkoaW5vZGUpKSB7CiAJCXJldCA9IGYyZnNfaW5saW5lX2RhdGFfZmllbWFwKGlub2RlLCBmaWVpbmZvLCBzdGFydCwgbGVuKTsKIAkJaWYgKHJldCAhPSAtRUFHQUlOKQogCQkJZ290byBvdXQ7CkBAIC0xNjkxLDggKzE3MjYsOCBAQCBzdGF0aWMgaW50IGYyZnNfcmVhZF9zaW5nbGVfcGFnZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkgKiBUaGlzIHBhZ2Ugd2lsbCBnbyB0byBCSU8uICBEbyB3ZSBuZWVkIHRvIHNlbmQgdGhpcwogCSAqIEJJTyBvZmYgZmlyc3Q/CiAJICovCi0JaWYgKGJpbyAmJiAoKmxhc3RfYmxvY2tfaW5fYmlvICE9IGJsb2NrX25yIC0gMSB8fAotCQkhX19zYW1lX2JkZXYoRjJGU19JX1NCKGlub2RlKSwgYmxvY2tfbnIsIGJpbykpKSB7CisJaWYgKGJpbyAmJiAhcGFnZV9pc19tZXJnZWFibGUoRjJGU19JX1NCKGlub2RlKSwgYmlvLAorCQkJCSpsYXN0X2Jsb2NrX2luX2JpbywgYmxvY2tfbnIpKSB7CiBzdWJtaXRfYW5kX3JlYWxsb2M6CiAJCV9fc3VibWl0X2JpbyhGMkZTX0lfU0IoaW5vZGUpLCBiaW8sIERBVEEpOwogCQliaW8gPSBOVUxMOwpAQCAtMjU5MCw5ICsyNjI1LDEwIEBAIHN0YXRpYyBpbnQgZjJmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAKIAl0cmFjZV9mMmZzX3dyaXRlX2JlZ2luKGlub2RlLCBwb3MsIGxlbiwgZmxhZ3MpOwogCi0JZXJyID0gZjJmc19pc19jaGVja3BvaW50X3JlYWR5KHNiaSk7Ci0JaWYgKGVycikKKwlpZiAoIWYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShzYmkpKSB7CisJCWVyciA9IC1FTk9TUEM7CiAJCWdvdG8gZmFpbDsKKwl9CiAKIAlpZiAoKGYyZnNfaXNfYXRvbWljX2ZpbGUoaW5vZGUpICYmCiAJCQkhZjJmc19hdmFpbGFibGVfZnJlZV9tZW1vcnkoc2JpLCBJTk1FTV9QQUdFUykpIHx8CmRpZmYgLS1naXQgYS9mcy9mMmZzL2RlYnVnLmMgYi9mcy9mMmZzL2RlYnVnLmMKaW5kZXggNzcwNjA0OS4uOWIwYmVkZCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9kZWJ1Zy5jCisrKyBiL2ZzL2YyZnMvZGVidWcuYwpAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfZ2VuZXJhbF9zdGF0dXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCXNpLT5ucl9yZF9kYXRhID0gZ2V0X3BhZ2VzKHNiaSwgRjJGU19SRF9EQVRBKTsKIAlzaS0+bnJfcmRfbm9kZSA9IGdldF9wYWdlcyhzYmksIEYyRlNfUkRfTk9ERSk7CiAJc2ktPm5yX3JkX21ldGEgPSBnZXRfcGFnZXMoc2JpLCBGMkZTX1JEX01FVEEpOwotCWlmIChTTV9JKHNiaSkgJiYgU01fSShzYmkpLT5mY2NfaW5mbykgeworCWlmIChTTV9JKHNiaSktPmZjY19pbmZvKSB7CiAJCXNpLT5ucl9mbHVzaGVkID0KIAkJCWF0b21pY19yZWFkKCZTTV9JKHNiaSktPmZjY19pbmZvLT5pc3N1ZWRfZmx1c2gpOwogCQlzaS0+bnJfZmx1c2hpbmcgPQpAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfZ2VuZXJhbF9zdGF0dXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCQlzaS0+Zmx1c2hfbGlzdF9lbXB0eSA9CiAJCQlsbGlzdF9lbXB0eSgmU01fSShzYmkpLT5mY2NfaW5mby0+aXNzdWVfbGlzdCk7CiAJfQotCWlmIChTTV9JKHNiaSkgJiYgU01fSShzYmkpLT5kY2NfaW5mbykgeworCWlmIChTTV9JKHNiaSktPmRjY19pbmZvKSB7CiAJCXNpLT5ucl9kaXNjYXJkZWQgPQogCQkJYXRvbWljX3JlYWQoJlNNX0koc2JpKS0+ZGNjX2luZm8tPmlzc3VlZF9kaXNjYXJkKTsKIAkJc2ktPm5yX2Rpc2NhcmRpbmcgPQpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9kaXIuYyBiL2ZzL2YyZnMvZGlyLmMKaW5kZXggODVhMTUyOC4uNDAzMzc3OCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9kaXIuYworKysgYi9mcy9mMmZzL2Rpci5jCkBAIC04LDYgKzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZjJmc19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3NpZ25hbC5oPgorI2luY2x1ZGUgPGxpbnV4L3VuaWNvZGUuaD4KICNpbmNsdWRlICJmMmZzLmgiCiAjaW5jbHVkZSAibm9kZS5oIgogI2luY2x1ZGUgImFjbC5oIgpAQCAtODEsNyArODIsOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBkaXJfYmxvY2tfaW5kZXgodW5zaWduZWQgaW50IGxldmVsLAogCXJldHVybiBiaWR4OwogfQogCi1zdGF0aWMgc3RydWN0IGYyZnNfZGlyX2VudHJ5ICpmaW5kX2luX2Jsb2NrKHN0cnVjdCBwYWdlICpkZW50cnlfcGFnZSwKK3N0YXRpYyBzdHJ1Y3QgZjJmc19kaXJfZW50cnkgKmZpbmRfaW5fYmxvY2soc3RydWN0IGlub2RlICpkaXIsCisJCQkJc3RydWN0IHBhZ2UgKmRlbnRyeV9wYWdlLAogCQkJCXN0cnVjdCBmc2NyeXB0X25hbWUgKmZuYW1lLAogCQkJCWYyZnNfaGFzaF90IG5hbWVoYXNoLAogCQkJCWludCAqbWF4X3Nsb3RzLApAQCAtOTMsNyArOTUsNyBAQCBzdGF0aWMgc3RydWN0IGYyZnNfZGlyX2VudHJ5ICpmaW5kX2luX2Jsb2NrKHN0cnVjdCBwYWdlICpkZW50cnlfcGFnZSwKIAogCWRlbnRyeV9ibGsgPSAoc3RydWN0IGYyZnNfZGVudHJ5X2Jsb2NrICopcGFnZV9hZGRyZXNzKGRlbnRyeV9wYWdlKTsKIAotCW1ha2VfZGVudHJ5X3B0cl9ibG9jayhOVUxMLCAmZCwgZGVudHJ5X2Jsayk7CisJbWFrZV9kZW50cnlfcHRyX2Jsb2NrKGRpciwgJmQsIGRlbnRyeV9ibGspOwogCWRlID0gZjJmc19maW5kX3RhcmdldF9kZW50cnkoZm5hbWUsIG5hbWVoYXNoLCBtYXhfc2xvdHMsICZkKTsKIAlpZiAoZGUpCiAJCSpyZXNfcGFnZSA9IGRlbnRyeV9wYWdlOwpAQCAtMTAxLDE0ICsxMDMsMTE2IEBAIHN0YXRpYyBzdHJ1Y3QgZjJmc19kaXJfZW50cnkgKmZpbmRfaW5fYmxvY2soc3RydWN0IHBhZ2UgKmRlbnRyeV9wYWdlLAogCXJldHVybiBkZTsKIH0KIAorI2lmZGVmIENPTkZJR19VTklDT0RFCisvKgorICogVGVzdCB3aGV0aGVyIGEgY2FzZS1pbnNlbnNpdGl2ZSBkaXJlY3RvcnkgZW50cnkgbWF0Y2hlcyB0aGUgZmlsZW5hbWUKKyAqIGJlaW5nIHNlYXJjaGVkIGZvci4KKyAqCisgKiBSZXR1cm5zOiAwIGlmIHRoZSBkaXJlY3RvcnkgZW50cnkgbWF0Y2hlcywgbW9yZSB0aGFuIDAgaWYgaXQKKyAqIGRvZXNuJ3QgbWF0Y2ggb3IgbGVzcyB0aGFuIHplcm8gb24gZXJyb3IuCisgKi8KK2ludCBmMmZzX2NpX2NvbXBhcmUoY29uc3Qgc3RydWN0IGlub2RlICpwYXJlbnQsIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lLAorCQkJCWNvbnN0IHN0cnVjdCBxc3RyICplbnRyeSwgYm9vbCBxdWljaykKK3sKKwljb25zdCBzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBGMkZTX1NCKHBhcmVudC0+aV9zYik7CisJY29uc3Qgc3RydWN0IHVuaWNvZGVfbWFwICp1bSA9IHNiaS0+c19lbmNvZGluZzsKKwlpbnQgcmV0OworCisJaWYgKHF1aWNrKQorCQlyZXQgPSB1dGY4X3N0cm5jYXNlY21wX2ZvbGRlZCh1bSwgbmFtZSwgZW50cnkpOworCWVsc2UKKwkJcmV0ID0gdXRmOF9zdHJuY2FzZWNtcCh1bSwgbmFtZSwgZW50cnkpOworCisJaWYgKHJldCA8IDApIHsKKwkJLyogSGFuZGxlIGludmFsaWQgY2hhcmFjdGVyIHNlcXVlbmNlIGFzIGVpdGhlciBhbiBlcnJvcgorCQkgKiBvciBhcyBhbiBvcGFxdWUgYnl0ZSBzZXF1ZW5jZS4KKwkJICovCisJCWlmIChmMmZzX2hhc19zdHJpY3RfbW9kZShzYmkpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJaWYgKG5hbWUtPmxlbiAhPSBlbnRyeS0+bGVuKQorCQkJcmV0dXJuIDE7CisKKwkJcmV0dXJuICEhbWVtY21wKG5hbWUtPm5hbWUsIGVudHJ5LT5uYW1lLCBuYW1lLT5sZW4pOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGYyZnNfZm5hbWVfc2V0dXBfY2lfZmlsZW5hbWUoc3RydWN0IGlub2RlICpkaXIsCisJCQkJCWNvbnN0IHN0cnVjdCBxc3RyICppbmFtZSwKKwkJCQkJc3RydWN0IGZzY3J5cHRfc3RyICpjZl9uYW1lKQoreworCXN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IEYyRlNfSV9TQihkaXIpOworCisJaWYgKCFJU19DQVNFRk9MREVEKGRpcikpIHsKKwkJY2ZfbmFtZS0+bmFtZSA9IE5VTEw7CisJCXJldHVybjsKKwl9CisKKwljZl9uYW1lLT5uYW1lID0gZjJmc19rbWFsbG9jKHNiaSwgRjJGU19OQU1FX0xFTiwgR0ZQX05PRlMpOworCWlmICghY2ZfbmFtZS0+bmFtZSkKKwkJcmV0dXJuOworCisJY2ZfbmFtZS0+bGVuID0gdXRmOF9jYXNlZm9sZChzYmktPnNfZW5jb2RpbmcsCisJCQkJCWluYW1lLCBjZl9uYW1lLT5uYW1lLAorCQkJCQlGMkZTX05BTUVfTEVOKTsKKwlpZiAoKGludCljZl9uYW1lLT5sZW4gPD0gMCkgeworCQlrdmZyZWUoY2ZfbmFtZS0+bmFtZSk7CisJCWNmX25hbWUtPm5hbWUgPSBOVUxMOworCX0KK30KKyNlbmRpZgorCitzdGF0aWMgaW5saW5lIGJvb2wgZjJmc19tYXRjaF9uYW1lKHN0cnVjdCBmMmZzX2RlbnRyeV9wdHIgKmQsCisJCQkJCXN0cnVjdCBmMmZzX2Rpcl9lbnRyeSAqZGUsCisJCQkJCXN0cnVjdCBmc2NyeXB0X25hbWUgKmZuYW1lLAorCQkJCQlzdHJ1Y3QgZnNjcnlwdF9zdHIgKmNmX3N0ciwKKwkJCQkJdW5zaWduZWQgbG9uZyBiaXRfcG9zLAorCQkJCQlmMmZzX2hhc2hfdCBuYW1laGFzaCkKK3sKKyNpZmRlZiBDT05GSUdfVU5JQ09ERQorCXN0cnVjdCBpbm9kZSAqcGFyZW50ID0gZC0+aW5vZGU7CisJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19JX1NCKHBhcmVudCk7CisJc3RydWN0IHFzdHIgZW50cnk7CisjZW5kaWYKKworCWlmIChkZS0+aGFzaF9jb2RlICE9IG5hbWVoYXNoKQorCQlyZXR1cm4gZmFsc2U7CisKKyNpZmRlZiBDT05GSUdfVU5JQ09ERQorCWVudHJ5Lm5hbWUgPSBkLT5maWxlbmFtZVtiaXRfcG9zXTsKKwllbnRyeS5sZW4gPSBkZS0+bmFtZV9sZW47CisKKwlpZiAoc2JpLT5zX2VuY29kaW5nICYmIElTX0NBU0VGT0xERUQocGFyZW50KSkgeworCQlpZiAoY2Zfc3RyLT5uYW1lKSB7CisJCQlzdHJ1Y3QgcXN0ciBjZiA9IHsubmFtZSA9IGNmX3N0ci0+bmFtZSwKKwkJCQkJICAubGVuID0gY2Zfc3RyLT5sZW59OworCQkJcmV0dXJuICFmMmZzX2NpX2NvbXBhcmUocGFyZW50LCAmY2YsICZlbnRyeSwgdHJ1ZSk7CisJCX0KKwkJcmV0dXJuICFmMmZzX2NpX2NvbXBhcmUocGFyZW50LCBmbmFtZS0+dXNyX2ZuYW1lLCAmZW50cnksCisJCQkJCWZhbHNlKTsKKwl9CisjZW5kaWYKKwlpZiAoZnNjcnlwdF9tYXRjaF9uYW1lKGZuYW1lLCBkLT5maWxlbmFtZVtiaXRfcG9zXSwKKwkJCQlsZTE2X3RvX2NwdShkZS0+bmFtZV9sZW4pKSkKKwkJcmV0dXJuIHRydWU7CisJcmV0dXJuIGZhbHNlOworfQorCiBzdHJ1Y3QgZjJmc19kaXJfZW50cnkgKmYyZnNfZmluZF90YXJnZXRfZGVudHJ5KHN0cnVjdCBmc2NyeXB0X25hbWUgKmZuYW1lLAogCQkJZjJmc19oYXNoX3QgbmFtZWhhc2gsIGludCAqbWF4X3Nsb3RzLAogCQkJc3RydWN0IGYyZnNfZGVudHJ5X3B0ciAqZCkKIHsKIAlzdHJ1Y3QgZjJmc19kaXJfZW50cnkgKmRlOworCXN0cnVjdCBmc2NyeXB0X3N0ciBjZl9zdHIgPSB7IC5uYW1lID0gTlVMTCwgLmxlbiA9IDAgfTsKIAl1bnNpZ25lZCBsb25nIGJpdF9wb3MgPSAwOwogCWludCBtYXhfbGVuID0gMDsKIAorI2lmZGVmIENPTkZJR19VTklDT0RFCisJZjJmc19mbmFtZV9zZXR1cF9jaV9maWxlbmFtZShkLT5pbm9kZSwgZm5hbWUtPnVzcl9mbmFtZSwgJmNmX3N0cik7CisjZW5kaWYKKwogCWlmIChtYXhfc2xvdHMpCiAJCSptYXhfc2xvdHMgPSAwOwogCXdoaWxlIChiaXRfcG9zIDwgZC0+bWF4KSB7CkBAIC0xMjUsOSArMjI5LDcgQEAgc3RydWN0IGYyZnNfZGlyX2VudHJ5ICpmMmZzX2ZpbmRfdGFyZ2V0X2RlbnRyeShzdHJ1Y3QgZnNjcnlwdF9uYW1lICpmbmFtZSwKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJaWYgKGRlLT5oYXNoX2NvZGUgPT0gbmFtZWhhc2ggJiYKLQkJICAgIGZzY3J5cHRfbWF0Y2hfbmFtZShmbmFtZSwgZC0+ZmlsZW5hbWVbYml0X3Bvc10sCi0JCQkJICAgICAgIGxlMTZfdG9fY3B1KGRlLT5uYW1lX2xlbikpKQorCQlpZiAoZjJmc19tYXRjaF9uYW1lKGQsIGRlLCBmbmFtZSwgJmNmX3N0ciwgYml0X3BvcywgbmFtZWhhc2gpKQogCQkJZ290byBmb3VuZDsKIAogCQlpZiAobWF4X3Nsb3RzICYmIG1heF9sZW4gPiAqbWF4X3Nsb3RzKQpAQCAtMTQxLDYgKzI0MywxMCBAQCBzdHJ1Y3QgZjJmc19kaXJfZW50cnkgKmYyZnNfZmluZF90YXJnZXRfZGVudHJ5KHN0cnVjdCBmc2NyeXB0X25hbWUgKmZuYW1lLAogZm91bmQ6CiAJaWYgKG1heF9zbG90cyAmJiBtYXhfbGVuID4gKm1heF9zbG90cykKIAkJKm1heF9zbG90cyA9IG1heF9sZW47CisKKyNpZmRlZiBDT05GSUdfVU5JQ09ERQorCWt2ZnJlZShjZl9zdHIubmFtZSk7CisjZW5kaWYKIAlyZXR1cm4gZGU7CiB9CiAKQEAgLTE1Nyw3ICsyNjMsNyBAQCBzdGF0aWMgc3RydWN0IGYyZnNfZGlyX2VudHJ5ICpmaW5kX2luX2xldmVsKHN0cnVjdCBpbm9kZSAqZGlyLAogCXN0cnVjdCBmMmZzX2Rpcl9lbnRyeSAqZGUgPSBOVUxMOwogCWJvb2wgcm9vbSA9IGZhbHNlOwogCWludCBtYXhfc2xvdHM7Ci0JZjJmc19oYXNoX3QgbmFtZWhhc2ggPSBmMmZzX2RlbnRyeV9oYXNoKCZuYW1lLCBmbmFtZSk7CisJZjJmc19oYXNoX3QgbmFtZWhhc2ggPSBmMmZzX2RlbnRyeV9oYXNoKGRpciwgJm5hbWUsIGZuYW1lKTsKIAogCW5idWNrZXQgPSBkaXJfYnVja2V0cyhsZXZlbCwgRjJGU19JKGRpciktPmlfZGlyX2xldmVsKTsKIAluYmxvY2sgPSBidWNrZXRfYmxvY2tzKGxldmVsKTsKQEAgLTE3OSw4ICsyODUsOCBAQCBzdGF0aWMgc3RydWN0IGYyZnNfZGlyX2VudHJ5ICpmaW5kX2luX2xldmVsKHN0cnVjdCBpbm9kZSAqZGlyLAogCQkJfQogCQl9CiAKLQkJZGUgPSBmaW5kX2luX2Jsb2NrKGRlbnRyeV9wYWdlLCBmbmFtZSwgbmFtZWhhc2gsICZtYXhfc2xvdHMsCi0JCQkJCQkJCXJlc19wYWdlKTsKKwkJZGUgPSBmaW5kX2luX2Jsb2NrKGRpciwgZGVudHJ5X3BhZ2UsIGZuYW1lLCBuYW1laGFzaCwKKwkJCQkJCQkmbWF4X3Nsb3RzLCByZXNfcGFnZSk7CiAJCWlmIChkZSkKIAkJCWJyZWFrOwogCkBAIC0yNTAsNiArMzU2LDE0IEBAIHN0cnVjdCBmMmZzX2Rpcl9lbnRyeSAqZjJmc19maW5kX2VudHJ5KHN0cnVjdCBpbm9kZSAqZGlyLAogCXN0cnVjdCBmc2NyeXB0X25hbWUgZm5hbWU7CiAJaW50IGVycjsKIAorI2lmZGVmIENPTkZJR19VTklDT0RFCisJaWYgKGYyZnNfaGFzX3N0cmljdF9tb2RlKEYyRlNfSV9TQihkaXIpKSAmJiBJU19DQVNFRk9MREVEKGRpcikgJiYKKwkJCXV0ZjhfdmFsaWRhdGUoRjJGU19JX1NCKGRpciktPnNfZW5jb2RpbmcsIGNoaWxkKSkgeworCQkqcmVzX3BhZ2UgPSBFUlJfUFRSKC1FSU5WQUwpOworCQlyZXR1cm4gTlVMTDsKKwl9CisjZW5kaWYKKwogCWVyciA9IGZzY3J5cHRfc2V0dXBfZmlsZW5hbWUoZGlyLCBjaGlsZCwgMSwgJmZuYW1lKTsKIAlpZiAoZXJyKSB7CiAJCWlmIChlcnIgPT0gLUVOT0VOVCkKQEAgLTUwNCw3ICs2MTgsNyBAQCBpbnQgZjJmc19hZGRfcmVndWxhcl9lbnRyeShzdHJ1Y3QgaW5vZGUgKmRpciwgY29uc3Qgc3RydWN0IHFzdHIgKm5ld19uYW1lLAogCiAJbGV2ZWwgPSAwOwogCXNsb3RzID0gR0VUX0RFTlRSWV9TTE9UUyhuZXdfbmFtZS0+bGVuKTsKLQlkZW50cnlfaGFzaCA9IGYyZnNfZGVudHJ5X2hhc2gobmV3X25hbWUsIE5VTEwpOworCWRlbnRyeV9oYXNoID0gZjJmc19kZW50cnlfaGFzaChkaXIsIG5ld19uYW1lLCBOVUxMKTsKIAogCWN1cnJlbnRfZGVwdGggPSBGMkZTX0koZGlyKS0+aV9jdXJyZW50X2RlcHRoOwogCWlmIChGMkZTX0koZGlyKS0+Y2hhc2ggPT0gZGVudHJ5X2hhc2gpIHsKQEAgLTU2OCw2ICs2ODIsMTEgQEAgaW50IGYyZnNfYWRkX3JlZ3VsYXJfZW50cnkoc3RydWN0IGlub2RlICpkaXIsIGNvbnN0IHN0cnVjdCBxc3RyICpuZXdfbmFtZSwKIAogCWlmIChpbm9kZSkgewogCQlmMmZzX2lfcGlub193cml0ZShpbm9kZSwgZGlyLT5pX2lubyk7CisKKwkJLyogc3luY2hyb25pemUgaW5vZGUgcGFnZSdzIGRhdGEgZnJvbSBpbm9kZSBjYWNoZSAqLworCQlpZiAoaXNfaW5vZGVfZmxhZ19zZXQoaW5vZGUsIEZJX05FV19JTk9ERSkpCisJCQlmMmZzX3VwZGF0ZV9pbm9kZShpbm9kZSwgcGFnZSk7CisKIAkJZjJmc19wdXRfcGFnZShwYWdlLCAxKTsKIAl9CiAKQEAgLTk0MywzICsxMDYyLDUwIEBAIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZjJmc19kaXJfb3BlcmF0aW9ucyA9IHsKIAkuY29tcGF0X2lvY3RsICAgPSBmMmZzX2NvbXBhdF9pb2N0bCwKICNlbmRpZgogfTsKKworI2lmZGVmIENPTkZJR19VTklDT0RFCitzdGF0aWMgaW50IGYyZnNfZF9jb21wYXJlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGxlbiwKKwkJCSAgY29uc3QgY2hhciAqc3RyLCBjb25zdCBzdHJ1Y3QgcXN0ciAqbmFtZSkKK3sKKwlzdHJ1Y3QgcXN0ciBxc3RyID0gey5uYW1lID0gc3RyLCAubGVuID0gbGVuIH07CisKKwlpZiAoIUlTX0NBU0VGT0xERUQoZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZSkpIHsKKwkJaWYgKGxlbiAhPSBuYW1lLT5sZW4pCisJCQlyZXR1cm4gLTE7CisJCXJldHVybiBtZW1jbXAoc3RyLCBuYW1lLCBsZW4pOworCX0KKworCXJldHVybiBmMmZzX2NpX2NvbXBhcmUoZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZSwgbmFtZSwgJnFzdHIsIGZhbHNlKTsKK30KKworc3RhdGljIGludCBmMmZzX2RfaGFzaChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBxc3RyICpzdHIpCit7CisJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19TQihkZW50cnktPmRfc2IpOworCWNvbnN0IHN0cnVjdCB1bmljb2RlX21hcCAqdW0gPSBzYmktPnNfZW5jb2Rpbmc7CisJdW5zaWduZWQgY2hhciAqbm9ybTsKKwlpbnQgbGVuLCByZXQgPSAwOworCisJaWYgKCFJU19DQVNFRk9MREVEKGRlbnRyeS0+ZF9pbm9kZSkpCisJCXJldHVybiAwOworCisJbm9ybSA9IGYyZnNfa21hbGxvYyhzYmksIFBBVEhfTUFYLCBHRlBfQVRPTUlDKTsKKwlpZiAoIW5vcm0pCisJCXJldHVybiAtRU5PTUVNOworCisJbGVuID0gdXRmOF9jYXNlZm9sZCh1bSwgc3RyLCBub3JtLCBQQVRIX01BWCk7CisJaWYgKGxlbiA8IDApIHsKKwkJaWYgKGYyZnNfaGFzX3N0cmljdF9tb2RlKHNiaSkpCisJCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIG91dDsKKwl9CisJc3RyLT5oYXNoID0gZnVsbF9uYW1lX2hhc2goZGVudHJ5LCBub3JtLCBsZW4pOworb3V0OgorCWt2ZnJlZShub3JtKTsKKwlyZXR1cm4gcmV0OworfQorCitjb25zdCBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgZjJmc19kZW50cnlfb3BzID0geworCS5kX2hhc2ggPSBmMmZzX2RfaGFzaCwKKwkuZF9jb21wYXJlID0gZjJmc19kX2NvbXBhcmUsCit9OworI2VuZGlmCmRpZmYgLS1naXQgYS9mcy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCmluZGV4IDdjNWYxMjEuLjQwMjQ3OTAgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvZjJmcy5oCisrKyBiL2ZzL2YyZnMvZjJmcy5oCkBAIC0xNTQsNiArMTU0LDcgQEAgc3RydWN0IGYyZnNfbW91bnRfaW5mbyB7CiAjZGVmaW5lIEYyRlNfRkVBVFVSRV9MT1NUX0ZPVU5ECQkweDAyMDAKICNkZWZpbmUgRjJGU19GRUFUVVJFX1ZFUklUWQkJMHgwNDAwCiAjZGVmaW5lIEYyRlNfRkVBVFVSRV9TQl9DSEtTVU0JCTB4MDgwMAorI2RlZmluZSBGMkZTX0ZFQVRVUkVfQ0FTRUZPTEQJCTB4MTAwMAogCiAjZGVmaW5lIF9fRjJGU19IQVNfRkVBVFVSRShyYXdfc3VwZXIsIG1hc2spCQkJCVwKIAkoKHJhd19zdXBlci0+ZmVhdHVyZSAmIGNwdV90b19sZTMyKG1hc2spKSAhPSAwKQpAQCAtNDE4LDYgKzQxOSw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfX2hhc19jdXJzdW1fc3BhY2Uoc3RydWN0IGYyZnNfam91cm5hbCAqam91cm5hbCwKICNkZWZpbmUgRjJGU19JT0NfUFJFQ0FDSEVfRVhURU5UUwlfSU8oRjJGU19JT0NUTF9NQUdJQywgMTUpCiAjZGVmaW5lIEYyRlNfSU9DX1JFU0laRV9GUwkJX0lPVyhGMkZTX0lPQ1RMX01BR0lDLCAxNiwgX191NjQpCiAKKyNkZWZpbmUgRjJGU19JT0NfR0VUX1ZPTFVNRV9OQU1FCUZTX0lPQ19HRVRGU0xBQkVMCisjZGVmaW5lIEYyRlNfSU9DX1NFVF9WT0xVTUVfTkFNRQlGU19JT0NfU0VURlNMQUJFTAorCiAjZGVmaW5lIEYyRlNfSU9DX1NFVF9FTkNSWVBUSU9OX1BPTElDWQlGU19JT0NfU0VUX0VOQ1JZUFRJT05fUE9MSUNZCiAjZGVmaW5lIEYyRlNfSU9DX0dFVF9FTkNSWVBUSU9OX1BPTElDWQlGU19JT0NfR0VUX0VOQ1JZUFRJT05fUE9MSUNZCiAjZGVmaW5lIEYyRlNfSU9DX0dFVF9FTkNSWVBUSU9OX1BXU0FMVAlGU19JT0NfR0VUX0VOQ1JZUFRJT05fUFdTQUxUCkBAIC0xMTcyLDYgKzExNzYsMTAgQEAgc3RydWN0IGYyZnNfc2JfaW5mbyB7CiAJaW50IHZhbGlkX3N1cGVyX2Jsb2NrOwkJCS8qIHZhbGlkIHN1cGVyIGJsb2NrIG5vICovCiAJdW5zaWduZWQgbG9uZyBzX2ZsYWc7CQkJCS8qIGZsYWdzIGZvciBzYmkgKi8KIAlzdHJ1Y3QgbXV0ZXggd3JpdGVwYWdlczsJCS8qIG11dGV4IGZvciB3cml0ZXBhZ2VzKCkgKi8KKyNpZmRlZiBDT05GSUdfVU5JQ09ERQorCXN0cnVjdCB1bmljb2RlX21hcCAqc19lbmNvZGluZzsKKwlfX3UxNiBzX2VuY29kaW5nX2ZsYWdzOworI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfQkxLX0RFVl9aT05FRAogCXVuc2lnbmVkIGludCBibG9ja3NfcGVyX2Jsa3o7CQkvKiBGMkZTIGJsb2NrcyBwZXIgem9uZSAqLwpAQCAtMTY0Myw2ICsxNjUxLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2NrcHRfZmxhZ3Moc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCB1bnNpZ25lZCBpbnQgZikKIHN0YXRpYyBpbmxpbmUgdm9pZCBkaXNhYmxlX25hdF9iaXRzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYm9vbCBsb2NrKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgY2hhciAqbmF0X2JpdHM7CiAKIAkvKgogCSAqIEluIG9yZGVyIHRvIHJlLWVuYWJsZSBuYXRfYml0cyB3ZSBuZWVkIHRvIGNhbGwgZnNjay5mMmZzIGJ5CkBAIC0xNjUzLDEwICsxNjYyLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkaXNhYmxlX25hdF9iaXRzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYm9vbCBsb2NrKQogCWlmIChsb2NrKQogCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2JpLT5jcF9sb2NrLCBmbGFncyk7CiAJX19jbGVhcl9ja3B0X2ZsYWdzKEYyRlNfQ0tQVChzYmkpLCBDUF9OQVRfQklUU19GTEFHKTsKLQlrdmZyZWUoTk1fSShzYmkpLT5uYXRfYml0cyk7CisJbmF0X2JpdHMgPSBOTV9JKHNiaSktPm5hdF9iaXRzOwogCU5NX0koc2JpKS0+bmF0X2JpdHMgPSBOVUxMOwogCWlmIChsb2NrKQogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzYmktPmNwX2xvY2ssIGZsYWdzKTsKKworCWt2ZnJlZShuYXRfYml0cyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBlbmFibGVkX25hdF9iaXRzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKQEAgLTE3NjMsNyArMTc3NCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGluY192YWxpZF9ibG9ja19jb3VudChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCiAJaWYgKHRpbWVfdG9faW5qZWN0KHNiaSwgRkFVTFRfQkxPQ0spKSB7CiAJCWYyZnNfc2hvd19pbmplY3Rpb25faW5mbyhGQVVMVF9CTE9DSyk7CiAJCXJlbGVhc2UgPSAqY291bnQ7Ci0JCWdvdG8gZW5vc3BjOworCQlnb3RvIHJlbGVhc2VfcXVvdGE7CiAJfQogCiAJLyoKQEAgLTE4MDgsNiArMTgxOSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGluY192YWxpZF9ibG9ja19jb3VudChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCiAKIGVub3NwYzoKIAlwZXJjcHVfY291bnRlcl9zdWIoJnNiaS0+YWxsb2NfdmFsaWRfYmxvY2tfY291bnQsIHJlbGVhc2UpOworcmVsZWFzZV9xdW90YToKIAlkcXVvdF9yZWxlYXNlX3Jlc2VydmF0aW9uX2Jsb2NrKGlub2RlLCByZWxlYXNlKTsKIAlyZXR1cm4gLUVOT1NQQzsKIH0KQEAgLTIzNjIsMTMgKzIzNzQsMTYgQEAgc3RhdGljIGlubGluZSB2b2lkIGYyZnNfY2hhbmdlX2JpdCh1bnNpZ25lZCBpbnQgbnIsIGNoYXIgKmFkZHIpCiAjZGVmaW5lIEYyRlNfSU5ERVhfRkwJCQkweDAwMDAxMDAwIC8qIGhhc2gtaW5kZXhlZCBkaXJlY3RvcnkgKi8KICNkZWZpbmUgRjJGU19ESVJTWU5DX0ZMCQkJMHgwMDAxMDAwMCAvKiBkaXJzeW5jIGJlaGF2aW91ciAoZGlyZWN0b3JpZXMgb25seSkgKi8KICNkZWZpbmUgRjJGU19QUk9KSU5IRVJJVF9GTAkJMHgyMDAwMDAwMCAvKiBDcmVhdGUgd2l0aCBwYXJlbnRzIHByb2ppZCAqLworI2RlZmluZSBGMkZTX0NBU0VGT0xEX0ZMCQkweDQwMDAwMDAwIC8qIENhc2Vmb2xkZWQgZmlsZSAqLwogCiAvKiBGbGFncyB0aGF0IHNob3VsZCBiZSBpbmhlcml0ZWQgYnkgbmV3IGlub2RlcyBmcm9tIHRoZWlyIHBhcmVudC4gKi8KICNkZWZpbmUgRjJGU19GTF9JTkhFUklURUQgKEYyRlNfU1lOQ19GTCB8IEYyRlNfTk9EVU1QX0ZMIHwgRjJGU19OT0FUSU1FX0ZMIHwgXAotCQkJICAgRjJGU19ESVJTWU5DX0ZMIHwgRjJGU19QUk9KSU5IRVJJVF9GTCkKKwkJCSAgIEYyRlNfRElSU1lOQ19GTCB8IEYyRlNfUFJPSklOSEVSSVRfRkwgfCBcCisJCQkgICBGMkZTX0NBU0VGT0xEX0ZMKQogCiAvKiBGbGFncyB0aGF0IGFyZSBhcHByb3ByaWF0ZSBmb3IgcmVndWxhciBmaWxlcyAoYWxsIGJ1dCBkaXItc3BlY2lmaWMgb25lcykuICovCi0jZGVmaW5lIEYyRlNfUkVHX0ZMTUFTSwkJKH4oRjJGU19ESVJTWU5DX0ZMIHwgRjJGU19QUk9KSU5IRVJJVF9GTCkpCisjZGVmaW5lIEYyRlNfUkVHX0ZMTUFTSwkJKH4oRjJGU19ESVJTWU5DX0ZMIHwgRjJGU19QUk9KSU5IRVJJVF9GTCB8IFwKKwkJCQlGMkZTX0NBU0VGT0xEX0ZMKSkKIAogLyogRmxhZ3MgdGhhdCBhcmUgYXBwcm9wcmlhdGUgZm9yIG5vbi1kaXJlY3Rvcmllcy9yZWd1bGFyIGZpbGVzLiAqLwogI2RlZmluZSBGMkZTX09USEVSX0ZMTUFTSwkoRjJGU19OT0RVTVBfRkwgfCBGMkZTX05PQVRJTUVfRkwpCkBAIC0yOTM1LDYgKzI5NTAsMTEgQEAgaW50IGYyZnNfdXBkYXRlX2V4dGVuc2lvbl9saXN0KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkJCQlib29sIGhvdCwgYm9vbCBzZXQpOwogc3RydWN0IGRlbnRyeSAqZjJmc19nZXRfcGFyZW50KHN0cnVjdCBkZW50cnkgKmNoaWxkKTsKIAorZXh0ZXJuIGludCBmMmZzX2NpX2NvbXBhcmUoY29uc3Qgc3RydWN0IGlub2RlICpwYXJlbnQsCisJCQkgICBjb25zdCBzdHJ1Y3QgcXN0ciAqbmFtZSwKKwkJCSAgIGNvbnN0IHN0cnVjdCBxc3RyICplbnRyeSwKKwkJCSAgIGJvb2wgcXVpY2spOworCiAvKgogICogZGlyLmMKICAqLwpAQCAtMjk5OCw4ICszMDE4LDggQEAgaW50IGYyZnNfc2FuaXR5X2NoZWNrX2NrcHQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKTsKIC8qCiAgKiBoYXNoLmMKICAqLwotZjJmc19oYXNoX3QgZjJmc19kZW50cnlfaGFzaChjb25zdCBzdHJ1Y3QgcXN0ciAqbmFtZV9pbmZvLAotCQkJCXN0cnVjdCBmc2NyeXB0X25hbWUgKmZuYW1lKTsKK2YyZnNfaGFzaF90IGYyZnNfZGVudHJ5X2hhc2goY29uc3Qgc3RydWN0IGlub2RlICpkaXIsCisJCWNvbnN0IHN0cnVjdCBxc3RyICpuYW1lX2luZm8sIHN0cnVjdCBmc2NyeXB0X25hbWUgKmZuYW1lKTsKIAogLyoKICAqIG5vZGUuYwpAQCAtMzQ0Miw2ICszNDYyLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGYyZnNfZGVzdHJveV9yb290X3N0YXRzKHZvaWQpIHsgfQogI2VuZGlmCiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGYyZnNfZGlyX29wZXJhdGlvbnM7CisjaWZkZWYgQ09ORklHX1VOSUNPREUKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgZjJmc19kZW50cnlfb3BzOworI2VuZGlmCiBleHRlcm4gY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmMmZzX2ZpbGVfb3BlcmF0aW9uczsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBmMmZzX2ZpbGVfaW5vZGVfb3BlcmF0aW9uczsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIGYyZnNfZGJsb2NrX2FvcHM7CkBAIC0zNTc2LDYgKzM1OTksNyBAQCBGMkZTX0ZFQVRVUkVfRlVOQ1MoaW5vZGVfY3J0aW1lLCBJTk9ERV9DUlRJTUUpOwogRjJGU19GRUFUVVJFX0ZVTkNTKGxvc3RfZm91bmQsIExPU1RfRk9VTkQpOwogRjJGU19GRUFUVVJFX0ZVTkNTKHZlcml0eSwgVkVSSVRZKTsKIEYyRlNfRkVBVFVSRV9GVU5DUyhzYl9jaGtzdW0sIFNCX0NIS1NVTSk7CitGMkZTX0ZFQVRVUkVfRlVOQ1MoY2FzZWZvbGQsIENBU0VGT0xEKTsKIAogI2lmZGVmIENPTkZJR19CTEtfREVWX1pPTkVECiBzdGF0aWMgaW5saW5lIGJvb2wgZjJmc19ibGt6X2lzX3NlcShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGludCBkZXZpLApAQCAtMzY5NCwxMSArMzcxOCwxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZjJmc19mb3JjZV9idWZmZXJlZF9pbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCSAqLwogCWlmIChmMmZzX3NiX2hhc19ibGt6b25lZChzYmkpKQogCQlyZXR1cm4gdHJ1ZTsKLQlpZiAodGVzdF9vcHQoc2JpLCBMRlMpICYmIChydyA9PSBXUklURSkgJiYKLQkJCQlibG9ja191bmFsaWduZWRfSU8oaW5vZGUsIGlvY2IsIGl0ZXIpKQotCQlyZXR1cm4gdHJ1ZTsKKwlpZiAodGVzdF9vcHQoc2JpLCBMRlMpICYmIChydyA9PSBXUklURSkpIHsKKwkJaWYgKGJsb2NrX3VuYWxpZ25lZF9JTyhpbm9kZSwgaW9jYiwgaXRlcikpCisJCQlyZXR1cm4gdHJ1ZTsKKwkJaWYgKEYyRlNfSU9fQUxJR05FRChzYmkpKQorCQkJcmV0dXJuIHRydWU7CisJfQogCWlmIChpc19zYmlfZmxhZ19zZXQoRjJGU19JX1NCKGlub2RlKSwgU0JJX0NQX0RJU0FCTEVEKSAmJgotCQkJCQkhKGlub2RlLT5pX2ZsYWdzICYgU19TV0FQRklMRSkpCisJCQkJCSFJU19TV0FQRklMRShpbm9kZSkpCiAJCXJldHVybiB0cnVlOwogCiAJcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9maWxlLmMgYi9mcy9mMmZzL2ZpbGUuYwppbmRleCAzOWZmZmMxLi4yOWJjMGE1IDEwMDY0NAotLS0gYS9mcy9mMmZzL2ZpbGUuYworKysgYi9mcy9mMmZzL2ZpbGUuYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgogI2luY2x1ZGUgPGxpbnV4L3V1aWQuaD4KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvbmxzLmg+CiAKICNpbmNsdWRlICJmMmZzLmgiCiAjaW5jbHVkZSAibm9kZS5oIgpAQCAtNTcsNiArNTgsMTEgQEAgc3RhdGljIHZtX2ZhdWx0X3QgZjJmc192bV9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJCWdvdG8gZXJyOwogCX0KIAorCWlmICghZjJmc19pc19jaGVja3BvaW50X3JlYWR5KHNiaSkpIHsKKwkJZXJyID0gLUVOT1NQQzsKKwkJZ290byBlcnI7CisJfQorCiAJc2Jfc3RhcnRfcGFnZWZhdWx0KGlub2RlLT5pX3NiKTsKIAogCWYyZnNfYnVnX29uKHNiaSwgZjJmc19oYXNfaW5saW5lX2RhdGEoaW5vZGUpKTsKQEAgLTc0NSwxNSArNzUxLDE4IEBAIHN0YXRpYyB2b2lkIF9fc2V0YXR0cl9jb3B5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBpYXR0ciAqYXR0cikKIAkJaW5vZGUtPmlfdWlkID0gYXR0ci0+aWFfdWlkOwogCWlmIChpYV92YWxpZCAmIEFUVFJfR0lEKQogCQlpbm9kZS0+aV9naWQgPSBhdHRyLT5pYV9naWQ7Ci0JaWYgKGlhX3ZhbGlkICYgQVRUUl9BVElNRSkKLQkJaW5vZGUtPmlfYXRpbWUgPSB0aW1lc3BlYzY0X3RydW5jKGF0dHItPmlhX2F0aW1lLAotCQkJCQkJICBpbm9kZS0+aV9zYi0+c190aW1lX2dyYW4pOwotCWlmIChpYV92YWxpZCAmIEFUVFJfTVRJTUUpCi0JCWlub2RlLT5pX210aW1lID0gdGltZXNwZWM2NF90cnVuYyhhdHRyLT5pYV9tdGltZSwKLQkJCQkJCSAgaW5vZGUtPmlfc2ItPnNfdGltZV9ncmFuKTsKLQlpZiAoaWFfdmFsaWQgJiBBVFRSX0NUSU1FKQotCQlpbm9kZS0+aV9jdGltZSA9IHRpbWVzcGVjNjRfdHJ1bmMoYXR0ci0+aWFfY3RpbWUsCi0JCQkJCQkgIGlub2RlLT5pX3NiLT5zX3RpbWVfZ3Jhbik7CisJaWYgKGlhX3ZhbGlkICYgQVRUUl9BVElNRSkgeworCQlpbm9kZS0+aV9hdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZShhdHRyLT5pYV9hdGltZSwKKwkJCQkJCSAgaW5vZGUpOworCX0KKwlpZiAoaWFfdmFsaWQgJiBBVFRSX01USU1FKSB7CisJCWlub2RlLT5pX210aW1lID0gdGltZXN0YW1wX3RydW5jYXRlKGF0dHItPmlhX210aW1lLAorCQkJCQkJICBpbm9kZSk7CisJfQorCWlmIChpYV92YWxpZCAmIEFUVFJfQ1RJTUUpIHsKKwkJaW5vZGUtPmlfY3RpbWUgPSB0aW1lc3RhbXBfdHJ1bmNhdGUoYXR0ci0+aWFfY3RpbWUsCisJCQkJCQkgIGlub2RlKTsKKwl9CiAJaWYgKGlhX3ZhbGlkICYgQVRUUl9NT0RFKSB7CiAJCXVtb2RlX3QgbW9kZSA9IGF0dHItPmlhX21vZGU7CiAKQEAgLTgxNiwxNCArODI1LDI0IEBAIGludCBmMmZzX3NldGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmF0dHIpCiAJfQogCiAJaWYgKGF0dHItPmlhX3ZhbGlkICYgQVRUUl9TSVpFKSB7Ci0JCWJvb2wgdG9fc21hbGxlciA9IChhdHRyLT5pYV9zaXplIDw9IGlfc2l6ZV9yZWFkKGlub2RlKSk7CisJCWxvZmZfdCBvbGRfc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKKworCQlpZiAoYXR0ci0+aWFfc2l6ZSA+IE1BWF9JTkxJTkVfREFUQShpbm9kZSkpIHsKKwkJCS8qCisJCQkgKiBzaG91bGQgY29udmVydCBpbmxpbmUgaW5vZGUgYmVmb3JlIGlfc2l6ZV93cml0ZSB0bworCQkJICoga2VlcCBzbWFsbGVyIHRoYW4gaW5saW5lX2RhdGEgc2l6ZSB3aXRoIGlubGluZSBmbGFnLgorCQkJICovCisJCQllcnIgPSBmMmZzX2NvbnZlcnRfaW5saW5lX2lub2RlKGlub2RlKTsKKwkJCWlmIChlcnIpCisJCQkJcmV0dXJuIGVycjsKKwkJfQogCiAJCWRvd25fd3JpdGUoJkYyRlNfSShpbm9kZSktPmlfZ2NfcndzZW1bV1JJVEVdKTsKIAkJZG93bl93cml0ZSgmRjJGU19JKGlub2RlKS0+aV9tbWFwX3NlbSk7CiAKIAkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgYXR0ci0+aWFfc2l6ZSk7CiAKLQkJaWYgKHRvX3NtYWxsZXIpCisJCWlmIChhdHRyLT5pYV9zaXplIDw9IG9sZF9zaXplKQogCQkJZXJyID0gZjJmc190cnVuY2F0ZShpbm9kZSk7CiAJCS8qCiAJCSAqIGRvIG5vdCB0cmltIGFsbCBibG9ja3MgYWZ0ZXIgaV9zaXplIGlmIHRhcmdldCBzaXplIGlzCkBAIC04MzEsMjEgKzg1MCwxMSBAQCBpbnQgZjJmc19zZXRhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICphdHRyKQogCQkgKi8KIAkJdXBfd3JpdGUoJkYyRlNfSShpbm9kZSktPmlfbW1hcF9zZW0pOwogCQl1cF93cml0ZSgmRjJGU19JKGlub2RlKS0+aV9nY19yd3NlbVtXUklURV0pOwotCiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOwogCi0JCWlmICghdG9fc21hbGxlcikgewotCQkJLyogc2hvdWxkIGNvbnZlcnQgaW5saW5lIGlub2RlIGhlcmUgKi8KLQkJCWlmICghZjJmc19tYXlfaW5saW5lX2RhdGEoaW5vZGUpKSB7Ci0JCQkJZXJyID0gZjJmc19jb252ZXJ0X2lubGluZV9pbm9kZShpbm9kZSk7Ci0JCQkJaWYgKGVycikKLQkJCQkJcmV0dXJuIGVycjsKLQkJCX0KLQkJCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwotCQl9Ci0KIAkJZG93bl93cml0ZSgmRjJGU19JKGlub2RlKS0+aV9zZW0pOworCQlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAkJRjJGU19JKGlub2RlKS0+bGFzdF9kaXNrX3NpemUgPSBpX3NpemVfcmVhZChpbm9kZSk7CiAJCXVwX3dyaXRlKCZGMkZTX0koaW5vZGUpLT5pX3NlbSk7CiAJfQpAQCAtMTAzOCw3ICsxMDQ3LDcgQEAgc3RhdGljIGludCBfX3JlYWRfb3V0X2Jsa2FkZHJzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGJsb2NrX3QgKmJsa2FkZHIsCiAKIAkJCWlmICh0ZXN0X29wdChzYmksIExGUykpIHsKIAkJCQlmMmZzX3B1dF9kbm9kZSgmZG4pOwotCQkJCXJldHVybiAtRU5PVFNVUFA7CisJCQkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCQkJfQogCiAJCQkvKiBkbyBub3QgaW52YWxpZGF0ZSB0aGlzIGJsb2NrIGFkZHJlc3MgKi8KQEAgLTE1NzUsNiArMTU4NCw4IEBAIHN0YXRpYyBsb25nIGYyZnNfZmFsbG9jYXRlKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbW9kZSwKIAogCWlmICh1bmxpa2VseShmMmZzX2NwX2Vycm9yKEYyRlNfSV9TQihpbm9kZSkpKSkKIAkJcmV0dXJuIC1FSU87CisJaWYgKCFmMmZzX2lzX2NoZWNrcG9pbnRfcmVhZHkoRjJGU19JX1NCKGlub2RlKSkpCisJCXJldHVybiAtRU5PU1BDOwogCiAJLyogZjJmcyBvbmx5IHN1cHBvcnQgLT5mYWxsb2NhdGUgZm9yIHJlZ3VsYXIgZmlsZSAqLwogCWlmICghU19JU1JFRyhpbm9kZS0+aV9tb2RlKSkKQEAgLTE2NjYsNiArMTY3NywxMyBAQCBzdGF0aWMgaW50IGYyZnNfc2V0ZmxhZ3NfY29tbW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHUzMiBpZmxhZ3MsIHUzMiBtYXNrKQogCWlmIChJU19OT1FVT1RBKGlub2RlKSkKIAkJcmV0dXJuIC1FUEVSTTsKIAorCWlmICgoaWZsYWdzIF4gZmktPmlfZmxhZ3MpICYgRjJGU19DQVNFRk9MRF9GTCkgeworCQlpZiAoIWYyZnNfc2JfaGFzX2Nhc2Vmb2xkKEYyRlNfSV9TQihpbm9kZSkpKQorCQkJcmV0dXJuIC1FT1BOT1RTVVBQOworCQlpZiAoIWYyZnNfZW1wdHlfZGlyKGlub2RlKSkKKwkJCXJldHVybiAtRU5PVEVNUFRZOworCX0KKwogCWZpLT5pX2ZsYWdzID0gaWZsYWdzIHwgKGZpLT5pX2ZsYWdzICYgfm1hc2spOwogCiAJaWYgKGZpLT5pX2ZsYWdzICYgRjJGU19QUk9KSU5IRVJJVF9GTCkKQEAgLTE3MDAsNiArMTcxOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCXsgRjJGU19JTkRFWF9GTCwJRlNfSU5ERVhfRkwgfSwKIAl7IEYyRlNfRElSU1lOQ19GTCwJRlNfRElSU1lOQ19GTCB9LAogCXsgRjJGU19QUk9KSU5IRVJJVF9GTCwJRlNfUFJPSklOSEVSSVRfRkwgfSwKKwl7IEYyRlNfQ0FTRUZPTERfRkwsCUZTX0NBU0VGT0xEX0ZMIH0sCiB9OwogCiAjZGVmaW5lIEYyRlNfR0VUVEFCTEVfRlNfRkwgKAkJXApAQCAtMTcxNCw3ICsxNzMzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAJCUZTX0VOQ1JZUFRfRkwgfAkJXAogCQlGU19JTkxJTkVfREFUQV9GTCB8CVwKIAkJRlNfTk9DT1dfRkwgfAkJXAotCQlGU19WRVJJVFlfRkwpCisJCUZTX1ZFUklUWV9GTCB8CQlcCisJCUZTX0NBU0VGT0xEX0ZMKQogCiAjZGVmaW5lIEYyRlNfU0VUVEFCTEVfRlNfRkwgKAkJXAogCQlGU19TWU5DX0ZMIHwJCVwKQEAgLTE3MjMsNyArMTc0Myw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCQlGU19OT0RVTVBfRkwgfAkJXAogCQlGU19OT0FUSU1FX0ZMIHwJCVwKIAkJRlNfRElSU1lOQ19GTCB8CQlcCi0JCUZTX1BST0pJTkhFUklUX0ZMKQorCQlGU19QUk9KSU5IRVJJVF9GTCB8CVwKKwkJRlNfQ0FTRUZPTERfRkwpCiAKIC8qIENvbnZlcnQgZjJmcyBvbi1kaXNrIGlfZmxhZ3MgdG8gRlNfSU9DX3tHRVQsU0VUfUZMQUdTIGZsYWdzICovCiBzdGF0aWMgaW5saW5lIHUzMiBmMmZzX2lmbGFnc190b19mc2ZsYWdzKHUzMiBpZmxhZ3MpCkBAIC0xODIyLDYgKzE4NDMsOCBAQCBzdGF0aWMgaW50IGYyZnNfaW9jX2dldHZlcnNpb24oc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGxvbmcgYXJnKQogc3RhdGljIGludCBmMmZzX2lvY19zdGFydF9hdG9taWNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlscCk7CisJc3RydWN0IGYyZnNfaW5vZGVfaW5mbyAqZmkgPSBGMkZTX0koaW5vZGUpOworCXN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IEYyRlNfSV9TQihpbm9kZSk7CiAJaW50IHJldDsKIAogCWlmICghaW5vZGVfb3duZXJfb3JfY2FwYWJsZShpbm9kZSkpCkBAIC0xODMwLDYgKzE4NTMsOSBAQCBzdGF0aWMgaW50IGYyZnNfaW9jX3N0YXJ0X2F0b21pY193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCkKIAlpZiAoIVNfSVNSRUcoaW5vZGUtPmlfbW9kZSkpCiAJCXJldHVybiAtRUlOVkFMOwogCisJaWYgKGZpbHAtPmZfZmxhZ3MgJiBPX0RJUkVDVCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlyZXQgPSBtbnRfd2FudF93cml0ZV9maWxlKGZpbHApOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0xODYxLDYgKzE4ODcsMTIgQEAgc3RhdGljIGludCBmMmZzX2lvY19zdGFydF9hdG9taWNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHApCiAJCWdvdG8gb3V0OwogCX0KIAorCXNwaW5fbG9jaygmc2JpLT5pbm9kZV9sb2NrW0FUT01JQ19GSUxFXSk7CisJaWYgKGxpc3RfZW1wdHkoJmZpLT5pbm1lbV9pbGlzdCkpCisJCWxpc3RfYWRkX3RhaWwoJmZpLT5pbm1lbV9pbGlzdCwgJnNiaS0+aW5vZGVfbGlzdFtBVE9NSUNfRklMRV0pOworCXNwaW5fdW5sb2NrKCZzYmktPmlub2RlX2xvY2tbQVRPTUlDX0ZJTEVdKTsKKworCS8qIGFkZCBpbm9kZSBpbiBpbm1lbV9saXN0IGZpcnN0IGFuZCBzZXQgYXRvbWljX2ZpbGUgKi8KIAlzZXRfaW5vZGVfZmxhZyhpbm9kZSwgRklfQVRPTUlDX0ZJTEUpOwogCWNsZWFyX2lub2RlX2ZsYWcoaW5vZGUsIEZJX0FUT01JQ19SRVZPS0VfUkVRVUVTVCk7CiAJdXBfd3JpdGUoJkYyRlNfSShpbm9kZSktPmlfZ2NfcndzZW1bV1JJVEVdKTsKQEAgLTE5MDIsMTEgKzE5MzQsOCBAQCBzdGF0aWMgaW50IGYyZnNfaW9jX2NvbW1pdF9hdG9taWNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHApCiAJCQlnb3RvIGVycl9vdXQ7CiAKIAkJcmV0ID0gZjJmc19kb19zeW5jX2ZpbGUoZmlscCwgMCwgTExPTkdfTUFYLCAwLCB0cnVlKTsKLQkJaWYgKCFyZXQpIHsKLQkJCWNsZWFyX2lub2RlX2ZsYWcoaW5vZGUsIEZJX0FUT01JQ19GSUxFKTsKLQkJCUYyRlNfSShpbm9kZSktPmlfZ2NfZmFpbHVyZXNbR0NfRkFJTFVSRV9BVE9NSUNdID0gMDsKLQkJCXN0YXRfZGVjX2F0b21pY193cml0ZShpbm9kZSk7Ci0JCX0KKwkJaWYgKCFyZXQpCisJCQlmMmZzX2Ryb3BfaW5tZW1fcGFnZXMoaW5vZGUpOwogCX0gZWxzZSB7CiAJCXJldCA9IGYyZnNfZG9fc3luY19maWxlKGZpbHAsIDAsIExMT05HX01BWCwgMSwgZmFsc2UpOwogCX0KQEAgLTIyOTIsOSArMjMyMSw5IEBAIHN0YXRpYyBpbnQgZjJmc19pb2NfZ2NfcmFuZ2Uoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQlyZXR1cm4gLUVST0ZTOwogCiAJZW5kID0gcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW47Ci0JaWYgKHJhbmdlLnN0YXJ0IDwgTUFJTl9CTEtBRERSKHNiaSkgfHwgZW5kID49IE1BWF9CTEtBRERSKHNiaSkpIHsKKwlpZiAoZW5kIDwgcmFuZ2Uuc3RhcnQgfHwgcmFuZ2Uuc3RhcnQgPCBNQUlOX0JMS0FERFIoc2JpKSB8fAorCQkJCQllbmQgPj0gTUFYX0JMS0FERFIoc2JpKSkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJcmV0ID0gbW50X3dhbnRfd3JpdGVfZmlsZShmaWxwKTsKIAlpZiAocmV0KQpAQCAtMjQxOCw4ICsyNDQ3LDEwIEBAIHN0YXRpYyBpbnQgZjJmc19kZWZyYWdtZW50X3JhbmdlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKIAkJbWFwLm1fbGJsayArPSBtYXAubV9sZW47CiAJfQogCi0JaWYgKCFmcmFnbWVudGVkKQorCWlmICghZnJhZ21lbnRlZCkgeworCQl0b3RhbCA9IDA7CiAJCWdvdG8gb3V0OworCX0KIAogCXNlY19udW0gPSBESVZfUk9VTkRfVVAodG90YWwsIEJMS1NfUEVSX1NFQyhzYmkpKTsKIApAQCAtMjQ0OSw3ICsyNDgwLDcgQEAgc3RhdGljIGludCBmMmZzX2RlZnJhZ21lbnRfcmFuZ2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCiAJCWlmICghKG1hcC5tX2ZsYWdzICYgRjJGU19NQVBfRkxBR1MpKSB7CiAJCQltYXAubV9sYmxrID0gbmV4dF9wZ29mczsKLQkJCWNvbnRpbnVlOworCQkJZ290byBjaGVjazsKIAkJfQogCiAJCXNldF9pbm9kZV9mbGFnKGlub2RlLCBGSV9ET19ERUZSQUcpOwpAQCAtMjQ3Myw4ICsyNTA0LDggQEAgc3RhdGljIGludCBmMmZzX2RlZnJhZ21lbnRfcmFuZ2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCQl9CiAKIAkJbWFwLm1fbGJsayA9IGlkeDsKLQotCQlpZiAoaWR4IDwgcGdfZW5kICYmIGNudCA8IGJsa19wZXJfc2VnKQorY2hlY2s6CisJCWlmIChtYXAubV9sYmxrIDwgcGdfZW5kICYmIGNudCA8IGJsa19wZXJfc2VnKQogCQkJZ290byBkb19tYXA7CiAKIAkJY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRklfRE9fREVGUkFHKTsKQEAgLTMxMzgsMTAgKzMxNjksNzQgQEAgc3RhdGljIGludCBmMmZzX2lvY19tZWFzdXJlX3Zlcml0eShzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJcmV0dXJuIGZzdmVyaXR5X2lvY3RsX21lYXN1cmUoZmlscCwgKHZvaWQgX191c2VyICopYXJnKTsKIH0KIAorc3RhdGljIGludCBmMmZzX2dldF92b2x1bWVfbmFtZShzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlscCk7CisJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19JX1NCKGlub2RlKTsKKwljaGFyICp2YnVmOworCWludCBjb3VudDsKKwlpbnQgZXJyID0gMDsKKworCXZidWYgPSBmMmZzX2t6YWxsb2Moc2JpLCBNQVhfVk9MVU1FX05BTUUsIEdGUF9LRVJORUwpOworCWlmICghdmJ1ZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkb3duX3JlYWQoJnNiaS0+c2JfbG9jayk7CisJY291bnQgPSB1dGYxNnNfdG9fdXRmOHMoc2JpLT5yYXdfc3VwZXItPnZvbHVtZV9uYW1lLAorCQkJQVJSQVlfU0laRShzYmktPnJhd19zdXBlci0+dm9sdW1lX25hbWUpLAorCQkJVVRGMTZfTElUVExFX0VORElBTiwgdmJ1ZiwgTUFYX1ZPTFVNRV9OQU1FKTsKKwl1cF9yZWFkKCZzYmktPnNiX2xvY2spOworCisJaWYgKGNvcHlfdG9fdXNlcigoY2hhciBfX3VzZXIgKilhcmcsIHZidWYsCisJCQkJbWluKEZTTEFCRUxfTUFYLCBjb3VudCkpKQorCQllcnIgPSAtRUZBVUxUOworCisJa3ZmcmVlKHZidWYpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgZjJmc19zZXRfdm9sdW1lX25hbWUoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlX2lub2RlKGZpbHApOworCXN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IEYyRlNfSV9TQihpbm9kZSk7CisJY2hhciAqdmJ1ZjsKKwlpbnQgZXJyID0gMDsKKworCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKKwkJcmV0dXJuIC1FUEVSTTsKKworCXZidWYgPSBzdHJuZHVwX3VzZXIoKGNvbnN0IGNoYXIgX191c2VyICopYXJnLCBGU0xBQkVMX01BWCk7CisJaWYgKElTX0VSUih2YnVmKSkKKwkJcmV0dXJuIFBUUl9FUlIodmJ1Zik7CisKKwllcnIgPSBtbnRfd2FudF93cml0ZV9maWxlKGZpbHApOworCWlmIChlcnIpCisJCWdvdG8gb3V0OworCisJZG93bl93cml0ZSgmc2JpLT5zYl9sb2NrKTsKKworCW1lbXNldChzYmktPnJhd19zdXBlci0+dm9sdW1lX25hbWUsIDAsCisJCQlzaXplb2Yoc2JpLT5yYXdfc3VwZXItPnZvbHVtZV9uYW1lKSk7CisJdXRmOHNfdG9fdXRmMTZzKHZidWYsIHN0cmxlbih2YnVmKSwgVVRGMTZfTElUVExFX0VORElBTiwKKwkJCXNiaS0+cmF3X3N1cGVyLT52b2x1bWVfbmFtZSwKKwkJCUFSUkFZX1NJWkUoc2JpLT5yYXdfc3VwZXItPnZvbHVtZV9uYW1lKSk7CisKKwllcnIgPSBmMmZzX2NvbW1pdF9zdXBlcihzYmksIGZhbHNlKTsKKworCXVwX3dyaXRlKCZzYmktPnNiX2xvY2spOworCisJbW50X2Ryb3Bfd3JpdGVfZmlsZShmaWxwKTsKK291dDoKKwlrZnJlZSh2YnVmKTsKKwlyZXR1cm4gZXJyOworfQorCiBsb25nIGYyZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogewogCWlmICh1bmxpa2VseShmMmZzX2NwX2Vycm9yKEYyRlNfSV9TQihmaWxlX2lub2RlKGZpbHApKSkpKQogCQlyZXR1cm4gLUVJTzsKKwlpZiAoIWYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShGMkZTX0lfU0IoZmlsZV9pbm9kZShmaWxwKSkpKQorCQlyZXR1cm4gLUVOT1NQQzsKIAogCXN3aXRjaCAoY21kKSB7CiAJY2FzZSBGMkZTX0lPQ19HRVRGTEFHUzoKQEAgLTMyMTAsNiArMzMwNSwxMCBAQCBsb25nIGYyZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQlyZXR1cm4gZjJmc19pb2NfZW5hYmxlX3Zlcml0eShmaWxwLCBhcmcpOwogCWNhc2UgRlNfSU9DX01FQVNVUkVfVkVSSVRZOgogCQlyZXR1cm4gZjJmc19pb2NfbWVhc3VyZV92ZXJpdHkoZmlscCwgYXJnKTsKKwljYXNlIEYyRlNfSU9DX0dFVF9WT0xVTUVfTkFNRToKKwkJcmV0dXJuIGYyZnNfZ2V0X3ZvbHVtZV9uYW1lKGZpbHAsIGFyZyk7CisJY2FzZSBGMkZTX0lPQ19TRVRfVk9MVU1FX05BTUU6CisJCXJldHVybiBmMmZzX3NldF92b2x1bWVfbmFtZShmaWxwLCBhcmcpOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRU5PVFRZOwogCX0KQEAgLTMyMjYsMTYgKzMzMjUsMTIgQEAgc3RhdGljIHNzaXplX3QgZjJmc19maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pCiAJCWdvdG8gb3V0OwogCX0KIAotCWlmICgoaW9jYi0+a2lfZmxhZ3MgJiBJT0NCX05PV0FJVCkgJiYgIShpb2NiLT5raV9mbGFncyAmIElPQ0JfRElSRUNUKSkgewotCQlyZXQgPSAtRUlOVkFMOwotCQlnb3RvIG91dDsKLQl9Ci0KLQlpZiAoIWlub2RlX3RyeWxvY2soaW5vZGUpKSB7Ci0JCWlmIChpb2NiLT5raV9mbGFncyAmIElPQ0JfTk9XQUlUKSB7CisJaWYgKGlvY2ItPmtpX2ZsYWdzICYgSU9DQl9OT1dBSVQpIHsKKwkJaWYgKCFpbm9kZV90cnlsb2NrKGlub2RlKSkgewogCQkJcmV0ID0gLUVBR0FJTjsKIAkJCWdvdG8gb3V0OwogCQl9CisJfSBlbHNlIHsKIAkJaW5vZGVfbG9jayhpbm9kZSk7CiAJfQogCkBAIC0zMzMxLDYgKzM0MjYsOCBAQCBsb25nIGYyZnNfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIAljYXNlIEYyRlNfSU9DX1JFU0laRV9GUzoKIAljYXNlIEZTX0lPQ19FTkFCTEVfVkVSSVRZOgogCWNhc2UgRlNfSU9DX01FQVNVUkVfVkVSSVRZOgorCWNhc2UgRjJGU19JT0NfR0VUX1ZPTFVNRV9OQU1FOgorCWNhc2UgRjJGU19JT0NfU0VUX1ZPTFVNRV9OQU1FOgogCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVOT0lPQ1RMQ01EOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9nYy5jIGIvZnMvZjJmcy9nYy5jCmluZGV4IDg5NzQ2NzIuLjU4NzdiZDcgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvZ2MuYworKysgYi9mcy9mMmZzL2djLmMKQEAgLTM4Miw2ICszODIsMTYgQEAgc3RhdGljIGludCBnZXRfdmljdGltX2J5X2RlZmF1bHQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCQkJbnNlYXJjaGVkKys7CiAJCX0KIAorI2lmZGVmIENPTkZJR19GMkZTX0NIRUNLX0ZTCisJCS8qCisJCSAqIHNraXAgc2VsZWN0aW5nIHRoZSBpbnZhbGlkIHNlZ25vICh0aGF0IGlzIGZhaWxlZCBkdWUgdG8gYmxvY2sKKwkJICogdmFsaWRpdHkgY2hlY2sgZmFpbHVyZSBkdXJpbmcgR0MpIHRvIGF2b2lkIGVuZGxlc3MgR0MgbG9vcCBpbgorCQkgKiBzdWNoIGNhc2VzLgorCQkgKi8KKwkJaWYgKHRlc3RfYml0KHNlZ25vLCBzbS0+aW52YWxpZF9zZWdtYXApKQorCQkJZ290byBuZXh0OworI2VuZGlmCisKIAkJc2Vjbm8gPSBHRVRfU0VDX0ZST01fU0VHKHNiaSwgc2Vnbm8pOwogCiAJCWlmIChzZWNfdXNhZ2VfY2hlY2soc2JpLCBzZWNubykpCkBAIC02MjcsOCArNjM3LDIxIEBAIHN0YXRpYyBib29sIGlzX2FsaXZlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGYyZnNfc3VtbWFyeSAqc3VtLAogCXNvdXJjZV9ibGthZGRyID0gZGF0YWJsb2NrX2FkZHIoTlVMTCwgbm9kZV9wYWdlLCBvZnNfaW5fbm9kZSk7CiAJZjJmc19wdXRfcGFnZShub2RlX3BhZ2UsIDEpOwogCi0JaWYgKHNvdXJjZV9ibGthZGRyICE9IGJsa2FkZHIpCisJaWYgKHNvdXJjZV9ibGthZGRyICE9IGJsa2FkZHIpIHsKKyNpZmRlZiBDT05GSUdfRjJGU19DSEVDS19GUworCQl1bnNpZ25lZCBpbnQgc2Vnbm8gPSBHRVRfU0VHTk8oc2JpLCBibGthZGRyKTsKKwkJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBHRVRfQkxLT0ZGX0ZST01fU0VHMChzYmksIGJsa2FkZHIpOworCisJCWlmICh1bmxpa2VseShjaGVja192YWxpZF9tYXAoc2JpLCBzZWdubywgb2Zmc2V0KSkpIHsKKwkJCWlmICghdGVzdF9hbmRfc2V0X2JpdChzZWdubywgU0lUX0koc2JpKS0+aW52YWxpZF9zZWdtYXApKSB7CisJCQkJZjJmc19lcnIoc2JpLCAibWlzbWF0Y2hlZCBibGthZGRyICV1IChzb3VyY2VfYmxrYWRkciAldSkgaW4gc2VnICV1XG4iLAorCQkJCQkJYmxrYWRkciwgc291cmNlX2Jsa2FkZHIsIHNlZ25vKTsKKwkJCQlmMmZzX2J1Z19vbihzYmksIDEpOworCQkJfQorCQl9CisjZW5kaWYKIAkJcmV0dXJuIGZhbHNlOworCX0KIAlyZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTMwMyw3ICsxMzI2LDcgQEAgaW50IGYyZnNfZ2Moc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBib29sIHN5bmMsCiAJCXJvdW5kKys7CiAJfQogCi0JaWYgKGdjX3R5cGUgPT0gRkdfR0MpCisJaWYgKGdjX3R5cGUgPT0gRkdfR0MgJiYgc2VnX2ZyZWVkKQogCQlzYmktPmN1cl92aWN0aW1fc2VjID0gTlVMTF9TRUdOTzsKIAogCWlmIChzeW5jKQpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9oYXNoLmMgYi9mcy9mMmZzL2hhc2guYwppbmRleCBjYzgyZjE0Li41YmM0ZGNkIDEwMDY0NAotLS0gYS9mcy9mMmZzL2hhc2guYworKysgYi9mcy9mMmZzL2hhc2guYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2YyZnNfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9jcnlwdG9oYXNoLmg+CiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgorI2luY2x1ZGUgPGxpbnV4L3VuaWNvZGUuaD4KIAogI2luY2x1ZGUgImYyZnMuaCIKIApAQCAtNjcsNyArNjgsNyBAQCBzdGF0aWMgdm9pZCBzdHIyaGFzaGJ1Zihjb25zdCB1bnNpZ25lZCBjaGFyICptc2csIHNpemVfdCBsZW4sCiAJCSpidWYrKyA9IHBhZDsKIH0KIAotZjJmc19oYXNoX3QgZjJmc19kZW50cnlfaGFzaChjb25zdCBzdHJ1Y3QgcXN0ciAqbmFtZV9pbmZvLAorc3RhdGljIGYyZnNfaGFzaF90IF9fZjJmc19kZW50cnlfaGFzaChjb25zdCBzdHJ1Y3QgcXN0ciAqbmFtZV9pbmZvLAogCQkJCXN0cnVjdCBmc2NyeXB0X25hbWUgKmZuYW1lKQogewogCV9fdTMyIGhhc2g7CkBAIC0xMDMsMyArMTA0LDM3IEBAIGYyZnNfaGFzaF90IGYyZnNfZGVudHJ5X2hhc2goY29uc3Qgc3RydWN0IHFzdHIgKm5hbWVfaW5mbywKIAlmMmZzX2hhc2ggPSBjcHVfdG9fbGUzMihoYXNoICYgfkYyRlNfSEFTSF9DT0xfQklUKTsKIAlyZXR1cm4gZjJmc19oYXNoOwogfQorCitmMmZzX2hhc2hfdCBmMmZzX2RlbnRyeV9oYXNoKGNvbnN0IHN0cnVjdCBpbm9kZSAqZGlyLAorCQljb25zdCBzdHJ1Y3QgcXN0ciAqbmFtZV9pbmZvLCBzdHJ1Y3QgZnNjcnlwdF9uYW1lICpmbmFtZSkKK3sKKyNpZmRlZiBDT05GSUdfVU5JQ09ERQorCXN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IEYyRlNfU0IoZGlyLT5pX3NiKTsKKwljb25zdCBzdHJ1Y3QgdW5pY29kZV9tYXAgKnVtID0gc2JpLT5zX2VuY29kaW5nOworCWludCByLCBkbGVuOworCXVuc2lnbmVkIGNoYXIgKmJ1ZmY7CisJc3RydWN0IHFzdHIgZm9sZGVkOworCisJaWYgKCFuYW1lX2luZm8tPmxlbiB8fCAhSVNfQ0FTRUZPTERFRChkaXIpKQorCQlnb3RvIG9wYXF1ZV9zZXE7CisKKwlidWZmID0gZjJmc19remFsbG9jKHNiaSwgc2l6ZW9mKGNoYXIpICogUEFUSF9NQVgsIEdGUF9LRVJORUwpOworCWlmICghYnVmZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkbGVuID0gdXRmOF9jYXNlZm9sZCh1bSwgbmFtZV9pbmZvLCBidWZmLCBQQVRIX01BWCk7CisJaWYgKGRsZW4gPCAwKSB7CisJCWt2ZnJlZShidWZmKTsKKwkJZ290byBvcGFxdWVfc2VxOworCX0KKwlmb2xkZWQubmFtZSA9IGJ1ZmY7CisJZm9sZGVkLmxlbiA9IGRsZW47CisJciA9IF9fZjJmc19kZW50cnlfaGFzaCgmZm9sZGVkLCBmbmFtZSk7CisKKwlrdmZyZWUoYnVmZik7CisJcmV0dXJuIHI7CisKK29wYXF1ZV9zZXE6CisjZW5kaWYKKwlyZXR1cm4gX19mMmZzX2RlbnRyeV9oYXNoKG5hbWVfaW5mbywgZm5hbWUpOworfQpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9pbmxpbmUuYyBiL2ZzL2YyZnMvaW5saW5lLmMKaW5kZXggMzYxM2VmYy4uODk2ZGIwNCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9pbmxpbmUuYworKysgYi9mcy9mMmZzL2lubGluZS5jCkBAIC0xMzEsNiArMTMxLDcgQEAgaW50IGYyZnNfY29udmVydF9pbmxpbmVfcGFnZShzdHJ1Y3QgZG5vZGVfb2ZfZGF0YSAqZG4sIHN0cnVjdCBwYWdlICpwYWdlKQogCiAJZXJyID0gZjJmc19nZXRfbm9kZV9pbmZvKGZpby5zYmksIGRuLT5uaWQsICZuaSk7CiAJaWYgKGVycikgeworCQlmMmZzX3RydW5jYXRlX2RhdGFfYmxvY2tzX3JhbmdlKGRuLCAxKTsKIAkJZjJmc19wdXRfZG5vZGUoZG4pOwogCQlyZXR1cm4gZXJyOwogCX0KQEAgLTMyMCw3ICszMjEsNyBAQCBzdHJ1Y3QgZjJmc19kaXJfZW50cnkgKmYyZnNfZmluZF9pbl9pbmxpbmVfZGlyKHN0cnVjdCBpbm9kZSAqZGlyLAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQluYW1laGFzaCA9IGYyZnNfZGVudHJ5X2hhc2goJm5hbWUsIGZuYW1lKTsKKwluYW1laGFzaCA9IGYyZnNfZGVudHJ5X2hhc2goZGlyLCAmbmFtZSwgZm5hbWUpOwogCiAJaW5saW5lX2RlbnRyeSA9IGlubGluZV9kYXRhX2FkZHIoZGlyLCBpcGFnZSk7CiAKQEAgLTU4MCw3ICs1ODEsNyBAQCBpbnQgZjJmc19hZGRfaW5saW5lX2VudHJ5KHN0cnVjdCBpbm9kZSAqZGlyLCBjb25zdCBzdHJ1Y3QgcXN0ciAqbmV3X25hbWUsCiAKIAlmMmZzX3dhaXRfb25fcGFnZV93cml0ZWJhY2soaXBhZ2UsIE5PREUsIHRydWUsIHRydWUpOwogCi0JbmFtZV9oYXNoID0gZjJmc19kZW50cnlfaGFzaChuZXdfbmFtZSwgTlVMTCk7CisJbmFtZV9oYXNoID0gZjJmc19kZW50cnlfaGFzaChkaXIsIG5ld19uYW1lLCBOVUxMKTsKIAlmMmZzX3VwZGF0ZV9kZW50cnkoaW5vLCBtb2RlLCAmZCwgbmV3X25hbWUsIG5hbWVfaGFzaCwgYml0X3Bvcyk7CiAKIAlzZXRfcGFnZV9kaXJ0eShpcGFnZSk7CkBAIC01ODgsNiArNTg5LDExIEBAIGludCBmMmZzX2FkZF9pbmxpbmVfZW50cnkoc3RydWN0IGlub2RlICpkaXIsIGNvbnN0IHN0cnVjdCBxc3RyICpuZXdfbmFtZSwKIAkvKiB3ZSBkb24ndCBuZWVkIHRvIG1hcmtfaW5vZGVfZGlydHkgbm93ICovCiAJaWYgKGlub2RlKSB7CiAJCWYyZnNfaV9waW5vX3dyaXRlKGlub2RlLCBkaXItPmlfaW5vKTsKKworCQkvKiBzeW5jaHJvbml6ZSBpbm9kZSBwYWdlJ3MgZGF0YSBmcm9tIGlub2RlIGNhY2hlICovCisJCWlmIChpc19pbm9kZV9mbGFnX3NldChpbm9kZSwgRklfTkVXX0lOT0RFKSkKKwkJCWYyZnNfdXBkYXRlX2lub2RlKGlub2RlLCBwYWdlKTsKKwogCQlmMmZzX3B1dF9wYWdlKHBhZ2UsIDEpOwogCX0KIApAQCAtNzA0LDcgKzcxMCwxMyBAQCBpbnQgZjJmc19pbmxpbmVfZGF0YV9maWVtYXAoc3RydWN0IGlub2RlICppbm9kZSwKIAlpZiAoSVNfRVJSKGlwYWdlKSkKIAkJcmV0dXJuIFBUUl9FUlIoaXBhZ2UpOwogCi0JaWYgKCFmMmZzX2hhc19pbmxpbmVfZGF0YShpbm9kZSkpIHsKKwlpZiAoKFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkgfHwgU19JU0xOSyhpbm9kZS0+aV9tb2RlKSkgJiYKKwkJCQkhZjJmc19oYXNfaW5saW5lX2RhdGEoaW5vZGUpKSB7CisJCWVyciA9IC1FQUdBSU47CisJCWdvdG8gb3V0OworCX0KKworCWlmIChTX0lTRElSKGlub2RlLT5pX21vZGUpICYmICFmMmZzX2hhc19pbmxpbmVfZGVudHJ5KGlub2RlKSkgewogCQllcnIgPSAtRUFHQUlOOwogCQlnb3RvIG91dDsKIAl9CmRpZmYgLS1naXQgYS9mcy9mMmZzL2lub2RlLmMgYi9mcy9mMmZzL2lub2RlLmMKaW5kZXggMDZkYTc1ZC4uZGI0ZmVjMyAxMDA2NDQKLS0tIGEvZnMvZjJmcy9pbm9kZS5jCisrKyBiL2ZzL2YyZnMvaW5vZGUuYwpAQCAtNDgsOSArNDgsMTEgQEAgdm9pZCBmMmZzX3NldF9pbm9kZV9mbGFncyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCQluZXdfZmwgfD0gU19FTkNSWVBURUQ7CiAJaWYgKGZpbGVfaXNfdmVyaXR5KGlub2RlKSkKIAkJbmV3X2ZsIHw9IFNfVkVSSVRZOworCWlmIChmbGFncyAmIEYyRlNfQ0FTRUZPTERfRkwpCisJCW5ld19mbCB8PSBTX0NBU0VGT0xEOwogCWlub2RlX3NldF9mbGFncyhpbm9kZSwgbmV3X2ZsLAogCQkJU19TWU5DfFNfQVBQRU5EfFNfSU1NVVRBQkxFfFNfTk9BVElNRXxTX0RJUlNZTkN8Ci0JCQlTX0VOQ1JZUFRFRHxTX1ZFUklUWSk7CisJCQlTX0VOQ1JZUFRFRHxTX1ZFUklUWXxTX0NBU0VGT0xEKTsKIH0KIAogc3RhdGljIHZvaWQgX19nZXRfaW5vZGVfcmRldihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZjJmc19pbm9kZSAqcmkpCkBAIC02MTYsNyArNjE4LDcgQEAgaW50IGYyZnNfd3JpdGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCiAJaWYgKCFpc19pbm9kZV9mbGFnX3NldChpbm9kZSwgRklfRElSVFlfSU5PREUpKQogCQlyZXR1cm4gMDsKIAotCWlmIChmMmZzX2lzX2NoZWNrcG9pbnRfcmVhZHkoc2JpKSkKKwlpZiAoIWYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShzYmkpKQogCQlyZXR1cm4gLUVOT1NQQzsKIAogCS8qCkBAIC02OTUsNyArNjk3LDggQEAgdm9pZCBmMmZzX2V2aWN0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAKIAlpZiAoZXJyKSB7CiAJCWYyZnNfdXBkYXRlX2lub2RlX3BhZ2UoaW5vZGUpOwotCQlzZXRfc2JpX2ZsYWcoc2JpLCBTQklfUVVPVEFfTkVFRF9SRVBBSVIpOworCQlpZiAoZHF1b3RfaW5pdGlhbGl6ZV9uZWVkZWQoaW5vZGUpKQorCQkJc2V0X3NiaV9mbGFnKHNiaSwgU0JJX1FVT1RBX05FRURfUkVQQUlSKTsKIAl9CiAJc2JfZW5kX2ludHdyaXRlKGlub2RlLT5pX3NiKTsKIG5vX2RlbGV0ZToKQEAgLTcwNSw3ICs3MDgsNyBAQCB2b2lkIGYyZnNfZXZpY3RfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKIAlzdGF0X2RlY19pbmxpbmVfZGlyKGlub2RlKTsKIAlzdGF0X2RlY19pbmxpbmVfaW5vZGUoaW5vZGUpOwogCi0JaWYgKGxpa2VseSghaXNfc2V0X2NrcHRfZmxhZ3Moc2JpLCBDUF9FUlJPUl9GTEFHKSAmJgorCWlmIChsaWtlbHkoIWYyZnNfY3BfZXJyb3Ioc2JpKSAmJgogCQkJCSFpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfQ1BfRElTQUJMRUQpKSkKIAkJZjJmc19idWdfb24oc2JpLCBpc19pbm9kZV9mbGFnX3NldChpbm9kZSwgRklfRElSVFlfSU5PREUpKTsKIAllbHNlCmRpZmYgLS1naXQgYS9mcy9mMmZzL25hbWVpLmMgYi9mcy9mMmZzL25hbWVpLmMKaW5kZXggYzViOTkwNC4uNGZhZjA2ZSAxMDA2NDQKLS0tIGEvZnMvZjJmcy9uYW1laS5jCisrKyBiL2ZzL2YyZnMvbmFtZWkuYwpAQCAtMjcyLDkgKzI3Miw4IEBAIHN0YXRpYyBpbnQgZjJmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlLAogCiAJaWYgKHVubGlrZWx5KGYyZnNfY3BfZXJyb3Ioc2JpKSkpCiAJCXJldHVybiAtRUlPOwotCWVyciA9IGYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShzYmkpOwotCWlmIChlcnIpCi0JCXJldHVybiBlcnI7CisJaWYgKCFmMmZzX2lzX2NoZWNrcG9pbnRfcmVhZHkoc2JpKSkKKwkJcmV0dXJuIC1FTk9TUEM7CiAKIAllcnIgPSBkcXVvdF9pbml0aWFsaXplKGRpcik7CiAJaWYgKGVycikKQEAgLTMyMSw5ICszMjAsOCBAQCBzdGF0aWMgaW50IGYyZnNfbGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmRpciwKIAogCWlmICh1bmxpa2VseShmMmZzX2NwX2Vycm9yKHNiaSkpKQogCQlyZXR1cm4gLUVJTzsKLQllcnIgPSBmMmZzX2lzX2NoZWNrcG9pbnRfcmVhZHkoc2JpKTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOworCWlmICghZjJmc19pc19jaGVja3BvaW50X3JlYWR5KHNiaSkpCisJCXJldHVybiAtRU5PU1BDOwogCiAJZXJyID0gZnNjcnlwdF9wcmVwYXJlX2xpbmsob2xkX2RlbnRyeSwgZGlyLCBkZW50cnkpOwogCWlmIChlcnIpCkBAIC00ODksNiArNDg3LDE3IEBAIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpmMmZzX2xvb2t1cChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAogCQlnb3RvIG91dF9pcHV0OwogCX0KIG91dF9zcGxpY2U6CisjaWZkZWYgQ09ORklHX1VOSUNPREUKKwlpZiAoIWlub2RlICYmIElTX0NBU0VGT0xERUQoZGlyKSkgeworCQkvKiBFdmVudHVhbGx5IHdlIHdhbnQgdG8gY2FsbCBkX2FkZF9jaShkZW50cnksIE5VTEwpCisJCSAqIGZvciBuZWdhdGl2ZSBkZW50cmllcyBpbiB0aGUgZW5jb2RpbmcgY2FzZSBhcworCQkgKiB3ZWxsLiAgRm9yIG5vdywgcHJldmVudCB0aGUgbmVnYXRpdmUgZGVudHJ5CisJCSAqIGZyb20gYmVpbmcgY2FjaGVkLgorCQkgKi8KKwkJdHJhY2VfZjJmc19sb29rdXBfZW5kKGRpciwgZGVudHJ5LCBpbm8sIGVycik7CisJCXJldHVybiBOVUxMOworCX0KKyNlbmRpZgogCW5ldyA9IGRfc3BsaWNlX2FsaWFzKGlub2RlLCBkZW50cnkpOwogCWVyciA9IFBUUl9FUlJfT1JfWkVSTyhuZXcpOwogCXRyYWNlX2YyZnNfbG9va3VwX2VuZChkaXIsIGRlbnRyeSwgaW5vLCBlcnIpOwpAQCAtNTM3LDYgKzU0NiwxNiBAQCBzdGF0aWMgaW50IGYyZnNfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiAJCWdvdG8gZmFpbDsKIAl9CiAJZjJmc19kZWxldGVfZW50cnkoZGUsIHBhZ2UsIGRpciwgaW5vZGUpOworI2lmZGVmIENPTkZJR19VTklDT0RFCisJLyogVkZTIG5lZ2F0aXZlIGRlbnRyaWVzIGFyZSBpbmNvbXBhdGlibGUgd2l0aCBFbmNvZGluZyBhbmQKKwkgKiBDYXNlLWluc2Vuc2l0aXZlbmVzcy4gRXZlbnR1YWxseSB3ZSdsbCB3YW50IGF2b2lkCisJICogaW52YWxpZGF0aW5nIHRoZSBkZW50cmllcyBoZXJlLCBhbG9uZ3NpZGUgd2l0aCByZXR1cm5pbmcgdGhlCisJICogbmVnYXRpdmUgZGVudHJpZXMgYXQgZjJmc19sb29rdXAoKSwgd2hlbiBpdCBpcyAgYmV0dGVyCisJICogc3VwcG9ydGVkIGJ5IHRoZSBWRlMgZm9yIHRoZSBDSSBjYXNlLgorCSAqLworCWlmIChJU19DQVNFRk9MREVEKGRpcikpCisJCWRfaW52YWxpZGF0ZShkZW50cnkpOworI2VuZGlmCiAJZjJmc191bmxvY2tfb3Aoc2JpKTsKIAogCWlmIChJU19ESVJTWU5DKGRpcikpCkBAIC01NzEsOSArNTkwLDggQEAgc3RhdGljIGludCBmMmZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKIAogCWlmICh1bmxpa2VseShmMmZzX2NwX2Vycm9yKHNiaSkpKQogCQlyZXR1cm4gLUVJTzsKLQllcnIgPSBmMmZzX2lzX2NoZWNrcG9pbnRfcmVhZHkoc2JpKTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOworCWlmICghZjJmc19pc19jaGVja3BvaW50X3JlYWR5KHNiaSkpCisJCXJldHVybiAtRU5PU1BDOwogCiAJZXJyID0gZnNjcnlwdF9wcmVwYXJlX3N5bWxpbmsoZGlyLCBzeW1uYW1lLCBsZW4sIGRpci0+aV9zYi0+c19ibG9ja3NpemUsCiAJCQkJICAgICAgJmRpc2tfbGluayk7CkBAIC03MDMsOSArNzIxLDggQEAgc3RhdGljIGludCBmMmZzX21rbm9kKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCiAKIAlpZiAodW5saWtlbHkoZjJmc19jcF9lcnJvcihzYmkpKSkKIAkJcmV0dXJuIC1FSU87Ci0JZXJyID0gZjJmc19pc19jaGVja3BvaW50X3JlYWR5KHNiaSk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKKwlpZiAoIWYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShzYmkpKQorCQlyZXR1cm4gLUVOT1NQQzsKIAogCWVyciA9IGRxdW90X2luaXRpYWxpemUoZGlyKTsKIAlpZiAoZXJyKQpAQCAtODA0LDYgKzgyMSw4IEBAIHN0YXRpYyBpbnQgZjJmc190bXBmaWxlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkKIAogCWlmICh1bmxpa2VseShmMmZzX2NwX2Vycm9yKHNiaSkpKQogCQlyZXR1cm4gLUVJTzsKKwlpZiAoIWYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShzYmkpKQorCQlyZXR1cm4gLUVOT1NQQzsKIAogCWlmIChJU19FTkNSWVBURUQoZGlyKSB8fCBEVU1NWV9FTkNSWVBUSU9OX0VOQUJMRUQoc2JpKSkgewogCQlpbnQgZXJyID0gZnNjcnlwdF9nZXRfZW5jcnlwdGlvbl9pbmZvKGRpcik7CkBAIC04NDAsOSArODU5LDggQEAgc3RhdGljIGludCBmMmZzX3JlbmFtZShzdHJ1Y3QgaW5vZGUgKm9sZF9kaXIsIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCiAKIAlpZiAodW5saWtlbHkoZjJmc19jcF9lcnJvcihzYmkpKSkKIAkJcmV0dXJuIC1FSU87Ci0JZXJyID0gZjJmc19pc19jaGVja3BvaW50X3JlYWR5KHNiaSk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKKwlpZiAoIWYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShzYmkpKQorCQlyZXR1cm4gLUVOT1NQQzsKIAogCWlmIChpc19pbm9kZV9mbGFnX3NldChuZXdfZGlyLCBGSV9QUk9KX0lOSEVSSVQpICYmCiAJCQkoIXByb2ppZF9lcShGMkZTX0kobmV3X2RpciktPmlfcHJvamlkLApAQCAtMTAzNSw5ICsxMDUzLDggQEAgc3RhdGljIGludCBmMmZzX2Nyb3NzX3JlbmFtZShzdHJ1Y3QgaW5vZGUgKm9sZF9kaXIsIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCiAKIAlpZiAodW5saWtlbHkoZjJmc19jcF9lcnJvcihzYmkpKSkKIAkJcmV0dXJuIC1FSU87Ci0JZXJyID0gZjJmc19pc19jaGVja3BvaW50X3JlYWR5KHNiaSk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKKwlpZiAoIWYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShzYmkpKQorCQlyZXR1cm4gLUVOT1NQQzsKIAogCWlmICgoaXNfaW5vZGVfZmxhZ19zZXQobmV3X2RpciwgRklfUFJPSl9JTkhFUklUKSAmJgogCQkJIXByb2ppZF9lcShGMkZTX0kobmV3X2RpciktPmlfcHJvamlkLApAQCAtMTI1MCw2ICsxMjY3LDcgQEAgY29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgZjJmc19kaXJfaW5vZGVfb3BlcmF0aW9ucyA9IHsKICNpZmRlZiBDT05GSUdfRjJGU19GU19YQVRUUgogCS5saXN0eGF0dHIJPSBmMmZzX2xpc3R4YXR0ciwKICNlbmRpZgorCS5maWVtYXAJCT0gZjJmc19maWVtYXAsCiB9OwogCiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBmMmZzX3N5bWxpbmtfaW5vZGVfb3BlcmF0aW9ucyA9IHsKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvbm9kZS5jIGIvZnMvZjJmcy9ub2RlLmMKaW5kZXggYTE4YjJhOC4uOGI2NmJjNCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9ub2RlLmMKKysrIGIvZnMvZjJmcy9ub2RlLmMKQEAgLTE1MjQsNyArMTUyNCw4IEBAIHN0YXRpYyBpbnQgX193cml0ZV9ub2RlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIGJvb2wgYXRvbWljLCBib29sICpzdWJtaXR0ZWQsCiAJaWYgKHVubGlrZWx5KGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9QT1JfRE9JTkcpKSkKIAkJZ290byByZWRpcnR5X291dDsKIAotCWlmICh3YmMtPnN5bmNfbW9kZSA9PSBXQl9TWU5DX05PTkUgJiYKKwlpZiAoIWlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9DUF9ESVNBQkxFRCkgJiYKKwkJCXdiYy0+c3luY19tb2RlID09IFdCX1NZTkNfTk9ORSAmJgogCQkJSVNfRE5PREUocGFnZSkgJiYgaXNfY29sZF9ub2RlKHBhZ2UpKQogCQlnb3RvIHJlZGlydHlfb3V0OwogCkBAIC0xNzYyLDYgKzE3NjMsNDcgQEAgaW50IGYyZnNfZnN5bmNfbm9kZV9wYWdlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJcmV0dXJuIHJldCA/IC1FSU86IDA7CiB9CiAKK3N0YXRpYyBpbnQgZjJmc19tYXRjaF9pbm8oc3RydWN0IGlub2RlICppbm9kZSwgdW5zaWduZWQgbG9uZyBpbm8sIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19JX1NCKGlub2RlKTsKKwlib29sIGNsZWFuOworCisJaWYgKGlub2RlLT5pX2lubyAhPSBpbm8pCisJCXJldHVybiAwOworCisJaWYgKCFpc19pbm9kZV9mbGFnX3NldChpbm9kZSwgRklfRElSVFlfSU5PREUpKQorCQlyZXR1cm4gMDsKKworCXNwaW5fbG9jaygmc2JpLT5pbm9kZV9sb2NrW0RJUlRZX01FVEFdKTsKKwljbGVhbiA9IGxpc3RfZW1wdHkoJkYyRlNfSShpbm9kZSktPmdkaXJ0eV9saXN0KTsKKwlzcGluX3VubG9jaygmc2JpLT5pbm9kZV9sb2NrW0RJUlRZX01FVEFdKTsKKworCWlmIChjbGVhbikKKwkJcmV0dXJuIDA7CisKKwlpbm9kZSA9IGlncmFiKGlub2RlKTsKKwlpZiAoIWlub2RlKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGJvb2wgZmx1c2hfZGlydHlfaW5vZGUoc3RydWN0IHBhZ2UgKnBhZ2UpCit7CisJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19QX1NCKHBhZ2UpOworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CisJbmlkX3QgaW5vID0gaW5vX29mX25vZGUocGFnZSk7CisKKwlpbm9kZSA9IGZpbmRfaW5vZGVfbm93YWl0KHNiaS0+c2IsIGlubywgZjJmc19tYXRjaF9pbm8sIE5VTEwpOworCWlmICghaW5vZGUpCisJCXJldHVybiBmYWxzZTsKKworCWYyZnNfdXBkYXRlX2lub2RlKGlub2RlLCBwYWdlKTsKKwl1bmxvY2tfcGFnZShwYWdlKTsKKworCWlwdXQoaW5vZGUpOworCXJldHVybiB0cnVlOworfQorCiBpbnQgZjJmc19zeW5jX25vZGVfcGFnZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjLAogCQkJCWJvb2wgZG9fYmFsYW5jZSwgZW51bSBpb3N0YXRfdHlwZSBpb190eXBlKQpAQCAtMTc4NSw2ICsxODI3LDcgQEAgaW50IGYyZnNfc3luY19ub2RlX3BhZ2VzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKIAkJZm9yIChpID0gMDsgaSA8IG5yX3BhZ2VzOyBpKyspIHsKIAkJCXN0cnVjdCBwYWdlICpwYWdlID0gcHZlYy5wYWdlc1tpXTsKIAkJCWJvb2wgc3VibWl0dGVkID0gZmFsc2U7CisJCQlib29sIG1heV9kaXJ0eSA9IHRydWU7CiAKIAkJCS8qIGdpdmUgYSBwcmlvcml0eSB0byBXQl9TWU5DIHRocmVhZHMgKi8KIAkJCWlmIChhdG9taWNfcmVhZCgmc2JpLT53Yl9zeW5jX3JlcVtOT0RFXSkgJiYKQEAgLTE4MzIsNiArMTg3NSwxMyBAQCBpbnQgZjJmc19zeW5jX25vZGVfcGFnZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCQkJCWdvdG8gbG9ja19ub2RlOwogCQkJfQogCisJCQkvKiBmbHVzaCBkaXJ0eSBpbm9kZSAqLworCQkJaWYgKElTX0lOT0RFKHBhZ2UpICYmIG1heV9kaXJ0eSkgeworCQkJCW1heV9kaXJ0eSA9IGZhbHNlOworCQkJCWlmIChmbHVzaF9kaXJ0eV9pbm9kZShwYWdlKSkKKwkJCQkJZ290byBsb2NrX25vZGU7CisJCQl9CisKIAkJCWYyZnNfd2FpdF9vbl9wYWdlX3dyaXRlYmFjayhwYWdlLCBOT0RFLCB0cnVlLCB0cnVlKTsKIAogCQkJaWYgKCFjbGVhcl9wYWdlX2RpcnR5X2Zvcl9pbyhwYWdlKSkKQEAgLTE4NjAsNyArMTkxMCw4IEBAIGludCBmMmZzX3N5bmNfbm9kZV9wYWdlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCiAJfQogCiAJaWYgKHN0ZXAgPCAyKSB7Ci0JCWlmICh3YmMtPnN5bmNfbW9kZSA9PSBXQl9TWU5DX05PTkUgJiYgc3RlcCA9PSAxKQorCQlpZiAoIWlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9DUF9ESVNBQkxFRCkgJiYKKwkJCQl3YmMtPnN5bmNfbW9kZSA9PSBXQl9TWU5DX05PTkUgJiYgc3RlcCA9PSAxKQogCQkJZ290byBvdXQ7CiAJCXN0ZXArKzsKIAkJZ290byBuZXh0X3N0ZXA7CkBAIC0yOTY0LDcgKzMwMTUsNyBAQCBzdGF0aWMgaW50IGluaXRfbm9kZV9tYW5hZ2VyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAogCS8qIG5vdCB1c2VkIG5pZHM6IDAsIG5vZGUsIG1ldGEsIChhbmQgcm9vdCBjb3VudGVkIGFzIHZhbGlkIG5vZGUpICovCiAJbm1faS0+YXZhaWxhYmxlX25pZHMgPSBubV9pLT5tYXhfbmlkIC0gc2JpLT50b3RhbF92YWxpZF9ub2RlX2NvdW50IC0KLQkJCQlzYmktPm5xdW90YV9maWxlcyAtIEYyRlNfUkVTRVJWRURfTk9ERV9OVU07CisJCQkJCQlGMkZTX1JFU0VSVkVEX05PREVfTlVNOwogCW5tX2ktPm5pZF9jbnRbRlJFRV9OSURdID0gMDsKIAlubV9pLT5uaWRfY250W1BSRUFMTE9DX05JRF0gPSAwOwogCW5tX2ktPm5hdF9jbnQgPSAwOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdtZW50LmMgYi9mcy9mMmZzL3NlZ21lbnQuYwppbmRleCBhNjYxYWMzLi44MDg3MDk1IDEwMDY0NAotLS0gYS9mcy9mMmZzL3NlZ21lbnQuYworKysgYi9mcy9mMmZzL3NlZ21lbnQuYwpAQCAtMTg1LDggKzE4NSw2IEBAIGJvb2wgZjJmc19uZWVkX1NTUihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAKIHZvaWQgZjJmc19yZWdpc3Rlcl9pbm1lbV9wYWdlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBwYWdlICpwYWdlKQogewotCXN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IEYyRlNfSV9TQihpbm9kZSk7Ci0Jc3RydWN0IGYyZnNfaW5vZGVfaW5mbyAqZmkgPSBGMkZTX0koaW5vZGUpOwogCXN0cnVjdCBpbm1lbV9wYWdlcyAqbmV3OwogCiAJZjJmc190cmFjZV9waWQocGFnZSk7CkBAIC0yMDAsMTUgKzE5OCwxMSBAQCB2b2lkIGYyZnNfcmVnaXN0ZXJfaW5tZW1fcGFnZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAlJTklUX0xJU1RfSEVBRCgmbmV3LT5saXN0KTsKIAogCS8qIGluY3JlYXNlIHJlZmVyZW5jZSBjb3VudCB3aXRoIGNsZWFuIHN0YXRlICovCi0JbXV0ZXhfbG9jaygmZmktPmlubWVtX2xvY2spOwogCWdldF9wYWdlKHBhZ2UpOwotCWxpc3RfYWRkX3RhaWwoJm5ldy0+bGlzdCwgJmZpLT5pbm1lbV9wYWdlcyk7Ci0Jc3Bpbl9sb2NrKCZzYmktPmlub2RlX2xvY2tbQVRPTUlDX0ZJTEVdKTsKLQlpZiAobGlzdF9lbXB0eSgmZmktPmlubWVtX2lsaXN0KSkKLQkJbGlzdF9hZGRfdGFpbCgmZmktPmlubWVtX2lsaXN0LCAmc2JpLT5pbm9kZV9saXN0W0FUT01JQ19GSUxFXSk7Ci0Jc3Bpbl91bmxvY2soJnNiaS0+aW5vZGVfbG9ja1tBVE9NSUNfRklMRV0pOworCW11dGV4X2xvY2soJkYyRlNfSShpbm9kZSktPmlubWVtX2xvY2spOworCWxpc3RfYWRkX3RhaWwoJm5ldy0+bGlzdCwgJkYyRlNfSShpbm9kZSktPmlubWVtX3BhZ2VzKTsKIAlpbmNfcGFnZV9jb3VudChGMkZTX0lfU0IoaW5vZGUpLCBGMkZTX0lOTUVNX1BBR0VTKTsKLQltdXRleF91bmxvY2soJmZpLT5pbm1lbV9sb2NrKTsKKwltdXRleF91bmxvY2soJkYyRlNfSShpbm9kZSktPmlubWVtX2xvY2spOwogCiAJdHJhY2VfZjJmc19yZWdpc3Rlcl9pbm1lbV9wYWdlKHBhZ2UsIElOTUVNKTsKIH0KQEAgLTMzMCwxOSArMzI0LDE3IEBAIHZvaWQgZjJmc19kcm9wX2lubWVtX3BhZ2VzKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJCW11dGV4X2xvY2soJmZpLT5pbm1lbV9sb2NrKTsKIAkJX19yZXZva2VfaW5tZW1fcGFnZXMoaW5vZGUsICZmaS0+aW5tZW1fcGFnZXMsCiAJCQkJCQl0cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0KLQkJaWYgKGxpc3RfZW1wdHkoJmZpLT5pbm1lbV9wYWdlcykpIHsKLQkJCXNwaW5fbG9jaygmc2JpLT5pbm9kZV9sb2NrW0FUT01JQ19GSUxFXSk7Ci0JCQlpZiAoIWxpc3RfZW1wdHkoJmZpLT5pbm1lbV9pbGlzdCkpCi0JCQkJbGlzdF9kZWxfaW5pdCgmZmktPmlubWVtX2lsaXN0KTsKLQkJCXNwaW5fdW5sb2NrKCZzYmktPmlub2RlX2xvY2tbQVRPTUlDX0ZJTEVdKTsKLQkJfQogCQltdXRleF91bmxvY2soJmZpLT5pbm1lbV9sb2NrKTsKIAl9CiAKIAljbGVhcl9pbm9kZV9mbGFnKGlub2RlLCBGSV9BVE9NSUNfRklMRSk7CiAJZmktPmlfZ2NfZmFpbHVyZXNbR0NfRkFJTFVSRV9BVE9NSUNdID0gMDsKIAlzdGF0X2RlY19hdG9taWNfd3JpdGUoaW5vZGUpOworCisJc3Bpbl9sb2NrKCZzYmktPmlub2RlX2xvY2tbQVRPTUlDX0ZJTEVdKTsKKwlpZiAoIWxpc3RfZW1wdHkoJmZpLT5pbm1lbV9pbGlzdCkpCisJCWxpc3RfZGVsX2luaXQoJmZpLT5pbm1lbV9pbGlzdCk7CisJc3Bpbl91bmxvY2soJnNiaS0+aW5vZGVfbG9ja1tBVE9NSUNfRklMRV0pOwogfQogCiB2b2lkIGYyZnNfZHJvcF9pbm1lbV9wYWdlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBwYWdlICpwYWdlKQpAQCAtNDcxLDExICs0NjMsNiBAQCBpbnQgZjJmc19jb21taXRfaW5tZW1fcGFnZXMoc3RydWN0IGlub2RlICppbm9kZSkKIAogCW11dGV4X2xvY2soJmZpLT5pbm1lbV9sb2NrKTsKIAllcnIgPSBfX2YyZnNfY29tbWl0X2lubWVtX3BhZ2VzKGlub2RlKTsKLQotCXNwaW5fbG9jaygmc2JpLT5pbm9kZV9sb2NrW0FUT01JQ19GSUxFXSk7Ci0JaWYgKCFsaXN0X2VtcHR5KCZmaS0+aW5tZW1faWxpc3QpKQotCQlsaXN0X2RlbF9pbml0KCZmaS0+aW5tZW1faWxpc3QpOwotCXNwaW5fdW5sb2NrKCZzYmktPmlub2RlX2xvY2tbQVRPTUlDX0ZJTEVdKTsKIAltdXRleF91bmxvY2soJmZpLT5pbm1lbV9sb2NrKTsKIAogCWNsZWFyX2lub2RlX2ZsYWcoaW5vZGUsIEZJX0FUT01JQ19DT01NSVQpOwpAQCAtNTAxLDcgKzQ4OCw3IEBAIHZvaWQgZjJmc19iYWxhbmNlX2ZzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYm9vbCBuZWVkKQogCWlmIChuZWVkICYmIGV4Y2Vzc19jYWNoZWRfbmF0cyhzYmkpKQogCQlmMmZzX2JhbGFuY2VfZnNfYmcoc2JpKTsKIAotCWlmIChmMmZzX2lzX2NoZWNrcG9pbnRfcmVhZHkoc2JpKSkKKwlpZiAoIWYyZnNfaXNfY2hlY2twb2ludF9yZWFkeShzYmkpKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtODE3LDkgKzgwNCwxMyBAQCBzdGF0aWMgdm9pZCBfX3JlbW92ZV9kaXJ0eV9zZWdtZW50KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgdW5zaWduZWQgaW50IHNlZ25vLAogCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KHNlZ25vLCBkaXJ0eV9pLT5kaXJ0eV9zZWdtYXBbdF0pKQogCQkJZGlydHlfaS0+bnJfZGlydHlbdF0tLTsKIAotCQlpZiAoZ2V0X3ZhbGlkX2Jsb2NrcyhzYmksIHNlZ25vLCB0cnVlKSA9PSAwKQorCQlpZiAoZ2V0X3ZhbGlkX2Jsb2NrcyhzYmksIHNlZ25vLCB0cnVlKSA9PSAwKSB7CiAJCQljbGVhcl9iaXQoR0VUX1NFQ19GUk9NX1NFRyhzYmksIHNlZ25vKSwKIAkJCQkJCWRpcnR5X2ktPnZpY3RpbV9zZWNtYXApOworI2lmZGVmIENPTkZJR19GMkZTX0NIRUNLX0ZTCisJCQljbGVhcl9iaXQoc2Vnbm8sIFNJVF9JKHNiaSktPmludmFsaWRfc2VnbWFwKTsKKyNlbmRpZgorCQl9CiAJfQogfQogCkBAIC0yMDg0LDYgKzIwNzUsMTMgQEAgc3RhdGljIHZvaWQgZGVzdHJveV9kaXNjYXJkX2NtZF9jb250cm9sKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAogCWYyZnNfc3RvcF9kaXNjYXJkX3RocmVhZChzYmkpOwogCisJLyoKKwkgKiBSZWNvdmVyeSBjYW4gY2FjaGUgZGlzY2FyZCBjb21tYW5kcywgc28gaW4gZXJyb3IgcGF0aCBvZgorCSAqIGZpbGxfc3VwZXIoKSwgaXQgbmVlZHMgdG8gZ2l2ZSBhIGNoYW5jZSB0byBoYW5kbGUgdGhlbS4KKwkgKi8KKwlpZiAodW5saWtlbHkoYXRvbWljX3JlYWQoJmRjYy0+ZGlzY2FyZF9jbWRfY250KSkpCisJCWYyZnNfaXNzdWVfZGlzY2FyZF90aW1lb3V0KHNiaSk7CisKIAlrdmZyZWUoZGNjKTsKIAlTTV9JKHNiaSktPmRjY19pbmZvID0gTlVMTDsKIH0KQEAgLTIxNTYsOSArMjE1NCwxMSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfc2l0X2VudHJ5KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYmxvY2tfdCBibGthZGRyLCBpbnQgZGVsKQogCQlpZiAoIWYyZnNfdGVzdF9hbmRfc2V0X2JpdChvZmZzZXQsIHNlLT5kaXNjYXJkX21hcCkpCiAJCQlzYmktPmRpc2NhcmRfYmxrcy0tOwogCi0JCS8qIGRvbid0IG92ZXJ3cml0ZSBieSBTU1IgdG8ga2VlcCBub2RlIGNoYWluICovCi0JCWlmIChJU19OT0RFU0VHKHNlLT50eXBlKSAmJgotCQkJCSFpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfQ1BfRElTQUJMRUQpKSB7CisJCS8qCisJCSAqIFNTUiBzaG91bGQgbmV2ZXIgcmV1c2UgYmxvY2sgd2hpY2ggaXMgY2hlY2twb2ludGVkCisJCSAqIG9yIG5ld2x5IGludmFsaWRhdGVkLgorCQkgKi8KKwkJaWYgKCFpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfQ1BfRElTQUJMRUQpKSB7CiAJCQlpZiAoIWYyZnNfdGVzdF9hbmRfc2V0X2JpdChvZmZzZXQsIHNlLT5ja3B0X3ZhbGlkX21hcCkpCiAJCQkJc2UtPmNrcHRfdmFsaWRfYmxvY2tzKys7CiAJCX0KQEAgLTMxMTYsMTIgKzMxMTYsMTQgQEAgdm9pZCBmMmZzX2FsbG9jYXRlX2RhdGFfYmxvY2soc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJZjJmc19pbm9kZV9jaGtzdW1fc2V0KHNiaSwgcGFnZSk7CiAJfQogCisJaWYgKEYyRlNfSU9fQUxJR05FRChzYmkpKQorCQlmaW8tPnJldHJ5ID0gZmFsc2U7CisKIAlpZiAoYWRkX2xpc3QpIHsKIAkJc3RydWN0IGYyZnNfYmlvX2luZm8gKmlvOwogCiAJCUlOSVRfTElTVF9IRUFEKCZmaW8tPmxpc3QpOwogCQlmaW8tPmluX2xpc3QgPSB0cnVlOwotCQlmaW8tPnJldHJ5ID0gZmFsc2U7CiAJCWlvID0gc2JpLT53cml0ZV9pb1tmaW8tPnR5cGVdICsgZmlvLT50ZW1wOwogCQlzcGluX2xvY2soJmlvLT5pb19sb2NrKTsKIAkJbGlzdF9hZGRfdGFpbCgmZmlvLT5saXN0LCAmaW8tPmlvX2xpc3QpOwpAQCAtMzQ0NywxMSArMzQ0OSw2IEBAIHN0YXRpYyBpbnQgcmVhZF9jb21wYWN0ZWRfc3VtbWFyaWVzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAkJc2VnX2kgPSBDVVJTRUdfSShzYmksIGkpOwogCQlzZWdubyA9IGxlMzJfdG9fY3B1KGNrcHQtPmN1cl9kYXRhX3NlZ25vW2ldKTsKIAkJYmxrX29mZiA9IGxlMTZfdG9fY3B1KGNrcHQtPmN1cl9kYXRhX2Jsa29mZltpXSk7Ci0JCWlmIChibGtfb2ZmID4gRU5UUklFU19JTl9TVU0pIHsKLQkJCWYyZnNfYnVnX29uKHNiaSwgMSk7Ci0JCQlmMmZzX3B1dF9wYWdlKHBhZ2UsIDEpOwotCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCX0KIAkJc2VnX2ktPm5leHRfc2Vnbm8gPSBzZWdubzsKIAkJcmVzZXRfY3Vyc2VnKHNiaSwgaSwgMCk7CiAJCXNlZ19pLT5hbGxvY190eXBlID0gY2twdC0+YWxsb2NfdHlwZVtpXTsKQEAgLTM5NDEsOCArMzkzOCw4IEBAIHN0YXRpYyBpbnQgYnVpbGRfc2l0X2luZm8oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCXN0cnVjdCBmMmZzX3N1cGVyX2Jsb2NrICpyYXdfc3VwZXIgPSBGMkZTX1JBV19TVVBFUihzYmkpOwogCXN0cnVjdCBzaXRfaW5mbyAqc2l0X2k7CiAJdW5zaWduZWQgaW50IHNpdF9zZWdzLCBzdGFydDsKLQljaGFyICpzcmNfYml0bWFwOwotCXVuc2lnbmVkIGludCBiaXRtYXBfc2l6ZTsKKwljaGFyICpzcmNfYml0bWFwLCAqYml0bWFwOworCXVuc2lnbmVkIGludCBiaXRtYXBfc2l6ZSwgbWFpbl9iaXRtYXBfc2l6ZSwgc2l0X2JpdG1hcF9zaXplOwogCiAJLyogYWxsb2NhdGUgbWVtb3J5IGZvciBTSVQgaW5mb3JtYXRpb24gKi8KIAlzaXRfaSA9IGYyZnNfa3phbGxvYyhzYmksIHNpemVvZihzdHJ1Y3Qgc2l0X2luZm8pLCBHRlBfS0VSTkVMKTsKQEAgLTM5NTgsMzMgKzM5NTUsMzcgQEAgc3RhdGljIGludCBidWlsZF9zaXRfaW5mbyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJaWYgKCFzaXRfaS0+c2VudHJpZXMpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JYml0bWFwX3NpemUgPSBmMmZzX2JpdG1hcF9zaXplKE1BSU5fU0VHUyhzYmkpKTsKLQlzaXRfaS0+ZGlydHlfc2VudHJpZXNfYml0bWFwID0gZjJmc19rdnphbGxvYyhzYmksIGJpdG1hcF9zaXplLAorCW1haW5fYml0bWFwX3NpemUgPSBmMmZzX2JpdG1hcF9zaXplKE1BSU5fU0VHUyhzYmkpKTsKKwlzaXRfaS0+ZGlydHlfc2VudHJpZXNfYml0bWFwID0gZjJmc19rdnphbGxvYyhzYmksIG1haW5fYml0bWFwX3NpemUsCiAJCQkJCQkJCUdGUF9LRVJORUwpOwogCWlmICghc2l0X2ktPmRpcnR5X3NlbnRyaWVzX2JpdG1hcCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKyNpZmRlZiBDT05GSUdfRjJGU19DSEVDS19GUworCWJpdG1hcF9zaXplID0gTUFJTl9TRUdTKHNiaSkgKiBTSVRfVkJMT0NLX01BUF9TSVpFICogNDsKKyNlbHNlCisJYml0bWFwX3NpemUgPSBNQUlOX1NFR1Moc2JpKSAqIFNJVF9WQkxPQ0tfTUFQX1NJWkUgKiAzOworI2VuZGlmCisJc2l0X2ktPmJpdG1hcCA9IGYyZnNfa3Z6YWxsb2Moc2JpLCBiaXRtYXBfc2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzaXRfaS0+Yml0bWFwKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWJpdG1hcCA9IHNpdF9pLT5iaXRtYXA7CisKIAlmb3IgKHN0YXJ0ID0gMDsgc3RhcnQgPCBNQUlOX1NFR1Moc2JpKTsgc3RhcnQrKykgewotCQlzaXRfaS0+c2VudHJpZXNbc3RhcnRdLmN1cl92YWxpZF9tYXAKLQkJCT0gZjJmc19remFsbG9jKHNiaSwgU0lUX1ZCTE9DS19NQVBfU0laRSwgR0ZQX0tFUk5FTCk7Ci0JCXNpdF9pLT5zZW50cmllc1tzdGFydF0uY2twdF92YWxpZF9tYXAKLQkJCT0gZjJmc19remFsbG9jKHNiaSwgU0lUX1ZCTE9DS19NQVBfU0laRSwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghc2l0X2ktPnNlbnRyaWVzW3N0YXJ0XS5jdXJfdmFsaWRfbWFwIHx8Ci0JCQkJIXNpdF9pLT5zZW50cmllc1tzdGFydF0uY2twdF92YWxpZF9tYXApCi0JCQlyZXR1cm4gLUVOT01FTTsKKwkJc2l0X2ktPnNlbnRyaWVzW3N0YXJ0XS5jdXJfdmFsaWRfbWFwID0gYml0bWFwOworCQliaXRtYXAgKz0gU0lUX1ZCTE9DS19NQVBfU0laRTsKKworCQlzaXRfaS0+c2VudHJpZXNbc3RhcnRdLmNrcHRfdmFsaWRfbWFwID0gYml0bWFwOworCQliaXRtYXAgKz0gU0lUX1ZCTE9DS19NQVBfU0laRTsKIAogI2lmZGVmIENPTkZJR19GMkZTX0NIRUNLX0ZTCi0JCXNpdF9pLT5zZW50cmllc1tzdGFydF0uY3VyX3ZhbGlkX21hcF9taXIKLQkJCT0gZjJmc19remFsbG9jKHNiaSwgU0lUX1ZCTE9DS19NQVBfU0laRSwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghc2l0X2ktPnNlbnRyaWVzW3N0YXJ0XS5jdXJfdmFsaWRfbWFwX21pcikKLQkJCXJldHVybiAtRU5PTUVNOworCQlzaXRfaS0+c2VudHJpZXNbc3RhcnRdLmN1cl92YWxpZF9tYXBfbWlyID0gYml0bWFwOworCQliaXRtYXAgKz0gU0lUX1ZCTE9DS19NQVBfU0laRTsKICNlbmRpZgogCi0JCXNpdF9pLT5zZW50cmllc1tzdGFydF0uZGlzY2FyZF9tYXAKLQkJCT0gZjJmc19remFsbG9jKHNiaSwgU0lUX1ZCTE9DS19NQVBfU0laRSwKLQkJCQkJCQlHRlBfS0VSTkVMKTsKLQkJaWYgKCFzaXRfaS0+c2VudHJpZXNbc3RhcnRdLmRpc2NhcmRfbWFwKQotCQkJcmV0dXJuIC1FTk9NRU07CisJCXNpdF9pLT5zZW50cmllc1tzdGFydF0uZGlzY2FyZF9tYXAgPSBiaXRtYXA7CisJCWJpdG1hcCArPSBTSVRfVkJMT0NLX01BUF9TSVpFOwogCX0KIAogCXNpdF9pLT50bXBfbWFwID0gZjJmc19remFsbG9jKHNiaSwgU0lUX1ZCTE9DS19NQVBfU0laRSwgR0ZQX0tFUk5FTCk7CkBAIC00MDA0LDE3ICs0MDA1LDIzIEBAIHN0YXRpYyBpbnQgYnVpbGRfc2l0X2luZm8oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCXNpdF9zZWdzID0gbGUzMl90b19jcHUocmF3X3N1cGVyLT5zZWdtZW50X2NvdW50X3NpdCkgPj4gMTsKIAogCS8qIHNldHVwIFNJVCBiaXRtYXAgZnJvbSBja2Vja3BvaW50IHBhY2sgKi8KLQliaXRtYXBfc2l6ZSA9IF9fYml0bWFwX3NpemUoc2JpLCBTSVRfQklUTUFQKTsKKwlzaXRfYml0bWFwX3NpemUgPSBfX2JpdG1hcF9zaXplKHNiaSwgU0lUX0JJVE1BUCk7CiAJc3JjX2JpdG1hcCA9IF9fYml0bWFwX3B0cihzYmksIFNJVF9CSVRNQVApOwogCi0Jc2l0X2ktPnNpdF9iaXRtYXAgPSBrbWVtZHVwKHNyY19iaXRtYXAsIGJpdG1hcF9zaXplLCBHRlBfS0VSTkVMKTsKKwlzaXRfaS0+c2l0X2JpdG1hcCA9IGttZW1kdXAoc3JjX2JpdG1hcCwgc2l0X2JpdG1hcF9zaXplLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNpdF9pLT5zaXRfYml0bWFwKQogCQlyZXR1cm4gLUVOT01FTTsKIAogI2lmZGVmIENPTkZJR19GMkZTX0NIRUNLX0ZTCi0Jc2l0X2ktPnNpdF9iaXRtYXBfbWlyID0ga21lbWR1cChzcmNfYml0bWFwLCBiaXRtYXBfc2l6ZSwgR0ZQX0tFUk5FTCk7CisJc2l0X2ktPnNpdF9iaXRtYXBfbWlyID0ga21lbWR1cChzcmNfYml0bWFwLAorCQkJCQlzaXRfYml0bWFwX3NpemUsIEdGUF9LRVJORUwpOwogCWlmICghc2l0X2ktPnNpdF9iaXRtYXBfbWlyKQogCQlyZXR1cm4gLUVOT01FTTsKKworCXNpdF9pLT5pbnZhbGlkX3NlZ21hcCA9IGYyZnNfa3Z6YWxsb2Moc2JpLAorCQkJCQltYWluX2JpdG1hcF9zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXNpdF9pLT5pbnZhbGlkX3NlZ21hcCkKKwkJcmV0dXJuIC1FTk9NRU07CiAjZW5kaWYKIAogCS8qIGluaXQgU0lUIGluZm9ybWF0aW9uICovCkBAIC00MDIzLDcgKzQwMzAsNyBAQCBzdGF0aWMgaW50IGJ1aWxkX3NpdF9pbmZvKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAlzaXRfaS0+c2l0X2Jhc2VfYWRkciA9IGxlMzJfdG9fY3B1KHJhd19zdXBlci0+c2l0X2Jsa2FkZHIpOwogCXNpdF9pLT5zaXRfYmxvY2tzID0gc2l0X3NlZ3MgPDwgc2JpLT5sb2dfYmxvY2tzX3Blcl9zZWc7CiAJc2l0X2ktPndyaXR0ZW5fdmFsaWRfYmxvY2tzID0gMDsKLQlzaXRfaS0+Yml0bWFwX3NpemUgPSBiaXRtYXBfc2l6ZTsKKwlzaXRfaS0+Yml0bWFwX3NpemUgPSBzaXRfYml0bWFwX3NpemU7CiAJc2l0X2ktPmRpcnR5X3NlbnRyaWVzID0gMDsKIAlzaXRfaS0+c2VudHNfcGVyX2Jsb2NrID0gU0lUX0VOVFJZX1BFUl9CTE9DSzsKIAlzaXRfaS0+ZWxhcHNlZF90aW1lID0gbGU2NF90b19jcHUoc2JpLT5ja3B0LT5lbGFwc2VkX3RpbWUpOwpAQCAtNDE2MSw3ICs0MTY4LDYgQEAgc3RhdGljIGludCBidWlsZF9zaXRfZW50cmllcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJCWlmIChzdGFydCA+PSBNQUlOX1NFR1Moc2JpKSkgewogCQkJZjJmc19lcnIoc2JpLCAiV3Jvbmcgam91cm5hbCBlbnRyeSBvbiBzZWdubyAldSIsCiAJCQkJIHN0YXJ0KTsKLQkJCXNldF9zYmlfZmxhZyhzYmksIFNCSV9ORUVEX0ZTQ0spOwogCQkJZXJyID0gLUVGU0NPUlJVUFRFRDsKIAkJCWJyZWFrOwogCQl9CkBAIC00MjAxLDcgKzQyMDcsNiBAQCBzdGF0aWMgaW50IGJ1aWxkX3NpdF9lbnRyaWVzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAlpZiAoIWVyciAmJiB0b3RhbF9ub2RlX2Jsb2NrcyAhPSB2YWxpZF9ub2RlX2NvdW50KHNiaSkpIHsKIAkJZjJmc19lcnIoc2JpLCAiU0lUIGlzIGNvcnJ1cHRlZCBub2RlIyAldSB2cyAldSIsCiAJCQkgdG90YWxfbm9kZV9ibG9ja3MsIHZhbGlkX25vZGVfY291bnQoc2JpKSk7Ci0JCXNldF9zYmlfZmxhZyhzYmksIFNCSV9ORUVEX0ZTQ0spOwogCQllcnIgPSAtRUZTQ09SUlVQVEVEOwogCX0KIApAQCAtNDQ5MiwyMSArNDQ5NywxMiBAQCBzdGF0aWMgdm9pZCBkZXN0cm95X2ZyZWVfc2VnbWFwKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIHN0YXRpYyB2b2lkIGRlc3Ryb3lfc2l0X2luZm8oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogewogCXN0cnVjdCBzaXRfaW5mbyAqc2l0X2kgPSBTSVRfSShzYmkpOwotCXVuc2lnbmVkIGludCBzdGFydDsKIAogCWlmICghc2l0X2kpCiAJCXJldHVybjsKIAotCWlmIChzaXRfaS0+c2VudHJpZXMpIHsKLQkJZm9yIChzdGFydCA9IDA7IHN0YXJ0IDwgTUFJTl9TRUdTKHNiaSk7IHN0YXJ0KyspIHsKLQkJCWt2ZnJlZShzaXRfaS0+c2VudHJpZXNbc3RhcnRdLmN1cl92YWxpZF9tYXApOwotI2lmZGVmIENPTkZJR19GMkZTX0NIRUNLX0ZTCi0JCQlrdmZyZWUoc2l0X2ktPnNlbnRyaWVzW3N0YXJ0XS5jdXJfdmFsaWRfbWFwX21pcik7Ci0jZW5kaWYKLQkJCWt2ZnJlZShzaXRfaS0+c2VudHJpZXNbc3RhcnRdLmNrcHRfdmFsaWRfbWFwKTsKLQkJCWt2ZnJlZShzaXRfaS0+c2VudHJpZXNbc3RhcnRdLmRpc2NhcmRfbWFwKTsKLQkJfQotCX0KKwlpZiAoc2l0X2ktPnNlbnRyaWVzKQorCQlrdmZyZWUoc2l0X2ktPmJpdG1hcCk7CiAJa3ZmcmVlKHNpdF9pLT50bXBfbWFwKTsKIAogCWt2ZnJlZShzaXRfaS0+c2VudHJpZXMpOwpAQCAtNDUxNyw2ICs0NTEzLDcgQEAgc3RhdGljIHZvaWQgZGVzdHJveV9zaXRfaW5mbyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJa3ZmcmVlKHNpdF9pLT5zaXRfYml0bWFwKTsKICNpZmRlZiBDT05GSUdfRjJGU19DSEVDS19GUwogCWt2ZnJlZShzaXRfaS0+c2l0X2JpdG1hcF9taXIpOworCWt2ZnJlZShzaXRfaS0+aW52YWxpZF9zZWdtYXApOwogI2VuZGlmCiAJa3ZmcmVlKHNpdF9pKTsKIH0KZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc2VnbWVudC5oIGIvZnMvZjJmcy9zZWdtZW50LmgKaW5kZXggYjc0NjAyOC4uMzI1NzgxYSAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zZWdtZW50LmgKKysrIGIvZnMvZjJmcy9zZWdtZW50LmgKQEAgLTIyNiw5ICsyMjYsMTMgQEAgc3RydWN0IHNpdF9pbmZvIHsKIAlibG9ja190IHNpdF9iYXNlX2FkZHI7CQkvKiBzdGFydCBibG9jayBhZGRyZXNzIG9mIFNJVCBhcmVhICovCiAJYmxvY2tfdCBzaXRfYmxvY2tzOwkJLyogIyBvZiBibG9ja3MgdXNlZCBieSBTSVQgYXJlYSAqLwogCWJsb2NrX3Qgd3JpdHRlbl92YWxpZF9ibG9ja3M7CS8qICMgb2YgdmFsaWQgYmxvY2tzIGluIG1haW4gYXJlYSAqLworCWNoYXIgKmJpdG1hcDsJCQkvKiBhbGwgYml0bWFwcyBwb2ludGVyICovCiAJY2hhciAqc2l0X2JpdG1hcDsJCS8qIFNJVCBiaXRtYXAgcG9pbnRlciAqLwogI2lmZGVmIENPTkZJR19GMkZTX0NIRUNLX0ZTCiAJY2hhciAqc2l0X2JpdG1hcF9taXI7CQkvKiBTSVQgYml0bWFwIG1pcnJvciAqLworCisJLyogYml0bWFwIG9mIHNlZ21lbnRzIHRvIGJlIGlnbm9yZWQgYnkgR0MgaW4gY2FzZSBvZiBlcnJvcnMgKi8KKwl1bnNpZ25lZCBsb25nICppbnZhbGlkX3NlZ21hcDsKICNlbmRpZgogCXVuc2lnbmVkIGludCBiaXRtYXBfc2l6ZTsJLyogU0lUIGJpdG1hcCBzaXplICovCiAKQEAgLTU4MiwxMyArNTg2LDEzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNfbm90X2Vub3VnaF9mcmVlX3NlY3Moc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCQlyZXNlcnZlZF9zZWN0aW9ucyhzYmkpICsgbmVlZGVkKTsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgZjJmc19pc19jaGVja3BvaW50X3JlYWR5KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBmMmZzX2lzX2NoZWNrcG9pbnRfcmVhZHkoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogewogCWlmIChsaWtlbHkoIWlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9DUF9ESVNBQkxFRCkpKQotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIHRydWU7CiAJaWYgKGxpa2VseSghaGFzX25vdF9lbm91Z2hfZnJlZV9zZWNzKHNiaSwgMCwgMCkpKQotCQlyZXR1cm4gMDsKLQlyZXR1cm4gLUVOT1NQQzsKKwkJcmV0dXJuIHRydWU7CisJcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZXhjZXNzX3ByZWZyZWVfc2VncyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCmRpZmYgLS1naXQgYS9mcy9mMmZzL3N1cGVyLmMgYi9mcy9mMmZzL3N1cGVyLmMKaW5kZXggZjQzYmVmZGEuLjE0NDNjZWUgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvc3VwZXIuYworKysgYi9mcy9mMmZzL3N1cGVyLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9mMmZzX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KICNpbmNsdWRlIDxsaW51eC9xdW90YS5oPgorI2luY2x1ZGUgPGxpbnV4L3VuaWNvZGUuaD4KIAogI2luY2x1ZGUgImYyZnMuaCIKICNpbmNsdWRlICJub2RlLmgiCkBAIC0yMjIsNiArMjIzLDM2IEBAIHZvaWQgZjJmc19wcmludGsoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIAl2YV9lbmQoYXJncyk7CiB9CiAKKyNpZmRlZiBDT05GSUdfVU5JQ09ERQorc3RhdGljIGNvbnN0IHN0cnVjdCBmMmZzX3NiX2VuY29kaW5ncyB7CisJX191MTYgbWFnaWM7CisJY2hhciAqbmFtZTsKKwljaGFyICp2ZXJzaW9uOworfSBmMmZzX3NiX2VuY29kaW5nX21hcFtdID0geworCXtGMkZTX0VOQ19VVEY4XzEyXzEsICJ1dGY4IiwgIjEyLjEuMCJ9LAorfTsKKworc3RhdGljIGludCBmMmZzX3NiX3JlYWRfZW5jb2RpbmcoY29uc3Qgc3RydWN0IGYyZnNfc3VwZXJfYmxvY2sgKnNiLAorCQkJCSBjb25zdCBzdHJ1Y3QgZjJmc19zYl9lbmNvZGluZ3MgKiplbmNvZGluZywKKwkJCQkgX191MTYgKmZsYWdzKQoreworCV9fdTE2IG1hZ2ljID0gbGUxNl90b19jcHUoc2ItPnNfZW5jb2RpbmcpOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZjJmc19zYl9lbmNvZGluZ19tYXApOyBpKyspCisJCWlmIChtYWdpYyA9PSBmMmZzX3NiX2VuY29kaW5nX21hcFtpXS5tYWdpYykKKwkJCWJyZWFrOworCisJaWYgKGkgPj0gQVJSQVlfU0laRShmMmZzX3NiX2VuY29kaW5nX21hcCkpCisJCXJldHVybiAtRUlOVkFMOworCisJKmVuY29kaW5nID0gJmYyZnNfc2JfZW5jb2RpbmdfbWFwW2ldOworCSpmbGFncyA9IGxlMTZfdG9fY3B1KHNiLT5zX2VuY29kaW5nX2ZsYWdzKTsKKworCXJldHVybiAwOworfQorI2VuZGlmCisKIHN0YXRpYyBpbmxpbmUgdm9pZCBsaW1pdF9yZXNlcnZlX3Jvb3Qoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogewogCWJsb2NrX3QgbGltaXQgPSBtaW4oKHNiaS0+dXNlcl9ibG9ja19jb3VudCA8PCAxKSAvIDEwMDAsCkBAIC03OTgsNiArODI5LDEzIEBAIHN0YXRpYyBpbnQgcGFyc2Vfb3B0aW9ucyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBjaGFyICpvcHRpb25zKQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAjZW5kaWYKKyNpZm5kZWYgQ09ORklHX1VOSUNPREUKKwlpZiAoZjJmc19zYl9oYXNfY2FzZWZvbGQoc2JpKSkgeworCQlmMmZzX2VycihzYmksCisJCQkiRmlsZXN5c3RlbSB3aXRoIGNhc2Vmb2xkIGZlYXR1cmUgY2Fubm90IGJlIG1vdW50ZWQgd2l0aG91dCBDT05GSUdfVU5JQ09ERSIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisjZW5kaWYKIAogCWlmIChGMkZTX0lPX1NJWkVfQklUUyhzYmkpICYmICF0ZXN0X29wdChzYmksIExGUykpIHsKIAkJZjJmc19lcnIoc2JpLCAiU2hvdWxkIHNldCBtb2RlPWxmcyB3aXRoICV1S0Itc2l6ZWQgSU8iLApAQCAtODczLDcgKzkxMSwyMSBAQCBzdGF0aWMgc3RydWN0IGlub2RlICpmMmZzX2FsbG9jX2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAKIHN0YXRpYyBpbnQgZjJmc19kcm9wX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7CisJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19JX1NCKGlub2RlKTsKIAlpbnQgcmV0OworCisJLyoKKwkgKiBkdXJpbmcgZmlsZXN5c3RlbSBzaHV0ZG93biwgaWYgY2hlY2twb2ludCBpcyBkaXNhYmxlZCwKKwkgKiBkcm9wIHVzZWxlc3MgbWV0YS9ub2RlIGRpcnR5IHBhZ2VzLgorCSAqLworCWlmICh1bmxpa2VseShpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfQ1BfRElTQUJMRUQpKSkgeworCQlpZiAoaW5vZGUtPmlfaW5vID09IEYyRlNfTk9ERV9JTk8oc2JpKSB8fAorCQkJaW5vZGUtPmlfaW5vID09IEYyRlNfTUVUQV9JTk8oc2JpKSkgeworCQkJdHJhY2VfZjJmc19kcm9wX2lub2RlKGlub2RlLCAxKTsKKwkJCXJldHVybiAxOworCQl9CisJfQorCiAJLyoKIAkgKiBUaGlzIGlzIHRvIGF2b2lkIGEgZGVhZGxvY2sgY29uZGl0aW9uIGxpa2UgYmVsb3cuCiAJICogd3JpdGViYWNrX3NpbmdsZV9pbm9kZShpbm9kZSkKQEAgLTEwOTEsNiArMTE0Myw5IEBAIHN0YXRpYyB2b2lkIGYyZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAJZGVzdHJveV9wZXJjcHVfaW5mbyhzYmkpOwogCWZvciAoaSA9IDA7IGkgPCBOUl9QQUdFX1RZUEU7IGkrKykKIAkJa3ZmcmVlKHNiaS0+d3JpdGVfaW9baV0pOworI2lmZGVmIENPTkZJR19VTklDT0RFCisJdXRmOF91bmxvYWQoc2JpLT5zX2VuY29kaW5nKTsKKyNlbmRpZgogCWt2ZnJlZShzYmkpOwogfQogCkBAIC0xMjE2LDggKzEyNzEsNyBAQCBzdGF0aWMgaW50IGYyZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikKIAllbHNlCiAJCWJ1Zi0+Zl9iYXZhaWwgPSAwOwogCi0JYXZhaWxfbm9kZV9jb3VudCA9IHNiaS0+dG90YWxfbm9kZV9jb3VudCAtIHNiaS0+bnF1b3RhX2ZpbGVzIC0KLQkJCQkJCUYyRlNfUkVTRVJWRURfTk9ERV9OVU07CisJYXZhaWxfbm9kZV9jb3VudCA9IHNiaS0+dG90YWxfbm9kZV9jb3VudCAtIEYyRlNfUkVTRVJWRURfTk9ERV9OVU07CiAKIAlpZiAoYXZhaWxfbm9kZV9jb3VudCA+IHVzZXJfYmxvY2tfY291bnQpIHsKIAkJYnVmLT5mX2ZpbGVzID0gdXNlcl9ibG9ja19jb3VudDsKQEAgLTE1MjQsNiArMTU3OCw3IEBAIHN0YXRpYyBpbnQgZjJmc19yZW1vdW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRhdGEpCiAJYm9vbCBuZWVkX3N0b3BfZ2MgPSBmYWxzZTsKIAlib29sIG5vX2V4dGVudF9jYWNoZSA9ICF0ZXN0X29wdChzYmksIEVYVEVOVF9DQUNIRSk7CiAJYm9vbCBkaXNhYmxlX2NoZWNrcG9pbnQgPSB0ZXN0X29wdChzYmksIERJU0FCTEVfQ0hFQ0tQT0lOVCk7CisJYm9vbCBub19pb19hbGlnbiA9ICFGMkZTX0lPX0FMSUdORUQoc2JpKTsKIAlib29sIGNoZWNrcG9pbnRfY2hhbmdlZDsKICNpZmRlZiBDT05GSUdfUVVPVEEKIAlpbnQgaSwgajsKQEAgLTE2MDMsNiArMTY1OCwxMiBAQCBzdGF0aWMgaW50IGYyZnNfcmVtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgKmZsYWdzLCBjaGFyICpkYXRhKQogCQlnb3RvIHJlc3RvcmVfb3B0czsKIAl9CiAKKwlpZiAobm9faW9fYWxpZ24gPT0gISFGMkZTX0lPX0FMSUdORUQoc2JpKSkgeworCQllcnIgPSAtRUlOVkFMOworCQlmMmZzX3dhcm4oc2JpLCAic3dpdGNoIGlvX2JpdHMgb3B0aW9uIGlzIG5vdCBhbGxvd2VkIik7CisJCWdvdG8gcmVzdG9yZV9vcHRzOworCX0KKwogCWlmICgoKmZsYWdzICYgU0JfUkRPTkxZKSAmJiB0ZXN0X29wdChzYmksIERJU0FCTEVfQ0hFQ0tQT0lOVCkpIHsKIAkJZXJyID0gLUVJTlZBTDsKIAkJZjJmc193YXJuKHNiaSwgImRpc2FibGluZyBjaGVja3BvaW50IG5vdCBjb21wYXRpYmxlIHdpdGggcmVhZC1vbmx5Iik7CkBAIC0xOTgxLDYgKzIwNDIsMTIgQEAgc3RhdGljIGludCBmMmZzX3F1b3RhX29uKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBlLCBpbnQgZm9ybWF0X2lkLAogCXN0cnVjdCBpbm9kZSAqaW5vZGU7CiAJaW50IGVycjsKIAorCS8qIGlmIHF1b3RhIHN5c2ZpbGUgZXhpc3RzLCBkZW55IGVuYWJsaW5nIHF1b3RhIHdpdGggc3BlY2lmaWMgZmlsZSAqLworCWlmIChmMmZzX3NiX2hhc19xdW90YV9pbm8oRjJGU19TQihzYikpKSB7CisJCWYyZnNfZXJyKEYyRlNfU0Ioc2IpLCAicXVvdGEgc3lzZmlsZSBhbHJlYWR5IGV4aXN0cyIpOworCQlyZXR1cm4gLUVCVVNZOworCX0KKwogCWVyciA9IGYyZnNfcXVvdGFfc3luYyhzYiwgdHlwZSk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKQEAgLTIwMDAsNyArMjA2Nyw3IEBAIHN0YXRpYyBpbnQgZjJmc19xdW90YV9vbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlwZSwgaW50IGZvcm1hdF9pZCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBmMmZzX3F1b3RhX29mZihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlwZSkKK3N0YXRpYyBpbnQgX19mMmZzX3F1b3RhX29mZihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlwZSkKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gc2JfZHFvcHQoc2IpLT5maWxlc1t0eXBlXTsKIAlpbnQgZXJyOwpAQCAtMjAyNiwxMyArMjA5MywzMCBAQCBzdGF0aWMgaW50IGYyZnNfcXVvdGFfb2ZmKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBlKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgZjJmc19xdW90YV9vZmYoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHR5cGUpCit7CisJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19TQihzYik7CisJaW50IGVycjsKKworCWVyciA9IF9fZjJmc19xdW90YV9vZmYoc2IsIHR5cGUpOworCisJLyoKKwkgKiBxdW90YWN0bCBjYW4gc2h1dGRvd24gam91cm5hbGxlZCBxdW90YSwgcmVzdWx0IGluIGluY29uc2lzdGVuY2UKKwkgKiBiZXR3ZWVuIHF1b3RhIHJlY29yZCBhbmQgZnMgZGF0YSBieSBmb2xsb3dpbmcgdXBkYXRlcywgdGFnIHRoZQorCSAqIGZsYWcgdG8gbGV0IGZzY2sgYmUgYXdhcmUgb2YgaXQuCisJICovCisJaWYgKGlzX2pvdXJuYWxsZWRfcXVvdGEoc2JpKSkKKwkJc2V0X3NiaV9mbGFnKHNiaSwgU0JJX1FVT1RBX05FRURfUkVQQUlSKTsKKwlyZXR1cm4gZXJyOworfQorCiB2b2lkIGYyZnNfcXVvdGFfb2ZmX3Vtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogewogCWludCB0eXBlOwogCWludCBlcnI7CiAKIAlmb3IgKHR5cGUgPSAwOyB0eXBlIDwgTUFYUVVPVEFTOyB0eXBlKyspIHsKLQkJZXJyID0gZjJmc19xdW90YV9vZmYoc2IsIHR5cGUpOworCQllcnIgPSBfX2YyZnNfcXVvdGFfb2ZmKHNiLCB0eXBlKTsKIAkJaWYgKGVycikgewogCQkJaW50IHJldCA9IGRxdW90X3F1b3RhX29mZihzYiwgdHlwZSk7CiAKQEAgLTI2MTcsOCArMjcwMSw3IEBAIGludCBmMmZzX3Nhbml0eV9jaGVja19ja3B0KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAl9CiAKIAl2YWxpZF9ub2RlX2NvdW50ID0gbGUzMl90b19jcHUoY2twdC0+dmFsaWRfbm9kZV9jb3VudCk7Ci0JYXZhaWxfbm9kZV9jb3VudCA9IHNiaS0+dG90YWxfbm9kZV9jb3VudCAtIHNiaS0+bnF1b3RhX2ZpbGVzIC0KLQkJCQkJCUYyRlNfUkVTRVJWRURfTk9ERV9OVU07CisJYXZhaWxfbm9kZV9jb3VudCA9IHNiaS0+dG90YWxfbm9kZV9jb3VudCAtIEYyRlNfUkVTRVJWRURfTk9ERV9OVU07CiAJaWYgKHZhbGlkX25vZGVfY291bnQgPiBhdmFpbF9ub2RlX2NvdW50KSB7CiAJCWYyZnNfZXJyKHNiaSwgIldyb25nIHZhbGlkX25vZGVfY291bnQ6ICV1LCBhdmFpbF9ub2RlX2NvdW50OiAldSIsCiAJCQkgdmFsaWRfbm9kZV9jb3VudCwgYXZhaWxfbm9kZV9jb3VudCk7CkBAIC0yNjU3LDEwICsyNzQwLDEwIEBAIGludCBmMmZzX3Nhbml0eV9jaGVja19ja3B0KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAkJfQogCX0KIAlmb3IgKGkgPSAwOyBpIDwgTlJfQ1VSU0VHX05PREVfVFlQRTsgaSsrKSB7Ci0JCWZvciAoaiA9IGk7IGogPCBOUl9DVVJTRUdfREFUQV9UWVBFOyBqKyspIHsKKwkJZm9yIChqID0gMDsgaiA8IE5SX0NVUlNFR19EQVRBX1RZUEU7IGorKykgewogCQkJaWYgKGxlMzJfdG9fY3B1KGNrcHQtPmN1cl9ub2RlX3NlZ25vW2ldKSA9PQogCQkJCWxlMzJfdG9fY3B1KGNrcHQtPmN1cl9kYXRhX3NlZ25vW2pdKSkgewotCQkJCWYyZnNfZXJyKHNiaSwgIkRhdGEgc2VnbWVudCAoJXUpIGFuZCBEYXRhIHNlZ21lbnQgKCV1KSBoYXMgdGhlIHNhbWUgc2Vnbm86ICV1IiwKKwkJCQlmMmZzX2VycihzYmksICJOb2RlIHNlZ21lbnQgKCV1KSBhbmQgRGF0YSBzZWdtZW50ICgldSkgaGFzIHRoZSBzYW1lIHNlZ25vOiAldSIsCiAJCQkJCSBpLCBqLAogCQkJCQkgbGUzMl90b19jcHUoY2twdC0+Y3VyX25vZGVfc2Vnbm9baV0pKTsKIAkJCQlyZXR1cm4gMTsKQEAgLTMwMzMsNiArMzExNiw1MyBAQCBzdGF0aWMgaW50IGYyZnNfc2Nhbl9kZXZpY2VzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBmMmZzX3NldHVwX2Nhc2Vmb2xkKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKK3sKKyNpZmRlZiBDT05GSUdfVU5JQ09ERQorCWlmIChmMmZzX3NiX2hhc19jYXNlZm9sZChzYmkpICYmICFzYmktPnNfZW5jb2RpbmcpIHsKKwkJY29uc3Qgc3RydWN0IGYyZnNfc2JfZW5jb2RpbmdzICplbmNvZGluZ19pbmZvOworCQlzdHJ1Y3QgdW5pY29kZV9tYXAgKmVuY29kaW5nOworCQlfX3UxNiBlbmNvZGluZ19mbGFnczsKKworCQlpZiAoZjJmc19zYl9oYXNfZW5jcnlwdChzYmkpKSB7CisJCQlmMmZzX2VycihzYmksCisJCQkJIkNhbid0IG1vdW50IHdpdGggZW5jb2RpbmcgYW5kIGVuY3J5cHRpb24iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJaWYgKGYyZnNfc2JfcmVhZF9lbmNvZGluZyhzYmktPnJhd19zdXBlciwgJmVuY29kaW5nX2luZm8sCisJCQkJCSAgJmVuY29kaW5nX2ZsYWdzKSkgeworCQkJZjJmc19lcnIoc2JpLAorCQkJCSAiRW5jb2RpbmcgcmVxdWVzdGVkIGJ5IHN1cGVyYmxvY2sgaXMgdW5rbm93biIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQllbmNvZGluZyA9IHV0ZjhfbG9hZChlbmNvZGluZ19pbmZvLT52ZXJzaW9uKTsKKwkJaWYgKElTX0VSUihlbmNvZGluZykpIHsKKwkJCWYyZnNfZXJyKHNiaSwKKwkJCQkgImNhbid0IG1vdW50IHdpdGggc3VwZXJibG9jayBjaGFyc2V0OiAlcy0lcyAiCisJCQkJICJub3Qgc3VwcG9ydGVkIGJ5IHRoZSBrZXJuZWwuIGZsYWdzOiAweCV4LiIsCisJCQkJIGVuY29kaW5nX2luZm8tPm5hbWUsIGVuY29kaW5nX2luZm8tPnZlcnNpb24sCisJCQkJIGVuY29kaW5nX2ZsYWdzKTsKKwkJCXJldHVybiBQVFJfRVJSKGVuY29kaW5nKTsKKwkJfQorCQlmMmZzX2luZm8oc2JpLCAiVXNpbmcgZW5jb2RpbmcgZGVmaW5lZCBieSBzdXBlcmJsb2NrOiAiCisJCQkgIiVzLSVzIHdpdGggZmxhZ3MgMHglaHgiLCBlbmNvZGluZ19pbmZvLT5uYW1lLAorCQkJIGVuY29kaW5nX2luZm8tPnZlcnNpb24/OiJcYiIsIGVuY29kaW5nX2ZsYWdzKTsKKworCQlzYmktPnNfZW5jb2RpbmcgPSBlbmNvZGluZzsKKwkJc2JpLT5zX2VuY29kaW5nX2ZsYWdzID0gZW5jb2RpbmdfZmxhZ3M7CisJCXNiaS0+c2ItPnNfZF9vcCA9ICZmMmZzX2RlbnRyeV9vcHM7CisJfQorI2Vsc2UKKwlpZiAoZjJmc19zYl9oYXNfY2FzZWZvbGQoc2JpKSkgeworCQlmMmZzX2VycihzYmksICJGaWxlc3lzdGVtIHdpdGggY2FzZWZvbGQgZmVhdHVyZSBjYW5ub3QgYmUgbW91bnRlZCB3aXRob3V0IENPTkZJR19VTklDT0RFIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKyNlbmRpZgorCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBmMmZzX3R1bmluZ19wYXJhbWV0ZXJzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIHsKIAlzdHJ1Y3QgZjJmc19zbV9pbmZvICpzbV9pID0gU01fSShzYmkpOwpAQCAtMzEyOSw2ICszMjU5LDEwIEBAIHN0YXRpYyBpbnQgZjJmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJCQkJbGUzMl90b19jcHUocmF3X3N1cGVyLT5sb2dfYmxvY2tzaXplKTsKIAlzYi0+c19tYXhfbGlua3MgPSBGMkZTX0xJTktfTUFYOwogCisJZXJyID0gZjJmc19zZXR1cF9jYXNlZm9sZChzYmkpOworCWlmIChlcnIpCisJCWdvdG8gZnJlZV9vcHRpb25zOworCiAjaWZkZWYgQ09ORklHX1FVT1RBCiAJc2ItPmRxX29wID0gJmYyZnNfcXVvdGFfb3BlcmF0aW9uczsKIAlzYi0+c19xY29wID0gJmYyZnNfcXVvdGFjdGxfb3BzOwpAQCAtMzIwNyw3ICszMzQxLDcgQEAgc3RhdGljIGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAlpZiAoZXJyKQogCQlnb3RvIGZyZWVfYmlvX2luZm87CiAKLQlpZiAoRjJGU19JT19TSVpFKHNiaSkgPiAxKSB7CisJaWYgKEYyRlNfSU9fQUxJR05FRChzYmkpKSB7CiAJCXNiaS0+d3JpdGVfaW9fZHVtbXkgPQogCQkJbWVtcG9vbF9jcmVhdGVfcGFnZV9wb29sKDIgKiAoRjJGU19JT19TSVpFKHNiaSkgLSAxKSwgMCk7CiAJCWlmICghc2JpLT53cml0ZV9pb19kdW1teSkgewpAQCAtMzQ4Miw2ICszNjE2LDEwIEBAIHN0YXRpYyBpbnQgZjJmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiBmcmVlX2Jpb19pbmZvOgogCWZvciAoaSA9IDA7IGkgPCBOUl9QQUdFX1RZUEU7IGkrKykKIAkJa3ZmcmVlKHNiaS0+d3JpdGVfaW9baV0pOworCisjaWZkZWYgQ09ORklHX1VOSUNPREUKKwl1dGY4X3VubG9hZChzYmktPnNfZW5jb2RpbmcpOworI2VuZGlmCiBmcmVlX29wdGlvbnM6CiAjaWZkZWYgQ09ORklHX1FVT1RBCiAJZm9yIChpID0gMDsgaSA8IE1BWFFVT1RBUzsgaSsrKQpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zeXNmcy5jIGIvZnMvZjJmcy9zeXNmcy5jCmluZGV4IDBjZDY0ZjkuLmI1NThiNjQgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvc3lzZnMuYworKysgYi9mcy9mMmZzL3N5c2ZzLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZjJmc19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvdW5pY29kZS5oPgogCiAjaW5jbHVkZSAiZjJmcy5oIgogI2luY2x1ZGUgInNlZ21lbnQuaCIKQEAgLTgxLDYgKzgyLDE5IEBAIHN0YXRpYyBzc2l6ZV90IHVudXNhYmxlX3Nob3coc3RydWN0IGYyZnNfYXR0ciAqYSwKIAkJKHVuc2lnbmVkIGxvbmcgbG9uZyl1bnVzYWJsZSk7CiB9CiAKK3N0YXRpYyBzc2l6ZV90IGVuY29kaW5nX3Nob3coc3RydWN0IGYyZnNfYXR0ciAqYSwKKwkJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBjaGFyICpidWYpCit7CisjaWZkZWYgQ09ORklHX1VOSUNPREUKKwlpZiAoZjJmc19zYl9oYXNfY2FzZWZvbGQoc2JpKSkKKwkJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXMgKCVkLiVkLiVkKVxuIiwKKwkJCXNiaS0+c19lbmNvZGluZy0+Y2hhcnNldCwKKwkJCShzYmktPnNfZW5jb2RpbmctPnZlcnNpb24gPj4gMTYpICYgMHhmZiwKKwkJCShzYmktPnNfZW5jb2RpbmctPnZlcnNpb24gPj4gOCkgJiAweGZmLAorCQkJc2JpLT5zX2VuY29kaW5nLT52ZXJzaW9uICYgMHhmZik7CisjZW5kaWYKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIobm9uZSkiKTsKK30KIAogc3RhdGljIHNzaXplX3QgbGlmZXRpbWVfd3JpdGVfa2J5dGVzX3Nob3coc3RydWN0IGYyZnNfYXR0ciAqYSwKIAkJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBjaGFyICpidWYpCkBAIC0xMzcsNiArMTUxLDkgQEAgc3RhdGljIHNzaXplX3QgZmVhdHVyZXNfc2hvdyhzdHJ1Y3QgZjJmc19hdHRyICphLAogCWlmIChmMmZzX3NiX2hhc19zYl9jaGtzdW0oc2JpKSkKIAkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwgUEFHRV9TSVpFIC0gbGVuLCAiJXMlcyIsCiAJCQkJbGVuID8gIiwgIiA6ICIiLCAic2JfY2hlY2tzdW0iKTsKKwlpZiAoZjJmc19zYl9oYXNfY2FzZWZvbGQoc2JpKSkKKwkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwgUEFHRV9TSVpFIC0gbGVuLCAiJXMlcyIsCisJCQkJbGVuID8gIiwgIiA6ICIiLCAiY2FzZWZvbGQiKTsKIAlsZW4gKz0gc25wcmludGYoYnVmICsgbGVuLCBQQUdFX1NJWkUgLSBsZW4sICJcbiIpOwogCXJldHVybiBsZW47CiB9CkBAIC0zNjksNiArMzg2LDcgQEAgZW51bSBmZWF0X2lkIHsKIAlGRUFUX0xPU1RfRk9VTkQsCiAJRkVBVF9WRVJJVFksCiAJRkVBVF9TQl9DSEVDS1NVTSwKKwlGRUFUX0NBU0VGT0xELAogfTsKIAogc3RhdGljIHNzaXplX3QgZjJmc19mZWF0dXJlX3Nob3coc3RydWN0IGYyZnNfYXR0ciAqYSwKQEAgLTM4Nyw2ICs0MDUsNyBAQCBzdGF0aWMgc3NpemVfdCBmMmZzX2ZlYXR1cmVfc2hvdyhzdHJ1Y3QgZjJmc19hdHRyICphLAogCWNhc2UgRkVBVF9MT1NUX0ZPVU5EOgogCWNhc2UgRkVBVF9WRVJJVFk6CiAJY2FzZSBGRUFUX1NCX0NIRUNLU1VNOgorCWNhc2UgRkVBVF9DQVNFRk9MRDoKIAkJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAic3VwcG9ydGVkXG4iKTsKIAl9CiAJcmV0dXJuIDA7CkBAIC00NjAsNiArNDc5LDcgQEAgRjJGU19HRU5FUkFMX1JPX0FUVFIobGlmZXRpbWVfd3JpdGVfa2J5dGVzKTsKIEYyRlNfR0VORVJBTF9ST19BVFRSKGZlYXR1cmVzKTsKIEYyRlNfR0VORVJBTF9ST19BVFRSKGN1cnJlbnRfcmVzZXJ2ZWRfYmxvY2tzKTsKIEYyRlNfR0VORVJBTF9ST19BVFRSKHVudXNhYmxlKTsKK0YyRlNfR0VORVJBTF9ST19BVFRSKGVuY29kaW5nKTsKIAogI2lmZGVmIENPTkZJR19GU19FTkNSWVBUSU9OCiBGMkZTX0ZFQVRVUkVfUk9fQVRUUihlbmNyeXB0aW9uLCBGRUFUX0NSWVBUTyk7CkBAIC00NzksNiArNDk5LDcgQEAgRjJGU19GRUFUVVJFX1JPX0FUVFIobG9zdF9mb3VuZCwgRkVBVF9MT1NUX0ZPVU5EKTsKIEYyRlNfRkVBVFVSRV9ST19BVFRSKHZlcml0eSwgRkVBVF9WRVJJVFkpOwogI2VuZGlmCiBGMkZTX0ZFQVRVUkVfUk9fQVRUUihzYl9jaGVja3N1bSwgRkVBVF9TQl9DSEVDS1NVTSk7CitGMkZTX0ZFQVRVUkVfUk9fQVRUUihjYXNlZm9sZCwgRkVBVF9DQVNFRk9MRCk7CiAKICNkZWZpbmUgQVRUUl9MSVNUKG5hbWUpICgmZjJmc19hdHRyXyMjbmFtZS5hdHRyKQogc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmYyZnNfYXR0cnNbXSA9IHsKQEAgLTUyMyw2ICs1NDQsNyBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqZjJmc19hdHRyc1tdID0gewogCUFUVFJfTElTVChmZWF0dXJlcyksCiAJQVRUUl9MSVNUKHJlc2VydmVkX2Jsb2NrcyksCiAJQVRUUl9MSVNUKGN1cnJlbnRfcmVzZXJ2ZWRfYmxvY2tzKSwKKwlBVFRSX0xJU1QoZW5jb2RpbmcpLAogCU5VTEwsCiB9OwogQVRUUklCVVRFX0dST1VQUyhmMmZzKTsKQEAgLTU0Niw2ICs1NjgsNyBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqZjJmc19mZWF0X2F0dHJzW10gPSB7CiAJQVRUUl9MSVNUKHZlcml0eSksCiAjZW5kaWYKIAlBVFRSX0xJU1Qoc2JfY2hlY2tzdW0pLAorCUFUVFJfTElTVChjYXNlZm9sZCksCiAJTlVMTCwKIH07CiBBVFRSSUJVVEVfR1JPVVBTKGYyZnNfZmVhdCk7CmRpZmYgLS1naXQgYS9mcy9mMmZzL3hhdHRyLmMgYi9mcy9mMmZzL3hhdHRyLmMKaW5kZXggYjMyYzQ1Ni4uMTgxOTAwYSAxMDA2NDQKLS0tIGEvZnMvZjJmcy94YXR0ci5jCisrKyBiL2ZzL2YyZnMveGF0dHIuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Bvc2l4X2FjbF94YXR0ci5oPgogI2luY2x1ZGUgImYyZnMuaCIKICNpbmNsdWRlICJ4YXR0ci5oIgorI2luY2x1ZGUgInNlZ21lbnQuaCIKIAogc3RhdGljIGludCBmMmZzX3hhdHRyX2dlbmVyaWNfZ2V0KGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyICpoYW5kbGVyLAogCQlzdHJ1Y3QgZGVudHJ5ICp1bnVzZWQsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCkBAIC03MjksNiArNzMwLDExIEBAIGludCBmMmZzX3NldHhhdHRyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBpbmRleCwgY29uc3QgY2hhciAqbmFtZSwKIAlzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBGMkZTX0lfU0IoaW5vZGUpOwogCWludCBlcnI7CiAKKwlpZiAodW5saWtlbHkoZjJmc19jcF9lcnJvcihzYmkpKSkKKwkJcmV0dXJuIC1FSU87CisJaWYgKCFmMmZzX2lzX2NoZWNrcG9pbnRfcmVhZHkoc2JpKSkKKwkJcmV0dXJuIC1FTk9TUEM7CisKIAllcnIgPSBkcXVvdF9pbml0aWFsaXplKGlub2RlKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvZnMvZmF0L2Rpci5jIGIvZnMvZmF0L2Rpci5jCmluZGV4IDFiZGEyYWIuLjA1NGFjZDlmIDEwMDY0NAotLS0gYS9mcy9mYXQvZGlyLmMKKysrIGIvZnMvZmF0L2Rpci5jCkBAIC04OCw5ICs4OCw3IEBAIHN0YXRpYyBpbnQgZmF0X19nZXRfZW50cnkoc3RydWN0IGlub2RlICpkaXIsIGxvZmZfdCAqcG9zLAogCWludCBlcnIsIG9mZnNldDsKIAogbmV4dDoKLQlpZiAoKmJoKQotCQlicmVsc2UoKmJoKTsKLQorCWJyZWxzZSgqYmgpOwogCSpiaCA9IE5VTEw7CiAJaWJsb2NrID0gKnBvcyA+PiBzYi0+c19ibG9ja3NpemVfYml0czsKIAllcnIgPSBmYXRfYm1hcChkaXIsIGlibG9jaywgJnBoeXMsICZtYXBwZWRfYmxvY2tzLCAwLCBmYWxzZSk7CkBAIC0xMTAwLDggKzEwOTgsMTEgQEAgc3RhdGljIGludCBmYXRfemVyb2VkX2NsdXN0ZXIoc3RydWN0IGlub2RlICpkaXIsIHNlY3Rvcl90IGJsa25yLCBpbnQgbnJfdXNlZCwKIAkJCWVyciA9IC1FTk9NRU07CiAJCQlnb3RvIGVycm9yOwogCQl9CisJCS8qIEF2b2lkIHJhY2Ugd2l0aCB1c2Vyc3BhY2UgcmVhZCB2aWEgYmRldiAqLworCQlsb2NrX2J1ZmZlcihiaHNbbl0pOwogCQltZW1zZXQoYmhzW25dLT5iX2RhdGEsIDAsIHNiLT5zX2Jsb2Nrc2l6ZSk7CiAJCXNldF9idWZmZXJfdXB0b2RhdGUoYmhzW25dKTsKKwkJdW5sb2NrX2J1ZmZlcihiaHNbbl0pOwogCQltYXJrX2J1ZmZlcl9kaXJ0eV9pbm9kZShiaHNbbl0sIGRpcik7CiAKIAkJbisrOwpAQCAtMTE1OCw2ICsxMTU5LDggQEAgaW50IGZhdF9hbGxvY19uZXdfZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCiAJZmF0X3RpbWVfdW5peDJmYXQoc2JpLCB0cywgJnRpbWUsICZkYXRlLCAmdGltZV9jcyk7CiAKIAlkZSA9IChzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICopYmhzWzBdLT5iX2RhdGE7CisJLyogQXZvaWQgcmFjZSB3aXRoIHVzZXJzcGFjZSByZWFkIHZpYSBiZGV2ICovCisJbG9ja19idWZmZXIoYmhzWzBdKTsKIAkvKiBmaWxsaW5nIHRoZSBuZXcgZGlyZWN0b3J5IHNsb3RzICgiLiIgYW5kICIuLiIgZW50cmllcykgKi8KIAltZW1jcHkoZGVbMF0ubmFtZSwgTVNET1NfRE9ULCBNU0RPU19OQU1FKTsKIAltZW1jcHkoZGVbMV0ubmFtZSwgTVNET1NfRE9URE9ULCBNU0RPU19OQU1FKTsKQEAgLTExODAsNiArMTE4Myw3IEBAIGludCBmYXRfYWxsb2NfbmV3X2RpcihzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IHRpbWVzcGVjNjQgKnRzKQogCWRlWzBdLnNpemUgPSBkZVsxXS5zaXplID0gMDsKIAltZW1zZXQoZGUgKyAyLCAwLCBzYi0+c19ibG9ja3NpemUgLSAyICogc2l6ZW9mKCpkZSkpOwogCXNldF9idWZmZXJfdXB0b2RhdGUoYmhzWzBdKTsKKwl1bmxvY2tfYnVmZmVyKGJoc1swXSk7CiAJbWFya19idWZmZXJfZGlydHlfaW5vZGUoYmhzWzBdLCBkaXIpOwogCiAJZXJyID0gZmF0X3plcm9lZF9jbHVzdGVyKGRpciwgYmxrbnIsIDEsIGJocywgTUFYX0JVRl9QRVJfUEFHRSk7CkBAIC0xMjM3LDExICsxMjQxLDE0IEBAIHN0YXRpYyBpbnQgZmF0X2FkZF9uZXdfZW50cmllcyhzdHJ1Y3QgaW5vZGUgKmRpciwgdm9pZCAqc2xvdHMsIGludCBucl9zbG90cywKIAogCQkJLyogZmlsbCB0aGUgZGlyZWN0b3J5IGVudHJ5ICovCiAJCQljb3B5ID0gbWluKHNpemUsIHNiLT5zX2Jsb2Nrc2l6ZSk7CisJCQkvKiBBdm9pZCByYWNlIHdpdGggdXNlcnNwYWNlIHJlYWQgdmlhIGJkZXYgKi8KKwkJCWxvY2tfYnVmZmVyKGJoc1tuXSk7CiAJCQltZW1jcHkoYmhzW25dLT5iX2RhdGEsIHNsb3RzLCBjb3B5KTsKKwkJCXNldF9idWZmZXJfdXB0b2RhdGUoYmhzW25dKTsKKwkJCXVubG9ja19idWZmZXIoYmhzW25dKTsKKwkJCW1hcmtfYnVmZmVyX2RpcnR5X2lub2RlKGJoc1tuXSwgZGlyKTsKIAkJCXNsb3RzICs9IGNvcHk7CiAJCQlzaXplIC09IGNvcHk7Ci0JCQlzZXRfYnVmZmVyX3VwdG9kYXRlKGJoc1tuXSk7Ci0JCQltYXJrX2J1ZmZlcl9kaXJ0eV9pbm9kZShiaHNbbl0sIGRpcik7CiAJCQlpZiAoIXNpemUpCiAJCQkJYnJlYWs7CiAJCQluKys7CmRpZmYgLS1naXQgYS9mcy9mYXQvZmF0ZW50LmMgYi9mcy9mYXQvZmF0ZW50LmMKaW5kZXggMjY1OTgzNi4uMzY0N2M2NSAxMDA2NDQKLS0tIGEvZnMvZmF0L2ZhdGVudC5jCisrKyBiL2ZzL2ZhdC9mYXRlbnQuYwpAQCAtMzg4LDggKzM4OCwxMSBAQCBzdGF0aWMgaW50IGZhdF9taXJyb3JfYmhzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBidWZmZXJfaGVhZCAqKmJocywKIAkJCQllcnIgPSAtRU5PTUVNOwogCQkJCWdvdG8gZXJyb3I7CiAJCQl9CisJCQkvKiBBdm9pZCByYWNlIHdpdGggdXNlcnNwYWNlIHJlYWQgdmlhIGJkZXYgKi8KKwkJCWxvY2tfYnVmZmVyKGNfYmgpOwogCQkJbWVtY3B5KGNfYmgtPmJfZGF0YSwgYmhzW25dLT5iX2RhdGEsIHNiLT5zX2Jsb2Nrc2l6ZSk7CiAJCQlzZXRfYnVmZmVyX3VwdG9kYXRlKGNfYmgpOworCQkJdW5sb2NrX2J1ZmZlcihjX2JoKTsKIAkJCW1hcmtfYnVmZmVyX2RpcnR5X2lub2RlKGNfYmgsIHNiaS0+ZmF0X2lub2RlKTsKIAkJCWlmIChzYi0+c19mbGFncyAmIFNCX1NZTkNIUk9OT1VTKQogCQkJCWVyciA9IHN5bmNfZGlydHlfYnVmZmVyKGNfYmgpOwpkaWZmIC0tZ2l0IGEvZnMvZmF0L2lub2RlLmMgYi9mcy9mYXQvaW5vZGUuYwppbmRleCAwNTY4OTE5Li41ZjA0YzVjIDEwMDY0NAotLS0gYS9mcy9mYXQvaW5vZGUuYworKysgYi9mcy9mYXQvaW5vZGUuYwpAQCAtMzEsNiArMzEsMTEgQEAKIAogI2RlZmluZSBLQl9JTl9TRUNUT1JTIDIKIAorLyogRE9TIGRhdGVzIGZyb20gMTk4MC8xLzEgdGhyb3VnaCAyMTA3LzEyLzMxICovCisjZGVmaW5lIEZBVF9EQVRFX01JTiAoMDw8OSB8IDE8PDUgfCAxKQorI2RlZmluZSBGQVRfREFURV9NQVggKDEyNzw8OSB8IDEyPDw1IHwgMzEpCisjZGVmaW5lIEZBVF9USU1FX01BWCAoMjM8PDExIHwgNTk8PDUgfCAyOSkKKwogLyoKICAqIEEgZGVzZXJpYWxpemVkIGNvcHkgb2YgdGhlIG9uLWRpc2sgc3RydWN0dXJlIGxhaWQgb3V0IGluIHN0cnVjdAogICogZmF0X2Jvb3Rfc2VjdG9yLgpAQCAtMTYwNSw2ICsxNjEwLDcgQEAgaW50IGZhdF9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQsIGludCBpc3ZmYXQsCiAJaW50IGRlYnVnOwogCWxvbmcgZXJyb3I7CiAJY2hhciBidWZbNTBdOworCXN0cnVjdCB0aW1lc3BlYzY0IHRzOwogCiAJLyoKIAkgKiBHRlBfS0VSTkVMIGlzIG9rIGhlcmUsIGJlY2F1c2Ugd2hpbGUgd2UgZG8gaG9sZCB0aGUKQEAgLTE2OTgsNiArMTcwNCwxMiBAQCBpbnQgZmF0X2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCwgaW50IGlzdmZhdCwKIAlzYmktPmZyZWVfY2x1c192YWxpZCA9IDA7CiAJc2JpLT5wcmV2X2ZyZWUgPSBGQVRfU1RBUlRfRU5UOwogCXNiLT5zX21heGJ5dGVzID0gMHhmZmZmZmZmZjsKKwlmYXRfdGltZV9mYXQydW5peChzYmksICZ0cywgMCwgY3B1X3RvX2xlMTYoRkFUX0RBVEVfTUlOKSwgMCk7CisJc2ItPnNfdGltZV9taW4gPSB0cy50dl9zZWM7CisKKwlmYXRfdGltZV9mYXQydW5peChzYmksICZ0cywgY3B1X3RvX2xlMTYoRkFUX1RJTUVfTUFYKSwKKwkJCSAgY3B1X3RvX2xlMTYoRkFUX0RBVEVfTUFYKSwgMCk7CisJc2ItPnNfdGltZV9tYXggPSB0cy50dl9zZWM7CiAKIAlpZiAoIXNiaS0+ZmF0X2xlbmd0aCAmJiBicGIuZmF0MzJfbGVuZ3RoKSB7CiAJCXN0cnVjdCBmYXRfYm9vdF9mc2luZm8gKmZzaW5mbzsKZGlmZiAtLWdpdCBhL2ZzL2ZpbGVfdGFibGUuYyBiL2ZzL2ZpbGVfdGFibGUuYwppbmRleCBiMDdiNTNmLi4zMGQ1NWM5IDEwMDY0NAotLS0gYS9mcy9maWxlX3RhYmxlLmMKKysrIGIvZnMvZmlsZV90YWJsZS5jCkBAIC0zMjcsNiArMzI3LDcgQEAgdm9pZCBmbHVzaF9kZWxheWVkX2ZwdXQodm9pZCkKIHsKIAlkZWxheWVkX2ZwdXQoTlVMTCk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChmbHVzaF9kZWxheWVkX2ZwdXQpOwogCiBzdGF0aWMgREVDTEFSRV9ERUxBWUVEX1dPUksoZGVsYXllZF9mcHV0X3dvcmssIGRlbGF5ZWRfZnB1dCk7CiAKZGlmZiAtLWdpdCBhL2ZzL2ZyZWV2eGZzL3Z4ZnNfc3VwZXIuYyBiL2ZzL2ZyZWV2eGZzL3Z4ZnNfc3VwZXIuYwppbmRleCBhODlmNjhjLi41NzhhNTA2IDEwMDY0NAotLS0gYS9mcy9mcmVldnhmcy92eGZzX3N1cGVyLmMKKysrIGIvZnMvZnJlZXZ4ZnMvdnhmc19zdXBlci5jCkBAIC0yMjksNiArMjI5LDggQEAgc3RhdGljIGludCB2eGZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYnAsIHZvaWQgKmRwLCBpbnQgc2lsZW50KQogCiAJc2JwLT5zX29wID0gJnZ4ZnNfc3VwZXJfb3BzOwogCXNicC0+c19mc19pbmZvID0gaW5mcDsKKwlzYnAtPnNfdGltZV9taW4gPSAwOworCXNicC0+c190aW1lX21heCA9IFUzMl9NQVg7CiAKIAlpZiAoIXZ4ZnNfdHJ5X3NiX21hZ2ljKHNicCwgc2lsZW50LCAxLAogCQkJKF9fZm9yY2UgX19mczMyKWNwdV90b19sZTMyKFZYRlNfU1VQRVJfTUFHSUMpKSkgewpkaWZmIC0tZ2l0IGEvZnMvZnNfY29udGV4dC5jIGIvZnMvZnNfY29udGV4dC5jCmluZGV4IDg3YzJjOTYuLjEzOGI1YjQgMTAwNjQ0Ci0tLSBhL2ZzL2ZzX2NvbnRleHQuYworKysgYi9mcy9mc19jb250ZXh0LmMKQEAgLTUwNCw3ICs1MDQsNiBAQCB2b2lkIHB1dF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYykKIAlwdXRfbmV0KGZjLT5uZXRfbnMpOwogCXB1dF91c2VyX25zKGZjLT51c2VyX25zKTsKIAlwdXRfY3JlZChmYy0+Y3JlZCk7Ci0Ja2ZyZWUoZmMtPnN1YnR5cGUpOwogCXB1dF9mY19sb2coZmMpOwogCXB1dF9maWxlc3lzdGVtKGZjLT5mc190eXBlKTsKIAlrZnJlZShmYy0+c291cmNlKTsKQEAgLTU3MSwxNyArNTcwLDYgQEAgc3RhdGljIGludCBsZWdhY3lfcGFyc2VfcGFyYW0oc3RydWN0IGZzX2NvbnRleHQgKmZjLCBzdHJ1Y3QgZnNfcGFyYW1ldGVyICpwYXJhbSkKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKChmYy0+ZnNfdHlwZS0+ZnNfZmxhZ3MgJiBGU19IQVNfU1VCVFlQRSkgJiYKLQkgICAgc3RyY21wKHBhcmFtLT5rZXksICJzdWJ0eXBlIikgPT0gMCkgewotCQlpZiAocGFyYW0tPnR5cGUgIT0gZnNfdmFsdWVfaXNfc3RyaW5nKQotCQkJcmV0dXJuIGludmFsZihmYywgIlZGUzogTGVnYWN5OiBOb24tc3RyaW5nIHN1YnR5cGUiKTsKLQkJaWYgKGZjLT5zdWJ0eXBlKQotCQkJcmV0dXJuIGludmFsZihmYywgIlZGUzogTGVnYWN5OiBNdWx0aXBsZSBzdWJ0eXBlIik7Ci0JCWZjLT5zdWJ0eXBlID0gcGFyYW0tPnN0cmluZzsKLQkJcGFyYW0tPnN0cmluZyA9IE5VTEw7Ci0JCXJldHVybiAwOwotCX0KLQogCWlmIChjdHgtPnBhcmFtX3R5cGUgPT0gTEVHQUNZX0ZTX01PTk9MSVRISUNfUEFSQU1TKQogCQlyZXR1cm4gaW52YWxmKGZjLCAiVkZTOiBMZWdhY3k6IENhbid0IG1peCBtb25vbGl0aGljIGFuZCBpbmRpdmlkdWFsIG9wdGlvbnMiKTsKIApAQCAtNzM4LDggKzcyNiw2IEBAIHZvaWQgdmZzX2NsZWFuX2NvbnRleHQoc3RydWN0IGZzX2NvbnRleHQgKmZjKQogCWZjLT5zX2ZzX2luZm8gPSBOVUxMOwogCWZjLT5zYl9mbGFncyA9IDA7CiAJc2VjdXJpdHlfZnJlZV9tbnRfb3B0cygmZmMtPnNlY3VyaXR5KTsKLQlrZnJlZShmYy0+c3VidHlwZSk7Ci0JZmMtPnN1YnR5cGUgPSBOVUxMOwogCWtmcmVlKGZjLT5zb3VyY2UpOwogCWZjLT5zb3VyY2UgPSBOVUxMOwogCmRpZmYgLS1naXQgYS9mcy9mc19wYXJzZXIuYyBiL2ZzL2ZzX3BhcnNlci5jCmluZGV4IDQ2MGVhNDIuLmQxOTMwYWQgMTAwNjQ0Ci0tLSBhL2ZzL2ZzX3BhcnNlci5jCisrKyBiL2ZzL2ZzX3BhcnNlci5jCkBAIC0yMDQsOSArMjA0LDIzIEBAIGludCBmc19wYXJzZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMsCiAJCWdvdG8gb2theTsKIAogCWNhc2UgZnNfcGFyYW1faXNfZmQ6IHsKLQkJaWYgKHBhcmFtLT50eXBlICE9IGZzX3ZhbHVlX2lzX2ZpbGUpCisJCXN3aXRjaCAocGFyYW0tPnR5cGUpIHsKKwkJY2FzZSBmc192YWx1ZV9pc19zdHJpbmc6CisJCQlpZiAoIXJlc3VsdC0+aGFzX3ZhbHVlKQorCQkJCWdvdG8gYmFkX3ZhbHVlOworCisJCQlyZXQgPSBrc3RydG91aW50KHBhcmFtLT5zdHJpbmcsIDAsICZyZXN1bHQtPnVpbnRfMzIpOworCQkJYnJlYWs7CisJCWNhc2UgZnNfdmFsdWVfaXNfZmlsZToKKwkJCXJlc3VsdC0+dWludF8zMiA9IHBhcmFtLT5kaXJmZDsKKwkJCXJldCA9IDA7CisJCWRlZmF1bHQ6CiAJCQlnb3RvIGJhZF92YWx1ZTsKLQkJZ290byBva2F5OworCQl9CisKKwkJaWYgKHJlc3VsdC0+dWludF8zMiA+IElOVF9NQVgpCisJCQlnb3RvIGJhZF92YWx1ZTsKKwkJZ290byBtYXliZV9va2F5OwogCX0KIAogCWNhc2UgZnNfcGFyYW1faXNfYmxvY2tkZXY6CmRpZmYgLS1naXQgYS9mcy9mdXNlL0tjb25maWcgYi9mcy9mdXNlL0tjb25maWcKaW5kZXggMjRmYzVhNS4uMDYzNWNiYSAxMDA2NDQKLS0tIGEvZnMvZnVzZS9LY29uZmlnCisrKyBiL2ZzL2Z1c2UvS2NvbmZpZwpAQCAtMjcsMyArMjcsMTQgQEAKIAogCSAgSWYgeW91IHdhbnQgdG8gZGV2ZWxvcCBvciB1c2UgYSB1c2Vyc3BhY2UgY2hhcmFjdGVyIGRldmljZQogCSAgYmFzZWQgb24gQ1VTRSwgYW5zd2VyIFkgb3IgTS4KKworY29uZmlnIFZJUlRJT19GUworCXRyaXN0YXRlICJWaXJ0aW8gRmlsZXN5c3RlbSIKKwlkZXBlbmRzIG9uIEZVU0VfRlMKKwlzZWxlY3QgVklSVElPCisJaGVscAorCSAgVGhlIFZpcnRpbyBGaWxlc3lzdGVtIGFsbG93cyBndWVzdHMgdG8gbW91bnQgZmlsZSBzeXN0ZW1zIGZyb20gdGhlCisgICAgICAgICAgaG9zdC4KKworCSAgSWYgeW91IHdhbnQgdG8gc2hhcmUgZmlsZXMgYmV0d2VlbiBndWVzdHMgb3Igd2l0aCB0aGUgaG9zdCwgYW5zd2VyIFkKKyAgICAgICAgICBvciBNLgpkaWZmIC0tZ2l0IGEvZnMvZnVzZS9NYWtlZmlsZSBiL2ZzL2Z1c2UvTWFrZWZpbGUKaW5kZXggOTQ4NTAxOS4uNjQxOWEyYiAxMDA2NDQKLS0tIGEvZnMvZnVzZS9NYWtlZmlsZQorKysgYi9mcy9mdXNlL01ha2VmaWxlCkBAIC01LDUgKzUsNiBAQAogCiBvYmotJChDT05GSUdfRlVTRV9GUykgKz0gZnVzZS5vCiBvYmotJChDT05GSUdfQ1VTRSkgKz0gY3VzZS5vCitvYmotJChDT05GSUdfVklSVElPX0ZTKSArPSB2aXJ0aW9fZnMubwogCiBmdXNlLW9ianMgOj0gZGV2Lm8gZGlyLm8gZmlsZS5vIGlub2RlLm8gY29udHJvbC5vIHhhdHRyLm8gYWNsLm8gcmVhZGRpci5vCmRpZmYgLS1naXQgYS9mcy9mdXNlL2N1c2UuYyBiL2ZzL2Z1c2UvY3VzZS5jCmluZGV4IGJhYjdhMGQuLjAwMDE1ZDggMTAwNjQ0Ci0tLSBhL2ZzL2Z1c2UvY3VzZS5jCisrKyBiL2ZzL2Z1c2UvY3VzZS5jCkBAIC0xNDIsMTEgKzE0MiwxMCBAQCBzdGF0aWMgaW50IGN1c2Vfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIAogc3RhdGljIGludCBjdXNlX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0Jc3RydWN0IGZ1c2VfaW5vZGUgKmZpID0gZ2V0X2Z1c2VfaW5vZGUoaW5vZGUpOwogCXN0cnVjdCBmdXNlX2ZpbGUgKmZmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZmYtPmZjOwogCi0JZnVzZV9zeW5jX3JlbGVhc2UoZmksIGZmLCBmaWxlLT5mX2ZsYWdzKTsKKwlmdXNlX3N5bmNfcmVsZWFzZShOVUxMLCBmZiwgZmlsZS0+Zl9mbGFncyk7CiAJZnVzZV9jb25uX3B1dChmYyk7CiAKIAlyZXR1cm4gMDsKQEAgLTI5OSw2ICsyOTgsMTQgQEAgc3RhdGljIHZvaWQgY3VzZV9nZW5kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJa2ZyZWUoZGV2KTsKIH0KIAorc3RydWN0IGN1c2VfaW5pdF9hcmdzIHsKKwlzdHJ1Y3QgZnVzZV9hcmdzX3BhZ2VzIGFwOworCXN0cnVjdCBjdXNlX2luaXRfaW4gaW47CisJc3RydWN0IGN1c2VfaW5pdF9vdXQgb3V0OworCXN0cnVjdCBwYWdlICpwYWdlOworCXN0cnVjdCBmdXNlX3BhZ2VfZGVzYyBkZXNjOworfTsKKwogLyoqCiAgKiBjdXNlX3Byb2Nlc3NfaW5pdF9yZXBseSAtIGZpbmlzaCBpbml0aWFsaXppbmcgQ1VTRSBjaGFubmVsCiAgKgpAQCAtMzA2LDIxICszMTMsMjIgQEAgc3RhdGljIHZvaWQgY3VzZV9nZW5kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAgKiByZXF1aXJlZCBkYXRhIHN0cnVjdHVyZXMgZm9yIGl0LiAgUGxlYXNlIHJlYWQgdGhlIGNvbW1lbnQgYXQgdGhlCiAgKiB0b3Agb2YgdGhpcyBmaWxlIGZvciBoaWdoIGxldmVsIG92ZXJ2aWV3LgogICovCi1zdGF0aWMgdm9pZCBjdXNlX3Byb2Nlc3NfaW5pdF9yZXBseShzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCitzdGF0aWMgdm9pZCBjdXNlX3Byb2Nlc3NfaW5pdF9yZXBseShzdHJ1Y3QgZnVzZV9jb25uICpmYywKKwkJCQkgICAgc3RydWN0IGZ1c2VfYXJncyAqYXJncywgaW50IGVycm9yKQogeworCXN0cnVjdCBjdXNlX2luaXRfYXJncyAqaWEgPSBjb250YWluZXJfb2YoYXJncywgdHlwZW9mKCppYSksIGFwLmFyZ3MpOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwID0gJmlhLT5hcDsKIAlzdHJ1Y3QgY3VzZV9jb25uICpjYyA9IGZjX3RvX2NjKGZjKSwgKnBvczsKLQlzdHJ1Y3QgY3VzZV9pbml0X291dCAqYXJnID0gcmVxLT5vdXQuYXJnc1swXS52YWx1ZTsKLQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHJlcS0+cGFnZXNbMF07CisJc3RydWN0IGN1c2VfaW5pdF9vdXQgKmFyZyA9ICZpYS0+b3V0OworCXN0cnVjdCBwYWdlICpwYWdlID0gYXAtPnBhZ2VzWzBdOwogCXN0cnVjdCBjdXNlX2RldmluZm8gZGV2aW5mbyA9IHsgfTsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJc3RydWN0IGNkZXYgKmNkZXY7CiAJZGV2X3QgZGV2dDsKIAlpbnQgcmMsIGk7CiAKLQlpZiAocmVxLT5vdXQuaC5lcnJvciB8fAotCSAgICBhcmctPm1ham9yICE9IEZVU0VfS0VSTkVMX1ZFUlNJT04gfHwgYXJnLT5taW5vciA8IDExKSB7CisJaWYgKGVycm9yIHx8IGFyZy0+bWFqb3IgIT0gRlVTRV9LRVJORUxfVkVSU0lPTiB8fCBhcmctPm1pbm9yIDwgMTEpCiAJCWdvdG8gZXJyOwotCX0KIAogCWZjLT5taW5vciA9IGFyZy0+bWlub3I7CiAJZmMtPm1heF9yZWFkID0gbWF4X3QodW5zaWduZWQsIGFyZy0+bWF4X3JlYWQsIDQwOTYpOwpAQCAtMzI5LDcgKzMzNyw3IEBAIHN0YXRpYyB2b2lkIGN1c2VfcHJvY2Vzc19pbml0X3JlcGx5KHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKIAkvKiBwYXJzZSBpbml0IHJlcGx5ICovCiAJY2MtPnVucmVzdHJpY3RlZF9pb2N0bCA9IGFyZy0+ZmxhZ3MgJiBDVVNFX1VOUkVTVFJJQ1RFRF9JT0NUTDsKIAotCXJjID0gY3VzZV9wYXJzZV9kZXZpbmZvKHBhZ2VfYWRkcmVzcyhwYWdlKSwgcmVxLT5vdXQuYXJnc1sxXS5zaXplLAorCXJjID0gY3VzZV9wYXJzZV9kZXZpbmZvKHBhZ2VfYWRkcmVzcyhwYWdlKSwgYXAtPmFyZ3Mub3V0X2FyZ3NbMV0uc2l6ZSwKIAkJCQkmZGV2aW5mbyk7CiAJaWYgKHJjKQogCQlnb3RvIGVycjsKQEAgLTM5Niw3ICs0MDQsNyBAQCBzdGF0aWMgdm9pZCBjdXNlX3Byb2Nlc3NfaW5pdF9yZXBseShzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiAJZGV2X3NldF91ZXZlbnRfc3VwcHJlc3MoZGV2LCAwKTsKIAlrb2JqZWN0X3VldmVudCgmZGV2LT5rb2JqLCBLT0JKX0FERCk7CiBvdXQ6Ci0Ja2ZyZWUoYXJnKTsKKwlrZnJlZShpYSk7CiAJX19mcmVlX3BhZ2UocGFnZSk7CiAJcmV0dXJuOwogCkBAIC00MTUsNTUgKzQyMyw0OSBAQCBzdGF0aWMgdm9pZCBjdXNlX3Byb2Nlc3NfaW5pdF9yZXBseShzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiBzdGF0aWMgaW50IGN1c2Vfc2VuZF9pbml0KHN0cnVjdCBjdXNlX2Nvbm4gKmNjKQogewogCWludCByYzsKLQlzdHJ1Y3QgZnVzZV9yZXEgKnJlcTsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9ICZjYy0+ZmM7Ci0Jc3RydWN0IGN1c2VfaW5pdF9pbiAqYXJnOwotCXZvaWQgKm91dGFyZzsKKwlzdHJ1Y3QgY3VzZV9pbml0X2FyZ3MgKmlhOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwOwogCiAJQlVJTERfQlVHX09OKENVU0VfSU5JVF9JTkZPX01BWCA+IFBBR0VfU0laRSk7CiAKLQlyZXEgPSBmdXNlX2dldF9yZXFfZm9yX2JhY2tncm91bmQoZmMsIDEpOwotCWlmIChJU19FUlIocmVxKSkgewotCQlyYyA9IFBUUl9FUlIocmVxKTsKLQkJZ290byBlcnI7Ci0JfQotCiAJcmMgPSAtRU5PTUVNOwogCXBhZ2UgPSBhbGxvY19wYWdlKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKTsKIAlpZiAoIXBhZ2UpCi0JCWdvdG8gZXJyX3B1dF9yZXE7CisJCWdvdG8gZXJyOwogCi0Jb3V0YXJnID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGN1c2VfaW5pdF9vdXQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW91dGFyZykKKwlpYSA9IGt6YWxsb2Moc2l6ZW9mKCppYSksIEdGUF9LRVJORUwpOworCWlmICghaWEpCiAJCWdvdG8gZXJyX2ZyZWVfcGFnZTsKIAotCWFyZyA9ICZyZXEtPm1pc2MuY3VzZV9pbml0X2luOwotCWFyZy0+bWFqb3IgPSBGVVNFX0tFUk5FTF9WRVJTSU9OOwotCWFyZy0+bWlub3IgPSBGVVNFX0tFUk5FTF9NSU5PUl9WRVJTSU9OOwotCWFyZy0+ZmxhZ3MgfD0gQ1VTRV9VTlJFU1RSSUNURURfSU9DVEw7Ci0JcmVxLT5pbi5oLm9wY29kZSA9IENVU0VfSU5JVDsKLQlyZXEtPmluLm51bWFyZ3MgPSAxOwotCXJlcS0+aW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKHN0cnVjdCBjdXNlX2luaXRfaW4pOwotCXJlcS0+aW4uYXJnc1swXS52YWx1ZSA9IGFyZzsKLQlyZXEtPm91dC5udW1hcmdzID0gMjsKLQlyZXEtPm91dC5hcmdzWzBdLnNpemUgPSBzaXplb2Yoc3RydWN0IGN1c2VfaW5pdF9vdXQpOwotCXJlcS0+b3V0LmFyZ3NbMF0udmFsdWUgPSBvdXRhcmc7Ci0JcmVxLT5vdXQuYXJnc1sxXS5zaXplID0gQ1VTRV9JTklUX0lORk9fTUFYOwotCXJlcS0+b3V0LmFyZ3ZhciA9IDE7Ci0JcmVxLT5vdXQuYXJncGFnZXMgPSAxOwotCXJlcS0+cGFnZXNbMF0gPSBwYWdlOwotCXJlcS0+cGFnZV9kZXNjc1swXS5sZW5ndGggPSByZXEtPm91dC5hcmdzWzFdLnNpemU7Ci0JcmVxLT5udW1fcGFnZXMgPSAxOwotCXJlcS0+ZW5kID0gY3VzZV9wcm9jZXNzX2luaXRfcmVwbHk7Ci0JZnVzZV9yZXF1ZXN0X3NlbmRfYmFja2dyb3VuZChmYywgcmVxKTsKKwlhcCA9ICZpYS0+YXA7CisJaWEtPmluLm1ham9yID0gRlVTRV9LRVJORUxfVkVSU0lPTjsKKwlpYS0+aW4ubWlub3IgPSBGVVNFX0tFUk5FTF9NSU5PUl9WRVJTSU9OOworCWlhLT5pbi5mbGFncyB8PSBDVVNFX1VOUkVTVFJJQ1RFRF9JT0NUTDsKKwlhcC0+YXJncy5vcGNvZGUgPSBDVVNFX0lOSVQ7CisJYXAtPmFyZ3MuaW5fbnVtYXJncyA9IDE7CisJYXAtPmFyZ3MuaW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKGlhLT5pbik7CisJYXAtPmFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9ICZpYS0+aW47CisJYXAtPmFyZ3Mub3V0X251bWFyZ3MgPSAyOworCWFwLT5hcmdzLm91dF9hcmdzWzBdLnNpemUgPSBzaXplb2YoaWEtPm91dCk7CisJYXAtPmFyZ3Mub3V0X2FyZ3NbMF0udmFsdWUgPSAmaWEtPm91dDsKKwlhcC0+YXJncy5vdXRfYXJnc1sxXS5zaXplID0gQ1VTRV9JTklUX0lORk9fTUFYOworCWFwLT5hcmdzLm91dF9hcmd2YXIgPSAxOworCWFwLT5hcmdzLm91dF9wYWdlcyA9IDE7CisJYXAtPm51bV9wYWdlcyA9IDE7CisJYXAtPnBhZ2VzID0gJmlhLT5wYWdlOworCWFwLT5kZXNjcyA9ICZpYS0+ZGVzYzsKKwlpYS0+cGFnZSA9IHBhZ2U7CisJaWEtPmRlc2MubGVuZ3RoID0gYXAtPmFyZ3Mub3V0X2FyZ3NbMV0uc2l6ZTsKKwlhcC0+YXJncy5lbmQgPSBjdXNlX3Byb2Nlc3NfaW5pdF9yZXBseTsKIAotCXJldHVybiAwOwotCisJcmMgPSBmdXNlX3NpbXBsZV9iYWNrZ3JvdW5kKGZjLCAmYXAtPmFyZ3MsIEdGUF9LRVJORUwpOworCWlmIChyYykgeworCQlrZnJlZShpYSk7CiBlcnJfZnJlZV9wYWdlOgotCV9fZnJlZV9wYWdlKHBhZ2UpOwotZXJyX3B1dF9yZXE6Ci0JZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKKwkJX19mcmVlX3BhZ2UocGFnZSk7CisJfQogZXJyOgogCXJldHVybiByYzsKIH0KQEAgLTUwNCw5ICs1MDYsOSBAQCBzdGF0aWMgaW50IGN1c2VfY2hhbm5lbF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogCSAqIExpbWl0IHRoZSBjdXNlIGNoYW5uZWwgdG8gcmVxdWVzdHMgdGhhdCBjYW4KIAkgKiBiZSByZXByZXNlbnRlZCBpbiBmaWxlLT5mX2NyZWQtPnVzZXJfbnMuCiAJICovCi0JZnVzZV9jb25uX2luaXQoJmNjLT5mYywgZmlsZS0+Zl9jcmVkLT51c2VyX25zKTsKKwlmdXNlX2Nvbm5faW5pdCgmY2MtPmZjLCBmaWxlLT5mX2NyZWQtPnVzZXJfbnMsICZmdXNlX2Rldl9maXFfb3BzLCBOVUxMKTsKIAotCWZ1ZCA9IGZ1c2VfZGV2X2FsbG9jKCZjYy0+ZmMpOworCWZ1ZCA9IGZ1c2VfZGV2X2FsbG9jX2luc3RhbGwoJmNjLT5mYyk7CiAJaWYgKCFmdWQpIHsKIAkJa2ZyZWUoY2MpOwogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTUxOSw2ICs1MjEsNyBAQCBzdGF0aWMgaW50IGN1c2VfY2hhbm5lbF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogCXJjID0gY3VzZV9zZW5kX2luaXQoY2MpOwogCWlmIChyYykgewogCQlmdXNlX2Rldl9mcmVlKGZ1ZCk7CisJCWZ1c2VfY29ubl9wdXQoJmNjLT5mYyk7CiAJCXJldHVybiByYzsKIAl9CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gZnVkOwpkaWZmIC0tZ2l0IGEvZnMvZnVzZS9kZXYuYyBiL2ZzL2Z1c2UvZGV2LmMKaW5kZXggZWE4MjM3NS4uZGFkZDYxNyAxMDA2NDQKLS0tIGEvZnMvZnVzZS9kZXYuYworKysgYi9mcy9mdXNlL2Rldi5jCkBAIC00MCwxMDcgKzQwLDMwIEBAIHN0YXRpYyBzdHJ1Y3QgZnVzZV9kZXYgKmZ1c2VfZ2V0X2RldihzdHJ1Y3QgZmlsZSAqZmlsZSkKIAlyZXR1cm4gUkVBRF9PTkNFKGZpbGUtPnByaXZhdGVfZGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIGZ1c2VfcmVxdWVzdF9pbml0KHN0cnVjdCBmdXNlX3JlcSAqcmVxLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAotCQkJICAgICAgc3RydWN0IGZ1c2VfcGFnZV9kZXNjICpwYWdlX2Rlc2NzLAotCQkJICAgICAgdW5zaWduZWQgbnBhZ2VzKQorc3RhdGljIHZvaWQgZnVzZV9yZXF1ZXN0X2luaXQoc3RydWN0IGZ1c2VfcmVxICpyZXEpCiB7CiAJSU5JVF9MSVNUX0hFQUQoJnJlcS0+bGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJnJlcS0+aW50cl9lbnRyeSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmcmVxLT53YWl0cSk7CiAJcmVmY291bnRfc2V0KCZyZXEtPmNvdW50LCAxKTsKLQlyZXEtPnBhZ2VzID0gcGFnZXM7Ci0JcmVxLT5wYWdlX2Rlc2NzID0gcGFnZV9kZXNjczsKLQlyZXEtPm1heF9wYWdlcyA9IG5wYWdlczsKIAlfX3NldF9iaXQoRlJfUEVORElORywgJnJlcS0+ZmxhZ3MpOwogfQogCi1zdGF0aWMgc3RydWN0IHBhZ2UgKipmdXNlX3JlcV9wYWdlc19hbGxvYyh1bnNpZ25lZCBpbnQgbnBhZ2VzLCBnZnBfdCBmbGFncywKLQkJCQkJICBzdHJ1Y3QgZnVzZV9wYWdlX2Rlc2MgKipkZXNjKQotewotCXN0cnVjdCBwYWdlICoqcGFnZXM7Ci0KLQlwYWdlcyA9IGt6YWxsb2MobnBhZ2VzICogKHNpemVvZihzdHJ1Y3QgcGFnZSAqKSArCi0JCQkJICBzaXplb2Yoc3RydWN0IGZ1c2VfcGFnZV9kZXNjKSksIGZsYWdzKTsKLQkqZGVzYyA9ICh2b2lkICopIHBhZ2VzICsgbnBhZ2VzICogc2l6ZW9mKHN0cnVjdCBwYWdlICopOwotCi0JcmV0dXJuIHBhZ2VzOwotfQotCi1zdGF0aWMgc3RydWN0IGZ1c2VfcmVxICpfX2Z1c2VfcmVxdWVzdF9hbGxvYyh1bnNpZ25lZCBucGFnZXMsIGdmcF90IGZsYWdzKQorc3RhdGljIHN0cnVjdCBmdXNlX3JlcSAqZnVzZV9yZXF1ZXN0X2FsbG9jKGdmcF90IGZsYWdzKQogewogCXN0cnVjdCBmdXNlX3JlcSAqcmVxID0ga21lbV9jYWNoZV96YWxsb2MoZnVzZV9yZXFfY2FjaGVwLCBmbGFncyk7Ci0JaWYgKHJlcSkgewotCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzID0gTlVMTDsKLQkJc3RydWN0IGZ1c2VfcGFnZV9kZXNjICpwYWdlX2Rlc2NzID0gTlVMTDsKKwlpZiAocmVxKQorCQlmdXNlX3JlcXVlc3RfaW5pdChyZXEpOwogCi0JCVdBUk5fT04obnBhZ2VzID4gRlVTRV9NQVhfTUFYX1BBR0VTKTsKLQkJaWYgKG5wYWdlcyA+IEZVU0VfUkVRX0lOTElORV9QQUdFUykgewotCQkJcGFnZXMgPSBmdXNlX3JlcV9wYWdlc19hbGxvYyhucGFnZXMsIGZsYWdzLAotCQkJCQkJICAgICAmcGFnZV9kZXNjcyk7Ci0JCQlpZiAoIXBhZ2VzKSB7Ci0JCQkJa21lbV9jYWNoZV9mcmVlKGZ1c2VfcmVxX2NhY2hlcCwgcmVxKTsKLQkJCQlyZXR1cm4gTlVMTDsKLQkJCX0KLQkJfSBlbHNlIGlmIChucGFnZXMpIHsKLQkJCXBhZ2VzID0gcmVxLT5pbmxpbmVfcGFnZXM7Ci0JCQlwYWdlX2Rlc2NzID0gcmVxLT5pbmxpbmVfcGFnZV9kZXNjczsKLQkJfQotCi0JCWZ1c2VfcmVxdWVzdF9pbml0KHJlcSwgcGFnZXMsIHBhZ2VfZGVzY3MsIG5wYWdlcyk7Ci0JfQogCXJldHVybiByZXE7CiB9CiAKLXN0cnVjdCBmdXNlX3JlcSAqZnVzZV9yZXF1ZXN0X2FsbG9jKHVuc2lnbmVkIG5wYWdlcykKK3N0YXRpYyB2b2lkIGZ1c2VfcmVxdWVzdF9mcmVlKHN0cnVjdCBmdXNlX3JlcSAqcmVxKQogewotCXJldHVybiBfX2Z1c2VfcmVxdWVzdF9hbGxvYyhucGFnZXMsIEdGUF9LRVJORUwpOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoZnVzZV9yZXF1ZXN0X2FsbG9jKTsKLQotc3RydWN0IGZ1c2VfcmVxICpmdXNlX3JlcXVlc3RfYWxsb2Nfbm9mcyh1bnNpZ25lZCBucGFnZXMpCi17Ci0JcmV0dXJuIF9fZnVzZV9yZXF1ZXN0X2FsbG9jKG5wYWdlcywgR0ZQX05PRlMpOwotfQotCi1zdGF0aWMgdm9pZCBmdXNlX3JlcV9wYWdlc19mcmVlKHN0cnVjdCBmdXNlX3JlcSAqcmVxKQotewotCWlmIChyZXEtPnBhZ2VzICE9IHJlcS0+aW5saW5lX3BhZ2VzKQotCQlrZnJlZShyZXEtPnBhZ2VzKTsKLX0KLQotYm9vbCBmdXNlX3JlcV9yZWFsbG9jX3BhZ2VzKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSwKLQkJCSAgICBnZnBfdCBmbGFncykKLXsKLQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwotCXN0cnVjdCBmdXNlX3BhZ2VfZGVzYyAqcGFnZV9kZXNjczsKLQl1bnNpZ25lZCBpbnQgbnBhZ2VzID0gbWluX3QodW5zaWduZWQgaW50LAotCQkJCSAgICBtYXhfdCh1bnNpZ25lZCBpbnQsIHJlcS0+bWF4X3BhZ2VzICogMiwKLQkJCQkJICBGVVNFX0RFRkFVTFRfTUFYX1BBR0VTX1BFUl9SRVEpLAotCQkJCSAgICBmYy0+bWF4X3BhZ2VzKTsKLQlXQVJOX09OKG5wYWdlcyA8PSByZXEtPm1heF9wYWdlcyk7Ci0KLQlwYWdlcyA9IGZ1c2VfcmVxX3BhZ2VzX2FsbG9jKG5wYWdlcywgZmxhZ3MsICZwYWdlX2Rlc2NzKTsKLQlpZiAoIXBhZ2VzKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQltZW1jcHkocGFnZXMsIHJlcS0+cGFnZXMsIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSAqIHJlcS0+bWF4X3BhZ2VzKTsKLQltZW1jcHkocGFnZV9kZXNjcywgcmVxLT5wYWdlX2Rlc2NzLAotCSAgICAgICBzaXplb2Yoc3RydWN0IGZ1c2VfcGFnZV9kZXNjKSAqIHJlcS0+bWF4X3BhZ2VzKTsKLQlmdXNlX3JlcV9wYWdlc19mcmVlKHJlcSk7Ci0JcmVxLT5wYWdlcyA9IHBhZ2VzOwotCXJlcS0+cGFnZV9kZXNjcyA9IHBhZ2VfZGVzY3M7Ci0JcmVxLT5tYXhfcGFnZXMgPSBucGFnZXM7Ci0KLQlyZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBmdXNlX3JlcXVlc3RfZnJlZShzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKLXsKLQlmdXNlX3JlcV9wYWdlc19mcmVlKHJlcSk7CiAJa21lbV9jYWNoZV9mcmVlKGZ1c2VfcmVxX2NhY2hlcCwgcmVxKTsKIH0KIAotdm9pZCBfX2Z1c2VfZ2V0X3JlcXVlc3Qoc3RydWN0IGZ1c2VfcmVxICpyZXEpCitzdGF0aWMgdm9pZCBfX2Z1c2VfZ2V0X3JlcXVlc3Qoc3RydWN0IGZ1c2VfcmVxICpyZXEpCiB7CiAJcmVmY291bnRfaW5jKCZyZXEtPmNvdW50KTsKIH0KQEAgLTE3Nyw4ICsxMDAsOSBAQCBzdGF0aWMgdm9pZCBmdXNlX2Ryb3Bfd2FpdGluZyhzdHJ1Y3QgZnVzZV9jb25uICpmYykKIAl9CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZnVzZV9yZXEgKl9fZnVzZV9nZXRfcmVxKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1bnNpZ25lZCBucGFnZXMsCi0JCQkJICAgICAgIGJvb2wgZm9yX2JhY2tncm91bmQpCitzdGF0aWMgdm9pZCBmdXNlX3B1dF9yZXF1ZXN0KHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSk7CisKK3N0YXRpYyBzdHJ1Y3QgZnVzZV9yZXEgKmZ1c2VfZ2V0X3JlcShzdHJ1Y3QgZnVzZV9jb25uICpmYywgYm9vbCBmb3JfYmFja2dyb3VuZCkKIHsKIAlzdHJ1Y3QgZnVzZV9yZXEgKnJlcTsKIAlpbnQgZXJyOwpAQCAtMjAxLDcgKzEyNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZnVzZV9yZXEgKl9fZnVzZV9nZXRfcmVxKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1bnNpZ25lZCBucGFnZXMsCiAJaWYgKGZjLT5jb25uX2Vycm9yKQogCQlnb3RvIG91dDsKIAotCXJlcSA9IGZ1c2VfcmVxdWVzdF9hbGxvYyhucGFnZXMpOworCXJlcSA9IGZ1c2VfcmVxdWVzdF9hbGxvYyhHRlBfS0VSTkVMKTsKIAllcnIgPSAtRU5PTUVNOwogCWlmICghcmVxKSB7CiAJCWlmIChmb3JfYmFja2dyb3VuZCkKQEAgLTIyOSwxMDEgKzE1Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgZnVzZV9yZXEgKl9fZnVzZV9nZXRfcmVxKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1bnNpZ25lZCBucGFnZXMsCiAJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIH0KIAotc3RydWN0IGZ1c2VfcmVxICpmdXNlX2dldF9yZXEoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIG5wYWdlcykKLXsKLQlyZXR1cm4gX19mdXNlX2dldF9yZXEoZmMsIG5wYWdlcywgZmFsc2UpOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoZnVzZV9nZXRfcmVxKTsKLQotc3RydWN0IGZ1c2VfcmVxICpmdXNlX2dldF9yZXFfZm9yX2JhY2tncm91bmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsCi0JCQkJCSAgICAgdW5zaWduZWQgbnBhZ2VzKQotewotCXJldHVybiBfX2Z1c2VfZ2V0X3JlcShmYywgbnBhZ2VzLCB0cnVlKTsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKGZ1c2VfZ2V0X3JlcV9mb3JfYmFja2dyb3VuZCk7Ci0KLS8qCi0gKiBSZXR1cm4gcmVxdWVzdCBpbiBmdXNlX2ZpbGUtPnJlc2VydmVkX3JlcS4gIEhvd2V2ZXIgdGhhdCBtYXkKLSAqIGN1cnJlbnRseSBiZSBpbiB1c2UuICBJZiB0aGF0IGlzIHRoZSBjYXNlLCB3YWl0IGZvciBpdCB0byBiZWNvbWUKLSAqIGF2YWlsYWJsZS4KLSAqLwotc3RhdGljIHN0cnVjdCBmdXNlX3JlcSAqZ2V0X3Jlc2VydmVkX3JlcShzdHJ1Y3QgZnVzZV9jb25uICpmYywKLQkJCQkJIHN0cnVjdCBmaWxlICpmaWxlKQotewotCXN0cnVjdCBmdXNlX3JlcSAqcmVxID0gTlVMTDsKLQlzdHJ1Y3QgZnVzZV9pbm9kZSAqZmkgPSBnZXRfZnVzZV9pbm9kZShmaWxlX2lub2RlKGZpbGUpKTsKLQlzdHJ1Y3QgZnVzZV9maWxlICpmZiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQotCWRvIHsKLQkJd2FpdF9ldmVudChmYy0+cmVzZXJ2ZWRfcmVxX3dhaXRxLCBmZi0+cmVzZXJ2ZWRfcmVxKTsKLQkJc3Bpbl9sb2NrKCZmaS0+bG9jayk7Ci0JCWlmIChmZi0+cmVzZXJ2ZWRfcmVxKSB7Ci0JCQlyZXEgPSBmZi0+cmVzZXJ2ZWRfcmVxOwotCQkJZmYtPnJlc2VydmVkX3JlcSA9IE5VTEw7Ci0JCQlyZXEtPnN0b2xlbl9maWxlID0gZ2V0X2ZpbGUoZmlsZSk7Ci0JCX0KLQkJc3Bpbl91bmxvY2soJmZpLT5sb2NrKTsKLQl9IHdoaWxlICghcmVxKTsKLQotCXJldHVybiByZXE7Ci19Ci0KLS8qCi0gKiBQdXQgc3RvbGVuIHJlcXVlc3QgYmFjayBpbnRvIGZ1c2VfZmlsZS0+cmVzZXJ2ZWRfcmVxCi0gKi8KLXN0YXRpYyB2b2lkIHB1dF9yZXNlcnZlZF9yZXEoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQotewotCXN0cnVjdCBmaWxlICpmaWxlID0gcmVxLT5zdG9sZW5fZmlsZTsKLQlzdHJ1Y3QgZnVzZV9pbm9kZSAqZmkgPSBnZXRfZnVzZV9pbm9kZShmaWxlX2lub2RlKGZpbGUpKTsKLQlzdHJ1Y3QgZnVzZV9maWxlICpmZiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQotCVdBUk5fT04ocmVxLT5tYXhfcGFnZXMpOwotCXNwaW5fbG9jaygmZmktPmxvY2spOwotCW1lbXNldChyZXEsIDAsIHNpemVvZigqcmVxKSk7Ci0JZnVzZV9yZXF1ZXN0X2luaXQocmVxLCBOVUxMLCBOVUxMLCAwKTsKLQlCVUdfT04oZmYtPnJlc2VydmVkX3JlcSk7Ci0JZmYtPnJlc2VydmVkX3JlcSA9IHJlcTsKLQl3YWtlX3VwX2FsbCgmZmMtPnJlc2VydmVkX3JlcV93YWl0cSk7Ci0Jc3Bpbl91bmxvY2soJmZpLT5sb2NrKTsKLQlmcHV0KGZpbGUpOwotfQotCi0vKgotICogR2V0cyBhIHJlcXVlc3RzIGZvciBhIGZpbGUgb3BlcmF0aW9uLCBhbHdheXMgc3VjY2VlZHMKLSAqCi0gKiBUaGlzIGlzIHVzZWQgZm9yIHNlbmRpbmcgdGhlIEZMVVNIIHJlcXVlc3QsIHdoaWNoIG11c3QgZ2V0IHRvCi0gKiB1c2Vyc3BhY2UsIGR1ZSB0byBQT1NJWCBsb2NrcyB3aGljaCBtYXkgbmVlZCB0byBiZSB1bmxvY2tlZC4KLSAqCi0gKiBJZiBhbGxvY2F0aW9uIGZhaWxzIGR1ZSB0byBPT00sIHVzZSB0aGUgcmVzZXJ2ZWQgcmVxdWVzdCBpbgotICogZnVzZV9maWxlLgotICoKLSAqIFRoaXMgaXMgdmVyeSB1bmxpa2VseSB0byBkZWFkbG9jayBhY2NpZGVudGFsbHksIHNpbmNlIHRoZQotICogZmlsZXN5c3RlbSBzaG91bGQgbm90IGhhdmUgaXQncyBvd24gZmlsZSBvcGVuLiAgSWYgZGVhZGxvY2sgaXMKLSAqIGludGVudGlvbmFsLCBpdCBjYW4gc3RpbGwgYmUgYnJva2VuIGJ5ICJhYm9ydGluZyIgdGhlIGZpbGVzeXN0ZW0uCi0gKi8KLXN0cnVjdCBmdXNlX3JlcSAqZnVzZV9nZXRfcmVxX25vZmFpbF9ub3BhZ2VzKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLAotCQkJCQkgICAgIHN0cnVjdCBmaWxlICpmaWxlKQotewotCXN0cnVjdCBmdXNlX3JlcSAqcmVxOwotCi0JYXRvbWljX2luYygmZmMtPm51bV93YWl0aW5nKTsKLQl3YWl0X2V2ZW50KGZjLT5ibG9ja2VkX3dhaXRxLCBmYy0+aW5pdGlhbGl6ZWQpOwotCS8qIE1hdGNoZXMgc21wX3dtYigpIGluIGZ1c2Vfc2V0X2luaXRpYWxpemVkKCkgKi8KLQlzbXBfcm1iKCk7Ci0JcmVxID0gZnVzZV9yZXF1ZXN0X2FsbG9jKDApOwotCWlmICghcmVxKQotCQlyZXEgPSBnZXRfcmVzZXJ2ZWRfcmVxKGZjLCBmaWxlKTsKLQotCXJlcS0+aW4uaC51aWQgPSBmcm9tX2t1aWRfbXVuZ2VkKGZjLT51c2VyX25zLCBjdXJyZW50X2ZzdWlkKCkpOwotCXJlcS0+aW4uaC5naWQgPSBmcm9tX2tnaWRfbXVuZ2VkKGZjLT51c2VyX25zLCBjdXJyZW50X2ZzZ2lkKCkpOwotCXJlcS0+aW4uaC5waWQgPSBwaWRfbnJfbnModGFza19waWQoY3VycmVudCksIGZjLT5waWRfbnMpOwotCi0JX19zZXRfYml0KEZSX1dBSVRJTkcsICZyZXEtPmZsYWdzKTsKLQlfX2NsZWFyX2JpdChGUl9CQUNLR1JPVU5ELCAmcmVxLT5mbGFncyk7Ci0JcmV0dXJuIHJlcTsKLX0KLQotdm9pZCBmdXNlX3B1dF9yZXF1ZXN0KHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKK3N0YXRpYyB2b2lkIGZ1c2VfcHV0X3JlcXVlc3Qoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQogewogCWlmIChyZWZjb3VudF9kZWNfYW5kX3Rlc3QoJnJlcS0+Y291bnQpKSB7CiAJCWlmICh0ZXN0X2JpdChGUl9CQUNLR1JPVU5ELCAmcmVxLT5mbGFncykpIHsKQEAgLTM0MiwxNSArMTcyLDExIEBAIHZvaWQgZnVzZV9wdXRfcmVxdWVzdChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiAJCQlmdXNlX2Ryb3Bfd2FpdGluZyhmYyk7CiAJCX0KIAotCQlpZiAocmVxLT5zdG9sZW5fZmlsZSkKLQkJCXB1dF9yZXNlcnZlZF9yZXEoZmMsIHJlcSk7Ci0JCWVsc2UKLQkJCWZ1c2VfcmVxdWVzdF9mcmVlKHJlcSk7CisJCWZ1c2VfcmVxdWVzdF9mcmVlKHJlcSk7CiAJfQogfQotRVhQT1JUX1NZTUJPTF9HUEwoZnVzZV9wdXRfcmVxdWVzdCk7CiAKLXN0YXRpYyB1bnNpZ25lZCBsZW5fYXJncyh1bnNpZ25lZCBudW1hcmdzLCBzdHJ1Y3QgZnVzZV9hcmcgKmFyZ3MpCit1bnNpZ25lZCBpbnQgZnVzZV9sZW5fYXJncyh1bnNpZ25lZCBpbnQgbnVtYXJncywgc3RydWN0IGZ1c2VfYXJnICphcmdzKQogewogCXVuc2lnbmVkIG5ieXRlcyA9IDA7CiAJdW5zaWduZWQgaTsKQEAgLTM2MCwyNSArMTg2LDQ3IEBAIHN0YXRpYyB1bnNpZ25lZCBsZW5fYXJncyh1bnNpZ25lZCBudW1hcmdzLCBzdHJ1Y3QgZnVzZV9hcmcgKmFyZ3MpCiAKIAlyZXR1cm4gbmJ5dGVzOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoZnVzZV9sZW5fYXJncyk7CiAKLXN0YXRpYyB1NjQgZnVzZV9nZXRfdW5pcXVlKHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxKQordTY0IGZ1c2VfZ2V0X3VuaXF1ZShzdHJ1Y3QgZnVzZV9pcXVldWUgKmZpcSkKIHsKIAlmaXEtPnJlcWN0ciArPSBGVVNFX1JFUV9JRF9TVEVQOwogCXJldHVybiBmaXEtPnJlcWN0cjsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGZ1c2VfZ2V0X3VuaXF1ZSk7CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZnVzZV9yZXFfaGFzaCh1NjQgdW5pcXVlKQogewogCXJldHVybiBoYXNoX2xvbmcodW5pcXVlICYgfkZVU0VfSU5UX1JFUV9CSVQsIEZVU0VfUFFfSEFTSF9CSVRTKTsKIH0KIAotc3RhdGljIHZvaWQgcXVldWVfcmVxdWVzdChzdHJ1Y3QgZnVzZV9pcXVldWUgKmZpcSwgc3RydWN0IGZ1c2VfcmVxICpyZXEpCisvKioKKyAqIEEgbmV3IHJlcXVlc3QgaXMgYXZhaWxhYmxlLCB3YWtlIGZpcS0+d2FpdHEKKyAqLworc3RhdGljIHZvaWQgZnVzZV9kZXZfd2FrZV9hbmRfdW5sb2NrKHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxKQorX19yZWxlYXNlcyhmaXEtPmxvY2spCit7CisJd2FrZV91cCgmZmlxLT53YWl0cSk7CisJa2lsbF9mYXN5bmMoJmZpcS0+ZmFzeW5jLCBTSUdJTywgUE9MTF9JTik7CisJc3Bpbl91bmxvY2soJmZpcS0+bG9jayk7Cit9CisKK2NvbnN0IHN0cnVjdCBmdXNlX2lxdWV1ZV9vcHMgZnVzZV9kZXZfZmlxX29wcyA9IHsKKwkud2FrZV9mb3JnZXRfYW5kX3VubG9jawkJPSBmdXNlX2Rldl93YWtlX2FuZF91bmxvY2ssCisJLndha2VfaW50ZXJydXB0X2FuZF91bmxvY2sJPSBmdXNlX2Rldl93YWtlX2FuZF91bmxvY2ssCisJLndha2VfcGVuZGluZ19hbmRfdW5sb2NrCT0gZnVzZV9kZXZfd2FrZV9hbmRfdW5sb2NrLAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKGZ1c2VfZGV2X2ZpcV9vcHMpOworCitzdGF0aWMgdm9pZCBxdWV1ZV9yZXF1ZXN0X2FuZF91bmxvY2soc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEsCisJCQkJICAgICBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKK19fcmVsZWFzZXMoZmlxLT5sb2NrKQogewogCXJlcS0+aW4uaC5sZW4gPSBzaXplb2Yoc3RydWN0IGZ1c2VfaW5faGVhZGVyKSArCi0JCWxlbl9hcmdzKHJlcS0+aW4ubnVtYXJncywgKHN0cnVjdCBmdXNlX2FyZyAqKSByZXEtPmluLmFyZ3MpOworCQlmdXNlX2xlbl9hcmdzKHJlcS0+YXJncy0+aW5fbnVtYXJncywKKwkJCSAgICAgIChzdHJ1Y3QgZnVzZV9hcmcgKikgcmVxLT5hcmdzLT5pbl9hcmdzKTsKIAlsaXN0X2FkZF90YWlsKCZyZXEtPmxpc3QsICZmaXEtPnBlbmRpbmcpOwotCXdha2VfdXBfbG9ja2VkKCZmaXEtPndhaXRxKTsKLQlraWxsX2Zhc3luYygmZmlxLT5mYXN5bmMsIFNJR0lPLCBQT0xMX0lOKTsKKwlmaXEtPm9wcy0+d2FrZV9wZW5kaW5nX2FuZF91bmxvY2soZmlxKTsKIH0KIAogdm9pZCBmdXNlX3F1ZXVlX2ZvcmdldChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfZm9yZ2V0X2xpbmsgKmZvcmdldCwKQEAgLTM4OSwxNiArMjM3LDE1IEBAIHZvaWQgZnVzZV9xdWV1ZV9mb3JnZXQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2ZvcmdldF9saW5rICpmb3JnZXQsCiAJZm9yZ2V0LT5mb3JnZXRfb25lLm5vZGVpZCA9IG5vZGVpZDsKIAlmb3JnZXQtPmZvcmdldF9vbmUubmxvb2t1cCA9IG5sb29rdXA7CiAKLQlzcGluX2xvY2soJmZpcS0+d2FpdHEubG9jayk7CisJc3Bpbl9sb2NrKCZmaXEtPmxvY2spOwogCWlmIChmaXEtPmNvbm5lY3RlZCkgewogCQlmaXEtPmZvcmdldF9saXN0X3RhaWwtPm5leHQgPSBmb3JnZXQ7CiAJCWZpcS0+Zm9yZ2V0X2xpc3RfdGFpbCA9IGZvcmdldDsKLQkJd2FrZV91cF9sb2NrZWQoJmZpcS0+d2FpdHEpOwotCQlraWxsX2Zhc3luYygmZmlxLT5mYXN5bmMsIFNJR0lPLCBQT0xMX0lOKTsKKwkJZmlxLT5vcHMtPndha2VfZm9yZ2V0X2FuZF91bmxvY2soZmlxKTsKIAl9IGVsc2UgewogCQlrZnJlZShmb3JnZXQpOworCQlzcGluX3VubG9jaygmZmlxLT5sb2NrKTsKIAl9Ci0Jc3Bpbl91bmxvY2soJmZpcS0+d2FpdHEubG9jayk7CiB9CiAKIHN0YXRpYyB2b2lkIGZsdXNoX2JnX3F1ZXVlKHN0cnVjdCBmdXNlX2Nvbm4gKmZjKQpAQCAtNDEyLDEwICsyNTksOSBAQCBzdGF0aWMgdm9pZCBmbHVzaF9iZ19xdWV1ZShzdHJ1Y3QgZnVzZV9jb25uICpmYykKIAkJcmVxID0gbGlzdF9maXJzdF9lbnRyeSgmZmMtPmJnX3F1ZXVlLCBzdHJ1Y3QgZnVzZV9yZXEsIGxpc3QpOwogCQlsaXN0X2RlbCgmcmVxLT5saXN0KTsKIAkJZmMtPmFjdGl2ZV9iYWNrZ3JvdW5kKys7Ci0JCXNwaW5fbG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwkJc3Bpbl9sb2NrKCZmaXEtPmxvY2spOwogCQlyZXEtPmluLmgudW5pcXVlID0gZnVzZV9nZXRfdW5pcXVlKGZpcSk7Ci0JCXF1ZXVlX3JlcXVlc3QoZmlxLCByZXEpOwotCQlzcGluX3VubG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwkJcXVldWVfcmVxdWVzdF9hbmRfdW5sb2NrKGZpcSwgcmVxKTsKIAl9CiB9CiAKQEAgLTQyNyw5ICsyNzMsMTAgQEAgc3RhdGljIHZvaWQgZmx1c2hfYmdfcXVldWUoc3RydWN0IGZ1c2VfY29ubiAqZmMpCiAgKiB0aGUgJ2VuZCcgY2FsbGJhY2sgaXMgY2FsbGVkIGlmIGdpdmVuLCBlbHNlIHRoZSByZWZlcmVuY2UgdG8gdGhlCiAgKiByZXF1ZXN0IGlzIHJlbGVhc2VkCiAgKi8KLXN0YXRpYyB2b2lkIHJlcXVlc3RfZW5kKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKK3ZvaWQgZnVzZV9yZXF1ZXN0X2VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiB7CiAJc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEgPSAmZmMtPmlxOworCWJvb2wgYXN5bmMgPSByZXEtPmFyZ3MtPmVuZDsKIAogCWlmICh0ZXN0X2FuZF9zZXRfYml0KEZSX0ZJTklTSEVELCAmcmVxLT5mbGFncykpCiAJCWdvdG8gcHV0X3JlcXVlc3Q7CkBAIC00MzksOSArMjg2LDkgQEAgc3RhdGljIHZvaWQgcmVxdWVzdF9lbmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQogCSAqIHNtcF9tYigpIGZyb20gcXVldWVfaW50ZXJydXB0KCkuCiAJICovCiAJaWYgKCFsaXN0X2VtcHR5KCZyZXEtPmludHJfZW50cnkpKSB7Ci0JCXNwaW5fbG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwkJc3Bpbl9sb2NrKCZmaXEtPmxvY2spOwogCQlsaXN0X2RlbF9pbml0KCZyZXEtPmludHJfZW50cnkpOwotCQlzcGluX3VubG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwkJc3Bpbl91bmxvY2soJmZpcS0+bG9jayk7CiAJfQogCVdBUk5fT04odGVzdF9iaXQoRlJfUEVORElORywgJnJlcS0+ZmxhZ3MpKTsKIAlXQVJOX09OKHRlc3RfYml0KEZSX1NFTlQsICZyZXEtPmZsYWdzKSk7CkBAIC00NzUsMTggKzMyMiwxOSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0X2VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiAJCXdha2VfdXAoJnJlcS0+d2FpdHEpOwogCX0KIAotCWlmIChyZXEtPmVuZCkKLQkJcmVxLT5lbmQoZmMsIHJlcSk7CisJaWYgKGFzeW5jKQorCQlyZXEtPmFyZ3MtPmVuZChmYywgcmVxLT5hcmdzLCByZXEtPm91dC5oLmVycm9yKTsKIHB1dF9yZXF1ZXN0OgogCWZ1c2VfcHV0X3JlcXVlc3QoZmMsIHJlcSk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChmdXNlX3JlcXVlc3RfZW5kKTsKIAogc3RhdGljIGludCBxdWV1ZV9pbnRlcnJ1cHQoc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQogewotCXNwaW5fbG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwlzcGluX2xvY2soJmZpcS0+bG9jayk7CiAJLyogQ2hlY2sgZm9yIHdlJ3ZlIHNlbnQgcmVxdWVzdCB0byBpbnRlcnJ1cHQgdGhpcyByZXEgKi8KIAlpZiAodW5saWtlbHkoIXRlc3RfYml0KEZSX0lOVEVSUlVQVEVELCAmcmVxLT5mbGFncykpKSB7Ci0JCXNwaW5fdW5sb2NrKCZmaXEtPndhaXRxLmxvY2spOworCQlzcGluX3VubG9jaygmZmlxLT5sb2NrKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC00OTksMTMgKzM0NywxMyBAQCBzdGF0aWMgaW50IHF1ZXVlX2ludGVycnVwdChzdHJ1Y3QgZnVzZV9pcXVldWUgKmZpcSwgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiAJCXNtcF9tYigpOwogCQlpZiAodGVzdF9iaXQoRlJfRklOSVNIRUQsICZyZXEtPmZsYWdzKSkgewogCQkJbGlzdF9kZWxfaW5pdCgmcmVxLT5pbnRyX2VudHJ5KTsKLQkJCXNwaW5fdW5sb2NrKCZmaXEtPndhaXRxLmxvY2spOworCQkJc3Bpbl91bmxvY2soJmZpcS0+bG9jayk7CiAJCQlyZXR1cm4gMDsKIAkJfQotCQl3YWtlX3VwX2xvY2tlZCgmZmlxLT53YWl0cSk7Ci0JCWtpbGxfZmFzeW5jKCZmaXEtPmZhc3luYywgU0lHSU8sIFBPTExfSU4pOworCQlmaXEtPm9wcy0+d2FrZV9pbnRlcnJ1cHRfYW5kX3VubG9jayhmaXEpOworCX0gZWxzZSB7CisJCXNwaW5fdW5sb2NrKCZmaXEtPmxvY2spOwogCX0KLQlzcGluX3VubG9jaygmZmlxLT53YWl0cS5sb2NrKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTM1LDE2ICszODMsMTYgQEAgc3RhdGljIHZvaWQgcmVxdWVzdF93YWl0X2Fuc3dlcihzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiAJCWlmICghZXJyKQogCQkJcmV0dXJuOwogCi0JCXNwaW5fbG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwkJc3Bpbl9sb2NrKCZmaXEtPmxvY2spOwogCQkvKiBSZXF1ZXN0IGlzIG5vdCB5ZXQgaW4gdXNlcnNwYWNlLCBiYWlsIG91dCAqLwogCQlpZiAodGVzdF9iaXQoRlJfUEVORElORywgJnJlcS0+ZmxhZ3MpKSB7CiAJCQlsaXN0X2RlbCgmcmVxLT5saXN0KTsKLQkJCXNwaW5fdW5sb2NrKCZmaXEtPndhaXRxLmxvY2spOworCQkJc3Bpbl91bmxvY2soJmZpcS0+bG9jayk7CiAJCQlfX2Z1c2VfcHV0X3JlcXVlc3QocmVxKTsKIAkJCXJlcS0+b3V0LmguZXJyb3IgPSAtRUlOVFI7CiAJCQlyZXR1cm47CiAJCX0KLQkJc3Bpbl91bmxvY2soJmZpcS0+d2FpdHEubG9jayk7CisJCXNwaW5fdW5sb2NrKCZmaXEtPmxvY2spOwogCX0KIAogCS8qCkBAIC01NTksMTAxICs0MDcsMTEwIEBAIHN0YXRpYyB2b2lkIF9fZnVzZV9yZXF1ZXN0X3NlbmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQogCXN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxID0gJmZjLT5pcTsKIAogCUJVR19PTih0ZXN0X2JpdChGUl9CQUNLR1JPVU5ELCAmcmVxLT5mbGFncykpOwotCXNwaW5fbG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwlzcGluX2xvY2soJmZpcS0+bG9jayk7CiAJaWYgKCFmaXEtPmNvbm5lY3RlZCkgewotCQlzcGluX3VubG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwkJc3Bpbl91bmxvY2soJmZpcS0+bG9jayk7CiAJCXJlcS0+b3V0LmguZXJyb3IgPSAtRU5PVENPTk47CiAJfSBlbHNlIHsKIAkJcmVxLT5pbi5oLnVuaXF1ZSA9IGZ1c2VfZ2V0X3VuaXF1ZShmaXEpOwotCQlxdWV1ZV9yZXF1ZXN0KGZpcSwgcmVxKTsKIAkJLyogYWNxdWlyZSBleHRyYSByZWZlcmVuY2UsIHNpbmNlIHJlcXVlc3QgaXMgc3RpbGwgbmVlZGVkCi0JCSAgIGFmdGVyIHJlcXVlc3RfZW5kKCkgKi8KKwkJICAgYWZ0ZXIgZnVzZV9yZXF1ZXN0X2VuZCgpICovCiAJCV9fZnVzZV9nZXRfcmVxdWVzdChyZXEpOwotCQlzcGluX3VubG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwkJcXVldWVfcmVxdWVzdF9hbmRfdW5sb2NrKGZpcSwgcmVxKTsKIAogCQlyZXF1ZXN0X3dhaXRfYW5zd2VyKGZjLCByZXEpOwotCQkvKiBQYWlycyB3aXRoIHNtcF93bWIoKSBpbiByZXF1ZXN0X2VuZCgpICovCisJCS8qIFBhaXJzIHdpdGggc21wX3dtYigpIGluIGZ1c2VfcmVxdWVzdF9lbmQoKSAqLwogCQlzbXBfcm1iKCk7CiAJfQogfQogCi12b2lkIGZ1c2VfcmVxdWVzdF9zZW5kKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKLXsKLQlfX3NldF9iaXQoRlJfSVNSRVBMWSwgJnJlcS0+ZmxhZ3MpOwotCWlmICghdGVzdF9iaXQoRlJfV0FJVElORywgJnJlcS0+ZmxhZ3MpKSB7Ci0JCV9fc2V0X2JpdChGUl9XQUlUSU5HLCAmcmVxLT5mbGFncyk7Ci0JCWF0b21pY19pbmMoJmZjLT5udW1fd2FpdGluZyk7Ci0JfQotCV9fZnVzZV9yZXF1ZXN0X3NlbmQoZmMsIHJlcSk7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChmdXNlX3JlcXVlc3Rfc2VuZCk7Ci0KIHN0YXRpYyB2b2lkIGZ1c2VfYWRqdXN0X2NvbXBhdChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfYXJncyAqYXJncykKIHsKLQlpZiAoZmMtPm1pbm9yIDwgNCAmJiBhcmdzLT5pbi5oLm9wY29kZSA9PSBGVVNFX1NUQVRGUykKLQkJYXJncy0+b3V0LmFyZ3NbMF0uc2l6ZSA9IEZVU0VfQ09NUEFUX1NUQVRGU19TSVpFOworCWlmIChmYy0+bWlub3IgPCA0ICYmIGFyZ3MtPm9wY29kZSA9PSBGVVNFX1NUQVRGUykKKwkJYXJncy0+b3V0X2FyZ3NbMF0uc2l6ZSA9IEZVU0VfQ09NUEFUX1NUQVRGU19TSVpFOwogCiAJaWYgKGZjLT5taW5vciA8IDkpIHsKLQkJc3dpdGNoIChhcmdzLT5pbi5oLm9wY29kZSkgeworCQlzd2l0Y2ggKGFyZ3MtPm9wY29kZSkgewogCQljYXNlIEZVU0VfTE9PS1VQOgogCQljYXNlIEZVU0VfQ1JFQVRFOgogCQljYXNlIEZVU0VfTUtOT0Q6CiAJCWNhc2UgRlVTRV9NS0RJUjoKIAkJY2FzZSBGVVNFX1NZTUxJTks6CiAJCWNhc2UgRlVTRV9MSU5LOgotCQkJYXJncy0+b3V0LmFyZ3NbMF0uc2l6ZSA9IEZVU0VfQ09NUEFUX0VOVFJZX09VVF9TSVpFOworCQkJYXJncy0+b3V0X2FyZ3NbMF0uc2l6ZSA9IEZVU0VfQ09NUEFUX0VOVFJZX09VVF9TSVpFOwogCQkJYnJlYWs7CiAJCWNhc2UgRlVTRV9HRVRBVFRSOgogCQljYXNlIEZVU0VfU0VUQVRUUjoKLQkJCWFyZ3MtPm91dC5hcmdzWzBdLnNpemUgPSBGVVNFX0NPTVBBVF9BVFRSX09VVF9TSVpFOworCQkJYXJncy0+b3V0X2FyZ3NbMF0uc2l6ZSA9IEZVU0VfQ09NUEFUX0FUVFJfT1VUX1NJWkU7CiAJCQlicmVhazsKIAkJfQogCX0KIAlpZiAoZmMtPm1pbm9yIDwgMTIpIHsKLQkJc3dpdGNoIChhcmdzLT5pbi5oLm9wY29kZSkgeworCQlzd2l0Y2ggKGFyZ3MtPm9wY29kZSkgewogCQljYXNlIEZVU0VfQ1JFQVRFOgotCQkJYXJncy0+aW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKHN0cnVjdCBmdXNlX29wZW5faW4pOworCQkJYXJncy0+aW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKHN0cnVjdCBmdXNlX29wZW5faW4pOwogCQkJYnJlYWs7CiAJCWNhc2UgRlVTRV9NS05PRDoKLQkJCWFyZ3MtPmluLmFyZ3NbMF0uc2l6ZSA9IEZVU0VfQ09NUEFUX01LTk9EX0lOX1NJWkU7CisJCQlhcmdzLT5pbl9hcmdzWzBdLnNpemUgPSBGVVNFX0NPTVBBVF9NS05PRF9JTl9TSVpFOwogCQkJYnJlYWs7CiAJCX0KIAl9CiB9CiAKK3N0YXRpYyB2b2lkIGZ1c2VfZm9yY2VfY3JlZHMoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQoreworCXJlcS0+aW4uaC51aWQgPSBmcm9tX2t1aWRfbXVuZ2VkKGZjLT51c2VyX25zLCBjdXJyZW50X2ZzdWlkKCkpOworCXJlcS0+aW4uaC5naWQgPSBmcm9tX2tnaWRfbXVuZ2VkKGZjLT51c2VyX25zLCBjdXJyZW50X2ZzZ2lkKCkpOworCXJlcS0+aW4uaC5waWQgPSBwaWRfbnJfbnModGFza19waWQoY3VycmVudCksIGZjLT5waWRfbnMpOworfQorCitzdGF0aWMgdm9pZCBmdXNlX2FyZ3NfdG9fcmVxKHN0cnVjdCBmdXNlX3JlcSAqcmVxLCBzdHJ1Y3QgZnVzZV9hcmdzICphcmdzKQoreworCXJlcS0+aW4uaC5vcGNvZGUgPSBhcmdzLT5vcGNvZGU7CisJcmVxLT5pbi5oLm5vZGVpZCA9IGFyZ3MtPm5vZGVpZDsKKwlyZXEtPmFyZ3MgPSBhcmdzOworfQorCiBzc2l6ZV90IGZ1c2Vfc2ltcGxlX3JlcXVlc3Qoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MpCiB7CiAJc3RydWN0IGZ1c2VfcmVxICpyZXE7CiAJc3NpemVfdCByZXQ7CiAKLQlyZXEgPSBmdXNlX2dldF9yZXEoZmMsIDApOwotCWlmIChJU19FUlIocmVxKSkKLQkJcmV0dXJuIFBUUl9FUlIocmVxKTsKKwlpZiAoYXJncy0+Zm9yY2UpIHsKKwkJYXRvbWljX2luYygmZmMtPm51bV93YWl0aW5nKTsKKwkJcmVxID0gZnVzZV9yZXF1ZXN0X2FsbG9jKEdGUF9LRVJORUwgfCBfX0dGUF9OT0ZBSUwpOworCisJCWlmICghYXJncy0+bm9jcmVkcykKKwkJCWZ1c2VfZm9yY2VfY3JlZHMoZmMsIHJlcSk7CisKKwkJX19zZXRfYml0KEZSX1dBSVRJTkcsICZyZXEtPmZsYWdzKTsKKwkJX19zZXRfYml0KEZSX0ZPUkNFLCAmcmVxLT5mbGFncyk7CisJfSBlbHNlIHsKKwkJV0FSTl9PTihhcmdzLT5ub2NyZWRzKTsKKwkJcmVxID0gZnVzZV9nZXRfcmVxKGZjLCBmYWxzZSk7CisJCWlmIChJU19FUlIocmVxKSkKKwkJCXJldHVybiBQVFJfRVJSKHJlcSk7CisJfQogCiAJLyogTmVlZHMgdG8gYmUgZG9uZSBhZnRlciBmdXNlX2dldF9yZXEoKSBzbyB0aGF0IGZjLT5taW5vciBpcyB2YWxpZCAqLwogCWZ1c2VfYWRqdXN0X2NvbXBhdChmYywgYXJncyk7CisJZnVzZV9hcmdzX3RvX3JlcShyZXEsIGFyZ3MpOwogCi0JcmVxLT5pbi5oLm9wY29kZSA9IGFyZ3MtPmluLmgub3Bjb2RlOwotCXJlcS0+aW4uaC5ub2RlaWQgPSBhcmdzLT5pbi5oLm5vZGVpZDsKLQlyZXEtPmluLm51bWFyZ3MgPSBhcmdzLT5pbi5udW1hcmdzOwotCW1lbWNweShyZXEtPmluLmFyZ3MsIGFyZ3MtPmluLmFyZ3MsCi0JICAgICAgIGFyZ3MtPmluLm51bWFyZ3MgKiBzaXplb2Yoc3RydWN0IGZ1c2VfaW5fYXJnKSk7Ci0JcmVxLT5vdXQuYXJndmFyID0gYXJncy0+b3V0LmFyZ3ZhcjsKLQlyZXEtPm91dC5udW1hcmdzID0gYXJncy0+b3V0Lm51bWFyZ3M7Ci0JbWVtY3B5KHJlcS0+b3V0LmFyZ3MsIGFyZ3MtPm91dC5hcmdzLAotCSAgICAgICBhcmdzLT5vdXQubnVtYXJncyAqIHNpemVvZihzdHJ1Y3QgZnVzZV9hcmcpKTsKLQlmdXNlX3JlcXVlc3Rfc2VuZChmYywgcmVxKTsKKwlpZiAoIWFyZ3MtPm5vcmVwbHkpCisJCV9fc2V0X2JpdChGUl9JU1JFUExZLCAmcmVxLT5mbGFncyk7CisJX19mdXNlX3JlcXVlc3Rfc2VuZChmYywgcmVxKTsKIAlyZXQgPSByZXEtPm91dC5oLmVycm9yOwotCWlmICghcmV0ICYmIGFyZ3MtPm91dC5hcmd2YXIpIHsKLQkJQlVHX09OKGFyZ3MtPm91dC5udW1hcmdzICE9IDEpOwotCQlyZXQgPSByZXEtPm91dC5hcmdzWzBdLnNpemU7CisJaWYgKCFyZXQgJiYgYXJncy0+b3V0X2FyZ3ZhcikgeworCQlCVUdfT04oYXJncy0+b3V0X251bWFyZ3MgPT0gMCk7CisJCXJldCA9IGFyZ3MtPm91dF9hcmdzW2FyZ3MtPm91dF9udW1hcmdzIC0gMV0uc2l6ZTsKIAl9CiAJZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKIAogCXJldHVybiByZXQ7CiB9CiAKLWJvb2wgZnVzZV9yZXF1ZXN0X3F1ZXVlX2JhY2tncm91bmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQorc3RhdGljIGJvb2wgZnVzZV9yZXF1ZXN0X3F1ZXVlX2JhY2tncm91bmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsCisJCQkJCSAgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiB7CiAJYm9vbCBxdWV1ZWQgPSBmYWxzZTsKIApAQCAtNjgxLDU2ICs1MzgsNjMgQEAgYm9vbCBmdXNlX3JlcXVlc3RfcXVldWVfYmFja2dyb3VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiAJcmV0dXJuIHF1ZXVlZDsKIH0KIAotdm9pZCBmdXNlX3JlcXVlc3Rfc2VuZF9iYWNrZ3JvdW5kKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKK2ludCBmdXNlX3NpbXBsZV9iYWNrZ3JvdW5kKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9hcmdzICphcmdzLAorCQkJICAgIGdmcF90IGdmcF9mbGFncykKIHsKLQlXQVJOX09OKCFyZXEtPmVuZCk7Ci0JaWYgKCFmdXNlX3JlcXVlc3RfcXVldWVfYmFja2dyb3VuZChmYywgcmVxKSkgewotCQlyZXEtPm91dC5oLmVycm9yID0gLUVOT1RDT05OOwotCQlyZXEtPmVuZChmYywgcmVxKTsKLQkJZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKLQl9Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChmdXNlX3JlcXVlc3Rfc2VuZF9iYWNrZ3JvdW5kKTsKKwlzdHJ1Y3QgZnVzZV9yZXEgKnJlcTsKIAotc3RhdGljIGludCBmdXNlX3JlcXVlc3Rfc2VuZF9ub3RpZnlfcmVwbHkoc3RydWN0IGZ1c2VfY29ubiAqZmMsCi0JCQkJCSAgc3RydWN0IGZ1c2VfcmVxICpyZXEsIHU2NCB1bmlxdWUpCisJaWYgKGFyZ3MtPmZvcmNlKSB7CisJCVdBUk5fT04oIWFyZ3MtPm5vY3JlZHMpOworCQlyZXEgPSBmdXNlX3JlcXVlc3RfYWxsb2MoZ2ZwX2ZsYWdzKTsKKwkJaWYgKCFyZXEpCisJCQlyZXR1cm4gLUVOT01FTTsKKwkJX19zZXRfYml0KEZSX0JBQ0tHUk9VTkQsICZyZXEtPmZsYWdzKTsKKwl9IGVsc2UgeworCQlXQVJOX09OKGFyZ3MtPm5vY3JlZHMpOworCQlyZXEgPSBmdXNlX2dldF9yZXEoZmMsIHRydWUpOworCQlpZiAoSVNfRVJSKHJlcSkpCisJCQlyZXR1cm4gUFRSX0VSUihyZXEpOworCX0KKworCWZ1c2VfYXJnc190b19yZXEocmVxLCBhcmdzKTsKKworCWlmICghZnVzZV9yZXF1ZXN0X3F1ZXVlX2JhY2tncm91bmQoZmMsIHJlcSkpIHsKKwkJZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKKwkJcmV0dXJuIC1FTk9UQ09OTjsKKwl9CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGZ1c2Vfc2ltcGxlX2JhY2tncm91bmQpOworCitzdGF0aWMgaW50IGZ1c2Vfc2ltcGxlX25vdGlmeV9yZXBseShzdHJ1Y3QgZnVzZV9jb25uICpmYywKKwkJCQkgICAgc3RydWN0IGZ1c2VfYXJncyAqYXJncywgdTY0IHVuaXF1ZSkKIHsKLQlpbnQgZXJyID0gLUVOT0RFVjsKKwlzdHJ1Y3QgZnVzZV9yZXEgKnJlcTsKIAlzdHJ1Y3QgZnVzZV9pcXVldWUgKmZpcSA9ICZmYy0+aXE7CisJaW50IGVyciA9IDA7CisKKwlyZXEgPSBmdXNlX2dldF9yZXEoZmMsIGZhbHNlKTsKKwlpZiAoSVNfRVJSKHJlcSkpCisJCXJldHVybiBQVFJfRVJSKHJlcSk7CiAKIAlfX2NsZWFyX2JpdChGUl9JU1JFUExZLCAmcmVxLT5mbGFncyk7CiAJcmVxLT5pbi5oLnVuaXF1ZSA9IHVuaXF1ZTsKLQlzcGluX2xvY2soJmZpcS0+d2FpdHEubG9jayk7CisKKwlmdXNlX2FyZ3NfdG9fcmVxKHJlcSwgYXJncyk7CisKKwlzcGluX2xvY2soJmZpcS0+bG9jayk7CiAJaWYgKGZpcS0+Y29ubmVjdGVkKSB7Ci0JCXF1ZXVlX3JlcXVlc3QoZmlxLCByZXEpOwotCQllcnIgPSAwOworCQlxdWV1ZV9yZXF1ZXN0X2FuZF91bmxvY2soZmlxLCByZXEpOworCX0gZWxzZSB7CisJCWVyciA9IC1FTk9ERVY7CisJCXNwaW5fdW5sb2NrKCZmaXEtPmxvY2spOworCQlmdXNlX3B1dF9yZXF1ZXN0KGZjLCByZXEpOwogCX0KLQlzcGluX3VubG9jaygmZmlxLT53YWl0cS5sb2NrKTsKIAogCXJldHVybiBlcnI7CiB9CiAKLXZvaWQgZnVzZV9mb3JjZV9mb3JnZXQoc3RydWN0IGZpbGUgKmZpbGUsIHU2NCBub2RlaWQpCi17Ci0Jc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlsZSk7Ci0Jc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uKGlub2RlKTsKLQlzdHJ1Y3QgZnVzZV9yZXEgKnJlcTsKLQlzdHJ1Y3QgZnVzZV9mb3JnZXRfaW4gaW5hcmc7Ci0KLQltZW1zZXQoJmluYXJnLCAwLCBzaXplb2YoaW5hcmcpKTsKLQlpbmFyZy5ubG9va3VwID0gMTsKLQlyZXEgPSBmdXNlX2dldF9yZXFfbm9mYWlsX25vcGFnZXMoZmMsIGZpbGUpOwotCXJlcS0+aW4uaC5vcGNvZGUgPSBGVVNFX0ZPUkdFVDsKLQlyZXEtPmluLmgubm9kZWlkID0gbm9kZWlkOwotCXJlcS0+aW4ubnVtYXJncyA9IDE7Ci0JcmVxLT5pbi5hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOwotCXJlcS0+aW4uYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKLQlfX2NsZWFyX2JpdChGUl9JU1JFUExZLCAmcmVxLT5mbGFncyk7Ci0JX19mdXNlX3JlcXVlc3Rfc2VuZChmYywgcmVxKTsKLQkvKiBpZ25vcmUgZXJyb3JzICovCi0JZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKLX0KLQogLyoKICAqIExvY2sgdGhlIHJlcXVlc3QuICBVcCB0byB0aGUgbmV4dCB1bmxvY2tfcmVxdWVzdCgpIHRoZXJlIG11c3RuJ3QgYmUKICAqIGFueXRoaW5nIHRoYXQgY291bGQgY2F1c2UgYSBwYWdlLWZhdWx0LiAgSWYgdGhlIHJlcXVlc3Qgd2FzIGFscmVhZHkKQEAgLTEwODQsMTQgKzk0OCwxNSBAQCBzdGF0aWMgaW50IGZ1c2VfY29weV9wYWdlcyhzdHJ1Y3QgZnVzZV9jb3B5X3N0YXRlICpjcywgdW5zaWduZWQgbmJ5dGVzLAogewogCXVuc2lnbmVkIGk7CiAJc3RydWN0IGZ1c2VfcmVxICpyZXEgPSBjcy0+cmVxOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwID0gY29udGFpbmVyX29mKHJlcS0+YXJncywgdHlwZW9mKCphcCksIGFyZ3MpOwogCi0JZm9yIChpID0gMDsgaSA8IHJlcS0+bnVtX3BhZ2VzICYmIChuYnl0ZXMgfHwgemVyb2luZyk7IGkrKykgeworCisJZm9yIChpID0gMDsgaSA8IGFwLT5udW1fcGFnZXMgJiYgKG5ieXRlcyB8fCB6ZXJvaW5nKTsgaSsrKSB7CiAJCWludCBlcnI7Ci0JCXVuc2lnbmVkIG9mZnNldCA9IHJlcS0+cGFnZV9kZXNjc1tpXS5vZmZzZXQ7Ci0JCXVuc2lnbmVkIGNvdW50ID0gbWluKG5ieXRlcywgcmVxLT5wYWdlX2Rlc2NzW2ldLmxlbmd0aCk7CisJCXVuc2lnbmVkIGludCBvZmZzZXQgPSBhcC0+ZGVzY3NbaV0ub2Zmc2V0OworCQl1bnNpZ25lZCBpbnQgY291bnQgPSBtaW4obmJ5dGVzLCBhcC0+ZGVzY3NbaV0ubGVuZ3RoKTsKIAotCQllcnIgPSBmdXNlX2NvcHlfcGFnZShjcywgJnJlcS0+cGFnZXNbaV0sIG9mZnNldCwgY291bnQsCi0JCQkJICAgICB6ZXJvaW5nKTsKKwkJZXJyID0gZnVzZV9jb3B5X3BhZ2UoY3MsICZhcC0+cGFnZXNbaV0sIG9mZnNldCwgY291bnQsIHplcm9pbmcpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIApAQCAtMTE0OSwxMiArMTAxNCwxMiBAQCBzdGF0aWMgaW50IHJlcXVlc3RfcGVuZGluZyhzdHJ1Y3QgZnVzZV9pcXVldWUgKmZpcSkKICAqIFVubGlrZSBvdGhlciByZXF1ZXN0cyB0aGlzIGlzIGFzc2VtYmxlZCBvbiBkZW1hbmQsIHdpdGhvdXQgYSBuZWVkCiAgKiB0byBhbGxvY2F0ZSBhIHNlcGFyYXRlIGZ1c2VfcmVxIHN0cnVjdHVyZS4KICAqCi0gKiBDYWxsZWQgd2l0aCBmaXEtPndhaXRxLmxvY2sgaGVsZCwgcmVsZWFzZXMgaXQKKyAqIENhbGxlZCB3aXRoIGZpcS0+bG9jayBoZWxkLCByZWxlYXNlcyBpdAogICovCiBzdGF0aWMgaW50IGZ1c2VfcmVhZF9pbnRlcnJ1cHQoc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEsCiAJCQkgICAgICAgc3RydWN0IGZ1c2VfY29weV9zdGF0ZSAqY3MsCiAJCQkgICAgICAgc2l6ZV90IG5ieXRlcywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCi1fX3JlbGVhc2VzKGZpcS0+d2FpdHEubG9jaykKK19fcmVsZWFzZXMoZmlxLT5sb2NrKQogewogCXN0cnVjdCBmdXNlX2luX2hlYWRlciBpaDsKIAlzdHJ1Y3QgZnVzZV9pbnRlcnJ1cHRfaW4gYXJnOwpAQCAtMTE2OSw3ICsxMDM0LDcgQEAgX19yZWxlYXNlcyhmaXEtPndhaXRxLmxvY2spCiAJaWgudW5pcXVlID0gKHJlcS0+aW4uaC51bmlxdWUgfCBGVVNFX0lOVF9SRVFfQklUKTsKIAlhcmcudW5pcXVlID0gcmVxLT5pbi5oLnVuaXF1ZTsKIAotCXNwaW5fdW5sb2NrKCZmaXEtPndhaXRxLmxvY2spOworCXNwaW5fdW5sb2NrKCZmaXEtPmxvY2spOwogCWlmIChuYnl0ZXMgPCByZXFzaXplKQogCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtMTE4MSw5ICsxMDQ2LDkgQEAgX19yZWxlYXNlcyhmaXEtPndhaXRxLmxvY2spCiAJcmV0dXJuIGVyciA/IGVyciA6IHJlcXNpemU7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZnVzZV9mb3JnZXRfbGluayAqZGVxdWV1ZV9mb3JnZXQoc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEsCi0JCQkJCSAgICAgICB1bnNpZ25lZCBtYXgsCi0JCQkJCSAgICAgICB1bnNpZ25lZCAqY291bnRwKQorc3RydWN0IGZ1c2VfZm9yZ2V0X2xpbmsgKmZ1c2VfZGVxdWV1ZV9mb3JnZXQoc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEsCisJCQkJCSAgICAgdW5zaWduZWQgaW50IG1heCwKKwkJCQkJICAgICB1bnNpZ25lZCBpbnQgKmNvdW50cCkKIHsKIAlzdHJ1Y3QgZnVzZV9mb3JnZXRfbGluayAqaGVhZCA9IGZpcS0+Zm9yZ2V0X2xpc3RfaGVhZC5uZXh0OwogCXN0cnVjdCBmdXNlX2ZvcmdldF9saW5rICoqbmV3aGVhZCA9ICZoZWFkOwpAQCAtMTIwMiwxNCArMTA2NywxNSBAQCBzdGF0aWMgc3RydWN0IGZ1c2VfZm9yZ2V0X2xpbmsgKmRlcXVldWVfZm9yZ2V0KHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxLAogCiAJcmV0dXJuIGhlYWQ7CiB9CitFWFBPUlRfU1lNQk9MKGZ1c2VfZGVxdWV1ZV9mb3JnZXQpOwogCiBzdGF0aWMgaW50IGZ1c2VfcmVhZF9zaW5nbGVfZm9yZ2V0KHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxLAogCQkJCSAgIHN0cnVjdCBmdXNlX2NvcHlfc3RhdGUgKmNzLAogCQkJCSAgIHNpemVfdCBuYnl0ZXMpCi1fX3JlbGVhc2VzKGZpcS0+d2FpdHEubG9jaykKK19fcmVsZWFzZXMoZmlxLT5sb2NrKQogewogCWludCBlcnI7Ci0Jc3RydWN0IGZ1c2VfZm9yZ2V0X2xpbmsgKmZvcmdldCA9IGRlcXVldWVfZm9yZ2V0KGZpcSwgMSwgTlVMTCk7CisJc3RydWN0IGZ1c2VfZm9yZ2V0X2xpbmsgKmZvcmdldCA9IGZ1c2VfZGVxdWV1ZV9mb3JnZXQoZmlxLCAxLCBOVUxMKTsKIAlzdHJ1Y3QgZnVzZV9mb3JnZXRfaW4gYXJnID0gewogCQkubmxvb2t1cCA9IGZvcmdldC0+Zm9yZ2V0X29uZS5ubG9va3VwLAogCX07CkBAIC0xMjIwLDcgKzEwODYsNyBAQCBfX3JlbGVhc2VzKGZpcS0+d2FpdHEubG9jaykKIAkJLmxlbiA9IHNpemVvZihpaCkgKyBzaXplb2YoYXJnKSwKIAl9OwogCi0Jc3Bpbl91bmxvY2soJmZpcS0+d2FpdHEubG9jayk7CisJc3Bpbl91bmxvY2soJmZpcS0+bG9jayk7CiAJa2ZyZWUoZm9yZ2V0KTsKIAlpZiAobmJ5dGVzIDwgaWgubGVuKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTEyMzgsNyArMTEwNCw3IEBAIF9fcmVsZWFzZXMoZmlxLT53YWl0cS5sb2NrKQogCiBzdGF0aWMgaW50IGZ1c2VfcmVhZF9iYXRjaF9mb3JnZXQoc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEsCiAJCQkJICAgc3RydWN0IGZ1c2VfY29weV9zdGF0ZSAqY3MsIHNpemVfdCBuYnl0ZXMpCi1fX3JlbGVhc2VzKGZpcS0+d2FpdHEubG9jaykKK19fcmVsZWFzZXMoZmlxLT5sb2NrKQogewogCWludCBlcnI7CiAJdW5zaWduZWQgbWF4X2ZvcmdldHM7CkBAIC0xMjUyLDEzICsxMTE4LDEzIEBAIF9fcmVsZWFzZXMoZmlxLT53YWl0cS5sb2NrKQogCX07CiAKIAlpZiAobmJ5dGVzIDwgaWgubGVuKSB7Ci0JCXNwaW5fdW5sb2NrKCZmaXEtPndhaXRxLmxvY2spOworCQlzcGluX3VubG9jaygmZmlxLT5sb2NrKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJbWF4X2ZvcmdldHMgPSAobmJ5dGVzIC0gaWgubGVuKSAvIHNpemVvZihzdHJ1Y3QgZnVzZV9mb3JnZXRfb25lKTsKLQloZWFkID0gZGVxdWV1ZV9mb3JnZXQoZmlxLCBtYXhfZm9yZ2V0cywgJmNvdW50KTsKLQlzcGluX3VubG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwloZWFkID0gZnVzZV9kZXF1ZXVlX2ZvcmdldChmaXEsIG1heF9mb3JnZXRzLCAmY291bnQpOworCXNwaW5fdW5sb2NrKCZmaXEtPmxvY2spOwogCiAJYXJnLmNvdW50ID0gY291bnQ7CiAJaWgubGVuICs9IGNvdW50ICogc2l6ZW9mKHN0cnVjdCBmdXNlX2ZvcmdldF9vbmUpOwpAQCAtMTI4OCw3ICsxMTU0LDcgQEAgX19yZWxlYXNlcyhmaXEtPndhaXRxLmxvY2spCiBzdGF0aWMgaW50IGZ1c2VfcmVhZF9mb3JnZXQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxLAogCQkJICAgIHN0cnVjdCBmdXNlX2NvcHlfc3RhdGUgKmNzLAogCQkJICAgIHNpemVfdCBuYnl0ZXMpCi1fX3JlbGVhc2VzKGZpcS0+d2FpdHEubG9jaykKK19fcmVsZWFzZXMoZmlxLT5sb2NrKQogewogCWlmIChmYy0+bWlub3IgPCAxNiB8fCBmaXEtPmZvcmdldF9saXN0X2hlYWQubmV4dC0+bmV4dCA9PSBOVUxMKQogCQlyZXR1cm4gZnVzZV9yZWFkX3NpbmdsZV9mb3JnZXQoZmlxLCBjcywgbmJ5dGVzKTsKQEAgLTEzMDIsNyArMTE2OCw3IEBAIF9fcmVsZWFzZXMoZmlxLT53YWl0cS5sb2NrKQogICogdGhlIHBlbmRpbmcgbGlzdCBhbmQgY29waWVzIHJlcXVlc3QgZGF0YSB0byB1c2Vyc3BhY2UgYnVmZmVyLiAgSWYKICAqIG5vIHJlcGx5IGlzIG5lZWRlZCAoRk9SR0VUKSBvciByZXF1ZXN0IGhhcyBiZWVuIGFib3J0ZWQgb3IgdGhlcmUKICAqIHdhcyBhbiBlcnJvciBkdXJpbmcgdGhlIGNvcHlpbmcgdGhlbiBpdCdzIGZpbmlzaGVkIGJ5IGNhbGxpbmcKLSAqIHJlcXVlc3RfZW5kKCkuICBPdGhlcndpc2UgYWRkIGl0IHRvIHRoZSBwcm9jZXNzaW5nIGxpc3QsIGFuZCBzZXQKKyAqIGZ1c2VfcmVxdWVzdF9lbmQoKS4gIE90aGVyd2lzZSBhZGQgaXQgdG8gdGhlIHByb2Nlc3NpbmcgbGlzdCwgYW5kIHNldAogICogdGhlICdzZW50JyBmbGFnLgogICovCiBzdGF0aWMgc3NpemVfdCBmdXNlX2Rldl9kb19yZWFkKHN0cnVjdCBmdXNlX2RldiAqZnVkLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKQEAgLTEzMTMsMjEgKzExNzksNDIgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9kZXZfZG9fcmVhZChzdHJ1Y3QgZnVzZV9kZXYgKmZ1ZCwgc3RydWN0IGZpbGUgKmZpbGUsCiAJc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEgPSAmZmMtPmlxOwogCXN0cnVjdCBmdXNlX3BxdWV1ZSAqZnBxID0gJmZ1ZC0+cHE7CiAJc3RydWN0IGZ1c2VfcmVxICpyZXE7Ci0Jc3RydWN0IGZ1c2VfaW4gKmluOworCXN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3M7CiAJdW5zaWduZWQgcmVxc2l6ZTsKIAl1bnNpZ25lZCBpbnQgaGFzaDsKIAotIHJlc3RhcnQ6Ci0Jc3Bpbl9sb2NrKCZmaXEtPndhaXRxLmxvY2spOwotCWVyciA9IC1FQUdBSU47Ci0JaWYgKChmaWxlLT5mX2ZsYWdzICYgT19OT05CTE9DSykgJiYgZmlxLT5jb25uZWN0ZWQgJiYKLQkgICAgIXJlcXVlc3RfcGVuZGluZyhmaXEpKQotCQlnb3RvIGVycl91bmxvY2s7CisJLyoKKwkgKiBSZXF1aXJlIHNhbmUgbWluaW11bSByZWFkIGJ1ZmZlciAtIHRoYXQgaGFzIGNhcGFjaXR5IGZvciBmaXhlZCBwYXJ0CisJICogb2YgYW55IHJlcXVlc3QgaGVhZGVyICsgbmVnb3RpYXRlZCBtYXhfd3JpdGUgcm9vbSBmb3IgZGF0YS4KKwkgKgorCSAqIEhpc3RvcmljYWxseSBsaWJmdXNlIHJlc2VydmVzIDRLIGZvciBmaXhlZCBoZWFkZXIgcm9vbSwgYnV0IGUuZy4KKwkgKiBHbHVzdGVyRlMgcmVzZXJ2ZXMgb25seSA4MCBieXRlcworCSAqCisJICoJPSBgc2l6ZW9mKGZ1c2VfaW5faGVhZGVyKSArIHNpemVvZihmdXNlX3dyaXRlX2luKWAKKwkgKgorCSAqIHdoaWNoIGlzIHRoZSBhYnNvbHV0ZSBtaW5pbXVtIGFueSBzYW5lIGZpbGVzeXN0ZW0gc2hvdWxkIGJlIHVzaW5nCisJICogZm9yIGhlYWRlciByb29tLgorCSAqLworCWlmIChuYnl0ZXMgPCBtYXhfdChzaXplX3QsIEZVU0VfTUlOX1JFQURfQlVGRkVSLAorCQkJICAgc2l6ZW9mKHN0cnVjdCBmdXNlX2luX2hlYWRlcikgKworCQkJICAgc2l6ZW9mKHN0cnVjdCBmdXNlX3dyaXRlX2luKSArCisJCQkgICBmYy0+bWF4X3dyaXRlKSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKLQllcnIgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfZXhjbHVzaXZlX2xvY2tlZChmaXEtPndhaXRxLAorIHJlc3RhcnQ6CisJZm9yICg7OykgeworCQlzcGluX2xvY2soJmZpcS0+bG9jayk7CisJCWlmICghZmlxLT5jb25uZWN0ZWQgfHwgcmVxdWVzdF9wZW5kaW5nKGZpcSkpCisJCQlicmVhazsKKwkJc3Bpbl91bmxvY2soJmZpcS0+bG9jayk7CisKKwkJaWYgKGZpbGUtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKQorCQkJcmV0dXJuIC1FQUdBSU47CisJCWVyciA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZV9leGNsdXNpdmUoZmlxLT53YWl0cSwKIAkJCQkhZmlxLT5jb25uZWN0ZWQgfHwgcmVxdWVzdF9wZW5kaW5nKGZpcSkpOwotCWlmIChlcnIpCi0JCWdvdG8gZXJyX3VubG9jazsKKwkJaWYgKGVycikKKwkJCXJldHVybiBlcnI7CisJfQogCiAJaWYgKCFmaXEtPmNvbm5lY3RlZCkgewogCQllcnIgPSBmYy0+YWJvcnRlZCA/IC1FQ09OTkFCT1JURUQgOiAtRU5PREVWOwpAQCAtMTM1MSwyOCArMTIzOCwyOCBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX2Rldl9kb19yZWFkKHN0cnVjdCBmdXNlX2RldiAqZnVkLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAlyZXEgPSBsaXN0X2VudHJ5KGZpcS0+cGVuZGluZy5uZXh0LCBzdHJ1Y3QgZnVzZV9yZXEsIGxpc3QpOwogCWNsZWFyX2JpdChGUl9QRU5ESU5HLCAmcmVxLT5mbGFncyk7CiAJbGlzdF9kZWxfaW5pdCgmcmVxLT5saXN0KTsKLQlzcGluX3VubG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwlzcGluX3VubG9jaygmZmlxLT5sb2NrKTsKIAotCWluID0gJnJlcS0+aW47Ci0JcmVxc2l6ZSA9IGluLT5oLmxlbjsKKwlhcmdzID0gcmVxLT5hcmdzOworCXJlcXNpemUgPSByZXEtPmluLmgubGVuOwogCiAJLyogSWYgcmVxdWVzdCBpcyB0b28gbGFyZ2UsIHJlcGx5IHdpdGggYW4gZXJyb3IgYW5kIHJlc3RhcnQgdGhlIHJlYWQgKi8KIAlpZiAobmJ5dGVzIDwgcmVxc2l6ZSkgewogCQlyZXEtPm91dC5oLmVycm9yID0gLUVJTzsKIAkJLyogU0VUWEFUVFIgaXMgc3BlY2lhbCwgc2luY2UgaXQgbWF5IGNvbnRhaW4gdG9vIGxhcmdlIGRhdGEgKi8KLQkJaWYgKGluLT5oLm9wY29kZSA9PSBGVVNFX1NFVFhBVFRSKQorCQlpZiAoYXJncy0+b3Bjb2RlID09IEZVU0VfU0VUWEFUVFIpCiAJCQlyZXEtPm91dC5oLmVycm9yID0gLUUyQklHOwotCQlyZXF1ZXN0X2VuZChmYywgcmVxKTsKKwkJZnVzZV9yZXF1ZXN0X2VuZChmYywgcmVxKTsKIAkJZ290byByZXN0YXJ0OwogCX0KIAlzcGluX2xvY2soJmZwcS0+bG9jayk7CiAJbGlzdF9hZGQoJnJlcS0+bGlzdCwgJmZwcS0+aW8pOwogCXNwaW5fdW5sb2NrKCZmcHEtPmxvY2spOwogCWNzLT5yZXEgPSByZXE7Ci0JZXJyID0gZnVzZV9jb3B5X29uZShjcywgJmluLT5oLCBzaXplb2YoaW4tPmgpKTsKKwllcnIgPSBmdXNlX2NvcHlfb25lKGNzLCAmcmVxLT5pbi5oLCBzaXplb2YocmVxLT5pbi5oKSk7CiAJaWYgKCFlcnIpCi0JCWVyciA9IGZ1c2VfY29weV9hcmdzKGNzLCBpbi0+bnVtYXJncywgaW4tPmFyZ3BhZ2VzLAotCQkJCSAgICAgKHN0cnVjdCBmdXNlX2FyZyAqKSBpbi0+YXJncywgMCk7CisJCWVyciA9IGZ1c2VfY29weV9hcmdzKGNzLCBhcmdzLT5pbl9udW1hcmdzLCBhcmdzLT5pbl9wYWdlcywKKwkJCQkgICAgIChzdHJ1Y3QgZnVzZV9hcmcgKikgYXJncy0+aW5fYXJncywgMCk7CiAJZnVzZV9jb3B5X2ZpbmlzaChjcyk7CiAJc3Bpbl9sb2NrKCZmcHEtPmxvY2spOwogCWNsZWFyX2JpdChGUl9MT0NLRUQsICZyZXEtPmZsYWdzKTsKQEAgLTE0MDUsMTEgKzEyOTIsMTEgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9kZXZfZG9fcmVhZChzdHJ1Y3QgZnVzZV9kZXYgKmZ1ZCwgc3RydWN0IGZpbGUgKmZpbGUsCiAJaWYgKCF0ZXN0X2JpdChGUl9QUklWQVRFLCAmcmVxLT5mbGFncykpCiAJCWxpc3RfZGVsX2luaXQoJnJlcS0+bGlzdCk7CiAJc3Bpbl91bmxvY2soJmZwcS0+bG9jayk7Ci0JcmVxdWVzdF9lbmQoZmMsIHJlcSk7CisJZnVzZV9yZXF1ZXN0X2VuZChmYywgcmVxKTsKIAlyZXR1cm4gZXJyOwogCiAgZXJyX3VubG9jazoKLQlzcGluX3VubG9jaygmZmlxLT53YWl0cS5sb2NrKTsKKwlzcGluX3VubG9jaygmZmlxLT5sb2NrKTsKIAlyZXR1cm4gZXJyOwogfQogCkBAIC0xNzI4LDkgKzE2MTUsMTkgQEAgc3RhdGljIGludCBmdXNlX25vdGlmeV9zdG9yZShzdHJ1Y3QgZnVzZV9jb25uICpmYywgdW5zaWduZWQgaW50IHNpemUsCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHZvaWQgZnVzZV9yZXRyaWV2ZV9lbmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQorc3RydWN0IGZ1c2VfcmV0cmlldmVfYXJncyB7CisJc3RydWN0IGZ1c2VfYXJnc19wYWdlcyBhcDsKKwlzdHJ1Y3QgZnVzZV9ub3RpZnlfcmV0cmlldmVfaW4gaW5hcmc7Cit9OworCitzdGF0aWMgdm9pZCBmdXNlX3JldHJpZXZlX2VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfYXJncyAqYXJncywKKwkJCSAgICAgIGludCBlcnJvcikKIHsKLQlyZWxlYXNlX3BhZ2VzKHJlcS0+cGFnZXMsIHJlcS0+bnVtX3BhZ2VzKTsKKwlzdHJ1Y3QgZnVzZV9yZXRyaWV2ZV9hcmdzICpyYSA9CisJCWNvbnRhaW5lcl9vZihhcmdzLCB0eXBlb2YoKnJhKSwgYXAuYXJncyk7CisKKwlyZWxlYXNlX3BhZ2VzKHJhLT5hcC5wYWdlcywgcmEtPmFwLm51bV9wYWdlcyk7CisJa2ZyZWUocmEpOwogfQogCiBzdGF0aWMgaW50IGZ1c2VfcmV0cmlldmUoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCkBAIC0xNzM4LDEzICsxNjM1LDE2IEBAIHN0YXRpYyBpbnQgZnVzZV9yZXRyaWV2ZShzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGlub2RlICppbm9kZSwKIHsKIAlpbnQgZXJyOwogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gaW5vZGUtPmlfbWFwcGluZzsKLQlzdHJ1Y3QgZnVzZV9yZXEgKnJlcTsKIAlwZ29mZl90IGluZGV4OwogCWxvZmZfdCBmaWxlX3NpemU7CiAJdW5zaWduZWQgaW50IG51bTsKIAl1bnNpZ25lZCBpbnQgb2Zmc2V0OwogCXNpemVfdCB0b3RhbF9sZW4gPSAwOwogCXVuc2lnbmVkIGludCBudW1fcGFnZXM7CisJc3RydWN0IGZ1c2VfcmV0cmlldmVfYXJncyAqcmE7CisJc2l6ZV90IGFyZ3Nfc2l6ZSA9IHNpemVvZigqcmEpOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwOworCXN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3M7CiAKIAlvZmZzZXQgPSBvdXRhcmctPm9mZnNldCAmIH5QQUdFX01BU0s7CiAJZmlsZV9zaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOwpAQCAtMTc1OCwxOSArMTY1OCwyNiBAQCBzdGF0aWMgaW50IGZ1c2VfcmV0cmlldmUoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJbnVtX3BhZ2VzID0gKG51bSArIG9mZnNldCArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7CiAJbnVtX3BhZ2VzID0gbWluKG51bV9wYWdlcywgZmMtPm1heF9wYWdlcyk7CiAKLQlyZXEgPSBmdXNlX2dldF9yZXEoZmMsIG51bV9wYWdlcyk7Ci0JaWYgKElTX0VSUihyZXEpKQotCQlyZXR1cm4gUFRSX0VSUihyZXEpOworCWFyZ3Nfc2l6ZSArPSBudW1fcGFnZXMgKiAoc2l6ZW9mKGFwLT5wYWdlc1swXSkgKyBzaXplb2YoYXAtPmRlc2NzWzBdKSk7CiAKLQlyZXEtPmluLmgub3Bjb2RlID0gRlVTRV9OT1RJRllfUkVQTFk7Ci0JcmVxLT5pbi5oLm5vZGVpZCA9IG91dGFyZy0+bm9kZWlkOwotCXJlcS0+aW4ubnVtYXJncyA9IDI7Ci0JcmVxLT5pbi5hcmdwYWdlcyA9IDE7Ci0JcmVxLT5lbmQgPSBmdXNlX3JldHJpZXZlX2VuZDsKKwlyYSA9IGt6YWxsb2MoYXJnc19zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJhKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWFwID0gJnJhLT5hcDsKKwlhcC0+cGFnZXMgPSAodm9pZCAqKSAocmEgKyAxKTsKKwlhcC0+ZGVzY3MgPSAodm9pZCAqKSAoYXAtPnBhZ2VzICsgbnVtX3BhZ2VzKTsKKworCWFyZ3MgPSAmYXAtPmFyZ3M7CisJYXJncy0+bm9kZWlkID0gb3V0YXJnLT5ub2RlaWQ7CisJYXJncy0+b3Bjb2RlID0gRlVTRV9OT1RJRllfUkVQTFk7CisJYXJncy0+aW5fbnVtYXJncyA9IDI7CisJYXJncy0+aW5fcGFnZXMgPSB0cnVlOworCWFyZ3MtPmVuZCA9IGZ1c2VfcmV0cmlldmVfZW5kOwogCiAJaW5kZXggPSBvdXRhcmctPm9mZnNldCA+PiBQQUdFX1NISUZUOwogCi0Jd2hpbGUgKG51bSAmJiByZXEtPm51bV9wYWdlcyA8IG51bV9wYWdlcykgeworCXdoaWxlIChudW0gJiYgYXAtPm51bV9wYWdlcyA8IG51bV9wYWdlcykgewogCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAkJdW5zaWduZWQgaW50IHRoaXNfbnVtOwogCkBAIC0xNzc5LDI3ICsxNjg2LDI1IEBAIHN0YXRpYyBpbnQgZnVzZV9yZXRyaWV2ZShzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGlub2RlICppbm9kZSwKIAkJCWJyZWFrOwogCiAJCXRoaXNfbnVtID0gbWluX3QodW5zaWduZWQsIG51bSwgUEFHRV9TSVpFIC0gb2Zmc2V0KTsKLQkJcmVxLT5wYWdlc1tyZXEtPm51bV9wYWdlc10gPSBwYWdlOwotCQlyZXEtPnBhZ2VfZGVzY3NbcmVxLT5udW1fcGFnZXNdLm9mZnNldCA9IG9mZnNldDsKLQkJcmVxLT5wYWdlX2Rlc2NzW3JlcS0+bnVtX3BhZ2VzXS5sZW5ndGggPSB0aGlzX251bTsKLQkJcmVxLT5udW1fcGFnZXMrKzsKKwkJYXAtPnBhZ2VzW2FwLT5udW1fcGFnZXNdID0gcGFnZTsKKwkJYXAtPmRlc2NzW2FwLT5udW1fcGFnZXNdLm9mZnNldCA9IG9mZnNldDsKKwkJYXAtPmRlc2NzW2FwLT5udW1fcGFnZXNdLmxlbmd0aCA9IHRoaXNfbnVtOworCQlhcC0+bnVtX3BhZ2VzKys7CiAKIAkJb2Zmc2V0ID0gMDsKIAkJbnVtIC09IHRoaXNfbnVtOwogCQl0b3RhbF9sZW4gKz0gdGhpc19udW07CiAJCWluZGV4Kys7CiAJfQotCXJlcS0+bWlzYy5yZXRyaWV2ZV9pbi5vZmZzZXQgPSBvdXRhcmctPm9mZnNldDsKLQlyZXEtPm1pc2MucmV0cmlldmVfaW4uc2l6ZSA9IHRvdGFsX2xlbjsKLQlyZXEtPmluLmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihyZXEtPm1pc2MucmV0cmlldmVfaW4pOwotCXJlcS0+aW4uYXJnc1swXS52YWx1ZSA9ICZyZXEtPm1pc2MucmV0cmlldmVfaW47Ci0JcmVxLT5pbi5hcmdzWzFdLnNpemUgPSB0b3RhbF9sZW47CisJcmEtPmluYXJnLm9mZnNldCA9IG91dGFyZy0+b2Zmc2V0OworCXJhLT5pbmFyZy5zaXplID0gdG90YWxfbGVuOworCWFyZ3MtPmluX2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihyYS0+aW5hcmcpOworCWFyZ3MtPmluX2FyZ3NbMF0udmFsdWUgPSAmcmEtPmluYXJnOworCWFyZ3MtPmluX2FyZ3NbMV0uc2l6ZSA9IHRvdGFsX2xlbjsKIAotCWVyciA9IGZ1c2VfcmVxdWVzdF9zZW5kX25vdGlmeV9yZXBseShmYywgcmVxLCBvdXRhcmctPm5vdGlmeV91bmlxdWUpOwotCWlmIChlcnIpIHsKLQkJZnVzZV9yZXRyaWV2ZV9lbmQoZmMsIHJlcSk7Ci0JCWZ1c2VfcHV0X3JlcXVlc3QoZmMsIHJlcSk7Ci0JfQorCWVyciA9IGZ1c2Vfc2ltcGxlX25vdGlmeV9yZXBseShmYywgYXJncywgb3V0YXJnLT5ub3RpZnlfdW5pcXVlKTsKKwlpZiAoZXJyKQorCQlmdXNlX3JldHJpZXZlX2VuZChmYywgYXJncywgZXJyKTsKIAogCXJldHVybiBlcnI7CiB9CkBAIC0xODg1LDI3ICsxNzkwLDI1IEBAIHN0YXRpYyBzdHJ1Y3QgZnVzZV9yZXEgKnJlcXVlc3RfZmluZChzdHJ1Y3QgZnVzZV9wcXVldWUgKmZwcSwgdTY0IHVuaXF1ZSkKIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGludCBjb3B5X291dF9hcmdzKHN0cnVjdCBmdXNlX2NvcHlfc3RhdGUgKmNzLCBzdHJ1Y3QgZnVzZV9vdXQgKm91dCwKK3N0YXRpYyBpbnQgY29weV9vdXRfYXJncyhzdHJ1Y3QgZnVzZV9jb3B5X3N0YXRlICpjcywgc3RydWN0IGZ1c2VfYXJncyAqYXJncywKIAkJCSB1bnNpZ25lZCBuYnl0ZXMpCiB7CiAJdW5zaWduZWQgcmVxc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZnVzZV9vdXRfaGVhZGVyKTsKIAotCWlmIChvdXQtPmguZXJyb3IpCi0JCXJldHVybiBuYnl0ZXMgIT0gcmVxc2l6ZSA/IC1FSU5WQUwgOiAwOworCXJlcXNpemUgKz0gZnVzZV9sZW5fYXJncyhhcmdzLT5vdXRfbnVtYXJncywgYXJncy0+b3V0X2FyZ3MpOwogCi0JcmVxc2l6ZSArPSBsZW5fYXJncyhvdXQtPm51bWFyZ3MsIG91dC0+YXJncyk7Ci0KLQlpZiAocmVxc2l6ZSA8IG5ieXRlcyB8fCAocmVxc2l6ZSA+IG5ieXRlcyAmJiAhb3V0LT5hcmd2YXIpKQorCWlmIChyZXFzaXplIDwgbmJ5dGVzIHx8IChyZXFzaXplID4gbmJ5dGVzICYmICFhcmdzLT5vdXRfYXJndmFyKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJZWxzZSBpZiAocmVxc2l6ZSA+IG5ieXRlcykgewotCQlzdHJ1Y3QgZnVzZV9hcmcgKmxhc3RhcmcgPSAmb3V0LT5hcmdzW291dC0+bnVtYXJncy0xXTsKKwkJc3RydWN0IGZ1c2VfYXJnICpsYXN0YXJnID0gJmFyZ3MtPm91dF9hcmdzW2FyZ3MtPm91dF9udW1hcmdzLTFdOwogCQl1bnNpZ25lZCBkaWZmc2l6ZSA9IHJlcXNpemUgLSBuYnl0ZXM7CisKIAkJaWYgKGRpZmZzaXplID4gbGFzdGFyZy0+c2l6ZSkKIAkJCXJldHVybiAtRUlOVkFMOwogCQlsYXN0YXJnLT5zaXplIC09IGRpZmZzaXplOwogCX0KLQlyZXR1cm4gZnVzZV9jb3B5X2FyZ3MoY3MsIG91dC0+bnVtYXJncywgb3V0LT5hcmdwYWdlcywgb3V0LT5hcmdzLAotCQkJICAgICAgb3V0LT5wYWdlX3plcm9pbmcpOworCXJldHVybiBmdXNlX2NvcHlfYXJncyhjcywgYXJncy0+b3V0X251bWFyZ3MsIGFyZ3MtPm91dF9wYWdlcywKKwkJCSAgICAgIGFyZ3MtPm91dF9hcmdzLCBhcmdzLT5wYWdlX3plcm9pbmcpOwogfQogCiAvKgpAQCAtMTkxMyw3ICsxODE2LDcgQEAgc3RhdGljIGludCBjb3B5X291dF9hcmdzKHN0cnVjdCBmdXNlX2NvcHlfc3RhdGUgKmNzLCBzdHJ1Y3QgZnVzZV9vdXQgKm91dCwKICAqIHRoZSB3cml0ZSBidWZmZXIuICBUaGUgcmVxdWVzdCBpcyB0aGVuIHNlYXJjaGVkIG9uIHRoZSBwcm9jZXNzaW5nCiAgKiBsaXN0IGJ5IHRoZSB1bmlxdWUgSUQgZm91bmQgaW4gdGhlIGhlYWRlci4gIElmIGZvdW5kLCB0aGVuIHJlbW92ZQogICogaXQgZnJvbSB0aGUgbGlzdCBhbmQgY29weSB0aGUgcmVzdCBvZiB0aGUgYnVmZmVyIHRvIHRoZSByZXF1ZXN0LgotICogVGhlIHJlcXVlc3QgaXMgZmluaXNoZWQgYnkgY2FsbGluZyByZXF1ZXN0X2VuZCgpCisgKiBUaGUgcmVxdWVzdCBpcyBmaW5pc2hlZCBieSBjYWxsaW5nIGZ1c2VfcmVxdWVzdF9lbmQoKS4KICAqLwogc3RhdGljIHNzaXplX3QgZnVzZV9kZXZfZG9fd3JpdGUoc3RydWN0IGZ1c2VfZGV2ICpmdWQsCiAJCQkJIHN0cnVjdCBmdXNlX2NvcHlfc3RhdGUgKmNzLCBzaXplX3QgbmJ5dGVzKQpAQCAtMTk4NCwxMCArMTg4NywxMyBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX2Rldl9kb193cml0ZShzdHJ1Y3QgZnVzZV9kZXYgKmZ1ZCwKIAlzZXRfYml0KEZSX0xPQ0tFRCwgJnJlcS0+ZmxhZ3MpOwogCXNwaW5fdW5sb2NrKCZmcHEtPmxvY2spOwogCWNzLT5yZXEgPSByZXE7Ci0JaWYgKCFyZXEtPm91dC5wYWdlX3JlcGxhY2UpCisJaWYgKCFyZXEtPmFyZ3MtPnBhZ2VfcmVwbGFjZSkKIAkJY3MtPm1vdmVfcGFnZXMgPSAwOwogCi0JZXJyID0gY29weV9vdXRfYXJncyhjcywgJnJlcS0+b3V0LCBuYnl0ZXMpOworCWlmIChvaC5lcnJvcikKKwkJZXJyID0gbmJ5dGVzICE9IHNpemVvZihvaCkgPyAtRUlOVkFMIDogMDsKKwllbHNlCisJCWVyciA9IGNvcHlfb3V0X2FyZ3MoY3MsIHJlcS0+YXJncywgbmJ5dGVzKTsKIAlmdXNlX2NvcHlfZmluaXNoKGNzKTsKIAogCXNwaW5fbG9jaygmZnBxLT5sb2NrKTsKQEAgLTIwMDAsNyArMTkwNiw3IEBAIHN0YXRpYyBzc2l6ZV90IGZ1c2VfZGV2X2RvX3dyaXRlKHN0cnVjdCBmdXNlX2RldiAqZnVkLAogCQlsaXN0X2RlbF9pbml0KCZyZXEtPmxpc3QpOwogCXNwaW5fdW5sb2NrKCZmcHEtPmxvY2spOwogCi0JcmVxdWVzdF9lbmQoZmMsIHJlcSk7CisJZnVzZV9yZXF1ZXN0X2VuZChmYywgcmVxKTsKIG91dDoKIAlyZXR1cm4gZXJyID8gZXJyIDogbmJ5dGVzOwogCkBAIC0yMTIxLDEyICsyMDI3LDEyIEBAIHN0YXRpYyBfX3BvbGxfdCBmdXNlX2Rldl9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQogCWZpcSA9ICZmdWQtPmZjLT5pcTsKIAlwb2xsX3dhaXQoZmlsZSwgJmZpcS0+d2FpdHEsIHdhaXQpOwogCi0Jc3Bpbl9sb2NrKCZmaXEtPndhaXRxLmxvY2spOworCXNwaW5fbG9jaygmZmlxLT5sb2NrKTsKIAlpZiAoIWZpcS0+Y29ubmVjdGVkKQogCQltYXNrID0gRVBPTExFUlI7CiAJZWxzZSBpZiAocmVxdWVzdF9wZW5kaW5nKGZpcSkpCiAJCW1hc2sgfD0gRVBPTExJTiB8IEVQT0xMUkROT1JNOwotCXNwaW5fdW5sb2NrKCZmaXEtPndhaXRxLmxvY2spOworCXNwaW5fdW5sb2NrKCZmaXEtPmxvY2spOwogCiAJcmV0dXJuIG1hc2s7CiB9CkBAIC0yMTQwLDcgKzIwNDYsNyBAQCBzdGF0aWMgdm9pZCBlbmRfcmVxdWVzdHMoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiAJCXJlcS0+b3V0LmguZXJyb3IgPSAtRUNPTk5BQk9SVEVEOwogCQljbGVhcl9iaXQoRlJfU0VOVCwgJnJlcS0+ZmxhZ3MpOwogCQlsaXN0X2RlbF9pbml0KCZyZXEtPmxpc3QpOwotCQlyZXF1ZXN0X2VuZChmYywgcmVxKTsKKwkJZnVzZV9yZXF1ZXN0X2VuZChmYywgcmVxKTsKIAl9CiB9CiAKQEAgLTIyMjEsMTUgKzIxMjcsMTUgQEAgdm9pZCBmdXNlX2Fib3J0X2Nvbm4oc3RydWN0IGZ1c2VfY29ubiAqZmMpCiAJCWZsdXNoX2JnX3F1ZXVlKGZjKTsKIAkJc3Bpbl91bmxvY2soJmZjLT5iZ19sb2NrKTsKIAotCQlzcGluX2xvY2soJmZpcS0+d2FpdHEubG9jayk7CisJCXNwaW5fbG9jaygmZmlxLT5sb2NrKTsKIAkJZmlxLT5jb25uZWN0ZWQgPSAwOwogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcSwgJmZpcS0+cGVuZGluZywgbGlzdCkKIAkJCWNsZWFyX2JpdChGUl9QRU5ESU5HLCAmcmVxLT5mbGFncyk7CiAJCWxpc3Rfc3BsaWNlX3RhaWxfaW5pdCgmZmlxLT5wZW5kaW5nLCAmdG9fZW5kKTsKIAkJd2hpbGUgKGZvcmdldF9wZW5kaW5nKGZpcSkpCi0JCQlrZnJlZShkZXF1ZXVlX2ZvcmdldChmaXEsIDEsIE5VTEwpKTsKLQkJd2FrZV91cF9hbGxfbG9ja2VkKCZmaXEtPndhaXRxKTsKLQkJc3Bpbl91bmxvY2soJmZpcS0+d2FpdHEubG9jayk7CisJCQlrZnJlZShmdXNlX2RlcXVldWVfZm9yZ2V0KGZpcSwgMSwgTlVMTCkpOworCQl3YWtlX3VwX2FsbCgmZmlxLT53YWl0cSk7CisJCXNwaW5fdW5sb2NrKCZmaXEtPmxvY2spOwogCQlraWxsX2Zhc3luYygmZmlxLT5mYXN5bmMsIFNJR0lPLCBQT0xMX0lOKTsKIAkJZW5kX3BvbGxzKGZjKTsKIAkJd2FrZV91cF9hbGwoJmZjLT5ibG9ja2VkX3dhaXRxKTsKQEAgLTIyOTYsNyArMjIwMiw3IEBAIHN0YXRpYyBpbnQgZnVzZV9kZXZpY2VfY2xvbmUoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmaWxlICpuZXcpCiAJaWYgKG5ldy0+cHJpdmF0ZV9kYXRhKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWZ1ZCA9IGZ1c2VfZGV2X2FsbG9jKGZjKTsKKwlmdWQgPSBmdXNlX2Rldl9hbGxvY19pbnN0YWxsKGZjKTsKIAlpZiAoIWZ1ZCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKZGlmZiAtLWdpdCBhL2ZzL2Z1c2UvZGlyLmMgYi9mcy9mdXNlL2Rpci5jCmluZGV4IGRkMGY2NGYuLmQ1NzJjOTAgMTAwNjQ0Ci0tLSBhL2ZzL2Z1c2UvZGlyLmMKKysrIGIvZnMvZnVzZS9kaXIuYwpAQCAtMjQsMjAgKzI0LDU0IEBAIHN0YXRpYyB2b2lkIGZ1c2VfYWR2aXNlX3VzZV9yZWFkZGlycGx1cyhzdHJ1Y3QgaW5vZGUgKmRpcikKIAlzZXRfYml0KEZVU0VfSV9BRFZJU0VfUkRQTFVTLCAmZmktPnN0YXRlKTsKIH0KIAorI2lmIEJJVFNfUEVSX0xPTkcgPj0gNjQKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2Z1c2VfZGVudHJ5X3NldHRpbWUoc3RydWN0IGRlbnRyeSAqZW50cnksIHU2NCB0aW1lKQoreworCWVudHJ5LT5kX2ZzZGF0YSA9ICh2b2lkICopIHRpbWU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTY0IGZ1c2VfZGVudHJ5X3RpbWUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZW50cnkpCit7CisJcmV0dXJuICh1NjQpZW50cnktPmRfZnNkYXRhOworfQorCisjZWxzZQogdW5pb24gZnVzZV9kZW50cnkgewogCXU2NCB0aW1lOwogCXN0cnVjdCByY3VfaGVhZCByY3U7CiB9OwogCi1zdGF0aWMgaW5saW5lIHZvaWQgZnVzZV9kZW50cnlfc2V0dGltZShzdHJ1Y3QgZGVudHJ5ICplbnRyeSwgdTY0IHRpbWUpCitzdGF0aWMgaW5saW5lIHZvaWQgX19mdXNlX2RlbnRyeV9zZXR0aW1lKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdTY0IHRpbWUpCiB7Ci0JKCh1bmlvbiBmdXNlX2RlbnRyeSAqKSBlbnRyeS0+ZF9mc2RhdGEpLT50aW1lID0gdGltZTsKKwkoKHVuaW9uIGZ1c2VfZGVudHJ5ICopIGRlbnRyeS0+ZF9mc2RhdGEpLT50aW1lID0gdGltZTsKIH0KIAotc3RhdGljIGlubGluZSB1NjQgZnVzZV9kZW50cnlfdGltZShzdHJ1Y3QgZGVudHJ5ICplbnRyeSkKK3N0YXRpYyBpbmxpbmUgdTY0IGZ1c2VfZGVudHJ5X3RpbWUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZW50cnkpCiB7CiAJcmV0dXJuICgodW5pb24gZnVzZV9kZW50cnkgKikgZW50cnktPmRfZnNkYXRhKS0+dGltZTsKIH0KKyNlbmRpZgorCitzdGF0aWMgdm9pZCBmdXNlX2RlbnRyeV9zZXR0aW1lKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdTY0IHRpbWUpCit7CisJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uX3N1cGVyKGRlbnRyeS0+ZF9zYik7CisJYm9vbCBkZWxldGUgPSAhdGltZSAmJiBmYy0+ZGVsZXRlX3N0YWxlOworCS8qCisJICogTWVzcyB3aXRoIERDQUNIRV9PUF9ERUxFVEUgYmVjYXVzZSBkcHV0KCkgd2lsbCBiZSBmYXN0ZXIgd2l0aG91dCBpdC4KKwkgKiBEb24ndCBjYXJlIGFib3V0IHJhY2VzLCBlaXRoZXIgd2F5IGl0J3MganVzdCBhbiBvcHRpbWl6YXRpb24KKwkgKi8KKwlpZiAoKCFkZWxldGUgJiYgKGRlbnRyeS0+ZF9mbGFncyAmIERDQUNIRV9PUF9ERUxFVEUpKSB8fAorCSAgICAoZGVsZXRlICYmICEoZGVudHJ5LT5kX2ZsYWdzICYgRENBQ0hFX09QX0RFTEVURSkpKSB7CisJCXNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOworCQlpZiAoIWRlbGV0ZSkKKwkJCWRlbnRyeS0+ZF9mbGFncyAmPSB+RENBQ0hFX09QX0RFTEVURTsKKwkJZWxzZQorCQkJZGVudHJ5LT5kX2ZsYWdzIHw9IERDQUNIRV9PUF9ERUxFVEU7CisJCXNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7CisJfQorCisJX19mdXNlX2RlbnRyeV9zZXR0aW1lKGRlbnRyeSwgdGltZSk7Cit9CiAKIC8qCiAgKiBGVVNFIGNhY2hlcyBkZW50cmllcyBhbmQgYXR0cmlidXRlcyB3aXRoIHNlcGFyYXRlIHRpbWVvdXQuICBUaGUKQEAgLTEzOSwxNCArMTczLDE0IEBAIHN0YXRpYyB2b2lkIGZ1c2VfbG9va3VwX2luaXQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MsCiAJCQkgICAgIHN0cnVjdCBmdXNlX2VudHJ5X291dCAqb3V0YXJnKQogewogCW1lbXNldChvdXRhcmcsIDAsIHNpemVvZihzdHJ1Y3QgZnVzZV9lbnRyeV9vdXQpKTsKLQlhcmdzLT5pbi5oLm9wY29kZSA9IEZVU0VfTE9PS1VQOwotCWFyZ3MtPmluLmgubm9kZWlkID0gbm9kZWlkOwotCWFyZ3MtPmluLm51bWFyZ3MgPSAxOwotCWFyZ3MtPmluLmFyZ3NbMF0uc2l6ZSA9IG5hbWUtPmxlbiArIDE7Ci0JYXJncy0+aW4uYXJnc1swXS52YWx1ZSA9IG5hbWUtPm5hbWU7Ci0JYXJncy0+b3V0Lm51bWFyZ3MgPSAxOwotCWFyZ3MtPm91dC5hcmdzWzBdLnNpemUgPSBzaXplb2Yoc3RydWN0IGZ1c2VfZW50cnlfb3V0KTsKLQlhcmdzLT5vdXQuYXJnc1swXS52YWx1ZSA9IG91dGFyZzsKKwlhcmdzLT5vcGNvZGUgPSBGVVNFX0xPT0tVUDsKKwlhcmdzLT5ub2RlaWQgPSBub2RlaWQ7CisJYXJncy0+aW5fbnVtYXJncyA9IDE7CisJYXJncy0+aW5fYXJnc1swXS5zaXplID0gbmFtZS0+bGVuICsgMTsKKwlhcmdzLT5pbl9hcmdzWzBdLnZhbHVlID0gbmFtZS0+bmFtZTsKKwlhcmdzLT5vdXRfbnVtYXJncyA9IDE7CisJYXJncy0+b3V0X2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZnVzZV9lbnRyeV9vdXQpOworCWFyZ3MtPm91dF9hcmdzWzBdLnZhbHVlID0gb3V0YXJnOwogfQogCiAvKgpAQCAtMjQyLDkgKzI3NiwxMSBAQCBzdGF0aWMgaW50IGZ1c2VfZGVudHJ5X3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZW50cnksIHVuc2lnbmVkIGludCBmbGFncykKIAlnb3RvIG91dDsKIH0KIAorI2lmIEJJVFNfUEVSX0xPTkcgPCA2NAogc3RhdGljIGludCBmdXNlX2RlbnRyeV9pbml0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIHsKLQlkZW50cnktPmRfZnNkYXRhID0ga3phbGxvYyhzaXplb2YodW5pb24gZnVzZV9kZW50cnkpLCBHRlBfS0VSTkVMKTsKKwlkZW50cnktPmRfZnNkYXRhID0ga3phbGxvYyhzaXplb2YodW5pb24gZnVzZV9kZW50cnkpLAorCQkJCSAgIEdGUF9LRVJORUxfQUNDT1VOVCB8IF9fR0ZQX1JFQ0xBSU1BQkxFKTsKIAogCXJldHVybiBkZW50cnktPmRfZnNkYXRhID8gMCA6IC1FTk9NRU07CiB9CkBAIC0yNTQsMTYgKzI5MCwyNyBAQCBzdGF0aWMgdm9pZCBmdXNlX2RlbnRyeV9yZWxlYXNlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAogCWtmcmVlX3JjdShmZCwgcmN1KTsKIH0KKyNlbmRpZgorCitzdGF0aWMgaW50IGZ1c2VfZGVudHJ5X2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJcmV0dXJuIHRpbWVfYmVmb3JlNjQoZnVzZV9kZW50cnlfdGltZShkZW50cnkpLCBnZXRfamlmZmllc182NCgpKTsKK30KIAogY29uc3Qgc3RydWN0IGRlbnRyeV9vcGVyYXRpb25zIGZ1c2VfZGVudHJ5X29wZXJhdGlvbnMgPSB7CiAJLmRfcmV2YWxpZGF0ZQk9IGZ1c2VfZGVudHJ5X3JldmFsaWRhdGUsCisJLmRfZGVsZXRlCT0gZnVzZV9kZW50cnlfZGVsZXRlLAorI2lmIEJJVFNfUEVSX0xPTkcgPCA2NAogCS5kX2luaXQJCT0gZnVzZV9kZW50cnlfaW5pdCwKIAkuZF9yZWxlYXNlCT0gZnVzZV9kZW50cnlfcmVsZWFzZSwKKyNlbmRpZgogfTsKIAogY29uc3Qgc3RydWN0IGRlbnRyeV9vcGVyYXRpb25zIGZ1c2Vfcm9vdF9kZW50cnlfb3BlcmF0aW9ucyA9IHsKKyNpZiBCSVRTX1BFUl9MT05HIDwgNjQKIAkuZF9pbml0CQk9IGZ1c2VfZGVudHJ5X2luaXQsCiAJLmRfcmVsZWFzZQk9IGZ1c2VfZGVudHJ5X3JlbGVhc2UsCisjZW5kaWYKIH07CiAKIGludCBmdXNlX3ZhbGlkX3R5cGUoaW50IG0pCkBAIC00MTAsMTggKzQ1NywxOCBAQCBzdGF0aWMgaW50IGZ1c2VfY3JlYXRlX29wZW4oc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmVudHJ5LAogCWluYXJnLmZsYWdzID0gZmxhZ3M7CiAJaW5hcmcubW9kZSA9IG1vZGU7CiAJaW5hcmcudW1hc2sgPSBjdXJyZW50X3VtYXNrKCk7Ci0JYXJncy5pbi5oLm9wY29kZSA9IEZVU0VfQ1JFQVRFOwotCWFyZ3MuaW4uaC5ub2RlaWQgPSBnZXRfbm9kZV9pZChkaXIpOwotCWFyZ3MuaW4ubnVtYXJncyA9IDI7Ci0JYXJncy5pbi5hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOwotCWFyZ3MuaW4uYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKLQlhcmdzLmluLmFyZ3NbMV0uc2l6ZSA9IGVudHJ5LT5kX25hbWUubGVuICsgMTsKLQlhcmdzLmluLmFyZ3NbMV0udmFsdWUgPSBlbnRyeS0+ZF9uYW1lLm5hbWU7Ci0JYXJncy5vdXQubnVtYXJncyA9IDI7Ci0JYXJncy5vdXQuYXJnc1swXS5zaXplID0gc2l6ZW9mKG91dGVudHJ5KTsKLQlhcmdzLm91dC5hcmdzWzBdLnZhbHVlID0gJm91dGVudHJ5OwotCWFyZ3Mub3V0LmFyZ3NbMV0uc2l6ZSA9IHNpemVvZihvdXRvcGVuKTsKLQlhcmdzLm91dC5hcmdzWzFdLnZhbHVlID0gJm91dG9wZW47CisJYXJncy5vcGNvZGUgPSBGVVNFX0NSRUFURTsKKwlhcmdzLm5vZGVpZCA9IGdldF9ub2RlX2lkKGRpcik7CisJYXJncy5pbl9udW1hcmdzID0gMjsKKwlhcmdzLmluX2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7CisJYXJncy5pbl9hcmdzWzBdLnZhbHVlID0gJmluYXJnOworCWFyZ3MuaW5fYXJnc1sxXS5zaXplID0gZW50cnktPmRfbmFtZS5sZW4gKyAxOworCWFyZ3MuaW5fYXJnc1sxXS52YWx1ZSA9IGVudHJ5LT5kX25hbWUubmFtZTsKKwlhcmdzLm91dF9udW1hcmdzID0gMjsKKwlhcmdzLm91dF9hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0ZW50cnkpOworCWFyZ3Mub3V0X2FyZ3NbMF0udmFsdWUgPSAmb3V0ZW50cnk7CisJYXJncy5vdXRfYXJnc1sxXS5zaXplID0gc2l6ZW9mKG91dG9wZW4pOworCWFyZ3Mub3V0X2FyZ3NbMV0udmFsdWUgPSAmb3V0b3BlbjsKIAllcnIgPSBmdXNlX3NpbXBsZV9yZXF1ZXN0KGZjLCAmYXJncyk7CiAJaWYgKGVycikKIAkJZ290byBvdXRfZnJlZV9mZjsKQEAgLTUyNiwxMCArNTczLDEwIEBAIHN0YXRpYyBpbnQgY3JlYXRlX25ld19lbnRyeShzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfYXJncyAqYXJncywKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAltZW1zZXQoJm91dGFyZywgMCwgc2l6ZW9mKG91dGFyZykpOwotCWFyZ3MtPmluLmgubm9kZWlkID0gZ2V0X25vZGVfaWQoZGlyKTsKLQlhcmdzLT5vdXQubnVtYXJncyA9IDE7Ci0JYXJncy0+b3V0LmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihvdXRhcmcpOwotCWFyZ3MtPm91dC5hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKKwlhcmdzLT5ub2RlaWQgPSBnZXRfbm9kZV9pZChkaXIpOworCWFyZ3MtPm91dF9udW1hcmdzID0gMTsKKwlhcmdzLT5vdXRfYXJnc1swXS5zaXplID0gc2l6ZW9mKG91dGFyZyk7CisJYXJncy0+b3V0X2FyZ3NbMF0udmFsdWUgPSAmb3V0YXJnOwogCWVyciA9IGZ1c2Vfc2ltcGxlX3JlcXVlc3QoZmMsIGFyZ3MpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3B1dF9mb3JnZXRfcmVxOwpAQCAtNTgyLDEyICs2MjksMTIgQEAgc3RhdGljIGludCBmdXNlX21rbm9kKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICplbnRyeSwgdW1vZGVfdCBtb2RlLAogCWluYXJnLm1vZGUgPSBtb2RlOwogCWluYXJnLnJkZXYgPSBuZXdfZW5jb2RlX2RldihyZGV2KTsKIAlpbmFyZy51bWFzayA9IGN1cnJlbnRfdW1hc2soKTsKLQlhcmdzLmluLmgub3Bjb2RlID0gRlVTRV9NS05PRDsKLQlhcmdzLmluLm51bWFyZ3MgPSAyOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKLQlhcmdzLmluLmFyZ3NbMF0udmFsdWUgPSAmaW5hcmc7Ci0JYXJncy5pbi5hcmdzWzFdLnNpemUgPSBlbnRyeS0+ZF9uYW1lLmxlbiArIDE7Ci0JYXJncy5pbi5hcmdzWzFdLnZhbHVlID0gZW50cnktPmRfbmFtZS5uYW1lOworCWFyZ3Mub3Bjb2RlID0gRlVTRV9NS05PRDsKKwlhcmdzLmluX251bWFyZ3MgPSAyOworCWFyZ3MuaW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKKwlhcmdzLmluX2FyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CisJYXJncy5pbl9hcmdzWzFdLnNpemUgPSBlbnRyeS0+ZF9uYW1lLmxlbiArIDE7CisJYXJncy5pbl9hcmdzWzFdLnZhbHVlID0gZW50cnktPmRfbmFtZS5uYW1lOwogCXJldHVybiBjcmVhdGVfbmV3X2VudHJ5KGZjLCAmYXJncywgZGlyLCBlbnRyeSwgbW9kZSk7CiB9CiAKQEAgLTYwOSwxMiArNjU2LDEyIEBAIHN0YXRpYyBpbnQgZnVzZV9ta2RpcihzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZW50cnksIHVtb2RlX3QgbW9kZSkKIAltZW1zZXQoJmluYXJnLCAwLCBzaXplb2YoaW5hcmcpKTsKIAlpbmFyZy5tb2RlID0gbW9kZTsKIAlpbmFyZy51bWFzayA9IGN1cnJlbnRfdW1hc2soKTsKLQlhcmdzLmluLmgub3Bjb2RlID0gRlVTRV9NS0RJUjsKLQlhcmdzLmluLm51bWFyZ3MgPSAyOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKLQlhcmdzLmluLmFyZ3NbMF0udmFsdWUgPSAmaW5hcmc7Ci0JYXJncy5pbi5hcmdzWzFdLnNpemUgPSBlbnRyeS0+ZF9uYW1lLmxlbiArIDE7Ci0JYXJncy5pbi5hcmdzWzFdLnZhbHVlID0gZW50cnktPmRfbmFtZS5uYW1lOworCWFyZ3Mub3Bjb2RlID0gRlVTRV9NS0RJUjsKKwlhcmdzLmluX251bWFyZ3MgPSAyOworCWFyZ3MuaW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKKwlhcmdzLmluX2FyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CisJYXJncy5pbl9hcmdzWzFdLnNpemUgPSBlbnRyeS0+ZF9uYW1lLmxlbiArIDE7CisJYXJncy5pbl9hcmdzWzFdLnZhbHVlID0gZW50cnktPmRfbmFtZS5uYW1lOwogCXJldHVybiBjcmVhdGVfbmV3X2VudHJ5KGZjLCAmYXJncywgZGlyLCBlbnRyeSwgU19JRkRJUik7CiB9CiAKQEAgLTYyNSwxMiArNjcyLDEyIEBAIHN0YXRpYyBpbnQgZnVzZV9zeW1saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICplbnRyeSwKIAl1bnNpZ25lZCBsZW4gPSBzdHJsZW4obGluaykgKyAxOwogCUZVU0VfQVJHUyhhcmdzKTsKIAotCWFyZ3MuaW4uaC5vcGNvZGUgPSBGVVNFX1NZTUxJTks7Ci0JYXJncy5pbi5udW1hcmdzID0gMjsKLQlhcmdzLmluLmFyZ3NbMF0uc2l6ZSA9IGVudHJ5LT5kX25hbWUubGVuICsgMTsKLQlhcmdzLmluLmFyZ3NbMF0udmFsdWUgPSBlbnRyeS0+ZF9uYW1lLm5hbWU7Ci0JYXJncy5pbi5hcmdzWzFdLnNpemUgPSBsZW47Ci0JYXJncy5pbi5hcmdzWzFdLnZhbHVlID0gbGluazsKKwlhcmdzLm9wY29kZSA9IEZVU0VfU1lNTElOSzsKKwlhcmdzLmluX251bWFyZ3MgPSAyOworCWFyZ3MuaW5fYXJnc1swXS5zaXplID0gZW50cnktPmRfbmFtZS5sZW4gKyAxOworCWFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9IGVudHJ5LT5kX25hbWUubmFtZTsKKwlhcmdzLmluX2FyZ3NbMV0uc2l6ZSA9IGxlbjsKKwlhcmdzLmluX2FyZ3NbMV0udmFsdWUgPSBsaW5rOwogCXJldHVybiBjcmVhdGVfbmV3X2VudHJ5KGZjLCAmYXJncywgZGlyLCBlbnRyeSwgU19JRkxOSyk7CiB9CiAKQEAgLTY0OCwxMSArNjk1LDExIEBAIHN0YXRpYyBpbnQgZnVzZV91bmxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmVudHJ5KQogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZ2V0X2Z1c2VfY29ubihkaXIpOwogCUZVU0VfQVJHUyhhcmdzKTsKIAotCWFyZ3MuaW4uaC5vcGNvZGUgPSBGVVNFX1VOTElOSzsKLQlhcmdzLmluLmgubm9kZWlkID0gZ2V0X25vZGVfaWQoZGlyKTsKLQlhcmdzLmluLm51bWFyZ3MgPSAxOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gZW50cnktPmRfbmFtZS5sZW4gKyAxOwotCWFyZ3MuaW4uYXJnc1swXS52YWx1ZSA9IGVudHJ5LT5kX25hbWUubmFtZTsKKwlhcmdzLm9wY29kZSA9IEZVU0VfVU5MSU5LOworCWFyZ3Mubm9kZWlkID0gZ2V0X25vZGVfaWQoZGlyKTsKKwlhcmdzLmluX251bWFyZ3MgPSAxOworCWFyZ3MuaW5fYXJnc1swXS5zaXplID0gZW50cnktPmRfbmFtZS5sZW4gKyAxOworCWFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9IGVudHJ5LT5kX25hbWUubmFtZTsKIAllcnIgPSBmdXNlX3NpbXBsZV9yZXF1ZXN0KGZjLCAmYXJncyk7CiAJaWYgKCFlcnIpIHsKIAkJc3RydWN0IGlub2RlICppbm9kZSA9IGRfaW5vZGUoZW50cnkpOwpAQCAtNjg0LDExICs3MzEsMTEgQEAgc3RhdGljIGludCBmdXNlX3JtZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICplbnRyeSkKIAlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oZGlyKTsKIAlGVVNFX0FSR1MoYXJncyk7CiAKLQlhcmdzLmluLmgub3Bjb2RlID0gRlVTRV9STURJUjsKLQlhcmdzLmluLmgubm9kZWlkID0gZ2V0X25vZGVfaWQoZGlyKTsKLQlhcmdzLmluLm51bWFyZ3MgPSAxOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gZW50cnktPmRfbmFtZS5sZW4gKyAxOwotCWFyZ3MuaW4uYXJnc1swXS52YWx1ZSA9IGVudHJ5LT5kX25hbWUubmFtZTsKKwlhcmdzLm9wY29kZSA9IEZVU0VfUk1ESVI7CisJYXJncy5ub2RlaWQgPSBnZXRfbm9kZV9pZChkaXIpOworCWFyZ3MuaW5fbnVtYXJncyA9IDE7CisJYXJncy5pbl9hcmdzWzBdLnNpemUgPSBlbnRyeS0+ZF9uYW1lLmxlbiArIDE7CisJYXJncy5pbl9hcmdzWzBdLnZhbHVlID0gZW50cnktPmRfbmFtZS5uYW1lOwogCWVyciA9IGZ1c2Vfc2ltcGxlX3JlcXVlc3QoZmMsICZhcmdzKTsKIAlpZiAoIWVycikgewogCQljbGVhcl9ubGluayhkX2lub2RlKGVudHJ5KSk7CkBAIC03MTEsMTUgKzc1OCwxNSBAQCBzdGF0aWMgaW50IGZ1c2VfcmVuYW1lX2NvbW1vbihzdHJ1Y3QgaW5vZGUgKm9sZGRpciwgc3RydWN0IGRlbnRyeSAqb2xkZW50LAogCW1lbXNldCgmaW5hcmcsIDAsIGFyZ3NpemUpOwogCWluYXJnLm5ld2RpciA9IGdldF9ub2RlX2lkKG5ld2Rpcik7CiAJaW5hcmcuZmxhZ3MgPSBmbGFnczsKLQlhcmdzLmluLmgub3Bjb2RlID0gb3Bjb2RlOwotCWFyZ3MuaW4uaC5ub2RlaWQgPSBnZXRfbm9kZV9pZChvbGRkaXIpOwotCWFyZ3MuaW4ubnVtYXJncyA9IDM7Ci0JYXJncy5pbi5hcmdzWzBdLnNpemUgPSBhcmdzaXplOwotCWFyZ3MuaW4uYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKLQlhcmdzLmluLmFyZ3NbMV0uc2l6ZSA9IG9sZGVudC0+ZF9uYW1lLmxlbiArIDE7Ci0JYXJncy5pbi5hcmdzWzFdLnZhbHVlID0gb2xkZW50LT5kX25hbWUubmFtZTsKLQlhcmdzLmluLmFyZ3NbMl0uc2l6ZSA9IG5ld2VudC0+ZF9uYW1lLmxlbiArIDE7Ci0JYXJncy5pbi5hcmdzWzJdLnZhbHVlID0gbmV3ZW50LT5kX25hbWUubmFtZTsKKwlhcmdzLm9wY29kZSA9IG9wY29kZTsKKwlhcmdzLm5vZGVpZCA9IGdldF9ub2RlX2lkKG9sZGRpcik7CisJYXJncy5pbl9udW1hcmdzID0gMzsKKwlhcmdzLmluX2FyZ3NbMF0uc2l6ZSA9IGFyZ3NpemU7CisJYXJncy5pbl9hcmdzWzBdLnZhbHVlID0gJmluYXJnOworCWFyZ3MuaW5fYXJnc1sxXS5zaXplID0gb2xkZW50LT5kX25hbWUubGVuICsgMTsKKwlhcmdzLmluX2FyZ3NbMV0udmFsdWUgPSBvbGRlbnQtPmRfbmFtZS5uYW1lOworCWFyZ3MuaW5fYXJnc1syXS5zaXplID0gbmV3ZW50LT5kX25hbWUubGVuICsgMTsKKwlhcmdzLmluX2FyZ3NbMl0udmFsdWUgPSBuZXdlbnQtPmRfbmFtZS5uYW1lOwogCWVyciA9IGZ1c2Vfc2ltcGxlX3JlcXVlc3QoZmMsICZhcmdzKTsKIAlpZiAoIWVycikgewogCQkvKiBjdGltZSBjaGFuZ2VzICovCkBAIC03OTYsMTIgKzg0MywxMiBAQCBzdGF0aWMgaW50IGZ1c2VfbGluayhzdHJ1Y3QgZGVudHJ5ICplbnRyeSwgc3RydWN0IGlub2RlICpuZXdkaXIsCiAKIAltZW1zZXQoJmluYXJnLCAwLCBzaXplb2YoaW5hcmcpKTsKIAlpbmFyZy5vbGRub2RlaWQgPSBnZXRfbm9kZV9pZChpbm9kZSk7Ci0JYXJncy5pbi5oLm9wY29kZSA9IEZVU0VfTElOSzsKLQlhcmdzLmluLm51bWFyZ3MgPSAyOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKLQlhcmdzLmluLmFyZ3NbMF0udmFsdWUgPSAmaW5hcmc7Ci0JYXJncy5pbi5hcmdzWzFdLnNpemUgPSBuZXdlbnQtPmRfbmFtZS5sZW4gKyAxOwotCWFyZ3MuaW4uYXJnc1sxXS52YWx1ZSA9IG5ld2VudC0+ZF9uYW1lLm5hbWU7CisJYXJncy5vcGNvZGUgPSBGVVNFX0xJTks7CisJYXJncy5pbl9udW1hcmdzID0gMjsKKwlhcmdzLmluX2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7CisJYXJncy5pbl9hcmdzWzBdLnZhbHVlID0gJmluYXJnOworCWFyZ3MuaW5fYXJnc1sxXS5zaXplID0gbmV3ZW50LT5kX25hbWUubGVuICsgMTsKKwlhcmdzLmluX2FyZ3NbMV0udmFsdWUgPSBuZXdlbnQtPmRfbmFtZS5uYW1lOwogCWVyciA9IGNyZWF0ZV9uZXdfZW50cnkoZmMsICZhcmdzLCBuZXdkaXIsIG5ld2VudCwgaW5vZGUtPmlfbW9kZSk7CiAJLyogQ29udHJhcnkgdG8gIm5vcm1hbCIgZmlsZXN5c3RlbXMgaXQgY2FuIGhhcHBlbiB0aGF0IGxpbmsKIAkgICBtYWtlcyB0d28gImxvZ2ljYWwiIGlub2RlcyBwb2ludCB0byB0aGUgc2FtZSAicGh5c2ljYWwiCkBAIC04ODQsMTQgKzkzMSwxNCBAQCBzdGF0aWMgaW50IGZ1c2VfZG9fZ2V0YXR0cihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qga3N0YXQgKnN0YXQsCiAJCWluYXJnLmdldGF0dHJfZmxhZ3MgfD0gRlVTRV9HRVRBVFRSX0ZIOwogCQlpbmFyZy5maCA9IGZmLT5maDsKIAl9Ci0JYXJncy5pbi5oLm9wY29kZSA9IEZVU0VfR0VUQVRUUjsKLQlhcmdzLmluLmgubm9kZWlkID0gZ2V0X25vZGVfaWQoaW5vZGUpOwotCWFyZ3MuaW4ubnVtYXJncyA9IDE7Ci0JYXJncy5pbi5hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOwotCWFyZ3MuaW4uYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKLQlhcmdzLm91dC5udW1hcmdzID0gMTsKLQlhcmdzLm91dC5hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKLQlhcmdzLm91dC5hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKKwlhcmdzLm9wY29kZSA9IEZVU0VfR0VUQVRUUjsKKwlhcmdzLm5vZGVpZCA9IGdldF9ub2RlX2lkKGlub2RlKTsKKwlhcmdzLmluX251bWFyZ3MgPSAxOworCWFyZ3MuaW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKKwlhcmdzLmluX2FyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CisJYXJncy5vdXRfbnVtYXJncyA9IDE7CisJYXJncy5vdXRfYXJnc1swXS5zaXplID0gc2l6ZW9mKG91dGFyZyk7CisJYXJncy5vdXRfYXJnc1swXS52YWx1ZSA9ICZvdXRhcmc7CiAJZXJyID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOwogCWlmICghZXJyKSB7CiAJCWlmICgoaW5vZGUtPmlfbW9kZSBeIG91dGFyZy5hdHRyLm1vZGUpICYgU19JRk1UKSB7CkBAIC0xMDU2LDExICsxMTAzLDExIEBAIHN0YXRpYyBpbnQgZnVzZV9hY2Nlc3Moc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiAKIAltZW1zZXQoJmluYXJnLCAwLCBzaXplb2YoaW5hcmcpKTsKIAlpbmFyZy5tYXNrID0gbWFzayAmIChNQVlfUkVBRCB8IE1BWV9XUklURSB8IE1BWV9FWEVDKTsKLQlhcmdzLmluLmgub3Bjb2RlID0gRlVTRV9BQ0NFU1M7Ci0JYXJncy5pbi5oLm5vZGVpZCA9IGdldF9ub2RlX2lkKGlub2RlKTsKLQlhcmdzLmluLm51bWFyZ3MgPSAxOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKLQlhcmdzLmluLmFyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CisJYXJncy5vcGNvZGUgPSBGVVNFX0FDQ0VTUzsKKwlhcmdzLm5vZGVpZCA9IGdldF9ub2RlX2lkKGlub2RlKTsKKwlhcmdzLmluX251bWFyZ3MgPSAxOworCWFyZ3MuaW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKKwlhcmdzLmluX2FyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CiAJZXJyID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOwogCWlmIChlcnIgPT0gLUVOT1NZUykgewogCQlmYy0+bm9fYWNjZXNzID0gMTsKQEAgLTExNTIsMzggKzExOTksMzYgQEAgc3RhdGljIGludCBmdXNlX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiBzdGF0aWMgaW50IGZ1c2VfcmVhZGxpbmtfcGFnZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsKIAlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oaW5vZGUpOwotCXN0cnVjdCBmdXNlX3JlcSAqcmVxOwotCWludCBlcnI7CisJc3RydWN0IGZ1c2VfcGFnZV9kZXNjIGRlc2MgPSB7IC5sZW5ndGggPSBQQUdFX1NJWkUgLSAxIH07CisJc3RydWN0IGZ1c2VfYXJnc19wYWdlcyBhcCA9IHsKKwkJLm51bV9wYWdlcyA9IDEsCisJCS5wYWdlcyA9ICZwYWdlLAorCQkuZGVzY3MgPSAmZGVzYywKKwl9OworCWNoYXIgKmxpbms7CisJc3NpemVfdCByZXM7CiAKLQlyZXEgPSBmdXNlX2dldF9yZXEoZmMsIDEpOwotCWlmIChJU19FUlIocmVxKSkKLQkJcmV0dXJuIFBUUl9FUlIocmVxKTsKKwlhcC5hcmdzLm9wY29kZSA9IEZVU0VfUkVBRExJTks7CisJYXAuYXJncy5ub2RlaWQgPSBnZXRfbm9kZV9pZChpbm9kZSk7CisJYXAuYXJncy5vdXRfcGFnZXMgPSB0cnVlOworCWFwLmFyZ3Mub3V0X2FyZ3ZhciA9IHRydWU7CisJYXAuYXJncy5wYWdlX3plcm9pbmcgPSB0cnVlOworCWFwLmFyZ3Mub3V0X251bWFyZ3MgPSAxOworCWFwLmFyZ3Mub3V0X2FyZ3NbMF0uc2l6ZSA9IGRlc2MubGVuZ3RoOworCXJlcyA9IGZ1c2Vfc2ltcGxlX3JlcXVlc3QoZmMsICZhcC5hcmdzKTsKIAotCXJlcS0+b3V0LnBhZ2VfemVyb2luZyA9IDE7Ci0JcmVxLT5vdXQuYXJncGFnZXMgPSAxOwotCXJlcS0+bnVtX3BhZ2VzID0gMTsKLQlyZXEtPnBhZ2VzWzBdID0gcGFnZTsKLQlyZXEtPnBhZ2VfZGVzY3NbMF0ubGVuZ3RoID0gUEFHRV9TSVpFIC0gMTsKLQlyZXEtPmluLmgub3Bjb2RlID0gRlVTRV9SRUFETElOSzsKLQlyZXEtPmluLmgubm9kZWlkID0gZ2V0X25vZGVfaWQoaW5vZGUpOwotCXJlcS0+b3V0LmFyZ3ZhciA9IDE7Ci0JcmVxLT5vdXQubnVtYXJncyA9IDE7Ci0JcmVxLT5vdXQuYXJnc1swXS5zaXplID0gUEFHRV9TSVpFIC0gMTsKLQlmdXNlX3JlcXVlc3Rfc2VuZChmYywgcmVxKTsKLQllcnIgPSByZXEtPm91dC5oLmVycm9yOwotCi0JaWYgKCFlcnIpIHsKLQkJY2hhciAqbGluayA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsKLQkJc2l6ZV90IGxlbiA9IHJlcS0+b3V0LmFyZ3NbMF0uc2l6ZTsKLQotCQlCVUdfT04obGVuID49IFBBR0VfU0laRSk7Ci0JCWxpbmtbbGVuXSA9ICdcMCc7Ci0JfQotCi0JZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKIAlmdXNlX2ludmFsaWRhdGVfYXRpbWUoaW5vZGUpOwogCi0JcmV0dXJuIGVycjsKKwlpZiAocmVzIDwgMCkKKwkJcmV0dXJuIHJlczsKKworCWlmIChXQVJOX09OKHJlcyA+PSBQQUdFX1NJWkUpKQorCQlyZXR1cm4gLUVJTzsKKworCWxpbmsgPSBwYWdlX2FkZHJlc3MocGFnZSk7CisJbGlua1tyZXNdID0gJ1wwJzsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqZnVzZV9nZXRfbGluayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUsCkBAIC0xMzgzLDE0ICsxNDI4LDE0IEBAIHN0YXRpYyB2b2lkIGZ1c2Vfc2V0YXR0cl9maWxsKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9hcmdzICphcmdzLAogCQkJICAgICAgc3RydWN0IGZ1c2Vfc2V0YXR0cl9pbiAqaW5hcmdfcCwKIAkJCSAgICAgIHN0cnVjdCBmdXNlX2F0dHJfb3V0ICpvdXRhcmdfcCkKIHsKLQlhcmdzLT5pbi5oLm9wY29kZSA9IEZVU0VfU0VUQVRUUjsKLQlhcmdzLT5pbi5oLm5vZGVpZCA9IGdldF9ub2RlX2lkKGlub2RlKTsKLQlhcmdzLT5pbi5udW1hcmdzID0gMTsKLQlhcmdzLT5pbi5hcmdzWzBdLnNpemUgPSBzaXplb2YoKmluYXJnX3ApOwotCWFyZ3MtPmluLmFyZ3NbMF0udmFsdWUgPSBpbmFyZ19wOwotCWFyZ3MtPm91dC5udW1hcmdzID0gMTsKLQlhcmdzLT5vdXQuYXJnc1swXS5zaXplID0gc2l6ZW9mKCpvdXRhcmdfcCk7Ci0JYXJncy0+b3V0LmFyZ3NbMF0udmFsdWUgPSBvdXRhcmdfcDsKKwlhcmdzLT5vcGNvZGUgPSBGVVNFX1NFVEFUVFI7CisJYXJncy0+bm9kZWlkID0gZ2V0X25vZGVfaWQoaW5vZGUpOworCWFyZ3MtPmluX251bWFyZ3MgPSAxOworCWFyZ3MtPmluX2FyZ3NbMF0uc2l6ZSA9IHNpemVvZigqaW5hcmdfcCk7CisJYXJncy0+aW5fYXJnc1swXS52YWx1ZSA9IGluYXJnX3A7CisJYXJncy0+b3V0X251bWFyZ3MgPSAxOworCWFyZ3MtPm91dF9hcmdzWzBdLnNpemUgPSBzaXplb2YoKm91dGFyZ19wKTsKKwlhcmdzLT5vdXRfYXJnc1swXS52YWx1ZSA9IG91dGFyZ19wOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvZnMvZnVzZS9maWxlLmMgYi9mcy9mdXNlL2ZpbGUuYwppbmRleCA1YWUyODI4Li4wZjAyMjU2OCAxMDA2NDQKLS0tIGEvZnMvZnVzZS9maWxlLmMKKysrIGIvZnMvZnVzZS9maWxlLmMKQEAgLTE5LDYgKzE5LDE4IEBACiAjaW5jbHVkZSA8bGludXgvZmFsbG9jLmg+CiAjaW5jbHVkZSA8bGludXgvdWlvLmg+CiAKK3N0YXRpYyBzdHJ1Y3QgcGFnZSAqKmZ1c2VfcGFnZXNfYWxsb2ModW5zaWduZWQgaW50IG5wYWdlcywgZ2ZwX3QgZmxhZ3MsCisJCQkJICAgICAgc3RydWN0IGZ1c2VfcGFnZV9kZXNjICoqZGVzYykKK3sKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOworCisJcGFnZXMgPSBremFsbG9jKG5wYWdlcyAqIChzaXplb2Yoc3RydWN0IHBhZ2UgKikgKworCQkJCSAgc2l6ZW9mKHN0cnVjdCBmdXNlX3BhZ2VfZGVzYykpLCBmbGFncyk7CisJKmRlc2MgPSAodm9pZCAqKSAocGFnZXMgKyBucGFnZXMpOworCisJcmV0dXJuIHBhZ2VzOworfQorCiBzdGF0aWMgaW50IGZ1c2Vfc2VuZF9vcGVuKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1NjQgbm9kZWlkLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJCSAgaW50IG9wY29kZSwgc3RydWN0IGZ1c2Vfb3Blbl9vdXQgKm91dGFyZ3ApCiB7CkBAIC0yOSwyOSArNDEsMzYgQEAgc3RhdGljIGludCBmdXNlX3NlbmRfb3BlbihzdHJ1Y3QgZnVzZV9jb25uICpmYywgdTY0IG5vZGVpZCwgc3RydWN0IGZpbGUgKmZpbGUsCiAJaW5hcmcuZmxhZ3MgPSBmaWxlLT5mX2ZsYWdzICYgfihPX0NSRUFUIHwgT19FWENMIHwgT19OT0NUVFkpOwogCWlmICghZmMtPmF0b21pY19vX3RydW5jKQogCQlpbmFyZy5mbGFncyAmPSB+T19UUlVOQzsKLQlhcmdzLmluLmgub3Bjb2RlID0gb3Bjb2RlOwotCWFyZ3MuaW4uaC5ub2RlaWQgPSBub2RlaWQ7Ci0JYXJncy5pbi5udW1hcmdzID0gMTsKLQlhcmdzLmluLmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7Ci0JYXJncy5pbi5hcmdzWzBdLnZhbHVlID0gJmluYXJnOwotCWFyZ3Mub3V0Lm51bWFyZ3MgPSAxOwotCWFyZ3Mub3V0LmFyZ3NbMF0uc2l6ZSA9IHNpemVvZigqb3V0YXJncCk7Ci0JYXJncy5vdXQuYXJnc1swXS52YWx1ZSA9IG91dGFyZ3A7CisJYXJncy5vcGNvZGUgPSBvcGNvZGU7CisJYXJncy5ub2RlaWQgPSBub2RlaWQ7CisJYXJncy5pbl9udW1hcmdzID0gMTsKKwlhcmdzLmluX2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7CisJYXJncy5pbl9hcmdzWzBdLnZhbHVlID0gJmluYXJnOworCWFyZ3Mub3V0X251bWFyZ3MgPSAxOworCWFyZ3Mub3V0X2FyZ3NbMF0uc2l6ZSA9IHNpemVvZigqb3V0YXJncCk7CisJYXJncy5vdXRfYXJnc1swXS52YWx1ZSA9IG91dGFyZ3A7CiAKIAlyZXR1cm4gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOwogfQogCitzdHJ1Y3QgZnVzZV9yZWxlYXNlX2FyZ3MgeworCXN0cnVjdCBmdXNlX2FyZ3MgYXJnczsKKwlzdHJ1Y3QgZnVzZV9yZWxlYXNlX2luIGluYXJnOworCXN0cnVjdCBpbm9kZSAqaW5vZGU7Cit9OworCiBzdHJ1Y3QgZnVzZV9maWxlICpmdXNlX2ZpbGVfYWxsb2Moc3RydWN0IGZ1c2VfY29ubiAqZmMpCiB7CiAJc3RydWN0IGZ1c2VfZmlsZSAqZmY7CiAKLQlmZiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBmdXNlX2ZpbGUpLCBHRlBfS0VSTkVMKTsKKwlmZiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBmdXNlX2ZpbGUpLCBHRlBfS0VSTkVMX0FDQ09VTlQpOwogCWlmICh1bmxpa2VseSghZmYpKQogCQlyZXR1cm4gTlVMTDsKIAogCWZmLT5mYyA9IGZjOwotCWZmLT5yZXNlcnZlZF9yZXEgPSBmdXNlX3JlcXVlc3RfYWxsb2MoMCk7Ci0JaWYgKHVubGlrZWx5KCFmZi0+cmVzZXJ2ZWRfcmVxKSkgeworCWZmLT5yZWxlYXNlX2FyZ3MgPSBremFsbG9jKHNpemVvZigqZmYtPnJlbGVhc2VfYXJncyksCisJCQkJICAgR0ZQX0tFUk5FTF9BQ0NPVU5UKTsKKwlpZiAoIWZmLT5yZWxlYXNlX2FyZ3MpIHsKIAkJa2ZyZWUoZmYpOwogCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC02OSw3ICs4OCw3IEBAIHN0cnVjdCBmdXNlX2ZpbGUgKmZ1c2VfZmlsZV9hbGxvYyhzdHJ1Y3QgZnVzZV9jb25uICpmYykKIAogdm9pZCBmdXNlX2ZpbGVfZnJlZShzdHJ1Y3QgZnVzZV9maWxlICpmZikKIHsKLQlmdXNlX3JlcXVlc3RfZnJlZShmZi0+cmVzZXJ2ZWRfcmVxKTsKKwlrZnJlZShmZi0+cmVsZWFzZV9hcmdzKTsKIAltdXRleF9kZXN0cm95KCZmZi0+cmVhZGRpci5sb2NrKTsKIAlrZnJlZShmZik7CiB9CkBAIC04MCwzNCArOTksMzEgQEAgc3RhdGljIHN0cnVjdCBmdXNlX2ZpbGUgKmZ1c2VfZmlsZV9nZXQoc3RydWN0IGZ1c2VfZmlsZSAqZmYpCiAJcmV0dXJuIGZmOwogfQogCi1zdGF0aWMgdm9pZCBmdXNlX3JlbGVhc2VfZW5kKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKK3N0YXRpYyB2b2lkIGZ1c2VfcmVsZWFzZV9lbmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MsCisJCQkgICAgIGludCBlcnJvcikKIHsKLQlpcHV0KHJlcS0+bWlzYy5yZWxlYXNlLmlub2RlKTsKKwlzdHJ1Y3QgZnVzZV9yZWxlYXNlX2FyZ3MgKnJhID0gY29udGFpbmVyX29mKGFyZ3MsIHR5cGVvZigqcmEpLCBhcmdzKTsKKworCWlwdXQocmEtPmlub2RlKTsKKwlrZnJlZShyYSk7CiB9CiAKIHN0YXRpYyB2b2lkIGZ1c2VfZmlsZV9wdXQoc3RydWN0IGZ1c2VfZmlsZSAqZmYsIGJvb2wgc3luYywgYm9vbCBpc2RpcikKIHsKIAlpZiAocmVmY291bnRfZGVjX2FuZF90ZXN0KCZmZi0+Y291bnQpKSB7Ci0JCXN0cnVjdCBmdXNlX3JlcSAqcmVxID0gZmYtPnJlc2VydmVkX3JlcTsKKwkJc3RydWN0IGZ1c2VfYXJncyAqYXJncyA9ICZmZi0+cmVsZWFzZV9hcmdzLT5hcmdzOwogCiAJCWlmIChpc2RpciA/IGZmLT5mYy0+bm9fb3BlbmRpciA6IGZmLT5mYy0+bm9fb3BlbikgewotCQkJLyoKLQkJCSAqIERyb3AgdGhlIHJlbGVhc2UgcmVxdWVzdCB3aGVuIGNsaWVudCBkb2VzIG5vdAotCQkJICogaW1wbGVtZW50ICdvcGVuJwotCQkJICovCi0JCQlfX2NsZWFyX2JpdChGUl9CQUNLR1JPVU5ELCAmcmVxLT5mbGFncyk7Ci0JCQlpcHV0KHJlcS0+bWlzYy5yZWxlYXNlLmlub2RlKTsKLQkJCWZ1c2VfcHV0X3JlcXVlc3QoZmYtPmZjLCByZXEpOworCQkJLyogRG8gbm90aGluZyB3aGVuIGNsaWVudCBkb2VzIG5vdCBpbXBsZW1lbnQgJ29wZW4nICovCisJCQlmdXNlX3JlbGVhc2VfZW5kKGZmLT5mYywgYXJncywgMCk7CiAJCX0gZWxzZSBpZiAoc3luYykgewotCQkJX19zZXRfYml0KEZSX0ZPUkNFLCAmcmVxLT5mbGFncyk7Ci0JCQlfX2NsZWFyX2JpdChGUl9CQUNLR1JPVU5ELCAmcmVxLT5mbGFncyk7Ci0JCQlmdXNlX3JlcXVlc3Rfc2VuZChmZi0+ZmMsIHJlcSk7Ci0JCQlpcHV0KHJlcS0+bWlzYy5yZWxlYXNlLmlub2RlKTsKLQkJCWZ1c2VfcHV0X3JlcXVlc3QoZmYtPmZjLCByZXEpOworCQkJZnVzZV9zaW1wbGVfcmVxdWVzdChmZi0+ZmMsIGFyZ3MpOworCQkJZnVzZV9yZWxlYXNlX2VuZChmZi0+ZmMsIGFyZ3MsIDApOwogCQl9IGVsc2UgewotCQkJcmVxLT5lbmQgPSBmdXNlX3JlbGVhc2VfZW5kOwotCQkJX19zZXRfYml0KEZSX0JBQ0tHUk9VTkQsICZyZXEtPmZsYWdzKTsKLQkJCWZ1c2VfcmVxdWVzdF9zZW5kX2JhY2tncm91bmQoZmYtPmZjLCByZXEpOworCQkJYXJncy0+ZW5kID0gZnVzZV9yZWxlYXNlX2VuZDsKKwkJCWlmIChmdXNlX3NpbXBsZV9iYWNrZ3JvdW5kKGZmLT5mYywgYXJncywKKwkJCQkJCSAgIEdGUF9LRVJORUwgfCBfX0dGUF9OT0ZBSUwpKQorCQkJCWZ1c2VfcmVsZWFzZV9lbmQoZmYtPmZjLCBhcmdzLCAtRU5PVENPTk4pOwogCQl9CiAJCWtmcmVlKGZmKTsKIAl9CkBAIC0yMjcsOCArMjQzLDcgQEAgc3RhdGljIHZvaWQgZnVzZV9wcmVwYXJlX3JlbGVhc2Uoc3RydWN0IGZ1c2VfaW5vZGUgKmZpLCBzdHJ1Y3QgZnVzZV9maWxlICpmZiwKIAkJCQkgaW50IGZsYWdzLCBpbnQgb3Bjb2RlKQogewogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZmYtPmZjOwotCXN0cnVjdCBmdXNlX3JlcSAqcmVxID0gZmYtPnJlc2VydmVkX3JlcTsKLQlzdHJ1Y3QgZnVzZV9yZWxlYXNlX2luICppbmFyZyA9ICZyZXEtPm1pc2MucmVsZWFzZS5pbjsKKwlzdHJ1Y3QgZnVzZV9yZWxlYXNlX2FyZ3MgKnJhID0gZmYtPnJlbGVhc2VfYXJnczsKIAogCS8qIElub2RlIGlzIE5VTEwgb24gZXJyb3IgcGF0aCBvZiBmdXNlX2NyZWF0ZV9vcGVuKCkgKi8KIAlpZiAobGlrZWx5KGZpKSkgewpAQCAtMjQzLDMyICsyNTgsMzMgQEAgc3RhdGljIHZvaWQgZnVzZV9wcmVwYXJlX3JlbGVhc2Uoc3RydWN0IGZ1c2VfaW5vZGUgKmZpLCBzdHJ1Y3QgZnVzZV9maWxlICpmZiwKIAogCXdha2VfdXBfaW50ZXJydXB0aWJsZV9hbGwoJmZmLT5wb2xsX3dhaXQpOwogCi0JaW5hcmctPmZoID0gZmYtPmZoOwotCWluYXJnLT5mbGFncyA9IGZsYWdzOwotCXJlcS0+aW4uaC5vcGNvZGUgPSBvcGNvZGU7Ci0JcmVxLT5pbi5oLm5vZGVpZCA9IGZmLT5ub2RlaWQ7Ci0JcmVxLT5pbi5udW1hcmdzID0gMTsKLQlyZXEtPmluLmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZnVzZV9yZWxlYXNlX2luKTsKLQlyZXEtPmluLmFyZ3NbMF0udmFsdWUgPSBpbmFyZzsKKwlyYS0+aW5hcmcuZmggPSBmZi0+Zmg7CisJcmEtPmluYXJnLmZsYWdzID0gZmxhZ3M7CisJcmEtPmFyZ3MuaW5fbnVtYXJncyA9IDE7CisJcmEtPmFyZ3MuaW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKHN0cnVjdCBmdXNlX3JlbGVhc2VfaW4pOworCXJhLT5hcmdzLmluX2FyZ3NbMF0udmFsdWUgPSAmcmEtPmluYXJnOworCXJhLT5hcmdzLm9wY29kZSA9IG9wY29kZTsKKwlyYS0+YXJncy5ub2RlaWQgPSBmZi0+bm9kZWlkOworCXJhLT5hcmdzLmZvcmNlID0gdHJ1ZTsKKwlyYS0+YXJncy5ub2NyZWRzID0gdHJ1ZTsKIH0KIAogdm9pZCBmdXNlX3JlbGVhc2VfY29tbW9uKHN0cnVjdCBmaWxlICpmaWxlLCBib29sIGlzZGlyKQogewogCXN0cnVjdCBmdXNlX2lub2RlICpmaSA9IGdldF9mdXNlX2lub2RlKGZpbGVfaW5vZGUoZmlsZSkpOwogCXN0cnVjdCBmdXNlX2ZpbGUgKmZmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBmdXNlX3JlcSAqcmVxID0gZmYtPnJlc2VydmVkX3JlcTsKKwlzdHJ1Y3QgZnVzZV9yZWxlYXNlX2FyZ3MgKnJhID0gZmYtPnJlbGVhc2VfYXJnczsKIAlpbnQgb3Bjb2RlID0gaXNkaXIgPyBGVVNFX1JFTEVBU0VESVIgOiBGVVNFX1JFTEVBU0U7CiAKIAlmdXNlX3ByZXBhcmVfcmVsZWFzZShmaSwgZmYsIGZpbGUtPmZfZmxhZ3MsIG9wY29kZSk7CiAKIAlpZiAoZmYtPmZsb2NrKSB7Ci0JCXN0cnVjdCBmdXNlX3JlbGVhc2VfaW4gKmluYXJnID0gJnJlcS0+bWlzYy5yZWxlYXNlLmluOwotCQlpbmFyZy0+cmVsZWFzZV9mbGFncyB8PSBGVVNFX1JFTEVBU0VfRkxPQ0tfVU5MT0NLOwotCQlpbmFyZy0+bG9ja19vd25lciA9IGZ1c2VfbG9ja19vd25lcl9pZChmZi0+ZmMsCi0JCQkJCQkgICAgICAgKGZsX293bmVyX3QpIGZpbGUpOworCQlyYS0+aW5hcmcucmVsZWFzZV9mbGFncyB8PSBGVVNFX1JFTEVBU0VfRkxPQ0tfVU5MT0NLOworCQlyYS0+aW5hcmcubG9ja19vd25lciA9IGZ1c2VfbG9ja19vd25lcl9pZChmZi0+ZmMsCisJCQkJCQkJICAoZmxfb3duZXJfdCkgZmlsZSk7CiAJfQogCS8qIEhvbGQgaW5vZGUgdW50aWwgcmVsZWFzZSBpcyBmaW5pc2hlZCAqLwotCXJlcS0+bWlzYy5yZWxlYXNlLmlub2RlID0gaWdyYWIoZmlsZV9pbm9kZShmaWxlKSk7CisJcmEtPmlub2RlID0gaWdyYWIoZmlsZV9pbm9kZShmaWxlKSk7CiAKIAkvKgogCSAqIE5vcm1hbGx5IHRoaXMgd2lsbCBzZW5kIHRoZSBSRUxFQVNFIHJlcXVlc3QsIGhvd2V2ZXIgaWYKQEAgLTI3OSw3ICsyOTUsNyBAQCB2b2lkIGZ1c2VfcmVsZWFzZV9jb21tb24oc3RydWN0IGZpbGUgKmZpbGUsIGJvb2wgaXNkaXIpCiAJICogc3luY2hyb25vdXMgUkVMRUFTRSBpcyBhbGxvd2VkIChhbmQgZGVzaXJhYmxlKSBpbiB0aGlzIGNhc2UKIAkgKiBiZWNhdXNlIHRoZSBzZXJ2ZXIgY2FuIGJlIHRydXN0ZWQgbm90IHRvIHNjcmV3IHVwLgogCSAqLwotCWZ1c2VfZmlsZV9wdXQoZmYsIGZmLT5mYy0+ZGVzdHJveV9yZXEgIT0gTlVMTCwgaXNkaXIpOworCWZ1c2VfZmlsZV9wdXQoZmYsIGZmLT5mYy0+ZGVzdHJveSwgaXNkaXIpOwogfQogCiBzdGF0aWMgaW50IGZ1c2Vfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKQEAgLTMzNSwxOSArMzUxLDI3IEBAIHU2NCBmdXNlX2xvY2tfb3duZXJfaWQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIGZsX293bmVyX3QgaWQpCiAJcmV0dXJuICh1NjQpIHYwICsgKCh1NjQpIHYxIDw8IDMyKTsKIH0KIAotc3RhdGljIHN0cnVjdCBmdXNlX3JlcSAqZnVzZV9maW5kX3dyaXRlYmFjayhzdHJ1Y3QgZnVzZV9pbm9kZSAqZmksCitzdHJ1Y3QgZnVzZV93cml0ZXBhZ2VfYXJncyB7CisJc3RydWN0IGZ1c2VfaW9fYXJncyBpYTsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHdyaXRlcGFnZXNfZW50cnk7CisJc3RydWN0IGxpc3RfaGVhZCBxdWV1ZV9lbnRyeTsKKwlzdHJ1Y3QgZnVzZV93cml0ZXBhZ2VfYXJncyAqbmV4dDsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlOworfTsKKworc3RhdGljIHN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICpmdXNlX2ZpbmRfd3JpdGViYWNrKHN0cnVjdCBmdXNlX2lub2RlICpmaSwKIAkJCQkJICAgIHBnb2ZmX3QgaWR4X2Zyb20sIHBnb2ZmX3QgaWR4X3RvKQogewotCXN0cnVjdCBmdXNlX3JlcSAqcmVxOworCXN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICp3cGE7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcSwgJmZpLT53cml0ZXBhZ2VzLCB3cml0ZXBhZ2VzX2VudHJ5KSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeSh3cGEsICZmaS0+d3JpdGVwYWdlcywgd3JpdGVwYWdlc19lbnRyeSkgewogCQlwZ29mZl90IGN1cnJfaW5kZXg7CiAKLQkJV0FSTl9PTihnZXRfZnVzZV9pbm9kZShyZXEtPmlub2RlKSAhPSBmaSk7Ci0JCWN1cnJfaW5kZXggPSByZXEtPm1pc2Mud3JpdGUuaW4ub2Zmc2V0ID4+IFBBR0VfU0hJRlQ7Ci0JCWlmIChpZHhfZnJvbSA8IGN1cnJfaW5kZXggKyByZXEtPm51bV9wYWdlcyAmJgorCQlXQVJOX09OKGdldF9mdXNlX2lub2RlKHdwYS0+aW5vZGUpICE9IGZpKTsKKwkJY3Vycl9pbmRleCA9IHdwYS0+aWEud3JpdGUuaW4ub2Zmc2V0ID4+IFBBR0VfU0hJRlQ7CisJCWlmIChpZHhfZnJvbSA8IGN1cnJfaW5kZXggKyB3cGEtPmlhLmFwLm51bV9wYWdlcyAmJgogCQkgICAgY3Vycl9pbmRleCA8PSBpZHhfdG8pIHsKLQkJCXJldHVybiByZXE7CisJCQlyZXR1cm4gd3BhOwogCQl9CiAJfQogCXJldHVybiBOVUxMOwpAQCAtMzgzLDEyICs0MDcsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGZ1c2VfcGFnZV9pc193cml0ZWJhY2soc3RydWN0IGlub2RlICppbm9kZSwgcGdvZmZfdCBpbmRleCkKICAqIFNpbmNlIGZ1c2UgZG9lc24ndCByZWx5IG9uIHRoZSBWTSB3cml0ZWJhY2sgdHJhY2tpbmcsIHRoaXMgaGFzIHRvCiAgKiB1c2Ugc29tZSBvdGhlciBtZWFucy4KICAqLwotc3RhdGljIGludCBmdXNlX3dhaXRfb25fcGFnZV93cml0ZWJhY2soc3RydWN0IGlub2RlICppbm9kZSwgcGdvZmZfdCBpbmRleCkKK3N0YXRpYyB2b2lkIGZ1c2Vfd2FpdF9vbl9wYWdlX3dyaXRlYmFjayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4KQogewogCXN0cnVjdCBmdXNlX2lub2RlICpmaSA9IGdldF9mdXNlX2lub2RlKGlub2RlKTsKIAogCXdhaXRfZXZlbnQoZmktPnBhZ2Vfd2FpdHEsICFmdXNlX3BhZ2VfaXNfd3JpdGViYWNrKGlub2RlLCBpbmRleCkpOwotCXJldHVybiAwOwogfQogCiAvKgpAQCAtNDExLDggKzQzNCw4IEBAIHN0YXRpYyBpbnQgZnVzZV9mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSwgZmxfb3duZXJfdCBpZCkKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxlKTsKIAlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oaW5vZGUpOwogCXN0cnVjdCBmdXNlX2ZpbGUgKmZmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBmdXNlX3JlcSAqcmVxOwogCXN0cnVjdCBmdXNlX2ZsdXNoX2luIGluYXJnOworCUZVU0VfQVJHUyhhcmdzKTsKIAlpbnQgZXJyOwogCiAJaWYgKGlzX2JhZF9pbm9kZShpbm9kZSkpCkBAIC00MzMsMTkgKzQ1NiwxNyBAQCBzdGF0aWMgaW50IGZ1c2VfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyX3QgaWQpCiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCXJlcSA9IGZ1c2VfZ2V0X3JlcV9ub2ZhaWxfbm9wYWdlcyhmYywgZmlsZSk7CiAJbWVtc2V0KCZpbmFyZywgMCwgc2l6ZW9mKGluYXJnKSk7CiAJaW5hcmcuZmggPSBmZi0+Zmg7CiAJaW5hcmcubG9ja19vd25lciA9IGZ1c2VfbG9ja19vd25lcl9pZChmYywgaWQpOwotCXJlcS0+aW4uaC5vcGNvZGUgPSBGVVNFX0ZMVVNIOwotCXJlcS0+aW4uaC5ub2RlaWQgPSBnZXRfbm9kZV9pZChpbm9kZSk7Ci0JcmVxLT5pbi5udW1hcmdzID0gMTsKLQlyZXEtPmluLmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7Ci0JcmVxLT5pbi5hcmdzWzBdLnZhbHVlID0gJmluYXJnOwotCV9fc2V0X2JpdChGUl9GT1JDRSwgJnJlcS0+ZmxhZ3MpOwotCWZ1c2VfcmVxdWVzdF9zZW5kKGZjLCByZXEpOwotCWVyciA9IHJlcS0+b3V0LmguZXJyb3I7Ci0JZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKKwlhcmdzLm9wY29kZSA9IEZVU0VfRkxVU0g7CisJYXJncy5ub2RlaWQgPSBnZXRfbm9kZV9pZChpbm9kZSk7CisJYXJncy5pbl9udW1hcmdzID0gMTsKKwlhcmdzLmluX2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7CisJYXJncy5pbl9hcmdzWzBdLnZhbHVlID0gJmluYXJnOworCWFyZ3MuZm9yY2UgPSB0cnVlOworCisJZXJyID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOwogCWlmIChlcnIgPT0gLUVOT1NZUykgewogCQlmYy0+bm9fZmx1c2ggPSAxOwogCQllcnIgPSAwOwpAQCAtNDY1LDExICs0ODYsMTEgQEAgaW50IGZ1c2VfZnN5bmNfY29tbW9uKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQsCiAJbWVtc2V0KCZpbmFyZywgMCwgc2l6ZW9mKGluYXJnKSk7CiAJaW5hcmcuZmggPSBmZi0+Zmg7CiAJaW5hcmcuZnN5bmNfZmxhZ3MgPSBkYXRhc3luYyA/IEZVU0VfRlNZTkNfRkRBVEFTWU5DIDogMDsKLQlhcmdzLmluLmgub3Bjb2RlID0gb3Bjb2RlOwotCWFyZ3MuaW4uaC5ub2RlaWQgPSBnZXRfbm9kZV9pZChpbm9kZSk7Ci0JYXJncy5pbi5udW1hcmdzID0gMTsKLQlhcmdzLmluLmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7Ci0JYXJncy5pbi5hcmdzWzBdLnZhbHVlID0gJmluYXJnOworCWFyZ3Mub3Bjb2RlID0gb3Bjb2RlOworCWFyZ3Mubm9kZWlkID0gZ2V0X25vZGVfaWQoaW5vZGUpOworCWFyZ3MuaW5fbnVtYXJncyA9IDE7CisJYXJncy5pbl9hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOworCWFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKIAlyZXR1cm4gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOwogfQogCkBAIC01MjMsMzUgKzU0NCwzNSBAQCBzdGF0aWMgaW50IGZ1c2VfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwKIAlyZXR1cm4gZXJyOwogfQogCi12b2lkIGZ1c2VfcmVhZF9maWxsKHN0cnVjdCBmdXNlX3JlcSAqcmVxLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHBvcywKLQkJICAgIHNpemVfdCBjb3VudCwgaW50IG9wY29kZSkKK3ZvaWQgZnVzZV9yZWFkX2FyZ3NfZmlsbChzdHJ1Y3QgZnVzZV9pb19hcmdzICppYSwgc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBwb3MsCisJCQkgc2l6ZV90IGNvdW50LCBpbnQgb3Bjb2RlKQogewotCXN0cnVjdCBmdXNlX3JlYWRfaW4gKmluYXJnID0gJnJlcS0+bWlzYy5yZWFkLmluOwogCXN0cnVjdCBmdXNlX2ZpbGUgKmZmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MgPSAmaWEtPmFwLmFyZ3M7CiAKLQlpbmFyZy0+ZmggPSBmZi0+Zmg7Ci0JaW5hcmctPm9mZnNldCA9IHBvczsKLQlpbmFyZy0+c2l6ZSA9IGNvdW50OwotCWluYXJnLT5mbGFncyA9IGZpbGUtPmZfZmxhZ3M7Ci0JcmVxLT5pbi5oLm9wY29kZSA9IG9wY29kZTsKLQlyZXEtPmluLmgubm9kZWlkID0gZmYtPm5vZGVpZDsKLQlyZXEtPmluLm51bWFyZ3MgPSAxOwotCXJlcS0+aW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKHN0cnVjdCBmdXNlX3JlYWRfaW4pOwotCXJlcS0+aW4uYXJnc1swXS52YWx1ZSA9IGluYXJnOwotCXJlcS0+b3V0LmFyZ3ZhciA9IDE7Ci0JcmVxLT5vdXQubnVtYXJncyA9IDE7Ci0JcmVxLT5vdXQuYXJnc1swXS5zaXplID0gY291bnQ7CisJaWEtPnJlYWQuaW4uZmggPSBmZi0+Zmg7CisJaWEtPnJlYWQuaW4ub2Zmc2V0ID0gcG9zOworCWlhLT5yZWFkLmluLnNpemUgPSBjb3VudDsKKwlpYS0+cmVhZC5pbi5mbGFncyA9IGZpbGUtPmZfZmxhZ3M7CisJYXJncy0+b3Bjb2RlID0gb3Bjb2RlOworCWFyZ3MtPm5vZGVpZCA9IGZmLT5ub2RlaWQ7CisJYXJncy0+aW5fbnVtYXJncyA9IDE7CisJYXJncy0+aW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKGlhLT5yZWFkLmluKTsKKwlhcmdzLT5pbl9hcmdzWzBdLnZhbHVlID0gJmlhLT5yZWFkLmluOworCWFyZ3MtPm91dF9hcmd2YXIgPSB0cnVlOworCWFyZ3MtPm91dF9udW1hcmdzID0gMTsKKwlhcmdzLT5vdXRfYXJnc1swXS5zaXplID0gY291bnQ7CiB9CiAKLXN0YXRpYyB2b2lkIGZ1c2VfcmVsZWFzZV91c2VyX3BhZ2VzKHN0cnVjdCBmdXNlX3JlcSAqcmVxLCBib29sIHNob3VsZF9kaXJ0eSkKK3N0YXRpYyB2b2lkIGZ1c2VfcmVsZWFzZV91c2VyX3BhZ2VzKHN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwLAorCQkJCSAgICBib29sIHNob3VsZF9kaXJ0eSkKIHsKLQl1bnNpZ25lZCBpOworCXVuc2lnbmVkIGludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IHJlcS0+bnVtX3BhZ2VzOyBpKyspIHsKLQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSByZXEtPnBhZ2VzW2ldOworCWZvciAoaSA9IDA7IGkgPCBhcC0+bnVtX3BhZ2VzOyBpKyspIHsKIAkJaWYgKHNob3VsZF9kaXJ0eSkKLQkJCXNldF9wYWdlX2RpcnR5X2xvY2socGFnZSk7Ci0JCXB1dF9wYWdlKHBhZ2UpOworCQkJc2V0X3BhZ2VfZGlydHlfbG9jayhhcC0+cGFnZXNbaV0pOworCQlwdXRfcGFnZShhcC0+cGFnZXNbaV0pOwogCX0KIH0KIApAQCAtNjIxLDY0ICs2NDIsOTQgQEAgc3RhdGljIHZvaWQgZnVzZV9haW9fY29tcGxldGUoc3RydWN0IGZ1c2VfaW9fcHJpdiAqaW8sIGludCBlcnIsIHNzaXplX3QgcG9zKQogCWtyZWZfcHV0KCZpby0+cmVmY250LCBmdXNlX2lvX3JlbGVhc2UpOwogfQogCi1zdGF0aWMgdm9pZCBmdXNlX2Fpb19jb21wbGV0ZV9yZXEoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQorc3RhdGljIHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmZ1c2VfaW9fYWxsb2Moc3RydWN0IGZ1c2VfaW9fcHJpdiAqaW8sCisJCQkJCSAgdW5zaWduZWQgaW50IG5wYWdlcykKIHsKLQlzdHJ1Y3QgZnVzZV9pb19wcml2ICppbyA9IHJlcS0+aW87Ci0Jc3NpemVfdCBwb3MgPSAtMTsKKwlzdHJ1Y3QgZnVzZV9pb19hcmdzICppYTsKIAotCWZ1c2VfcmVsZWFzZV91c2VyX3BhZ2VzKHJlcSwgaW8tPnNob3VsZF9kaXJ0eSk7Ci0KLQlpZiAoaW8tPndyaXRlKSB7Ci0JCWlmIChyZXEtPm1pc2Mud3JpdGUuaW4uc2l6ZSAhPSByZXEtPm1pc2Mud3JpdGUub3V0LnNpemUpCi0JCQlwb3MgPSByZXEtPm1pc2Mud3JpdGUuaW4ub2Zmc2V0IC0gaW8tPm9mZnNldCArCi0JCQkJcmVxLT5taXNjLndyaXRlLm91dC5zaXplOwotCX0gZWxzZSB7Ci0JCWlmIChyZXEtPm1pc2MucmVhZC5pbi5zaXplICE9IHJlcS0+b3V0LmFyZ3NbMF0uc2l6ZSkKLQkJCXBvcyA9IHJlcS0+bWlzYy5yZWFkLmluLm9mZnNldCAtIGlvLT5vZmZzZXQgKwotCQkJCXJlcS0+b3V0LmFyZ3NbMF0uc2l6ZTsKKwlpYSA9IGt6YWxsb2Moc2l6ZW9mKCppYSksIEdGUF9LRVJORUwpOworCWlmIChpYSkgeworCQlpYS0+aW8gPSBpbzsKKwkJaWEtPmFwLnBhZ2VzID0gZnVzZV9wYWdlc19hbGxvYyhucGFnZXMsIEdGUF9LRVJORUwsCisJCQkJCQkmaWEtPmFwLmRlc2NzKTsKKwkJaWYgKCFpYS0+YXAucGFnZXMpIHsKKwkJCWtmcmVlKGlhKTsKKwkJCWlhID0gTlVMTDsKKwkJfQogCX0KLQotCWZ1c2VfYWlvX2NvbXBsZXRlKGlvLCByZXEtPm91dC5oLmVycm9yLCBwb3MpOworCXJldHVybiBpYTsKIH0KIAotc3RhdGljIHNpemVfdCBmdXNlX2FzeW5jX3JlcV9zZW5kKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSwKLQkJc2l6ZV90IG51bV9ieXRlcywgc3RydWN0IGZ1c2VfaW9fcHJpdiAqaW8pCitzdGF0aWMgdm9pZCBmdXNlX2lvX2ZyZWUoc3RydWN0IGZ1c2VfaW9fYXJncyAqaWEpCiB7CisJa2ZyZWUoaWEtPmFwLnBhZ2VzKTsKKwlrZnJlZShpYSk7Cit9CisKK3N0YXRpYyB2b2lkIGZ1c2VfYWlvX2NvbXBsZXRlX3JlcShzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfYXJncyAqYXJncywKKwkJCQkgIGludCBlcnIpCit7CisJc3RydWN0IGZ1c2VfaW9fYXJncyAqaWEgPSBjb250YWluZXJfb2YoYXJncywgdHlwZW9mKCppYSksIGFwLmFyZ3MpOworCXN0cnVjdCBmdXNlX2lvX3ByaXYgKmlvID0gaWEtPmlvOworCXNzaXplX3QgcG9zID0gLTE7CisKKwlmdXNlX3JlbGVhc2VfdXNlcl9wYWdlcygmaWEtPmFwLCBpby0+c2hvdWxkX2RpcnR5KTsKKworCWlmIChlcnIpIHsKKwkJLyogTm90aGluZyAqLworCX0gZWxzZSBpZiAoaW8tPndyaXRlKSB7CisJCWlmIChpYS0+d3JpdGUub3V0LnNpemUgPiBpYS0+d3JpdGUuaW4uc2l6ZSkgeworCQkJZXJyID0gLUVJTzsKKwkJfSBlbHNlIGlmIChpYS0+d3JpdGUuaW4uc2l6ZSAhPSBpYS0+d3JpdGUub3V0LnNpemUpIHsKKwkJCXBvcyA9IGlhLT53cml0ZS5pbi5vZmZzZXQgLSBpby0+b2Zmc2V0ICsKKwkJCQlpYS0+d3JpdGUub3V0LnNpemU7CisJCX0KKwl9IGVsc2UgeworCQl1MzIgb3V0c2l6ZSA9IGFyZ3MtPm91dF9hcmdzWzBdLnNpemU7CisKKwkJaWYgKGlhLT5yZWFkLmluLnNpemUgIT0gb3V0c2l6ZSkKKwkJCXBvcyA9IGlhLT5yZWFkLmluLm9mZnNldCAtIGlvLT5vZmZzZXQgKyBvdXRzaXplOworCX0KKworCWZ1c2VfYWlvX2NvbXBsZXRlKGlvLCBlcnIsIHBvcyk7CisJZnVzZV9pb19mcmVlKGlhKTsKK30KKworc3RhdGljIHNzaXplX3QgZnVzZV9hc3luY19yZXFfc2VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywKKwkJCQkgICBzdHJ1Y3QgZnVzZV9pb19hcmdzICppYSwgc2l6ZV90IG51bV9ieXRlcykKK3sKKwlzc2l6ZV90IGVycjsKKwlzdHJ1Y3QgZnVzZV9pb19wcml2ICppbyA9IGlhLT5pbzsKKwogCXNwaW5fbG9jaygmaW8tPmxvY2spOwogCWtyZWZfZ2V0KCZpby0+cmVmY250KTsKIAlpby0+c2l6ZSArPSBudW1fYnl0ZXM7CiAJaW8tPnJlcXMrKzsKIAlzcGluX3VubG9jaygmaW8tPmxvY2spOwogCi0JcmVxLT5pbyA9IGlvOwotCXJlcS0+ZW5kID0gZnVzZV9haW9fY29tcGxldGVfcmVxOworCWlhLT5hcC5hcmdzLmVuZCA9IGZ1c2VfYWlvX2NvbXBsZXRlX3JlcTsKKwllcnIgPSBmdXNlX3NpbXBsZV9iYWNrZ3JvdW5kKGZjLCAmaWEtPmFwLmFyZ3MsIEdGUF9LRVJORUwpOwogCi0JX19mdXNlX2dldF9yZXF1ZXN0KHJlcSk7Ci0JZnVzZV9yZXF1ZXN0X3NlbmRfYmFja2dyb3VuZChmYywgcmVxKTsKLQotCXJldHVybiBudW1fYnl0ZXM7CisJcmV0dXJuIGVyciA/OiBudW1fYnl0ZXM7CiB9CiAKLXN0YXRpYyBzaXplX3QgZnVzZV9zZW5kX3JlYWQoc3RydWN0IGZ1c2VfcmVxICpyZXEsIHN0cnVjdCBmdXNlX2lvX3ByaXYgKmlvLAotCQkJICAgICBsb2ZmX3QgcG9zLCBzaXplX3QgY291bnQsIGZsX293bmVyX3Qgb3duZXIpCitzdGF0aWMgc3NpemVfdCBmdXNlX3NlbmRfcmVhZChzdHJ1Y3QgZnVzZV9pb19hcmdzICppYSwgbG9mZl90IHBvcywgc2l6ZV90IGNvdW50LAorCQkJICAgICAgZmxfb3duZXJfdCBvd25lcikKIHsKLQlzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvLT5pb2NiLT5raV9maWxwOworCXN0cnVjdCBmaWxlICpmaWxlID0gaWEtPmlvLT5pb2NiLT5raV9maWxwOwogCXN0cnVjdCBmdXNlX2ZpbGUgKmZmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZmYtPmZjOwogCi0JZnVzZV9yZWFkX2ZpbGwocmVxLCBmaWxlLCBwb3MsIGNvdW50LCBGVVNFX1JFQUQpOworCWZ1c2VfcmVhZF9hcmdzX2ZpbGwoaWEsIGZpbGUsIHBvcywgY291bnQsIEZVU0VfUkVBRCk7CiAJaWYgKG93bmVyICE9IE5VTEwpIHsKLQkJc3RydWN0IGZ1c2VfcmVhZF9pbiAqaW5hcmcgPSAmcmVxLT5taXNjLnJlYWQuaW47Ci0KLQkJaW5hcmctPnJlYWRfZmxhZ3MgfD0gRlVTRV9SRUFEX0xPQ0tPV05FUjsKLQkJaW5hcmctPmxvY2tfb3duZXIgPSBmdXNlX2xvY2tfb3duZXJfaWQoZmMsIG93bmVyKTsKKwkJaWEtPnJlYWQuaW4ucmVhZF9mbGFncyB8PSBGVVNFX1JFQURfTE9DS09XTkVSOworCQlpYS0+cmVhZC5pbi5sb2NrX293bmVyID0gZnVzZV9sb2NrX293bmVyX2lkKGZjLCBvd25lcik7CiAJfQogCi0JaWYgKGlvLT5hc3luYykKLQkJcmV0dXJuIGZ1c2VfYXN5bmNfcmVxX3NlbmQoZmMsIHJlcSwgY291bnQsIGlvKTsKKwlpZiAoaWEtPmlvLT5hc3luYykKKwkJcmV0dXJuIGZ1c2VfYXN5bmNfcmVxX3NlbmQoZmMsIGlhLCBjb3VudCk7CiAKLQlmdXNlX3JlcXVlc3Rfc2VuZChmYywgcmVxKTsKLQlyZXR1cm4gcmVxLT5vdXQuYXJnc1swXS5zaXplOworCXJldHVybiBmdXNlX3NpbXBsZV9yZXF1ZXN0KGZjLCAmaWEtPmFwLmFyZ3MpOwogfQogCiBzdGF0aWMgdm9pZCBmdXNlX3JlYWRfdXBkYXRlX3NpemUoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IHNpemUsCkBAIC02OTYsMTAgKzc0Nyw5IEBAIHN0YXRpYyB2b2lkIGZ1c2VfcmVhZF91cGRhdGVfc2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgc2l6ZSwKIAlzcGluX3VubG9jaygmZmktPmxvY2spOwogfQogCi1zdGF0aWMgdm9pZCBmdXNlX3Nob3J0X3JlYWQoc3RydWN0IGZ1c2VfcmVxICpyZXEsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCi0JCQkgICAgdTY0IGF0dHJfdmVyKQorc3RhdGljIHZvaWQgZnVzZV9zaG9ydF9yZWFkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHU2NCBhdHRyX3Zlciwgc2l6ZV90IG51bV9yZWFkLAorCQkJICAgIHN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwKQogewotCXNpemVfdCBudW1fcmVhZCA9IHJlcS0+b3V0LmFyZ3NbMF0uc2l6ZTsKIAlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oaW5vZGUpOwogCiAJaWYgKGZjLT53cml0ZWJhY2tfY2FjaGUpIHsKQEAgLTcxMiwyOCArNzYyLDMxIEBAIHN0YXRpYyB2b2lkIGZ1c2Vfc2hvcnRfcmVhZChzdHJ1Y3QgZnVzZV9yZXEgKnJlcSwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJaW50IHN0YXJ0X2lkeCA9IG51bV9yZWFkID4+IFBBR0VfU0hJRlQ7CiAJCXNpemVfdCBvZmYgPSBudW1fcmVhZCAmIChQQUdFX1NJWkUgLSAxKTsKIAotCQlmb3IgKGkgPSBzdGFydF9pZHg7IGkgPCByZXEtPm51bV9wYWdlczsgaSsrKSB7Ci0JCQl6ZXJvX3VzZXJfc2VnbWVudChyZXEtPnBhZ2VzW2ldLCBvZmYsIFBBR0VfU0laRSk7CisJCWZvciAoaSA9IHN0YXJ0X2lkeDsgaSA8IGFwLT5udW1fcGFnZXM7IGkrKykgeworCQkJemVyb191c2VyX3NlZ21lbnQoYXAtPnBhZ2VzW2ldLCBvZmYsIFBBR0VfU0laRSk7CiAJCQlvZmYgPSAwOwogCQl9CiAJfSBlbHNlIHsKLQkJbG9mZl90IHBvcyA9IHBhZ2Vfb2Zmc2V0KHJlcS0+cGFnZXNbMF0pICsgbnVtX3JlYWQ7CisJCWxvZmZfdCBwb3MgPSBwYWdlX29mZnNldChhcC0+cGFnZXNbMF0pICsgbnVtX3JlYWQ7CiAJCWZ1c2VfcmVhZF91cGRhdGVfc2l6ZShpbm9kZSwgcG9zLCBhdHRyX3Zlcik7CiAJfQogfQogCiBzdGF0aWMgaW50IGZ1c2VfZG9fcmVhZHBhZ2Uoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlKQogewotCXN0cnVjdCBraW9jYiBpb2NiOwotCXN0cnVjdCBmdXNlX2lvX3ByaXYgaW87CiAJc3RydWN0IGlub2RlICppbm9kZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7CiAJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uKGlub2RlKTsKLQlzdHJ1Y3QgZnVzZV9yZXEgKnJlcTsKLQlzaXplX3QgbnVtX3JlYWQ7CiAJbG9mZl90IHBvcyA9IHBhZ2Vfb2Zmc2V0KHBhZ2UpOwotCXNpemVfdCBjb3VudCA9IFBBR0VfU0laRTsKKwlzdHJ1Y3QgZnVzZV9wYWdlX2Rlc2MgZGVzYyA9IHsgLmxlbmd0aCA9IFBBR0VfU0laRSB9OworCXN0cnVjdCBmdXNlX2lvX2FyZ3MgaWEgPSB7CisJCS5hcC5hcmdzLnBhZ2VfemVyb2luZyA9IHRydWUsCisJCS5hcC5hcmdzLm91dF9wYWdlcyA9IHRydWUsCisJCS5hcC5udW1fcGFnZXMgPSAxLAorCQkuYXAucGFnZXMgPSAmcGFnZSwKKwkJLmFwLmRlc2NzID0gJmRlc2MsCisJfTsKKwlzc2l6ZV90IHJlczsKIAl1NjQgYXR0cl92ZXI7Ci0JaW50IGVycjsKIAogCS8qCiAJICogUGFnZSB3cml0ZWJhY2sgY2FuIGV4dGVuZCBiZXlvbmQgdGhlIGxpZmV0aW1lIG9mIHRoZQpAQCAtNzQyLDM1ICs3OTUsMjEgQEAgc3RhdGljIGludCBmdXNlX2RvX3JlYWRwYWdlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAkgKi8KIAlmdXNlX3dhaXRfb25fcGFnZV93cml0ZWJhY2soaW5vZGUsIHBhZ2UtPmluZGV4KTsKIAotCXJlcSA9IGZ1c2VfZ2V0X3JlcShmYywgMSk7Ci0JaWYgKElTX0VSUihyZXEpKQotCQlyZXR1cm4gUFRSX0VSUihyZXEpOwotCiAJYXR0cl92ZXIgPSBmdXNlX2dldF9hdHRyX3ZlcnNpb24oZmMpOwogCi0JcmVxLT5vdXQucGFnZV96ZXJvaW5nID0gMTsKLQlyZXEtPm91dC5hcmdwYWdlcyA9IDE7Ci0JcmVxLT5udW1fcGFnZXMgPSAxOwotCXJlcS0+cGFnZXNbMF0gPSBwYWdlOwotCXJlcS0+cGFnZV9kZXNjc1swXS5sZW5ndGggPSBjb3VudDsKLQlpbml0X3N5bmNfa2lvY2IoJmlvY2IsIGZpbGUpOwotCWlvID0gKHN0cnVjdCBmdXNlX2lvX3ByaXYpIEZVU0VfSU9fUFJJVl9TWU5DKCZpb2NiKTsKLQludW1fcmVhZCA9IGZ1c2Vfc2VuZF9yZWFkKHJlcSwgJmlvLCBwb3MsIGNvdW50LCBOVUxMKTsKLQllcnIgPSByZXEtPm91dC5oLmVycm9yOworCWZ1c2VfcmVhZF9hcmdzX2ZpbGwoJmlhLCBmaWxlLCBwb3MsIGRlc2MubGVuZ3RoLCBGVVNFX1JFQUQpOworCXJlcyA9IGZ1c2Vfc2ltcGxlX3JlcXVlc3QoZmMsICZpYS5hcC5hcmdzKTsKKwlpZiAocmVzIDwgMCkKKwkJcmV0dXJuIHJlczsKKwkvKgorCSAqIFNob3J0IHJlYWQgbWVhbnMgRU9GLiAgSWYgZmlsZSBzaXplIGlzIGxhcmdlciwgdHJ1bmNhdGUgaXQKKwkgKi8KKwlpZiAocmVzIDwgZGVzYy5sZW5ndGgpCisJCWZ1c2Vfc2hvcnRfcmVhZChpbm9kZSwgYXR0cl92ZXIsIHJlcywgJmlhLmFwKTsKIAotCWlmICghZXJyKSB7Ci0JCS8qCi0JCSAqIFNob3J0IHJlYWQgbWVhbnMgRU9GLiAgSWYgZmlsZSBzaXplIGlzIGxhcmdlciwgdHJ1bmNhdGUgaXQKLQkJICovCi0JCWlmIChudW1fcmVhZCA8IGNvdW50KQotCQkJZnVzZV9zaG9ydF9yZWFkKHJlcSwgaW5vZGUsIGF0dHJfdmVyKTsKKwlTZXRQYWdlVXB0b2RhdGUocGFnZSk7CiAKLQkJU2V0UGFnZVVwdG9kYXRlKHBhZ2UpOwotCX0KLQotCWZ1c2VfcHV0X3JlcXVlc3QoZmMsIHJlcSk7Ci0KLQlyZXR1cm4gZXJyOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGZ1c2VfcmVhZHBhZ2Uoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlKQpAQCAtNzg5LDE1ICs4MjgsMTggQEAgc3RhdGljIGludCBmdXNlX3JlYWRwYWdlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBmdXNlX3JlYWRwYWdlc19lbmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQorc3RhdGljIHZvaWQgZnVzZV9yZWFkcGFnZXNfZW5kKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9hcmdzICphcmdzLAorCQkJICAgICAgIGludCBlcnIpCiB7CiAJaW50IGk7Ci0Jc2l6ZV90IGNvdW50ID0gcmVxLT5taXNjLnJlYWQuaW4uc2l6ZTsKLQlzaXplX3QgbnVtX3JlYWQgPSByZXEtPm91dC5hcmdzWzBdLnNpemU7CisJc3RydWN0IGZ1c2VfaW9fYXJncyAqaWEgPSBjb250YWluZXJfb2YoYXJncywgdHlwZW9mKCppYSksIGFwLmFyZ3MpOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwID0gJmlhLT5hcDsKKwlzaXplX3QgY291bnQgPSBpYS0+cmVhZC5pbi5zaXplOworCXNpemVfdCBudW1fcmVhZCA9IGFyZ3MtPm91dF9hcmdzWzBdLnNpemU7CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBOVUxMOwogCi0JZm9yIChpID0gMDsgbWFwcGluZyA9PSBOVUxMICYmIGkgPCByZXEtPm51bV9wYWdlczsgaSsrKQotCQltYXBwaW5nID0gcmVxLT5wYWdlc1tpXS0+bWFwcGluZzsKKwlmb3IgKGkgPSAwOyBtYXBwaW5nID09IE5VTEwgJiYgaSA8IGFwLT5udW1fcGFnZXM7IGkrKykKKwkJbWFwcGluZyA9IGFwLT5wYWdlc1tpXS0+bWFwcGluZzsKIAogCWlmIChtYXBwaW5nKSB7CiAJCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OwpAQCAtODA1LDkzICs4NDcsOTcgQEAgc3RhdGljIHZvaWQgZnVzZV9yZWFkcGFnZXNfZW5kKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKIAkJLyoKIAkJICogU2hvcnQgcmVhZCBtZWFucyBFT0YuIElmIGZpbGUgc2l6ZSBpcyBsYXJnZXIsIHRydW5jYXRlIGl0CiAJCSAqLwotCQlpZiAoIXJlcS0+b3V0LmguZXJyb3IgJiYgbnVtX3JlYWQgPCBjb3VudCkKLQkJCWZ1c2Vfc2hvcnRfcmVhZChyZXEsIGlub2RlLCByZXEtPm1pc2MucmVhZC5hdHRyX3Zlcik7CisJCWlmICghZXJyICYmIG51bV9yZWFkIDwgY291bnQpCisJCQlmdXNlX3Nob3J0X3JlYWQoaW5vZGUsIGlhLT5yZWFkLmF0dHJfdmVyLCBudW1fcmVhZCwgYXApOwogCiAJCWZ1c2VfaW52YWxpZGF0ZV9hdGltZShpbm9kZSk7CiAJfQogCi0JZm9yIChpID0gMDsgaSA8IHJlcS0+bnVtX3BhZ2VzOyBpKyspIHsKLQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSByZXEtPnBhZ2VzW2ldOwotCQlpZiAoIXJlcS0+b3V0LmguZXJyb3IpCisJZm9yIChpID0gMDsgaSA8IGFwLT5udW1fcGFnZXM7IGkrKykgeworCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGFwLT5wYWdlc1tpXTsKKworCQlpZiAoIWVycikKIAkJCVNldFBhZ2VVcHRvZGF0ZShwYWdlKTsKIAkJZWxzZQogCQkJU2V0UGFnZUVycm9yKHBhZ2UpOwogCQl1bmxvY2tfcGFnZShwYWdlKTsKIAkJcHV0X3BhZ2UocGFnZSk7CiAJfQotCWlmIChyZXEtPmZmKQotCQlmdXNlX2ZpbGVfcHV0KHJlcS0+ZmYsIGZhbHNlLCBmYWxzZSk7CisJaWYgKGlhLT5mZikKKwkJZnVzZV9maWxlX3B1dChpYS0+ZmYsIGZhbHNlLCBmYWxzZSk7CisKKwlmdXNlX2lvX2ZyZWUoaWEpOwogfQogCi1zdGF0aWMgdm9pZCBmdXNlX3NlbmRfcmVhZHBhZ2VzKHN0cnVjdCBmdXNlX3JlcSAqcmVxLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3N0YXRpYyB2b2lkIGZ1c2Vfc2VuZF9yZWFkcGFnZXMoc3RydWN0IGZ1c2VfaW9fYXJncyAqaWEsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCXN0cnVjdCBmdXNlX2ZpbGUgKmZmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZmYtPmZjOwotCWxvZmZfdCBwb3MgPSBwYWdlX29mZnNldChyZXEtPnBhZ2VzWzBdKTsKLQlzaXplX3QgY291bnQgPSByZXEtPm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwID0gJmlhLT5hcDsKKwlsb2ZmX3QgcG9zID0gcGFnZV9vZmZzZXQoYXAtPnBhZ2VzWzBdKTsKKwlzaXplX3QgY291bnQgPSBhcC0+bnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQ7CisJaW50IGVycjsKIAotCXJlcS0+b3V0LmFyZ3BhZ2VzID0gMTsKLQlyZXEtPm91dC5wYWdlX3plcm9pbmcgPSAxOwotCXJlcS0+b3V0LnBhZ2VfcmVwbGFjZSA9IDE7Ci0JZnVzZV9yZWFkX2ZpbGwocmVxLCBmaWxlLCBwb3MsIGNvdW50LCBGVVNFX1JFQUQpOwotCXJlcS0+bWlzYy5yZWFkLmF0dHJfdmVyID0gZnVzZV9nZXRfYXR0cl92ZXJzaW9uKGZjKTsKKwlhcC0+YXJncy5vdXRfcGFnZXMgPSB0cnVlOworCWFwLT5hcmdzLnBhZ2VfemVyb2luZyA9IHRydWU7CisJYXAtPmFyZ3MucGFnZV9yZXBsYWNlID0gdHJ1ZTsKKwlmdXNlX3JlYWRfYXJnc19maWxsKGlhLCBmaWxlLCBwb3MsIGNvdW50LCBGVVNFX1JFQUQpOworCWlhLT5yZWFkLmF0dHJfdmVyID0gZnVzZV9nZXRfYXR0cl92ZXJzaW9uKGZjKTsKIAlpZiAoZmMtPmFzeW5jX3JlYWQpIHsKLQkJcmVxLT5mZiA9IGZ1c2VfZmlsZV9nZXQoZmYpOwotCQlyZXEtPmVuZCA9IGZ1c2VfcmVhZHBhZ2VzX2VuZDsKLQkJZnVzZV9yZXF1ZXN0X3NlbmRfYmFja2dyb3VuZChmYywgcmVxKTsKKwkJaWEtPmZmID0gZnVzZV9maWxlX2dldChmZik7CisJCWFwLT5hcmdzLmVuZCA9IGZ1c2VfcmVhZHBhZ2VzX2VuZDsKKwkJZXJyID0gZnVzZV9zaW1wbGVfYmFja2dyb3VuZChmYywgJmFwLT5hcmdzLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFlcnIpCisJCQlyZXR1cm47CiAJfSBlbHNlIHsKLQkJZnVzZV9yZXF1ZXN0X3NlbmQoZmMsIHJlcSk7Ci0JCWZ1c2VfcmVhZHBhZ2VzX2VuZChmYywgcmVxKTsKLQkJZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKKwkJZXJyID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFwLT5hcmdzKTsKIAl9CisJZnVzZV9yZWFkcGFnZXNfZW5kKGZjLCAmYXAtPmFyZ3MsIGVycik7CiB9CiAKIHN0cnVjdCBmdXNlX2ZpbGxfZGF0YSB7Ci0Jc3RydWN0IGZ1c2VfcmVxICpyZXE7CisJc3RydWN0IGZ1c2VfaW9fYXJncyAqaWE7CiAJc3RydWN0IGZpbGUgKmZpbGU7CiAJc3RydWN0IGlub2RlICppbm9kZTsKLQl1bnNpZ25lZCBucl9wYWdlczsKKwl1bnNpZ25lZCBpbnQgbnJfcGFnZXM7CisJdW5zaWduZWQgaW50IG1heF9wYWdlczsKIH07CiAKIHN0YXRpYyBpbnQgZnVzZV9yZWFkcGFnZXNfZmlsbCh2b2lkICpfZGF0YSwgc3RydWN0IHBhZ2UgKnBhZ2UpCiB7CiAJc3RydWN0IGZ1c2VfZmlsbF9kYXRhICpkYXRhID0gX2RhdGE7Ci0Jc3RydWN0IGZ1c2VfcmVxICpyZXEgPSBkYXRhLT5yZXE7CisJc3RydWN0IGZ1c2VfaW9fYXJncyAqaWEgPSBkYXRhLT5pYTsKKwlzdHJ1Y3QgZnVzZV9hcmdzX3BhZ2VzICphcCA9ICZpYS0+YXA7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRhdGEtPmlub2RlOwogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZ2V0X2Z1c2VfY29ubihpbm9kZSk7CiAKIAlmdXNlX3dhaXRfb25fcGFnZV93cml0ZWJhY2soaW5vZGUsIHBhZ2UtPmluZGV4KTsKIAotCWlmIChyZXEtPm51bV9wYWdlcyAmJgotCSAgICAocmVxLT5udW1fcGFnZXMgPT0gZmMtPm1heF9wYWdlcyB8fAotCSAgICAgKHJlcS0+bnVtX3BhZ2VzICsgMSkgKiBQQUdFX1NJWkUgPiBmYy0+bWF4X3JlYWQgfHwKLQkgICAgIHJlcS0+cGFnZXNbcmVxLT5udW1fcGFnZXMgLSAxXS0+aW5kZXggKyAxICE9IHBhZ2UtPmluZGV4KSkgewotCQl1bnNpZ25lZCBpbnQgbnJfYWxsb2MgPSBtaW5fdCh1bnNpZ25lZCBpbnQsIGRhdGEtPm5yX3BhZ2VzLAotCQkJCQkgICAgICBmYy0+bWF4X3BhZ2VzKTsKLQkJZnVzZV9zZW5kX3JlYWRwYWdlcyhyZXEsIGRhdGEtPmZpbGUpOwotCQlpZiAoZmMtPmFzeW5jX3JlYWQpCi0JCQlyZXEgPSBmdXNlX2dldF9yZXFfZm9yX2JhY2tncm91bmQoZmMsIG5yX2FsbG9jKTsKLQkJZWxzZQotCQkJcmVxID0gZnVzZV9nZXRfcmVxKGZjLCBucl9hbGxvYyk7Ci0KLQkJZGF0YS0+cmVxID0gcmVxOwotCQlpZiAoSVNfRVJSKHJlcSkpIHsKKwlpZiAoYXAtPm51bV9wYWdlcyAmJgorCSAgICAoYXAtPm51bV9wYWdlcyA9PSBmYy0+bWF4X3BhZ2VzIHx8CisJICAgICAoYXAtPm51bV9wYWdlcyArIDEpICogUEFHRV9TSVpFID4gZmMtPm1heF9yZWFkIHx8CisJICAgICBhcC0+cGFnZXNbYXAtPm51bV9wYWdlcyAtIDFdLT5pbmRleCArIDEgIT0gcGFnZS0+aW5kZXgpKSB7CisJCWRhdGEtPm1heF9wYWdlcyA9IG1pbl90KHVuc2lnbmVkIGludCwgZGF0YS0+bnJfcGFnZXMsCisJCQkJCWZjLT5tYXhfcGFnZXMpOworCQlmdXNlX3NlbmRfcmVhZHBhZ2VzKGlhLCBkYXRhLT5maWxlKTsKKwkJZGF0YS0+aWEgPSBpYSA9IGZ1c2VfaW9fYWxsb2MoTlVMTCwgZGF0YS0+bWF4X3BhZ2VzKTsKKwkJaWYgKCFpYSkgewogCQkJdW5sb2NrX3BhZ2UocGFnZSk7Ci0JCQlyZXR1cm4gUFRSX0VSUihyZXEpOworCQkJcmV0dXJuIC1FTk9NRU07CiAJCX0KKwkJYXAgPSAmaWEtPmFwOwogCX0KIAotCWlmIChXQVJOX09OKHJlcS0+bnVtX3BhZ2VzID49IHJlcS0+bWF4X3BhZ2VzKSkgeworCWlmIChXQVJOX09OKGFwLT5udW1fcGFnZXMgPj0gZGF0YS0+bWF4X3BhZ2VzKSkgewogCQl1bmxvY2tfcGFnZShwYWdlKTsKLQkJZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKKwkJZnVzZV9pb19mcmVlKGlhKTsKIAkJcmV0dXJuIC1FSU87CiAJfQogCiAJZ2V0X3BhZ2UocGFnZSk7Ci0JcmVxLT5wYWdlc1tyZXEtPm51bV9wYWdlc10gPSBwYWdlOwotCXJlcS0+cGFnZV9kZXNjc1tyZXEtPm51bV9wYWdlc10ubGVuZ3RoID0gUEFHRV9TSVpFOwotCXJlcS0+bnVtX3BhZ2VzKys7CisJYXAtPnBhZ2VzW2FwLT5udW1fcGFnZXNdID0gcGFnZTsKKwlhcC0+ZGVzY3NbYXAtPm51bV9wYWdlc10ubGVuZ3RoID0gUEFHRV9TSVpFOworCWFwLT5udW1fcGFnZXMrKzsKIAlkYXRhLT5ucl9wYWdlcy0tOwogCXJldHVybiAwOwogfQpAQCAtOTAzLDcgKzk0OSw2IEBAIHN0YXRpYyBpbnQgZnVzZV9yZWFkcGFnZXMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZ2V0X2Z1c2VfY29ubihpbm9kZSk7CiAJc3RydWN0IGZ1c2VfZmlsbF9kYXRhIGRhdGE7CiAJaW50IGVycjsKLQl1bnNpZ25lZCBpbnQgbnJfYWxsb2MgPSBtaW5fdCh1bnNpZ25lZCBpbnQsIG5yX3BhZ2VzLCBmYy0+bWF4X3BhZ2VzKTsKIAogCWVyciA9IC1FSU87CiAJaWYgKGlzX2JhZF9pbm9kZShpbm9kZSkpCkBAIC05MTEsMjEgKzk1NiwyMCBAQCBzdGF0aWMgaW50IGZ1c2VfcmVhZHBhZ2VzKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAogCWRhdGEuZmlsZSA9IGZpbGU7CiAJZGF0YS5pbm9kZSA9IGlub2RlOwotCWlmIChmYy0+YXN5bmNfcmVhZCkKLQkJZGF0YS5yZXEgPSBmdXNlX2dldF9yZXFfZm9yX2JhY2tncm91bmQoZmMsIG5yX2FsbG9jKTsKLQllbHNlCi0JCWRhdGEucmVxID0gZnVzZV9nZXRfcmVxKGZjLCBucl9hbGxvYyk7CiAJZGF0YS5ucl9wYWdlcyA9IG5yX3BhZ2VzOwotCWVyciA9IFBUUl9FUlIoZGF0YS5yZXEpOwotCWlmIChJU19FUlIoZGF0YS5yZXEpKQorCWRhdGEubWF4X3BhZ2VzID0gbWluX3QodW5zaWduZWQgaW50LCBucl9wYWdlcywgZmMtPm1heF9wYWdlcyk7Cis7CisJZGF0YS5pYSA9IGZ1c2VfaW9fYWxsb2MoTlVMTCwgZGF0YS5tYXhfcGFnZXMpOworCWVyciA9IC1FTk9NRU07CisJaWYgKCFkYXRhLmlhKQogCQlnb3RvIG91dDsKIAogCWVyciA9IHJlYWRfY2FjaGVfcGFnZXMobWFwcGluZywgcGFnZXMsIGZ1c2VfcmVhZHBhZ2VzX2ZpbGwsICZkYXRhKTsKIAlpZiAoIWVycikgewotCQlpZiAoZGF0YS5yZXEtPm51bV9wYWdlcykKLQkJCWZ1c2Vfc2VuZF9yZWFkcGFnZXMoZGF0YS5yZXEsIGZpbGUpOworCQlpZiAoZGF0YS5pYS0+YXAubnVtX3BhZ2VzKQorCQkJZnVzZV9zZW5kX3JlYWRwYWdlcyhkYXRhLmlhLCBmaWxlKTsKIAkJZWxzZQotCQkJZnVzZV9wdXRfcmVxdWVzdChmYywgZGF0YS5yZXEpOworCQkJZnVzZV9pb19mcmVlKGRhdGEuaWEpOwogCX0KIG91dDoKIAlyZXR1cm4gZXJyOwpAQCAtOTUyLDU0ICs5OTYsNjUgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9jYWNoZV9yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKQogCXJldHVybiBnZW5lcmljX2ZpbGVfcmVhZF9pdGVyKGlvY2IsIHRvKTsKIH0KIAotc3RhdGljIHZvaWQgZnVzZV93cml0ZV9maWxsKHN0cnVjdCBmdXNlX3JlcSAqcmVxLCBzdHJ1Y3QgZnVzZV9maWxlICpmZiwKLQkJCSAgICBsb2ZmX3QgcG9zLCBzaXplX3QgY291bnQpCitzdGF0aWMgdm9pZCBmdXNlX3dyaXRlX2FyZ3NfZmlsbChzdHJ1Y3QgZnVzZV9pb19hcmdzICppYSwgc3RydWN0IGZ1c2VfZmlsZSAqZmYsCisJCQkJIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCkKIHsKLQlzdHJ1Y3QgZnVzZV93cml0ZV9pbiAqaW5hcmcgPSAmcmVxLT5taXNjLndyaXRlLmluOwotCXN0cnVjdCBmdXNlX3dyaXRlX291dCAqb3V0YXJnID0gJnJlcS0+bWlzYy53cml0ZS5vdXQ7CisJc3RydWN0IGZ1c2VfYXJncyAqYXJncyA9ICZpYS0+YXAuYXJnczsKIAotCWluYXJnLT5maCA9IGZmLT5maDsKLQlpbmFyZy0+b2Zmc2V0ID0gcG9zOwotCWluYXJnLT5zaXplID0gY291bnQ7Ci0JcmVxLT5pbi5oLm9wY29kZSA9IEZVU0VfV1JJVEU7Ci0JcmVxLT5pbi5oLm5vZGVpZCA9IGZmLT5ub2RlaWQ7Ci0JcmVxLT5pbi5udW1hcmdzID0gMjsKKwlpYS0+d3JpdGUuaW4uZmggPSBmZi0+Zmg7CisJaWEtPndyaXRlLmluLm9mZnNldCA9IHBvczsKKwlpYS0+d3JpdGUuaW4uc2l6ZSA9IGNvdW50OworCWFyZ3MtPm9wY29kZSA9IEZVU0VfV1JJVEU7CisJYXJncy0+bm9kZWlkID0gZmYtPm5vZGVpZDsKKwlhcmdzLT5pbl9udW1hcmdzID0gMjsKIAlpZiAoZmYtPmZjLT5taW5vciA8IDkpCi0JCXJlcS0+aW4uYXJnc1swXS5zaXplID0gRlVTRV9DT01QQVRfV1JJVEVfSU5fU0laRTsKKwkJYXJncy0+aW5fYXJnc1swXS5zaXplID0gRlVTRV9DT01QQVRfV1JJVEVfSU5fU0laRTsKIAllbHNlCi0JCXJlcS0+aW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKHN0cnVjdCBmdXNlX3dyaXRlX2luKTsKLQlyZXEtPmluLmFyZ3NbMF0udmFsdWUgPSBpbmFyZzsKLQlyZXEtPmluLmFyZ3NbMV0uc2l6ZSA9IGNvdW50OwotCXJlcS0+b3V0Lm51bWFyZ3MgPSAxOwotCXJlcS0+b3V0LmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZnVzZV93cml0ZV9vdXQpOwotCXJlcS0+b3V0LmFyZ3NbMF0udmFsdWUgPSBvdXRhcmc7CisJCWFyZ3MtPmluX2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihpYS0+d3JpdGUuaW4pOworCWFyZ3MtPmluX2FyZ3NbMF0udmFsdWUgPSAmaWEtPndyaXRlLmluOworCWFyZ3MtPmluX2FyZ3NbMV0uc2l6ZSA9IGNvdW50OworCWFyZ3MtPm91dF9udW1hcmdzID0gMTsKKwlhcmdzLT5vdXRfYXJnc1swXS5zaXplID0gc2l6ZW9mKGlhLT53cml0ZS5vdXQpOworCWFyZ3MtPm91dF9hcmdzWzBdLnZhbHVlID0gJmlhLT53cml0ZS5vdXQ7CiB9CiAKLXN0YXRpYyBzaXplX3QgZnVzZV9zZW5kX3dyaXRlKHN0cnVjdCBmdXNlX3JlcSAqcmVxLCBzdHJ1Y3QgZnVzZV9pb19wcml2ICppbywKLQkJCSAgICAgIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCwgZmxfb3duZXJfdCBvd25lcikKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZnVzZV93cml0ZV9mbGFncyhzdHJ1Y3Qga2lvY2IgKmlvY2IpCiB7Ci0Jc3RydWN0IGtpb2NiICppb2NiID0gaW8tPmlvY2I7CisJdW5zaWduZWQgaW50IGZsYWdzID0gaW9jYi0+a2lfZmlscC0+Zl9mbGFnczsKKworCWlmIChpb2NiLT5raV9mbGFncyAmIElPQ0JfRFNZTkMpCisJCWZsYWdzIHw9IE9fRFNZTkM7CisJaWYgKGlvY2ItPmtpX2ZsYWdzICYgSU9DQl9TWU5DKQorCQlmbGFncyB8PSBPX1NZTkM7CisKKwlyZXR1cm4gZmxhZ3M7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGZ1c2Vfc2VuZF93cml0ZShzdHJ1Y3QgZnVzZV9pb19hcmdzICppYSwgbG9mZl90IHBvcywKKwkJCSAgICAgICBzaXplX3QgY291bnQsIGZsX293bmVyX3Qgb3duZXIpCit7CisJc3RydWN0IGtpb2NiICppb2NiID0gaWEtPmlvLT5pb2NiOwogCXN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsKIAlzdHJ1Y3QgZnVzZV9maWxlICpmZiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGZmLT5mYzsKLQlzdHJ1Y3QgZnVzZV93cml0ZV9pbiAqaW5hcmcgPSAmcmVxLT5taXNjLndyaXRlLmluOworCXN0cnVjdCBmdXNlX3dyaXRlX2luICppbmFyZyA9ICZpYS0+d3JpdGUuaW47CisJc3NpemVfdCBlcnI7CiAKLQlmdXNlX3dyaXRlX2ZpbGwocmVxLCBmZiwgcG9zLCBjb3VudCk7Ci0JaW5hcmctPmZsYWdzID0gZmlsZS0+Zl9mbGFnczsKLQlpZiAoaW9jYi0+a2lfZmxhZ3MgJiBJT0NCX0RTWU5DKQotCQlpbmFyZy0+ZmxhZ3MgfD0gT19EU1lOQzsKLQlpZiAoaW9jYi0+a2lfZmxhZ3MgJiBJT0NCX1NZTkMpCi0JCWluYXJnLT5mbGFncyB8PSBPX1NZTkM7CisJZnVzZV93cml0ZV9hcmdzX2ZpbGwoaWEsIGZmLCBwb3MsIGNvdW50KTsKKwlpbmFyZy0+ZmxhZ3MgPSBmdXNlX3dyaXRlX2ZsYWdzKGlvY2IpOwogCWlmIChvd25lciAhPSBOVUxMKSB7CiAJCWluYXJnLT53cml0ZV9mbGFncyB8PSBGVVNFX1dSSVRFX0xPQ0tPV05FUjsKIAkJaW5hcmctPmxvY2tfb3duZXIgPSBmdXNlX2xvY2tfb3duZXJfaWQoZmMsIG93bmVyKTsKIAl9CiAKLQlpZiAoaW8tPmFzeW5jKQotCQlyZXR1cm4gZnVzZV9hc3luY19yZXFfc2VuZChmYywgcmVxLCBjb3VudCwgaW8pOworCWlmIChpYS0+aW8tPmFzeW5jKQorCQlyZXR1cm4gZnVzZV9hc3luY19yZXFfc2VuZChmYywgaWEsIGNvdW50KTsKIAotCWZ1c2VfcmVxdWVzdF9zZW5kKGZjLCByZXEpOwotCXJldHVybiByZXEtPm1pc2Mud3JpdGUub3V0LnNpemU7CisJZXJyID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmlhLT5hcC5hcmdzKTsKKwlpZiAoIWVyciAmJiBpYS0+d3JpdGUub3V0LnNpemUgPiBjb3VudCkKKwkJZXJyID0gLUVJTzsKKworCXJldHVybiBlcnIgPzogaWEtPndyaXRlLm91dC5zaXplOwogfQogCiBib29sIGZ1c2Vfd3JpdGVfdXBkYXRlX3NpemUoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IHBvcykKQEAgLTEwMTksMjYgKzEwNzQsMzEgQEAgYm9vbCBmdXNlX3dyaXRlX3VwZGF0ZV9zaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBwb3MpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHNpemVfdCBmdXNlX3NlbmRfd3JpdGVfcGFnZXMoc3RydWN0IGZ1c2VfcmVxICpyZXEsIHN0cnVjdCBraW9jYiAqaW9jYiwKLQkJCQkgICAgc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IHBvcywKLQkJCQkgICAgc2l6ZV90IGNvdW50KQorc3RhdGljIHNzaXplX3QgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLAorCQkJCSAgICAgc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJCSAgICAgbG9mZl90IHBvcywgc2l6ZV90IGNvdW50KQogewotCXNpemVfdCByZXM7Ci0JdW5zaWduZWQgb2Zmc2V0OwotCXVuc2lnbmVkIGk7Ci0Jc3RydWN0IGZ1c2VfaW9fcHJpdiBpbyA9IEZVU0VfSU9fUFJJVl9TWU5DKGlvY2IpOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwID0gJmlhLT5hcDsKKwlzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7CisJc3RydWN0IGZ1c2VfZmlsZSAqZmYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBmZi0+ZmM7CisJdW5zaWduZWQgaW50IG9mZnNldCwgaTsKKwlpbnQgZXJyOwogCi0JZm9yIChpID0gMDsgaSA8IHJlcS0+bnVtX3BhZ2VzOyBpKyspCi0JCWZ1c2Vfd2FpdF9vbl9wYWdlX3dyaXRlYmFjayhpbm9kZSwgcmVxLT5wYWdlc1tpXS0+aW5kZXgpOworCWZvciAoaSA9IDA7IGkgPCBhcC0+bnVtX3BhZ2VzOyBpKyspCisJCWZ1c2Vfd2FpdF9vbl9wYWdlX3dyaXRlYmFjayhpbm9kZSwgYXAtPnBhZ2VzW2ldLT5pbmRleCk7CiAKLQlyZXMgPSBmdXNlX3NlbmRfd3JpdGUocmVxLCAmaW8sIHBvcywgY291bnQsIE5VTEwpOworCWZ1c2Vfd3JpdGVfYXJnc19maWxsKGlhLCBmZiwgcG9zLCBjb3VudCk7CisJaWEtPndyaXRlLmluLmZsYWdzID0gZnVzZV93cml0ZV9mbGFncyhpb2NiKTsKIAotCW9mZnNldCA9IHJlcS0+cGFnZV9kZXNjc1swXS5vZmZzZXQ7Ci0JY291bnQgPSByZXM7Ci0JZm9yIChpID0gMDsgaSA8IHJlcS0+bnVtX3BhZ2VzOyBpKyspIHsKLQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSByZXEtPnBhZ2VzW2ldOworCWVyciA9IGZ1c2Vfc2ltcGxlX3JlcXVlc3QoZmMsICZhcC0+YXJncyk7CiAKLQkJaWYgKCFyZXEtPm91dC5oLmVycm9yICYmICFvZmZzZXQgJiYgY291bnQgPj0gUEFHRV9TSVpFKQorCW9mZnNldCA9IGFwLT5kZXNjc1swXS5vZmZzZXQ7CisJY291bnQgPSBpYS0+d3JpdGUub3V0LnNpemU7CisJZm9yIChpID0gMDsgaSA8IGFwLT5udW1fcGFnZXM7IGkrKykgeworCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGFwLT5wYWdlc1tpXTsKKworCQlpZiAoIWVyciAmJiAhb2Zmc2V0ICYmIGNvdW50ID49IFBBR0VfU0laRSkKIAkJCVNldFBhZ2VVcHRvZGF0ZShwYWdlKTsKIAogCQlpZiAoY291bnQgPiBQQUdFX1NJWkUgLSBvZmZzZXQpCkBAIC0xMDUxLDIwICsxMTExLDIxIEBAIHN0YXRpYyBzaXplX3QgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX3JlcSAqcmVxLCBzdHJ1Y3Qga2lvY2IgKmlvY2IsCiAJCXB1dF9wYWdlKHBhZ2UpOwogCX0KIAotCXJldHVybiByZXM7CisJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHNzaXplX3QgZnVzZV9maWxsX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX3JlcSAqcmVxLAotCQkJICAgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAotCQkJICAgICAgIHN0cnVjdCBpb3ZfaXRlciAqaWksIGxvZmZfdCBwb3MpCitzdGF0aWMgc3NpemVfdCBmdXNlX2ZpbGxfd3JpdGVfcGFnZXMoc3RydWN0IGZ1c2VfYXJnc19wYWdlcyAqYXAsCisJCQkJICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKKwkJCQkgICAgIHN0cnVjdCBpb3ZfaXRlciAqaWksIGxvZmZfdCBwb3MsCisJCQkJICAgICB1bnNpZ25lZCBpbnQgbWF4X3BhZ2VzKQogewogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZ2V0X2Z1c2VfY29ubihtYXBwaW5nLT5ob3N0KTsKIAl1bnNpZ25lZCBvZmZzZXQgPSBwb3MgJiAoUEFHRV9TSVpFIC0gMSk7CiAJc2l6ZV90IGNvdW50ID0gMDsKIAlpbnQgZXJyOwogCi0JcmVxLT5pbi5hcmdwYWdlcyA9IDE7Ci0JcmVxLT5wYWdlX2Rlc2NzWzBdLm9mZnNldCA9IG9mZnNldDsKKwlhcC0+YXJncy5pbl9wYWdlcyA9IHRydWU7CisJYXAtPmRlc2NzWzBdLm9mZnNldCA9IG9mZnNldDsKIAogCWRvIHsKIAkJc2l6ZV90IHRtcDsKQEAgLTExMDAsOSArMTE2MSw5IEBAIHN0YXRpYyBzc2l6ZV90IGZ1c2VfZmlsbF93cml0ZV9wYWdlcyhzdHJ1Y3QgZnVzZV9yZXEgKnJlcSwKIAkJfQogCiAJCWVyciA9IDA7Ci0JCXJlcS0+cGFnZXNbcmVxLT5udW1fcGFnZXNdID0gcGFnZTsKLQkJcmVxLT5wYWdlX2Rlc2NzW3JlcS0+bnVtX3BhZ2VzXS5sZW5ndGggPSB0bXA7Ci0JCXJlcS0+bnVtX3BhZ2VzKys7CisJCWFwLT5wYWdlc1thcC0+bnVtX3BhZ2VzXSA9IHBhZ2U7CisJCWFwLT5kZXNjc1thcC0+bnVtX3BhZ2VzXS5sZW5ndGggPSB0bXA7CisJCWFwLT5udW1fcGFnZXMrKzsKIAogCQljb3VudCArPSB0bXA7CiAJCXBvcyArPSB0bXA7CkBAIC0xMTEzLDcgKzExNzQsNyBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX2ZpbGxfd3JpdGVfcGFnZXMoc3RydWN0IGZ1c2VfcmVxICpyZXEsCiAJCWlmICghZmMtPmJpZ193cml0ZXMpCiAJCQlicmVhazsKIAl9IHdoaWxlIChpb3ZfaXRlcl9jb3VudChpaSkgJiYgY291bnQgPCBmYy0+bWF4X3dyaXRlICYmCi0JCSByZXEtPm51bV9wYWdlcyA8IHJlcS0+bWF4X3BhZ2VzICYmIG9mZnNldCA9PSAwKTsKKwkJIGFwLT5udW1fcGFnZXMgPCBtYXhfcGFnZXMgJiYgb2Zmc2V0ID09IDApOwogCiAJcmV0dXJuIGNvdW50ID4gMCA/IGNvdW50IDogZXJyOwogfQpAQCAtMTE0MSwyNyArMTIwMiwyNyBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX3BlcmZvcm1fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLAogCQlzZXRfYml0KEZVU0VfSV9TSVpFX1VOU1RBQkxFLCAmZmktPnN0YXRlKTsKIAogCWRvIHsKLQkJc3RydWN0IGZ1c2VfcmVxICpyZXE7CiAJCXNzaXplX3QgY291bnQ7CisJCXN0cnVjdCBmdXNlX2lvX2FyZ3MgaWEgPSB7fTsKKwkJc3RydWN0IGZ1c2VfYXJnc19wYWdlcyAqYXAgPSAmaWEuYXA7CiAJCXVuc2lnbmVkIGludCBucl9wYWdlcyA9IGZ1c2Vfd3JfcGFnZXMocG9zLCBpb3ZfaXRlcl9jb3VudChpaSksCiAJCQkJCQkgICAgICBmYy0+bWF4X3BhZ2VzKTsKIAotCQlyZXEgPSBmdXNlX2dldF9yZXEoZmMsIG5yX3BhZ2VzKTsKLQkJaWYgKElTX0VSUihyZXEpKSB7Ci0JCQllcnIgPSBQVFJfRVJSKHJlcSk7CisJCWFwLT5wYWdlcyA9IGZ1c2VfcGFnZXNfYWxsb2MobnJfcGFnZXMsIEdGUF9LRVJORUwsICZhcC0+ZGVzY3MpOworCQlpZiAoIWFwLT5wYWdlcykgeworCQkJZXJyID0gLUVOT01FTTsKIAkJCWJyZWFrOwogCQl9CiAKLQkJY291bnQgPSBmdXNlX2ZpbGxfd3JpdGVfcGFnZXMocmVxLCBtYXBwaW5nLCBpaSwgcG9zKTsKKwkJY291bnQgPSBmdXNlX2ZpbGxfd3JpdGVfcGFnZXMoYXAsIG1hcHBpbmcsIGlpLCBwb3MsIG5yX3BhZ2VzKTsKIAkJaWYgKGNvdW50IDw9IDApIHsKIAkJCWVyciA9IGNvdW50OwogCQl9IGVsc2UgewotCQkJc2l6ZV90IG51bV93cml0dGVuOwotCi0JCQludW1fd3JpdHRlbiA9IGZ1c2Vfc2VuZF93cml0ZV9wYWdlcyhyZXEsIGlvY2IsIGlub2RlLAotCQkJCQkJCSAgICBwb3MsIGNvdW50KTsKLQkJCWVyciA9IHJlcS0+b3V0LmguZXJyb3I7CisJCQllcnIgPSBmdXNlX3NlbmRfd3JpdGVfcGFnZXMoJmlhLCBpb2NiLCBpbm9kZSwKKwkJCQkJCSAgICBwb3MsIGNvdW50KTsKIAkJCWlmICghZXJyKSB7CisJCQkJc2l6ZV90IG51bV93cml0dGVuID0gaWEud3JpdGUub3V0LnNpemU7CisKIAkJCQlyZXMgKz0gbnVtX3dyaXR0ZW47CiAJCQkJcG9zICs9IG51bV93cml0dGVuOwogCkBAIC0xMTcwLDcgKzEyMzEsNyBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX3BlcmZvcm1fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLAogCQkJCQllcnIgPSAtRUlPOwogCQkJfQogCQl9Ci0JCWZ1c2VfcHV0X3JlcXVlc3QoZmMsIHJlcSk7CisJCWtmcmVlKGFwLT5wYWdlcyk7CiAJfSB3aGlsZSAoIWVyciAmJiBpb3ZfaXRlcl9jb3VudChpaSkpOwogCiAJaWYgKHJlcyA+IDApCkBAIC0xMjU4LDE0ICsxMzE5LDE0IEBAIHN0YXRpYyBzc2l6ZV90IGZ1c2VfY2FjaGVfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkKIAlyZXR1cm4gd3JpdHRlbiA/IHdyaXR0ZW4gOiBlcnI7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBmdXNlX3BhZ2VfZGVzY3NfbGVuZ3RoX2luaXQoc3RydWN0IGZ1c2VfcmVxICpyZXEsCi0JCXVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBucl9wYWdlcykKK3N0YXRpYyBpbmxpbmUgdm9pZCBmdXNlX3BhZ2VfZGVzY3NfbGVuZ3RoX2luaXQoc3RydWN0IGZ1c2VfcGFnZV9kZXNjICpkZXNjcywKKwkJCQkJICAgICAgIHVuc2lnbmVkIGludCBpbmRleCwKKwkJCQkJICAgICAgIHVuc2lnbmVkIGludCBucl9wYWdlcykKIHsKIAlpbnQgaTsKIAogCWZvciAoaSA9IGluZGV4OyBpIDwgaW5kZXggKyBucl9wYWdlczsgaSsrKQotCQlyZXEtPnBhZ2VfZGVzY3NbaV0ubGVuZ3RoID0gUEFHRV9TSVpFIC0KLQkJCXJlcS0+cGFnZV9kZXNjc1tpXS5vZmZzZXQ7CisJCWRlc2NzW2ldLmxlbmd0aCA9IFBBR0VfU0laRSAtIGRlc2NzW2ldLm9mZnNldDsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGZ1c2VfZ2V0X3VzZXJfYWRkcihjb25zdCBzdHJ1Y3QgaW92X2l0ZXIgKmlpKQpAQCAtMTI3OSw4ICsxMzQwLDkgQEAgc3RhdGljIGlubGluZSBzaXplX3QgZnVzZV9nZXRfZnJhZ19zaXplKGNvbnN0IHN0cnVjdCBpb3ZfaXRlciAqaWksCiAJcmV0dXJuIG1pbihpb3ZfaXRlcl9zaW5nbGVfc2VnX2NvdW50KGlpKSwgbWF4X3NpemUpOwogfQogCi1zdGF0aWMgaW50IGZ1c2VfZ2V0X3VzZXJfcGFnZXMoc3RydWN0IGZ1c2VfcmVxICpyZXEsIHN0cnVjdCBpb3ZfaXRlciAqaWksCi0JCQkgICAgICAgc2l6ZV90ICpuYnl0ZXNwLCBpbnQgd3JpdGUpCitzdGF0aWMgaW50IGZ1c2VfZ2V0X3VzZXJfcGFnZXMoc3RydWN0IGZ1c2VfYXJnc19wYWdlcyAqYXAsIHN0cnVjdCBpb3ZfaXRlciAqaWksCisJCQkgICAgICAgc2l6ZV90ICpuYnl0ZXNwLCBpbnQgd3JpdGUsCisJCQkgICAgICAgdW5zaWduZWQgaW50IG1heF9wYWdlcykKIHsKIAlzaXplX3QgbmJ5dGVzID0gMDsgIC8qICMgYnl0ZXMgYWxyZWFkeSBwYWNrZWQgaW4gcmVxICovCiAJc3NpemVfdCByZXQgPSAwOwpAQCAtMTI5MSwyMSArMTM1MywyMSBAQCBzdGF0aWMgaW50IGZ1c2VfZ2V0X3VzZXJfcGFnZXMoc3RydWN0IGZ1c2VfcmVxICpyZXEsIHN0cnVjdCBpb3ZfaXRlciAqaWksCiAJCXNpemVfdCBmcmFnX3NpemUgPSBmdXNlX2dldF9mcmFnX3NpemUoaWksICpuYnl0ZXNwKTsKIAogCQlpZiAod3JpdGUpCi0JCQlyZXEtPmluLmFyZ3NbMV0udmFsdWUgPSAodm9pZCAqKSB1c2VyX2FkZHI7CisJCQlhcC0+YXJncy5pbl9hcmdzWzFdLnZhbHVlID0gKHZvaWQgKikgdXNlcl9hZGRyOwogCQllbHNlCi0JCQlyZXEtPm91dC5hcmdzWzBdLnZhbHVlID0gKHZvaWQgKikgdXNlcl9hZGRyOworCQkJYXAtPmFyZ3Mub3V0X2FyZ3NbMF0udmFsdWUgPSAodm9pZCAqKSB1c2VyX2FkZHI7CiAKIAkJaW92X2l0ZXJfYWR2YW5jZShpaSwgZnJhZ19zaXplKTsKIAkJKm5ieXRlc3AgPSBmcmFnX3NpemU7CiAJCXJldHVybiAwOwogCX0KIAotCXdoaWxlIChuYnl0ZXMgPCAqbmJ5dGVzcCAmJiByZXEtPm51bV9wYWdlcyA8IHJlcS0+bWF4X3BhZ2VzKSB7CisJd2hpbGUgKG5ieXRlcyA8ICpuYnl0ZXNwICYmIGFwLT5udW1fcGFnZXMgPCBtYXhfcGFnZXMpIHsKIAkJdW5zaWduZWQgbnBhZ2VzOwogCQlzaXplX3Qgc3RhcnQ7Ci0JCXJldCA9IGlvdl9pdGVyX2dldF9wYWdlcyhpaSwgJnJlcS0+cGFnZXNbcmVxLT5udW1fcGFnZXNdLAorCQlyZXQgPSBpb3ZfaXRlcl9nZXRfcGFnZXMoaWksICZhcC0+cGFnZXNbYXAtPm51bV9wYWdlc10sCiAJCQkJCSpuYnl0ZXNwIC0gbmJ5dGVzLAotCQkJCQlyZXEtPm1heF9wYWdlcyAtIHJlcS0+bnVtX3BhZ2VzLAorCQkJCQltYXhfcGFnZXMgLSBhcC0+bnVtX3BhZ2VzLAogCQkJCQkmc3RhcnQpOwogCQlpZiAocmV0IDwgMCkKIAkJCWJyZWFrOwpAQCAtMTMxNiwxOCArMTM3OCwxOCBAQCBzdGF0aWMgaW50IGZ1c2VfZ2V0X3VzZXJfcGFnZXMoc3RydWN0IGZ1c2VfcmVxICpyZXEsIHN0cnVjdCBpb3ZfaXRlciAqaWksCiAJCXJldCArPSBzdGFydDsKIAkJbnBhZ2VzID0gKHJldCArIFBBR0VfU0laRSAtIDEpIC8gUEFHRV9TSVpFOwogCi0JCXJlcS0+cGFnZV9kZXNjc1tyZXEtPm51bV9wYWdlc10ub2Zmc2V0ID0gc3RhcnQ7Ci0JCWZ1c2VfcGFnZV9kZXNjc19sZW5ndGhfaW5pdChyZXEsIHJlcS0+bnVtX3BhZ2VzLCBucGFnZXMpOworCQlhcC0+ZGVzY3NbYXAtPm51bV9wYWdlc10ub2Zmc2V0ID0gc3RhcnQ7CisJCWZ1c2VfcGFnZV9kZXNjc19sZW5ndGhfaW5pdChhcC0+ZGVzY3MsIGFwLT5udW1fcGFnZXMsIG5wYWdlcyk7CiAKLQkJcmVxLT5udW1fcGFnZXMgKz0gbnBhZ2VzOwotCQlyZXEtPnBhZ2VfZGVzY3NbcmVxLT5udW1fcGFnZXMgLSAxXS5sZW5ndGggLT0KKwkJYXAtPm51bV9wYWdlcyArPSBucGFnZXM7CisJCWFwLT5kZXNjc1thcC0+bnVtX3BhZ2VzIC0gMV0ubGVuZ3RoIC09CiAJCQkoUEFHRV9TSVpFIC0gcmV0KSAmIChQQUdFX1NJWkUgLSAxKTsKIAl9CiAKIAlpZiAod3JpdGUpCi0JCXJlcS0+aW4uYXJncGFnZXMgPSAxOworCQlhcC0+YXJncy5pbl9wYWdlcyA9IDE7CiAJZWxzZQotCQlyZXEtPm91dC5hcmdwYWdlcyA9IDE7CisJCWFwLT5hcmdzLm91dF9wYWdlcyA9IDE7CiAKIAkqbmJ5dGVzcCA9IG5ieXRlczsKIApAQCAtMTM0OSwxNyArMTQxMSwxNiBAQCBzc2l6ZV90IGZ1c2VfZGlyZWN0X2lvKHN0cnVjdCBmdXNlX2lvX3ByaXYgKmlvLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCiAJcGdvZmZfdCBpZHhfZnJvbSA9IHBvcyA+PiBQQUdFX1NISUZUOwogCXBnb2ZmX3QgaWR4X3RvID0gKHBvcyArIGNvdW50IC0gMSkgPj4gUEFHRV9TSElGVDsKIAlzc2l6ZV90IHJlcyA9IDA7Ci0Jc3RydWN0IGZ1c2VfcmVxICpyZXE7CiAJaW50IGVyciA9IDA7CisJc3RydWN0IGZ1c2VfaW9fYXJncyAqaWE7CisJdW5zaWduZWQgaW50IG1heF9wYWdlczsKIAotCWlmIChpby0+YXN5bmMpCi0JCXJlcSA9IGZ1c2VfZ2V0X3JlcV9mb3JfYmFja2dyb3VuZChmYywgaW92X2l0ZXJfbnBhZ2VzKGl0ZXIsCi0JCQkJCQkJCWZjLT5tYXhfcGFnZXMpKTsKLQllbHNlCi0JCXJlcSA9IGZ1c2VfZ2V0X3JlcShmYywgaW92X2l0ZXJfbnBhZ2VzKGl0ZXIsIGZjLT5tYXhfcGFnZXMpKTsKLQlpZiAoSVNfRVJSKHJlcSkpCi0JCXJldHVybiBQVFJfRVJSKHJlcSk7CisJbWF4X3BhZ2VzID0gaW92X2l0ZXJfbnBhZ2VzKGl0ZXIsIGZjLT5tYXhfcGFnZXMpOworCWlhID0gZnVzZV9pb19hbGxvYyhpbywgbWF4X3BhZ2VzKTsKKwlpZiAoIWlhKQorCQlyZXR1cm4gLUVOT01FTTsKIAorCWlhLT5pbyA9IGlvOwogCWlmICghY3VzZSAmJiBmdXNlX3JhbmdlX2lzX3dyaXRlYmFjayhpbm9kZSwgaWR4X2Zyb20sIGlkeF90bykpIHsKIAkJaWYgKCF3cml0ZSkKIAkJCWlub2RlX2xvY2soaW5vZGUpOwpAQCAtMTM3MCw1NCArMTQzMSw0OSBAQCBzc2l6ZV90IGZ1c2VfZGlyZWN0X2lvKHN0cnVjdCBmdXNlX2lvX3ByaXYgKmlvLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCiAKIAlpby0+c2hvdWxkX2RpcnR5ID0gIXdyaXRlICYmIGl0ZXJfaXNfaW92ZWMoaXRlcik7CiAJd2hpbGUgKGNvdW50KSB7Ci0JCXNpemVfdCBucmVzOworCQlzc2l6ZV90IG5yZXM7CiAJCWZsX293bmVyX3Qgb3duZXIgPSBjdXJyZW50LT5maWxlczsKIAkJc2l6ZV90IG5ieXRlcyA9IG1pbihjb3VudCwgbm1heCk7Ci0JCWVyciA9IGZ1c2VfZ2V0X3VzZXJfcGFnZXMocmVxLCBpdGVyLCAmbmJ5dGVzLCB3cml0ZSk7CisKKwkJZXJyID0gZnVzZV9nZXRfdXNlcl9wYWdlcygmaWEtPmFwLCBpdGVyLCAmbmJ5dGVzLCB3cml0ZSwKKwkJCQkJICBtYXhfcGFnZXMpOwogCQlpZiAoZXJyICYmICFuYnl0ZXMpCiAJCQlicmVhazsKIAogCQlpZiAod3JpdGUpIHsKLQkJCWlmICghY2FwYWJsZShDQVBfRlNFVElEKSkgewotCQkJCXN0cnVjdCBmdXNlX3dyaXRlX2luICppbmFyZzsKKwkJCWlmICghY2FwYWJsZShDQVBfRlNFVElEKSkKKwkJCQlpYS0+d3JpdGUuaW4ud3JpdGVfZmxhZ3MgfD0gRlVTRV9XUklURV9LSUxMX1BSSVY7CiAKLQkJCQlpbmFyZyA9ICZyZXEtPm1pc2Mud3JpdGUuaW47Ci0JCQkJaW5hcmctPndyaXRlX2ZsYWdzIHw9IEZVU0VfV1JJVEVfS0lMTF9QUklWOwotCQkJfQotCQkJbnJlcyA9IGZ1c2Vfc2VuZF93cml0ZShyZXEsIGlvLCBwb3MsIG5ieXRlcywgb3duZXIpOworCQkJbnJlcyA9IGZ1c2Vfc2VuZF93cml0ZShpYSwgcG9zLCBuYnl0ZXMsIG93bmVyKTsKIAkJfSBlbHNlIHsKLQkJCW5yZXMgPSBmdXNlX3NlbmRfcmVhZChyZXEsIGlvLCBwb3MsIG5ieXRlcywgb3duZXIpOworCQkJbnJlcyA9IGZ1c2Vfc2VuZF9yZWFkKGlhLCBwb3MsIG5ieXRlcywgb3duZXIpOwogCQl9CiAKLQkJaWYgKCFpby0+YXN5bmMpCi0JCQlmdXNlX3JlbGVhc2VfdXNlcl9wYWdlcyhyZXEsIGlvLT5zaG91bGRfZGlydHkpOwotCQlpZiAocmVxLT5vdXQuaC5lcnJvcikgewotCQkJZXJyID0gcmVxLT5vdXQuaC5lcnJvcjsKLQkJCWJyZWFrOwotCQl9IGVsc2UgaWYgKG5yZXMgPiBuYnl0ZXMpIHsKLQkJCXJlcyA9IDA7Ci0JCQllcnIgPSAtRUlPOworCQlpZiAoIWlvLT5hc3luYyB8fCBucmVzIDwgMCkgeworCQkJZnVzZV9yZWxlYXNlX3VzZXJfcGFnZXMoJmlhLT5hcCwgaW8tPnNob3VsZF9kaXJ0eSk7CisJCQlmdXNlX2lvX2ZyZWUoaWEpOworCQl9CisJCWlhID0gTlVMTDsKKwkJaWYgKG5yZXMgPCAwKSB7CisJCQllcnIgPSBucmVzOwogCQkJYnJlYWs7CiAJCX0KKwkJV0FSTl9PTihucmVzID4gbmJ5dGVzKTsKKwogCQljb3VudCAtPSBucmVzOwogCQlyZXMgKz0gbnJlczsKIAkJcG9zICs9IG5yZXM7CiAJCWlmIChucmVzICE9IG5ieXRlcykKIAkJCWJyZWFrOwogCQlpZiAoY291bnQpIHsKLQkJCWZ1c2VfcHV0X3JlcXVlc3QoZmMsIHJlcSk7Ci0JCQlpZiAoaW8tPmFzeW5jKQotCQkJCXJlcSA9IGZ1c2VfZ2V0X3JlcV9mb3JfYmFja2dyb3VuZChmYywKLQkJCQkJaW92X2l0ZXJfbnBhZ2VzKGl0ZXIsIGZjLT5tYXhfcGFnZXMpKTsKLQkJCWVsc2UKLQkJCQlyZXEgPSBmdXNlX2dldF9yZXEoZmMsIGlvdl9pdGVyX25wYWdlcyhpdGVyLAotCQkJCQkJCQlmYy0+bWF4X3BhZ2VzKSk7Ci0JCQlpZiAoSVNfRVJSKHJlcSkpCisJCQltYXhfcGFnZXMgPSBpb3ZfaXRlcl9ucGFnZXMoaXRlciwgZmMtPm1heF9wYWdlcyk7CisJCQlpYSA9IGZ1c2VfaW9fYWxsb2MoaW8sIG1heF9wYWdlcyk7CisJCQlpZiAoIWlhKQogCQkJCWJyZWFrOwogCQl9CiAJfQotCWlmICghSVNfRVJSKHJlcSkpCi0JCWZ1c2VfcHV0X3JlcXVlc3QoZmMsIHJlcSk7CisJaWYgKGlhKQorCQlmdXNlX2lvX2ZyZWUoaWEpOwogCWlmIChyZXMgPiAwKQogCQkqcHBvcyA9IHBvczsKIApAQCAtMTUwOSw0NSArMTU2NSw1MyBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX2ZpbGVfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkKIAkJcmV0dXJuIGZ1c2VfZGlyZWN0X3dyaXRlX2l0ZXIoaW9jYiwgZnJvbSk7CiB9CiAKLXN0YXRpYyB2b2lkIGZ1c2Vfd3JpdGVwYWdlX2ZyZWUoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQorc3RhdGljIHZvaWQgZnVzZV93cml0ZXBhZ2VfZnJlZShzdHJ1Y3QgZnVzZV93cml0ZXBhZ2VfYXJncyAqd3BhKQogeworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwID0gJndwYS0+aWEuYXA7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgcmVxLT5udW1fcGFnZXM7IGkrKykKLQkJX19mcmVlX3BhZ2UocmVxLT5wYWdlc1tpXSk7CisJZm9yIChpID0gMDsgaSA8IGFwLT5udW1fcGFnZXM7IGkrKykKKwkJX19mcmVlX3BhZ2UoYXAtPnBhZ2VzW2ldKTsKIAotCWlmIChyZXEtPmZmKQotCQlmdXNlX2ZpbGVfcHV0KHJlcS0+ZmYsIGZhbHNlLCBmYWxzZSk7CisJaWYgKHdwYS0+aWEuZmYpCisJCWZ1c2VfZmlsZV9wdXQod3BhLT5pYS5mZiwgZmFsc2UsIGZhbHNlKTsKKworCWtmcmVlKGFwLT5wYWdlcyk7CisJa2ZyZWUod3BhKTsKIH0KIAotc3RhdGljIHZvaWQgZnVzZV93cml0ZXBhZ2VfZmluaXNoKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKK3N0YXRpYyB2b2lkIGZ1c2Vfd3JpdGVwYWdlX2ZpbmlzaChzdHJ1Y3QgZnVzZV9jb25uICpmYywKKwkJCQkgIHN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICp3cGEpCiB7Ci0Jc3RydWN0IGlub2RlICppbm9kZSA9IHJlcS0+aW5vZGU7CisJc3RydWN0IGZ1c2VfYXJnc19wYWdlcyAqYXAgPSAmd3BhLT5pYS5hcDsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gd3BhLT5pbm9kZTsKIAlzdHJ1Y3QgZnVzZV9pbm9kZSAqZmkgPSBnZXRfZnVzZV9pbm9kZShpbm9kZSk7CiAJc3RydWN0IGJhY2tpbmdfZGV2X2luZm8gKmJkaSA9IGlub2RlX3RvX2JkaShpbm9kZSk7CiAJaW50IGk7CiAKLQlsaXN0X2RlbCgmcmVxLT53cml0ZXBhZ2VzX2VudHJ5KTsKLQlmb3IgKGkgPSAwOyBpIDwgcmVxLT5udW1fcGFnZXM7IGkrKykgeworCWxpc3RfZGVsKCZ3cGEtPndyaXRlcGFnZXNfZW50cnkpOworCWZvciAoaSA9IDA7IGkgPCBhcC0+bnVtX3BhZ2VzOyBpKyspIHsKIAkJZGVjX3diX3N0YXQoJmJkaS0+d2IsIFdCX1dSSVRFQkFDSyk7Ci0JCWRlY19ub2RlX3BhZ2Vfc3RhdGUocmVxLT5wYWdlc1tpXSwgTlJfV1JJVEVCQUNLX1RFTVApOworCQlkZWNfbm9kZV9wYWdlX3N0YXRlKGFwLT5wYWdlc1tpXSwgTlJfV1JJVEVCQUNLX1RFTVApOwogCQl3Yl93cml0ZW91dF9pbmMoJmJkaS0+d2IpOwogCX0KIAl3YWtlX3VwKCZmaS0+cGFnZV93YWl0cSk7CiB9CiAKIC8qIENhbGxlZCB1bmRlciBmaS0+bG9jaywgbWF5IHJlbGVhc2UgYW5kIHJlYWNxdWlyZSBpdCAqLwotc3RhdGljIHZvaWQgZnVzZV9zZW5kX3dyaXRlcGFnZShzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEsCi0JCQkJbG9mZl90IHNpemUpCitzdGF0aWMgdm9pZCBmdXNlX3NlbmRfd3JpdGVwYWdlKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLAorCQkJCXN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICp3cGEsIGxvZmZfdCBzaXplKQogX19yZWxlYXNlcyhmaS0+bG9jaykKIF9fYWNxdWlyZXMoZmktPmxvY2spCiB7Ci0Jc3RydWN0IGZ1c2VfcmVxICphdXgsICpuZXh0OwotCXN0cnVjdCBmdXNlX2lub2RlICpmaSA9IGdldF9mdXNlX2lub2RlKHJlcS0+aW5vZGUpOwotCXN0cnVjdCBmdXNlX3dyaXRlX2luICppbmFyZyA9ICZyZXEtPm1pc2Mud3JpdGUuaW47Ci0JX191NjQgZGF0YV9zaXplID0gcmVxLT5udW1fcGFnZXMgKiBQQUdFX1NJWkU7Ci0JYm9vbCBxdWV1ZWQ7CisJc3RydWN0IGZ1c2Vfd3JpdGVwYWdlX2FyZ3MgKmF1eCwgKm5leHQ7CisJc3RydWN0IGZ1c2VfaW5vZGUgKmZpID0gZ2V0X2Z1c2VfaW5vZGUod3BhLT5pbm9kZSk7CisJc3RydWN0IGZ1c2Vfd3JpdGVfaW4gKmluYXJnID0gJndwYS0+aWEud3JpdGUuaW47CisJc3RydWN0IGZ1c2VfYXJncyAqYXJncyA9ICZ3cGEtPmlhLmFwLmFyZ3M7CisJX191NjQgZGF0YV9zaXplID0gd3BhLT5pYS5hcC5udW1fcGFnZXMgKiBQQUdFX1NJWkU7CisJaW50IGVycjsKIAorCWZpLT53cml0ZWN0cisrOwogCWlmIChpbmFyZy0+b2Zmc2V0ICsgZGF0YV9zaXplIDw9IHNpemUpIHsKIAkJaW5hcmctPnNpemUgPSBkYXRhX3NpemU7CiAJfSBlbHNlIGlmIChpbmFyZy0+b2Zmc2V0IDwgc2l6ZSkgewpAQCAtMTU1NywyOSArMTYyMSwzNiBAQCBfX2FjcXVpcmVzKGZpLT5sb2NrKQogCQlnb3RvIG91dF9mcmVlOwogCX0KIAotCXJlcS0+aW4uYXJnc1sxXS5zaXplID0gaW5hcmctPnNpemU7Ci0JcXVldWVkID0gZnVzZV9yZXF1ZXN0X3F1ZXVlX2JhY2tncm91bmQoZmMsIHJlcSk7CisJYXJncy0+aW5fYXJnc1sxXS5zaXplID0gaW5hcmctPnNpemU7CisJYXJncy0+Zm9yY2UgPSB0cnVlOworCWFyZ3MtPm5vY3JlZHMgPSB0cnVlOworCisJZXJyID0gZnVzZV9zaW1wbGVfYmFja2dyb3VuZChmYywgYXJncywgR0ZQX0FUT01JQyk7CisJaWYgKGVyciA9PSAtRU5PTUVNKSB7CisJCXNwaW5fdW5sb2NrKCZmaS0+bG9jayk7CisJCWVyciA9IGZ1c2Vfc2ltcGxlX2JhY2tncm91bmQoZmMsIGFyZ3MsIEdGUF9OT0ZTIHwgX19HRlBfTk9GQUlMKTsKKwkJc3Bpbl9sb2NrKCZmaS0+bG9jayk7CisJfQorCiAJLyogRmFpbHMgb24gYnJva2VuIGNvbm5lY3Rpb24gb25seSAqLwotCWlmICh1bmxpa2VseSghcXVldWVkKSkKKwlpZiAodW5saWtlbHkoZXJyKSkKIAkJZ290byBvdXRfZnJlZTsKIAotCWZpLT53cml0ZWN0cisrOwogCXJldHVybjsKIAogIG91dF9mcmVlOgotCWZ1c2Vfd3JpdGVwYWdlX2ZpbmlzaChmYywgcmVxKTsKKwlmaS0+d3JpdGVjdHItLTsKKwlmdXNlX3dyaXRlcGFnZV9maW5pc2goZmMsIHdwYSk7CiAJc3Bpbl91bmxvY2soJmZpLT5sb2NrKTsKIAogCS8qIEFmdGVyIGZ1c2Vfd3JpdGVwYWdlX2ZpbmlzaCgpIGF1eCByZXF1ZXN0IGxpc3QgaXMgcHJpdmF0ZSAqLwotCWZvciAoYXV4ID0gcmVxLT5taXNjLndyaXRlLm5leHQ7IGF1eDsgYXV4ID0gbmV4dCkgewotCQluZXh0ID0gYXV4LT5taXNjLndyaXRlLm5leHQ7Ci0JCWF1eC0+bWlzYy53cml0ZS5uZXh0ID0gTlVMTDsKLQkJZnVzZV93cml0ZXBhZ2VfZnJlZShmYywgYXV4KTsKLQkJZnVzZV9wdXRfcmVxdWVzdChmYywgYXV4KTsKKwlmb3IgKGF1eCA9IHdwYS0+bmV4dDsgYXV4OyBhdXggPSBuZXh0KSB7CisJCW5leHQgPSBhdXgtPm5leHQ7CisJCWF1eC0+bmV4dCA9IE5VTEw7CisJCWZ1c2Vfd3JpdGVwYWdlX2ZyZWUoYXV4KTsKIAl9CiAKLQlmdXNlX3dyaXRlcGFnZV9mcmVlKGZjLCByZXEpOwotCWZ1c2VfcHV0X3JlcXVlc3QoZmMsIHJlcSk7CisJZnVzZV93cml0ZXBhZ2VfZnJlZSh3cGEpOwogCXNwaW5fbG9jaygmZmktPmxvY2spOwogfQogCkBAIC0xNTk2LDI5ICsxNjY3LDM0IEBAIF9fYWNxdWlyZXMoZmktPmxvY2spCiAJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uKGlub2RlKTsKIAlzdHJ1Y3QgZnVzZV9pbm9kZSAqZmkgPSBnZXRfZnVzZV9pbm9kZShpbm9kZSk7CiAJbG9mZl90IGNyb3AgPSBpX3NpemVfcmVhZChpbm9kZSk7Ci0Jc3RydWN0IGZ1c2VfcmVxICpyZXE7CisJc3RydWN0IGZ1c2Vfd3JpdGVwYWdlX2FyZ3MgKndwYTsKIAogCXdoaWxlIChmaS0+d3JpdGVjdHIgPj0gMCAmJiAhbGlzdF9lbXB0eSgmZmktPnF1ZXVlZF93cml0ZXMpKSB7Ci0JCXJlcSA9IGxpc3RfZW50cnkoZmktPnF1ZXVlZF93cml0ZXMubmV4dCwgc3RydWN0IGZ1c2VfcmVxLCBsaXN0KTsKLQkJbGlzdF9kZWxfaW5pdCgmcmVxLT5saXN0KTsKLQkJZnVzZV9zZW5kX3dyaXRlcGFnZShmYywgcmVxLCBjcm9wKTsKKwkJd3BhID0gbGlzdF9lbnRyeShmaS0+cXVldWVkX3dyaXRlcy5uZXh0LAorCQkJCSBzdHJ1Y3QgZnVzZV93cml0ZXBhZ2VfYXJncywgcXVldWVfZW50cnkpOworCQlsaXN0X2RlbF9pbml0KCZ3cGEtPnF1ZXVlX2VudHJ5KTsKKwkJZnVzZV9zZW5kX3dyaXRlcGFnZShmYywgd3BhLCBjcm9wKTsKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGZ1c2Vfd3JpdGVwYWdlX2VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCitzdGF0aWMgdm9pZCBmdXNlX3dyaXRlcGFnZV9lbmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MsCisJCQkgICAgICAgaW50IGVycm9yKQogewotCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSByZXEtPmlub2RlOworCXN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICp3cGEgPQorCQljb250YWluZXJfb2YoYXJncywgdHlwZW9mKCp3cGEpLCBpYS5hcC5hcmdzKTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gd3BhLT5pbm9kZTsKIAlzdHJ1Y3QgZnVzZV9pbm9kZSAqZmkgPSBnZXRfZnVzZV9pbm9kZShpbm9kZSk7CiAKLQltYXBwaW5nX3NldF9lcnJvcihpbm9kZS0+aV9tYXBwaW5nLCByZXEtPm91dC5oLmVycm9yKTsKKwltYXBwaW5nX3NldF9lcnJvcihpbm9kZS0+aV9tYXBwaW5nLCBlcnJvcik7CiAJc3Bpbl9sb2NrKCZmaS0+bG9jayk7Ci0Jd2hpbGUgKHJlcS0+bWlzYy53cml0ZS5uZXh0KSB7CisJd2hpbGUgKHdwYS0+bmV4dCkgewogCQlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oaW5vZGUpOwotCQlzdHJ1Y3QgZnVzZV93cml0ZV9pbiAqaW5hcmcgPSAmcmVxLT5taXNjLndyaXRlLmluOwotCQlzdHJ1Y3QgZnVzZV9yZXEgKm5leHQgPSByZXEtPm1pc2Mud3JpdGUubmV4dDsKLQkJcmVxLT5taXNjLndyaXRlLm5leHQgPSBuZXh0LT5taXNjLndyaXRlLm5leHQ7Ci0JCW5leHQtPm1pc2Mud3JpdGUubmV4dCA9IE5VTEw7Ci0JCW5leHQtPmZmID0gZnVzZV9maWxlX2dldChyZXEtPmZmKTsKKwkJc3RydWN0IGZ1c2Vfd3JpdGVfaW4gKmluYXJnID0gJndwYS0+aWEud3JpdGUuaW47CisJCXN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICpuZXh0ID0gd3BhLT5uZXh0OworCisJCXdwYS0+bmV4dCA9IG5leHQtPm5leHQ7CisJCW5leHQtPm5leHQgPSBOVUxMOworCQluZXh0LT5pYS5mZiA9IGZ1c2VfZmlsZV9nZXQod3BhLT5pYS5mZik7CiAJCWxpc3RfYWRkKCZuZXh0LT53cml0ZXBhZ2VzX2VudHJ5LCAmZmktPndyaXRlcGFnZXMpOwogCiAJCS8qCkBAIC0xNjQ3LDkgKzE3MjMsOSBAQCBzdGF0aWMgdm9pZCBmdXNlX3dyaXRlcGFnZV9lbmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQogCQlmdXNlX3NlbmRfd3JpdGVwYWdlKGZjLCBuZXh0LCBpbmFyZy0+b2Zmc2V0ICsgaW5hcmctPnNpemUpOwogCX0KIAlmaS0+d3JpdGVjdHItLTsKLQlmdXNlX3dyaXRlcGFnZV9maW5pc2goZmMsIHJlcSk7CisJZnVzZV93cml0ZXBhZ2VfZmluaXNoKGZjLCB3cGEpOwogCXNwaW5fdW5sb2NrKCZmaS0+bG9jayk7Ci0JZnVzZV93cml0ZXBhZ2VfZnJlZShmYywgcmVxKTsKKwlmdXNlX3dyaXRlcGFnZV9mcmVlKHdwYSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZnVzZV9maWxlICpfX2Z1c2Vfd3JpdGVfZmlsZV9nZXQoc3RydWN0IGZ1c2VfY29ubiAqZmMsCkBAIC0xNjkxLDUyICsxNzY3LDcxIEBAIGludCBmdXNlX3dyaXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgZnVzZV93cml0ZXBhZ2VfYXJncyAqZnVzZV93cml0ZXBhZ2VfYXJnc19hbGxvYyh2b2lkKQoreworCXN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICp3cGE7CisJc3RydWN0IGZ1c2VfYXJnc19wYWdlcyAqYXA7CisKKwl3cGEgPSBremFsbG9jKHNpemVvZigqd3BhKSwgR0ZQX05PRlMpOworCWlmICh3cGEpIHsKKwkJYXAgPSAmd3BhLT5pYS5hcDsKKwkJYXAtPm51bV9wYWdlcyA9IDA7CisJCWFwLT5wYWdlcyA9IGZ1c2VfcGFnZXNfYWxsb2MoMSwgR0ZQX05PRlMsICZhcC0+ZGVzY3MpOworCQlpZiAoIWFwLT5wYWdlcykgeworCQkJa2ZyZWUod3BhKTsKKwkJCXdwYSA9IE5VTEw7CisJCX0KKwl9CisJcmV0dXJuIHdwYTsKKworfQorCiBzdGF0aWMgaW50IGZ1c2Vfd3JpdGVwYWdlX2xvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsKIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IHBhZ2UtPm1hcHBpbmc7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CiAJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uKGlub2RlKTsKIAlzdHJ1Y3QgZnVzZV9pbm9kZSAqZmkgPSBnZXRfZnVzZV9pbm9kZShpbm9kZSk7Ci0Jc3RydWN0IGZ1c2VfcmVxICpyZXE7CisJc3RydWN0IGZ1c2Vfd3JpdGVwYWdlX2FyZ3MgKndwYTsKKwlzdHJ1Y3QgZnVzZV9hcmdzX3BhZ2VzICphcDsKIAlzdHJ1Y3QgcGFnZSAqdG1wX3BhZ2U7CiAJaW50IGVycm9yID0gLUVOT01FTTsKIAogCXNldF9wYWdlX3dyaXRlYmFjayhwYWdlKTsKIAotCXJlcSA9IGZ1c2VfcmVxdWVzdF9hbGxvY19ub2ZzKDEpOwotCWlmICghcmVxKQorCXdwYSA9IGZ1c2Vfd3JpdGVwYWdlX2FyZ3NfYWxsb2MoKTsKKwlpZiAoIXdwYSkKIAkJZ290byBlcnI7CisJYXAgPSAmd3BhLT5pYS5hcDsKIAotCS8qIHdyaXRlYmFjayBhbHdheXMgZ29lcyB0byBiZ19xdWV1ZSAqLwotCV9fc2V0X2JpdChGUl9CQUNLR1JPVU5ELCAmcmVxLT5mbGFncyk7CiAJdG1wX3BhZ2UgPSBhbGxvY19wYWdlKEdGUF9OT0ZTIHwgX19HRlBfSElHSE1FTSk7CiAJaWYgKCF0bXBfcGFnZSkKIAkJZ290byBlcnJfZnJlZTsKIAogCWVycm9yID0gLUVJTzsKLQlyZXEtPmZmID0gZnVzZV93cml0ZV9maWxlX2dldChmYywgZmkpOwotCWlmICghcmVxLT5mZikKKwl3cGEtPmlhLmZmID0gZnVzZV93cml0ZV9maWxlX2dldChmYywgZmkpOworCWlmICghd3BhLT5pYS5mZikKIAkJZ290byBlcnJfbm9maWxlOwogCi0JZnVzZV93cml0ZV9maWxsKHJlcSwgcmVxLT5mZiwgcGFnZV9vZmZzZXQocGFnZSksIDApOworCWZ1c2Vfd3JpdGVfYXJnc19maWxsKCZ3cGEtPmlhLCB3cGEtPmlhLmZmLCBwYWdlX29mZnNldChwYWdlKSwgMCk7CiAKIAljb3B5X2hpZ2hwYWdlKHRtcF9wYWdlLCBwYWdlKTsKLQlyZXEtPm1pc2Mud3JpdGUuaW4ud3JpdGVfZmxhZ3MgfD0gRlVTRV9XUklURV9DQUNIRTsKLQlyZXEtPm1pc2Mud3JpdGUubmV4dCA9IE5VTEw7Ci0JcmVxLT5pbi5hcmdwYWdlcyA9IDE7Ci0JcmVxLT5udW1fcGFnZXMgPSAxOwotCXJlcS0+cGFnZXNbMF0gPSB0bXBfcGFnZTsKLQlyZXEtPnBhZ2VfZGVzY3NbMF0ub2Zmc2V0ID0gMDsKLQlyZXEtPnBhZ2VfZGVzY3NbMF0ubGVuZ3RoID0gUEFHRV9TSVpFOwotCXJlcS0+ZW5kID0gZnVzZV93cml0ZXBhZ2VfZW5kOwotCXJlcS0+aW5vZGUgPSBpbm9kZTsKKwl3cGEtPmlhLndyaXRlLmluLndyaXRlX2ZsYWdzIHw9IEZVU0VfV1JJVEVfQ0FDSEU7CisJd3BhLT5uZXh0ID0gTlVMTDsKKwlhcC0+YXJncy5pbl9wYWdlcyA9IHRydWU7CisJYXAtPm51bV9wYWdlcyA9IDE7CisJYXAtPnBhZ2VzWzBdID0gdG1wX3BhZ2U7CisJYXAtPmRlc2NzWzBdLm9mZnNldCA9IDA7CisJYXAtPmRlc2NzWzBdLmxlbmd0aCA9IFBBR0VfU0laRTsKKwlhcC0+YXJncy5lbmQgPSBmdXNlX3dyaXRlcGFnZV9lbmQ7CisJd3BhLT5pbm9kZSA9IGlub2RlOwogCiAJaW5jX3diX3N0YXQoJmlub2RlX3RvX2JkaShpbm9kZSktPndiLCBXQl9XUklURUJBQ0spOwogCWluY19ub2RlX3BhZ2Vfc3RhdGUodG1wX3BhZ2UsIE5SX1dSSVRFQkFDS19URU1QKTsKIAogCXNwaW5fbG9jaygmZmktPmxvY2spOwotCWxpc3RfYWRkKCZyZXEtPndyaXRlcGFnZXNfZW50cnksICZmaS0+d3JpdGVwYWdlcyk7Ci0JbGlzdF9hZGRfdGFpbCgmcmVxLT5saXN0LCAmZmktPnF1ZXVlZF93cml0ZXMpOworCWxpc3RfYWRkKCZ3cGEtPndyaXRlcGFnZXNfZW50cnksICZmaS0+d3JpdGVwYWdlcyk7CisJbGlzdF9hZGRfdGFpbCgmd3BhLT5xdWV1ZV9lbnRyeSwgJmZpLT5xdWV1ZWRfd3JpdGVzKTsKIAlmdXNlX2ZsdXNoX3dyaXRlcGFnZXMoaW5vZGUpOwogCXNwaW5fdW5sb2NrKCZmaS0+bG9jayk7CiAKQEAgLTE3NDcsNyArMTg0Miw3IEBAIHN0YXRpYyBpbnQgZnVzZV93cml0ZXBhZ2VfbG9ja2VkKHN0cnVjdCBwYWdlICpwYWdlKQogZXJyX25vZmlsZToKIAlfX2ZyZWVfcGFnZSh0bXBfcGFnZSk7CiBlcnJfZnJlZToKLQlmdXNlX3JlcXVlc3RfZnJlZShyZXEpOworCWtmcmVlKHdwYSk7CiBlcnI6CiAJbWFwcGluZ19zZXRfZXJyb3IocGFnZS0+bWFwcGluZywgZXJyb3IpOwogCWVuZF9wYWdlX3dyaXRlYmFjayhwYWdlKTsKQEAgLTE3NjcsNiArMTg2Miw3IEBAIHN0YXRpYyBpbnQgZnVzZV93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQogCQlXQVJOX09OKHdiYy0+c3luY19tb2RlID09IFdCX1NZTkNfQUxMKTsKIAogCQlyZWRpcnR5X3BhZ2VfZm9yX3dyaXRlcGFnZSh3YmMsIHBhZ2UpOworCQl1bmxvY2tfcGFnZShwYWdlKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC0xNzc3LDIzICsxODczLDUwIEBAIHN0YXRpYyBpbnQgZnVzZV93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQogfQogCiBzdHJ1Y3QgZnVzZV9maWxsX3diX2RhdGEgewotCXN0cnVjdCBmdXNlX3JlcSAqcmVxOworCXN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICp3cGE7CiAJc3RydWN0IGZ1c2VfZmlsZSAqZmY7CiAJc3RydWN0IGlub2RlICppbm9kZTsKIAlzdHJ1Y3QgcGFnZSAqKm9yaWdfcGFnZXM7CisJdW5zaWduZWQgaW50IG1heF9wYWdlczsKIH07CiAKK3N0YXRpYyBib29sIGZ1c2VfcGFnZXNfcmVhbGxvYyhzdHJ1Y3QgZnVzZV9maWxsX3diX2RhdGEgKmRhdGEpCit7CisJc3RydWN0IGZ1c2VfYXJnc19wYWdlcyAqYXAgPSAmZGF0YS0+d3BhLT5pYS5hcDsKKwlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oZGF0YS0+aW5vZGUpOworCXN0cnVjdCBwYWdlICoqcGFnZXM7CisJc3RydWN0IGZ1c2VfcGFnZV9kZXNjICpkZXNjczsKKwl1bnNpZ25lZCBpbnQgbnBhZ2VzID0gbWluX3QodW5zaWduZWQgaW50LAorCQkJCSAgICBtYXhfdCh1bnNpZ25lZCBpbnQsIGRhdGEtPm1heF9wYWdlcyAqIDIsCisJCQkJCSAgRlVTRV9ERUZBVUxUX01BWF9QQUdFU19QRVJfUkVRKSwKKwkJCQkgICAgZmMtPm1heF9wYWdlcyk7CisJV0FSTl9PTihucGFnZXMgPD0gZGF0YS0+bWF4X3BhZ2VzKTsKKworCXBhZ2VzID0gZnVzZV9wYWdlc19hbGxvYyhucGFnZXMsIEdGUF9OT0ZTLCAmZGVzY3MpOworCWlmICghcGFnZXMpCisJCXJldHVybiBmYWxzZTsKKworCW1lbWNweShwYWdlcywgYXAtPnBhZ2VzLCBzaXplb2Yoc3RydWN0IHBhZ2UgKikgKiBhcC0+bnVtX3BhZ2VzKTsKKwltZW1jcHkoZGVzY3MsIGFwLT5kZXNjcywgc2l6ZW9mKHN0cnVjdCBmdXNlX3BhZ2VfZGVzYykgKiBhcC0+bnVtX3BhZ2VzKTsKKwlrZnJlZShhcC0+cGFnZXMpOworCWFwLT5wYWdlcyA9IHBhZ2VzOworCWFwLT5kZXNjcyA9IGRlc2NzOworCWRhdGEtPm1heF9wYWdlcyA9IG5wYWdlczsKKworCXJldHVybiB0cnVlOworfQorCiBzdGF0aWMgdm9pZCBmdXNlX3dyaXRlcGFnZXNfc2VuZChzdHJ1Y3QgZnVzZV9maWxsX3diX2RhdGEgKmRhdGEpCiB7Ci0Jc3RydWN0IGZ1c2VfcmVxICpyZXEgPSBkYXRhLT5yZXE7CisJc3RydWN0IGZ1c2Vfd3JpdGVwYWdlX2FyZ3MgKndwYSA9IGRhdGEtPndwYTsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZGF0YS0+aW5vZGU7CiAJc3RydWN0IGZ1c2VfaW5vZGUgKmZpID0gZ2V0X2Z1c2VfaW5vZGUoaW5vZGUpOwotCWludCBudW1fcGFnZXMgPSByZXEtPm51bV9wYWdlczsKKwlpbnQgbnVtX3BhZ2VzID0gd3BhLT5pYS5hcC5udW1fcGFnZXM7CiAJaW50IGk7CiAKLQlyZXEtPmZmID0gZnVzZV9maWxlX2dldChkYXRhLT5mZik7CisJd3BhLT5pYS5mZiA9IGZ1c2VfZmlsZV9nZXQoZGF0YS0+ZmYpOwogCXNwaW5fbG9jaygmZmktPmxvY2spOwotCWxpc3RfYWRkX3RhaWwoJnJlcS0+bGlzdCwgJmZpLT5xdWV1ZWRfd3JpdGVzKTsKKwlsaXN0X2FkZF90YWlsKCZ3cGEtPnF1ZXVlX2VudHJ5LCAmZmktPnF1ZXVlZF93cml0ZXMpOwogCWZ1c2VfZmx1c2hfd3JpdGVwYWdlcyhpbm9kZSk7CiAJc3Bpbl91bmxvY2soJmZpLT5sb2NrKTsKIApAQCAtMTgwOCw1NCArMTkzMSw1MiBAQCBzdGF0aWMgdm9pZCBmdXNlX3dyaXRlcGFnZXNfc2VuZChzdHJ1Y3QgZnVzZV9maWxsX3diX2RhdGEgKmRhdGEpCiAgKiB0aGlzIG5ldyByZXF1ZXN0IG9udG8gdGhlIGF1eGlsaWFyeSBsaXN0LCBvdGhlcndpc2UgcmV1c2UgdGhlIGV4aXN0aW5nIG9uZSBieQogICogY29weWluZyB0aGUgbmV3IHBhZ2UgY29udGVudHMgb3ZlciB0byB0aGUgb2xkIHRlbXBvcmFyeSBwYWdlLgogICovCi1zdGF0aWMgYm9vbCBmdXNlX3dyaXRlcGFnZV9pbl9mbGlnaHQoc3RydWN0IGZ1c2VfcmVxICpuZXdfcmVxLAorc3RhdGljIGJvb2wgZnVzZV93cml0ZXBhZ2VfaW5fZmxpZ2h0KHN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICpuZXdfd3BhLAogCQkJCSAgICAgc3RydWN0IHBhZ2UgKnBhZ2UpCiB7Ci0Jc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uKG5ld19yZXEtPmlub2RlKTsKLQlzdHJ1Y3QgZnVzZV9pbm9kZSAqZmkgPSBnZXRfZnVzZV9pbm9kZShuZXdfcmVxLT5pbm9kZSk7Ci0Jc3RydWN0IGZ1c2VfcmVxICp0bXA7Ci0Jc3RydWN0IGZ1c2VfcmVxICpvbGRfcmVxOworCXN0cnVjdCBmdXNlX2lub2RlICpmaSA9IGdldF9mdXNlX2lub2RlKG5ld193cGEtPmlub2RlKTsKKwlzdHJ1Y3QgZnVzZV93cml0ZXBhZ2VfYXJncyAqdG1wOworCXN0cnVjdCBmdXNlX3dyaXRlcGFnZV9hcmdzICpvbGRfd3BhOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKm5ld19hcCA9ICZuZXdfd3BhLT5pYS5hcDsKIAotCVdBUk5fT04obmV3X3JlcS0+bnVtX3BhZ2VzICE9IDApOworCVdBUk5fT04obmV3X2FwLT5udW1fcGFnZXMgIT0gMCk7CiAKIAlzcGluX2xvY2soJmZpLT5sb2NrKTsKLQlsaXN0X2RlbCgmbmV3X3JlcS0+d3JpdGVwYWdlc19lbnRyeSk7Ci0Jb2xkX3JlcSA9IGZ1c2VfZmluZF93cml0ZWJhY2soZmksIHBhZ2UtPmluZGV4LCBwYWdlLT5pbmRleCk7Ci0JaWYgKCFvbGRfcmVxKSB7Ci0JCWxpc3RfYWRkKCZuZXdfcmVxLT53cml0ZXBhZ2VzX2VudHJ5LCAmZmktPndyaXRlcGFnZXMpOworCWxpc3RfZGVsKCZuZXdfd3BhLT53cml0ZXBhZ2VzX2VudHJ5KTsKKwlvbGRfd3BhID0gZnVzZV9maW5kX3dyaXRlYmFjayhmaSwgcGFnZS0+aW5kZXgsIHBhZ2UtPmluZGV4KTsKKwlpZiAoIW9sZF93cGEpIHsKKwkJbGlzdF9hZGQoJm5ld193cGEtPndyaXRlcGFnZXNfZW50cnksICZmaS0+d3JpdGVwYWdlcyk7CiAJCXNwaW5fdW5sb2NrKCZmaS0+bG9jayk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQluZXdfcmVxLT5udW1fcGFnZXMgPSAxOwotCWZvciAodG1wID0gb2xkX3JlcS0+bWlzYy53cml0ZS5uZXh0OyB0bXA7IHRtcCA9IHRtcC0+bWlzYy53cml0ZS5uZXh0KSB7CisJbmV3X2FwLT5udW1fcGFnZXMgPSAxOworCWZvciAodG1wID0gb2xkX3dwYS0+bmV4dDsgdG1wOyB0bXAgPSB0bXAtPm5leHQpIHsKIAkJcGdvZmZfdCBjdXJyX2luZGV4OwogCi0JCVdBUk5fT04odG1wLT5pbm9kZSAhPSBuZXdfcmVxLT5pbm9kZSk7Ci0JCWN1cnJfaW5kZXggPSB0bXAtPm1pc2Mud3JpdGUuaW4ub2Zmc2V0ID4+IFBBR0VfU0hJRlQ7CisJCVdBUk5fT04odG1wLT5pbm9kZSAhPSBuZXdfd3BhLT5pbm9kZSk7CisJCWN1cnJfaW5kZXggPSB0bXAtPmlhLndyaXRlLmluLm9mZnNldCA+PiBQQUdFX1NISUZUOwogCQlpZiAoY3Vycl9pbmRleCA9PSBwYWdlLT5pbmRleCkgewotCQkJV0FSTl9PTih0bXAtPm51bV9wYWdlcyAhPSAxKTsKLQkJCVdBUk5fT04oIXRlc3RfYml0KEZSX1BFTkRJTkcsICZ0bXAtPmZsYWdzKSk7Ci0JCQlzd2FwKHRtcC0+cGFnZXNbMF0sIG5ld19yZXEtPnBhZ2VzWzBdKTsKKwkJCVdBUk5fT04odG1wLT5pYS5hcC5udW1fcGFnZXMgIT0gMSk7CisJCQlzd2FwKHRtcC0+aWEuYXAucGFnZXNbMF0sIG5ld19hcC0+cGFnZXNbMF0pOwogCQkJYnJlYWs7CiAJCX0KIAl9CiAKIAlpZiAoIXRtcCkgewotCQluZXdfcmVxLT5taXNjLndyaXRlLm5leHQgPSBvbGRfcmVxLT5taXNjLndyaXRlLm5leHQ7Ci0JCW9sZF9yZXEtPm1pc2Mud3JpdGUubmV4dCA9IG5ld19yZXE7CisJCW5ld193cGEtPm5leHQgPSBvbGRfd3BhLT5uZXh0OworCQlvbGRfd3BhLT5uZXh0ID0gbmV3X3dwYTsKIAl9CiAKIAlzcGluX3VubG9jaygmZmktPmxvY2spOwogCiAJaWYgKHRtcCkgewotCQlzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRpID0gaW5vZGVfdG9fYmRpKG5ld19yZXEtPmlub2RlKTsKKwkJc3RydWN0IGJhY2tpbmdfZGV2X2luZm8gKmJkaSA9IGlub2RlX3RvX2JkaShuZXdfd3BhLT5pbm9kZSk7CiAKIAkJZGVjX3diX3N0YXQoJmJkaS0+d2IsIFdCX1dSSVRFQkFDSyk7Ci0JCWRlY19ub2RlX3BhZ2Vfc3RhdGUobmV3X3JlcS0+cGFnZXNbMF0sIE5SX1dSSVRFQkFDS19URU1QKTsKKwkJZGVjX25vZGVfcGFnZV9zdGF0ZShuZXdfYXAtPnBhZ2VzWzBdLCBOUl9XUklURUJBQ0tfVEVNUCk7CiAJCXdiX3dyaXRlb3V0X2luYygmYmRpLT53Yik7Ci0JCWZ1c2Vfd3JpdGVwYWdlX2ZyZWUoZmMsIG5ld19yZXEpOwotCQlmdXNlX3JlcXVlc3RfZnJlZShuZXdfcmVxKTsKKwkJZnVzZV93cml0ZXBhZ2VfZnJlZShuZXdfd3BhKTsKIAl9CiAKIAlyZXR1cm4gdHJ1ZTsKQEAgLTE4NjUsNyArMTk4Niw4IEBAIHN0YXRpYyBpbnQgZnVzZV93cml0ZXBhZ2VzX2ZpbGwoc3RydWN0IHBhZ2UgKnBhZ2UsCiAJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjLCB2b2lkICpfZGF0YSkKIHsKIAlzdHJ1Y3QgZnVzZV9maWxsX3diX2RhdGEgKmRhdGEgPSBfZGF0YTsKLQlzdHJ1Y3QgZnVzZV9yZXEgKnJlcSA9IGRhdGEtPnJlcTsKKwlzdHJ1Y3QgZnVzZV93cml0ZXBhZ2VfYXJncyAqd3BhID0gZGF0YS0+d3BhOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgKmFwID0gJndwYS0+aWEuYXA7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRhdGEtPmlub2RlOwogCXN0cnVjdCBmdXNlX2lub2RlICpmaSA9IGdldF9mdXNlX2lub2RlKGlub2RlKTsKIAlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oaW5vZGUpOwpAQCAtMTg4OCwxNiArMjAxMCwxNiBAQCBzdGF0aWMgaW50IGZ1c2Vfd3JpdGVwYWdlc19maWxsKHN0cnVjdCBwYWdlICpwYWdlLAogCSAqLwogCWlzX3dyaXRlYmFjayA9IGZ1c2VfcGFnZV9pc193cml0ZWJhY2soaW5vZGUsIHBhZ2UtPmluZGV4KTsKIAotCWlmIChyZXEgJiYgcmVxLT5udW1fcGFnZXMgJiYKLQkgICAgKGlzX3dyaXRlYmFjayB8fCByZXEtPm51bV9wYWdlcyA9PSBmYy0+bWF4X3BhZ2VzIHx8Ci0JICAgICAocmVxLT5udW1fcGFnZXMgKyAxKSAqIFBBR0VfU0laRSA+IGZjLT5tYXhfd3JpdGUgfHwKLQkgICAgIGRhdGEtPm9yaWdfcGFnZXNbcmVxLT5udW1fcGFnZXMgLSAxXS0+aW5kZXggKyAxICE9IHBhZ2UtPmluZGV4KSkgeworCWlmICh3cGEgJiYgYXAtPm51bV9wYWdlcyAmJgorCSAgICAoaXNfd3JpdGViYWNrIHx8IGFwLT5udW1fcGFnZXMgPT0gZmMtPm1heF9wYWdlcyB8fAorCSAgICAgKGFwLT5udW1fcGFnZXMgKyAxKSAqIFBBR0VfU0laRSA+IGZjLT5tYXhfd3JpdGUgfHwKKwkgICAgIGRhdGEtPm9yaWdfcGFnZXNbYXAtPm51bV9wYWdlcyAtIDFdLT5pbmRleCArIDEgIT0gcGFnZS0+aW5kZXgpKSB7CiAJCWZ1c2Vfd3JpdGVwYWdlc19zZW5kKGRhdGEpOwotCQlkYXRhLT5yZXEgPSBOVUxMOwotCX0gZWxzZSBpZiAocmVxICYmIHJlcS0+bnVtX3BhZ2VzID09IHJlcS0+bWF4X3BhZ2VzKSB7Ci0JCWlmICghZnVzZV9yZXFfcmVhbGxvY19wYWdlcyhmYywgcmVxLCBHRlBfTk9GUykpIHsKKwkJZGF0YS0+d3BhID0gTlVMTDsKKwl9IGVsc2UgaWYgKHdwYSAmJiBhcC0+bnVtX3BhZ2VzID09IGRhdGEtPm1heF9wYWdlcykgeworCQlpZiAoIWZ1c2VfcGFnZXNfcmVhbGxvYyhkYXRhKSkgewogCQkJZnVzZV93cml0ZXBhZ2VzX3NlbmQoZGF0YSk7Ci0JCQlyZXEgPSBkYXRhLT5yZXEgPSBOVUxMOworCQkJZGF0YS0+d3BhID0gTlVMTDsKIAkJfQogCX0KIApAQCAtMTkxNSw1OSArMjAzNyw2MCBAQCBzdGF0aWMgaW50IGZ1c2Vfd3JpdGVwYWdlc19maWxsKHN0cnVjdCBwYWdlICpwYWdlLAogCSAqIFRoaXMgaXMgZW5zdXJlZCBieSBob2xkaW5nIHRoZSBwYWdlIGxvY2sgaW4gcGFnZV9ta3dyaXRlKCkgd2hpbGUKIAkgKiBjaGVja2luZyBmdXNlX3BhZ2VfaXNfd3JpdGViYWNrKCkuICBXZSBhbHJlYWR5IGhvbGQgdGhlIHBhZ2UgbG9jawogCSAqIHNpbmNlIGNsZWFyX3BhZ2VfZGlydHlfZm9yX2lvKCkgYW5kIGtlZXAgaXQgaGVsZCB1bnRpbCB3ZSBhZGQgdGhlCi0JICogcmVxdWVzdCB0byB0aGUgZmktPndyaXRlcGFnZXMgbGlzdCBhbmQgaW5jcmVtZW50IHJlcS0+bnVtX3BhZ2VzLgorCSAqIHJlcXVlc3QgdG8gdGhlIGZpLT53cml0ZXBhZ2VzIGxpc3QgYW5kIGluY3JlbWVudCBhcC0+bnVtX3BhZ2VzLgogCSAqIEFmdGVyIHRoaXMgZnVzZV9wYWdlX2lzX3dyaXRlYmFjaygpIHdpbGwgaW5kaWNhdGUgdGhhdCB0aGUgcGFnZSBpcwogCSAqIHVuZGVyIHdyaXRlYmFjaywgc28gd2UgY2FuIHJlbGVhc2UgdGhlIHBhZ2UgbG9jay4KIAkgKi8KLQlpZiAoZGF0YS0+cmVxID09IE5VTEwpIHsKKwlpZiAoZGF0YS0+d3BhID09IE5VTEwpIHsKIAkJc3RydWN0IGZ1c2VfaW5vZGUgKmZpID0gZ2V0X2Z1c2VfaW5vZGUoaW5vZGUpOwogCiAJCWVyciA9IC1FTk9NRU07Ci0JCXJlcSA9IGZ1c2VfcmVxdWVzdF9hbGxvY19ub2ZzKEZVU0VfUkVRX0lOTElORV9QQUdFUyk7Ci0JCWlmICghcmVxKSB7CisJCXdwYSA9IGZ1c2Vfd3JpdGVwYWdlX2FyZ3NfYWxsb2MoKTsKKwkJaWYgKCF3cGEpIHsKIAkJCV9fZnJlZV9wYWdlKHRtcF9wYWdlKTsKIAkJCWdvdG8gb3V0X3VubG9jazsKIAkJfQorCQlkYXRhLT5tYXhfcGFnZXMgPSAxOwogCi0JCWZ1c2Vfd3JpdGVfZmlsbChyZXEsIGRhdGEtPmZmLCBwYWdlX29mZnNldChwYWdlKSwgMCk7Ci0JCXJlcS0+bWlzYy53cml0ZS5pbi53cml0ZV9mbGFncyB8PSBGVVNFX1dSSVRFX0NBQ0hFOwotCQlyZXEtPm1pc2Mud3JpdGUubmV4dCA9IE5VTEw7Ci0JCXJlcS0+aW4uYXJncGFnZXMgPSAxOwotCQlfX3NldF9iaXQoRlJfQkFDS0dST1VORCwgJnJlcS0+ZmxhZ3MpOwotCQlyZXEtPm51bV9wYWdlcyA9IDA7Ci0JCXJlcS0+ZW5kID0gZnVzZV93cml0ZXBhZ2VfZW5kOwotCQlyZXEtPmlub2RlID0gaW5vZGU7CisJCWFwID0gJndwYS0+aWEuYXA7CisJCWZ1c2Vfd3JpdGVfYXJnc19maWxsKCZ3cGEtPmlhLCBkYXRhLT5mZiwgcGFnZV9vZmZzZXQocGFnZSksIDApOworCQl3cGEtPmlhLndyaXRlLmluLndyaXRlX2ZsYWdzIHw9IEZVU0VfV1JJVEVfQ0FDSEU7CisJCXdwYS0+bmV4dCA9IE5VTEw7CisJCWFwLT5hcmdzLmluX3BhZ2VzID0gdHJ1ZTsKKwkJYXAtPmFyZ3MuZW5kID0gZnVzZV93cml0ZXBhZ2VfZW5kOworCQlhcC0+bnVtX3BhZ2VzID0gMDsKKwkJd3BhLT5pbm9kZSA9IGlub2RlOwogCiAJCXNwaW5fbG9jaygmZmktPmxvY2spOwotCQlsaXN0X2FkZCgmcmVxLT53cml0ZXBhZ2VzX2VudHJ5LCAmZmktPndyaXRlcGFnZXMpOworCQlsaXN0X2FkZCgmd3BhLT53cml0ZXBhZ2VzX2VudHJ5LCAmZmktPndyaXRlcGFnZXMpOwogCQlzcGluX3VubG9jaygmZmktPmxvY2spOwogCi0JCWRhdGEtPnJlcSA9IHJlcTsKKwkJZGF0YS0+d3BhID0gd3BhOwogCX0KIAlzZXRfcGFnZV93cml0ZWJhY2socGFnZSk7CiAKIAljb3B5X2hpZ2hwYWdlKHRtcF9wYWdlLCBwYWdlKTsKLQlyZXEtPnBhZ2VzW3JlcS0+bnVtX3BhZ2VzXSA9IHRtcF9wYWdlOwotCXJlcS0+cGFnZV9kZXNjc1tyZXEtPm51bV9wYWdlc10ub2Zmc2V0ID0gMDsKLQlyZXEtPnBhZ2VfZGVzY3NbcmVxLT5udW1fcGFnZXNdLmxlbmd0aCA9IFBBR0VfU0laRTsKKwlhcC0+cGFnZXNbYXAtPm51bV9wYWdlc10gPSB0bXBfcGFnZTsKKwlhcC0+ZGVzY3NbYXAtPm51bV9wYWdlc10ub2Zmc2V0ID0gMDsKKwlhcC0+ZGVzY3NbYXAtPm51bV9wYWdlc10ubGVuZ3RoID0gUEFHRV9TSVpFOwogCiAJaW5jX3diX3N0YXQoJmlub2RlX3RvX2JkaShpbm9kZSktPndiLCBXQl9XUklURUJBQ0spOwogCWluY19ub2RlX3BhZ2Vfc3RhdGUodG1wX3BhZ2UsIE5SX1dSSVRFQkFDS19URU1QKTsKIAogCWVyciA9IDA7Ci0JaWYgKGlzX3dyaXRlYmFjayAmJiBmdXNlX3dyaXRlcGFnZV9pbl9mbGlnaHQocmVxLCBwYWdlKSkgeworCWlmIChpc193cml0ZWJhY2sgJiYgZnVzZV93cml0ZXBhZ2VfaW5fZmxpZ2h0KHdwYSwgcGFnZSkpIHsKIAkJZW5kX3BhZ2Vfd3JpdGViYWNrKHBhZ2UpOwotCQlkYXRhLT5yZXEgPSBOVUxMOworCQlkYXRhLT53cGEgPSBOVUxMOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQotCWRhdGEtPm9yaWdfcGFnZXNbcmVxLT5udW1fcGFnZXNdID0gcGFnZTsKKwlkYXRhLT5vcmlnX3BhZ2VzW2FwLT5udW1fcGFnZXNdID0gcGFnZTsKIAogCS8qCiAJICogUHJvdGVjdGVkIGJ5IGZpLT5sb2NrIGFnYWluc3QgY29uY3VycmVudCBhY2Nlc3MgYnkKIAkgKiBmdXNlX3BhZ2VfaXNfd3JpdGViYWNrKCkuCiAJICovCiAJc3Bpbl9sb2NrKCZmaS0+bG9jayk7Ci0JcmVxLT5udW1fcGFnZXMrKzsKKwlhcC0+bnVtX3BhZ2VzKys7CiAJc3Bpbl91bmxvY2soJmZpLT5sb2NrKTsKIAogb3V0X3VubG9jazoKQEAgLTE5ODksNyArMjExMiw3IEBAIHN0YXRpYyBpbnQgZnVzZV93cml0ZXBhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQlnb3RvIG91dDsKIAogCWRhdGEuaW5vZGUgPSBpbm9kZTsKLQlkYXRhLnJlcSA9IE5VTEw7CisJZGF0YS53cGEgPSBOVUxMOwogCWRhdGEuZmYgPSBOVUxMOwogCiAJZXJyID0gLUVOT01FTTsKQEAgLTIwMDAsOSArMjEyMyw5IEBAIHN0YXRpYyBpbnQgZnVzZV93cml0ZXBhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQlnb3RvIG91dDsKIAogCWVyciA9IHdyaXRlX2NhY2hlX3BhZ2VzKG1hcHBpbmcsIHdiYywgZnVzZV93cml0ZXBhZ2VzX2ZpbGwsICZkYXRhKTsKLQlpZiAoZGF0YS5yZXEpIHsKKwlpZiAoZGF0YS53cGEpIHsKIAkJLyogSWdub3JlIGVycm9ycyBpZiB3ZSBjYW4gd3JpdGUgYXQgbGVhc3Qgb25lIHBhZ2UgKi8KLQkJQlVHX09OKCFkYXRhLnJlcS0+bnVtX3BhZ2VzKTsKKwkJV0FSTl9PTighZGF0YS53cGEtPmlhLmFwLm51bV9wYWdlcyk7CiAJCWZ1c2Vfd3JpdGVwYWdlc19zZW5kKCZkYXRhKTsKIAkJZXJyID0gMDsKIAl9CkBAIC0yMjIyLDExICsyMzQ1LDExIEBAIHN0YXRpYyB2b2lkIGZ1c2VfbGtfZmlsbChzdHJ1Y3QgZnVzZV9hcmdzICphcmdzLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAlpbmFyZy0+bGsucGlkID0gcGlkOwogCWlmIChmbG9jaykKIAkJaW5hcmctPmxrX2ZsYWdzIHw9IEZVU0VfTEtfRkxPQ0s7Ci0JYXJncy0+aW4uaC5vcGNvZGUgPSBvcGNvZGU7Ci0JYXJncy0+aW4uaC5ub2RlaWQgPSBnZXRfbm9kZV9pZChpbm9kZSk7Ci0JYXJncy0+aW4ubnVtYXJncyA9IDE7Ci0JYXJncy0+aW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKCppbmFyZyk7Ci0JYXJncy0+aW4uYXJnc1swXS52YWx1ZSA9IGluYXJnOworCWFyZ3MtPm9wY29kZSA9IG9wY29kZTsKKwlhcmdzLT5ub2RlaWQgPSBnZXRfbm9kZV9pZChpbm9kZSk7CisJYXJncy0+aW5fbnVtYXJncyA9IDE7CisJYXJncy0+aW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKCppbmFyZyk7CisJYXJncy0+aW5fYXJnc1swXS52YWx1ZSA9IGluYXJnOwogfQogCiBzdGF0aWMgaW50IGZ1c2VfZ2V0bGsoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBmaWxlX2xvY2sgKmZsKQpAQCAtMjIzOSw5ICsyMzYyLDkgQEAgc3RhdGljIGludCBmdXNlX2dldGxrKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZmlsZV9sb2NrICpmbCkKIAlpbnQgZXJyOwogCiAJZnVzZV9sa19maWxsKCZhcmdzLCBmaWxlLCBmbCwgRlVTRV9HRVRMSywgMCwgMCwgJmluYXJnKTsKLQlhcmdzLm91dC5udW1hcmdzID0gMTsKLQlhcmdzLm91dC5hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKLQlhcmdzLm91dC5hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKKwlhcmdzLm91dF9udW1hcmdzID0gMTsKKwlhcmdzLm91dF9hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKKwlhcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKIAllcnIgPSBmdXNlX3NpbXBsZV9yZXF1ZXN0KGZjLCAmYXJncyk7CiAJaWYgKCFlcnIpCiAJCWVyciA9IGNvbnZlcnRfZnVzZV9maWxlX2xvY2soZmMsICZvdXRhcmcubGssIGZsKTsKQEAgLTIzMzYsMTQgKzI0NTksMTQgQEAgc3RhdGljIHNlY3Rvcl90IGZ1c2VfYm1hcChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgc2VjdG9yX3QgYmxvY2spCiAJbWVtc2V0KCZpbmFyZywgMCwgc2l6ZW9mKGluYXJnKSk7CiAJaW5hcmcuYmxvY2sgPSBibG9jazsKIAlpbmFyZy5ibG9ja3NpemUgPSBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemU7Ci0JYXJncy5pbi5oLm9wY29kZSA9IEZVU0VfQk1BUDsKLQlhcmdzLmluLmgubm9kZWlkID0gZ2V0X25vZGVfaWQoaW5vZGUpOwotCWFyZ3MuaW4ubnVtYXJncyA9IDE7Ci0JYXJncy5pbi5hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOwotCWFyZ3MuaW4uYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKLQlhcmdzLm91dC5udW1hcmdzID0gMTsKLQlhcmdzLm91dC5hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKLQlhcmdzLm91dC5hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKKwlhcmdzLm9wY29kZSA9IEZVU0VfQk1BUDsKKwlhcmdzLm5vZGVpZCA9IGdldF9ub2RlX2lkKGlub2RlKTsKKwlhcmdzLmluX251bWFyZ3MgPSAxOworCWFyZ3MuaW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKKwlhcmdzLmluX2FyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CisJYXJncy5vdXRfbnVtYXJncyA9IDE7CisJYXJncy5vdXRfYXJnc1swXS5zaXplID0gc2l6ZW9mKG91dGFyZyk7CisJYXJncy5vdXRfYXJnc1swXS52YWx1ZSA9ICZvdXRhcmc7CiAJZXJyID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOwogCWlmIChlcnIgPT0gLUVOT1NZUykKIAkJZmMtPm5vX2JtYXAgPSAxOwpAQCAtMjM2OCwxNCArMjQ5MSwxNCBAQCBzdGF0aWMgbG9mZl90IGZ1c2VfbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCB3aGVuY2UpCiAJaWYgKGZjLT5ub19sc2VlaykKIAkJZ290byBmYWxsYmFjazsKIAotCWFyZ3MuaW4uaC5vcGNvZGUgPSBGVVNFX0xTRUVLOwotCWFyZ3MuaW4uaC5ub2RlaWQgPSBmZi0+bm9kZWlkOwotCWFyZ3MuaW4ubnVtYXJncyA9IDE7Ci0JYXJncy5pbi5hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOwotCWFyZ3MuaW4uYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKLQlhcmdzLm91dC5udW1hcmdzID0gMTsKLQlhcmdzLm91dC5hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKLQlhcmdzLm91dC5hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKKwlhcmdzLm9wY29kZSA9IEZVU0VfTFNFRUs7CisJYXJncy5ub2RlaWQgPSBmZi0+bm9kZWlkOworCWFyZ3MuaW5fbnVtYXJncyA9IDE7CisJYXJncy5pbl9hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOworCWFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKKwlhcmdzLm91dF9udW1hcmdzID0gMTsKKwlhcmdzLm91dF9hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKKwlhcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKIAllcnIgPSBmdXNlX3NpbXBsZV9yZXF1ZXN0KGZjLCAmYXJncyk7CiAJaWYgKGVycikgewogCQlpZiAoZXJyID09IC1FTk9TWVMpIHsKQEAgLTI1NzMsMTQgKzI2OTYsMTQgQEAgbG9uZyBmdXNlX2RvX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZywKIAkJLmZsYWdzID0gZmxhZ3MKIAl9OwogCXN0cnVjdCBmdXNlX2lvY3RsX291dCBvdXRhcmc7Ci0Jc3RydWN0IGZ1c2VfcmVxICpyZXEgPSBOVUxMOwotCXN0cnVjdCBwYWdlICoqcGFnZXMgPSBOVUxMOwogCXN0cnVjdCBpb3ZlYyAqaW92X3BhZ2UgPSBOVUxMOwogCXN0cnVjdCBpb3ZlYyAqaW5faW92ID0gTlVMTCwgKm91dF9pb3YgPSBOVUxMOwotCXVuc2lnbmVkIGludCBpbl9pb3ZzID0gMCwgb3V0X2lvdnMgPSAwLCBudW1fcGFnZXMgPSAwLCBtYXhfcGFnZXM7Ci0Jc2l6ZV90IGluX3NpemUsIG91dF9zaXplLCB0cmFuc2ZlcnJlZCwgYzsKKwl1bnNpZ25lZCBpbnQgaW5faW92cyA9IDAsIG91dF9pb3ZzID0gMCwgbWF4X3BhZ2VzOworCXNpemVfdCBpbl9zaXplLCBvdXRfc2l6ZSwgYzsKKwlzc2l6ZV90IHRyYW5zZmVycmVkOwogCWludCBlcnIsIGk7CiAJc3RydWN0IGlvdl9pdGVyIGlpOworCXN0cnVjdCBmdXNlX2FyZ3NfcGFnZXMgYXAgPSB7fTsKIAogI2lmIEJJVFNfUEVSX0xPTkcgPT0gMzIKIAlpbmFyZy5mbGFncyB8PSBGVVNFX0lPQ1RMXzMyQklUOwpAQCAtMjU5OCwxMSArMjcyMSwxMyBAQCBsb25nIGZ1c2VfZG9faW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnLAogCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGZ1c2VfaW9jdGxfaW92ZWMpICogRlVTRV9JT0NUTF9NQVhfSU9WID4gUEFHRV9TSVpFKTsKIAogCWVyciA9IC1FTk9NRU07Ci0JcGFnZXMgPSBrY2FsbG9jKGZjLT5tYXhfcGFnZXMsIHNpemVvZihwYWdlc1swXSksIEdGUF9LRVJORUwpOworCWFwLnBhZ2VzID0gZnVzZV9wYWdlc19hbGxvYyhmYy0+bWF4X3BhZ2VzLCBHRlBfS0VSTkVMLCAmYXAuZGVzY3MpOwogCWlvdl9wYWdlID0gKHN0cnVjdCBpb3ZlYyAqKSBfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7Ci0JaWYgKCFwYWdlcyB8fCAhaW92X3BhZ2UpCisJaWYgKCFhcC5wYWdlcyB8fCAhaW92X3BhZ2UpCiAJCWdvdG8gb3V0OwogCisJZnVzZV9wYWdlX2Rlc2NzX2xlbmd0aF9pbml0KGFwLmRlc2NzLCAwLCBmYy0+bWF4X3BhZ2VzKTsKKwogCS8qCiAJICogSWYgcmVzdHJpY3RlZCwgaW5pdGlhbGl6ZSBJTyBwYXJhbWV0ZXJzIGFzIGVuY29kZWQgaW4gQGNtZC4KIAkgKiBSRVRSWSBmcm9tIHNlcnZlciBpcyBub3QgYWxsb3dlZC4KQEAgLTI2MzksNTYgKzI3NjQsNDQgQEAgbG9uZyBmdXNlX2RvX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZywKIAllcnIgPSAtRU5PTUVNOwogCWlmIChtYXhfcGFnZXMgPiBmYy0+bWF4X3BhZ2VzKQogCQlnb3RvIG91dDsKLQl3aGlsZSAobnVtX3BhZ2VzIDwgbWF4X3BhZ2VzKSB7Ci0JCXBhZ2VzW251bV9wYWdlc10gPSBhbGxvY19wYWdlKEdGUF9LRVJORUwgfCBfX0dGUF9ISUdITUVNKTsKLQkJaWYgKCFwYWdlc1tudW1fcGFnZXNdKQorCXdoaWxlIChhcC5udW1fcGFnZXMgPCBtYXhfcGFnZXMpIHsKKwkJYXAucGFnZXNbYXAubnVtX3BhZ2VzXSA9IGFsbG9jX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX0hJR0hNRU0pOworCQlpZiAoIWFwLnBhZ2VzW2FwLm51bV9wYWdlc10pCiAJCQlnb3RvIG91dDsKLQkJbnVtX3BhZ2VzKys7CisJCWFwLm51bV9wYWdlcysrOwogCX0KIAotCXJlcSA9IGZ1c2VfZ2V0X3JlcShmYywgbnVtX3BhZ2VzKTsKLQlpZiAoSVNfRVJSKHJlcSkpIHsKLQkJZXJyID0gUFRSX0VSUihyZXEpOwotCQlyZXEgPSBOVUxMOwotCQlnb3RvIG91dDsKLQl9Ci0JbWVtY3B5KHJlcS0+cGFnZXMsIHBhZ2VzLCBzaXplb2YocmVxLT5wYWdlc1swXSkgKiBudW1fcGFnZXMpOwotCXJlcS0+bnVtX3BhZ2VzID0gbnVtX3BhZ2VzOwotCWZ1c2VfcGFnZV9kZXNjc19sZW5ndGhfaW5pdChyZXEsIDAsIHJlcS0+bnVtX3BhZ2VzKTsKIAogCS8qIG9rYXksIGxldCdzIHNlbmQgaXQgdG8gdGhlIGNsaWVudCAqLwotCXJlcS0+aW4uaC5vcGNvZGUgPSBGVVNFX0lPQ1RMOwotCXJlcS0+aW4uaC5ub2RlaWQgPSBmZi0+bm9kZWlkOwotCXJlcS0+aW4ubnVtYXJncyA9IDE7Ci0JcmVxLT5pbi5hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOwotCXJlcS0+aW4uYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKKwlhcC5hcmdzLm9wY29kZSA9IEZVU0VfSU9DVEw7CisJYXAuYXJncy5ub2RlaWQgPSBmZi0+bm9kZWlkOworCWFwLmFyZ3MuaW5fbnVtYXJncyA9IDE7CisJYXAuYXJncy5pbl9hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOworCWFwLmFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKIAlpZiAoaW5fc2l6ZSkgewotCQlyZXEtPmluLm51bWFyZ3MrKzsKLQkJcmVxLT5pbi5hcmdzWzFdLnNpemUgPSBpbl9zaXplOwotCQlyZXEtPmluLmFyZ3BhZ2VzID0gMTsKKwkJYXAuYXJncy5pbl9udW1hcmdzKys7CisJCWFwLmFyZ3MuaW5fYXJnc1sxXS5zaXplID0gaW5fc2l6ZTsKKwkJYXAuYXJncy5pbl9wYWdlcyA9IHRydWU7CiAKIAkJZXJyID0gLUVGQVVMVDsKIAkJaW92X2l0ZXJfaW5pdCgmaWksIFdSSVRFLCBpbl9pb3YsIGluX2lvdnMsIGluX3NpemUpOwotCQlmb3IgKGkgPSAwOyBpb3ZfaXRlcl9jb3VudCgmaWkpICYmICFXQVJOX09OKGkgPj0gbnVtX3BhZ2VzKTsgaSsrKSB7Ci0JCQljID0gY29weV9wYWdlX2Zyb21faXRlcihwYWdlc1tpXSwgMCwgUEFHRV9TSVpFLCAmaWkpOworCQlmb3IgKGkgPSAwOyBpb3ZfaXRlcl9jb3VudCgmaWkpICYmICFXQVJOX09OKGkgPj0gYXAubnVtX3BhZ2VzKTsgaSsrKSB7CisJCQljID0gY29weV9wYWdlX2Zyb21faXRlcihhcC5wYWdlc1tpXSwgMCwgUEFHRV9TSVpFLCAmaWkpOwogCQkJaWYgKGMgIT0gUEFHRV9TSVpFICYmIGlvdl9pdGVyX2NvdW50KCZpaSkpCiAJCQkJZ290byBvdXQ7CiAJCX0KIAl9CiAKLQlyZXEtPm91dC5udW1hcmdzID0gMjsKLQlyZXEtPm91dC5hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKLQlyZXEtPm91dC5hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKLQlyZXEtPm91dC5hcmdzWzFdLnNpemUgPSBvdXRfc2l6ZTsKLQlyZXEtPm91dC5hcmdwYWdlcyA9IDE7Ci0JcmVxLT5vdXQuYXJndmFyID0gMTsKKwlhcC5hcmdzLm91dF9udW1hcmdzID0gMjsKKwlhcC5hcmdzLm91dF9hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKKwlhcC5hcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKKwlhcC5hcmdzLm91dF9hcmdzWzFdLnNpemUgPSBvdXRfc2l6ZTsKKwlhcC5hcmdzLm91dF9wYWdlcyA9IHRydWU7CisJYXAuYXJncy5vdXRfYXJndmFyID0gdHJ1ZTsKIAotCWZ1c2VfcmVxdWVzdF9zZW5kKGZjLCByZXEpOwotCWVyciA9IHJlcS0+b3V0LmguZXJyb3I7Ci0JdHJhbnNmZXJyZWQgPSByZXEtPm91dC5hcmdzWzFdLnNpemU7Ci0JZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKLQlyZXEgPSBOVUxMOwotCWlmIChlcnIpCisJdHJhbnNmZXJyZWQgPSBmdXNlX3NpbXBsZV9yZXF1ZXN0KGZjLCAmYXAuYXJncyk7CisJZXJyID0gdHJhbnNmZXJyZWQ7CisJaWYgKHRyYW5zZmVycmVkIDwgMCkKIAkJZ290byBvdXQ7CiAKIAkvKiBkaWQgaXQgYXNrIGZvciByZXRyeT8gKi8KQEAgLTI3MTMsNyArMjgyNiw3IEBAIGxvbmcgZnVzZV9kb19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcsCiAJCSAgICBpbl9pb3ZzICsgb3V0X2lvdnMgPiBGVVNFX0lPQ1RMX01BWF9JT1YpCiAJCQlnb3RvIG91dDsKIAotCQl2YWRkciA9IGttYXBfYXRvbWljKHBhZ2VzWzBdKTsKKwkJdmFkZHIgPSBrbWFwX2F0b21pYyhhcC5wYWdlc1swXSk7CiAJCWVyciA9IGZ1c2VfY29weV9pb2N0bF9pb3ZlYyhmYywgaW92X3BhZ2UsIHZhZGRyLAogCQkJCQkgICAgdHJhbnNmZXJyZWQsIGluX2lvdnMgKyBvdXRfaW92cywKIAkJCQkJICAgIChmbGFncyAmIEZVU0VfSU9DVExfQ09NUEFUKSAhPSAwKTsKQEAgLTI3NDEsMTkgKzI4NTQsMTcgQEAgbG9uZyBmdXNlX2RvX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZywKIAogCWVyciA9IC1FRkFVTFQ7CiAJaW92X2l0ZXJfaW5pdCgmaWksIFJFQUQsIG91dF9pb3YsIG91dF9pb3ZzLCB0cmFuc2ZlcnJlZCk7Ci0JZm9yIChpID0gMDsgaW92X2l0ZXJfY291bnQoJmlpKSAmJiAhV0FSTl9PTihpID49IG51bV9wYWdlcyk7IGkrKykgewotCQljID0gY29weV9wYWdlX3RvX2l0ZXIocGFnZXNbaV0sIDAsIFBBR0VfU0laRSwgJmlpKTsKKwlmb3IgKGkgPSAwOyBpb3ZfaXRlcl9jb3VudCgmaWkpICYmICFXQVJOX09OKGkgPj0gYXAubnVtX3BhZ2VzKTsgaSsrKSB7CisJCWMgPSBjb3B5X3BhZ2VfdG9faXRlcihhcC5wYWdlc1tpXSwgMCwgUEFHRV9TSVpFLCAmaWkpOwogCQlpZiAoYyAhPSBQQUdFX1NJWkUgJiYgaW92X2l0ZXJfY291bnQoJmlpKSkKIAkJCWdvdG8gb3V0OwogCX0KIAllcnIgPSAwOwogIG91dDoKLQlpZiAocmVxKQotCQlmdXNlX3B1dF9yZXF1ZXN0KGZjLCByZXEpOwogCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZykgaW92X3BhZ2UpOwotCXdoaWxlIChudW1fcGFnZXMpCi0JCV9fZnJlZV9wYWdlKHBhZ2VzWy0tbnVtX3BhZ2VzXSk7Ci0Ja2ZyZWUocGFnZXMpOworCXdoaWxlIChhcC5udW1fcGFnZXMpCisJCV9fZnJlZV9wYWdlKGFwLnBhZ2VzWy0tYXAubnVtX3BhZ2VzXSk7CisJa2ZyZWUoYXAucGFnZXMpOwogCiAJcmV0dXJuIGVyciA/IGVyciA6IG91dGFyZy5yZXN1bHQ7CiB9CkBAIC0yODYxLDE0ICsyOTcyLDE0IEBAIF9fcG9sbF90IGZ1c2VfZmlsZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQogCQlmdXNlX3JlZ2lzdGVyX3BvbGxlZF9maWxlKGZjLCBmZik7CiAJfQogCi0JYXJncy5pbi5oLm9wY29kZSA9IEZVU0VfUE9MTDsKLQlhcmdzLmluLmgubm9kZWlkID0gZmYtPm5vZGVpZDsKLQlhcmdzLmluLm51bWFyZ3MgPSAxOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKLQlhcmdzLmluLmFyZ3NbMF0udmFsdWUgPSAmaW5hcmc7Ci0JYXJncy5vdXQubnVtYXJncyA9IDE7Ci0JYXJncy5vdXQuYXJnc1swXS5zaXplID0gc2l6ZW9mKG91dGFyZyk7Ci0JYXJncy5vdXQuYXJnc1swXS52YWx1ZSA9ICZvdXRhcmc7CisJYXJncy5vcGNvZGUgPSBGVVNFX1BPTEw7CisJYXJncy5ub2RlaWQgPSBmZi0+bm9kZWlkOworCWFyZ3MuaW5fbnVtYXJncyA9IDE7CisJYXJncy5pbl9hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOworCWFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKKwlhcmdzLm91dF9udW1hcmdzID0gMTsKKwlhcmdzLm91dF9hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKKwlhcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKIAllcnIgPSBmdXNlX3NpbXBsZV9yZXF1ZXN0KGZjLCAmYXJncyk7CiAKIAlpZiAoIWVycikKQEAgLTMwNzYsMTEgKzMxODcsMTEgQEAgc3RhdGljIGxvbmcgZnVzZV9maWxlX2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQsCiAJaWYgKCEobW9kZSAmIEZBTExPQ19GTF9LRUVQX1NJWkUpKQogCQlzZXRfYml0KEZVU0VfSV9TSVpFX1VOU1RBQkxFLCAmZmktPnN0YXRlKTsKIAotCWFyZ3MuaW4uaC5vcGNvZGUgPSBGVVNFX0ZBTExPQ0FURTsKLQlhcmdzLmluLmgubm9kZWlkID0gZmYtPm5vZGVpZDsKLQlhcmdzLmluLm51bWFyZ3MgPSAxOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKLQlhcmdzLmluLmFyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CisJYXJncy5vcGNvZGUgPSBGVVNFX0ZBTExPQ0FURTsKKwlhcmdzLm5vZGVpZCA9IGZmLT5ub2RlaWQ7CisJYXJncy5pbl9udW1hcmdzID0gMTsKKwlhcmdzLmluX2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7CisJYXJncy5pbl9hcmdzWzBdLnZhbHVlID0gJmluYXJnOwogCWVyciA9IGZ1c2Vfc2ltcGxlX3JlcXVlc3QoZmMsICZhcmdzKTsKIAlpZiAoZXJyID09IC1FTk9TWVMpIHsKIAkJZmMtPm5vX2ZhbGxvY2F0ZSA9IDE7CkBAIC0zMTY4LDE0ICszMjc5LDE0IEBAIHN0YXRpYyBzc2l6ZV90IF9fZnVzZV9jb3B5X2ZpbGVfcmFuZ2Uoc3RydWN0IGZpbGUgKmZpbGVfaW4sIGxvZmZfdCBwb3NfaW4sCiAJaWYgKGlzX3Vuc3RhYmxlKQogCQlzZXRfYml0KEZVU0VfSV9TSVpFX1VOU1RBQkxFLCAmZmlfb3V0LT5zdGF0ZSk7CiAKLQlhcmdzLmluLmgub3Bjb2RlID0gRlVTRV9DT1BZX0ZJTEVfUkFOR0U7Ci0JYXJncy5pbi5oLm5vZGVpZCA9IGZmX2luLT5ub2RlaWQ7Ci0JYXJncy5pbi5udW1hcmdzID0gMTsKLQlhcmdzLmluLmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7Ci0JYXJncy5pbi5hcmdzWzBdLnZhbHVlID0gJmluYXJnOwotCWFyZ3Mub3V0Lm51bWFyZ3MgPSAxOwotCWFyZ3Mub3V0LmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihvdXRhcmcpOwotCWFyZ3Mub3V0LmFyZ3NbMF0udmFsdWUgPSAmb3V0YXJnOworCWFyZ3Mub3Bjb2RlID0gRlVTRV9DT1BZX0ZJTEVfUkFOR0U7CisJYXJncy5ub2RlaWQgPSBmZl9pbi0+bm9kZWlkOworCWFyZ3MuaW5fbnVtYXJncyA9IDE7CisJYXJncy5pbl9hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOworCWFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKKwlhcmdzLm91dF9udW1hcmdzID0gMTsKKwlhcmdzLm91dF9hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKKwlhcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKIAllcnIgPSBmdXNlX3NpbXBsZV9yZXF1ZXN0KGZjLCAmYXJncyk7CiAJaWYgKGVyciA9PSAtRU5PU1lTKSB7CiAJCWZjLT5ub19jb3B5X2ZpbGVfcmFuZ2UgPSAxOwpkaWZmIC0tZ2l0IGEvZnMvZnVzZS9mdXNlX2kuaCBiL2ZzL2Z1c2UvZnVzZV9pLmgKaW5kZXggMjRkYmNhNy4uOTU2YWVhZiAxMDA2NDQKLS0tIGEvZnMvZnVzZS9mdXNlX2kuaAorKysgYi9mcy9mdXNlL2Z1c2VfaS5oCkBAIC00Nyw5ICs0Nyw2IEBACiAvKiogTnVtYmVyIG9mIGRlbnRyaWVzIGZvciBlYWNoIGNvbm5lY3Rpb24gaW4gdGhlIGNvbnRyb2wgZmlsZXN5c3RlbSAqLwogI2RlZmluZSBGVVNFX0NUTF9OVU1fREVOVFJJRVMgNQogCi0vKiogTnVtYmVyIG9mIHBhZ2UgcG9pbnRlcnMgZW1iZWRkZWQgaW4gZnVzZV9yZXEgKi8KLSNkZWZpbmUgRlVTRV9SRVFfSU5MSU5FX1BBR0VTIDEKLQogLyoqIExpc3Qgb2YgYWN0aXZlIGNvbm5lY3Rpb25zICovCiBleHRlcm4gc3RydWN0IGxpc3RfaGVhZCBmdXNlX2Nvbm5fbGlzdDsKIApAQCAtMTY0LDE3ICsxNjEsMTUgQEAgZW51bSB7CiB9OwogCiBzdHJ1Y3QgZnVzZV9jb25uOworc3RydWN0IGZ1c2VfcmVsZWFzZV9hcmdzOwogCiAvKiogRlVTRSBzcGVjaWZpYyBmaWxlIGRhdGEgKi8KIHN0cnVjdCBmdXNlX2ZpbGUgewogCS8qKiBGdXNlIGNvbm5lY3Rpb24gZm9yIHRoaXMgZmlsZSAqLwogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjOwogCi0JLyoKLQkgKiBSZXF1ZXN0IHJlc2VydmVkIGZvciBmbHVzaCBhbmQgcmVsZWFzZS4KLQkgKiBNb2RpZmllZCB1bmRlciByZWxhdGl2ZSBmdXNlX2lub2RlOjpsb2NrLgotCSAqLwotCXN0cnVjdCBmdXNlX3JlcSAqcmVzZXJ2ZWRfcmVxOworCS8qIEFyZ3VtZW50IHNwYWNlIHJlc2VydmVkIGZvciByZWxlYXNlICovCisJc3RydWN0IGZ1c2VfcmVsZWFzZV9hcmdzICpyZWxlYXNlX2FyZ3M7CiAKIAkvKiogS2VybmVsIGZpbGUgaGFuZGxlIGd1YXJhbnRlZWQgdG8gYmUgdW5pcXVlICovCiAJdTY0IGtoOwpAQCAtMjI5LDU3ICsyMjQsMTIgQEAgc3RydWN0IGZ1c2VfaW5fYXJnIHsKIAljb25zdCB2b2lkICp2YWx1ZTsKIH07CiAKLS8qKiBUaGUgcmVxdWVzdCBpbnB1dCAqLwotc3RydWN0IGZ1c2VfaW4gewotCS8qKiBUaGUgcmVxdWVzdCBoZWFkZXIgKi8KLQlzdHJ1Y3QgZnVzZV9pbl9oZWFkZXIgaDsKLQotCS8qKiBUcnVlIGlmIHRoZSBkYXRhIGZvciB0aGUgbGFzdCBhcmd1bWVudCBpcyBpbiByZXEtPnBhZ2VzICovCi0JdW5zaWduZWQgYXJncGFnZXM6MTsKLQotCS8qKiBOdW1iZXIgb2YgYXJndW1lbnRzICovCi0JdW5zaWduZWQgbnVtYXJnczsKLQotCS8qKiBBcnJheSBvZiBhcmd1bWVudHMgKi8KLQlzdHJ1Y3QgZnVzZV9pbl9hcmcgYXJnc1szXTsKLX07Ci0KIC8qKiBPbmUgb3V0cHV0IGFyZ3VtZW50IG9mIGEgcmVxdWVzdCAqLwogc3RydWN0IGZ1c2VfYXJnIHsKIAl1bnNpZ25lZCBzaXplOwogCXZvaWQgKnZhbHVlOwogfTsKIAotLyoqIFRoZSByZXF1ZXN0IG91dHB1dCAqLwotc3RydWN0IGZ1c2Vfb3V0IHsKLQkvKiogSGVhZGVyIHJldHVybmVkIGZyb20gdXNlcnNwYWNlICovCi0Jc3RydWN0IGZ1c2Vfb3V0X2hlYWRlciBoOwotCi0JLyoKLQkgKiBUaGUgZm9sbG93aW5nIGJpdGZpZWxkcyBhcmUgbm90IGNoYW5nZWQgZHVyaW5nIHRoZSByZXF1ZXN0Ci0JICogcHJvY2Vzc2luZwotCSAqLwotCi0JLyoqIExhc3QgYXJndW1lbnQgaXMgdmFyaWFibGUgbGVuZ3RoIChjYW4gYmUgc2hvcnRlciB0aGFuCi0JICAgIGFyZy0+c2l6ZSkgKi8KLQl1bnNpZ25lZCBhcmd2YXI6MTsKLQotCS8qKiBMYXN0IGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBwYWdlcyB0byBjb3B5IGRhdGEgdG8gKi8KLQl1bnNpZ25lZCBhcmdwYWdlczoxOwotCi0JLyoqIFplcm8gcGFydGlhbGx5IG9yIG5vdCBjb3BpZWQgcGFnZXMgKi8KLQl1bnNpZ25lZCBwYWdlX3plcm9pbmc6MTsKLQotCS8qKiBQYWdlcyBtYXkgYmUgcmVwbGFjZWQgd2l0aCBuZXcgb25lcyAqLwotCXVuc2lnbmVkIHBhZ2VfcmVwbGFjZToxOwotCi0JLyoqIE51bWJlciBvciBhcmd1bWVudHMgKi8KLQl1bnNpZ25lZCBudW1hcmdzOwotCi0JLyoqIEFycmF5IG9mIGFyZ3VtZW50cyAqLwotCXN0cnVjdCBmdXNlX2FyZyBhcmdzWzJdOwotfTsKLQogLyoqIEZVU0UgcGFnZSBkZXNjcmlwdG9yICovCiBzdHJ1Y3QgZnVzZV9wYWdlX2Rlc2MgewogCXVuc2lnbmVkIGludCBsZW5ndGg7CkBAIC0yODcsMjAgKzIzNywyOCBAQCBzdHJ1Y3QgZnVzZV9wYWdlX2Rlc2MgewogfTsKIAogc3RydWN0IGZ1c2VfYXJncyB7Ci0Jc3RydWN0IHsKLQkJc3RydWN0IHsKLQkJCXVpbnQzMl90IG9wY29kZTsKLQkJCXVpbnQ2NF90IG5vZGVpZDsKLQkJfSBoOwotCQl1bnNpZ25lZCBudW1hcmdzOwotCQlzdHJ1Y3QgZnVzZV9pbl9hcmcgYXJnc1szXTsKKwl1aW50NjRfdCBub2RlaWQ7CisJdWludDMyX3Qgb3Bjb2RlOworCXVuc2lnbmVkIHNob3J0IGluX251bWFyZ3M7CisJdW5zaWduZWQgc2hvcnQgb3V0X251bWFyZ3M7CisJYm9vbCBmb3JjZToxOworCWJvb2wgbm9yZXBseToxOworCWJvb2wgbm9jcmVkczoxOworCWJvb2wgaW5fcGFnZXM6MTsKKwlib29sIG91dF9wYWdlczoxOworCWJvb2wgb3V0X2FyZ3ZhcjoxOworCWJvb2wgcGFnZV96ZXJvaW5nOjE7CisJYm9vbCBwYWdlX3JlcGxhY2U6MTsKKwlzdHJ1Y3QgZnVzZV9pbl9hcmcgaW5fYXJnc1szXTsKKwlzdHJ1Y3QgZnVzZV9hcmcgb3V0X2FyZ3NbMl07CisJdm9pZCAoKmVuZCkoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MsIGludCBlcnJvcik7Cit9OwogCi0JfSBpbjsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBhcmd2YXI6MTsKLQkJdW5zaWduZWQgbnVtYXJnczsKLQkJc3RydWN0IGZ1c2VfYXJnIGFyZ3NbMl07Ci0JfSBvdXQ7CitzdHJ1Y3QgZnVzZV9hcmdzX3BhZ2VzIHsKKwlzdHJ1Y3QgZnVzZV9hcmdzIGFyZ3M7CisJc3RydWN0IHBhZ2UgKipwYWdlczsKKwlzdHJ1Y3QgZnVzZV9wYWdlX2Rlc2MgKmRlc2NzOworCXVuc2lnbmVkIGludCBudW1fcGFnZXM7CiB9OwogCiAjZGVmaW5lIEZVU0VfQVJHUyhhcmdzKSBzdHJ1Y3QgZnVzZV9hcmdzIGFyZ3MgPSB7fQpAQCAtMzczLDgzICszMzEsNzkgQEAgc3RydWN0IGZ1c2VfcmVxIHsKIAkvKiogRW50cnkgb24gdGhlIGludGVycnVwdHMgbGlzdCAgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGludHJfZW50cnk7CiAKKwkvKiBJbnB1dC9vdXRwdXQgYXJndW1lbnRzICovCisJc3RydWN0IGZ1c2VfYXJncyAqYXJnczsKKwogCS8qKiByZWZjb3VudCAqLwogCXJlZmNvdW50X3QgY291bnQ7CiAKIAkvKiBSZXF1ZXN0IGZsYWdzLCB1cGRhdGVkIHdpdGggdGVzdC9zZXQvY2xlYXJfYml0KCkgKi8KIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JLyoqIFRoZSByZXF1ZXN0IGlucHV0ICovCi0Jc3RydWN0IGZ1c2VfaW4gaW47CisJLyogVGhlIHJlcXVlc3QgaW5wdXQgaGVhZGVyICovCisJc3RydWN0IHsKKwkJc3RydWN0IGZ1c2VfaW5faGVhZGVyIGg7CisJfSBpbjsKIAotCS8qKiBUaGUgcmVxdWVzdCBvdXRwdXQgKi8KLQlzdHJ1Y3QgZnVzZV9vdXQgb3V0OworCS8qIFRoZSByZXF1ZXN0IG91dHB1dCBoZWFkZXIgKi8KKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgZnVzZV9vdXRfaGVhZGVyIGg7CisJfSBvdXQ7CiAKIAkvKiogVXNlZCB0byB3YWtlIHVwIHRoZSB0YXNrIHdhaXRpbmcgZm9yIGNvbXBsZXRpb24gb2YgcmVxdWVzdCovCiAJd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdHE7CiAKLQkvKiogRGF0YSBmb3IgYXN5bmNocm9ub3VzIHJlcXVlc3RzICovCi0JdW5pb24gewotCQlzdHJ1Y3QgewotCQkJc3RydWN0IGZ1c2VfcmVsZWFzZV9pbiBpbjsKLQkJCXN0cnVjdCBpbm9kZSAqaW5vZGU7Ci0JCX0gcmVsZWFzZTsKLQkJc3RydWN0IGZ1c2VfaW5pdF9pbiBpbml0X2luOwotCQlzdHJ1Y3QgZnVzZV9pbml0X291dCBpbml0X291dDsKLQkJc3RydWN0IGN1c2VfaW5pdF9pbiBjdXNlX2luaXRfaW47Ci0JCXN0cnVjdCB7Ci0JCQlzdHJ1Y3QgZnVzZV9yZWFkX2luIGluOwotCQkJdTY0IGF0dHJfdmVyOwotCQl9IHJlYWQ7Ci0JCXN0cnVjdCB7Ci0JCQlzdHJ1Y3QgZnVzZV93cml0ZV9pbiBpbjsKLQkJCXN0cnVjdCBmdXNlX3dyaXRlX291dCBvdXQ7Ci0JCQlzdHJ1Y3QgZnVzZV9yZXEgKm5leHQ7Ci0JCX0gd3JpdGU7Ci0JCXN0cnVjdCBmdXNlX25vdGlmeV9yZXRyaWV2ZV9pbiByZXRyaWV2ZV9pbjsKLQl9IG1pc2M7Ci0KLQkvKiogcGFnZSB2ZWN0b3IgKi8KLQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwotCi0JLyoqIHBhZ2UtZGVzY3JpcHRvciB2ZWN0b3IgKi8KLQlzdHJ1Y3QgZnVzZV9wYWdlX2Rlc2MgKnBhZ2VfZGVzY3M7Ci0KLQkvKiogc2l6ZSBvZiB0aGUgJ3BhZ2VzJyBhcnJheSAqLwotCXVuc2lnbmVkIG1heF9wYWdlczsKLQotCS8qKiBpbmxpbmUgcGFnZSB2ZWN0b3IgKi8KLQlzdHJ1Y3QgcGFnZSAqaW5saW5lX3BhZ2VzW0ZVU0VfUkVRX0lOTElORV9QQUdFU107Ci0KLQkvKiogaW5saW5lIHBhZ2UtZGVzY3JpcHRvciB2ZWN0b3IgKi8KLQlzdHJ1Y3QgZnVzZV9wYWdlX2Rlc2MgaW5saW5lX3BhZ2VfZGVzY3NbRlVTRV9SRVFfSU5MSU5FX1BBR0VTXTsKLQotCS8qKiBudW1iZXIgb2YgcGFnZXMgaW4gdmVjdG9yICovCi0JdW5zaWduZWQgbnVtX3BhZ2VzOwotCi0JLyoqIEZpbGUgdXNlZCBpbiB0aGUgcmVxdWVzdCAob3IgTlVMTCkgKi8KLQlzdHJ1Y3QgZnVzZV9maWxlICpmZjsKLQotCS8qKiBJbm9kZSB1c2VkIGluIHRoZSByZXF1ZXN0IG9yIE5VTEwgKi8KLQlzdHJ1Y3QgaW5vZGUgKmlub2RlOwotCi0JLyoqIEFJTyBjb250cm9sIGJsb2NrICovCi0Jc3RydWN0IGZ1c2VfaW9fcHJpdiAqaW87Ci0KLQkvKiogTGluayBvbiBmaS0+d3JpdGVwYWdlcyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgd3JpdGVwYWdlc19lbnRyeTsKLQotCS8qKiBSZXF1ZXN0IGNvbXBsZXRpb24gY2FsbGJhY2sgKi8KLQl2b2lkICgqZW5kKShzdHJ1Y3QgZnVzZV9jb25uICosIHN0cnVjdCBmdXNlX3JlcSAqKTsKLQotCS8qKiBSZXF1ZXN0IGlzIHN0b2xlbiBmcm9tIGZ1c2VfZmlsZS0+cmVzZXJ2ZWRfcmVxICovCi0Jc3RydWN0IGZpbGUgKnN0b2xlbl9maWxlOworI2lmIElTX0VOQUJMRUQoQ09ORklHX1ZJUlRJT19GUykKKwkvKiogdmlydGlvLWZzJ3MgcGh5c2ljYWxseSBjb250aWd1b3VzIGJ1ZmZlciBmb3IgaW4gYW5kIG91dCBhcmdzICovCisJdm9pZCAqYXJnYnVmOworI2VuZGlmCiB9OwogCitzdHJ1Y3QgZnVzZV9pcXVldWU7CisKKy8qKgorICogSW5wdXQgcXVldWUgY2FsbGJhY2tzCisgKgorICogSW5wdXQgcXVldWUgc2lnbmFsbGluZyBpcyBkZXZpY2Utc3BlY2lmaWMuICBGb3IgZXhhbXBsZSwgdGhlIC9kZXYvZnVzZSBmaWxlCisgKiB1c2VzIGZpcS0+d2FpdHEgYW5kIGZhc3luYyB0byB3YWtlIHByb2Nlc3NlcyB0aGF0IGFyZSB3YWl0aW5nIG9uIHF1ZXVlCisgKiByZWFkaW5lc3MuICBUaGVzZSBjYWxsYmFja3MgYWxsb3cgb3RoZXIgZGV2aWNlIHR5cGVzIHRvIHJlc3BvbmQgdG8gaW5wdXQKKyAqIHF1ZXVlIGFjdGl2aXR5LgorICovCitzdHJ1Y3QgZnVzZV9pcXVldWVfb3BzIHsKKwkvKioKKwkgKiBTaWduYWwgdGhhdCBhIGZvcmdldCBoYXMgYmVlbiBxdWV1ZWQKKwkgKi8KKwl2b2lkICgqd2FrZV9mb3JnZXRfYW5kX3VubG9jaykoc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEpCisJCV9fcmVsZWFzZXMoZmlxLT5sb2NrKTsKKworCS8qKgorCSAqIFNpZ25hbCB0aGF0IGFuIElOVEVSUlVQVCByZXF1ZXN0IGhhcyBiZWVuIHF1ZXVlZAorCSAqLworCXZvaWQgKCp3YWtlX2ludGVycnVwdF9hbmRfdW5sb2NrKShzdHJ1Y3QgZnVzZV9pcXVldWUgKmZpcSkKKwkJX19yZWxlYXNlcyhmaXEtPmxvY2spOworCisJLyoqCisJICogU2lnbmFsIHRoYXQgYSByZXF1ZXN0IGhhcyBiZWVuIHF1ZXVlZAorCSAqLworCXZvaWQgKCp3YWtlX3BlbmRpbmdfYW5kX3VubG9jaykoc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEpCisJCV9fcmVsZWFzZXMoZmlxLT5sb2NrKTsKKworCS8qKgorCSAqIENsZWFuIHVwIHdoZW4gZnVzZV9pcXVldWUgaXMgZGVzdHJveWVkCisJICovCisJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxKTsKK307CisKKy8qKiAvZGV2L2Z1c2UgaW5wdXQgcXVldWUgb3BlcmF0aW9ucyAqLworZXh0ZXJuIGNvbnN0IHN0cnVjdCBmdXNlX2lxdWV1ZV9vcHMgZnVzZV9kZXZfZmlxX29wczsKKwogc3RydWN0IGZ1c2VfaXF1ZXVlIHsKIAkvKiogQ29ubmVjdGlvbiBlc3RhYmxpc2hlZCAqLwogCXVuc2lnbmVkIGNvbm5lY3RlZDsKIAorCS8qKiBMb2NrIHByb3RlY3RpbmcgYWNjZXNzZXMgdG8gbWVtYmVycyBvZiB0aGlzIHN0cnVjdHVyZSAqLworCXNwaW5sb2NrX3QgbG9jazsKKwogCS8qKiBSZWFkZXJzIG9mIHRoZSBjb25uZWN0aW9uIGFyZSB3YWl0aW5nIG9uIHRoaXMgKi8KIAl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0cTsKIApAQCAtNDcxLDYgKzQyNSwxMiBAQCBzdHJ1Y3QgZnVzZV9pcXVldWUgewogCiAJLyoqIE9fQVNZTkMgcmVxdWVzdHMgKi8KIAlzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqZmFzeW5jOworCisJLyoqIERldmljZS1zcGVjaWZpYyBjYWxsYmFja3MgKi8KKwljb25zdCBzdHJ1Y3QgZnVzZV9pcXVldWVfb3BzICpvcHM7CisKKwkvKiogRGV2aWNlLXNwZWNpZmljIHN0YXRlICovCisJdm9pZCAqcHJpdjsKIH07CiAKICNkZWZpbmUgRlVTRV9QUV9IQVNIX0JJVFMgOApAQCAtNTA0LDYgKzQ2NCwyOSBAQCBzdHJ1Y3QgZnVzZV9kZXYgewogCXN0cnVjdCBsaXN0X2hlYWQgZW50cnk7CiB9OwogCitzdHJ1Y3QgZnVzZV9mc19jb250ZXh0IHsKKwlpbnQgZmQ7CisJdW5zaWduZWQgaW50IHJvb3Rtb2RlOworCWt1aWRfdCB1c2VyX2lkOworCWtnaWRfdCBncm91cF9pZDsKKwlib29sIGlzX2JkZXY6MTsKKwlib29sIGZkX3ByZXNlbnQ6MTsKKwlib29sIHJvb3Rtb2RlX3ByZXNlbnQ6MTsKKwlib29sIHVzZXJfaWRfcHJlc2VudDoxOworCWJvb2wgZ3JvdXBfaWRfcHJlc2VudDoxOworCWJvb2wgZGVmYXVsdF9wZXJtaXNzaW9uczoxOworCWJvb2wgYWxsb3dfb3RoZXI6MTsKKwlib29sIGRlc3Ryb3k6MTsKKwlib29sIG5vX2NvbnRyb2w6MTsKKwlib29sIG5vX2ZvcmNlX3Vtb3VudDoxOworCXVuc2lnbmVkIGludCBtYXhfcmVhZDsKKwl1bnNpZ25lZCBpbnQgYmxrc2l6ZTsKKwljb25zdCBjaGFyICpzdWJ0eXBlOworCisJLyogZnVzZV9kZXYgcG9pbnRlciB0byBmaWxsIGluLCBzaG91bGQgY29udGFpbiBOVUxMIG9uIGVudHJ5ICovCisJdm9pZCAqKmZ1ZHB0cjsKK307CisKIC8qKgogICogQSBGdXNlIGNvbm5lY3Rpb24uCiAgKgpAQCAtNTg0LDkgKzU2Nyw2IEBAIHN0cnVjdCBmdXNlX2Nvbm4gewogCS8qKiB3YWl0cSBmb3IgYmxvY2tlZCBjb25uZWN0aW9uICovCiAJd2FpdF9xdWV1ZV9oZWFkX3QgYmxvY2tlZF93YWl0cTsKIAotCS8qKiB3YWl0cSBmb3IgcmVzZXJ2ZWQgcmVxdWVzdHMgKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCByZXNlcnZlZF9yZXFfd2FpdHE7Ci0KIAkvKiogQ29ubmVjdGlvbiBlc3RhYmxpc2hlZCwgY2xlYXJlZCBvbiB1bW91bnQsIGNvbm5lY3Rpb24KIAkgICAgYWJvcnQgYW5kIGRldmljZSByZWxlYXNlICovCiAJdW5zaWduZWQgY29ubmVjdGVkOwpAQCAtNzIxLDYgKzcwMSwxOCBAQCBzdHJ1Y3QgZnVzZV9jb25uIHsKIAkvKiogRG9lcyB0aGUgZmlsZXN5c3RlbSBzdXBwb3J0IGNvcHlfZmlsZV9yYW5nZT8gKi8KIAl1bnNpZ25lZCBub19jb3B5X2ZpbGVfcmFuZ2U6MTsKIAorCS8qIFNlbmQgREVTVFJPWSByZXF1ZXN0ICovCisJdW5zaWduZWQgaW50IGRlc3Ryb3k6MTsKKworCS8qIERlbGV0ZSBkZW50cmllcyB0aGF0IGhhdmUgZ29uZSBzdGFsZSAqLworCXVuc2lnbmVkIGludCBkZWxldGVfc3RhbGU6MTsKKworCS8qKiBEbyBub3QgY3JlYXRlIGVudHJ5IGluIGZ1c2VjdGwgZnMgKi8KKwl1bnNpZ25lZCBpbnQgbm9fY29udHJvbDoxOworCisJLyoqIERvIG5vdCBhbGxvdyBNTlRfRk9SQ0UgdW1vdW50ICovCisJdW5zaWduZWQgaW50IG5vX2ZvcmNlX3Vtb3VudDoxOworCiAJLyoqIFRoZSBudW1iZXIgb2YgcmVxdWVzdHMgd2FpdGluZyBmb3IgY29tcGxldGlvbiAqLwogCWF0b21pY190IG51bV93YWl0aW5nOwogCkBAIC03NDIsOSArNzM0LDYgQEAgc3RydWN0IGZ1c2VfY29ubiB7CiAJLyoqIEtleSBmb3IgbG9jayBvd25lciBJRCBzY3JhbWJsaW5nICovCiAJdTMyIHNjcmFtYmxlX2tleVs0XTsKIAotCS8qKiBSZXNlcnZlZCByZXF1ZXN0IGZvciB0aGUgREVTVFJPWSBtZXNzYWdlICovCi0Jc3RydWN0IGZ1c2VfcmVxICpkZXN0cm95X3JlcTsKLQogCS8qKiBWZXJzaW9uIGNvdW50ZXIgZm9yIGF0dHJpYnV0ZSBjaGFuZ2VzICovCiAJYXRvbWljNjRfdCBhdHRyX3ZlcnNpb247CiAKQEAgLTgyMCwxNCArODA5LDMyIEBAIHZvaWQgZnVzZV9xdWV1ZV9mb3JnZXQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2ZvcmdldF9saW5rICpmb3JnZXQsCiAKIHN0cnVjdCBmdXNlX2ZvcmdldF9saW5rICpmdXNlX2FsbG9jX2ZvcmdldCh2b2lkKTsKIAotLyogVXNlZCBieSBSRUFERElSUExVUyAqLwotdm9pZCBmdXNlX2ZvcmNlX2ZvcmdldChzdHJ1Y3QgZmlsZSAqZmlsZSwgdTY0IG5vZGVpZCk7CitzdHJ1Y3QgZnVzZV9mb3JnZXRfbGluayAqZnVzZV9kZXF1ZXVlX2ZvcmdldChzdHJ1Y3QgZnVzZV9pcXVldWUgKmZpcSwKKwkJCQkJICAgICB1bnNpZ25lZCBpbnQgbWF4LAorCQkJCQkgICAgIHVuc2lnbmVkIGludCAqY291bnRwKTsKIAotLyoqCisvKgogICogSW5pdGlhbGl6ZSBSRUFEIG9yIFJFQURESVIgcmVxdWVzdAogICovCi12b2lkIGZ1c2VfcmVhZF9maWxsKHN0cnVjdCBmdXNlX3JlcSAqcmVxLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkJICAgIGxvZmZfdCBwb3MsIHNpemVfdCBjb3VudCwgaW50IG9wY29kZSk7CitzdHJ1Y3QgZnVzZV9pb19hcmdzIHsKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQlzdHJ1Y3QgZnVzZV9yZWFkX2luIGluOworCQkJdTY0IGF0dHJfdmVyOworCQl9IHJlYWQ7CisJCXN0cnVjdCB7CisJCQlzdHJ1Y3QgZnVzZV93cml0ZV9pbiBpbjsKKwkJCXN0cnVjdCBmdXNlX3dyaXRlX291dCBvdXQ7CisJCX0gd3JpdGU7CisJfTsKKwlzdHJ1Y3QgZnVzZV9hcmdzX3BhZ2VzIGFwOworCXN0cnVjdCBmdXNlX2lvX3ByaXYgKmlvOworCXN0cnVjdCBmdXNlX2ZpbGUgKmZmOworfTsKKwordm9pZCBmdXNlX3JlYWRfYXJnc19maWxsKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHBvcywKKwkJCSBzaXplX3QgY291bnQsIGludCBvcGNvZGUpOworCiAKIC8qKgogICogU2VuZCBPUEVOIG9yIE9QRU5ESVIgcmVxdWVzdApAQCAtOTAwLDYxICs5MDcsMTYgQEAgaW50IGZ1c2VfY3RsX2luaXQodm9pZCk7CiB2b2lkIF9fZXhpdCBmdXNlX2N0bF9jbGVhbnVwKHZvaWQpOwogCiAvKioKLSAqIEFsbG9jYXRlIGEgcmVxdWVzdAotICovCi1zdHJ1Y3QgZnVzZV9yZXEgKmZ1c2VfcmVxdWVzdF9hbGxvYyh1bnNpZ25lZCBucGFnZXMpOwotCi1zdHJ1Y3QgZnVzZV9yZXEgKmZ1c2VfcmVxdWVzdF9hbGxvY19ub2ZzKHVuc2lnbmVkIG5wYWdlcyk7Ci0KLWJvb2wgZnVzZV9yZXFfcmVhbGxvY19wYWdlcyhzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEsCi0JCQkgICAgZ2ZwX3QgZmxhZ3MpOwotCi0KLS8qKgotICogRnJlZSBhIHJlcXVlc3QKLSAqLwotdm9pZCBmdXNlX3JlcXVlc3RfZnJlZShzdHJ1Y3QgZnVzZV9yZXEgKnJlcSk7Ci0KLS8qKgotICogR2V0IGEgcmVxdWVzdCwgbWF5IGZhaWwgd2l0aCAtRU5PTUVNLAotICogY2FsbGVyIHNob3VsZCBzcGVjaWZ5ICMgZWxlbWVudHMgaW4gcmVxLT5wYWdlc1tdIGV4cGxpY2l0bHkKLSAqLwotc3RydWN0IGZ1c2VfcmVxICpmdXNlX2dldF9yZXEoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIG5wYWdlcyk7Ci1zdHJ1Y3QgZnVzZV9yZXEgKmZ1c2VfZ2V0X3JlcV9mb3JfYmFja2dyb3VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywKLQkJCQkJICAgICB1bnNpZ25lZCBucGFnZXMpOwotCi0vKgotICogSW5jcmVtZW50IHJlZmVyZW5jZSBjb3VudCBvbiByZXF1ZXN0Ci0gKi8KLXZvaWQgX19mdXNlX2dldF9yZXF1ZXN0KHN0cnVjdCBmdXNlX3JlcSAqcmVxKTsKLQotLyoqCi0gKiBHZXRzIGEgcmVxdWVzdHMgZm9yIGEgZmlsZSBvcGVyYXRpb24sIGFsd2F5cyBzdWNjZWVkcwotICovCi1zdHJ1Y3QgZnVzZV9yZXEgKmZ1c2VfZ2V0X3JlcV9ub2ZhaWxfbm9wYWdlcyhzdHJ1Y3QgZnVzZV9jb25uICpmYywKLQkJCQkJICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSk7Ci0KLS8qKgotICogRGVjcmVtZW50IHJlZmVyZW5jZSBjb3VudCBvZiBhIHJlcXVlc3QuICBJZiBjb3VudCBnb2VzIHRvIHplcm8gZnJlZQotICogdGhlIHJlcXVlc3QuCi0gKi8KLXZvaWQgZnVzZV9wdXRfcmVxdWVzdChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpOwotCi0vKioKLSAqIFNlbmQgYSByZXF1ZXN0IChzeW5jaHJvbm91cykKLSAqLwotdm9pZCBmdXNlX3JlcXVlc3Rfc2VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpOwotCi0vKioKICAqIFNpbXBsZSByZXF1ZXN0IHNlbmRpbmcgdGhhdCBkb2VzIHJlcXVlc3QgYWxsb2NhdGlvbiBhbmQgZnJlZWluZwogICovCiBzc2l6ZV90IGZ1c2Vfc2ltcGxlX3JlcXVlc3Qoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MpOworaW50IGZ1c2Vfc2ltcGxlX2JhY2tncm91bmQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MsCisJCQkgICBnZnBfdCBnZnBfZmxhZ3MpOwogCiAvKioKLSAqIFNlbmQgYSByZXF1ZXN0IGluIHRoZSBiYWNrZ3JvdW5kCisgKiBFbmQgYSBmaW5pc2hlZCByZXF1ZXN0CiAgKi8KLXZvaWQgZnVzZV9yZXF1ZXN0X3NlbmRfYmFja2dyb3VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpOwotYm9vbCBmdXNlX3JlcXVlc3RfcXVldWVfYmFja2dyb3VuZChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpOwordm9pZCBmdXNlX3JlcXVlc3RfZW5kKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSk7CiAKIC8qIEFib3J0IGFsbCByZXF1ZXN0cyAqLwogdm9pZCBmdXNlX2Fib3J0X2Nvbm4oc3RydWN0IGZ1c2VfY29ubiAqZmMpOwpAQCAtOTgwLDE1ICs5NDIsMzMgQEAgc3RydWN0IGZ1c2VfY29ubiAqZnVzZV9jb25uX2dldChzdHJ1Y3QgZnVzZV9jb25uICpmYyk7CiAvKioKICAqIEluaXRpYWxpemUgZnVzZV9jb25uCiAgKi8KLXZvaWQgZnVzZV9jb25uX2luaXQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcl9ucyk7Cit2b2lkIGZ1c2VfY29ubl9pbml0KHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnVzZXJfbnMsCisJCSAgICBjb25zdCBzdHJ1Y3QgZnVzZV9pcXVldWVfb3BzICpmaXFfb3BzLCB2b2lkICpmaXFfcHJpdik7CiAKIC8qKgogICogUmVsZWFzZSByZWZlcmVuY2UgdG8gZnVzZV9jb25uCiAgKi8KIHZvaWQgZnVzZV9jb25uX3B1dChzdHJ1Y3QgZnVzZV9jb25uICpmYyk7CiAKLXN0cnVjdCBmdXNlX2RldiAqZnVzZV9kZXZfYWxsb2Moc3RydWN0IGZ1c2VfY29ubiAqZmMpOworc3RydWN0IGZ1c2VfZGV2ICpmdXNlX2Rldl9hbGxvY19pbnN0YWxsKHN0cnVjdCBmdXNlX2Nvbm4gKmZjKTsKK3N0cnVjdCBmdXNlX2RldiAqZnVzZV9kZXZfYWxsb2Modm9pZCk7Cit2b2lkIGZ1c2VfZGV2X2luc3RhbGwoc3RydWN0IGZ1c2VfZGV2ICpmdWQsIHN0cnVjdCBmdXNlX2Nvbm4gKmZjKTsKIHZvaWQgZnVzZV9kZXZfZnJlZShzdHJ1Y3QgZnVzZV9kZXYgKmZ1ZCk7Cit2b2lkIGZ1c2Vfc2VuZF9pbml0KHN0cnVjdCBmdXNlX2Nvbm4gKmZjKTsKKworLyoqCisgKiBGaWxsIGluIHN1cGVyYmxvY2sgYW5kIGluaXRpYWxpemUgZnVzZSBjb25uZWN0aW9uCisgKiBAc2I6IHBhcnRpYWxseS1pbml0aWFsaXplZCBzdXBlcmJsb2NrIHRvIGZpbGwgaW4KKyAqIEBjdHg6IG1vdW50IGNvbnRleHQKKyAqLworaW50IGZ1c2VfZmlsbF9zdXBlcl9jb21tb24oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZ1c2VfZnNfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBEaXNhc3NvY2lhdGUgZnVzZSBjb25uZWN0aW9uIGZyb20gc3VwZXJibG9jayBhbmQga2lsbCB0aGUgc3VwZXJibG9jaworICoKKyAqIENhbGxzIGtpbGxfYW5vbl9zdXBlcigpLCBkbyBub3QgdXNlIHdpdGggYmRldiBtb3VudHMuCisgKi8KK3ZvaWQgZnVzZV9raWxsX3NiX2Fub24oc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiAKIC8qKgogICogQWRkIGNvbm5lY3Rpb24gdG8gY29udHJvbCBmaWxlc3lzdGVtCkBAIC0xMDkzLDQgKzEwNzMsMTUgQEAgaW50IGZ1c2Vfc2V0X2FjbChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcG9zaXhfYWNsICphY2wsIGludCB0eXBlKTsKIC8qIHJlYWRkaXIuYyAqLwogaW50IGZ1c2VfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpjdHgpOwogCisvKioKKyAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIGFuIGFyZ3VtZW50cyBsaXN0CisgKi8KK3Vuc2lnbmVkIGludCBmdXNlX2xlbl9hcmdzKHVuc2lnbmVkIGludCBudW1hcmdzLCBzdHJ1Y3QgZnVzZV9hcmcgKmFyZ3MpOworCisvKioKKyAqIEdldCB0aGUgbmV4dCB1bmlxdWUgSUQgZm9yIGEgcmVxdWVzdAorICovCit1NjQgZnVzZV9nZXRfdW5pcXVlKHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxKTsKK3ZvaWQgZnVzZV9mcmVlX2Nvbm4oc3RydWN0IGZ1c2VfY29ubiAqZmMpOworCiAjZW5kaWYgLyogX0ZTX0ZVU0VfSV9IICovCmRpZmYgLS1naXQgYS9mcy9mdXNlL2lub2RlLmMgYi9mcy9mdXNlL2lub2RlLmMKaW5kZXggNGJiODg1Yi4uZTA0MGUyYSAxMDA2NDQKLS0tIGEvZnMvZnVzZS9pbm9kZS5jCisrKyBiL2ZzL2Z1c2UvaW5vZGUuYwpAQCAtMTUsNyArMTUsOCBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgotI2luY2x1ZGUgPGxpbnV4L3BhcnNlci5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzX2NvbnRleHQuaD4KKyNpbmNsdWRlIDxsaW51eC9mc19wYXJzZXIuaD4KICNpbmNsdWRlIDxsaW51eC9zdGF0ZnMuaD4KICNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgpAQCAtNTksMjQgKzYwLDEzIEBAIE1PRFVMRV9QQVJNX0RFU0MobWF4X3VzZXJfY29uZ3RocmVzaCwKIC8qKiBDb25nZXN0aW9uIHN0YXJ0cyBhdCA3NSUgb2YgbWF4aW11bSAqLwogI2RlZmluZSBGVVNFX0RFRkFVTFRfQ09OR0VTVElPTl9USFJFU0hPTEQgKEZVU0VfREVGQVVMVF9NQVhfQkFDS0dST1VORCAqIDMgLyA0KQogCi1zdHJ1Y3QgZnVzZV9tb3VudF9kYXRhIHsKLQlpbnQgZmQ7Ci0JdW5zaWduZWQgcm9vdG1vZGU7Ci0Ja3VpZF90IHVzZXJfaWQ7Ci0Ja2dpZF90IGdyb3VwX2lkOwotCXVuc2lnbmVkIGZkX3ByZXNlbnQ6MTsKLQl1bnNpZ25lZCByb290bW9kZV9wcmVzZW50OjE7Ci0JdW5zaWduZWQgdXNlcl9pZF9wcmVzZW50OjE7Ci0JdW5zaWduZWQgZ3JvdXBfaWRfcHJlc2VudDoxOwotCXVuc2lnbmVkIGRlZmF1bHRfcGVybWlzc2lvbnM6MTsKLQl1bnNpZ25lZCBhbGxvd19vdGhlcjoxOwotCXVuc2lnbmVkIG1heF9yZWFkOwotCXVuc2lnbmVkIGJsa3NpemU7Ci19OworI2lmZGVmIENPTkZJR19CTE9DSworc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIGZ1c2VibGtfZnNfdHlwZTsKKyNlbmRpZgogCiBzdHJ1Y3QgZnVzZV9mb3JnZXRfbGluayAqZnVzZV9hbGxvY19mb3JnZXQodm9pZCkKIHsKLQlyZXR1cm4ga3phbGxvYyhzaXplb2Yoc3RydWN0IGZ1c2VfZm9yZ2V0X2xpbmspLCBHRlBfS0VSTkVMKTsKKwlyZXR1cm4ga3phbGxvYyhzaXplb2Yoc3RydWN0IGZ1c2VfZm9yZ2V0X2xpbmspLCBHRlBfS0VSTkVMX0FDQ09VTlQpOwogfQogCiBzdGF0aWMgc3RydWN0IGlub2RlICpmdXNlX2FsbG9jX2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCkBAIC0zNzQsMTkgKzM2NCwyMSBAQCB2b2lkIGZ1c2VfdW5sb2NrX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGJvb2wgbG9ja2VkKQogCiBzdGF0aWMgdm9pZCBmdXNlX3Vtb3VudF9iZWdpbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogewotCWZ1c2VfYWJvcnRfY29ubihnZXRfZnVzZV9jb25uX3N1cGVyKHNiKSk7CisJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uX3N1cGVyKHNiKTsKKworCWlmICghZmMtPm5vX2ZvcmNlX3Vtb3VudCkKKwkJZnVzZV9hYm9ydF9jb25uKGZjKTsKIH0KIAogc3RhdGljIHZvaWQgZnVzZV9zZW5kX2Rlc3Ryb3koc3RydWN0IGZ1c2VfY29ubiAqZmMpCiB7Ci0Jc3RydWN0IGZ1c2VfcmVxICpyZXEgPSBmYy0+ZGVzdHJveV9yZXE7Ci0JaWYgKHJlcSAmJiBmYy0+Y29ubl9pbml0KSB7Ci0JCWZjLT5kZXN0cm95X3JlcSA9IE5VTEw7Ci0JCXJlcS0+aW4uaC5vcGNvZGUgPSBGVVNFX0RFU1RST1k7Ci0JCV9fc2V0X2JpdChGUl9GT1JDRSwgJnJlcS0+ZmxhZ3MpOwotCQlfX2NsZWFyX2JpdChGUl9CQUNLR1JPVU5ELCAmcmVxLT5mbGFncyk7Ci0JCWZ1c2VfcmVxdWVzdF9zZW5kKGZjLCByZXEpOwotCQlmdXNlX3B1dF9yZXF1ZXN0KGZjLCByZXEpOworCWlmIChmYy0+Y29ubl9pbml0KSB7CisJCUZVU0VfQVJHUyhhcmdzKTsKKworCQlhcmdzLm9wY29kZSA9IEZVU0VfREVTVFJPWTsKKwkJYXJncy5mb3JjZSA9IHRydWU7CisJCWFyZ3Mubm9jcmVkcyA9IHRydWU7CisJCWZ1c2Vfc2ltcGxlX3JlcXVlc3QoZmMsICZhcmdzKTsKIAl9CiB9CiAKQEAgLTQzMCwxMiArNDIyLDEyIEBAIHN0YXRpYyBpbnQgZnVzZV9zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKQogCX0KIAogCW1lbXNldCgmb3V0YXJnLCAwLCBzaXplb2Yob3V0YXJnKSk7Ci0JYXJncy5pbi5udW1hcmdzID0gMDsKLQlhcmdzLmluLmgub3Bjb2RlID0gRlVTRV9TVEFURlM7Ci0JYXJncy5pbi5oLm5vZGVpZCA9IGdldF9ub2RlX2lkKGRfaW5vZGUoZGVudHJ5KSk7Ci0JYXJncy5vdXQubnVtYXJncyA9IDE7Ci0JYXJncy5vdXQuYXJnc1swXS5zaXplID0gc2l6ZW9mKG91dGFyZyk7Ci0JYXJncy5vdXQuYXJnc1swXS52YWx1ZSA9ICZvdXRhcmc7CisJYXJncy5pbl9udW1hcmdzID0gMDsKKwlhcmdzLm9wY29kZSA9IEZVU0VfU1RBVEZTOworCWFyZ3Mubm9kZWlkID0gZ2V0X25vZGVfaWQoZF9pbm9kZShkZW50cnkpKTsKKwlhcmdzLm91dF9udW1hcmdzID0gMTsKKwlhcmdzLm91dF9hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKKwlhcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKIAllcnIgPSBmdXNlX3NpbXBsZV9yZXF1ZXN0KGZjLCAmYXJncyk7CiAJaWYgKCFlcnIpCiAJCWNvbnZlcnRfZnVzZV9zdGF0ZnMoYnVmLCAmb3V0YXJnLnN0KTsKQEAgLTQ0Myw2ICs0MzUsOCBAQCBzdGF0aWMgaW50IGZ1c2Vfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikKIH0KIAogZW51bSB7CisJT1BUX1NPVVJDRSwKKwlPUFRfU1VCVFlQRSwKIAlPUFRfRkQsCiAJT1BUX1JPT1RNT0RFLAogCU9QVF9VU0VSX0lELApAQCAtNDU0LDExMSArNDQ4LDEwOSBAQCBlbnVtIHsKIAlPUFRfRVJSCiB9OwogCi1zdGF0aWMgY29uc3QgbWF0Y2hfdGFibGVfdCB0b2tlbnMgPSB7Ci0Je09QVF9GRCwJCQkiZmQ9JXUifSwKLQl7T1BUX1JPT1RNT0RFLAkJCSJyb290bW9kZT0lbyJ9LAotCXtPUFRfVVNFUl9JRCwJCQkidXNlcl9pZD0ldSJ9LAotCXtPUFRfR1JPVVBfSUQsCQkJImdyb3VwX2lkPSV1In0sCi0Je09QVF9ERUZBVUxUX1BFUk1JU1NJT05TLAkiZGVmYXVsdF9wZXJtaXNzaW9ucyJ9LAotCXtPUFRfQUxMT1dfT1RIRVIsCQkiYWxsb3dfb3RoZXIifSwKLQl7T1BUX01BWF9SRUFELAkJCSJtYXhfcmVhZD0ldSJ9LAotCXtPUFRfQkxLU0laRSwJCQkiYmxrc2l6ZT0ldSJ9LAotCXtPUFRfRVJSLAkJCU5VTEx9CitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX3BhcmFtZXRlcl9zcGVjIGZ1c2VfcGFyYW1fc3BlY3NbXSA9IHsKKwlmc3BhcmFtX3N0cmluZwkoInNvdXJjZSIsCQlPUFRfU09VUkNFKSwKKwlmc3BhcmFtX3UzMgkoImZkIiwJCQlPUFRfRkQpLAorCWZzcGFyYW1fdTMyb2N0CSgicm9vdG1vZGUiLAkJT1BUX1JPT1RNT0RFKSwKKwlmc3BhcmFtX3UzMgkoInVzZXJfaWQiLAkJT1BUX1VTRVJfSUQpLAorCWZzcGFyYW1fdTMyCSgiZ3JvdXBfaWQiLAkJT1BUX0dST1VQX0lEKSwKKwlmc3BhcmFtX2ZsYWcJKCJkZWZhdWx0X3Blcm1pc3Npb25zIiwJT1BUX0RFRkFVTFRfUEVSTUlTU0lPTlMpLAorCWZzcGFyYW1fZmxhZwkoImFsbG93X290aGVyIiwJCU9QVF9BTExPV19PVEhFUiksCisJZnNwYXJhbV91MzIJKCJtYXhfcmVhZCIsCQlPUFRfTUFYX1JFQUQpLAorCWZzcGFyYW1fdTMyCSgiYmxrc2l6ZSIsCQlPUFRfQkxLU0laRSksCisJZnNwYXJhbV9zdHJpbmcJKCJzdWJ0eXBlIiwJCU9QVF9TVUJUWVBFKSwKKwl7fQogfTsKIAotc3RhdGljIGludCBmdXNlX21hdGNoX3VpbnQoc3Vic3RyaW5nX3QgKnMsIHVuc2lnbmVkIGludCAqcmVzKQorc3RhdGljIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfZGVzY3JpcHRpb24gZnVzZV9mc19wYXJhbWV0ZXJzID0geworCS5uYW1lCQk9ICJmdXNlIiwKKwkuc3BlY3MJCT0gZnVzZV9wYXJhbV9zcGVjcywKK307CisKK3N0YXRpYyBpbnQgZnVzZV9wYXJzZV9wYXJhbShzdHJ1Y3QgZnNfY29udGV4dCAqZmMsIHN0cnVjdCBmc19wYXJhbWV0ZXIgKnBhcmFtKQogewotCWludCBlcnIgPSAtRU5PTUVNOwotCWNoYXIgKmJ1ZiA9IG1hdGNoX3N0cmR1cChzKTsKLQlpZiAoYnVmKSB7Ci0JCWVyciA9IGtzdHJ0b3VpbnQoYnVmLCAxMCwgcmVzKTsKLQkJa2ZyZWUoYnVmKTsKLQl9Ci0JcmV0dXJuIGVycjsKLX0KKwlzdHJ1Y3QgZnNfcGFyc2VfcmVzdWx0IHJlc3VsdDsKKwlzdHJ1Y3QgZnVzZV9mc19jb250ZXh0ICpjdHggPSBmYy0+ZnNfcHJpdmF0ZTsKKwlpbnQgb3B0OwogCi1zdGF0aWMgaW50IHBhcnNlX2Z1c2Vfb3B0KGNoYXIgKm9wdCwgc3RydWN0IGZ1c2VfbW91bnRfZGF0YSAqZCwgaW50IGlzX2JkZXYsCi0JCQkgIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcl9ucykKLXsKLQljaGFyICpwOwotCW1lbXNldChkLCAwLCBzaXplb2Yoc3RydWN0IGZ1c2VfbW91bnRfZGF0YSkpOwotCWQtPm1heF9yZWFkID0gfjA7Ci0JZC0+Ymxrc2l6ZSA9IEZVU0VfREVGQVVMVF9CTEtTSVpFOworCW9wdCA9IGZzX3BhcnNlKGZjLCAmZnVzZV9mc19wYXJhbWV0ZXJzLCBwYXJhbSwgJnJlc3VsdCk7CisJaWYgKG9wdCA8IDApCisJCXJldHVybiBvcHQ7CiAKLQl3aGlsZSAoKHAgPSBzdHJzZXAoJm9wdCwgIiwiKSkgIT0gTlVMTCkgewotCQlpbnQgdG9rZW47Ci0JCWludCB2YWx1ZTsKLQkJdW5zaWduZWQgdXY7Ci0JCXN1YnN0cmluZ190IGFyZ3NbTUFYX09QVF9BUkdTXTsKLQkJaWYgKCEqcCkKLQkJCWNvbnRpbnVlOworCXN3aXRjaCAob3B0KSB7CisJY2FzZSBPUFRfU09VUkNFOgorCQlpZiAoZmMtPnNvdXJjZSkKKwkJCXJldHVybiBpbnZhbGYoZmMsICJmdXNlOiBNdWx0aXBsZSBzb3VyY2VzIHNwZWNpZmllZCIpOworCQlmYy0+c291cmNlID0gcGFyYW0tPnN0cmluZzsKKwkJcGFyYW0tPnN0cmluZyA9IE5VTEw7CisJCWJyZWFrOwogCi0JCXRva2VuID0gbWF0Y2hfdG9rZW4ocCwgdG9rZW5zLCBhcmdzKTsKLQkJc3dpdGNoICh0b2tlbikgewotCQljYXNlIE9QVF9GRDoKLQkJCWlmIChtYXRjaF9pbnQoJmFyZ3NbMF0sICZ2YWx1ZSkpCi0JCQkJcmV0dXJuIDA7Ci0JCQlkLT5mZCA9IHZhbHVlOwotCQkJZC0+ZmRfcHJlc2VudCA9IDE7Ci0JCQlicmVhazsKLQotCQljYXNlIE9QVF9ST09UTU9ERToKLQkJCWlmIChtYXRjaF9vY3RhbCgmYXJnc1swXSwgJnZhbHVlKSkKLQkJCQlyZXR1cm4gMDsKLQkJCWlmICghZnVzZV92YWxpZF90eXBlKHZhbHVlKSkKLQkJCQlyZXR1cm4gMDsKLQkJCWQtPnJvb3Rtb2RlID0gdmFsdWU7Ci0JCQlkLT5yb290bW9kZV9wcmVzZW50ID0gMTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgT1BUX1VTRVJfSUQ6Ci0JCQlpZiAoZnVzZV9tYXRjaF91aW50KCZhcmdzWzBdLCAmdXYpKQotCQkJCXJldHVybiAwOwotCQkJZC0+dXNlcl9pZCA9IG1ha2Vfa3VpZCh1c2VyX25zLCB1dik7Ci0JCQlpZiAoIXVpZF92YWxpZChkLT51c2VyX2lkKSkKLQkJCQlyZXR1cm4gMDsKLQkJCWQtPnVzZXJfaWRfcHJlc2VudCA9IDE7Ci0JCQlicmVhazsKLQotCQljYXNlIE9QVF9HUk9VUF9JRDoKLQkJCWlmIChmdXNlX21hdGNoX3VpbnQoJmFyZ3NbMF0sICZ1dikpCi0JCQkJcmV0dXJuIDA7Ci0JCQlkLT5ncm91cF9pZCA9IG1ha2Vfa2dpZCh1c2VyX25zLCB1dik7Ci0JCQlpZiAoIWdpZF92YWxpZChkLT5ncm91cF9pZCkpCi0JCQkJcmV0dXJuIDA7Ci0JCQlkLT5ncm91cF9pZF9wcmVzZW50ID0gMTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgT1BUX0RFRkFVTFRfUEVSTUlTU0lPTlM6Ci0JCQlkLT5kZWZhdWx0X3Blcm1pc3Npb25zID0gMTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgT1BUX0FMTE9XX09USEVSOgotCQkJZC0+YWxsb3dfb3RoZXIgPSAxOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBPUFRfTUFYX1JFQUQ6Ci0JCQlpZiAobWF0Y2hfaW50KCZhcmdzWzBdLCAmdmFsdWUpKQotCQkJCXJldHVybiAwOwotCQkJZC0+bWF4X3JlYWQgPSB2YWx1ZTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgT1BUX0JMS1NJWkU6Ci0JCQlpZiAoIWlzX2JkZXYgfHwgbWF0Y2hfaW50KCZhcmdzWzBdLCAmdmFsdWUpKQotCQkJCXJldHVybiAwOwotCQkJZC0+Ymxrc2l6ZSA9IHZhbHVlOwotCQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLQkJCXJldHVybiAwOwotCQl9Ci0JfQotCi0JaWYgKCFkLT5mZF9wcmVzZW50IHx8ICFkLT5yb290bW9kZV9wcmVzZW50IHx8Ci0JICAgICFkLT51c2VyX2lkX3ByZXNlbnQgfHwgIWQtPmdyb3VwX2lkX3ByZXNlbnQpCisJY2FzZSBPUFRfU1VCVFlQRToKKwkJaWYgKGN0eC0+c3VidHlwZSkKKwkJCXJldHVybiBpbnZhbGYoZmMsICJmdXNlOiBNdWx0aXBsZSBzdWJ0eXBlcyBzcGVjaWZpZWQiKTsKKwkJY3R4LT5zdWJ0eXBlID0gcGFyYW0tPnN0cmluZzsKKwkJcGFyYW0tPnN0cmluZyA9IE5VTEw7CiAJCXJldHVybiAwOwogCi0JcmV0dXJuIDE7CisJY2FzZSBPUFRfRkQ6CisJCWN0eC0+ZmQgPSByZXN1bHQudWludF8zMjsKKwkJY3R4LT5mZF9wcmVzZW50ID0gMTsKKwkJYnJlYWs7CisKKwljYXNlIE9QVF9ST09UTU9ERToKKwkJaWYgKCFmdXNlX3ZhbGlkX3R5cGUocmVzdWx0LnVpbnRfMzIpKQorCQkJcmV0dXJuIGludmFsZihmYywgImZ1c2U6IEludmFsaWQgcm9vdG1vZGUiKTsKKwkJY3R4LT5yb290bW9kZSA9IHJlc3VsdC51aW50XzMyOworCQljdHgtPnJvb3Rtb2RlX3ByZXNlbnQgPSAxOworCQlicmVhazsKKworCWNhc2UgT1BUX1VTRVJfSUQ6CisJCWN0eC0+dXNlcl9pZCA9IG1ha2Vfa3VpZChmYy0+dXNlcl9ucywgcmVzdWx0LnVpbnRfMzIpOworCQlpZiAoIXVpZF92YWxpZChjdHgtPnVzZXJfaWQpKQorCQkJcmV0dXJuIGludmFsZihmYywgImZ1c2U6IEludmFsaWQgdXNlcl9pZCIpOworCQljdHgtPnVzZXJfaWRfcHJlc2VudCA9IDE7CisJCWJyZWFrOworCisJY2FzZSBPUFRfR1JPVVBfSUQ6CisJCWN0eC0+Z3JvdXBfaWQgPSBtYWtlX2tnaWQoZmMtPnVzZXJfbnMsIHJlc3VsdC51aW50XzMyKTsKKwkJaWYgKCFnaWRfdmFsaWQoY3R4LT5ncm91cF9pZCkpCisJCQlyZXR1cm4gaW52YWxmKGZjLCAiZnVzZTogSW52YWxpZCBncm91cF9pZCIpOworCQljdHgtPmdyb3VwX2lkX3ByZXNlbnQgPSAxOworCQlicmVhazsKKworCWNhc2UgT1BUX0RFRkFVTFRfUEVSTUlTU0lPTlM6CisJCWN0eC0+ZGVmYXVsdF9wZXJtaXNzaW9ucyA9IDE7CisJCWJyZWFrOworCisJY2FzZSBPUFRfQUxMT1dfT1RIRVI6CisJCWN0eC0+YWxsb3dfb3RoZXIgPSAxOworCQlicmVhazsKKworCWNhc2UgT1BUX01BWF9SRUFEOgorCQljdHgtPm1heF9yZWFkID0gcmVzdWx0LnVpbnRfMzI7CisJCWJyZWFrOworCisJY2FzZSBPUFRfQkxLU0laRToKKwkJaWYgKCFjdHgtPmlzX2JkZXYpCisJCQlyZXR1cm4gaW52YWxmKGZjLCAiZnVzZTogYmxrc2l6ZSBvbmx5IHN1cHBvcnRlZCBmb3IgZnVzZWJsayIpOworCQljdHgtPmJsa3NpemUgPSByZXN1bHQudWludF8zMjsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZnVzZV9mcmVlX2ZjKHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlzdHJ1Y3QgZnVzZV9mc19jb250ZXh0ICpjdHggPSBmYy0+ZnNfcHJpdmF0ZTsKKworCWlmIChjdHgpIHsKKwkJa2ZyZWUoY3R4LT5zdWJ0eXBlKTsKKwkJa2ZyZWUoY3R4KTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgZnVzZV9zaG93X29wdGlvbnMoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZGVudHJ5ICpyb290KQpAQCAtNTc5LDE0ICs1NzEsMTkgQEAgc3RhdGljIGludCBmdXNlX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkZW50cnkgKnJvb3QpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGZ1c2VfaXF1ZXVlX2luaXQoc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEpCitzdGF0aWMgdm9pZCBmdXNlX2lxdWV1ZV9pbml0KHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxLAorCQkJICAgICBjb25zdCBzdHJ1Y3QgZnVzZV9pcXVldWVfb3BzICpvcHMsCisJCQkgICAgIHZvaWQgKnByaXYpCiB7CiAJbWVtc2V0KGZpcSwgMCwgc2l6ZW9mKHN0cnVjdCBmdXNlX2lxdWV1ZSkpOworCXNwaW5fbG9ja19pbml0KCZmaXEtPmxvY2spOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmZpcS0+d2FpdHEpOwogCUlOSVRfTElTVF9IRUFEKCZmaXEtPnBlbmRpbmcpOwogCUlOSVRfTElTVF9IRUFEKCZmaXEtPmludGVycnVwdHMpOwogCWZpcS0+Zm9yZ2V0X2xpc3RfdGFpbCA9ICZmaXEtPmZvcmdldF9saXN0X2hlYWQ7CiAJZmlxLT5jb25uZWN0ZWQgPSAxOworCWZpcS0+b3BzID0gb3BzOworCWZpcS0+cHJpdiA9IHByaXY7CiB9CiAKIHN0YXRpYyB2b2lkIGZ1c2VfcHF1ZXVlX2luaXQoc3RydWN0IGZ1c2VfcHF1ZXVlICpmcHEpCkBAIC02MDAsNyArNTk3LDggQEAgc3RhdGljIHZvaWQgZnVzZV9wcXVldWVfaW5pdChzdHJ1Y3QgZnVzZV9wcXVldWUgKmZwcSkKIAlmcHEtPmNvbm5lY3RlZCA9IDE7CiB9CiAKLXZvaWQgZnVzZV9jb25uX2luaXQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcl9ucykKK3ZvaWQgZnVzZV9jb25uX2luaXQoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcl9ucywKKwkJICAgIGNvbnN0IHN0cnVjdCBmdXNlX2lxdWV1ZV9vcHMgKmZpcV9vcHMsIHZvaWQgKmZpcV9wcml2KQogewogCW1lbXNldChmYywgMCwgc2l6ZW9mKCpmYykpOwogCXNwaW5fbG9ja19pbml0KCZmYy0+bG9jayk7CkBAIC02MDksOCArNjA3LDcgQEAgdm9pZCBmdXNlX2Nvbm5faW5pdChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2VyX25zKQogCXJlZmNvdW50X3NldCgmZmMtPmNvdW50LCAxKTsKIAlhdG9taWNfc2V0KCZmYy0+ZGV2X2NvdW50LCAxKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZmYy0+YmxvY2tlZF93YWl0cSk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZmMtPnJlc2VydmVkX3JlcV93YWl0cSk7Ci0JZnVzZV9pcXVldWVfaW5pdCgmZmMtPmlxKTsKKwlmdXNlX2lxdWV1ZV9pbml0KCZmYy0+aXEsIGZpcV9vcHMsIGZpcV9wcml2KTsKIAlJTklUX0xJU1RfSEVBRCgmZmMtPmJnX3F1ZXVlKTsKIAlJTklUX0xJU1RfSEVBRCgmZmMtPmVudHJ5KTsKIAlJTklUX0xJU1RfSEVBRCgmZmMtPmRldmljZXMpOwpAQCAtNjMzLDggKzYzMCwxMCBAQCBFWFBPUlRfU1lNQk9MX0dQTChmdXNlX2Nvbm5faW5pdCk7CiB2b2lkIGZ1c2VfY29ubl9wdXQoc3RydWN0IGZ1c2VfY29ubiAqZmMpCiB7CiAJaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgmZmMtPmNvdW50KSkgewotCQlpZiAoZmMtPmRlc3Ryb3lfcmVxKQotCQkJZnVzZV9yZXF1ZXN0X2ZyZWUoZmMtPmRlc3Ryb3lfcmVxKTsKKwkJc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEgPSAmZmMtPmlxOworCisJCWlmIChmaXEtPm9wcy0+cmVsZWFzZSkKKwkJCWZpcS0+b3BzLT5yZWxlYXNlKGZpcSk7CiAJCXB1dF9waWRfbnMoZmMtPnBpZF9ucyk7CiAJCXB1dF91c2VyX25zKGZjLT51c2VyX25zKTsKIAkJZmMtPnJlbGVhc2UoZmMpOwpAQCAtODIyLDkgKzgyMSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgZnVzZV9zdXBlcl9vcGVyYXRpb25zID0gewogCiBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9nbG9iYWxfbGltaXQodW5zaWduZWQgKmxpbWl0KQogeworCS8qCisJICogVGhlIGRlZmF1bHQgbWF4aW11bSBudW1iZXIgb2YgYXN5bmMgcmVxdWVzdHMgaXMgY2FsY3VsYXRlZCB0byBjb25zdW1lCisJICogMS8yXjEzIG9mIHRoZSB0b3RhbCBtZW1vcnksIGFzc3VtaW5nIDM5MiBieXRlcyBwZXIgcmVxdWVzdC4KKwkgKi8KIAlpZiAoKmxpbWl0ID09IDApCi0JCSpsaW1pdCA9ICgodG90YWxyYW1fcGFnZXMoKSA8PCBQQUdFX1NISUZUKSA+PiAxMykgLwotCQkJIHNpemVvZihzdHJ1Y3QgZnVzZV9yZXEpOworCQkqbGltaXQgPSAoKHRvdGFscmFtX3BhZ2VzKCkgPDwgUEFHRV9TSElGVCkgPj4gMTMpIC8gMzkyOwogCiAJaWYgKCpsaW1pdCA+PSAxIDw8IDE2KQogCQkqbGltaXQgPSAoMSA8PCAxNikgLSAxOwpAQCAtODcwLDExICs4NzIsMTkgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19pbml0X2xpbWl0cyhzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfaW5pdF9vdXQgKmFyZykKIAlzcGluX3VubG9jaygmZmMtPmJnX2xvY2spOwogfQogCi1zdGF0aWMgdm9pZCBwcm9jZXNzX2luaXRfcmVwbHkoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQotewotCXN0cnVjdCBmdXNlX2luaXRfb3V0ICphcmcgPSAmcmVxLT5taXNjLmluaXRfb3V0Oworc3RydWN0IGZ1c2VfaW5pdF9hcmdzIHsKKwlzdHJ1Y3QgZnVzZV9hcmdzIGFyZ3M7CisJc3RydWN0IGZ1c2VfaW5pdF9pbiBpbjsKKwlzdHJ1Y3QgZnVzZV9pbml0X291dCBvdXQ7Cit9OwogCi0JaWYgKHJlcS0+b3V0LmguZXJyb3IgfHwgYXJnLT5tYWpvciAhPSBGVVNFX0tFUk5FTF9WRVJTSU9OKQorc3RhdGljIHZvaWQgcHJvY2Vzc19pbml0X3JlcGx5KHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9hcmdzICphcmdzLAorCQkJICAgICAgIGludCBlcnJvcikKK3sKKwlzdHJ1Y3QgZnVzZV9pbml0X2FyZ3MgKmlhID0gY29udGFpbmVyX29mKGFyZ3MsIHR5cGVvZigqaWEpLCBhcmdzKTsKKwlzdHJ1Y3QgZnVzZV9pbml0X291dCAqYXJnID0gJmlhLT5vdXQ7CisKKwlpZiAoZXJyb3IgfHwgYXJnLT5tYWpvciAhPSBGVVNFX0tFUk5FTF9WRVJTSU9OKQogCQlmYy0+Y29ubl9lcnJvciA9IDE7CiAJZWxzZSB7CiAJCXVuc2lnbmVkIGxvbmcgcmFfcGFnZXM7CkBAIC05NTEsMTggKzk2MSwyMyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2luaXRfcmVwbHkoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQogCQlmYy0+bWF4X3dyaXRlID0gbWF4X3QodW5zaWduZWQsIDQwOTYsIGZjLT5tYXhfd3JpdGUpOwogCQlmYy0+Y29ubl9pbml0ID0gMTsKIAl9CisJa2ZyZWUoaWEpOworCiAJZnVzZV9zZXRfaW5pdGlhbGl6ZWQoZmMpOwogCXdha2VfdXBfYWxsKCZmYy0+YmxvY2tlZF93YWl0cSk7CiB9CiAKLXN0YXRpYyB2b2lkIGZ1c2Vfc2VuZF9pbml0KHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKK3ZvaWQgZnVzZV9zZW5kX2luaXQoc3RydWN0IGZ1c2VfY29ubiAqZmMpCiB7Ci0Jc3RydWN0IGZ1c2VfaW5pdF9pbiAqYXJnID0gJnJlcS0+bWlzYy5pbml0X2luOworCXN0cnVjdCBmdXNlX2luaXRfYXJncyAqaWE7CiAKLQlhcmctPm1ham9yID0gRlVTRV9LRVJORUxfVkVSU0lPTjsKLQlhcmctPm1pbm9yID0gRlVTRV9LRVJORUxfTUlOT1JfVkVSU0lPTjsKLQlhcmctPm1heF9yZWFkYWhlYWQgPSBmYy0+c2ItPnNfYmRpLT5yYV9wYWdlcyAqIFBBR0VfU0laRTsKLQlhcmctPmZsYWdzIHw9IEZVU0VfQVNZTkNfUkVBRCB8IEZVU0VfUE9TSVhfTE9DS1MgfCBGVVNFX0FUT01JQ19PX1RSVU5DIHwKKwlpYSA9IGt6YWxsb2Moc2l6ZW9mKCppYSksIEdGUF9LRVJORUwgfCBfX0dGUF9OT0ZBSUwpOworCisJaWEtPmluLm1ham9yID0gRlVTRV9LRVJORUxfVkVSU0lPTjsKKwlpYS0+aW4ubWlub3IgPSBGVVNFX0tFUk5FTF9NSU5PUl9WRVJTSU9OOworCWlhLT5pbi5tYXhfcmVhZGFoZWFkID0gZmMtPnNiLT5zX2JkaS0+cmFfcGFnZXMgKiBQQUdFX1NJWkU7CisJaWEtPmluLmZsYWdzIHw9CisJCUZVU0VfQVNZTkNfUkVBRCB8IEZVU0VfUE9TSVhfTE9DS1MgfCBGVVNFX0FUT01JQ19PX1RSVU5DIHwKIAkJRlVTRV9FWFBPUlRfU1VQUE9SVCB8IEZVU0VfQklHX1dSSVRFUyB8IEZVU0VfRE9OVF9NQVNLIHwKIAkJRlVTRV9TUExJQ0VfV1JJVEUgfCBGVVNFX1NQTElDRV9NT1ZFIHwgRlVTRV9TUExJQ0VfUkVBRCB8CiAJCUZVU0VfRkxPQ0tfTE9DS1MgfCBGVVNFX0hBU19JT0NUTF9ESVIgfCBGVVNFX0FVVE9fSU5WQUxfREFUQSB8CkBAIC05NzEsMjYgKzk4NiwzMiBAQCBzdGF0aWMgdm9pZCBmdXNlX3NlbmRfaW5pdChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IGZ1c2VfcmVxICpyZXEpCiAJCUZVU0VfUEFSQUxMRUxfRElST1BTIHwgRlVTRV9IQU5ETEVfS0lMTFBSSVYgfCBGVVNFX1BPU0lYX0FDTCB8CiAJCUZVU0VfQUJPUlRfRVJST1IgfCBGVVNFX01BWF9QQUdFUyB8IEZVU0VfQ0FDSEVfU1lNTElOS1MgfAogCQlGVVNFX05PX09QRU5ESVJfU1VQUE9SVCB8IEZVU0VfRVhQTElDSVRfSU5WQUxfREFUQTsKLQlyZXEtPmluLmgub3Bjb2RlID0gRlVTRV9JTklUOwotCXJlcS0+aW4ubnVtYXJncyA9IDE7Ci0JcmVxLT5pbi5hcmdzWzBdLnNpemUgPSBzaXplb2YoKmFyZyk7Ci0JcmVxLT5pbi5hcmdzWzBdLnZhbHVlID0gYXJnOwotCXJlcS0+b3V0Lm51bWFyZ3MgPSAxOworCWlhLT5hcmdzLm9wY29kZSA9IEZVU0VfSU5JVDsKKwlpYS0+YXJncy5pbl9udW1hcmdzID0gMTsKKwlpYS0+YXJncy5pbl9hcmdzWzBdLnNpemUgPSBzaXplb2YoaWEtPmluKTsKKwlpYS0+YXJncy5pbl9hcmdzWzBdLnZhbHVlID0gJmlhLT5pbjsKKwlpYS0+YXJncy5vdXRfbnVtYXJncyA9IDE7CiAJLyogVmFyaWFibGUgbGVuZ3RoIGFyZ3VtZW50IHVzZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKIAkgICB3aXRoIGludGVyZmFjZSB2ZXJzaW9uIDwgNy41LiAgUmVzdCBvZiBpbml0X291dCBpcyB6ZXJvZWQKIAkgICBieSBkb19nZXRfcmVxdWVzdCgpLCBzbyBhIHNob3J0IHJlcGx5IGlzIG5vdCBhIHByb2JsZW0gKi8KLQlyZXEtPm91dC5hcmd2YXIgPSAxOwotCXJlcS0+b3V0LmFyZ3NbMF0uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZnVzZV9pbml0X291dCk7Ci0JcmVxLT5vdXQuYXJnc1swXS52YWx1ZSA9ICZyZXEtPm1pc2MuaW5pdF9vdXQ7Ci0JcmVxLT5lbmQgPSBwcm9jZXNzX2luaXRfcmVwbHk7Ci0JZnVzZV9yZXF1ZXN0X3NlbmRfYmFja2dyb3VuZChmYywgcmVxKTsKLX0KKwlpYS0+YXJncy5vdXRfYXJndmFyID0gMTsKKwlpYS0+YXJncy5vdXRfYXJnc1swXS5zaXplID0gc2l6ZW9mKGlhLT5vdXQpOworCWlhLT5hcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gJmlhLT5vdXQ7CisJaWEtPmFyZ3MuZm9yY2UgPSB0cnVlOworCWlhLT5hcmdzLm5vY3JlZHMgPSB0cnVlOworCWlhLT5hcmdzLmVuZCA9IHByb2Nlc3NfaW5pdF9yZXBseTsKIAotc3RhdGljIHZvaWQgZnVzZV9mcmVlX2Nvbm4oc3RydWN0IGZ1c2VfY29ubiAqZmMpCisJaWYgKGZ1c2Vfc2ltcGxlX2JhY2tncm91bmQoZmMsICZpYS0+YXJncywgR0ZQX0tFUk5FTCkgIT0gMCkKKwkJcHJvY2Vzc19pbml0X3JlcGx5KGZjLCAmaWEtPmFyZ3MsIC1FTk9UQ09OTik7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChmdXNlX3NlbmRfaW5pdCk7CisKK3ZvaWQgZnVzZV9mcmVlX2Nvbm4oc3RydWN0IGZ1c2VfY29ubiAqZmMpCiB7CiAJV0FSTl9PTighbGlzdF9lbXB0eSgmZmMtPmRldmljZXMpKTsKIAlrZnJlZV9yY3UoZmMsIHJjdSk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChmdXNlX2ZyZWVfY29ubik7CiAKIHN0YXRpYyBpbnQgZnVzZV9iZGlfaW5pdChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKQEAgLTEwMzIsNyArMTA1Myw3IEBAIHN0YXRpYyBpbnQgZnVzZV9iZGlfaW5pdChzdHJ1Y3QgZnVzZV9jb25uICpmYywgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlyZXR1cm4gMDsKIH0KIAotc3RydWN0IGZ1c2VfZGV2ICpmdXNlX2Rldl9hbGxvYyhzdHJ1Y3QgZnVzZV9jb25uICpmYykKK3N0cnVjdCBmdXNlX2RldiAqZnVzZV9kZXZfYWxsb2Modm9pZCkKIHsKIAlzdHJ1Y3QgZnVzZV9kZXYgKmZ1ZDsKIAlzdHJ1Y3QgbGlzdF9oZWFkICpwcTsKQEAgLTEwNDgsMTcgKzEwNjksMzQgQEAgc3RydWN0IGZ1c2VfZGV2ICpmdXNlX2Rldl9hbGxvYyhzdHJ1Y3QgZnVzZV9jb25uICpmYykKIAl9CiAKIAlmdWQtPnBxLnByb2Nlc3NpbmcgPSBwcTsKLQlmdWQtPmZjID0gZnVzZV9jb25uX2dldChmYyk7CiAJZnVzZV9wcXVldWVfaW5pdCgmZnVkLT5wcSk7CiAKLQlzcGluX2xvY2soJmZjLT5sb2NrKTsKLQlsaXN0X2FkZF90YWlsKCZmdWQtPmVudHJ5LCAmZmMtPmRldmljZXMpOwotCXNwaW5fdW5sb2NrKCZmYy0+bG9jayk7Ci0KIAlyZXR1cm4gZnVkOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZnVzZV9kZXZfYWxsb2MpOwogCit2b2lkIGZ1c2VfZGV2X2luc3RhbGwoc3RydWN0IGZ1c2VfZGV2ICpmdWQsIHN0cnVjdCBmdXNlX2Nvbm4gKmZjKQoreworCWZ1ZC0+ZmMgPSBmdXNlX2Nvbm5fZ2V0KGZjKTsKKwlzcGluX2xvY2soJmZjLT5sb2NrKTsKKwlsaXN0X2FkZF90YWlsKCZmdWQtPmVudHJ5LCAmZmMtPmRldmljZXMpOworCXNwaW5fdW5sb2NrKCZmYy0+bG9jayk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChmdXNlX2Rldl9pbnN0YWxsKTsKKworc3RydWN0IGZ1c2VfZGV2ICpmdXNlX2Rldl9hbGxvY19pbnN0YWxsKHN0cnVjdCBmdXNlX2Nvbm4gKmZjKQoreworCXN0cnVjdCBmdXNlX2RldiAqZnVkOworCisJZnVkID0gZnVzZV9kZXZfYWxsb2MoKTsKKwlpZiAoIWZ1ZCkKKwkJcmV0dXJuIE5VTEw7CisKKwlmdXNlX2Rldl9pbnN0YWxsKGZ1ZCwgZmMpOworCXJldHVybiBmdWQ7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChmdXNlX2Rldl9hbGxvY19pbnN0YWxsKTsKKwogdm9pZCBmdXNlX2Rldl9mcmVlKHN0cnVjdCBmdXNlX2RldiAqZnVkKQogewogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZnVkLT5mYzsKQEAgLTEwNzUsMTcgKzExMTMsMTMgQEAgdm9pZCBmdXNlX2Rldl9mcmVlKHN0cnVjdCBmdXNlX2RldiAqZnVkKQogfQogRVhQT1JUX1NZTUJPTF9HUEwoZnVzZV9kZXZfZnJlZSk7CiAKLXN0YXRpYyBpbnQgZnVzZV9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCitpbnQgZnVzZV9maWxsX3N1cGVyX2NvbW1vbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnVzZV9mc19jb250ZXh0ICpjdHgpCiB7CiAJc3RydWN0IGZ1c2VfZGV2ICpmdWQ7Ci0Jc3RydWN0IGZ1c2VfY29ubiAqZmM7CisJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uX3N1cGVyKHNiKTsKIAlzdHJ1Y3QgaW5vZGUgKnJvb3Q7Ci0Jc3RydWN0IGZ1c2VfbW91bnRfZGF0YSBkOwotCXN0cnVjdCBmaWxlICpmaWxlOwogCXN0cnVjdCBkZW50cnkgKnJvb3RfZGVudHJ5OwotCXN0cnVjdCBmdXNlX3JlcSAqaW5pdF9yZXE7CiAJaW50IGVycjsKLQlpbnQgaXNfYmRldiA9IHNiLT5zX2JkZXYgIT0gTlVMTDsKIAogCWVyciA9IC1FSU5WQUw7CiAJaWYgKHNiLT5zX2ZsYWdzICYgU0JfTUFORExPQ0spCkBAIC0xMDkzLDE5ICsxMTI3LDE5IEBAIHN0YXRpYyBpbnQgZnVzZV9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAKIAlzYi0+c19mbGFncyAmPSB+KFNCX05PU0VDIHwgU0JfSV9WRVJTSU9OKTsKIAotCWlmICghcGFyc2VfZnVzZV9vcHQoZGF0YSwgJmQsIGlzX2JkZXYsIHNiLT5zX3VzZXJfbnMpKQotCQlnb3RvIGVycjsKLQotCWlmIChpc19iZGV2KSB7CisJaWYgKGN0eC0+aXNfYmRldikgewogI2lmZGVmIENPTkZJR19CTE9DSwogCQllcnIgPSAtRUlOVkFMOwotCQlpZiAoIXNiX3NldF9ibG9ja3NpemUoc2IsIGQuYmxrc2l6ZSkpCisJCWlmICghc2Jfc2V0X2Jsb2Nrc2l6ZShzYiwgY3R4LT5ibGtzaXplKSkKIAkJCWdvdG8gZXJyOwogI2VuZGlmCiAJfSBlbHNlIHsKIAkJc2ItPnNfYmxvY2tzaXplID0gUEFHRV9TSVpFOwogCQlzYi0+c19ibG9ja3NpemVfYml0cyA9IFBBR0VfU0hJRlQ7CiAJfQorCisJc2ItPnNfc3VidHlwZSA9IGN0eC0+c3VidHlwZTsKKwljdHgtPnN1YnR5cGUgPSBOVUxMOwogCXNiLT5zX21hZ2ljID0gRlVTRV9TVVBFUl9NQUdJQzsKIAlzYi0+c19vcCA9ICZmdXNlX3N1cGVyX29wZXJhdGlvbnM7CiAJc2ItPnNfeGF0dHIgPSBmdXNlX3hhdHRyX2hhbmRsZXJzOwpAQCAtMTExNiwxOSArMTE1MCw2IEBAIHN0YXRpYyBpbnQgZnVzZV9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJaWYgKHNiLT5zX3VzZXJfbnMgIT0gJmluaXRfdXNlcl9ucykKIAkJc2ItPnNfaWZsYWdzIHw9IFNCX0lfVU5UUlVTVEVEX01PVU5URVI7CiAKLQlmaWxlID0gZmdldChkLmZkKTsKLQllcnIgPSAtRUlOVkFMOwotCWlmICghZmlsZSkKLQkJZ290byBlcnI7Ci0KLQkvKgotCSAqIFJlcXVpcmUgbW91bnQgdG8gaGFwcGVuIGZyb20gdGhlIHNhbWUgdXNlciBuYW1lc3BhY2Ugd2hpY2gKLQkgKiBvcGVuZWQgL2Rldi9mdXNlIHRvIHByZXZlbnQgcG90ZW50aWFsIGF0dGFja3MuCi0JICovCi0JaWYgKGZpbGUtPmZfb3AgIT0gJmZ1c2VfZGV2X29wZXJhdGlvbnMgfHwKLQkgICAgZmlsZS0+Zl9jcmVkLT51c2VyX25zICE9IHNiLT5zX3VzZXJfbnMpCi0JCWdvdG8gZXJyX2ZwdXQ7Ci0KIAkvKgogCSAqIElmIHdlIGFyZSBub3QgaW4gdGhlIGluaXRpYWwgdXNlciBuYW1lc3BhY2UgcG9zaXgKIAkgKiBhY2xzIG11c3QgYmUgdHJhbnNsYXRlZC4KQEAgLTExMzYsMTcgKzExNTcsOSBAQCBzdGF0aWMgaW50IGZ1c2VfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCWlmIChzYi0+c191c2VyX25zICE9ICZpbml0X3VzZXJfbnMpCiAJCXNiLT5zX3hhdHRyID0gZnVzZV9ub19hY2xfeGF0dHJfaGFuZGxlcnM7CiAKLQlmYyA9IGttYWxsb2Moc2l6ZW9mKCpmYyksIEdGUF9LRVJORUwpOwotCWVyciA9IC1FTk9NRU07Ci0JaWYgKCFmYykKLQkJZ290byBlcnJfZnB1dDsKLQotCWZ1c2VfY29ubl9pbml0KGZjLCBzYi0+c191c2VyX25zKTsKLQlmYy0+cmVsZWFzZSA9IGZ1c2VfZnJlZV9jb25uOwotCi0JZnVkID0gZnVzZV9kZXZfYWxsb2MoZmMpOworCWZ1ZCA9IGZ1c2VfZGV2X2FsbG9jX2luc3RhbGwoZmMpOwogCWlmICghZnVkKQotCQlnb3RvIGVycl9wdXRfY29ubjsKKwkJZ290byBlcnI7CiAKIAlmYy0+ZGV2ID0gc2ItPnNfZGV2OwogCWZjLT5zYiA9IHNiOwpAQCAtMTE1OSwxNyArMTE3MiwxNyBAQCBzdGF0aWMgaW50IGZ1c2VfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCQlmYy0+ZG9udF9tYXNrID0gMTsKIAlzYi0+c19mbGFncyB8PSBTQl9QT1NJWEFDTDsKIAotCWZjLT5kZWZhdWx0X3Blcm1pc3Npb25zID0gZC5kZWZhdWx0X3Blcm1pc3Npb25zOwotCWZjLT5hbGxvd19vdGhlciA9IGQuYWxsb3dfb3RoZXI7Ci0JZmMtPnVzZXJfaWQgPSBkLnVzZXJfaWQ7Ci0JZmMtPmdyb3VwX2lkID0gZC5ncm91cF9pZDsKLQlmYy0+bWF4X3JlYWQgPSBtYXhfdCh1bnNpZ25lZCwgNDA5NiwgZC5tYXhfcmVhZCk7Ci0KLQkvKiBVc2VkIGJ5IGdldF9yb290X2lub2RlKCkgKi8KLQlzYi0+c19mc19pbmZvID0gZmM7CisJZmMtPmRlZmF1bHRfcGVybWlzc2lvbnMgPSBjdHgtPmRlZmF1bHRfcGVybWlzc2lvbnM7CisJZmMtPmFsbG93X290aGVyID0gY3R4LT5hbGxvd19vdGhlcjsKKwlmYy0+dXNlcl9pZCA9IGN0eC0+dXNlcl9pZDsKKwlmYy0+Z3JvdXBfaWQgPSBjdHgtPmdyb3VwX2lkOworCWZjLT5tYXhfcmVhZCA9IG1heF90KHVuc2lnbmVkLCA0MDk2LCBjdHgtPm1heF9yZWFkKTsKKwlmYy0+ZGVzdHJveSA9IGN0eC0+ZGVzdHJveTsKKwlmYy0+bm9fY29udHJvbCA9IGN0eC0+bm9fY29udHJvbDsKKwlmYy0+bm9fZm9yY2VfdW1vdW50ID0gY3R4LT5ub19mb3JjZV91bW91bnQ7CiAKIAllcnIgPSAtRU5PTUVNOwotCXJvb3QgPSBmdXNlX2dldF9yb290X2lub2RlKHNiLCBkLnJvb3Rtb2RlKTsKKwlyb290ID0gZnVzZV9nZXRfcm9vdF9pbm9kZShzYiwgY3R4LT5yb290bW9kZSk7CiAJc2ItPnNfZF9vcCA9ICZmdXNlX3Jvb3RfZGVudHJ5X29wZXJhdGlvbnM7CiAJcm9vdF9kZW50cnkgPSBkX21ha2Vfcm9vdChyb290KTsKIAlpZiAoIXJvb3RfZGVudHJ5KQpAQCAtMTE3NywyMCArMTE5MCw5IEBAIHN0YXRpYyBpbnQgZnVzZV9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJLyogUm9vdCBkZW50cnkgZG9lc24ndCBoYXZlIC5kX3JldmFsaWRhdGUgKi8KIAlzYi0+c19kX29wID0gJmZ1c2VfZGVudHJ5X29wZXJhdGlvbnM7CiAKLQlpbml0X3JlcSA9IGZ1c2VfcmVxdWVzdF9hbGxvYygwKTsKLQlpZiAoIWluaXRfcmVxKQotCQlnb3RvIGVycl9wdXRfcm9vdDsKLQlfX3NldF9iaXQoRlJfQkFDS0dST1VORCwgJmluaXRfcmVxLT5mbGFncyk7Ci0KLQlpZiAoaXNfYmRldikgewotCQlmYy0+ZGVzdHJveV9yZXEgPSBmdXNlX3JlcXVlc3RfYWxsb2MoMCk7Ci0JCWlmICghZmMtPmRlc3Ryb3lfcmVxKQotCQkJZ290byBlcnJfZnJlZV9pbml0X3JlcTsKLQl9Ci0KIAltdXRleF9sb2NrKCZmdXNlX211dGV4KTsKIAllcnIgPSAtRUlOVkFMOwotCWlmIChmaWxlLT5wcml2YXRlX2RhdGEpCisJaWYgKCpjdHgtPmZ1ZHB0cikKIAkJZ290byBlcnJfdW5sb2NrOwogCiAJZXJyID0gZnVzZV9jdGxfYWRkX2Nvbm4oZmMpOwpAQCAtMTE5OSwyNyArMTIwMSw2MiBAQCBzdGF0aWMgaW50IGZ1c2VfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCiAJbGlzdF9hZGRfdGFpbCgmZmMtPmVudHJ5LCAmZnVzZV9jb25uX2xpc3QpOwogCXNiLT5zX3Jvb3QgPSByb290X2RlbnRyeTsKLQlmaWxlLT5wcml2YXRlX2RhdGEgPSBmdWQ7CisJKmN0eC0+ZnVkcHRyID0gZnVkOwogCW11dGV4X3VubG9jaygmZnVzZV9tdXRleCk7CisJcmV0dXJuIDA7CisKKyBlcnJfdW5sb2NrOgorCW11dGV4X3VubG9jaygmZnVzZV9tdXRleCk7CisJZHB1dChyb290X2RlbnRyeSk7CisgZXJyX2Rldl9mcmVlOgorCWZ1c2VfZGV2X2ZyZWUoZnVkKTsKKyBlcnI6CisJcmV0dXJuIGVycjsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGZ1c2VfZmlsbF9zdXBlcl9jb21tb24pOworCitzdGF0aWMgaW50IGZ1c2VfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZnNjKQoreworCXN0cnVjdCBmdXNlX2ZzX2NvbnRleHQgKmN0eCA9IGZzYy0+ZnNfcHJpdmF0ZTsKKwlzdHJ1Y3QgZmlsZSAqZmlsZTsKKwlpbnQgZXJyOworCXN0cnVjdCBmdXNlX2Nvbm4gKmZjOworCisJZXJyID0gLUVJTlZBTDsKKwlmaWxlID0gZmdldChjdHgtPmZkKTsKKwlpZiAoIWZpbGUpCisJCWdvdG8gZXJyOworCisJLyoKKwkgKiBSZXF1aXJlIG1vdW50IHRvIGhhcHBlbiBmcm9tIHRoZSBzYW1lIHVzZXIgbmFtZXNwYWNlIHdoaWNoCisJICogb3BlbmVkIC9kZXYvZnVzZSB0byBwcmV2ZW50IHBvdGVudGlhbCBhdHRhY2tzLgorCSAqLworCWlmICgoZmlsZS0+Zl9vcCAhPSAmZnVzZV9kZXZfb3BlcmF0aW9ucykgfHwKKwkgICAgKGZpbGUtPmZfY3JlZC0+dXNlcl9ucyAhPSBzYi0+c191c2VyX25zKSkKKwkJZ290byBlcnJfZnB1dDsKKwljdHgtPmZ1ZHB0ciA9ICZmaWxlLT5wcml2YXRlX2RhdGE7CisKKwlmYyA9IGttYWxsb2Moc2l6ZW9mKCpmYyksIEdGUF9LRVJORUwpOworCWVyciA9IC1FTk9NRU07CisJaWYgKCFmYykKKwkJZ290byBlcnJfZnB1dDsKKworCWZ1c2VfY29ubl9pbml0KGZjLCBzYi0+c191c2VyX25zLCAmZnVzZV9kZXZfZmlxX29wcywgTlVMTCk7CisJZmMtPnJlbGVhc2UgPSBmdXNlX2ZyZWVfY29ubjsKKwlzYi0+c19mc19pbmZvID0gZmM7CisKKwllcnIgPSBmdXNlX2ZpbGxfc3VwZXJfY29tbW9uKHNiLCBjdHgpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX3B1dF9jb25uOwogCS8qCiAJICogYXRvbWljX2RlY19hbmRfdGVzdCgpIGluIGZwdXQoKSBwcm92aWRlcyB0aGUgbmVjZXNzYXJ5CiAJICogbWVtb3J5IGJhcnJpZXIgZm9yIGZpbGUtPnByaXZhdGVfZGF0YSB0byBiZSB2aXNpYmxlIG9uIGFsbAogCSAqIENQVXMgYWZ0ZXIgdGhpcwogCSAqLwogCWZwdXQoZmlsZSk7Ci0KLQlmdXNlX3NlbmRfaW5pdChmYywgaW5pdF9yZXEpOwotCisJZnVzZV9zZW5kX2luaXQoZ2V0X2Z1c2VfY29ubl9zdXBlcihzYikpOwogCXJldHVybiAwOwogCi0gZXJyX3VubG9jazoKLQltdXRleF91bmxvY2soJmZ1c2VfbXV0ZXgpOwotIGVycl9mcmVlX2luaXRfcmVxOgotCWZ1c2VfcmVxdWVzdF9mcmVlKGluaXRfcmVxKTsKLSBlcnJfcHV0X3Jvb3Q6Ci0JZHB1dChyb290X2RlbnRyeSk7Ci0gZXJyX2Rldl9mcmVlOgotCWZ1c2VfZGV2X2ZyZWUoZnVkKTsKICBlcnJfcHV0X2Nvbm46CiAJZnVzZV9jb25uX3B1dChmYyk7CiAJc2ItPnNfZnNfaW5mbyA9IE5VTEw7CkBAIC0xMjI5LDExICsxMjY2LDUyIEBAIHN0YXRpYyBpbnQgZnVzZV9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHN0cnVjdCBkZW50cnkgKmZ1c2VfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsCi0JCSAgICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLAotCQkgICAgICAgdm9pZCAqcmF3X2RhdGEpCitzdGF0aWMgaW50IGZ1c2VfZ2V0X3RyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewotCXJldHVybiBtb3VudF9ub2Rldihmc190eXBlLCBmbGFncywgcmF3X2RhdGEsIGZ1c2VfZmlsbF9zdXBlcik7CisJc3RydWN0IGZ1c2VfZnNfY29udGV4dCAqY3R4ID0gZmMtPmZzX3ByaXZhdGU7CisKKwlpZiAoIWN0eC0+ZmRfcHJlc2VudCB8fCAhY3R4LT5yb290bW9kZV9wcmVzZW50IHx8CisJICAgICFjdHgtPnVzZXJfaWRfcHJlc2VudCB8fCAhY3R4LT5ncm91cF9pZF9wcmVzZW50KQorCQlyZXR1cm4gLUVJTlZBTDsKKworI2lmZGVmIENPTkZJR19CTE9DSworCWlmIChjdHgtPmlzX2JkZXYpCisJCXJldHVybiBnZXRfdHJlZV9iZGV2KGZjLCBmdXNlX2ZpbGxfc3VwZXIpOworI2VuZGlmCisKKwlyZXR1cm4gZ2V0X3RyZWVfbm9kZXYoZmMsIGZ1c2VfZmlsbF9zdXBlcik7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnNfY29udGV4dF9vcGVyYXRpb25zIGZ1c2VfY29udGV4dF9vcHMgPSB7CisJLmZyZWUJCT0gZnVzZV9mcmVlX2ZjLAorCS5wYXJzZV9wYXJhbQk9IGZ1c2VfcGFyc2VfcGFyYW0sCisJLmdldF90cmVlCT0gZnVzZV9nZXRfdHJlZSwKK307CisKKy8qCisgKiBTZXQgdXAgdGhlIGZpbGVzeXN0ZW0gbW91bnQgY29udGV4dC4KKyAqLworc3RhdGljIGludCBmdXNlX2luaXRfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCit7CisJc3RydWN0IGZ1c2VfZnNfY29udGV4dCAqY3R4OworCisJY3R4ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGZ1c2VfZnNfY29udGV4dCksIEdGUF9LRVJORUwpOworCWlmICghY3R4KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWN0eC0+bWF4X3JlYWQgPSB+MDsKKwljdHgtPmJsa3NpemUgPSBGVVNFX0RFRkFVTFRfQkxLU0laRTsKKworI2lmZGVmIENPTkZJR19CTE9DSworCWlmIChmYy0+ZnNfdHlwZSA9PSAmZnVzZWJsa19mc190eXBlKSB7CisJCWN0eC0+aXNfYmRldiA9IHRydWU7CisJCWN0eC0+ZGVzdHJveSA9IHRydWU7CisJfQorI2VuZGlmCisKKwlmYy0+ZnNfcHJpdmF0ZSA9IGN0eDsKKwlmYy0+b3BzID0gJmZ1c2VfY29udGV4dF9vcHM7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGZ1c2Vfc2JfZGVzdHJveShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQpAQCAtMTI0MSw3ICsxMzE5LDggQEAgc3RhdGljIHZvaWQgZnVzZV9zYl9kZXN0cm95KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uX3N1cGVyKHNiKTsKIAogCWlmIChmYykgewotCQlmdXNlX3NlbmRfZGVzdHJveShmYyk7CisJCWlmIChmYy0+ZGVzdHJveSkKKwkJCWZ1c2Vfc2VuZF9kZXN0cm95KGZjKTsKIAogCQlmdXNlX2Fib3J0X2Nvbm4oZmMpOwogCQlmdXNlX3dhaXRfYWJvcnRlZChmYyk7CkBAIC0xMjUyLDI5ICsxMzMxLDI0IEBAIHN0YXRpYyB2b2lkIGZ1c2Vfc2JfZGVzdHJveShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCX0KIH0KIAotc3RhdGljIHZvaWQgZnVzZV9raWxsX3NiX2Fub24oc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3ZvaWQgZnVzZV9raWxsX3NiX2Fub24oc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlmdXNlX3NiX2Rlc3Ryb3koc2IpOwogCWtpbGxfYW5vbl9zdXBlcihzYik7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChmdXNlX2tpbGxfc2JfYW5vbik7CiAKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBmdXNlX2ZzX3R5cGUgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5uYW1lCQk9ICJmdXNlIiwKIAkuZnNfZmxhZ3MJPSBGU19IQVNfU1VCVFlQRSB8IEZTX1VTRVJOU19NT1VOVCwKLQkubW91bnQJCT0gZnVzZV9tb3VudCwKKwkuaW5pdF9mc19jb250ZXh0ID0gZnVzZV9pbml0X2ZzX2NvbnRleHQsCisJLnBhcmFtZXRlcnMJPSAmZnVzZV9mc19wYXJhbWV0ZXJzLAogCS5raWxsX3NiCT0gZnVzZV9raWxsX3NiX2Fub24sCiB9OwogTU9EVUxFX0FMSUFTX0ZTKCJmdXNlIik7CiAKICNpZmRlZiBDT05GSUdfQkxPQ0sKLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpmdXNlX21vdW50X2JsayhzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKLQkJCSAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsCi0JCQkgICB2b2lkICpyYXdfZGF0YSkKLXsKLQlyZXR1cm4gbW91bnRfYmRldihmc190eXBlLCBmbGFncywgZGV2X25hbWUsIHJhd19kYXRhLCBmdXNlX2ZpbGxfc3VwZXIpOwotfQotCiBzdGF0aWMgdm9pZCBmdXNlX2tpbGxfc2JfYmxrKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJZnVzZV9zYl9kZXN0cm95KHNiKTsKQEAgLTEyODQsNyArMTM1OCw4IEBAIHN0YXRpYyB2b2lkIGZ1c2Vfa2lsbF9zYl9ibGsoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBmdXNlYmxrX2ZzX3R5cGUgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5uYW1lCQk9ICJmdXNlYmxrIiwKLQkubW91bnQJCT0gZnVzZV9tb3VudF9ibGssCisJLmluaXRfZnNfY29udGV4dCA9IGZ1c2VfaW5pdF9mc19jb250ZXh0LAorCS5wYXJhbWV0ZXJzCT0gJmZ1c2VfZnNfcGFyYW1ldGVycywKIAkua2lsbF9zYgk9IGZ1c2Vfa2lsbF9zYl9ibGssCiAJLmZzX2ZsYWdzCT0gRlNfUkVRVUlSRVNfREVWIHwgRlNfSEFTX1NVQlRZUEUsCiB9OwpkaWZmIC0tZ2l0IGEvZnMvZnVzZS9yZWFkZGlyLmMgYi9mcy9mdXNlL3JlYWRkaXIuYwppbmRleCA1NzRkMDNmLi41YzM4YjlkIDEwMDY0NAotLS0gYS9mcy9mdXNlL3JlYWRkaXIuYworKysgYi9mcy9mdXNlL3JlYWRkaXIuYwpAQCAtMjQ5LDYgKzI0OSwyNyBAQCBzdGF0aWMgaW50IGZ1c2VfZGlyZW50cGx1c19saW5rKHN0cnVjdCBmaWxlICpmaWxlLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBmdXNlX2ZvcmNlX2ZvcmdldChzdHJ1Y3QgZmlsZSAqZmlsZSwgdTY0IG5vZGVpZCkKK3sKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxlKTsKKwlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oaW5vZGUpOworCXN0cnVjdCBmdXNlX2ZvcmdldF9pbiBpbmFyZzsKKwlGVVNFX0FSR1MoYXJncyk7CisKKwltZW1zZXQoJmluYXJnLCAwLCBzaXplb2YoaW5hcmcpKTsKKwlpbmFyZy5ubG9va3VwID0gMTsKKwlhcmdzLm9wY29kZSA9IEZVU0VfRk9SR0VUOworCWFyZ3Mubm9kZWlkID0gbm9kZWlkOworCWFyZ3MuaW5fbnVtYXJncyA9IDE7CisJYXJncy5pbl9hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOworCWFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKKwlhcmdzLmZvcmNlID0gdHJ1ZTsKKwlhcmdzLm5vcmVwbHkgPSB0cnVlOworCisJZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOworCS8qIGlnbm9yZSBlcnJvcnMgKi8KK30KKwogc3RhdGljIGludCBwYXJzZV9kaXJwbHVzZmlsZShjaGFyICpidWYsIHNpemVfdCBuYnl0ZXMsIHN0cnVjdCBmaWxlICpmaWxlLAogCQkJICAgICBzdHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCwgdTY0IGF0dHJfdmVyc2lvbikKIHsKQEAgLTI5NSw2MiArMzE2LDU1IEBAIHN0YXRpYyBpbnQgcGFyc2VfZGlycGx1c2ZpbGUoY2hhciAqYnVmLCBzaXplX3QgbmJ5dGVzLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAogc3RhdGljIGludCBmdXNlX3JlYWRkaXJfdW5jYWNoZWQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQogewotCWludCBwbHVzLCBlcnI7Ci0Jc2l6ZV90IG5ieXRlczsKKwlpbnQgcGx1czsKKwlzc2l6ZV90IHJlczsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxlKTsKIAlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oaW5vZGUpOwotCXN0cnVjdCBmdXNlX3JlcSAqcmVxOworCXN0cnVjdCBmdXNlX2lvX2FyZ3MgaWEgPSB7fTsKKwlzdHJ1Y3QgZnVzZV9hcmdzX3BhZ2VzICphcCA9ICZpYS5hcDsKKwlzdHJ1Y3QgZnVzZV9wYWdlX2Rlc2MgZGVzYyA9IHsgLmxlbmd0aCA9IFBBR0VfU0laRSB9OwogCXU2NCBhdHRyX3ZlcnNpb24gPSAwOwogCWJvb2wgbG9ja2VkOwogCi0JcmVxID0gZnVzZV9nZXRfcmVxKGZjLCAxKTsKLQlpZiAoSVNfRVJSKHJlcSkpCi0JCXJldHVybiBQVFJfRVJSKHJlcSk7Ci0KIAlwYWdlID0gYWxsb2NfcGFnZShHRlBfS0VSTkVMKTsKLQlpZiAoIXBhZ2UpIHsKLQkJZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKKwlpZiAoIXBhZ2UpCiAJCXJldHVybiAtRU5PTUVNOwotCX0KIAogCXBsdXMgPSBmdXNlX3VzZV9yZWFkZGlycGx1cyhpbm9kZSwgY3R4KTsKLQlyZXEtPm91dC5hcmdwYWdlcyA9IDE7Ci0JcmVxLT5udW1fcGFnZXMgPSAxOwotCXJlcS0+cGFnZXNbMF0gPSBwYWdlOwotCXJlcS0+cGFnZV9kZXNjc1swXS5sZW5ndGggPSBQQUdFX1NJWkU7CisJYXAtPmFyZ3Mub3V0X3BhZ2VzID0gMTsKKwlhcC0+bnVtX3BhZ2VzID0gMTsKKwlhcC0+cGFnZXMgPSAmcGFnZTsKKwlhcC0+ZGVzY3MgPSAmZGVzYzsKIAlpZiAocGx1cykgewogCQlhdHRyX3ZlcnNpb24gPSBmdXNlX2dldF9hdHRyX3ZlcnNpb24oZmMpOwotCQlmdXNlX3JlYWRfZmlsbChyZXEsIGZpbGUsIGN0eC0+cG9zLCBQQUdFX1NJWkUsCi0JCQkgICAgICAgRlVTRV9SRUFERElSUExVUyk7CisJCWZ1c2VfcmVhZF9hcmdzX2ZpbGwoJmlhLCBmaWxlLCBjdHgtPnBvcywgUEFHRV9TSVpFLAorCQkJCSAgICBGVVNFX1JFQURESVJQTFVTKTsKIAl9IGVsc2UgewotCQlmdXNlX3JlYWRfZmlsbChyZXEsIGZpbGUsIGN0eC0+cG9zLCBQQUdFX1NJWkUsCi0JCQkgICAgICAgRlVTRV9SRUFERElSKTsKKwkJZnVzZV9yZWFkX2FyZ3NfZmlsbCgmaWEsIGZpbGUsIGN0eC0+cG9zLCBQQUdFX1NJWkUsCisJCQkJICAgIEZVU0VfUkVBRERJUik7CiAJfQogCWxvY2tlZCA9IGZ1c2VfbG9ja19pbm9kZShpbm9kZSk7Ci0JZnVzZV9yZXF1ZXN0X3NlbmQoZmMsIHJlcSk7CisJcmVzID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFwLT5hcmdzKTsKIAlmdXNlX3VubG9ja19pbm9kZShpbm9kZSwgbG9ja2VkKTsKLQluYnl0ZXMgPSByZXEtPm91dC5hcmdzWzBdLnNpemU7Ci0JZXJyID0gcmVxLT5vdXQuaC5lcnJvcjsKLQlmdXNlX3B1dF9yZXF1ZXN0KGZjLCByZXEpOwotCWlmICghZXJyKSB7Ci0JCWlmICghbmJ5dGVzKSB7CisJaWYgKHJlcyA+PSAwKSB7CisJCWlmICghcmVzKSB7CiAJCQlzdHJ1Y3QgZnVzZV9maWxlICpmZiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCQkJaWYgKGZmLT5vcGVuX2ZsYWdzICYgRk9QRU5fQ0FDSEVfRElSKQogCQkJCWZ1c2VfcmVhZGRpcl9jYWNoZV9lbmQoZmlsZSwgY3R4LT5wb3MpOwogCQl9IGVsc2UgaWYgKHBsdXMpIHsKLQkJCWVyciA9IHBhcnNlX2RpcnBsdXNmaWxlKHBhZ2VfYWRkcmVzcyhwYWdlKSwgbmJ5dGVzLAorCQkJcmVzID0gcGFyc2VfZGlycGx1c2ZpbGUocGFnZV9hZGRyZXNzKHBhZ2UpLCByZXMsCiAJCQkJCQlmaWxlLCBjdHgsIGF0dHJfdmVyc2lvbik7CiAJCX0gZWxzZSB7Ci0JCQllcnIgPSBwYXJzZV9kaXJmaWxlKHBhZ2VfYWRkcmVzcyhwYWdlKSwgbmJ5dGVzLCBmaWxlLAorCQkJcmVzID0gcGFyc2VfZGlyZmlsZShwYWdlX2FkZHJlc3MocGFnZSksIHJlcywgZmlsZSwKIAkJCQkJICAgIGN0eCk7CiAJCX0KIAl9CiAKIAlfX2ZyZWVfcGFnZShwYWdlKTsKIAlmdXNlX2ludmFsaWRhdGVfYXRpbWUoaW5vZGUpOwotCXJldHVybiBlcnI7CisJcmV0dXJuIHJlczsKIH0KIAogZW51bSBmdXNlX3BhcnNlX3Jlc3VsdCB7CkBAIC0zNzIsMTEgKzM4NiwxMyBAQCBzdGF0aWMgZW51bSBmdXNlX3BhcnNlX3Jlc3VsdCBmdXNlX3BhcnNlX2NhY2hlKHN0cnVjdCBmdXNlX2ZpbGUgKmZmLAogCWZvciAoOzspIHsKIAkJc3RydWN0IGZ1c2VfZGlyZW50ICpkaXJlbnQgPSBhZGRyICsgb2Zmc2V0OwogCQl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gc2l6ZSAtIG9mZnNldDsKLQkJc2l6ZV90IHJlY2xlbiA9IEZVU0VfRElSRU5UX1NJWkUoZGlyZW50KTsKKwkJc2l6ZV90IHJlY2xlbjsKIAogCQlpZiAobmJ5dGVzIDwgRlVTRV9OQU1FX09GRlNFVCB8fCAhZGlyZW50LT5uYW1lbGVuKQogCQkJYnJlYWs7CiAKKwkJcmVjbGVuID0gRlVTRV9ESVJFTlRfU0laRShkaXJlbnQpOyAvKiBkZXJlZnMgLT5uYW1lbGVuICovCisKIAkJaWYgKFdBUk5fT04oZGlyZW50LT5uYW1lbGVuID4gRlVTRV9OQU1FX01BWCkpCiAJCQlyZXR1cm4gRk9VTkRfRVJSOwogCQlpZiAoV0FSTl9PTihyZWNsZW4gPiBuYnl0ZXMpKQpkaWZmIC0tZ2l0IGEvZnMvZnVzZS92aXJ0aW9fZnMuYyBiL2ZzL2Z1c2UvdmlydGlvX2ZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFmM2YxMwotLS0gL2Rldi9udWxsCisrKyBiL2ZzL2Z1c2UvdmlydGlvX2ZzLmMKQEAgLTAsMCArMSwxMTk1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIHZpcnRpby1mczogVmlydGlvIEZpbGVzeXN0ZW0KKyAqIENvcHlyaWdodCAoQykgMjAxOCBSZWQgSGF0LCBJbmMuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdmlydGlvLmg+CisjaW5jbHVkZSA8bGludXgvdmlydGlvX2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9mc19jb250ZXh0Lmg+CisjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgorI2luY2x1ZGUgImZ1c2VfaS5oIgorCisvKiBMaXN0IG9mIHZpcnRpby1mcyBkZXZpY2UgaW5zdGFuY2VzIGFuZCBhIGxvY2sgZm9yIHRoZSBsaXN0LiBBbHNvIHByb3ZpZGVzCisgKiBtdXR1YWwgZXhjbHVzaW9uIGluIGRldmljZSByZW1vdmFsIGFuZCBtb3VudGluZyBwYXRoCisgKi8KK3N0YXRpYyBERUZJTkVfTVVURVgodmlydGlvX2ZzX211dGV4KTsKK3N0YXRpYyBMSVNUX0hFQUQodmlydGlvX2ZzX2luc3RhbmNlcyk7CisKK2VudW0geworCVZRX0hJUFJJTywKKwlWUV9SRVFVRVNUCit9OworCisvKiBQZXItdmlydHF1ZXVlIHN0YXRlICovCitzdHJ1Y3QgdmlydGlvX2ZzX3ZxIHsKKwlzcGlubG9ja190IGxvY2s7CisJc3RydWN0IHZpcnRxdWV1ZSAqdnE7ICAgICAvKiBwcm90ZWN0ZWQgYnkgLT5sb2NrICovCisJc3RydWN0IHdvcmtfc3RydWN0IGRvbmVfd29yazsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHF1ZXVlZF9yZXFzOworCXN0cnVjdCBkZWxheWVkX3dvcmsgZGlzcGF0Y2hfd29yazsKKwlzdHJ1Y3QgZnVzZV9kZXYgKmZ1ZDsKKwlib29sIGNvbm5lY3RlZDsKKwlsb25nIGluX2ZsaWdodDsKKwljaGFyIG5hbWVbMjRdOworfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wOworCisvKiBBIHZpcnRpby1mcyBkZXZpY2UgaW5zdGFuY2UgKi8KK3N0cnVjdCB2aXJ0aW9fZnMgeworCXN0cnVjdCBrcmVmIHJlZmNvdW50OworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsgICAgLyogb24gdmlydGlvX2ZzX2luc3RhbmNlcyAqLworCWNoYXIgKnRhZzsKKwlzdHJ1Y3QgdmlydGlvX2ZzX3ZxICp2cXM7CisJdW5zaWduZWQgaW50IG52cXM7ICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIHZpcnRxdWV1ZXMgKi8KKwl1bnNpZ25lZCBpbnQgbnVtX3JlcXVlc3RfcXVldWVzOyAvKiBudW1iZXIgb2YgcmVxdWVzdCBxdWV1ZXMgKi8KK307CisKK3N0cnVjdCB2aXJ0aW9fZnNfZm9yZ2V0IHsKKwlzdHJ1Y3QgZnVzZV9pbl9oZWFkZXIgaWg7CisJc3RydWN0IGZ1c2VfZm9yZ2V0X2luIGFyZzsKKwkvKiBUaGlzIHJlcXVlc3QgY2FuIGJlIHRlbXBvcmFyaWx5IHF1ZXVlZCBvbiB2aXJ0IHF1ZXVlICovCisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworfTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgdmlydGlvX2ZzX3ZxICp2cV90b19mc3ZxKHN0cnVjdCB2aXJ0cXVldWUgKnZxKQoreworCXN0cnVjdCB2aXJ0aW9fZnMgKmZzID0gdnEtPnZkZXYtPnByaXY7CisKKwlyZXR1cm4gJmZzLT52cXNbdnEtPmluZGV4XTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgZnVzZV9wcXVldWUgKnZxX3RvX2ZwcShzdHJ1Y3QgdmlydHF1ZXVlICp2cSkKK3sKKwlyZXR1cm4gJnZxX3RvX2ZzdnEodnEpLT5mdWQtPnBxOworfQorCitzdGF0aWMgdm9pZCByZWxlYXNlX3ZpcnRpb19mc19vYmooc3RydWN0IGtyZWYgKnJlZikKK3sKKwlzdHJ1Y3QgdmlydGlvX2ZzICp2ZnMgPSBjb250YWluZXJfb2YocmVmLCBzdHJ1Y3QgdmlydGlvX2ZzLCByZWZjb3VudCk7CisKKwlrZnJlZSh2ZnMtPnZxcyk7CisJa2ZyZWUodmZzKTsKK30KKworLyogTWFrZSBzdXJlIHZpcnRpb2ZzX211dGV4IGlzIGhlbGQgKi8KK3N0YXRpYyB2b2lkIHZpcnRpb19mc19wdXQoc3RydWN0IHZpcnRpb19mcyAqZnMpCit7CisJa3JlZl9wdXQoJmZzLT5yZWZjb3VudCwgcmVsZWFzZV92aXJ0aW9fZnNfb2JqKTsKK30KKworc3RhdGljIHZvaWQgdmlydGlvX2ZzX2ZpcV9yZWxlYXNlKHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxKQoreworCXN0cnVjdCB2aXJ0aW9fZnMgKnZmcyA9IGZpcS0+cHJpdjsKKworCW11dGV4X2xvY2soJnZpcnRpb19mc19tdXRleCk7CisJdmlydGlvX2ZzX3B1dCh2ZnMpOworCW11dGV4X3VubG9jaygmdmlydGlvX2ZzX211dGV4KTsKK30KKworc3RhdGljIHZvaWQgdmlydGlvX2ZzX2RyYWluX3F1ZXVlKHN0cnVjdCB2aXJ0aW9fZnNfdnEgKmZzdnEpCit7CisJV0FSTl9PTihmc3ZxLT5pbl9mbGlnaHQgPCAwKTsKKworCS8qIFdhaXQgZm9yIGluIGZsaWdodCByZXF1ZXN0cyB0byBmaW5pc2guKi8KKwl3aGlsZSAoMSkgeworCQlzcGluX2xvY2soJmZzdnEtPmxvY2spOworCQlpZiAoIWZzdnEtPmluX2ZsaWdodCkgeworCQkJc3Bpbl91bmxvY2soJmZzdnEtPmxvY2spOworCQkJYnJlYWs7CisJCX0KKwkJc3Bpbl91bmxvY2soJmZzdnEtPmxvY2spOworCQkvKiBUT0RPIHVzZSBjb21wbGV0aW9uIGluc3RlYWQgb2YgdGltZW91dCAqLworCQl1c2xlZXBfcmFuZ2UoMTAwMCwgMjAwMCk7CisJfQorCisJZmx1c2hfd29yaygmZnN2cS0+ZG9uZV93b3JrKTsKKwlmbHVzaF9kZWxheWVkX3dvcmsoJmZzdnEtPmRpc3BhdGNoX3dvcmspOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZHJhaW5faGlwcmlvX3F1ZXVlZF9yZXFzKHN0cnVjdCB2aXJ0aW9fZnNfdnEgKmZzdnEpCit7CisJc3RydWN0IHZpcnRpb19mc19mb3JnZXQgKmZvcmdldDsKKworCXNwaW5fbG9jaygmZnN2cS0+bG9jayk7CisJd2hpbGUgKDEpIHsKKwkJZm9yZ2V0ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZmc3ZxLT5xdWV1ZWRfcmVxcywKKwkJCQkJCXN0cnVjdCB2aXJ0aW9fZnNfZm9yZ2V0LCBsaXN0KTsKKwkJaWYgKCFmb3JnZXQpCisJCQlicmVhazsKKwkJbGlzdF9kZWwoJmZvcmdldC0+bGlzdCk7CisJCWtmcmVlKGZvcmdldCk7CisJfQorCXNwaW5fdW5sb2NrKCZmc3ZxLT5sb2NrKTsKK30KKworc3RhdGljIHZvaWQgdmlydGlvX2ZzX2RyYWluX2FsbF9xdWV1ZXMoc3RydWN0IHZpcnRpb19mcyAqZnMpCit7CisJc3RydWN0IHZpcnRpb19mc192cSAqZnN2cTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBmcy0+bnZxczsgaSsrKSB7CisJCWZzdnEgPSAmZnMtPnZxc1tpXTsKKwkJaWYgKGkgPT0gVlFfSElQUklPKQorCQkJZHJhaW5faGlwcmlvX3F1ZXVlZF9yZXFzKGZzdnEpOworCisJCXZpcnRpb19mc19kcmFpbl9xdWV1ZShmc3ZxKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHZpcnRpb19mc19zdGFydF9hbGxfcXVldWVzKHN0cnVjdCB2aXJ0aW9fZnMgKmZzKQoreworCXN0cnVjdCB2aXJ0aW9fZnNfdnEgKmZzdnE7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZnMtPm52cXM7IGkrKykgeworCQlmc3ZxID0gJmZzLT52cXNbaV07CisJCXNwaW5fbG9jaygmZnN2cS0+bG9jayk7CisJCWZzdnEtPmNvbm5lY3RlZCA9IHRydWU7CisJCXNwaW5fdW5sb2NrKCZmc3ZxLT5sb2NrKTsKKwl9Cit9CisKKy8qIEFkZCBhIG5ldyBpbnN0YW5jZSB0byB0aGUgbGlzdCBvciByZXR1cm4gLUVFWElTVCBpZiB0YWcgbmFtZSBleGlzdHMqLworc3RhdGljIGludCB2aXJ0aW9fZnNfYWRkX2luc3RhbmNlKHN0cnVjdCB2aXJ0aW9fZnMgKmZzKQoreworCXN0cnVjdCB2aXJ0aW9fZnMgKmZzMjsKKwlib29sIGR1cGxpY2F0ZSA9IGZhbHNlOworCisJbXV0ZXhfbG9jaygmdmlydGlvX2ZzX211dGV4KTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZnMyLCAmdmlydGlvX2ZzX2luc3RhbmNlcywgbGlzdCkgeworCQlpZiAoc3RyY21wKGZzLT50YWcsIGZzMi0+dGFnKSA9PSAwKQorCQkJZHVwbGljYXRlID0gdHJ1ZTsKKwl9CisKKwlpZiAoIWR1cGxpY2F0ZSkKKwkJbGlzdF9hZGRfdGFpbCgmZnMtPmxpc3QsICZ2aXJ0aW9fZnNfaW5zdGFuY2VzKTsKKworCW11dGV4X3VubG9jaygmdmlydGlvX2ZzX211dGV4KTsKKworCWlmIChkdXBsaWNhdGUpCisJCXJldHVybiAtRUVYSVNUOworCXJldHVybiAwOworfQorCisvKiBSZXR1cm4gdGhlIHZpcnRpb19mcyB3aXRoIGEgZ2l2ZW4gdGFnLCBvciBOVUxMICovCitzdGF0aWMgc3RydWN0IHZpcnRpb19mcyAqdmlydGlvX2ZzX2ZpbmRfaW5zdGFuY2UoY29uc3QgY2hhciAqdGFnKQoreworCXN0cnVjdCB2aXJ0aW9fZnMgKmZzOworCisJbXV0ZXhfbG9jaygmdmlydGlvX2ZzX211dGV4KTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZnMsICZ2aXJ0aW9fZnNfaW5zdGFuY2VzLCBsaXN0KSB7CisJCWlmIChzdHJjbXAoZnMtPnRhZywgdGFnKSA9PSAwKSB7CisJCQlrcmVmX2dldCgmZnMtPnJlZmNvdW50KTsKKwkJCWdvdG8gZm91bmQ7CisJCX0KKwl9CisKKwlmcyA9IE5VTEw7IC8qIG5vdCBmb3VuZCAqLworCitmb3VuZDoKKwltdXRleF91bmxvY2soJnZpcnRpb19mc19tdXRleCk7CisKKwlyZXR1cm4gZnM7Cit9CisKK3N0YXRpYyB2b2lkIHZpcnRpb19mc19mcmVlX2RldnMoc3RydWN0IHZpcnRpb19mcyAqZnMpCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZnMtPm52cXM7IGkrKykgeworCQlzdHJ1Y3QgdmlydGlvX2ZzX3ZxICpmc3ZxID0gJmZzLT52cXNbaV07CisKKwkJaWYgKCFmc3ZxLT5mdWQpCisJCQljb250aW51ZTsKKworCQlmdXNlX2Rldl9mcmVlKGZzdnEtPmZ1ZCk7CisJCWZzdnEtPmZ1ZCA9IE5VTEw7CisJfQorfQorCisvKiBSZWFkIGZpbGVzeXN0ZW0gbmFtZSBmcm9tIHZpcnRpbyBjb25maWcgaW50byBmcy0+dGFnIChtdXN0IGtmcmVlKCkpLiAqLworc3RhdGljIGludCB2aXJ0aW9fZnNfcmVhZF90YWcoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYsIHN0cnVjdCB2aXJ0aW9fZnMgKmZzKQoreworCWNoYXIgdGFnX2J1ZltzaXplb2ZfZmllbGQoc3RydWN0IHZpcnRpb19mc19jb25maWcsIHRhZyldOworCWNoYXIgKmVuZDsKKwlzaXplX3QgbGVuOworCisJdmlydGlvX2NyZWFkX2J5dGVzKHZkZXYsIG9mZnNldG9mKHN0cnVjdCB2aXJ0aW9fZnNfY29uZmlnLCB0YWcpLAorCQkJICAgJnRhZ19idWYsIHNpemVvZih0YWdfYnVmKSk7CisJZW5kID0gbWVtY2hyKHRhZ19idWYsICdcMCcsIHNpemVvZih0YWdfYnVmKSk7CisJaWYgKGVuZCA9PSB0YWdfYnVmKQorCQlyZXR1cm4gLUVJTlZBTDsgLyogZW1wdHkgdGFnICovCisJaWYgKCFlbmQpCisJCWVuZCA9ICZ0YWdfYnVmW3NpemVvZih0YWdfYnVmKV07CisKKwlsZW4gPSBlbmQgLSB0YWdfYnVmOworCWZzLT50YWcgPSBkZXZtX2ttYWxsb2MoJnZkZXYtPmRldiwgbGVuICsgMSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFmcy0+dGFnKQorCQlyZXR1cm4gLUVOT01FTTsKKwltZW1jcHkoZnMtPnRhZywgdGFnX2J1ZiwgbGVuKTsKKwlmcy0+dGFnW2xlbl0gPSAnXDAnOworCXJldHVybiAwOworfQorCisvKiBXb3JrIGZ1bmN0aW9uIGZvciBoaXByaW8gY29tcGxldGlvbiAqLworc3RhdGljIHZvaWQgdmlydGlvX2ZzX2hpcHJpb19kb25lX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCB2aXJ0aW9fZnNfdnEgKmZzdnEgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb19mc192cSwKKwkJCQkJCSBkb25lX3dvcmspOworCXN0cnVjdCB2aXJ0cXVldWUgKnZxID0gZnN2cS0+dnE7CisKKwkvKiBGcmVlIGNvbXBsZXRlZCBGVVNFX0ZPUkdFVCByZXF1ZXN0cyAqLworCXNwaW5fbG9jaygmZnN2cS0+bG9jayk7CisJZG8geworCQl1bnNpZ25lZCBpbnQgbGVuOworCQl2b2lkICpyZXE7CisKKwkJdmlydHF1ZXVlX2Rpc2FibGVfY2IodnEpOworCisJCXdoaWxlICgocmVxID0gdmlydHF1ZXVlX2dldF9idWYodnEsICZsZW4pKSAhPSBOVUxMKSB7CisJCQlrZnJlZShyZXEpOworCQkJZnN2cS0+aW5fZmxpZ2h0LS07CisJCX0KKwl9IHdoaWxlICghdmlydHF1ZXVlX2VuYWJsZV9jYih2cSkgJiYgbGlrZWx5KCF2aXJ0cXVldWVfaXNfYnJva2VuKHZxKSkpOworCXNwaW5fdW5sb2NrKCZmc3ZxLT5sb2NrKTsKK30KKworc3RhdGljIHZvaWQgdmlydGlvX2ZzX2R1bW15X2Rpc3BhdGNoX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworfQorCitzdGF0aWMgdm9pZCB2aXJ0aW9fZnNfaGlwcmlvX2Rpc3BhdGNoX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCB2aXJ0aW9fZnNfZm9yZ2V0ICpmb3JnZXQ7CisJc3RydWN0IHZpcnRpb19mc192cSAqZnN2cSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdmlydGlvX2ZzX3ZxLAorCQkJCQkJIGRpc3BhdGNoX3dvcmsud29yayk7CisJc3RydWN0IHZpcnRxdWV1ZSAqdnEgPSBmc3ZxLT52cTsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2c7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ3NbXSA9IHsmc2d9OworCWJvb2wgbm90aWZ5OworCWludCByZXQ7CisKKwlwcl9kZWJ1ZygidmlydGlvLWZzOiB3b3JrZXIgJXMgY2FsbGVkLlxuIiwgX19mdW5jX18pOworCXdoaWxlICgxKSB7CisJCXNwaW5fbG9jaygmZnN2cS0+bG9jayk7CisJCWZvcmdldCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmZnN2cS0+cXVldWVkX3JlcXMsCisJCQkJCXN0cnVjdCB2aXJ0aW9fZnNfZm9yZ2V0LCBsaXN0KTsKKwkJaWYgKCFmb3JnZXQpIHsKKwkJCXNwaW5fdW5sb2NrKCZmc3ZxLT5sb2NrKTsKKwkJCXJldHVybjsKKwkJfQorCisJCWxpc3RfZGVsKCZmb3JnZXQtPmxpc3QpOworCQlpZiAoIWZzdnEtPmNvbm5lY3RlZCkgeworCQkJc3Bpbl91bmxvY2soJmZzdnEtPmxvY2spOworCQkJa2ZyZWUoZm9yZ2V0KTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJc2dfaW5pdF9vbmUoJnNnLCBmb3JnZXQsIHNpemVvZigqZm9yZ2V0KSk7CisKKwkJLyogRW5xdWV1ZSB0aGUgcmVxdWVzdCAqLworCQlkZXZfZGJnKCZ2cS0+dmRldi0+ZGV2LCAiJXNcbiIsIF9fZnVuY19fKTsKKwkJcmV0ID0gdmlydHF1ZXVlX2FkZF9zZ3ModnEsIHNncywgMSwgMCwgZm9yZ2V0LCBHRlBfQVRPTUlDKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWlmIChyZXQgPT0gLUVOT01FTSB8fCByZXQgPT0gLUVOT1NQQykgeworCQkJCXByX2RlYnVnKCJ2aXJ0aW8tZnM6IENvdWxkIG5vdCBxdWV1ZSBGT1JHRVQ6IGVycj0lZC4gV2lsbCB0cnkgbGF0ZXJcbiIsCisJCQkJCSByZXQpOworCQkJCWxpc3RfYWRkX3RhaWwoJmZvcmdldC0+bGlzdCwKKwkJCQkJCSZmc3ZxLT5xdWV1ZWRfcmVxcyk7CisJCQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZmc3ZxLT5kaXNwYXRjaF93b3JrLAorCQkJCQkJbXNlY3NfdG9famlmZmllcygxKSk7CisJCQl9IGVsc2UgeworCQkJCXByX2RlYnVnKCJ2aXJ0aW8tZnM6IENvdWxkIG5vdCBxdWV1ZSBGT1JHRVQ6IGVycj0lZC4gRHJvcHBpbmcgaXQuXG4iLAorCQkJCQkgcmV0KTsKKwkJCQlrZnJlZShmb3JnZXQpOworCQkJfQorCQkJc3Bpbl91bmxvY2soJmZzdnEtPmxvY2spOworCQkJcmV0dXJuOworCQl9CisKKwkJZnN2cS0+aW5fZmxpZ2h0Kys7CisJCW5vdGlmeSA9IHZpcnRxdWV1ZV9raWNrX3ByZXBhcmUodnEpOworCQlzcGluX3VubG9jaygmZnN2cS0+bG9jayk7CisKKwkJaWYgKG5vdGlmeSkKKwkJCXZpcnRxdWV1ZV9ub3RpZnkodnEpOworCQlwcl9kZWJ1ZygidmlydGlvLWZzOiB3b3JrZXIgJXMgZGlzcGF0Y2hlZCBvbmUgZm9yZ2V0IHJlcXVlc3QuXG4iLAorCQkJIF9fZnVuY19fKTsKKwl9Cit9CisKKy8qIEFsbG9jYXRlIGFuZCBjb3B5IGFyZ3MgaW50byByZXEtPmFyZ2J1ZiAqLworc3RhdGljIGludCBjb3B5X2FyZ3NfdG9fYXJnYnVmKHN0cnVjdCBmdXNlX3JlcSAqcmVxKQoreworCXN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MgPSByZXEtPmFyZ3M7CisJdW5zaWduZWQgaW50IG9mZnNldCA9IDA7CisJdW5zaWduZWQgaW50IG51bV9pbjsKKwl1bnNpZ25lZCBpbnQgbnVtX291dDsKKwl1bnNpZ25lZCBpbnQgbGVuOworCXVuc2lnbmVkIGludCBpOworCisJbnVtX2luID0gYXJncy0+aW5fbnVtYXJncyAtIGFyZ3MtPmluX3BhZ2VzOworCW51bV9vdXQgPSBhcmdzLT5vdXRfbnVtYXJncyAtIGFyZ3MtPm91dF9wYWdlczsKKwlsZW4gPSBmdXNlX2xlbl9hcmdzKG51bV9pbiwgKHN0cnVjdCBmdXNlX2FyZyAqKSBhcmdzLT5pbl9hcmdzKSArCisJICAgICAgZnVzZV9sZW5fYXJncyhudW1fb3V0LCBhcmdzLT5vdXRfYXJncyk7CisKKwlyZXEtPmFyZ2J1ZiA9IGttYWxsb2MobGVuLCBHRlBfQVRPTUlDKTsKKwlpZiAoIXJlcS0+YXJnYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAoaSA9IDA7IGkgPCBudW1faW47IGkrKykgeworCQltZW1jcHkocmVxLT5hcmdidWYgKyBvZmZzZXQsCisJCSAgICAgICBhcmdzLT5pbl9hcmdzW2ldLnZhbHVlLAorCQkgICAgICAgYXJncy0+aW5fYXJnc1tpXS5zaXplKTsKKwkJb2Zmc2V0ICs9IGFyZ3MtPmluX2FyZ3NbaV0uc2l6ZTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogQ29weSBhcmdzIG91dCBvZiBhbmQgZnJlZSByZXEtPmFyZ2J1ZiAqLworc3RhdGljIHZvaWQgY29weV9hcmdzX2Zyb21fYXJnYnVmKHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MsIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQoreworCXVuc2lnbmVkIGludCByZW1haW5pbmc7CisJdW5zaWduZWQgaW50IG9mZnNldDsKKwl1bnNpZ25lZCBpbnQgbnVtX2luOworCXVuc2lnbmVkIGludCBudW1fb3V0OworCXVuc2lnbmVkIGludCBpOworCisJcmVtYWluaW5nID0gcmVxLT5vdXQuaC5sZW4gLSBzaXplb2YocmVxLT5vdXQuaCk7CisJbnVtX2luID0gYXJncy0+aW5fbnVtYXJncyAtIGFyZ3MtPmluX3BhZ2VzOworCW51bV9vdXQgPSBhcmdzLT5vdXRfbnVtYXJncyAtIGFyZ3MtPm91dF9wYWdlczsKKwlvZmZzZXQgPSBmdXNlX2xlbl9hcmdzKG51bV9pbiwgKHN0cnVjdCBmdXNlX2FyZyAqKWFyZ3MtPmluX2FyZ3MpOworCisJZm9yIChpID0gMDsgaSA8IG51bV9vdXQ7IGkrKykgeworCQl1bnNpZ25lZCBpbnQgYXJnc2l6ZSA9IGFyZ3MtPm91dF9hcmdzW2ldLnNpemU7CisKKwkJaWYgKGFyZ3MtPm91dF9hcmd2YXIgJiYKKwkJICAgIGkgPT0gYXJncy0+b3V0X251bWFyZ3MgLSAxICYmCisJCSAgICBhcmdzaXplID4gcmVtYWluaW5nKSB7CisJCQlhcmdzaXplID0gcmVtYWluaW5nOworCQl9CisKKwkJbWVtY3B5KGFyZ3MtPm91dF9hcmdzW2ldLnZhbHVlLCByZXEtPmFyZ2J1ZiArIG9mZnNldCwgYXJnc2l6ZSk7CisJCW9mZnNldCArPSBhcmdzaXplOworCisJCWlmIChpICE9IGFyZ3MtPm91dF9udW1hcmdzIC0gMSkKKwkJCXJlbWFpbmluZyAtPSBhcmdzaXplOworCX0KKworCS8qIFN0b3JlIHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgdmFyaWFibGUtbGVuZ3RoIGFyZyAqLworCWlmIChhcmdzLT5vdXRfYXJndmFyKQorCQlhcmdzLT5vdXRfYXJnc1thcmdzLT5vdXRfbnVtYXJncyAtIDFdLnNpemUgPSByZW1haW5pbmc7CisKKwlrZnJlZShyZXEtPmFyZ2J1Zik7CisJcmVxLT5hcmdidWYgPSBOVUxMOworfQorCisvKiBXb3JrIGZ1bmN0aW9uIGZvciByZXF1ZXN0IGNvbXBsZXRpb24gKi8KK3N0YXRpYyB2b2lkIHZpcnRpb19mc19yZXF1ZXN0c19kb25lX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCB2aXJ0aW9fZnNfdnEgKmZzdnEgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb19mc192cSwKKwkJCQkJCSBkb25lX3dvcmspOworCXN0cnVjdCBmdXNlX3BxdWV1ZSAqZnBxID0gJmZzdnEtPmZ1ZC0+cHE7CisJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBmc3ZxLT5mdWQtPmZjOworCXN0cnVjdCB2aXJ0cXVldWUgKnZxID0gZnN2cS0+dnE7CisJc3RydWN0IGZ1c2VfcmVxICpyZXE7CisJc3RydWN0IGZ1c2VfYXJnc19wYWdlcyAqYXA7CisJc3RydWN0IGZ1c2VfcmVxICpuZXh0OworCXN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3M7CisJdW5zaWduZWQgaW50IGxlbiwgaSwgdGhpc2xlbjsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlMSVNUX0hFQUQocmVxcyk7CisKKwkvKiBDb2xsZWN0IGNvbXBsZXRlZCByZXF1ZXN0cyBvZmYgdGhlIHZpcnRxdWV1ZSAqLworCXNwaW5fbG9jaygmZnN2cS0+bG9jayk7CisJZG8geworCQl2aXJ0cXVldWVfZGlzYWJsZV9jYih2cSk7CisKKwkJd2hpbGUgKChyZXEgPSB2aXJ0cXVldWVfZ2V0X2J1Zih2cSwgJmxlbikpICE9IE5VTEwpIHsKKwkJCXNwaW5fbG9jaygmZnBxLT5sb2NrKTsKKwkJCWxpc3RfbW92ZV90YWlsKCZyZXEtPmxpc3QsICZyZXFzKTsKKwkJCXNwaW5fdW5sb2NrKCZmcHEtPmxvY2spOworCQl9CisJfSB3aGlsZSAoIXZpcnRxdWV1ZV9lbmFibGVfY2IodnEpICYmIGxpa2VseSghdmlydHF1ZXVlX2lzX2Jyb2tlbih2cSkpKTsKKwlzcGluX3VubG9jaygmZnN2cS0+bG9jayk7CisKKwkvKiBFbmQgcmVxdWVzdHMgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCBuZXh0LCAmcmVxcywgbGlzdCkgeworCQkvKgorCQkgKiBUT0RPIHZlcmlmeSB0aGF0IHNlcnZlciBwcm9wZXJseSBmb2xsb3dzIEZVU0UgcHJvdG9jb2wKKwkJICogKG9oLnVuaXEsIG9oLmxlbikKKwkJICovCisJCWFyZ3MgPSByZXEtPmFyZ3M7CisJCWNvcHlfYXJnc19mcm9tX2FyZ2J1ZihhcmdzLCByZXEpOworCisJCWlmIChhcmdzLT5vdXRfcGFnZXMgJiYgYXJncy0+cGFnZV96ZXJvaW5nKSB7CisJCQlsZW4gPSBhcmdzLT5vdXRfYXJnc1thcmdzLT5vdXRfbnVtYXJncyAtIDFdLnNpemU7CisJCQlhcCA9IGNvbnRhaW5lcl9vZihhcmdzLCB0eXBlb2YoKmFwKSwgYXJncyk7CisJCQlmb3IgKGkgPSAwOyBpIDwgYXAtPm51bV9wYWdlczsgaSsrKSB7CisJCQkJdGhpc2xlbiA9IGFwLT5kZXNjc1tpXS5sZW5ndGg7CisJCQkJaWYgKGxlbiA8IHRoaXNsZW4pIHsKKwkJCQkJV0FSTl9PTihhcC0+ZGVzY3NbaV0ub2Zmc2V0KTsKKwkJCQkJcGFnZSA9IGFwLT5wYWdlc1tpXTsKKwkJCQkJemVyb191c2VyX3NlZ21lbnQocGFnZSwgbGVuLCB0aGlzbGVuKTsKKwkJCQkJbGVuID0gMDsKKwkJCQl9IGVsc2UgeworCQkJCQlsZW4gLT0gdGhpc2xlbjsKKwkJCQl9CisJCQl9CisJCX0KKworCQlzcGluX2xvY2soJmZwcS0+bG9jayk7CisJCWNsZWFyX2JpdChGUl9TRU5ULCAmcmVxLT5mbGFncyk7CisJCWxpc3RfZGVsX2luaXQoJnJlcS0+bGlzdCk7CisJCXNwaW5fdW5sb2NrKCZmcHEtPmxvY2spOworCisJCWZ1c2VfcmVxdWVzdF9lbmQoZmMsIHJlcSk7CisJCXNwaW5fbG9jaygmZnN2cS0+bG9jayk7CisJCWZzdnEtPmluX2ZsaWdodC0tOworCQlzcGluX3VubG9jaygmZnN2cS0+bG9jayk7CisJfQorfQorCisvKiBWaXJ0cXVldWUgaW50ZXJydXB0IGhhbmRsZXIgKi8KK3N0YXRpYyB2b2lkIHZpcnRpb19mc192cV9kb25lKHN0cnVjdCB2aXJ0cXVldWUgKnZxKQoreworCXN0cnVjdCB2aXJ0aW9fZnNfdnEgKmZzdnEgPSB2cV90b19mc3ZxKHZxKTsKKworCWRldl9kYmcoJnZxLT52ZGV2LT5kZXYsICIlcyAlc1xuIiwgX19mdW5jX18sIGZzdnEtPm5hbWUpOworCisJc2NoZWR1bGVfd29yaygmZnN2cS0+ZG9uZV93b3JrKTsKK30KKworLyogSW5pdGlhbGl6ZSB2aXJ0cXVldWVzICovCitzdGF0aWMgaW50IHZpcnRpb19mc19zZXR1cF92cXMoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYsCisJCQkgICAgICAgc3RydWN0IHZpcnRpb19mcyAqZnMpCit7CisJc3RydWN0IHZpcnRxdWV1ZSAqKnZxczsKKwl2cV9jYWxsYmFja190ICoqY2FsbGJhY2tzOworCWNvbnN0IGNoYXIgKipuYW1lczsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0ID0gMDsKKworCXZpcnRpb19jcmVhZCh2ZGV2LCBzdHJ1Y3QgdmlydGlvX2ZzX2NvbmZpZywgbnVtX3JlcXVlc3RfcXVldWVzLAorCQkgICAgICZmcy0+bnVtX3JlcXVlc3RfcXVldWVzKTsKKwlpZiAoZnMtPm51bV9yZXF1ZXN0X3F1ZXVlcyA9PSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWZzLT5udnFzID0gMSArIGZzLT5udW1fcmVxdWVzdF9xdWV1ZXM7CisJZnMtPnZxcyA9IGtjYWxsb2MoZnMtPm52cXMsIHNpemVvZihmcy0+dnFzW1ZRX0hJUFJJT10pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWZzLT52cXMpCisJCXJldHVybiAtRU5PTUVNOworCisJdnFzID0ga21hbGxvY19hcnJheShmcy0+bnZxcywgc2l6ZW9mKHZxc1tWUV9ISVBSSU9dKSwgR0ZQX0tFUk5FTCk7CisJY2FsbGJhY2tzID0ga21hbGxvY19hcnJheShmcy0+bnZxcywgc2l6ZW9mKGNhbGxiYWNrc1tWUV9ISVBSSU9dKSwKKwkJCQkJR0ZQX0tFUk5FTCk7CisJbmFtZXMgPSBrbWFsbG9jX2FycmF5KGZzLT5udnFzLCBzaXplb2YobmFtZXNbVlFfSElQUklPXSksIEdGUF9LRVJORUwpOworCWlmICghdnFzIHx8ICFjYWxsYmFja3MgfHwgIW5hbWVzKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKworCWNhbGxiYWNrc1tWUV9ISVBSSU9dID0gdmlydGlvX2ZzX3ZxX2RvbmU7CisJc25wcmludGYoZnMtPnZxc1tWUV9ISVBSSU9dLm5hbWUsIHNpemVvZihmcy0+dnFzW1ZRX0hJUFJJT10ubmFtZSksCisJCQkiaGlwcmlvIik7CisJbmFtZXNbVlFfSElQUklPXSA9IGZzLT52cXNbVlFfSElQUklPXS5uYW1lOworCUlOSVRfV09SSygmZnMtPnZxc1tWUV9ISVBSSU9dLmRvbmVfd29yaywgdmlydGlvX2ZzX2hpcHJpb19kb25lX3dvcmspOworCUlOSVRfTElTVF9IRUFEKCZmcy0+dnFzW1ZRX0hJUFJJT10ucXVldWVkX3JlcXMpOworCUlOSVRfREVMQVlFRF9XT1JLKCZmcy0+dnFzW1ZRX0hJUFJJT10uZGlzcGF0Y2hfd29yaywKKwkJCXZpcnRpb19mc19oaXByaW9fZGlzcGF0Y2hfd29yayk7CisJc3Bpbl9sb2NrX2luaXQoJmZzLT52cXNbVlFfSElQUklPXS5sb2NrKTsKKworCS8qIEluaXRpYWxpemUgdGhlIHJlcXVlc3RzIHZpcnRxdWV1ZXMgKi8KKwlmb3IgKGkgPSBWUV9SRVFVRVNUOyBpIDwgZnMtPm52cXM7IGkrKykgeworCQlzcGluX2xvY2tfaW5pdCgmZnMtPnZxc1tpXS5sb2NrKTsKKwkJSU5JVF9XT1JLKCZmcy0+dnFzW2ldLmRvbmVfd29yaywgdmlydGlvX2ZzX3JlcXVlc3RzX2RvbmVfd29yayk7CisJCUlOSVRfREVMQVlFRF9XT1JLKCZmcy0+dnFzW2ldLmRpc3BhdGNoX3dvcmssCisJCQkJCXZpcnRpb19mc19kdW1teV9kaXNwYXRjaF93b3JrKTsKKwkJSU5JVF9MSVNUX0hFQUQoJmZzLT52cXNbaV0ucXVldWVkX3JlcXMpOworCQlzbnByaW50Zihmcy0+dnFzW2ldLm5hbWUsIHNpemVvZihmcy0+dnFzW2ldLm5hbWUpLAorCQkJICJyZXF1ZXN0cy4ldSIsIGkgLSBWUV9SRVFVRVNUKTsKKwkJY2FsbGJhY2tzW2ldID0gdmlydGlvX2ZzX3ZxX2RvbmU7CisJCW5hbWVzW2ldID0gZnMtPnZxc1tpXS5uYW1lOworCX0KKworCXJldCA9IHZpcnRpb19maW5kX3Zxcyh2ZGV2LCBmcy0+bnZxcywgdnFzLCBjYWxsYmFja3MsIG5hbWVzLCBOVUxMKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgZnMtPm52cXM7IGkrKykKKwkJZnMtPnZxc1tpXS52cSA9IHZxc1tpXTsKKworCXZpcnRpb19mc19zdGFydF9hbGxfcXVldWVzKGZzKTsKK291dDoKKwlrZnJlZShuYW1lcyk7CisJa2ZyZWUoY2FsbGJhY2tzKTsKKwlrZnJlZSh2cXMpOworCWlmIChyZXQpCisJCWtmcmVlKGZzLT52cXMpOworCXJldHVybiByZXQ7Cit9CisKKy8qIEZyZWUgdmlydHF1ZXVlcyAoZGV2aWNlIG11c3QgYWxyZWFkeSBiZSByZXNldCkgKi8KK3N0YXRpYyB2b2lkIHZpcnRpb19mc19jbGVhbnVwX3ZxcyhzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldiwKKwkJCQkgIHN0cnVjdCB2aXJ0aW9fZnMgKmZzKQoreworCXZkZXYtPmNvbmZpZy0+ZGVsX3Zxcyh2ZGV2KTsKK30KKworc3RhdGljIGludCB2aXJ0aW9fZnNfcHJvYmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCit7CisJc3RydWN0IHZpcnRpb19mcyAqZnM7CisJaW50IHJldDsKKworCWZzID0ga3phbGxvYyhzaXplb2YoKmZzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFmcykKKwkJcmV0dXJuIC1FTk9NRU07CisJa3JlZl9pbml0KCZmcy0+cmVmY291bnQpOworCXZkZXYtPnByaXYgPSBmczsKKworCXJldCA9IHZpcnRpb19mc19yZWFkX3RhZyh2ZGV2LCBmcyk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gb3V0OworCisJcmV0ID0gdmlydGlvX2ZzX3NldHVwX3Zxcyh2ZGV2LCBmcyk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gb3V0OworCisJLyogVE9ETyB2cSBhZmZpbml0eSAqLworCisJLyogQnJpbmcgdGhlIGRldmljZSBvbmxpbmUgaW4gY2FzZSB0aGUgZmlsZXN5c3RlbSBpcyBtb3VudGVkIGFuZAorCSAqIHJlcXVlc3RzIG5lZWQgdG8gYmUgc2VudCBiZWZvcmUgd2UgcmV0dXJuLgorCSAqLworCXZpcnRpb19kZXZpY2VfcmVhZHkodmRldik7CisKKwlyZXQgPSB2aXJ0aW9fZnNfYWRkX2luc3RhbmNlKGZzKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfdnFzOworCisJcmV0dXJuIDA7CisKK291dF92cXM6CisJdmRldi0+Y29uZmlnLT5yZXNldCh2ZGV2KTsKKwl2aXJ0aW9fZnNfY2xlYW51cF92cXModmRldiwgZnMpOworCitvdXQ6CisJdmRldi0+cHJpdiA9IE5VTEw7CisJa2ZyZWUoZnMpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHZpcnRpb19mc19zdG9wX2FsbF9xdWV1ZXMoc3RydWN0IHZpcnRpb19mcyAqZnMpCit7CisJc3RydWN0IHZpcnRpb19mc192cSAqZnN2cTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBmcy0+bnZxczsgaSsrKSB7CisJCWZzdnEgPSAmZnMtPnZxc1tpXTsKKwkJc3Bpbl9sb2NrKCZmc3ZxLT5sb2NrKTsKKwkJZnN2cS0+Y29ubmVjdGVkID0gZmFsc2U7CisJCXNwaW5fdW5sb2NrKCZmc3ZxLT5sb2NrKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHZpcnRpb19mc19yZW1vdmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCit7CisJc3RydWN0IHZpcnRpb19mcyAqZnMgPSB2ZGV2LT5wcml2OworCisJbXV0ZXhfbG9jaygmdmlydGlvX2ZzX211dGV4KTsKKwkvKiBUaGlzIGRldmljZSBpcyBnb2luZyBhd2F5LiBObyBvbmUgc2hvdWxkIGdldCBuZXcgcmVmZXJlbmNlICovCisJbGlzdF9kZWxfaW5pdCgmZnMtPmxpc3QpOworCXZpcnRpb19mc19zdG9wX2FsbF9xdWV1ZXMoZnMpOworCXZpcnRpb19mc19kcmFpbl9hbGxfcXVldWVzKGZzKTsKKwl2ZGV2LT5jb25maWctPnJlc2V0KHZkZXYpOworCXZpcnRpb19mc19jbGVhbnVwX3Zxcyh2ZGV2LCBmcyk7CisKKwl2ZGV2LT5wcml2ID0gTlVMTDsKKwkvKiBQdXQgZGV2aWNlIHJlZmVyZW5jZSBvbiB2aXJ0aW9fZnMgb2JqZWN0ICovCisJdmlydGlvX2ZzX3B1dChmcyk7CisJbXV0ZXhfdW5sb2NrKCZ2aXJ0aW9fZnNfbXV0ZXgpOworfQorCisjaWZkZWYgQ09ORklHX1BNX1NMRUVQCitzdGF0aWMgaW50IHZpcnRpb19mc19mcmVlemUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCit7CisJLyogVE9ETyBuZWVkIHRvIHNhdmUgc3RhdGUgaGVyZSAqLworCXByX3dhcm4oInZpcnRpby1mczogc3VzcGVuZC9yZXN1bWUgbm90IHlldCBzdXBwb3J0ZWRcbiIpOworCXJldHVybiAtRU9QTk9UU1VQUDsKK30KKworc3RhdGljIGludCB2aXJ0aW9fZnNfcmVzdG9yZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldikKK3sKKwkgLyogVE9ETyBuZWVkIHRvIHJlc3RvcmUgc3RhdGUgaGVyZSAqLworCXJldHVybiAwOworfQorI2VuZGlmIC8qIENPTkZJR19QTV9TTEVFUCAqLworCitjb25zdCBzdGF0aWMgc3RydWN0IHZpcnRpb19kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsKKwl7IFZJUlRJT19JRF9GUywgVklSVElPX0RFVl9BTllfSUQgfSwKKwl7fSwKK307CisKK2NvbnN0IHN0YXRpYyB1bnNpZ25lZCBpbnQgZmVhdHVyZV90YWJsZVtdID0ge307CisKK3N0YXRpYyBzdHJ1Y3QgdmlydGlvX2RyaXZlciB2aXJ0aW9fZnNfZHJpdmVyID0geworCS5kcml2ZXIubmFtZQkJPSBLQlVJTERfTU9ETkFNRSwKKwkuZHJpdmVyLm93bmVyCQk9IFRISVNfTU9EVUxFLAorCS5pZF90YWJsZQkJPSBpZF90YWJsZSwKKwkuZmVhdHVyZV90YWJsZQkJPSBmZWF0dXJlX3RhYmxlLAorCS5mZWF0dXJlX3RhYmxlX3NpemUJPSBBUlJBWV9TSVpFKGZlYXR1cmVfdGFibGUpLAorCS5wcm9iZQkJCT0gdmlydGlvX2ZzX3Byb2JlLAorCS5yZW1vdmUJCQk9IHZpcnRpb19mc19yZW1vdmUsCisjaWZkZWYgQ09ORklHX1BNX1NMRUVQCisJLmZyZWV6ZQkJCT0gdmlydGlvX2ZzX2ZyZWV6ZSwKKwkucmVzdG9yZQkJPSB2aXJ0aW9fZnNfcmVzdG9yZSwKKyNlbmRpZgorfTsKKworc3RhdGljIHZvaWQgdmlydGlvX2ZzX3dha2VfZm9yZ2V0X2FuZF91bmxvY2soc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEpCitfX3JlbGVhc2VzKGZpcS0+bG9jaykKK3sKKwlzdHJ1Y3QgZnVzZV9mb3JnZXRfbGluayAqbGluazsKKwlzdHJ1Y3QgdmlydGlvX2ZzX2ZvcmdldCAqZm9yZ2V0OworCXN0cnVjdCBzY2F0dGVybGlzdCBzZzsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnc1tdID0geyZzZ307CisJc3RydWN0IHZpcnRpb19mcyAqZnM7CisJc3RydWN0IHZpcnRxdWV1ZSAqdnE7CisJc3RydWN0IHZpcnRpb19mc192cSAqZnN2cTsKKwlib29sIG5vdGlmeTsKKwl1NjQgdW5pcXVlOworCWludCByZXQ7CisKKwlsaW5rID0gZnVzZV9kZXF1ZXVlX2ZvcmdldChmaXEsIDEsIE5VTEwpOworCXVuaXF1ZSA9IGZ1c2VfZ2V0X3VuaXF1ZShmaXEpOworCisJZnMgPSBmaXEtPnByaXY7CisJZnN2cSA9ICZmcy0+dnFzW1ZRX0hJUFJJT107CisJc3Bpbl91bmxvY2soJmZpcS0+bG9jayk7CisKKwkvKiBBbGxvY2F0ZSBhIGJ1ZmZlciBmb3IgdGhlIHJlcXVlc3QgKi8KKwlmb3JnZXQgPSBrbWFsbG9jKHNpemVvZigqZm9yZ2V0KSwgR0ZQX05PRlMgfCBfX0dGUF9OT0ZBSUwpOworCisJZm9yZ2V0LT5paCA9IChzdHJ1Y3QgZnVzZV9pbl9oZWFkZXIpeworCQkub3Bjb2RlID0gRlVTRV9GT1JHRVQsCisJCS5ub2RlaWQgPSBsaW5rLT5mb3JnZXRfb25lLm5vZGVpZCwKKwkJLnVuaXF1ZSA9IHVuaXF1ZSwKKwkJLmxlbiA9IHNpemVvZigqZm9yZ2V0KSwKKwl9OworCWZvcmdldC0+YXJnID0gKHN0cnVjdCBmdXNlX2ZvcmdldF9pbil7CisJCS5ubG9va3VwID0gbGluay0+Zm9yZ2V0X29uZS5ubG9va3VwLAorCX07CisKKwlzZ19pbml0X29uZSgmc2csIGZvcmdldCwgc2l6ZW9mKCpmb3JnZXQpKTsKKworCS8qIEVucXVldWUgdGhlIHJlcXVlc3QgKi8KKwlzcGluX2xvY2soJmZzdnEtPmxvY2spOworCisJaWYgKCFmc3ZxLT5jb25uZWN0ZWQpIHsKKwkJa2ZyZWUoZm9yZ2V0KTsKKwkJc3Bpbl91bmxvY2soJmZzdnEtPmxvY2spOworCQlnb3RvIG91dDsKKwl9CisKKwl2cSA9IGZzdnEtPnZxOworCWRldl9kYmcoJnZxLT52ZGV2LT5kZXYsICIlc1xuIiwgX19mdW5jX18pOworCisJcmV0ID0gdmlydHF1ZXVlX2FkZF9zZ3ModnEsIHNncywgMSwgMCwgZm9yZ2V0LCBHRlBfQVRPTUlDKTsKKwlpZiAocmV0IDwgMCkgeworCQlpZiAocmV0ID09IC1FTk9NRU0gfHwgcmV0ID09IC1FTk9TUEMpIHsKKwkJCXByX2RlYnVnKCJ2aXJ0aW8tZnM6IENvdWxkIG5vdCBxdWV1ZSBGT1JHRVQ6IGVycj0lZC4gV2lsbCB0cnkgbGF0ZXIuXG4iLAorCQkJCSByZXQpOworCQkJbGlzdF9hZGRfdGFpbCgmZm9yZ2V0LT5saXN0LCAmZnN2cS0+cXVldWVkX3JlcXMpOworCQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZmc3ZxLT5kaXNwYXRjaF93b3JrLAorCQkJCQltc2Vjc190b19qaWZmaWVzKDEpKTsKKwkJfSBlbHNlIHsKKwkJCXByX2RlYnVnKCJ2aXJ0aW8tZnM6IENvdWxkIG5vdCBxdWV1ZSBGT1JHRVQ6IGVycj0lZC4gRHJvcHBpbmcgaXQuXG4iLAorCQkJCSByZXQpOworCQkJa2ZyZWUoZm9yZ2V0KTsKKwkJfQorCQlzcGluX3VubG9jaygmZnN2cS0+bG9jayk7CisJCWdvdG8gb3V0OworCX0KKworCWZzdnEtPmluX2ZsaWdodCsrOworCW5vdGlmeSA9IHZpcnRxdWV1ZV9raWNrX3ByZXBhcmUodnEpOworCisJc3Bpbl91bmxvY2soJmZzdnEtPmxvY2spOworCisJaWYgKG5vdGlmeSkKKwkJdmlydHF1ZXVlX25vdGlmeSh2cSk7CitvdXQ6CisJa2ZyZWUobGluayk7Cit9CisKK3N0YXRpYyB2b2lkIHZpcnRpb19mc193YWtlX2ludGVycnVwdF9hbmRfdW5sb2NrKHN0cnVjdCBmdXNlX2lxdWV1ZSAqZmlxKQorX19yZWxlYXNlcyhmaXEtPmxvY2spCit7CisJLyoKKwkgKiBUT0RPIGludGVycnVwdHMuCisJICoKKwkgKiBOb3JtYWwgZnMgb3BlcmF0aW9ucyBvbiBhIGxvY2FsIGZpbGVzeXN0ZW1zIGFyZW4ndCBpbnRlcnJ1cHRpYmxlLgorCSAqIEV4Y2VwdGlvbnMgYXJlIGJsb2NraW5nIGxvY2sgb3BlcmF0aW9uczsgZm9yIGV4YW1wbGUgZmNudGwoRl9TRVRMS1cpCisJICogd2l0aCBzaGFyZWQgbG9jayBiZXR3ZWVuIGhvc3QgYW5kIGd1ZXN0LgorCSAqLworCXNwaW5fdW5sb2NrKCZmaXEtPmxvY2spOworfQorCisvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBzY2F0dGVyLWdhdGhlciBsaXN0IGVsZW1lbnRzIHJlcXVpcmVkICovCitzdGF0aWMgdW5zaWduZWQgaW50IHNnX2NvdW50X2Z1c2VfcmVxKHN0cnVjdCBmdXNlX3JlcSAqcmVxKQoreworCXN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MgPSByZXEtPmFyZ3M7CisJc3RydWN0IGZ1c2VfYXJnc19wYWdlcyAqYXAgPSBjb250YWluZXJfb2YoYXJncywgdHlwZW9mKCphcCksIGFyZ3MpOworCXVuc2lnbmVkIGludCB0b3RhbF9zZ3MgPSAxIC8qIGZ1c2VfaW5faGVhZGVyICovOworCisJaWYgKGFyZ3MtPmluX251bWFyZ3MgLSBhcmdzLT5pbl9wYWdlcykKKwkJdG90YWxfc2dzICs9IDE7CisKKwlpZiAoYXJncy0+aW5fcGFnZXMpCisJCXRvdGFsX3NncyArPSBhcC0+bnVtX3BhZ2VzOworCisJaWYgKCF0ZXN0X2JpdChGUl9JU1JFUExZLCAmcmVxLT5mbGFncykpCisJCXJldHVybiB0b3RhbF9zZ3M7CisKKwl0b3RhbF9zZ3MgKz0gMSAvKiBmdXNlX291dF9oZWFkZXIgKi87CisKKwlpZiAoYXJncy0+b3V0X251bWFyZ3MgLSBhcmdzLT5vdXRfcGFnZXMpCisJCXRvdGFsX3NncyArPSAxOworCisJaWYgKGFyZ3MtPm91dF9wYWdlcykKKwkJdG90YWxfc2dzICs9IGFwLT5udW1fcGFnZXM7CisKKwlyZXR1cm4gdG90YWxfc2dzOworfQorCisvKiBBZGQgcGFnZXMgdG8gc2NhdHRlci1nYXRoZXIgbGlzdCBhbmQgcmV0dXJuIG51bWJlciBvZiBlbGVtZW50cyB1c2VkICovCitzdGF0aWMgdW5zaWduZWQgaW50IHNnX2luaXRfZnVzZV9wYWdlcyhzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAorCQkJCSAgICAgICBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAorCQkJCSAgICAgICBzdHJ1Y3QgZnVzZV9wYWdlX2Rlc2MgKnBhZ2VfZGVzY3MsCisJCQkJICAgICAgIHVuc2lnbmVkIGludCBudW1fcGFnZXMsCisJCQkJICAgICAgIHVuc2lnbmVkIGludCB0b3RhbF9sZW4pCit7CisJdW5zaWduZWQgaW50IGk7CisJdW5zaWduZWQgaW50IHRoaXNfbGVuOworCisJZm9yIChpID0gMDsgaSA8IG51bV9wYWdlcyAmJiB0b3RhbF9sZW47IGkrKykgeworCQlzZ19pbml0X3RhYmxlKCZzZ1tpXSwgMSk7CisJCXRoaXNfbGVuID0gIG1pbihwYWdlX2Rlc2NzW2ldLmxlbmd0aCwgdG90YWxfbGVuKTsKKwkJc2dfc2V0X3BhZ2UoJnNnW2ldLCBwYWdlc1tpXSwgdGhpc19sZW4sIHBhZ2VfZGVzY3NbaV0ub2Zmc2V0KTsKKwkJdG90YWxfbGVuIC09IHRoaXNfbGVuOworCX0KKworCXJldHVybiBpOworfQorCisvKiBBZGQgYXJncyB0byBzY2F0dGVyLWdhdGhlciBsaXN0IGFuZCByZXR1cm4gbnVtYmVyIG9mIGVsZW1lbnRzIHVzZWQgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgc2dfaW5pdF9mdXNlX2FyZ3Moc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKKwkJCQkgICAgICBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSwKKwkJCQkgICAgICBzdHJ1Y3QgZnVzZV9hcmcgKmFyZ3MsCisJCQkJICAgICAgdW5zaWduZWQgaW50IG51bWFyZ3MsCisJCQkJICAgICAgYm9vbCBhcmdwYWdlcywKKwkJCQkgICAgICB2b2lkICphcmdidWYsCisJCQkJICAgICAgdW5zaWduZWQgaW50ICpsZW5fdXNlZCkKK3sKKwlzdHJ1Y3QgZnVzZV9hcmdzX3BhZ2VzICphcCA9IGNvbnRhaW5lcl9vZihyZXEtPmFyZ3MsIHR5cGVvZigqYXApLCBhcmdzKTsKKwl1bnNpZ25lZCBpbnQgdG90YWxfc2dzID0gMDsKKwl1bnNpZ25lZCBpbnQgbGVuOworCisJbGVuID0gZnVzZV9sZW5fYXJncyhudW1hcmdzIC0gYXJncGFnZXMsIGFyZ3MpOworCWlmIChsZW4pCisJCXNnX2luaXRfb25lKCZzZ1t0b3RhbF9zZ3MrK10sIGFyZ2J1ZiwgbGVuKTsKKworCWlmIChhcmdwYWdlcykKKwkJdG90YWxfc2dzICs9IHNnX2luaXRfZnVzZV9wYWdlcygmc2dbdG90YWxfc2dzXSwKKwkJCQkJCWFwLT5wYWdlcywgYXAtPmRlc2NzLAorCQkJCQkJYXAtPm51bV9wYWdlcywKKwkJCQkJCWFyZ3NbbnVtYXJncyAtIDFdLnNpemUpOworCisJaWYgKGxlbl91c2VkKQorCQkqbGVuX3VzZWQgPSBsZW47CisKKwlyZXR1cm4gdG90YWxfc2dzOworfQorCisvKiBBZGQgYSByZXF1ZXN0IHRvIGEgdmlydHF1ZXVlIGFuZCBraWNrIHRoZSBkZXZpY2UgKi8KK3N0YXRpYyBpbnQgdmlydGlvX2ZzX2VucXVldWVfcmVxKHN0cnVjdCB2aXJ0aW9fZnNfdnEgKmZzdnEsCisJCQkJIHN0cnVjdCBmdXNlX3JlcSAqcmVxKQoreworCS8qIHJlcXVlc3RzIG5lZWQgYXQgbGVhc3QgNCBlbGVtZW50cyAqLworCXN0cnVjdCBzY2F0dGVybGlzdCAqc3RhY2tfc2dzWzZdOworCXN0cnVjdCBzY2F0dGVybGlzdCBzdGFja19zZ1tBUlJBWV9TSVpFKHN0YWNrX3NncyldOworCXN0cnVjdCBzY2F0dGVybGlzdCAqKnNncyA9IHN0YWNrX3NnczsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnID0gc3RhY2tfc2c7CisJc3RydWN0IHZpcnRxdWV1ZSAqdnE7CisJc3RydWN0IGZ1c2VfYXJncyAqYXJncyA9IHJlcS0+YXJnczsKKwl1bnNpZ25lZCBpbnQgYXJnYnVmX3VzZWQgPSAwOworCXVuc2lnbmVkIGludCBvdXRfc2dzID0gMDsKKwl1bnNpZ25lZCBpbnQgaW5fc2dzID0gMDsKKwl1bnNpZ25lZCBpbnQgdG90YWxfc2dzOworCXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisJYm9vbCBub3RpZnk7CisKKwkvKiBEb2VzIHRoZSBzZ2xpc3QgZml0IG9uIHRoZSBzdGFjaz8gKi8KKwl0b3RhbF9zZ3MgPSBzZ19jb3VudF9mdXNlX3JlcShyZXEpOworCWlmICh0b3RhbF9zZ3MgPiBBUlJBWV9TSVpFKHN0YWNrX3NncykpIHsKKwkJc2dzID0ga21hbGxvY19hcnJheSh0b3RhbF9zZ3MsIHNpemVvZihzZ3NbMF0pLCBHRlBfQVRPTUlDKTsKKwkJc2cgPSBrbWFsbG9jX2FycmF5KHRvdGFsX3Nncywgc2l6ZW9mKHNnWzBdKSwgR0ZQX0FUT01JQyk7CisJCWlmICghc2dzIHx8ICFzZykgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gb3V0OworCQl9CisJfQorCisJLyogVXNlIGEgYm91bmNlIGJ1ZmZlciBzaW5jZSBzdGFjayBhcmdzIGNhbm5vdCBiZSBtYXBwZWQgKi8KKwlyZXQgPSBjb3B5X2FyZ3NfdG9fYXJnYnVmKHJlcSk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gb3V0OworCisJLyogUmVxdWVzdCBlbGVtZW50cyAqLworCXNnX2luaXRfb25lKCZzZ1tvdXRfc2dzKytdLCAmcmVxLT5pbi5oLCBzaXplb2YocmVxLT5pbi5oKSk7CisJb3V0X3NncyArPSBzZ19pbml0X2Z1c2VfYXJncygmc2dbb3V0X3Nnc10sIHJlcSwKKwkJCQkgICAgIChzdHJ1Y3QgZnVzZV9hcmcgKilhcmdzLT5pbl9hcmdzLAorCQkJCSAgICAgYXJncy0+aW5fbnVtYXJncywgYXJncy0+aW5fcGFnZXMsCisJCQkJICAgICByZXEtPmFyZ2J1ZiwgJmFyZ2J1Zl91c2VkKTsKKworCS8qIFJlcGx5IGVsZW1lbnRzICovCisJaWYgKHRlc3RfYml0KEZSX0lTUkVQTFksICZyZXEtPmZsYWdzKSkgeworCQlzZ19pbml0X29uZSgmc2dbb3V0X3NncyArIGluX3NncysrXSwKKwkJCSAgICAmcmVxLT5vdXQuaCwgc2l6ZW9mKHJlcS0+b3V0LmgpKTsKKwkJaW5fc2dzICs9IHNnX2luaXRfZnVzZV9hcmdzKCZzZ1tvdXRfc2dzICsgaW5fc2dzXSwgcmVxLAorCQkJCQkgICAgYXJncy0+b3V0X2FyZ3MsIGFyZ3MtPm91dF9udW1hcmdzLAorCQkJCQkgICAgYXJncy0+b3V0X3BhZ2VzLAorCQkJCQkgICAgcmVxLT5hcmdidWYgKyBhcmdidWZfdXNlZCwgTlVMTCk7CisJfQorCisJV0FSTl9PTihvdXRfc2dzICsgaW5fc2dzICE9IHRvdGFsX3Nncyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdG90YWxfc2dzOyBpKyspCisJCXNnc1tpXSA9ICZzZ1tpXTsKKworCXNwaW5fbG9jaygmZnN2cS0+bG9jayk7CisKKwlpZiAoIWZzdnEtPmNvbm5lY3RlZCkgeworCQlzcGluX3VubG9jaygmZnN2cS0+bG9jayk7CisJCXJldCA9IC1FTk9UQ09OTjsKKwkJZ290byBvdXQ7CisJfQorCisJdnEgPSBmc3ZxLT52cTsKKwlyZXQgPSB2aXJ0cXVldWVfYWRkX3Nncyh2cSwgc2dzLCBvdXRfc2dzLCBpbl9zZ3MsIHJlcSwgR0ZQX0FUT01JQyk7CisJaWYgKHJldCA8IDApIHsKKwkJc3Bpbl91bmxvY2soJmZzdnEtPmxvY2spOworCQlnb3RvIG91dDsKKwl9CisKKwlmc3ZxLT5pbl9mbGlnaHQrKzsKKwlub3RpZnkgPSB2aXJ0cXVldWVfa2lja19wcmVwYXJlKHZxKTsKKworCXNwaW5fdW5sb2NrKCZmc3ZxLT5sb2NrKTsKKworCWlmIChub3RpZnkpCisJCXZpcnRxdWV1ZV9ub3RpZnkodnEpOworCitvdXQ6CisJaWYgKHJldCA8IDAgJiYgcmVxLT5hcmdidWYpIHsKKwkJa2ZyZWUocmVxLT5hcmdidWYpOworCQlyZXEtPmFyZ2J1ZiA9IE5VTEw7CisJfQorCWlmIChzZ3MgIT0gc3RhY2tfc2dzKSB7CisJCWtmcmVlKHNncyk7CisJCWtmcmVlKHNnKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCB2aXJ0aW9fZnNfd2FrZV9wZW5kaW5nX2FuZF91bmxvY2soc3RydWN0IGZ1c2VfaXF1ZXVlICpmaXEpCitfX3JlbGVhc2VzKGZpcS0+bG9jaykKK3sKKwl1bnNpZ25lZCBpbnQgcXVldWVfaWQgPSBWUV9SRVFVRVNUOyAvKiBUT0RPIG11bHRpcXVldWUgKi8KKwlzdHJ1Y3QgdmlydGlvX2ZzICpmczsKKwlzdHJ1Y3QgZnVzZV9jb25uICpmYzsKKwlzdHJ1Y3QgZnVzZV9yZXEgKnJlcTsKKwlzdHJ1Y3QgZnVzZV9wcXVldWUgKmZwcTsKKwlpbnQgcmV0OworCisJV0FSTl9PTihsaXN0X2VtcHR5KCZmaXEtPnBlbmRpbmcpKTsKKwlyZXEgPSBsaXN0X2xhc3RfZW50cnkoJmZpcS0+cGVuZGluZywgc3RydWN0IGZ1c2VfcmVxLCBsaXN0KTsKKwljbGVhcl9iaXQoRlJfUEVORElORywgJnJlcS0+ZmxhZ3MpOworCWxpc3RfZGVsX2luaXQoJnJlcS0+bGlzdCk7CisJV0FSTl9PTighbGlzdF9lbXB0eSgmZmlxLT5wZW5kaW5nKSk7CisJc3Bpbl91bmxvY2soJmZpcS0+bG9jayk7CisKKwlmcyA9IGZpcS0+cHJpdjsKKwlmYyA9IGZzLT52cXNbcXVldWVfaWRdLmZ1ZC0+ZmM7CisKKwlwcl9kZWJ1ZygiJXM6IG9wY29kZSAldSB1bmlxdWUgJSNsbHggbm9kZWlkICUjbGx4IGluLmxlbiAldSBvdXQubGVuICV1XG4iLAorCQkgIF9fZnVuY19fLCByZXEtPmluLmgub3Bjb2RlLCByZXEtPmluLmgudW5pcXVlLAorCQkgcmVxLT5pbi5oLm5vZGVpZCwgcmVxLT5pbi5oLmxlbiwKKwkJIGZ1c2VfbGVuX2FyZ3MocmVxLT5hcmdzLT5vdXRfbnVtYXJncywgcmVxLT5hcmdzLT5vdXRfYXJncykpOworCisJZnBxID0gJmZzLT52cXNbcXVldWVfaWRdLmZ1ZC0+cHE7CisJc3Bpbl9sb2NrKCZmcHEtPmxvY2spOworCWlmICghZnBxLT5jb25uZWN0ZWQpIHsKKwkJc3Bpbl91bmxvY2soJmZwcS0+bG9jayk7CisJCXJlcS0+b3V0LmguZXJyb3IgPSAtRU5PREVWOworCQlwcl9lcnIoInZpcnRpby1mczogJXMgZGlzY29ubmVjdGVkXG4iLCBfX2Z1bmNfXyk7CisJCWZ1c2VfcmVxdWVzdF9lbmQoZmMsIHJlcSk7CisJCXJldHVybjsKKwl9CisJbGlzdF9hZGRfdGFpbCgmcmVxLT5saXN0LCBmcHEtPnByb2Nlc3NpbmcpOworCXNwaW5fdW5sb2NrKCZmcHEtPmxvY2spOworCXNldF9iaXQoRlJfU0VOVCwgJnJlcS0+ZmxhZ3MpOworCS8qIG1hdGNoZXMgYmFycmllciBpbiByZXF1ZXN0X3dhaXRfYW5zd2VyKCkgKi8KKwlzbXBfbWJfX2FmdGVyX2F0b21pYygpOworCityZXRyeToKKwlyZXQgPSB2aXJ0aW9fZnNfZW5xdWV1ZV9yZXEoJmZzLT52cXNbcXVldWVfaWRdLCByZXEpOworCWlmIChyZXQgPCAwKSB7CisJCWlmIChyZXQgPT0gLUVOT01FTSB8fCByZXQgPT0gLUVOT1NQQykgeworCQkJLyogVmlydHF1ZXVlIGZ1bGwuIFJldHJ5IHN1Ym1pc3Npb24gKi8KKwkJCS8qIFRPRE8gdXNlIGNvbXBsZXRpb24gaW5zdGVhZCBvZiB0aW1lb3V0ICovCisJCQl1c2xlZXBfcmFuZ2UoMjAsIDMwKTsKKwkJCWdvdG8gcmV0cnk7CisJCX0KKwkJcmVxLT5vdXQuaC5lcnJvciA9IHJldDsKKwkJcHJfZXJyKCJ2aXJ0aW8tZnM6IHZpcnRpb19mc19lbnF1ZXVlX3JlcSgpIGZhaWxlZCAlZFxuIiwgcmV0KTsKKwkJc3Bpbl9sb2NrKCZmcHEtPmxvY2spOworCQljbGVhcl9iaXQoRlJfU0VOVCwgJnJlcS0+ZmxhZ3MpOworCQlsaXN0X2RlbF9pbml0KCZyZXEtPmxpc3QpOworCQlzcGluX3VubG9jaygmZnBxLT5sb2NrKTsKKwkJZnVzZV9yZXF1ZXN0X2VuZChmYywgcmVxKTsKKwkJcmV0dXJuOworCX0KK30KKworY29uc3Qgc3RhdGljIHN0cnVjdCBmdXNlX2lxdWV1ZV9vcHMgdmlydGlvX2ZzX2ZpcV9vcHMgPSB7CisJLndha2VfZm9yZ2V0X2FuZF91bmxvY2sJCT0gdmlydGlvX2ZzX3dha2VfZm9yZ2V0X2FuZF91bmxvY2ssCisJLndha2VfaW50ZXJydXB0X2FuZF91bmxvY2sJPSB2aXJ0aW9fZnNfd2FrZV9pbnRlcnJ1cHRfYW5kX3VubG9jaywKKwkud2FrZV9wZW5kaW5nX2FuZF91bmxvY2sJPSB2aXJ0aW9fZnNfd2FrZV9wZW5kaW5nX2FuZF91bmxvY2ssCisJLnJlbGVhc2UJCQk9IHZpcnRpb19mc19maXFfcmVsZWFzZSwKK307CisKK3N0YXRpYyBpbnQgdmlydGlvX2ZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3sKKwlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm5fc3VwZXIoc2IpOworCXN0cnVjdCB2aXJ0aW9fZnMgKmZzID0gZmMtPmlxLnByaXY7CisJdW5zaWduZWQgaW50IGk7CisJaW50IGVycjsKKwlzdHJ1Y3QgZnVzZV9mc19jb250ZXh0IGN0eCA9IHsKKwkJLnJvb3Rtb2RlID0gU19JRkRJUiwKKwkJLmRlZmF1bHRfcGVybWlzc2lvbnMgPSAxLAorCQkuYWxsb3dfb3RoZXIgPSAxLAorCQkubWF4X3JlYWQgPSBVSU5UX01BWCwKKwkJLmJsa3NpemUgPSA1MTIsCisJCS5kZXN0cm95ID0gdHJ1ZSwKKwkJLm5vX2NvbnRyb2wgPSB0cnVlLAorCQkubm9fZm9yY2VfdW1vdW50ID0gdHJ1ZSwKKwl9OworCisJbXV0ZXhfbG9jaygmdmlydGlvX2ZzX211dGV4KTsKKworCS8qIEFmdGVyIGhvbGRpbmcgbXV0ZXgsIG1ha2Ugc3VyZSB2aXJ0aW9mcyBkZXZpY2UgaXMgc3RpbGwgdGhlcmUuCisJICogVGhvdWdoIHdlIGFyZSBob2xkaW5nIGEgcmVmZXJlbmNlIHRvIGl0LCBkcml2ZSAtPnJlbW92ZSBtaWdodAorCSAqIHN0aWxsIGhhdmUgY2xlYW5lZCB1cCB2aXJ0dWFsIHF1ZXVlcy4gSW4gdGhhdCBjYXNlIGJhaWwgb3V0LgorCSAqLworCWVyciA9IC1FSU5WQUw7CisJaWYgKGxpc3RfZW1wdHkoJmZzLT5saXN0KSkgeworCQlwcl9pbmZvKCJ2aXJ0aW8tZnM6IHRhZyA8JXM+IG5vdCBmb3VuZFxuIiwgZnMtPnRhZyk7CisJCWdvdG8gZXJyOworCX0KKworCWVyciA9IC1FTk9NRU07CisJLyogQWxsb2NhdGUgZnVzZV9kZXYgZm9yIGhpcHJpbyBhbmQgbm90aWZpY2F0aW9uIHF1ZXVlcyAqLworCWZvciAoaSA9IDA7IGkgPCBWUV9SRVFVRVNUOyBpKyspIHsKKwkJc3RydWN0IHZpcnRpb19mc192cSAqZnN2cSA9ICZmcy0+dnFzW2ldOworCisJCWZzdnEtPmZ1ZCA9IGZ1c2VfZGV2X2FsbG9jKCk7CisJCWlmICghZnN2cS0+ZnVkKQorCQkJZ290byBlcnJfZnJlZV9mdXNlX2RldnM7CisJfQorCisJY3R4LmZ1ZHB0ciA9ICh2b2lkICoqKSZmcy0+dnFzW1ZRX1JFUVVFU1RdLmZ1ZDsKKwllcnIgPSBmdXNlX2ZpbGxfc3VwZXJfY29tbW9uKHNiLCAmY3R4KTsKKwlpZiAoZXJyIDwgMCkKKwkJZ290byBlcnJfZnJlZV9mdXNlX2RldnM7CisKKwlmYyA9IGZzLT52cXNbVlFfUkVRVUVTVF0uZnVkLT5mYzsKKworCWZvciAoaSA9IDA7IGkgPCBmcy0+bnZxczsgaSsrKSB7CisJCXN0cnVjdCB2aXJ0aW9fZnNfdnEgKmZzdnEgPSAmZnMtPnZxc1tpXTsKKworCQlpZiAoaSA9PSBWUV9SRVFVRVNUKQorCQkJY29udGludWU7IC8qIGFscmVhZHkgaW5pdGlhbGl6ZWQgKi8KKwkJZnVzZV9kZXZfaW5zdGFsbChmc3ZxLT5mdWQsIGZjKTsKKwl9CisKKwkvKiBQcmV2aW91cyB1bm1vdW50IHdpbGwgc3RvcCBhbGwgcXVldWVzLiBTdGFydCB0aGVzZSBhZ2FpbiAqLworCXZpcnRpb19mc19zdGFydF9hbGxfcXVldWVzKGZzKTsKKwlmdXNlX3NlbmRfaW5pdChmYyk7CisJbXV0ZXhfdW5sb2NrKCZ2aXJ0aW9fZnNfbXV0ZXgpOworCXJldHVybiAwOworCitlcnJfZnJlZV9mdXNlX2RldnM6CisJdmlydGlvX2ZzX2ZyZWVfZGV2cyhmcyk7CitlcnI6CisJbXV0ZXhfdW5sb2NrKCZ2aXJ0aW9fZnNfbXV0ZXgpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB2b2lkIHZpcnRpb19raWxsX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uX3N1cGVyKHNiKTsKKwlzdHJ1Y3QgdmlydGlvX2ZzICp2ZnM7CisJc3RydWN0IHZpcnRpb19mc192cSAqZnN2cTsKKworCS8qIElmIG1vdW50IGZhaWxlZCwgd2UgY2FuIHN0aWxsIGJlIGNhbGxlZCB3aXRob3V0IGFueSBmYyAqLworCWlmICghZmMpCisJCXJldHVybiBmdXNlX2tpbGxfc2JfYW5vbihzYik7CisKKwl2ZnMgPSBmYy0+aXEucHJpdjsKKwlmc3ZxID0gJnZmcy0+dnFzW1ZRX0hJUFJJT107CisKKwkvKiBTdG9wIGZvcmdldCBxdWV1ZS4gU29vbiBkZXN0cm95IHdpbGwgYmUgc2VudCAqLworCXNwaW5fbG9jaygmZnN2cS0+bG9jayk7CisJZnN2cS0+Y29ubmVjdGVkID0gZmFsc2U7CisJc3Bpbl91bmxvY2soJmZzdnEtPmxvY2spOworCXZpcnRpb19mc19kcmFpbl9hbGxfcXVldWVzKHZmcyk7CisKKwlmdXNlX2tpbGxfc2JfYW5vbihzYik7CisKKwkvKiBmdXNlX2tpbGxfc2JfYW5vbigpIG11c3QgaGF2ZSBzZW50IGRlc3Ryb3kuIFN0b3AgYWxsIHF1ZXVlcworCSAqIGFuZCBkcmFpbiBvbmUgbW9yZSB0aW1lIGFuZCBmcmVlIGZ1c2UgZGV2aWNlcy4gRnJlZWluZyBmdXNlCisJICogZGV2aWNlcyB3aWxsIGRyb3AgdGhlaXIgcmVmZXJlbmNlIG9uIGZ1c2VfY29ubiBhbmQgdGhhdCBpbgorCSAqIHR1cm4gd2lsbCBkcm9wIGl0cyByZWZlcmVuY2Ugb24gdmlydGlvX2ZzIG9iamVjdC4KKwkgKi8KKwl2aXJ0aW9fZnNfc3RvcF9hbGxfcXVldWVzKHZmcyk7CisJdmlydGlvX2ZzX2RyYWluX2FsbF9xdWV1ZXModmZzKTsKKwl2aXJ0aW9fZnNfZnJlZV9kZXZzKHZmcyk7Cit9CisKK3N0YXRpYyBpbnQgdmlydGlvX2ZzX3Rlc3Rfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKKwkJCQlzdHJ1Y3QgZnNfY29udGV4dCAqZnNjKQoreworCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZnNjLT5zX2ZzX2luZm87CisKKwlyZXR1cm4gZmMtPmlxLnByaXYgPT0gZ2V0X2Z1c2VfY29ubl9zdXBlcihzYiktPmlxLnByaXY7Cit9CisKK3N0YXRpYyBpbnQgdmlydGlvX2ZzX3NldF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAorCQkJICAgICAgIHN0cnVjdCBmc19jb250ZXh0ICpmc2MpCit7CisJaW50IGVycjsKKworCWVyciA9IGdldF9hbm9uX2JkZXYoJnNiLT5zX2Rldik7CisJaWYgKCFlcnIpCisJCWZ1c2VfY29ubl9nZXQoZnNjLT5zX2ZzX2luZm8pOworCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCB2aXJ0aW9fZnNfZ2V0X3RyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZzYykKK3sKKwlzdHJ1Y3QgdmlydGlvX2ZzICpmczsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiOworCXN0cnVjdCBmdXNlX2Nvbm4gKmZjOworCWludCBlcnI7CisKKwkvKiBUaGlzIGdldHMgYSByZWZlcmVuY2Ugb24gdmlydGlvX2ZzIG9iamVjdC4gVGhpcyBwdHIgZ2V0cyBpbnN0YWxsZWQKKwkgKiBpbiBmYy0+aXEtPnByaXYuIE9uY2UgZnVzZV9jb25uIGlzIGdvaW5nIGF3YXksIGl0IGNhbGxzIC0+cHV0KCkKKwkgKiB0byBkcm9wIHRoZSByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QuCisJICovCisJZnMgPSB2aXJ0aW9fZnNfZmluZF9pbnN0YW5jZShmc2MtPnNvdXJjZSk7CisJaWYgKCFmcykgeworCQlwcl9pbmZvKCJ2aXJ0aW8tZnM6IHRhZyA8JXM+IG5vdCBmb3VuZFxuIiwgZnNjLT5zb3VyY2UpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlmYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBmdXNlX2Nvbm4pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWZjKSB7CisJCW11dGV4X2xvY2soJnZpcnRpb19mc19tdXRleCk7CisJCXZpcnRpb19mc19wdXQoZnMpOworCQltdXRleF91bmxvY2soJnZpcnRpb19mc19tdXRleCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWZ1c2VfY29ubl9pbml0KGZjLCBnZXRfdXNlcl9ucyhjdXJyZW50X3VzZXJfbnMoKSksICZ2aXJ0aW9fZnNfZmlxX29wcywKKwkJICAgICAgIGZzKTsKKwlmYy0+cmVsZWFzZSA9IGZ1c2VfZnJlZV9jb25uOworCWZjLT5kZWxldGVfc3RhbGUgPSB0cnVlOworCisJZnNjLT5zX2ZzX2luZm8gPSBmYzsKKwlzYiA9IHNnZXRfZmMoZnNjLCB2aXJ0aW9fZnNfdGVzdF9zdXBlciwgdmlydGlvX2ZzX3NldF9zdXBlcik7CisJZnVzZV9jb25uX3B1dChmYyk7CisJaWYgKElTX0VSUihzYikpCisJCXJldHVybiBQVFJfRVJSKHNiKTsKKworCWlmICghc2ItPnNfcm9vdCkgeworCQllcnIgPSB2aXJ0aW9fZnNfZmlsbF9zdXBlcihzYik7CisJCWlmIChlcnIpIHsKKwkJCWRlYWN0aXZhdGVfbG9ja2VkX3N1cGVyKHNiKTsKKwkJCXJldHVybiBlcnI7CisJCX0KKworCQlzYi0+c19mbGFncyB8PSBTQl9BQ1RJVkU7CisJfQorCisJV0FSTl9PTihmc2MtPnJvb3QpOworCWZzYy0+cm9vdCA9IGRnZXQoc2ItPnNfcm9vdCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnNfY29udGV4dF9vcGVyYXRpb25zIHZpcnRpb19mc19jb250ZXh0X29wcyA9IHsKKwkuZ2V0X3RyZWUJPSB2aXJ0aW9fZnNfZ2V0X3RyZWUsCit9OworCitzdGF0aWMgaW50IHZpcnRpb19mc19pbml0X2ZzX2NvbnRleHQoc3RydWN0IGZzX2NvbnRleHQgKmZzYykKK3sKKwlmc2MtPm9wcyA9ICZ2aXJ0aW9fZnNfY29udGV4dF9vcHM7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB2aXJ0aW9fZnNfdHlwZSA9IHsKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJLm5hbWUJCT0gInZpcnRpb2ZzIiwKKwkuaW5pdF9mc19jb250ZXh0ID0gdmlydGlvX2ZzX2luaXRfZnNfY29udGV4dCwKKwkua2lsbF9zYgk9IHZpcnRpb19raWxsX3NiLAorfTsKKworc3RhdGljIGludCBfX2luaXQgdmlydGlvX2ZzX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gcmVnaXN0ZXJfdmlydGlvX2RyaXZlcigmdmlydGlvX2ZzX2RyaXZlcik7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSByZWdpc3Rlcl9maWxlc3lzdGVtKCZ2aXJ0aW9fZnNfdHlwZSk7CisJaWYgKHJldCA8IDApIHsKKwkJdW5yZWdpc3Rlcl92aXJ0aW9fZHJpdmVyKCZ2aXJ0aW9fZnNfZHJpdmVyKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KK21vZHVsZV9pbml0KHZpcnRpb19mc19pbml0KTsKKworc3RhdGljIHZvaWQgX19leGl0IHZpcnRpb19mc19leGl0KHZvaWQpCit7CisJdW5yZWdpc3Rlcl9maWxlc3lzdGVtKCZ2aXJ0aW9fZnNfdHlwZSk7CisJdW5yZWdpc3Rlcl92aXJ0aW9fZHJpdmVyKCZ2aXJ0aW9fZnNfZHJpdmVyKTsKK30KK21vZHVsZV9leGl0KHZpcnRpb19mc19leGl0KTsKKworTU9EVUxFX0FVVEhPUigiU3RlZmFuIEhham5vY3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJWaXJ0aW8gRmlsZXN5c3RlbSIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0FMSUFTX0ZTKEtCVUlMRF9NT0ROQU1FKTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUodmlydGlvLCBpZF90YWJsZSk7CmRpZmYgLS1naXQgYS9mcy9mdXNlL3hhdHRyLmMgYi9mcy9mdXNlL3hhdHRyLmMKaW5kZXggNDMzNzE3Ni4uMjBkMDUyZSAxMDA2NDQKLS0tIGEvZnMvZnVzZS94YXR0ci5jCisrKyBiL2ZzL2Z1c2UveGF0dHIuYwpAQCAtMjUsMTUgKzI1LDE1IEBAIGludCBmdXNlX3NldHhhdHRyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHZvaWQgKnZhbHVlLAogCW1lbXNldCgmaW5hcmcsIDAsIHNpemVvZihpbmFyZykpOwogCWluYXJnLnNpemUgPSBzaXplOwogCWluYXJnLmZsYWdzID0gZmxhZ3M7Ci0JYXJncy5pbi5oLm9wY29kZSA9IEZVU0VfU0VUWEFUVFI7Ci0JYXJncy5pbi5oLm5vZGVpZCA9IGdldF9ub2RlX2lkKGlub2RlKTsKLQlhcmdzLmluLm51bWFyZ3MgPSAzOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKLQlhcmdzLmluLmFyZ3NbMF0udmFsdWUgPSAmaW5hcmc7Ci0JYXJncy5pbi5hcmdzWzFdLnNpemUgPSBzdHJsZW4obmFtZSkgKyAxOwotCWFyZ3MuaW4uYXJnc1sxXS52YWx1ZSA9IG5hbWU7Ci0JYXJncy5pbi5hcmdzWzJdLnNpemUgPSBzaXplOwotCWFyZ3MuaW4uYXJnc1syXS52YWx1ZSA9IHZhbHVlOworCWFyZ3Mub3Bjb2RlID0gRlVTRV9TRVRYQVRUUjsKKwlhcmdzLm5vZGVpZCA9IGdldF9ub2RlX2lkKGlub2RlKTsKKwlhcmdzLmluX251bWFyZ3MgPSAzOworCWFyZ3MuaW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKKwlhcmdzLmluX2FyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CisJYXJncy5pbl9hcmdzWzFdLnNpemUgPSBzdHJsZW4obmFtZSkgKyAxOworCWFyZ3MuaW5fYXJnc1sxXS52YWx1ZSA9IG5hbWU7CisJYXJncy5pbl9hcmdzWzJdLnNpemUgPSBzaXplOworCWFyZ3MuaW5fYXJnc1syXS52YWx1ZSA9IHZhbHVlOwogCWVyciA9IGZ1c2Vfc2ltcGxlX3JlcXVlc3QoZmMsICZhcmdzKTsKIAlpZiAoZXJyID09IC1FTk9TWVMpIHsKIAkJZmMtPm5vX3NldHhhdHRyID0gMTsKQEAgLTYwLDIyICs2MCwyMiBAQCBzc2l6ZV90IGZ1c2VfZ2V0eGF0dHIoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqdmFsdWUsCiAKIAltZW1zZXQoJmluYXJnLCAwLCBzaXplb2YoaW5hcmcpKTsKIAlpbmFyZy5zaXplID0gc2l6ZTsKLQlhcmdzLmluLmgub3Bjb2RlID0gRlVTRV9HRVRYQVRUUjsKLQlhcmdzLmluLmgubm9kZWlkID0gZ2V0X25vZGVfaWQoaW5vZGUpOwotCWFyZ3MuaW4ubnVtYXJncyA9IDI7Ci0JYXJncy5pbi5hcmdzWzBdLnNpemUgPSBzaXplb2YoaW5hcmcpOwotCWFyZ3MuaW4uYXJnc1swXS52YWx1ZSA9ICZpbmFyZzsKLQlhcmdzLmluLmFyZ3NbMV0uc2l6ZSA9IHN0cmxlbihuYW1lKSArIDE7Ci0JYXJncy5pbi5hcmdzWzFdLnZhbHVlID0gbmFtZTsKKwlhcmdzLm9wY29kZSA9IEZVU0VfR0VUWEFUVFI7CisJYXJncy5ub2RlaWQgPSBnZXRfbm9kZV9pZChpbm9kZSk7CisJYXJncy5pbl9udW1hcmdzID0gMjsKKwlhcmdzLmluX2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihpbmFyZyk7CisJYXJncy5pbl9hcmdzWzBdLnZhbHVlID0gJmluYXJnOworCWFyZ3MuaW5fYXJnc1sxXS5zaXplID0gc3RybGVuKG5hbWUpICsgMTsKKwlhcmdzLmluX2FyZ3NbMV0udmFsdWUgPSBuYW1lOwogCS8qIFRoaXMgaXMgcmVhbGx5IHR3byBkaWZmZXJlbnQgb3BlcmF0aW9ucyByb2xsZWQgaW50byBvbmUgKi8KLQlhcmdzLm91dC5udW1hcmdzID0gMTsKKwlhcmdzLm91dF9udW1hcmdzID0gMTsKIAlpZiAoc2l6ZSkgewotCQlhcmdzLm91dC5hcmd2YXIgPSAxOwotCQlhcmdzLm91dC5hcmdzWzBdLnNpemUgPSBzaXplOwotCQlhcmdzLm91dC5hcmdzWzBdLnZhbHVlID0gdmFsdWU7CisJCWFyZ3Mub3V0X2FyZ3ZhciA9IHRydWU7CisJCWFyZ3Mub3V0X2FyZ3NbMF0uc2l6ZSA9IHNpemU7CisJCWFyZ3Mub3V0X2FyZ3NbMF0udmFsdWUgPSB2YWx1ZTsKIAl9IGVsc2UgewotCQlhcmdzLm91dC5hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKLQkJYXJncy5vdXQuYXJnc1swXS52YWx1ZSA9ICZvdXRhcmc7CisJCWFyZ3Mub3V0X2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihvdXRhcmcpOworCQlhcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKIAl9CiAJcmV0ID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOwogCWlmICghcmV0ICYmICFzaXplKQpAQCAtMTIxLDIwICsxMjEsMjAgQEAgc3NpemVfdCBmdXNlX2xpc3R4YXR0cihzdHJ1Y3QgZGVudHJ5ICplbnRyeSwgY2hhciAqbGlzdCwgc2l6ZV90IHNpemUpCiAKIAltZW1zZXQoJmluYXJnLCAwLCBzaXplb2YoaW5hcmcpKTsKIAlpbmFyZy5zaXplID0gc2l6ZTsKLQlhcmdzLmluLmgub3Bjb2RlID0gRlVTRV9MSVNUWEFUVFI7Ci0JYXJncy5pbi5oLm5vZGVpZCA9IGdldF9ub2RlX2lkKGlub2RlKTsKLQlhcmdzLmluLm51bWFyZ3MgPSAxOwotCWFyZ3MuaW4uYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKLQlhcmdzLmluLmFyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CisJYXJncy5vcGNvZGUgPSBGVVNFX0xJU1RYQVRUUjsKKwlhcmdzLm5vZGVpZCA9IGdldF9ub2RlX2lkKGlub2RlKTsKKwlhcmdzLmluX251bWFyZ3MgPSAxOworCWFyZ3MuaW5fYXJnc1swXS5zaXplID0gc2l6ZW9mKGluYXJnKTsKKwlhcmdzLmluX2FyZ3NbMF0udmFsdWUgPSAmaW5hcmc7CiAJLyogVGhpcyBpcyByZWFsbHkgdHdvIGRpZmZlcmVudCBvcGVyYXRpb25zIHJvbGxlZCBpbnRvIG9uZSAqLwotCWFyZ3Mub3V0Lm51bWFyZ3MgPSAxOworCWFyZ3Mub3V0X251bWFyZ3MgPSAxOwogCWlmIChzaXplKSB7Ci0JCWFyZ3Mub3V0LmFyZ3ZhciA9IDE7Ci0JCWFyZ3Mub3V0LmFyZ3NbMF0uc2l6ZSA9IHNpemU7Ci0JCWFyZ3Mub3V0LmFyZ3NbMF0udmFsdWUgPSBsaXN0OworCQlhcmdzLm91dF9hcmd2YXIgPSB0cnVlOworCQlhcmdzLm91dF9hcmdzWzBdLnNpemUgPSBzaXplOworCQlhcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gbGlzdDsKIAl9IGVsc2UgewotCQlhcmdzLm91dC5hcmdzWzBdLnNpemUgPSBzaXplb2Yob3V0YXJnKTsKLQkJYXJncy5vdXQuYXJnc1swXS52YWx1ZSA9ICZvdXRhcmc7CisJCWFyZ3Mub3V0X2FyZ3NbMF0uc2l6ZSA9IHNpemVvZihvdXRhcmcpOworCQlhcmdzLm91dF9hcmdzWzBdLnZhbHVlID0gJm91dGFyZzsKIAl9CiAJcmV0ID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOwogCWlmICghcmV0ICYmICFzaXplKQpAQCAtMTU3LDExICsxNTcsMTEgQEAgaW50IGZ1c2VfcmVtb3ZleGF0dHIoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqbmFtZSkKIAlpZiAoZmMtPm5vX3JlbW92ZXhhdHRyKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKLQlhcmdzLmluLmgub3Bjb2RlID0gRlVTRV9SRU1PVkVYQVRUUjsKLQlhcmdzLmluLmgubm9kZWlkID0gZ2V0X25vZGVfaWQoaW5vZGUpOwotCWFyZ3MuaW4ubnVtYXJncyA9IDE7Ci0JYXJncy5pbi5hcmdzWzBdLnNpemUgPSBzdHJsZW4obmFtZSkgKyAxOwotCWFyZ3MuaW4uYXJnc1swXS52YWx1ZSA9IG5hbWU7CisJYXJncy5vcGNvZGUgPSBGVVNFX1JFTU9WRVhBVFRSOworCWFyZ3Mubm9kZWlkID0gZ2V0X25vZGVfaWQoaW5vZGUpOworCWFyZ3MuaW5fbnVtYXJncyA9IDE7CisJYXJncy5pbl9hcmdzWzBdLnNpemUgPSBzdHJsZW4obmFtZSkgKyAxOworCWFyZ3MuaW5fYXJnc1swXS52YWx1ZSA9IG5hbWU7CiAJZXJyID0gZnVzZV9zaW1wbGVfcmVxdWVzdChmYywgJmFyZ3MpOwogCWlmIChlcnIgPT0gLUVOT1NZUykgewogCQlmYy0+bm9fcmVtb3ZleGF0dHIgPSAxOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9hb3BzLmMgYi9mcy9nZnMyL2FvcHMuYwppbmRleCBmNDIwNDhjLi5iOWZlOTc1IDEwMDY0NAotLS0gYS9mcy9nZnMyL2FvcHMuYworKysgYi9mcy9nZnMyL2FvcHMuYwpAQCAtMjQzLDcgKzI0Myw3IEBAIHN0YXRpYyBpbnQgZ2ZzMl93cml0ZV9qZGF0YV9wYWdldmVjKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OwogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gR0ZTMl9TQihpbm9kZSk7Ci0JdW5zaWduZWQgbnJibG9ja3MgPSBucl9wYWdlcyAqIChQQUdFX1NJWkUvaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplKTsKKwl1bnNpZ25lZCBucmJsb2NrcyA9IG5yX3BhZ2VzICogKFBBR0VfU0laRSA+PiBpbm9kZS0+aV9ibGtiaXRzKTsKIAlpbnQgaTsKIAlpbnQgcmV0OwogCkBAIC01NTIsNyArNTUyLDcgQEAgaW50IGdmczJfaW50ZXJuYWxfcmVhZChzdHJ1Y3QgZ2ZzMl9pbm9kZSAqaXAsIGNoYXIgKmJ1ZiwgbG9mZl90ICpwb3MsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNpemUpCiB7CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBpcC0+aV9pbm9kZS5pX21hcHBpbmc7Ci0JdW5zaWduZWQgbG9uZyBpbmRleCA9ICpwb3MgLyBQQUdFX1NJWkU7CisJdW5zaWduZWQgbG9uZyBpbmRleCA9ICpwb3MgPj4gUEFHRV9TSElGVDsKIAl1bnNpZ25lZCBvZmZzZXQgPSAqcG9zICYgKFBBR0VfU0laRSAtIDEpOwogCXVuc2lnbmVkIGNvcGllZCA9IDA7CiAJdW5zaWduZWQgYW10OwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9ibWFwLmMgYi9mcy9nZnMyL2JtYXAuYwppbmRleCA0ZjhiNWZkLi5mNjNkZjU0IDEwMDY0NAotLS0gYS9mcy9nZnMyL2JtYXAuYworKysgYi9mcy9nZnMyL2JtYXAuYwpAQCAtMTA2NSw1NCArMTA2NSwzOCBAQCBzdGF0aWMgaW50IGdmczJfaW9tYXBfYmVnaW5fd3JpdGUoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IHBvcywKIHsKIAlzdHJ1Y3QgZ2ZzMl9pbm9kZSAqaXAgPSBHRlMyX0koaW5vZGUpOwogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gR0ZTMl9TQihpbm9kZSk7Ci0JdW5zaWduZWQgaW50IGRhdGFfYmxvY2tzID0gMCwgaW5kX2Jsb2NrcyA9IDAsIHJibG9ja3M7Ci0JYm9vbCB1bnN0dWZmLCBhbGxvY19yZXF1aXJlZDsKKwlib29sIHVuc3R1ZmY7CiAJaW50IHJldDsKIAotCXJldCA9IGdmczJfd3JpdGVfbG9jayhpbm9kZSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCXVuc3R1ZmYgPSBnZnMyX2lzX3N0dWZmZWQoaXApICYmCiAJCSAgcG9zICsgbGVuZ3RoID4gZ2ZzMl9tYXhfc3R1ZmZlZF9zaXplKGlwKTsKIAotCXJldCA9IGdmczJfaW9tYXBfZ2V0KGlub2RlLCBwb3MsIGxlbmd0aCwgZmxhZ3MsIGlvbWFwLCBtcCk7Ci0JaWYgKHJldCkKLQkJZ290byBvdXRfdW5sb2NrOworCWlmICh1bnN0dWZmIHx8IGlvbWFwLT50eXBlID09IElPTUFQX0hPTEUpIHsKKwkJdW5zaWduZWQgaW50IGRhdGFfYmxvY2tzLCBpbmRfYmxvY2tzOworCQlzdHJ1Y3QgZ2ZzMl9hbGxvY19wYXJtcyBhcCA9IHt9OworCQl1bnNpZ25lZCBpbnQgcmJsb2NrczsKKwkJc3RydWN0IGdmczJfdHJhbnMgKnRyOwogCi0JYWxsb2NfcmVxdWlyZWQgPSB1bnN0dWZmIHx8IGlvbWFwLT50eXBlID09IElPTUFQX0hPTEU7Ci0KLQlpZiAoYWxsb2NfcmVxdWlyZWQgfHwgZ2ZzMl9pc19qZGF0YShpcCkpCiAJCWdmczJfd3JpdGVfY2FsY19yZXNlcnYoaXAsIGlvbWFwLT5sZW5ndGgsICZkYXRhX2Jsb2NrcywKIAkJCQkgICAgICAgJmluZF9ibG9ja3MpOwotCi0JaWYgKGFsbG9jX3JlcXVpcmVkKSB7Ci0JCXN0cnVjdCBnZnMyX2FsbG9jX3Bhcm1zIGFwID0gewotCQkJLnRhcmdldCA9IGRhdGFfYmxvY2tzICsgaW5kX2Jsb2NrcwotCQl9OwotCisJCWFwLnRhcmdldCA9IGRhdGFfYmxvY2tzICsgaW5kX2Jsb2NrczsKIAkJcmV0ID0gZ2ZzMl9xdW90YV9sb2NrX2NoZWNrKGlwLCAmYXApOwogCQlpZiAocmV0KQotCQkJZ290byBvdXRfdW5sb2NrOworCQkJcmV0dXJuIHJldDsKIAogCQlyZXQgPSBnZnMyX2lucGxhY2VfcmVzZXJ2ZShpcCwgJmFwKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gb3V0X3F1bmxvY2s7Ci0JfQogCi0JcmJsb2NrcyA9IFJFU19ESU5PREUgKyBpbmRfYmxvY2tzOwotCWlmIChnZnMyX2lzX2pkYXRhKGlwKSkKLQkJcmJsb2NrcyArPSBkYXRhX2Jsb2NrczsKLQlpZiAoaW5kX2Jsb2NrcyB8fCBkYXRhX2Jsb2NrcykKLQkJcmJsb2NrcyArPSBSRVNfU1RBVEZTICsgUkVTX1FVT1RBOwotCWlmIChpbm9kZSA9PSBzZHAtPnNkX3JpbmRleCkKLQkJcmJsb2NrcyArPSAyICogUkVTX1NUQVRGUzsKLQlpZiAoYWxsb2NfcmVxdWlyZWQpCisJCXJibG9ja3MgPSBSRVNfRElOT0RFICsgaW5kX2Jsb2NrczsKKwkJaWYgKGdmczJfaXNfamRhdGEoaXApKQorCQkJcmJsb2NrcyArPSBkYXRhX2Jsb2NrczsKKwkJaWYgKGluZF9ibG9ja3MgfHwgZGF0YV9ibG9ja3MpCisJCQlyYmxvY2tzICs9IFJFU19TVEFURlMgKyBSRVNfUVVPVEE7CisJCWlmIChpbm9kZSA9PSBzZHAtPnNkX3JpbmRleCkKKwkJCXJibG9ja3MgKz0gMiAqIFJFU19TVEFURlM7CiAJCXJibG9ja3MgKz0gZ2ZzMl9yZ19ibG9ja3MoaXAsIGRhdGFfYmxvY2tzICsgaW5kX2Jsb2Nrcyk7CiAKLQlpZiAodW5zdHVmZiB8fCBpb21hcC0+dHlwZSA9PSBJT01BUF9IT0xFKSB7Ci0JCXN0cnVjdCBnZnMyX3RyYW5zICp0cjsKLQogCQlyZXQgPSBnZnMyX3RyYW5zX2JlZ2luKHNkcCwgcmJsb2NrcywKIAkJCQkgICAgICAgaW9tYXAtPmxlbmd0aCA+PiBpbm9kZS0+aV9ibGtiaXRzKTsKIAkJaWYgKHJldCkKQEAgLTExNTMsMTYgKzExMzcsMTcgQEAgc3RhdGljIGludCBnZnMyX2lvbWFwX2JlZ2luX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBwb3MsCiBvdXRfdHJhbnNfZW5kOgogCWdmczJfdHJhbnNfZW5kKHNkcCk7CiBvdXRfdHJhbnNfZmFpbDoKLQlpZiAoYWxsb2NfcmVxdWlyZWQpCi0JCWdmczJfaW5wbGFjZV9yZWxlYXNlKGlwKTsKKwlnZnMyX2lucGxhY2VfcmVsZWFzZShpcCk7CiBvdXRfcXVubG9jazoKLQlpZiAoYWxsb2NfcmVxdWlyZWQpCi0JCWdmczJfcXVvdGFfdW5sb2NrKGlwKTsKLW91dF91bmxvY2s6Ci0JZ2ZzMl93cml0ZV91bmxvY2soaW5vZGUpOworCWdmczJfcXVvdGFfdW5sb2NrKGlwKTsKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgZ2ZzMl9pb21hcF9uZWVkX3dyaXRlX2xvY2sodW5zaWduZWQgZmxhZ3MpCit7CisJcmV0dXJuIChmbGFncyAmIElPTUFQX1dSSVRFKSAmJiAhKGZsYWdzICYgSU9NQVBfRElSRUNUKTsKK30KKwogc3RhdGljIGludCBnZnMyX2lvbWFwX2JlZ2luKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBwb3MsIGxvZmZfdCBsZW5ndGgsCiAJCQkgICAgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBpb21hcCAqaW9tYXApCiB7CkBAIC0xMTczLDIwICsxMTU4LDQzIEBAIHN0YXRpYyBpbnQgZ2ZzMl9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgcG9zLCBsb2ZmX3QgbGVuZ3RoLAogCWlvbWFwLT5mbGFncyB8PSBJT01BUF9GX0JVRkZFUl9IRUFEOwogCiAJdHJhY2VfZ2ZzMl9pb21hcF9zdGFydChpcCwgcG9zLCBsZW5ndGgsIGZsYWdzKTsKLQlpZiAoKGZsYWdzICYgSU9NQVBfV1JJVEUpICYmICEoZmxhZ3MgJiBJT01BUF9ESVJFQ1QpKSB7Ci0JCXJldCA9IGdmczJfaW9tYXBfYmVnaW5fd3JpdGUoaW5vZGUsIHBvcywgbGVuZ3RoLCBmbGFncywgaW9tYXAsICZtcCk7Ci0JfSBlbHNlIHsKLQkJcmV0ID0gZ2ZzMl9pb21hcF9nZXQoaW5vZGUsIHBvcywgbGVuZ3RoLCBmbGFncywgaW9tYXAsICZtcCk7Ci0KLQkJLyoKLQkJICogU2lsZW50bHkgZmFsbCBiYWNrIHRvIGJ1ZmZlcmVkIEkvTyBmb3Igc3R1ZmZlZCBmaWxlcyBvciBpZgotCQkgKiB3ZSd2ZSBob3QgYSBob2xlIChzZWUgZ2ZzMl9maWxlX2RpcmVjdF93cml0ZSkuCi0JCSAqLwotCQlpZiAoKGZsYWdzICYgSU9NQVBfV1JJVEUpICYmIChmbGFncyAmIElPTUFQX0RJUkVDVCkgJiYKLQkJICAgIGlvbWFwLT50eXBlICE9IElPTUFQX01BUFBFRCkKLQkJCXJldCA9IC1FTk9UQkxLOworCWlmIChnZnMyX2lvbWFwX25lZWRfd3JpdGVfbG9jayhmbGFncykpIHsKKwkJcmV0ID0gZ2ZzMl93cml0ZV9sb2NrKGlub2RlKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OwogCX0KKworCXJldCA9IGdmczJfaW9tYXBfZ2V0KGlub2RlLCBwb3MsIGxlbmd0aCwgZmxhZ3MsIGlvbWFwLCAmbXApOworCWlmIChyZXQpCisJCWdvdG8gb3V0X3VubG9jazsKKworCXN3aXRjaChmbGFncyAmIChJT01BUF9XUklURSB8IElPTUFQX1pFUk8pKSB7CisJY2FzZSBJT01BUF9XUklURToKKwkJaWYgKGZsYWdzICYgSU9NQVBfRElSRUNUKSB7CisJCQkvKgorCQkJICogU2lsZW50bHkgZmFsbCBiYWNrIHRvIGJ1ZmZlcmVkIEkvTyBmb3Igc3R1ZmZlZCBmaWxlcworCQkJICogb3IgaWYgd2UndmUgZ290IGEgaG9sZSAoc2VlIGdmczJfZmlsZV9kaXJlY3Rfd3JpdGUpLgorCQkJICovCisJCQlpZiAoaW9tYXAtPnR5cGUgIT0gSU9NQVBfTUFQUEVEKQorCQkJCXJldCA9IC1FTk9UQkxLOworCQkJZ290byBvdXRfdW5sb2NrOworCQl9CisJCWJyZWFrOworCWNhc2UgSU9NQVBfWkVSTzoKKwkJaWYgKGlvbWFwLT50eXBlID09IElPTUFQX0hPTEUpCisJCQlnb3RvIG91dF91bmxvY2s7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdvdG8gb3V0X3VubG9jazsKKwl9CisKKwlyZXQgPSBnZnMyX2lvbWFwX2JlZ2luX3dyaXRlKGlub2RlLCBwb3MsIGxlbmd0aCwgZmxhZ3MsIGlvbWFwLCAmbXApOworCitvdXRfdW5sb2NrOgorCWlmIChyZXQgJiYgZ2ZzMl9pb21hcF9uZWVkX3dyaXRlX2xvY2soZmxhZ3MpKQorCQlnZnMyX3dyaXRlX3VubG9jayhpbm9kZSk7CiAJcmVsZWFzZV9tZXRhcGF0aCgmbXApOworb3V0OgogCXRyYWNlX2dmczJfaW9tYXBfZW5kKGlwLCBpb21hcCwgcmV0KTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTE5Nyw4ICsxMjA1LDE4IEBAIHN0YXRpYyBpbnQgZ2ZzMl9pb21hcF9lbmQoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IHBvcywgbG9mZl90IGxlbmd0aCwKIAlzdHJ1Y3QgZ2ZzMl9pbm9kZSAqaXAgPSBHRlMyX0koaW5vZGUpOwogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gR0ZTMl9TQihpbm9kZSk7CiAKLQlpZiAoKGZsYWdzICYgKElPTUFQX1dSSVRFIHwgSU9NQVBfRElSRUNUKSkgIT0gSU9NQVBfV1JJVEUpCi0JCWdvdG8gb3V0OworCXN3aXRjaCAoZmxhZ3MgJiAoSU9NQVBfV1JJVEUgfCBJT01BUF9aRVJPKSkgeworCWNhc2UgSU9NQVBfV1JJVEU6CisJCWlmIChmbGFncyAmIElPTUFQX0RJUkVDVCkKKwkJCXJldHVybiAwOworCQlicmVhazsKKwljYXNlIElPTUFQX1pFUk86CisJCSBpZiAoaW9tYXAtPnR5cGUgPT0gSU9NQVBfSE9MRSkKKwkJCSByZXR1cm4gMDsKKwkJIGJyZWFrOworCWRlZmF1bHQ6CisJCSByZXR1cm4gMDsKKwl9CiAKIAlpZiAoIWdmczJfaXNfc3R1ZmZlZChpcCkpCiAJCWdmczJfb3JkZXJlZF9hZGRfaW5vZGUoaXApOwpAQCAtMTIzMSw4ICsxMjQ5LDggQEAgc3RhdGljIGludCBnZnMyX2lvbWFwX2VuZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgcG9zLCBsb2ZmX3QgbGVuZ3RoLAogCXNldF9iaXQoR0xGX0RJUlRZLCAmaXAtPmlfZ2wtPmdsX2ZsYWdzKTsKIAogb3V0X3VubG9jazoKLQlnZnMyX3dyaXRlX3VubG9jayhpbm9kZSk7Ci1vdXQ6CisJaWYgKGdmczJfaW9tYXBfbmVlZF93cml0ZV9sb2NrKGZsYWdzKSkKKwkJZ2ZzMl93cml0ZV91bmxvY2soaW5vZGUpOwogCXJldHVybiAwOwogfQogCkBAIC0xMzMwLDc2ICsxMzQ4LDEwIEBAIGludCBnZnMyX2V4dGVudF9tYXAoc3RydWN0IGlub2RlICppbm9kZSwgdTY0IGxibG9jaywgaW50ICpuZXcsIHU2NCAqZGJsb2NrLCB1bnNpCiAJcmV0dXJuIHJldDsKIH0KIAotLyoqCi0gKiBnZnMyX2Jsb2NrX3plcm9fcmFuZ2UgLSBEZWFsIHdpdGggemVyb2luZyBvdXQgZGF0YQotICoKLSAqIFRoaXMgaXMgcGFydGx5IGJvcnJvd2VkIGZyb20gZXh0My4KLSAqLwogc3RhdGljIGludCBnZnMyX2Jsb2NrX3plcm9fcmFuZ2Uoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IGZyb20sCiAJCQkJIHVuc2lnbmVkIGludCBsZW5ndGgpCiB7Ci0Jc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBpbm9kZS0+aV9tYXBwaW5nOwotCXN0cnVjdCBnZnMyX2lub2RlICppcCA9IEdGUzJfSShpbm9kZSk7Ci0JdW5zaWduZWQgbG9uZyBpbmRleCA9IGZyb20gPj4gUEFHRV9TSElGVDsKLQl1bnNpZ25lZCBvZmZzZXQgPSBmcm9tICYgKFBBR0VfU0laRS0xKTsKLQl1bnNpZ25lZCBibG9ja3NpemUsIGlibG9jaywgcG9zOwotCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7Ci0Jc3RydWN0IHBhZ2UgKnBhZ2U7Ci0JaW50IGVycjsKLQotCXBhZ2UgPSBmaW5kX29yX2NyZWF0ZV9wYWdlKG1hcHBpbmcsIGluZGV4LCBHRlBfTk9GUyk7Ci0JaWYgKCFwYWdlKQotCQlyZXR1cm4gMDsKLQotCWJsb2Nrc2l6ZSA9IGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZTsKLQlpYmxvY2sgPSBpbmRleCA8PCAoUEFHRV9TSElGVCAtIGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZV9iaXRzKTsKLQotCWlmICghcGFnZV9oYXNfYnVmZmVycyhwYWdlKSkKLQkJY3JlYXRlX2VtcHR5X2J1ZmZlcnMocGFnZSwgYmxvY2tzaXplLCAwKTsKLQotCS8qIEZpbmQgdGhlIGJ1ZmZlciB0aGF0IGNvbnRhaW5zICJvZmZzZXQiICovCi0JYmggPSBwYWdlX2J1ZmZlcnMocGFnZSk7Ci0JcG9zID0gYmxvY2tzaXplOwotCXdoaWxlIChvZmZzZXQgPj0gcG9zKSB7Ci0JCWJoID0gYmgtPmJfdGhpc19wYWdlOwotCQlpYmxvY2srKzsKLQkJcG9zICs9IGJsb2Nrc2l6ZTsKLQl9Ci0KLQllcnIgPSAwOwotCi0JaWYgKCFidWZmZXJfbWFwcGVkKGJoKSkgewotCQlnZnMyX2Jsb2NrX21hcChpbm9kZSwgaWJsb2NrLCBiaCwgMCk7Ci0JCS8qIHVubWFwcGVkPyBJdCdzIGEgaG9sZSAtIG5vdGhpbmcgdG8gZG8gKi8KLQkJaWYgKCFidWZmZXJfbWFwcGVkKGJoKSkKLQkJCWdvdG8gdW5sb2NrOwotCX0KLQotCS8qIE9rLCBpdCdzIG1hcHBlZC4gTWFrZSBzdXJlIGl0J3MgdXAtdG8tZGF0ZSAqLwotCWlmIChQYWdlVXB0b2RhdGUocGFnZSkpCi0JCXNldF9idWZmZXJfdXB0b2RhdGUoYmgpOwotCi0JaWYgKCFidWZmZXJfdXB0b2RhdGUoYmgpKSB7Ci0JCWVyciA9IC1FSU87Ci0JCWxsX3J3X2Jsb2NrKFJFUV9PUF9SRUFELCAwLCAxLCAmYmgpOwotCQl3YWl0X29uX2J1ZmZlcihiaCk7Ci0JCS8qIFVoaHVoLiBSZWFkIGVycm9yLiBDb21wbGFpbiBhbmQgcHVudC4gKi8KLQkJaWYgKCFidWZmZXJfdXB0b2RhdGUoYmgpKQotCQkJZ290byB1bmxvY2s7Ci0JCWVyciA9IDA7Ci0JfQotCi0JaWYgKGdmczJfaXNfamRhdGEoaXApKQotCQlnZnMyX3RyYW5zX2FkZF9kYXRhKGlwLT5pX2dsLCBiaCk7Ci0JZWxzZQotCQlnZnMyX29yZGVyZWRfYWRkX2lub2RlKGlwKTsKLQotCXplcm9fdXNlcihwYWdlLCBvZmZzZXQsIGxlbmd0aCk7Ci0JbWFya19idWZmZXJfZGlydHkoYmgpOwotdW5sb2NrOgotCXVubG9ja19wYWdlKHBhZ2UpOwotCXB1dF9wYWdlKHBhZ2UpOwotCXJldHVybiBlcnI7CisJcmV0dXJuIGlvbWFwX3plcm9fcmFuZ2UoaW5vZGUsIGZyb20sIGxlbmd0aCwgTlVMTCwgJmdmczJfaW9tYXBfb3BzKTsKIH0KIAogI2RlZmluZSBHRlMyX0pUUlVOQ19SRVZPS0VTIDgxOTIKQEAgLTE2ODAsNiArMTYzMiw3IEBAIHN0YXRpYyBpbnQgc3dlZXBfYmhfZm9yX3JncnBzKHN0cnVjdCBnZnMyX2lub2RlICppcCwgc3RydWN0IGdmczJfaG9sZGVyICpyZF9naCwKIAkJCWJyZWxzZShkaWJoKTsKIAkJCXVwX3dyaXRlKCZpcC0+aV9yd19tdXRleCk7CiAJCQlnZnMyX3RyYW5zX2VuZChzZHApOworCQkJYnVmX2luX3RyID0gZmFsc2U7CiAJCX0KIAkJZ2ZzMl9nbG9ja19kcV91bmluaXQocmRfZ2gpOwogCQljb25kX3Jlc2NoZWQoKTsKQEAgLTIxODcsNyArMjE0MCw3IEBAIHN0YXRpYyBpbnQgZG9fZ3JvdyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1NjQgc2l6ZSkKIAlpZiAoZXJyb3IpCiAJCWdvdG8gZG9fZW5kX3RyYW5zOwogCi0JaV9zaXplX3dyaXRlKGlub2RlLCBzaXplKTsKKwl0cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBzaXplKTsKIAlpcC0+aV9pbm9kZS5pX210aW1lID0gaXAtPmlfaW5vZGUuaV9jdGltZSA9IGN1cnJlbnRfdGltZSgmaXAtPmlfaW5vZGUpOwogCWdmczJfdHJhbnNfYWRkX21ldGEoaXAtPmlfZ2wsIGRpYmgpOwogCWdmczJfZGlub2RlX291dChpcCwgZGliaC0+Yl9kYXRhKTsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvZGVudHJ5LmMgYi9mcy9nZnMyL2RlbnRyeS5jCmluZGV4IGE3YmI3NmUuLjJlMjE1ZTggMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvZGVudHJ5LmMKKysrIGIvZnMvZ2ZzMi9kZW50cnkuYwpAQCAtMzgsNyArMzgsNyBAQCBzdGF0aWMgaW50IGdmczJfZHJldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJc3RydWN0IGlub2RlICppbm9kZTsKIAlzdHJ1Y3QgZ2ZzMl9ob2xkZXIgZF9naDsKIAlzdHJ1Y3QgZ2ZzMl9pbm9kZSAqaXAgPSBOVUxMOwotCWludCBlcnJvcjsKKwlpbnQgZXJyb3IsIHZhbGlkID0gMDsKIAlpbnQgaGFkX2xvY2sgPSAwOwogCiAJaWYgKGZsYWdzICYgTE9PS1VQX1JDVSkKQEAgLTUxLDUzICs1MSwzMCBAQCBzdGF0aWMgaW50IGdmczJfZHJldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAKIAlpZiAoaW5vZGUpIHsKIAkJaWYgKGlzX2JhZF9pbm9kZShpbm9kZSkpCi0JCQlnb3RvIGludmFsaWQ7CisJCQlnb3RvIG91dDsKIAkJaXAgPSBHRlMyX0koaW5vZGUpOwogCX0KIAotCWlmIChzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9tb3VudCA9PSBOVUxMKQotCQlnb3RvIHZhbGlkOworCWlmIChzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9tb3VudCA9PSBOVUxMKSB7CisJCXZhbGlkID0gMTsKKwkJZ290byBvdXQ7CisJfQogCiAJaGFkX2xvY2sgPSAoZ2ZzMl9nbG9ja19pc19sb2NrZWRfYnlfbWUoZGlwLT5pX2dsKSAhPSBOVUxMKTsKIAlpZiAoIWhhZF9sb2NrKSB7CiAJCWVycm9yID0gZ2ZzMl9nbG9ja19ucV9pbml0KGRpcC0+aV9nbCwgTE1fU1RfU0hBUkVELCAwLCAmZF9naCk7CiAJCWlmIChlcnJvcikKLQkJCWdvdG8gZmFpbDsKLQl9IAotCi0JZXJyb3IgPSBnZnMyX2Rpcl9jaGVjayhkX2lub2RlKHBhcmVudCksICZkZW50cnktPmRfbmFtZSwgaXApOwotCXN3aXRjaCAoZXJyb3IpIHsKLQljYXNlIDA6Ci0JCWlmICghaW5vZGUpCi0JCQlnb3RvIGludmFsaWRfZ3VubG9jazsKLQkJYnJlYWs7Ci0JY2FzZSAtRU5PRU5UOgotCQlpZiAoIWlub2RlKQotCQkJZ290byB2YWxpZF9ndW5sb2NrOwotCQlnb3RvIGludmFsaWRfZ3VubG9jazsKLQlkZWZhdWx0OgotCQlnb3RvIGZhaWxfZ3VubG9jazsKKwkJCWdvdG8gb3V0OwogCX0KIAotdmFsaWRfZ3VubG9jazoKKwllcnJvciA9IGdmczJfZGlyX2NoZWNrKGRfaW5vZGUocGFyZW50KSwgJmRlbnRyeS0+ZF9uYW1lLCBpcCk7CisJdmFsaWQgPSBpbm9kZSA/ICFlcnJvciA6IChlcnJvciA9PSAtRU5PRU5UKTsKKwogCWlmICghaGFkX2xvY2spCiAJCWdmczJfZ2xvY2tfZHFfdW5pbml0KCZkX2doKTsKLXZhbGlkOgorb3V0OgogCWRwdXQocGFyZW50KTsKLQlyZXR1cm4gMTsKLQotaW52YWxpZF9ndW5sb2NrOgotCWlmICghaGFkX2xvY2spCi0JCWdmczJfZ2xvY2tfZHFfdW5pbml0KCZkX2doKTsKLWludmFsaWQ6Ci0JZHB1dChwYXJlbnQpOwotCXJldHVybiAwOwotCi1mYWlsX2d1bmxvY2s6Ci0JZ2ZzMl9nbG9ja19kcV91bmluaXQoJmRfZ2gpOwotZmFpbDoKLQlkcHV0KHBhcmVudCk7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIHZhbGlkOwogfQogCiBzdGF0aWMgaW50IGdmczJfZGhhc2goY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgcXN0ciAqc3RyKQpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9kaXIuYyBiL2ZzL2dmczIvZGlyLmMKaW5kZXggNmYzNWQxOS4uZWI5YzA1NyAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9kaXIuYworKysgYi9mcy9nZnMyL2Rpci5jCkBAIC0xNDYzLDggKzE0NjMsNyBAQCBzdGF0aWMgaW50IGdmczJfZGlyX3JlYWRfbGVhZihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCwKIAkJCQlzb3J0X29mZnNldCA6IGVudHJpZXMsIGNvcGllZCk7CiBvdXRfZnJlZToKIAlmb3IoaSA9IDA7IGkgPCBsZWFmOyBpKyspCi0JCWlmIChsYXJyW2ldKQotCQkJYnJlbHNlKGxhcnJbaV0pOworCQlicmVsc2UobGFycltpXSk7CiAJa3ZmcmVlKGxhcnIpOwogb3V0OgogCXJldHVybiBlcnJvcjsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvZGlyLmggYi9mcy9nZnMyL2Rpci5oCmluZGV4IDBhYzJkYzguLjViNzY0ODAgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvZGlyLmgKKysrIGIvZnMvZ2ZzMi9kaXIuaApAQCAtMzIsOCArMzIsNyBAQCBleHRlcm4gaW50IGdmczJfZGlyX2FkZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgcXN0ciAqZmlsZW5hbWUsCiAJCQljb25zdCBzdHJ1Y3QgZ2ZzMl9pbm9kZSAqaXAsIHN0cnVjdCBnZnMyX2RpcmFkZCAqZGEpOwogc3RhdGljIGlubGluZSB2b2lkIGdmczJfZGlyX25vX2FkZChzdHJ1Y3QgZ2ZzMl9kaXJhZGQgKmRhKQogewotCWlmIChkYS0+YmgpCi0JCWJyZWxzZShkYS0+YmgpOworCWJyZWxzZShkYS0+YmgpOwogCWRhLT5iaCA9IE5VTEw7CiB9CiBleHRlcm4gaW50IGdmczJfZGlyX2RlbChzdHJ1Y3QgZ2ZzMl9pbm9kZSAqZGlwLCBjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9maWxlLmMgYi9mcy9nZnMyL2ZpbGUuYwppbmRleCA1MmZhMWVmLi45OTdiMzI2IDEwMDY0NAotLS0gYS9mcy9nZnMyL2ZpbGUuYworKysgYi9mcy9nZnMyL2ZpbGUuYwpAQCAtMTA0OSw3ICsxMDQ5LDcgQEAgc3RhdGljIGxvbmcgX19nZnMyX2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdAogCQkJcmJsb2NrcyArPSBkYXRhX2Jsb2NrcyA/IGRhdGFfYmxvY2tzIDogMTsKIAogCQllcnJvciA9IGdmczJfdHJhbnNfYmVnaW4oc2RwLCByYmxvY2tzLAotCQkJCQkgUEFHRV9TSVpFL3NkcC0+c2Rfc2Iuc2JfYnNpemUpOworCQkJCQkgUEFHRV9TSVpFID4+IGlub2RlLT5pX2Jsa2JpdHMpOwogCQlpZiAoZXJyb3IpCiAJCQlnb3RvIG91dF90cmFuc19mYWlsOwogCkBAIC0xMDY1LDExICsxMDY1LDEwIEBAIHN0YXRpYyBsb25nIF9fZ2ZzMl9mYWxsb2NhdGUoc3RydWN0IGZpbGUgKmZpbGUsIGludCBtb2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QKIAkJZ2ZzMl9xdW90YV91bmxvY2soaXApOwogCX0KIAotCWlmICghKG1vZGUgJiBGQUxMT0NfRkxfS0VFUF9TSVpFKSAmJiAocG9zICsgY291bnQpID4gaW5vZGUtPmlfc2l6ZSkgeworCWlmICghKG1vZGUgJiBGQUxMT0NfRkxfS0VFUF9TSVpFKSAmJiAocG9zICsgY291bnQpID4gaW5vZGUtPmlfc2l6ZSkKIAkJaV9zaXplX3dyaXRlKGlub2RlLCBwb3MgKyBjb3VudCk7Ci0JCWZpbGVfdXBkYXRlX3RpbWUoZmlsZSk7Ci0JCW1hcmtfaW5vZGVfZGlydHkoaW5vZGUpOwotCX0KKwlmaWxlX3VwZGF0ZV90aW1lKGZpbGUpOworCW1hcmtfaW5vZGVfZGlydHkoaW5vZGUpOwogCiAJaWYgKChmaWxlLT5mX2ZsYWdzICYgT19EU1lOQykgfHwgSVNfU1lOQyhmaWxlLT5mX21hcHBpbmctPmhvc3QpKQogCQlyZXR1cm4gdmZzX2ZzeW5jX3JhbmdlKGZpbGUsIHBvcywgcG9zICsgY291bnQgLSAxLApkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9nbG9jay5jIGIvZnMvZ2ZzMi9nbG9jay5jCmluZGV4IGUyM2ZiOGIuLjAyOTBhMjIgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvZ2xvY2suYworKysgYi9mcy9nZnMyL2dsb2NrLmMKQEAgLTMwNSw2ICszMDUsMTEgQEAgc3RhdGljIHZvaWQgZ2ZzMl9ob2xkZXJfd2FrZShzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKQogCWNsZWFyX2JpdChISUZfV0FJVCwgJmdoLT5naF9pZmxhZ3MpOwogCXNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7CiAJd2FrZV91cF9iaXQoJmdoLT5naF9pZmxhZ3MsIEhJRl9XQUlUKTsKKwlpZiAoZ2gtPmdoX2ZsYWdzICYgR0xfQVNZTkMpIHsKKwkJc3RydWN0IGdmczJfc2JkICpzZHAgPSBnaC0+Z2hfZ2wtPmdsX25hbWUubG5fc2JkOworCisJCXdha2VfdXAoJnNkcC0+c2RfYXN5bmNfZ2xvY2tfd2FpdCk7CisJfQogfQogCiAvKioKQEAgLTkzMSw2ICs5MzYsMTcgQEAgdm9pZCBnZnMyX2hvbGRlcl91bmluaXQoc3RydWN0IGdmczJfaG9sZGVyICpnaCkKIAlnaC0+Z2hfaXAgPSAwOwogfQogCitzdGF0aWMgdm9pZCBnZnMyX2dsb2NrX3VwZGF0ZV9ob2xkX3RpbWUoc3RydWN0IGdmczJfZ2xvY2sgKmdsLAorCQkJCQl1bnNpZ25lZCBsb25nIHN0YXJ0X3RpbWUpCit7CisJLyogSGF2ZSB3ZSB3YWl0ZWQgbG9uZ2VyIHRoYXQgYSBzZWNvbmQ/ICovCisJaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgc3RhcnRfdGltZSArIEhaKSkgeworCQkvKiBMZW5ndGhlbiB0aGUgbWluaW11bSBob2xkIHRpbWUuICovCisJCWdsLT5nbF9ob2xkX3RpbWUgPSBtaW4oZ2wtPmdsX2hvbGRfdGltZSArIEdMX0dMT0NLX0hPTERfSU5DUiwKKwkJCQkgICAgICAgR0xfR0xPQ0tfTUFYX0hPTEQpOworCX0KK30KKwogLyoqCiAgKiBnZnMyX2dsb2NrX3dhaXQgLSB3YWl0IG9uIGEgZ2xvY2sgYWNxdWlzaXRpb24KICAqIEBnaDogdGhlIGdsb2NrIGhvbGRlcgpAQCAtOTQwLDE4ICs5NTYsOTkgQEAgdm9pZCBnZnMyX2hvbGRlcl91bmluaXQoc3RydWN0IGdmczJfaG9sZGVyICpnaCkKIAogaW50IGdmczJfZ2xvY2tfd2FpdChzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKQogewotCXVuc2lnbmVkIGxvbmcgdGltZTEgPSBqaWZmaWVzOworCXVuc2lnbmVkIGxvbmcgc3RhcnRfdGltZSA9IGppZmZpZXM7CiAKIAltaWdodF9zbGVlcCgpOwogCXdhaXRfb25fYml0KCZnaC0+Z2hfaWZsYWdzLCBISUZfV0FJVCwgVEFTS19VTklOVEVSUlVQVElCTEUpOwotCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWUxICsgSFopKSAvKiBoYXZlIHdlIHdhaXRlZCA+IGEgc2Vjb25kPyAqLwotCQkvKiBMZW5ndGhlbiB0aGUgbWluaW11bSBob2xkIHRpbWUuICovCi0JCWdoLT5naF9nbC0+Z2xfaG9sZF90aW1lID0gbWluKGdoLT5naF9nbC0+Z2xfaG9sZF90aW1lICsKLQkJCQkJICAgICAgR0xfR0xPQ0tfSE9MRF9JTkNSLAotCQkJCQkgICAgICBHTF9HTE9DS19NQVhfSE9MRCk7CisJZ2ZzMl9nbG9ja191cGRhdGVfaG9sZF90aW1lKGdoLT5naF9nbCwgc3RhcnRfdGltZSk7CiAJcmV0dXJuIGdoLT5naF9lcnJvcjsKIH0KIAorc3RhdGljIGludCBnbG9ja3NfcGVuZGluZyh1bnNpZ25lZCBpbnQgbnVtX2doLCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdocykKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBudW1fZ2g7IGkrKykKKwkJaWYgKHRlc3RfYml0KEhJRl9XQUlULCAmZ2hzW2ldLmdoX2lmbGFncykpCisJCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBnZnMyX2dsb2NrX2FzeW5jX3dhaXQgLSB3YWl0IG9uIG11bHRpcGxlIGFzeW5jaHJvbm91cyBnbG9jayBhY3F1aXNpdGlvbnMKKyAqIEBudW1fZ2g6IHRoZSBudW1iZXIgb2YgaG9sZGVycyBpbiB0aGUgYXJyYXkKKyAqIEBnaHM6IHRoZSBnbG9jayBob2xkZXIgYXJyYXkKKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG1lYW5pbmcgYWxsIGdsb2NrcyBoYXZlIGJlZW4gZ3JhbnRlZCBhbmQgYXJlIGhlbGQuCisgKiAgICAgICAgICAtRVNUQUxFIGlmIHRoZSByZXF1ZXN0IHRpbWVkIG91dCwgbWVhbmluZyBhbGwgZ2xvY2tzIHdlcmUgcmVsZWFzZWQsCisgKiAgICAgICAgICBhbmQgdGhlIGNhbGxlciBzaG91bGQgcmV0cnkgdGhlIG9wZXJhdGlvbi4KKyAqLworCitpbnQgZ2ZzMl9nbG9ja19hc3luY193YWl0KHVuc2lnbmVkIGludCBudW1fZ2gsIHN0cnVjdCBnZnMyX2hvbGRlciAqZ2hzKQoreworCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gZ2hzWzBdLmdoX2dsLT5nbF9uYW1lLmxuX3NiZDsKKwlpbnQgaSwgcmV0ID0gMCwgdGltZW91dCA9IDA7CisJdW5zaWduZWQgbG9uZyBzdGFydF90aW1lID0gamlmZmllczsKKwlib29sIGtlZXBfd2FpdGluZzsKKworCW1pZ2h0X3NsZWVwKCk7CisJLyoKKwkgKiBUb3RhbCB1cCB0aGUgKG1pbmltdW0gaG9sZCB0aW1lICogMikgb2YgYWxsIGdsb2NrcyBhbmQgdXNlIHRoYXQgdG8KKwkgKiBkZXRlcm1pbmUgdGhlIG1heCBhbW91bnQgb2YgdGltZSB3ZSBzaG91bGQgd2FpdC4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2doOyBpKyspCisJCXRpbWVvdXQgKz0gZ2hzW2ldLmdoX2dsLT5nbF9ob2xkX3RpbWUgPDwgMTsKKword2FpdF9mb3JfZGxtOgorCWlmICghd2FpdF9ldmVudF90aW1lb3V0KHNkcC0+c2RfYXN5bmNfZ2xvY2tfd2FpdCwKKwkJCQkhZ2xvY2tzX3BlbmRpbmcobnVtX2doLCBnaHMpLCB0aW1lb3V0KSkKKwkJcmV0ID0gLUVTVEFMRTsgLyogcmVxdWVzdCB0aW1lZCBvdXQuICovCisKKwkvKgorCSAqIElmIGRsbSBncmFudGVkIGFsbCBvdXIgcmVxdWVzdHMsIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBnbG9jaworCSAqIG1pbmltdW0gaG9sZCB0aW1lIHZhbHVlcyBhY2NvcmRpbmcgdG8gaG93IGxvbmcgd2Ugd2FpdGVkLgorCSAqCisJICogSWYgb3VyIHJlcXVlc3QgdGltZWQgb3V0LCB3ZSBuZWVkIHRvIHJlcGVhdGVkbHkgcmVsZWFzZSBhbnkgaGVsZAorCSAqIGdsb2NrcyB3ZSBhY3F1aXJlZCB0aHVzIGZhciB0byBhbGxvdyBkbG0gdG8gYWNxdWlyZSB0aGUgcmVtYWluaW5nCisJICogZ2xvY2tzIHdpdGhvdXQgZGVhZGxvY2tpbmcuICBXZSBjYW5ub3QgY3VycmVudGx5IGNhbmNlbCBvdXRzdGFuZGluZworCSAqIGdsb2NrIGFjcXVpc2l0aW9ucy4KKwkgKgorCSAqIFRoZSBISUZfV0FJVCBiaXQgdGVsbHMgdXMgd2hpY2ggcmVxdWVzdHMgc3RpbGwgbmVlZCBhIHJlc3BvbnNlIGZyb20KKwkgKiBkbG0uCisJICoKKwkgKiBJZiBkbG0gc2VudCB1cyBhbnkgZXJyb3JzLCB3ZSByZXR1cm4gdGhlIGZpcnN0IGVycm9yIHdlIGZpbmQuCisJICovCisJa2VlcF93YWl0aW5nID0gZmFsc2U7CisJZm9yIChpID0gMDsgaSA8IG51bV9naDsgaSsrKSB7CisJCS8qIFNraXAgaG9sZGVycyB3ZSBoYXZlIGFscmVhZHkgZGVxdWV1ZWQgYmVsb3cuICovCisJCWlmICghZ2ZzMl9ob2xkZXJfcXVldWVkKCZnaHNbaV0pKQorCQkJY29udGludWU7CisJCS8qIFNraXAgaG9sZGVycyB3aXRoIGEgcGVuZGluZyBETE0gcmVzcG9uc2UuICovCisJCWlmICh0ZXN0X2JpdChISUZfV0FJVCwgJmdoc1tpXS5naF9pZmxhZ3MpKSB7CisJCQlrZWVwX3dhaXRpbmcgPSB0cnVlOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAodGVzdF9iaXQoSElGX0hPTERFUiwgJmdoc1tpXS5naF9pZmxhZ3MpKSB7CisJCQlpZiAocmV0ID09IC1FU1RBTEUpCisJCQkJZ2ZzMl9nbG9ja19kcSgmZ2hzW2ldKTsKKwkJCWVsc2UKKwkJCQlnZnMyX2dsb2NrX3VwZGF0ZV9ob2xkX3RpbWUoZ2hzW2ldLmdoX2dsLAorCQkJCQkJCSAgICBzdGFydF90aW1lKTsKKwkJfQorCQlpZiAoIXJldCkKKwkJCXJldCA9IGdoc1tpXS5naF9lcnJvcjsKKwl9CisKKwlpZiAoa2VlcF93YWl0aW5nKQorCQlnb3RvIHdhaXRfZm9yX2RsbTsKKworCS8qCisJICogQXQgdGhpcyBwb2ludCwgd2UndmUgZWl0aGVyIGFjcXVpcmVkIGFsbCBsb2NrcyBvciByZWxlYXNlZCB0aGVtIGFsbC4KKwkgKi8KKwlyZXR1cm4gcmV0OworfQorCiAvKioKICAqIGhhbmRsZV9jYWxsYmFjayAtIHByb2Nlc3MgYSBkZW1vdGUgcmVxdWVzdAogICogQGdsOiB0aGUgZ2xvY2sKQEAgLTEwMTgsOSArMTExNSw5IEBAIF9fYWNxdWlyZXMoJmdsLT5nbF9sb2NrcmVmLmxvY2spCiAJc3RydWN0IGdmczJfaG9sZGVyICpnaDI7CiAJaW50IHRyeV9mdXRpbGUgPSAwOwogCi0JQlVHX09OKGdoLT5naF9vd25lcl9waWQgPT0gTlVMTCk7CisJR0xPQ0tfQlVHX09OKGdsLCBnaC0+Z2hfb3duZXJfcGlkID09IE5VTEwpOwogCWlmICh0ZXN0X2FuZF9zZXRfYml0KEhJRl9XQUlULCAmZ2gtPmdoX2lmbGFncykpCi0JCUJVRygpOworCQlHTE9DS19CVUdfT04oZ2wsIHRydWUpOwogCiAJaWYgKGdoLT5naF9mbGFncyAmIChMTV9GTEFHX1RSWSB8IExNX0ZMQUdfVFJZXzFDQikpIHsKIAkJaWYgKHRlc3RfYml0KEdMRl9MT0NLLCAmZ2wtPmdsX2ZsYWdzKSkKQEAgLTE3ODgsOCArMTg4NSw4IEBAIHZvaWQgZ2ZzMl9kdW1wX2dsb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIGJvb2wgZnNpZCkKIAl1bnNpZ25lZCBsb25nIGxvbmcgZHRpbWU7CiAJY29uc3Qgc3RydWN0IGdmczJfaG9sZGVyICpnaDsKIAljaGFyIGdmbGFnc19idWZbMzJdOwotCWNoYXIgZnNfaWRfYnVmW0dGUzJfRlNOQU1FX0xFTiArIDMgKiBzaXplb2YoaW50KSArIDJdOwogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gZ2wtPmdsX25hbWUubG5fc2JkOworCWNoYXIgZnNfaWRfYnVmW3NpemVvZihzZHAtPnNkX2ZzbmFtZSkgKyA3XTsKIAogCW1lbXNldChmc19pZF9idWYsIDAsIHNpemVvZihmc19pZF9idWYpKTsKIAlpZiAoZnNpZCAmJiBzZHApIC8qIHNhZmV0eSBwcmVjYXV0aW9uICovCmRpZmYgLS1naXQgYS9mcy9nZnMyL2dsb2NrLmggYi9mcy9nZnMyL2dsb2NrLmgKaW5kZXggZTRlMGJlZC4uYjhhZGFmOCAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9nbG9jay5oCisrKyBiL2ZzL2dmczIvZ2xvY2suaApAQCAtMTkwLDYgKzE5MCw3IEBAIGV4dGVybiB2b2lkIGdmczJfaG9sZGVyX3VuaW5pdChzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKTsKIGV4dGVybiBpbnQgZ2ZzMl9nbG9ja19ucShzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKTsKIGV4dGVybiBpbnQgZ2ZzMl9nbG9ja19wb2xsKHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpOwogZXh0ZXJuIGludCBnZnMyX2dsb2NrX3dhaXQoc3RydWN0IGdmczJfaG9sZGVyICpnaCk7CitleHRlcm4gaW50IGdmczJfZ2xvY2tfYXN5bmNfd2FpdCh1bnNpZ25lZCBpbnQgbnVtX2doLCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdocyk7CiBleHRlcm4gdm9pZCBnZnMyX2dsb2NrX2RxKHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpOwogZXh0ZXJuIHZvaWQgZ2ZzMl9nbG9ja19kcV93YWl0KHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpOwogZXh0ZXJuIHZvaWQgZ2ZzMl9nbG9ja19kcV91bmluaXQoc3RydWN0IGdmczJfaG9sZGVyICpnaCk7CkBAIC0yNjAsNiArMjYxLDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBnZnMyX2hvbGRlcl9pbml0aWFsaXplZChzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKQogCXJldHVybiBnaC0+Z2hfZ2w7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBnZnMyX2hvbGRlcl9xdWV1ZWQoc3RydWN0IGdmczJfaG9sZGVyICpnaCkKK3sKKwlyZXR1cm4gIWxpc3RfZW1wdHkoJmdoLT5naF9saXN0KTsKK30KKwogLyoqCiAgKiBnbG9ja19zZXRfb2JqZWN0IC0gc2V0IHRoZSBnbF9vYmplY3QgZmllbGQgb2YgYSBnbG9jawogICogQGdsOiB0aGUgZ2xvY2sKZGlmZiAtLWdpdCBhL2ZzL2dmczIvaW5jb3JlLmggYi9mcy9nZnMyL2luY29yZS5oCmluZGV4IDdhOTkzZDcuLjVmODljNTEgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvaW5jb3JlLmgKKysrIGIvZnMvZ2ZzMi9pbmNvcmUuaApAQCAtNTg0LDEwICs1ODQsMTAgQEAgc3RydWN0IGdmczJfYXJncyB7CiAJdW5zaWduZWQgaW50IGFyX3JncnBsdmI6MTsJCS8qIHVzZSBsdmJzIGZvciByZ3JwIGluZm8gKi8KIAl1bnNpZ25lZCBpbnQgYXJfbG9jY29va2llOjE7CQkvKiB1c2UgbG9jYXRpb24gYmFzZWQgcmVhZGRpcgogCQkJCQkJICAgY29va2llcyAqLwotCWludCBhcl9jb21taXQ7CQkJCS8qIENvbW1pdCBpbnRlcnZhbCAqLwotCWludCBhcl9zdGF0ZnNfcXVhbnR1bTsJCQkvKiBUaGUgZmFzdCBzdGF0ZnMgaW50ZXJ2YWwgKi8KLQlpbnQgYXJfcXVvdGFfcXVhbnR1bTsJCQkvKiBUaGUgcXVvdGEgaW50ZXJ2YWwgKi8KLQlpbnQgYXJfc3RhdGZzX3BlcmNlbnQ7CQkJLyogVGhlICUgY2hhbmdlIHRvIGZvcmNlIHN5bmMgKi8KKwlzMzIgYXJfY29tbWl0OwkJCQkvKiBDb21taXQgaW50ZXJ2YWwgKi8KKwlzMzIgYXJfc3RhdGZzX3F1YW50dW07CQkJLyogVGhlIGZhc3Qgc3RhdGZzIGludGVydmFsICovCisJczMyIGFyX3F1b3RhX3F1YW50dW07CQkJLyogVGhlIHF1b3RhIGludGVydmFsICovCisJczMyIGFyX3N0YXRmc19wZXJjZW50OwkJCS8qIFRoZSAlIGNoYW5nZSB0byBmb3JjZSBzeW5jICovCiB9OwogCiBzdHJ1Y3QgZ2ZzMl90dW5lIHsKQEAgLTcyNSw2ICs3MjUsNyBAQCBzdHJ1Y3QgZ2ZzMl9zYmQgewogCXN0cnVjdCBnZnMyX2dsb2NrICpzZF9mcmVlemVfZ2w7CiAJc3RydWN0IHdvcmtfc3RydWN0IHNkX2ZyZWV6ZV93b3JrOwogCXdhaXRfcXVldWVfaGVhZF90IHNkX2dsb2NrX3dhaXQ7CisJd2FpdF9xdWV1ZV9oZWFkX3Qgc2RfYXN5bmNfZ2xvY2tfd2FpdDsKIAlhdG9taWNfdCBzZF9nbG9ja19kaXNwb3NhbDsKIAlzdHJ1Y3QgY29tcGxldGlvbiBzZF9sb2NraW5nX2luaXQ7CiAJc3RydWN0IGNvbXBsZXRpb24gc2Rfd2RhY2s7CmRpZmYgLS1naXQgYS9mcy9nZnMyL2lub2RlLmMgYi9mcy9nZnMyL2lub2RlLmMKaW5kZXggMmUyYThhMi4uZTFlMThmYiAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9pbm9kZS5jCisrKyBiL2ZzL2dmczIvaW5vZGUuYwpAQCAtMTM0OCw3ICsxMzQ4LDcgQEAgc3RhdGljIGludCBnZnMyX3JlbmFtZShzdHJ1Y3QgaW5vZGUgKm9kaXIsIHN0cnVjdCBkZW50cnkgKm9kZW50cnksCiAJc3RydWN0IGdmczJfaW5vZGUgKmlwID0gR0ZTMl9JKGRfaW5vZGUob2RlbnRyeSkpOwogCXN0cnVjdCBnZnMyX2lub2RlICpuaXAgPSBOVUxMOwogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gR0ZTMl9TQihvZGlyKTsKLQlzdHJ1Y3QgZ2ZzMl9ob2xkZXIgZ2hzWzVdLCByX2doOworCXN0cnVjdCBnZnMyX2hvbGRlciBnaHNbNF0sIHJfZ2gsIHJkX2doOwogCXN0cnVjdCBnZnMyX3JncnBkICpucmdkOwogCXVuc2lnbmVkIGludCBudW1fZ2g7CiAJaW50IGRpcl9yZW5hbWUgPSAwOwpAQCAtMTM1Nyw2ICsxMzU3LDcgQEAgc3RhdGljIGludCBnZnMyX3JlbmFtZShzdHJ1Y3QgaW5vZGUgKm9kaXIsIHN0cnVjdCBkZW50cnkgKm9kZW50cnksCiAJaW50IGVycm9yOwogCiAJZ2ZzMl9ob2xkZXJfbWFya191bmluaXRpYWxpemVkKCZyX2doKTsKKwlnZnMyX2hvbGRlcl9tYXJrX3VuaW5pdGlhbGl6ZWQoJnJkX2doKTsKIAlpZiAoZF9yZWFsbHlfaXNfcG9zaXRpdmUobmRlbnRyeSkpIHsKIAkJbmlwID0gR0ZTMl9JKGRfaW5vZGUobmRlbnRyeSkpOwogCQlpZiAoaXAgPT0gbmlwKQpAQCAtMTM4NywyNCArMTM4OCwxOSBAQCBzdGF0aWMgaW50IGdmczJfcmVuYW1lKHN0cnVjdCBpbm9kZSAqb2Rpciwgc3RydWN0IGRlbnRyeSAqb2RlbnRyeSwKIAl9CiAKIAludW1fZ2ggPSAxOwotCWdmczJfaG9sZGVyX2luaXQob2RpcC0+aV9nbCwgTE1fU1RfRVhDTFVTSVZFLCAwLCBnaHMpOworCWdmczJfaG9sZGVyX2luaXQob2RpcC0+aV9nbCwgTE1fU1RfRVhDTFVTSVZFLCBHTF9BU1lOQywgZ2hzKTsKIAlpZiAob2RpcCAhPSBuZGlwKSB7Ci0JCWdmczJfaG9sZGVyX2luaXQobmRpcC0+aV9nbCwgTE1fU1RfRVhDTFVTSVZFLCAwLCBnaHMgKyBudW1fZ2gpOworCQlnZnMyX2hvbGRlcl9pbml0KG5kaXAtPmlfZ2wsIExNX1NUX0VYQ0xVU0lWRSxHTF9BU1lOQywKKwkJCQkgZ2hzICsgbnVtX2doKTsKIAkJbnVtX2doKys7CiAJfQotCWdmczJfaG9sZGVyX2luaXQoaXAtPmlfZ2wsIExNX1NUX0VYQ0xVU0lWRSwgMCwgZ2hzICsgbnVtX2doKTsKKwlnZnMyX2hvbGRlcl9pbml0KGlwLT5pX2dsLCBMTV9TVF9FWENMVVNJVkUsIEdMX0FTWU5DLCBnaHMgKyBudW1fZ2gpOwogCW51bV9naCsrOwogCiAJaWYgKG5pcCkgewotCQlnZnMyX2hvbGRlcl9pbml0KG5pcC0+aV9nbCwgTE1fU1RfRVhDTFVTSVZFLCAwLCBnaHMgKyBudW1fZ2gpOworCQlnZnMyX2hvbGRlcl9pbml0KG5pcC0+aV9nbCwgTE1fU1RfRVhDTFVTSVZFLCBHTF9BU1lOQywKKwkJCQkgZ2hzICsgbnVtX2doKTsKIAkJbnVtX2doKys7Ci0JCS8qIGdyYWIgdGhlIHJlc291cmNlIGxvY2sgZm9yIHVubGluayBmbGFnIHR3aWRkbGluZyAKLQkJICogdGhpcyBpcyB0aGUgY2FzZSBvZiB0aGUgdGFyZ2V0IGZpbGUgYWxyZWFkeSBleGlzdGluZwotCQkgKiBzbyB3ZSB1bmxpbmsgYmVmb3JlIGRvaW5nIHRoZSByZW5hbWUKLQkJICovCi0JCW5yZ2QgPSBnZnMyX2JsazJyZ3JwZChzZHAsIG5pcC0+aV9ub19hZGRyLCAxKTsKLQkJaWYgKG5yZ2QpCi0JCQlnZnMyX2hvbGRlcl9pbml0KG5yZ2QtPnJkX2dsLCBMTV9TVF9FWENMVVNJVkUsIDAsIGdocyArIG51bV9naCsrKTsKIAl9CiAKIAlmb3IgKHggPSAwOyB4IDwgbnVtX2doOyB4KyspIHsKQEAgLTE0MTIsNiArMTQwOCwyNSBAQCBzdGF0aWMgaW50IGdmczJfcmVuYW1lKHN0cnVjdCBpbm9kZSAqb2Rpciwgc3RydWN0IGRlbnRyeSAqb2RlbnRyeSwKIAkJaWYgKGVycm9yKQogCQkJZ290byBvdXRfZ3VubG9jazsKIAl9CisJZXJyb3IgPSBnZnMyX2dsb2NrX2FzeW5jX3dhaXQobnVtX2doLCBnaHMpOworCWlmIChlcnJvcikKKwkJZ290byBvdXRfZ3VubG9jazsKKworCWlmIChuaXApIHsKKwkJLyogR3JhYiB0aGUgcmVzb3VyY2UgZ3JvdXAgZ2xvY2sgZm9yIHVubGluayBmbGFnIHR3aWRkbGluZy4KKwkJICogVGhpcyBpcyB0aGUgY2FzZSB3aGVyZSB0aGUgdGFyZ2V0IGRpbm9kZSBhbHJlYWR5IGV4aXN0cworCQkgKiBzbyB3ZSB1bmxpbmsgYmVmb3JlIGRvaW5nIHRoZSByZW5hbWUuCisJCSAqLworCQlucmdkID0gZ2ZzMl9ibGsycmdycGQoc2RwLCBuaXAtPmlfbm9fYWRkciwgMSk7CisJCWlmICghbnJnZCkgeworCQkJZXJyb3IgPSAtRU5PRU5UOworCQkJZ290byBvdXRfZ3VubG9jazsKKwkJfQorCQllcnJvciA9IGdmczJfZ2xvY2tfbnFfaW5pdChucmdkLT5yZF9nbCwgTE1fU1RfRVhDTFVTSVZFLCAwLAorCQkJCQkgICAmcmRfZ2gpOworCQlpZiAoZXJyb3IpCisJCQlnb3RvIG91dF9ndW5sb2NrOworCX0KIAogCWVycm9yID0gLUVOT0VOVDsKIAlpZiAoaXAtPmlfaW5vZGUuaV9ubGluayA9PSAwKQpAQCAtMTU0MSw4ICsxNTU2LDEyIEBAIHN0YXRpYyBpbnQgZ2ZzMl9yZW5hbWUoc3RydWN0IGlub2RlICpvZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvZGVudHJ5LAogCQlnZnMyX3F1b3RhX3VubG9jayhuZGlwKTsKIG91dF9ndW5sb2NrOgogCWdmczJfZGlyX25vX2FkZCgmZGEpOworCWlmIChnZnMyX2hvbGRlcl9pbml0aWFsaXplZCgmcmRfZ2gpKQorCQlnZnMyX2dsb2NrX2RxX3VuaW5pdCgmcmRfZ2gpOworCiAJd2hpbGUgKHgtLSkgewotCQlnZnMyX2dsb2NrX2RxKGdocyArIHgpOworCQlpZiAoZ2ZzMl9ob2xkZXJfcXVldWVkKGdocyArIHgpKQorCQkJZ2ZzMl9nbG9ja19kcShnaHMgKyB4KTsKIAkJZ2ZzMl9ob2xkZXJfdW5pbml0KGdocyArIHgpOwogCX0KIG91dF9ndW5sb2NrX3I6CkBAIC0xNTcyLDcgKzE1OTEsNyBAQCBzdGF0aWMgaW50IGdmczJfZXhjaGFuZ2Uoc3RydWN0IGlub2RlICpvZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvZGVudHJ5LAogCXN0cnVjdCBnZnMyX2lub2RlICpvaXAgPSBHRlMyX0kob2RlbnRyeS0+ZF9pbm9kZSk7CiAJc3RydWN0IGdmczJfaW5vZGUgKm5pcCA9IEdGUzJfSShuZGVudHJ5LT5kX2lub2RlKTsKIAlzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCA9IEdGUzJfU0Iob2Rpcik7Ci0Jc3RydWN0IGdmczJfaG9sZGVyIGdoc1s1XSwgcl9naDsKKwlzdHJ1Y3QgZ2ZzMl9ob2xkZXIgZ2hzWzRdLCByX2doOwogCXVuc2lnbmVkIGludCBudW1fZ2g7CiAJdW5zaWduZWQgaW50IHg7CiAJdW1vZGVfdCBvbGRfbW9kZSA9IG9pcC0+aV9pbm9kZS5pX21vZGU7CkBAIC0xNjA2LDE1ICsxNjI1LDE2IEBAIHN0YXRpYyBpbnQgZ2ZzMl9leGNoYW5nZShzdHJ1Y3QgaW5vZGUgKm9kaXIsIHN0cnVjdCBkZW50cnkgKm9kZW50cnksCiAJfQogCiAJbnVtX2doID0gMTsKLQlnZnMyX2hvbGRlcl9pbml0KG9kaXAtPmlfZ2wsIExNX1NUX0VYQ0xVU0lWRSwgMCwgZ2hzKTsKKwlnZnMyX2hvbGRlcl9pbml0KG9kaXAtPmlfZ2wsIExNX1NUX0VYQ0xVU0lWRSwgR0xfQVNZTkMsIGdocyk7CiAJaWYgKG9kaXAgIT0gbmRpcCkgewotCQlnZnMyX2hvbGRlcl9pbml0KG5kaXAtPmlfZ2wsIExNX1NUX0VYQ0xVU0lWRSwgMCwgZ2hzICsgbnVtX2doKTsKKwkJZ2ZzMl9ob2xkZXJfaW5pdChuZGlwLT5pX2dsLCBMTV9TVF9FWENMVVNJVkUsIEdMX0FTWU5DLAorCQkJCSBnaHMgKyBudW1fZ2gpOwogCQludW1fZ2grKzsKIAl9Ci0JZ2ZzMl9ob2xkZXJfaW5pdChvaXAtPmlfZ2wsIExNX1NUX0VYQ0xVU0lWRSwgMCwgZ2hzICsgbnVtX2doKTsKKwlnZnMyX2hvbGRlcl9pbml0KG9pcC0+aV9nbCwgTE1fU1RfRVhDTFVTSVZFLCBHTF9BU1lOQywgZ2hzICsgbnVtX2doKTsKIAludW1fZ2grKzsKIAotCWdmczJfaG9sZGVyX2luaXQobmlwLT5pX2dsLCBMTV9TVF9FWENMVVNJVkUsIDAsIGdocyArIG51bV9naCk7CisJZ2ZzMl9ob2xkZXJfaW5pdChuaXAtPmlfZ2wsIExNX1NUX0VYQ0xVU0lWRSwgR0xfQVNZTkMsIGdocyArIG51bV9naCk7CiAJbnVtX2doKys7CiAKIAlmb3IgKHggPSAwOyB4IDwgbnVtX2doOyB4KyspIHsKQEAgLTE2MjMsNiArMTY0MywxMCBAQCBzdGF0aWMgaW50IGdmczJfZXhjaGFuZ2Uoc3RydWN0IGlub2RlICpvZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvZGVudHJ5LAogCQkJZ290byBvdXRfZ3VubG9jazsKIAl9CiAKKwllcnJvciA9IGdmczJfZ2xvY2tfYXN5bmNfd2FpdChudW1fZ2gsIGdocyk7CisJaWYgKGVycm9yKQorCQlnb3RvIG91dF9ndW5sb2NrOworCiAJZXJyb3IgPSAtRU5PRU5UOwogCWlmIChvaXAtPmlfaW5vZGUuaV9ubGluayA9PSAwIHx8IG5pcC0+aV9pbm9kZS5pX25saW5rID09IDApCiAJCWdvdG8gb3V0X2d1bmxvY2s7CkBAIC0xNjgzLDcgKzE3MDcsOCBAQCBzdGF0aWMgaW50IGdmczJfZXhjaGFuZ2Uoc3RydWN0IGlub2RlICpvZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvZGVudHJ5LAogCWdmczJfdHJhbnNfZW5kKHNkcCk7CiBvdXRfZ3VubG9jazoKIAl3aGlsZSAoeC0tKSB7Ci0JCWdmczJfZ2xvY2tfZHEoZ2hzICsgeCk7CisJCWlmIChnZnMyX2hvbGRlcl9xdWV1ZWQoZ2hzICsgeCkpCisJCQlnZnMyX2dsb2NrX2RxKGdocyArIHgpOwogCQlnZnMyX2hvbGRlcl91bmluaXQoZ2hzICsgeCk7CiAJfQogb3V0X2d1bmxvY2tfcjoKZGlmZiAtLWdpdCBhL2ZzL2dmczIvbG9ja19kbG0uYyBiL2ZzL2dmczIvbG9ja19kbG0uYwppbmRleCA0MzYxODA0Li43YzcxOTczIDEwMDY0NAotLS0gYS9mcy9nZnMyL2xvY2tfZGxtLmMKKysrIGIvZnMvZ2ZzMi9sb2NrX2RsbS5jCkBAIC0xMDM1LDEyICsxMDM1LDEyIEBAIHN0YXRpYyBpbnQgc2V0X3JlY292ZXJfc2l6ZShzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCwgc3RydWN0IGRsbV9zbG90ICpzbG90cywKIAl9CiAKIAlvbGRfc2l6ZSA9IGxzLT5sc19yZWNvdmVyX3NpemU7Ci0KLQlpZiAob2xkX3NpemUgPj0gbWF4X2ppZCArIDEpCisJbmV3X3NpemUgPSBvbGRfc2l6ZTsKKwl3aGlsZSAobmV3X3NpemUgPCBtYXhfamlkICsgMSkKKwkJbmV3X3NpemUgKz0gUkVDT1ZFUl9TSVpFX0lOQzsKKwlpZiAobmV3X3NpemUgPT0gb2xkX3NpemUpCiAJCXJldHVybiAwOwogCi0JbmV3X3NpemUgPSBvbGRfc2l6ZSArIFJFQ09WRVJfU0laRV9JTkM7Ci0KIAlzdWJtaXQgPSBrY2FsbG9jKG5ld19zaXplLCBzaXplb2YodWludDMyX3QpLCBHRlBfTk9GUyk7CiAJcmVzdWx0ID0ga2NhbGxvYyhuZXdfc2l6ZSwgc2l6ZW9mKHVpbnQzMl90KSwgR0ZQX05PRlMpOwogCWlmICghc3VibWl0IHx8ICFyZXN1bHQpIHsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvb3BzX2ZzdHlwZS5jIGIvZnMvZ2ZzMi9vcHNfZnN0eXBlLmMKaW5kZXggNGE4ZTVhNy4uNjgxYjQ0NiAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9vcHNfZnN0eXBlLmMKKysrIGIvZnMvZ2ZzMi9vcHNfZnN0eXBlLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9sb2NrZGVwLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvYmFja2luZy1kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9mc19wYXJzZXIuaD4KIAogI2luY2x1ZGUgImdmczIuaCIKICNpbmNsdWRlICJpbmNvcmUuaCIKQEAgLTg3LDYgKzg4LDcgQEAgc3RhdGljIHN0cnVjdCBnZnMyX3NiZCAqaW5pdF9zYmQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlnZnMyX3R1bmVfaW5pdCgmc2RwLT5zZF90dW5lKTsKIAogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnNkcC0+c2RfZ2xvY2tfd2FpdCk7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmc2RwLT5zZF9hc3luY19nbG9ja193YWl0KTsKIAlhdG9taWNfc2V0KCZzZHAtPnNkX2dsb2NrX2Rpc3Bvc2FsLCAwKTsKIAlpbml0X2NvbXBsZXRpb24oJnNkcC0+c2RfbG9ja2luZ19pbml0KTsKIAlpbml0X2NvbXBsZXRpb24oJnNkcC0+c2Rfd2RhY2spOwpAQCAtMTAzMCwxNiArMTAzMiwxNyBAQCB2b2lkIGdmczJfb25saW5lX3VldmVudChzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCkKIH0KIAogLyoqCi0gKiBmaWxsX3N1cGVyIC0gUmVhZCBpbiBzdXBlcmJsb2NrCisgKiBnZnMyX2ZpbGxfc3VwZXIgLSBSZWFkIGluIHN1cGVyYmxvY2sKICAqIEBzYjogVGhlIFZGUyBzdXBlcmJsb2NrCi0gKiBAZGF0YTogTW91bnQgb3B0aW9ucworICogQGFyZ3M6IE1vdW50IG9wdGlvbnMKICAqIEBzaWxlbnQ6IERvbid0IGNvbXBsYWluIGlmIGl0J3Mgbm90IGEgR0ZTMiBmaWxlc3lzdGVtCiAgKgotICogUmV0dXJuczogZXJybm8KKyAqIFJldHVybnM6IC1lcnJubwogICovCi0KLXN0YXRpYyBpbnQgZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZ2ZzMl9hcmdzICphcmdzLCBpbnQgc2lsZW50KQorc3RhdGljIGludCBnZnMyX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQogeworCXN0cnVjdCBnZnMyX2FyZ3MgKmFyZ3MgPSBmYy0+ZnNfcHJpdmF0ZTsKKwlpbnQgc2lsZW50ID0gZmMtPnNiX2ZsYWdzICYgU0JfU0lMRU5UOwogCXN0cnVjdCBnZnMyX3NiZCAqc2RwOwogCXN0cnVjdCBnZnMyX2hvbGRlciBtb3VudF9naDsKIAlpbnQgZXJyb3I7CkBAIC0xMjA0LDE2MSArMTIwNyw0MTEgQEAgc3RhdGljIGludCBmaWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBnZnMyX2FyZ3MgKmFyZ3MsIGludCBzaWxlbnQKIAlyZXR1cm4gZXJyb3I7CiB9CiAKLXN0YXRpYyBpbnQgc2V0X2dmczJfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCB2b2lkICpkYXRhKQorLyoqCisgKiBnZnMyX2dldF90cmVlIC0gR2V0IHRoZSBHRlMyIHN1cGVyYmxvY2sgYW5kIHJvb3QgZGlyZWN0b3J5CisgKiBAZmM6IFRoZSBmaWxlc3lzdGVtIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zOiAwIG9yIC1lcnJubyBvbiBlcnJvcgorICovCitzdGF0aWMgaW50IGdmczJfZ2V0X3RyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewotCXMtPnNfYmRldiA9IGRhdGE7Ci0Jcy0+c19kZXYgPSBzLT5zX2JkZXYtPmJkX2RldjsKLQlzLT5zX2JkaSA9IGJkaV9nZXQocy0+c19iZGV2LT5iZF9iZGkpOworCXN0cnVjdCBnZnMyX2FyZ3MgKmFyZ3MgPSBmYy0+ZnNfcHJpdmF0ZTsKKwlzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcDsKKwlpbnQgZXJyb3I7CisKKwllcnJvciA9IGdldF90cmVlX2JkZXYoZmMsIGdmczJfZmlsbF9zdXBlcik7CisJaWYgKGVycm9yKQorCQlyZXR1cm4gZXJyb3I7CisKKwlzZHAgPSBmYy0+cm9vdC0+ZF9zYi0+c19mc19pbmZvOworCWRwdXQoZmMtPnJvb3QpOworCWlmIChhcmdzLT5hcl9tZXRhKQorCQlmYy0+cm9vdCA9IGRnZXQoc2RwLT5zZF9tYXN0ZXJfZGlyKTsKKwllbHNlCisJCWZjLT5yb290ID0gZGdldChzZHAtPnNkX3Jvb3RfZGlyKTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB0ZXN0X2dmczJfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCB2b2lkICpwdHIpCitzdGF0aWMgdm9pZCBnZnMyX2ZjX2ZyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewotCXN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYgPSBwdHI7Ci0JcmV0dXJuIChiZGV2ID09IHMtPnNfYmRldik7CisJc3RydWN0IGdmczJfYXJncyAqYXJncyA9IGZjLT5mc19wcml2YXRlOworCisJa2ZyZWUoYXJncyk7CiB9CiAKLS8qKgotICogZ2ZzMl9tb3VudCAtIEdldCB0aGUgR0ZTMiBzdXBlcmJsb2NrCi0gKiBAZnNfdHlwZTogVGhlIEdGUzIgZmlsZXN5c3RlbSB0eXBlCi0gKiBAZmxhZ3M6IE1vdW50IGZsYWdzCi0gKiBAZGV2X25hbWU6IFRoZSBuYW1lIG9mIHRoZSBkZXZpY2UKLSAqIEBkYXRhOiBUaGUgbW91bnQgYXJndW1lbnRzCi0gKgotICogUS4gV2h5IG5vdCB1c2UgZ2V0X3NiX2JkZXYoKSA/Ci0gKiBBLiBXZSBuZWVkIHRvIHNlbGVjdCBvbmUgb2YgdHdvIHJvb3QgZGlyZWN0b3JpZXMgdG8gbW91bnQsIGluZGVwZW5kZW50Ci0gKiAgICBvZiB3aGV0aGVyIHRoaXMgaXMgdGhlIGluaXRpYWwsIG9yIHN1YnNlcXVlbnQsIG1vdW50IG9mIHRoaXMgc2IKLSAqCi0gKiBSZXR1cm5zOiAwIG9yIC12ZSBvbiBlcnJvcgotICovCitlbnVtIGdmczJfcGFyYW0geworCU9wdF9sb2NrcHJvdG8sCisJT3B0X2xvY2t0YWJsZSwKKwlPcHRfaG9zdGRhdGEsCisJT3B0X3NwZWN0YXRvciwKKwlPcHRfaWdub3JlX2xvY2FsX2ZzLAorCU9wdF9sb2NhbGZsb2NrcywKKwlPcHRfbG9jYWxjYWNoaW5nLAorCU9wdF9kZWJ1ZywKKwlPcHRfdXBncmFkZSwKKwlPcHRfYWNsLAorCU9wdF9xdW90YSwKKwlPcHRfc3VpZGRpciwKKwlPcHRfZGF0YSwKKwlPcHRfbWV0YSwKKwlPcHRfZGlzY2FyZCwKKwlPcHRfY29tbWl0LAorCU9wdF9lcnJvcnMsCisJT3B0X3N0YXRmc19xdWFudHVtLAorCU9wdF9zdGF0ZnNfcGVyY2VudCwKKwlPcHRfcXVvdGFfcXVhbnR1bSwKKwlPcHRfYmFycmllciwKKwlPcHRfcmdycGx2YiwKKwlPcHRfbG9jY29va2llLAorfTsKIAotc3RhdGljIHN0cnVjdCBkZW50cnkgKmdmczJfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsIGludCBmbGFncywKLQkJICAgICAgIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKQorZW51bSBvcHRfcXVvdGEgeworCU9wdF9xdW90YV91bnNldCA9IDAsCisJT3B0X3F1b3RhX29mZiwKKwlPcHRfcXVvdGFfYWNjb3VudCwKKwlPcHRfcXVvdGFfb24sCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG9wdF9xdW90YV92YWx1ZXNbXSA9IHsKKwlbT3B0X3F1b3RhX29mZl0gICAgID0gR0ZTMl9RVU9UQV9PRkYsCisJW09wdF9xdW90YV9hY2NvdW50XSA9IEdGUzJfUVVPVEFfQUNDT1VOVCwKKwlbT3B0X3F1b3RhX29uXSAgICAgID0gR0ZTMl9RVU9UQV9PTiwKK307CisKK2VudW0gb3B0X2RhdGEgeworCU9wdF9kYXRhX3dyaXRlYmFjayA9IEdGUzJfREFUQV9XUklURUJBQ0ssCisJT3B0X2RhdGFfb3JkZXJlZCAgID0gR0ZTMl9EQVRBX09SREVSRUQsCit9OworCitlbnVtIG9wdF9lcnJvcnMgeworCU9wdF9lcnJvcnNfd2l0aGRyYXcgPSBHRlMyX0VSUk9SU19XSVRIRFJBVywKKwlPcHRfZXJyb3JzX3BhbmljICAgID0gR0ZTMl9FUlJPUlNfUEFOSUMsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX3BhcmFtZXRlcl9zcGVjIGdmczJfcGFyYW1fc3BlY3NbXSA9IHsKKwlmc3BhcmFtX3N0cmluZyAoImxvY2twcm90byIsICAgICAgICAgIE9wdF9sb2NrcHJvdG8pLAorCWZzcGFyYW1fc3RyaW5nICgibG9ja3RhYmxlIiwgICAgICAgICAgT3B0X2xvY2t0YWJsZSksCisJZnNwYXJhbV9zdHJpbmcgKCJob3N0ZGF0YSIsICAgICAgICAgICBPcHRfaG9zdGRhdGEpLAorCWZzcGFyYW1fZmxhZyAgICgic3BlY3RhdG9yIiwgICAgICAgICAgT3B0X3NwZWN0YXRvciksCisJZnNwYXJhbV9mbGFnICAgKCJub3JlY292ZXJ5IiwgICAgICAgICBPcHRfc3BlY3RhdG9yKSwKKwlmc3BhcmFtX2ZsYWcgICAoImlnbm9yZV9sb2NhbF9mcyIsICAgIE9wdF9pZ25vcmVfbG9jYWxfZnMpLAorCWZzcGFyYW1fZmxhZyAgICgibG9jYWxmbG9ja3MiLCAgICAgICAgT3B0X2xvY2FsZmxvY2tzKSwKKwlmc3BhcmFtX2ZsYWcgICAoImxvY2FsY2FjaGluZyIsICAgICAgIE9wdF9sb2NhbGNhY2hpbmcpLAorCWZzcGFyYW1fZmxhZ19ubygiZGVidWciLCAgICAgICAgICAgICAgT3B0X2RlYnVnKSwKKwlmc3BhcmFtX2ZsYWcgICAoInVwZ3JhZGUiLCAgICAgICAgICAgIE9wdF91cGdyYWRlKSwKKwlmc3BhcmFtX2ZsYWdfbm8oImFjbCIsICAgICAgICAgICAgICAgIE9wdF9hY2wpLAorCWZzcGFyYW1fZmxhZ19ubygic3VpZGRpciIsICAgICAgICAgICAgT3B0X3N1aWRkaXIpLAorCWZzcGFyYW1fZW51bSAgICgiZGF0YSIsICAgICAgICAgICAgICAgT3B0X2RhdGEpLAorCWZzcGFyYW1fZmxhZyAgICgibWV0YSIsICAgICAgICAgICAgICAgT3B0X21ldGEpLAorCWZzcGFyYW1fZmxhZ19ubygiZGlzY2FyZCIsICAgICAgICAgICAgT3B0X2Rpc2NhcmQpLAorCWZzcGFyYW1fczMyICAgICgiY29tbWl0IiwgICAgICAgICAgICAgT3B0X2NvbW1pdCksCisJZnNwYXJhbV9lbnVtICAgKCJlcnJvcnMiLCAgICAgICAgICAgICBPcHRfZXJyb3JzKSwKKwlmc3BhcmFtX3MzMiAgICAoInN0YXRmc19xdWFudHVtIiwgICAgIE9wdF9zdGF0ZnNfcXVhbnR1bSksCisJZnNwYXJhbV9zMzIgICAgKCJzdGF0ZnNfcGVyY2VudCIsICAgICBPcHRfc3RhdGZzX3BlcmNlbnQpLAorCWZzcGFyYW1fczMyICAgICgicXVvdGFfcXVhbnR1bSIsICAgICAgT3B0X3F1b3RhX3F1YW50dW0pLAorCWZzcGFyYW1fZmxhZ19ubygiYmFycmllciIsICAgICAgICAgICAgT3B0X2JhcnJpZXIpLAorCWZzcGFyYW1fZmxhZ19ubygicmdycGx2YiIsICAgICAgICAgICAgT3B0X3JncnBsdmIpLAorCWZzcGFyYW1fZmxhZ19ubygibG9jY29va2llIiwgICAgICAgICAgT3B0X2xvY2Nvb2tpZSksCisJLyogcXVvdGEgY2FuIGJlIGEgZmxhZyBvciBhbiBlbnVtIHNvIGl0IGdldHMgc3BlY2lhbCB0cmVhdG1lbnQgKi8KKwlfX2ZzcGFyYW0oZnNfcGFyYW1faXNfZW51bSwgInF1b3RhIiwgT3B0X3F1b3RhLCBmc19wYXJhbV9uZWdfd2l0aF9ub3xmc19wYXJhbV92X29wdGlvbmFsKSwKKwl7fQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfZW51bSBnZnMyX3BhcmFtX2VudW1zW10gPSB7CisJeyBPcHRfcXVvdGEsICAgICJvZmYiLCAgICAgICAgT3B0X3F1b3RhX29mZiB9LAorCXsgT3B0X3F1b3RhLCAgICAiYWNjb3VudCIsICAgIE9wdF9xdW90YV9hY2NvdW50IH0sCisJeyBPcHRfcXVvdGEsICAgICJvbiIsICAgICAgICAgT3B0X3F1b3RhX29uIH0sCisJeyBPcHRfZGF0YSwgICAgICJ3cml0ZWJhY2siLCAgT3B0X2RhdGFfd3JpdGViYWNrIH0sCisJeyBPcHRfZGF0YSwgICAgICJvcmRlcmVkIiwgICAgT3B0X2RhdGFfb3JkZXJlZCB9LAorCXsgT3B0X2Vycm9ycywgICAid2l0aGRyYXciLCAgIE9wdF9lcnJvcnNfd2l0aGRyYXcgfSwKKwl7IE9wdF9lcnJvcnMsICAgInBhbmljIiwgICAgICBPcHRfZXJyb3JzX3BhbmljIH0sCisJe30KK307CisKK2NvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfZGVzY3JpcHRpb24gZ2ZzMl9mc19wYXJhbWV0ZXJzID0geworCS5uYW1lID0gImdmczIiLAorCS5zcGVjcyA9IGdmczJfcGFyYW1fc3BlY3MsCisJLmVudW1zID0gZ2ZzMl9wYXJhbV9lbnVtcywKK307CisKKy8qIFBhcnNlIGEgc2luZ2xlIG1vdW50IHBhcmFtZXRlciAqLworc3RhdGljIGludCBnZnMyX3BhcnNlX3BhcmFtKHN0cnVjdCBmc19jb250ZXh0ICpmYywgc3RydWN0IGZzX3BhcmFtZXRlciAqcGFyYW0pCiB7Ci0Jc3RydWN0IGJsb2NrX2RldmljZSAqYmRldjsKLQlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnM7Ci0JZm1vZGVfdCBtb2RlID0gRk1PREVfUkVBRCB8IEZNT0RFX0VYQ0w7Ci0JaW50IGVycm9yOwotCXN0cnVjdCBnZnMyX2FyZ3MgYXJnczsKLQlzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcDsKKwlzdHJ1Y3QgZ2ZzMl9hcmdzICphcmdzID0gZmMtPmZzX3ByaXZhdGU7CisJc3RydWN0IGZzX3BhcnNlX3Jlc3VsdCByZXN1bHQ7CisJaW50IG87CiAKLQlpZiAoIShmbGFncyAmIFNCX1JET05MWSkpCi0JCW1vZGUgfD0gRk1PREVfV1JJVEU7CisJbyA9IGZzX3BhcnNlKGZjLCAmZ2ZzMl9mc19wYXJhbWV0ZXJzLCBwYXJhbSwgJnJlc3VsdCk7CisJaWYgKG8gPCAwKQorCQlyZXR1cm4gbzsKIAotCWJkZXYgPSBibGtkZXZfZ2V0X2J5X3BhdGgoZGV2X25hbWUsIG1vZGUsIGZzX3R5cGUpOwotCWlmIChJU19FUlIoYmRldikpCi0JCXJldHVybiBFUlJfQ0FTVChiZGV2KTsKLQotCS8qCi0JICogb25jZSB0aGUgc3VwZXIgaXMgaW5zZXJ0ZWQgaW50byB0aGUgbGlzdCBieSBzZ2V0LCBzX3Vtb3VudAotCSAqIHdpbGwgcHJvdGVjdCB0aGUgbG9ja2ZzIGNvZGUgZnJvbSB0cnlpbmcgdG8gc3RhcnQgYSBzbmFwc2hvdAotCSAqIHdoaWxlIHdlIGFyZSBtb3VudGluZwotCSAqLwotCW11dGV4X2xvY2soJmJkZXYtPmJkX2ZzZnJlZXplX211dGV4KTsKLQlpZiAoYmRldi0+YmRfZnNmcmVlemVfY291bnQgPiAwKSB7Ci0JCW11dGV4X3VubG9jaygmYmRldi0+YmRfZnNmcmVlemVfbXV0ZXgpOwotCQllcnJvciA9IC1FQlVTWTsKLQkJZ290byBlcnJvcl9iZGV2OworCXN3aXRjaCAobykgeworCWNhc2UgT3B0X2xvY2twcm90bzoKKwkJc3RybGNweShhcmdzLT5hcl9sb2NrcHJvdG8sIHBhcmFtLT5zdHJpbmcsIEdGUzJfTE9DS05BTUVfTEVOKTsKKwkJYnJlYWs7CisJY2FzZSBPcHRfbG9ja3RhYmxlOgorCQlzdHJsY3B5KGFyZ3MtPmFyX2xvY2t0YWJsZSwgcGFyYW0tPnN0cmluZywgR0ZTMl9MT0NLTkFNRV9MRU4pOworCQlicmVhazsKKwljYXNlIE9wdF9ob3N0ZGF0YToKKwkJc3RybGNweShhcmdzLT5hcl9ob3N0ZGF0YSwgcGFyYW0tPnN0cmluZywgR0ZTMl9MT0NLTkFNRV9MRU4pOworCQlicmVhazsKKwljYXNlIE9wdF9zcGVjdGF0b3I6CisJCWFyZ3MtPmFyX3NwZWN0YXRvciA9IDE7CisJCWJyZWFrOworCWNhc2UgT3B0X2lnbm9yZV9sb2NhbF9mczoKKwkJLyogUmV0YWluZWQgZm9yIGJhY2t3YXJkcyBjb21wYXQgb25seSAqLworCQlicmVhazsKKwljYXNlIE9wdF9sb2NhbGZsb2NrczoKKwkJYXJncy0+YXJfbG9jYWxmbG9ja3MgPSAxOworCQlicmVhazsKKwljYXNlIE9wdF9sb2NhbGNhY2hpbmc6CisJCS8qIFJldGFpbmVkIGZvciBiYWNrd2FyZHMgY29tcGF0IG9ubHkgKi8KKwkJYnJlYWs7CisJY2FzZSBPcHRfZGVidWc6CisJCWlmIChyZXN1bHQuYm9vbGVhbiAmJiBhcmdzLT5hcl9lcnJvcnMgPT0gR0ZTMl9FUlJPUlNfUEFOSUMpCisJCQlyZXR1cm4gaW52YWxmKGZjLCAiZ2ZzMjogLW8gZGVidWcgYW5kIC1vIGVycm9ycz1wYW5pYyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIik7CisJCWFyZ3MtPmFyX2RlYnVnID0gcmVzdWx0LmJvb2xlYW47CisJCWJyZWFrOworCWNhc2UgT3B0X3VwZ3JhZGU6CisJCS8qIFJldGFpbmVkIGZvciBiYWNrd2FyZHMgY29tcGF0IG9ubHkgKi8KKwkJYnJlYWs7CisJY2FzZSBPcHRfYWNsOgorCQlhcmdzLT5hcl9wb3NpeF9hY2wgPSByZXN1bHQuYm9vbGVhbjsKKwkJYnJlYWs7CisJY2FzZSBPcHRfcXVvdGE6CisJCS8qIFRoZSBxdW90YSBvcHRpb24gY2FuIGJlIGEgZmxhZyBvciBhbiBlbnVtLiBBIG5vbi16ZXJvIGludF8zMgorCQkgICByZXN1bHQgbWVhbnMgdGhhdCB3ZSBoYXZlIGFuIGVudW0gaW5kZXguIE90aGVyd2lzZSB3ZSBoYXZlCisJCSAgIHRvIHJlbHkgb24gdGhlICduZWdhdGVkJyBmbGFnIHRvIHRlbGwgdXMgd2hldGhlciAncXVvdGEnIG9yCisJCSAgICdub3F1b3RhJyB3YXMgc3BlY2lmaWVkLiAqLworCQlpZiAocmVzdWx0Lm5lZ2F0ZWQpCisJCQlhcmdzLT5hcl9xdW90YSA9IEdGUzJfUVVPVEFfT0ZGOworCQllbHNlIGlmIChyZXN1bHQuaW50XzMyID4gMCkKKwkJCWFyZ3MtPmFyX3F1b3RhID0gb3B0X3F1b3RhX3ZhbHVlc1tyZXN1bHQuaW50XzMyXTsKKwkJZWxzZQorCQkJYXJncy0+YXJfcXVvdGEgPSBHRlMyX1FVT1RBX09OOworCQlicmVhazsKKwljYXNlIE9wdF9zdWlkZGlyOgorCQlhcmdzLT5hcl9zdWlkZGlyID0gcmVzdWx0LmJvb2xlYW47CisJCWJyZWFrOworCWNhc2UgT3B0X2RhdGE6CisJCS8qIFRoZSB1aW50XzMyIHJlc3VsdCBtYXBzIGRpcmVjdGx5IHRvIEdGUzJfREFUQV8qICovCisJCWFyZ3MtPmFyX2RhdGEgPSByZXN1bHQudWludF8zMjsKKwkJYnJlYWs7CisJY2FzZSBPcHRfbWV0YToKKwkJYXJncy0+YXJfbWV0YSA9IDE7CisJCWJyZWFrOworCWNhc2UgT3B0X2Rpc2NhcmQ6CisJCWFyZ3MtPmFyX2Rpc2NhcmQgPSByZXN1bHQuYm9vbGVhbjsKKwkJYnJlYWs7CisJY2FzZSBPcHRfY29tbWl0OgorCQlpZiAocmVzdWx0LmludF8zMiA8PSAwKQorCQkJcmV0dXJuIGludmFsZihmYywgImdmczI6IGNvbW1pdCBtb3VudCBvcHRpb24gcmVxdWlyZXMgYSBwb3NpdGl2ZSBudW1lcmljIGFyZ3VtZW50Iik7CisJCWFyZ3MtPmFyX2NvbW1pdCA9IHJlc3VsdC5pbnRfMzI7CisJCWJyZWFrOworCWNhc2UgT3B0X3N0YXRmc19xdWFudHVtOgorCQlpZiAocmVzdWx0LmludF8zMiA8IDApCisJCQlyZXR1cm4gaW52YWxmKGZjLCAiZ2ZzMjogc3RhdGZzX3F1YW50dW0gbW91bnQgb3B0aW9uIHJlcXVpcmVzIGEgbm9uLW5lZ2F0aXZlIG51bWVyaWMgYXJndW1lbnQiKTsKKwkJYXJncy0+YXJfc3RhdGZzX3F1YW50dW0gPSByZXN1bHQuaW50XzMyOworCQlicmVhazsKKwljYXNlIE9wdF9xdW90YV9xdWFudHVtOgorCQlpZiAocmVzdWx0LmludF8zMiA8PSAwKQorCQkJcmV0dXJuIGludmFsZihmYywgImdmczI6IHF1b3RhX3F1YW50dW0gbW91bnQgb3B0aW9uIHJlcXVpcmVzIGEgcG9zaXRpdmUgbnVtZXJpYyBhcmd1bWVudCIpOworCQlhcmdzLT5hcl9xdW90YV9xdWFudHVtID0gcmVzdWx0LmludF8zMjsKKwkJYnJlYWs7CisJY2FzZSBPcHRfc3RhdGZzX3BlcmNlbnQ6CisJCWlmIChyZXN1bHQuaW50XzMyIDwgMCB8fCByZXN1bHQuaW50XzMyID4gMTAwKQorCQkJcmV0dXJuIGludmFsZihmYywgImdmczI6IHN0YXRmc19wZXJjZW50IG1vdW50IG9wdGlvbiByZXF1aXJlcyBhIG51bWVyaWMgYXJndW1lbnQgYmV0d2VlbiAwIGFuZCAxMDAiKTsKKwkJYXJncy0+YXJfc3RhdGZzX3BlcmNlbnQgPSByZXN1bHQuaW50XzMyOworCQlicmVhazsKKwljYXNlIE9wdF9lcnJvcnM6CisJCWlmIChhcmdzLT5hcl9kZWJ1ZyAmJiByZXN1bHQudWludF8zMiA9PSBHRlMyX0VSUk9SU19QQU5JQykKKwkJCXJldHVybiBpbnZhbGYoZmMsICJnZnMyOiAtbyBkZWJ1ZyBhbmQgLW8gZXJyb3JzPXBhbmljIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiKTsKKwkJYXJncy0+YXJfZXJyb3JzID0gcmVzdWx0LnVpbnRfMzI7CisJCWJyZWFrOworCWNhc2UgT3B0X2JhcnJpZXI6CisJCWFyZ3MtPmFyX25vYmFycmllciA9IHJlc3VsdC5ib29sZWFuOworCQlicmVhazsKKwljYXNlIE9wdF9yZ3JwbHZiOgorCQlhcmdzLT5hcl9yZ3JwbHZiID0gcmVzdWx0LmJvb2xlYW47CisJCWJyZWFrOworCWNhc2UgT3B0X2xvY2Nvb2tpZToKKwkJYXJncy0+YXJfbG9jY29va2llID0gcmVzdWx0LmJvb2xlYW47CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiBpbnZhbGYoZmMsICJnZnMyOiBpbnZhbGlkIG1vdW50IG9wdGlvbjogJXMiLCBwYXJhbS0+a2V5KTsKIAl9Ci0JcyA9IHNnZXQoZnNfdHlwZSwgdGVzdF9nZnMyX3N1cGVyLCBzZXRfZ2ZzMl9zdXBlciwgZmxhZ3MsIGJkZXYpOwotCW11dGV4X3VubG9jaygmYmRldi0+YmRfZnNmcmVlemVfbXV0ZXgpOwotCWVycm9yID0gUFRSX0VSUihzKTsKLQlpZiAoSVNfRVJSKHMpKQotCQlnb3RvIGVycm9yX2JkZXY7CisJcmV0dXJuIDA7Cit9CiAKLQlpZiAocy0+c19yb290KSB7Ci0JCS8qCi0JCSAqIHNfdW1vdW50IG5lc3RzIGluc2lkZSBiZF9tdXRleCBkdXJpbmcKLQkJICogX19pbnZhbGlkYXRlX2RldmljZSgpLiAgYmxrZGV2X3B1dCgpIGFjcXVpcmVzCi0JCSAqIGJkX211dGV4IGFuZCBjYW4ndCBiZSBjYWxsZWQgdW5kZXIgc191bW91bnQuICBEcm9wCi0JCSAqIHNfdW1vdW50IHRlbXBvcmFyaWx5LiAgVGhpcyBpcyBzYWZlIGFzIHdlJ3JlCi0JCSAqIGhvbGRpbmcgYW4gYWN0aXZlIHJlZmVyZW5jZS4KLQkJICovCi0JCXVwX3dyaXRlKCZzLT5zX3Vtb3VudCk7Ci0JCWJsa2Rldl9wdXQoYmRldiwgbW9kZSk7Ci0JCWRvd25fd3JpdGUoJnMtPnNfdW1vdW50KTsKLQl9IGVsc2UgewotCQkvKiBzX21vZGUgbXVzdCBiZSBzZXQgYmVmb3JlIGRlYWN0aXZhdGVfbG9ja2VkX3N1cGVyIGNhbGxzICovCi0JCXMtPnNfbW9kZSA9IG1vZGU7Ci0JfQorc3RhdGljIGludCBnZnMyX3JlY29uZmlndXJlKHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gZmMtPnJvb3QtPmRfc2I7CisJc3RydWN0IGdmczJfc2JkICpzZHAgPSBzYi0+c19mc19pbmZvOworCXN0cnVjdCBnZnMyX2FyZ3MgKm9sZGFyZ3MgPSAmc2RwLT5zZF9hcmdzOworCXN0cnVjdCBnZnMyX2FyZ3MgKm5ld2FyZ3MgPSBmYy0+ZnNfcHJpdmF0ZTsKKwlzdHJ1Y3QgZ2ZzMl90dW5lICpndCA9ICZzZHAtPnNkX3R1bmU7CisJaW50IGVycm9yID0gMDsKIAotCW1lbXNldCgmYXJncywgMCwgc2l6ZW9mKGFyZ3MpKTsKLQlhcmdzLmFyX3F1b3RhID0gR0ZTMl9RVU9UQV9ERUZBVUxUOwotCWFyZ3MuYXJfZGF0YSA9IEdGUzJfREFUQV9ERUZBVUxUOwotCWFyZ3MuYXJfY29tbWl0ID0gMzA7Ci0JYXJncy5hcl9zdGF0ZnNfcXVhbnR1bSA9IDMwOwotCWFyZ3MuYXJfcXVvdGFfcXVhbnR1bSA9IDYwOwotCWFyZ3MuYXJfZXJyb3JzID0gR0ZTMl9FUlJPUlNfREVGQVVMVDsKKwlzeW5jX2ZpbGVzeXN0ZW0oc2IpOwogCi0JZXJyb3IgPSBnZnMyX21vdW50X2FyZ3MoJmFyZ3MsIGRhdGEpOwotCWlmIChlcnJvcikgewotCQlwcl93YXJuKCJjYW4ndCBwYXJzZSBtb3VudCBhcmd1bWVudHNcbiIpOwotCQlnb3RvIGVycm9yX3N1cGVyOwotCX0KLQotCWlmIChzLT5zX3Jvb3QpIHsKLQkJZXJyb3IgPSAtRUJVU1k7Ci0JCWlmICgoZmxhZ3MgXiBzLT5zX2ZsYWdzKSAmIFNCX1JET05MWSkKLQkJCWdvdG8gZXJyb3Jfc3VwZXI7Ci0JfSBlbHNlIHsKLQkJc25wcmludGYocy0+c19pZCwgc2l6ZW9mKHMtPnNfaWQpLCAiJXBnIiwgYmRldik7Ci0JCXNiX3NldF9ibG9ja3NpemUocywgYmxvY2tfc2l6ZShiZGV2KSk7Ci0JCWVycm9yID0gZmlsbF9zdXBlcihzLCAmYXJncywgZmxhZ3MgJiBTQl9TSUxFTlQgPyAxIDogMCk7Ci0JCWlmIChlcnJvcikKLQkJCWdvdG8gZXJyb3Jfc3VwZXI7Ci0JCXMtPnNfZmxhZ3MgfD0gU0JfQUNUSVZFOwotCQliZGV2LT5iZF9zdXBlciA9IHM7Ci0JfQotCi0Jc2RwID0gcy0+c19mc19pbmZvOwotCWlmIChhcmdzLmFyX21ldGEpCi0JCXJldHVybiBkZ2V0KHNkcC0+c2RfbWFzdGVyX2Rpcik7CisJc3Bpbl9sb2NrKCZndC0+Z3Rfc3Bpbik7CisJb2xkYXJncy0+YXJfY29tbWl0ID0gZ3QtPmd0X2xvZ2Rfc2VjczsKKwlvbGRhcmdzLT5hcl9xdW90YV9xdWFudHVtID0gZ3QtPmd0X3F1b3RhX3F1YW50dW07CisJaWYgKGd0LT5ndF9zdGF0ZnNfc2xvdykKKwkJb2xkYXJncy0+YXJfc3RhdGZzX3F1YW50dW0gPSAwOwogCWVsc2UKLQkJcmV0dXJuIGRnZXQoc2RwLT5zZF9yb290X2Rpcik7CisJCW9sZGFyZ3MtPmFyX3N0YXRmc19xdWFudHVtID0gZ3QtPmd0X3N0YXRmc19xdWFudHVtOworCXNwaW5fdW5sb2NrKCZndC0+Z3Rfc3Bpbik7CiAKLWVycm9yX3N1cGVyOgotCWRlYWN0aXZhdGVfbG9ja2VkX3N1cGVyKHMpOwotCXJldHVybiBFUlJfUFRSKGVycm9yKTsKLWVycm9yX2JkZXY6Ci0JYmxrZGV2X3B1dChiZGV2LCBtb2RlKTsKLQlyZXR1cm4gRVJSX1BUUihlcnJvcik7CisJaWYgKHN0cmNtcChuZXdhcmdzLT5hcl9sb2NrcHJvdG8sIG9sZGFyZ3MtPmFyX2xvY2twcm90bykpIHsKKwkJZXJyb3JmKGZjLCAiZ2ZzMjogcmVjb25maWd1cmF0aW9uIG9mIGxvY2tpbmcgcHJvdG9jb2wgbm90IGFsbG93ZWQiKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlmIChzdHJjbXAobmV3YXJncy0+YXJfbG9ja3RhYmxlLCBvbGRhcmdzLT5hcl9sb2NrdGFibGUpKSB7CisJCWVycm9yZihmYywgImdmczI6IHJlY29uZmlndXJhdGlvbiBvZiBsb2NrIHRhYmxlIG5vdCBhbGxvd2VkIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlpZiAoc3RyY21wKG5ld2FyZ3MtPmFyX2hvc3RkYXRhLCBvbGRhcmdzLT5hcl9ob3N0ZGF0YSkpIHsKKwkJZXJyb3JmKGZjLCAiZ2ZzMjogcmVjb25maWd1cmF0aW9uIG9mIGhvc3QgZGF0YSBub3QgYWxsb3dlZCIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKG5ld2FyZ3MtPmFyX3NwZWN0YXRvciAhPSBvbGRhcmdzLT5hcl9zcGVjdGF0b3IpIHsKKwkJZXJyb3JmKGZjLCAiZ2ZzMjogcmVjb25maWd1cmF0aW9uIG9mIHNwZWN0YXRvciBtb2RlIG5vdCBhbGxvd2VkIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlpZiAobmV3YXJncy0+YXJfbG9jYWxmbG9ja3MgIT0gb2xkYXJncy0+YXJfbG9jYWxmbG9ja3MpIHsKKwkJZXJyb3JmKGZjLCAiZ2ZzMjogcmVjb25maWd1cmF0aW9uIG9mIGxvY2FsZmxvY2tzIG5vdCBhbGxvd2VkIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlpZiAobmV3YXJncy0+YXJfbWV0YSAhPSBvbGRhcmdzLT5hcl9tZXRhKSB7CisJCWVycm9yZihmYywgImdmczI6IHN3aXRjaGluZyBiZXR3ZWVuIGdmczIgYW5kIGdmczJtZXRhIG5vdCBhbGxvd2VkIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlpZiAob2xkYXJncy0+YXJfc3BlY3RhdG9yKQorCQlmYy0+c2JfZmxhZ3MgfD0gU0JfUkRPTkxZOworCisJaWYgKChzYi0+c19mbGFncyBeIGZjLT5zYl9mbGFncykgJiBTQl9SRE9OTFkpIHsKKwkJaWYgKGZjLT5zYl9mbGFncyAmIFNCX1JET05MWSkgeworCQkJZXJyb3IgPSBnZnMyX21ha2VfZnNfcm8oc2RwKTsKKwkJCWlmIChlcnJvcikKKwkJCQllcnJvcmYoZmMsICJnZnMyOiB1bmFibGUgdG8gcmVtb3VudCByZWFkLW9ubHkiKTsKKwkJfSBlbHNlIHsKKwkJCWVycm9yID0gZ2ZzMl9tYWtlX2ZzX3J3KHNkcCk7CisJCQlpZiAoZXJyb3IpCisJCQkJZXJyb3JmKGZjLCAiZ2ZzMjogdW5hYmxlIHRvIHJlbW91bnQgcmVhZC13cml0ZSIpOworCQl9CisJfQorCXNkcC0+c2RfYXJncyA9ICpuZXdhcmdzOworCisJaWYgKHNkcC0+c2RfYXJncy5hcl9wb3NpeF9hY2wpCisJCXNiLT5zX2ZsYWdzIHw9IFNCX1BPU0lYQUNMOworCWVsc2UKKwkJc2ItPnNfZmxhZ3MgJj0gflNCX1BPU0lYQUNMOworCWlmIChzZHAtPnNkX2FyZ3MuYXJfbm9iYXJyaWVyKQorCQlzZXRfYml0KFNERl9OT0JBUlJJRVJTLCAmc2RwLT5zZF9mbGFncyk7CisJZWxzZQorCQljbGVhcl9iaXQoU0RGX05PQkFSUklFUlMsICZzZHAtPnNkX2ZsYWdzKTsKKwlzcGluX2xvY2soJmd0LT5ndF9zcGluKTsKKwlndC0+Z3RfbG9nZF9zZWNzID0gbmV3YXJncy0+YXJfY29tbWl0OworCWd0LT5ndF9xdW90YV9xdWFudHVtID0gbmV3YXJncy0+YXJfcXVvdGFfcXVhbnR1bTsKKwlpZiAobmV3YXJncy0+YXJfc3RhdGZzX3F1YW50dW0pIHsKKwkJZ3QtPmd0X3N0YXRmc19zbG93ID0gMDsKKwkJZ3QtPmd0X3N0YXRmc19xdWFudHVtID0gbmV3YXJncy0+YXJfc3RhdGZzX3F1YW50dW07CisJfQorCWVsc2UgeworCQlndC0+Z3Rfc3RhdGZzX3Nsb3cgPSAxOworCQlndC0+Z3Rfc3RhdGZzX3F1YW50dW0gPSAzMDsKKwl9CisJc3Bpbl91bmxvY2soJmd0LT5ndF9zcGluKTsKKworCWdmczJfb25saW5lX3VldmVudChzZHApOworCXJldHVybiBlcnJvcjsKIH0KIAotc3RhdGljIGludCBzZXRfbWV0YV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKnB0cikKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnNfY29udGV4dF9vcGVyYXRpb25zIGdmczJfY29udGV4dF9vcHMgPSB7CisJLmZyZWUgICAgICAgID0gZ2ZzMl9mY19mcmVlLAorCS5wYXJzZV9wYXJhbSA9IGdmczJfcGFyc2VfcGFyYW0sCisJLmdldF90cmVlICAgID0gZ2ZzMl9nZXRfdHJlZSwKKwkucmVjb25maWd1cmUgPSBnZnMyX3JlY29uZmlndXJlLAorfTsKKworLyogU2V0IHVwIHRoZSBmaWxlc3lzdGVtIG1vdW50IGNvbnRleHQgKi8KK3N0YXRpYyBpbnQgZ2ZzMl9pbml0X2ZzX2NvbnRleHQoc3RydWN0IGZzX2NvbnRleHQgKmZjKQoreworCXN0cnVjdCBnZnMyX2FyZ3MgKmFyZ3M7CisKKwlhcmdzID0ga3phbGxvYyhzaXplb2YoKmFyZ3MpLCBHRlBfS0VSTkVMKTsKKwlpZiAoYXJncyA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWFyZ3MtPmFyX3F1b3RhID0gR0ZTMl9RVU9UQV9ERUZBVUxUOworCWFyZ3MtPmFyX2RhdGEgPSBHRlMyX0RBVEFfREVGQVVMVDsKKwlhcmdzLT5hcl9jb21taXQgPSAzMDsKKwlhcmdzLT5hcl9zdGF0ZnNfcXVhbnR1bSA9IDMwOworCWFyZ3MtPmFyX3F1b3RhX3F1YW50dW0gPSA2MDsKKwlhcmdzLT5hcl9lcnJvcnMgPSBHRlMyX0VSUk9SU19ERUZBVUxUOworCisJZmMtPmZzX3ByaXZhdGUgPSBhcmdzOworCWZjLT5vcHMgPSAmZ2ZzMl9jb250ZXh0X29wczsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZXRfbWV0YV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAotc3RhdGljIHN0cnVjdCBkZW50cnkgKmdmczJfbW91bnRfbWV0YShzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKLQkJCWludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IHRlc3RfbWV0YV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlyZXR1cm4gKGZjLT5zZ2V0X2tleSA9PSBzLT5zX2JkZXYpOworfQorCitzdGF0aWMgaW50IGdmczJfbWV0YV9nZXRfdHJlZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7CiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzOwogCXN0cnVjdCBnZnMyX3NiZCAqc2RwOwogCXN0cnVjdCBwYXRoIHBhdGg7CiAJaW50IGVycm9yOwogCi0JaWYgKCFkZXZfbmFtZSB8fCAhKmRldl9uYW1lKQotCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwlpZiAoIWZjLT5zb3VyY2UgfHwgISpmYy0+c291cmNlKQorCQlyZXR1cm4gLUVJTlZBTDsKIAotCWVycm9yID0ga2Vybl9wYXRoKGRldl9uYW1lLCBMT09LVVBfRk9MTE9XLCAmcGF0aCk7CisJZXJyb3IgPSBrZXJuX3BhdGgoZmMtPnNvdXJjZSwgTE9PS1VQX0ZPTExPVywgJnBhdGgpOwogCWlmIChlcnJvcikgewogCQlwcl93YXJuKCJwYXRoX2xvb2t1cCBvbiAlcyByZXR1cm5lZCBlcnJvciAlZFxuIiwKLQkJCWRldl9uYW1lLCBlcnJvcik7Ci0JCXJldHVybiBFUlJfUFRSKGVycm9yKTsKKwkJICAgICAgICBmYy0+c291cmNlLCBlcnJvcik7CisJCXJldHVybiBlcnJvcjsKIAl9Ci0JcyA9IHNnZXQoJmdmczJfZnNfdHlwZSwgdGVzdF9nZnMyX3N1cGVyLCBzZXRfbWV0YV9zdXBlciwgZmxhZ3MsCi0JCSBwYXRoLmRlbnRyeS0+ZF9zYi0+c19iZGV2KTsKKwlmYy0+ZnNfdHlwZSA9ICZnZnMyX2ZzX3R5cGU7CisJZmMtPnNnZXRfa2V5ID0gcGF0aC5kZW50cnktPmRfc2ItPnNfYmRldjsKKwlzID0gc2dldF9mYyhmYywgdGVzdF9tZXRhX3N1cGVyLCBzZXRfbWV0YV9zdXBlcik7CiAJcGF0aF9wdXQoJnBhdGgpOwogCWlmIChJU19FUlIocykpIHsKIAkJcHJfd2FybigiZ2ZzMiBtb3VudCBkb2VzIG5vdCBleGlzdFxuIik7Ci0JCXJldHVybiBFUlJfQ0FTVChzKTsKKwkJcmV0dXJuIFBUUl9FUlIocyk7CiAJfQotCWlmICgoZmxhZ3MgXiBzLT5zX2ZsYWdzKSAmIFNCX1JET05MWSkgeworCWlmICgoZmMtPnNiX2ZsYWdzIF4gcy0+c19mbGFncykgJiBTQl9SRE9OTFkpIHsKIAkJZGVhY3RpdmF0ZV9sb2NrZWRfc3VwZXIocyk7Ci0JCXJldHVybiBFUlJfUFRSKC1FQlVTWSk7CisJCXJldHVybiAtRUJVU1k7CiAJfQogCXNkcCA9IHMtPnNfZnNfaW5mbzsKLQlyZXR1cm4gZGdldChzZHAtPnNkX21hc3Rlcl9kaXIpOworCWZjLT5yb290ID0gZGdldChzZHAtPnNkX21hc3Rlcl9kaXIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX2NvbnRleHRfb3BlcmF0aW9ucyBnZnMyX21ldGFfY29udGV4dF9vcHMgPSB7CisJLmdldF90cmVlICAgID0gZ2ZzMl9tZXRhX2dldF90cmVlLAorfTsKKworc3RhdGljIGludCBnZnMyX21ldGFfaW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlpbnQgcmV0ID0gZ2ZzMl9pbml0X2ZzX2NvbnRleHQoZmMpOworCisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWZjLT5vcHMgPSAmZ2ZzMl9tZXRhX2NvbnRleHRfb3BzOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBnZnMyX2tpbGxfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTEzODIsNyArMTYzNSw4IEBAIHN0YXRpYyB2b2lkIGdmczJfa2lsbF9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgZ2ZzMl9mc190eXBlID0gewogCS5uYW1lID0gImdmczIiLAogCS5mc19mbGFncyA9IEZTX1JFUVVJUkVTX0RFViwKLQkubW91bnQgPSBnZnMyX21vdW50LAorCS5pbml0X2ZzX2NvbnRleHQgPSBnZnMyX2luaXRfZnNfY29udGV4dCwKKwkucGFyYW1ldGVycyA9ICZnZnMyX2ZzX3BhcmFtZXRlcnMsCiAJLmtpbGxfc2IgPSBnZnMyX2tpbGxfc2IsCiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiB9OwpAQCAtMTM5MSw3ICsxNjQ1LDcgQEAgTU9EVUxFX0FMSUFTX0ZTKCJnZnMyIik7CiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBnZnMybWV0YV9mc190eXBlID0gewogCS5uYW1lID0gImdmczJtZXRhIiwKIAkuZnNfZmxhZ3MgPSBGU19SRVFVSVJFU19ERVYsCi0JLm1vdW50ID0gZ2ZzMl9tb3VudF9tZXRhLAorCS5pbml0X2ZzX2NvbnRleHQgPSBnZnMyX21ldGFfaW5pdF9mc19jb250ZXh0LAogCS5vd25lciA9IFRISVNfTU9EVUxFLAogfTsKIE1PRFVMRV9BTElBU19GUygiZ2ZzMm1ldGEiKTsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvcXVvdGEuYyBiL2ZzL2dmczIvcXVvdGEuYwppbmRleCA2OWM0Yjc3Li43YzAxNmEwIDEwMDY0NAotLS0gYS9mcy9nZnMyL3F1b3RhLmMKKysrIGIvZnMvZ2ZzMi9xdW90YS5jCkBAIC03NzQsNyArNzc0LDcgQEAgc3RhdGljIGludCBnZnMyX3dyaXRlX2Rpc2tfcXVvdGEoc3RydWN0IGdmczJfaW5vZGUgKmlwLCBzdHJ1Y3QgZ2ZzMl9xdW90YSAqcXAsCiAJbmJ5dGVzID0gc2l6ZW9mKHN0cnVjdCBnZnMyX3F1b3RhKTsKIAogCXBnX2JlZyA9IGxvYyA+PiBQQUdFX1NISUZUOwotCXBnX29mZiA9IGxvYyAlIFBBR0VfU0laRTsKKwlwZ19vZmYgPSBvZmZzZXRfaW5fcGFnZShsb2MpOwogCiAJLyogSWYgdGhlIHF1b3RhIHN0cmFkZGxlcyBhIHBhZ2UgYm91bmRhcnksIHNwbGl0IHRoZSB3cml0ZSBpbiB0d28gKi8KIAlpZiAoKHBnX29mZiArIG5ieXRlcykgPiBQQUdFX1NJWkUpIHsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvcmdycC5jIGIvZnMvZ2ZzMi9yZ3JwLmMKaW5kZXggNDlhYzBhNS4uMjQ2NmJiNCAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9yZ3JwLmMKKysrIGIvZnMvZ2ZzMi9yZ3JwLmMKQEAgLTIyODUsNyArMjI4NSw3IEBAIHZvaWQgZ2ZzMl9yZ3JwX2R1bXAoc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCBnZnMyX2dsb2NrICpnbCwKIHN0YXRpYyB2b2lkIGdmczJfcmdycF9lcnJvcihzdHJ1Y3QgZ2ZzMl9yZ3JwZCAqcmdkKQogewogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gcmdkLT5yZF9zYmQ7Ci0JY2hhciBmc19pZF9idWZbR0ZTMl9GU05BTUVfTEVOICsgMyAqIHNpemVvZihpbnQpICsgMl07CisJY2hhciBmc19pZF9idWZbc2l6ZW9mKHNkcC0+c2RfZnNuYW1lKSArIDddOwogCiAJZnNfd2FybihzZHAsICJyZ3JwICVsbHUgaGFzIGFuIGVycm9yLCBtYXJraW5nIGl0IHJlYWRvbmx5IHVudGlsIHVtb3VudFxuIiwKIAkJKHVuc2lnbmVkIGxvbmcgbG9uZylyZ2QtPnJkX2FkZHIpOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9zdXBlci5jIGIvZnMvZ2ZzMi9zdXBlci5jCmluZGV4IDBhY2M1ODMuLjVmYTFlZWMgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvc3VwZXIuYworKysgYi9mcy9nZnMyL3N1cGVyLmMKQEAgLTQ0LDI1OCArNDQsNiBAQAogI2luY2x1ZGUgInhhdHRyLmgiCiAjaW5jbHVkZSAibG9wcy5oIgogCi0jZGVmaW5lIGFyZ3NfbmVxKGExLCBhMiwgeCkgKChhMSktPmFyXyMjeCAhPSAoYTIpLT5hcl8jI3gpCi0KLWVudW0gewotCU9wdF9sb2NrcHJvdG8sCi0JT3B0X2xvY2t0YWJsZSwKLQlPcHRfaG9zdGRhdGEsCi0JT3B0X3NwZWN0YXRvciwKLQlPcHRfaWdub3JlX2xvY2FsX2ZzLAotCU9wdF9sb2NhbGZsb2NrcywKLQlPcHRfbG9jYWxjYWNoaW5nLAotCU9wdF9kZWJ1ZywKLQlPcHRfbm9kZWJ1ZywKLQlPcHRfdXBncmFkZSwKLQlPcHRfYWNsLAotCU9wdF9ub2FjbCwKLQlPcHRfcXVvdGFfb2ZmLAotCU9wdF9xdW90YV9hY2NvdW50LAotCU9wdF9xdW90YV9vbiwKLQlPcHRfcXVvdGEsCi0JT3B0X25vcXVvdGEsCi0JT3B0X3N1aWRkaXIsCi0JT3B0X25vc3VpZGRpciwKLQlPcHRfZGF0YV93cml0ZWJhY2ssCi0JT3B0X2RhdGFfb3JkZXJlZCwKLQlPcHRfbWV0YSwKLQlPcHRfZGlzY2FyZCwKLQlPcHRfbm9kaXNjYXJkLAotCU9wdF9jb21taXQsCi0JT3B0X2Vycl93aXRoZHJhdywKLQlPcHRfZXJyX3BhbmljLAotCU9wdF9zdGF0ZnNfcXVhbnR1bSwKLQlPcHRfc3RhdGZzX3BlcmNlbnQsCi0JT3B0X3F1b3RhX3F1YW50dW0sCi0JT3B0X2JhcnJpZXIsCi0JT3B0X25vYmFycmllciwKLQlPcHRfcmdycGx2YiwKLQlPcHRfbm9yZ3JwbHZiLAotCU9wdF9sb2Njb29raWUsCi0JT3B0X25vbG9jY29va2llLAotCU9wdF9lcnJvciwKLX07Ci0KLXN0YXRpYyBjb25zdCBtYXRjaF90YWJsZV90IHRva2VucyA9IHsKLQl7T3B0X2xvY2twcm90bywgImxvY2twcm90bz0lcyJ9LAotCXtPcHRfbG9ja3RhYmxlLCAibG9ja3RhYmxlPSVzIn0sCi0Je09wdF9ob3N0ZGF0YSwgImhvc3RkYXRhPSVzIn0sCi0Je09wdF9zcGVjdGF0b3IsICJzcGVjdGF0b3IifSwKLQl7T3B0X3NwZWN0YXRvciwgIm5vcmVjb3ZlcnkifSwKLQl7T3B0X2lnbm9yZV9sb2NhbF9mcywgImlnbm9yZV9sb2NhbF9mcyJ9LAotCXtPcHRfbG9jYWxmbG9ja3MsICJsb2NhbGZsb2NrcyJ9LAotCXtPcHRfbG9jYWxjYWNoaW5nLCAibG9jYWxjYWNoaW5nIn0sCi0Je09wdF9kZWJ1ZywgImRlYnVnIn0sCi0Je09wdF9ub2RlYnVnLCAibm9kZWJ1ZyJ9LAotCXtPcHRfdXBncmFkZSwgInVwZ3JhZGUifSwKLQl7T3B0X2FjbCwgImFjbCJ9LAotCXtPcHRfbm9hY2wsICJub2FjbCJ9LAotCXtPcHRfcXVvdGFfb2ZmLCAicXVvdGE9b2ZmIn0sCi0Je09wdF9xdW90YV9hY2NvdW50LCAicXVvdGE9YWNjb3VudCJ9LAotCXtPcHRfcXVvdGFfb24sICJxdW90YT1vbiJ9LAotCXtPcHRfcXVvdGEsICJxdW90YSJ9LAotCXtPcHRfbm9xdW90YSwgIm5vcXVvdGEifSwKLQl7T3B0X3N1aWRkaXIsICJzdWlkZGlyIn0sCi0Je09wdF9ub3N1aWRkaXIsICJub3N1aWRkaXIifSwKLQl7T3B0X2RhdGFfd3JpdGViYWNrLCAiZGF0YT13cml0ZWJhY2sifSwKLQl7T3B0X2RhdGFfb3JkZXJlZCwgImRhdGE9b3JkZXJlZCJ9LAotCXtPcHRfbWV0YSwgIm1ldGEifSwKLQl7T3B0X2Rpc2NhcmQsICJkaXNjYXJkIn0sCi0Je09wdF9ub2Rpc2NhcmQsICJub2Rpc2NhcmQifSwKLQl7T3B0X2NvbW1pdCwgImNvbW1pdD0lZCJ9LAotCXtPcHRfZXJyX3dpdGhkcmF3LCAiZXJyb3JzPXdpdGhkcmF3In0sCi0Je09wdF9lcnJfcGFuaWMsICJlcnJvcnM9cGFuaWMifSwKLQl7T3B0X3N0YXRmc19xdWFudHVtLCAic3RhdGZzX3F1YW50dW09JWQifSwKLQl7T3B0X3N0YXRmc19wZXJjZW50LCAic3RhdGZzX3BlcmNlbnQ9JWQifSwKLQl7T3B0X3F1b3RhX3F1YW50dW0sICJxdW90YV9xdWFudHVtPSVkIn0sCi0Je09wdF9iYXJyaWVyLCAiYmFycmllciJ9LAotCXtPcHRfbm9iYXJyaWVyLCAibm9iYXJyaWVyIn0sCi0Je09wdF9yZ3JwbHZiLCAicmdycGx2YiJ9LAotCXtPcHRfbm9yZ3JwbHZiLCAibm9yZ3JwbHZiIn0sCi0Je09wdF9sb2Njb29raWUsICJsb2Njb29raWUifSwKLQl7T3B0X25vbG9jY29va2llLCAibm9sb2Njb29raWUifSwKLQl7T3B0X2Vycm9yLCBOVUxMfQotfTsKLQotLyoqCi0gKiBnZnMyX21vdW50X2FyZ3MgLSBQYXJzZSBtb3VudCBvcHRpb25zCi0gKiBAYXJnczogVGhlIHN0cnVjdHVyZSBpbnRvIHdoaWNoIHRoZSBwYXJzZWQgb3B0aW9ucyB3aWxsIGJlIHdyaXR0ZW4KLSAqIEBvcHRpb25zOiBUaGUgb3B0aW9ucyB0byBwYXJzZQotICoKLSAqIFJldHVybjogZXJybm8KLSAqLwotCi1pbnQgZ2ZzMl9tb3VudF9hcmdzKHN0cnVjdCBnZnMyX2FyZ3MgKmFyZ3MsIGNoYXIgKm9wdGlvbnMpCi17Ci0JY2hhciAqbzsKLQlpbnQgdG9rZW47Ci0Jc3Vic3RyaW5nX3QgdG1wW01BWF9PUFRfQVJHU107Ci0JaW50IHJ2OwotCi0JLyogU3BsaXQgdGhlIG9wdGlvbnMgaW50byB0b2tlbnMgd2l0aCB0aGUgIiwiIGNoYXJhY3RlciBhbmQKLQkgICBwcm9jZXNzIHRoZW0gKi8KLQotCXdoaWxlICgxKSB7Ci0JCW8gPSBzdHJzZXAoJm9wdGlvbnMsICIsIik7Ci0JCWlmIChvID09IE5VTEwpCi0JCQlicmVhazsKLQkJaWYgKCpvID09ICdcMCcpCi0JCQljb250aW51ZTsKLQotCQl0b2tlbiA9IG1hdGNoX3Rva2VuKG8sIHRva2VucywgdG1wKTsKLQkJc3dpdGNoICh0b2tlbikgewotCQljYXNlIE9wdF9sb2NrcHJvdG86Ci0JCQltYXRjaF9zdHJsY3B5KGFyZ3MtPmFyX2xvY2twcm90bywgJnRtcFswXSwKLQkJCQkgICAgICBHRlMyX0xPQ0tOQU1FX0xFTik7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfbG9ja3RhYmxlOgotCQkJbWF0Y2hfc3RybGNweShhcmdzLT5hcl9sb2NrdGFibGUsICZ0bXBbMF0sCi0JCQkJICAgICAgR0ZTMl9MT0NLTkFNRV9MRU4pOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X2hvc3RkYXRhOgotCQkJbWF0Y2hfc3RybGNweShhcmdzLT5hcl9ob3N0ZGF0YSwgJnRtcFswXSwKLQkJCQkgICAgICBHRlMyX0xPQ0tOQU1FX0xFTik7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfc3BlY3RhdG9yOgotCQkJYXJncy0+YXJfc3BlY3RhdG9yID0gMTsKLQkJCWJyZWFrOwotCQljYXNlIE9wdF9pZ25vcmVfbG9jYWxfZnM6Ci0JCQkvKiBSZXRhaW5lZCBmb3IgYmFja3dhcmRzIGNvbXBhdCBvbmx5ICovCi0JCQlicmVhazsKLQkJY2FzZSBPcHRfbG9jYWxmbG9ja3M6Ci0JCQlhcmdzLT5hcl9sb2NhbGZsb2NrcyA9IDE7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfbG9jYWxjYWNoaW5nOgotCQkJLyogUmV0YWluZWQgZm9yIGJhY2t3YXJkcyBjb21wYXQgb25seSAqLwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X2RlYnVnOgotCQkJaWYgKGFyZ3MtPmFyX2Vycm9ycyA9PSBHRlMyX0VSUk9SU19QQU5JQykgewotCQkJCXByX3dhcm4oIi1vIGRlYnVnIGFuZCAtbyBlcnJvcnM9cGFuaWMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZVxuIik7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0JCQlhcmdzLT5hcl9kZWJ1ZyA9IDE7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfbm9kZWJ1ZzoKLQkJCWFyZ3MtPmFyX2RlYnVnID0gMDsKLQkJCWJyZWFrOwotCQljYXNlIE9wdF91cGdyYWRlOgotCQkJLyogUmV0YWluZWQgZm9yIGJhY2t3YXJkcyBjb21wYXQgb25seSAqLwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X2FjbDoKLQkJCWFyZ3MtPmFyX3Bvc2l4X2FjbCA9IDE7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfbm9hY2w6Ci0JCQlhcmdzLT5hcl9wb3NpeF9hY2wgPSAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X3F1b3RhX29mZjoKLQkJY2FzZSBPcHRfbm9xdW90YToKLQkJCWFyZ3MtPmFyX3F1b3RhID0gR0ZTMl9RVU9UQV9PRkY7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfcXVvdGFfYWNjb3VudDoKLQkJCWFyZ3MtPmFyX3F1b3RhID0gR0ZTMl9RVU9UQV9BQ0NPVU5UOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X3F1b3RhX29uOgotCQljYXNlIE9wdF9xdW90YToKLQkJCWFyZ3MtPmFyX3F1b3RhID0gR0ZTMl9RVU9UQV9PTjsKLQkJCWJyZWFrOwotCQljYXNlIE9wdF9zdWlkZGlyOgotCQkJYXJncy0+YXJfc3VpZGRpciA9IDE7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfbm9zdWlkZGlyOgotCQkJYXJncy0+YXJfc3VpZGRpciA9IDA7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfZGF0YV93cml0ZWJhY2s6Ci0JCQlhcmdzLT5hcl9kYXRhID0gR0ZTMl9EQVRBX1dSSVRFQkFDSzsKLQkJCWJyZWFrOwotCQljYXNlIE9wdF9kYXRhX29yZGVyZWQ6Ci0JCQlhcmdzLT5hcl9kYXRhID0gR0ZTMl9EQVRBX09SREVSRUQ7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfbWV0YToKLQkJCWFyZ3MtPmFyX21ldGEgPSAxOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X2Rpc2NhcmQ6Ci0JCQlhcmdzLT5hcl9kaXNjYXJkID0gMTsKLQkJCWJyZWFrOwotCQljYXNlIE9wdF9ub2Rpc2NhcmQ6Ci0JCQlhcmdzLT5hcl9kaXNjYXJkID0gMDsKLQkJCWJyZWFrOwotCQljYXNlIE9wdF9jb21taXQ6Ci0JCQlydiA9IG1hdGNoX2ludCgmdG1wWzBdLCAmYXJncy0+YXJfY29tbWl0KTsKLQkJCWlmIChydiB8fCBhcmdzLT5hcl9jb21taXQgPD0gMCkgewotCQkJCXByX3dhcm4oImNvbW1pdCBtb3VudCBvcHRpb24gcmVxdWlyZXMgYSBwb3NpdGl2ZSBudW1lcmljIGFyZ3VtZW50XG4iKTsKLQkJCQlyZXR1cm4gcnYgPyBydiA6IC1FSU5WQUw7Ci0JCQl9Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfc3RhdGZzX3F1YW50dW06Ci0JCQlydiA9IG1hdGNoX2ludCgmdG1wWzBdLCAmYXJncy0+YXJfc3RhdGZzX3F1YW50dW0pOwotCQkJaWYgKHJ2IHx8IGFyZ3MtPmFyX3N0YXRmc19xdWFudHVtIDwgMCkgewotCQkJCXByX3dhcm4oInN0YXRmc19xdWFudHVtIG1vdW50IG9wdGlvbiByZXF1aXJlcyBhIG5vbi1uZWdhdGl2ZSBudW1lcmljIGFyZ3VtZW50XG4iKTsKLQkJCQlyZXR1cm4gcnYgPyBydiA6IC1FSU5WQUw7Ci0JCQl9Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfcXVvdGFfcXVhbnR1bToKLQkJCXJ2ID0gbWF0Y2hfaW50KCZ0bXBbMF0sICZhcmdzLT5hcl9xdW90YV9xdWFudHVtKTsKLQkJCWlmIChydiB8fCBhcmdzLT5hcl9xdW90YV9xdWFudHVtIDw9IDApIHsKLQkJCQlwcl93YXJuKCJxdW90YV9xdWFudHVtIG1vdW50IG9wdGlvbiByZXF1aXJlcyBhIHBvc2l0aXZlIG51bWVyaWMgYXJndW1lbnRcbiIpOwotCQkJCXJldHVybiBydiA/IHJ2IDogLUVJTlZBTDsKLQkJCX0KLQkJCWJyZWFrOwotCQljYXNlIE9wdF9zdGF0ZnNfcGVyY2VudDoKLQkJCXJ2ID0gbWF0Y2hfaW50KCZ0bXBbMF0sICZhcmdzLT5hcl9zdGF0ZnNfcGVyY2VudCk7Ci0JCQlpZiAocnYgfHwgYXJncy0+YXJfc3RhdGZzX3BlcmNlbnQgPCAwIHx8Ci0JCQkgICAgYXJncy0+YXJfc3RhdGZzX3BlcmNlbnQgPiAxMDApIHsKLQkJCQlwcl93YXJuKCJzdGF0ZnNfcGVyY2VudCBtb3VudCBvcHRpb24gcmVxdWlyZXMgYSBudW1lcmljIGFyZ3VtZW50IGJldHdlZW4gMCBhbmQgMTAwXG4iKTsKLQkJCQlyZXR1cm4gcnYgPyBydiA6IC1FSU5WQUw7Ci0JCQl9Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfZXJyX3dpdGhkcmF3OgotCQkJYXJncy0+YXJfZXJyb3JzID0gR0ZTMl9FUlJPUlNfV0lUSERSQVc7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfZXJyX3BhbmljOgotCQkJaWYgKGFyZ3MtPmFyX2RlYnVnKSB7Ci0JCQkJcHJfd2FybigiLW8gZGVidWcgYW5kIC1vIGVycm9ycz1wYW5pYyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlXG4iKTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQkJCWFyZ3MtPmFyX2Vycm9ycyA9IEdGUzJfRVJST1JTX1BBTklDOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X2JhcnJpZXI6Ci0JCQlhcmdzLT5hcl9ub2JhcnJpZXIgPSAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X25vYmFycmllcjoKLQkJCWFyZ3MtPmFyX25vYmFycmllciA9IDE7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfcmdycGx2YjoKLQkJCWFyZ3MtPmFyX3JncnBsdmIgPSAxOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X25vcmdycGx2YjoKLQkJCWFyZ3MtPmFyX3JncnBsdmIgPSAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X2xvY2Nvb2tpZToKLQkJCWFyZ3MtPmFyX2xvY2Nvb2tpZSA9IDE7Ci0JCQlicmVhazsKLQkJY2FzZSBPcHRfbm9sb2Njb29raWU6Ci0JCQlhcmdzLT5hcl9sb2Njb29raWUgPSAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X2Vycm9yOgotCQlkZWZhdWx0OgotCQkJcHJfd2FybigiaW52YWxpZCBtb3VudCBvcHRpb246ICVzXG4iLCBvKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KIC8qKgogICogZ2ZzMl9qaW5kZXhfZnJlZSAtIENsZWFyIGFsbCB0aGUgam91cm5hbCBpbmRleCBpbmZvcm1hdGlvbgogICogQHNkcDogVGhlIEdGUzIgc3VwZXJibG9jawpAQCAtODQ3LDcgKzU5NSw3IEBAIHN0YXRpYyB2b2lkIGdmczJfZGlydHlfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGZsYWdzKQogICogUmV0dXJuczogZXJybm8KICAqLwogCi1zdGF0aWMgaW50IGdmczJfbWFrZV9mc19ybyhzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCkKK2ludCBnZnMyX21ha2VfZnNfcm8oc3RydWN0IGdmczJfc2JkICpzZHApCiB7CiAJc3RydWN0IGdmczJfaG9sZGVyIGZyZWV6ZV9naDsKIAlpbnQgZXJyb3I7CkBAIC0xMjI3LDg0ICs5NzUsNiBAQCBzdGF0aWMgaW50IGdmczJfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikKIH0KIAogLyoqCi0gKiBnZnMyX3JlbW91bnRfZnMgLSBjYWxsZWQgd2hlbiB0aGUgRlMgaXMgcmVtb3VudGVkCi0gKiBAc2I6ICB0aGUgZmlsZXN5c3RlbQotICogQGZsYWdzOiAgdGhlIHJlbW91bnQgZmxhZ3MKLSAqIEBkYXRhOiAgZXh0cmEgZGF0YSBwYXNzZWQgaW4gKG5vdCB1c2VkIHJpZ2h0IG5vdykKLSAqCi0gKiBSZXR1cm5zOiBlcnJubwotICovCi0KLXN0YXRpYyBpbnQgZ2ZzMl9yZW1vdW50X2ZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRhdGEpCi17Ci0Jc3RydWN0IGdmczJfc2JkICpzZHAgPSBzYi0+c19mc19pbmZvOwotCXN0cnVjdCBnZnMyX2FyZ3MgYXJncyA9IHNkcC0+c2RfYXJnczsgLyogRGVmYXVsdCB0byBjdXJyZW50IHNldHRpbmdzICovCi0Jc3RydWN0IGdmczJfdHVuZSAqZ3QgPSAmc2RwLT5zZF90dW5lOwotCWludCBlcnJvcjsKLQotCXN5bmNfZmlsZXN5c3RlbShzYik7Ci0KLQlzcGluX2xvY2soJmd0LT5ndF9zcGluKTsKLQlhcmdzLmFyX2NvbW1pdCA9IGd0LT5ndF9sb2dkX3NlY3M7Ci0JYXJncy5hcl9xdW90YV9xdWFudHVtID0gZ3QtPmd0X3F1b3RhX3F1YW50dW07Ci0JaWYgKGd0LT5ndF9zdGF0ZnNfc2xvdykKLQkJYXJncy5hcl9zdGF0ZnNfcXVhbnR1bSA9IDA7Ci0JZWxzZQotCQlhcmdzLmFyX3N0YXRmc19xdWFudHVtID0gZ3QtPmd0X3N0YXRmc19xdWFudHVtOwotCXNwaW5fdW5sb2NrKCZndC0+Z3Rfc3Bpbik7Ci0JZXJyb3IgPSBnZnMyX21vdW50X2FyZ3MoJmFyZ3MsIGRhdGEpOwotCWlmIChlcnJvcikKLQkJcmV0dXJuIGVycm9yOwotCi0JLyogTm90IGFsbG93ZWQgdG8gY2hhbmdlIGxvY2tpbmcgZGV0YWlscyAqLwotCWlmIChzdHJjbXAoYXJncy5hcl9sb2NrcHJvdG8sIHNkcC0+c2RfYXJncy5hcl9sb2NrcHJvdG8pIHx8Ci0JICAgIHN0cmNtcChhcmdzLmFyX2xvY2t0YWJsZSwgc2RwLT5zZF9hcmdzLmFyX2xvY2t0YWJsZSkgfHwKLQkgICAgc3RyY21wKGFyZ3MuYXJfaG9zdGRhdGEsIHNkcC0+c2RfYXJncy5hcl9ob3N0ZGF0YSkpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JLyogU29tZSBmbGFncyBtdXN0IG5vdCBiZSBjaGFuZ2VkICovCi0JaWYgKGFyZ3NfbmVxKCZhcmdzLCAmc2RwLT5zZF9hcmdzLCBzcGVjdGF0b3IpIHx8Ci0JICAgIGFyZ3NfbmVxKCZhcmdzLCAmc2RwLT5zZF9hcmdzLCBsb2NhbGZsb2NrcykgfHwKLQkgICAgYXJnc19uZXEoJmFyZ3MsICZzZHAtPnNkX2FyZ3MsIG1ldGEpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmIChzZHAtPnNkX2FyZ3MuYXJfc3BlY3RhdG9yKQotCQkqZmxhZ3MgfD0gU0JfUkRPTkxZOwotCi0JaWYgKChzYi0+c19mbGFncyBeICpmbGFncykgJiBTQl9SRE9OTFkpIHsKLQkJaWYgKCpmbGFncyAmIFNCX1JET05MWSkKLQkJCWVycm9yID0gZ2ZzMl9tYWtlX2ZzX3JvKHNkcCk7Ci0JCWVsc2UKLQkJCWVycm9yID0gZ2ZzMl9tYWtlX2ZzX3J3KHNkcCk7Ci0JfQotCi0Jc2RwLT5zZF9hcmdzID0gYXJnczsKLQlpZiAoc2RwLT5zZF9hcmdzLmFyX3Bvc2l4X2FjbCkKLQkJc2ItPnNfZmxhZ3MgfD0gU0JfUE9TSVhBQ0w7Ci0JZWxzZQotCQlzYi0+c19mbGFncyAmPSB+U0JfUE9TSVhBQ0w7Ci0JaWYgKHNkcC0+c2RfYXJncy5hcl9ub2JhcnJpZXIpCi0JCXNldF9iaXQoU0RGX05PQkFSUklFUlMsICZzZHAtPnNkX2ZsYWdzKTsKLQllbHNlCi0JCWNsZWFyX2JpdChTREZfTk9CQVJSSUVSUywgJnNkcC0+c2RfZmxhZ3MpOwotCXNwaW5fbG9jaygmZ3QtPmd0X3NwaW4pOwotCWd0LT5ndF9sb2dkX3NlY3MgPSBhcmdzLmFyX2NvbW1pdDsKLQlndC0+Z3RfcXVvdGFfcXVhbnR1bSA9IGFyZ3MuYXJfcXVvdGFfcXVhbnR1bTsKLQlpZiAoYXJncy5hcl9zdGF0ZnNfcXVhbnR1bSkgewotCQlndC0+Z3Rfc3RhdGZzX3Nsb3cgPSAwOwotCQlndC0+Z3Rfc3RhdGZzX3F1YW50dW0gPSBhcmdzLmFyX3N0YXRmc19xdWFudHVtOwotCX0KLQllbHNlIHsKLQkJZ3QtPmd0X3N0YXRmc19zbG93ID0gMTsKLQkJZ3QtPmd0X3N0YXRmc19xdWFudHVtID0gMzA7Ci0JfQotCXNwaW5fdW5sb2NrKCZndC0+Z3Rfc3Bpbik7Ci0KLQlnZnMyX29ubGluZV91ZXZlbnQoc2RwKTsKLQlyZXR1cm4gZXJyb3I7Ci19Ci0KLS8qKgogICogZ2ZzMl9kcm9wX2lub2RlIC0gRHJvcCBhbiBpbm9kZSAodGVzdCBmb3IgcmVtb3RlIHVubGluaykKICAqIEBpbm9kZTogVGhlIGlub2RlIHRvIGRyb3AKICAqCkBAIC0xNzIyLDEzICsxMzkyLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgaW5vZGUgKmdmczJfYWxsb2NfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlzdHJ1Y3QgZ2ZzMl9pbm9kZSAqaXA7CiAKIAlpcCA9IGttZW1fY2FjaGVfYWxsb2MoZ2ZzMl9pbm9kZV9jYWNoZXAsIEdGUF9LRVJORUwpOwotCWlmIChpcCkgewotCQlpcC0+aV9mbGFncyA9IDA7Ci0JCWlwLT5pX2dsID0gTlVMTDsKLQkJbWVtc2V0KCZpcC0+aV9yZXMsIDAsIHNpemVvZihpcC0+aV9yZXMpKTsKLQkJUkJfQ0xFQVJfTk9ERSgmaXAtPmlfcmVzLnJzX25vZGUpOwotCQlpcC0+aV9yYWhlYWQgPSAwOwotCX0KKwlpZiAoIWlwKQorCQlyZXR1cm4gTlVMTDsKKwlpcC0+aV9mbGFncyA9IDA7CisJaXAtPmlfZ2wgPSBOVUxMOworCW1lbXNldCgmaXAtPmlfcmVzLCAwLCBzaXplb2YoaXAtPmlfcmVzKSk7CisJUkJfQ0xFQVJfTk9ERSgmaXAtPmlfcmVzLnJzX25vZGUpOworCWlwLT5pX3JhaGVhZCA9IDA7CiAJcmV0dXJuICZpcC0+aV9pbm9kZTsKIH0KIApAQCAtMTc0OCw3ICsxNDE4LDYgQEAgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgZ2ZzMl9zdXBlcl9vcHMgPSB7CiAJLmZyZWV6ZV9zdXBlcgkJPSBnZnMyX2ZyZWV6ZSwKIAkudGhhd19zdXBlcgkJPSBnZnMyX3VuZnJlZXplLAogCS5zdGF0ZnMJCQk9IGdmczJfc3RhdGZzLAotCS5yZW1vdW50X2ZzCQk9IGdmczJfcmVtb3VudF9mcywKIAkuZHJvcF9pbm9kZQkJPSBnZnMyX2Ryb3BfaW5vZGUsCiAJLnNob3dfb3B0aW9ucwkJPSBnZnMyX3Nob3dfb3B0aW9ucywKIH07CmRpZmYgLS1naXQgYS9mcy9nZnMyL3N1cGVyLmggYi9mcy9nZnMyL3N1cGVyLmgKaW5kZXggOWQ0OWVhYS4uYjhiZjgxMSAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9zdXBlci5oCisrKyBiL2ZzL2dmczIvc3VwZXIuaApAQCAtMjQsOCArMjQsNiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBnZnMyX2ppbmRleF9zaXplKHN0cnVjdCBnZnMyX3NiZCAqc2RwKQogCiBleHRlcm4gdm9pZCBnZnMyX2ppbmRleF9mcmVlKHN0cnVjdCBnZnMyX3NiZCAqc2RwKTsKIAotZXh0ZXJuIGludCBnZnMyX21vdW50X2FyZ3Moc3RydWN0IGdmczJfYXJncyAqYXJncywgY2hhciAqZGF0YSk7Ci0KIGV4dGVybiBzdHJ1Y3QgZ2ZzMl9qZGVzYyAqZ2ZzMl9qZGVzY19maW5kKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCB1bnNpZ25lZCBpbnQgamlkKTsKIGV4dGVybiBpbnQgZ2ZzMl9qZGVzY19jaGVjayhzdHJ1Y3QgZ2ZzMl9qZGVzYyAqamQpOwogCkBAIC0zMyw2ICszMSw3IEBAIGV4dGVybiBpbnQgZ2ZzMl9sb29rdXBfaW5fbWFzdGVyX2RpcihzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCwgY2hhciAqZmlsZW5hbWUsCiAJCQkJICAgICBzdHJ1Y3QgZ2ZzMl9pbm9kZSAqKmlwcCk7CiAKIGV4dGVybiBpbnQgZ2ZzMl9tYWtlX2ZzX3J3KHN0cnVjdCBnZnMyX3NiZCAqc2RwKTsKK2V4dGVybiBpbnQgZ2ZzMl9tYWtlX2ZzX3JvKHN0cnVjdCBnZnMyX3NiZCAqc2RwKTsKIGV4dGVybiB2b2lkIGdmczJfb25saW5lX3VldmVudChzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCk7CiBleHRlcm4gaW50IGdmczJfc3RhdGZzX2luaXQoc3RydWN0IGdmczJfc2JkICpzZHApOwogZXh0ZXJuIHZvaWQgZ2ZzMl9zdGF0ZnNfY2hhbmdlKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCBzNjQgdG90YWwsIHM2NCBmcmVlLApkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi91dGlsLmMgYi9mcy9nZnMyL3V0aWwuYwppbmRleCA4M2Y2YzU4Li5jNDUxNTkxIDEwMDY0NAotLS0gYS9mcy9nZnMyL3V0aWwuYworKysgYi9mcy9nZnMyL3V0aWwuYwpAQCAtMTc4LDcgKzE3OCw3IEBAIGludCBnZnMyX2NvbnNpc3RfcmdycGRfaShzdHJ1Y3QgZ2ZzMl9yZ3JwZCAqcmdkLCBpbnQgY2x1c3Rlcl93aWRlLAogCQkJIGNvbnN0IGNoYXIgKmZ1bmN0aW9uLCBjaGFyICpmaWxlLCB1bnNpZ25lZCBpbnQgbGluZSkKIHsKIAlzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCA9IHJnZC0+cmRfc2JkOwotCWNoYXIgZnNfaWRfYnVmW0dGUzJfRlNOQU1FX0xFTiArIDMgKiBzaXplb2YoaW50KSArIDJdOworCWNoYXIgZnNfaWRfYnVmW3NpemVvZihzZHAtPnNkX2ZzbmFtZSkgKyA3XTsKIAlpbnQgcnY7CiAKIAlzcHJpbnRmKGZzX2lkX2J1ZiwgImZzaWQ9JXM6ICIsIHNkcC0+c2RfZnNuYW1lKTsKZGlmZiAtLWdpdCBhL2ZzL2hwZnMvaHBmc19mbi5oIGIvZnMvaHBmcy9ocGZzX2ZuLmgKaW5kZXggYWIyZTdjYy4uMWNjYTgzMiAxMDA2NDQKLS0tIGEvZnMvaHBmcy9ocGZzX2ZuLmgKKysrIGIvZnMvaHBmcy9ocGZzX2ZuLmgKQEAgLTMzNCw3ICszMzQsNyBAQCBsb25nIGhwZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwogICogbG9jYWwgdGltZSAoSFBGUykgdG8gR01UIChVbml4KQogICovCiAKLXN0YXRpYyBpbmxpbmUgdGltZTY0X3QgbG9jYWxfdG9fZ210KHN0cnVjdCBzdXBlcl9ibG9jayAqcywgdGltZTMyX3QgdCkKK3N0YXRpYyBpbmxpbmUgdGltZTY0X3QgbG9jYWxfdG9fZ210KHN0cnVjdCBzdXBlcl9ibG9jayAqcywgdGltZTY0X3QgdCkKIHsKIAlleHRlcm4gc3RydWN0IHRpbWV6b25lIHN5c190ejsKIAlyZXR1cm4gdCArIHN5c190ei50el9taW51dGVzd2VzdCAqIDYwICsgaHBmc19zYihzKS0+c2JfdGltZXNoaWZ0OwpAQCAtMzQzLDkgKzM0Myw3IEBAIHN0YXRpYyBpbmxpbmUgdGltZTY0X3QgbG9jYWxfdG9fZ210KHN0cnVjdCBzdXBlcl9ibG9jayAqcywgdGltZTMyX3QgdCkKIHN0YXRpYyBpbmxpbmUgdGltZTMyX3QgZ210X3RvX2xvY2FsKHN0cnVjdCBzdXBlcl9ibG9jayAqcywgdGltZTY0X3QgdCkKIHsKIAlleHRlcm4gc3RydWN0IHRpbWV6b25lIHN5c190ejsKLQl0ID0gdCAtIHN5c190ei50el9taW51dGVzd2VzdCAqIDYwIC0gaHBmc19zYihzKS0+c2JfdGltZXNoaWZ0OwotCi0JcmV0dXJuIGNsYW1wX3QodGltZTY0X3QsIHQsIDAsIFUzMl9NQVgpOworCXJldHVybiB0IC0gc3lzX3R6LnR6X21pbnV0ZXN3ZXN0ICogNjAgLSBocGZzX3NiKHMpLT5zYl90aW1lc2hpZnQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdGltZTMyX3QgbG9jYWxfZ2V0X3NlY29uZHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzKQpkaWZmIC0tZ2l0IGEvZnMvaHBmcy9zdXBlci5jIGIvZnMvaHBmcy9zdXBlci5jCmluZGV4IDlkYjZkODQuLjBhNjc3YTkgMTAwNjQ0Ci0tLSBhL2ZzL2hwZnMvc3VwZXIuYworKysgYi9mcy9ocGZzL3N1cGVyLmMKQEAgLTYxNCw2ICs2MTQsOCBAQCBzdGF0aWMgaW50IGhwZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKm9wdGlvbnMsIGludCBzaWxlbnQpCiAJcy0+c19tYWdpYyA9IEhQRlNfU1VQRVJfTUFHSUM7CiAJcy0+c19vcCA9ICZocGZzX3NvcHM7CiAJcy0+c19kX29wID0gJmhwZnNfZGVudHJ5X29wZXJhdGlvbnM7CisJcy0+c190aW1lX21pbiA9ICBsb2NhbF90b19nbXQocywgMCk7CisJcy0+c190aW1lX21heCA9ICBsb2NhbF90b19nbXQocywgVTMyX01BWCk7CiAKIAlzYmktPnNiX3Jvb3QgPSBsZTMyX3RvX2NwdShzdXBlcmJsb2NrLT5yb290KTsKIAlzYmktPnNiX2ZzX3NpemUgPSBsZTMyX3RvX2NwdShzdXBlcmJsb2NrLT5uX3NlY3RvcnMpOwpkaWZmIC0tZ2l0IGEvZnMvaW5vZGUuYyBiL2ZzL2lub2RlLmMKaW5kZXggMGYxZTNiNS4uZmVmNDU3YSAxMDA2NDQKLS0tIGEvZnMvaW5vZGUuYworKysgYi9mcy9pbm9kZS5jCkBAIC0xODEsNiArMTgxLDkgQEAgaW50IGlub2RlX2luaXRfYWx3YXlzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJbWFwcGluZy0+ZmxhZ3MgPSAwOwogCW1hcHBpbmctPndiX2VyciA9IDA7CiAJYXRvbWljX3NldCgmbWFwcGluZy0+aV9tbWFwX3dyaXRhYmxlLCAwKTsKKyNpZmRlZiBDT05GSUdfUkVBRF9PTkxZX1RIUF9GT1JfRlMKKwlhdG9taWNfc2V0KCZtYXBwaW5nLT5ucl90aHBzLCAwKTsKKyNlbmRpZgogCW1hcHBpbmdfc2V0X2dmcF9tYXNrKG1hcHBpbmcsIEdGUF9ISUdIVVNFUl9NT1ZBQkxFKTsKIAltYXBwaW5nLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCW1hcHBpbmctPndyaXRlYmFja19pbmRleCA9IDA7CkBAIC0yMTY3LDYgKzIxNzAsMzcgQEAgc3RydWN0IHRpbWVzcGVjNjQgdGltZXNwZWM2NF90cnVuYyhzdHJ1Y3QgdGltZXNwZWM2NCB0LCB1bnNpZ25lZCBncmFuKQogRVhQT1JUX1NZTUJPTCh0aW1lc3BlYzY0X3RydW5jKTsKIAogLyoqCisgKiB0aW1lc3RhbXBfdHJ1bmNhdGUgLSBUcnVuY2F0ZSB0aW1lc3BlYyB0byBhIGdyYW51bGFyaXR5CisgKiBAdDogVGltZXNwZWMKKyAqIEBpbm9kZTogaW5vZGUgYmVpbmcgdXBkYXRlZAorICoKKyAqIFRydW5jYXRlIGEgdGltZXNwZWMgdG8gdGhlIGdyYW51bGFyaXR5IHN1cHBvcnRlZCBieSB0aGUgZnMKKyAqIGNvbnRhaW5pbmcgdGhlIGlub2RlLiBBbHdheXMgcm91bmRzIGRvd24uIGdyYW4gbXVzdAorICogbm90IGJlIDAgbm9yIGdyZWF0ZXIgdGhhbiBhIHNlY29uZCAoTlNFQ19QRVJfU0VDLCBvciAxMF45IG5zKS4KKyAqLworc3RydWN0IHRpbWVzcGVjNjQgdGltZXN0YW1wX3RydW5jYXRlKHN0cnVjdCB0aW1lc3BlYzY0IHQsIHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGlub2RlLT5pX3NiOworCXVuc2lnbmVkIGludCBncmFuID0gc2ItPnNfdGltZV9ncmFuOworCisJdC50dl9zZWMgPSBjbGFtcCh0LnR2X3NlYywgc2ItPnNfdGltZV9taW4sIHNiLT5zX3RpbWVfbWF4KTsKKwlpZiAodW5saWtlbHkodC50dl9zZWMgPT0gc2ItPnNfdGltZV9tYXggfHwgdC50dl9zZWMgPT0gc2ItPnNfdGltZV9taW4pKQorCQl0LnR2X25zZWMgPSAwOworCisJLyogQXZvaWQgZGl2aXNpb24gaW4gdGhlIGNvbW1vbiBjYXNlcyAxIG5zIGFuZCAxIHMuICovCisJaWYgKGdyYW4gPT0gMSkKKwkJOyAvKiBub3RoaW5nICovCisJZWxzZSBpZiAoZ3JhbiA9PSBOU0VDX1BFUl9TRUMpCisJCXQudHZfbnNlYyA9IDA7CisJZWxzZSBpZiAoZ3JhbiA+IDEgJiYgZ3JhbiA8IE5TRUNfUEVSX1NFQykKKwkJdC50dl9uc2VjIC09IHQudHZfbnNlYyAlIGdyYW47CisJZWxzZQorCQlXQVJOKDEsICJpbnZhbGlkIGZpbGUgdGltZSBncmFudWxhcml0eTogJXUiLCBncmFuKTsKKwlyZXR1cm4gdDsKK30KK0VYUE9SVF9TWU1CT0wodGltZXN0YW1wX3RydW5jYXRlKTsKKworLyoqCiAgKiBjdXJyZW50X3RpbWUgLSBSZXR1cm4gRlMgdGltZQogICogQGlub2RlOiBpbm9kZS4KICAqCkBAIC0yMTg3LDcgKzIyMjEsNyBAQCBzdHJ1Y3QgdGltZXNwZWM2NCBjdXJyZW50X3RpbWUoc3RydWN0IGlub2RlICppbm9kZSkKIAkJcmV0dXJuIG5vdzsKIAl9CiAKLQlyZXR1cm4gdGltZXNwZWM2NF90cnVuYyhub3csIGlub2RlLT5pX3NiLT5zX3RpbWVfZ3Jhbik7CisJcmV0dXJuIHRpbWVzdGFtcF90cnVuY2F0ZShub3csIGlub2RlKTsKIH0KIEVYUE9SVF9TWU1CT0woY3VycmVudF90aW1lKTsKIApkaWZmIC0tZ2l0IGEvZnMvaW9fdXJpbmcuYyBiL2ZzL2lvX3VyaW5nLmMKaW5kZXggMGRhZGJkYi4uYWE4YWM1NSAxMDA2NDQKLS0tIGEvZnMvaW9fdXJpbmcuYworKysgYi9mcy9pb191cmluZy5jCkBAIC0yMDAsNiArMjAwLDcgQEAgc3RydWN0IGlvX3JpbmdfY3R4IHsKIAkJc3RydWN0IGlvX3VyaW5nX3NxZQkqc3Ffc3FlczsKIAogCQlzdHJ1Y3QgbGlzdF9oZWFkCWRlZmVyX2xpc3Q7CisJCXN0cnVjdCBsaXN0X2hlYWQJdGltZW91dF9saXN0OwogCX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsKIAogCS8qIElPIG9mZmxvYWQgKi8KQEAgLTIxNiw2ICsyMTcsNyBAQCBzdHJ1Y3QgaW9fcmluZ19jdHggewogCQlzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkCWNxX3dhaXQ7CiAJCXN0cnVjdCBmYXN5bmNfc3RydWN0CSpjcV9mYXN5bmM7CiAJCXN0cnVjdCBldmVudGZkX2N0eAkqY3FfZXZfZmQ7CisJCWF0b21pY190CQljcV90aW1lb3V0czsKIAl9IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7CiAKIAlzdHJ1Y3QgaW9fcmluZ3MJKnJpbmdzOwpAQCAtMjgzLDYgKzI4NSwxMSBAQCBzdHJ1Y3QgaW9fcG9sbF9pb2NiIHsKIAlzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeQkJd2FpdDsKIH07CiAKK3N0cnVjdCBpb190aW1lb3V0IHsKKwlzdHJ1Y3QgZmlsZQkJCSpmaWxlOworCXN0cnVjdCBocnRpbWVyCQkJdGltZXI7Cit9OworCiAvKgogICogTk9URSEgRWFjaCBvZiB0aGUgaW9jYiB1bmlvbiBtZW1iZXJzIGhhcyB0aGUgZmlsZSBwb2ludGVyCiAgKiBhcyB0aGUgZmlyc3QgZW50cnkgaW4gdGhlaXIgc3RydWN0IGRlZmluaXRpb24uIFNvIHlvdSBjYW4KQEAgLTI5NCw2ICszMDEsNyBAQCBzdHJ1Y3QgaW9fa2lvY2IgewogCQlzdHJ1Y3QgZmlsZQkJKmZpbGU7CiAJCXN0cnVjdCBraW9jYgkJcnc7CiAJCXN0cnVjdCBpb19wb2xsX2lvY2IJcG9sbDsKKwkJc3RydWN0IGlvX3RpbWVvdXQJdGltZW91dDsKIAl9OwogCiAJc3RydWN0IHNxZV9zdWJtaXQJc3VibWl0OwpAQCAtMzEzLDYgKzMyMSw3IEBAIHN0cnVjdCBpb19raW9jYiB7CiAjZGVmaW5lIFJFUV9GX0xJTktfRE9ORQkJMTI4CS8qIGxpbmtlZCBzcWVzIGRvbmUgKi8KICNkZWZpbmUgUkVRX0ZfRkFJTF9MSU5LCQkyNTYJLyogZmFpbCByZXN0IG9mIGxpbmtzICovCiAjZGVmaW5lIFJFUV9GX1NIQURPV19EUkFJTgk1MTIJLyogbGluay1kcmFpbiBzaGFkb3cgcmVxICovCisjZGVmaW5lIFJFUV9GX1RJTUVPVVQJCTEwMjQJLyogdGltZW91dCByZXF1ZXN0ICovCiAJdTY0CQkJdXNlcl9kYXRhOwogCXUzMgkJCXJlc3VsdDsKIAl1MzIJCQlzZXF1ZW5jZTsKQEAgLTM0NCw2ICszNTMsOCBAQCBzdHJ1Y3QgaW9fc3VibWl0X3N0YXRlIHsKIH07CiAKIHN0YXRpYyB2b2lkIGlvX3NxX3dxX3N1Ym1pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CitzdGF0aWMgdm9pZCBpb19jcXJpbmdfZmlsbF9ldmVudChzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCwgdTY0IGtpX3VzZXJfZGF0YSwKKwkJCQkgbG9uZyByZXMpOwogc3RhdGljIHZvaWQgX19pb19mcmVlX3JlcShzdHJ1Y3QgaW9fa2lvY2IgKnJlcSk7CiAKIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqcmVxX2NhY2hlcDsKQEAgLTQwMCwyNiArNDExLDMwIEBAIHN0YXRpYyBzdHJ1Y3QgaW9fcmluZ19jdHggKmlvX3JpbmdfY3R4X2FsbG9jKHN0cnVjdCBpb191cmluZ19wYXJhbXMgKnApCiAJSU5JVF9MSVNUX0hFQUQoJmN0eC0+cG9sbF9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmY3R4LT5jYW5jZWxfbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmN0eC0+ZGVmZXJfbGlzdCk7CisJSU5JVF9MSVNUX0hFQUQoJmN0eC0+dGltZW91dF9saXN0KTsKIAlyZXR1cm4gY3R4OwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaW9fc2VxdWVuY2VfZGVmZXIoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgsCiAJCQkJICAgICBzdHJ1Y3QgaW9fa2lvY2IgKnJlcSkKIHsKLQlpZiAoKHJlcS0+ZmxhZ3MgJiAoUkVRX0ZfSU9fRFJBSU58UkVRX0ZfSU9fRFJBSU5FRCkpICE9IFJFUV9GX0lPX0RSQUlOKQorCS8qIHRpbWVvdXQgcmVxdWVzdHMgYWx3YXlzIGhvbm9yIHNlcXVlbmNlICovCisJaWYgKCEocmVxLT5mbGFncyAmIFJFUV9GX1RJTUVPVVQpICYmCisJICAgIChyZXEtPmZsYWdzICYgKFJFUV9GX0lPX0RSQUlOfFJFUV9GX0lPX0RSQUlORUQpKSAhPSBSRVFfRl9JT19EUkFJTikKIAkJcmV0dXJuIGZhbHNlOwogCiAJcmV0dXJuIHJlcS0+c2VxdWVuY2UgIT0gY3R4LT5jYWNoZWRfY3FfdGFpbCArIGN0eC0+cmluZ3MtPnNxX2Ryb3BwZWQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW9fa2lvY2IgKmlvX2dldF9kZWZlcnJlZF9yZXEoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgpCitzdGF0aWMgc3RydWN0IGlvX2tpb2NiICpfX2lvX2dldF9kZWZlcnJlZF9yZXEoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgsCisJCQkJCSAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCiB7CiAJc3RydWN0IGlvX2tpb2NiICpyZXE7CiAKLQlpZiAobGlzdF9lbXB0eSgmY3R4LT5kZWZlcl9saXN0KSkKKwlpZiAobGlzdF9lbXB0eShsaXN0KSkKIAkJcmV0dXJuIE5VTEw7CiAKLQlyZXEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZjdHgtPmRlZmVyX2xpc3QsIHN0cnVjdCBpb19raW9jYiwgbGlzdCk7CisJcmVxID0gbGlzdF9maXJzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgaW9fa2lvY2IsIGxpc3QpOwogCWlmICghaW9fc2VxdWVuY2VfZGVmZXIoY3R4LCByZXEpKSB7CiAJCWxpc3RfZGVsX2luaXQoJnJlcS0+bGlzdCk7CiAJCXJldHVybiByZXE7CkBAIC00MjgsNiArNDQzLDE2IEBAIHN0YXRpYyBzdHJ1Y3QgaW9fa2lvY2IgKmlvX2dldF9kZWZlcnJlZF9yZXEoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgpCiAJcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgaW9fa2lvY2IgKmlvX2dldF9kZWZlcnJlZF9yZXEoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgpCit7CisJcmV0dXJuIF9faW9fZ2V0X2RlZmVycmVkX3JlcShjdHgsICZjdHgtPmRlZmVyX2xpc3QpOworfQorCitzdGF0aWMgc3RydWN0IGlvX2tpb2NiICppb19nZXRfdGltZW91dF9yZXEoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgpCit7CisJcmV0dXJuIF9faW9fZ2V0X2RlZmVycmVkX3JlcShjdHgsICZjdHgtPnRpbWVvdXRfbGlzdCk7Cit9CisKIHN0YXRpYyB2b2lkIF9faW9fY29tbWl0X2NxcmluZyhzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCkKIHsKIAlzdHJ1Y3QgaW9fcmluZ3MgKnJpbmdzID0gY3R4LT5yaW5nczsKQEAgLTQ0NiwyNSArNDcxLDUwIEBAIHN0YXRpYyB2b2lkIF9faW9fY29tbWl0X2NxcmluZyhzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCkKIHN0YXRpYyBpbmxpbmUgdm9pZCBpb19xdWV1ZV9hc3luY193b3JrKHN0cnVjdCBpb19yaW5nX2N0eCAqY3R4LAogCQkJCSAgICAgICBzdHJ1Y3QgaW9fa2lvY2IgKnJlcSkKIHsKLQlpbnQgcnc7CisJaW50IHJ3ID0gMDsKIAotCXN3aXRjaCAocmVxLT5zdWJtaXQuc3FlLT5vcGNvZGUpIHsKLQljYXNlIElPUklOR19PUF9XUklURVY6Ci0JY2FzZSBJT1JJTkdfT1BfV1JJVEVfRklYRUQ6Ci0JCXJ3ID0gIShyZXEtPnJ3LmtpX2ZsYWdzICYgSU9DQl9ESVJFQ1QpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlydyA9IDA7Ci0JCWJyZWFrOworCWlmIChyZXEtPnN1Ym1pdC5zcWUpIHsKKwkJc3dpdGNoIChyZXEtPnN1Ym1pdC5zcWUtPm9wY29kZSkgeworCQljYXNlIElPUklOR19PUF9XUklURVY6CisJCWNhc2UgSU9SSU5HX09QX1dSSVRFX0ZJWEVEOgorCQkJcncgPSAhKHJlcS0+cncua2lfZmxhZ3MgJiBJT0NCX0RJUkVDVCk7CisJCQlicmVhazsKKwkJfQogCX0KIAogCXF1ZXVlX3dvcmsoY3R4LT5zcW9fd3FbcnddLCAmcmVxLT53b3JrKTsKIH0KIAorc3RhdGljIHZvaWQgaW9fa2lsbF90aW1lb3V0KHN0cnVjdCBpb19raW9jYiAqcmVxKQoreworCWludCByZXQ7CisKKwlyZXQgPSBocnRpbWVyX3RyeV90b19jYW5jZWwoJnJlcS0+dGltZW91dC50aW1lcik7CisJaWYgKHJldCAhPSAtMSkgeworCQlhdG9taWNfaW5jKCZyZXEtPmN0eC0+Y3FfdGltZW91dHMpOworCQlsaXN0X2RlbCgmcmVxLT5saXN0KTsKKwkJaW9fY3FyaW5nX2ZpbGxfZXZlbnQocmVxLT5jdHgsIHJlcS0+dXNlcl9kYXRhLCAwKTsKKwkJX19pb19mcmVlX3JlcShyZXEpOworCX0KK30KKworc3RhdGljIHZvaWQgaW9fa2lsbF90aW1lb3V0cyhzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCkKK3sKKwlzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgKnRtcDsKKworCXNwaW5fbG9ja19pcnEoJmN0eC0+Y29tcGxldGlvbl9sb2NrKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCB0bXAsICZjdHgtPnRpbWVvdXRfbGlzdCwgbGlzdCkKKwkJaW9fa2lsbF90aW1lb3V0KHJlcSk7CisJc3Bpbl91bmxvY2tfaXJxKCZjdHgtPmNvbXBsZXRpb25fbG9jayk7Cit9CisKIHN0YXRpYyB2b2lkIGlvX2NvbW1pdF9jcXJpbmcoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgpCiB7CiAJc3RydWN0IGlvX2tpb2NiICpyZXE7CiAKKwl3aGlsZSAoKHJlcSA9IGlvX2dldF90aW1lb3V0X3JlcShjdHgpKSAhPSBOVUxMKQorCQlpb19raWxsX3RpbWVvdXQocmVxKTsKKwogCV9faW9fY29tbWl0X2NxcmluZyhjdHgpOwogCiAJd2hpbGUgKChyZXEgPSBpb19nZXRfZGVmZXJyZWRfcmVxKGN0eCkpICE9IE5VTEwpIHsKQEAgLTEyNDgsNiArMTI5OCw1MSBAQCBzdGF0aWMgdm9pZCBpb19hc3luY19saXN0X25vdGUoaW50IHJ3LCBzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgc2l6ZV90IGxlbikKIAl9CiB9CiAKKy8qCisgKiBGb3IgZmlsZXMgdGhhdCBkb24ndCBoYXZlIC0+cmVhZF9pdGVyKCkgYW5kIC0+d3JpdGVfaXRlcigpLCBoYW5kbGUgdGhlbQorICogYnkgbG9vcGluZyBvdmVyIC0+cmVhZCgpIG9yIC0+d3JpdGUoKSBtYW51YWxseS4KKyAqLworc3RhdGljIHNzaXplX3QgbG9vcF9yd19pdGVyKGludCBydywgc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBraW9jYiAqa2lvY2IsCisJCQkgICBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpCit7CisJc3NpemVfdCByZXQgPSAwOworCisJLyoKKwkgKiBEb24ndCBzdXBwb3J0IHBvbGxlZCBJTyB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlLCBhbmQgd2UgY2FuJ3QKKwkgKiBzdXBwb3J0IG5vbi1ibG9ja2luZyBlaXRoZXIuIEZvciB0aGUgbGF0dGVyLCB0aGlzIGp1c3QgY2F1c2VzCisJICogdGhlIGtpb2NiIHRvIGJlIGhhbmRsZWQgZnJvbSBhbiBhc3luYyBjb250ZXh0LgorCSAqLworCWlmIChraW9jYi0+a2lfZmxhZ3MgJiBJT0NCX0hJUFJJKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJaWYgKGtpb2NiLT5raV9mbGFncyAmIElPQ0JfTk9XQUlUKQorCQlyZXR1cm4gLUVBR0FJTjsKKworCXdoaWxlIChpb3ZfaXRlcl9jb3VudChpdGVyKSkgeworCQlzdHJ1Y3QgaW92ZWMgaW92ZWMgPSBpb3ZfaXRlcl9pb3ZlYyhpdGVyKTsKKwkJc3NpemVfdCBucjsKKworCQlpZiAocncgPT0gUkVBRCkgeworCQkJbnIgPSBmaWxlLT5mX29wLT5yZWFkKGZpbGUsIGlvdmVjLmlvdl9iYXNlLAorCQkJCQkgICAgICBpb3ZlYy5pb3ZfbGVuLCAma2lvY2ItPmtpX3Bvcyk7CisJCX0gZWxzZSB7CisJCQluciA9IGZpbGUtPmZfb3AtPndyaXRlKGZpbGUsIGlvdmVjLmlvdl9iYXNlLAorCQkJCQkgICAgICAgaW92ZWMuaW92X2xlbiwgJmtpb2NiLT5raV9wb3MpOworCQl9CisKKwkJaWYgKG5yIDwgMCkgeworCQkJaWYgKCFyZXQpCisJCQkJcmV0ID0gbnI7CisJCQlicmVhazsKKwkJfQorCQlyZXQgKz0gbnI7CisJCWlmIChuciAhPSBpb3ZlYy5pb3ZfbGVuKQorCQkJYnJlYWs7CisJCWlvdl9pdGVyX2FkdmFuY2UoaXRlciwgbnIpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBpbnQgaW9fcmVhZChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IHNxZV9zdWJtaXQgKnMsCiAJCSAgIGJvb2wgZm9yY2Vfbm9uYmxvY2spCiB7CkBAIC0xMjY1LDggKzEzNjAsNiBAQCBzdGF0aWMgaW50IGlvX3JlYWQoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBzcWVfc3VibWl0ICpzLAogCiAJaWYgKHVubGlrZWx5KCEoZmlsZS0+Zl9tb2RlICYgRk1PREVfUkVBRCkpKQogCQlyZXR1cm4gLUVCQURGOwotCWlmICh1bmxpa2VseSghZmlsZS0+Zl9vcC0+cmVhZF9pdGVyKSkKLQkJcmV0dXJuIC1FSU5WQUw7CiAKIAlyZXQgPSBpb19pbXBvcnRfaW92ZWMocmVxLT5jdHgsIFJFQUQsIHMsICZpb3ZlYywgJml0ZXIpOwogCWlmIChyZXQgPCAwKQpAQCAtMTI4MSw3ICsxMzc0LDExIEBAIHN0YXRpYyBpbnQgaW9fcmVhZChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IHNxZV9zdWJtaXQgKnMsCiAJaWYgKCFyZXQpIHsKIAkJc3NpemVfdCByZXQyOwogCi0JCXJldDIgPSBjYWxsX3JlYWRfaXRlcihmaWxlLCBraW9jYiwgJml0ZXIpOworCQlpZiAoZmlsZS0+Zl9vcC0+cmVhZF9pdGVyKQorCQkJcmV0MiA9IGNhbGxfcmVhZF9pdGVyKGZpbGUsIGtpb2NiLCAmaXRlcik7CisJCWVsc2UKKwkJCXJldDIgPSBsb29wX3J3X2l0ZXIoUkVBRCwgZmlsZSwga2lvY2IsICZpdGVyKTsKKwogCQkvKgogCQkgKiBJbiBjYXNlIG9mIGEgc2hvcnQgcmVhZCwgcHVudCB0byBhc3luYy4gVGhpcyBjYW4gaGFwcGVuCiAJCSAqIGlmIHdlIGhhdmUgZGF0YSBwYXJ0aWFsbHkgY2FjaGVkLiBBbHRlcm5hdGl2ZWx5IHdlIGNhbgpAQCAtMTMyNiw4ICsxNDIzLDYgQEAgc3RhdGljIGludCBpb193cml0ZShzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IHNxZV9zdWJtaXQgKnMsCiAJZmlsZSA9IGtpb2NiLT5raV9maWxwOwogCWlmICh1bmxpa2VseSghKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKSkpCiAJCXJldHVybiAtRUJBREY7Ci0JaWYgKHVubGlrZWx5KCFmaWxlLT5mX29wLT53cml0ZV9pdGVyKSkKLQkJcmV0dXJuIC1FSU5WQUw7CiAKIAlyZXQgPSBpb19pbXBvcnRfaW92ZWMocmVxLT5jdHgsIFdSSVRFLCBzLCAmaW92ZWMsICZpdGVyKTsKIAlpZiAocmV0IDwgMCkKQEAgLTEzNjUsNyArMTQ2MCwxMCBAQCBzdGF0aWMgaW50IGlvX3dyaXRlKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3Qgc3FlX3N1Ym1pdCAqcywKIAkJfQogCQlraW9jYi0+a2lfZmxhZ3MgfD0gSU9DQl9XUklURTsKIAotCQlyZXQyID0gY2FsbF93cml0ZV9pdGVyKGZpbGUsIGtpb2NiLCAmaXRlcik7CisJCWlmIChmaWxlLT5mX29wLT53cml0ZV9pdGVyKQorCQkJcmV0MiA9IGNhbGxfd3JpdGVfaXRlcihmaWxlLCBraW9jYiwgJml0ZXIpOworCQllbHNlCisJCQlyZXQyID0gbG9vcF9yd19pdGVyKFdSSVRFLCBmaWxlLCBraW9jYiwgJml0ZXIpOwogCQlpZiAoIWZvcmNlX25vbmJsb2NrIHx8IHJldDIgIT0gLUVBR0FJTikgewogCQkJaW9fcndfZG9uZShraW9jYiwgcmV0Mik7CiAJCX0gZWxzZSB7CkBAIC0xNzE0LDYgKzE4MTIsNyBAQCBzdGF0aWMgaW50IGlvX3BvbGxfYWRkKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpCiAJaWYgKCFwb2xsLT5maWxlKQogCQlyZXR1cm4gLUVCQURGOwogCisJcmVxLT5zdWJtaXQuc3FlID0gTlVMTDsKIAlJTklUX1dPUksoJnJlcS0+d29yaywgaW9fcG9sbF9jb21wbGV0ZV93b3JrKTsKIAlldmVudHMgPSBSRUFEX09OQ0Uoc3FlLT5wb2xsX2V2ZW50cyk7CiAJcG9sbC0+ZXZlbnRzID0gZGVtYW5nbGVfcG9sbChldmVudHMpIHwgRVBPTExFUlIgfCBFUE9MTEhVUDsKQEAgLTE3NjUsNiArMTg2NCw4MSBAQCBzdGF0aWMgaW50IGlvX3BvbGxfYWRkKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpCiAJcmV0dXJuIGlwdC5lcnJvcjsKIH0KIAorc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGlvX3RpbWVvdXRfZm4oc3RydWN0IGhydGltZXIgKnRpbWVyKQoreworCXN0cnVjdCBpb19yaW5nX2N0eCAqY3R4OworCXN0cnVjdCBpb19raW9jYiAqcmVxOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlyZXEgPSBjb250YWluZXJfb2YodGltZXIsIHN0cnVjdCBpb19raW9jYiwgdGltZW91dC50aW1lcik7CisJY3R4ID0gcmVxLT5jdHg7CisJYXRvbWljX2luYygmY3R4LT5jcV90aW1lb3V0cyk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY3R4LT5jb21wbGV0aW9uX2xvY2ssIGZsYWdzKTsKKwlsaXN0X2RlbCgmcmVxLT5saXN0KTsKKworCWlvX2NxcmluZ19maWxsX2V2ZW50KGN0eCwgcmVxLT51c2VyX2RhdGEsIC1FVElNRSk7CisJaW9fY29tbWl0X2NxcmluZyhjdHgpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0eC0+Y29tcGxldGlvbl9sb2NrLCBmbGFncyk7CisKKwlpb19jcXJpbmdfZXZfcG9zdGVkKGN0eCk7CisKKwlpb19wdXRfcmVxKHJlcSk7CisJcmV0dXJuIEhSVElNRVJfTk9SRVNUQVJUOworfQorCitzdGF0aWMgaW50IGlvX3RpbWVvdXQoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSkKK3sKKwl1bnNpZ25lZCBjb3VudCwgcmVxX2Rpc3QsIHRhaWxfaW5kZXg7CisJc3RydWN0IGlvX3JpbmdfY3R4ICpjdHggPSByZXEtPmN0eDsKKwlzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeTsKKwlzdHJ1Y3QgdGltZXNwZWMgdHM7CisKKwlpZiAodW5saWtlbHkoY3R4LT5mbGFncyAmIElPUklOR19TRVRVUF9JT1BPTEwpKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoc3FlLT5mbGFncyB8fCBzcWUtPmlvcHJpbyB8fCBzcWUtPmJ1Zl9pbmRleCB8fCBzcWUtPnRpbWVvdXRfZmxhZ3MgfHwKKwkgICAgc3FlLT5sZW4gIT0gMSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKGNvcHlfZnJvbV91c2VyKCZ0cywgKHZvaWQgX191c2VyICopICh1bnNpZ25lZCBsb25nKSBzcWUtPmFkZHIsCisJICAgIHNpemVvZih0cykpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCS8qCisJICogc3FlLT5vZmYgaG9sZHMgaG93IG1hbnkgZXZlbnRzIHRoYXQgbmVlZCB0byBvY2N1ciBmb3IgdGhpcworCSAqIHRpbWVvdXQgZXZlbnQgdG8gYmUgc2F0aXNmaWVkLgorCSAqLworCWNvdW50ID0gUkVBRF9PTkNFKHNxZS0+b2ZmKTsKKwlpZiAoIWNvdW50KQorCQljb3VudCA9IDE7CisKKwlyZXEtPnNlcXVlbmNlID0gY3R4LT5jYWNoZWRfc3FfaGVhZCArIGNvdW50IC0gMTsKKwlyZXEtPmZsYWdzIHw9IFJFUV9GX1RJTUVPVVQ7CisKKwkvKgorCSAqIEluc2VydGlvbiBzb3J0LCBlbnN1cmluZyB0aGUgZmlyc3QgZW50cnkgaW4gdGhlIGxpc3QgaXMgYWx3YXlzCisJICogdGhlIG9uZSB3ZSBuZWVkIGZpcnN0LgorCSAqLworCXRhaWxfaW5kZXggPSBjdHgtPmNhY2hlZF9jcV90YWlsIC0gY3R4LT5yaW5ncy0+c3FfZHJvcHBlZDsKKwlyZXFfZGlzdCA9IHJlcS0+c2VxdWVuY2UgLSB0YWlsX2luZGV4OworCXNwaW5fbG9ja19pcnEoJmN0eC0+Y29tcGxldGlvbl9sb2NrKTsKKwlsaXN0X2Zvcl9lYWNoX3ByZXYoZW50cnksICZjdHgtPnRpbWVvdXRfbGlzdCkgeworCQlzdHJ1Y3QgaW9fa2lvY2IgKm54dCA9IGxpc3RfZW50cnkoZW50cnksIHN0cnVjdCBpb19raW9jYiwgbGlzdCk7CisJCXVuc2lnbmVkIGRpc3Q7CisKKwkJZGlzdCA9IG54dC0+c2VxdWVuY2UgLSB0YWlsX2luZGV4OworCQlpZiAocmVxX2Rpc3QgPj0gZGlzdCkKKwkJCWJyZWFrOworCX0KKwlsaXN0X2FkZCgmcmVxLT5saXN0LCBlbnRyeSk7CisJc3Bpbl91bmxvY2tfaXJxKCZjdHgtPmNvbXBsZXRpb25fbG9jayk7CisKKwlocnRpbWVyX2luaXQoJnJlcS0+dGltZW91dC50aW1lciwgQ0xPQ0tfTU9OT1RPTklDLCBIUlRJTUVSX01PREVfUkVMKTsKKwlyZXEtPnRpbWVvdXQudGltZXIuZnVuY3Rpb24gPSBpb190aW1lb3V0X2ZuOworCWhydGltZXJfc3RhcnQoJnJlcS0+dGltZW91dC50aW1lciwgdGltZXNwZWNfdG9fa3RpbWUodHMpLAorCQkJSFJUSU1FUl9NT0RFX1JFTCk7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgaW9fcmVxX2RlZmVyKHN0cnVjdCBpb19yaW5nX2N0eCAqY3R4LCBzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwKIAkJCWNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSkKIHsKQEAgLTE4NDIsNiArMjAxNiw5IEBAIHN0YXRpYyBpbnQgX19pb19zdWJtaXRfc3FlKHN0cnVjdCBpb19yaW5nX2N0eCAqY3R4LCBzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwKIAljYXNlIElPUklOR19PUF9SRUNWTVNHOgogCQlyZXQgPSBpb19yZWN2bXNnKHJlcSwgcy0+c3FlLCBmb3JjZV9ub25ibG9jayk7CiAJCWJyZWFrOworCWNhc2UgSU9SSU5HX09QX1RJTUVPVVQ6CisJCXJldCA9IGlvX3RpbWVvdXQocmVxLCBzLT5zcWUpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXQgPSAtRUlOVkFMOwogCQlicmVhazsKQEAgLTIwOTgsMTMgKzIyNzUsMTEgQEAgc3RhdGljIGludCBfX2lvX3F1ZXVlX3NxZShzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCwgc3RydWN0IGlvX2tpb2NiICpyZXEsCiAJaWYgKHJldCA9PSAtRUFHQUlOICYmICEocmVxLT5mbGFncyAmIFJFUV9GX05PV0FJVCkpIHsKIAkJc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlX2NvcHk7CiAKLQkJc3FlX2NvcHkgPSBrbWFsbG9jKHNpemVvZigqc3FlX2NvcHkpLCBHRlBfS0VSTkVMKTsKKwkJc3FlX2NvcHkgPSBrbWVtZHVwKHMtPnNxZSwgc2l6ZW9mKCpzcWVfY29weSksIEdGUF9LRVJORUwpOwogCQlpZiAoc3FlX2NvcHkpIHsKIAkJCXN0cnVjdCBhc3luY19saXN0ICpsaXN0OwogCi0JCQltZW1jcHkoc3FlX2NvcHksIHMtPnNxZSwgc2l6ZW9mKCpzcWVfY29weSkpOwogCQkJcy0+c3FlID0gc3FlX2NvcHk7Ci0KIAkJCW1lbWNweSgmcmVxLT5zdWJtaXQsIHMsIHNpemVvZigqcykpOwogCQkJbGlzdCA9IGlvX2FzeW5jX2xpc3RfZnJvbV9zcWUoY3R4LCBzLT5zcWUpOwogCQkJaWYgKCFpb19hZGRfdG9fcHJldl93b3JrKGxpc3QsIHJlcSkpIHsKQEAgLTIzNTksMTggKzI1MzQsMjIgQEAgc3RhdGljIGludCBpb19zdWJtaXRfc3FlcyhzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCwgc3RydWN0IHNxZV9zdWJtaXQgKnNxZXMsCiAJCQlpb19xdWV1ZV9saW5rX2hlYWQoY3R4LCBsaW5rLCAmbGluay0+c3VibWl0LCBzaGFkb3dfcmVxLAogCQkJCQkJdHJ1ZSk7CiAJCQlsaW5rID0gTlVMTDsKKwkJCXNoYWRvd19yZXEgPSBOVUxMOwogCQl9CiAJCXByZXZfd2FzX2xpbmsgPSAoc3Flc1tpXS5zcWUtPmZsYWdzICYgSU9TUUVfSU9fTElOSykgIT0gMDsKIAogCQlpZiAobGluayAmJiAoc3Flc1tpXS5zcWUtPmZsYWdzICYgSU9TUUVfSU9fRFJBSU4pKSB7CiAJCQlpZiAoIXNoYWRvd19yZXEpIHsKIAkJCQlzaGFkb3dfcmVxID0gaW9fZ2V0X3JlcShjdHgsIE5VTEwpOworCQkJCWlmICh1bmxpa2VseSghc2hhZG93X3JlcSkpCisJCQkJCWdvdG8gb3V0OwogCQkJCXNoYWRvd19yZXEtPmZsYWdzIHw9IChSRVFfRl9JT19EUkFJTiB8IFJFUV9GX1NIQURPV19EUkFJTik7CiAJCQkJcmVmY291bnRfZGVjKCZzaGFkb3dfcmVxLT5yZWZzKTsKIAkJCX0KIAkJCXNoYWRvd19yZXEtPnNlcXVlbmNlID0gc3Flc1tpXS5zZXF1ZW5jZTsKIAkJfQogCitvdXQ6CiAJCWlmICh1bmxpa2VseShtbV9mYXVsdCkpIHsKIAkJCWlvX2NxcmluZ19hZGRfZXZlbnQoY3R4LCBzcWVzW2ldLnNxZS0+dXNlcl9kYXRhLAogCQkJCQkJLUVGQVVMVCk7CkBAIC0yNDM2LDcgKzI2MTUsNyBAQCBzdGF0aWMgaW50IGlvX3NxX3RocmVhZCh2b2lkICpkYXRhKQogCQkJICogdG8gc2xlZXAuCiAJCQkgKi8KIAkJCWlmIChpbmZsaWdodCB8fCAhdGltZV9hZnRlcihqaWZmaWVzLCB0aW1lb3V0KSkgewotCQkJCWNwdV9yZWxheCgpOworCQkJCWNvbmRfcmVzY2hlZCgpOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCkBAIC0yNTQ1LDE4ICsyNzI0LDIyIEBAIHN0YXRpYyBpbnQgaW9fcmluZ19zdWJtaXQoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgsIHVuc2lnbmVkIGludCB0b19zdWJtaXQsCiAJCQlpb19xdWV1ZV9saW5rX2hlYWQoY3R4LCBsaW5rLCAmbGluay0+c3VibWl0LCBzaGFkb3dfcmVxLAogCQkJCQkJZm9yY2Vfbm9uYmxvY2spOwogCQkJbGluayA9IE5VTEw7CisJCQlzaGFkb3dfcmVxID0gTlVMTDsKIAkJfQogCQlwcmV2X3dhc19saW5rID0gKHMuc3FlLT5mbGFncyAmIElPU1FFX0lPX0xJTkspICE9IDA7CiAKIAkJaWYgKGxpbmsgJiYgKHMuc3FlLT5mbGFncyAmIElPU1FFX0lPX0RSQUlOKSkgewogCQkJaWYgKCFzaGFkb3dfcmVxKSB7CiAJCQkJc2hhZG93X3JlcSA9IGlvX2dldF9yZXEoY3R4LCBOVUxMKTsKKwkJCQlpZiAodW5saWtlbHkoIXNoYWRvd19yZXEpKQorCQkJCQlnb3RvIG91dDsKIAkJCQlzaGFkb3dfcmVxLT5mbGFncyB8PSAoUkVRX0ZfSU9fRFJBSU4gfCBSRVFfRl9TSEFET1dfRFJBSU4pOwogCQkJCXJlZmNvdW50X2RlYygmc2hhZG93X3JlcS0+cmVmcyk7CiAJCQl9CiAJCQlzaGFkb3dfcmVxLT5zZXF1ZW5jZSA9IHMuc2VxdWVuY2U7CiAJCX0KIAorb3V0OgogCQlzLmhhc191c2VyID0gdHJ1ZTsKIAkJcy5uZWVkc19sb2NrID0gZmFsc2U7CiAJCXMubmVlZHNfZml4ZWRfZmlsZSA9IGZhbHNlOwpAQCAtMjU4NSw2ICsyNzY4LDM4IEBAIHN0YXRpYyBpbnQgaW9fcmluZ19zdWJtaXQoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgsIHVuc2lnbmVkIGludCB0b19zdWJtaXQsCiAJcmV0dXJuIHN1Ym1pdDsKIH0KIAorc3RydWN0IGlvX3dhaXRfcXVldWUgeworCXN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5IHdxOworCXN0cnVjdCBpb19yaW5nX2N0eCAqY3R4OworCXVuc2lnbmVkIHRvX3dhaXQ7CisJdW5zaWduZWQgbnJfdGltZW91dHM7Cit9OworCitzdGF0aWMgaW5saW5lIGJvb2wgaW9fc2hvdWxkX3dha2Uoc3RydWN0IGlvX3dhaXRfcXVldWUgKmlvd3EpCit7CisJc3RydWN0IGlvX3JpbmdfY3R4ICpjdHggPSBpb3dxLT5jdHg7CisKKwkvKgorCSAqIFdha2UgdXAgaWYgd2UgaGF2ZSBlbm91Z2ggZXZlbnRzLCBvciBpZiBhIHRpbWVvdXQgb2NjdXJlZCBzaW5jZSB3ZQorCSAqIHN0YXJ0ZWQgd2FpdGluZy4gRm9yIHRpbWVvdXRzLCB3ZSBhbHdheXMgd2FudCB0byByZXR1cm4gdG8gdXNlcnNwYWNlLAorCSAqIHJlZ2FyZGxlc3Mgb2YgZXZlbnQgY291bnQuCisJICovCisJcmV0dXJuIGlvX2NxcmluZ19ldmVudHMoY3R4LT5yaW5ncykgPj0gaW93cS0+dG9fd2FpdCB8fAorCQkJYXRvbWljX3JlYWQoJmN0eC0+Y3FfdGltZW91dHMpICE9IGlvd3EtPm5yX3RpbWVvdXRzOworfQorCitzdGF0aWMgaW50IGlvX3dha2VfZnVuY3Rpb24oc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKmN1cnIsIHVuc2lnbmVkIGludCBtb2RlLAorCQkJICAgIGludCB3YWtlX2ZsYWdzLCB2b2lkICprZXkpCit7CisJc3RydWN0IGlvX3dhaXRfcXVldWUgKmlvd3EgPSBjb250YWluZXJfb2YoY3Vyciwgc3RydWN0IGlvX3dhaXRfcXVldWUsCisJCQkJCQkJd3EpOworCisJaWYgKCFpb19zaG91bGRfd2FrZShpb3dxKSkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIGF1dG9yZW1vdmVfd2FrZV9mdW5jdGlvbihjdXJyLCBtb2RlLCB3YWtlX2ZsYWdzLCBrZXkpOworfQorCiAvKgogICogV2FpdCB1bnRpbCBldmVudHMgYmVjb21lIGF2YWlsYWJsZSwgaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIHNvbWUuIFRoZQogICogYXBwbGljYXRpb24gbXVzdCByZWFwIHRoZW0gaXRzZWxmLCBhcyB0aGV5IHJlc2lkZSBvbiB0aGUgc2hhcmVkIGNxIHJpbmcuCkBAIC0yNTkyLDYgKzI4MDcsMTUgQEAgc3RhdGljIGludCBpb19yaW5nX3N1Ym1pdChzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCwgdW5zaWduZWQgaW50IHRvX3N1Ym1pdCwKIHN0YXRpYyBpbnQgaW9fY3FyaW5nX3dhaXQoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgsIGludCBtaW5fZXZlbnRzLAogCQkJICBjb25zdCBzaWdzZXRfdCBfX3VzZXIgKnNpZywgc2l6ZV90IHNpZ3N6KQogeworCXN0cnVjdCBpb193YWl0X3F1ZXVlIGlvd3EgPSB7CisJCS53cSA9IHsKKwkJCS5wcml2YXRlCT0gY3VycmVudCwKKwkJCS5mdW5jCQk9IGlvX3dha2VfZnVuY3Rpb24sCisJCQkuZW50cnkJCT0gTElTVF9IRUFEX0lOSVQoaW93cS53cS5lbnRyeSksCisJCX0sCisJCS5jdHgJCT0gY3R4LAorCQkudG9fd2FpdAk9IG1pbl9ldmVudHMsCisJfTsKIAlzdHJ1Y3QgaW9fcmluZ3MgKnJpbmdzID0gY3R4LT5yaW5nczsKIAlpbnQgcmV0OwogCkBAIC0yNjExLDcgKzI4MzUsMjEgQEAgc3RhdGljIGludCBpb19jcXJpbmdfd2FpdChzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCwgaW50IG1pbl9ldmVudHMsCiAJCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShjdHgtPndhaXQsIGlvX2NxcmluZ19ldmVudHMocmluZ3MpID49IG1pbl9ldmVudHMpOworCXJldCA9IDA7CisJaW93cS5ucl90aW1lb3V0cyA9IGF0b21pY19yZWFkKCZjdHgtPmNxX3RpbWVvdXRzKTsKKwlkbyB7CisJCXByZXBhcmVfdG9fd2FpdF9leGNsdXNpdmUoJmN0eC0+d2FpdCwgJmlvd3Eud3EsCisJCQkJCQlUQVNLX0lOVEVSUlVQVElCTEUpOworCQlpZiAoaW9fc2hvdWxkX3dha2UoJmlvd3EpKQorCQkJYnJlYWs7CisJCXNjaGVkdWxlKCk7CisJCWlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KSkgeworCQkJcmV0ID0gLUVSRVNUQVJUU1lTOworCQkJYnJlYWs7CisJCX0KKwl9IHdoaWxlICgxKTsKKwlmaW5pc2hfd2FpdCgmY3R4LT53YWl0LCAmaW93cS53cSk7CisKIAlyZXN0b3JlX3NhdmVkX3NpZ21hc2tfdW5sZXNzKHJldCA9PSAtRVJFU1RBUlRTWVMpOwogCWlmIChyZXQgPT0gLUVSRVNUQVJUU1lTKQogCQlyZXQgPSAtRUlOVFI7CkBAIC0zMjYzLDcgKzM1MDEsNyBAQCBzdGF0aWMgX19wb2xsX3QgaW9fdXJpbmdfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqd2FpdCkKIAlpZiAoUkVBRF9PTkNFKGN0eC0+cmluZ3MtPnNxLnRhaWwpIC0gY3R4LT5jYWNoZWRfc3FfaGVhZCAhPQogCSAgICBjdHgtPnJpbmdzLT5zcV9yaW5nX2VudHJpZXMpCiAJCW1hc2sgfD0gRVBPTExPVVQgfCBFUE9MTFdSTk9STTsKLQlpZiAoUkVBRF9PTkNFKGN0eC0+cmluZ3MtPnNxLmhlYWQpICE9IGN0eC0+Y2FjaGVkX2NxX3RhaWwpCisJaWYgKFJFQURfT05DRShjdHgtPnJpbmdzLT5jcS5oZWFkKSAhPSBjdHgtPmNhY2hlZF9jcV90YWlsKQogCQltYXNrIHw9IEVQT0xMSU4gfCBFUE9MTFJETk9STTsKIAogCXJldHVybiBtYXNrOwpAQCAtMzI4Miw2ICszNTIwLDcgQEAgc3RhdGljIHZvaWQgaW9fcmluZ19jdHhfd2FpdF9hbmRfa2lsbChzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCkKIAlwZXJjcHVfcmVmX2tpbGwoJmN0eC0+cmVmcyk7CiAJbXV0ZXhfdW5sb2NrKCZjdHgtPnVyaW5nX2xvY2spOwogCisJaW9fa2lsbF90aW1lb3V0cyhjdHgpOwogCWlvX3BvbGxfcmVtb3ZlX2FsbChjdHgpOwogCWlvX2lvcG9sbF9yZWFwX2V2ZW50cyhjdHgpOwogCXdhaXRfZm9yX2NvbXBsZXRpb24oJmN0eC0+Y3R4X2RvbmUpOwpAQCAtMzMxOSw3ICszNTU4LDcgQEAgc3RhdGljIGludCBpb191cmluZ19tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAl9CiAKIAlwYWdlID0gdmlydF90b19oZWFkX3BhZ2UocHRyKTsKLQlpZiAoc3ogPiAoUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpKSkKKwlpZiAoc3ogPiBwYWdlX3NpemUocGFnZSkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJcGZuID0gdmlydF90b19waHlzKHB0cikgPj4gUEFHRV9TSElGVDsKZGlmZiAtLWdpdCBhL2ZzL2lvbWFwL2RpcmVjdC1pby5jIGIvZnMvaW9tYXAvZGlyZWN0LWlvLmMKaW5kZXggMTA1MTdjZS4uMWZjMjhjMiAxMDA2NDQKLS0tIGEvZnMvaW9tYXAvZGlyZWN0LWlvLmMKKysrIGIvZnMvaW9tYXAvZGlyZWN0LWlvLmMKQEAgLTI0LDcgKzI0LDcgQEAKIAogc3RydWN0IGlvbWFwX2RpbyB7CiAJc3RydWN0IGtpb2NiCQkqaW9jYjsKLQlpb21hcF9kaW9fZW5kX2lvX3QJKmVuZF9pbzsKKwljb25zdCBzdHJ1Y3QgaW9tYXBfZGlvX29wcyAqZG9wczsKIAlsb2ZmX3QJCQlpX3NpemU7CiAJbG9mZl90CQkJc2l6ZTsKIAlhdG9taWNfdAkJcmVmOwpAQCAtNzIsMTggKzcyLDE0IEBAIHN0YXRpYyB2b2lkIGlvbWFwX2Rpb19zdWJtaXRfYmlvKHN0cnVjdCBpb21hcF9kaW8gKmRpbywgc3RydWN0IGlvbWFwICppb21hcCwKIAogc3RhdGljIHNzaXplX3QgaW9tYXBfZGlvX2NvbXBsZXRlKHN0cnVjdCBpb21hcF9kaW8gKmRpbykKIHsKKwljb25zdCBzdHJ1Y3QgaW9tYXBfZGlvX29wcyAqZG9wcyA9IGRpby0+ZG9wczsKIAlzdHJ1Y3Qga2lvY2IgKmlvY2IgPSBkaW8tPmlvY2I7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoaW9jYi0+a2lfZmlscCk7CiAJbG9mZl90IG9mZnNldCA9IGlvY2ItPmtpX3BvczsKLQlzc2l6ZV90IHJldDsKKwlzc2l6ZV90IHJldCA9IGRpby0+ZXJyb3I7CiAKLQlpZiAoZGlvLT5lbmRfaW8pIHsKLQkJcmV0ID0gZGlvLT5lbmRfaW8oaW9jYiwKLQkJCQlkaW8tPmVycm9yID8gZGlvLT5lcnJvciA6IGRpby0+c2l6ZSwKLQkJCQlkaW8tPmZsYWdzKTsKLQl9IGVsc2UgewotCQlyZXQgPSBkaW8tPmVycm9yOwotCX0KKwlpZiAoZG9wcyAmJiBkb3BzLT5lbmRfaW8pCisJCXJldCA9IGRvcHMtPmVuZF9pbyhpb2NiLCBkaW8tPnNpemUsIHJldCwgZGlvLT5mbGFncyk7CiAKIAlpZiAobGlrZWx5KCFyZXQpKSB7CiAJCXJldCA9IGRpby0+c2l6ZTsKQEAgLTEwMSw5ICs5Nyw5IEBAIHN0YXRpYyBzc2l6ZV90IGlvbWFwX2Rpb19jb21wbGV0ZShzdHJ1Y3QgaW9tYXBfZGlvICpkaW8pCiAJICogb25lIGlzIGEgcHJldHR5IGNyYXp5IHRoaW5nIHRvIGRvLCBzbyB3ZSBkb24ndCBzdXBwb3J0IGl0IDEwMCUuICBJZgogCSAqIHRoaXMgaW52YWxpZGF0aW9uIGZhaWxzLCB0b3VnaCwgdGhlIHdyaXRlIHN0aWxsIHdvcmtlZC4uLgogCSAqCi0JICogQW5kIHRoaXMgcGFnZSBjYWNoZSBpbnZhbGlkYXRpb24gaGFzIHRvIGJlIGFmdGVyIGRpby0+ZW5kX2lvKCksIGFzCi0JICogc29tZSBmaWxlc3lzdGVtcyBjb252ZXJ0IHVud3JpdHRlbiBleHRlbnRzIHRvIHJlYWwgYWxsb2NhdGlvbnMgaW4KLQkgKiBlbmRfaW8oKSB3aGVuIG5lY2Vzc2FyeSwgb3RoZXJ3aXNlIGEgcmFjaW5nIGJ1ZmZlciByZWFkIHdvdWxkIGNhY2hlCisJICogQW5kIHRoaXMgcGFnZSBjYWNoZSBpbnZhbGlkYXRpb24gaGFzIHRvIGJlIGFmdGVyIC0+ZW5kX2lvKCksIGFzIHNvbWUKKwkgKiBmaWxlc3lzdGVtcyBjb252ZXJ0IHVud3JpdHRlbiBleHRlbnRzIHRvIHJlYWwgYWxsb2NhdGlvbnMgaW4KKwkgKiAtPmVuZF9pbygpIHdoZW4gbmVjZXNzYXJ5LCBvdGhlcndpc2UgYSByYWNpbmcgYnVmZmVyIHJlYWQgd291bGQgY2FjaGUKIAkgKiB6ZXJvcyBmcm9tIHVud3JpdHRlbiBleHRlbnRzLgogCSAqLwogCWlmICghZGlvLT5lcnJvciAmJgpAQCAtMzk2LDcgKzM5Miw3IEBAIGlvbWFwX2Rpb19hY3RvcihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgcG9zLCBsb2ZmX3QgbGVuZ3RoLAogICovCiBzc2l6ZV90CiBpb21hcF9kaW9fcncoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCi0JCWNvbnN0IHN0cnVjdCBpb21hcF9vcHMgKm9wcywgaW9tYXBfZGlvX2VuZF9pb190IGVuZF9pbykKKwkJY29uc3Qgc3RydWN0IGlvbWFwX29wcyAqb3BzLCBjb25zdCBzdHJ1Y3QgaW9tYXBfZGlvX29wcyAqZG9wcykKIHsKIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGlvY2ItPmtpX2ZpbHAtPmZfbWFwcGluZzsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShpb2NiLT5raV9maWxwKTsKQEAgLTQyMSw3ICs0MTcsNyBAQCBpb21hcF9kaW9fcncoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCiAJYXRvbWljX3NldCgmZGlvLT5yZWYsIDEpOwogCWRpby0+c2l6ZSA9IDA7CiAJZGlvLT5pX3NpemUgPSBpX3NpemVfcmVhZChpbm9kZSk7Ci0JZGlvLT5lbmRfaW8gPSBlbmRfaW87CisJZGlvLT5kb3BzID0gZG9wczsKIAlkaW8tPmVycm9yID0gMDsKIAlkaW8tPmZsYWdzID0gMDsKIApkaWZmIC0tZ2l0IGEvZnMvaXNvZnMvaW5vZGUuYyBiL2ZzL2lzb2ZzL2lub2RlLmMKaW5kZXggOWUzMGQ4Ny4uNjJjMDQ2MiAxMDA2NDQKLS0tIGEvZnMvaXNvZnMvaW5vZGUuYworKysgYi9mcy9pc29mcy9pbm9kZS5jCkBAIC0zMCw2ICszMCw5IEBACiAjaW5jbHVkZSAiaXNvZnMuaCIKICNpbmNsdWRlICJ6aXNvZnMuaCIKIAorLyogbWF4IHR6IG9mZnNldCBpcyAxMyBob3VycyAqLworI2RlZmluZSBNQVhfVFpfT0ZGU0VUICg1MioxNSo2MCkKKwogI2RlZmluZSBCRVFVSUVUCiAKIHN0YXRpYyBpbnQgaXNvZnNfaGFzaGkoY29uc3Qgc3RydWN0IGRlbnRyeSAqcGFyZW50LCBzdHJ1Y3QgcXN0ciAqcXN0cik7CkBAIC04MDEsNiArODA0LDEwIEBAIHN0YXRpYyBpbnQgaXNvZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJICovCiAJcy0+c19tYXhieXRlcyA9IDB4ODAwMDAwMDAwMDBMTDsKIAorCS8qIEVDTUEtMTE5IHRpbWVzdGFtcCBmcm9tIDE5MDAvMS8xIHdpdGggdHogb2Zmc2V0ICovCisJcy0+c190aW1lX21pbiA9IG1rdGltZTY0KDE5MDAsIDEsIDEsIDAsIDAsIDApIC0gTUFYX1RaX09GRlNFVDsKKwlzLT5zX3RpbWVfbWF4ID0gbWt0aW1lNjQoVThfTUFYKzE5MDAsIDEyLCAzMSwgMjMsIDU5LCA1OSkgKyBNQVhfVFpfT0ZGU0VUOworCiAJLyogU2V0IHRoaXMgZm9yIHJlZmVyZW5jZS4gSXRzIG5vdCBjdXJyZW50bHkgdXNlZCBleGNlcHQgb24gd3JpdGUKIAkgICB3aGljaCB3ZSBkb24ndCBoYXZlIC4uICovCiAKZGlmZiAtLWdpdCBhL2ZzL2piZDIvam91cm5hbC5jIGIvZnMvamJkMi9qb3VybmFsLmMKaW5kZXggOTUzOTkwZS4uMWM1ODg1OSAxMDA2NDQKLS0tIGEvZnMvamJkMi9qb3VybmFsLmMKKysrIGIvZnMvamJkMi9qb3VybmFsLmMKQEAgLTg5LDggKzg5LDYgQEAgRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfYmxvY2tzX3Blcl9wYWdlKTsKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2ludmFsaWRhdGVwYWdlKTsKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX3RyeV90b19mcmVlX2J1ZmZlcnMpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfZm9yY2VfY29tbWl0KTsKLUVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2lub2RlX2FkZF93cml0ZSk7Ci1FWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9pbm9kZV9hZGRfd2FpdCk7CiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9pbm9kZV9yYW5nZWRfd3JpdGUpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfaW5vZGVfcmFuZ2VkX3dhaXQpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfaW5pdF9qYmRfaW5vZGUpOwpkaWZmIC0tZ2l0IGEvZnMvamJkMi9yZXZva2UuYyBiL2ZzL2piZDIvcmV2b2tlLmMKaW5kZXggNjliOWJjMy4uZjA4MDczZCAxMDA2NDQKLS0tIGEvZnMvamJkMi9yZXZva2UuYworKysgYi9mcy9qYmQyL3Jldm9rZS5jCkBAIC02MzgsMTAgKzYzOCw4IEBAIHN0YXRpYyB2b2lkIGZsdXNoX2Rlc2NyaXB0b3Ioam91cm5hbF90ICpqb3VybmFsLAogewogCWpiZDJfam91cm5hbF9yZXZva2VfaGVhZGVyX3QgKmhlYWRlcjsKIAotCWlmIChpc19qb3VybmFsX2Fib3J0ZWQoam91cm5hbCkpIHsKLQkJcHV0X2JoKGRlc2NyaXB0b3IpOworCWlmIChpc19qb3VybmFsX2Fib3J0ZWQoam91cm5hbCkpCiAJCXJldHVybjsKLQl9CiAKIAloZWFkZXIgPSAoamJkMl9qb3VybmFsX3Jldm9rZV9oZWFkZXJfdCAqKWRlc2NyaXB0b3ItPmJfZGF0YTsKIAloZWFkZXItPnJfY291bnQgPSBjcHVfdG9fYmUzMihvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvZnMvamJkMi90cmFuc2FjdGlvbi5jIGIvZnMvamJkMi90cmFuc2FjdGlvbi5jCmluZGV4IDk5MGU3YjUuLmJlZTg0OTggMTAwNjQ0Ci0tLSBhL2ZzL2piZDIvdHJhbnNhY3Rpb24uYworKysgYi9mcy9qYmQyL3RyYW5zYWN0aW9uLmMKQEAgLTU2OSw2ICs1NjksOSBAQCBpbnQgamJkMl9qb3VybmFsX3N0YXJ0X3Jlc2VydmVkKGhhbmRsZV90ICpoYW5kbGUsIHVuc2lnbmVkIGludCB0eXBlLAogCX0KIAloYW5kbGUtPmhfdHlwZSA9IHR5cGU7CiAJaGFuZGxlLT5oX2xpbmVfbm8gPSBsaW5lX25vOworCXRyYWNlX2piZDJfaGFuZGxlX3N0YXJ0KGpvdXJuYWwtPmpfZnNfZGV2LT5iZF9kZXYsCisJCQkJaGFuZGxlLT5oX3RyYW5zYWN0aW9uLT50X3RpZCwgdHlwZSwKKwkJCQlsaW5lX25vLCBoYW5kbGUtPmhfYnVmZmVyX2NyZWRpdHMpOwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWQpOwpAQCAtMjYxOSwxOCArMjYyMiw2IEBAIHN0YXRpYyBpbnQgamJkMl9qb3VybmFsX2ZpbGVfaW5vZGUoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGpiZDJfaW5vZGUgKmppbm9kZSwKIAlyZXR1cm4gMDsKIH0KIAotaW50IGpiZDJfam91cm5hbF9pbm9kZV9hZGRfd3JpdGUoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGpiZDJfaW5vZGUgKmppbm9kZSkKLXsKLQlyZXR1cm4gamJkMl9qb3VybmFsX2ZpbGVfaW5vZGUoaGFuZGxlLCBqaW5vZGUsCi0JCQlKSV9XUklURV9EQVRBIHwgSklfV0FJVF9EQVRBLCAwLCBMTE9OR19NQVgpOwotfQotCi1pbnQgamJkMl9qb3VybmFsX2lub2RlX2FkZF93YWl0KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUpCi17Ci0JcmV0dXJuIGpiZDJfam91cm5hbF9maWxlX2lub2RlKGhhbmRsZSwgamlub2RlLCBKSV9XQUlUX0RBVEEsIDAsCi0JCQlMTE9OR19NQVgpOwotfQotCiBpbnQgamJkMl9qb3VybmFsX2lub2RlX3JhbmdlZF93cml0ZShoYW5kbGVfdCAqaGFuZGxlLAogCQlzdHJ1Y3QgamJkMl9pbm9kZSAqamlub2RlLCBsb2ZmX3Qgc3RhcnRfYnl0ZSwgbG9mZl90IGxlbmd0aCkKIHsKZGlmZiAtLWdpdCBhL2ZzL2pmZnMyL2ZzLmMgYi9mcy9qZmZzMi9mcy5jCmluZGV4IDhhMjBkZGQuLmFiOGNkZDkgMTAwNjQ0Ci0tLSBhL2ZzL2pmZnMyL2ZzLmMKKysrIGIvZnMvamZmczIvZnMuYwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvY3JlZC5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZnNfY29udGV4dC5oPgogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgpAQCAtMTg0LDcgKzE4NSw3IEBAIGludCBqZmZzMl9kb19zZXRhdHRyIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaWF0dHIgKmlhdHRyKQogCWlmIChpdmFsaWQgJiBBVFRSX1NJWkUgJiYgaW5vZGUtPmlfc2l6ZSA+IGlhdHRyLT5pYV9zaXplKSB7CiAJCXRydW5jYXRlX3NldHNpemUoaW5vZGUsIGlhdHRyLT5pYV9zaXplKTsKIAkJaW5vZGUtPmlfYmxvY2tzID0gKGlub2RlLT5pX3NpemUgKyA1MTEpID4+IDk7Ci0JfQkKKwl9CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTM5MSw3ICszOTIsNyBAQCB2b2lkIGpmZnMyX2RpcnR5X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBmbGFncykKIAlqZmZzMl9kb19zZXRhdHRyKGlub2RlLCAmaWF0dHIpOwogfQogCi1pbnQgamZmczJfZG9fcmVtb3VudF9mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgKmZsYWdzLCBjaGFyICpkYXRhKQoraW50IGpmZnMyX2RvX3JlbW91bnRfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewogCXN0cnVjdCBqZmZzMl9zYl9pbmZvICpjID0gSkZGUzJfU0JfSU5GTyhzYik7CiAKQEAgLTQwOSwxMCArNDEwLDEwIEBAIGludCBqZmZzMl9kb19yZW1vdW50X2ZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRhdGEpCiAJCW11dGV4X3VubG9jaygmYy0+YWxsb2Nfc2VtKTsKIAl9CiAKLQlpZiAoISgqZmxhZ3MgJiBTQl9SRE9OTFkpKQorCWlmICghKGZjLT5zYl9mbGFncyAmIFNCX1JET05MWSkpCiAJCWpmZnMyX3N0YXJ0X2dhcmJhZ2VfY29sbGVjdF90aHJlYWQoYyk7CiAKLQkqZmxhZ3MgfD0gU0JfTk9BVElNRTsKKwlmYy0+c2JfZmxhZ3MgfD0gU0JfTk9BVElNRTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTA5LDcgKzUxMCw3IEBAIHN0YXRpYyBpbnQgY2FsY3VsYXRlX2lub2NhY2hlX2hhc2hzaXplKHVpbnQzMl90IGZsYXNoX3NpemUpCiAJcmV0dXJuIGhhc2hzaXplOwogfQogCi1pbnQgamZmczJfZG9fZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQoraW50IGpmZnMyX2RvX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewogCXN0cnVjdCBqZmZzMl9zYl9pbmZvICpjOwogCXN0cnVjdCBpbm9kZSAqcm9vdF9pOwpAQCAtNTI0LDExICs1MjUsMTEgQEAgaW50IGpmZnMyX2RvX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAogI2lmbmRlZiBDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVIKIAlpZiAoYy0+bXRkLT50eXBlID09IE1URF9OQU5ERkxBU0gpIHsKLQkJcHJfZXJyKCJDYW5ub3Qgb3BlcmF0ZSBvbiBOQU5EIGZsYXNoIHVubGVzcyBqZmZzMiBOQU5EIHN1cHBvcnQgaXMgY29tcGlsZWQgaW5cbiIpOworCQllcnJvcmYoZmMsICJDYW5ub3Qgb3BlcmF0ZSBvbiBOQU5EIGZsYXNoIHVubGVzcyBqZmZzMiBOQU5EIHN1cHBvcnQgaXMgY29tcGlsZWQgaW4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCWlmIChjLT5tdGQtPnR5cGUgPT0gTVREX0RBVEFGTEFTSCkgewotCQlwcl9lcnIoIkNhbm5vdCBvcGVyYXRlIG9uIERhdGFGbGFzaCB1bmxlc3MgamZmczIgRGF0YUZsYXNoIHN1cHBvcnQgaXMgY29tcGlsZWQgaW5cbiIpOworCQllcnJvcmYoZmMsICJDYW5ub3Qgb3BlcmF0ZSBvbiBEYXRhRmxhc2ggdW5sZXNzIGpmZnMyIERhdGFGbGFzaCBzdXBwb3J0IGlzIGNvbXBpbGVkIGluIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KICNlbmRpZgpAQCAtNTQyLDEyICs1NDMsMTIgQEAgaW50IGpmZnMyX2RvX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAkgKi8KIAlpZiAoKGMtPnNlY3Rvcl9zaXplICogYmxvY2tzKSAhPSBjLT5mbGFzaF9zaXplKSB7CiAJCWMtPmZsYXNoX3NpemUgPSBjLT5zZWN0b3Jfc2l6ZSAqIGJsb2NrczsKLQkJcHJfaW5mbygiRmxhc2ggc2l6ZSBub3QgYWxpZ25lZCB0byBlcmFzZXNpemUsIHJlZHVjaW5nIHRvICVkS2lCXG4iLAotCQkJYy0+Zmxhc2hfc2l6ZSAvIDEwMjQpOworCQlpbmZvZihmYywgIkZsYXNoIHNpemUgbm90IGFsaWduZWQgdG8gZXJhc2VzaXplLCByZWR1Y2luZyB0byAlZEtpQiIsCisJCSAgICAgIGMtPmZsYXNoX3NpemUgLyAxMDI0KTsKIAl9CiAKIAlpZiAoYy0+Zmxhc2hfc2l6ZSA8IDUqYy0+c2VjdG9yX3NpemUpIHsKLQkJcHJfZXJyKCJUb28gZmV3IGVyYXNlIGJsb2NrcyAoJWQpXG4iLAorCQllcnJvcmYoZmMsICJUb28gZmV3IGVyYXNlIGJsb2NrcyAoJWQpIiwKIAkJICAgICAgIGMtPmZsYXNoX3NpemUgLyBjLT5zZWN0b3Jfc2l6ZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTU5MCw2ICs1OTEsOSBAQCBpbnQgamZmczJfZG9fZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCXNiLT5zX2Jsb2Nrc2l6ZSA9IFBBR0VfU0laRTsKIAlzYi0+c19ibG9ja3NpemVfYml0cyA9IFBBR0VfU0hJRlQ7CiAJc2ItPnNfbWFnaWMgPSBKRkZTMl9TVVBFUl9NQUdJQzsKKwlzYi0+c190aW1lX21pbiA9IDA7CisJc2ItPnNfdGltZV9tYXggPSBVMzJfTUFYOworCiAJaWYgKCFzYl9yZG9ubHkoc2IpKQogCQlqZmZzMl9zdGFydF9nYXJiYWdlX2NvbGxlY3RfdGhyZWFkKGMpOwogCXJldHVybiAwOwpAQCAtNjc4LDMzICs2ODIsNiBAQCBzdHJ1Y3QgamZmczJfaW5vZGVfaW5mbyAqamZmczJfZ2NfZmV0Y2hfaW5vZGUoc3RydWN0IGpmZnMyX3NiX2luZm8gKmMsCiAJcmV0dXJuIEpGRlMyX0lOT0RFX0lORk8oaW5vZGUpOwogfQogCi11bnNpZ25lZCBjaGFyICpqZmZzMl9nY19mZXRjaF9wYWdlKHN0cnVjdCBqZmZzMl9zYl9pbmZvICpjLAotCQkJCSAgIHN0cnVjdCBqZmZzMl9pbm9kZV9pbmZvICpmLAotCQkJCSAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAotCQkJCSAgIHVuc2lnbmVkIGxvbmcgKnByaXYpCi17Ci0Jc3RydWN0IGlub2RlICppbm9kZSA9IE9GTklfRURPTklfMlNGRkooZik7Ci0Jc3RydWN0IHBhZ2UgKnBnOwotCi0JcGcgPSByZWFkX2NhY2hlX3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgb2Zmc2V0ID4+IFBBR0VfU0hJRlQsCi0JCQkgICAgIGpmZnMyX2RvX3JlYWRwYWdlX3VubG9jaywgaW5vZGUpOwotCWlmIChJU19FUlIocGcpKQotCQlyZXR1cm4gKHZvaWQgKilwZzsKLQotCSpwcml2ID0gKHVuc2lnbmVkIGxvbmcpcGc7Ci0JcmV0dXJuIGttYXAocGcpOwotfQotCi12b2lkIGpmZnMyX2djX3JlbGVhc2VfcGFnZShzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYywKLQkJCSAgIHVuc2lnbmVkIGNoYXIgKnB0ciwKLQkJCSAgIHVuc2lnbmVkIGxvbmcgKnByaXYpCi17Ci0Jc3RydWN0IHBhZ2UgKnBnID0gKHZvaWQgKikqcHJpdjsKLQotCWt1bm1hcChwZyk7Ci0JcHV0X3BhZ2UocGcpOwotfQotCiBzdGF0aWMgaW50IGpmZnMyX2ZsYXNoX3NldHVwKHN0cnVjdCBqZmZzMl9zYl9pbmZvICpjKSB7CiAJaW50IHJldCA9IDA7CiAKZGlmZiAtLWdpdCBhL2ZzL2pmZnMyL2djLmMgYi9mcy9qZmZzMi9nYy5jCmluZGV4IDllZDBmMjYuLjM3M2IzYjdjIDEwMDY0NAotLS0gYS9mcy9qZmZzMi9nYy5jCisrKyBiL2ZzL2pmZnMyL2djLmMKQEAgLTExNjUsMTIgKzExNjUsMTMgQEAgc3RhdGljIGludCBqZmZzMl9nYXJiYWdlX2NvbGxlY3RfZG5vZGUoc3RydWN0IGpmZnMyX3NiX2luZm8gKmMsIHN0cnVjdCBqZmZzMl9lcmEKIAkJCQkgICAgICAgc3RydWN0IGpmZnMyX2lub2RlX2luZm8gKmYsIHN0cnVjdCBqZmZzMl9mdWxsX2Rub2RlICpmbiwKIAkJCQkgICAgICAgdWludDMyX3Qgc3RhcnQsIHVpbnQzMl90IGVuZCkKIHsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gT0ZOSV9FRE9OSV8yU0ZGSihmKTsKIAlzdHJ1Y3QgamZmczJfZnVsbF9kbm9kZSAqbmV3X2ZuOwogCXN0cnVjdCBqZmZzMl9yYXdfaW5vZGUgcmk7CiAJdWludDMyX3QgYWxsb2NsZW4sIG9mZnNldCwgb3JpZ19lbmQsIG9yaWdfc3RhcnQ7CiAJaW50IHJldCA9IDA7CiAJdW5zaWduZWQgY2hhciAqY29tcHJidWYgPSBOVUxMLCAqd3JpdGVidWY7Ci0JdW5zaWduZWQgbG9uZyBwZzsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAl1bnNpZ25lZCBjaGFyICpwZ19wdHI7CiAKIAltZW1zZXQoJnJpLCAwLCBzaXplb2YocmkpKTsKQEAgLTEzMjUsMTUgKzEzMjYsMTggQEAgc3RhdGljIGludCBqZmZzMl9nYXJiYWdlX2NvbGxlY3RfZG5vZGUoc3RydWN0IGpmZnMyX3NiX2luZm8gKmMsIHN0cnVjdCBqZmZzMl9lcmEKIAkgKiBlbmQgdXAgaGVyZSB0cnlpbmcgdG8gR0MgdGhlICpzYW1lKiBwYWdlIHRoYXQgamZmczJfd3JpdGVfYmVnaW4oKSBpcwogCSAqIHRyeWluZyB0byB3cml0ZSBvdXQsIHJlYWRfY2FjaGVfcGFnZSgpIHdpbGwgbm90IGRlYWRsb2NrLiAqLwogCW11dGV4X3VubG9jaygmZi0+c2VtKTsKLQlwZ19wdHIgPSBqZmZzMl9nY19mZXRjaF9wYWdlKGMsIGYsIHN0YXJ0LCAmcGcpOwotCW11dGV4X2xvY2soJmYtPnNlbSk7Ci0KLQlpZiAoSVNfRVJSKHBnX3B0cikpIHsKKwlwYWdlID0gcmVhZF9jYWNoZV9wYWdlKGlub2RlLT5pX21hcHBpbmcsIHN0YXJ0ID4+IFBBR0VfU0hJRlQsCisJCQkgICAgICAgamZmczJfZG9fcmVhZHBhZ2VfdW5sb2NrLCBpbm9kZSk7CisJaWYgKElTX0VSUihwYWdlKSkgewogCQlwcl93YXJuKCJyZWFkX2NhY2hlX3BhZ2UoKSByZXR1cm5lZCBlcnJvcjogJWxkXG4iLAotCQkJUFRSX0VSUihwZ19wdHIpKTsKLQkJcmV0dXJuIFBUUl9FUlIocGdfcHRyKTsKKwkJCVBUUl9FUlIocGFnZSkpOworCQltdXRleF9sb2NrKCZmLT5zZW0pOworCQlyZXR1cm4gUFRSX0VSUihwYWdlKTsKIAl9CiAKKwlwZ19wdHIgPSBrbWFwKHBhZ2UpOworCW11dGV4X2xvY2soJmYtPnNlbSk7CisKIAlvZmZzZXQgPSBzdGFydDsKIAl3aGlsZShvZmZzZXQgPCBvcmlnX2VuZCkgewogCQl1aW50MzJfdCBkYXRhbGVuOwpAQCAtMTM5Niw2ICsxNDAwLDcgQEAgc3RhdGljIGludCBqZmZzMl9nYXJiYWdlX2NvbGxlY3RfZG5vZGUoc3RydWN0IGpmZnMyX3NiX2luZm8gKmMsIHN0cnVjdCBqZmZzMl9lcmEKIAkJfQogCX0KIAotCWpmZnMyX2djX3JlbGVhc2VfcGFnZShjLCBwZ19wdHIsICZwZyk7CisJa3VubWFwKHBhZ2UpOworCXB1dF9wYWdlKHBhZ2UpOwogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9mcy9qZmZzMi9ub2RlbGlzdC5jIGIvZnMvamZmczIvbm9kZWxpc3QuYwppbmRleCBiODZjNzhkLi4wMjFhNGEyIDEwMDY0NAotLS0gYS9mcy9qZmZzMi9ub2RlbGlzdC5jCisrKyBiL2ZzL2pmZnMyL25vZGVsaXN0LmMKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgaW50IGpmZnMyX2FkZF9mcmFnX3RvX2ZyYWd0cmVlKHN0cnVjdCBqZmZzMl9zYl9pbmZvICpjLCBzdHJ1Y3QgcmJfcm9vdCAqcgogCQlsYXN0ZW5kID0gdGhpcy0+b2ZzICsgdGhpcy0+c2l6ZTsKIAl9IGVsc2UgewogCQlkYmdfZnJhZ3RyZWUyKCJsb29rdXAgZ2F2ZSBubyBmcmFnXG4iKTsKLQkJbGFzdGVuZCA9IDA7CisJCXJldHVybiAtRUlOVkFMOwogCX0KIAogCS8qIFNlZSBpZiB3ZSByYW4gb2ZmIHRoZSBlbmQgb2YgdGhlIGZyYWd0cmVlICovCmRpZmYgLS1naXQgYS9mcy9qZmZzMi9vcy1saW51eC5oIGIvZnMvamZmczIvb3MtbGludXguaAppbmRleCBiZDNkNWYwZC4uZWYxY2ZhNiAxMDA2NDQKLS0tIGEvZnMvamZmczIvb3MtbGludXguaAorKysgYi9mcy9qZmZzMi9vcy1saW51eC5oCkBAIC0xNzIsOCArMTcyLDggQEAgdm9pZCBqZmZzMl9kaXJ0eV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgZmxhZ3MpOwogc3RydWN0IGlub2RlICpqZmZzMl9uZXdfaW5vZGUgKHN0cnVjdCBpbm9kZSAqZGlyX2ksIHVtb2RlX3QgbW9kZSwKIAkJCSAgICAgICBzdHJ1Y3QgamZmczJfcmF3X2lub2RlICpyaSk7CiBpbnQgamZmczJfc3RhdGZzIChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBrc3RhdGZzICopOwotaW50IGpmZnMyX2RvX3JlbW91bnRfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCAqLCBjaGFyICopOwotaW50IGpmZnMyX2RvX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCk7CitpbnQgamZmczJfZG9fcmVtb3VudF9mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpOworaW50IGpmZnMyX2RvX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKTsKIHZvaWQgamZmczJfZ2NfcmVsZWFzZV9pbm9kZShzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYywKIAkJCSAgICBzdHJ1Y3QgamZmczJfaW5vZGVfaW5mbyAqZik7CiBzdHJ1Y3QgamZmczJfaW5vZGVfaW5mbyAqamZmczJfZ2NfZmV0Y2hfaW5vZGUoc3RydWN0IGpmZnMyX3NiX2luZm8gKmMsCkBAIC0xODMsOSArMTgzLDYgQEAgdW5zaWduZWQgY2hhciAqamZmczJfZ2NfZmV0Y2hfcGFnZShzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYywKIAkJCQkgICBzdHJ1Y3QgamZmczJfaW5vZGVfaW5mbyAqZiwKIAkJCQkgICB1bnNpZ25lZCBsb25nIG9mZnNldCwKIAkJCQkgICB1bnNpZ25lZCBsb25nICpwcml2KTsKLXZvaWQgamZmczJfZ2NfcmVsZWFzZV9wYWdlKHN0cnVjdCBqZmZzMl9zYl9pbmZvICpjLAotCQkJICAgdW5zaWduZWQgY2hhciAqcGcsCi0JCQkgICB1bnNpZ25lZCBsb25nICpwcml2KTsKIHZvaWQgamZmczJfZmxhc2hfY2xlYW51cChzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYyk7CiAKIApkaWZmIC0tZ2l0IGEvZnMvamZmczIvc2Nhbi5jIGIvZnMvamZmczIvc2Nhbi5jCmluZGV4IDkwNDMxZGQuLjVmN2UyODQgMTAwNjQ0Ci0tLSBhL2ZzL2pmZnMyL3NjYW4uYworKysgYi9mcy9qZmZzMi9zY2FuLmMKQEAgLTUyNyw4ICs1MjcsMTEgQEAgc3RhdGljIGludCBqZmZzMl9zY2FuX2VyYXNlYmxvY2sgKHN0cnVjdCBqZmZzMl9zYl9pbmZvICpjLCBzdHJ1Y3QgamZmczJfZXJhc2VibG8KIAkJCQkJZXJyID0gamZmczJfZmlsbF9zY2FuX2J1ZihjLCBzdW1wdHIsIAogCQkJCQkJCQkgIGplYi0+b2Zmc2V0ICsgYy0+c2VjdG9yX3NpemUgLSBzdW1sZW4sCiAJCQkJCQkJCSAgc3VtbGVuIC0gYnVmX2xlbik7CQkJCQotCQkJCQlpZiAoZXJyKQorCQkJCQlpZiAoZXJyKSB7CisJCQkJCQlpZiAoc3VtbGVuID4gYnVmX3NpemUpCisJCQkJCQkJa2ZyZWUoc3VtcHRyKTsKIAkJCQkJCXJldHVybiBlcnI7CisJCQkJCX0KIAkJCQl9CiAJCQl9CiAKZGlmZiAtLWdpdCBhL2ZzL2pmZnMyL3N1cGVyLmMgYi9mcy9qZmZzMi9zdXBlci5jCmluZGV4IGFmNGFhNjUuLjBlNjQwNmMgMTAwNjQ0Ci0tLSBhL2ZzL2pmZnMyL3N1cGVyLmMKKysrIGIvZnMvamZmczIvc3VwZXIuYwpAQCAtMTksNyArMTksOCBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KLSNpbmNsdWRlIDxsaW51eC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9mc19jb250ZXh0Lmg+CisjaW5jbHVkZSA8bGludXgvZnNfcGFyc2VyLmg+CiAjaW5jbHVkZSA8bGludXgvamZmczIuaD4KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL3N1cGVyLmg+CkBAIC0xNTcsOTYgKzE1OCw3NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4cG9ydF9vcGVyYXRpb25zIGpmZnMyX2V4cG9ydF9vcHMgPSB7CiAvKgogICogSkZGUzIgbW91bnQgb3B0aW9ucy4KICAqCisgKiBPcHRfc291cmNlOiBUaGUgc291cmNlIGRldmljZQogICogT3B0X292ZXJyaWRlX2NvbXByOiBvdmVycmlkZSBkZWZhdWx0IGNvbXByZXNzb3IKICAqIE9wdF9ycF9zaXplOiBzaXplIG9mIHJlc2VydmVkIHBvb2wgaW4gS2lCCi0gKiBPcHRfZXJyOiBqdXN0IGVuZCBvZiBhcnJheSBtYXJrZXIKICAqLwogZW51bSB7CiAJT3B0X292ZXJyaWRlX2NvbXByLAogCU9wdF9ycF9zaXplLAotCU9wdF9lcnIsCiB9OwogCi1zdGF0aWMgY29uc3QgbWF0Y2hfdGFibGVfdCB0b2tlbnMgPSB7Ci0Je09wdF9vdmVycmlkZV9jb21wciwgImNvbXByPSVzIn0sCi0Je09wdF9ycF9zaXplLCAicnBfc2l6ZT0ldSJ9LAotCXtPcHRfZXJyLCBOVUxMfSwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnNfcGFyYW1ldGVyX3NwZWMgamZmczJfcGFyYW1fc3BlY3NbXSA9IHsKKwlmc3BhcmFtX2VudW0JKCJjb21wciIsCU9wdF9vdmVycmlkZV9jb21wciksCisJZnNwYXJhbV91MzIJKCJycF9zaXplIiwJT3B0X3JwX3NpemUpLAorCXt9CiB9OwogCi1zdGF0aWMgaW50IGpmZnMyX3BhcnNlX29wdGlvbnMoc3RydWN0IGpmZnMyX3NiX2luZm8gKmMsIGNoYXIgKmRhdGEpCi17Ci0Jc3Vic3RyaW5nX3QgYXJnc1tNQVhfT1BUX0FSR1NdOwotCWNoYXIgKnAsICpuYW1lOwotCXVuc2lnbmVkIGludCBvcHQ7Ci0KLQlpZiAoIWRhdGEpCi0JCXJldHVybiAwOwotCi0Jd2hpbGUgKChwID0gc3Ryc2VwKCZkYXRhLCAiLCIpKSkgewotCQlpbnQgdG9rZW47Ci0KLQkJaWYgKCEqcCkKLQkJCWNvbnRpbnVlOwotCi0JCXRva2VuID0gbWF0Y2hfdG9rZW4ocCwgdG9rZW5zLCBhcmdzKTsKLQkJc3dpdGNoICh0b2tlbikgewotCQljYXNlIE9wdF9vdmVycmlkZV9jb21wcjoKLQkJCW5hbWUgPSBtYXRjaF9zdHJkdXAoJmFyZ3NbMF0pOwotCi0JCQlpZiAoIW5hbWUpCi0JCQkJcmV0dXJuIC1FTk9NRU07Ci0JCQlpZiAoIXN0cmNtcChuYW1lLCAibm9uZSIpKQotCQkJCWMtPm1vdW50X29wdHMuY29tcHIgPSBKRkZTMl9DT01QUl9NT0RFX05PTkU7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX3BhcmFtZXRlcl9lbnVtIGpmZnMyX3BhcmFtX2VudW1zW10gPSB7CisJeyBPcHRfb3ZlcnJpZGVfY29tcHIsCSJub25lIiwJSkZGUzJfQ09NUFJfTU9ERV9OT05FIH0sCiAjaWZkZWYgQ09ORklHX0pGRlMyX0xaTwotCQkJZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAibHpvIikpCi0JCQkJYy0+bW91bnRfb3B0cy5jb21wciA9IEpGRlMyX0NPTVBSX01PREVfRk9SQ0VMWk87CisJeyBPcHRfb3ZlcnJpZGVfY29tcHIsCSJsem8iLAlKRkZTMl9DT01QUl9NT0RFX0ZPUkNFTFpPIH0sCiAjZW5kaWYKICNpZmRlZiBDT05GSUdfSkZGUzJfWkxJQgotCQkJZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiemxpYiIpKQotCQkJCWMtPm1vdW50X29wdHMuY29tcHIgPQotCQkJCQkJSkZGUzJfQ09NUFJfTU9ERV9GT1JDRVpMSUI7CisJeyBPcHRfb3ZlcnJpZGVfY29tcHIsCSJ6bGliIiwJSkZGUzJfQ09NUFJfTU9ERV9GT1JDRVpMSUIgfSwKICNlbmRpZgotCQkJZWxzZSB7Ci0JCQkJcHJfZXJyKCJFcnJvcjogdW5rbm93biBjb21wcmVzc29yIFwiJXNcIlxuIiwKLQkJCQkgICAgICAgbmFtZSk7Ci0JCQkJa2ZyZWUobmFtZSk7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0JCQlrZnJlZShuYW1lKTsKLQkJCWMtPm1vdW50X29wdHMub3ZlcnJpZGVfY29tcHIgPSB0cnVlOwotCQkJYnJlYWs7Ci0JCWNhc2UgT3B0X3JwX3NpemU6Ci0JCQlpZiAobWF0Y2hfaW50KCZhcmdzWzBdLCAmb3B0KSkKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCW9wdCAqPSAxMDI0OwotCQkJaWYgKG9wdCA+IGMtPm10ZC0+c2l6ZSkgewotCQkJCXByX3dhcm4oIlRvbyBsYXJnZSByZXNlcnZlIHBvb2wgc3BlY2lmaWVkLCBtYXggIgotCQkJCQkiaXMgJWxsdSBLQlxuIiwgYy0+bXRkLT5zaXplIC8gMTAyNCk7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0JCQljLT5tb3VudF9vcHRzLnJwX3NpemUgPSBvcHQ7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXByX2VycigiRXJyb3I6IHVucmVjb2duaXplZCBtb3VudCBvcHRpb24gJyVzJyBvciBtaXNzaW5nIHZhbHVlXG4iLAotCQkJICAgICAgIHApOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KKwl7fQorfTsKKworY29uc3Qgc3RydWN0IGZzX3BhcmFtZXRlcl9kZXNjcmlwdGlvbiBqZmZzMl9mc19wYXJhbWV0ZXJzID0geworCS5uYW1lCQk9ICJqZmZzMiIsCisJLnNwZWNzCQk9IGpmZnMyX3BhcmFtX3NwZWNzLAorCS5lbnVtcwkJPSBqZmZzMl9wYXJhbV9lbnVtcywKK307CisKK3N0YXRpYyBpbnQgamZmczJfcGFyc2VfcGFyYW0oc3RydWN0IGZzX2NvbnRleHQgKmZjLCBzdHJ1Y3QgZnNfcGFyYW1ldGVyICpwYXJhbSkKK3sKKwlzdHJ1Y3QgZnNfcGFyc2VfcmVzdWx0IHJlc3VsdDsKKwlzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYyA9IGZjLT5zX2ZzX2luZm87CisJaW50IG9wdDsKKworCW9wdCA9IGZzX3BhcnNlKGZjLCAmamZmczJfZnNfcGFyYW1ldGVycywgcGFyYW0sICZyZXN1bHQpOworCWlmIChvcHQgPCAwKQorCQlyZXR1cm4gb3B0OworCisJc3dpdGNoIChvcHQpIHsKKwljYXNlIE9wdF9vdmVycmlkZV9jb21wcjoKKwkJYy0+bW91bnRfb3B0cy5jb21wciA9IHJlc3VsdC51aW50XzMyOworCQljLT5tb3VudF9vcHRzLm92ZXJyaWRlX2NvbXByID0gdHJ1ZTsKKwkJYnJlYWs7CisJY2FzZSBPcHRfcnBfc2l6ZToKKwkJaWYgKHJlc3VsdC51aW50XzMyID4gVUlOVF9NQVggLyAxMDI0KQorCQkJcmV0dXJuIGludmFsZihmYywgImpmZnMyOiBycF9zaXplIHVucmVwcmVzZW50YWJsZSIpOworCQlvcHQgPSByZXN1bHQudWludF8zMiAqIDEwMjQ7CisJCWlmIChvcHQgPiBjLT5tdGQtPnNpemUpCisJCQlyZXR1cm4gaW52YWxmKGZjLCAiamZmczI6IFRvbyBsYXJnZSByZXNlcnZlIHBvb2wgc3BlY2lmaWVkLCBtYXggaXMgJWxsdSBLQiIsCisJCQkJICAgICAgYy0+bXRkLT5zaXplIC8gMTAyNCk7CisJCWMtPm1vdW50X29wdHMucnBfc2l6ZSA9IG9wdDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgamZmczJfcmVtb3VudF9mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgKmZsYWdzLCBjaGFyICpkYXRhKQorc3RhdGljIGludCBqZmZzMl9yZWNvbmZpZ3VyZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0Jc3RydWN0IGpmZnMyX3NiX2luZm8gKmMgPSBKRkZTMl9TQl9JTkZPKHNiKTsKLQlpbnQgZXJyOworCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBmYy0+cm9vdC0+ZF9zYjsKIAogCXN5bmNfZmlsZXN5c3RlbShzYik7Ci0JZXJyID0gamZmczJfcGFyc2Vfb3B0aW9ucyhjLCBkYXRhKTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXJldHVybiBqZmZzMl9kb19yZW1vdW50X2ZzKHNiLCBmbGFncywgZGF0YSk7CisJcmV0dXJuIGpmZnMyX2RvX3JlbW91bnRfZnMoc2IsIGZjKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIGpmZnMyX3N1cGVyX29wZXJhdGlvbnMgPQpAQCAtMjU1LDcgKzIzNSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyBqZmZzMl9zdXBlcl9vcGVyYXRpb25zID0KIAkuZnJlZV9pbm9kZSA9CWpmZnMyX2ZyZWVfaW5vZGUsCiAJLnB1dF9zdXBlciA9CWpmZnMyX3B1dF9zdXBlciwKIAkuc3RhdGZzID0JamZmczJfc3RhdGZzLAotCS5yZW1vdW50X2ZzID0JamZmczJfcmVtb3VudF9mcywKIAkuZXZpY3RfaW5vZGUgPQlqZmZzMl9ldmljdF9pbm9kZSwKIAkuZGlydHlfaW5vZGUgPQlqZmZzMl9kaXJ0eV9pbm9kZSwKIAkuc2hvd19vcHRpb25zID0JamZmczJfc2hvd19vcHRpb25zLApAQCAtMjY1LDI2ICsyNDQsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIGpmZnMyX3N1cGVyX29wZXJhdGlvbnMgPQogLyoKICAqIGZpbGwgaW4gdGhlIHN1cGVyYmxvY2sKICAqLwotc3RhdGljIGludCBqZmZzMl9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCitzdGF0aWMgaW50IGpmZnMyX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewotCXN0cnVjdCBqZmZzMl9zYl9pbmZvICpjOwotCWludCByZXQ7CisJc3RydWN0IGpmZnMyX3NiX2luZm8gKmMgPSBzYi0+c19mc19pbmZvOwogCiAJamZmczJfZGJnKDEsICJqZmZzMl9nZXRfc2JfbXRkKCk6IgogCQkgICIgTmV3IHN1cGVyYmxvY2sgZm9yIGRldmljZSAlZCAoXCIlc1wiKVxuIiwKIAkJICBzYi0+c19tdGQtPmluZGV4LCBzYi0+c19tdGQtPm5hbWUpOwogCi0JYyA9IGt6YWxsb2Moc2l6ZW9mKCpjKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFjKQotCQlyZXR1cm4gLUVOT01FTTsKLQogCWMtPm10ZCA9IHNiLT5zX210ZDsKIAljLT5vc19wcml2ID0gc2I7Ci0Jc2ItPnNfZnNfaW5mbyA9IGM7Ci0KLQlyZXQgPSBqZmZzMl9wYXJzZV9vcHRpb25zKGMsIGRhdGEpOwotCWlmIChyZXQpCi0JCXJldHVybiAtRUlOVkFMOwogCiAJLyogSW5pdGlhbGl6ZSBKRkZTMiBzdXBlcmJsb2NrIGxvY2tzLCB0aGUgZnVydGhlciBpbml0aWFsaXphdGlvbiB3aWxsCiAJICogYmUgZG9uZSBsYXRlciAqLwpAQCAtMzAyLDE1ICsyNzEsMzcgQEAgc3RhdGljIGludCBqZmZzMl9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAjaWZkZWYgQ09ORklHX0pGRlMyX0ZTX1BPU0lYX0FDTAogCXNiLT5zX2ZsYWdzIHw9IFNCX1BPU0lYQUNMOwogI2VuZGlmCi0JcmV0ID0gamZmczJfZG9fZmlsbF9zdXBlcihzYiwgZGF0YSwgc2lsZW50KTsKLQlyZXR1cm4gcmV0OworCXJldHVybiBqZmZzMl9kb19maWxsX3N1cGVyKHNiLCBmYyk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpqZmZzMl9tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKLQkJCWludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsCi0JCQl2b2lkICpkYXRhKQorc3RhdGljIGludCBqZmZzMl9nZXRfdHJlZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0JcmV0dXJuIG1vdW50X210ZChmc190eXBlLCBmbGFncywgZGV2X25hbWUsIGRhdGEsIGpmZnMyX2ZpbGxfc3VwZXIpOworCXJldHVybiBnZXRfdHJlZV9tdGQoZmMsIGpmZnMyX2ZpbGxfc3VwZXIpOworfQorCitzdGF0aWMgdm9pZCBqZmZzMl9mcmVlX2ZjKHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlrZnJlZShmYy0+c19mc19pbmZvKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc19jb250ZXh0X29wZXJhdGlvbnMgamZmczJfY29udGV4dF9vcHMgPSB7CisJLmZyZWUJCT0gamZmczJfZnJlZV9mYywKKwkucGFyc2VfcGFyYW0JPSBqZmZzMl9wYXJzZV9wYXJhbSwKKwkuZ2V0X3RyZWUJPSBqZmZzMl9nZXRfdHJlZSwKKwkucmVjb25maWd1cmUJPSBqZmZzMl9yZWNvbmZpZ3VyZSwKK307CisKK3N0YXRpYyBpbnQgamZmczJfaW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlzdHJ1Y3QgamZmczJfc2JfaW5mbyAqY3R4OworCisJY3R4ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGpmZnMyX3NiX2luZm8pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWN0eCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlmYy0+c19mc19pbmZvID0gY3R4OworCWZjLT5vcHMgPSAmamZmczJfY29udGV4dF9vcHM7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGpmZnMyX3B1dF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTM0Nyw3ICszMzgsOCBAQCBzdGF0aWMgdm9pZCBqZmZzMl9raWxsX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiBzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgamZmczJfZnNfdHlwZSA9IHsKIAkub3duZXIgPQlUSElTX01PRFVMRSwKIAkubmFtZSA9CQkiamZmczIiLAotCS5tb3VudCA9CWpmZnMyX21vdW50LAorCS5pbml0X2ZzX2NvbnRleHQgPSBqZmZzMl9pbml0X2ZzX2NvbnRleHQsCisJLnBhcmFtZXRlcnMgPQkmamZmczJfZnNfcGFyYW1ldGVycywKIAkua2lsbF9zYiA9CWpmZnMyX2tpbGxfc2IsCiB9OwogTU9EVUxFX0FMSUFTX0ZTKCJqZmZzMiIpOwpkaWZmIC0tZ2l0IGEvZnMvamZzL3N1cGVyLmMgYi9mcy9qZnMvc3VwZXIuYwppbmRleCBmNGUxMGNiLi5iMmRjNGQxIDEwMDY0NAotLS0gYS9mcy9qZnMvc3VwZXIuYworKysgYi9mcy9qZnMvc3VwZXIuYwpAQCAtNTAzLDYgKzUwMyw4IEBAIHN0YXRpYyBpbnQgamZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAogCXNiLT5zX2ZzX2luZm8gPSBzYmk7CiAJc2ItPnNfbWF4X2xpbmtzID0gSkZTX0xJTktfTUFYOworCXNiLT5zX3RpbWVfbWluID0gMDsKKwlzYi0+c190aW1lX21heCA9IFUzMl9NQVg7CiAJc2JpLT5zYiA9IHNiOwogCXNiaS0+dWlkID0gSU5WQUxJRF9VSUQ7CiAJc2JpLT5naWQgPSBJTlZBTElEX0dJRDsKZGlmZiAtLWdpdCBhL2ZzL2tlcm5mcy9pbm9kZS5jIGIvZnMva2VybmZzL2lub2RlLmMKaW5kZXggZjNmMzk4NC4uZjNlYWE4OCAxMDA2NDQKLS0tIGEvZnMva2VybmZzL2lub2RlLmMKKysrIGIvZnMva2VybmZzL2lub2RlLmMKQEAgLTE1OCwxMiArMTU4LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfZGVmYXVsdF9pbm9kZV9hdHRyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVtb2RlX3QgbW9kZSkKIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfaW5vZGVfYXR0cihzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJCSAgc3RydWN0IGtlcm5mc19pYXR0cnMgKmF0dHJzKQogewotCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBpbm9kZS0+aV9zYjsKIAlpbm9kZS0+aV91aWQgPSBhdHRycy0+aWFfdWlkOwogCWlub2RlLT5pX2dpZCA9IGF0dHJzLT5pYV9naWQ7Ci0JaW5vZGUtPmlfYXRpbWUgPSB0aW1lc3BlYzY0X3RydW5jKGF0dHJzLT5pYV9hdGltZSwgc2ItPnNfdGltZV9ncmFuKTsKLQlpbm9kZS0+aV9tdGltZSA9IHRpbWVzcGVjNjRfdHJ1bmMoYXR0cnMtPmlhX210aW1lLCBzYi0+c190aW1lX2dyYW4pOwotCWlub2RlLT5pX2N0aW1lID0gdGltZXNwZWM2NF90cnVuYyhhdHRycy0+aWFfY3RpbWUsIHNiLT5zX3RpbWVfZ3Jhbik7CisJaW5vZGUtPmlfYXRpbWUgPSB0aW1lc3RhbXBfdHJ1bmNhdGUoYXR0cnMtPmlhX2F0aW1lLCBpbm9kZSk7CisJaW5vZGUtPmlfbXRpbWUgPSB0aW1lc3RhbXBfdHJ1bmNhdGUoYXR0cnMtPmlhX210aW1lLCBpbm9kZSk7CisJaW5vZGUtPmlfY3RpbWUgPSB0aW1lc3RhbXBfdHJ1bmNhdGUoYXR0cnMtPmlhX2N0aW1lLCBpbm9kZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGtlcm5mc19yZWZyZXNoX2lub2RlKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sIHN0cnVjdCBpbm9kZSAqaW5vZGUpCmRpZmYgLS1naXQgYS9mcy9sb2Nrcy5jIGIvZnMvbG9ja3MuYwppbmRleCBhMzY0ZWJjLi42OTcwZjU1IDEwMDY0NAotLS0gYS9mcy9sb2Nrcy5jCisrKyBiL2ZzL2xvY2tzLmMKQEAgLTIxMiw2ICsyMTIsNyBAQCBzdHJ1Y3QgZmlsZV9sb2NrX2xpc3Rfc3RydWN0IHsKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgZmlsZV9sb2NrX2xpc3Rfc3RydWN0LCBmaWxlX2xvY2tfbGlzdCk7CiBERUZJTkVfU1RBVElDX1BFUkNQVV9SV1NFTShmaWxlX3J3c2VtKTsKIAorCiAvKgogICogVGhlIGJsb2NrZWRfaGFzaCBpcyB1c2VkIHRvIGZpbmQgUE9TSVggbG9jayBsb29wcyBmb3IgZGVhZGxvY2sgZGV0ZWN0aW9uLgogICogSXQgaXMgcHJvdGVjdGVkIGJ5IGJsb2NrZWRfbG9ja19sb2NrLgpAQCAtMTk5MSw2ICsxOTkyLDY0IEBAIGludCBnZW5lcmljX3NldGxlYXNlKHN0cnVjdCBmaWxlICpmaWxwLCBsb25nIGFyZywgc3RydWN0IGZpbGVfbG9jayAqKmZscCwKIH0KIEVYUE9SVF9TWU1CT0woZ2VuZXJpY19zZXRsZWFzZSk7CiAKKyNpZiBJU19FTkFCTEVEKENPTkZJR19TUkNVKQorLyoKKyAqIEtlcm5lbCBzdWJzeXN0ZW1zIGNhbiByZWdpc3RlciB0byBiZSBub3RpZmllZCBvbiBhbnkgYXR0ZW1wdCB0byBzZXQKKyAqIGEgbmV3IGxlYXNlIHdpdGggdGhlIGxlYXNlX25vdGlmaWVyX2NoYWluLiBUaGlzIGlzIHVzZWQgYnkgKGUuZy4pIG5mc2QKKyAqIHRvIGNsb3NlIGZpbGVzIHRoYXQgaXQgbWF5IGhhdmUgY2FjaGVkIHdoZW4gdGhlcmUgaXMgYW4gYXR0ZW1wdCB0byBzZXQgYQorICogY29uZmxpY3RpbmcgbGVhc2UuCisgKi8KK3N0YXRpYyBzdHJ1Y3Qgc3JjdV9ub3RpZmllcl9oZWFkIGxlYXNlX25vdGlmaWVyX2NoYWluOworCitzdGF0aWMgaW5saW5lIHZvaWQKK2xlYXNlX25vdGlmaWVyX2NoYWluX2luaXQodm9pZCkKK3sKKwlzcmN1X2luaXRfbm90aWZpZXJfaGVhZCgmbGVhc2Vfbm90aWZpZXJfY2hhaW4pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3NldGxlYXNlX25vdGlmaWVyKGxvbmcgYXJnLCBzdHJ1Y3QgZmlsZV9sb2NrICpsZWFzZSkKK3sKKwlpZiAoYXJnICE9IEZfVU5MQ0spCisJCXNyY3Vfbm90aWZpZXJfY2FsbF9jaGFpbigmbGVhc2Vfbm90aWZpZXJfY2hhaW4sIGFyZywgbGVhc2UpOworfQorCitpbnQgbGVhc2VfcmVnaXN0ZXJfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYikKK3sKKwlyZXR1cm4gc3JjdV9ub3RpZmllcl9jaGFpbl9yZWdpc3RlcigmbGVhc2Vfbm90aWZpZXJfY2hhaW4sIG5iKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGxlYXNlX3JlZ2lzdGVyX25vdGlmaWVyKTsKKwordm9pZCBsZWFzZV91bnJlZ2lzdGVyX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpCit7CisJc3JjdV9ub3RpZmllcl9jaGFpbl91bnJlZ2lzdGVyKCZsZWFzZV9ub3RpZmllcl9jaGFpbiwgbmIpOworfQorRVhQT1JUX1NZTUJPTF9HUEwobGVhc2VfdW5yZWdpc3Rlcl9ub3RpZmllcik7CisKKyNlbHNlIC8qICFJU19FTkFCTEVEKENPTkZJR19TUkNVKSAqLworc3RhdGljIGlubGluZSB2b2lkCitsZWFzZV9ub3RpZmllcl9jaGFpbl9pbml0KHZvaWQpCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc2V0bGVhc2Vfbm90aWZpZXIobG9uZyBhcmcsIHN0cnVjdCBmaWxlX2xvY2sgKmxlYXNlKQoreworfQorCitpbnQgbGVhc2VfcmVnaXN0ZXJfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYikKK3sKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGxlYXNlX3JlZ2lzdGVyX25vdGlmaWVyKTsKKwordm9pZCBsZWFzZV91bnJlZ2lzdGVyX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpCit7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChsZWFzZV91bnJlZ2lzdGVyX25vdGlmaWVyKTsKKworI2VuZGlmIC8qIElTX0VOQUJMRUQoQ09ORklHX1NSQ1UpICovCisKIC8qKgogICogdmZzX3NldGxlYXNlICAgICAgICAtICAgICAgIHNldHMgYSBsZWFzZSBvbiBhbiBvcGVuIGZpbGUKICAqIEBmaWxwOglmaWxlIHBvaW50ZXIKQEAgLTIwMTEsNiArMjA3MCw4IEBAIEVYUE9SVF9TWU1CT0woZ2VuZXJpY19zZXRsZWFzZSk7CiBpbnQKIHZmc19zZXRsZWFzZShzdHJ1Y3QgZmlsZSAqZmlscCwgbG9uZyBhcmcsIHN0cnVjdCBmaWxlX2xvY2sgKipsZWFzZSwgdm9pZCAqKnByaXYpCiB7CisJaWYgKGxlYXNlKQorCQlzZXRsZWFzZV9ub3RpZmllcihhcmcsICpsZWFzZSk7CiAJaWYgKGZpbHAtPmZfb3AtPnNldGxlYXNlKQogCQlyZXR1cm4gZmlscC0+Zl9vcC0+c2V0bGVhc2UoZmlscCwgYXJnLCBsZWFzZSwgcHJpdik7CiAJZWxzZQpAQCAtMjkyNCw2ICsyOTg1LDcgQEAgc3RhdGljIGludCBfX2luaXQgZmlsZWxvY2tfaW5pdCh2b2lkKQogCQlJTklUX0hMSVNUX0hFQUQoJmZsbC0+aGxpc3QpOwogCX0KIAorCWxlYXNlX25vdGlmaWVyX2NoYWluX2luaXQoKTsKIAlyZXR1cm4gMDsKIH0KIGNvcmVfaW5pdGNhbGwoZmlsZWxvY2tfaW5pdCk7CmRpZmYgLS1naXQgYS9mcy9taW5peC9pbm9kZS5jIGIvZnMvbWluaXgvaW5vZGUuYwppbmRleCBmOTYwNzNmLi43Y2I1ZmQzIDEwMDY0NAotLS0gYS9mcy9taW5peC9pbm9kZS5jCisrKyBiL2ZzL21pbml4L2lub2RlLmMKQEAgLTI3Nyw2ICsyNzcsOCBAQCBzdGF0aWMgaW50IG1pbml4X2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCiAJLyogc2V0IHVwIGVub3VnaCBzbyB0aGF0IGl0IGNhbiByZWFkIGFuIGlub2RlICovCiAJcy0+c19vcCA9ICZtaW5peF9zb3BzOworCXMtPnNfdGltZV9taW4gPSAwOworCXMtPnNfdGltZV9tYXggPSBVMzJfTUFYOwogCXJvb3RfaW5vZGUgPSBtaW5peF9pZ2V0KHMsIE1JTklYX1JPT1RfSU5PKTsKIAlpZiAoSVNfRVJSKHJvb3RfaW5vZGUpKSB7CiAJCXJldCA9IFBUUl9FUlIocm9vdF9pbm9kZSk7CmRpZmYgLS1naXQgYS9mcy9uYW1lc3BhY2UuYyBiL2ZzL25hbWVzcGFjZS5jCmluZGV4IDIyN2Y3YjMuLmZlMGU5ZTEgMTAwNjQ0Ci0tLSBhL2ZzL25hbWVzcGFjZS5jCisrKyBiL2ZzL25hbWVzcGFjZS5jCkBAIC0yNDY2LDYgKzI0NjYsMjYgQEAgc3RhdGljIHZvaWQgc2V0X21vdW50X2F0dHJpYnV0ZXMoc3RydWN0IG1vdW50ICptbnQsIHVuc2lnbmVkIGludCBtbnRfZmxhZ3MpCiAJdW5sb2NrX21vdW50X2hhc2goKTsKIH0KIAorc3RhdGljIHZvaWQgbW50X3dhcm5fdGltZXN0YW1wX2V4cGlyeShzdHJ1Y3QgcGF0aCAqbW91bnRwb2ludCwgc3RydWN0IHZmc21vdW50ICptbnQpCit7CisJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IG1udC0+bW50X3NiOworCisJaWYgKCFfX21udF9pc19yZWFkb25seShtbnQpICYmCisJICAgKGt0aW1lX2dldF9yZWFsX3NlY29uZHMoKSArIFRJTUVfVVBUSU1FX1NFQ19NQVggPiBzYi0+c190aW1lX21heCkpIHsKKwkJY2hhciAqYnVmID0gKGNoYXIgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWNoYXIgKm1udHBhdGggPSBidWYgPyBkX3BhdGgobW91bnRwb2ludCwgYnVmLCBQQUdFX1NJWkUpIDogRVJSX1BUUigtRU5PTUVNKTsKKwkJc3RydWN0IHRtIHRtOworCisJCXRpbWU2NF90b190bShzYi0+c190aW1lX21heCwgMCwgJnRtKTsKKworCQlwcl93YXJuKCJNb3VudGVkICVzIGZpbGUgc3lzdGVtIGF0ICVzIHN1cHBvcnRzIHRpbWVzdGFtcHMgdW50aWwgJTA0bGQgKDB4JWxseClcbiIsCisJCQlzYi0+c190eXBlLT5uYW1lLCBtbnRwYXRoLAorCQkJdG0udG1feWVhcisxOTAwLCAodW5zaWduZWQgbG9uZyBsb25nKXNiLT5zX3RpbWVfbWF4KTsKKworCQlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpYnVmKTsKKwl9Cit9CisKIC8qCiAgKiBIYW5kbGUgcmVjb25maWd1cmF0aW9uIG9mIHRoZSBtb3VudHBvaW50IG9ubHkgd2l0aG91dCBhbHRlcmF0aW9uIG9mIHRoZQogICogc3VwZXJibG9jayBpdCByZWZlcnMgdG8uICBUaGlzIGlzIHRyaWdnZXJlZCBieSBzcGVjaWZ5aW5nIE1TX1JFTU9VTlR8TVNfQklORApAQCAtMjQ5MSw2ICsyNTExLDkgQEAgc3RhdGljIGludCBkb19yZWNvbmZpZ3VyZV9tbnQoc3RydWN0IHBhdGggKnBhdGgsIHVuc2lnbmVkIGludCBtbnRfZmxhZ3MpCiAJaWYgKHJldCA9PSAwKQogCQlzZXRfbW91bnRfYXR0cmlidXRlcyhtbnQsIG1udF9mbGFncyk7CiAJdXBfd3JpdGUoJnNiLT5zX3Vtb3VudCk7CisKKwltbnRfd2Fybl90aW1lc3RhbXBfZXhwaXJ5KHBhdGgsICZtbnQtPm1udCk7CisKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yNTMxLDYgKzI1NTQsOSBAQCBzdGF0aWMgaW50IGRvX3JlbW91bnQoc3RydWN0IHBhdGggKnBhdGgsIGludCBtc19mbGFncywgaW50IHNiX2ZsYWdzLAogCQl9CiAJCXVwX3dyaXRlKCZzYi0+c191bW91bnQpOwogCX0KKworCW1udF93YXJuX3RpbWVzdGFtcF9leHBpcnkocGF0aCwgJm1udC0+bW50KTsKKwogCXB1dF9mc19jb250ZXh0KGZjKTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtMjczOSw4ICsyNzY1LDEzIEBAIHN0YXRpYyBpbnQgZG9fbmV3X21vdW50X2ZjKHN0cnVjdCBmc19jb250ZXh0ICpmYywgc3RydWN0IHBhdGggKm1vdW50cG9pbnQsCiAJCXJldHVybiBQVFJfRVJSKG1udCk7CiAKIAllcnJvciA9IGRvX2FkZF9tb3VudChyZWFsX21vdW50KG1udCksIG1vdW50cG9pbnQsIG1udF9mbGFncyk7Ci0JaWYgKGVycm9yIDwgMCkKKwlpZiAoZXJyb3IgPCAwKSB7CiAJCW1udHB1dChtbnQpOworCQlyZXR1cm4gZXJyb3I7CisJfQorCisJbW50X3dhcm5fdGltZXN0YW1wX2V4cGlyeShtb3VudHBvaW50LCBtbnQpOworCiAJcmV0dXJuIGVycm9yOwogfQogCkBAIC0yNzcxLDggKzI4MDIsNiBAQCBzdGF0aWMgaW50IGRvX25ld19tb3VudChzdHJ1Y3QgcGF0aCAqcGF0aCwgY29uc3QgY2hhciAqZnN0eXBlLCBpbnQgc2JfZmxhZ3MsCiAJCQkJcHV0X2ZpbGVzeXN0ZW0odHlwZSk7CiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQl9Ci0JCX0gZWxzZSB7Ci0JCQlzdWJ0eXBlID0gIiI7CiAJCX0KIAl9CiAKQEAgLTI5OTcsNyArMzAyNiw3IEBAIHZvaWQgKmNvcHlfbW91bnRfb3B0aW9ucyhjb25zdCB2b2lkIF9fdXNlciAqIGRhdGEpCiAJICogdGhlIHJlbWFpbmRlciBvZiB0aGUgcGFnZS4KIAkgKi8KIAkvKiBjb3B5X2Zyb21fdXNlciBjYW5ub3QgY3Jvc3MgVEFTS19TSVpFICEgKi8KLQlzaXplID0gVEFTS19TSVpFIC0gKHVuc2lnbmVkIGxvbmcpZGF0YTsKKwlzaXplID0gVEFTS19TSVpFIC0gKHVuc2lnbmVkIGxvbmcpdW50YWdnZWRfYWRkcihkYXRhKTsKIAlpZiAoc2l6ZSA+IFBBR0VfU0laRSkKIAkJc2l6ZSA9IFBBR0VfU0laRTsKIApkaWZmIC0tZ2l0IGEvZnMvbmZzL2Rpci5jIGIvZnMvbmZzL2Rpci5jCmluZGV4IDBhZGZkODg0Li5lMTgwMDMzIDEwMDY0NAotLS0gYS9mcy9uZnMvZGlyLmMKKysrIGIvZnMvbmZzL2Rpci5jCkBAIC0xNjY5LDEwICsxNjY5LDggQEAgc3RhdGljIGludCBuZnM0X2xvb2t1cF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKQogCiAjZW5kaWYgLyogQ09ORklHX05GU1Y0ICovCiAKLS8qCi0gKiBDb2RlIGNvbW1vbiB0byBjcmVhdGUsIG1rZGlyLCBhbmQgbWtub2QuCi0gKi8KLWludCBuZnNfaW5zdGFudGlhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmZzX2ZoICpmaGFuZGxlLAorc3RydWN0IGRlbnRyeSAqCituZnNfYWRkX29yX29idGFpbihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuZnNfZmggKmZoYW5kbGUsCiAJCQkJc3RydWN0IG5mc19mYXR0ciAqZmF0dHIsCiAJCQkJc3RydWN0IG5mczRfbGFiZWwgKmxhYmVsKQogewpAQCAtMTY4MCwxMyArMTY3OCwxMCBAQCBpbnQgbmZzX2luc3RhbnRpYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5mc19maCAqZmhhbmRsZSwKIAlzdHJ1Y3QgaW5vZGUgKmRpciA9IGRfaW5vZGUocGFyZW50KTsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCXN0cnVjdCBkZW50cnkgKmQ7Ci0JaW50IGVycm9yID0gLUVBQ0NFUzsKKwlpbnQgZXJyb3I7CiAKIAlkX2Ryb3AoZGVudHJ5KTsKIAotCS8qIFdlIG1heSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgZnVydGhlciBkb3duICovCi0JaWYgKGRfcmVhbGx5X2lzX3Bvc2l0aXZlKGRlbnRyeSkpCi0JCWdvdG8gb3V0OwogCWlmIChmaGFuZGxlLT5zaXplID09IDApIHsKIAkJZXJyb3IgPSBORlNfUFJPVE8oZGlyKS0+bG9va3VwKGRpciwgJmRlbnRyeS0+ZF9uYW1lLCBmaGFuZGxlLCBmYXR0ciwgTlVMTCk7CiAJCWlmIChlcnJvcikKQEAgLTE3MDIsMTggKzE2OTcsMzIgQEAgaW50IG5mc19pbnN0YW50aWF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuZnNfZmggKmZoYW5kbGUsCiAJfQogCWlub2RlID0gbmZzX2ZoZ2V0KGRlbnRyeS0+ZF9zYiwgZmhhbmRsZSwgZmF0dHIsIGxhYmVsKTsKIAlkID0gZF9zcGxpY2VfYWxpYXMoaW5vZGUsIGRlbnRyeSk7Ci0JaWYgKElTX0VSUihkKSkgewotCQllcnJvciA9IFBUUl9FUlIoZCk7Ci0JCWdvdG8gb3V0X2Vycm9yOwotCX0KLQlkcHV0KGQpOwogb3V0OgogCWRwdXQocGFyZW50KTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZDsKIG91dF9lcnJvcjoKIAluZnNfbWFya19mb3JfcmV2YWxpZGF0ZShkaXIpOwotCWRwdXQocGFyZW50KTsKLQlyZXR1cm4gZXJyb3I7CisJZCA9IEVSUl9QVFIoZXJyb3IpOworCWdvdG8gb3V0OworfQorRVhQT1JUX1NZTUJPTF9HUEwobmZzX2FkZF9vcl9vYnRhaW4pOworCisvKgorICogQ29kZSBjb21tb24gdG8gY3JlYXRlLCBta2RpciwgYW5kIG1rbm9kLgorICovCitpbnQgbmZzX2luc3RhbnRpYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5mc19maCAqZmhhbmRsZSwKKwkJCQlzdHJ1Y3QgbmZzX2ZhdHRyICpmYXR0ciwKKwkJCQlzdHJ1Y3QgbmZzNF9sYWJlbCAqbGFiZWwpCit7CisJc3RydWN0IGRlbnRyeSAqZDsKKworCWQgPSBuZnNfYWRkX29yX29idGFpbihkZW50cnksIGZoYW5kbGUsIGZhdHRyLCBsYWJlbCk7CisJaWYgKElTX0VSUihkKSkKKwkJcmV0dXJuIFBUUl9FUlIoZCk7CisKKwkvKiBDYWxsZXJzIGRvbid0IGNhcmUgKi8KKwlkcHV0KGQpOworCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTF9HUEwobmZzX2luc3RhbnRpYXRlKTsKIApkaWZmIC0tZ2l0IGEvZnMvbmZzL2ZpbGVsYXlvdXQvZmlsZWxheW91dC5jIGIvZnMvbmZzL2ZpbGVsYXlvdXQvZmlsZWxheW91dC5jCmluZGV4IDNjYjA3M2MuLmM5YjYwNWYgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9maWxlbGF5b3V0L2ZpbGVsYXlvdXQuYworKysgYi9mcy9uZnMvZmlsZWxheW91dC9maWxlbGF5b3V0LmMKQEAgLTExNjQsNiArMTE2NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcG5mc19sYXlvdXRkcml2ZXJfdHlwZSBmaWxlbGF5b3V0X3R5cGUgPSB7CiAJLmlkCQkJPSBMQVlPVVRfTkZTVjRfMV9GSUxFUywKIAkubmFtZQkJCT0gIkxBWU9VVF9ORlNWNF8xX0ZJTEVTIiwKIAkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCS5mbGFncwkJCT0gUE5GU19MQVlPVVRHRVRfT05fT1BFTiwKIAkubWF4X2xheW91dGdldF9yZXNwb25zZQk9IDQwOTYsIC8qIDEgcGFnZSBvciBzby4uLiAqLwogCS5hbGxvY19sYXlvdXRfaGRyCT0gZmlsZWxheW91dF9hbGxvY19sYXlvdXRfaGRyLAogCS5mcmVlX2xheW91dF9oZHIJPSBmaWxlbGF5b3V0X2ZyZWVfbGF5b3V0X2hkciwKZGlmZiAtLWdpdCBhL2ZzL25mcy9pbnRlcm5hbC5oIGIvZnMvbmZzL2ludGVybmFsLmgKaW5kZXggZTY0ZjgxMC4uNDQ3YTNjMSAxMDA2NDQKLS0tIGEvZnMvbmZzL2ludGVybmFsLmgKKysrIGIvZnMvbmZzL2ludGVybmFsLmgKQEAgLTE2LDE0ICsxNiw2IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgZXhwb3J0X29wZXJhdGlvbnMgbmZzX2V4cG9ydF9vcHM7CiAKIHN0cnVjdCBuZnNfc3RyaW5nOwogCi0vKiBNYXhpbXVtIG51bWJlciBvZiByZWFkYWhlYWQgcmVxdWVzdHMKLSAqIEZJWE1FOiB0aGlzIHNob3VsZCByZWFsbHkgYmUgYSBzeXNjdGwgc28gdGhhdCB1c2VycyBtYXkgdHVuZSBpdCB0byBzdWl0Ci0gKiAgICAgICAgdGhlaXIgbmVlZHMuIFBlb3BsZSB0aGF0IGRvIE5GUyBvdmVyIGEgc2xvdyBuZXR3b3JrLCBtaWdodCBmb3IKLSAqICAgICAgICBpbnN0YW5jZSB3YW50IHRvIHJlZHVjZSBpdCB0byBzb21ldGhpbmcgY2xvc2VyIHRvIDEgZm9yIGltcHJvdmVkCi0gKiAgICAgICAgaW50ZXJhY3RpdmUgcmVzcG9uc2UuCi0gKi8KLSNkZWZpbmUgTkZTX01BWF9SRUFEQUhFQUQJKFJQQ19ERUZfU0xPVF9UQUJMRSAtIDEpCi0KIHN0YXRpYyBpbmxpbmUgdm9pZCBuZnNfYXR0cl9jaGVja19tb3VudHBvaW50KHN0cnVjdCBzdXBlcl9ibG9jayAqcGFyZW50LCBzdHJ1Y3QgbmZzX2ZhdHRyICpmYXR0cikKIHsKIAlpZiAoIW5mc19mc2lkX2VxdWFsKCZORlNfU0IocGFyZW50KS0+ZnNpZCwgJmZhdHRyLT5mc2lkKSkKZGlmZiAtLWdpdCBhL2ZzL25mcy9uZnMzcHJvYy5jIGIvZnMvbmZzL25mczNwcm9jLmMKaW5kZXggYTNhZDJkNC4uOWViMmYxYSAxMDA2NDQKLS0tIGEvZnMvbmZzL25mczNwcm9jLmMKKysrIGIvZnMvbmZzL25mczNwcm9jLmMKQEAgLTI3OSwxNSArMjc5LDE3IEBAIHN0YXRpYyBzdHJ1Y3QgbmZzM19jcmVhdGVkYXRhICpuZnMzX2FsbG9jX2NyZWF0ZWRhdGEodm9pZCkKIAlyZXR1cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBuZnMzX2RvX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmZzM19jcmVhdGVkYXRhICpkYXRhKQorc3RhdGljIHN0cnVjdCBkZW50cnkgKgorbmZzM19kb19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5mczNfY3JlYXRlZGF0YSAqZGF0YSkKIHsKIAlpbnQgc3RhdHVzOwogCiAJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhORlNfQ0xJRU5UKGRpciksICZkYXRhLT5tc2csIDApOwogCW5mc19wb3N0X29wX3VwZGF0ZV9pbm9kZShkaXIsIGRhdGEtPnJlcy5kaXJfYXR0cik7Ci0JaWYgKHN0YXR1cyA9PSAwKQotCQlzdGF0dXMgPSBuZnNfaW5zdGFudGlhdGUoZGVudHJ5LCBkYXRhLT5yZXMuZmgsIGRhdGEtPnJlcy5mYXR0ciwgTlVMTCk7Ci0JcmV0dXJuIHN0YXR1czsKKwlpZiAoc3RhdHVzICE9IDApCisJCXJldHVybiBFUlJfUFRSKHN0YXR1cyk7CisKKwlyZXR1cm4gbmZzX2FkZF9vcl9vYnRhaW4oZGVudHJ5LCBkYXRhLT5yZXMuZmgsIGRhdGEtPnJlcy5mYXR0ciwgTlVMTCk7CiB9CiAKIHN0YXRpYyB2b2lkIG5mczNfZnJlZV9jcmVhdGVkYXRhKHN0cnVjdCBuZnMzX2NyZWF0ZWRhdGEgKmRhdGEpCkBAIC0zMDQsNiArMzA2LDcgQEAgbmZzM19wcm9jX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKnNhdHRyLAogewogCXN0cnVjdCBwb3NpeF9hY2wgKmRlZmF1bHRfYWNsLCAqYWNsOwogCXN0cnVjdCBuZnMzX2NyZWF0ZWRhdGEgKmRhdGE7CisJc3RydWN0IGRlbnRyeSAqZF9hbGlhczsKIAlpbnQgc3RhdHVzID0gLUVOT01FTTsKIAogCWRwcmludGsoIk5GUyBjYWxsICBjcmVhdGUgJXBkXG4iLCBkZW50cnkpOwpAQCAtMzMwLDcgKzMzMyw4IEBAIG5mczNfcHJvY19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICpzYXR0ciwKIAkJZ290byBvdXQ7CiAKIAlmb3IgKDs7KSB7Ci0JCXN0YXR1cyA9IG5mczNfZG9fY3JlYXRlKGRpciwgZGVudHJ5LCBkYXRhKTsKKwkJZF9hbGlhcyA9IG5mczNfZG9fY3JlYXRlKGRpciwgZGVudHJ5LCBkYXRhKTsKKwkJc3RhdHVzID0gUFRSX0VSUl9PUl9aRVJPKGRfYWxpYXMpOwogCiAJCWlmIChzdGF0dXMgIT0gLUVOT1RTVVBQKQogCQkJYnJlYWs7CkBAIC0zNTUsNiArMzU5LDkgQEAgbmZzM19wcm9jX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKnNhdHRyLAogCWlmIChzdGF0dXMgIT0gMCkKIAkJZ290byBvdXRfcmVsZWFzZV9hY2xzOwogCisJaWYgKGRfYWxpYXMpCisJCWRlbnRyeSA9IGRfYWxpYXM7CisKIAkvKiBXaGVuIHdlIGNyZWF0ZWQgdGhlIGZpbGUgd2l0aCBleGNsdXNpdmUgc2VtYW50aWNzLCBtYWtlCiAJICogc3VyZSB3ZSBzZXQgdGhlIGF0dHJpYnV0ZXMgYWZ0ZXJ3YXJkcy4gKi8KIAlpZiAoZGF0YS0+YXJnLmNyZWF0ZS5jcmVhdGVtb2RlID09IE5GUzNfQ1JFQVRFX0VYQ0xVU0lWRSkgewpAQCAtMzcyLDExICszNzksMTMgQEAgbmZzM19wcm9jX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKnNhdHRyLAogCQluZnNfcG9zdF9vcF91cGRhdGVfaW5vZGUoZF9pbm9kZShkZW50cnkpLCBkYXRhLT5yZXMuZmF0dHIpOwogCQlkcHJpbnRrKCJORlMgcmVwbHkgc2V0YXR0ciAocG9zdC1jcmVhdGUpOiAlZFxuIiwgc3RhdHVzKTsKIAkJaWYgKHN0YXR1cyAhPSAwKQotCQkJZ290byBvdXRfcmVsZWFzZV9hY2xzOworCQkJZ290byBvdXRfZHB1dDsKIAl9CiAKIAlzdGF0dXMgPSBuZnMzX3Byb2Nfc2V0YWNscyhkX2lub2RlKGRlbnRyeSksIGFjbCwgZGVmYXVsdF9hY2wpOwogCitvdXRfZHB1dDoKKwlkcHV0KGRfYWxpYXMpOwogb3V0X3JlbGVhc2VfYWNsczoKIAlwb3NpeF9hY2xfcmVsZWFzZShhY2wpOwogCXBvc2l4X2FjbF9yZWxlYXNlKGRlZmF1bHRfYWNsKTsKQEAgLTUwNCw2ICs1MTMsNyBAQCBuZnMzX3Byb2Nfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJICB1bnNpZ25lZCBpbnQgbGVuLCBzdHJ1Y3QgaWF0dHIgKnNhdHRyKQogewogCXN0cnVjdCBuZnMzX2NyZWF0ZWRhdGEgKmRhdGE7CisJc3RydWN0IGRlbnRyeSAqZF9hbGlhczsKIAlpbnQgc3RhdHVzID0gLUVOT01FTTsKIAogCWlmIChsZW4gPiBORlMzX01BWFBBVEhMRU4pCkBAIC01MjIsNyArNTMyLDExIEBAIG5mczNfcHJvY19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBwYWdlICpwYWdlLAogCWRhdGEtPmFyZy5zeW1saW5rLnBhdGhsZW4gPSBsZW47CiAJZGF0YS0+YXJnLnN5bWxpbmsuc2F0dHIgPSBzYXR0cjsKIAotCXN0YXR1cyA9IG5mczNfZG9fY3JlYXRlKGRpciwgZGVudHJ5LCBkYXRhKTsKKwlkX2FsaWFzID0gbmZzM19kb19jcmVhdGUoZGlyLCBkZW50cnksIGRhdGEpOworCXN0YXR1cyA9IFBUUl9FUlJfT1JfWkVSTyhkX2FsaWFzKTsKKworCWlmIChzdGF0dXMgPT0gMCkKKwkJZHB1dChkX2FsaWFzKTsKIAogCW5mczNfZnJlZV9jcmVhdGVkYXRhKGRhdGEpOwogb3V0OgpAQCAtNTM1LDYgKzU0OSw3IEBAIG5mczNfcHJvY19ta2RpcihzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKnNhdHRyKQogewogCXN0cnVjdCBwb3NpeF9hY2wgKmRlZmF1bHRfYWNsLCAqYWNsOwogCXN0cnVjdCBuZnMzX2NyZWF0ZWRhdGEgKmRhdGE7CisJc3RydWN0IGRlbnRyeSAqZF9hbGlhczsKIAlpbnQgc3RhdHVzID0gLUVOT01FTTsKIAogCWRwcmludGsoIk5GUyBjYWxsICBta2RpciAlcGRcbiIsIGRlbnRyeSk7CkBAIC01NTMsMTIgKzU2OCwxOCBAQCBuZnMzX3Byb2NfbWtkaXIoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICpzYXR0cikKIAlkYXRhLT5hcmcubWtkaXIubGVuID0gZGVudHJ5LT5kX25hbWUubGVuOwogCWRhdGEtPmFyZy5ta2Rpci5zYXR0ciA9IHNhdHRyOwogCi0Jc3RhdHVzID0gbmZzM19kb19jcmVhdGUoZGlyLCBkZW50cnksIGRhdGEpOworCWRfYWxpYXMgPSBuZnMzX2RvX2NyZWF0ZShkaXIsIGRlbnRyeSwgZGF0YSk7CisJc3RhdHVzID0gUFRSX0VSUl9PUl9aRVJPKGRfYWxpYXMpOworCiAJaWYgKHN0YXR1cyAhPSAwKQogCQlnb3RvIG91dF9yZWxlYXNlX2FjbHM7CiAKKwlpZiAoZF9hbGlhcykKKwkJZGVudHJ5ID0gZF9hbGlhczsKKwogCXN0YXR1cyA9IG5mczNfcHJvY19zZXRhY2xzKGRfaW5vZGUoZGVudHJ5KSwgYWNsLCBkZWZhdWx0X2FjbCk7CiAKKwlkcHV0KGRfYWxpYXMpOwogb3V0X3JlbGVhc2VfYWNsczoKIAlwb3NpeF9hY2xfcmVsZWFzZShhY2wpOwogCXBvc2l4X2FjbF9yZWxlYXNlKGRlZmF1bHRfYWNsKTsKQEAgLTY2MCw2ICs2ODEsNyBAQCBuZnMzX3Byb2NfbWtub2Qoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICpzYXR0ciwKIHsKIAlzdHJ1Y3QgcG9zaXhfYWNsICpkZWZhdWx0X2FjbCwgKmFjbDsKIAlzdHJ1Y3QgbmZzM19jcmVhdGVkYXRhICpkYXRhOworCXN0cnVjdCBkZW50cnkgKmRfYWxpYXM7CiAJaW50IHN0YXR1cyA9IC1FTk9NRU07CiAKIAlkcHJpbnRrKCJORlMgY2FsbCAgbWtub2QgJXBkICV1OiV1XG4iLCBkZW50cnksCkBAIC02OTgsMTIgKzcyMCwxNyBAQCBuZnMzX3Byb2NfbWtub2Qoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICpzYXR0ciwKIAkJZ290byBvdXQ7CiAJfQogCi0Jc3RhdHVzID0gbmZzM19kb19jcmVhdGUoZGlyLCBkZW50cnksIGRhdGEpOworCWRfYWxpYXMgPSBuZnMzX2RvX2NyZWF0ZShkaXIsIGRlbnRyeSwgZGF0YSk7CisJc3RhdHVzID0gUFRSX0VSUl9PUl9aRVJPKGRfYWxpYXMpOwogCWlmIChzdGF0dXMgIT0gMCkKIAkJZ290byBvdXRfcmVsZWFzZV9hY2xzOwogCisJaWYgKGRfYWxpYXMpCisJCWRlbnRyeSA9IGRfYWxpYXM7CisKIAlzdGF0dXMgPSBuZnMzX3Byb2Nfc2V0YWNscyhkX2lub2RlKGRlbnRyeSksIGFjbCwgZGVmYXVsdF9hY2wpOwogCisJZHB1dChkX2FsaWFzKTsKIG91dF9yZWxlYXNlX2FjbHM6CiAJcG9zaXhfYWNsX3JlbGVhc2UoYWNsKTsKIAlwb3NpeF9hY2xfcmVsZWFzZShkZWZhdWx0X2FjbCk7CmRpZmYgLS1naXQgYS9mcy9uZnMvbmZzNF9mcy5oIGIvZnMvbmZzL25mczRfZnMuaAppbmRleCAzNTY0ZGExLi4xNmIyZTVjIDEwMDY0NAotLS0gYS9mcy9uZnMvbmZzNF9mcy5oCisrKyBiL2ZzL25mcy9uZnM0X2ZzLmgKQEAgLTQ5MSw4ICs0OTEsNiBAQCBleHRlcm4gaW50IG5mczRfc2V0X2xvY2tfc3RhdGUoc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlLCBzdHJ1Y3QgZmlsZV9sb2NrICpmbCk7CiBleHRlcm4gaW50IG5mczRfc2VsZWN0X3J3X3N0YXRlaWQoc3RydWN0IG5mczRfc3RhdGUgKiwgZm1vZGVfdCwKIAkJY29uc3Qgc3RydWN0IG5mc19sb2NrX2NvbnRleHQgKiwgbmZzNF9zdGF0ZWlkICosCiAJCWNvbnN0IHN0cnVjdCBjcmVkICoqKTsKLWV4dGVybiBib29sIG5mczRfcmVmcmVzaF9vcGVuX3N0YXRlaWQobmZzNF9zdGF0ZWlkICpkc3QsCi0JCXN0cnVjdCBuZnM0X3N0YXRlICpzdGF0ZSk7CiBleHRlcm4gYm9vbCBuZnM0X2NvcHlfb3Blbl9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LAogCQlzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUpOwogCkBAIC01NzQsNiArNTcyLDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBuZnM0X3N0YXRlaWRfaXNfbmV3ZXIoY29uc3QgbmZzNF9zdGF0ZWlkICpzMSwgY29uc3QgbmZzNF9zdGF0CiAJcmV0dXJuIChzMzIpKGJlMzJfdG9fY3B1KHMxLT5zZXFpZCkgLSBiZTMyX3RvX2NwdShzMi0+c2VxaWQpKSA+IDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBuZnM0X3N0YXRlaWRfc2VxaWRfaW5jKG5mczRfc3RhdGVpZCAqczEpCit7CisJdTMyIHNlcWlkID0gYmUzMl90b19jcHUoczEtPnNlcWlkKTsKKworCWlmICgrK3NlcWlkID09IDApCisJCSsrc2VxaWQ7CisJczEtPnNlcWlkID0gY3B1X3RvX2JlMzIoc2VxaWQpOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgbmZzNF92YWxpZF9vcGVuX3N0YXRlaWQoY29uc3Qgc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlKQogewogCXJldHVybiB0ZXN0X2JpdChORlNfU1RBVEVfUkVDT1ZFUllfRkFJTEVELCAmc3RhdGUtPmZsYWdzKSA9PSAwOwpkaWZmIC0tZ2l0IGEvZnMvbmZzL25mczRwcm9jLmMgYi9mcy9uZnMvbmZzNHByb2MuYwppbmRleCAxNDA2ODU4Li4xMWVhZmNmIDEwMDY0NAotLS0gYS9mcy9uZnMvbmZzNHByb2MuYworKysgYi9mcy9uZnMvbmZzNHByb2MuYwpAQCAtMTA3MywxNCArMTA3MywyNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJwY19jYWxsX29wcyBuZnM0MF9jYWxsX3N5bmNfb3BzID0gewogCS5ycGNfY2FsbF9kb25lID0gbmZzNDBfY2FsbF9zeW5jX2RvbmUsCiB9OwogCitzdGF0aWMgaW50IG5mczRfY2FsbF9zeW5jX2N1c3RvbShzdHJ1Y3QgcnBjX3Rhc2tfc2V0dXAgKnRhc2tfc2V0dXApCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2s7CisKKwl0YXNrID0gcnBjX3J1bl90YXNrKHRhc2tfc2V0dXApOworCWlmIChJU19FUlIodGFzaykpCisJCXJldHVybiBQVFJfRVJSKHRhc2spOworCisJcmV0ID0gdGFzay0+dGtfc3RhdHVzOworCXJwY19wdXRfdGFzayh0YXNrKTsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50IG5mczRfY2FsbF9zeW5jX3NlcXVlbmNlKHN0cnVjdCBycGNfY2xudCAqY2xudCwKIAkJCQkgICBzdHJ1Y3QgbmZzX3NlcnZlciAqc2VydmVyLAogCQkJCSAgIHN0cnVjdCBycGNfbWVzc2FnZSAqbXNnLAogCQkJCSAgIHN0cnVjdCBuZnM0X3NlcXVlbmNlX2FyZ3MgKmFyZ3MsCiAJCQkJICAgc3RydWN0IG5mczRfc2VxdWVuY2VfcmVzICpyZXMpCiB7Ci0JaW50IHJldDsKLQlzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2s7CiAJc3RydWN0IG5mc19jbGllbnQgKmNscCA9IHNlcnZlci0+bmZzX2NsaWVudDsKIAlzdHJ1Y3QgbmZzNF9jYWxsX3N5bmNfZGF0YSBkYXRhID0gewogCQkuc2VxX3NlcnZlciA9IHNlcnZlciwKQEAgLTEwOTQsMTQgKzExMDYsNyBAQCBzdGF0aWMgaW50IG5mczRfY2FsbF9zeW5jX3NlcXVlbmNlKHN0cnVjdCBycGNfY2xudCAqY2xudCwKIAkJLmNhbGxiYWNrX2RhdGEgPSAmZGF0YQogCX07CiAKLQl0YXNrID0gcnBjX3J1bl90YXNrKCZ0YXNrX3NldHVwKTsKLQlpZiAoSVNfRVJSKHRhc2spKQotCQlyZXQgPSBQVFJfRVJSKHRhc2spOwotCWVsc2UgewotCQlyZXQgPSB0YXNrLT50a19zdGF0dXM7Ci0JCXJwY19wdXRfdGFzayh0YXNrKTsKLQl9Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gbmZzNF9jYWxsX3N5bmNfY3VzdG9tKCZ0YXNrX3NldHVwKTsKIH0KIAogaW50IG5mczRfY2FsbF9zeW5jKHN0cnVjdCBycGNfY2xudCAqY2xudCwKQEAgLTMzMDgsNiArMzMxMyw3NSBAQCBuZnM0X3dhaXRfb25fbGF5b3V0cmV0dXJuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBycGNfdGFzayAqdGFzaykKIAlyZXR1cm4gcG5mc193YWl0X29uX2xheW91dHJldHVybihpbm9kZSwgdGFzayk7CiB9CiAKKy8qCisgKiBVcGRhdGUgdGhlIHNlcWlkIG9mIGFuIG9wZW4gc3RhdGVpZAorICovCitzdGF0aWMgdm9pZCBuZnM0X3N5bmNfb3Blbl9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LAorCQlzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUpCit7CisJX19iZTMyIHNlcWlkX29wZW47CisJdTMyIGRzdF9zZXFpZDsKKwlpbnQgc2VxOworCisJZm9yICg7OykgeworCQlpZiAoIW5mczRfdmFsaWRfb3Blbl9zdGF0ZWlkKHN0YXRlKSkKKwkJCWJyZWFrOworCQlzZXEgPSByZWFkX3NlcWJlZ2luKCZzdGF0ZS0+c2VxbG9jayk7CisJCWlmICghbmZzNF9zdGF0ZV9tYXRjaF9vcGVuX3N0YXRlaWRfb3RoZXIoc3RhdGUsIGRzdCkpIHsKKwkJCW5mczRfc3RhdGVpZF9jb3B5KGRzdCwgJnN0YXRlLT5vcGVuX3N0YXRlaWQpOworCQkJaWYgKHJlYWRfc2VxcmV0cnkoJnN0YXRlLT5zZXFsb2NrLCBzZXEpKQorCQkJCWNvbnRpbnVlOworCQkJYnJlYWs7CisJCX0KKwkJc2VxaWRfb3BlbiA9IHN0YXRlLT5vcGVuX3N0YXRlaWQuc2VxaWQ7CisJCWlmIChyZWFkX3NlcXJldHJ5KCZzdGF0ZS0+c2VxbG9jaywgc2VxKSkKKwkJCWNvbnRpbnVlOworCisJCWRzdF9zZXFpZCA9IGJlMzJfdG9fY3B1KGRzdC0+c2VxaWQpOworCQlpZiAoKHMzMikoZHN0X3NlcWlkIC0gYmUzMl90b19jcHUoc2VxaWRfb3BlbikpIDwgMCkKKwkJCWRzdC0+c2VxaWQgPSBzZXFpZF9vcGVuOworCQlicmVhazsKKwl9Cit9CisKKy8qCisgKiBVcGRhdGUgdGhlIHNlcWlkIG9mIGFuIG9wZW4gc3RhdGVpZCBhZnRlciByZWNlaXZpbmcKKyAqIE5GUzRFUlJfT0xEX1NUQVRFSUQKKyAqLworc3RhdGljIGJvb2wgbmZzNF9yZWZyZXNoX29wZW5fb2xkX3N0YXRlaWQobmZzNF9zdGF0ZWlkICpkc3QsCisJCXN0cnVjdCBuZnM0X3N0YXRlICpzdGF0ZSkKK3sKKwlfX2JlMzIgc2VxaWRfb3BlbjsKKwl1MzIgZHN0X3NlcWlkOworCWJvb2wgcmV0OworCWludCBzZXE7CisKKwlmb3IgKDs7KSB7CisJCXJldCA9IGZhbHNlOworCQlpZiAoIW5mczRfdmFsaWRfb3Blbl9zdGF0ZWlkKHN0YXRlKSkKKwkJCWJyZWFrOworCQlzZXEgPSByZWFkX3NlcWJlZ2luKCZzdGF0ZS0+c2VxbG9jayk7CisJCWlmICghbmZzNF9zdGF0ZV9tYXRjaF9vcGVuX3N0YXRlaWRfb3RoZXIoc3RhdGUsIGRzdCkpIHsKKwkJCWlmIChyZWFkX3NlcXJldHJ5KCZzdGF0ZS0+c2VxbG9jaywgc2VxKSkKKwkJCQljb250aW51ZTsKKwkJCWJyZWFrOworCQl9CisJCXNlcWlkX29wZW4gPSBzdGF0ZS0+b3Blbl9zdGF0ZWlkLnNlcWlkOworCQlpZiAocmVhZF9zZXFyZXRyeSgmc3RhdGUtPnNlcWxvY2ssIHNlcSkpCisJCQljb250aW51ZTsKKworCQlkc3Rfc2VxaWQgPSBiZTMyX3RvX2NwdShkc3QtPnNlcWlkKTsKKwkJaWYgKChzMzIpKGRzdF9zZXFpZCAtIGJlMzJfdG9fY3B1KHNlcWlkX29wZW4pKSA+PSAwKQorCQkJZHN0LT5zZXFpZCA9IGNwdV90b19iZTMyKGRzdF9zZXFpZCArIDEpOworCQllbHNlCisJCQlkc3QtPnNlcWlkID0gc2VxaWRfb3BlbjsKKwkJcmV0ID0gdHJ1ZTsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJldDsKK30KKwogc3RydWN0IG5mczRfY2xvc2VkYXRhIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCXN0cnVjdCBuZnM0X3N0YXRlICpzdGF0ZTsKQEAgLTMzNTgsMzIgKzM0MzIsMTEgQEAgc3RhdGljIHZvaWQgbmZzNF9jbG9zZV9kb25lKHN0cnVjdCBycGNfdGFzayAqdGFzaywgdm9pZCAqZGF0YSkKIAl0cmFjZV9uZnM0X2Nsb3NlKHN0YXRlLCAmY2FsbGRhdGEtPmFyZywgJmNhbGxkYXRhLT5yZXMsIHRhc2stPnRrX3N0YXR1cyk7CiAKIAkvKiBIYW5kbGUgTGF5b3V0cmV0dXJuIGVycm9ycyAqLwotCWlmIChjYWxsZGF0YS0+YXJnLmxyX2FyZ3MgJiYgdGFzay0+dGtfc3RhdHVzICE9IDApIHsKLQkJc3dpdGNoIChjYWxsZGF0YS0+cmVzLmxyX3JldCkgewotCQlkZWZhdWx0OgotCQkJY2FsbGRhdGEtPnJlcy5scl9yZXQgPSAtTkZTNEVSUl9OT01BVENISU5HX0xBWU9VVDsKLQkJCWJyZWFrOwotCQljYXNlIDA6Ci0JCQljYWxsZGF0YS0+YXJnLmxyX2FyZ3MgPSBOVUxMOwotCQkJY2FsbGRhdGEtPnJlcy5scl9yZXMgPSBOVUxMOwotCQkJYnJlYWs7Ci0JCWNhc2UgLU5GUzRFUlJfT0xEX1NUQVRFSUQ6Ci0JCQlpZiAobmZzNF9sYXlvdXRyZXR1cm5fcmVmcmVzaF9zdGF0ZWlkKCZjYWxsZGF0YS0+YXJnLmxyX2FyZ3MtPnN0YXRlaWQsCi0JCQkJCQkmY2FsbGRhdGEtPmFyZy5scl9hcmdzLT5yYW5nZSwKLQkJCQkJCWNhbGxkYXRhLT5pbm9kZSkpCi0JCQkJZ290byBscl9yZXN0YXJ0OwotCQkJLyogRmFsbHRocm91Z2ggKi8KLQkJY2FzZSAtTkZTNEVSUl9BRE1JTl9SRVZPS0VEOgotCQljYXNlIC1ORlM0RVJSX0RFTEVHX1JFVk9LRUQ6Ci0JCWNhc2UgLU5GUzRFUlJfRVhQSVJFRDoKLQkJY2FzZSAtTkZTNEVSUl9CQURfU1RBVEVJRDoKLQkJY2FzZSAtTkZTNEVSUl9VTktOT1dOX0xBWU9VVFRZUEU6Ci0JCWNhc2UgLU5GUzRFUlJfV1JPTkdfQ1JFRDoKLQkJCWNhbGxkYXRhLT5hcmcubHJfYXJncyA9IE5VTEw7Ci0JCQljYWxsZGF0YS0+cmVzLmxyX3JlcyA9IE5VTEw7Ci0JCQlnb3RvIGxyX3Jlc3RhcnQ7Ci0JCX0KLQl9CisJaWYgKHBuZnNfcm9jX2RvbmUodGFzaywgY2FsbGRhdGEtPmlub2RlLAorCQkJCSZjYWxsZGF0YS0+YXJnLmxyX2FyZ3MsCisJCQkJJmNhbGxkYXRhLT5yZXMubHJfcmVzLAorCQkJCSZjYWxsZGF0YS0+cmVzLmxyX3JldCkgPT0gLUVBR0FJTikKKwkJZ290byBvdXRfcmVzdGFydDsKIAogCS8qIGhtbS4gd2UgYXJlIGRvbmUgd2l0aCB0aGUgaW5vZGUsIGFuZCBpbiB0aGUgcHJvY2VzcyBvZiBmcmVlaW5nCiAJICogdGhlIHN0YXRlX293bmVyLiB3ZSBrZWVwIHRoaXMgYXJvdW5kIHRvIHByb2Nlc3MgZXJyb3JzCkBAIC0zNDAzLDcgKzM0NTYsNyBAQCBzdGF0aWMgdm9pZCBuZnM0X2Nsb3NlX2RvbmUoc3RydWN0IHJwY190YXNrICp0YXNrLCB2b2lkICpkYXRhKQogCQkJYnJlYWs7CiAJCWNhc2UgLU5GUzRFUlJfT0xEX1NUQVRFSUQ6CiAJCQkvKiBEaWQgd2UgcmFjZSB3aXRoIE9QRU4/ICovCi0JCQlpZiAobmZzNF9yZWZyZXNoX29wZW5fc3RhdGVpZCgmY2FsbGRhdGEtPmFyZy5zdGF0ZWlkLAorCQkJaWYgKG5mczRfcmVmcmVzaF9vcGVuX29sZF9zdGF0ZWlkKCZjYWxsZGF0YS0+YXJnLnN0YXRlaWQsCiAJCQkJCQlzdGF0ZSkpCiAJCQkJZ290byBvdXRfcmVzdGFydDsKIAkJCWdvdG8gb3V0X3JlbGVhc2U7CkBAIC0zNDE1LDcgKzM0NjgsOSBAQCBzdGF0aWMgdm9pZCBuZnM0X2Nsb3NlX2RvbmUoc3RydWN0IHJwY190YXNrICp0YXNrLCB2b2lkICpkYXRhKQogCQkJCQl0YXNrLT50a19tc2cucnBjX2NyZWQpOwogCQkJLyogRmFsbHRocm91Z2ggKi8KIAkJY2FzZSAtTkZTNEVSUl9CQURfU1RBVEVJRDoKLQkJCWJyZWFrOworCQkJaWYgKGNhbGxkYXRhLT5hcmcuZm1vZGUgPT0gMCkKKwkJCQlicmVhazsKKwkJCS8qIEZhbGx0aHJvdWdoICovCiAJCWRlZmF1bHQ6CiAJCQl0YXNrLT50a19zdGF0dXMgPSBuZnM0X2FzeW5jX2hhbmRsZV9leGNlcHRpb24odGFzaywKIAkJCQkJc2VydmVyLCB0YXNrLT50a19zdGF0dXMsICZleGNlcHRpb24pOwpAQCAtMzQzMCw4ICszNDg1LDYgQEAgc3RhdGljIHZvaWQgbmZzNF9jbG9zZV9kb25lKHN0cnVjdCBycGNfdGFzayAqdGFzaywgdm9pZCAqZGF0YSkKIAluZnNfcmVmcmVzaF9pbm9kZShjYWxsZGF0YS0+aW5vZGUsICZjYWxsZGF0YS0+ZmF0dHIpOwogCWRwcmludGsoIiVzOiBkb25lLCByZXQgPSAlZCFcbiIsIF9fZnVuY19fLCB0YXNrLT50a19zdGF0dXMpOwogCXJldHVybjsKLWxyX3Jlc3RhcnQ6Ci0JY2FsbGRhdGEtPnJlcy5scl9yZXQgPSAwOwogb3V0X3Jlc3RhcnQ6CiAJdGFzay0+dGtfc3RhdHVzID0gMDsKIAlycGNfcmVzdGFydF9jYWxsX3ByZXBhcmUodGFzayk7CkBAIC0zNDcyLDggKzM1MjUsOCBAQCBzdGF0aWMgdm9pZCBuZnM0X2Nsb3NlX3ByZXBhcmUoc3RydWN0IHJwY190YXNrICp0YXNrLCB2b2lkICpkYXRhKQogCX0gZWxzZSBpZiAoaXNfcmR3cikKIAkJY2FsbGRhdGEtPmFyZy5mbW9kZSB8PSBGTU9ERV9SRUFEfEZNT0RFX1dSSVRFOwogCi0JaWYgKCFuZnM0X3ZhbGlkX29wZW5fc3RhdGVpZChzdGF0ZSkgfHwKLQkgICAgIW5mczRfcmVmcmVzaF9vcGVuX3N0YXRlaWQoJmNhbGxkYXRhLT5hcmcuc3RhdGVpZCwgc3RhdGUpKQorCW5mczRfc3luY19vcGVuX3N0YXRlaWQoJmNhbGxkYXRhLT5hcmcuc3RhdGVpZCwgc3RhdGUpOworCWlmICghbmZzNF92YWxpZF9vcGVuX3N0YXRlaWQoc3RhdGUpKQogCQljYWxsX2Nsb3NlID0gMDsKIAlzcGluX3VubG9jaygmc3RhdGUtPm93bmVyLT5zb19sb2NrKTsKIApAQCAtNjAxOCw3ICs2MDcxLDYgQEAgaW50IG5mczRfcHJvY19zZXRjbGllbnRpZChzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwLCB1MzIgcHJvZ3JhbSwKIAkJLnJwY19yZXNwID0gcmVzLAogCQkucnBjX2NyZWQgPSBjcmVkLAogCX07Ci0Jc3RydWN0IHJwY190YXNrICp0YXNrOwogCXN0cnVjdCBycGNfdGFza19zZXR1cCB0YXNrX3NldHVwX2RhdGEgPSB7CiAJCS5ycGNfY2xpZW50ID0gY2xwLT5jbF9ycGNjbGllbnQsCiAJCS5ycGNfbWVzc2FnZSA9ICZtc2csCkBAIC02MDUxLDE3ICs2MTAzLDEyIEBAIGludCBuZnM0X3Byb2Nfc2V0Y2xpZW50aWQoc3RydWN0IG5mc19jbGllbnQgKmNscCwgdTMyIHByb2dyYW0sCiAJZHByaW50aygiTkZTIGNhbGwgIHNldGNsaWVudGlkIGF1dGg9JXMsICclcydcbiIsCiAJCWNscC0+Y2xfcnBjY2xpZW50LT5jbF9hdXRoLT5hdV9vcHMtPmF1X25hbWUsCiAJCWNscC0+Y2xfb3duZXJfaWQpOwotCXRhc2sgPSBycGNfcnVuX3Rhc2soJnRhc2tfc2V0dXBfZGF0YSk7Ci0JaWYgKElTX0VSUih0YXNrKSkgewotCQlzdGF0dXMgPSBQVFJfRVJSKHRhc2spOwotCQlnb3RvIG91dDsKLQl9Ci0Jc3RhdHVzID0gdGFzay0+dGtfc3RhdHVzOworCisJc3RhdHVzID0gbmZzNF9jYWxsX3N5bmNfY3VzdG9tKCZ0YXNrX3NldHVwX2RhdGEpOwogCWlmIChzZXRjbGllbnRpZC5zY19jcmVkKSB7CiAJCWNscC0+Y2xfYWNjZXB0b3IgPSBycGNhdXRoX3N0cmluZ2lmeV9hY2NlcHRvcihzZXRjbGllbnRpZC5zY19jcmVkKTsKIAkJcHV0X3JwY2NyZWQoc2V0Y2xpZW50aWQuc2NfY3JlZCk7CiAJfQotCXJwY19wdXRfdGFzayh0YXNrKTsKIG91dDoKIAl0cmFjZV9uZnM0X3NldGNsaWVudGlkKGNscCwgc3RhdHVzKTsKIAlkcHJpbnRrKCJORlMgcmVwbHkgc2V0Y2xpZW50aWQ6ICVkXG4iLCBzdGF0dXMpOwpAQCAtNjEyOSwzMiArNjE3NiwxMSBAQCBzdGF0aWMgdm9pZCBuZnM0X2RlbGVncmV0dXJuX2RvbmUoc3RydWN0IHJwY190YXNrICp0YXNrLCB2b2lkICpjYWxsZGF0YSkKIAl0cmFjZV9uZnM0X2RlbGVncmV0dXJuX2V4aXQoJmRhdGEtPmFyZ3MsICZkYXRhLT5yZXMsIHRhc2stPnRrX3N0YXR1cyk7CiAKIAkvKiBIYW5kbGUgTGF5b3V0cmV0dXJuIGVycm9ycyAqLwotCWlmIChkYXRhLT5hcmdzLmxyX2FyZ3MgJiYgdGFzay0+dGtfc3RhdHVzICE9IDApIHsKLQkJc3dpdGNoKGRhdGEtPnJlcy5scl9yZXQpIHsKLQkJZGVmYXVsdDoKLQkJCWRhdGEtPnJlcy5scl9yZXQgPSAtTkZTNEVSUl9OT01BVENISU5HX0xBWU9VVDsKLQkJCWJyZWFrOwotCQljYXNlIDA6Ci0JCQlkYXRhLT5hcmdzLmxyX2FyZ3MgPSBOVUxMOwotCQkJZGF0YS0+cmVzLmxyX3JlcyA9IE5VTEw7Ci0JCQlicmVhazsKLQkJY2FzZSAtTkZTNEVSUl9PTERfU1RBVEVJRDoKLQkJCWlmIChuZnM0X2xheW91dHJldHVybl9yZWZyZXNoX3N0YXRlaWQoJmRhdGEtPmFyZ3MubHJfYXJncy0+c3RhdGVpZCwKLQkJCQkJCSZkYXRhLT5hcmdzLmxyX2FyZ3MtPnJhbmdlLAotCQkJCQkJZGF0YS0+aW5vZGUpKQotCQkJCWdvdG8gbHJfcmVzdGFydDsKLQkJCS8qIEZhbGx0aHJvdWdoICovCi0JCWNhc2UgLU5GUzRFUlJfQURNSU5fUkVWT0tFRDoKLQkJY2FzZSAtTkZTNEVSUl9ERUxFR19SRVZPS0VEOgotCQljYXNlIC1ORlM0RVJSX0VYUElSRUQ6Ci0JCWNhc2UgLU5GUzRFUlJfQkFEX1NUQVRFSUQ6Ci0JCWNhc2UgLU5GUzRFUlJfVU5LTk9XTl9MQVlPVVRUWVBFOgotCQljYXNlIC1ORlM0RVJSX1dST05HX0NSRUQ6Ci0JCQlkYXRhLT5hcmdzLmxyX2FyZ3MgPSBOVUxMOwotCQkJZGF0YS0+cmVzLmxyX3JlcyA9IE5VTEw7Ci0JCQlnb3RvIGxyX3Jlc3RhcnQ7Ci0JCX0KLQl9CisJaWYgKHBuZnNfcm9jX2RvbmUodGFzaywgZGF0YS0+aW5vZGUsCisJCQkJJmRhdGEtPmFyZ3MubHJfYXJncywKKwkJCQkmZGF0YS0+cmVzLmxyX3JlcywKKwkJCQkmZGF0YS0+cmVzLmxyX3JldCkgPT0gLUVBR0FJTikKKwkJZ290byBvdXRfcmVzdGFydDsKIAogCXN3aXRjaCAodGFzay0+dGtfc3RhdHVzKSB7CiAJY2FzZSAwOgpAQCAtNjE5Miw4ICs2MjE4LDYgQEAgc3RhdGljIHZvaWQgbmZzNF9kZWxlZ3JldHVybl9kb25lKHN0cnVjdCBycGNfdGFzayAqdGFzaywgdm9pZCAqY2FsbGRhdGEpCiAJfQogCWRhdGEtPnJwY19zdGF0dXMgPSB0YXNrLT50a19zdGF0dXM7CiAJcmV0dXJuOwotbHJfcmVzdGFydDoKLQlkYXRhLT5yZXMubHJfcmV0ID0gMDsKIG91dF9yZXN0YXJ0OgogCXRhc2stPnRrX3N0YXR1cyA9IDA7CiAJcnBjX3Jlc3RhcnRfY2FsbF9wcmVwYXJlKHRhc2spOwpAQCAtNjM4Niw2ICs2NDEwLDQyIEBAIHN0YXRpYyBpbnQgbmZzNF9wcm9jX2dldGxrKHN0cnVjdCBuZnM0X3N0YXRlICpzdGF0ZSwgaW50IGNtZCwgc3RydWN0IGZpbGVfbG9jayAqCiAJcmV0dXJuIGVycjsKIH0KIAorLyoKKyAqIFVwZGF0ZSB0aGUgc2VxaWQgb2YgYSBsb2NrIHN0YXRlaWQgYWZ0ZXIgcmVjZWl2aW5nCisgKiBORlM0RVJSX09MRF9TVEFURUlECisgKi8KK3N0YXRpYyBib29sIG5mczRfcmVmcmVzaF9sb2NrX29sZF9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LAorCQlzdHJ1Y3QgbmZzNF9sb2NrX3N0YXRlICpsc3ApCit7CisJc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlID0gbHNwLT5sc19zdGF0ZTsKKwlib29sIHJldCA9IGZhbHNlOworCisJc3Bpbl9sb2NrKCZzdGF0ZS0+c3RhdGVfbG9jayk7CisJaWYgKCFuZnM0X3N0YXRlaWRfbWF0Y2hfb3RoZXIoZHN0LCAmbHNwLT5sc19zdGF0ZWlkKSkKKwkJZ290byBvdXQ7CisJaWYgKCFuZnM0X3N0YXRlaWRfaXNfbmV3ZXIoJmxzcC0+bHNfc3RhdGVpZCwgZHN0KSkKKwkJbmZzNF9zdGF0ZWlkX3NlcWlkX2luYyhkc3QpOworCWVsc2UKKwkJZHN0LT5zZXFpZCA9IGxzcC0+bHNfc3RhdGVpZC5zZXFpZDsKKwlyZXQgPSB0cnVlOworb3V0OgorCXNwaW5fdW5sb2NrKCZzdGF0ZS0+c3RhdGVfbG9jayk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGJvb2wgbmZzNF9zeW5jX2xvY2tfc3RhdGVpZChuZnM0X3N0YXRlaWQgKmRzdCwKKwkJc3RydWN0IG5mczRfbG9ja19zdGF0ZSAqbHNwKQoreworCXN0cnVjdCBuZnM0X3N0YXRlICpzdGF0ZSA9IGxzcC0+bHNfc3RhdGU7CisJYm9vbCByZXQ7CisKKwlzcGluX2xvY2soJnN0YXRlLT5zdGF0ZV9sb2NrKTsKKwlyZXQgPSAhbmZzNF9zdGF0ZWlkX21hdGNoX290aGVyKGRzdCwgJmxzcC0+bHNfc3RhdGVpZCk7CisJbmZzNF9zdGF0ZWlkX2NvcHkoZHN0LCAmbHNwLT5sc19zdGF0ZWlkKTsKKwlzcGluX3VubG9jaygmc3RhdGUtPnN0YXRlX2xvY2spOworCXJldHVybiByZXQ7Cit9CisKIHN0cnVjdCBuZnM0X3VubG9ja2RhdGEgewogCXN0cnVjdCBuZnNfbG9ja3VfYXJncyBhcmc7CiAJc3RydWN0IG5mc19sb2NrdV9yZXMgcmVzOwpAQCAtNjQwMyw3ICs2NDYzLDggQEAgc3RhdGljIHN0cnVjdCBuZnM0X3VubG9ja2RhdGEgKm5mczRfYWxsb2NfdW5sb2NrZGF0YShzdHJ1Y3QgZmlsZV9sb2NrICpmbCwKIAkJc3RydWN0IG5mc19zZXFpZCAqc2VxaWQpCiB7CiAJc3RydWN0IG5mczRfdW5sb2NrZGF0YSAqcDsKLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbHNwLT5sc19zdGF0ZS0+aW5vZGU7CisJc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlID0gbHNwLT5sc19zdGF0ZTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gc3RhdGUtPmlub2RlOwogCiAJcCA9IGt6YWxsb2Moc2l6ZW9mKCpwKSwgR0ZQX05PRlMpOwogCWlmIChwID09IE5VTEwpCkBAIC02NDE5LDYgKzY0ODAsOSBAQCBzdGF0aWMgc3RydWN0IG5mczRfdW5sb2NrZGF0YSAqbmZzNF9hbGxvY191bmxvY2tkYXRhKHN0cnVjdCBmaWxlX2xvY2sgKmZsLAogCWxvY2tzX2luaXRfbG9jaygmcC0+ZmwpOwogCWxvY2tzX2NvcHlfbG9jaygmcC0+ZmwsIGZsKTsKIAlwLT5zZXJ2ZXIgPSBORlNfU0VSVkVSKGlub2RlKTsKKwlzcGluX2xvY2soJnN0YXRlLT5zdGF0ZV9sb2NrKTsKKwluZnM0X3N0YXRlaWRfY29weSgmcC0+YXJnLnN0YXRlaWQsICZsc3AtPmxzX3N0YXRlaWQpOworCXNwaW5fdW5sb2NrKCZzdGF0ZS0+c3RhdGVfbG9jayk7CiAJcmV0dXJuIHA7CiB9CiAKQEAgLTY0NTcsMTAgKzY1MjEsMTQgQEAgc3RhdGljIHZvaWQgbmZzNF9sb2NrdV9kb25lKHN0cnVjdCBycGNfdGFzayAqdGFzaywgdm9pZCAqZGF0YSkKIAkJCQkJdGFzay0+dGtfbXNnLnJwY19jcmVkKTsKIAkJCS8qIEZhbGwgdGhyb3VnaCAqLwogCQljYXNlIC1ORlM0RVJSX0JBRF9TVEFURUlEOgotCQljYXNlIC1ORlM0RVJSX09MRF9TVEFURUlEOgogCQljYXNlIC1ORlM0RVJSX1NUQUxFX1NUQVRFSUQ6Ci0JCQlpZiAoIW5mczRfc3RhdGVpZF9tYXRjaCgmY2FsbGRhdGEtPmFyZy5zdGF0ZWlkLAotCQkJCQkJJmNhbGxkYXRhLT5sc3AtPmxzX3N0YXRlaWQpKQorCQkJaWYgKG5mczRfc3luY19sb2NrX3N0YXRlaWQoJmNhbGxkYXRhLT5hcmcuc3RhdGVpZCwKKwkJCQkJCWNhbGxkYXRhLT5sc3ApKQorCQkJCXJwY19yZXN0YXJ0X2NhbGxfcHJlcGFyZSh0YXNrKTsKKwkJCWJyZWFrOworCQljYXNlIC1ORlM0RVJSX09MRF9TVEFURUlEOgorCQkJaWYgKG5mczRfcmVmcmVzaF9sb2NrX29sZF9zdGF0ZWlkKCZjYWxsZGF0YS0+YXJnLnN0YXRlaWQsCisJCQkJCQljYWxsZGF0YS0+bHNwKSkKIAkJCQlycGNfcmVzdGFydF9jYWxsX3ByZXBhcmUodGFzayk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTY0ODMsNyArNjU1MSw2IEBAIHN0YXRpYyB2b2lkIG5mczRfbG9ja3VfcHJlcGFyZShzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2ssIHZvaWQgKmRhdGEpCiAKIAlpZiAobmZzX3dhaXRfb25fc2VxdWVuY2UoY2FsbGRhdGEtPmFyZy5zZXFpZCwgdGFzaykgIT0gMCkKIAkJZ290byBvdXRfd2FpdDsKLQluZnM0X3N0YXRlaWRfY29weSgmY2FsbGRhdGEtPmFyZy5zdGF0ZWlkLCAmY2FsbGRhdGEtPmxzcC0+bHNfc3RhdGVpZCk7CiAJaWYgKHRlc3RfYml0KE5GU19MT0NLX0lOSVRJQUxJWkVELCAmY2FsbGRhdGEtPmxzcC0+bHNfZmxhZ3MpID09IDApIHsKIAkJLyogTm90ZTogZXhpdCBfd2l0aG91dF8gcnVubmluZyBuZnM0X2xvY2t1X2RvbmUgKi8KIAkJZ290byBvdXRfbm9fYWN0aW9uOwpAQCAtNzY0NSw2ICs3NzEyLDggQEAgaW50IG5mczRfcHJvY19mc2lkX3ByZXNlbnQoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGNyZWQgKmNyZWQpCiBzdGF0aWMgaW50IF9uZnM0X3Byb2Nfc2VjaW5mbyhzdHJ1Y3QgaW5vZGUgKmRpciwgY29uc3Qgc3RydWN0IHFzdHIgKm5hbWUsIHN0cnVjdCBuZnM0X3NlY2luZm9fZmxhdm9ycyAqZmxhdm9ycywgYm9vbCB1c2VfaW50ZWdyaXR5KQogewogCWludCBzdGF0dXM7CisJc3RydWN0IHJwY19jbG50ICpjbG50ID0gTkZTX1NFUlZFUihkaXIpLT5jbGllbnQ7CisJc3RydWN0IG5mc19jbGllbnQgKmNscCA9IE5GU19TRVJWRVIoZGlyKS0+bmZzX2NsaWVudDsKIAlzdHJ1Y3QgbmZzNF9zZWNpbmZvX2FyZyBhcmdzID0gewogCQkuZGlyX2ZoID0gTkZTX0ZIKGRpciksCiAJCS5uYW1lICAgPSBuYW1lLApAQCAtNzY1NywyNiArNzcyNiwzNyBAQCBzdGF0aWMgaW50IF9uZnM0X3Byb2Nfc2VjaW5mbyhzdHJ1Y3QgaW5vZGUgKmRpciwgY29uc3Qgc3RydWN0IHFzdHIgKm5hbWUsIHN0cnVjdAogCQkucnBjX2FyZ3AgPSAmYXJncywKIAkJLnJwY19yZXNwID0gJnJlcywKIAl9OwotCXN0cnVjdCBycGNfY2xudCAqY2xudCA9IE5GU19TRVJWRVIoZGlyKS0+Y2xpZW50OworCXN0cnVjdCBuZnM0X2NhbGxfc3luY19kYXRhIGRhdGEgPSB7CisJCS5zZXFfc2VydmVyID0gTkZTX1NFUlZFUihkaXIpLAorCQkuc2VxX2FyZ3MgPSAmYXJncy5zZXFfYXJncywKKwkJLnNlcV9yZXMgPSAmcmVzLnNlcV9yZXMsCisJfTsKKwlzdHJ1Y3QgcnBjX3Rhc2tfc2V0dXAgdGFza19zZXR1cCA9IHsKKwkJLnJwY19jbGllbnQgPSBjbG50LAorCQkucnBjX21lc3NhZ2UgPSAmbXNnLAorCQkuY2FsbGJhY2tfb3BzID0gY2xwLT5jbF9tdm9wcy0+Y2FsbF9zeW5jX29wcywKKwkJLmNhbGxiYWNrX2RhdGEgPSAmZGF0YSwKKwkJLmZsYWdzID0gUlBDX1RBU0tfTk9fUk9VTkRfUk9CSU4sCisJfTsKIAljb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCA9IE5VTEw7CiAKIAlpZiAodXNlX2ludGVncml0eSkgewotCQljbG50ID0gTkZTX1NFUlZFUihkaXIpLT5uZnNfY2xpZW50LT5jbF9ycGNjbGllbnQ7Ci0JCWNyZWQgPSBuZnM0X2dldF9jbGlkX2NyZWQoTkZTX1NFUlZFUihkaXIpLT5uZnNfY2xpZW50KTsKKwkJY2xudCA9IGNscC0+Y2xfcnBjY2xpZW50OworCQl0YXNrX3NldHVwLnJwY19jbGllbnQgPSBjbG50OworCisJCWNyZWQgPSBuZnM0X2dldF9jbGlkX2NyZWQoY2xwKTsKIAkJbXNnLnJwY19jcmVkID0gY3JlZDsKIAl9CiAKIAlkcHJpbnRrKCJORlMgY2FsbCAgc2VjaW5mbyAlc1xuIiwgbmFtZS0+bmFtZSk7CiAKLQluZnM0X3N0YXRlX3Byb3RlY3QoTkZTX1NFUlZFUihkaXIpLT5uZnNfY2xpZW50LAotCQlORlNfU1A0X01BQ0hfQ1JFRF9TRUNJTkZPLCAmY2xudCwgJm1zZyk7CisJbmZzNF9zdGF0ZV9wcm90ZWN0KGNscCwgTkZTX1NQNF9NQUNIX0NSRURfU0VDSU5GTywgJmNsbnQsICZtc2cpOworCW5mczRfaW5pdF9zZXF1ZW5jZSgmYXJncy5zZXFfYXJncywgJnJlcy5zZXFfcmVzLCAwLCAwKTsKKwlzdGF0dXMgPSBuZnM0X2NhbGxfc3luY19jdXN0b20oJnRhc2tfc2V0dXApOwogCi0Jc3RhdHVzID0gbmZzNF9jYWxsX3N5bmMoY2xudCwgTkZTX1NFUlZFUihkaXIpLCAmbXNnLCAmYXJncy5zZXFfYXJncywKLQkJCQkmcmVzLnNlcV9yZXMsIFJQQ19UQVNLX05PX1JPVU5EX1JPQklOKTsKIAlkcHJpbnRrKCJORlMgcmVwbHkgIHNlY2luZm86ICVkXG4iLCBzdGF0dXMpOwogCiAJcHV0X2NyZWQoY3JlZCk7Ci0KIAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC04MzQ0LDcgKzg0MjQsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJwY19jYWxsX29wcyBuZnM0X2dldF9sZWFzZV90aW1lX29wcyA9IHsKIAogaW50IG5mczRfcHJvY19nZXRfbGVhc2VfdGltZShzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwLCBzdHJ1Y3QgbmZzX2ZzaW5mbyAqZnNpbmZvKQogewotCXN0cnVjdCBycGNfdGFzayAqdGFzazsKIAlzdHJ1Y3QgbmZzNF9nZXRfbGVhc2VfdGltZV9hcmdzIGFyZ3M7CiAJc3RydWN0IG5mczRfZ2V0X2xlYXNlX3RpbWVfcmVzIHJlcyA9IHsKIAkJLmxyX2ZzaW5mbyA9IGZzaW5mbywKQEAgLTgzNjYsMTcgKzg0NDUsOSBAQCBpbnQgbmZzNF9wcm9jX2dldF9sZWFzZV90aW1lKHN0cnVjdCBuZnNfY2xpZW50ICpjbHAsIHN0cnVjdCBuZnNfZnNpbmZvICpmc2luZm8pCiAJCS5jYWxsYmFja19kYXRhID0gJmRhdGEsCiAJCS5mbGFncyA9IFJQQ19UQVNLX1RJTUVPVVQsCiAJfTsKLQlpbnQgc3RhdHVzOwogCiAJbmZzNF9pbml0X3NlcXVlbmNlKCZhcmdzLmxhX3NlcV9hcmdzLCAmcmVzLmxyX3NlcV9yZXMsIDAsIDEpOwotCXRhc2sgPSBycGNfcnVuX3Rhc2soJnRhc2tfc2V0dXApOwotCi0JaWYgKElTX0VSUih0YXNrKSkKLQkJcmV0dXJuIFBUUl9FUlIodGFzayk7Ci0KLQlzdGF0dXMgPSB0YXNrLT50a19zdGF0dXM7Ci0JcnBjX3B1dF90YXNrKHRhc2spOwotCXJldHVybiBzdGF0dXM7CisJcmV0dXJuIG5mczRfY2FsbF9zeW5jX2N1c3RvbSgmdGFza19zZXR1cCk7CiB9CiAKICNpZmRlZiBDT05GSUdfTkZTX1Y0XzEKQEAgLTg4NDUsNyArODkxNiw2IEBAIHN0YXRpYyBpbnQgbmZzNDFfcHJvY19yZWNsYWltX2NvbXBsZXRlKHN0cnVjdCBuZnNfY2xpZW50ICpjbHAsCiAJCWNvbnN0IHN0cnVjdCBjcmVkICpjcmVkKQogewogCXN0cnVjdCBuZnM0X3JlY2xhaW1fY29tcGxldGVfZGF0YSAqY2FsbGRhdGE7Ci0Jc3RydWN0IHJwY190YXNrICp0YXNrOwogCXN0cnVjdCBycGNfbWVzc2FnZSBtc2cgPSB7CiAJCS5ycGNfcHJvYyA9ICZuZnM0X3Byb2NlZHVyZXNbTkZTUFJPQzRfQ0xOVF9SRUNMQUlNX0NPTVBMRVRFXSwKIAkJLnJwY19jcmVkID0gY3JlZCwKQEAgLTg4NTQsNyArODkyNCw3IEBAIHN0YXRpYyBpbnQgbmZzNDFfcHJvY19yZWNsYWltX2NvbXBsZXRlKHN0cnVjdCBuZnNfY2xpZW50ICpjbHAsCiAJCS5ycGNfY2xpZW50ID0gY2xwLT5jbF9ycGNjbGllbnQsCiAJCS5ycGNfbWVzc2FnZSA9ICZtc2csCiAJCS5jYWxsYmFja19vcHMgPSAmbmZzNF9yZWNsYWltX2NvbXBsZXRlX2NhbGxfb3BzLAotCQkuZmxhZ3MgPSBSUENfVEFTS19BU1lOQyB8IFJQQ19UQVNLX05PX1JPVU5EX1JPQklOLAorCQkuZmxhZ3MgPSBSUENfVEFTS19OT19ST1VORF9ST0JJTiwKIAl9OwogCWludCBzdGF0dXMgPSAtRU5PTUVNOwogCkBAIC04ODY5LDE1ICs4OTM5LDcgQEAgc3RhdGljIGludCBuZnM0MV9wcm9jX3JlY2xhaW1fY29tcGxldGUoc3RydWN0IG5mc19jbGllbnQgKmNscCwKIAltc2cucnBjX2FyZ3AgPSAmY2FsbGRhdGEtPmFyZzsKIAltc2cucnBjX3Jlc3AgPSAmY2FsbGRhdGEtPnJlczsKIAl0YXNrX3NldHVwX2RhdGEuY2FsbGJhY2tfZGF0YSA9IGNhbGxkYXRhOwotCXRhc2sgPSBycGNfcnVuX3Rhc2soJnRhc2tfc2V0dXBfZGF0YSk7Ci0JaWYgKElTX0VSUih0YXNrKSkgewotCQlzdGF0dXMgPSBQVFJfRVJSKHRhc2spOwotCQlnb3RvIG91dDsKLQl9Ci0Jc3RhdHVzID0gcnBjX3dhaXRfZm9yX2NvbXBsZXRpb25fdGFzayh0YXNrKTsKLQlpZiAoc3RhdHVzID09IDApCi0JCXN0YXR1cyA9IHRhc2stPnRrX3N0YXR1czsKLQlycGNfcHV0X3Rhc2sodGFzayk7CisJc3RhdHVzID0gbmZzNF9jYWxsX3N5bmNfY3VzdG9tKCZ0YXNrX3NldHVwX2RhdGEpOwogb3V0OgogCWRwcmludGsoIjwtLSAlcyBzdGF0dXM9JWRcbiIsIF9fZnVuY19fLCBzdGF0dXMpOwogCXJldHVybiBzdGF0dXM7CkBAIC05MTAzLDEwICs5MTY1LDE5IEBAIHN0YXRpYyB2b2lkIG5mczRfbGF5b3V0cmV0dXJuX2RvbmUoc3RydWN0IHJwY190YXNrICp0YXNrLCB2b2lkICpjYWxsZGF0YSkKIAlpZiAoIW5mczQxX3NlcXVlbmNlX3Byb2Nlc3ModGFzaywgJmxycC0+cmVzLnNlcV9yZXMpKQogCQlyZXR1cm47CiAKKwkvKgorCSAqIFdhcyB0aGVyZSBhbiBSUEMgbGV2ZWwgZXJyb3I/IEFzc3VtZSB0aGUgY2FsbCBzdWNjZWVkZWQsCisJICogYW5kIHRoYXQgd2UgbmVlZCB0byByZWxlYXNlIHRoZSBsYXlvdXQKKwkgKi8KKwlpZiAodGFzay0+dGtfcnBjX3N0YXR1cyAhPSAwICYmIFJQQ19XQVNfU0VOVCh0YXNrKSkgeworCQlscnAtPnJlcy5scnNfcHJlc2VudCA9IDA7CisJCXJldHVybjsKKwl9CisKIAlzZXJ2ZXIgPSBORlNfU0VSVkVSKGxycC0+YXJncy5pbm9kZSk7CiAJc3dpdGNoICh0YXNrLT50a19zdGF0dXMpIHsKIAljYXNlIC1ORlM0RVJSX09MRF9TVEFURUlEOgotCQlpZiAobmZzNF9sYXlvdXRyZXR1cm5fcmVmcmVzaF9zdGF0ZWlkKCZscnAtPmFyZ3Muc3RhdGVpZCwKKwkJaWYgKG5mczRfbGF5b3V0X3JlZnJlc2hfb2xkX3N0YXRlaWQoJmxycC0+YXJncy5zdGF0ZWlkLAogCQkJCQkmbHJwLT5hcmdzLnJhbmdlLAogCQkJCQlscnAtPmFyZ3MuaW5vZGUpKQogCQkJZ290byBvdXRfcmVzdGFydDsKQEAgLTkzNjIsMTggKzk0MzMsMzIgQEAgX25mczQxX3Byb2Nfc2VjaW5mb19ub19uYW1lKHN0cnVjdCBuZnNfc2VydmVyICpzZXJ2ZXIsIHN0cnVjdCBuZnNfZmggKmZoYW5kbGUsCiAJCS5ycGNfcmVzcCA9ICZyZXMsCiAJfTsKIAlzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQgPSBzZXJ2ZXItPmNsaWVudDsKKwlzdHJ1Y3QgbmZzNF9jYWxsX3N5bmNfZGF0YSBkYXRhID0geworCQkuc2VxX3NlcnZlciA9IHNlcnZlciwKKwkJLnNlcV9hcmdzID0gJmFyZ3Muc2VxX2FyZ3MsCisJCS5zZXFfcmVzID0gJnJlcy5zZXFfcmVzLAorCX07CisJc3RydWN0IHJwY190YXNrX3NldHVwIHRhc2tfc2V0dXAgPSB7CisJCS5ycGNfY2xpZW50ID0gc2VydmVyLT5jbGllbnQsCisJCS5ycGNfbWVzc2FnZSA9ICZtc2csCisJCS5jYWxsYmFja19vcHMgPSBzZXJ2ZXItPm5mc19jbGllbnQtPmNsX212b3BzLT5jYWxsX3N5bmNfb3BzLAorCQkuY2FsbGJhY2tfZGF0YSA9ICZkYXRhLAorCQkuZmxhZ3MgPSBSUENfVEFTS19OT19ST1VORF9ST0JJTiwKKwl9OwogCWNvbnN0IHN0cnVjdCBjcmVkICpjcmVkID0gTlVMTDsKIAlpbnQgc3RhdHVzOwogCiAJaWYgKHVzZV9pbnRlZ3JpdHkpIHsKIAkJY2xudCA9IHNlcnZlci0+bmZzX2NsaWVudC0+Y2xfcnBjY2xpZW50OworCQl0YXNrX3NldHVwLnJwY19jbGllbnQgPSBjbG50OworCiAJCWNyZWQgPSBuZnM0X2dldF9jbGlkX2NyZWQoc2VydmVyLT5uZnNfY2xpZW50KTsKIAkJbXNnLnJwY19jcmVkID0gY3JlZDsKIAl9CiAKIAlkcHJpbnRrKCItLT4gJXNcbiIsIF9fZnVuY19fKTsKLQlzdGF0dXMgPSBuZnM0X2NhbGxfc3luYyhjbG50LCBzZXJ2ZXIsICZtc2csICZhcmdzLnNlcV9hcmdzLAotCQkJCSZyZXMuc2VxX3JlcywgUlBDX1RBU0tfTk9fUk9VTkRfUk9CSU4pOworCW5mczRfaW5pdF9zZXF1ZW5jZSgmYXJncy5zZXFfYXJncywgJnJlcy5zZXFfcmVzLCAwLCAwKTsKKwlzdGF0dXMgPSBuZnM0X2NhbGxfc3luY19jdXN0b20oJnRhc2tfc2V0dXApOwogCWRwcmludGsoIjwtLSAlcyBzdGF0dXM9JWRcbiIsIF9fZnVuY19fLCBzdGF0dXMpOwogCiAJcHV0X2NyZWQoY3JlZCk7CmRpZmYgLS1naXQgYS9mcy9uZnMvbmZzNHN0YXRlLmMgYi9mcy9uZnMvbmZzNHN0YXRlLmMKaW5kZXggY2FkNGUwNjQuLjBjNmQ1M2QgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9uZnM0c3RhdGUuYworKysgYi9mcy9uZnMvbmZzNHN0YXRlLmMKQEAgLTEwMTUsMjIgKzEwMTUsNiBAQCBzdGF0aWMgaW50IG5mczRfY29weV9sb2NrX3N0YXRlaWQobmZzNF9zdGF0ZWlkICpkc3QsCiAJcmV0dXJuIHJldDsKIH0KIAotYm9vbCBuZnM0X3JlZnJlc2hfb3Blbl9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LCBzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUpCi17Ci0JYm9vbCByZXQ7Ci0JaW50IHNlcTsKLQotCWRvIHsKLQkJcmV0ID0gZmFsc2U7Ci0JCXNlcSA9IHJlYWRfc2VxYmVnaW4oJnN0YXRlLT5zZXFsb2NrKTsKLQkJaWYgKG5mczRfc3RhdGVfbWF0Y2hfb3Blbl9zdGF0ZWlkX290aGVyKHN0YXRlLCBkc3QpKSB7Ci0JCQlkc3QtPnNlcWlkID0gc3RhdGUtPm9wZW5fc3RhdGVpZC5zZXFpZDsKLQkJCXJldCA9IHRydWU7Ci0JCX0KLQl9IHdoaWxlIChyZWFkX3NlcXJldHJ5KCZzdGF0ZS0+c2VxbG9jaywgc2VxKSk7Ci0JcmV0dXJuIHJldDsKLX0KLQogYm9vbCBuZnM0X2NvcHlfb3Blbl9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LCBzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUpCiB7CiAJYm9vbCByZXQ7CkBAIC0yMDk1LDggKzIwNzksMTAgQEAgc3RhdGljIGludCBuZnM0X3RyeV9taWdyYXRpb24oc3RydWN0IG5mc19zZXJ2ZXIgKnNlcnZlciwgY29uc3Qgc3RydWN0IGNyZWQgKmNyZWQKIAl9CiAKIAlzdGF0dXMgPSBuZnM0X2JlZ2luX2RyYWluX3Nlc3Npb24oY2xwKTsKLQlpZiAoc3RhdHVzICE9IDApCi0JCXJldHVybiBzdGF0dXM7CisJaWYgKHN0YXR1cyAhPSAwKSB7CisJCXJlc3VsdCA9IHN0YXR1czsKKwkJZ290byBvdXQ7CisJfQogCiAJc3RhdHVzID0gbmZzNF9yZXBsYWNlX3RyYW5zcG9ydChzZXJ2ZXIsIGxvY2F0aW9ucyk7CiAJaWYgKHN0YXR1cyAhPSAwKSB7CmRpZmYgLS1naXQgYS9mcy9uZnMvbmZzNHhkci5jIGIvZnMvbmZzL25mczR4ZHIuYwppbmRleCA0NmE4ZDYzLi5hYjA3ZGIwIDEwMDY0NAotLS0gYS9mcy9uZnMvbmZzNHhkci5jCisrKyBiL2ZzL25mcy9uZnM0eGRyLmMKQEAgLTExNzQsNyArMTE3NCw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZV9hdHRycyhzdHJ1Y3QgeGRyX3N0cmVhbSAqeGRyLCBjb25zdCBzdHJ1Y3QgaWF0dHIgKmlhcCwKIAkJfSBlbHNlCiAJCQkqcCsrID0gY3B1X3RvX2JlMzIoTkZTNF9TRVRfVE9fU0VSVkVSX1RJTUUpOwogCX0KLQlpZiAoYm12YWxbMl0gJiBGQVRUUjRfV09SRDJfU0VDVVJJVFlfTEFCRUwpIHsKKwlpZiAobGFiZWwgJiYgKGJtdmFsWzJdICYgRkFUVFI0X1dPUkQyX1NFQ1VSSVRZX0xBQkVMKSkgewogCQkqcCsrID0gY3B1X3RvX2JlMzIobGFiZWwtPmxmcyk7CiAJCSpwKysgPSBjcHVfdG9fYmUzMihsYWJlbC0+cGkpOwogCQkqcCsrID0gY3B1X3RvX2JlMzIobGFiZWwtPmxlbik7CmRpZmYgLS1naXQgYS9mcy9uZnMvcG5mcy5jIGIvZnMvbmZzL3BuZnMuYwppbmRleCA0NTI1ZDVhLi5iYjgwMDM0IDEwMDY0NAotLS0gYS9mcy9uZnMvcG5mcy5jCisrKyBiL2ZzL25mcy9wbmZzLmMKQEAgLTM1OSw5ICszNTksMTAgQEAgcG5mc19jbGVhcl9sc2VnX3N0YXRlKHN0cnVjdCBwbmZzX2xheW91dF9zZWdtZW50ICpsc2VnLAogfQogCiAvKgotICogVXBkYXRlIHRoZSBzZXFpZCBvZiBhIGxheW91dCBzdGF0ZWlkCisgKiBVcGRhdGUgdGhlIHNlcWlkIG9mIGEgbGF5b3V0IHN0YXRlaWQgYWZ0ZXIgcmVjZWl2aW5nCisgKiBORlM0RVJSX09MRF9TVEFURUlECiAgKi8KLWJvb2wgbmZzNF9sYXlvdXRyZXR1cm5fcmVmcmVzaF9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LAorYm9vbCBuZnM0X2xheW91dF9yZWZyZXNoX29sZF9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LAogCQlzdHJ1Y3QgcG5mc19sYXlvdXRfcmFuZ2UgKmRzdF9yYW5nZSwKIAkJc3RydWN0IGlub2RlICppbm9kZSkKIHsKQEAgLTM3Nyw3ICszNzgsMTUgQEAgYm9vbCBuZnM0X2xheW91dHJldHVybl9yZWZyZXNoX3N0YXRlaWQobmZzNF9zdGF0ZWlkICpkc3QsCiAKIAlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOwogCWxvID0gTkZTX0koaW5vZGUpLT5sYXlvdXQ7Ci0JaWYgKGxvICYmIG5mczRfc3RhdGVpZF9tYXRjaF9vdGhlcihkc3QsICZsby0+cGxoX3N0YXRlaWQpKSB7CisJaWYgKGxvICYmICBwbmZzX2xheW91dF9pc192YWxpZChsbykgJiYKKwkgICAgbmZzNF9zdGF0ZWlkX21hdGNoX290aGVyKGRzdCwgJmxvLT5wbGhfc3RhdGVpZCkpIHsKKwkJLyogSXMgb3VyIGNhbGwgdXNpbmcgdGhlIG1vc3QgcmVjZW50IHNlcWlkPyBJZiBzbywgYnVtcCBpdCAqLworCQlpZiAoIW5mczRfc3RhdGVpZF9pc19uZXdlcigmbG8tPnBsaF9zdGF0ZWlkLCBkc3QpKSB7CisJCQluZnM0X3N0YXRlaWRfc2VxaWRfaW5jKGRzdCk7CisJCQlyZXQgPSB0cnVlOworCQkJZ290byBvdXQ7CisJCX0KKwkJLyogVHJ5IHRvIHVwZGF0ZSB0aGUgc2VxaWQgdG8gdGhlIG1vc3QgcmVjZW50ICovCiAJCWVyciA9IHBuZnNfbWFya19tYXRjaGluZ19sc2Vnc19yZXR1cm4obG8sICZoZWFkLCAmcmFuZ2UsIDApOwogCQlpZiAoZXJyICE9IC1FQlVTWSkgewogCQkJZHN0LT5zZXFpZCA9IGxvLT5wbGhfc3RhdGVpZC5zZXFpZDsKQEAgLTM4NSw2ICszOTQsNyBAQCBib29sIG5mczRfbGF5b3V0cmV0dXJuX3JlZnJlc2hfc3RhdGVpZChuZnM0X3N0YXRlaWQgKmRzdCwKIAkJCXJldCA9IHRydWU7CiAJCX0KIAl9CitvdXQ6CiAJc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOwogCXBuZnNfZnJlZV9sc2VnX2xpc3QoJmhlYWQpOwogCXJldHVybiByZXQ7CkBAIC0xNDQwLDYgKzE0NTAsNTIgQEAgYm9vbCBwbmZzX3JvYyhzdHJ1Y3QgaW5vZGUgKmlubywKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK2ludCBwbmZzX3JvY19kb25lKHN0cnVjdCBycGNfdGFzayAqdGFzaywgc3RydWN0IGlub2RlICppbm9kZSwKKwkJc3RydWN0IG5mczRfbGF5b3V0cmV0dXJuX2FyZ3MgKiphcmdwcCwKKwkJc3RydWN0IG5mczRfbGF5b3V0cmV0dXJuX3JlcyAqKnJlc3BwLAorCQlpbnQgKnJldCkKK3sKKwlzdHJ1Y3QgbmZzNF9sYXlvdXRyZXR1cm5fYXJncyAqYXJnID0gKmFyZ3BwOworCWludCByZXR2YWwgPSAtRUFHQUlOOworCisJaWYgKCFhcmcpCisJCXJldHVybiAwOworCS8qIEhhbmRsZSBMYXlvdXRyZXR1cm4gZXJyb3JzICovCisJc3dpdGNoICgqcmV0KSB7CisJY2FzZSAwOgorCQlyZXR2YWwgPSAwOworCQlicmVhazsKKwljYXNlIC1ORlM0RVJSX05PTUFUQ0hJTkdfTEFZT1VUOgorCQkvKiBXYXMgdGhlcmUgYW4gUlBDIGxldmVsIGVycm9yPyBJZiBub3QsIHJldHJ5ICovCisJCWlmICh0YXNrLT50a19ycGNfc3RhdHVzID09IDApCisJCQlicmVhazsKKwkJLyogSWYgdGhlIGNhbGwgd2FzIG5vdCBzZW50LCBsZXQgY2FsbGVyIGhhbmRsZSBpdCAqLworCQlpZiAoIVJQQ19XQVNfU0VOVCh0YXNrKSkKKwkJCXJldHVybiAwOworCQkvKgorCQkgKiBPdGhlcndpc2UsIGFzc3VtZSB0aGUgY2FsbCBzdWNjZWVkZWQgYW5kCisJCSAqIHRoYXQgd2UgbmVlZCB0byByZWxlYXNlIHRoZSBsYXlvdXQKKwkJICovCisJCSpyZXQgPSAwOworCQkoKnJlc3BwKS0+bHJzX3ByZXNlbnQgPSAwOworCQlyZXR2YWwgPSAwOworCQlicmVhazsKKwljYXNlIC1ORlM0RVJSX0RFTEFZOgorCQkvKiBMZXQgdGhlIGNhbGxlciBoYW5kbGUgdGhlIHJldHJ5ICovCisJCSpyZXQgPSAtTkZTNEVSUl9OT01BVENISU5HX0xBWU9VVDsKKwkJcmV0dXJuIDA7CisJY2FzZSAtTkZTNEVSUl9PTERfU1RBVEVJRDoKKwkJaWYgKCFuZnM0X2xheW91dF9yZWZyZXNoX29sZF9zdGF0ZWlkKCZhcmctPnN0YXRlaWQsCisJCQkJCSZhcmctPnJhbmdlLCBpbm9kZSkpCisJCQlicmVhazsKKwkJKnJldCA9IC1ORlM0RVJSX05PTUFUQ0hJTkdfTEFZT1VUOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisJKmFyZ3BwID0gTlVMTDsKKwkqcmVzcHAgPSBOVUxMOworCXJldHVybiByZXR2YWw7Cit9CisKIHZvaWQgcG5mc19yb2NfcmVsZWFzZShzdHJ1Y3QgbmZzNF9sYXlvdXRyZXR1cm5fYXJncyAqYXJncywKIAkJc3RydWN0IG5mczRfbGF5b3V0cmV0dXJuX3JlcyAqcmVzLAogCQlpbnQgcmV0KQpAQCAtMTQ0OSwxMCArMTUwNSwxNSBAQCB2b2lkIHBuZnNfcm9jX3JlbGVhc2Uoc3RydWN0IG5mczRfbGF5b3V0cmV0dXJuX2FyZ3MgKmFyZ3MsCiAJY29uc3QgbmZzNF9zdGF0ZWlkICpyZXNfc3RhdGVpZCA9IE5VTEw7CiAJc3RydWN0IG5mczRfeGRyX29wYXF1ZV9kYXRhICpsZF9wcml2YXRlID0gYXJncy0+bGRfcHJpdmF0ZTsKIAotCWlmIChyZXQgPT0gMCkgewotCQlhcmdfc3RhdGVpZCA9ICZhcmdzLT5zdGF0ZWlkOworCXN3aXRjaCAocmV0KSB7CisJY2FzZSAtTkZTNEVSUl9OT01BVENISU5HX0xBWU9VVDoKKwkJYnJlYWs7CisJY2FzZSAwOgogCQlpZiAocmVzLT5scnNfcHJlc2VudCkKIAkJCXJlc19zdGF0ZWlkID0gJnJlcy0+c3RhdGVpZDsKKwkJLyogRmFsbHRocm91Z2ggKi8KKwlkZWZhdWx0OgorCQlhcmdfc3RhdGVpZCA9ICZhcmdzLT5zdGF0ZWlkOwogCX0KIAlwbmZzX2xheW91dHJldHVybl9mcmVlX2xzZWdzKGxvLCBhcmdfc3RhdGVpZCwgJmFyZ3MtPnJhbmdlLAogCQkJcmVzX3N0YXRlaWQpOwpkaWZmIC0tZ2l0IGEvZnMvbmZzL3BuZnMuaCBiL2ZzL25mcy9wbmZzLmgKaW5kZXggZjE1NjA5Yy4uZjhhMzgwNiAxMDA2NDQKLS0tIGEvZnMvbmZzL3BuZnMuaAorKysgYi9mcy9uZnMvcG5mcy5oCkBAIC0yNjEsNyArMjYxLDcgQEAgaW50IHBuZnNfZGVzdHJveV9sYXlvdXRzX2J5ZnNpZChzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwLAogCQlib29sIGlzX3JlY2FsbCk7CiBpbnQgcG5mc19kZXN0cm95X2xheW91dHNfYnljbGlkKHN0cnVjdCBuZnNfY2xpZW50ICpjbHAsCiAJCWJvb2wgaXNfcmVjYWxsKTsKLWJvb2wgbmZzNF9sYXlvdXRyZXR1cm5fcmVmcmVzaF9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LAorYm9vbCBuZnM0X2xheW91dF9yZWZyZXNoX29sZF9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LAogCQlzdHJ1Y3QgcG5mc19sYXlvdXRfcmFuZ2UgKmRzdF9yYW5nZSwKIAkJc3RydWN0IGlub2RlICppbm9kZSk7CiB2b2lkIHBuZnNfcHV0X2xheW91dF9oZHIoc3RydWN0IHBuZnNfbGF5b3V0X2hkciAqbG8pOwpAQCAtMjgyLDYgKzI4MiwxMCBAQCBib29sIHBuZnNfcm9jKHN0cnVjdCBpbm9kZSAqaW5vLAogCQlzdHJ1Y3QgbmZzNF9sYXlvdXRyZXR1cm5fYXJncyAqYXJncywKIAkJc3RydWN0IG5mczRfbGF5b3V0cmV0dXJuX3JlcyAqcmVzLAogCQljb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCk7CitpbnQgcG5mc19yb2NfZG9uZShzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2ssIHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCXN0cnVjdCBuZnM0X2xheW91dHJldHVybl9hcmdzICoqYXJncHAsCisJCXN0cnVjdCBuZnM0X2xheW91dHJldHVybl9yZXMgKipyZXNwcCwKKwkJaW50ICpyZXQpOwogdm9pZCBwbmZzX3JvY19yZWxlYXNlKHN0cnVjdCBuZnM0X2xheW91dHJldHVybl9hcmdzICphcmdzLAogCQlzdHJ1Y3QgbmZzNF9sYXlvdXRyZXR1cm5fcmVzICpyZXMsCiAJCWludCByZXQpOwpAQCAtNzAxLDYgKzcwNSwxNSBAQCBwbmZzX3JvYyhzdHJ1Y3QgaW5vZGUgKmlubywKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50CitwbmZzX3JvY19kb25lKHN0cnVjdCBycGNfdGFzayAqdGFzaywgc3RydWN0IGlub2RlICppbm9kZSwKKwkJc3RydWN0IG5mczRfbGF5b3V0cmV0dXJuX2FyZ3MgKiphcmdwcCwKKwkJc3RydWN0IG5mczRfbGF5b3V0cmV0dXJuX3JlcyAqKnJlc3BwLAorCQlpbnQgKnJldCkKK3sKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGlubGluZSB2b2lkCiBwbmZzX3JvY19yZWxlYXNlKHN0cnVjdCBuZnM0X2xheW91dHJldHVybl9hcmdzICphcmdzLAogCQlzdHJ1Y3QgbmZzNF9sYXlvdXRyZXR1cm5fcmVzICpyZXMsCkBAIC03ODUsNyArNzk4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIG5mczRfcG5mc192M19kc19jb25uZWN0X3VubG9hZCh2b2lkKQogewogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgbmZzNF9sYXlvdXRyZXR1cm5fcmVmcmVzaF9zdGF0ZWlkKG5mczRfc3RhdGVpZCAqZHN0LAorc3RhdGljIGlubGluZSBib29sIG5mczRfbGF5b3V0X3JlZnJlc2hfb2xkX3N0YXRlaWQobmZzNF9zdGF0ZWlkICpkc3QsCiAJCXN0cnVjdCBwbmZzX2xheW91dF9yYW5nZSAqZHN0X3JhbmdlLAogCQlzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewpkaWZmIC0tZ2l0IGEvZnMvbmZzL3N1cGVyLmMgYi9mcy9uZnMvc3VwZXIuYwppbmRleCA3MDNmNTk1Li5hODRkZjdkNiAxMDA2NDQKLS0tIGEvZnMvbmZzL3N1cGVyLmMKKysrIGIvZnMvbmZzL3N1cGVyLmMKQEAgLTIzODIsNiArMjM4MiwxNSBAQCB2b2lkIG5mc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBuZnNfbW91bnRfaW5mbyAqbW91bnRfaW5mbykKIAkJc2ItPnNfZmxhZ3MgfD0gU0JfUE9TSVhBQ0w7CiAJCXNiLT5zX3RpbWVfZ3JhbiA9IDE7CiAJCXNiLT5zX2V4cG9ydF9vcCA9ICZuZnNfZXhwb3J0X29wczsKKwl9IGVsc2UKKwkJc2ItPnNfdGltZV9ncmFuID0gMTAwMDsKKworCWlmIChzZXJ2ZXItPm5mc19jbGllbnQtPnJwY19vcHMtPnZlcnNpb24gIT0gNCkgeworCQlzYi0+c190aW1lX21pbiA9IDA7CisJCXNiLT5zX3RpbWVfbWF4ID0gVTMyX01BWDsKKwl9IGVsc2UgeworCQlzYi0+c190aW1lX21pbiA9IFM2NF9NSU47CisJCXNiLT5zX3RpbWVfbWF4ID0gUzY0X01BWDsKIAl9CiAKICAJbmZzX2luaXRpYWxpc2Vfc2Ioc2IpOwpAQCAtMjQwMiw3ICsyNDExLDYgQEAgc3RhdGljIHZvaWQgbmZzX2Nsb25lX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJc2ItPnNfbWF4Ynl0ZXMgPSBvbGRfc2ItPnNfbWF4Ynl0ZXM7CiAJc2ItPnNfeGF0dHIgPSBvbGRfc2ItPnNfeGF0dHI7CiAJc2ItPnNfb3AgPSBvbGRfc2ItPnNfb3A7Ci0Jc2ItPnNfdGltZV9ncmFuID0gMTsKIAlzYi0+c19leHBvcnRfb3AgPSBvbGRfc2ItPnNfZXhwb3J0X29wOwogCiAJaWYgKHNlcnZlci0+bmZzX2NsaWVudC0+cnBjX29wcy0+dmVyc2lvbiAhPSAyKSB7CkBAIC0yNDEwLDYgKzI0MTgsMTYgQEAgc3RhdGljIHZvaWQgbmZzX2Nsb25lX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJCSAqIHNvIG91cnNlbHZlcyB3aGVuIG5lY2Vzc2FyeS4KIAkJICovCiAJCXNiLT5zX2ZsYWdzIHw9IFNCX1BPU0lYQUNMOworCQlzYi0+c190aW1lX2dyYW4gPSAxOworCX0gZWxzZQorCQlzYi0+c190aW1lX2dyYW4gPSAxMDAwOworCisJaWYgKHNlcnZlci0+bmZzX2NsaWVudC0+cnBjX29wcy0+dmVyc2lvbiAhPSA0KSB7CisJCXNiLT5zX3RpbWVfbWluID0gMDsKKwkJc2ItPnNfdGltZV9tYXggPSBVMzJfTUFYOworCX0gZWxzZSB7CisJCXNiLT5zX3RpbWVfbWluID0gUzY0X01JTjsKKwkJc2ItPnNfdGltZV9tYXggPSBTNjRfTUFYOwogCX0KIAogIAluZnNfaW5pdGlhbGlzZV9zYihzYik7CkBAIC0yNjI3LDYgKzI2NDUsMTMgQEAgaW50IG5mc19jbG9uZV9zYl9zZWN1cml0eShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHN0cnVjdCBkZW50cnkgKm1udHJvb3QsCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChuZnNfY2xvbmVfc2Jfc2VjdXJpdHkpOwogCitzdGF0aWMgdm9pZCBuZnNfc2V0X3JlYWRhaGVhZChzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRpLAorCQkJICAgICAgdW5zaWduZWQgbG9uZyBpb21heF9wYWdlcykKK3sKKwliZGktPnJhX3BhZ2VzID0gVk1fUkVBREFIRUFEX1BBR0VTOworCWJkaS0+aW9fcGFnZXMgPSBpb21heF9wYWdlczsKK30KKwogc3RydWN0IGRlbnRyeSAqbmZzX2ZzX21vdW50X2NvbW1vbihzdHJ1Y3QgbmZzX3NlcnZlciAqc2VydmVyLAogCQkJCSAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsCiAJCQkJICAgc3RydWN0IG5mc19tb3VudF9pbmZvICptb3VudF9pbmZvLApAQCAtMjY2OSw3ICsyNjk0LDcgQEAgc3RydWN0IGRlbnRyeSAqbmZzX2ZzX21vdW50X2NvbW1vbihzdHJ1Y3QgbmZzX3NlcnZlciAqc2VydmVyLAogCQkJbW50cm9vdCA9IEVSUl9QVFIoZXJyb3IpOwogCQkJZ290byBlcnJvcl9zcGxhdF9zdXBlcjsKIAkJfQotCQlzLT5zX2JkaS0+cmFfcGFnZXMgPSBzZXJ2ZXItPnJwYWdlcyAqIE5GU19NQVhfUkVBREFIRUFEOworCQluZnNfc2V0X3JlYWRhaGVhZChzLT5zX2JkaSwgc2VydmVyLT5ycGFnZXMpOwogCQlzZXJ2ZXItPnN1cGVyID0gczsKIAl9CiAKZGlmZiAtLWdpdCBhL2ZzL25mc2QvS2NvbmZpZyBiL2ZzL25mc2QvS2NvbmZpZwppbmRleCBkMjVmNmJiLi4xMGNlZmIwIDEwMDY0NAotLS0gYS9mcy9uZnNkL0tjb25maWcKKysrIGIvZnMvbmZzZC9LY29uZmlnCkBAIC0zLDYgKzMsNyBAQAogCXRyaXN0YXRlICJORlMgc2VydmVyIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBJTkVUCiAJZGVwZW5kcyBvbiBGSUxFX0xPQ0tJTkcKKwlkZXBlbmRzIG9uIEZTTk9USUZZCiAJc2VsZWN0IExPQ0tECiAJc2VsZWN0IFNVTlJQQwogCXNlbGVjdCBFWFBPUlRGUwpAQCAtMTQ3LDcgKzE0OCw3IEBACiAKIGNvbmZpZyBORlNEX0ZBVUxUX0lOSkVDVElPTgogCWJvb2wgIk5GUyBzZXJ2ZXIgbWFudWFsIGZhdWx0IGluamVjdGlvbiIKLQlkZXBlbmRzIG9uIE5GU0RfVjQgJiYgREVCVUdfS0VSTkVMICYmIERFQlVHX0ZTCisJZGVwZW5kcyBvbiBORlNEX1Y0ICYmIERFQlVHX0tFUk5FTCAmJiBERUJVR19GUyAmJiBCUk9LRU4KIAloZWxwCiAJICBUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIG1hbnVhbGx5IGluamVjdGluZyBmYXVsdHMKIAkgIGludG8gdGhlIE5GUyBzZXJ2ZXIuICBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgZm9yCmRpZmYgLS1naXQgYS9mcy9uZnNkL01ha2VmaWxlIGIvZnMvbmZzZC9NYWtlZmlsZQppbmRleCAyYmZiNThlLi42YTQwYjFhIDEwMDY0NAotLS0gYS9mcy9uZnNkL01ha2VmaWxlCisrKyBiL2ZzL25mc2QvTWFrZWZpbGUKQEAgLTExLDcgKzExLDggQEAKIG5mc2QteQkJCSs9IHRyYWNlLm8KIAogbmZzZC15IAkJCSs9IG5mc3N2Yy5vIG5mc2N0bC5vIG5mc3Byb2MubyBuZnNmaC5vIHZmcy5vIFwKLQkJCSAgIGV4cG9ydC5vIGF1dGgubyBsb2NrZC5vIG5mc2NhY2hlLm8gbmZzeGRyLm8gc3RhdHMubworCQkJICAgZXhwb3J0Lm8gYXV0aC5vIGxvY2tkLm8gbmZzY2FjaGUubyBuZnN4ZHIubyBcCisJCQkgICBzdGF0cy5vIGZpbGVjYWNoZS5vCiBuZnNkLSQoQ09ORklHX05GU0RfRkFVTFRfSU5KRUNUSU9OKSArPSBmYXVsdF9pbmplY3QubwogbmZzZC0kKENPTkZJR19ORlNEX1YyX0FDTCkgKz0gbmZzMmFjbC5vCiBuZnNkLSQoQ09ORklHX05GU0RfVjMpCSs9IG5mczNwcm9jLm8gbmZzM3hkci5vCmRpZmYgLS1naXQgYS9mcy9uZnNkL2FjbC5oIGIvZnMvbmZzZC9hY2wuaAppbmRleCA0Y2Q3YzY5Li5iYTE0ZDJmIDEwMDY0NAotLS0gYS9mcy9uZnNkL2FjbC5oCisrKyBiL2ZzL25mc2QvYWNsLmgKQEAgLTM5LDE0ICszOSw2IEBAIHN0cnVjdCBuZnM0X2FjbDsKIHN0cnVjdCBzdmNfZmg7CiBzdHJ1Y3Qgc3ZjX3Jxc3Q7CiAKLS8qCi0gKiBNYXhpbXVtIEFDTCB3ZSdsbCBhY2NlcHQgZnJvbSBhIGNsaWVudDsgY2hvc2VuIChzb21ld2hhdAotICogYXJiaXRyYXJpbHkpIHNvIHRoYXQga21hbGxvYydpbmcgdGhlIEFDTCBzaG91bGRuJ3QgcmVxdWlyZSBhCi0gKiBoaWdoLW9yZGVyIGFsbG9jYXRpb24uICBUaGlzIGFsbG93cyAyMDQgQUNFcyBvbiB4ODZfNjQ6Ci0gKi8KLSNkZWZpbmUgTkZTNF9BQ0xfTUFYICgoUEFHRV9TSVpFIC0gc2l6ZW9mKHN0cnVjdCBuZnM0X2FjbCkpIFwKLQkJCS8gc2l6ZW9mKHN0cnVjdCBuZnM0X2FjZSkpCi0KIGludCBuZnM0X2FjbF9ieXRlcyhpbnQgZW50cmllcyk7CiBpbnQgbmZzNF9hY2xfZ2V0X3dob3R5cGUoY2hhciAqLCB1MzIpOwogX19iZTMyIG5mczRfYWNsX3dyaXRlX3dobyhzdHJ1Y3QgeGRyX3N0cmVhbSAqeGRyLCBpbnQgd2hvKTsKZGlmZiAtLWdpdCBhL2ZzL25mc2QvYmxvY2tsYXlvdXQuYyBiL2ZzL25mc2QvYmxvY2tsYXlvdXQuYwppbmRleCA2NmQ0YzU1Li45YmJhYTY3IDEwMDY0NAotLS0gYS9mcy9uZnNkL2Jsb2NrbGF5b3V0LmMKKysrIGIvZnMvbmZzZC9ibG9ja2xheW91dC5jCkBAIC0xNSw2ICsxNSw3IEBACiAKICNpbmNsdWRlICJibG9ja2xheW91dHhkci5oIgogI2luY2x1ZGUgInBuZnMuaCIKKyNpbmNsdWRlICJmaWxlY2FjaGUuaCIKIAogI2RlZmluZSBORlNEREJHX0ZBQ0lMSVRZCU5GU0REQkdfUE5GUwogCkBAIC00MDQsNyArNDA1LDcgQEAgc3RhdGljIHZvaWQKIG5mc2Q0X3Njc2lfZmVuY2VfY2xpZW50KHN0cnVjdCBuZnM0X2xheW91dF9zdGF0ZWlkICpscykKIHsKIAlzdHJ1Y3QgbmZzNF9jbGllbnQgKmNscCA9IGxzLT5sc19zdGlkLnNjX2NsaWVudDsKLQlzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2ID0gbHMtPmxzX2ZpbGUtPmZfcGF0aC5tbnQtPm1udF9zYi0+c19iZGV2OworCXN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYgPSBscy0+bHNfZmlsZS0+bmZfZmlsZS0+Zl9wYXRoLm1udC0+bW50X3NiLT5zX2JkZXY7CiAKIAliZGV2LT5iZF9kaXNrLT5mb3BzLT5wcl9vcHMtPnByX3ByZWVtcHQoYmRldiwgTkZTRF9NRFNfUFJfS0VZLAogCQkJbmZzZDRfc2NzaV9wcl9rZXkoY2xwKSwgMCwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9mcy9uZnNkL2V4cG9ydC5jIGIvZnMvbmZzZC9leHBvcnQuYwppbmRleCBiYWEwMTk1Li4xNTQyMmM5IDEwMDY0NAotLS0gYS9mcy9uZnNkL2V4cG9ydC5jCisrKyBiL2ZzL25mc2QvZXhwb3J0LmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJuZnNmaC5oIgogI2luY2x1ZGUgIm5ldG5zLmgiCiAjaW5jbHVkZSAicG5mcy5oIgorI2luY2x1ZGUgImZpbGVjYWNoZS5oIgogCiAjZGVmaW5lIE5GU0REQkdfRkFDSUxJVFkJTkZTRERCR19FWFBPUlQKIApAQCAtMjMyLDYgKzIzMywxNyBAQCBzdGF0aWMgc3RydWN0IGNhY2hlX2hlYWQgKmV4cGtleV9hbGxvYyh2b2lkKQogCQlyZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIHZvaWQgZXhwa2V5X2ZsdXNoKHZvaWQpCit7CisJLyoKKwkgKiBUYWtlIHRoZSBuZnNkX211dGV4IGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIGZpbGUgY2FjaGUgaXMgbm90CisJICogZGVzdHJveWVkIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZmx1c2hpbmcuCisJICovCisJbXV0ZXhfbG9jaygmbmZzZF9tdXRleCk7CisJbmZzZF9maWxlX2NhY2hlX3B1cmdlKGN1cnJlbnQtPm5zcHJveHktPm5ldF9ucyk7CisJbXV0ZXhfdW5sb2NrKCZuZnNkX211dGV4KTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBjYWNoZV9kZXRhaWwgc3ZjX2V4cGtleV9jYWNoZV90ZW1wbGF0ZSA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmhhc2hfc2l6ZQk9IEVYUEtFWV9IQVNITUFYLApAQCAtMjQ0LDYgKzI1Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FjaGVfZGV0YWlsIHN2Y19leHBrZXlfY2FjaGVfdGVtcGxhdGUgPSB7CiAJLmluaXQJCT0gZXhwa2V5X2luaXQsCiAJLnVwZGF0ZSAgICAgICAJPSBleHBrZXlfdXBkYXRlLAogCS5hbGxvYwkJPSBleHBrZXlfYWxsb2MsCisJLmZsdXNoCQk9IGV4cGtleV9mbHVzaCwKIH07CiAKIHN0YXRpYyBpbnQKZGlmZiAtLWdpdCBhL2ZzL25mc2QvZmlsZWNhY2hlLmMgYi9mcy9uZnNkL2ZpbGVjYWNoZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmNTVlOWIKLS0tIC9kZXYvbnVsbAorKysgYi9mcy9uZnNkL2ZpbGVjYWNoZS5jCkBAIC0wLDAgKzEsOTM0IEBACisvKgorICogT3BlbiBmaWxlIGNhY2hlLgorICoKKyAqIChjKSAyMDE1IC0gSmVmZiBMYXl0b24gPGplZmYubGF5dG9uQHByaW1hcnlkYXRhLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaGFzaC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0X2xydS5oPgorI2luY2x1ZGUgPGxpbnV4L2Zzbm90aWZ5X2JhY2tlbmQuaD4KKyNpbmNsdWRlIDxsaW51eC9mc25vdGlmeS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisKKyNpbmNsdWRlICJ2ZnMuaCIKKyNpbmNsdWRlICJuZnNkLmgiCisjaW5jbHVkZSAibmZzZmguaCIKKyNpbmNsdWRlICJuZXRucy5oIgorI2luY2x1ZGUgImZpbGVjYWNoZS5oIgorI2luY2x1ZGUgInRyYWNlLmgiCisKKyNkZWZpbmUgTkZTRERCR19GQUNJTElUWQlORlNEREJHX0ZICisKKy8qIEZJWE1FOiBkeW5hbWljYWxseSBzaXplIHRoaXMgZm9yIHRoZSBtYWNoaW5lIHNvbWVob3c/ICovCisjZGVmaW5lIE5GU0RfRklMRV9IQVNIX0JJVFMgICAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgTkZTRF9GSUxFX0hBU0hfU0laRSAgICAgICAgICAgICAgICAgICgxIDw8IE5GU0RfRklMRV9IQVNIX0JJVFMpCisjZGVmaW5lIE5GU0RfTEFVTkRSRVRURV9ERUxBWQkJICAgICAoMiAqIEhaKQorCisjZGVmaW5lIE5GU0RfRklMRV9MUlVfUkVTQ0FOCQkgICAgICgwKQorI2RlZmluZSBORlNEX0ZJTEVfU0hVVERPV04JCSAgICAgKDEpCisjZGVmaW5lIE5GU0RfRklMRV9MUlVfVEhSRVNIT0xECQkgICAgICg0MDk2VUwpCisjZGVmaW5lIE5GU0RfRklMRV9MUlVfTElNSVQJCSAgICAgKE5GU0RfRklMRV9MUlVfVEhSRVNIT0xEIDw8IDIpCisKKy8qIFdlIG9ubHkgY2FyZSBhYm91dCBORlNEX01BWV9SRUFEL1dSSVRFIGZvciB0aGlzIGNhY2hlICovCisjZGVmaW5lIE5GU0RfRklMRV9NQVlfTUFTSwkoTkZTRF9NQVlfUkVBRHxORlNEX01BWV9XUklURSkKKworc3RydWN0IG5mc2RfZmNhY2hlX2J1Y2tldCB7CisJc3RydWN0IGhsaXN0X2hlYWQJbmZiX2hlYWQ7CisJc3BpbmxvY2tfdAkJbmZiX2xvY2s7CisJdW5zaWduZWQgaW50CQluZmJfY291bnQ7CisJdW5zaWduZWQgaW50CQluZmJfbWF4Y291bnQ7Cit9OworCitzdGF0aWMgREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZywgbmZzZF9maWxlX2NhY2hlX2hpdHMpOworCitzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUJCSpuZnNkX2ZpbGVfc2xhYjsKK3N0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZQkJKm5mc2RfZmlsZV9tYXJrX3NsYWI7CitzdGF0aWMgc3RydWN0IG5mc2RfZmNhY2hlX2J1Y2tldAkqbmZzZF9maWxlX2hhc2h0Ymw7CitzdGF0aWMgc3RydWN0IGxpc3RfbHJ1CQkJbmZzZF9maWxlX2xydTsKK3N0YXRpYyBsb25nCQkJCW5mc2RfZmlsZV9scnVfZmxhZ3M7CitzdGF0aWMgc3RydWN0IGZzbm90aWZ5X2dyb3VwCQkqbmZzZF9maWxlX2Zzbm90aWZ5X2dyb3VwOworc3RhdGljIGF0b21pY19sb25nX3QJCQluZnNkX2ZpbGVjYWNoZV9jb3VudDsKK3N0YXRpYyBzdHJ1Y3QgZGVsYXllZF93b3JrCQluZnNkX2ZpbGVjYWNoZV9sYXVuZHJldHRlOworCitlbnVtIG5mc2RfZmlsZV9sYXVuZHJldHRlX2N0bCB7CisJTkZTRF9GSUxFX0xBVU5EUkVUVEVfTk9GTFVTSCA9IDAsCisJTkZTRF9GSUxFX0xBVU5EUkVUVEVfTUFZX0ZMVVNICit9OworCitzdGF0aWMgdm9pZAorbmZzZF9maWxlX3NjaGVkdWxlX2xhdW5kcmV0dGUoZW51bSBuZnNkX2ZpbGVfbGF1bmRyZXR0ZV9jdGwgY3RsKQoreworCWxvbmcgY291bnQgPSBhdG9taWNfbG9uZ19yZWFkKCZuZnNkX2ZpbGVjYWNoZV9jb3VudCk7CisKKwlpZiAoY291bnQgPT0gMCB8fCB0ZXN0X2JpdChORlNEX0ZJTEVfU0hVVERPV04sICZuZnNkX2ZpbGVfbHJ1X2ZsYWdzKSkKKwkJcmV0dXJuOworCisJLyogQmUgbW9yZSBhZ2dyZXNzaXZlIGFib3V0IHNjYW5uaW5nIGlmIG92ZXIgdGhlIHRocmVzaG9sZCAqLworCWlmIChjb3VudCA+IE5GU0RfRklMRV9MUlVfVEhSRVNIT0xEKQorCQltb2RfZGVsYXllZF93b3JrKHN5c3RlbV93cSwgJm5mc2RfZmlsZWNhY2hlX2xhdW5kcmV0dGUsIDApOworCWVsc2UKKwkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZuZnNkX2ZpbGVjYWNoZV9sYXVuZHJldHRlLCBORlNEX0xBVU5EUkVUVEVfREVMQVkpOworCisJaWYgKGN0bCA9PSBORlNEX0ZJTEVfTEFVTkRSRVRURV9OT0ZMVVNIKQorCQlyZXR1cm47CisKKwkvKiAuLi5hbmQgZG9uJ3QgZGVsYXkgZmx1c2hpbmcgaWYgd2UncmUgb3V0IG9mIGNvbnRyb2wgKi8KKwlpZiAoY291bnQgPj0gTkZTRF9GSUxFX0xSVV9MSU1JVCkKKwkJZmx1c2hfZGVsYXllZF93b3JrKCZuZnNkX2ZpbGVjYWNoZV9sYXVuZHJldHRlKTsKK30KKworc3RhdGljIHZvaWQKK25mc2RfZmlsZV9zbGFiX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpyY3UpCit7CisJc3RydWN0IG5mc2RfZmlsZSAqbmYgPSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3QgbmZzZF9maWxlLCBuZl9yY3UpOworCisJcHV0X2NyZWQobmYtPm5mX2NyZWQpOworCWttZW1fY2FjaGVfZnJlZShuZnNkX2ZpbGVfc2xhYiwgbmYpOworfQorCitzdGF0aWMgdm9pZAorbmZzZF9maWxlX21hcmtfZnJlZShzdHJ1Y3QgZnNub3RpZnlfbWFyayAqbWFyaykKK3sKKwlzdHJ1Y3QgbmZzZF9maWxlX21hcmsgKm5mbSA9IGNvbnRhaW5lcl9vZihtYXJrLCBzdHJ1Y3QgbmZzZF9maWxlX21hcmssCisJCQkJCQkgIG5mbV9tYXJrKTsKKworCWttZW1fY2FjaGVfZnJlZShuZnNkX2ZpbGVfbWFya19zbGFiLCBuZm0pOworfQorCitzdGF0aWMgc3RydWN0IG5mc2RfZmlsZV9tYXJrICoKK25mc2RfZmlsZV9tYXJrX2dldChzdHJ1Y3QgbmZzZF9maWxlX21hcmsgKm5mbSkKK3sKKwlpZiAoIWF0b21pY19pbmNfbm90X3plcm8oJm5mbS0+bmZtX3JlZikpCisJCXJldHVybiBOVUxMOworCXJldHVybiBuZm07Cit9CisKK3N0YXRpYyB2b2lkCituZnNkX2ZpbGVfbWFya19wdXQoc3RydWN0IG5mc2RfZmlsZV9tYXJrICpuZm0pCit7CisJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJm5mbS0+bmZtX3JlZikpIHsKKworCQlmc25vdGlmeV9kZXN0cm95X21hcmsoJm5mbS0+bmZtX21hcmssIG5mc2RfZmlsZV9mc25vdGlmeV9ncm91cCk7CisJCWZzbm90aWZ5X3B1dF9tYXJrKCZuZm0tPm5mbV9tYXJrKTsKKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbmZzZF9maWxlX21hcmsgKgorbmZzZF9maWxlX21hcmtfZmluZF9vcl9jcmVhdGUoc3RydWN0IG5mc2RfZmlsZSAqbmYpCit7CisJaW50CQkJZXJyOworCXN0cnVjdCBmc25vdGlmeV9tYXJrCSptYXJrOworCXN0cnVjdCBuZnNkX2ZpbGVfbWFyawkqbmZtID0gTlVMTCwgKm5ldzsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbmYtPm5mX2lub2RlOworCisJZG8geworCQltdXRleF9sb2NrKCZuZnNkX2ZpbGVfZnNub3RpZnlfZ3JvdXAtPm1hcmtfbXV0ZXgpOworCQltYXJrID0gZnNub3RpZnlfZmluZF9tYXJrKCZpbm9kZS0+aV9mc25vdGlmeV9tYXJrcywKKwkJCQluZnNkX2ZpbGVfZnNub3RpZnlfZ3JvdXApOworCQlpZiAobWFyaykgeworCQkJbmZtID0gbmZzZF9maWxlX21hcmtfZ2V0KGNvbnRhaW5lcl9vZihtYXJrLAorCQkJCQkJIHN0cnVjdCBuZnNkX2ZpbGVfbWFyaywKKwkJCQkJCSBuZm1fbWFyaykpOworCQkJbXV0ZXhfdW5sb2NrKCZuZnNkX2ZpbGVfZnNub3RpZnlfZ3JvdXAtPm1hcmtfbXV0ZXgpOworCQkJZnNub3RpZnlfcHV0X21hcmsobWFyayk7CisJCQlpZiAobGlrZWx5KG5mbSkpCisJCQkJYnJlYWs7CisJCX0gZWxzZQorCQkJbXV0ZXhfdW5sb2NrKCZuZnNkX2ZpbGVfZnNub3RpZnlfZ3JvdXAtPm1hcmtfbXV0ZXgpOworCisJCS8qIGFsbG9jYXRlIGEgbmV3IG5mbSAqLworCQluZXcgPSBrbWVtX2NhY2hlX2FsbG9jKG5mc2RfZmlsZV9tYXJrX3NsYWIsIEdGUF9LRVJORUwpOworCQlpZiAoIW5ldykKKwkJCXJldHVybiBOVUxMOworCQlmc25vdGlmeV9pbml0X21hcmsoJm5ldy0+bmZtX21hcmssIG5mc2RfZmlsZV9mc25vdGlmeV9ncm91cCk7CisJCW5ldy0+bmZtX21hcmsubWFzayA9IEZTX0FUVFJJQnxGU19ERUxFVEVfU0VMRjsKKwkJYXRvbWljX3NldCgmbmV3LT5uZm1fcmVmLCAxKTsKKworCQllcnIgPSBmc25vdGlmeV9hZGRfaW5vZGVfbWFyaygmbmV3LT5uZm1fbWFyaywgaW5vZGUsIDApOworCisJCS8qCisJCSAqIElmIHRoZSBhZGQgd2FzIHN1Y2Nlc3NmdWwsIHRoZW4gcmV0dXJuIHRoZSBvYmplY3QuCisJCSAqIE90aGVyd2lzZSwgd2UgbmVlZCB0byBwdXQgdGhlIHJlZmVyZW5jZSB3ZSBob2xkIG9uIHRoZQorCQkgKiBuZm1fbWFyay4gVGhlIGZzbm90aWZ5IGNvZGUgd2lsbCB0YWtlIGEgcmVmZXJlbmNlIGFuZCBwdXQKKwkJICogaXQgb24gZmFpbHVyZSwgc28gd2UgY2FuJ3QganVzdCBmcmVlIGl0IGRpcmVjdGx5LiBJdCdzIGFsc28KKwkJICogbm90IHNhZmUgdG8gY2FsbCBmc25vdGlmeV9kZXN0cm95X21hcmsgb24gaXQgYXMgdGhlCisJCSAqIG1hcmstPmdyb3VwIHdpbGwgYmUgTlVMTC4gVGh1cywgd2UgY2FuJ3QgbGV0IHRoZSBuZm1fcmVmCisJCSAqIGNvdW50ZXIgZHJpdmUgdGhlIGRlc3RydWN0aW9uIGF0IHRoaXMgcG9pbnQuCisJCSAqLworCQlpZiAobGlrZWx5KCFlcnIpKQorCQkJbmZtID0gbmV3OworCQllbHNlCisJCQlmc25vdGlmeV9wdXRfbWFyaygmbmV3LT5uZm1fbWFyayk7CisJfSB3aGlsZSAodW5saWtlbHkoZXJyID09IC1FRVhJU1QpKTsKKworCXJldHVybiBuZm07Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbmZzZF9maWxlICoKK25mc2RfZmlsZV9hbGxvYyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBpbnQgbWF5LCB1bnNpZ25lZCBpbnQgaGFzaHZhbCwKKwkJc3RydWN0IG5ldCAqbmV0KQoreworCXN0cnVjdCBuZnNkX2ZpbGUgKm5mOworCisJbmYgPSBrbWVtX2NhY2hlX2FsbG9jKG5mc2RfZmlsZV9zbGFiLCBHRlBfS0VSTkVMKTsKKwlpZiAobmYpIHsKKwkJSU5JVF9ITElTVF9OT0RFKCZuZi0+bmZfbm9kZSk7CisJCUlOSVRfTElTVF9IRUFEKCZuZi0+bmZfbHJ1KTsKKwkJbmYtPm5mX2ZpbGUgPSBOVUxMOworCQluZi0+bmZfY3JlZCA9IGdldF9jdXJyZW50X2NyZWQoKTsKKwkJbmYtPm5mX25ldCA9IG5ldDsKKwkJbmYtPm5mX2ZsYWdzID0gMDsKKwkJbmYtPm5mX2lub2RlID0gaW5vZGU7CisJCW5mLT5uZl9oYXNodmFsID0gaGFzaHZhbDsKKwkJYXRvbWljX3NldCgmbmYtPm5mX3JlZiwgMSk7CisJCW5mLT5uZl9tYXkgPSBtYXkgJiBORlNEX0ZJTEVfTUFZX01BU0s7CisJCWlmIChtYXkgJiBORlNEX01BWV9OT1RfQlJFQUtfTEVBU0UpIHsKKwkJCWlmIChtYXkgJiBORlNEX01BWV9XUklURSkKKwkJCQlfX3NldF9iaXQoTkZTRF9GSUxFX0JSRUFLX1dSSVRFLCAmbmYtPm5mX2ZsYWdzKTsKKwkJCWlmIChtYXkgJiBORlNEX01BWV9SRUFEKQorCQkJCV9fc2V0X2JpdChORlNEX0ZJTEVfQlJFQUtfUkVBRCwgJm5mLT5uZl9mbGFncyk7CisJCX0KKwkJbmYtPm5mX21hcmsgPSBOVUxMOworCQl0cmFjZV9uZnNkX2ZpbGVfYWxsb2MobmYpOworCX0KKwlyZXR1cm4gbmY7Cit9CisKK3N0YXRpYyBib29sCituZnNkX2ZpbGVfZnJlZShzdHJ1Y3QgbmZzZF9maWxlICpuZikKK3sKKwlib29sIGZsdXNoID0gZmFsc2U7CisKKwl0cmFjZV9uZnNkX2ZpbGVfcHV0X2ZpbmFsKG5mKTsKKwlpZiAobmYtPm5mX21hcmspCisJCW5mc2RfZmlsZV9tYXJrX3B1dChuZi0+bmZfbWFyayk7CisJaWYgKG5mLT5uZl9maWxlKSB7CisJCWdldF9maWxlKG5mLT5uZl9maWxlKTsKKwkJZmlscF9jbG9zZShuZi0+bmZfZmlsZSwgTlVMTCk7CisJCWZwdXQobmYtPm5mX2ZpbGUpOworCQlmbHVzaCA9IHRydWU7CisJfQorCWNhbGxfcmN1KCZuZi0+bmZfcmN1LCBuZnNkX2ZpbGVfc2xhYl9mcmVlKTsKKwlyZXR1cm4gZmx1c2g7Cit9CisKK3N0YXRpYyBib29sCituZnNkX2ZpbGVfY2hlY2tfd3JpdGViYWNrKHN0cnVjdCBuZnNkX2ZpbGUgKm5mKQoreworCXN0cnVjdCBmaWxlICpmaWxlID0gbmYtPm5mX2ZpbGU7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7CisKKwlpZiAoIWZpbGUgfHwgIShmaWxlLT5mX21vZGUgJiBGTU9ERV9XUklURSkpCisJCXJldHVybiBmYWxzZTsKKwltYXBwaW5nID0gZmlsZS0+Zl9tYXBwaW5nOworCXJldHVybiBtYXBwaW5nX3RhZ2dlZChtYXBwaW5nLCBQQUdFQ0FDSEVfVEFHX0RJUlRZKSB8fAorCQltYXBwaW5nX3RhZ2dlZChtYXBwaW5nLCBQQUdFQ0FDSEVfVEFHX1dSSVRFQkFDSyk7Cit9CisKK3N0YXRpYyBpbnQKK25mc2RfZmlsZV9jaGVja193cml0ZV9lcnJvcihzdHJ1Y3QgbmZzZF9maWxlICpuZikKK3sKKwlzdHJ1Y3QgZmlsZSAqZmlsZSA9IG5mLT5uZl9maWxlOworCisJaWYgKCFmaWxlIHx8ICEoZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gZmlsZW1hcF9jaGVja193Yl9lcnIoZmlsZS0+Zl9tYXBwaW5nLCBSRUFEX09OQ0UoZmlsZS0+Zl93Yl9lcnIpKTsKK30KKworc3RhdGljIGJvb2wKK25mc2RfZmlsZV9pbl91c2Uoc3RydWN0IG5mc2RfZmlsZSAqbmYpCit7CisJcmV0dXJuIG5mc2RfZmlsZV9jaGVja193cml0ZWJhY2sobmYpIHx8CisJCQluZnNkX2ZpbGVfY2hlY2tfd3JpdGVfZXJyb3IobmYpOworfQorCitzdGF0aWMgdm9pZAorbmZzZF9maWxlX2RvX3VuaGFzaChzdHJ1Y3QgbmZzZF9maWxlICpuZikKK3sKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZuZnNkX2ZpbGVfaGFzaHRibFtuZi0+bmZfaGFzaHZhbF0ubmZiX2xvY2spOworCisJdHJhY2VfbmZzZF9maWxlX3VuaGFzaChuZik7CisKKwlpZiAobmZzZF9maWxlX2NoZWNrX3dyaXRlX2Vycm9yKG5mKSkKKwkJbmZzZF9yZXNldF9ib290X3ZlcmlmaWVyKG5ldF9nZW5lcmljKG5mLT5uZl9uZXQsIG5mc2RfbmV0X2lkKSk7CisJLS1uZnNkX2ZpbGVfaGFzaHRibFtuZi0+bmZfaGFzaHZhbF0ubmZiX2NvdW50OworCWhsaXN0X2RlbF9yY3UoJm5mLT5uZl9ub2RlKTsKKwlpZiAoIWxpc3RfZW1wdHkoJm5mLT5uZl9scnUpKQorCQlsaXN0X2xydV9kZWwoJm5mc2RfZmlsZV9scnUsICZuZi0+bmZfbHJ1KTsKKwlhdG9taWNfbG9uZ19kZWMoJm5mc2RfZmlsZWNhY2hlX2NvdW50KTsKK30KKworc3RhdGljIGJvb2wKK25mc2RfZmlsZV91bmhhc2goc3RydWN0IG5mc2RfZmlsZSAqbmYpCit7CisJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChORlNEX0ZJTEVfSEFTSEVELCAmbmYtPm5mX2ZsYWdzKSkgeworCQluZnNkX2ZpbGVfZG9fdW5oYXNoKG5mKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCXJldHVybiBmYWxzZTsKK30KKworLyoKKyAqIFJldHVybiB0cnVlIGlmIHRoZSBmaWxlIHdhcyB1bmhhc2hlZC4KKyAqLworc3RhdGljIGJvb2wKK25mc2RfZmlsZV91bmhhc2hfYW5kX3JlbGVhc2VfbG9ja2VkKHN0cnVjdCBuZnNkX2ZpbGUgKm5mLCBzdHJ1Y3QgbGlzdF9oZWFkICpkaXNwb3NlKQoreworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJm5mc2RfZmlsZV9oYXNodGJsW25mLT5uZl9oYXNodmFsXS5uZmJfbG9jayk7CisKKwl0cmFjZV9uZnNkX2ZpbGVfdW5oYXNoX2FuZF9yZWxlYXNlX2xvY2tlZChuZik7CisJaWYgKCFuZnNkX2ZpbGVfdW5oYXNoKG5mKSkKKwkJcmV0dXJuIGZhbHNlOworCS8qIGtlZXAgZmluYWwgcmVmZXJlbmNlIGZvciBuZnNkX2ZpbGVfbHJ1X2Rpc3Bvc2UgKi8KKwlpZiAoYXRvbWljX2FkZF91bmxlc3MoJm5mLT5uZl9yZWYsIC0xLCAxKSkKKwkJcmV0dXJuIHRydWU7CisKKwlsaXN0X2FkZCgmbmYtPm5mX2xydSwgZGlzcG9zZSk7CisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbnQKK25mc2RfZmlsZV9wdXRfbm9yZWYoc3RydWN0IG5mc2RfZmlsZSAqbmYpCit7CisJaW50IGNvdW50OworCXRyYWNlX25mc2RfZmlsZV9wdXQobmYpOworCisJY291bnQgPSBhdG9taWNfZGVjX3JldHVybigmbmYtPm5mX3JlZik7CisJaWYgKCFjb3VudCkgeworCQlXQVJOX09OKHRlc3RfYml0KE5GU0RfRklMRV9IQVNIRUQsICZuZi0+bmZfZmxhZ3MpKTsKKwkJbmZzZF9maWxlX2ZyZWUobmYpOworCX0KKwlyZXR1cm4gY291bnQ7Cit9CisKK3ZvaWQKK25mc2RfZmlsZV9wdXQoc3RydWN0IG5mc2RfZmlsZSAqbmYpCit7CisJYm9vbCBpc19oYXNoZWQgPSB0ZXN0X2JpdChORlNEX0ZJTEVfSEFTSEVELCAmbmYtPm5mX2ZsYWdzKSAhPSAwOworCWJvb2wgdW51c2VkID0gIW5mc2RfZmlsZV9pbl91c2UobmYpOworCisJc2V0X2JpdChORlNEX0ZJTEVfUkVGRVJFTkNFRCwgJm5mLT5uZl9mbGFncyk7CisJaWYgKG5mc2RfZmlsZV9wdXRfbm9yZWYobmYpID09IDEgJiYgaXNfaGFzaGVkICYmIHVudXNlZCkKKwkJbmZzZF9maWxlX3NjaGVkdWxlX2xhdW5kcmV0dGUoTkZTRF9GSUxFX0xBVU5EUkVUVEVfTUFZX0ZMVVNIKTsKK30KKworc3RydWN0IG5mc2RfZmlsZSAqCituZnNkX2ZpbGVfZ2V0KHN0cnVjdCBuZnNkX2ZpbGUgKm5mKQoreworCWlmIChsaWtlbHkoYXRvbWljX2luY19ub3RfemVybygmbmYtPm5mX3JlZikpKQorCQlyZXR1cm4gbmY7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkCituZnNkX2ZpbGVfZGlzcG9zZV9saXN0KHN0cnVjdCBsaXN0X2hlYWQgKmRpc3Bvc2UpCit7CisJc3RydWN0IG5mc2RfZmlsZSAqbmY7CisKKwl3aGlsZSghbGlzdF9lbXB0eShkaXNwb3NlKSkgeworCQluZiA9IGxpc3RfZmlyc3RfZW50cnkoZGlzcG9zZSwgc3RydWN0IG5mc2RfZmlsZSwgbmZfbHJ1KTsKKwkJbGlzdF9kZWwoJm5mLT5uZl9scnUpOworCQluZnNkX2ZpbGVfcHV0X25vcmVmKG5mKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCituZnNkX2ZpbGVfZGlzcG9zZV9saXN0X3N5bmMoc3RydWN0IGxpc3RfaGVhZCAqZGlzcG9zZSkKK3sKKwlib29sIGZsdXNoID0gZmFsc2U7CisJc3RydWN0IG5mc2RfZmlsZSAqbmY7CisKKwl3aGlsZSghbGlzdF9lbXB0eShkaXNwb3NlKSkgeworCQluZiA9IGxpc3RfZmlyc3RfZW50cnkoZGlzcG9zZSwgc3RydWN0IG5mc2RfZmlsZSwgbmZfbHJ1KTsKKwkJbGlzdF9kZWwoJm5mLT5uZl9scnUpOworCQlpZiAoIWF0b21pY19kZWNfYW5kX3Rlc3QoJm5mLT5uZl9yZWYpKQorCQkJY29udGludWU7CisJCWlmIChuZnNkX2ZpbGVfZnJlZShuZikpCisJCQlmbHVzaCA9IHRydWU7CisJfQorCWlmIChmbHVzaCkKKwkJZmx1c2hfZGVsYXllZF9mcHV0KCk7Cit9CisKKy8qCisgKiBOb3RlIHRoaXMgY2FuIGRlYWRsb2NrIHdpdGggbmZzZF9maWxlX2NhY2hlX3B1cmdlLgorICovCitzdGF0aWMgZW51bSBscnVfc3RhdHVzCituZnNkX2ZpbGVfbHJ1X2NiKHN0cnVjdCBsaXN0X2hlYWQgKml0ZW0sIHN0cnVjdCBsaXN0X2xydV9vbmUgKmxydSwKKwkJIHNwaW5sb2NrX3QgKmxvY2ssIHZvaWQgKmFyZykKKwlfX3JlbGVhc2VzKGxvY2spCisJX19hY3F1aXJlcyhsb2NrKQoreworCXN0cnVjdCBsaXN0X2hlYWQgKmhlYWQgPSBhcmc7CisJc3RydWN0IG5mc2RfZmlsZSAqbmYgPSBsaXN0X2VudHJ5KGl0ZW0sIHN0cnVjdCBuZnNkX2ZpbGUsIG5mX2xydSk7CisKKwkvKgorCSAqIERvIGEgbG9ja2xlc3MgcmVmY291bnQgY2hlY2suIFRoZSBoYXNodGFibGUgaG9sZHMgb25lIHJlZmVyZW5jZSwgc28KKwkgKiB3ZSBsb29rIHRvIHNlZSBpZiBhbnl0aGluZyBlbHNlIGhhcyBhIHJlZmVyZW5jZSwgb3IgaWYgYW55IGhhdmUKKwkgKiBiZWVuIHB1dCBzaW5jZSB0aGUgc2hyaW5rZXIgbGFzdCByYW4uIFRob3NlIGRvbid0IGdldCB1bmhhc2hlZCBhbmQKKwkgKiByZWxlYXNlZC4KKwkgKgorCSAqIE5vdGUgdGhhdCBpbiB0aGUgcHV0IHBhdGgsIHdlIHNldCB0aGUgZmxhZyBhbmQgdGhlbiBkZWNyZW1lbnQgdGhlCisJICogY291bnRlci4gSGVyZSB3ZSBjaGVjayB0aGUgY291bnRlciBhbmQgdGhlbiB0ZXN0IGFuZCBjbGVhciB0aGUgZmxhZy4KKwkgKiBUaGF0IG9yZGVyIGlzIGRlbGliZXJhdGUgdG8gZW5zdXJlIHRoYXQgd2UgY2FuIGRvIHRoaXMgbG9ja2xlc3NseS4KKwkgKi8KKwlpZiAoYXRvbWljX3JlYWQoJm5mLT5uZl9yZWYpID4gMSkKKwkJZ290byBvdXRfc2tpcDsKKworCS8qCisJICogRG9uJ3QgdGhyb3cgb3V0IGZpbGVzIHRoYXQgYXJlIHN0aWxsIHVuZGVyZ29pbmcgSS9PIG9yCisJICogdGhhdCBoYXZlIHVuY2xlYXJlZCBlcnJvcnMgcGVuZGluZy4KKwkgKi8KKwlpZiAobmZzZF9maWxlX2NoZWNrX3dyaXRlYmFjayhuZikpCisJCWdvdG8gb3V0X3NraXA7CisKKwlpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5GU0RfRklMRV9SRUZFUkVOQ0VELCAmbmYtPm5mX2ZsYWdzKSkKKwkJZ290byBvdXRfcmVzY2FuOworCisJaWYgKCF0ZXN0X2FuZF9jbGVhcl9iaXQoTkZTRF9GSUxFX0hBU0hFRCwgJm5mLT5uZl9mbGFncykpCisJCWdvdG8gb3V0X3NraXA7CisKKwlsaXN0X2xydV9pc29sYXRlX21vdmUobHJ1LCAmbmYtPm5mX2xydSwgaGVhZCk7CisJcmV0dXJuIExSVV9SRU1PVkVEOworb3V0X3Jlc2NhbjoKKwlzZXRfYml0KE5GU0RfRklMRV9MUlVfUkVTQ0FOLCAmbmZzZF9maWxlX2xydV9mbGFncyk7CitvdXRfc2tpcDoKKwlyZXR1cm4gTFJVX1NLSVA7Cit9CisKK3N0YXRpYyB2b2lkCituZnNkX2ZpbGVfbHJ1X2Rpc3Bvc2Uoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKK3sKKwl3aGlsZSghbGlzdF9lbXB0eShoZWFkKSkgeworCQlzdHJ1Y3QgbmZzZF9maWxlICpuZiA9IGxpc3RfZmlyc3RfZW50cnkoaGVhZCwKKwkJCQlzdHJ1Y3QgbmZzZF9maWxlLCBuZl9scnUpOworCQlsaXN0X2RlbF9pbml0KCZuZi0+bmZfbHJ1KTsKKwkJc3Bpbl9sb2NrKCZuZnNkX2ZpbGVfaGFzaHRibFtuZi0+bmZfaGFzaHZhbF0ubmZiX2xvY2spOworCQluZnNkX2ZpbGVfZG9fdW5oYXNoKG5mKTsKKwkJc3Bpbl91bmxvY2soJm5mc2RfZmlsZV9oYXNodGJsW25mLT5uZl9oYXNodmFsXS5uZmJfbG9jayk7CisJCW5mc2RfZmlsZV9wdXRfbm9yZWYobmYpOworCX0KK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcKK25mc2RfZmlsZV9scnVfY291bnQoc3RydWN0IHNocmlua2VyICpzLCBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKQoreworCXJldHVybiBsaXN0X2xydV9jb3VudCgmbmZzZF9maWxlX2xydSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nCituZnNkX2ZpbGVfbHJ1X3NjYW4oc3RydWN0IHNocmlua2VyICpzLCBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKQoreworCUxJU1RfSEVBRChoZWFkKTsKKwl1bnNpZ25lZCBsb25nIHJldDsKKworCXJldCA9IGxpc3RfbHJ1X3Nocmlua193YWxrKCZuZnNkX2ZpbGVfbHJ1LCBzYywgbmZzZF9maWxlX2xydV9jYiwgJmhlYWQpOworCW5mc2RfZmlsZV9scnVfZGlzcG9zZSgmaGVhZCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHN0cnVjdCBzaHJpbmtlcgluZnNkX2ZpbGVfc2hyaW5rZXIgPSB7CisJLnNjYW5fb2JqZWN0cyA9IG5mc2RfZmlsZV9scnVfc2NhbiwKKwkuY291bnRfb2JqZWN0cyA9IG5mc2RfZmlsZV9scnVfY291bnQsCisJLnNlZWtzID0gMSwKK307CisKK3N0YXRpYyB2b2lkCitfX25mc2RfZmlsZV9jbG9zZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBpbnQgaGFzaHZhbCwKKwkJCXN0cnVjdCBsaXN0X2hlYWQgKmRpc3Bvc2UpCit7CisJc3RydWN0IG5mc2RfZmlsZQkqbmY7CisJc3RydWN0IGhsaXN0X25vZGUJKnRtcDsKKworCXNwaW5fbG9jaygmbmZzZF9maWxlX2hhc2h0YmxbaGFzaHZhbF0ubmZiX2xvY2spOworCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobmYsIHRtcCwgJm5mc2RfZmlsZV9oYXNodGJsW2hhc2h2YWxdLm5mYl9oZWFkLCBuZl9ub2RlKSB7CisJCWlmIChpbm9kZSA9PSBuZi0+bmZfaW5vZGUpCisJCQluZnNkX2ZpbGVfdW5oYXNoX2FuZF9yZWxlYXNlX2xvY2tlZChuZiwgZGlzcG9zZSk7CisJfQorCXNwaW5fdW5sb2NrKCZuZnNkX2ZpbGVfaGFzaHRibFtoYXNodmFsXS5uZmJfbG9jayk7Cit9CisKKy8qKgorICogbmZzZF9maWxlX2Nsb3NlX2lub2RlX3N5bmMgLSBhdHRlbXB0IHRvIGZvcmNpYmx5IGNsb3NlIGEgbmZzZF9maWxlCisgKiBAaW5vZGU6IGlub2RlIG9mIHRoZSBmaWxlIHRvIGF0dGVtcHQgdG8gcmVtb3ZlCisgKgorICogV2FsayB0aGUgd2hvbGUgaGFzaCBidWNrZXQsIGxvb2tpbmcgZm9yIGFueSBmaWxlcyB0aGF0IGNvcnJlc3BvbmQgdG8gImlub2RlIi4KKyAqIElmIGFueSBkbywgdGhlbiB1bmhhc2ggdGhlbSBhbmQgcHV0IHRoZSBoYXNodGFibGUgcmVmZXJlbmNlIHRvIHRoZW0gYW5kCisgKiBkZXN0cm95IGFueSB0aGF0IGhhZCB0aGVpciBsYXN0IHJlZmVyZW5jZSBwdXQuIEFsc28gZW5zdXJlIHRoYXQgYW55IG9mIHRoZQorICogZnB1dHMgYWxzbyBoYXZlIHRoZWlyIGZpbmFsIF9fZnB1dCBkb25lIGFzIHdlbGwuCisgKi8KK3ZvaWQKK25mc2RfZmlsZV9jbG9zZV9pbm9kZV9zeW5jKHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJdW5zaWduZWQgaW50CQloYXNodmFsID0gKHVuc2lnbmVkIGludCloYXNoX2xvbmcoaW5vZGUtPmlfaW5vLAorCQkJCQkJTkZTRF9GSUxFX0hBU0hfQklUUyk7CisJTElTVF9IRUFEKGRpc3Bvc2UpOworCisJX19uZnNkX2ZpbGVfY2xvc2VfaW5vZGUoaW5vZGUsIGhhc2h2YWwsICZkaXNwb3NlKTsKKwl0cmFjZV9uZnNkX2ZpbGVfY2xvc2VfaW5vZGVfc3luYyhpbm9kZSwgaGFzaHZhbCwgIWxpc3RfZW1wdHkoJmRpc3Bvc2UpKTsKKwluZnNkX2ZpbGVfZGlzcG9zZV9saXN0X3N5bmMoJmRpc3Bvc2UpOworfQorCisvKioKKyAqIG5mc2RfZmlsZV9jbG9zZV9pbm9kZV9zeW5jIC0gYXR0ZW1wdCB0byBmb3JjaWJseSBjbG9zZSBhIG5mc2RfZmlsZQorICogQGlub2RlOiBpbm9kZSBvZiB0aGUgZmlsZSB0byBhdHRlbXB0IHRvIHJlbW92ZQorICoKKyAqIFdhbGsgdGhlIHdob2xlIGhhc2ggYnVja2V0LCBsb29raW5nIGZvciBhbnkgZmlsZXMgdGhhdCBjb3JyZXNwb25kIHRvICJpbm9kZSIuCisgKiBJZiBhbnkgZG8sIHRoZW4gdW5oYXNoIHRoZW0gYW5kIHB1dCB0aGUgaGFzaHRhYmxlIHJlZmVyZW5jZSB0byB0aGVtIGFuZAorICogZGVzdHJveSBhbnkgdGhhdCBoYWQgdGhlaXIgbGFzdCByZWZlcmVuY2UgcHV0LgorICovCitzdGF0aWMgdm9pZAorbmZzZF9maWxlX2Nsb3NlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJdW5zaWduZWQgaW50CQloYXNodmFsID0gKHVuc2lnbmVkIGludCloYXNoX2xvbmcoaW5vZGUtPmlfaW5vLAorCQkJCQkJTkZTRF9GSUxFX0hBU0hfQklUUyk7CisJTElTVF9IRUFEKGRpc3Bvc2UpOworCisJX19uZnNkX2ZpbGVfY2xvc2VfaW5vZGUoaW5vZGUsIGhhc2h2YWwsICZkaXNwb3NlKTsKKwl0cmFjZV9uZnNkX2ZpbGVfY2xvc2VfaW5vZGUoaW5vZGUsIGhhc2h2YWwsICFsaXN0X2VtcHR5KCZkaXNwb3NlKSk7CisJbmZzZF9maWxlX2Rpc3Bvc2VfbGlzdCgmZGlzcG9zZSk7Cit9CisKKy8qKgorICogbmZzZF9maWxlX2RlbGF5ZWRfY2xvc2UgLSBjbG9zZSB1bnVzZWQgbmZzZF9maWxlcworICogQHdvcms6IGR1bW15CisgKgorICogV2FsayB0aGUgTFJVIGxpc3QgYW5kIGNsb3NlIGFueSBlbnRyaWVzIHRoYXQgaGF2ZSBub3QgYmVlbiB1c2VkIHNpbmNlCisgKiB0aGUgbGFzdCBzY2FuLgorICoKKyAqIE5vdGUgdGhpcyBjYW4gZGVhZGxvY2sgd2l0aCBuZnNkX2ZpbGVfY2FjaGVfcHVyZ2UuCisgKi8KK3N0YXRpYyB2b2lkCituZnNkX2ZpbGVfZGVsYXllZF9jbG9zZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJTElTVF9IRUFEKGhlYWQpOworCisJbGlzdF9scnVfd2FsaygmbmZzZF9maWxlX2xydSwgbmZzZF9maWxlX2xydV9jYiwgJmhlYWQsIExPTkdfTUFYKTsKKworCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTkZTRF9GSUxFX0xSVV9SRVNDQU4sICZuZnNkX2ZpbGVfbHJ1X2ZsYWdzKSkKKwkJbmZzZF9maWxlX3NjaGVkdWxlX2xhdW5kcmV0dGUoTkZTRF9GSUxFX0xBVU5EUkVUVEVfTk9GTFVTSCk7CisKKwlpZiAoIWxpc3RfZW1wdHkoJmhlYWQpKSB7CisJCW5mc2RfZmlsZV9scnVfZGlzcG9zZSgmaGVhZCk7CisJCWZsdXNoX2RlbGF5ZWRfZnB1dCgpOworCX0KK30KKworc3RhdGljIGludAorbmZzZF9maWxlX2xlYXNlX25vdGlmaWVyX2NhbGwoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBhcmcsCisJCQkgICAgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgZmlsZV9sb2NrICpmbCA9IGRhdGE7CisKKwkvKiBPbmx5IGNsb3NlIGZpbGVzIGZvciBGX1NFVExFQVNFIGxlYXNlcyAqLworCWlmIChmbC0+ZmxfZmxhZ3MgJiBGTF9MRUFTRSkKKwkJbmZzZF9maWxlX2Nsb3NlX2lub2RlX3N5bmMoZmlsZV9pbm9kZShmbC0+ZmxfZmlsZSkpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIG5mc2RfZmlsZV9sZWFzZV9ub3RpZmllciA9IHsKKwkubm90aWZpZXJfY2FsbCA9IG5mc2RfZmlsZV9sZWFzZV9ub3RpZmllcl9jYWxsLAorfTsKKworc3RhdGljIGludAorbmZzZF9maWxlX2Zzbm90aWZ5X2hhbmRsZV9ldmVudChzdHJ1Y3QgZnNub3RpZnlfZ3JvdXAgKmdyb3VwLAorCQkJCXN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJdTMyIG1hc2ssIGNvbnN0IHZvaWQgKmRhdGEsIGludCBkYXRhX3R5cGUsCisJCQkJY29uc3Qgc3RydWN0IHFzdHIgKmZpbGVfbmFtZSwgdTMyIGNvb2tpZSwKKwkJCQlzdHJ1Y3QgZnNub3RpZnlfaXRlcl9pbmZvICppdGVyX2luZm8pCit7CisJdHJhY2VfbmZzZF9maWxlX2Zzbm90aWZ5X2hhbmRsZV9ldmVudChpbm9kZSwgbWFzayk7CisKKwkvKiBTaG91bGQgYmUgbm8gbWFya3Mgb24gbm9uLXJlZ3VsYXIgZmlsZXMgKi8KKwlpZiAoIVNfSVNSRUcoaW5vZGUtPmlfbW9kZSkpIHsKKwkJV0FSTl9PTl9PTkNFKDEpOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKiBkb24ndCBjbG9zZSBmaWxlcyBpZiB0aGlzIHdhcyBub3QgdGhlIGxhc3QgbGluayAqLworCWlmIChtYXNrICYgRlNfQVRUUklCKSB7CisJCWlmIChpbm9kZS0+aV9ubGluaykKKwkJCXJldHVybiAwOworCX0KKworCW5mc2RfZmlsZV9jbG9zZV9pbm9kZShpbm9kZSk7CisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc25vdGlmeV9vcHMgbmZzZF9maWxlX2Zzbm90aWZ5X29wcyA9IHsKKwkuaGFuZGxlX2V2ZW50ID0gbmZzZF9maWxlX2Zzbm90aWZ5X2hhbmRsZV9ldmVudCwKKwkuZnJlZV9tYXJrID0gbmZzZF9maWxlX21hcmtfZnJlZSwKK307CisKK2ludAorbmZzZF9maWxlX2NhY2hlX2luaXQodm9pZCkKK3sKKwlpbnQJCXJldCA9IC1FTk9NRU07CisJdW5zaWduZWQgaW50CWk7CisKKwljbGVhcl9iaXQoTkZTRF9GSUxFX1NIVVRET1dOLCAmbmZzZF9maWxlX2xydV9mbGFncyk7CisKKwlpZiAobmZzZF9maWxlX2hhc2h0YmwpCisJCXJldHVybiAwOworCisJbmZzZF9maWxlX2hhc2h0YmwgPSBrY2FsbG9jKE5GU0RfRklMRV9IQVNIX1NJWkUsCisJCQkJc2l6ZW9mKCpuZnNkX2ZpbGVfaGFzaHRibCksIEdGUF9LRVJORUwpOworCWlmICghbmZzZF9maWxlX2hhc2h0YmwpIHsKKwkJcHJfZXJyKCJuZnNkOiB1bmFibGUgdG8gYWxsb2NhdGUgbmZzZF9maWxlX2hhc2h0YmxcbiIpOworCQlnb3RvIG91dF9lcnI7CisJfQorCisJbmZzZF9maWxlX3NsYWIgPSBrbWVtX2NhY2hlX2NyZWF0ZSgibmZzZF9maWxlIiwKKwkJCQlzaXplb2Yoc3RydWN0IG5mc2RfZmlsZSksIDAsIDAsIE5VTEwpOworCWlmICghbmZzZF9maWxlX3NsYWIpIHsKKwkJcHJfZXJyKCJuZnNkOiB1bmFibGUgdG8gY3JlYXRlIG5mc2RfZmlsZV9zbGFiXG4iKTsKKwkJZ290byBvdXRfZXJyOworCX0KKworCW5mc2RfZmlsZV9tYXJrX3NsYWIgPSBrbWVtX2NhY2hlX2NyZWF0ZSgibmZzZF9maWxlX21hcmsiLAorCQkJCQlzaXplb2Yoc3RydWN0IG5mc2RfZmlsZV9tYXJrKSwgMCwgMCwgTlVMTCk7CisJaWYgKCFuZnNkX2ZpbGVfbWFya19zbGFiKSB7CisJCXByX2VycigibmZzZDogdW5hYmxlIHRvIGNyZWF0ZSBuZnNkX2ZpbGVfbWFya19zbGFiXG4iKTsKKwkJZ290byBvdXRfZXJyOworCX0KKworCisJcmV0ID0gbGlzdF9scnVfaW5pdCgmbmZzZF9maWxlX2xydSk7CisJaWYgKHJldCkgeworCQlwcl9lcnIoIm5mc2Q6IGZhaWxlZCB0byBpbml0IG5mc2RfZmlsZV9scnU6ICVkXG4iLCByZXQpOworCQlnb3RvIG91dF9lcnI7CisJfQorCisJcmV0ID0gcmVnaXN0ZXJfc2hyaW5rZXIoJm5mc2RfZmlsZV9zaHJpbmtlcik7CisJaWYgKHJldCkgeworCQlwcl9lcnIoIm5mc2Q6IGZhaWxlZCB0byByZWdpc3RlciBuZnNkX2ZpbGVfc2hyaW5rZXI6ICVkXG4iLCByZXQpOworCQlnb3RvIG91dF9scnU7CisJfQorCisJcmV0ID0gbGVhc2VfcmVnaXN0ZXJfbm90aWZpZXIoJm5mc2RfZmlsZV9sZWFzZV9ub3RpZmllcik7CisJaWYgKHJldCkgeworCQlwcl9lcnIoIm5mc2Q6IHVuYWJsZSB0byByZWdpc3RlciBsZWFzZSBub3RpZmllcjogJWRcbiIsIHJldCk7CisJCWdvdG8gb3V0X3Nocmlua2VyOworCX0KKworCW5mc2RfZmlsZV9mc25vdGlmeV9ncm91cCA9IGZzbm90aWZ5X2FsbG9jX2dyb3VwKCZuZnNkX2ZpbGVfZnNub3RpZnlfb3BzKTsKKwlpZiAoSVNfRVJSKG5mc2RfZmlsZV9mc25vdGlmeV9ncm91cCkpIHsKKwkJcHJfZXJyKCJuZnNkOiB1bmFibGUgdG8gY3JlYXRlIGZzbm90aWZ5IGdyb3VwOiAlbGRcbiIsCisJCQlQVFJfRVJSKG5mc2RfZmlsZV9mc25vdGlmeV9ncm91cCkpOworCQluZnNkX2ZpbGVfZnNub3RpZnlfZ3JvdXAgPSBOVUxMOworCQlnb3RvIG91dF9ub3RpZmllcjsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgTkZTRF9GSUxFX0hBU0hfU0laRTsgaSsrKSB7CisJCUlOSVRfSExJU1RfSEVBRCgmbmZzZF9maWxlX2hhc2h0YmxbaV0ubmZiX2hlYWQpOworCQlzcGluX2xvY2tfaW5pdCgmbmZzZF9maWxlX2hhc2h0YmxbaV0ubmZiX2xvY2spOworCX0KKworCUlOSVRfREVMQVlFRF9XT1JLKCZuZnNkX2ZpbGVjYWNoZV9sYXVuZHJldHRlLCBuZnNkX2ZpbGVfZGVsYXllZF9jbG9zZSk7CitvdXQ6CisJcmV0dXJuIHJldDsKK291dF9ub3RpZmllcjoKKwlsZWFzZV91bnJlZ2lzdGVyX25vdGlmaWVyKCZuZnNkX2ZpbGVfbGVhc2Vfbm90aWZpZXIpOworb3V0X3Nocmlua2VyOgorCXVucmVnaXN0ZXJfc2hyaW5rZXIoJm5mc2RfZmlsZV9zaHJpbmtlcik7CitvdXRfbHJ1OgorCWxpc3RfbHJ1X2Rlc3Ryb3koJm5mc2RfZmlsZV9scnUpOworb3V0X2VycjoKKwlrbWVtX2NhY2hlX2Rlc3Ryb3kobmZzZF9maWxlX3NsYWIpOworCW5mc2RfZmlsZV9zbGFiID0gTlVMTDsKKwlrbWVtX2NhY2hlX2Rlc3Ryb3kobmZzZF9maWxlX21hcmtfc2xhYik7CisJbmZzZF9maWxlX21hcmtfc2xhYiA9IE5VTEw7CisJa2ZyZWUobmZzZF9maWxlX2hhc2h0YmwpOworCW5mc2RfZmlsZV9oYXNodGJsID0gTlVMTDsKKwlnb3RvIG91dDsKK30KKworLyoKKyAqIE5vdGUgdGhpcyBjYW4gZGVhZGxvY2sgd2l0aCBuZnNkX2ZpbGVfbHJ1X2NiLgorICovCit2b2lkCituZnNkX2ZpbGVfY2FjaGVfcHVyZ2Uoc3RydWN0IG5ldCAqbmV0KQoreworCXVuc2lnbmVkIGludAkJaTsKKwlzdHJ1Y3QgbmZzZF9maWxlCSpuZjsKKwlzdHJ1Y3QgaGxpc3Rfbm9kZQkqbmV4dDsKKwlMSVNUX0hFQUQoZGlzcG9zZSk7CisJYm9vbCBkZWw7CisKKwlpZiAoIW5mc2RfZmlsZV9oYXNodGJsKQorCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgTkZTRF9GSUxFX0hBU0hfU0laRTsgaSsrKSB7CisJCXN0cnVjdCBuZnNkX2ZjYWNoZV9idWNrZXQgKm5mYiA9ICZuZnNkX2ZpbGVfaGFzaHRibFtpXTsKKworCQlzcGluX2xvY2soJm5mYi0+bmZiX2xvY2spOworCQlobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG5mLCBuZXh0LCAmbmZiLT5uZmJfaGVhZCwgbmZfbm9kZSkgeworCQkJaWYgKG5ldCAmJiBuZi0+bmZfbmV0ICE9IG5ldCkKKwkJCQljb250aW51ZTsKKwkJCWRlbCA9IG5mc2RfZmlsZV91bmhhc2hfYW5kX3JlbGVhc2VfbG9ja2VkKG5mLCAmZGlzcG9zZSk7CisKKwkJCS8qCisJCQkgKiBEZWFkbG9jayBkZXRlY3RlZCEgU29tZXRoaW5nIG1hcmtlZCB0aGlzIGVudHJ5IGFzCisJCQkgKiB1bmhhc2VkLCBidXQgaGFzbid0IHJlbW92ZWQgaXQgZnJvbSB0aGUgaGFzaCBsaXN0LgorCQkJICovCisJCQlXQVJOX09OX09OQ0UoIWRlbCk7CisJCX0KKwkJc3Bpbl91bmxvY2soJm5mYi0+bmZiX2xvY2spOworCQluZnNkX2ZpbGVfZGlzcG9zZV9saXN0KCZkaXNwb3NlKTsKKwl9Cit9CisKK3ZvaWQKK25mc2RfZmlsZV9jYWNoZV9zaHV0ZG93bih2b2lkKQoreworCUxJU1RfSEVBRChkaXNwb3NlKTsKKworCXNldF9iaXQoTkZTRF9GSUxFX1NIVVRET1dOLCAmbmZzZF9maWxlX2xydV9mbGFncyk7CisKKwlsZWFzZV91bnJlZ2lzdGVyX25vdGlmaWVyKCZuZnNkX2ZpbGVfbGVhc2Vfbm90aWZpZXIpOworCXVucmVnaXN0ZXJfc2hyaW5rZXIoJm5mc2RfZmlsZV9zaHJpbmtlcik7CisJLyoKKwkgKiBtYWtlIHN1cmUgYWxsIGNhbGxlcnMgb2YgbmZzZF9maWxlX2xydV9jYiBhcmUgZG9uZSBiZWZvcmUKKwkgKiBjYWxsaW5nIG5mc2RfZmlsZV9jYWNoZV9wdXJnZQorCSAqLworCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmbmZzZF9maWxlY2FjaGVfbGF1bmRyZXR0ZSk7CisJbmZzZF9maWxlX2NhY2hlX3B1cmdlKE5VTEwpOworCWxpc3RfbHJ1X2Rlc3Ryb3koJm5mc2RfZmlsZV9scnUpOworCXJjdV9iYXJyaWVyKCk7CisJZnNub3RpZnlfcHV0X2dyb3VwKG5mc2RfZmlsZV9mc25vdGlmeV9ncm91cCk7CisJbmZzZF9maWxlX2Zzbm90aWZ5X2dyb3VwID0gTlVMTDsKKwlrbWVtX2NhY2hlX2Rlc3Ryb3kobmZzZF9maWxlX3NsYWIpOworCW5mc2RfZmlsZV9zbGFiID0gTlVMTDsKKwlmc25vdGlmeV93YWl0X21hcmtzX2Rlc3Ryb3llZCgpOworCWttZW1fY2FjaGVfZGVzdHJveShuZnNkX2ZpbGVfbWFya19zbGFiKTsKKwluZnNkX2ZpbGVfbWFya19zbGFiID0gTlVMTDsKKwlrZnJlZShuZnNkX2ZpbGVfaGFzaHRibCk7CisJbmZzZF9maWxlX2hhc2h0YmwgPSBOVUxMOworfQorCitzdGF0aWMgYm9vbAorbmZzZF9tYXRjaF9jcmVkKGNvbnN0IHN0cnVjdCBjcmVkICpjMSwgY29uc3Qgc3RydWN0IGNyZWQgKmMyKQoreworCWludCBpOworCisJaWYgKCF1aWRfZXEoYzEtPmZzdWlkLCBjMi0+ZnN1aWQpKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKCFnaWRfZXEoYzEtPmZzZ2lkLCBjMi0+ZnNnaWQpKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKGMxLT5ncm91cF9pbmZvID09IE5VTEwgfHwgYzItPmdyb3VwX2luZm8gPT0gTlVMTCkKKwkJcmV0dXJuIGMxLT5ncm91cF9pbmZvID09IGMyLT5ncm91cF9pbmZvOworCWlmIChjMS0+Z3JvdXBfaW5mby0+bmdyb3VwcyAhPSBjMi0+Z3JvdXBfaW5mby0+bmdyb3VwcykKKwkJcmV0dXJuIGZhbHNlOworCWZvciAoaSA9IDA7IGkgPCBjMS0+Z3JvdXBfaW5mby0+bmdyb3VwczsgaSsrKSB7CisJCWlmICghZ2lkX2VxKGMxLT5ncm91cF9pbmZvLT5naWRbaV0sIGMyLT5ncm91cF9pbmZvLT5naWRbaV0pKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHN0cnVjdCBuZnNkX2ZpbGUgKgorbmZzZF9maWxlX2ZpbmRfbG9ja2VkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBtYXlfZmxhZ3MsCisJCQl1bnNpZ25lZCBpbnQgaGFzaHZhbCwgc3RydWN0IG5ldCAqbmV0KQoreworCXN0cnVjdCBuZnNkX2ZpbGUgKm5mOworCXVuc2lnbmVkIGNoYXIgbmVlZCA9IG1heV9mbGFncyAmIE5GU0RfRklMRV9NQVlfTUFTSzsKKworCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShuZiwgJm5mc2RfZmlsZV9oYXNodGJsW2hhc2h2YWxdLm5mYl9oZWFkLAorCQkJCSBuZl9ub2RlKSB7CisJCWlmICgobmVlZCAmIG5mLT5uZl9tYXkpICE9IG5lZWQpCisJCQljb250aW51ZTsKKwkJaWYgKG5mLT5uZl9pbm9kZSAhPSBpbm9kZSkKKwkJCWNvbnRpbnVlOworCQlpZiAobmYtPm5mX25ldCAhPSBuZXQpCisJCQljb250aW51ZTsKKwkJaWYgKCFuZnNkX21hdGNoX2NyZWQobmYtPm5mX2NyZWQsIGN1cnJlbnRfY3JlZCgpKSkKKwkJCWNvbnRpbnVlOworCQlpZiAobmZzZF9maWxlX2dldChuZikgIT0gTlVMTCkKKwkJCXJldHVybiBuZjsKKwl9CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qKgorICogbmZzZF9maWxlX2lzX2NhY2hlZCAtIGFyZSB0aGVyZSBhbnkgY2FjaGVkIG9wZW4gZmlsZXMgZm9yIHRoaXMgZmg/CisgKiBAaW5vZGU6IGlub2RlIG9mIHRoZSBmaWxlIHRvIGNoZWNrCisgKgorICogU2NhbiB0aGUgaGFzaHRhYmxlIGZvciBvcGVuIGZpbGVzIHRoYXQgbWF0Y2ggdGhpcyBmaC4gUmV0dXJucyB0cnVlIGlmIHRoZXJlCisgKiBhcmUgYW55LCBhbmQgZmFsc2UgaWYgbm90LgorICovCitib29sCituZnNkX2ZpbGVfaXNfY2FjaGVkKHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJYm9vbAkJCXJldCA9IGZhbHNlOworCXN0cnVjdCBuZnNkX2ZpbGUJKm5mOworCXVuc2lnbmVkIGludAkJaGFzaHZhbDsKKworICAgICAgICBoYXNodmFsID0gKHVuc2lnbmVkIGludCloYXNoX2xvbmcoaW5vZGUtPmlfaW5vLCBORlNEX0ZJTEVfSEFTSF9CSVRTKTsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UobmYsICZuZnNkX2ZpbGVfaGFzaHRibFtoYXNodmFsXS5uZmJfaGVhZCwKKwkJCQkgbmZfbm9kZSkgeworCQlpZiAoaW5vZGUgPT0gbmYtPm5mX2lub2RlKSB7CisJCQlyZXQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CisJdHJhY2VfbmZzZF9maWxlX2lzX2NhY2hlZChpbm9kZSwgaGFzaHZhbCwgKGludClyZXQpOworCXJldHVybiByZXQ7Cit9CisKK19fYmUzMgorbmZzZF9maWxlX2FjcXVpcmUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmhwLAorCQkgIHVuc2lnbmVkIGludCBtYXlfZmxhZ3MsIHN0cnVjdCBuZnNkX2ZpbGUgKipwbmYpCit7CisJX19iZTMyCXN0YXR1czsKKwlzdHJ1Y3QgbmV0ICpuZXQgPSBTVkNfTkVUKHJxc3RwKTsKKwlzdHJ1Y3QgbmZzZF9maWxlICpuZiwgKm5ldzsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlOworCXVuc2lnbmVkIGludCBoYXNodmFsOworCisJLyogRklYTUU6IHNraXAgdGhpcyBpZiBmaF9kZW50cnkgaXMgYWxyZWFkeSBzZXQ/ICovCisJc3RhdHVzID0gZmhfdmVyaWZ5KHJxc3RwLCBmaHAsIFNfSUZSRUcsCisJCQkJbWF5X2ZsYWdzfE5GU0RfTUFZX09XTkVSX09WRVJSSURFKTsKKwlpZiAoc3RhdHVzICE9IG5mc19vaykKKwkJcmV0dXJuIHN0YXR1czsKKworCWlub2RlID0gZF9pbm9kZShmaHAtPmZoX2RlbnRyeSk7CisJaGFzaHZhbCA9ICh1bnNpZ25lZCBpbnQpaGFzaF9sb25nKGlub2RlLT5pX2lubywgTkZTRF9GSUxFX0hBU0hfQklUUyk7CityZXRyeToKKwlyY3VfcmVhZF9sb2NrKCk7CisJbmYgPSBuZnNkX2ZpbGVfZmluZF9sb2NrZWQoaW5vZGUsIG1heV9mbGFncywgaGFzaHZhbCwgbmV0KTsKKwlyY3VfcmVhZF91bmxvY2soKTsKKwlpZiAobmYpCisJCWdvdG8gd2FpdF9mb3JfY29uc3RydWN0aW9uOworCisJbmV3ID0gbmZzZF9maWxlX2FsbG9jKGlub2RlLCBtYXlfZmxhZ3MsIGhhc2h2YWwsIG5ldCk7CisJaWYgKCFuZXcpIHsKKwkJdHJhY2VfbmZzZF9maWxlX2FjcXVpcmUocnFzdHAsIGhhc2h2YWwsIGlub2RlLCBtYXlfZmxhZ3MsCisJCQkJCU5VTEwsIG5mc2Vycl9qdWtlYm94KTsKKwkJcmV0dXJuIG5mc2Vycl9qdWtlYm94OworCX0KKworCXNwaW5fbG9jaygmbmZzZF9maWxlX2hhc2h0YmxbaGFzaHZhbF0ubmZiX2xvY2spOworCW5mID0gbmZzZF9maWxlX2ZpbmRfbG9ja2VkKGlub2RlLCBtYXlfZmxhZ3MsIGhhc2h2YWwsIG5ldCk7CisJaWYgKG5mID09IE5VTEwpCisJCWdvdG8gb3Blbl9maWxlOworCXNwaW5fdW5sb2NrKCZuZnNkX2ZpbGVfaGFzaHRibFtoYXNodmFsXS5uZmJfbG9jayk7CisJbmZzZF9maWxlX3NsYWJfZnJlZSgmbmV3LT5uZl9yY3UpOworCit3YWl0X2Zvcl9jb25zdHJ1Y3Rpb246CisJd2FpdF9vbl9iaXQoJm5mLT5uZl9mbGFncywgTkZTRF9GSUxFX1BFTkRJTkcsIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKKworCS8qIERpZCBjb25zdHJ1Y3Rpb24gb2YgdGhpcyBmaWxlIGZhaWw/ICovCisJaWYgKCF0ZXN0X2JpdChORlNEX0ZJTEVfSEFTSEVELCAmbmYtPm5mX2ZsYWdzKSkgeworCQluZnNkX2ZpbGVfcHV0X25vcmVmKG5mKTsKKwkJZ290byByZXRyeTsKKwl9CisKKwl0aGlzX2NwdV9pbmMobmZzZF9maWxlX2NhY2hlX2hpdHMpOworCisJaWYgKCEobWF5X2ZsYWdzICYgTkZTRF9NQVlfTk9UX0JSRUFLX0xFQVNFKSkgeworCQlib29sIHdyaXRlID0gKG1heV9mbGFncyAmIE5GU0RfTUFZX1dSSVRFKTsKKworCQlpZiAodGVzdF9iaXQoTkZTRF9GSUxFX0JSRUFLX1JFQUQsICZuZi0+bmZfZmxhZ3MpIHx8CisJCSAgICAodGVzdF9iaXQoTkZTRF9GSUxFX0JSRUFLX1dSSVRFLCAmbmYtPm5mX2ZsYWdzKSAmJiB3cml0ZSkpIHsKKwkJCXN0YXR1cyA9IG5mc2Vycm5vKG5mc2Rfb3Blbl9icmVha19sZWFzZSgKKwkJCQkJZmlsZV9pbm9kZShuZi0+bmZfZmlsZSksIG1heV9mbGFncykpOworCQkJaWYgKHN0YXR1cyA9PSBuZnNfb2spIHsKKwkJCQljbGVhcl9iaXQoTkZTRF9GSUxFX0JSRUFLX1JFQUQsICZuZi0+bmZfZmxhZ3MpOworCQkJCWlmICh3cml0ZSkKKwkJCQkJY2xlYXJfYml0KE5GU0RfRklMRV9CUkVBS19XUklURSwKKwkJCQkJCSAgJm5mLT5uZl9mbGFncyk7CisJCQl9CisJCX0KKwl9CitvdXQ6CisJaWYgKHN0YXR1cyA9PSBuZnNfb2spIHsKKwkJKnBuZiA9IG5mOworCX0gZWxzZSB7CisJCW5mc2RfZmlsZV9wdXQobmYpOworCQluZiA9IE5VTEw7CisJfQorCisJdHJhY2VfbmZzZF9maWxlX2FjcXVpcmUocnFzdHAsIGhhc2h2YWwsIGlub2RlLCBtYXlfZmxhZ3MsIG5mLCBzdGF0dXMpOworCXJldHVybiBzdGF0dXM7CitvcGVuX2ZpbGU6CisJbmYgPSBuZXc7CisJLyogVGFrZSByZWZlcmVuY2UgZm9yIHRoZSBoYXNodGFibGUgKi8KKwlhdG9taWNfaW5jKCZuZi0+bmZfcmVmKTsKKwlfX3NldF9iaXQoTkZTRF9GSUxFX0hBU0hFRCwgJm5mLT5uZl9mbGFncyk7CisJX19zZXRfYml0KE5GU0RfRklMRV9QRU5ESU5HLCAmbmYtPm5mX2ZsYWdzKTsKKwlsaXN0X2xydV9hZGQoJm5mc2RfZmlsZV9scnUsICZuZi0+bmZfbHJ1KTsKKwlobGlzdF9hZGRfaGVhZF9yY3UoJm5mLT5uZl9ub2RlLCAmbmZzZF9maWxlX2hhc2h0YmxbaGFzaHZhbF0ubmZiX2hlYWQpOworCSsrbmZzZF9maWxlX2hhc2h0YmxbaGFzaHZhbF0ubmZiX2NvdW50OworCW5mc2RfZmlsZV9oYXNodGJsW2hhc2h2YWxdLm5mYl9tYXhjb3VudCA9IG1heChuZnNkX2ZpbGVfaGFzaHRibFtoYXNodmFsXS5uZmJfbWF4Y291bnQsCisJCQluZnNkX2ZpbGVfaGFzaHRibFtoYXNodmFsXS5uZmJfY291bnQpOworCXNwaW5fdW5sb2NrKCZuZnNkX2ZpbGVfaGFzaHRibFtoYXNodmFsXS5uZmJfbG9jayk7CisJYXRvbWljX2xvbmdfaW5jKCZuZnNkX2ZpbGVjYWNoZV9jb3VudCk7CisKKwluZi0+bmZfbWFyayA9IG5mc2RfZmlsZV9tYXJrX2ZpbmRfb3JfY3JlYXRlKG5mKTsKKwlpZiAobmYtPm5mX21hcmspCisJCXN0YXR1cyA9IG5mc2Rfb3Blbl92ZXJpZmllZChycXN0cCwgZmhwLCBTX0lGUkVHLAorCQkJCW1heV9mbGFncywgJm5mLT5uZl9maWxlKTsKKwllbHNlCisJCXN0YXR1cyA9IG5mc2Vycl9qdWtlYm94OworCS8qCisJICogSWYgY29uc3RydWN0aW9uIGZhaWxlZCwgb3Igd2UgcmFjZWQgd2l0aCBhIGNhbGwgdG8gdW5saW5rKCkKKwkgKiB0aGVuIHVuaGFzaC4KKwkgKi8KKwlpZiAoc3RhdHVzICE9IG5mc19vayB8fCBpbm9kZS0+aV9ubGluayA9PSAwKSB7CisJCWJvb2wgZG9fZnJlZTsKKwkJc3Bpbl9sb2NrKCZuZnNkX2ZpbGVfaGFzaHRibFtoYXNodmFsXS5uZmJfbG9jayk7CisJCWRvX2ZyZWUgPSBuZnNkX2ZpbGVfdW5oYXNoKG5mKTsKKwkJc3Bpbl91bmxvY2soJm5mc2RfZmlsZV9oYXNodGJsW2hhc2h2YWxdLm5mYl9sb2NrKTsKKwkJaWYgKGRvX2ZyZWUpCisJCQluZnNkX2ZpbGVfcHV0X25vcmVmKG5mKTsKKwl9CisJY2xlYXJfYml0X3VubG9jayhORlNEX0ZJTEVfUEVORElORywgJm5mLT5uZl9mbGFncyk7CisJc21wX21iX19hZnRlcl9hdG9taWMoKTsKKwl3YWtlX3VwX2JpdCgmbmYtPm5mX2ZsYWdzLCBORlNEX0ZJTEVfUEVORElORyk7CisJZ290byBvdXQ7Cit9CisKKy8qCisgKiBOb3RlIHRoYXQgZmllbGRzIG1heSBiZSBhZGRlZCwgcmVtb3ZlZCBvciByZW9yZGVyZWQgaW4gdGhlIGZ1dHVyZS4gUHJvZ3JhbXMKKyAqIHNjcmFwaW5nIHRoaXMgZmlsZSBmb3IgaW5mbyBzaG91bGQgdGVzdCB0aGUgbGFiZWxzIHRvIGVuc3VyZSB0aGV5J3JlCisgKiBnZXR0aW5nIHRoZSBjb3JyZWN0IGZpZWxkLgorICovCitzdGF0aWMgaW50IG5mc2RfZmlsZV9jYWNoZV9zdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKKwl1bnNpZ25lZCBpbnQgaSwgY291bnQgPSAwLCBsb25nZXN0ID0gMDsKKwl1bnNpZ25lZCBsb25nIGhpdHMgPSAwOworCisJLyoKKwkgKiBObyBuZWVkIGZvciBzcGlubG9ja3MgaGVyZSBzaW5jZSB3ZSdyZSBub3QgdGVycmlibHkgaW50ZXJlc3RlZCBpbgorCSAqIGFjY3VyYWN5LiBXZSBkbyB0YWtlIHRoZSBuZnNkX211dGV4IHNpbXBseSB0byBlbnN1cmUgdGhhdCB3ZQorCSAqIGRvbid0IGVuZCB1cCByYWNpbmcgd2l0aCBzZXJ2ZXIgc2h1dGRvd24KKwkgKi8KKwltdXRleF9sb2NrKCZuZnNkX211dGV4KTsKKwlpZiAobmZzZF9maWxlX2hhc2h0YmwpIHsKKwkJZm9yIChpID0gMDsgaSA8IE5GU0RfRklMRV9IQVNIX1NJWkU7IGkrKykgeworCQkJY291bnQgKz0gbmZzZF9maWxlX2hhc2h0YmxbaV0ubmZiX2NvdW50OworCQkJbG9uZ2VzdCA9IG1heChsb25nZXN0LCBuZnNkX2ZpbGVfaGFzaHRibFtpXS5uZmJfY291bnQpOworCQl9CisJfQorCW11dGV4X3VubG9jaygmbmZzZF9tdXRleCk7CisKKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkKKwkJaGl0cyArPSBwZXJfY3B1KG5mc2RfZmlsZV9jYWNoZV9oaXRzLCBpKTsKKworCXNlcV9wcmludGYobSwgInRvdGFsIGVudHJpZXM6ICV1XG4iLCBjb3VudCk7CisJc2VxX3ByaW50ZihtLCAibG9uZ2VzdCBjaGFpbjogJXVcbiIsIGxvbmdlc3QpOworCXNlcV9wcmludGYobSwgImNhY2hlIGhpdHM6ICAgICVsdVxuIiwgaGl0cyk7CisJcmV0dXJuIDA7Cit9CisKK2ludCBuZnNkX2ZpbGVfY2FjaGVfc3RhdHNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgbmZzZF9maWxlX2NhY2hlX3N0YXRzX3Nob3csIE5VTEwpOworfQpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9maWxlY2FjaGUuaCBiL2ZzL25mc2QvZmlsZWNhY2hlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUxZDlhYgotLS0gL2Rldi9udWxsCisrKyBiL2ZzL25mc2QvZmlsZWNhY2hlLmgKQEAgLTAsMCArMSw2MSBAQAorI2lmbmRlZiBfRlNfTkZTRF9GSUxFQ0FDSEVfSAorI2RlZmluZSBfRlNfTkZTRF9GSUxFQ0FDSEVfSAorCisjaW5jbHVkZSA8bGludXgvZnNub3RpZnlfYmFja2VuZC5oPgorCisvKgorICogVGhpcyBpcyB0aGUgZnNub3RpZnlfbWFyayBjb250YWluZXIgdGhhdCBuZnNkIGF0dGFjaGVzIHRvIHRoZSBmaWxlcyB0aGF0IGl0CisgKiBpcyBob2xkaW5nIG9wZW4uIE5vdGUgdGhhdCB3ZSBoYXZlIGEgc2VwYXJhdGUgcmVmY291bnQgaGVyZSBhc2lkZSBmcm9tIHRoZQorICogb25lIGluIHRoZSBmc25vdGlmeV9tYXJrLiBXZSBvbmx5IHdhbnQgYSBzaW5nbGUgZnNub3RpZnlfbWFyayBhdHRhY2hlZCB0bworICogdGhlIGlub2RlLCBhbmQgZm9yIGVhY2ggbmZzZF9maWxlIHRvIGhvbGQgYSByZWZlcmVuY2UgdG8gaXQuCisgKgorICogVGhlIGZzbm90aWZ5X21hcmsgaXMgaXRzZWxmIHJlZmNvdW50ZWQsIGJ1dCB0aGF0J3Mgbm90IHN1ZmZpY2llbnQgdG8gdGVsbCB1cworICogaG93IHRvIHB1dCB0aGF0IHJlZmVyZW5jZS4gSWYgdGhlcmUgYXJlIHN0aWxsIG91dHN0YW5kaW5nIG5mc2RfZmlsZXMgdGhhdAorICogcmVmZXJlbmNlIHRoZSBtYXJrLCB0aGVuIHdlIHdvdWxkIHdhbnQgdG8gY2FsbCBmc25vdGlmeV9wdXRfbWFyayBvbiBpdC4KKyAqIElmIHRoZXJlIHdlcmUgbm90LCB0aGVuIHdlJ2QgbmVlZCB0byBjYWxsIGZzbm90aWZ5X2Rlc3Ryb3lfbWFyay4gU2luY2Ugd2UKKyAqIGNhbid0IHJlYWxseSB0ZWxsIHRoZSBkaWZmZXJlbmNlLCB3ZSB1c2UgdGhlIG5mbV9tYXJrIHRvIGtlZXAgdHJhY2sgb2YgaG93CisgKiBtYW55IG5mc2RfZmlsZXMgaG9sZCByZWZlcmVuY2VzIHRvIHRoZSBtYXJrLiBXaGVuIHRoYXQgY291bnRlciBnb2VzIHRvIHplcm8KKyAqIHRoZW4gd2Uga25vdyB0byBjYWxsIGZzbm90aWZ5X2Rlc3Ryb3lfbWFyayBvbiBpdC4KKyAqLworc3RydWN0IG5mc2RfZmlsZV9tYXJrIHsKKwlzdHJ1Y3QgZnNub3RpZnlfbWFyawluZm1fbWFyazsKKwlhdG9taWNfdAkJbmZtX3JlZjsKK307CisKKy8qCisgKiBBIHJlcHJlc2VudGF0aW9uIG9mIGEgZmlsZSB0aGF0IGhhcyBiZWVuIG9wZW5lZCBieSBrbmZzZC4gVGhlc2UgYXJlIGhhc2hlZAorICogaW4gdGhlIGhhc2h0YWJsZSBieSBpbm9kZSBwb2ludGVyIHZhbHVlLiBOb3RlIHRoYXQgdGhpcyBvYmplY3QgZG9lc24ndAorICogaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgaW5vZGUgYnkgaXRzZWxmLCBzbyB0aGUgbmZfaW5vZGUgcG9pbnRlciBzaG91bGQKKyAqIG5ldmVyIGJlIGRlcmVmZXJlbmNlZCwgb25seSB1c2VkIGZvciBjb21wYXJpc29uLgorICovCitzdHJ1Y3QgbmZzZF9maWxlIHsKKwlzdHJ1Y3QgaGxpc3Rfbm9kZQluZl9ub2RlOworCXN0cnVjdCBsaXN0X2hlYWQJbmZfbHJ1OworCXN0cnVjdCByY3VfaGVhZAkJbmZfcmN1OworCXN0cnVjdCBmaWxlCQkqbmZfZmlsZTsKKwljb25zdCBzdHJ1Y3QgY3JlZAkqbmZfY3JlZDsKKwlzdHJ1Y3QgbmV0CQkqbmZfbmV0OworI2RlZmluZSBORlNEX0ZJTEVfSEFTSEVECSgwKQorI2RlZmluZSBORlNEX0ZJTEVfUEVORElORwkoMSkKKyNkZWZpbmUgTkZTRF9GSUxFX0JSRUFLX1JFQUQJKDIpCisjZGVmaW5lIE5GU0RfRklMRV9CUkVBS19XUklURQkoMykKKyNkZWZpbmUgTkZTRF9GSUxFX1JFRkVSRU5DRUQJKDQpCisJdW5zaWduZWQgbG9uZwkJbmZfZmxhZ3M7CisJc3RydWN0IGlub2RlCQkqbmZfaW5vZGU7CisJdW5zaWduZWQgaW50CQluZl9oYXNodmFsOworCWF0b21pY190CQluZl9yZWY7CisJdW5zaWduZWQgY2hhcgkJbmZfbWF5OworCXN0cnVjdCBuZnNkX2ZpbGVfbWFyawkqbmZfbWFyazsKK307CisKK2ludCBuZnNkX2ZpbGVfY2FjaGVfaW5pdCh2b2lkKTsKK3ZvaWQgbmZzZF9maWxlX2NhY2hlX3B1cmdlKHN0cnVjdCBuZXQgKik7Cit2b2lkIG5mc2RfZmlsZV9jYWNoZV9zaHV0ZG93bih2b2lkKTsKK3ZvaWQgbmZzZF9maWxlX3B1dChzdHJ1Y3QgbmZzZF9maWxlICpuZik7CitzdHJ1Y3QgbmZzZF9maWxlICpuZnNkX2ZpbGVfZ2V0KHN0cnVjdCBuZnNkX2ZpbGUgKm5mKTsKK3ZvaWQgbmZzZF9maWxlX2Nsb3NlX2lub2RlX3N5bmMoc3RydWN0IGlub2RlICppbm9kZSk7Citib29sIG5mc2RfZmlsZV9pc19jYWNoZWQoc3RydWN0IGlub2RlICppbm9kZSk7CitfX2JlMzIgbmZzZF9maWxlX2FjcXVpcmUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmhwLAorCQkgIHVuc2lnbmVkIGludCBtYXlfZmxhZ3MsIHN0cnVjdCBuZnNkX2ZpbGUgKipuZnApOworaW50CW5mc2RfZmlsZV9jYWNoZV9zdGF0c19vcGVuKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKKyNlbmRpZiAvKiBfRlNfTkZTRF9GSUxFQ0FDSEVfSCAqLwpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZXRucy5oIGIvZnMvbmZzZC9uZXRucy5oCmluZGV4IGJkZmU1YmMuLjlhNGVmODEgMTAwNjQ0Ci0tLSBhL2ZzL25mc2QvbmV0bnMuaAorKysgYi9mcy9uZnNkL25ldG5zLmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBzdHJ1Y3QgbmZzZF9uZXQgewogCiAJLyogVGltZSBvZiBzZXJ2ZXIgc3RhcnR1cCAqLwogCXN0cnVjdCB0aW1lc3BlYzY0IG5mc3N2Y19ib290OworCXNlcWxvY2tfdCBib290X2xvY2s7CiAKIAkvKgogCSAqIE1heCBudW1iZXIgb2YgY29ubmVjdGlvbnMgdGhpcyBuZnNkIGNvbnRhaW5lciB3aWxsIGFsbG93LiBEZWZhdWx0cwpAQCAtMTc5LDQgKzE4MCw3IEBAIHN0cnVjdCBuZnNkX25ldCB7CiBleHRlcm4gdm9pZCBuZnNkX25ldG5zX2ZyZWVfdmVyc2lvbnMoc3RydWN0IG5mc2RfbmV0ICpubik7CiAKIGV4dGVybiB1bnNpZ25lZCBpbnQgbmZzZF9uZXRfaWQ7CisKK3ZvaWQgbmZzZF9jb3B5X2Jvb3RfdmVyaWZpZXIoX19iZTMyIHZlcmZbMl0sIHN0cnVjdCBuZnNkX25ldCAqbm4pOwordm9pZCBuZnNkX3Jlc2V0X2Jvb3RfdmVyaWZpZXIoc3RydWN0IG5mc2RfbmV0ICpubik7CiAjZW5kaWYgLyogX19ORlNEX05FVE5TX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnMzcHJvYy5jIGIvZnMvbmZzZC9uZnMzcHJvYy5jCmluZGV4IDliYzMyYWYuLmNlYTY4ZDggMTAwNjQ0Ci0tLSBhL2ZzL25mc2QvbmZzM3Byb2MuYworKysgYi9mcy9uZnNkL25mczNwcm9jLmMKQEAgLTE3MiwxMyArMTcyLDggQEAgbmZzZDNfcHJvY19yZWFkKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHApCiAJbmZzZXJyID0gbmZzZF9yZWFkKHJxc3RwLCAmcmVzcC0+ZmgsCiAJCQkJICBhcmdwLT5vZmZzZXQsCiAJCQkgICAJICBycXN0cC0+cnFfdmVjLCBhcmdwLT52bGVuLAotCQkJCSAgJnJlc3AtPmNvdW50KTsKLQlpZiAobmZzZXJyID09IDApIHsKLQkJc3RydWN0IGlub2RlCSppbm9kZSA9IGRfaW5vZGUocmVzcC0+ZmguZmhfZGVudHJ5KTsKLQkJcmVzcC0+ZW9mID0gbmZzZF9lb2Zfb25fcmVhZChjbnQsIHJlc3AtPmNvdW50LCBhcmdwLT5vZmZzZXQsCi0JCQkJCQkJaW5vZGUtPmlfc2l6ZSk7Ci0JfQotCisJCQkJICAmcmVzcC0+Y291bnQsCisJCQkJICAmcmVzcC0+ZW9mKTsKIAlSRVRVUk5fU1RBVFVTKG5mc2Vycik7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL25mc2QvbmZzM3hkci5jIGIvZnMvbmZzZC9uZnMzeGRyLmMKaW5kZXggZmNmMzE4Mi4uODZlNTY1OCAxMDA2NDQKLS0tIGEvZnMvbmZzZC9uZnMzeGRyLmMKKysrIGIvZnMvbmZzZC9uZnMzeGRyLmMKQEAgLTI3LDYgKzI3LDcgQEAgc3RhdGljIHUzMgluZnMzX2Z0eXBlc1tdID0gewogCU5GM1NPQ0ssIE5GM0JBRCwgIE5GM0xOSywgTkYzQkFELAogfTsKIAorCiAvKgogICogWERSIGZ1bmN0aW9ucyBmb3IgYmFzaWMgTkZTIHR5cGVzCiAgKi8KQEAgLTc1MSwxNCArNzUyLDE2IEBAIG5mczNzdmNfZW5jb2RlX3dyaXRlcmVzKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIF9fYmUzMiAqcCkKIHsKIAlzdHJ1Y3QgbmZzZDNfd3JpdGVyZXMgKnJlc3AgPSBycXN0cC0+cnFfcmVzcDsKIAlzdHJ1Y3QgbmZzZF9uZXQgKm5uID0gbmV0X2dlbmVyaWMoU1ZDX05FVChycXN0cCksIG5mc2RfbmV0X2lkKTsKKwlfX2JlMzIgdmVyZlsyXTsKIAogCXAgPSBlbmNvZGVfd2NjX2RhdGEocnFzdHAsIHAsICZyZXNwLT5maCk7CiAJaWYgKHJlc3AtPnN0YXR1cyA9PSAwKSB7CiAJCSpwKysgPSBodG9ubChyZXNwLT5jb3VudCk7CiAJCSpwKysgPSBodG9ubChyZXNwLT5jb21taXR0ZWQpOwogCQkvKiB1bmlxdWUgaWRlbnRpZmllciwgeTIwMzggb3ZlcmZsb3cgY2FuIGJlIGlnbm9yZWQgKi8KLQkJKnArKyA9IGh0b25sKCh1MzIpbm4tPm5mc3N2Y19ib290LnR2X3NlYyk7Ci0JCSpwKysgPSBodG9ubChubi0+bmZzc3ZjX2Jvb3QudHZfbnNlYyk7CisJCW5mc2RfY29weV9ib290X3ZlcmlmaWVyKHZlcmYsIG5uKTsKKwkJKnArKyA9IHZlcmZbMF07CisJCSpwKysgPSB2ZXJmWzFdOwogCX0KIAlyZXR1cm4geGRyX3Jlc3NpemVfY2hlY2socnFzdHAsIHApOwogfQpAQCAtMTEyNSwxMyArMTEyOCwxNSBAQCBuZnMzc3ZjX2VuY29kZV9jb21taXRyZXMoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgX19iZTMyICpwKQogewogCXN0cnVjdCBuZnNkM19jb21taXRyZXMgKnJlc3AgPSBycXN0cC0+cnFfcmVzcDsKIAlzdHJ1Y3QgbmZzZF9uZXQgKm5uID0gbmV0X2dlbmVyaWMoU1ZDX05FVChycXN0cCksIG5mc2RfbmV0X2lkKTsKKwlfX2JlMzIgdmVyZlsyXTsKIAogCXAgPSBlbmNvZGVfd2NjX2RhdGEocnFzdHAsIHAsICZyZXNwLT5maCk7CiAJLyogV3JpdGUgdmVyaWZpZXIgKi8KIAlpZiAocmVzcC0+c3RhdHVzID09IDApIHsKIAkJLyogdW5pcXVlIGlkZW50aWZpZXIsIHkyMDM4IG92ZXJmbG93IGNhbiBiZSBpZ25vcmVkICovCi0JCSpwKysgPSBodG9ubCgodTMyKW5uLT5uZnNzdmNfYm9vdC50dl9zZWMpOwotCQkqcCsrID0gaHRvbmwobm4tPm5mc3N2Y19ib290LnR2X25zZWMpOworCQluZnNkX2NvcHlfYm9vdF92ZXJpZmllcih2ZXJmLCBubik7CisJCSpwKysgPSB2ZXJmWzBdOworCQkqcCsrID0gdmVyZlsxXTsKIAl9CiAJcmV0dXJuIHhkcl9yZXNzaXplX2NoZWNrKHJxc3RwLCBwKTsKIH0KZGlmZiAtLWdpdCBhL2ZzL25mc2QvbmZzNGNhbGxiYWNrLmMgYi9mcy9uZnNkL25mczRjYWxsYmFjay5jCmluZGV4IDM5N2ViNzguLjUyNDExMTQgMTAwNjQ0Ci0tLSBhL2ZzL25mc2QvbmZzNGNhbGxiYWNrLmMKKysrIGIvZnMvbmZzZC9uZnM0Y2FsbGJhY2suYwpAQCAtNTEyLDExICs1MTIsOSBAQCBzdGF0aWMgaW50IG5mczRfeGRyX2RlY19jYl9yZWNhbGwoc3RydWN0IHJwY19ycXN0ICpycXN0cCwKIAlpZiAodW5saWtlbHkoc3RhdHVzKSkKIAkJcmV0dXJuIHN0YXR1czsKIAotCWlmIChjYiAhPSBOVUxMKSB7Ci0JCXN0YXR1cyA9IGRlY29kZV9jYl9zZXF1ZW5jZTRyZXMoeGRyLCBjYik7Ci0JCWlmICh1bmxpa2VseShzdGF0dXMgfHwgY2ItPmNiX3NlcV9zdGF0dXMpKQotCQkJcmV0dXJuIHN0YXR1czsKLQl9CisJc3RhdHVzID0gZGVjb2RlX2NiX3NlcXVlbmNlNHJlcyh4ZHIsIGNiKTsKKwlpZiAodW5saWtlbHkoc3RhdHVzIHx8IGNiLT5jYl9zZXFfc3RhdHVzKSkKKwkJcmV0dXJuIHN0YXR1czsKIAogCXJldHVybiBkZWNvZGVfY2Jfb3Bfc3RhdHVzKHhkciwgT1BfQ0JfUkVDQUxMLCAmY2ItPmNiX3N0YXR1cyk7CiB9CkBAIC02MDQsMTEgKzYwMiwxMCBAQCBzdGF0aWMgaW50IG5mczRfeGRyX2RlY19jYl9sYXlvdXQoc3RydWN0IHJwY19ycXN0ICpycXN0cCwKIAlpZiAodW5saWtlbHkoc3RhdHVzKSkKIAkJcmV0dXJuIHN0YXR1czsKIAotCWlmIChjYikgewotCQlzdGF0dXMgPSBkZWNvZGVfY2Jfc2VxdWVuY2U0cmVzKHhkciwgY2IpOwotCQlpZiAodW5saWtlbHkoc3RhdHVzIHx8IGNiLT5jYl9zZXFfc3RhdHVzKSkKLQkJCXJldHVybiBzdGF0dXM7Ci0JfQorCXN0YXR1cyA9IGRlY29kZV9jYl9zZXF1ZW5jZTRyZXMoeGRyLCBjYik7CisJaWYgKHVubGlrZWx5KHN0YXR1cyB8fCBjYi0+Y2Jfc2VxX3N0YXR1cykpCisJCXJldHVybiBzdGF0dXM7CisKIAlyZXR1cm4gZGVjb2RlX2NiX29wX3N0YXR1cyh4ZHIsIE9QX0NCX0xBWU9VVFJFQ0FMTCwgJmNiLT5jYl9zdGF0dXMpOwogfQogI2VuZGlmIC8qIENPTkZJR19ORlNEX1BORlMgKi8KQEAgLTY2MywxMSArNjYwLDEwIEBAIHN0YXRpYyBpbnQgbmZzNF94ZHJfZGVjX2NiX25vdGlmeV9sb2NrKHN0cnVjdCBycGNfcnFzdCAqcnFzdHAsCiAJaWYgKHVubGlrZWx5KHN0YXR1cykpCiAJCXJldHVybiBzdGF0dXM7CiAKLQlpZiAoY2IpIHsKLQkJc3RhdHVzID0gZGVjb2RlX2NiX3NlcXVlbmNlNHJlcyh4ZHIsIGNiKTsKLQkJaWYgKHVubGlrZWx5KHN0YXR1cyB8fCBjYi0+Y2Jfc2VxX3N0YXR1cykpCi0JCQlyZXR1cm4gc3RhdHVzOwotCX0KKwlzdGF0dXMgPSBkZWNvZGVfY2Jfc2VxdWVuY2U0cmVzKHhkciwgY2IpOworCWlmICh1bmxpa2VseShzdGF0dXMgfHwgY2ItPmNiX3NlcV9zdGF0dXMpKQorCQlyZXR1cm4gc3RhdHVzOworCiAJcmV0dXJuIGRlY29kZV9jYl9vcF9zdGF0dXMoeGRyLCBPUF9DQl9OT1RJRllfTE9DSywgJmNiLT5jYl9zdGF0dXMpOwogfQogCkBAIC03NTksMTEgKzc1NSwxMCBAQCBzdGF0aWMgaW50IG5mczRfeGRyX2RlY19jYl9vZmZsb2FkKHN0cnVjdCBycGNfcnFzdCAqcnFzdHAsCiAJaWYgKHVubGlrZWx5KHN0YXR1cykpCiAJCXJldHVybiBzdGF0dXM7CiAKLQlpZiAoY2IpIHsKLQkJc3RhdHVzID0gZGVjb2RlX2NiX3NlcXVlbmNlNHJlcyh4ZHIsIGNiKTsKLQkJaWYgKHVubGlrZWx5KHN0YXR1cyB8fCBjYi0+Y2Jfc2VxX3N0YXR1cykpCi0JCQlyZXR1cm4gc3RhdHVzOwotCX0KKwlzdGF0dXMgPSBkZWNvZGVfY2Jfc2VxdWVuY2U0cmVzKHhkciwgY2IpOworCWlmICh1bmxpa2VseShzdGF0dXMgfHwgY2ItPmNiX3NlcV9zdGF0dXMpKQorCQlyZXR1cm4gc3RhdHVzOworCiAJcmV0dXJuIGRlY29kZV9jYl9vcF9zdGF0dXMoeGRyLCBPUF9DQl9PRkZMT0FELCAmY2ItPmNiX3N0YXR1cyk7CiB9CiAvKgpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnM0bGF5b3V0cy5jIGIvZnMvbmZzZC9uZnM0bGF5b3V0cy5jCmluZGV4IGE3OWUyNGIuLjI2ODFjNzAgMTAwNjQ0Ci0tLSBhL2ZzL25mc2QvbmZzNGxheW91dHMuYworKysgYi9mcy9uZnNkL25mczRsYXlvdXRzLmMKQEAgLTE2OSw4ICsxNjksOCBAQCBuZnNkNF9mcmVlX2xheW91dF9zdGF0ZWlkKHN0cnVjdCBuZnM0X3N0aWQgKnN0aWQpCiAJc3Bpbl91bmxvY2soJmZwLT5maV9sb2NrKTsKIAogCWlmICghbmZzZDRfbGF5b3V0X29wc1tscy0+bHNfbGF5b3V0X3R5cGVdLT5kaXNhYmxlX3JlY2FsbHMpCi0JCXZmc19zZXRsZWFzZShscy0+bHNfZmlsZSwgRl9VTkxDSywgTlVMTCwgKHZvaWQgKiopJmxzKTsKLQlmcHV0KGxzLT5sc19maWxlKTsKKwkJdmZzX3NldGxlYXNlKGxzLT5sc19maWxlLT5uZl9maWxlLCBGX1VOTENLLCBOVUxMLCAodm9pZCAqKikmbHMpOworCW5mc2RfZmlsZV9wdXQobHMtPmxzX2ZpbGUpOwogCiAJaWYgKGxzLT5sc19yZWNhbGxlZCkKIAkJYXRvbWljX2RlYygmbHMtPmxzX3N0aWQuc2NfZmlsZS0+ZmlfbG9fcmVjYWxscyk7CkBAIC0xOTcsNyArMTk3LDcgQEAgbmZzZDRfbGF5b3V0X3NldGxlYXNlKHN0cnVjdCBuZnM0X2xheW91dF9zdGF0ZWlkICpscykKIAlmbC0+ZmxfZW5kID0gT0ZGU0VUX01BWDsKIAlmbC0+Zmxfb3duZXIgPSBsczsKIAlmbC0+ZmxfcGlkID0gY3VycmVudC0+dGdpZDsKLQlmbC0+ZmxfZmlsZSA9IGxzLT5sc19maWxlOworCWZsLT5mbF9maWxlID0gbHMtPmxzX2ZpbGUtPm5mX2ZpbGU7CiAKIAlzdGF0dXMgPSB2ZnNfc2V0bGVhc2UoZmwtPmZsX2ZpbGUsIGZsLT5mbF90eXBlLCAmZmwsIE5VTEwpOwogCWlmIChzdGF0dXMpIHsKQEAgLTIzNiwxMyArMjM2LDEzIEBAIG5mc2Q0X2FsbG9jX2xheW91dF9zdGF0ZWlkKHN0cnVjdCBuZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLAogCQkJTkZTUFJPQzRfQ0xOVF9DQl9MQVlPVVQpOwogCiAJaWYgKHBhcmVudC0+c2NfdHlwZSA9PSBORlM0X0RFTEVHX1NUSUQpCi0JCWxzLT5sc19maWxlID0gZ2V0X2ZpbGUoZnAtPmZpX2RlbGVnX2ZpbGUpOworCQlscy0+bHNfZmlsZSA9IG5mc2RfZmlsZV9nZXQoZnAtPmZpX2RlbGVnX2ZpbGUpOwogCWVsc2UKIAkJbHMtPmxzX2ZpbGUgPSBmaW5kX2FueV9maWxlKGZwKTsKIAlCVUdfT04oIWxzLT5sc19maWxlKTsKIAogCWlmIChuZnNkNF9sYXlvdXRfc2V0bGVhc2UobHMpKSB7Ci0JCWZwdXQobHMtPmxzX2ZpbGUpOworCQluZnNkX2ZpbGVfcHV0KGxzLT5sc19maWxlKTsKIAkJcHV0X25mczRfZmlsZShmcCk7CiAJCWttZW1fY2FjaGVfZnJlZShuZnM0X2xheW91dF9zdGF0ZWlkX2NhY2hlLCBscyk7CiAJCXJldHVybiBOVUxMOwpAQCAtNjI2LDcgKzYyNiw3IEBAIG5mc2Q0X2NiX2xheW91dF9mYWlsKHN0cnVjdCBuZnM0X2xheW91dF9zdGF0ZWlkICpscykKIAogCWFyZ3ZbMF0gPSAoY2hhciAqKW5mc2RfcmVjYWxsX2ZhaWxlZDsKIAlhcmd2WzFdID0gYWRkcl9zdHI7Ci0JYXJndlsyXSA9IGxzLT5sc19maWxlLT5mX3BhdGgubW50LT5tbnRfc2ItPnNfaWQ7CisJYXJndlsyXSA9IGxzLT5sc19maWxlLT5uZl9maWxlLT5mX3BhdGgubW50LT5tbnRfc2ItPnNfaWQ7CiAJYXJndlszXSA9IE5VTEw7CiAKIAllcnJvciA9IGNhbGxfdXNlcm1vZGVoZWxwZXIobmZzZF9yZWNhbGxfZmFpbGVkLCBhcmd2LCBlbnZwLApkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnM0cHJvYy5jIGIvZnMvbmZzZC9uZnM0cHJvYy5jCmluZGV4IDhiZWRhOTkuLjRlM2U3N2IgMTAwNjQ0Ci0tLSBhL2ZzL25mc2QvbmZzNHByb2MuYworKysgYi9mcy9uZnNkL25mczRwcm9jLmMKQEAgLTU2OCwxNyArNTY4LDExIEBAIG5mc2Q0X2FjY2VzcyhzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAogc3RhdGljIHZvaWQgZ2VuX2Jvb3RfdmVyaWZpZXIobmZzNF92ZXJpZmllciAqdmVyaWZpZXIsIHN0cnVjdCBuZXQgKm5ldCkKIHsKLQlfX2JlMzIgdmVyZlsyXTsKLQlzdHJ1Y3QgbmZzZF9uZXQgKm5uID0gbmV0X2dlbmVyaWMobmV0LCBuZnNkX25ldF9pZCk7CisJX19iZTMyICp2ZXJmID0gKF9fYmUzMiAqKXZlcmlmaWVyLT5kYXRhOwogCi0JLyoKLQkgKiBUaGlzIGlzIG9wYXF1ZSB0byBjbGllbnQsIHNvIG5vIG5lZWQgdG8gYnl0ZS1zd2FwLiBVc2UKLQkgKiBfX2ZvcmNlIHRvIGtlZXAgc3BhcnNlIGhhcHB5LiB5MjAzOCB0aW1lX3Qgb3ZlcmZsb3cgaXMKLQkgKiBpcnJlbGV2YW50IGluIHRoaXMgdXNhZ2UuCi0JICovCi0JdmVyZlswXSA9IChfX2ZvcmNlIF9fYmUzMilubi0+bmZzc3ZjX2Jvb3QudHZfc2VjOwotCXZlcmZbMV0gPSAoX19mb3JjZSBfX2JlMzIpbm4tPm5mc3N2Y19ib290LnR2X25zZWM7Ci0JbWVtY3B5KHZlcmlmaWVyLT5kYXRhLCB2ZXJmLCBzaXplb2YodmVyaWZpZXItPmRhdGEpKTsKKwlCVUlMRF9CVUdfT04oMipzaXplb2YoKnZlcmYpICE9IHNpemVvZih2ZXJpZmllci0+ZGF0YSkpOworCisJbmZzZF9jb3B5X2Jvb3RfdmVyaWZpZXIodmVyZiwgbmV0X2dlbmVyaWMobmV0LCBuZnNkX25ldF9pZCkpOwogfQogCiBzdGF0aWMgX19iZTMyCkBAIC03NjEsNyArNzU1LDcgQEAgbmZzZDRfcmVhZChzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAlzdHJ1Y3QgbmZzZDRfcmVhZCAqcmVhZCA9ICZ1LT5yZWFkOwogCV9fYmUzMiBzdGF0dXM7CiAKLQlyZWFkLT5yZF9maWxwID0gTlVMTDsKKwlyZWFkLT5yZF9uZiA9IE5VTEw7CiAJaWYgKHJlYWQtPnJkX29mZnNldCA+PSBPRkZTRVRfTUFYKQogCQlyZXR1cm4gbmZzZXJyX2ludmFsOwogCkBAIC03ODIsNyArNzc2LDcgQEAgbmZzZDRfcmVhZChzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAkvKiBjaGVjayBzdGF0ZWlkICovCiAJc3RhdHVzID0gbmZzNF9wcmVwcm9jZXNzX3N0YXRlaWRfb3AocnFzdHAsIGNzdGF0ZSwgJmNzdGF0ZS0+Y3VycmVudF9maCwKIAkJCQkJJnJlYWQtPnJkX3N0YXRlaWQsIFJEX1NUQVRFLAotCQkJCQkmcmVhZC0+cmRfZmlscCwgJnJlYWQtPnJkX3RtcF9maWxlKTsKKwkJCQkJJnJlYWQtPnJkX25mKTsKIAlpZiAoc3RhdHVzKSB7CiAJCWRwcmludGsoIk5GU0Q6IG5mc2Q0X3JlYWQ6IGNvdWxkbid0IHByb2Nlc3Mgc3RhdGVpZCFcbiIpOwogCQlnb3RvIG91dDsKQEAgLTc5OCw4ICs3OTIsOCBAQCBuZnNkNF9yZWFkKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLAogc3RhdGljIHZvaWQKIG5mc2Q0X3JlYWRfcmVsZWFzZSh1bmlvbiBuZnNkNF9vcF91ICp1KQogewotCWlmICh1LT5yZWFkLnJkX2ZpbHApCi0JCWZwdXQodS0+cmVhZC5yZF9maWxwKTsKKwlpZiAodS0+cmVhZC5yZF9uZikKKwkJbmZzZF9maWxlX3B1dCh1LT5yZWFkLnJkX25mKTsKIAl0cmFjZV9uZnNkX3JlYWRfZG9uZSh1LT5yZWFkLnJkX3Jxc3RwLCB1LT5yZWFkLnJkX2ZocCwKIAkJCSAgICAgdS0+cmVhZC5yZF9vZmZzZXQsIHUtPnJlYWQucmRfbGVuZ3RoKTsKIH0KQEAgLTk1NCw3ICs5NDgsNyBAQCBuZnNkNF9zZXRhdHRyKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLAogCWlmIChzZXRhdHRyLT5zYV9pYXR0ci5pYV92YWxpZCAmIEFUVFJfU0laRSkgewogCQlzdGF0dXMgPSBuZnM0X3ByZXByb2Nlc3Nfc3RhdGVpZF9vcChycXN0cCwgY3N0YXRlLAogCQkJCSZjc3RhdGUtPmN1cnJlbnRfZmgsICZzZXRhdHRyLT5zYV9zdGF0ZWlkLAotCQkJCVdSX1NUQVRFLCBOVUxMLCBOVUxMKTsKKwkJCQlXUl9TVEFURSwgTlVMTCk7CiAJCWlmIChzdGF0dXMpIHsKIAkJCWRwcmludGsoIk5GU0Q6IG5mc2Q0X3NldGF0dHI6IGNvdWxkbid0IHByb2Nlc3Mgc3RhdGVpZCFcbiIpOwogCQkJcmV0dXJuIHN0YXR1czsKQEAgLTk5Myw3ICs5ODcsNyBAQCBuZnNkNF93cml0ZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIHsKIAlzdHJ1Y3QgbmZzZDRfd3JpdGUgKndyaXRlID0gJnUtPndyaXRlOwogCXN0YXRlaWRfdCAqc3RhdGVpZCA9ICZ3cml0ZS0+d3Jfc3RhdGVpZDsKLQlzdHJ1Y3QgZmlsZSAqZmlscCA9IE5VTEw7CisJc3RydWN0IG5mc2RfZmlsZSAqbmYgPSBOVUxMOwogCV9fYmUzMiBzdGF0dXMgPSBuZnNfb2s7CiAJdW5zaWduZWQgbG9uZyBjbnQ7CiAJaW50IG52ZWNzOwpAQCAtMTAwNSw3ICs5OTksNyBAQCBuZnNkNF93cml0ZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAl0cmFjZV9uZnNkX3dyaXRlX3N0YXJ0KHJxc3RwLCAmY3N0YXRlLT5jdXJyZW50X2ZoLAogCQkJICAgICAgIHdyaXRlLT53cl9vZmZzZXQsIGNudCk7CiAJc3RhdHVzID0gbmZzNF9wcmVwcm9jZXNzX3N0YXRlaWRfb3AocnFzdHAsIGNzdGF0ZSwgJmNzdGF0ZS0+Y3VycmVudF9maCwKLQkJCQkJCXN0YXRlaWQsIFdSX1NUQVRFLCAmZmlscCwgTlVMTCk7CisJCQkJCQlzdGF0ZWlkLCBXUl9TVEFURSwgJm5mKTsKIAlpZiAoc3RhdHVzKSB7CiAJCWRwcmludGsoIk5GU0Q6IG5mc2Q0X3dyaXRlOiBjb3VsZG4ndCBwcm9jZXNzIHN0YXRlaWQhXG4iKTsKIAkJcmV0dXJuIHN0YXR1czsKQEAgLTEwMTgsMTAgKzEwMTIsMTAgQEAgbmZzZDRfd3JpdGUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsCiAJCQkJICAgICAgJndyaXRlLT53cl9oZWFkLCB3cml0ZS0+d3JfYnVmbGVuKTsKIAlXQVJOX09OX09OQ0UobnZlY3MgPiBBUlJBWV9TSVpFKHJxc3RwLT5ycV92ZWMpKTsKIAotCXN0YXR1cyA9IG5mc2RfdmZzX3dyaXRlKHJxc3RwLCAmY3N0YXRlLT5jdXJyZW50X2ZoLCBmaWxwLAorCXN0YXR1cyA9IG5mc2RfdmZzX3dyaXRlKHJxc3RwLCAmY3N0YXRlLT5jdXJyZW50X2ZoLCBuZi0+bmZfZmlsZSwKIAkJCQl3cml0ZS0+d3Jfb2Zmc2V0LCBycXN0cC0+cnFfdmVjLCBudmVjcywgJmNudCwKIAkJCQl3cml0ZS0+d3JfaG93X3dyaXR0ZW4pOwotCWZwdXQoZmlscCk7CisJbmZzZF9maWxlX3B1dChuZik7CiAKIAl3cml0ZS0+d3JfYnl0ZXNfd3JpdHRlbiA9IGNudDsKIAl0cmFjZV9uZnNkX3dyaXRlX2RvbmUocnFzdHAsICZjc3RhdGUtPmN1cnJlbnRfZmgsCkBAIC0xMDMxLDggKzEwMjUsOCBAQCBuZnNkNF93cml0ZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAogc3RhdGljIF9fYmUzMgogbmZzZDRfdmVyaWZ5X2NvcHkoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsCi0JCSAgc3RhdGVpZF90ICpzcmNfc3RhdGVpZCwgc3RydWN0IGZpbGUgKipzcmMsCi0JCSAgc3RhdGVpZF90ICpkc3Rfc3RhdGVpZCwgc3RydWN0IGZpbGUgKipkc3QpCisJCSAgc3RhdGVpZF90ICpzcmNfc3RhdGVpZCwgc3RydWN0IG5mc2RfZmlsZSAqKnNyYywKKwkJICBzdGF0ZWlkX3QgKmRzdF9zdGF0ZWlkLCBzdHJ1Y3QgbmZzZF9maWxlICoqZHN0KQogewogCV9fYmUzMiBzdGF0dXM7CiAKQEAgLTEwNDAsMjIgKzEwMzQsMjIgQEAgbmZzZDRfdmVyaWZ5X2NvcHkoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsCiAJCXJldHVybiBuZnNlcnJfbm9maWxlaGFuZGxlOwogCiAJc3RhdHVzID0gbmZzNF9wcmVwcm9jZXNzX3N0YXRlaWRfb3AocnFzdHAsIGNzdGF0ZSwgJmNzdGF0ZS0+c2F2ZV9maCwKLQkJCQkJICAgIHNyY19zdGF0ZWlkLCBSRF9TVEFURSwgc3JjLCBOVUxMKTsKKwkJCQkJICAgIHNyY19zdGF0ZWlkLCBSRF9TVEFURSwgc3JjKTsKIAlpZiAoc3RhdHVzKSB7CiAJCWRwcmludGsoIk5GU0Q6ICVzOiBjb3VsZG4ndCBwcm9jZXNzIHNyYyBzdGF0ZWlkIVxuIiwgX19mdW5jX18pOwogCQlnb3RvIG91dDsKIAl9CiAKIAlzdGF0dXMgPSBuZnM0X3ByZXByb2Nlc3Nfc3RhdGVpZF9vcChycXN0cCwgY3N0YXRlLCAmY3N0YXRlLT5jdXJyZW50X2ZoLAotCQkJCQkgICAgZHN0X3N0YXRlaWQsIFdSX1NUQVRFLCBkc3QsIE5VTEwpOworCQkJCQkgICAgZHN0X3N0YXRlaWQsIFdSX1NUQVRFLCBkc3QpOwogCWlmIChzdGF0dXMpIHsKIAkJZHByaW50aygiTkZTRDogJXM6IGNvdWxkbid0IHByb2Nlc3MgZHN0IHN0YXRlaWQhXG4iLCBfX2Z1bmNfXyk7CiAJCWdvdG8gb3V0X3B1dF9zcmM7CiAJfQogCiAJLyogZml4IHVwIGZvciBORlMtc3BlY2lmaWMgZXJyb3IgY29kZSAqLwotCWlmICghU19JU1JFRyhmaWxlX2lub2RlKCpzcmMpLT5pX21vZGUpIHx8Ci0JICAgICFTX0lTUkVHKGZpbGVfaW5vZGUoKmRzdCktPmlfbW9kZSkpIHsKKwlpZiAoIVNfSVNSRUcoZmlsZV9pbm9kZSgoKnNyYyktPm5mX2ZpbGUpLT5pX21vZGUpIHx8CisJICAgICFTX0lTUkVHKGZpbGVfaW5vZGUoKCpkc3QpLT5uZl9maWxlKS0+aV9tb2RlKSkgewogCQlzdGF0dXMgPSBuZnNlcnJfd3JvbmdfdHlwZTsKIAkJZ290byBvdXRfcHV0X2RzdDsKIAl9CkBAIC0xMDYzLDkgKzEwNTcsOSBAQCBuZnNkNF92ZXJpZnlfY29weShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIG91dDoKIAlyZXR1cm4gc3RhdHVzOwogb3V0X3B1dF9kc3Q6Ci0JZnB1dCgqZHN0KTsKKwluZnNkX2ZpbGVfcHV0KCpkc3QpOwogb3V0X3B1dF9zcmM6Ci0JZnB1dCgqc3JjKTsKKwluZnNkX2ZpbGVfcHV0KCpzcmMpOwogCWdvdG8gb3V0OwogfQogCkBAIC0xMDc0LDcgKzEwNjgsNyBAQCBuZnNkNF9jbG9uZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAkJdW5pb24gbmZzZDRfb3BfdSAqdSkKIHsKIAlzdHJ1Y3QgbmZzZDRfY2xvbmUgKmNsb25lID0gJnUtPmNsb25lOwotCXN0cnVjdCBmaWxlICpzcmMsICpkc3Q7CisJc3RydWN0IG5mc2RfZmlsZSAqc3JjLCAqZHN0OwogCV9fYmUzMiBzdGF0dXM7CiAKIAlzdGF0dXMgPSBuZnNkNF92ZXJpZnlfY29weShycXN0cCwgY3N0YXRlLCAmY2xvbmUtPmNsX3NyY19zdGF0ZWlkLCAmc3JjLApAQCAtMTA4MiwxMSArMTA3NiwxMSBAQCBuZnNkNF9jbG9uZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAlpZiAoc3RhdHVzKQogCQlnb3RvIG91dDsKIAotCXN0YXR1cyA9IG5mc2Q0X2Nsb25lX2ZpbGVfcmFuZ2Uoc3JjLCBjbG9uZS0+Y2xfc3JjX3BvcywKLQkJCWRzdCwgY2xvbmUtPmNsX2RzdF9wb3MsIGNsb25lLT5jbF9jb3VudCk7CisJc3RhdHVzID0gbmZzZDRfY2xvbmVfZmlsZV9yYW5nZShzcmMtPm5mX2ZpbGUsIGNsb25lLT5jbF9zcmNfcG9zLAorCQkJZHN0LT5uZl9maWxlLCBjbG9uZS0+Y2xfZHN0X3BvcywgY2xvbmUtPmNsX2NvdW50KTsKIAotCWZwdXQoZHN0KTsKLQlmcHV0KHNyYyk7CisJbmZzZF9maWxlX3B1dChkc3QpOworCW5mc2RfZmlsZV9wdXQoc3JjKTsKIG91dDoKIAlyZXR1cm4gc3RhdHVzOwogfQpAQCAtMTE3Niw4ICsxMTcwLDkgQEAgc3RhdGljIHNzaXplX3QgX25mc2RfY29weV9maWxlX3JhbmdlKHN0cnVjdCBuZnNkNF9jb3B5ICpjb3B5KQogCWRvIHsKIAkJaWYgKGt0aHJlYWRfc2hvdWxkX3N0b3AoKSkKIAkJCWJyZWFrOwotCQlieXRlc19jb3BpZWQgPSBuZnNkX2NvcHlfZmlsZV9yYW5nZShjb3B5LT5maWxlX3NyYywgc3JjX3BvcywKLQkJCQljb3B5LT5maWxlX2RzdCwgZHN0X3BvcywgYnl0ZXNfdG90YWwpOworCQlieXRlc19jb3BpZWQgPSBuZnNkX2NvcHlfZmlsZV9yYW5nZShjb3B5LT5uZl9zcmMtPm5mX2ZpbGUsCisJCQkJc3JjX3BvcywgY29weS0+bmZfZHN0LT5uZl9maWxlLCBkc3RfcG9zLAorCQkJCWJ5dGVzX3RvdGFsKTsKIAkJaWYgKGJ5dGVzX2NvcGllZCA8PSAwKQogCQkJYnJlYWs7CiAJCWJ5dGVzX3RvdGFsIC09IGJ5dGVzX2NvcGllZDsKQEAgLTEyMDQsOCArMTE5OSw4IEBAIHN0YXRpYyBfX2JlMzIgbmZzZDRfZG9fY29weShzdHJ1Y3QgbmZzZDRfY29weSAqY29weSwgYm9vbCBzeW5jKQogCQlzdGF0dXMgPSBuZnNfb2s7CiAJfQogCi0JZnB1dChjb3B5LT5maWxlX3NyYyk7Ci0JZnB1dChjb3B5LT5maWxlX2RzdCk7CisJbmZzZF9maWxlX3B1dChjb3B5LT5uZl9zcmMpOworCW5mc2RfZmlsZV9wdXQoY29weS0+bmZfZHN0KTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC0xMjE4LDE2ICsxMjEzLDE2IEBAIHN0YXRpYyB2b2lkIGR1cF9jb3B5X2ZpZWxkcyhzdHJ1Y3QgbmZzZDRfY29weSAqc3JjLCBzdHJ1Y3QgbmZzZDRfY29weSAqZHN0KQogCW1lbWNweSgmZHN0LT5jcF9yZXMsICZzcmMtPmNwX3Jlcywgc2l6ZW9mKHNyYy0+Y3BfcmVzKSk7CiAJbWVtY3B5KCZkc3QtPmZoLCAmc3JjLT5maCwgc2l6ZW9mKHNyYy0+ZmgpKTsKIAlkc3QtPmNwX2NscCA9IHNyYy0+Y3BfY2xwOwotCWRzdC0+ZmlsZV9kc3QgPSBnZXRfZmlsZShzcmMtPmZpbGVfZHN0KTsKLQlkc3QtPmZpbGVfc3JjID0gZ2V0X2ZpbGUoc3JjLT5maWxlX3NyYyk7CisJZHN0LT5uZl9kc3QgPSBuZnNkX2ZpbGVfZ2V0KHNyYy0+bmZfZHN0KTsKKwlkc3QtPm5mX3NyYyA9IG5mc2RfZmlsZV9nZXQoc3JjLT5uZl9zcmMpOwogCW1lbWNweSgmZHN0LT5jcF9zdGF0ZWlkLCAmc3JjLT5jcF9zdGF0ZWlkLCBzaXplb2Yoc3JjLT5jcF9zdGF0ZWlkKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFudXBfYXN5bmNfY29weShzdHJ1Y3QgbmZzZDRfY29weSAqY29weSkKIHsKIAluZnM0X2ZyZWVfY3Bfc3RhdGUoY29weSk7Ci0JZnB1dChjb3B5LT5maWxlX2RzdCk7Ci0JZnB1dChjb3B5LT5maWxlX3NyYyk7CisJbmZzZF9maWxlX3B1dChjb3B5LT5uZl9kc3QpOworCW5mc2RfZmlsZV9wdXQoY29weS0+bmZfc3JjKTsKIAlzcGluX2xvY2soJmNvcHktPmNwX2NscC0+YXN5bmNfbG9jayk7CiAJbGlzdF9kZWwoJmNvcHktPmNvcGllcyk7CiAJc3Bpbl91bmxvY2soJmNvcHktPmNwX2NscC0+YXN5bmNfbG9jayk7CkBAIC0xMjY0LDggKzEyNTksOCBAQCBuZnNkNF9jb3B5KHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLAogCXN0cnVjdCBuZnNkNF9jb3B5ICphc3luY19jb3B5ID0gTlVMTDsKIAogCXN0YXR1cyA9IG5mc2Q0X3ZlcmlmeV9jb3B5KHJxc3RwLCBjc3RhdGUsICZjb3B5LT5jcF9zcmNfc3RhdGVpZCwKLQkJCQkgICAmY29weS0+ZmlsZV9zcmMsICZjb3B5LT5jcF9kc3Rfc3RhdGVpZCwKLQkJCQkgICAmY29weS0+ZmlsZV9kc3QpOworCQkJCSAgICZjb3B5LT5uZl9zcmMsICZjb3B5LT5jcF9kc3Rfc3RhdGVpZCwKKwkJCQkgICAmY29weS0+bmZfZHN0KTsKIAlpZiAoc3RhdHVzKQogCQlnb3RvIG91dDsKIApAQCAtMTM0NywyMSArMTM0MiwyMSBAQCBuZnNkNF9mYWxsb2NhdGUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsCiAJCXN0cnVjdCBuZnNkNF9mYWxsb2NhdGUgKmZhbGxvY2F0ZSwgaW50IGZsYWdzKQogewogCV9fYmUzMiBzdGF0dXM7Ci0Jc3RydWN0IGZpbGUgKmZpbGU7CisJc3RydWN0IG5mc2RfZmlsZSAqbmY7CiAKIAlzdGF0dXMgPSBuZnM0X3ByZXByb2Nlc3Nfc3RhdGVpZF9vcChycXN0cCwgY3N0YXRlLCAmY3N0YXRlLT5jdXJyZW50X2ZoLAogCQkJCQkgICAgJmZhbGxvY2F0ZS0+ZmFsbG9jX3N0YXRlaWQsCi0JCQkJCSAgICBXUl9TVEFURSwgJmZpbGUsIE5VTEwpOworCQkJCQkgICAgV1JfU1RBVEUsICZuZik7CiAJaWYgKHN0YXR1cyAhPSBuZnNfb2spIHsKIAkJZHByaW50aygiTkZTRDogbmZzZDRfZmFsbG9jYXRlOiBjb3VsZG4ndCBwcm9jZXNzIHN0YXRlaWQhXG4iKTsKIAkJcmV0dXJuIHN0YXR1czsKIAl9CiAKLQlzdGF0dXMgPSBuZnNkNF92ZnNfZmFsbG9jYXRlKHJxc3RwLCAmY3N0YXRlLT5jdXJyZW50X2ZoLCBmaWxlLAorCXN0YXR1cyA9IG5mc2Q0X3Zmc19mYWxsb2NhdGUocnFzdHAsICZjc3RhdGUtPmN1cnJlbnRfZmgsIG5mLT5uZl9maWxlLAogCQkJCSAgICAgZmFsbG9jYXRlLT5mYWxsb2Nfb2Zmc2V0LAogCQkJCSAgICAgZmFsbG9jYXRlLT5mYWxsb2NfbGVuZ3RoLAogCQkJCSAgICAgZmxhZ3MpOwotCWZwdXQoZmlsZSk7CisJbmZzZF9maWxlX3B1dChuZik7CiAJcmV0dXJuIHN0YXR1czsKIH0KIHN0YXRpYyBfX2JlMzIKQEAgLTE0MDYsMTEgKzE0MDEsMTEgQEAgbmZzZDRfc2VlayhzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAlzdHJ1Y3QgbmZzZDRfc2VlayAqc2VlayA9ICZ1LT5zZWVrOwogCWludCB3aGVuY2U7CiAJX19iZTMyIHN0YXR1czsKLQlzdHJ1Y3QgZmlsZSAqZmlsZTsKKwlzdHJ1Y3QgbmZzZF9maWxlICpuZjsKIAogCXN0YXR1cyA9IG5mczRfcHJlcHJvY2Vzc19zdGF0ZWlkX29wKHJxc3RwLCBjc3RhdGUsICZjc3RhdGUtPmN1cnJlbnRfZmgsCiAJCQkJCSAgICAmc2Vlay0+c2Vla19zdGF0ZWlkLAotCQkJCQkgICAgUkRfU1RBVEUsICZmaWxlLCBOVUxMKTsKKwkJCQkJICAgIFJEX1NUQVRFLCAmbmYpOwogCWlmIChzdGF0dXMpIHsKIAkJZHByaW50aygiTkZTRDogbmZzZDRfc2VlazogY291bGRuJ3QgcHJvY2VzcyBzdGF0ZWlkIVxuIik7CiAJCXJldHVybiBzdGF0dXM7CkBAIC0xNDMyLDE0ICsxNDI3LDE0IEBAIG5mc2Q0X3NlZWsoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsCiAJICogTm90ZTogIFRoaXMgY2FsbCBkb2VzIGNoYW5nZSBmaWxlLT5mX3BvcywgYnV0IG5vdGhpbmcgaW4gTkZTRAogCSAqICAgICAgICBzaG91bGQgZXZlciBmaWxlLT5mX3Bvcy4KIAkgKi8KLQlzZWVrLT5zZWVrX3BvcyA9IHZmc19sbHNlZWsoZmlsZSwgc2Vlay0+c2Vla19vZmZzZXQsIHdoZW5jZSk7CisJc2Vlay0+c2Vla19wb3MgPSB2ZnNfbGxzZWVrKG5mLT5uZl9maWxlLCBzZWVrLT5zZWVrX29mZnNldCwgd2hlbmNlKTsKIAlpZiAoc2Vlay0+c2Vla19wb3MgPCAwKQogCQlzdGF0dXMgPSBuZnNlcnJubyhzZWVrLT5zZWVrX3Bvcyk7Ci0JZWxzZSBpZiAoc2Vlay0+c2Vla19wb3MgPj0gaV9zaXplX3JlYWQoZmlsZV9pbm9kZShmaWxlKSkpCisJZWxzZSBpZiAoc2Vlay0+c2Vla19wb3MgPj0gaV9zaXplX3JlYWQoZmlsZV9pbm9kZShuZi0+bmZfZmlsZSkpKQogCQlzZWVrLT5zZWVrX2VvZiA9IHRydWU7CiAKIG91dDoKLQlmcHV0KGZpbGUpOworCW5mc2RfZmlsZV9wdXQobmYpOwogCXJldHVybiBzdGF0dXM7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL25mc2QvbmZzNHJlY292ZXIuYyBiL2ZzL25mc2QvbmZzNHJlY292ZXIuYwppbmRleCA4NzY3OTU1Li5jZGM3NWFkIDEwMDY0NAotLS0gYS9mcy9uZnNkL25mczRyZWNvdmVyLmMKKysrIGIvZnMvbmZzZC9uZnM0cmVjb3Zlci5jCkBAIC01OSw4ICs1OSwxMyBAQCBzdHJ1Y3QgbmZzZDRfY2xpZW50X3RyYWNraW5nX29wcyB7CiAJdm9pZCAoKnJlbW92ZSkoc3RydWN0IG5mczRfY2xpZW50ICopOwogCWludCAoKmNoZWNrKShzdHJ1Y3QgbmZzNF9jbGllbnQgKik7CiAJdm9pZCAoKmdyYWNlX2RvbmUpKHN0cnVjdCBuZnNkX25ldCAqKTsKKwl1aW50OF90IHZlcnNpb247CisJc2l6ZV90IG1zZ2xlbjsKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbmZzZDRfY2xpZW50X3RyYWNraW5nX29wcyBuZnNkNF9jbGRfdHJhY2tpbmdfb3BzOworc3RhdGljIGNvbnN0IHN0cnVjdCBuZnNkNF9jbGllbnRfdHJhY2tpbmdfb3BzIG5mc2Q0X2NsZF90cmFja2luZ19vcHNfdjI7CisKIC8qIEdsb2JhbHMgKi8KIHN0YXRpYyBjaGFyIHVzZXJfcmVjb3ZlcnlfZGlybmFtZVtQQVRIX01BWF0gPSAiL3Zhci9saWIvbmZzL3Y0cmVjb3ZlcnkiOwogCkBAIC0xNzMsNiArMTc4LDcgQEAgX19uZnNkNF9jcmVhdGVfcmVjbGFpbV9yZWNvcmRfZ3JhY2Uoc3RydWN0IG5mczRfY2xpZW50ICpjbHAsCiAJCWNvbnN0IGNoYXIgKmRuYW1lLCBpbnQgbGVuLCBzdHJ1Y3QgbmZzZF9uZXQgKm5uKQogewogCXN0cnVjdCB4ZHJfbmV0b2JqIG5hbWU7CisJc3RydWN0IHhkcl9uZXRvYmogcHJpbmNoYXNoID0geyAubGVuID0gMCwgLmRhdGEgPSBOVUxMIH07CiAJc3RydWN0IG5mczRfY2xpZW50X3JlY2xhaW0gKmNycDsKIAogCW5hbWUuZGF0YSA9IGttZW1kdXAoZG5hbWUsIGxlbiwgR0ZQX0tFUk5FTCk7CkBAIC0xODIsNyArMTg4LDcgQEAgX19uZnNkNF9jcmVhdGVfcmVjbGFpbV9yZWNvcmRfZ3JhY2Uoc3RydWN0IG5mczRfY2xpZW50ICpjbHAsCiAJCXJldHVybjsKIAl9CiAJbmFtZS5sZW4gPSBsZW47Ci0JY3JwID0gbmZzNF9jbGllbnRfdG9fcmVjbGFpbShuYW1lLCBubik7CisJY3JwID0gbmZzNF9jbGllbnRfdG9fcmVjbGFpbShuYW1lLCBwcmluY2hhc2gsIG5uKTsKIAlpZiAoIWNycCkgewogCQlrZnJlZShuYW1lLmRhdGEpOwogCQlyZXR1cm47CkBAIC00ODIsNiArNDg4LDcgQEAgc3RhdGljIGludAogbG9hZF9yZWNkaXIoc3RydWN0IGRlbnRyeSAqcGFyZW50LCBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCwgc3RydWN0IG5mc2RfbmV0ICpubikKIHsKIAlzdHJ1Y3QgeGRyX25ldG9iaiBuYW1lOworCXN0cnVjdCB4ZHJfbmV0b2JqIHByaW5jaGFzaCA9IHsgLmxlbiA9IDAsIC5kYXRhID0gTlVMTCB9OwogCiAJaWYgKGNoaWxkLT5kX25hbWUubGVuICE9IEhFWERJUl9MRU4gLSAxKSB7CiAJCXByaW50aygiJXM6IGlsbGVnYWwgbmFtZSAlcGQgaW4gcmVjb3ZlcnkgZGlyZWN0b3J5XG4iLApAQCAtNDk2LDcgKzUwMyw3IEBAIGxvYWRfcmVjZGlyKHN0cnVjdCBkZW50cnkgKnBhcmVudCwgc3RydWN0IGRlbnRyeSAqY2hpbGQsIHN0cnVjdCBuZnNkX25ldCAqbm4pCiAJCWdvdG8gb3V0OwogCX0KIAluYW1lLmxlbiA9IEhFWERJUl9MRU47Ci0JaWYgKCFuZnM0X2NsaWVudF90b19yZWNsYWltKG5hbWUsIG5uKSkKKwlpZiAoIW5mczRfY2xpZW50X3RvX3JlY2xhaW0obmFtZSwgcHJpbmNoYXNoLCBubikpCiAJCWtmcmVlKG5hbWUuZGF0YSk7CiBvdXQ6CiAJcmV0dXJuIDA7CkBAIC03MTgsNiArNzI1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZnNkNF9jbGllbnRfdHJhY2tpbmdfb3BzIG5mc2Q0X2xlZ2FjeV90cmFja2luZ19vcHMgPSB7CiAJLnJlbW92ZQkJPSBuZnNkNF9yZW1vdmVfY2xpZF9kaXIsCiAJLmNoZWNrCQk9IG5mc2Q0X2NoZWNrX2xlZ2FjeV9jbGllbnQsCiAJLmdyYWNlX2RvbmUJPSBuZnNkNF9yZWNkaXJfcHVyZ2Vfb2xkLAorCS52ZXJzaW9uCT0gMSwKKwkubXNnbGVuCQk9IDAsCiB9OwogCiAvKiBHbG9iYWxzICovCkBAIC03MzEsMjUgKzc0MCwzMiBAQCBzdHJ1Y3QgY2xkX25ldCB7CiAJc3RydWN0IGxpc3RfaGVhZAkgY25fbGlzdDsKIAl1bnNpZ25lZCBpbnQJCSBjbl94aWQ7CiAJYm9vbAkJCSBjbl9oYXNfbGVnYWN5OworCXN0cnVjdCBjcnlwdG9fc2hhc2gJKmNuX3RmbTsKIH07CiAKIHN0cnVjdCBjbGRfdXBjYWxsIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkCSBjdV9saXN0OwogCXN0cnVjdCBjbGRfbmV0CQkqY3VfbmV0OwogCXN0cnVjdCBjb21wbGV0aW9uCSBjdV9kb25lOwotCXN0cnVjdCBjbGRfbXNnCQkgY3VfbXNnOworCXVuaW9uIHsKKwkJc3RydWN0IGNsZF9tc2dfaGRyCSBjdV9oZHI7CisJCXN0cnVjdCBjbGRfbXNnCQkgY3VfbXNnOworCQlzdHJ1Y3QgY2xkX21zZ192MgkgY3VfbXNnX3YyOworCX0gY3VfdTsKIH07CiAKIHN0YXRpYyBpbnQKLV9fY2xkX3BpcGVfdXBjYWxsKHN0cnVjdCBycGNfcGlwZSAqcGlwZSwgc3RydWN0IGNsZF9tc2cgKmNtc2cpCitfX2NsZF9waXBlX3VwY2FsbChzdHJ1Y3QgcnBjX3BpcGUgKnBpcGUsIHZvaWQgKmNtc2cpCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3QgcnBjX3BpcGVfbXNnIG1zZzsKLQlzdHJ1Y3QgY2xkX3VwY2FsbCAqY3VwID0gY29udGFpbmVyX29mKGNtc2csIHN0cnVjdCBjbGRfdXBjYWxsLCBjdV9tc2cpOworCXN0cnVjdCBjbGRfdXBjYWxsICpjdXAgPSBjb250YWluZXJfb2YoY21zZywgc3RydWN0IGNsZF91cGNhbGwsIGN1X3UpOworCXN0cnVjdCBuZnNkX25ldCAqbm4gPSBuZXRfZ2VuZXJpYyhwaXBlLT5kZW50cnktPmRfc2ItPnNfZnNfaW5mbywKKwkJCQkJICBuZnNkX25ldF9pZCk7CiAKIAltZW1zZXQoJm1zZywgMCwgc2l6ZW9mKG1zZykpOwogCW1zZy5kYXRhID0gY21zZzsKLQltc2cubGVuID0gc2l6ZW9mKCpjbXNnKTsKKwltc2cubGVuID0gbm4tPmNsaWVudF90cmFja2luZ19vcHMtPm1zZ2xlbjsKIAogCXJldCA9IHJwY19xdWV1ZV91cGNhbGwocGlwZSwgJm1zZyk7CiAJaWYgKHJldCA8IDApIHsKQEAgLTc2NSw3ICs3ODEsNyBAQCBfX2NsZF9waXBlX3VwY2FsbChzdHJ1Y3QgcnBjX3BpcGUgKnBpcGUsIHN0cnVjdCBjbGRfbXNnICpjbXNnKQogfQogCiBzdGF0aWMgaW50Ci1jbGRfcGlwZV91cGNhbGwoc3RydWN0IHJwY19waXBlICpwaXBlLCBzdHJ1Y3QgY2xkX21zZyAqY21zZykKK2NsZF9waXBlX3VwY2FsbChzdHJ1Y3QgcnBjX3BpcGUgKnBpcGUsIHZvaWQgKmNtc2cpCiB7CiAJaW50IHJldDsKIApAQCAtNzgxLDExICs3OTcsMTEgQEAgY2xkX3BpcGVfdXBjYWxsKHN0cnVjdCBycGNfcGlwZSAqcGlwZSwgc3RydWN0IGNsZF9tc2cgKmNtc2cpCiB9CiAKIHN0YXRpYyBzc2l6ZV90Ci1fX2NsZF9waXBlX2lucHJvZ3Jlc3NfZG93bmNhbGwoY29uc3Qgc3RydWN0IGNsZF9tc2cgX191c2VyICpjbXNnLAorX19jbGRfcGlwZV9pbnByb2dyZXNzX2Rvd25jYWxsKGNvbnN0IHN0cnVjdCBjbGRfbXNnX3YyIF9fdXNlciAqY21zZywKIAkJc3RydWN0IG5mc2RfbmV0ICpubikKIHsKLQl1aW50OF90IGNtZDsKLQlzdHJ1Y3QgeGRyX25ldG9iaiBuYW1lOworCXVpbnQ4X3QgY21kLCBwcmluY2hhc2hsZW47CisJc3RydWN0IHhkcl9uZXRvYmogbmFtZSwgcHJpbmNoYXNoID0geyAubGVuID0gMCwgLmRhdGEgPSBOVUxMIH07CiAJdWludDE2X3QgbmFtZWxlbjsKIAlzdHJ1Y3QgY2xkX25ldCAqY24gPSBubi0+Y2xkX25ldDsKIApAQCAtNzk0LDIyICs4MTAsNDggQEAgX19jbGRfcGlwZV9pbnByb2dyZXNzX2Rvd25jYWxsKGNvbnN0IHN0cnVjdCBjbGRfbXNnIF9fdXNlciAqY21zZywKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQogCWlmIChjbWQgPT0gQ2xkX0dyYWNlU3RhcnQpIHsKLQkJaWYgKGdldF91c2VyKG5hbWVsZW4sICZjbXNnLT5jbV91LmNtX25hbWUuY25fbGVuKSkKLQkJCXJldHVybiAtRUZBVUxUOwotCQluYW1lLmRhdGEgPSBtZW1kdXBfdXNlcigmY21zZy0+Y21fdS5jbV9uYW1lLmNuX2lkLCBuYW1lbGVuKTsKLQkJaWYgKElTX0VSUl9PUl9OVUxMKG5hbWUuZGF0YSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQkJbmFtZS5sZW4gPSBuYW1lbGVuOworCQlpZiAobm4tPmNsaWVudF90cmFja2luZ19vcHMtPnZlcnNpb24gPj0gMikgeworCQkJY29uc3Qgc3RydWN0IGNsZF9jbG50aW5mbyBfX3VzZXIgKmNpOworCisJCQljaSA9ICZjbXNnLT5jbV91LmNtX2NsbnRpbmZvOworCQkJaWYgKGdldF91c2VyKG5hbWVsZW4sICZjaS0+Y2NfbmFtZS5jbl9sZW4pKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJbmFtZS5kYXRhID0gbWVtZHVwX3VzZXIoJmNpLT5jY19uYW1lLmNuX2lkLCBuYW1lbGVuKTsKKwkJCWlmIChJU19FUlJfT1JfTlVMTChuYW1lLmRhdGEpKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJbmFtZS5sZW4gPSBuYW1lbGVuOworCQkJZ2V0X3VzZXIocHJpbmNoYXNobGVuLCAmY2ktPmNjX3ByaW5jaGFzaC5jcF9sZW4pOworCQkJaWYgKHByaW5jaGFzaGxlbiA+IDApIHsKKwkJCQlwcmluY2hhc2guZGF0YSA9IG1lbWR1cF91c2VyKAorCQkJCQkJJmNpLT5jY19wcmluY2hhc2guY3BfZGF0YSwKKwkJCQkJCXByaW5jaGFzaGxlbik7CisJCQkJaWYgKElTX0VSUl9PUl9OVUxMKHByaW5jaGFzaC5kYXRhKSkKKwkJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQkJcHJpbmNoYXNoLmxlbiA9IHByaW5jaGFzaGxlbjsKKwkJCX0gZWxzZQorCQkJCXByaW5jaGFzaC5sZW4gPSAwOworCQl9IGVsc2UgeworCQkJY29uc3Qgc3RydWN0IGNsZF9uYW1lIF9fdXNlciAqY25tOworCisJCQljbm0gPSAmY21zZy0+Y21fdS5jbV9uYW1lOworCQkJaWYgKGdldF91c2VyKG5hbWVsZW4sICZjbm0tPmNuX2xlbikpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQluYW1lLmRhdGEgPSBtZW1kdXBfdXNlcigmY25tLT5jbl9pZCwgbmFtZWxlbik7CisJCQlpZiAoSVNfRVJSX09SX05VTEwobmFtZS5kYXRhKSkKKwkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCW5hbWUubGVuID0gbmFtZWxlbjsKKwkJfQogCQlpZiAobmFtZS5sZW4gPiA1ICYmIG1lbWNtcChuYW1lLmRhdGEsICJoYXNoOiIsIDUpID09IDApIHsKIAkJCW5hbWUubGVuID0gbmFtZS5sZW4gLSA1OwogCQkJbWVtbW92ZShuYW1lLmRhdGEsIG5hbWUuZGF0YSArIDUsIG5hbWUubGVuKTsKIAkJCWNuLT5jbl9oYXNfbGVnYWN5ID0gdHJ1ZTsKIAkJfQotCQlpZiAoIW5mczRfY2xpZW50X3RvX3JlY2xhaW0obmFtZSwgbm4pKSB7CisJCWlmICghbmZzNF9jbGllbnRfdG9fcmVjbGFpbShuYW1lLCBwcmluY2hhc2gsIG5uKSkgewogCQkJa2ZyZWUobmFtZS5kYXRhKTsKKwkJCWtmcmVlKHByaW5jaGFzaC5kYXRhKTsKIAkJCXJldHVybiAtRUZBVUxUOwogCQl9Ci0JCXJldHVybiBzaXplb2YoKmNtc2cpOworCQlyZXR1cm4gbm4tPmNsaWVudF90cmFja2luZ19vcHMtPm1zZ2xlbjsKIAl9CiAJcmV0dXJuIC1FRkFVTFQ7CiB9CkBAIC04MTgsMjEgKzg2MCwyMiBAQCBzdGF0aWMgc3NpemVfdAogY2xkX3BpcGVfZG93bmNhbGwoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpzcmMsIHNpemVfdCBtbGVuKQogewogCXN0cnVjdCBjbGRfdXBjYWxsICp0bXAsICpjdXA7Ci0Jc3RydWN0IGNsZF9tc2cgX191c2VyICpjbXNnID0gKHN0cnVjdCBjbGRfbXNnIF9fdXNlciAqKXNyYzsKKwlzdHJ1Y3QgY2xkX21zZ19oZHIgX191c2VyICpoZHIgPSAoc3RydWN0IGNsZF9tc2dfaGRyIF9fdXNlciAqKXNyYzsKKwlzdHJ1Y3QgY2xkX21zZ192MiBfX3VzZXIgKmNtc2cgPSAoc3RydWN0IGNsZF9tc2dfdjIgX191c2VyICopc3JjOwogCXVpbnQzMl90IHhpZDsKIAlzdHJ1Y3QgbmZzZF9uZXQgKm5uID0gbmV0X2dlbmVyaWMoZmlsZV9pbm9kZShmaWxwKS0+aV9zYi0+c19mc19pbmZvLAogCQkJCQkJbmZzZF9uZXRfaWQpOwogCXN0cnVjdCBjbGRfbmV0ICpjbiA9IG5uLT5jbGRfbmV0OwogCWludDE2X3Qgc3RhdHVzOwogCi0JaWYgKG1sZW4gIT0gc2l6ZW9mKCpjbXNnKSkgeworCWlmIChtbGVuICE9IG5uLT5jbGllbnRfdHJhY2tpbmdfb3BzLT5tc2dsZW4pIHsKIAkJZHByaW50aygiJXM6IGdvdCAlenUgYnl0ZXMsIGV4cGVjdGVkICV6dVxuIiwgX19mdW5jX18sIG1sZW4sCi0JCQlzaXplb2YoKmNtc2cpKTsKKwkJCW5uLT5jbGllbnRfdHJhY2tpbmdfb3BzLT5tc2dsZW4pOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAkvKiBjb3B5IGp1c3QgdGhlIHhpZCBzbyB3ZSBjYW4gdHJ5IHRvIGZpbmQgdGhhdCAqLwotCWlmIChjb3B5X2Zyb21fdXNlcigmeGlkLCAmY21zZy0+Y21feGlkLCBzaXplb2YoeGlkKSkgIT0gMCkgeworCWlmIChjb3B5X2Zyb21fdXNlcigmeGlkLCAmaGRyLT5jbV94aWQsIHNpemVvZih4aWQpKSAhPSAwKSB7CiAJCWRwcmludGsoIiVzOiBlcnJvciB3aGVuIGNvcHlpbmcgeGlkIGZyb20gdXNlcnNwYWNlIiwgX19mdW5jX18pOwogCQlyZXR1cm4gLUVGQVVMVDsKIAl9CkBAIC04NDIsNyArODg1LDcgQEAgY2xkX3BpcGVfZG93bmNhbGwoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpzcmMsIHNpemVfdCBtbGVuKQogCSAqIGxpc3QgKGZvciAtRUlOUFJPR1JFU1MsIHdlIGp1c3Qgd2FudCB0byBtYWtlIHN1cmUgdGhlIHhpZCBpcwogCSAqIHZhbGlkLCBub3QgcmVtb3ZlIHRoZSB1cGNhbGwgZnJvbSB0aGUgbGlzdCkKIAkgKi8KLQlpZiAoZ2V0X3VzZXIoc3RhdHVzLCAmY21zZy0+Y21fc3RhdHVzKSkgeworCWlmIChnZXRfdXNlcihzdGF0dXMsICZoZHItPmNtX3N0YXR1cykpIHsKIAkJZHByaW50aygiJXM6IGVycm9yIHdoZW4gY29weWluZyBzdGF0dXMgZnJvbSB1c2Vyc3BhY2UiLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAtRUZBVUxUOwogCX0KQEAgLTg1MSw3ICs4OTQsNyBAQCBjbGRfcGlwZV9kb3duY2FsbChzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnNyYywgc2l6ZV90IG1sZW4pCiAJY3VwID0gTlVMTDsKIAlzcGluX2xvY2soJmNuLT5jbl9sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRtcCwgJmNuLT5jbl9saXN0LCBjdV9saXN0KSB7Ci0JCWlmIChnZXRfdW5hbGlnbmVkKCZ0bXAtPmN1X21zZy5jbV94aWQpID09IHhpZCkgeworCQlpZiAoZ2V0X3VuYWxpZ25lZCgmdG1wLT5jdV91LmN1X2hkci5jbV94aWQpID09IHhpZCkgewogCQkJY3VwID0gdG1wOwogCQkJaWYgKHN0YXR1cyAhPSAtRUlOUFJPR1JFU1MpCiAJCQkJbGlzdF9kZWxfaW5pdCgmY3VwLT5jdV9saXN0KTsKQEAgLTg2OSw3ICs5MTIsNyBAQCBjbGRfcGlwZV9kb3duY2FsbChzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnNyYywgc2l6ZV90IG1sZW4pCiAJaWYgKHN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpCiAJCXJldHVybiBfX2NsZF9waXBlX2lucHJvZ3Jlc3NfZG93bmNhbGwoY21zZywgbm4pOwogCi0JaWYgKGNvcHlfZnJvbV91c2VyKCZjdXAtPmN1X21zZywgc3JjLCBtbGVuKSAhPSAwKQorCWlmIChjb3B5X2Zyb21fdXNlcigmY3VwLT5jdV91LmN1X21zZ192Miwgc3JjLCBtbGVuKSAhPSAwKQogCQlyZXR1cm4gLUVGQVVMVDsKIAogCWNvbXBsZXRlKCZjdXAtPmN1X2RvbmUpOwpAQCAtODgxLDcgKzkyNCw3IEBAIGNsZF9waXBlX2Rlc3Ryb3lfbXNnKHN0cnVjdCBycGNfcGlwZV9tc2cgKm1zZykKIHsKIAlzdHJ1Y3QgY2xkX21zZyAqY21zZyA9IG1zZy0+ZGF0YTsKIAlzdHJ1Y3QgY2xkX3VwY2FsbCAqY3VwID0gY29udGFpbmVyX29mKGNtc2csIHN0cnVjdCBjbGRfdXBjYWxsLAotCQkJCQkJIGN1X21zZyk7CisJCQkJCQkgY3VfdS5jdV9tc2cpOwogCiAJLyogZXJybm8gPj0gMCBtZWFucyB3ZSBnb3QgYSBkb3duY2FsbCAqLwogCWlmIChtc2ctPmVycm5vID49IDApCkBAIC0xMDA3LDE0ICsxMDUwLDE3IEBAIG5mc2Q0X3JlbW92ZV9jbGRfcGlwZShzdHJ1Y3QgbmV0ICpuZXQpCiAKIAluZnNkNF9jbGRfdW5yZWdpc3Rlcl9uZXQobmV0LCBjbi0+Y25fcGlwZSk7CiAJcnBjX2Rlc3Ryb3lfcGlwZV9kYXRhKGNuLT5jbl9waXBlKTsKKwlpZiAoY24tPmNuX3RmbSkKKwkJY3J5cHRvX2ZyZWVfc2hhc2goY24tPmNuX3RmbSk7CiAJa2ZyZWUobm4tPmNsZF9uZXQpOwogCW5uLT5jbGRfbmV0ID0gTlVMTDsKIH0KIAogc3RhdGljIHN0cnVjdCBjbGRfdXBjYWxsICoKLWFsbG9jX2NsZF91cGNhbGwoc3RydWN0IGNsZF9uZXQgKmNuKQorYWxsb2NfY2xkX3VwY2FsbChzdHJ1Y3QgbmZzZF9uZXQgKm5uKQogewogCXN0cnVjdCBjbGRfdXBjYWxsICpuZXcsICp0bXA7CisJc3RydWN0IGNsZF9uZXQgKmNuID0gbm4tPmNsZF9uZXQ7CiAKIAluZXcgPSBremFsbG9jKHNpemVvZigqbmV3KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFuZXcpCkBAIC0xMDI0LDIwICsxMDcwLDIwIEBAIGFsbG9jX2NsZF91cGNhbGwoc3RydWN0IGNsZF9uZXQgKmNuKQogcmVzdGFydF9zZWFyY2g6CiAJc3Bpbl9sb2NrKCZjbi0+Y25fbG9jayk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXAsICZjbi0+Y25fbGlzdCwgY3VfbGlzdCkgewotCQlpZiAodG1wLT5jdV9tc2cuY21feGlkID09IGNuLT5jbl94aWQpIHsKKwkJaWYgKHRtcC0+Y3VfdS5jdV9tc2cuY21feGlkID09IGNuLT5jbl94aWQpIHsKIAkJCWNuLT5jbl94aWQrKzsKIAkJCXNwaW5fdW5sb2NrKCZjbi0+Y25fbG9jayk7CiAJCQlnb3RvIHJlc3RhcnRfc2VhcmNoOwogCQl9CiAJfQogCWluaXRfY29tcGxldGlvbigmbmV3LT5jdV9kb25lKTsKLQluZXctPmN1X21zZy5jbV92ZXJzID0gQ0xEX1VQQ0FMTF9WRVJTSU9OOwotCXB1dF91bmFsaWduZWQoY24tPmNuX3hpZCsrLCAmbmV3LT5jdV9tc2cuY21feGlkKTsKKwluZXctPmN1X3UuY3VfbXNnLmNtX3ZlcnMgPSBubi0+Y2xpZW50X3RyYWNraW5nX29wcy0+dmVyc2lvbjsKKwlwdXRfdW5hbGlnbmVkKGNuLT5jbl94aWQrKywgJm5ldy0+Y3VfdS5jdV9tc2cuY21feGlkKTsKIAluZXctPmN1X25ldCA9IGNuOwogCWxpc3RfYWRkKCZuZXctPmN1X2xpc3QsICZjbi0+Y25fbGlzdCk7CiAJc3Bpbl91bmxvY2soJmNuLT5jbl9sb2NrKTsKIAotCWRwcmludGsoIiVzOiBhbGxvY2F0ZWQgeGlkICV1XG4iLCBfX2Z1bmNfXywgbmV3LT5jdV9tc2cuY21feGlkKTsKKwlkcHJpbnRrKCIlczogYWxsb2NhdGVkIHhpZCAldVxuIiwgX19mdW5jX18sIG5ldy0+Y3VfdS5jdV9tc2cuY21feGlkKTsKIAogCXJldHVybiBuZXc7CiB9CkBAIC0xMDY2LDIwICsxMTEyLDIwIEBAIG5mc2Q0X2NsZF9jcmVhdGUoc3RydWN0IG5mczRfY2xpZW50ICpjbHApCiAJaWYgKHRlc3RfYml0KE5GU0Q0X0NMSUVOVF9TVEFCTEUsICZjbHAtPmNsX2ZsYWdzKSkKIAkJcmV0dXJuOwogCi0JY3VwID0gYWxsb2NfY2xkX3VwY2FsbChjbik7CisJY3VwID0gYWxsb2NfY2xkX3VwY2FsbChubik7CiAJaWYgKCFjdXApIHsKIAkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBvdXRfZXJyOwogCX0KIAotCWN1cC0+Y3VfbXNnLmNtX2NtZCA9IENsZF9DcmVhdGU7Ci0JY3VwLT5jdV9tc2cuY21fdS5jbV9uYW1lLmNuX2xlbiA9IGNscC0+Y2xfbmFtZS5sZW47Ci0JbWVtY3B5KGN1cC0+Y3VfbXNnLmNtX3UuY21fbmFtZS5jbl9pZCwgY2xwLT5jbF9uYW1lLmRhdGEsCisJY3VwLT5jdV91LmN1X21zZy5jbV9jbWQgPSBDbGRfQ3JlYXRlOworCWN1cC0+Y3VfdS5jdV9tc2cuY21fdS5jbV9uYW1lLmNuX2xlbiA9IGNscC0+Y2xfbmFtZS5sZW47CisJbWVtY3B5KGN1cC0+Y3VfdS5jdV9tc2cuY21fdS5jbV9uYW1lLmNuX2lkLCBjbHAtPmNsX25hbWUuZGF0YSwKIAkJCWNscC0+Y2xfbmFtZS5sZW4pOwogCi0JcmV0ID0gY2xkX3BpcGVfdXBjYWxsKGNuLT5jbl9waXBlLCAmY3VwLT5jdV9tc2cpOworCXJldCA9IGNsZF9waXBlX3VwY2FsbChjbi0+Y25fcGlwZSwgJmN1cC0+Y3VfdS5jdV9tc2cpOwogCWlmICghcmV0KSB7Ci0JCXJldCA9IGN1cC0+Y3VfbXNnLmNtX3N0YXR1czsKKwkJcmV0ID0gY3VwLT5jdV91LmN1X21zZy5jbV9zdGF0dXM7CiAJCXNldF9iaXQoTkZTRDRfQ0xJRU5UX1NUQUJMRSwgJmNscC0+Y2xfZmxhZ3MpOwogCX0KIApAQCAtMTA5Miw2ICsxMTM4LDc1IEBAIG5mc2Q0X2NsZF9jcmVhdGUoc3RydWN0IG5mczRfY2xpZW50ICpjbHApCiAKIC8qIEFzayBkYWVtb24gdG8gY3JlYXRlIGEgbmV3IHJlY29yZCAqLwogc3RhdGljIHZvaWQKK25mc2Q0X2NsZF9jcmVhdGVfdjIoc3RydWN0IG5mczRfY2xpZW50ICpjbHApCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgY2xkX3VwY2FsbCAqY3VwOworCXN0cnVjdCBuZnNkX25ldCAqbm4gPSBuZXRfZ2VuZXJpYyhjbHAtPm5ldCwgbmZzZF9uZXRfaWQpOworCXN0cnVjdCBjbGRfbmV0ICpjbiA9IG5uLT5jbGRfbmV0OworCXN0cnVjdCBjbGRfbXNnX3YyICpjbXNnOworCXN0cnVjdCBjcnlwdG9fc2hhc2ggKnRmbSA9IGNuLT5jbl90Zm07CisJc3RydWN0IHhkcl9uZXRvYmogY2tzdW07CisJY2hhciAqcHJpbmNpcGFsID0gTlVMTDsKKwlTSEFTSF9ERVNDX09OX1NUQUNLKGRlc2MsIHRmbSk7CisKKwkvKiBEb24ndCB1cGNhbGwgaWYgaXQncyBhbHJlYWR5IHN0b3JlZCAqLworCWlmICh0ZXN0X2JpdChORlNENF9DTElFTlRfU1RBQkxFLCAmY2xwLT5jbF9mbGFncykpCisJCXJldHVybjsKKworCWN1cCA9IGFsbG9jX2NsZF91cGNhbGwobm4pOworCWlmICghY3VwKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2VycjsKKwl9CisKKwljbXNnID0gJmN1cC0+Y3VfdS5jdV9tc2dfdjI7CisJY21zZy0+Y21fY21kID0gQ2xkX0NyZWF0ZTsKKwljbXNnLT5jbV91LmNtX2NsbnRpbmZvLmNjX25hbWUuY25fbGVuID0gY2xwLT5jbF9uYW1lLmxlbjsKKwltZW1jcHkoY21zZy0+Y21fdS5jbV9jbG50aW5mby5jY19uYW1lLmNuX2lkLCBjbHAtPmNsX25hbWUuZGF0YSwKKwkJCWNscC0+Y2xfbmFtZS5sZW4pOworCWlmIChjbHAtPmNsX2NyZWQuY3JfcmF3X3ByaW5jaXBhbCkKKwkJcHJpbmNpcGFsID0gY2xwLT5jbF9jcmVkLmNyX3Jhd19wcmluY2lwYWw7CisJZWxzZSBpZiAoY2xwLT5jbF9jcmVkLmNyX3ByaW5jaXBhbCkKKwkJcHJpbmNpcGFsID0gY2xwLT5jbF9jcmVkLmNyX3ByaW5jaXBhbDsKKwlpZiAocHJpbmNpcGFsKSB7CisJCWRlc2MtPnRmbSA9IHRmbTsKKwkJY2tzdW0ubGVuID0gY3J5cHRvX3NoYXNoX2RpZ2VzdHNpemUodGZtKTsKKwkJY2tzdW0uZGF0YSA9IGttYWxsb2MoY2tzdW0ubGVuLCBHRlBfS0VSTkVMKTsKKwkJaWYgKGNrc3VtLmRhdGEgPT0gTlVMTCkgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gb3V0OworCQl9CisJCXJldCA9IGNyeXB0b19zaGFzaF9kaWdlc3QoZGVzYywgcHJpbmNpcGFsLCBzdHJsZW4ocHJpbmNpcGFsKSwKKwkJCQkJICBja3N1bS5kYXRhKTsKKwkJc2hhc2hfZGVzY196ZXJvKGRlc2MpOworCQlpZiAocmV0KSB7CisJCQlrZnJlZShja3N1bS5kYXRhKTsKKwkJCWdvdG8gb3V0OworCQl9CisJCWNtc2ctPmNtX3UuY21fY2xudGluZm8uY2NfcHJpbmNoYXNoLmNwX2xlbiA9IGNrc3VtLmxlbjsKKwkJbWVtY3B5KGNtc2ctPmNtX3UuY21fY2xudGluZm8uY2NfcHJpbmNoYXNoLmNwX2RhdGEsCisJCSAgICAgICBja3N1bS5kYXRhLCBja3N1bS5sZW4pOworCQlrZnJlZShja3N1bS5kYXRhKTsKKwl9IGVsc2UKKwkJY21zZy0+Y21fdS5jbV9jbG50aW5mby5jY19wcmluY2hhc2guY3BfbGVuID0gMDsKKworCXJldCA9IGNsZF9waXBlX3VwY2FsbChjbi0+Y25fcGlwZSwgY21zZyk7CisJaWYgKCFyZXQpIHsKKwkJcmV0ID0gY21zZy0+Y21fc3RhdHVzOworCQlzZXRfYml0KE5GU0Q0X0NMSUVOVF9TVEFCTEUsICZjbHAtPmNsX2ZsYWdzKTsKKwl9CisKK291dDoKKwlmcmVlX2NsZF91cGNhbGwoY3VwKTsKK291dF9lcnI6CisJaWYgKHJldCkKKwkJcHJfZXJyKCJORlNEOiBVbmFibGUgdG8gY3JlYXRlIGNsaWVudCByZWNvcmQgb24gc3RhYmxlIHN0b3JhZ2U6ICVkXG4iLAorCQkJCXJldCk7Cit9CisKKy8qIEFzayBkYWVtb24gdG8gY3JlYXRlIGEgbmV3IHJlY29yZCAqLworc3RhdGljIHZvaWQKIG5mc2Q0X2NsZF9yZW1vdmUoc3RydWN0IG5mczRfY2xpZW50ICpjbHApCiB7CiAJaW50IHJldDsKQEAgLTExMDMsMjAgKzEyMTgsMjAgQEAgbmZzZDRfY2xkX3JlbW92ZShzdHJ1Y3QgbmZzNF9jbGllbnQgKmNscCkKIAlpZiAoIXRlc3RfYml0KE5GU0Q0X0NMSUVOVF9TVEFCTEUsICZjbHAtPmNsX2ZsYWdzKSkKIAkJcmV0dXJuOwogCi0JY3VwID0gYWxsb2NfY2xkX3VwY2FsbChjbik7CisJY3VwID0gYWxsb2NfY2xkX3VwY2FsbChubik7CiAJaWYgKCFjdXApIHsKIAkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBvdXRfZXJyOwogCX0KIAotCWN1cC0+Y3VfbXNnLmNtX2NtZCA9IENsZF9SZW1vdmU7Ci0JY3VwLT5jdV9tc2cuY21fdS5jbV9uYW1lLmNuX2xlbiA9IGNscC0+Y2xfbmFtZS5sZW47Ci0JbWVtY3B5KGN1cC0+Y3VfbXNnLmNtX3UuY21fbmFtZS5jbl9pZCwgY2xwLT5jbF9uYW1lLmRhdGEsCisJY3VwLT5jdV91LmN1X21zZy5jbV9jbWQgPSBDbGRfUmVtb3ZlOworCWN1cC0+Y3VfdS5jdV9tc2cuY21fdS5jbV9uYW1lLmNuX2xlbiA9IGNscC0+Y2xfbmFtZS5sZW47CisJbWVtY3B5KGN1cC0+Y3VfdS5jdV9tc2cuY21fdS5jbV9uYW1lLmNuX2lkLCBjbHAtPmNsX25hbWUuZGF0YSwKIAkJCWNscC0+Y2xfbmFtZS5sZW4pOwogCi0JcmV0ID0gY2xkX3BpcGVfdXBjYWxsKGNuLT5jbl9waXBlLCAmY3VwLT5jdV9tc2cpOworCXJldCA9IGNsZF9waXBlX3VwY2FsbChjbi0+Y25fcGlwZSwgJmN1cC0+Y3VfdS5jdV9tc2cpOwogCWlmICghcmV0KSB7Ci0JCXJldCA9IGN1cC0+Y3VfbXNnLmNtX3N0YXR1czsKKwkJcmV0ID0gY3VwLT5jdV91LmN1X21zZy5jbV9zdGF0dXM7CiAJCWNsZWFyX2JpdChORlNENF9DTElFTlRfU1RBQkxFLCAmY2xwLT5jbF9mbGFncyk7CiAJfQogCkBAIC0xMTQ1LDIxICsxMjYwLDIxIEBAIG5mc2Q0X2NsZF9jaGVja192MChzdHJ1Y3QgbmZzNF9jbGllbnQgKmNscCkKIAlpZiAodGVzdF9iaXQoTkZTRDRfQ0xJRU5UX1NUQUJMRSwgJmNscC0+Y2xfZmxhZ3MpKQogCQlyZXR1cm4gMDsKIAotCWN1cCA9IGFsbG9jX2NsZF91cGNhbGwoY24pOworCWN1cCA9IGFsbG9jX2NsZF91cGNhbGwobm4pOwogCWlmICghY3VwKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiTkZTRDogVW5hYmxlIHRvIGNoZWNrIGNsaWVudCByZWNvcmQgb24gIgogCQkJCSJzdGFibGUgc3RvcmFnZTogJWRcbiIsIC1FTk9NRU0pOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKLQljdXAtPmN1X21zZy5jbV9jbWQgPSBDbGRfQ2hlY2s7Ci0JY3VwLT5jdV9tc2cuY21fdS5jbV9uYW1lLmNuX2xlbiA9IGNscC0+Y2xfbmFtZS5sZW47Ci0JbWVtY3B5KGN1cC0+Y3VfbXNnLmNtX3UuY21fbmFtZS5jbl9pZCwgY2xwLT5jbF9uYW1lLmRhdGEsCisJY3VwLT5jdV91LmN1X21zZy5jbV9jbWQgPSBDbGRfQ2hlY2s7CisJY3VwLT5jdV91LmN1X21zZy5jbV91LmNtX25hbWUuY25fbGVuID0gY2xwLT5jbF9uYW1lLmxlbjsKKwltZW1jcHkoY3VwLT5jdV91LmN1X21zZy5jbV91LmNtX25hbWUuY25faWQsIGNscC0+Y2xfbmFtZS5kYXRhLAogCQkJY2xwLT5jbF9uYW1lLmxlbik7CiAKLQlyZXQgPSBjbGRfcGlwZV91cGNhbGwoY24tPmNuX3BpcGUsICZjdXAtPmN1X21zZyk7CisJcmV0ID0gY2xkX3BpcGVfdXBjYWxsKGNuLT5jbl9waXBlLCAmY3VwLT5jdV91LmN1X21zZyk7CiAJaWYgKCFyZXQpIHsKLQkJcmV0ID0gY3VwLT5jdV9tc2cuY21fc3RhdHVzOworCQlyZXQgPSBjdXAtPmN1X3UuY3VfbXNnLmNtX3N0YXR1czsKIAkJc2V0X2JpdChORlNENF9DTElFTlRfU1RBQkxFLCAmY2xwLT5jbF9mbGFncyk7CiAJfQogCkBAIC0xMjE3LDIyICsxMzMyLDk1IEBAIG5mc2Q0X2NsZF9jaGVjayhzdHJ1Y3QgbmZzNF9jbGllbnQgKmNscCkKIH0KIAogc3RhdGljIGludAorbmZzZDRfY2xkX2NoZWNrX3YyKHN0cnVjdCBuZnM0X2NsaWVudCAqY2xwKQoreworCXN0cnVjdCBuZnM0X2NsaWVudF9yZWNsYWltICpjcnA7CisJc3RydWN0IG5mc2RfbmV0ICpubiA9IG5ldF9nZW5lcmljKGNscC0+bmV0LCBuZnNkX25ldF9pZCk7CisJc3RydWN0IGNsZF9uZXQgKmNuID0gbm4tPmNsZF9uZXQ7CisJaW50IHN0YXR1czsKKwljaGFyIGRuYW1lW0hFWERJUl9MRU5dOworCXN0cnVjdCB4ZHJfbmV0b2JqIG5hbWU7CisJc3RydWN0IGNyeXB0b19zaGFzaCAqdGZtID0gY24tPmNuX3RmbTsKKwlzdHJ1Y3QgeGRyX25ldG9iaiBja3N1bTsKKwljaGFyICpwcmluY2lwYWwgPSBOVUxMOworCVNIQVNIX0RFU0NfT05fU1RBQ0soZGVzYywgdGZtKTsKKworCS8qIGRpZCB3ZSBhbHJlYWR5IGZpbmQgdGhhdCB0aGlzIGNsaWVudCBpcyBzdGFibGU/ICovCisJaWYgKHRlc3RfYml0KE5GU0Q0X0NMSUVOVF9TVEFCTEUsICZjbHAtPmNsX2ZsYWdzKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBsb29rIGZvciBpdCBpbiB0aGUgcmVjbGFpbSBoYXNodGFibGUgb3RoZXJ3aXNlICovCisJY3JwID0gbmZzZDRfZmluZF9yZWNsYWltX2NsaWVudChjbHAtPmNsX25hbWUsIG5uKTsKKwlpZiAoY3JwKQorCQlnb3RvIGZvdW5kOworCisJaWYgKGNuLT5jbl9oYXNfbGVnYWN5KSB7CisJCXN0YXR1cyA9IG5mczRfbWFrZV9yZWNfY2xpZG5hbWUoZG5hbWUsICZjbHAtPmNsX25hbWUpOworCQlpZiAoc3RhdHVzKQorCQkJcmV0dXJuIC1FTk9FTlQ7CisKKwkJbmFtZS5kYXRhID0ga21lbWR1cChkbmFtZSwgSEVYRElSX0xFTiwgR0ZQX0tFUk5FTCk7CisJCWlmICghbmFtZS5kYXRhKSB7CisJCQlkcHJpbnRrKCIlczogZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgbmFtZS5kYXRhXG4iLAorCQkJCQlfX2Z1bmNfXyk7CisJCQlyZXR1cm4gLUVOT0VOVDsKKwkJfQorCQluYW1lLmxlbiA9IEhFWERJUl9MRU47CisJCWNycCA9IG5mc2Q0X2ZpbmRfcmVjbGFpbV9jbGllbnQobmFtZSwgbm4pOworCQlrZnJlZShuYW1lLmRhdGEpOworCQlpZiAoY3JwKQorCQkJZ290byBmb3VuZDsKKworCX0KKwlyZXR1cm4gLUVOT0VOVDsKK2ZvdW5kOgorCWlmIChjcnAtPmNyX3ByaW5jaGFzaC5sZW4pIHsKKwkJaWYgKGNscC0+Y2xfY3JlZC5jcl9yYXdfcHJpbmNpcGFsKQorCQkJcHJpbmNpcGFsID0gY2xwLT5jbF9jcmVkLmNyX3Jhd19wcmluY2lwYWw7CisJCWVsc2UgaWYgKGNscC0+Y2xfY3JlZC5jcl9wcmluY2lwYWwpCisJCQlwcmluY2lwYWwgPSBjbHAtPmNsX2NyZWQuY3JfcHJpbmNpcGFsOworCQlpZiAocHJpbmNpcGFsID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT0VOVDsKKwkJZGVzYy0+dGZtID0gdGZtOworCQlja3N1bS5sZW4gPSBjcnlwdG9fc2hhc2hfZGlnZXN0c2l6ZSh0Zm0pOworCQlja3N1bS5kYXRhID0ga21hbGxvYyhja3N1bS5sZW4sIEdGUF9LRVJORUwpOworCQlpZiAoY2tzdW0uZGF0YSA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9FTlQ7CisJCXN0YXR1cyA9IGNyeXB0b19zaGFzaF9kaWdlc3QoZGVzYywgcHJpbmNpcGFsLCBzdHJsZW4ocHJpbmNpcGFsKSwKKwkJCQkJICAgICBja3N1bS5kYXRhKTsKKwkJc2hhc2hfZGVzY196ZXJvKGRlc2MpOworCQlpZiAoc3RhdHVzKSB7CisJCQlrZnJlZShja3N1bS5kYXRhKTsKKwkJCXJldHVybiAtRU5PRU5UOworCQl9CisJCWlmIChtZW1jbXAoY3JwLT5jcl9wcmluY2hhc2guZGF0YSwgY2tzdW0uZGF0YSwKKwkJCQljcnAtPmNyX3ByaW5jaGFzaC5sZW4pKSB7CisJCQlrZnJlZShja3N1bS5kYXRhKTsKKwkJCXJldHVybiAtRU5PRU5UOworCQl9CisJCWtmcmVlKGNrc3VtLmRhdGEpOworCX0KKwljcnAtPmNyX2NscCA9IGNscDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAogbmZzZDRfY2xkX2dyYWNlX3N0YXJ0KHN0cnVjdCBuZnNkX25ldCAqbm4pCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3QgY2xkX3VwY2FsbCAqY3VwOwogCXN0cnVjdCBjbGRfbmV0ICpjbiA9IG5uLT5jbGRfbmV0OwogCi0JY3VwID0gYWxsb2NfY2xkX3VwY2FsbChjbik7CisJY3VwID0gYWxsb2NfY2xkX3VwY2FsbChubik7CiAJaWYgKCFjdXApIHsKIAkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBvdXRfZXJyOwogCX0KIAotCWN1cC0+Y3VfbXNnLmNtX2NtZCA9IENsZF9HcmFjZVN0YXJ0OwotCXJldCA9IGNsZF9waXBlX3VwY2FsbChjbi0+Y25fcGlwZSwgJmN1cC0+Y3VfbXNnKTsKKwljdXAtPmN1X3UuY3VfbXNnLmNtX2NtZCA9IENsZF9HcmFjZVN0YXJ0OworCXJldCA9IGNsZF9waXBlX3VwY2FsbChjbi0+Y25fcGlwZSwgJmN1cC0+Y3VfdS5jdV9tc2cpOwogCWlmICghcmV0KQotCQlyZXQgPSBjdXAtPmN1X21zZy5jbV9zdGF0dXM7CisJCXJldCA9IGN1cC0+Y3VfdS5jdV9tc2cuY21fc3RhdHVzOwogCiAJZnJlZV9jbGRfdXBjYWxsKGN1cCk7CiBvdXRfZXJyOgpAQCAtMTI1MCwxNyArMTQzOCwxNyBAQCBuZnNkNF9jbGRfZ3JhY2VfZG9uZV92MChzdHJ1Y3QgbmZzZF9uZXQgKm5uKQogCXN0cnVjdCBjbGRfdXBjYWxsICpjdXA7CiAJc3RydWN0IGNsZF9uZXQgKmNuID0gbm4tPmNsZF9uZXQ7CiAKLQljdXAgPSBhbGxvY19jbGRfdXBjYWxsKGNuKTsKKwljdXAgPSBhbGxvY19jbGRfdXBjYWxsKG5uKTsKIAlpZiAoIWN1cCkgewogCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIG91dF9lcnI7CiAJfQogCi0JY3VwLT5jdV9tc2cuY21fY21kID0gQ2xkX0dyYWNlRG9uZTsKLQljdXAtPmN1X21zZy5jbV91LmNtX2dyYWNldGltZSA9IChpbnQ2NF90KW5uLT5ib290X3RpbWU7Ci0JcmV0ID0gY2xkX3BpcGVfdXBjYWxsKGNuLT5jbl9waXBlLCAmY3VwLT5jdV9tc2cpOworCWN1cC0+Y3VfdS5jdV9tc2cuY21fY21kID0gQ2xkX0dyYWNlRG9uZTsKKwljdXAtPmN1X3UuY3VfbXNnLmNtX3UuY21fZ3JhY2V0aW1lID0gKGludDY0X3Qpbm4tPmJvb3RfdGltZTsKKwlyZXQgPSBjbGRfcGlwZV91cGNhbGwoY24tPmNuX3BpcGUsICZjdXAtPmN1X3UuY3VfbXNnKTsKIAlpZiAoIXJldCkKLQkJcmV0ID0gY3VwLT5jdV9tc2cuY21fc3RhdHVzOworCQlyZXQgPSBjdXAtPmN1X3UuY3VfbXNnLmNtX3N0YXR1czsKIAogCWZyZWVfY2xkX3VwY2FsbChjdXApOwogb3V0X2VycjoKQEAgLTEyNzksMTYgKzE0NjcsMTYgQEAgbmZzZDRfY2xkX2dyYWNlX2RvbmUoc3RydWN0IG5mc2RfbmV0ICpubikKIAlzdHJ1Y3QgY2xkX3VwY2FsbCAqY3VwOwogCXN0cnVjdCBjbGRfbmV0ICpjbiA9IG5uLT5jbGRfbmV0OwogCi0JY3VwID0gYWxsb2NfY2xkX3VwY2FsbChjbik7CisJY3VwID0gYWxsb2NfY2xkX3VwY2FsbChubik7CiAJaWYgKCFjdXApIHsKIAkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBvdXRfZXJyOwogCX0KIAotCWN1cC0+Y3VfbXNnLmNtX2NtZCA9IENsZF9HcmFjZURvbmU7Ci0JcmV0ID0gY2xkX3BpcGVfdXBjYWxsKGNuLT5jbl9waXBlLCAmY3VwLT5jdV9tc2cpOworCWN1cC0+Y3VfdS5jdV9tc2cuY21fY21kID0gQ2xkX0dyYWNlRG9uZTsKKwlyZXQgPSBjbGRfcGlwZV91cGNhbGwoY24tPmNuX3BpcGUsICZjdXAtPmN1X3UuY3VfbXNnKTsKIAlpZiAoIXJldCkKLQkJcmV0ID0gY3VwLT5jdV9tc2cuY21fc3RhdHVzOworCQlyZXQgPSBjdXAtPmN1X3UuY3VfbXNnLmNtX3N0YXR1czsKIAogCWZyZWVfY2xkX3VwY2FsbChjdXApOwogb3V0X2VycjoKQEAgLTEzMzcsNiArMTUyNSw1MyBAQCBjbGRfcnVubmluZyhzdHJ1Y3QgbmZzZF9uZXQgKm5uKQogfQogCiBzdGF0aWMgaW50CituZnNkNF9jbGRfZ2V0X3ZlcnNpb24oc3RydWN0IG5mc2RfbmV0ICpubikKK3sKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgY2xkX3VwY2FsbCAqY3VwOworCXN0cnVjdCBjbGRfbmV0ICpjbiA9IG5uLT5jbGRfbmV0OworCXVpbnQ4X3QgdmVyc2lvbjsKKworCWN1cCA9IGFsbG9jX2NsZF91cGNhbGwobm4pOworCWlmICghY3VwKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2VycjsKKwl9CisJY3VwLT5jdV91LmN1X21zZy5jbV9jbWQgPSBDbGRfR2V0VmVyc2lvbjsKKwlyZXQgPSBjbGRfcGlwZV91cGNhbGwoY24tPmNuX3BpcGUsICZjdXAtPmN1X3UuY3VfbXNnKTsKKwlpZiAoIXJldCkgeworCQlyZXQgPSBjdXAtPmN1X3UuY3VfbXNnLmNtX3N0YXR1czsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0X2ZyZWU7CisJCXZlcnNpb24gPSBjdXAtPmN1X3UuY3VfbXNnLmNtX3UuY21fdmVyc2lvbjsKKwkJZHByaW50aygiJXM6IHVzZXJzcGFjZSByZXR1cm5lZCB2ZXJzaW9uICV1XG4iLAorCQkJCV9fZnVuY19fLCB2ZXJzaW9uKTsKKwkJaWYgKHZlcnNpb24gPCAxKQorCQkJdmVyc2lvbiA9IDE7CisJCWVsc2UgaWYgKHZlcnNpb24gPiBDTERfVVBDQUxMX1ZFUlNJT04pCisJCQl2ZXJzaW9uID0gQ0xEX1VQQ0FMTF9WRVJTSU9OOworCisJCXN3aXRjaCAodmVyc2lvbikgeworCQljYXNlIDE6CisJCQlubi0+Y2xpZW50X3RyYWNraW5nX29wcyA9ICZuZnNkNF9jbGRfdHJhY2tpbmdfb3BzOworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJCW5uLT5jbGllbnRfdHJhY2tpbmdfb3BzID0gJm5mc2Q0X2NsZF90cmFja2luZ19vcHNfdjI7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJfQorb3V0X2ZyZWU6CisJZnJlZV9jbGRfdXBjYWxsKGN1cCk7CitvdXRfZXJyOgorCWlmIChyZXQpCisJCWRwcmludGsoIiVzOiBVbmFibGUgdG8gZ2V0IHZlcnNpb24gZnJvbSB1c2Vyc3BhY2U6ICVkXG4iLAorCQkJX19mdW5jX18sIHJldCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludAogbmZzZDRfY2xkX3RyYWNraW5nX2luaXQoc3RydWN0IG5ldCAqbmV0KQogewogCWludCBzdGF0dXM7CkBAIC0xMzUxLDYgKzE1ODYsMTEgQEAgbmZzZDRfY2xkX3RyYWNraW5nX2luaXQoc3RydWN0IG5ldCAqbmV0KQogCXN0YXR1cyA9IF9fbmZzZDRfaW5pdF9jbGRfcGlwZShuZXQpOwogCWlmIChzdGF0dXMpCiAJCWdvdG8gZXJyX3NodXRkb3duOworCW5uLT5jbGRfbmV0LT5jbl90Zm0gPSBjcnlwdG9fYWxsb2Nfc2hhc2goInNoYTI1NiIsIDAsIDApOworCWlmIChJU19FUlIobm4tPmNsZF9uZXQtPmNuX3RmbSkpIHsKKwkJc3RhdHVzID0gUFRSX0VSUihubi0+Y2xkX25ldC0+Y25fdGZtKTsKKwkJZ290byBlcnJfcmVtb3ZlOworCX0KIAogCS8qCiAJICogcnBjIHBpcGUgdXBjYWxscyB0YWtlIDMwIHNlY29uZHMgdG8gdGltZSBvdXQsIHNvIHdlIGRvbid0IHdhbnQgdG8KQEAgLTEzNjgsMTAgKzE2MDgsMTQgQEAgbmZzZDRfY2xkX3RyYWNraW5nX2luaXQoc3RydWN0IG5ldCAqbmV0KQogCQlnb3RvIGVycl9yZW1vdmU7CiAJfQogCisJc3RhdHVzID0gbmZzZDRfY2xkX2dldF92ZXJzaW9uKG5uKTsKKwlpZiAoc3RhdHVzID09IC1FT1BOT1RTVVBQKQorCQlwcl93YXJuKCJORlNEOiBuZnNkY2xkIEdldFZlcnNpb24gdXBjYWxsIGZhaWxlZC4gUGxlYXNlIHVwZ3JhZGUgbmZzZGNsZC5cbiIpOworCiAJc3RhdHVzID0gbmZzZDRfY2xkX2dyYWNlX3N0YXJ0KG5uKTsKIAlpZiAoc3RhdHVzKSB7CiAJCWlmIChzdGF0dXMgPT0gLUVPUE5PVFNVUFApCi0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJORlNEOiBQbGVhc2UgdXBncmFkZSBuZnNkY2xkLlxuIik7CisJCQlwcl93YXJuKCJORlNEOiBuZnNkY2xkIEdyYWNlU3RhcnQgdXBjYWxsIGZhaWxlZC4gUGxlYXNlIHVwZ3JhZGUgbmZzZGNsZC5cbiIpOwogCQluZnM0X3JlbGVhc2VfcmVjbGFpbShubik7CiAJCWdvdG8gZXJyX3JlbW92ZTsKIAl9IGVsc2UKQEAgLTE0MDMsNiArMTY0Nyw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZzZDRfY2xpZW50X3RyYWNraW5nX29wcyBuZnNkNF9jbGRfdHJhY2tpbmdfb3BzX3YwID0gewogCS5yZW1vdmUJCT0gbmZzZDRfY2xkX3JlbW92ZSwKIAkuY2hlY2sJCT0gbmZzZDRfY2xkX2NoZWNrX3YwLAogCS5ncmFjZV9kb25lCT0gbmZzZDRfY2xkX2dyYWNlX2RvbmVfdjAsCisJLnZlcnNpb24JPSAxLAorCS5tc2dsZW4JCT0gc2l6ZW9mKHN0cnVjdCBjbGRfbXNnKSwKIH07CiAKIC8qIEZvciBuZXdlciBuZnNkY2xkJ3MgKi8KQEAgLTE0MTMsNiArMTY1OSwyMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5mc2Q0X2NsaWVudF90cmFja2luZ19vcHMgbmZzZDRfY2xkX3RyYWNraW5nX29wcyA9IHsKIAkucmVtb3ZlCQk9IG5mc2Q0X2NsZF9yZW1vdmUsCiAJLmNoZWNrCQk9IG5mc2Q0X2NsZF9jaGVjaywKIAkuZ3JhY2VfZG9uZQk9IG5mc2Q0X2NsZF9ncmFjZV9kb25lLAorCS52ZXJzaW9uCT0gMSwKKwkubXNnbGVuCQk9IHNpemVvZihzdHJ1Y3QgY2xkX21zZyksCit9OworCisvKiB2MiBjcmVhdGUvY2hlY2sgb3BzIGluY2x1ZGUgdGhlIHByaW5jaXBhbCwgaWYgYXZhaWxhYmxlICovCitzdGF0aWMgY29uc3Qgc3RydWN0IG5mc2Q0X2NsaWVudF90cmFja2luZ19vcHMgbmZzZDRfY2xkX3RyYWNraW5nX29wc192MiA9IHsKKwkuaW5pdAkJPSBuZnNkNF9jbGRfdHJhY2tpbmdfaW5pdCwKKwkuZXhpdAkJPSBuZnNkNF9jbGRfdHJhY2tpbmdfZXhpdCwKKwkuY3JlYXRlCQk9IG5mc2Q0X2NsZF9jcmVhdGVfdjIsCisJLnJlbW92ZQkJPSBuZnNkNF9jbGRfcmVtb3ZlLAorCS5jaGVjawkJPSBuZnNkNF9jbGRfY2hlY2tfdjIsCisJLmdyYWNlX2RvbmUJPSBuZnNkNF9jbGRfZ3JhY2VfZG9uZSwKKwkudmVyc2lvbgk9IDIsCisJLm1zZ2xlbgkJPSBzaXplb2Yoc3RydWN0IGNsZF9tc2dfdjIpLAogfTsKIAogLyogdXBjYWxsIHZpYSB1c2VybW9kZWhlbHBlciAqLwpAQCAtMTc2MCw2ICsyMDIwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZnNkNF9jbGllbnRfdHJhY2tpbmdfb3BzIG5mc2Q0X3VtaF90cmFja2luZ19vcHMgPSB7CiAJLnJlbW92ZQkJPSBuZnNkNF91bWhfY2x0cmFja19yZW1vdmUsCiAJLmNoZWNrCQk9IG5mc2Q0X3VtaF9jbHRyYWNrX2NoZWNrLAogCS5ncmFjZV9kb25lCT0gbmZzZDRfdW1oX2NsdHJhY2tfZ3JhY2VfZG9uZSwKKwkudmVyc2lvbgk9IDEsCisJLm1zZ2xlbgkJPSAwLAogfTsKIAogaW50CmRpZmYgLS1naXQgYS9mcy9uZnNkL25mczRzdGF0ZS5jIGIvZnMvbmZzZC9uZnM0c3RhdGUuYwppbmRleCA3ODU3OTQyLi5jNjVhZWFhIDEwMDY0NAotLS0gYS9mcy9uZnNkL25mczRzdGF0ZS5jCisrKyBiL2ZzL25mc2QvbmZzNHN0YXRlLmMKQEAgLTUwLDYgKzUwLDcgQEAKIAogI2luY2x1ZGUgIm5ldG5zLmgiCiAjaW5jbHVkZSAicG5mcy5oIgorI2luY2x1ZGUgImZpbGVjYWNoZS5oIgogCiAjZGVmaW5lIE5GU0REQkdfRkFDSUxJVFkgICAgICAgICAgICAgICAgTkZTRERCR19QUk9DCiAKQEAgLTQyOSwxOCArNDMwLDE4IEBAIHB1dF9uZnM0X2ZpbGUoc3RydWN0IG5mczRfZmlsZSAqZmkpCiAJfQogfQogCi1zdGF0aWMgc3RydWN0IGZpbGUgKgorc3RhdGljIHN0cnVjdCBuZnNkX2ZpbGUgKgogX19uZnM0X2dldF9mZChzdHJ1Y3QgbmZzNF9maWxlICpmLCBpbnQgb2ZsYWcpCiB7CiAJaWYgKGYtPmZpX2Zkc1tvZmxhZ10pCi0JCXJldHVybiBnZXRfZmlsZShmLT5maV9mZHNbb2ZsYWddKTsKKwkJcmV0dXJuIG5mc2RfZmlsZV9nZXQoZi0+ZmlfZmRzW29mbGFnXSk7CiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmlsZSAqCitzdGF0aWMgc3RydWN0IG5mc2RfZmlsZSAqCiBmaW5kX3dyaXRlYWJsZV9maWxlX2xvY2tlZChzdHJ1Y3QgbmZzNF9maWxlICpmKQogewotCXN0cnVjdCBmaWxlICpyZXQ7CisJc3RydWN0IG5mc2RfZmlsZSAqcmV0OwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZi0+ZmlfbG9jayk7CiAKQEAgLTQ1MCwxMCArNDUxLDEwIEBAIGZpbmRfd3JpdGVhYmxlX2ZpbGVfbG9ja2VkKHN0cnVjdCBuZnM0X2ZpbGUgKmYpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHN0cnVjdCBmaWxlICoKK3N0YXRpYyBzdHJ1Y3QgbmZzZF9maWxlICoKIGZpbmRfd3JpdGVhYmxlX2ZpbGUoc3RydWN0IG5mczRfZmlsZSAqZikKIHsKLQlzdHJ1Y3QgZmlsZSAqcmV0OworCXN0cnVjdCBuZnNkX2ZpbGUgKnJldDsKIAogCXNwaW5fbG9jaygmZi0+ZmlfbG9jayk7CiAJcmV0ID0gZmluZF93cml0ZWFibGVfZmlsZV9sb2NrZWQoZik7CkBAIC00NjIsOSArNDYzLDEwIEBAIGZpbmRfd3JpdGVhYmxlX2ZpbGUoc3RydWN0IG5mczRfZmlsZSAqZikKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgc3RydWN0IGZpbGUgKmZpbmRfcmVhZGFibGVfZmlsZV9sb2NrZWQoc3RydWN0IG5mczRfZmlsZSAqZikKK3N0YXRpYyBzdHJ1Y3QgbmZzZF9maWxlICoKK2ZpbmRfcmVhZGFibGVfZmlsZV9sb2NrZWQoc3RydWN0IG5mczRfZmlsZSAqZikKIHsKLQlzdHJ1Y3QgZmlsZSAqcmV0OworCXN0cnVjdCBuZnNkX2ZpbGUgKnJldDsKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmYtPmZpX2xvY2spOwogCkBAIC00NzQsMTAgKzQ3NiwxMCBAQCBzdGF0aWMgc3RydWN0IGZpbGUgKmZpbmRfcmVhZGFibGVfZmlsZV9sb2NrZWQoc3RydWN0IG5mczRfZmlsZSAqZikKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgc3RydWN0IGZpbGUgKgorc3RhdGljIHN0cnVjdCBuZnNkX2ZpbGUgKgogZmluZF9yZWFkYWJsZV9maWxlKHN0cnVjdCBuZnM0X2ZpbGUgKmYpCiB7Ci0Jc3RydWN0IGZpbGUgKnJldDsKKwlzdHJ1Y3QgbmZzZF9maWxlICpyZXQ7CiAKIAlzcGluX2xvY2soJmYtPmZpX2xvY2spOwogCXJldCA9IGZpbmRfcmVhZGFibGVfZmlsZV9sb2NrZWQoZik7CkBAIC00ODYsMTAgKzQ4OCwxMCBAQCBmaW5kX3JlYWRhYmxlX2ZpbGUoc3RydWN0IG5mczRfZmlsZSAqZikKIAlyZXR1cm4gcmV0OwogfQogCi1zdHJ1Y3QgZmlsZSAqCitzdHJ1Y3QgbmZzZF9maWxlICoKIGZpbmRfYW55X2ZpbGUoc3RydWN0IG5mczRfZmlsZSAqZikKIHsKLQlzdHJ1Y3QgZmlsZSAqcmV0OworCXN0cnVjdCBuZnNkX2ZpbGUgKnJldDsKIAogCXNwaW5fbG9jaygmZi0+ZmlfbG9jayk7CiAJcmV0ID0gX19uZnM0X2dldF9mZChmLCBPX1JEV1IpOwpAQCAtNTkwLDE3ICs1OTIsMTcgQEAgc3RhdGljIHZvaWQgX19uZnM0X2ZpbGVfcHV0X2FjY2VzcyhzdHJ1Y3QgbmZzNF9maWxlICpmcCwgaW50IG9mbGFnKQogCW1pZ2h0X2xvY2soJmZwLT5maV9sb2NrKTsKIAogCWlmIChhdG9taWNfZGVjX2FuZF9sb2NrKCZmcC0+ZmlfYWNjZXNzW29mbGFnXSwgJmZwLT5maV9sb2NrKSkgewotCQlzdHJ1Y3QgZmlsZSAqZjEgPSBOVUxMOwotCQlzdHJ1Y3QgZmlsZSAqZjIgPSBOVUxMOworCQlzdHJ1Y3QgbmZzZF9maWxlICpmMSA9IE5VTEw7CisJCXN0cnVjdCBuZnNkX2ZpbGUgKmYyID0gTlVMTDsKIAogCQlzd2FwKGYxLCBmcC0+ZmlfZmRzW29mbGFnXSk7CiAJCWlmIChhdG9taWNfcmVhZCgmZnAtPmZpX2FjY2Vzc1sxIC0gb2ZsYWddKSA9PSAwKQogCQkJc3dhcChmMiwgZnAtPmZpX2Zkc1tPX1JEV1JdKTsKIAkJc3Bpbl91bmxvY2soJmZwLT5maV9sb2NrKTsKIAkJaWYgKGYxKQotCQkJZnB1dChmMSk7CisJCQluZnNkX2ZpbGVfcHV0KGYxKTsKIAkJaWYgKGYyKQotCQkJZnB1dChmMik7CisJCQluZnNkX2ZpbGVfcHV0KGYyKTsKIAl9CiB9CiAKQEAgLTkzMywyNSArOTM1LDI1IEBAIG5mczRfaW5jX2FuZF9jb3B5X3N0YXRlaWQoc3RhdGVpZF90ICpkc3QsIHN0cnVjdCBuZnM0X3N0aWQgKnN0aWQpCiAKIHN0YXRpYyB2b2lkIHB1dF9kZWxlZ19maWxlKHN0cnVjdCBuZnM0X2ZpbGUgKmZwKQogewotCXN0cnVjdCBmaWxlICpmaWxwID0gTlVMTDsKKwlzdHJ1Y3QgbmZzZF9maWxlICpuZiA9IE5VTEw7CiAKIAlzcGluX2xvY2soJmZwLT5maV9sb2NrKTsKIAlpZiAoLS1mcC0+ZmlfZGVsZWdlZXMgPT0gMCkKLQkJc3dhcChmaWxwLCBmcC0+ZmlfZGVsZWdfZmlsZSk7CisJCXN3YXAobmYsIGZwLT5maV9kZWxlZ19maWxlKTsKIAlzcGluX3VubG9jaygmZnAtPmZpX2xvY2spOwogCi0JaWYgKGZpbHApCi0JCWZwdXQoZmlscCk7CisJaWYgKG5mKQorCQluZnNkX2ZpbGVfcHV0KG5mKTsKIH0KIAogc3RhdGljIHZvaWQgbmZzNF91bmxvY2tfZGVsZWdfbGVhc2Uoc3RydWN0IG5mczRfZGVsZWdhdGlvbiAqZHApCiB7CiAJc3RydWN0IG5mczRfZmlsZSAqZnAgPSBkcC0+ZGxfc3RpZC5zY19maWxlOwotCXN0cnVjdCBmaWxlICpmaWxwID0gZnAtPmZpX2RlbGVnX2ZpbGU7CisJc3RydWN0IG5mc2RfZmlsZSAqbmYgPSBmcC0+ZmlfZGVsZWdfZmlsZTsKIAogCVdBUk5fT05fT05DRSghZnAtPmZpX2RlbGVnZWVzKTsKIAotCXZmc19zZXRsZWFzZShmaWxwLCBGX1VOTENLLCBOVUxMLCAodm9pZCAqKikmZHApOworCXZmc19zZXRsZWFzZShuZi0+bmZfZmlsZSwgRl9VTkxDSywgTlVMTCwgKHZvaWQgKiopJmRwKTsKIAlwdXRfZGVsZWdfZmlsZShmcCk7CiB9CiAKQEAgLTEyODksMTEgKzEyOTEsMTQgQEAgc3RhdGljIHZvaWQgbmZzNF9mcmVlX2xvY2tfc3RhdGVpZChzdHJ1Y3QgbmZzNF9zdGlkICpzdGlkKQogewogCXN0cnVjdCBuZnM0X29sX3N0YXRlaWQgKnN0cCA9IG9wZW5sb2Nrc3RhdGVpZChzdGlkKTsKIAlzdHJ1Y3QgbmZzNF9sb2Nrb3duZXIgKmxvID0gbG9ja293bmVyKHN0cC0+c3Rfc3RhdGVvd25lcik7Ci0Jc3RydWN0IGZpbGUgKmZpbGU7CisJc3RydWN0IG5mc2RfZmlsZSAqbmY7CiAKLQlmaWxlID0gZmluZF9hbnlfZmlsZShzdHAtPnN0X3N0aWQuc2NfZmlsZSk7Ci0JaWYgKGZpbGUpCi0JCWZpbHBfY2xvc2UoZmlsZSwgKGZsX293bmVyX3QpbG8pOworCW5mID0gZmluZF9hbnlfZmlsZShzdHAtPnN0X3N0aWQuc2NfZmlsZSk7CisJaWYgKG5mKSB7CisJCWdldF9maWxlKG5mLT5uZl9maWxlKTsKKwkJZmlscF9jbG9zZShuZi0+bmZfZmlsZSwgKGZsX293bmVyX3QpbG8pOworCQluZnNkX2ZpbGVfcHV0KG5mKTsKKwl9CiAJbmZzNF9mcmVlX29sX3N0YXRlaWQoc3RpZCk7CiB9CiAKQEAgLTE1NjMsMjEgKzE1NjgsMzkgQEAgc3RhdGljIGlubGluZSB1MzIgc2xvdF9ieXRlcyhzdHJ1Y3QgbmZzZDRfY2hhbm5lbF9hdHRycyAqY2EpCiAgKiByZS1uZWdvdGlhdGUgYWN0aXZlIHNlc3Npb25zIGFuZCByZWR1Y2UgdGhlaXIgc2xvdCB1c2FnZSB0byBtYWtlCiAgKiByb29tIGZvciBuZXcgY29ubmVjdGlvbnMuIEZvciBub3cgd2UganVzdCBmYWlsIHRoZSBjcmVhdGUgc2Vzc2lvbi4KICAqLwotc3RhdGljIHUzMiBuZnNkNF9nZXRfZHJjX21lbShzdHJ1Y3QgbmZzZDRfY2hhbm5lbF9hdHRycyAqY2EpCitzdGF0aWMgdTMyIG5mc2Q0X2dldF9kcmNfbWVtKHN0cnVjdCBuZnNkNF9jaGFubmVsX2F0dHJzICpjYSwgc3RydWN0IG5mc2RfbmV0ICpubikKIHsKIAl1MzIgc2xvdHNpemUgPSBzbG90X2J5dGVzKGNhKTsKIAl1MzIgbnVtID0gY2EtPm1heHJlcXM7CiAJdW5zaWduZWQgbG9uZyBhdmFpbCwgdG90YWxfYXZhaWw7CisJdW5zaWduZWQgaW50IHNjYWxlX2ZhY3RvcjsKIAogCXNwaW5fbG9jaygmbmZzZF9kcmNfbG9jayk7Ci0JdG90YWxfYXZhaWwgPSBuZnNkX2RyY19tYXhfbWVtIC0gbmZzZF9kcmNfbWVtX3VzZWQ7CisJaWYgKG5mc2RfZHJjX21heF9tZW0gPiBuZnNkX2RyY19tZW1fdXNlZCkKKwkJdG90YWxfYXZhaWwgPSBuZnNkX2RyY19tYXhfbWVtIC0gbmZzZF9kcmNfbWVtX3VzZWQ7CisJZWxzZQorCQkvKiBXZSBoYXZlIGhhbmRlZCBvdXQgbW9yZSBzcGFjZSB0aGFuIHdlIGNob3NlIGluCisJCSAqIHNldF9tYXhfZHJjKCkgdG8gYWxsb3cuICBUaGF0IGlzbid0IHJlYWxseSBhCisJCSAqIHByb2JsZW0gYXMgbG9uZyBhcyB0aGF0IGRvZXNuJ3QgbWFrZSB1cyB0aGluayB3ZQorCQkgKiBoYXZlIGxvdHMgbW9yZSBkdWUgdG8gaW50ZWdlciBvdmVyZmxvdy4KKwkJICovCisJCXRvdGFsX2F2YWlsID0gMDsKIAlhdmFpbCA9IG1pbigodW5zaWduZWQgbG9uZylORlNEX01BWF9NRU1fUEVSX1NFU1NJT04sIHRvdGFsX2F2YWlsKTsKIAkvKgotCSAqIE5ldmVyIHVzZSBtb3JlIHRoYW4gYSB0aGlyZCBvZiB0aGUgcmVtYWluaW5nIG1lbW9yeSwKLQkgKiB1bmxlc3MgaXQncyB0aGUgb25seSB3YXkgdG8gZ2l2ZSB0aGlzIGNsaWVudCBhIHNsb3Q6CisJICogTmV2ZXIgdXNlIG1vcmUgdGhhbiBhIGZyYWN0aW9uIG9mIHRoZSByZW1haW5pbmcgbWVtb3J5LAorCSAqIHVubGVzcyBpdCdzIHRoZSBvbmx5IHdheSB0byBnaXZlIHRoaXMgY2xpZW50IGEgc2xvdC4KKwkgKiBUaGUgY2hvc2VuIGZyYWN0aW9uIGlzIGVpdGhlciAxLzggb3IgMS9udW1iZXIgb2YgdGhyZWFkcywKKwkgKiB3aGljaGV2ZXIgaXMgc21hbGxlci4gIFRoaXMgZW5zdXJlcyB0aGVyZSBhcmUgYWRlcXVhdGUKKwkgKiBzbG90cyB0byBzdXBwb3J0IG11bHRpcGxlIGNsaWVudHMgcGVyIHRocmVhZC4KKwkgKiBHaXZlIHRoZSBjbGllbnQgb25lIHNsb3QgZXZlbiBpZiB0aGF0IHdvdWxkIHJlcXVpcmUKKwkgKiBvdmVyLWFsbG9jYXRpb24tLWl0IGlzIGJldHRlciB0aGFuIGZhaWx1cmUuCiAJICovCi0JYXZhaWwgPSBjbGFtcF90KHVuc2lnbmVkIGxvbmcsIGF2YWlsLCBzbG90c2l6ZSwgdG90YWxfYXZhaWwvMyk7CisJc2NhbGVfZmFjdG9yID0gbWF4X3QodW5zaWduZWQgaW50LCA4LCBubi0+bmZzZF9zZXJ2LT5zdl9ucnRocmVhZHMpOworCisJYXZhaWwgPSBjbGFtcF90KHVuc2lnbmVkIGxvbmcsIGF2YWlsLCBzbG90c2l6ZSwKKwkJCXRvdGFsX2F2YWlsL3NjYWxlX2ZhY3Rvcik7CiAJbnVtID0gbWluX3QoaW50LCBudW0sIGF2YWlsIC8gc2xvdHNpemUpOworCW51bSA9IG1heF90KGludCwgbnVtLCAxKTsKIAluZnNkX2RyY19tZW1fdXNlZCArPSBudW0gKiBzbG90c2l6ZTsKIAlzcGluX3VubG9jaygmbmZzZF9kcmNfbG9jayk7CiAKQEAgLTIzMjMsOSArMjM0Niw5IEBAIHN0YXRpYyB2b2lkIHN0YXRlc19zdG9wKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdikKIAlzcGluX3VubG9jaygmY2xwLT5jbF9sb2NrKTsKIH0KIAotc3RhdGljIHZvaWQgbmZzNF9zaG93X3N1cGVyYmxvY2soc3RydWN0IHNlcV9maWxlICpzLCBzdHJ1Y3QgZmlsZSAqZikKK3N0YXRpYyB2b2lkIG5mczRfc2hvd19zdXBlcmJsb2NrKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IG5mc2RfZmlsZSAqZikKIHsKLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmKTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZi0+bmZfaW5vZGU7CiAKIAlzZXFfcHJpbnRmKHMsICJzdXBlcmJsb2NrOiBcIiUwMng6JTAyeDolbGRcIiIsCiAJCQkJCU1BSk9SKGlub2RlLT5pX3NiLT5zX2RldiksCkBAIC0yMzQzLDcgKzIzNjYsNyBAQCBzdGF0aWMgaW50IG5mczRfc2hvd19vcGVuKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IG5mczRfc3RpZCAqc3QpCiB7CiAJc3RydWN0IG5mczRfb2xfc3RhdGVpZCAqb2xzOwogCXN0cnVjdCBuZnM0X2ZpbGUgKm5mOwotCXN0cnVjdCBmaWxlICpmaWxlOworCXN0cnVjdCBuZnNkX2ZpbGUgKmZpbGU7CiAJc3RydWN0IG5mczRfc3RhdGVvd25lciAqb287CiAJdW5zaWduZWQgaW50IGFjY2VzcywgZGVueTsKIApAQCAtMjM3MCw3ICsyMzkzLDcgQEAgc3RhdGljIGludCBuZnM0X3Nob3dfb3BlbihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBuZnM0X3N0aWQgKnN0KQogCXNlcV9wcmludGYocywgIiwgIik7CiAJbmZzNF9zaG93X293bmVyKHMsIG9vKTsKIAlzZXFfcHJpbnRmKHMsICIgfVxuIik7Ci0JZnB1dChmaWxlKTsKKwluZnNkX2ZpbGVfcHV0KGZpbGUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMzc5LDcgKzI0MDIsNyBAQCBzdGF0aWMgaW50IG5mczRfc2hvd19sb2NrKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IG5mczRfc3RpZCAqc3QpCiB7CiAJc3RydWN0IG5mczRfb2xfc3RhdGVpZCAqb2xzOwogCXN0cnVjdCBuZnM0X2ZpbGUgKm5mOwotCXN0cnVjdCBmaWxlICpmaWxlOworCXN0cnVjdCBuZnNkX2ZpbGUgKmZpbGU7CiAJc3RydWN0IG5mczRfc3RhdGVvd25lciAqb287CiAKIAlvbHMgPSBvcGVubG9ja3N0YXRlaWQoc3QpOwpAQCAtMjQwMSw3ICsyNDI0LDcgQEAgc3RhdGljIGludCBuZnM0X3Nob3dfbG9jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBuZnM0X3N0aWQgKnN0KQogCXNlcV9wcmludGYocywgIiwgIik7CiAJbmZzNF9zaG93X293bmVyKHMsIG9vKTsKIAlzZXFfcHJpbnRmKHMsICIgfVxuIik7Ci0JZnB1dChmaWxlKTsKKwluZnNkX2ZpbGVfcHV0KGZpbGUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yNDEwLDcgKzI0MzMsNyBAQCBzdGF0aWMgaW50IG5mczRfc2hvd19kZWxlZyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBuZnM0X3N0aWQgKnN0KQogewogCXN0cnVjdCBuZnM0X2RlbGVnYXRpb24gKmRzOwogCXN0cnVjdCBuZnM0X2ZpbGUgKm5mOwotCXN0cnVjdCBmaWxlICpmaWxlOworCXN0cnVjdCBuZnNkX2ZpbGUgKmZpbGU7CiAKIAlkcyA9IGRlbGVnc3RhdGVpZChzdCk7CiAJbmYgPSBzdC0+c2NfZmlsZTsKQEAgLTI0MzMsNyArMjQ1Niw3IEBAIHN0YXRpYyBpbnQgbmZzNF9zaG93X2RlbGVnKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IG5mczRfc3RpZCAqc3QpCiBzdGF0aWMgaW50IG5mczRfc2hvd19sYXlvdXQoc3RydWN0IHNlcV9maWxlICpzLCBzdHJ1Y3QgbmZzNF9zdGlkICpzdCkKIHsKIAlzdHJ1Y3QgbmZzNF9sYXlvdXRfc3RhdGVpZCAqbHM7Ci0Jc3RydWN0IGZpbGUgKmZpbGU7CisJc3RydWN0IG5mc2RfZmlsZSAqZmlsZTsKIAogCWxzID0gY29udGFpbmVyX29mKHN0LCBzdHJ1Y3QgbmZzNF9sYXlvdXRfc3RhdGVpZCwgbHNfc3RpZCk7CiAJZmlsZSA9IGxzLT5sc19maWxlOwpAQCAtMzE2OSwxMCArMzE5MiwxMCBAQCBzdGF0aWMgX19iZTMyIGNoZWNrX2ZvcmVjaGFubmVsX2F0dHJzKHN0cnVjdCBuZnNkNF9jaGFubmVsX2F0dHJzICpjYSwgc3RydWN0IG5mcwogCSAqIHBlcmZvcm1hbmNlLiAgV2hlbiBzaG9ydCBvbiBtZW1vcnkgd2UgdGhlcmVmb3JlIHByZWZlciB0bwogCSAqIGRlY3JlYXNlIG51bWJlciBvZiBzbG90cyBpbnN0ZWFkIG9mIHRoZWlyIHNpemUuICBDbGllbnRzIHRoYXQKIAkgKiByZXF1ZXN0IGxhcmdlciBzbG90cyB0aGFuIHRoZXkgbmVlZCB3aWxsIGdldCBwb29yIHJlc3VsdHM6CisJICogTm90ZSB0aGF0IHdlIGFsd2F5cyBhbGxvdyBhdCBsZWFzdCBvbmUgc2xvdCwgYmVjYXVzZSBvdXIKKwkgKiBhY2NvdW50aW5nIGlzIHNvZnQgYW5kIHByb3ZpZGVzIG5vIGd1YXJhbnRlZXMgZWl0aGVyIHdheS4KIAkgKi8KLQljYS0+bWF4cmVxcyA9IG5mc2Q0X2dldF9kcmNfbWVtKGNhKTsKLQlpZiAoIWNhLT5tYXhyZXFzKQotCQlyZXR1cm4gbmZzZXJyX2p1a2Vib3g7CisJY2EtPm1heHJlcXMgPSBuZnNkNF9nZXRfZHJjX21lbShjYSwgbm4pOwogCiAJcmV0dXJuIG5mc19vazsKIH0KQEAgLTQ2NTEsNyArNDY3NCw3IEBAIHN0YXRpYyBfX2JlMzIgbmZzNF9nZXRfdmZzX2ZpbGUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mczRfZmlsZSAqZnAsCiAJCXN0cnVjdCBzdmNfZmggKmN1cl9maCwgc3RydWN0IG5mczRfb2xfc3RhdGVpZCAqc3RwLAogCQlzdHJ1Y3QgbmZzZDRfb3BlbiAqb3BlbikKIHsKLQlzdHJ1Y3QgZmlsZSAqZmlscCA9IE5VTEw7CisJc3RydWN0IG5mc2RfZmlsZSAqbmYgPSBOVUxMOwogCV9fYmUzMiBzdGF0dXM7CiAJaW50IG9mbGFnID0gbmZzNF9hY2Nlc3NfdG9fb21vZGUob3Blbi0+b3Bfc2hhcmVfYWNjZXNzKTsKIAlpbnQgYWNjZXNzID0gbmZzNF9hY2Nlc3NfdG9fYWNjZXNzKG9wZW4tPm9wX3NoYXJlX2FjY2Vzcyk7CkBAIC00Njg3LDE4ICs0NzEwLDE4IEBAIHN0YXRpYyBfX2JlMzIgbmZzNF9nZXRfdmZzX2ZpbGUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mczRfZmlsZSAqZnAsCiAKIAlpZiAoIWZwLT5maV9mZHNbb2ZsYWddKSB7CiAJCXNwaW5fdW5sb2NrKCZmcC0+ZmlfbG9jayk7Ci0JCXN0YXR1cyA9IG5mc2Rfb3BlbihycXN0cCwgY3VyX2ZoLCBTX0lGUkVHLCBhY2Nlc3MsICZmaWxwKTsKKwkJc3RhdHVzID0gbmZzZF9maWxlX2FjcXVpcmUocnFzdHAsIGN1cl9maCwgYWNjZXNzLCAmbmYpOwogCQlpZiAoc3RhdHVzKQogCQkJZ290byBvdXRfcHV0X2FjY2VzczsKIAkJc3Bpbl9sb2NrKCZmcC0+ZmlfbG9jayk7CiAJCWlmICghZnAtPmZpX2Zkc1tvZmxhZ10pIHsKLQkJCWZwLT5maV9mZHNbb2ZsYWddID0gZmlscDsKLQkJCWZpbHAgPSBOVUxMOworCQkJZnAtPmZpX2Zkc1tvZmxhZ10gPSBuZjsKKwkJCW5mID0gTlVMTDsKIAkJfQogCX0KIAlzcGluX3VubG9jaygmZnAtPmZpX2xvY2spOwotCWlmIChmaWxwKQotCQlmcHV0KGZpbHApOworCWlmIChuZikKKwkJbmZzZF9maWxlX3B1dChuZik7CiAKIAlzdGF0dXMgPSBuZnNkNF90cnVuY2F0ZShycXN0cCwgY3VyX2ZoLCBvcGVuKTsKIAlpZiAoc3RhdHVzKQpAQCAtNDc2Nyw3ICs0NzkwLDcgQEAgc3RhdGljIHN0cnVjdCBmaWxlX2xvY2sgKm5mczRfYWxsb2NfaW5pdF9sZWFzZShzdHJ1Y3QgbmZzNF9kZWxlZ2F0aW9uICpkcCwKIAlmbC0+ZmxfZW5kID0gT0ZGU0VUX01BWDsKIAlmbC0+Zmxfb3duZXIgPSAoZmxfb3duZXJfdClkcDsKIAlmbC0+ZmxfcGlkID0gY3VycmVudC0+dGdpZDsKLQlmbC0+ZmxfZmlsZSA9IGRwLT5kbF9zdGlkLnNjX2ZpbGUtPmZpX2RlbGVnX2ZpbGU7CisJZmwtPmZsX2ZpbGUgPSBkcC0+ZGxfc3RpZC5zY19maWxlLT5maV9kZWxlZ19maWxlLT5uZl9maWxlOwogCXJldHVybiBmbDsKIH0KIApAQCAtNDc3Nyw3ICs0ODAwLDcgQEAgbmZzNF9zZXRfZGVsZWdhdGlvbihzdHJ1Y3QgbmZzNF9jbGllbnQgKmNscCwgc3RydWN0IHN2Y19maCAqZmgsCiB7CiAJaW50IHN0YXR1cyA9IDA7CiAJc3RydWN0IG5mczRfZGVsZWdhdGlvbiAqZHA7Ci0Jc3RydWN0IGZpbGUgKmZpbHA7CisJc3RydWN0IG5mc2RfZmlsZSAqbmY7CiAJc3RydWN0IGZpbGVfbG9jayAqZmw7CiAKIAkvKgpAQCAtNDc4OCw4ICs0ODExLDggQEAgbmZzNF9zZXRfZGVsZWdhdGlvbihzdHJ1Y3QgbmZzNF9jbGllbnQgKmNscCwgc3RydWN0IHN2Y19maCAqZmgsCiAJaWYgKGZwLT5maV9oYWRfY29uZmxpY3QpCiAJCXJldHVybiBFUlJfUFRSKC1FQUdBSU4pOwogCi0JZmlscCA9IGZpbmRfcmVhZGFibGVfZmlsZShmcCk7Ci0JaWYgKCFmaWxwKSB7CisJbmYgPSBmaW5kX3JlYWRhYmxlX2ZpbGUoZnApOworCWlmICghbmYpIHsKIAkJLyogV2Ugc2hvdWxkIGFsd2F5cyBoYXZlIGEgcmVhZGFibGUgZmlsZSBoZXJlICovCiAJCVdBUk5fT05fT05DRSgxKTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVCQURGKTsKQEAgLTQ3OTksMTcgKzQ4MjIsMTcgQEAgbmZzNF9zZXRfZGVsZWdhdGlvbihzdHJ1Y3QgbmZzNF9jbGllbnQgKmNscCwgc3RydWN0IHN2Y19maCAqZmgsCiAJaWYgKG5mczRfZGVsZWdhdGlvbl9leGlzdHMoY2xwLCBmcCkpCiAJCXN0YXR1cyA9IC1FQUdBSU47CiAJZWxzZSBpZiAoIWZwLT5maV9kZWxlZ19maWxlKSB7Ci0JCWZwLT5maV9kZWxlZ19maWxlID0gZmlscDsKKwkJZnAtPmZpX2RlbGVnX2ZpbGUgPSBuZjsKIAkJLyogaW5jcmVtZW50IGVhcmx5IHRvIHByZXZlbnQgZmlfZGVsZWdfZmlsZSBmcm9tIGJlaW5nCiAJCSAqIGNsZWFyZWQgKi8KIAkJZnAtPmZpX2RlbGVnZWVzID0gMTsKLQkJZmlscCA9IE5VTEw7CisJCW5mID0gTlVMTDsKIAl9IGVsc2UKIAkJZnAtPmZpX2RlbGVnZWVzKys7CiAJc3Bpbl91bmxvY2soJmZwLT5maV9sb2NrKTsKIAlzcGluX3VubG9jaygmc3RhdGVfbG9jayk7Ci0JaWYgKGZpbHApCi0JCWZwdXQoZmlscCk7CisJaWYgKG5mKQorCQluZnNkX2ZpbGVfcHV0KG5mKTsKIAlpZiAoc3RhdHVzKQogCQlyZXR1cm4gRVJSX1BUUihzdGF0dXMpOwogCkBAIC00ODIyLDcgKzQ4NDUsNyBAQCBuZnM0X3NldF9kZWxlZ2F0aW9uKHN0cnVjdCBuZnM0X2NsaWVudCAqY2xwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaCwKIAlpZiAoIWZsKQogCQlnb3RvIG91dF9jbG50X29kc3RhdGU7CiAKLQlzdGF0dXMgPSB2ZnNfc2V0bGVhc2UoZnAtPmZpX2RlbGVnX2ZpbGUsIGZsLT5mbF90eXBlLCAmZmwsIE5VTEwpOworCXN0YXR1cyA9IHZmc19zZXRsZWFzZShmcC0+ZmlfZGVsZWdfZmlsZS0+bmZfZmlsZSwgZmwtPmZsX3R5cGUsICZmbCwgTlVMTCk7CiAJaWYgKGZsKQogCQlsb2Nrc19mcmVlX2xvY2soZmwpOwogCWlmIChzdGF0dXMpCkBAIC00ODQyLDcgKzQ4NjUsNyBAQCBuZnM0X3NldF9kZWxlZ2F0aW9uKHN0cnVjdCBuZnM0X2NsaWVudCAqY2xwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaCwKIAogCXJldHVybiBkcDsKIG91dF91bmxvY2s6Ci0JdmZzX3NldGxlYXNlKGZwLT5maV9kZWxlZ19maWxlLCBGX1VOTENLLCBOVUxMLCAodm9pZCAqKikmZHApOworCXZmc19zZXRsZWFzZShmcC0+ZmlfZGVsZWdfZmlsZS0+bmZfZmlsZSwgRl9VTkxDSywgTlVMTCwgKHZvaWQgKiopJmRwKTsKIG91dF9jbG50X29kc3RhdGU6CiAJcHV0X2NsbnRfb2RzdGF0ZShkcC0+ZGxfY2xudF9vZHN0YXRlKTsKIAluZnM0X3B1dF9zdGlkKCZkcC0+ZGxfc3RpZCk7CkBAIC01NTEzLDcgKzU1MzYsNyBAQCBuZnNkNF9sb29rdXBfc3RhdGVpZChzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAlyZXR1cm4gbmZzX29rOwogfQogCi1zdGF0aWMgc3RydWN0IGZpbGUgKgorc3RhdGljIHN0cnVjdCBuZnNkX2ZpbGUgKgogbmZzNF9maW5kX2ZpbGUoc3RydWN0IG5mczRfc3RpZCAqcywgaW50IGZsYWdzKQogewogCWlmICghcykKQEAgLTU1MjMsNyArNTU0Niw3IEBAIG5mczRfZmluZF9maWxlKHN0cnVjdCBuZnM0X3N0aWQgKnMsIGludCBmbGFncykKIAljYXNlIE5GUzRfREVMRUdfU1RJRDoKIAkJaWYgKFdBUk5fT05fT05DRSghcy0+c2NfZmlsZS0+ZmlfZGVsZWdfZmlsZSkpCiAJCQlyZXR1cm4gTlVMTDsKLQkJcmV0dXJuIGdldF9maWxlKHMtPnNjX2ZpbGUtPmZpX2RlbGVnX2ZpbGUpOworCQlyZXR1cm4gbmZzZF9maWxlX2dldChzLT5zY19maWxlLT5maV9kZWxlZ19maWxlKTsKIAljYXNlIE5GUzRfT1BFTl9TVElEOgogCWNhc2UgTkZTNF9MT0NLX1NUSUQ6CiAJCWlmIChmbGFncyAmIFJEX1NUQVRFKQpAQCAtNTU0OSwzMiArNTU3MiwyOCBAQCBuZnM0X2NoZWNrX29sc3RhdGVpZChzdHJ1Y3QgbmZzNF9vbF9zdGF0ZWlkICpvbHMsIGludCBmbGFncykKIAogc3RhdGljIF9fYmUzMgogbmZzNF9jaGVja19maWxlKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgc3RydWN0IG5mczRfc3RpZCAqcywKLQkJc3RydWN0IGZpbGUgKipmaWxwcCwgYm9vbCAqdG1wX2ZpbGUsIGludCBmbGFncykKKwkJc3RydWN0IG5mc2RfZmlsZSAqKm5mcCwgaW50IGZsYWdzKQogewogCWludCBhY2MgPSAoZmxhZ3MgJiBSRF9TVEFURSkgPyBORlNEX01BWV9SRUFEIDogTkZTRF9NQVlfV1JJVEU7Ci0Jc3RydWN0IGZpbGUgKmZpbGU7CisJc3RydWN0IG5mc2RfZmlsZSAqbmY7CiAJX19iZTMyIHN0YXR1czsKIAotCWZpbGUgPSBuZnM0X2ZpbmRfZmlsZShzLCBmbGFncyk7Ci0JaWYgKGZpbGUpIHsKKwluZiA9IG5mczRfZmluZF9maWxlKHMsIGZsYWdzKTsKKwlpZiAobmYpIHsKIAkJc3RhdHVzID0gbmZzZF9wZXJtaXNzaW9uKHJxc3RwLCBmaHAtPmZoX2V4cG9ydCwgZmhwLT5maF9kZW50cnksCiAJCQkJYWNjIHwgTkZTRF9NQVlfT1dORVJfT1ZFUlJJREUpOwogCQlpZiAoc3RhdHVzKSB7Ci0JCQlmcHV0KGZpbGUpOwotCQkJcmV0dXJuIHN0YXR1czsKKwkJCW5mc2RfZmlsZV9wdXQobmYpOworCQkJZ290byBvdXQ7CiAJCX0KLQotCQkqZmlscHAgPSBmaWxlOwogCX0gZWxzZSB7Ci0JCXN0YXR1cyA9IG5mc2Rfb3BlbihycXN0cCwgZmhwLCBTX0lGUkVHLCBhY2MsIGZpbHBwKTsKKwkJc3RhdHVzID0gbmZzZF9maWxlX2FjcXVpcmUocnFzdHAsIGZocCwgYWNjLCAmbmYpOwogCQlpZiAoc3RhdHVzKQogCQkJcmV0dXJuIHN0YXR1czsKLQotCQlpZiAodG1wX2ZpbGUpCi0JCQkqdG1wX2ZpbGUgPSB0cnVlOwogCX0KLQotCXJldHVybiAwOworCSpuZnAgPSBuZjsKK291dDoKKwlyZXR1cm4gc3RhdHVzOwogfQogCiAvKgpAQCAtNTU4Myw3ICs1NjAyLDcgQEAgbmZzNF9jaGVja19maWxlKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgc3RydWN0IG5mczRfc3RpZCAqcywKIF9fYmUzMgogbmZzNF9wcmVwcm9jZXNzX3N0YXRlaWRfb3Aoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwKIAkJc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsIHN0cnVjdCBzdmNfZmggKmZocCwKLQkJc3RhdGVpZF90ICpzdGF0ZWlkLCBpbnQgZmxhZ3MsIHN0cnVjdCBmaWxlICoqZmlscHAsIGJvb2wgKnRtcF9maWxlKQorCQlzdGF0ZWlkX3QgKnN0YXRlaWQsIGludCBmbGFncywgc3RydWN0IG5mc2RfZmlsZSAqKm5mcCkKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlubyA9IGRfaW5vZGUoZmhwLT5maF9kZW50cnkpOwogCXN0cnVjdCBuZXQgKm5ldCA9IFNWQ19ORVQocnFzdHApOwpAQCAtNTU5MSwxMCArNTYxMCw4IEBAIG5mczRfcHJlcHJvY2Vzc19zdGF0ZWlkX29wKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsCiAJc3RydWN0IG5mczRfc3RpZCAqcyA9IE5VTEw7CiAJX19iZTMyIHN0YXR1czsKIAotCWlmIChmaWxwcCkKLQkJKmZpbHBwID0gTlVMTDsKLQlpZiAodG1wX2ZpbGUpCi0JCSp0bXBfZmlsZSA9IGZhbHNlOworCWlmIChuZnApCisJCSpuZnAgPSBOVUxMOwogCiAJaWYgKGdyYWNlX2Rpc2FsbG93c19pbyhuZXQsIGlubykpCiAJCXJldHVybiBuZnNlcnJfZ3JhY2U7CkBAIC01NjMxLDggKzU2NDgsOCBAQCBuZnM0X3ByZXByb2Nlc3Nfc3RhdGVpZF9vcChzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLAogCXN0YXR1cyA9IG5mczRfY2hlY2tfZmgoZmhwLCBzKTsKIAogZG9uZToKLQlpZiAoIXN0YXR1cyAmJiBmaWxwcCkKLQkJc3RhdHVzID0gbmZzNF9jaGVja19maWxlKHJxc3RwLCBmaHAsIHMsIGZpbHBwLCB0bXBfZmlsZSwgZmxhZ3MpOworCWlmIChzdGF0dXMgPT0gbmZzX29rICYmIG5mcCkKKwkJc3RhdHVzID0gbmZzNF9jaGVja19maWxlKHJxc3RwLCBmaHAsIHMsIG5mcCwgZmxhZ3MpOwogb3V0OgogCWlmIChzKQogCQluZnM0X3B1dF9zdGlkKHMpOwpAQCAtNjM5Miw3ICs2NDA5LDcgQEAgbmZzZDRfbG9jayhzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAlzdHJ1Y3QgbmZzNF9vbF9zdGF0ZWlkICpsb2NrX3N0cCA9IE5VTEw7CiAJc3RydWN0IG5mczRfb2xfc3RhdGVpZCAqb3Blbl9zdHAgPSBOVUxMOwogCXN0cnVjdCBuZnM0X2ZpbGUgKmZwOwotCXN0cnVjdCBmaWxlICpmaWxwID0gTlVMTDsKKwlzdHJ1Y3QgbmZzZF9maWxlICpuZiA9IE5VTEw7CiAJc3RydWN0IG5mc2Q0X2Jsb2NrZWRfbG9jayAqbmJsID0gTlVMTDsKIAlzdHJ1Y3QgZmlsZV9sb2NrICpmaWxlX2xvY2sgPSBOVUxMOwogCXN0cnVjdCBmaWxlX2xvY2sgKmNvbmZsb2NrID0gTlVMTDsKQEAgLTY0NzQsOCArNjQ5MSw4IEBAIG5mc2Q0X2xvY2soc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsCiAJCQkvKiBGYWxsdGhyb3VnaCAqLwogCQljYXNlIE5GUzRfUkVBRF9MVDoKIAkJCXNwaW5fbG9jaygmZnAtPmZpX2xvY2spOwotCQkJZmlscCA9IGZpbmRfcmVhZGFibGVfZmlsZV9sb2NrZWQoZnApOwotCQkJaWYgKGZpbHApCisJCQluZiA9IGZpbmRfcmVhZGFibGVfZmlsZV9sb2NrZWQoZnApOworCQkJaWYgKG5mKQogCQkJCWdldF9sb2NrX2FjY2Vzcyhsb2NrX3N0cCwgTkZTNF9TSEFSRV9BQ0NFU1NfUkVBRCk7CiAJCQlzcGluX3VubG9jaygmZnAtPmZpX2xvY2spOwogCQkJZmxfdHlwZSA9IEZfUkRMQ0s7CkBAIC02NDg2LDggKzY1MDMsOCBAQCBuZnNkNF9sb2NrKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLAogCQkJLyogRmFsbHRocm91Z2ggKi8KIAkJY2FzZSBORlM0X1dSSVRFX0xUOgogCQkJc3Bpbl9sb2NrKCZmcC0+ZmlfbG9jayk7Ci0JCQlmaWxwID0gZmluZF93cml0ZWFibGVfZmlsZV9sb2NrZWQoZnApOwotCQkJaWYgKGZpbHApCisJCQluZiA9IGZpbmRfd3JpdGVhYmxlX2ZpbGVfbG9ja2VkKGZwKTsKKwkJCWlmIChuZikKIAkJCQlnZXRfbG9ja19hY2Nlc3MobG9ja19zdHAsIE5GUzRfU0hBUkVfQUNDRVNTX1dSSVRFKTsKIAkJCXNwaW5fdW5sb2NrKCZmcC0+ZmlfbG9jayk7CiAJCQlmbF90eXBlID0gRl9XUkxDSzsKQEAgLTY0OTcsNyArNjUxNCw3IEBAIG5mc2Q0X2xvY2soc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsCiAJCWdvdG8gb3V0OwogCX0KIAotCWlmICghZmlscCkgeworCWlmICghbmYpIHsKIAkJc3RhdHVzID0gbmZzZXJyX29wZW5tb2RlOwogCQlnb3RvIG91dDsKIAl9CkBAIC02NTEzLDcgKzY1MzAsNyBAQCBuZnNkNF9sb2NrKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLAogCWZpbGVfbG9jay0+ZmxfdHlwZSA9IGZsX3R5cGU7CiAJZmlsZV9sb2NrLT5mbF9vd25lciA9IChmbF9vd25lcl90KWxvY2tvd25lcihuZnM0X2dldF9zdGF0ZW93bmVyKCZsb2NrX3NvcC0+bG9fb3duZXIpKTsKIAlmaWxlX2xvY2stPmZsX3BpZCA9IGN1cnJlbnQtPnRnaWQ7Ci0JZmlsZV9sb2NrLT5mbF9maWxlID0gZmlscDsKKwlmaWxlX2xvY2stPmZsX2ZpbGUgPSBuZi0+bmZfZmlsZTsKIAlmaWxlX2xvY2stPmZsX2ZsYWdzID0gZmxfZmxhZ3M7CiAJZmlsZV9sb2NrLT5mbF9sbW9wcyA9ICZuZnNkX3Bvc2l4X21uZ19vcHM7CiAJZmlsZV9sb2NrLT5mbF9zdGFydCA9IGxvY2stPmxrX29mZnNldDsKQEAgLTY1MzUsNyArNjU1Miw3IEBAIG5mc2Q0X2xvY2soc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsCiAJCXNwaW5fdW5sb2NrKCZubi0+YmxvY2tlZF9sb2Nrc19sb2NrKTsKIAl9CiAKLQllcnIgPSB2ZnNfbG9ja19maWxlKGZpbHAsIEZfU0VUTEssIGZpbGVfbG9jaywgY29uZmxvY2spOworCWVyciA9IHZmc19sb2NrX2ZpbGUobmYtPm5mX2ZpbGUsIEZfU0VUTEssIGZpbGVfbG9jaywgY29uZmxvY2spOwogCXN3aXRjaCAoZXJyKSB7CiAJY2FzZSAwOiAvKiBzdWNjZXNzISAqLwogCQluZnM0X2luY19hbmRfY29weV9zdGF0ZWlkKCZsb2NrLT5sa19yZXNwX3N0YXRlaWQsICZsb2NrX3N0cC0+c3Rfc3RpZCk7CkBAIC02NTcwLDggKzY1ODcsOCBAQCBuZnNkNF9sb2NrKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLAogCQl9CiAJCWZyZWVfYmxvY2tlZF9sb2NrKG5ibCk7CiAJfQotCWlmIChmaWxwKQotCQlmcHV0KGZpbHApOworCWlmIChuZikKKwkJbmZzZF9maWxlX3B1dChuZik7CiAJaWYgKGxvY2tfc3RwKSB7CiAJCS8qIEJ1bXAgc2VxaWQgbWFudWFsbHkgaWYgdGhlIDQuMCByZXBsYXkgb3duZXIgaXMgb3Blbm93bmVyICovCiAJCWlmIChjc3RhdGUtPnJlcGxheV9vd25lciAmJgpAQCAtNjYwNiwxMSArNjYyMywxMSBAQCBuZnNkNF9sb2NrKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLAogICovCiBzdGF0aWMgX19iZTMyIG5mc2RfdGVzdF9sb2NrKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgc3RydWN0IGZpbGVfbG9jayAqbG9jaykKIHsKLQlzdHJ1Y3QgZmlsZSAqZmlsZTsKLQlfX2JlMzIgZXJyID0gbmZzZF9vcGVuKHJxc3RwLCBmaHAsIFNfSUZSRUcsIE5GU0RfTUFZX1JFQUQsICZmaWxlKTsKKwlzdHJ1Y3QgbmZzZF9maWxlICpuZjsKKwlfX2JlMzIgZXJyID0gbmZzZF9maWxlX2FjcXVpcmUocnFzdHAsIGZocCwgTkZTRF9NQVlfUkVBRCwgJm5mKTsKIAlpZiAoIWVycikgewotCQllcnIgPSBuZnNlcnJubyh2ZnNfdGVzdF9sb2NrKGZpbGUsIGxvY2spKTsKLQkJZnB1dChmaWxlKTsKKwkJZXJyID0gbmZzZXJybm8odmZzX3Rlc3RfbG9jayhuZi0+bmZfZmlsZSwgbG9jaykpOworCQluZnNkX2ZpbGVfcHV0KG5mKTsKIAl9CiAJcmV0dXJuIGVycjsKIH0KQEAgLTY2OTgsNyArNjcxNSw3IEBAIG5mc2Q0X2xvY2t1KHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLAogewogCXN0cnVjdCBuZnNkNF9sb2NrdSAqbG9ja3UgPSAmdS0+bG9ja3U7CiAJc3RydWN0IG5mczRfb2xfc3RhdGVpZCAqc3RwOwotCXN0cnVjdCBmaWxlICpmaWxwID0gTlVMTDsKKwlzdHJ1Y3QgbmZzZF9maWxlICpuZiA9IE5VTEw7CiAJc3RydWN0IGZpbGVfbG9jayAqZmlsZV9sb2NrID0gTlVMTDsKIAlfX2JlMzIgc3RhdHVzOwogCWludCBlcnI7CkBAIC02NzE2LDggKzY3MzMsOCBAQCBuZnNkNF9sb2NrdShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAkJCQkJJnN0cCwgbm4pOwogCWlmIChzdGF0dXMpCiAJCWdvdG8gb3V0OwotCWZpbHAgPSBmaW5kX2FueV9maWxlKHN0cC0+c3Rfc3RpZC5zY19maWxlKTsKLQlpZiAoIWZpbHApIHsKKwluZiA9IGZpbmRfYW55X2ZpbGUoc3RwLT5zdF9zdGlkLnNjX2ZpbGUpOworCWlmICghbmYpIHsKIAkJc3RhdHVzID0gbmZzZXJyX2xvY2tfcmFuZ2U7CiAJCWdvdG8gcHV0X3N0YXRlaWQ7CiAJfQpAQCAtNjcyNSwxMyArNjc0MiwxMyBAQCBuZnNkNF9sb2NrdShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAlpZiAoIWZpbGVfbG9jaykgewogCQlkcHJpbnRrKCJORlNEOiAlczogdW5hYmxlIHRvIGFsbG9jYXRlIGxvY2shXG4iLCBfX2Z1bmNfXyk7CiAJCXN0YXR1cyA9IG5mc2Vycl9qdWtlYm94OwotCQlnb3RvIGZwdXQ7CisJCWdvdG8gcHV0X2ZpbGU7CiAJfQogCiAJZmlsZV9sb2NrLT5mbF90eXBlID0gRl9VTkxDSzsKIAlmaWxlX2xvY2stPmZsX293bmVyID0gKGZsX293bmVyX3QpbG9ja293bmVyKG5mczRfZ2V0X3N0YXRlb3duZXIoc3RwLT5zdF9zdGF0ZW93bmVyKSk7CiAJZmlsZV9sb2NrLT5mbF9waWQgPSBjdXJyZW50LT50Z2lkOwotCWZpbGVfbG9jay0+ZmxfZmlsZSA9IGZpbHA7CisJZmlsZV9sb2NrLT5mbF9maWxlID0gbmYtPm5mX2ZpbGU7CiAJZmlsZV9sb2NrLT5mbF9mbGFncyA9IEZMX1BPU0lYOwogCWZpbGVfbG9jay0+ZmxfbG1vcHMgPSAmbmZzZF9wb3NpeF9tbmdfb3BzOwogCWZpbGVfbG9jay0+Zmxfc3RhcnQgPSBsb2NrdS0+bHVfb2Zmc2V0OwpAQCAtNjc0MCwxNCArNjc1NywxNCBAQCBuZnNkNF9sb2NrdShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAkJCQkJCWxvY2t1LT5sdV9sZW5ndGgpOwogCW5mczRfdHJhbnNmb3JtX2xvY2tfb2Zmc2V0KGZpbGVfbG9jayk7CiAKLQllcnIgPSB2ZnNfbG9ja19maWxlKGZpbHAsIEZfU0VUTEssIGZpbGVfbG9jaywgTlVMTCk7CisJZXJyID0gdmZzX2xvY2tfZmlsZShuZi0+bmZfZmlsZSwgRl9TRVRMSywgZmlsZV9sb2NrLCBOVUxMKTsKIAlpZiAoZXJyKSB7CiAJCWRwcmludGsoIk5GU0Q6IG5mczRfbG9ja3U6IHZmc19sb2NrX2ZpbGUgZmFpbGVkIVxuIik7CiAJCWdvdG8gb3V0X25mc2VycjsKIAl9CiAJbmZzNF9pbmNfYW5kX2NvcHlfc3RhdGVpZCgmbG9ja3UtPmx1X3N0YXRlaWQsICZzdHAtPnN0X3N0aWQpOwotZnB1dDoKLQlmcHV0KGZpbHApOworcHV0X2ZpbGU6CisJbmZzZF9maWxlX3B1dChuZik7CiBwdXRfc3RhdGVpZDoKIAltdXRleF91bmxvY2soJnN0cC0+c3RfbXV0ZXgpOwogCW5mczRfcHV0X3N0aWQoJnN0cC0+c3Rfc3RpZCk7CkBAIC02NzU5LDcgKzY3NzYsNyBAQCBuZnNkNF9sb2NrdShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwKIAogb3V0X25mc2VycjoKIAlzdGF0dXMgPSBuZnNlcnJubyhlcnIpOwotCWdvdG8gZnB1dDsKKwlnb3RvIHB1dF9maWxlOwogfQogCiAvKgpAQCAtNjc3MiwxNyArNjc4OSwxNyBAQCBjaGVja19mb3JfbG9ja3Moc3RydWN0IG5mczRfZmlsZSAqZnAsIHN0cnVjdCBuZnM0X2xvY2tvd25lciAqbG93bmVyKQogewogCXN0cnVjdCBmaWxlX2xvY2sgKmZsOwogCWludCBzdGF0dXMgPSBmYWxzZTsKLQlzdHJ1Y3QgZmlsZSAqZmlscCA9IGZpbmRfYW55X2ZpbGUoZnApOworCXN0cnVjdCBuZnNkX2ZpbGUgKm5mID0gZmluZF9hbnlfZmlsZShmcCk7CiAJc3RydWN0IGlub2RlICppbm9kZTsKIAlzdHJ1Y3QgZmlsZV9sb2NrX2NvbnRleHQgKmZsY3R4OwogCi0JaWYgKCFmaWxwKSB7CisJaWYgKCFuZikgewogCQkvKiBBbnkgdmFsaWQgbG9jayBzdGF0ZWlkIHNob3VsZCBoYXZlIHNvbWUgc29ydCBvZiBhY2Nlc3MgKi8KIAkJV0FSTl9PTl9PTkNFKDEpOwogCQlyZXR1cm4gc3RhdHVzOwogCX0KIAotCWlub2RlID0gbG9ja3NfaW5vZGUoZmlscCk7CisJaW5vZGUgPSBsb2Nrc19pbm9kZShuZi0+bmZfZmlsZSk7CiAJZmxjdHggPSBpbm9kZS0+aV9mbGN0eDsKIAogCWlmIChmbGN0eCAmJiAhbGlzdF9lbXB0eV9jYXJlZnVsKCZmbGN0eC0+ZmxjX3Bvc2l4KSkgewpAQCAtNjc5NSw3ICs2ODEyLDcgQEAgY2hlY2tfZm9yX2xvY2tzKHN0cnVjdCBuZnM0X2ZpbGUgKmZwLCBzdHJ1Y3QgbmZzNF9sb2Nrb3duZXIgKmxvd25lcikKIAkJfQogCQlzcGluX3VubG9jaygmZmxjdHgtPmZsY19sb2NrKTsKIAl9Ci0JZnB1dChmaWxwKTsKKwluZnNkX2ZpbGVfcHV0KG5mKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC02ODg4LDcgKzY5MDUsOCBAQCBuZnM0X2hhc19yZWNsYWltZWRfc3RhdGUoc3RydWN0IHhkcl9uZXRvYmogbmFtZSwgc3RydWN0IG5mc2RfbmV0ICpubikKICAqIHdpbGwgYmUgZnJlZWQgaW4gbmZzNF9yZW1vdmVfcmVjbGFpbV9yZWNvcmQgaW4gdGhlIG5vcm1hbCBjYXNlKS4KICAqLwogc3RydWN0IG5mczRfY2xpZW50X3JlY2xhaW0gKgotbmZzNF9jbGllbnRfdG9fcmVjbGFpbShzdHJ1Y3QgeGRyX25ldG9iaiBuYW1lLCBzdHJ1Y3QgbmZzZF9uZXQgKm5uKQorbmZzNF9jbGllbnRfdG9fcmVjbGFpbShzdHJ1Y3QgeGRyX25ldG9iaiBuYW1lLCBzdHJ1Y3QgeGRyX25ldG9iaiBwcmluY2hhc2gsCisJCXN0cnVjdCBuZnNkX25ldCAqbm4pCiB7CiAJdW5zaWduZWQgaW50IHN0cmhhc2h2YWw7CiAJc3RydWN0IG5mczRfY2xpZW50X3JlY2xhaW0gKmNycDsKQEAgLTY5MDEsNiArNjkxOSw4IEBAIG5mczRfY2xpZW50X3RvX3JlY2xhaW0oc3RydWN0IHhkcl9uZXRvYmogbmFtZSwgc3RydWN0IG5mc2RfbmV0ICpubikKIAkJbGlzdF9hZGQoJmNycC0+Y3Jfc3RyaGFzaCwgJm5uLT5yZWNsYWltX3N0cl9oYXNodGJsW3N0cmhhc2h2YWxdKTsKIAkJY3JwLT5jcl9uYW1lLmRhdGEgPSBuYW1lLmRhdGE7CiAJCWNycC0+Y3JfbmFtZS5sZW4gPSBuYW1lLmxlbjsKKwkJY3JwLT5jcl9wcmluY2hhc2guZGF0YSA9IHByaW5jaGFzaC5kYXRhOworCQljcnAtPmNyX3ByaW5jaGFzaC5sZW4gPSBwcmluY2hhc2gubGVuOwogCQljcnAtPmNyX2NscCA9IE5VTEw7CiAJCW5uLT5yZWNsYWltX3N0cl9oYXNodGJsX3NpemUrKzsKIAl9CkBAIC02OTEyLDYgKzY5MzIsNyBAQCBuZnM0X3JlbW92ZV9yZWNsYWltX3JlY29yZChzdHJ1Y3QgbmZzNF9jbGllbnRfcmVjbGFpbSAqY3JwLCBzdHJ1Y3QgbmZzZF9uZXQgKm5uKQogewogCWxpc3RfZGVsKCZjcnAtPmNyX3N0cmhhc2gpOwogCWtmcmVlKGNycC0+Y3JfbmFtZS5kYXRhKTsKKwlrZnJlZShjcnAtPmNyX3ByaW5jaGFzaC5kYXRhKTsKIAlrZnJlZShjcnApOwogCW5uLT5yZWNsYWltX3N0cl9oYXNodGJsX3NpemUtLTsKIH0KZGlmZiAtLWdpdCBhL2ZzL25mc2QvbmZzNHhkci5jIGIvZnMvbmZzZC9uZnM0eGRyLmMKaW5kZXggNDQyODExOC4uNTMzZDBmYyAxMDA2NDQKLS0tIGEvZnMvbmZzZC9uZnM0eGRyLmMKKysrIGIvZnMvbmZzZC9uZnM0eGRyLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJjYWNoZS5oIgogI2luY2x1ZGUgIm5ldG5zLmgiCiAjaW5jbHVkZSAicG5mcy5oIgorI2luY2x1ZGUgImZpbGVjYWNoZS5oIgogCiAjaWZkZWYgQ09ORklHX05GU0RfVjRfU0VDVVJJVFlfTEFCRUwKICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgpAQCAtMjAzLDYgKzIwNCwxMyBAQCBzdGF0aWMgX19iZTMyICpyZWFkX2J1ZihzdHJ1Y3QgbmZzZDRfY29tcG91bmRhcmdzICphcmdwLCB1MzIgbmJ5dGVzKQogCXJldHVybiBwOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IGNvbXBvdW5kYXJnc19ieXRlc19sZWZ0KHN0cnVjdCBuZnNkNF9jb21wb3VuZGFyZ3MgKmFyZ3ApCit7CisJdW5zaWduZWQgaW50IHRoaXMgPSAoY2hhciAqKWFyZ3AtPmVuZCAtIChjaGFyICopYXJncC0+cDsKKworCXJldHVybiB0aGlzICsgYXJncC0+cGFnZWxlbjsKK30KKwogc3RhdGljIGludCB6ZXJvX2NsaWVudGlkKGNsaWVudGlkX3QgKmNsaWQpCiB7CiAJcmV0dXJuIChjbGlkLT5jbF9ib290ID09IDApICYmIChjbGlkLT5jbF9pZCA9PSAwKTsKQEAgLTIxMSwxMCArMjE5LDEwIEBAIHN0YXRpYyBpbnQgemVyb19jbGllbnRpZChjbGllbnRpZF90ICpjbGlkKQogLyoqCiAgKiBzdmN4ZHJfdG1wYWxsb2MgLSBhbGxvY2F0ZSBtZW1vcnkgdG8gYmUgZnJlZWQgYWZ0ZXIgY29tcG91bmQgcHJvY2Vzc2luZwogICogQGFyZ3A6IE5GU3Y0IGNvbXBvdW5kIGFyZ3VtZW50IHN0cnVjdHVyZQotICogQHA6IHBvaW50ZXIgdG8gYmUgZnJlZWQgKHdpdGgga2ZyZWUoKSkKKyAqIEBsZW46IGxlbmd0aCBvZiBidWZmZXIgdG8gYWxsb2NhdGUKICAqCi0gKiBNYXJrcyBAcCB0byBiZSBmcmVlZCB3aGVuIHByb2Nlc3NpbmcgdGhlIGNvbXBvdW5kIG9wZXJhdGlvbgotICogZGVzY3JpYmVkIGluIEBhcmdwIGZpbmlzaGVzLgorICogQWxsb2NhdGVzIGEgYnVmZmVyIG9mIHNpemUgQGxlbiB0byBiZSBmcmVlZCB3aGVuIHByb2Nlc3NpbmcgdGhlIGNvbXBvdW5kCisgKiBvcGVyYXRpb24gZGVzY3JpYmVkIGluIEBhcmdwIGZpbmlzaGVzLgogICovCiBzdGF0aWMgdm9pZCAqCiBzdmN4ZHJfdG1wYWxsb2Moc3RydWN0IG5mc2Q0X2NvbXBvdW5kYXJncyAqYXJncCwgdTMyIGxlbikKQEAgLTM0Nyw3ICszNTUsMTIgQEAgbmZzZDRfZGVjb2RlX2ZhdHRyKHN0cnVjdCBuZnNkNF9jb21wb3VuZGFyZ3MgKmFyZ3AsIHUzMiAqYm12YWwsCiAJCVJFQURfQlVGKDQpOyBsZW4gKz0gNDsKIAkJbmFjZSA9IGJlMzJfdG9fY3B1cChwKyspOwogCi0JCWlmIChuYWNlID4gTkZTNF9BQ0xfTUFYKQorCQlpZiAobmFjZSA+IGNvbXBvdW5kYXJnc19ieXRlc19sZWZ0KGFyZ3ApLzIwKQorCQkJLyoKKwkJCSAqIEV2ZW4gd2l0aCA0LWJ5dGUgbmFtZXMgdGhlcmUgd291bGRuJ3QgYmUKKwkJCSAqIHNwYWNlIGZvciB0aGF0IG1hbnkgYWNlczsgc29tZXRoaW5nIGZpc2h5IGlzCisJCQkgKiBnb2luZyBvbjoKKwkJCSAqLwogCQkJcmV0dXJuIG5mc2Vycl9mYmlnOwogCiAJCSphY2wgPSBzdmN4ZHJfdG1wYWxsb2MoYXJncCwgbmZzNF9hY2xfYnl0ZXMobmFjZSkpOwpAQCAtMTQxOCw3ICsxNDMxLDYgQEAgbmZzZDRfZGVjb2RlX2NyZWF0ZV9zZXNzaW9uKHN0cnVjdCBuZnNkNF9jb21wb3VuZGFyZ3MgKmFyZ3AsCiAJCQkgICAgc3RydWN0IG5mc2Q0X2NyZWF0ZV9zZXNzaW9uICpzZXNzKQogewogCURFQ09ERV9IRUFEOwotCXUzMiBkdW1teTsKIAogCVJFQURfQlVGKDE2KTsKIAlDT1BZTUVNKCZzZXNzLT5jbGllbnRpZCwgOCk7CkBAIC0xNDI3LDcgKzE0MzksNyBAQCBuZnNkNF9kZWNvZGVfY3JlYXRlX3Nlc3Npb24oc3RydWN0IG5mc2Q0X2NvbXBvdW5kYXJncyAqYXJncCwKIAogCS8qIEZvcmUgY2hhbm5lbCBhdHRycyAqLwogCVJFQURfQlVGKDI4KTsKLQlkdW1teSA9IGJlMzJfdG9fY3B1cChwKyspOyAvKiBoZWFkZXJwYWRzeiBpcyBhbHdheXMgMCAqLworCXArKzsgLyogaGVhZGVycGFkc3ogaXMgYWx3YXlzIDAgKi8KIAlzZXNzLT5mb3JlX2NoYW5uZWwubWF4cmVxX3N6ID0gYmUzMl90b19jcHVwKHArKyk7CiAJc2Vzcy0+Zm9yZV9jaGFubmVsLm1heHJlc3Bfc3ogPSBiZTMyX3RvX2NwdXAocCsrKTsKIAlzZXNzLT5mb3JlX2NoYW5uZWwubWF4cmVzcF9jYWNoZWQgPSBiZTMyX3RvX2NwdXAocCsrKTsKQEAgLTE0NDQsNyArMTQ1Niw3IEBAIG5mc2Q0X2RlY29kZV9jcmVhdGVfc2Vzc2lvbihzdHJ1Y3QgbmZzZDRfY29tcG91bmRhcmdzICphcmdwLAogCiAJLyogQmFjayBjaGFubmVsIGF0dHJzICovCiAJUkVBRF9CVUYoMjgpOwotCWR1bW15ID0gYmUzMl90b19jcHVwKHArKyk7IC8qIGhlYWRlcnBhZHN6IGlzIGFsd2F5cyAwICovCisJcCsrOyAvKiBoZWFkZXJwYWRzeiBpcyBhbHdheXMgMCAqLwogCXNlc3MtPmJhY2tfY2hhbm5lbC5tYXhyZXFfc3ogPSBiZTMyX3RvX2NwdXAocCsrKTsKIAlzZXNzLT5iYWNrX2NoYW5uZWwubWF4cmVzcF9zeiA9IGJlMzJfdG9fY3B1cChwKyspOwogCXNlc3MtPmJhY2tfY2hhbm5lbC5tYXhyZXNwX2NhY2hlZCA9IGJlMzJfdG9fY3B1cChwKyspOwpAQCAtMTczNiw3ICsxNzQ4LDYgQEAgc3RhdGljIF9fYmUzMgogbmZzZDRfZGVjb2RlX2NvcHkoc3RydWN0IG5mc2Q0X2NvbXBvdW5kYXJncyAqYXJncCwgc3RydWN0IG5mc2Q0X2NvcHkgKmNvcHkpCiB7CiAJREVDT0RFX0hFQUQ7Ci0JdW5zaWduZWQgaW50IHRtcDsKIAogCXN0YXR1cyA9IG5mc2Q0X2RlY29kZV9zdGF0ZWlkKGFyZ3AsICZjb3B5LT5jcF9zcmNfc3RhdGVpZCk7CiAJaWYgKHN0YXR1cykKQEAgLTE3NTEsNyArMTc2Miw3IEBAIG5mc2Q0X2RlY29kZV9jb3B5KHN0cnVjdCBuZnNkNF9jb21wb3VuZGFyZ3MgKmFyZ3AsIHN0cnVjdCBuZnNkNF9jb3B5ICpjb3B5KQogCXAgPSB4ZHJfZGVjb2RlX2h5cGVyKHAsICZjb3B5LT5jcF9jb3VudCk7CiAJcCsrOyAvKiBjYV9jb25zZWN1dGl2ZTogd2UgYWx3YXlzIGRvIGNvbnNlY3V0aXZlIGNvcGllcyAqLwogCWNvcHktPmNwX3N5bmNocm9ub3VzID0gYmUzMl90b19jcHVwKHArKyk7Ci0JdG1wID0gYmUzMl90b19jcHVwKHApOyAvKiBTb3VyY2Ugc2VydmVyIGxpc3Qgbm90IHN1cHBvcnRlZCAqLworCS8qIHRtcCA9IGJlMzJfdG9fY3B1cChwKTsgU291cmNlIHNlcnZlciBsaXN0IG5vdCBzdXBwb3J0ZWQgKi8KIAogCURFQ09ERV9UQUlMOwogfQpAQCAtMzIxNyw5ICszMjI4LDggQEAgbmZzZDRfZW5jb2RlX2NyZWF0ZShzdHJ1Y3QgbmZzZDRfY29tcG91bmRyZXMgKnJlc3AsIF9fYmUzMiBuZnNlcnIsIHN0cnVjdCBuZnNkNF8KIAlpZiAoIXApCiAJCXJldHVybiBuZnNlcnJfcmVzb3VyY2U7CiAJZW5jb2RlX2NpbmZvKHAsICZjcmVhdGUtPmNyX2NpbmZvKTsKLQluZnNlcnIgPSBuZnNkNF9lbmNvZGVfYml0bWFwKHhkciwgY3JlYXRlLT5jcl9ibXZhbFswXSwKKwlyZXR1cm4gbmZzZDRfZW5jb2RlX2JpdG1hcCh4ZHIsIGNyZWF0ZS0+Y3JfYm12YWxbMF0sCiAJCQljcmVhdGUtPmNyX2JtdmFsWzFdLCBjcmVhdGUtPmNyX2JtdmFsWzJdKTsKLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIF9fYmUzMgpAQCAtMzQ2Miw3ICszNDcyLDcgQEAgc3RhdGljIF9fYmUzMiBuZnNkNF9lbmNvZGVfc3BsaWNlX3JlYWQoCiAKIAlsZW4gPSBtYXhjb3VudDsKIAluZnNlcnIgPSBuZnNkX3NwbGljZV9yZWFkKHJlYWQtPnJkX3Jxc3RwLCByZWFkLT5yZF9maHAsCi0JCQkJICBmaWxlLCByZWFkLT5yZF9vZmZzZXQsICZtYXhjb3VudCk7CisJCQkJICBmaWxlLCByZWFkLT5yZF9vZmZzZXQsICZtYXhjb3VudCwgJmVvZik7CiAJcmVhZC0+cmRfbGVuZ3RoID0gbWF4Y291bnQ7CiAJaWYgKG5mc2VycikgewogCQkvKgpAQCAtMzQ3NCw5ICszNDg0LDYgQEAgc3RhdGljIF9fYmUzMiBuZnNkNF9lbmNvZGVfc3BsaWNlX3JlYWQoCiAJCXJldHVybiBuZnNlcnI7CiAJfQogCi0JZW9mID0gbmZzZF9lb2Zfb25fcmVhZChsZW4sIG1heGNvdW50LCByZWFkLT5yZF9vZmZzZXQsCi0JCQkJZF9pbm9kZShyZWFkLT5yZF9maHAtPmZoX2RlbnRyeSktPmlfc2l6ZSk7Ci0KIAkqKHArKykgPSBodG9ubChlb2YpOwogCSoocCsrKSA9IGh0b25sKG1heGNvdW50KTsKIApAQCAtMzU0NywxNSArMzU1NCwxMyBAQCBzdGF0aWMgX19iZTMyIG5mc2Q0X2VuY29kZV9yZWFkdihzdHJ1Y3QgbmZzZDRfY29tcG91bmRyZXMgKnJlc3AsCiAKIAlsZW4gPSBtYXhjb3VudDsKIAluZnNlcnIgPSBuZnNkX3JlYWR2KHJlc3AtPnJxc3RwLCByZWFkLT5yZF9maHAsIGZpbGUsIHJlYWQtPnJkX29mZnNldCwKLQkJCSAgICByZXNwLT5ycXN0cC0+cnFfdmVjLCByZWFkLT5yZF92bGVuLCAmbWF4Y291bnQpOworCQkJICAgIHJlc3AtPnJxc3RwLT5ycV92ZWMsIHJlYWQtPnJkX3ZsZW4sICZtYXhjb3VudCwKKwkJCSAgICAmZW9mKTsKIAlyZWFkLT5yZF9sZW5ndGggPSBtYXhjb3VudDsKIAlpZiAobmZzZXJyKQogCQlyZXR1cm4gbmZzZXJyOwogCXhkcl90cnVuY2F0ZV9lbmNvZGUoeGRyLCBzdGFydGluZ19sZW4gKyA4ICsgKChtYXhjb3VudCszKSZ+MykpOwogCi0JZW9mID0gbmZzZF9lb2Zfb25fcmVhZChsZW4sIG1heGNvdW50LCByZWFkLT5yZF9vZmZzZXQsCi0JCQkJZF9pbm9kZShyZWFkLT5yZF9maHAtPmZoX2RlbnRyeSktPmlfc2l6ZSk7Ci0KIAl0bXAgPSBodG9ubChlb2YpOwogCXdyaXRlX2J5dGVzX3RvX3hkcl9idWYoeGRyLT5idWYsIHN0YXJ0aW5nX2xlbiAgICAsICZ0bXAsIDQpOwogCXRtcCA9IGh0b25sKG1heGNvdW50KTsKQEAgLTM1NzQsMTEgKzM1NzksMTQgQEAgbmZzZDRfZW5jb2RlX3JlYWQoc3RydWN0IG5mc2Q0X2NvbXBvdW5kcmVzICpyZXNwLCBfX2JlMzIgbmZzZXJyLAogewogCXVuc2lnbmVkIGxvbmcgbWF4Y291bnQ7CiAJc3RydWN0IHhkcl9zdHJlYW0gKnhkciA9ICZyZXNwLT54ZHI7Ci0Jc3RydWN0IGZpbGUgKmZpbGUgPSByZWFkLT5yZF9maWxwOworCXN0cnVjdCBmaWxlICpmaWxlOwogCWludCBzdGFydGluZ19sZW4gPSB4ZHItPmJ1Zi0+bGVuOwotCXN0cnVjdCByYXBhcm1zICpyYSA9IE5VTEw7CiAJX19iZTMyICpwOwogCisJaWYgKG5mc2VycikKKwkJcmV0dXJuIG5mc2VycjsKKwlmaWxlID0gcmVhZC0+cmRfbmYtPm5mX2ZpbGU7CisKIAlwID0geGRyX3Jlc2VydmVfc3BhY2UoeGRyLCA4KTsgLyogZW9mIGZsYWcgYW5kIGJ5dGUgY291bnQgKi8KIAlpZiAoIXApIHsKIAkJV0FSTl9PTl9PTkNFKHRlc3RfYml0KFJRX1NQTElDRV9PSywgJnJlc3AtPnJxc3RwLT5ycV9mbGFncykpOwpAQCAtMzU5NiwxOCArMzYwNCwxMiBAQCBuZnNkNF9lbmNvZGVfcmVhZChzdHJ1Y3QgbmZzZDRfY29tcG91bmRyZXMgKnJlc3AsIF9fYmUzMiBuZnNlcnIsCiAJCQkgKHhkci0+YnVmLT5idWZsZW4gLSB4ZHItPmJ1Zi0+bGVuKSk7CiAJbWF4Y291bnQgPSBtaW5fdCh1bnNpZ25lZCBsb25nLCBtYXhjb3VudCwgcmVhZC0+cmRfbGVuZ3RoKTsKIAotCWlmIChyZWFkLT5yZF90bXBfZmlsZSkKLQkJcmEgPSBuZnNkX2luaXRfcmFwYXJtcyhmaWxlKTsKLQogCWlmIChmaWxlLT5mX29wLT5zcGxpY2VfcmVhZCAmJgogCSAgICB0ZXN0X2JpdChSUV9TUExJQ0VfT0ssICZyZXNwLT5ycXN0cC0+cnFfZmxhZ3MpKQogCQluZnNlcnIgPSBuZnNkNF9lbmNvZGVfc3BsaWNlX3JlYWQocmVzcCwgcmVhZCwgZmlsZSwgbWF4Y291bnQpOwogCWVsc2UKIAkJbmZzZXJyID0gbmZzZDRfZW5jb2RlX3JlYWR2KHJlc3AsIHJlYWQsIGZpbGUsIG1heGNvdW50KTsKIAotCWlmIChyYSkKLQkJbmZzZF9wdXRfcmFwYXJhbXMoZmlsZSwgcmEpOwotCiAJaWYgKG5mc2VycikKIAkJeGRyX3RydW5jYXRlX2VuY29kZSh4ZHIsIHN0YXJ0aW5nX2xlbik7CiAKZGlmZiAtLWdpdCBhL2ZzL25mc2QvbmZzY3RsLmMgYi9mcy9uZnNkL25mc2N0bC5jCmluZGV4IDJjMjE1MTcuLjExYjQyYzUgMTAwNjQ0Ci0tLSBhL2ZzL25mc2QvbmZzY3RsLmMKKysrIGIvZnMvbmZzZC9uZnNjdGwuYwpAQCAtMTQ3Niw2ICsxNDc2LDcgQEAgc3RhdGljIF9fbmV0X2luaXQgaW50IG5mc2RfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogCiAJYXRvbWljX3NldCgmbm4tPm50Zl9yZWZjbnQsIDApOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJm5uLT5udGZfd3EpOworCXNlcWxvY2tfaW5pdCgmbm4tPmJvb3RfbG9jayk7CiAKIAltbnQgPSAgdmZzX2tlcm5fbW91bnQoJm5mc2RfZnNfdHlwZSwgU0JfS0VSTk1PVU5ULCAibmZzZCIsIE5VTEwpOwogCWlmIChJU19FUlIobW50KSkgewpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnNwcm9jLmMgYi9mcy9uZnNkL25mc3Byb2MuYwppbmRleCAwZDIwZmQxLi5jODNkZGFjIDEwMDY0NAotLS0gYS9mcy9uZnNkL25mc3Byb2MuYworKysgYi9mcy9uZnNkL25mc3Byb2MuYwpAQCAtMTcyLDYgKzE3Miw3IEBAIG5mc2RfcHJvY19yZWFkKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHApCiAJc3RydWN0IG5mc2RfcmVhZGFyZ3MgKmFyZ3AgPSBycXN0cC0+cnFfYXJncDsKIAlzdHJ1Y3QgbmZzZF9yZWFkcmVzICpyZXNwID0gcnFzdHAtPnJxX3Jlc3A7CiAJX19iZTMyCW5mc2VycjsKKwl1MzIgZW9mOwogCiAJZHByaW50aygibmZzZDogUkVBRCAgICAlcyAlZCBieXRlcyBhdCAlZFxuIiwKIAkJU1ZDRkhfZm10KCZhcmdwLT5maCksCkBAIC0xOTUsNyArMTk2LDggQEAgbmZzZF9wcm9jX3JlYWQoc3RydWN0IHN2Y19ycXN0ICpycXN0cCkKIAluZnNlcnIgPSBuZnNkX3JlYWQocnFzdHAsIGZoX2NvcHkoJnJlc3AtPmZoLCAmYXJncC0+ZmgpLAogCQkJCSAgYXJncC0+b2Zmc2V0LAogCQkJICAgCSAgcnFzdHAtPnJxX3ZlYywgYXJncC0+dmxlbiwKLQkJCQkgICZyZXNwLT5jb3VudCk7CisJCQkJICAmcmVzcC0+Y291bnQsCisJCQkJICAmZW9mKTsKIAogCWlmIChuZnNlcnIpIHJldHVybiBuZnNlcnI7CiAJcmV0dXJuIGZoX2dldGF0dHIoJnJlc3AtPmZoLCAmcmVzcC0+c3RhdCk7CmRpZmYgLS1naXQgYS9mcy9uZnNkL25mc3N2Yy5jIGIvZnMvbmZzZC9uZnNzdmMuYwppbmRleCAxOGQ5NGVhLi5mZGY3ZWQ0IDEwMDY0NAotLS0gYS9mcy9uZnNkL25mc3N2Yy5jCisrKyBiL2ZzL25mc2QvbmZzc3ZjLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjYWNoZS5oIgogI2luY2x1ZGUgInZmcy5oIgogI2luY2x1ZGUgIm5ldG5zLmgiCisjaW5jbHVkZSAiZmlsZWNhY2hlLmgiCiAKICNkZWZpbmUgTkZTRERCR19GQUNJTElUWQlORlNEREJHX1NWQwogCkBAIC0zMTMsMjIgKzMxNCwxNyBAQCBzdGF0aWMgaW50IG5mc2Rfc3RhcnR1cF9nZW5lcmljKGludCBucnNlcnZzKQogCWlmIChuZnNkX3VzZXJzKyspCiAJCXJldHVybiAwOwogCi0JLyoKLQkgKiBSZWFkYWhlYWQgcGFyYW0gY2FjaGUgLSB3aWxsIG5vLW9wIGlmIGl0IGFscmVhZHkgZXhpc3RzLgotCSAqIChOb3RlIHRoZXJlZm9yZSByZXN1bHRzIHdpbGwgYmUgc3Vib3B0aW1hbCBpZiBudW1iZXIgb2YKLQkgKiB0aHJlYWRzIGlzIG1vZGlmaWVkIGFmdGVyIG5mc2Qgc3RhcnQuKQotCSAqLwotCXJldCA9IG5mc2RfcmFjYWNoZV9pbml0KDIqbnJzZXJ2cyk7CisJcmV0ID0gbmZzZF9maWxlX2NhY2hlX2luaXQoKTsKIAlpZiAocmV0KQogCQlnb3RvIGRlY191c2VyczsKIAogCXJldCA9IG5mczRfc3RhdGVfc3RhcnQoKTsKIAlpZiAocmV0KQotCQlnb3RvIG91dF9yYWNhY2hlOworCQlnb3RvIG91dF9maWxlX2NhY2hlOwogCXJldHVybiAwOwogCi1vdXRfcmFjYWNoZToKLQluZnNkX3JhY2FjaGVfc2h1dGRvd24oKTsKK291dF9maWxlX2NhY2hlOgorCW5mc2RfZmlsZV9jYWNoZV9zaHV0ZG93bigpOwogZGVjX3VzZXJzOgogCW5mc2RfdXNlcnMtLTsKIAlyZXR1cm4gcmV0OwpAQCAtMzQwLDcgKzMzNiw3IEBAIHN0YXRpYyB2b2lkIG5mc2Rfc2h1dGRvd25fZ2VuZXJpYyh2b2lkKQogCQlyZXR1cm47CiAKIAluZnM0X3N0YXRlX3NodXRkb3duKCk7Ci0JbmZzZF9yYWNhY2hlX3NodXRkb3duKCk7CisJbmZzZF9maWxlX2NhY2hlX3NodXRkb3duKCk7CiB9CiAKIHN0YXRpYyBib29sIG5mc2RfbmVlZHNfbG9ja2Qoc3RydWN0IG5mc2RfbmV0ICpubikKQEAgLTM0OCw2ICszNDQsMzUgQEAgc3RhdGljIGJvb2wgbmZzZF9uZWVkc19sb2NrZChzdHJ1Y3QgbmZzZF9uZXQgKm5uKQogCXJldHVybiBuZnNkX3ZlcnMobm4sIDIsIE5GU0RfVEVTVCkgfHwgbmZzZF92ZXJzKG5uLCAzLCBORlNEX1RFU1QpOwogfQogCit2b2lkIG5mc2RfY29weV9ib290X3ZlcmlmaWVyKF9fYmUzMiB2ZXJmWzJdLCBzdHJ1Y3QgbmZzZF9uZXQgKm5uKQoreworCWludCBzZXEgPSAwOworCisJZG8geworCQlyZWFkX3NlcWJlZ2luX29yX2xvY2soJm5uLT5ib290X2xvY2ssICZzZXEpOworCQkvKgorCQkgKiBUaGlzIGlzIG9wYXF1ZSB0byBjbGllbnQsIHNvIG5vIG5lZWQgdG8gYnl0ZS1zd2FwLiBVc2UKKwkJICogX19mb3JjZSB0byBrZWVwIHNwYXJzZSBoYXBweS4geTIwMzggdGltZV90IG92ZXJmbG93IGlzCisJCSAqIGlycmVsZXZhbnQgaW4gdGhpcyB1c2FnZQorCQkgKi8KKwkJdmVyZlswXSA9IChfX2ZvcmNlIF9fYmUzMilubi0+bmZzc3ZjX2Jvb3QudHZfc2VjOworCQl2ZXJmWzFdID0gKF9fZm9yY2UgX19iZTMyKW5uLT5uZnNzdmNfYm9vdC50dl9uc2VjOworCX0gd2hpbGUgKG5lZWRfc2VxcmV0cnkoJm5uLT5ib290X2xvY2ssIHNlcSkpOworCWRvbmVfc2VxcmV0cnkoJm5uLT5ib290X2xvY2ssIHNlcSk7Cit9CisKK3N0YXRpYyB2b2lkIG5mc2RfcmVzZXRfYm9vdF92ZXJpZmllcl9sb2NrZWQoc3RydWN0IG5mc2RfbmV0ICpubikKK3sKKwlrdGltZV9nZXRfcmVhbF90czY0KCZubi0+bmZzc3ZjX2Jvb3QpOworfQorCit2b2lkIG5mc2RfcmVzZXRfYm9vdF92ZXJpZmllcihzdHJ1Y3QgbmZzZF9uZXQgKm5uKQoreworCXdyaXRlX3NlcWxvY2soJm5uLT5ib290X2xvY2spOworCW5mc2RfcmVzZXRfYm9vdF92ZXJpZmllcl9sb2NrZWQobm4pOworCXdyaXRlX3NlcXVubG9jaygmbm4tPmJvb3RfbG9jayk7Cit9CisKIHN0YXRpYyBpbnQgbmZzZF9zdGFydHVwX25ldChpbnQgbnJzZXJ2cywgc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCkKIHsKIAlzdHJ1Y3QgbmZzZF9uZXQgKm5uID0gbmV0X2dlbmVyaWMobmV0LCBuZnNkX25ldF9pZCk7CkBAIC0zOTEsNiArNDE2LDcgQEAgc3RhdGljIHZvaWQgbmZzZF9zaHV0ZG93bl9uZXQoc3RydWN0IG5ldCAqbmV0KQogewogCXN0cnVjdCBuZnNkX25ldCAqbm4gPSBuZXRfZ2VuZXJpYyhuZXQsIG5mc2RfbmV0X2lkKTsKIAorCW5mc2RfZmlsZV9jYWNoZV9wdXJnZShuZXQpOwogCW5mczRfc3RhdGVfc2h1dGRvd25fbmV0KG5ldCk7CiAJaWYgKG5uLT5sb2NrZF91cCkgewogCQlsb2NrZF9kb3duKG5ldCk7CkBAIC01OTksNyArNjI1LDcgQEAgaW50IG5mc2RfY3JlYXRlX3NlcnYoc3RydWN0IG5ldCAqbmV0KQogI2VuZGlmCiAJfQogCWF0b21pY19pbmMoJm5uLT5udGZfcmVmY250KTsKLQlrdGltZV9nZXRfcmVhbF90czY0KCZubi0+bmZzc3ZjX2Jvb3QpOyAvKiByZWNvcmQgYm9vdCB0aW1lICovCisJbmZzZF9yZXNldF9ib290X3ZlcmlmaWVyKG5uKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvbmZzZC9zdGF0ZS5oIGIvZnMvbmZzZC9zdGF0ZS5oCmluZGV4IDVkYmQxNjkuLjQ2ZjU2YWYgMTAwNjQ0Ci0tLSBhL2ZzL25mc2Qvc3RhdGUuaAorKysgYi9mcy9uZnNkL3N0YXRlLmgKQEAgLTM3OCw2ICszNzgsNyBAQCBzdHJ1Y3QgbmZzNF9jbGllbnRfcmVjbGFpbSB7CiAJc3RydWN0IGxpc3RfaGVhZAljcl9zdHJoYXNoOwkvKiBoYXNoIGJ5IGNyX25hbWUgKi8KIAlzdHJ1Y3QgbmZzNF9jbGllbnQJKmNyX2NscDsJLyogcG9pbnRlciB0byBhc3NvY2lhdGVkIGNscCAqLwogCXN0cnVjdCB4ZHJfbmV0b2JqCWNyX25hbWU7CS8qIHJlY292ZXJ5IGRpciBuYW1lICovCisJc3RydWN0IHhkcl9uZXRvYmoJY3JfcHJpbmNoYXNoOwogfTsKIAogLyogQSByZWFzb25hYmxlIHZhbHVlIGZvciBSRVBMQVlfSVNJWkUgd2FzIGVzdGltYXRlZCBhcyBmb2xsb3dzOiAgCkBAIC01MDYsNyArNTA3LDcgQEAgc3RydWN0IG5mczRfZmlsZSB7CiAJfTsKIAlzdHJ1Y3QgbGlzdF9oZWFkCWZpX2NsbnRfb2RzdGF0ZTsKIAkvKiBPbmUgZWFjaCBmb3IgT19SRE9OTFksIE9fV1JPTkxZLCBPX1JEV1I6ICovCi0Jc3RydWN0IGZpbGUgKgkJZmlfZmRzWzNdOworCXN0cnVjdCBuZnNkX2ZpbGUJKmZpX2Zkc1szXTsKIAkvKgogCSAqIEVhY2ggb3BlbiBvciBsb2NrIHN0YXRlaWQgY29udHJpYnV0ZXMgMC00IHRvIHRoZSBjb3VudHMKIAkgKiBiZWxvdyBkZXBlbmRpbmcgb24gd2hpY2ggYml0cyBhcmUgc2V0IGluIHN0X2FjY2Vzc19iaXRtYXA6CkBAIC01MTYsNyArNTE3LDcgQEAgc3RydWN0IG5mczRfZmlsZSB7CiAJICovCiAJYXRvbWljX3QJCWZpX2FjY2Vzc1syXTsKIAl1MzIJCQlmaV9zaGFyZV9kZW55OwotCXN0cnVjdCBmaWxlCQkqZmlfZGVsZWdfZmlsZTsKKwlzdHJ1Y3QgbmZzZF9maWxlCSpmaV9kZWxlZ19maWxlOwogCWludAkJCWZpX2RlbGVnZWVzOwogCXN0cnVjdCBrbmZzZF9maAkJZmlfZmhhbmRsZTsKIAlib29sCQkJZmlfaGFkX2NvbmZsaWN0OwpAQCAtNTY1LDcgKzU2Niw3IEBAIHN0cnVjdCBuZnM0X2xheW91dF9zdGF0ZWlkIHsKIAlzcGlubG9ja190CQkJbHNfbG9jazsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQlsc19sYXlvdXRzOwogCXUzMgkJCQlsc19sYXlvdXRfdHlwZTsKLQlzdHJ1Y3QgZmlsZQkJCSpsc19maWxlOworCXN0cnVjdCBuZnNkX2ZpbGUJCSpsc19maWxlOwogCXN0cnVjdCBuZnNkNF9jYWxsYmFjawkJbHNfcmVjYWxsOwogCXN0YXRlaWRfdAkJCWxzX3JlY2FsbF9zaWQ7CiAJYm9vbAkJCQlsc19yZWNhbGxlZDsKQEAgLTYxNiw3ICs2MTcsNyBAQCBzdHJ1Y3QgbmZzZDRfY29weTsKIAogZXh0ZXJuIF9fYmUzMiBuZnM0X3ByZXByb2Nlc3Nfc3RhdGVpZF9vcChzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLAogCQlzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNzdGF0ZSwgc3RydWN0IHN2Y19maCAqZmhwLAotCQlzdGF0ZWlkX3QgKnN0YXRlaWQsIGludCBmbGFncywgc3RydWN0IGZpbGUgKipmaWxwLCBib29sICp0bXBfZmlsZSk7CisJCXN0YXRlaWRfdCAqc3RhdGVpZCwgaW50IGZsYWdzLCBzdHJ1Y3QgbmZzZF9maWxlICoqZmlscCk7CiBfX2JlMzIgbmZzZDRfbG9va3VwX3N0YXRlaWQoc3RydWN0IG5mc2Q0X2NvbXBvdW5kX3N0YXRlICpjc3RhdGUsCiAJCSAgICAgc3RhdGVpZF90ICpzdGF0ZWlkLCB1bnNpZ25lZCBjaGFyIHR5cGVtYXNrLAogCQkgICAgIHN0cnVjdCBuZnM0X3N0aWQgKipzLCBzdHJ1Y3QgbmZzZF9uZXQgKm5uKTsKQEAgLTY0NSw3ICs2NDYsNyBAQCBleHRlcm4gdm9pZCBuZnNkNF9zaHV0ZG93bl9jYWxsYmFjayhzdHJ1Y3QgbmZzNF9jbGllbnQgKik7CiBleHRlcm4gdm9pZCBuZnNkNF9zaHV0ZG93bl9jb3B5KHN0cnVjdCBuZnM0X2NsaWVudCAqY2xwKTsKIGV4dGVybiB2b2lkIG5mc2Q0X3ByZXBhcmVfY2JfcmVjYWxsKHN0cnVjdCBuZnM0X2RlbGVnYXRpb24gKmRwKTsKIGV4dGVybiBzdHJ1Y3QgbmZzNF9jbGllbnRfcmVjbGFpbSAqbmZzNF9jbGllbnRfdG9fcmVjbGFpbShzdHJ1Y3QgeGRyX25ldG9iaiBuYW1lLAotCQkJCQkJCXN0cnVjdCBuZnNkX25ldCAqbm4pOworCQkJCXN0cnVjdCB4ZHJfbmV0b2JqIHByaW5jaGFzaCwgc3RydWN0IG5mc2RfbmV0ICpubik7CiBleHRlcm4gYm9vbCBuZnM0X2hhc19yZWNsYWltZWRfc3RhdGUoc3RydWN0IHhkcl9uZXRvYmogbmFtZSwgc3RydWN0IG5mc2RfbmV0ICpubik7CiAKIHN0cnVjdCBuZnM0X2ZpbGUgKmZpbmRfZmlsZShzdHJ1Y3Qga25mc2RfZmggKmZoKTsKQEAgLTY1Nyw3ICs2NTgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0X25mczRfZmlsZShzdHJ1Y3QgbmZzNF9maWxlICpmaSkKIHsKIAlyZWZjb3VudF9pbmMoJmZpLT5maV9yZWYpOwogfQotc3RydWN0IGZpbGUgKmZpbmRfYW55X2ZpbGUoc3RydWN0IG5mczRfZmlsZSAqZik7CitzdHJ1Y3QgbmZzZF9maWxlICpmaW5kX2FueV9maWxlKHN0cnVjdCBuZnM0X2ZpbGUgKmYpOwogCiAvKiBncmFjZSBwZXJpb2QgbWFuYWdlbWVudCAqLwogdm9pZCBuZnNkNF9lbmRfZ3JhY2Uoc3RydWN0IG5mc2RfbmV0ICpubik7CmRpZmYgLS1naXQgYS9mcy9uZnNkL3RyYWNlLmggYi9mcy9uZnNkL3RyYWNlLmgKaW5kZXggODA5MzNlNC4uZmZjNzhhMCAxMDA2NDQKLS0tIGEvZnMvbmZzZC90cmFjZS5oCisrKyBiL2ZzL25mc2QvdHJhY2UuaApAQCAtMTI2LDYgKzEyNiw4IEBAIERFRklORV9ORlNEX0VSUl9FVkVOVChyZWFkX2Vycik7CiBERUZJTkVfTkZTRF9FUlJfRVZFTlQod3JpdGVfZXJyKTsKIAogI2luY2x1ZGUgInN0YXRlLmgiCisjaW5jbHVkZSAiZmlsZWNhY2hlLmgiCisjaW5jbHVkZSAidmZzLmgiCiAKIERFQ0xBUkVfRVZFTlRfQ0xBU1MobmZzZF9zdGF0ZWlkX2NsYXNzLAogCVRQX1BST1RPKHN0YXRlaWRfdCAqc3RwKSwKQEAgLTE2NCw2ICsxNjYsMTQ0IEBAIERFRklORV9TVEFURUlEX0VWRU5UKGxheW91dF9yZWNhbGxfZG9uZSk7CiBERUZJTkVfU1RBVEVJRF9FVkVOVChsYXlvdXRfcmVjYWxsX2ZhaWwpOwogREVGSU5FX1NUQVRFSURfRVZFTlQobGF5b3V0X3JlY2FsbF9yZWxlYXNlKTsKIAorI2RlZmluZSBzaG93X25mX2ZsYWdzKHZhbCkJCQkJCQlcCisJX19wcmludF9mbGFncyh2YWwsICJ8IiwJCQkJCQlcCisJCXsgMSA8PCBORlNEX0ZJTEVfSEFTSEVELAkiSEFTSEVEIiB9LAkJXAorCQl7IDEgPDwgTkZTRF9GSUxFX1BFTkRJTkcsCSJQRU5ESU5HIiB9LAkJXAorCQl7IDEgPDwgTkZTRF9GSUxFX0JSRUFLX1JFQUQsCSJCUkVBS19SRUFEIiB9LAkJXAorCQl7IDEgPDwgTkZTRF9GSUxFX0JSRUFLX1dSSVRFLAkiQlJFQUtfV1JJVEUiIH0sCVwKKwkJeyAxIDw8IE5GU0RfRklMRV9SRUZFUkVOQ0VELAkiUkVGRVJFTkNFRCJ9KQorCisvKiBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgZmxlc2hlZCBvdXQgaW4gdGhlIGZ1dHVyZS4gKi8KKyNkZWZpbmUgc2hvd19uZl9tYXkodmFsKQkJCQkJCVwKKwlfX3ByaW50X2ZsYWdzKHZhbCwgInwiLAkJCQkJCVwKKwkJeyBORlNEX01BWV9SRUFELAkJIlJFQUQiIH0sCQlcCisJCXsgTkZTRF9NQVlfV1JJVEUsCQkiV1JJVEUiIH0sCQlcCisJCXsgTkZTRF9NQVlfTk9UX0JSRUFLX0xFQVNFLAkiTk9UX0JSRUFLX0xFQVNFIiB9KQorCitERUNMQVJFX0VWRU5UX0NMQVNTKG5mc2RfZmlsZV9jbGFzcywKKwlUUF9QUk9UTyhzdHJ1Y3QgbmZzZF9maWxlICpuZiksCisJVFBfQVJHUyhuZiksCisJVFBfU1RSVUNUX19lbnRyeSgKKwkJX19maWVsZCh1bnNpZ25lZCBpbnQsIG5mX2hhc2h2YWwpCisJCV9fZmllbGQodm9pZCAqLCBuZl9pbm9kZSkKKwkJX19maWVsZChpbnQsIG5mX3JlZikKKwkJX19maWVsZCh1bnNpZ25lZCBsb25nLCBuZl9mbGFncykKKwkJX19maWVsZCh1bnNpZ25lZCBjaGFyLCBuZl9tYXkpCisJCV9fZmllbGQoc3RydWN0IGZpbGUgKiwgbmZfZmlsZSkKKwkpLAorCVRQX2Zhc3RfYXNzaWduKAorCQlfX2VudHJ5LT5uZl9oYXNodmFsID0gbmYtPm5mX2hhc2h2YWw7CisJCV9fZW50cnktPm5mX2lub2RlID0gbmYtPm5mX2lub2RlOworCQlfX2VudHJ5LT5uZl9yZWYgPSBhdG9taWNfcmVhZCgmbmYtPm5mX3JlZik7CisJCV9fZW50cnktPm5mX2ZsYWdzID0gbmYtPm5mX2ZsYWdzOworCQlfX2VudHJ5LT5uZl9tYXkgPSBuZi0+bmZfbWF5OworCQlfX2VudHJ5LT5uZl9maWxlID0gbmYtPm5mX2ZpbGU7CisJKSwKKwlUUF9wcmludGsoImhhc2g9MHgleCBpbm9kZT0weCVwIHJlZj0lZCBmbGFncz0lcyBtYXk9JXMgZmlsZT0lcCIsCisJCV9fZW50cnktPm5mX2hhc2h2YWwsCisJCV9fZW50cnktPm5mX2lub2RlLAorCQlfX2VudHJ5LT5uZl9yZWYsCisJCXNob3dfbmZfZmxhZ3MoX19lbnRyeS0+bmZfZmxhZ3MpLAorCQlzaG93X25mX21heShfX2VudHJ5LT5uZl9tYXkpLAorCQlfX2VudHJ5LT5uZl9maWxlKQorKQorCisjZGVmaW5lIERFRklORV9ORlNEX0ZJTEVfRVZFTlQobmFtZSkgXAorREVGSU5FX0VWRU5UKG5mc2RfZmlsZV9jbGFzcywgbmFtZSwgXAorCVRQX1BST1RPKHN0cnVjdCBuZnNkX2ZpbGUgKm5mKSwgXAorCVRQX0FSR1MobmYpKQorCitERUZJTkVfTkZTRF9GSUxFX0VWRU5UKG5mc2RfZmlsZV9hbGxvYyk7CitERUZJTkVfTkZTRF9GSUxFX0VWRU5UKG5mc2RfZmlsZV9wdXRfZmluYWwpOworREVGSU5FX05GU0RfRklMRV9FVkVOVChuZnNkX2ZpbGVfdW5oYXNoKTsKK0RFRklORV9ORlNEX0ZJTEVfRVZFTlQobmZzZF9maWxlX3B1dCk7CitERUZJTkVfTkZTRF9GSUxFX0VWRU5UKG5mc2RfZmlsZV91bmhhc2hfYW5kX3JlbGVhc2VfbG9ja2VkKTsKKworVFJBQ0VfRVZFTlQobmZzZF9maWxlX2FjcXVpcmUsCisJVFBfUFJPVE8oc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgdW5zaWduZWQgaW50IGhhc2gsCisJCSBzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBpbnQgbWF5X2ZsYWdzLAorCQkgc3RydWN0IG5mc2RfZmlsZSAqbmYsIF9fYmUzMiBzdGF0dXMpLAorCisJVFBfQVJHUyhycXN0cCwgaGFzaCwgaW5vZGUsIG1heV9mbGFncywgbmYsIHN0YXR1cyksCisKKwlUUF9TVFJVQ1RfX2VudHJ5KAorCQlfX2ZpZWxkKF9fYmUzMiwgeGlkKQorCQlfX2ZpZWxkKHVuc2lnbmVkIGludCwgaGFzaCkKKwkJX19maWVsZCh2b2lkICosIGlub2RlKQorCQlfX2ZpZWxkKHVuc2lnbmVkIGludCwgbWF5X2ZsYWdzKQorCQlfX2ZpZWxkKGludCwgbmZfcmVmKQorCQlfX2ZpZWxkKHVuc2lnbmVkIGxvbmcsIG5mX2ZsYWdzKQorCQlfX2ZpZWxkKHVuc2lnbmVkIGNoYXIsIG5mX21heSkKKwkJX19maWVsZChzdHJ1Y3QgZmlsZSAqLCBuZl9maWxlKQorCQlfX2ZpZWxkKF9fYmUzMiwgc3RhdHVzKQorCSksCisKKwlUUF9mYXN0X2Fzc2lnbigKKwkJX19lbnRyeS0+eGlkID0gcnFzdHAtPnJxX3hpZDsKKwkJX19lbnRyeS0+aGFzaCA9IGhhc2g7CisJCV9fZW50cnktPmlub2RlID0gaW5vZGU7CisJCV9fZW50cnktPm1heV9mbGFncyA9IG1heV9mbGFnczsKKwkJX19lbnRyeS0+bmZfcmVmID0gbmYgPyBhdG9taWNfcmVhZCgmbmYtPm5mX3JlZikgOiAwOworCQlfX2VudHJ5LT5uZl9mbGFncyA9IG5mID8gbmYtPm5mX2ZsYWdzIDogMDsKKwkJX19lbnRyeS0+bmZfbWF5ID0gbmYgPyBuZi0+bmZfbWF5IDogMDsKKwkJX19lbnRyeS0+bmZfZmlsZSA9IG5mID8gbmYtPm5mX2ZpbGUgOiBOVUxMOworCQlfX2VudHJ5LT5zdGF0dXMgPSBzdGF0dXM7CisJKSwKKworCVRQX3ByaW50aygieGlkPTB4JXggaGFzaD0weCV4IGlub2RlPTB4JXAgbWF5X2ZsYWdzPSVzIHJlZj0lZCBuZl9mbGFncz0lcyBuZl9tYXk9JXMgbmZfZmlsZT0weCVwIHN0YXR1cz0ldSIsCisJCQliZTMyX3RvX2NwdShfX2VudHJ5LT54aWQpLCBfX2VudHJ5LT5oYXNoLCBfX2VudHJ5LT5pbm9kZSwKKwkJCXNob3dfbmZfbWF5KF9fZW50cnktPm1heV9mbGFncyksIF9fZW50cnktPm5mX3JlZiwKKwkJCXNob3dfbmZfZmxhZ3MoX19lbnRyeS0+bmZfZmxhZ3MpLAorCQkJc2hvd19uZl9tYXkoX19lbnRyeS0+bmZfbWF5KSwgX19lbnRyeS0+bmZfZmlsZSwKKwkJCWJlMzJfdG9fY3B1KF9fZW50cnktPnN0YXR1cykpCispOworCitERUNMQVJFX0VWRU5UX0NMQVNTKG5mc2RfZmlsZV9zZWFyY2hfY2xhc3MsCisJVFBfUFJPVE8oc3RydWN0IGlub2RlICppbm9kZSwgdW5zaWduZWQgaW50IGhhc2gsIGludCBmb3VuZCksCisJVFBfQVJHUyhpbm9kZSwgaGFzaCwgZm91bmQpLAorCVRQX1NUUlVDVF9fZW50cnkoCisJCV9fZmllbGQoc3RydWN0IGlub2RlICosIGlub2RlKQorCQlfX2ZpZWxkKHVuc2lnbmVkIGludCwgaGFzaCkKKwkJX19maWVsZChpbnQsIGZvdW5kKQorCSksCisJVFBfZmFzdF9hc3NpZ24oCisJCV9fZW50cnktPmlub2RlID0gaW5vZGU7CisJCV9fZW50cnktPmhhc2ggPSBoYXNoOworCQlfX2VudHJ5LT5mb3VuZCA9IGZvdW5kOworCSksCisJVFBfcHJpbnRrKCJoYXNoPTB4JXggaW5vZGU9MHglcCBmb3VuZD0lZCIsIF9fZW50cnktPmhhc2gsCisJCQlfX2VudHJ5LT5pbm9kZSwgX19lbnRyeS0+Zm91bmQpCispOworCisjZGVmaW5lIERFRklORV9ORlNEX0ZJTEVfU0VBUkNIX0VWRU5UKG5hbWUpCQkJCVwKK0RFRklORV9FVkVOVChuZnNkX2ZpbGVfc2VhcmNoX2NsYXNzLCBuYW1lLAkJCQlcCisJVFBfUFJPVE8oc3RydWN0IGlub2RlICppbm9kZSwgdW5zaWduZWQgaW50IGhhc2gsIGludCBmb3VuZCksCVwKKwlUUF9BUkdTKGlub2RlLCBoYXNoLCBmb3VuZCkpCisKK0RFRklORV9ORlNEX0ZJTEVfU0VBUkNIX0VWRU5UKG5mc2RfZmlsZV9jbG9zZV9pbm9kZV9zeW5jKTsKK0RFRklORV9ORlNEX0ZJTEVfU0VBUkNIX0VWRU5UKG5mc2RfZmlsZV9jbG9zZV9pbm9kZSk7CitERUZJTkVfTkZTRF9GSUxFX1NFQVJDSF9FVkVOVChuZnNkX2ZpbGVfaXNfY2FjaGVkKTsKKworVFJBQ0VfRVZFTlQobmZzZF9maWxlX2Zzbm90aWZ5X2hhbmRsZV9ldmVudCwKKwlUUF9QUk9UTyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1MzIgbWFzayksCisJVFBfQVJHUyhpbm9kZSwgbWFzayksCisJVFBfU1RSVUNUX19lbnRyeSgKKwkJX19maWVsZChzdHJ1Y3QgaW5vZGUgKiwgaW5vZGUpCisJCV9fZmllbGQodW5zaWduZWQgaW50LCBubGluaykKKwkJX19maWVsZCh1bW9kZV90LCBtb2RlKQorCQlfX2ZpZWxkKHUzMiwgbWFzaykKKwkpLAorCVRQX2Zhc3RfYXNzaWduKAorCQlfX2VudHJ5LT5pbm9kZSA9IGlub2RlOworCQlfX2VudHJ5LT5ubGluayA9IGlub2RlLT5pX25saW5rOworCQlfX2VudHJ5LT5tb2RlID0gaW5vZGUtPmlfbW9kZTsKKwkJX19lbnRyeS0+bWFzayA9IG1hc2s7CisJKSwKKwlUUF9wcmludGsoImlub2RlPTB4JXAgbmxpbms9JXUgbW9kZT0wJWhvIG1hc2s9MHgleCIsIF9fZW50cnktPmlub2RlLAorCQkJX19lbnRyeS0+bmxpbmssIF9fZW50cnktPm1vZGUsIF9fZW50cnktPm1hc2spCispOworCiAjZW5kaWYgLyogX05GU0RfVFJBQ0VfSCAqLwogCiAjdW5kZWYgVFJBQ0VfSU5DTFVERV9QQVRICmRpZmYgLS1naXQgYS9mcy9uZnNkL3Zmcy5jIGIvZnMvbmZzZC92ZnMuYwppbmRleCBjODU3ODNlLi5iZDBhMzg1IDEwMDY0NAotLS0gYS9mcy9uZnNkL3Zmcy5jCisrKyBiL2ZzL25mc2QvdmZzLmMKQEAgLTQ0LDM4ICs0NCwxMSBAQAogCiAjaW5jbHVkZSAibmZzZC5oIgogI2luY2x1ZGUgInZmcy5oIgorI2luY2x1ZGUgImZpbGVjYWNoZS5oIgogI2luY2x1ZGUgInRyYWNlLmgiCiAKICNkZWZpbmUgTkZTRERCR19GQUNJTElUWQkJTkZTRERCR19GSUxFT1AKIAotCi0vKgotICogVGhpcyBpcyBhIGNhY2hlIG9mIHJlYWRhaGVhZCBwYXJhbXMgdGhhdCBoZWxwIHVzIGNob29zZSB0aGUgcHJvcGVyCi0gKiByZWFkYWhlYWQgc3RyYXRlZ3kuIEluaXRpYWxseSwgd2Ugc2V0IGFsbCByZWFkYWhlYWQgcGFyYW1ldGVycyB0byAwCi0gKiBhbmQgbGV0IHRoZSBWRlMgaGFuZGxlIHRoaW5ncy4KLSAqIElmIHlvdSBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGNhY2hlZCBmaWxlcyB2ZXJ5IG11Y2gsIHlvdSdsbCBuZWVkIHRvCi0gKiBhZGQgYSBoYXNoIHRhYmxlIGhlcmUuCi0gKi8KLXN0cnVjdCByYXBhcm1zIHsKLQlzdHJ1Y3QgcmFwYXJtcwkJKnBfbmV4dDsKLQl1bnNpZ25lZCBpbnQJCXBfY291bnQ7Ci0JaW5vX3QJCQlwX2lubzsKLQlkZXZfdAkJCXBfZGV2OwotCWludAkJCXBfc2V0OwotCXN0cnVjdCBmaWxlX3JhX3N0YXRlCXBfcmE7Ci0JdW5zaWduZWQgaW50CQlwX2hpbmRleDsKLX07Ci0KLXN0cnVjdCByYXBhcm1faGJ1Y2tldCB7Ci0Jc3RydWN0IHJhcGFybXMJCSpwYl9oZWFkOwotCXNwaW5sb2NrX3QJCXBiX2xvY2s7Ci19IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7Ci0KLSNkZWZpbmUgUkFQQVJNX0hBU0hfQklUUwk0Ci0jZGVmaW5lIFJBUEFSTV9IQVNIX1NJWkUJKDE8PFJBUEFSTV9IQVNIX0JJVFMpCi0jZGVmaW5lIFJBUEFSTV9IQVNIX01BU0sJKFJBUEFSTV9IQVNIX1NJWkUtMSkKLXN0YXRpYyBzdHJ1Y3QgcmFwYXJtX2hidWNrZXQJcmFwYXJtX2hhc2hbUkFQQVJNX0hBU0hfU0laRV07Ci0KIC8qIAogICogQ2FsbGVkIGZyb20gbmZzZF9sb29rdXAgYW5kIGVuY29kZV9kaXJlbnQuIENoZWNrIGlmIHdlIGhhdmUgY3Jvc3NlZCAKICAqIGEgbW91bnQgcG9pbnQuCkBAIC02OTksNyArNjcyLDcgQEAgbmZzZF9hY2Nlc3Moc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmhwLCB1MzIgKmFjY2VzcywgdTMyICpzdXBwb3IKIH0KICNlbmRpZiAvKiBDT05GSUdfTkZTRF9WMyAqLwogCi1zdGF0aWMgaW50IG5mc2Rfb3Blbl9icmVha19sZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYWNjZXNzKQoraW50IG5mc2Rfb3Blbl9icmVha19sZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYWNjZXNzKQogewogCXVuc2lnbmVkIGludCBtb2RlOwogCkBAIC03MTUsOCArNjg4LDggQEAgc3RhdGljIGludCBuZnNkX29wZW5fYnJlYWtfbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGFjY2VzcykKICAqIGFuZCBhZGRpdGlvbmFsIGZsYWdzLgogICogTi5CLiBBZnRlciB0aGlzIGNhbGwgZmhwIG5lZWRzIGFuIGZoX3B1dAogICovCi1fX2JlMzIKLW5mc2Rfb3BlbihzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsIHVtb2RlX3QgdHlwZSwKK3N0YXRpYyBfX2JlMzIKK19fbmZzZF9vcGVuKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgdW1vZGVfdCB0eXBlLAogCQkJaW50IG1heV9mbGFncywgc3RydWN0IGZpbGUgKipmaWxwKQogewogCXN0cnVjdCBwYXRoCXBhdGg7CkBAIC03MjYsMjUgKzY5OSw2IEBAIG5mc2Rfb3BlbihzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsIHVtb2RlX3QgdHlwZSwKIAlfX2JlMzIJCWVycjsKIAlpbnQJCWhvc3RfZXJyID0gMDsKIAotCXZhbGlkYXRlX3Byb2Nlc3NfY3JlZHMoKTsKLQotCS8qCi0JICogSWYgd2UgZ2V0IGhlcmUsIHRoZW4gdGhlIGNsaWVudCBoYXMgYWxyZWFkeSBkb25lIGFuICJvcGVuIiwKLQkgKiBhbmQgKGhvcGVmdWxseSkgY2hlY2tlZCBwZXJtaXNzaW9uIC0gc28gYWxsb3cgT1dORVJfT1ZFUlJJREUKLQkgKiBpbiBjYXNlIGEgY2htb2QgaGFzIG5vdyByZXZva2VkIHBlcm1pc3Npb24uCi0JICoKLQkgKiBBcmd1YWJseSB3ZSBzaG91bGQgYWxzbyBhbGxvdyB0aGUgb3duZXIgb3ZlcnJpZGUgZm9yCi0JICogZGlyZWN0b3JpZXMsIGJ1dCB3ZSBuZXZlciBoYXZlIGFuZCBpdCBkb2Vzbid0IHNlZW0gdG8gaGF2ZQotCSAqIGNhdXNlZCBhbnlvbmUgYSBwcm9ibGVtLiAgSWYgd2Ugd2VyZSB0byBjaGFuZ2UgdGhpcywgbm90ZQotCSAqIGFsc28gdGhhdCBvdXIgZmlsbGRpciBjYWxsYmFja3Mgd291bGQgbmVlZCBhIHZhcmlhbnQgb2YKLQkgKiBsb29rdXBfb25lX2xlbiB0aGF0IGRvZXNuJ3QgY2hlY2sgcGVybWlzc2lvbnMuCi0JICovCi0JaWYgKHR5cGUgPT0gU19JRlJFRykKLQkJbWF5X2ZsYWdzIHw9IE5GU0RfTUFZX09XTkVSX09WRVJSSURFOwotCWVyciA9IGZoX3ZlcmlmeShycXN0cCwgZmhwLCB0eXBlLCBtYXlfZmxhZ3MpOwotCWlmIChlcnIpCi0JCWdvdG8gb3V0OwotCiAJcGF0aC5tbnQgPSBmaHAtPmZoX2V4cG9ydC0+ZXhfcGF0aC5tbnQ7CiAJcGF0aC5kZW50cnkgPSBmaHAtPmZoX2RlbnRyeTsKIAlpbm9kZSA9IGRfaW5vZGUocGF0aC5kZW50cnkpOwpAQCAtNzk4LDY3ICs3NTIsNDYgQEAgbmZzZF9vcGVuKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgdW1vZGVfdCB0eXBlLAogb3V0X25mc2VycjoKIAllcnIgPSBuZnNlcnJubyhob3N0X2Vycik7CiBvdXQ6CisJcmV0dXJuIGVycjsKK30KKworX19iZTMyCituZnNkX29wZW4oc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmhwLCB1bW9kZV90IHR5cGUsCisJCWludCBtYXlfZmxhZ3MsIHN0cnVjdCBmaWxlICoqZmlscCkKK3sKKwlfX2JlMzIgZXJyOworCisJdmFsaWRhdGVfcHJvY2Vzc19jcmVkcygpOworCS8qCisJICogSWYgd2UgZ2V0IGhlcmUsIHRoZW4gdGhlIGNsaWVudCBoYXMgYWxyZWFkeSBkb25lIGFuICJvcGVuIiwKKwkgKiBhbmQgKGhvcGVmdWxseSkgY2hlY2tlZCBwZXJtaXNzaW9uIC0gc28gYWxsb3cgT1dORVJfT1ZFUlJJREUKKwkgKiBpbiBjYXNlIGEgY2htb2QgaGFzIG5vdyByZXZva2VkIHBlcm1pc3Npb24uCisJICoKKwkgKiBBcmd1YWJseSB3ZSBzaG91bGQgYWxzbyBhbGxvdyB0aGUgb3duZXIgb3ZlcnJpZGUgZm9yCisJICogZGlyZWN0b3JpZXMsIGJ1dCB3ZSBuZXZlciBoYXZlIGFuZCBpdCBkb2Vzbid0IHNlZW0gdG8gaGF2ZQorCSAqIGNhdXNlZCBhbnlvbmUgYSBwcm9ibGVtLiAgSWYgd2Ugd2VyZSB0byBjaGFuZ2UgdGhpcywgbm90ZQorCSAqIGFsc28gdGhhdCBvdXIgZmlsbGRpciBjYWxsYmFja3Mgd291bGQgbmVlZCBhIHZhcmlhbnQgb2YKKwkgKiBsb29rdXBfb25lX2xlbiB0aGF0IGRvZXNuJ3QgY2hlY2sgcGVybWlzc2lvbnMuCisJICovCisJaWYgKHR5cGUgPT0gU19JRlJFRykKKwkJbWF5X2ZsYWdzIHw9IE5GU0RfTUFZX09XTkVSX09WRVJSSURFOworCWVyciA9IGZoX3ZlcmlmeShycXN0cCwgZmhwLCB0eXBlLCBtYXlfZmxhZ3MpOworCWlmICghZXJyKQorCQllcnIgPSBfX25mc2Rfb3BlbihycXN0cCwgZmhwLCB0eXBlLCBtYXlfZmxhZ3MsIGZpbHApOwogCXZhbGlkYXRlX3Byb2Nlc3NfY3JlZHMoKTsKIAlyZXR1cm4gZXJyOwogfQogCi1zdHJ1Y3QgcmFwYXJtcyAqCi1uZnNkX2luaXRfcmFwYXJtcyhzdHJ1Y3QgZmlsZSAqZmlsZSkKK19fYmUzMgorbmZzZF9vcGVuX3ZlcmlmaWVkKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgdW1vZGVfdCB0eXBlLAorCQlpbnQgbWF5X2ZsYWdzLCBzdHJ1Y3QgZmlsZSAqKmZpbHApCiB7Ci0Jc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlsZSk7Ci0JZGV2X3QgZGV2ID0gaW5vZGUtPmlfc2ItPnNfZGV2OwotCWlub190IGlubyA9IGlub2RlLT5pX2lubzsKLQlzdHJ1Y3QgcmFwYXJtcwkqcmEsICoqcmFwLCAqKmZyYXAgPSBOVUxMOwotCWludCBkZXB0aCA9IDA7Ci0JdW5zaWduZWQgaW50IGhhc2g7Ci0Jc3RydWN0IHJhcGFybV9oYnVja2V0ICpyYWI7CisJX19iZTMyIGVycjsKIAotCWhhc2ggPSBqaGFzaF8yd29yZHMoZGV2LCBpbm8sIDB4ZmVlZGJlZWYpICYgUkFQQVJNX0hBU0hfTUFTSzsKLQlyYWIgPSAmcmFwYXJtX2hhc2hbaGFzaF07Ci0KLQlzcGluX2xvY2soJnJhYi0+cGJfbG9jayk7Ci0JZm9yIChyYXAgPSAmcmFiLT5wYl9oZWFkOyAocmEgPSAqcmFwKTsgcmFwID0gJnJhLT5wX25leHQpIHsKLQkJaWYgKHJhLT5wX2lubyA9PSBpbm8gJiYgcmEtPnBfZGV2ID09IGRldikKLQkJCWdvdG8gZm91bmQ7Ci0JCWRlcHRoKys7Ci0JCWlmIChyYS0+cF9jb3VudCA9PSAwKQotCQkJZnJhcCA9IHJhcDsKLQl9Ci0JZGVwdGggPSBuZnNkc3RhdHMucmFfc2l6ZTsKLQlpZiAoIWZyYXApIHsJCi0JCXNwaW5fdW5sb2NrKCZyYWItPnBiX2xvY2spOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0JcmFwID0gZnJhcDsKLQlyYSA9ICpmcmFwOwotCXJhLT5wX2RldiA9IGRldjsKLQlyYS0+cF9pbm8gPSBpbm87Ci0JcmEtPnBfc2V0ID0gMDsKLQlyYS0+cF9oaW5kZXggPSBoYXNoOwotZm91bmQ6Ci0JaWYgKHJhcCAhPSAmcmFiLT5wYl9oZWFkKSB7Ci0JCSpyYXAgPSByYS0+cF9uZXh0OwotCQlyYS0+cF9uZXh0ICAgPSByYWItPnBiX2hlYWQ7Ci0JCXJhYi0+cGJfaGVhZCA9IHJhOwotCX0KLQlyYS0+cF9jb3VudCsrOwotCW5mc2RzdGF0cy5yYV9kZXB0aFtkZXB0aCoxMC9uZnNkc3RhdHMucmFfc2l6ZV0rKzsKLQlzcGluX3VubG9jaygmcmFiLT5wYl9sb2NrKTsKLQotCWlmIChyYS0+cF9zZXQpCi0JCWZpbGUtPmZfcmEgPSByYS0+cF9yYTsKLQlyZXR1cm4gcmE7Ci19Ci0KLXZvaWQgbmZzZF9wdXRfcmFwYXJhbXMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCByYXBhcm1zICpyYSkKLXsKLQlzdHJ1Y3QgcmFwYXJtX2hidWNrZXQgKnJhYiA9ICZyYXBhcm1faGFzaFtyYS0+cF9oaW5kZXhdOwotCi0Jc3Bpbl9sb2NrKCZyYWItPnBiX2xvY2spOwotCXJhLT5wX3JhID0gZmlsZS0+Zl9yYTsKLQlyYS0+cF9zZXQgPSAxOwotCXJhLT5wX2NvdW50LS07Ci0Jc3Bpbl91bmxvY2soJnJhYi0+cGJfbG9jayk7CisJdmFsaWRhdGVfcHJvY2Vzc19jcmVkcygpOworCWVyciA9IF9fbmZzZF9vcGVuKHJxc3RwLCBmaHAsIHR5cGUsIG1heV9mbGFncywgZmlscCk7CisJdmFsaWRhdGVfcHJvY2Vzc19jcmVkcygpOworCXJldHVybiBlcnI7CiB9CiAKIC8qCkBAIC05MDEsMTIgKzgzNCwyMyBAQCBzdGF0aWMgaW50IG5mc2RfZGlyZWN0X3NwbGljZV9hY3RvcihzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLAogCXJldHVybiBfX3NwbGljZV9mcm9tX3BpcGUocGlwZSwgc2QsIG5mc2Rfc3BsaWNlX2FjdG9yKTsKIH0KIAorc3RhdGljIHUzMiBuZnNkX2VvZl9vbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBzc2l6ZV90IGxlbiwKKwkJc2l6ZV90IGV4cGVjdGVkKQoreworCWlmIChleHBlY3RlZCAhPSAwICYmIGxlbiA9PSAwKQorCQlyZXR1cm4gMTsKKwlpZiAob2Zmc2V0K2xlbiA+PSBpX3NpemVfcmVhZChmaWxlX2lub2RlKGZpbGUpKSkKKwkJcmV0dXJuIDE7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBfX2JlMzIgbmZzZF9maW5pc2hfcmVhZChzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsCiAJCQkgICAgICAgc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsCi0JCQkgICAgICAgdW5zaWduZWQgbG9uZyAqY291bnQsIGludCBob3N0X2VycikKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nICpjb3VudCwgdTMyICplb2YsIHNzaXplX3QgaG9zdF9lcnIpCiB7CiAJaWYgKGhvc3RfZXJyID49IDApIHsKIAkJbmZzZHN0YXRzLmlvX3JlYWQgKz0gaG9zdF9lcnI7CisJCSplb2YgPSBuZnNkX2VvZl9vbl9yZWFkKGZpbGUsIG9mZnNldCwgaG9zdF9lcnIsICpjb3VudCk7CiAJCSpjb3VudCA9IGhvc3RfZXJyOwogCQlmc25vdGlmeV9hY2Nlc3MoZmlsZSk7CiAJCXRyYWNlX25mc2RfcmVhZF9pb19kb25lKHJxc3RwLCBmaHAsIG9mZnNldCwgKmNvdW50KTsKQEAgLTkxOCw3ICs4NjIsOCBAQCBzdGF0aWMgX19iZTMyIG5mc2RfZmluaXNoX3JlYWQoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmhwLAogfQogCiBfX2JlMzIgbmZzZF9zcGxpY2VfcmVhZChzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsCi0JCQlzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgdW5zaWduZWQgbG9uZyAqY291bnQpCisJCQlzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgdW5zaWduZWQgbG9uZyAqY291bnQsCisJCQl1MzIgKmVvZikKIHsKIAlzdHJ1Y3Qgc3BsaWNlX2Rlc2Mgc2QgPSB7CiAJCS5sZW4JCT0gMCwKQEAgLTkyNiwyNSArODcxLDI3IEBAIF9fYmUzMiBuZnNkX3NwbGljZV9yZWFkKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwKIAkJLnBvcwkJPSBvZmZzZXQsCiAJCS51LmRhdGEJCT0gcnFzdHAsCiAJfTsKLQlpbnQgaG9zdF9lcnI7CisJc3NpemVfdCBob3N0X2VycjsKIAogCXRyYWNlX25mc2RfcmVhZF9zcGxpY2UocnFzdHAsIGZocCwgb2Zmc2V0LCAqY291bnQpOwogCXJxc3RwLT5ycV9uZXh0X3BhZ2UgPSBycXN0cC0+cnFfcmVzcGFnZXMgKyAxOwogCWhvc3RfZXJyID0gc3BsaWNlX2RpcmVjdF90b19hY3RvcihmaWxlLCAmc2QsIG5mc2RfZGlyZWN0X3NwbGljZV9hY3Rvcik7Ci0JcmV0dXJuIG5mc2RfZmluaXNoX3JlYWQocnFzdHAsIGZocCwgZmlsZSwgb2Zmc2V0LCBjb3VudCwgaG9zdF9lcnIpOworCXJldHVybiBuZnNkX2ZpbmlzaF9yZWFkKHJxc3RwLCBmaHAsIGZpbGUsIG9mZnNldCwgY291bnQsIGVvZiwgaG9zdF9lcnIpOwogfQogCiBfX2JlMzIgbmZzZF9yZWFkdihzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsCiAJCSAgc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsCi0JCSAgc3RydWN0IGt2ZWMgKnZlYywgaW50IHZsZW4sIHVuc2lnbmVkIGxvbmcgKmNvdW50KQorCQkgIHN0cnVjdCBrdmVjICp2ZWMsIGludCB2bGVuLCB1bnNpZ25lZCBsb25nICpjb3VudCwKKwkJICB1MzIgKmVvZikKIHsKIAlzdHJ1Y3QgaW92X2l0ZXIgaXRlcjsKLQlpbnQgaG9zdF9lcnI7CisJbG9mZl90IHBwb3MgPSBvZmZzZXQ7CisJc3NpemVfdCBob3N0X2VycjsKIAogCXRyYWNlX25mc2RfcmVhZF92ZWN0b3IocnFzdHAsIGZocCwgb2Zmc2V0LCAqY291bnQpOwogCWlvdl9pdGVyX2t2ZWMoJml0ZXIsIFJFQUQsIHZlYywgdmxlbiwgKmNvdW50KTsKLQlob3N0X2VyciA9IHZmc19pdGVyX3JlYWQoZmlsZSwgJml0ZXIsICZvZmZzZXQsIDApOwotCXJldHVybiBuZnNkX2ZpbmlzaF9yZWFkKHJxc3RwLCBmaHAsIGZpbGUsIG9mZnNldCwgY291bnQsIGhvc3RfZXJyKTsKKwlob3N0X2VyciA9IHZmc19pdGVyX3JlYWQoZmlsZSwgJml0ZXIsICZwcG9zLCAwKTsKKwlyZXR1cm4gbmZzZF9maW5pc2hfcmVhZChycXN0cCwgZmhwLCBmaWxlLCBvZmZzZXQsIGNvdW50LCBlb2YsIGhvc3RfZXJyKTsKIH0KIAogLyoKQEAgLTEwMjUsOCArOTcyLDEyIEBAIG5mc2RfdmZzX3dyaXRlKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgc3RydWN0IGZpbGUgKmZpbGUsCiAJbmZzZHN0YXRzLmlvX3dyaXRlICs9ICpjbnQ7CiAJZnNub3RpZnlfbW9kaWZ5KGZpbGUpOwogCi0JaWYgKHN0YWJsZSAmJiB1c2Vfd2dhdGhlcikKKwlpZiAoc3RhYmxlICYmIHVzZV93Z2F0aGVyKSB7CiAJCWhvc3RfZXJyID0gd2FpdF9mb3JfY29uY3VycmVudF93cml0ZXMoZmlsZSk7CisJCWlmIChob3N0X2VyciA8IDApCisJCQluZnNkX3Jlc2V0X2Jvb3RfdmVyaWZpZXIobmV0X2dlbmVyaWMoU1ZDX05FVChycXN0cCksCisJCQkJCQkgbmZzZF9uZXRfaWQpKTsKKwl9CiAKIG91dF9uZnNlcnI6CiAJaWYgKGhvc3RfZXJyID49IDApIHsKQEAgLTEwNDcsMjcgKzk5OCwyNSBAQCBuZnNkX3Zmc193cml0ZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsIHN0cnVjdCBmaWxlICpmaWxlLAogICogTi5CLiBBZnRlciB0aGlzIGNhbGwgZmhwIG5lZWRzIGFuIGZoX3B1dAogICovCiBfX2JlMzIgbmZzZF9yZWFkKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwKLQlsb2ZmX3Qgb2Zmc2V0LCBzdHJ1Y3Qga3ZlYyAqdmVjLCBpbnQgdmxlbiwgdW5zaWduZWQgbG9uZyAqY291bnQpCisJbG9mZl90IG9mZnNldCwgc3RydWN0IGt2ZWMgKnZlYywgaW50IHZsZW4sIHVuc2lnbmVkIGxvbmcgKmNvdW50LAorCXUzMiAqZW9mKQogeworCXN0cnVjdCBuZnNkX2ZpbGUJKm5mOwogCXN0cnVjdCBmaWxlICpmaWxlOwotCXN0cnVjdCByYXBhcm1zCSpyYTsKIAlfX2JlMzIgZXJyOwogCiAJdHJhY2VfbmZzZF9yZWFkX3N0YXJ0KHJxc3RwLCBmaHAsIG9mZnNldCwgKmNvdW50KTsKLQllcnIgPSBuZnNkX29wZW4ocnFzdHAsIGZocCwgU19JRlJFRywgTkZTRF9NQVlfUkVBRCwgJmZpbGUpOworCWVyciA9IG5mc2RfZmlsZV9hY3F1aXJlKHJxc3RwLCBmaHAsIE5GU0RfTUFZX1JFQUQsICZuZik7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCXJhID0gbmZzZF9pbml0X3JhcGFybXMoZmlsZSk7Ci0KKwlmaWxlID0gbmYtPm5mX2ZpbGU7CiAJaWYgKGZpbGUtPmZfb3AtPnNwbGljZV9yZWFkICYmIHRlc3RfYml0KFJRX1NQTElDRV9PSywgJnJxc3RwLT5ycV9mbGFncykpCi0JCWVyciA9IG5mc2Rfc3BsaWNlX3JlYWQocnFzdHAsIGZocCwgZmlsZSwgb2Zmc2V0LCBjb3VudCk7CisJCWVyciA9IG5mc2Rfc3BsaWNlX3JlYWQocnFzdHAsIGZocCwgZmlsZSwgb2Zmc2V0LCBjb3VudCwgZW9mKTsKIAllbHNlCi0JCWVyciA9IG5mc2RfcmVhZHYocnFzdHAsIGZocCwgZmlsZSwgb2Zmc2V0LCB2ZWMsIHZsZW4sIGNvdW50KTsKKwkJZXJyID0gbmZzZF9yZWFkdihycXN0cCwgZmhwLCBmaWxlLCBvZmZzZXQsIHZlYywgdmxlbiwgY291bnQsIGVvZik7CiAKLQlpZiAocmEpCi0JCW5mc2RfcHV0X3JhcGFyYW1zKGZpbGUsIHJhKTsKLQlmcHV0KGZpbGUpOworCW5mc2RfZmlsZV9wdXQobmYpOwogCiAJdHJhY2VfbmZzZF9yZWFkX2RvbmUocnFzdHAsIGZocCwgb2Zmc2V0LCAqY291bnQpOwogCkBAIC0xMDgzLDE3ICsxMDMyLDE4IEBAIF9fYmUzMgogbmZzZF93cml0ZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsIGxvZmZfdCBvZmZzZXQsCiAJICAgc3RydWN0IGt2ZWMgKnZlYywgaW50IHZsZW4sIHVuc2lnbmVkIGxvbmcgKmNudCwgaW50IHN0YWJsZSkKIHsKLQlzdHJ1Y3QgZmlsZSAqZmlsZSA9IE5VTEw7Ci0JX19iZTMyIGVyciA9IDA7CisJc3RydWN0IG5mc2RfZmlsZSAqbmY7CisJX19iZTMyIGVycjsKIAogCXRyYWNlX25mc2Rfd3JpdGVfc3RhcnQocnFzdHAsIGZocCwgb2Zmc2V0LCAqY250KTsKIAotCWVyciA9IG5mc2Rfb3BlbihycXN0cCwgZmhwLCBTX0lGUkVHLCBORlNEX01BWV9XUklURSwgJmZpbGUpOworCWVyciA9IG5mc2RfZmlsZV9hY3F1aXJlKHJxc3RwLCBmaHAsIE5GU0RfTUFZX1dSSVRFLCAmbmYpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCi0JZXJyID0gbmZzZF92ZnNfd3JpdGUocnFzdHAsIGZocCwgZmlsZSwgb2Zmc2V0LCB2ZWMsIHZsZW4sIGNudCwgc3RhYmxlKTsKLQlmcHV0KGZpbGUpOworCWVyciA9IG5mc2RfdmZzX3dyaXRlKHJxc3RwLCBmaHAsIG5mLT5uZl9maWxlLCBvZmZzZXQsIHZlYywKKwkJCXZsZW4sIGNudCwgc3RhYmxlKTsKKwluZnNkX2ZpbGVfcHV0KG5mKTsKIG91dDoKIAl0cmFjZV9uZnNkX3dyaXRlX2RvbmUocnFzdHAsIGZocCwgb2Zmc2V0LCAqY250KTsKIAlyZXR1cm4gZXJyOwpAQCAtMTExMyw5ICsxMDYzLDkgQEAgX19iZTMyCiBuZnNkX2NvbW1pdChzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsCiAgICAgICAgICAgICAgICBsb2ZmX3Qgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIGNvdW50KQogewotCXN0cnVjdCBmaWxlCSpmaWxlOwotCWxvZmZfdAkJZW5kID0gTExPTkdfTUFYOwotCV9fYmUzMgkJZXJyID0gbmZzZXJyX2ludmFsOworCXN0cnVjdCBuZnNkX2ZpbGUJKm5mOworCWxvZmZfdAkJCWVuZCA9IExMT05HX01BWDsKKwlfX2JlMzIJCQllcnIgPSBuZnNlcnJfaW52YWw7CiAKIAlpZiAob2Zmc2V0IDwgMCkKIAkJZ290byBvdXQ7CkBAIC0xMTI1LDIwICsxMDc1LDI3IEBAIG5mc2RfY29tbWl0KHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwKIAkJCWdvdG8gb3V0OwogCX0KIAotCWVyciA9IG5mc2Rfb3BlbihycXN0cCwgZmhwLCBTX0lGUkVHLAotCQkJTkZTRF9NQVlfV1JJVEV8TkZTRF9NQVlfTk9UX0JSRUFLX0xFQVNFLCAmZmlsZSk7CisJZXJyID0gbmZzZF9maWxlX2FjcXVpcmUocnFzdHAsIGZocCwKKwkJCU5GU0RfTUFZX1dSSVRFfE5GU0RfTUFZX05PVF9CUkVBS19MRUFTRSwgJm5mKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAlpZiAoRVhfSVNTWU5DKGZocC0+ZmhfZXhwb3J0KSkgewotCQlpbnQgZXJyMiA9IHZmc19mc3luY19yYW5nZShmaWxlLCBvZmZzZXQsIGVuZCwgMCk7CisJCWludCBlcnIyID0gdmZzX2ZzeW5jX3JhbmdlKG5mLT5uZl9maWxlLCBvZmZzZXQsIGVuZCwgMCk7CiAKLQkJaWYgKGVycjIgIT0gLUVJTlZBTCkKLQkJCWVyciA9IG5mc2Vycm5vKGVycjIpOwotCQllbHNlCisJCXN3aXRjaCAoZXJyMikgeworCQljYXNlIDA6CisJCQlicmVhazsKKwkJY2FzZSAtRUlOVkFMOgogCQkJZXJyID0gbmZzZXJyX25vdHN1cHA7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVyciA9IG5mc2Vycm5vKGVycjIpOworCQkJbmZzZF9yZXNldF9ib290X3ZlcmlmaWVyKG5ldF9nZW5lcmljKG5mLT5uZl9uZXQsCisJCQkJCQkgbmZzZF9uZXRfaWQpKTsKKwkJfQogCX0KIAotCWZwdXQoZmlsZSk7CisJbmZzZF9maWxlX3B1dChuZik7CiBvdXQ6CiAJcmV0dXJuIGVycjsKIH0KQEAgLTE2NTksNiArMTYxNiwyNiBAQCBuZnNkX2xpbmsoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmZocCwKIAlnb3RvIG91dF91bmxvY2s7CiB9CiAKK3N0YXRpYyB2b2lkCituZnNkX2Nsb3NlX2NhY2hlZF9maWxlcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJc3RydWN0IGlub2RlICppbm9kZSA9IGRfaW5vZGUoZGVudHJ5KTsKKworCWlmIChpbm9kZSAmJiBTX0lTUkVHKGlub2RlLT5pX21vZGUpKQorCQluZnNkX2ZpbGVfY2xvc2VfaW5vZGVfc3luYyhpbm9kZSk7Cit9CisKK3N0YXRpYyBib29sCituZnNkX2hhc19jYWNoZWRfZmlsZXMoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoreworCWJvb2wJCXJldCA9IGZhbHNlOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkX2lub2RlKGRlbnRyeSk7CisKKwlpZiAoaW5vZGUgJiYgU19JU1JFRyhpbm9kZS0+aV9tb2RlKSkKKwkJcmV0ID0gbmZzZF9maWxlX2lzX2NhY2hlZChpbm9kZSk7CisJcmV0dXJuIHJldDsKK30KKwogLyoKICAqIFJlbmFtZSBhIGZpbGUKICAqIE4uQi4gQWZ0ZXIgdGhpcyBjYWxsIF9ib3RoXyBmZmhwIGFuZCB0ZmhwIG5lZWQgYW4gZmhfcHV0CkBAIC0xNjcxLDYgKzE2NDgsNyBAQCBuZnNkX3JlbmFtZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmZmhwLCBjaGFyICpmbmFtZSwgaW50IGZsZW4sCiAJc3RydWN0IGlub2RlCSpmZGlyLCAqdGRpcjsKIAlfX2JlMzIJCWVycjsKIAlpbnQJCWhvc3RfZXJyOworCWJvb2wJCWhhc19jYWNoZWQgPSBmYWxzZTsKIAogCWVyciA9IGZoX3ZlcmlmeShycXN0cCwgZmZocCwgU19JRkRJUiwgTkZTRF9NQVlfUkVNT1ZFKTsKIAlpZiAoZXJyKQpAQCAtMTY4OSw2ICsxNjY3LDcgQEAgbmZzZF9yZW5hbWUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmZocCwgY2hhciAqZm5hbWUsIGludCBmbGVuLAogCWlmICghZmxlbiB8fCBpc2RvdGVudChmbmFtZSwgZmxlbikgfHwgIXRsZW4gfHwgaXNkb3RlbnQodG5hbWUsIHRsZW4pKQogCQlnb3RvIG91dDsKIAorcmV0cnk6CiAJaG9zdF9lcnIgPSBmaF93YW50X3dyaXRlKGZmaHApOwogCWlmIChob3N0X2VycikgewogCQllcnIgPSBuZnNlcnJubyhob3N0X2Vycik7CkBAIC0xNzI4LDExICsxNzA3LDE2IEBAIG5mc2RfcmVuYW1lKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZmaHAsIGNoYXIgKmZuYW1lLCBpbnQgZmxlbiwKIAlpZiAoZmZocC0+ZmhfZXhwb3J0LT5leF9wYXRoLmRlbnRyeSAhPSB0ZmhwLT5maF9leHBvcnQtPmV4X3BhdGguZGVudHJ5KQogCQlnb3RvIG91dF9kcHV0X25ldzsKIAotCWhvc3RfZXJyID0gdmZzX3JlbmFtZShmZGlyLCBvZGVudHJ5LCB0ZGlyLCBuZGVudHJ5LCBOVUxMLCAwKTsKLQlpZiAoIWhvc3RfZXJyKSB7Ci0JCWhvc3RfZXJyID0gY29tbWl0X21ldGFkYXRhKHRmaHApOwotCQlpZiAoIWhvc3RfZXJyKQotCQkJaG9zdF9lcnIgPSBjb21taXRfbWV0YWRhdGEoZmZocCk7CisJaWYgKG5mc2RfaGFzX2NhY2hlZF9maWxlcyhuZGVudHJ5KSkgeworCQloYXNfY2FjaGVkID0gdHJ1ZTsKKwkJZ290byBvdXRfZHB1dF9vbGQ7CisJfSBlbHNlIHsKKwkJaG9zdF9lcnIgPSB2ZnNfcmVuYW1lKGZkaXIsIG9kZW50cnksIHRkaXIsIG5kZW50cnksIE5VTEwsIDApOworCQlpZiAoIWhvc3RfZXJyKSB7CisJCQlob3N0X2VyciA9IGNvbW1pdF9tZXRhZGF0YSh0ZmhwKTsKKwkJCWlmICghaG9zdF9lcnIpCisJCQkJaG9zdF9lcnIgPSBjb21taXRfbWV0YWRhdGEoZmZocCk7CisJCX0KIAl9CiAgb3V0X2RwdXRfbmV3OgogCWRwdXQobmRlbnRyeSk7CkBAIC0xNzQ1LDEyICsxNzI5LDI2IEBAIG5mc2RfcmVuYW1lKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZmaHAsIGNoYXIgKmZuYW1lLCBpbnQgZmxlbiwKIAkgKiBhcyB0aGF0IHdvdWxkIGRvIHRoZSB3cm9uZyB0aGluZyBpZiB0aGUgdHdvIGRpcmVjdG9yaWVzCiAJICogd2VyZSB0aGUgc2FtZSwgc28gYWdhaW4gd2UgZG8gaXQgYnkgaGFuZC4KIAkgKi8KLQlmaWxsX3Bvc3Rfd2NjKGZmaHApOwotCWZpbGxfcG9zdF93Y2ModGZocCk7CisJaWYgKCFoYXNfY2FjaGVkKSB7CisJCWZpbGxfcG9zdF93Y2MoZmZocCk7CisJCWZpbGxfcG9zdF93Y2ModGZocCk7CisJfQogCXVubG9ja19yZW5hbWUodGRlbnRyeSwgZmRlbnRyeSk7CiAJZmZocC0+ZmhfbG9ja2VkID0gdGZocC0+ZmhfbG9ja2VkID0gZmFsc2U7CiAJZmhfZHJvcF93cml0ZShmZmhwKTsKIAorCS8qCisJICogSWYgdGhlIHRhcmdldCBkZW50cnkgaGFzIGNhY2hlZCBvcGVuIGZpbGVzLCB0aGVuIHdlIG5lZWQgdG8gdHJ5IHRvCisJICogY2xvc2UgdGhlbSBwcmlvciB0byBkb2luZyB0aGUgcmVuYW1lLiBGbHVzaGluZyBkZWxheWVkIGZwdXQKKwkgKiBzaG91bGRuJ3QgYmUgZG9uZSB3aXRoIGxvY2tzIGhlbGQgaG93ZXZlciwgc28gd2UgZGVsYXkgaXQgdW50aWwgdGhpcworCSAqIHBvaW50IGFuZCB0aGVuIHJlYXR0ZW1wdCB0aGUgd2hvbGUgc2hlYmFuZy4KKwkgKi8KKwlpZiAoaGFzX2NhY2hlZCkgeworCQloYXNfY2FjaGVkID0gZmFsc2U7CisJCW5mc2RfY2xvc2VfY2FjaGVkX2ZpbGVzKG5kZW50cnkpOworCQlkcHV0KG5kZW50cnkpOworCQlnb3RvIHJldHJ5OworCX0KIG91dDoKIAlyZXR1cm4gZXJyOwogfQpAQCAtMTc5NywxMCArMTc5NSwxMyBAQCBuZnNkX3VubGluayhzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsIGludCB0eXBlLAogCWlmICghdHlwZSkKIAkJdHlwZSA9IGRfaW5vZGUocmRlbnRyeSktPmlfbW9kZSAmIFNfSUZNVDsKIAotCWlmICh0eXBlICE9IFNfSUZESVIpCisJaWYgKHR5cGUgIT0gU19JRkRJUikgeworCQluZnNkX2Nsb3NlX2NhY2hlZF9maWxlcyhyZGVudHJ5KTsKIAkJaG9zdF9lcnIgPSB2ZnNfdW5saW5rKGRpcnAsIHJkZW50cnksIE5VTEwpOwotCWVsc2UKKwl9IGVsc2UgewogCQlob3N0X2VyciA9IHZmc19ybWRpcihkaXJwLCByZGVudHJ5KTsKKwl9CisKIAlpZiAoIWhvc3RfZXJyKQogCQlob3N0X2VyciA9IGNvbW1pdF9tZXRhZGF0YShmaHApOwogCWRwdXQocmRlbnRyeSk7CkBAIC0yMDc0LDYzICsyMDc1LDMgQEAgbmZzZF9wZXJtaXNzaW9uKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZXhwb3J0ICpleHAsCiAKIAlyZXR1cm4gZXJyPyBuZnNlcnJubyhlcnIpIDogMDsKIH0KLQotdm9pZAotbmZzZF9yYWNhY2hlX3NodXRkb3duKHZvaWQpCi17Ci0Jc3RydWN0IHJhcGFybXMgKnJhcGFybSwgKmxhc3RfcmFwYXJtOwotCXVuc2lnbmVkIGludCBpOwotCi0JZHByaW50aygibmZzZDogZnJlZWluZyByZWFkYWhlYWQgYnVmZmVycy5cbiIpOwotCi0JZm9yIChpID0gMDsgaSA8IFJBUEFSTV9IQVNIX1NJWkU7IGkrKykgewotCQlyYXBhcm0gPSByYXBhcm1faGFzaFtpXS5wYl9oZWFkOwotCQl3aGlsZShyYXBhcm0pIHsKLQkJCWxhc3RfcmFwYXJtID0gcmFwYXJtOwotCQkJcmFwYXJtID0gcmFwYXJtLT5wX25leHQ7Ci0JCQlrZnJlZShsYXN0X3JhcGFybSk7Ci0JCX0KLQkJcmFwYXJtX2hhc2hbaV0ucGJfaGVhZCA9IE5VTEw7Ci0JfQotfQotLyoKLSAqIEluaXRpYWxpemUgcmVhZGFoZWFkIHBhcmFtIGNhY2hlCi0gKi8KLWludAotbmZzZF9yYWNhY2hlX2luaXQoaW50IGNhY2hlX3NpemUpCi17Ci0JaW50CWk7Ci0JaW50CWogPSAwOwotCWludAlucGVyYnVja2V0OwotCXN0cnVjdCByYXBhcm1zICoqcmFwYXJtID0gTlVMTDsKLQotCi0JaWYgKHJhcGFybV9oYXNoWzBdLnBiX2hlYWQpCi0JCXJldHVybiAwOwotCW5wZXJidWNrZXQgPSBESVZfUk9VTkRfVVAoY2FjaGVfc2l6ZSwgUkFQQVJNX0hBU0hfU0laRSk7Ci0JbnBlcmJ1Y2tldCA9IG1heCgyLCBucGVyYnVja2V0KTsKLQljYWNoZV9zaXplID0gbnBlcmJ1Y2tldCAqIFJBUEFSTV9IQVNIX1NJWkU7Ci0KLQlkcHJpbnRrKCJuZnNkOiBhbGxvY2F0aW5nICVkIHJlYWRhaGVhZCBidWZmZXJzLlxuIiwgY2FjaGVfc2l6ZSk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgUkFQQVJNX0hBU0hfU0laRTsgaSsrKSB7Ci0JCXNwaW5fbG9ja19pbml0KCZyYXBhcm1faGFzaFtpXS5wYl9sb2NrKTsKLQotCQlyYXBhcm0gPSAmcmFwYXJtX2hhc2hbaV0ucGJfaGVhZDsKLQkJZm9yIChqID0gMDsgaiA8IG5wZXJidWNrZXQ7IGorKykgewotCQkJKnJhcGFybSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCByYXBhcm1zKSwgR0ZQX0tFUk5FTCk7Ci0JCQlpZiAoISpyYXBhcm0pCi0JCQkJZ290byBvdXRfbm9tZW07Ci0JCQlyYXBhcm0gPSAmKCpyYXBhcm0pLT5wX25leHQ7Ci0JCX0KLQkJKnJhcGFybSA9IE5VTEw7Ci0JfQotCi0JbmZzZHN0YXRzLnJhX3NpemUgPSBjYWNoZV9zaXplOwotCXJldHVybiAwOwotCi1vdXRfbm9tZW06Ci0JZHByaW50aygibmZzZDoga21hbGxvYyBmYWlsZWQsIGZyZWVpbmcgcmVhZGFoZWFkIGJ1ZmZlcnNcbiIpOwotCW5mc2RfcmFjYWNoZV9zaHV0ZG93bigpOwotCXJldHVybiAtRU5PTUVNOwotfQpkaWZmIC0tZ2l0IGEvZnMvbmZzZC92ZnMuaCBiL2ZzL25mc2QvdmZzLmgKaW5kZXggZGIzNTEyNC4uYTEzZmQ5ZCAxMDA2NDQKLS0tIGEvZnMvbmZzZC92ZnMuaAorKysgYi9mcy9uZnNkL3Zmcy5oCkBAIC00MCw4ICs0MCw2IEBACiB0eXBlZGVmIGludCAoKm5mc2RfZmlsbGRpcl90KSh2b2lkICosIGNvbnN0IGNoYXIgKiwgaW50LCBsb2ZmX3QsIHU2NCwgdW5zaWduZWQpOwogCiAvKiBuZnNkL3Zmcy5jICovCi1pbnQJCW5mc2RfcmFjYWNoZV9pbml0KGludCk7Ci12b2lkCQluZnNkX3JhY2FjaGVfc2h1dGRvd24odm9pZCk7CiBpbnQJCW5mc2RfY3Jvc3NfbW50KHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBkZW50cnkgKipkcHAsCiAJCSAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3ZjX2V4cG9ydCAqKmV4cHApOwogX19iZTMyCQluZnNkX2xvb2t1cChzdHJ1Y3Qgc3ZjX3Jxc3QgKiwgc3RydWN0IHN2Y19maCAqLApAQCAtNzUsMTggKzczLDIzIEBAIF9fYmUzMgkJZG9fbmZzZF9jcmVhdGUoc3RydWN0IHN2Y19ycXN0ICosIHN0cnVjdCBzdmNfZmggKiwKIF9fYmUzMgkJbmZzZF9jb21taXQoc3RydWN0IHN2Y19ycXN0ICosIHN0cnVjdCBzdmNfZmggKiwKIAkJCQlsb2ZmX3QsIHVuc2lnbmVkIGxvbmcpOwogI2VuZGlmIC8qIENPTkZJR19ORlNEX1YzICovCitpbnQgCQluZnNkX29wZW5fYnJlYWtfbGVhc2Uoc3RydWN0IGlub2RlICosIGludCk7CiBfX2JlMzIJCW5mc2Rfb3BlbihzdHJ1Y3Qgc3ZjX3Jxc3QgKiwgc3RydWN0IHN2Y19maCAqLCB1bW9kZV90LAogCQkJCWludCwgc3RydWN0IGZpbGUgKiopOwotc3RydWN0IHJhcGFybXM7CitfX2JlMzIJCW5mc2Rfb3Blbl92ZXJpZmllZChzdHJ1Y3Qgc3ZjX3Jxc3QgKiwgc3RydWN0IHN2Y19maCAqLCB1bW9kZV90LAorCQkJCWludCwgc3RydWN0IGZpbGUgKiopOwogX19iZTMyCQluZnNkX3NwbGljZV9yZWFkKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwKIAkJCQlzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwKLQkJCQl1bnNpZ25lZCBsb25nICpjb3VudCk7CisJCQkJdW5zaWduZWQgbG9uZyAqY291bnQsCisJCQkJdTMyICplb2YpOwogX19iZTMyCQluZnNkX3JlYWR2KHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwKIAkJCQlzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwKIAkJCQlzdHJ1Y3Qga3ZlYyAqdmVjLCBpbnQgdmxlbiwKLQkJCQl1bnNpZ25lZCBsb25nICpjb3VudCk7CisJCQkJdW5zaWduZWQgbG9uZyAqY291bnQsCisJCQkJdTMyICplb2YpOwogX19iZTMyIAkJbmZzZF9yZWFkKHN0cnVjdCBzdmNfcnFzdCAqLCBzdHJ1Y3Qgc3ZjX2ZoICosCi0JCQkJbG9mZl90LCBzdHJ1Y3Qga3ZlYyAqLCBpbnQsIHVuc2lnbmVkIGxvbmcgKik7CisJCQkJbG9mZl90LCBzdHJ1Y3Qga3ZlYyAqLCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwKKwkJCQl1MzIgKmVvZik7CiBfX2JlMzIgCQluZnNkX3dyaXRlKHN0cnVjdCBzdmNfcnFzdCAqLCBzdHJ1Y3Qgc3ZjX2ZoICosIGxvZmZfdCwKIAkJCQlzdHJ1Y3Qga3ZlYyAqLCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwgaW50KTsKIF9fYmUzMgkJbmZzZF92ZnNfd3JpdGUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmhwLApAQCAtMTE1LDkgKzExOCw2IEBAIF9fYmUzMgkJbmZzZF9zdGF0ZnMoc3RydWN0IHN2Y19ycXN0ICosIHN0cnVjdCBzdmNfZmggKiwKIF9fYmUzMgkJbmZzZF9wZXJtaXNzaW9uKHN0cnVjdCBzdmNfcnFzdCAqLCBzdHJ1Y3Qgc3ZjX2V4cG9ydCAqLAogCQkJCXN0cnVjdCBkZW50cnkgKiwgaW50KTsKIAotc3RydWN0IHJhcGFybXMgKm5mc2RfaW5pdF9yYXBhcm1zKHN0cnVjdCBmaWxlICpmaWxlKTsKLXZvaWQJCW5mc2RfcHV0X3JhcGFyYW1zKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcmFwYXJtcyAqcmEpOwotCiBzdGF0aWMgaW5saW5lIGludCBmaF93YW50X3dyaXRlKHN0cnVjdCBzdmNfZmggKmZoKQogewogCWludCByZXQ7CkBAIC0xNTIsMjMgKzE1Miw0IEBAIHN0YXRpYyBpbmxpbmUgaW50IG5mc2RfY3JlYXRlX2lzX2V4Y2x1c2l2ZShpbnQgY3JlYXRlbW9kZSkKIAkgICAgICAgfHwgY3JlYXRlbW9kZSA9PSBORlM0X0NSRUFURV9FWENMVVNJVkU0XzE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBuZnNkX2VvZl9vbl9yZWFkKGxvbmcgcmVxdWVzdGVkLCBsb25nIHJlYWQsCi0JCQkJbG9mZl90IG9mZnNldCwgbG9mZl90IHNpemUpCi17Ci0JLyogV2UgYXNzdW1lIGEgc2hvcnQgcmVhZCBtZWFucyBlb2Y6ICovCi0JaWYgKHJlcXVlc3RlZCA+IHJlYWQpCi0JCXJldHVybiB0cnVlOwotCS8qCi0JICogQSBub24tc2hvcnQgcmVhZCBtaWdodCBhbHNvIHJlYWNoIGVuZCBvZiBmaWxlLiAgVGhlIHNwZWMKLQkgKiBzdGlsbCByZXF1aXJlcyB1cyB0byBzZXQgZW9mIGluIHRoYXQgY2FzZS4KLQkgKgotCSAqIEZ1cnRoZXIgb3BlcmF0aW9ucyBtYXkgaGF2ZSBtb2RpZmllZCB0aGUgZmlsZSBzaXplIHNpbmNlCi0JICogdGhlIHJlYWQsIHNvIHRoZSBmb2xsb3dpbmcgY2hlY2sgaXMgbm90IGF0b21pYyB3aXRoIHRoZSByZWFkLgotCSAqIFdlJ3ZlIG9ubHkgc2VlbiB0aGF0IGNhdXNlIGEgcHJvYmxlbSBmb3IgYSBjbGllbnQgaW4gdGhlIGNhc2UKLQkgKiB3aGVyZSB0aGUgcmVhZCByZXR1cm5lZCBhIGNvdW50IG9mIDAgd2l0aG91dCBzZXR0aW5nIGVvZi4KLQkgKiBUaGF0IGNhc2Ugd2FzIGZpeGVkIGJ5IHRoZSBhZGRpdGlvbiBvZiB0aGUgYWJvdmUgY2hlY2suCi0JICovCi0JcmV0dXJuIChvZmZzZXQgKyByZWFkID49IHNpemUpOwotfQotCiAjZW5kaWYgLyogTElOVVhfTkZTRF9WRlNfSCAqLwpkaWZmIC0tZ2l0IGEvZnMvbmZzZC94ZHIzLmggYi9mcy9uZnNkL3hkcjMuaAppbmRleCAyY2IyOWU5Li45OWZmOWY0IDEwMDY0NAotLS0gYS9mcy9uZnNkL3hkcjMuaAorKysgYi9mcy9uZnNkL3hkcjMuaApAQCAtMTUxLDcgKzE1MSw3IEBAIHN0cnVjdCBuZnNkM19yZWFkcmVzIHsKIAlfX2JlMzIJCQlzdGF0dXM7CiAJc3RydWN0IHN2Y19maAkJZmg7CiAJdW5zaWduZWQgbG9uZwkJY291bnQ7Ci0JaW50CQkJZW9mOworCV9fdTMyCQkJZW9mOwogfTsKIAogc3RydWN0IG5mc2QzX3dyaXRlcmVzIHsKZGlmZiAtLWdpdCBhL2ZzL25mc2QveGRyNC5oIGIvZnMvbmZzZC94ZHI0LmgKaW5kZXggZDY0Yzg3MC4uZjQ3MzdkNiAxMDA2NDQKLS0tIGEvZnMvbmZzZC94ZHI0LmgKKysrIGIvZnMvbmZzZC94ZHI0LmgKQEAgLTI3MywxNSArMjczLDE0IEBAIHN0cnVjdCBuZnNkNF9vcGVuX2Rvd25ncmFkZSB7CiAKIAogc3RydWN0IG5mc2Q0X3JlYWQgewotCXN0YXRlaWRfdAlyZF9zdGF0ZWlkOyAgICAgICAgIC8qIHJlcXVlc3QgKi8KLQl1NjQJCXJkX29mZnNldDsgICAgICAgICAgLyogcmVxdWVzdCAqLwotCXUzMgkJcmRfbGVuZ3RoOyAgICAgICAgICAvKiByZXF1ZXN0ICovCi0JaW50CQlyZF92bGVuOwotCXN0cnVjdCBmaWxlICAgICAqcmRfZmlscDsKLQlib29sCQlyZF90bXBfZmlsZTsKKwlzdGF0ZWlkX3QJCXJkX3N0YXRlaWQ7ICAgICAgICAgLyogcmVxdWVzdCAqLworCXU2NAkJCXJkX29mZnNldDsgICAgICAgICAgLyogcmVxdWVzdCAqLworCXUzMgkJCXJkX2xlbmd0aDsgICAgICAgICAgLyogcmVxdWVzdCAqLworCWludAkJCXJkX3ZsZW47CisJc3RydWN0IG5mc2RfZmlsZQkqcmRfbmY7CiAJCi0Jc3RydWN0IHN2Y19ycXN0ICpyZF9ycXN0cDsgICAgICAgICAgLyogcmVzcG9uc2UgKi8KLQlzdHJ1Y3Qgc3ZjX2ZoICogcmRfZmhwOyAgICAgICAgICAgICAvKiByZXNwb25zZSAqLworCXN0cnVjdCBzdmNfcnFzdAkJKnJkX3Jxc3RwOyAgICAgICAgICAvKiByZXNwb25zZSAqLworCXN0cnVjdCBzdmNfZmgJCSpyZF9maHA7ICAgICAgICAgICAgIC8qIHJlc3BvbnNlICovCiB9OwogCiBzdHJ1Y3QgbmZzZDRfcmVhZGRpciB7CkBAIC01MzgsOCArNTM3LDggQEAgc3RydWN0IG5mc2Q0X2NvcHkgewogCiAJc3RydWN0IG5mczRfY2xpZW50ICAgICAgKmNwX2NscDsKIAotCXN0cnVjdCBmaWxlICAgICAgICAgICAgICpmaWxlX3NyYzsKLQlzdHJ1Y3QgZmlsZSAgICAgICAgICAgICAqZmlsZV9kc3Q7CisJc3RydWN0IG5mc2RfZmlsZSAgICAgICAgKm5mX3NyYzsKKwlzdHJ1Y3QgbmZzZF9maWxlICAgICAgICAqbmZfZHN0OwogCiAJc3RhdGVpZF90CQljcF9zdGF0ZWlkOwogCmRpZmYgLS1naXQgYS9mcy9ub3RpZnkvZG5vdGlmeS9kbm90aWZ5LmMgYi9mcy9ub3RpZnkvZG5vdGlmeS9kbm90aWZ5LmMKaW5kZXggYzAzNzU4Yy4uN2E0MmMyZSAxMDA2NDQKLS0tIGEvZnMvbm90aWZ5L2Rub3RpZnkvZG5vdGlmeS5jCisrKyBiL2ZzL25vdGlmeS9kbm90aWZ5L2Rub3RpZnkuYwpAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3NpZ25hbC5oPgogI2luY2x1ZGUgPGxpbnV4L2Rub3RpZnkuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9mZHRhYmxlLmg+CkBAIC0yNzksNiArMjgwLDE3IEBAIGludCBmY250bF9kaXJub3RpZnkoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCWdvdG8gb3V0X2VycjsKIAl9CiAKKwkvKgorCSAqIGNvbnZlcnQgdGhlIHVzZXJzcGFjZSBETl8qICJhcmciIHRvIHRoZSBpbnRlcm5hbCBGU18qCisJICogZGVmaW5lZCBpbiBmc25vdGlmeQorCSAqLworCW1hc2sgPSBjb252ZXJ0X2FyZyhhcmcpOworCisJZXJyb3IgPSBzZWN1cml0eV9wYXRoX25vdGlmeSgmZmlscC0+Zl9wYXRoLCBtYXNrLAorCQkJRlNOT1RJRllfT0JKX1RZUEVfSU5PREUpOworCWlmIChlcnJvcikKKwkJZ290byBvdXRfZXJyOworCiAJLyogZXhwZWN0IG1vc3QgZmNudGwgdG8gYWRkIG5ldyByYXRoZXIgdGhhbiBhdWdtZW50IG9sZCAqLwogCWRuID0ga21lbV9jYWNoZV9hbGxvYyhkbm90aWZ5X3N0cnVjdF9jYWNoZSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFkbikgewpAQCAtMjkzLDkgKzMwNSw2IEBAIGludCBmY250bF9kaXJub3RpZnkoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCWdvdG8gb3V0X2VycjsKIAl9CiAKLQkvKiBjb252ZXJ0IHRoZSB1c2Vyc3BhY2UgRE5fKiAiYXJnIiB0byB0aGUgaW50ZXJuYWwgRlNfKiBkZWZpbmVzIGluIGZzbm90aWZ5ICovCi0JbWFzayA9IGNvbnZlcnRfYXJnKGFyZyk7Ci0KIAkvKiBzZXQgdXAgdGhlIG5ld19mc25fbWFyayBhbmQgbmV3X2RuX21hcmsgKi8KIAluZXdfZnNuX21hcmsgPSAmbmV3X2RuX21hcmstPmZzbl9tYXJrOwogCWZzbm90aWZ5X2luaXRfbWFyayhuZXdfZnNuX21hcmssIGRub3RpZnlfZ3JvdXApOwpkaWZmIC0tZ2l0IGEvZnMvbm90aWZ5L2Zhbm90aWZ5L2Zhbm90aWZ5X3VzZXIuYyBiL2ZzL25vdGlmeS9mYW5vdGlmeS9mYW5vdGlmeV91c2VyLmMKaW5kZXggOTEwMDZmNC4uODUwOGFiNSAxMDA2NDQKLS0tIGEvZnMvbm90aWZ5L2Zhbm90aWZ5L2Zhbm90aWZ5X3VzZXIuYworKysgYi9mcy9ub3RpZnkvZmFub3RpZnkvZmFub3RpZnlfdXNlci5jCkBAIC01MjgsNyArNTI4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZmFub3RpZnlfZm9wcyA9IHsKIH07CiAKIHN0YXRpYyBpbnQgZmFub3RpZnlfZmluZF9wYXRoKGludCBkZmQsIGNvbnN0IGNoYXIgX191c2VyICpmaWxlbmFtZSwKLQkJCSAgICAgIHN0cnVjdCBwYXRoICpwYXRoLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCisJCQkgICAgICBzdHJ1Y3QgcGF0aCAqcGF0aCwgdW5zaWduZWQgaW50IGZsYWdzLCBfX3U2NCBtYXNrLAorCQkJICAgICAgdW5zaWduZWQgaW50IG9ial90eXBlKQogewogCWludCByZXQ7CiAKQEAgLTU2Nyw4ICs1NjgsMTUgQEAgc3RhdGljIGludCBmYW5vdGlmeV9maW5kX3BhdGgoaW50IGRmZCwgY29uc3QgY2hhciBfX3VzZXIgKmZpbGVuYW1lLAogCiAJLyogeW91IGNhbiBvbmx5IHdhdGNoIGFuIGlub2RlIGlmIHlvdSBoYXZlIHJlYWQgcGVybWlzc2lvbnMgb24gaXQgKi8KIAlyZXQgPSBpbm9kZV9wZXJtaXNzaW9uKHBhdGgtPmRlbnRyeS0+ZF9pbm9kZSwgTUFZX1JFQUQpOworCWlmIChyZXQpIHsKKwkJcGF0aF9wdXQocGF0aCk7CisJCWdvdG8gb3V0OworCX0KKworCXJldCA9IHNlY3VyaXR5X3BhdGhfbm90aWZ5KHBhdGgsIG1hc2ssIG9ial90eXBlKTsKIAlpZiAocmV0KQogCQlwYXRoX3B1dChwYXRoKTsKKwogb3V0OgogCXJldHVybiByZXQ7CiB9CkBAIC05NDcsNiArOTU1LDcgQEAgc3RhdGljIGludCBkb19mYW5vdGlmeV9tYXJrKGludCBmYW5vdGlmeV9mZCwgdW5zaWduZWQgaW50IGZsYWdzLCBfX3U2NCBtYXNrLAogCV9fa2VybmVsX2ZzaWRfdCBfX2ZzaWQsICpmc2lkID0gTlVMTDsKIAl1MzIgdmFsaWRfbWFzayA9IEZBTk9USUZZX0VWRU5UUyB8IEZBTk9USUZZX0VWRU5UX0ZMQUdTOwogCXVuc2lnbmVkIGludCBtYXJrX3R5cGUgPSBmbGFncyAmIEZBTk9USUZZX01BUktfVFlQRV9CSVRTOworCXVuc2lnbmVkIGludCBvYmpfdHlwZTsKIAlpbnQgcmV0OwogCiAJcHJfZGVidWcoIiVzOiBmYW5vdGlmeV9mZD0lZCBmbGFncz0leCBkZmQ9JWQgcGF0aG5hbWU9JXAgbWFzaz0lbGx4XG4iLApAQCAtOTYxLDggKzk3MCwxMyBAQCBzdGF0aWMgaW50IGRvX2Zhbm90aWZ5X21hcmsoaW50IGZhbm90aWZ5X2ZkLCB1bnNpZ25lZCBpbnQgZmxhZ3MsIF9fdTY0IG1hc2ssCiAKIAlzd2l0Y2ggKG1hcmtfdHlwZSkgewogCWNhc2UgRkFOX01BUktfSU5PREU6CisJCW9ial90eXBlID0gRlNOT1RJRllfT0JKX1RZUEVfSU5PREU7CisJCWJyZWFrOwogCWNhc2UgRkFOX01BUktfTU9VTlQ6CisJCW9ial90eXBlID0gRlNOT1RJRllfT0JKX1RZUEVfVkZTTU9VTlQ7CisJCWJyZWFrOwogCWNhc2UgRkFOX01BUktfRklMRVNZU1RFTToKKwkJb2JqX3R5cGUgPSBGU05PVElGWV9PQkpfVFlQRV9TQjsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xMDMwLDcgKzEwNDQsOCBAQCBzdGF0aWMgaW50IGRvX2Zhbm90aWZ5X21hcmsoaW50IGZhbm90aWZ5X2ZkLCB1bnNpZ25lZCBpbnQgZmxhZ3MsIF9fdTY0IG1hc2ssCiAJCWdvdG8gZnB1dF9hbmRfb3V0OwogCX0KIAotCXJldCA9IGZhbm90aWZ5X2ZpbmRfcGF0aChkZmQsIHBhdGhuYW1lLCAmcGF0aCwgZmxhZ3MpOworCXJldCA9IGZhbm90aWZ5X2ZpbmRfcGF0aChkZmQsIHBhdGhuYW1lLCAmcGF0aCwgZmxhZ3MsCisJCQkobWFzayAmIEFMTF9GU05PVElGWV9FVkVOVFMpLCBvYmpfdHlwZSk7CiAJaWYgKHJldCkKIAkJZ290byBmcHV0X2FuZF9vdXQ7CiAKZGlmZiAtLWdpdCBhL2ZzL25vdGlmeS9mc25vdGlmeS5oIGIvZnMvbm90aWZ5L2Zzbm90aWZ5LmgKaW5kZXggNWEwMDEyMS4uZjM0NjI4MiAxMDA2NDQKLS0tIGEvZnMvbm90aWZ5L2Zzbm90aWZ5LmgKKysrIGIvZnMvbm90aWZ5L2Zzbm90aWZ5LmgKQEAgLTU0LDggKzU0LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGZzbm90aWZ5X2NsZWFyX21hcmtzX2J5X3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJZnNub3RpZnlfZGVzdHJveV9tYXJrcygmc2ItPnNfZnNub3RpZnlfbWFya3MpOwogfQotLyogV2FpdCB1bnRpbCBhbGwgbWFya3MgcXVldWVkIGZvciBkZXN0cnVjdGlvbiBhcmUgZGVzdHJveWVkICovCi1leHRlcm4gdm9pZCBmc25vdGlmeV93YWl0X21hcmtzX2Rlc3Ryb3llZCh2b2lkKTsKIAogLyoKICAqIHVwZGF0ZSB0aGUgZGVudHJ5LT5kX2ZsYWdzIG9mIGFsbCBvZiBpbm9kZSdzIGNoaWxkcmVuIHRvIGluZGljYXRlIGlmIGlub2RlIGNhcmVzCmRpZmYgLS1naXQgYS9mcy9ub3RpZnkvZ3JvdXAuYyBiL2ZzL25vdGlmeS9ncm91cC5jCmluZGV4IDAzOTExOTAuLjEzM2Y3MjMgMTAwNjQ0Ci0tLSBhL2ZzL25vdGlmeS9ncm91cC5jCisrKyBiL2ZzL25vdGlmeS9ncm91cC5jCkBAIC0xMDgsNiArMTA4LDcgQEAgdm9pZCBmc25vdGlmeV9wdXRfZ3JvdXAoc3RydWN0IGZzbm90aWZ5X2dyb3VwICpncm91cCkKIAlpZiAocmVmY291bnRfZGVjX2FuZF90ZXN0KCZncm91cC0+cmVmY250KSkKIAkJZnNub3RpZnlfZmluYWxfZGVzdHJveV9ncm91cChncm91cCk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChmc25vdGlmeV9wdXRfZ3JvdXApOwogCiAvKgogICogQ3JlYXRlIGEgbmV3IGZzbm90aWZ5X2dyb3VwIGFuZCBob2xkIGEgcmVmZXJlbmNlIGZvciB0aGUgZ3JvdXAgcmV0dXJuZWQuCkBAIC0xMzcsNiArMTM4LDcgQEAgc3RydWN0IGZzbm90aWZ5X2dyb3VwICpmc25vdGlmeV9hbGxvY19ncm91cChjb25zdCBzdHJ1Y3QgZnNub3RpZnlfb3BzICpvcHMpCiAKIAlyZXR1cm4gZ3JvdXA7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChmc25vdGlmeV9hbGxvY19ncm91cCk7CiAKIGludCBmc25vdGlmeV9mYXN5bmMoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG9uKQogewpkaWZmIC0tZ2l0IGEvZnMvbm90aWZ5L2lub3RpZnkvaW5vdGlmeV91c2VyLmMgYi9mcy9ub3RpZnkvaW5vdGlmeS9pbm90aWZ5X3VzZXIuYwppbmRleCAwYjgxNTE3Li4xMDc1MzdhIDEwMDY0NAotLS0gYS9mcy9ub3RpZnkvaW5vdGlmeS9pbm90aWZ5X3VzZXIuYworKysgYi9mcy9ub3RpZnkvaW5vdGlmeS9pbm90aWZ5X3VzZXIuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8bGludXgvbWVtY29udHJvbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAKICNpbmNsdWRlICJpbm90aWZ5LmgiCiAjaW5jbHVkZSAiLi4vZmRpbmZvLmgiCkBAIC0zMzEsNyArMzMyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaW5vdGlmeV9mb3BzID0gewogLyoKICAqIGZpbmRfaW5vZGUgLSByZXNvbHZlIGEgdXNlci1naXZlbiBwYXRoIHRvIGEgc3BlY2lmaWMgaW5vZGUKICAqLwotc3RhdGljIGludCBpbm90aWZ5X2ZpbmRfaW5vZGUoY29uc3QgY2hhciBfX3VzZXIgKmRpcm5hbWUsIHN0cnVjdCBwYXRoICpwYXRoLCB1bnNpZ25lZCBmbGFncykKK3N0YXRpYyBpbnQgaW5vdGlmeV9maW5kX2lub2RlKGNvbnN0IGNoYXIgX191c2VyICpkaXJuYW1lLCBzdHJ1Y3QgcGF0aCAqcGF0aCwKKwkJCQkJCXVuc2lnbmVkIGludCBmbGFncywgX191NjQgbWFzaykKIHsKIAlpbnQgZXJyb3I7CiAKQEAgLTM0MCw4ICszNDIsMTUgQEAgc3RhdGljIGludCBpbm90aWZ5X2ZpbmRfaW5vZGUoY29uc3QgY2hhciBfX3VzZXIgKmRpcm5hbWUsIHN0cnVjdCBwYXRoICpwYXRoLCB1bnMKIAkJcmV0dXJuIGVycm9yOwogCS8qIHlvdSBjYW4gb25seSB3YXRjaCBhbiBpbm9kZSBpZiB5b3UgaGF2ZSByZWFkIHBlcm1pc3Npb25zIG9uIGl0ICovCiAJZXJyb3IgPSBpbm9kZV9wZXJtaXNzaW9uKHBhdGgtPmRlbnRyeS0+ZF9pbm9kZSwgTUFZX1JFQUQpOworCWlmIChlcnJvcikgeworCQlwYXRoX3B1dChwYXRoKTsKKwkJcmV0dXJuIGVycm9yOworCX0KKwllcnJvciA9IHNlY3VyaXR5X3BhdGhfbm90aWZ5KHBhdGgsIG1hc2ssCisJCQkJRlNOT1RJRllfT0JKX1RZUEVfSU5PREUpOwogCWlmIChlcnJvcikKIAkJcGF0aF9wdXQocGF0aCk7CisKIAlyZXR1cm4gZXJyb3I7CiB9CiAKQEAgLTczMyw3ICs3NDIsOCBAQCBTWVNDQUxMX0RFRklORTMoaW5vdGlmeV9hZGRfd2F0Y2gsIGludCwgZmQsIGNvbnN0IGNoYXIgX191c2VyICosIHBhdGhuYW1lLAogCWlmIChtYXNrICYgSU5fT05MWURJUikKIAkJZmxhZ3MgfD0gTE9PS1VQX0RJUkVDVE9SWTsKIAotCXJldCA9IGlub3RpZnlfZmluZF9pbm9kZShwYXRobmFtZSwgJnBhdGgsIGZsYWdzKTsKKwlyZXQgPSBpbm90aWZ5X2ZpbmRfaW5vZGUocGF0aG5hbWUsICZwYXRoLCBmbGFncywKKwkJCShtYXNrICYgSU5fQUxMX0VWRU5UUykpOwogCWlmIChyZXQpCiAJCWdvdG8gZnB1dF9hbmRfb3V0OwogCmRpZmYgLS1naXQgYS9mcy9ub3RpZnkvbWFyay5jIGIvZnMvbm90aWZ5L21hcmsuYwppbmRleCA5OWRkZDEyLi4xZDk2MjE2IDEwMDY0NAotLS0gYS9mcy9ub3RpZnkvbWFyay5jCisrKyBiL2ZzL25vdGlmeS9tYXJrLmMKQEAgLTI3Niw2ICsyNzYsNyBAQCB2b2lkIGZzbm90aWZ5X3B1dF9tYXJrKHN0cnVjdCBmc25vdGlmeV9tYXJrICptYXJrKQogCXF1ZXVlX2RlbGF5ZWRfd29yayhzeXN0ZW1fdW5ib3VuZF93cSwgJnJlYXBlcl93b3JrLAogCQkJICAgRlNOT1RJRllfUkVBUEVSX0RFTEFZKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGZzbm90aWZ5X3B1dF9tYXJrKTsKIAogLyoKICAqIEdldCBtYXJrIHJlZmVyZW5jZSB3aGVuIHdlIGZvdW5kIHRoZSBtYXJrIHZpYSBsb2NrbGVzcyB0cmF2ZXJzYWwgb2Ygb2JqZWN0CkBAIC00MzAsNiArNDMxLDcgQEAgdm9pZCBmc25vdGlmeV9kZXN0cm95X21hcmsoc3RydWN0IGZzbm90aWZ5X21hcmsgKm1hcmssCiAJbXV0ZXhfdW5sb2NrKCZncm91cC0+bWFya19tdXRleCk7CiAJZnNub3RpZnlfZnJlZV9tYXJrKG1hcmspOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoZnNub3RpZnlfZGVzdHJveV9tYXJrKTsKIAogLyoKICAqIFNvcnRpbmcgZnVuY3Rpb24gZm9yIGxpc3RzIG9mIGZzbm90aWZ5IG1hcmtzLgpAQCAtNjg1LDYgKzY4Nyw3IEBAIGludCBmc25vdGlmeV9hZGRfbWFyayhzdHJ1Y3QgZnNub3RpZnlfbWFyayAqbWFyaywgZnNub3RpZnlfY29ubnBfdCAqY29ubnAsCiAJbXV0ZXhfdW5sb2NrKCZncm91cC0+bWFya19tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGZzbm90aWZ5X2FkZF9tYXJrKTsKIAogLyoKICAqIEdpdmVuIGEgbGlzdCBvZiBtYXJrcywgZmluZCB0aGUgbWFyayBhc3NvY2lhdGVkIHdpdGggZ2l2ZW4gZ3JvdXAuIElmIGZvdW5kCkBAIC03MTEsNiArNzE0LDcgQEAgc3RydWN0IGZzbm90aWZ5X21hcmsgKmZzbm90aWZ5X2ZpbmRfbWFyayhmc25vdGlmeV9jb25ucF90ICpjb25ucCwKIAlzcGluX3VubG9jaygmY29ubi0+bG9jayk7CiAJcmV0dXJuIE5VTEw7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChmc25vdGlmeV9maW5kX21hcmspOwogCiAvKiBDbGVhciBhbnkgbWFya3MgaW4gYSBncm91cCB3aXRoIGdpdmVuIHR5cGUgbWFzayAqLwogdm9pZCBmc25vdGlmeV9jbGVhcl9tYXJrc19ieV9ncm91cChzdHJ1Y3QgZnNub3RpZnlfZ3JvdXAgKmdyb3VwLApAQCAtODA5LDYgKzgxMyw3IEBAIHZvaWQgZnNub3RpZnlfaW5pdF9tYXJrKHN0cnVjdCBmc25vdGlmeV9tYXJrICptYXJrLAogCW1hcmstPmdyb3VwID0gZ3JvdXA7CiAJV1JJVEVfT05DRShtYXJrLT5jb25uZWN0b3IsIE5VTEwpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoZnNub3RpZnlfaW5pdF9tYXJrKTsKIAogLyoKICAqIERlc3Ryb3kgYWxsIG1hcmtzIGluIGRlc3Ryb3lfbGlzdCwgd2FpdHMgZm9yIFNSQ1UgcGVyaW9kIHRvIGZpbmlzaCBiZWZvcmUKQEAgLTgzNywzICs4NDIsNCBAQCB2b2lkIGZzbm90aWZ5X3dhaXRfbWFya3NfZGVzdHJveWVkKHZvaWQpCiB7CiAJZmx1c2hfZGVsYXllZF93b3JrKCZyZWFwZXJfd29yayk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChmc25vdGlmeV93YWl0X21hcmtzX2Rlc3Ryb3llZCk7CmRpZmYgLS1naXQgYS9mcy9udGZzL2lub2RlLmMgYi9mcy9udGZzL2lub2RlLmMKaW5kZXggOGJhYTM0Yi4uNmM3Mzg4NCAxMDA2NDQKLS0tIGEvZnMvbnRmcy9pbm9kZS5jCisrKyBiL2ZzL250ZnMvaW5vZGUuYwpAQCAtMjg5OSwxNSArMjg5OSwxOCBAQCBpbnQgbnRmc19zZXRhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICphdHRyKQogCQkJaWFfdmFsaWQgfD0gQVRUUl9NVElNRSB8IEFUVFJfQ1RJTUU7CiAJCX0KIAl9Ci0JaWYgKGlhX3ZhbGlkICYgQVRUUl9BVElNRSkKLQkJdmktPmlfYXRpbWUgPSB0aW1lc3BlYzY0X3RydW5jKGF0dHItPmlhX2F0aW1lLAotCQkJCQkgICAgICAgdmktPmlfc2ItPnNfdGltZV9ncmFuKTsKLQlpZiAoaWFfdmFsaWQgJiBBVFRSX01USU1FKQotCQl2aS0+aV9tdGltZSA9IHRpbWVzcGVjNjRfdHJ1bmMoYXR0ci0+aWFfbXRpbWUsCi0JCQkJCSAgICAgICB2aS0+aV9zYi0+c190aW1lX2dyYW4pOwotCWlmIChpYV92YWxpZCAmIEFUVFJfQ1RJTUUpCi0JCXZpLT5pX2N0aW1lID0gdGltZXNwZWM2NF90cnVuYyhhdHRyLT5pYV9jdGltZSwKLQkJCQkJICAgICAgIHZpLT5pX3NiLT5zX3RpbWVfZ3Jhbik7CisJaWYgKGlhX3ZhbGlkICYgQVRUUl9BVElNRSkgeworCQl2aS0+aV9hdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZShhdHRyLT5pYV9hdGltZSwKKwkJCQkJICAgICAgIHZpKTsKKwl9CisJaWYgKGlhX3ZhbGlkICYgQVRUUl9NVElNRSkgeworCQl2aS0+aV9tdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZShhdHRyLT5pYV9tdGltZSwKKwkJCQkJICAgICAgIHZpKTsKKwl9CisJaWYgKGlhX3ZhbGlkICYgQVRUUl9DVElNRSkgeworCQl2aS0+aV9jdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZShhdHRyLT5pYV9jdGltZSwKKwkJCQkJICAgICAgIHZpKTsKKwl9CiAJbWFya19pbm9kZV9kaXJ0eSh2aSk7CiBvdXQ6CiAJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL2ZzL250ZnMvbWZ0LmMgYi9mcy9udGZzL21mdC5jCmluZGV4IDIwYzg0MWEuLjNhYWM1YzkgMTAwNjQ0Ci0tLSBhL2ZzL250ZnMvbWZ0LmMKKysrIGIvZnMvbnRmcy9tZnQuYwpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgaW5saW5lIE1GVF9SRUNPUkQgKm1hcF9tZnRfcmVjb3JkX3BhZ2UobnRmc19pbm9kZSAqbmkpCiAJfQogCS8qIFJlYWQsIG1hcCwgYW5kIHBpbiB0aGUgcGFnZS4gKi8KIAlwYWdlID0gbnRmc19tYXBfcGFnZShtZnRfdmktPmlfbWFwcGluZywgaW5kZXgpOwotCWlmIChsaWtlbHkoIUlTX0VSUihwYWdlKSkpIHsKKwlpZiAoIUlTX0VSUihwYWdlKSkgewogCQkvKiBDYXRjaCBtdWx0aSBzZWN0b3IgdHJhbnNmZXIgZml4dXAgZXJyb3JzLiAqLwogCQlpZiAobGlrZWx5KG50ZnNfaXNfbWZ0X3JlY29yZHAoKGxlMzIqKShwYWdlX2FkZHJlc3MocGFnZSkgKwogCQkJCW9mcykpKSkgewpAQCAtMTU0LDcgKzE1NCw3IEBAIE1GVF9SRUNPUkQgKm1hcF9tZnRfcmVjb3JkKG50ZnNfaW5vZGUgKm5pKQogCW11dGV4X2xvY2soJm5pLT5tcmVjX2xvY2spOwogCiAJbSA9IG1hcF9tZnRfcmVjb3JkX3BhZ2UobmkpOwotCWlmIChsaWtlbHkoIUlTX0VSUihtKSkpCisJaWYgKCFJU19FUlIobSkpCiAJCXJldHVybiBtOwogCiAJbXV0ZXhfdW5sb2NrKCZuaS0+bXJlY19sb2NrKTsKQEAgLTI3MSw3ICsyNzEsNyBAQCBNRlRfUkVDT1JEICptYXBfZXh0ZW50X21mdF9yZWNvcmQobnRmc19pbm9kZSAqYmFzZV9uaSwgTUZUX1JFRiBtcmVmLAogCQltID0gbWFwX21mdF9yZWNvcmQobmkpOwogCQkvKiBtYXBfbWZ0X3JlY29yZCgpIGhhcyBpbmNyZW1lbnRlZCB0aGlzIG9uIHN1Y2Nlc3MuICovCiAJCWF0b21pY19kZWMoJm5pLT5jb3VudCk7Ci0JCWlmIChsaWtlbHkoIUlTX0VSUihtKSkpIHsKKwkJaWYgKCFJU19FUlIobSkpIHsKIAkJCS8qIFZlcmlmeSB0aGUgc2VxdWVuY2UgbnVtYmVyLiAqLwogCQkJaWYgKGxpa2VseShsZTE2X3RvX2NwdShtLT5zZXF1ZW5jZV9udW1iZXIpID09IHNlcV9ubykpIHsKIAkJCQludGZzX2RlYnVnKCJEb25lIDEuIik7CkBAIC0xMzAzLDcgKzEzMDMsNyBAQCBzdGF0aWMgaW50IG50ZnNfbWZ0X2JpdG1hcF9leHRlbmRfYWxsb2NhdGlvbl9ub2xvY2sobnRmc192b2x1bWUgKnZvbCkKIAlyZWFkX3VubG9ja19pcnFyZXN0b3JlKCZtZnRibXBfbmktPnNpemVfbG9jaywgZmxhZ3MpOwogCXJsID0gbnRmc19hdHRyX2ZpbmRfdmNuX25vbG9jayhtZnRibXBfbmksCiAJCQkobGwgLSAxKSA+PiB2b2wtPmNsdXN0ZXJfc2l6ZV9iaXRzLCBOVUxMKTsKLQlpZiAodW5saWtlbHkoSVNfRVJSKHJsKSB8fCAhcmwtPmxlbmd0aCB8fCBybC0+bGNuIDwgMCkpIHsKKwlpZiAoSVNfRVJSKHJsKSB8fCB1bmxpa2VseSghcmwtPmxlbmd0aCB8fCBybC0+bGNuIDwgMCkpIHsKIAkJdXBfd3JpdGUoJm1mdGJtcF9uaS0+cnVubGlzdC5sb2NrKTsKIAkJbnRmc19lcnJvcih2b2wtPnNiLCAiRmFpbGVkIHRvIGRldGVybWluZSBsYXN0IGFsbG9jYXRlZCAiCiAJCQkJImNsdXN0ZXIgb2YgbWZ0IGJpdG1hcCBhdHRyaWJ1dGUuIik7CkBAIC0xNzM0LDcgKzE3MzQsNyBAQCBzdGF0aWMgaW50IG50ZnNfbWZ0X2RhdGFfZXh0ZW5kX2FsbG9jYXRpb25fbm9sb2NrKG50ZnNfdm9sdW1lICp2b2wpCiAJcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmbWZ0X25pLT5zaXplX2xvY2ssIGZsYWdzKTsKIAlybCA9IG50ZnNfYXR0cl9maW5kX3Zjbl9ub2xvY2sobWZ0X25pLAogCQkJKGxsIC0gMSkgPj4gdm9sLT5jbHVzdGVyX3NpemVfYml0cywgTlVMTCk7Ci0JaWYgKHVubGlrZWx5KElTX0VSUihybCkgfHwgIXJsLT5sZW5ndGggfHwgcmwtPmxjbiA8IDApKSB7CisJaWYgKElTX0VSUihybCkgfHwgdW5saWtlbHkoIXJsLT5sZW5ndGggfHwgcmwtPmxjbiA8IDApKSB7CiAJCXVwX3dyaXRlKCZtZnRfbmktPnJ1bmxpc3QubG9jayk7CiAJCW50ZnNfZXJyb3Iodm9sLT5zYiwgIkZhaWxlZCB0byBkZXRlcm1pbmUgbGFzdCBhbGxvY2F0ZWQgIgogCQkJCSJjbHVzdGVyIG9mIG1mdCBkYXRhIGF0dHJpYnV0ZS4iKTsKQEAgLTE3NzYsNyArMTc3Niw3IEBAIHN0YXRpYyBpbnQgbnRmc19tZnRfZGF0YV9leHRlbmRfYWxsb2NhdGlvbl9ub2xvY2sobnRmc192b2x1bWUgKnZvbCkKIAlkbyB7CiAJCXJsMiA9IG50ZnNfY2x1c3Rlcl9hbGxvYyh2b2wsIG9sZF9sYXN0X3ZjbiwgbnIsIGxjbiwgTUZUX1pPTkUsCiAJCQkJdHJ1ZSk7Ci0JCWlmIChsaWtlbHkoIUlTX0VSUihybDIpKSkKKwkJaWYgKCFJU19FUlIocmwyKSkKIAkJCWJyZWFrOwogCQlpZiAoUFRSX0VSUihybDIpICE9IC1FTk9TUEMgfHwgbnIgPT0gbWluX25yKSB7CiAJCQludGZzX2Vycm9yKHZvbC0+c2IsICJGYWlsZWQgdG8gYWxsb2NhdGUgdGhlIG1pbmltYWwgIgpkaWZmIC0tZ2l0IGEvZnMvbnRmcy9uYW1laS5jIGIvZnMvbnRmcy9uYW1laS5jCmluZGV4IDJkM2NjOWUuLjRlNmE0NGIgMTAwNjQ0Ci0tLSBhL2ZzL250ZnMvbmFtZWkuYworKysgYi9mcy9udGZzL25hbWVpLmMKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqbnRmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXJfaW5vLCBzdHJ1Y3QgZGVudHJ5ICpkZW50LAogCQlkZW50X2lubyA9IE1SRUYobXJlZik7CiAJCW50ZnNfZGVidWcoIkZvdW5kIGlub2RlIDB4JWx4LiBDYWxsaW5nIG50ZnNfaWdldC4iLCBkZW50X2lubyk7CiAJCWRlbnRfaW5vZGUgPSBudGZzX2lnZXQodm9sLT5zYiwgZGVudF9pbm8pOwotCQlpZiAobGlrZWx5KCFJU19FUlIoZGVudF9pbm9kZSkpKSB7CisJCWlmICghSVNfRVJSKGRlbnRfaW5vZGUpKSB7CiAJCQkvKiBDb25zaXN0ZW5jeSBjaGVjay4gKi8KIAkJCWlmIChpc19iYWRfaW5vZGUoZGVudF9pbm9kZSkgfHwgTVNFUU5PKG1yZWYpID09CiAJCQkJCU5URlNfSShkZW50X2lub2RlKS0+c2VxX25vIHx8CmRpZmYgLS1naXQgYS9mcy9udGZzL3J1bmxpc3QuYyBiL2ZzL250ZnMvcnVubGlzdC5jCmluZGV4IDUwODc0NGEuLjk3OTMyZmI1IDEwMDY0NAotLS0gYS9mcy9udGZzL3J1bmxpc3QuYworKysgYi9mcy9udGZzL3J1bmxpc3QuYwpAQCAtOTUxLDcgKzk1MSw3IEBAIHJ1bmxpc3RfZWxlbWVudCAqbnRmc19tYXBwaW5nX3BhaXJzX2RlY29tcHJlc3MoY29uc3QgbnRmc192b2x1bWUgKnZvbCwKIAl9CiAJLyogTm93IGNvbWJpbmUgdGhlIG5ldyBhbmQgb2xkIHJ1bmxpc3RzIGNoZWNraW5nIGZvciBvdmVybGFwcy4gKi8KIAlvbGRfcmwgPSBudGZzX3J1bmxpc3RzX21lcmdlKG9sZF9ybCwgcmwpOwotCWlmIChsaWtlbHkoIUlTX0VSUihvbGRfcmwpKSkKKwlpZiAoIUlTX0VSUihvbGRfcmwpKQogCQlyZXR1cm4gb2xkX3JsOwogCW50ZnNfZnJlZShybCk7CiAJbnRmc19lcnJvcih2b2wtPnNiLCAiRmFpbGVkIHRvIG1lcmdlIHJ1bmxpc3RzLiIpOwpkaWZmIC0tZ2l0IGEvZnMvbnRmcy9zdXBlci5jIGIvZnMvbnRmcy9zdXBlci5jCmluZGV4IDI5NjIxZDQuLjdkYzNiYzYgMTAwNjQ0Ci0tLSBhL2ZzL250ZnMvc3VwZXIuYworKysgYi9mcy9udGZzL3N1cGVyLmMKQEAgLTE0NzUsNyArMTQ3NSw3IEBAIHN0YXRpYyBib29sIGxvYWRfYW5kX2luaXRfdXNuanJubChudGZzX3ZvbHVtZSAqdm9sKQogCWtmcmVlKG5hbWUpOwogCS8qIEdldCB0aGUgaW5vZGUuICovCiAJdG1wX2lubyA9IG50ZnNfaWdldCh2b2wtPnNiLCBNUkVGKG1yZWYpKTsKLQlpZiAodW5saWtlbHkoSVNfRVJSKHRtcF9pbm8pIHx8IGlzX2JhZF9pbm9kZSh0bXBfaW5vKSkpIHsKKwlpZiAoSVNfRVJSKHRtcF9pbm8pIHx8IHVubGlrZWx5KGlzX2JhZF9pbm9kZSh0bXBfaW5vKSkpIHsKIAkJaWYgKCFJU19FUlIodG1wX2lubykpCiAJCQlpcHV0KHRtcF9pbm8pOwogCQludGZzX2Vycm9yKHZvbC0+c2IsICJGYWlsZWQgdG8gbG9hZCAkVXNuSnJubC4iKTsKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2FsbG9jLmMgYi9mcy9vY2ZzMi9hbGxvYy5jCmluZGV4IDBjMzM1YjUuLmY5YmFlZmMgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2FsbG9jLmMKKysrIGIvZnMvb2NmczIvYWxsb2MuYwpAQCAtNTk5Myw2ICs1OTkzLDcgQEAgaW50IF9fb2NmczJfZmx1c2hfdHJ1bmNhdGVfbG9nKHN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiKQogCXN0cnVjdCBidWZmZXJfaGVhZCAqZGF0YV9hbGxvY19iaCA9IE5VTEw7CiAJc3RydWN0IG9jZnMyX2Rpbm9kZSAqZGk7CiAJc3RydWN0IG9jZnMyX3RydW5jYXRlX2xvZyAqdGw7CisJc3RydWN0IG9jZnMyX2pvdXJuYWwgKmpvdXJuYWwgPSBvc2ItPmpvdXJuYWw7CiAKIAlCVUdfT04oaW5vZGVfdHJ5bG9jayh0bF9pbm9kZSkpOwogCkBAIC02MDEzLDYgKzYwMTQsMjAgQEAgaW50IF9fb2NmczJfZmx1c2hfdHJ1bmNhdGVfbG9nKHN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiKQogCQlnb3RvIG91dDsKIAl9CiAKKwkvKiBBcHBlbmRpbmcgdHJ1bmNhdGUgbG9nKFRBKSBhbmQgYW5kIGZsdXNoaW5nIHRydW5jYXRlIGxvZyhURikgYXJlCisJICogdHdvIHNlcGFyYXRlZCB0cmFuc2FjdGlvbnMuIFRoZXkgY2FuIGJlIGJvdGggY29tbWl0dGVkIGJ1dCBub3QKKwkgKiBjaGVja3BvaW50ZWQuIElmIGNyYXNoIG9jY3VycyB0aGVuLCBib3RoIHR3byB0cmFuc2FjdGlvbiB3aWxsIGJlCisJICogcmVwbGF5ZWQgd2l0aCBzZXZlcmFsIGFscmVhZHkgcmVsZWFzZWQgdG8gZ2xvYmFsIGJpdG1hcCBjbHVzdGVycy4KKwkgKiBUaGVuIHRydW5jYXRlIGxvZyB3aWxsIGJlIHJlcGxheWVkIHJlc3VsdGluZyBpbiBjbHVzdGVyIGRvdWJsZSBmcmVlLgorCSAqLworCWpiZDJfam91cm5hbF9sb2NrX3VwZGF0ZXMoam91cm5hbC0+al9qb3VybmFsKTsKKwlzdGF0dXMgPSBqYmQyX2pvdXJuYWxfZmx1c2goam91cm5hbC0+al9qb3VybmFsKTsKKwlqYmQyX2pvdXJuYWxfdW5sb2NrX3VwZGF0ZXMoam91cm5hbC0+al9qb3VybmFsKTsKKwlpZiAoc3RhdHVzIDwgMCkgeworCQltbG9nX2Vycm5vKHN0YXR1cyk7CisJCWdvdG8gb3V0OworCX0KKwogCWRhdGFfYWxsb2NfaW5vZGUgPSBvY2ZzMl9nZXRfc3lzdGVtX2ZpbGVfaW5vZGUob3NiLAogCQkJCQkJICAgICAgIEdMT0JBTF9CSVRNQVBfU1lTVEVNX0lOT0RFLAogCQkJCQkJICAgICAgIE9DRlMyX0lOVkFMSURfU0xPVCk7CkBAIC02NzkyLDYgKzY4MDcsOCBAQCB2b2lkIG9jZnMyX21hcF9hbmRfZGlydHlfcGFnZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBoYW5kbGVfdCAqaGFuZGxlLAogCQkJICAgICAgc3RydWN0IHBhZ2UgKnBhZ2UsIGludCB6ZXJvLCB1NjQgKnBoeXMpCiB7CiAJaW50IHJldCwgcGFydGlhbCA9IDA7CisJbG9mZl90IHN0YXJ0X2J5dGUgPSAoKGxvZmZfdClwYWdlLT5pbmRleCA8PCBQQUdFX1NISUZUKSArIGZyb207CisJbG9mZl90IGxlbmd0aCA9IHRvIC0gZnJvbTsKIAogCXJldCA9IG9jZnMyX21hcF9wYWdlX2Jsb2NrcyhwYWdlLCBwaHlzLCBpbm9kZSwgZnJvbSwgdG8sIDApOwogCWlmIChyZXQpCkBAIC02ODExLDcgKzY4MjgsOCBAQCB2b2lkIG9jZnMyX21hcF9hbmRfZGlydHlfcGFnZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBoYW5kbGVfdCAqaGFuZGxlLAogCWlmIChyZXQgPCAwKQogCQltbG9nX2Vycm5vKHJldCk7CiAJZWxzZSBpZiAob2NmczJfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpKSB7Ci0JCXJldCA9IG9jZnMyX2piZDJfZmlsZV9pbm9kZShoYW5kbGUsIGlub2RlKTsKKwkJcmV0ID0gb2NmczJfamJkMl9pbm9kZV9hZGRfd3JpdGUoaGFuZGxlLCBpbm9kZSwKKwkJCQkJCSBzdGFydF9ieXRlLCBsZW5ndGgpOwogCQlpZiAocmV0IDwgMCkKIAkJCW1sb2dfZXJybm8ocmV0KTsKIAl9CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9hb3BzLmMgYi9mcy9vY2ZzMi9hb3BzLmMKaW5kZXggYTRjOTA1ZC4uOGRlMWM5ZCAxMDA2NDQKLS0tIGEvZnMvb2NmczIvYW9wcy5jCisrKyBiL2ZzL29jZnMyL2FvcHMuYwpAQCAtOTQyLDcgKzk0Miw4IEBAIHN0YXRpYyB2b2lkIG9jZnMyX3dyaXRlX2ZhaWx1cmUoc3RydWN0IGlub2RlICppbm9kZSwKIAogCQlpZiAodG1wcGFnZSAmJiBwYWdlX2hhc19idWZmZXJzKHRtcHBhZ2UpKSB7CiAJCQlpZiAob2NmczJfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpKQotCQkJCW9jZnMyX2piZDJfZmlsZV9pbm9kZSh3Yy0+d19oYW5kbGUsIGlub2RlKTsKKwkJCQlvY2ZzMl9qYmQyX2lub2RlX2FkZF93cml0ZSh3Yy0+d19oYW5kbGUsIGlub2RlLAorCQkJCQkJCSAgIHVzZXJfcG9zLCB1c2VyX2xlbik7CiAKIAkJCWJsb2NrX2NvbW1pdF93cml0ZSh0bXBwYWdlLCBmcm9tLCB0byk7CiAJCX0KQEAgLTIwMjMsOCArMjAyNCwxNCBAQCBpbnQgb2NmczJfd3JpdGVfZW5kX25vbG9jayhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJfQogCiAJCWlmIChwYWdlX2hhc19idWZmZXJzKHRtcHBhZ2UpKSB7Ci0JCQlpZiAoaGFuZGxlICYmIG9jZnMyX3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkKLQkJCQlvY2ZzMl9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlLCBpbm9kZSk7CisJCQlpZiAoaGFuZGxlICYmIG9jZnMyX3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkgeworCQkJCWxvZmZfdCBzdGFydF9ieXRlID0KKwkJCQkJKChsb2ZmX3QpdG1wcGFnZS0+aW5kZXggPDwgUEFHRV9TSElGVCkgKworCQkJCQlmcm9tOworCQkJCWxvZmZfdCBsZW5ndGggPSB0byAtIGZyb207CisJCQkJb2NmczJfamJkMl9pbm9kZV9hZGRfd3JpdGUoaGFuZGxlLCBpbm9kZSwKKwkJCQkJCQkgICBzdGFydF9ieXRlLCBsZW5ndGgpOworCQkJfQogCQkJYmxvY2tfY29tbWl0X3dyaXRlKHRtcHBhZ2UsIGZyb20sIHRvKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2Jsb2NrY2hlY2suYyBiL2ZzL29jZnMyL2Jsb2NrY2hlY2suYwppbmRleCA0MjllNmE4Li5lYWYwNDJmIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9ibG9ja2NoZWNrLmMKKysrIGIvZnMvb2NmczIvYmxvY2tjaGVjay5jCkBAIC0yMzEsMTQgKzIzMSw2IEBAIHN0YXRpYyBpbnQgYmxvY2tjaGVja191NjRfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQogfQogREVGSU5FX1NJTVBMRV9BVFRSSUJVVEUoYmxvY2tjaGVja19mb3BzLCBibG9ja2NoZWNrX3U2NF9nZXQsIE5VTEwsICIlbGx1XG4iKTsKIAotc3RhdGljIHN0cnVjdCBkZW50cnkgKmJsb2NrY2hlY2tfZGVidWdmc19jcmVhdGUoY29uc3QgY2hhciAqbmFtZSwKLQkJCQkJCXN0cnVjdCBkZW50cnkgKnBhcmVudCwKLQkJCQkJCXU2NCAqdmFsdWUpCi17Ci0JcmV0dXJuIGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgU19JRlJFRyB8IFNfSVJVU1IsIHBhcmVudCwgdmFsdWUsCi0JCQkJICAgJmJsb2NrY2hlY2tfZm9wcyk7Ci19Ci0KIHN0YXRpYyB2b2lkIG9jZnMyX2Jsb2NrY2hlY2tfZGVidWdfcmVtb3ZlKHN0cnVjdCBvY2ZzMl9ibG9ja2NoZWNrX3N0YXRzICpzdGF0cykKIHsKIAlpZiAoc3RhdHMpIHsKQEAgLTI1MCwxNiArMjQyLDIwIEBAIHN0YXRpYyB2b2lkIG9jZnMyX2Jsb2NrY2hlY2tfZGVidWdfcmVtb3ZlKHN0cnVjdCBvY2ZzMl9ibG9ja2NoZWNrX3N0YXRzICpzdGF0cykKIHN0YXRpYyB2b2lkIG9jZnMyX2Jsb2NrY2hlY2tfZGVidWdfaW5zdGFsbChzdHJ1Y3Qgb2NmczJfYmxvY2tjaGVja19zdGF0cyAqc3RhdHMsCiAJCQkJCSAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCkKIHsKLQlzdGF0cy0+Yl9kZWJ1Z19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoImJsb2NrY2hlY2siLCBwYXJlbnQpOworCXN0cnVjdCBkZW50cnkgKmRpcjsKIAotCWJsb2NrY2hlY2tfZGVidWdmc19jcmVhdGUoImJsb2Nrc19jaGVja2VkIiwgc3RhdHMtPmJfZGVidWdfZGlyLAotCQkJCSAgJnN0YXRzLT5iX2NoZWNrX2NvdW50KTsKKwlkaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoImJsb2NrY2hlY2siLCBwYXJlbnQpOworCXN0YXRzLT5iX2RlYnVnX2RpciA9IGRpcjsKIAotCWJsb2NrY2hlY2tfZGVidWdmc19jcmVhdGUoImNoZWNrc3Vtc19mYWlsZWQiLCBzdGF0cy0+Yl9kZWJ1Z19kaXIsCi0JCQkJICAmc3RhdHMtPmJfZmFpbHVyZV9jb3VudCk7CisJZGVidWdmc19jcmVhdGVfZmlsZSgiYmxvY2tzX2NoZWNrZWQiLCBTX0lGUkVHIHwgU19JUlVTUiwgZGlyLAorCQkJICAgICZzdGF0cy0+Yl9jaGVja19jb3VudCwgJmJsb2NrY2hlY2tfZm9wcyk7CiAKLQlibG9ja2NoZWNrX2RlYnVnZnNfY3JlYXRlKCJlY2NfcmVjb3ZlcmllcyIsIHN0YXRzLT5iX2RlYnVnX2RpciwKLQkJCQkgICZzdGF0cy0+Yl9yZWNvdmVyX2NvdW50KTsKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJjaGVja3N1bXNfZmFpbGVkIiwgU19JRlJFRyB8IFNfSVJVU1IsIGRpciwKKwkJCSAgICAmc3RhdHMtPmJfZmFpbHVyZV9jb3VudCwgJmJsb2NrY2hlY2tfZm9wcyk7CisKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJlY2NfcmVjb3ZlcmllcyIsIFNfSUZSRUcgfCBTX0lSVVNSLCBkaXIsCisJCQkgICAgJnN0YXRzLT5iX3JlY292ZXJfY291bnQsICZibG9ja2NoZWNrX2ZvcHMpOworCiB9CiAjZWxzZQogc3RhdGljIGlubGluZSB2b2lkIG9jZnMyX2Jsb2NrY2hlY2tfZGVidWdfaW5zdGFsbChzdHJ1Y3Qgb2NmczJfYmxvY2tjaGVja19zdGF0cyAqc3RhdHMsCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9jbHVzdGVyL2hlYXJ0YmVhdC5jIGIvZnMvb2NmczIvY2x1c3Rlci9oZWFydGJlYXQuYwppbmRleCBmMWI2MTMzLi5hMzY4MzUwIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9jbHVzdGVyL2hlYXJ0YmVhdC5jCisrKyBiL2ZzL29jZnMyL2NsdXN0ZXIvaGVhcnRiZWF0LmMKQEAgLTIyNSwxMCArMjI1LDYgQEAgc3RydWN0IG8yaGJfcmVnaW9uIHsKIAl1bnNpZ25lZCBpbnQJCWhyX3JlZ2lvbl9udW07CiAKIAlzdHJ1Y3QgZGVudHJ5CQkqaHJfZGVidWdfZGlyOwotCXN0cnVjdCBkZW50cnkJCSpocl9kZWJ1Z19saXZlbm9kZXM7Ci0Jc3RydWN0IGRlbnRyeQkJKmhyX2RlYnVnX3JlZ251bTsKLQlzdHJ1Y3QgZGVudHJ5CQkqaHJfZGVidWdfZWxhcHNlZF90aW1lOwotCXN0cnVjdCBkZW50cnkJCSpocl9kZWJ1Z19waW5uZWQ7CiAJc3RydWN0IG8yaGJfZGVidWdfYnVmCSpocl9kYl9saXZlbm9kZXM7CiAJc3RydWN0IG8yaGJfZGVidWdfYnVmCSpocl9kYl9yZWdudW07CiAJc3RydWN0IG8yaGJfZGVidWdfYnVmCSpocl9kYl9lbGFwc2VkX3RpbWU7CkBAIC0xMzk0LDIxICsxMzkwLDIwIEBAIHZvaWQgbzJoYl9leGl0KHZvaWQpCiAJa2ZyZWUobzJoYl9kYl9mYWlsZWRyZWdpb25zKTsKIH0KIAotc3RhdGljIHN0cnVjdCBkZW50cnkgKm8yaGJfZGVidWdfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBkZW50cnkgKmRpciwKLQkJCQkJc3RydWN0IG8yaGJfZGVidWdfYnVmICoqZGIsIGludCBkYl9sZW4sCi0JCQkJCWludCB0eXBlLCBpbnQgc2l6ZSwgaW50IGxlbiwgdm9pZCAqZGF0YSkKK3N0YXRpYyB2b2lkIG8yaGJfZGVidWdfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBkZW50cnkgKmRpciwKKwkJCSAgICAgIHN0cnVjdCBvMmhiX2RlYnVnX2J1ZiAqKmRiLCBpbnQgZGJfbGVuLCBpbnQgdHlwZSwKKwkJCSAgICAgIGludCBzaXplLCBpbnQgbGVuLCB2b2lkICpkYXRhKQogewogCSpkYiA9IGttYWxsb2MoZGJfbGVuLCBHRlBfS0VSTkVMKTsKIAlpZiAoISpkYikKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybjsKIAogCSgqZGIpLT5kYl90eXBlID0gdHlwZTsKIAkoKmRiKS0+ZGJfc2l6ZSA9IHNpemU7CiAJKCpkYiktPmRiX2xlbiA9IGxlbjsKIAkoKmRiKS0+ZGJfZGF0YSA9IGRhdGE7CiAKLQlyZXR1cm4gZGVidWdmc19jcmVhdGVfZmlsZShuYW1lLCBTX0lGUkVHfFNfSVJVU1IsIGRpciwgKmRiLAotCQkJCSAgICZvMmhiX2RlYnVnX2ZvcHMpOworCWRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgU19JRlJFR3xTX0lSVVNSLCBkaXIsICpkYiwgJm8yaGJfZGVidWdfZm9wcyk7CiB9CiAKIHN0YXRpYyB2b2lkIG8yaGJfZGVidWdfaW5pdCh2b2lkKQpAQCAtMTUyNSwxMSArMTUyMCw3IEBAIHN0YXRpYyB2b2lkIG8yaGJfcmVnaW9uX3JlbGVhc2Uoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtKQogCiAJa2ZyZWUocmVnLT5ocl9zbG90cyk7CiAKLQlkZWJ1Z2ZzX3JlbW92ZShyZWctPmhyX2RlYnVnX2xpdmVub2Rlcyk7Ci0JZGVidWdmc19yZW1vdmUocmVnLT5ocl9kZWJ1Z19yZWdudW0pOwotCWRlYnVnZnNfcmVtb3ZlKHJlZy0+aHJfZGVidWdfZWxhcHNlZF90aW1lKTsKLQlkZWJ1Z2ZzX3JlbW92ZShyZWctPmhyX2RlYnVnX3Bpbm5lZCk7Ci0JZGVidWdmc19yZW1vdmUocmVnLT5ocl9kZWJ1Z19kaXIpOworCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShyZWctPmhyX2RlYnVnX2Rpcik7CiAJa2ZyZWUocmVnLT5ocl9kYl9saXZlbm9kZXMpOwogCWtmcmVlKHJlZy0+aHJfZGJfcmVnbnVtKTsKIAlrZnJlZShyZWctPmhyX2RiX2VsYXBzZWRfdGltZSk7CkBAIC0xOTg4LDY5ICsxOTc5LDMzIEBAIHN0YXRpYyBzdHJ1Y3QgbzJoYl9oZWFydGJlYXRfZ3JvdXAgKnRvX28yaGJfaGVhcnRiZWF0X2dyb3VwKHN0cnVjdCBjb25maWdfZ3JvdXAKIAkJOiBOVUxMOwogfQogCi1zdGF0aWMgaW50IG8yaGJfZGVidWdfcmVnaW9uX2luaXQoc3RydWN0IG8yaGJfcmVnaW9uICpyZWcsIHN0cnVjdCBkZW50cnkgKmRpcikKK3N0YXRpYyB2b2lkIG8yaGJfZGVidWdfcmVnaW9uX2luaXQoc3RydWN0IG8yaGJfcmVnaW9uICpyZWcsCisJCQkJICAgc3RydWN0IGRlbnRyeSAqcGFyZW50KQogewotCWludCByZXQgPSAtRU5PTUVNOworCXN0cnVjdCBkZW50cnkgKmRpcjsKIAotCXJlZy0+aHJfZGVidWdfZGlyID0KLQkJZGVidWdmc19jcmVhdGVfZGlyKGNvbmZpZ19pdGVtX25hbWUoJnJlZy0+aHJfaXRlbSksIGRpcik7Ci0JaWYgKCFyZWctPmhyX2RlYnVnX2RpcikgewotCQltbG9nX2Vycm5vKHJldCk7Ci0JCWdvdG8gYmFpbDsKLQl9CisJZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKGNvbmZpZ19pdGVtX25hbWUoJnJlZy0+aHJfaXRlbSksIHBhcmVudCk7CisJcmVnLT5ocl9kZWJ1Z19kaXIgPSBkaXI7CiAKLQlyZWctPmhyX2RlYnVnX2xpdmVub2RlcyA9Ci0JCQlvMmhiX2RlYnVnX2NyZWF0ZShPMkhCX0RFQlVHX0xJVkVOT0RFUywKLQkJCQkJICByZWctPmhyX2RlYnVnX2RpciwKLQkJCQkJICAmKHJlZy0+aHJfZGJfbGl2ZW5vZGVzKSwKLQkJCQkJICBzaXplb2YoKihyZWctPmhyX2RiX2xpdmVub2RlcykpLAotCQkJCQkgIE8ySEJfREJfVFlQRV9SRUdJT05fTElWRU5PREVTLAotCQkJCQkgIHNpemVvZihyZWctPmhyX2xpdmVfbm9kZV9iaXRtYXApLAotCQkJCQkgIE8yTk1fTUFYX05PREVTLCByZWcpOwotCWlmICghcmVnLT5ocl9kZWJ1Z19saXZlbm9kZXMpIHsKLQkJbWxvZ19lcnJubyhyZXQpOwotCQlnb3RvIGJhaWw7Ci0JfQorCW8yaGJfZGVidWdfY3JlYXRlKE8ySEJfREVCVUdfTElWRU5PREVTLCBkaXIsICYocmVnLT5ocl9kYl9saXZlbm9kZXMpLAorCQkJICBzaXplb2YoKihyZWctPmhyX2RiX2xpdmVub2RlcykpLAorCQkJICBPMkhCX0RCX1RZUEVfUkVHSU9OX0xJVkVOT0RFUywKKwkJCSAgc2l6ZW9mKHJlZy0+aHJfbGl2ZV9ub2RlX2JpdG1hcCksIE8yTk1fTUFYX05PREVTLAorCQkJICByZWcpOwogCi0JcmVnLT5ocl9kZWJ1Z19yZWdudW0gPQotCQkJbzJoYl9kZWJ1Z19jcmVhdGUoTzJIQl9ERUJVR19SRUdJT05fTlVNQkVSLAotCQkJCQkgIHJlZy0+aHJfZGVidWdfZGlyLAotCQkJCQkgICYocmVnLT5ocl9kYl9yZWdudW0pLAotCQkJCQkgIHNpemVvZigqKHJlZy0+aHJfZGJfcmVnbnVtKSksCi0JCQkJCSAgTzJIQl9EQl9UWVBFX1JFR0lPTl9OVU1CRVIsCi0JCQkJCSAgMCwgTzJOTV9NQVhfTk9ERVMsIHJlZyk7Ci0JaWYgKCFyZWctPmhyX2RlYnVnX3JlZ251bSkgewotCQltbG9nX2Vycm5vKHJldCk7Ci0JCWdvdG8gYmFpbDsKLQl9CisJbzJoYl9kZWJ1Z19jcmVhdGUoTzJIQl9ERUJVR19SRUdJT05fTlVNQkVSLCBkaXIsICYocmVnLT5ocl9kYl9yZWdudW0pLAorCQkJICBzaXplb2YoKihyZWctPmhyX2RiX3JlZ251bSkpLAorCQkJICBPMkhCX0RCX1RZUEVfUkVHSU9OX05VTUJFUiwgMCwgTzJOTV9NQVhfTk9ERVMsIHJlZyk7CiAKLQlyZWctPmhyX2RlYnVnX2VsYXBzZWRfdGltZSA9Ci0JCQlvMmhiX2RlYnVnX2NyZWF0ZShPMkhCX0RFQlVHX1JFR0lPTl9FTEFQU0VEX1RJTUUsCi0JCQkJCSAgcmVnLT5ocl9kZWJ1Z19kaXIsCi0JCQkJCSAgJihyZWctPmhyX2RiX2VsYXBzZWRfdGltZSksCi0JCQkJCSAgc2l6ZW9mKCoocmVnLT5ocl9kYl9lbGFwc2VkX3RpbWUpKSwKLQkJCQkJICBPMkhCX0RCX1RZUEVfUkVHSU9OX0VMQVBTRURfVElNRSwKLQkJCQkJICAwLCAwLCByZWcpOwotCWlmICghcmVnLT5ocl9kZWJ1Z19lbGFwc2VkX3RpbWUpIHsKLQkJbWxvZ19lcnJubyhyZXQpOwotCQlnb3RvIGJhaWw7Ci0JfQorCW8yaGJfZGVidWdfY3JlYXRlKE8ySEJfREVCVUdfUkVHSU9OX0VMQVBTRURfVElNRSwgZGlyLAorCQkJICAmKHJlZy0+aHJfZGJfZWxhcHNlZF90aW1lKSwKKwkJCSAgc2l6ZW9mKCoocmVnLT5ocl9kYl9lbGFwc2VkX3RpbWUpKSwKKwkJCSAgTzJIQl9EQl9UWVBFX1JFR0lPTl9FTEFQU0VEX1RJTUUsIDAsIDAsIHJlZyk7CiAKLQlyZWctPmhyX2RlYnVnX3Bpbm5lZCA9Ci0JCQlvMmhiX2RlYnVnX2NyZWF0ZShPMkhCX0RFQlVHX1JFR0lPTl9QSU5ORUQsCi0JCQkJCSAgcmVnLT5ocl9kZWJ1Z19kaXIsCi0JCQkJCSAgJihyZWctPmhyX2RiX3Bpbm5lZCksCi0JCQkJCSAgc2l6ZW9mKCoocmVnLT5ocl9kYl9waW5uZWQpKSwKLQkJCQkJICBPMkhCX0RCX1RZUEVfUkVHSU9OX1BJTk5FRCwKLQkJCQkJICAwLCAwLCByZWcpOwotCWlmICghcmVnLT5ocl9kZWJ1Z19waW5uZWQpIHsKLQkJbWxvZ19lcnJubyhyZXQpOwotCQlnb3RvIGJhaWw7Ci0JfQorCW8yaGJfZGVidWdfY3JlYXRlKE8ySEJfREVCVUdfUkVHSU9OX1BJTk5FRCwgZGlyLCAmKHJlZy0+aHJfZGJfcGlubmVkKSwKKwkJCSAgc2l6ZW9mKCoocmVnLT5ocl9kYl9waW5uZWQpKSwKKwkJCSAgTzJIQl9EQl9UWVBFX1JFR0lPTl9QSU5ORUQsIDAsIDAsIHJlZyk7CiAKLQlyZXQgPSAwOwotYmFpbDoKLQlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgc3RydWN0IGNvbmZpZ19pdGVtICpvMmhiX2hlYXJ0YmVhdF9ncm91cF9tYWtlX2l0ZW0oc3RydWN0IGNvbmZpZ19ncm91cCAqZ3JvdXAsCkBAIC0yMTA2LDExICsyMDYxLDcgQEAgc3RhdGljIHN0cnVjdCBjb25maWdfaXRlbSAqbzJoYl9oZWFydGJlYXRfZ3JvdXBfbWFrZV9pdGVtKHN0cnVjdCBjb25maWdfZ3JvdXAgKmcKIAlpZiAocmV0KQogCQlnb3RvIHVucmVnaXN0ZXJfaGFuZGxlcjsKIAotCXJldCA9IG8yaGJfZGVidWdfcmVnaW9uX2luaXQocmVnLCBvMmhiX2RlYnVnX2Rpcik7Ci0JaWYgKHJldCkgewotCQljb25maWdfaXRlbV9wdXQoJnJlZy0+aHJfaXRlbSk7Ci0JCWdvdG8gdW5yZWdpc3Rlcl9oYW5kbGVyOwotCX0KKwlvMmhiX2RlYnVnX3JlZ2lvbl9pbml0KHJlZywgbzJoYl9kZWJ1Z19kaXIpOwogCiAJcmV0dXJuICZyZWctPmhyX2l0ZW07CiAKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2Rpci5jIGIvZnMvb2NmczIvZGlyLmMKaW5kZXggNzg0NDI2ZC4uYmRlZjcyYyAxMDA2NDQKLS0tIGEvZnMvb2NmczIvZGlyLmMKKysrIGIvZnMvb2NmczIvZGlyLmMKQEAgLTM2MzYsNyArMzYzNiw3IEBAIHN0YXRpYyB2b2lkIG9jZnMyX2R4X2Rpcl90cmFuc2Zlcl9sZWFmKHN0cnVjdCBpbm9kZSAqZGlyLCB1MzIgc3BsaXRfaGFzaCwKIAlpbnQgaSwgaiwgbnVtX3VzZWQ7CiAJdTMyIG1ham9yX2hhc2g7CiAJc3RydWN0IG9jZnMyX2R4X2xlYWYgKm9yaWdfZHhfbGVhZiwgKm5ld19keF9sZWFmOwotCXN0cnVjdCBvY2ZzMl9keF9lbnRyeV9saXN0ICpvcmlnX2xpc3QsICpuZXdfbGlzdCwgKnRtcF9saXN0OworCXN0cnVjdCBvY2ZzMl9keF9lbnRyeV9saXN0ICpvcmlnX2xpc3QsICp0bXBfbGlzdDsKIAlzdHJ1Y3Qgb2NmczJfZHhfZW50cnkgKmR4X2VudHJ5OwogCiAJdG1wX2xpc3QgPSAmdG1wX2R4X2xlYWYtPmRsX2xpc3Q7CkBAIC0zNjQ1LDcgKzM2NDUsNiBAQCBzdGF0aWMgdm9pZCBvY2ZzMl9keF9kaXJfdHJhbnNmZXJfbGVhZihzdHJ1Y3QgaW5vZGUgKmRpciwgdTMyIHNwbGl0X2hhc2gsCiAJCW9yaWdfZHhfbGVhZiA9IChzdHJ1Y3Qgb2NmczJfZHhfbGVhZiAqKSBvcmlnX2R4X2xlYXZlc1tpXS0+Yl9kYXRhOwogCQlvcmlnX2xpc3QgPSAmb3JpZ19keF9sZWFmLT5kbF9saXN0OwogCQluZXdfZHhfbGVhZiA9IChzdHJ1Y3Qgb2NmczJfZHhfbGVhZiAqKSBuZXdfZHhfbGVhdmVzW2ldLT5iX2RhdGE7Ci0JCW5ld19saXN0ID0gJm5ld19keF9sZWFmLT5kbF9saXN0OwogCiAJCW51bV91c2VkID0gbGUxNl90b19jcHUob3JpZ19saXN0LT5kZV9udW1fdXNlZCk7CiAKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2RsbS9kbG1jb21tb24uaCBiL2ZzL29jZnMyL2RsbS9kbG1jb21tb24uaAppbmRleCA2OWE0MjliLi5hYWYyNDU0IDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9kbG0vZGxtY29tbW9uLmgKKysrIGIvZnMvb2NmczIvZGxtL2RsbWNvbW1vbi5oCkBAIC0xNDIsNyArMTQyLDYgQEAgc3RydWN0IGRsbV9jdHh0CiAJYXRvbWljX3QgcmVzX3RvdF9jb3VudDsKIAlhdG9taWNfdCByZXNfY3VyX2NvdW50OwogCi0Jc3RydWN0IGRsbV9kZWJ1Z19jdHh0ICpkbG1fZGVidWdfY3R4dDsKIAlzdHJ1Y3QgZGVudHJ5ICpkbG1fZGVidWdmc19zdWJyb290OwogCiAJLyogTk9URTogTmV4dCB0aHJlZSBhcmUgcHJvdGVjdGVkIGJ5IGRsbV9kb21haW5fbG9jayAqLwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbWRlYnVnLmMgYi9mcy9vY2ZzMi9kbG0vZGxtZGVidWcuYwppbmRleCBhNGI1OGJhLi40ZDBiNDUyIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9kbG0vZGxtZGVidWcuYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtZGVidWcuYwpAQCAtODUzLDY3ICs4NTMsMzQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGVidWdfc3RhdGVfZm9wcyA9IHsKIC8qIGZpbGVzIGluIHN1YnJvb3QgKi8KIHZvaWQgZGxtX2RlYnVnX2luaXQoc3RydWN0IGRsbV9jdHh0ICpkbG0pCiB7Ci0Jc3RydWN0IGRsbV9kZWJ1Z19jdHh0ICpkYyA9IGRsbS0+ZGxtX2RlYnVnX2N0eHQ7Ci0KIAkvKiBmb3IgZHVtcGluZyBkbG1fY3R4dCAqLwotCWRjLT5kZWJ1Z19zdGF0ZV9kZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKERMTV9ERUJVR0ZTX0RMTV9TVEFURSwKLQkJCQkJCSAgICAgU19JRlJFR3xTX0lSVVNSLAotCQkJCQkJICAgICBkbG0tPmRsbV9kZWJ1Z2ZzX3N1YnJvb3QsCi0JCQkJCQkgICAgIGRsbSwgJmRlYnVnX3N0YXRlX2ZvcHMpOworCWRlYnVnZnNfY3JlYXRlX2ZpbGUoRExNX0RFQlVHRlNfRExNX1NUQVRFLCBTX0lGUkVHfFNfSVJVU1IsCisJCQkgICAgZGxtLT5kbG1fZGVidWdmc19zdWJyb290LCBkbG0sICZkZWJ1Z19zdGF0ZV9mb3BzKTsKIAogCS8qIGZvciBkdW1waW5nIGxvY2tyZXMgKi8KLQlkYy0+ZGVidWdfbG9ja3Jlc19kZW50cnkgPQotCQkJZGVidWdmc19jcmVhdGVfZmlsZShETE1fREVCVUdGU19MT0NLSU5HX1NUQVRFLAotCQkJCQkgICAgU19JRlJFR3xTX0lSVVNSLAotCQkJCQkgICAgZGxtLT5kbG1fZGVidWdmc19zdWJyb290LAotCQkJCQkgICAgZGxtLCAmZGVidWdfbG9ja3Jlc19mb3BzKTsKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKERMTV9ERUJVR0ZTX0xPQ0tJTkdfU1RBVEUsIFNfSUZSRUd8U19JUlVTUiwKKwkJCSAgICBkbG0tPmRsbV9kZWJ1Z2ZzX3N1YnJvb3QsIGRsbSwgJmRlYnVnX2xvY2tyZXNfZm9wcyk7CiAKIAkvKiBmb3IgZHVtcGluZyBtbGVzICovCi0JZGMtPmRlYnVnX21sZV9kZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKERMTV9ERUJVR0ZTX01MRV9TVEFURSwKLQkJCQkJCSAgIFNfSUZSRUd8U19JUlVTUiwKLQkJCQkJCSAgIGRsbS0+ZGxtX2RlYnVnZnNfc3Vicm9vdCwKLQkJCQkJCSAgIGRsbSwgJmRlYnVnX21sZV9mb3BzKTsKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKERMTV9ERUJVR0ZTX01MRV9TVEFURSwgU19JRlJFR3xTX0lSVVNSLAorCQkJICAgIGRsbS0+ZGxtX2RlYnVnZnNfc3Vicm9vdCwgZGxtLCAmZGVidWdfbWxlX2ZvcHMpOwogCiAJLyogZm9yIGR1bXBpbmcgbG9ja3JlcyBvbiB0aGUgcHVyZ2UgbGlzdCAqLwotCWRjLT5kZWJ1Z19wdXJnZWxpc3RfZGVudHJ5ID0KLQkJCWRlYnVnZnNfY3JlYXRlX2ZpbGUoRExNX0RFQlVHRlNfUFVSR0VfTElTVCwKLQkJCQkJICAgIFNfSUZSRUd8U19JUlVTUiwKLQkJCQkJICAgIGRsbS0+ZGxtX2RlYnVnZnNfc3Vicm9vdCwKLQkJCQkJICAgIGRsbSwgJmRlYnVnX3B1cmdlbGlzdF9mb3BzKTsKLX0KLQotdm9pZCBkbG1fZGVidWdfc2h1dGRvd24oc3RydWN0IGRsbV9jdHh0ICpkbG0pCi17Ci0Jc3RydWN0IGRsbV9kZWJ1Z19jdHh0ICpkYyA9IGRsbS0+ZGxtX2RlYnVnX2N0eHQ7Ci0KLQlpZiAoZGMpIHsKLQkJZGVidWdmc19yZW1vdmUoZGMtPmRlYnVnX3B1cmdlbGlzdF9kZW50cnkpOwotCQlkZWJ1Z2ZzX3JlbW92ZShkYy0+ZGVidWdfbWxlX2RlbnRyeSk7Ci0JCWRlYnVnZnNfcmVtb3ZlKGRjLT5kZWJ1Z19sb2NrcmVzX2RlbnRyeSk7Ci0JCWRlYnVnZnNfcmVtb3ZlKGRjLT5kZWJ1Z19zdGF0ZV9kZW50cnkpOwotCQlrZnJlZShkYyk7Ci0JCWRjID0gTlVMTDsKLQl9CisJZGVidWdmc19jcmVhdGVfZmlsZShETE1fREVCVUdGU19QVVJHRV9MSVNULCBTX0lGUkVHfFNfSVJVU1IsCisJCQkgICAgZGxtLT5kbG1fZGVidWdmc19zdWJyb290LCBkbG0sCisJCQkgICAgJmRlYnVnX3B1cmdlbGlzdF9mb3BzKTsKIH0KIAogLyogc3Vicm9vdCAtIGRvbWFpbiBkaXIgKi8KLWludCBkbG1fY3JlYXRlX2RlYnVnZnNfc3Vicm9vdChzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKK3ZvaWQgZGxtX2NyZWF0ZV9kZWJ1Z2ZzX3N1YnJvb3Qoc3RydWN0IGRsbV9jdHh0ICpkbG0pCiB7Ci0JZGxtLT5kbG1fZGVidWdfY3R4dCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkbG1fZGVidWdfY3R4dCksCi0JCQkJICAgICAgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFkbG0tPmRsbV9kZWJ1Z19jdHh0KSB7Ci0JCW1sb2dfZXJybm8oLUVOT01FTSk7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KLQogCWRsbS0+ZGxtX2RlYnVnZnNfc3Vicm9vdCA9IGRlYnVnZnNfY3JlYXRlX2RpcihkbG0tPm5hbWUsCiAJCQkJCQkgICAgICBkbG1fZGVidWdmc19yb290KTsKLQlyZXR1cm4gMDsKIH0KIAogdm9pZCBkbG1fZGVzdHJveV9kZWJ1Z2ZzX3N1YnJvb3Qoc3RydWN0IGRsbV9jdHh0ICpkbG0pCiB7Ci0JZGVidWdmc19yZW1vdmUoZGxtLT5kbG1fZGVidWdmc19zdWJyb290KTsKKwlkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoZGxtLT5kbG1fZGVidWdmc19zdWJyb290KTsKIH0KIAogLyogZGVidWdmcyByb290ICovCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9kbG0vZGxtZGVidWcuaCBiL2ZzL29jZnMyL2RsbS9kbG1kZWJ1Zy5oCmluZGV4IDdkMGM3YzkuLmY4ZmQ4NjggMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbS9kbG1kZWJ1Zy5oCisrKyBiL2ZzL29jZnMyL2RsbS9kbG1kZWJ1Zy5oCkBAIC0xNCwxMyArMTQsNiBAQCB2b2lkIGRsbV9wcmludF9vbmVfbWxlKHN0cnVjdCBkbG1fbWFzdGVyX2xpc3RfZW50cnkgKm1sZSk7CiAKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKIAotc3RydWN0IGRsbV9kZWJ1Z19jdHh0IHsKLQlzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z19zdGF0ZV9kZW50cnk7Ci0Jc3RydWN0IGRlbnRyeSAqZGVidWdfbG9ja3Jlc19kZW50cnk7Ci0Jc3RydWN0IGRlbnRyeSAqZGVidWdfbWxlX2RlbnRyeTsKLQlzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z19wdXJnZWxpc3RfZGVudHJ5OwotfTsKLQogc3RydWN0IGRlYnVnX2xvY2tyZXMgewogCWludCBkbF9sZW47CiAJY2hhciAqZGxfYnVmOwpAQCAtMjksOSArMjIsOCBAQCBzdHJ1Y3QgZGVidWdfbG9ja3JlcyB7CiB9OwogCiB2b2lkIGRsbV9kZWJ1Z19pbml0KHN0cnVjdCBkbG1fY3R4dCAqZGxtKTsKLXZvaWQgZGxtX2RlYnVnX3NodXRkb3duKHN0cnVjdCBkbG1fY3R4dCAqZGxtKTsKIAotaW50IGRsbV9jcmVhdGVfZGVidWdmc19zdWJyb290KHN0cnVjdCBkbG1fY3R4dCAqZGxtKTsKK3ZvaWQgZGxtX2NyZWF0ZV9kZWJ1Z2ZzX3N1YnJvb3Qoc3RydWN0IGRsbV9jdHh0ICpkbG0pOwogdm9pZCBkbG1fZGVzdHJveV9kZWJ1Z2ZzX3N1YnJvb3Qoc3RydWN0IGRsbV9jdHh0ICpkbG0pOwogCiB2b2lkIGRsbV9jcmVhdGVfZGVidWdmc19yb290KHZvaWQpOwpAQCAtNDIsMTMgKzM0LDkgQEAgdm9pZCBkbG1fZGVzdHJveV9kZWJ1Z2ZzX3Jvb3Qodm9pZCk7CiBzdGF0aWMgaW5saW5lIHZvaWQgZGxtX2RlYnVnX2luaXQoc3RydWN0IGRsbV9jdHh0ICpkbG0pCiB7CiB9Ci1zdGF0aWMgaW5saW5lIHZvaWQgZGxtX2RlYnVnX3NodXRkb3duKHN0cnVjdCBkbG1fY3R4dCAqZGxtKQorc3RhdGljIGlubGluZSB2b2lkIGRsbV9jcmVhdGVfZGVidWdmc19zdWJyb290KHN0cnVjdCBkbG1fY3R4dCAqZGxtKQogewogfQotc3RhdGljIGlubGluZSBpbnQgZGxtX2NyZWF0ZV9kZWJ1Z2ZzX3N1YnJvb3Qoc3RydWN0IGRsbV9jdHh0ICpkbG0pCi17Ci0JcmV0dXJuIDA7Ci19CiBzdGF0aWMgaW5saW5lIHZvaWQgZGxtX2Rlc3Ryb3lfZGVidWdmc19zdWJyb290KHN0cnVjdCBkbG1fY3R4dCAqZGxtKQogewogfQpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbWRvbWFpbi5jIGIvZnMvb2NmczIvZGxtL2RsbWRvbWFpbi5jCmluZGV4IDczMzhiNWQuLmVlNmY0NTkgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbS9kbG1kb21haW4uYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtZG9tYWluLmMKQEAgLTM4Nyw3ICszODcsNiBAQCBzdGF0aWMgdm9pZCBkbG1fZGVzdHJveV9kbG1fd29ya2VyKHN0cnVjdCBkbG1fY3R4dCAqZGxtKQogc3RhdGljIHZvaWQgZGxtX2NvbXBsZXRlX2RsbV9zaHV0ZG93bihzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKIHsKIAlkbG1fdW5yZWdpc3Rlcl9kb21haW5faGFuZGxlcnMoZGxtKTsKLQlkbG1fZGVidWdfc2h1dGRvd24oZGxtKTsKIAlkbG1fY29tcGxldGVfdGhyZWFkKGRsbSk7CiAJZGxtX2NvbXBsZXRlX3JlY292ZXJ5X3RocmVhZChkbG0pOwogCWRsbV9kZXN0cm95X2RsbV93b3JrZXIoZGxtKTsKQEAgLTE5MzgsNyArMTkzNyw2IEBAIHN0YXRpYyBpbnQgZGxtX2pvaW5fZG9tYWluKHN0cnVjdCBkbG1fY3R4dCAqZGxtKQogCiAJaWYgKHN0YXR1cykgewogCQlkbG1fdW5yZWdpc3Rlcl9kb21haW5faGFuZGxlcnMoZGxtKTsKLQkJZGxtX2RlYnVnX3NodXRkb3duKGRsbSk7CiAJCWRsbV9jb21wbGV0ZV90aHJlYWQoZGxtKTsKIAkJZGxtX2NvbXBsZXRlX3JlY292ZXJ5X3RocmVhZChkbG0pOwogCQlkbG1fZGVzdHJveV9kbG1fd29ya2VyKGRsbSk7CkBAIC0xOTkyLDkgKzE5OTAsNyBAQCBzdGF0aWMgc3RydWN0IGRsbV9jdHh0ICpkbG1fYWxsb2NfY3R4dChjb25zdCBjaGFyICpkb21haW4sCiAJZGxtLT5rZXkgPSBrZXk7CiAJZGxtLT5ub2RlX251bSA9IG8ybm1fdGhpc19ub2RlKCk7CiAKLQlyZXQgPSBkbG1fY3JlYXRlX2RlYnVnZnNfc3Vicm9vdChkbG0pOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIGxlYXZlOworCWRsbV9jcmVhdGVfZGVidWdmc19zdWJyb290KGRsbSk7CiAKIAlzcGluX2xvY2tfaW5pdCgmZGxtLT5zcGlubG9jayk7CiAJc3Bpbl9sb2NrX2luaXQoJmRsbS0+bWFzdGVyX2xvY2spOwpAQCAtMjA1Niw2ICsyMDUyLDcgQEAgc3RhdGljIHN0cnVjdCBkbG1fY3R4dCAqZGxtX2FsbG9jX2N0eHQoY29uc3QgY2hhciAqZG9tYWluLAogCW1sb2coMCwgImNvbnRleHQgaW5pdDogcmVmY291bnQgJXVcbiIsCiAJCSAga3JlZl9yZWFkKCZkbG0tPmRsbV9yZWZzKSk7CiAKKwlyZXQgPSAwOwogbGVhdmU6CiAJaWYgKHJldCA8IDAgJiYgZGxtKSB7CiAJCWlmIChkbG0tPm1hc3Rlcl9oYXNoKQpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbXVubG9jay5jIGIvZnMvb2NmczIvZGxtL2RsbXVubG9jay5jCmluZGV4IGU3ODY1NzcuLjM4ODM2MzMgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbS9kbG11bmxvY2suYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtdW5sb2NrLmMKQEAgLTkwLDcgKzkwLDggQEAgc3RhdGljIGVudW0gZGxtX3N0YXR1cyBkbG11bmxvY2tfY29tbW9uKHN0cnVjdCBkbG1fY3R4dCAqZGxtLAogCWVudW0gZGxtX3N0YXR1cyBzdGF0dXM7CiAJaW50IGFjdGlvbnMgPSAwOwogCWludCBpbl91c2U7Ci0gICAgICAgIHU4IG93bmVyOworCXU4IG93bmVyOworCWludCByZWNvdmVyeV93YWl0ID0gMDsKIAogCW1sb2coMCwgIm1hc3Rlcl9ub2RlID0gJWQsIHZhbGJsayA9ICVkXG4iLCBtYXN0ZXJfbm9kZSwKIAkgICAgIGZsYWdzICYgTEtNX1ZBTEJMSyk7CkBAIC0xOTMsOSArMTk0LDEyIEBAIHN0YXRpYyBlbnVtIGRsbV9zdGF0dXMgZGxtdW5sb2NrX2NvbW1vbihzdHJ1Y3QgZGxtX2N0eHQgKmRsbSwKIAkJfQogCQlpZiAoZmxhZ3MgJiBMS01fQ0FOQ0VMKQogCQkJbG9jay0+Y2FuY2VsX3BlbmRpbmcgPSAwOwotCQllbHNlCi0JCQlsb2NrLT51bmxvY2tfcGVuZGluZyA9IDA7Ci0KKwkJZWxzZSB7CisJCQlpZiAoIWxvY2stPnVubG9ja19wZW5kaW5nKQorCQkJCXJlY292ZXJ5X3dhaXQgPSAxOworCQkJZWxzZQorCQkJCWxvY2stPnVubG9ja19wZW5kaW5nID0gMDsKKwkJfQogCX0KIAogCS8qIGdldCBhbiBleHRyYSByZWYgb24gbG9jay4gIGlmIHdlIGFyZSBqdXN0IHN3aXRjaGluZwpAQCAtMjI5LDYgKzIzMywxNyBAQCBzdGF0aWMgZW51bSBkbG1fc3RhdHVzIGRsbXVubG9ja19jb21tb24oc3RydWN0IGRsbV9jdHh0ICpkbG0sCiAJc3Bpbl91bmxvY2soJnJlcy0+c3BpbmxvY2spOwogCXdha2VfdXAoJnJlcy0+d3EpOwogCisJaWYgKHJlY292ZXJ5X3dhaXQpIHsKKwkJc3Bpbl9sb2NrKCZyZXMtPnNwaW5sb2NrKTsKKwkJLyogVW5sb2NrIHJlcXVlc3Qgd2lsbCBkaXJlY3RseSBzdWNjZWVkIGFmdGVyIG93bmVyIGRpZXMsCisJCSAqIGFuZCB0aGUgbG9jayBpcyBhbHJlYWR5IHJlbW92ZWQgZnJvbSBncmFudCBsaXN0LiBXZSBoYXZlIHRvCisJCSAqIHdhaXQgZm9yIFJFQ09WRVJJTkcgZG9uZSBvciB3ZSBtaXNzIHRoZSBjaGFuY2UgdG8gcHVyZ2UgaXQKKwkJICogc2luY2UgdGhlIHJlbW92ZW1lbnQgaXMgbXVjaCBmYXN0ZXIgdGhhbiBSRUNPVkVSSU5HIHByb2MuCisJCSAqLworCQlfX2RsbV93YWl0X29uX2xvY2tyZXNfZmxhZ3MocmVzLCBETE1fTE9DS19SRVNfUkVDT1ZFUklORyk7CisJCXNwaW5fdW5sb2NrKCZyZXMtPnNwaW5sb2NrKTsKKwl9CisKIAkvKiBsZXQgdGhlIGNhbGxlcidzIGZpbmFsIGRsbV9sb2NrX3B1dCBoYW5kbGUgdGhlIGFjdHVhbCBrZnJlZSAqLwogCWlmIChhY3Rpb25zICYgRExNX1VOTE9DS19GUkVFX0xPQ0spIHsKIAkJLyogdGhpcyBzaG91bGQgYWx3YXlzIGJlIGNvdXBsZWQgd2l0aCBsaXN0IHJlbW92YWwgKi8KZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2RsbWdsdWUuYyBiL2ZzL29jZnMyL2RsbWdsdWUuYwppbmRleCAxNDIwNzIzLi42ZTc3NGM1IDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9kbG1nbHVlLmMKKysrIGIvZnMvb2NmczIvZGxtZ2x1ZS5jCkBAIC0yNTA4LDkgKzI1MDgsNyBAQCBpbnQgb2NmczJfaW5vZGVfbG9ja19mdWxsX25lc3RlZChzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJb2NmczJfaW5vZGVfdW5sb2NrKGlub2RlLCBleCk7CiAJfQogCi0JaWYgKGxvY2FsX2JoKQotCQlicmVsc2UobG9jYWxfYmgpOwotCisJYnJlbHNlKGxvY2FsX2JoKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC0yNTkzLDggKzI1OTEsNyBAQCBpbnQgb2NmczJfaW5vZGVfbG9ja19hdGltZShzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkqbGV2ZWwgPSAxOwogCQlpZiAob2NmczJfc2hvdWxkX3VwZGF0ZV9hdGltZShpbm9kZSwgdmZzbW50KSkKIAkJCW9jZnMyX3VwZGF0ZV9pbm9kZV9hdGltZShpbm9kZSwgYmgpOwotCQlpZiAoYmgpCi0JCQlicmVsc2UoYmgpOworCQlicmVsc2UoYmgpOwogCX0gZWxzZQogCQkqbGV2ZWwgPSAwOwogCkBAIC0zMDEyLDggKzMwMDksNiBAQCBzdHJ1Y3Qgb2NmczJfZGxtX2RlYnVnICpvY2ZzMl9uZXdfZGxtX2RlYnVnKHZvaWQpCiAKIAlrcmVmX2luaXQoJmRsbV9kZWJ1Zy0+ZF9yZWZjbnQpOwogCUlOSVRfTElTVF9IRUFEKCZkbG1fZGVidWctPmRfbG9ja3Jlc190cmFja2luZyk7Ci0JZGxtX2RlYnVnLT5kX2xvY2tpbmdfc3RhdGUgPSBOVUxMOwotCWRsbV9kZWJ1Zy0+ZF9sb2NraW5nX2ZpbHRlciA9IE5VTEw7CiAJZGxtX2RlYnVnLT5kX2ZpbHRlcl9zZWNzID0gMDsKIG91dDoKIAlyZXR1cm4gZGxtX2RlYnVnOwpAQCAtMzI4MiwyNyArMzI3NywxOSBAQCBzdGF0aWMgdm9pZCBvY2ZzMl9kbG1faW5pdF9kZWJ1ZyhzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYikKIHsKIAlzdHJ1Y3Qgb2NmczJfZGxtX2RlYnVnICpkbG1fZGVidWcgPSBvc2ItPm9zYl9kbG1fZGVidWc7CiAKLQlkbG1fZGVidWctPmRfbG9ja2luZ19zdGF0ZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImxvY2tpbmdfc3RhdGUiLAotCQkJCQkJCSBTX0lGUkVHfFNfSVJVU1IsCi0JCQkJCQkJIG9zYi0+b3NiX2RlYnVnX3Jvb3QsCi0JCQkJCQkJIG9zYiwKLQkJCQkJCQkgJm9jZnMyX2RsbV9kZWJ1Z19mb3BzKTsKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJsb2NraW5nX3N0YXRlIiwgU19JRlJFR3xTX0lSVVNSLAorCQkJICAgIG9zYi0+b3NiX2RlYnVnX3Jvb3QsIG9zYiwgJm9jZnMyX2RsbV9kZWJ1Z19mb3BzKTsKIAotCWRsbV9kZWJ1Zy0+ZF9sb2NraW5nX2ZpbHRlciA9IGRlYnVnZnNfY3JlYXRlX3UzMigibG9ja2luZ19maWx0ZXIiLAotCQkJCQkJMDYwMCwKLQkJCQkJCW9zYi0+b3NiX2RlYnVnX3Jvb3QsCi0JCQkJCQkmZGxtX2RlYnVnLT5kX2ZpbHRlcl9zZWNzKTsKKwlkZWJ1Z2ZzX2NyZWF0ZV91MzIoImxvY2tpbmdfZmlsdGVyIiwgMDYwMCwgb3NiLT5vc2JfZGVidWdfcm9vdCwKKwkJCSAgICZkbG1fZGVidWctPmRfZmlsdGVyX3NlY3MpOwogfQogCiBzdGF0aWMgdm9pZCBvY2ZzMl9kbG1fc2h1dGRvd25fZGVidWcoc3RydWN0IG9jZnMyX3N1cGVyICpvc2IpCiB7CiAJc3RydWN0IG9jZnMyX2RsbV9kZWJ1ZyAqZGxtX2RlYnVnID0gb3NiLT5vc2JfZGxtX2RlYnVnOwogCi0JaWYgKGRsbV9kZWJ1ZykgewotCQlkZWJ1Z2ZzX3JlbW92ZShkbG1fZGVidWctPmRfbG9ja2luZ19zdGF0ZSk7Ci0JCWRlYnVnZnNfcmVtb3ZlKGRsbV9kZWJ1Zy0+ZF9sb2NraW5nX2ZpbHRlcik7CisJaWYgKGRsbV9kZWJ1ZykKIAkJb2NmczJfcHV0X2RsbV9kZWJ1ZyhkbG1fZGVidWcpOwotCX0KIH0KIAogaW50IG9jZnMyX2RsbV9pbml0KHN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiKQpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZXh0ZW50X21hcC5jIGIvZnMvb2NmczIvZXh0ZW50X21hcC5jCmluZGV4IGU2NmEyNDkuLmUzZTJkMWIgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2V4dGVudF9tYXAuYworKysgYi9mcy9vY2ZzMi9leHRlbnRfbWFwLmMKQEAgLTU5MCw4ICs1OTAsNyBAQCBpbnQgb2NmczJfeGF0dHJfZ2V0X2NsdXN0ZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHUzMiB2X2NsdXN0ZXIsCiAJCQkqZXh0ZW50X2ZsYWdzID0gcmVjLT5lX2ZsYWdzOwogCX0KIG91dDoKLQlpZiAoZWJfYmgpCi0JCWJyZWxzZShlYl9iaCk7CisJYnJlbHNlKGViX2JoKTsKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9maWxlLmMgYi9mcy9vY2ZzMi9maWxlLmMKaW5kZXggNDQzNWRmMy4uMmU5ODJkYiAxMDA2NDQKLS0tIGEvZnMvb2NmczIvZmlsZS5jCisrKyBiL2ZzL29jZnMyL2ZpbGUuYwpAQCAtNzA2LDcgKzcwNiw5IEBAIHN0YXRpYyBpbnQgb2NmczJfZXh0ZW5kX2FsbG9jYXRpb24oc3RydWN0IGlub2RlICppbm9kZSwgdTMyIGxvZ2ljYWxfc3RhcnQsCiAgKiBUaHVzLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgb3JkZXIgdGhlIHplcm9lZCBwYWdlcy4KICAqLwogc3RhdGljIGhhbmRsZV90ICpvY2ZzMl96ZXJvX3N0YXJ0X29yZGVyZWRfdHJhbnNhY3Rpb24oc3RydWN0IGlub2RlICppbm9kZSwKLQkJCQkJCXN0cnVjdCBidWZmZXJfaGVhZCAqZGlfYmgpCisJCQkJCQkgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRpX2JoLAorCQkJCQkJICAgICAgbG9mZl90IHN0YXJ0X2J5dGUsCisJCQkJCQkgICAgICBsb2ZmX3QgbGVuZ3RoKQogewogCXN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiID0gT0NGUzJfU0IoaW5vZGUtPmlfc2IpOwogCWhhbmRsZV90ICpoYW5kbGUgPSBOVUxMOwpAQCAtNzIyLDcgKzcyNCw3IEBAIHN0YXRpYyBoYW5kbGVfdCAqb2NmczJfemVyb19zdGFydF9vcmRlcmVkX3RyYW5zYWN0aW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCWdvdG8gb3V0OwogCX0KIAotCXJldCA9IG9jZnMyX2piZDJfZmlsZV9pbm9kZShoYW5kbGUsIGlub2RlKTsKKwlyZXQgPSBvY2ZzMl9qYmQyX2lub2RlX2FkZF93cml0ZShoYW5kbGUsIGlub2RlLCBzdGFydF9ieXRlLCBsZW5ndGgpOwogCWlmIChyZXQgPCAwKSB7CiAJCW1sb2dfZXJybm8ocmV0KTsKIAkJZ290byBvdXQ7CkBAIC03NjEsNyArNzYzLDkgQEAgc3RhdGljIGludCBvY2ZzMl93cml0ZV96ZXJvX3BhZ2Uoc3RydWN0IGlub2RlICppbm9kZSwgdTY0IGFic19mcm9tLAogCUJVR19PTihhYnNfdG8gPiAoKCh1NjQpaW5kZXggKyAxKSA8PCBQQUdFX1NISUZUKSk7CiAJQlVHX09OKGFic19mcm9tICYgKGlub2RlLT5pX2Jsa2JpdHMgLSAxKSk7CiAKLQloYW5kbGUgPSBvY2ZzMl96ZXJvX3N0YXJ0X29yZGVyZWRfdHJhbnNhY3Rpb24oaW5vZGUsIGRpX2JoKTsKKwloYW5kbGUgPSBvY2ZzMl96ZXJvX3N0YXJ0X29yZGVyZWRfdHJhbnNhY3Rpb24oaW5vZGUsIGRpX2JoLAorCQkJCQkJICAgICAgYWJzX2Zyb20sCisJCQkJCQkgICAgICBhYnNfdG8gLSBhYnNfZnJvbSk7CiAJaWYgKElTX0VSUihoYW5kbGUpKSB7CiAJCXJldCA9IFBUUl9FUlIoaGFuZGxlKTsKIAkJZ290byBvdXQ7CkBAIC0yMTI2LDcgKzIxMzAsNiBAQCBzdGF0aWMgaW50IG9jZnMyX3ByZXBhcmVfaW5vZGVfZm9yX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRfaW5vZGUoZGVudHJ5KTsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRpX2JoID0gTlVMTDsKLQlsb2ZmX3QgZW5kOwogCiAJLyoKIAkgKiBXZSBzdGFydCB3aXRoIGEgcmVhZCBsZXZlbCBtZXRhIGxvY2sgYW5kIG9ubHkganVtcCB0byBhbiBleApAQCAtMjE5MCw4ICsyMTkzLDYgQEAgc3RhdGljIGludCBvY2ZzMl9wcmVwYXJlX2lub2RlX2Zvcl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJCX0KIAkJfQogCi0JCWVuZCA9IHBvcyArIGNvdW50OwotCiAJCXJldCA9IG9jZnMyX2NoZWNrX3JhbmdlX2Zvcl9yZWZjb3VudChpbm9kZSwgcG9zLCBjb3VudCk7CiAJCWlmIChyZXQgPT0gMSkgewogCQkJb2NmczJfaW5vZGVfdW5sb2NrKGlub2RlLCBtZXRhX2xldmVsKTsKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2lub2RlLmMgYi9mcy9vY2ZzMi9pbm9kZS5jCmluZGV4IDdhZDlkNjUuLjdjOWRmZDUgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2lub2RlLmMKKysrIGIvZnMvb2NmczIvaW5vZGUuYwpAQCAtNTM0LDcgKzUzNCw3IEBAIHN0YXRpYyBpbnQgb2NmczJfcmVhZF9sb2NrZWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwKIAkgKi8KIAltbG9nX2J1Z19vbl9tc2coISEoZmUtPmlfZmxhZ3MgJiBjcHVfdG9fbGUzMihPQ0ZTMl9TWVNURU1fRkwpKSAhPQogCQkJISEoYXJncy0+ZmlfZmxhZ3MgJiBPQ0ZTMl9GSV9GTEFHX1NZU0ZJTEUpLAotCQkJIklub2RlICVsbHU6IHN5c3RlbSBmaWxlIHN0YXRlIGlzIGFtYmlnb3VzXG4iLAorCQkJIklub2RlICVsbHU6IHN5c3RlbSBmaWxlIHN0YXRlIGlzIGFtYmlndW91c1xuIiwKIAkJCSh1bnNpZ25lZCBsb25nIGxvbmcpYXJncy0+ZmlfYmxrbm8pOwogCiAJaWYgKFNfSVNDSFIobGUxNl90b19jcHUoZmUtPmlfbW9kZSkpIHx8CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9qb3VybmFsLmggYi9mcy9vY2ZzMi9qb3VybmFsLmgKaW5kZXggYzBmZTZlZC4uMzEwM2JhNyAxMDA2NDQKLS0tIGEvZnMvb2NmczIvam91cm5hbC5oCisrKyBiL2ZzL29jZnMyL2pvdXJuYWwuaApAQCAtMTQ0LDcgKzE0NCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBvY2ZzMl9jaV9zZXRfbmV3KHN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiLAogdm9pZCBvY2ZzMl9vcnBoYW5fc2Nhbl9pbml0KHN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiKTsKIHZvaWQgb2NmczJfb3JwaGFuX3NjYW5fc3RhcnQoc3RydWN0IG9jZnMyX3N1cGVyICpvc2IpOwogdm9pZCBvY2ZzMl9vcnBoYW5fc2Nhbl9zdG9wKHN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiKTsKLXZvaWQgb2NmczJfb3JwaGFuX3NjYW5fZXhpdChzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYik7CiAKIHZvaWQgb2NmczJfY29tcGxldGVfcmVjb3Zlcnkoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKIHZvaWQgb2NmczJfd2FpdF9mb3JfcmVjb3Zlcnkoc3RydWN0IG9jZnMyX3N1cGVyICpvc2IpOwpAQCAtMjMyLDggKzIzMSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBvY2ZzMl9jaGVja3BvaW50X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgb2NmczJfam91cm5hbF9hY2Nlc3NfKigpIHVubGVzcyB5b3UgaW50ZW5kIHRvCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlIHRoZSBjaGVja3N1bSBieSBoYW5kLgogICogIG9jZnMyX2pvdXJuYWxfZGlydHkgICAgLSBNYXJrIGEgam91cm5hbGxlZCBidWZmZXIgYXMgaGF2aW5nIGRpcnR5IGRhdGEuCi0gKiAgb2NmczJfamJkMl9maWxlX2lub2RlICAtIE1hcmsgYW4gaW5vZGUgc28gdGhhdCBpdHMgZGF0YSBnb2VzIG91dCBiZWZvcmUKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGN1cnJlbnQgaGFuZGxlIGNvbW1pdHMuCisgKiAgb2NmczJfamJkMl9pbm9kZV9hZGRfd3JpdGUgIC0gTWFyayBhbiBpbm9kZSB3aXRoIHJhbmdlIHNvIHRoYXQgaXRzIGRhdGEgZ29lcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBiZWZvcmUgdGhlIGN1cnJlbnQgaGFuZGxlIGNvbW1pdHMuCiAgKi8KIAogLyogWW91IG11c3QgYWx3YXlzIHN0YXJ0X3RyYW5zIHdpdGggYSBudW1iZXIgb2YgYnVmZnMgPiAwLCBidXQgaXQncwpAQCAtNDQxLDcgKzQ0MCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IG9jZnMyX21rbm9kX2NyZWRpdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IGlzX2RpciwKICAqIHByZXZpb3VzIGRpcmJsb2NrIHVwZGF0ZSBpbiB0aGUgZnJlZSBsaXN0ICovCiBzdGF0aWMgaW5saW5lIGludCBvY2ZzMl9saW5rX2NyZWRpdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKLQlyZXR1cm4gMipPQ0ZTMl9JTk9ERV9VUERBVEVfQ1JFRElUUyArIDQgKworCXJldHVybiAyICogT0NGUzJfSU5PREVfVVBEQVRFX0NSRURJVFMgKyA0ICsKIAkgICAgICAgb2NmczJfcXVvdGFfdHJhbnNfY3JlZGl0cyhzYik7CiB9CiAKQEAgLTU3NSwzNyArNTc0LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IG9jZnMyX2NhbGNfYmdfZGlzY29udGlnX2NyZWRpdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlyZXR1cm4gb2NmczJfZXh0ZW50X3JlY3NfcGVyX2dkKHNiKTsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgb2NmczJfY2FsY190cmVlX3RydW5jX2NyZWRpdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKLQkJCQkJCXVuc2lnbmVkIGludCBjbHVzdGVyc190b19kZWwsCi0JCQkJCQlzdHJ1Y3Qgb2NmczJfZGlub2RlICpmZSwKLQkJCQkJCXN0cnVjdCBvY2ZzMl9leHRlbnRfbGlzdCAqbGFzdF9lbCkKK3N0YXRpYyBpbmxpbmUgaW50IG9jZnMyX2piZDJfaW5vZGVfYWRkX3dyaXRlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJCSAgICAgbG9mZl90IHN0YXJ0X2J5dGUsIGxvZmZfdCBsZW5ndGgpCiB7Ci0gCS8qIGZvciBkaW5vZGUgKyBhbGwgaGVhZGVycyBpbiB0aGlzIHBhc3MgKyB1cGRhdGUgdG8gbmV4dCBsZWFmICovCi0JdTE2IG5leHRfZnJlZSA9IGxlMTZfdG9fY3B1KGxhc3RfZWwtPmxfbmV4dF9mcmVlX3JlYyk7Ci0JdTE2IHRyZWVfZGVwdGggPSBsZTE2X3RvX2NwdShmZS0+aWQyLmlfbGlzdC5sX3RyZWVfZGVwdGgpOwotCWludCBjcmVkaXRzID0gMSArIHRyZWVfZGVwdGggKyAxOwotCWludCBpOwotCi0JaSA9IG5leHRfZnJlZSAtIDE7Ci0JQlVHX09OKGkgPCAwKTsKLQotCS8qIFdlIG1heSBiZSBkZWxldGluZyBtZXRhZGF0YSBibG9ja3MsIHNvIG1ldGFkYXRhIGFsbG9jIGRpbm9kZSArCi0JICAgb25lIGRlc2MuIGJsb2NrIGZvciBlYWNoIHBvc3NpYmxlIGRlbGV0ZS4gKi8KLQlpZiAodHJlZV9kZXB0aCAmJiBuZXh0X2ZyZWUgPT0gMSAmJgotCSAgICBvY2ZzMl9yZWNfY2x1c3RlcnMobGFzdF9lbCwgJmxhc3RfZWwtPmxfcmVjc1tpXSkgPT0gY2x1c3RlcnNfdG9fZGVsKQotCQljcmVkaXRzICs9IDEgKyB0cmVlX2RlcHRoOwotCi0JLyogdXBkYXRlIHRvIHRoZSB0cnVuY2F0ZSBsb2cuICovCi0JY3JlZGl0cyArPSBPQ0ZTMl9UUlVOQ0FURV9MT0dfVVBEQVRFOwotCi0JY3JlZGl0cyArPSBvY2ZzMl9xdW90YV90cmFuc19jcmVkaXRzKHNiKTsKLQotCXJldHVybiBjcmVkaXRzOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBvY2ZzMl9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSkKLXsKLQlyZXR1cm4gamJkMl9qb3VybmFsX2lub2RlX2FkZF93cml0ZShoYW5kbGUsICZPQ0ZTMl9JKGlub2RlKS0+aXBfamlub2RlKTsKKwlyZXR1cm4gamJkMl9qb3VybmFsX2lub2RlX3JhbmdlZF93cml0ZShoYW5kbGUsCisJCQkJCSAgICAgICAmT0NGUzJfSShpbm9kZSktPmlwX2ppbm9kZSwKKwkJCQkJICAgICAgIHN0YXJ0X2J5dGUsIGxlbmd0aCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IG9jZnMyX2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL25hbWVpLmMgYi9mcy9vY2ZzMi9uYW1laS5jCmluZGV4IDZmOGUxYzQuLjhlYTUxY2YgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL25hbWVpLmMKKysrIGIvZnMvb2NmczIvbmFtZWkuYwpAQCAtMjQ4Niw3ICsyNDg2LDYgQEAgaW50IG9jZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4oc3RydWN0IGlub2RlICpkaXIsCiAJc3RydWN0IGlub2RlICppbm9kZSA9IE5VTEw7CiAJc3RydWN0IGlub2RlICpvcnBoYW5fZGlyID0gTlVMTDsKIAlzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYiA9IE9DRlMyX1NCKGRpci0+aV9zYik7Ci0Jc3RydWN0IG9jZnMyX2Rpbm9kZSAqZGkgPSBOVUxMOwogCWhhbmRsZV90ICpoYW5kbGUgPSBOVUxMOwogCWNoYXIgb3JwaGFuX25hbWVbT0NGUzJfT1JQSEFOX05BTUVMRU4gKyAxXTsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKnBhcmVudF9kaV9iaCA9IE5VTEw7CkBAIC0yNTUyLDcgKzI1NTEsNiBAQCBpbnQgb2NmczJfY3JlYXRlX2lub2RlX2luX29ycGhhbihzdHJ1Y3QgaW5vZGUgKmRpciwKIAkJZ290byBsZWF2ZTsKIAl9CiAKLQlkaSA9IChzdHJ1Y3Qgb2NmczJfZGlub2RlICopbmV3X2RpX2JoLT5iX2RhdGE7CiAJc3RhdHVzID0gb2NmczJfb3JwaGFuX2FkZChvc2IsIGhhbmRsZSwgaW5vZGUsIG5ld19kaV9iaCwgb3JwaGFuX25hbWUsCiAJCQkJICAmb3JwaGFuX2luc2VydCwgb3JwaGFuX2RpciwgZmFsc2UpOwogCWlmIChzdGF0dXMgPCAwKSB7CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9vY2ZzMi5oIGIvZnMvb2NmczIvb2NmczIuaAppbmRleCBmZGRiYmQ2Li45MTUwY2ZhIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9vY2ZzMi5oCisrKyBiL2ZzL29jZnMyL29jZnMyLmgKQEAgLTIyMyw4ICsyMjMsNiBAQCBzdHJ1Y3Qgb2NmczJfb3JwaGFuX3NjYW4gewogCiBzdHJ1Y3Qgb2NmczJfZGxtX2RlYnVnIHsKIAlzdHJ1Y3Qga3JlZiBkX3JlZmNudDsKLQlzdHJ1Y3QgZGVudHJ5ICpkX2xvY2tpbmdfc3RhdGU7Ci0Jc3RydWN0IGRlbnRyeSAqZF9sb2NraW5nX2ZpbHRlcjsKIAl1MzIgZF9maWx0ZXJfc2VjczsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGRfbG9ja3Jlc190cmFja2luZzsKIH07CkBAIC00MDEsNyArMzk5LDYgQEAgc3RydWN0IG9jZnMyX3N1cGVyCiAJc3RydWN0IG9jZnMyX2RsbV9kZWJ1ZyAqb3NiX2RsbV9kZWJ1ZzsKIAogCXN0cnVjdCBkZW50cnkgKm9zYl9kZWJ1Z19yb290OwotCXN0cnVjdCBkZW50cnkgKm9zYl9jdHh0OwogCiAJd2FpdF9xdWV1ZV9oZWFkX3QgcmVjb3ZlcnlfZXZlbnQ7CiAKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL3N1cGVyLmMgYi9mcy9vY2ZzMi9zdXBlci5jCmluZGV4IDhiMmYzOTUuLmM4MWU4NmMgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL3N1cGVyLmMKKysrIGIvZnMvb2NmczIvc3VwZXIuYwpAQCAtMTA4MCwxMCArMTA4MCw4IEBAIHN0YXRpYyBpbnQgb2NmczJfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCW9zYi0+b3NiX2RlYnVnX3Jvb3QgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIob3NiLT51dWlkX3N0ciwKIAkJCQkJCSBvY2ZzMl9kZWJ1Z2ZzX3Jvb3QpOwogCi0Jb3NiLT5vc2JfY3R4dCA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImZzX3N0YXRlIiwgU19JRlJFR3xTX0lSVVNSLAotCQkJCQkgICAgb3NiLT5vc2JfZGVidWdfcm9vdCwKLQkJCQkJICAgIG9zYiwKLQkJCQkJICAgICZvY2ZzMl9vc2JfZGVidWdfZm9wcyk7CisJZGVidWdmc19jcmVhdGVfZmlsZSgiZnNfc3RhdGUiLCBTX0lGUkVHfFNfSVJVU1IsIG9zYi0+b3NiX2RlYnVnX3Jvb3QsCisJCQkgICAgb3NiLCAmb2NmczJfb3NiX2RlYnVnX2ZvcHMpOwogCiAJaWYgKG9jZnMyX21ldGFfZWNjKG9zYikpCiAJCW9jZnMyX2Jsb2NrY2hlY2tfc3RhdHNfZGVidWdmc19pbnN0YWxsKCAmb3NiLT5vc2JfZWNjX3N0YXRzLApAQCAtMTg2MSw4ICsxODU5LDYgQEAgc3RhdGljIHZvaWQgb2NmczJfZGlzbW91bnRfdm9sdW1lKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCBtbnRfZXJyKQogCiAJa3NldF91bnJlZ2lzdGVyKG9zYi0+b3NiX2Rldl9rc2V0KTsKIAotCWRlYnVnZnNfcmVtb3ZlKG9zYi0+b3NiX2N0eHQpOwotCiAJLyogT3JwaGFuIHNjYW4gc2hvdWxkIGJlIHN0b3BwZWQgYXMgZWFybHkgYXMgcG9zc2libGUgKi8KIAlvY2ZzMl9vcnBoYW5fc2Nhbl9zdG9wKG9zYik7CiAKQEAgLTE5MTgsNyArMTkxNCw3IEBAIHN0YXRpYyB2b2lkIG9jZnMyX2Rpc21vdW50X3ZvbHVtZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbW50X2VycikKIAkJb2NmczJfZGxtX3NodXRkb3duKG9zYiwgaGFuZ3VwX25lZWRlZCk7CiAKIAlvY2ZzMl9ibG9ja2NoZWNrX3N0YXRzX2RlYnVnZnNfcmVtb3ZlKCZvc2ItPm9zYl9lY2Nfc3RhdHMpOwotCWRlYnVnZnNfcmVtb3ZlKG9zYi0+b3NiX2RlYnVnX3Jvb3QpOworCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShvc2ItPm9zYl9kZWJ1Z19yb290KTsKIAogCWlmIChoYW5ndXBfbmVlZGVkKQogCQlvY2ZzMl9jbHVzdGVyX2hhbmd1cChvc2ItPnV1aWRfc3RyLCBzdHJsZW4ob3NiLT51dWlkX3N0cikpOwpkaWZmIC0tZ2l0IGEvZnMvb21mcy9pbm9kZS5jIGIvZnMvb21mcy9pbm9kZS5jCmluZGV4IDA4MjI2YTguLmI3NmVjNmIgMTAwNjQ0Ci0tLSBhL2ZzL29tZnMvaW5vZGUuYworKysgYi9mcy9vbWZzL2lub2RlLmMKQEAgLTQ3OCw2ICs0NzgsMTAgQEAgc3RhdGljIGludCBvbWZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAogCXNiLT5zX21heGJ5dGVzID0gMHhmZmZmZmZmZjsKIAorCXNiLT5zX3RpbWVfZ3JhbiA9IE5TRUNfUEVSX01TRUM7CisJc2ItPnNfdGltZV9taW4gPSAwOworCXNiLT5zX3RpbWVfbWF4ID0gVTY0X01BWCAvIE1TRUNfUEVSX1NFQzsKKwogCXNiX3NldF9ibG9ja3NpemUoc2IsIDB4MjAwKTsKIAogCWJoID0gc2JfYnJlYWQoc2IsIDApOwpkaWZmIC0tZ2l0IGEvZnMvb3Blbi5jIGIvZnMvb3Blbi5jCmluZGV4IGE1OWFiZTMuLmI2MmY1YzAgMTAwNjQ0Ci0tLSBhL2ZzL29wZW4uYworKysgYi9mcy9vcGVuLmMKQEAgLTc3Niw3ICs3NzYsNyBAQCBzdGF0aWMgaW50IGRvX2RlbnRyeV9vcGVuKHN0cnVjdCBmaWxlICpmLAogCQlmLT5mX21vZGUgfD0gRk1PREVfQVRPTUlDX1BPUzsKIAogCWYtPmZfb3AgPSBmb3BzX2dldChpbm9kZS0+aV9mb3ApOwotCWlmICh1bmxpa2VseShXQVJOX09OKCFmLT5mX29wKSkpIHsKKwlpZiAoV0FSTl9PTighZi0+Zl9vcCkpIHsKIAkJZXJyb3IgPSAtRU5PREVWOwogCQlnb3RvIGNsZWFudXBfYWxsOwogCX0KQEAgLTgxOCw2ICs4MTgsMTQgQEAgc3RhdGljIGludCBkb19kZW50cnlfb3BlbihzdHJ1Y3QgZmlsZSAqZiwKIAkJaWYgKCFmLT5mX21hcHBpbmctPmFfb3BzIHx8ICFmLT5mX21hcHBpbmctPmFfb3BzLT5kaXJlY3RfSU8pCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAl9CisKKwkvKgorCSAqIFhYWDogSHVnZSBwYWdlIGNhY2hlIGRvZXNuJ3Qgc3VwcG9ydCB3cml0aW5nIHlldC4gRHJvcCBhbGwgcGFnZQorCSAqIGNhY2hlIGZvciB0aGlzIGZpbGUgYmVmb3JlIHByb2Nlc3Npbmcgd3JpdGVzLgorCSAqLworCWlmICgoZi0+Zl9tb2RlICYgRk1PREVfV1JJVEUpICYmIGZpbGVtYXBfbnJfdGhwcyhpbm9kZS0+aV9tYXBwaW5nKSkKKwkJdHJ1bmNhdGVfcGFnZWNhY2hlKGlub2RlLCAwKTsKKwogCXJldHVybiAwOwogCiBjbGVhbnVwX2FsbDoKZGlmZiAtLWdpdCBhL2ZzL29yYW5nZWZzL2lub2RlLmMgYi9mcy9vcmFuZ2Vmcy9pbm9kZS5jCmluZGV4IDBjMzM3ZDguLmVmYjEyMTkgMTAwNjQ0Ci0tLSBhL2ZzL29yYW5nZWZzL2lub2RlLmMKKysrIGIvZnMvb3JhbmdlZnMvaW5vZGUuYwpAQCAtOTQwLDcgKzk0MCw3IEBAIGludCBvcmFuZ2Vmc19zZXRhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICppYXR0cikKIGludCBvcmFuZ2Vmc19nZXRhdHRyKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLCBzdHJ1Y3Qga3N0YXQgKnN0YXQsCiAJCSAgICAgdTMyIHJlcXVlc3RfbWFzaywgdW5zaWduZWQgaW50IGZsYWdzKQogewotCWludCByZXQgPSAtRU5PRU5UOworCWludCByZXQ7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IHBhdGgtPmRlbnRyeS0+ZF9pbm9kZTsKIAogCWdvc3NpcF9kZWJ1ZyhHT1NTSVBfSU5PREVfREVCVUcsCmRpZmYgLS1naXQgYS9mcy9vcmFuZ2Vmcy9uYW1laS5jIGIvZnMvb3JhbmdlZnMvbmFtZWkuYwppbmRleCAxZGQ3MTBlLi4zZTdjZjNkIDEwMDY0NAotLS0gYS9mcy9vcmFuZ2Vmcy9uYW1laS5jCisrKyBiL2ZzL29yYW5nZWZzL25hbWVpLmMKQEAgLTIyNCw3ICsyMjQsNyBAQCBzdGF0aWMgaW50IG9yYW5nZWZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkaXIsCiAJc3RydWN0IG9yYW5nZWZzX29iamVjdF9rcmVmIHJlZjsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCXN0cnVjdCBpYXR0ciBpYXR0cjsKLQlpbnQgbW9kZSA9IDc1NTsKKwlpbnQgbW9kZSA9IDA3NTU7CiAJaW50IHJldDsKIAogCWdvc3NpcF9kZWJ1ZyhHT1NTSVBfTkFNRV9ERUJVRywgIiVzOiBjYWxsZWRcbiIsIF9fZnVuY19fKTsKZGlmZiAtLWdpdCBhL2ZzL3Byb2Mva2NvcmUuYyBiL2ZzL3Byb2Mva2NvcmUuYwppbmRleCBmNTgzNDQ4Li5lMmVkOGUwIDEwMDY0NAotLS0gYS9mcy9wcm9jL2tjb3JlLmMKKysrIGIvZnMvcHJvYy9rY29yZS5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvbWVtb3J5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQvdGFzay5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKIApAQCAtNTQ1LDkgKzU0NiwxNCBAQCByZWFkX2tjb3JlKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgYnVmbGVuLCBsb2ZmX3QgKmZwb3MpCiAKIHN0YXRpYyBpbnQgb3Blbl9rY29yZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKKwlpbnQgcmV0ID0gc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fS0NPUkUpOworCiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfUkFXSU8pKQogCQlyZXR1cm4gLUVQRVJNOwogCisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwogCWZpbHAtPnByaXZhdGVfZGF0YSA9IGttYWxsb2MoUEFHRV9TSVpFLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWZpbHAtPnByaXZhdGVfZGF0YSkKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9mcy9wcm9jL21lbWluZm8uYyBiL2ZzL3Byb2MvbWVtaW5mby5jCmluZGV4IDQ2NWVhMDEuLmFjOTI0NzMgMTAwNjQ0Ci0tLSBhL2ZzL3Byb2MvbWVtaW5mby5jCisrKyBiL2ZzL3Byb2MvbWVtaW5mby5jCkBAIC04LDcgKzgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KLSNpbmNsdWRlIDxsaW51eC9xdWlja2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KICNpbmNsdWRlIDxsaW51eC92bXN0YXQuaD4KQEAgLTEwNiw5ICsxMDUsNiBAQCBzdGF0aWMgaW50IG1lbWluZm9fcHJvY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKIAkJICAgZ2xvYmFsX3pvbmVfcGFnZV9zdGF0ZShOUl9LRVJORUxfU1RBQ0tfS0IpKTsKIAlzaG93X3ZhbF9rYihtLCAiUGFnZVRhYmxlczogICAgICIsCiAJCSAgICBnbG9iYWxfem9uZV9wYWdlX3N0YXRlKE5SX1BBR0VUQUJMRSkpOwotI2lmZGVmIENPTkZJR19RVUlDS0xJU1QKLQlzaG93X3ZhbF9rYihtLCAiUXVpY2tsaXN0czogICAgICIsIHF1aWNrbGlzdF90b3RhbF9zaXplKCkpOwotI2VuZGlmCiAKIAlzaG93X3ZhbF9rYihtLCAiTkZTX1Vuc3RhYmxlOiAgICIsCiAJCSAgICBnbG9iYWxfbm9kZV9wYWdlX3N0YXRlKE5SX1VOU1RBQkxFX05GUykpOwpAQCAtMTM2LDYgKzEzMiwxMCBAQCBzdGF0aWMgaW50IG1lbWluZm9fcHJvY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKIAkJICAgIGdsb2JhbF9ub2RlX3BhZ2Vfc3RhdGUoTlJfU0hNRU1fVEhQUykgKiBIUEFHRV9QTURfTlIpOwogCXNob3dfdmFsX2tiKG0sICJTaG1lbVBtZE1hcHBlZDogIiwKIAkJICAgIGdsb2JhbF9ub2RlX3BhZ2Vfc3RhdGUoTlJfU0hNRU1fUE1ETUFQUEVEKSAqIEhQQUdFX1BNRF9OUik7CisJc2hvd192YWxfa2IobSwgIkZpbGVIdWdlUGFnZXM6ICIsCisJCSAgICBnbG9iYWxfbm9kZV9wYWdlX3N0YXRlKE5SX0ZJTEVfVEhQUykgKiBIUEFHRV9QTURfTlIpOworCXNob3dfdmFsX2tiKG0sICJGaWxlUG1kTWFwcGVkOiAiLAorCQkgICAgZ2xvYmFsX25vZGVfcGFnZV9zdGF0ZShOUl9GSUxFX1BNRE1BUFBFRCkgKiBIUEFHRV9QTURfTlIpOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfQ01BCmRpZmYgLS1naXQgYS9mcy9wcm9jL3Rhc2tfbW11LmMgYi9mcy9wcm9jL3Rhc2tfbW11LmMKaW5kZXggNzMxNjQyZS4uOTQ0MjYzMSAxMDA2NDQKLS0tIGEvZnMvcHJvYy90YXNrX21tdS5jCisrKyBiL2ZzL3Byb2MvdGFza19tbXUuYwpAQCAtMSw1ICsxLDUgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0jaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wYWdld2Fsay5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWNhY2hlLmg+CiAjaW5jbHVkZSA8bGludXgvaHVnZXRsYi5oPgogI2luY2x1ZGUgPGxpbnV4L2h1Z2VfbW0uaD4KQEAgLTQxNyw2ICs0MTcsNyBAQCBzdHJ1Y3QgbWVtX3NpemVfc3RhdHMgewogCXVuc2lnbmVkIGxvbmcgbGF6eWZyZWU7CiAJdW5zaWduZWQgbG9uZyBhbm9ueW1vdXNfdGhwOwogCXVuc2lnbmVkIGxvbmcgc2htZW1fdGhwOworCXVuc2lnbmVkIGxvbmcgZmlsZV90aHA7CiAJdW5zaWduZWQgbG9uZyBzd2FwOwogCXVuc2lnbmVkIGxvbmcgc2hhcmVkX2h1Z2V0bGI7CiAJdW5zaWduZWQgbG9uZyBwcml2YXRlX2h1Z2V0bGI7CkBAIC00NjEsNyArNDYyLDcgQEAgc3RhdGljIHZvaWQgc21hcHNfcGFnZV9hY2N1bXVsYXRlKHN0cnVjdCBtZW1fc2l6ZV9zdGF0cyAqbXNzLAogc3RhdGljIHZvaWQgc21hcHNfYWNjb3VudChzdHJ1Y3QgbWVtX3NpemVfc3RhdHMgKm1zcywgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJCWJvb2wgY29tcG91bmQsIGJvb2wgeW91bmcsIGJvb2wgZGlydHksIGJvb2wgbG9ja2VkKQogewotCWludCBpLCBuciA9IGNvbXBvdW5kID8gMSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKSA6IDE7CisJaW50IGksIG5yID0gY29tcG91bmQgPyBjb21wb3VuZF9ucihwYWdlKSA6IDE7CiAJdW5zaWduZWQgbG9uZyBzaXplID0gbnIgKiBQQUdFX1NJWkU7CiAKIAkvKgpAQCAtNTEzLDcgKzUxNCw5IEBAIHN0YXRpYyBpbnQgc21hcHNfcHRlX2hvbGUodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKIAogCXJldHVybiAwOwogfQotI2VuZGlmCisjZWxzZQorI2RlZmluZSBzbWFwc19wdGVfaG9sZQkJTlVMTAorI2VuZGlmIC8qIENPTkZJR19TSE1FTSAqLwogCiBzdGF0aWMgdm9pZCBzbWFwc19wdGVfZW50cnkocHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQlzdHJ1Y3QgbW1fd2FsayAqd2FsaykKQEAgLTU4Niw3ICs1ODksNyBAQCBzdGF0aWMgdm9pZCBzbWFwc19wbWRfZW50cnkocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCWVsc2UgaWYgKGlzX3pvbmVfZGV2aWNlX3BhZ2UocGFnZSkpCiAJCS8qIHBhc3MgKi87CiAJZWxzZQotCQlWTV9CVUdfT05fUEFHRSgxLCBwYWdlKTsKKwkJbXNzLT5maWxlX3RocCArPSBIUEFHRV9QTURfU0laRTsKIAlzbWFwc19hY2NvdW50KG1zcywgcGFnZSwgdHJ1ZSwgcG1kX3lvdW5nKCpwbWQpLCBwbWRfZGlydHkoKnBtZCksIGxvY2tlZCk7CiB9CiAjZWxzZQpAQCAtNzI5LDIxICs3MzIsMjQgQEAgc3RhdGljIGludCBzbWFwc19odWdldGxiX3JhbmdlKHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgaG1hc2ssCiAJfQogCXJldHVybiAwOwogfQorI2Vsc2UKKyNkZWZpbmUgc21hcHNfaHVnZXRsYl9yYW5nZQlOVUxMCiAjZW5kaWYgLyogSFVHRVRMQl9QQUdFICovCiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgc21hcHNfd2Fsa19vcHMgPSB7CisJLnBtZF9lbnRyeQkJPSBzbWFwc19wdGVfcmFuZ2UsCisJLmh1Z2V0bGJfZW50cnkJCT0gc21hcHNfaHVnZXRsYl9yYW5nZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgc21hcHNfc2htZW1fd2Fsa19vcHMgPSB7CisJLnBtZF9lbnRyeQkJPSBzbWFwc19wdGVfcmFuZ2UsCisJLmh1Z2V0bGJfZW50cnkJCT0gc21hcHNfaHVnZXRsYl9yYW5nZSwKKwkucHRlX2hvbGUJCT0gc21hcHNfcHRlX2hvbGUsCit9OworCiBzdGF0aWMgdm9pZCBzbWFwX2dhdGhlcl9zdGF0cyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCSAgICAgc3RydWN0IG1lbV9zaXplX3N0YXRzICptc3MpCiB7Ci0Jc3RydWN0IG1tX3dhbGsgc21hcHNfd2FsayA9IHsKLQkJLnBtZF9lbnRyeSA9IHNtYXBzX3B0ZV9yYW5nZSwKLSNpZmRlZiBDT05GSUdfSFVHRVRMQl9QQUdFCi0JCS5odWdldGxiX2VudHJ5ID0gc21hcHNfaHVnZXRsYl9yYW5nZSwKLSNlbmRpZgotCQkubW0gPSB2bWEtPnZtX21tLAotCX07Ci0KLQlzbWFwc193YWxrLnByaXZhdGUgPSBtc3M7Ci0KICNpZmRlZiBDT05GSUdfU0hNRU0KIAkvKiBJbiBjYXNlIG9mIHNtYXBzX3JvbGx1cCwgcmVzZXQgdGhlIHZhbHVlIGZyb20gcHJldmlvdXMgdm1hICovCiAJbXNzLT5jaGVja19zaG1lbV9zd2FwID0gZmFsc2U7CkBAIC03NjUsMTIgKzc3MSwxMyBAQCBzdGF0aWMgdm9pZCBzbWFwX2dhdGhlcl9zdGF0cyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCW1zcy0+c3dhcCArPSBzaG1lbV9zd2FwcGVkOwogCQl9IGVsc2UgewogCQkJbXNzLT5jaGVja19zaG1lbV9zd2FwID0gdHJ1ZTsKLQkJCXNtYXBzX3dhbGsucHRlX2hvbGUgPSBzbWFwc19wdGVfaG9sZTsKKwkJCXdhbGtfcGFnZV92bWEodm1hLCAmc21hcHNfc2htZW1fd2Fsa19vcHMsIG1zcyk7CisJCQlyZXR1cm47CiAJCX0KIAl9CiAjZW5kaWYKIAkvKiBtbWFwX3NlbSBpcyBoZWxkIGluIG1fc3RhcnQgKi8KLQl3YWxrX3BhZ2Vfdm1hKHZtYSwgJnNtYXBzX3dhbGspOworCXdhbGtfcGFnZV92bWEodm1hLCAmc21hcHNfd2Fsa19vcHMsIG1zcyk7CiB9CiAKICNkZWZpbmUgU0VRX1BVVF9ERUMoc3RyLCB2YWwpIFwKQEAgLTgwMyw2ICs4MTAsNyBAQCBzdGF0aWMgdm9pZCBfX3Nob3dfc21hcChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IHN0cnVjdCBtZW1fc2l6ZV9zdGF0cyAqbXNzLAogCVNFUV9QVVRfREVDKCIga0JcbkxhenlGcmVlOiAgICAgICAiLCBtc3MtPmxhenlmcmVlKTsKIAlTRVFfUFVUX0RFQygiIGtCXG5Bbm9uSHVnZVBhZ2VzOiAgIiwgbXNzLT5hbm9ueW1vdXNfdGhwKTsKIAlTRVFfUFVUX0RFQygiIGtCXG5TaG1lbVBtZE1hcHBlZDogIiwgbXNzLT5zaG1lbV90aHApOworCVNFUV9QVVRfREVDKCIga0JcbkZpbGVQbWRNYXBwZWQ6ICIsIG1zcy0+ZmlsZV90aHApOwogCVNFUV9QVVRfREVDKCIga0JcblNoYXJlZF9IdWdldGxiOiAiLCBtc3MtPnNoYXJlZF9odWdldGxiKTsKIAlzZXFfcHV0X2RlY2ltYWxfdWxsX3dpZHRoKG0sICIga0JcblByaXZhdGVfSHVnZXRsYjogIiwKIAkJCQkgIG1zcy0+cHJpdmF0ZV9odWdldGxiID4+IDEwLCA3KTsKQEAgLTExMTgsNiArMTEyNiwxMSBAQCBzdGF0aWMgaW50IGNsZWFyX3JlZnNfdGVzdF93YWxrKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzIGNsZWFyX3JlZnNfd2Fsa19vcHMgPSB7CisJLnBtZF9lbnRyeQkJPSBjbGVhcl9yZWZzX3B0ZV9yYW5nZSwKKwkudGVzdF93YWxrCQk9IGNsZWFyX3JlZnNfdGVzdF93YWxrLAorfTsKKwogc3RhdGljIHNzaXplX3QgY2xlYXJfcmVmc193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJCQlzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKIHsKQEAgLTExNTEsMTIgKzExNjQsNiBAQCBzdGF0aWMgc3NpemVfdCBjbGVhcl9yZWZzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAogCQlzdHJ1Y3QgY2xlYXJfcmVmc19wcml2YXRlIGNwID0gewogCQkJLnR5cGUgPSB0eXBlLAogCQl9OwotCQlzdHJ1Y3QgbW1fd2FsayBjbGVhcl9yZWZzX3dhbGsgPSB7Ci0JCQkucG1kX2VudHJ5ID0gY2xlYXJfcmVmc19wdGVfcmFuZ2UsCi0JCQkudGVzdF93YWxrID0gY2xlYXJfcmVmc190ZXN0X3dhbGssCi0JCQkubW0gPSBtbSwKLQkJCS5wcml2YXRlID0gJmNwLAotCQl9OwogCiAJCWlmICh0eXBlID09IENMRUFSX1JFRlNfTU1fSElXQVRFUl9SU1MpIHsKIAkJCWlmIChkb3duX3dyaXRlX2tpbGxhYmxlKCZtbS0+bW1hcF9zZW0pKSB7CkBAIC0xMjE3LDcgKzEyMjQsOCBAQCBzdGF0aWMgc3NpemVfdCBjbGVhcl9yZWZzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAogCQkJCQkJMCwgTlVMTCwgbW0sIDAsIC0xVUwpOwogCQkJbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoJnJhbmdlKTsKIAkJfQotCQl3YWxrX3BhZ2VfcmFuZ2UoMCwgbW0tPmhpZ2hlc3Rfdm1fZW5kLCAmY2xlYXJfcmVmc193YWxrKTsKKwkJd2Fsa19wYWdlX3JhbmdlKG1tLCAwLCBtbS0+aGlnaGVzdF92bV9lbmQsICZjbGVhcl9yZWZzX3dhbGtfb3BzLAorCQkJCSZjcCk7CiAJCWlmICh0eXBlID09IENMRUFSX1JFRlNfU09GVF9ESVJUWSkKIAkJCW1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX2VuZCgmcmFuZ2UpOwogCQl0bGJfZmluaXNoX21tdSgmdGxiLCAwLCAtMSk7CkBAIC0xNDg5LDggKzE0OTcsMTYgQEAgc3RhdGljIGludCBwYWdlbWFwX2h1Z2V0bGJfcmFuZ2UocHRlX3QgKnB0ZXAsIHVuc2lnbmVkIGxvbmcgaG1hc2ssCiAKIAlyZXR1cm4gZXJyOwogfQorI2Vsc2UKKyNkZWZpbmUgcGFnZW1hcF9odWdldGxiX3JhbmdlCU5VTEwKICNlbmRpZiAvKiBIVUdFVExCX1BBR0UgKi8KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBwYWdlbWFwX29wcyA9IHsKKwkucG1kX2VudHJ5CT0gcGFnZW1hcF9wbWRfcmFuZ2UsCisJLnB0ZV9ob2xlCT0gcGFnZW1hcF9wdGVfaG9sZSwKKwkuaHVnZXRsYl9lbnRyeQk9IHBhZ2VtYXBfaHVnZXRsYl9yYW5nZSwKK307CisKIC8qCiAgKiAvcHJvYy9waWQvcGFnZW1hcCAtIGFuIGFycmF5IG1hcHBpbmcgdmlydHVhbCBwYWdlcyB0byBwZm5zCiAgKgpAQCAtMTUyMiw3ICsxNTM4LDYgQEAgc3RhdGljIHNzaXplX3QgcGFnZW1hcF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLAogewogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBwYWdlbWFwcmVhZCBwbTsKLQlzdHJ1Y3QgbW1fd2FsayBwYWdlbWFwX3dhbGsgPSB7fTsKIAl1bnNpZ25lZCBsb25nIHNyYzsKIAl1bnNpZ25lZCBsb25nIHN2cGZuOwogCXVuc2lnbmVkIGxvbmcgc3RhcnRfdmFkZHI7CkBAIC0xNTUwLDE0ICsxNTY1LDYgQEAgc3RhdGljIHNzaXplX3QgcGFnZW1hcF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLAogCWlmICghcG0uYnVmZmVyKQogCQlnb3RvIG91dF9tbTsKIAotCXBhZ2VtYXBfd2Fsay5wbWRfZW50cnkgPSBwYWdlbWFwX3BtZF9yYW5nZTsKLQlwYWdlbWFwX3dhbGsucHRlX2hvbGUgPSBwYWdlbWFwX3B0ZV9ob2xlOwotI2lmZGVmIENPTkZJR19IVUdFVExCX1BBR0UKLQlwYWdlbWFwX3dhbGsuaHVnZXRsYl9lbnRyeSA9IHBhZ2VtYXBfaHVnZXRsYl9yYW5nZTsKLSNlbmRpZgotCXBhZ2VtYXBfd2Fsay5tbSA9IG1tOwotCXBhZ2VtYXBfd2Fsay5wcml2YXRlID0gJnBtOwotCiAJc3JjID0gKnBwb3M7CiAJc3ZwZm4gPSBzcmMgLyBQTV9FTlRSWV9CWVRFUzsKIAlzdGFydF92YWRkciA9IHN2cGZuIDw8IFBBR0VfU0hJRlQ7CkBAIC0xNTg2LDcgKzE1OTMsNyBAQCBzdGF0aWMgc3NpemVfdCBwYWdlbWFwX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsCiAJCXJldCA9IGRvd25fcmVhZF9raWxsYWJsZSgmbW0tPm1tYXBfc2VtKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gb3V0X2ZyZWU7Ci0JCXJldCA9IHdhbGtfcGFnZV9yYW5nZShzdGFydF92YWRkciwgZW5kLCAmcGFnZW1hcF93YWxrKTsKKwkJcmV0ID0gd2Fsa19wYWdlX3JhbmdlKG1tLCBzdGFydF92YWRkciwgZW5kLCAmcGFnZW1hcF9vcHMsICZwbSk7CiAJCXVwX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAJCXN0YXJ0X3ZhZGRyID0gZW5kOwogCkBAIC0xNzk4LDYgKzE4MDUsMTEgQEAgc3RhdGljIGludCBnYXRoZXJfaHVnZXRsYl9zdGF0cyhwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIGhtYXNrLAogfQogI2VuZGlmCiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgc2hvd19udW1hX29wcyA9IHsKKwkuaHVnZXRsYl9lbnRyeSA9IGdhdGhlcl9odWdldGxiX3N0YXRzLAorCS5wbWRfZW50cnkgPSBnYXRoZXJfcHRlX3N0YXRzLAorfTsKKwogLyoKICAqIERpc3BsYXkgcGFnZXMgYWxsb2NhdGVkIHBlciBub2RlIGFuZCBtZW1vcnkgcG9saWN5IHZpYSAvcHJvYy4KICAqLwpAQCAtMTgwOSwxMiArMTgyMSw2IEBAIHN0YXRpYyBpbnQgc2hvd19udW1hX21hcChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiAJc3RydWN0IG51bWFfbWFwcyAqbWQgPSAmbnVtYV9wcml2LT5tZDsKIAlzdHJ1Y3QgZmlsZSAqZmlsZSA9IHZtYS0+dm1fZmlsZTsKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHZtYS0+dm1fbW07Ci0Jc3RydWN0IG1tX3dhbGsgd2FsayA9IHsKLQkJLmh1Z2V0bGJfZW50cnkgPSBnYXRoZXJfaHVnZXRsYl9zdGF0cywKLQkJLnBtZF9lbnRyeSA9IGdhdGhlcl9wdGVfc3RhdHMsCi0JCS5wcml2YXRlID0gbWQsCi0JCS5tbSA9IG1tLAotCX07CiAJc3RydWN0IG1lbXBvbGljeSAqcG9sOwogCWNoYXIgYnVmZmVyWzY0XTsKIAlpbnQgbmlkOwpAQCAtMTg0OCw3ICsxODU0LDcgQEAgc3RhdGljIGludCBzaG93X251bWFfbWFwKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKIAkJc2VxX3B1dHMobSwgIiBodWdlIik7CiAKIAkvKiBtbWFwX3NlbSBpcyBoZWxkIGJ5IG1fc3RhcnQgKi8KLQl3YWxrX3BhZ2Vfdm1hKHZtYSwgJndhbGspOworCXdhbGtfcGFnZV92bWEodm1hLCAmc2hvd19udW1hX29wcywgbWQpOwogCiAJaWYgKCFtZC0+cGFnZXMpCiAJCWdvdG8gb3V0OwpkaWZmIC0tZ2l0IGEvZnMvcHJvYy92bWNvcmUuYyBiL2ZzL3Byb2Mvdm1jb3JlLmMKaW5kZXggN2JjYzkyYS4uN2IxMzk4OCAxMDA2NDQKLS0tIGEvZnMvcHJvYy92bWNvcmUuYworKysgYi9mcy9wcm9jL3ZtY29yZS5jCkBAIC0xMDQsOSArMTA0LDkgQEAgc3RhdGljIGludCBwZm5faXNfcmFtKHVuc2lnbmVkIGxvbmcgcGZuKQogfQogCiAvKiBSZWFkcyBhIHBhZ2UgZnJvbSB0aGUgb2xkbWVtIGRldmljZSBmcm9tIGdpdmVuIG9mZnNldC4gKi8KLXN0YXRpYyBzc2l6ZV90IHJlYWRfZnJvbV9vbGRtZW0oY2hhciAqYnVmLCBzaXplX3QgY291bnQsCi0JCQkJdTY0ICpwcG9zLCBpbnQgdXNlcmJ1ZiwKLQkJCQlib29sIGVuY3J5cHRlZCkKK3NzaXplX3QgcmVhZF9mcm9tX29sZG1lbShjaGFyICpidWYsIHNpemVfdCBjb3VudCwKKwkJCSB1NjQgKnBwb3MsIGludCB1c2VyYnVmLAorCQkJIGJvb2wgZW5jcnlwdGVkKQogewogCXVuc2lnbmVkIGxvbmcgcGZuLCBvZmZzZXQ7CiAJc2l6ZV90IG5yX2J5dGVzOwpAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgX193ZWFrIGVsZmNvcmVoZHJfZnJlZSh1bnNpZ25lZCBsb25nIGxvbmcgYWRkcikKICAqLwogc3NpemVfdCBfX3dlYWsgZWxmY29yZWhkcl9yZWFkKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCB1NjQgKnBwb3MpCiB7Ci0JcmV0dXJuIHJlYWRfZnJvbV9vbGRtZW0oYnVmLCBjb3VudCwgcHBvcywgMCwgc2V2X2FjdGl2ZSgpKTsKKwlyZXR1cm4gcmVhZF9mcm9tX29sZG1lbShidWYsIGNvdW50LCBwcG9zLCAwLCBmYWxzZSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9mcy9wcm9jX25hbWVzcGFjZS5jIGIvZnMvcHJvY19uYW1lc3BhY2UuYwppbmRleCBlMTZmYjhmLi4yNzNlZTgyIDEwMDY0NAotLS0gYS9mcy9wcm9jX25hbWVzcGFjZS5jCisrKyBiL2ZzL3Byb2NfbmFtZXNwYWNlLmMKQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIG1hbmdsZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKnMpCiBzdGF0aWMgdm9pZCBzaG93X3R5cGUoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogewogCW1hbmdsZShtLCBzYi0+c190eXBlLT5uYW1lKTsKLQlpZiAoc2ItPnNfc3VidHlwZSAmJiBzYi0+c19zdWJ0eXBlWzBdKSB7CisJaWYgKHNiLT5zX3N1YnR5cGUpIHsKIAkJc2VxX3B1dGMobSwgJy4nKTsKIAkJbWFuZ2xlKG0sIHNiLT5zX3N1YnR5cGUpOwogCX0KZGlmZiAtLWdpdCBhL2ZzL3BzdG9yZS9yYW0uYyBiL2ZzL3BzdG9yZS9yYW0uYwppbmRleCAyYmIzNDY4Li44Y2FmZjgzIDEwMDY0NAotLS0gYS9mcy9wc3RvcmUvcmFtLmMKKysrIGIvZnMvcHN0b3JlL3JhbS5jCkBAIC0xNDQsNiArMTQ0LDcgQEAgc3RhdGljIGludCByYW1vb3BzX3JlYWRfa21zZ19oZHIoY2hhciAqYnVmZmVyLCBzdHJ1Y3QgdGltZXNwZWM2NCAqdGltZSwKIAlpZiAoc3NjYW5mKGJ1ZmZlciwgUkFNT09QU19LRVJOTVNHX0hEUiAiJWxsZC4lbHUtJWNcbiVuIiwKIAkJICAgKHRpbWU2NF90ICopJnRpbWUtPnR2X3NlYywgJnRpbWUtPnR2X25zZWMsICZkYXRhX3R5cGUsCiAJCSAgICZoZWFkZXJfbGVuZ3RoKSA9PSAzKSB7CisJCXRpbWUtPnR2X25zZWMgKj0gMTAwMDsKIAkJaWYgKGRhdGFfdHlwZSA9PSAnQycpCiAJCQkqY29tcHJlc3NlZCA9IHRydWU7CiAJCWVsc2UKQEAgLTE1MSw2ICsxNTIsNyBAQCBzdGF0aWMgaW50IHJhbW9vcHNfcmVhZF9rbXNnX2hkcihjaGFyICpidWZmZXIsIHN0cnVjdCB0aW1lc3BlYzY0ICp0aW1lLAogCX0gZWxzZSBpZiAoc3NjYW5mKGJ1ZmZlciwgUkFNT09QU19LRVJOTVNHX0hEUiAiJWxsZC4lbHVcbiVuIiwKIAkJCSAgKHRpbWU2NF90ICopJnRpbWUtPnR2X3NlYywgJnRpbWUtPnR2X25zZWMsCiAJCQkgICZoZWFkZXJfbGVuZ3RoKSA9PSAyKSB7CisJCXRpbWUtPnR2X25zZWMgKj0gMTAwMDsKIAkJKmNvbXByZXNzZWQgPSBmYWxzZTsKIAl9IGVsc2UgewogCQl0aW1lLT50dl9zZWMgPSAwOwpkaWZmIC0tZ2l0IGEvZnMvcW54NC9pbm9kZS5jIGIvZnMvcW54NC9pbm9kZS5jCmluZGV4IDkyMmQwODMuLmU4ZGExY2QgMTAwNjQ0Ci0tLSBhL2ZzL3FueDQvaW5vZGUuYworKysgYi9mcy9xbng0L2lub2RlLmMKQEAgLTIwMSw2ICsyMDEsOCBAQCBzdGF0aWMgaW50IHFueDRfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJcy0+c19vcCA9ICZxbng0X3NvcHM7CiAJcy0+c19tYWdpYyA9IFFOWDRfU1VQRVJfTUFHSUM7CiAJcy0+c19mbGFncyB8PSBTQl9SRE9OTFk7CS8qIFl1cCwgcmVhZC1vbmx5IHlldCAqLworCXMtPnNfdGltZV9taW4gPSAwOworCXMtPnNfdGltZV9tYXggPSBVMzJfTUFYOwogCiAJLyogQ2hlY2sgdGhlIHN1cGVyYmxvY2sgc2lnbmF0dXJlLiBTaW5jZSB0aGUgcW54NCBjb2RlIGlzCiAJICAgZGFuZ2Vyb3VzLCB3ZSBzaG91bGQgbGVhdmUgYXMgcXVpY2tseSBhcyBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvZnMvcW54Ni9pbm9kZS5jIGIvZnMvcW54Ni9pbm9kZS5jCmluZGV4IDBmOGIwZmYuLjM0NWRiNTYgMTAwNjQ0Ci0tLSBhL2ZzL3FueDYvaW5vZGUuYworKysgYi9mcy9xbng2L2lub2RlLmMKQEAgLTQyOSw2ICs0MjksOCBAQCBzdGF0aWMgaW50IHFueDZfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJcy0+c19vcCA9ICZxbng2X3NvcHM7CiAJcy0+c19tYWdpYyA9IFFOWDZfU1VQRVJfTUFHSUM7CiAJcy0+c19mbGFncyB8PSBTQl9SRE9OTFk7ICAgICAgICAvKiBZdXAsIHJlYWQtb25seSB5ZXQgKi8KKwlzLT5zX3RpbWVfbWluID0gMDsKKwlzLT5zX3RpbWVfbWF4ID0gVTMyX01BWDsKIAogCS8qIGVhc2UgdGhlIGxhdGVyIHRyZWUgbGV2ZWwgY2FsY3VsYXRpb25zICovCiAJc2JpID0gUU5YNl9TQihzKTsKZGlmZiAtLWdpdCBhL2ZzL3F1b3RhL2RxdW90LmMgYi9mcy9xdW90YS9kcXVvdC5jCmluZGV4IGJlOWM0NzEuLjZlODI2YjQgMTAwNjQ0Ci0tLSBhL2ZzL3F1b3RhL2RxdW90LmMKKysrIGIvZnMvcXVvdGEvZHF1b3QuYwpAQCAtMjczMSw3ICsyNzMxLDcgQEAgc3RhdGljIGludCBkb19zZXRfZHFibGsoc3RydWN0IGRxdW90ICpkcXVvdCwgc3RydWN0IHFjX2RxYmxrICpkaSkKIAogCWlmIChjaGVja19ibGltKSB7CiAJCWlmICghZG0tPmRxYl9ic29mdGxpbWl0IHx8Ci0JCSAgICBkbS0+ZHFiX2N1cnNwYWNlICsgZG0tPmRxYl9yc3ZzcGFjZSA8IGRtLT5kcWJfYnNvZnRsaW1pdCkgeworCQkgICAgZG0tPmRxYl9jdXJzcGFjZSArIGRtLT5kcWJfcnN2c3BhY2UgPD0gZG0tPmRxYl9ic29mdGxpbWl0KSB7CiAJCQlkbS0+ZHFiX2J0aW1lID0gMDsKIAkJCWNsZWFyX2JpdChEUV9CTEtTX0IsICZkcXVvdC0+ZHFfZmxhZ3MpOwogCQl9IGVsc2UgaWYgKCEoZGktPmRfZmllbGRtYXNrICYgUUNfU1BDX1RJTUVSKSkKQEAgLTI3NDAsNyArMjc0MCw3IEBAIHN0YXRpYyBpbnQgZG9fc2V0X2RxYmxrKHN0cnVjdCBkcXVvdCAqZHF1b3QsIHN0cnVjdCBxY19kcWJsayAqZGkpCiAJfQogCWlmIChjaGVja19pbGltKSB7CiAJCWlmICghZG0tPmRxYl9pc29mdGxpbWl0IHx8Ci0JCSAgICBkbS0+ZHFiX2N1cmlub2RlcyA8IGRtLT5kcWJfaXNvZnRsaW1pdCkgeworCQkgICAgZG0tPmRxYl9jdXJpbm9kZXMgPD0gZG0tPmRxYl9pc29mdGxpbWl0KSB7CiAJCQlkbS0+ZHFiX2l0aW1lID0gMDsKIAkJCWNsZWFyX2JpdChEUV9JTk9ERVNfQiwgJmRxdW90LT5kcV9mbGFncyk7CiAJCX0gZWxzZSBpZiAoIShkaS0+ZF9maWVsZG1hc2sgJiBRQ19JTk9fVElNRVIpKQpkaWZmIC0tZ2l0IGEvZnMvcmFtZnMvaW5vZGUuYyBiL2ZzL3JhbWZzL2lub2RlLmMKaW5kZXggNzMzYzZiNC4uZDgyNjM2ZSAxMDA2NDQKLS0tIGEvZnMvcmFtZnMvaW5vZGUuYworKysgYi9mcy9yYW1mcy9pbm9kZS5jCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8bGludXgvbWFnaWMuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzX2NvbnRleHQuaD4KKyNpbmNsdWRlIDxsaW51eC9mc19wYXJzZXIuaD4KICNpbmNsdWRlICJpbnRlcm5hbC5oIgogCiBzdHJ1Y3QgcmFtZnNfbW91bnRfb3B0cyB7CkBAIC0xNzUsNjIgKzE3Nyw1MiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgcmFtZnNfb3BzID0gewogCS5zaG93X29wdGlvbnMJPSByYW1mc19zaG93X29wdGlvbnMsCiB9OwogCi1lbnVtIHsKK2VudW0gcmFtZnNfcGFyYW0gewogCU9wdF9tb2RlLAotCU9wdF9lcnIKIH07CiAKLXN0YXRpYyBjb25zdCBtYXRjaF90YWJsZV90IHRva2VucyA9IHsKLQl7T3B0X21vZGUsICJtb2RlPSVvIn0sCi0Je09wdF9lcnIsIE5VTEx9CitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX3BhcmFtZXRlcl9zcGVjIHJhbWZzX3BhcmFtX3NwZWNzW10gPSB7CisJZnNwYXJhbV91MzJvY3QoIm1vZGUiLAlPcHRfbW9kZSksCisJe30KIH07CiAKLXN0YXRpYyBpbnQgcmFtZnNfcGFyc2Vfb3B0aW9ucyhjaGFyICpkYXRhLCBzdHJ1Y3QgcmFtZnNfbW91bnRfb3B0cyAqb3B0cykKK2NvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfZGVzY3JpcHRpb24gcmFtZnNfZnNfcGFyYW1ldGVycyA9IHsKKwkubmFtZQkJPSAicmFtZnMiLAorCS5zcGVjcwkJPSByYW1mc19wYXJhbV9zcGVjcywKK307CisKK3N0YXRpYyBpbnQgcmFtZnNfcGFyc2VfcGFyYW0oc3RydWN0IGZzX2NvbnRleHQgKmZjLCBzdHJ1Y3QgZnNfcGFyYW1ldGVyICpwYXJhbSkKIHsKLQlzdWJzdHJpbmdfdCBhcmdzW01BWF9PUFRfQVJHU107Ci0JaW50IG9wdGlvbjsKLQlpbnQgdG9rZW47Ci0JY2hhciAqcDsKKwlzdHJ1Y3QgZnNfcGFyc2VfcmVzdWx0IHJlc3VsdDsKKwlzdHJ1Y3QgcmFtZnNfZnNfaW5mbyAqZnNpID0gZmMtPnNfZnNfaW5mbzsKKwlpbnQgb3B0OwogCi0Jb3B0cy0+bW9kZSA9IFJBTUZTX0RFRkFVTFRfTU9ERTsKLQotCXdoaWxlICgocCA9IHN0cnNlcCgmZGF0YSwgIiwiKSkgIT0gTlVMTCkgewotCQlpZiAoISpwKQotCQkJY29udGludWU7Ci0KLQkJdG9rZW4gPSBtYXRjaF90b2tlbihwLCB0b2tlbnMsIGFyZ3MpOwotCQlzd2l0Y2ggKHRva2VuKSB7Ci0JCWNhc2UgT3B0X21vZGU6Ci0JCQlpZiAobWF0Y2hfb2N0YWwoJmFyZ3NbMF0sICZvcHRpb24pKQotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJb3B0cy0+bW9kZSA9IG9wdGlvbiAmIFNfSUFMTFVHTzsKLQkJCWJyZWFrOworCW9wdCA9IGZzX3BhcnNlKGZjLCAmcmFtZnNfZnNfcGFyYW1ldGVycywgcGFyYW0sICZyZXN1bHQpOworCWlmIChvcHQgPCAwKSB7CiAJCS8qCiAJCSAqIFdlIG1pZ2h0IGxpa2UgdG8gcmVwb3J0IGJhZCBtb3VudCBvcHRpb25zIGhlcmU7CiAJCSAqIGJ1dCB0cmFkaXRpb25hbGx5IHJhbWZzIGhhcyBpZ25vcmVkIGFsbCBtb3VudCBvcHRpb25zLAogCQkgKiBhbmQgYXMgaXQgaXMgdXNlZCBhcyBhICFDT05GSUdfU0hNRU0gc2ltcGxlIHN1YnN0aXR1dGUKIAkJICogZm9yIHRtcGZzLCBiZXR0ZXIgY29udGludWUgdG8gaWdub3JlIG90aGVyIG1vdW50IG9wdGlvbnMuCiAJCSAqLwotCQl9CisJCWlmIChvcHQgPT0gLUVOT1BBUkFNKQorCQkJb3B0ID0gMDsKKwkJcmV0dXJuIG9wdDsKKwl9CisKKwlzd2l0Y2ggKG9wdCkgeworCWNhc2UgT3B0X21vZGU6CisJCWZzaS0+bW91bnRfb3B0cy5tb2RlID0gcmVzdWx0LnVpbnRfMzIgJiBTX0lBTExVR087CisJCWJyZWFrOwogCX0KIAogCXJldHVybiAwOwogfQogCi1pbnQgcmFtZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQorc3RhdGljIGludCByYW1mc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKLQlzdHJ1Y3QgcmFtZnNfZnNfaW5mbyAqZnNpOworCXN0cnVjdCByYW1mc19mc19pbmZvICpmc2kgPSBzYi0+c19mc19pbmZvOwogCXN0cnVjdCBpbm9kZSAqaW5vZGU7Ci0JaW50IGVycjsKLQotCWZzaSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCByYW1mc19mc19pbmZvKSwgR0ZQX0tFUk5FTCk7Ci0Jc2ItPnNfZnNfaW5mbyA9IGZzaTsKLQlpZiAoIWZzaSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQllcnIgPSByYW1mc19wYXJzZV9vcHRpb25zKGRhdGEsICZmc2ktPm1vdW50X29wdHMpOwotCWlmIChlcnIpCi0JCXJldHVybiBlcnI7CiAKIAlzYi0+c19tYXhieXRlcwkJPSBNQVhfTEZTX0ZJTEVTSVpFOwogCXNiLT5zX2Jsb2Nrc2l6ZQkJPSBQQUdFX1NJWkU7CkBAIC0yNDcsMTAgKzIzOSwzNCBAQCBpbnQgcmFtZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCXJldHVybiAwOwogfQogCi1zdHJ1Y3QgZGVudHJ5ICpyYW1mc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKLQlpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKQorc3RhdGljIGludCByYW1mc19nZXRfdHJlZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0JcmV0dXJuIG1vdW50X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCByYW1mc19maWxsX3N1cGVyKTsKKwlyZXR1cm4gZ2V0X3RyZWVfbm9kZXYoZmMsIHJhbWZzX2ZpbGxfc3VwZXIpOworfQorCitzdGF0aWMgdm9pZCByYW1mc19mcmVlX2ZjKHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlrZnJlZShmYy0+c19mc19pbmZvKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc19jb250ZXh0X29wZXJhdGlvbnMgcmFtZnNfY29udGV4dF9vcHMgPSB7CisJLmZyZWUJCT0gcmFtZnNfZnJlZV9mYywKKwkucGFyc2VfcGFyYW0JPSByYW1mc19wYXJzZV9wYXJhbSwKKwkuZ2V0X3RyZWUJPSByYW1mc19nZXRfdHJlZSwKK307CisKK2ludCByYW1mc19pbml0X2ZzX2NvbnRleHQoc3RydWN0IGZzX2NvbnRleHQgKmZjKQoreworCXN0cnVjdCByYW1mc19mc19pbmZvICpmc2k7CisKKwlmc2kgPSBremFsbG9jKHNpemVvZigqZnNpKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFmc2kpCisJCXJldHVybiAtRU5PTUVNOworCisJZnNpLT5tb3VudF9vcHRzLm1vZGUgPSBSQU1GU19ERUZBVUxUX01PREU7CisJZmMtPnNfZnNfaW5mbyA9IGZzaTsKKwlmYy0+b3BzID0gJnJhbWZzX2NvbnRleHRfb3BzOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCByYW1mc19raWxsX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCkBAIC0yNjEsNyArMjc3LDggQEAgc3RhdGljIHZvaWQgcmFtZnNfa2lsbF9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCiBzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgcmFtZnNfZnNfdHlwZSA9IHsKIAkubmFtZQkJPSAicmFtZnMiLAotCS5tb3VudAkJPSByYW1mc19tb3VudCwKKwkuaW5pdF9mc19jb250ZXh0ID0gcmFtZnNfaW5pdF9mc19jb250ZXh0LAorCS5wYXJhbWV0ZXJzCT0gJnJhbWZzX2ZzX3BhcmFtZXRlcnMsCiAJLmtpbGxfc2IJPSByYW1mc19raWxsX3NiLAogCS5mc19mbGFncwk9IEZTX1VTRVJOU19NT1VOVCwKIH07CmRpZmYgLS1naXQgYS9mcy9yZWlzZXJmcy9kb19iYWxhbi5jIGIvZnMvcmVpc2VyZnMvZG9fYmFsYW4uYwppbmRleCA5YzAyZDk2Li40MDc1ZTQxIDEwMDY0NAotLS0gYS9mcy9yZWlzZXJmcy9kb19iYWxhbi5jCisrKyBiL2ZzL3JlaXNlcmZzL2RvX2JhbGFuLmMKQEAgLTIzOSwxMCArMjM5LDggQEAgc3RhdGljIGludCBiYWxhbmNlX2xlYWZfd2hlbl9kZWxldGVfbGVmdChzdHJ1Y3QgdHJlZV9iYWxhbmNlICp0YikKIHN0YXRpYyBpbnQgYmFsYW5jZV9sZWFmX3doZW5fZGVsZXRlKHN0cnVjdCB0cmVlX2JhbGFuY2UgKnRiLCBpbnQgZmxhZykKIHsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKnRiUzAgPSBQQVRIX1BMQVNUX0JVRkZFUih0Yi0+dGJfcGF0aCk7Ci0JaW50IGl0ZW1fcG9zID0gUEFUSF9MQVNUX1BPU0lUSU9OKHRiLT50Yl9wYXRoKTsKIAlzdHJ1Y3QgYnVmZmVyX2luZm8gYmk7CiAJaW50IG47Ci0Jc3RydWN0IGl0ZW1faGVhZCAqaWg7CiAKIAlSRkFMU0UodGItPkZSWzBdICYmIEJfTEVWRUwodGItPkZSWzBdKSAhPSBESVNLX0xFQUZfTk9ERV9MRVZFTCArIDEsCiAJICAgICAgICJ2cy0gMTIwMDA6IGxldmVsOiB3cm9uZyBGUiAleiIsIHRiLT5GUlswXSk7CkBAIC0yNTEsNyArMjQ5LDYgQEAgc3RhdGljIGludCBiYWxhbmNlX2xlYWZfd2hlbl9kZWxldGUoc3RydWN0IHRyZWVfYmFsYW5jZSAqdGIsIGludCBmbGFnKQogCVJGQUxTRSghdGItPmJsa251bVswXSAmJiAhUEFUSF9IX1BQQVJFTlQodGItPnRiX3BhdGgsIDApLAogCSAgICAgICAiUEFQLTEyMDEwOiB0cmVlIGNhbiBub3QgYmUgZW1wdHkiKTsKIAotCWloID0gaXRlbV9oZWFkKHRiUzAsIGl0ZW1fcG9zKTsKIAlidWZmZXJfaW5mb19pbml0X3RiUzAodGIsICZiaSk7CiAKIAkvKiBEZWxldGUgb3IgdHJ1bmNhdGUgdGhlIGl0ZW0gKi8KQEAgLTI5OCw3ICsyOTUsNiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGJhbGFuY2VfbGVhZl9pbnNlcnRfbGVmdChzdHJ1Y3QgdHJlZV9iYWxhbmNlICp0YiwKIAlpZiAodGItPml0ZW1fcG9zID09IHRiLT5sbnVtWzBdIC0gMSAmJiB0Yi0+bGJ5dGVzICE9IC0xKSB7CiAJCS8qIHBhcnQgb2YgbmV3IGl0ZW0gZmFsbHMgaW50byBMWzBdICovCiAJCWludCBuZXdfaXRlbV9sZW4sIHNoaWZ0OwotCQlpbnQgdmVyc2lvbjsKIAogCQlyZXQgPSBsZWFmX3NoaWZ0X2xlZnQodGIsIHRiLT5sbnVtWzBdIC0gMSwgLTEpOwogCkBAIC0zMTcsOCArMzEzLDYgQEAgc3RhdGljIHVuc2lnbmVkIGludCBiYWxhbmNlX2xlYWZfaW5zZXJ0X2xlZnQoc3RydWN0IHRyZWVfYmFsYW5jZSAqdGIsCiAJCWxlYWZfaW5zZXJ0X2ludG9fYnVmKCZiaSwgbiArIHRiLT5pdGVtX3BvcyAtIHJldCwgaWgsIGJvZHksCiAJCQkgICAgIG1pbl90KGludCwgdGItPnplcm9lc19udW0sIGloX2l0ZW1fbGVuKGloKSkpOwogCi0JCXZlcnNpb24gPSBpaF92ZXJzaW9uKGloKTsKLQogCQkvKgogCQkgKiBDYWxjdWxhdGUga2V5IGNvbXBvbmVudCwgaXRlbSBsZW5ndGggYW5kIGJvZHkgdG8KIAkJICogaW5zZXJ0IGludG8gU1swXQpAQCAtNjMyLDcgKzYyNiw2IEBAIHN0YXRpYyB2b2lkIGJhbGFuY2VfbGVhZl9pbnNlcnRfcmlnaHQoc3RydWN0IHRyZWVfYmFsYW5jZSAqdGIsCiAJc3RydWN0IGJ1ZmZlcl9oZWFkICp0YlMwID0gUEFUSF9QTEFTVF9CVUZGRVIodGItPnRiX3BhdGgpOwogCWludCBuID0gQl9OUl9JVEVNUyh0YlMwKTsKIAlzdHJ1Y3QgYnVmZmVyX2luZm8gYmk7Ci0JaW50IHJldDsKIAogCS8qIG5ldyBpdGVtIG9yIHBhcnQgb2YgaXQgZG9lc24ndCBmYWxsIGludG8gUlswXSAqLwogCWlmIChuIC0gdGItPnJudW1bMF0gPj0gdGItPml0ZW1fcG9zKSB7CkBAIC02NDYsMTMgKzYzOSwxMSBAQCBzdGF0aWMgdm9pZCBiYWxhbmNlX2xlYWZfaW5zZXJ0X3JpZ2h0KHN0cnVjdCB0cmVlX2JhbGFuY2UgKnRiLAogCWlmICh0Yi0+aXRlbV9wb3MgPT0gbiAtIHRiLT5ybnVtWzBdICsgMSAmJiB0Yi0+cmJ5dGVzICE9IC0xKSB7CiAJCWxvZmZfdCBvbGRfa2V5X2NvbXAsIG9sZF9sZW4sIHJfemVyb2VzX251bWJlcjsKIAkJY29uc3QgY2hhciAqcl9ib2R5OwotCQlpbnQgdmVyc2lvbiwgc2hpZnQ7CisJCWludCBzaGlmdDsKIAkJbG9mZl90IG9mZnNldDsKIAogCQlsZWFmX3NoaWZ0X3JpZ2h0KHRiLCB0Yi0+cm51bVswXSAtIDEsIC0xKTsKIAotCQl2ZXJzaW9uID0gaWhfdmVyc2lvbihpaCk7Ci0KIAkJLyogUmVtZW1iZXIga2V5IGNvbXBvbmVudCBhbmQgaXRlbSBsZW5ndGggKi8KIAkJb2xkX2tleV9jb21wID0gbGVfaWhfa19vZmZzZXQoaWgpOwogCQlvbGRfbGVuID0gaWhfaXRlbV9sZW4oaWgpOwpAQCAtNjk4LDcgKzY4OSw3IEBAIHN0YXRpYyB2b2lkIGJhbGFuY2VfbGVhZl9pbnNlcnRfcmlnaHQoc3RydWN0IHRyZWVfYmFsYW5jZSAqdGIsCiAJCS8qIHdob2xlIG5ldyBpdGVtIGZhbGxzIGludG8gUlswXSAqLwogCiAJCS8qIFNoaWZ0IHJudW1bMF0tMSBpdGVtcyB0byBSWzBdICovCi0JCXJldCA9IGxlYWZfc2hpZnRfcmlnaHQodGIsIHRiLT5ybnVtWzBdIC0gMSwgdGItPnJieXRlcyk7CisJCWxlYWZfc2hpZnRfcmlnaHQodGIsIHRiLT5ybnVtWzBdIC0gMSwgdGItPnJieXRlcyk7CiAKIAkJLyogSW5zZXJ0IG5ldyBpdGVtIGludG8gUlswXSAqLwogCQlidWZmZXJfaW5mb19pbml0X3JpZ2h0KHRiLCAmYmkpOwpAQCAtOTUwLDE0ICs5NDEsMTIgQEAgc3RhdGljIHZvaWQgYmFsYW5jZV9sZWFmX25ld19ub2Rlc19pbnNlcnQoc3RydWN0IHRyZWVfYmFsYW5jZSAqdGIsCiAJaWYgKHRiLT5pdGVtX3BvcyA9PSBuIC0gdGItPnNudW1baV0gKyAxICYmIHRiLT5zYnl0ZXNbaV0gIT0gLTEpIHsKIAkJaW50IG9sZF9rZXlfY29tcCwgb2xkX2xlbiwgcl96ZXJvZXNfbnVtYmVyOwogCQljb25zdCBjaGFyICpyX2JvZHk7Ci0JCWludCB2ZXJzaW9uOwogCiAJCS8qIE1vdmUgc251bVtpXS0xIGl0ZW1zIGZyb20gU1swXSB0byBTX25ld1tpXSAqLwogCQlsZWFmX21vdmVfaXRlbXMoTEVBRl9GUk9NX1NfVE9fU05FVywgdGIsIHRiLT5zbnVtW2ldIC0gMSwgLTEsCiAJCQkJdGItPlNfbmV3W2ldKTsKIAogCQkvKiBSZW1lbWJlciBrZXkgY29tcG9uZW50IGFuZCBpdGVtIGxlbmd0aCAqLwotCQl2ZXJzaW9uID0gaWhfdmVyc2lvbihpaCk7CiAJCW9sZF9rZXlfY29tcCA9IGxlX2loX2tfb2Zmc2V0KGloKTsKIAkJb2xkX2xlbiA9IGloX2l0ZW1fbGVuKGloKTsKIApkaWZmIC0tZ2l0IGEvZnMvcmVpc2VyZnMvZml4X25vZGUuYyBiL2ZzL3JlaXNlcmZzL2ZpeF9ub2RlLmMKaW5kZXggNmIwZGRiMi4uMTE3MDkyMiAxMDA2NDQKLS0tIGEvZnMvcmVpc2VyZnMvZml4X25vZGUuYworKysgYi9mcy9yZWlzZXJmcy9maXhfbm9kZS5jCkBAIC0zNzYsNyArMzc2LDYgQEAgc3RhdGljIGludCBnZXRfbnVtX3ZlcihpbnQgbW9kZSwgc3RydWN0IHRyZWVfYmFsYW5jZSAqdGIsIGludCBoLAogCQkgICAgICAgaW50IHRvLCBpbnQgdG9fYnl0ZXMsIHNob3J0ICpzbnVtMDEyLCBpbnQgZmxvdykKIHsKIAlpbnQgaTsKLQlpbnQgY3VyX2ZyZWU7CiAJaW50IHVuaXRzOwogCXN0cnVjdCB2aXJ0dWFsX25vZGUgKnZuID0gdGItPnRiX3ZuOwogCWludCB0b3RhbF9ub2RlX3NpemUsIG1heF9ub2RlX3NpemUsIGN1cnJlbnRfaXRlbV9zaXplOwpAQCAtNDM4LDcgKzQzNyw2IEBAIHN0YXRpYyBpbnQgZ2V0X251bV92ZXIoaW50IG1vZGUsIHN0cnVjdCB0cmVlX2JhbGFuY2UgKnRiLCBpbnQgaCwKIAkvKiBsZWFmIGxldmVsICovCiAJbmVlZGVkX25vZGVzID0gMTsKIAl0b3RhbF9ub2RlX3NpemUgPSAwOwotCWN1cl9mcmVlID0gbWF4X25vZGVfc2l6ZTsKIAogCS8qIHN0YXJ0IGZyb20gJ2Zyb20nLXRoIGl0ZW0gKi8KIAlzdGFydF9pdGVtID0gZnJvbTsKQEAgLTE3MzQsMTQgKzE3MzIsMTIgQEAgc3RhdGljIGludCBkY19jaGVja19iYWxhbmNlX2ludGVybmFsKHN0cnVjdCB0cmVlX2JhbGFuY2UgKnRiLCBpbnQgaCkKIAkgKiBhbmQgRmggaXMgaXRzIGZhdGhlci4KIAkgKi8KIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKlNoLCAqRmg7Ci0JaW50IG1heHNpemUsIHJldDsKKwlpbnQgcmV0OwogCWludCBsZnJlZSwgcmZyZWUgLyogZnJlZSBzcGFjZSBpbiBMIGFuZCBSICovIDsKIAogCVNoID0gUEFUSF9IX1BCVUZGRVIodGItPnRiX3BhdGgsIGgpOwogCUZoID0gUEFUSF9IX1BQQVJFTlQodGItPnRiX3BhdGgsIGgpOwogCi0JbWF4c2l6ZSA9IE1BWF9DSElMRF9TSVpFKFNoKTsKLQogCS8qCiAJICogdXNpbmcgdGItPmluc2VydF9zaXplW2hdLCB3aGljaCBpcyBuZWdhdGl2ZSBpbiB0aGlzIGNhc2UsCiAJICogY3JlYXRlX3ZpcnR1YWxfbm9kZSBjYWxjdWxhdGVzOgpkaWZmIC0tZ2l0IGEvZnMvcmVpc2VyZnMvam91cm5hbC5jIGIvZnMvcmVpc2VyZnMvam91cm5hbC5jCmluZGV4IDQ1MTdhMTMuLjRiM2UzZTcgMTAwNjQ0Ci0tLSBhL2ZzL3JlaXNlcmZzL2pvdXJuYWwuYworKysgYi9mcy9yZWlzZXJmcy9qb3VybmFsLmMKQEAgLTg5MSw3ICs4OTEsNiBAQCBzdGF0aWMgaW50IGZsdXNoX29sZGVyX2NvbW1pdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzLAogCXN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5OwogCXVuc2lnbmVkIGludCB0cmFuc19pZCA9IGpsLT5qX3RyYW5zX2lkOwogCXVuc2lnbmVkIGludCBvdGhlcl90cmFuc19pZDsKLQl1bnNpZ25lZCBpbnQgZmlyc3RfdHJhbnNfaWQ7CiAKIGZpbmRfZmlyc3Q6CiAJLyoKQEAgLTkxNCw4ICs5MTMsNiBAQCBzdGF0aWMgaW50IGZsdXNoX29sZGVyX2NvbW1pdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlmaXJzdF90cmFuc19pZCA9IGZpcnN0X2psLT5qX3RyYW5zX2lkOwotCiAJZW50cnkgPSAmZmlyc3RfamwtPmpfbGlzdDsKIAl3aGlsZSAoMSkgewogCQlvdGhlcl9qbCA9IEpPVVJOQUxfTElTVF9FTlRSWShlbnRyeSk7CkBAIC0xMzUxLDcgKzEzNDgsNyBAQCBzdGF0aWMgaW50IGZsdXNoX2pvdXJuYWxfbGlzdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsCiAJCQkgICAgICBzdHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9saXN0ICpqbCwgaW50IGZsdXNoYWxsKQogewogCXN0cnVjdCByZWlzZXJmc19qb3VybmFsX2xpc3QgKnBqbDsKLQlzdHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqY24sICpsYXN0OworCXN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpjbjsKIAlpbnQgY291bnQ7CiAJaW50IHdhc19qd2FpdCA9IDA7CiAJaW50IHdhc19kaXJ0eSA9IDA7CkBAIC0xNTA5LDcgKzE1MDYsNiBAQCBzdGF0aWMgaW50IGZsdXNoX2pvdXJuYWxfbGlzdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsCiAJCQkJCSBiX2Jsb2NrbnIsIF9fZnVuY19fKTsKIAkJfQogZnJlZV9jbm9kZToKLQkJbGFzdCA9IGNuOwogCQljbiA9IGNuLT5uZXh0OwogCQlpZiAoc2F2ZWRfYmgpIHsKIAkJCS8qCkBAIC0xNzkyLDcgKzE3ODgsNiBAQCBzdGF0aWMgaW50IGZsdXNoX3VzZWRfam91cm5hbF9saXN0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsCiB7CiAJdW5zaWduZWQgbG9uZyBsZW4gPSAwOwogCXVuc2lnbmVkIGxvbmcgY3VyX2xlbjsKLQlpbnQgcmV0OwogCWludCBpOwogCWludCBsaW1pdCA9IDI1NjsKIAlzdHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9saXN0ICp0amw7CkBAIC0xODI5LDkgKzE4MjQsOSBAQCBzdGF0aWMgaW50IGZsdXNoX3VzZWRfam91cm5hbF9saXN0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsCiAJICogdHJhbnNhY3Rpb25zLCBidXQgb25seSBib3RoZXIgaWYgd2UndmUgYWN0dWFsbHkgc3Bhbm5lZAogCSAqIGFjcm9zcyBtdWx0aXBsZSBsaXN0cwogCSAqLwotCWlmIChmbHVzaF9qbCAhPSBqbCkgewotCQlyZXQgPSBrdXBkYXRlX3RyYW5zYWN0aW9ucyhzLCBqbCwgJnRqbCwgJnRyYW5zX2lkLCBsZW4sIGkpOwotCX0KKwlpZiAoZmx1c2hfamwgIT0gamwpCisJCWt1cGRhdGVfdHJhbnNhY3Rpb25zKHMsIGpsLCAmdGpsLCAmdHJhbnNfaWQsIGxlbiwgaSk7CisKIAlmbHVzaF9qb3VybmFsX2xpc3QocywgZmx1c2hfamwsIDEpOwogCXB1dF9qb3VybmFsX2xpc3QocywgZmx1c2hfamwpOwogCXB1dF9qb3VybmFsX2xpc3QocywgamwpOwpAQCAtMTkxMSw3ICsxOTA2LDYgQEAgc3RhdGljIGludCBkb19qb3VybmFsX3JlbGVhc2Uoc3RydWN0IHJlaXNlcmZzX3RyYW5zYWN0aW9uX2hhbmRsZSAqdGgsCiAJCQkgICAgICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgZXJyb3IpCiB7CiAJc3RydWN0IHJlaXNlcmZzX3RyYW5zYWN0aW9uX2hhbmRsZSBteXRoOwotCWludCBmbHVzaGVkID0gMDsKIAlzdHJ1Y3QgcmVpc2VyZnNfam91cm5hbCAqam91cm5hbCA9IFNCX0pPVVJOQUwoc2IpOwogCiAJLyoKQEAgLTE5MzMsNyArMTkyNyw2IEBAIHN0YXRpYyBpbnQgZG9fam91cm5hbF9yZWxlYXNlKHN0cnVjdCByZWlzZXJmc190cmFuc2FjdGlvbl9oYW5kbGUgKnRoLAogCQkJCQkJICAgICAxKTsKIAkJCWpvdXJuYWxfbWFya19kaXJ0eSgmbXl0aCwgU0JfQlVGRkVSX1dJVEhfU0Ioc2IpKTsKIAkJCWRvX2pvdXJuYWxfZW5kKCZteXRoLCBGTFVTSF9BTEwpOwotCQkJZmx1c2hlZCA9IDE7CiAJCX0KIAl9CiAKQEAgLTM0NDQsOSArMzQzNyw4IEBAIHN0YXRpYyBpbnQgcmVtb3ZlX2Zyb21fdHJhbnNhY3Rpb24oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAlpZiAoY24gPT0gam91cm5hbC0+al9sYXN0KSB7CiAJCWpvdXJuYWwtPmpfbGFzdCA9IGNuLT5wcmV2OwogCX0KLQlpZiAoYmgpCi0JCXJlbW92ZV9qb3VybmFsX2hhc2goc2IsIGpvdXJuYWwtPmpfaGFzaF90YWJsZSwgTlVMTCwKLQkJCQkgICAgYmgtPmJfYmxvY2tuciwgMCk7CisJcmVtb3ZlX2pvdXJuYWxfaGFzaChzYiwgam91cm5hbC0+al9oYXNoX3RhYmxlLCBOVUxMLAorCQkJICAgIGJoLT5iX2Jsb2NrbnIsIDApOwogCWNsZWFyX2J1ZmZlcl9qb3VybmFsZWQoYmgpOwkvKiBkb24ndCBsb2cgdGhpcyBvbmUgKi8KIAogCWlmICghYWxyZWFkeV9jbGVhbmVkKSB7CkBAIC0zOTg4LDcgKzM5ODAsNiBAQCBzdGF0aWMgaW50IGRvX2pvdXJuYWxfZW5kKHN0cnVjdCByZWlzZXJmc190cmFuc2FjdGlvbl9oYW5kbGUgKnRoLCBpbnQgZmxhZ3MpCiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpjX2JoOwkvKiBjb21taXQgYmggKi8KIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRfYmg7CS8qIGRlc2MgYmggKi8KIAlpbnQgY3VyX3dyaXRlX3N0YXJ0ID0gMDsJLyogc3RhcnQgaW5kZXggb2YgY3VycmVudCBsb2cgd3JpdGUgKi8KLQlpbnQgb2xkX3N0YXJ0OwogCWludCBpOwogCWludCBmbHVzaDsKIAlpbnQgd2FpdF9vbl9jb21taXQ7CkBAIC00MjQ1LDcgKzQyMzYsNiBAQCBzdGF0aWMgaW50IGRvX2pvdXJuYWxfZW5kKHN0cnVjdCByZWlzZXJmc190cmFuc2FjdGlvbl9oYW5kbGUgKnRoLCBpbnQgZmxhZ3MpCiAJam91cm5hbC0+al9udW1fd29ya19saXN0cysrOwogCiAJLyogcmVzZXQgam91cm5hbCB2YWx1ZXMgZm9yIHRoZSBuZXh0IHRyYW5zYWN0aW9uICovCi0Jb2xkX3N0YXJ0ID0gam91cm5hbC0+al9zdGFydDsKIAlqb3VybmFsLT5qX3N0YXJ0ID0KIAkgICAgKGpvdXJuYWwtPmpfc3RhcnQgKyBqb3VybmFsLT5qX2xlbiArCiAJICAgICAyKSAlIFNCX09ORElTS19KT1VSTkFMX1NJWkUoc2IpOwpkaWZmIC0tZ2l0IGEvZnMvcmVpc2VyZnMvbGJhbGFuY2UuYyBiL2ZzL3JlaXNlcmZzL2xiYWxhbmNlLmMKaW5kZXggZjVjZWJkNy4uN2Y4Njg1NiAxMDA2NDQKLS0tIGEvZnMvcmVpc2VyZnMvbGJhbGFuY2UuYworKysgYi9mcy9yZWlzZXJmcy9sYmFsYW5jZS5jCkBAIC0xMzIyLDcgKzEzMjIsNyBAQCB2b2lkIGxlYWZfcGFzdGVfZW50cmllcyhzdHJ1Y3QgYnVmZmVyX2luZm8gKmJpLAogCWNoYXIgKml0ZW07CiAJc3RydWN0IHJlaXNlcmZzX2RlX2hlYWQgKmRlaDsKIAljaGFyICppbnNlcnRfcG9pbnQ7Ci0JaW50IGksIG9sZF9lbnRyeV9udW07CisJaW50IGk7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IGJpLT5iaV9iaDsKIAogCWlmIChuZXdfZW50cnlfY291bnQgPT0gMCkKQEAgLTEzNjIsNyArMTM2Miw2IEBAIHZvaWQgbGVhZl9wYXN0ZV9lbnRyaWVzKHN0cnVjdCBidWZmZXJfaW5mbyAqYmksCiAJCXB1dF9kZWhfbG9jYXRpb24oJmRlaFtpXSwKIAkJCQkgZGVoX2xvY2F0aW9uKCZkZWhbaV0pICsgcGFzdGVfc2l6ZSk7CiAKLQlvbGRfZW50cnlfbnVtID0gaWhfZW50cnlfY291bnQoaWgpOwogCXB1dF9paF9lbnRyeV9jb3VudChpaCwgaWhfZW50cnlfY291bnQoaWgpICsgbmV3X2VudHJ5X2NvdW50KTsKIAogCS8qIHByZXBhcmUgc3BhY2UgZm9yIHBhc3RlZCByZWNvcmRzICovCmRpZmYgLS1naXQgYS9mcy9yZWlzZXJmcy9vYmplY3RpZC5jIGIvZnMvcmVpc2VyZnMvb2JqZWN0aWQuYwppbmRleCA0MTVkNjZjLi4zNGJhZjVjIDEwMDY0NAotLS0gYS9mcy9yZWlzZXJmcy9vYmplY3RpZC5jCisrKyBiL2ZzL3JlaXNlcmZzL29iamVjdGlkLmMKQEAgLTE4MywxMyArMTgzLDEyIEBAIGludCByZWlzZXJmc19jb252ZXJ0X29iamVjdGlkX21hcF92MShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMpCiAJaW50IG5ld19zaXplID0gKHMtPnNfYmxvY2tzaXplIC0gU0JfU0laRSkgLyBzaXplb2YoX191MzIpIC8gMiAqIDI7CiAJaW50IG9sZF9tYXggPSBzYl9vaWRfbWF4c2l6ZShkaXNrX3NiKTsKIAlzdHJ1Y3QgcmVpc2VyZnNfc3VwZXJfYmxvY2tfdjEgKmRpc2tfc2JfdjE7Ci0JX19sZTMyICpvYmplY3RpZF9tYXAsICpuZXdfb2JqZWN0aWRfbWFwOworCV9fbGUzMiAqb2JqZWN0aWRfbWFwOwogCWludCBpOwogCiAJZGlza19zYl92MSA9CiAJICAgIChzdHJ1Y3QgcmVpc2VyZnNfc3VwZXJfYmxvY2tfdjEgKikoU0JfQlVGRkVSX1dJVEhfU0IocyktPmJfZGF0YSk7CiAJb2JqZWN0aWRfbWFwID0gKF9fbGUzMiAqKSAoZGlza19zYl92MSArIDEpOwotCW5ld19vYmplY3RpZF9tYXAgPSAoX19sZTMyICopIChkaXNrX3NiICsgMSk7CiAKIAlpZiAoY3VyX3NpemUgPiBuZXdfc2l6ZSkgewogCQkvKgpkaWZmIC0tZ2l0IGEvZnMvcmVpc2VyZnMvcHJpbnRzLmMgYi9mcy9yZWlzZXJmcy9wcmludHMuYwppbmRleCA5ZmVkMWMwLi41MDBmMjAwIDEwMDY0NAotLS0gYS9mcy9yZWlzZXJmcy9wcmludHMuYworKysgYi9mcy9yZWlzZXJmcy9wcmludHMuYwpAQCAtNzQ2LDkgKzc0Niw2IEBAIHN0YXRpYyB2b2lkIGNoZWNrX2xlYWZfYmxvY2tfaGVhZChzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQogCiBzdGF0aWMgdm9pZCBjaGVja19pbnRlcm5hbF9ibG9ja19oZWFkKHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCiB7Ci0Jc3RydWN0IGJsb2NrX2hlYWQgKmJsa2g7Ci0KLQlibGtoID0gQl9CTEtfSEVBRChiaCk7CiAJaWYgKCEoQl9MRVZFTChiaCkgPiBESVNLX0xFQUZfTk9ERV9MRVZFTCAmJiBCX0xFVkVMKGJoKSA8PSBNQVhfSEVJR0hUKSkKIAkJcmVpc2VyZnNfcGFuaWMoTlVMTCwgInZzLTYwMjUiLCAiaW52YWxpZCBsZXZlbCAleiIsIGJoKTsKIApkaWZmIC0tZ2l0IGEvZnMvcmVpc2VyZnMvc3RyZWUuYyBiL2ZzL3JlaXNlcmZzL3N0cmVlLmMKaW5kZXggMDAzN2FlYS4uZGE5ZWJlMyAxMDA2NDQKLS0tIGEvZnMvcmVpc2VyZnMvc3RyZWUuYworKysgYi9mcy9yZWlzZXJmcy9zdHJlZS5jCkBAIC01OTMsNyArNTkzLDYgQEAgaW50IHNlYXJjaF9ieV9rZXkoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgY29uc3Qgc3RydWN0IGNwdV9rZXkgKmtleSwKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOwogCXN0cnVjdCBwYXRoX2VsZW1lbnQgKmxhc3RfZWxlbWVudDsKIAlpbnQgbm9kZV9sZXZlbCwgcmV0dmFsOwotCWludCByaWdodF9uZWlnaGJvcl9vZl9sZWFmX25vZGU7CiAJaW50IGZzX2dlbjsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKnJlYWRhX2JoW1NFQVJDSF9CWV9LRVlfUkVBREFdOwogCWJfYmxvY2tucl90IHJlYWRhX2Jsb2Nrc1tTRUFSQ0hfQllfS0VZX1JFQURBXTsKQEAgLTYxNCw4ICs2MTMsNiBAQCBpbnQgc2VhcmNoX2J5X2tleShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBjb25zdCBzdHJ1Y3QgY3B1X2tleSAqa2V5LAogCiAJcGF0aHJlbHNlKHNlYXJjaF9wYXRoKTsKIAotCXJpZ2h0X25laWdoYm9yX29mX2xlYWZfbm9kZSA9IDA7Ci0KIAkvKgogCSAqIFdpdGggZWFjaCBpdGVyYXRpb24gb2YgdGhpcyBsb29wIHdlIHNlYXJjaCB0aHJvdWdoIHRoZSBpdGVtcyBpbiB0aGUKIAkgKiBjdXJyZW50IG5vZGUsIGFuZCBjYWxjdWxhdGUgdGhlIG5leHQgY3VycmVudCBub2RlKG5leHQgcGF0aCBlbGVtZW50KQpAQCAtNzAxLDcgKzY5OCw2IEBAIGludCBzZWFyY2hfYnlfa2V5KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGNvbnN0IHN0cnVjdCBjcHVfa2V5ICprZXksCiAJCQkgKi8KIAkJCWJsb2NrX251bWJlciA9IFNCX1JPT1RfQkxPQ0soc2IpOwogCQkJZXhwZWN0ZWRfbGV2ZWwgPSAtMTsKLQkJCXJpZ2h0X25laWdoYm9yX29mX2xlYWZfbm9kZSA9IDA7CiAKIAkJCS8qIHJlcGVhdCBzZWFyY2ggZnJvbSB0aGUgcm9vdCAqLwogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9mcy9yZWlzZXJmcy9zdXBlci5jIGIvZnMvcmVpc2VyZnMvc3VwZXIuYwppbmRleCBhYjAyOGVhLi5kNjliNGFjIDEwMDY0NAotLS0gYS9mcy9yZWlzZXJmcy9zdXBlci5jCisrKyBiL2ZzL3JlaXNlcmZzL3N1cGVyLmMKQEAgLTE5NzYsNiArMTk3Niw5IEBAIHN0YXRpYyBpbnQgcmVpc2VyZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJCWdvdG8gZXJyb3JfdW5sb2NrZWQ7CiAJfQogCisJcy0+c190aW1lX21pbiA9IDA7CisJcy0+c190aW1lX21heCA9IFUzMl9NQVg7CisKIAlycyA9IFNCX0RJU0tfU1VQRVJfQkxPQ0socyk7CiAJLyoKIAkgKiBMZXQncyBkbyBiYXNpYyBzYW5pdHkgY2hlY2sgdG8gdmVyaWZ5IHRoYXQgdW5kZXJseWluZyBkZXZpY2UgaXMgbm90CmRpZmYgLS1naXQgYS9mcy9yb21mcy9zdXBlci5jIGIvZnMvcm9tZnMvc3VwZXIuYwppbmRleCA3ZDU4MGY3Li5lNTgyZDAwIDEwMDY0NAotLS0gYS9mcy9yb21mcy9zdXBlci5jCisrKyBiL2ZzL3JvbWZzL3N1cGVyLmMKQEAgLTY1LDcgKzY1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L3BhcnNlci5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzX2NvbnRleHQuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+CiAjaW5jbHVkZSA8bGludXgvc3RhdGZzLmg+CkBAIC00MjMsMTAgKzQyMywxMCBAQCBzdGF0aWMgaW50IHJvbWZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpCiAvKgogICogcmVtb3VudGluZyBtdXN0IGludm9sdmUgcmVhZC1vbmx5CiAgKi8KLXN0YXRpYyBpbnQgcm9tZnNfcmVtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgKmZsYWdzLCBjaGFyICpkYXRhKQorc3RhdGljIGludCByb21mc19yZWNvbmZpZ3VyZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0Jc3luY19maWxlc3lzdGVtKHNiKTsKLQkqZmxhZ3MgfD0gU0JfUkRPTkxZOworCXN5bmNfZmlsZXN5c3RlbShmYy0+cm9vdC0+ZF9zYik7CisJZmMtPnNiX2ZsYWdzIHw9IFNCX1JET05MWTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDM0LDcgKzQzNCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyByb21mc19zdXBlcl9vcHMgPSB7CiAJLmFsbG9jX2lub2RlCT0gcm9tZnNfYWxsb2NfaW5vZGUsCiAJLmZyZWVfaW5vZGUJPSByb21mc19mcmVlX2lub2RlLAogCS5zdGF0ZnMJCT0gcm9tZnNfc3RhdGZzLAotCS5yZW1vdW50X2ZzCT0gcm9tZnNfcmVtb3VudCwKIH07CiAKIC8qCkBAIC00NTcsNyArNDU2LDcgQEAgc3RhdGljIF9fdTMyIHJvbWZzX2NoZWNrc3VtKGNvbnN0IHZvaWQgKmRhdGEsIGludCBzaXplKQogLyoKICAqIGZpbGwgaW4gdGhlIHN1cGVyYmxvY2sKICAqLwotc3RhdGljIGludCByb21mc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCitzdGF0aWMgaW50IHJvbWZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewogCXN0cnVjdCByb21mc19zdXBlcl9ibG9jayAqcnNiOwogCXN0cnVjdCBpbm9kZSAqcm9vdDsKQEAgLTQ3OCw2ICs0NzcsOCBAQCBzdGF0aWMgaW50IHJvbWZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAlzYi0+c19tYXhieXRlcyA9IDB4RkZGRkZGRkY7CiAJc2ItPnNfbWFnaWMgPSBST01GU19NQUdJQzsKIAlzYi0+c19mbGFncyB8PSBTQl9SRE9OTFkgfCBTQl9OT0FUSU1FOworCXNiLT5zX3RpbWVfbWluID0gMDsKKwlzYi0+c190aW1lX21heCA9IDA7CiAJc2ItPnNfb3AgPSAmcm9tZnNfc3VwZXJfb3BzOwogCiAjaWZkZWYgQ09ORklHX1JPTUZTX09OX01URApAQCAtNTA0LDggKzUwNSw4IEBAIHN0YXRpYyBpbnQgcm9tZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCiAJaWYgKHJzYi0+d29yZDAgIT0gUk9NU0JfV09SRDAgfHwgcnNiLT53b3JkMSAhPSBST01TQl9XT1JEMSB8fAogCSAgICBpbWdfc2l6ZSA8IFJPTUZIX1NJWkUpIHsKLQkJaWYgKCFzaWxlbnQpCi0JCQlwcl93YXJuKCJWRlM6IENhbid0IGZpbmQgYSByb21mcyBmaWxlc3lzdGVtIG9uIGRldiAlcy5cbiIsCisJCWlmICghKGZjLT5zYl9mbGFncyAmIFNCX1NJTEVOVCkpCisJCQllcnJvcmYoZmMsICJWRlM6IENhbid0IGZpbmQgYSByb21mcyBmaWxlc3lzdGVtIG9uIGRldiAlcy5cbiIsCiAJCQkgICAgICAgc2ItPnNfaWQpOwogCQlnb3RvIGVycm9yX3JzYl9pbnZhbDsKIAl9CkBAIC01MTgsNyArNTE5LDcgQEAgc3RhdGljIGludCByb21mc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJc3RvcmFnZSA9IHNiLT5zX210ZCA/ICJNVEQiIDogInRoZSBibG9jayBsYXllciI7CiAKIAlsZW4gPSBzdHJubGVuKHJzYi0+bmFtZSwgUk9NRlNfTUFYRk4pOwotCWlmICghc2lsZW50KQorCWlmICghKGZjLT5zYl9mbGFncyAmIFNCX1NJTEVOVCkpCiAJCXByX25vdGljZSgiTW91bnRpbmcgaW1hZ2UgJyUqLipzJyB0aHJvdWdoICVzXG4iLAogCQkJICAodW5zaWduZWQpIGxlbiwgKHVuc2lnbmVkKSBsZW4sIHJzYi0+bmFtZSwgc3RvcmFnZSk7CiAKQEAgLTU0OCwyMyArNTQ5LDM0IEBAIHN0YXRpYyBpbnQgcm9tZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogLyoKICAqIGdldCBhIHN1cGVyYmxvY2sgZm9yIG1vdW50aW5nCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpyb21mc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKLQkJCWludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsCi0JCQl2b2lkICpkYXRhKQorc3RhdGljIGludCByb21mc19nZXRfdHJlZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0Jc3RydWN0IGRlbnRyeSAqcmV0ID0gRVJSX1BUUigtRUlOVkFMKTsKKwlpbnQgcmV0ID0gLUVJTlZBTDsKIAogI2lmZGVmIENPTkZJR19ST01GU19PTl9NVEQKLQlyZXQgPSBtb3VudF9tdGQoZnNfdHlwZSwgZmxhZ3MsIGRldl9uYW1lLCBkYXRhLCByb21mc19maWxsX3N1cGVyKTsKKwlyZXQgPSBnZXRfdHJlZV9tdGQoZmMsIHJvbWZzX2ZpbGxfc3VwZXIpOwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1JPTUZTX09OX0JMT0NLCi0JaWYgKHJldCA9PSBFUlJfUFRSKC1FSU5WQUwpKQotCQlyZXQgPSBtb3VudF9iZGV2KGZzX3R5cGUsIGZsYWdzLCBkZXZfbmFtZSwgZGF0YSwKLQkJCQkgIHJvbWZzX2ZpbGxfc3VwZXIpOworCWlmIChyZXQgPT0gLUVJTlZBTCkKKwkJcmV0ID0gZ2V0X3RyZWVfYmRldihmYywgcm9tZnNfZmlsbF9zdXBlcik7CiAjZW5kaWYKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX2NvbnRleHRfb3BlcmF0aW9ucyByb21mc19jb250ZXh0X29wcyA9IHsKKwkuZ2V0X3RyZWUJPSByb21mc19nZXRfdHJlZSwKKwkucmVjb25maWd1cmUJPSByb21mc19yZWNvbmZpZ3VyZSwKK307CisKKy8qCisgKiBTZXQgdXAgdGhlIGZpbGVzeXN0ZW0gbW91bnQgY29udGV4dC4KKyAqLworc3RhdGljIGludCByb21mc19pbml0X2ZzX2NvbnRleHQoc3RydWN0IGZzX2NvbnRleHQgKmZjKQoreworCWZjLT5vcHMgPSAmcm9tZnNfY29udGV4dF9vcHM7CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBkZXN0cm95IGEgcm9tZnMgc3VwZXJibG9jayBpbiB0aGUgYXBwcm9wcmlhdGUgbWFubmVyCiAgKi8KQEAgLTU4Nyw3ICs1OTksNyBAQCBzdGF0aWMgdm9pZCByb21mc19raWxsX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiBzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgcm9tZnNfZnNfdHlwZSA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLm5hbWUJCT0gInJvbWZzIiwKLQkubW91bnQJCT0gcm9tZnNfbW91bnQsCisJLmluaXRfZnNfY29udGV4dCA9IHJvbWZzX2luaXRfZnNfY29udGV4dCwKIAkua2lsbF9zYgk9IHJvbWZzX2tpbGxfc2IsCiAJLmZzX2ZsYWdzCT0gRlNfUkVRVUlSRVNfREVWLAogfTsKZGlmZiAtLWdpdCBhL2ZzL3NxdWFzaGZzL3N1cGVyLmMgYi9mcy9zcXVhc2hmcy9zdXBlci5jCmluZGV4IGVmZmE2MzguLjBjYzRjZWUgMTAwNjQ0Ci0tLSBhL2ZzL3NxdWFzaGZzL3N1cGVyLmMKKysrIGIvZnMvc3F1YXNoZnMvc3VwZXIuYwpAQCAtMTcsNiArMTcsNyBAQAogI2RlZmluZSBwcl9mbXQoZm10KSBLQlVJTERfTU9ETkFNRSAiOiAiIGZtdAogCiAjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9mc19jb250ZXh0Lmg+CiAjaW5jbHVkZSA8bGludXgvdmZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CkBAIC0zNiwyNiArMzcsMjcgQEAKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBzcXVhc2hmc19mc190eXBlOwogc3RhdGljIGNvbnN0IHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIHNxdWFzaGZzX3N1cGVyX29wczsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBzcXVhc2hmc19kZWNvbXByZXNzb3IgKnN1cHBvcnRlZF9zcXVhc2hmc19maWxlc3lzdGVtKHNob3J0Ci0JbWFqb3IsIHNob3J0IG1pbm9yLCBzaG9ydCBpZCkKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3F1YXNoZnNfZGVjb21wcmVzc29yICpzdXBwb3J0ZWRfc3F1YXNoZnNfZmlsZXN5c3RlbSgKKwlzdHJ1Y3QgZnNfY29udGV4dCAqZmMsCisJc2hvcnQgbWFqb3IsIHNob3J0IG1pbm9yLCBzaG9ydCBpZCkKIHsKIAljb25zdCBzdHJ1Y3Qgc3F1YXNoZnNfZGVjb21wcmVzc29yICpkZWNvbXByZXNzb3I7CiAKIAlpZiAobWFqb3IgPCBTUVVBU0hGU19NQUpPUikgewotCQlFUlJPUigiTWFqb3IvTWlub3IgbWlzbWF0Y2gsIG9sZGVyIFNxdWFzaGZzICVkLiVkICIKLQkJCSJmaWxlc3lzdGVtcyBhcmUgdW5zdXBwb3J0ZWRcbiIsIG1ham9yLCBtaW5vcik7CisJCWVycm9yZihmYywgIk1ham9yL01pbm9yIG1pc21hdGNoLCBvbGRlciBTcXVhc2hmcyAlZC4lZCAiCisJCSAgICAgICAiZmlsZXN5c3RlbXMgYXJlIHVuc3VwcG9ydGVkIiwgbWFqb3IsIG1pbm9yKTsKIAkJcmV0dXJuIE5VTEw7CiAJfSBlbHNlIGlmIChtYWpvciA+IFNRVUFTSEZTX01BSk9SIHx8IG1pbm9yID4gU1FVQVNIRlNfTUlOT1IpIHsKLQkJRVJST1IoIk1ham9yL01pbm9yIG1pc21hdGNoLCB0cnlpbmcgdG8gbW91bnQgbmV3ZXIgIgotCQkJIiVkLiVkIGZpbGVzeXN0ZW1cbiIsIG1ham9yLCBtaW5vcik7Ci0JCUVSUk9SKCJQbGVhc2UgdXBkYXRlIHlvdXIga2VybmVsXG4iKTsKKwkJZXJyb3JmKGZjLCAiTWFqb3IvTWlub3IgbWlzbWF0Y2gsIHRyeWluZyB0byBtb3VudCBuZXdlciAiCisJCSAgICAgICAiJWQuJWQgZmlsZXN5c3RlbSIsIG1ham9yLCBtaW5vcik7CisJCWVycm9yZihmYywgIlBsZWFzZSB1cGRhdGUgeW91ciBrZXJuZWwiKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQogCiAJZGVjb21wcmVzc29yID0gc3F1YXNoZnNfbG9va3VwX2RlY29tcHJlc3NvcihpZCk7CiAJaWYgKCFkZWNvbXByZXNzb3ItPnN1cHBvcnRlZCkgewotCQlFUlJPUigiRmlsZXN5c3RlbSB1c2VzIFwiJXNcIiBjb21wcmVzc2lvbi4gVGhpcyBpcyBub3QgIgotCQkJInN1cHBvcnRlZFxuIiwgZGVjb21wcmVzc29yLT5uYW1lKTsKKwkJZXJyb3JmKGZjLCAiRmlsZXN5c3RlbSB1c2VzIFwiJXNcIiBjb21wcmVzc2lvbi4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkIiwKKwkJICAgICAgIGRlY29tcHJlc3Nvci0+bmFtZSk7CiAJCXJldHVybiBOVUxMOwogCX0KIApAQCAtNjMsNyArNjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNxdWFzaGZzX2RlY29tcHJlc3NvciAqc3VwcG9ydGVkX3NxdWFzaGZzX2ZpbGVzeXN0ZW0oc2hvcnQKIH0KIAogCi1zdGF0aWMgaW50IHNxdWFzaGZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKK3N0YXRpYyBpbnQgc3F1YXNoZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7CiAJc3RydWN0IHNxdWFzaGZzX3NiX2luZm8gKm1zYmxrOwogCXN0cnVjdCBzcXVhc2hmc19zdXBlcl9ibG9jayAqc2JsayA9IE5VTEw7CkBAIC05OCw3ICsxMDAsNyBAQCBzdGF0aWMgaW50IHNxdWFzaGZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAlzYmxrID0gc3F1YXNoZnNfcmVhZF90YWJsZShzYiwgU1FVQVNIRlNfU1RBUlQsIHNpemVvZigqc2JsaykpOwogCiAJaWYgKElTX0VSUihzYmxrKSkgewotCQlFUlJPUigidW5hYmxlIHRvIHJlYWQgc3F1YXNoZnNfc3VwZXJfYmxvY2tcbiIpOworCQllcnJvcmYoZmMsICJ1bmFibGUgdG8gcmVhZCBzcXVhc2hmc19zdXBlcl9ibG9jayIpOwogCQllcnIgPSBQVFJfRVJSKHNibGspOwogCQlzYmxrID0gTlVMTDsKIAkJZ290byBmYWlsZWRfbW91bnQ7CkBAIC0xMDksMTQgKzExMSwxNSBAQCBzdGF0aWMgaW50IHNxdWFzaGZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAkvKiBDaGVjayBpdCBpcyBhIFNRVUFTSEZTIHN1cGVyYmxvY2sgKi8KIAlzYi0+c19tYWdpYyA9IGxlMzJfdG9fY3B1KHNibGstPnNfbWFnaWMpOwogCWlmIChzYi0+c19tYWdpYyAhPSBTUVVBU0hGU19NQUdJQykgewotCQlpZiAoIXNpbGVudCkKLQkJCUVSUk9SKCJDYW4ndCBmaW5kIGEgU1FVQVNIRlMgc3VwZXJibG9jayBvbiAlcGdcbiIsCi0JCQkJCQlzYi0+c19iZGV2KTsKKwkJaWYgKCEoZmMtPnNiX2ZsYWdzICYgU0JfU0lMRU5UKSkKKwkJCWVycm9yZihmYywgIkNhbid0IGZpbmQgYSBTUVVBU0hGUyBzdXBlcmJsb2NrIG9uICVwZyIsCisJCQkgICAgICAgc2ItPnNfYmRldik7CiAJCWdvdG8gZmFpbGVkX21vdW50OwogCX0KIAogCS8qIENoZWNrIHRoZSBNQUpPUiAmIE1JTk9SIHZlcnNpb25zIGFuZCBsb29rdXAgY29tcHJlc3Npb24gdHlwZSAqLwogCW1zYmxrLT5kZWNvbXByZXNzb3IgPSBzdXBwb3J0ZWRfc3F1YXNoZnNfZmlsZXN5c3RlbSgKKwkJCWZjLAogCQkJbGUxNl90b19jcHUoc2Jsay0+c19tYWpvciksCiAJCQlsZTE2X3RvX2NwdShzYmxrLT5zX21pbm9yKSwKIAkJCWxlMTZfdG9fY3B1KHNibGstPmNvbXByZXNzaW9uKSk7CkBAIC0xMzMsMTUgKzEzNiwxNSBAQCBzdGF0aWMgaW50IHNxdWFzaGZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAkvKiBDaGVjayBibG9jayBzaXplIGZvciBzYW5pdHkgKi8KIAltc2Jsay0+YmxvY2tfc2l6ZSA9IGxlMzJfdG9fY3B1KHNibGstPmJsb2NrX3NpemUpOwogCWlmIChtc2Jsay0+YmxvY2tfc2l6ZSA+IFNRVUFTSEZTX0ZJTEVfTUFYX1NJWkUpCi0JCWdvdG8gZmFpbGVkX21vdW50OworCQlnb3RvIGluc2FuaXR5OwogCiAJLyoKIAkgKiBDaGVjayB0aGUgc3lzdGVtIHBhZ2Ugc2l6ZSBpcyBub3QgbGFyZ2VyIHRoYW4gdGhlIGZpbGVzeXN0ZW0KIAkgKiBibG9jayBzaXplIChieSBkZWZhdWx0IDEyOEspLiAgVGhpcyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC4KIAkgKi8KIAlpZiAoUEFHRV9TSVpFID4gbXNibGstPmJsb2NrX3NpemUpIHsKLQkJRVJST1IoIlBhZ2Ugc2l6ZSA+IGZpbGVzeXN0ZW0gYmxvY2sgc2l6ZSAoJWQpLiAgVGhpcyBpcyAiCi0JCQkiY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQhXG4iLCBtc2Jsay0+YmxvY2tfc2l6ZSk7CisJCWVycm9yZihmYywgIlBhZ2Ugc2l6ZSA+IGZpbGVzeXN0ZW0gYmxvY2sgc2l6ZSAoJWQpLiAgVGhpcyBpcyAiCisJCSAgICAgICAiY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQhIiwgbXNibGstPmJsb2NrX3NpemUpOwogCQlnb3RvIGZhaWxlZF9tb3VudDsKIAl9CiAKQEAgLTE1MiwxMiArMTU1LDEyIEBAIHN0YXRpYyBpbnQgc3F1YXNoZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCiAJLyogQ2hlY2sgdGhhdCBibG9ja19zaXplIGFuZCBibG9ja19sb2cgbWF0Y2ggKi8KIAlpZiAobXNibGstPmJsb2NrX3NpemUgIT0gKDEgPDwgbXNibGstPmJsb2NrX2xvZykpCi0JCWdvdG8gZmFpbGVkX21vdW50OworCQlnb3RvIGluc2FuaXR5OwogCiAJLyogQ2hlY2sgdGhlIHJvb3QgaW5vZGUgZm9yIHNhbml0eSAqLwogCXJvb3RfaW5vZGUgPSBsZTY0X3RvX2NwdShzYmxrLT5yb290X2lub2RlKTsKIAlpZiAoU1FVQVNIRlNfSU5PREVfT0ZGU0VUKHJvb3RfaW5vZGUpID4gU1FVQVNIRlNfTUVUQURBVEFfU0laRSkKLQkJZ290byBmYWlsZWRfbW91bnQ7CisJCWdvdG8gaW5zYW5pdHk7CiAKIAltc2Jsay0+aW5vZGVfdGFibGUgPSBsZTY0X3RvX2NwdShzYmxrLT5pbm9kZV90YWJsZV9zdGFydCk7CiAJbXNibGstPmRpcmVjdG9yeV90YWJsZSA9IGxlNjRfdG9fY3B1KHNibGstPmRpcmVjdG9yeV90YWJsZV9zdGFydCk7CkBAIC0xODMsNiArMTg2LDggQEAgc3RhdGljIGludCBzcXVhc2hmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJCSh1NjQpIGxlNjRfdG9fY3B1KHNibGstPmlkX3RhYmxlX3N0YXJ0KSk7CiAKIAlzYi0+c19tYXhieXRlcyA9IE1BWF9MRlNfRklMRVNJWkU7CisJc2ItPnNfdGltZV9taW4gPSAwOworCXNiLT5zX3RpbWVfbWF4ID0gVTMyX01BWDsKIAlzYi0+c19mbGFncyB8PSBTQl9SRE9OTFk7CiAJc2ItPnNfb3AgPSAmc3F1YXNoZnNfc3VwZXJfb3BzOwogCkBAIC0xOTcsNyArMjAyLDcgQEAgc3RhdGljIGludCBzcXVhc2hmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJbXNibGstPnJlYWRfcGFnZSA9IHNxdWFzaGZzX2NhY2hlX2luaXQoImRhdGEiLAogCQlzcXVhc2hmc19tYXhfZGVjb21wcmVzc29ycygpLCBtc2Jsay0+YmxvY2tfc2l6ZSk7CiAJaWYgKG1zYmxrLT5yZWFkX3BhZ2UgPT0gTlVMTCkgewotCQlFUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHJlYWRfcGFnZSBibG9ja1xuIik7CisJCWVycm9yZihmYywgIkZhaWxlZCB0byBhbGxvY2F0ZSByZWFkX3BhZ2UgYmxvY2siKTsKIAkJZ290byBmYWlsZWRfbW91bnQ7CiAJfQogCkBAIC0yMDUsNyArMjEwLDcgQEAgc3RhdGljIGludCBzcXVhc2hmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJaWYgKElTX0VSUihtc2Jsay0+c3RyZWFtKSkgewogCQllcnIgPSBQVFJfRVJSKG1zYmxrLT5zdHJlYW0pOwogCQltc2Jsay0+c3RyZWFtID0gTlVMTDsKLQkJZ290byBmYWlsZWRfbW91bnQ7CisJCWdvdG8gaW5zYW5pdHk7CiAJfQogCiAJLyogSGFuZGxlIHhhdHRycyAqLwpAQCAtMjIwLDcgKzIyNSw3IEBAIHN0YXRpYyBpbnQgc3F1YXNoZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCW1zYmxrLT54YXR0cl9pZF90YWJsZSA9IHNxdWFzaGZzX3JlYWRfeGF0dHJfaWRfdGFibGUoc2IsCiAJCXhhdHRyX2lkX3RhYmxlX3N0YXJ0LCAmbXNibGstPnhhdHRyX3RhYmxlLCAmbXNibGstPnhhdHRyX2lkcyk7CiAJaWYgKElTX0VSUihtc2Jsay0+eGF0dHJfaWRfdGFibGUpKSB7Ci0JCUVSUk9SKCJ1bmFibGUgdG8gcmVhZCB4YXR0ciBpZCBpbmRleCB0YWJsZVxuIik7CisJCWVycm9yZihmYywgInVuYWJsZSB0byByZWFkIHhhdHRyIGlkIGluZGV4IHRhYmxlIik7CiAJCWVyciA9IFBUUl9FUlIobXNibGstPnhhdHRyX2lkX3RhYmxlKTsKIAkJbXNibGstPnhhdHRyX2lkX3RhYmxlID0gTlVMTDsKIAkJaWYgKGVyciAhPSAtRU5PVFNVUFApCkBAIC0yMzQsNyArMjM5LDcgQEAgc3RhdGljIGludCBzcXVhc2hmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJCWxlNjRfdG9fY3B1KHNibGstPmlkX3RhYmxlX3N0YXJ0KSwgbmV4dF90YWJsZSwKIAkJbGUxNl90b19jcHUoc2Jsay0+bm9faWRzKSk7CiAJaWYgKElTX0VSUihtc2Jsay0+aWRfdGFibGUpKSB7Ci0JCUVSUk9SKCJ1bmFibGUgdG8gcmVhZCBpZCBpbmRleCB0YWJsZVxuIik7CisJCWVycm9yZihmYywgInVuYWJsZSB0byByZWFkIGlkIGluZGV4IHRhYmxlIik7CiAJCWVyciA9IFBUUl9FUlIobXNibGstPmlkX3RhYmxlKTsKIAkJbXNibGstPmlkX3RhYmxlID0gTlVMTDsKIAkJZ290byBmYWlsZWRfbW91bnQ7CkBAIC0yNTAsNyArMjU1LDcgQEAgc3RhdGljIGludCBzcXVhc2hmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJbXNibGstPmlub2RlX2xvb2t1cF90YWJsZSA9IHNxdWFzaGZzX3JlYWRfaW5vZGVfbG9va3VwX3RhYmxlKHNiLAogCQlsb29rdXBfdGFibGVfc3RhcnQsIG5leHRfdGFibGUsIG1zYmxrLT5pbm9kZXMpOwogCWlmIChJU19FUlIobXNibGstPmlub2RlX2xvb2t1cF90YWJsZSkpIHsKLQkJRVJST1IoInVuYWJsZSB0byByZWFkIGlub2RlIGxvb2t1cCB0YWJsZVxuIik7CisJCWVycm9yZihmYywgInVuYWJsZSB0byByZWFkIGlub2RlIGxvb2t1cCB0YWJsZSIpOwogCQllcnIgPSBQVFJfRVJSKG1zYmxrLT5pbm9kZV9sb29rdXBfdGFibGUpOwogCQltc2Jsay0+aW5vZGVfbG9va3VwX3RhYmxlID0gTlVMTDsKIAkJZ290byBmYWlsZWRfbW91bnQ7CkBAIC0yNzUsNyArMjgwLDcgQEAgc3RhdGljIGludCBzcXVhc2hmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJbXNibGstPmZyYWdtZW50X2luZGV4ID0gc3F1YXNoZnNfcmVhZF9mcmFnbWVudF9pbmRleF90YWJsZShzYiwKIAkJbGU2NF90b19jcHUoc2Jsay0+ZnJhZ21lbnRfdGFibGVfc3RhcnQpLCBuZXh0X3RhYmxlLCBmcmFnbWVudHMpOwogCWlmIChJU19FUlIobXNibGstPmZyYWdtZW50X2luZGV4KSkgewotCQlFUlJPUigidW5hYmxlIHRvIHJlYWQgZnJhZ21lbnQgaW5kZXggdGFibGVcbiIpOworCQllcnJvcmYoZmMsICJ1bmFibGUgdG8gcmVhZCBmcmFnbWVudCBpbmRleCB0YWJsZSIpOwogCQllcnIgPSBQVFJfRVJSKG1zYmxrLT5mcmFnbWVudF9pbmRleCk7CiAJCW1zYmxrLT5mcmFnbWVudF9pbmRleCA9IE5VTEw7CiAJCWdvdG8gZmFpbGVkX21vdW50OwpAQCAtMjg2LDEzICsyOTEsMTMgQEAgc3RhdGljIGludCBzcXVhc2hmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJLyogU2FuaXR5IGNoZWNrIGRpcmVjdG9yeV90YWJsZSAqLwogCWlmIChtc2Jsay0+ZGlyZWN0b3J5X3RhYmxlID4gbmV4dF90YWJsZSkgewogCQllcnIgPSAtRUlOVkFMOwotCQlnb3RvIGZhaWxlZF9tb3VudDsKKwkJZ290byBpbnNhbml0eTsKIAl9CiAKIAkvKiBTYW5pdHkgY2hlY2sgaW5vZGVfdGFibGUgKi8KIAlpZiAobXNibGstPmlub2RlX3RhYmxlID49IG1zYmxrLT5kaXJlY3RvcnlfdGFibGUpIHsKIAkJZXJyID0gLUVJTlZBTDsKLQkJZ290byBmYWlsZWRfbW91bnQ7CisJCWdvdG8gaW5zYW5pdHk7CiAJfQogCiAJLyogYWxsb2NhdGUgcm9vdCAqLwpAQCAtMzIxLDYgKzMyNiw4IEBAIHN0YXRpYyBpbnQgc3F1YXNoZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCWtmcmVlKHNibGspOwogCXJldHVybiAwOwogCitpbnNhbml0eToKKwllcnJvcmYoZmMsICJzcXVhc2hmcyBpbWFnZSBmYWlsZWQgc2FuaXR5IGNoZWNrIik7CiBmYWlsZWRfbW91bnQ6CiAJc3F1YXNoZnNfY2FjaGVfZGVsZXRlKG1zYmxrLT5ibG9ja19jYWNoZSk7CiAJc3F1YXNoZnNfY2FjaGVfZGVsZXRlKG1zYmxrLT5mcmFnbWVudF9jYWNoZSk7CkBAIC0zMzYsNiArMzQzLDI4IEBAIHN0YXRpYyBpbnQgc3F1YXNoZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgc3F1YXNoZnNfZ2V0X3RyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZjKQoreworCXJldHVybiBnZXRfdHJlZV9iZGV2KGZjLCBzcXVhc2hmc19maWxsX3N1cGVyKTsKK30KKworc3RhdGljIGludCBzcXVhc2hmc19yZWNvbmZpZ3VyZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCit7CisJc3luY19maWxlc3lzdGVtKGZjLT5yb290LT5kX3NiKTsKKwlmYy0+c2JfZmxhZ3MgfD0gU0JfUkRPTkxZOworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX2NvbnRleHRfb3BlcmF0aW9ucyBzcXVhc2hmc19jb250ZXh0X29wcyA9IHsKKwkuZ2V0X3RyZWUJPSBzcXVhc2hmc19nZXRfdHJlZSwKKwkucmVjb25maWd1cmUJPSBzcXVhc2hmc19yZWNvbmZpZ3VyZSwKK307CisKK3N0YXRpYyBpbnQgc3F1YXNoZnNfaW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlmYy0+b3BzID0gJnNxdWFzaGZzX2NvbnRleHRfb3BzOworCXJldHVybiAwOworfQogCiBzdGF0aWMgaW50IHNxdWFzaGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpCiB7CkBAIC0zNTgsMTQgKzM4Nyw2IEBAIHN0YXRpYyBpbnQgc3F1YXNoZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikKIH0KIAogCi1zdGF0aWMgaW50IHNxdWFzaGZzX3JlbW91bnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50ICpmbGFncywgY2hhciAqZGF0YSkKLXsKLQlzeW5jX2ZpbGVzeXN0ZW0oc2IpOwotCSpmbGFncyB8PSBTQl9SRE9OTFk7Ci0JcmV0dXJuIDA7Ci19Ci0KLQogc3RhdGljIHZvaWQgc3F1YXNoZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJaWYgKHNiLT5zX2ZzX2luZm8pIHsKQEAgLTM4NCwxNCArNDA1LDYgQEAgc3RhdGljIHZvaWQgc3F1YXNoZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAJfQogfQogCi0KLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpzcXVhc2hmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKLQkJCQlpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKQotewotCXJldHVybiBtb3VudF9iZGV2KGZzX3R5cGUsIGZsYWdzLCBkZXZfbmFtZSwgZGF0YSwgc3F1YXNoZnNfZmlsbF9zdXBlcik7Ci19Ci0KLQogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpzcXVhc2hmc19pbm9kZV9jYWNoZXA7CiAKIApAQCAtNDY4LDcgKzQ4MSw3IEBAIHN0YXRpYyB2b2lkIHNxdWFzaGZzX2ZyZWVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBzcXVhc2hmc19mc190eXBlID0gewogCS5vd25lciA9IFRISVNfTU9EVUxFLAogCS5uYW1lID0gInNxdWFzaGZzIiwKLQkubW91bnQgPSBzcXVhc2hmc19tb3VudCwKKwkuaW5pdF9mc19jb250ZXh0ID0gc3F1YXNoZnNfaW5pdF9mc19jb250ZXh0LAogCS5raWxsX3NiID0ga2lsbF9ibG9ja19zdXBlciwKIAkuZnNfZmxhZ3MgPSBGU19SRVFVSVJFU19ERVYKIH07CkBAIC00NzksNyArNDkyLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIHNxdWFzaGZzX3N1cGVyX29wcyA9IHsKIAkuZnJlZV9pbm9kZSA9IHNxdWFzaGZzX2ZyZWVfaW5vZGUsCiAJLnN0YXRmcyA9IHNxdWFzaGZzX3N0YXRmcywKIAkucHV0X3N1cGVyID0gc3F1YXNoZnNfcHV0X3N1cGVyLAotCS5yZW1vdW50X2ZzID0gc3F1YXNoZnNfcmVtb3VudAogfTsKIAogbW9kdWxlX2luaXQoaW5pdF9zcXVhc2hmc19mcyk7CmRpZmYgLS1naXQgYS9mcy9zdXBlci5jIGIvZnMvc3VwZXIuYwppbmRleCA5NDU5YmE3NS4uZjYyN2I3YyAxMDA2NDQKLS0tIGEvZnMvc3VwZXIuYworKysgYi9mcy9zdXBlci5jCkBAIC0yNTgsNiArMjU4LDggQEAgc3RhdGljIHN0cnVjdCBzdXBlcl9ibG9jayAqYWxsb2Nfc3VwZXIoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKnR5cGUsIGludCBmbGFncywKIAlzLT5zX21heGJ5dGVzID0gTUFYX05PTl9MRlM7CiAJcy0+c19vcCA9ICZkZWZhdWx0X29wOwogCXMtPnNfdGltZV9ncmFuID0gMTAwMDAwMDAwMDsKKwlzLT5zX3RpbWVfbWluID0gVElNRTY0X01JTjsKKwlzLT5zX3RpbWVfbWF4ID0gVElNRTY0X01BWDsKIAlzLT5jbGVhbmNhY2hlX3Bvb2xpZCA9IENMRUFOQ0FDSEVfTk9fUE9PTDsKIAogCXMtPnNfc2hyaW5rLnNlZWtzID0gREVGQVVMVF9TRUVLUzsKQEAgLTExNjIsOSArMTE2NCwxMSBAQCBpbnQgdmZzX2dldF9zdXBlcihzdHJ1Y3QgZnNfY29udGV4dCAqZmMsCiB7CiAJaW50ICgqdGVzdCkoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBmc19jb250ZXh0ICopOwogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2I7CisJaW50IGVycjsKIAogCXN3aXRjaCAoa2V5aW5nKSB7CiAJY2FzZSB2ZnNfZ2V0X3NpbmdsZV9zdXBlcjoKKwljYXNlIHZmc19nZXRfc2luZ2xlX3JlY29uZl9zdXBlcjoKIAkJdGVzdCA9IHRlc3Rfc2luZ2xlX3N1cGVyOwogCQlicmVhazsKIAljYXNlIHZmc19nZXRfa2V5ZWRfc3VwZXI6CkBAIC0xMTgyLDE4ICsxMTg2LDI5IEBAIGludCB2ZnNfZ2V0X3N1cGVyKHN0cnVjdCBmc19jb250ZXh0ICpmYywKIAkJcmV0dXJuIFBUUl9FUlIoc2IpOwogCiAJaWYgKCFzYi0+c19yb290KSB7Ci0JCWludCBlcnIgPSBmaWxsX3N1cGVyKHNiLCBmYyk7Ci0JCWlmIChlcnIpIHsKLQkJCWRlYWN0aXZhdGVfbG9ja2VkX3N1cGVyKHNiKTsKLQkJCXJldHVybiBlcnI7Ci0JCX0KKwkJZXJyID0gZmlsbF9zdXBlcihzYiwgZmMpOworCQlpZiAoZXJyKQorCQkJZ290byBlcnJvcjsKIAogCQlzYi0+c19mbGFncyB8PSBTQl9BQ1RJVkU7CisJCWZjLT5yb290ID0gZGdldChzYi0+c19yb290KTsKKwl9IGVsc2UgeworCQlmYy0+cm9vdCA9IGRnZXQoc2ItPnNfcm9vdCk7CisJCWlmIChrZXlpbmcgPT0gdmZzX2dldF9zaW5nbGVfcmVjb25mX3N1cGVyKSB7CisJCQllcnIgPSByZWNvbmZpZ3VyZV9zdXBlcihmYyk7CisJCQlpZiAoZXJyIDwgMCkgeworCQkJCWRwdXQoZmMtPnJvb3QpOworCQkJCWZjLT5yb290ID0gTlVMTDsKKwkJCQlnb3RvIGVycm9yOworCQkJfQorCQl9CiAJfQogCi0JQlVHX09OKGZjLT5yb290KTsKLQlmYy0+cm9vdCA9IGRnZXQoc2ItPnNfcm9vdCk7CiAJcmV0dXJuIDA7CisKK2Vycm9yOgorCWRlYWN0aXZhdGVfbG9ja2VkX3N1cGVyKHNiKTsKKwlyZXR1cm4gZXJyOwogfQogRVhQT1JUX1NZTUJPTCh2ZnNfZ2V0X3N1cGVyKTsKIApAQCAtMTIxMyw2ICsxMjI4LDE0IEBAIGludCBnZXRfdHJlZV9zaW5nbGUoc3RydWN0IGZzX2NvbnRleHQgKmZjLAogfQogRVhQT1JUX1NZTUJPTChnZXRfdHJlZV9zaW5nbGUpOwogCitpbnQgZ2V0X3RyZWVfc2luZ2xlX3JlY29uZihzdHJ1Y3QgZnNfY29udGV4dCAqZmMsCisJCSAgaW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKKwkJCQkgICAgc3RydWN0IGZzX2NvbnRleHQgKmZjKSkKK3sKKwlyZXR1cm4gdmZzX2dldF9zdXBlcihmYywgdmZzX2dldF9zaW5nbGVfcmVjb25mX3N1cGVyLCBmaWxsX3N1cGVyKTsKK30KK0VYUE9SVF9TWU1CT0woZ2V0X3RyZWVfc2luZ2xlX3JlY29uZik7CisKIGludCBnZXRfdHJlZV9rZXllZChzdHJ1Y3QgZnNfY29udGV4dCAqZmMsCiAJCSAgaW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJCQkgICAgc3RydWN0IGZzX2NvbnRleHQgKmZjKSwKQEAgLTE1MzIsMTEgKzE1NTUsNiBAQCBpbnQgdmZzX2dldF90cmVlKHN0cnVjdCBmc19jb250ZXh0ICpmYykKIAlzYiA9IGZjLT5yb290LT5kX3NiOwogCVdBUk5fT04oIXNiLT5zX2JkaSk7CiAKLQlpZiAoZmMtPnN1YnR5cGUgJiYgIXNiLT5zX3N1YnR5cGUpIHsKLQkJc2ItPnNfc3VidHlwZSA9IGZjLT5zdWJ0eXBlOwotCQlmYy0+c3VidHlwZSA9IE5VTEw7Ci0JfQotCiAJLyoKIAkgKiBXcml0ZSBiYXJyaWVyIGlzIGZvciBzdXBlcl9jYWNoZV9jb3VudCgpLiBXZSBwbGFjZSBpdCBiZWZvcmUgc2V0dGluZwogCSAqIFNCX0JPUk4gYXMgdGhlIGRhdGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSB0d28gZnVuY3Rpb25zIGlzIHRoZQpkaWZmIC0tZ2l0IGEvZnMvc3lzdi9zdXBlci5jIGIvZnMvc3lzdi9zdXBlci5jCmluZGV4IGQ3ODhiMWQuLmNjOGUyZWQgMTAwNjQ0Ci0tLSBhL2ZzL3N5c3Yvc3VwZXIuYworKysgYi9mcy9zeXN2L3N1cGVyLmMKQEAgLTM2OCw3ICszNjgsOCBAQCBzdGF0aWMgaW50IHN5c3ZfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCXNiaS0+c19ibG9ja19iYXNlID0gMDsKIAltdXRleF9pbml0KCZzYmktPnNfbG9jayk7CiAJc2ItPnNfZnNfaW5mbyA9IHNiaTsKLQorCXNiLT5zX3RpbWVfbWluID0gMDsKKwlzYi0+c190aW1lX21heCA9IFUzMl9NQVg7CiAJc2Jfc2V0X2Jsb2Nrc2l6ZShzYiwgQkxPQ0tfU0laRSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShmbGF2b3VycykgJiYgIXNpemU7IGkrKykgewpAQCAtNDg3LDYgKzQ4OCw4IEBAIHN0YXRpYyBpbnQgdjdfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCXNiaS0+c190eXBlID0gRlNUWVBFX1Y3OwogCW11dGV4X2luaXQoJnNiaS0+c19sb2NrKTsKIAlzYi0+c19mc19pbmZvID0gc2JpOworCXNiLT5zX3RpbWVfbWluID0gMDsKKwlzYi0+c190aW1lX21heCA9IFUzMl9NQVg7CiAJCiAJc2Jfc2V0X2Jsb2Nrc2l6ZShzYiwgNTEyKTsKIApkaWZmIC0tZ2l0IGEvZnMvdHJhY2Vmcy9pbm9kZS5jIGIvZnMvdHJhY2Vmcy9pbm9kZS5jCmluZGV4IGVlZWFlMDQuLjlmYzE0ZTMgMTAwNjQ0Ci0tLSBhL2ZzL3RyYWNlZnMvaW5vZGUuYworKysgYi9mcy90cmFjZWZzL2lub2RlLmMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9wYXJzZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tYWdpYy5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgogCiAjZGVmaW5lIFRSQUNFRlNfREVGQVVMVF9NT0RFCTA3MDAKIApAQCAtMjcsNiArMjgsMjUgQEAgc3RhdGljIHN0cnVjdCB2ZnNtb3VudCAqdHJhY2Vmc19tb3VudDsKIHN0YXRpYyBpbnQgdHJhY2Vmc19tb3VudF9jb3VudDsKIHN0YXRpYyBib29sIHRyYWNlZnNfcmVnaXN0ZXJlZDsKIAorc3RhdGljIGludCBkZWZhdWx0X29wZW5fZmlsZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBmaWxwLT5mX3BhdGguZGVudHJ5OworCXN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKnJlYWxfZm9wczsKKwlpbnQgcmV0OworCisJaWYgKCFkZW50cnkpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fVFJBQ0VGUyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJlYWxfZm9wcyA9IGRlbnRyeS0+ZF9mc2RhdGE7CisJaWYgKCFyZWFsX2ZvcHMtPm9wZW4pCisJCXJldHVybiAwOworCXJldHVybiByZWFsX2ZvcHMtPm9wZW4oaW5vZGUsIGZpbHApOworfQorCiBzdGF0aWMgc3NpemVfdCBkZWZhdWx0X3JlYWRfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJCQkgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCiB7CkBAIC0yMjEsNiArMjQxLDEyIEBAIHN0YXRpYyBpbnQgdHJhY2Vmc19hcHBseV9vcHRpb25zKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHRyYWNlZnNfZGVzdHJveV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworCWlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKQorCQlrZnJlZShpbm9kZS0+aV9mb3ApOworfQorCiBzdGF0aWMgaW50IHRyYWNlZnNfcmVtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgKmZsYWdzLCBjaGFyICpkYXRhKQogewogCWludCBlcnI7CkBAIC0yNTcsNiArMjgzLDcgQEAgc3RhdGljIGludCB0cmFjZWZzX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkZW50cnkgKnJvb3QpCiBzdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgdHJhY2Vmc19zdXBlcl9vcGVyYXRpb25zID0gewogCS5zdGF0ZnMJCT0gc2ltcGxlX3N0YXRmcywKIAkucmVtb3VudF9mcwk9IHRyYWNlZnNfcmVtb3VudCwKKwkuZGVzdHJveV9pbm9kZSAgPSB0cmFjZWZzX2Rlc3Ryb3lfaW5vZGUsCiAJLnNob3dfb3B0aW9ucwk9IHRyYWNlZnNfc2hvd19vcHRpb25zLAogfTsKIApAQCAtMzg3LDYgKzQxNCw3IEBAIHN0cnVjdCBkZW50cnkgKnRyYWNlZnNfY3JlYXRlX2ZpbGUoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogCQkJCSAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdm9pZCAqZGF0YSwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzKQogeworCXN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKnByb3h5X2ZvcHM7CiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5OwogCXN0cnVjdCBpbm9kZSAqaW5vZGU7CiAKQEAgLTQwMiw4ICs0MzAsMjAgQEAgc3RydWN0IGRlbnRyeSAqdHJhY2Vmc19jcmVhdGVfZmlsZShjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCiAJaWYgKHVubGlrZWx5KCFpbm9kZSkpCiAJCXJldHVybiBmYWlsZWRfY3JlYXRpbmcoZGVudHJ5KTsKIAorCXByb3h5X2ZvcHMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHVubGlrZWx5KCFwcm94eV9mb3BzKSkgeworCQlpcHV0KGlub2RlKTsKKwkJcmV0dXJuIGZhaWxlZF9jcmVhdGluZyhkZW50cnkpOworCX0KKworCWlmICghZm9wcykKKwkJZm9wcyA9ICZ0cmFjZWZzX2ZpbGVfb3BlcmF0aW9uczsKKworCWRlbnRyeS0+ZF9mc2RhdGEgPSAodm9pZCAqKWZvcHM7CisJbWVtY3B5KHByb3h5X2ZvcHMsIGZvcHMsIHNpemVvZigqcHJveHlfZm9wcykpOworCXByb3h5X2ZvcHMtPm9wZW4gPSBkZWZhdWx0X29wZW5fZmlsZTsKIAlpbm9kZS0+aV9tb2RlID0gbW9kZTsKLQlpbm9kZS0+aV9mb3AgPSBmb3BzID8gZm9wcyA6ICZ0cmFjZWZzX2ZpbGVfb3BlcmF0aW9uczsKKwlpbm9kZS0+aV9mb3AgPSBwcm94eV9mb3BzOwogCWlub2RlLT5pX3ByaXZhdGUgPSBkYXRhOwogCWRfaW5zdGFudGlhdGUoZGVudHJ5LCBpbm9kZSk7CiAJZnNub3RpZnlfY3JlYXRlKGRlbnRyeS0+ZF9wYXJlbnQtPmRfaW5vZGUsIGRlbnRyeSk7CmRpZmYgLS1naXQgYS9mcy91Ymlmcy9hdXRoLmMgYi9mcy91Ymlmcy9hdXRoLmMKaW5kZXggZDlhZjJkZS4uOGNkYmQ1MyAxMDA2NDQKLS0tIGEvZnMvdWJpZnMvYXV0aC5jCisrKyBiL2ZzL3ViaWZzL2F1dGguYwpAQCAtNDc5LDggKzQ3OSwxMCBAQCBpbnQgX191Ymlmc19ub2RlX3ZlcmlmeV9obWFjKGNvbnN0IHN0cnVjdCB1Ymlmc19pbmZvICpjLCBjb25zdCB2b2lkICpub2RlLAogCQlyZXR1cm4gLUVOT01FTTsKIAogCWVyciA9IHViaWZzX25vZGVfY2FsY19obWFjKGMsIG5vZGUsIGxlbiwgb2ZzX2htYWMsIGhtYWMpOwotCWlmIChlcnIpCisJaWYgKGVycikgeworCQlrZnJlZShobWFjKTsKIAkJcmV0dXJuIGVycjsKKwl9CiAKIAllcnIgPSBjcnlwdG9fbWVtbmVxKGhtYWMsIG5vZGUgKyBvZnNfaG1hYywgaG1hY19sZW4pOwogCmRpZmYgLS1naXQgYS9mcy91Ymlmcy9kZWJ1Zy5jIGIvZnMvdWJpZnMvZGVidWcuYwppbmRleCBhNWYxMGQ3Li5lNGI1Mjc4IDEwMDY0NAotLS0gYS9mcy91Ymlmcy9kZWJ1Zy5jCisrKyBiL2ZzL3ViaWZzL2RlYnVnLmMKQEAgLTI4MTcsNyArMjgxNyw2IEBAIHZvaWQgZGJnX2RlYnVnZnNfaW5pdF9mcyhzdHJ1Y3QgdWJpZnNfaW5mbyAqYykKIAkJICAgICBjLT52aS51YmlfbnVtLCBjLT52aS52b2xfaWQpOwogCWlmIChuID09IFVCSUZTX0RGU19ESVJfTEVOKSB7CiAJCS8qIFRoZSBhcnJheSBzaXplIGlzIHRvbyBzbWFsbCAqLwotCQlmbmFtZSA9IFVCSUZTX0RGU19ESVJfTkFNRTsKIAkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0IGEvZnMvdWJpZnMvZmlsZS5jIGIvZnMvdWJpZnMvZmlsZS5jCmluZGV4IDQwMDk3MGQuLmNkNTI1ODUgMTAwNjQ0Ci0tLSBhL2ZzL3ViaWZzL2ZpbGUuYworKysgYi9mcy91Ymlmcy9maWxlLmMKQEAgLTEwNzgsMTUgKzEwNzgsMTggQEAgc3RhdGljIHZvaWQgZG9fYXR0cl9jaGFuZ2VzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBpYXR0ciAqYXR0cikKIAkJaW5vZGUtPmlfdWlkID0gYXR0ci0+aWFfdWlkOwogCWlmIChhdHRyLT5pYV92YWxpZCAmIEFUVFJfR0lEKQogCQlpbm9kZS0+aV9naWQgPSBhdHRyLT5pYV9naWQ7Ci0JaWYgKGF0dHItPmlhX3ZhbGlkICYgQVRUUl9BVElNRSkKLQkJaW5vZGUtPmlfYXRpbWUgPSB0aW1lc3BlYzY0X3RydW5jKGF0dHItPmlhX2F0aW1lLAotCQkJCQkJICBpbm9kZS0+aV9zYi0+c190aW1lX2dyYW4pOwotCWlmIChhdHRyLT5pYV92YWxpZCAmIEFUVFJfTVRJTUUpCi0JCWlub2RlLT5pX210aW1lID0gdGltZXNwZWM2NF90cnVuYyhhdHRyLT5pYV9tdGltZSwKLQkJCQkJCSAgaW5vZGUtPmlfc2ItPnNfdGltZV9ncmFuKTsKLQlpZiAoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX0NUSU1FKQotCQlpbm9kZS0+aV9jdGltZSA9IHRpbWVzcGVjNjRfdHJ1bmMoYXR0ci0+aWFfY3RpbWUsCi0JCQkJCQkgIGlub2RlLT5pX3NiLT5zX3RpbWVfZ3Jhbik7CisJaWYgKGF0dHItPmlhX3ZhbGlkICYgQVRUUl9BVElNRSkgeworCQlpbm9kZS0+aV9hdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZShhdHRyLT5pYV9hdGltZSwKKwkJCQkJCSAgaW5vZGUpOworCX0KKwlpZiAoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX01USU1FKSB7CisJCWlub2RlLT5pX210aW1lID0gdGltZXN0YW1wX3RydW5jYXRlKGF0dHItPmlhX210aW1lLAorCQkJCQkJICBpbm9kZSk7CisJfQorCWlmIChhdHRyLT5pYV92YWxpZCAmIEFUVFJfQ1RJTUUpIHsKKwkJaW5vZGUtPmlfY3RpbWUgPSB0aW1lc3RhbXBfdHJ1bmNhdGUoYXR0ci0+aWFfY3RpbWUsCisJCQkJCQkgIGlub2RlKTsKKwl9CiAJaWYgKGF0dHItPmlhX3ZhbGlkICYgQVRUUl9NT0RFKSB7CiAJCXVtb2RlX3QgbW9kZSA9IGF0dHItPmlhX21vZGU7CiAKZGlmZiAtLWdpdCBhL2ZzL3ViaWZzL3N1cGVyLmMgYi9mcy91Ymlmcy9zdXBlci5jCmluZGV4IDVlMWU4ZWMuLjdkNDU0N2UgMTAwNjQ0Ci0tLSBhL2ZzL3ViaWZzL3N1cGVyLmMKKysrIGIvZnMvdWJpZnMvc3VwZXIuYwpAQCAtMjI2Nyw4ICsyMjY3LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICp1Ymlmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwgaW50IGZsYWdzLAogCQl9CiAJfSBlbHNlIHsKIAkJZXJyID0gdWJpZnNfZmlsbF9zdXBlcihzYiwgZGF0YSwgZmxhZ3MgJiBTQl9TSUxFTlQgPyAxIDogMCk7Ci0JCWlmIChlcnIpCisJCWlmIChlcnIpIHsKKwkJCWtmcmVlKGMpOwogCQkJZ290byBvdXRfZGVhY3Q7CisJCX0KIAkJLyogV2UgZG8gbm90IHN1cHBvcnQgYXRpbWUgKi8KIAkJc2ItPnNfZmxhZ3MgfD0gU0JfQUNUSVZFOwogCQlpZiAoSVNfRU5BQkxFRChDT05GSUdfVUJJRlNfQVRJTUVfU1VQUE9SVCkpCmRpZmYgLS1naXQgYS9mcy91Ymlmcy90bmNfbWlzYy5jIGIvZnMvdWJpZnMvdG5jX21pc2MuYwppbmRleCA2ZjI5M2Y2Li40OWNiMzRjIDEwMDY0NAotLS0gYS9mcy91Ymlmcy90bmNfbWlzYy5jCisrKyBiL2ZzL3ViaWZzL3RuY19taXNjLmMKQEAgLTI4NCw2ICsyODQsNyBAQCBzdGF0aWMgaW50IHJlYWRfem5vZGUoc3RydWN0IHViaWZzX2luZm8gKmMsIHN0cnVjdCB1Ymlmc196YnJhbmNoICp6emJyLAogCWVyciA9IHViaWZzX25vZGVfY2hlY2tfaGFzaChjLCBpZHgsIHp6YnItPmhhc2gpOwogCWlmIChlcnIpIHsKIAkJdWJpZnNfYmFkX2hhc2goYywgaWR4LCB6emJyLT5oYXNoLCBsbnVtLCBvZmZzKTsKKwkJa2ZyZWUoaWR4KTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKZGlmZiAtLWdpdCBhL2ZzL3VkZi9iYWxsb2MuYyBiL2ZzL3VkZi9iYWxsb2MuYwppbmRleCBlYzg1YWVhLi4wMmYwM2ZhIDEwMDY0NAotLS0gYS9mcy91ZGYvYmFsbG9jLmMKKysrIGIvZnMvdWRmL2JhbGxvYy5jCkBAIC0zMjUsNiArMzI1LDE3IEBAIHN0YXRpYyB1ZGZfcGJsa190IHVkZl9iaXRtYXBfbmV3X2Jsb2NrKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJbmV3YmxvY2sgPSBiaXQgKyAoYmxvY2tfZ3JvdXAgPDwgKHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzICsgMykpIC0KIAkJKHNpemVvZihzdHJ1Y3Qgc3BhY2VCaXRtYXBEZXNjKSA8PCAzKTsKIAorCWlmIChuZXdibG9jayA+PSBzYmktPnNfcGFydG1hcHNbcGFydGl0aW9uXS5zX3BhcnRpdGlvbl9sZW4pIHsKKwkJLyoKKwkJICogUmFuIG9mZiB0aGUgZW5kIG9mIHRoZSBiaXRtYXAsIGFuZCBiaXRzIGZvbGxvd2luZyBhcmUKKwkJICogbm9uLWNvbXBsaWFudCAobm90IGFsbCB6ZXJvKQorCQkgKi8KKwkJdWRmX2VycihzYiwgImJpdG1hcCBmb3IgcGFydGl0aW9uICVkIGNvcnJ1cHRlZCAoYmxvY2sgJXUgbWFya2VkIgorCQkJIiBhcyBmcmVlLCBwYXJ0aXRpb24gbGVuZ3RoIGlzICV1KVxuIiwgcGFydGl0aW9uLAorCQkJbmV3YmxvY2ssIHNiaS0+c19wYXJ0bWFwc1twYXJ0aXRpb25dLnNfcGFydGl0aW9uX2xlbik7CisJCWdvdG8gZXJyb3JfcmV0dXJuOworCX0KKwogCWlmICghdWRmX2NsZWFyX2JpdChiaXQsIGJoLT5iX2RhdGEpKSB7CiAJCXVkZl9kZWJ1ZygiYml0IGFscmVhZHkgY2xlYXJlZCBmb3IgYmxvY2sgJWRcbiIsIGJpdCk7CiAJCWdvdG8gcmVwZWF0OwpkaWZmIC0tZ2l0IGEvZnMvdWRmL2VjbWFfMTY3LmggYi9mcy91ZGYvZWNtYV8xNjcuaAppbmRleCA5ZjI0YmQxLi5mYjdmMmM3IDEwMDY0NAotLS0gYS9mcy91ZGYvZWNtYV8xNjcuaAorKysgYi9mcy91ZGYvZWNtYV8xNjcuaApAQCAtODgsNiArODgsMjAgQEAgc3RydWN0IHJlZ2lkIHsKICNkZWZpbmUgRU5USVRZSURfRkxBR1NfRElSVFkJCTB4MDAKICNkZWZpbmUgRU5USVRZSURfRkxBR1NfUFJPVEVDVEVECTB4MDEKIAorLyogT1NUQSBVREYgMi4xLjUuMiAqLworI2RlZmluZSBVREZfSURfQ09NUExJQU5UICIqT1NUQSBVREYgQ29tcGxpYW50IgorCisvKiBPU1RBIFVERiAyLjEuNS4zICovCitzdHJ1Y3QgZG9tYWluRW50aXR5SURTdWZmaXggeworCXVpbnQxNl90CXJldmlzaW9uOworCXVpbnQ4X3QJCWZsYWdzOworCXVpbnQ4X3QJCXJlc2VydmVkWzVdOworfTsKKworLyogT1NUQSBVREYgMi4xLjUuMyAqLworI2RlZmluZSBFTlRJVFlJRFNVRkZJWF9GTEFHU19IQVJEV1JJVEVQUk9URUNUIDAKKyNkZWZpbmUgRU5USVRZSURTVUZGSVhfRkxBR1NfU09GVFdSSVRFUFJPVEVDVCAxCisKIC8qIFZvbHVtZSBTdHJ1Y3R1cmUgRGVzY3JpcHRvciAoRUNNQSAxNjdyMyAyLzkuMSkgKi8KICNkZWZpbmUgVlNEX1NURF9JRF9MRU4JCQk1CiBzdHJ1Y3Qgdm9sU3RydWN0RGVzYyB7CmRpZmYgLS1naXQgYS9mcy91ZGYvZmlsZS5jIGIvZnMvdWRmL2ZpbGUuYwppbmRleCBjZDMxZTRmLi42Mjg5NDFhIDEwMDY0NAotLS0gYS9mcy91ZGYvZmlsZS5jCisrKyBiL2ZzL3VkZi9maWxlLmMKQEAgLTI4MCw2ICsyODAsOSBAQCBzdGF0aWMgaW50IHVkZl9zZXRhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICphdHRyKQogCQkJcmV0dXJuIGVycm9yOwogCX0KIAorCWlmIChhdHRyLT5pYV92YWxpZCAmIEFUVFJfTU9ERSkKKwkJdWRmX3VwZGF0ZV9leHRyYV9wZXJtcyhpbm9kZSwgYXR0ci0+aWFfbW9kZSk7CisKIAlzZXRhdHRyX2NvcHkoaW5vZGUsIGF0dHIpOwogCW1hcmtfaW5vZGVfZGlydHkoaW5vZGUpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZnMvdWRmL2lhbGxvYy5jIGIvZnMvdWRmL2lhbGxvYy5jCmluZGV4IGY4ZTU4NzIuLjBhZGI0MDcgMTAwNjQ0Ci0tLSBhL2ZzL3VkZi9pYWxsb2MuYworKysgYi9mcy91ZGYvaWFsbG9jLmMKQEAgLTExOCw2ICsxMTgsOSBAQCBzdHJ1Y3QgaW5vZGUgKnVkZl9uZXdfaW5vZGUoc3RydWN0IGlub2RlICpkaXIsIHVtb2RlX3QgbW9kZSkKIAlpaW5mby0+aV9sZW5BbGxvYyA9IDA7CiAJaWluZm8tPmlfdXNlID0gMDsKIAlpaW5mby0+aV9jaGVja3BvaW50ID0gMTsKKwlpaW5mby0+aV9leHRyYVBlcm1zID0gRkVfUEVSTV9VX0NIQVRUUjsKKwl1ZGZfdXBkYXRlX2V4dHJhX3Blcm1zKGlub2RlLCBtb2RlKTsKKwogCWlmIChVREZfUVVFUllfRkxBRyhpbm9kZS0+aV9zYiwgVURGX0ZMQUdfVVNFX0FEX0lOX0lDQikpCiAJCWlpbmZvLT5pX2FsbG9jX3R5cGUgPSBJQ0JUQUdfRkxBR19BRF9JTl9JQ0I7CiAJZWxzZSBpZiAoVURGX1FVRVJZX0ZMQUcoaW5vZGUtPmlfc2IsIFVERl9GTEFHX1VTRV9TSE9SVF9BRCkpCmRpZmYgLS1naXQgYS9mcy91ZGYvaW5vZGUuYyBiL2ZzL3VkZi9pbm9kZS5jCmluZGV4IDliYjE4MzEuLmVhODAwMzYgMTAwNjQ0Ci0tLSBhL2ZzL3VkZi9pbm9kZS5jCisrKyBiL2ZzL3VkZi9pbm9kZS5jCkBAIC00NSw2ICs0NSwxMyBAQAogCiAjZGVmaW5lIEVYVEVOVF9NRVJHRV9TSVpFIDUKIAorI2RlZmluZSBGRV9NQVBQRURfUEVSTVMJKEZFX1BFUk1fVV9SRUFEIHwgRkVfUEVSTV9VX1dSSVRFIHwgRkVfUEVSTV9VX0VYRUMgfCBcCisJCQkgRkVfUEVSTV9HX1JFQUQgfCBGRV9QRVJNX0dfV1JJVEUgfCBGRV9QRVJNX0dfRVhFQyB8IFwKKwkJCSBGRV9QRVJNX09fUkVBRCB8IEZFX1BFUk1fT19XUklURSB8IEZFX1BFUk1fT19FWEVDKQorCisjZGVmaW5lIEZFX0RFTEVURV9QRVJNUwkoRkVfUEVSTV9VX0RFTEVURSB8IEZFX1BFUk1fR19ERUxFVEUgfCBcCisJCQkgRkVfUEVSTV9PX0RFTEVURSkKKwogc3RhdGljIHVtb2RlX3QgdWRmX2NvbnZlcnRfcGVybWlzc2lvbnMoc3RydWN0IGZpbGVFbnRyeSAqKTsKIHN0YXRpYyBpbnQgdWRmX3VwZGF0ZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKIHN0YXRpYyBpbnQgdWRmX3N5bmNfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7CkBAIC0xNDU4LDYgKzE0NjUsOCBAQCBzdGF0aWMgaW50IHVkZl9yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGJvb2wgaGlkZGVuX2lub2RlKQogCWVsc2UKIAkJaW5vZGUtPmlfbW9kZSA9IHVkZl9jb252ZXJ0X3Blcm1pc3Npb25zKGZlKTsKIAlpbm9kZS0+aV9tb2RlICY9IH5zYmktPnNfdW1hc2s7CisJaWluZm8tPmlfZXh0cmFQZXJtcyA9IGxlMzJfdG9fY3B1KGZlLT5wZXJtaXNzaW9ucykgJiB+RkVfTUFQUEVEX1BFUk1TOworCiAJcmVhZF91bmxvY2soJnNiaS0+c19jcmVkX2xvY2spOwogCiAJbGlua19jb3VudCA9IGxlMTZfdG9fY3B1KGZlLT5maWxlTGlua0NvdW50KTsKQEAgLTE0ODUsNiArMTQ5NCw4IEBAIHN0YXRpYyBpbnQgdWRmX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgYm9vbCBoaWRkZW5faW5vZGUpCiAJCWlpbmZvLT5pX2xlbkVBdHRyID0gbGUzMl90b19jcHUoZmUtPmxlbmd0aEV4dGVuZGVkQXR0cik7CiAJCWlpbmZvLT5pX2xlbkFsbG9jID0gbGUzMl90b19jcHUoZmUtPmxlbmd0aEFsbG9jRGVzY3MpOwogCQlpaW5mby0+aV9jaGVja3BvaW50ID0gbGUzMl90b19jcHUoZmUtPmNoZWNrcG9pbnQpOworCQlpaW5mby0+aV9zdHJlYW1kaXIgPSAwOworCQlpaW5mby0+aV9sZW5TdHJlYW1zID0gMDsKIAl9IGVsc2UgewogCQlpbm9kZS0+aV9ibG9ja3MgPSBsZTY0X3RvX2NwdShlZmUtPmxvZ2ljYWxCbG9ja3NSZWNvcmRlZCkgPDwKIAkJICAgIChpbm9kZS0+aV9zYi0+c19ibG9ja3NpemVfYml0cyAtIDkpOwpAQCAtMTQ5OCw2ICsxNTA5LDE2IEBAIHN0YXRpYyBpbnQgdWRmX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgYm9vbCBoaWRkZW5faW5vZGUpCiAJCWlpbmZvLT5pX2xlbkVBdHRyID0gbGUzMl90b19jcHUoZWZlLT5sZW5ndGhFeHRlbmRlZEF0dHIpOwogCQlpaW5mby0+aV9sZW5BbGxvYyA9IGxlMzJfdG9fY3B1KGVmZS0+bGVuZ3RoQWxsb2NEZXNjcyk7CiAJCWlpbmZvLT5pX2NoZWNrcG9pbnQgPSBsZTMyX3RvX2NwdShlZmUtPmNoZWNrcG9pbnQpOworCisJCS8qIE5hbWVkIHN0cmVhbXMgKi8KKwkJaWluZm8tPmlfc3RyZWFtZGlyID0gKGVmZS0+c3RyZWFtRGlyZWN0b3J5SUNCLmV4dExlbmd0aCAhPSAwKTsKKwkJaWluZm8tPmlfbG9jU3RyZWFtZGlyID0KKwkJCWxlbGJfdG9fY3B1KGVmZS0+c3RyZWFtRGlyZWN0b3J5SUNCLmV4dExvY2F0aW9uKTsKKwkJaWluZm8tPmlfbGVuU3RyZWFtcyA9IGxlNjRfdG9fY3B1KGVmZS0+b2JqZWN0U2l6ZSk7CisJCWlmIChpaW5mby0+aV9sZW5TdHJlYW1zID49IGlub2RlLT5pX3NpemUpCisJCQlpaW5mby0+aV9sZW5TdHJlYW1zIC09IGlub2RlLT5pX3NpemU7CisJCWVsc2UKKwkJCWlpbmZvLT5pX2xlblN0cmVhbXMgPSAwOwogCX0KIAlpbm9kZS0+aV9nZW5lcmF0aW9uID0gaWluZm8tPmlfdW5pcXVlOwogCkBAIC0xNjE5LDYgKzE2NDAsMjMgQEAgc3RhdGljIHVtb2RlX3QgdWRmX2NvbnZlcnRfcGVybWlzc2lvbnMoc3RydWN0IGZpbGVFbnRyeSAqZmUpCiAJcmV0dXJuIG1vZGU7CiB9CiAKK3ZvaWQgdWRmX3VwZGF0ZV9leHRyYV9wZXJtcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1bW9kZV90IG1vZGUpCit7CisJc3RydWN0IHVkZl9pbm9kZV9pbmZvICppaW5mbyA9IFVERl9JKGlub2RlKTsKKworCS8qCisJICogVURGIDIuMDEgc2VjLiAzLjMuMy4zIE5vdGUgMjoKKwkgKiBJbiBVbml4LCBkZWxldGUgcGVybWlzc2lvbiB0cmFja3Mgd3JpdGUKKwkgKi8KKwlpaW5mby0+aV9leHRyYVBlcm1zICY9IH5GRV9ERUxFVEVfUEVSTVM7CisJaWYgKG1vZGUgJiAwMjAwKQorCQlpaW5mby0+aV9leHRyYVBlcm1zIHw9IEZFX1BFUk1fVV9ERUxFVEU7CisJaWYgKG1vZGUgJiAwMDIwKQorCQlpaW5mby0+aV9leHRyYVBlcm1zIHw9IEZFX1BFUk1fR19ERUxFVEU7CisJaWYgKG1vZGUgJiAwMDAyKQorCQlpaW5mby0+aV9leHRyYVBlcm1zIHw9IEZFX1BFUk1fT19ERUxFVEU7Cit9CisKIGludCB1ZGZfd3JpdGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCiB7CiAJcmV0dXJuIHVkZl91cGRhdGVfaW5vZGUoaW5vZGUsIHdiYy0+c3luY19tb2RlID09IFdCX1NZTkNfQUxMKTsKQEAgLTE2OTEsMTAgKzE3MjksNyBAQCBzdGF0aWMgaW50IHVkZl91cGRhdGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGRvX3N5bmMpCiAJCSAgICgoaW5vZGUtPmlfbW9kZSAmIDAwNzApIDw8IDIpIHwKIAkJICAgKChpbm9kZS0+aV9tb2RlICYgMDcwMCkgPDwgNCk7CiAKLQl1ZGZwZXJtcyB8PSAobGUzMl90b19jcHUoZmUtPnBlcm1pc3Npb25zKSAmCi0JCSAgICAoRkVfUEVSTV9PX0RFTEVURSB8IEZFX1BFUk1fT19DSEFUVFIgfAotCQkgICAgIEZFX1BFUk1fR19ERUxFVEUgfCBGRV9QRVJNX0dfQ0hBVFRSIHwKLQkJICAgICBGRV9QRVJNX1VfREVMRVRFIHwgRkVfUEVSTV9VX0NIQVRUUikpOworCXVkZnBlcm1zIHw9IGlpbmZvLT5pX2V4dHJhUGVybXM7CiAJZmUtPnBlcm1pc3Npb25zID0gY3B1X3RvX2xlMzIodWRmcGVybXMpOwogCiAJaWYgKFNfSVNESVIoaW5vZGUtPmlfbW9kZSkgJiYgaW5vZGUtPmlfbmxpbmsgPiAwKQpAQCAtMTc2MCw5ICsxNzk1LDE5IEBAIHN0YXRpYyBpbnQgdWRmX3VwZGF0ZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgZG9fc3luYykKIAkJICAgICAgIGlpbmZvLT5pX2V4dC5pX2RhdGEsCiAJCSAgICAgICBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemUgLQogCQkJCQlzaXplb2Yoc3RydWN0IGV4dGVuZGVkRmlsZUVudHJ5KSk7Ci0JCWVmZS0+b2JqZWN0U2l6ZSA9IGNwdV90b19sZTY0KGlub2RlLT5pX3NpemUpOworCQllZmUtPm9iamVjdFNpemUgPQorCQkJY3B1X3RvX2xlNjQoaW5vZGUtPmlfc2l6ZSArIGlpbmZvLT5pX2xlblN0cmVhbXMpOwogCQllZmUtPmxvZ2ljYWxCbG9ja3NSZWNvcmRlZCA9IGNwdV90b19sZTY0KGxiX3JlY29yZGVkKTsKIAorCQlpZiAoaWluZm8tPmlfc3RyZWFtZGlyKSB7CisJCQlzdHJ1Y3QgbG9uZ19hZCAqaWNiX2xhZCA9ICZlZmUtPnN0cmVhbURpcmVjdG9yeUlDQjsKKworCQkJaWNiX2xhZC0+ZXh0TG9jYXRpb24gPQorCQkJCWNwdV90b19sZWxiKGlpbmZvLT5pX2xvY1N0cmVhbWRpcik7CisJCQlpY2JfbGFkLT5leHRMZW5ndGggPQorCQkJCWNwdV90b19sZTMyKGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZSk7CisJCX0KKwogCQl1ZGZfYWRqdXN0X3RpbWUoaWluZm8sIGlub2RlLT5pX2F0aW1lKTsKIAkJdWRmX2FkanVzdF90aW1lKGlpbmZvLCBpbm9kZS0+aV9tdGltZSk7CiAJCXVkZl9hZGp1c3RfdGltZShpaW5mbywgaW5vZGUtPmlfY3RpbWUpOwpkaWZmIC0tZ2l0IGEvZnMvdWRmL3N1cGVyLmMgYi9mcy91ZGYvc3VwZXIuYwppbmRleCBhMTQzNDYxLi44YzI4ZTkzIDEwMDY0NAotLS0gYS9mcy91ZGYvc3VwZXIuYworKysgYi9mcy91ZGYvc3VwZXIuYwpAQCAtOTIsMTAgKzkyLDYgQEAgc3RhdGljIHZvaWQgdWRmX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CiBzdGF0aWMgaW50IHVkZl9zeW5jX2ZzKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQpOwogc3RhdGljIGludCB1ZGZfcmVtb3VudF9mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50ICosIGNoYXIgKik7CiBzdGF0aWMgdm9pZCB1ZGZfbG9hZF9sb2dpY2Fsdm9saW50KHN0cnVjdCBzdXBlcl9ibG9jayAqLCBzdHJ1Y3Qga2VybmVsX2V4dGVudF9hZCk7Ci1zdGF0aWMgaW50IHVkZl9maW5kX2ZpbGVzZXQoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBrZXJuZWxfbGJfYWRkciAqLAotCQkJICAgIHN0cnVjdCBrZXJuZWxfbGJfYWRkciAqKTsKLXN0YXRpYyB2b2lkIHVkZl9sb2FkX2ZpbGVzZXQoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBidWZmZXJfaGVhZCAqLAotCQkJICAgICBzdHJ1Y3Qga2VybmVsX2xiX2FkZHIgKik7CiBzdGF0aWMgdm9pZCB1ZGZfb3Blbl9sdmlkKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIHN0YXRpYyB2b2lkIHVkZl9jbG9zZV9sdmlkKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgdWRmX2NvdW50X2ZyZWUoc3RydWN0IHN1cGVyX2Jsb2NrICopOwpAQCAtMTUxLDkgKzE0NywxMSBAQCBzdGF0aWMgc3RydWN0IGlub2RlICp1ZGZfYWxsb2NfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAogCWVpLT5pX3VuaXF1ZSA9IDA7CiAJZWktPmlfbGVuRXh0ZW50cyA9IDA7CisJZWktPmlfbGVuU3RyZWFtcyA9IDA7CiAJZWktPmlfbmV4dF9hbGxvY19ibG9jayA9IDA7CiAJZWktPmlfbmV4dF9hbGxvY19nb2FsID0gMDsKIAllaS0+aV9zdHJhdDQwOTYgPSAwOworCWVpLT5pX3N0cmVhbWRpciA9IDA7CiAJaW5pdF9yd3NlbSgmZWktPmlfZGF0YV9zZW0pOwogCWVpLT5jYWNoZWRfZXh0ZW50LmxzdGFydCA9IC0xOwogCXNwaW5fbG9ja19pbml0KCZlaS0+aV9leHRlbnRfY2FjaGVfbG9jayk7CkBAIC0yNzEsOCArMjY5LDcgQEAgc3RhdGljIHZvaWQgdWRmX3NiX2ZyZWVfYml0bWFwKHN0cnVjdCB1ZGZfYml0bWFwICpiaXRtYXApCiAJaW50IG5yX2dyb3VwcyA9IGJpdG1hcC0+c19ucl9ncm91cHM7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbnJfZ3JvdXBzOyBpKyspCi0JCWlmIChiaXRtYXAtPnNfYmxvY2tfYml0bWFwW2ldKQotCQkJYnJlbHNlKGJpdG1hcC0+c19ibG9ja19iaXRtYXBbaV0pOworCQlicmVsc2UoYml0bWFwLT5zX2Jsb2NrX2JpdG1hcFtpXSk7CiAKIAlrdmZyZWUoYml0bWFwKTsKIH0KQEAgLTY0NiwxNiArNjQzLDY3IEBAIHN0YXRpYyBpbnQgdWRmX3JlbW91bnRfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50ICpmbGFncywgY2hhciAqb3B0aW9ucykKIAlyZXR1cm4gZXJyb3I7CiB9CiAKLS8qIENoZWNrIFZvbHVtZSBTdHJ1Y3R1cmUgRGVzY3JpcHRvcnMgKEVDTUEgMTY3IDIvOS4xKSAqLwotLyogV2UgYWxzbyBjaGVjayBhbnkgIkNELVJPTSBWb2x1bWUgRGVzY3JpcHRvciBTZXQiIChFQ01BIDE2NyAyLzguMy4xKSAqLwotc3RhdGljIGxvZmZfdCB1ZGZfY2hlY2tfdnNkKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCisvKgorICogQ2hlY2sgVlNEIGRlc2NyaXB0b3IuIFJldHVybnMgLTEgaW4gY2FzZSB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB2b2x1bWUKKyAqIHJlY29nbml0aW9uIGFyZWEsIDAgaWYgdGhlIGRlc2NyaXB0b3IgaXMgdmFsaWQgYnV0IG5vbi1pbnRlcmVzdGluZywgMSBpZgorICogd2UgZm91bmQgb25lIG9mIE5TUiBkZXNjcmlwdG9ycyB3ZSBhcmUgbG9va2luZyBmb3IuCisgKi8KK3N0YXRpYyBpbnQgaWRlbnRpZnlfdnNkKGNvbnN0IHN0cnVjdCB2b2xTdHJ1Y3REZXNjICp2c2QpCit7CisJaW50IHJldCA9IDA7CisKKwlpZiAoIW1lbWNtcCh2c2QtPnN0ZElkZW50LCBWU0RfU1REX0lEX0NEMDAxLCBWU0RfU1REX0lEX0xFTikpIHsKKwkJc3dpdGNoICh2c2QtPnN0cnVjdFR5cGUpIHsKKwkJY2FzZSAwOgorCQkJdWRmX2RlYnVnKCJJU085NjYwIEJvb3QgUmVjb3JkIGZvdW5kXG4iKTsKKwkJCWJyZWFrOworCQljYXNlIDE6CisJCQl1ZGZfZGVidWcoIklTTzk2NjAgUHJpbWFyeSBWb2x1bWUgRGVzY3JpcHRvciBmb3VuZFxuIik7CisJCQlicmVhazsKKwkJY2FzZSAyOgorCQkJdWRmX2RlYnVnKCJJU085NjYwIFN1cHBsZW1lbnRhcnkgVm9sdW1lIERlc2NyaXB0b3IgZm91bmRcbiIpOworCQkJYnJlYWs7CisJCWNhc2UgMzoKKwkJCXVkZl9kZWJ1ZygiSVNPOTY2MCBWb2x1bWUgUGFydGl0aW9uIERlc2NyaXB0b3IgZm91bmRcbiIpOworCQkJYnJlYWs7CisJCWNhc2UgMjU1OgorCQkJdWRmX2RlYnVnKCJJU085NjYwIFZvbHVtZSBEZXNjcmlwdG9yIFNldCBUZXJtaW5hdG9yIGZvdW5kXG4iKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJdWRmX2RlYnVnKCJJU085NjYwIFZSUyAoJXUpIGZvdW5kXG4iLCB2c2QtPnN0cnVjdFR5cGUpOworCQkJYnJlYWs7CisJCX0KKwl9IGVsc2UgaWYgKCFtZW1jbXAodnNkLT5zdGRJZGVudCwgVlNEX1NURF9JRF9CRUEwMSwgVlNEX1NURF9JRF9MRU4pKQorCQk7IC8qIHJldCA9IDAgKi8KKwllbHNlIGlmICghbWVtY21wKHZzZC0+c3RkSWRlbnQsIFZTRF9TVERfSURfTlNSMDIsIFZTRF9TVERfSURfTEVOKSkKKwkJcmV0ID0gMTsKKwllbHNlIGlmICghbWVtY21wKHZzZC0+c3RkSWRlbnQsIFZTRF9TVERfSURfTlNSMDMsIFZTRF9TVERfSURfTEVOKSkKKwkJcmV0ID0gMTsKKwllbHNlIGlmICghbWVtY21wKHZzZC0+c3RkSWRlbnQsIFZTRF9TVERfSURfQk9PVDIsIFZTRF9TVERfSURfTEVOKSkKKwkJOyAvKiByZXQgPSAwICovCisJZWxzZSBpZiAoIW1lbWNtcCh2c2QtPnN0ZElkZW50LCBWU0RfU1REX0lEX0NEVzAyLCBWU0RfU1REX0lEX0xFTikpCisJCTsgLyogcmV0ID0gMCAqLworCWVsc2UgeworCQkvKiBURUEwMSBvciBpbnZhbGlkIGlkIDogZW5kIG9mIHZvbHVtZSByZWNvZ25pdGlvbiBhcmVhICovCisJCXJldCA9IC0xOworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBDaGVjayBWb2x1bWUgU3RydWN0dXJlIERlc2NyaXB0b3JzIChFQ01BIDE2NyAyLzkuMSkKKyAqIFdlIGFsc28gY2hlY2sgYW55ICJDRC1ST00gVm9sdW1lIERlc2NyaXB0b3IgU2V0IiAoRUNNQSAxNjcgMi84LjMuMSkKKyAqIEByZXR1cm4gICAxIGlmIE5TUjAyIG9yIE5TUjAzIGZvdW5kLAorICoJICAgIC0xIGlmIGZpcnN0IHNlY3RvciByZWFkIGVycm9yLCAwIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50IHVkZl9jaGVja192c2Qoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3Qgdm9sU3RydWN0RGVzYyAqdnNkID0gTlVMTDsKIAlsb2ZmX3Qgc2VjdG9yID0gVlNEX0ZJUlNUX1NFQ1RPUl9PRkZTRVQ7CiAJaW50IHNlY3RvcnNpemU7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IE5VTEw7Ci0JaW50IG5zcjAyID0gMDsKLQlpbnQgbnNyMDMgPSAwOworCWludCBuc3IgPSAwOwogCXN0cnVjdCB1ZGZfc2JfaW5mbyAqc2JpOwogCiAJc2JpID0gVURGX1NCKHNiKTsKQEAgLTY3OSw3MSArNzI3LDM2IEBAIHN0YXRpYyBsb2ZmX3QgdWRmX2NoZWNrX3ZzZChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCSAqIGFjdGl2aXR5LiBUaGlzIGFjdHVhbGx5IGhhcHBlbmVkIHdpdGggdW5pbml0aWFsaXNlZCBTU0QgcGFydGl0aW9ucwogCSAqIChhbGwgMHhGRikgYmVmb3JlIHRoZSBjaGVjayBmb3IgdGhlIGxpbWl0IGFuZCBhbGwgdmFsaWQgSURzIHdlcmUKIAkgKiBhZGRlZCAqLwotCWZvciAoOyAhbnNyMDIgJiYgIW5zcjAzICYmIHNlY3RvciA8IFZTRF9NQVhfU0VDVE9SX09GRlNFVDsKLQkgICAgIHNlY3RvciArPSBzZWN0b3JzaXplKSB7CisJZm9yICg7ICFuc3IgJiYgc2VjdG9yIDwgVlNEX01BWF9TRUNUT1JfT0ZGU0VUOyBzZWN0b3IgKz0gc2VjdG9yc2l6ZSkgewogCQkvKiBSZWFkIGEgYmxvY2sgKi8KIAkJYmggPSB1ZGZfdHJlYWQoc2IsIHNlY3RvciA+PiBzYi0+c19ibG9ja3NpemVfYml0cyk7CiAJCWlmICghYmgpCiAJCQlicmVhazsKIAotCQkvKiBMb29rIGZvciBJU08gIGRlc2NyaXB0b3JzICovCiAJCXZzZCA9IChzdHJ1Y3Qgdm9sU3RydWN0RGVzYyAqKShiaC0+Yl9kYXRhICsKIAkJCQkJICAgICAgKHNlY3RvciAmIChzYi0+c19ibG9ja3NpemUgLSAxKSkpOwotCi0JCWlmICghc3RybmNtcCh2c2QtPnN0ZElkZW50LCBWU0RfU1REX0lEX0NEMDAxLAotCQkJCSAgICBWU0RfU1REX0lEX0xFTikpIHsKLQkJCXN3aXRjaCAodnNkLT5zdHJ1Y3RUeXBlKSB7Ci0JCQljYXNlIDA6Ci0JCQkJdWRmX2RlYnVnKCJJU085NjYwIEJvb3QgUmVjb3JkIGZvdW5kXG4iKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgMToKLQkJCQl1ZGZfZGVidWcoIklTTzk2NjAgUHJpbWFyeSBWb2x1bWUgRGVzY3JpcHRvciBmb3VuZFxuIik7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIDI6Ci0JCQkJdWRmX2RlYnVnKCJJU085NjYwIFN1cHBsZW1lbnRhcnkgVm9sdW1lIERlc2NyaXB0b3IgZm91bmRcbiIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSAzOgotCQkJCXVkZl9kZWJ1ZygiSVNPOTY2MCBWb2x1bWUgUGFydGl0aW9uIERlc2NyaXB0b3IgZm91bmRcbiIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSAyNTU6Ci0JCQkJdWRmX2RlYnVnKCJJU085NjYwIFZvbHVtZSBEZXNjcmlwdG9yIFNldCBUZXJtaW5hdG9yIGZvdW5kXG4iKTsKLQkJCQlicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJdWRmX2RlYnVnKCJJU085NjYwIFZSUyAoJXUpIGZvdW5kXG4iLAotCQkJCQkgIHZzZC0+c3RydWN0VHlwZSk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0gZWxzZSBpZiAoIXN0cm5jbXAodnNkLT5zdGRJZGVudCwgVlNEX1NURF9JRF9CRUEwMSwKLQkJCQkgICAgVlNEX1NURF9JRF9MRU4pKQotCQkJOyAvKiBub3RoaW5nICovCi0JCWVsc2UgaWYgKCFzdHJuY21wKHZzZC0+c3RkSWRlbnQsIFZTRF9TVERfSURfVEVBMDEsCi0JCQkJICAgIFZTRF9TVERfSURfTEVOKSkgeworCQluc3IgPSBpZGVudGlmeV92c2QodnNkKTsKKwkJLyogRm91bmQgTlNSIG9yIGVuZD8gKi8KKwkJaWYgKG5zcikgewogCQkJYnJlbHNlKGJoKTsKIAkJCWJyZWFrOwotCQl9IGVsc2UgaWYgKCFzdHJuY21wKHZzZC0+c3RkSWRlbnQsIFZTRF9TVERfSURfTlNSMDIsCi0JCQkJICAgIFZTRF9TVERfSURfTEVOKSkKLQkJCW5zcjAyID0gc2VjdG9yOwotCQllbHNlIGlmICghc3RybmNtcCh2c2QtPnN0ZElkZW50LCBWU0RfU1REX0lEX05TUjAzLAotCQkJCSAgICBWU0RfU1REX0lEX0xFTikpCi0JCQluc3IwMyA9IHNlY3RvcjsKLQkJZWxzZSBpZiAoIXN0cm5jbXAodnNkLT5zdGRJZGVudCwgVlNEX1NURF9JRF9CT09UMiwKLQkJCQkgICAgVlNEX1NURF9JRF9MRU4pKQotCQkJOyAvKiBub3RoaW5nICovCi0JCWVsc2UgaWYgKCFzdHJuY21wKHZzZC0+c3RkSWRlbnQsIFZTRF9TVERfSURfQ0RXMDIsCi0JCQkJICAgIFZTRF9TVERfSURfTEVOKSkKLQkJCTsgLyogbm90aGluZyAqLwotCQllbHNlIHsKLQkJCS8qIGludmFsaWQgaWQgOiBlbmQgb2Ygdm9sdW1lIHJlY29nbml0aW9uIGFyZWEgKi8KLQkJCWJyZWxzZShiaCk7Ci0JCQlicmVhazsKKwkJfQorCQkvKgorCQkgKiBTcGVjaWFsIGhhbmRsaW5nIGZvciBpbXByb3Blcmx5IGZvcm1hdHRlZCBWUlMgKGUuZy4sIFdpbjEwKQorCQkgKiB3aGVyZSBjb21wb25lbnRzIGFyZSBzZXBhcmF0ZWQgYnkgMjA0OCBieXRlcyBldmVuIHRob3VnaAorCQkgKiBzZWN0b3JzIGFyZSA0SworCQkgKi8KKwkJaWYgKHNiLT5zX2Jsb2Nrc2l6ZSA9PSA0MDk2KSB7CisJCQluc3IgPSBpZGVudGlmeV92c2QodnNkICsgMSk7CisJCQkvKiBJZ25vcmUgdW5rbm93biBJRHMuLi4gKi8KKwkJCWlmIChuc3IgPCAwKQorCQkJCW5zciA9IDA7CiAJCX0KIAkJYnJlbHNlKGJoKTsKIAl9CiAKLQlpZiAobnNyMDMpCi0JCXJldHVybiBuc3IwMzsKLQllbHNlIGlmIChuc3IwMikKLQkJcmV0dXJuIG5zcjAyOworCWlmIChuc3IgPiAwKQorCQlyZXR1cm4gMTsKIAllbHNlIGlmICghYmggJiYgc2VjdG9yIC0gKHNiaS0+c19zZXNzaW9uIDw8IHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzKSA9PQogCQkJVlNEX0ZJUlNUX1NFQ1RPUl9PRkZTRVQpCiAJCXJldHVybiAtMTsKQEAgLTc1MSwzNCArNzY0LDgyIEBAIHN0YXRpYyBsb2ZmX3QgdWRmX2NoZWNrX3ZzZChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCQlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCB1ZGZfdmVyaWZ5X2RvbWFpbl9pZGVudGlmaWVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCisJCQkJCXN0cnVjdCByZWdpZCAqaWRlbnQsIGNoYXIgKmRuYW1lKQoreworCXN0cnVjdCBkb21haW5FbnRpdHlJRFN1ZmZpeCAqc3VmZml4OworCisJaWYgKG1lbWNtcChpZGVudC0+aWRlbnQsIFVERl9JRF9DT01QTElBTlQsIHN0cmxlbihVREZfSURfQ09NUExJQU5UKSkpIHsKKwkJdWRmX3dhcm4oc2IsICJOb3QgT1NUQSBVREYgY29tcGxpYW50ICVzIGRlc2NyaXB0b3IuXG4iLCBkbmFtZSk7CisJCWdvdG8gZm9yY2Vfcm87CisJfQorCWlmIChpZGVudC0+ZmxhZ3MgJiAoMSA8PCBFTlRJVFlJRF9GTEFHU19ESVJUWSkpIHsKKwkJdWRmX3dhcm4oc2IsICJQb3NzaWJseSBub3QgT1NUQSBVREYgY29tcGxpYW50ICVzIGRlc2NyaXB0b3IuXG4iLAorCQkJIGRuYW1lKTsKKwkJZ290byBmb3JjZV9ybzsKKwl9CisJc3VmZml4ID0gKHN0cnVjdCBkb21haW5FbnRpdHlJRFN1ZmZpeCAqKWlkZW50LT5pZGVudFN1ZmZpeDsKKwlpZiAoc3VmZml4LT5mbGFncyAmICgxIDw8IEVOVElUWUlEU1VGRklYX0ZMQUdTX0hBUkRXUklURVBST1RFQ1QpIHx8CisJICAgIHN1ZmZpeC0+ZmxhZ3MgJiAoMSA8PCBFTlRJVFlJRFNVRkZJWF9GTEFHU19TT0ZUV1JJVEVQUk9URUNUKSkgeworCQlpZiAoIXNiX3Jkb25seShzYikpIHsKKwkJCXVkZl93YXJuKHNiLCAiRGVzY3JpcHRvciBmb3IgJXMgbWFya2VkIHdyaXRlIHByb3RlY3RlZC4iCisJCQkJICIgRm9yY2luZyByZWFkIG9ubHkgbW91bnQuXG4iLCBkbmFtZSk7CisJCX0KKwkJZ290byBmb3JjZV9ybzsKKwl9CisJcmV0dXJuIDA7CisKK2ZvcmNlX3JvOgorCWlmICghc2JfcmRvbmx5KHNiKSkKKwkJcmV0dXJuIC1FQUNDRVM7CisJVURGX1NFVF9GTEFHKHNiLCBVREZfRkxBR19SV19JTkNPTVBBVCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdWRmX2xvYWRfZmlsZXNldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZmlsZVNldERlc2MgKmZzZXQsCisJCQkgICAgc3RydWN0IGtlcm5lbF9sYl9hZGRyICpyb290KQoreworCWludCByZXQ7CisKKwlyZXQgPSB1ZGZfdmVyaWZ5X2RvbWFpbl9pZGVudGlmaWVyKHNiLCAmZnNldC0+ZG9tYWluSWRlbnQsICJmaWxlIHNldCIpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJKnJvb3QgPSBsZWxiX3RvX2NwdShmc2V0LT5yb290RGlyZWN0b3J5SUNCLmV4dExvY2F0aW9uKTsKKwlVREZfU0Ioc2IpLT5zX3NlcmlhbF9udW1iZXIgPSBsZTE2X3RvX2NwdShmc2V0LT5kZXNjVGFnLnRhZ1NlcmlhbE51bSk7CisKKwl1ZGZfZGVidWcoIlJvb3RkaXIgYXQgYmxvY2s9JXUsIHBhcnRpdGlvbj0ldVxuIiwKKwkJICByb290LT5sb2dpY2FsQmxvY2tOdW0sIHJvb3QtPnBhcnRpdGlvblJlZmVyZW5jZU51bSk7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgdWRmX2ZpbmRfZmlsZXNldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJICAgIHN0cnVjdCBrZXJuZWxfbGJfYWRkciAqZmlsZXNldCwKIAkJCSAgICBzdHJ1Y3Qga2VybmVsX2xiX2FkZHIgKnJvb3QpCiB7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IE5VTEw7CiAJdWludDE2X3QgaWRlbnQ7CisJaW50IHJldDsKIAotCWlmIChmaWxlc2V0LT5sb2dpY2FsQmxvY2tOdW0gIT0gMHhGRkZGRkZGRiB8fAotCSAgICBmaWxlc2V0LT5wYXJ0aXRpb25SZWZlcmVuY2VOdW0gIT0gMHhGRkZGKSB7Ci0JCWJoID0gdWRmX3JlYWRfcHRhZ2dlZChzYiwgZmlsZXNldCwgMCwgJmlkZW50KTsKKwlpZiAoZmlsZXNldC0+bG9naWNhbEJsb2NrTnVtID09IDB4RkZGRkZGRkYgJiYKKwkgICAgZmlsZXNldC0+cGFydGl0aW9uUmVmZXJlbmNlTnVtID09IDB4RkZGRikKKwkJcmV0dXJuIC1FSU5WQUw7CiAKLQkJaWYgKCFiaCkgewotCQkJcmV0dXJuIDE7Ci0JCX0gZWxzZSBpZiAoaWRlbnQgIT0gVEFHX0lERU5UX0ZTRCkgewotCQkJYnJlbHNlKGJoKTsKLQkJCXJldHVybiAxOwotCQl9Ci0KLQkJdWRmX2RlYnVnKCJGaWxlc2V0IGF0IGJsb2NrPSV1LCBwYXJ0aXRpb249JXVcbiIsCi0JCQkgIGZpbGVzZXQtPmxvZ2ljYWxCbG9ja051bSwKLQkJCSAgZmlsZXNldC0+cGFydGl0aW9uUmVmZXJlbmNlTnVtKTsKLQotCQlVREZfU0Ioc2IpLT5zX3BhcnRpdGlvbiA9IGZpbGVzZXQtPnBhcnRpdGlvblJlZmVyZW5jZU51bTsKLQkJdWRmX2xvYWRfZmlsZXNldChzYiwgYmgsIHJvb3QpOworCWJoID0gdWRmX3JlYWRfcHRhZ2dlZChzYiwgZmlsZXNldCwgMCwgJmlkZW50KTsKKwlpZiAoIWJoKQorCQlyZXR1cm4gLUVJTzsKKwlpZiAoaWRlbnQgIT0gVEFHX0lERU5UX0ZTRCkgewogCQlicmVsc2UoYmgpOwotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQotCXJldHVybiAxOworCisJdWRmX2RlYnVnKCJGaWxlc2V0IGF0IGJsb2NrPSV1LCBwYXJ0aXRpb249JXVcbiIsCisJCSAgZmlsZXNldC0+bG9naWNhbEJsb2NrTnVtLCBmaWxlc2V0LT5wYXJ0aXRpb25SZWZlcmVuY2VOdW0pOworCisJVURGX1NCKHNiKS0+c19wYXJ0aXRpb24gPSBmaWxlc2V0LT5wYXJ0aXRpb25SZWZlcmVuY2VOdW07CisJcmV0ID0gdWRmX2xvYWRfZmlsZXNldChzYiwgKHN0cnVjdCBmaWxlU2V0RGVzYyAqKWJoLT5iX2RhdGEsIHJvb3QpOworCWJyZWxzZShiaCk7CisJcmV0dXJuIHJldDsKIH0KIAogLyoKQEAgLTc5NCw5ICs4NTUsNyBAQCBzdGF0aWMgaW50IHVkZl9sb2FkX3B2b2xkZXNjKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHNlY3Rvcl90IGJsb2NrKQogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CiAJdWludDE2X3QgaWRlbnQ7CiAJaW50IHJldCA9IC1FTk9NRU07Ci0jaWZkZWYgVURGRlNfREVCVUcKIAlzdHJ1Y3QgdGltZXN0YW1wICp0czsKLSNlbmRpZgogCiAJb3V0c3RyID0ga21hbGxvYygxMjgsIEdGUF9OT0ZTKTsKIAlpZiAoIW91dHN0cikKQEAgLTgxNywxMyArODc2LDEwIEBAIHN0YXRpYyBpbnQgdWRmX2xvYWRfcHZvbGRlc2Moc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc2VjdG9yX3QgYmxvY2spCiAKIAl1ZGZfZGlza19zdGFtcF90b190aW1lKCZVREZfU0Ioc2IpLT5zX3JlY29yZF90aW1lLAogCQkJICAgICAgcHZvbGRlc2MtPnJlY29yZGluZ0RhdGVBbmRUaW1lKTsKLSNpZmRlZiBVREZGU19ERUJVRwogCXRzID0gJnB2b2xkZXNjLT5yZWNvcmRpbmdEYXRlQW5kVGltZTsKIAl1ZGZfZGVidWcoInJlY29yZGluZyB0aW1lICUwNHUvJTAydS8lMDJ1ICUwMnU6JTAydSAoJXgpXG4iLAogCQkgIGxlMTZfdG9fY3B1KHRzLT55ZWFyKSwgdHMtPm1vbnRoLCB0cy0+ZGF5LCB0cy0+aG91ciwKIAkJICB0cy0+bWludXRlLCBsZTE2X3RvX2NwdSh0cy0+dHlwZUFuZFRpbWV6b25lKSk7Ci0jZW5kaWYKLQogCiAJcmV0ID0gdWRmX2RzdHJDUzB0b0NoYXIoc2IsIG91dHN0ciwgMzEsIHB2b2xkZXNjLT52b2xJZGVudCwgMzIpOwogCWlmIChyZXQgPCAwKSB7CkBAIC05MzksMjEgKzk5NSw2IEBAIHN0YXRpYyBpbnQgdWRmX2xvYWRfbWV0YWRhdGFfZmlsZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHBhcnRpdGlvbiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgdWRmX2xvYWRfZmlsZXNldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLAotCQkJICAgICBzdHJ1Y3Qga2VybmVsX2xiX2FkZHIgKnJvb3QpCi17Ci0Jc3RydWN0IGZpbGVTZXREZXNjICpmc2V0OwotCi0JZnNldCA9IChzdHJ1Y3QgZmlsZVNldERlc2MgKiliaC0+Yl9kYXRhOwotCi0JKnJvb3QgPSBsZWxiX3RvX2NwdShmc2V0LT5yb290RGlyZWN0b3J5SUNCLmV4dExvY2F0aW9uKTsKLQotCVVERl9TQihzYiktPnNfc2VyaWFsX251bWJlciA9IGxlMTZfdG9fY3B1KGZzZXQtPmRlc2NUYWcudGFnU2VyaWFsTnVtKTsKLQotCXVkZl9kZWJ1ZygiUm9vdGRpciBhdCBibG9jaz0ldSwgcGFydGl0aW9uPSV1XG4iLAotCQkgIHJvb3QtPmxvZ2ljYWxCbG9ja051bSwgcm9vdC0+cGFydGl0aW9uUmVmZXJlbmNlTnVtKTsKLX0KLQogaW50IHVkZl9jb21wdXRlX25yX2dyb3VwcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1MzIgcGFydGl0aW9uKQogewogCXN0cnVjdCB1ZGZfcGFydF9tYXAgKm1hcCA9ICZVREZfU0Ioc2IpLT5zX3BhcnRtYXBzW3BhcnRpdGlvbl07CkBAIC0xMjM4LDkgKzEyNzksNyBAQCBzdGF0aWMgaW50IHVkZl9sb2FkX3BhcnRkZXNjKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHNlY3Rvcl90IGJsb2NrKQogCSAqIFBIWVNJQ0FMIHBhcnRpdGlvbnMgYXJlIGFscmVhZHkgc2V0IHVwCiAJICovCiAJdHlwZTFfaWR4ID0gaTsKLSNpZmRlZiBVREZGU19ERUJVRwogCW1hcCA9IE5VTEw7IC8qIHN1cHJlc3MgJ21heWJlIHVzZWQgdW5pbml0aWFsaXplZCcgd2FybmluZyAqLwotI2VuZGlmCiAJZm9yIChpID0gMDsgaSA8IHNiaS0+c19wYXJ0aXRpb25zOyBpKyspIHsKIAkJbWFwID0gJnNiaS0+c19wYXJ0bWFwc1tpXTsKIApAQCAtMTM2NCw2ICsxNDAzLDEwIEBAIHN0YXRpYyBpbnQgdWRmX2xvYWRfbG9naWNhbHZvbChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzZWN0b3JfdCBibG9jaywKIAkJZ290byBvdXRfYmg7CiAJfQogCisJcmV0ID0gdWRmX3ZlcmlmeV9kb21haW5faWRlbnRpZmllcihzYiwgJmx2ZC0+ZG9tYWluSWRlbnQsCisJCQkJCSAgICJsb2dpY2FsIHZvbHVtZSIpOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2JoOwogCXJldCA9IHVkZl9zYl9hbGxvY19wYXJ0aXRpb25fbWFwcyhzYiwgbGUzMl90b19jcHUobHZkLT5udW1QYXJ0aXRpb25NYXBzKSk7CiAJaWYgKHJldCkKIAkJZ290byBvdXRfYmg7CkBAIC0xOTE1LDcgKzE5NTgsNyBAQCBzdGF0aWMgaW50IHVkZl9sb2FkX3ZycyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgdWRmX29wdGlvbnMgKnVvcHQsCiAJCQlpbnQgc2lsZW50LCBzdHJ1Y3Qga2VybmVsX2xiX2FkZHIgKmZpbGVzZXQpCiB7CiAJc3RydWN0IHVkZl9zYl9pbmZvICpzYmkgPSBVREZfU0Ioc2IpOwotCWxvZmZfdCBuc3Jfb2ZmOworCWludCBuc3IgPSAwOwogCWludCByZXQ7CiAKIAlpZiAoIXNiX3NldF9ibG9ja3NpemUoc2IsIHVvcHQtPmJsb2Nrc2l6ZSkpIHsKQEAgLTE5MjYsMTMgKzE5NjksMTMgQEAgc3RhdGljIGludCB1ZGZfbG9hZF92cnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IHVkZl9vcHRpb25zICp1b3B0LAogCXNiaS0+c19sYXN0X2Jsb2NrID0gdW9wdC0+bGFzdGJsb2NrOwogCWlmICghdW9wdC0+bm92cnMpIHsKIAkJLyogQ2hlY2sgdGhhdCBpdCBpcyBOU1IwMiBjb21wbGlhbnQgKi8KLQkJbnNyX29mZiA9IHVkZl9jaGVja192c2Qoc2IpOwotCQlpZiAoIW5zcl9vZmYpIHsKKwkJbnNyID0gdWRmX2NoZWNrX3ZzZChzYik7CisJCWlmICghbnNyKSB7CiAJCQlpZiAoIXNpbGVudCkKIAkJCQl1ZGZfd2FybihzYiwgIk5vIFZSUyBmb3VuZFxuIik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQotCQlpZiAobnNyX29mZiA9PSAtMSkKKwkJaWYgKG5zciA9PSAtMSkKIAkJCXVkZl9kZWJ1ZygiRmFpbGVkIHRvIHJlYWQgc2VjdG9yIGF0IG9mZnNldCAlZC4gIgogCQkJCSAgIkFzc3VtaW5nIG9wZW4gZGlzYy4gU2tpcHBpbmcgdmFsaWRpdHkgIgogCQkJCSAgImNoZWNrXG4iLCBWU0RfRklSU1RfU0VDVE9SX09GRlNFVCk7CkBAIC0yMjE2LDkgKzIyNTksOSBAQCBzdGF0aWMgaW50IHVkZl9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKm9wdGlvbnMsIGludCBzaWxlbnQpCiAJCVVERl9TRVRfRkxBRyhzYiwgVURGX0ZMQUdfUldfSU5DT01QQVQpOwogCX0KIAotCWlmICh1ZGZfZmluZF9maWxlc2V0KHNiLCAmZmlsZXNldCwgJnJvb3RkaXIpKSB7CisJcmV0ID0gdWRmX2ZpbmRfZmlsZXNldChzYiwgJmZpbGVzZXQsICZyb290ZGlyKTsKKwlpZiAocmV0IDwgMCkgewogCQl1ZGZfd2FybihzYiwgIk5vIGZpbGVzZXQgZm91bmRcbiIpOwotCQlyZXQgPSAtRUlOVkFMOwogCQlnb3RvIGVycm9yX291dDsKIAl9CiAKZGlmZiAtLWdpdCBhL2ZzL3VkZi91ZGZfaS5oIGIvZnMvdWRmL3VkZl9pLmgKaW5kZXggMmVmMGUyMS4uNDI0NWQxZiAxMDA2NDQKLS0tIGEvZnMvdWRmL3VkZl9pLmgKKysrIGIvZnMvdWRmL3VkZl9pLmgKQEAgLTM4LDE2ICszOCwyMCBAQCBzdHJ1Y3QgdWRmX2lub2RlX2luZm8gewogCV9fdTMyCQkJaV9uZXh0X2FsbG9jX2Jsb2NrOwogCV9fdTMyCQkJaV9uZXh0X2FsbG9jX2dvYWw7CiAJX191MzIJCQlpX2NoZWNrcG9pbnQ7CisJX191MzIJCQlpX2V4dHJhUGVybXM7CiAJdW5zaWduZWQJCWlfYWxsb2NfdHlwZSA6IDM7CiAJdW5zaWduZWQJCWlfZWZlIDogMTsJLyogZXh0ZW5kZWRGaWxlRW50cnkgKi8KIAl1bnNpZ25lZAkJaV91c2UgOiAxOwkvKiB1bmFsbG9jU3BhY2VFbnRyeSAqLwogCXVuc2lnbmVkCQlpX3N0cmF0NDA5NiA6IDE7Ci0JdW5zaWduZWQJCXJlc2VydmVkIDogMjY7CisJdW5zaWduZWQJCWlfc3RyZWFtZGlyIDogMTsKKwl1bnNpZ25lZAkJcmVzZXJ2ZWQgOiAyNTsKIAl1bmlvbiB7CiAJCXN0cnVjdCBzaG9ydF9hZAkqaV9zYWQ7CiAJCXN0cnVjdCBsb25nX2FkCQkqaV9sYWQ7CiAJCV9fdTgJCSppX2RhdGE7CiAJfSBpX2V4dDsKKwlzdHJ1Y3Qga2VybmVsX2xiX2FkZHIJaV9sb2NTdHJlYW1kaXI7CisJX191NjQJCQlpX2xlblN0cmVhbXM7CiAJc3RydWN0IHJ3X3NlbWFwaG9yZQlpX2RhdGFfc2VtOwogCXN0cnVjdCB1ZGZfZXh0X2NhY2hlIGNhY2hlZF9leHRlbnQ7CiAJLyogU3BpbmxvY2sgZm9yIHByb3RlY3RpbmcgZXh0ZW50IGNhY2hlICovCmRpZmYgLS1naXQgYS9mcy91ZGYvdWRmZGVjbC5oIGIvZnMvdWRmL3VkZmRlY2wuaAppbmRleCBkODllZjcxLi45ZGQwODE0IDEwMDY0NAotLS0gYS9mcy91ZGYvdWRmZGVjbC5oCisrKyBiL2ZzL3VkZi91ZGZkZWNsLmgKQEAgLTMxLDE2ICszMSw4IEBAIGV4dGVybiBfX3ByaW50ZigzLCA0KSB2b2lkIF91ZGZfd2FybihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogI2RlZmluZSB1ZGZfaW5mbyhmbXQsIC4uLikJCQkJCVwKIAlwcl9pbmZvKCJJTkZPICIgZm10LCAjI19fVkFfQVJHU19fKQogCi0jdW5kZWYgVURGRlNfREVCVUcKLQotI2lmZGVmIFVERkZTX0RFQlVHCiAjZGVmaW5lIHVkZl9kZWJ1ZyhmbXQsIC4uLikJCQkJCVwKLQlwcmludGsoS0VSTl9ERUJVRyBwcl9mbXQoIiVzOiVkOiVzOiAiIGZtdCksCQlcCi0JICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgX19mdW5jX18sICMjX19WQV9BUkdTX18pCi0jZWxzZQotI2RlZmluZSB1ZGZfZGVidWcoZm10LCAuLi4pCQkJCQlcCi0Jbm9fcHJpbnRrKGZtdCwgIyNfX1ZBX0FSR1NfXykKLSNlbmRpZgorCXByX2RlYnVnKCIlczolZDolczogIiBmbXQsIF9fRklMRV9fLCBfX0xJTkVfXywgX19mdW5jX18sICMjX19WQV9BUkdTX18pCiAKICNkZWZpbmUgdWRmX2ZpeGVkX3RvX3ZhcmlhYmxlKHgpICggKCAoICh4KSA+PiA1ICkgKiAzOSApICsgKCAoeCkgJiAweDAwMDAwMDFGICkgKQogI2RlZmluZSB1ZGZfdmFyaWFibGVfdG9fZml4ZWQoeCkgKCAoICggKHgpIC8gMzkgKSA8PCA1ICkgKyAoICh4KSAlIDM5ICkgKQpAQCAtMTc4LDYgKzE3MCw3IEBAIGV4dGVybiBpbnQ4X3QgdWRmX25leHRfYWV4dChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGV4dGVudF9wb3NpdGlvbiAqLAogCQkJICAgIHN0cnVjdCBrZXJuZWxfbGJfYWRkciAqLCB1aW50MzJfdCAqLCBpbnQpOwogZXh0ZXJuIGludDhfdCB1ZGZfY3VycmVudF9hZXh0KHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZXh0ZW50X3Bvc2l0aW9uICosCiAJCQkgICAgICAgc3RydWN0IGtlcm5lbF9sYl9hZGRyICosIHVpbnQzMl90ICosIGludCk7CitleHRlcm4gdm9pZCB1ZGZfdXBkYXRlX2V4dHJhX3Blcm1zKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVtb2RlX3QgbW9kZSk7CiAKIC8qIG1pc2MuYyAqLwogZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqdWRmX3RnZXRibGsoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKZGlmZiAtLWdpdCBhL2ZzL3Vmcy9zdXBlci5jIGIvZnMvdWZzL3N1cGVyLmMKaW5kZXggNGVkMGRjYS4uMWRhMGJlNiAxMDA2NDQKLS0tIGEvZnMvdWZzL3N1cGVyLmMKKysrIGIvZnMvdWZzL3N1cGVyLmMKQEAgLTg0Myw2ICs4NDMsMTAgQEAgc3RhdGljIGludCB1ZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCiAJc2ItPnNfbWF4Ynl0ZXMgPSBNQVhfTEZTX0ZJTEVTSVpFOwogCisJc2ItPnNfdGltZV9ncmFuID0gTlNFQ19QRVJfU0VDOworCXNiLT5zX3RpbWVfbWluID0gUzMyX01JTjsKKwlzYi0+c190aW1lX21heCA9IFMzMl9NQVg7CisKIAlzd2l0Y2ggKHNiaS0+c19tb3VudF9vcHQgJiBVRlNfTU9VTlRfVUZTVFlQRSkgewogCWNhc2UgVUZTX01PVU5UX1VGU1RZUEVfNDRCU0Q6CiAJCVVGU0QoInVmc3R5cGU9NDRic2RcbiIpOwpAQCAtODYxLDYgKzg2NSw5IEBAIHN0YXRpYyBpbnQgdWZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAkJdXNwaS0+c19mc2hpZnQgPSA5OwogCQl1c3BpLT5zX3Nic2l6ZSA9IHN1cGVyX2Jsb2NrX3NpemUgPSAxNTM2OwogCQl1c3BpLT5zX3NiYmFzZSA9ICAwOworCQlzYi0+c190aW1lX2dyYW4gPSAxOworCQlzYi0+c190aW1lX21pbiA9IFM2NF9NSU47CisJCXNiLT5zX3RpbWVfbWF4ID0gUzY0X01BWDsKIAkJZmxhZ3MgfD0gVUZTX1RZUEVfVUZTMiB8IFVGU19ERV80NEJTRCB8IFVGU19VSURfNDRCU0QgfCBVRlNfU1RfNDRCU0QgfCBVRlNfQ0dfNDRCU0Q7CiAJCWJyZWFrOwogCQkKZGlmZiAtLWdpdCBhL2ZzL3VuaWNvZGUvdXRmOC1jb3JlLmMgYi9mcy91bmljb2RlL3V0ZjgtY29yZS5jCmluZGV4IDcxY2E0ZDAuLjJhODc4YjcgMTAwNjQ0Ci0tLSBhL2ZzL3VuaWNvZGUvdXRmOC1jb3JlLmMKKysrIGIvZnMvdW5pY29kZS91dGY4LWNvcmUuYwpAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBpbnQgdXRmOF9wYXJzZV92ZXJzaW9uKGNvbnN0IGNoYXIgKnZlcnNpb24sIHVuc2lnbmVkIGludCAqbWFqLAogewogCXN1YnN0cmluZ190IGFyZ3NbM107CiAJY2hhciB2ZXJzaW9uX3N0cmluZ1sxMl07Ci0JY29uc3Qgc3RydWN0IG1hdGNoX3Rva2VuIHRva2VuW10gPSB7CisJc3RhdGljIGNvbnN0IHN0cnVjdCBtYXRjaF90b2tlbiB0b2tlbltdID0gewogCQl7MSwgIiVkLiVkLiVkIn0sCiAJCXswLCBOVUxMfQogCX07CmRpZmYgLS1naXQgYS9mcy91bmljb2RlL3V0Zjgtc2VsZnRlc3QuYyBiL2ZzL3VuaWNvZGUvdXRmOC1zZWxmdGVzdC5jCmluZGV4IDZjMWEzNmIuLjZmZThhZjcgMTAwNjQ0Ci0tLSBhL2ZzL3VuaWNvZGUvdXRmOC1zZWxmdGVzdC5jCisrKyBiL2ZzL3VuaWNvZGUvdXRmOC1zZWxmdGVzdC5jCkBAIC0zNSw3ICszNSw3IEBAIHVuc2lnbmVkIGludCB0b3RhbF90ZXN0czsKICNkZWZpbmUgdGVzdF9mKGNvbmQsIGZtdCwgLi4uKSBfdGVzdChjb25kLCBfX2Z1bmNfXywgX19MSU5FX18sIGZtdCwgIyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgdGVzdChjb25kKSBfdGVzdChjb25kLCBfX2Z1bmNfXywgX19MSU5FX18sICIiKQogCi1jb25zdCBzdGF0aWMgc3RydWN0IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgewogCS8qIFVURi04IHN0cmluZ3MgaW4gdGhpcyB2ZWN0b3IgX211c3RfIGJlIE5VTEwtdGVybWluYXRlZC4gKi8KIAl1bnNpZ25lZCBjaGFyIHN0clsxMF07CiAJdW5zaWduZWQgY2hhciBkZWNbMTBdOwpAQCAtODksNyArODksNyBAQCBjb25zdCBzdGF0aWMgc3RydWN0IHsKIAogfTsKIAotY29uc3Qgc3RhdGljIHN0cnVjdCB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHsKIAkvKiBVVEYtOCBzdHJpbmdzIGluIHRoaXMgdmVjdG9yIF9tdXN0XyBiZSBOVUxMLXRlcm1pbmF0ZWQuICovCiAJdW5zaWduZWQgY2hhciBzdHJbMzBdOwogCXVuc2lnbmVkIGNoYXIgbmNmWzMwXTsKZGlmZiAtLWdpdCBhL2ZzL3VzZXJmYXVsdGZkLmMgYi9mcy91c2VyZmF1bHRmZC5jCmluZGV4IGZlNmQ4MDQuLmY5ZmQxODYgMTAwNjQ0Ci0tLSBhL2ZzL3VzZXJmYXVsdGZkLmMKKysrIGIvZnMvdXNlcmZhdWx0ZmQuYwpAQCAtMTI3MiwyMSArMTI3MiwyMyBAQCBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgd2FrZV91c2VyZmF1bHQoc3RydWN0IHVzZXJmYXVsdGZkX2N0eCAqY3R4LAogfQogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIGludCB2YWxpZGF0ZV9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKLQkJCQkJICBfX3U2NCBzdGFydCwgX191NjQgbGVuKQorCQkJCQkgIF9fdTY0ICpzdGFydCwgX191NjQgbGVuKQogewogCV9fdTY0IHRhc2tfc2l6ZSA9IG1tLT50YXNrX3NpemU7CiAKLQlpZiAoc3RhcnQgJiB+UEFHRV9NQVNLKQorCSpzdGFydCA9IHVudGFnZ2VkX2FkZHIoKnN0YXJ0KTsKKworCWlmICgqc3RhcnQgJiB+UEFHRV9NQVNLKQogCQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAobGVuICYgflBBR0VfTUFTSykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJaWYgKCFsZW4pCiAJCXJldHVybiAtRUlOVkFMOwotCWlmIChzdGFydCA8IG1tYXBfbWluX2FkZHIpCisJaWYgKCpzdGFydCA8IG1tYXBfbWluX2FkZHIpCiAJCXJldHVybiAtRUlOVkFMOwotCWlmIChzdGFydCA+PSB0YXNrX3NpemUpCisJaWYgKCpzdGFydCA+PSB0YXNrX3NpemUpCiAJCXJldHVybiAtRUlOVkFMOwotCWlmIChsZW4gPiB0YXNrX3NpemUgLSBzdGFydCkKKwlpZiAobGVuID4gdGFza19zaXplIC0gKnN0YXJ0KQogCQlyZXR1cm4gLUVJTlZBTDsKIAlyZXR1cm4gMDsKIH0KQEAgLTEzMzYsNyArMTMzOCw3IEBAIHN0YXRpYyBpbnQgdXNlcmZhdWx0ZmRfcmVnaXN0ZXIoc3RydWN0IHVzZXJmYXVsdGZkX2N0eCAqY3R4LAogCQlnb3RvIG91dDsKIAl9CiAKLQlyZXQgPSB2YWxpZGF0ZV9yYW5nZShtbSwgdWZmZGlvX3JlZ2lzdGVyLnJhbmdlLnN0YXJ0LAorCXJldCA9IHZhbGlkYXRlX3JhbmdlKG1tLCAmdWZmZGlvX3JlZ2lzdGVyLnJhbmdlLnN0YXJ0LAogCQkJICAgICB1ZmZkaW9fcmVnaXN0ZXIucmFuZ2UubGVuKTsKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKQEAgLTE1MjUsNyArMTUyNyw3IEBAIHN0YXRpYyBpbnQgdXNlcmZhdWx0ZmRfdW5yZWdpc3RlcihzdHJ1Y3QgdXNlcmZhdWx0ZmRfY3R4ICpjdHgsCiAJaWYgKGNvcHlfZnJvbV91c2VyKCZ1ZmZkaW9fdW5yZWdpc3RlciwgYnVmLCBzaXplb2YodWZmZGlvX3VucmVnaXN0ZXIpKSkKIAkJZ290byBvdXQ7CiAKLQlyZXQgPSB2YWxpZGF0ZV9yYW5nZShtbSwgdWZmZGlvX3VucmVnaXN0ZXIuc3RhcnQsCisJcmV0ID0gdmFsaWRhdGVfcmFuZ2UobW0sICZ1ZmZkaW9fdW5yZWdpc3Rlci5zdGFydCwKIAkJCSAgICAgdWZmZGlvX3VucmVnaXN0ZXIubGVuKTsKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKQEAgLTE2NzYsNyArMTY3OCw3IEBAIHN0YXRpYyBpbnQgdXNlcmZhdWx0ZmRfd2FrZShzdHJ1Y3QgdXNlcmZhdWx0ZmRfY3R4ICpjdHgsCiAJaWYgKGNvcHlfZnJvbV91c2VyKCZ1ZmZkaW9fd2FrZSwgYnVmLCBzaXplb2YodWZmZGlvX3dha2UpKSkKIAkJZ290byBvdXQ7CiAKLQlyZXQgPSB2YWxpZGF0ZV9yYW5nZShjdHgtPm1tLCB1ZmZkaW9fd2FrZS5zdGFydCwgdWZmZGlvX3dha2UubGVuKTsKKwlyZXQgPSB2YWxpZGF0ZV9yYW5nZShjdHgtPm1tLCAmdWZmZGlvX3dha2Uuc3RhcnQsIHVmZmRpb193YWtlLmxlbik7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKQEAgLTE3MTYsNyArMTcxOCw3IEBAIHN0YXRpYyBpbnQgdXNlcmZhdWx0ZmRfY29weShzdHJ1Y3QgdXNlcmZhdWx0ZmRfY3R4ICpjdHgsCiAJCQkgICBzaXplb2YodWZmZGlvX2NvcHkpLXNpemVvZihfX3M2NCkpKQogCQlnb3RvIG91dDsKIAotCXJldCA9IHZhbGlkYXRlX3JhbmdlKGN0eC0+bW0sIHVmZmRpb19jb3B5LmRzdCwgdWZmZGlvX2NvcHkubGVuKTsKKwlyZXQgPSB2YWxpZGF0ZV9yYW5nZShjdHgtPm1tLCAmdWZmZGlvX2NvcHkuZHN0LCB1ZmZkaW9fY29weS5sZW4pOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCS8qCkBAIC0xNzcyLDcgKzE3NzQsNyBAQCBzdGF0aWMgaW50IHVzZXJmYXVsdGZkX3plcm9wYWdlKHN0cnVjdCB1c2VyZmF1bHRmZF9jdHggKmN0eCwKIAkJCSAgIHNpemVvZih1ZmZkaW9femVyb3BhZ2UpLXNpemVvZihfX3M2NCkpKQogCQlnb3RvIG91dDsKIAotCXJldCA9IHZhbGlkYXRlX3JhbmdlKGN0eC0+bW0sIHVmZmRpb196ZXJvcGFnZS5yYW5nZS5zdGFydCwKKwlyZXQgPSB2YWxpZGF0ZV9yYW5nZShjdHgtPm1tLCAmdWZmZGlvX3plcm9wYWdlLnJhbmdlLnN0YXJ0LAogCQkJICAgICB1ZmZkaW9femVyb3BhZ2UucmFuZ2UubGVuKTsKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKZGlmZiAtLWdpdCBhL2ZzL3V0aW1lcy5jIGIvZnMvdXRpbWVzLmMKaW5kZXggMzUwYzljMS4uMWJhM2Y3OCAxMDA2NDQKLS0tIGEvZnMvdXRpbWVzLmMKKysrIGIvZnMvdXRpbWVzLmMKQEAgLTM2LDE2ICszNiwxNCBAQCBzdGF0aWMgaW50IHV0aW1lc19jb21tb24oY29uc3Qgc3RydWN0IHBhdGggKnBhdGgsIHN0cnVjdCB0aW1lc3BlYzY0ICp0aW1lcykKIAkJaWYgKHRpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfT01JVCkKIAkJCW5ld2F0dHJzLmlhX3ZhbGlkICY9IH5BVFRSX0FUSU1FOwogCQllbHNlIGlmICh0aW1lc1swXS50dl9uc2VjICE9IFVUSU1FX05PVykgewotCQkJbmV3YXR0cnMuaWFfYXRpbWUudHZfc2VjID0gdGltZXNbMF0udHZfc2VjOwotCQkJbmV3YXR0cnMuaWFfYXRpbWUudHZfbnNlYyA9IHRpbWVzWzBdLnR2X25zZWM7CisJCQluZXdhdHRycy5pYV9hdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZSh0aW1lc1swXSwgaW5vZGUpOwogCQkJbmV3YXR0cnMuaWFfdmFsaWQgfD0gQVRUUl9BVElNRV9TRVQ7CiAJCX0KIAogCQlpZiAodGltZXNbMV0udHZfbnNlYyA9PSBVVElNRV9PTUlUKQogCQkJbmV3YXR0cnMuaWFfdmFsaWQgJj0gfkFUVFJfTVRJTUU7CiAJCWVsc2UgaWYgKHRpbWVzWzFdLnR2X25zZWMgIT0gVVRJTUVfTk9XKSB7Ci0JCQluZXdhdHRycy5pYV9tdGltZS50dl9zZWMgPSB0aW1lc1sxXS50dl9zZWM7Ci0JCQluZXdhdHRycy5pYV9tdGltZS50dl9uc2VjID0gdGltZXNbMV0udHZfbnNlYzsKKwkJCW5ld2F0dHJzLmlhX210aW1lID0gdGltZXN0YW1wX3RydW5jYXRlKHRpbWVzWzFdLCBpbm9kZSk7CiAJCQluZXdhdHRycy5pYV92YWxpZCB8PSBBVFRSX01USU1FX1NFVDsKIAkJfQogCQkvKgpkaWZmIC0tZ2l0IGEvZnMveGZzL2xpYnhmcy94ZnNfYWxsb2MuaCBiL2ZzL3hmcy9saWJ4ZnMveGZzX2FsbG9jLmgKaW5kZXggNThmYTg1Yy4uZDZlZDVkMiAxMDA2NDQKLS0tIGEvZnMveGZzL2xpYnhmcy94ZnNfYWxsb2MuaAorKysgYi9mcy94ZnMvbGlieGZzL3hmc19hbGxvYy5oCkBAIC04MSw5ICs4MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfYWxsb2NfYXJnIHsKIC8qCiAgKiBEZWZpbmVzIGZvciBkYXRhdHlwZQogICovCi0jZGVmaW5lIFhGU19BTExPQ19JTklUSUFMX1VTRVJfREFUQQkoMSA8PCAwKS8qIHNwZWNpYWwgY2FzZSBzdGFydCBvZiBmaWxlICovCi0jZGVmaW5lIFhGU19BTExPQ19VU0VSREFUQV9aRVJPCQkoMSA8PCAxKS8qIHplcm8gZXh0ZW50IG9uIGFsbG9jYXRpb24gKi8KLSNkZWZpbmUgWEZTX0FMTE9DX05PQlVTWQkJKDEgPDwgMikvKiBCdXN5IGV4dGVudHMgbm90IGFsbG93ZWQgKi8KKyNkZWZpbmUgWEZTX0FMTE9DX1VTRVJEQVRBCQkoMSA8PCAwKS8qIGFsbG9jYXRpb24gaXMgZm9yIHVzZXIgZGF0YSovCisjZGVmaW5lIFhGU19BTExPQ19JTklUSUFMX1VTRVJfREFUQQkoMSA8PCAxKS8qIHNwZWNpYWwgY2FzZSBzdGFydCBvZiBmaWxlICovCisjZGVmaW5lIFhGU19BTExPQ19VU0VSREFUQV9aRVJPCQkoMSA8PCAyKS8qIHplcm8gZXh0ZW50IG9uIGFsbG9jYXRpb24gKi8KKyNkZWZpbmUgWEZTX0FMTE9DX05PQlVTWQkJKDEgPDwgMykvKiBCdXN5IGV4dGVudHMgbm90IGFsbG93ZWQgKi8KIAogc3RhdGljIGlubGluZSBib29sCiB4ZnNfYWxsb2NfaXNfdXNlcmRhdGEoaW50IGRhdGF0eXBlKQpkaWZmIC0tZ2l0IGEvZnMveGZzL2xpYnhmcy94ZnNfYm1hcC5jIGIvZnMveGZzL2xpYnhmcy94ZnNfYm1hcC5jCmluZGV4IDA1NGI0Y2UuLjRlZGMyNWEgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy9saWJ4ZnMveGZzX2JtYXAuYworKysgYi9mcy94ZnMvbGlieGZzL3hmc19ibWFwLmMKQEAgLTQwNDIsOCArNDA0MiwxMiBAQCB4ZnNfYm1hcGlfYWxsb2NhdGUoCiAJICovCiAJaWYgKCEoYm1hLT5mbGFncyAmIFhGU19CTUFQSV9NRVRBREFUQSkpIHsKIAkJYm1hLT5kYXRhdHlwZSA9IFhGU19BTExPQ19OT0JVU1k7Ci0JCWlmICh3aGljaGZvcmsgPT0gWEZTX0RBVEFfRk9SSyAmJiBibWEtPm9mZnNldCA9PSAwKQotCQkJYm1hLT5kYXRhdHlwZSB8PSBYRlNfQUxMT0NfSU5JVElBTF9VU0VSX0RBVEE7CisJCWlmICh3aGljaGZvcmsgPT0gWEZTX0RBVEFfRk9SSykgeworCQkJaWYgKGJtYS0+b2Zmc2V0ID09IDApCisJCQkJYm1hLT5kYXRhdHlwZSB8PSBYRlNfQUxMT0NfSU5JVElBTF9VU0VSX0RBVEE7CisJCQllbHNlCisJCQkJYm1hLT5kYXRhdHlwZSB8PSBYRlNfQUxMT0NfVVNFUkRBVEE7CisJCX0KIAkJaWYgKGJtYS0+ZmxhZ3MgJiBYRlNfQk1BUElfWkVSTykKIAkJCWJtYS0+ZGF0YXR5cGUgfD0gWEZTX0FMTE9DX1VTRVJEQVRBX1pFUk87CiAJfQpAQCAtNTYyMSw2ICs1NjI1LDExIEBAIHhmc19ibXNlX21lcmdlKAogCWlmIChlcnJvcikKIAkJcmV0dXJuIGVycm9yOwogCisJLyogY2hhbmdlIHRvIGV4dGVudCBmb3JtYXQgaWYgcmVxdWlyZWQgYWZ0ZXIgZXh0ZW50IHJlbW92YWwgKi8KKwllcnJvciA9IHhmc19ibWFwX2J0cmVlX3RvX2V4dGVudHModHAsIGlwLCBjdXIsIGxvZ2ZsYWdzLCB3aGljaGZvcmspOworCWlmIChlcnJvcikKKwkJcmV0dXJuIGVycm9yOworCiBkb25lOgogCXhmc19pZXh0X3JlbW92ZShpcCwgaWN1ciwgMCk7CiAJeGZzX2lleHRfcHJldihYRlNfSUZPUktfUFRSKGlwLCB3aGljaGZvcmspLCBpY3VyKTsKZGlmZiAtLWdpdCBhL2ZzL3hmcy9saWJ4ZnMveGZzX3NiLmMgYi9mcy94ZnMvbGlieGZzL3hmc19zYi5jCmluZGV4IGEwOGRkOGYuLmFjNmNkY2EgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy9saWJ4ZnMveGZzX3NiLmMKKysrIGIvZnMveGZzL2xpYnhmcy94ZnNfc2IuYwpAQCAtOTI4LDcgKzkyOCw3IEBAIHhmc19sb2dfc2IoCiAKIAl4ZnNfc2JfdG9fZGlzayhYRlNfQlVGX1RPX1NCUChicCksICZtcC0+bV9zYik7CiAJeGZzX3RyYW5zX2J1Zl9zZXRfdHlwZSh0cCwgYnAsIFhGU19CTEZUX1NCX0JVRik7Ci0JeGZzX3RyYW5zX2xvZ19idWYodHAsIGJwLCAwLCBzaXplb2Yoc3RydWN0IHhmc19kc2IpKTsKKwl4ZnNfdHJhbnNfbG9nX2J1Zih0cCwgYnAsIDAsIHNpemVvZihzdHJ1Y3QgeGZzX2RzYikgLSAxKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2ZzL3hmcy9zY3J1Yi9hbGxvYy5jIGIvZnMveGZzL3NjcnViL2FsbG9jLmMKaW5kZXggYTQzZDE4MS4uNTUzM2U0OCAxMDA2NDQKLS0tIGEvZnMveGZzL3NjcnViL2FsbG9jLmMKKysrIGIvZnMveGZzL3NjcnViL2FsbG9jLmMKQEAgLTk3LDcgKzk3LDYgQEAgeGNoa19hbGxvY2J0X3JlYygKIAl4ZnNfYWdudW1iZXJfdAkJYWdubyA9IGJzLT5jdXItPmJjX3ByaXZhdGUuYS5hZ25vOwogCXhmc19hZ2Jsb2NrX3QJCWJubzsKIAl4ZnNfZXh0bGVuX3QJCWxlbjsKLQlpbnQJCQllcnJvciA9IDA7CiAKIAlibm8gPSBiZTMyX3RvX2NwdShyZWMtPmFsbG9jLmFyX3N0YXJ0YmxvY2spOwogCWxlbiA9IGJlMzJfdG9fY3B1KHJlYy0+YWxsb2MuYXJfYmxvY2tjb3VudCk7CkBAIC0xMDksNyArMTA4LDcgQEAgeGNoa19hbGxvY2J0X3JlYygKIAogCXhjaGtfYWxsb2NidF94cmVmKGJzLT5zYywgYm5vLCBsZW4pOwogCi0JcmV0dXJuIGVycm9yOworCXJldHVybiAwOwogfQogCiAvKiBTY3J1YiB0aGUgZnJlZXNwYWNlIGJ0cmVlcyBmb3Igc29tZSBBRy4gKi8KZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfYnVmLmMgYi9mcy94ZnMveGZzX2J1Zi5jCmluZGV4IDEyMGVmOTkuLjIxYzI0MzYgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfYnVmLmMKKysrIGIvZnMveGZzL3hmc19idWYuYwpAQCAtMjA5Nyw3ICsyMDk3LDcgQEAgeGZzX3ZlcmlmeV9tYWdpYygKIAlpbnQJCQlpZHg7CiAKIAlpZHggPSB4ZnNfc2JfdmVyc2lvbl9oYXNjcmMoJm1wLT5tX3NiKTsKLQlpZiAodW5saWtlbHkoV0FSTl9PTighYnAtPmJfb3BzIHx8ICFicC0+Yl9vcHMtPm1hZ2ljW2lkeF0pKSkKKwlpZiAoV0FSTl9PTighYnAtPmJfb3BzIHx8ICFicC0+Yl9vcHMtPm1hZ2ljW2lkeF0pKQogCQlyZXR1cm4gZmFsc2U7CiAJcmV0dXJuIGRtYWdpYyA9PSBicC0+Yl9vcHMtPm1hZ2ljW2lkeF07CiB9CkBAIC0yMTE1LDcgKzIxMTUsNyBAQCB4ZnNfdmVyaWZ5X21hZ2ljMTYoCiAJaW50CQkJaWR4OwogCiAJaWR4ID0geGZzX3NiX3ZlcnNpb25faGFzY3JjKCZtcC0+bV9zYik7Ci0JaWYgKHVubGlrZWx5KFdBUk5fT04oIWJwLT5iX29wcyB8fCAhYnAtPmJfb3BzLT5tYWdpYzE2W2lkeF0pKSkKKwlpZiAoV0FSTl9PTighYnAtPmJfb3BzIHx8ICFicC0+Yl9vcHMtPm1hZ2ljMTZbaWR4XSkpCiAJCXJldHVybiBmYWxzZTsKIAlyZXR1cm4gZG1hZ2ljID09IGJwLT5iX29wcy0+bWFnaWMxNltpZHhdOwogfQpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19maWxlLmMgYi9mcy94ZnMveGZzX2ZpbGUuYwppbmRleCBkOTUyZDU5Li4xZmZiMTc5IDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX2ZpbGUuYworKysgYi9mcy94ZnMveGZzX2ZpbGUuYwpAQCAtMzcwLDIxICszNzAsMjMgQEAgc3RhdGljIGludAogeGZzX2Rpb193cml0ZV9lbmRfaW8oCiAJc3RydWN0IGtpb2NiCQkqaW9jYiwKIAlzc2l6ZV90CQkJc2l6ZSwKKwlpbnQJCQllcnJvciwKIAl1bnNpZ25lZAkJZmxhZ3MpCiB7CiAJc3RydWN0IGlub2RlCQkqaW5vZGUgPSBmaWxlX2lub2RlKGlvY2ItPmtpX2ZpbHApOwogCXN0cnVjdCB4ZnNfaW5vZGUJKmlwID0gWEZTX0koaW5vZGUpOwogCWxvZmZfdAkJCW9mZnNldCA9IGlvY2ItPmtpX3BvczsKIAl1bnNpZ25lZCBpbnQJCW5vZnNfZmxhZzsKLQlpbnQJCQllcnJvciA9IDA7CiAKIAl0cmFjZV94ZnNfZW5kX2lvX2RpcmVjdF93cml0ZShpcCwgb2Zmc2V0LCBzaXplKTsKIAogCWlmIChYRlNfRk9SQ0VEX1NIVVRET1dOKGlwLT5pX21vdW50KSkKIAkJcmV0dXJuIC1FSU87CiAKLQlpZiAoc2l6ZSA8PSAwKQotCQlyZXR1cm4gc2l6ZTsKKwlpZiAoZXJyb3IpCisJCXJldHVybiBlcnJvcjsKKwlpZiAoIXNpemUpCisJCXJldHVybiAwOwogCiAJLyoKIAkgKiBDYXB0dXJlIGFtb3VudCB3cml0dGVuIG9uIGNvbXBsZXRpb24gYXMgd2UgY2FuJ3QgcmVsaWFibHkgYWNjb3VudApAQCAtNDQxLDYgKzQ0MywxMCBAQCB4ZnNfZGlvX3dyaXRlX2VuZF9pbygKIAlyZXR1cm4gZXJyb3I7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW9tYXBfZGlvX29wcyB4ZnNfZGlvX3dyaXRlX29wcyA9IHsKKwkuZW5kX2lvCQk9IHhmc19kaW9fd3JpdGVfZW5kX2lvLAorfTsKKwogLyoKICAqIHhmc19maWxlX2Rpb19haW9fd3JpdGUgLSBoYW5kbGUgZGlyZWN0IElPIHdyaXRlcwogICoKQEAgLTU0MSw3ICs1NDcsNyBAQCB4ZnNfZmlsZV9kaW9fYWlvX3dyaXRlKAogCX0KIAogCXRyYWNlX3hmc19maWxlX2RpcmVjdF93cml0ZShpcCwgY291bnQsIGlvY2ItPmtpX3Bvcyk7Ci0JcmV0ID0gaW9tYXBfZGlvX3J3KGlvY2IsIGZyb20sICZ4ZnNfaW9tYXBfb3BzLCB4ZnNfZGlvX3dyaXRlX2VuZF9pbyk7CisJcmV0ID0gaW9tYXBfZGlvX3J3KGlvY2IsIGZyb20sICZ4ZnNfaW9tYXBfb3BzLCAmeGZzX2Rpb193cml0ZV9vcHMpOwogCiAJLyoKIAkgKiBJZiB1bmFsaWduZWQsIHRoaXMgaXMgdGhlIG9ubHkgSU8gaW4tZmxpZ2h0LiBJZiBpdCBoYXMgbm90IHlldApkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19zdXBlci5jIGIvZnMveGZzL3hmc19zdXBlci5jCmluZGV4IDM5MWI0NzQuLjhkMWRmOWYgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfc3VwZXIuYworKysgYi9mcy94ZnMveGZzX3N1cGVyLmMKQEAgLTE2NjQsNiArMTY2NCw4IEBAIHhmc19mc19maWxsX3N1cGVyKAogCXNiLT5zX21heGJ5dGVzID0geGZzX21heF9maWxlX29mZnNldChzYi0+c19ibG9ja3NpemVfYml0cyk7CiAJc2ItPnNfbWF4X2xpbmtzID0gWEZTX01BWExJTks7CiAJc2ItPnNfdGltZV9ncmFuID0gMTsKKwlzYi0+c190aW1lX21pbiA9IFMzMl9NSU47CisJc2ItPnNfdGltZV9tYXggPSBTMzJfTUFYOwogCXNiLT5zX2lmbGFncyB8PSBTQl9JX0NHUk9VUFdCOwogCiAJc2V0X3Bvc2l4X2FjbF9mbGFnKHNiKTsKZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfc3lzZnMuYyBiL2ZzL3hmcy94ZnNfc3lzZnMuYwppbmRleCBkZGQwYmY3Li5mMWJjODhmIDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX3N5c2ZzLmMKKysrIGIvZnMveGZzL3hmc19zeXNmcy5jCkBAIC02MywxOSArNjMsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5c2ZzX29wcyB4ZnNfc3lzZnNfb3BzID0gewogCS5zdG9yZSA9IHhmc19zeXNmc19vYmplY3Rfc3RvcmUsCiB9OwogCi0vKgotICogeGZzX21vdW50IGtvYmplY3QuIFRoZSBtcCBrb2JqZWN0IGFsc28gc2VydmVzIGFzIHRoZSBwZXItbW91bnQgcGFyZW50IG9iamVjdAotICogdGhhdCBpcyBpZGVudGlmaWVkIGJ5IHRoZSBmc25hbWUgdW5kZXIgc3lzZnMuCi0gKi8KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgeGZzX21vdW50ICoKLXRvX21wKHN0cnVjdCBrb2JqZWN0ICprb2JqZWN0KQotewotCXN0cnVjdCB4ZnNfa29iaiAqa29iaiA9IHRvX2tvYmooa29iamVjdCk7Ci0KLQlyZXR1cm4gY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCB4ZnNfbW91bnQsIG1fa29iaik7Ci19Ci0KIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICp4ZnNfbXBfYXR0cnNbXSA9IHsKIAlOVUxMLAogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvS2J1aWxkIGIvaW5jbHVkZS9LYnVpbGQKaW5kZXggYmZiZTdhZC4uZmZiYTc5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9LYnVpbGQKKysrIGIvaW5jbHVkZS9LYnVpbGQKQEAgLTMxMCwxMCArMzEwLDggQEAKIGhlYWRlci10ZXN0LQkJCSs9IGxpbnV4L21mZC9hcml6b25hL3BkYXRhLmgKIGhlYWRlci10ZXN0LQkJCSs9IGxpbnV4L21mZC9hczM3MTEuaAogaGVhZGVyLXRlc3QtCQkJKz0gbGludXgvbWZkL2FzMzcyMi5oCi1oZWFkZXItdGVzdC0JCQkrPSBsaW51eC9tZmQvY3Jvc19lY19jb21tYW5kcy5oCiBoZWFkZXItdGVzdC0JCQkrPSBsaW51eC9tZmQvZGE5MDN4LmgKIGhlYWRlci10ZXN0LQkJCSs9IGxpbnV4L21mZC9kYTkwNTUvcGRhdGEuaAotaGVhZGVyLXRlc3QtCQkJKz0gbGludXgvbWZkL2RhOTA2My9wZGF0YS5oCiBoZWFkZXItdGVzdC0JCQkrPSBsaW51eC9tZmQvZGI4NTAwLXByY211LmgKIGhlYWRlci10ZXN0LQkJCSs9IGxpbnV4L21mZC9kYng1MDAtcHJjbXUuaAogaGVhZGVyLXRlc3QtCQkJKz0gbGludXgvbWZkL2RsbjIuaApAQCAtNDU1LDYgKzQ1Myw3IEBACiBoZWFkZXItdGVzdC0JCQkrPSBsaW51eC9wbGF0Zm9ybV9kYXRhL2F0bWVsLmgKIGhlYWRlci10ZXN0LQkJCSs9IGxpbnV4L3BsYXRmb3JtX2RhdGEvYmgxNzcwZ2xjLmgKIGhlYWRlci10ZXN0LQkJCSs9IGxpbnV4L3BsYXRmb3JtX2RhdGEvYnJjbWZtYWMuaAoraGVhZGVyLXRlc3QtCQkJKz0gbGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmgKIGhlYWRlci10ZXN0LQkJCSs9IGxpbnV4L3BsYXRmb3JtX2RhdGEvY2xrLXUzMDAuaAogaGVhZGVyLXRlc3QtCQkJKz0gbGludXgvcGxhdGZvcm1fZGF0YS9jeXR0c3A0LmgKIGhlYWRlci10ZXN0LQkJCSs9IGxpbnV4L3BsYXRmb3JtX2RhdGEvZG1hLWNvaDkwMTMxOC5oCkBAIC04ODEsMTIgKzg4MCw2IEBACiBoZWFkZXItdGVzdC0JCQkrPSBuZXQveGRwX3ByaXYuaAogaGVhZGVyLXRlc3QtCQkJKz0gcGNtY2lhL2Npc3RwbC5oCiBoZWFkZXItdGVzdC0JCQkrPSBwY21jaWEvZHMuaAotaGVhZGVyLXRlc3QtCQkJKz0gcmRtYS9pYi5oCi1oZWFkZXItdGVzdC0JCQkrPSByZG1hL2l3X3BvcnRtYXAuaAotaGVhZGVyLXRlc3QtCQkJKz0gcmRtYS9vcGFfcG9ydF9pbmZvLmgKLWhlYWRlci10ZXN0LQkJCSs9IHJkbWEvcmRtYXZ0X2NxLmgKLWhlYWRlci10ZXN0LQkJCSs9IHJkbWEvcmVzdHJhY2suaAotaGVhZGVyLXRlc3QtCQkJKz0gcmRtYS9zaWduYXR1cmUuaAogaGVhZGVyLXRlc3QtCQkJKz0gcmRtYS90aWRfcmRtYV9kZWZzLmgKIGhlYWRlci10ZXN0LQkJCSs9IHNjc2kvZmMvZmNfZW5jYXBzLmgKIGhlYWRlci10ZXN0LQkJCSs9IHNjc2kvZmMvZmNfZmMyLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvYnVnLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL2J1Zy5oCmluZGV4IDczNTdhM2MuLjM4NGI1YzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvYnVnLmgKKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9idWcuaApAQCAtMTAsNiArMTAsNyBAQAogI2RlZmluZSBCVUdGTEFHX1dBUk5JTkcJCSgxIDw8IDApCiAjZGVmaW5lIEJVR0ZMQUdfT05DRQkJKDEgPDwgMSkKICNkZWZpbmUgQlVHRkxBR19ET05FCQkoMSA8PCAyKQorI2RlZmluZSBCVUdGTEFHX05PX0NVVF9IRVJFCSgxIDw8IDMpCS8qIENVVF9IRVJFIGFscmVhZHkgc2VudCAqLwogI2RlZmluZSBCVUdGTEFHX1RBSU5UKHRhaW50KQkoKHRhaW50KSA8PCA4KQogI2RlZmluZSBCVUdfR0VUX1RBSU5UKGJ1ZykJKChidWcpLT5mbGFncyA+PiA4KQogI2VuZGlmCkBAIC02MSwxOCArNjIsNiBAQCBzdHJ1Y3QgYnVnX2VudHJ5IHsKICNkZWZpbmUgQlVHX09OKGNvbmRpdGlvbikgZG8geyBpZiAodW5saWtlbHkoY29uZGl0aW9uKSkgQlVHKCk7IH0gd2hpbGUgKDApCiAjZW5kaWYKIAotI2lmZGVmIF9fV0FSTl9GTEFHUwotI2RlZmluZSBfX1dBUk5fVEFJTlQodGFpbnQpCQlfX1dBUk5fRkxBR1MoQlVHRkxBR19UQUlOVCh0YWludCkpCi0jZGVmaW5lIF9fV0FSTl9PTkNFX1RBSU5UKHRhaW50KQlfX1dBUk5fRkxBR1MoQlVHRkxBR19PTkNFfEJVR0ZMQUdfVEFJTlQodGFpbnQpKQotCi0jZGVmaW5lIFdBUk5fT05fT05DRShjb25kaXRpb24pICh7CQkJCVwKLQlpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGNvbmRpdGlvbik7CQkJXAotCWlmICh1bmxpa2VseShfX3JldF93YXJuX29uKSkJCQkJXAotCQlfX1dBUk5fT05DRV9UQUlOVChUQUlOVF9XQVJOKTsJCQlcCi0JdW5saWtlbHkoX19yZXRfd2Fybl9vbik7CQkJCVwKLX0pCi0jZW5kaWYKLQogLyoKICAqIFdBUk4oKSwgV0FSTl9PTigpLCBXQVJOX09OX09OQ0UsIGFuZCBzbyBvbiBjYW4gYmUgdXNlZCB0byByZXBvcnQKICAqIHNpZ25pZmljYW50IGtlcm5lbCBpc3N1ZXMgdGhhdCBuZWVkIHByb21wdCBhdHRlbnRpb24gaWYgdGhleSBzaG91bGQgZXZlcgpAQCAtODksMjcgKzc4LDI3IEBAIHN0cnVjdCBidWdfZW50cnkgewogICoKICAqIFVzZSB0aGUgdmVyc2lvbnMgd2l0aCBwcmludGsgZm9ybWF0IHN0cmluZ3MgdG8gcHJvdmlkZSBiZXR0ZXIgZGlhZ25vc3RpY3MuCiAgKi8KLSNpZm5kZWYgX19XQVJOX1RBSU5UCi1leHRlcm4gX19wcmludGYoMywgNCkKLXZvaWQgd2Fybl9zbG93cGF0aF9mbXQoY29uc3QgY2hhciAqZmlsZSwgY29uc3QgaW50IGxpbmUsCi0JCSAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CisjaWZuZGVmIF9fV0FSTl9GTEFHUwogZXh0ZXJuIF9fcHJpbnRmKDQsIDUpCi12b2lkIHdhcm5fc2xvd3BhdGhfZm10X3RhaW50KGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBsaW5lLCB1bnNpZ25lZCB0YWludCwKLQkJCSAgICAgY29uc3QgY2hhciAqZm10LCAuLi4pOwotZXh0ZXJuIHZvaWQgd2Fybl9zbG93cGF0aF9udWxsKGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBsaW5lKTsKLSNkZWZpbmUgV0FOVF9XQVJOX09OX1NMT1dQQVRICi0jZGVmaW5lIF9fV0FSTigpCQl3YXJuX3Nsb3dwYXRoX251bGwoX19GSUxFX18sIF9fTElORV9fKQotI2RlZmluZSBfX1dBUk5fcHJpbnRmKGFyZy4uLikJd2Fybl9zbG93cGF0aF9mbXQoX19GSUxFX18sIF9fTElORV9fLCBhcmcpCi0jZGVmaW5lIF9fV0FSTl9wcmludGZfdGFpbnQodGFpbnQsIGFyZy4uLikJCQkJXAotCXdhcm5fc2xvd3BhdGhfZm10X3RhaW50KF9fRklMRV9fLCBfX0xJTkVfXywgdGFpbnQsIGFyZykKK3ZvaWQgd2Fybl9zbG93cGF0aF9mbXQoY29uc3QgY2hhciAqZmlsZSwgY29uc3QgaW50IGxpbmUsIHVuc2lnbmVkIHRhaW50LAorCQkgICAgICAgY29uc3QgY2hhciAqZm10LCAuLi4pOworI2RlZmluZSBfX1dBUk4oKQkJX19XQVJOX3ByaW50ZihUQUlOVF9XQVJOLCBOVUxMKQorI2RlZmluZSBfX1dBUk5fcHJpbnRmKHRhaW50LCBhcmcuLi4pCQkJCQlcCisJd2Fybl9zbG93cGF0aF9mbXQoX19GSUxFX18sIF9fTElORV9fLCB0YWludCwgYXJnKQogI2Vsc2UKIGV4dGVybiBfX3ByaW50ZigxLCAyKSB2b2lkIF9fd2Fybl9wcmludGsoY29uc3QgY2hhciAqZm10LCAuLi4pOwotI2RlZmluZSBfX1dBUk4oKSBkbyB7IFwKLQlwcmludGsoS0VSTl9XQVJOSU5HIENVVF9IRVJFKTsgX19XQVJOX1RBSU5UKFRBSU5UX1dBUk4pOyBcCi19IHdoaWxlICgwKQotI2RlZmluZSBfX1dBUk5fcHJpbnRmKGFyZy4uLikJX19XQVJOX3ByaW50Zl90YWludChUQUlOVF9XQVJOLCBhcmcpCi0jZGVmaW5lIF9fV0FSTl9wcmludGZfdGFpbnQodGFpbnQsIGFyZy4uLikJCQkJXAotCWRvIHsgX193YXJuX3ByaW50ayhhcmcpOyBfX1dBUk5fVEFJTlQodGFpbnQpOyB9IHdoaWxlICgwKQorI2RlZmluZSBfX1dBUk4oKQkJX19XQVJOX0ZMQUdTKEJVR0ZMQUdfVEFJTlQoVEFJTlRfV0FSTikpCisjZGVmaW5lIF9fV0FSTl9wcmludGYodGFpbnQsIGFyZy4uLikgZG8gewkJCQlcCisJCV9fd2Fybl9wcmludGsoYXJnKTsJCQkJCVwKKwkJX19XQVJOX0ZMQUdTKEJVR0ZMQUdfTk9fQ1VUX0hFUkUgfCBCVUdGTEFHX1RBSU5UKHRhaW50KSk7XAorCX0gd2hpbGUgKDApCisjZGVmaW5lIFdBUk5fT05fT05DRShjb25kaXRpb24pICh7CQkJCVwKKwlpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGNvbmRpdGlvbik7CQkJXAorCWlmICh1bmxpa2VseShfX3JldF93YXJuX29uKSkJCQkJXAorCQlfX1dBUk5fRkxBR1MoQlVHRkxBR19PTkNFIHwJCQlcCisJCQkgICAgIEJVR0ZMQUdfVEFJTlQoVEFJTlRfV0FSTikpOwlcCisJdW5saWtlbHkoX19yZXRfd2Fybl9vbik7CQkJCVwKK30pCiAjZW5kaWYKIAogLyogdXNlZCBpbnRlcm5hbGx5IGJ5IHBhbmljLmMgKi8KQEAgLTEzMiw3ICsxMjEsNyBAQCB2b2lkIF9fd2Fybihjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgdm9pZCAqY2FsbGVyLCB1bnNpZ25lZCB0YWludCwKICNkZWZpbmUgV0FSTihjb25kaXRpb24sIGZvcm1hdC4uLikgKHsJCQkJCVwKIAlpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGNvbmRpdGlvbik7CQkJCVwKIAlpZiAodW5saWtlbHkoX19yZXRfd2Fybl9vbikpCQkJCQlcCi0JCV9fV0FSTl9wcmludGYoZm9ybWF0KTsJCQkJCVwKKwkJX19XQVJOX3ByaW50ZihUQUlOVF9XQVJOLCBmb3JtYXQpOwkJCVwKIAl1bmxpa2VseShfX3JldF93YXJuX29uKTsJCQkJCVwKIH0pCiAjZW5kaWYKQEAgLTE0MCw3ICsxMjksNyBAQCB2b2lkIF9fd2Fybihjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgdm9pZCAqY2FsbGVyLCB1bnNpZ25lZCB0YWludCwKICNkZWZpbmUgV0FSTl9UQUlOVChjb25kaXRpb24sIHRhaW50LCBmb3JtYXQuLi4pICh7CQkJXAogCWludCBfX3JldF93YXJuX29uID0gISEoY29uZGl0aW9uKTsJCQkJXAogCWlmICh1bmxpa2VseShfX3JldF93YXJuX29uKSkJCQkJCVwKLQkJX19XQVJOX3ByaW50Zl90YWludCh0YWludCwgZm9ybWF0KTsJCQlcCisJCV9fV0FSTl9wcmludGYodGFpbnQsIGZvcm1hdCk7CQkJCVwKIAl1bmxpa2VseShfX3JldF93YXJuX29uKTsJCQkJCVwKIH0pCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvZXhwb3J0LmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL2V4cG9ydC5oCmluZGV4IDI5NGQ2YWUuLmZhNTc3OTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvZXhwb3J0LmgKKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9leHBvcnQuaApAQCAtNCwxNCArNCwxMiBAQAogI2lmbmRlZiBLU1lNX0ZVTkMKICNkZWZpbmUgS1NZTV9GVU5DKHgpIHgKICNlbmRpZgotI2lmZGVmIENPTkZJR182NEJJVAotI2lmbmRlZiBLU1lNX0FMSUdOCi0jZGVmaW5lIEtTWU1fQUxJR04gOAotI2VuZGlmCi0jZWxzZQotI2lmbmRlZiBLU1lNX0FMSUdOCisjaWZkZWYgQ09ORklHX0hBVkVfQVJDSF9QUkVMMzJfUkVMT0NBVElPTlMKICNkZWZpbmUgS1NZTV9BTElHTiA0Ci0jZW5kaWYKKyNlbGlmIGRlZmluZWQoQ09ORklHXzY0QklUKQorI2RlZmluZSBLU1lNX0FMSUdOIDgKKyNlbHNlCisjZGVmaW5lIEtTWU1fQUxJR04gNAogI2VuZGlmCiAjaWZuZGVmIEtDUkNfQUxJR04KICNkZWZpbmUgS0NSQ19BTElHTiA0CkBAIC0xOSwxMSArMTcsMTEgQEAKIAogLm1hY3JvIF9fcHV0LCB2YWwsIG5hbWUKICNpZmRlZiBDT05GSUdfSEFWRV9BUkNIX1BSRUwzMl9SRUxPQ0FUSU9OUwotCS5sb25nCVx2YWwgLSAuLCBcbmFtZSAtIC4KKwkubG9uZwlcdmFsIC0gLiwgXG5hbWUgLSAuLCAwCiAjZWxpZiBkZWZpbmVkKENPTkZJR182NEJJVCkKLQkucXVhZAlcdmFsLCBcbmFtZQorCS5xdWFkCVx2YWwsIFxuYW1lLCAwCiAjZWxzZQotCS5sb25nCVx2YWwsIFxuYW1lCisJLmxvbmcJXHZhbCwgXG5hbWUsIDAKICNlbmRpZgogLmVuZG0KIApAQCAtNTcsNyArNTUsNiBAQCBfX2tjcmN0YWJfXG5hbWU6CiAjZW5kaWYKICNlbmRpZgogLmVuZG0KLSN1bmRlZiBfX3B1dAogCiAjaWYgZGVmaW5lZChDT05GSUdfVFJJTV9VTlVTRURfS1NZTVMpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGdhbGxvYy5oIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ2FsbG9jLmgKaW5kZXggODQ3NjE3NS4uNzNmNzQyMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ2FsbG9jLmgKKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ2FsbG9jLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHB0ZV9mcmVlX2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcHRlX3QgKnB0ZSkKICAqIEBtbTogdGhlIG1tX3N0cnVjdCBvZiB0aGUgY3VycmVudCBjb250ZXh0CiAgKiBAZ2ZwOiBHRlAgZmxhZ3MgdG8gdXNlIGZvciB0aGUgYWxsb2NhdGlvbgogICoKLSAqIEFsbG9jYXRlcyBhIHBhZ2UgYW5kIHJ1bnMgdGhlIHBndGFibGVfcGFnZV9jdG9yKCkuCisgKiBBbGxvY2F0ZXMgYSBwYWdlIGFuZCBydW5zIHRoZSBwZ3RhYmxlX3B0ZV9wYWdlX2N0b3IoKS4KICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciBhcmNoaXRlY3R1cmVzIHRoYXQgbmVlZAogICogYW55dGhpbmcgYmV5b25kIHNpbXBsZSBwYWdlIGFsbG9jYXRpb24gb3IgbXVzdCBoYXZlIGN1c3RvbSBHRlAgZmxhZ3MuCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBpbmxpbmUgcGd0YWJsZV90IF9fcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgZ2ZwX3QgZ2ZwKQogCXB0ZSA9IGFsbG9jX3BhZ2UoZ2ZwKTsKIAlpZiAoIXB0ZSkKIAkJcmV0dXJuIE5VTEw7Ci0JaWYgKCFwZ3RhYmxlX3BhZ2VfY3RvcihwdGUpKSB7CisJaWYgKCFwZ3RhYmxlX3B0ZV9wYWdlX2N0b3IocHRlKSkgewogCQlfX2ZyZWVfcGFnZShwdGUpOwogCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBpbmxpbmUgcGd0YWJsZV90IF9fcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgZ2ZwX3QgZ2ZwKQogICogcHRlX2FsbG9jX29uZSAtIGFsbG9jYXRlIGEgcGFnZSBmb3IgUFRFLWxldmVsIHVzZXIgcGFnZSB0YWJsZQogICogQG1tOiB0aGUgbW1fc3RydWN0IG9mIHRoZSBjdXJyZW50IGNvbnRleHQKICAqCi0gKiBBbGxvY2F0ZXMgYSBwYWdlIGFuZCBydW5zIHRoZSBwZ3RhYmxlX3BhZ2VfY3RvcigpLgorICogQWxsb2NhdGVzIGEgcGFnZSBhbmQgcnVucyB0aGUgcGd0YWJsZV9wdGVfcGFnZV9jdG9yKCkuCiAgKgogICogUmV0dXJuOiBgc3RydWN0IHBhZ2VgIGluaXRpYWxpemVkIGFzIHBhZ2UgdGFibGUgb3IgJU5VTEwgb24gZXJyb3IKICAqLwpAQCAtOTgsMTUgKzk4LDEwIEBAIHN0YXRpYyBpbmxpbmUgcGd0YWJsZV90IHB0ZV9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0pCiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHBhZ2UgKnB0ZV9wYWdlKQogewotCXBndGFibGVfcGFnZV9kdG9yKHB0ZV9wYWdlKTsKKwlwZ3RhYmxlX3B0ZV9wYWdlX2R0b3IocHRlX3BhZ2UpOwogCV9fZnJlZV9wYWdlKHB0ZV9wYWdlKTsKIH0KIAotI2Vsc2UgLyogQ09ORklHX01NVSAqLwotCi0vKiBUaGlzIGlzIGVub3VnaCBmb3IgYSBub21tdSBhcmNoaXRlY3R1cmUgKi8KLSNkZWZpbmUgY2hlY2tfcGd0X2NhY2hlKCkgICAgICAgICAgZG8geyB9IHdoaWxlICgwKQotCiAjZW5kaWYgLyogQ09ORklHX01NVSAqLwogCiAjZW5kaWYgLyogX19BU01fR0VORVJJQ19QR0FMTE9DX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLmgKaW5kZXggNzVkOWQ2OC4uODE4NjkxOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLmgKKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLmgKQEAgLTEwMDIsOSArMTAwMiw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBtZF9ub25lX29yX3RyYW5zX2h1Z2Vfb3JfY2xlYXJfYmFkKHBtZF90ICpwbWQpCiAgKiBuZWVkIHRoaXMpLiBJZiBUSFAgaXMgbm90IGVuYWJsZWQsIHRoZSBwbWQgY2FuJ3QgZ28gYXdheSB1bmRlciB0aGUKICAqIGNvZGUgZXZlbiBpZiBNQURWX0RPTlRORUVEIHJ1bnMsIGJ1dCBpZiBUSFAgaXMgZW5hYmxlZCB3ZSBuZWVkIHRvCiAgKiBydW4gYSBwbWRfdHJhbnNfdW5zdGFibGUgYmVmb3JlIHdhbGtpbmcgdGhlIHB0ZXMgYWZ0ZXIKLSAqIHNwbGl0X2h1Z2VfcGFnZV9wbWQgcmV0dXJucyAoYmVjYXVzZSBpdCBtYXkgaGF2ZSBydW4gd2hlbiB0aGUgcG1kCi0gKiBiZWNvbWUgbnVsbCwgYnV0IHRoZW4gYSBwYWdlIGZhdWx0IGNhbiBtYXAgaW4gYSBUSFAgYW5kIG5vdCBhCi0gKiByZWd1bGFyIHBhZ2UpLgorICogc3BsaXRfaHVnZV9wbWQgcmV0dXJucyAoYmVjYXVzZSBpdCBtYXkgaGF2ZSBydW4gd2hlbiB0aGUgcG1kIGJlY29tZQorICogbnVsbCwgYnV0IHRoZW4gYSBwYWdlIGZhdWx0IGNhbiBtYXAgaW4gYSBUSFAgYW5kIG5vdCBhIHJlZ3VsYXIgcGFnZSkuCiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50IHBtZF90cmFuc191bnN0YWJsZShwbWRfdCAqcG1kKQogewpAQCAtMTEyNiw3ICsxMTI1LDcgQEAgaW50IHBoeXNfbWVtX2FjY2Vzc19wcm90X2FsbG93ZWQoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxvbmcgcGZuLAogc3RhdGljIGlubGluZSB2b2lkIGluaXRfZXNwZml4X2JzcCh2b2lkKSB7IH0KICNlbmRpZgogCi1leHRlcm4gdm9pZCBfX2luaXQgcGdkX2NhY2hlX2luaXQodm9pZCk7CitleHRlcm4gdm9pZCBfX2luaXQgcGd0YWJsZV9jYWNoZV9pbml0KHZvaWQpOwogCiAjaWZuZGVmIF9fSEFWRV9BUkNIX1BGTl9NT0RJRllfQUxMT1dFRAogc3RhdGljIGlubGluZSBib29sIHBmbl9tb2RpZnlfYWxsb3dlZCh1bnNpZ25lZCBsb25nIHBmbiwgcGdwcm90X3QgcHJvdCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaAppbmRleCBjZDI4ZjYzLi5kYWU2NDYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL3ZtbGludXgubGRzLmgKKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy92bWxpbnV4Lmxkcy5oCkBAIC0yMTUsOCArMjE1LDEzIEBACiAJCQlfX3N0YXJ0X2xzbV9pbmZvID0gLjsJCQkJXAogCQkJS0VFUCgqKC5sc21faW5mby5pbml0KSkJCQkJXAogCQkJX19lbmRfbHNtX2luZm8gPSAuOworI2RlZmluZSBFQVJMWV9MU01fVEFCTEUoKQkuID0gQUxJR04oOCk7CQkJCVwKKwkJCV9fc3RhcnRfZWFybHlfbHNtX2luZm8gPSAuOwkJCVwKKwkJCUtFRVAoKiguZWFybHlfbHNtX2luZm8uaW5pdCkpCQkJXAorCQkJX19lbmRfZWFybHlfbHNtX2luZm8gPSAuOwogI2Vsc2UKICNkZWZpbmUgTFNNX1RBQkxFKCkKKyNkZWZpbmUgRUFSTFlfTFNNX1RBQkxFKCkKICNlbmRpZgogCiAjZGVmaW5lIF9fX09GX1RBQkxFKGNmZywgbmFtZSkJX09GX1RBQkxFXyMjY2ZnKG5hbWUpCkBAIC02MjcsNyArNjMyLDggQEAKIAlBQ1BJX1BST0JFX1RBQkxFKHRpbWVyKQkJCQkJCVwKIAlUSEVSTUFMX1RBQkxFKGdvdmVybm9yKQkJCQkJCVwKIAlFQVJMWUNPTl9UQUJMRSgpCQkJCQkJXAotCUxTTV9UQUJMRSgpCisJTFNNX1RBQkxFKCkJCQkJCQkJXAorCUVBUkxZX0xTTV9UQUJMRSgpCiAKICNkZWZpbmUgSU5JVF9URVhUCQkJCQkJCVwKIAkqKC5pbml0LnRleHQgLmluaXQudGV4dC4qKQkJCQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jcnlwdG8vcGtjczcuaCBiL2luY2x1ZGUvY3J5cHRvL3BrY3M3LmgKaW5kZXggOTYwNzFiZS4uMzhlYzdmNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jcnlwdG8vcGtjczcuaAorKysgYi9pbmNsdWRlL2NyeXB0by9wa2NzNy5oCkBAIC05LDYgKzksNyBAQAogI2RlZmluZSBfQ1JZUFRPX1BLQ1M3X0gKIAogI2luY2x1ZGUgPGxpbnV4L3ZlcmlmaWNhdGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2hhc2hfaW5mby5oPgogI2luY2x1ZGUgPGNyeXB0by9wdWJsaWNfa2V5Lmg+CiAKIHN0cnVjdCBrZXk7CkBAIC00MCw0ICs0MSw3IEBAIGV4dGVybiBpbnQgcGtjczdfdmVyaWZ5KHN0cnVjdCBwa2NzN19tZXNzYWdlICpwa2NzNywKIGV4dGVybiBpbnQgcGtjczdfc3VwcGx5X2RldGFjaGVkX2RhdGEoc3RydWN0IHBrY3M3X21lc3NhZ2UgKnBrY3M3LAogCQkJCSAgICAgIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBkYXRhbGVuKTsKIAorZXh0ZXJuIGludCBwa2NzN19nZXRfZGlnZXN0KHN0cnVjdCBwa2NzN19tZXNzYWdlICpwa2NzNywgY29uc3QgdTggKipidWYsCisJCQkgICAgdTMyICpsZW4sIGVudW0gaGFzaF9hbGdvICpoYXNoX2FsZ28pOworCiAjZW5kaWYgLyogX0NSWVBUT19QS0NTN19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9hbWRfYXNpY190eXBlLmggYi9pbmNsdWRlL2RybS9hbWRfYXNpY190eXBlLmgKaW5kZXggYmNjMmJjZi4uMjk2YWFiNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vYW1kX2FzaWNfdHlwZS5oCisrKyBiL2luY2x1ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaApAQCAtNDksNyArNDksMTEgQEAgZW51bSBhbWRfYXNpY190eXBlIHsKIAlDSElQX1ZFR0ExMiwKIAlDSElQX1ZFR0EyMCwKIAlDSElQX1JBVkVOLAorCUNISVBfQVJDVFVSVVMsCisJQ0hJUF9SRU5PSVIsCiAJQ0hJUF9OQVZJMTAsCisJQ0hJUF9OQVZJMTQsCisJQ0hJUF9OQVZJMTIsCiAJQ0hJUF9MQVNULAogfTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vYnJpZGdlL2FuYWxvZ2l4X2RwLmggYi9pbmNsdWRlL2RybS9icmlkZ2UvYW5hbG9naXhfZHAuaAppbmRleCBlNTYwNDZjLi43YWEyZjkzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9icmlkZ2UvYW5hbG9naXhfZHAuaAorKysgYi9pbmNsdWRlL2RybS9icmlkZ2UvYW5hbG9naXhfZHAuaApAQCAtMzgsMTAgKzM4LDYgQEAgc3RydWN0IGFuYWxvZ2l4X2RwX3BsYXRfZGF0YSB7CiAJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKik7CiB9OwogCi1pbnQgYW5hbG9naXhfZHBfcHNyX2VuYWJsZWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwotaW50IGFuYWxvZ2l4X2RwX2VuYWJsZV9wc3Ioc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwotaW50IGFuYWxvZ2l4X2RwX2Rpc2FibGVfcHNyKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKLQogaW50IGFuYWxvZ2l4X2RwX3Jlc3VtZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7CiBpbnQgYW5hbG9naXhfZHBfc3VzcGVuZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1pLmggYi9pbmNsdWRlL2RybS9icmlkZ2UvZHdfaGRtaS5oCmluZGV4IGM0MDIzNjQuLmNmNTI4YzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1pLmgKKysrIGIvaW5jbHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaApAQCAtMTU1LDYgKzE1NSw4IEBAIHZvaWQgZHdfaGRtaV9yZXN1bWUoc3RydWN0IGR3X2hkbWkgKmhkbWkpOwogdm9pZCBkd19oZG1pX3NldHVwX3J4X3NlbnNlKHN0cnVjdCBkd19oZG1pICpoZG1pLCBib29sIGhwZCwgYm9vbCByeF9zZW5zZSk7CiAKIHZvaWQgZHdfaGRtaV9zZXRfc2FtcGxlX3JhdGUoc3RydWN0IGR3X2hkbWkgKmhkbWksIHVuc2lnbmVkIGludCByYXRlKTsKK3ZvaWQgZHdfaGRtaV9zZXRfY2hhbm5lbF9jb3VudChzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdW5zaWduZWQgaW50IGNudCk7Cit2b2lkIGR3X2hkbWlfc2V0X2NoYW5uZWxfYWxsb2NhdGlvbihzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdW5zaWduZWQgaW50IGNhKTsKIHZvaWQgZHdfaGRtaV9hdWRpb19lbmFibGUoc3RydWN0IGR3X2hkbWkgKmhkbWkpOwogdm9pZCBkd19oZG1pX2F1ZGlvX2Rpc2FibGUoc3RydWN0IGR3X2hkbWkgKmhkbWkpOwogdm9pZCBkd19oZG1pX3NldF9oaWdoX3RtZHNfY2xvY2tfcmF0aW8oc3RydWN0IGR3X2hkbWkgKmhkbWkpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCmluZGV4IDk0YWFlODcuLjAzN2IxZjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybVAuaAorKysgYi9pbmNsdWRlL2RybS9kcm1QLmgKQEAgLTg3LDcgKzg3LDcgQEAgc3RydWN0IG1vZHVsZTsKIAogc3RydWN0IGRldmljZV9ub2RlOwogc3RydWN0IHZpZGVvbW9kZTsKLXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3Q7CitzdHJ1Y3QgZG1hX3Jlc3Y7CiBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50OwogCiBzdHJ1Y3QgcGNpX2RldjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hZ3BzdXBwb3J0LmggYi9pbmNsdWRlL2RybS9kcm1fYWdwc3VwcG9ydC5oCmluZGV4IGIwNWU0NjIuLjY2NGUxMjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9hZ3BzdXBwb3J0LmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2FncHN1cHBvcnQuaApAQCAtMzEsMTEgKzMxLDYgQEAgc3RydWN0IGRybV9hZ3BfaGVhZCB7CiB2b2lkIGRybV9mcmVlX2FncChzdHJ1Y3QgYWdwX21lbW9yeSAqIGhhbmRsZSwgaW50IHBhZ2VzKTsKIGludCBkcm1fYmluZF9hZ3Aoc3RydWN0IGFncF9tZW1vcnkgKiBoYW5kbGUsIHVuc2lnbmVkIGludCBzdGFydCk7CiBpbnQgZHJtX3VuYmluZF9hZ3Aoc3RydWN0IGFncF9tZW1vcnkgKiBoYW5kbGUpOwotc3RydWN0IGFncF9tZW1vcnkgKmRybV9hZ3BfYmluZF9wYWdlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCXN0cnVjdCBwYWdlICoqcGFnZXMsCi0JCQkJdW5zaWduZWQgbG9uZyBudW1fcGFnZXMsCi0JCQkJdWludDMyX3QgZ3R0X29mZnNldCwKLQkJCQl1aW50MzJfdCB0eXBlKTsKIAogc3RydWN0IGRybV9hZ3BfaGVhZCAqZHJtX2FncF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBkcm1fbGVnYWN5X2FncF9jbGVhcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKQEAgLTgwLDE1ICs3NSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGRybV91bmJpbmRfYWdwKHN0cnVjdCBhZ3BfbWVtb3J5ICogaGFuZGxlKQogCXJldHVybiAtRU5PREVWOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBhZ3BfbWVtb3J5ICpkcm1fYWdwX2JpbmRfcGFnZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJICAgICAgc3RydWN0IHBhZ2UgKipwYWdlcywKLQkJCQkJICAgICAgdW5zaWduZWQgbG9uZyBudW1fcGFnZXMsCi0JCQkJCSAgICAgIHVpbnQzMl90IGd0dF9vZmZzZXQsCi0JCQkJCSAgICAgIHVpbnQzMl90IHR5cGUpCi17Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9hZ3BfaGVhZCAqZHJtX2FncF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKaW5kZXggY2E3NDVkOS4uNjgxY2I1OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaApAQCAtNDEsNiArNDEsNyBAQCBzdHJ1Y3QgZHJtX3Byb3BlcnR5Owogc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iOwogc3RydWN0IGRybV9wcmludGVyOwogc3RydWN0IGVkaWQ7CitzdHJ1Y3QgaTJjX2FkYXB0ZXI7CiAKIGVudW0gZHJtX2Nvbm5lY3Rvcl9mb3JjZSB7CiAJRFJNX0ZPUkNFX1VOU1BFQ0lGSUVELApAQCAtMzIzLDYgKzMyNCw4IEBAIGVudW0gZHJtX3BhbmVsX29yaWVudGF0aW9uIHsKICAqCQkJCQllZGdlIG9mIHRoZSBwaXhlbCBjbG9jawogICogQERSTV9CVVNfRkxBR19TWU5DX1NBTVBMRV9ORUdFREdFOglTeW5jIHNpZ25hbHMgYXJlIHNhbXBsZWQgb24gdGhlIGZhbGxpbmcKICAqCQkJCQllZGdlIG9mIHRoZSBwaXhlbCBjbG9jaworICogQERSTV9CVVNfRkxBR19TSEFSUF9TSUdOQUxTOgkJU2V0IGlmIHRoZSBTaGFycC1zcGVjaWZpYyBzaWduYWxzCisgKgkJCQkJKFNQTCwgQ0xTLCBQUywgUkVWKSBtdXN0IGJlIHVzZWQKICAqLwogZW51bSBkcm1fYnVzX2ZsYWdzIHsKIAlEUk1fQlVTX0ZMQUdfREVfTE9XID0gQklUKDApLApAQCAtMzQxLDYgKzM0NCw3IEBAIGVudW0gZHJtX2J1c19mbGFncyB7CiAJRFJNX0JVU19GTEFHX1NZTkNfRFJJVkVfTkVHRURHRSA9IERSTV9CVVNfRkxBR19TWU5DX05FR0VER0UsCiAJRFJNX0JVU19GTEFHX1NZTkNfU0FNUExFX1BPU0VER0UgPSBEUk1fQlVTX0ZMQUdfU1lOQ19ORUdFREdFLAogCURSTV9CVVNfRkxBR19TWU5DX1NBTVBMRV9ORUdFREdFID0gRFJNX0JVU19GTEFHX1NZTkNfUE9TRURHRSwKKwlEUk1fQlVTX0ZMQUdfU0hBUlBfU0lHTkFMUyA9IEJJVCg4KSwKIH07CiAKIC8qKgpAQCAtNTM5LDggKzU0Myw4IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKIAkgKgogCSAqIFRoaXMgaXMgYWxzbyB1c2VkIGluIHRoZSBhdG9taWMgaGVscGVycyB0byBtYXAgZW5jb2RlcnMgdG8gdGhlaXIKIAkgKiBjdXJyZW50IGFuZCBwcmV2aW91cyBjb25uZWN0b3JzLCBzZWUKLQkgKiAmZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9mb3JfZW5jb2RlcigpIGFuZAotCSAqICZkcm1fYXRvbWljX2dldF9uZXdfY29ubmVjdG9yX2Zvcl9lbmNvZGVyKCkuCisJICogZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9mb3JfZW5jb2RlcigpIGFuZAorCSAqIGRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3JfZm9yX2VuY29kZXIoKS4KIAkgKgogCSAqIE5PVEU6IEF0b21pYyBkcml2ZXJzIG11c3QgZmlsbCB0aGlzIG91dCAoZWl0aGVyIHRoZW1zZWx2ZXMgb3IgdGhyb3VnaAogCSAqIGhlbHBlcnMpLCBmb3Igb3RoZXJ3aXNlIHRoZSBHRVRDT05ORUNUT1IgYW5kIEdFVEVOQ09ERVIgSU9DVExzIHdpbGwKQEAgLTU5OSw2ICs2MDMsMTIgQEAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgewogCXVuc2lnbmVkIGludCBjb250ZW50X3R5cGU7CiAKIAkvKioKKwkgKiBAaGRjcF9jb250ZW50X3R5cGU6IENvbm5lY3RvciBwcm9wZXJ0eSB0byBwYXNzIHRoZSB0eXBlIG9mCisJICogcHJvdGVjdGVkIGNvbnRlbnQuIFRoaXMgaXMgbW9zdCBjb21tb25seSB1c2VkIGZvciBIRENQLgorCSAqLworCXVuc2lnbmVkIGludCBoZGNwX2NvbnRlbnRfdHlwZTsKKworCS8qKgogCSAqIEBzY2FsaW5nX21vZGU6IENvbm5lY3RvciBwcm9wZXJ0eSB0byBjb250cm9sIHRoZQogCSAqIHVwc2NhbGluZywgbW9zdGx5IHVzZWQgZm9yIGJ1aWx0LWluIHBhbmVscy4KIAkgKi8KQEAgLTEzMDgsNiArMTMxOCwxOCBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7CiAJICogWzBdOiBwcm9ncmVzc2l2ZSwgWzFdOiBpbnRlcmxhY2VkCiAJICovCiAJaW50IGF1ZGlvX2xhdGVuY3lbMl07CisKKwkvKioKKwkgKiBAZGRjOiBhc3NvY2lhdGVkIGRkYyBhZGFwdGVyLgorCSAqIEEgY29ubmVjdG9yIHVzdWFsbHkgaGFzIGl0cyBhc3NvY2lhdGVkIGRkYyBhZGFwdGVyLiBJZiBhIGRyaXZlciB1c2VzCisJICogdGhpcyBmaWVsZCwgdGhlbiBhbiBhcHByb3ByaWF0ZSBzeW1ib2xpYyBsaW5rIGlzIGNyZWF0ZWQgaW4gY29ubmVjdG9yCisJICogc3lzZnMgZGlyZWN0b3J5IHRvIG1ha2UgaXQgZWFzeSBmb3IgdGhlIHVzZXIgdG8gdGVsbCB3aGljaCBpMmMKKwkgKiBhZGFwdGVyIGlzIGZvciBhIHBhcnRpY3VsYXIgZGlzcGxheS4KKwkgKgorCSAqIFRoZSBmaWVsZCBzaG91bGQgYmUgc2V0IGJ5IGNhbGxpbmcgZHJtX2Nvbm5lY3Rvcl9pbml0X3dpdGhfZGRjKCkuCisJICovCisJc3RydWN0IGkyY19hZGFwdGVyICpkZGM7CisKIAkvKioKIAkgKiBAbnVsbF9lZGlkX2NvdW50ZXI6IHRyYWNrIHNpbmtzIHRoYXQgZ2l2ZSB1cyBhbGwgemVyb3MgZm9yIHRoZSBFRElELgogCSAqIE5lZWRlZCB0byB3b3JrYXJvdW5kIHNvbWUgSFcgYnVncyB3aGVyZSB3ZSBnZXQgYWxsIDBzCkBAIC0xMzk2LDYgKzE0MTgsMTEgQEAgaW50IGRybV9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzICpmdW5jcywKIAkJICAgICAgIGludCBjb25uZWN0b3JfdHlwZSk7CitpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0X3dpdGhfZGRjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyAqZnVuY3MsCisJCQkJaW50IGNvbm5lY3Rvcl90eXBlLAorCQkJCXN0cnVjdCBpMmNfYWRhcHRlciAqZGRjKTsKIHZvaWQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfZWRpZF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKIGludCBkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwogdm9pZCBkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CkBAIC0xNDgxLDYgKzE1MDgsNyBAQCBjb25zdCBjaGFyICpkcm1fZ2V0X2R2aV9pX3NlbGVjdF9uYW1lKGludCB2YWwpOwogY29uc3QgY2hhciAqZHJtX2dldF90dl9zdWJjb25uZWN0b3JfbmFtZShpbnQgdmFsKTsKIGNvbnN0IGNoYXIgKmRybV9nZXRfdHZfc2VsZWN0X25hbWUoaW50IHZhbCk7CiBjb25zdCBjaGFyICpkcm1fZ2V0X2NvbnRlbnRfcHJvdGVjdGlvbl9uYW1lKGludCB2YWwpOworY29uc3QgY2hhciAqZHJtX2dldF9oZGNwX2NvbnRlbnRfdHlwZV9uYW1lKGludCB2YWwpOwogCiBpbnQgZHJtX21vZGVfY3JlYXRlX2R2aV9pX3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgZHJtX21vZGVfY3JlYXRlX3R2X21hcmdpbl9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXggMTI4ZDhiMi4uNDA4YjZmNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCkBAIC0yODUsMTIgKzI4NSwxMiBAQCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgewogCXUzMiB0YXJnZXRfdmJsYW5rOwogCiAJLyoqCi0JICogQHBhZ2VmbGlwX2ZsYWdzOgorCSAqIEBhc3luY19mbGlwOgogCSAqCi0JICogRFJNX01PREVfUEFHRV9GTElQXyogZmxhZ3MsIGFzIHBhc3NlZCB0byB0aGUgcGFnZSBmbGlwIGlvY3RsLgotCSAqIFplcm8gaW4gYW55IG90aGVyIGNhc2UuCisJICogVGhpcyBpcyBzZXQgd2hlbiBEUk1fTU9ERV9QQUdFX0ZMSVBfQVNZTkMgaXMgc2V0IGluIHRoZSBsZWdhY3kKKwkgKiBQQUdFX0ZMSVAgSU9DVEwuIEl0J3Mgbm90IHdpcmVkIHVwIGZvciB0aGUgYXRvbWljIElPQ1RMIGl0c2VsZiB5ZXQuCiAJICovCi0JdTMyIHBhZ2VmbGlwX2ZsYWdzOworCWJvb2wgYXN5bmNfZmxpcDsKIAogCS8qKgogCSAqIEB2cnJfZW5hYmxlZDoKQEAgLTc1Niw2ICs3NTYsOSBAQCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgewogCSAqIHByb3ZpZGVkIGZyb20gdGhlIGNvbmZpZ3VyZWQgc291cmNlLiBEcml2ZXJzIG11c3QgYWNjZXB0IGFuICJhdXRvIgogCSAqIHNvdXJjZSBuYW1lIHRoYXQgd2lsbCBzZWxlY3QgYSBkZWZhdWx0IHNvdXJjZSBmb3IgdGhpcyBDUlRDLgogCSAqCisJICogVGhpcyBtYXkgdHJpZ2dlciBhbiBhdG9taWMgbW9kZXNldCBjb21taXQgaWYgbmVjZXNzYXJ5LCB0byBlbmFibGUgQ1JDCisJICogZ2VuZXJhdGlvbi4KKwkgKgogCSAqIE5vdGUgdGhhdCAiYXV0byIgY2FuIGRlcGVuZCB1cG9uIHRoZSBjdXJyZW50IG1vZGVzZXQgY29uZmlndXJhdGlvbiwKIAkgKiBlLmcuIGl0IGNvdWxkIHBpY2sgYW4gZW5jb2RlciBvciBvdXRwdXQgc3BlY2lmaWMgQ1JDIHNhbXBsaW5nIHBvaW50LgogCSAqCkBAIC03NjcsNiArNzcwLDcgQEAgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHsKIAkgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCiAJICovCiAJaW50ICgqc2V0X2NyY19zb3VyY2UpKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgY29uc3QgY2hhciAqc291cmNlKTsKKwogCS8qKgogCSAqIEB2ZXJpZnlfY3JjX3NvdXJjZToKIAkgKgpAQCAtMTEwNCw3ICsxMTA4LDcgQEAgc3RydWN0IGRybV9jcnRjIHsKIAkvKioKIAkgKiBAc2VsZl9yZWZyZXNoX2RhdGE6IEhvbGRzIHRoZSBzdGF0ZSBmb3IgdGhlIHNlbGYgcmVmcmVzaCBoZWxwZXJzCiAJICoKLQkgKiBJbml0aWFsaXplZCB2aWEgZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXJfcmVnaXN0ZXIoKS4KKwkgKiBJbml0aWFsaXplZCB2aWEgZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXJfaW5pdCgpLgogCSAqLwogCXN0cnVjdCBkcm1fc2VsZl9yZWZyZXNoX2RhdGEgKnNlbGZfcmVmcmVzaF9kYXRhOwogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAppbmRleCAzOTc4OTZiLi44MzY0NTAyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCkBAIC0xMzA5LDYgKzEzMDksMTAgQEAgc3RydWN0IGRybV9kcF9hdXggewogCSAqIEBjZWM6IHN0cnVjdCBjb250YWluaW5nIGZpZWxkcyB1c2VkIGZvciBDRUMtVHVubmVsaW5nLW92ZXItQVVYLgogCSAqLwogCXN0cnVjdCBkcm1fZHBfYXV4X2NlYyBjZWM7CisJLyoqCisJICogQGlzX3JlbW90ZTogSXMgdGhpcyBBVVggQ0ggYWN0dWFsbHkgdXNpbmcgc2lkZWJhbmQgbWVzc2FnaW5nLgorCSAqLworCWJvb2wgaXNfcmVtb3RlOwogfTsKIAogc3NpemVfdCBkcm1fZHBfZHBjZF9yZWFkKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsIHVuc2lnbmVkIGludCBvZmZzZXQsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaAppbmRleCA4Yzk3YTVmLi4yYmE2MjUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgKQEAgLTY0Myw2ICs2NDMsMTcgQEAgdm9pZCBkcm1fZHBfbXN0X2R1bXBfdG9wb2xvZ3koc3RydWN0IHNlcV9maWxlICptLAogdm9pZCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9zdXNwZW5kKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKTsKIGludCBfX211c3RfY2hlY2sKIGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyX3Jlc3VtZShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1ncik7CisKK3NzaXplX3QgZHJtX2RwX21zdF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCSAgICAgdW5zaWduZWQgaW50IG9mZnNldCwgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7Citzc2l6ZV90IGRybV9kcF9tc3RfZHBjZF93cml0ZShzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LAorCQkJICAgICAgdW5zaWduZWQgaW50IG9mZnNldCwgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7CisKK2ludCBkcm1fZHBfbXN0X2Nvbm5lY3Rvcl9sYXRlX3JlZ2lzdGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJICAgICAgIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpOwordm9pZCBkcm1fZHBfbXN0X2Nvbm5lY3Rvcl9lYXJseV91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCSAgIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpOworCiBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZSAqZHJtX2F0b21pY19nZXRfbXN0X3RvcG9sb2d5X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkJCQkJICAgIHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKTsKIGludCBfX211c3RfY2hlY2sKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcnYuaCBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaAppbmRleCA2OGNhNzM2Li44OTc2YWZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCkBAIC02MiwxMiArNjIsNiBAQCBlbnVtIGRybV9kcml2ZXJfZmVhdHVyZSB7CiAJICovCiAJRFJJVkVSX01PREVTRVQJCQk9IEJJVCgxKSwKIAkvKioKLQkgKiBARFJJVkVSX1BSSU1FOgotCSAqCi0JICogRHJpdmVyIGltcGxlbWVudHMgRFJNIFBSSU1FIGJ1ZmZlciBzaGFyaW5nLgotCSAqLwotCURSSVZFUl9QUklNRQkJCT0gQklUKDIpLAotCS8qKgogCSAqIEBEUklWRVJfUkVOREVSOgogCSAqCiAJICogRHJpdmVyIHN1cHBvcnRzIGRlZGljYXRlZCByZW5kZXIgbm9kZXMuIFNlZSBhbHNvIHRoZSA6cmVmOmBzZWN0aW9uIG9uCkBAIC01MDIsMjEgKzQ5NiwyNSBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7CiAJICogQGdlbV9mcmVlX29iamVjdDogZGVjb25zdHJ1Y3RvciBmb3IgZHJtX2dlbV9vYmplY3RzCiAJICoKIAkgKiBUaGlzIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBieSBuZXcgZHJpdmVycy4gVXNlCi0JICogQGdlbV9mcmVlX29iamVjdF91bmxvY2tlZCBpbnN0ZWFkLgorCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy5mcmVlIGluc3RlYWQuCiAJICovCiAJdm9pZCAoKmdlbV9mcmVlX29iamVjdCkgKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIAogCS8qKgogCSAqIEBnZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQ6IGRlY29uc3RydWN0b3IgZm9yIGRybV9nZW1fb2JqZWN0cwogCSAqCi0JICogVGhpcyBpcyBmb3IgZHJpdmVycyB3aGljaCBhcmUgbm90IGVuY3VtYmVyZWQgd2l0aCAmZHJtX2RldmljZS5zdHJ1Y3RfbXV0ZXgKLQkgKiBsZWdhY3kgbG9ja2luZyBzY2hlbWVzLiBVc2UgdGhpcyBob29rIGluc3RlYWQgb2YgQGdlbV9mcmVlX29iamVjdC4KKwkgKiBUaGlzIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBieSBuZXcgZHJpdmVycy4gVXNlCisJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmZyZWUgaW5zdGVhZC4KKwkgKiBDb21wYXJlZCB0byBAZ2VtX2ZyZWVfb2JqZWN0IHRoaXMgaXMgbm90IGVuY3VtYmVyZWQgd2l0aAorCSAqICZkcm1fZGV2aWNlLnN0cnVjdF9tdXRleCBsZWdhY3kgbG9ja2luZyBzY2hlbWVzLgogCSAqLwogCXZvaWQgKCpnZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQpIChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiAKIAkvKioKIAkgKiBAZ2VtX29wZW5fb2JqZWN0OgogCSAqCisJICogVGhpcyBjYWxsYmFjayBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiAmZHJtX2dlbV9vYmplY3RfZnVuY3Mub3Blbi4KKwkgKgogCSAqIERyaXZlciBob29rIGNhbGxlZCB1cG9uIGdlbSBoYW5kbGUgY3JlYXRpb24KIAkgKi8KIAlpbnQgKCpnZW1fb3Blbl9vYmplY3QpIChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKiwgc3RydWN0IGRybV9maWxlICopOwpAQCAtNTI0LDYgKzUyMiw4IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKIAkvKioKIAkgKiBAZ2VtX2Nsb3NlX29iamVjdDoKIAkgKgorCSAqIFRoaXMgY2FsbGJhY2sgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmNsb3NlLgorCSAqCiAJICogRHJpdmVyIGhvb2sgY2FsbGVkIHVwb24gZ2VtIGhhbmRsZSByZWxlYXNlCiAJICovCiAJdm9pZCAoKmdlbV9jbG9zZV9vYmplY3QpIChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKiwgc3RydWN0IGRybV9maWxlICopOwpAQCAtNTMxLDYgKzUzMSw5IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKIAkvKioKIAkgKiBAZ2VtX3ByaW50X2luZm86CiAJICoKKwkgKiBUaGlzIGNhbGxiYWNrIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mCisJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnByaW50X2luZm8uCisJICoKIAkgKiBJZiBkcml2ZXIgc3ViY2xhc3NlcyBzdHJ1Y3QgJmRybV9nZW1fb2JqZWN0LCBpdCBjYW4gaW1wbGVtZW50IHRoaXMKIAkgKiBvcHRpb25hbCBob29rIGZvciBwcmludGluZyBhZGRpdGlvbmFsIGRyaXZlciBzcGVjaWZpYyBpbmZvLgogCSAqCkBAIC01NDUsNTYgKzU0OCwxMDggQEAgc3RydWN0IGRybV9kcml2ZXIgewogCS8qKgogCSAqIEBnZW1fY3JlYXRlX29iamVjdDogY29uc3RydWN0b3IgZm9yIGdlbSBvYmplY3RzCiAJICoKLQkgKiBIb29rIGZvciBhbGxvY2F0aW5nIHRoZSBHRU0gb2JqZWN0IHN0cnVjdCwgZm9yIHVzZSBieSBjb3JlCi0JICogaGVscGVycy4KKwkgKiBIb29rIGZvciBhbGxvY2F0aW5nIHRoZSBHRU0gb2JqZWN0IHN0cnVjdCwgZm9yIHVzZSBieSB0aGUgQ01BIGFuZAorCSAqIFNITUVNIEdFTSBoZWxwZXJzLgogCSAqLwogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKCpnZW1fY3JlYXRlX29iamVjdCkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJCSAgICBzaXplX3Qgc2l6ZSk7Ci0KLQkvKiBwcmltZTogKi8KIAkvKioKIAkgKiBAcHJpbWVfaGFuZGxlX3RvX2ZkOgogCSAqCi0JICogZXhwb3J0IGhhbmRsZSAtPiBmZCAoc2VlIGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKCkgaGVscGVyKQorCSAqIE1haW4gUFJJTUUgZXhwb3J0IGZ1bmN0aW9uLiBTaG91bGQgYmUgaW1wbGVtZW50ZWQgd2l0aAorCSAqIGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKCkgZm9yIEdFTSBiYXNlZCBkcml2ZXJzLgorCSAqCisJICogRm9yIGFuIGluLWRlcHRoIGRpc2N1c3Npb24gc2VlIDpyZWY6YFBSSU1FIGJ1ZmZlciBzaGFyaW5nCisJICogZG9jdW1lbnRhdGlvbiA8cHJpbWVfYnVmZmVyX3NoYXJpbmc+YC4KIAkgKi8KIAlpbnQgKCpwcmltZV9oYW5kbGVfdG9fZmQpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCQkJCXVpbnQzMl90IGhhbmRsZSwgdWludDMyX3QgZmxhZ3MsIGludCAqcHJpbWVfZmQpOwogCS8qKgogCSAqIEBwcmltZV9mZF90b19oYW5kbGU6CiAJICoKLQkgKiBpbXBvcnQgZmQgLT4gaGFuZGxlIChzZWUgZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoKSBoZWxwZXIpCisJICogTWFpbiBQUklNRSBpbXBvcnQgZnVuY3Rpb24uIFNob3VsZCBiZSBpbXBsZW1lbnRlZCB3aXRoCisJICogZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoKSBmb3IgR0VNIGJhc2VkIGRyaXZlcnMuCisJICoKKwkgKiBGb3IgYW4gaW4tZGVwdGggZGlzY3Vzc2lvbiBzZWUgOnJlZjpgUFJJTUUgYnVmZmVyIHNoYXJpbmcKKwkgKiBkb2N1bWVudGF0aW9uIDxwcmltZV9idWZmZXJfc2hhcmluZz5gLgogCSAqLwogCWludCAoKnByaW1lX2ZkX3RvX2hhbmRsZSkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAJCQkJaW50IHByaW1lX2ZkLCB1aW50MzJfdCAqaGFuZGxlKTsKIAkvKioKIAkgKiBAZ2VtX3ByaW1lX2V4cG9ydDoKIAkgKgotCSAqIGV4cG9ydCBHRU0gLT4gZG1hYnVmCi0JICoKLQkgKiBUaGlzIGRlZmF1bHRzIHRvIGRybV9nZW1fcHJpbWVfZXhwb3J0KCkgaWYgbm90IHNldC4KKwkgKiBFeHBvcnQgaG9vayBmb3IgR0VNIGRyaXZlcnMuIERlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mCisJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmV4cG9ydC4KIAkgKi8KLQlzdHJ1Y3QgZG1hX2J1ZiAqICgqZ2VtX3ByaW1lX2V4cG9ydCkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKTsKKwlzdHJ1Y3QgZG1hX2J1ZiAqICgqZ2VtX3ByaW1lX2V4cG9ydCkoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCisJCQkJCSAgICAgaW50IGZsYWdzKTsKIAkvKioKIAkgKiBAZ2VtX3ByaW1lX2ltcG9ydDoKIAkgKgotCSAqIGltcG9ydCBkbWFidWYgLT4gR0VNCisJICogSW1wb3J0IGhvb2sgZm9yIEdFTSBkcml2ZXJzLgogCSAqCiAJICogVGhpcyBkZWZhdWx0cyB0byBkcm1fZ2VtX3ByaW1lX2ltcG9ydCgpIGlmIG5vdCBzZXQuCiAJICovCiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICogKCpnZW1fcHJpbWVfaW1wb3J0KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCXN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKTsKKworCS8qKgorCSAqIEBnZW1fcHJpbWVfcGluOgorCSAqCisJICogRGVwcmVjYXRlZCBob29rIGluIGZhdm91ciBvZiAmZHJtX2dlbV9vYmplY3RfZnVuY3MucGluLgorCSAqLwogCWludCAoKmdlbV9wcmltZV9waW4pKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKKworCS8qKgorCSAqIEBnZW1fcHJpbWVfdW5waW46CisJICoKKwkgKiBEZXByZWNhdGVkIGhvb2sgaW4gZmF2b3VyIG9mICZkcm1fZ2VtX29iamVjdF9mdW5jcy51bnBpbi4KKwkgKi8KIAl2b2lkICgqZ2VtX3ByaW1lX3VucGluKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqICgqZ2VtX3ByaW1lX3Jlc19vYmopKAotCQkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKKworCisJLyoqCisJICogQGdlbV9wcmltZV9nZXRfc2dfdGFibGU6CisJICoKKwkgKiBEZXByZWNhdGVkIGhvb2sgaW4gZmF2b3VyIG9mICZkcm1fZ2VtX29iamVjdF9mdW5jcy5nZXRfc2dfdGFibGUuCisJICovCiAJc3RydWN0IHNnX3RhYmxlICooKmdlbV9wcmltZV9nZXRfc2dfdGFibGUpKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKKworCS8qKgorCSAqIEBnZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlOgorCSAqCisJICogT3B0aW9uYWwgaG9vayB1c2VkIGJ5IHRoZSBQUklNRSBoZWxwZXIgZnVuY3Rpb25zCisJICogZHJtX2dlbV9wcmltZV9pbXBvcnQoKSByZXNwZWN0aXZlbHkgZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2KCkuCisJICovCiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICooKmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUpKAogCQkJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAogCQkJCXN0cnVjdCBzZ190YWJsZSAqc2d0KTsKKwkvKioKKwkgKiBAZ2VtX3ByaW1lX3ZtYXA6CisJICoKKwkgKiBEZXByZWNhdGVkIHZtYXAgaG9vayBmb3IgR0VNIGRyaXZlcnMuIFBsZWFzZSB1c2UKKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3Mudm1hcCBpbnN0ZWFkLgorCSAqLwogCXZvaWQgKigqZ2VtX3ByaW1lX3ZtYXApKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKKworCS8qKgorCSAqIEBnZW1fcHJpbWVfdnVubWFwOgorCSAqCisJICogRGVwcmVjYXRlZCB2dW5tYXAgaG9vayBmb3IgR0VNIGRyaXZlcnMuIFBsZWFzZSB1c2UKKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MudnVubWFwIGluc3RlYWQuCisJICovCiAJdm9pZCAoKmdlbV9wcmltZV92dW5tYXApKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcik7CisKKwkvKioKKwkgKiBAZ2VtX3ByaW1lX21tYXA6CisJICoKKwkgKiBtbWFwIGhvb2sgZm9yIEdFTSBkcml2ZXJzLCB1c2VkIHRvIGltcGxlbWVudCBkbWEtYnVmIG1tYXAgaW4gdGhlCisJICogUFJJTUUgaGVscGVycy4KKwkgKgorCSAqIEZJWE1FOiBUaGVyZSdzIHdheSB0b28gbXVjaCBkdXBsaWNhdGlvbiBnb2luZyBvbiBoZXJlLCBhbmQgYWxzbyBtb3ZlZAorCSAqIHRvICZkcm1fZ2VtX29iamVjdF9mdW5jcy4KKwkgKi8KIAlpbnQgKCpnZW1fcHJpbWVfbW1hcCkoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogCkBAIC02NjIsNiArNzE3LDkgQEAgc3RydWN0IGRybV9kcml2ZXIgewogCiAJLyoqCiAJICogQGdlbV92bV9vcHM6IERyaXZlciBwcml2YXRlIG9wcyBmb3IgdGhpcyBvYmplY3QKKwkgKgorCSAqIEZvciBHRU0gZHJpdmVycyB0aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mCisJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZtX29wcy4KIAkgKi8KIAljb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgKmdlbV92bV9vcHM7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9nZW0uaCBiL2luY2x1ZGUvZHJtL2RybV9nZW0uaAppbmRleCBhOTEyMWZlLi42YWFiYTE0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZ2VtLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2dlbS5oCkBAIC0zNSw3ICszNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KLSNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1yZXN2Lmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX3ZtYV9tYW5hZ2VyLmg+CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MgewogCS8qKgogCSAqIEBwaW46CiAJICoKLQkgKiBQaW4gYmFja2luZyBidWZmZXIgaW4gbWVtb3J5LgorCSAqIFBpbiBiYWNraW5nIGJ1ZmZlciBpbiBtZW1vcnkuIFVzZWQgYnkgdGhlIGRybV9nZW1fbWFwX2F0dGFjaCgpIGhlbHBlci4KIAkgKgogCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCiAJICovCkBAIC0xMTAsNyArMTEwLDcgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzIHsKIAkvKioKIAkgKiBAdW5waW46CiAJICoKLQkgKiBVbnBpbiBiYWNraW5nIGJ1ZmZlci4KKwkgKiBVbnBpbiBiYWNraW5nIGJ1ZmZlci4gVXNlZCBieSB0aGUgZHJtX2dlbV9tYXBfZGV0YWNoKCkgaGVscGVyLgogCSAqCiAJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4KIAkgKi8KQEAgLTEyMCwxNiArMTIwLDIxIEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdF9mdW5jcyB7CiAJICogQGdldF9zZ190YWJsZToKIAkgKgogCSAqIFJldHVybnMgYSBTY2F0dGVyLUdhdGhlciB0YWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnVmZmVyLgotCSAqIFVzZWQgd2hlbiBleHBvcnRpbmcgYSBidWZmZXIuCisJICogVXNlZCB3aGVuIGV4cG9ydGluZyBhIGJ1ZmZlciBieSB0aGUgZHJtX2dlbV9tYXBfZG1hX2J1ZigpIGhlbHBlci4KKwkgKiBSZWxlYXNpbmcgaXMgZG9uZSBieSBjYWxsaW5nIGRtYV91bm1hcF9zZ19hdHRycygpIGFuZCBzZ19mcmVlX3RhYmxlKCkKKwkgKiBpbiBkcm1fZ2VtX3VubWFwX2J1ZigpLCB0aGVyZWZvcmUgdGhlc2UgaGVscGVycyBhbmQgdGhpcyBjYWxsYmFjaworCSAqIGhlcmUgY2Fubm90IGJlIHVzZWQgZm9yIHNnIHRhYmxlcyBwb2ludGluZyBhdCBkcml2ZXIgcHJpdmF0ZSBtZW1vcnkKKwkgKiByYW5nZXMuCiAJICoKLQkgKiBUaGlzIGNhbGxiYWNrIGlzIG1hbmRhdG9yeSBpZiBidWZmZXIgZXhwb3J0IGlzIHN1cHBvcnRlZC4KKwkgKiBTZWUgYWxzbyBkcm1fcHJpbWVfcGFnZXNfdG9fc2coKS4KIAkgKi8KIAlzdHJ1Y3Qgc2dfdGFibGUgKigqZ2V0X3NnX3RhYmxlKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiAKIAkvKioKIAkgKiBAdm1hcDoKIAkgKgotCSAqIFJldHVybnMgYSB2aXJ0dWFsIGFkZHJlc3MgZm9yIHRoZSBidWZmZXIuCisJICogUmV0dXJucyBhIHZpcnR1YWwgYWRkcmVzcyBmb3IgdGhlIGJ1ZmZlci4gVXNlZCBieSB0aGUKKwkgKiBkcm1fZ2VtX2RtYWJ1Zl92bWFwKCkgaGVscGVyLgogCSAqCiAJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4KIAkgKi8KQEAgLTEzOCw3ICsxNDMsOCBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MgewogCS8qKgogCSAqIEB2dW5tYXA6CiAJICoKLQkgKiBSZWxlYXNlcyB0aGUgdGhlIGFkZHJlc3MgcHJldmlvdXNseSByZXR1cm5lZCBieSBAdm1hcC4KKwkgKiBSZWxlYXNlcyB0aGUgdGhlIGFkZHJlc3MgcHJldmlvdXNseSByZXR1cm5lZCBieSBAdm1hcC4gVXNlZCBieSB0aGUKKwkgKiBkcm1fZ2VtX2RtYWJ1Zl92dW5tYXAoKSBoZWxwZXIuCiAJICoKIAkgKiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgogCSAqLwpAQCAtMjcwLDcgKzI3Niw3IEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCB7CiAJICoKIAkgKiBOb3JtYWxseSAoQHJlc3YgPT0gJkBfcmVzdikgZXhjZXB0IGZvciBpbXBvcnRlZCBHRU0gb2JqZWN0cy4KIAkgKi8KLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OworCXN0cnVjdCBkbWFfcmVzdiAqcmVzdjsKIAogCS8qKgogCSAqIEBfcmVzdjoKQEAgLTI3OSw3ICsyODUsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgewogCSAqCiAJICogVGhpcyBpcyB1bnVzZWQgZm9yIGltcG9ydGVkIEdFTSBvYmplY3RzLgogCSAqLwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgX3Jlc3Y7CisJc3RydWN0IGRtYV9yZXN2IF9yZXN2OwogCiAJLyoqCiAJICogQGZ1bmNzOgpAQCAtMzg0LDcgKzM5MCw3IEBAIHZvaWQgZHJtX2dlbV9wdXRfcGFnZXMoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBwYWdlICoqcGFnZXMsCiBpbnQgZHJtX2dlbV9vYmplY3RzX2xvb2t1cChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAsIHZvaWQgX191c2VyICpib19oYW5kbGVzLAogCQkJICAgaW50IGNvdW50LCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKioqb2Jqc19vdXQpOwogc3RydWN0IGRybV9nZW1fb2JqZWN0ICpkcm1fZ2VtX29iamVjdF9sb29rdXAoc3RydWN0IGRybV9maWxlICpmaWxwLCB1MzIgaGFuZGxlKTsKLWxvbmcgZHJtX2dlbV9yZXNlcnZhdGlvbl9vYmplY3Rfd2FpdChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVwLCB1MzIgaGFuZGxlLAorbG9uZyBkcm1fZ2VtX2RtYV9yZXN2X3dhaXQoc3RydWN0IGRybV9maWxlICpmaWxlcCwgdTMyIGhhbmRsZSwKIAkJCQkgICAgYm9vbCB3YWl0X2FsbCwgdW5zaWduZWQgbG9uZyB0aW1lb3V0KTsKIGludCBkcm1fZ2VtX2xvY2tfcmVzZXJ2YXRpb25zKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9ianMsIGludCBjb3VudCwKIAkJCSAgICAgIHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqYWNxdWlyZV9jdHgpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmgKaW5kZXggN2YzMDdlOC4uZDlmMTNmZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oCkBAIC0zMywxMSArMzMsNCBAQCBpbnQgZHJtX2dlbV9mYl9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSk7CiBpbnQgZHJtX2dlbV9mYl9zaW1wbGVfZGlzcGxheV9waXBlX3ByZXBhcmVfZmIoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAogCQkJCQkgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Ci0KLXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKgotZHJtX2dlbV9mYmRldl9mYl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCXN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMsCi0JCQl1bnNpZ25lZCBpbnQgcGl0Y2hfYWxpZ24sIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAotCQkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyAqZnVuY3MpOwotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZ2VtX3NobWVtX2hlbHBlci5oCmluZGV4IDAzOGI2ZDMuLjAxZjUxNDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2dlbV9zaG1lbV9oZWxwZXIuaApAQCAtNDQsNiArNDQsOSBAQCBzdHJ1Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3QgewogCSAqLwogCXVuc2lnbmVkIGludCBwYWdlc191c2VfY291bnQ7CiAKKwlpbnQgbWFkdjsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG1hZHZfbGlzdDsKKwogCS8qKgogCSAqIEBwYWdlc19tYXJrX2RpcnR5X29uX3B1dDoKIAkgKgpAQCAtMTIxLDYgKzEyNCwxOCBAQCB2b2lkIGRybV9nZW1fc2htZW1fdW5waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwogdm9pZCAqZHJtX2dlbV9zaG1lbV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIHZvaWQgZHJtX2dlbV9zaG1lbV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKIAoraW50IGRybV9nZW1fc2htZW1fbWFkdmlzZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IG1hZHYpOworCitzdGF0aWMgaW5saW5lIGJvb2wgZHJtX2dlbV9zaG1lbV9pc19wdXJnZWFibGUoc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0ICpzaG1lbSkKK3sKKwlyZXR1cm4gKHNobWVtLT5tYWR2ID4gMCkgJiYKKwkJIXNobWVtLT52bWFwX3VzZV9jb3VudCAmJiBzaG1lbS0+c2d0ICYmCisJCSFzaG1lbS0+YmFzZS5kbWFfYnVmICYmICFzaG1lbS0+YmFzZS5pbXBvcnRfYXR0YWNoOworfQorCit2b2lkIGRybV9nZW1fc2htZW1fcHVyZ2VfbG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKK2Jvb2wgZHJtX2dlbV9zaG1lbV9wdXJnZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CisKIHN0cnVjdCBkcm1fZ2VtX3NobWVtX29iamVjdCAqCiBkcm1fZ2VtX3NobWVtX2NyZWF0ZV93aXRoX2hhbmRsZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIAkJCQkgc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmgKaW5kZXggOTU4MWVhMC4uYWMyMTdkNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaApAQCAtMzYsNyArMzYsNiBAQCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Q7CiAgKiB2aWRlbyBtZW1vcnkgYmVjb21lcyBzY2FyY2UuCiAgKi8KIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0IHsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgZ2VtOwogCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCBibzsKIAlzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqIGttYXA7CiAKQEAgLTY4LDcgKzY3LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZHJtX2dlbV92cmFtX29mX2JvKAogc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZHJtX2dlbV92cmFtX29mX2dlbSgKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSkKIHsKLQlyZXR1cm4gY29udGFpbmVyX29mKGdlbSwgc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QsIGdlbSk7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihnZW0sIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0LCBiby5iYXNlKTsKIH0KIAogc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmRybV9nZW1fdnJhbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKQEAgLTEwOCw3ICsxMDcsNiBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGRybV92cmFtX21tX2Z1bmNzIGRybV9nZW1fdnJhbV9tbV9mdW5jczsKICAqIEhlbHBlcnMgZm9yIHN0cnVjdCBkcm1fZHJpdmVyCiAgKi8KIAotdm9pZCBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9mcmVlX29iamVjdF91bmxvY2tlZChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSk7CiBpbnQgZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJCQkJICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7CkBAIC0xMjQsMzAgKzEyMiw4IEBAIGludCBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2R1bWJfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlLAogICogJnN0cnVjdCBkcm1fZHJpdmVyIHdpdGggZGVmYXVsdCBmdW5jdGlvbnMuCiAgKi8KICNkZWZpbmUgRFJNX0dFTV9WUkFNX0RSSVZFUiBcCi0JLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IFwKLQkJZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQsIFwKIAkuZHVtYl9jcmVhdGUJCSAgPSBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2R1bWJfY3JlYXRlLCBcCi0JLmR1bWJfbWFwX29mZnNldAkgID0gZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0Ci0KLS8qCi0gKiBQUklNRSBoZWxwZXJzIGZvciBzdHJ1Y3QgZHJtX2RyaXZlcgotICovCi0KLWludCBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwotdm9pZCBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Ci12b2lkICpkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKLXZvaWQgZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfdnVubWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAotCQkJCQkgIHZvaWQgKnZhZGRyKTsKLWludCBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV9tbWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAotCQkJCSAgICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7Ci0KLSNkZWZpbmUgRFJNX0dFTV9WUkFNX0RSSVZFUl9QUklNRSBcCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwgXAotCS5nZW1fcHJpbWVfaW1wb3J0ID0gZHJtX2dlbV9wcmltZV9pbXBvcnQsIFwKLQkuZ2VtX3ByaW1lX3BpbgkgID0gZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfcGluLCBcCi0JLmdlbV9wcmltZV91bnBpbiAgPSBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV91bnBpbiwgXAotCS5nZW1fcHJpbWVfdm1hcAkgID0gZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfdm1hcCwgXAotCS5nZW1fcHJpbWVfdnVubWFwID0gZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfdnVubWFwLCBcCi0JLmdlbV9wcmltZV9tbWFwCSAgPSBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV9tbWFwCisJLmR1bWJfbWFwX29mZnNldAkgID0gZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0LCBcCisJLmdlbV9wcmltZV9tbWFwCQkgID0gZHJtX2dlbV9wcmltZV9tbWFwCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaCBiL2luY2x1ZGUvZHJtL2RybV9oZGNwLmgKaW5kZXggMTM3NzFhNC4uMDZhMTEyMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaAorKysgYi9pbmNsdWRlL2RybS9kcm1faGRjcC5oCkBAIC0yOTEsNSArMjkxLDEyIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yOwogYm9vbCBkcm1faGRjcF9jaGVja19rc3ZzX3Jldm9rZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgdTggKmtzdnMsIHUzMiBrc3ZfY291bnQpOwogaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSgKLQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CisJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgaGRjcF9jb250ZW50X3R5cGUpOwordm9pZCBkcm1faGRjcF91cGRhdGVfY29udGVudF9wcm90ZWN0aW9uKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCXU2NCB2YWwpOworCisvKiBDb250ZW50IFR5cGUgY2xhc3NpZmljYXRpb24gZm9yIEhEQ1AyLjIgdnMgb3RoZXJzICovCisjZGVmaW5lIERSTV9NT0RFX0hEQ1BfQ09OVEVOVF9UWVBFMAkJMAorI2RlZmluZSBEUk1fTU9ERV9IRENQX0NPTlRFTlRfVFlQRTEJCTEKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1faW9jdGwuaCBiL2luY2x1ZGUvZHJtL2RybV9pb2N0bC5oCmluZGV4IGZhZmI2ZjUuLjEwMTAwYTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9pb2N0bC5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9pb2N0bC5oCkBAIC0xMTQsNiArMTE0LDkgQEAgZW51bSBkcm1faW9jdGxfZmxhZ3MgewogCSAqIFdoZXRoZXIgJmRybV9pb2N0bF9kZXNjLmZ1bmMgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHRoZSBEUk0gQktMIGhlbGQKIAkgKiBvciBub3QuIEVuZm9yY2VkIGFzIHRoZSBkZWZhdWx0IGZvciBhbGwgbW9kZXJuIGRyaXZlcnMsIGhlbmNlIHRoZXJlCiAJICogc2hvdWxkIG5ldmVyIGJlIGEgbmVlZCB0byBzZXQgdGhpcyBmbGFnLgorCSAqCisJICogRG8gbm90IHVzZSBhbnl3aGVyZSBlbHNlIHRoYW4gZm9yIHRoZSBWQkxBTktfV0FJVCBJT0NUTCwgd2hpY2ggaXMgdGhlCisJICogb25seSBsZWdhY3kgSU9DVEwgd2hpY2ggbmVlZHMgdGhpcy4KIAkgKi8KIAlEUk1fVU5MT0NLRUQJCT0gQklUKDQpLAogCS8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21pcGlfZGJpLmggYi9pbmNsdWRlL2RybS9kcm1fbWlwaV9kYmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2M2NmY1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kcm0vZHJtX21pcGlfZGJpLmgKQEAgLTAsMCArMSwxODggQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCisvKgorICogTUlQSSBEaXNwbGF5IEJ1cyBJbnRlcmZhY2UgKERCSSkgTENEIGNvbnRyb2xsZXIgc3VwcG9ydAorICoKKyAqIENvcHlyaWdodCAyMDE2IE5vcmFsZiBUcsO4bm5lcworICovCisKKyNpZm5kZWYgX19MSU5VWF9NSVBJX0RCSV9ICisjZGVmaW5lIF9fTElOVVhfTUlQSV9EQklfSAorCisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KKworc3RydWN0IGRybV9yZWN0Oworc3RydWN0IHNwaV9kZXZpY2U7CitzdHJ1Y3QgZ3Bpb19kZXNjOworc3RydWN0IHJlZ3VsYXRvcjsKKworLyoqCisgKiBzdHJ1Y3QgbWlwaV9kYmkgLSBNSVBJIERCSSBpbnRlcmZhY2UKKyAqLworc3RydWN0IG1pcGlfZGJpIHsKKwkvKioKKwkgKiBAY21kbG9jazogQ29tbWFuZCBsb2NrCisJICovCisJc3RydWN0IG11dGV4IGNtZGxvY2s7CisKKwkvKioKKwkgKiBAY29tbWFuZDogQnVzIHNwZWNpZmljIGNhbGxiYWNrIGV4ZWN1dGluZyBjb21tYW5kcy4KKwkgKi8KKwlpbnQgKCpjb21tYW5kKShzdHJ1Y3QgbWlwaV9kYmkgKmRiaSwgdTggKmNtZCwgdTggKnBhcmFtLCBzaXplX3QgbnVtKTsKKworCS8qKgorCSAqIEByZWFkX2NvbW1hbmRzOiBBcnJheSBvZiByZWFkIGNvbW1hbmRzIHRlcm1pbmF0ZWQgYnkgYSB6ZXJvIGVudHJ5LgorCSAqICAgICAgICAgICAgICAgICBSZWFkaW5nIGlzIGRpc2FibGVkIGlmIHRoaXMgaXMgTlVMTC4KKwkgKi8KKwljb25zdCB1OCAqcmVhZF9jb21tYW5kczsKKworCS8qKgorCSAqIEBzd2FwX2J5dGVzOiBTd2FwIGJ5dGVzIGluIGJ1ZmZlciBiZWZvcmUgdHJhbnNmZXIKKwkgKi8KKwlib29sIHN3YXBfYnl0ZXM7CisKKwkvKioKKwkgKiBAcmVzZXQ6IE9wdGlvbmFsIHJlc2V0IGdwaW8KKwkgKi8KKwlzdHJ1Y3QgZ3Bpb19kZXNjICpyZXNldDsKKworCS8qIFR5cGUgQyBzcGVjaWZpYyAqLworCisJLyoqCisJICogQHNwaTogU1BJIGRldmljZQorCSAqLworCXN0cnVjdCBzcGlfZGV2aWNlICpzcGk7CisKKwkvKioKKwkgKiBAZGM6IE9wdGlvbmFsIEQvQyBncGlvLgorCSAqLworCXN0cnVjdCBncGlvX2Rlc2MgKmRjOworCisJLyoqCisJICogQHR4X2J1Zjk6IEJ1ZmZlciB1c2VkIGZvciBPcHRpb24gMSA5LWJpdCBjb252ZXJzaW9uCisJICovCisJdm9pZCAqdHhfYnVmOTsKKworCS8qKgorCSAqIEB0eF9idWY5X2xlbjogU2l6ZSBvZiB0eF9idWY5LgorCSAqLworCXNpemVfdCB0eF9idWY5X2xlbjsKK307CisKKy8qKgorICogc3RydWN0IG1pcGlfZGJpX2RldiAtIE1JUEkgREJJIGRldmljZQorICovCitzdHJ1Y3QgbWlwaV9kYmlfZGV2IHsKKwkvKioKKwkgKiBAZHJtOiBEUk0gZGV2aWNlCisJICovCisJc3RydWN0IGRybV9kZXZpY2UgZHJtOworCisJLyoqCisJICogQHBpcGU6IERpc3BsYXkgcGlwZSBzdHJ1Y3R1cmUKKwkgKi8KKwlzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgcGlwZTsKKworCS8qKgorCSAqIEBjb25uZWN0b3I6IENvbm5lY3RvcgorCSAqLworCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsKKworCS8qKgorCSAqIEBtb2RlOiBGaXhlZCBkaXNwbGF5IG1vZGUKKwkgKi8KKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlOworCisJLyoqCisJICogQGVuYWJsZWQ6IFBpcGVsaW5lIGlzIGVuYWJsZWQKKwkgKi8KKwlib29sIGVuYWJsZWQ7CisKKwkvKioKKwkgKiBAdHhfYnVmOiBCdWZmZXIgdXNlZCBmb3IgdHJhbnNmZXIgKGNvcHkgY2xpcCByZWN0IGFyZWEpCisJICovCisJdTE2ICp0eF9idWY7CisKKwkvKioKKwkgKiBAcm90YXRpb246IGluaXRpYWwgcm90YXRpb24gaW4gZGVncmVlcyBDb3VudGVyIENsb2NrIFdpc2UKKwkgKi8KKwl1bnNpZ25lZCBpbnQgcm90YXRpb247CisKKwkvKioKKwkgKiBAYmFja2xpZ2h0OiBiYWNrbGlnaHQgZGV2aWNlIChvcHRpb25hbCkKKwkgKi8KKwlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmFja2xpZ2h0OworCisJLyoqCisJICogQHJlZ3VsYXRvcjogcG93ZXIgcmVndWxhdG9yIChvcHRpb25hbCkKKwkgKi8KKwlzdHJ1Y3QgcmVndWxhdG9yICpyZWd1bGF0b3I7CisKKwkvKioKKwkgKiBAZGJpOiBNSVBJIERCSSBpbnRlcmZhY2UKKwkgKi8KKwlzdHJ1Y3QgbWlwaV9kYmkgZGJpOworfTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgbWlwaV9kYmlfZGV2ICpkcm1fdG9fbWlwaV9kYmlfZGV2KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihkcm0sIHN0cnVjdCBtaXBpX2RiaV9kZXYsIGRybSk7Cit9CisKK2ludCBtaXBpX2RiaV9zcGlfaW5pdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3QgbWlwaV9kYmkgKmRiaSwKKwkJICAgICAgc3RydWN0IGdwaW9fZGVzYyAqZGMpOworaW50IG1pcGlfZGJpX2Rldl9pbml0X3dpdGhfZm9ybWF0cyhzdHJ1Y3QgbWlwaV9kYmlfZGV2ICpkYmlkZXYsCisJCQkJICAgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzICpmdW5jcywKKwkJCQkgICBjb25zdCB1aW50MzJfdCAqZm9ybWF0cywgdW5zaWduZWQgaW50IGZvcm1hdF9jb3VudCwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCQkgICB1bnNpZ25lZCBpbnQgcm90YXRpb24sIHNpemVfdCB0eF9idWZfc2l6ZSk7CitpbnQgbWlwaV9kYmlfZGV2X2luaXQoc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2LAorCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgKmZ1bmNzLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwgdW5zaWduZWQgaW50IHJvdGF0aW9uKTsKK3ZvaWQgbWlwaV9kYmlfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKTsKK3ZvaWQgbWlwaV9kYmlfcGlwZV91cGRhdGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAorCQkJICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpOwordm9pZCBtaXBpX2RiaV9lbmFibGVfZmx1c2goc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2LAorCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbl9zdGF0ZSk7Cit2b2lkIG1pcGlfZGJpX3BpcGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpOwordm9pZCBtaXBpX2RiaV9od19yZXNldChzdHJ1Y3QgbWlwaV9kYmkgKmRiaSk7Citib29sIG1pcGlfZGJpX2Rpc3BsYXlfaXNfb24oc3RydWN0IG1pcGlfZGJpICpkYmkpOworaW50IG1pcGlfZGJpX3Bvd2Vyb25fcmVzZXQoc3RydWN0IG1pcGlfZGJpX2RldiAqZGJpZGV2KTsKK2ludCBtaXBpX2RiaV9wb3dlcm9uX2NvbmRpdGlvbmFsX3Jlc2V0KHN0cnVjdCBtaXBpX2RiaV9kZXYgKmRiaWRldik7CisKK3UzMiBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzaXplX3QgbGVuKTsKK2ludCBtaXBpX2RiaV9zcGlfdHJhbnNmZXIoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTMyIHNwZWVkX2h6LAorCQkJICB1OCBicHcsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7CisKK2ludCBtaXBpX2RiaV9jb21tYW5kX3JlYWQoc3RydWN0IG1pcGlfZGJpICpkYmksIHU4IGNtZCwgdTggKnZhbCk7CitpbnQgbWlwaV9kYmlfY29tbWFuZF9idWYoc3RydWN0IG1pcGlfZGJpICpkYmksIHU4IGNtZCwgdTggKmRhdGEsIHNpemVfdCBsZW4pOworaW50IG1pcGlfZGJpX2NvbW1hbmRfc3RhY2tidWYoc3RydWN0IG1pcGlfZGJpICpkYmksIHU4IGNtZCwgdTggKmRhdGEsIHNpemVfdCBsZW4pOworaW50IG1pcGlfZGJpX2J1Zl9jb3B5KHZvaWQgKmRzdCwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCisJCSAgICAgIHN0cnVjdCBkcm1fcmVjdCAqY2xpcCwgYm9vbCBzd2FwKTsKKy8qKgorICogbWlwaV9kYmlfY29tbWFuZCAtIE1JUEkgRENTIGNvbW1hbmQgd2l0aCBvcHRpb25hbCBwYXJhbWV0ZXIocykKKyAqIEBkYmk6IE1JUEkgREJJIHN0cnVjdHVyZQorICogQGNtZDogQ29tbWFuZAorICogQHNlcS4uLjogT3B0aW9uYWwgcGFyYW1ldGVyKHMpCisgKgorICogU2VuZCBNSVBJIERDUyBjb21tYW5kIHRvIHRoZSBjb250cm9sbGVyLiBVc2UgbWlwaV9kYmlfY29tbWFuZF9yZWFkKCkgZm9yCisgKiBnZXQvcmVhZC4KKyAqCisgKiBSZXR1cm5zOgorICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KKyNkZWZpbmUgbWlwaV9kYmlfY29tbWFuZChkYmksIGNtZCwgc2VxLi4uKSBcCisoeyBcCisJdTggZFtdID0geyBzZXEgfTsgXAorCW1pcGlfZGJpX2NvbW1hbmRfc3RhY2tidWYoZGJpLCBjbWQsIGQsIEFSUkFZX1NJWkUoZCkpOyBcCit9KQorCisjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCitpbnQgbWlwaV9kYmlfZGVidWdmc19pbml0KHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKTsKKyNlbHNlCisjZGVmaW5lIG1pcGlfZGJpX2RlYnVnZnNfaW5pdAkJTlVMTAorI2VuZGlmCisKKyNlbmRpZiAvKiBfX0xJTlVYX01JUElfREJJX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKaW5kZXggZjU3ZWVhMC4uM2JjYmUzMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKQEAgLTg0OSw2ICs4NDksMTIgQEAgc3RydWN0IGRybV9tb2RlX2NvbmZpZyB7CiAJICovCiAJc3RydWN0IGRybV9wcm9wZXJ0eSAqY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5OwogCisJLyoqCisJICogQGhkY3BfY29udGVudF90eXBlX3Byb3BlcnR5OiBEUk0gRU5VTSBwcm9wZXJ0eSBmb3IgdHlwZSBvZgorCSAqIFByb3RlY3RlZCBDb250ZW50LgorCSAqLworCXN0cnVjdCBkcm1fcHJvcGVydHkgKmhkY3BfY29udGVudF90eXBlX3Byb3BlcnR5OworCiAJLyogZHVtYiBpb2N0bCBwYXJhbWV0ZXJzICovCiAJdWludDMyX3QgcHJlZmVycmVkX2RlcHRoLCBwcmVmZXJfc2hhZG93OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGFuZWwuaCBiL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCmluZGV4IDhjNzM4YzAuLjYyNGJkMTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaWZuZGVmIF9fRFJNX1BBTkVMX0hfXwogI2RlZmluZSBfX0RSTV9QQU5FTF9IX18KIAorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogCkBAIC0zNSwxNCArMzYsNiBAQCBzdHJ1Y3QgZGlzcGxheV90aW1pbmc7CiAKIC8qKgogICogc3RydWN0IGRybV9wYW5lbF9mdW5jcyAtIHBlcmZvcm0gb3BlcmF0aW9ucyBvbiBhIGdpdmVuIHBhbmVsCi0gKiBAZGlzYWJsZTogZGlzYWJsZSBwYW5lbCAodHVybiBvZmYgYmFjayBsaWdodCwgZXRjLikKLSAqIEB1bnByZXBhcmU6IHR1cm4gb2ZmIHBhbmVsCi0gKiBAcHJlcGFyZTogdHVybiBvbiBwYW5lbCBhbmQgcGVyZm9ybSBzZXQgdXAKLSAqIEBlbmFibGU6IGVuYWJsZSBwYW5lbCAodHVybiBvbiBiYWNrIGxpZ2h0LCBldGMuKQotICogQGdldF9tb2RlczogYWRkIG1vZGVzIHRvIHRoZSBjb25uZWN0b3IgdGhhdCB0aGUgcGFuZWwgaXMgYXR0YWNoZWQgdG8gYW5kCi0gKiByZXR1cm4gdGhlIG51bWJlciBvZiBtb2RlcyBhZGRlZAotICogQGdldF90aW1pbmdzOiBjb3B5IGRpc3BsYXkgdGltaW5ncyBpbnRvIHRoZSBwcm92aWRlZCBhcnJheSBhbmQgcmV0dXJuCi0gKiB0aGUgbnVtYmVyIG9mIGRpc3BsYXkgdGltaW5ncyBhdmFpbGFibGUKICAqCiAgKiBUaGUgLnByZXBhcmUoKSBmdW5jdGlvbiBpcyB0eXBpY2FsbHkgY2FsbGVkIGJlZm9yZSB0aGUgZGlzcGxheSBjb250cm9sbGVyCiAgKiBzdGFydHMgdG8gdHJhbnNtaXQgdmlkZW8gZGF0YS4gUGFuZWwgZHJpdmVycyBjYW4gdXNlIHRoaXMgdG8gdHVybiB0aGUgcGFuZWwKQEAgLTY4LDEzMiArNjEsMTA3IEBAIHN0cnVjdCBkaXNwbGF5X3RpbWluZzsKICAqIHRoZSBwYW5lbC4gVGhpcyBpcyB0aGUgam9iIG9mIHRoZSAudW5wcmVwYXJlKCkgZnVuY3Rpb24uCiAgKi8KIHN0cnVjdCBkcm1fcGFuZWxfZnVuY3MgewotCWludCAoKmRpc2FibGUpKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKTsKLQlpbnQgKCp1bnByZXBhcmUpKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKTsKKwkvKioKKwkgKiBAcHJlcGFyZToKKwkgKgorCSAqIFR1cm4gb24gcGFuZWwgYW5kIHBlcmZvcm0gc2V0IHVwLgorCSAqLwogCWludCAoKnByZXBhcmUpKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKTsKKworCS8qKgorCSAqIEBlbmFibGU6CisJICoKKwkgKiBFbmFibGUgcGFuZWwgKHR1cm4gb24gYmFjayBsaWdodCwgZXRjLikuCisJICovCiAJaW50ICgqZW5hYmxlKShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7CisKKwkvKioKKwkgKiBAZGlzYWJsZToKKwkgKgorCSAqIERpc2FibGUgcGFuZWwgKHR1cm4gb2ZmIGJhY2sgbGlnaHQsIGV0Yy4pLgorCSAqLworCWludCAoKmRpc2FibGUpKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKTsKKworCS8qKgorCSAqIEB1bnByZXBhcmU6CisJICoKKwkgKiBUdXJuIG9mZiBwYW5lbC4KKwkgKi8KKwlpbnQgKCp1bnByZXBhcmUpKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKTsKKworCS8qKgorCSAqIEBnZXRfbW9kZXM6CisJICoKKwkgKiBBZGQgbW9kZXMgdG8gdGhlIGNvbm5lY3RvciB0aGF0IHRoZSBwYW5lbCBpcyBhdHRhY2hlZCB0byBhbmQKKwkgKiByZXR1cm4gdGhlIG51bWJlciBvZiBtb2RlcyBhZGRlZC4KKwkgKi8KIAlpbnQgKCpnZXRfbW9kZXMpKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKTsKKworCS8qKgorCSAqIEBnZXRfdGltaW5nczoKKwkgKgorCSAqIENvcHkgZGlzcGxheSB0aW1pbmdzIGludG8gdGhlIHByb3ZpZGVkIGFycmF5IGFuZCByZXR1cm4KKwkgKiB0aGUgbnVtYmVyIG9mIGRpc3BsYXkgdGltaW5ncyBhdmFpbGFibGUuCisJICovCiAJaW50ICgqZ2V0X3RpbWluZ3MpKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLCB1bnNpZ25lZCBpbnQgbnVtX3RpbWluZ3MsCiAJCQkgICBzdHJ1Y3QgZGlzcGxheV90aW1pbmcgKnRpbWluZ3MpOwogfTsKIAogLyoqCiAgKiBzdHJ1Y3QgZHJtX3BhbmVsIC0gRFJNIHBhbmVsIG9iamVjdAotICogQGRybTogRFJNIGRldmljZSBvd25pbmcgdGhlIHBhbmVsCi0gKiBAY29ubmVjdG9yOiBEUk0gY29ubmVjdG9yIHRoYXQgdGhlIHBhbmVsIGlzIGF0dGFjaGVkIHRvCi0gKiBAZGV2OiBwYXJlbnQgZGV2aWNlIG9mIHRoZSBwYW5lbAotICogQGxpbms6IGxpbmsgZnJvbSBwYW5lbCBkZXZpY2UgKHN1cHBsaWVyKSB0byBEUk0gZGV2aWNlIChjb25zdW1lcikKLSAqIEBmdW5jczogb3BlcmF0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQgb24gdGhlIHBhbmVsCi0gKiBAbGlzdDogcGFuZWwgZW50cnkgaW4gcmVnaXN0cnkKICAqLwogc3RydWN0IGRybV9wYW5lbCB7CisJLyoqCisJICogQGRybToKKwkgKgorCSAqIERSTSBkZXZpY2Ugb3duaW5nIHRoZSBwYW5lbC4KKwkgKi8KIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOworCisJLyoqCisJICogQGNvbm5lY3RvcjoKKwkgKgorCSAqIERSTSBjb25uZWN0b3IgdGhhdCB0aGUgcGFuZWwgaXMgYXR0YWNoZWQgdG8uCisJICovCiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKworCS8qKgorCSAqIEBkZXY6CisJICoKKwkgKiBQYXJlbnQgZGV2aWNlIG9mIHRoZSBwYW5lbC4KKwkgKi8KIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAKKwkvKioKKwkgKiBAZnVuY3M6CisJICoKKwkgKiBPcGVyYXRpb25zIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgcGFuZWwuCisJICovCiAJY29uc3Qgc3RydWN0IGRybV9wYW5lbF9mdW5jcyAqZnVuY3M7CiAKKwkvKioKKwkgKiBAbGlzdDoKKwkgKgorCSAqIFBhbmVsIGVudHJ5IGluIHJlZ2lzdHJ5LgorCSAqLwogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIH07CiAKLS8qKgotICogZHJtX2Rpc2FibGVfdW5wcmVwYXJlIC0gcG93ZXIgb2ZmIGEgcGFuZWwKLSAqIEBwYW5lbDogRFJNIHBhbmVsCi0gKgotICogQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwgY29tcGxldGVseSBwb3dlciBvZmYgYSBwYW5lbCAoYXNzZXJ0IHRoZSBwYW5lbCdzCi0gKiByZXNldCwgdHVybiBvZmYgcG93ZXIgc3VwcGxpZXMsIC4uLikuIEFmdGVyIHRoaXMgZnVuY3Rpb24gaGFzIGNvbXBsZXRlZCwgaXQKLSAqIGlzIHVzdWFsbHkgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHBhbmVsIHVudGlsIGFub3RoZXIKLSAqIGNhbGwgdG8gZHJtX3BhbmVsX3ByZXBhcmUoKS4KLSAqCi0gKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgZHJtX3BhbmVsX3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKLXsKLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+dW5wcmVwYXJlKQotCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT51bnByZXBhcmUocGFuZWwpOwotCi0JcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1FSU5WQUw7Ci19Ci0KLS8qKgotICogZHJtX3BhbmVsX2Rpc2FibGUgLSBkaXNhYmxlIGEgcGFuZWwKLSAqIEBwYW5lbDogRFJNIHBhbmVsCi0gKgotICogVGhpcyB3aWxsIHR5cGljYWxseSB0dXJuIG9mZiB0aGUgcGFuZWwncyBiYWNrbGlnaHQgb3IgZGlzYWJsZSB0aGUgZGlzcGxheQotICogZHJpdmVycy4gRm9yIHNtYXJ0IHBhbmVscyBpdCBzaG91bGQgc3RpbGwgYmUgcG9zc2libGUgdG8gY29tbXVuaWNhdGUgd2l0aAotICogdGhlIGludGVncmF0ZWQgY2lyY3VpdHJ5IHZpYSBhbnkgY29tbWFuZCBidXMgYWZ0ZXIgdGhpcyBjYWxsLgotICoKLSAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1zdGF0aWMgaW5saW5lIGludCBkcm1fcGFuZWxfZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKLXsKLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+ZGlzYWJsZSkKLQkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+ZGlzYWJsZShwYW5lbCk7Ci0KLQlyZXR1cm4gcGFuZWwgPyAtRU5PU1lTIDogLUVJTlZBTDsKLX0KLQotLyoqCi0gKiBkcm1fcGFuZWxfcHJlcGFyZSAtIHBvd2VyIG9uIGEgcGFuZWwKLSAqIEBwYW5lbDogRFJNIHBhbmVsCi0gKgotICogQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwgZW5hYmxlIHBvd2VyIGFuZCBkZWFzc2VydCBhbnkgcmVzZXQgc2lnbmFscyB0bwotICogdGhlIHBhbmVsLiBBZnRlciB0aGlzIGhhcyBjb21wbGV0ZWQgaXQgaXMgcG9zc2libGUgdG8gY29tbXVuaWNhdGUgd2l0aCBhbnkKLSAqIGludGVncmF0ZWQgY2lyY3VpdHJ5IHZpYSBhIGNvbW1hbmQgYnVzLgotICoKLSAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1zdGF0aWMgaW5saW5lIGludCBkcm1fcGFuZWxfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKLXsKLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+cHJlcGFyZSkKLQkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+cHJlcGFyZShwYW5lbCk7Ci0KLQlyZXR1cm4gcGFuZWwgPyAtRU5PU1lTIDogLUVJTlZBTDsKLX0KLQotLyoqCi0gKiBkcm1fcGFuZWxfZW5hYmxlIC0gZW5hYmxlIGEgcGFuZWwKLSAqIEBwYW5lbDogRFJNIHBhbmVsCi0gKgotICogQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwgY2F1c2UgdGhlIHBhbmVsIGRpc3BsYXkgZHJpdmVycyB0byBiZSB0dXJuZWQgb24KLSAqIGFuZCB0aGUgYmFja2xpZ2h0IHRvIGJlIGVuYWJsZWQuIENvbnRlbnQgd2lsbCBiZSB2aXNpYmxlIG9uIHNjcmVlbiBhZnRlcgotICogdGhpcyBjYWxsIGNvbXBsZXRlcy4KLSAqCi0gKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgZHJtX3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKLXsKLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+ZW5hYmxlKQotCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT5lbmFibGUocGFuZWwpOwotCi0JcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1FSU5WQUw7Ci19Ci0KLS8qKgotICogZHJtX3BhbmVsX2dldF9tb2RlcyAtIHByb2JlIHRoZSBhdmFpbGFibGUgZGlzcGxheSBtb2RlcyBvZiBhIHBhbmVsCi0gKiBAcGFuZWw6IERSTSBwYW5lbAotICoKLSAqIFRoZSBtb2RlcyBwcm9iZWQgZnJvbSB0aGUgcGFuZWwgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGNvbm5lY3RvcgotICogdGhhdCB0aGUgcGFuZWwgaXMgYXR0YWNoZWQgdG8uCi0gKgotICogUmV0dXJuOiBUaGUgbnVtYmVyIG9mIG1vZGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBwYW5lbCBvbiBzdWNjZXNzIG9yIGEKLSAqIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgZHJtX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKLXsKLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKQotCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT5nZXRfbW9kZXMocGFuZWwpOwotCi0JcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1FSU5WQUw7Ci19Ci0KIHZvaWQgZHJtX3BhbmVsX2luaXQoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOwogCiBpbnQgZHJtX3BhbmVsX2FkZChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7CiB2b2lkIGRybV9wYW5lbF9yZW1vdmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOwogCiBpbnQgZHJtX3BhbmVsX2F0dGFjaChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Ci1pbnQgZHJtX3BhbmVsX2RldGFjaChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7Cit2b2lkIGRybV9wYW5lbF9kZXRhY2goc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOworCitpbnQgZHJtX3BhbmVsX3ByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOworaW50IGRybV9wYW5lbF91bnByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOworCitpbnQgZHJtX3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7CitpbnQgZHJtX3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOworCitpbnQgZHJtX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7CiAKICNpZiBkZWZpbmVkKENPTkZJR19PRikgJiYgZGVmaW5lZChDT05GSUdfRFJNX1BBTkVMKQogc3RydWN0IGRybV9wYW5lbCAqb2ZfZHJtX2ZpbmRfcGFuZWwoY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcHJpbWUuaCBiL2luY2x1ZGUvZHJtL2RybV9wcmltZS5oCmluZGV4IGIwMzczMWEuLmQ4OTMxMWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wcmltZS5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9wcmltZS5oCkBAIC00Miw3ICs0Miw2IEBACiAgKiBUaGlzIGp1c3QgY29udGFpbnMgdGhlIGludGVybmFsICZzdHJ1Y3QgZG1hX2J1ZiBhbmQgaGFuZGxlIGNhY2hlcyBmb3IgZWFjaAogICogJnN0cnVjdCBkcm1fZmlsZSB1c2VkIGJ5IHRoZSBQUklNRSBjb3JlIGNvZGUuCiAgKi8KLQogc3RydWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgewogLyogcHJpdmF0ZTogKi8KIAlzdHJ1Y3QgbXV0ZXggbG9jazsKQEAgLTY0LDI1ICs2MywxOCBAQCBzdHJ1Y3QgZHJtX2ZpbGU7CiAKIHN0cnVjdCBkZXZpY2U7CiAKLXN0cnVjdCBkbWFfYnVmICpkcm1fZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCi0JCQkJICAgICBpbnQgZmxhZ3MpOwotaW50IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHVpbnQzMl90IGhhbmRsZSwgdWludDMyX3QgZmxhZ3MsCi0JCQkgICAgICAgaW50ICpwcmltZV9mZCk7Ci1pbnQgZHJtX2dlbV9wcmltZV9tbWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7Ci1zdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmRybV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJCSAgICBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zik7Ci0KLXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJCQlzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKLQkJCQkJCXN0cnVjdCBkZXZpY2UgKmF0dGFjaF9kZXYpOwotCi1pbnQgZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgaW50IHByaW1lX2ZkLCB1aW50MzJfdCAqaGFuZGxlKTsKKy8qIGNvcmUgcHJpbWUgZnVuY3Rpb25zICovCiBzdHJ1Y3QgZG1hX2J1ZiAqZHJtX2dlbV9kbWFidWZfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICAgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gKmV4cF9pbmZvKTsKIHZvaWQgZHJtX2dlbV9kbWFidWZfcmVsZWFzZShzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zik7CisKK2ludCBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCBpbnQgcHJpbWVfZmQsIHVpbnQzMl90ICpoYW5kbGUpOworaW50IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHVpbnQzMl90IGhhbmRsZSwgdWludDMyX3QgZmxhZ3MsCisJCQkgICAgICAgaW50ICpwcmltZV9mZCk7CisKKy8qIGhlbHBlciBmdW5jdGlvbnMgZm9yIGV4cG9ydGluZyAqLwogaW50IGRybV9nZW1fbWFwX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKIAkJICAgICAgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7CiB2b2lkIGRybV9nZW1fbWFwX2RldGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKQEAgLTk0LDEyICs4NiwyNSBAQCB2b2lkIGRybV9nZW1fdW5tYXBfZG1hX2J1ZihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCiAJCQkgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpOwogdm9pZCAqZHJtX2dlbV9kbWFidWZfdm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zik7CiB2b2lkIGRybV9nZW1fZG1hYnVmX3Z1bm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Ziwgdm9pZCAqdmFkZHIpOworCitpbnQgZHJtX2dlbV9wcmltZV9tbWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CiBpbnQgZHJtX2dlbV9kbWFidWZfbW1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Ziwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogCitzdHJ1Y3Qgc2dfdGFibGUgKmRybV9wcmltZV9wYWdlc190b19zZyhzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1bnNpZ25lZCBpbnQgbnJfcGFnZXMpOworc3RydWN0IGRtYV9idWYgKmRybV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAorCQkJCSAgICAgaW50IGZsYWdzKTsKKworLyogaGVscGVyIGZ1bmN0aW9ucyBmb3IgaW1wb3J0aW5nICovCitzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmRybV9nZW1fcHJpbWVfaW1wb3J0X2RldihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkJc3RydWN0IGRtYV9idWYgKmRtYV9idWYsCisJCQkJCQlzdHJ1Y3QgZGV2aWNlICphdHRhY2hfZGV2KTsKK3N0cnVjdCBkcm1fZ2VtX29iamVjdCAqZHJtX2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJICAgIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKTsKKwordm9pZCBkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZ190YWJsZSAqc2cpOworCiBpbnQgZHJtX3ByaW1lX3NnX3RvX3BhZ2VfYWRkcl9hcnJheXMoc3RydWN0IHNnX3RhYmxlICpzZ3QsIHN0cnVjdCBwYWdlICoqcGFnZXMsCiAJCQkJICAgICBkbWFfYWRkcl90ICphZGRycywgaW50IG1heF9wYWdlcyk7Ci1zdHJ1Y3Qgc2dfdGFibGUgKmRybV9wcmltZV9wYWdlc190b19zZyhzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1bnNpZ25lZCBpbnQgbnJfcGFnZXMpOwotdm9pZCBkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZ190YWJsZSAqc2cpOwogCiAKICNlbmRpZiAvKiBfX0RSTV9QUklNRV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9zZWxmX3JlZnJlc2hfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fc2VsZl9yZWZyZXNoX2hlbHBlci5oCmluZGV4IDM5N2E1ODMuLjViNzlkMjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9zZWxmX3JlZnJlc2hfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXIuaApAQCAtMTIsOSArMTIsOSBAQCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZTsKIHN0cnVjdCBkcm1fY3J0YzsKIAogdm9pZCBkcm1fc2VsZl9yZWZyZXNoX2hlbHBlcl9hbHRlcl9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwordm9pZCBkcm1fc2VsZl9yZWZyZXNoX2hlbHBlcl91cGRhdGVfYXZnX3RpbWVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkJICAgICAgdW5zaWduZWQgaW50IGNvbW1pdF90aW1lX21zKTsKIAotaW50IGRybV9zZWxmX3JlZnJlc2hfaGVscGVyX2luaXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQkJCSB1bnNpZ25lZCBpbnQgZW50cnlfZGVsYXlfbXMpOwotCitpbnQgZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXJfaW5pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogdm9pZCBkcm1fc2VsZl9yZWZyZXNoX2hlbHBlcl9jbGVhbnVwKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9zeXNmcy5oIGIvaW5jbHVkZS9kcm0vZHJtX3N5c2ZzLmgKaW5kZXggNGYzMTFlOC4uZDQ1NGVmNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3N5c2ZzLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3N5c2ZzLmgKQEAgLTQsMTAgKzQsMTMgQEAKIAogc3RydWN0IGRybV9kZXZpY2U7CiBzdHJ1Y3QgZGV2aWNlOworc3RydWN0IGRybV9jb25uZWN0b3I7CitzdHJ1Y3QgZHJtX3Byb3BlcnR5OwogCiBpbnQgZHJtX2NsYXNzX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYpOwogdm9pZCBkcm1fY2xhc3NfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2KTsKIAogdm9pZCBkcm1fc3lzZnNfaG90cGx1Z19ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLQordm9pZCBkcm1fc3lzZnNfY29ubmVjdG9yX3N0YXR1c19ldmVudChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCSAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3ZibGFuay5oIGIvaW5jbHVkZS9kcm0vZHJtX3ZibGFuay5oCmluZGV4IGU1MjhiYjIuLjlmZTRiYTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV92YmxhbmsuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fdmJsYW5rLmgKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgogI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KLSNpbmNsdWRlIDx1YXBpL2RybS9kcm0uaD4KIAogc3RydWN0IGRybV9kZXZpY2U7CiBzdHJ1Y3QgZHJtX2NydGM7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fdnJhbV9tbV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV92cmFtX21tX2hlbHBlci5oCmluZGV4IGE4ZmZkODUuLjJhYWNmYjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV92cmFtX21tX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV92cmFtX21tX2hlbHBlci5oCkBAIC0zLDYgKzMsOCBAQAogI2lmbmRlZiBEUk1fVlJBTV9NTV9IRUxQRVJfSAogI2RlZmluZSBEUk1fVlJBTV9NTV9IRUxQRVJfSAogCisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgogCiBzdHJ1Y3QgZHJtX2RldmljZTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmggYi9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCmluZGV4IGRjYjk1YmQuLjU1YzNiMTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaApAQCAtMzQsNyArMzQsNyBAQCBlbnVtIGk5MTVfY29tcG9uZW50X3R5cGUgewogLyogTUFYX1BPUlQgaXMgdGhlIG51bWJlciBvZiBwb3J0CiAgKiBJdCBtdXN0IGJlIHN5bmMgd2l0aCBJOTE1X01BWF9QT1JUUyBkZWZpbmVkIGk5MTVfZHJ2LmgKICAqLwotI2RlZmluZSBNQVhfUE9SVFMgNgorI2RlZmluZSBNQVhfUE9SVFMgOQogCiAvKioKICAqIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAtIFVzZWQgZm9yIGRpcmVjdCBjb21tdW5pY2F0aW9uIGJldHdlZW4gaTkxNSBhbmQgaGRhIGRyaXZlcnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL2RybS9pOTE1X2RybS5oCmluZGV4IDc1MjNlOWEuLjIzMjc0Y2Y5MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL2RybS9pOTE1X2RybS5oCkBAIC0zMCwxMSArMzAsMTEgQEAKICNpbmNsdWRlIDx1YXBpL2RybS9pOTE1X2RybS5oPgogCiAvKiBGb3IgdXNlIGJ5IElQUyBkcml2ZXIgKi8KLWV4dGVybiB1bnNpZ25lZCBsb25nIGk5MTVfcmVhZF9tY2hfdmFsKHZvaWQpOwotZXh0ZXJuIGJvb2wgaTkxNV9ncHVfcmFpc2Uodm9pZCk7Ci1leHRlcm4gYm9vbCBpOTE1X2dwdV9sb3dlcih2b2lkKTsKLWV4dGVybiBib29sIGk5MTVfZ3B1X2J1c3kodm9pZCk7Ci1leHRlcm4gYm9vbCBpOTE1X2dwdV90dXJib19kaXNhYmxlKHZvaWQpOwordW5zaWduZWQgbG9uZyBpOTE1X3JlYWRfbWNoX3ZhbCh2b2lkKTsKK2Jvb2wgaTkxNV9ncHVfcmFpc2Uodm9pZCk7Citib29sIGk5MTVfZ3B1X2xvd2VyKHZvaWQpOworYm9vbCBpOTE1X2dwdV9idXN5KHZvaWQpOworYm9vbCBpOTE1X2dwdV90dXJib19kaXNhYmxlKHZvaWQpOwogCiAvKiBFeHBvcnRlZCBmcm9tIGFyY2gveDg2L2tlcm5lbC9lYXJseS1xdWlya3MuYyAqLwogZXh0ZXJuIHN0cnVjdCByZXNvdXJjZSBpbnRlbF9ncmFwaGljc19zdG9sZW5fcmVzOwpAQCAtMTA5LDYgKzEwOSw5IEBAIGVudW0gcG9ydCB7CiAJUE9SVF9ELAogCVBPUlRfRSwKIAlQT1JUX0YsCisJUE9SVF9HLAorCVBPUlRfSCwKKwlQT1JUX0ksCiAKIAlJOTE1X01BWF9QT1JUUwogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2k5MTVfcGNpaWRzLmggYi9pbmNsdWRlL2RybS9pOTE1X3BjaWlkcy5oCmluZGV4IDZkNjBlYTYuLmIxZjY2YjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2k5MTVfcGNpaWRzLmgKKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9wY2lpZHMuaApAQCAtNDY2LDcgKzQ2NiwxMCBAQAogCUlOVEVMX1ZHQV9ERVZJQ0UoMHg5QkM1LCBpbmZvKSwgXAogCUlOVEVMX1ZHQV9ERVZJQ0UoMHg5QkM4LCBpbmZvKSwgXAogCUlOVEVMX1ZHQV9ERVZJQ0UoMHg5QkM0LCBpbmZvKSwgXAotCUlOVEVMX1ZHQV9ERVZJQ0UoMHg5QkMyLCBpbmZvKQorCUlOVEVMX1ZHQV9ERVZJQ0UoMHg5QkMyLCBpbmZvKSwgXAorCUlOVEVMX1ZHQV9ERVZJQ0UoMHg5QkM2LCBpbmZvKSwgXAorCUlOVEVMX1ZHQV9ERVZJQ0UoMHg5QkU2LCBpbmZvKSwgXAorCUlOVEVMX1ZHQV9ERVZJQ0UoMHg5QkY2LCBpbmZvKQogCiAjZGVmaW5lIElOVEVMX0tCTF9JRFMoaW5mbykgXAogCUlOVEVMX0tCTF9HVDFfSURTKGluZm8pLCBcCkBAIC01NjgsNyArNTcxLDggQEAKIAlJTlRFTF9WR0FfREVWSUNFKDB4OEE1NiwgaW5mbyksIFwKIAlJTlRFTF9WR0FfREVWSUNFKDB4OEE3MSwgaW5mbyksIFwKIAlJTlRFTF9WR0FfREVWSUNFKDB4OEE3MCwgaW5mbyksIFwKLQlJTlRFTF9WR0FfREVWSUNFKDB4OEE1MywgaW5mbykKKwlJTlRFTF9WR0FfREVWSUNFKDB4OEE1MywgaW5mbyksIFwKKwlJTlRFTF9WR0FfREVWSUNFKDB4OEE1NCwgaW5mbykKIAogI2RlZmluZSBJTlRFTF9JQ0xfMTFfSURTKGluZm8pIFwKIAlJTlRFTF9JQ0xfUE9SVF9GX0lEUyhpbmZvKSwgXApAQCAtNTgyLDQgKzU4NiwxNCBAQAogCUlOVEVMX1ZHQV9ERVZJQ0UoMHg0NTUxLCBpbmZvKSwgXAogCUlOVEVMX1ZHQV9ERVZJQ0UoMHg0NTQxLCBpbmZvKQogCisvKiBUR0wgKi8KKyNkZWZpbmUgSU5URUxfVEdMXzEyX0lEUyhpbmZvKSBcCisJSU5URUxfVkdBX0RFVklDRSgweDlBNDksIGluZm8pLCBcCisJSU5URUxfVkdBX0RFVklDRSgweDlBNDAsIGluZm8pLCBcCisJSU5URUxfVkdBX0RFVklDRSgweDlBNTksIGluZm8pLCBcCisJSU5URUxfVkdBX0RFVklDRSgweDlBNjAsIGluZm8pLCBcCisJSU5URUxfVkdBX0RFVklDRSgweDlBNjgsIGluZm8pLCBcCisJSU5URUxfVkdBX0RFVklDRSgweDlBNzAsIGluZm8pLCBcCisJSU5URUxfVkdBX0RFVklDRSgweDlBNzgsIGluZm8pCisKICNlbmRpZiAvKiBfSTkxNV9QQ0lJRFNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdGlueWRybS9taXBpLWRiaS5oIGIvaW5jbHVkZS9kcm0vdGlueWRybS9taXBpLWRiaS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWZjNjY3Yi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2RybS90aW55ZHJtL21pcGktZGJpLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KLS8qCi0gKiBNSVBJIERpc3BsYXkgQnVzIEludGVyZmFjZSAoREJJKSBMQ0QgY29udHJvbGxlciBzdXBwb3J0Ci0gKgotICogQ29weXJpZ2h0IDIwMTYgTm9yYWxmIFRyw7hubmVzCi0gKi8KLQotI2lmbmRlZiBfX0xJTlVYX01JUElfREJJX0gKLSNkZWZpbmUgX19MSU5VWF9NSVBJX0RCSV9ICi0KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgotI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgotCi1zdHJ1Y3QgZHJtX3JlY3Q7Ci1zdHJ1Y3Qgc3BpX2RldmljZTsKLXN0cnVjdCBncGlvX2Rlc2M7Ci1zdHJ1Y3QgcmVndWxhdG9yOwotCi0vKioKLSAqIHN0cnVjdCBtaXBpX2RiaSAtIE1JUEkgREJJIGNvbnRyb2xsZXIKLSAqIEBzcGk6IFNQSSBkZXZpY2UKLSAqIEBlbmFibGVkOiBQaXBlbGluZSBpcyBlbmFibGVkCi0gKiBAY21kbG9jazogQ29tbWFuZCBsb2NrCi0gKiBAY29tbWFuZDogQnVzIHNwZWNpZmljIGNhbGxiYWNrIGV4ZWN1dGluZyBjb21tYW5kcy4KLSAqIEByZWFkX2NvbW1hbmRzOiBBcnJheSBvZiByZWFkIGNvbW1hbmRzIHRlcm1pbmF0ZWQgYnkgYSB6ZXJvIGVudHJ5LgotICogICAgICAgICAgICAgICAgIFJlYWRpbmcgaXMgZGlzYWJsZWQgaWYgdGhpcyBpcyBOVUxMLgotICogQGRjOiBPcHRpb25hbCBEL0MgZ3Bpby4KLSAqIEB0eF9idWY6IEJ1ZmZlciB1c2VkIGZvciB0cmFuc2ZlciAoY29weSBjbGlwIHJlY3QgYXJlYSkKLSAqIEB0eF9idWY5OiBCdWZmZXIgdXNlZCBmb3IgT3B0aW9uIDEgOS1iaXQgY29udmVyc2lvbgotICogQHR4X2J1ZjlfbGVuOiBTaXplIG9mIHR4X2J1ZjkuCi0gKiBAc3dhcF9ieXRlczogU3dhcCBieXRlcyBpbiBidWZmZXIgYmVmb3JlIHRyYW5zZmVyCi0gKiBAcmVzZXQ6IE9wdGlvbmFsIHJlc2V0IGdwaW8KLSAqIEByb3RhdGlvbjogaW5pdGlhbCByb3RhdGlvbiBpbiBkZWdyZWVzIENvdW50ZXIgQ2xvY2sgV2lzZQotICogQGJhY2tsaWdodDogYmFja2xpZ2h0IGRldmljZSAob3B0aW9uYWwpCi0gKiBAcmVndWxhdG9yOiBwb3dlciByZWd1bGF0b3IgKG9wdGlvbmFsKQotICovCi1zdHJ1Y3QgbWlwaV9kYmkgewotCS8qKgotCSAqIEBkcm06IERSTSBkZXZpY2UKLQkgKi8KLQlzdHJ1Y3QgZHJtX2RldmljZSBkcm07Ci0KLQkvKioKLQkgKiBAcGlwZTogRGlzcGxheSBwaXBlIHN0cnVjdHVyZQotCSAqLwotCXN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSBwaXBlOwotCi0Jc3RydWN0IHNwaV9kZXZpY2UgKnNwaTsKLQlib29sIGVuYWJsZWQ7Ci0Jc3RydWN0IG11dGV4IGNtZGxvY2s7Ci0JaW50ICgqY29tbWFuZCkoc3RydWN0IG1pcGlfZGJpICptaXBpLCB1OCAqY21kLCB1OCAqcGFyYW0sIHNpemVfdCBudW0pOwotCWNvbnN0IHU4ICpyZWFkX2NvbW1hbmRzOwotCXN0cnVjdCBncGlvX2Rlc2MgKmRjOwotCXUxNiAqdHhfYnVmOwotCXZvaWQgKnR4X2J1Zjk7Ci0Jc2l6ZV90IHR4X2J1ZjlfbGVuOwotCWJvb2wgc3dhcF9ieXRlczsKLQlzdHJ1Y3QgZ3Bpb19kZXNjICpyZXNldDsKLQl1bnNpZ25lZCBpbnQgcm90YXRpb247Ci0Jc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJhY2tsaWdodDsKLQlzdHJ1Y3QgcmVndWxhdG9yICpyZWd1bGF0b3I7Ci19OwotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBtaXBpX2RiaSAqZHJtX3RvX21pcGlfZGJpKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihkcm0sIHN0cnVjdCBtaXBpX2RiaSwgZHJtKTsKLX0KLQotaW50IG1pcGlfZGJpX3NwaV9pbml0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKLQkJICAgICAgc3RydWN0IGdwaW9fZGVzYyAqZGMpOwotaW50IG1pcGlfZGJpX2luaXQoc3RydWN0IG1pcGlfZGJpICptaXBpLAotCQkgIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyAqZnVuY3MsCi0JCSAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsIHVuc2lnbmVkIGludCByb3RhdGlvbik7Ci12b2lkIG1pcGlfZGJpX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRybSk7Ci12b2lkIG1pcGlfZGJpX3BpcGVfdXBkYXRlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKLQkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKTsKLXZvaWQgbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKLQkJCSAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5fc3RhdGUpOwotdm9pZCBtaXBpX2RiaV9waXBlX2Rpc2FibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlKTsKLXZvaWQgbWlwaV9kYmlfaHdfcmVzZXQoc3RydWN0IG1pcGlfZGJpICptaXBpKTsKLWJvb2wgbWlwaV9kYmlfZGlzcGxheV9pc19vbihzdHJ1Y3QgbWlwaV9kYmkgKm1pcGkpOwotaW50IG1pcGlfZGJpX3Bvd2Vyb25fcmVzZXQoc3RydWN0IG1pcGlfZGJpICptaXBpKTsKLWludCBtaXBpX2RiaV9wb3dlcm9uX2NvbmRpdGlvbmFsX3Jlc2V0KHN0cnVjdCBtaXBpX2RiaSAqbWlwaSk7Ci11MzIgbWlwaV9kYmlfc3BpX2NtZF9tYXhfc3BlZWQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc2l6ZV90IGxlbik7Ci0KLWludCBtaXBpX2RiaV9jb21tYW5kX3JlYWQoc3RydWN0IG1pcGlfZGJpICptaXBpLCB1OCBjbWQsIHU4ICp2YWwpOwotaW50IG1pcGlfZGJpX2NvbW1hbmRfYnVmKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwgdTggY21kLCB1OCAqZGF0YSwgc2l6ZV90IGxlbik7Ci1pbnQgbWlwaV9kYmlfY29tbWFuZF9zdGFja2J1ZihzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksIHU4IGNtZCwgdTggKmRhdGEsIHNpemVfdCBsZW4pOwotaW50IG1pcGlfZGJpX2J1Zl9jb3B5KHZvaWQgKmRzdCwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCSAgICAgIHN0cnVjdCBkcm1fcmVjdCAqY2xpcCwgYm9vbCBzd2FwKTsKLS8qKgotICogbWlwaV9kYmlfY29tbWFuZCAtIE1JUEkgRENTIGNvbW1hbmQgd2l0aCBvcHRpb25hbCBwYXJhbWV0ZXIocykKLSAqIEBtaXBpOiBNSVBJIHN0cnVjdHVyZQotICogQGNtZDogQ29tbWFuZAotICogQHNlcS4uLjogT3B0aW9uYWwgcGFyYW1ldGVyKHMpCi0gKgotICogU2VuZCBNSVBJIERDUyBjb21tYW5kIHRvIHRoZSBjb250cm9sbGVyLiBVc2UgbWlwaV9kYmlfY29tbWFuZF9yZWFkKCkgZm9yCi0gKiBnZXQvcmVhZC4KLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLSNkZWZpbmUgbWlwaV9kYmlfY29tbWFuZChtaXBpLCBjbWQsIHNlcS4uLikgXAotKHsgXAotCXU4IGRbXSA9IHsgc2VxIH07IFwKLQltaXBpX2RiaV9jb21tYW5kX3N0YWNrYnVmKG1pcGksIGNtZCwgZCwgQVJSQVlfU0laRShkKSk7IFwKLX0pCi0KLSNpZmRlZiBDT05GSUdfREVCVUdfRlMKLWludCBtaXBpX2RiaV9kZWJ1Z2ZzX2luaXQoc3RydWN0IGRybV9taW5vciAqbWlub3IpOwotI2Vsc2UKLSNkZWZpbmUgbWlwaV9kYmlfZGVidWdmc19pbml0CQlOVUxMCi0jZW5kaWYKLQotI2VuZGlmIC8qIF9fTElOVVhfTUlQSV9EQklfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaCBiL2luY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4YmNhZGYuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IE5vcmFsZiBUcsO4bm5lcwotICovCi0KLSNpZm5kZWYgX19MSU5VWF9USU5ZRFJNX0hFTFBFUlNfSAotI2RlZmluZSBfX0xJTlVYX1RJTllEUk1fSEVMUEVSU19ICi0KLXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlOwotc3RydWN0IGRybV9kZXZpY2U7Ci1zdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZTsKLXN0cnVjdCBkcm1fZnJhbWVidWZmZXI7Ci1zdHJ1Y3QgZHJtX3JlY3Q7Ci1zdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGU7Ci1zdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3M7Ci1zdHJ1Y3Qgc3BpX3RyYW5zZmVyOwotc3RydWN0IHNwaV9tZXNzYWdlOwotc3RydWN0IHNwaV9kZXZpY2U7Ci1zdHJ1Y3QgZGV2aWNlOwotCi0vKioKLSAqIHRpbnlkcm1fbWFjaGluZV9saXR0bGVfZW5kaWFuIC0gTWFjaGluZSBpcyBsaXR0bGUgZW5kaWFuCi0gKgotICogUmV0dXJuczoKLSAqIHRydWUgaWYgKmRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSosIGZhbHNlIG90aGVyd2lzZQotICovCi1zdGF0aWMgaW5saW5lIGJvb2wgdGlueWRybV9tYWNoaW5lX2xpdHRsZV9lbmRpYW4odm9pZCkKLXsKLSNpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTikKLQlyZXR1cm4gdHJ1ZTsKLSNlbHNlCi0JcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KLWludCB0aW55ZHJtX2Rpc3BsYXlfcGlwZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCi0JCQkgICAgICBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCi0JCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgKmZ1bmNzLAotCQkJICAgICAgaW50IGNvbm5lY3Rvcl90eXBlLAotCQkJICAgICAgY29uc3QgdWludDMyX3QgKmZvcm1hdHMsCi0JCQkgICAgICB1bnNpZ25lZCBpbnQgZm9ybWF0X2NvdW50LAotCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCi0JCQkgICAgICB1bnNpZ25lZCBpbnQgcm90YXRpb24pOwotCi1zaXplX3QgdGlueWRybV9zcGlfbWF4X3RyYW5zZmVyX3NpemUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc2l6ZV90IG1heF9sZW4pOwotYm9vbCB0aW55ZHJtX3NwaV9icHdfc3VwcG9ydGVkKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHU4IGJwdyk7Ci1pbnQgdGlueWRybV9zcGlfdHJhbnNmZXIoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTMyIHNwZWVkX2h6LAotCQkJIHN0cnVjdCBzcGlfdHJhbnNmZXIgKmhlYWRlciwgdTggYnB3LCBjb25zdCB2b2lkICpidWYsCi0JCQkgc2l6ZV90IGxlbik7Ci12b2lkIF90aW55ZHJtX2RiZ19zcGlfbWVzc2FnZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm0pOwotCi0jaWZkZWYgREVCVUcKLS8qKgotICogdGlueWRybV9kYmdfc3BpX21lc3NhZ2UgLSBEdW1wIFNQSSBtZXNzYWdlCi0gKiBAc3BpOiBTUEkgZGV2aWNlCi0gKiBAbTogU1BJIG1lc3NhZ2UKLSAqCi0gKiBEdW1wcyBpbmZvIGFib3V0IHRoZSB0cmFuc2ZlcnMgaW4gYSBTUEkgbWVzc2FnZSBpbmNsdWRpbmcgYnVmZmVyIGNvbnRlbnQuCi0gKiBERUJVRyBoYXMgdG8gYmUgZGVmaW5lZCBmb3IgdGhpcyBmdW5jdGlvbiB0byBiZSBlbmFibGVkIGFsb25nc2lkZSBzZXR0aW5nCi0gKiB0aGUgRFJNX1VUX0RSSVZFUiBiaXQgb2YgJmRybV9kZWJ1Zy4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIHRpbnlkcm1fZGJnX3NwaV9tZXNzYWdlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCi0JCQkJCSAgIHN0cnVjdCBzcGlfbWVzc2FnZSAqbSkKLXsKLQlpZiAoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikKLQkJX3Rpbnlkcm1fZGJnX3NwaV9tZXNzYWdlKHNwaSwgbSk7Ci19Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHRpbnlkcm1fZGJnX3NwaV9tZXNzYWdlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCi0JCQkJCSAgIHN0cnVjdCBzcGlfbWVzc2FnZSAqbSkKLXsKLX0KLSNlbmRpZiAvKiBERUJVRyAqLwotCi0jZW5kaWYgLyogX19MSU5VWF9USU5ZRFJNX0hFTFBFUlNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKaW5kZXggNDlkOWNkZi4uNDNjNDkyOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIF9UVE1fQk9fQVBJX0hfCiAjZGVmaW5lIF9UVE1fQk9fQVBJX0hfCiAKKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgogI2luY2x1ZGUgPGRybS9kcm1faGFzaHRhYi5oPgogI2luY2x1ZGUgPGRybS9kcm1fdm1hX21hbmFnZXIuaD4KICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+CkBAIC0zOSw3ICs0MCw3IEBACiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG1hcC5oPgotI2luY2x1ZGUgPGxpbnV4L3Jlc2VydmF0aW9uLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KIAogc3RydWN0IHR0bV9ib19nbG9iYWw7CiAKQEAgLTEyNyw2ICsxMjgsNyBAQCBzdHJ1Y3QgdHRtX3R0OwogLyoqCiAgKiBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QKICAqCisgKiBAYmFzZTogZHJtX2dlbV9vYmplY3Qgc3VwZXJjbGFzcyBkYXRhLgogICogQGJkZXY6IFBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBvYmplY3QgZGV2aWNlIHN0cnVjdHVyZS4KICAqIEB0eXBlOiBUaGUgYm8gdHlwZS4KICAqIEBkZXN0cm95OiBEZXN0cnVjdGlvbiBmdW5jdGlvbi4gSWYgTlVMTCwga2ZyZWUgaXMgdXNlZC4KQEAgLTE1MCw3ICsxNTIsNiBAQCBzdHJ1Y3QgdHRtX3R0OwogICogQGRkZXN0cm95OiBMaXN0IGhlYWQgZm9yIHRoZSBkZWxheWVkIGRlc3Ryb3kgbGlzdC4KICAqIEBzd2FwOiBMaXN0IGhlYWQgZm9yIHN3YXAgTFJVIGxpc3QuCiAgKiBAbW92aW5nOiBGZW5jZSBzZXQgd2hlbiBCTyBpcyBtb3ZpbmcKLSAqIEB2bWFfbm9kZTogQWRkcmVzcyBzcGFjZSBtYW5hZ2VyIG5vZGUuCiAgKiBAb2Zmc2V0OiBUaGUgY3VycmVudCBHUFUgb2Zmc2V0LCB3aGljaCBjYW4gaGF2ZSBkaWZmZXJlbnQgbWVhbmluZ3MKICAqIGRlcGVuZGluZyBvbiB0aGUgbWVtb3J5IHR5cGUuIEZvciBTWVNURU0gdHlwZSBtZW1vcnksIGl0IHNob3VsZCBiZSAwLgogICogQGN1cl9wbGFjZW1lbnQ6IEhpbnQgb2YgY3VycmVudCBwbGFjZW1lbnQuCkBAIC0xNjksNiArMTcwLDggQEAgc3RydWN0IHR0bV90dDsKICAqLwogCiBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgeworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCBiYXNlOworCiAJLyoqCiAJICogTWVtYmVycyBjb25zdGFudCBhdCBpbml0LgogCSAqLwpAQCAtMjE1LDkgKzIxOCw2IEBAIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCB7CiAJICovCiAKIAlzdHJ1Y3QgZG1hX2ZlbmNlICptb3Zpbmc7Ci0KLQlzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbm9kZSB2bWFfbm9kZTsKLQogCXVuc2lnbmVkIHByaW9yaXR5OwogCiAJLyoqCkBAIC0yMzAsOCArMjMwLDYgQEAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IHsKIAogCXN0cnVjdCBzZ190YWJsZSAqc2c7CiAKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgdHRtX3Jlc3Y7CiAJc3RydWN0IG11dGV4IHd1X211dGV4OwogfTsKIApAQCAtMjc1LDcgKzI3Myw3IEBAIHN0cnVjdCB0dG1fYm9fa21hcF9vYmogewogc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IHsKIAlib29sIGludGVycnVwdGlibGU7CiAJYm9vbCBub193YWl0X2dwdTsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OworCXN0cnVjdCBkbWFfcmVzdiAqcmVzdjsKIAl1aW50NjRfdCBieXRlc19tb3ZlZDsKIAl1aW50MzJfdCBmbGFnczsKIH07CkBAIC00OTUsNyArNDkzLDcgQEAgc2l6ZV90IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAgKiBAcGFnZV9hbGlnbm1lbnQ6IERhdGEgYWxpZ25tZW50IGluIHBhZ2VzLgogICogQGN0eDogVFRNIG9wZXJhdGlvbiBjb250ZXh0IGZvciBtZW1vcnkgYWxsb2NhdGlvbi4KICAqIEBhY2Nfc2l6ZTogQWNjb3VudGVkIHNpemUgZm9yIHRoaXMgb2JqZWN0LgotICogQHJlc3Y6IFBvaW50ZXIgdG8gYSByZXNlcnZhdGlvbl9vYmplY3QsIG9yIE5VTEwgdG8gbGV0IHR0bSBhbGxvY2F0ZSBvbmUuCisgKiBAcmVzdjogUG9pbnRlciB0byBhIGRtYV9yZXN2LCBvciBOVUxMIHRvIGxldCB0dG0gYWxsb2NhdGUgb25lLgogICogQGRlc3Ryb3k6IERlc3Ryb3kgZnVuY3Rpb24uIFVzZSBOVUxMIGZvciBrZnJlZSgpLgogICoKICAqIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgYSBwcmUtYWxsb2NhdGVkIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdC4KQEAgLTUyOCw3ICs1MjYsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCQkgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCiAJCQkgc2l6ZV90IGFjY19zaXplLAogCQkJIHN0cnVjdCBzZ190YWJsZSAqc2csCi0JCQkgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKKwkJCSBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCQkgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpOwogCiAvKioKQEAgLTU0Nyw3ICs1NDUsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAgKiBwb2ludCB0byB0aGUgc2htZW0gb2JqZWN0IGJhY2tpbmcgYSBHRU0gb2JqZWN0IGlmIFRUTSBpcyB1c2VkIHRvIGJhY2sgYQogICogR0VNIHVzZXIgaW50ZXJmYWNlLgogICogQGFjY19zaXplOiBBY2NvdW50ZWQgc2l6ZSBmb3IgdGhpcyBvYmplY3QuCi0gKiBAcmVzdjogUG9pbnRlciB0byBhIHJlc2VydmF0aW9uX29iamVjdCwgb3IgTlVMTCB0byBsZXQgdHRtIGFsbG9jYXRlIG9uZS4KKyAqIEByZXN2OiBQb2ludGVyIHRvIGEgZG1hX3Jlc3YsIG9yIE5VTEwgdG8gbGV0IHR0bSBhbGxvY2F0ZSBvbmUuCiAgKiBAZGVzdHJveTogRGVzdHJveSBmdW5jdGlvbi4gVXNlIE5VTEwgZm9yIGtmcmVlKCkuCiAgKgogICogVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhIHByZS1hbGxvY2F0ZWQgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0LgpAQCAtNTcyLDcgKzU3MCw3IEBAIGludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJdW5zaWduZWQgbG9uZyBzaXplLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsCiAJCXN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCiAJCXVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LCBib29sIGludGVycnVidGlibGUsIHNpemVfdCBhY2Nfc2l6ZSwKLQkJc3RydWN0IHNnX3RhYmxlICpzZywgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKKwkJc3RydWN0IHNnX3RhYmxlICpzZywgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQl2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKSk7CiAKIC8qKgpAQCAtNzY4LDQgKzc2NiwyMyBAQCBpbnQgdHRtX2JvX3N3YXBvdXQoc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IsCiAJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7CiB2b2lkIHR0bV9ib19zd2Fwb3V0X2FsbChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldik7CiBpbnQgdHRtX2JvX3dhaXRfdW5yZXNlcnZlZChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsKKworLyoqCisgKiB0dG1fYm9fdXNlc19lbWJlZGRlZF9nZW1fb2JqZWN0IC0gY2hlY2sgaWYgdGhlIGdpdmVuIGJvIHVzZXMgdGhlCisgKiBlbWJlZGRlZCBkcm1fZ2VtX29iamVjdC4KKyAqCisgKiBNb3N0IHR0bSBkcml2ZXJzIGFyZSB1c2luZyBnZW0gdG9vLCBzbyB0aGUgZW1iZWRkZWQKKyAqIHR0bV9idWZmZXJfb2JqZWN0LmJhc2Ugd2lsbCBiZSBpbml0aWFsaXplZCBieSB0aGUgZHJpdmVyIChiZWZvcmUKKyAqIGNhbGxpbmcgdHRtX2JvX2luaXQpLiAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byB1c2UgdHRtIHdpdGhvdXQgZ2VtCisgKiB0aG91Z2ggKHZtd2dmeCBkb2VzIHRoYXQpLgorICoKKyAqIFRoaXMgaGVscGVyIHdpbGwgZmlndXJlIHdoZW5ldmVyIGEgZ2l2ZW4gdHRtIGJvIGlzIGEgZ2VtIG9iamVjdCB0b28KKyAqIG9yIG5vdC4KKyAqCisgKiBAYm86IFRoZSBibyB0byBjaGVjay4KKyAqLworc3RhdGljIGlubGluZSBib29sIHR0bV9ib191c2VzX2VtYmVkZGVkX2dlbV9vYmplY3Qoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKK3sKKwlyZXR1cm4gYm8tPmJhc2UuZGV2ICE9IE5VTEw7Cit9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCmluZGV4IGM5YjhiYTQuLjZmNTM2Y2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KLSNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1yZXN2Lmg+CiAKICNpbmNsdWRlICJ0dG1fYm9fYXBpLmgiCiAjaW5jbHVkZSAidHRtX21lbW9yeS5oIgpAQCAtMzkwLDYgKzM5MCwxNiBAQCBzdHJ1Y3QgdHRtX2JvX2RyaXZlciB7CiAJICogbm90aWZ5IGRyaXZlciB0aGF0IGEgQk8gd2FzIGRlbGV0ZWQgZnJvbSBMUlUuCiAJICovCiAJdm9pZCAoKmRlbF9mcm9tX2xydV9ub3RpZnkpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOworCisJLyoqCisJICogTm90aWZ5IHRoZSBkcml2ZXIgdGhhdCB3ZSdyZSBhYm91dCB0byByZWxlYXNlIGEgQk8KKwkgKgorCSAqIEBibzogQk8gdGhhdCBpcyBhYm91dCB0byBiZSByZWxlYXNlZAorCSAqCisJICogR2l2ZXMgdGhlIGRyaXZlciBhIGNoYW5jZSB0byBkbyBhbnkgY2xlYW51cCwgaW5jbHVkaW5nCisJICogYWRkaW5nIGZlbmNlcyB0aGF0IG1heSBmb3JjZSBhIGRlbGF5ZWQgZGVsZXRlCisJICovCisJdm9pZCAoKnJlbGVhc2Vfbm90aWZ5KShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsKIH07CiAKIC8qKgpAQCAtNjU0LDE0ICs2NjQsMTQgQEAgc3RhdGljIGlubGluZSBpbnQgX190dG1fYm9fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlpZiAoV0FSTl9PTih0aWNrZXQpKQogCQkJcmV0dXJuIC1FQlVTWTsKIAotCQlzdWNjZXNzID0gcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8tPnJlc3YpOworCQlzdWNjZXNzID0gZG1hX3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5yZXN2KTsKIAkJcmV0dXJuIHN1Y2Nlc3MgPyAwIDogLUVCVVNZOwogCX0KIAogCWlmIChpbnRlcnJ1cHRpYmxlKQotCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfbG9ja19pbnRlcnJ1cHRpYmxlKGJvLT5yZXN2LCB0aWNrZXQpOworCQlyZXQgPSBkbWFfcmVzdl9sb2NrX2ludGVycnVwdGlibGUoYm8tPmJhc2UucmVzdiwgdGlja2V0KTsKIAllbHNlCi0JCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9sb2NrKGJvLT5yZXN2LCB0aWNrZXQpOworCQlyZXQgPSBkbWFfcmVzdl9sb2NrKGJvLT5iYXNlLnJlc3YsIHRpY2tldCk7CiAJaWYgKHJldCA9PSAtRUlOVFIpCiAJCXJldHVybiAtRVJFU1RBUlRTWVM7CiAJcmV0dXJuIHJldDsKQEAgLTc0NSwxMCArNzU1LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHR0bV9ib19yZXNlcnZlX3Nsb3dwYXRoKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJV0FSTl9PTigha3JlZl9yZWFkKCZiby0+a3JlZikpOwogCiAJaWYgKGludGVycnVwdGlibGUpCi0JCXJldCA9IHd3X211dGV4X2xvY2tfc2xvd19pbnRlcnJ1cHRpYmxlKCZiby0+cmVzdi0+bG9jaywKLQkJCQkJCSAgICAgICB0aWNrZXQpOworCQlyZXQgPSBkbWFfcmVzdl9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZShiby0+YmFzZS5yZXN2LAorCQkJCQkJCQkgdGlja2V0KTsKIAllbHNlCi0JCXd3X211dGV4X2xvY2tfc2xvdygmYm8tPnJlc3YtPmxvY2ssIHRpY2tldCk7CisJCWRtYV9yZXN2X2xvY2tfc2xvdyhiby0+YmFzZS5yZXN2LCB0aWNrZXQpOwogCiAJaWYgKGxpa2VseShyZXQgPT0gMCkpCiAJCXR0bV9ib19kZWxfc3ViX2Zyb21fbHJ1KGJvKTsKQEAgLTc3Myw3ICs3ODMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdHRtX2JvX3VucmVzZXJ2ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogCWVsc2UKIAkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwpOwogCXNwaW5fdW5sb2NrKCZiby0+YmRldi0+Z2xvYi0+bHJ1X2xvY2spOwotCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvYnVzL3RpLXN5c2MuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvYnVzL3RpLXN5c2MuaAppbmRleCA3MTM4Mzg0Li5iYWJkMDhhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2J1cy90aS1zeXNjLmgKKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9idXMvdGktc3lzYy5oCkBAIC0xLDMgKzEsNCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KIC8qIFRJIHN5c2MgaW50ZXJjb25uZWN0IHRhcmdldCBtb2R1bGUgZGVmaW5lcyAqLwogCiAvKiBHZW5lcmljIHN5c2MgZm91bmQgb24gb21hcDIgYW5kIGxhdGVyLCBhbHNvIGtub3duIGFzIHR5cGUxICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2FzdDI2MDAtY2xvY2suaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svYXN0MjYwMC1jbG9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4MDc0YTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2FzdDI2MDAtY2xvY2suaApAQCAtMCwwICsxLDExMyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgT1IgTUlUICovCisjaWZuZGVmIERUX0JJTkRJTkdTX0FTVDI2MDBfQ0xPQ0tfSAorI2RlZmluZSBEVF9CSU5ESU5HU19BU1QyNjAwX0NMT0NLX0gKKworI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfRUNMSwkJMAorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfR0NMSwkJMQorCisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9NQ0xLCQkyCisKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX1ZDTEsJCTMKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX0JDTEsJCTQKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX0RDTEsJCTUKKworI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfTENMSwkJNgorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfTEhDQ0xLCQk3CisKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX0QxQ0xLCQk4CisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9ZQ0xLCQk5CisKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX1JFRjBDTEsJCTEwCisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9SRUYxQ0xLCQkxMQorCisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9FU1BJQ0xLCQkxMgorCisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9VU0JVSENJQ0xLCTEzCisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9VU0JQT1JUMUNMSwkxNAorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfVVNCUE9SVDJDTEsJMTUKKworI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfUlNBQ0xLCQkxNgorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfUlZBU0NMSwkJMTcKKworI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfTUFDMUNMSwkJMTgKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX01BQzJDTEsJCTE5CisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9NQUMzQ0xLCQkyMAorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfTUFDNENMSwkJMjEKKworI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfVUFSVDFDTEsJMjIKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX1VBUlQyQ0xLCTIzCisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9VQVJUM0NMSwkyNAorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfVUFSVDRDTEsJMjUKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX1VBUlQ1Q0xLCTI2CisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9VQVJUNkNMSwkyNworI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfVUFSVDdDTEsJMjgKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX1VBUlQ4Q0xLCTI5CisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9VQVJUOUNMSwkzMAorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfVUFSVDEwQ0xLCTMxCisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9VQVJUMTFDTEsJMzIKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX1VBUlQxMkNMSwkzMworI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfVUFSVDEzQ0xLCTM0CisKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX1NEQ0xLCQkzNQorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfRU1NQ0NMSwkJMzYKKworI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfSTNDMENMSwkJMzcKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX0kzQzFDTEsJCTM4CisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9JM0MyQ0xLCQkzOQorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfSTNDM0NMSwkJNDAKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX0kzQzRDTEsJCTQxCisjZGVmaW5lIEFTUEVFRF9DTEtfR0FURV9JM0M1Q0xLCQk0MgorI2RlZmluZSBBU1BFRURfQ0xLX0dBVEVfSTNDNkNMSwkJNDMKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX0kzQzdDTEsJCTQ0CisKKyNkZWZpbmUgQVNQRUVEX0NMS19HQVRFX0ZTSUNMSwkJNDUKKworI2RlZmluZSBBU1BFRURfQ0xLX0hQTEwJCQk0NgorI2RlZmluZSBBU1BFRURfQ0xLX01QTEwJCQk0NworI2RlZmluZSBBU1BFRURfQ0xLX0RQTEwJCQk0OAorI2RlZmluZSBBU1BFRURfQ0xLX0VQTEwJCQk0OQorI2RlZmluZSBBU1BFRURfQ0xLX0FQTEwJCQk1MAorI2RlZmluZSBBU1BFRURfQ0xLX0FIQgkJCTUxCisjZGVmaW5lIEFTUEVFRF9DTEtfQVBCMQkJCTUyCisjZGVmaW5lIEFTUEVFRF9DTEtfQVBCMgkJCTUzCisjZGVmaW5lIEFTUEVFRF9DTEtfQkNMSwkJCTU0CisjZGVmaW5lIEFTUEVFRF9DTEtfRDFDTEsJCTU1CisjZGVmaW5lIEFTUEVFRF9DTEtfVkNMSwkJCTU2CisjZGVmaW5lIEFTUEVFRF9DTEtfTEhDTEsJCTU3CisjZGVmaW5lIEFTUEVFRF9DTEtfVUFSVAkJCTU4CisjZGVmaW5lIEFTUEVFRF9DTEtfVUFSVFgJCTU5CisjZGVmaW5lIEFTUEVFRF9DTEtfU0RJTwkJCTYwCisjZGVmaW5lIEFTUEVFRF9DTEtfRU1NQwkJCTYxCisjZGVmaW5lIEFTUEVFRF9DTEtfRUNMSwkJCTYyCisjZGVmaW5lIEFTUEVFRF9DTEtfRUNMS19NVVgJCTYzCisjZGVmaW5lIEFTUEVFRF9DTEtfTUFDMTIJCTY0CisjZGVmaW5lIEFTUEVFRF9DTEtfTUFDMzQJCTY1CisjZGVmaW5lIEFTUEVFRF9DTEtfVVNCUEhZXzQwTQkJNjYKKworLyogT25seSBsaXN0IHJlc2V0cyBoZXJlIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIGEgZ2F0ZSAqLworI2RlZmluZSBBU1BFRURfUkVTRVRfQURDCQk1NQorI2RlZmluZSBBU1BFRURfUkVTRVRfSlRBR19NQVNURVIyCTU0CisjZGVmaW5lIEFTUEVFRF9SRVNFVF9JM0NfRE1BCQkzOQorI2RlZmluZSBBU1BFRURfUkVTRVRfUFdNCQkzNworI2RlZmluZSBBU1BFRURfUkVTRVRfUEVDSQkJMzYKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX01JSQkJMzUKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX0kyQwkJMzQKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX0gyWAkJMzEKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX0dQX01DVQkJMzAKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX0RQX01DVQkJMjkKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX0RQCQkJMjgKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX1JDX1hETUEJCTI3CisjZGVmaW5lIEFTUEVFRF9SRVNFVF9HUkFQSElDUwkJMjYKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX0RFVl9YRE1BCQkyNQorI2RlZmluZSBBU1BFRURfUkVTRVRfREVWX01DVFAJCTI0CisjZGVmaW5lIEFTUEVFRF9SRVNFVF9SQ19NQ1RQCQkyMworI2RlZmluZSBBU1BFRURfUkVTRVRfSlRBR19NQVNURVIJMjIKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX1BDSUVfREVWX08JCTIxCisjZGVmaW5lIEFTUEVFRF9SRVNFVF9QQ0lFX0RFVl9PRU4JMjAKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX1BDSUVfUkNfTwkJMTkKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX1BDSUVfUkNfT0VOCTE4CisjZGVmaW5lIEFTUEVFRF9SRVNFVF9QQ0lfRFAJCTUKKyNkZWZpbmUgQVNQRUVEX1JFU0VUX0FIQgkJMQorI2RlZmluZSBBU1BFRURfUkVTRVRfU0RSQU0JCTAKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2JjbTI4MzUuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svYmNtMjgzNS5oCmluZGV4IDJjZWMwMWYuLmI2MGMwMzQzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2JjbTI4MzUuaAorKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2JjbTI4MzUuaApAQCAtNTgsMyArNTgsNSBAQAogI2RlZmluZSBCQ00yODM1X0NMT0NLX0RTSTFFCQk0OAogI2RlZmluZSBCQ00yODM1X0NMT0NLX0RTSTBQCQk0OQogI2RlZmluZSBCQ00yODM1X0NMT0NLX0RTSTFQCQk1MAorCisjZGVmaW5lIEJDTTI3MTFfQ0xPQ0tfRU1NQzIJCTUxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2lteDhtbi1jbG9jay5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9pbXg4bW4tY2xvY2suaAppbmRleCA1MjU1YjFjLi5kN2IyMDE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2lteDhtbi1jbG9jay5oCisrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svaW14OG1uLWNsb2NrLmgKQEAgLTIwOSw3ICsyMDksOCBAQAogI2RlZmluZSBJTVg4TU5fQ0xLX0FSTQkJCQkxOTEKICNkZWZpbmUgSU1YOE1OX0NMS19OQU5EX1VTREhDX0JVU19SQVdOQU5EX0NMSwkxOTIKICNkZWZpbmUgSU1YOE1OX0NMS19HUFVfQ09SRV9ST09UCQkxOTMKKyNkZWZpbmUgSU1YOE1OX0NMS19HSUMJCQkJMTk0CiAKLSNkZWZpbmUgSU1YOE1OX0NMS19FTkQJCQkJMTk0CisjZGVmaW5lIElNWDhNTl9DTEtfRU5ECQkJCTE5NQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svaW5nZW5pYyx0Y3UuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svaW5nZW5pYyx0Y3UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTY5NjUwYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svaW5nZW5pYyx0Y3UuaApAQCAtMCwwICsxLDIwIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGNsb2NrIG51bWJlcnMgZm9yIHRoZSBpbmdlbmljLHRjdSBEVCBiaW5kaW5nLgorICovCisKKyNpZm5kZWYgX19EVF9CSU5ESU5HU19DTE9DS19JTkdFTklDX1RDVV9IX18KKyNkZWZpbmUgX19EVF9CSU5ESU5HU19DTE9DS19JTkdFTklDX1RDVV9IX18KKworI2RlZmluZSBUQ1VfQ0xLX1RJTUVSMAkwCisjZGVmaW5lIFRDVV9DTEtfVElNRVIxCTEKKyNkZWZpbmUgVENVX0NMS19USU1FUjIJMgorI2RlZmluZSBUQ1VfQ0xLX1RJTUVSMwkzCisjZGVmaW5lIFRDVV9DTEtfVElNRVI0CTQKKyNkZWZpbmUgVENVX0NMS19USU1FUjUJNQorI2RlZmluZSBUQ1VfQ0xLX1RJTUVSNgk2CisjZGVmaW5lIFRDVV9DTEtfVElNRVI3CTcKKyNkZWZpbmUgVENVX0NMS19XRFQJOAorI2RlZmluZSBUQ1VfQ0xLX09TVAk5CisKKyNlbmRpZiAvKiBfX0RUX0JJTkRJTkdTX0NMT0NLX0lOR0VOSUNfVENVX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9qejQ3NDAtY2d1LmggYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2p6NDc0MC1jZ3UuaAppbmRleCA2ZWQ4M2Y5Li5lODJkNzcwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2p6NDc0MC1jZ3UuaAorKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2p6NDc0MC1jZ3UuaApAQCAtMzQsNSArMzQsNiBAQAogI2RlZmluZSBKWjQ3NDBfQ0xLX0FEQwkJMTkKICNkZWZpbmUgSlo0NzQwX0NMS19JMkMJCTIwCiAjZGVmaW5lIEpaNDc0MF9DTEtfQUlDCQkyMQorI2RlZmluZSBKWjQ3NDBfQ0xLX1RDVQkJMjIKIAogI2VuZGlmIC8qIF9fRFRfQklORElOR1NfQ0xPQ0tfSlo0NzQwX0NHVV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svbXQ2Nzc5LWNsay5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9tdDY3NzktY2xrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA4MzEzOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svbXQ2Nzc5LWNsay5oCkBAIC0wLDAgKzEsNDM2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBNZWRpYVRlayBJbmMuCisgKiBBdXRob3I6IFdlbmRlbGwgTGluIDx3ZW5kZWxsLmxpbkBtZWRpYXRlay5jb20+CisgKi8KKworI2lmbmRlZiBfRFRfQklORElOR1NfQ0xLX01UNjc3OV9ICisjZGVmaW5lIF9EVF9CSU5ESU5HU19DTEtfTVQ2Nzc5X0gKKworLyogVE9QQ0tHRU4gKi8KKyNkZWZpbmUgQ0xLX1RPUF9BWEkJCQkxCisjZGVmaW5lIENMS19UT1BfTU0JCQkyCisjZGVmaW5lIENMS19UT1BfQ0FNCQkJMworI2RlZmluZSBDTEtfVE9QX01GRwkJCTQKKyNkZWZpbmUgQ0xLX1RPUF9DQU1URwkJCTUKKyNkZWZpbmUgQ0xLX1RPUF9VQVJUCQkJNgorI2RlZmluZSBDTEtfVE9QX1NQSQkJCTcKKyNkZWZpbmUgQ0xLX1RPUF9NU0RDNTBfMF9IQ0xLCQk4CisjZGVmaW5lIENMS19UT1BfTVNEQzUwXzAJCTkKKyNkZWZpbmUgQ0xLX1RPUF9NU0RDMzBfMQkJMTAKKyNkZWZpbmUgQ0xLX1RPUF9NU0RDMzBfMgkJMTEKKyNkZWZpbmUgQ0xLX1RPUF9BVUQJCQkxMgorI2RlZmluZSBDTEtfVE9QX0FVRF9JTlRCVVMJCTEzCisjZGVmaW5lIENMS19UT1BfRlBXUkFQX1VMUE9TQwkJMTQKKyNkZWZpbmUgQ0xLX1RPUF9TQ1AJCQkxNQorI2RlZmluZSBDTEtfVE9QX0FUQgkJCTE2CisjZGVmaW5lIENMS19UT1BfU1NQTQkJCTE3CisjZGVmaW5lIENMS19UT1BfRFBJMAkJCTE4CisjZGVmaW5lIENMS19UT1BfU0NBTQkJCTE5CisjZGVmaW5lIENMS19UT1BfQVVEXzEJCQkyMAorI2RlZmluZSBDTEtfVE9QX0FVRF8yCQkJMjEKKyNkZWZpbmUgQ0xLX1RPUF9ESVNQX1BXTQkJMjIKKyNkZWZpbmUgQ0xLX1RPUF9TU1VTQl9UT1BfWEhDSQkJMjMKKyNkZWZpbmUgQ0xLX1RPUF9VU0JfVE9QCQkJMjQKKyNkZWZpbmUgQ0xLX1RPUF9TUE0JCQkyNQorI2RlZmluZSBDTEtfVE9QX0kyQwkJCTI2CisjZGVmaW5lIENMS19UT1BfRjUyTV9NRkcJCTI3CisjZGVmaW5lIENMS19UT1BfU0VOSU5GCQkJMjgKKyNkZWZpbmUgQ0xLX1RPUF9EWENDCQkJMjkKKyNkZWZpbmUgQ0xLX1RPUF9DQU1URzIJCQkzMAorI2RlZmluZSBDTEtfVE9QX0FVRF9FTkcxCQkzMQorI2RlZmluZSBDTEtfVE9QX0FVRF9FTkcyCQkzMgorI2RlZmluZSBDTEtfVE9QX0ZBRVNfVUZTRkRFCQkzMworI2RlZmluZSBDTEtfVE9QX0ZVRlMJCQkzNAorI2RlZmluZSBDTEtfVE9QX0lNRwkJCTM1CisjZGVmaW5lIENMS19UT1BfRFNQCQkJMzYKKyNkZWZpbmUgQ0xLX1RPUF9EU1AxCQkJMzcKKyNkZWZpbmUgQ0xLX1RPUF9EU1AyCQkJMzgKKyNkZWZpbmUgQ0xLX1RPUF9JUFVfSUYJCQkzOQorI2RlZmluZSBDTEtfVE9QX0NBTVRHMwkJCTQwCisjZGVmaW5lIENMS19UT1BfQ0FNVEc0CQkJNDEKKyNkZWZpbmUgQ0xLX1RPUF9QTUlDU1BJCQkJNDIKKyNkZWZpbmUgQ0xLX1RPUF9NQUlOUExMX0NLCQk0MworI2RlZmluZSBDTEtfVE9QX01BSU5QTExfRDIJCTQ0CisjZGVmaW5lIENMS19UT1BfTUFJTlBMTF9EMwkJNDUKKyNkZWZpbmUgQ0xLX1RPUF9NQUlOUExMX0Q1CQk0NgorI2RlZmluZSBDTEtfVE9QX01BSU5QTExfRDcJCTQ3CisjZGVmaW5lIENMS19UT1BfTUFJTlBMTF9EMl9EMgkJNDgKKyNkZWZpbmUgQ0xLX1RPUF9NQUlOUExMX0QyX0Q0CQk0OQorI2RlZmluZSBDTEtfVE9QX01BSU5QTExfRDJfRDgJCTUwCisjZGVmaW5lIENMS19UT1BfTUFJTlBMTF9EMl9EMTYJCTUxCisjZGVmaW5lIENMS19UT1BfTUFJTlBMTF9EM19EMgkJNTIKKyNkZWZpbmUgQ0xLX1RPUF9NQUlOUExMX0QzX0Q0CQk1MworI2RlZmluZSBDTEtfVE9QX01BSU5QTExfRDNfRDgJCTU0CisjZGVmaW5lIENMS19UT1BfTUFJTlBMTF9ENV9EMgkJNTUKKyNkZWZpbmUgQ0xLX1RPUF9NQUlOUExMX0Q1X0Q0CQk1NgorI2RlZmluZSBDTEtfVE9QX01BSU5QTExfRDdfRDIJCTU3CisjZGVmaW5lIENMS19UT1BfTUFJTlBMTF9EN19ENAkJNTgKKyNkZWZpbmUgQ0xLX1RPUF9VTklWUExMX0NLCQk1OQorI2RlZmluZSBDTEtfVE9QX1VOSVZQTExfRDIJCTYwCisjZGVmaW5lIENMS19UT1BfVU5JVlBMTF9EMwkJNjEKKyNkZWZpbmUgQ0xLX1RPUF9VTklWUExMX0Q1CQk2MgorI2RlZmluZSBDTEtfVE9QX1VOSVZQTExfRDcJCTYzCisjZGVmaW5lIENMS19UT1BfVU5JVlBMTF9EMl9EMgkJNjQKKyNkZWZpbmUgQ0xLX1RPUF9VTklWUExMX0QyX0Q0CQk2NQorI2RlZmluZSBDTEtfVE9QX1VOSVZQTExfRDJfRDgJCTY2CisjZGVmaW5lIENMS19UT1BfVU5JVlBMTF9EM19EMgkJNjcKKyNkZWZpbmUgQ0xLX1RPUF9VTklWUExMX0QzX0Q0CQk2OAorI2RlZmluZSBDTEtfVE9QX1VOSVZQTExfRDNfRDgJCTY5CisjZGVmaW5lIENMS19UT1BfVU5JVlBMTF9ENV9EMgkJNzAKKyNkZWZpbmUgQ0xLX1RPUF9VTklWUExMX0Q1X0Q0CQk3MQorI2RlZmluZSBDTEtfVE9QX1VOSVZQTExfRDVfRDgJCTcyCisjZGVmaW5lIENMS19UT1BfQVBMTDFfQ0sJCTczCisjZGVmaW5lIENMS19UT1BfQVBMTDFfRDIJCTc0CisjZGVmaW5lIENMS19UT1BfQVBMTDFfRDQJCTc1CisjZGVmaW5lIENMS19UT1BfQVBMTDFfRDgJCTc2CisjZGVmaW5lIENMS19UT1BfQVBMTDJfQ0sJCTc3CisjZGVmaW5lIENMS19UT1BfQVBMTDJfRDIJCTc4CisjZGVmaW5lIENMS19UT1BfQVBMTDJfRDQJCTc5CisjZGVmaW5lIENMS19UT1BfQVBMTDJfRDgJCTgwCisjZGVmaW5lIENMS19UT1BfVFZEUExMX0NLCQk4MQorI2RlZmluZSBDTEtfVE9QX1RWRFBMTF9EMgkJODIKKyNkZWZpbmUgQ0xLX1RPUF9UVkRQTExfRDQJCTgzCisjZGVmaW5lIENMS19UT1BfVFZEUExMX0Q4CQk4NAorI2RlZmluZSBDTEtfVE9QX1RWRFBMTF9EMTYJCTg1CisjZGVmaW5lIENMS19UT1BfTVNEQ1BMTF9DSwkJODYKKyNkZWZpbmUgQ0xLX1RPUF9NU0RDUExMX0QyCQk4NworI2RlZmluZSBDTEtfVE9QX01TRENQTExfRDQJCTg4CisjZGVmaW5lIENMS19UT1BfTVNEQ1BMTF9EOAkJODkKKyNkZWZpbmUgQ0xLX1RPUF9NU0RDUExMX0QxNgkJOTAKKyNkZWZpbmUgQ0xLX1RPUF9BRF9PU0NfQ0sJCTkxCisjZGVmaW5lIENMS19UT1BfT1NDX0QyCQkJOTIKKyNkZWZpbmUgQ0xLX1RPUF9PU0NfRDQJCQk5MworI2RlZmluZSBDTEtfVE9QX09TQ19EOAkJCTk0CisjZGVmaW5lIENMS19UT1BfT1NDX0QxNgkJCTk1CisjZGVmaW5lIENMS19UT1BfRjI2TV9DS19EMgkJOTYKKyNkZWZpbmUgQ0xLX1RPUF9NRkdQTExfQ0sJCTk3CisjZGVmaW5lIENMS19UT1BfVU5JVlBfMTkyTV9DSwkJOTgKKyNkZWZpbmUgQ0xLX1RPUF9VTklWUF8xOTJNX0QyCQk5OQorI2RlZmluZSBDTEtfVE9QX1VOSVZQXzE5Mk1fRDQJCTEwMAorI2RlZmluZSBDTEtfVE9QX1VOSVZQXzE5Mk1fRDgJCTEwMQorI2RlZmluZSBDTEtfVE9QX1VOSVZQXzE5Mk1fRDE2CQkxMDIKKyNkZWZpbmUgQ0xLX1RPUF9VTklWUF8xOTJNX0QzMgkJMTAzCisjZGVmaW5lIENMS19UT1BfTU1QTExfQ0sJCTEwNAorI2RlZmluZSBDTEtfVE9QX01NUExMX0Q0CQkxMDUKKyNkZWZpbmUgQ0xLX1RPUF9NTVBMTF9ENF9EMgkJMTA2CisjZGVmaW5lIENMS19UT1BfTU1QTExfRDRfRDQJCTEwNworI2RlZmluZSBDTEtfVE9QX01NUExMX0Q1CQkxMDgKKyNkZWZpbmUgQ0xLX1RPUF9NTVBMTF9ENV9EMgkJMTA5CisjZGVmaW5lIENMS19UT1BfTU1QTExfRDVfRDQJCTExMAorI2RlZmluZSBDTEtfVE9QX01NUExMX0Q2CQkxMTEKKyNkZWZpbmUgQ0xLX1RPUF9NTVBMTF9ENwkJMTEyCisjZGVmaW5lIENMS19UT1BfQ0xLMjZNCQkJMTEzCisjZGVmaW5lIENMS19UT1BfQ0xLMTNNCQkJMTE0CisjZGVmaW5lIENMS19UT1BfQURTUAkJCTExNQorI2RlZmluZSBDTEtfVE9QX0RQTUFJRgkJCTExNgorI2RlZmluZSBDTEtfVE9QX1ZFTkMJCQkxMTcKKyNkZWZpbmUgQ0xLX1RPUF9WREVDCQkJMTE4CisjZGVmaW5lIENMS19UT1BfQ0FNVE0JCQkxMTkKKyNkZWZpbmUgQ0xLX1RPUF9QV00JCQkxMjAKKyNkZWZpbmUgQ0xLX1RPUF9BRFNQUExMX0NLCQkxMjEKKyNkZWZpbmUgQ0xLX1RPUF9JMlMwX01fU0VMCQkxMjIKKyNkZWZpbmUgQ0xLX1RPUF9JMlMxX01fU0VMCQkxMjMKKyNkZWZpbmUgQ0xLX1RPUF9JMlMyX01fU0VMCQkxMjQKKyNkZWZpbmUgQ0xLX1RPUF9JMlMzX01fU0VMCQkxMjUKKyNkZWZpbmUgQ0xLX1RPUF9JMlM0X01fU0VMCQkxMjYKKyNkZWZpbmUgQ0xLX1RPUF9JMlM1X01fU0VMCQkxMjcKKyNkZWZpbmUgQ0xLX1RPUF9BUExMMTJfRElWMAkJMTI4CisjZGVmaW5lIENMS19UT1BfQVBMTDEyX0RJVjEJCTEyOQorI2RlZmluZSBDTEtfVE9QX0FQTEwxMl9ESVYyCQkxMzAKKyNkZWZpbmUgQ0xLX1RPUF9BUExMMTJfRElWMwkJMTMxCisjZGVmaW5lIENMS19UT1BfQVBMTDEyX0RJVjQJCTEzMgorI2RlZmluZSBDTEtfVE9QX0FQTEwxMl9ESVZCCQkxMzMKKyNkZWZpbmUgQ0xLX1RPUF9BUExMMTJfRElWNQkJMTM0CisjZGVmaW5lIENMS19UT1BfSVBFCQkJMTM1CisjZGVmaW5lIENMS19UT1BfRFBFCQkJMTM2CisjZGVmaW5lIENMS19UT1BfQ0NVCQkJMTM3CisjZGVmaW5lIENMS19UT1BfRFNQMwkJCTEzOAorI2RlZmluZSBDTEtfVE9QX1NFTklORjEJCQkxMzkKKyNkZWZpbmUgQ0xLX1RPUF9TRU5JTkYyCQkJMTQwCisjZGVmaW5lIENMS19UT1BfQVVEX0gJCQkxNDEKKyNkZWZpbmUgQ0xLX1RPUF9DQU1URzUJCQkxNDIKKyNkZWZpbmUgQ0xLX1RPUF9UVkRQTExfTUFJTlBMTF9EMl9DSwkxNDMKKyNkZWZpbmUgQ0xLX1RPUF9BRF9PU0MyX0NLCQkxNDQKKyNkZWZpbmUgQ0xLX1RPUF9PU0MyX0QyCQkJMTQ1CisjZGVmaW5lIENMS19UT1BfT1NDMl9EMwkJCTE0NgorI2RlZmluZSBDTEtfVE9QX0ZNRU1fNDY2TV9DSwkJMTQ3CisjZGVmaW5lIENMS19UT1BfQURTUFBMTF9ENAkJMTQ4CisjZGVmaW5lIENMS19UT1BfQURTUFBMTF9ENQkJMTQ5CisjZGVmaW5lIENMS19UT1BfQURTUFBMTF9ENgkJMTUwCisjZGVmaW5lIENMS19UT1BfT1NDX0QxMAkJCTE1MQorI2RlZmluZSBDTEtfVE9QX1VOSVZQTExfRDNfRDE2CQkxNTIKKyNkZWZpbmUgQ0xLX1RPUF9OUl9DTEsJCQkxNTMKKworLyogQVBNSVhFRCAqLworI2RlZmluZSBDTEtfQVBNSVhFRF9BUk1QTExfTEwJCTEKKyNkZWZpbmUgQ0xLX0FQTUlYRURfQVJNUExMX0JMCQkyCisjZGVmaW5lIENMS19BUE1JWEVEX0FSTVBMTF9CQgkJMworI2RlZmluZSBDTEtfQVBNSVhFRF9DQ0lQTEwJCTQKKyNkZWZpbmUgQ0xLX0FQTUlYRURfTUFJTlBMTAkJNQorI2RlZmluZSBDTEtfQVBNSVhFRF9VTklWMlBMTAkJNgorI2RlZmluZSBDTEtfQVBNSVhFRF9NU0RDUExMCQk3CisjZGVmaW5lIENMS19BUE1JWEVEX0FEU1BQTEwJCTgKKyNkZWZpbmUgQ0xLX0FQTUlYRURfTU1QTEwJCTkKKyNkZWZpbmUgQ0xLX0FQTUlYRURfTUZHUExMCQkxMAorI2RlZmluZSBDTEtfQVBNSVhFRF9UVkRQTEwJCTExCisjZGVmaW5lIENMS19BUE1JWEVEX0FQTEwxCQkxMgorI2RlZmluZSBDTEtfQVBNSVhFRF9BUExMMgkJMTMKKyNkZWZpbmUgQ0xLX0FQTUlYRURfU1NVU0IyNk0JCTE0CisjZGVmaW5lIENMS19BUE1JWEVEX0FQUExMMjZNCQkxNQorI2RlZmluZSBDTEtfQVBNSVhFRF9NSVBJQzBfMjZNCQkxNgorI2RlZmluZSBDTEtfQVBNSVhFRF9NRFBMTEdQMjZNCQkxNworI2RlZmluZSBDTEtfQVBNSVhFRF9NTV9GMjZNCQkxOAorI2RlZmluZSBDTEtfQVBNSVhFRF9VRlMyNk0JCTE5CisjZGVmaW5lIENMS19BUE1JWEVEX01JUElDMV8yNk0JCTIwCisjZGVmaW5lIENMS19BUE1JWEVEX01FTVBMTDI2TQkJMjEKKyNkZWZpbmUgQ0xLX0FQTUlYRURfQ0xLU1FfTFZQTExfMjZNCTIyCisjZGVmaW5lIENMS19BUE1JWEVEX01JUElEMF8yNk0JCTIzCisjZGVmaW5lIENMS19BUE1JWEVEX01JUElEMV8yNk0JCTI0CisjZGVmaW5lIENMS19BUE1JWEVEX05SX0NMSwkJMjUKKworLyogQ0FNU1lTICovCisjZGVmaW5lIENMS19DQU1fTEFSQjEwCQkJMQorI2RlZmluZSBDTEtfQ0FNX0RGUF9WQUQJCQkyCisjZGVmaW5lIENMS19DQU1fTEFSQjExCQkJMworI2RlZmluZSBDTEtfQ0FNX0xBUkI5CQkJNAorI2RlZmluZSBDTEtfQ0FNX0NBTQkJCTUKKyNkZWZpbmUgQ0xLX0NBTV9DQU1URwkJCTYKKyNkZWZpbmUgQ0xLX0NBTV9TRU5JTkYJCQk3CisjZGVmaW5lIENMS19DQU1fQ0FNU1YwCQkJOAorI2RlZmluZSBDTEtfQ0FNX0NBTVNWMQkJCTkKKyNkZWZpbmUgQ0xLX0NBTV9DQU1TVjIJCQkxMAorI2RlZmluZSBDTEtfQ0FNX0NBTVNWMwkJCTExCisjZGVmaW5lIENMS19DQU1fQ0NVCQkJMTIKKyNkZWZpbmUgQ0xLX0NBTV9GQUtFX0VORwkJMTMKKyNkZWZpbmUgQ0xLX0NBTV9OUl9DTEsJCQkxNAorCisvKiBJTkZSQSAqLworI2RlZmluZSBDTEtfSU5GUkFfUE1JQ19UTVIJCTEKKyNkZWZpbmUgQ0xLX0lORlJBX1BNSUNfQVAJCTIKKyNkZWZpbmUgQ0xLX0lORlJBX1BNSUNfTUQJCTMKKyNkZWZpbmUgQ0xLX0lORlJBX1BNSUNfQ09OTgkJNAorI2RlZmluZSBDTEtfSU5GUkFfU0NQU1lTCQk1CisjZGVmaW5lIENMS19JTkZSQV9TRUoJCQk2CisjZGVmaW5lIENMS19JTkZSQV9BUFhHUFQJCTcKKyNkZWZpbmUgQ0xLX0lORlJBX0lDVVNCCQkJOAorI2RlZmluZSBDTEtfSU5GUkFfR0NFCQkJOQorI2RlZmluZSBDTEtfSU5GUkFfVEhFUk0JCQkxMAorI2RlZmluZSBDTEtfSU5GUkFfSTJDMAkJCTExCisjZGVmaW5lIENMS19JTkZSQV9JMkMxCQkJMTIKKyNkZWZpbmUgQ0xLX0lORlJBX0kyQzIJCQkxMworI2RlZmluZSBDTEtfSU5GUkFfSTJDMwkJCTE0CisjZGVmaW5lIENMS19JTkZSQV9QV01fSENMSwkJMTUKKyNkZWZpbmUgQ0xLX0lORlJBX1BXTTEJCQkxNgorI2RlZmluZSBDTEtfSU5GUkFfUFdNMgkJCTE3CisjZGVmaW5lIENMS19JTkZSQV9QV00zCQkJMTgKKyNkZWZpbmUgQ0xLX0lORlJBX1BXTTQJCQkxOQorI2RlZmluZSBDTEtfSU5GUkFfUFdNCQkJMjAKKyNkZWZpbmUgQ0xLX0lORlJBX1VBUlQwCQkJMjEKKyNkZWZpbmUgQ0xLX0lORlJBX1VBUlQxCQkJMjIKKyNkZWZpbmUgQ0xLX0lORlJBX1VBUlQyCQkJMjMKKyNkZWZpbmUgQ0xLX0lORlJBX1VBUlQzCQkJMjQKKyNkZWZpbmUgQ0xLX0lORlJBX0dDRV8yNk0JCTI1CisjZGVmaW5lIENMS19JTkZSQV9DUV9ETUFfRlBDCQkyNgorI2RlZmluZSBDTEtfSU5GUkFfQlRJRgkJCTI3CisjZGVmaW5lIENMS19JTkZSQV9TUEkwCQkJMjgKKyNkZWZpbmUgQ0xLX0lORlJBX01TREMwCQkJMjkKKyNkZWZpbmUgQ0xLX0lORlJBX01TREMxCQkJMzAKKyNkZWZpbmUgQ0xLX0lORlJBX01TREMyCQkJMzEKKyNkZWZpbmUgQ0xLX0lORlJBX01TREMwX1NDSwkJMzIKKyNkZWZpbmUgQ0xLX0lORlJBX0RWRlNSQwkJMzMKKyNkZWZpbmUgQ0xLX0lORlJBX0dDUFUJCQkzNAorI2RlZmluZSBDTEtfSU5GUkFfVFJORwkJCTM1CisjZGVmaW5lIENMS19JTkZSQV9BVVhBREMJCTM2CisjZGVmaW5lIENMS19JTkZSQV9DUFVNCQkJMzcKKyNkZWZpbmUgQ0xLX0lORlJBX0NDSUYxX0FQCQkzOAorI2RlZmluZSBDTEtfSU5GUkFfQ0NJRjFfTUQJCTM5CisjZGVmaW5lIENMS19JTkZSQV9BVVhBRENfTUQJCTQwCisjZGVmaW5lIENMS19JTkZSQV9NU0RDMV9TQ0sJCTQxCisjZGVmaW5lIENMS19JTkZSQV9NU0RDMl9TQ0sJCTQyCisjZGVmaW5lIENMS19JTkZSQV9BUF9ETUEJCTQzCisjZGVmaW5lIENMS19JTkZSQV9YSVUJCQk0NAorI2RlZmluZSBDTEtfSU5GUkFfREVWSUNFX0FQQwkJNDUKKyNkZWZpbmUgQ0xLX0lORlJBX0NDSUZfQVAJCTQ2CisjZGVmaW5lIENMS19JTkZSQV9ERUJVR1NZUwkJNDcKKyNkZWZpbmUgQ0xLX0lORlJBX0FVRAkJCTQ4CisjZGVmaW5lIENMS19JTkZSQV9DQ0lGX01ECQk0OQorI2RlZmluZSBDTEtfSU5GUkFfRFhDQ19TRUNfQ09SRQkJNTAKKyNkZWZpbmUgQ0xLX0lORlJBX0RYQ0NfQU8JCTUxCisjZGVmaW5lIENMS19JTkZSQV9EUkFNQ19GMjZNCQk1MgorI2RlZmluZSBDTEtfSU5GUkFfSVJUWAkJCTUzCisjZGVmaW5lIENMS19JTkZSQV9ESVNQX1BXTQkJNTQKKyNkZWZpbmUgQ0xLX0lORlJBX0RQTUFJRl9DSwkJNTUKKyNkZWZpbmUgQ0xLX0lORlJBX0FVRF8yNk1fQkNMSwkJNTYKKyNkZWZpbmUgQ0xLX0lORlJBX1NQSTEJCQk1NworI2RlZmluZSBDTEtfSU5GUkFfSTJDNAkJCTU4CisjZGVmaW5lIENMS19JTkZSQV9NT0RFTV9URU1QX1NIQVJFCTU5CisjZGVmaW5lIENMS19JTkZSQV9TUEkyCQkJNjAKKyNkZWZpbmUgQ0xLX0lORlJBX1NQSTMJCQk2MQorI2RlZmluZSBDTEtfSU5GUkFfVU5JUFJPX1NDSwkJNjIKKyNkZWZpbmUgQ0xLX0lORlJBX1VOSVBST19USUNLCQk2MworI2RlZmluZSBDTEtfSU5GUkFfVUZTX01QX1NBUF9CQ0xLCTY0CisjZGVmaW5lIENMS19JTkZSQV9NRDMyX0JDTEsJCTY1CisjZGVmaW5lIENMS19JTkZSQV9TU1BNCQkJNjYKKyNkZWZpbmUgQ0xLX0lORlJBX1VOSVBST19NQklTVAkJNjcKKyNkZWZpbmUgQ0xLX0lORlJBX1NTUE1fQlVTX0hDTEsJCTY4CisjZGVmaW5lIENMS19JTkZSQV9JMkM1CQkJNjkKKyNkZWZpbmUgQ0xLX0lORlJBX0kyQzVfQVJCSVRFUgkJNzAKKyNkZWZpbmUgQ0xLX0lORlJBX0kyQzVfSU1NCQk3MQorI2RlZmluZSBDTEtfSU5GUkFfSTJDMV9BUkJJVEVSCQk3MgorI2RlZmluZSBDTEtfSU5GUkFfSTJDMV9JTU0JCTczCisjZGVmaW5lIENMS19JTkZSQV9JMkMyX0FSQklURVIJCTc0CisjZGVmaW5lIENMS19JTkZSQV9JMkMyX0lNTQkJNzUKKyNkZWZpbmUgQ0xLX0lORlJBX1NQSTQJCQk3NgorI2RlZmluZSBDTEtfSU5GUkFfU1BJNQkJCTc3CisjZGVmaW5lIENMS19JTkZSQV9DUV9ETUEJCTc4CisjZGVmaW5lIENMS19JTkZSQV9VRlMJCQk3OQorI2RlZmluZSBDTEtfSU5GUkFfQUVTX1VGU0ZERQkJODAKKyNkZWZpbmUgQ0xLX0lORlJBX1VGU19USUNLCQk4MQorI2RlZmluZSBDTEtfSU5GUkFfTVNEQzBfU0VMRgkJODIKKyNkZWZpbmUgQ0xLX0lORlJBX01TREMxX1NFTEYJCTgzCisjZGVmaW5lIENMS19JTkZSQV9NU0RDMl9TRUxGCQk4NAorI2RlZmluZSBDTEtfSU5GUkFfU1NQTV8yNk1fU0VMRgkJODUKKyNkZWZpbmUgQ0xLX0lORlJBX1NTUE1fMzJLX1NFTEYJCTg2CisjZGVmaW5lIENMS19JTkZSQV9VRlNfQVhJCQk4NworI2RlZmluZSBDTEtfSU5GUkFfSTJDNgkJCTg4CisjZGVmaW5lIENMS19JTkZSQV9BUF9NU0RDMAkJODkKKyNkZWZpbmUgQ0xLX0lORlJBX01EX01TREMwCQk5MAorI2RlZmluZSBDTEtfSU5GUkFfVVNCCQkJOTEKKyNkZWZpbmUgQ0xLX0lORlJBX0RFVk1QVV9CQ0xLCQk5MgorI2RlZmluZSBDTEtfSU5GUkFfQ0NJRjJfQVAJCTkzCisjZGVmaW5lIENMS19JTkZSQV9DQ0lGMl9NRAkJOTQKKyNkZWZpbmUgQ0xLX0lORlJBX0NDSUYzX0FQCQk5NQorI2RlZmluZSBDTEtfSU5GUkFfQ0NJRjNfTUQJCTk2CisjZGVmaW5lIENMS19JTkZSQV9TRUpfRjEzTQkJOTcKKyNkZWZpbmUgQ0xLX0lORlJBX0FFU19CQ0xLCQk5OAorI2RlZmluZSBDTEtfSU5GUkFfSTJDNwkJCTk5CisjZGVmaW5lIENMS19JTkZSQV9JMkM4CQkJMTAwCisjZGVmaW5lIENMS19JTkZSQV9GQklTVDJGUEMJCTEwMQorI2RlZmluZSBDTEtfSU5GUkFfQ0NJRjRfQVAJCTEwMgorI2RlZmluZSBDTEtfSU5GUkFfQ0NJRjRfTUQJCTEwMworI2RlZmluZSBDTEtfSU5GUkFfRkFEU1AJCQkxMDQKKyNkZWZpbmUgQ0xLX0lORlJBX1NTVVNCX1hIQ0kJCTEwNQorI2RlZmluZSBDTEtfSU5GUkFfU1BJNgkJCTEwNgorI2RlZmluZSBDTEtfSU5GUkFfU1BJNwkJCTEwNworI2RlZmluZSBDTEtfSU5GUkFfTlJfQ0xLCQkxMDgKKworLyogTUZHQ0ZHICovCisjZGVmaW5lIENMS19NRkdDRkdfQkczRAkJCTEKKyNkZWZpbmUgQ0xLX01GR0NGR19OUl9DTEsJCTIKKworLyogSU1HICovCisjZGVmaW5lIENMS19JTUdfV1BFX0EJCQkxCisjZGVmaW5lIENMS19JTUdfTUZCCQkJMgorI2RlZmluZSBDTEtfSU1HX0RJUAkJCTMKKyNkZWZpbmUgQ0xLX0lNR19MQVJCNgkJCTQKKyNkZWZpbmUgQ0xLX0lNR19MQVJCNQkJCTUKKyNkZWZpbmUgQ0xLX0lNR19OUl9DTEsJCQk2CisKKy8qIElQRSAqLworI2RlZmluZSBDTEtfSVBFX0xBUkI3CQkJMQorI2RlZmluZSBDTEtfSVBFX0xBUkI4CQkJMgorI2RlZmluZSBDTEtfSVBFX1NNSV9TVUJDT00JCTMKKyNkZWZpbmUgQ0xLX0lQRV9GRAkJCTQKKyNkZWZpbmUgQ0xLX0lQRV9GRQkJCTUKKyNkZWZpbmUgQ0xLX0lQRV9SU0MJCQk2CisjZGVmaW5lIENMS19JUEVfRFBFCQkJNworI2RlZmluZSBDTEtfSVBFX05SX0NMSwkJCTgKKworLyogTU1fQ09ORklHICovCisjZGVmaW5lIENMS19NTV9TTUlfQ09NTU9OCQkxCisjZGVmaW5lIENMS19NTV9TTUlfTEFSQjAJCTIKKyNkZWZpbmUgQ0xLX01NX1NNSV9MQVJCMQkJMworI2RlZmluZSBDTEtfTU1fR0FMU19DT01NMAkJNAorI2RlZmluZSBDTEtfTU1fR0FMU19DT01NMQkJNQorI2RlZmluZSBDTEtfTU1fR0FMU19DQ1UyTU0JCTYKKyNkZWZpbmUgQ0xLX01NX0dBTFNfSVBVMTJNTQkJNworI2RlZmluZSBDTEtfTU1fR0FMU19JTUcyTU0JCTgKKyNkZWZpbmUgQ0xLX01NX0dBTFNfQ0FNMk1NCQk5CisjZGVmaW5lIENMS19NTV9HQUxTX0lQVTJNTQkJMTAKKyNkZWZpbmUgQ0xLX01NX01EUF9ETF9UWENLCQkxMQorI2RlZmluZSBDTEtfTU1fSVBVX0RMX1RYQ0sJCTEyCisjZGVmaW5lIENMS19NTV9NRFBfUkRNQTAJCTEzCisjZGVmaW5lIENMS19NTV9NRFBfUkRNQTEJCTE0CisjZGVmaW5lIENMS19NTV9NRFBfUlNaMAkJCTE1CisjZGVmaW5lIENMS19NTV9NRFBfUlNaMQkJCTE2CisjZGVmaW5lIENMS19NTV9NRFBfVERTSFAJCTE3CisjZGVmaW5lIENMS19NTV9NRFBfV1JPVDAJCTE4CisjZGVmaW5lIENMS19NTV9GQUtFX0VORwkJCTE5CisjZGVmaW5lIENMS19NTV9ESVNQX09WTDAJCTIwCisjZGVmaW5lIENMS19NTV9ESVNQX09WTDBfMkwJCTIxCisjZGVmaW5lIENMS19NTV9ESVNQX09WTDFfMkwJCTIyCisjZGVmaW5lIENMS19NTV9ESVNQX1JETUEwCQkyMworI2RlZmluZSBDTEtfTU1fRElTUF9SRE1BMQkJMjQKKyNkZWZpbmUgQ0xLX01NX0RJU1BfV0RNQTAJCTI1CisjZGVmaW5lIENMS19NTV9ESVNQX0NPTE9SMAkJMjYKKyNkZWZpbmUgQ0xLX01NX0RJU1BfQ0NPUlIwCQkyNworI2RlZmluZSBDTEtfTU1fRElTUF9BQUwwCQkyOAorI2RlZmluZSBDTEtfTU1fRElTUF9HQU1NQTAJCTI5CisjZGVmaW5lIENMS19NTV9ESVNQX0RJVEhFUjAJCTMwCisjZGVmaW5lIENMS19NTV9ESVNQX1NQTElUCQkzMQorI2RlZmluZSBDTEtfTU1fRFNJMF9NTV9DSwkJMzIKKyNkZWZpbmUgQ0xLX01NX0RTSTBfSUZfQ0sJCTMzCisjZGVmaW5lIENMS19NTV9EUElfTU1fQ0sJCTM0CisjZGVmaW5lIENMS19NTV9EUElfSUZfQ0sJCTM1CisjZGVmaW5lIENMS19NTV9GQUtFX0VORzIJCTM2CisjZGVmaW5lIENMS19NTV9NRFBfRExfUlhfQ0sJCTM3CisjZGVmaW5lIENMS19NTV9JUFVfRExfUlhfQ0sJCTM4CisjZGVmaW5lIENMS19NTV8yNk0JCQkzOQorI2RlZmluZSBDTEtfTU1fTU1fUjJZCQkJNDAKKyNkZWZpbmUgQ0xLX01NX0RJU1BfUlNaCQkJNDEKKyNkZWZpbmUgQ0xLX01NX01EUF9XRE1BMAkJNDIKKyNkZWZpbmUgQ0xLX01NX01EUF9BQUwJCQk0MworI2RlZmluZSBDTEtfTU1fTURQX0hEUgkJCTQ0CisjZGVmaW5lIENMS19NTV9EQklfTU1fQ0sJCTQ1CisjZGVmaW5lIENMS19NTV9EQklfSUZfQ0sJCTQ2CisjZGVmaW5lIENMS19NTV9NRFBfV1JPVDEJCTQ3CisjZGVmaW5lIENMS19NTV9ESVNQX1BPU1RNQVNLMAkJNDgKKyNkZWZpbmUgQ0xLX01NX0RJU1BfSFJUX0JXCQk0OQorI2RlZmluZSBDTEtfTU1fRElTUF9PVkxfRkJEQwkJNTAKKyNkZWZpbmUgQ0xLX01NX05SX0NMSwkJCTUxCisKKy8qIFZERUNfR0NPTiAqLworI2RlZmluZSBDTEtfVkRFQ19WREVDCQkJMQorI2RlZmluZSBDTEtfVkRFQ19MQVJCMQkJCTIKKyNkZWZpbmUgQ0xLX1ZERUNfR0NPTl9OUl9DTEsJCTMKKworLyogVkVOQ19HQ09OICovCisjZGVmaW5lIENMS19WRU5DX0dDT05fTEFSQgkJMQorI2RlZmluZSBDTEtfVkVOQ19HQ09OX1ZFTkMJCTIKKyNkZWZpbmUgQ0xLX1ZFTkNfR0NPTl9KUEdFTkMJCTMKKyNkZWZpbmUgQ0xLX1ZFTkNfR0NPTl9HQUxTCQk0CisjZGVmaW5lIENMS19WRU5DX0dDT05fTlJfQ0xLCQk1CisKKy8qIEFVRCAqLworI2RlZmluZSBDTEtfQVVEX0FGRQkJCTEKKyNkZWZpbmUgQ0xLX0FVRF8yMk0JCQkyCisjZGVmaW5lIENMS19BVURfMjRNCQkJMworI2RlZmluZSBDTEtfQVVEX0FQTEwyX1RVTkVSCQk0CisjZGVmaW5lIENMS19BVURfQVBMTF9UVU5FUgkJNQorI2RlZmluZSBDTEtfQVVEX1RETQkJCTYKKyNkZWZpbmUgQ0xLX0FVRF9BREMJCQk3CisjZGVmaW5lIENMS19BVURfREFDCQkJOAorI2RlZmluZSBDTEtfQVVEX0RBQ19QUkVESVMJCTkKKyNkZWZpbmUgQ0xLX0FVRF9UTUwJCQkxMAorI2RlZmluZSBDTEtfQVVEX05MRQkJCTExCisjZGVmaW5lIENMS19BVURfSTJTMV9CQ0xLX1NXCQkxMgorI2RlZmluZSBDTEtfQVVEX0kyUzJfQkNMS19TVwkJMTMKKyNkZWZpbmUgQ0xLX0FVRF9JMlMzX0JDTEtfU1cJCTE0CisjZGVmaW5lIENMS19BVURfSTJTNF9CQ0xLX1NXCQkxNQorI2RlZmluZSBDTEtfQVVEX0kyUzVfQkNMS19TVwkJMTYKKyNkZWZpbmUgQ0xLX0FVRF9DT05OX0kyU19BU1JDCQkxNworI2RlZmluZSBDTEtfQVVEX0dFTkVSQUwxX0FTUkMJCTE4CisjZGVmaW5lIENMS19BVURfR0VORVJBTDJfQVNSQwkJMTkKKyNkZWZpbmUgQ0xLX0FVRF9EQUNfSElSRVMJCTIwCisjZGVmaW5lIENMS19BVURfUEROX0FEREE2X0FEQwkJMjEKKyNkZWZpbmUgQ0xLX0FVRF9BRENfSElSRVMJCTIyCisjZGVmaW5lIENMS19BVURfQURDX0hJUkVTX1RNTAkJMjMKKyNkZWZpbmUgQ0xLX0FVRF9BRERBNl9BRENfSElSRVMJCTI0CisjZGVmaW5lIENMS19BVURfM1JEX0RBQwkJCTI1CisjZGVmaW5lIENMS19BVURfM1JEX0RBQ19QUkVESVMJCTI2CisjZGVmaW5lIENMS19BVURfM1JEX0RBQ19UTUwJCTI3CisjZGVmaW5lIENMS19BVURfM1JEX0RBQ19ISVJFUwkJMjgKKyNkZWZpbmUgQ0xLX0FVRF9OUl9DTEsJCQkyOQorCisjZW5kaWYgLyogX0RUX0JJTkRJTkdTX0NMS19NVDY3NzlfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9tdDgxODMtY2xrLmggYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL210ODE4My1jbGsuaAppbmRleCAwMDQ2NTA2Li5hN2I0NzBiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL210ODE4My1jbGsuaAorKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL210ODE4My1jbGsuaApAQCAtMjg0LDYgKzI4NCwxMCBAQAogI2RlZmluZSBDTEtfSU5GUkFfRkJJU1QyRlBDCQkxMDAKICNkZWZpbmUgQ0xLX0lORlJBX05SX0NMSwkJMTAxCiAKKy8qIFBFUklDRkcgKi8KKyNkZWZpbmUgQ0xLX1BFUklfQVhJCQkJMAorI2RlZmluZSBDTEtfUEVSSV9OUl9DTEsJCQkxCisKIC8qIE1GR0NGRyAqLwogI2RlZmluZSBDTEtfTUZHX0JHM0QJCQkwCiAjZGVmaW5lIENMS19NRkdfTlJfQ0xLCQkJMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9vbWFwNS5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9vbWFwNS5oCmluZGV4IGYzMjgzOTUuLmU1NDExOTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svb21hcDUuaAorKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL29tYXA1LmgKQEAgLTg5LDYgKzg5LDkgQEAKIC8qIGRzcyBjbG9ja3MgKi8KICNkZWZpbmUgT01BUDVfRFNTX0NPUkVfQ0xLQ1RSTAlPTUFQNV9DTEtDVFJMX0lOREVYKDB4MjApCiAKKy8qIGdwdSBjbG9ja3MgKi8KKyNkZWZpbmUgT01BUDVfR1BVX0NMS0NUUkwJT01BUDVfQ0xLQ1RSTF9JTkRFWCgweDIwKQorCiAvKiBsM2luaXQgY2xvY2tzICovCiAjZGVmaW5lIE9NQVA1X01NQzFfQ0xLQ1RSTAlPTUFQNV9DTEtDVFJMX0lOREVYKDB4MjgpCiAjZGVmaW5lIE9NQVA1X01NQzJfQ0xLQ1RSTAlPTUFQNV9DTEtDVFJMX0lOREVYKDB4MzApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3Fjb20sZ2NjLXFjczQwNC5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9xY29tLGdjYy1xY3M0MDQuaAppbmRleCAyY2Q2MmM5Li5iYzMwNTE1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3Fjb20sZ2NjLXFjczQwNC5oCisrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svcWNvbSxnY2MtcWNzNDA0LmgKQEAgLTE0Niw2ICsxNDYsOCBAQAogI2RlZmluZSBHQ0NfTURQX1RCVV9DTEsJCQkJCTEzOAogI2RlZmluZSBHQ0NfUURTU19EQVBfQ0xLCQkJCTEzOQogI2RlZmluZSBHQ0NfRENDX1hPX0NMSwkJCQkJMTQwCisjZGVmaW5lIEdDQ19XQ1NTX1E2X0FIQl9DTEsJCQkJMTQxCisjZGVmaW5lIEdDQ19XQ1NTX1E2X0FYSU1fQ0xLCQkJCTE0MgogI2RlZmluZSBHQ0NfQ0RTUF9DRkdfQUhCX0NMSwkJCQkxNDMKICNkZWZpbmUgR0NDX0JJTUNfQ0RTUF9DTEsJCQkJMTQ0CiAjZGVmaW5lIEdDQ19DRFNQX1RCVV9DTEsJCQkJMTQ1CkBAIC0xNzMsNSArMTc1LDYgQEAKICNkZWZpbmUgR0NDX1BDSUVfMF9DT1JFX1NUSUNLWV9BUkVTCQkJMTkKICNkZWZpbmUgR0NDX1BDSUVfMF9TTEVFUF9BUkVTCQkJCTIwCiAjZGVmaW5lIEdDQ19QQ0lFXzBfUElQRV9BUkVTCQkJCTIxCisjZGVmaW5lIEdDQ19XRFNQX1JFU1RBUlQJCQkJMjIKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3Fjb20sZ2NjLXNtODE1MC5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9xY29tLGdjYy1zbTgxNTAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGQ2MGVmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9xY29tLGdjYy1zbTgxNTAuaApAQCAtMCwwICsxLDI0MyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTksIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICovCisKKyNpZm5kZWYgX0RUX0JJTkRJTkdTX0NMS19RQ09NX0dDQ19TTTgxNTBfSAorI2RlZmluZSBfRFRfQklORElOR1NfQ0xLX1FDT01fR0NDX1NNODE1MF9ICisKKy8qIEdDQyBjbG9ja3MgKi8KKyNkZWZpbmUgR0NDX0FHR1JFX05PQ19QQ0lFX1RCVV9DTEsJCQkJMAorI2RlZmluZSBHQ0NfQUdHUkVfVUZTX0NBUkRfQVhJX0NMSwkJCQkxCisjZGVmaW5lIEdDQ19BR0dSRV9VRlNfQ0FSRF9BWElfSFdfQ1RMX0NMSwkJCTIKKyNkZWZpbmUgR0NDX0FHR1JFX1VGU19QSFlfQVhJX0NMSwkJCQkzCisjZGVmaW5lIEdDQ19BR0dSRV9VRlNfUEhZX0FYSV9IV19DVExfQ0xLCQkJNAorI2RlZmluZSBHQ0NfQUdHUkVfVVNCM19QUklNX0FYSV9DTEsJCQkJNQorI2RlZmluZSBHQ0NfQUdHUkVfVVNCM19TRUNfQVhJX0NMSwkJCQk2CisjZGVmaW5lIEdDQ19CT09UX1JPTV9BSEJfQ0xLCQkJCQk3CisjZGVmaW5lIEdDQ19DQU1FUkFfQUhCX0NMSwkJCQkJOAorI2RlZmluZSBHQ0NfQ0FNRVJBX0hGX0FYSV9DTEsJCQkJCTkKKyNkZWZpbmUgR0NDX0NBTUVSQV9TRl9BWElfQ0xLCQkJCQkxMAorI2RlZmluZSBHQ0NfQ0FNRVJBX1hPX0NMSwkJCQkJMTEKKyNkZWZpbmUgR0NDX0NGR19OT0NfVVNCM19QUklNX0FYSV9DTEsJCQkJMTIKKyNkZWZpbmUgR0NDX0NGR19OT0NfVVNCM19TRUNfQVhJX0NMSwkJCQkxMworI2RlZmluZSBHQ0NfQ1BVU1NfQUhCX0NMSwkJCQkJMTQKKyNkZWZpbmUgR0NDX0NQVVNTX0FIQl9DTEtfU1JDCQkJCQkxNQorI2RlZmluZSBHQ0NfQ1BVU1NfRFZNX0JVU19DTEsJCQkJCTE2CisjZGVmaW5lIEdDQ19DUFVTU19HTk9DX0NMSwkJCQkJMTcKKyNkZWZpbmUgR0NDX0NQVVNTX1JCQ1BSX0NMSwkJCQkJMTgKKyNkZWZpbmUgR0NDX0REUlNTX0dQVV9BWElfQ0xLCQkJCQkxOQorI2RlZmluZSBHQ0NfRElTUF9BSEJfQ0xLCQkJCQkyMAorI2RlZmluZSBHQ0NfRElTUF9IRl9BWElfQ0xLCQkJCQkyMQorI2RlZmluZSBHQ0NfRElTUF9TRl9BWElfQ0xLCQkJCQkyMgorI2RlZmluZSBHQ0NfRElTUF9YT19DTEsJCQkJCQkyMworI2RlZmluZSBHQ0NfRU1BQ19BWElfQ0xLCQkJCQkyNAorI2RlZmluZSBHQ0NfRU1BQ19QVFBfQ0xLCQkJCQkyNQorI2RlZmluZSBHQ0NfRU1BQ19QVFBfQ0xLX1NSQwkJCQkJMjYKKyNkZWZpbmUgR0NDX0VNQUNfUkdNSUlfQ0xLCQkJCQkyNworI2RlZmluZSBHQ0NfRU1BQ19SR01JSV9DTEtfU1JDCQkJCQkyOAorI2RlZmluZSBHQ0NfRU1BQ19TTFZfQUhCX0NMSwkJCQkJMjkKKyNkZWZpbmUgR0NDX0dQMV9DTEsJCQkJCQkzMAorI2RlZmluZSBHQ0NfR1AxX0NMS19TUkMJCQkJCQkzMQorI2RlZmluZSBHQ0NfR1AyX0NMSwkJCQkJCTMyCisjZGVmaW5lIEdDQ19HUDJfQ0xLX1NSQwkJCQkJCTMzCisjZGVmaW5lIEdDQ19HUDNfQ0xLCQkJCQkJMzQKKyNkZWZpbmUgR0NDX0dQM19DTEtfU1JDCQkJCQkJMzUKKyNkZWZpbmUgR0NDX0dQVV9DRkdfQUhCX0NMSwkJCQkJMzYKKyNkZWZpbmUgR0NDX0dQVV9HUExMMF9DTEtfU1JDCQkJCQkzNworI2RlZmluZSBHQ0NfR1BVX0dQTEwwX0RJVl9DTEtfU1JDCQkJCTM4CisjZGVmaW5lIEdDQ19HUFVfSVJFRl9DTEsJCQkJCTM5CisjZGVmaW5lIEdDQ19HUFVfTUVNTk9DX0dGWF9DTEsJCQkJCTQwCisjZGVmaW5lIEdDQ19HUFVfU05PQ19EVk1fR0ZYX0NMSwkJCQk0MQorI2RlZmluZSBHQ0NfTlBVX0FUX0NMSwkJCQkJCTQyCisjZGVmaW5lIEdDQ19OUFVfQVhJX0NMSwkJCQkJCTQzCisjZGVmaW5lIEdDQ19OUFVfQ0ZHX0FIQl9DTEsJCQkJCTQ0CisjZGVmaW5lIEdDQ19OUFVfR1BMTDBfQ0xLX1NSQwkJCQkJNDUKKyNkZWZpbmUgR0NDX05QVV9HUExMMF9ESVZfQ0xLX1NSQwkJCQk0NgorI2RlZmluZSBHQ0NfTlBVX1RSSUdfQ0xLCQkJCQk0NworI2RlZmluZSBHQ0NfUENJRTBfUEhZX1JFRkdFTl9DTEsJCQkJNDgKKyNkZWZpbmUgR0NDX1BDSUUxX1BIWV9SRUZHRU5fQ0xLCQkJCTQ5CisjZGVmaW5lIEdDQ19QQ0lFXzBfQVVYX0NMSwkJCQkJNTAKKyNkZWZpbmUgR0NDX1BDSUVfMF9BVVhfQ0xLX1NSQwkJCQkJNTEKKyNkZWZpbmUgR0NDX1BDSUVfMF9DRkdfQUhCX0NMSwkJCQkJNTIKKyNkZWZpbmUgR0NDX1BDSUVfMF9DTEtSRUZfQ0xLCQkJCQk1MworI2RlZmluZSBHQ0NfUENJRV8wX01TVFJfQVhJX0NMSwkJCQkJNTQKKyNkZWZpbmUgR0NDX1BDSUVfMF9QSVBFX0NMSwkJCQkJNTUKKyNkZWZpbmUgR0NDX1BDSUVfMF9TTFZfQVhJX0NMSwkJCQkJNTYKKyNkZWZpbmUgR0NDX1BDSUVfMF9TTFZfUTJBX0FYSV9DTEsJCQkJNTcKKyNkZWZpbmUgR0NDX1BDSUVfMV9BVVhfQ0xLCQkJCQk1OAorI2RlZmluZSBHQ0NfUENJRV8xX0FVWF9DTEtfU1JDCQkJCQk1OQorI2RlZmluZSBHQ0NfUENJRV8xX0NGR19BSEJfQ0xLCQkJCQk2MAorI2RlZmluZSBHQ0NfUENJRV8xX0NMS1JFRl9DTEsJCQkJCTYxCisjZGVmaW5lIEdDQ19QQ0lFXzFfTVNUUl9BWElfQ0xLCQkJCQk2MgorI2RlZmluZSBHQ0NfUENJRV8xX1BJUEVfQ0xLCQkJCQk2MworI2RlZmluZSBHQ0NfUENJRV8xX1NMVl9BWElfQ0xLCQkJCQk2NAorI2RlZmluZSBHQ0NfUENJRV8xX1NMVl9RMkFfQVhJX0NMSwkJCQk2NQorI2RlZmluZSBHQ0NfUENJRV9QSFlfQVVYX0NMSwkJCQkJNjYKKyNkZWZpbmUgR0NDX1BDSUVfUEhZX1JFRkdFTl9DTEtfU1JDCQkJCTY3CisjZGVmaW5lIEdDQ19QRE0yX0NMSwkJCQkJCTY4CisjZGVmaW5lIEdDQ19QRE0yX0NMS19TUkMJCQkJCTY5CisjZGVmaW5lIEdDQ19QRE1fQUhCX0NMSwkJCQkJCTcwCisjZGVmaW5lIEdDQ19QRE1fWE80X0NMSwkJCQkJCTcxCisjZGVmaW5lIEdDQ19QUk5HX0FIQl9DTEsJCQkJCTcyCisjZGVmaW5lIEdDQ19RTUlQX0NBTUVSQV9OUlRfQUhCX0NMSwkJCQk3MworI2RlZmluZSBHQ0NfUU1JUF9DQU1FUkFfUlRfQUhCX0NMSwkJCQk3NAorI2RlZmluZSBHQ0NfUU1JUF9ESVNQX0FIQl9DTEsJCQkJCTc1CisjZGVmaW5lIEdDQ19RTUlQX1ZJREVPX0NWUF9BSEJfQ0xLCQkJCTc2CisjZGVmaW5lIEdDQ19RTUlQX1ZJREVPX1ZDT0RFQ19BSEJfQ0xLCQkJCTc3CisjZGVmaW5lIEdDQ19RU1BJX0NOT0NfUEVSSVBIX0FIQl9DTEsJCQkJNzgKKyNkZWZpbmUgR0NDX1FTUElfQ09SRV9DTEsJCQkJCTc5CisjZGVmaW5lIEdDQ19RU1BJX0NPUkVfQ0xLX1NSQwkJCQkJODAKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1MwX0NMSwkJCQkJODEKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1MwX0NMS19TUkMJCQkJODIKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1MxX0NMSwkJCQkJODMKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1MxX0NMS19TUkMJCQkJODQKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1MyX0NMSwkJCQkJODUKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1MyX0NMS19TUkMJCQkJODYKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1MzX0NMSwkJCQkJODcKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1MzX0NMS19TUkMJCQkJODgKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1M0X0NMSwkJCQkJODkKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1M0X0NMS19TUkMJCQkJOTAKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1M1X0NMSwkJCQkJOTEKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1M1X0NMS19TUkMJCQkJOTIKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1M2X0NMSwkJCQkJOTMKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1M2X0NMS19TUkMJCQkJOTQKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1M3X0NMSwkJCQkJOTUKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAwX1M3X0NMS19TUkMJCQkJOTYKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAxX1MwX0NMSwkJCQkJOTcKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAxX1MwX0NMS19TUkMJCQkJOTgKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAxX1MxX0NMSwkJCQkJOTkKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAxX1MxX0NMS19TUkMJCQkJMTAwCisjZGVmaW5lIEdDQ19RVVBWM19XUkFQMV9TMl9DTEsJCQkJCTEwMQorI2RlZmluZSBHQ0NfUVVQVjNfV1JBUDFfUzJfQ0xLX1NSQwkJCQkxMDIKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAxX1MzX0NMSwkJCQkJMTAzCisjZGVmaW5lIEdDQ19RVVBWM19XUkFQMV9TM19DTEtfU1JDCQkJCTEwNAorI2RlZmluZSBHQ0NfUVVQVjNfV1JBUDFfUzRfQ0xLCQkJCQkxMDUKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAxX1M0X0NMS19TUkMJCQkJMTA2CisjZGVmaW5lIEdDQ19RVVBWM19XUkFQMV9TNV9DTEsJCQkJCTEwNworI2RlZmluZSBHQ0NfUVVQVjNfV1JBUDFfUzVfQ0xLX1NSQwkJCQkxMDgKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAyX1MwX0NMSwkJCQkJMTA5CisjZGVmaW5lIEdDQ19RVVBWM19XUkFQMl9TMF9DTEtfU1JDCQkJCTExMAorI2RlZmluZSBHQ0NfUVVQVjNfV1JBUDJfUzFfQ0xLCQkJCQkxMTEKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAyX1MxX0NMS19TUkMJCQkJMTEyCisjZGVmaW5lIEdDQ19RVVBWM19XUkFQMl9TMl9DTEsJCQkJCTExMworI2RlZmluZSBHQ0NfUVVQVjNfV1JBUDJfUzJfQ0xLX1NSQwkJCQkxMTQKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAyX1MzX0NMSwkJCQkJMTE1CisjZGVmaW5lIEdDQ19RVVBWM19XUkFQMl9TM19DTEtfU1JDCQkJCTExNgorI2RlZmluZSBHQ0NfUVVQVjNfV1JBUDJfUzRfQ0xLCQkJCQkxMTcKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVAyX1M0X0NMS19TUkMJCQkJMTE4CisjZGVmaW5lIEdDQ19RVVBWM19XUkFQMl9TNV9DTEsJCQkJCTExOQorI2RlZmluZSBHQ0NfUVVQVjNfV1JBUDJfUzVfQ0xLX1NSQwkJCQkxMjAKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVBfMF9NX0FIQl9DTEsJCQkJMTIxCisjZGVmaW5lIEdDQ19RVVBWM19XUkFQXzBfU19BSEJfQ0xLCQkJCTEyMgorI2RlZmluZSBHQ0NfUVVQVjNfV1JBUF8xX01fQUhCX0NMSwkJCQkxMjMKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVBfMV9TX0FIQl9DTEsJCQkJMTI0CisjZGVmaW5lIEdDQ19RVVBWM19XUkFQXzJfTV9BSEJfQ0xLCQkJCTEyNQorI2RlZmluZSBHQ0NfUVVQVjNfV1JBUF8yX1NfQUhCX0NMSwkJCQkxMjYKKyNkZWZpbmUgR0NDX1NEQ0MyX0FIQl9DTEsJCQkJCTEyNworI2RlZmluZSBHQ0NfU0RDQzJfQVBQU19DTEsJCQkJCTEyOAorI2RlZmluZSBHQ0NfU0RDQzJfQVBQU19DTEtfU1JDCQkJCQkxMjkKKyNkZWZpbmUgR0NDX1NEQ0M0X0FIQl9DTEsJCQkJCTEzMAorI2RlZmluZSBHQ0NfU0RDQzRfQVBQU19DTEsJCQkJCTEzMQorI2RlZmluZSBHQ0NfU0RDQzRfQVBQU19DTEtfU1JDCQkJCQkxMzIKKyNkZWZpbmUgR0NDX1NZU19OT0NfQ1BVU1NfQUhCX0NMSwkJCQkxMzMKKyNkZWZpbmUgR0NDX1RTSUZfQUhCX0NMSwkJCQkJMTM0CisjZGVmaW5lIEdDQ19UU0lGX0lOQUNUSVZJVFlfVElNRVJTX0NMSwkJCQkxMzUKKyNkZWZpbmUgR0NDX1RTSUZfUkVGX0NMSwkJCQkJMTM2CisjZGVmaW5lIEdDQ19UU0lGX1JFRl9DTEtfU1JDCQkJCQkxMzcKKyNkZWZpbmUgR0NDX1VGU19DQVJEX0FIQl9DTEsJCQkJCTEzOAorI2RlZmluZSBHQ0NfVUZTX0NBUkRfQVhJX0NMSwkJCQkJMTM5CisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9BWElfQ0xLX1NSQwkJCQkxNDAKKyNkZWZpbmUgR0NDX1VGU19DQVJEX0FYSV9IV19DVExfQ0xLCQkJCTE0MQorI2RlZmluZSBHQ0NfVUZTX0NBUkRfQ0xLUkVGX0NMSwkJCQkJMTQyCisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9JQ0VfQ09SRV9DTEsJCQkJMTQzCisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9JQ0VfQ09SRV9DTEtfU1JDCQkJCTE0NAorI2RlZmluZSBHQ0NfVUZTX0NBUkRfSUNFX0NPUkVfSFdfQ1RMX0NMSwkJCTE0NQorI2RlZmluZSBHQ0NfVUZTX0NBUkRfUEhZX0FVWF9DTEsJCQkJMTQ2CisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9QSFlfQVVYX0NMS19TUkMJCQkJMTQ3CisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9QSFlfQVVYX0hXX0NUTF9DTEsJCQkJMTQ4CisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9SWF9TWU1CT0xfMF9DTEsJCQkJMTQ5CisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9SWF9TWU1CT0xfMV9DTEsJCQkJMTUwCisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9UWF9TWU1CT0xfMF9DTEsJCQkJMTUxCisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9VTklQUk9fQ09SRV9DTEsJCQkJMTUyCisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9VTklQUk9fQ09SRV9DTEtfU1JDCQkJMTUzCisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9VTklQUk9fQ09SRV9IV19DVExfQ0xLCQkJMTU0CisjZGVmaW5lIEdDQ19VRlNfTUVNX0NMS1JFRl9DTEsJCQkJCTE1NQorI2RlZmluZSBHQ0NfVUZTX1BIWV9BSEJfQ0xLCQkJCQkxNTYKKyNkZWZpbmUgR0NDX1VGU19QSFlfQVhJX0NMSwkJCQkJMTU3CisjZGVmaW5lIEdDQ19VRlNfUEhZX0FYSV9DTEtfU1JDCQkJCQkxNTgKKyNkZWZpbmUgR0NDX1VGU19QSFlfQVhJX0hXX0NUTF9DTEsJCQkJMTU5CisjZGVmaW5lIEdDQ19VRlNfUEhZX0lDRV9DT1JFX0NMSwkJCQkxNjAKKyNkZWZpbmUgR0NDX1VGU19QSFlfSUNFX0NPUkVfQ0xLX1NSQwkJCQkxNjEKKyNkZWZpbmUgR0NDX1VGU19QSFlfSUNFX0NPUkVfSFdfQ1RMX0NMSwkJCQkxNjIKKyNkZWZpbmUgR0NDX1VGU19QSFlfUEhZX0FVWF9DTEsJCQkJCTE2MworI2RlZmluZSBHQ0NfVUZTX1BIWV9QSFlfQVVYX0NMS19TUkMJCQkJMTY0CisjZGVmaW5lIEdDQ19VRlNfUEhZX1BIWV9BVVhfSFdfQ1RMX0NMSwkJCQkxNjUKKyNkZWZpbmUgR0NDX1VGU19QSFlfUlhfU1lNQk9MXzBfQ0xLCQkJCTE2NgorI2RlZmluZSBHQ0NfVUZTX1BIWV9SWF9TWU1CT0xfMV9DTEsJCQkJMTY3CisjZGVmaW5lIEdDQ19VRlNfUEhZX1RYX1NZTUJPTF8wX0NMSwkJCQkxNjgKKyNkZWZpbmUgR0NDX1VGU19QSFlfVU5JUFJPX0NPUkVfQ0xLCQkJCTE2OQorI2RlZmluZSBHQ0NfVUZTX1BIWV9VTklQUk9fQ09SRV9DTEtfU1JDCQkJCTE3MAorI2RlZmluZSBHQ0NfVUZTX1BIWV9VTklQUk9fQ09SRV9IV19DVExfQ0xLCQkJMTcxCisjZGVmaW5lIEdDQ19VU0IzMF9QUklNX01BU1RFUl9DTEsJCQkJMTcyCisjZGVmaW5lIEdDQ19VU0IzMF9QUklNX01BU1RFUl9DTEtfU1JDCQkJCTE3MworI2RlZmluZSBHQ0NfVVNCMzBfUFJJTV9NT0NLX1VUTUlfQ0xLCQkJCTE3NAorI2RlZmluZSBHQ0NfVVNCMzBfUFJJTV9NT0NLX1VUTUlfQ0xLX1NSQwkJCTE3NQorI2RlZmluZSBHQ0NfVVNCMzBfUFJJTV9TTEVFUF9DTEsJCQkJMTc2CisjZGVmaW5lIEdDQ19VU0IzMF9TRUNfTUFTVEVSX0NMSwkJCQkxNzcKKyNkZWZpbmUgR0NDX1VTQjMwX1NFQ19NQVNURVJfQ0xLX1NSQwkJCQkxNzgKKyNkZWZpbmUgR0NDX1VTQjMwX1NFQ19NT0NLX1VUTUlfQ0xLCQkJCTE3OQorI2RlZmluZSBHQ0NfVVNCMzBfU0VDX01PQ0tfVVRNSV9DTEtfU1JDCQkJCTE4MAorI2RlZmluZSBHQ0NfVVNCMzBfU0VDX1NMRUVQX0NMSwkJCQkJMTgxCisjZGVmaW5lIEdDQ19VU0IzX1BSSU1fQ0xLUkVGX0NMSwkJCQkxODIKKyNkZWZpbmUgR0NDX1VTQjNfUFJJTV9QSFlfQVVYX0NMSwkJCQkxODMKKyNkZWZpbmUgR0NDX1VTQjNfUFJJTV9QSFlfQVVYX0NMS19TUkMJCQkJMTg0CisjZGVmaW5lIEdDQ19VU0IzX1BSSU1fUEhZX0NPTV9BVVhfQ0xLCQkJCTE4NQorI2RlZmluZSBHQ0NfVVNCM19QUklNX1BIWV9QSVBFX0NMSwkJCQkxODYKKyNkZWZpbmUgR0NDX1VTQjNfU0VDX0NMS1JFRl9DTEsJCQkJCTE4NworI2RlZmluZSBHQ0NfVVNCM19TRUNfUEhZX0FVWF9DTEsJCQkJMTg4CisjZGVmaW5lIEdDQ19VU0IzX1NFQ19QSFlfQVVYX0NMS19TUkMJCQkJMTg5CisjZGVmaW5lIEdDQ19VU0IzX1NFQ19QSFlfQ09NX0FVWF9DTEsJCQkJMTkwCisjZGVmaW5lIEdDQ19VU0IzX1NFQ19QSFlfUElQRV9DTEsJCQkJMTkxCisjZGVmaW5lIEdDQ19WSURFT19BSEJfQ0xLCQkJCQkxOTIKKyNkZWZpbmUgR0NDX1ZJREVPX0FYSTBfQ0xLCQkJCQkxOTMKKyNkZWZpbmUgR0NDX1ZJREVPX0FYSTFfQ0xLCQkJCQkxOTQKKyNkZWZpbmUgR0NDX1ZJREVPX0FYSUNfQ0xLCQkJCQkxOTUKKyNkZWZpbmUgR0NDX1ZJREVPX1hPX0NMSwkJCQkJMTk2CisjZGVmaW5lIEdQTEwwCQkJCQkJCTE5NworI2RlZmluZSBHUExMMF9PVVRfRVZFTgkJCQkJCTE5OAorI2RlZmluZSBHUExMNwkJCQkJCQkxOTkKKyNkZWZpbmUgR1BMTDkJCQkJCQkJMjAwCisKKy8qIFJlc2V0IGNsb2NrcyAqLworI2RlZmluZSBHQ0NfRU1BQ19CQ1IJCQkJCQkwCisjZGVmaW5lIEdDQ19HUFVfQkNSCQkJCQkJMQorI2RlZmluZSBHQ0NfTU1TU19CQ1IJCQkJCQkyCisjZGVmaW5lIEdDQ19OUFVfQkNSCQkJCQkJMworI2RlZmluZSBHQ0NfUENJRV8wX0JDUgkJCQkJCTQKKyNkZWZpbmUgR0NDX1BDSUVfMF9QSFlfQkNSCQkJCQk1CisjZGVmaW5lIEdDQ19QQ0lFXzFfQkNSCQkJCQkJNgorI2RlZmluZSBHQ0NfUENJRV8xX1BIWV9CQ1IJCQkJCTcKKyNkZWZpbmUgR0NDX1BDSUVfUEhZX0JDUgkJCQkJOAorI2RlZmluZSBHQ0NfUERNX0JDUgkJCQkJCTkKKyNkZWZpbmUgR0NDX1BSTkdfQkNSCQkJCQkJMTAKKyNkZWZpbmUgR0NDX1FTUElfQkNSCQkJCQkJMTEKKyNkZWZpbmUgR0NDX1FVUFYzX1dSQVBQRVJfMF9CQ1IJCQkJCTEyCisjZGVmaW5lIEdDQ19RVVBWM19XUkFQUEVSXzFfQkNSCQkJCQkxMworI2RlZmluZSBHQ0NfUVVQVjNfV1JBUFBFUl8yX0JDUgkJCQkJMTQKKyNkZWZpbmUgR0NDX1FVU0IyUEhZX1BSSU1fQkNSCQkJCQkxNQorI2RlZmluZSBHQ0NfUVVTQjJQSFlfU0VDX0JDUgkJCQkJMTYKKyNkZWZpbmUgR0NDX1VTQjNfUEhZX1BSSU1fQkNSCQkJCQkxNworI2RlZmluZSBHQ0NfVVNCM19EUF9QSFlfUFJJTV9CQ1IJCQkJMTgKKyNkZWZpbmUgR0NDX1VTQjNfUEhZX1NFQ19CQ1IJCQkJCTE5CisjZGVmaW5lIEdDQ19VU0IzUEhZX1BIWV9TRUNfQkNSCQkJCQkyMAorI2RlZmluZSBHQ0NfU0RDQzJfQkNSCQkJCQkJMjEKKyNkZWZpbmUgR0NDX1NEQ0M0X0JDUgkJCQkJCTIyCisjZGVmaW5lIEdDQ19UU0lGX0JDUgkJCQkJCTIzCisjZGVmaW5lIEdDQ19VRlNfQ0FSRF9CQ1IJCQkJCTI0CisjZGVmaW5lIEdDQ19VRlNfUEhZX0JDUgkJCQkJCTI1CisjZGVmaW5lIEdDQ19VU0IzMF9QUklNX0JDUgkJCQkJMjYKKyNkZWZpbmUgR0NDX1VTQjMwX1NFQ19CQ1IJCQkJCTI3CisjZGVmaW5lIEdDQ19VU0JfUEhZX0NGR19BSEIyUEhZX0JDUgkJCQkyOAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svcmszMzA4LWNydS5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9yazMzMDgtY3J1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk3ODQwZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svcmszMzA4LWNydS5oCkBAIC0wLDAgKzEsMzg3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBSb2NrY2hpcCBFbGVjdHJvbmljcyBDby4gTHRkLgorICogQXV0aG9yOiBGaW5sZXkgWGlhbyA8ZmlubGV5LnhpYW9Acm9jay1jaGlwcy5jb20+CisgKi8KKworI2lmbmRlZiBfRFRfQklORElOR1NfQ0xLX1JPQ0tDSElQX1JLMzMwOF9ICisjZGVmaW5lIF9EVF9CSU5ESU5HU19DTEtfUk9DS0NISVBfUkszMzA4X0gKKworLyogY29yZSBjbG9ja3MgKi8KKyNkZWZpbmUgUExMX0FQTEwJCTEKKyNkZWZpbmUgUExMX0RQTEwJCTIKKyNkZWZpbmUgUExMX1ZQTEwwCQkzCisjZGVmaW5lIFBMTF9WUExMMQkJNAorI2RlZmluZSBBUk1DTEsJCQk1CisKKy8qIHNjbGsgKHNwZWNpYWwgY2xvY2tzKSAqLworI2RlZmluZSBVU0I0ODBNCQkJMTQKKyNkZWZpbmUgU0NMS19SVEMzMksJCTE1CisjZGVmaW5lIFNDTEtfUFZUTV9DT1JFCQkxNgorI2RlZmluZSBTQ0xLX1VBUlQwCQkxNworI2RlZmluZSBTQ0xLX1VBUlQxCQkxOAorI2RlZmluZSBTQ0xLX1VBUlQyCQkxOQorI2RlZmluZSBTQ0xLX1VBUlQzCQkyMAorI2RlZmluZSBTQ0xLX1VBUlQ0CQkyMQorI2RlZmluZSBTQ0xLX0kyQzAJCTIyCisjZGVmaW5lIFNDTEtfSTJDMQkJMjMKKyNkZWZpbmUgU0NMS19JMkMyCQkyNAorI2RlZmluZSBTQ0xLX0kyQzMJCTI1CisjZGVmaW5lIFNDTEtfUFdNMAkJMjYKKyNkZWZpbmUgU0NMS19TUEkwCQkyNworI2RlZmluZSBTQ0xLX1NQSTEJCTI4CisjZGVmaW5lIFNDTEtfU1BJMgkJMjkKKyNkZWZpbmUgU0NMS19USU1FUjAJCTMwCisjZGVmaW5lIFNDTEtfVElNRVIxCQkzMQorI2RlZmluZSBTQ0xLX1RJTUVSMgkJMzIKKyNkZWZpbmUgU0NMS19USU1FUjMJCTMzCisjZGVmaW5lIFNDTEtfVElNRVI0CQkzNAorI2RlZmluZSBTQ0xLX1RJTUVSNQkJMzUKKyNkZWZpbmUgU0NMS19UU0FEQwkJMzYKKyNkZWZpbmUgU0NMS19TQVJBREMJCTM3CisjZGVmaW5lIFNDTEtfT1RQCQkzOAorI2RlZmluZSBTQ0xLX09UUF9VU1IJCTM5CisjZGVmaW5lIFNDTEtfQ1BVX0JPT1NUCQk0MAorI2RlZmluZSBTQ0xLX0NSWVBUTwkJNDEKKyNkZWZpbmUgU0NMS19DUllQVE9fQVBLCQk0MgorI2RlZmluZSBTQ0xLX05BTkRDX0RJVgkJNDMKKyNkZWZpbmUgU0NMS19OQU5EQ19ESVY1MAk0NAorI2RlZmluZSBTQ0xLX05BTkRDCQk0NQorI2RlZmluZSBTQ0xLX1NETU1DX0RJVgkJNDYKKyNkZWZpbmUgU0NMS19TRE1NQ19ESVY1MAk0NworI2RlZmluZSBTQ0xLX1NETU1DCQk0OAorI2RlZmluZSBTQ0xLX1NETU1DX0RSVgkJNDkKKyNkZWZpbmUgU0NMS19TRE1NQ19TQU1QTEUJNTAKKyNkZWZpbmUgU0NMS19TRElPX0RJVgkJNTEKKyNkZWZpbmUgU0NMS19TRElPX0RJVjUwCQk1MgorI2RlZmluZSBTQ0xLX1NESU8JCTUzCisjZGVmaW5lIFNDTEtfU0RJT19EUlYJCTU0CisjZGVmaW5lIFNDTEtfU0RJT19TQU1QTEUJNTUKKyNkZWZpbmUgU0NMS19FTU1DX0RJVgkJNTYKKyNkZWZpbmUgU0NMS19FTU1DX0RJVjUwCQk1NworI2RlZmluZSBTQ0xLX0VNTUMJCTU4CisjZGVmaW5lIFNDTEtfRU1NQ19EUlYJCTU5CisjZGVmaW5lIFNDTEtfRU1NQ19TQU1QTEUJNjAKKyNkZWZpbmUgU0NMS19TRkMJCTYxCisjZGVmaW5lIFNDTEtfT1RHX0FEUAkJNjIKKyNkZWZpbmUgU0NMS19NQUNfU1JDCQk2MworI2RlZmluZSBTQ0xLX01BQwkJNjQKKyNkZWZpbmUgU0NMS19NQUNfUkVGCQk2NQorI2RlZmluZSBTQ0xLX01BQ19SWF9UWAkJNjYKKyNkZWZpbmUgU0NMS19NQUNfUk1JSQkJNjcKKyNkZWZpbmUgU0NMS19ERFJfTU9OX1RJTUVSCTY4CisjZGVmaW5lIFNDTEtfRERSX01PTgkJNjkKKyNkZWZpbmUgU0NMS19ERFJDTEsJCTcwCisjZGVmaW5lIFNDTEtfUE1VCQk3MQorI2RlZmluZSBTQ0xLX1VTQlBIWV9SRUYJCTcyCisjZGVmaW5lIFNDTEtfV0lGSQkJNzMKKyNkZWZpbmUgU0NMS19QVlRNX1BNVQkJNzQKKyNkZWZpbmUgU0NMS19QRE0JCTc1CisjZGVmaW5lIFNDTEtfSTJTMF84Q0hfVFgJNzYKKyNkZWZpbmUgU0NMS19JMlMwXzhDSF9UWF9PVVQJNzcKKyNkZWZpbmUgU0NMS19JMlMwXzhDSF9SWAk3OAorI2RlZmluZSBTQ0xLX0kyUzBfOENIX1JYX09VVAk3OQorI2RlZmluZSBTQ0xLX0kyUzFfOENIX1RYCTgwCisjZGVmaW5lIFNDTEtfSTJTMV84Q0hfVFhfT1VUCTgxCisjZGVmaW5lIFNDTEtfSTJTMV84Q0hfUlgJODIKKyNkZWZpbmUgU0NMS19JMlMxXzhDSF9SWF9PVVQJODMKKyNkZWZpbmUgU0NMS19JMlMyXzhDSF9UWAk4NAorI2RlZmluZSBTQ0xLX0kyUzJfOENIX1RYX09VVAk4NQorI2RlZmluZSBTQ0xLX0kyUzJfOENIX1JYCTg2CisjZGVmaW5lIFNDTEtfSTJTMl84Q0hfUlhfT1VUCTg3CisjZGVmaW5lIFNDTEtfSTJTM184Q0hfVFgJODgKKyNkZWZpbmUgU0NMS19JMlMzXzhDSF9UWF9PVVQJODkKKyNkZWZpbmUgU0NMS19JMlMzXzhDSF9SWAk5MAorI2RlZmluZSBTQ0xLX0kyUzNfOENIX1JYX09VVAk5MQorI2RlZmluZSBTQ0xLX0kyUzBfMkNICQk5MgorI2RlZmluZSBTQ0xLX0kyUzBfMkNIX09VVAk5MworI2RlZmluZSBTQ0xLX0kyUzFfMkNICQk5NAorI2RlZmluZSBTQ0xLX0kyUzFfMkNIX09VVAk5NQorI2RlZmluZSBTQ0xLX1NQRElGX1RYX0RJVgk5NgorI2RlZmluZSBTQ0xLX1NQRElGX1RYX0RJVjUwCTk3CisjZGVmaW5lIFNDTEtfU1BESUZfVFgJCTk4CisjZGVmaW5lIFNDTEtfU1BESUZfUlhfRElWCTk5CisjZGVmaW5lIFNDTEtfU1BESUZfUlhfRElWNTAJMTAwCisjZGVmaW5lIFNDTEtfU1BESUZfUlgJCTEwMQorI2RlZmluZSBTQ0xLX0kyUzBfOENIX1RYX01VWAkxMDIKKyNkZWZpbmUgU0NMS19JMlMwXzhDSF9SWF9NVVgJMTAzCisjZGVmaW5lIFNDTEtfSTJTMV84Q0hfVFhfTVVYCTEwNAorI2RlZmluZSBTQ0xLX0kyUzFfOENIX1JYX01VWAkxMDUKKyNkZWZpbmUgU0NMS19JMlMyXzhDSF9UWF9NVVgJMTA2CisjZGVmaW5lIFNDTEtfSTJTMl84Q0hfUlhfTVVYCTEwNworI2RlZmluZSBTQ0xLX0kyUzNfOENIX1RYX01VWAkxMDgKKyNkZWZpbmUgU0NMS19JMlMzXzhDSF9SWF9NVVgJMTA5CisjZGVmaW5lIFNDTEtfSTJTMF84Q0hfVFhfU1JDCTExMAorI2RlZmluZSBTQ0xLX0kyUzBfOENIX1JYX1NSQwkxMTEKKyNkZWZpbmUgU0NMS19JMlMxXzhDSF9UWF9TUkMJMTEyCisjZGVmaW5lIFNDTEtfSTJTMV84Q0hfUlhfU1JDCTExMworI2RlZmluZSBTQ0xLX0kyUzJfOENIX1RYX1NSQwkxMTQKKyNkZWZpbmUgU0NMS19JMlMyXzhDSF9SWF9TUkMJMTE1CisjZGVmaW5lIFNDTEtfSTJTM184Q0hfVFhfU1JDCTExNgorI2RlZmluZSBTQ0xLX0kyUzNfOENIX1JYX1NSQwkxMTcKKyNkZWZpbmUgU0NMS19JMlMwXzJDSF9TUkMJMTE4CisjZGVmaW5lIFNDTEtfSTJTMV8yQ0hfU1JDCTExOQorI2RlZmluZSBTQ0xLX1BXTTEJCTEyMAorI2RlZmluZSBTQ0xLX1BXTTIJCTEyMQorI2RlZmluZSBTQ0xLX09XSVJFCQkxMjIKKworLyogZGNsayAqLworI2RlZmluZSBEQ0xLX1ZPUAkJMTI1CisKKy8qIGFjbGsgKi8KKyNkZWZpbmUgQUNMS19CVVNfU1JDCQkxMzAKKyNkZWZpbmUgQUNMS19CVVMJCTEzMQorI2RlZmluZSBBQ0xLX1BFUklfU1JDCQkxMzIKKyNkZWZpbmUgQUNMS19QRVJJCQkxMzMKKyNkZWZpbmUgQUNMS19NQUMJCTEzNAorI2RlZmluZSBBQ0xLX0NSWVBUTwkJMTM1CisjZGVmaW5lIEFDTEtfVk9QCQkxMzYKKyNkZWZpbmUgQUNMS19HSUMJCTEzNworI2RlZmluZSBBQ0xLX0RNQUMwCQkxMzgKKyNkZWZpbmUgQUNMS19ETUFDMQkJMTM5CisKKy8qIGhjbGsgKi8KKyNkZWZpbmUgSENMS19CVVMJCTE1MAorI2RlZmluZSBIQ0xLX1BFUkkJCTE1MQorI2RlZmluZSBIQ0xLX0FVRElPCQkxNTIKKyNkZWZpbmUgSENMS19OQU5EQwkJMTUzCisjZGVmaW5lIEhDTEtfU0RNTUMJCTE1NAorI2RlZmluZSBIQ0xLX1NESU8JCTE1NQorI2RlZmluZSBIQ0xLX0VNTUMJCTE1NgorI2RlZmluZSBIQ0xLX1NGQwkJMTU3CisjZGVmaW5lIEhDTEtfT1RHCQkxNTgKKyNkZWZpbmUgSENMS19IT1NUCQkxNTkKKyNkZWZpbmUgSENMS19IT1NUX0FSQgkJMTYwCisjZGVmaW5lIEhDTEtfUERNCQkxNjEKKyNkZWZpbmUgSENMS19TUERJRlRYCQkxNjIKKyNkZWZpbmUgSENMS19TUERJRlJYCQkxNjMKKyNkZWZpbmUgSENMS19JMlMwXzhDSAkJMTY0CisjZGVmaW5lIEhDTEtfSTJTMV84Q0gJCTE2NQorI2RlZmluZSBIQ0xLX0kyUzJfOENICQkxNjYKKyNkZWZpbmUgSENMS19JMlMzXzhDSAkJMTY3CisjZGVmaW5lIEhDTEtfSTJTMF8yQ0gJCTE2OAorI2RlZmluZSBIQ0xLX0kyUzFfMkNICQkxNjkKKyNkZWZpbmUgSENMS19WQUQJCTE3MAorI2RlZmluZSBIQ0xLX0NSWVBUTwkJMTcxCisjZGVmaW5lIEhDTEtfVk9QCQkxNzIKKworLyogcGNsayAqLworI2RlZmluZSBQQ0xLX0JVUwkJMTkwCisjZGVmaW5lIFBDTEtfRERSCQkxOTEKKyNkZWZpbmUgUENMS19QRVJJCQkxOTIKKyNkZWZpbmUgUENMS19QTVUJCTE5MworI2RlZmluZSBQQ0xLX0FVRElPCQkxOTQKKyNkZWZpbmUgUENMS19NQUMJCTE5NQorI2RlZmluZSBQQ0xLX0FDT0RFQwkJMTk2CisjZGVmaW5lIFBDTEtfVUFSVDAJCTE5NworI2RlZmluZSBQQ0xLX1VBUlQxCQkxOTgKKyNkZWZpbmUgUENMS19VQVJUMgkJMTk5CisjZGVmaW5lIFBDTEtfVUFSVDMJCTIwMAorI2RlZmluZSBQQ0xLX1VBUlQ0CQkyMDEKKyNkZWZpbmUgUENMS19JMkMwCQkyMDIKKyNkZWZpbmUgUENMS19JMkMxCQkyMDMKKyNkZWZpbmUgUENMS19JMkMyCQkyMDQKKyNkZWZpbmUgUENMS19JMkMzCQkyMDUKKyNkZWZpbmUgUENMS19QV00wCQkyMDYKKyNkZWZpbmUgUENMS19TUEkwCQkyMDcKKyNkZWZpbmUgUENMS19TUEkxCQkyMDgKKyNkZWZpbmUgUENMS19TUEkyCQkyMDkKKyNkZWZpbmUgUENMS19TQVJBREMJCTIxMAorI2RlZmluZSBQQ0xLX1RTQURDCQkyMTEKKyNkZWZpbmUgUENMS19USU1FUgkJMjEyCisjZGVmaW5lIFBDTEtfT1RQX05TCQkyMTMKKyNkZWZpbmUgUENMS19XRFQJCTIxNAorI2RlZmluZSBQQ0xLX0dQSU8wCQkyMTUKKyNkZWZpbmUgUENMS19HUElPMQkJMjE2CisjZGVmaW5lIFBDTEtfR1BJTzIJCTIxNworI2RlZmluZSBQQ0xLX0dQSU8zCQkyMTgKKyNkZWZpbmUgUENMS19HUElPNAkJMjE5CisjZGVmaW5lIFBDTEtfU0dSRgkJMjIwCisjZGVmaW5lIFBDTEtfR1JGCQkyMjEKKyNkZWZpbmUgUENMS19VU0JTRF9ERVQJCTIyMgorI2RlZmluZSBQQ0xLX0REUl9VUENUTAkJMjIzCisjZGVmaW5lIFBDTEtfRERSX01PTgkJMjI0CisjZGVmaW5lIFBDTEtfRERSUEhZCQkyMjUKKyNkZWZpbmUgUENMS19ERFJfU1REQlkJCTIyNgorI2RlZmluZSBQQ0xLX1VTQl9HUkYJCTIyNworI2RlZmluZSBQQ0xLX0NSVQkJMjI4CisjZGVmaW5lIFBDTEtfT1RQX1BIWQkJMjI5CisjZGVmaW5lIFBDTEtfQ1BVX0JPT1NUCQkyMzAKKyNkZWZpbmUgUENMS19QV00xCQkyMzEKKyNkZWZpbmUgUENMS19QV00yCQkyMzIKKyNkZWZpbmUgUENMS19DQU4JCTIzMworI2RlZmluZSBQQ0xLX09XSVJFCQkyMzQKKworI2RlZmluZSBDTEtfTlJfQ0xLUwkJKFBDTEtfT1dJUkUgKyAxKQorCisvKiBzb2Z0LXJlc2V0IGluZGljZXMgKi8KKworLyogY3J1X3NvZnRyc3RfY29uMCAqLworI2RlZmluZSBTUlNUX0NPUkUwX1BPCQkwCisjZGVmaW5lIFNSU1RfQ09SRTFfUE8JCTEKKyNkZWZpbmUgU1JTVF9DT1JFMl9QTwkJMgorI2RlZmluZSBTUlNUX0NPUkUzX1BPCQkzCisjZGVmaW5lIFNSU1RfQ09SRTAJCTQKKyNkZWZpbmUgU1JTVF9DT1JFMQkJNQorI2RlZmluZSBTUlNUX0NPUkUyCQk2CisjZGVmaW5lIFNSU1RfQ09SRTMJCTcKKyNkZWZpbmUgU1JTVF9DT1JFMF9EQkcJCTgKKyNkZWZpbmUgU1JTVF9DT1JFMV9EQkcJCTkKKyNkZWZpbmUgU1JTVF9DT1JFMl9EQkcJCTEwCisjZGVmaW5lIFNSU1RfQ09SRTNfREJHCQkxMQorI2RlZmluZSBTUlNUX1RPUERCRwkJMTIKKyNkZWZpbmUgU1JTVF9DT1JFX05PQwkJMTMKKyNkZWZpbmUgU1JTVF9TVFJDX0EJCTE0CisjZGVmaW5lIFNSU1RfTDJDCQkxNQorCisvKiBjcnVfc29mdHJzdF9jb24xICovCisjZGVmaW5lIFNSU1RfREFQCQkxNgorI2RlZmluZSBTUlNUX0NPUkVfUFZUTQkJMTcKKyNkZWZpbmUgU1JTVF9DT1JFX1BSRgkJMTgKKyNkZWZpbmUgU1JTVF9DT1JFX0dSRgkJMTkKKyNkZWZpbmUgU1JTVF9ERFJVUENUTAkJMjAKKyNkZWZpbmUgU1JTVF9ERFJVUENUTF9QCQkyMgorI2RlZmluZSBTUlNUX01TQ0gJCTIzCisjZGVmaW5lIFNSU1RfRERSTU9OX1AJCTI1CisjZGVmaW5lIFNSU1RfRERSU1REQllfUAkJMjYKKyNkZWZpbmUgU1JTVF9ERFJTVERCWQkJMjcKKyNkZWZpbmUgU1JTVF9ERFJQSFkJCTI4CisjZGVmaW5lIFNSU1RfRERSUEhZX0RJVgkJMjkKKyNkZWZpbmUgU1JTVF9ERFJQSFlfUAkJMzAKKworLyogY3J1X3NvZnRyc3RfY29uMiAqLworI2RlZmluZSBTUlNUX0JVU19OSVVfSAkJMzIKKyNkZWZpbmUgU1JTVF9VU0JfTklVX1AJCTMzCisjZGVmaW5lIFNSU1RfQ1JZUFRPX0EJCTM0CisjZGVmaW5lIFNSU1RfQ1JZUFRPX0gJCTM1CisjZGVmaW5lIFNSU1RfQ1JZUFRPCQkzNgorI2RlZmluZSBTUlNUX0NSWVBUT19BUEsJCTM3CisjZGVmaW5lIFNSU1RfVk9QX0EJCTM4CisjZGVmaW5lIFNSU1RfVk9QX0gJCTM5CisjZGVmaW5lIFNSU1RfVk9QX0QJCTQwCisjZGVmaW5lIFNSU1RfSU5UTUVNX0EJCTQxCisjZGVmaW5lIFNSU1RfUk9NX0gJCTQyCisjZGVmaW5lIFNSU1RfR0lDX0EJCTQzCisjZGVmaW5lIFNSU1RfVUFSVDBfUAkJNDQKKyNkZWZpbmUgU1JTVF9VQVJUMAkJNDUKKyNkZWZpbmUgU1JTVF9VQVJUMV9QCQk0NgorI2RlZmluZSBTUlNUX1VBUlQxCQk0NworCisvKiBjcnVfc29mdHJzdF9jb24zICovCisjZGVmaW5lIFNSU1RfVUFSVDJfUAkJNDgKKyNkZWZpbmUgU1JTVF9VQVJUMgkJNDkKKyNkZWZpbmUgU1JTVF9VQVJUM19QCQk1MAorI2RlZmluZSBTUlNUX1VBUlQzCQk1MQorI2RlZmluZSBTUlNUX1VBUlQ0X1AJCTUyCisjZGVmaW5lIFNSU1RfVUFSVDQJCTUzCisjZGVmaW5lIFNSU1RfSTJDMF9QCQk1NAorI2RlZmluZSBTUlNUX0kyQzAJCTU1CisjZGVmaW5lIFNSU1RfSTJDMV9QCQk1NgorI2RlZmluZSBTUlNUX0kyQzEJCTU3CisjZGVmaW5lIFNSU1RfSTJDMl9QCQk1OAorI2RlZmluZSBTUlNUX0kyQzIJCTU5CisjZGVmaW5lIFNSU1RfSTJDM19QCQk2MAorI2RlZmluZSBTUlNUX0kyQzMJCTYxCisjZGVmaW5lIFNSU1RfUFdNMF9QCQk2MgorI2RlZmluZSBTUlNUX1BXTTAJCTYzCisKKy8qIGNydV9zb2Z0cnN0X2NvbjQgKi8KKyNkZWZpbmUgU1JTVF9TUEkwX1AJCTY0CisjZGVmaW5lIFNSU1RfU1BJMAkJNjUKKyNkZWZpbmUgU1JTVF9TUEkxX1AJCTY2CisjZGVmaW5lIFNSU1RfU1BJMQkJNjcKKyNkZWZpbmUgU1JTVF9TUEkyX1AJCTY4CisjZGVmaW5lIFNSU1RfU1BJMgkJNjkKKyNkZWZpbmUgU1JTVF9TQVJBRENfUAkJNzAKKyNkZWZpbmUgU1JTVF9UU0FEQ19QCQk3MQorI2RlZmluZSBTUlNUX1RTQURDCQk3MgorI2RlZmluZSBTUlNUX1RJTUVSMF9QCQk3MworI2RlZmluZSBTUlNUX1RJTUVSMAkJNzQKKyNkZWZpbmUgU1JTVF9USU1FUjEJCTc1CisjZGVmaW5lIFNSU1RfVElNRVIyCQk3NgorI2RlZmluZSBTUlNUX1RJTUVSMwkJNzcKKyNkZWZpbmUgU1JTVF9USU1FUjQJCTc4CisjZGVmaW5lIFNSU1RfVElNRVI1CQk3OQorCisvKiBjcnVfc29mdHJzdF9jb241ICovCisjZGVmaW5lIFNSU1RfT1RQX05TX1AJCTgwCisjZGVmaW5lIFNSU1RfT1RQX05TX1NCUEkJODEKKyNkZWZpbmUgU1JTVF9PVFBfTlNfVVNSCQk4MgorI2RlZmluZSBTUlNUX09UUF9QSFlfUAkJODMKKyNkZWZpbmUgU1JTVF9PVFBfUEhZCQk4NAorI2RlZmluZSBTUlNUX0dQSU8wX1AJCTg2CisjZGVmaW5lIFNSU1RfR1BJTzFfUAkJODcKKyNkZWZpbmUgU1JTVF9HUElPMl9QCQk4OAorI2RlZmluZSBTUlNUX0dQSU8zX1AJCTg5CisjZGVmaW5lIFNSU1RfR1BJTzRfUAkJOTAKKyNkZWZpbmUgU1JTVF9HUkZfUAkJOTEKKyNkZWZpbmUgU1JTVF9VU0JTRF9ERVRfUAk5MgorI2RlZmluZSBTUlNUX1BNVQkJOTMKKyNkZWZpbmUgU1JTVF9QTVVfUFZUTQkJOTQKKyNkZWZpbmUgU1JTVF9VU0JfR1JGX1AJCTk1CisKKy8qIGNydV9zb2Z0cnN0X2NvbjYgKi8KKyNkZWZpbmUgU1JTVF9DUFVfQk9PU1QJCTk2CisjZGVmaW5lIFNSU1RfQ1BVX0JPT1NUX1AJOTcKKyNkZWZpbmUgU1JTVF9QV00xX1AJCTk4CisjZGVmaW5lIFNSU1RfUFdNMQkJOTkKKyNkZWZpbmUgU1JTVF9QV00yX1AJCTEwMAorI2RlZmluZSBTUlNUX1BXTTIJCTEwMQorI2RlZmluZSBTUlNUX1BFUklfTklVX0EJCTEwNAorI2RlZmluZSBTUlNUX1BFUklfTklVX0gJCTEwNQorI2RlZmluZSBTUlNUX1BFUklfTklVX3AJCTEwNgorI2RlZmluZSBTUlNUX1VTQjJPVEdfSAkJMTA3CisjZGVmaW5lIFNSU1RfVVNCMk9URwkJMTA4CisjZGVmaW5lIFNSU1RfVVNCMk9UR19BRFAJMTA5CisjZGVmaW5lIFNSU1RfVVNCMkhPU1RfSAkJMTEwCisjZGVmaW5lIFNSU1RfVVNCMkhPU1RfQVJCX0gJMTExCisKKy8qIGNydV9zb2Z0cnN0X2NvbjcgKi8KKyNkZWZpbmUgU1JTVF9VU0IySE9TVF9BVVhfSAkxMTIKKyNkZWZpbmUgU1JTVF9VU0IySE9TVF9FSENJCTExMworI2RlZmluZSBTUlNUX1VTQjJIT1NUCQkxMTQKKyNkZWZpbmUgU1JTVF9VU0JQSFlQT1IJCTExNQorI2RlZmluZSBTUlNUX1VUTUkwCQkxMTYKKyNkZWZpbmUgU1JTVF9VVE1JMQkJMTE3CisjZGVmaW5lIFNSU1RfU0RJT19ICQkxMTgKKyNkZWZpbmUgU1JTVF9FTU1DX0gJCTExOQorI2RlZmluZSBTUlNUX1NGQ19ICQkxMjAKKyNkZWZpbmUgU1JTVF9TRkMJCTEyMQorI2RlZmluZSBTUlNUX1NEX0gJCTEyMgorI2RlZmluZSBTUlNUX05BTkRDX0gJCTEyMworI2RlZmluZSBTUlNUX05BTkRDX04JCTEyNAorI2RlZmluZSBTUlNUX01BQ19BCQkxMjUKKyNkZWZpbmUgU1JTVF9DQU5fUAkJMTI2CisjZGVmaW5lIFNSU1RfT1dJUkVfUAkJMTI3CisKKy8qIGNydV9zb2Z0cnN0X2NvbjggKi8KKyNkZWZpbmUgU1JTVF9BVURJT19OSVVfSAkxMjgKKyNkZWZpbmUgU1JTVF9BVURJT19OSVVfUAkxMjkKKyNkZWZpbmUgU1JTVF9QRE1fSAkJMTMwCisjZGVmaW5lIFNSU1RfUERNX00JCTEzMQorI2RlZmluZSBTUlNUX1NQRElGVFhfSAkJMTMyCisjZGVmaW5lIFNSU1RfU1BESUZUWF9NCQkxMzMKKyNkZWZpbmUgU1JTVF9TUERJRlJYX0gJCTEzNAorI2RlZmluZSBTUlNUX1NQRElGUlhfTQkJMTM1CisjZGVmaW5lIFNSU1RfSTJTMF84Q0hfSAkJMTM2CisjZGVmaW5lIFNSU1RfSTJTMF84Q0hfVFhfTQkxMzcKKyNkZWZpbmUgU1JTVF9JMlMwXzhDSF9SWF9NCTEzOAorI2RlZmluZSBTUlNUX0kyUzFfOENIX0gJCTEzOQorI2RlZmluZSBTUlNUX0kyUzFfOENIX1RYX00JMTQwCisjZGVmaW5lIFNSU1RfSTJTMV84Q0hfUlhfTQkxNDEKKyNkZWZpbmUgU1JTVF9JMlMyXzhDSF9ICQkxNDIKKyNkZWZpbmUgU1JTVF9JMlMyXzhDSF9UWF9NCTE0MworCisvKiBjcnVfc29mdHJzdF9jb245ICovCisjZGVmaW5lIFNSU1RfSTJTMl84Q0hfUlhfTQkxNDQKKyNkZWZpbmUgU1JTVF9JMlMzXzhDSF9ICQkxNDUKKyNkZWZpbmUgU1JTVF9JMlMzXzhDSF9UWF9NCTE0NgorI2RlZmluZSBTUlNUX0kyUzNfOENIX1JYX00JMTQ3CisjZGVmaW5lIFNSU1RfSTJTMF8yQ0hfSAkJMTQ4CisjZGVmaW5lIFNSU1RfSTJTMF8yQ0hfTQkJMTQ5CisjZGVmaW5lIFNSU1RfSTJTMV8yQ0hfSAkJMTUwCisjZGVmaW5lIFNSU1RfSTJTMV8yQ0hfTQkJMTUxCisjZGVmaW5lIFNSU1RfVkFEX0gJCTE1MgorI2RlZmluZSBTUlNUX0FDT0RFQ19QCQkxNTMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N1bjhpLXYzcy1jY3UuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3VuOGktdjNzLWNjdS5oCmluZGV4IGMwZDVkNTUuLjAxNGFjNjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3VuOGktdjNzLWNjdS5oCisrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3VuOGktdjNzLWNjdS5oCkBAIC0xMDQsNCArMTA0LDggQEAKIAogI2RlZmluZSBDTEtfTUlQSV9DU0kJCTczCiAKKy8qIENsb2NrcyBub3QgYXZhaWxhYmxlIG9uIFYzcyAqLworI2RlZmluZSBDTEtfQlVTX0kyUzAJCTc1CisjZGVmaW5lIENMS19JMlMwCQk3NgorCiAjZW5kaWYgLyogX0RUX0JJTkRJTkdTX0NMS19TVU44SV9WM1NfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvZ2NlL210ODE4My1nY2UuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvZ2NlL210ODE4My1nY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWM5Njc0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9nY2UvbXQ4MTgzLWdjZS5oCkBAIC0wLDAgKzEsMTc1IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBNZWRpYVRlayBJbmMuCisgKiBBdXRob3I6IEJpYmJ5IEhzaWVoIDxiaWJieS5oc2llaEBtZWRpYXRlay5jb20+CisgKgorICovCisKKyNpZm5kZWYgX0RUX0JJTkRJTkdTX0dDRV9NVDgxODNfSAorI2RlZmluZSBfRFRfQklORElOR1NfR0NFX01UODE4M19ICisKKyNkZWZpbmUgQ01EUV9OT19USU1FT1VUCQkweGZmZmZmZmZmCisKKy8qIEdDRSBIVyB0aHJlYWQgcHJpb3JpdHkgKi8KKyNkZWZpbmUgQ01EUV9USFJfUFJJT19MT1dFU1QJMAorI2RlZmluZSBDTURRX1RIUl9QUklPX0hJR0hFU1QJMQorCisvKiBHQ0UgU1VCU1lTICovCisjZGVmaW5lIFNVQlNZU18xMzAwWFhYWAkJMAorI2RlZmluZSBTVUJTWVNfMTQwMFhYWFgJCTEKKyNkZWZpbmUgU1VCU1lTXzE0MDFYWFhYCQkyCisjZGVmaW5lIFNVQlNZU18xNDAyWFhYWAkJMworI2RlZmluZSBTVUJTWVNfMTUwMlhYWFgJCTQKKyNkZWZpbmUgU1VCU1lTXzE4ODBYWFhYCQk1CisjZGVmaW5lIFNVQlNZU18xODgxWFhYWAkJNgorI2RlZmluZSBTVUJTWVNfMTg4MlhYWFgJCTcKKyNkZWZpbmUgU1VCU1lTXzE4ODNYWFhYCQk4CisjZGVmaW5lIFNVQlNZU18xODg0WFhYWAkJOQorI2RlZmluZSBTVUJTWVNfMTAwMFhYWFgJCTEwCisjZGVmaW5lIFNVQlNZU18xMDAxWFhYWAkJMTEKKyNkZWZpbmUgU1VCU1lTXzEwMDJYWFhYCQkxMgorI2RlZmluZSBTVUJTWVNfMTAwM1hYWFgJCTEzCisjZGVmaW5lIFNVQlNZU18xMDA0WFhYWAkJMTQKKyNkZWZpbmUgU1VCU1lTXzEwMDVYWFhYCQkxNQorI2RlZmluZSBTVUJTWVNfMTAyMFhYWFgJCTE2CisjZGVmaW5lIFNVQlNZU18xMDI4WFhYWAkJMTcKKyNkZWZpbmUgU1VCU1lTXzE3MDBYWFhYCQkxOAorI2RlZmluZSBTVUJTWVNfMTcwMVhYWFgJCTE5CisjZGVmaW5lIFNVQlNZU18xNzAyWFhYWAkJMjAKKyNkZWZpbmUgU1VCU1lTXzE3MDNYWFhYCQkyMQorI2RlZmluZSBTVUJTWVNfMTgwMFhYWFgJCTIyCisjZGVmaW5lIFNVQlNZU18xODAxWFhYWAkJMjMKKyNkZWZpbmUgU1VCU1lTXzE4MDJYWFhYCQkyNAorI2RlZmluZSBTVUJTWVNfMTgwNFhYWFgJCTI1CisjZGVmaW5lIFNVQlNZU18xODA1WFhYWAkJMjYKKyNkZWZpbmUgU1VCU1lTXzE4MDhYWFhYCQkyNworI2RlZmluZSBTVUJTWVNfMTgwYVhYWFgJCTI4CisjZGVmaW5lIFNVQlNZU18xODBiWFhYWAkJMjkKKworI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfUkRNQTBfU09GCQkJCQkwCisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9SRE1BMV9TT0YJCQkJCTEKKyNkZWZpbmUgQ01EUV9FVkVOVF9NRFBfUkRNQTBfU09GCQkJCQkyCisjZGVmaW5lIENNRFFfRVZFTlRfTURQX1JTWjBfU09GCQkJCQkJNAorI2RlZmluZSBDTURRX0VWRU5UX01EUF9SU1oxX1NPRgkJCQkJCTUKKyNkZWZpbmUgQ01EUV9FVkVOVF9NRFBfVERTSFBfU09GCQkJCQk2CisjZGVmaW5lIENNRFFfRVZFTlRfTURQX1dST1QwX1NPRgkJCQkJNworI2RlZmluZSBDTURRX0VWRU5UX01EUF9XRE1BMF9TT0YJCQkJCTgKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX09WTDBfU09GCQkJCQk5CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9PVkwwXzJMX1NPRgkJCQkJMTAKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX09WTDFfMkxfU09GCQkJCQkxMQorI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfV0RNQTBfU09GCQkJCQkxMgorI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfQ09MT1IwX1NPRgkJCQkJMTMKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX0NDT1JSMF9TT0YJCQkJCTE0CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9BQUwwX1NPRgkJCQkJMTUKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX0dBTU1BMF9TT0YJCQkJCTE2CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9ESVRIRVIwX1NPRgkJCQkJMTcKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX1BXTTBfU09GCQkJCQkxOAorI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfRFNJMF9TT0YJCQkJCTE5CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9EUEkwX1NPRgkJCQkJMjAKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX1JTWl9TT0YJCQkJCQkyMgorI2RlZmluZSBDTURRX0VWRU5UX01EUF9BQUxfU09GCQkJCQkJMjMKKyNkZWZpbmUgQ01EUV9FVkVOVF9NRFBfQ0NPUlJfU09GCQkJCQkyNAorI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfREJJX1NPRgkJCQkJCTI1CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9SRE1BMF9FT0YJCQkJCTI2CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9SRE1BMV9FT0YJCQkJCTI3CisjZGVmaW5lIENNRFFfRVZFTlRfTURQX1JETUEwX0VPRgkJCQkJMjgKKyNkZWZpbmUgQ01EUV9FVkVOVF9NRFBfUlNaMF9FT0YJCQkJCQkzMAorI2RlZmluZSBDTURRX0VWRU5UX01EUF9SU1oxX0VPRgkJCQkJCTMxCisjZGVmaW5lIENNRFFfRVZFTlRfTURQX1REU0hQX0VPRgkJCQkJMzIKKyNkZWZpbmUgQ01EUV9FVkVOVF9NRFBfV1JPVDBfRU9GCQkJCQkzMworI2RlZmluZSBDTURRX0VWRU5UX01EUF9XRE1BMF9FT0YJCQkJCTM0CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9PVkwwX0VPRgkJCQkJMzUKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX09WTDBfMkxfRU9GCQkJCQkzNgorI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfT1ZMMV8yTF9FT0YJCQkJCTM3CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9XRE1BMF9FT0YJCQkJCTM4CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9DT0xPUjBfRU9GCQkJCQkzOQorI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfQ0NPUlIwX0VPRgkJCQkJNDAKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX0FBTDBfRU9GCQkJCQk0MQorI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfR0FNTUEwX0VPRgkJCQkJNDIKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX0RJVEhFUjBfRU9GCQkJCQk0MworI2RlZmluZSBDTURRX0VWRU5UX0RTSTBfRU9GCQkJCQkJNDQKKyNkZWZpbmUgQ01EUV9FVkVOVF9EUEkwX0VPRgkJCQkJCTQ1CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9SU1pfRU9GCQkJCQkJNDcKKyNkZWZpbmUgQ01EUV9FVkVOVF9NRFBfQUFMX0VPRgkJCQkJCTQ4CisjZGVmaW5lIENNRFFfRVZFTlRfTURQX0NDT1JSX0VPRgkJCQkJNDkKKyNkZWZpbmUgQ01EUV9FVkVOVF9EQklfRU9GCQkJCQkJNTAKKyNkZWZpbmUgQ01EUV9FVkVOVF9NVVRFWF9TVFJFQU1fRE9ORTAJCQkJCTEzMAorI2RlZmluZSBDTURRX0VWRU5UX01VVEVYX1NUUkVBTV9ET05FMQkJCQkJMTMxCisjZGVmaW5lIENNRFFfRVZFTlRfTVVURVhfU1RSRUFNX0RPTkUyCQkJCQkxMzIKKyNkZWZpbmUgQ01EUV9FVkVOVF9NVVRFWF9TVFJFQU1fRE9ORTMJCQkJCTEzMworI2RlZmluZSBDTURRX0VWRU5UX01VVEVYX1NUUkVBTV9ET05FNAkJCQkJMTM0CisjZGVmaW5lIENNRFFfRVZFTlRfTVVURVhfU1RSRUFNX0RPTkU1CQkJCQkxMzUKKyNkZWZpbmUgQ01EUV9FVkVOVF9NVVRFWF9TVFJFQU1fRE9ORTYJCQkJCTEzNgorI2RlZmluZSBDTURRX0VWRU5UX01VVEVYX1NUUkVBTV9ET05FNwkJCQkJMTM3CisjZGVmaW5lIENNRFFfRVZFTlRfTVVURVhfU1RSRUFNX0RPTkU4CQkJCQkxMzgKKyNkZWZpbmUgQ01EUV9FVkVOVF9NVVRFWF9TVFJFQU1fRE9ORTkJCQkJCTEzOQorI2RlZmluZSBDTURRX0VWRU5UX01VVEVYX1NUUkVBTV9ET05FMTAJCQkJCTE0MAorI2RlZmluZSBDTURRX0VWRU5UX01VVEVYX1NUUkVBTV9ET05FMTEJCQkJCTE0MQorI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfUkRNQTBfQlVGX1VOREVSUlVOX0VWRU4JCQkJMTQyCisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9SRE1BMV9CVUZfVU5ERVJSVU5fRVZFTgkJCQkxNDMKKyNkZWZpbmUgQ01EUV9FVkVOVF9EU0kwX1RFX0VWRU5UCQkJCQkxNDQKKyNkZWZpbmUgQ01EUV9FVkVOVF9EU0kwX0lSUV9FVkVOVAkJCQkJMTQ1CisjZGVmaW5lIENNRFFfRVZFTlRfRFNJMF9ET05FX0VWRU5UCQkJCQkxNDYKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX1dETUEwX1NXX1JTVF9ET05FCQkJCTE1MAorI2RlZmluZSBDTURRX0VWRU5UX01EUF9XRE1BX1NXX1JTVF9ET05FCQkJCQkxNTEKKyNkZWZpbmUgQ01EUV9FVkVOVF9NRFBfV1JPVDBfU1dfUlNUX0RPTkUJCQkJMTUyCisjZGVmaW5lIENNRFFfRVZFTlRfTURQX1JETUEwX1NXX1JTVF9ET05FCQkJCTE1NAorI2RlZmluZSBDTURRX0VWRU5UX0RJU1BfT1ZMMF9GUkFNRV9SU1RfRE9ORV9QVUxFCQkJMTU1CisjZGVmaW5lIENNRFFfRVZFTlRfRElTUF9PVkwwXzJMX0ZSQU1FX1JTVF9ET05FX1VMU0UJCQkxNTYKKyNkZWZpbmUgQ01EUV9FVkVOVF9ESVNQX09WTDFfMkxfRlJBTUVfUlNUX0RPTkVfVUxTRQkJCTE1NworI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzAJCQkJCTI1NworI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzEJCQkJCTI1OAorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzIJCQkJCTI1OQorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzMJCQkJCTI2MAorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzQJCQkJCTI2MQorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzUJCQkJCTI2MgorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzYJCQkJCTI2MworI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzcJCQkJCTI2NAorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzgJCQkJCTI2NQorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzkJCQkJCTI2NgorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzEwCQkJCQkyNjcKKyNkZWZpbmUgQ01EUV9FVkVOVF9JU1BfRlJBTUVfRE9ORV9QMl8xMQkJCQkJMjY4CisjZGVmaW5lIENNRFFfRVZFTlRfSVNQX0ZSQU1FX0RPTkVfUDJfMTIJCQkJCTI2OQorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzEzCQkJCQkyNzAKKyNkZWZpbmUgQ01EUV9FVkVOVF9JU1BfRlJBTUVfRE9ORV9QMl8xNAkJCQkJMjcxCisjZGVmaW5lIENNRFFfRVZFTlRfSVNQX0ZSQU1FX0RPTkVfUDJfMTUJCQkJCTI3MgorI2RlZmluZSBDTURRX0VWRU5UX0lTUF9GUkFNRV9ET05FX1AyXzE2CQkJCQkyNzMKKyNkZWZpbmUgQ01EUV9FVkVOVF9JU1BfRlJBTUVfRE9ORV9QMl8xNwkJCQkJMjc0CisjZGVmaW5lIENNRFFfRVZFTlRfSVNQX0ZSQU1FX0RPTkVfUDJfMTgJCQkJCTI3NQorI2RlZmluZSBDTURRX0VWRU5UX0FNRF9GUkFNRV9ET05FCQkJCQkyNzYKKyNkZWZpbmUgQ01EUV9FVkVOVF9EVkVfRE9ORQkJCQkJCTI3NworI2RlZmluZSBDTURRX0VWRU5UX1dNRkVfRE9ORQkJCQkJCTI3OAorI2RlZmluZSBDTURRX0VWRU5UX1JTQ19ET05FCQkJCQkJMjc5CisjZGVmaW5lIENNRFFfRVZFTlRfTUZCX0RPTkUJCQkJCQkyODAKKyNkZWZpbmUgQ01EUV9FVkVOVF9XUEVfQV9ET05FCQkJCQkJMjgxCisjZGVmaW5lIENNRFFfRVZFTlRfU1BFX0JfRE9ORQkJCQkJCTI4MgorI2RlZmluZSBDTURRX0VWRU5UX09DQ19ET05FCQkJCQkJMjgzCisjZGVmaW5lIENNRFFfRVZFTlRfVkVOQ19DTURRX0ZSQU1FX0RPTkUJCQkJCTI4OQorI2RlZmluZSBDTURRX0VWRU5UX0pQR19FTkNfQ01EUV9ET05FCQkJCQkyOTAKKyNkZWZpbmUgQ01EUV9FVkVOVF9KUEdfREVDX0NNRFFfRE9ORQkJCQkJMjkxCisjZGVmaW5lIENNRFFfRVZFTlRfVkVOQ19DTURRX01CX0RPTkUJCQkJCTI5MgorI2RlZmluZSBDTURRX0VWRU5UX1ZFTkNfQ01EUV8xMjhCWVRFX0RPTkUJCQkJMjkzCisjZGVmaW5lIENNRFFfRVZFTlRfSVNQX0ZSQU1FX0RPTkVfQQkJCQkJMzIxCisjZGVmaW5lIENNRFFfRVZFTlRfSVNQX0ZSQU1FX0RPTkVfQgkJCQkJMzIyCisjZGVmaW5lIENNRFFfRVZFTlRfQ0FNU1YwX1BBU1MxX0RPTkUJCQkJCTMyMworI2RlZmluZSBDTURRX0VWRU5UX0NBTVNWMV9QQVNTMV9ET05FCQkJCQkzMjQKKyNkZWZpbmUgQ01EUV9FVkVOVF9DQU1TVjJfUEFTUzFfRE9ORQkJCQkJMzI1CisjZGVmaW5lIENNRFFfRVZFTlRfVFNGX0RPTkUJCQkJCQkzMjYKKyNkZWZpbmUgQ01EUV9FVkVOVF9TRU5JTkZfQ0FNMF9GSUZPX0ZVTEwJCQkJMzI3CisjZGVmaW5lIENNRFFfRVZFTlRfU0VOSU5GX0NBTTFfRklGT19GVUxMCQkJCTMyOAorI2RlZmluZSBDTURRX0VWRU5UX1NFTklORl9DQU0yX0ZJRk9fRlVMTAkJCQkzMjkKKyNkZWZpbmUgQ01EUV9FVkVOVF9TRU5JTkZfQ0FNM19GSUZPX0ZVTEwJCQkJMzMwCisjZGVmaW5lIENNRFFfRVZFTlRfU0VOSU5GX0NBTTRfRklGT19GVUxMCQkJCTMzMQorI2RlZmluZSBDTURRX0VWRU5UX1NFTklORl9DQU01X0ZJRk9fRlVMTAkJCQkzMzIKKyNkZWZpbmUgQ01EUV9FVkVOVF9TRU5JTkZfQ0FNNl9GSUZPX0ZVTEwJCQkJMzMzCisjZGVmaW5lIENNRFFfRVZFTlRfU0VOSU5GX0NBTTdfRklGT19GVUxMCQkJCTMzNAorI2RlZmluZSBDTURRX0VWRU5UX0lQVV9DT1JFMF9ET05FMAkJCQkJMzUzCisjZGVmaW5lIENNRFFfRVZFTlRfSVBVX0NPUkUwX0RPTkUxCQkJCQkzNTQKKyNkZWZpbmUgQ01EUV9FVkVOVF9JUFVfQ09SRTBfRE9ORTIJCQkJCTM1NQorI2RlZmluZSBDTURRX0VWRU5UX0lQVV9DT1JFMF9ET05FMwkJCQkJMzU2CisjZGVmaW5lIENNRFFfRVZFTlRfSVBVX0NPUkUxX0RPTkUwCQkJCQkzODUKKyNkZWZpbmUgQ01EUV9FVkVOVF9JUFVfQ09SRTFfRE9ORTEJCQkJCTM4NgorI2RlZmluZSBDTURRX0VWRU5UX0lQVV9DT1JFMV9ET05FMgkJCQkJMzg3CisjZGVmaW5lIENNRFFfRVZFTlRfSVBVX0NPUkUxX0RPTkUzCQkJCQkzODgKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3BpbmN0cmwvazMuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvcGluY3RybC9rMy5oCmluZGV4IDQ1ZTExYjYuLjQ5OWRlNjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHQtYmluZGluZ3MvcGluY3RybC9rMy5oCisrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvcGluY3RybC9rMy5oCkBAIC0zMiw0ICszMiw3IEBACiAjZGVmaW5lIEFNNjVYX0lPUEFEKHBhLCB2YWwsIG11eG1vZGUpCQkoKChwYSkgJiAweDFmZmYpKSAoKHZhbCkgfCAobXV4bW9kZSkpCiAjZGVmaW5lIEFNNjVYX1dLVVBfSU9QQUQocGEsIHZhbCwgbXV4bW9kZSkJKCgocGEpICYgMHgxZmZmKSkgKCh2YWwpIHwgKG11eG1vZGUpKQogCisjZGVmaW5lIEo3MjFFX0lPUEFEKHBhLCB2YWwsIG11eG1vZGUpCQkoKChwYSkgJiAweDFmZmYpKSAoKHZhbCkgfCAobXV4bW9kZSkpCisjZGVmaW5lIEo3MjFFX1dLVVBfSU9QQUQocGEsIHZhbCwgbXV4bW9kZSkJKCgocGEpICYgMHgxZmZmKSkgKCh2YWwpIHwgKG11eG1vZGUpKQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQtY29udHJvbGxlci9tdDgxODMtcmVzZXRzLmggYi9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0LWNvbnRyb2xsZXIvbXQ4MTgzLXJlc2V0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4MDRlMzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0LWNvbnRyb2xsZXIvbXQ4MTgzLXJlc2V0cy5oCkBAIC0wLDAgKzEsODEgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE5IE1lZGlhVGVrIEluYy4KKyAqIEF1dGhvcjogWW9uZyBMaWFuZyA8eW9uZy5saWFuZ0BtZWRpYXRlay5jb20+CisgKi8KKworI2lmbmRlZiBfRFRfQklORElOR1NfUkVTRVRfQ09OVFJPTExFUl9NVDgxODMKKyNkZWZpbmUgX0RUX0JJTkRJTkdTX1JFU0VUX0NPTlRST0xMRVJfTVQ4MTgzCisKKy8qIElORlJBQ0ZHIEFPIHJlc2V0cyAqLworI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fVEhFUk1fU1dfUlNUCQkJCTAKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1VTQl9UT1BfU1dfUlNUCQkJMQorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fTU1fSU9NTVVfU1dfUlNUCQkJMworI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fTVNEQzNfU1dfUlNUCQkJCTQKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX01TREMyX1NXX1JTVAkJCQk1CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19NU0RDMV9TV19SU1QJCQkJNgorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fTVNEQzBfU1dfUlNUCQkJCTcKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0FQRE1BX1NXX1JTVAkJCQk5CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19NSU1QX0RfU1dfUlNUCQkJMTAKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0JUSUZfU1dfUlNUCQkJCTEyCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19ESVNQX1BXTV9TV19SU1QJCQkxNAorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fQVVYQURDX1NXX1JTVAkJCTE1CisKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0lSVFhfU1dfUlNUCQkJCTMyCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19TUEkwX1NXX1JTVAkJCQkzMworI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fSTJDMF9TV19SU1QJCQkJMzQKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0kyQzFfU1dfUlNUCQkJCTM1CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19JMkMyX1NXX1JTVAkJCQkzNgorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fSTJDM19TV19SU1QJCQkJMzcKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1VBUlQwX1NXX1JTVAkJCQkzOAorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fVUFSVDFfU1dfUlNUCQkJCTM5CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19VQVJUMl9TV19SU1QJCQkJNDAKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1BXTV9TV19SU1QJCQkJNDEKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1NQSTFfU1dfUlNUCQkJCTQyCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19JMkM0X1NXX1JTVAkJCQk0MworI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fRFZGU1BfU1dfUlNUCQkJCTQ0CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19TUEkyX1NXX1JTVAkJCQk0NQorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fU1BJM19TV19SU1QJCQkJNDYKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1VGU0hDSV9TV19SU1QJCQk0NworCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19QTUlDX1dSQVBfU1dfUlNUCQkJNjQKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1NQTV9TV19SU1QJCQkJNjUKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1VTQlNJRl9TV19SU1QJCQk2NgorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fS1BfU1dfUlNUCQkJCTY4CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19BUFhHUFRfU1dfUlNUCQkJNjkKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0NMRE1BX0FPX1NXX1JTVAkJCTcwCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19VTklQUk9fVUZTX1NXX1JTVAkJCTcxCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19EWF9DQ19TV19SU1QJCQkJNzIKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1VGU1BIWV9TV19SU1QJCQk3MworCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19EWF9DQ19TRUNfU1dfUlNUCQkJOTYKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0dDRV9TV19SU1QJCQkJOTcKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0NMRE1BX1NXX1JTVAkJCQk5OAorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fVFJOR19TV19SU1QJCQkJOTkKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0FQX01EX0NDSUZfMV9TV19SU1QJCQkxMDMKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0FQX01EX0NDSUZfU1dfUlNUCQkJMTA0CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19JMkMxX0lNTV9TV19SU1QJCQkxMDUKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0kyQzFfQVJCX1NXX1JTVAkJCTEwNgorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fSTJDMl9JTU1fU1dfUlNUCQkJMTA3CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19JMkMyX0FSQl9TV19SU1QJCQkxMDgKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0kyQzVfU1dfUlNUCQkJCTEwOQorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fSTJDNV9JTU1fU1dfUlNUCQkJMTEwCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19JMkM1X0FSQl9TV19SU1QJCQkxMTEKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1NQSTRfU1dfUlNUCQkJCTExMgorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fU1BJNV9TV19SU1QJCQkJMTEzCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19JTkZSQTJNRkdBWElfQ0JJUF9DTEFTX1NXX1JTVAkxMTQKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX01GR0FYSTJJTkZSQV9NMF9DQklQX0dMQVNfT1VUX1NXX1JTVAkxMTUKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX01GR0FYSTJJTkZSQV9NMV9DQklQX0dMQVNfT1VUX1NXX1JTVAkxMTYKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX1VGU19BRVNfU1dfUlNUCQkJMTE3CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19DQ1VfSTJDX0lSUV9TV19SU1QJCQkxMTgKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0NDVV9JMkNfRE1BX1NXX1JTVAkJCTExOQorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fSTJDNl9TV19SU1QJCQkJMTIwCisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19DQ1VfR0FMU19TV19SU1QJCQkxMjEKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0lQVV9HQUxTX1NXX1JTVAkJCTEyMgorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fQ09OTjJBUF9HQUxTX1NXX1JTVAkJCTEyMworI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fQVBfTURfQ0NJRjJfU1dfUlNUCQkJMTI0CisjZGVmaW5lIE1UODE4M19JTkZSQUNGR19BT19BUF9NRF9DQ0lGM19TV19SU1QJCQkxMjUKKyNkZWZpbmUgTVQ4MTgzX0lORlJBQ0ZHX0FPX0kyQzdfU1dfUlNUCQkJCTEyNgorI2RlZmluZSBNVDgxODNfSU5GUkFDRkdfQU9fSTJDOF9TV19SU1QJCQkJMTI3CisKKyNlbmRpZiAgLyogX0RUX0JJTkRJTkdTX1JFU0VUX0NPTlRST0xMRVJfTVQ4MTgzICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L2hpc2ksaGk2MjIwLXJlc2V0cy5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9oaXNpLGhpNjIyMC1yZXNldHMuaAppbmRleCBlN2MzNjJhOC4uNjNhZmY3ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9oaXNpLGhpNjIyMC1yZXNldHMuaAorKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L2hpc2ksaGk2MjIwLXJlc2V0cy5oCkBAIC03Myw0ICs3MywxMSBAQAogI2RlZmluZSBNRURJQV9NTVUgICAgICAgICAgICAgICAgICAgICAgIDYKICNkZWZpbmUgTUVESUFfWEcyUkFNMSAgICAgICAgICAgICAgICAgICA3CiAKKyNkZWZpbmUgQU9fRzNEICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIEFPX0NPREVDSVNQICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBBT19NQ1BVICAgICAgICAgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgQU9fQkJQSEFSUU1FTSAgICAgICAgICAgICAgICAgICA1CisjZGVmaW5lIEFPX0hJRkkgICAgICAgICAgICAgICAgICAgICAgICAgOAorI2RlZmluZSBBT19BQ1BVU0NVTDJDICAgICAgICAgICAgICAgICAgIDEyCisKICNlbmRpZiAvKl9EVF9CSU5ESU5HU19SRVNFVF9DT05UUk9MTEVSX0hJNjIyMCovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3N1bjhpLXYzcy1jY3UuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3VuOGktdjNzLWNjdS5oCmluZGV4IGI1OGVmMjFhLi5iNjc5MDE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3N1bjhpLXYzcy1jY3UuaAorKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3N1bjhpLXYzcy1jY3UuaApAQCAtNzUsNCArNzUsNyBAQAogI2RlZmluZSBSU1RfQlVTX1VBUlQxCQk1MAogI2RlZmluZSBSU1RfQlVTX1VBUlQyCQk1MQogCisvKiBSZXNldCBsaW5lcyBub3QgYXZhaWxhYmxlIG9uIFYzcyAqLworI2RlZmluZSBSU1RfQlVTX0kyUzAJCTUyCisKICNlbmRpZiAvKiBfRFRfQklORElOR1NfUlNUX1NVTjhJX0gzX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FjcGkuaCBiL2luY2x1ZGUvbGludXgvYWNwaS5oCmluZGV4IDk3OGNjMjMuLjhiNGU1MTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYWNwaS5oCisrKyBiL2luY2x1ZGUvbGludXgvYWNwaS5oCkBAIC02NDMsNiArNjQzLDEyIEBAIGJvb2wgYWNwaV9ndGR0X2Mzc3RvcChpbnQgdHlwZSk7CiBpbnQgYWNwaV9hcmNoX3RpbWVyX21lbV9pbml0KHN0cnVjdCBhcmNoX3RpbWVyX21lbSAqdGltZXJfbWVtLCBpbnQgKnRpbWVyX2NvdW50KTsKICNlbmRpZgogCisjaWZuZGVmIEFDUElfSEFWRV9BUkNIX1NFVF9ST09UX1BPSU5URVIKK3N0YXRpYyBpbmxpbmUgdm9pZCBhY3BpX2FyY2hfc2V0X3Jvb3RfcG9pbnRlcih1NjQgYWRkcikKK3sKK30KKyNlbmRpZgorCiAjaWZuZGVmIEFDUElfSEFWRV9BUkNIX0dFVF9ST09UX1BPSU5URVIKIHN0YXRpYyBpbmxpbmUgdTY0IGFjcGlfYXJjaF9nZXRfcm9vdF9wb2ludGVyKHZvaWQpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FtYmEvY2xjZC1yZWdzLmggYi9pbmNsdWRlL2xpbnV4L2FtYmEvY2xjZC1yZWdzLmgKaW5kZXggNTE2YTZmZC4uNDIxYjBmYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9hbWJhL2NsY2QtcmVncy5oCisrKyBiL2luY2x1ZGUvbGludXgvYW1iYS9jbGNkLXJlZ3MuaApAQCAtNDIsNiArNDIsNyBAQAogI2RlZmluZSBUSU0yX1BDRF9MT19NQVNLCUdFTk1BU0soNCwgMCkKICNkZWZpbmUgVElNMl9QQ0RfTE9fQklUUwk1CiAjZGVmaW5lIFRJTTJfQ0xLU0VMCQkoMSA8PCA1KQorI2RlZmluZSBUSU0yX0FDQl9NQVNLCQlHRU5NQVNLKDEwLCA2KQogI2RlZmluZSBUSU0yX0lWUwkJKDEgPDwgMTEpCiAjZGVmaW5lIFRJTTJfSUhTCQkoMSA8PCAxMikKICNkZWZpbmUgVElNMl9JUEMJCSgxIDw8IDEzKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9iYWNrbGlnaHQuaCBiL2luY2x1ZGUvbGludXgvYmFja2xpZ2h0LmgKaW5kZXggMGI1ODk3NDQuLmM3ZDZiMmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYmFja2xpZ2h0LmgKKysrIGIvaW5jbHVkZS9saW51eC9iYWNrbGlnaHQuaApAQCAtNDYsNiArNDYsMTIgQEAgZW51bSBiYWNrbGlnaHRfbm90aWZpY2F0aW9uIHsKIAlCQUNLTElHSFRfVU5SRUdJU1RFUkVELAogfTsKIAorZW51bSBiYWNrbGlnaHRfc2NhbGUgeworCUJBQ0tMSUdIVF9TQ0FMRV9VTktOT1dOID0gMCwKKwlCQUNLTElHSFRfU0NBTEVfTElORUFSLAorCUJBQ0tMSUdIVF9TQ0FMRV9OT05fTElORUFSLAorfTsKKwogc3RydWN0IGJhY2tsaWdodF9kZXZpY2U7CiBzdHJ1Y3QgZmJfaW5mbzsKIApAQCAtODAsNiArODYsOCBAQCBzdHJ1Y3QgYmFja2xpZ2h0X3Byb3BlcnRpZXMgewogCWVudW0gYmFja2xpZ2h0X3R5cGUgdHlwZTsKIAkvKiBGbGFncyB1c2VkIHRvIHNpZ25hbCBkcml2ZXJzIG9mIHN0YXRlIGNoYW5nZXMgKi8KIAl1bnNpZ25lZCBpbnQgc3RhdGU7CisJLyogVHlwZSBvZiB0aGUgYnJpZ2h0bmVzcyBzY2FsZSAobGluZWFyLCBub24tbGluZWFyLCAuLi4pICovCisJZW51bSBiYWNrbGlnaHRfc2NhbGUgc2NhbGU7CiAKICNkZWZpbmUgQkxfQ09SRV9TVVNQRU5ERUQJKDEgPDwgMCkJLyogYmFja2xpZ2h0IGlzIHN1c3BlbmRlZCAqLwogI2RlZmluZSBCTF9DT1JFX0ZCQkxBTksJCSgxIDw8IDEpCS8qIGJhY2tsaWdodCBpcyB1bmRlciBhbiBmYiBibGFuayBldmVudCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaCBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgKaW5kZXggMzA5NGYyZC4uZjNlYTc4YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oCkBAIC0xMTEwLDYgKzExMTAsOCBAQCBleHRlcm4gdm9pZCBibGtfcXVldWVfcnFfdGltZW91dChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCB1bnNpZ25lZCBpbnQpOwogZXh0ZXJuIHZvaWQgYmxrX3F1ZXVlX3dyaXRlX2NhY2hlKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBib29sIGVuYWJsZWQsIGJvb2wgZnVhKTsKIGV4dGVybiB2b2lkIGJsa19xdWV1ZV9yZXF1aXJlZF9lbGV2YXRvcl9mZWF0dXJlcyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwKIAkJCQkJCSB1bnNpZ25lZCBpbnQgZmVhdHVyZXMpOworZXh0ZXJuIGJvb2wgYmxrX3F1ZXVlX2Nhbl91c2VfZG1hX21hcF9tZXJnaW5nKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAorCQkJCQkgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYpOwogCiAvKgogICogTnVtYmVyIG9mIHBoeXNpY2FsIHNlZ21lbnRzIGFzIHNlbnQgdG8gdGhlIGRldmljZS4KQEAgLTE1MjIsMTAgKzE1MjQsMTQgQEAgc3RydWN0IGJsa19pbnRlZ3JpdHlfaXRlciB7CiB9OwogCiB0eXBlZGVmIGJsa19zdGF0dXNfdCAoaW50ZWdyaXR5X3Byb2Nlc3NpbmdfZm4pIChzdHJ1Y3QgYmxrX2ludGVncml0eV9pdGVyICopOwordHlwZWRlZiB2b2lkIChpbnRlZ3JpdHlfcHJlcGFyZV9mbikgKHN0cnVjdCByZXF1ZXN0ICopOwordHlwZWRlZiB2b2lkIChpbnRlZ3JpdHlfY29tcGxldGVfZm4pIChzdHJ1Y3QgcmVxdWVzdCAqLCB1bnNpZ25lZCBpbnQpOwogCiBzdHJ1Y3QgYmxrX2ludGVncml0eV9wcm9maWxlIHsKIAlpbnRlZ3JpdHlfcHJvY2Vzc2luZ19mbgkJKmdlbmVyYXRlX2ZuOwogCWludGVncml0eV9wcm9jZXNzaW5nX2ZuCQkqdmVyaWZ5X2ZuOworCWludGVncml0eV9wcmVwYXJlX2ZuCQkqcHJlcGFyZV9mbjsKKwlpbnRlZ3JpdHlfY29tcGxldGVfZm4JCSpjb21wbGV0ZV9mbjsKIAljb25zdCBjaGFyCQkJKm5hbWU7CiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NlcGgvbGliY2VwaC5oIGIvaW5jbHVkZS9saW51eC9jZXBoL2xpYmNlcGguaAppbmRleCA4MjE1NmRhLi5iOWRiZGExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NlcGgvbGliY2VwaC5oCisrKyBiL2luY2x1ZGUvbGludXgvY2VwaC9saWJjZXBoLmgKQEAgLTI5Myw2ICsyOTMsNyBAQCBzdHJ1Y3QgY2VwaF9jbGllbnQgKmNlcGhfY3JlYXRlX2NsaWVudChzdHJ1Y3QgY2VwaF9vcHRpb25zICpvcHQsIHZvaWQgKnByaXZhdGUpOwogc3RydWN0IGNlcGhfZW50aXR5X2FkZHIgKmNlcGhfY2xpZW50X2FkZHIoc3RydWN0IGNlcGhfY2xpZW50ICpjbGllbnQpOwogdTY0IGNlcGhfY2xpZW50X2dpZChzdHJ1Y3QgY2VwaF9jbGllbnQgKmNsaWVudCk7CiBleHRlcm4gdm9pZCBjZXBoX2Rlc3Ryb3lfY2xpZW50KHN0cnVjdCBjZXBoX2NsaWVudCAqY2xpZW50KTsKK2V4dGVybiB2b2lkIGNlcGhfcmVzZXRfY2xpZW50X2FkZHIoc3RydWN0IGNlcGhfY2xpZW50ICpjbGllbnQpOwogZXh0ZXJuIGludCBfX2NlcGhfb3Blbl9zZXNzaW9uKHN0cnVjdCBjZXBoX2NsaWVudCAqY2xpZW50LAogCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnRlZCk7CiBleHRlcm4gaW50IGNlcGhfb3Blbl9zZXNzaW9uKHN0cnVjdCBjZXBoX2NsaWVudCAqY2xpZW50KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2VwaC9tZXNzZW5nZXIuaCBiL2luY2x1ZGUvbGludXgvY2VwaC9tZXNzZW5nZXIuaAppbmRleCAyMzg5NWQxLi5jNDQ1OGRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NlcGgvbWVzc2VuZ2VyLmgKKysrIGIvaW5jbHVkZS9saW51eC9jZXBoL21lc3Nlbmdlci5oCkBAIC0zMzcsNiArMzM3LDcgQEAgZXh0ZXJuIHZvaWQgY2VwaF9tc2dyX2ZsdXNoKHZvaWQpOwogZXh0ZXJuIHZvaWQgY2VwaF9tZXNzZW5nZXJfaW5pdChzdHJ1Y3QgY2VwaF9tZXNzZW5nZXIgKm1zZ3IsCiAJCQkJc3RydWN0IGNlcGhfZW50aXR5X2FkZHIgKm15YWRkcik7CiBleHRlcm4gdm9pZCBjZXBoX21lc3Nlbmdlcl9maW5pKHN0cnVjdCBjZXBoX21lc3NlbmdlciAqbXNncik7CitleHRlcm4gdm9pZCBjZXBoX21lc3Nlbmdlcl9yZXNldF9ub25jZShzdHJ1Y3QgY2VwaF9tZXNzZW5nZXIgKm1zZ3IpOwogCiBleHRlcm4gdm9pZCBjZXBoX2Nvbl9pbml0KHN0cnVjdCBjZXBoX2Nvbm5lY3Rpb24gKmNvbiwgdm9pZCAqcHJpdmF0ZSwKIAkJCWNvbnN0IHN0cnVjdCBjZXBoX2Nvbm5lY3Rpb25fb3BlcmF0aW9ucyAqb3BzLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jZXBoL21vbl9jbGllbnQuaCBiL2luY2x1ZGUvbGludXgvY2VwaC9tb25fY2xpZW50LmgKaW5kZXggYjRkMTM0ZC4uZGJiOGE2OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jZXBoL21vbl9jbGllbnQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NlcGgvbW9uX2NsaWVudC5oCkBAIC0xMDksNiArMTA5LDcgQEAgZXh0ZXJuIGludCBjZXBoX21vbm1hcF9jb250YWlucyhzdHJ1Y3QgY2VwaF9tb25tYXAgKm0sCiAKIGV4dGVybiBpbnQgY2VwaF9tb25jX2luaXQoc3RydWN0IGNlcGhfbW9uX2NsaWVudCAqbW9uYywgc3RydWN0IGNlcGhfY2xpZW50ICpjbCk7CiBleHRlcm4gdm9pZCBjZXBoX21vbmNfc3RvcChzdHJ1Y3QgY2VwaF9tb25fY2xpZW50ICptb25jKTsKK2V4dGVybiB2b2lkIGNlcGhfbW9uY19yZW9wZW5fc2Vzc2lvbihzdHJ1Y3QgY2VwaF9tb25fY2xpZW50ICptb25jKTsKIAogZW51bSB7CiAJQ0VQSF9TVUJfTU9OTUFQID0gMCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2VwaC9vc2RfY2xpZW50LmggYi9pbmNsdWRlL2xpbnV4L2NlcGgvb3NkX2NsaWVudC5oCmluZGV4IGFkN2ZlNWQuLmVhZmZiZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2VwaC9vc2RfY2xpZW50LmgKKysrIGIvaW5jbHVkZS9saW51eC9jZXBoL29zZF9jbGllbnQuaApAQCAtMzgxLDYgKzM4MSw3IEBAIGV4dGVybiB2b2lkIGNlcGhfb3NkY19jbGVhbnVwKHZvaWQpOwogZXh0ZXJuIGludCBjZXBoX29zZGNfaW5pdChzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjLAogCQkJICBzdHJ1Y3QgY2VwaF9jbGllbnQgKmNsaWVudCk7CiBleHRlcm4gdm9pZCBjZXBoX29zZGNfc3RvcChzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjKTsKK2V4dGVybiB2b2lkIGNlcGhfb3NkY19yZW9wZW5fb3NkcyhzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjKTsKIAogZXh0ZXJuIHZvaWQgY2VwaF9vc2RjX2hhbmRsZV9yZXBseShzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjLAogCQkJCSAgIHN0cnVjdCBjZXBoX21zZyAqbXNnKTsKQEAgLTM4OCw2ICszODksNyBAQCBleHRlcm4gdm9pZCBjZXBoX29zZGNfaGFuZGxlX21hcChzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjLAogCQkJCSBzdHJ1Y3QgY2VwaF9tc2cgKm1zZyk7CiB2b2lkIGNlcGhfb3NkY191cGRhdGVfZXBvY2hfYmFycmllcihzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjLCB1MzIgZWIpOwogdm9pZCBjZXBoX29zZGNfYWJvcnRfcmVxdWVzdHMoc3RydWN0IGNlcGhfb3NkX2NsaWVudCAqb3NkYywgaW50IGVycik7Cit2b2lkIGNlcGhfb3NkY19jbGVhcl9hYm9ydF9lcnIoc3RydWN0IGNlcGhfb3NkX2NsaWVudCAqb3NkYyk7CiAKICNkZWZpbmUgb3NkX3JlcV9vcF9kYXRhKG9yZXEsIHdoY2gsIHR5cCwgZmxkKQkJCQlcCiAoewkJCQkJCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2xrLXByb3ZpZGVyLmggYi9pbmNsdWRlL2xpbnV4L2Nsay1wcm92aWRlci5oCmluZGV4IGRjZTU1MjEuLjJmZGZlODAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2xrLXByb3ZpZGVyLmgKKysrIGIvaW5jbHVkZS9saW51eC9jbGstcHJvdmlkZXIuaApAQCAtMjk5LDcgKzI5OSw4IEBAIHN0cnVjdCBjbGtfaW5pdF9kYXRhIHsKICAqIGludG8gdGhlIGNsayBBUEkKICAqCiAgKiBAaW5pdDogcG9pbnRlciB0byBzdHJ1Y3QgY2xrX2luaXRfZGF0YSB0aGF0IGNvbnRhaW5zIHRoZSBpbml0IGRhdGEgc2hhcmVkCi0gKiB3aXRoIHRoZSBjb21tb24gY2xvY2sgZnJhbWV3b3JrLgorICogd2l0aCB0aGUgY29tbW9uIGNsb2NrIGZyYW1ld29yay4gVGhpcyBwb2ludGVyIHdpbGwgYmUgc2V0IHRvIE5VTEwgb25jZQorICogYSBjbGtfcmVnaXN0ZXIoKSB2YXJpYW50IGlzIGNhbGxlZCBvbiB0aGlzIGNsa19odyBwb2ludGVyLgogICovCiBzdHJ1Y3QgY2xrX2h3IHsKIAlzdHJ1Y3QgY2xrX2NvcmUgKmNvcmU7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Nsay5oIGIvaW5jbHVkZS9saW51eC9jbGsuaAppbmRleCA4NTNhOGYxLi4xOGI3Yjk1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Nsay5oCisrKyBiL2luY2x1ZGUvbGludXgvY2xrLmgKQEAgLTIzOSw3ICsyMzksOCBAQCBzdGF0aWMgaW5saW5lIGludCBjbGtfcHJlcGFyZShzdHJ1Y3QgY2xrICpjbGspCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IF9fbXVzdF9jaGVjayBjbGtfYnVsa19wcmVwYXJlKGludCBudW1fY2xrcywgc3RydWN0IGNsa19idWxrX2RhdGEgKmNsa3MpCitzdGF0aWMgaW5saW5lIGludCBfX211c3RfY2hlY2sKK2Nsa19idWxrX3ByZXBhcmUoaW50IG51bV9jbGtzLCBjb25zdCBzdHJ1Y3QgY2xrX2J1bGtfZGF0YSAqY2xrcykKIHsKIAltaWdodF9zbGVlcCgpOwogCXJldHVybiAwOwpAQCAtMjYzLDcgKzI2NCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjbGtfdW5wcmVwYXJlKHN0cnVjdCBjbGsgKmNsaykKIHsKIAltaWdodF9zbGVlcCgpOwogfQotc3RhdGljIGlubGluZSB2b2lkIGNsa19idWxrX3VucHJlcGFyZShpbnQgbnVtX2Nsa3MsIHN0cnVjdCBjbGtfYnVsa19kYXRhICpjbGtzKQorc3RhdGljIGlubGluZSB2b2lkIGNsa19idWxrX3VucHJlcGFyZShpbnQgbnVtX2Nsa3MsCisJCQkJICAgICAgY29uc3Qgc3RydWN0IGNsa19idWxrX2RhdGEgKmNsa3MpCiB7CiAJbWlnaHRfc2xlZXAoKTsKIH0KQEAgLTgyMCw3ICs4MjIsOCBAQCBzdGF0aWMgaW5saW5lIGludCBjbGtfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgX19tdXN0X2NoZWNrIGNsa19idWxrX2VuYWJsZShpbnQgbnVtX2Nsa3MsIHN0cnVjdCBjbGtfYnVsa19kYXRhICpjbGtzKQorc3RhdGljIGlubGluZSBpbnQgX19tdXN0X2NoZWNrIGNsa19idWxrX2VuYWJsZShpbnQgbnVtX2Nsa3MsCisJCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgY2xrX2J1bGtfZGF0YSAqY2xrcykKIHsKIAlyZXR1cm4gMDsKIH0KQEAgLTgyOSw3ICs4MzIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKSB7fQogCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjbGtfYnVsa19kaXNhYmxlKGludCBudW1fY2xrcywKLQkJCQkgICAgc3RydWN0IGNsa19idWxrX2RhdGEgKmNsa3MpIHt9CisJCQkJICAgIGNvbnN0IHN0cnVjdCBjbGtfYnVsa19kYXRhICpjbGtzKSB7fQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY2xrX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKIHsKQEAgLTkxOCw4ICs5MjEsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHN0cnVjdCBjbGsgKmNsaykKIAljbGtfdW5wcmVwYXJlKGNsayk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IF9fbXVzdF9jaGVjayBjbGtfYnVsa19wcmVwYXJlX2VuYWJsZShpbnQgbnVtX2Nsa3MsCi0JCQkJCXN0cnVjdCBjbGtfYnVsa19kYXRhICpjbGtzKQorc3RhdGljIGlubGluZSBpbnQgX19tdXN0X2NoZWNrCitjbGtfYnVsa19wcmVwYXJlX2VuYWJsZShpbnQgbnVtX2Nsa3MsIGNvbnN0IHN0cnVjdCBjbGtfYnVsa19kYXRhICpjbGtzKQogewogCWludCByZXQ7CiAKQEAgLTkzNCw3ICs5MzcsNyBAQCBzdGF0aWMgaW5saW5lIGludCBfX211c3RfY2hlY2sgY2xrX2J1bGtfcHJlcGFyZV9lbmFibGUoaW50IG51bV9jbGtzLAogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgY2xrX2J1bGtfZGlzYWJsZV91bnByZXBhcmUoaW50IG51bV9jbGtzLAotCQkJCQkgICAgICBzdHJ1Y3QgY2xrX2J1bGtfZGF0YSAqY2xrcykKKwkJCQkJICAgICAgY29uc3Qgc3RydWN0IGNsa19idWxrX2RhdGEgKmNsa3MpCiB7CiAJY2xrX2J1bGtfZGlzYWJsZShudW1fY2xrcywgY2xrcyk7CiAJY2xrX2J1bGtfdW5wcmVwYXJlKG51bV9jbGtzLCBjbGtzKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2xrL2Nsay1jb25mLmggYi9pbmNsdWRlL2xpbnV4L2Nsay9jbGstY29uZi5oCmluZGV4IDg1ZjhjZjkuLmVhZTk2NTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2xrL2Nsay1jb25mLmgKKysrIGIvaW5jbHVkZS9saW51eC9jbGsvY2xrLWNvbmYuaApAQCAtNCw2ICs0LDkgQEAKICAqIFN5bHdlc3RlciBOYXdyb2NraSA8cy5uYXdyb2NraUBzYW1zdW5nLmNvbT4KICAqLwogCisjaWZuZGVmIF9fQ0xLX0NPTkZfSAorI2RlZmluZSBfX0NMS19DT05GX0gKKwogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKIHN0cnVjdCBkZXZpY2Vfbm9kZTsKQEAgLTE3LDMgKzIwLDUgQEAgc3RhdGljIGlubGluZSBpbnQgb2ZfY2xrX3NldF9kZWZhdWx0cyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJcmV0dXJuIDA7CiB9CiAjZW5kaWYKKworI2VuZGlmIC8qIF9fQ0xLX0NPTkZfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jb21wYWN0aW9uLmggYi9pbmNsdWRlL2xpbnV4L2NvbXBhY3Rpb24uaAppbmRleCA5NTY5ZTdjLi40Yjg5OGNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NvbXBhY3Rpb24uaAorKysgYi9pbmNsdWRlL2xpbnV4L2NvbXBhY3Rpb24uaApAQCAtMTI5LDExICsxMjksOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY29tcGFjdGlvbl9mYWlsZWQoZW51bSBjb21wYWN0X3Jlc3VsdCByZXN1bHQpCiAJcmV0dXJuIGZhbHNlOwogfQogCi0vKgotICogQ29tcGFjdGlvbiAgaGFzIGJhY2tlZCBvZmYgZm9yIHNvbWUgcmVhc29uLiBJdCBtaWdodCBiZSB0aHJvdHRsaW5nIG9yCi0gKiBsb2NrIGNvbnRlbnRpb24uIFJldHJ5aW5nIGlzIHN0aWxsIHdvcnRod2hpbGUuCi0gKi8KLXN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYWN0aW9uX3dpdGhkcmF3bihlbnVtIGNvbXBhY3RfcmVzdWx0IHJlc3VsdCkKKy8qIENvbXBhY3Rpb24gbmVlZHMgcmVjbGFpbSB0byBiZSBwZXJmb3JtZWQgZmlyc3QsIHNvIGl0IGNhbiBjb250aW51ZS4gKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBjb21wYWN0aW9uX25lZWRzX3JlY2xhaW0oZW51bSBjb21wYWN0X3Jlc3VsdCByZXN1bHQpCiB7CiAJLyoKIAkgKiBDb21wYWN0aW9uIGJhY2tlZCBvZmYgZHVlIHRvIHdhdGVybWFyayBjaGVja3MgZm9yIG9yZGVyLTAKQEAgLTE0Miw2ICsxMzksMTYgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXBhY3Rpb25fd2l0aGRyYXduKGVudW0gY29tcGFjdF9yZXN1bHQgcmVzdWx0KQogCWlmIChyZXN1bHQgPT0gQ09NUEFDVF9TS0lQUEVEKQogCQlyZXR1cm4gdHJ1ZTsKIAorCXJldHVybiBmYWxzZTsKK30KKworLyoKKyAqIENvbXBhY3Rpb24gaGFzIGJhY2tlZCBvZmYgZm9yIHNvbWUgcmVhc29uIGFmdGVyIGRvaW5nIHNvbWUgd29yayBvciBub25lCisgKiBhdCBhbGwuIEl0IG1pZ2h0IGJlIHRocm90dGxpbmcgb3IgbG9jayBjb250ZW50aW9uLiBSZXRyeWluZyBtaWdodCBiZSBzdGlsbAorICogd29ydGh3aGlsZSwgYnV0IHdpdGggYSBoaWdoZXIgcHJpb3JpdHkgaWYgYWxsb3dlZC4KKyAqLworc3RhdGljIGlubGluZSBib29sIGNvbXBhY3Rpb25fd2l0aGRyYXduKGVudW0gY29tcGFjdF9yZXN1bHQgcmVzdWx0KQorewogCS8qCiAJICogSWYgY29tcGFjdGlvbiBpcyBkZWZlcnJlZCBmb3IgaGlnaC1vcmRlciBhbGxvY2F0aW9ucywgaXQgaXMKIAkgKiBiZWNhdXNlIHN5bmMgY29tcGFjdGlvbiByZWNlbnRseSBmYWlsZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UKQEAgLTIwNyw2ICsyMTQsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXBhY3Rpb25fZmFpbGVkKGVudW0gY29tcGFjdF9yZXN1bHQgcmVzdWx0KQogCXJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGNvbXBhY3Rpb25fbmVlZHNfcmVjbGFpbShlbnVtIGNvbXBhY3RfcmVzdWx0IHJlc3VsdCkKK3sKKwlyZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYWN0aW9uX3dpdGhkcmF3bihlbnVtIGNvbXBhY3RfcmVzdWx0IHJlc3VsdCkKIHsKIAlyZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCBiL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaAppbmRleCA1OTljMjdiLi43MjM5M2E4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgKKysrIGIvaW5jbHVkZS9saW51eC9jb21waWxlcl90eXBlcy5oCkBAIC0xMzAsMTAgKzEzMCw2IEBAIHN0cnVjdCBmdHJhY2VfbGlrZWx5X2RhdGEgewogCiAvKgogICogRm9yY2UgYWx3YXlzLWlubGluZSBpZiB0aGUgdXNlciByZXF1ZXN0cyBpdCBzbyB2aWEgdGhlIC5jb25maWcuCi0gKiBHQ0MgZG9lcyBub3Qgd2FybiBhYm91dCB1bnVzZWQgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgZm9yCi0gKiAtV3VudXNlZC1mdW5jdGlvbi4gIFRoaXMgdHVybnMgb3V0IHRvIGF2b2lkIHRoZSBuZWVkIGZvciBjb21wbGV4ICNpZmRlZgotICogZGlyZWN0aXZlcy4gIFN1cHByZXNzIHRoZSB3YXJuaW5nIGluIGNsYW5nIGFzIHdlbGwgYnkgdXNpbmcgInVudXNlZCIKLSAqIGZ1bmN0aW9uIGF0dHJpYnV0ZSwgd2hpY2ggaXMgcmVkdW5kYW50IGJ1dCBub3QgaGFybWZ1bCBmb3IgZ2NjLgogICogUHJlZmVyIGdudV9pbmxpbmUsIHNvIHRoYXQgZXh0ZXJuIGlubGluZSBmdW5jdGlvbnMgZG8gbm90IGVtaXQgYW4KICAqIGV4dGVybmFsbHkgdmlzaWJsZSBmdW5jdGlvbi4gVGhpcyBtYWtlcyBleHRlcm4gaW5saW5lIGJlaGF2ZSBhcyBwZXIgZ251ODkKICAqIHNlbWFudGljcyByYXRoZXIgdGhhbiBjOTkuIFRoaXMgcHJldmVudHMgbXVsdGlwbGUgc3ltYm9sIGRlZmluaXRpb24gZXJyb3JzCkBAIC0xNDQsMTQgKzE0MCwzNSBAQCBzdHJ1Y3QgZnRyYWNlX2xpa2VseV9kYXRhIHsKICAqLwogI2lmICFkZWZpbmVkKENPTkZJR19PUFRJTUlaRV9JTkxJTklORykKICNkZWZpbmUgaW5saW5lIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fZ251X2lubGluZSBcCi0JX19tYXliZV91bnVzZWQgbm90cmFjZQorCV9faW5saW5lX21heWJlX3VudXNlZCBub3RyYWNlCiAjZWxzZQogI2RlZmluZSBpbmxpbmUgaW5saW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19nbnVfaW5saW5lIFwKLQlfX21heWJlX3VudXNlZCBub3RyYWNlCisJX19pbmxpbmVfbWF5YmVfdW51c2VkIG5vdHJhY2UKICNlbmRpZgogCisvKgorICogZ2NjIHByb3ZpZGVzIGJvdGggX19pbmxpbmVfXyBhbmQgX19pbmxpbmUgYXMgYWx0ZXJuYXRlIHNwZWxsaW5ncyBvZgorICogdGhlIGlubGluZSBrZXl3b3JkLCB0aG91Z2ggdGhlIGxhdHRlciBpcyB1bmRvY3VtZW50ZWQuIE5ldyBrZXJuZWwKKyAqIGNvZGUgc2hvdWxkIG9ubHkgdXNlIHRoZSBpbmxpbmUgc3BlbGxpbmcsIGJ1dCBzb21lIGV4aXN0aW5nIGNvZGUKKyAqIHVzZXMgX19pbmxpbmVfXy4gU2luY2Ugd2UgI2RlZmluZSBpbmxpbmUgYWJvdmUsIHRvIGVuc3VyZQorICogX19pbmxpbmVfXyBoYXMgdGhlIHNhbWUgc2VtYW50aWNzLCB3ZSBuZWVkIHRoaXMgI2RlZmluZS4KKyAqCisgKiBIb3dldmVyLCB0aGUgc3BlbGxpbmcgX19pbmxpbmUgaXMgc3RyaWN0bHkgcmVzZXJ2ZWQgZm9yIHJlZmVycmluZworICogdG8gdGhlIGJhcmUga2V5d29yZC4KKyAqLwogI2RlZmluZSBfX2lubGluZV9fIGlubGluZQotI2RlZmluZSBfX2lubGluZSAgIGlubGluZQorCisvKgorICogR0NDIGRvZXMgbm90IHdhcm4gYWJvdXQgdW51c2VkIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGZvciAtV3VudXNlZC1mdW5jdGlvbi4KKyAqIFN1cHByZXNzIHRoZSB3YXJuaW5nIGluIGNsYW5nIGFzIHdlbGwgYnkgdXNpbmcgX19tYXliZV91bnVzZWQsIGJ1dCBlbmFibGUgaXQKKyAqIGZvciBXPTEgYnVpbGQuIFRoaXMgd2lsbCBhbGxvdyBjbGFuZyB0byBmaW5kIHVudXNlZCBmdW5jdGlvbnMuIFJlbW92ZSB0aGUKKyAqIF9faW5saW5lX21heWJlX3VudXNlZCBlbnRpcmVseSBhZnRlciBmaXhpbmcgbW9zdCBvZiAtV3VudXNlZC1mdW5jdGlvbiB3YXJuaW5ncy4KKyAqLworI2lmZGVmIEtCVUlMRF9FWFRSQV9XQVJOMQorI2RlZmluZSBfX2lubGluZV9tYXliZV91bnVzZWQKKyNlbHNlCisjZGVmaW5lIF9faW5saW5lX21heWJlX3VudXNlZCBfX21heWJlX3VudXNlZAorI2VuZGlmCiAKIC8qCiAgKiBSYXRoZXIgdGhlbiB1c2luZyBub2lubGluZSB0byBwcmV2ZW50IHN0YWNrIGNvbnN1bXB0aW9uLCB1c2UKQEAgLTE4OSw2ICsyMDYsMTIgQEAgc3RydWN0IGZ0cmFjZV9saWtlbHlfZGF0YSB7CiAjZGVmaW5lIGFzbV92b2xhdGlsZV9nb3RvKHguLi4pIGFzbSBnb3RvKHgpCiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19DQ19IQVNfQVNNX0lOTElORQorI2RlZmluZSBhc21faW5saW5lIGFzbSBfX2lubGluZQorI2Vsc2UKKyNkZWZpbmUgYXNtX2lubGluZSBhc20KKyNlbmRpZgorCiAjaWZuZGVmIF9fbm9fZmdjc2UKICMgZGVmaW5lIF9fbm9fZmdjc2UKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jcHUuaCBiL2luY2x1ZGUvbGludXgvY3B1LmgKaW5kZXggODhkYzBjNi4uZDA2MzNlYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jcHUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NwdS5oCkBAIC0yMDEsMTIgKzIwMSwxNCBAQCBlbnVtIGNwdWhwX3NtdF9jb250cm9sIHsKIGV4dGVybiBlbnVtIGNwdWhwX3NtdF9jb250cm9sIGNwdV9zbXRfY29udHJvbDsKIGV4dGVybiB2b2lkIGNwdV9zbXRfZGlzYWJsZShib29sIGZvcmNlKTsKIGV4dGVybiB2b2lkIGNwdV9zbXRfY2hlY2tfdG9wb2xvZ3kodm9pZCk7CitleHRlcm4gYm9vbCBjcHVfc210X3Bvc3NpYmxlKHZvaWQpOwogZXh0ZXJuIGludCBjcHVocF9zbXRfZW5hYmxlKHZvaWQpOwogZXh0ZXJuIGludCBjcHVocF9zbXRfZGlzYWJsZShlbnVtIGNwdWhwX3NtdF9jb250cm9sIGN0cmx2YWwpOwogI2Vsc2UKICMgZGVmaW5lIGNwdV9zbXRfY29udHJvbAkJKENQVV9TTVRfTk9UX0lNUExFTUVOVEVEKQogc3RhdGljIGlubGluZSB2b2lkIGNwdV9zbXRfZGlzYWJsZShib29sIGZvcmNlKSB7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfc210X2NoZWNrX3RvcG9sb2d5KHZvaWQpIHsgfQorc3RhdGljIGlubGluZSBib29sIGNwdV9zbXRfcG9zc2libGUodm9pZCkgeyByZXR1cm4gZmFsc2U7IH0KIHN0YXRpYyBpbmxpbmUgaW50IGNwdWhwX3NtdF9lbmFibGUodm9pZCkgeyByZXR1cm4gMDsgfQogc3RhdGljIGlubGluZSBpbnQgY3B1aHBfc210X2Rpc2FibGUoZW51bSBjcHVocF9zbXRfY29udHJvbCBjdHJsdmFsKSB7IHJldHVybiAwOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIGIvaW5jbHVkZS9saW51eC9jcHVtYXNrLmgKaW5kZXggYjVhNWExZS4uNzhhNzNlYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jcHVtYXNrLmgKKysrIGIvaW5jbHVkZS9saW51eC9jcHVtYXNrLmgKQEAgLTIwMCw4ICsyMDAsOCBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjcHVtYXNrX2xvY2FsX3NwcmVhZCh1bnNpZ25lZCBpbnQgaSwgaW50IG5vZGUpCiAJZm9yICgoY3B1KSA9IDA7IChjcHUpIDwgMTsgKGNwdSkrKywgKHZvaWQpbWFzaykKICNkZWZpbmUgZm9yX2VhY2hfY3B1X3dyYXAoY3B1LCBtYXNrLCBzdGFydCkJXAogCWZvciAoKGNwdSkgPSAwOyAoY3B1KSA8IDE7IChjcHUpKyssICh2b2lkKW1hc2ssICh2b2lkKShzdGFydCkpCi0jZGVmaW5lIGZvcl9lYWNoX2NwdV9hbmQoY3B1LCBtYXNrLCBhbmQpCVwKLQlmb3IgKChjcHUpID0gMDsgKGNwdSkgPCAxOyAoY3B1KSsrLCAodm9pZCltYXNrLCAodm9pZClhbmQpCisjZGVmaW5lIGZvcl9lYWNoX2NwdV9hbmQoY3B1LCBtYXNrMSwgbWFzazIpCVwKKwlmb3IgKChjcHUpID0gMDsgKGNwdSkgPCAxOyAoY3B1KSsrLCAodm9pZCltYXNrMSwgKHZvaWQpbWFzazIpCiAjZWxzZQogLyoqCiAgKiBjcHVtYXNrX2ZpcnN0IC0gZ2V0IHRoZSBmaXJzdCBjcHUgaW4gYSBjcHVtYXNrCkBAIC0yOTAsMjAgKzI5MCwyMCBAQCBleHRlcm4gaW50IGNwdW1hc2tfbmV4dF93cmFwKGludCBuLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywgaW50IHN0YXJ0LCBib29sCiAvKioKICAqIGZvcl9lYWNoX2NwdV9hbmQgLSBpdGVyYXRlIG92ZXIgZXZlcnkgY3B1IGluIGJvdGggbWFza3MKICAqIEBjcHU6IHRoZSAob3B0aW9uYWxseSB1bnNpZ25lZCkgaW50ZWdlciBpdGVyYXRvcgotICogQG1hc2s6IHRoZSBmaXJzdCBjcHVtYXNrIHBvaW50ZXIKLSAqIEBhbmQ6IHRoZSBzZWNvbmQgY3B1bWFzayBwb2ludGVyCisgKiBAbWFzazE6IHRoZSBmaXJzdCBjcHVtYXNrIHBvaW50ZXIKKyAqIEBtYXNrMjogdGhlIHNlY29uZCBjcHVtYXNrIHBvaW50ZXIKICAqCiAgKiBUaGlzIHNhdmVzIGEgdGVtcG9yYXJ5IENQVSBtYXNrIGluIG1hbnkgcGxhY2VzLiAgSXQgaXMgZXF1aXZhbGVudCB0bzoKICAqCXN0cnVjdCBjcHVtYXNrIHRtcDsKLSAqCWNwdW1hc2tfYW5kKCZ0bXAsICZtYXNrLCAmYW5kKTsKKyAqCWNwdW1hc2tfYW5kKCZ0bXAsICZtYXNrMSwgJm1hc2syKTsKICAqCWZvcl9lYWNoX2NwdShjcHUsICZ0bXApCiAgKgkJLi4uCiAgKgogICogQWZ0ZXIgdGhlIGxvb3AsIGNwdSBpcyA+PSBucl9jcHVfaWRzLgogICovCi0jZGVmaW5lIGZvcl9lYWNoX2NwdV9hbmQoY3B1LCBtYXNrLCBhbmQpCQkJCVwKKyNkZWZpbmUgZm9yX2VhY2hfY3B1X2FuZChjcHUsIG1hc2sxLCBtYXNrMikJCQkJXAogCWZvciAoKGNwdSkgPSAtMTsJCQkJCQlcCi0JCShjcHUpID0gY3B1bWFza19uZXh0X2FuZCgoY3B1KSwgKG1hc2spLCAoYW5kKSksCQlcCisJCShjcHUpID0gY3B1bWFza19uZXh0X2FuZCgoY3B1KSwgKG1hc2sxKSwgKG1hc2syKSksCVwKIAkJKGNwdSkgPCBucl9jcHVfaWRzOykKICNlbmRpZiAvKiBTTVAgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jcmFzaF9kdW1wLmggYi9pbmNsdWRlL2xpbnV4L2NyYXNoX2R1bXAuaAppbmRleCBmNzc0YzVlLi40NjY0ZmMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NyYXNoX2R1bXAuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NyYXNoX2R1bXAuaApAQCAtMTE1LDQgKzExNSwxOCBAQCBzdGF0aWMgaW5saW5lIGludCB2bWNvcmVfYWRkX2RldmljZV9kdW1wKHN0cnVjdCB2bWNvcmVkZF9kYXRhICpkYXRhKQogCXJldHVybiAtRU9QTk9UU1VQUDsKIH0KICNlbmRpZiAvKiBDT05GSUdfUFJPQ19WTUNPUkVfREVWSUNFX0RVTVAgKi8KKworI2lmZGVmIENPTkZJR19QUk9DX1ZNQ09SRQorc3NpemVfdCByZWFkX2Zyb21fb2xkbWVtKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAorCQkJIHU2NCAqcHBvcywgaW50IHVzZXJidWYsCisJCQkgYm9vbCBlbmNyeXB0ZWQpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgc3NpemVfdCByZWFkX2Zyb21fb2xkbWVtKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAorCQkJCSAgICAgICB1NjQgKnBwb3MsIGludCB1c2VyYnVmLAorCQkJCSAgICAgICBib29sIGVuY3J5cHRlZCkKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisjZW5kaWYgLyogQ09ORklHX1BST0NfVk1DT1JFICovCisKICNlbmRpZiAvKiBMSU5VWF9DUkFTSERVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jcmVkLmggYi9pbmNsdWRlL2xpbnV4L2NyZWQuaAppbmRleCBmN2EzMGUwLi4xODYzOWMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NyZWQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NyZWQuaApAQCAtMzg2LDcgKzM4Niw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfY3JlZChjb25zdCBzdHJ1Y3QgY3JlZCAqX2NyZWQpCiAjZGVmaW5lIGN1cnJlbnRfZnNnaWQoKSAJKGN1cnJlbnRfY3JlZF94eHgoZnNnaWQpKQogI2RlZmluZSBjdXJyZW50X2NhcCgpCQkoY3VycmVudF9jcmVkX3h4eChjYXBfZWZmZWN0aXZlKSkKICNkZWZpbmUgY3VycmVudF91c2VyKCkJCShjdXJyZW50X2NyZWRfeHh4KHVzZXIpKQotI2RlZmluZSBjdXJyZW50X3NlY3VyaXR5KCkJKGN1cnJlbnRfY3JlZF94eHgoc2VjdXJpdHkpKQogCiBleHRlcm4gc3RydWN0IHVzZXJfbmFtZXNwYWNlIGluaXRfdXNlcl9uczsKICNpZmRlZiBDT05GSUdfVVNFUl9OUwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAppbmRleCBiYWUwNjBmLi5lYzIxMmNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAorKysgYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaApAQCAtMzA2LDcgKzMwNiw3IEBAIHN0cnVjdCBkbWFfYnVmIHsKIAlzdHJ1Y3QgbW9kdWxlICpvd25lcjsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Rfbm9kZTsKIAl2b2lkICpwcml2OwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3Y7CisJc3RydWN0IGRtYV9yZXN2ICpyZXN2OwogCiAJLyogcG9sbCBzdXBwb3J0ICovCiAJd2FpdF9xdWV1ZV9oZWFkX3QgcG9sbDsKQEAgLTM2NSw3ICszNjUsNyBAQCBzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mbyB7CiAJY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzICpvcHM7CiAJc2l6ZV90IHNpemU7CiAJaW50IGZsYWdzOwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3Y7CisJc3RydWN0IGRtYV9yZXN2ICpyZXN2OwogCXZvaWQgKnByaXY7CiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oIGIvaW5jbHVkZS9saW51eC9kbWEtZmVuY2UuaAppbmRleCAwNWQyOWRiLi4zMzQ3YzU0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oCisrKyBiL2luY2x1ZGUvbGludXgvZG1hLWZlbmNlLmgKQEAgLTYzLDE1ICs2MywzNSBAQCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiOwogICogYmVlbiBjb21wbGV0ZWQsIG9yIG5ldmVyIGNhbGxlZCBhdCBhbGwuCiAgKi8KIHN0cnVjdCBkbWFfZmVuY2UgewotCXN0cnVjdCBrcmVmIHJlZmNvdW50OwotCWNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzICpvcHM7Ci0Jc3RydWN0IHJjdV9oZWFkIHJjdTsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGNiX2xpc3Q7CiAJc3BpbmxvY2tfdCAqbG9jazsKKwljb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyAqb3BzOworCS8qCisJICogV2UgY2xlYXIgdGhlIGNhbGxiYWNrIGxpc3Qgb24ga3JlZl9wdXQgc28gdGhhdCBieSB0aGUgdGltZSB3ZQorCSAqIHJlbGVhc2UgdGhlIGZlbmNlIGl0IGlzIHVudXNlZC4gTm8gb25lIHNob3VsZCBiZSBhZGRpbmcgdG8gdGhlCisJICogY2JfbGlzdCB0aGF0IHRoZXkgZG9uJ3QgdGhlbXNlbHZlcyBob2xkIGEgcmVmZXJlbmNlIGZvci4KKwkgKgorCSAqIFRoZSBsaWZldGltZSBvZiB0aGUgdGltZXN0YW1wIGlzIHNpbWlsYXJseSB0aWVkIHRvIGJvdGggdGhlCisJICogcmN1IGZyZWVsaXN0IGFuZCB0aGUgY2JfbGlzdC4gVGhlIHRpbWVzdGFtcCBpcyBvbmx5IHNldCB1cG9uCisJICogc2lnbmFsaW5nIHdoaWxlIHNpbXVsdGFuZW91c2x5IG5vdGlmeWluZyB0aGUgY2JfbGlzdC4gRXJnbywgd2UKKwkgKiBvbmx5IHVzZSBlaXRoZXIgdGhlIGNiX2xpc3Qgb2YgdGltZXN0YW1wLiBVcG9uIGRlc3RydWN0aW9uLAorCSAqIG5laXRoZXIgYXJlIGFjY2Vzc2libGUsIGFuZCBzbyB3ZSBjYW4gdXNlIHRoZSByY3UuIFRoaXMgbWVhbnMKKwkgKiB0aGF0IHRoZSBjYl9saXN0IGlzICpvbmx5KiB2YWxpZCB1bnRpbCB0aGUgc2lnbmFsIGJpdCBpcyBzZXQsCisJICogYW5kIHRvIHJlYWQgZWl0aGVyIHlvdSAqbXVzdCogaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgZmVuY2UsCisJICogYW5kIG5vdCBqdXN0IHRoZSByY3VfcmVhZF9sb2NrLgorCSAqCisJICogTGlzdGVkIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIuCisJICovCisJdW5pb24geworCQlzdHJ1Y3QgbGlzdF9oZWFkIGNiX2xpc3Q7CisJCS8qIEBjYl9saXN0IHJlcGxhY2VkIGJ5IEB0aW1lc3RhbXAgb24gZG1hX2ZlbmNlX3NpZ25hbCgpICovCisJCWt0aW1lX3QgdGltZXN0YW1wOworCQkvKiBAdGltZXN0YW1wIHJlcGxhY2VkIGJ5IEByY3Ugb24gZG1hX2ZlbmNlX3JlbGVhc2UoKSAqLworCQlzdHJ1Y3QgcmN1X2hlYWQgcmN1OworCX07CiAJdTY0IGNvbnRleHQ7CiAJdTY0IHNlcW5vOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0Ja3RpbWVfdCB0aW1lc3RhbXA7CisJc3RydWN0IGtyZWYgcmVmY291bnQ7CiAJaW50IGVycm9yOwogfTsKIApAQCAtMjczLDcgKzI5Myw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlX2dldChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIH0KIAogLyoqCi0gKiBkbWFfZmVuY2VfZ2V0X3JjdSAtIGdldCBhIGZlbmNlIGZyb20gYSByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCB3aXRoCisgKiBkbWFfZmVuY2VfZ2V0X3JjdSAtIGdldCBhIGZlbmNlIGZyb20gYSBkbWFfcmVzdl9saXN0IHdpdGgKICAqICAgICAgICAgICAgICAgICAgICAgcmN1IHJlYWQgbG9jawogICogQGZlbmNlOiBmZW5jZSB0byBpbmNyZWFzZSByZWZjb3VudCBvZgogICoKQEAgLTI5Nyw3ICszMTcsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2UgKmRtYV9mZW5jZV9nZXRfcmN1KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogICogc28gbG9uZyBhcyB0aGUgY2FsbGVyIGlzIHVzaW5nIFJDVSBvbiB0aGUgcG9pbnRlciB0byB0aGUgZmVuY2UuCiAgKgogICogQW4gYWx0ZXJuYXRpdmUgbWVjaGFuaXNtIGlzIHRvIGVtcGxveSBhIHNlcWxvY2sgdG8gcHJvdGVjdCBhIGJ1bmNoIG9mCi0gKiBmZW5jZXMsIHN1Y2ggYXMgdXNlZCBieSBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0LiBXaGVuIHVzaW5nIGEgc2VxbG9jaywKKyAqIGZlbmNlcywgc3VjaCBhcyB1c2VkIGJ5IHN0cnVjdCBkbWFfcmVzdi4gV2hlbiB1c2luZyBhIHNlcWxvY2ssCiAgKiB0aGUgc2VxbG9jayBtdXN0IGJlIHRha2VuIGJlZm9yZSBhbmQgY2hlY2tlZCBhZnRlciBhIHJlZmVyZW5jZSB0byB0aGUKICAqIGZlbmNlIGlzIGFjcXVpcmVkIChhcyBzaG93biBoZXJlKS4KICAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmgKaW5kZXggMTQ3MDJlMi4uNGExYzRmYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oCisrKyBiL2luY2x1ZGUvbGludXgvZG1hLW1hcHBpbmcuaApAQCAtMTMxLDYgKzEzMSw3IEBAIHN0cnVjdCBkbWFfbWFwX29wcyB7CiAJaW50ICgqZG1hX3N1cHBvcnRlZCkoc3RydWN0IGRldmljZSAqZGV2LCB1NjQgbWFzayk7CiAJdTY0ICgqZ2V0X3JlcXVpcmVkX21hc2spKHN0cnVjdCBkZXZpY2UgKmRldik7CiAJc2l6ZV90ICgqbWF4X21hcHBpbmdfc2l6ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKKwl1bnNpZ25lZCBsb25nICgqZ2V0X21lcmdlX2JvdW5kYXJ5KShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogfTsKIAogI2RlZmluZSBETUFfTUFQUElOR19FUlJPUgkJKH4oZG1hX2FkZHJfdCkwKQpAQCAtNDU3LDExICs0NTgsMTMgQEAgaW50IGRtYV9nZXRfc2d0YWJsZV9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzZ190YWJsZSAqc2d0LAogaW50IGRtYV9tbWFwX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCXZvaWQgKmNwdV9hZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRyLCBzaXplX3Qgc2l6ZSwKIAkJdW5zaWduZWQgbG9uZyBhdHRycyk7Citib29sIGRtYV9jYW5fbW1hcChzdHJ1Y3QgZGV2aWNlICpkZXYpOwogaW50IGRtYV9zdXBwb3J0ZWQoc3RydWN0IGRldmljZSAqZGV2LCB1NjQgbWFzayk7CiBpbnQgZG1hX3NldF9tYXNrKHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IG1hc2spOwogaW50IGRtYV9zZXRfY29oZXJlbnRfbWFzayhzdHJ1Y3QgZGV2aWNlICpkZXYsIHU2NCBtYXNrKTsKIHU2NCBkbWFfZ2V0X3JlcXVpcmVkX21hc2soc3RydWN0IGRldmljZSAqZGV2KTsKIHNpemVfdCBkbWFfbWF4X21hcHBpbmdfc2l6ZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwordW5zaWduZWQgbG9uZyBkbWFfZ2V0X21lcmdlX2JvdW5kYXJ5KHN0cnVjdCBkZXZpY2UgKmRldik7CiAjZWxzZSAvKiBDT05GSUdfSEFTX0RNQSAqLwogc3RhdGljIGlubGluZSBkbWFfYWRkcl90IGRtYV9tYXBfcGFnZV9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCXN0cnVjdCBwYWdlICpwYWdlLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwKQEAgLTU0Nyw2ICs1NTAsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgZG1hX21tYXBfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIHsKIAlyZXR1cm4gLUVOWElPOwogfQorc3RhdGljIGlubGluZSBib29sIGRtYV9jYW5fbW1hcChzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIGZhbHNlOworfQogc3RhdGljIGlubGluZSBpbnQgZG1hX3N1cHBvcnRlZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHU2NCBtYXNrKQogewogCXJldHVybiAwOwpAQCAtNTY3LDYgKzU3NCwxMCBAQCBzdGF0aWMgaW5saW5lIHNpemVfdCBkbWFfbWF4X21hcHBpbmdfc2l6ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJcmV0dXJuIDA7CiB9CitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZG1hX2dldF9tZXJnZV9ib3VuZGFyeShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIDA7Cit9CiAjZW5kaWYgLyogQ09ORklHX0hBU19ETUEgKi8KIAogc3RhdGljIGlubGluZSBkbWFfYWRkcl90IGRtYV9tYXBfc2luZ2xlX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqcHRyLApAQCAtNjEwLDE2ICs2MjEsMTQgQEAgZXh0ZXJuIGludCBkbWFfY29tbW9uX21tYXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHNpemVfdCBzaXplLAogCQl1bnNpZ25lZCBsb25nIGF0dHJzKTsKIAorc3RydWN0IHBhZ2UgKipkbWFfY29tbW9uX2ZpbmRfcGFnZXModm9pZCAqY3B1X2FkZHIpOwogdm9pZCAqZG1hX2NvbW1vbl9jb250aWd1b3VzX3JlbWFwKHN0cnVjdCBwYWdlICpwYWdlLCBzaXplX3Qgc2l6ZSwKLQkJCXVuc2lnbmVkIGxvbmcgdm1fZmxhZ3MsCiAJCQlwZ3Byb3RfdCBwcm90LCBjb25zdCB2b2lkICpjYWxsZXIpOwogCiB2b2lkICpkbWFfY29tbW9uX3BhZ2VzX3JlbWFwKHN0cnVjdCBwYWdlICoqcGFnZXMsIHNpemVfdCBzaXplLAotCQkJdW5zaWduZWQgbG9uZyB2bV9mbGFncywgcGdwcm90X3QgcHJvdCwKLQkJCWNvbnN0IHZvaWQgKmNhbGxlcik7Ci12b2lkIGRtYV9jb21tb25fZnJlZV9yZW1hcCh2b2lkICpjcHVfYWRkciwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGxvbmcgdm1fZmxhZ3MpOworCQkJcGdwcm90X3QgcHJvdCwgY29uc3Qgdm9pZCAqY2FsbGVyKTsKK3ZvaWQgZG1hX2NvbW1vbl9mcmVlX3JlbWFwKHZvaWQgKmNwdV9hZGRyLCBzaXplX3Qgc2l6ZSk7CiAKLWludCBfX2luaXQgZG1hX2F0b21pY19wb29sX2luaXQoZ2ZwX3QgZ2ZwLCBwZ3Byb3RfdCBwcm90KTsKIGJvb2wgZG1hX2luX2F0b21pY19wb29sKHZvaWQgKnN0YXJ0LCBzaXplX3Qgc2l6ZSk7CiB2b2lkICpkbWFfYWxsb2NfZnJvbV9wb29sKHNpemVfdCBzaXplLCBzdHJ1Y3QgcGFnZSAqKnJldF9wYWdlLCBnZnBfdCBmbGFncyk7CiBib29sIGRtYV9mcmVlX2Zyb21fcG9vbCh2b2lkICpzdGFydCwgc2l6ZV90IHNpemUpOwpAQCAtNzQ5LDcgKzc1OCw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KHZvaWQpCiAjaWZkZWYgQ09ORklHX0RNQV9ERUNMQVJFX0NPSEVSRU5UCiBpbnQgZG1hX2RlY2xhcmVfY29oZXJlbnRfbWVtb3J5KHN0cnVjdCBkZXZpY2UgKmRldiwgcGh5c19hZGRyX3QgcGh5c19hZGRyLAogCQkJCWRtYV9hZGRyX3QgZGV2aWNlX2FkZHIsIHNpemVfdCBzaXplKTsKLXZvaWQgZG1hX3JlbGVhc2VfZGVjbGFyZWRfbWVtb3J5KHN0cnVjdCBkZXZpY2UgKmRldik7CiAjZWxzZQogc3RhdGljIGlubGluZSBpbnQKIGRtYV9kZWNsYXJlX2NvaGVyZW50X21lbW9yeShzdHJ1Y3QgZGV2aWNlICpkZXYsIHBoeXNfYWRkcl90IHBoeXNfYWRkciwKQEAgLTc1NywxMSArNzY1LDYgQEAgZG1hX2RlY2xhcmVfY29oZXJlbnRfbWVtb3J5KHN0cnVjdCBkZXZpY2UgKmRldiwgcGh5c19hZGRyX3QgcGh5c19hZGRyLAogewogCXJldHVybiAtRU5PU1lTOwogfQotCi1zdGF0aWMgaW5saW5lIHZvaWQKLWRtYV9yZWxlYXNlX2RlY2xhcmVkX21lbW9yeShzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci19CiAjZW5kaWYgLyogQ09ORklHX0RNQV9ERUNMQVJFX0NPSEVSRU5UICovCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCAqZG1hbV9hbGxvY19jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLApAQCAtNzgxLDkgKzc4NCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqZG1hX2FsbG9jX3djKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAKIAlyZXR1cm4gZG1hX2FsbG9jX2F0dHJzKGRldiwgc2l6ZSwgZG1hX2FkZHIsIGdmcCwgYXR0cnMpOwogfQotI2lmbmRlZiBkbWFfYWxsb2Nfd3JpdGVjb21iaW5lCi0jZGVmaW5lIGRtYV9hbGxvY193cml0ZWNvbWJpbmUgZG1hX2FsbG9jX3djCi0jZW5kaWYKIAogc3RhdGljIGlubGluZSB2b2lkIGRtYV9mcmVlX3djKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJCQkgICAgICAgdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIpCkBAIC03OTEsOSArNzkxLDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGRtYV9mcmVlX3djKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJcmV0dXJuIGRtYV9mcmVlX2F0dHJzKGRldiwgc2l6ZSwgY3B1X2FkZHIsIGRtYV9hZGRyLAogCQkJICAgICAgRE1BX0FUVFJfV1JJVEVfQ09NQklORSk7CiB9Ci0jaWZuZGVmIGRtYV9mcmVlX3dyaXRlY29tYmluZQotI2RlZmluZSBkbWFfZnJlZV93cml0ZWNvbWJpbmUgZG1hX2ZyZWVfd2MKLSNlbmRpZgogCiBzdGF0aWMgaW5saW5lIGludCBkbWFfbW1hcF93YyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkgICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKQEAgLTgwMyw5ICs4MDAsNiBAQCBzdGF0aWMgaW5saW5lIGludCBkbWFfbW1hcF93YyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIGRtYV9tbWFwX2F0dHJzKGRldiwgdm1hLCBjcHVfYWRkciwgZG1hX2FkZHIsIHNpemUsCiAJCQkgICAgICBETUFfQVRUUl9XUklURV9DT01CSU5FKTsKIH0KLSNpZm5kZWYgZG1hX21tYXBfd3JpdGVjb21iaW5lCi0jZGVmaW5lIGRtYV9tbWFwX3dyaXRlY29tYmluZSBkbWFfbW1hcF93YwotI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTkVFRF9ETUFfTUFQX1NUQVRFCiAjZGVmaW5lIERFRklORV9ETUFfVU5NQVBfQUREUihBRERSX05BTUUpICAgICAgICBkbWFfYWRkcl90IEFERFJfTkFNRQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtbm9uY29oZXJlbnQuaCBiL2luY2x1ZGUvbGludXgvZG1hLW5vbmNvaGVyZW50LmgKaW5kZXggMGJmZjNkNy4uZGQzZGU2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtbm9uY29oZXJlbnQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2RtYS1ub25jb2hlcmVudC5oCkBAIC0zLDYgKzMsNyBAQAogI2RlZmluZSBfTElOVVhfRE1BX05PTkNPSEVSRU5UX0ggMQogCiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogCiAjaWZkZWYgQ09ORklHX0FSQ0hfSEFTX0RNQV9DT0hFUkVOQ0VfSAogI2luY2x1ZGUgPGFzbS9kbWEtY29oZXJlbmNlLmg+CkBAIC00MiwxMCArNDMsMTggQEAgdm9pZCBhcmNoX2RtYV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHZvaWQgKmNwdV9hZGRyLAogCQlkbWFfYWRkcl90IGRtYV9hZGRyLCB1bnNpZ25lZCBsb25nIGF0dHJzKTsKIGxvbmcgYXJjaF9kbWFfY29oZXJlbnRfdG9fcGZuKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqY3B1X2FkZHIsCiAJCWRtYV9hZGRyX3QgZG1hX2FkZHIpOwotcGdwcm90X3QgYXJjaF9kbWFfbW1hcF9wZ3Byb3Qoc3RydWN0IGRldmljZSAqZGV2LCBwZ3Byb3RfdCBwcm90LAotCQl1bnNpZ25lZCBsb25nIGF0dHJzKTsKIAogI2lmZGVmIENPTkZJR19NTVUKKy8qCisgKiBQYWdlIHByb3RlY3Rpb24gc28gdGhhdCBkZXZpY2VzIHRoYXQgY2FuJ3Qgc25vb3AgQ1BVIGNhY2hlcyBjYW4gdXNlIHRoZQorICogbWVtb3J5IGNvaGVyZW50bHkuICBXZSBkZWZhdWx0IHRvIHBncHJvdF9ub25jYWNoZWQgd2hpY2ggaXMgdXN1YWxseSB1c2VkCisgKiBmb3IgaW9yZW1hcCBhcyBhIHNhZmUgYmV0LCBidXQgYXJjaGl0ZWN0dXJlcyBjYW4gb3ZlcnJpZGUgdGhpcyB3aXRoIGxlc3MKKyAqIHN0cmljdCBzZW1hbnRpY3MgaWYgcG9zc2libGUuCisgKi8KKyNpZm5kZWYgcGdwcm90X2RtYWNvaGVyZW50CisjZGVmaW5lIHBncHJvdF9kbWFjb2hlcmVudChwcm90KQlwZ3Byb3Rfbm9uY2FjaGVkKHByb3QpCisjZW5kaWYKKwogcGdwcm90X3QgZG1hX3BncHJvdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHBncHJvdF90IHByb3QsIHVuc2lnbmVkIGxvbmcgYXR0cnMpOwogI2Vsc2UKIHN0YXRpYyBpbmxpbmUgcGdwcm90X3QgZG1hX3BncHJvdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHBncHJvdF90IHByb3QsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1yZXN2LmggYi9pbmNsdWRlL2xpbnV4L2RtYS1yZXN2LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU1MGQxMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvZG1hLXJlc3YuaApAQCAtMCwwICsxLDI5NSBAQAorLyoKKyAqIEhlYWRlciBmaWxlIGZvciByZXNlcnZhdGlvbnMgZm9yIGRtYS1idWYgYW5kIHR0bQorICoKKyAqIENvcHlyaWdodChDKSAyMDExIExpbmFybyBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgQ2Fub25pY2FsIEx0ZAorICogQ29weXJpZ2h0IChDKSAyMDEyIFRleGFzIEluc3RydW1lbnRzCisgKgorICogQXV0aG9yczoKKyAqIFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KKyAqIE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBjYW5vbmljYWwuY29tPgorICogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbS1hdC12bXdhcmUtZG90LWNvbT4KKyAqCisgKiBCYXNlZCBvbiBiby5jIHdoaWNoIGJlYXJzIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0IG5vdGljZSwKKyAqIGJ1dCBpcyBkdWFsIGxpY2Vuc2VkOgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA5IFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bworICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCisgKiBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUlMsIEFVVEhPUlMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCisgKiBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKKyAqIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKKyAqIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX0xJTlVYX1JFU0VSVkFUSU9OX0gKKyNkZWZpbmUgX0xJTlVYX1JFU0VSVkFUSU9OX0gKKworI2luY2x1ZGUgPGxpbnV4L3d3X211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcWxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgorCitleHRlcm4gc3RydWN0IHd3X2NsYXNzIHJlc2VydmF0aW9uX3d3X2NsYXNzOworZXh0ZXJuIHN0cnVjdCBsb2NrX2NsYXNzX2tleSByZXNlcnZhdGlvbl9zZXFjb3VudF9jbGFzczsKK2V4dGVybiBjb25zdCBjaGFyIHJlc2VydmF0aW9uX3NlcWNvdW50X3N0cmluZ1tdOworCisvKioKKyAqIHN0cnVjdCBkbWFfcmVzdl9saXN0IC0gYSBsaXN0IG9mIHNoYXJlZCBmZW5jZXMKKyAqIEByY3U6IGZvciBpbnRlcm5hbCB1c2UKKyAqIEBzaGFyZWRfY291bnQ6IHRhYmxlIG9mIHNoYXJlZCBmZW5jZXMKKyAqIEBzaGFyZWRfbWF4OiBmb3IgZ3Jvd2luZyBzaGFyZWQgZmVuY2UgdGFibGUKKyAqIEBzaGFyZWQ6IHNoYXJlZCBmZW5jZSB0YWJsZQorICovCitzdHJ1Y3QgZG1hX3Jlc3ZfbGlzdCB7CisJc3RydWN0IHJjdV9oZWFkIHJjdTsKKwl1MzIgc2hhcmVkX2NvdW50LCBzaGFyZWRfbWF4OworCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKnNoYXJlZFtdOworfTsKKworLyoqCisgKiBzdHJ1Y3QgZG1hX3Jlc3YgLSBhIHJlc2VydmF0aW9uIG9iamVjdCBtYW5hZ2VzIGZlbmNlcyBmb3IgYSBidWZmZXIKKyAqIEBsb2NrOiB1cGRhdGUgc2lkZSBsb2NrCisgKiBAc2VxOiBzZXF1ZW5jZSBjb3VudCBmb3IgbWFuYWdpbmcgUkNVIHJlYWQtc2lkZSBzeW5jaHJvbml6YXRpb24KKyAqIEBmZW5jZV9leGNsOiB0aGUgZXhjbHVzaXZlIGZlbmNlLCBpZiB0aGVyZSBpcyBvbmUgY3VycmVudGx5CisgKiBAZmVuY2U6IGxpc3Qgb2YgY3VycmVudCBzaGFyZWQgZmVuY2VzCisgKi8KK3N0cnVjdCBkbWFfcmVzdiB7CisJc3RydWN0IHd3X211dGV4IGxvY2s7CisJc2VxY291bnRfdCBzZXE7CisKKwlzdHJ1Y3QgZG1hX2ZlbmNlIF9fcmN1ICpmZW5jZV9leGNsOworCXN0cnVjdCBkbWFfcmVzdl9saXN0IF9fcmN1ICpmZW5jZTsKK307CisKKyNkZWZpbmUgZG1hX3Jlc3ZfaGVsZChvYmopIGxvY2tkZXBfaXNfaGVsZCgmKG9iaiktPmxvY2suYmFzZSkKKyNkZWZpbmUgZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQob2JqKSBsb2NrZGVwX2Fzc2VydF9oZWxkKCYob2JqKS0+bG9jay5iYXNlKQorCisvKioKKyAqIGRtYV9yZXN2X2dldF9saXN0IC0gZ2V0IHRoZSByZXNlcnZhdGlvbiBvYmplY3QncworICogc2hhcmVkIGZlbmNlIGxpc3QsIHdpdGggdXBkYXRlLXNpZGUgbG9jayBoZWxkCisgKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKgorICogUmV0dXJucyB0aGUgc2hhcmVkIGZlbmNlIGxpc3QuICBEb2VzIE5PVCB0YWtlIHJlZmVyZW5jZXMgdG8KKyAqIHRoZSBmZW5jZS4gIFRoZSBvYmotPmxvY2sgbXVzdCBiZSBoZWxkLgorICovCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfcmVzdl9saXN0ICpkbWFfcmVzdl9nZXRfbGlzdChzdHJ1Y3QgZG1hX3Jlc3YgKm9iaikKK3sKKwlyZXR1cm4gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvYmotPmZlbmNlLAorCQkJCQkgZG1hX3Jlc3ZfaGVsZChvYmopKTsKK30KKworLyoqCisgKiBkbWFfcmVzdl9sb2NrIC0gbG9jayB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAY3R4OiB0aGUgbG9ja2luZyBjb250ZXh0CisgKgorICogTG9ja3MgdGhlIHJlc2VydmF0aW9uIG9iamVjdCBmb3IgZXhjbHVzaXZlIGFjY2VzcyBhbmQgbW9kaWZpY2F0aW9uLiBOb3RlLAorICogdGhhdCB0aGUgbG9jayBpcyBvbmx5IGFnYWluc3Qgb3RoZXIgd3JpdGVycywgcmVhZGVycyB3aWxsIHJ1biBjb25jdXJyZW50bHkKKyAqIHdpdGggYSB3cml0ZXIgdW5kZXIgUkNVLiBUaGUgc2VxbG9jayBpcyB1c2VkIHRvIG5vdGlmeSByZWFkZXJzIGlmIHRoZXkKKyAqIG92ZXJsYXAgd2l0aCBhIHdyaXRlci4KKyAqCisgKiBBcyB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0IG1heSBiZSBsb2NrZWQgYnkgbXVsdGlwbGUgcGFydGllcyBpbiBhbgorICogdW5kZWZpbmVkIG9yZGVyLCBhICN3d19hY3F1aXJlX2N0eCBpcyBwYXNzZWQgdG8gdW53aW5kIGlmIGEgY3ljbGUKKyAqIGlzIGRldGVjdGVkLiBTZWUgd3dfbXV0ZXhfbG9jaygpIGFuZCB3d19hY3F1aXJlX2luaXQoKS4gQSByZXNlcnZhdGlvbgorICogb2JqZWN0IG1heSBiZSBsb2NrZWQgYnkgaXRzZWxmIGJ5IHBhc3NpbmcgTlVMTCBhcyBAY3R4LgorICovCitzdGF0aWMgaW5saW5lIGludCBkbWFfcmVzdl9sb2NrKHN0cnVjdCBkbWFfcmVzdiAqb2JqLAorCQkJCXN0cnVjdCB3d19hY3F1aXJlX2N0eCAqY3R4KQoreworCXJldHVybiB3d19tdXRleF9sb2NrKCZvYmotPmxvY2ssIGN0eCk7Cit9CisKKy8qKgorICogZG1hX3Jlc3ZfbG9ja19pbnRlcnJ1cHRpYmxlIC0gbG9jayB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAY3R4OiB0aGUgbG9ja2luZyBjb250ZXh0CisgKgorICogTG9ja3MgdGhlIHJlc2VydmF0aW9uIG9iamVjdCBpbnRlcnJ1cHRpYmxlIGZvciBleGNsdXNpdmUgYWNjZXNzIGFuZAorICogbW9kaWZpY2F0aW9uLiBOb3RlLCB0aGF0IHRoZSBsb2NrIGlzIG9ubHkgYWdhaW5zdCBvdGhlciB3cml0ZXJzLCByZWFkZXJzCisgKiB3aWxsIHJ1biBjb25jdXJyZW50bHkgd2l0aCBhIHdyaXRlciB1bmRlciBSQ1UuIFRoZSBzZXFsb2NrIGlzIHVzZWQgdG8KKyAqIG5vdGlmeSByZWFkZXJzIGlmIHRoZXkgb3ZlcmxhcCB3aXRoIGEgd3JpdGVyLgorICoKKyAqIEFzIHRoZSByZXNlcnZhdGlvbiBvYmplY3QgbWF5IGJlIGxvY2tlZCBieSBtdWx0aXBsZSBwYXJ0aWVzIGluIGFuCisgKiB1bmRlZmluZWQgb3JkZXIsIGEgI3d3X2FjcXVpcmVfY3R4IGlzIHBhc3NlZCB0byB1bndpbmQgaWYgYSBjeWNsZQorICogaXMgZGV0ZWN0ZWQuIFNlZSB3d19tdXRleF9sb2NrKCkgYW5kIHd3X2FjcXVpcmVfaW5pdCgpLiBBIHJlc2VydmF0aW9uCisgKiBvYmplY3QgbWF5IGJlIGxvY2tlZCBieSBpdHNlbGYgYnkgcGFzc2luZyBOVUxMIGFzIEBjdHguCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IGRtYV9yZXN2X2xvY2tfaW50ZXJydXB0aWJsZShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaiwKKwkJCQkJICAgICAgc3RydWN0IHd3X2FjcXVpcmVfY3R4ICpjdHgpCit7CisJcmV0dXJuIHd3X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmb2JqLT5sb2NrLCBjdHgpOworfQorCisvKioKKyAqIGRtYV9yZXN2X2xvY2tfc2xvdyAtIHNsb3dwYXRoIGxvY2sgdGhlIHJlc2VydmF0aW9uIG9iamVjdAorICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAorICogQGN0eDogdGhlIGxvY2tpbmcgY29udGV4dAorICoKKyAqIEFjcXVpcmVzIHRoZSByZXNlcnZhdGlvbiBvYmplY3QgYWZ0ZXIgYSBkaWUgY2FzZS4gVGhpcyBmdW5jdGlvbgorICogd2lsbCBzbGVlcCB1bnRpbCB0aGUgbG9jayBiZWNvbWVzIGF2YWlsYWJsZS4gU2VlIGRtYV9yZXN2X2xvY2soKSBhcworICogd2VsbC4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIGRtYV9yZXN2X2xvY2tfc2xvdyhzdHJ1Y3QgZG1hX3Jlc3YgKm9iaiwKKwkJCQkgICAgICBzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKmN0eCkKK3sKKwl3d19tdXRleF9sb2NrX3Nsb3coJm9iai0+bG9jaywgY3R4KTsKK30KKworLyoqCisgKiBkbWFfcmVzdl9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZSAtIHNsb3dwYXRoIGxvY2sgdGhlIHJlc2VydmF0aW9uCisgKiBvYmplY3QsIGludGVycnVwdGlibGUKKyAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QKKyAqIEBjdHg6IHRoZSBsb2NraW5nIGNvbnRleHQKKyAqCisgKiBBY3F1aXJlcyB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0IGludGVycnVwdGlibGUgYWZ0ZXIgYSBkaWUgY2FzZS4gVGhpcyBmdW5jdGlvbgorICogd2lsbCBzbGVlcCB1bnRpbCB0aGUgbG9jayBiZWNvbWVzIGF2YWlsYWJsZS4gU2VlCisgKiBkbWFfcmVzdl9sb2NrX2ludGVycnVwdGlibGUoKSBhcyB3ZWxsLgorICovCitzdGF0aWMgaW5saW5lIGludCBkbWFfcmVzdl9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaiwKKwkJCQkJCSAgIHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqY3R4KQoreworCXJldHVybiB3d19tdXRleF9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZSgmb2JqLT5sb2NrLCBjdHgpOworfQorCisvKioKKyAqIGRtYV9yZXN2X3RyeWxvY2sgLSB0cnlsb2NrIHRoZSByZXNlcnZhdGlvbiBvYmplY3QKKyAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QKKyAqCisgKiBUcmllcyB0byBsb2NrIHRoZSByZXNlcnZhdGlvbiBvYmplY3QgZm9yIGV4Y2x1c2l2ZSBhY2Nlc3MgYW5kIG1vZGlmaWNhdGlvbi4KKyAqIE5vdGUsIHRoYXQgdGhlIGxvY2sgaXMgb25seSBhZ2FpbnN0IG90aGVyIHdyaXRlcnMsIHJlYWRlcnMgd2lsbCBydW4KKyAqIGNvbmN1cnJlbnRseSB3aXRoIGEgd3JpdGVyIHVuZGVyIFJDVS4gVGhlIHNlcWxvY2sgaXMgdXNlZCB0byBub3RpZnkgcmVhZGVycworICogaWYgdGhleSBvdmVybGFwIHdpdGggYSB3cml0ZXIuCisgKgorICogQWxzbyBub3RlIHRoYXQgc2luY2Ugbm8gY29udGV4dCBpcyBwcm92aWRlZCwgbm8gZGVhZGxvY2sgcHJvdGVjdGlvbiBpcworICogcG9zc2libGUuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBsb2NrIHdhcyBhY3F1aXJlZCwgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW5saW5lIGJvb2wgX19tdXN0X2NoZWNrIGRtYV9yZXN2X3RyeWxvY2soc3RydWN0IGRtYV9yZXN2ICpvYmopCit7CisJcmV0dXJuIHd3X211dGV4X3RyeWxvY2soJm9iai0+bG9jayk7Cit9CisKKy8qKgorICogZG1hX3Jlc3ZfaXNfbG9ja2VkIC0gaXMgdGhlIHJlc2VydmF0aW9uIG9iamVjdCBsb2NrZWQKKyAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QKKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIG11dGV4IGlzIGxvY2tlZCwgZmFsc2UgaWYgdW5sb2NrZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBkbWFfcmVzdl9pc19sb2NrZWQoc3RydWN0IGRtYV9yZXN2ICpvYmopCit7CisJcmV0dXJuIHd3X211dGV4X2lzX2xvY2tlZCgmb2JqLT5sb2NrKTsKK30KKworLyoqCisgKiBkbWFfcmVzdl9sb2NraW5nX2N0eCAtIHJldHVybnMgdGhlIGNvbnRleHQgdXNlZCB0byBsb2NrIHRoZSBvYmplY3QKKyAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QKKyAqCisgKiBSZXR1cm5zIHRoZSBjb250ZXh0IHVzZWQgdG8gbG9jayBhIHJlc2VydmF0aW9uIG9iamVjdCBvciBOVUxMIGlmIG5vIGNvbnRleHQKKyAqIHdhcyB1c2VkIG9yIHRoZSBvYmplY3QgaXMgbm90IGxvY2tlZCBhdCBhbGwuCisgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHd3X2FjcXVpcmVfY3R4ICpkbWFfcmVzdl9sb2NraW5nX2N0eChzdHJ1Y3QgZG1hX3Jlc3YgKm9iaikKK3sKKwlyZXR1cm4gUkVBRF9PTkNFKG9iai0+bG9jay5jdHgpOworfQorCisvKioKKyAqIGRtYV9yZXN2X3VubG9jayAtIHVubG9jayB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKgorICogVW5sb2NrcyB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0IGZvbGxvd2luZyBleGNsdXNpdmUgYWNjZXNzLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgZG1hX3Jlc3ZfdW5sb2NrKHN0cnVjdCBkbWFfcmVzdiAqb2JqKQoreworI2lmZGVmIENPTkZJR19ERUJVR19NVVRFWEVTCisJLyogVGVzdCBzaGFyZWQgZmVuY2Ugc2xvdCByZXNlcnZhdGlvbiAqLworCWlmIChyY3VfYWNjZXNzX3BvaW50ZXIob2JqLT5mZW5jZSkpIHsKKwkJc3RydWN0IGRtYV9yZXN2X2xpc3QgKmZlbmNlID0gZG1hX3Jlc3ZfZ2V0X2xpc3Qob2JqKTsKKworCQlmZW5jZS0+c2hhcmVkX21heCA9IGZlbmNlLT5zaGFyZWRfY291bnQ7CisJfQorI2VuZGlmCisJd3dfbXV0ZXhfdW5sb2NrKCZvYmotPmxvY2spOworfQorCisvKioKKyAqIGRtYV9yZXN2X2dldF9leGNsIC0gZ2V0IHRoZSByZXNlcnZhdGlvbiBvYmplY3QncworICogZXhjbHVzaXZlIGZlbmNlLCB3aXRoIHVwZGF0ZS1zaWRlIGxvY2sgaGVsZAorICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAorICoKKyAqIFJldHVybnMgdGhlIGV4Y2x1c2l2ZSBmZW5jZSAoaWYgYW55KS4gIERvZXMgTk9UIHRha2UgYQorICogcmVmZXJlbmNlLiBXcml0ZXJzIG11c3QgaG9sZCBvYmotPmxvY2ssIHJlYWRlcnMgbWF5IG9ubHkKKyAqIGhvbGQgYSBSQ1UgcmVhZCBzaWRlIGxvY2suCisgKgorICogUkVUVVJOUworICogVGhlIGV4Y2x1c2l2ZSBmZW5jZSBvciBOVUxMCisgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqCitkbWFfcmVzdl9nZXRfZXhjbChzdHJ1Y3QgZG1hX3Jlc3YgKm9iaikKK3sKKwlyZXR1cm4gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvYmotPmZlbmNlX2V4Y2wsCisJCQkJCSBkbWFfcmVzdl9oZWxkKG9iaikpOworfQorCisvKioKKyAqIGRtYV9yZXN2X2dldF9leGNsX3JjdSAtIGdldCB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0J3MKKyAqIGV4Y2x1c2l2ZSBmZW5jZSwgd2l0aG91dCBsb2NrIGhlbGQuCisgKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0CisgKgorICogSWYgdGhlcmUgaXMgYW4gZXhjbHVzaXZlIGZlbmNlLCB0aGlzIGF0b21pY2FsbHkgaW5jcmVtZW50cyBpdCdzCisgKiByZWZlcmVuY2UgY291bnQgYW5kIHJldHVybnMgaXQuCisgKgorICogUkVUVVJOUworICogVGhlIGV4Y2x1c2l2ZSBmZW5jZSBvciBOVUxMIGlmIG5vbmUKKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICoKK2RtYV9yZXN2X2dldF9leGNsX3JjdShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaikKK3sKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKworCWlmICghcmN1X2FjY2Vzc19wb2ludGVyKG9iai0+ZmVuY2VfZXhjbCkpCisJCXJldHVybiBOVUxMOworCisJcmN1X3JlYWRfbG9jaygpOworCWZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3Vfc2FmZSgmb2JqLT5mZW5jZV9leGNsKTsKKwlyY3VfcmVhZF91bmxvY2soKTsKKworCXJldHVybiBmZW5jZTsKK30KKwordm9pZCBkbWFfcmVzdl9pbml0KHN0cnVjdCBkbWFfcmVzdiAqb2JqKTsKK3ZvaWQgZG1hX3Jlc3ZfZmluaShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaik7CitpbnQgZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQoc3RydWN0IGRtYV9yZXN2ICpvYmosIHVuc2lnbmVkIGludCBudW1fZmVuY2VzKTsKK3ZvaWQgZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaiwgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOworCit2b2lkIGRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCBkbWFfcmVzdiAqb2JqLCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CisKK2ludCBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaiwKKwkJCSAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqcGZlbmNlX2V4Y2wsCisJCQkgICAgdW5zaWduZWQgKnBzaGFyZWRfY291bnQsCisJCQkgICAgc3RydWN0IGRtYV9mZW5jZSAqKipwc2hhcmVkKTsKKworaW50IGRtYV9yZXN2X2NvcHlfZmVuY2VzKHN0cnVjdCBkbWFfcmVzdiAqZHN0LCBzdHJ1Y3QgZG1hX3Jlc3YgKnNyYyk7CisKK2xvbmcgZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShzdHJ1Y3QgZG1hX3Jlc3YgKm9iaiwgYm9vbCB3YWl0X2FsbCwgYm9vbCBpbnRyLAorCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCk7CisKK2Jvb2wgZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9yY3Uoc3RydWN0IGRtYV9yZXN2ICpvYmosIGJvb2wgdGVzdF9hbGwpOworCisjZW5kaWYgLyogX0xJTlVYX1JFU0VSVkFUSU9OX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZXhwb3J0LmggYi9pbmNsdWRlL2xpbnV4L2V4cG9ydC5oCmluZGV4IGZkODcxMWUuLjk1ZjU1YjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZXhwb3J0LmgKKysrIGIvaW5jbHVkZS9saW51eC9leHBvcnQuaApAQCAtMTgsOSArMTgsOCBAQCBleHRlcm4gc3RydWN0IG1vZHVsZSBfX3RoaXNfbW9kdWxlOwogI2RlZmluZSBUSElTX01PRFVMRSAoKHN0cnVjdCBtb2R1bGUgKikwKQogI2VuZGlmCiAKLSNpZmRlZiBDT05GSUdfTU9EVUxFUworI2RlZmluZSBOU19TRVBBUkFUT1IgIi4iCiAKLSNpZiBkZWZpbmVkKF9fS0VSTkVMX18pICYmICFkZWZpbmVkKF9fR0VOS1NZTVNfXykKICNpZmRlZiBDT05GSUdfTU9EVkVSU0lPTlMKIC8qIE1hcmsgdGhlIENSQyB3ZWFrIHNpbmNlIGdlbmtzeW1zIGFwcGFyZW50bHkgZGVjaWRlcyBub3QgdG8KICAqIGdlbmVyYXRlIGEgY2hlY2tzdW1zIGZvciBzb21lIHN5bWJvbHMgKi8KQEAgLTI5LDEzICsyOCwxMyBAQCBleHRlcm4gc3RydWN0IG1vZHVsZSBfX3RoaXNfbW9kdWxlOwogCWFzbSgiCS5zZWN0aW9uIFwiX19fa2NyY3RhYiIgc2VjICIrIiAjc3ltICJcIiwgXCJhXCIJXG4iCVwKIAkgICAgIgkud2VhawlfX2NyY18iICNzeW0gIgkJCQlcbiIJXAogCSAgICAiCS5sb25nCV9fY3JjXyIgI3N5bSAiIC0gLgkJCVxuIglcCi0JICAgICIJLnByZXZpb3VzCQkJCQlcbiIpOworCSAgICAiCS5wcmV2aW91cwkJCQkJXG4iKQogI2Vsc2UKICNkZWZpbmUgX19DUkNfU1lNQk9MKHN5bSwgc2VjKQkJCQkJCVwKIAlhc20oIgkuc2VjdGlvbiBcIl9fX2tjcmN0YWIiIHNlYyAiKyIgI3N5bSAiXCIsIFwiYVwiCVxuIglcCiAJICAgICIJLndlYWsJX19jcmNfIiAjc3ltICIJCQkJXG4iCVwKIAkgICAgIgkubG9uZwlfX2NyY18iICNzeW0gIgkJCQlcbiIJXAotCSAgICAiCS5wcmV2aW91cwkJCQkJXG4iKTsKKwkgICAgIgkucHJldmlvdXMJCQkJCVxuIikKICNlbmRpZgogI2Vsc2UKICNkZWZpbmUgX19DUkNfU1lNQk9MKHN5bSwgc2VjKQpAQCAtNDksNDcgKzQ4LDg5IEBAIGV4dGVybiBzdHJ1Y3QgbW9kdWxlIF9fdGhpc19tb2R1bGU7CiAgKiBhYnNvbHV0ZSByZWxvY2F0aW9ucyB0aGF0IHJlcXVpcmUgcnVudGltZSBwcm9jZXNzaW5nIG9uIHJlbG9jYXRhYmxlCiAgKiBrZXJuZWxzLgogICovCisjZGVmaW5lIF9fS1NZTVRBQl9FTlRSWV9OUyhzeW0sIHNlYywgbnMpCQkJCVwKKwlfX0FERFJFU1NBQkxFKHN5bSkJCQkJCQlcCisJYXNtKCIJLnNlY3Rpb24gXCJfX19rc3ltdGFiIiBzZWMgIisiICNzeW0gIlwiLCBcImFcIglcbiIJXAorCSAgICAiCS5iYWxpZ24JNAkJCQkJXG4iCVwKKwkgICAgIl9fa3N5bXRhYl8iICNzeW0gTlNfU0VQQVJBVE9SICNucyAiOgkJXG4iCVwKKwkgICAgIgkubG9uZwkiICNzeW0gIi0gLgkJCQlcbiIJXAorCSAgICAiCS5sb25nCV9fa3N0cnRhYl8iICNzeW0gIi0gLgkJCVxuIglcCisJICAgICIJLmxvbmcJX19rc3RydGFiX25zXyIgI3N5bSAiLSAuCQlcbiIJXAorCSAgICAiCS5wcmV2aW91cwkJCQkJXG4iKQorCiAjZGVmaW5lIF9fS1NZTVRBQl9FTlRSWShzeW0sIHNlYykJCQkJCVwKIAlfX0FERFJFU1NBQkxFKHN5bSkJCQkJCQlcCiAJYXNtKCIJLnNlY3Rpb24gXCJfX19rc3ltdGFiIiBzZWMgIisiICNzeW0gIlwiLCBcImFcIglcbiIJXAotCSAgICAiCS5iYWxpZ24JOAkJCQkJXG4iCVwKKwkgICAgIgkuYmFsaWduIDQJCQkJCVxuIglcCiAJICAgICJfX2tzeW10YWJfIiAjc3ltICI6CQkJCVxuIglcCiAJICAgICIJLmxvbmcJIiAjc3ltICItIC4JCQkJXG4iCVwKIAkgICAgIgkubG9uZwlfX2tzdHJ0YWJfIiAjc3ltICItIC4JCQlcbiIJXAorCSAgICAiCS5sb25nCTAJCQkJCVxuIglcCiAJICAgICIJLnByZXZpb3VzCQkJCQlcbiIpCiAKIHN0cnVjdCBrZXJuZWxfc3ltYm9sIHsKIAlpbnQgdmFsdWVfb2Zmc2V0OwogCWludCBuYW1lX29mZnNldDsKKwlpbnQgbmFtZXNwYWNlX29mZnNldDsKIH07CiAjZWxzZQorI2RlZmluZSBfX0tTWU1UQUJfRU5UUllfTlMoc3ltLCBzZWMsIG5zKQkJCQlcCisJc3RhdGljIGNvbnN0IHN0cnVjdCBrZXJuZWxfc3ltYm9sIF9fa3N5bXRhYl8jI3N5bSMjX18jI25zCVwKKwlhc20oIl9fa3N5bXRhYl8iICNzeW0gTlNfU0VQQVJBVE9SICNucykJCQkJXAorCV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIl9fX2tzeW10YWIiIHNlYyAiKyIgI3N5bSksIHVzZWQpKQlcCisJX19hbGlnbmVkKHNpemVvZih2b2lkICopKQkJCQkJXAorCT0geyAodW5zaWduZWQgbG9uZykmc3ltLCBfX2tzdHJ0YWJfIyNzeW0sIF9fa3N0cnRhYl9uc18jI3N5bSB9CisKICNkZWZpbmUgX19LU1lNVEFCX0VOVFJZKHN5bSwgc2VjKQkJCQkJXAogCXN0YXRpYyBjb25zdCBzdHJ1Y3Qga2VybmVsX3N5bWJvbCBfX2tzeW10YWJfIyNzeW0JCVwKKwlhc20oIl9fa3N5bXRhYl8iICNzeW0pCQkJCQkJXAogCV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIl9fX2tzeW10YWIiIHNlYyAiKyIgI3N5bSksIHVzZWQpKQlcCi0JPSB7ICh1bnNpZ25lZCBsb25nKSZzeW0sIF9fa3N0cnRhYl8jI3N5bSB9CisJX19hbGlnbmVkKHNpemVvZih2b2lkICopKQkJCQkJXAorCT0geyAodW5zaWduZWQgbG9uZykmc3ltLCBfX2tzdHJ0YWJfIyNzeW0sIE5VTEwgfQogCiBzdHJ1Y3Qga2VybmVsX3N5bWJvbCB7CiAJdW5zaWduZWQgbG9uZyB2YWx1ZTsKIAljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IGNoYXIgKm5hbWVzcGFjZTsKIH07CiAjZW5kaWYKIAotLyogRm9yIGV2ZXJ5IGV4cG9ydGVkIHN5bWJvbCwgcGxhY2UgYSBzdHJ1Y3QgaW4gdGhlIF9fa3N5bXRhYiBzZWN0aW9uICovCi0jZGVmaW5lIF9fX0VYUE9SVF9TWU1CT0woc3ltLCBzZWMpCQkJCQlcCisjaWZkZWYgX19HRU5LU1lNU19fCisKKyNkZWZpbmUgX19fRVhQT1JUX1NZTUJPTChzeW0sc2VjKQlfX0dFTktTWU1TX0VYUE9SVF9TWU1CT0woc3ltKQorI2RlZmluZSBfX19FWFBPUlRfU1lNQk9MX05TKHN5bSxzZWMsbnMpCV9fR0VOS1NZTVNfRVhQT1JUX1NZTUJPTChzeW0pCisKKyNlbHNlCisKKyNkZWZpbmUgX19fZXhwb3J0X3N5bWJvbF9jb21tb24oc3ltLCBzZWMpCQkJCVwKIAlleHRlcm4gdHlwZW9mKHN5bSkgc3ltOwkJCQkJCVwKLQlfX0NSQ19TWU1CT0woc3ltLCBzZWMpCQkJCQkJXAorCV9fQ1JDX1NZTUJPTChzeW0sIHNlYyk7CQkJCQkJXAogCXN0YXRpYyBjb25zdCBjaGFyIF9fa3N0cnRhYl8jI3N5bVtdCQkJCVwKIAlfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCJfX2tzeW10YWJfc3RyaW5ncyIpLCB1c2VkLCBhbGlnbmVkKDEpKSkJXAotCT0gI3N5bTsJCQkJCQkJCVwKKwk9ICNzeW0JCQkJCQkJCVwKKworLyogRm9yIGV2ZXJ5IGV4cG9ydGVkIHN5bWJvbCwgcGxhY2UgYSBzdHJ1Y3QgaW4gdGhlIF9fa3N5bXRhYiBzZWN0aW9uICovCisjZGVmaW5lIF9fX0VYUE9SVF9TWU1CT0xfTlMoc3ltLCBzZWMsIG5zKQkJCQlcCisJX19fZXhwb3J0X3N5bWJvbF9jb21tb24oc3ltLCBzZWMpOwkJCQlcCisJc3RhdGljIGNvbnN0IGNoYXIgX19rc3RydGFiX25zXyMjc3ltW10JCQkJXAorCV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIl9fa3N5bXRhYl9zdHJpbmdzIiksIHVzZWQsIGFsaWduZWQoMSkpKQlcCisJPSAjbnM7CQkJCQkJCQlcCisJX19LU1lNVEFCX0VOVFJZX05TKHN5bSwgc2VjLCBucykKKworI2RlZmluZSBfX19FWFBPUlRfU1lNQk9MKHN5bSwgc2VjKQkJCQkJXAorCV9fX2V4cG9ydF9zeW1ib2xfY29tbW9uKHN5bSwgc2VjKTsJCQkJXAogCV9fS1NZTVRBQl9FTlRSWShzeW0sIHNlYykKIAotI2lmIGRlZmluZWQoX19ESVNBQkxFX0VYUE9SVFMpCisjZW5kaWYKKworI2lmICFkZWZpbmVkKENPTkZJR19NT0RVTEVTKSB8fCBkZWZpbmVkKF9fRElTQUJMRV9FWFBPUlRTKQogCiAvKgogICogQWxsb3cgc3ltYm9sIGV4cG9ydHMgdG8gYmUgZGlzYWJsZWQgY29tcGxldGVseSBzbyB0aGF0IEMgY29kZSBtYXkKICAqIGJlIHJldXNlZCBpbiBvdGhlciBleGVjdXRpb24gY29udGV4dHMgc3VjaCBhcyB0aGUgVUVGSSBzdHViIG9yIHRoZQogICogZGVjb21wcmVzc29yLgogICovCisjZGVmaW5lIF9fRVhQT1JUX1NZTUJPTF9OUyhzeW0sIHNlYywgbnMpCiAjZGVmaW5lIF9fRVhQT1JUX1NZTUJPTChzeW0sIHNlYykKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfVFJJTV9VTlVTRURfS1NZTVMpCkBAIC0xMTYsMzggKzE1Nyw0MyBAQCBzdHJ1Y3Qga2VybmVsX3N5bWJvbCB7CiAjZGVmaW5lIF9fY29uZF9leHBvcnRfc3ltXzEoc3ltLCBzZWMpIF9fX0VYUE9SVF9TWU1CT0woc3ltLCBzZWMpCiAjZGVmaW5lIF9fY29uZF9leHBvcnRfc3ltXzAoc3ltLCBzZWMpIC8qIG5vdGhpbmcgKi8KIAorI2RlZmluZSBfX0VYUE9SVF9TWU1CT0xfTlMoc3ltLCBzZWMsIG5zKQkJCQlcCisJX19rc3ltX21hcmtlcihzeW0pOwkJCQkJCVwKKwlfX2NvbmRfZXhwb3J0X25zX3N5bShzeW0sIHNlYywgbnMsIF9faXNfZGVmaW5lZChfX0tTWU1fIyNzeW0pKQorI2RlZmluZSBfX2NvbmRfZXhwb3J0X25zX3N5bShzeW0sIHNlYywgbnMsIGNvbmYpCQkJXAorCV9fX2NvbmRfZXhwb3J0X25zX3N5bShzeW0sIHNlYywgbnMsIGNvbmYpCisjZGVmaW5lIF9fX2NvbmRfZXhwb3J0X25zX3N5bShzeW0sIHNlYywgbnMsIGVuYWJsZWQpCQkJXAorCV9fY29uZF9leHBvcnRfbnNfc3ltXyMjZW5hYmxlZChzeW0sIHNlYywgbnMpCisjZGVmaW5lIF9fY29uZF9leHBvcnRfbnNfc3ltXzEoc3ltLCBzZWMsIG5zKSBfX19FWFBPUlRfU1lNQk9MX05TKHN5bSwgc2VjLCBucykKKyNkZWZpbmUgX19jb25kX2V4cG9ydF9uc19zeW1fMChzeW0sIHNlYywgbnMpIC8qIG5vdGhpbmcgKi8KKwogI2Vsc2UKLSNkZWZpbmUgX19FWFBPUlRfU1lNQk9MIF9fX0VYUE9SVF9TWU1CT0wKLSNlbmRpZgogCi0jZGVmaW5lIEVYUE9SVF9TWU1CT0woc3ltKQkJCQkJXAotCV9fRVhQT1JUX1NZTUJPTChzeW0sICIiKQotCi0jZGVmaW5lIEVYUE9SVF9TWU1CT0xfR1BMKHN5bSkJCQkJCVwKLQlfX0VYUE9SVF9TWU1CT0woc3ltLCAiX2dwbCIpCi0KLSNkZWZpbmUgRVhQT1JUX1NZTUJPTF9HUExfRlVUVVJFKHN5bSkJCQkJXAotCV9fRVhQT1JUX1NZTUJPTChzeW0sICJfZ3BsX2Z1dHVyZSIpCi0KLSNpZmRlZiBDT05GSUdfVU5VU0VEX1NZTUJPTFMKLSNkZWZpbmUgRVhQT1JUX1VOVVNFRF9TWU1CT0woc3ltKSBfX0VYUE9SVF9TWU1CT0woc3ltLCAiX3VudXNlZCIpCi0jZGVmaW5lIEVYUE9SVF9VTlVTRURfU1lNQk9MX0dQTChzeW0pIF9fRVhQT1JUX1NZTUJPTChzeW0sICJfdW51c2VkX2dwbCIpCi0jZWxzZQotI2RlZmluZSBFWFBPUlRfVU5VU0VEX1NZTUJPTChzeW0pCi0jZGVmaW5lIEVYUE9SVF9VTlVTRURfU1lNQk9MX0dQTChzeW0pCi0jZW5kaWYKLQotI2VuZGlmCS8qIF9fR0VOS1NZTVNfXyAqLwotCi0jZWxzZSAvKiAhQ09ORklHX01PRFVMRVMuLi4gKi8KLQotI2RlZmluZSBFWFBPUlRfU1lNQk9MKHN5bSkKLSNkZWZpbmUgRVhQT1JUX1NZTUJPTF9HUEwoc3ltKQotI2RlZmluZSBFWFBPUlRfU1lNQk9MX0dQTF9GVVRVUkUoc3ltKQotI2RlZmluZSBFWFBPUlRfVU5VU0VEX1NZTUJPTChzeW0pCi0jZGVmaW5lIEVYUE9SVF9VTlVTRURfU1lNQk9MX0dQTChzeW0pCisjZGVmaW5lIF9fRVhQT1JUX1NZTUJPTF9OUyhzeW0sc2VjLG5zKQlfX19FWFBPUlRfU1lNQk9MX05TKHN5bSxzZWMsbnMpCisjZGVmaW5lIF9fRVhQT1JUX1NZTUJPTChzeW0sc2VjKQlfX19FWFBPUlRfU1lNQk9MKHN5bSxzZWMpCiAKICNlbmRpZiAvKiBDT05GSUdfTU9EVUxFUyAqLworCisjaWZkZWYgREVGQVVMVF9TWU1CT0xfTkFNRVNQQUNFCisjdW5kZWYgX19FWFBPUlRfU1lNQk9MCisjZGVmaW5lIF9fRVhQT1JUX1NZTUJPTChzeW0sIHNlYykJCQkJXAorCV9fRVhQT1JUX1NZTUJPTF9OUyhzeW0sIHNlYywgREVGQVVMVF9TWU1CT0xfTkFNRVNQQUNFKQorI2VuZGlmCisKKyNkZWZpbmUgRVhQT1JUX1NZTUJPTChzeW0pCQlfX0VYUE9SVF9TWU1CT0woc3ltLCAiIikKKyNkZWZpbmUgRVhQT1JUX1NZTUJPTF9HUEwoc3ltKQkJX19FWFBPUlRfU1lNQk9MKHN5bSwgIl9ncGwiKQorI2RlZmluZSBFWFBPUlRfU1lNQk9MX0dQTF9GVVRVUkUoc3ltKQlfX0VYUE9SVF9TWU1CT0woc3ltLCAiX2dwbF9mdXR1cmUiKQorI2RlZmluZSBFWFBPUlRfU1lNQk9MX05TKHN5bSwgbnMpCV9fRVhQT1JUX1NZTUJPTF9OUyhzeW0sICIiLCBucykKKyNkZWZpbmUgRVhQT1JUX1NZTUJPTF9OU19HUEwoc3ltLCBucykJX19FWFBPUlRfU1lNQk9MX05TKHN5bSwgIl9ncGwiLCBucykKKworI2lmZGVmIENPTkZJR19VTlVTRURfU1lNQk9MUworI2RlZmluZSBFWFBPUlRfVU5VU0VEX1NZTUJPTChzeW0pCV9fRVhQT1JUX1NZTUJPTChzeW0sICJfdW51c2VkIikKKyNkZWZpbmUgRVhQT1JUX1VOVVNFRF9TWU1CT0xfR1BMKHN5bSkJX19FWFBPUlRfU1lNQk9MKHN5bSwgIl91bnVzZWRfZ3BsIikKKyNlbHNlCisjZGVmaW5lIEVYUE9SVF9VTlVTRURfU1lNQk9MKHN5bSkKKyNkZWZpbmUgRVhQT1JUX1VOVVNFRF9TWU1CT0xfR1BMKHN5bSkKKyNlbmRpZgorCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwogCiAjZW5kaWYgLyogX0xJTlVYX0VYUE9SVF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2V4dGFibGUuaCBiL2luY2x1ZGUvbGludXgvZXh0YWJsZS5oCmluZGV4IDQxYzViM2EuLjgxZWNmYWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZXh0YWJsZS5oCisrKyBiL2luY2x1ZGUvbGludXgvZXh0YWJsZS5oCkBAIC0xOSw2ICsxOSw4IEBAIHZvaWQgdHJpbV9pbml0X2V4dGFibGUoc3RydWN0IG1vZHVsZSAqbSk7CiAKIC8qIEdpdmVuIGFuIGFkZHJlc3MsIGxvb2sgZm9yIGl0IGluIHRoZSBleGNlcHRpb24gdGFibGVzICovCiBjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpzZWFyY2hfZXhjZXB0aW9uX3RhYmxlcyh1bnNpZ25lZCBsb25nIGFkZCk7Citjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICoKK3NlYXJjaF9rZXJuZWxfZXhjZXB0aW9uX3RhYmxlKHVuc2lnbmVkIGxvbmcgYWRkcik7CiAKICNpZmRlZiBDT05GSUdfTU9EVUxFUwogLyogRm9yIGV4dGFibGUuYyB0byBzZWFyY2ggbW9kdWxlcycgZXhjZXB0aW9uIHRhYmxlcy4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZjJmc19mcy5oIGIvaW5jbHVkZS9saW51eC9mMmZzX2ZzLmgKaW5kZXggNjU1NTk5MC4uMjg0NzM4OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9mMmZzX2ZzLmgKKysrIGIvaW5jbHVkZS9saW51eC9mMmZzX2ZzLmgKQEAgLTM2LDExICszNiwxNyBAQAogCiAjZGVmaW5lIEYyRlNfTUFYX1FVT1RBUwkJMwogCisjZGVmaW5lIEYyRlNfRU5DX1VURjhfMTJfMQkxCisjZGVmaW5lIEYyRlNfRU5DX1NUUklDVF9NT0RFX0ZMCSgxIDw8IDApCisjZGVmaW5lIGYyZnNfaGFzX3N0cmljdF9tb2RlKHNiaSkgXAorCShzYmktPnNfZW5jb2RpbmdfZmxhZ3MgJiBGMkZTX0VOQ19TVFJJQ1RfTU9ERV9GTCkKKwogI2RlZmluZSBGMkZTX0lPX1NJWkUoc2JpKQkoMSA8PCBGMkZTX09QVElPTihzYmkpLndyaXRlX2lvX3NpemVfYml0cykgLyogQmxvY2tzICovCiAjZGVmaW5lIEYyRlNfSU9fU0laRV9LQihzYmkpCSgxIDw8IChGMkZTX09QVElPTihzYmkpLndyaXRlX2lvX3NpemVfYml0cyArIDIpKSAvKiBLQiAqLwogI2RlZmluZSBGMkZTX0lPX1NJWkVfQllURVMoc2JpKQkoMSA8PCAoRjJGU19PUFRJT04oc2JpKS53cml0ZV9pb19zaXplX2JpdHMgKyAxMikpIC8qIEIgKi8KICNkZWZpbmUgRjJGU19JT19TSVpFX0JJVFMoc2JpKQkoRjJGU19PUFRJT04oc2JpKS53cml0ZV9pb19zaXplX2JpdHMpIC8qIHBvd2VyIG9mIDIgKi8KICNkZWZpbmUgRjJGU19JT19TSVpFX01BU0soc2JpKQkoRjJGU19JT19TSVpFKHNiaSkgLSAxKQorI2RlZmluZSBGMkZTX0lPX0FMSUdORUQoc2JpKQkoRjJGU19JT19TSVpFKHNiaSkgPiAxKQogCiAvKiBUaGlzIGZsYWcgaXMgdXNlZCBieSBub2RlIGFuZCBtZXRhIGlub2RlcywgYW5kIGJ5IHJlY292ZXJ5ICovCiAjZGVmaW5lIEdGUF9GMkZTX1pFUk8JCShHRlBfTk9GUyB8IF9fR0ZQX1pFUk8pCkBAIC0xMDksNyArMTE1LDkgQEAgc3RydWN0IGYyZnNfc3VwZXJfYmxvY2sgewogCXN0cnVjdCBmMmZzX2RldmljZSBkZXZzW01BWF9ERVZJQ0VTXTsJLyogZGV2aWNlIGxpc3QgKi8KIAlfX2xlMzIgcWZfaW5vW0YyRlNfTUFYX1FVT1RBU107CS8qIHF1b3RhIGlub2RlIG51bWJlcnMgKi8KIAlfX3U4IGhvdF9leHRfY291bnQ7CQkvKiAjIG9mIGhvdCBmaWxlIGV4dGVuc2lvbiAqLwotCV9fdTggcmVzZXJ2ZWRbMzEwXTsJCS8qIHZhbGlkIHJlc2VydmVkIHJlZ2lvbiAqLworCV9fbGUxNiAgc19lbmNvZGluZzsJCS8qIEZpbGVuYW1lIGNoYXJzZXQgZW5jb2RpbmcgKi8KKwlfX2xlMTYgIHNfZW5jb2RpbmdfZmxhZ3M7CS8qIEZpbGVuYW1lIGNoYXJzZXQgZW5jb2RpbmcgZmxhZ3MgKi8KKwlfX3U4IHJlc2VydmVkWzMwNl07CQkvKiB2YWxpZCByZXNlcnZlZCByZWdpb24gKi8KIAlfX2xlMzIgY3JjOwkJCS8qIGNoZWNrc3VtIG9mIHN1cGVyYmxvY2sgKi8KIH0gX19wYWNrZWQ7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZmIuaCBiL2luY2x1ZGUvbGludXgvZmIuaAppbmRleCAzMDM3NzEyLi43NTY3MDZiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2ZiLmgKKysrIGIvaW5jbHVkZS9saW51eC9mYi5oCkBAIC0xMzUsMTAgKzEzNSw2IEBAIHN0cnVjdCBmYl9jdXJzb3JfdXNlciB7CiAKIC8qICAgICAgQSBkaXNwbGF5IGJsYW5rIGlzIHJlcXVlc3RlZCAgICAgICAqLwogI2RlZmluZSBGQl9FVkVOVF9CTEFOSyAgICAgICAgICAgICAgICAgIDB4MDkKLS8qICAgICAgQSBoYXJkd2FyZSBkaXNwbGF5IGJsYW5rIGVhcmx5IGNoYW5nZSBvY2N1cnJlZCAqLwotI2RlZmluZSBGQl9FQVJMWV9FVkVOVF9CTEFOSwkJMHgxMAotLyogICAgICBBIGhhcmR3YXJlIGRpc3BsYXkgYmxhbmsgcmV2ZXJ0IGVhcmx5IGNoYW5nZSBvY2N1cnJlZCAqLwotI2RlZmluZSBGQl9SX0VBUkxZX0VWRU5UX0JMQU5LCQkweDExCiAKIHN0cnVjdCBmYl9ldmVudCB7CiAJc3RydWN0IGZiX2luZm8gKmluZm87CkBAIC03MjEsOCArNzE3LDYgQEAgZXh0ZXJuIGludCBmYl9wYXJzZV9lZGlkKHVuc2lnbmVkIGNoYXIgKmVkaWQsIHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyKTsKIGV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyICpmYl9maXJtd2FyZV9lZGlkKHN0cnVjdCBkZXZpY2UgKmRldmljZSk7CiBleHRlcm4gdm9pZCBmYl9lZGlkX3RvX21vbnNwZWNzKHVuc2lnbmVkIGNoYXIgKmVkaWQsCiAJCQkJc3RydWN0IGZiX21vbnNwZWNzICpzcGVjcyk7Ci1leHRlcm4gdm9pZCBmYl9lZGlkX2FkZF9tb25zcGVjcyh1bnNpZ25lZCBjaGFyICplZGlkLAotCQkJCSBzdHJ1Y3QgZmJfbW9uc3BlY3MgKnNwZWNzKTsKIGV4dGVybiB2b2lkIGZiX2Rlc3Ryb3lfbW9kZWRiKHN0cnVjdCBmYl92aWRlb21vZGUgKm1vZGVkYik7CiBleHRlcm4gaW50IGZiX2ZpbmRfbW9kZV9jdnQoc3RydWN0IGZiX3ZpZGVvbW9kZSAqbW9kZSwgaW50IG1hcmdpbnMsIGludCByYik7CiBleHRlcm4gdW5zaWduZWQgY2hhciAqZmJfZGRjX3JlYWQoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKTsKQEAgLTc5Niw3ICs3OTAsNiBAQCBzdHJ1Y3QgZG10X3ZpZGVvbW9kZSB7CiAKIGV4dGVybiBjb25zdCBjaGFyICpmYl9tb2RlX29wdGlvbjsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZmJfdmlkZW9tb2RlIHZlc2FfbW9kZXNbXTsKLWV4dGVybiBjb25zdCBzdHJ1Y3QgZmJfdmlkZW9tb2RlIGNlYV9tb2Rlc1s2NV07CiBleHRlcm4gY29uc3Qgc3RydWN0IGRtdF92aWRlb21vZGUgZG10X21vZGVzW107CiAKIHN0cnVjdCBmYl9tb2RlbGlzdCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2ZzLmggYi9pbmNsdWRlL2xpbnV4L2ZzLmgKaW5kZXggZmZlMzVkOS4uZTBkOTA5ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9mcy5oCisrKyBiL2luY2x1ZGUvbGludXgvZnMuaApAQCAtNDI5LDYgKzQyOSw3IEBAIGludCBwYWdlY2FjaGVfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogICogQGlfcGFnZXM6IENhY2hlZCBwYWdlcy4KICAqIEBnZnBfbWFzazogTWVtb3J5IGFsbG9jYXRpb24gZmxhZ3MgdG8gdXNlIGZvciBhbGxvY2F0aW5nIHBhZ2VzLgogICogQGlfbW1hcF93cml0YWJsZTogTnVtYmVyIG9mIFZNX1NIQVJFRCBtYXBwaW5ncy4KKyAqIEBucl90aHBzOiBOdW1iZXIgb2YgVEhQcyBpbiB0aGUgcGFnZWNhY2hlIChub24tc2htZW0gb25seSkuCiAgKiBAaV9tbWFwOiBUcmVlIG9mIHByaXZhdGUgYW5kIHNoYXJlZCBtYXBwaW5ncy4KICAqIEBpX21tYXBfcndzZW06IFByb3RlY3RzIEBpX21tYXAgYW5kIEBpX21tYXBfd3JpdGFibGUuCiAgKiBAbnJwYWdlczogTnVtYmVyIG9mIHBhZ2UgZW50cmllcywgcHJvdGVjdGVkIGJ5IHRoZSBpX3BhZ2VzIGxvY2suCkBAIC00NDYsNiArNDQ3LDEwIEBAIHN0cnVjdCBhZGRyZXNzX3NwYWNlIHsKIAlzdHJ1Y3QgeGFycmF5CQlpX3BhZ2VzOwogCWdmcF90CQkJZ2ZwX21hc2s7CiAJYXRvbWljX3QJCWlfbW1hcF93cml0YWJsZTsKKyNpZmRlZiBDT05GSUdfUkVBRF9PTkxZX1RIUF9GT1JfRlMKKwkvKiBudW1iZXIgb2YgdGhwLCBvbmx5IGZvciBub24tc2htZW0gZmlsZXMgKi8KKwlhdG9taWNfdAkJbnJfdGhwczsKKyNlbmRpZgogCXN0cnVjdCByYl9yb290X2NhY2hlZAlpX21tYXA7CiAJc3RydWN0IHJ3X3NlbWFwaG9yZQlpX21tYXBfcndzZW07CiAJdW5zaWduZWQgbG9uZwkJbnJwYWdlczsKQEAgLTczMiw2ICs3MzcsOCBAQCBzdHJ1Y3QgaW5vZGUgewogCXZvaWQJCQkqaV9wcml2YXRlOyAvKiBmcyBvciBkZXZpY2UgcHJpdmF0ZSBwb2ludGVyICovCiB9IF9fcmFuZG9taXplX2xheW91dDsKIAorc3RydWN0IHRpbWVzcGVjNjQgdGltZXN0YW1wX3RydW5jYXRlKHN0cnVjdCB0aW1lc3BlYzY0IHQsIHN0cnVjdCBpbm9kZSAqaW5vZGUpOworCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBpX2Jsb2Nrc2l6ZShjb25zdCBzdHJ1Y3QgaW5vZGUgKm5vZGUpCiB7CiAJcmV0dXJuICgxIDw8IG5vZGUtPmlfYmxrYml0cyk7CkBAIC0xMTYxLDYgKzExNjgsMTEgQEAgZXh0ZXJuIHZvaWQgbGVhc2VfZ2V0X210aW1lKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgdGltZXNwZWM2NCAqdGltZSk7CiBleHRlcm4gaW50IGdlbmVyaWNfc2V0bGVhc2Uoc3RydWN0IGZpbGUgKiwgbG9uZywgc3RydWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKnByaXYpOwogZXh0ZXJuIGludCB2ZnNfc2V0bGVhc2Uoc3RydWN0IGZpbGUgKiwgbG9uZywgc3RydWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKik7CiBleHRlcm4gaW50IGxlYXNlX21vZGlmeShzdHJ1Y3QgZmlsZV9sb2NrICosIGludCwgc3RydWN0IGxpc3RfaGVhZCAqKTsKKworc3RydWN0IG5vdGlmaWVyX2Jsb2NrOworZXh0ZXJuIGludCBsZWFzZV9yZWdpc3Rlcl9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKik7CitleHRlcm4gdm9pZCBsZWFzZV91bnJlZ2lzdGVyX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqKTsKKwogc3RydWN0IGZpbGVzX3N0cnVjdDsKIGV4dGVybiB2b2lkIHNob3dfZmRfbG9ja3Moc3RydWN0IHNlcV9maWxlICpmLAogCQkJIHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgZmlsZXNfc3RydWN0ICpmaWxlcyk7CkBAIC0xNDU4LDYgKzE0NzAsOSBAQCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgewogCiAJLyogR3JhbnVsYXJpdHkgb2YgYy9tL2F0aW1lIGluIG5zIChjYW5ub3QgYmUgd29yc2UgdGhhbiBhIHNlY29uZCkgKi8KIAl1MzIJCQlzX3RpbWVfZ3JhbjsKKwkvKiBUaW1lIGxpbWl0cyBmb3IgYy9tL2F0aW1lIGluIHNlY29uZHMgKi8KKwl0aW1lNjRfdAkJICAgc190aW1lX21pbjsKKwl0aW1lNjRfdAkJICAgc190aW1lX21heDsKICNpZmRlZiBDT05GSUdfRlNOT1RJRlkKIAlfX3UzMgkJCXNfZnNub3RpZnlfbWFzazsKIAlzdHJ1Y3QgZnNub3RpZnlfbWFya19jb25uZWN0b3IgX19yY3UJKnNfZnNub3RpZnlfbWFya3M7CkBAIC0yNzkzLDYgKzI4MDgsMzMgQEAgc3RhdGljIGlubGluZSBlcnJzZXFfdCBmaWxlbWFwX3NhbXBsZV93Yl9lcnIoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCiAJcmV0dXJuIGVycnNlcV9zYW1wbGUoJm1hcHBpbmctPndiX2Vycik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGZpbGVtYXBfbnJfdGhwcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKK3sKKyNpZmRlZiBDT05GSUdfUkVBRF9PTkxZX1RIUF9GT1JfRlMKKwlyZXR1cm4gYXRvbWljX3JlYWQoJm1hcHBpbmctPm5yX3RocHMpOworI2Vsc2UKKwlyZXR1cm4gMDsKKyNlbmRpZgorfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZmlsZW1hcF9ucl90aHBzX2luYyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKK3sKKyNpZmRlZiBDT05GSUdfUkVBRF9PTkxZX1RIUF9GT1JfRlMKKwlhdG9taWNfaW5jKCZtYXBwaW5nLT5ucl90aHBzKTsKKyNlbHNlCisJV0FSTl9PTl9PTkNFKDEpOworI2VuZGlmCit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBmaWxlbWFwX25yX3RocHNfZGVjKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoreworI2lmZGVmIENPTkZJR19SRUFEX09OTFlfVEhQX0ZPUl9GUworCWF0b21pY19kZWMoJm1hcHBpbmctPm5yX3RocHMpOworI2Vsc2UKKwlXQVJOX09OX09OQ0UoMSk7CisjZW5kaWYKK30KKwogZXh0ZXJuIGludCB2ZnNfZnN5bmNfcmFuZ2Uoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwKIAkJCSAgIGludCBkYXRhc3luYyk7CiBleHRlcm4gaW50IHZmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzeW5jKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnNfY29udGV4dC5oIGIvaW5jbHVkZS9saW51eC9mc19jb250ZXh0LmgKaW5kZXggODRhNWVhYS4uZTVjMTRlMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9mc19jb250ZXh0LmgKKysrIGIvaW5jbHVkZS9saW51eC9mc19jb250ZXh0LmgKQEAgLTk1LDcgKzk1LDYgQEAgc3RydWN0IGZzX2NvbnRleHQgewogCWNvbnN0IHN0cnVjdCBjcmVkCSpjcmVkOwkJLyogVGhlIG1vdW50ZXIncyBjcmVkZW50aWFscyAqLwogCXN0cnVjdCBmY19sb2cJCSpsb2c7CQkvKiBMb2dnaW5nIGJ1ZmZlciAqLwogCWNvbnN0IGNoYXIJCSpzb3VyY2U7CS8qIFRoZSBzb3VyY2UgbmFtZSAoZWcuIGRldiBwYXRoKSAqLwotCWNvbnN0IGNoYXIJCSpzdWJ0eXBlOwkvKiBUaGUgc3VidHlwZSB0byBzZXQgb24gdGhlIHN1cGVyYmxvY2sgKi8KIAl2b2lkCQkJKnNlY3VyaXR5OwkvKiBMaW51eCBTJk0gb3B0aW9ucyAqLwogCXZvaWQJCQkqc19mc19pbmZvOwkvKiBQcm9wb3NlZCBzX2ZzX2luZm8gKi8KIAl1bnNpZ25lZCBpbnQJCXNiX2ZsYWdzOwkvKiBQcm9wb3NlZCBzdXBlcmJsb2NrIGZsYWdzIChTQl8qKSAqLwpAQCAtMTQxLDYgKzE0MCw3IEBAIGV4dGVybiB2b2lkIHB1dF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYyk7CiAgKi8KIGVudW0gdmZzX2dldF9zdXBlcl9rZXlpbmcgewogCXZmc19nZXRfc2luZ2xlX3N1cGVyLAkvKiBPbmx5IG9uZSBzdWNoIHN1cGVyYmxvY2sgbWF5IGV4aXN0ICovCisJdmZzX2dldF9zaW5nbGVfcmVjb25mX3N1cGVyLCAvKiBBcyBhYm92ZSwgYnV0IHJlY29uZmlndXJlIGlmIGl0IGV4aXN0cyAqLwogCXZmc19nZXRfa2V5ZWRfc3VwZXIsCS8qIFN1cGVyYmxvY2tzIHdpdGggZGlmZmVyZW50IHNfZnNfaW5mbyBrZXlzIG1heSBleGlzdCAqLwogCXZmc19nZXRfaW5kZXBlbmRlbnRfc3VwZXIsIC8qIE11bHRpcGxlIGluZGVwZW5kZW50IHN1cGVyYmxvY2tzIG1heSBleGlzdCAqLwogfTsKQEAgLTE1NSw2ICsxNTUsOSBAQCBleHRlcm4gaW50IGdldF90cmVlX25vZGV2KHN0cnVjdCBmc19jb250ZXh0ICpmYywKIGV4dGVybiBpbnQgZ2V0X3RyZWVfc2luZ2xlKHN0cnVjdCBmc19jb250ZXh0ICpmYywKIAkJCSBpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJCQkgICBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpKTsKK2V4dGVybiBpbnQgZ2V0X3RyZWVfc2luZ2xlX3JlY29uZihzdHJ1Y3QgZnNfY29udGV4dCAqZmMsCisJCQkgaW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKKwkJCQkJICAgc3RydWN0IGZzX2NvbnRleHQgKmZjKSk7CiBleHRlcm4gaW50IGdldF90cmVlX2tleWVkKHN0cnVjdCBmc19jb250ZXh0ICpmYywKIAkJCSBpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJCQkgICBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mc25vdGlmeV9iYWNrZW5kLmggYi9pbmNsdWRlL2xpbnV4L2Zzbm90aWZ5X2JhY2tlbmQuaAppbmRleCAyZGUzYjJkLi4xOTE1YmRiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Zzbm90aWZ5X2JhY2tlbmQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Zzbm90aWZ5X2JhY2tlbmQuaApAQCAtNDc1LDYgKzQ3NSw4IEBAIGV4dGVybiB2b2lkIGZzbm90aWZ5X2Rlc3Ryb3lfbWFyayhzdHJ1Y3QgZnNub3RpZnlfbWFyayAqbWFyaywKIGV4dGVybiB2b2lkIGZzbm90aWZ5X2RldGFjaF9tYXJrKHN0cnVjdCBmc25vdGlmeV9tYXJrICptYXJrKTsKIC8qIGZyZWUgbWFyayAqLwogZXh0ZXJuIHZvaWQgZnNub3RpZnlfZnJlZV9tYXJrKHN0cnVjdCBmc25vdGlmeV9tYXJrICptYXJrKTsKKy8qIFdhaXQgdW50aWwgYWxsIG1hcmtzIHF1ZXVlZCBmb3IgZGVzdHJ1Y3Rpb24gYXJlIGRlc3Ryb3llZCAqLworZXh0ZXJuIHZvaWQgZnNub3RpZnlfd2FpdF9tYXJrc19kZXN0cm95ZWQodm9pZCk7CiAvKiBydW4gYWxsIHRoZSBtYXJrcyBpbiBhIGdyb3VwLCBhbmQgY2xlYXIgYWxsIG9mIHRoZSBtYXJrcyBhdHRhY2hlZCB0byBnaXZlbiBvYmplY3QgdHlwZSAqLwogZXh0ZXJuIHZvaWQgZnNub3RpZnlfY2xlYXJfbWFya3NfYnlfZ3JvdXAoc3RydWN0IGZzbm90aWZ5X2dyb3VwICpncm91cCwgdW5zaWduZWQgaW50IHR5cGUpOwogLyogcnVuIGFsbCB0aGUgbWFya3MgaW4gYSBncm91cCwgYW5kIGNsZWFyIGFsbCBvZiB0aGUgdmZzbW91bnQgbWFya3MgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZ2ZwLmggYi9pbmNsdWRlL2xpbnV4L2dmcC5oCmluZGV4IGYzMzg4MTYuLmZiMDdiNTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZ2ZwLmgKKysrIGIvaW5jbHVkZS9saW51eC9nZnAuaApAQCAtNTEwLDE4ICs1MTAsMjIgQEAgYWxsb2NfcGFnZXMoZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVkIGludCBvcmRlcikKIH0KIGV4dGVybiBzdHJ1Y3QgcGFnZSAqYWxsb2NfcGFnZXNfdm1hKGdmcF90IGdmcF9tYXNrLCBpbnQgb3JkZXIsCiAJCQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyLAotCQkJaW50IG5vZGUpOworCQkJaW50IG5vZGUsIGJvb2wgaHVnZXBhZ2UpOworI2RlZmluZSBhbGxvY19odWdlcGFnZV92bWEoZ2ZwX21hc2ssIHZtYSwgYWRkciwgb3JkZXIpIFwKKwlhbGxvY19wYWdlc192bWEoZ2ZwX21hc2ssIG9yZGVyLCB2bWEsIGFkZHIsIG51bWFfbm9kZV9pZCgpLCB0cnVlKQogI2Vsc2UKICNkZWZpbmUgYWxsb2NfcGFnZXMoZ2ZwX21hc2ssIG9yZGVyKSBcCiAJCWFsbG9jX3BhZ2VzX25vZGUobnVtYV9ub2RlX2lkKCksIGdmcF9tYXNrLCBvcmRlcikKLSNkZWZpbmUgYWxsb2NfcGFnZXNfdm1hKGdmcF9tYXNrLCBvcmRlciwgdm1hLCBhZGRyLCBub2RlKVwKKyNkZWZpbmUgYWxsb2NfcGFnZXNfdm1hKGdmcF9tYXNrLCBvcmRlciwgdm1hLCBhZGRyLCBub2RlLCBmYWxzZSlcCisJYWxsb2NfcGFnZXMoZ2ZwX21hc2ssIG9yZGVyKQorI2RlZmluZSBhbGxvY19odWdlcGFnZV92bWEoZ2ZwX21hc2ssIHZtYSwgYWRkciwgb3JkZXIpIFwKIAlhbGxvY19wYWdlcyhnZnBfbWFzaywgb3JkZXIpCiAjZW5kaWYKICNkZWZpbmUgYWxsb2NfcGFnZShnZnBfbWFzaykgYWxsb2NfcGFnZXMoZ2ZwX21hc2ssIDApCiAjZGVmaW5lIGFsbG9jX3BhZ2Vfdm1hKGdmcF9tYXNrLCB2bWEsIGFkZHIpCQkJXAotCWFsbG9jX3BhZ2VzX3ZtYShnZnBfbWFzaywgMCwgdm1hLCBhZGRyLCBudW1hX25vZGVfaWQoKSkKKwlhbGxvY19wYWdlc192bWEoZ2ZwX21hc2ssIDAsIHZtYSwgYWRkciwgbnVtYV9ub2RlX2lkKCksIGZhbHNlKQogI2RlZmluZSBhbGxvY19wYWdlX3ZtYV9ub2RlKGdmcF9tYXNrLCB2bWEsIGFkZHIsIG5vZGUpCQlcCi0JYWxsb2NfcGFnZXNfdm1hKGdmcF9tYXNrLCAwLCB2bWEsIGFkZHIsIG5vZGUpCisJYWxsb2NfcGFnZXNfdm1hKGdmcF9tYXNrLCAwLCB2bWEsIGFkZHIsIG5vZGUsIGZhbHNlKQogCiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX2dldF9mcmVlX3BhZ2VzKGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZ2V0X3plcm9lZF9wYWdlKGdmcF90IGdmcF9tYXNrKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaGlkLmggYi9pbmNsdWRlL2xpbnV4L2hpZC5oCmluZGV4IGQ3NzBhYjEuLmNkNDFmMjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaGlkLmgKKysrIGIvaW5jbHVkZS9saW51eC9oaWQuaApAQCAtMTE1NCwyOSArMTE1NCwzMiBAQCBpbnQgaGlkX3BpZGZmX2luaXQoc3RydWN0IGhpZF9kZXZpY2UgKmhpZCk7CiAjZGVmaW5lIGhpZF9waWRmZl9pbml0IE5VTEwKICNlbmRpZgogCi0jZGVmaW5lIGRiZ19oaWQoZm9ybWF0LCBhcmcuLi4pCQkJCQkJXAorI2RlZmluZSBkYmdfaGlkKGZtdCwgLi4uKQkJCQkJCVwKIGRvIHsJCQkJCQkJCQlcCiAJaWYgKGhpZF9kZWJ1ZykJCQkJCQkJXAotCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6ICIgZm9ybWF0LCBfX0ZJTEVfXywgIyNhcmcpOwlcCisJCXByaW50ayhLRVJOX0RFQlVHICIlczogIiBmbXQsIF9fRklMRV9fLCAjI19fVkFfQVJHU19fKTsJXAogfSB3aGlsZSAoMCkKIAotI2RlZmluZSBoaWRfcHJpbnRrKGxldmVsLCBoaWQsIGZtdCwgYXJnLi4uKQkJXAotCWRldl9wcmludGsobGV2ZWwsICYoaGlkKS0+ZGV2LCBmbXQsICMjYXJnKQotI2RlZmluZSBoaWRfZW1lcmcoaGlkLCBmbXQsIGFyZy4uLikJCQlcCi0JZGV2X2VtZXJnKCYoaGlkKS0+ZGV2LCBmbXQsICMjYXJnKQotI2RlZmluZSBoaWRfY3JpdChoaWQsIGZtdCwgYXJnLi4uKQkJCVwKLQlkZXZfY3JpdCgmKGhpZCktPmRldiwgZm10LCAjI2FyZykKLSNkZWZpbmUgaGlkX2FsZXJ0KGhpZCwgZm10LCBhcmcuLi4pCQkJXAotCWRldl9hbGVydCgmKGhpZCktPmRldiwgZm10LCAjI2FyZykKLSNkZWZpbmUgaGlkX2VycihoaWQsIGZtdCwgYXJnLi4uKQkJCVwKLQlkZXZfZXJyKCYoaGlkKS0+ZGV2LCBmbXQsICMjYXJnKQotI2RlZmluZSBoaWRfbm90aWNlKGhpZCwgZm10LCBhcmcuLi4pCQkJXAotCWRldl9ub3RpY2UoJihoaWQpLT5kZXYsIGZtdCwgIyNhcmcpCi0jZGVmaW5lIGhpZF93YXJuKGhpZCwgZm10LCBhcmcuLi4pCQkJXAotCWRldl93YXJuKCYoaGlkKS0+ZGV2LCBmbXQsICMjYXJnKQotI2RlZmluZSBoaWRfaW5mbyhoaWQsIGZtdCwgYXJnLi4uKQkJCVwKLQlkZXZfaW5mbygmKGhpZCktPmRldiwgZm10LCAjI2FyZykKLSNkZWZpbmUgaGlkX2RiZyhoaWQsIGZtdCwgYXJnLi4uKQkJCVwKLQlkZXZfZGJnKCYoaGlkKS0+ZGV2LCBmbXQsICMjYXJnKQorI2RlZmluZSBoaWRfZXJyKGhpZCwgZm10LCAuLi4pCQkJCVwKKwlkZXZfZXJyKCYoaGlkKS0+ZGV2LCBmbXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIGhpZF9ub3RpY2UoaGlkLCBmbXQsIC4uLikJCQlcCisJZGV2X25vdGljZSgmKGhpZCktPmRldiwgZm10LCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBoaWRfd2FybihoaWQsIGZtdCwgLi4uKQkJCQlcCisJZGV2X3dhcm4oJihoaWQpLT5kZXYsIGZtdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgaGlkX2luZm8oaGlkLCBmbXQsIC4uLikJCQkJXAorCWRldl9pbmZvKCYoaGlkKS0+ZGV2LCBmbXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIGhpZF9kYmcoaGlkLCBmbXQsIC4uLikJCQkJXAorCWRldl9kYmcoJihoaWQpLT5kZXYsIGZtdCwgIyNfX1ZBX0FSR1NfXykKKworI2RlZmluZSBoaWRfZXJyX29uY2UoaGlkLCBmbXQsIC4uLikJCQlcCisJZGV2X2Vycl9vbmNlKCYoaGlkKS0+ZGV2LCBmbXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIGhpZF9ub3RpY2Vfb25jZShoaWQsIGZtdCwgLi4uKQkJCVwKKwlkZXZfbm90aWNlX29uY2UoJihoaWQpLT5kZXYsIGZtdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgaGlkX3dhcm5fb25jZShoaWQsIGZtdCwgLi4uKQkJCVwKKwlkZXZfd2Fybl9vbmNlKCYoaGlkKS0+ZGV2LCBmbXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIGhpZF9pbmZvX29uY2UoaGlkLCBmbXQsIC4uLikJCQlcCisJZGV2X2luZm9fb25jZSgmKGhpZCktPmRldiwgZm10LCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBoaWRfZGJnX29uY2UoaGlkLCBmbXQsIC4uLikJCQlcCisJZGV2X2RiZ19vbmNlKCYoaGlkKS0+ZGV2LCBmbXQsICMjX19WQV9BUkdTX18pCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9obW0uaCBiL2luY2x1ZGUvbGludXgvaG1tLmgKaW5kZXggN2VmNTZkYy4uM2ZlYzUxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9obW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L2htbS5oCkBAIC04NCwxNSArODQsMTIgQEAKICAqIEBub3RpZmllcnM6IGNvdW50IG9mIGFjdGl2ZSBtbXUgbm90aWZpZXJzCiAgKi8KIHN0cnVjdCBobW0gewotCXN0cnVjdCBtbV9zdHJ1Y3QJKm1tOwotCXN0cnVjdCBrcmVmCQlrcmVmOworCXN0cnVjdCBtbXVfbm90aWZpZXIJbW11X25vdGlmaWVyOwogCXNwaW5sb2NrX3QJCXJhbmdlc19sb2NrOwogCXN0cnVjdCBsaXN0X2hlYWQJcmFuZ2VzOwogCXN0cnVjdCBsaXN0X2hlYWQJbWlycm9yczsKLQlzdHJ1Y3QgbW11X25vdGlmaWVyCW1tdV9ub3RpZmllcjsKIAlzdHJ1Y3Qgcndfc2VtYXBob3JlCW1pcnJvcnNfc2VtOwogCXdhaXRfcXVldWVfaGVhZF90CXdxOwotCXN0cnVjdCByY3VfaGVhZAkJcmN1OwogCWxvbmcJCQlub3RpZmllcnM7CiB9OwogCkBAIC0xNTgsMTMgKzE1NSwxMSBAQCBlbnVtIGhtbV9wZm5fdmFsdWVfZSB7CiAgKiBAdmFsdWVzOiBwZm4gdmFsdWUgZm9yIHNvbWUgc3BlY2lhbCBjYXNlIChub25lLCBzcGVjaWFsLCBlcnJvciwgLi4uKQogICogQGRlZmF1bHRfZmxhZ3M6IGRlZmF1bHQgZmxhZ3MgZm9yIHRoZSByYW5nZSAod3JpdGUsIHJlYWQsIC4uLiBzZWUgaG1tIGRvYykKICAqIEBwZm5fZmxhZ3NfbWFzazogYWxsb3dzIHRvIG1hc2sgcGZuIGZsYWdzIHNvIHRoYXQgb25seSBkZWZhdWx0X2ZsYWdzIG1hdHRlcgotICogQHBhZ2Vfc2hpZnQ6IGRldmljZSB2aXJ0dWFsIGFkZHJlc3Mgc2hpZnQgdmFsdWUgKHNob3VsZCBiZSA+PSBQQUdFX1NISUZUKQogICogQHBmbl9zaGlmdHM6IHBmbiBzaGlmdCB2YWx1ZSAoc2hvdWxkIGJlIDw9IFBBR0VfU0hJRlQpCiAgKiBAdmFsaWQ6IHBmbnMgYXJyYXkgZGlkIG5vdCBjaGFuZ2Ugc2luY2UgaXQgaGFzIGJlZW4gZmlsbCBieSBhbiBITU0gZnVuY3Rpb24KICAqLwogc3RydWN0IGhtbV9yYW5nZSB7CiAJc3RydWN0IGhtbQkJKmhtbTsKLQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QJKnZtYTsKIAlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7CiAJdW5zaWduZWQgbG9uZwkJc3RhcnQ7CiAJdW5zaWduZWQgbG9uZwkJZW5kOwpAQCAtMTczLDMyICsxNjgsMTEgQEAgc3RydWN0IGhtbV9yYW5nZSB7CiAJY29uc3QgdWludDY0X3QJCSp2YWx1ZXM7CiAJdWludDY0X3QJCWRlZmF1bHRfZmxhZ3M7CiAJdWludDY0X3QJCXBmbl9mbGFnc19tYXNrOwotCXVpbnQ4X3QJCQlwYWdlX3NoaWZ0OwogCXVpbnQ4X3QJCQlwZm5fc2hpZnQ7CiAJYm9vbAkJCXZhbGlkOwogfTsKIAogLyoKLSAqIGhtbV9yYW5nZV9wYWdlX3NoaWZ0KCkgLSByZXR1cm4gdGhlIHBhZ2Ugc2hpZnQgZm9yIHRoZSByYW5nZQotICogQHJhbmdlOiByYW5nZSBiZWluZyBxdWVyaWVkCi0gKiBSZXR1cm46IHBhZ2Ugc2hpZnQgKHBhZ2Ugc2l6ZSA9IDEgPDwgcGFnZSBzaGlmdCkgZm9yIHRoZSByYW5nZQotICovCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGhtbV9yYW5nZV9wYWdlX3NoaWZ0KGNvbnN0IHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlKQotewotCXJldHVybiByYW5nZS0+cGFnZV9zaGlmdDsKLX0KLQotLyoKLSAqIGhtbV9yYW5nZV9wYWdlX3NpemUoKSAtIHJldHVybiB0aGUgcGFnZSBzaXplIGZvciB0aGUgcmFuZ2UKLSAqIEByYW5nZTogcmFuZ2UgYmVpbmcgcXVlcmllZAotICogUmV0dXJuOiBwYWdlIHNpemUgZm9yIHRoZSByYW5nZSBpbiBieXRlcwotICovCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgaG1tX3JhbmdlX3BhZ2Vfc2l6ZShjb25zdCBzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSkKLXsKLQlyZXR1cm4gMVVMIDw8IGhtbV9yYW5nZV9wYWdlX3NoaWZ0KHJhbmdlKTsKLX0KLQotLyoKICAqIGhtbV9yYW5nZV93YWl0X3VudGlsX3ZhbGlkKCkgLSB3YWl0IGZvciByYW5nZSB0byBiZSB2YWxpZAogICogQHJhbmdlOiByYW5nZSBhZmZlY3RlZCBieSBpbnZhbGlkYXRpb24gdG8gd2FpdCBvbgogICogQHRpbWVvdXQ6IHRpbWUgb3V0IGZvciB3YWl0IGluIG1zIChpZSBhYm9ydCB3YWl0IGFmdGVyIHRoYXQgcGVyaW9kIG9mIHRpbWUpCkBAIC0yOTEsNDAgKzI2NSw2IEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3QgaG1tX2RldmljZV9lbnRyeV9mcm9tX3Bmbihjb25zdCBzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwKIH0KIAogLyoKLSAqIE9sZCBBUEk6Ci0gKiBobW1fcGZuX3RvX3BhZ2UoKQotICogaG1tX3Bmbl90b19wZm4oKQotICogaG1tX3Bmbl9mcm9tX3BhZ2UoKQotICogaG1tX3Bmbl9mcm9tX3BmbigpCi0gKgotICogVGhpcyBhcmUgdGhlIE9MRCBBUEkgcGxlYXNlIHVzZSBuZXcgQVBJLCBpdCBpcyBoZXJlIHRvIGF2b2lkIGNyb3NzLXRyZWUKLSAqIG1lcmdlIHBhaW5mdWxsbmVzcyBpZSB3ZSBjb252ZXJ0IHRoaW5ncyB0byBuZXcgQVBJIGluIHN0YWdlcy4KLSAqLwotc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqaG1tX3Bmbl90b19wYWdlKGNvbnN0IHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAotCQkJCQkgICB1aW50NjRfdCBwZm4pCi17Ci0JcmV0dXJuIGhtbV9kZXZpY2VfZW50cnlfdG9fcGFnZShyYW5nZSwgcGZuKTsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGhtbV9wZm5fdG9fcGZuKGNvbnN0IHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAotCQkJCQkgICB1aW50NjRfdCBwZm4pCi17Ci0JcmV0dXJuIGhtbV9kZXZpY2VfZW50cnlfdG9fcGZuKHJhbmdlLCBwZm4pOwotfQotCi1zdGF0aWMgaW5saW5lIHVpbnQ2NF90IGhtbV9wZm5fZnJvbV9wYWdlKGNvbnN0IHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAotCQkJCQkgc3RydWN0IHBhZ2UgKnBhZ2UpCi17Ci0JcmV0dXJuIGhtbV9kZXZpY2VfZW50cnlfZnJvbV9wYWdlKHJhbmdlLCBwYWdlKTsKLX0KLQotc3RhdGljIGlubGluZSB1aW50NjRfdCBobW1fcGZuX2Zyb21fcGZuKGNvbnN0IHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAotCQkJCQl1bnNpZ25lZCBsb25nIHBmbikKLXsKLQlyZXR1cm4gaG1tX2RldmljZV9lbnRyeV9mcm9tX3BmbihyYW5nZSwgcGZuKTsKLX0KLQotLyoKICAqIE1pcnJvcmluZzogaG93IHRvIHN5bmNocm9uaXplIGRldmljZSBwYWdlIHRhYmxlIHdpdGggQ1BVIHBhZ2UgdGFibGUuCiAgKgogICogQSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgcGFydGljaXBhdGluZyBpbiBITU0gbWlycm9yaW5nIG11c3QgYWx3YXlzCkBAIC0zNzUsMjkgKzMxNSw2IEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3QgaG1tX3Bmbl9mcm9tX3Bmbihjb25zdCBzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwKIHN0cnVjdCBobW1fbWlycm9yOwogCiAvKgotICogZW51bSBobW1fdXBkYXRlX2V2ZW50IC0gdHlwZSBvZiB1cGRhdGUKLSAqIEBITU1fVVBEQVRFX0lOVkFMSURBVEU6IGludmFsaWRhdGUgcmFuZ2UgKG5vIGluZGljYXRpb24gYXMgdG8gd2h5KQotICovCi1lbnVtIGhtbV91cGRhdGVfZXZlbnQgewotCUhNTV9VUERBVEVfSU5WQUxJREFURSwKLX07Ci0KLS8qCi0gKiBzdHJ1Y3QgaG1tX3VwZGF0ZSAtIEhNTSB1cGRhdGUgaW5mb3JtYXRpb24gZm9yIGNhbGxiYWNrCi0gKgotICogQHN0YXJ0OiB2aXJ0dWFsIHN0YXJ0IGFkZHJlc3Mgb2YgdGhlIHJhbmdlIHRvIHVwZGF0ZQotICogQGVuZDogdmlydHVhbCBlbmQgYWRkcmVzcyBvZiB0aGUgcmFuZ2UgdG8gdXBkYXRlCi0gKiBAZXZlbnQ6IGV2ZW50IHRyaWdnZXJpbmcgdGhlIHVwZGF0ZSAod2hhdCBpcyBoYXBwZW5pbmcpCi0gKiBAYmxvY2thYmxlOiBjYW4gdGhlIGNhbGxiYWNrIGJsb2NrL3NsZWVwID8KLSAqLwotc3RydWN0IGhtbV91cGRhdGUgewotCXVuc2lnbmVkIGxvbmcgc3RhcnQ7Ci0JdW5zaWduZWQgbG9uZyBlbmQ7Ci0JZW51bSBobW1fdXBkYXRlX2V2ZW50IGV2ZW50OwotCWJvb2wgYmxvY2thYmxlOwotfTsKLQotLyoKICAqIHN0cnVjdCBobW1fbWlycm9yX29wcyAtIEhNTSBtaXJyb3IgZGV2aWNlIG9wZXJhdGlvbnMgY2FsbGJhY2sKICAqCiAgKiBAdXBkYXRlOiBjYWxsYmFjayB0byB1cGRhdGUgcmFuZ2Ugb24gYSBkZXZpY2UKQEAgLTQxNyw5ICszMzQsOSBAQCBzdHJ1Y3QgaG1tX21pcnJvcl9vcHMgewogCS8qIHN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKCkgLSBzeW5jaHJvbml6ZSBwYWdlIHRhYmxlcwogCSAqCiAJICogQG1pcnJvcjogcG9pbnRlciB0byBzdHJ1Y3QgaG1tX21pcnJvcgotCSAqIEB1cGRhdGU6IHVwZGF0ZSBpbmZvcm1hdGlvbiAoc2VlIHN0cnVjdCBobW1fdXBkYXRlKQotCSAqIFJldHVybjogLUVBR0FJTiBpZiB1cGRhdGUuYmxvY2thYmxlIGZhbHNlIGFuZCBjYWxsYmFjayBuZWVkIHRvCi0JICogICAgICAgICAgYmxvY2ssIDAgb3RoZXJ3aXNlLgorCSAqIEB1cGRhdGU6IHVwZGF0ZSBpbmZvcm1hdGlvbiAoc2VlIHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UpCisJICogUmV0dXJuOiAtRUFHQUlOIGlmIG1tdV9ub3RpZmllcl9yYW5nZV9ibG9ja2FibGUodXBkYXRlKSBpcyBmYWxzZQorCSAqIGFuZCBjYWxsYmFjayBuZWVkcyB0byBibG9jaywgMCBvdGhlcndpc2UuCiAJICoKIAkgKiBUaGlzIGNhbGxiYWNrIHVsdGltYXRlbHkgb3JpZ2luYXRlcyBmcm9tIG1tdV9ub3RpZmllcnMgd2hlbiB0aGUgQ1BVCiAJICogcGFnZSB0YWJsZSBpcyB1cGRhdGVkLiBUaGUgZGV2aWNlIGRyaXZlciBtdXN0IHVwZGF0ZSBpdHMgcGFnZSB0YWJsZQpAQCAtNDMwLDggKzM0Nyw5IEBAIHN0cnVjdCBobW1fbWlycm9yX29wcyB7CiAJICogcGFnZSB0YWJsZXMgYXJlIGNvbXBsZXRlbHkgdXBkYXRlZCAoVExCcyBmbHVzaGVkLCBldGMpOyB0aGlzIGlzIGEKIAkgKiBzeW5jaHJvbm91cyBjYWxsLgogCSAqLwotCWludCAoKnN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKShzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLAotCQkJCQkgIGNvbnN0IHN0cnVjdCBobW1fdXBkYXRlICp1cGRhdGUpOworCWludCAoKnN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKSgKKwkJc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwKKwkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSAqdXBkYXRlKTsKIH07CiAKIC8qCkBAIC00NTcsMjAgKzM3NSwyNCBAQCB2b2lkIGhtbV9taXJyb3JfdW5yZWdpc3RlcihzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yKTsKIC8qCiAgKiBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vdm0vaG1tLnJzdCBmb3IgaG93IHRvIHVzZSB0aGUgcmFuZ2UgQVBJLgogICovCi1pbnQgaG1tX3JhbmdlX3JlZ2lzdGVyKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAotCQkgICAgICAgc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwKLQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCSAgICAgICB1bnNpZ25lZCBsb25nIGVuZCwKLQkJICAgICAgIHVuc2lnbmVkIHBhZ2Vfc2hpZnQpOworaW50IGhtbV9yYW5nZV9yZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwgc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvcik7CiB2b2lkIGhtbV9yYW5nZV91bnJlZ2lzdGVyKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlKTsKLWxvbmcgaG1tX3JhbmdlX3NuYXBzaG90KHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlKTsKLWxvbmcgaG1tX3JhbmdlX2ZhdWx0KHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLCBib29sIGJsb2NrKTsKKworLyoKKyAqIFJldHJ5IGZhdWx0IGlmIG5vbi1ibG9ja2luZywgZHJvcCBtbWFwX3NlbSBhbmQgcmV0dXJuIC1FQUdBSU4gaW4gdGhhdCBjYXNlLgorICovCisjZGVmaW5lIEhNTV9GQVVMVF9BTExPV19SRVRSWQkJKDEgPDwgMCkKKworLyogRG9uJ3QgZmF1bHQgaW4gbWlzc2luZyBQVEVzLCBqdXN0IHNuYXBzaG90IHRoZSBjdXJyZW50IHN0YXRlLiAqLworI2RlZmluZSBITU1fRkFVTFRfU05BUFNIT1QJCSgxIDw8IDEpCisKK2xvbmcgaG1tX3JhbmdlX2ZhdWx0KHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworCiBsb25nIGhtbV9yYW5nZV9kbWFfbWFwKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAogCQkgICAgICAgc3RydWN0IGRldmljZSAqZGV2aWNlLAogCQkgICAgICAgZG1hX2FkZHJfdCAqZGFkZHJzLAotCQkgICAgICAgYm9vbCBibG9jayk7CisJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogbG9uZyBobW1fcmFuZ2VfZG1hX3VubWFwKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAotCQkJIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJIHN0cnVjdCBkZXZpY2UgKmRldmljZSwKIAkJCSBkbWFfYWRkcl90ICpkYWRkcnMsCiAJCQkgYm9vbCBkaXJ0eSk7CkBAIC00ODQsMTMgKzQwNiw2IEBAIGxvbmcgaG1tX3JhbmdlX2RtYV91bm1hcChzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwKICAqLwogI2RlZmluZSBITU1fUkFOR0VfREVGQVVMVF9USU1FT1VUIDEwMDAKIAotLyogQmVsb3cgYXJlIGZvciBITU0gaW50ZXJuYWwgdXNlIG9ubHkhIE5vdCB0byBiZSB1c2VkIGJ5IGRldmljZSBkcml2ZXIhICovCi1zdGF0aWMgaW5saW5lIHZvaWQgaG1tX21tX2luaXQoc3RydWN0IG1tX3N0cnVjdCAqbW0pCi17Ci0JbW0tPmhtbSA9IE5VTEw7Ci19Ci0jZWxzZSAvKiBJU19FTkFCTEVEKENPTkZJR19ITU1fTUlSUk9SKSAqLwotc3RhdGljIGlubGluZSB2b2lkIGhtbV9tbV9pbml0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKSB7fQogI2VuZGlmIC8qIElTX0VOQUJMRUQoQ09ORklHX0hNTV9NSVJST1IpICovCiAKICNlbmRpZiAvKiBMSU5VWF9ITU1fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9odWdlX21tLmggYi9pbmNsdWRlL2xpbnV4L2h1Z2VfbW0uaAppbmRleCA0NWVkZTYyLi42MWM5ZmZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2h1Z2VfbW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L2h1Z2VfbW0uaApAQCAtMjY3LDYgKzI2NywxNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdGhwX21pZ3JhdGlvbl9zdXBwb3J0ZWQodm9pZCkKIAlyZXR1cm4gSVNfRU5BQkxFRChDT05GSUdfQVJDSF9FTkFCTEVfVEhQX01JR1JBVElPTik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGxpc3RfaGVhZCAqcGFnZV9kZWZlcnJlZF9saXN0KHN0cnVjdCBwYWdlICpwYWdlKQoreworCS8qCisJICogR2xvYmFsIG9yIG1lbWNnIGRlZmVycmVkIGxpc3QgaW4gdGhlIHNlY29uZCB0YWlsIHBhZ2VzIGlzCisJICogb2NjdXBpZWQgYnkgY29tcG91bmRfaGVhZC4KKwkgKi8KKwlyZXR1cm4gJnBhZ2VbMl0uZGVmZXJyZWRfbGlzdDsKK30KKwogI2Vsc2UgLyogQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFICovCiAjZGVmaW5lIEhQQUdFX1BNRF9TSElGVCAoeyBCVUlMRF9CVUcoKTsgMDsgfSkKICNkZWZpbmUgSFBBR0VfUE1EX01BU0sgKHsgQlVJTERfQlVHKCk7IDA7IH0pCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaCBiL2luY2x1ZGUvbGludXgvaHVnZXRsYi5oCmluZGV4IGVkZmNhNDIuLjUzZmMzNGY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaApAQCAtNDU0LDcgKzQ1NCw3IEBAIHN0YXRpYyBpbmxpbmUgcHRlX3QgYXJjaF9tYWtlX2h1Z2VfcHRlKHB0ZV90IGVudHJ5LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGhzdGF0ZSAqcGFnZV9oc3RhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpCiB7CiAJVk1fQlVHX09OX1BBR0UoIVBhZ2VIdWdlKHBhZ2UpLCBwYWdlKTsKLQlyZXR1cm4gc2l6ZV90b19oc3RhdGUoUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpKTsKKwlyZXR1cm4gc2l6ZV90b19oc3RhdGUocGFnZV9zaXplKHBhZ2UpKTsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBoc3RhdGVfaW5kZXhfdG9fc2hpZnQodW5zaWduZWQgaW5kZXgpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2h5cGVydi5oIGIvaW5jbHVkZS9saW51eC9oeXBlcnYuaAppbmRleCAyYWZlNmZkLi5iNGEwMTcwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2h5cGVydi5oCisrKyBiL2luY2x1ZGUvbGludXgvaHlwZXJ2LmgKQEAgLTI0NSw3ICsyNDUsMTAgQEAgc3RydWN0IHZtYnVzX2NoYW5uZWxfb2ZmZXIgewogCQl9IHBpcGU7CiAJfSB1OwogCS8qCi0JICogVGhlIHN1Yl9jaGFubmVsX2luZGV4IGlzIGRlZmluZWQgaW4gd2luOC4KKwkgKiBUaGUgc3ViX2NoYW5uZWxfaW5kZXggaXMgZGVmaW5lZCBpbiBXaW44OiBhIHZhbHVlIG9mIHplcm8gbWVhbnMgYQorCSAqIHByaW1hcnkgY2hhbm5lbCBhbmQgYSB2YWx1ZSBvZiBub24temVybyBtZWFucyBhIHN1Yi1jaGFubmVsLgorCSAqCisJICogQmVmb3JlIFdpbjgsIHRoZSBmaWVsZCBpcyByZXNlcnZlZCwgbWVhbmluZyBpdCdzIGFsd2F5cyB6ZXJvLgogCSAqLwogCXUxNiBzdWJfY2hhbm5lbF9pbmRleDsKIAl1MTYgcmVzZXJ2ZWQzOwpAQCAtNDIzLDYgKzQyNiw5IEBAIGVudW0gdm1idXNfY2hhbm5lbF9tZXNzYWdlX3R5cGUgewogCUNIQU5ORUxNU0dfQ09VTlQKIH07CiAKKy8qIEh5cGVyLVYgc3VwcG9ydHMgYWJvdXQgMjA0OCBjaGFubmVscywgYW5kIHRoZSBSRUxJRHMgc3RhcnQgd2l0aCAxLiAqLworI2RlZmluZSBJTlZBTElEX1JFTElECVUzMl9NQVgKKwogc3RydWN0IHZtYnVzX2NoYW5uZWxfbWVzc2FnZV9oZWFkZXIgewogCWVudW0gdm1idXNfY2hhbm5lbF9tZXNzYWdlX3R5cGUgbXNndHlwZTsKIAl1MzIgcGFkZGluZzsKQEAgLTkzNCw2ICs5NDAsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzX2h2c29ja19jaGFubmVsKGNvbnN0IHN0cnVjdCB2bWJ1c19jaGFubmVsICpjKQogCQkgIFZNQlVTX0NIQU5ORUxfVExOUElfUFJPVklERVJfT0ZGRVIpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgaXNfc3ViX2NoYW5uZWwoY29uc3Qgc3RydWN0IHZtYnVzX2NoYW5uZWwgKmMpCit7CisJcmV0dXJuIGMtPm9mZmVybXNnLm9mZmVyLnN1Yl9jaGFubmVsX2luZGV4ICE9IDA7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfY2hhbm5lbF9hZmZpbml0eV9zdGF0ZShzdHJ1Y3Qgdm1idXNfY2hhbm5lbCAqYywKIAkJCQkJICAgICAgZW51bSBodl9udW1hX3BvbGljeSBwb2xpY3kpCiB7CkBAIC0xMTQ5LDYgKzExNjAsOSBAQCBzdHJ1Y3QgaHZfZHJpdmVyIHsKIAlpbnQgKCpyZW1vdmUpKHN0cnVjdCBodl9kZXZpY2UgKik7CiAJdm9pZCAoKnNodXRkb3duKShzdHJ1Y3QgaHZfZGV2aWNlICopOwogCisJaW50ICgqc3VzcGVuZCkoc3RydWN0IGh2X2RldmljZSAqKTsKKwlpbnQgKCpyZXN1bWUpKHN0cnVjdCBodl9kZXZpY2UgKik7CisKIH07CiAKIC8qIEJhc2UgZGV2aWNlIG9iamVjdCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pMmMuaCBiL2luY2x1ZGUvbGludXgvaTJjLmgKaW5kZXggYzBhNzhjMC4uMTM2MTYzNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pMmMuaAorKysgYi9pbmNsdWRlL2xpbnV4L2kyYy5oCkBAIC00NzMsNyArNDczLDcgQEAgZXh0ZXJuIHN0cnVjdCBpMmNfY2xpZW50ICoKIGRldm1faTJjX25ld19kdW1teV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIHUxNiBhZGRyZXNzKTsKIAogZXh0ZXJuIHN0cnVjdCBpMmNfY2xpZW50ICoKLWkyY19uZXdfc2Vjb25kYXJ5X2RldmljZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAoraTJjX25ld19hbmNpbGxhcnlfZGV2aWNlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJCQkJY29uc3QgY2hhciAqbmFtZSwKIAkJCQl1MTYgZGVmYXVsdF9hZGRyKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9paW8vY29tbW9uL2Nyb3NfZWNfc2Vuc29yc19jb3JlLmggYi9pbmNsdWRlL2xpbnV4L2lpby9jb21tb24vY3Jvc19lY19zZW5zb3JzX2NvcmUuaAppbmRleCBlYTFmNTBjLi5iYjMzMWU2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lpby9jb21tb24vY3Jvc19lY19zZW5zb3JzX2NvcmUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lpby9jb21tb24vY3Jvc19lY19zZW5zb3JzX2NvcmUuaApAQCAtMTAsNyArMTAsOCBAQAogCiAjaW5jbHVkZSA8bGludXgvaWlvL2lpby5oPgogI2luY2x1ZGUgPGxpbnV4L2lycXJldHVybi5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmg+CiAKIGVudW0gewogCUNST1NfRUNfU0VOU09SX1gsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2ltYS5oIGIvaW5jbHVkZS9saW51eC9pbWEuaAppbmRleCBhMjBhZDM5Li4xYzM3ZjE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2ltYS5oCisrKyBiL2luY2x1ZGUvbGludXgvaW1hLmgKQEAgLTEzMSw0ICsxMzEsMTMgQEAgc3RhdGljIGlubGluZSBpbnQgaW1hX2lub2RlX3JlbW92ZXhhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKIAlyZXR1cm4gMDsKIH0KICNlbmRpZiAvKiBDT05GSUdfSU1BX0FQUFJBSVNFICovCisKKyNpZiBkZWZpbmVkKENPTkZJR19JTUFfQVBQUkFJU0UpICYmIGRlZmluZWQoQ09ORklHX0lOVEVHUklUWV9UUlVTVEVEX0tFWVJJTkcpCitleHRlcm4gYm9vbCBpbWFfYXBwcmFpc2Vfc2lnbmF0dXJlKGVudW0ga2VybmVsX3JlYWRfZmlsZV9pZCBmdW5jKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIGJvb2wgaW1hX2FwcHJhaXNlX3NpZ25hdHVyZShlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQgZnVuYykKK3sKKwlyZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYgLyogQ09ORklHX0lNQV9BUFBSQUlTRSAmJiBDT05GSUdfSU5URUdSSVRZX1RSVVNURURfS0VZUklORyAqLwogI2VuZGlmIC8qIF9MSU5VWF9JTUFfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbnB1dC5oIGIvaW5jbHVkZS9saW51eC9pbnB1dC5oCmluZGV4IDUxMGU3ODUuLjk0ZjI3N2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5wdXQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lucHV0LmgKQEAgLTIxLDYgKzIxLDggQEAKICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgogCitzdHJ1Y3QgaW5wdXRfZGV2X3BvbGxlcjsKKwogLyoqCiAgKiBzdHJ1Y3QgaW5wdXRfdmFsdWUgLSBpbnB1dCB2YWx1ZSByZXByZXNlbnRhdGlvbgogICogQHR5cGU6IHR5cGUgb2YgdmFsdWUgKEVWX0tFWSwgRVZfQUJTLCBldGMpCkBAIC0zMyw2ICszNSwxMyBAQCBzdHJ1Y3QgaW5wdXRfdmFsdWUgewogCV9fczMyIHZhbHVlOwogfTsKIAorZW51bSBpbnB1dF9jbG9ja190eXBlIHsKKwlJTlBVVF9DTEtfUkVBTCA9IDAsCisJSU5QVVRfQ0xLX01PTk8sCisJSU5QVVRfQ0xLX0JPT1QsCisJSU5QVVRfQ0xLX01BWAorfTsKKwogLyoqCiAgKiBzdHJ1Y3QgaW5wdXRfZGV2IC0gcmVwcmVzZW50cyBhbiBpbnB1dCBkZXZpY2UKICAqIEBuYW1lOiBuYW1lIG9mIHRoZSBkZXZpY2UKQEAgLTY0LDYgKzczLDggQEAgc3RydWN0IGlucHV0X3ZhbHVlIHsKICAqCW5vdCBzbGVlcAogICogQGZmOiBmb3JjZSBmZWVkYmFjayBzdHJ1Y3R1cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UgaWYgZGV2aWNlCiAgKglzdXBwb3J0cyBmb3JjZSBmZWVkYmFjayBlZmZlY3RzCisgKiBAcG9sbGVyOiBwb2xsZXIgc3RydWN0dXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV2aWNlIGlmIGRldmljZSBpcworICoJc2V0IHVwIHRvIHVzZSBwb2xsaW5nIG1vZGUKICAqIEByZXBlYXRfa2V5OiBzdG9yZXMga2V5IGNvZGUgb2YgdGhlIGxhc3Qga2V5IHByZXNzZWQ7IHVzZWQgdG8gaW1wbGVtZW50CiAgKglzb2Z0d2FyZSBhdXRvcmVwZWF0CiAgKiBAdGltZXI6IHRpbWVyIGZvciBzb2Z0d2FyZSBhdXRvcmVwZWF0CkBAIC0xMTQsNiArMTI1LDggQEAgc3RydWN0IGlucHV0X3ZhbHVlIHsKICAqIEB2YWxzOiBhcnJheSBvZiB2YWx1ZXMgcXVldWVkIGluIHRoZSBjdXJyZW50IGZyYW1lCiAgKiBAZGV2cmVzX21hbmFnZWQ6IGluZGljYXRlcyB0aGF0IGRldmljZXMgaXMgbWFuYWdlZCB3aXRoIGRldnJlcyBmcmFtZXdvcmsKICAqCWFuZCBuZWVkcyBub3QgYmUgZXhwbGljaXRseSB1bnJlZ2lzdGVyZWQgb3IgZnJlZWQuCisgKiBAdGltZXN0YW1wOiBzdG9yYWdlIGZvciBhIHRpbWVzdGFtcCBzZXQgYnkgaW5wdXRfc2V0X3RpbWVzdGFtcCBjYWxsZWQKKyAqICBieSBhIGRyaXZlcgogICovCiBzdHJ1Y3QgaW5wdXRfZGV2IHsKIAljb25zdCBjaGFyICpuYW1lOwpAQCAtMTQ3LDYgKzE2MCw4IEBAIHN0cnVjdCBpbnB1dF9kZXYgewogCiAJc3RydWN0IGZmX2RldmljZSAqZmY7CiAKKwlzdHJ1Y3QgaW5wdXRfZGV2X3BvbGxlciAqcG9sbGVyOworCiAJdW5zaWduZWQgaW50IHJlcGVhdF9rZXk7CiAJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CiAKQEAgLTE4NCw2ICsxOTksOCBAQCBzdHJ1Y3QgaW5wdXRfZGV2IHsKIAlzdHJ1Y3QgaW5wdXRfdmFsdWUgKnZhbHM7CiAKIAlib29sIGRldnJlc19tYW5hZ2VkOworCisJa3RpbWVfdCB0aW1lc3RhbXBbSU5QVVRfQ0xLX01BWF07CiB9OwogI2RlZmluZSB0b19pbnB1dF9kZXYoZCkgY29udGFpbmVyX29mKGQsIHN0cnVjdCBpbnB1dF9kZXYsIGRldikKIApAQCAtMzYxLDYgKzM3OCwxMiBAQCB2b2lkIGlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBpbnB1dF9kZXYgKik7CiAKIHZvaWQgaW5wdXRfcmVzZXRfZGV2aWNlKHN0cnVjdCBpbnB1dF9kZXYgKik7CiAKK2ludCBpbnB1dF9zZXR1cF9wb2xsaW5nKHN0cnVjdCBpbnB1dF9kZXYgKmRldiwKKwkJCXZvaWQgKCpwb2xsX2ZuKShzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYpKTsKK3ZvaWQgaW5wdXRfc2V0X3BvbGxfaW50ZXJ2YWwoc3RydWN0IGlucHV0X2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgaW50ZXJ2YWwpOwordm9pZCBpbnB1dF9zZXRfbWluX3BvbGxfaW50ZXJ2YWwoc3RydWN0IGlucHV0X2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgaW50ZXJ2YWwpOwordm9pZCBpbnB1dF9zZXRfbWF4X3BvbGxfaW50ZXJ2YWwoc3RydWN0IGlucHV0X2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgaW50ZXJ2YWwpOworCiBpbnQgX19tdXN0X2NoZWNrIGlucHV0X3JlZ2lzdGVyX2hhbmRsZXIoc3RydWN0IGlucHV0X2hhbmRsZXIgKik7CiB2b2lkIGlucHV0X3VucmVnaXN0ZXJfaGFuZGxlcihzdHJ1Y3QgaW5wdXRfaGFuZGxlciAqKTsKIApAQCAtMzgyLDYgKzQwNSw5IEBAIHZvaWQgaW5wdXRfY2xvc2VfZGV2aWNlKHN0cnVjdCBpbnB1dF9oYW5kbGUgKik7CiAKIGludCBpbnB1dF9mbHVzaF9kZXZpY2Uoc3RydWN0IGlucHV0X2hhbmRsZSAqaGFuZGxlLCBzdHJ1Y3QgZmlsZSAqZmlsZSk7CiAKK3ZvaWQgaW5wdXRfc2V0X3RpbWVzdGFtcChzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYsIGt0aW1lX3QgdGltZXN0YW1wKTsKK2t0aW1lX3QgKmlucHV0X2dldF90aW1lc3RhbXAoc3RydWN0IGlucHV0X2RldiAqZGV2KTsKKwogdm9pZCBpbnB1dF9ldmVudChzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYsIHVuc2lnbmVkIGludCB0eXBlLCB1bnNpZ25lZCBpbnQgY29kZSwgaW50IHZhbHVlKTsKIHZvaWQgaW5wdXRfaW5qZWN0X2V2ZW50KHN0cnVjdCBpbnB1dF9oYW5kbGUgKmhhbmRsZSwgdW5zaWduZWQgaW50IHR5cGUsIHVuc2lnbmVkIGludCBjb2RlLCBpbnQgdmFsdWUpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lucHV0L2J1MjEwMTMuaCBiL2luY2x1ZGUvbGludXgvaW5wdXQvYnUyMTAxMy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTViN2U5Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvbGludXgvaW5wdXQvYnUyMTAxMy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLwotLyoKLSAqIENvcHlyaWdodCAoQykgU1QtRXJpY3Nzb24gU0EgMjAxMAotICogQXV0aG9yOiBOYXZlZW4gS3VtYXIgRyA8bmF2ZWVuLmdhZGRpcGF0aUBzdGVyaWNzc29uLmNvbT4gZm9yIFNULUVyaWNzc29uCi0gKi8KLQotI2lmbmRlZiBfQlUyMTAxM19ICi0jZGVmaW5lIF9CVTIxMDEzX0gKLQotLyoqCi0gKiBzdHJ1Y3QgYnUyMTAxM19wbGF0Zm9ybV9kZXZpY2UgLSBIYW5kbGUgdGhlIHBsYXRmb3JtIGRhdGEKLSAqIEB0b3VjaF94X21heDogdG91Y2ggeCBtYXgKLSAqIEB0b3VjaF95X21heDogdG91Y2ggeSBtYXgKLSAqIEBjc19waW46IGNoaXAgc2VsZWN0IHBpbgotICogQHRvdWNoX3BpbjogdG91Y2ggZ3BpbyBwaW4KLSAqIEBleHRfY2xrOiBleHRlcm5hbCBjbG9jayBmbGFnCi0gKiBAeF9mbGlwOiB4IGZsaXAgZmxhZwotICogQHlfZmxpcDogeSBmbGlwIGZsYWcKLSAqIEB3YWtldXA6IHdha2V1cCBmbGFnCi0gKgotICogVGhpcyBpcyB1c2VkIHRvIGhhbmRsZSB0aGUgcGxhdGZvcm0gZGF0YQotICovCi1zdHJ1Y3QgYnUyMTAxM19wbGF0Zm9ybV9kZXZpY2UgewotCWludCB0b3VjaF94X21heDsKLQlpbnQgdG91Y2hfeV9tYXg7Ci0JdW5zaWduZWQgaW50IGNzX3BpbjsKLQl1bnNpZ25lZCBpbnQgdG91Y2hfcGluOwotCWJvb2wgZXh0X2NsazsKLQlib29sIHhfZmxpcDsKLQlib29sIHlfZmxpcDsKLQlib29sIHdha2V1cDsKLX07Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbnRlcnZhbF90cmVlX2dlbmVyaWMuaCBiL2luY2x1ZGUvbGludXgvaW50ZXJ2YWxfdHJlZV9nZW5lcmljLmgKaW5kZXggODU1NDc2MS4uYWFhOGEwNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pbnRlcnZhbF90cmVlX2dlbmVyaWMuaAorKysgYi9pbmNsdWRlL2xpbnV4L2ludGVydmFsX3RyZWVfZ2VuZXJpYy5oCkBAIC0zMCwyNiArMzAsOCBAQAogCQkJCQkJCQkJICAgICAgXAogLyogQ2FsbGJhY2tzIGZvciBhdWdtZW50ZWQgcmJ0cmVlIGluc2VydCBhbmQgcmVtb3ZlICovCQkJICAgICAgXAogCQkJCQkJCQkJICAgICAgXAotc3RhdGljIGlubGluZSBJVFRZUEUgSVRQUkVGSVggIyMgX2NvbXB1dGVfc3VidHJlZV9sYXN0KElUU1RSVUNUICpub2RlKQkgICAgICBcCi17CQkJCQkJCQkJICAgICAgXAotCUlUVFlQRSBtYXggPSBJVExBU1Qobm9kZSksIHN1YnRyZWVfbGFzdDsJCQkgICAgICBcCi0JaWYgKG5vZGUtPklUUkIucmJfbGVmdCkgewkJCQkJICAgICAgXAotCQlzdWJ0cmVlX2xhc3QgPSByYl9lbnRyeShub2RlLT5JVFJCLnJiX2xlZnQsCQkgICAgICBcCi0JCQkJCUlUU1RSVUNULCBJVFJCKS0+SVRTVUJUUkVFOwkgICAgICBcCi0JCWlmIChtYXggPCBzdWJ0cmVlX2xhc3QpCQkJCQkgICAgICBcCi0JCQltYXggPSBzdWJ0cmVlX2xhc3Q7CQkJCSAgICAgIFwKLQl9CQkJCQkJCQkgICAgICBcCi0JaWYgKG5vZGUtPklUUkIucmJfcmlnaHQpIHsJCQkJCSAgICAgIFwKLQkJc3VidHJlZV9sYXN0ID0gcmJfZW50cnkobm9kZS0+SVRSQi5yYl9yaWdodCwJCSAgICAgIFwKLQkJCQkJSVRTVFJVQ1QsIElUUkIpLT5JVFNVQlRSRUU7CSAgICAgIFwKLQkJaWYgKG1heCA8IHN1YnRyZWVfbGFzdCkJCQkJCSAgICAgIFwKLQkJCW1heCA9IHN1YnRyZWVfbGFzdDsJCQkJICAgICAgXAotCX0JCQkJCQkJCSAgICAgIFwKLQlyZXR1cm4gbWF4OwkJCQkJCQkgICAgICBcCi19CQkJCQkJCQkJICAgICAgXAotCQkJCQkJCQkJICAgICAgXAotUkJfREVDTEFSRV9DQUxMQkFDS1Moc3RhdGljLCBJVFBSRUZJWCAjIyBfYXVnbWVudCwgSVRTVFJVQ1QsIElUUkIsCSAgICAgIFwKLQkJICAgICBJVFRZUEUsIElUU1VCVFJFRSwgSVRQUkVGSVggIyMgX2NvbXB1dGVfc3VidHJlZV9sYXN0KSAgICBcCitSQl9ERUNMQVJFX0NBTExCQUNLU19NQVgoc3RhdGljLCBJVFBSRUZJWCAjIyBfYXVnbWVudCwJCQkgICAgICBcCisJCQkgSVRTVFJVQ1QsIElUUkIsIElUVFlQRSwgSVRTVUJUUkVFLCBJVExBU1QpCSAgICAgIFwKIAkJCQkJCQkJCSAgICAgIFwKIC8qIEluc2VydCAvIHJlbW92ZSBpbnRlcnZhbCBub2RlcyBmcm9tIHRoZSB0cmVlICovCQkJICAgICAgXAogCQkJCQkJCQkJICAgICAgXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb21hcC5oIGIvaW5jbHVkZS9saW51eC9pb21hcC5oCmluZGV4IGJjNDk5Y2UuLjdhYTVkNjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW9tYXAuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lvbWFwLmgKQEAgLTE4OCwxMCArMTg4LDE0IEBAIHNlY3Rvcl90IGlvbWFwX2JtYXAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHNlY3Rvcl90IGJubywKICAqLwogI2RlZmluZSBJT01BUF9ESU9fVU5XUklUVEVOCSgxIDw8IDApCS8qIGNvdmVycyB1bndyaXR0ZW4gZXh0ZW50KHMpICovCiAjZGVmaW5lIElPTUFQX0RJT19DT1cJCSgxIDw8IDEpCS8qIGNvdmVycyBDT1cgZXh0ZW50KHMpICovCi10eXBlZGVmIGludCAoaW9tYXBfZGlvX2VuZF9pb190KShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHNzaXplX3QgcmV0LAotCQl1bnNpZ25lZCBmbGFncyk7CisKK3N0cnVjdCBpb21hcF9kaW9fb3BzIHsKKwlpbnQgKCplbmRfaW8pKHN0cnVjdCBraW9jYiAqaW9jYiwgc3NpemVfdCBzaXplLCBpbnQgZXJyb3IsCisJCSAgICAgIHVuc2lnbmVkIGZsYWdzKTsKK307CisKIHNzaXplX3QgaW9tYXBfZGlvX3J3KHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVyLAotCQljb25zdCBzdHJ1Y3QgaW9tYXBfb3BzICpvcHMsIGlvbWFwX2Rpb19lbmRfaW9fdCBlbmRfaW8pOworCQljb25zdCBzdHJ1Y3QgaW9tYXBfb3BzICpvcHMsIGNvbnN0IHN0cnVjdCBpb21hcF9kaW9fb3BzICpkb3BzKTsKIGludCBpb21hcF9kaW9faW9wb2xsKHN0cnVjdCBraW9jYiAqa2lvY2IsIGJvb2wgc3Bpbik7CiAKICNpZmRlZiBDT05GSUdfU1dBUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb3BvcnQuaCBiL2luY2x1ZGUvbGludXgvaW9wb3J0LmgKaW5kZXggNWI2YTcxMi4uN2JkZGRkZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pb3BvcnQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCkBAIC0yOTcsNiArMjk3LDggQEAgc3RhdGljIGlubGluZSBib29sIHJlc291cmNlX292ZXJsYXBzKHN0cnVjdCByZXNvdXJjZSAqcjEsIHN0cnVjdCByZXNvdXJjZSAqcjIpCiAKIHN0cnVjdCByZXNvdXJjZSAqZGV2bV9yZXF1ZXN0X2ZyZWVfbWVtX3JlZ2lvbihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCXN0cnVjdCByZXNvdXJjZSAqYmFzZSwgdW5zaWduZWQgbG9uZyBzaXplKTsKK3N0cnVjdCByZXNvdXJjZSAqcmVxdWVzdF9mcmVlX21lbV9yZWdpb24oc3RydWN0IHJlc291cmNlICpiYXNlLAorCQl1bnNpZ25lZCBsb25nIHNpemUsIGNvbnN0IGNoYXIgKm5hbWUpOwogCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAjZW5kaWYJLyogX0xJTlVYX0lPUE9SVF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2piZDIuaCBiL2luY2x1ZGUvbGludXgvamJkMi5oCmluZGV4IGRmMDM4MjUuLjYwM2ZiYzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvamJkMi5oCisrKyBiL2luY2x1ZGUvbGludXgvamJkMi5oCkBAIC0xNDEwLDggKzE0MTAsNiBAQCBleHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9jbGVhcl9lcnIgIChqb3VybmFsX3QgKik7CiBleHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9ibWFwKGpvdXJuYWxfdCAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcgKik7CiBleHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9mb3JjZV9jb21taXQoam91cm5hbF90ICopOwogZXh0ZXJuIGludAkgICBqYmQyX2pvdXJuYWxfZm9yY2VfY29tbWl0X25lc3RlZChqb3VybmFsX3QgKik7Ci1leHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9pbm9kZV9hZGRfd3JpdGUoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGpiZDJfaW5vZGUgKmlub2RlKTsKLWV4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2lub2RlX2FkZF93YWl0KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBqYmQyX2lub2RlICppbm9kZSk7CiBleHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9pbm9kZV9yYW5nZWRfd3JpdGUoaGFuZGxlX3QgKmhhbmRsZSwKIAkJCXN0cnVjdCBqYmQyX2lub2RlICppbm9kZSwgbG9mZl90IHN0YXJ0X2J5dGUsCiAJCQlsb2ZmX3QgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva2VybmVsLmggYi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oCmluZGV4IDRmYTM2MGEuLmQ4M2Q0MDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva2VybmVsLmgKKysrIGIvaW5jbHVkZS9saW51eC9rZXJuZWwuaApAQCAtMjE3LDcgKzIxNyw5IEBAIGV4dGVybiB2b2lkIF9fY2FudF9zbGVlcChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgaW50IHByZWVtcHRfb2Zmc2V0KTsKICAqIG1pZ2h0X3NsZWVwIC0gYW5ub3RhdGlvbiBmb3IgZnVuY3Rpb25zIHRoYXQgY2FuIHNsZWVwCiAgKgogICogdGhpcyBtYWNybyB3aWxsIHByaW50IGEgc3RhY2sgdHJhY2UgaWYgaXQgaXMgZXhlY3V0ZWQgaW4gYW4gYXRvbWljCi0gKiBjb250ZXh0IChzcGlubG9jaywgaXJxLWhhbmRsZXIsIC4uLikuCisgKiBjb250ZXh0IChzcGlubG9jaywgaXJxLWhhbmRsZXIsIC4uLikuIEFkZGl0aW9uYWwgc2VjdGlvbnMgd2hlcmUgYmxvY2tpbmcgaXMKKyAqIG5vdCBhbGxvd2VkIGNhbiBiZSBhbm5vdGF0ZWQgd2l0aCBub25fYmxvY2tfc3RhcnQoKSBhbmQgbm9uX2Jsb2NrX2VuZCgpCisgKiBwYWlycy4KICAqCiAgKiBUaGlzIGlzIGEgdXNlZnVsIGRlYnVnZ2luZyBoZWxwIHRvIGJlIGFibGUgdG8gY2F0Y2ggcHJvYmxlbXMgZWFybHkgYW5kIG5vdAogICogYmUgYml0dGVuIGxhdGVyIHdoZW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24gaGFwcGVucyB0byBzbGVlcCB3aGVuIGl0IGlzIG5vdApAQCAtMjMzLDYgKzIzNSwyMyBAQCBleHRlcm4gdm9pZCBfX2NhbnRfc2xlZXAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGludCBwcmVlbXB0X29mZnNldCk7CiAjIGRlZmluZSBjYW50X3NsZWVwKCkgXAogCWRvIHsgX19jYW50X3NsZWVwKF9fRklMRV9fLCBfX0xJTkVfXywgMCk7IH0gd2hpbGUgKDApCiAjIGRlZmluZSBzY2hlZF9hbm5vdGF0ZV9zbGVlcCgpCShjdXJyZW50LT50YXNrX3N0YXRlX2NoYW5nZSA9IDApCisvKioKKyAqIG5vbl9ibG9ja19zdGFydCAtIGFubm90YXRlIHRoZSBzdGFydCBvZiBzZWN0aW9uIHdoZXJlIHNsZWVwaW5nIGlzIHByb2hpYml0ZWQKKyAqCisgKiBUaGlzIGlzIG9uIGJlaGFsZiBvZiB0aGUgb29tIHJlYXBlciwgc3BlY2lmaWNhbGx5IHdoZW4gaXQgaXMgY2FsbGluZyB0aGUgbW11CisgKiBub3RpZmllcnMuIFRoZSBwcm9ibGVtIGlzIHRoYXQgaWYgdGhlIG5vdGlmaWVyIHdlcmUgdG8gYmxvY2sgb24sIGZvciBleGFtcGxlLAorICogbXV0ZXhfbG9jaygpIGFuZCBpZiB0aGUgcHJvY2VzcyB3aGljaCBob2xkcyB0aGF0IG11dGV4IHdlcmUgdG8gcGVyZm9ybSBhCisgKiBzbGVlcGluZyBtZW1vcnkgYWxsb2NhdGlvbiwgdGhlIG9vbSByZWFwZXIgaXMgbm93IGJsb2NrZWQgb24gY29tcGxldGlvbiBvZgorICogdGhhdCBtZW1vcnkgYWxsb2NhdGlvbi4gT3RoZXIgYmxvY2tpbmcgY2FsbHMgbGlrZSB3YWl0X2V2ZW50KCkgcG9zZSBzaW1pbGFyCisgKiBpc3N1ZXMuCisgKi8KKyMgZGVmaW5lIG5vbl9ibG9ja19zdGFydCgpIChjdXJyZW50LT5ub25fYmxvY2tfY291bnQrKykKKy8qKgorICogbm9uX2Jsb2NrX2VuZCAtIGFubm90YXRlIHRoZSBlbmQgb2Ygc2VjdGlvbiB3aGVyZSBzbGVlcGluZyBpcyBwcm9oaWJpdGVkCisgKgorICogQ2xvc2VzIGEgc2VjdGlvbiBvcGVuZWQgYnkgbm9uX2Jsb2NrX3N0YXJ0KCkuCisgKi8KKyMgZGVmaW5lIG5vbl9ibG9ja19lbmQoKSBXQVJOX09OKGN1cnJlbnQtPm5vbl9ibG9ja19jb3VudC0tID09IDApCiAjZWxzZQogICBzdGF0aWMgaW5saW5lIHZvaWQgX19fbWlnaHRfc2xlZXAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsCiAJCQkJICAgaW50IHByZWVtcHRfb2Zmc2V0KSB7IH0KQEAgLTI0MSw2ICsyNjAsOCBAQCBleHRlcm4gdm9pZCBfX2NhbnRfc2xlZXAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGludCBwcmVlbXB0X29mZnNldCk7CiAjIGRlZmluZSBtaWdodF9zbGVlcCgpIGRvIHsgbWlnaHRfcmVzY2hlZCgpOyB9IHdoaWxlICgwKQogIyBkZWZpbmUgY2FudF9zbGVlcCgpIGRvIHsgfSB3aGlsZSAoMCkKICMgZGVmaW5lIHNjaGVkX2Fubm90YXRlX3NsZWVwKCkgZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgbm9uX2Jsb2NrX3N0YXJ0KCkgZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgbm9uX2Jsb2NrX2VuZCgpIGRvIHsgfSB3aGlsZSAoMCkKICNlbmRpZgogCiAjZGVmaW5lIG1pZ2h0X3NsZWVwX2lmKGNvbmQpIGRvIHsgaWYgKGNvbmQpIG1pZ2h0X3NsZWVwKCk7IH0gd2hpbGUgKDApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2tleGVjLmggYi9pbmNsdWRlL2xpbnV4L2tleGVjLmgKaW5kZXggZjBiODA5Mi4uMTc3NmViMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9rZXhlYy5oCisrKyBiL2luY2x1ZGUvbGludXgva2V4ZWMuaApAQCAtMTI1LDcgKzEyNSw3IEBAIHR5cGVkZWYgdm9pZCAqKGtleGVjX2xvYWRfdCkoc3RydWN0IGtpbWFnZSAqaW1hZ2UsIGNoYXIgKmtlcm5lbF9idWYsCiAJCQkgICAgIHVuc2lnbmVkIGxvbmcgY21kbGluZV9sZW4pOwogdHlwZWRlZiBpbnQgKGtleGVjX2NsZWFudXBfdCkodm9pZCAqbG9hZGVyX2RhdGEpOwogCi0jaWZkZWYgQ09ORklHX0tFWEVDX1ZFUklGWV9TSUcKKyNpZmRlZiBDT05GSUdfS0VYRUNfU0lHCiB0eXBlZGVmIGludCAoa2V4ZWNfdmVyaWZ5X3NpZ190KShjb25zdCBjaGFyICprZXJuZWxfYnVmLAogCQkJCSB1bnNpZ25lZCBsb25nIGtlcm5lbF9sZW4pOwogI2VuZGlmCkBAIC0xMzQsNyArMTM0LDcgQEAgc3RydWN0IGtleGVjX2ZpbGVfb3BzIHsKIAlrZXhlY19wcm9iZV90ICpwcm9iZTsKIAlrZXhlY19sb2FkX3QgKmxvYWQ7CiAJa2V4ZWNfY2xlYW51cF90ICpjbGVhbnVwOwotI2lmZGVmIENPTkZJR19LRVhFQ19WRVJJRllfU0lHCisjaWZkZWYgQ09ORklHX0tFWEVDX1NJRwogCWtleGVjX3ZlcmlmeV9zaWdfdCAqdmVyaWZ5X3NpZzsKICNlbmRpZgogfTsKQEAgLTE4Myw2ICsxODMsOCBAQCBpbnQga2V4ZWNfcHVyZ2F0b3J5X2dldF9zZXRfc3ltYm9sKHN0cnVjdCBraW1hZ2UgKmltYWdlLCBjb25zdCBjaGFyICpuYW1lLAogCQkJCSAgIGJvb2wgZ2V0X3ZhbHVlKTsKIHZvaWQgKmtleGVjX3B1cmdhdG9yeV9nZXRfc3ltYm9sX2FkZHIoc3RydWN0IGtpbWFnZSAqaW1hZ2UsIGNvbnN0IGNoYXIgKm5hbWUpOwogCitpbnQgX193ZWFrIGFyY2hfa2V4ZWNfa2VybmVsX2ltYWdlX3Byb2JlKHN0cnVjdCBraW1hZ2UgKmltYWdlLCB2b2lkICpidWYsCisJCQkJCSB1bnNpZ25lZCBsb25nIGJ1Zl9sZW4pOwogdm9pZCAqIF9fd2VhayBhcmNoX2tleGVjX2tlcm5lbF9pbWFnZV9sb2FkKHN0cnVjdCBraW1hZ2UgKmltYWdlKTsKIGludCBfX3dlYWsgYXJjaF9rZXhlY19hcHBseV9yZWxvY2F0aW9uc19hZGQoc3RydWN0IHB1cmdhdG9yeV9pbmZvICpwaSwKIAkJCQkJICAgIEVsZl9TaGRyICpzZWN0aW9uLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9rZ2RiLmggYi9pbmNsdWRlL2xpbnV4L2tnZGIuaAppbmRleCBmYmYxNDRhLi5iMDcyYWViIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2tnZGIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2tnZGIuaApAQCAtMzI2LDggKzMyNiwxMCBAQCBleHRlcm4gYXRvbWljX3QJCQlrZ2RiX2FjdGl2ZTsKIAkocmF3X3NtcF9wcm9jZXNzb3JfaWQoKSA9PSBhdG9taWNfcmVhZCgma2dkYl9hY3RpdmUpKQogZXh0ZXJuIGJvb2wgZGJnX2lzX2Vhcmx5OwogZXh0ZXJuIHZvaWQgX19pbml0IGRiZ19sYXRlX2luaXQodm9pZCk7CitleHRlcm4gdm9pZCBrZ2RiX3BhbmljKGNvbnN0IGNoYXIgKm1zZyk7CiAjZWxzZSAvKiAhIENPTkZJR19LR0RCICovCiAjZGVmaW5lIGluX2RiZ19tYXN0ZXIoKSAoMCkKICNkZWZpbmUgZGJnX2xhdGVfaW5pdCgpCitzdGF0aWMgaW5saW5lIHZvaWQga2dkYl9wYW5pYyhjb25zdCBjaGFyICptc2cpIHt9CiAjZW5kaWYgLyogISBDT05GSUdfS0dEQiAqLwogI2VuZGlmIC8qIF9LR0RCX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2todWdlcGFnZWQuaCBiL2luY2x1ZGUvbGludXgva2h1Z2VwYWdlZC5oCmluZGV4IDA4MmQxZDIuLmJjNDVlYTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva2h1Z2VwYWdlZC5oCisrKyBiL2luY2x1ZGUvbGludXgva2h1Z2VwYWdlZC5oCkBAIC0xNSw2ICsxNSwxNCBAQCBleHRlcm4gaW50IF9fa2h1Z2VwYWdlZF9lbnRlcihzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiBleHRlcm4gdm9pZCBfX2todWdlcGFnZWRfZXhpdChzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiBleHRlcm4gaW50IGtodWdlcGFnZWRfZW50ZXJfdm1hX21lcmdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgdm1fZmxhZ3MpOworI2lmZGVmIENPTkZJR19TSE1FTQorZXh0ZXJuIHZvaWQgY29sbGFwc2VfcHRlX21hcHBlZF90aHAoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcik7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGNvbGxhcHNlX3B0ZV9tYXBwZWRfdGhwKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCQkgICB1bnNpZ25lZCBsb25nIGFkZHIpCit7Cit9CisjZW5kaWYKIAogI2RlZmluZSBraHVnZXBhZ2VkX2VuYWJsZWQoKQkJCQkJICAgICAgIFwKIAkodHJhbnNwYXJlbnRfaHVnZXBhZ2VfZmxhZ3MgJgkJCQkgICAgICAgXApAQCAtNzMsNiArODEsMTAgQEAgc3RhdGljIGlubGluZSBpbnQga2h1Z2VwYWdlZF9lbnRlcl92bWFfbWVyZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiB7CiAJcmV0dXJuIDA7CiB9CitzdGF0aWMgaW5saW5lIHZvaWQgY29sbGFwc2VfcHRlX21hcHBlZF90aHAoc3RydWN0IG1tX3N0cnVjdCAqbW0sCisJCQkJCSAgIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKK30KICNlbmRpZiAvKiBDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0UgKi8KIAogI2VuZGlmIC8qIF9MSU5VWF9LSFVHRVBBR0VEX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbGNkLmggYi9pbmNsdWRlL2xpbnV4L2xjZC5oCmluZGV4IDg1MWVlZTguLjIzOGZiMWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbGNkLmgKKysrIGIvaW5jbHVkZS9saW51eC9sY2QuaApAQCAtNDEsMTYgKzQxLDYgQEAgc3RydWN0IGxjZF9vcHMgewogCS8qIEdldCB0aGUgTENEIHBhbmVsIHBvd2VyIHN0YXR1cyAoMDogZnVsbCBvbiwgMS4uMzogY29udHJvbGxlcgogCSAgIHBvd2VyIG9uLCBmbGF0IHBhbmVsIHBvd2VyIG9mZiwgNDogZnVsbCBvZmYpLCBzZWUgRkJfQkxBTktfWFhYICovCiAJaW50ICgqZ2V0X3Bvd2VyKShzdHJ1Y3QgbGNkX2RldmljZSAqKTsKLQkvKgotCSAqIEVuYWJsZSBvciBkaXNhYmxlIHBvd2VyIHRvIHRoZSBMQ0QoMDogb247IDQ6IG9mZiwgc2VlIEZCX0JMQU5LX1hYWCkKLQkgKiBhbmQgdGhpcyBjYWxsYmFjayB3b3VsZCBiZSBjYWxsZWQgcHJvaXIgdG8gZmIgZHJpdmVyJ3MgY2FsbGJhY2suCi0JICoKLQkgKiBQLlMuIG5vdGUgdGhhdCBpZiBlYXJseV9zZXRfcG93ZXIgaXMgbm90IE5VTEwgdGhlbiBlYXJseSBmYiBub3RpZmllcgotCSAqCXdvdWxkIGJlIHJlZ2lzdGVyZWQuCi0JICovCi0JaW50ICgqZWFybHlfc2V0X3Bvd2VyKShzdHJ1Y3QgbGNkX2RldmljZSAqLCBpbnQgcG93ZXIpOwotCS8qIHJldmVydCB0aGUgZWZmZWN0cyBvZiB0aGUgZWFybHkgYmxhbmsgZXZlbnQuICovCi0JaW50ICgqcl9lYXJseV9zZXRfcG93ZXIpKHN0cnVjdCBsY2RfZGV2aWNlICosIGludCBwb3dlcik7CiAJLyogRW5hYmxlIG9yIGRpc2FibGUgcG93ZXIgdG8gdGhlIExDRCAoMDogb247IDQ6IG9mZiwgc2VlIEZCX0JMQU5LX1hYWCkgKi8KIAlpbnQgKCpzZXRfcG93ZXIpKHN0cnVjdCBsY2RfZGV2aWNlICosIGludCBwb3dlcik7CiAJLyogR2V0IHRoZSBjdXJyZW50IGNvbnRyYXN0IHNldHRpbmcgKDAtbWF4X2NvbnRyYXN0KSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9saWJudmRpbW0uaCBiL2luY2x1ZGUvbGludXgvbGlibnZkaW1tLmgKaW5kZXggN2E2NGIzZC4uYjZlZGRmOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9saWJudmRpbW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L2xpYm52ZGltbS5oCkBAIC0xNjAsOCArMTYwLDExIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IG5kX2Jsa19yZWdpb25fZGVzYyAqdG9fYmxrX3JlZ2lvbl9kZXNjKAogCiB9CiAKLWVudW0gbnZkaW1tX3NlY3VyaXR5X3N0YXRlIHsKLQlOVkRJTU1fU0VDVVJJVFlfRVJST1IgPSAtMSwKKy8qCisgKiBOb3RlIHRoYXQgc2VwYXJhdGUgYml0cyBmb3IgbG9ja2VkICsgdW5sb2NrZWQgYXJlIGRlZmluZWQgc28gdGhhdAorICogJ2ZsYWdzID09IDAnIGNvcnJlc3BvbmRzIHRvIGFuIGVycm9yIC8gbm90LXN1cHBvcnRlZCBzdGF0ZS4KKyAqLworZW51bSBudmRpbW1fc2VjdXJpdHlfYml0cyB7CiAJTlZESU1NX1NFQ1VSSVRZX0RJU0FCTEVELAogCU5WRElNTV9TRUNVUklUWV9VTkxPQ0tFRCwKIAlOVkRJTU1fU0VDVVJJVFlfTE9DS0VELApAQCAtMTgyLDcgKzE4NSw3IEBAIGVudW0gbnZkaW1tX3Bhc3NwaHJhc2VfdHlwZSB7CiB9OwogCiBzdHJ1Y3QgbnZkaW1tX3NlY3VyaXR5X29wcyB7Ci0JZW51bSBudmRpbW1fc2VjdXJpdHlfc3RhdGUgKCpzdGF0ZSkoc3RydWN0IG52ZGltbSAqbnZkaW1tLAorCXVuc2lnbmVkIGxvbmcgKCpnZXRfZmxhZ3MpKHN0cnVjdCBudmRpbW0gKm52ZGltbSwKIAkJCWVudW0gbnZkaW1tX3Bhc3NwaHJhc2VfdHlwZSBwYXNzX3R5cGUpOwogCWludCAoKmZyZWV6ZSkoc3RydWN0IG52ZGltbSAqbnZkaW1tKTsKIAlpbnQgKCpjaGFuZ2Vfa2V5KShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2xzbV9ob29rcy5oIGIvaW5jbHVkZS9saW51eC9sc21faG9va3MuaAppbmRleCBkZjEzMThkLi5hMzc2MzI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2xzbV9ob29rcy5oCisrKyBiL2luY2x1ZGUvbGludXgvbHNtX2hvb2tzLmgKQEAgLTMzOSw2ICszMzksOSBAQAogICoJQ2hlY2sgZm9yIHBlcm1pc3Npb24gdG8gY2hhbmdlIHJvb3QgZGlyZWN0b3J5LgogICoJQHBhdGggY29udGFpbnMgdGhlIHBhdGggc3RydWN0dXJlLgogICoJUmV0dXJuIDAgaWYgcGVybWlzc2lvbiBpcyBncmFudGVkLgorICogQHBhdGhfbm90aWZ5OgorICoJQ2hlY2sgcGVybWlzc2lvbnMgYmVmb3JlIHNldHRpbmcgYSB3YXRjaCBvbiBldmVudHMgYXMgZGVmaW5lZCBieSBAbWFzaywKKyAqCW9uIGFuIG9iamVjdCBhdCBAcGF0aCwgd2hvc2UgdHlwZSBpcyBkZWZpbmVkIGJ5IEBvYmpfdHlwZS4KICAqIEBpbm9kZV9yZWFkbGluazoKICAqCUNoZWNrIHRoZSBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIHN5bWJvbGljIGxpbmsuCiAgKglAZGVudHJ5IGNvbnRhaW5zIHRoZSBkZW50cnkgc3RydWN0dXJlIGZvciB0aGUgZmlsZSBsaW5rLgpAQCAtMTQ0Niw2ICsxNDQ5LDExIEBACiAgKiBAYnBmX3Byb2dfZnJlZV9zZWN1cml0eToKICAqCUNsZWFuIHVwIHRoZSBzZWN1cml0eSBpbmZvcm1hdGlvbiBzdG9yZWQgaW5zaWRlIGJwZiBwcm9nLgogICoKKyAqIEBsb2NrZWRfZG93bgorICogICAgIERldGVybWluZSB3aGV0aGVyIGEga2VybmVsIGZlYXR1cmUgdGhhdCBwb3RlbnRpYWxseSBlbmFibGVzIGFyYml0cmFyeQorICogICAgIGNvZGUgZXhlY3V0aW9uIGluIGtlcm5lbCBzcGFjZSBzaG91bGQgYmUgcGVybWl0dGVkLgorICoKKyAqICAgICBAd2hhdDoga2VybmVsIGZlYXR1cmUgYmVpbmcgYWNjZXNzZWQKICAqLwogdW5pb24gc2VjdXJpdHlfbGlzdF9vcHRpb25zIHsKIAlpbnQgKCpiaW5kZXJfc2V0X2NvbnRleHRfbWdyKShzdHJ1Y3QgdGFza19zdHJ1Y3QgKm1ncik7CkBAIC0xNTM1LDcgKzE1NDMsOSBAQCB1bmlvbiBzZWN1cml0eV9saXN0X29wdGlvbnMgewogCWludCAoKnBhdGhfY2hvd24pKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLCBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkKTsKIAlpbnQgKCpwYXRoX2Nocm9vdCkoY29uc3Qgc3RydWN0IHBhdGggKnBhdGgpOwogI2VuZGlmCi0KKwkvKiBOZWVkZWQgZm9yIGlub2RlIGJhc2VkIHNlY3VyaXR5IGNoZWNrICovCisJaW50ICgqcGF0aF9ub3RpZnkpKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLCB1NjQgbWFzaywKKwkJCQl1bnNpZ25lZCBpbnQgb2JqX3R5cGUpOwogCWludCAoKmlub2RlX2FsbG9jX3NlY3VyaXR5KShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIAl2b2lkICgqaW5vZGVfZnJlZV9zZWN1cml0eSkoc3RydWN0IGlub2RlICppbm9kZSk7CiAJaW50ICgqaW5vZGVfaW5pdF9zZWN1cml0eSkoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlub2RlICpkaXIsCkBAIC0xODA3LDYgKzE4MTcsNyBAQCB1bmlvbiBzZWN1cml0eV9saXN0X29wdGlvbnMgewogCWludCAoKmJwZl9wcm9nX2FsbG9jX3NlY3VyaXR5KShzdHJ1Y3QgYnBmX3Byb2dfYXV4ICphdXgpOwogCXZvaWQgKCpicGZfcHJvZ19mcmVlX3NlY3VyaXR5KShzdHJ1Y3QgYnBmX3Byb2dfYXV4ICphdXgpOwogI2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqLworCWludCAoKmxvY2tlZF9kb3duKShlbnVtIGxvY2tkb3duX3JlYXNvbiB3aGF0KTsKIH07CiAKIHN0cnVjdCBzZWN1cml0eV9ob29rX2hlYWRzIHsKQEAgLTE4NjAsNiArMTg3MSw4IEBAIHN0cnVjdCBzZWN1cml0eV9ob29rX2hlYWRzIHsKIAlzdHJ1Y3QgaGxpc3RfaGVhZCBwYXRoX2Nob3duOwogCXN0cnVjdCBobGlzdF9oZWFkIHBhdGhfY2hyb290OwogI2VuZGlmCisJLyogTmVlZGVkIGZvciBpbm9kZSBiYXNlZCBtb2R1bGVzIGFzIHdlbGwgKi8KKwlzdHJ1Y3QgaGxpc3RfaGVhZCBwYXRoX25vdGlmeTsKIAlzdHJ1Y3QgaGxpc3RfaGVhZCBpbm9kZV9hbGxvY19zZWN1cml0eTsKIAlzdHJ1Y3QgaGxpc3RfaGVhZCBpbm9kZV9mcmVlX3NlY3VyaXR5OwogCXN0cnVjdCBobGlzdF9oZWFkIGlub2RlX2luaXRfc2VjdXJpdHk7CkBAIC0yMDQ2LDYgKzIwNTksNyBAQCBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19oZWFkcyB7CiAJc3RydWN0IGhsaXN0X2hlYWQgYnBmX3Byb2dfYWxsb2Nfc2VjdXJpdHk7CiAJc3RydWN0IGhsaXN0X2hlYWQgYnBmX3Byb2dfZnJlZV9zZWN1cml0eTsKICNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi8KKwlzdHJ1Y3QgaGxpc3RfaGVhZCBsb2NrZWRfZG93bjsKIH0gX19yYW5kb21pemVfbGF5b3V0OwogCiAvKgpAQCAtMjEwNCwxMiArMjExOCwxOCBAQCBzdHJ1Y3QgbHNtX2luZm8gewogfTsKIAogZXh0ZXJuIHN0cnVjdCBsc21faW5mbyBfX3N0YXJ0X2xzbV9pbmZvW10sIF9fZW5kX2xzbV9pbmZvW107CitleHRlcm4gc3RydWN0IGxzbV9pbmZvIF9fc3RhcnRfZWFybHlfbHNtX2luZm9bXSwgX19lbmRfZWFybHlfbHNtX2luZm9bXTsKIAogI2RlZmluZSBERUZJTkVfTFNNKGxzbSkJCQkJCQkJXAogCXN0YXRpYyBzdHJ1Y3QgbHNtX2luZm8gX19sc21fIyNsc20JCQkJXAogCQlfX3VzZWQgX19zZWN0aW9uKC5sc21faW5mby5pbml0KQkJCVwKIAkJX19hbGlnbmVkKHNpemVvZih1bnNpZ25lZCBsb25nKSkKIAorI2RlZmluZSBERUZJTkVfRUFSTFlfTFNNKGxzbSkJCQkJCQlcCisJc3RhdGljIHN0cnVjdCBsc21faW5mbyBfX2Vhcmx5X2xzbV8jI2xzbQkJCVwKKwkJX191c2VkIF9fc2VjdGlvbiguZWFybHlfbHNtX2luZm8uaW5pdCkJCQlcCisJCV9fYWxpZ25lZChzaXplb2YodW5zaWduZWQgbG9uZykpCisKICNpZmRlZiBDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9ESVNBQkxFCiAvKgogICogQXNzdXJpbmcgdGhlIHNhZmV0eSBvZiBkZWxldGluZyBhIHNlY3VyaXR5IG1vZHVsZSBpcyB1cCB0bwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tYWlsYm94L210ay1jbWRxLW1haWxib3guaCBiL2luY2x1ZGUvbGludXgvbWFpbGJveC9tdGstY21kcS1tYWlsYm94LmgKaW5kZXggY2NiNzM0Mi4uZTZmNTRlZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tYWlsYm94L210ay1jbWRxLW1haWxib3guaAorKysgYi9pbmNsdWRlL2xpbnV4L21haWxib3gvbXRrLWNtZHEtbWFpbGJveC5oCkBAIC0yMCw2ICsyMCw5IEBACiAjZGVmaW5lIENNRFFfV0ZFX1dBSVQJCQlCSVQoMTUpCiAjZGVmaW5lIENNRFFfV0ZFX1dBSVRfVkFMVUUJCTB4MQogCisvKiogY21kcSBldmVudCBtYXhpbXVtICovCisjZGVmaW5lIENNRFFfTUFYX0VWRU5UCQkJMHgzZmYKKwogLyoKICAqIENNRFFfQ09ERV9NQVNLOgogICogICBzZXQgd3JpdGUgbWFzawpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZW1fZW5jcnlwdC5oIGIvaW5jbHVkZS9saW51eC9tZW1fZW5jcnlwdC5oCmluZGV4IDQ3MGJkNTMuLjVjNGExOGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWVtX2VuY3J5cHQuaAorKysgYi9pbmNsdWRlL2xpbnV4L21lbV9lbmNyeXB0LmgKQEAgLTE4LDIzICsxOCwxMCBAQAogCiAjZWxzZQkvKiAhQ09ORklHX0FSQ0hfSEFTX01FTV9FTkNSWVBUICovCiAKLSNkZWZpbmUgc21lX21lX21hc2sJMFVMTAotCi1zdGF0aWMgaW5saW5lIGJvb2wgc21lX2FjdGl2ZSh2b2lkKSB7IHJldHVybiBmYWxzZTsgfQotc3RhdGljIGlubGluZSBib29sIHNldl9hY3RpdmUodm9pZCkgeyByZXR1cm4gZmFsc2U7IH0KK3N0YXRpYyBpbmxpbmUgYm9vbCBtZW1fZW5jcnlwdF9hY3RpdmUodm9pZCkgeyByZXR1cm4gZmFsc2U7IH0KIAogI2VuZGlmCS8qIENPTkZJR19BUkNIX0hBU19NRU1fRU5DUllQVCAqLwogCi1zdGF0aWMgaW5saW5lIGJvb2wgbWVtX2VuY3J5cHRfYWN0aXZlKHZvaWQpCi17Ci0JcmV0dXJuIHNtZV9tZV9tYXNrOwotfQotCi1zdGF0aWMgaW5saW5lIHU2NCBzbWVfZ2V0X21lX21hc2sodm9pZCkKLXsKLQlyZXR1cm4gc21lX21lX21hc2s7Ci19Ci0KICNpZmRlZiBDT05GSUdfQU1EX01FTV9FTkNSWVBUCiAvKgogICogVGhlIF9fc21lX3NldCgpIGFuZCBfX3NtZV9jbHIoKSBtYWNyb3MgYXJlIHVzZWZ1bCBmb3IgYWRkaW5nIG9yIHJlbW92aW5nCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21lbWNvbnRyb2wuaCBiL2luY2x1ZGUvbGludXgvbWVtY29udHJvbC5oCmluZGV4IGFkOGYxYTMuLjliNjA4NjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWVtY29udHJvbC5oCisrKyBiL2luY2x1ZGUvbGludXgvbWVtY29udHJvbC5oCkBAIC0xMjgsOSArMTI4LDggQEAgc3RydWN0IG1lbV9jZ3JvdXBfcGVyX25vZGUgewogCiAJc3RydWN0IG1lbV9jZ3JvdXBfcmVjbGFpbV9pdGVyCWl0ZXJbREVGX1BSSU9SSVRZICsgMV07CiAKLSNpZmRlZiBDT05GSUdfTUVNQ0dfS01FTQogCXN0cnVjdCBtZW1jZ19zaHJpbmtlcl9tYXAgX19yY3UJKnNocmlua2VyX21hcDsKLSNlbmRpZgorCiAJc3RydWN0IHJiX25vZGUJCXRyZWVfbm9kZTsJLyogUkIgdHJlZSBub2RlICovCiAJdW5zaWduZWQgbG9uZwkJdXNhZ2VfaW5fZXhjZXNzOy8qIFNldCB0byB0aGUgdmFsdWUgYnkgd2hpY2ggKi8KIAkJCQkJCS8qIHRoZSBzb2Z0IGxpbWl0IGlzIGV4Y2VlZGVkKi8KQEAgLTMzMSw2ICszMzAsMTAgQEAgc3RydWN0IG1lbV9jZ3JvdXAgewogCXN0cnVjdCBsaXN0X2hlYWQgZXZlbnRfbGlzdDsKIAlzcGlubG9ja190IGV2ZW50X2xpc3RfbG9jazsKIAorI2lmZGVmIENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRQorCXN0cnVjdCBkZWZlcnJlZF9zcGxpdCBkZWZlcnJlZF9zcGxpdF9xdWV1ZTsKKyNlbmRpZgorCiAJc3RydWN0IG1lbV9jZ3JvdXBfcGVyX25vZGUgKm5vZGVpbmZvWzBdOwogCS8qIFdBUk5JTkc6IG5vZGVpbmZvIG11c3QgYmUgdGhlIGxhc3QgbWVtYmVyIGhlcmUgKi8KIH07CkBAIC0xMzExLDYgKzEzMTQsMTEgQEAgc3RhdGljIGlubGluZSBib29sIG1lbV9jZ3JvdXBfdW5kZXJfc29ja2V0X3ByZXNzdXJlKHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZykKIAl9IHdoaWxlICgobWVtY2cgPSBwYXJlbnRfbWVtX2Nncm91cChtZW1jZykpKTsKIAlyZXR1cm4gZmFsc2U7CiB9CisKK2V4dGVybiBpbnQgbWVtY2dfZXhwYW5kX3Nocmlua2VyX21hcHMoaW50IG5ld19pZCk7CisKK2V4dGVybiB2b2lkIG1lbWNnX3NldF9zaHJpbmtlcl9iaXQoc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnLAorCQkJCSAgIGludCBuaWQsIGludCBzaHJpbmtlcl9pZCk7CiAjZWxzZQogI2RlZmluZSBtZW1fY2dyb3VwX3NvY2tldHNfZW5hYmxlZCAwCiBzdGF0aWMgaW5saW5lIHZvaWQgbWVtX2Nncm91cF9za19hbGxvYyhzdHJ1Y3Qgc29jayAqc2spIHsgfTsKQEAgLTEzMTksNiArMTMyNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbWVtX2Nncm91cF91bmRlcl9zb2NrZXRfcHJlc3N1cmUoc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnKQogewogCXJldHVybiBmYWxzZTsKIH0KKworc3RhdGljIGlubGluZSB2b2lkIG1lbWNnX3NldF9zaHJpbmtlcl9iaXQoc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnLAorCQkJCQkgIGludCBuaWQsIGludCBzaHJpbmtlcl9pZCkKK3sKK30KICNlbmRpZgogCiBzdHJ1Y3Qga21lbV9jYWNoZSAqbWVtY2dfa21lbV9nZXRfY2FjaGUoc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlcCk7CkBAIC0xMzkwLDEwICsxNDAzLDYgQEAgc3RhdGljIGlubGluZSBpbnQgbWVtY2dfY2FjaGVfaWQoc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnKQogCXJldHVybiBtZW1jZyA/IG1lbWNnLT5rbWVtY2dfaWQgOiAtMTsKIH0KIAotZXh0ZXJuIGludCBtZW1jZ19leHBhbmRfc2hyaW5rZXJfbWFwcyhpbnQgbmV3X2lkKTsKLQotZXh0ZXJuIHZvaWQgbWVtY2dfc2V0X3Nocmlua2VyX2JpdChzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2csCi0JCQkJICAgaW50IG5pZCwgaW50IHNocmlua2VyX2lkKTsKICNlbHNlCiAKIHN0YXRpYyBpbmxpbmUgaW50IG1lbWNnX2ttZW1fY2hhcmdlKHN0cnVjdCBwYWdlICpwYWdlLCBnZnBfdCBnZnAsIGludCBvcmRlcikKQEAgLTE0MzUsOCArMTQ0NCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1jZ19wdXRfY2FjaGVfaWRzKHZvaWQpCiB7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBtZW1jZ19zZXRfc2hyaW5rZXJfYml0KHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZywKLQkJCQkJICBpbnQgbmlkLCBpbnQgc2hyaW5rZXJfaWQpIHsgfQogI2VuZGlmIC8qIENPTkZJR19NRU1DR19LTUVNICovCiAKICNlbmRpZiAvKiBfTElOVVhfTUVNQ09OVFJPTF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21lbW9yeS5oIGIvaW5jbHVkZS9saW51eC9tZW1vcnkuaAppbmRleCAwMmU2MzNmLi4wZWJiMTA1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21lbW9yeS5oCisrKyBiL2luY2x1ZGUvbGludXgvbWVtb3J5LmgKQEAgLTI1LDcgKzI1LDYgQEAKIAogc3RydWN0IG1lbW9yeV9ibG9jayB7CiAJdW5zaWduZWQgbG9uZyBzdGFydF9zZWN0aW9uX25yOwotCXVuc2lnbmVkIGxvbmcgZW5kX3NlY3Rpb25fbnI7CiAJdW5zaWduZWQgbG9uZyBzdGF0ZTsJCS8qIHNlcmlhbGl6ZWQgYnkgdGhlIGRldi0+bG9jayAqLwogCWludCBzZWN0aW9uX2NvdW50OwkJLyogc2VyaWFsaXplZCBieSBtZW1fc3lzZnNfbXV0ZXggKi8KIAlpbnQgb25saW5lX3R5cGU7CQkvKiBmb3IgcGFzc2luZyBkYXRhIHRvIG9ubGluZSByb3V0aW5lICovCkBAIC04MCw5ICs3OSw5IEBAIHN0cnVjdCBtZW1fc2VjdGlvbjsKICNkZWZpbmUgSVBDX0NBTExCQUNLX1BSSSAgICAgICAgMTAKIAogI2lmbmRlZiBDT05GSUdfTUVNT1JZX0hPVFBMVUdfU1BBUlNFCi1zdGF0aWMgaW5saW5lIGludCBtZW1vcnlfZGV2X2luaXQodm9pZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBtZW1vcnlfZGV2X2luaXQodm9pZCkKIHsKLQlyZXR1cm4gMDsKKwlyZXR1cm47CiB9CiBzdGF0aWMgaW5saW5lIGludCByZWdpc3Rlcl9tZW1vcnlfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYikKIHsKQEAgLTExMyw3ICsxMTIsNyBAQCBleHRlcm4gaW50IHJlZ2lzdGVyX21lbW9yeV9pc29sYXRlX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpOwogZXh0ZXJuIHZvaWQgdW5yZWdpc3Rlcl9tZW1vcnlfaXNvbGF0ZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsKIGludCBjcmVhdGVfbWVtb3J5X2Jsb2NrX2RldmljZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBzaXplKTsKIHZvaWQgcmVtb3ZlX21lbW9yeV9ibG9ja19kZXZpY2VzKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gaW50IG1lbW9yeV9kZXZfaW5pdCh2b2lkKTsKK2V4dGVybiB2b2lkIG1lbW9yeV9kZXZfaW5pdCh2b2lkKTsKIGV4dGVybiBpbnQgbWVtb3J5X25vdGlmeSh1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CiBleHRlcm4gaW50IG1lbW9yeV9pc29sYXRlX25vdGlmeSh1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CiBleHRlcm4gc3RydWN0IG1lbW9yeV9ibG9jayAqZmluZF9tZW1vcnlfYmxvY2soc3RydWN0IG1lbV9zZWN0aW9uICopOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZW1wb2xpY3kuaCBiL2luY2x1ZGUvbGludXgvbWVtcG9saWN5LmgKaW5kZXggYmFjMzk1Zi4uNTIyOGM2MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tZW1wb2xpY3kuaAorKysgYi9pbmNsdWRlL2xpbnV4L21lbXBvbGljeS5oCkBAIC0xMzksOCArMTM5LDYgQEAgc3RydWN0IG1lbXBvbGljeSAqbXBvbF9zaGFyZWRfcG9saWN5X2xvb2t1cChzdHJ1Y3Qgc2hhcmVkX3BvbGljeSAqc3AsCiBzdHJ1Y3QgbWVtcG9saWN5ICpnZXRfdGFza19wb2xpY3koc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKIHN0cnVjdCBtZW1wb2xpY3kgKl9fZ2V0X3ZtYV9wb2xpY3koc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCXVuc2lnbmVkIGxvbmcgYWRkcik7Ci1zdHJ1Y3QgbWVtcG9saWN5ICpnZXRfdm1hX3BvbGljeShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJCQkJCXVuc2lnbmVkIGxvbmcgYWRkcik7CiBib29sIHZtYV9wb2xpY3lfbW9mKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIAogZXh0ZXJuIHZvaWQgbnVtYV9kZWZhdWx0X3BvbGljeSh2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWVtcmVtYXAuaCBiL2luY2x1ZGUvbGludXgvbWVtcmVtYXAuaAppbmRleCBmOGE1YjJhLi5iZWY1MWUzNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tZW1yZW1hcC5oCisrKyBiL2luY2x1ZGUvbGludXgvbWVtcmVtYXAuaApAQCAtMTA5LDEwICsxMDksOCBAQCBzdHJ1Y3QgZGV2X3BhZ2VtYXAgewogCXN0cnVjdCBwZXJjcHVfcmVmICpyZWY7CiAJc3RydWN0IHBlcmNwdV9yZWYgaW50ZXJuYWxfcmVmOwogCXN0cnVjdCBjb21wbGV0aW9uIGRvbmU7Ci0Jc3RydWN0IGRldmljZSAqZGV2OwogCWVudW0gbWVtb3J5X3R5cGUgdHlwZTsKIAl1bnNpZ25lZCBpbnQgZmxhZ3M7Ci0JdTY0IHBjaV9wMnBkbWFfYnVzX29mZnNldDsKIAljb25zdCBzdHJ1Y3QgZGV2X3BhZ2VtYXBfb3BzICpvcHM7CiB9OwogCkBAIC0xMjQsNiArMTIyLDggQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgdm1lbV9hbHRtYXAgKnBnbWFwX2FsdG1hcChzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKQogfQogCiAjaWZkZWYgQ09ORklHX1pPTkVfREVWSUNFCit2b2lkICptZW1yZW1hcF9wYWdlcyhzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwLCBpbnQgbmlkKTsKK3ZvaWQgbWVtdW5tYXBfcGFnZXMoc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCk7CiB2b2lkICpkZXZtX21lbXJlbWFwX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCk7CiB2b2lkIGRldm1fbWVtdW5tYXBfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKTsKIHN0cnVjdCBkZXZfcGFnZW1hcCAqZ2V0X2Rldl9wYWdlbWFwKHVuc2lnbmVkIGxvbmcgcGZuLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZmQvY3Jvc19lYy5oIGIvaW5jbHVkZS9saW51eC9tZmQvY3Jvc19lYy5oCmluZGV4IDc3ODA1YzMuLjYxYzI4NzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWZkL2Nyb3NfZWMuaAorKysgYi9pbmNsdWRlL2xpbnV4L21mZC9jcm9zX2VjLmgKQEAgLTgsMTgzICs4LDExIEBACiAjaWZuZGVmIF9fTElOVVhfTUZEX0NST1NfRUNfSAogI2RlZmluZSBfX0xJTlVYX01GRF9DUk9TX0VDX0gKIAotI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjX2NvbW1hbmRzLmg+Ci0jaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KLQotI2RlZmluZSBDUk9TX0VDX0RFVl9OQU1FICJjcm9zX2VjIgotI2RlZmluZSBDUk9TX0VDX0RFVl9GUF9OQU1FICJjcm9zX2ZwIgotI2RlZmluZSBDUk9TX0VDX0RFVl9QRF9OQU1FICJjcm9zX3BkIgotI2RlZmluZSBDUk9TX0VDX0RFVl9UUF9OQU1FICJjcm9zX3RwIgotI2RlZmluZSBDUk9TX0VDX0RFVl9JU0hfTkFNRSAiY3Jvc19pc2giCi0jZGVmaW5lIENST1NfRUNfREVWX1NDUF9OQU1FICJjcm9zX3NjcCIKLQotLyoKLSAqIFRoZSBFQyBpcyB1bnJlc3BvbnNpdmUgZm9yIGEgdGltZSBhZnRlciBhIHJlYm9vdCBjb21tYW5kLiAgQWRkIGEKLSAqIHNpbXBsZSBkZWxheSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYnVzIHN0YXlzIGxvY2tlZC4KLSAqLwotI2RlZmluZSBFQ19SRUJPT1RfREVMQVlfTVMgICAgICAgICAgICAgNTAKLQotLyoKLSAqIE1heCBidXMtc3BlY2lmaWMgb3ZlcmhlYWQgaW5jdXJyZWQgYnkgcmVxdWVzdC9yZXNwb25zZXMuCi0gKiBJMkMgcmVxdWlyZXMgMSBhZGRpdGlvbmFsIGJ5dGUgZm9yIHJlcXVlc3RzLgotICogSTJDIHJlcXVpcmVzIDIgYWRkaXRpb25hbCBieXRlcyBmb3IgcmVzcG9uc2VzLgotICogU1BJIHJlcXVpcmVzIHVwIHRvIDMyIGFkZGl0aW9uYWwgYnl0ZXMgZm9yIHJlc3BvbnNlcy4KLSAqLwotI2RlZmluZSBFQ19QUk9UT19WRVJTSU9OX1VOS05PV04JMAotI2RlZmluZSBFQ19NQVhfUkVRVUVTVF9PVkVSSEVBRAkJMQotI2RlZmluZSBFQ19NQVhfUkVTUE9OU0VfT1ZFUkhFQUQJMzIKLQotLyoKLSAqIENvbW1hbmQgaW50ZXJmYWNlIGJldHdlZW4gRUMgYW5kIEFQLCBmb3IgTFBDLCBJMkMgYW5kIFNQSSBpbnRlcmZhY2VzLgotICovCi1lbnVtIHsKLQlFQ19NU0dfVFhfSEVBREVSX0JZVEVTCT0gMywKLQlFQ19NU0dfVFhfVFJBSUxFUl9CWVRFUwk9IDEsCi0JRUNfTVNHX1RYX1BST1RPX0JZVEVTCT0gRUNfTVNHX1RYX0hFQURFUl9CWVRFUyArCi0JCQkJCUVDX01TR19UWF9UUkFJTEVSX0JZVEVTLAotCUVDX01TR19SWF9QUk9UT19CWVRFUwk9IDMsCi0KLQkvKiBNYXggbGVuZ3RoIG9mIG1lc3NhZ2VzIGZvciBwcm90byAyKi8KLQlFQ19QUk9UTzJfTVNHX0JZVEVTCQk9IEVDX1BST1RPMl9NQVhfUEFSQU1fU0laRSArCi0JCQkJCUVDX01TR19UWF9QUk9UT19CWVRFUywKLQotCUVDX01BWF9NU0dfQllURVMJCT0gNjQgKiAxMDI0LAotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgY3Jvc19lY19jb21tYW5kIC0gSW5mb3JtYXRpb24gYWJvdXQgYSBDaHJvbWVPUyBFQyBjb21tYW5kLgotICogQHZlcnNpb246IENvbW1hbmQgdmVyc2lvbiBudW1iZXIgKG9mdGVuIDApLgotICogQGNvbW1hbmQ6IENvbW1hbmQgdG8gc2VuZCAoRUNfQ01EXy4uLikuCi0gKiBAb3V0c2l6ZTogT3V0Z29pbmcgbGVuZ3RoIGluIGJ5dGVzLgotICogQGluc2l6ZTogTWF4IG51bWJlciBvZiBieXRlcyB0byBhY2NlcHQgZnJvbSB0aGUgRUMuCi0gKiBAcmVzdWx0OiBFQydzIHJlc3BvbnNlIHRvIHRoZSBjb21tYW5kIChzZXBhcmF0ZSBmcm9tIGNvbW11bmljYXRpb24gZmFpbHVyZSkuCi0gKiBAZGF0YTogV2hlcmUgdG8gcHV0IHRoZSBpbmNvbWluZyBkYXRhIGZyb20gRUMgYW5kIG91dGdvaW5nIGRhdGEgdG8gRUMuCi0gKi8KLXN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgewotCXVpbnQzMl90IHZlcnNpb247Ci0JdWludDMyX3QgY29tbWFuZDsKLQl1aW50MzJfdCBvdXRzaXplOwotCXVpbnQzMl90IGluc2l6ZTsKLQl1aW50MzJfdCByZXN1bHQ7Ci0JdWludDhfdCBkYXRhWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgLSBJbmZvcm1hdGlvbiBhYm91dCBhIENocm9tZU9TIEVDIGRldmljZS4KLSAqIEBwaHlzX25hbWU6IE5hbWUgb2YgcGh5c2ljYWwgY29tbXMgbGF5ZXIgKGUuZy4gJ2kyYy00JykuCi0gKiBAZGV2OiBEZXZpY2UgcG9pbnRlciBmb3IgcGh5c2ljYWwgY29tbXMgZGV2aWNlCi0gKiBAd2FzX3dha2VfZGV2aWNlOiBUcnVlIGlmIHRoaXMgZGV2aWNlIHdhcyBzZXQgdG8gd2FrZSB0aGUgc3lzdGVtIGZyb20KLSAqICAgICAgICAgICAgICAgICAgIHNsZWVwIGF0IHRoZSBsYXN0IHN1c3BlbmQuCi0gKiBAY3Jvc19jbGFzczogVGhlIGNsYXNzIHN0cnVjdHVyZSBmb3IgdGhpcyBkZXZpY2UuCi0gKiBAY21kX3JlYWRtZW06IERpcmVjdCByZWFkIG9mIHRoZSBFQyBtZW1vcnktbWFwcGVkIHJlZ2lvbiwgaWYgc3VwcG9ydGVkLgotICogICAgIEBvZmZzZXQ6IElzIHdpdGhpbiBFQ19MUENfQUREUl9NRU1NQVAgcmVnaW9uLgotICogICAgIEBieXRlczogTnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQuIHplcm8gbWVhbnMgInJlYWQgYSBzdHJpbmciIChpbmNsdWRpbmcKLSAqICAgICAgICAgICAgIHRoZSB0cmFpbGluZyAnXDAnKS4gQXQgbW9zdCBvbmx5IEVDX01FTU1BUF9TSVpFIGJ5dGVzIGNhbiBiZQotICogICAgICAgICAgICAgcmVhZC4gQ2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2ggZm9yIHRoZQotICogICAgICAgICAgICAgcmVzdWx0IHdoZW4gcmVhZGluZyBhIHN0cmluZy4KLSAqIEBtYXhfcmVxdWVzdDogTWF4IHNpemUgb2YgbWVzc2FnZSByZXF1ZXN0ZWQuCi0gKiBAbWF4X3Jlc3BvbnNlOiBNYXggc2l6ZSBvZiBtZXNzYWdlIHJlc3BvbnNlLgotICogQG1heF9wYXNzdGhydTogTWF4IHNpY2Ugb2YgcGFzc3RocnUgbWVzc2FnZS4KLSAqIEBwcm90b192ZXJzaW9uOiBUaGUgcHJvdG9jb2wgdmVyc2lvbiB1c2VkIGZvciB0aGlzIGRldmljZS4KLSAqIEBwcml2OiBQcml2YXRlIGRhdGEuCi0gKiBAaXJxOiBJbnRlcnJ1cHQgdG8gdXNlLgotICogQGlkOiBEZXZpY2UgaWQuCi0gKiBAZGluOiBJbnB1dCBidWZmZXIgKGZvciBkYXRhIGZyb20gRUMpLiBUaGlzIGJ1ZmZlciB3aWxsIGFsd2F5cyBiZQotICogICAgICAgZHdvcmQtYWxpZ25lZCBhbmQgaW5jbHVkZSBlbm91Z2ggc3BhY2UgZm9yIHVwIHRvIDcgd29yZC1hbGlnbm1lbnQKLSAqICAgICAgIGJ5dGVzIGFsc28sIHNvIHdlIGNhbiBlbnN1cmUgdGhhdCB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZSBpcyBhbHdheXMKLSAqICAgICAgIGR3b3JkLWFsaWduZWQgKDY0LWJpdCkuIFdlIHVzZSB0aGlzIGFsaWdubWVudCB0byBrZWVwIEFSTSBhbmQgeDg2Ci0gKiAgICAgICBoYXBweS4gUHJvYmFibHkgd29yZCBhbGlnbm1lbnQgd291bGQgYmUgT0ssIHRoZXJlIG1pZ2h0IGJlIGEgc21hbGwKLSAqICAgICAgIHBlcmZvcm1hbmNlIGFkdmFudGFnZSB0byB1c2luZyBkd29yZC4KLSAqIEBkb3V0OiBPdXRwdXQgYnVmZmVyIChmb3IgZGF0YSB0byBFQykuIFRoaXMgYnVmZmVyIHdpbGwgYWx3YXlzIGJlCi0gKiAgICAgICAgZHdvcmQtYWxpZ25lZCBhbmQgaW5jbHVkZSBlbm91Z2ggc3BhY2UgZm9yIHVwIHRvIDcgd29yZC1hbGlnbm1lbnQKLSAqICAgICAgICBieXRlcyBhbHNvLCBzbyB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UgaXMgYWx3YXlzCi0gKiAgICAgICAgZHdvcmQtYWxpZ25lZCAoNjQtYml0KS4gV2UgdXNlIHRoaXMgYWxpZ25tZW50IHRvIGtlZXAgQVJNIGFuZCB4ODYKLSAqICAgICAgICBoYXBweS4gUHJvYmFibHkgd29yZCBhbGlnbm1lbnQgd291bGQgYmUgT0ssIHRoZXJlIG1pZ2h0IGJlIGEgc21hbGwKLSAqICAgICAgICBwZXJmb3JtYW5jZSBhZHZhbnRhZ2UgdG8gdXNpbmcgZHdvcmQuCi0gKiBAZGluX3NpemU6IFNpemUgb2YgZGluIGJ1ZmZlciB0byBhbGxvY2F0ZSAoemVybyB0byB1c2Ugc3RhdGljIGRpbikuCi0gKiBAZG91dF9zaXplOiBTaXplIG9mIGRvdXQgYnVmZmVyIHRvIGFsbG9jYXRlICh6ZXJvIHRvIHVzZSBzdGF0aWMgZG91dCkuCi0gKiBAd2FrZV9lbmFibGVkOiBUcnVlIGlmIHRoaXMgZGV2aWNlIGNhbiB3YWtlIHRoZSBzeXN0ZW0gZnJvbSBzbGVlcC4KLSAqIEBzdXNwZW5kZWQ6IFRydWUgaWYgdGhpcyBkZXZpY2UgaGFkIGJlZW4gc3VzcGVuZGVkLgotICogQGNtZF94ZmVyOiBTZW5kIGNvbW1hbmQgdG8gRUMgYW5kIGdldCByZXNwb25zZS4KLSAqICAgICAgICAgICAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlY2VpdmVkIGlmIHRoZSBjb21tdW5pY2F0aW9uCi0gKiAgICAgICAgICAgIHN1Y2NlZWRlZCwgYnV0IHRoYXQgZG9lc24ndCBtZWFuIHRoZSBFQyB3YXMgaGFwcHkgd2l0aCB0aGUKLSAqICAgICAgICAgICAgY29tbWFuZC4gVGhlIGNhbGxlciBzaG91bGQgY2hlY2sgbXNnLnJlc3VsdCBmb3IgdGhlIEVDJ3MgcmVzdWx0Ci0gKiAgICAgICAgICAgIGNvZGUuCi0gKiBAcGt0X3hmZXI6IFNlbmQgcGFja2V0IHRvIEVDIGFuZCBnZXQgcmVzcG9uc2UuCi0gKiBAbG9jazogT25lIHRyYW5zYWN0aW9uIGF0IGEgdGltZS4KLSAqIEBta2JwX2V2ZW50X3N1cHBvcnRlZDogVHJ1ZSBpZiB0aGlzIEVDIHN1cHBvcnRzIHRoZSBNS0JQIGV2ZW50IHByb3RvY29sLgotICogQGhvc3Rfc2xlZXBfdjE6IFRydWUgaWYgdGhpcyBFQyBzdXBwb3J0cyB0aGUgc2xlZXAgdjEgY29tbWFuZC4KLSAqIEBldmVudF9ub3RpZmllcjogSW50ZXJydXB0IGV2ZW50IG5vdGlmaWVyIGZvciB0cmFuc3BvcnQgZGV2aWNlcy4KLSAqIEBldmVudF9kYXRhOiBSYXcgcGF5bG9hZCB0cmFuc2ZlcnJlZCB3aXRoIHRoZSBNS0JQIGV2ZW50LgotICogQGV2ZW50X3NpemU6IFNpemUgaW4gYnl0ZXMgb2YgdGhlIGV2ZW50IGRhdGEuCi0gKiBAaG9zdF9ldmVudF93YWtlX21hc2s6IE1hc2sgb2YgaG9zdCBldmVudHMgdGhhdCBjYXVzZSB3YWtlIGZyb20gc3VzcGVuZC4KLSAqLwotc3RydWN0IGNyb3NfZWNfZGV2aWNlIHsKLQkvKiBUaGVzZSBhcmUgdXNlZCBieSBvdGhlciBkcml2ZXJzIHRoYXQgd2FudCB0byB0YWxrIHRvIHRoZSBFQyAqLwotCWNvbnN0IGNoYXIgKnBoeXNfbmFtZTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXY7Ci0JYm9vbCB3YXNfd2FrZV9kZXZpY2U7Ci0Jc3RydWN0IGNsYXNzICpjcm9zX2NsYXNzOwotCWludCAoKmNtZF9yZWFkbWVtKShzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAotCQkJICAgdW5zaWduZWQgaW50IGJ5dGVzLCB2b2lkICpkZXN0KTsKLQotCS8qIFRoZXNlIGFyZSB1c2VkIHRvIGltcGxlbWVudCB0aGUgcGxhdGZvcm0tc3BlY2lmaWMgaW50ZXJmYWNlICovCi0JdTE2IG1heF9yZXF1ZXN0OwotCXUxNiBtYXhfcmVzcG9uc2U7Ci0JdTE2IG1heF9wYXNzdGhydTsKLQl1MTYgcHJvdG9fdmVyc2lvbjsKLQl2b2lkICpwcml2OwotCWludCBpcnE7Ci0JdTggKmRpbjsKLQl1OCAqZG91dDsKLQlpbnQgZGluX3NpemU7Ci0JaW50IGRvdXRfc2l6ZTsKLQlib29sIHdha2VfZW5hYmxlZDsKLQlib29sIHN1c3BlbmRlZDsKLQlpbnQgKCpjbWRfeGZlcikoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplYywKLQkJCXN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgKm1zZyk7Ci0JaW50ICgqcGt0X3hmZXIpKHN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWMsCi0JCQlzdHJ1Y3QgY3Jvc19lY19jb21tYW5kICptc2cpOwotCXN0cnVjdCBtdXRleCBsb2NrOwotCWJvb2wgbWticF9ldmVudF9zdXBwb3J0ZWQ7Ci0JYm9vbCBob3N0X3NsZWVwX3YxOwotCXN0cnVjdCBibG9ja2luZ19ub3RpZmllcl9oZWFkIGV2ZW50X25vdGlmaWVyOwotCi0Jc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9uZXh0X2V2ZW50X3YxIGV2ZW50X2RhdGE7Ci0JaW50IGV2ZW50X3NpemU7Ci0JdTMyIGhvc3RfZXZlbnRfd2FrZV9tYXNrOwotCXUzMiBsYXN0X3Jlc3VtZV9yZXN1bHQ7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBjcm9zX2VjX3NlbnNvcl9wbGF0Zm9ybSAtIENocm9tZU9TIEVDIHNlbnNvciBwbGF0Zm9ybSBpbmZvcm1hdGlvbi4KLSAqIEBzZW5zb3JfbnVtOiBJZCBvZiB0aGUgc2Vuc29yLCBhcyByZXBvcnRlZCBieSB0aGUgRUMuCi0gKi8KLXN0cnVjdCBjcm9zX2VjX3NlbnNvcl9wbGF0Zm9ybSB7Ci0JdTggc2Vuc29yX251bTsKLX07Ci0KLS8qKgotICogc3RydWN0IGNyb3NfZWNfcGxhdGZvcm0gLSBDaHJvbWVPUyBFQyBwbGF0Zm9ybSBpbmZvcm1hdGlvbi4KLSAqIEBlY19uYW1lOiBOYW1lIG9mIEVDIGRldmljZSAoZS5nLiAnY3Jvcy1lYycsICdjcm9zLXBkJywgLi4uKQotICogICAgICAgICAgIHVzZWQgaW4gL2Rldi8gYW5kIHN5c2ZzLgotICogQGNtZF9vZmZzZXQ6IE9mZnNldCB0byBhcHBseSBmb3IgZWFjaCBjb21tYW5kLiBTZXQgd2hlbgotICogICAgICAgICAgICAgIHJlZ2lzdGVyaW5nIGEgZGV2aWNlIGJlaGluZCBhbm90aGVyIG9uZS4KLSAqLwotc3RydWN0IGNyb3NfZWNfcGxhdGZvcm0gewotCWNvbnN0IGNoYXIgKmVjX25hbWU7Ci0JdTE2IGNtZF9vZmZzZXQ7Ci19OwotCi1zdHJ1Y3QgY3Jvc19lY19kZWJ1Z2ZzOwogCiAvKioKICAqIHN0cnVjdCBjcm9zX2VjX2RldiAtIENocm9tZU9TIEVDIGRldmljZSBlbnRyeSBwb2ludC4KICAqIEBjbGFzc19kZXY6IERldmljZSBzdHJ1Y3R1cmUgdXNlZCBpbiBzeXNmcy4KLSAqIEBjZGV2OiBDaGFyYWN0ZXIgZGV2aWNlIHN0cnVjdHVyZSBpbiAvZGV2LgogICogQGVjX2RldjogY3Jvc19lY19kZXZpY2Ugc3RydWN0dXJlIHRvIHRhbGsgdG8gdGhlIHBoeXNpY2FsIGRldmljZS4KICAqIEBkZXY6IFBvaW50ZXIgdG8gdGhlIHBsYXRmb3JtIGRldmljZS4KICAqIEBkZWJ1Z19pbmZvOiBjcm9zX2VjX2RlYnVnZnMgc3RydWN0dXJlIGZvciBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uCkBAIC0xOTQsNyArMjIsNiBAQCBzdHJ1Y3QgY3Jvc19lY19kZWJ1Z2ZzOwogICovCiBzdHJ1Y3QgY3Jvc19lY19kZXYgewogCXN0cnVjdCBkZXZpY2UgY2xhc3NfZGV2OwotCXN0cnVjdCBjZGV2IGNkZXY7CiAJc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXY7CiAJc3RydWN0IGRldmljZSAqZGV2OwogCXN0cnVjdCBjcm9zX2VjX2RlYnVnZnMgKmRlYnVnX2luZm87CkBAIC0yMDUsMTIzICszMiw0IEBAIHN0cnVjdCBjcm9zX2VjX2RldiB7CiAKICNkZWZpbmUgdG9fY3Jvc19lY19kZXYoZGV2KSAgY29udGFpbmVyX29mKGRldiwgc3RydWN0IGNyb3NfZWNfZGV2LCBjbGFzc19kZXYpCiAKLS8qKgotICogY3Jvc19lY19zdXNwZW5kKCkgLSBIYW5kbGUgYSBzdXNwZW5kIG9wZXJhdGlvbiBmb3IgdGhlIENocm9tZU9TIEVDIGRldmljZS4KLSAqIEBlY19kZXY6IERldmljZSB0byBzdXNwZW5kLgotICoKLSAqIFRoaXMgY2FuIGJlIGNhbGxlZCBieSBkcml2ZXJzIHRvIGhhbmRsZSBhIHN1c3BlbmQgZXZlbnQuCi0gKgotICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZS4KLSAqLwotaW50IGNyb3NfZWNfc3VzcGVuZChzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2Rldik7Ci0KLS8qKgotICogY3Jvc19lY19yZXN1bWUoKSAtIEhhbmRsZSBhIHJlc3VtZSBvcGVyYXRpb24gZm9yIHRoZSBDaHJvbWVPUyBFQyBkZXZpY2UuCi0gKiBAZWNfZGV2OiBEZXZpY2UgdG8gcmVzdW1lLgotICoKLSAqIFRoaXMgY2FuIGJlIGNhbGxlZCBieSBkcml2ZXJzIHRvIGhhbmRsZSBhIHJlc3VtZSBldmVudC4KLSAqCi0gKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlLgotICovCi1pbnQgY3Jvc19lY19yZXN1bWUoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYpOwotCi0vKioKLSAqIGNyb3NfZWNfcHJlcGFyZV90eCgpIC0gUHJlcGFyZSBhbiBvdXRnb2luZyBtZXNzYWdlIGluIHRoZSBvdXRwdXQgYnVmZmVyLgotICogQGVjX2RldjogRGV2aWNlIHRvIHJlZ2lzdGVyLgotICogQG1zZzogTWVzc2FnZSB0byB3cml0ZS4KLSAqCi0gKiBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgYWxsIENocm9tZU9TIEVDIGRyaXZlcnMsIGJ1dCBhdCBwcmVzZW50Ci0gKiBvbmx5IFNQSSB1c2VzIGl0LiBPbmNlIExQQyB1c2VzIHRoZSBzYW1lIHByb3RvY29sIGl0IGNhbiBzdGFydCB1c2luZyBpdC4KLSAqIEkyQyBjb3VsZCB1c2UgaXQgbm93LCB3aXRoIGEgcmVmYWN0b3Igb2YgdGhlIGV4aXN0aW5nIGNvZGUuCi0gKgotICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZS4KLSAqLwotaW50IGNyb3NfZWNfcHJlcGFyZV90eChzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiwKLQkJICAgICAgIHN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgKm1zZyk7Ci0KLS8qKgotICogY3Jvc19lY19jaGVja19yZXN1bHQoKSAtIENoZWNrIGVjX21zZy0+cmVzdWx0LgotICogQGVjX2RldjogRUMgZGV2aWNlLgotICogQG1zZzogTWVzc2FnZSB0byBjaGVjay4KLSAqCi0gKiBUaGlzIGlzIHVzZWQgYnkgQ2hyb21lT1MgRUMgZHJpdmVycyB0byBjaGVjayB0aGUgZWNfbXNnLT5yZXN1bHQgZm9yCi0gKiBlcnJvcnMgYW5kIHRvIHdhcm4gYWJvdXQgdGhlbS4KLSAqCi0gKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlLgotICovCi1pbnQgY3Jvc19lY19jaGVja19yZXN1bHQoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYsCi0JCQkgc3RydWN0IGNyb3NfZWNfY29tbWFuZCAqbXNnKTsKLQotLyoqCi0gKiBjcm9zX2VjX2NtZF94ZmVyKCkgLSBTZW5kIGEgY29tbWFuZCB0byB0aGUgQ2hyb21lT1MgRUMuCi0gKiBAZWNfZGV2OiBFQyBkZXZpY2UuCi0gKiBAbXNnOiBNZXNzYWdlIHRvIHdyaXRlLgotICoKLSAqIENhbGwgdGhpcyB0byBzZW5kIGEgY29tbWFuZCB0byB0aGUgQ2hyb21lT1MgRUMuICBUaGlzIHNob3VsZCBiZSB1c2VkCi0gKiBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlIEVDJ3MgY21kX3hmZXIoKSBjYWxsYmFjayBkaXJlY3RseS4KLSAqCi0gKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlLgotICovCi1pbnQgY3Jvc19lY19jbWRfeGZlcihzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiwKLQkJICAgICBzdHJ1Y3QgY3Jvc19lY19jb21tYW5kICptc2cpOwotCi0vKioKLSAqIGNyb3NfZWNfY21kX3hmZXJfc3RhdHVzKCkgLSBTZW5kIGEgY29tbWFuZCB0byB0aGUgQ2hyb21lT1MgRUMuCi0gKiBAZWNfZGV2OiBFQyBkZXZpY2UuCi0gKiBAbXNnOiBNZXNzYWdlIHRvIHdyaXRlLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgaWRlbnRpY2FsIHRvIGNyb3NfZWNfY21kX3hmZXIsIGV4Y2VwdCBpdCByZXR1cm5zIHN1Y2Nlc3MKLSAqIHN0YXR1cyBvbmx5IGlmIGJvdGggdGhlIGNvbW1hbmQgd2FzIHRyYW5zbWl0dGVkIHN1Y2Nlc3NmdWxseSBhbmQgdGhlIEVDCi0gKiByZXBsaWVkIHdpdGggc3VjY2VzcyBzdGF0dXMuIEl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjaGVjayBtc2ctPnJlc3VsdCB3aGVuCi0gKiB1c2luZyB0aGlzIGZ1bmN0aW9uLgotICoKLSAqIFJldHVybjogVGhlIG51bWJlciBvZiBieXRlcyB0cmFuc2ZlcnJlZCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm9yIGNvZGUuCi0gKi8KLWludCBjcm9zX2VjX2NtZF94ZmVyX3N0YXR1cyhzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiwKLQkJCSAgICBzdHJ1Y3QgY3Jvc19lY19jb21tYW5kICptc2cpOwotCi0vKioKLSAqIGNyb3NfZWNfcmVnaXN0ZXIoKSAtIFJlZ2lzdGVyIGEgbmV3IENocm9tZU9TIEVDLCB1c2luZyB0aGUgcHJvdmlkZWQgaW5mby4KLSAqIEBlY19kZXY6IERldmljZSB0byByZWdpc3Rlci4KLSAqCi0gKiBCZWZvcmUgY2FsbGluZyB0aGlzLCBhbGxvY2F0ZSBhIHBvaW50ZXIgdG8gYSBuZXcgZGV2aWNlIGFuZCB0aGVuIGZpbGwKLSAqIGluIGFsbCB0aGUgZmllbGRzIHVwIHRvIHRoZSAtLXByaXZhdGUtLSBtYXJrZXIuCi0gKgotICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZS4KLSAqLwotaW50IGNyb3NfZWNfcmVnaXN0ZXIoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYpOwotCi0vKioKLSAqIGNyb3NfZWNfcXVlcnlfYWxsKCkgLSAgUXVlcnkgdGhlIHByb3RvY29sIHZlcnNpb24gc3VwcG9ydGVkIGJ5IHRoZQotICogICAgICAgICBDaHJvbWVPUyBFQy4KLSAqIEBlY19kZXY6IERldmljZSB0byByZWdpc3Rlci4KLSAqCi0gKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlLgotICovCi1pbnQgY3Jvc19lY19xdWVyeV9hbGwoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYpOwotCi0vKioKLSAqIGNyb3NfZWNfZ2V0X25leHRfZXZlbnQoKSAtIEZldGNoIG5leHQgZXZlbnQgZnJvbSB0aGUgQ2hyb21lT1MgRUMuCi0gKiBAZWNfZGV2OiBEZXZpY2UgdG8gZmV0Y2ggZXZlbnQgZnJvbS4KLSAqIEB3YWtlX2V2ZW50OiBQb2ludGVyIHRvIGEgYm9vbCBzZXQgdG8gdHJ1ZSB1cG9uIHJldHVybiBpZiB0aGUgZXZlbnQgbWlnaHQgYmUKLSAqICAgICAgICAgICAgICB0cmVhdGVkIGFzIGEgd2FrZSBldmVudC4gSWdub3JlZCBpZiBudWxsLgotICoKLSAqIFJldHVybjogbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBlcnJvcnM7IDAgZm9yIG5vIGRhdGE7IG9yIGVsc2UgbnVtYmVyIG9mCi0gKiBieXRlcyByZWNlaXZlZCAoaS5lLiwgYW4gZXZlbnQgd2FzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkpLiBFdmVudCB0eXBlcyBhcmUKLSAqIHdyaXR0ZW4gb3V0IHRvIEBlY19kZXYtPmV2ZW50X2RhdGEuZXZlbnRfdHlwZSBvbiBzdWNjZXNzLgotICovCi1pbnQgY3Jvc19lY19nZXRfbmV4dF9ldmVudChzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiwgYm9vbCAqd2FrZV9ldmVudCk7Ci0KLS8qKgotICogY3Jvc19lY19nZXRfaG9zdF9ldmVudCgpIC0gUmV0dXJuIGEgbWFzayBvZiBldmVudCBzZXQgYnkgdGhlIENocm9tZU9TIEVDLgotICogQGVjX2RldjogRGV2aWNlIHRvIGZldGNoIGV2ZW50IGZyb20uCi0gKgotICogV2hlbiBNS0JQIGlzIHN1cHBvcnRlZCwgd2hlbiB0aGUgRUMgcmFpc2VzIGFuIGludGVycnVwdCwgd2UgY29sbGVjdCB0aGUKLSAqIGV2ZW50cyByYWlzZWQgYW5kIGNhbGwgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgZWMgbm90aWZpZXIuIFRoaXMgZnVuY3Rpb24KLSAqIGlzIGEgaGVscGVyIHRvIGtub3cgd2hpY2ggZXZlbnRzIGFyZSByYWlzZWQuCi0gKgotICogUmV0dXJuOiAwIG9uIGVycm9yIG9yIG5vbi16ZXJvIGJpdG1hc2sgb2Ygb25lIG9yIG1vcmUgRUNfSE9TVF9FVkVOVF8qLgotICovCi11MzIgY3Jvc19lY19nZXRfaG9zdF9ldmVudChzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2Rldik7Ci0KICNlbmRpZiAvKiBfX0xJTlVYX01GRF9DUk9TX0VDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaCBiL2luY2x1ZGUvbGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2NjYjg3NS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2xpbnV4L21mZC9jcm9zX2VjX2NvbW1hbmRzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NzEzICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KLS8qCi0gKiBIb3N0IGNvbW11bmljYXRpb24gY29tbWFuZCBjb25zdGFudHMgZm9yIENocm9tZU9TIEVDCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jCi0gKgotICogTk9URTogVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGZyb20gQ2hyb21lT1MgRUMgT3BlbiBTb3VyY2UgY29kZSBmcm9tCi0gKiBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW1vcy9wbGF0Zm9ybS9lYy8rL21hc3Rlci9pbmNsdWRlL2VjX2NvbW1hbmRzLmgKLSAqLwotCi0vKiBIb3N0IGNvbW11bmljYXRpb24gY29tbWFuZCBjb25zdGFudHMgZm9yIENocm9tZSBFQyAqLwotCi0jaWZuZGVmIF9fQ1JPU19FQ19DT01NQU5EU19ICi0jZGVmaW5lIF9fQ1JPU19FQ19DT01NQU5EU19ICi0KLQotCi0KLSNkZWZpbmUgQlVJTERfQVNTRVJUKF9jb25kKQotCi0vKgotICogQ3VycmVudCB2ZXJzaW9uIG9mIHRoaXMgcHJvdG9jb2wKLSAqCi0gKiBUT0RPKGNyb3NidWcuY29tL3AvMTEyMjMpOiBUaGlzIGlzIGVmZmVjdGl2ZWx5IHVzZWxlc3M7IHByb3RvY29sIGlzCi0gKiBkZXRlcm1pbmVkIGluIG90aGVyIHdheXMuICBSZW1vdmUgdGhpcyBvbmNlIHRoZSBrZXJuZWwgY29kZSBubyBsb25nZXIKLSAqIGRlcGVuZHMgb24gaXQuCi0gKi8KLSNkZWZpbmUgRUNfUFJPVE9fVkVSU0lPTiAgICAgICAgICAweDAwMDAwMDAyCi0KLS8qIENvbW1hbmQgdmVyc2lvbiBtYXNrICovCi0jZGVmaW5lIEVDX1ZFUl9NQVNLKHZlcnNpb24pIEJJVCh2ZXJzaW9uKQotCi0vKiBJL08gYWRkcmVzc2VzIGZvciBBQ1BJIGNvbW1hbmRzICovCi0jZGVmaW5lIEVDX0xQQ19BRERSX0FDUElfREFUQSAgMHg2MgotI2RlZmluZSBFQ19MUENfQUREUl9BQ1BJX0NNRCAgIDB4NjYKLQotLyogSS9PIGFkZHJlc3NlcyBmb3IgaG9zdCBjb21tYW5kICovCi0jZGVmaW5lIEVDX0xQQ19BRERSX0hPU1RfREFUQSAgMHgyMDAKLSNkZWZpbmUgRUNfTFBDX0FERFJfSE9TVF9DTUQgICAweDIwNAotCi0vKiBJL08gYWRkcmVzc2VzIGZvciBob3N0IGNvbW1hbmQgYXJncyBhbmQgcGFyYW1zICovCi0vKiBQcm90b2NvbCB2ZXJzaW9uIDIgKi8KLSNkZWZpbmUgRUNfTFBDX0FERFJfSE9TVF9BUkdTICAgIDB4ODAwICAvKiBBbmQgMHg4MDEsIDB4ODAyLCAweDgwMyAqLwotI2RlZmluZSBFQ19MUENfQUREUl9IT1NUX1BBUkFNICAgMHg4MDQgIC8qIEZvciB2ZXJzaW9uIDIgcGFyYW1zOyBzaXplIGlzCi0JCQkJCSAqIEVDX1BST1RPMl9NQVhfUEFSQU1fU0laRQotCQkJCQkgKi8KLS8qIFByb3RvY29sIHZlcnNpb24gMyAqLwotI2RlZmluZSBFQ19MUENfQUREUl9IT1NUX1BBQ0tFVCAgMHg4MDAgIC8qIE9mZnNldCBvZiB2ZXJzaW9uIDMgcGFja2V0ICovCi0jZGVmaW5lIEVDX0xQQ19IT1NUX1BBQ0tFVF9TSVpFICAweDEwMCAgLyogTWF4IHNpemUgb2YgdmVyc2lvbiAzIHBhY2tldCAqLwotCi0vKgotICogVGhlIGFjdHVhbCBibG9jayBpcyAweDgwMC0weDhmZiwgYnV0IHNvbWUgQklPU2VzIHRoaW5rIGl0J3MgMHg4ODAtMHg4ZmYKLSAqIGFuZCB0aGV5IHRlbGwgdGhlIGtlcm5lbCB0aGF0IHNvIHdlIGhhdmUgdG8gdGhpbmsgb2YgaXQgYXMgdHdvIHBhcnRzLgotICovCi0jZGVmaW5lIEVDX0hPU1RfQ01EX1JFR0lPTjAgICAgMHg4MDAKLSNkZWZpbmUgRUNfSE9TVF9DTURfUkVHSU9OMSAgICAweDg4MAotI2RlZmluZSBFQ19IT1NUX0NNRF9SRUdJT05fU0laRSAweDgwCi0KLS8qIEVDIGNvbW1hbmQgcmVnaXN0ZXIgYml0IGZ1bmN0aW9ucyAqLwotI2RlZmluZSBFQ19MUENfQ01EUl9EQVRBCUJJVCgwKSAgLyogRGF0YSByZWFkeSBmb3IgaG9zdCB0byByZWFkICovCi0jZGVmaW5lIEVDX0xQQ19DTURSX1BFTkRJTkcJQklUKDEpICAvKiBXcml0ZSBwZW5kaW5nIHRvIEVDICovCi0jZGVmaW5lIEVDX0xQQ19DTURSX0JVU1kJQklUKDIpICAvKiBFQyBpcyBidXN5IHByb2Nlc3NpbmcgYSBjb21tYW5kICovCi0jZGVmaW5lIEVDX0xQQ19DTURSX0NNRAkJQklUKDMpICAvKiBMYXN0IGhvc3Qgd3JpdGUgd2FzIGEgY29tbWFuZCAqLwotI2RlZmluZSBFQ19MUENfQ01EUl9BQ1BJX0JSU1QJQklUKDQpICAvKiBCdXJzdCBtb2RlIChub3QgdXNlZCkgKi8KLSNkZWZpbmUgRUNfTFBDX0NNRFJfU0NJCQlCSVQoNSkgIC8qIFNDSSBldmVudCBpcyBwZW5kaW5nICovCi0jZGVmaW5lIEVDX0xQQ19DTURSX1NNSQkJQklUKDYpICAvKiBTTUkgZXZlbnQgaXMgcGVuZGluZyAqLwotCi0jZGVmaW5lIEVDX0xQQ19BRERSX01FTU1BUCAgICAgICAweDkwMAotI2RlZmluZSBFQ19NRU1NQVBfU0laRSAgICAgICAgIDI1NSAvKiBBQ1BJIElPIGJ1ZmZlciBtYXggaXMgMjU1IGJ5dGVzICovCi0jZGVmaW5lIEVDX01FTU1BUF9URVhUX01BWCAgICAgOCAgIC8qIFNpemUgb2YgYSBzdHJpbmcgaW4gdGhlIG1lbW9yeSBtYXAgKi8KLQotLyogVGhlIG9mZnNldCBhZGRyZXNzIG9mIGVhY2ggdHlwZSBvZiBkYXRhIGluIG1hcHBlZCBtZW1vcnkuICovCi0jZGVmaW5lIEVDX01FTU1BUF9URU1QX1NFTlNPUiAgICAgIDB4MDAgLyogVGVtcCBzZW5zb3JzIDB4MDAgLSAweDBmICovCi0jZGVmaW5lIEVDX01FTU1BUF9GQU4gICAgICAgICAgICAgIDB4MTAgLyogRmFuIHNwZWVkcyAweDEwIC0gMHgxNyAqLwotI2RlZmluZSBFQ19NRU1NQVBfVEVNUF9TRU5TT1JfQiAgICAweDE4IC8qIE1vcmUgdGVtcCBzZW5zb3JzIDB4MTggLSAweDFmICovCi0jZGVmaW5lIEVDX01FTU1BUF9JRCAgICAgICAgICAgICAgIDB4MjAgLyogMHgyMCA9PSAnRScsIDB4MjEgPT0gJ0MnICovCi0jZGVmaW5lIEVDX01FTU1BUF9JRF9WRVJTSU9OICAgICAgIDB4MjIgLyogVmVyc2lvbiBvZiBkYXRhIGluIDB4MjAgLSAweDJmICovCi0jZGVmaW5lIEVDX01FTU1BUF9USEVSTUFMX1ZFUlNJT04gIDB4MjMgLyogVmVyc2lvbiBvZiBkYXRhIGluIDB4MDAgLSAweDFmICovCi0jZGVmaW5lIEVDX01FTU1BUF9CQVRURVJZX1ZFUlNJT04gIDB4MjQgLyogVmVyc2lvbiBvZiBkYXRhIGluIDB4NDAgLSAweDdmICovCi0jZGVmaW5lIEVDX01FTU1BUF9TV0lUQ0hFU19WRVJTSU9OIDB4MjUgLyogVmVyc2lvbiBvZiBkYXRhIGluIDB4MzAgLSAweDMzICovCi0jZGVmaW5lIEVDX01FTU1BUF9FVkVOVFNfVkVSU0lPTiAgIDB4MjYgLyogVmVyc2lvbiBvZiBkYXRhIGluIDB4MzQgLSAweDNmICovCi0jZGVmaW5lIEVDX01FTU1BUF9IT1NUX0NNRF9GTEFHUyAgIDB4MjcgLyogSG9zdCBjbWQgaW50ZXJmYWNlIGZsYWdzICg4IGJpdHMpICovCi0vKiBVbnVzZWQgMHgyOCAtIDB4MmYgKi8KLSNkZWZpbmUgRUNfTUVNTUFQX1NXSVRDSEVTICAgICAgICAgMHgzMAkvKiA4IGJpdHMgKi8KLS8qIFVudXNlZCAweDMxIC0gMHgzMyAqLwotI2RlZmluZSBFQ19NRU1NQVBfSE9TVF9FVkVOVFMgICAgICAweDM0IC8qIDY0IGJpdHMgKi8KLS8qIEJhdHRlcnkgdmFsdWVzIGFyZSBhbGwgMzIgYml0cywgdW5sZXNzIG90aGVyd2lzZSBub3RlZC4gKi8KLSNkZWZpbmUgRUNfTUVNTUFQX0JBVFRfVk9MVCAgICAgICAgMHg0MCAvKiBCYXR0ZXJ5IFByZXNlbnQgVm9sdGFnZSAqLwotI2RlZmluZSBFQ19NRU1NQVBfQkFUVF9SQVRFICAgICAgICAweDQ0IC8qIEJhdHRlcnkgUHJlc2VudCBSYXRlICovCi0jZGVmaW5lIEVDX01FTU1BUF9CQVRUX0NBUCAgICAgICAgIDB4NDggLyogQmF0dGVyeSBSZW1haW5pbmcgQ2FwYWNpdHkgKi8KLSNkZWZpbmUgRUNfTUVNTUFQX0JBVFRfRkxBRyAgICAgICAgMHg0YyAvKiBCYXR0ZXJ5IFN0YXRlLCBzZWUgYmVsb3cgKDgtYml0KSAqLwotI2RlZmluZSBFQ19NRU1NQVBfQkFUVF9DT1VOVCAgICAgICAweDRkIC8qIEJhdHRlcnkgQ291bnQgKDgtYml0KSAqLwotI2RlZmluZSBFQ19NRU1NQVBfQkFUVF9JTkRFWCAgICAgICAweDRlIC8qIEN1cnJlbnQgQmF0dGVyeSBEYXRhIEluZGV4ICg4LWJpdCkgKi8KLS8qIFVudXNlZCAweDRmICovCi0jZGVmaW5lIEVDX01FTU1BUF9CQVRUX0RDQVAgICAgICAgIDB4NTAgLyogQmF0dGVyeSBEZXNpZ24gQ2FwYWNpdHkgKi8KLSNkZWZpbmUgRUNfTUVNTUFQX0JBVFRfRFZMVCAgICAgICAgMHg1NCAvKiBCYXR0ZXJ5IERlc2lnbiBWb2x0YWdlICovCi0jZGVmaW5lIEVDX01FTU1BUF9CQVRUX0xGQ0MgICAgICAgIDB4NTggLyogQmF0dGVyeSBMYXN0IEZ1bGwgQ2hhcmdlIENhcGFjaXR5ICovCi0jZGVmaW5lIEVDX01FTU1BUF9CQVRUX0NDTlQgICAgICAgIDB4NWMgLyogQmF0dGVyeSBDeWNsZSBDb3VudCAqLwotLyogU3RyaW5ncyBhcmUgYWxsIDggYnl0ZXMgKEVDX01FTU1BUF9URVhUX01BWCkgKi8KLSNkZWZpbmUgRUNfTUVNTUFQX0JBVFRfTUZHUiAgICAgICAgMHg2MCAvKiBCYXR0ZXJ5IE1hbnVmYWN0dXJlciBTdHJpbmcgKi8KLSNkZWZpbmUgRUNfTUVNTUFQX0JBVFRfTU9ERUwgICAgICAgMHg2OCAvKiBCYXR0ZXJ5IE1vZGVsIE51bWJlciBTdHJpbmcgKi8KLSNkZWZpbmUgRUNfTUVNTUFQX0JBVFRfU0VSSUFMICAgICAgMHg3MCAvKiBCYXR0ZXJ5IFNlcmlhbCBOdW1iZXIgU3RyaW5nICovCi0jZGVmaW5lIEVDX01FTU1BUF9CQVRUX1RZUEUgICAgICAgIDB4NzggLyogQmF0dGVyeSBUeXBlIFN0cmluZyAqLwotI2RlZmluZSBFQ19NRU1NQVBfQUxTICAgICAgICAgICAgICAweDgwIC8qIEFMUyByZWFkaW5ncyBpbiBsdXggKDIgWCAxNiBiaXRzKSAqLwotLyogVW51c2VkIDB4ODQgLSAweDhmICovCi0jZGVmaW5lIEVDX01FTU1BUF9BQ0NfU1RBVFVTICAgICAgIDB4OTAgLyogQWNjZWxlcm9tZXRlciBzdGF0dXMgKDggYml0cyApKi8KLS8qIFVudXNlZCAweDkxICovCi0jZGVmaW5lIEVDX01FTU1BUF9BQ0NfREFUQSAgICAgICAgIDB4OTIgLyogQWNjZWxlcm9tZXRlcnMgZGF0YSAweDkyIC0gMHg5ZiAqLwotLyogMHg5MjogTGlkIEFuZ2xlIGlmIGF2YWlsYWJsZSwgTElEX0FOR0xFX1VOUkVMSUFCTEUgb3RoZXJ3aXNlICovCi0vKiAweDk0IC0gMHg5OTogMXN0IEFjY2VsZXJvbWV0ZXIgKi8KLS8qIDB4OWEgLSAweDlmOiAybmQgQWNjZWxlcm9tZXRlciAqLwotI2RlZmluZSBFQ19NRU1NQVBfR1lST19EQVRBICAgICAgICAweGEwIC8qIEd5cm9zY29wZSBkYXRhIDB4YTAgLSAweGE1ICovCi0vKiBVbnVzZWQgMHhhNiAtIDB4ZGYgKi8KLQotLyoKLSAqIEFDUEkgaXMgdW5hYmxlIHRvIGFjY2VzcyBtZW1vcnkgbWFwcGVkIGRhdGEgYXQgb3IgYWJvdmUgdGhpcyBvZmZzZXQgZHVlIHRvCi0gKiBsaW1pdGF0aW9ucyBvZiB0aGUgQUNQSSBwcm90b2NvbC4gRG8gbm90IHBsYWNlIGRhdGEgaW4gdGhlIHJhbmdlIDB4ZTAgLSAweGZlCi0gKiB3aGljaCBtaWdodCBiZSBuZWVkZWQgYnkgQUNQSS4KLSAqLwotI2RlZmluZSBFQ19NRU1NQVBfTk9fQUNQSSAweGUwCi0KLS8qIERlZmluZSB0aGUgZm9ybWF0IG9mIHRoZSBhY2NlbGVyb21ldGVyIG1hcHBlZCBtZW1vcnkgc3RhdHVzIGJ5dGUuICovCi0jZGVmaW5lIEVDX01FTU1BUF9BQ0NfU1RBVFVTX1NBTVBMRV9JRF9NQVNLICAweDBmCi0jZGVmaW5lIEVDX01FTU1BUF9BQ0NfU1RBVFVTX0JVU1lfQklUICAgICAgICBCSVQoNCkKLSNkZWZpbmUgRUNfTUVNTUFQX0FDQ19TVEFUVVNfUFJFU0VOQ0VfQklUICAgIEJJVCg3KQotCi0vKiBOdW1iZXIgb2YgdGVtcCBzZW5zb3JzIGF0IEVDX01FTU1BUF9URU1QX1NFTlNPUiAqLwotI2RlZmluZSBFQ19URU1QX1NFTlNPUl9FTlRSSUVTICAgICAxNgotLyoKLSAqIE51bWJlciBvZiB0ZW1wIHNlbnNvcnMgYXQgRUNfTUVNTUFQX1RFTVBfU0VOU09SX0IuCi0gKgotICogVmFsaWQgb25seSBpZiBFQ19NRU1NQVBfVEhFUk1BTF9WRVJTSU9OIHJldHVybnMgPj0gMi4KLSAqLwotI2RlZmluZSBFQ19URU1QX1NFTlNPUl9CX0VOVFJJRVMgICAgICA4Ci0KLS8qIFNwZWNpYWwgdmFsdWVzIGZvciBtYXBwZWQgdGVtcGVyYXR1cmUgc2Vuc29ycyAqLwotI2RlZmluZSBFQ19URU1QX1NFTlNPUl9OT1RfUFJFU0VOVCAgICAweGZmCi0jZGVmaW5lIEVDX1RFTVBfU0VOU09SX0VSUk9SICAgICAgICAgIDB4ZmUKLSNkZWZpbmUgRUNfVEVNUF9TRU5TT1JfTk9UX1BPV0VSRUQgICAgMHhmZAotI2RlZmluZSBFQ19URU1QX1NFTlNPUl9OT1RfQ0FMSUJSQVRFRCAweGZjCi0vKgotICogVGhlIG9mZnNldCBvZiB0ZW1wZXJhdHVyZSB2YWx1ZSBzdG9yZWQgaW4gbWFwcGVkIG1lbW9yeS4gIFRoaXMgYWxsb3dzCi0gKiByZXBvcnRpbmcgYSB0ZW1wZXJhdHVyZSByYW5nZSBvZiAyMDBLIHRvIDQ1NEsgPSAtNzNDIHRvIDE4MUMuCi0gKi8KLSNkZWZpbmUgRUNfVEVNUF9TRU5TT1JfT0ZGU0VUICAgICAgMjAwCi0KLS8qCi0gKiBOdW1iZXIgb2YgQUxTIHJlYWRpbmdzIGF0IEVDX01FTU1BUF9BTFMKLSAqLwotI2RlZmluZSBFQ19BTFNfRU5UUklFUyAgICAgICAgICAgICAyCi0KLS8qCi0gKiBUaGUgZGVmYXVsdCB2YWx1ZSBhIHRlbXBlcmF0dXJlIHNlbnNvciB3aWxsIHJldHVybiB3aGVuIGl0IGlzIHByZXNlbnQgYnV0Ci0gKiBoYXMgbm90IGJlZW4gcmVhZCB0aGlzIGJvb3QuICBUaGlzIGlzIGEgcmVhc29uYWJsZSBudW1iZXIgdG8gYXZvaWQKLSAqIHRyaWdnZXJpbmcgYWxhcm1zIG9uIHRoZSBob3N0LgotICovCi0jZGVmaW5lIEVDX1RFTVBfU0VOU09SX0RFRkFVTFQgICAgICgyOTYgLSBFQ19URU1QX1NFTlNPUl9PRkZTRVQpCi0KLSNkZWZpbmUgRUNfRkFOX1NQRUVEX0VOVFJJRVMgICAgICAgNCAgICAgICAvKiBOdW1iZXIgb2YgZmFucyBhdCBFQ19NRU1NQVBfRkFOICovCi0jZGVmaW5lIEVDX0ZBTl9TUEVFRF9OT1RfUFJFU0VOVCAgIDB4ZmZmZiAgLyogRW50cnkgbm90IHByZXNlbnQgKi8KLSNkZWZpbmUgRUNfRkFOX1NQRUVEX1NUQUxMRUQgICAgICAgMHhmZmZlICAvKiBGYW4gc3RhbGxlZCAqLwotCi0vKiBCYXR0ZXJ5IGJpdCBmbGFncyBhdCBFQ19NRU1NQVBfQkFUVF9GTEFHLiAqLwotI2RlZmluZSBFQ19CQVRUX0ZMQUdfQUNfUFJFU0VOVCAgIDB4MDEKLSNkZWZpbmUgRUNfQkFUVF9GTEFHX0JBVFRfUFJFU0VOVCAweDAyCi0jZGVmaW5lIEVDX0JBVFRfRkxBR19ESVNDSEFSR0lORyAgMHgwNAotI2RlZmluZSBFQ19CQVRUX0ZMQUdfQ0hBUkdJTkcgICAgIDB4MDgKLSNkZWZpbmUgRUNfQkFUVF9GTEFHX0xFVkVMX0NSSVRJQ0FMIDB4MTAKLS8qIFNldCBpZiBzb21lIG9mIHRoZSBzdGF0aWMvZHluYW1pYyBkYXRhIGlzIGludmFsaWQgKG9yIG91dGRhdGVkKS4gKi8KLSNkZWZpbmUgRUNfQkFUVF9GTEFHX0lOVkFMSURfREFUQSAweDIwCi0KLS8qIFN3aXRjaCBmbGFncyBhdCBFQ19NRU1NQVBfU1dJVENIRVMgKi8KLSNkZWZpbmUgRUNfU1dJVENIX0xJRF9PUEVOICAgICAgICAgICAgICAgMHgwMQotI2RlZmluZSBFQ19TV0lUQ0hfUE9XRVJfQlVUVE9OX1BSRVNTRUQgICAweDAyCi0jZGVmaW5lIEVDX1NXSVRDSF9XUklURV9QUk9URUNUX0RJU0FCTEVEIDB4MDQKLS8qIFdhcyByZWNvdmVyeSByZXF1ZXN0ZWQgdmlhIGtleWJvYXJkOyBub3cgdW51c2VkLiAqLwotI2RlZmluZSBFQ19TV0lUQ0hfSUdOT1JFMQkJIDB4MDgKLS8qIFJlY292ZXJ5IHJlcXVlc3RlZCB2aWEgZGVkaWNhdGVkIHNpZ25hbCAoZnJvbSBzZXJ2byBib2FyZCkgKi8KLSNkZWZpbmUgRUNfU1dJVENIX0RFRElDQVRFRF9SRUNPVkVSWSAgICAgMHgxMAotLyogV2FzIGZha2UgZGV2ZWxvcGVyIG1vZGUgc3dpdGNoOyBub3cgdW51c2VkLiAgUmVtb3ZlIGluIG5leHQgcmVmYWN0b3IuICovCi0jZGVmaW5lIEVDX1NXSVRDSF9JR05PUkUwICAgICAgICAgICAgICAgIDB4MjAKLQotLyogSG9zdCBjb21tYW5kIGludGVyZmFjZSBmbGFncyAqLwotLyogSG9zdCBjb21tYW5kIGludGVyZmFjZSBzdXBwb3J0cyBMUEMgYXJncyAoTFBDIGludGVyZmFjZSBvbmx5KSAqLwotI2RlZmluZSBFQ19IT1NUX0NNRF9GTEFHX0xQQ19BUkdTX1NVUFBPUlRFRCAgMHgwMQotLyogSG9zdCBjb21tYW5kIGludGVyZmFjZSBzdXBwb3J0cyB2ZXJzaW9uIDMgcHJvdG9jb2wgKi8KLSNkZWZpbmUgRUNfSE9TVF9DTURfRkxBR19WRVJTSU9OXzMgICAweDAyCi0KLS8qIFdpcmVsZXNzIHN3aXRjaCBmbGFncyAqLwotI2RlZmluZSBFQ19XSVJFTEVTU19TV0lUQ0hfQUxMICAgICAgIH4weDAwICAvKiBBbGwgZmxhZ3MgKi8KLSNkZWZpbmUgRUNfV0lSRUxFU1NfU1dJVENIX1dMQU4gICAgICAgMHgwMSAgLyogV0xBTiByYWRpbyAqLwotI2RlZmluZSBFQ19XSVJFTEVTU19TV0lUQ0hfQkxVRVRPT1RIICAweDAyICAvKiBCbHVldG9vdGggcmFkaW8gKi8KLSNkZWZpbmUgRUNfV0lSRUxFU1NfU1dJVENIX1dXQU4gICAgICAgMHgwNCAgLyogV1dBTiBwb3dlciAqLwotI2RlZmluZSBFQ19XSVJFTEVTU19TV0lUQ0hfV0xBTl9QT1dFUiAweDA4ICAvKiBXTEFOIHBvd2VyICovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCi0gKiBBQ1BJIGNvbW1hbmRzCi0gKgotICogVGhlc2UgYXJlIHZhbGlkIE9OTFkgb24gdGhlIEFDUEkgY29tbWFuZC9kYXRhIHBvcnQuCi0gKi8KLQotLyoKLSAqIEFDUEkgUmVhZCBFbWJlZGRlZCBDb250cm9sbGVyCi0gKgotICogVGhpcyByZWFkcyBmcm9tIEFDUEkgbWVtb3J5IHNwYWNlIG9uIHRoZSBFQyAoRUNfQUNQSV9NRU1fKikuCi0gKgotICogVXNlIHRoZSBmb2xsb3dpbmcgc2VxdWVuY2U6Ci0gKgotICogICAgLSBXcml0ZSBFQ19DTURfQUNQSV9SRUFEIHRvIEVDX0xQQ19BRERSX0FDUElfQ01ECi0gKiAgICAtIFdhaXQgZm9yIEVDX0xQQ19DTURSX1BFTkRJTkcgYml0IHRvIGNsZWFyCi0gKiAgICAtIFdyaXRlIGFkZHJlc3MgdG8gRUNfTFBDX0FERFJfQUNQSV9EQVRBCi0gKiAgICAtIFdhaXQgZm9yIEVDX0xQQ19DTURSX0RBVEEgYml0IHRvIHNldAotICogICAgLSBSZWFkIHZhbHVlIGZyb20gRUNfTFBDX0FERFJfQUNQSV9EQVRBCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0FDUElfUkVBRCAweDAwODAKLQotLyoKLSAqIEFDUEkgV3JpdGUgRW1iZWRkZWQgQ29udHJvbGxlcgotICoKLSAqIFRoaXMgcmVhZHMgZnJvbSBBQ1BJIG1lbW9yeSBzcGFjZSBvbiB0aGUgRUMgKEVDX0FDUElfTUVNXyopLgotICoKLSAqIFVzZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlOgotICoKLSAqICAgIC0gV3JpdGUgRUNfQ01EX0FDUElfV1JJVEUgdG8gRUNfTFBDX0FERFJfQUNQSV9DTUQKLSAqICAgIC0gV2FpdCBmb3IgRUNfTFBDX0NNRFJfUEVORElORyBiaXQgdG8gY2xlYXIKLSAqICAgIC0gV3JpdGUgYWRkcmVzcyB0byBFQ19MUENfQUREUl9BQ1BJX0RBVEEKLSAqICAgIC0gV2FpdCBmb3IgRUNfTFBDX0NNRFJfUEVORElORyBiaXQgdG8gY2xlYXIKLSAqICAgIC0gV3JpdGUgdmFsdWUgdG8gRUNfTFBDX0FERFJfQUNQSV9EQVRBCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0FDUElfV1JJVEUgMHgwMDgxCi0KLS8qCi0gKiBBQ1BJIEJ1cnN0IEVuYWJsZSBFbWJlZGRlZCBDb250cm9sbGVyCi0gKgotICogVGhpcyBlbmFibGVzIGJ1cnN0IG1vZGUgb24gdGhlIEVDIHRvIGFsbG93IHRoZSBob3N0IHRvIGlzc3VlIHNldmVyYWwKLSAqIGNvbW1hbmRzIGJhY2stdG8tYmFjay4gV2hpbGUgaW4gdGhpcyBtb2RlLCB3cml0ZXMgdG8gbWFwcGVkIG11bHRpLWJ5dGUKLSAqIGRhdGEgYXJlIGxvY2tlZCBvdXQgdG8gZW5zdXJlIGRhdGEgY29uc2lzdGVuY3kuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0FDUElfQlVSU1RfRU5BQkxFIDB4MDA4MgotCi0vKgotICogQUNQSSBCdXJzdCBEaXNhYmxlIEVtYmVkZGVkIENvbnRyb2xsZXIKLSAqCi0gKiBUaGlzIGRpc2FibGVzIGJ1cnN0IG1vZGUgb24gdGhlIEVDIGFuZCBzdG9wcyBwcmV2ZW50aW5nIEVDIHdyaXRlcyB0byBtYXBwZWQKLSAqIG11bHRpLWJ5dGUgZGF0YS4KLSAqLwotI2RlZmluZSBFQ19DTURfQUNQSV9CVVJTVF9ESVNBQkxFIDB4MDA4MwotCi0vKgotICogQUNQSSBRdWVyeSBFbWJlZGRlZCBDb250cm9sbGVyCi0gKgotICogVGhpcyBjbGVhcnMgdGhlIGxvd2VzdC1vcmRlciBiaXQgaW4gdGhlIGN1cnJlbnRseSBwZW5kaW5nIGhvc3QgZXZlbnRzLCBhbmQKLSAqIHNldHMgdGhlIHJlc3VsdCBjb2RlIHRvIHRoZSAxLWJhc2VkIGluZGV4IG9mIHRoZSBiaXQgKGV2ZW50IDB4MDAwMDAwMDEgPSAxLAotICogZXZlbnQgMHg4MDAwMDAwMCA9IDMyKSwgb3IgMCBpZiBubyBldmVudCB3YXMgcGVuZGluZy4KLSAqLwotI2RlZmluZSBFQ19DTURfQUNQSV9RVUVSWV9FVkVOVCAweDAwODQKLQotLyogVmFsaWQgYWRkcmVzc2VzIGluIEFDUEkgbWVtb3J5IHNwYWNlLCBmb3IgcmVhZC93cml0ZSBjb21tYW5kcyAqLwotCi0vKiBNZW1vcnkgc3BhY2UgdmVyc2lvbjsgc2V0IHRvIEVDX0FDUElfTUVNX1ZFUlNJT05fQ1VSUkVOVCAqLwotI2RlZmluZSBFQ19BQ1BJX01FTV9WRVJTSU9OICAgICAgICAgICAgMHgwMAotLyoKLSAqIFRlc3QgbG9jYXRpb247IHdyaXRpbmcgdmFsdWUgaGVyZSB1cGRhdGVzIHRlc3QgY29tcGxpbWVudCBieXRlIHRvICgweGZmIC0KLSAqIHZhbHVlKS4KLSAqLwotI2RlZmluZSBFQ19BQ1BJX01FTV9URVNUICAgICAgICAgICAgICAgMHgwMQotLyogVGVzdCBjb21wbGltZW50OyB3cml0ZXMgaGVyZSBhcmUgaWdub3JlZC4gKi8KLSNkZWZpbmUgRUNfQUNQSV9NRU1fVEVTVF9DT01QTElNRU5UICAgIDB4MDIKLQotLyogS2V5Ym9hcmQgYmFja2xpZ2h0IGJyaWdodG5lc3MgcGVyY2VudCAoMCAtIDEwMCkgKi8KLSNkZWZpbmUgRUNfQUNQSV9NRU1fS0VZQk9BUkRfQkFDS0xJR0hUIDB4MDMKLS8qIERQVEYgVGFyZ2V0IEZhbiBEdXR5ICgwLTEwMCwgMHhmZiBmb3IgYXV0by9ub25lKSAqLwotI2RlZmluZSBFQ19BQ1BJX01FTV9GQU5fRFVUWSAgICAgICAgICAgMHgwNAotCi0vKgotICogRFBURiB0ZW1wIHRocmVzaG9sZHMuIEFueSBvZiB0aGUgRUMncyB0ZW1wIHNlbnNvcnMgY2FuIGhhdmUgdXAgdG8gdHdvCi0gKiBpbmRlcGVuZGVudCB0aHJlc2hvbGRzIGF0dGFjaGVkIHRvIHRoZW0uIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBJRAotICogcmVnaXN0ZXIgZGV0ZXJtaW5lcyB3aGljaCBzZW5zb3IgaXMgYWZmZWN0ZWQgYnkgdGhlIFRIUkVTSE9MRCBhbmQgQ09NTUlUCi0gKiByZWdpc3RlcnMuIFRoZSBUSFJFU0hPTEQgcmVnaXN0ZXIgdXNlcyB0aGUgc2FtZSBFQ19URU1QX1NFTlNPUl9PRkZTRVQgc2NoZW1lCi0gKiBhcyB0aGUgbWVtb3J5LW1hcHBlZCBzZW5zb3JzLiBUaGUgQ09NTUlUIHJlZ2lzdGVyIGFwcGxpZXMgdGhvc2Ugc2V0dGluZ3MuCi0gKgotICogVGhlIHNwZWMgZG9lcyBub3QgbWFuZGF0ZSBhbnkgd2F5IHRvIHJlYWQgYmFjayB0aGUgdGhyZXNob2xkIHNldHRpbmdzCi0gKiB0aGVtc2VsdmVzLCBidXQgd2hlbiBhIHRocmVzaG9sZCBpcyBjcm9zc2VkIHRoZSBBUCBuZWVkcyBhIHdheSB0byBkZXRlcm1pbmUKLSAqIHdoaWNoIHNlbnNvcihzKSBhcmUgcmVzcG9uc2libGUuIEVhY2ggcmVhZGluZyBvZiB0aGUgSUQgcmVnaXN0ZXIgY2xlYXJzIGFuZAotICogcmV0dXJucyBvbmUgc2Vuc29yIElEIHRoYXQgaGFzIGNyb3NzZWQgb25lIG9mIGl0cyB0aHJlc2hvbGQgKGluIGVpdGhlcgotICogZGlyZWN0aW9uKSBzaW5jZSB0aGUgbGFzdCByZWFkLiBBIHZhbHVlIG9mIDB4RkYgbWVhbnMgIm5vIG5ldyB0aHJlc2hvbGRzCi0gKiBoYXZlIHRyaXBwZWQiLiBTZXR0aW5nIG9yIGVuYWJsaW5nIHRoZSB0aHJlc2hvbGRzIGZvciBhIHNlbnNvciB3aWxsIGNsZWFyCi0gKiB0aGUgdW5yZWFkIGV2ZW50IGNvdW50IGZvciB0aGF0IHNlbnNvci4KLSAqLwotI2RlZmluZSBFQ19BQ1BJX01FTV9URU1QX0lEICAgICAgICAgICAgMHgwNQotI2RlZmluZSBFQ19BQ1BJX01FTV9URU1QX1RIUkVTSE9MRCAgICAgMHgwNgotI2RlZmluZSBFQ19BQ1BJX01FTV9URU1QX0NPTU1JVCAgICAgICAgMHgwNwotLyoKLSAqIEhlcmUgYXJlIHRoZSBiaXRzIGZvciB0aGUgQ09NTUlUIHJlZ2lzdGVyOgotICogICBiaXQgMCBzZWxlY3RzIHRoZSB0aHJlc2hvbGQgaW5kZXggZm9yIHRoZSBjaG9zZW4gc2Vuc29yICgwLzEpCi0gKiAgIGJpdCAxIGVuYWJsZXMvZGlzYWJsZXMgdGhlIHNlbGVjdGVkIHRocmVzaG9sZCAoMCA9IG9mZiwgMSA9IG9uKQotICogRWFjaCB3cml0ZSB0byB0aGUgY29tbWl0IHJlZ2lzdGVyIGFmZmVjdHMgb25lIHRocmVzaG9sZC4KLSAqLwotI2RlZmluZSBFQ19BQ1BJX01FTV9URU1QX0NPTU1JVF9TRUxFQ1RfTUFTSyBCSVQoMCkKLSNkZWZpbmUgRUNfQUNQSV9NRU1fVEVNUF9DT01NSVRfRU5BQkxFX01BU0sgQklUKDEpCi0vKgotICogRXhhbXBsZToKLSAqCi0gKiBTZXQgdGhlIHRocmVzaG9sZHMgZm9yIHNlbnNvciAyIHRvIDUwIEMgYW5kIDYwIEM6Ci0gKiAgIHdyaXRlIDIgdG8gWzB4MDVdICAgICAgLS0gIHNlbGVjdCB0ZW1wIHNlbnNvciAyCi0gKiAgIHdyaXRlIDB4N2IgdG8gWzB4MDZdICAgLS0gIENfVE9fSyg1MCkgLSBFQ19URU1QX1NFTlNPUl9PRkZTRVQKLSAqICAgd3JpdGUgMHgyIHRvIFsweDA3XSAgICAtLSAgZW5hYmxlIHRocmVzaG9sZCAwIHdpdGggdGhpcyB2YWx1ZQotICogICB3cml0ZSAweDg1IHRvIFsweDA2XSAgIC0tICBDX1RPX0soNjApIC0gRUNfVEVNUF9TRU5TT1JfT0ZGU0VUCi0gKiAgIHdyaXRlIDB4MyB0byBbMHgwN10gICAgLS0gIGVuYWJsZSB0aHJlc2hvbGQgMSB3aXRoIHRoaXMgdmFsdWUKLSAqCi0gKiBEaXNhYmxlIHRoZSA2MCBDIHRocmVzaG9sZCwgbGVhdmluZyB0aGUgNTAgQyB0aHJlc2hvbGQgdW5jaGFuZ2VkOgotICogICB3cml0ZSAyIHRvIFsweDA1XSAgICAgIC0tICBzZWxlY3QgdGVtcCBzZW5zb3IgMgotICogICB3cml0ZSAweDEgdG8gWzB4MDddICAgIC0tICBkaXNhYmxlIHRocmVzaG9sZCAxCi0gKi8KLQotLyogRFBURiBiYXR0ZXJ5IGNoYXJnaW5nIGN1cnJlbnQgbGltaXQgKi8KLSNkZWZpbmUgRUNfQUNQSV9NRU1fQ0hBUkdJTkdfTElNSVQgICAgIDB4MDgKLQotLyogQ2hhcmdpbmcgbGltaXQgaXMgc3BlY2lmaWVkIGluIDY0IG1BIHN0ZXBzICovCi0jZGVmaW5lIEVDX0FDUElfTUVNX0NIQVJHSU5HX0xJTUlUX1NURVBfTUEgICA2NAotLyogVmFsdWUgdG8gZGlzYWJsZSBEUFRGIGJhdHRlcnkgY2hhcmdpbmcgbGltaXQgKi8KLSNkZWZpbmUgRUNfQUNQSV9NRU1fQ0hBUkdJTkdfTElNSVRfRElTQUJMRUQgIDB4ZmYKLQotLyoKLSAqIFJlcG9ydCBkZXZpY2Ugb3JpZW50YXRpb24KLSAqICBCaXRzICAgICAgIERlZmluaXRpb24KLSAqICAzOjEgICAgICAgIERldmljZSBEUFRGIFByb2ZpbGUgTnVtYmVyIChERFBOKQotICogICAgICAgICAgICAgICAwICAgPSBSZXNlcnZlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAoaW5kaWNhdGVzIG5vIHZhbGlkCi0gKiAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUgbnVtYmVyLiBIb3N0IHNob3VsZCBmYWxsIGJhY2sgdG8gdXNpbmcgVEJNRCkuCi0gKiAgICAgICAgICAgICAgMS4uNyA9IERQVEYgUHJvZmlsZSBudW1iZXIgdG8gaW5kaWNhdGUgdG8gaG9zdCB3aGljaCB0YWJsZSBuZWVkcwotICogICAgICAgICAgICAgICAgICAgICB0byBiZSBsb2FkZWQuCi0gKiAgIDAgICAgICAgICBUYWJsZXQgTW9kZSBEZXZpY2UgSW5kaWNhdG9yIChUQk1EKQotICovCi0jZGVmaW5lIEVDX0FDUElfTUVNX0RFVklDRV9PUklFTlRBVElPTiAweDA5Ci0jZGVmaW5lIEVDX0FDUElfTUVNX1RCTURfU0hJRlQgICAgICAgICAwCi0jZGVmaW5lIEVDX0FDUElfTUVNX1RCTURfTUFTSyAgICAgICAgICAweDEKLSNkZWZpbmUgRUNfQUNQSV9NRU1fRERQTl9TSElGVCAgICAgICAgIDEKLSNkZWZpbmUgRUNfQUNQSV9NRU1fRERQTl9NQVNLICAgICAgICAgIDB4NwotCi0vKgotICogUmVwb3J0IGRldmljZSBmZWF0dXJlcy4gVXNlcyB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIGhvc3QgY29tbWFuZCwgZXhjZXB0OgotICoKLSAqIGJpdCAwIChFQ19GRUFUVVJFX0xJTUlURUQpIGNoYW5nZXMgbWVhbmluZyBmcm9tICJFQyBjb2RlIGhhcyBhIGxpbWl0ZWQgc2V0Ci0gKiBvZiBmZWF0dXJlcyIsIHdoaWNoIGlzIG9mIGxpbWl0ZWQgaW50ZXJlc3Qgd2hlbiB0aGUgc3lzdGVtIGlzIGFscmVhZHkKLSAqIGludGVycHJldGluZyBBQ1BJIGJ5dGVjb2RlLCB0byAiRUNfRkVBVFVSRVNbMC03XSBpcyBub3Qgc3VwcG9ydGVkIi4gU2luY2UKLSAqIHRoZXNlIGFyZSBzdXBwb3J0ZWQsIGl0IGRlZmF1bHRzIHRvIDAuCi0gKiBUaGlzIGFsbG93cyBkZXRlY3RpbmcgdGhlIHByZXNlbmNlIG9mIHRoaXMgZmllbGQgc2luY2Ugb2xkZXIgdmVyc2lvbnMgb2YKLSAqIHRoZSBFQyBjb2RlYmFzZSB3b3VsZCBzaW1wbHkgcmV0dXJuIDB4ZmYgdG8gdGhhdCB1bmtub3duIGFkZHJlc3MuIENoZWNrCi0gKiBGRUFUVVJFUzAgIT0gMHhmZiAob3IgRkVBVFVSRVMwWzBdID09IDApIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBvdGhlciBiaXRzCi0gKiBhcmUgdmFsaWQuCi0gKi8KLSNkZWZpbmUgRUNfQUNQSV9NRU1fREVWSUNFX0ZFQVRVUkVTMCAweDBhCi0jZGVmaW5lIEVDX0FDUElfTUVNX0RFVklDRV9GRUFUVVJFUzEgMHgwYgotI2RlZmluZSBFQ19BQ1BJX01FTV9ERVZJQ0VfRkVBVFVSRVMyIDB4MGMKLSNkZWZpbmUgRUNfQUNQSV9NRU1fREVWSUNFX0ZFQVRVUkVTMyAweDBkCi0jZGVmaW5lIEVDX0FDUElfTUVNX0RFVklDRV9GRUFUVVJFUzQgMHgwZQotI2RlZmluZSBFQ19BQ1BJX01FTV9ERVZJQ0VfRkVBVFVSRVM1IDB4MGYKLSNkZWZpbmUgRUNfQUNQSV9NRU1fREVWSUNFX0ZFQVRVUkVTNiAweDEwCi0jZGVmaW5lIEVDX0FDUElfTUVNX0RFVklDRV9GRUFUVVJFUzcgMHgxMQotCi0jZGVmaW5lIEVDX0FDUElfTUVNX0JBVFRFUllfSU5ERVggICAgMHgxMgotCi0vKgotICogVVNCIFBvcnQgUG93ZXIuIEVhY2ggYml0IGluZGljYXRlcyB3aGV0aGVyIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBwb3J0cycgcG93ZXIKLSAqIGlzIGVuYWJsZWQgKDEpIG9yIGRpc2FibGVkICgwKS4KLSAqICAgYml0IDAgVVNCIHBvcnQgSUQgMAotICogICAuLi4KLSAqICAgYml0IDcgVVNCIHBvcnQgSUQgNwotICovCi0jZGVmaW5lIEVDX0FDUElfTUVNX1VTQl9QT1JUX1BPV0VSIDB4MTMKLQotLyoKLSAqIEFDUEkgYWRkcmVzc2VzIDB4MjAgLSAweGZmIG1hcCB0byBFQ19NRU1NQVAgb2Zmc2V0IDB4MDAgLSAweGRmLiAgVGhpcyBkYXRhCi0gKiBpcyByZWFkLW9ubHkgZnJvbSB0aGUgQVAuICBBZGRlZCBpbiBFQ19BQ1BJX01FTV9WRVJTSU9OIDIuCi0gKi8KLSNkZWZpbmUgRUNfQUNQSV9NRU1fTUFQUEVEX0JFR0lOICAgMHgyMAotI2RlZmluZSBFQ19BQ1BJX01FTV9NQVBQRURfU0laRSAgICAweGUwCi0KLS8qIEN1cnJlbnQgdmVyc2lvbiBvZiBBQ1BJIG1lbW9yeSBhZGRyZXNzIHNwYWNlICovCi0jZGVmaW5lIEVDX0FDUElfTUVNX1ZFUlNJT05fQ1VSUkVOVCAyCi0KLQotLyoKLSAqIFRoaXMgaGVhZGVyIGZpbGUgaXMgdXNlZCBpbiBjb3JlYm9vdCBib3RoIGluIEMgYW5kIEFDUEkgY29kZS4gIFRoZSBBQ1BJIGNvZGUKLSAqIGlzIHByZS1wcm9jZXNzZWQgdG8gaGFuZGxlIGNvbnN0YW50cyBidXQgdGhlIEFTTCBjb21waWxlciBpcyB1bmFibGUgdG8KLSAqIGhhbmRsZSBhY3R1YWwgQyBjb2RlIHNvIGtlZXAgaXQgc2VwYXJhdGUuCi0gKi8KLQotCi0vKgotICogQXR0cmlidXRlcyBmb3IgRUMgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcGFja2V0cy4gIEp1c3QgZGVmaW5pbmcgX19wYWNrZWQKLSAqIHJlc3VsdHMgaW4gaW5lZmZpY2llbnQgYXNzZW1ibHkgY29kZSBvbiBBUk0sIGlmIHRoZSBzdHJ1Y3R1cmUgaXMgYWN0dWFsbHkKLSAqIDMyLWJpdCBhbGlnbmVkLCBhcyBpdCBzaG91bGQgYmUgZm9yIGFsbCBidWZmZXJzLgotICoKLSAqIEJlIHZlcnkgY2FyZWZ1bCB3aGVuIGFkZGluZyB0aGVzZSB0byBleGlzdGluZyBzdHJ1Y3R1cmVzLiAgVGhleSB3aWxsIHJvdW5kCi0gKiB1cCB0aGUgc3RydWN0dXJlIHNpemUgdG8gdGhlIHNwZWNpZmllZCBib3VuZGFyeS4KLSAqCi0gKiBBbHNvIGJlIHZlcnkgY2FyZWZ1bCB0byBtYWtlIHRoYXQgaWYgYSBzdHJ1Y3R1cmUgaXMgaW5jbHVkZWQgaW4gc29tZSBvdGhlcgotICogcGFyZW50IHN0cnVjdHVyZSB0aGF0IHRoZSBhbGlnbm1lbnQgd2lsbCBzdGlsbCBiZSB0cnVlIGdpdmVuIHRoZSBwYWNraW5nIG9mCi0gKiB0aGUgcGFyZW50IHN0cnVjdHVyZS4gIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBpZiB0aGUgc3ViLXN0cnVjdHVyZQotICogd2lsbCBiZSBwYXNzZWQgYXMgYSBwb2ludGVyIHRvIGFub3RoZXIgZnVuY3Rpb24sIHNpbmNlIHRoYXQgZnVuY3Rpb24gd2lsbAotICogbm90IGtub3cgYWJvdXQgdGhlIG1pc2FsaWdtZW50IGNhdXNlZCBieSB0aGUgcGFyZW50IHN0cnVjdHVyZSdzIHBhY2tpbmcuCi0gKgotICogQWxzbyBiZSB2ZXJ5IGNhcmVmdWwgdXNpbmcgX19wYWNrZWQgLSBwYXJ0aWN1bGFybHkgd2hlbiBuZXN0aW5nIG5vbi1wYWNrZWQKLSAqIHN0cnVjdHVyZXMgaW5zaWRlIHBhY2tlZCBvbmVzLiAgSW4gZmFjdCwgRE8gTk9UIHVzZSBfX3BhY2tlZCBkaXJlY3RseTsKLSAqIGFsd2F5cyB1c2Ugb25lIG9mIHRoZXNlIGF0dHJpYnV0ZXMuCi0gKgotICogT25jZSBldmVyeXRoaW5nIGlzIGFubm90YXRlZCBwcm9wZXJseSwgdGhlIGZvbGxvd2luZyBzZWFyY2ggc3RyaW5ncyBzaG91bGQKLSAqIG5vdCByZXR1cm4gQU5ZIG1hdGNoZXMgaW4gdGhpcyBmaWxlIG90aGVyIHRoYW4gcmlnaHQgaGVyZToKLSAqCi0gKiAiX19wYWNrZWQiIC0gZ2VuZXJhdGVzIGluZWZmaWNpZW50IGNvZGU7IGFsbCBzdWItc3RydWN0cyBtdXN0IGFsc28gYmUgcGFja2VkCi0gKgotICogInN0cnVjdCBbXl9dIiAtIGFsbCBzdHJ1Y3RzIHNob3VsZCBiZSBhbm5vdGF0ZWQsIGV4Y2VwdCBmb3Igc3RydWN0cyB0aGF0IGFyZQotICogbWVtYmVycyBvZiBvdGhlciBzdHJ1Y3RzL3VuaW9ucyAoYW5kIHRoZWlyIG9yaWdpbmFsIGRlY2xhcmF0aW9ucyBzaG91bGQgYmUKLSAqIGFubm90YXRlZCkuCi0gKi8KLQotLyoKLSAqIFBhY2tlZCBzdHJ1Y3R1cmVzIG1ha2Ugbm8gYXNzdW1wdGlvbiBhYm91dCBhbGlnbm1lbnQsIHNvIHRoZXkgZG8gaW5lZmZpY2llbnQKLSAqIGJ5dGUtd2lzZSByZWFkcy4KLSAqLwotI2RlZmluZSBfX2VjX2FsaWduMSBfX3BhY2tlZAotI2RlZmluZSBfX2VjX2FsaWduMiBfX3BhY2tlZAotI2RlZmluZSBfX2VjX2FsaWduNCBfX3BhY2tlZAotI2RlZmluZSBfX2VjX2FsaWduX3NpemUxIF9fcGFja2VkCi0jZGVmaW5lIF9fZWNfYWxpZ25fb2Zmc2V0MSBfX3BhY2tlZAotI2RlZmluZSBfX2VjX2FsaWduX29mZnNldDIgX19wYWNrZWQKLSNkZWZpbmUgX19lY190b2RvX3BhY2tlZCBfX3BhY2tlZAotI2RlZmluZSBfX2VjX3RvZG9fdW5wYWNrZWQKLQotCi0vKiBMUEMgY29tbWFuZCBzdGF0dXMgYnl0ZSBtYXNrcyAqLwotLyogRUMgaGFzIHdyaXR0ZW4gYSBieXRlIGluIHRoZSBkYXRhIHJlZ2lzdGVyIGFuZCBob3N0IGhhc24ndCByZWFkIGl0IHlldCAqLwotI2RlZmluZSBFQ19MUENfU1RBVFVTX1RPX0hPU1QgICAgIDB4MDEKLS8qIEhvc3QgaGFzIHdyaXR0ZW4gYSBjb21tYW5kL2RhdGEgYnl0ZSBhbmQgdGhlIEVDIGhhc24ndCByZWFkIGl0IHlldCAqLwotI2RlZmluZSBFQ19MUENfU1RBVFVTX0ZST01fSE9TVCAgIDB4MDIKLS8qIEVDIGlzIHByb2Nlc3NpbmcgYSBjb21tYW5kICovCi0jZGVmaW5lIEVDX0xQQ19TVEFUVVNfUFJPQ0VTU0lORyAgMHgwNAotLyogTGFzdCB3cml0ZSB0byBFQyB3YXMgYSBjb21tYW5kLCBub3QgZGF0YSAqLwotI2RlZmluZSBFQ19MUENfU1RBVFVTX0xBU1RfQ01EICAgIDB4MDgKLS8qIEVDIGlzIGluIGJ1cnN0IG1vZGUgKi8KLSNkZWZpbmUgRUNfTFBDX1NUQVRVU19CVVJTVF9NT0RFICAweDEwCi0vKiBTQ0kgZXZlbnQgaXMgcGVuZGluZyAocmVxdWVzdGluZyBTQ0kgcXVlcnkpICovCi0jZGVmaW5lIEVDX0xQQ19TVEFUVVNfU0NJX1BFTkRJTkcgMHgyMAotLyogU01JIGV2ZW50IGlzIHBlbmRpbmcgKHJlcXVlc3RpbmcgU01JIHF1ZXJ5KSAqLwotI2RlZmluZSBFQ19MUENfU1RBVFVTX1NNSV9QRU5ESU5HIDB4NDAKLS8qIChyZXNlcnZlZCkgKi8KLSNkZWZpbmUgRUNfTFBDX1NUQVRVU19SRVNFUlZFRCAgICAweDgwCi0KLS8qCi0gKiBFQyBpcyBidXN5LiAgVGhpcyBjb3ZlcnMgYm90aCB0aGUgRUMgcHJvY2Vzc2luZyBhIGNvbW1hbmQsIGFuZCB0aGUgaG9zdCBoYXMKLSAqIHdyaXR0ZW4gYSBuZXcgY29tbWFuZCBidXQgdGhlIEVDIGhhc24ndCBwaWNrZWQgaXQgdXAgeWV0LgotICovCi0jZGVmaW5lIEVDX0xQQ19TVEFUVVNfQlVTWV9NQVNLIFwKLQkoRUNfTFBDX1NUQVRVU19GUk9NX0hPU1QgfCBFQ19MUENfU1RBVFVTX1BST0NFU1NJTkcpCi0KLS8qCi0gKiBIb3N0IGNvbW1hbmQgcmVzcG9uc2UgY29kZXMgKDE2LWJpdCkuICBOb3RlIHRoYXQgcmVzcG9uc2UgY29kZXMgc2hvdWxkIGJlCi0gKiBzdG9yZWQgaW4gYSB1aW50MTZfdCByYXRoZXIgdGhhbiBkaXJlY3RseSBpbiBhIHZhbHVlIG9mIHRoaXMgdHlwZS4KLSAqLwotZW51bSBlY19zdGF0dXMgewotCUVDX1JFU19TVUNDRVNTID0gMCwKLQlFQ19SRVNfSU5WQUxJRF9DT01NQU5EID0gMSwKLQlFQ19SRVNfRVJST1IgPSAyLAotCUVDX1JFU19JTlZBTElEX1BBUkFNID0gMywKLQlFQ19SRVNfQUNDRVNTX0RFTklFRCA9IDQsCi0JRUNfUkVTX0lOVkFMSURfUkVTUE9OU0UgPSA1LAotCUVDX1JFU19JTlZBTElEX1ZFUlNJT04gPSA2LAotCUVDX1JFU19JTlZBTElEX0NIRUNLU1VNID0gNywKLQlFQ19SRVNfSU5fUFJPR1JFU1MgPSA4LAkJLyogQWNjZXB0ZWQsIGNvbW1hbmQgaW4gcHJvZ3Jlc3MgKi8KLQlFQ19SRVNfVU5BVkFJTEFCTEUgPSA5LAkJLyogTm8gcmVzcG9uc2UgYXZhaWxhYmxlICovCi0JRUNfUkVTX1RJTUVPVVQgPSAxMCwJCS8qIFdlIGdvdCBhIHRpbWVvdXQgKi8KLQlFQ19SRVNfT1ZFUkZMT1cgPSAxMSwJCS8qIFRhYmxlIC8gZGF0YSBvdmVyZmxvdyAqLwotCUVDX1JFU19JTlZBTElEX0hFQURFUiA9IDEyLCAgICAgLyogSGVhZGVyIGNvbnRhaW5zIGludmFsaWQgZGF0YSAqLwotCUVDX1JFU19SRVFVRVNUX1RSVU5DQVRFRCA9IDEzLCAgLyogRGlkbid0IGdldCB0aGUgZW50aXJlIHJlcXVlc3QgKi8KLQlFQ19SRVNfUkVTUE9OU0VfVE9PX0JJRyA9IDE0LCAgIC8qIFJlc3BvbnNlIHdhcyB0b28gYmlnIHRvIGhhbmRsZSAqLwotCUVDX1JFU19CVVNfRVJST1IgPSAxNSwJCS8qIENvbW11bmljYXRpb25zIGJ1cyBlcnJvciAqLwotCUVDX1JFU19CVVNZID0gMTYsCQkvKiBVcCBidXQgdG9vIGJ1c3kuICBTaG91bGQgcmV0cnkgKi8KLQlFQ19SRVNfSU5WQUxJRF9IRUFERVJfVkVSU0lPTiA9IDE3LCAgLyogSGVhZGVyIHZlcnNpb24gaW52YWxpZCAqLwotCUVDX1JFU19JTlZBTElEX0hFQURFUl9DUkMgPSAxOCwgICAgICAvKiBIZWFkZXIgQ1JDIGludmFsaWQgKi8KLQlFQ19SRVNfSU5WQUxJRF9EQVRBX0NSQyA9IDE5LCAgICAgICAgLyogRGF0YSBDUkMgaW52YWxpZCAqLwotCUVDX1JFU19EVVBfVU5BVkFJTEFCTEUgPSAyMCwgICAgICAgICAvKiBDYW4ndCByZXNlbmQgcmVzcG9uc2UgKi8KLX07Ci0KLS8qCi0gKiBIb3N0IGV2ZW50IGNvZGVzLiAgTm90ZSB0aGVzZSBhcmUgMS1iYXNlZCwgbm90IDAtYmFzZWQsIGJlY2F1c2UgQUNQSSBxdWVyeQotICogRUMgY29tbWFuZCB1c2VzIGNvZGUgMCB0byBtZWFuICJubyBldmVudCBwZW5kaW5nIi4gIFdlIGV4cGxpY2l0bHkgc3BlY2lmeQotICogZWFjaCB2YWx1ZSBpbiB0aGUgZW51bSBsaXN0aW5nIHNvIHRoZXkgd29uJ3QgY2hhbmdlIGlmIHdlIGRlbGV0ZS9pbnNlcnQgYW4KLSAqIGl0ZW0gb3IgcmVhcnJhbmdlIHRoZSBsaXN0IChpdCBuZWVkcyB0byBiZSBzdGFibGUgYWNyb3NzIHBsYXRmb3Jtcywgbm90Ci0gKiBqdXN0IHdpdGhpbiBhIHNpbmdsZSBjb21waWxlZCBpbnN0YW5jZSkuCi0gKi8KLWVudW0gaG9zdF9ldmVudF9jb2RlIHsKLQlFQ19IT1NUX0VWRU5UX0xJRF9DTE9TRUQgPSAxLAotCUVDX0hPU1RfRVZFTlRfTElEX09QRU4gPSAyLAotCUVDX0hPU1RfRVZFTlRfUE9XRVJfQlVUVE9OID0gMywKLQlFQ19IT1NUX0VWRU5UX0FDX0NPTk5FQ1RFRCA9IDQsCi0JRUNfSE9TVF9FVkVOVF9BQ19ESVNDT05ORUNURUQgPSA1LAotCUVDX0hPU1RfRVZFTlRfQkFUVEVSWV9MT1cgPSA2LAotCUVDX0hPU1RfRVZFTlRfQkFUVEVSWV9DUklUSUNBTCA9IDcsCi0JRUNfSE9TVF9FVkVOVF9CQVRURVJZID0gOCwKLQlFQ19IT1NUX0VWRU5UX1RIRVJNQUxfVEhSRVNIT0xEID0gOSwKLQkvKiBFdmVudCBnZW5lcmF0ZWQgYnkgYSBkZXZpY2UgYXR0YWNoZWQgdG8gdGhlIEVDICovCi0JRUNfSE9TVF9FVkVOVF9ERVZJQ0UgPSAxMCwKLQlFQ19IT1NUX0VWRU5UX1RIRVJNQUwgPSAxMSwKLQlFQ19IT1NUX0VWRU5UX1VTQl9DSEFSR0VSID0gMTIsCi0JRUNfSE9TVF9FVkVOVF9LRVlfUFJFU1NFRCA9IDEzLAotCS8qCi0JICogRUMgaGFzIGZpbmlzaGVkIGluaXRpYWxpemluZyB0aGUgaG9zdCBpbnRlcmZhY2UuICBUaGUgaG9zdCBjYW4gY2hlY2sKLQkgKiBmb3IgdGhpcyBldmVudCBmb2xsb3dpbmcgc2VuZGluZyBhIEVDX0NNRF9SRUJPT1RfRUMgY29tbWFuZCB0bwotCSAqIGRldGVybWluZSB3aGVuIHRoZSBFQyBpcyByZWFkeSB0byBhY2NlcHQgc3Vic2VxdWVudCBjb21tYW5kcy4KLQkgKi8KLQlFQ19IT1NUX0VWRU5UX0lOVEVSRkFDRV9SRUFEWSA9IDE0LAotCS8qIEtleWJvYXJkIHJlY292ZXJ5IGNvbWJvIGhhcyBiZWVuIHByZXNzZWQgKi8KLQlFQ19IT1NUX0VWRU5UX0tFWUJPQVJEX1JFQ09WRVJZID0gMTUsCi0KLQkvKiBTaHV0ZG93biBkdWUgdG8gdGhlcm1hbCBvdmVybG9hZCAqLwotCUVDX0hPU1RfRVZFTlRfVEhFUk1BTF9TSFVURE9XTiA9IDE2LAotCS8qIFNodXRkb3duIGR1ZSB0byBiYXR0ZXJ5IGxldmVsIHRvbyBsb3cgKi8KLQlFQ19IT1NUX0VWRU5UX0JBVFRFUllfU0hVVERPV04gPSAxNywKLQotCS8qIFN1Z2dlc3QgdGhhdCB0aGUgQVAgdGhyb3R0bGUgaXRzZWxmICovCi0JRUNfSE9TVF9FVkVOVF9USFJPVFRMRV9TVEFSVCA9IDE4LAotCS8qIFN1Z2dlc3QgdGhhdCB0aGUgQVAgcmVzdW1lIG5vcm1hbCBzcGVlZCAqLwotCUVDX0hPU1RfRVZFTlRfVEhST1RUTEVfU1RPUCA9IDE5LAotCi0JLyogSGFuZyBkZXRlY3QgbG9naWMgZGV0ZWN0ZWQgYSBoYW5nIGFuZCBob3N0IGV2ZW50IHRpbWVvdXQgZXhwaXJlZCAqLwotCUVDX0hPU1RfRVZFTlRfSEFOR19ERVRFQ1QgPSAyMCwKLQkvKiBIYW5nIGRldGVjdCBsb2dpYyBkZXRlY3RlZCBhIGhhbmcgYW5kIHdhcm0gcmVib290ZWQgdGhlIEFQICovCi0JRUNfSE9TVF9FVkVOVF9IQU5HX1JFQk9PVCA9IDIxLAotCi0JLyogUEQgTUNVIHRyaWdnZXJpbmcgaG9zdCBldmVudCAqLwotCUVDX0hPU1RfRVZFTlRfUERfTUNVID0gMjIsCi0KLQkvKiBCYXR0ZXJ5IFN0YXR1cyBmbGFncyBoYXZlIGNoYW5nZWQgKi8KLQlFQ19IT1NUX0VWRU5UX0JBVFRFUllfU1RBVFVTID0gMjMsCi0KLQkvKiBFQyBlbmNvdW50ZXJlZCBhIHBhbmljLCB0cmlnZ2VyaW5nIGEgcmVzZXQgKi8KLQlFQ19IT1NUX0VWRU5UX1BBTklDID0gMjQsCi0KLQkvKiBLZXlib2FyZCBmYXN0Ym9vdCBjb21ibyBoYXMgYmVlbiBwcmVzc2VkICovCi0JRUNfSE9TVF9FVkVOVF9LRVlCT0FSRF9GQVNUQk9PVCA9IDI1LAotCi0JLyogRUMgUlRDIGV2ZW50IG9jY3VycmVkICovCi0JRUNfSE9TVF9FVkVOVF9SVEMgPSAyNiwKLQotCS8qIEVtdWxhdGUgTUtCUCBldmVudCAqLwotCUVDX0hPU1RfRVZFTlRfTUtCUCA9IDI3LAotCi0JLyogRUMgZGVzaXJlcyB0byBjaGFuZ2Ugc3RhdGUgb2YgaG9zdC1jb250cm9sbGVkIFVTQiBtdXggKi8KLQlFQ19IT1NUX0VWRU5UX1VTQl9NVVggPSAyOCwKLQotCS8qIFRBQkxFVC9MQVBUT1AgbW9kZSBvciBkZXRhY2hhYmxlIGJhc2UgYXR0YWNoL2RldGFjaCBldmVudCAqLwotCUVDX0hPU1RfRVZFTlRfTU9ERV9DSEFOR0UgPSAyOSwKLQotCS8qIEtleWJvYXJkIHJlY292ZXJ5IGNvbWJvIHdpdGggaGFyZHdhcmUgcmVpbml0aWFsaXphdGlvbiAqLwotCUVDX0hPU1RfRVZFTlRfS0VZQk9BUkRfUkVDT1ZFUllfSFdfUkVJTklUID0gMzAsCi0KLQkvKgotCSAqIFRoZSBoaWdoIGJpdCBvZiB0aGUgZXZlbnQgbWFzayBpcyBub3QgdXNlZCBhcyBhIGhvc3QgZXZlbnQgY29kZS4gIElmCi0JICogaXQgcmVhZHMgYmFjayBhcyBzZXQsIHRoZW4gdGhlIGVudGlyZSBldmVudCBtYXNrIHNob3VsZCBiZQotCSAqIGNvbnNpZGVyZWQgaW52YWxpZCBieSB0aGUgaG9zdC4gIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHJlYWRpbmcgdGhlCi0JICogcmF3IGV2ZW50IHN0YXR1cyB2aWEgRUNfTUVNTUFQX0hPU1RfRVZFTlRTIGJ1dCB0aGUgTFBDIGludGVyZmFjZSBpcwotCSAqIG5vdCBpbml0aWFsaXplZCBvbiB0aGUgRUMsIG9yIGltcHJvcGVybHkgY29uZmlndXJlZCBvbiB0aGUgaG9zdC4KLQkgKi8KLQlFQ19IT1NUX0VWRU5UX0lOVkFMSUQgPSAzMgotfTsKLS8qIEhvc3QgZXZlbnQgbWFzayAqLwotI2RlZmluZSBFQ19IT1NUX0VWRU5UX01BU0soZXZlbnRfY29kZSkgQklUX1VMTCgoZXZlbnRfY29kZSkgLSAxKQotCi0vKioKLSAqIHN0cnVjdCBlY19scGNfaG9zdF9hcmdzIC0gQXJndW1lbnRzIGF0IEVDX0xQQ19BRERSX0hPU1RfQVJHUwotICogQGZsYWdzOiBUaGUgaG9zdCBhcmd1bWVudCBmbGFncy4KLSAqIEBjb21tYW5kX3ZlcnNpb246IENvbW1hbmQgdmVyc2lvbi4KLSAqIEBkYXRhX3NpemU6IFRoZSBsZW5ndGggb2YgZGF0YS4KLSAqIEBjaGVja3N1bTogQ2hlY2tzdW07IHN1bSBvZiBjb21tYW5kICsgZmxhZ3MgKyBjb21tYW5kX3ZlcnNpb24gKyBkYXRhX3NpemUgKwotICogICAgICAgICAgICBhbGwgcGFyYW1zL3Jlc3BvbnNlIGRhdGEgYnl0ZXMuCi0gKi8KLXN0cnVjdCBlY19scGNfaG9zdF9hcmdzIHsKLQl1aW50OF90IGZsYWdzOwotCXVpbnQ4X3QgY29tbWFuZF92ZXJzaW9uOwotCXVpbnQ4X3QgZGF0YV9zaXplOwotCXVpbnQ4X3QgY2hlY2tzdW07Ci19IF9fZWNfYWxpZ240OwotCi0vKiBGbGFncyBmb3IgZWNfbHBjX2hvc3RfYXJncy5mbGFncyAqLwotLyoKLSAqIEFyZ3MgYXJlIGZyb20gaG9zdC4gIERhdGEgYXJlYSBhdCBFQ19MUENfQUREUl9IT1NUX1BBUkFNIGNvbnRhaW5zIGNvbW1hbmQKLSAqIHBhcmFtcy4KLSAqCi0gKiBJZiBFQyBnZXRzIGEgY29tbWFuZCBhbmQgdGhpcyBmbGFnIGlzIG5vdCBzZXQsIHRoaXMgaXMgYW4gb2xkLXN0eWxlIGNvbW1hbmQuCi0gKiBDb21tYW5kIHZlcnNpb24gaXMgMCBhbmQgcGFyYW1zIGZyb20gaG9zdCBhcmUgYXQgRUNfTFBDX0FERFJfT0xEX1BBUkFNIHdpdGgKLSAqIHVua25vd24gbGVuZ3RoLiAgRUMgbXVzdCByZXNwb25kIHdpdGggYW4gb2xkLXN0eWxlIHJlc3BvbnNlICh0aGF0IGlzLAotICogd2l0aG91dCBzZXR0aW5nIEVDX0hPU1RfQVJHU19GTEFHX1RPX0hPU1QpLgotICovCi0jZGVmaW5lIEVDX0hPU1RfQVJHU19GTEFHX0ZST01fSE9TVCAweDAxCi0vKgotICogQXJncyBhcmUgZnJvbSBFQy4gIERhdGEgYXJlYSBhdCBFQ19MUENfQUREUl9IT1NUX1BBUkFNIGNvbnRhaW5zIHJlc3BvbnNlLgotICoKLSAqIElmIEVDIHJlc3BvbmRzIHRvIGEgY29tbWFuZCBhbmQgdGhpcyBmbGFnIGlzIG5vdCBzZXQsIHRoaXMgaXMgYW4gb2xkLXN0eWxlCi0gKiByZXNwb25zZS4gIENvbW1hbmQgdmVyc2lvbiBpcyAwIGFuZCByZXNwb25zZSBkYXRhIGZyb20gRUMgaXMgYXQKLSAqIEVDX0xQQ19BRERSX09MRF9QQVJBTSB3aXRoIHVua25vd24gbGVuZ3RoLgotICovCi0jZGVmaW5lIEVDX0hPU1RfQVJHU19GTEFHX1RPX0hPU1QgICAweDAyCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCi0gKiBCeXRlIGNvZGVzIHJldHVybmVkIGJ5IEVDIG92ZXIgU1BJIGludGVyZmFjZS4KLSAqCi0gKiBUaGVzZSBjYW4gYmUgdXNlZCBieSB0aGUgQVAgdG8gZGVidWcgdGhlIEVDIGludGVyZmFjZSwgYW5kIHRvIGRldGVybWluZQotICogd2hlbiB0aGUgRUMgaXMgbm90IGluIGEgc3RhdGUgd2hlcmUgaXQgd2lsbCBldmVyIGdldCBhcm91bmQgdG8gcmVzcG9uZGluZwotICogdG8gdGhlIEFQLgotICoKLSAqIEV4YW1wbGUgb2Ygc2VxdWVuY2Ugb2YgYnl0ZXMgcmVhZCBmcm9tIEVDIGZvciBhIGN1cnJlbnQgZ29vZCB0cmFuc2ZlcjoKLSAqICAgMS4gLSAgICAgICAgICAgICAgICAgIC0gQVAgYXNzZXJ0cyBjaGlwIHNlbGVjdCAoQ1MjKQotICogICAyLiBFQ19TUElfT0xEX1JFQURZICAgLSBBUCBzZW5kcyBmaXJzdCBieXRlKHMpIG9mIHJlcXVlc3QKLSAqICAgMy4gLSAgICAgICAgICAgICAgICAgIC0gRUMgc3RhcnRzIGhhbmRsaW5nIENTIyBpbnRlcnJ1cHQKLSAqICAgNC4gRUNfU1BJX1JFQ0VJVklORyAgIC0gQVAgc2VuZHMgcmVtYWluaW5nIGJ5dGUocykgb2YgcmVxdWVzdAotICogICA1LiBFQ19TUElfUFJPQ0VTU0lORyAgLSBFQyBzdGFydHMgcHJvY2Vzc2luZyByZXF1ZXN0OyBBUCBpcyBjbG9ja2luZyBpbgotICogICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlcyBsb29raW5nIGZvciBFQ19TUElfRlJBTUVfU1RBUlQKLSAqICAgNi4gLSAgICAgICAgICAgICAgICAgIC0gRUMgZmluaXNoZXMgcHJvY2Vzc2luZyBhbmQgc2V0cyB1cCByZXNwb25zZQotICogICA3LiBFQ19TUElfRlJBTUVfU1RBUlQgLSBBUCByZWFkcyBmcmFtZSBieXRlCi0gKiAgIDguIChyZXNwb25zZSBwYWNrZXQpICAtIEFQIHJlYWRzIHJlc3BvbnNlIHBhY2tldAotICogICA5LiBFQ19TUElfUEFTVF9FTkQgICAgLSBBbnkgYWRkaXRpb25hbCBieXRlcyByZWFkIGJ5IEFQCi0gKiAgIDEwIC0gICAgICAgICAgICAgICAgICAtIEFQIGRlYXNzZXJ0cyBjaGlwIHNlbGVjdAotICogICAxMSAtICAgICAgICAgICAgICAgICAgLSBFQyBwcm9jZXNzZXMgQ1MjIGludGVycnVwdCBhbmQgc2V0cyB1cCBETUEgZm9yCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgcmVxdWVzdAotICoKLSAqIElmIHRoZSBBUCBpcyB3YWl0aW5nIGZvciBFQ19TUElfRlJBTUVfU1RBUlQgYW5kIHNlZXMgYW55IHZhbHVlIG90aGVyIHRoYW4KLSAqIHRoZSBmb2xsb3dpbmcgYnl0ZSB2YWx1ZXM6Ci0gKiAgIEVDX1NQSV9PTERfUkVBRFkKLSAqICAgRUNfU1BJX1JYX1JFQURZCi0gKiAgIEVDX1NQSV9SRUNFSVZJTkcKLSAqICAgRUNfU1BJX1BST0NFU1NJTkcKLSAqCi0gKiBUaGVuIHRoZSBFQyBmb3VuZCBhbiBlcnJvciBpbiB0aGUgcmVxdWVzdCwgb3Igd2FzIG5vdCByZWFkeSBmb3IgdGhlIHJlcXVlc3QKLSAqIGFuZCBsb3N0IGRhdGEuICBUaGUgQVAgc2hvdWxkIGdpdmUgdXAgd2FpdGluZyBmb3IgRUNfU1BJX0ZSQU1FX1NUQVJULAotICogYmVjYXVzZSB0aGUgRUMgaXMgdW5hYmxlIHRvIHRlbGwgd2hlbiB0aGUgQVAgaXMgZG9uZSBzZW5kaW5nIGl0cyByZXF1ZXN0LgotICovCi0KLS8qCi0gKiBGcmFtaW5nIGJ5dGUgd2hpY2ggcHJlY2VkZXMgYSByZXNwb25zZSBwYWNrZXQgZnJvbSB0aGUgRUMuICBBZnRlciBzZW5kaW5nIGEKLSAqIHJlcXVlc3QsIHRoZSBBUCB3aWxsIGNsb2NrIGluIGJ5dGVzIHVudGlsIGl0IHNlZXMgdGhlIGZyYW1pbmcgYnl0ZSwgdGhlbgotICogY2xvY2sgaW4gdGhlIHJlc3BvbnNlIHBhY2tldC4KLSAqLwotI2RlZmluZSBFQ19TUElfRlJBTUVfU1RBUlQgICAgMHhlYwotCi0vKgotICogUGFkZGluZyBieXRlcyB3aGljaCBhcmUgY2xvY2tlZCBvdXQgYWZ0ZXIgdGhlIGVuZCBvZiBhIHJlc3BvbnNlIHBhY2tldC4KLSAqLwotI2RlZmluZSBFQ19TUElfUEFTVF9FTkQgICAgICAgMHhlZAotCi0vKgotICogRUMgaXMgcmVhZHkgdG8gcmVjZWl2ZSwgYW5kIGhhcyBpZ25vcmVkIHRoZSBieXRlIHNlbnQgYnkgdGhlIEFQLiAgRUMgZXhwZWN0cwotICogdGhhdCB0aGUgQVAgd2lsbCBzZW5kIGEgdmFsaWQgcGFja2V0IGhlYWRlciAoc3RhcnRpbmcgd2l0aAotICogRUNfQ09NTUFORF9QUk9UT0NPTF8zKSBpbiB0aGUgbmV4dCAzMiBieXRlcy4KLSAqLwotI2RlZmluZSBFQ19TUElfUlhfUkVBRFkgICAgICAgMHhmOAotCi0vKgotICogRUMgaGFzIHN0YXJ0ZWQgcmVjZWl2aW5nIHRoZSByZXF1ZXN0IGZyb20gdGhlIEFQLCBidXQgaGFzbid0IHN0YXJ0ZWQKLSAqIHByb2Nlc3NpbmcgaXQgeWV0LgotICovCi0jZGVmaW5lIEVDX1NQSV9SRUNFSVZJTkcgICAgICAweGY5Ci0KLS8qIEVDIGhhcyByZWNlaXZlZCB0aGUgZW50aXJlIHJlcXVlc3QgZnJvbSB0aGUgQVAgYW5kIGlzIHByb2Nlc3NpbmcgaXQuICovCi0jZGVmaW5lIEVDX1NQSV9QUk9DRVNTSU5HICAgICAweGZhCi0KLS8qCi0gKiBFQyByZWNlaXZlZCBiYWQgZGF0YSBmcm9tIHRoZSBBUCwgc3VjaCBhcyBhIHBhY2tldCBoZWFkZXIgd2l0aCBhbiBpbnZhbGlkCi0gKiBsZW5ndGguICBFQyB3aWxsIGlnbm9yZSBhbGwgZGF0YSB1bnRpbCBjaGlwIHNlbGVjdCBkZWFzc2VydHMuCi0gKi8KLSNkZWZpbmUgRUNfU1BJX1JYX0JBRF9EQVRBICAgIDB4ZmIKLQotLyoKLSAqIEVDIHJlY2VpdmVkIGRhdGEgZnJvbSB0aGUgQVAgYmVmb3JlIGl0IHdhcyByZWFkeS4gIFRoYXQgaXMsIHRoZSBBUCBhc3NlcnRlZAotICogY2hpcCBzZWxlY3QgYW5kIHN0YXJ0ZWQgY2xvY2tpbmcgZGF0YSBiZWZvcmUgdGhlIEVDIHdhcyByZWFkeSB0byByZWNlaXZlIGl0LgotICogRUMgd2lsbCBpZ25vcmUgYWxsIGRhdGEgdW50aWwgY2hpcCBzZWxlY3QgZGVhc3NlcnRzLgotICovCi0jZGVmaW5lIEVDX1NQSV9OT1RfUkVBRFkgICAgICAweGZjCi0KLS8qCi0gKiBFQyB3YXMgcmVhZHkgdG8gcmVjZWl2ZSBhIHJlcXVlc3QgZnJvbSB0aGUgQVAuICBFQyBoYXMgdHJlYXRlZCB0aGUgYnl0ZSBzZW50Ci0gKiBieSB0aGUgQVAgYXMgcGFydCBvZiBhIHJlcXVlc3QgcGFja2V0LCBvciAoZm9yIG9sZC1zdHlsZSBFQ3MpIGlzIHByb2Nlc3NpbmcKLSAqIGEgZnVsbHkgcmVjZWl2ZWQgcGFja2V0IGJ1dCBpcyBub3QgcmVhZHkgdG8gcmVzcG9uZCB5ZXQuCi0gKi8KLSNkZWZpbmUgRUNfU1BJX09MRF9SRUFEWSAgICAgIDB4ZmQKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKgotICogUHJvdG9jb2wgdmVyc2lvbiAyIGZvciBJMkMgYW5kIFNQSSBzZW5kIGEgcmVxdWVzdCB0aGlzIHdheToKLSAqCi0gKgkwCUVDX0NNRF9WRVJTSU9OMCArIChjb21tYW5kIHZlcnNpb24pCi0gKgkxCUNvbW1hbmQgbnVtYmVyCi0gKgkyCUxlbmd0aCBvZiBwYXJhbXMgPSBOCi0gKgkzLi5OKzIJUGFyYW1zLCBpZiBhbnkKLSAqCU4rMwk4LWJpdCBjaGVja3N1bSBvZiBieXRlcyAwLi5OKzIKLSAqCi0gKiBUaGUgY29ycmVzcG9uZGluZyByZXNwb25zZSBpczoKLSAqCi0gKgkwCVJlc3VsdCBjb2RlIChFQ19SRVNfKikKLSAqCTEJTGVuZ3RoIG9mIHBhcmFtcyA9IE0KLSAqCTIuLk0rMQlQYXJhbXMsIGlmIGFueQotICoJTSsyCTgtYml0IGNoZWNrc3VtIG9mIGJ5dGVzIDAuLk0rMQotICovCi0jZGVmaW5lIEVDX1BST1RPMl9SRVFVRVNUX0hFQURFUl9CWVRFUyAzCi0jZGVmaW5lIEVDX1BST1RPMl9SRVFVRVNUX1RSQUlMRVJfQllURVMgMQotI2RlZmluZSBFQ19QUk9UTzJfUkVRVUVTVF9PVkVSSEVBRCAoRUNfUFJPVE8yX1JFUVVFU1RfSEVBREVSX0JZVEVTICsJXAotCQkJCSAgICBFQ19QUk9UTzJfUkVRVUVTVF9UUkFJTEVSX0JZVEVTKQotCi0jZGVmaW5lIEVDX1BST1RPMl9SRVNQT05TRV9IRUFERVJfQllURVMgMgotI2RlZmluZSBFQ19QUk9UTzJfUkVTUE9OU0VfVFJBSUxFUl9CWVRFUyAxCi0jZGVmaW5lIEVDX1BST1RPMl9SRVNQT05TRV9PVkVSSEVBRCAoRUNfUFJPVE8yX1JFU1BPTlNFX0hFQURFUl9CWVRFUyArCVwKLQkJCQkgICAgIEVDX1BST1RPMl9SRVNQT05TRV9UUkFJTEVSX0JZVEVTKQotCi0vKiBQYXJhbWV0ZXIgbGVuZ3RoIHdhcyBsaW1pdGVkIGJ5IHRoZSBMUEMgaW50ZXJmYWNlICovCi0jZGVmaW5lIEVDX1BST1RPMl9NQVhfUEFSQU1fU0laRSAweGZjCi0KLS8qIE1heGltdW0gcmVxdWVzdCBhbmQgcmVzcG9uc2UgcGFja2V0IHNpemVzIGZvciBwcm90b2NvbCB2ZXJzaW9uIDIgKi8KLSNkZWZpbmUgRUNfUFJPVE8yX01BWF9SRVFVRVNUX1NJWkUgKEVDX1BST1RPMl9SRVFVRVNUX09WRVJIRUFEICsJXAotCQkJCSAgICBFQ19QUk9UTzJfTUFYX1BBUkFNX1NJWkUpCi0jZGVmaW5lIEVDX1BST1RPMl9NQVhfUkVTUE9OU0VfU0laRSAoRUNfUFJPVE8yX1JFU1BPTlNFX09WRVJIRUFEICsJXAotCQkJCSAgICAgRUNfUFJPVE8yX01BWF9QQVJBTV9TSVpFKQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qCi0gKiBWYWx1ZSB3cml0dGVuIHRvIGxlZ2FjeSBjb21tYW5kIHBvcnQgLyBwcmVmaXggYnl0ZSB0byBpbmRpY2F0ZSBwcm90b2NvbAotICogMysgc3RydWN0cyBhcmUgYmVpbmcgdXNlZC4gIFVzYWdlIGlzIGJ1cy1kZXBlbmRlbnQuCi0gKi8KLSNkZWZpbmUgRUNfQ09NTUFORF9QUk9UT0NPTF8zIDB4ZGEKLQotI2RlZmluZSBFQ19IT1NUX1JFUVVFU1RfVkVSU0lPTiAzCi0KLS8qKgotICogc3RydWN0IGVjX2hvc3RfcmVxdWVzdCAtIFZlcnNpb24gMyByZXF1ZXN0IGZyb20gaG9zdC4KLSAqIEBzdHJ1Y3RfdmVyc2lvbjogU2hvdWxkIGJlIDMuIFRoZSBFQyB3aWxsIHJldHVybiBFQ19SRVNfSU5WQUxJRF9IRUFERVIgaWYgaXQKLSAqICAgICAgICAgICAgICAgICAgcmVjZWl2ZXMgYSBoZWFkZXIgd2l0aCBhIHZlcnNpb24gaXQgZG9lc24ndCBrbm93IGhvdyB0bwotICogICAgICAgICAgICAgICAgICBwYXJzZS4KLSAqIEBjaGVja3N1bTogQ2hlY2tzdW0gb2YgcmVxdWVzdCBhbmQgZGF0YTsgc3VtIG9mIGFsbCBieXRlcyBpbmNsdWRpbmcgY2hlY2tzdW0KLSAqICAgICAgICAgICAgc2hvdWxkIHRvdGFsIHRvIDAuCi0gKiBAY29tbWFuZDogQ29tbWFuZCB0byBzZW5kIChFQ19DTURfLi4uKQotICogQGNvbW1hbmRfdmVyc2lvbjogQ29tbWFuZCB2ZXJzaW9uLgotICogQHJlc2VydmVkOiBVbnVzZWQgYnl0ZSBpbiBjdXJyZW50IHByb3RvY29sIHZlcnNpb247IHNldCB0byAwLgotICogQGRhdGFfbGVuOiBMZW5ndGggb2YgZGF0YSB3aGljaCBmb2xsb3dzIHRoaXMgaGVhZGVyLgotICovCi1zdHJ1Y3QgZWNfaG9zdF9yZXF1ZXN0IHsKLQl1aW50OF90IHN0cnVjdF92ZXJzaW9uOwotCXVpbnQ4X3QgY2hlY2tzdW07Ci0JdWludDE2X3QgY29tbWFuZDsKLQl1aW50OF90IGNvbW1hbmRfdmVyc2lvbjsKLQl1aW50OF90IHJlc2VydmVkOwotCXVpbnQxNl90IGRhdGFfbGVuOwotfSBfX2VjX2FsaWduNDsKLQotI2RlZmluZSBFQ19IT1NUX1JFU1BPTlNFX1ZFUlNJT04gMwotCi0vKioKLSAqIHN0cnVjdCBlY19ob3N0X3Jlc3BvbnNlIC0gVmVyc2lvbiAzIHJlc3BvbnNlIGZyb20gRUMuCi0gKiBAc3RydWN0X3ZlcnNpb246IFN0cnVjdCB2ZXJzaW9uICg9MykuCi0gKiBAY2hlY2tzdW06IENoZWNrc3VtIG9mIHJlc3BvbnNlIGFuZCBkYXRhOyBzdW0gb2YgYWxsIGJ5dGVzIGluY2x1ZGluZwotICogICAgICAgICAgICBjaGVja3N1bSBzaG91bGQgdG90YWwgdG8gMC4KLSAqIEByZXN1bHQ6IEVDJ3MgcmVzcG9uc2UgdG8gdGhlIGNvbW1hbmQgKHNlcGFyYXRlIGZyb20gY29tbXVuaWNhdGlvbiBmYWlsdXJlKQotICogQGRhdGFfbGVuOiBMZW5ndGggb2YgZGF0YSB3aGljaCBmb2xsb3dzIHRoaXMgaGVhZGVyLgotICogQHJlc2VydmVkOiBVbnVzZWQgYnl0ZXMgaW4gY3VycmVudCBwcm90b2NvbCB2ZXJzaW9uOyBzZXQgdG8gMC4KLSAqLwotc3RydWN0IGVjX2hvc3RfcmVzcG9uc2UgewotCXVpbnQ4X3Qgc3RydWN0X3ZlcnNpb247Ci0JdWludDhfdCBjaGVja3N1bTsKLQl1aW50MTZfdCByZXN1bHQ7Ci0JdWludDE2X3QgZGF0YV9sZW47Ci0JdWludDE2X3QgcmVzZXJ2ZWQ7Ci19IF9fZWNfYWxpZ240OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qCi0gKiBIb3N0IGNvbW1hbmQgcHJvdG9jb2wgVjQuCi0gKgotICogUGFja2V0cyBhbHdheXMgc3RhcnQgd2l0aCBhIHJlcXVlc3Qgb3IgcmVzcG9uc2UgaGVhZGVyLiAgVGhleSBhcmUgZm9sbG93ZWQKLSAqIGJ5IGRhdGFfbGVuIGJ5dGVzIG9mIGRhdGEuICBJZiB0aGUgZGF0YV9jcmNfcHJlc2VudCBmbGFnIGlzIHNldCwgdGhlIGRhdGEKLSAqIGJ5dGVzIGFyZSBmb2xsb3dlZCBieSBhIENSQy04IG9mIHRoYXQgZGF0YSwgdXNpbmcgdXNpbmcgeF44ICsgeF4yICsgeCArIDEKLSAqIHBvbHlub21pYWwuCi0gKgotICogSG9zdCBhbGdvcml0aG0gd2hlbiBzZW5kaW5nIGEgcmVxdWVzdCBxOgotICoKLSAqIDEwMSkgdHJpZXNfbGVmdD0oc29tZSB2YWx1ZSwgZS5nLiAzKTsKLSAqIDEwMikgcS5zZXFfbnVtKysKLSAqIDEwMykgcS5zZXFfZHVwPTAKLSAqIDEwNCkgQ2FsY3VsYXRlIHEuaGVhZGVyX2NyYy4KLSAqIDEwNSkgU2VuZCByZXF1ZXN0IHEgdG8gRUMuCi0gKiAxMDYpIFdhaXQgZm9yIHJlc3BvbnNlIHIuICBHbyB0byAyMDEgaWYgcmVjZWl2ZWQgb3IgMzAxIGlmIHRpbWVvdXQuCi0gKgotICogMjAxKSBJZiByLnN0cnVjdF92ZXJzaW9uICE9IDQsIGdvIHRvIDMwMS4KLSAqIDIwMikgSWYgci5oZWFkZXJfY3JjIG1pc21hdGNoZXMgY2FsY3VsYXRlZCBDUkMgZm9yIHIgaGVhZGVyLCBnbyB0byAzMDEuCi0gKiAyMDMpIElmIHIuZGF0YV9jcmNfcHJlc2VudCBhbmQgci5kYXRhX2NyYyBtaXNtYXRjaGVzLCBnbyB0byAzMDEuCi0gKiAyMDQpIElmIHIuc2VxX251bSAhPSBxLnNlcV9udW0sIGdvIHRvIDMwMS4KLSAqIDIwNSkgSWYgci5zZXFfZHVwID09IHEuc2VxX2R1cCwgcmV0dXJuIHN1Y2Nlc3MuCi0gKiAyMDcpIElmIHIuc2VxX2R1cCA9PSAxLCBnbyB0byAzMDEuCi0gKiAyMDgpIFJldHVybiBlcnJvci4KLSAqCi0gKiAzMDEpIElmIC0tdHJpZXNfbGVmdCA8PSAwLCByZXR1cm4gZXJyb3IuCi0gKiAzMDIpIElmIHEuc2VxX2R1cCA9PSAxLCBnbyB0byAxMDUuCi0gKiAzMDMpIHEuc2VxX2R1cCA9IDEKLSAqIDMwNCkgR28gdG8gMTA0LgotICoKLSAqIEVDIGFsZ29yaXRobSB3aGVuIHJlY2VpdmluZyBhIHJlcXVlc3QgcS4KLSAqIEVDIGhhcyByZXNwb25zZSBidWZmZXIgciwgZXJyb3IgYnVmZmVyIGUuCi0gKgotICogMTAxKSBJZiBxLnN0cnVjdF92ZXJzaW9uICE9IDQsIHNldCBlLnJlc3VsdCA9IEVDX1JFU19JTlZBTElEX0hFQURFUl9WRVJTSU9OCi0gKiAgICAgIGFuZCBnbyB0byAzMDEKLSAqIDEwMikgSWYgcS5oZWFkZXJfY3JjIG1pc21hdGNoZXMgY2FsY3VsYXRlZCBDUkMsIHNldCBlLnJlc3VsdCA9Ci0gKiAgICAgIEVDX1JFU19JTlZBTElEX0hFQURFUl9DUkMgYW5kIGdvIHRvIDMwMQotICogMTAzKSBJZiBxLmRhdGFfY3JjX3ByZXNlbnQsIGNhbGN1bGF0ZSBkYXRhIENSQy4gIElmIHRoYXQgbWlzbWF0Y2hlcyB0aGUgQ1JDCi0gKiAgICAgIGJ5dGUgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2V0LCBzZXQgZS5yZXN1bHQgPSBFQ19SRVNfSU5WQUxJRF9EQVRBX0NSQwotICogICAgICBhbmQgZ28gdG8gMzAxLgotICogMTA0KSBJZiBxLnNlcV9kdXAgPT0gMCwgZ28gdG8gMjAxLgotICogMTA1KSBJZiBxLnNlcV9udW0gIT0gci5zZXFfbnVtLCBnbyB0byAyMDEuCi0gKiAxMDYpIElmIHEuc2VxX2R1cCA9PSByLnNlcV9kdXAsIGdvIHRvIDIwNSwgZWxzZSBnbyB0byAyMDMuCi0gKgotICogMjAxKSBQcm9jZXNzIHJlcXVlc3QgcSBpbnRvIHJlc3BvbnNlIHIuCi0gKiAyMDIpIHIuc2VxX251bSA9IHEuc2VxX251bQotICogMjAzKSByLnNlcV9kdXAgPSBxLnNlcV9kdXAKLSAqIDIwNCkgQ2FsY3VsYXRlIHIuaGVhZGVyX2NyYwotICogMjA1KSBJZiByLmRhdGFfbGVuID4gMCBhbmQgZGF0YSBpcyBubyBsb25nZXIgYXZhaWxhYmxlLCBzZXQgZS5yZXN1bHQgPQotICogICAgICBFQ19SRVNfRFVQX1VOQVZBSUxBQkxFIGFuZCBnbyB0byAzMDEuCi0gKiAyMDYpIFNlbmQgcmVzcG9uc2Ugci4KLSAqCi0gKiAzMDEpIGUuc2VxX251bSA9IHEuc2VxX251bQotICogMzAyKSBlLnNlcV9kdXAgPSBxLnNlcV9kdXAKLSAqIDMwMykgQ2FsY3VsYXRlIGUuaGVhZGVyX2NyYy4KLSAqIDMwNCkgU2VuZCBlcnJvciByZXNwb25zZSBlLgotICovCi0KLS8qIFZlcnNpb24gNCByZXF1ZXN0IGZyb20gaG9zdCAqLwotc3RydWN0IGVjX2hvc3RfcmVxdWVzdDQgewotCS8qCi0JICogYml0cyAwLTM6IHN0cnVjdF92ZXJzaW9uOiBTdHJ1Y3R1cmUgdmVyc2lvbiAoPTQpCi0JICogYml0ICAgIDQ6IGlzX3Jlc3BvbnNlOiBJcyByZXNwb25zZSAoPTApCi0JICogYml0cyA1LTY6IHNlcV9udW06IFNlcXVlbmNlIG51bWJlcgotCSAqIGJpdCAgICA3OiBzZXFfZHVwOiBTZXF1ZW5jZSBkdXBsaWNhdGUgZmxhZwotCSAqLwotCXVpbnQ4X3QgZmllbGRzMDsKLQotCS8qCi0JICogYml0cyAwLTQ6IGNvbW1hbmRfdmVyc2lvbjogQ29tbWFuZCB2ZXJzaW9uCi0JICogYml0cyA1LTY6IFJlc2VydmVkIChzZXQgMCwgaWdub3JlIG9uIHJlYWQpCi0JICogYml0ICAgIDc6IGRhdGFfY3JjX3ByZXNlbnQ6IElzIGRhdGEgQ1JDIHByZXNlbnQgYWZ0ZXIgZGF0YQotCSAqLwotCXVpbnQ4X3QgZmllbGRzMTsKLQotCS8qIENvbW1hbmQgY29kZSAoRUNfQ01EXyopICovCi0JdWludDE2X3QgY29tbWFuZDsKLQotCS8qIExlbmd0aCBvZiBkYXRhIHdoaWNoIGZvbGxvd3MgdGhpcyBoZWFkZXIgKG5vdCBpbmNsdWRpbmcgZGF0YSBDUkMpICovCi0JdWludDE2X3QgZGF0YV9sZW47Ci0KLQkvKiBSZXNlcnZlZCAoc2V0IDAsIGlnbm9yZSBvbiByZWFkKSAqLwotCXVpbnQ4X3QgcmVzZXJ2ZWQ7Ci0KLQkvKiBDUkMtOCBvZiBhYm92ZSBmaWVsZHMsIHVzaW5nIHheOCArIHheMiArIHggKyAxIHBvbHlub21pYWwgKi8KLQl1aW50OF90IGhlYWRlcl9jcmM7Ci19IF9fZWNfYWxpZ240OwotCi0vKiBWZXJzaW9uIDQgcmVzcG9uc2UgZnJvbSBFQyAqLwotc3RydWN0IGVjX2hvc3RfcmVzcG9uc2U0IHsKLQkvKgotCSAqIGJpdHMgMC0zOiBzdHJ1Y3RfdmVyc2lvbjogU3RydWN0dXJlIHZlcnNpb24gKD00KQotCSAqIGJpdCAgICA0OiBpc19yZXNwb25zZTogSXMgcmVzcG9uc2UgKD0xKQotCSAqIGJpdHMgNS02OiBzZXFfbnVtOiBTZXF1ZW5jZSBudW1iZXIKLQkgKiBiaXQgICAgNzogc2VxX2R1cDogU2VxdWVuY2UgZHVwbGljYXRlIGZsYWcKLQkgKi8KLQl1aW50OF90IGZpZWxkczA7Ci0KLQkvKgotCSAqIGJpdHMgMC02OiBSZXNlcnZlZCAoc2V0IDAsIGlnbm9yZSBvbiByZWFkKQotCSAqIGJpdCAgICA3OiBkYXRhX2NyY19wcmVzZW50OiBJcyBkYXRhIENSQyBwcmVzZW50IGFmdGVyIGRhdGEKLQkgKi8KLQl1aW50OF90IGZpZWxkczE7Ci0KLQkvKiBSZXN1bHQgY29kZSAoRUNfUkVTXyopICovCi0JdWludDE2X3QgcmVzdWx0OwotCi0JLyogTGVuZ3RoIG9mIGRhdGEgd2hpY2ggZm9sbG93cyB0aGlzIGhlYWRlciAobm90IGluY2x1ZGluZyBkYXRhIENSQykgKi8KLQl1aW50MTZfdCBkYXRhX2xlbjsKLQotCS8qIFJlc2VydmVkIChzZXQgMCwgaWdub3JlIG9uIHJlYWQpICovCi0JdWludDhfdCByZXNlcnZlZDsKLQotCS8qIENSQy04IG9mIGFib3ZlIGZpZWxkcywgdXNpbmcgeF44ICsgeF4yICsgeCArIDEgcG9seW5vbWlhbCAqLwotCXVpbnQ4X3QgaGVhZGVyX2NyYzsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qIEZpZWxkcyBpbiBmaWVsZHMwIGJ5dGUgKi8KLSNkZWZpbmUgRUNfUEFDS0VUNF8wX1NUUlVDVF9WRVJTSU9OX01BU0sJMHgwZgotI2RlZmluZSBFQ19QQUNLRVQ0XzBfSVNfUkVTUE9OU0VfTUFTSwkJMHgxMAotI2RlZmluZSBFQ19QQUNLRVQ0XzBfU0VRX05VTV9TSElGVAkJNQotI2RlZmluZSBFQ19QQUNLRVQ0XzBfU0VRX05VTV9NQVNLCQkweDYwCi0jZGVmaW5lIEVDX1BBQ0tFVDRfMF9TRVFfRFVQX01BU0sJCTB4ODAKLQotLyogRmllbGRzIGluIGZpZWxkczEgYnl0ZSAqLwotI2RlZmluZSBFQ19QQUNLRVQ0XzFfQ09NTUFORF9WRVJTSU9OX01BU0sJMHgxZiAgLyogKHJlcXVlc3Qgb25seSkgKi8KLSNkZWZpbmUgRUNfUEFDS0VUNF8xX0RBVEFfQ1JDX1BSRVNFTlRfTUFTSwkweDgwCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCi0gKiBOb3RlcyBvbiBjb21tYW5kczoKLSAqCi0gKiBFYWNoIGNvbW1hbmQgaXMgYW4gMTYtYml0IGNvbW1hbmQgdmFsdWUuICBDb21tYW5kcyB3aGljaCB0YWtlIHBhcmFtcyBvcgotICogcmV0dXJuIHJlc3BvbnNlIGRhdGEgc3BlY2lmeSBzdHJ1Y3R1cmVzIGZvciB0aGF0IGRhdGEuICBJZiBubyBzdHJ1Y3R1cmUgaXMKLSAqIHNwZWNpZmllZCwgdGhlIGNvbW1hbmQgZG9lcyBub3QgaW5wdXQgb3Igb3V0cHV0IGRhdGEsIHJlc3BlY3RpdmVseS4KLSAqIFBhcmFtZXRlci9yZXNwb25zZSBsZW5ndGggaXMgaW1wbGljaXQgaW4gdGhlIHN0cnVjdHMuICBTb21lIHVuZGVybHlpbmcKLSAqIGNvbW11bmljYXRpb24gcHJvdG9jb2xzIChJMkMsIFNQSSkgbWF5IGFkZCBsZW5ndGggb3IgY2hlY2tzdW0gaGVhZGVycywgYnV0Ci0gKiB0aG9zZSBhcmUgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IGFuZCBub3QgZGVmaW5lZCBoZXJlLgotICoKLSAqIEFsbCBjb21tYW5kcyBNVVNUIGJlICNkZWZpbmVkIHRvIGJlIDQtZGlnaXQgVVBQRVIgQ0FTRSBoZXggdmFsdWVzCi0gKiAoZS5nLiwgMHgwMEFCLCBub3QgMHhhYikgZm9yIENPTkZJR19IT1NUQ01EX1NFQ1RJT05fU09SVEVEIHRvIHdvcmsuCi0gKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogR2VuZXJhbCAvIHRlc3QgY29tbWFuZHMgKi8KLQotLyoKLSAqIEdldCBwcm90b2NvbCB2ZXJzaW9uLCB1c2VkIHRvIGRlYWwgd2l0aCBub24tYmFja3dhcmQgY29tcGF0aWJsZSBwcm90b2NvbAotICogY2hhbmdlcy4KLSAqLwotI2RlZmluZSBFQ19DTURfUFJPVE9fVkVSU0lPTiAweDAwMDAKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcmVzcG9uc2VfcHJvdG9fdmVyc2lvbiAtIFJlc3BvbnNlIHRvIHRoZSBwcm90byB2ZXJzaW9uIGNvbW1hbmQuCi0gKiBAdmVyc2lvbjogVGhlIHByb3RvY29sIHZlcnNpb24uCi0gKi8KLXN0cnVjdCBlY19yZXNwb25zZV9wcm90b192ZXJzaW9uIHsKLQl1aW50MzJfdCB2ZXJzaW9uOwotfSBfX2VjX2FsaWduNDsKLQotLyoKLSAqIEhlbGxvLiAgVGhpcyBpcyBhIHNpbXBsZSBjb21tYW5kIHRvIHRlc3QgdGhlIEVDIGlzIHJlc3BvbnNpdmUgdG8KLSAqIGNvbW1hbmRzLgotICovCi0jZGVmaW5lIEVDX0NNRF9IRUxMTyAweDAwMDEKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcGFyYW1zX2hlbGxvIC0gUGFyYW1ldGVycyB0byB0aGUgaGVsbG8gY29tbWFuZC4KLSAqIEBpbl9kYXRhOiBQYXNzIGFueXRoaW5nIGhlcmUuCi0gKi8KLXN0cnVjdCBlY19wYXJhbXNfaGVsbG8gewotCXVpbnQzMl90IGluX2RhdGE7Ci19IF9fZWNfYWxpZ240OwotCi0vKioKLSAqIHN0cnVjdCBlY19yZXNwb25zZV9oZWxsbyAtIFJlc3BvbnNlIHRvIHRoZSBoZWxsbyBjb21tYW5kLgotICogQG91dF9kYXRhOiBPdXRwdXQgd2lsbCBiZSBpbl9kYXRhICsgMHgwMTAyMDMwNC4KLSAqLwotc3RydWN0IGVjX3Jlc3BvbnNlX2hlbGxvIHsKLQl1aW50MzJfdCBvdXRfZGF0YTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qIEdldCB2ZXJzaW9uIG51bWJlciAqLwotI2RlZmluZSBFQ19DTURfR0VUX1ZFUlNJT04gMHgwMDAyCi0KLWVudW0gZWNfY3VycmVudF9pbWFnZSB7Ci0JRUNfSU1BR0VfVU5LTk9XTiA9IDAsCi0JRUNfSU1BR0VfUk8sCi0JRUNfSU1BR0VfUlcKLX07Ci0KLS8qKgotICogc3RydWN0IGVjX3Jlc3BvbnNlX2dldF92ZXJzaW9uIC0gUmVzcG9uc2UgdG8gdGhlIGdldCB2ZXJzaW9uIGNvbW1hbmQuCi0gKiBAdmVyc2lvbl9zdHJpbmdfcm86IE51bGwtdGVybWluYXRlZCBSTyBmaXJtd2FyZSB2ZXJzaW9uIHN0cmluZy4KLSAqIEB2ZXJzaW9uX3N0cmluZ19ydzogTnVsbC10ZXJtaW5hdGVkIFJXIGZpcm13YXJlIHZlcnNpb24gc3RyaW5nLgotICogQHJlc2VydmVkOiBVbnVzZWQgYnl0ZXM7IHdhcyBwcmV2aW91c2x5IFJXLUIgZmlybXdhcmUgdmVyc2lvbiBzdHJpbmcuCi0gKiBAY3VycmVudF9pbWFnZTogT25lIG9mIGVjX2N1cnJlbnRfaW1hZ2UuCi0gKi8KLXN0cnVjdCBlY19yZXNwb25zZV9nZXRfdmVyc2lvbiB7Ci0JY2hhciB2ZXJzaW9uX3N0cmluZ19yb1szMl07Ci0JY2hhciB2ZXJzaW9uX3N0cmluZ19yd1szMl07Ci0JY2hhciByZXNlcnZlZFszMl07Ci0JdWludDMyX3QgY3VycmVudF9pbWFnZTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qIFJlYWQgdGVzdCAqLwotI2RlZmluZSBFQ19DTURfUkVBRF9URVNUIDB4MDAwMwotCi0vKioKLSAqIHN0cnVjdCBlY19wYXJhbXNfcmVhZF90ZXN0IC0gUGFyYW1ldGVycyBmb3IgdGhlIHJlYWQgdGVzdCBjb21tYW5kLgotICogQG9mZnNldDogU3RhcnRpbmcgdmFsdWUgZm9yIHJlYWQgYnVmZmVyLgotICogQHNpemU6IFNpemUgdG8gcmVhZCBpbiBieXRlcy4KLSAqLwotc3RydWN0IGVjX3BhcmFtc19yZWFkX3Rlc3QgewotCXVpbnQzMl90IG9mZnNldDsKLQl1aW50MzJfdCBzaXplOwotfSBfX2VjX2FsaWduNDsKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcmVzcG9uc2VfcmVhZF90ZXN0IC0gUmVzcG9uc2UgdG8gdGhlIHJlYWQgdGVzdCBjb21tYW5kLgotICogQGRhdGE6IERhdGEgcmV0dXJuZWQgYnkgdGhlIHJlYWQgdGVzdCBjb21tYW5kLgotICovCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfcmVhZF90ZXN0IHsKLQl1aW50MzJfdCBkYXRhWzMyXTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qCi0gKiBHZXQgYnVpbGQgaW5mb3JtYXRpb24KLSAqCi0gKiBSZXNwb25zZSBpcyBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nLgotICovCi0jZGVmaW5lIEVDX0NNRF9HRVRfQlVJTERfSU5GTyAweDAwMDQKLQotLyogR2V0IGNoaXAgaW5mbyAqLwotI2RlZmluZSBFQ19DTURfR0VUX0NISVBfSU5GTyAweDAwMDUKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X2NoaXBfaW5mbyAtIFJlc3BvbnNlIHRvIHRoZSBnZXQgY2hpcCBpbmZvIGNvbW1hbmQuCi0gKiBAdmVuZG9yOiBOdWxsLXRlcm1pbmF0ZWQgc3RyaW5nIGZvciBjaGlwIHZlbmRvci4KLSAqIEBuYW1lOiBOdWxsLXRlcm1pbmF0ZWQgc3RyaW5nIGZvciBjaGlwIG5hbWUuCi0gKiBAcmV2aXNpb246IE51bGwtdGVybWluYXRlZCBzdHJpbmcgZm9yIGNoaXAgbWFzayB2ZXJzaW9uLgotICovCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X2NoaXBfaW5mbyB7Ci0JY2hhciB2ZW5kb3JbMzJdOwotCWNoYXIgbmFtZVszMl07Ci0JY2hhciByZXZpc2lvblszMl07Ci19IF9fZWNfYWxpZ240OwotCi0vKiBHZXQgYm9hcmQgSFcgdmVyc2lvbiAqLwotI2RlZmluZSBFQ19DTURfR0VUX0JPQVJEX1ZFUlNJT04gMHgwMDA2Ci0KLS8qKgotICogc3RydWN0IGVjX3Jlc3BvbnNlX2JvYXJkX3ZlcnNpb24gLSBSZXNwb25zZSB0byB0aGUgYm9hcmQgdmVyc2lvbiBjb21tYW5kLgotICogQGJvYXJkX3ZlcnNpb246IEEgbW9ub3Rvbm91c2x5IGluY3JlbWVudGluZyBudW1iZXIuCi0gKi8KLXN0cnVjdCBlY19yZXNwb25zZV9ib2FyZF92ZXJzaW9uIHsKLQl1aW50MTZfdCBib2FyZF92ZXJzaW9uOwotfSBfX2VjX2FsaWduMjsKLQotLyoKLSAqIFJlYWQgbWVtb3J5LW1hcHBlZCBkYXRhLgotICoKLSAqIFRoaXMgaXMgYW4gYWx0ZXJuYXRlIGludGVyZmFjZSB0byBtZW1vcnktbWFwcGVkIGRhdGEgZm9yIGJ1cyBwcm90b2NvbHMKLSAqIHdoaWNoIGRvbid0IHN1cHBvcnQgZGlyZWN0LW1hcHBlZCBtZW1vcnkgLSBJMkMsIFNQSSwgZXRjLgotICoKLSAqIFJlc3BvbnNlIGlzIHBhcmFtcy5zaXplIGJ5dGVzIG9mIGRhdGEuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX1JFQURfTUVNTUFQIDB4MDAwNwotCi0vKioKLSAqIHN0cnVjdCBlY19wYXJhbXNfcmVhZF9tZW1tYXAgLSBQYXJhbWV0ZXJzIGZvciB0aGUgcmVhZCBtZW1vcnkgbWFwIGNvbW1hbmQuCi0gKiBAb2Zmc2V0OiBPZmZzZXQgaW4gbWVtbWFwIChFQ19NRU1NQVBfKikuCi0gKiBAc2l6ZTogU2l6ZSB0byByZWFkIGluIGJ5dGVzLgotICovCi1zdHJ1Y3QgZWNfcGFyYW1zX3JlYWRfbWVtbWFwIHsKLQl1aW50OF90IG9mZnNldDsKLQl1aW50OF90IHNpemU7Ci19IF9fZWNfYWxpZ24xOwotCi0vKiBSZWFkIHZlcnNpb25zIHN1cHBvcnRlZCBmb3IgYSBjb21tYW5kICovCi0jZGVmaW5lIEVDX0NNRF9HRVRfQ01EX1ZFUlNJT05TIDB4MDAwOAotCi0vKioKLSAqIHN0cnVjdCBlY19wYXJhbXNfZ2V0X2NtZF92ZXJzaW9ucyAtIFBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgY29tbWFuZCB2ZXJzaW9ucy4KLSAqIEBjbWQ6IENvbW1hbmQgdG8gY2hlY2suCi0gKi8KLXN0cnVjdCBlY19wYXJhbXNfZ2V0X2NtZF92ZXJzaW9ucyB7Ci0JdWludDhfdCBjbWQ7Ci19IF9fZWNfYWxpZ24xOwotCi0vKioKLSAqIHN0cnVjdCBlY19wYXJhbXNfZ2V0X2NtZF92ZXJzaW9uc192MSAtIFBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgY29tbWFuZAotICogICAgICAgICB2ZXJzaW9ucyAodjEpCi0gKiBAY21kOiBDb21tYW5kIHRvIGNoZWNrLgotICovCi1zdHJ1Y3QgZWNfcGFyYW1zX2dldF9jbWRfdmVyc2lvbnNfdjEgewotCXVpbnQxNl90IGNtZDsKLX0gX19lY19hbGlnbjI7Ci0KLS8qKgotICogc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9jbWRfdmVyc2lvbiAtIFJlc3BvbnNlIHRvIHRoZSBnZXQgY29tbWFuZCB2ZXJzaW9ucy4KLSAqIEB2ZXJzaW9uX21hc2s6IE1hc2sgb2Ygc3VwcG9ydGVkIHZlcnNpb25zOyB1c2UgRUNfVkVSX01BU0soKSB0byBjb21wYXJlIHdpdGgKLSAqICAgICAgICAgICAgICAgIGEgZGVzaXJlZCB2ZXJzaW9uLgotICovCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X2NtZF92ZXJzaW9ucyB7Ci0JdWludDMyX3QgdmVyc2lvbl9tYXNrOwotfSBfX2VjX2FsaWduNDsKLQotLyoKLSAqIENoZWNrIEVDIGNvbW11bmljYXRpb25zIHN0YXR1cyAoYnVzeSkuIFRoaXMgaXMgbmVlZGVkIG9uIGkyYy9zcGkgYnV0IG5vdAotICogb24gbHBjIHNpbmNlIGl0IGhhcyBpdHMgb3duIG91dC1vZi1iYW5kIGJ1c3kgaW5kaWNhdG9yLgotICoKLSAqIGxwYyBtdXN0IHJlYWQgdGhlIHN0YXR1cyBmcm9tIHRoZSBjb21tYW5kIHJlZ2lzdGVyLiBBdHRlbXB0aW5nIHRoaXMgb24KLSAqIGxwYyB3aWxsIG92ZXJ3cml0ZSB0aGUgYXJncy9wYXJhbWV0ZXIgc3BhY2UgYW5kIGNvcnJ1cHQgaXRzIGRhdGEuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0dFVF9DT01NU19TVEFUVVMJCTB4MDAwOQotCi0vKiBBdm9pZCB1c2luZyBlY19zdGF0dXMgd2hpY2ggaXMgZm9yIHJldHVybiB2YWx1ZXMgKi8KLWVudW0gZWNfY29tbXNfc3RhdHVzIHsKLQlFQ19DT01NU19TVEFUVVNfUFJPQ0VTU0lORwk9IEJJVCgwKSwJLyogUHJvY2Vzc2luZyBjbWQgKi8KLX07Ci0KLS8qKgotICogc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9jb21tc19zdGF0dXMgLSBSZXNwb25zZSB0byB0aGUgZ2V0IGNvbW1zIHN0YXR1cwotICogICAgICAgICBjb21tYW5kLgotICogQGZsYWdzOiBNYXNrIG9mIGVudW0gZWNfY29tbXNfc3RhdHVzLgotICovCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X2NvbW1zX3N0YXR1cyB7Ci0JdWludDMyX3QgZmxhZ3M7CQkvKiBNYXNrIG9mIGVudW0gZWNfY29tbXNfc3RhdHVzICovCi19IF9fZWNfYWxpZ240OwotCi0vKiBGYWtlIGEgdmFyaWV0eSBvZiByZXNwb25zZXMsIHB1cmVseSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gKi8KLSNkZWZpbmUgRUNfQ01EX1RFU1RfUFJPVE9DT0wJCTB4MDAwQQotCi0vKiBUZWxsIHRoZSBFQyB3aGF0IHRvIHNlbmQgYmFjayB0byB1cy4gKi8KLXN0cnVjdCBlY19wYXJhbXNfdGVzdF9wcm90b2NvbCB7Ci0JdWludDMyX3QgZWNfcmVzdWx0OwotCXVpbnQzMl90IHJldF9sZW47Ci0JdWludDhfdCBidWZbMzJdOwotfSBfX2VjX2FsaWduNDsKLQotLyogSGVyZSBpdCBjb21lcy4uLiAqLwotc3RydWN0IGVjX3Jlc3BvbnNlX3Rlc3RfcHJvdG9jb2wgewotCXVpbnQ4X3QgYnVmWzMyXTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qIEdldCBwcm90b2NvbCBpbmZvcm1hdGlvbiAqLwotI2RlZmluZSBFQ19DTURfR0VUX1BST1RPQ09MX0lORk8JMHgwMDBCCi0KLS8qIEZsYWdzIGZvciBlY19yZXNwb25zZV9nZXRfcHJvdG9jb2xfaW5mby5mbGFncyAqLwotLyogRUNfUkVTX0lOX1BST0dSRVNTIG1heSBiZSByZXR1cm5lZCBpZiBhIGNvbW1hbmQgaXMgc2xvdyAqLwotI2RlZmluZSBFQ19QUk9UT0NPTF9JTkZPX0lOX1BST0dSRVNTX1NVUFBPUlRFRCBCSVQoMCkKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X3Byb3RvY29sX2luZm8gLSBSZXNwb25zZSB0byB0aGUgZ2V0IHByb3RvY29sIGluZm8uCi0gKiBAcHJvdG9jb2xfdmVyc2lvbnM6IEJpdG1hc2sgb2YgcHJvdG9jb2wgdmVyc2lvbnMgc3VwcG9ydGVkICgxIDw8IG4gbWVhbnMKLSAqICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiBuKS4KLSAqIEBtYXhfcmVxdWVzdF9wYWNrZXRfc2l6ZTogTWF4aW11bSByZXF1ZXN0IHBhY2tldCBzaXplIGluIGJ5dGVzLgotICogQG1heF9yZXNwb25zZV9wYWNrZXRfc2l6ZTogTWF4aW11bSByZXNwb25zZSBwYWNrZXQgc2l6ZSBpbiBieXRlcy4KLSAqIEBmbGFnczogc2VlIEVDX1BST1RPQ09MX0lORk9fKgotICovCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X3Byb3RvY29sX2luZm8gewotCS8qIEZpZWxkcyB3aGljaCBleGlzdCBpZiBhdCBsZWFzdCBwcm90b2NvbCB2ZXJzaW9uIDMgc3VwcG9ydGVkICovCi0JdWludDMyX3QgcHJvdG9jb2xfdmVyc2lvbnM7Ci0JdWludDE2X3QgbWF4X3JlcXVlc3RfcGFja2V0X3NpemU7Ci0JdWludDE2X3QgbWF4X3Jlc3BvbnNlX3BhY2tldF9zaXplOwotCXVpbnQzMl90IGZsYWdzOwotfSBfX2VjX2FsaWduNDsKLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBHZXQvU2V0IG1pc2NlbGxhbmVvdXMgdmFsdWVzICovCi0KLS8qIFRoZSB1cHBlciBieXRlIG9mIC5mbGFncyB0ZWxscyB3aGF0IHRvIGRvIChub3RoaW5nIG1lYW5zICJnZXQiKSAqLwotI2RlZmluZSBFQ19HU1ZfU0VUICAgICAgICAweDgwMDAwMDAwCi0KLS8qCi0gKiBUaGUgbG93ZXIgdGhyZWUgYnl0ZXMgb2YgLmZsYWdzIGlkZW50aWZpZXMgdGhlIHBhcmFtZXRlciwgaWYgdGhhdCBoYXMKLSAqIG1lYW5pbmcgZm9yIGFuIGluZGl2aWR1YWwgY29tbWFuZC4KLSAqLwotI2RlZmluZSBFQ19HU1ZfUEFSQU1fTUFTSyAweDAwZmZmZmZmCi0KLXN0cnVjdCBlY19wYXJhbXNfZ2V0X3NldF92YWx1ZSB7Ci0JdWludDMyX3QgZmxhZ3M7Ci0JdWludDMyX3QgdmFsdWU7Ci19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X3NldF92YWx1ZSB7Ci0JdWludDMyX3QgZmxhZ3M7Ci0JdWludDMyX3QgdmFsdWU7Ci19IF9fZWNfYWxpZ240OwotCi0vKiBNb3JlIHRoYW4gb25lIGNvbW1hbmQgY2FuIHVzZSB0aGVzZSBzdHJ1Y3RzIHRvIGdldC9zZXQgcGFyYW1ldGVycy4gKi8KLSNkZWZpbmUgRUNfQ01EX0dTVl9QQVVTRV9JTl9TNQkweDAwMEMKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogTGlzdCB0aGUgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHRoZSBmaXJtd2FyZSAqLwotI2RlZmluZSBFQ19DTURfR0VUX0ZFQVRVUkVTICAweDAwMEQKLQotLyogU3VwcG9ydGVkIGZlYXR1cmVzICovCi1lbnVtIGVjX2ZlYXR1cmVfY29kZSB7Ci0JLyoKLQkgKiBUaGlzIGltYWdlIGNvbnRhaW5zIGEgbGltaXRlZCBzZXQgb2YgZmVhdHVyZXMuIEFub3RoZXIgaW1hZ2UKLQkgKiBpbiBSVyBwYXJ0aXRpb24gbWF5IHN1cHBvcnQgbW9yZSBmZWF0dXJlcy4KLQkgKi8KLQlFQ19GRUFUVVJFX0xJTUlURUQgPSAwLAotCS8qCi0JICogQ29tbWFuZHMgZm9yIHByb2JpbmcvcmVhZGluZy93cml0aW5nL2VyYXNpbmcgdGhlIGZsYXNoIGluIHRoZQotCSAqIEVDIGFyZSBwcmVzZW50LgotCSAqLwotCUVDX0ZFQVRVUkVfRkxBU0ggPSAxLAotCS8qCi0JICogQ2FuIGNvbnRyb2wgdGhlIGZhbiBzcGVlZCBkaXJlY3RseS4KLQkgKi8KLQlFQ19GRUFUVVJFX1BXTV9GQU4gPSAyLAotCS8qCi0JICogQ2FuIGNvbnRyb2wgdGhlIGludGVuc2l0eSBvZiB0aGUga2V5Ym9hcmQgYmFja2xpZ2h0LgotCSAqLwotCUVDX0ZFQVRVUkVfUFdNX0tFWUIgPSAzLAotCS8qCi0JICogU3VwcG9ydCBHb29nbGUgbGlnaHRiYXIsIGludHJvZHVjZWQgb24gUGl4ZWwuCi0JICovCi0JRUNfRkVBVFVSRV9MSUdIVEJBUiA9IDQsCi0JLyogQ29udHJvbCBvZiBMRURzICAqLwotCUVDX0ZFQVRVUkVfTEVEID0gNSwKLQkvKiBFeHBvc2VzIGFuIGludGVyZmFjZSB0byBjb250cm9sIGd5cm8gYW5kIHNlbnNvcnMuCi0JICogVGhlIGhvc3QgZ29lcyB0aHJvdWdoIHRoZSBFQyB0byBhY2Nlc3MgdGhlc2Ugc2Vuc29ycy4KLQkgKiBJbiBhZGRpdGlvbiwgdGhlIEVDIG1heSBwcm92aWRlIGNvbXBvc2l0ZSBzZW5zb3JzLCBsaWtlIGxpZCBhbmdsZS4KLQkgKi8KLQlFQ19GRUFUVVJFX01PVElPTl9TRU5TRSA9IDYsCi0JLyogVGhlIGtleWJvYXJkIGlzIGNvbnRyb2xsZWQgYnkgdGhlIEVDICovCi0JRUNfRkVBVFVSRV9LRVlCID0gNywKLQkvKiBUaGUgQVAgY2FuIHVzZSBwYXJ0IG9mIHRoZSBFQyBmbGFzaCBhcyBwZXJzaXN0ZW50IHN0b3JhZ2UuICovCi0JRUNfRkVBVFVSRV9QU1RPUkUgPSA4LAotCS8qIFRoZSBFQyBtb25pdG9ycyBCSU9TIHBvcnQgODBoLCBhbmQgY2FuIHJldHVybiBQT1NUIGNvZGVzLiAqLwotCUVDX0ZFQVRVUkVfUE9SVDgwID0gOSwKLQkvKgotCSAqIFRoZXJtYWwgbWFuYWdlbWVudDogaW5jbHVkZSBUTVAgc3BlY2lmaWMgY29tbWFuZHMuCi0JICogSGlnaGVyIGxldmVsIHRoYW4gZGlyZWN0IGZhbiBjb250cm9sLgotCSAqLwotCUVDX0ZFQVRVUkVfVEhFUk1BTCA9IDEwLAotCS8qIENhbiBzd2l0Y2ggdGhlIHNjcmVlbiBiYWNrbGlnaHQgb24vb2ZmICovCi0JRUNfRkVBVFVSRV9CS0xJR0hUX1NXSVRDSCA9IDExLAotCS8qIENhbiBzd2l0Y2ggdGhlIHdpZmkgbW9kdWxlIG9uL29mZiAqLwotCUVDX0ZFQVRVUkVfV0lGSV9TV0lUQ0ggPSAxMiwKLQkvKiBNb25pdG9yIGhvc3QgZXZlbnRzLCB0aHJvdWdoIGZvciBleGFtcGxlIFNNSSBvciBTQ0kgKi8KLQlFQ19GRUFUVVJFX0hPU1RfRVZFTlRTID0gMTMsCi0JLyogVGhlIEVDIGV4cG9zZXMgR1BJTyBjb21tYW5kcyB0byBjb250cm9sL21vbml0b3IgY29ubmVjdGVkIGRldmljZXMuICovCi0JRUNfRkVBVFVSRV9HUElPID0gMTQsCi0JLyogVGhlIEVDIGNhbiBzZW5kIGkyYyBtZXNzYWdlcyB0byBkb3duc3RyZWFtIGRldmljZXMuICovCi0JRUNfRkVBVFVSRV9JMkMgPSAxNSwKLQkvKiBDb21tYW5kIHRvIGNvbnRyb2wgY2hhcmdlciBhcmUgaW5jbHVkZWQgKi8KLQlFQ19GRUFUVVJFX0NIQVJHRVIgPSAxNiwKLQkvKiBTaW1wbGUgYmF0dGVyeSBzdXBwb3J0LiAqLwotCUVDX0ZFQVRVUkVfQkFUVEVSWSA9IDE3LAotCS8qCi0JICogU3VwcG9ydCBTbWFydCBiYXR0ZXJ5IHByb3RvY29sCi0JICogKENvbW1vbiBTbWFydCBCYXR0ZXJ5IFN5c3RlbSBJbnRlcmZhY2UgU3BlY2lmaWNhdGlvbikKLQkgKi8KLQlFQ19GRUFUVVJFX1NNQVJUX0JBVFRFUlkgPSAxOCwKLQkvKiBFQyBjYW4gZGV0ZWN0IHdoZW4gdGhlIGhvc3QgaGFuZ3MuICovCi0JRUNfRkVBVFVSRV9IQU5HX0RFVEVDVCA9IDE5LAotCS8qIFJlcG9ydCBwb3dlciBpbmZvcm1hdGlvbiwgZm9yIHBpdCBvbmx5ICovCi0JRUNfRkVBVFVSRV9QTVUgPSAyMCwKLQkvKiBBbm90aGVyIENyb3MgRUMgZGV2aWNlIGlzIHByZXNlbnQgZG93bnN0cmVhbSBvZiB0aGlzIG9uZSAqLwotCUVDX0ZFQVRVUkVfU1VCX01DVSA9IDIxLAotCS8qIFN1cHBvcnQgVVNCIFBvd2VyIGRlbGl2ZXJ5IChQRCkgY29tbWFuZHMgKi8KLQlFQ19GRUFUVVJFX1VTQl9QRCA9IDIyLAotCS8qIENvbnRyb2wgVVNCIG11bHRpcGxleGVyLCBmb3IgYXVkaW8gdGhyb3VnaCBVU0IgcG9ydCBmb3IgaW5zdGFuY2UuICovCi0JRUNfRkVBVFVSRV9VU0JfTVVYID0gMjMsCi0JLyogTW90aW9uIFNlbnNvciBjb2RlIGhhcyBhbiBpbnRlcm5hbCBzb2Z0d2FyZSBGSUZPICovCi0JRUNfRkVBVFVSRV9NT1RJT05fU0VOU0VfRklGTyA9IDI0LAotCS8qIFN1cHBvcnQgdGVtcG9yYXJ5IHNlY3VyZSB2c3RvcmUgKi8KLQlFQ19GRUFUVVJFX1ZTVE9SRSA9IDI1LAotCS8qIEVDIGRlY2lkZXMgb24gVVNCLUMgU1MgbXV4IHN0YXRlLCBtdXhlcyBjb25maWd1cmVkIGJ5IGhvc3QgKi8KLQlFQ19GRUFUVVJFX1VTQkNfU1NfTVVYX1ZJUlRVQUwgPSAyNiwKLQkvKiBFQyBoYXMgUlRDIGZlYXR1cmUgdGhhdCBjYW4gYmUgY29udHJvbGxlZCBieSBob3N0IGNvbW1hbmRzICovCi0JRUNfRkVBVFVSRV9SVEMgPSAyNywKLQkvKiBUaGUgTUNVIGV4cG9zZXMgYSBGaW5nZXJwcmludCBzZW5zb3IgKi8KLQlFQ19GRUFUVVJFX0ZJTkdFUlBSSU5UID0gMjgsCi0JLyogVGhlIE1DVSBleHBvc2VzIGEgVG91Y2hwYWQgKi8KLQlFQ19GRUFUVVJFX1RPVUNIUEFEID0gMjksCi0JLyogVGhlIE1DVSBoYXMgUldTSUcgdGFzayBlbmFibGVkICovCi0JRUNfRkVBVFVSRV9SV1NJRyA9IDMwLAotCS8qIEVDIGhhcyBkZXZpY2UgZXZlbnRzIHN1cHBvcnQgKi8KLQlFQ19GRUFUVVJFX0RFVklDRV9FVkVOVCA9IDMxLAotCS8qIEVDIHN1cHBvcnRzIHRoZSB1bmlmaWVkIHdha2UgbWFza3MgZm9yIExQQy9lU1BJIHN5c3RlbXMgKi8KLQlFQ19GRUFUVVJFX1VOSUZJRURfV0FLRV9NQVNLUyA9IDMyLAotCS8qIEVDIHN1cHBvcnRzIDY0LWJpdCBob3N0IGV2ZW50cyAqLwotCUVDX0ZFQVRVUkVfSE9TVF9FVkVOVDY0ID0gMzMsCi0JLyogRUMgcnVucyBjb2RlIGluIFJBTSAobm90IGluIHBsYWNlLCBhLmsuYS4gWElQKSAqLwotCUVDX0ZFQVRVUkVfRVhFQ19JTl9SQU0gPSAzNCwKLQkvKiBFQyBzdXBwb3J0cyBDRUMgY29tbWFuZHMgKi8KLQlFQ19GRUFUVVJFX0NFQyA9IDM1LAotCS8qIEVDIHN1cHBvcnRzIHRpZ2h0IHNlbnNvciB0aW1lc3RhbXBpbmcuICovCi0JRUNfRkVBVFVSRV9NT1RJT05fU0VOU0VfVElHSFRfVElNRVNUQU1QUyA9IDM2LAotCS8qCi0JICogRUMgc3VwcG9ydHMgdGFibGV0IG1vZGUgZGV0ZWN0aW9uIGFsaWduZWQgdG8gQ2hyb21lIGFuZCBhbGxvd3MKLQkgKiBzZXR0aW5nIG9mIHRocmVzaG9sZCBieSBob3N0IGNvbW1hbmQgdXNpbmcKLQkgKiBNT1RJT05TRU5TRV9DTURfVEFCTEVUX01PREVfTElEX0FOR0xFLgotCSAqLwotCUVDX0ZFQVRVUkVfUkVGSU5FRF9UQUJMRVRfTU9ERV9IWVNURVJFU0lTID0gMzcsCi0JLyogRUMgc3VwcG9ydHMgYXVkaW8gY29kZWMuICovCi0JRUNfRkVBVFVSRV9BVURJT19DT0RFQyA9IDM4LAotCS8qIFRoZSBNQ1UgaXMgYSBTeXN0ZW0gQ29tcGFuaW9uIFByb2Nlc3NvciAoU0NQKS4gKi8KLQlFQ19GRUFUVVJFX1NDUCA9IDM5LAotCS8qIFRoZSBNQ1UgaXMgYW4gSW50ZWdyYXRlZCBTZW5zb3IgSHViICovCi0JRUNfRkVBVFVSRV9JU0ggPSA0MCwKLX07Ci0KLSNkZWZpbmUgRUNfRkVBVFVSRV9NQVNLXzAoZXZlbnRfY29kZSkgQklUKGV2ZW50X2NvZGUgJSAzMikKLSNkZWZpbmUgRUNfRkVBVFVSRV9NQVNLXzEoZXZlbnRfY29kZSkgQklUKGV2ZW50X2NvZGUgLSAzMikKLQotc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9mZWF0dXJlcyB7Ci0JdWludDMyX3QgZmxhZ3NbMl07Ci19IF9fZWNfYWxpZ240OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBHZXQgdGhlIGJvYXJkJ3MgU0tVIElEIGZyb20gRUMgKi8KLSNkZWZpbmUgRUNfQ01EX0dFVF9TS1VfSUQgMHgwMDBFCi0KLS8qIFNldCBTS1UgSUQgZnJvbSBBUCAqLwotI2RlZmluZSBFQ19DTURfU0VUX1NLVV9JRCAweDAwMEYKLQotc3RydWN0IGVjX3NrdV9pZF9pbmZvIHsKLQl1aW50MzJfdCBza3VfaWQ7Ci19IF9fZWNfYWxpZ240OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBGbGFzaCBjb21tYW5kcyAqLwotCi0vKiBHZXQgZmxhc2ggaW5mbyAqLwotI2RlZmluZSBFQ19DTURfRkxBU0hfSU5GTyAweDAwMTAKLSNkZWZpbmUgRUNfVkVSX0ZMQVNIX0lORk8gMgotCi0vKioKLSAqIHN0cnVjdCBlY19yZXNwb25zZV9mbGFzaF9pbmZvIC0gUmVzcG9uc2UgdG8gdGhlIGZsYXNoIGluZm8gY29tbWFuZC4KLSAqIEBmbGFzaF9zaXplOiBVc2FibGUgZmxhc2ggc2l6ZSBpbiBieXRlcy4KLSAqIEB3cml0ZV9ibG9ja19zaXplOiBXcml0ZSBibG9jayBzaXplLiBXcml0ZSBvZmZzZXQgYW5kIHNpemUgbXVzdCBiZSBhCi0gKiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgb2YgdGhpcy4KLSAqIEBlcmFzZV9ibG9ja19zaXplOiBFcmFzZSBibG9jayBzaXplLiBFcmFzZSBvZmZzZXQgYW5kIHNpemUgbXVzdCBiZSBhCi0gKiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgb2YgdGhpcy4KLSAqIEBwcm90ZWN0X2Jsb2NrX3NpemU6IFByb3RlY3Rpb24gYmxvY2sgc2l6ZS4gUHJvdGVjdGlvbiBvZmZzZXQgYW5kIHNpemUKLSAqICAgICAgICAgICAgICAgICAgICAgIG11c3QgYmUgYSBtdWx0aXBsZSBvZiB0aGlzLgotICoKLSAqIFZlcnNpb24gMCByZXR1cm5zIHRoZXNlIGZpZWxkcy4KLSAqLwotc3RydWN0IGVjX3Jlc3BvbnNlX2ZsYXNoX2luZm8gewotCXVpbnQzMl90IGZsYXNoX3NpemU7Ci0JdWludDMyX3Qgd3JpdGVfYmxvY2tfc2l6ZTsKLQl1aW50MzJfdCBlcmFzZV9ibG9ja19zaXplOwotCXVpbnQzMl90IHByb3RlY3RfYmxvY2tfc2l6ZTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qCi0gKiBGbGFncyBmb3IgdmVyc2lvbiAxKyBmbGFzaCBpbmZvIGNvbW1hbmQKLSAqIEVDIGZsYXNoIGVyYXNlcyBiaXRzIHRvIDAgaW5zdGVhZCBvZiAxLgotICovCi0jZGVmaW5lIEVDX0ZMQVNIX0lORk9fRVJBU0VfVE9fMCBCSVQoMCkKLQotLyoKLSAqIEZsYXNoIG11c3QgYmUgc2VsZWN0ZWQgZm9yIHJlYWQvd3JpdGUvZXJhc2Ugb3BlcmF0aW9ucyB0byBzdWNjZWVkLiAgVGhpcyBtYXkKLSAqIGJlIG5lY2Vzc2FyeSBvbiBhIGNoaXAgd2hlcmUgd3JpdGUvZXJhc2UgY2FuIGJlIGNvcnJ1cHRlZCBieSBvdGhlciBib2FyZAotICogYWN0aXZpdHksIG9yIHdoZXJlIHRoZSBjaGlwIG5lZWRzIHRvIGVuYWJsZSBzb21lIHNvcnQgb2YgcHJvZ3JhbW1pbmcgdm9sdGFnZSwKLSAqIG9yIHdoZXJlIHRoZSByZWFkL3dyaXRlL2VyYXNlIG9wZXJhdGlvbnMgcmVxdWlyZSBjbGVhbmx5IHN1c3BlbmRpbmcgb3RoZXIKLSAqIGNoaXAgZnVuY3Rpb25hbGl0eS4KLSAqLwotI2RlZmluZSBFQ19GTEFTSF9JTkZPX1NFTEVDVF9SRVFVSVJFRCBCSVQoMSkKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcmVzcG9uc2VfZmxhc2hfaW5mb18xIC0gUmVzcG9uc2UgdG8gdGhlIGZsYXNoIGluZm8gdjEgY29tbWFuZC4KLSAqIEBmbGFzaF9zaXplOiBVc2FibGUgZmxhc2ggc2l6ZSBpbiBieXRlcy4KLSAqIEB3cml0ZV9ibG9ja19zaXplOiBXcml0ZSBibG9jayBzaXplLiBXcml0ZSBvZmZzZXQgYW5kIHNpemUgbXVzdCBiZSBhCi0gKiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgb2YgdGhpcy4KLSAqIEBlcmFzZV9ibG9ja19zaXplOiBFcmFzZSBibG9jayBzaXplLiBFcmFzZSBvZmZzZXQgYW5kIHNpemUgbXVzdCBiZSBhCi0gKiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgb2YgdGhpcy4KLSAqIEBwcm90ZWN0X2Jsb2NrX3NpemU6IFByb3RlY3Rpb24gYmxvY2sgc2l6ZS4gUHJvdGVjdGlvbiBvZmZzZXQgYW5kIHNpemUKLSAqICAgICAgICAgICAgICAgICAgICAgIG11c3QgYmUgYSBtdWx0aXBsZSBvZiB0aGlzLgotICogQHdyaXRlX2lkZWFsX3NpemU6IElkZWFsIHdyaXRlIHNpemUgaW4gYnl0ZXMuICBXcml0ZXMgd2lsbCBiZSBmYXN0ZXN0IGlmCi0gKiAgICAgICAgICAgICAgICAgICAgc2l6ZSBpcyBleGFjdGx5IHRoaXMgYW5kIG9mZnNldCBpcyBhIG11bHRpcGxlIG9mIHRoaXMuCi0gKiAgICAgICAgICAgICAgICAgICAgRm9yIGV4YW1wbGUsIGFuIEVDIG1heSBoYXZlIGEgd3JpdGUgYnVmZmVyIHdoaWNoIGNhbiBkbwotICogICAgICAgICAgICAgICAgICAgIGhhbGYtcGFnZSBvcGVyYXRpb25zIGlmIGRhdGEgaXMgYWxpZ25lZCwgYW5kIGEgc2xvd2VyCi0gKiAgICAgICAgICAgICAgICAgICAgd29yZC1hdC1hLXRpbWUgd3JpdGUgbW9kZS4KLSAqIEBmbGFnczogRmxhZ3M7IHNlZSBFQ19GTEFTSF9JTkZPXyoKLSAqCi0gKiBWZXJzaW9uIDEgcmV0dXJucyB0aGUgc2FtZSBpbml0aWFsIGZpZWxkcyBhcyB2ZXJzaW9uIDAsIHdpdGggYWRkaXRpb25hbAotICogZmllbGRzIGZvbGxvd2luZy4KLSAqCi0gKiBnY2MgYW5vbnltb3VzIHN0cnVjdHMgZG9uJ3Qgc2VlbSB0byBnZXQgYWxvbmcgd2l0aCB0aGUgX19wYWNrZWQgZGlyZWN0aXZlOwotICogaWYgdGhleSBkaWQgd2UnZCBkZWZpbmUgdGhlIHZlcnNpb24gMCBzdHJ1Y3R1cmUgYXMgYSBzdWItc3RydWN0dXJlIG9mIHRoaXMKLSAqIG9uZS4KLSAqCi0gKiBWZXJzaW9uIDIgc3VwcG9ydHMgZmxhc2ggYmFua3Mgb2YgZGlmZmVyZW50IHNpemVzOgotICogVGhlIGNhbGxlciBzcGVjaWZpZWQgdGhlIG51bWJlciBvZiBiYW5rcyBpdCBoYXMgcHJlYWxsb2NhdGVkCi0gKiAobnVtX2JhbmtzX2Rlc2MpCi0gKiBUaGUgRUMgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJhbmtzIGRlc2NyaWJpbmcgdGhlIGZsYXNoIG1lbW9yeS4KLSAqIEl0IGFkZHMgYmFua3MgZGVzY3JpcHRpb25zIHVwIHRvIG51bV9iYW5rc19kZXNjLgotICovCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZmxhc2hfaW5mb18xIHsKLQkvKiBWZXJzaW9uIDAgZmllbGRzOyBzZWUgYWJvdmUgZm9yIGRlc2NyaXB0aW9uICovCi0JdWludDMyX3QgZmxhc2hfc2l6ZTsKLQl1aW50MzJfdCB3cml0ZV9ibG9ja19zaXplOwotCXVpbnQzMl90IGVyYXNlX2Jsb2NrX3NpemU7Ci0JdWludDMyX3QgcHJvdGVjdF9ibG9ja19zaXplOwotCi0JLyogVmVyc2lvbiAxIGFkZHMgdGhlc2UgZmllbGRzOiAqLwotCXVpbnQzMl90IHdyaXRlX2lkZWFsX3NpemU7Ci0JdWludDMyX3QgZmxhZ3M7Ci19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX2luZm9fMiB7Ci0JLyogTnVtYmVyIG9mIGJhbmtzIHRvIGRlc2NyaWJlICovCi0JdWludDE2X3QgbnVtX2JhbmtzX2Rlc2M7Ci0JLyogUmVzZXJ2ZWQ7IHNldCAwOyBpZ25vcmUgb24gcmVhZCAqLwotCXVpbnQ4X3QgcmVzZXJ2ZWRbMl07Ci19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfZmxhc2hfYmFuayB7Ci0JLyogTnVtYmVyIG9mIHNlY3RvciBpcyBpbiB0aGlzIGJhbmsuICovCi0JdWludDE2X3QgY291bnQ7Ci0JLyogU2l6ZSBpbiBwb3dlciBvZiAyIG9mIGVhY2ggc2VjdG9yICg4IC0tPiAyNTYgYnl0ZXMpICovCi0JdWludDhfdCBzaXplX2V4cDsKLQkvKiBNaW5pbWFsIHdyaXRlIHNpemUgZm9yIHRoZSBzZWN0b3JzIGluIHRoaXMgYmFuayAqLwotCXVpbnQ4X3Qgd3JpdGVfc2l6ZV9leHA7Ci0JLyogRXJhc2Ugc2l6ZSBmb3IgdGhlIHNlY3RvcnMgaW4gdGhpcyBiYW5rICovCi0JdWludDhfdCBlcmFzZV9zaXplX2V4cDsKLQkvKiBTaXplIGZvciB3cml0ZSBwcm90ZWN0aW9uLCB1c3VhbGx5IGlkZW50aWNhbCB0byBlcmFzZSBzaXplLiAqLwotCXVpbnQ4X3QgcHJvdGVjdF9zaXplX2V4cDsKLQkvKiBSZXNlcnZlZDsgc2V0IDA7IGlnbm9yZSBvbiByZWFkICovCi0JdWludDhfdCByZXNlcnZlZFsyXTsKLX07Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9mbGFzaF9pbmZvXzIgewotCS8qIFRvdGFsIGZsYXNoIGluIHRoZSBFQy4gKi8KLQl1aW50MzJfdCBmbGFzaF9zaXplOwotCS8qIEZsYWdzOyBzZWUgRUNfRkxBU0hfSU5GT18qICovCi0JdWludDMyX3QgZmxhZ3M7Ci0JLyogTWF4aW11bSBzaXplIHRvIHVzZSB0byBzZW5kIGRhdGEgdG8gd3JpdGUgdG8gdGhlIEVDLiAqLwotCXVpbnQzMl90IHdyaXRlX2lkZWFsX3NpemU7Ci0JLyogTnVtYmVyIG9mIGJhbmtzIHByZXNlbnQgaW4gdGhlIEVDLiAqLwotCXVpbnQxNl90IG51bV9iYW5rc190b3RhbDsKLQkvKiBOdW1iZXIgb2YgYmFua3MgZGVzY3JpYmVkIGluIGJhbmtzIGFycmF5LiAqLwotCXVpbnQxNl90IG51bV9iYW5rc19kZXNjOwotCXN0cnVjdCBlY19mbGFzaF9iYW5rIGJhbmtzWzBdOwotfSBfX2VjX2FsaWduNDsKLQotLyoKLSAqIFJlYWQgZmxhc2gKLSAqCi0gKiBSZXNwb25zZSBpcyBwYXJhbXMuc2l6ZSBieXRlcyBvZiBkYXRhLgotICovCi0jZGVmaW5lIEVDX0NNRF9GTEFTSF9SRUFEIDB4MDAxMQotCi0vKioKLSAqIHN0cnVjdCBlY19wYXJhbXNfZmxhc2hfcmVhZCAtIFBhcmFtZXRlcnMgZm9yIHRoZSBmbGFzaCByZWFkIGNvbW1hbmQuCi0gKiBAb2Zmc2V0OiBCeXRlIG9mZnNldCB0byByZWFkLgotICogQHNpemU6IFNpemUgdG8gcmVhZCBpbiBieXRlcy4KLSAqLwotc3RydWN0IGVjX3BhcmFtc19mbGFzaF9yZWFkIHsKLQl1aW50MzJfdCBvZmZzZXQ7Ci0JdWludDMyX3Qgc2l6ZTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qIFdyaXRlIGZsYXNoICovCi0jZGVmaW5lIEVDX0NNRF9GTEFTSF9XUklURSAweDAwMTIKLSNkZWZpbmUgRUNfVkVSX0ZMQVNIX1dSSVRFIDEKLQotLyogVmVyc2lvbiAwIG9mIHRoZSBmbGFzaCBjb21tYW5kIHN1cHBvcnRlZCBvbmx5IDY0IGJ5dGVzIG9mIGRhdGEgKi8KLSNkZWZpbmUgRUNfRkxBU0hfV1JJVEVfVkVSMF9TSVpFIDY0Ci0KLS8qKgotICogc3RydWN0IGVjX3BhcmFtc19mbGFzaF93cml0ZSAtIFBhcmFtZXRlcnMgZm9yIHRoZSBmbGFzaCB3cml0ZSBjb21tYW5kLgotICogQG9mZnNldDogQnl0ZSBvZmZzZXQgdG8gd3JpdGUuCi0gKiBAc2l6ZTogU2l6ZSB0byB3cml0ZSBpbiBieXRlcy4KLSAqLwotc3RydWN0IGVjX3BhcmFtc19mbGFzaF93cml0ZSB7Ci0JdWludDMyX3Qgb2Zmc2V0OwotCXVpbnQzMl90IHNpemU7Ci0JLyogRm9sbG93ZWQgYnkgZGF0YSB0byB3cml0ZSAqLwotfSBfX2VjX2FsaWduNDsKLQotLyogRXJhc2UgZmxhc2ggKi8KLSNkZWZpbmUgRUNfQ01EX0ZMQVNIX0VSQVNFIDB4MDAxMwotCi0vKioKLSAqIHN0cnVjdCBlY19wYXJhbXNfZmxhc2hfZXJhc2UgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZmxhc2ggZXJhc2UgY29tbWFuZCwgdjAuCi0gKiBAb2Zmc2V0OiBCeXRlIG9mZnNldCB0byBlcmFzZS4KLSAqIEBzaXplOiBTaXplIHRvIGVyYXNlIGluIGJ5dGVzLgotICovCi1zdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX2VyYXNlIHsKLQl1aW50MzJfdCBvZmZzZXQ7Ci0JdWludDMyX3Qgc2l6ZTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qCi0gKiB2MSBhZGQgYXN5bmMgZXJhc2U6Ci0gKiBzdWJjb21tYW5kcyBjYW4gcmV0dXJuczoKLSAqIEVDX1JFU19TVUNDRVNTIDogZXJhc2VkIChzZWUgRVJBU0VfU0VDVE9SX0FTWU5DIGNhc2UgYmVsb3cpLgotICogRUNfUkVTX0lOVkFMSURfUEFSQU0gOiBvZmZzZXQvc2l6ZSBhcmUgbm90IGFsaWduZWQgb24gYSBlcmFzZSBib3VuZGFyeS4KLSAqIEVDX1JFU19FUlJPUiA6IG90aGVyIGVycm9ycy4KLSAqIEVDX1JFU19CVVNZIDogYW4gZXhpc3RpbmcgZXJhc2Ugb3BlcmF0aW9uIGlzIGluIHByb2dyZXNzLgotICogRUNfUkVTX0FDQ0VTU19ERU5JRUQ6IFRyeWluZyB0byBlcmFzZSBydW5uaW5nIGltYWdlLgotICoKLSAqIFdoZW4gRVJBU0VfU0VDVE9SX0FTWU5DIHJldHVybnMgRUNfUkVTX1NVQ0NFU1MsIHRoZSBvcGVyYXRpb24gaXMganVzdAotICogcHJvcGVybHkgcXVldWVkLiBUaGUgdXNlciBtdXN0IGNhbGwgRVJBU0VfR0VUX1JFU1VMVCBzdWJjb21tYW5kIHRvIGdldAotICogdGhlIHByb3BlciByZXN1bHQuCi0gKiBXaGVuIEVSQVNFX0dFVF9SRVNVTFQgcmV0dXJucyBFQ19SRVNfQlVTWSwgdGhlIGNhbGxlciBtdXN0IHdhaXQgYW5kIHNlbmQKLSAqIEVSQVNFX0dFVF9SRVNVTFQgYWdhaW4gdG8gZ2V0IHRoZSByZXN1bHQgb2YgRVJBU0VfU0VDVE9SX0FTWU5DLgotICogRVJBU0VfR0VUX1JFU1VMVCBjb21tYW5kIG1heSB0aW1lb3V0IG9uIEVDIHdoZXJlIGZsYXNoIGFjY2VzcyBpcyBub3QKLSAqIHBlcm1pdHRlZCB3aGlsZSBlcmFzaW5nLiAoRm9yIGluc3RhbmNlLCBTVE0zMkY0KS4KLSAqLwotZW51bSBlY19mbGFzaF9lcmFzZV9jbWQgewotCUZMQVNIX0VSQVNFX1NFQ1RPUiwgICAgIC8qIEVyYXNlIGFuZCB3YWl0IGZvciByZXN1bHQgKi8KLQlGTEFTSF9FUkFTRV9TRUNUT1JfQVNZTkMsICAvKiBFcmFzZSBhbmQgcmV0dXJuIGltbWVkaWF0ZWx5LiAqLwotCUZMQVNIX0VSQVNFX0dFVF9SRVNVTFQsICAvKiBBc2sgZm9yIGxhc3QgZXJhc2UgcmVzdWx0ICovCi19OwotCi0vKioKLSAqIHN0cnVjdCBlY19wYXJhbXNfZmxhc2hfZXJhc2VfdjEgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZmxhc2ggZXJhc2UgY29tbWFuZCwgdjEuCi0gKiBAY21kOiBPbmUgb2YgZWNfZmxhc2hfZXJhc2VfY21kLgotICogQHJlc2VydmVkOiBQYWQgYnl0ZTsgY3VycmVudGx5IGFsd2F5cyBjb250YWlucyAwLgotICogQGZsYWc6IE5vIGZsYWdzIGRlZmluZWQgeWV0OyBzZXQgdG8gMC4KLSAqIEBwYXJhbXM6IFNhbWUgYXMgdjAgcGFyYW1ldGVycy4KLSAqLwotc3RydWN0IGVjX3BhcmFtc19mbGFzaF9lcmFzZV92MSB7Ci0JdWludDhfdCAgY21kOwotCXVpbnQ4X3QgIHJlc2VydmVkOwotCXVpbnQxNl90IGZsYWc7Ci0Jc3RydWN0IGVjX3BhcmFtc19mbGFzaF9lcmFzZSBwYXJhbXM7Ci19IF9fZWNfYWxpZ240OwotCi0vKgotICogR2V0L3NldCBmbGFzaCBwcm90ZWN0aW9uLgotICoKLSAqIElmIG1hc2shPTAsIHNldHMvY2xlYXIgdGhlIHJlcXVlc3RlZCBiaXRzIG9mIGZsYWdzLiAgRGVwZW5kaW5nIG9uIHRoZQotICogZmlybXdhcmUgd3JpdGUgcHJvdGVjdCBHUElPLCBub3QgYWxsIGZsYWdzIHdpbGwgdGFrZSBlZmZlY3QgaW1tZWRpYXRlbHk7Ci0gKiBzb21lIGZsYWdzIHJlcXVpcmUgYSBzdWJzZXF1ZW50IGhhcmQgcmVzZXQgdG8gdGFrZSBlZmZlY3QuICBDaGVjayB0aGUKLSAqIHJldHVybmVkIGZsYWdzIGJpdHMgdG8gc2VlIHdoYXQgYWN0dWFsbHkgaGFwcGVuZWQuCi0gKgotICogSWYgbWFzaz0wLCBzaW1wbHkgcmV0dXJucyB0aGUgY3VycmVudCBmbGFncyBzdGF0ZS4KLSAqLwotI2RlZmluZSBFQ19DTURfRkxBU0hfUFJPVEVDVCAweDAwMTUKLSNkZWZpbmUgRUNfVkVSX0ZMQVNIX1BST1RFQ1QgMSAgLyogQ29tbWFuZCB2ZXJzaW9uIDEgKi8KLQotLyogRmxhZ3MgZm9yIGZsYXNoIHByb3RlY3Rpb24gKi8KLS8qIFJPIGZsYXNoIGNvZGUgcHJvdGVjdGVkIHdoZW4gdGhlIEVDIGJvb3RzICovCi0jZGVmaW5lIEVDX0ZMQVNIX1BST1RFQ1RfUk9fQVRfQk9PVCAgICAgICAgIEJJVCgwKQotLyoKLSAqIFJPIGZsYXNoIGNvZGUgcHJvdGVjdGVkIG5vdy4gIElmIHRoaXMgYml0IGlzIHNldCwgYXQtYm9vdCBzdGF0dXMgY2Fubm90Ci0gKiBiZSBjaGFuZ2VkLgotICovCi0jZGVmaW5lIEVDX0ZMQVNIX1BST1RFQ1RfUk9fTk9XICAgICAgICAgICAgIEJJVCgxKQotLyogRW50aXJlIGZsYXNoIGNvZGUgcHJvdGVjdGVkIG5vdywgdW50aWwgcmVib290LiAqLwotI2RlZmluZSBFQ19GTEFTSF9QUk9URUNUX0FMTF9OT1cgICAgICAgICAgICBCSVQoMikKLS8qIEZsYXNoIHdyaXRlIHByb3RlY3QgR1BJTyBpcyBhc3NlcnRlZCBub3cgKi8KLSNkZWZpbmUgRUNfRkxBU0hfUFJPVEVDVF9HUElPX0FTU0VSVEVEICAgICAgQklUKDMpCi0vKiBFcnJvciAtIGF0IGxlYXN0IG9uZSBiYW5rIG9mIGZsYXNoIGlzIHN0dWNrIGxvY2tlZCwgYW5kIGNhbm5vdCBiZSB1bmxvY2tlZCAqLwotI2RlZmluZSBFQ19GTEFTSF9QUk9URUNUX0VSUk9SX1NUVUNLICAgICAgICBCSVQoNCkKLS8qCi0gKiBFcnJvciAtIGZsYXNoIHByb3RlY3Rpb24gaXMgaW4gaW5jb25zaXN0ZW50IHN0YXRlLiAgQXQgbGVhc3Qgb25lIGJhbmsgb2YKLSAqIGZsYXNoIHdoaWNoIHNob3VsZCBiZSBwcm90ZWN0ZWQgaXMgbm90IHByb3RlY3RlZC4gIFVzdWFsbHkgZml4ZWQgYnkKLSAqIHJlLXJlcXVlc3RpbmcgdGhlIGRlc2lyZWQgZmxhZ3MsIG9yIGJ5IGEgaGFyZCByZXNldCBpZiB0aGF0IGZhaWxzLgotICovCi0jZGVmaW5lIEVDX0ZMQVNIX1BST1RFQ1RfRVJST1JfSU5DT05TSVNURU5UIEJJVCg1KQotLyogRW50aXJlIGZsYXNoIGNvZGUgcHJvdGVjdGVkIHdoZW4gdGhlIEVDIGJvb3RzICovCi0jZGVmaW5lIEVDX0ZMQVNIX1BST1RFQ1RfQUxMX0FUX0JPT1QgICAgICAgIEJJVCg2KQotLyogUlcgZmxhc2ggY29kZSBwcm90ZWN0ZWQgd2hlbiB0aGUgRUMgYm9vdHMgKi8KLSNkZWZpbmUgRUNfRkxBU0hfUFJPVEVDVF9SV19BVF9CT09UICAgICAgICAgQklUKDcpCi0vKiBSVyBmbGFzaCBjb2RlIHByb3RlY3RlZCBub3cuICovCi0jZGVmaW5lIEVDX0ZMQVNIX1BST1RFQ1RfUldfTk9XICAgICAgICAgICAgIEJJVCg4KQotLyogUm9sbGJhY2sgaW5mb3JtYXRpb24gZmxhc2ggcmVnaW9uIHByb3RlY3RlZCB3aGVuIHRoZSBFQyBib290cyAqLwotI2RlZmluZSBFQ19GTEFTSF9QUk9URUNUX1JPTExCQUNLX0FUX0JPT1QgICBCSVQoOSkKLS8qIFJvbGxiYWNrIGluZm9ybWF0aW9uIGZsYXNoIHJlZ2lvbiBwcm90ZWN0ZWQgbm93ICovCi0jZGVmaW5lIEVDX0ZMQVNIX1BST1RFQ1RfUk9MTEJBQ0tfTk9XICAgICAgIEJJVCgxMCkKLQotCi0vKioKLSAqIHN0cnVjdCBlY19wYXJhbXNfZmxhc2hfcHJvdGVjdCAtIFBhcmFtZXRlcnMgZm9yIHRoZSBmbGFzaCBwcm90ZWN0IGNvbW1hbmQuCi0gKiBAbWFzazogQml0cyBpbiBmbGFncyB0byBhcHBseS4KLSAqIEBmbGFnczogTmV3IGZsYWdzIHRvIGFwcGx5LgotICovCi1zdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX3Byb3RlY3QgewotCXVpbnQzMl90IG1hc2s7Ci0JdWludDMyX3QgZmxhZ3M7Ci19IF9fZWNfYWxpZ240OwotCi0vKioKLSAqIHN0cnVjdCBlY19yZXNwb25zZV9mbGFzaF9wcm90ZWN0IC0gUmVzcG9uc2UgdG8gdGhlIGZsYXNoIHByb3RlY3QgY29tbWFuZC4KLSAqIEBmbGFnczogQ3VycmVudCB2YWx1ZSBvZiBmbGFzaCBwcm90ZWN0IGZsYWdzLgotICogQHZhbGlkX2ZsYWdzOiBGbGFncyB3aGljaCBhcmUgdmFsaWQgb24gdGhpcyBwbGF0Zm9ybS4gVGhpcyBhbGxvd3MgdGhlCi0gKiAgICAgICAgICAgICAgIGNhbGxlciB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGZsYWdzIHdoaWNoIGFyZW4ndCBzZXQgdnMuIGZsYWdzCi0gKiAgICAgICAgICAgICAgIHdoaWNoIGNhbid0IGJlIHNldCBvbiB0aGlzIHBsYXRmb3JtLgotICogQHdyaXRhYmxlX2ZsYWdzOiBGbGFncyB3aGljaCBjYW4gYmUgY2hhbmdlZCBnaXZlbiB0aGUgY3VycmVudCBwcm90ZWN0aW9uCi0gKiAgICAgICAgICAgICAgICAgIHN0YXRlLgotICovCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZmxhc2hfcHJvdGVjdCB7Ci0JdWludDMyX3QgZmxhZ3M7Ci0JdWludDMyX3QgdmFsaWRfZmxhZ3M7Ci0JdWludDMyX3Qgd3JpdGFibGVfZmxhZ3M7Ci19IF9fZWNfYWxpZ240OwotCi0vKgotICogTm90ZTogY29tbWFuZHMgMHgxNCAtIDB4MTkgdmVyc2lvbiAwIHdlcmUgb2xkIGNvbW1hbmRzIHRvIGdldC9zZXQgZmxhc2gKLSAqIHdyaXRlIHByb3RlY3QuICBUaGVzZSBjb21tYW5kcyBtYXkgYmUgcmV1c2VkIHdpdGggdmVyc2lvbiA+IDAuCi0gKi8KLQotLyogR2V0IHRoZSByZWdpb24gb2Zmc2V0L3NpemUgKi8KLSNkZWZpbmUgRUNfQ01EX0ZMQVNIX1JFR0lPTl9JTkZPIDB4MDAxNgotI2RlZmluZSBFQ19WRVJfRkxBU0hfUkVHSU9OX0lORk8gMQotCi1lbnVtIGVjX2ZsYXNoX3JlZ2lvbiB7Ci0JLyogUmVnaW9uIHdoaWNoIGhvbGRzIHJlYWQtb25seSBFQyBpbWFnZSAqLwotCUVDX0ZMQVNIX1JFR0lPTl9STyA9IDAsCi0JLyoKLQkgKiBSZWdpb24gd2hpY2ggaG9sZHMgYWN0aXZlIFJXIGltYWdlLiAnQWN0aXZlJyBpcyBkaWZmZXJlbnQgZnJvbQotCSAqICdydW5uaW5nJy4gQWN0aXZlIG1lYW5zICdzY2hlZHVsZWQtdG8tcnVuJy4gU2luY2UgUk8gaW1hZ2UgYWx3YXlzCi0JICogc2NoZWR1bGVkIHRvIHJ1biwgYWN0aXZlL25vbi1hY3RpdmUgYXBwbGllcyBvbmx5IHRvIFJXIGltYWdlcyAoZm9yCi0JICogdGhlIHNhbWUgcmVhc29uICd1cGRhdGUnIGFwcGxpZXMgb25seSB0byBSVyBpbWFnZXMuIEl0J3MgYSBzdGF0ZSBvZgotCSAqIGFuIGltYWdlIG9uIGEgZmxhc2guIFJ1bm5pbmcgaW1hZ2UgY2FuIGJlIFJPLCBSV19BLCBSV19CIGJ1dCBhY3RpdmUKLQkgKiBpbWFnZSBjYW4gb25seSBiZSBSV19BIG9yIFJXX0IuIEluIHJlY292ZXJ5IG1vZGUsIGFuIGFjdGl2ZSBSVyBpbWFnZQotCSAqIGRvZXNuJ3QgZW50ZXIgJ3J1bm5pbmcnIHN0YXRlIGJ1dCBpdCdzIHN0aWxsIGFjdGl2ZSBvbiBhIGZsYXNoLgotCSAqLwotCUVDX0ZMQVNIX1JFR0lPTl9BQ1RJVkUsCi0JLyoKLQkgKiBSZWdpb24gd2hpY2ggc2hvdWxkIGJlIHdyaXRlLXByb3RlY3RlZCBpbiB0aGUgZmFjdG9yeSAoYSBzdXBlcnNldCBvZgotCSAqIEVDX0ZMQVNIX1JFR0lPTl9STykKLQkgKi8KLQlFQ19GTEFTSF9SRUdJT05fV1BfUk8sCi0JLyogUmVnaW9uIHdoaWNoIGhvbGRzIHVwZGF0YWJsZSAobm9uLWFjdGl2ZSkgUlcgaW1hZ2UgKi8KLQlFQ19GTEFTSF9SRUdJT05fVVBEQVRFLAotCS8qIE51bWJlciBvZiByZWdpb25zICovCi0JRUNfRkxBU0hfUkVHSU9OX0NPVU5ULAotfTsKLS8qCi0gKiAnUlcnIGlzIHZhZ3VlIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBSVyBpbWFnZXM7IHdlIG1lYW4gdGhlIGFjdGl2ZSBvbmUsCi0gKiBzbyB0aGUgb2xkIGNvbnN0YW50IGlzIGRlcHJlY2F0ZWQuCi0gKi8KLSNkZWZpbmUgRUNfRkxBU0hfUkVHSU9OX1JXIEVDX0ZMQVNIX1JFR0lPTl9BQ1RJVkUKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX3JlZ2lvbl9pbmZvIC0gUGFyYW1ldGVycyBmb3IgdGhlIGZsYXNoIHJlZ2lvbiBpbmZvCi0gKiAgICAgICAgIGNvbW1hbmQuCi0gKiBAcmVnaW9uOiBGbGFzaCByZWdpb247IHNlZSBFQ19GTEFTSF9SRUdJT05fKgotICovCi1zdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX3JlZ2lvbl9pbmZvIHsKLQl1aW50MzJfdCByZWdpb247Ci19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZmxhc2hfcmVnaW9uX2luZm8gewotCXVpbnQzMl90IG9mZnNldDsKLQl1aW50MzJfdCBzaXplOwotfSBfX2VjX2FsaWduNDsKLQotLyogUmVhZC93cml0ZSBWYk52Q29udGV4dCAqLwotI2RlZmluZSBFQ19DTURfVkJOVl9DT05URVhUIDB4MDAxNwotI2RlZmluZSBFQ19WRVJfVkJOVl9DT05URVhUIDEKLSNkZWZpbmUgRUNfVkJOVl9CTE9DS19TSVpFIDE2Ci0KLWVudW0gZWNfdmJudmNvbnRleHRfb3AgewotCUVDX1ZCTlZfQ09OVEVYVF9PUF9SRUFELAotCUVDX1ZCTlZfQ09OVEVYVF9PUF9XUklURSwKLX07Ci0KLXN0cnVjdCBlY19wYXJhbXNfdmJudmNvbnRleHQgewotCXVpbnQzMl90IG9wOwotCXVpbnQ4X3QgYmxvY2tbRUNfVkJOVl9CTE9DS19TSVpFXTsKLX0gX19lY19hbGlnbjQ7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV92Ym52Y29udGV4dCB7Ci0JdWludDhfdCBibG9ja1tFQ19WQk5WX0JMT0NLX1NJWkVdOwotfSBfX2VjX2FsaWduNDsKLQotCi0vKiBHZXQgU1BJIGZsYXNoIGluZm9ybWF0aW9uICovCi0jZGVmaW5lIEVDX0NNRF9GTEFTSF9TUElfSU5GTyAweDAwMTgKLQotc3RydWN0IGVjX3Jlc3BvbnNlX2ZsYXNoX3NwaV9pbmZvIHsKLQkvKiBKRURFQyBpbmZvIGZyb20gY29tbWFuZCAweDlGIChtYW51ZmFjdHVyZXIsIG1lbW9yeSB0eXBlLCBzaXplKSAqLwotCXVpbnQ4X3QgamVkZWNbM107Ci0KLQkvKiBQYWQgYnl0ZTsgY3VycmVudGx5IGFsd2F5cyBjb250YWlucyAwICovCi0JdWludDhfdCByZXNlcnZlZDA7Ci0KLQkvKiBNYW51ZmFjdHVyZXIgLyBkZXZpY2UgSUQgZnJvbSBjb21tYW5kIDB4OTAgKi8KLQl1aW50OF90IG1mcl9kZXZfaWRbMl07Ci0KLQkvKiBTdGF0dXMgcmVnaXN0ZXJzIGZyb20gY29tbWFuZCAweDA1IGFuZCAweDM1ICovCi0JdWludDhfdCBzcjEsIHNyMjsKLX0gX19lY19hbGlnbjE7Ci0KLQotLyogU2VsZWN0IGZsYXNoIGR1cmluZyBmbGFzaCBvcGVyYXRpb25zICovCi0jZGVmaW5lIEVDX0NNRF9GTEFTSF9TRUxFQ1QgMHgwMDE5Ci0KLS8qKgotICogc3RydWN0IGVjX3BhcmFtc19mbGFzaF9zZWxlY3QgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZmxhc2ggc2VsZWN0IGNvbW1hbmQuCi0gKiBAc2VsZWN0OiAxIHRvIHNlbGVjdCBmbGFzaCwgMCB0byBkZXNlbGVjdCBmbGFzaAotICovCi1zdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX3NlbGVjdCB7Ci0JdWludDhfdCBzZWxlY3Q7Ci19IF9fZWNfYWxpZ240OwotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIFBXTSBjb21tYW5kcyAqLwotCi0vKiBHZXQgZmFuIHRhcmdldCBSUE0gKi8KLSNkZWZpbmUgRUNfQ01EX1BXTV9HRVRfRkFOX1RBUkdFVF9SUE0gMHgwMDIwCi0KLXN0cnVjdCBlY19yZXNwb25zZV9wd21fZ2V0X2Zhbl9ycG0gewotCXVpbnQzMl90IHJwbTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qIFNldCB0YXJnZXQgZmFuIFJQTSAqLwotI2RlZmluZSBFQ19DTURfUFdNX1NFVF9GQU5fVEFSR0VUX1JQTSAweDAwMjEKLQotLyogVmVyc2lvbiAwIG9mIGlucHV0IHBhcmFtcyAqLwotc3RydWN0IGVjX3BhcmFtc19wd21fc2V0X2Zhbl90YXJnZXRfcnBtX3YwIHsKLQl1aW50MzJfdCBycG07Ci19IF9fZWNfYWxpZ240OwotCi0vKiBWZXJzaW9uIDEgb2YgaW5wdXQgcGFyYW1zICovCi1zdHJ1Y3QgZWNfcGFyYW1zX3B3bV9zZXRfZmFuX3RhcmdldF9ycG1fdjEgewotCXVpbnQzMl90IHJwbTsKLQl1aW50OF90IGZhbl9pZHg7Ci19IF9fZWNfYWxpZ25fc2l6ZTE7Ci0KLS8qIEdldCBrZXlib2FyZCBiYWNrbGlnaHQgKi8KLS8qIE9CU09MRVRFIC0gVXNlIEVDX0NNRF9QV01fU0VUX0RVVFkgKi8KLSNkZWZpbmUgRUNfQ01EX1BXTV9HRVRfS0VZQk9BUkRfQkFDS0xJR0hUIDB4MDAyMgotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfcHdtX2dldF9rZXlib2FyZF9iYWNrbGlnaHQgewotCXVpbnQ4X3QgcGVyY2VudDsKLQl1aW50OF90IGVuYWJsZWQ7Ci19IF9fZWNfYWxpZ24xOwotCi0vKiBTZXQga2V5Ym9hcmQgYmFja2xpZ2h0ICovCi0vKiBPQlNPTEVURSAtIFVzZSBFQ19DTURfUFdNX1NFVF9EVVRZICovCi0jZGVmaW5lIEVDX0NNRF9QV01fU0VUX0tFWUJPQVJEX0JBQ0tMSUdIVCAweDAwMjMKLQotc3RydWN0IGVjX3BhcmFtc19wd21fc2V0X2tleWJvYXJkX2JhY2tsaWdodCB7Ci0JdWludDhfdCBwZXJjZW50OwotfSBfX2VjX2FsaWduMTsKLQotLyogU2V0IHRhcmdldCBmYW4gUFdNIGR1dHkgY3ljbGUgKi8KLSNkZWZpbmUgRUNfQ01EX1BXTV9TRVRfRkFOX0RVVFkgMHgwMDI0Ci0KLS8qIFZlcnNpb24gMCBvZiBpbnB1dCBwYXJhbXMgKi8KLXN0cnVjdCBlY19wYXJhbXNfcHdtX3NldF9mYW5fZHV0eV92MCB7Ci0JdWludDMyX3QgcGVyY2VudDsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qIFZlcnNpb24gMSBvZiBpbnB1dCBwYXJhbXMgKi8KLXN0cnVjdCBlY19wYXJhbXNfcHdtX3NldF9mYW5fZHV0eV92MSB7Ci0JdWludDMyX3QgcGVyY2VudDsKLQl1aW50OF90IGZhbl9pZHg7Ci19IF9fZWNfYWxpZ25fc2l6ZTE7Ci0KLSNkZWZpbmUgRUNfQ01EX1BXTV9TRVRfRFVUWSAweDAwMjUKLS8qIDE2IGJpdCBkdXR5IGN5Y2xlLCAweGZmZmYgPSAxMDAlICovCi0jZGVmaW5lIEVDX1BXTV9NQVhfRFVUWSAweGZmZmYKLQotZW51bSBlY19wd21fdHlwZSB7Ci0JLyogQWxsIHR5cGVzLCBpbmRleGVkIGJ5IGJvYXJkLXNwZWNpZmljIGVudW0gcHdtX2NoYW5uZWwgKi8KLQlFQ19QV01fVFlQRV9HRU5FUklDID0gMCwKLQkvKiBLZXlib2FyZCBiYWNrbGlnaHQgKi8KLQlFQ19QV01fVFlQRV9LQl9MSUdIVCwKLQkvKiBEaXNwbGF5IGJhY2tsaWdodCAqLwotCUVDX1BXTV9UWVBFX0RJU1BMQVlfTElHSFQsCi0JRUNfUFdNX1RZUEVfQ09VTlQsCi19OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX3B3bV9zZXRfZHV0eSB7Ci0JdWludDE2X3QgZHV0eTsgICAgIC8qIER1dHkgY3ljbGUsIEVDX1BXTV9NQVhfRFVUWSA9IDEwMCUgKi8KLQl1aW50OF90IHB3bV90eXBlOyAgLyogZWNfcHdtX3R5cGUgKi8KLQl1aW50OF90IGluZGV4OyAgICAgLyogVHlwZS1zcGVjaWZpYyBpbmRleCwgb3IgMCBpZiB1bmlxdWUgKi8KLX0gX19lY19hbGlnbjQ7Ci0KLSNkZWZpbmUgRUNfQ01EX1BXTV9HRVRfRFVUWSAweDAwMjYKLQotc3RydWN0IGVjX3BhcmFtc19wd21fZ2V0X2R1dHkgewotCXVpbnQ4X3QgcHdtX3R5cGU7ICAvKiBlY19wd21fdHlwZSAqLwotCXVpbnQ4X3QgaW5kZXg7ICAgICAvKiBUeXBlLXNwZWNpZmljIGluZGV4LCBvciAwIGlmIHVuaXF1ZSAqLwotfSBfX2VjX2FsaWduMTsKLQotc3RydWN0IGVjX3Jlc3BvbnNlX3B3bV9nZXRfZHV0eSB7Ci0JdWludDE2X3QgZHV0eTsgICAgIC8qIER1dHkgY3ljbGUsIEVDX1BXTV9NQVhfRFVUWSA9IDEwMCUgKi8KLX0gX19lY19hbGlnbjI7Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCi0gKiBMaWdodGJhciBjb21tYW5kcy4gVGhpcyBsb29rcyB3b3JzZSB0aGFuIGl0IGlzLiBTaW5jZSB3ZSBvbmx5IHVzZSBvbmUgSE9TVAotICogY29tbWFuZCB0byBzYXkgInRhbGsgdG8gdGhlIGxpZ2h0YmFyIiwgd2UgcHV0IHRoZSAiYW5kIHRlbGwgaXQgdG8gZG8gWCIgcGFydAotICogaW50byBhIHN1YmNvbW1hbmQuIFdlJ2xsIG1ha2Ugc2VwYXJhdGUgc3RydWN0cyBmb3Igc3ViY29tbWFuZHMgd2l0aAotICogZGlmZmVyZW50IGlucHV0IGFyZ3MsIHNvIHRoYXQgd2Uga25vdyBob3cgbXVjaCB0byBleHBlY3QuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0xJR0hUQkFSX0NNRCAweDAwMjgKLQotc3RydWN0IHJnYl9zIHsKLQl1aW50OF90IHIsIGcsIGI7Ci19IF9fZWNfdG9kb191bnBhY2tlZDsKLQotI2RlZmluZSBMQl9CQVRURVJZX0xFVkVMUyA0Ci0KLS8qCi0gKiBMaXN0IG9mIHR3ZWFrYWJsZSBwYXJhbWV0ZXJzLiBOT1RFOiBJdCdzIF9fcGFja2VkIHNvIGl0IGNhbiBiZSBzZW50IGluIGEKLSAqIGhvc3QgY29tbWFuZCwgYnV0IHRoZSBhbGlnbm1lbnQgaXMgdGhlIHNhbWUgcmVnYXJkbGVzcy4gS2VlcCBpdCB0aGF0IHdheS4KLSAqLwotc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192MCB7Ci0JLyogVGltaW5nICovCi0JaW50MzJfdCBnb29nbGVfcmFtcF91cDsKLQlpbnQzMl90IGdvb2dsZV9yYW1wX2Rvd247Ci0JaW50MzJfdCBzM3MwX3JhbXBfdXA7Ci0JaW50MzJfdCBzMF90aWNrX2RlbGF5WzJdOwkJLyogQUM9MC8xICovCi0JaW50MzJfdCBzMGFfdGlja19kZWxheVsyXTsJCS8qIEFDPTAvMSAqLwotCWludDMyX3QgczBzM19yYW1wX2Rvd247Ci0JaW50MzJfdCBzM19zbGVlcF9mb3I7Ci0JaW50MzJfdCBzM19yYW1wX3VwOwotCWludDMyX3QgczNfcmFtcF9kb3duOwotCi0JLyogT3NjaWxsYXRpb24gKi8KLQl1aW50OF90IG5ld19zMDsKLQl1aW50OF90IG9zY19taW5bMl07CQkJLyogQUM9MC8xICovCi0JdWludDhfdCBvc2NfbWF4WzJdOwkJCS8qIEFDPTAvMSAqLwotCXVpbnQ4X3Qgd19vZnNbMl07CQkJLyogQUM9MC8xICovCi0KLQkvKiBCcmlnaHRuZXNzIGxpbWl0cyBiYXNlZCBvbiB0aGUgYmFja2xpZ2h0IGFuZCBBQy4gKi8KLQl1aW50OF90IGJyaWdodF9ibF9vZmZfZml4ZWRbMl07CQkvKiBBQz0wLzEgKi8KLQl1aW50OF90IGJyaWdodF9ibF9vbl9taW5bMl07CQkvKiBBQz0wLzEgKi8KLQl1aW50OF90IGJyaWdodF9ibF9vbl9tYXhbMl07CQkvKiBBQz0wLzEgKi8KLQotCS8qIEJhdHRlcnkgbGV2ZWwgdGhyZXNob2xkcyAqLwotCXVpbnQ4X3QgYmF0dGVyeV90aHJlc2hvbGRbTEJfQkFUVEVSWV9MRVZFTFMgLSAxXTsKLQotCS8qIE1hcCBbQUNdW2JhdHRlcnlfbGV2ZWxdIHRvIGNvbG9yIGluZGV4ICovCi0JdWludDhfdCBzMF9pZHhbMl1bTEJfQkFUVEVSWV9MRVZFTFNdOwkvKiBBUCBpcyBydW5uaW5nICovCi0JdWludDhfdCBzM19pZHhbMl1bTEJfQkFUVEVSWV9MRVZFTFNdOwkvKiBBUCBpcyBzbGVlcGluZyAqLwotCi0JLyogQ29sb3IgcGFsZXR0ZSAqLwotCXN0cnVjdCByZ2JfcyBjb2xvcls4XTsJCQkvKiAwLTMgYXJlIEdvb2dsZSBjb2xvcnMgKi8KLX0gX19lY190b2RvX3BhY2tlZDsKLQotc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192MSB7Ci0JLyogVGltaW5nICovCi0JaW50MzJfdCBnb29nbGVfcmFtcF91cDsKLQlpbnQzMl90IGdvb2dsZV9yYW1wX2Rvd247Ci0JaW50MzJfdCBzM3MwX3JhbXBfdXA7Ci0JaW50MzJfdCBzMF90aWNrX2RlbGF5WzJdOwkJLyogQUM9MC8xICovCi0JaW50MzJfdCBzMGFfdGlja19kZWxheVsyXTsJCS8qIEFDPTAvMSAqLwotCWludDMyX3QgczBzM19yYW1wX2Rvd247Ci0JaW50MzJfdCBzM19zbGVlcF9mb3I7Ci0JaW50MzJfdCBzM19yYW1wX3VwOwotCWludDMyX3QgczNfcmFtcF9kb3duOwotCWludDMyX3QgczVfcmFtcF91cDsKLQlpbnQzMl90IHM1X3JhbXBfZG93bjsKLQlpbnQzMl90IHRhcF90aWNrX2RlbGF5OwotCWludDMyX3QgdGFwX2dhdGVfZGVsYXk7Ci0JaW50MzJfdCB0YXBfZGlzcGxheV90aW1lOwotCi0JLyogVGFwLWZvci1iYXR0ZXJ5IHBhcmFtcyAqLwotCXVpbnQ4X3QgdGFwX3BjdF9yZWQ7Ci0JdWludDhfdCB0YXBfcGN0X2dyZWVuOwotCXVpbnQ4X3QgdGFwX3NlZ19taW5fb247Ci0JdWludDhfdCB0YXBfc2VnX21heF9vbjsKLQl1aW50OF90IHRhcF9zZWdfb3NjOwotCXVpbnQ4X3QgdGFwX2lkeFszXTsKLQotCS8qIE9zY2lsbGF0aW9uICovCi0JdWludDhfdCBvc2NfbWluWzJdOwkJCS8qIEFDPTAvMSAqLwotCXVpbnQ4X3Qgb3NjX21heFsyXTsJCQkvKiBBQz0wLzEgKi8KLQl1aW50OF90IHdfb2ZzWzJdOwkJCS8qIEFDPTAvMSAqLwotCi0JLyogQnJpZ2h0bmVzcyBsaW1pdHMgYmFzZWQgb24gdGhlIGJhY2tsaWdodCBhbmQgQUMuICovCi0JdWludDhfdCBicmlnaHRfYmxfb2ZmX2ZpeGVkWzJdOwkJLyogQUM9MC8xICovCi0JdWludDhfdCBicmlnaHRfYmxfb25fbWluWzJdOwkJLyogQUM9MC8xICovCi0JdWludDhfdCBicmlnaHRfYmxfb25fbWF4WzJdOwkJLyogQUM9MC8xICovCi0KLQkvKiBCYXR0ZXJ5IGxldmVsIHRocmVzaG9sZHMgKi8KLQl1aW50OF90IGJhdHRlcnlfdGhyZXNob2xkW0xCX0JBVFRFUllfTEVWRUxTIC0gMV07Ci0KLQkvKiBNYXAgW0FDXVtiYXR0ZXJ5X2xldmVsXSB0byBjb2xvciBpbmRleCAqLwotCXVpbnQ4X3QgczBfaWR4WzJdW0xCX0JBVFRFUllfTEVWRUxTXTsJLyogQVAgaXMgcnVubmluZyAqLwotCXVpbnQ4X3QgczNfaWR4WzJdW0xCX0JBVFRFUllfTEVWRUxTXTsJLyogQVAgaXMgc2xlZXBpbmcgKi8KLQotCS8qIHM1OiBzaW5nbGUgY29sb3IgcHVsc2Ugb24gaW5oaWJpdGVkIHBvd2VyLXVwICovCi0JdWludDhfdCBzNV9pZHg7Ci0KLQkvKiBDb2xvciBwYWxldHRlICovCi0Jc3RydWN0IHJnYl9zIGNvbG9yWzhdOwkJCS8qIDAtMyBhcmUgR29vZ2xlIGNvbG9ycyAqLwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi0vKiBMaWdodGJhciBjb21tYW5kIHBhcmFtcyB2MgotICogY3JidWcuY29tLzQ2NzcxNgotICoKLSAqIGxpZ2h0YmFyX3Bhcm1zX3YxIHdhcyB0b28gYmlnIGZvciBpMmMsIHRoZXJlZm9yZSBpbiB2Miwgd2Ugc3BsaXQgdGhlbSB1cCBieQotICogbG9naWNhbCBncm91cHMgdG8gbWFrZSBpdCBtb3JlIG1hbmFnZWFibGUgKCA8IDEyMCBieXRlcykuCi0gKgotICogTk9URTogRWFjaCBvZiB0aGVzZSBncm91cHMgbXVzdCBiZSBsZXNzIHRoYW4gMTIwIGJ5dGVzLgotICovCi0KLXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfdGltaW5nIHsKLQkvKiBUaW1pbmcgKi8KLQlpbnQzMl90IGdvb2dsZV9yYW1wX3VwOwotCWludDMyX3QgZ29vZ2xlX3JhbXBfZG93bjsKLQlpbnQzMl90IHMzczBfcmFtcF91cDsKLQlpbnQzMl90IHMwX3RpY2tfZGVsYXlbMl07CQkvKiBBQz0wLzEgKi8KLQlpbnQzMl90IHMwYV90aWNrX2RlbGF5WzJdOwkJLyogQUM9MC8xICovCi0JaW50MzJfdCBzMHMzX3JhbXBfZG93bjsKLQlpbnQzMl90IHMzX3NsZWVwX2ZvcjsKLQlpbnQzMl90IHMzX3JhbXBfdXA7Ci0JaW50MzJfdCBzM19yYW1wX2Rvd247Ci0JaW50MzJfdCBzNV9yYW1wX3VwOwotCWludDMyX3QgczVfcmFtcF9kb3duOwotCWludDMyX3QgdGFwX3RpY2tfZGVsYXk7Ci0JaW50MzJfdCB0YXBfZ2F0ZV9kZWxheTsKLQlpbnQzMl90IHRhcF9kaXNwbGF5X3RpbWU7Ci19IF9fZWNfdG9kb19wYWNrZWQ7Ci0KLXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfdGFwIHsKLQkvKiBUYXAtZm9yLWJhdHRlcnkgcGFyYW1zICovCi0JdWludDhfdCB0YXBfcGN0X3JlZDsKLQl1aW50OF90IHRhcF9wY3RfZ3JlZW47Ci0JdWludDhfdCB0YXBfc2VnX21pbl9vbjsKLQl1aW50OF90IHRhcF9zZWdfbWF4X29uOwotCXVpbnQ4X3QgdGFwX3NlZ19vc2M7Ci0JdWludDhfdCB0YXBfaWR4WzNdOwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi1zdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX29zY2lsbGF0aW9uIHsKLQkvKiBPc2NpbGxhdGlvbiAqLwotCXVpbnQ4X3Qgb3NjX21pblsyXTsJCQkvKiBBQz0wLzEgKi8KLQl1aW50OF90IG9zY19tYXhbMl07CQkJLyogQUM9MC8xICovCi0JdWludDhfdCB3X29mc1syXTsJCQkvKiBBQz0wLzEgKi8KLX0gX19lY190b2RvX3BhY2tlZDsKLQotc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192Ml9icmlnaHRuZXNzIHsKLQkvKiBCcmlnaHRuZXNzIGxpbWl0cyBiYXNlZCBvbiB0aGUgYmFja2xpZ2h0IGFuZCBBQy4gKi8KLQl1aW50OF90IGJyaWdodF9ibF9vZmZfZml4ZWRbMl07CQkvKiBBQz0wLzEgKi8KLQl1aW50OF90IGJyaWdodF9ibF9vbl9taW5bMl07CQkvKiBBQz0wLzEgKi8KLQl1aW50OF90IGJyaWdodF9ibF9vbl9tYXhbMl07CQkvKiBBQz0wLzEgKi8KLX0gX19lY190b2RvX3BhY2tlZDsKLQotc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192Ml90aHJlc2hvbGRzIHsKLQkvKiBCYXR0ZXJ5IGxldmVsIHRocmVzaG9sZHMgKi8KLQl1aW50OF90IGJhdHRlcnlfdGhyZXNob2xkW0xCX0JBVFRFUllfTEVWRUxTIC0gMV07Ci19IF9fZWNfdG9kb19wYWNrZWQ7Ci0KLXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfY29sb3JzIHsKLQkvKiBNYXAgW0FDXVtiYXR0ZXJ5X2xldmVsXSB0byBjb2xvciBpbmRleCAqLwotCXVpbnQ4X3QgczBfaWR4WzJdW0xCX0JBVFRFUllfTEVWRUxTXTsJLyogQVAgaXMgcnVubmluZyAqLwotCXVpbnQ4X3QgczNfaWR4WzJdW0xCX0JBVFRFUllfTEVWRUxTXTsJLyogQVAgaXMgc2xlZXBpbmcgKi8KLQotCS8qIHM1OiBzaW5nbGUgY29sb3IgcHVsc2Ugb24gaW5oaWJpdGVkIHBvd2VyLXVwICovCi0JdWludDhfdCBzNV9pZHg7Ci0KLQkvKiBDb2xvciBwYWxldHRlICovCi0Jc3RydWN0IHJnYl9zIGNvbG9yWzhdOwkJCS8qIDAtMyBhcmUgR29vZ2xlIGNvbG9ycyAqLwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi0vKiBMaWdodGJhciBwcm9ncmFtLiAqLwotI2RlZmluZSBFQ19MQl9QUk9HX0xFTiAxOTIKLXN0cnVjdCBsaWdodGJhcl9wcm9ncmFtIHsKLQl1aW50OF90IHNpemU7Ci0JdWludDhfdCBkYXRhW0VDX0xCX1BST0dfTEVOXTsKLX0gX19lY190b2RvX3VucGFja2VkOwotCi1zdHJ1Y3QgZWNfcGFyYW1zX2xpZ2h0YmFyIHsKLQl1aW50OF90IGNtZDsJCSAgICAgIC8qIENvbW1hbmQgKHNlZSBlbnVtIGxpZ2h0YmFyX2NvbW1hbmQpICovCi0JdW5pb24gewotCQkvKgotCQkgKiBUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGhhdmUgbm8gYXJnczoKLQkJICoKLQkJICogZHVtcCwgb2ZmLCBvbiwgaW5pdCwgZ2V0X3NlcSwgZ2V0X3BhcmFtc192MCwgZ2V0X3BhcmFtc192MSwKLQkJICogdmVyc2lvbiwgZ2V0X2JyaWdodG5lc3MsIGdldF9kZW1vLCBzdXNwZW5kLCByZXN1bWUsCi0JCSAqIGdldF9wYXJhbXNfdjJfdGltaW5nLCBnZXRfcGFyYW1zX3YyX3RhcCwgZ2V0X3BhcmFtc192Ml9vc2MsCi0JCSAqIGdldF9wYXJhbXNfdjJfYnJpZ2h0LCBnZXRfcGFyYW1zX3YyX3RobGRzLAotCQkgKiBnZXRfcGFyYW1zX3YyX2NvbG9ycwotCQkgKgotCQkgKiBEb24ndCB1c2UgYW4gZW1wdHkgc3RydWN0LCBiZWNhdXNlIEMrKyBoYXRlcyB0aGF0LgotCQkgKi8KLQotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCXVpbnQ4X3QgbnVtOwotCQl9IHNldF9icmlnaHRuZXNzLCBzZXEsIGRlbW87Ci0KLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQl1aW50OF90IGN0cmwsIHJlZywgdmFsdWU7Ci0JCX0gcmVnOwotCi0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJdWludDhfdCBsZWQsIHJlZCwgZ3JlZW4sIGJsdWU7Ci0JCX0gc2V0X3JnYjsKLQotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCXVpbnQ4X3QgbGVkOwotCQl9IGdldF9yZ2I7Ci0KLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQl1aW50OF90IGVuYWJsZTsKLQkJfSBtYW51YWxfc3VzcGVuZF9jdHJsOwotCi0JCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjAgc2V0X3BhcmFtc192MDsKLQkJc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192MSBzZXRfcGFyYW1zX3YxOwotCi0JCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfdGltaW5nIHNldF92MnBhcl90aW1pbmc7Ci0JCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfdGFwIHNldF92MnBhcl90YXA7Ci0JCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfb3NjaWxsYXRpb24gc2V0X3YycGFyX29zYzsKLQkJc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192Ml9icmlnaHRuZXNzIHNldF92MnBhcl9icmlnaHQ7Ci0JCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfdGhyZXNob2xkcyBzZXRfdjJwYXJfdGhsZHM7Ci0JCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfY29sb3JzIHNldF92MnBhcl9jb2xvcnM7Ci0KLQkJc3RydWN0IGxpZ2h0YmFyX3Byb2dyYW0gc2V0X3Byb2dyYW07Ci0JfTsKLX0gX19lY190b2RvX3BhY2tlZDsKLQotc3RydWN0IGVjX3Jlc3BvbnNlX2xpZ2h0YmFyIHsKLQl1bmlvbiB7Ci0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQkJdWludDhfdCByZWc7Ci0JCQkJdWludDhfdCBpYzA7Ci0JCQkJdWludDhfdCBpYzE7Ci0JCQl9IHZhbHNbMjNdOwotCQl9IGR1bXA7Ci0KLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQl1aW50OF90IG51bTsKLQkJfSBnZXRfc2VxLCBnZXRfYnJpZ2h0bmVzcywgZ2V0X2RlbW87Ci0KLQkJc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192MCBnZXRfcGFyYW1zX3YwOwotCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YxIGdldF9wYXJhbXNfdjE7Ci0KLQotCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX3RpbWluZyBnZXRfcGFyYW1zX3YyX3RpbWluZzsKLQkJc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192Ml90YXAgZ2V0X3BhcmFtc192Ml90YXA7Ci0JCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfb3NjaWxsYXRpb24gZ2V0X3BhcmFtc192Ml9vc2M7Ci0JCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfYnJpZ2h0bmVzcyBnZXRfcGFyYW1zX3YyX2JyaWdodDsKLQkJc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192Ml90aHJlc2hvbGRzIGdldF9wYXJhbXNfdjJfdGhsZHM7Ci0JCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfY29sb3JzIGdldF9wYXJhbXNfdjJfY29sb3JzOwotCi0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJdWludDMyX3QgbnVtOwotCQkJdWludDMyX3QgZmxhZ3M7Ci0JCX0gdmVyc2lvbjsKLQotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCXVpbnQ4X3QgcmVkLCBncmVlbiwgYmx1ZTsKLQkJfSBnZXRfcmdiOwotCi0JCS8qCi0JCSAqIFRoZSBmb2xsb3dpbmcgY29tbWFuZHMgaGF2ZSBubyByZXNwb25zZToKLQkJICoKLQkJICogb2ZmLCBvbiwgaW5pdCwgc2V0X2JyaWdodG5lc3MsIHNlcSwgcmVnLCBzZXRfcmdiLCBkZW1vLAotCQkgKiBzZXRfcGFyYW1zX3YwLCBzZXRfcGFyYW1zX3YxLCBzZXRfcHJvZ3JhbSwKLQkJICogbWFudWFsX3N1c3BlbmRfY3RybCwgc3VzcGVuZCwgcmVzdW1lLCBzZXRfdjJwYXJfdGltaW5nLAotCQkgKiBzZXRfdjJwYXJfdGFwLCBzZXRfdjJwYXJfb3NjLCBzZXRfdjJwYXJfYnJpZ2h0LAotCQkgKiBzZXRfdjJwYXJfdGhsZHMsIHNldF92MnBhcl9jb2xvcnMKLQkJICovCi0JfTsKLX0gX19lY190b2RvX3BhY2tlZDsKLQotLyogTGlnaHRiYXIgY29tbWFuZHMgKi8KLWVudW0gbGlnaHRiYXJfY29tbWFuZCB7Ci0JTElHSFRCQVJfQ01EX0RVTVAgPSAwLAotCUxJR0hUQkFSX0NNRF9PRkYgPSAxLAotCUxJR0hUQkFSX0NNRF9PTiA9IDIsCi0JTElHSFRCQVJfQ01EX0lOSVQgPSAzLAotCUxJR0hUQkFSX0NNRF9TRVRfQlJJR0hUTkVTUyA9IDQsCi0JTElHSFRCQVJfQ01EX1NFUSA9IDUsCi0JTElHSFRCQVJfQ01EX1JFRyA9IDYsCi0JTElHSFRCQVJfQ01EX1NFVF9SR0IgPSA3LAotCUxJR0hUQkFSX0NNRF9HRVRfU0VRID0gOCwKLQlMSUdIVEJBUl9DTURfREVNTyA9IDksCi0JTElHSFRCQVJfQ01EX0dFVF9QQVJBTVNfVjAgPSAxMCwKLQlMSUdIVEJBUl9DTURfU0VUX1BBUkFNU19WMCA9IDExLAotCUxJR0hUQkFSX0NNRF9WRVJTSU9OID0gMTIsCi0JTElHSFRCQVJfQ01EX0dFVF9CUklHSFRORVNTID0gMTMsCi0JTElHSFRCQVJfQ01EX0dFVF9SR0IgPSAxNCwKLQlMSUdIVEJBUl9DTURfR0VUX0RFTU8gPSAxNSwKLQlMSUdIVEJBUl9DTURfR0VUX1BBUkFNU19WMSA9IDE2LAotCUxJR0hUQkFSX0NNRF9TRVRfUEFSQU1TX1YxID0gMTcsCi0JTElHSFRCQVJfQ01EX1NFVF9QUk9HUkFNID0gMTgsCi0JTElHSFRCQVJfQ01EX01BTlVBTF9TVVNQRU5EX0NUUkwgPSAxOSwKLQlMSUdIVEJBUl9DTURfU1VTUEVORCA9IDIwLAotCUxJR0hUQkFSX0NNRF9SRVNVTUUgPSAyMSwKLQlMSUdIVEJBUl9DTURfR0VUX1BBUkFNU19WMl9USU1JTkcgPSAyMiwKLQlMSUdIVEJBUl9DTURfU0VUX1BBUkFNU19WMl9USU1JTkcgPSAyMywKLQlMSUdIVEJBUl9DTURfR0VUX1BBUkFNU19WMl9UQVAgPSAyNCwKLQlMSUdIVEJBUl9DTURfU0VUX1BBUkFNU19WMl9UQVAgPSAyNSwKLQlMSUdIVEJBUl9DTURfR0VUX1BBUkFNU19WMl9PU0NJTExBVElPTiA9IDI2LAotCUxJR0hUQkFSX0NNRF9TRVRfUEFSQU1TX1YyX09TQ0lMTEFUSU9OID0gMjcsCi0JTElHSFRCQVJfQ01EX0dFVF9QQVJBTVNfVjJfQlJJR0hUTkVTUyA9IDI4LAotCUxJR0hUQkFSX0NNRF9TRVRfUEFSQU1TX1YyX0JSSUdIVE5FU1MgPSAyOSwKLQlMSUdIVEJBUl9DTURfR0VUX1BBUkFNU19WMl9USFJFU0hPTERTID0gMzAsCi0JTElHSFRCQVJfQ01EX1NFVF9QQVJBTVNfVjJfVEhSRVNIT0xEUyA9IDMxLAotCUxJR0hUQkFSX0NNRF9HRVRfUEFSQU1TX1YyX0NPTE9SUyA9IDMyLAotCUxJR0hUQkFSX0NNRF9TRVRfUEFSQU1TX1YyX0NPTE9SUyA9IDMzLAotCUxJR0hUQkFSX05VTV9DTURTCi19OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBMRUQgY29udHJvbCBjb21tYW5kcyAqLwotCi0jZGVmaW5lIEVDX0NNRF9MRURfQ09OVFJPTCAweDAwMjkKLQotZW51bSBlY19sZWRfaWQgewotCS8qIExFRCB0byBpbmRpY2F0ZSBiYXR0ZXJ5IHN0YXRlIG9mIGNoYXJnZSAqLwotCUVDX0xFRF9JRF9CQVRURVJZX0xFRCA9IDAsCi0JLyoKLQkgKiBMRUQgdG8gaW5kaWNhdGUgc3lzdGVtIHBvd2VyIHN0YXRlIChvbiBvciBpbiBzdXNwZW5kKS4KLQkgKiBNYXkgYmUgb24gcG93ZXIgYnV0dG9uIG9yIG9uIEMtcGFuZWwuCi0JICovCi0JRUNfTEVEX0lEX1BPV0VSX0xFRCwKLQkvKiBMRUQgb24gcG93ZXIgYWRhcHRlciBvciBpdHMgcGx1ZyAqLwotCUVDX0xFRF9JRF9BREFQVEVSX0xFRCwKLQkvKiBMRUQgdG8gaW5kaWNhdGUgbGVmdCBzaWRlICovCi0JRUNfTEVEX0lEX0xFRlRfTEVELAotCS8qIExFRCB0byBpbmRpY2F0ZSByaWdodCBzaWRlICovCi0JRUNfTEVEX0lEX1JJR0hUX0xFRCwKLQkvKiBMRUQgdG8gaW5kaWNhdGUgcmVjb3ZlcnkgbW9kZSB3aXRoIEhXX1JFSU5JVCAqLwotCUVDX0xFRF9JRF9SRUNPVkVSWV9IV19SRUlOSVRfTEVELAotCS8qIExFRCB0byBpbmRpY2F0ZSBzeXNycSBkZWJ1ZyBtb2RlLiAqLwotCUVDX0xFRF9JRF9TWVNSUV9ERUJVR19MRUQsCi0KLQlFQ19MRURfSURfQ09VTlQKLX07Ci0KLS8qIExFRCBjb250cm9sIGZsYWdzICovCi0jZGVmaW5lIEVDX0xFRF9GTEFHU19RVUVSWSBCSVQoMCkgLyogUXVlcnkgTEVEIGNhcGFiaWxpdHkgb25seSAqLwotI2RlZmluZSBFQ19MRURfRkxBR1NfQVVUTyAgQklUKDEpIC8qIFN3aXRjaCBMRUQgYmFjayB0byBhdXRvbWF0aWMgY29udHJvbCAqLwotCi1lbnVtIGVjX2xlZF9jb2xvcnMgewotCUVDX0xFRF9DT0xPUl9SRUQgPSAwLAotCUVDX0xFRF9DT0xPUl9HUkVFTiwKLQlFQ19MRURfQ09MT1JfQkxVRSwKLQlFQ19MRURfQ09MT1JfWUVMTE9XLAotCUVDX0xFRF9DT0xPUl9XSElURSwKLQlFQ19MRURfQ09MT1JfQU1CRVIsCi0KLQlFQ19MRURfQ09MT1JfQ09VTlQKLX07Ci0KLXN0cnVjdCBlY19wYXJhbXNfbGVkX2NvbnRyb2wgewotCXVpbnQ4X3QgbGVkX2lkOyAgICAgLyogV2hpY2ggTEVEIHRvIGNvbnRyb2wgKi8KLQl1aW50OF90IGZsYWdzOyAgICAgIC8qIENvbnRyb2wgZmxhZ3MgKi8KLQotCXVpbnQ4X3QgYnJpZ2h0bmVzc1tFQ19MRURfQ09MT1JfQ09VTlRdOwotfSBfX2VjX2FsaWduMTsKLQotc3RydWN0IGVjX3Jlc3BvbnNlX2xlZF9jb250cm9sIHsKLQkvKgotCSAqIEF2YWlsYWJsZSBicmlnaHRuZXNzIHZhbHVlIHJhbmdlLgotCSAqCi0JICogUmFuZ2UgMCBtZWFucyBjb2xvciBjaGFubmVsIG5vdCBwcmVzZW50LgotCSAqIFJhbmdlIDEgbWVhbnMgb24vb2ZmIGNvbnRyb2wuCi0JICogT3RoZXIgdmFsdWVzIG1lYW5zIHRoZSBMRUQgaXMgY29udHJvbCBieSBQV00uCi0JICovCi0JdWludDhfdCBicmlnaHRuZXNzX3JhbmdlW0VDX0xFRF9DT0xPUl9DT1VOVF07Ci19IF9fZWNfYWxpZ24xOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBWZXJpZmllZCBib290IGNvbW1hbmRzICovCi0KLS8qCi0gKiBOb3RlOiBjb21tYW5kIGNvZGUgMHgyOSB2ZXJzaW9uIDAgd2FzIFZCT09UX0NNRCBpbiBMaW5rIEVWVDsgaXQgbWF5IGJlCi0gKiByZXVzZWQgZm9yIG90aGVyIHB1cnBvc2VzIHdpdGggdmVyc2lvbiA+IDAuCi0gKi8KLQotLyogVmVyaWZpZWQgYm9vdCBoYXNoIGNvbW1hbmQgKi8KLSNkZWZpbmUgRUNfQ01EX1ZCT09UX0hBU0ggMHgwMDJBCi0KLXN0cnVjdCBlY19wYXJhbXNfdmJvb3RfaGFzaCB7Ci0JdWludDhfdCBjbWQ7ICAgICAgICAgICAgIC8qIGVudW0gZWNfdmJvb3RfaGFzaF9jbWQgKi8KLQl1aW50OF90IGhhc2hfdHlwZTsgICAgICAgLyogZW51bSBlY192Ym9vdF9oYXNoX3R5cGUgKi8KLQl1aW50OF90IG5vbmNlX3NpemU7ICAgICAgLyogTm9uY2Ugc2l6ZTsgbWF5IGJlIDAgKi8KLQl1aW50OF90IHJlc2VydmVkMDsgICAgICAgLyogUmVzZXJ2ZWQ7IHNldCAwICovCi0JdWludDMyX3Qgb2Zmc2V0OyAgICAgICAgIC8qIE9mZnNldCBpbiBmbGFzaCB0byBoYXNoICovCi0JdWludDMyX3Qgc2l6ZTsgICAgICAgICAgIC8qIE51bWJlciBvZiBieXRlcyB0byBoYXNoICovCi0JdWludDhfdCBub25jZV9kYXRhWzY0XTsgIC8qIE5vbmNlIGRhdGE7IGlnbm9yZWQgaWYgbm9uY2Vfc2l6ZT0wICovCi19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfdmJvb3RfaGFzaCB7Ci0JdWludDhfdCBzdGF0dXM7ICAgICAgICAgIC8qIGVudW0gZWNfdmJvb3RfaGFzaF9zdGF0dXMgKi8KLQl1aW50OF90IGhhc2hfdHlwZTsgICAgICAgLyogZW51bSBlY192Ym9vdF9oYXNoX3R5cGUgKi8KLQl1aW50OF90IGRpZ2VzdF9zaXplOyAgICAgLyogU2l6ZSBvZiBoYXNoIGRpZ2VzdCBpbiBieXRlcyAqLwotCXVpbnQ4X3QgcmVzZXJ2ZWQwOyAgICAgICAvKiBJZ25vcmU7IHdpbGwgYmUgMCAqLwotCXVpbnQzMl90IG9mZnNldDsgICAgICAgICAvKiBPZmZzZXQgaW4gZmxhc2ggd2hpY2ggd2FzIGhhc2hlZCAqLwotCXVpbnQzMl90IHNpemU7ICAgICAgICAgICAvKiBOdW1iZXIgb2YgYnl0ZXMgaGFzaGVkICovCi0JdWludDhfdCBoYXNoX2RpZ2VzdFs2NF07IC8qIEhhc2ggZGlnZXN0IGRhdGEgKi8KLX0gX19lY19hbGlnbjQ7Ci0KLWVudW0gZWNfdmJvb3RfaGFzaF9jbWQgewotCUVDX1ZCT09UX0hBU0hfR0VUID0gMCwgICAgICAgLyogR2V0IGN1cnJlbnQgaGFzaCBzdGF0dXMgKi8KLQlFQ19WQk9PVF9IQVNIX0FCT1JUID0gMSwgICAgIC8qIEFib3J0IGNhbGN1bGF0aW5nIGN1cnJlbnQgaGFzaCAqLwotCUVDX1ZCT09UX0hBU0hfU1RBUlQgPSAyLCAgICAgLyogU3RhcnQgY29tcHV0aW5nIGEgbmV3IGhhc2ggKi8KLQlFQ19WQk9PVF9IQVNIX1JFQ0FMQyA9IDMsICAgIC8qIFN5bmNocm9ub3VzbHkgY29tcHV0ZSBhIG5ldyBoYXNoICovCi19OwotCi1lbnVtIGVjX3Zib290X2hhc2hfdHlwZSB7Ci0JRUNfVkJPT1RfSEFTSF9UWVBFX1NIQTI1NiA9IDAsIC8qIFNIQS0yNTYgKi8KLX07Ci0KLWVudW0gZWNfdmJvb3RfaGFzaF9zdGF0dXMgewotCUVDX1ZCT09UX0hBU0hfU1RBVFVTX05PTkUgPSAwLCAvKiBObyBoYXNoIChub3Qgc3RhcnRlZCwgb3IgYWJvcnRlZCkgKi8KLQlFQ19WQk9PVF9IQVNIX1NUQVRVU19ET05FID0gMSwgLyogRmluaXNoZWQgY29tcHV0aW5nIGEgaGFzaCAqLwotCUVDX1ZCT09UX0hBU0hfU1RBVFVTX0JVU1kgPSAyLCAvKiBCdXN5IGNvbXB1dGluZyBhIGhhc2ggKi8KLX07Ci0KLS8qCi0gKiBTcGVjaWFsIHZhbHVlcyBmb3Igb2Zmc2V0IGZvciBFQ19WQk9PVF9IQVNIX1NUQVJUIGFuZCBFQ19WQk9PVF9IQVNIX1JFQ0FMQy4KLSAqIElmIG9uZSBvZiB0aGVzZSBpcyBzcGVjaWZpZWQsIHRoZSBFQyB3aWxsIGF1dG9tYXRpY2FsbHkgdXBkYXRlIG9mZnNldCBhbmQKLSAqIHNpemUgdG8gdGhlIGNvcnJlY3QgdmFsdWVzIGZvciB0aGUgc3BlY2lmaWVkIGltYWdlIChSTyBvciBSVykuCi0gKi8KLSNkZWZpbmUgRUNfVkJPT1RfSEFTSF9PRkZTRVRfUk8JCTB4ZmZmZmZmZmUKLSNkZWZpbmUgRUNfVkJPT1RfSEFTSF9PRkZTRVRfQUNUSVZFCTB4ZmZmZmZmZmQKLSNkZWZpbmUgRUNfVkJPT1RfSEFTSF9PRkZTRVRfVVBEQVRFCTB4ZmZmZmZmZmMKLQotLyoKLSAqICdSVycgaXMgdmFndWUgaWYgdGhlcmUgYXJlIG11bHRpcGxlIFJXIGltYWdlczsgd2UgbWVhbiB0aGUgYWN0aXZlIG9uZSwKLSAqIHNvIHRoZSBvbGQgY29uc3RhbnQgaXMgZGVwcmVjYXRlZC4KLSAqLwotI2RlZmluZSBFQ19WQk9PVF9IQVNIX09GRlNFVF9SVyBFQ19WQk9PVF9IQVNIX09GRlNFVF9BQ1RJVkUKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoKLSAqIE1vdGlvbiBzZW5zZSBjb21tYW5kcy4gV2UnbGwgbWFrZSBzZXBhcmF0ZSBzdHJ1Y3RzIGZvciBzdWItY29tbWFuZHMgd2l0aAotICogZGlmZmVyZW50IGlucHV0IGFyZ3MsIHNvIHRoYXQgd2Uga25vdyBob3cgbXVjaCB0byBleHBlY3QuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX01PVElPTl9TRU5TRV9DTUQgMHgwMDJCCi0KLS8qIE1vdGlvbiBzZW5zZSBjb21tYW5kcyAqLwotZW51bSBtb3Rpb25zZW5zZV9jb21tYW5kIHsKLQkvKgotCSAqIER1bXAgY29tbWFuZCByZXR1cm5zIGFsbCBtb3Rpb24gc2Vuc29yIGRhdGEgaW5jbHVkaW5nIG1vdGlvbiBzZW5zZQotCSAqIG1vZHVsZSBmbGFncyBhbmQgaW5kaXZpZHVhbCBzZW5zb3IgZmxhZ3MuCi0JICovCi0JTU9USU9OU0VOU0VfQ01EX0RVTVAgPSAwLAotCi0JLyoKLQkgKiBJbmZvIGNvbW1hbmQgcmV0dXJucyBkYXRhIGRlc2NyaWJpbmcgdGhlIGRldGFpbHMgb2YgYSBnaXZlbiBzZW5zb3IsCi0JICogaW5jbHVkaW5nIGVudW0gbW90aW9uc2Vuc29yX3R5cGUsIGVudW0gbW90aW9uc2Vuc29yX2xvY2F0aW9uLCBhbmQKLQkgKiBlbnVtIG1vdGlvbnNlbnNvcl9jaGlwLgotCSAqLwotCU1PVElPTlNFTlNFX0NNRF9JTkZPID0gMSwKLQotCS8qCi0JICogRUMgUmF0ZSBjb21tYW5kIGlzIGEgc2V0dGVyL2dldHRlciBjb21tYW5kIGZvciB0aGUgRUMgc2FtcGxpbmcgcmF0ZQotCSAqIGluIG1pbGxpc2Vjb25kcy4KLQkgKiBJdCBpcyBwZXIgc2Vuc29yLCB0aGUgRUMgcnVuIHNhbXBsZSB0YXNrICBhdCB0aGUgbWluaW11bSBvZiBhbGwKLQkgKiBzZW5zb3JzIEVDX1JBVEUuCi0JICogRm9yIHNlbnNvcnMgd2l0aG91dCBoYXJkd2FyZSBGSUZPLCBFQ19SQVRFIHNob3VsZCBiZSBlcXVhbHMgdG8gMS9PRFIKLQkgKiB0byBjb2xsZWN0IGFsbCB0aGUgc2Vuc29yIHNhbXBsZXMuCi0JICogRm9yIHNlbnNvciB3aXRoIGhhcmR3YXJlIEZJRk8sIEVDX1JBVEUgaXMgdXNlZCBhcyB0aGUgbWF4aW1hbCBkZWxheQotCSAqIHRvIHByb2Nlc3Mgb2YgYWxsIG1vdGlvbiBzZW5zb3JzIGluIG1pbGxpc2Vjb25kcy4KLQkgKi8KLQlNT1RJT05TRU5TRV9DTURfRUNfUkFURSA9IDIsCi0KLQkvKgotCSAqIFNlbnNvciBPRFIgY29tbWFuZCBpcyBhIHNldHRlci9nZXR0ZXIgY29tbWFuZCBmb3IgdGhlIG91dHB1dCBkYXRhCi0JICogcmF0ZSBvZiBhIHNwZWNpZmljIG1vdGlvbiBzZW5zb3IgaW4gbWlsbGloZXJ0ei4KLQkgKi8KLQlNT1RJT05TRU5TRV9DTURfU0VOU09SX09EUiA9IDMsCi0KLQkvKgotCSAqIFNlbnNvciByYW5nZSBjb21tYW5kIGlzIGEgc2V0dGVyL2dldHRlciBjb21tYW5kIGZvciB0aGUgcmFuZ2Ugb2YKLQkgKiBhIHNwZWNpZmllZCBtb3Rpb24gc2Vuc29yIGluICsvLUcncyBvciArLy0gZGVnL3MuCi0JICovCi0JTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9SQU5HRSA9IDQsCi0KLQkvKgotCSAqIFNldHRlci9nZXR0ZXIgY29tbWFuZCBmb3IgdGhlIGtleWJvYXJkIHdha2UgYW5nbGUuIFdoZW4gdGhlIGxpZAotCSAqIGFuZ2xlIGlzIGdyZWF0ZXIgdGhhbiB0aGlzIHZhbHVlLCBrZXlib2FyZCB3YWtlIGlzIGRpc2FibGVkIGluIFMzLAotCSAqIGFuZCB3aGVuIHRoZSBsaWQgYW5nbGUgZ29lcyBsZXNzIHRoYW4gdGhpcyB2YWx1ZSwga2V5Ym9hcmQgd2FrZSBpcwotCSAqIGVuYWJsZWQuIE5vdGUsIHRoZSBsaWQgYW5nbGUgbWVhc3VyZW1lbnQgaXMgYW4gYXBwcm94aW1hdGUsCi0JICogdW4tY2FsaWJyYXRlZCB2YWx1ZSwgaGVuY2UgdGhlIHdha2UgYW5nbGUgaXNuJ3QgZXhhY3QuCi0JICovCi0JTU9USU9OU0VOU0VfQ01EX0tCX1dBS0VfQU5HTEUgPSA1LAotCi0JLyoKLQkgKiBSZXR1cm5zIGEgc2luZ2xlIHNlbnNvciBkYXRhLgotCSAqLwotCU1PVElPTlNFTlNFX0NNRF9EQVRBID0gNiwKLQotCS8qCi0JICogUmV0dXJuIHNlbnNvciBmaWZvIGluZm8uCi0JICovCi0JTU9USU9OU0VOU0VfQ01EX0ZJRk9fSU5GTyA9IDcsCi0KLQkvKgotCSAqIEluc2VydCBhIGZsdXNoIGVsZW1lbnQgaW4gdGhlIGZpZm8gYW5kIHJldHVybiBzZW5zb3IgZmlmbyBpbmZvLgotCSAqIFRoZSBob3N0IGNhbiB1c2UgdGhhdCBlbGVtZW50IHRvIHN5bmNocm9uaXplIGl0cyBvcGVyYXRpb24uCi0JICovCi0JTU9USU9OU0VOU0VfQ01EX0ZJRk9fRkxVU0ggPSA4LAotCi0JLyoKLQkgKiBSZXR1cm4gYSBwb3J0aW9uIG9mIHRoZSBmaWZvLgotCSAqLwotCU1PVElPTlNFTlNFX0NNRF9GSUZPX1JFQUQgPSA5LAotCi0JLyoKLQkgKiBQZXJmb3JtIGxvdyBsZXZlbCBjYWxpYnJhdGlvbi4KLQkgKiBPbiBzZW5zb3JzIHRoYXQgc3VwcG9ydCBpdCwgYXNrIHRvIGRvIG9mZnNldCBjYWxpYnJhdGlvbi4KLQkgKi8KLQlNT1RJT05TRU5TRV9DTURfUEVSRk9STV9DQUxJQiA9IDEwLAotCi0JLyoKLQkgKiBTZW5zb3IgT2Zmc2V0IGNvbW1hbmQgaXMgYSBzZXR0ZXIvZ2V0dGVyIGNvbW1hbmQgZm9yIHRoZSBvZmZzZXQKLQkgKiB1c2VkIGZvciBjYWxpYnJhdGlvbi4KLQkgKiBUaGUgb2Zmc2V0cyBjYW4gYmUgY2FsY3VsYXRlZCBieSB0aGUgaG9zdCwgb3IgdmlhCi0JICogUEVSRk9STV9DQUxJQiBjb21tYW5kLgotCSAqLwotCU1PVElPTlNFTlNFX0NNRF9TRU5TT1JfT0ZGU0VUID0gMTEsCi0KLQkvKgotCSAqIExpc3QgYXZhaWxhYmxlIGFjdGl2aXRpZXMgZm9yIGEgTU9USU9OIHNlbnNvci4KLQkgKiBJbmRpY2F0ZXMgaWYgdGhleSBhcmUgZW5hYmxlZCBvciBkaXNhYmxlZC4KLQkgKi8KLQlNT1RJT05TRU5TRV9DTURfTElTVF9BQ1RJVklUSUVTID0gMTIsCi0KLQkvKgotCSAqIEFjdGl2aXR5IG1hbmFnZW1lbnQKLQkgKiBFbmFibGUvRGlzYWJsZSBhY3Rpdml0eSByZWNvZ25pdGlvbi4KLQkgKi8KLQlNT1RJT05TRU5TRV9DTURfU0VUX0FDVElWSVRZID0gMTMsCi0KLQkvKgotCSAqIExpZCBBbmdsZQotCSAqLwotCU1PVElPTlNFTlNFX0NNRF9MSURfQU5HTEUgPSAxNCwKLQotCS8qCi0JICogQWxsb3cgdGhlIEZJRk8gdG8gdHJpZ2dlciBpbnRlcnJ1cHQgdmlhIE1LQlAgZXZlbnRzLgotCSAqIEJ5IGRlZmF1bHQgdGhlIEZJRk8gZG9lcyBub3Qgc2VuZCBpbnRlcnJ1cHQgdG8gcHJvY2VzcyB0aGUgRklGTwotCSAqIHVudGlsIHRoZSBBUCBpcyByZWFkeSBvciBpdCBpcyBjb21pbmcgZnJvbSBhIHdha2V1cCBzZW5zb3IuCi0JICovCi0JTU9USU9OU0VOU0VfQ01EX0ZJRk9fSU5UX0VOQUJMRSA9IDE1LAotCi0JLyoKLQkgKiBTcG9vZiB0aGUgcmVhZGluZ3Mgb2YgdGhlIHNlbnNvcnMuICBUaGUgc3Bvb2ZlZCByZWFkaW5ncyBjYW4gYmUgc2V0Ci0JICogdG8gYXJiaXRyYXJ5IHZhbHVlcywgb3Igd2lsbCBsb2NrIHRvIHRoZSBsYXN0IHJlYWQgYWN0dWFsIHZhbHVlcy4KLQkgKi8KLQlNT1RJT05TRU5TRV9DTURfU1BPT0YgPSAxNiwKLQotCS8qIFNldCBsaWQgYW5nbGUgZm9yIHRhYmxldCBtb2RlIGRldGVjdGlvbi4gKi8KLQlNT1RJT05TRU5TRV9DTURfVEFCTEVUX01PREVfTElEX0FOR0xFID0gMTcsCi0KLQkvKgotCSAqIFNlbnNvciBTY2FsZSBjb21tYW5kIGlzIGEgc2V0dGVyL2dldHRlciBjb21tYW5kIGZvciB0aGUgY2FsaWJyYXRpb24KLQkgKiBzY2FsZS4KLQkgKi8KLQlNT1RJT05TRU5TRV9DTURfU0VOU09SX1NDQUxFID0gMTgsCi0KLQkvKiBOdW1iZXIgb2YgbW90aW9uc2Vuc2Ugc3ViLWNvbW1hbmRzLiAqLwotCU1PVElPTlNFTlNFX05VTV9DTURTCi19OwotCi0vKiBMaXN0IG9mIG1vdGlvbiBzZW5zb3IgdHlwZXMuICovCi1lbnVtIG1vdGlvbnNlbnNvcl90eXBlIHsKLQlNT1RJT05TRU5TRV9UWVBFX0FDQ0VMID0gMCwKLQlNT1RJT05TRU5TRV9UWVBFX0dZUk8gPSAxLAotCU1PVElPTlNFTlNFX1RZUEVfTUFHID0gMiwKLQlNT1RJT05TRU5TRV9UWVBFX1BST1ggPSAzLAotCU1PVElPTlNFTlNFX1RZUEVfTElHSFQgPSA0LAotCU1PVElPTlNFTlNFX1RZUEVfQUNUSVZJVFkgPSA1LAotCU1PVElPTlNFTlNFX1RZUEVfQkFSTyA9IDYsCi0JTU9USU9OU0VOU0VfVFlQRV9TWU5DID0gNywKLQlNT1RJT05TRU5TRV9UWVBFX01BWCwKLX07Ci0KLS8qIExpc3Qgb2YgbW90aW9uIHNlbnNvciBsb2NhdGlvbnMuICovCi1lbnVtIG1vdGlvbnNlbnNvcl9sb2NhdGlvbiB7Ci0JTU9USU9OU0VOU0VfTE9DX0JBU0UgPSAwLAotCU1PVElPTlNFTlNFX0xPQ19MSUQgPSAxLAotCU1PVElPTlNFTlNFX0xPQ19DQU1FUkEgPSAyLAotCU1PVElPTlNFTlNFX0xPQ19NQVgsCi19OwotCi0vKiBMaXN0IG9mIG1vdGlvbiBzZW5zb3IgY2hpcHMuICovCi1lbnVtIG1vdGlvbnNlbnNvcl9jaGlwIHsKLQlNT1RJT05TRU5TRV9DSElQX0tYQ0o5ID0gMCwKLQlNT1RJT05TRU5TRV9DSElQX0xTTTZEUzAgPSAxLAotCU1PVElPTlNFTlNFX0NISVBfQk1JMTYwID0gMiwKLQlNT1RJT05TRU5TRV9DSElQX1NJMTE0MSA9IDMsCi0JTU9USU9OU0VOU0VfQ0hJUF9TSTExNDIgPSA0LAotCU1PVElPTlNFTlNFX0NISVBfU0kxMTQzID0gNSwKLQlNT1RJT05TRU5TRV9DSElQX0tYMDIyID0gNiwKLQlNT1RJT05TRU5TRV9DSElQX0wzR0QyMEggPSA3LAotCU1PVElPTlNFTlNFX0NISVBfQk1BMjU1ID0gOCwKLQlNT1RJT05TRU5TRV9DSElQX0JNUDI4MCA9IDksCi0JTU9USU9OU0VOU0VfQ0hJUF9PUFQzMDAxID0gMTAsCi0JTU9USU9OU0VOU0VfQ0hJUF9CSDE3MzAgPSAxMSwKLQlNT1RJT05TRU5TRV9DSElQX0dQSU8gPSAxMiwKLQlNT1RJT05TRU5TRV9DSElQX0xJUzJESCA9IDEzLAotCU1PVElPTlNFTlNFX0NISVBfTFNNNkRTTSA9IDE0LAotCU1PVElPTlNFTlNFX0NISVBfTElTMkRFID0gMTUsCi0JTU9USU9OU0VOU0VfQ0hJUF9MSVMyTURMID0gMTYsCi0JTU9USU9OU0VOU0VfQ0hJUF9MU002RFMzID0gMTcsCi0JTU9USU9OU0VOU0VfQ0hJUF9MU002RFNPID0gMTgsCi0JTU9USU9OU0VOU0VfQ0hJUF9MTkcyRE0gPSAxOSwKLQlNT1RJT05TRU5TRV9DSElQX01BWCwKLX07Ci0KLS8qIExpc3Qgb2Ygb3JpZW50YXRpb24gcG9zaXRpb25zICovCi1lbnVtIG1vdGlvbnNlbnNvcl9vcmllbnRhdGlvbiB7Ci0JTU9USU9OU0VOU0VfT1JJRU5UQVRJT05fTEFORFNDQVBFID0gMCwKLQlNT1RJT05TRU5TRV9PUklFTlRBVElPTl9QT1JUUkFJVCA9IDEsCi0JTU9USU9OU0VOU0VfT1JJRU5UQVRJT05fVVBTSURFX0RPV05fUE9SVFJBSVQgPSAyLAotCU1PVElPTlNFTlNFX09SSUVOVEFUSU9OX1VQU0lERV9ET1dOX0xBTkRTQ0FQRSA9IDMsCi0JTU9USU9OU0VOU0VfT1JJRU5UQVRJT05fVU5LTk9XTiA9IDQsCi19OwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfbW90aW9uX3NlbnNvcl9kYXRhIHsKLQkvKiBGbGFncyBmb3IgZWFjaCBzZW5zb3IuICovCi0JdWludDhfdCBmbGFnczsKLQkvKiBTZW5zb3IgbnVtYmVyIHRoZSBkYXRhIGNvbWVzIGZyb20uICovCi0JdWludDhfdCBzZW5zb3JfbnVtOwotCS8qIEVhY2ggc2Vuc29yIGlzIHVwIHRvIDMtYXhpcy4gKi8KLQl1bmlvbiB7Ci0JCWludDE2X3QgICAgICAgICAgICAgZGF0YVszXTsKLQkJc3RydWN0IF9fZWNfdG9kb19wYWNrZWQgewotCQkJdWludDE2X3QgICAgcmVzZXJ2ZWQ7Ci0JCQl1aW50MzJfdCAgICB0aW1lc3RhbXA7Ci0JCX07Ci0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJdWludDhfdCAgICAgYWN0aXZpdHk7IC8qIG1vdGlvbnNlbnNvcl9hY3Rpdml0eSAqLwotCQkJdWludDhfdCAgICAgc3RhdGU7Ci0JCQlpbnQxNl90ICAgICBhZGRfaW5mb1syXTsKLQkJfTsKLQl9OwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi0vKiBOb3RlOiB1c2VkIGluIGVjX3Jlc3BvbnNlX2dldF9uZXh0X2RhdGEgKi8KLXN0cnVjdCBlY19yZXNwb25zZV9tb3Rpb25fc2Vuc2VfZmlmb19pbmZvIHsKLQkvKiBTaXplIG9mIHRoZSBmaWZvICovCi0JdWludDE2X3Qgc2l6ZTsKLQkvKiBBbW91bnQgb2Ygc3BhY2UgdXNlZCBpbiB0aGUgZmlmbyAqLwotCXVpbnQxNl90IGNvdW50OwotCS8qIFRpbWVzdGFtcCByZWNvcmRlZCBpbiB1cy4KLQkgKiBha2EgYWNjdXJhdGUgdGltZXN0YW1wIHdoZW4gaG9zdCBldmVudCB3YXMgdHJpZ2dlcmVkLgotCSAqLwotCXVpbnQzMl90IHRpbWVzdGFtcDsKLQkvKiBUb3RhbCBhbW91bnQgb2YgdmVjdG9yIGxvc3QgKi8KLQl1aW50MTZfdCB0b3RhbF9sb3N0OwotCS8qIExvc3QgZXZlbnRzIHNpbmNlIHRoZSBsYXN0IGZpZm9faW5mbywgcGVyIHNlbnNvcnMgKi8KLQl1aW50MTZfdCBsb3N0WzBdOwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfbW90aW9uX3NlbnNlX2ZpZm9fZGF0YSB7Ci0JdWludDMyX3QgbnVtYmVyX2RhdGE7Ci0Jc3RydWN0IGVjX3Jlc3BvbnNlX21vdGlvbl9zZW5zb3JfZGF0YSBkYXRhWzBdOwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi0vKiBMaXN0IHN1cHBvcnRlZCBhY3Rpdml0eSByZWNvZ25pdGlvbiAqLwotZW51bSBtb3Rpb25zZW5zb3JfYWN0aXZpdHkgewotCU1PVElPTlNFTlNFX0FDVElWSVRZX1JFU0VSVkVEID0gMCwKLQlNT1RJT05TRU5TRV9BQ1RJVklUWV9TSUdfTU9USU9OID0gMSwKLQlNT1RJT05TRU5TRV9BQ1RJVklUWV9ET1VCTEVfVEFQID0gMiwKLQlNT1RJT05TRU5TRV9BQ1RJVklUWV9PUklFTlRBVElPTiA9IDMsCi19OwotCi1zdHJ1Y3QgZWNfbW90aW9uX3NlbnNlX2FjdGl2aXR5IHsKLQl1aW50OF90IHNlbnNvcl9udW07Ci0JdWludDhfdCBhY3Rpdml0eTsgLyogb25lIG9mIGVudW0gbW90aW9uc2Vuc29yX2FjdGl2aXR5ICovCi0JdWludDhfdCBlbmFibGU7ICAgLyogMTogZW5hYmxlLCAwOiBkaXNhYmxlICovCi0JdWludDhfdCByZXNlcnZlZDsKLQl1aW50MTZfdCBwYXJhbWV0ZXJzWzNdOyAvKiBhY3Rpdml0eSBkZXBlbmRlbnQgcGFyYW1ldGVycyAqLwotfSBfX2VjX3RvZG9fdW5wYWNrZWQ7Ci0KLS8qIE1vZHVsZSBmbGFnIG1hc2tzIHVzZWQgZm9yIHRoZSBkdW1wIHN1Yi1jb21tYW5kLiAqLwotI2RlZmluZSBNT1RJT05TRU5TRV9NT0RVTEVfRkxBR19BQ1RJVkUgQklUKDApCi0KLS8qIFNlbnNvciBmbGFnIG1hc2tzIHVzZWQgZm9yIHRoZSBkdW1wIHN1Yi1jb21tYW5kLiAqLwotI2RlZmluZSBNT1RJT05TRU5TRV9TRU5TT1JfRkxBR19QUkVTRU5UIEJJVCgwKQotCi0vKgotICogRmx1c2ggZW50cnkgZm9yIHN5bmNocm9uaXphdGlvbi4KLSAqIGRhdGEgY29udGFpbnMgdGltZSBzdGFtcAotICovCi0jZGVmaW5lIE1PVElPTlNFTlNFX1NFTlNPUl9GTEFHX0ZMVVNIIEJJVCgwKQotI2RlZmluZSBNT1RJT05TRU5TRV9TRU5TT1JfRkxBR19USU1FU1RBTVAgQklUKDEpCi0jZGVmaW5lIE1PVElPTlNFTlNFX1NFTlNPUl9GTEFHX1dBS0VVUCBCSVQoMikKLSNkZWZpbmUgTU9USU9OU0VOU0VfU0VOU09SX0ZMQUdfVEFCTEVUX01PREUgQklUKDMpCi0jZGVmaW5lIE1PVElPTlNFTlNFX1NFTlNPUl9GTEFHX09EUiBCSVQoNCkKLQotLyoKLSAqIFNlbmQgdGhpcyB2YWx1ZSBmb3IgdGhlIGRhdGEgZWxlbWVudCB0byBvbmx5IHBlcmZvcm0gYSByZWFkLiBJZiB5b3UKLSAqIHNlbmQgYW55IG90aGVyIHZhbHVlLCB0aGUgRUMgd2lsbCBpbnRlcnByZXQgaXQgYXMgZGF0YSB0byBzZXQgYW5kIHdpbGwKLSAqIHJldHVybiB0aGUgYWN0dWFsIHZhbHVlIHNldC4KLSAqLwotI2RlZmluZSBFQ19NT1RJT05fU0VOU0VfTk9fVkFMVUUgLTEKLQotI2RlZmluZSBFQ19NT1RJT05fU0VOU0VfSU5WQUxJRF9DQUxJQl9URU1QIDB4ODAwMAotCi0vKiBNT1RJT05TRU5TRV9DTURfU0VOU09SX09GRlNFVCBzdWJjb21tYW5kIGZsYWcgKi8KLS8qIFNldCBDYWxpYnJhdGlvbiBpbmZvcm1hdGlvbiAqLwotI2RlZmluZSBNT1RJT05fU0VOU0VfU0VUX09GRlNFVCBCSVQoMCkKLQotLyogRGVmYXVsdCBTY2FsZSB2YWx1ZSwgZmFjdG9yIDEuICovCi0jZGVmaW5lIE1PVElPTl9TRU5TRV9ERUZBVUxUX1NDQUxFIEJJVCgxNSkKLQotI2RlZmluZSBMSURfQU5HTEVfVU5SRUxJQUJMRSA1MDAKLQotZW51bSBtb3Rpb25zZW5zZV9zcG9vZl9tb2RlIHsKLQkvKiBEaXNhYmxlIHNwb29mIG1vZGUuICovCi0JTU9USU9OU0VOU0VfU1BPT0ZfTU9ERV9ESVNBQkxFID0gMCwKLQotCS8qIEVuYWJsZSBzcG9vZiBtb2RlLCBidXQgdXNlIHByb3ZpZGVkIGNvbXBvbmVudCB2YWx1ZXMuICovCi0JTU9USU9OU0VOU0VfU1BPT0ZfTU9ERV9DVVNUT00sCi0KLQkvKiBFbmFibGUgc3Bvb2YgbW9kZSwgYnV0IHVzZSB0aGUgY3VycmVudCBzZW5zb3IgdmFsdWVzLiAqLwotCU1PVElPTlNFTlNFX1NQT09GX01PREVfTE9DS19DVVJSRU5ULAotCi0JLyogUXVlcnkgdGhlIGN1cnJlbnQgc3Bvb2YgbW9kZSBzdGF0dXMgZm9yIHRoZSBzZW5zb3IuICovCi0JTU9USU9OU0VOU0VfU1BPT0ZfTU9ERV9RVUVSWSwKLX07Ci0KLXN0cnVjdCBlY19wYXJhbXNfbW90aW9uX3NlbnNlIHsKLQl1aW50OF90IGNtZDsKLQl1bmlvbiB7Ci0JCS8qIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9EVU1QLiAqLwotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCS8qCi0JCQkgKiBNYXhpbWFsIG51bWJlciBvZiBzZW5zb3IgdGhlIGhvc3QgaXMgZXhwZWN0aW5nLgotCQkJICogMCBtZWFucyB0aGUgaG9zdCBpcyBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIG51bWJlcgotCQkJICogb2Ygc2Vuc29ycyBjb250cm9sbGVkIGJ5IHRoZSBFQy4KLQkJCSAqLwotCQkJdWludDhfdCBtYXhfc2Vuc29yX2NvdW50OwotCQl9IGR1bXA7Ci0KLQkJLyoKLQkJICogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX0tCX1dBS0VfQU5HTEUuCi0JCSAqLwotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCS8qIERhdGEgdG8gc2V0IG9yIEVDX01PVElPTl9TRU5TRV9OT19WQUxVRSB0byByZWFkLgotCQkJICoga2Jfd2FrZV9hbmdsZTogYW5nbGUgdG8gd2FrdXAgQVAuCi0JCQkgKi8KLQkJCWludDE2X3QgZGF0YTsKLQkJfSBrYl93YWtlX2FuZ2xlOwotCi0JCS8qCi0JCSAqIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9JTkZPLCBNT1RJT05TRU5TRV9DTURfREFUQQotCQkgKiBhbmQgTU9USU9OU0VOU0VfQ01EX1BFUkZPUk1fQ0FMSUIuCi0JCSAqLwotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCXVpbnQ4X3Qgc2Vuc29yX251bTsKLQkJfSBpbmZvLCBpbmZvXzMsIGRhdGEsIGZpZm9fZmx1c2gsIHBlcmZvcm1fY2FsaWIsCi0JCQkJbGlzdF9hY3Rpdml0aWVzOwotCi0JCS8qCi0JCSAqIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9FQ19SQVRFLCBNT1RJT05TRU5TRV9DTURfU0VOU09SX09EUgotCQkgKiBhbmQgTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9SQU5HRS4KLQkJICovCi0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJdWludDhfdCBzZW5zb3JfbnVtOwotCi0JCQkvKiBSb3VuZGluZyBmbGFnLCB0cnVlIGZvciByb3VuZC11cCwgZmFsc2UgZm9yIGRvd24uICovCi0JCQl1aW50OF90IHJvdW5kdXA7Ci0KLQkJCXVpbnQxNl90IHJlc2VydmVkOwotCi0JCQkvKiBEYXRhIHRvIHNldCBvciBFQ19NT1RJT05fU0VOU0VfTk9fVkFMVUUgdG8gcmVhZC4gKi8KLQkJCWludDMyX3QgZGF0YTsKLQkJfSBlY19yYXRlLCBzZW5zb3Jfb2RyLCBzZW5zb3JfcmFuZ2U7Ci0KLQkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9PRkZTRVQgKi8KLQkJc3RydWN0IF9fZWNfdG9kb19wYWNrZWQgewotCQkJdWludDhfdCBzZW5zb3JfbnVtOwotCi0JCQkvKgotCQkJICogYml0IDA6IElmIHNldCAoTU9USU9OX1NFTlNFX1NFVF9PRkZTRVQpLCBzZXQKLQkJCSAqIHRoZSBjYWxpYnJhdGlvbiBpbmZvcm1hdGlvbiBpbiB0aGUgRUMuCi0JCQkgKiBJZiB1bnNldCwganVzdCByZXRyaWV2ZSBjYWxpYnJhdGlvbiBpbmZvcm1hdGlvbi4KLQkJCSAqLwotCQkJdWludDE2X3QgZmxhZ3M7Ci0KLQkJCS8qCi0JCQkgKiBUZW1wZXJhdHVyZSBhdCBjYWxpYnJhdGlvbiwgaW4gdW5pdHMgb2YgMC4wMSBDCi0JCQkgKiAweDgwMDA6IGludmFsaWQgLyB1bmtub3duLgotCQkJICogMHgwOiAwQwotCQkJICogMHg3ZmZmOiArMzI3LjY3QwotCQkJICovCi0JCQlpbnQxNl90IHRlbXA7Ci0KLQkJCS8qCi0JCQkgKiBPZmZzZXQgZm9yIGNhbGlicmF0aW9uLgotCQkJICogVW5pdDoKLQkJCSAqIEFjY2VsZXJvbWV0ZXI6IDEvMTAyNCBnCi0JCQkgKiBHeXJvOiAgICAgICAgICAxLzEwMjQgZGVnL3MKLQkJCSAqIENvbXBhc3M6ICAgICAgIDEvMTYgdVQKLQkJCSAqLwotCQkJaW50MTZfdCBvZmZzZXRbM107Ci0JCX0gc2Vuc29yX29mZnNldDsKLQotCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfU0VOU09SX1NDQUxFICovCi0JCXN0cnVjdCBfX2VjX3RvZG9fcGFja2VkIHsKLQkJCXVpbnQ4X3Qgc2Vuc29yX251bTsKLQotCQkJLyoKLQkJCSAqIGJpdCAwOiBJZiBzZXQgKE1PVElPTl9TRU5TRV9TRVRfT0ZGU0VUKSwgc2V0Ci0JCQkgKiB0aGUgY2FsaWJyYXRpb24gaW5mb3JtYXRpb24gaW4gdGhlIEVDLgotCQkJICogSWYgdW5zZXQsIGp1c3QgcmV0cmlldmUgY2FsaWJyYXRpb24gaW5mb3JtYXRpb24uCi0JCQkgKi8KLQkJCXVpbnQxNl90IGZsYWdzOwotCi0JCQkvKgotCQkJICogVGVtcGVyYXR1cmUgYXQgY2FsaWJyYXRpb24sIGluIHVuaXRzIG9mIDAuMDEgQwotCQkJICogMHg4MDAwOiBpbnZhbGlkIC8gdW5rbm93bi4KLQkJCSAqIDB4MDogMEMKLQkJCSAqIDB4N2ZmZjogKzMyNy42N0MKLQkJCSAqLwotCQkJaW50MTZfdCB0ZW1wOwotCi0JCQkvKgotCQkJICogU2NhbGUgZm9yIGNhbGlicmF0aW9uOgotCQkJICogQnkgZGVmYXVsdCBzY2FsZSBpcyAxLCBpdCBpcyBlbmNvZGVkIG9uIDE2Yml0czoKLQkJCSAqIDEgPSBCSVQoMTUpCi0JCQkgKiB+MiA9IDB4RkZGRgotCQkJICogfjAgPSAwLgotCQkJICovCi0JCQl1aW50MTZfdCBzY2FsZVszXTsKLQkJfSBzZW5zb3Jfc2NhbGU7Ci0KLQotCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfRklGT19JTkZPICovCi0JCS8qIChubyBwYXJhbXMpICovCi0KLQkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX0ZJRk9fUkVBRCAqLwotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCS8qCi0JCQkgKiBOdW1iZXIgb2YgZXhwZWN0ZWQgdmVjdG9yIHRvIHJldHVybi4KLQkJCSAqIEVDIG1heSByZXR1cm4gbGVzcyBvciAwIGlmIG5vbmUgYXZhaWxhYmxlLgotCQkJICovCi0JCQl1aW50MzJfdCBtYXhfZGF0YV92ZWN0b3I7Ci0JCX0gZmlmb19yZWFkOwotCi0JCXN0cnVjdCBlY19tb3Rpb25fc2Vuc2VfYWN0aXZpdHkgc2V0X2FjdGl2aXR5OwotCi0JCS8qIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9MSURfQU5HTEUgKi8KLQkJLyogKG5vIHBhcmFtcykgKi8KLQotCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfRklGT19JTlRfRU5BQkxFICovCi0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJLyoKLQkJCSAqIDE6IGVuYWJsZSwgMCBkaXNhYmxlIGZpZm8sCi0JCQkgKiBFQ19NT1RJT05fU0VOU0VfTk9fVkFMVUUgcmV0dXJuIHZhbHVlLgotCQkJICovCi0JCQlpbnQ4X3QgZW5hYmxlOwotCQl9IGZpZm9faW50X2VuYWJsZTsKLQotCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfU1BPT0YgKi8KLQkJc3RydWN0IF9fZWNfdG9kb19wYWNrZWQgewotCQkJdWludDhfdCBzZW5zb3JfaWQ7Ci0KLQkJCS8qIFNlZSBlbnVtIG1vdGlvbnNlbnNlX3Nwb29mX21vZGUuICovCi0JCQl1aW50OF90IHNwb29mX2VuYWJsZTsKLQotCQkJLyogSWdub3JlZCwgdXNlZCBmb3IgYWxpZ25tZW50LiAqLwotCQkJdWludDhfdCByZXNlcnZlZDsKLQotCQkJLyogSW5kaXZpZHVhbCBjb21wb25lbnQgdmFsdWVzIHRvIHNwb29mLiAqLwotCQkJaW50MTZfdCBjb21wb25lbnRzWzNdOwotCQl9IHNwb29mOwotCi0JCS8qIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9UQUJMRVRfTU9ERV9MSURfQU5HTEUuICovCi0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJLyoKLQkJCSAqIExpZCBhbmdsZSB0aHJlc2hvbGQgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHRhYmxldCBhbmQKLQkJCSAqIGNsYW1zaGVsbCBtb2RlLgotCQkJICovCi0JCQlpbnQxNl90IGxpZF9hbmdsZTsKLQotCQkJLyoKLQkJCSAqIEh5c3RlcmVzaXMgZGVncmVlIHRvIHByZXZlbnQgZmx1Y3R1YXRpb25zIGJldHdlZW4KLQkJCSAqIGNsYW1zaGVsbCBhbmQgdGFibGV0IG1vZGUgaWYgbGlkIGFuZ2xlIGtlZXBzCi0JCQkgKiBjaGFuZ2luZyBhcm91bmQgdGhlIHRocmVzaG9sZC4gTGlkIG1vdGlvbiBkcml2ZXIgd2lsbAotCQkJICogdXNlIGxpZF9hbmdsZSArIGh5c19kZWdyZWUgdG8gdHJpZ2dlciB0YWJsZXQgbW9kZSBhbmQKLQkJCSAqIGxpZF9hbmdsZSAtIGh5c19kZWdyZWUgdG8gdHJpZ2dlciBjbGFtc2hlbGwgbW9kZS4KLQkJCSAqLwotCQkJaW50MTZfdCBoeXNfZGVncmVlOwotCQl9IHRhYmxldF9tb2RlX3RocmVzaG9sZDsKLQl9OwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfbW90aW9uX3NlbnNlIHsKLQl1bmlvbiB7Ci0JCS8qIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9EVU1QICovCi0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJLyogRmxhZ3MgcmVwcmVzZW50aW5nIHRoZSBtb3Rpb24gc2Vuc29yIG1vZHVsZS4gKi8KLQkJCXVpbnQ4X3QgbW9kdWxlX2ZsYWdzOwotCi0JCQkvKiBOdW1iZXIgb2Ygc2Vuc29ycyBtYW5hZ2VkIGRpcmVjdGx5IGJ5IHRoZSBFQy4gKi8KLQkJCXVpbnQ4X3Qgc2Vuc29yX2NvdW50OwotCi0JCQkvKgotCQkJICogU2Vuc29yIGRhdGEgaXMgdHJ1bmNhdGVkIGlmIHJlc3BvbnNlX21heCBpcyB0b28gc21hbGwKLQkJCSAqIGZvciBob2xkaW5nIGFsbCB0aGUgZGF0YS4KLQkJCSAqLwotCQkJc3RydWN0IGVjX3Jlc3BvbnNlX21vdGlvbl9zZW5zb3JfZGF0YSBzZW5zb3JbMF07Ci0JCX0gZHVtcDsKLQotCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfSU5GTy4gKi8KLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQkvKiBTaG91bGQgYmUgZWxlbWVudCBvZiBlbnVtIG1vdGlvbnNlbnNvcl90eXBlLiAqLwotCQkJdWludDhfdCB0eXBlOwotCi0JCQkvKiBTaG91bGQgYmUgZWxlbWVudCBvZiBlbnVtIG1vdGlvbnNlbnNvcl9sb2NhdGlvbi4gKi8KLQkJCXVpbnQ4X3QgbG9jYXRpb247Ci0KLQkJCS8qIFNob3VsZCBiZSBlbGVtZW50IG9mIGVudW0gbW90aW9uc2Vuc29yX2NoaXAuICovCi0JCQl1aW50OF90IGNoaXA7Ci0JCX0gaW5mbzsKLQotCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfSU5GTyB2ZXJzaW9uIDMgKi8KLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQkvKiBTaG91bGQgYmUgZWxlbWVudCBvZiBlbnVtIG1vdGlvbnNlbnNvcl90eXBlLiAqLwotCQkJdWludDhfdCB0eXBlOwotCi0JCQkvKiBTaG91bGQgYmUgZWxlbWVudCBvZiBlbnVtIG1vdGlvbnNlbnNvcl9sb2NhdGlvbi4gKi8KLQkJCXVpbnQ4X3QgbG9jYXRpb247Ci0KLQkJCS8qIFNob3VsZCBiZSBlbGVtZW50IG9mIGVudW0gbW90aW9uc2Vuc29yX2NoaXAuICovCi0JCQl1aW50OF90IGNoaXA7Ci0KLQkJCS8qIE1pbmltdW0gc2Vuc29yIHNhbXBsaW5nIGZyZXF1ZW5jeSAqLwotCQkJdWludDMyX3QgbWluX2ZyZXF1ZW5jeTsKLQotCQkJLyogTWF4aW11bSBzZW5zb3Igc2FtcGxpbmcgZnJlcXVlbmN5ICovCi0JCQl1aW50MzJfdCBtYXhfZnJlcXVlbmN5OwotCi0JCQkvKiBNYXggbnVtYmVyIG9mIHNlbnNvciBldmVudHMgdGhhdCBjb3VsZCBiZSBpbiBmaWZvICovCi0JCQl1aW50MzJfdCBmaWZvX21heF9ldmVudF9jb3VudDsKLQkJfSBpbmZvXzM7Ci0KLQkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX0RBVEEgKi8KLQkJc3RydWN0IGVjX3Jlc3BvbnNlX21vdGlvbl9zZW5zb3JfZGF0YSBkYXRhOwotCi0JCS8qCi0JCSAqIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9FQ19SQVRFLCBNT1RJT05TRU5TRV9DTURfU0VOU09SX09EUiwKLQkJICogTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9SQU5HRSwKLQkJICogTU9USU9OU0VOU0VfQ01EX0tCX1dBS0VfQU5HTEUsCi0JCSAqIE1PVElPTlNFTlNFX0NNRF9GSUZPX0lOVF9FTkFCTEUgYW5kCi0JCSAqIE1PVElPTlNFTlNFX0NNRF9TUE9PRi4KLQkJICovCi0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJLyogQ3VycmVudCB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyIHF1ZXJpZWQuICovCi0JCQlpbnQzMl90IHJldDsKLQkJfSBlY19yYXRlLCBzZW5zb3Jfb2RyLCBzZW5zb3JfcmFuZ2UsIGtiX3dha2VfYW5nbGUsCi0JCSAgZmlmb19pbnRfZW5hYmxlLCBzcG9vZjsKLQotCQkvKgotCQkgKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfU0VOU09SX09GRlNFVCwKLQkJICogUEVSRk9STV9DQUxJQi4KLQkJICovCi0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgIHsKLQkJCWludDE2X3QgdGVtcDsKLQkJCWludDE2X3Qgb2Zmc2V0WzNdOwotCQl9IHNlbnNvcl9vZmZzZXQsIHBlcmZvcm1fY2FsaWI7Ci0KLQkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9TQ0FMRSAqLwotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkICB7Ci0JCQlpbnQxNl90IHRlbXA7Ci0JCQl1aW50MTZfdCBzY2FsZVszXTsKLQkJfSBzZW5zb3Jfc2NhbGU7Ci0KLQkJc3RydWN0IGVjX3Jlc3BvbnNlX21vdGlvbl9zZW5zZV9maWZvX2luZm8gZmlmb19pbmZvLCBmaWZvX2ZsdXNoOwotCi0JCXN0cnVjdCBlY19yZXNwb25zZV9tb3Rpb25fc2Vuc2VfZmlmb19kYXRhIGZpZm9fcmVhZDsKLQotCQlzdHJ1Y3QgX19lY190b2RvX3BhY2tlZCB7Ci0JCQl1aW50MTZfdCByZXNlcnZlZDsKLQkJCXVpbnQzMl90IGVuYWJsZWQ7Ci0JCQl1aW50MzJfdCBkaXNhYmxlZDsKLQkJfSBsaXN0X2FjdGl2aXRpZXM7Ci0KLQkJLyogTm8gcGFyYW1zIGZvciBzZXQgYWN0aXZpdHkgKi8KLQotCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfTElEX0FOR0xFICovCi0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJLyoKLQkJCSAqIEFuZ2xlIGJldHdlZW4gMCBhbmQgMzYwIGRlZ3JlZSBpZiBhdmFpbGFibGUsCi0JCQkgKiBMSURfQU5HTEVfVU5SRUxJQUJMRSBvdGhlcndpc2UuCi0JCQkgKi8KLQkJCXVpbnQxNl90IHZhbHVlOwotCQl9IGxpZF9hbmdsZTsKLQotCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfVEFCTEVUX01PREVfTElEX0FOR0xFLiAqLwotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCS8qCi0JCQkgKiBMaWQgYW5nbGUgdGhyZXNob2xkIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiB0YWJsZXQgYW5kCi0JCQkgKiBjbGFtc2hlbGwgbW9kZS4KLQkJCSAqLwotCQkJdWludDE2X3QgbGlkX2FuZ2xlOwotCi0JCQkvKiBIeXN0ZXJlc2lzIGRlZ3JlZS4gKi8KLQkJCXVpbnQxNl90IGh5c19kZWdyZWU7Ci0JCX0gdGFibGV0X21vZGVfdGhyZXNob2xkOwotCi0JfTsKLX0gX19lY190b2RvX3BhY2tlZDsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogRm9yY2UgbGlkIG9wZW4gY29tbWFuZCAqLwotCi0vKiBNYWtlIGxpZCBldmVudCBhbHdheXMgb3BlbiAqLwotI2RlZmluZSBFQ19DTURfRk9SQ0VfTElEX09QRU4gMHgwMDJDCi0KLXN0cnVjdCBlY19wYXJhbXNfZm9yY2VfbGlkX29wZW4gewotCXVpbnQ4X3QgZW5hYmxlZDsKLX0gX19lY19hbGlnbjE7Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIENvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgdGhlIHBvd2VyIGJ1dHRvbiAqLwotI2RlZmluZSBFQ19DTURfQ09ORklHX1BPV0VSX0JVVFRPTiAweDAwMkQKLQotZW51bSBlY19jb25maWdfcG93ZXJfYnV0dG9uX2ZsYWdzIHsKLQkvKiBFbmFibGUvRGlzYWJsZSBwb3dlciBidXR0b24gcHVsc2VzIGZvciB4ODYgZGV2aWNlcyAqLwotCUVDX1BPV0VSX0JVVFRPTl9FTkFCTEVfUFVMU0UgPSBCSVQoMCksCi19OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX2NvbmZpZ19wb3dlcl9idXR0b24gewotCS8qIFNlZSBlbnVtIGVjX2NvbmZpZ19wb3dlcl9idXR0b25fZmxhZ3MgKi8KLQl1aW50OF90IGZsYWdzOwotfSBfX2VjX2FsaWduMTsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogVVNCIGNoYXJnaW5nIGNvbnRyb2wgY29tbWFuZHMgKi8KLQotLyogU2V0IFVTQiBwb3J0IGNoYXJnaW5nIG1vZGUgKi8KLSNkZWZpbmUgRUNfQ01EX1VTQl9DSEFSR0VfU0VUX01PREUgMHgwMDMwCi0KLXN0cnVjdCBlY19wYXJhbXNfdXNiX2NoYXJnZV9zZXRfbW9kZSB7Ci0JdWludDhfdCB1c2JfcG9ydF9pZDsKLQl1aW50OF90IG1vZGU6NzsKLQl1aW50OF90IGluaGliaXRfY2hhcmdlOjE7Ci19IF9fZWNfYWxpZ24xOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBQZXJzaXN0ZW50IHN0b3JhZ2UgZm9yIGhvc3QgKi8KLQotLyogTWF4aW11bSBieXRlcyB0aGF0IGNhbiBiZSByZWFkL3dyaXR0ZW4gaW4gYSBzaW5nbGUgY29tbWFuZCAqLwotI2RlZmluZSBFQ19QU1RPUkVfU0laRV9NQVggNjQKLQotLyogR2V0IHBlcnNpc3RlbnQgc3RvcmFnZSBpbmZvICovCi0jZGVmaW5lIEVDX0NNRF9QU1RPUkVfSU5GTyAweDAwNDAKLQotc3RydWN0IGVjX3Jlc3BvbnNlX3BzdG9yZV9pbmZvIHsKLQkvKiBQZXJzaXN0ZW50IHN0b3JhZ2Ugc2l6ZSwgaW4gYnl0ZXMgKi8KLQl1aW50MzJfdCBwc3RvcmVfc2l6ZTsKLQkvKiBBY2Nlc3Mgc2l6ZTsgcmVhZC93cml0ZSBvZmZzZXQgYW5kIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRoaXMgKi8KLQl1aW50MzJfdCBhY2Nlc3Nfc2l6ZTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qCi0gKiBSZWFkIHBlcnNpc3RlbnQgc3RvcmFnZQotICoKLSAqIFJlc3BvbnNlIGlzIHBhcmFtcy5zaXplIGJ5dGVzIG9mIGRhdGEuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX1BTVE9SRV9SRUFEIDB4MDA0MQotCi1zdHJ1Y3QgZWNfcGFyYW1zX3BzdG9yZV9yZWFkIHsKLQl1aW50MzJfdCBvZmZzZXQ7ICAgLyogQnl0ZSBvZmZzZXQgdG8gcmVhZCAqLwotCXVpbnQzMl90IHNpemU7ICAgICAvKiBTaXplIHRvIHJlYWQgaW4gYnl0ZXMgKi8KLX0gX19lY19hbGlnbjQ7Ci0KLS8qIFdyaXRlIHBlcnNpc3RlbnQgc3RvcmFnZSAqLwotI2RlZmluZSBFQ19DTURfUFNUT1JFX1dSSVRFIDB4MDA0MgotCi1zdHJ1Y3QgZWNfcGFyYW1zX3BzdG9yZV93cml0ZSB7Ci0JdWludDMyX3Qgb2Zmc2V0OyAgIC8qIEJ5dGUgb2Zmc2V0IHRvIHdyaXRlICovCi0JdWludDMyX3Qgc2l6ZTsgICAgIC8qIFNpemUgdG8gd3JpdGUgaW4gYnl0ZXMgKi8KLQl1aW50OF90IGRhdGFbRUNfUFNUT1JFX1NJWkVfTUFYXTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIFJlYWwtdGltZSBjbG9jayAqLwotCi0vKiBSVEMgcGFyYW1zIGFuZCByZXNwb25zZSBzdHJ1Y3R1cmVzICovCi1zdHJ1Y3QgZWNfcGFyYW1zX3J0YyB7Ci0JdWludDMyX3QgdGltZTsKLX0gX19lY19hbGlnbjQ7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9ydGMgewotCXVpbnQzMl90IHRpbWU7Ci19IF9fZWNfYWxpZ240OwotCi0vKiBUaGVzZSB1c2UgZWNfcmVzcG9uc2VfcnRjICovCi0jZGVmaW5lIEVDX0NNRF9SVENfR0VUX1ZBTFVFIDB4MDA0NAotI2RlZmluZSBFQ19DTURfUlRDX0dFVF9BTEFSTSAweDAwNDUKLQotLyogVGhlc2UgYWxsIHVzZSBlY19wYXJhbXNfcnRjICovCi0jZGVmaW5lIEVDX0NNRF9SVENfU0VUX1ZBTFVFIDB4MDA0NgotI2RlZmluZSBFQ19DTURfUlRDX1NFVF9BTEFSTSAweDAwNDcKLQotLyogUGFzcyBhcyB0aW1lIHBhcmFtIHRvIFNFVF9BTEFSTSB0byBjbGVhciB0aGUgY3VycmVudCBhbGFybSAqLwotI2RlZmluZSBFQ19SVENfQUxBUk1fQ0xFQVIgMAotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBQb3J0ODAgbG9nIGFjY2VzcyAqLwotCi0vKiBNYXhpbXVtIGVudHJpZXMgdGhhdCBjYW4gYmUgcmVhZC93cml0dGVuIGluIGEgc2luZ2xlIGNvbW1hbmQgKi8KLSNkZWZpbmUgRUNfUE9SVDgwX1NJWkVfTUFYIDMyCi0KLS8qIEdldCBsYXN0IHBvcnQ4MCBjb2RlIGZyb20gcHJldmlvdXMgYm9vdCAqLwotI2RlZmluZSBFQ19DTURfUE9SVDgwX0xBU1RfQk9PVCAweDAwNDgKLSNkZWZpbmUgRUNfQ01EX1BPUlQ4MF9SRUFEIDB4MDA0OAotCi1lbnVtIGVjX3BvcnQ4MF9zdWJjbWQgewotCUVDX1BPUlQ4MF9HRVRfSU5GTyA9IDAsCi0JRUNfUE9SVDgwX1JFQURfQlVGRkVSLAotfTsKLQotc3RydWN0IGVjX3BhcmFtc19wb3J0ODBfcmVhZCB7Ci0JdWludDE2X3Qgc3ViY21kOwotCXVuaW9uIHsKLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQl1aW50MzJfdCBvZmZzZXQ7Ci0JCQl1aW50MzJfdCBudW1fZW50cmllczsKLQkJfSByZWFkX2J1ZmZlcjsKLQl9OwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfcG9ydDgwX3JlYWQgewotCXVuaW9uIHsKLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQl1aW50MzJfdCB3cml0ZXM7Ci0JCQl1aW50MzJfdCBoaXN0b3J5X3NpemU7Ci0JCQl1aW50MzJfdCBsYXN0X2Jvb3Q7Ci0JCX0gZ2V0X2luZm87Ci0JCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkJdWludDE2X3QgY29kZXNbRUNfUE9SVDgwX1NJWkVfTUFYXTsKLQkJfSBkYXRhOwotCX07Ci19IF9fZWNfdG9kb19wYWNrZWQ7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9wb3J0ODBfbGFzdF9ib290IHsKLQl1aW50MTZfdCBjb2RlOwotfSBfX2VjX2FsaWduMjsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogVGVtcG9yYXJ5IHNlY3VyZSBzdG9yYWdlIGZvciBob3N0IHZlcmlmaWVkIGJvb3QgdXNlICovCi0KLS8qIE51bWJlciBvZiBieXRlcyBpbiBhIHZzdG9yZSBzbG90ICovCi0jZGVmaW5lIEVDX1ZTVE9SRV9TTE9UX1NJWkUgNjQKLQotLyogTWF4aW11bSBudW1iZXIgb2YgdnN0b3JlIHNsb3RzICovCi0jZGVmaW5lIEVDX1ZTVE9SRV9TTE9UX01BWCAzMgotCi0vKiBHZXQgcGVyc2lzdGVudCBzdG9yYWdlIGluZm8gKi8KLSNkZWZpbmUgRUNfQ01EX1ZTVE9SRV9JTkZPIDB4MDA0OQotc3RydWN0IGVjX3Jlc3BvbnNlX3ZzdG9yZV9pbmZvIHsKLQkvKiBJbmRpY2F0ZXMgd2hpY2ggc2xvdHMgYXJlIGxvY2tlZCAqLwotCXVpbnQzMl90IHNsb3RfbG9ja2VkOwotCS8qIFRvdGFsIG51bWJlciBvZiBzbG90cyBhdmFpbGFibGUgKi8KLQl1aW50OF90IHNsb3RfY291bnQ7Ci19IF9fZWNfYWxpZ25fc2l6ZTE7Ci0KLS8qCi0gKiBSZWFkIHRlbXBvcmFyeSBzZWN1cmUgc3RvcmFnZQotICoKLSAqIFJlc3BvbnNlIGlzIEVDX1ZTVE9SRV9TTE9UX1NJWkUgYnl0ZXMgb2YgZGF0YS4KLSAqLwotI2RlZmluZSBFQ19DTURfVlNUT1JFX1JFQUQgMHgwMDRBCi0KLXN0cnVjdCBlY19wYXJhbXNfdnN0b3JlX3JlYWQgewotCXVpbnQ4X3Qgc2xvdDsgLyogU2xvdCB0byByZWFkIGZyb20gKi8KLX0gX19lY19hbGlnbjE7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV92c3RvcmVfcmVhZCB7Ci0JdWludDhfdCBkYXRhW0VDX1ZTVE9SRV9TTE9UX1NJWkVdOwotfSBfX2VjX2FsaWduMTsKLQotLyoKLSAqIFdyaXRlIHRlbXBvcmFyeSBzZWN1cmUgc3RvcmFnZSBhbmQgbG9jayBpdC4KLSAqLwotI2RlZmluZSBFQ19DTURfVlNUT1JFX1dSSVRFIDB4MDA0QgotCi1zdHJ1Y3QgZWNfcGFyYW1zX3ZzdG9yZV93cml0ZSB7Ci0JdWludDhfdCBzbG90OyAvKiBTbG90IHRvIHdyaXRlIHRvICovCi0JdWludDhfdCBkYXRhW0VDX1ZTVE9SRV9TTE9UX1NJWkVdOwotfSBfX2VjX2FsaWduMTsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogVGhlcm1hbCBlbmdpbmUgY29tbWFuZHMuIE5vdGUgdGhhdCB0aGVyZSBhcmUgdHdvIGltcGxlbWVudGF0aW9ucy4gV2UnbGwKLSAqIHJldXNlIHRoZSBjb21tYW5kIG51bWJlciwgYnV0IHRoZSBkYXRhIGFuZCBiZWhhdmlvciBpcyBpbmNvbXBhdGlibGUuCi0gKiBWZXJzaW9uIDAgaXMgd2hhdCBvcmlnaW5hbGx5IHNoaXBwZWQgb24gTGluay4KLSAqIFZlcnNpb24gMSBzZXBhcmF0ZXMgdGhlIENQVSB0aGVybWFsIGxpbWl0cyBmcm9tIHRoZSBmYW4gY29udHJvbC4KLSAqLwotCi0jZGVmaW5lIEVDX0NNRF9USEVSTUFMX1NFVF9USFJFU0hPTEQgMHgwMDUwCi0jZGVmaW5lIEVDX0NNRF9USEVSTUFMX0dFVF9USFJFU0hPTEQgMHgwMDUxCi0KLS8qIFRoZSB2ZXJzaW9uIDAgc3RydWN0cyBhcmUgb3BhcXVlLiBZb3UgaGF2ZSB0byBrbm93IHdoYXQgdGhleSBhcmUgZm9yCi0gKiB0aGUgZ2V0L3NldCBjb21tYW5kcyB0byBtYWtlIGFueSBzZW5zZS4KLSAqLwotCi0vKiBWZXJzaW9uIDAgLSBzZXQgKi8KLXN0cnVjdCBlY19wYXJhbXNfdGhlcm1hbF9zZXRfdGhyZXNob2xkIHsKLQl1aW50OF90IHNlbnNvcl90eXBlOwotCXVpbnQ4X3QgdGhyZXNob2xkX2lkOwotCXVpbnQxNl90IHZhbHVlOwotfSBfX2VjX2FsaWduMjsKLQotLyogVmVyc2lvbiAwIC0gZ2V0ICovCi1zdHJ1Y3QgZWNfcGFyYW1zX3RoZXJtYWxfZ2V0X3RocmVzaG9sZCB7Ci0JdWludDhfdCBzZW5zb3JfdHlwZTsKLQl1aW50OF90IHRocmVzaG9sZF9pZDsKLX0gX19lY19hbGlnbjE7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV90aGVybWFsX2dldF90aHJlc2hvbGQgewotCXVpbnQxNl90IHZhbHVlOwotfSBfX2VjX2FsaWduMjsKLQotCi0vKiBUaGUgdmVyc2lvbiAxIHN0cnVjdHMgYXJlIHZpc2libGUuICovCi1lbnVtIGVjX3RlbXBfdGhyZXNob2xkcyB7Ci0JRUNfVEVNUF9USFJFU0hfV0FSTiA9IDAsCi0JRUNfVEVNUF9USFJFU0hfSElHSCwKLQlFQ19URU1QX1RIUkVTSF9IQUxULAotCi0JRUNfVEVNUF9USFJFU0hfQ09VTlQKLX07Ci0KLS8qCi0gKiBUaGVybWFsIGNvbmZpZ3VyYXRpb24gZm9yIG9uZSB0ZW1wZXJhdHVyZSBzZW5zb3IuIFRlbXBzIGFyZSBpbiBkZWdyZWVzIEsuCi0gKiBaZXJvIHZhbHVlcyB3aWxsIGJlIHNpbGVudGx5IGlnbm9yZWQgYnkgdGhlIHRoZXJtYWwgdGFzay4KLSAqCi0gKiBTZXQgJ3RlbXBfaG9zdCcgdmFsdWUgYWxsb3dzIHRoZXJtYWwgdGFzayB0byB0cmlnZ2VyIHNvbWUgZXZlbnQgd2l0aCAxIGRlZ3JlZQotICogaHlzdGVyZXNpcy4KLSAqIEZvciBleGFtcGxlLAotICoJdGVtcF9ob3N0W0VDX1RFTVBfVEhSRVNIX0hJR0hdID0gMzAwIEsKLSAqCXRlbXBfaG9zdF9yZWxlYXNlW0VDX1RFTVBfVEhSRVNIX0hJR0hdID0gMCBLCi0gKiBFQyB3aWxsIHRocm90dGxlIGFwIHdoZW4gdGVtcGVyYXR1cmUgPj0gMzAxIEssIGFuZCByZWxlYXNlIHRocm90dGxpbmcgd2hlbgotICogdGVtcGVyYXR1cmUgPD0gMjk5IEsuCi0gKgotICogU2V0ICd0ZW1wX2hvc3RfcmVsZWFzZScgdmFsdWUgYWxsb3dzIHRoZXJtYWwgdGFzayBoYXMgYSBjdXN0b20gaHlzdGVyZXNpcy4KLSAqIEZvciBleGFtcGxlLAotICoJdGVtcF9ob3N0W0VDX1RFTVBfVEhSRVNIX0hJR0hdID0gMzAwIEsKLSAqCXRlbXBfaG9zdF9yZWxlYXNlW0VDX1RFTVBfVEhSRVNIX0hJR0hdID0gMjk1IEsKLSAqIEVDIHdpbGwgdGhyb3R0bGUgYXAgd2hlbiB0ZW1wZXJhdHVyZSA+PSAzMDEgSywgYW5kIHJlbGVhc2UgdGhyb3R0bGluZyB3aGVuCi0gKiB0ZW1wZXJhdHVyZSA8PSAyOTQgSy4KLSAqCi0gKiBOb3RlIHRoYXQgdGhpcyBzdHJ1Y3R1cmUgaXMgYSBzdWItc3RydWN0dXJlIG9mCi0gKiBlY19wYXJhbXNfdGhlcm1hbF9zZXRfdGhyZXNob2xkX3YxLCBidXQgbWFpbnRhaW5zIGl0cyBhbGlnbm1lbnQgdGhlcmUuCi0gKi8KLXN0cnVjdCBlY190aGVybWFsX2NvbmZpZyB7Ci0JdWludDMyX3QgdGVtcF9ob3N0W0VDX1RFTVBfVEhSRVNIX0NPVU5UXTsgLyogbGV2ZWxzIG9mIGhvdG5lc3MgKi8KLQl1aW50MzJfdCB0ZW1wX2hvc3RfcmVsZWFzZVtFQ19URU1QX1RIUkVTSF9DT1VOVF07IC8qIHJlbGVhc2UgbGV2ZWxzICovCi0JdWludDMyX3QgdGVtcF9mYW5fb2ZmOwkJLyogbm8gYWN0aXZlIGNvb2xpbmcgbmVlZGVkICovCi0JdWludDMyX3QgdGVtcF9mYW5fbWF4OwkJLyogbWF4IGFjdGl2ZSBjb29saW5nIG5lZWRlZCAqLwotfSBfX2VjX2FsaWduNDsKLQotLyogVmVyc2lvbiAxIC0gZ2V0IGNvbmZpZyBmb3Igb25lIHNlbnNvci4gKi8KLXN0cnVjdCBlY19wYXJhbXNfdGhlcm1hbF9nZXRfdGhyZXNob2xkX3YxIHsKLQl1aW50MzJfdCBzZW5zb3JfbnVtOwotfSBfX2VjX2FsaWduNDsKLS8qIFRoaXMgcmV0dXJucyBhIHN0cnVjdCBlY190aGVybWFsX2NvbmZpZyAqLwotCi0vKgotICogVmVyc2lvbiAxIC0gc2V0IGNvbmZpZyBmb3Igb25lIHNlbnNvci4KLSAqIFVzZSByZWFkLW1vZGlmeS13cml0ZSBmb3IgYmVzdCByZXN1bHRzIQotICovCi1zdHJ1Y3QgZWNfcGFyYW1zX3RoZXJtYWxfc2V0X3RocmVzaG9sZF92MSB7Ci0JdWludDMyX3Qgc2Vuc29yX251bTsKLQlzdHJ1Y3QgZWNfdGhlcm1hbF9jb25maWcgY2ZnOwotfSBfX2VjX2FsaWduNDsKLS8qIFRoaXMgcmV0dXJucyBubyBkYXRhICovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBUb2dnbGUgYXV0b21hdGljIGZhbiBjb250cm9sICovCi0jZGVmaW5lIEVDX0NNRF9USEVSTUFMX0FVVE9fRkFOX0NUUkwgMHgwMDUyCi0KLS8qIFZlcnNpb24gMSBvZiBpbnB1dCBwYXJhbXMgKi8KLXN0cnVjdCBlY19wYXJhbXNfYXV0b19mYW5fY3RybF92MSB7Ci0JdWludDhfdCBmYW5faWR4OwotfSBfX2VjX2FsaWduMTsKLQotLyogR2V0L1NldCBUTVAwMDYgY2FsaWJyYXRpb24gZGF0YSAqLwotI2RlZmluZSBFQ19DTURfVE1QMDA2X0dFVF9DQUxJQlJBVElPTiAweDAwNTMKLSNkZWZpbmUgRUNfQ01EX1RNUDAwNl9TRVRfQ0FMSUJSQVRJT04gMHgwMDU0Ci0KLS8qCi0gKiBUaGUgb3JpZ2luYWwgVE1QMDA2IGNhbGlicmF0aW9uIG9ubHkgbmVlZGVkIGZvdXIgcGFyYW1zLCBidXQgbm93IHdlIG5lZWQKLSAqIG1vcmUuIFNpbmNlIHRoZSBhbGdvcml0aG0gaXMgbm90aGluZyBidXQgbWFnaWMgbnVtYmVycyBhbnl3YXksIHdlJ2xsIGxlYXZlCi0gKiB0aGUgcGFyYW1zIG9wYXF1ZS4gVGhlIHYxICJnZXQiIHJlc3BvbnNlIHdpbGwgaW5jbHVkZSB0aGUgYWxnb3JpdGhtIG51bWJlcgotICogYW5kIGhvdyBtYW55IHBhcmFtcyBpdCByZXF1aXJlcy4gVGhhdCB3YXkgd2UgY2FuIGNoYW5nZSB0aGUgRUMgY29kZSB3aXRob3V0Ci0gKiBuZWVkaW5nIHRvIHVwZGF0ZSB0aGlzIGZpbGUuIFdlIGNhbiBhbHNvIHVzZSBhIGRpZmZlcmVudCBhbGdvcml0aG0gb24gZWFjaAotICogc2Vuc29yLgotICovCi0KLS8qIFRoaXMgaXMgdGhlIHNhbWUgc3RydWN0IGZvciBib3RoIHYwIGFuZCB2MS4gKi8KLXN0cnVjdCBlY19wYXJhbXNfdG1wMDA2X2dldF9jYWxpYnJhdGlvbiB7Ci0JdWludDhfdCBpbmRleDsKLX0gX19lY19hbGlnbjE7Ci0KLS8qIFZlcnNpb24gMCAqLwotc3RydWN0IGVjX3Jlc3BvbnNlX3RtcDAwNl9nZXRfY2FsaWJyYXRpb25fdjAgewotCWZsb2F0IHMwOwotCWZsb2F0IGIwOwotCWZsb2F0IGIxOwotCWZsb2F0IGIyOwotfSBfX2VjX2FsaWduNDsKLQotc3RydWN0IGVjX3BhcmFtc190bXAwMDZfc2V0X2NhbGlicmF0aW9uX3YwIHsKLQl1aW50OF90IGluZGV4OwotCXVpbnQ4X3QgcmVzZXJ2ZWRbM107Ci0JZmxvYXQgczA7Ci0JZmxvYXQgYjA7Ci0JZmxvYXQgYjE7Ci0JZmxvYXQgYjI7Ci19IF9fZWNfYWxpZ240OwotCi0vKiBWZXJzaW9uIDEgKi8KLXN0cnVjdCBlY19yZXNwb25zZV90bXAwMDZfZ2V0X2NhbGlicmF0aW9uX3YxIHsKLQl1aW50OF90IGFsZ29yaXRobTsKLQl1aW50OF90IG51bV9wYXJhbXM7Ci0JdWludDhfdCByZXNlcnZlZFsyXTsKLQlmbG9hdCB2YWxbMF07Ci19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX3RtcDAwNl9zZXRfY2FsaWJyYXRpb25fdjEgewotCXVpbnQ4X3QgaW5kZXg7Ci0JdWludDhfdCBhbGdvcml0aG07Ci0JdWludDhfdCBudW1fcGFyYW1zOwotCXVpbnQ4X3QgcmVzZXJ2ZWQ7Ci0JZmxvYXQgdmFsWzBdOwotfSBfX2VjX2FsaWduNDsKLQotCi0vKiBSZWFkIHJhdyBUTVAwMDYgZGF0YSAqLwotI2RlZmluZSBFQ19DTURfVE1QMDA2X0dFVF9SQVcgMHgwMDU1Ci0KLXN0cnVjdCBlY19wYXJhbXNfdG1wMDA2X2dldF9yYXcgewotCXVpbnQ4X3QgaW5kZXg7Ci19IF9fZWNfYWxpZ24xOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfdG1wMDA2X2dldF9yYXcgewotCWludDMyX3QgdDsgIC8qIEluIDEvMTAwIEsgKi8KLQlpbnQzMl90IHY7ICAvKiBJbiBuViAqLwotfSBfX2VjX2FsaWduNDsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogTUtCUCAtIE1hdHJpeCBLZXlCb2FyZCBQcm90b2NvbCAqLwotCi0vKgotICogUmVhZCBrZXkgc3RhdGUKLSAqCi0gKiBSZXR1cm5zIHJhdyBkYXRhIGZvciBrZXlib2FyZCBjb2xzOyBzZWUgZWNfcmVzcG9uc2VfbWticF9pbmZvLmNvbHMgZm9yCi0gKiBleHBlY3RlZCByZXNwb25zZSBzaXplLgotICoKLSAqIE5PVEU6IFRoaXMgaGFzIGJlZW4gc3VwZXJzZWRlZCBieSBFQ19DTURfTUtCUF9HRVRfTkVYVF9FVkVOVC4gIElmIHlvdSB3aXNoCi0gKiB0byBvYnRhaW4gdGhlIGluc3RhbnRhbmVvdXMgc3RhdGUsIHVzZSBFQ19DTURfTUtCUF9JTkZPIHdpdGggdGhlIHR5cGUKLSAqIEVDX01LQlBfSU5GT19DVVJSRU5UIGFuZCBldmVudCBFQ19NS0JQX0VWRU5UX0tFWV9NQVRSSVguCi0gKi8KLSNkZWZpbmUgRUNfQ01EX01LQlBfU1RBVEUgMHgwMDYwCi0KLS8qCi0gKiBQcm92aWRlIGluZm9ybWF0aW9uIGFib3V0IHZhcmlvdXMgTUtCUCB0aGluZ3MuICBTZWUgZW51bSBlY19ta2JwX2luZm9fdHlwZS4KLSAqLwotI2RlZmluZSBFQ19DTURfTUtCUF9JTkZPIDB4MDA2MQotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfbWticF9pbmZvIHsKLQl1aW50MzJfdCByb3dzOwotCXVpbnQzMl90IGNvbHM7Ci0JLyogRm9ybWVybHkgInN3aXRjaGVzIiwgd2hpY2ggd2FzIDAuICovCi0JdWludDhfdCByZXNlcnZlZDsKLX0gX19lY19hbGlnbl9zaXplMTsKLQotc3RydWN0IGVjX3BhcmFtc19ta2JwX2luZm8gewotCXVpbnQ4X3QgaW5mb190eXBlOwotCXVpbnQ4X3QgZXZlbnRfdHlwZTsKLX0gX19lY19hbGlnbjE7Ci0KLWVudW0gZWNfbWticF9pbmZvX3R5cGUgewotCS8qCi0JICogSW5mbyBhYm91dCB0aGUga2V5Ym9hcmQgbWF0cml4OiBudW1iZXIgb2Ygcm93cyBhbmQgY29sdW1ucy4KLQkgKgotCSAqIFJldHVybnMgc3RydWN0IGVjX3Jlc3BvbnNlX21rYnBfaW5mby4KLQkgKi8KLQlFQ19NS0JQX0lORk9fS0JEID0gMCwKLQotCS8qCi0JICogRm9yIGJ1dHRvbnMgYW5kIHN3aXRjaGVzLCBpbmZvIGFib3V0IHdoaWNoIHNwZWNpZmljYWxseSBhcmUKLQkgKiBzdXBwb3J0ZWQuICBldmVudF90eXBlIG11c3QgYmUgc2V0IHRvIG9uZSBvZiB0aGUgdmFsdWVzIGluIGVudW0KLQkgKiBlY19ta2JwX2V2ZW50LgotCSAqCi0JICogRm9yIEVDX01LQlBfRVZFTlRfQlVUVE9OIGFuZCBFQ19NS0JQX0VWRU5UX1NXSVRDSCwgcmV0dXJucyBhIDQgYnl0ZQotCSAqIGJpdG1hc2sgaW5kaWNhdGluZyB3aGljaCBidXR0b25zIG9yIHN3aXRjaGVzIGFyZSBwcmVzZW50LiAgU2VlIHRoZQotCSAqIGJpdCBpbmlkaWNlcyBiZWxvdy4KLQkgKi8KLQlFQ19NS0JQX0lORk9fU1VQUE9SVEVEID0gMSwKLQotCS8qCi0JICogSW5zdGFudGFuZW91cyBzdGF0ZSBvZiBidXR0b25zIGFuZCBzd2l0Y2hlcy4KLQkgKgotCSAqIGV2ZW50X3R5cGUgbXVzdCBiZSBzZXQgdG8gb25lIG9mIHRoZSB2YWx1ZXMgaW4gZW51bSBlY19ta2JwX2V2ZW50LgotCSAqCi0JICogRm9yIEVDX01LQlBfRVZFTlRfS0VZX01BVFJJWCwgcmV0dXJucyB1aW50OF90IGtleV9tYXRyaXhbMTNdCi0JICogaW5kaWNhdGluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUga2V5Ym9hcmQgbWF0cml4LgotCSAqCi0JICogRm9yIEVDX01LQlBfRVZFTlRfSE9TVF9FVkVOVCwgcmV0dXJuIHVpbnQzMl90IGhvc3RfZXZlbnQsIHRoZSByYXcKLQkgKiBldmVudCBzdGF0ZS4KLQkgKgotCSAqIEZvciBFQ19NS0JQX0VWRU5UX0JVVFRPTiwgcmV0dXJucyB1aW50MzJfdCBidXR0b25zLCBpbmRpY2F0aW5nIHRoZQotCSAqIHN0YXRlIG9mIHN1cHBvcnRlZCBidXR0b25zLgotCSAqCi0JICogRm9yIEVDX01LQlBfRVZFTlRfU1dJVENILCByZXR1cm5zIHVpbnQzMl90IHN3aXRjaGVzLCBpbmRpY2F0aW5nIHRoZQotCSAqIHN0YXRlIG9mIHN1cHBvcnRlZCBzd2l0Y2hlcy4KLQkgKi8KLQlFQ19NS0JQX0lORk9fQ1VSUkVOVCA9IDIsCi19OwotCi0vKiBTaW11bGF0ZSBrZXkgcHJlc3MgKi8KLSNkZWZpbmUgRUNfQ01EX01LQlBfU0lNVUxBVEVfS0VZIDB4MDA2MgotCi1zdHJ1Y3QgZWNfcGFyYW1zX21rYnBfc2ltdWxhdGVfa2V5IHsKLQl1aW50OF90IGNvbDsKLQl1aW50OF90IHJvdzsKLQl1aW50OF90IHByZXNzZWQ7Ci19IF9fZWNfYWxpZ24xOwotCi0jZGVmaW5lIEVDX0NNRF9HRVRfS0VZQk9BUkRfSUQgMHgwMDYzCi0KLXN0cnVjdCBlY19yZXNwb25zZV9rZXlib2FyZF9pZCB7Ci0JdWludDMyX3Qga2V5Ym9hcmRfaWQ7Ci19IF9fZWNfYWxpZ240OwotCi1lbnVtIGtleWJvYXJkX2lkIHsKLQlLRVlCT0FSRF9JRF9VTlNVUFBPUlRFRCA9IDAsCi0JS0VZQk9BUkRfSURfVU5SRUFEQUJMRSA9IDB4ZmZmZmZmZmYsCi19OwotCi0vKiBDb25maWd1cmUga2V5Ym9hcmQgc2Nhbm5pbmcgKi8KLSNkZWZpbmUgRUNfQ01EX01LQlBfU0VUX0NPTkZJRyAweDAwNjQKLSNkZWZpbmUgRUNfQ01EX01LQlBfR0VUX0NPTkZJRyAweDAwNjUKLQotLyogZmxhZ3MgKi8KLWVudW0gbWticF9jb25maWdfZmxhZ3MgewotCUVDX01LQlBfRkxBR1NfRU5BQkxFID0gMSwJLyogRW5hYmxlIGtleWJvYXJkIHNjYW5uaW5nICovCi19OwotCi1lbnVtIG1rYnBfY29uZmlnX3ZhbGlkIHsKLQlFQ19NS0JQX1ZBTElEX1NDQU5fUEVSSU9ECQk9IEJJVCgwKSwKLQlFQ19NS0JQX1ZBTElEX1BPTExfVElNRU9VVAkJPSBCSVQoMSksCi0JRUNfTUtCUF9WQUxJRF9NSU5fUE9TVF9TQ0FOX0RFTEFZCT0gQklUKDMpLAotCUVDX01LQlBfVkFMSURfT1VUUFVUX1NFVFRMRQkJPSBCSVQoNCksCi0JRUNfTUtCUF9WQUxJRF9ERUJPVU5DRV9ET1dOCQk9IEJJVCg1KSwKLQlFQ19NS0JQX1ZBTElEX0RFQk9VTkNFX1VQCQk9IEJJVCg2KSwKLQlFQ19NS0JQX1ZBTElEX0ZJRk9fTUFYX0RFUFRICQk9IEJJVCg3KSwKLX07Ci0KLS8qCi0gKiBDb25maWd1cmF0aW9uIGZvciBvdXIga2V5IHNjYW5uaW5nIGFsZ29yaXRobS4KLSAqCi0gKiBOb3RlIHRoYXQgdGhpcyBpcyB1c2VkIGFzIGEgc3ViLXN0cnVjdHVyZSBvZgotICogZWNfe3BhcmFtcy9yZXNwb25zZX1fbWticF9nZXRfY29uZmlnLgotICovCi1zdHJ1Y3QgZWNfbWticF9jb25maWcgewotCXVpbnQzMl90IHZhbGlkX21hc2s7CQkvKiB2YWxpZCBmaWVsZHMgKi8KLQl1aW50OF90IGZsYWdzOwkJLyogc29tZSBmbGFncyAoZW51bSBta2JwX2NvbmZpZ19mbGFncykgKi8KLQl1aW50OF90IHZhbGlkX2ZsYWdzOwkJLyogd2hpY2ggZmxhZ3MgYXJlIHZhbGlkICovCi0JdWludDE2X3Qgc2Nhbl9wZXJpb2RfdXM7CS8qIHBlcmlvZCBiZXR3ZWVuIHN0YXJ0IG9mIHNjYW5zICovCi0JLyogcmV2ZXJ0IHRvIGludGVycnVwdCBtb2RlIGFmdGVyIG5vIGFjdGl2aXR5IGZvciB0aGlzIGxvbmcgKi8KLQl1aW50MzJfdCBwb2xsX3RpbWVvdXRfdXM7Ci0JLyoKLQkgKiBtaW5pbXVtIHBvc3Qtc2NhbiByZWxheCB0aW1lLiBPbmNlIHdlIGZpbmlzaCBhIHNjYW4gd2UgY2hlY2sKLQkgKiB0aGUgdGltZSB1bnRpbCB3ZSBhcmUgZHVlIHRvIHN0YXJ0IHRoZSBuZXh0IG9uZS4gSWYgdGhpcyB0aW1lIGlzCi0JICogc2hvcnRlciB0aGlzIGZpZWxkLCB3ZSB1c2UgdGhpcyBpbnN0ZWFkLgotCSAqLwotCXVpbnQxNl90IG1pbl9wb3N0X3NjYW5fZGVsYXlfdXM7Ci0JLyogZGVsYXkgYmV0d2VlbiBzZXR0aW5nIHVwIG91dHB1dCBhbmQgd2FpdGluZyBmb3IgaXQgdG8gc2V0dGxlICovCi0JdWludDE2X3Qgb3V0cHV0X3NldHRsZV91czsKLQl1aW50MTZfdCBkZWJvdW5jZV9kb3duX3VzOwkvKiB0aW1lIGZvciBkZWJvdW5jZSBvbiBrZXkgZG93biAqLwotCXVpbnQxNl90IGRlYm91bmNlX3VwX3VzOwkvKiB0aW1lIGZvciBkZWJvdW5jZSBvbiBrZXkgdXAgKi8KLQkvKiBtYXhpbXVtIGRlcHRoIHRvIGFsbG93IGZvciBmaWZvICgwID0gbm8ga2V5c2NhbiBvdXRwdXQpICovCi0JdWludDhfdCBmaWZvX21heF9kZXB0aDsKLX0gX19lY19hbGlnbl9zaXplMTsKLQotc3RydWN0IGVjX3BhcmFtc19ta2JwX3NldF9jb25maWcgewotCXN0cnVjdCBlY19ta2JwX2NvbmZpZyBjb25maWc7Ci19IF9fZWNfYWxpZ25fc2l6ZTE7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9ta2JwX2dldF9jb25maWcgewotCXN0cnVjdCBlY19ta2JwX2NvbmZpZyBjb25maWc7Ci19IF9fZWNfYWxpZ25fc2l6ZTE7Ci0KLS8qIFJ1biB0aGUga2V5IHNjYW4gZW11bGF0aW9uICovCi0jZGVmaW5lIEVDX0NNRF9LRVlTQ0FOX1NFUV9DVFJMIDB4MDA2NgotCi1lbnVtIGVjX2tleXNjYW5fc2VxX2NtZCB7Ci0JRUNfS0VZU0NBTl9TRVFfU1RBVFVTID0gMCwJLyogR2V0IHN0YXR1cyBpbmZvcm1hdGlvbiAqLwotCUVDX0tFWVNDQU5fU0VRX0NMRUFSID0gMSwJLyogQ2xlYXIgc2VxdWVuY2UgKi8KLQlFQ19LRVlTQ0FOX1NFUV9BREQgPSAyLAkJLyogQWRkIGl0ZW0gdG8gc2VxdWVuY2UgKi8KLQlFQ19LRVlTQ0FOX1NFUV9TVEFSVCA9IDMsCS8qIFN0YXJ0IHJ1bm5pbmcgc2VxdWVuY2UgKi8KLQlFQ19LRVlTQ0FOX1NFUV9DT0xMRUNUID0gNCwJLyogQ29sbGVjdCBzZXF1ZW5jZSBzdW1tYXJ5IGRhdGEgKi8KLX07Ci0KLWVudW0gZWNfY29sbGVjdF9mbGFncyB7Ci0JLyoKLQkgKiBJbmRpY2F0ZXMgdGhpcyBzY2FuIHdhcyBwcm9jZXNzZWQgYnkgdGhlIEVDLiBEdWUgdG8gdGltaW5nLCBzb21lCi0JICogc2NhbnMgbWF5IGJlIHNraXBwZWQuCi0JICovCi0JRUNfS0VZU0NBTl9TRVFfRkxBR19ET05FCT0gQklUKDApLAotfTsKLQotc3RydWN0IGVjX2NvbGxlY3RfaXRlbSB7Ci0JdWludDhfdCBmbGFnczsJCS8qIHNvbWUgZmxhZ3MgKGVudW0gZWNfY29sbGVjdF9mbGFncykgKi8KLX0gX19lY19hbGlnbjE7Ci0KLXN0cnVjdCBlY19wYXJhbXNfa2V5c2Nhbl9zZXFfY3RybCB7Ci0JdWludDhfdCBjbWQ7CS8qIENvbW1hbmQgdG8gc2VuZCAoZW51bSBlY19rZXlzY2FuX3NlcV9jbWQpICovCi0JdW5pb24gewotCQlzdHJ1Y3QgX19lY19hbGlnbjEgewotCQkJdWludDhfdCBhY3RpdmU7CQkvKiBzdGlsbCBhY3RpdmUgKi8KLQkJCXVpbnQ4X3QgbnVtX2l0ZW1zOwkvKiBudW1iZXIgb2YgaXRlbXMgKi8KLQkJCS8qIEN1cnJlbnQgaXRlbSBiZWluZyBwcmVzZW50ZWQgKi8KLQkJCXVpbnQ4X3QgY3VyX2l0ZW07Ci0JCX0gc3RhdHVzOwotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCS8qCi0JCQkgKiBBYnNvbHV0ZSB0aW1lIGZvciB0aGlzIHNjYW4sIG1lYXN1cmVkIGZyb20gdGhlCi0JCQkgKiBzdGFydCBvZiB0aGUgc2VxdWVuY2UuCi0JCQkgKi8KLQkJCXVpbnQzMl90IHRpbWVfdXM7Ci0JCQl1aW50OF90IHNjYW5bMF07CS8qIGtleXNjYW4gZGF0YSAqLwotCQl9IGFkZDsKLQkJc3RydWN0IF9fZWNfYWxpZ24xIHsKLQkJCXVpbnQ4X3Qgc3RhcnRfaXRlbTsJLyogRmlyc3QgaXRlbSB0byByZXR1cm4gKi8KLQkJCXVpbnQ4X3QgbnVtX2l0ZW1zOwkvKiBOdW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuICovCi0JCX0gY29sbGVjdDsKLQl9OwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi1zdHJ1Y3QgZWNfcmVzdWx0X2tleXNjYW5fc2VxX2N0cmwgewotCXVuaW9uIHsKLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQl1aW50OF90IG51bV9pdGVtczsJLyogTnVtYmVyIG9mIGl0ZW1zICovCi0JCQkvKiBEYXRhIGZvciBlYWNoIGl0ZW0gKi8KLQkJCXN0cnVjdCBlY19jb2xsZWN0X2l0ZW0gaXRlbVswXTsKLQkJfSBjb2xsZWN0OwotCX07Ci19IF9fZWNfdG9kb19wYWNrZWQ7Ci0KLS8qCi0gKiBHZXQgdGhlIG5leHQgcGVuZGluZyBNS0JQIGV2ZW50LgotICoKLSAqIFJldHVybnMgRUNfUkVTX1VOQVZBSUxBQkxFIGlmIHRoZXJlIGlzIG5vIGV2ZW50IHBlbmRpbmcuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0dFVF9ORVhUX0VWRU5UIDB4MDA2NwotCi0jZGVmaW5lIEVDX01LQlBfSEFTX01PUkVfRVZFTlRTX1NISUZUIDcKLQotLyoKLSAqIFdlIHVzZSB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgdGhlIGV2ZW50IHR5cGUgdG8gaW5kaWNhdGUgdG8gdGhlIGhvc3QKLSAqIHRoYXQgdGhlIEVDIGhhcyBtb3JlIE1LQlAgZXZlbnRzIGF2YWlsYWJsZSB0byBwcm92aWRlLgotICovCi0jZGVmaW5lIEVDX01LQlBfSEFTX01PUkVfRVZFTlRTIEJJVChFQ19NS0JQX0hBU19NT1JFX0VWRU5UU19TSElGVCkKLQotLyogVGhlIG1hc2sgdG8gYXBwbHkgdG8gZ2V0IHRoZSByYXcgZXZlbnQgdHlwZSAqLwotI2RlZmluZSBFQ19NS0JQX0VWRU5UX1RZUEVfTUFTSyAoQklUKEVDX01LQlBfSEFTX01PUkVfRVZFTlRTX1NISUZUKSAtIDEpCi0KLWVudW0gZWNfbWticF9ldmVudCB7Ci0JLyogS2V5Ym9hcmQgbWF0cml4IGNoYW5nZWQuIFRoZSBldmVudCBkYXRhIGlzIHRoZSBuZXcgbWF0cml4IHN0YXRlLiAqLwotCUVDX01LQlBfRVZFTlRfS0VZX01BVFJJWCA9IDAsCi0KLQkvKiBOZXcgaG9zdCBldmVudC4gVGhlIGV2ZW50IGRhdGEgaXMgNCBieXRlcyBvZiBob3N0IGV2ZW50IGZsYWdzLiAqLwotCUVDX01LQlBfRVZFTlRfSE9TVF9FVkVOVCA9IDEsCi0KLQkvKiBOZXcgU2Vuc29yIEZJRk8gZGF0YS4gVGhlIGV2ZW50IGRhdGEgaXMgZmlmb19pbmZvIHN0cnVjdHVyZS4gKi8KLQlFQ19NS0JQX0VWRU5UX1NFTlNPUl9GSUZPID0gMiwKLQotCS8qIFRoZSBzdGF0ZSBvZiB0aGUgbm9uLW1hdHJpeGVkIGJ1dHRvbnMgaGF2ZSBjaGFuZ2VkLiAqLwotCUVDX01LQlBfRVZFTlRfQlVUVE9OID0gMywKLQotCS8qIFRoZSBzdGF0ZSBvZiB0aGUgc3dpdGNoZXMgaGF2ZSBjaGFuZ2VkLiAqLwotCUVDX01LQlBfRVZFTlRfU1dJVENIID0gNCwKLQotCS8qIE5ldyBGaW5nZXJwcmludCBzZW5zb3IgZXZlbnQsIHRoZSBldmVudCBkYXRhIGlzIGZwX2V2ZW50cyBiaXRtYXAuICovCi0JRUNfTUtCUF9FVkVOVF9GSU5HRVJQUklOVCA9IDUsCi0KLQkvKgotCSAqIFN5c3JxIGV2ZW50OiBzZW5kIGVtdWxhdGVkIHN5c3JxLiBUaGUgZXZlbnQgZGF0YSBpcyBzeXNycSwKLQkgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSBrZXkgdG8gYmUgcHJlc3NlZC4KLQkgKi8KLQlFQ19NS0JQX0VWRU5UX1NZU1JRID0gNiwKLQotCS8qCi0JICogTmV3IDY0LWJpdCBob3N0IGV2ZW50LgotCSAqIFRoZSBldmVudCBkYXRhIGlzIDggYnl0ZXMgb2YgaG9zdCBldmVudCBmbGFncy4KLQkgKi8KLQlFQ19NS0JQX0VWRU5UX0hPU1RfRVZFTlQ2NCA9IDcsCi0KLQkvKiBOb3RpZnkgdGhlIEFQIHRoYXQgc29tZXRoaW5nIGhhcHBlbmVkIG9uIENFQyAqLwotCUVDX01LQlBfRVZFTlRfQ0VDX0VWRU5UID0gOCwKLQotCS8qIFNlbmQgYW4gaW5jb21pbmcgQ0VDIG1lc3NhZ2UgdG8gdGhlIEFQICovCi0JRUNfTUtCUF9FVkVOVF9DRUNfTUVTU0FHRSA9IDksCi0KLQkvKiBOdW1iZXIgb2YgTUtCUCBldmVudHMgKi8KLQlFQ19NS0JQX0VWRU5UX0NPVU5ULAotfTsKLUJVSUxEX0FTU0VSVChFQ19NS0JQX0VWRU5UX0NPVU5UIDw9IEVDX01LQlBfRVZFTlRfVFlQRV9NQVNLKTsKLQotdW5pb24gX19lY19hbGlnbl9vZmZzZXQxIGVjX3Jlc3BvbnNlX2dldF9uZXh0X2RhdGEgewotCXVpbnQ4X3Qga2V5X21hdHJpeFsxM107Ci0KLQkvKiBVbmFsaWduZWQgKi8KLQl1aW50MzJfdCBob3N0X2V2ZW50OwotCXVpbnQ2NF90IGhvc3RfZXZlbnQ2NDsKLQotCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgewotCQkvKiBGb3IgYWxpZ25pbmcgdGhlIGZpZm9faW5mbyAqLwotCQl1aW50OF90IHJlc2VydmVkWzNdOwotCQlzdHJ1Y3QgZWNfcmVzcG9uc2VfbW90aW9uX3NlbnNlX2ZpZm9faW5mbyBpbmZvOwotCX0gc2Vuc29yX2ZpZm87Ci0KLQl1aW50MzJfdCBidXR0b25zOwotCi0JdWludDMyX3Qgc3dpdGNoZXM7Ci0KLQl1aW50MzJfdCBmcF9ldmVudHM7Ci0KLQl1aW50MzJfdCBzeXNycTsKLQotCS8qIENFQyBldmVudHMgZnJvbSBlbnVtIG1rYnBfY2VjX2V2ZW50ICovCi0JdWludDMyX3QgY2VjX2V2ZW50czsKLX07Ci0KLXVuaW9uIF9fZWNfYWxpZ25fb2Zmc2V0MSBlY19yZXNwb25zZV9nZXRfbmV4dF9kYXRhX3YxIHsKLQl1aW50OF90IGtleV9tYXRyaXhbMTZdOwotCi0JLyogVW5hbGlnbmVkICovCi0JdWludDMyX3QgaG9zdF9ldmVudDsKLQl1aW50NjRfdCBob3N0X2V2ZW50NjQ7Ci0KLQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJLyogRm9yIGFsaWduaW5nIHRoZSBmaWZvX2luZm8gKi8KLQkJdWludDhfdCByZXNlcnZlZFszXTsKLQkJc3RydWN0IGVjX3Jlc3BvbnNlX21vdGlvbl9zZW5zZV9maWZvX2luZm8gaW5mbzsKLQl9IHNlbnNvcl9maWZvOwotCi0JdWludDMyX3QgYnV0dG9uczsKLQotCXVpbnQzMl90IHN3aXRjaGVzOwotCi0JdWludDMyX3QgZnBfZXZlbnRzOwotCi0JdWludDMyX3Qgc3lzcnE7Ci0KLQkvKiBDRUMgZXZlbnRzIGZyb20gZW51bSBta2JwX2NlY19ldmVudCAqLwotCXVpbnQzMl90IGNlY19ldmVudHM7Ci0KLQl1aW50OF90IGNlY19tZXNzYWdlWzE2XTsKLX07Ci1CVUlMRF9BU1NFUlQoc2l6ZW9mKHVuaW9uIGVjX3Jlc3BvbnNlX2dldF9uZXh0X2RhdGFfdjEpID09IDE2KTsKLQotc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9uZXh0X2V2ZW50IHsKLQl1aW50OF90IGV2ZW50X3R5cGU7Ci0JLyogRm9sbG93ZWQgYnkgZXZlbnQgZGF0YSBpZiBhbnkgKi8KLQl1bmlvbiBlY19yZXNwb25zZV9nZXRfbmV4dF9kYXRhIGRhdGE7Ci19IF9fZWNfYWxpZ24xOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X25leHRfZXZlbnRfdjEgewotCXVpbnQ4X3QgZXZlbnRfdHlwZTsKLQkvKiBGb2xsb3dlZCBieSBldmVudCBkYXRhIGlmIGFueSAqLwotCXVuaW9uIGVjX3Jlc3BvbnNlX2dldF9uZXh0X2RhdGFfdjEgZGF0YTsKLX0gX19lY19hbGlnbjE7Ci0KLS8qIEJpdCBpbmRpY2VzIGZvciBidXR0b25zIGFuZCBzd2l0Y2hlcy4qLwotLyogQnV0dG9ucyAqLwotI2RlZmluZSBFQ19NS0JQX1BPV0VSX0JVVFRPTgkwCi0jZGVmaW5lIEVDX01LQlBfVk9MX1VQCQkxCi0jZGVmaW5lIEVDX01LQlBfVk9MX0RPV04JMgotI2RlZmluZSBFQ19NS0JQX1JFQ09WRVJZCTMKLQotLyogU3dpdGNoZXMgKi8KLSNkZWZpbmUgRUNfTUtCUF9MSURfT1BFTgkwCi0jZGVmaW5lIEVDX01LQlBfVEFCTEVUX01PREUJMQotI2RlZmluZSBFQ19NS0JQX0JBU0VfQVRUQUNIRUQJMgotCi0vKiBSdW4ga2V5Ym9hcmQgZmFjdG9yeSB0ZXN0IHNjYW5uaW5nICovCi0jZGVmaW5lIEVDX0NNRF9LRVlCT0FSRF9GQUNUT1JZX1RFU1QgMHgwMDY4Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9rZXlib2FyZF9mYWN0b3J5X3Rlc3QgewotCXVpbnQxNl90IHNob3J0ZWQ7CS8qIEtleWJvYXJkIHBpbnMgYXJlIHNob3J0ZWQgKi8KLX0gX19lY19hbGlnbjI7Ci0KLS8qIEZpbmdlcnByaW50IGV2ZW50cyBpbiAnZnBfZXZlbnRzJyBmb3IgRUNfTUtCUF9FVkVOVF9GSU5HRVJQUklOVCAqLwotI2RlZmluZSBFQ19NS0JQX0ZQX1JBV19FVkVOVChmcF9ldmVudHMpICgoZnBfZXZlbnRzKSAmIDB4MDBGRkZGRkYpCi0jZGVmaW5lIEVDX01LQlBfRlBfRVJSQ09ERShmcF9ldmVudHMpICAgKChmcF9ldmVudHMpICYgMHgwMDAwMDAwRikKLSNkZWZpbmUgRUNfTUtCUF9GUF9FTlJPTExfUFJPR1JFU1NfT0ZGU0VUIDQKLSNkZWZpbmUgRUNfTUtCUF9GUF9FTlJPTExfUFJPR1JFU1MoZnBlKSAoKChmcGUpICYgMHgwMDAwMEZGMCkgXAotCQkJCQkgPj4gRUNfTUtCUF9GUF9FTlJPTExfUFJPR1JFU1NfT0ZGU0VUKQotI2RlZmluZSBFQ19NS0JQX0ZQX01BVENIX0lEWF9PRkZTRVQgMTIKLSNkZWZpbmUgRUNfTUtCUF9GUF9NQVRDSF9JRFhfTUFTSyAweDAwMDBGMDAwCi0jZGVmaW5lIEVDX01LQlBfRlBfTUFUQ0hfSURYKGZwZSkgKCgoZnBlKSAmIEVDX01LQlBfRlBfTUFUQ0hfSURYX01BU0spIFwKLQkJCQkJID4+IEVDX01LQlBfRlBfTUFUQ0hfSURYX09GRlNFVCkKLSNkZWZpbmUgRUNfTUtCUF9GUF9FTlJPTEwgICAgICAgICAgICAgICBCSVQoMjcpCi0jZGVmaW5lIEVDX01LQlBfRlBfTUFUQ0ggICAgICAgICAgICAgICAgQklUKDI4KQotI2RlZmluZSBFQ19NS0JQX0ZQX0ZJTkdFUl9ET1dOICAgICAgICAgIEJJVCgyOSkKLSNkZWZpbmUgRUNfTUtCUF9GUF9GSU5HRVJfVVAgICAgICAgICAgICBCSVQoMzApCi0jZGVmaW5lIEVDX01LQlBfRlBfSU1BR0VfUkVBRFkgICAgICAgICAgQklUKDMxKQotLyogY29kZSBnaXZlbiBieSBFQ19NS0JQX0ZQX0VSUkNPREUoKSB3aGVuIEVDX01LQlBfRlBfRU5ST0xMIGlzIHNldCAqLwotI2RlZmluZSBFQ19NS0JQX0ZQX0VSUl9FTlJPTExfT0sgICAgICAgICAgICAgICAwCi0jZGVmaW5lIEVDX01LQlBfRlBfRVJSX0VOUk9MTF9MT1dfUVVBTElUWSAgICAgIDEKLSNkZWZpbmUgRUNfTUtCUF9GUF9FUlJfRU5ST0xMX0lNTU9CSUxFICAgICAgICAgMgotI2RlZmluZSBFQ19NS0JQX0ZQX0VSUl9FTlJPTExfTE9XX0NPVkVSQUdFICAgICAzCi0jZGVmaW5lIEVDX01LQlBfRlBfRVJSX0VOUk9MTF9JTlRFUk5BTCAgICAgICAgIDUKLS8qIENhbiBiZSB1c2VkIHRvIGRldGVjdCBpZiBpbWFnZSB3YXMgdXNhYmxlIGZvciBlbnJvbGxtZW50IG9yIG5vdC4gKi8KLSNkZWZpbmUgRUNfTUtCUF9GUF9FUlJfRU5ST0xMX1BST0JMRU1fTUFTSyAgICAgMQotLyogY29kZSBnaXZlbiBieSBFQ19NS0JQX0ZQX0VSUkNPREUoKSB3aGVuIEVDX01LQlBfRlBfTUFUQ0ggaXMgc2V0ICovCi0jZGVmaW5lIEVDX01LQlBfRlBfRVJSX01BVENIX05PICAgICAgICAgICAgICAgIDAKLSNkZWZpbmUgRUNfTUtCUF9GUF9FUlJfTUFUQ0hfTk9fSU5URVJOQUwgICAgICAgNgotI2RlZmluZSBFQ19NS0JQX0ZQX0VSUl9NQVRDSF9OT19URU1QTEFURVMgICAgICA3Ci0jZGVmaW5lIEVDX01LQlBfRlBfRVJSX01BVENIX05PX0xPV19RVUFMSVRZICAgIDIKLSNkZWZpbmUgRUNfTUtCUF9GUF9FUlJfTUFUQ0hfTk9fTE9XX0NPVkVSQUdFICAgNAotI2RlZmluZSBFQ19NS0JQX0ZQX0VSUl9NQVRDSF9ZRVMgICAgICAgICAgICAgICAxCi0jZGVmaW5lIEVDX01LQlBfRlBfRVJSX01BVENIX1lFU19VUERBVEVEICAgICAgIDMKLSNkZWZpbmUgRUNfTUtCUF9GUF9FUlJfTUFUQ0hfWUVTX1VQREFURV9GQUlMRUQgNQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIFRlbXBlcmF0dXJlIHNlbnNvciBjb21tYW5kcyAqLwotCi0vKiBSZWFkIHRlbXBlcmF0dXJlIHNlbnNvciBpbmZvICovCi0jZGVmaW5lIEVDX0NNRF9URU1QX1NFTlNPUl9HRVRfSU5GTyAweDAwNzAKLQotc3RydWN0IGVjX3BhcmFtc190ZW1wX3NlbnNvcl9nZXRfaW5mbyB7Ci0JdWludDhfdCBpZDsKLX0gX19lY19hbGlnbjE7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV90ZW1wX3NlbnNvcl9nZXRfaW5mbyB7Ci0JY2hhciBzZW5zb3JfbmFtZVszMl07Ci0JdWludDhfdCBzZW5zb3JfdHlwZTsKLX0gX19lY19hbGlnbjE7Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyoKLSAqIE5vdGU6IGhvc3QgY29tbWFuZHMgMHg4MCAtIDB4ODcgYXJlIHJlc2VydmVkIHRvIGF2b2lkIGNvbmZsaWN0IHdpdGggQUNQSQotICogY29tbWFuZHMgYWNjaWRlbnRhbGx5IHNlbnQgdG8gdGhlIHdyb25nIGludGVyZmFjZS4gIFNlZSB0aGUgQUNQSSBzZWN0aW9uCi0gKiBiZWxvdy4KLSAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBIb3N0IGV2ZW50IGNvbW1hbmRzICovCi0KLQotLyogT2Jzb2xldGUuIE5ldyBpbXBsZW1lbnRhdGlvbiBzaG91bGQgdXNlIEVDX0NNRF9IT1NUX0VWRU5UIGluc3RlYWQgKi8KLS8qCi0gKiBIb3N0IGV2ZW50IG1hc2sgcGFyYW1zIGFuZCByZXNwb25zZSBzdHJ1Y3R1cmVzLCBzaGFyZWQgYnkgYWxsIG9mIHRoZSBob3N0Ci0gKiBldmVudCBjb21tYW5kcyBiZWxvdy4KLSAqLwotc3RydWN0IGVjX3BhcmFtc19ob3N0X2V2ZW50X21hc2sgewotCXVpbnQzMl90IG1hc2s7Ci19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfaG9zdF9ldmVudF9tYXNrIHsKLQl1aW50MzJfdCBtYXNrOwotfSBfX2VjX2FsaWduNDsKLQotLyogVGhlc2UgYWxsIHVzZSBlY19yZXNwb25zZV9ob3N0X2V2ZW50X21hc2sgKi8KLSNkZWZpbmUgRUNfQ01EX0hPU1RfRVZFTlRfR0VUX0IgICAgICAgICAweDAwODcKLSNkZWZpbmUgRUNfQ01EX0hPU1RfRVZFTlRfR0VUX1NNSV9NQVNLICAweDAwODgKLSNkZWZpbmUgRUNfQ01EX0hPU1RfRVZFTlRfR0VUX1NDSV9NQVNLICAweDAwODkKLSNkZWZpbmUgRUNfQ01EX0hPU1RfRVZFTlRfR0VUX1dBS0VfTUFTSyAweDAwOEQKLQotLyogVGhlc2UgYWxsIHVzZSBlY19wYXJhbXNfaG9zdF9ldmVudF9tYXNrICovCi0jZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UX1NFVF9TTUlfTUFTSyAgMHgwMDhBCi0jZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UX1NFVF9TQ0lfTUFTSyAgMHgwMDhCCi0jZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UX0NMRUFSICAgICAgICAgMHgwMDhDCi0jZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UX1NFVF9XQUtFX01BU0sgMHgwMDhFCi0jZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UX0NMRUFSX0IgICAgICAgMHgwMDhGCi0KLS8qCi0gKiBVbmlmaWVkIGhvc3QgZXZlbnQgcHJvZ3JhbW1pbmcgaW50ZXJmYWNlIC0gU2hvdWxkIGJlIHVzZWQgYnkgbmV3ZXIgdmVyc2lvbnMKLSAqIG9mIEJJT1MvT1MgdG8gcHJvZ3JhbSBob3N0IGV2ZW50cyBhbmQgbWFza3MKLSAqLwotCi1zdHJ1Y3QgZWNfcGFyYW1zX2hvc3RfZXZlbnQgewotCi0JLyogQWN0aW9uIHJlcXVlc3RlZCBieSBob3N0IC0gb25lIG9mIGVudW0gZWNfaG9zdF9ldmVudF9hY3Rpb24uICovCi0JdWludDhfdCBhY3Rpb247Ci0KLQkvKgotCSAqIE1hc2sgdHlwZSB0aGF0IHRoZSBob3N0IHJlcXVlc3RlZCB0aGUgYWN0aW9uIG9uIC0gb25lIG9mCi0JICogZW51bSBlY19ob3N0X2V2ZW50X21hc2tfdHlwZS4KLQkgKi8KLQl1aW50OF90IG1hc2tfdHlwZTsKLQotCS8qIFNldCB0byAwLCBpZ25vcmUgb24gcmVhZCAqLwotCXVpbnQxNl90IHJlc2VydmVkOwotCi0JLyogVmFsdWUgdG8gYmUgdXNlZCBpbiBjYXNlIG9mIHNldCBvcGVyYXRpb25zLiAqLwotCXVpbnQ2NF90IHZhbHVlOwotfSBfX2VjX2FsaWduNDsKLQotLyoKLSAqIFJlc3BvbnNlIHN0cnVjdHVyZSByZXR1cm5lZCBieSBFQ19DTURfSE9TVF9FVkVOVC4KLSAqIFVwZGF0ZSB0aGUgdmFsdWUgb24gYSBHRVQgcmVxdWVzdC4gU2V0IHRvIDAgb24gR0VUL0NMRUFSCi0gKi8KLQotc3RydWN0IGVjX3Jlc3BvbnNlX2hvc3RfZXZlbnQgewotCi0JLyogTWFzayB2YWx1ZSBpbiBjYXNlIG9mIGdldCBvcGVyYXRpb24gKi8KLQl1aW50NjRfdCB2YWx1ZTsKLX0gX19lY19hbGlnbjQ7Ci0KLWVudW0gZWNfaG9zdF9ldmVudF9hY3Rpb24gewotCS8qCi0JICogcGFyYW1zLnZhbHVlIGlzIGlnbm9yZWQuIFZhbHVlIG9mIG1hc2tfdHlwZSBwb3B1bGF0ZWQKLQkgKiBpbiByZXNwb25zZS52YWx1ZQotCSAqLwotCUVDX0hPU1RfRVZFTlRfR0VULAotCi0JLyogQml0cyBpbiBwYXJhbXMudmFsdWUgYXJlIHNldCAqLwotCUVDX0hPU1RfRVZFTlRfU0VULAotCi0JLyogQml0cyBpbiBwYXJhbXMudmFsdWUgYXJlIGNsZWFyZWQgKi8KLQlFQ19IT1NUX0VWRU5UX0NMRUFSLAotfTsKLQotZW51bSBlY19ob3N0X2V2ZW50X21hc2tfdHlwZSB7Ci0KLQkvKiBNYWluIGhvc3QgZXZlbnQgY29weSAqLwotCUVDX0hPU1RfRVZFTlRfTUFJTiwKLQotCS8qIENvcHkgQiBvZiBob3N0IGV2ZW50cyAqLwotCUVDX0hPU1RfRVZFTlRfQiwKLQotCS8qIFNDSSBNYXNrICovCi0JRUNfSE9TVF9FVkVOVF9TQ0lfTUFTSywKLQotCS8qIFNNSSBNYXNrICovCi0JRUNfSE9TVF9FVkVOVF9TTUlfTUFTSywKLQotCS8qIE1hc2sgb2YgZXZlbnRzIHRoYXQgc2hvdWxkIGJlIGFsd2F5cyByZXBvcnRlZCBpbiBob3N0ZXZlbnRzICovCi0JRUNfSE9TVF9FVkVOVF9BTFdBWVNfUkVQT1JUX01BU0ssCi0KLQkvKiBBY3RpdmUgd2FrZSBtYXNrICovCi0JRUNfSE9TVF9FVkVOVF9BQ1RJVkVfV0FLRV9NQVNLLAotCi0JLyogTGF6eSB3YWtlIG1hc2sgZm9yIFMwaXggKi8KLQlFQ19IT1NUX0VWRU5UX0xBWllfV0FLRV9NQVNLX1MwSVgsCi0KLQkvKiBMYXp5IHdha2UgbWFzayBmb3IgUzMgKi8KLQlFQ19IT1NUX0VWRU5UX0xBWllfV0FLRV9NQVNLX1MzLAotCi0JLyogTGF6eSB3YWtlIG1hc2sgZm9yIFM1ICovCi0JRUNfSE9TVF9FVkVOVF9MQVpZX1dBS0VfTUFTS19TNSwKLX07Ci0KLSNkZWZpbmUgRUNfQ01EX0hPU1RfRVZFTlQgICAgICAgMHgwMEE0Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIFN3aXRjaCBjb21tYW5kcyAqLwotCi0vKiBFbmFibGUvZGlzYWJsZSBMQ0QgYmFja2xpZ2h0ICovCi0jZGVmaW5lIEVDX0NNRF9TV0lUQ0hfRU5BQkxFX0JLTElHSFQgMHgwMDkwCi0KLXN0cnVjdCBlY19wYXJhbXNfc3dpdGNoX2VuYWJsZV9iYWNrbGlnaHQgewotCXVpbnQ4X3QgZW5hYmxlZDsKLX0gX19lY19hbGlnbjE7Ci0KLS8qIEVuYWJsZS9kaXNhYmxlIFdMQU4vQmx1ZXRvb3RoICovCi0jZGVmaW5lIEVDX0NNRF9TV0lUQ0hfRU5BQkxFX1dJUkVMRVNTIDB4MDA5MQotI2RlZmluZSBFQ19WRVJfU1dJVENIX0VOQUJMRV9XSVJFTEVTUyAxCi0KLS8qIFZlcnNpb24gMCBwYXJhbXM7IG5vIHJlc3BvbnNlICovCi1zdHJ1Y3QgZWNfcGFyYW1zX3N3aXRjaF9lbmFibGVfd2lyZWxlc3NfdjAgewotCXVpbnQ4X3QgZW5hYmxlZDsKLX0gX19lY19hbGlnbjE7Ci0KLS8qIFZlcnNpb24gMSBwYXJhbXMgKi8KLXN0cnVjdCBlY19wYXJhbXNfc3dpdGNoX2VuYWJsZV93aXJlbGVzc192MSB7Ci0JLyogRmxhZ3MgdG8gZW5hYmxlIG5vdyAqLwotCXVpbnQ4X3Qgbm93X2ZsYWdzOwotCi0JLyogV2hpY2ggZmxhZ3MgdG8gY29weSBmcm9tIG5vd19mbGFncyAqLwotCXVpbnQ4X3Qgbm93X21hc2s7Ci0KLQkvKgotCSAqIEZsYWdzIHRvIGxlYXZlIGVuYWJsZWQgaW4gUzMsIGlmIHRoZXkncmUgb24gYXQgdGhlIFMwLT5TMwotCSAqIHRyYW5zaXRpb24uICAoT3RoZXIgZmxhZ3Mgd2lsbCBiZSBkaXNhYmxlZCBieSB0aGUgUzAtPlMzCi0JICogdHJhbnNpdGlvbi4pCi0JICovCi0JdWludDhfdCBzdXNwZW5kX2ZsYWdzOwotCi0JLyogV2hpY2ggZmxhZ3MgdG8gY29weSBmcm9tIHN1c3BlbmRfZmxhZ3MgKi8KLQl1aW50OF90IHN1c3BlbmRfbWFzazsKLX0gX19lY19hbGlnbjE7Ci0KLS8qIFZlcnNpb24gMSByZXNwb25zZSAqLwotc3RydWN0IGVjX3Jlc3BvbnNlX3N3aXRjaF9lbmFibGVfd2lyZWxlc3NfdjEgewotCS8qIEZsYWdzIHRvIGVuYWJsZSBub3cgKi8KLQl1aW50OF90IG5vd19mbGFnczsKLQotCS8qIEZsYWdzIHRvIGxlYXZlIGVuYWJsZWQgaW4gUzMgKi8KLQl1aW50OF90IHN1c3BlbmRfZmxhZ3M7Ci19IF9fZWNfYWxpZ24xOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBHUElPIGNvbW1hbmRzLiBPbmx5IGF2YWlsYWJsZSBvbiBFQyBpZiB3cml0ZSBwcm90ZWN0IGhhcyBiZWVuIGRpc2FibGVkLiAqLwotCi0vKiBTZXQgR1BJTyBvdXRwdXQgdmFsdWUgKi8KLSNkZWZpbmUgRUNfQ01EX0dQSU9fU0VUIDB4MDA5MgotCi1zdHJ1Y3QgZWNfcGFyYW1zX2dwaW9fc2V0IHsKLQljaGFyIG5hbWVbMzJdOwotCXVpbnQ4X3QgdmFsOwotfSBfX2VjX2FsaWduMTsKLQotLyogR2V0IEdQSU8gdmFsdWUgKi8KLSNkZWZpbmUgRUNfQ01EX0dQSU9fR0VUIDB4MDA5MwotCi0vKiBWZXJzaW9uIDAgb2YgaW5wdXQgcGFyYW1zIGFuZCByZXNwb25zZSAqLwotc3RydWN0IGVjX3BhcmFtc19ncGlvX2dldCB7Ci0JY2hhciBuYW1lWzMyXTsKLX0gX19lY19hbGlnbjE7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9ncGlvX2dldCB7Ci0JdWludDhfdCB2YWw7Ci19IF9fZWNfYWxpZ24xOwotCi0vKiBWZXJzaW9uIDEgb2YgaW5wdXQgcGFyYW1zIGFuZCByZXNwb25zZSAqLwotc3RydWN0IGVjX3BhcmFtc19ncGlvX2dldF92MSB7Ci0JdWludDhfdCBzdWJjbWQ7Ci0JdW5pb24gewotCQlzdHJ1Y3QgX19lY19hbGlnbjEgewotCQkJY2hhciBuYW1lWzMyXTsKLQkJfSBnZXRfdmFsdWVfYnlfbmFtZTsKLQkJc3RydWN0IF9fZWNfYWxpZ24xIHsKLQkJCXVpbnQ4X3QgaW5kZXg7Ci0JCX0gZ2V0X2luZm87Ci0JfTsKLX0gX19lY19hbGlnbjE7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9ncGlvX2dldF92MSB7Ci0JdW5pb24gewotCQlzdHJ1Y3QgX19lY19hbGlnbjEgewotCQkJdWludDhfdCB2YWw7Ci0JCX0gZ2V0X3ZhbHVlX2J5X25hbWUsIGdldF9jb3VudDsKLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQl1aW50OF90IHZhbDsKLQkJCWNoYXIgbmFtZVszMl07Ci0JCQl1aW50MzJfdCBmbGFnczsKLQkJfSBnZXRfaW5mbzsKLQl9OwotfSBfX2VjX3RvZG9fcGFja2VkOwotCi1lbnVtIGdwaW9fZ2V0X3N1YmNtZCB7Ci0JRUNfR1BJT19HRVRfQllfTkFNRSA9IDAsCi0JRUNfR1BJT19HRVRfQ09VTlQgPSAxLAotCUVDX0dQSU9fR0VUX0lORk8gPSAyLAotfTsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogSTJDIGNvbW1hbmRzLiBPbmx5IGF2YWlsYWJsZSB3aGVuIGZsYXNoIHdyaXRlIHByb3RlY3QgaXMgdW5sb2NrZWQuICovCi0KLS8qCi0gKiBDQVVUSU9OOiBUaGVzZSBjb21tYW5kcyBhcmUgZGVwcmVjYXRlZCwgYW5kIGFyZSBub3Qgc3VwcG9ydGVkIGFueW1vcmUgaW4gRUMKLSAqIGJ1aWxkcyA+PSA4Mzk4LjAuMCAoc2VlIGNyb3NidWcuY29tL3AvMjM1NzApLgotICoKLSAqIFVzZSBFQ19DTURfSTJDX1BBU1NUSFJVIGluc3RlYWQuCi0gKi8KLQotLyogUmVhZCBJMkMgYnVzICovCi0jZGVmaW5lIEVDX0NNRF9JMkNfUkVBRCAweDAwOTQKLQotc3RydWN0IGVjX3BhcmFtc19pMmNfcmVhZCB7Ci0JdWludDE2X3QgYWRkcjsgLyogOC1iaXQgYWRkcmVzcyAoNy1iaXQgc2hpZnRlZCA8PCAxKSAqLwotCXVpbnQ4X3QgcmVhZF9zaXplOyAvKiBFaXRoZXIgOCBvciAxNi4gKi8KLQl1aW50OF90IHBvcnQ7Ci0JdWludDhfdCBvZmZzZXQ7Ci19IF9fZWNfYWxpZ25fc2l6ZTE7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9pMmNfcmVhZCB7Ci0JdWludDE2X3QgZGF0YTsKLX0gX19lY19hbGlnbjI7Ci0KLS8qIFdyaXRlIEkyQyBidXMgKi8KLSNkZWZpbmUgRUNfQ01EX0kyQ19XUklURSAweDAwOTUKLQotc3RydWN0IGVjX3BhcmFtc19pMmNfd3JpdGUgewotCXVpbnQxNl90IGRhdGE7Ci0JdWludDE2X3QgYWRkcjsgLyogOC1iaXQgYWRkcmVzcyAoNy1iaXQgc2hpZnRlZCA8PCAxKSAqLwotCXVpbnQ4X3Qgd3JpdGVfc2l6ZTsgLyogRWl0aGVyIDggb3IgMTYuICovCi0JdWludDhfdCBwb3J0OwotCXVpbnQ4X3Qgb2Zmc2V0OwotfSBfX2VjX2FsaWduX3NpemUxOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBDaGFyZ2Ugc3RhdGUgY29tbWFuZHMuIE9ubHkgYXZhaWxhYmxlIHdoZW4gZmxhc2ggd3JpdGUgcHJvdGVjdCB1bmxvY2tlZC4gKi8KLQotLyogRm9yY2UgY2hhcmdlIHN0YXRlIG1hY2hpbmUgdG8gc3RvcCBjaGFyZ2luZyB0aGUgYmF0dGVyeSBvciBmb3JjZSBpdCB0bwotICogZGlzY2hhcmdlIHRoZSBiYXR0ZXJ5LgotICovCi0jZGVmaW5lIEVDX0NNRF9DSEFSR0VfQ09OVFJPTCAweDAwOTYKLSNkZWZpbmUgRUNfVkVSX0NIQVJHRV9DT05UUk9MIDEKLQotZW51bSBlY19jaGFyZ2VfY29udHJvbF9tb2RlIHsKLQlDSEFSR0VfQ09OVFJPTF9OT1JNQUwgPSAwLAotCUNIQVJHRV9DT05UUk9MX0lETEUsCi0JQ0hBUkdFX0NPTlRST0xfRElTQ0hBUkdFLAotfTsKLQotc3RydWN0IGVjX3BhcmFtc19jaGFyZ2VfY29udHJvbCB7Ci0JdWludDMyX3QgbW9kZTsgIC8qIGVudW0gY2hhcmdlX2NvbnRyb2xfbW9kZSAqLwotfSBfX2VjX2FsaWduNDsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBTbmFwc2hvdCBjb25zb2xlIG91dHB1dCBidWZmZXIgZm9yIHVzZSBieSBFQ19DTURfQ09OU09MRV9SRUFELiAqLwotI2RlZmluZSBFQ19DTURfQ09OU09MRV9TTkFQU0hPVCAweDAwOTcKLQotLyoKLSAqIFJlYWQgZGF0YSBmcm9tIHRoZSBzYXZlZCBzbmFwc2hvdC4gSWYgdGhlIHN1YmNtZCBwYXJhbWV0ZXIgaXMKLSAqIENPTlNPTEVfUkVBRF9ORVhULCB0aGlzIHdpbGwgcmV0dXJuIGRhdGEgc3RhcnRpbmcgZnJvbSB0aGUgYmVnaW5uaW5nIG9mCi0gKiB0aGUgbGF0ZXN0IHNuYXBzaG90LiBJZiBpdCBpcyBDT05TT0xFX1JFQURfUkVDRU5ULCBpdCB3aWxsIHN0YXJ0IGZyb20gdGhlCi0gKiBlbmQgb2YgdGhlIHByZXZpb3VzIHNuYXBzaG90LgotICoKLSAqIFRoZSBwYXJhbXMgYXJlIG9ubHkgbG9va2VkIGF0IGluIHZlcnNpb24gPj0gMSBvZiB0aGlzIGNvbW1hbmQuIFByaW9yCi0gKiB2ZXJzaW9ucyB3aWxsIGp1c3QgZGVmYXVsdCB0byBDT05TT0xFX1JFQURfTkVYVCBiZWhhdmlvci4KLSAqCi0gKiBSZXNwb25zZSBpcyBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nLiAgRW1wdHkgc3RyaW5nLCBpZiB0aGVyZSBpcyBubyBtb3JlCi0gKiByZW1haW5pbmcgb3V0cHV0LgotICovCi0jZGVmaW5lIEVDX0NNRF9DT05TT0xFX1JFQUQgMHgwMDk4Ci0KLWVudW0gZWNfY29uc29sZV9yZWFkX3N1YmNtZCB7Ci0JQ09OU09MRV9SRUFEX05FWFQgPSAwLAotCUNPTlNPTEVfUkVBRF9SRUNFTlQKLX07Ci0KLXN0cnVjdCBlY19wYXJhbXNfY29uc29sZV9yZWFkX3YxIHsKLQl1aW50OF90IHN1YmNtZDsgLyogZW51bSBlY19jb25zb2xlX3JlYWRfc3ViY21kICovCi19IF9fZWNfYWxpZ24xOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qCi0gKiBDdXQgb2ZmIGJhdHRlcnkgcG93ZXIgaW1tZWRpYXRlbHkgb3IgYWZ0ZXIgdGhlIGhvc3QgaGFzIHNodXQgZG93bi4KLSAqCi0gKiByZXR1cm4gRUNfUkVTX0lOVkFMSURfQ09NTUFORCBpZiB1bnN1cHBvcnRlZCBieSBhIGJvYXJkL2JhdHRlcnkuCi0gKgkgIEVDX1JFU19TVUNDRVNTIGlmIHRoZSBjb21tYW5kIHdhcyBzdWNjZXNzZnVsLgotICoJICBFQ19SRVNfRVJST1IgaWYgdGhlIGN1dCBvZmYgY29tbWFuZCBmYWlsZWQuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0JBVFRFUllfQ1VUX09GRiAweDAwOTkKLQotI2RlZmluZSBFQ19CQVRURVJZX0NVVE9GRl9GTEFHX0FUX1NIVVRET1dOCUJJVCgwKQotCi1zdHJ1Y3QgZWNfcGFyYW1zX2JhdHRlcnlfY3V0b2ZmIHsKLQl1aW50OF90IGZsYWdzOwotfSBfX2VjX2FsaWduMTsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogVVNCIHBvcnQgbXV4IGNvbnRyb2wuICovCi0KLS8qCi0gKiBTd2l0Y2ggVVNCIG11eCBvciByZXR1cm4gdG8gYXV0b21hdGljIHN3aXRjaGluZy4KLSAqLwotI2RlZmluZSBFQ19DTURfVVNCX01VWCAweDAwOUEKLQotc3RydWN0IGVjX3BhcmFtc191c2JfbXV4IHsKLQl1aW50OF90IG11eDsKLX0gX19lY19hbGlnbjE7Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIExET3MgLyBGRVRzIGNvbnRyb2wuICovCi0KLWVudW0gZWNfbGRvX3N0YXRlIHsKLQlFQ19MRE9fU1RBVEVfT0ZGID0gMCwJLyogdGhlIExETyAvIEZFVCBpcyBzaHV0IGRvd24gKi8KLQlFQ19MRE9fU1RBVEVfT04gPSAxLAkvKiB0aGUgTERPIC8gRkVUIGlzIE9OIC8gcHJvdmlkaW5nIHBvd2VyICovCi19OwotCi0vKgotICogU3dpdGNoIG9uL29mZiBhIExETy4KLSAqLwotI2RlZmluZSBFQ19DTURfTERPX1NFVCAweDAwOUIKLQotc3RydWN0IGVjX3BhcmFtc19sZG9fc2V0IHsKLQl1aW50OF90IGluZGV4OwotCXVpbnQ4X3Qgc3RhdGU7Ci19IF9fZWNfYWxpZ24xOwotCi0vKgotICogR2V0IExETyBzdGF0ZS4KLSAqLwotI2RlZmluZSBFQ19DTURfTERPX0dFVCAweDAwOUMKLQotc3RydWN0IGVjX3BhcmFtc19sZG9fZ2V0IHsKLQl1aW50OF90IGluZGV4OwotfSBfX2VjX2FsaWduMTsKLQotc3RydWN0IGVjX3Jlc3BvbnNlX2xkb19nZXQgewotCXVpbnQ4X3Qgc3RhdGU7Ci19IF9fZWNfYWxpZ24xOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBQb3dlciBpbmZvLiAqLwotCi0vKgotICogR2V0IHBvd2VyIGluZm8uCi0gKi8KLSNkZWZpbmUgRUNfQ01EX1BPV0VSX0lORk8gMHgwMDlECi0KLXN0cnVjdCBlY19yZXNwb25zZV9wb3dlcl9pbmZvIHsKLQl1aW50MzJfdCB1c2JfZGV2X3R5cGU7Ci0JdWludDE2X3Qgdm9sdGFnZV9hYzsKLQl1aW50MTZfdCB2b2x0YWdlX3N5c3RlbTsKLQl1aW50MTZfdCBjdXJyZW50X3N5c3RlbTsKLQl1aW50MTZfdCB1c2JfY3VycmVudF9saW1pdDsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIEkyQyBwYXNzdGhydSBjb21tYW5kICovCi0KLSNkZWZpbmUgRUNfQ01EX0kyQ19QQVNTVEhSVSAweDAwOUUKLQotLyogUmVhZCBkYXRhOyBpZiBub3QgcHJlc2VudCwgbWVzc2FnZSBpcyBhIHdyaXRlICovCi0jZGVmaW5lIEVDX0kyQ19GTEFHX1JFQUQJQklUKDE1KQotCi0vKiBNYXNrIGZvciBhZGRyZXNzICovCi0jZGVmaW5lIEVDX0kyQ19BRERSX01BU0sJMHgzZmYKLQotI2RlZmluZSBFQ19JMkNfU1RBVFVTX05BSwlCSVQoMCkgLyogVHJhbnNmZXIgd2FzIG5vdCBhY2tub3dsZWRnZWQgKi8KLSNkZWZpbmUgRUNfSTJDX1NUQVRVU19USU1FT1VUCUJJVCgxKSAvKiBUaW1lb3V0IGR1cmluZyB0cmFuc2ZlciAqLwotCi0vKiBBbnkgZXJyb3IgKi8KLSNkZWZpbmUgRUNfSTJDX1NUQVRVU19FUlJPUgkoRUNfSTJDX1NUQVRVU19OQUsgfCBFQ19JMkNfU1RBVFVTX1RJTUVPVVQpCi0KLXN0cnVjdCBlY19wYXJhbXNfaTJjX3Bhc3N0aHJ1X21zZyB7Ci0JdWludDE2X3QgYWRkcl9mbGFnczsJLyogSTJDIHNsYXZlIGFkZHJlc3MgKDcgb3IgMTAgYml0cykgYW5kIGZsYWdzICovCi0JdWludDE2X3QgbGVuOwkJLyogTnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQgb3Igd3JpdGUgKi8KLX0gX19lY19hbGlnbjI7Ci0KLXN0cnVjdCBlY19wYXJhbXNfaTJjX3Bhc3N0aHJ1IHsKLQl1aW50OF90IHBvcnQ7CQkvKiBJMkMgcG9ydCBudW1iZXIgKi8KLQl1aW50OF90IG51bV9tc2dzOwkvKiBOdW1iZXIgb2YgbWVzc2FnZXMgKi8KLQlzdHJ1Y3QgZWNfcGFyYW1zX2kyY19wYXNzdGhydV9tc2cgbXNnW107Ci0JLyogRGF0YSB0byB3cml0ZSBmb3IgYWxsIG1lc3NhZ2VzIGlzIGNvbmNhdGVuYXRlZCBoZXJlICovCi19IF9fZWNfYWxpZ24yOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfaTJjX3Bhc3N0aHJ1IHsKLQl1aW50OF90IGkyY19zdGF0dXM7CS8qIFN0YXR1cyBmbGFncyAoRUNfSTJDX1NUQVRVU18uLi4pICovCi0JdWludDhfdCBudW1fbXNnczsJLyogTnVtYmVyIG9mIG1lc3NhZ2VzIHByb2Nlc3NlZCAqLwotCXVpbnQ4X3QgZGF0YVtdOwkJLyogRGF0YSByZWFkIGJ5IG1lc3NhZ2VzIGNvbmNhdGVuYXRlZCBoZXJlICovCi19IF9fZWNfYWxpZ24xOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBQb3dlciBidXR0b24gaGFuZyBkZXRlY3QgKi8KLQotI2RlZmluZSBFQ19DTURfSEFOR19ERVRFQ1QgMHgwMDlGCi0KLS8qIFJlYXNvbnMgdG8gc3RhcnQgaGFuZyBkZXRlY3Rpb24gdGltZXIgKi8KLS8qIFBvd2VyIGJ1dHRvbiBwcmVzc2VkICovCi0jZGVmaW5lIEVDX0hBTkdfU1RBUlRfT05fUE9XRVJfUFJFU1MgIEJJVCgwKQotCi0vKiBMaWQgY2xvc2VkICovCi0jZGVmaW5lIEVDX0hBTkdfU1RBUlRfT05fTElEX0NMT1NFICAgIEJJVCgxKQotCi0gLyogTGlkIG9wZW5lZCAqLwotI2RlZmluZSBFQ19IQU5HX1NUQVJUX09OX0xJRF9PUEVOICAgICBCSVQoMikKLQotLyogU3RhcnQgb2YgQVAgUzMtPlMwIHRyYW5zaXRpb24gKGJvb3Rpbmcgb3IgcmVzdW1pbmcgZnJvbSBzdXNwZW5kKSAqLwotI2RlZmluZSBFQ19IQU5HX1NUQVJUX09OX1JFU1VNRSAgICAgICBCSVQoMykKLQotLyogUmVhc29ucyB0byBjYW5jZWwgaGFuZyBkZXRlY3Rpb24gKi8KLQotLyogUG93ZXIgYnV0dG9uIHJlbGVhc2VkICovCi0jZGVmaW5lIEVDX0hBTkdfU1RPUF9PTl9QT1dFUl9SRUxFQVNFIEJJVCg4KQotCi0vKiBBbnkgaG9zdCBjb21tYW5kIGZyb20gQVAgcmVjZWl2ZWQgKi8KLSNkZWZpbmUgRUNfSEFOR19TVE9QX09OX0hPU1RfQ09NTUFORCAgQklUKDkpCi0KLS8qIFN0b3Agb24gZW5kIG9mIEFQIFMwLT5TMyB0cmFuc2l0aW9uIChzdXNwZW5kaW5nIG9yIHNodXR0aW5nIGRvd24pICovCi0jZGVmaW5lIEVDX0hBTkdfU1RPUF9PTl9TVVNQRU5EICAgICAgIEJJVCgxMCkKLQotLyoKLSAqIElmIHRoaXMgZmxhZyBpcyBzZXQsIGFsbCB0aGUgb3RoZXIgZmllbGRzIGFyZSBpZ25vcmVkLCBhbmQgdGhlIGhhbmcgZGV0ZWN0Ci0gKiB0aW1lciBpcyBzdGFydGVkLiAgVGhpcyBwcm92aWRlcyB0aGUgQVAgYSB3YXkgdG8gc3RhcnQgdGhlIGhhbmcgdGltZXIKLSAqIHdpdGhvdXQgcmVjb25maWd1cmluZyBhbnkgb2YgdGhlIG90aGVyIGhhbmcgZGV0ZWN0IHNldHRpbmdzLiAgTm90ZSB0aGF0Ci0gKiB5b3UgbXVzdCBwcmV2aW91c2x5IGhhdmUgY29uZmlndXJlZCB0aGUgdGltZW91dHMuCi0gKi8KLSNkZWZpbmUgRUNfSEFOR19TVEFSVF9OT1cgICAgICAgICAgICAgQklUKDMwKQotCi0vKgotICogSWYgdGhpcyBmbGFnIGlzIHNldCwgYWxsIHRoZSBvdGhlciBmaWVsZHMgYXJlIGlnbm9yZWQgKGluY2x1ZGluZwotICogRUNfSEFOR19TVEFSVF9OT1cpLiAgVGhpcyBwcm92aWRlcyB0aGUgQVAgYSB3YXkgdG8gc3RvcCB0aGUgaGFuZyB0aW1lcgotICogd2l0aG91dCByZWNvbmZpZ3VyaW5nIGFueSBvZiB0aGUgb3RoZXIgaGFuZyBkZXRlY3Qgc2V0dGluZ3MuCi0gKi8KLSNkZWZpbmUgRUNfSEFOR19TVE9QX05PVyAgICAgICAgICAgICAgQklUKDMxKQotCi1zdHJ1Y3QgZWNfcGFyYW1zX2hhbmdfZGV0ZWN0IHsKLQkvKiBGbGFnczsgc2VlIEVDX0hBTkdfKiAqLwotCXVpbnQzMl90IGZsYWdzOwotCi0JLyogVGltZW91dCBpbiBtc2VjIGJlZm9yZSBnZW5lcmF0aW5nIGhvc3QgZXZlbnQsIGlmIGVuYWJsZWQgKi8KLQl1aW50MTZfdCBob3N0X2V2ZW50X3RpbWVvdXRfbXNlYzsKLQotCS8qIFRpbWVvdXQgaW4gbXNlYyBiZWZvcmUgZ2VuZXJhdGluZyB3YXJtIHJlYm9vdCwgaWYgZW5hYmxlZCAqLwotCXVpbnQxNl90IHdhcm1fcmVib290X3RpbWVvdXRfbXNlYzsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIENvbW1hbmRzIGZvciBiYXR0ZXJ5IGNoYXJnaW5nICovCi0KLS8qCi0gKiBUaGlzIGlzIHRoZSBzaW5nbGUgY2F0Y2gtYWxsIGhvc3QgY29tbWFuZCB0byBleGNoYW5nZSBkYXRhIHJlZ2FyZGluZyB0aGUKLSAqIGNoYXJnZSBzdGF0ZSBtYWNoaW5lICh2MiBhbmQgdXApLgotICovCi0jZGVmaW5lIEVDX0NNRF9DSEFSR0VfU1RBVEUgMHgwMEEwCi0KLS8qIFN1YmNvbW1hbmRzIGZvciB0aGlzIGhvc3QgY29tbWFuZCAqLwotZW51bSBjaGFyZ2Vfc3RhdGVfY29tbWFuZCB7Ci0JQ0hBUkdFX1NUQVRFX0NNRF9HRVRfU1RBVEUsCi0JQ0hBUkdFX1NUQVRFX0NNRF9HRVRfUEFSQU0sCi0JQ0hBUkdFX1NUQVRFX0NNRF9TRVRfUEFSQU0sCi0JQ0hBUkdFX1NUQVRFX05VTV9DTURTCi19OwotCi0vKgotICogS25vd24gcGFyYW0gbnVtYmVycyBhcmUgZGVmaW5lZCBoZXJlLiBSYW5nZXMgYXJlIHJlc2VydmVkIGZvciBib2FyZC1zcGVjaWZpYwotICogcGFyYW1zLCB3aGljaCBhcmUgaGFuZGxlZCBieSB0aGUgcGFydGljdWxhciBpbXBsZW1lbnRhdGlvbnMuCi0gKi8KLWVudW0gY2hhcmdlX3N0YXRlX3BhcmFtcyB7Ci0JQ1NfUEFSQU1fQ0hHX1ZPTFRBR0UsCSAgICAgIC8qIGNoYXJnZXIgdm9sdGFnZSBsaW1pdCAqLwotCUNTX1BBUkFNX0NIR19DVVJSRU5ULAkgICAgICAvKiBjaGFyZ2VyIGN1cnJlbnQgbGltaXQgKi8KLQlDU19QQVJBTV9DSEdfSU5QVVRfQ1VSUkVOVCwgICAvKiBjaGFyZ2VyIGlucHV0IGN1cnJlbnQgbGltaXQgKi8KLQlDU19QQVJBTV9DSEdfU1RBVFVTLAkgICAgICAvKiBjaGFyZ2VyLXNwZWNpZmljIHN0YXR1cyAqLwotCUNTX1BBUkFNX0NIR19PUFRJT04sCSAgICAgIC8qIGNoYXJnZXItc3BlY2lmaWMgb3B0aW9ucyAqLwotCUNTX1BBUkFNX0xJTUlUX1BPV0VSLAkgICAgICAvKgotCQkJCSAgICAgICAqIENoZWNrIGlmIHBvd2VyIGlzIGxpbWl0ZWQgZHVlIHRvCi0JCQkJICAgICAgICogbG93IGJhdHRlcnkgYW5kIC8gb3IgYSB3ZWFrIGV4dGVybmFsCi0JCQkJICAgICAgICogY2hhcmdlci4gUkVBRCBPTkxZLgotCQkJCSAgICAgICAqLwotCS8qIEhvdyBtYW55IHNvIGZhcj8gKi8KLQlDU19OVU1fQkFTRV9QQVJBTVMsCi0KLQkvKiBSYW5nZSBmb3IgQ09ORklHX0NIQVJHRVJfUFJPRklMRV9PVkVSUklERSBwYXJhbXMgKi8KLQlDU19QQVJBTV9DVVNUT01fUFJPRklMRV9NSU4gPSAweDEwMDAwLAotCUNTX1BBUkFNX0NVU1RPTV9QUk9GSUxFX01BWCA9IDB4MWZmZmYsCi0KLQkvKiBSYW5nZSBmb3IgQ09ORklHX0NIQVJHRV9TVEFURV9ERUJVRyBwYXJhbXMgKi8KLQlDU19QQVJBTV9ERUJVR19NSU4gPSAweDIwMDAwLAotCUNTX1BBUkFNX0RFQlVHX0NUTF9NT0RFID0gMHgyMDAwMCwKLQlDU19QQVJBTV9ERUJVR19NQU5VQUxfTU9ERSwKLQlDU19QQVJBTV9ERUJVR19TRUVNU19ERUFELAotCUNTX1BBUkFNX0RFQlVHX1NFRU1TX0RJU0NPTk5FQ1RFRCwKLQlDU19QQVJBTV9ERUJVR19CQVRUX1JFTU9WRUQsCi0JQ1NfUEFSQU1fREVCVUdfTUFOVUFMX0NVUlJFTlQsCi0JQ1NfUEFSQU1fREVCVUdfTUFOVUFMX1ZPTFRBR0UsCi0JQ1NfUEFSQU1fREVCVUdfTUFYID0gMHgyZmZmZiwKLQotCS8qIE90aGVyIGN1c3RvbSBwYXJhbSByYW5nZXMgZ28gaGVyZS4uLiAqLwotfTsKLQotc3RydWN0IGVjX3BhcmFtc19jaGFyZ2Vfc3RhdGUgewotCXVpbnQ4X3QgY21kOwkJCQkvKiBlbnVtIGNoYXJnZV9zdGF0ZV9jb21tYW5kICovCi0JdW5pb24gewotCQkvKiBnZXRfc3RhdGUgaGFzIG5vIGFyZ3MgKi8KLQotCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKLQkJCXVpbnQzMl90IHBhcmFtOwkJLyogZW51bSBjaGFyZ2Vfc3RhdGVfcGFyYW0gKi8KLQkJfSBnZXRfcGFyYW07Ci0KLQkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7Ci0JCQl1aW50MzJfdCBwYXJhbTsJCS8qIHBhcmFtIHRvIHNldCAqLwotCQkJdWludDMyX3QgdmFsdWU7CQkvKiB2YWx1ZSB0byBzZXQgKi8KLQkJfSBzZXRfcGFyYW07Ci0JfTsKLX0gX19lY190b2RvX3BhY2tlZDsKLQotc3RydWN0IGVjX3Jlc3BvbnNlX2NoYXJnZV9zdGF0ZSB7Ci0JdW5pb24gewotCQlzdHJ1Y3QgX19lY19hbGlnbjQgewotCQkJaW50IGFjOwotCQkJaW50IGNoZ192b2x0YWdlOwotCQkJaW50IGNoZ19jdXJyZW50OwotCQkJaW50IGNoZ19pbnB1dF9jdXJyZW50OwotCQkJaW50IGJhdHRfc3RhdGVfb2ZfY2hhcmdlOwotCQl9IGdldF9zdGF0ZTsKLQotCQlzdHJ1Y3QgX19lY19hbGlnbjQgewotCQkJdWludDMyX3QgdmFsdWU7Ci0JCX0gZ2V0X3BhcmFtOwotCi0JCS8qIHNldF9wYXJhbSByZXR1cm5zIG5vIGFyZ3MgKi8KLQl9OwotfSBfX2VjX2FsaWduNDsKLQotCi0vKgotICogU2V0IG1heGltdW0gYmF0dGVyeSBjaGFyZ2luZyBjdXJyZW50LgotICovCi0jZGVmaW5lIEVDX0NNRF9DSEFSR0VfQ1VSUkVOVF9MSU1JVCAweDAwQTEKLQotc3RydWN0IGVjX3BhcmFtc19jdXJyZW50X2xpbWl0IHsKLQl1aW50MzJfdCBsaW1pdDsgLyogaW4gbUEgKi8KLX0gX19lY19hbGlnbjQ7Ci0KLS8qCi0gKiBTZXQgbWF4aW11bSBleHRlcm5hbCB2b2x0YWdlIC8gY3VycmVudC4KLSAqLwotI2RlZmluZSBFQ19DTURfRVhURVJOQUxfUE9XRVJfTElNSVQgMHgwMEEyCi0KLS8qIENvbW1hbmQgdjAgaXMgdXNlZCBvbmx5IG9uIFNwcmluZyBhbmQgaXMgb2Jzb2xldGUgKyB1bnN1cHBvcnRlZCAqLwotc3RydWN0IGVjX3BhcmFtc19leHRlcm5hbF9wb3dlcl9saW1pdF92MSB7Ci0JdWludDE2X3QgY3VycmVudF9saW07IC8qIGluIG1BLCBvciBFQ19QT1dFUl9MSU1JVF9OT05FIHRvIGNsZWFyIGxpbWl0ICovCi0JdWludDE2X3Qgdm9sdGFnZV9saW07IC8qIGluIG1WLCBvciBFQ19QT1dFUl9MSU1JVF9OT05FIHRvIGNsZWFyIGxpbWl0ICovCi19IF9fZWNfYWxpZ24yOwotCi0jZGVmaW5lIEVDX1BPV0VSX0xJTUlUX05PTkUgMHhmZmZmCi0KLS8qCi0gKiBTZXQgbWF4aW11bSB2b2x0YWdlICYgY3VycmVudCBvZiBhIGRlZGljYXRlZCBjaGFyZ2UgcG9ydAotICovCi0jZGVmaW5lIEVDX0NNRF9PVkVSUklERV9ERURJQ0FURURfQ0hBUkdFUl9MSU1JVCAweDAwQTMKLQotc3RydWN0IGVjX3BhcmFtc19kZWRpY2F0ZWRfY2hhcmdlcl9saW1pdCB7Ci0JdWludDE2X3QgY3VycmVudF9saW07IC8qIGluIG1BICovCi0JdWludDE2X3Qgdm9sdGFnZV9saW07IC8qIGluIG1WICovCi19IF9fZWNfYWxpZ24yOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBIaWJlcm5hdGUvRGVlcCBTbGVlcCBDb21tYW5kcyAqLwotCi0vKiBTZXQgdGhlIGRlbGF5IGJlZm9yZSBnb2luZyBpbnRvIGhpYmVybmF0aW9uLiAqLwotI2RlZmluZSBFQ19DTURfSElCRVJOQVRJT05fREVMQVkgMHgwMEE4Ci0KLXN0cnVjdCBlY19wYXJhbXNfaGliZXJuYXRpb25fZGVsYXkgewotCS8qCi0JICogU2Vjb25kcyB0byB3YWl0IGluIEczIGJlZm9yZSBoaWJlcm5hdGUuICBQYXNzIGluIDAgdG8gcmVhZCB0aGUKLQkgKiBjdXJyZW50IHNldHRpbmdzIHdpdGhvdXQgY2hhbmdpbmcgdGhlbS4KLQkgKi8KLQl1aW50MzJfdCBzZWNvbmRzOwotfSBfX2VjX2FsaWduNDsKLQotc3RydWN0IGVjX3Jlc3BvbnNlX2hpYmVybmF0aW9uX2RlbGF5IHsKLQkvKgotCSAqIFRoZSBjdXJyZW50IHRpbWUgaW4gc2Vjb25kcyBpbiB3aGljaCB0aGUgc3lzdGVtIGhhcyBiZWVuIGluIHRoZSBHMwotCSAqIHN0YXRlLiAgVGhpcyB2YWx1ZSBpcyByZXNldCBpZiB0aGUgRUMgdHJhbnNpdGlvbnMgb3V0IG9mIEczLgotCSAqLwotCXVpbnQzMl90IHRpbWVfZzM7Ci0KLQkvKgotCSAqIFRoZSBjdXJyZW50IHRpbWUgcmVtYWluaW5nIGluIHNlY29uZHMgdW50aWwgdGhlIEVDIHNob3VsZCBoaWJlcm5hdGUuCi0JICogVGhpcyB2YWx1ZSBpcyBhbHNvIHJlc2V0IGlmIHRoZSBFQyB0cmFuc2l0aW9ucyBvdXQgb2YgRzMuCi0JICovCi0JdWludDMyX3QgdGltZV9yZW1haW5pbmc7Ci0KLQkvKgotCSAqIFRoZSBjdXJyZW50IHRpbWUgaW4gc2Vjb25kcyB0aGF0IHRoZSBFQyBzaG91bGQgd2FpdCBpbiBHMyBiZWZvcmUKLQkgKiBoaWJlcm5hdGluZy4KLQkgKi8KLQl1aW50MzJfdCBoaWJlcm5hdGVfZGVsYXk7Ci19IF9fZWNfYWxpZ240OwotCi0vKiBJbmZvcm0gdGhlIEVDIHdoZW4gZW50ZXJpbmcgYSBzbGVlcCBzdGF0ZSAqLwotI2RlZmluZSBFQ19DTURfSE9TVF9TTEVFUF9FVkVOVCAweDAwQTkKLQotZW51bSBob3N0X3NsZWVwX2V2ZW50IHsKLQlIT1NUX1NMRUVQX0VWRU5UX1MzX1NVU1BFTkQgICA9IDEsCi0JSE9TVF9TTEVFUF9FVkVOVF9TM19SRVNVTUUgICAgPSAyLAotCUhPU1RfU0xFRVBfRVZFTlRfUzBJWF9TVVNQRU5EID0gMywKLQlIT1NUX1NMRUVQX0VWRU5UX1MwSVhfUkVTVU1FICA9IDQsCi0JLyogUzMgc3VzcGVuZCB3aXRoIGFkZGl0aW9uYWwgZW5hYmxlZCB3YWtlIHNvdXJjZXMgKi8KLQlIT1NUX1NMRUVQX0VWRU5UX1MzX1dBS0VBQkxFX1NVU1BFTkQgPSA1LAotfTsKLQotc3RydWN0IGVjX3BhcmFtc19ob3N0X3NsZWVwX2V2ZW50IHsKLQl1aW50OF90IHNsZWVwX2V2ZW50OwotfSBfX2VjX2FsaWduMTsKLQotLyoKLSAqIFVzZSBhIGRlZmF1bHQgdGltZW91dCB2YWx1ZSAoQ09ORklHX1NMRUVQX1RJTUVPVVRfTVMpIGZvciBkZXRlY3Rpbmcgc2xlZXAKLSAqIHRyYW5zaXRpb24gZmFpbHVyZXMKLSAqLwotI2RlZmluZSBFQ19IT1NUX1NMRUVQX1RJTUVPVVRfREVGQVVMVCAwCi0KLS8qIERpc2FibGUgdGltZW91dCBkZXRlY3Rpb24gZm9yIHRoaXMgc2xlZXAgdHJhbnNpdGlvbiAqLwotI2RlZmluZSBFQ19IT1NUX1NMRUVQX1RJTUVPVVRfSU5GSU5JVEUgMHhGRkZGCi0KLXN0cnVjdCBlY19wYXJhbXNfaG9zdF9zbGVlcF9ldmVudF92MSB7Ci0JLyogVGhlIHR5cGUgb2Ygc2xlZXAgYmVpbmcgZW50ZXJlZCBvciBleGl0ZWQuICovCi0JdWludDhfdCBzbGVlcF9ldmVudDsKLQotCS8qIFBhZGRpbmcgKi8KLQl1aW50OF90IHJlc2VydmVkOwotCXVuaW9uIHsKLQkJLyogUGFyYW1ldGVycyB0aGF0IGFwcGx5IGZvciBzdXNwZW5kIG1lc3NhZ2VzLiAqLwotCQlzdHJ1Y3QgewotCQkJLyoKLQkJCSAqIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHdoZW4gdGhpcyBtZXNzYWdlCi0JCQkgKiBpcyByZWNlaXZlZCBhbmQgd2hlbiB0aGUgRUMgd2lsbCBkZWNsYXJlIHNsZWVwCi0JCQkgKiB0cmFuc2l0aW9uIGZhaWx1cmUgaWYgdGhlIHNsZWVwIHNpZ25hbCBpcyBub3QKLQkJCSAqIGFzc2VydGVkLgotCQkJICovCi0JCQl1aW50MTZfdCBzbGVlcF90aW1lb3V0X21zOwotCQl9IHN1c3BlbmRfcGFyYW1zOwotCi0JCS8qIE5vIHBhcmFtZXRlcnMgZm9yIG5vbi1zdXNwZW5kIG1lc3NhZ2VzLiAqLwotCX07Ci19IF9fZWNfYWxpZ24yOwotCi0vKiBBIHRpbWVvdXQgb2NjdXJyZWQgd2hlbiB0aGlzIGJpdCBpcyBzZXQgKi8KLSNkZWZpbmUgRUNfSE9TVF9SRVNVTUVfU0xFRVBfVElNRU9VVCAweDgwMDAwMDAwCi0KLS8qCi0gKiBUaGUgbWFzayBkZWZpbmluZyB3aGljaCBiaXRzIGNvcnJlc3BvbmQgdG8gdGhlIG51bWJlciBvZiBzbGVlcCB0cmFuc2l0aW9ucywKLSAqIGFzIHdlbGwgYXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHN1c3BlbmQgbGluZSB0cmFuc2l0aW9ucyB0aGF0IHdpbGwgYmUKLSAqIHJlcG9ydGVkIGJhY2sgdG8gdGhlIGhvc3QuCi0gKi8KLSNkZWZpbmUgRUNfSE9TVF9SRVNVTUVfU0xFRVBfVFJBTlNJVElPTlNfTUFTSyAweDdGRkZGRkZGCi0KLXN0cnVjdCBlY19yZXNwb25zZV9ob3N0X3NsZWVwX2V2ZW50X3YxIHsKLQl1bmlvbiB7Ci0JCS8qIFJlc3BvbnNlIGZpZWxkcyB0aGF0IGFwcGx5IGZvciByZXN1bWUgbWVzc2FnZXMuICovCi0JCXN0cnVjdCB7Ci0JCQkvKgotCQkJICogVGhlIG51bWJlciBvZiBzbGVlcCBwb3dlciBzaWduYWwgdHJhbnNpdGlvbnMgdGhhdAotCQkJICogb2NjdXJyZWQgc2luY2UgdGhlIHN1c3BlbmQgbWVzc2FnZS4gVGhlIGhpZ2ggYml0Ci0JCQkgKiBpbmRpY2F0ZXMgYSB0aW1lb3V0IG9jY3VycmVkLgotCQkJICovCi0JCQl1aW50MzJfdCBzbGVlcF90cmFuc2l0aW9uczsKLQkJfSByZXN1bWVfcmVzcG9uc2U7Ci0KLQkJLyogTm8gcmVzcG9uc2UgZmllbGRzIGZvciBub24tcmVzdW1lIG1lc3NhZ2VzLiAqLwotCX07Ci19IF9fZWNfYWxpZ240OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBEZXZpY2UgZXZlbnRzICovCi0jZGVmaW5lIEVDX0NNRF9ERVZJQ0VfRVZFTlQgMHgwMEFBCi0KLWVudW0gZWNfZGV2aWNlX2V2ZW50IHsKLQlFQ19ERVZJQ0VfRVZFTlRfVFJBQ0tQQUQsCi0JRUNfREVWSUNFX0VWRU5UX0RTUCwKLQlFQ19ERVZJQ0VfRVZFTlRfV0lGSSwKLX07Ci0KLWVudW0gZWNfZGV2aWNlX2V2ZW50X3BhcmFtIHsKLQkvKiBHZXQgYW5kIGNsZWFyIHBlbmRpbmcgZGV2aWNlIGV2ZW50cyAqLwotCUVDX0RFVklDRV9FVkVOVF9QQVJBTV9HRVRfQ1VSUkVOVF9FVkVOVFMsCi0JLyogR2V0IGRldmljZSBldmVudCBtYXNrICovCi0JRUNfREVWSUNFX0VWRU5UX1BBUkFNX0dFVF9FTkFCTEVEX0VWRU5UUywKLQkvKiBTZXQgZGV2aWNlIGV2ZW50IG1hc2sgKi8KLQlFQ19ERVZJQ0VfRVZFTlRfUEFSQU1fU0VUX0VOQUJMRURfRVZFTlRTLAotfTsKLQotI2RlZmluZSBFQ19ERVZJQ0VfRVZFTlRfTUFTSyhldmVudF9jb2RlKSBCSVQoZXZlbnRfY29kZSAlIDMyKQotCi1zdHJ1Y3QgZWNfcGFyYW1zX2RldmljZV9ldmVudCB7Ci0JdWludDMyX3QgZXZlbnRfbWFzazsKLQl1aW50OF90IHBhcmFtOwotfSBfX2VjX2FsaWduX3NpemUxOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZGV2aWNlX2V2ZW50IHsKLQl1aW50MzJfdCBldmVudF9tYXNrOwotfSBfX2VjX2FsaWduNDsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogU21hcnQgYmF0dGVyeSBwYXNzLXRocm91Z2ggKi8KLQotLyogR2V0IC8gU2V0IDE2LWJpdCBzbWFydCBiYXR0ZXJ5IHJlZ2lzdGVycyAqLwotI2RlZmluZSBFQ19DTURfU0JfUkVBRF9XT1JEICAgMHgwMEIwCi0jZGVmaW5lIEVDX0NNRF9TQl9XUklURV9XT1JEICAweDAwQjEKLQotLyogR2V0IC8gU2V0IHN0cmluZyBzbWFydCBiYXR0ZXJ5IHBhcmFtZXRlcnMKLSAqIGZvcm1hdHRlZCBhcyBTTUJVUyAiYmxvY2siLgotICovCi0jZGVmaW5lIEVDX0NNRF9TQl9SRUFEX0JMT0NLICAweDAwQjIKLSNkZWZpbmUgRUNfQ01EX1NCX1dSSVRFX0JMT0NLIDB4MDBCMwotCi1zdHJ1Y3QgZWNfcGFyYW1zX3NiX3JkIHsKLQl1aW50OF90IHJlZzsKLX0gX19lY19hbGlnbjE7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9zYl9yZF93b3JkIHsKLQl1aW50MTZfdCB2YWx1ZTsKLX0gX19lY19hbGlnbjI7Ci0KLXN0cnVjdCBlY19wYXJhbXNfc2Jfd3Jfd29yZCB7Ci0JdWludDhfdCByZWc7Ci0JdWludDE2X3QgdmFsdWU7Ci19IF9fZWNfYWxpZ24xOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2Vfc2JfcmRfYmxvY2sgewotCXVpbnQ4X3QgZGF0YVszMl07Ci19IF9fZWNfYWxpZ24xOwotCi1zdHJ1Y3QgZWNfcGFyYW1zX3NiX3dyX2Jsb2NrIHsKLQl1aW50OF90IHJlZzsKLQl1aW50MTZfdCBkYXRhWzMyXTsKLX0gX19lY19hbGlnbjE7Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIEJhdHRlcnkgdmVuZG9yIHBhcmFtZXRlcnMKLSAqCi0gKiBHZXQgb3Igc2V0IHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXJzIGluIHRoZSBiYXR0ZXJ5LiBJbXBsZW1lbnRhdGlvbnMgbWF5Ci0gKiBkaWZmZXIgYmV0d2VlbiBib2FyZHMgb3IgYmF0dGVyaWVzLiBPbiBhIHNldCBvcGVyYXRpb24sIHRoZSByZXNwb25zZQotICogY29udGFpbnMgdGhlIGFjdHVhbCB2YWx1ZSBzZXQsIHdoaWNoIG1heSBiZSByb3VuZGVkIG9yIGNsaXBwZWQgZnJvbSB0aGUKLSAqIHJlcXVlc3RlZCB2YWx1ZS4KLSAqLwotCi0jZGVmaW5lIEVDX0NNRF9CQVRURVJZX1ZFTkRPUl9QQVJBTSAweDAwQjQKLQotZW51bSBlY19iYXR0ZXJ5X3ZlbmRvcl9wYXJhbV9tb2RlIHsKLQlCQVRURVJZX1ZFTkRPUl9QQVJBTV9NT0RFX0dFVCA9IDAsCi0JQkFUVEVSWV9WRU5ET1JfUEFSQU1fTU9ERV9TRVQsCi19OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX2JhdHRlcnlfdmVuZG9yX3BhcmFtIHsKLQl1aW50MzJfdCBwYXJhbTsKLQl1aW50MzJfdCB2YWx1ZTsKLQl1aW50OF90IG1vZGU7Ci19IF9fZWNfYWxpZ25fc2l6ZTE7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9iYXR0ZXJ5X3ZlbmRvcl9wYXJhbSB7Ci0JdWludDMyX3QgdmFsdWU7Ci19IF9fZWNfYWxpZ240OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgotICogU21hcnQgQmF0dGVyeSBGaXJtd2FyZSBVcGRhdGUgQ29tbWFuZHMKLSAqLwotI2RlZmluZSBFQ19DTURfU0JfRldfVVBEQVRFIDB4MDBCNQotCi1lbnVtIGVjX3NiX2Z3X3VwZGF0ZV9zdWJjbWQgewotCUVDX1NCX0ZXX1VQREFURV9QUkVQQVJFICA9IDB4MCwKLQlFQ19TQl9GV19VUERBVEVfSU5GTyAgICAgPSAweDEsIC8qcXVlcnkgc2IgaW5mbyAqLwotCUVDX1NCX0ZXX1VQREFURV9CRUdJTiAgICA9IDB4MiwgLypjaGVjayBpZiBwcm90ZWN0ZWQgKi8KLQlFQ19TQl9GV19VUERBVEVfV1JJVEUgICAgPSAweDMsIC8qY2hlY2sgaWYgcHJvdGVjdGVkICovCi0JRUNfU0JfRldfVVBEQVRFX0VORCAgICAgID0gMHg0LAotCUVDX1NCX0ZXX1VQREFURV9TVEFUVVMgICA9IDB4NSwKLQlFQ19TQl9GV19VUERBVEVfUFJPVEVDVCAgPSAweDYsCi0JRUNfU0JfRldfVVBEQVRFX01BWCAgICAgID0gMHg3LAotfTsKLQotI2RlZmluZSBTQl9GV19VUERBVEVfQ01EX1dSSVRFX0JMT0NLX1NJWkUgMzIKLSNkZWZpbmUgU0JfRldfVVBEQVRFX0NNRF9TVEFUVVNfU0laRSAyCi0jZGVmaW5lIFNCX0ZXX1VQREFURV9DTURfSU5GT19TSVpFIDgKLQotc3RydWN0IGVjX3NiX2Z3X3VwZGF0ZV9oZWFkZXIgewotCXVpbnQxNl90IHN1YmNtZDsgIC8qIGVudW0gZWNfc2JfZndfdXBkYXRlX3N1YmNtZCAqLwotCXVpbnQxNl90IGZ3X2lkOyAgIC8qIGZpcm13YXJlIGlkICovCi19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX3NiX2Z3X3VwZGF0ZSB7Ci0Jc3RydWN0IGVjX3NiX2Z3X3VwZGF0ZV9oZWFkZXIgaGRyOwotCXVuaW9uIHsKLQkJLyogRUNfU0JfRldfVVBEQVRFX1BSRVBBUkUgID0gMHgwICovCi0JCS8qIEVDX1NCX0ZXX1VQREFURV9JTkZPICAgICA9IDB4MSAqLwotCQkvKiBFQ19TQl9GV19VUERBVEVfQkVHSU4gICAgPSAweDIgKi8KLQkJLyogRUNfU0JfRldfVVBEQVRFX0VORCAgICAgID0gMHg0ICovCi0JCS8qIEVDX1NCX0ZXX1VQREFURV9TVEFUVVMgICA9IDB4NSAqLwotCQkvKiBFQ19TQl9GV19VUERBVEVfUFJPVEVDVCAgPSAweDYgKi8KLQkJLyogVGhvc2UgaGF2ZSBubyBhcmdzICovCi0KLQkJLyogRUNfU0JfRldfVVBEQVRFX1dSSVRFICAgID0gMHgzICovCi0JCXN0cnVjdCBfX2VjX2FsaWduNCB7Ci0JCQl1aW50OF90ICBkYXRhW1NCX0ZXX1VQREFURV9DTURfV1JJVEVfQkxPQ0tfU0laRV07Ci0JCX0gd3JpdGU7Ci0JfTsKLX0gX19lY19hbGlnbjQ7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9zYl9md191cGRhdGUgewotCXVuaW9uIHsKLQkJLyogRUNfU0JfRldfVVBEQVRFX0lORk8gICAgID0gMHgxICovCi0JCXN0cnVjdCBfX2VjX2FsaWduMSB7Ci0JCQl1aW50OF90IGRhdGFbU0JfRldfVVBEQVRFX0NNRF9JTkZPX1NJWkVdOwotCQl9IGluZm87Ci0KLQkJLyogRUNfU0JfRldfVVBEQVRFX1NUQVRVUyAgID0gMHg1ICovCi0JCXN0cnVjdCBfX2VjX2FsaWduMSB7Ci0JCQl1aW50OF90IGRhdGFbU0JfRldfVVBEQVRFX0NNRF9TVEFUVVNfU0laRV07Ci0JCX0gc3RhdHVzOwotCX07Ci19IF9fZWNfYWxpZ24xOwotCi0vKgotICogRW50ZXJpbmcgVmVyaWZpZWQgQm9vdCBNb2RlIENvbW1hbmQKLSAqIERlZmF1bHQgbW9kZSBpcyBWQk9PVF9NT0RFX05PUk1BTCBpZiBFQyBkaWQgbm90IHJlY2VpdmUgdGhpcyBjb21tYW5kLgotICogVmFsaWQgTW9kZXMgYXJlOiBub3JtYWwsIGRldmVsb3BlciwgYW5kIHJlY292ZXJ5LgotICovCi0jZGVmaW5lIEVDX0NNRF9FTlRFUklOR19NT0RFIDB4MDBCNgotCi1zdHJ1Y3QgZWNfcGFyYW1zX2VudGVyaW5nX21vZGUgewotCWludCB2Ym9vdF9tb2RlOwotfSBfX2VjX2FsaWduNDsKLQotI2RlZmluZSBWQk9PVF9NT0RFX05PUk1BTCAgICAwCi0jZGVmaW5lIFZCT09UX01PREVfREVWRUxPUEVSIDEKLSNkZWZpbmUgVkJPT1RfTU9ERV9SRUNPVkVSWSAgMgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgotICogSTJDIHBhc3N0aHJ1IHByb3RlY3Rpb24gY29tbWFuZDogUHJvdGVjdHMgSTJDIHR1bm5lbHMgYWdhaW5zdCBhY2Nlc3Mgb24KLSAqIGNlcnRhaW4gYWRkcmVzc2VzIChib2FyZC1zcGVjaWZpYykuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0kyQ19QQVNTVEhSVV9QUk9URUNUIDB4MDBCNwotCi1lbnVtIGVjX2kyY19wYXNzdGhydV9wcm90ZWN0X3N1YmNtZCB7Ci0JRUNfQ01EX0kyQ19QQVNTVEhSVV9QUk9URUNUX1NUQVRVUyA9IDB4MCwKLQlFQ19DTURfSTJDX1BBU1NUSFJVX1BST1RFQ1RfRU5BQkxFID0gMHgxLAotfTsKLQotc3RydWN0IGVjX3BhcmFtc19pMmNfcGFzc3RocnVfcHJvdGVjdCB7Ci0JdWludDhfdCBzdWJjbWQ7Ci0JdWludDhfdCBwb3J0OwkJLyogSTJDIHBvcnQgbnVtYmVyICovCi19IF9fZWNfYWxpZ24xOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfaTJjX3Bhc3N0aHJ1X3Byb3RlY3QgewotCXVpbnQ4X3Qgc3RhdHVzOwkJLyogU3RhdHVzIGZsYWdzICgwOiB1bmxvY2tlZCwgMTogbG9ja2VkKSAqLwotfSBfX2VjX2FsaWduMTsKLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgotICogSERNSSBDRUMgY29tbWFuZHMKLSAqCi0gKiBUaGVzZSBjb21tYW5kcyBhcmUgZm9yIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlIHZpYSBIRE1JIENFQwotICovCi0KLSNkZWZpbmUgTUFYX0NFQ19NU0dfTEVOIDE2Ci0KLS8qIENFQyBtZXNzYWdlIGZyb20gdGhlIEFQIHRvIGJlIHdyaXR0ZW4gb24gdGhlIENFQyBidXMgKi8KLSNkZWZpbmUgRUNfQ01EX0NFQ19XUklURV9NU0cgMHgwMEI4Ci0KLS8qKgotICogc3RydWN0IGVjX3BhcmFtc19jZWNfd3JpdGUgLSBNZXNzYWdlIHRvIHdyaXRlIHRvIHRoZSBDRUMgYnVzCi0gKiBAbXNnOiBtZXNzYWdlIGNvbnRlbnQgdG8gd3JpdGUgdG8gdGhlIENFQyBidXMKLSAqLwotc3RydWN0IGVjX3BhcmFtc19jZWNfd3JpdGUgewotCXVpbnQ4X3QgbXNnW01BWF9DRUNfTVNHX0xFTl07Ci19IF9fZWNfYWxpZ24xOwotCi0vKiBTZXQgdmFyaW91cyBDRUMgcGFyYW1ldGVycyAqLwotI2RlZmluZSBFQ19DTURfQ0VDX1NFVCAweDAwQkEKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcGFyYW1zX2NlY19zZXQgLSBDRUMgcGFyYW1ldGVycyBzZXQKLSAqIEBjbWQ6IHBhcmFtZXRlciB0eXBlLCBjYW4gYmUgQ0VDX0NNRF9FTkFCTEUgb3IgQ0VDX0NNRF9MT0dJQ0FMX0FERFJFU1MKLSAqIEB2YWw6IGluIGNhc2UgY21kIGlzIENFQ19DTURfRU5BQkxFLCB0aGlzIGZpZWxkIGNhbiBiZSAwIHRvIGRpc2FibGUgQ0VDCi0gKglvciAxIHRvIGVuYWJsZSBDRUMgZnVuY3Rpb25hbGl0eSwgaW4gY2FzZSBjbWQgaXMKLSAqCUNFQ19DTURfTE9HSUNBTF9BRERSRVNTLCB0aGlzIGZpZWxkIGVuY29kZXMgdGhlIHJlcXVlc3RlZCBsb2dpY2FsCi0gKglhZGRyZXNzIGJldHdlZW4gMCBhbmQgMTUgb3IgMHhmZiB0byB1bnJlZ2lzdGVyCi0gKi8KLXN0cnVjdCBlY19wYXJhbXNfY2VjX3NldCB7Ci0JdWludDhfdCBjbWQ7IC8qIGVudW0gY2VjX2NvbW1hbmQgKi8KLQl1aW50OF90IHZhbDsKLX0gX19lY19hbGlnbjE7Ci0KLS8qIFJlYWQgdmFyaW91cyBDRUMgcGFyYW1ldGVycyAqLwotI2RlZmluZSBFQ19DTURfQ0VDX0dFVCAweDAwQkIKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcGFyYW1zX2NlY19nZXQgLSBDRUMgcGFyYW1ldGVycyBnZXQKLSAqIEBjbWQ6IHBhcmFtZXRlciB0eXBlLCBjYW4gYmUgQ0VDX0NNRF9FTkFCTEUgb3IgQ0VDX0NNRF9MT0dJQ0FMX0FERFJFU1MKLSAqLwotc3RydWN0IGVjX3BhcmFtc19jZWNfZ2V0IHsKLQl1aW50OF90IGNtZDsgLyogZW51bSBjZWNfY29tbWFuZCAqLwotfSBfX2VjX2FsaWduMTsKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcmVzcG9uc2VfY2VjX2dldCAtIENFQyBwYXJhbWV0ZXJzIGdldCByZXNwb25zZQotICogQHZhbDogaW4gY2FzZSBjbWQgd2FzIENFQ19DTURfRU5BQkxFLCB0aGlzIGZpZWxkIHdpbGwgMCBpZiBDRUMgaXMKLSAqCWRpc2FibGVkIG9yIDEgaWYgQ0VDIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZCwKLSAqCWluIGNhc2UgY21kIHdhcyBDRUNfQ01EX0xPR0lDQUxfQUREUkVTUywgdGhpcyB3aWxsIGVuY29kZSB0aGUKLSAqCWNvbmZpZ3VyZWQgbG9naWNhbCBhZGRyZXNzIGJldHdlZW4gMCBhbmQgMTUgb3IgMHhmZiBpZiB1bnJlZ2lzdGVyZWQKLSAqLwotc3RydWN0IGVjX3Jlc3BvbnNlX2NlY19nZXQgewotCXVpbnQ4X3QgdmFsOwotfSBfX2VjX2FsaWduMTsKLQotLyogQ0VDIHBhcmFtZXRlcnMgY29tbWFuZCAqLwotZW51bSBjZWNfY29tbWFuZCB7Ci0JLyogQ0VDIHJlYWRpbmcsIHdyaXRpbmcgYW5kIGV2ZW50cyBlbmFibGUgKi8KLQlDRUNfQ01EX0VOQUJMRSwKLQkvKiBDRUMgbG9naWNhbCBhZGRyZXNzICAqLwotCUNFQ19DTURfTE9HSUNBTF9BRERSRVNTLAotfTsKLQotLyogRXZlbnRzIGZyb20gQ0VDIHRvIEFQICovCi1lbnVtIG1rYnBfY2VjX2V2ZW50IHsKLQkvKiBPdXRnb2luZyBtZXNzYWdlIHdhcyBhY2tub3dsZWRnZWQgYnkgYSBmb2xsb3dlciAqLwotCUVDX01LQlBfQ0VDX1NFTkRfT0sJCQk9IEJJVCgwKSwKLQkvKiBPdXRnb2luZyBtZXNzYWdlIHdhcyBub3QgYWNrbm93bGVkZ2VkICovCi0JRUNfTUtCUF9DRUNfU0VORF9GQUlMRUQJCQk9IEJJVCgxKSwKLX07Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogQ29tbWFuZHMgZm9yIEkyUyByZWNvcmRpbmcgb24gYXVkaW8gY29kZWMuICovCi0KLSNkZWZpbmUgRUNfQ01EX0NPREVDX0kyUyAweDAwQkMKLSNkZWZpbmUgRUNfV09WX0kyU19TQU1QTEVfUkFURSA0ODAwMAotCi1lbnVtIGVjX2NvZGVjX2kyc19zdWJjbWQgewotCUVDX0NPREVDX1NFVF9TQU1QTEVfREVQVEggPSAweDAsCi0JRUNfQ09ERUNfU0VUX0dBSU4gPSAweDEsCi0JRUNfQ09ERUNfR0VUX0dBSU4gPSAweDIsCi0JRUNfQ09ERUNfSTJTX0VOQUJMRSA9IDB4MywKLQlFQ19DT0RFQ19JMlNfU0VUX0NPTkZJRyA9IDB4NCwKLQlFQ19DT0RFQ19JMlNfU0VUX1RETV9DT05GSUcgPSAweDUsCi0JRUNfQ09ERUNfSTJTX1NFVF9CQ0xLID0gMHg2LAotCUVDX0NPREVDX0kyU19TVUJDTURfQ09VTlQgPSAweDcsCi19OwotCi1lbnVtIGVjX3NhbXBsZV9kZXB0aF92YWx1ZSB7Ci0JRUNfQ09ERUNfU0FNUExFX0RFUFRIXzE2ID0gMCwKLQlFQ19DT0RFQ19TQU1QTEVfREVQVEhfMjQgPSAxLAotfTsKLQotZW51bSBlY19pMnNfY29uZmlnIHsKLQlFQ19EQUlfRk1UX0kyUyA9IDAsCi0JRUNfREFJX0ZNVF9SSUdIVF9KID0gMSwKLQlFQ19EQUlfRk1UX0xFRlRfSiA9IDIsCi0JRUNfREFJX0ZNVF9QQ01fQSA9IDMsCi0JRUNfREFJX0ZNVF9QQ01fQiA9IDQsCi0JRUNfREFJX0ZNVF9QQ01fVERNID0gNSwKLX07Ci0KLS8qCi0gKiBGb3Igc3ViY29tbWFuZCBFQ19DT0RFQ19HRVRfR0FJTi4KLSAqLwotc3RydWN0IF9fZWNfYWxpZ24xIGVjX2NvZGVjX2kyc19nYWluIHsKLQl1aW50OF90IGxlZnQ7Ci0JdWludDhfdCByaWdodDsKLX07Ci0KLXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgZWNfcGFyYW1fY29kZWNfaTJzX3RkbSB7Ci0JaW50MTZfdCBjaDBfZGVsYXk7IC8qIDAgdG8gNDk2ICovCi0JaW50MTZfdCBjaDFfZGVsYXk7IC8qIC0xIHRvIDQ5NiAqLwotCXVpbnQ4X3QgYWRqYWNlbnRfdG9fY2gwOwotCXVpbnQ4X3QgYWRqYWNlbnRfdG9fY2gxOwotfTsKLQotc3RydWN0IF9fZWNfdG9kb19wYWNrZWQgZWNfcGFyYW1fY29kZWNfaTJzIHsKLQkvKiBlbnVtIGVjX2NvZGVjX2kyc19zdWJjbWQgKi8KLQl1aW50OF90IGNtZDsKLQl1bmlvbiB7Ci0JCS8qCi0JCSAqIEVDX0NPREVDX1NFVF9TQU1QTEVfREVQVEgKLQkJICogVmFsdWUgc2hvdWxkIGJlIG9uZSBvZiBlY19zYW1wbGVfZGVwdGhfdmFsdWUuCi0JCSAqLwotCQl1aW50OF90IGRlcHRoOwotCi0JCS8qCi0JCSAqIEVDX0NPREVDX1NFVF9HQUlOCi0JCSAqIFZhbHVlIHNob3VsZCBiZSAwfjQzIGZvciBib3RoIGNoYW5uZWxzLgotCQkgKi8KLQkJc3RydWN0IGVjX2NvZGVjX2kyc19nYWluIGdhaW47Ci0KLQkJLyoKLQkJICogRUNfQ09ERUNfSTJTX0VOQUJMRQotCQkgKiAxIHRvIGVuYWJsZSwgMCB0byBkaXNhYmxlLgotCQkgKi8KLQkJdWludDhfdCBpMnNfZW5hYmxlOwotCi0JCS8qCi0JCSAqIEVDX0NPREVDX0kyU19TRVRfQ09ORklHCi0JCSAqIFZhbHVlIHNob3VsZCBiZSBvbmUgb2YgZWNfaTJzX2NvbmZpZy4KLQkJICovCi0JCXVpbnQ4X3QgaTJzX2NvbmZpZzsKLQotCQkvKgotCQkgKiBFQ19DT0RFQ19JMlNfU0VUX1RETV9DT05GSUcKLQkJICogVmFsdWUgc2hvdWxkIGJlIG9uZSBvZiBlY19pMnNfY29uZmlnLgotCQkgKi8KLQkJc3RydWN0IGVjX3BhcmFtX2NvZGVjX2kyc190ZG0gdGRtX3BhcmFtOwotCi0JCS8qCi0JCSAqIEVDX0NPREVDX0kyU19TRVRfQkNMSwotCQkgKi8KLQkJdWludDMyX3QgYmNsazsKLQl9OwotfTsKLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBTeXN0ZW0gY29tbWFuZHMgKi8KLQotLyoKLSAqIFRPRE8oY3Jvc2J1Zy5jb20vcC8yMzc0Nyk6IFRoaXMgaXMgYSBjb25mdXNpbmcgbmFtZSwgc2luY2UgaXQgZG9lc24ndAotICogbmVjZXNzYXJpbHkgcmVib290IHRoZSBFQy4gIFJlbmFtZSB0byAiaW1hZ2UiIG9yIHNvbWV0aGluZyBzaW1pbGFyPwotICovCi0jZGVmaW5lIEVDX0NNRF9SRUJPT1RfRUMgMHgwMEQyCi0KLS8qIENvbW1hbmQgKi8KLWVudW0gZWNfcmVib290X2NtZCB7Ci0JRUNfUkVCT09UX0NBTkNFTCA9IDAsICAgICAgICAvKiBDYW5jZWwgYSBwZW5kaW5nIHJlYm9vdCAqLwotCUVDX1JFQk9PVF9KVU1QX1JPID0gMSwgICAgICAgLyogSnVtcCB0byBSTyB3aXRob3V0IHJlYm9vdGluZyAqLwotCUVDX1JFQk9PVF9KVU1QX1JXID0gMiwgICAgICAgLyogSnVtcCB0byBhY3RpdmUgUlcgd2l0aG91dCByZWJvb3RpbmcgKi8KLQkvKiAoY29tbWFuZCAzIHdhcyBqdW1wIHRvIFJXLUIpICovCi0JRUNfUkVCT09UX0NPTEQgPSA0LCAgICAgICAgICAvKiBDb2xkLXJlYm9vdCAqLwotCUVDX1JFQk9PVF9ESVNBQkxFX0pVTVAgPSA1LCAgLyogRGlzYWJsZSBqdW1wIHVudGlsIG5leHQgcmVib290ICovCi0JRUNfUkVCT09UX0hJQkVSTkFURSA9IDYsICAgICAvKiBIaWJlcm5hdGUgRUMgKi8KLQlFQ19SRUJPT1RfSElCRVJOQVRFX0NMRUFSX0FQX09GRiA9IDcsIC8qIGFuZCBjbGVhcnMgQVBfT0ZGIGZsYWcgKi8KLX07Ci0KLS8qIEZsYWdzIGZvciBlY19wYXJhbXNfcmVib290X2VjLnJlYm9vdF9mbGFncyAqLwotI2RlZmluZSBFQ19SRUJPT1RfRkxBR19SRVNFUlZFRDAgICAgICBCSVQoMCkgIC8qIFdhcyByZWNvdmVyeSByZXF1ZXN0ICovCi0jZGVmaW5lIEVDX1JFQk9PVF9GTEFHX09OX0FQX1NIVVRET1dOIEJJVCgxKSAgLyogUmVib290IGFmdGVyIEFQIHNodXRkb3duICovCi0jZGVmaW5lIEVDX1JFQk9PVF9GTEFHX1NXSVRDSF9SV19TTE9UIEJJVCgyKSAgLyogU3dpdGNoIFJXIHNsb3QgKi8KLQotc3RydWN0IGVjX3BhcmFtc19yZWJvb3RfZWMgewotCXVpbnQ4X3QgY21kOyAgICAgICAgICAgLyogZW51bSBlY19yZWJvb3RfY21kICovCi0JdWludDhfdCBmbGFnczsgICAgICAgICAvKiBTZWUgRUNfUkVCT09UX0ZMQUdfKiAqLwotfSBfX2VjX2FsaWduMTsKLQotLyoKLSAqIEdldCBpbmZvcm1hdGlvbiBvbiBsYXN0IEVDIHBhbmljLgotICoKLSAqIFJldHVybnMgdmFyaWFibGUtbGVuZ3RoIHBsYXRmb3JtLWRlcGVuZGVudCBwYW5pYyBpbmZvcm1hdGlvbi4gIFNlZSBwYW5pYy5oCi0gKiBmb3IgZGV0YWlscy4KLSAqLwotI2RlZmluZSBFQ19DTURfR0VUX1BBTklDX0lORk8gMHgwMEQzCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCi0gKiBTcGVjaWFsIGNvbW1hbmRzCi0gKgotICogVGhlc2UgZG8gbm90IGZvbGxvdyB0aGUgbm9ybWFsIHJ1bGVzIGZvciBjb21tYW5kcy4gIFNlZSBlYWNoIGNvbW1hbmQgZm9yCi0gKiBkZXRhaWxzLgotICovCi0KLS8qCi0gKiBSZWJvb3QgTk9XCi0gKgotICogVGhpcyBjb21tYW5kIHdpbGwgd29yayBldmVuIHdoZW4gdGhlIEVDIExQQyBpbnRlcmZhY2UgaXMgYnVzeSwgYmVjYXVzZSB0aGUKLSAqIHJlYm9vdCBjb21tYW5kIGlzIHByb2Nlc3NlZCBhdCBpbnRlcnJ1cHQgbGV2ZWwuICBOb3RlIHRoYXQgd2hlbiB0aGUgRUMKLSAqIHJlYm9vdHMsIHRoZSBob3N0IHdpbGwgcmVib290IHRvbywgc28gdGhlcmUgaXMgbm8gcmVzcG9uc2UgdG8gdGhpcyBjb21tYW5kLgotICoKLSAqIFVzZSBFQ19DTURfUkVCT09UX0VDIHRvIHJlYm9vdCB0aGUgRUMgbW9yZSBwb2xpdGVseS4KLSAqLwotI2RlZmluZSBFQ19DTURfUkVCT09UIDB4MDBEMSAgLyogVGhpbmsgImRpZSIgKi8KLQotLyoKLSAqIFJlc2VuZCBsYXN0IHJlc3BvbnNlIChub3Qgc3VwcG9ydGVkIG9uIExQQykuCi0gKgotICogUmV0dXJucyBFQ19SRVNfVU5BVkFJTEFCTEUgaWYgdGhlcmUgaXMgbm8gcmVzcG9uc2UgYXZhaWxhYmxlIC0gZm9yIGV4YW1wbGUsCi0gKiB0aGVyZSB3YXMgbm8gcHJldmlvdXMgY29tbWFuZCwgb3IgdGhlIHByZXZpb3VzIGNvbW1hbmQncyByZXNwb25zZSB3YXMgdG9vCi0gKiBiaWcgdG8gc2F2ZS4KLSAqLwotI2RlZmluZSBFQ19DTURfUkVTRU5EX1JFU1BPTlNFIDB4MDBEQgotCi0vKgotICogVGhpcyBoZWFkZXIgYnl0ZSBvbiBhIGNvbW1hbmQgaW5kaWNhdGUgdmVyc2lvbiAwLiBBbnkgaGVhZGVyIGJ5dGUgbGVzcwotICogdGhhbiB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIHRhbGtpbmcgdG8gYW4gb2xkIEVDIHdoaWNoIGRvZXNuJ3Qgc3VwcG9ydAotICogdmVyc2lvbmluZy4gSW4gdGhhdCBjYXNlLCB3ZSBhc3N1bWUgdmVyc2lvbiAwLgotICoKLSAqIEhlYWRlciBieXRlcyBncmVhdGVyIHRoYW4gdGhpcyBpbmRpY2F0ZSBhIGxhdGVyIHZlcnNpb24uIEZvciBleGFtcGxlLAotICogRUNfQ01EX1ZFUlNJT04wICsgMSBtZWFucyB3ZSBhcmUgdXNpbmcgdmVyc2lvbiAxLgotICoKLSAqIFRoZSBvbGQgRUMgaW50ZXJmYWNlIG11c3Qgbm90IHVzZSBjb21tYW5kcyAweGRjIG9yIGhpZ2hlci4KLSAqLwotI2RlZmluZSBFQ19DTURfVkVSU0lPTjAgMHgwMERDCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCi0gKiBQRCBjb21tYW5kcwotICoKLSAqIFRoZXNlIGNvbW1hbmRzIGFyZSBmb3IgUEQgTUNVIGNvbW11bmljYXRpb24uCi0gKi8KLQotLyogRUMgdG8gUEQgTUNVIGV4Y2hhbmdlIHN0YXR1cyBjb21tYW5kICovCi0jZGVmaW5lIEVDX0NNRF9QRF9FWENIQU5HRV9TVEFUVVMgMHgwMTAwCi0jZGVmaW5lIEVDX1ZFUl9QRF9FWENIQU5HRV9TVEFUVVMgMgotCi1lbnVtIHBkX2NoYXJnZV9zdGF0ZSB7Ci0JUERfQ0hBUkdFX05PX0NIQU5HRSA9IDAsIC8qIERvbid0IGNoYW5nZSBjaGFyZ2Ugc3RhdGUgKi8KLQlQRF9DSEFSR0VfTk9ORSwgICAgICAgICAgLyogTm8gY2hhcmdpbmcgYWxsb3dlZCAqLwotCVBEX0NIQVJHRV81ViwgICAgICAgICAgICAvKiA1ViBjaGFyZ2luZyBvbmx5ICovCi0JUERfQ0hBUkdFX01BWCAgICAgICAgICAgIC8qIENoYXJnZSBhdCBtYXggdm9sdGFnZSAqLwotfTsKLQotLyogU3RhdHVzIG9mIEVDIGJlaW5nIHNlbnQgdG8gUEQgKi8KLSNkZWZpbmUgRUNfU1RBVFVTX0hJQkVSTkFUSU5HCUJJVCgwKQotCi1zdHJ1Y3QgZWNfcGFyYW1zX3BkX3N0YXR1cyB7Ci0JdWludDhfdCBzdGF0dXM7ICAgICAgIC8qIEVDIHN0YXR1cyAqLwotCWludDhfdCBiYXR0X3NvYzsgICAgICAvKiBiYXR0ZXJ5IHN0YXRlIG9mIGNoYXJnZSAqLwotCXVpbnQ4X3QgY2hhcmdlX3N0YXRlOyAvKiBjaGFyZ2luZyBzdGF0ZSAoZnJvbSBlbnVtIHBkX2NoYXJnZV9zdGF0ZSkgKi8KLX0gX19lY19hbGlnbjE7Ci0KLS8qIFN0YXR1cyBvZiBQRCBiZWluZyBzZW50IGJhY2sgdG8gRUMgKi8KLSNkZWZpbmUgUERfU1RBVFVTX0hPU1RfRVZFTlQgICAgICBCSVQoMCkgLyogRm9yd2FyZCBob3N0IGV2ZW50IHRvIEFQICovCi0jZGVmaW5lIFBEX1NUQVRVU19JTl9SVyAgICAgICAgICAgQklUKDEpIC8qIFJ1bm5pbmcgUlcgaW1hZ2UgKi8KLSNkZWZpbmUgUERfU1RBVFVTX0pVTVBFRF9UT19JTUFHRSBCSVQoMikgLyogQ3VycmVudCBpbWFnZSB3YXMganVtcGVkIHRvICovCi0jZGVmaW5lIFBEX1NUQVRVU19UQ1BDX0FMRVJUXzAgICAgQklUKDMpIC8qIEFsZXJ0IGFjdGl2ZSBpbiBwb3J0IDAgVENQQyAqLwotI2RlZmluZSBQRF9TVEFUVVNfVENQQ19BTEVSVF8xICAgIEJJVCg0KSAvKiBBbGVydCBhY3RpdmUgaW4gcG9ydCAxIFRDUEMgKi8KLSNkZWZpbmUgUERfU1RBVFVTX1RDUENfQUxFUlRfMiAgICBCSVQoNSkgLyogQWxlcnQgYWN0aXZlIGluIHBvcnQgMiBUQ1BDICovCi0jZGVmaW5lIFBEX1NUQVRVU19UQ1BDX0FMRVJUXzMgICAgQklUKDYpIC8qIEFsZXJ0IGFjdGl2ZSBpbiBwb3J0IDMgVENQQyAqLwotI2RlZmluZSBQRF9TVEFUVVNfRUNfSU5UX0FDVElWRSAgKFBEX1NUQVRVU19UQ1BDX0FMRVJUXzAgfCBcCi0JCQkJICAgICAgUERfU1RBVFVTX1RDUENfQUxFUlRfMSB8IFwKLQkJCQkgICAgICBQRF9TVEFUVVNfSE9TVF9FVkVOVCkKLXN0cnVjdCBlY19yZXNwb25zZV9wZF9zdGF0dXMgewotCXVpbnQzMl90IGN1cnJfbGltX21hOyAgICAgICAvKiBpbnB1dCBjdXJyZW50IGxpbWl0ICovCi0JdWludDE2X3Qgc3RhdHVzOyAgICAgICAgICAgIC8qIFBEIE1DVSBzdGF0dXMgKi8KLQlpbnQ4X3QgYWN0aXZlX2NoYXJnZV9wb3J0OyAgLyogYWN0aXZlIGNoYXJnaW5nIHBvcnQgKi8KLX0gX19lY19hbGlnbl9zaXplMTsKLQotLyogQVAgdG8gUEQgTUNVIGhvc3QgZXZlbnQgc3RhdHVzIGNvbW1hbmQsIGNsZWFyZWQgb24gcmVhZCAqLwotI2RlZmluZSBFQ19DTURfUERfSE9TVF9FVkVOVF9TVEFUVVMgMHgwMTA0Ci0KLS8qIFBEIE1DVSBob3N0IGV2ZW50IHN0YXR1cyBiaXRzICovCi0jZGVmaW5lIFBEX0VWRU5UX1VQREFURV9ERVZJQ0UgICAgIEJJVCgwKQotI2RlZmluZSBQRF9FVkVOVF9QT1dFUl9DSEFOR0UgICAgICBCSVQoMSkKLSNkZWZpbmUgUERfRVZFTlRfSURFTlRJVFlfUkVDRUlWRUQgQklUKDIpCi0jZGVmaW5lIFBEX0VWRU5UX0RBVEFfU1dBUCAgICAgICAgIEJJVCgzKQotc3RydWN0IGVjX3Jlc3BvbnNlX2hvc3RfZXZlbnRfc3RhdHVzIHsKLQl1aW50MzJfdCBzdGF0dXM7ICAgICAgLyogUEQgTUNVIGhvc3QgZXZlbnQgc3RhdHVzICovCi19IF9fZWNfYWxpZ240OwotCi0vKiBTZXQgVVNCIHR5cGUtQyBwb3J0IHJvbGUgYW5kIG11eGVzICovCi0jZGVmaW5lIEVDX0NNRF9VU0JfUERfQ09OVFJPTCAweDAxMDEKLQotZW51bSB1c2JfcGRfY29udHJvbF9yb2xlIHsKLQlVU0JfUERfQ1RSTF9ST0xFX05PX0NIQU5HRSA9IDAsCi0JVVNCX1BEX0NUUkxfUk9MRV9UT0dHTEVfT04gPSAxLCAvKiA9PSBBVVRPICovCi0JVVNCX1BEX0NUUkxfUk9MRV9UT0dHTEVfT0ZGID0gMiwKLQlVU0JfUERfQ1RSTF9ST0xFX0ZPUkNFX1NJTksgPSAzLAotCVVTQl9QRF9DVFJMX1JPTEVfRk9SQ0VfU09VUkNFID0gNCwKLQlVU0JfUERfQ1RSTF9ST0xFX0ZSRUVaRSA9IDUsCi0JVVNCX1BEX0NUUkxfUk9MRV9DT1VOVAotfTsKLQotZW51bSB1c2JfcGRfY29udHJvbF9tdXggewotCVVTQl9QRF9DVFJMX01VWF9OT19DSEFOR0UgPSAwLAotCVVTQl9QRF9DVFJMX01VWF9OT05FID0gMSwKLQlVU0JfUERfQ1RSTF9NVVhfVVNCID0gMiwKLQlVU0JfUERfQ1RSTF9NVVhfRFAgPSAzLAotCVVTQl9QRF9DVFJMX01VWF9ET0NLID0gNCwKLQlVU0JfUERfQ1RSTF9NVVhfQVVUTyA9IDUsCi0JVVNCX1BEX0NUUkxfTVVYX0NPVU5UCi19OwotCi1lbnVtIHVzYl9wZF9jb250cm9sX3N3YXAgewotCVVTQl9QRF9DVFJMX1NXQVBfTk9ORSA9IDAsCi0JVVNCX1BEX0NUUkxfU1dBUF9EQVRBID0gMSwKLQlVU0JfUERfQ1RSTF9TV0FQX1BPV0VSID0gMiwKLQlVU0JfUERfQ1RSTF9TV0FQX1ZDT05OID0gMywKLQlVU0JfUERfQ1RSTF9TV0FQX0NPVU5UCi19OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX3VzYl9wZF9jb250cm9sIHsKLQl1aW50OF90IHBvcnQ7Ci0JdWludDhfdCByb2xlOwotCXVpbnQ4X3QgbXV4OwotCXVpbnQ4X3Qgc3dhcDsKLX0gX19lY19hbGlnbjE7Ci0KLSNkZWZpbmUgUERfQ1RSTF9SRVNQX0VOQUJMRURfQ09NTVMgICAgICBCSVQoMCkgLyogQ29tbXVuaWNhdGlvbiBlbmFibGVkICovCi0jZGVmaW5lIFBEX0NUUkxfUkVTUF9FTkFCTEVEX0NPTk5FQ1RFRCAgQklUKDEpIC8qIERldmljZSBjb25uZWN0ZWQgKi8KLSNkZWZpbmUgUERfQ1RSTF9SRVNQX0VOQUJMRURfUERfQ0FQQUJMRSBCSVQoMikgLyogUGFydG5lciBpcyBQRCBjYXBhYmxlICovCi0KLSNkZWZpbmUgUERfQ1RSTF9SRVNQX1JPTEVfUE9XRVIgICAgICAgICBCSVQoMCkgLyogMD1TTksvMT1TUkMgKi8KLSNkZWZpbmUgUERfQ1RSTF9SRVNQX1JPTEVfREFUQSAgICAgICAgICBCSVQoMSkgLyogMD1VRlAvMT1ERlAgKi8KLSNkZWZpbmUgUERfQ1RSTF9SRVNQX1JPTEVfVkNPTk4gICAgICAgICBCSVQoMikgLyogVmNvbm4gc3RhdHVzICovCi0jZGVmaW5lIFBEX0NUUkxfUkVTUF9ST0xFX0RSX1BPV0VSICAgICAgQklUKDMpIC8qIFBhcnRuZXIgaXMgZHVhbHJvbGUgcG93ZXIgKi8KLSNkZWZpbmUgUERfQ1RSTF9SRVNQX1JPTEVfRFJfREFUQSAgICAgICBCSVQoNCkgLyogUGFydG5lciBpcyBkdWFscm9sZSBkYXRhICovCi0jZGVmaW5lIFBEX0NUUkxfUkVTUF9ST0xFX1VTQl9DT01NICAgICAgQklUKDUpIC8qIFBhcnRuZXIgVVNCIGNvbW0gY2FwYWJsZSAqLwotI2RlZmluZSBQRF9DVFJMX1JFU1BfUk9MRV9FWFRfUE9XRVJFRCAgIEJJVCg2KSAvKiBQYXJ0bmVyIGV4dGVybmFsbHkgcG93ZXJkICovCi0KLXN0cnVjdCBlY19yZXNwb25zZV91c2JfcGRfY29udHJvbCB7Ci0JdWludDhfdCBlbmFibGVkOwotCXVpbnQ4X3Qgcm9sZTsKLQl1aW50OF90IHBvbGFyaXR5OwotCXVpbnQ4X3Qgc3RhdGU7Ci19IF9fZWNfYWxpZ24xOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfdXNiX3BkX2NvbnRyb2xfdjEgewotCXVpbnQ4X3QgZW5hYmxlZDsKLQl1aW50OF90IHJvbGU7Ci0JdWludDhfdCBwb2xhcml0eTsKLQljaGFyIHN0YXRlWzMyXTsKLX0gX19lY19hbGlnbjE7Ci0KLS8qIFZhbHVlcyByZXByZXNlbnRpbmcgdXNiYyBQRCBDQyBzdGF0ZSAqLwotI2RlZmluZSBVU0JDX1BEX0NDX05PTkUJCTAgLyogTm8gYWNjZXNzb3J5IGNvbm5lY3RlZCAqLwotI2RlZmluZSBVU0JDX1BEX0NDX05PX1VGUAkxIC8qIE5vIFVGUCBhY2Nlc3NvcnkgY29ubmVjdGVkICovCi0jZGVmaW5lIFVTQkNfUERfQ0NfQVVESU9fQUNDCTIgLyogQXVkaW8gYWNjZXNzb3J5IGNvbm5lY3RlZCAqLwotI2RlZmluZSBVU0JDX1BEX0NDX0RFQlVHX0FDQwkzIC8qIERlYnVnIGFjY2Vzc29yeSBjb25uZWN0ZWQgKi8KLSNkZWZpbmUgVVNCQ19QRF9DQ19VRlBfQVRUQUNIRUQJNCAvKiBVRlAgYXR0YWNoZWQgdG8gdXNiYyAqLwotI2RlZmluZSBVU0JDX1BEX0NDX0RGUF9BVFRBQ0hFRAk1IC8qIERQRiBhdHRhY2hlZCB0byB1c2JjICovCi0KLXN0cnVjdCBlY19yZXNwb25zZV91c2JfcGRfY29udHJvbF92MiB7Ci0JdWludDhfdCBlbmFibGVkOwotCXVpbnQ4X3Qgcm9sZTsKLQl1aW50OF90IHBvbGFyaXR5OwotCWNoYXIgc3RhdGVbMzJdOwotCXVpbnQ4X3QgY2Nfc3RhdGU7IC8qIFVTQkNfUERfQ0NfKkVuY29kZWQgY2Mgc3RhdGUgKi8KLQl1aW50OF90IGRwX21vZGU7ICAvKiBDdXJyZW50IERQIHBpbiBtb2RlIChNT0RFX0RQX1BJTl9bQS1FXSkgKi8KLQkvKiBDTDoxNTAwOTk0IEN1cnJlbnQgY2FibGUgdHlwZSAqLwotCXVpbnQ4X3QgcmVzZXJ2ZWRfY2FibGVfdHlwZTsKLX0gX19lY19hbGlnbjE7Ci0KLSNkZWZpbmUgRUNfQ01EX1VTQl9QRF9QT1JUUyAweDAxMDIKLQotLyogTWF4aW11bSBudW1iZXIgb2YgUEQgcG9ydHMgb24gYSBkZXZpY2UsIG51bV9wb3J0cyB3aWxsIGJlIDw9IHRoaXMgKi8KLSNkZWZpbmUgRUNfVVNCX1BEX01BWF9QT1JUUyA4Ci0KLXN0cnVjdCBlY19yZXNwb25zZV91c2JfcGRfcG9ydHMgewotCXVpbnQ4X3QgbnVtX3BvcnRzOwotfSBfX2VjX2FsaWduMTsKLQotI2RlZmluZSBFQ19DTURfVVNCX1BEX1BPV0VSX0lORk8gMHgwMTAzCi0KLSNkZWZpbmUgUERfUE9XRVJfQ0hBUkdJTkdfUE9SVCAweGZmCi1zdHJ1Y3QgZWNfcGFyYW1zX3VzYl9wZF9wb3dlcl9pbmZvIHsKLQl1aW50OF90IHBvcnQ7Ci19IF9fZWNfYWxpZ24xOwotCi1lbnVtIHVzYl9jaGdfdHlwZSB7Ci0JVVNCX0NIR19UWVBFX05PTkUsCi0JVVNCX0NIR19UWVBFX1BELAotCVVTQl9DSEdfVFlQRV9DLAotCVVTQl9DSEdfVFlQRV9QUk9QUklFVEFSWSwKLQlVU0JfQ0hHX1RZUEVfQkMxMl9EQ1AsCi0JVVNCX0NIR19UWVBFX0JDMTJfQ0RQLAotCVVTQl9DSEdfVFlQRV9CQzEyX1NEUCwKLQlVU0JfQ0hHX1RZUEVfT1RIRVIsCi0JVVNCX0NIR19UWVBFX1ZCVVMsCi0JVVNCX0NIR19UWVBFX1VOS05PV04sCi0JVVNCX0NIR19UWVBFX0RFRElDQVRFRCwKLX07Ci1lbnVtIHVzYl9wb3dlcl9yb2xlcyB7Ci0JVVNCX1BEX1BPUlRfUE9XRVJfRElTQ09OTkVDVEVELAotCVVTQl9QRF9QT1JUX1BPV0VSX1NPVVJDRSwKLQlVU0JfUERfUE9SVF9QT1dFUl9TSU5LLAotCVVTQl9QRF9QT1JUX1BPV0VSX1NJTktfTk9UX0NIQVJHSU5HLAotfTsKLQotc3RydWN0IHVzYl9jaGdfbWVhc3VyZXMgewotCXVpbnQxNl90IHZvbHRhZ2VfbWF4OwotCXVpbnQxNl90IHZvbHRhZ2Vfbm93OwotCXVpbnQxNl90IGN1cnJlbnRfbWF4OwotCXVpbnQxNl90IGN1cnJlbnRfbGltOwotfSBfX2VjX2FsaWduMjsKLQotc3RydWN0IGVjX3Jlc3BvbnNlX3VzYl9wZF9wb3dlcl9pbmZvIHsKLQl1aW50OF90IHJvbGU7Ci0JdWludDhfdCB0eXBlOwotCXVpbnQ4X3QgZHVhbHJvbGU7Ci0JdWludDhfdCByZXNlcnZlZDE7Ci0Jc3RydWN0IHVzYl9jaGdfbWVhc3VyZXMgbWVhczsKLQl1aW50MzJfdCBtYXhfcG93ZXI7Ci19IF9fZWNfYWxpZ240OwotCi0KLS8qCi0gKiBUaGlzIGNvbW1hbmQgd2lsbCByZXR1cm4gdGhlIG51bWJlciBvZiBVU0IgUEQgY2hhcmdlIHBvcnQgKyB0aGUgbnVtYmVyCi0gKiBvZiBkZWRpY2F0ZWQgcG9ydCBwcmVzZW50LgotICogRUNfQ01EX1VTQl9QRF9QT1JUUyBkb2VzIE5PVCBpbmNsdWRlIHRoZSBkZWRpY2F0ZWQgcG9ydHMKLSAqLwotI2RlZmluZSBFQ19DTURfQ0hBUkdFX1BPUlRfQ09VTlQgMHgwMTA1Ci1zdHJ1Y3QgZWNfcmVzcG9uc2VfY2hhcmdlX3BvcnRfY291bnQgewotCXVpbnQ4X3QgcG9ydF9jb3VudDsKLX0gX19lY19hbGlnbjE7Ci0KLS8qIFdyaXRlIFVTQi1QRCBkZXZpY2UgRlcgKi8KLSNkZWZpbmUgRUNfQ01EX1VTQl9QRF9GV19VUERBVEUgMHgwMTEwCi0KLWVudW0gdXNiX3BkX2Z3X3VwZGF0ZV9jbWRzIHsKLQlVU0JfUERfRldfUkVCT09ULAotCVVTQl9QRF9GV19GTEFTSF9FUkFTRSwKLQlVU0JfUERfRldfRkxBU0hfV1JJVEUsCi0JVVNCX1BEX0ZXX0VSQVNFX1NJRywKLX07Ci0KLXN0cnVjdCBlY19wYXJhbXNfdXNiX3BkX2Z3X3VwZGF0ZSB7Ci0JdWludDE2X3QgZGV2X2lkOwotCXVpbnQ4X3QgY21kOwotCXVpbnQ4X3QgcG9ydDsKLQl1aW50MzJfdCBzaXplOyAgICAgLyogU2l6ZSB0byB3cml0ZSBpbiBieXRlcyAqLwotCS8qIEZvbGxvd2VkIGJ5IGRhdGEgdG8gd3JpdGUgKi8KLX0gX19lY19hbGlnbjQ7Ci0KLS8qIFdyaXRlIFVTQi1QRCBBY2Nlc3NvcnkgUldfSEFTSCB0YWJsZSBlbnRyeSAqLwotI2RlZmluZSBFQ19DTURfVVNCX1BEX1JXX0hBU0hfRU5UUlkgMHgwMTExCi0vKiBSVyBoYXNoIGlzIGZpcnN0IDIwIGJ5dGVzIG9mIFNIQS0yNTYgb2YgUlcgc2VjdGlvbiAqLwotI2RlZmluZSBQRF9SV19IQVNIX1NJWkUgMjAKLXN0cnVjdCBlY19wYXJhbXNfdXNiX3BkX3J3X2hhc2hfZW50cnkgewotCXVpbnQxNl90IGRldl9pZDsKLQl1aW50OF90IGRldl9yd19oYXNoW1BEX1JXX0hBU0hfU0laRV07Ci0JdWludDhfdCByZXNlcnZlZDsgICAgICAgIC8qCi0JCQkJICAqIEZvciBhbGlnbm1lbnQgb2YgY3VycmVudF9pbWFnZQotCQkJCSAgKiBUT0RPKHJzcGFuZ2xlcikgYnV0IGl0J3Mgbm90IGFsaWduZWQhCi0JCQkJICAqIFNob3VsZCBoYXZlIGJlZW4gcmVzZXJ2ZWRbMl0uCi0JCQkJICAqLwotCXVpbnQzMl90IGN1cnJlbnRfaW1hZ2U7ICAvKiBPbmUgb2YgZWNfY3VycmVudF9pbWFnZSAqLwotfSBfX2VjX2FsaWduMTsKLQotLyogUmVhZCBVU0ItUEQgQWNjZXNzb3J5IGluZm8gKi8KLSNkZWZpbmUgRUNfQ01EX1VTQl9QRF9ERVZfSU5GTyAweDAxMTIKLQotc3RydWN0IGVjX3BhcmFtc191c2JfcGRfaW5mb19yZXF1ZXN0IHsKLQl1aW50OF90IHBvcnQ7Ci19IF9fZWNfYWxpZ24xOwotCi0vKiBSZWFkIFVTQi1QRCBEZXZpY2UgZGlzY292ZXJ5IGluZm8gKi8KLSNkZWZpbmUgRUNfQ01EX1VTQl9QRF9ESVNDT1ZFUlkgMHgwMTEzCi1zdHJ1Y3QgZWNfcGFyYW1zX3VzYl9wZF9kaXNjb3ZlcnlfZW50cnkgewotCXVpbnQxNl90IHZpZDsgIC8qIFVTQi1JRiBWSUQgKi8KLQl1aW50MTZfdCBwaWQ7ICAvKiBVU0ItSUYgUElEICovCi0JdWludDhfdCBwdHlwZTsgLyogcHJvZHVjdCB0eXBlIChodWIscGVyaXBoLGNhYmxlLGFtYSkgKi8KLX0gX19lY19hbGlnbl9zaXplMTsKLQotLyogT3ZlcnJpZGUgZGVmYXVsdCBjaGFyZ2UgYmVoYXZpb3IgKi8KLSNkZWZpbmUgRUNfQ01EX1BEX0NIQVJHRV9QT1JUX09WRVJSSURFIDB4MDExNAotCi0vKiBOZWdhdGl2ZSBwb3J0IHBhcmFtZXRlcnMgaGF2ZSBzcGVjaWFsIG1lYW5pbmcgKi8KLWVudW0gdXNiX3BkX292ZXJyaWRlX3BvcnRzIHsKLQlPVkVSUklERV9ET05UX0NIQVJHRSA9IC0yLAotCU9WRVJSSURFX09GRiA9IC0xLAotCS8qIFswLCBDT05GSUdfVVNCX1BEX1BPUlRfQ09VTlQpOiBQb3J0IyAqLwotfTsKLQotc3RydWN0IGVjX3BhcmFtc19jaGFyZ2VfcG9ydF9vdmVycmlkZSB7Ci0JaW50MTZfdCBvdmVycmlkZV9wb3J0OyAvKiBPdmVycmlkZSBwb3J0IyAqLwotfSBfX2VjX2FsaWduMjsKLQotLyoKLSAqIFJlYWQgKGFuZCBkZWxldGUpIG9uZSBlbnRyeSBvZiBQRCBldmVudCBsb2cuCi0gKiBUT0RPKGNyYnVnLmNvbS83NTE3NDIpOiBNYWtlIHRoaXMgaG9zdCBjb21tYW5kIG1vcmUgZ2VuZXJpYyB0byBhY2NvbW1vZGF0ZQotICogZnV0dXJlIG5vbi1QRCBsb2dzIHRoYXQgdXNlIHRoZSBzYW1lIGludGVybmFsIEVDIGV2ZW50X2xvZy4KLSAqLwotI2RlZmluZSBFQ19DTURfUERfR0VUX0xPR19FTlRSWSAweDAxMTUKLQotc3RydWN0IGVjX3Jlc3BvbnNlX3BkX2xvZyB7Ci0JdWludDMyX3QgdGltZXN0YW1wOyAvKiByZWxhdGl2ZSB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzICovCi0JdWludDhfdCB0eXBlOyAgICAgICAvKiBldmVudCB0eXBlIDogc2VlIFBEX0VWRU5UX3h4IGJlbG93ICovCi0JdWludDhfdCBzaXplX3BvcnQ7ICAvKiBbNzo1XSBwb3J0IG51bWJlciBbNDowXSBwYXlsb2FkIHNpemUgaW4gYnl0ZXMgKi8KLQl1aW50MTZfdCBkYXRhOyAgICAgIC8qIHR5cGUtZGVmaW5lZCBkYXRhIHBheWxvYWQgKi8KLQl1aW50OF90IHBheWxvYWRbMF07IC8qIG9wdGlvbmFsIGFkZGl0aW9uYWwgZGF0YSBwYXlsb2FkOiAwLi4xNiBieXRlcyAqLwotfSBfX2VjX2FsaWduNDsKLQotLyogVGhlIHRpbWVzdGFtcCBpcyB0aGUgbWljcm9zZWNvbmQgY291bnRlciBzaGlmdGVkIHRvIGdldCBhYm91dCBhIG1zLiAqLwotI2RlZmluZSBQRF9MT0dfVElNRVNUQU1QX1NISUZUIDEwIC8qIDEgTFNCID0gMTAyNHVzICovCi0KLSNkZWZpbmUgUERfTE9HX1NJWkVfTUFTSyAgMHgxZgotI2RlZmluZSBQRF9MT0dfUE9SVF9NQVNLICAweGUwCi0jZGVmaW5lIFBEX0xPR19QT1JUX1NISUZUICAgIDUKLSNkZWZpbmUgUERfTE9HX1BPUlRfU0laRShwb3J0LCBzaXplKSAoKChwb3J0KSA8PCBQRF9MT0dfUE9SVF9TSElGVCkgfCBcCi0JCQkJICAgICAgKChzaXplKSAmIFBEX0xPR19TSVpFX01BU0spKQotI2RlZmluZSBQRF9MT0dfUE9SVChzaXplX3BvcnQpICgoc2l6ZV9wb3J0KSA+PiBQRF9MT0dfUE9SVF9TSElGVCkKLSNkZWZpbmUgUERfTE9HX1NJWkUoc2l6ZV9wb3J0KSAoKHNpemVfcG9ydCkgJiBQRF9MT0dfU0laRV9NQVNLKQotCi0vKiBQRCBldmVudCBsb2cgOiBlbnRyeSB0eXBlcyAqLwotLyogUEQgTUNVIGV2ZW50cyAqLwotI2RlZmluZSBQRF9FVkVOVF9NQ1VfQkFTRSAgICAgICAweDAwCi0jZGVmaW5lIFBEX0VWRU5UX01DVV9DSEFSR0UgICAgICAgICAgICAgKFBEX0VWRU5UX01DVV9CQVNFKzApCi0jZGVmaW5lIFBEX0VWRU5UX01DVV9DT05ORUNUICAgICAgICAgICAgKFBEX0VWRU5UX01DVV9CQVNFKzEpCi0vKiBSZXNlcnZlZCBmb3IgY3VzdG9tIGJvYXJkIGV2ZW50ICovCi0jZGVmaW5lIFBEX0VWRU5UX01DVV9CT0FSRF9DVVNUT00gICAgICAgKFBEX0VWRU5UX01DVV9CQVNFKzIpCi0vKiBQRCBnZW5lcmljIGFjY2Vzc29yeSBldmVudHMgKi8KLSNkZWZpbmUgUERfRVZFTlRfQUNDX0JBU0UgICAgICAgMHgyMAotI2RlZmluZSBQRF9FVkVOVF9BQ0NfUldfRkFJTCAgIChQRF9FVkVOVF9BQ0NfQkFTRSswKQotI2RlZmluZSBQRF9FVkVOVF9BQ0NfUldfRVJBU0UgIChQRF9FVkVOVF9BQ0NfQkFTRSsxKQotLyogUEQgcG93ZXIgc3VwcGx5IGV2ZW50cyAqLwotI2RlZmluZSBQRF9FVkVOVF9QU19CQVNFICAgICAgICAweDQwCi0jZGVmaW5lIFBEX0VWRU5UX1BTX0ZBVUxUICAgICAgKFBEX0VWRU5UX1BTX0JBU0UrMCkKLS8qIFBEIHZpZGVvIGRvbmdsZXMgZXZlbnRzICovCi0jZGVmaW5lIFBEX0VWRU5UX1ZJREVPX0JBU0UgICAgIDB4NjAKLSNkZWZpbmUgUERfRVZFTlRfVklERU9fRFBfTU9ERSAoUERfRVZFTlRfVklERU9fQkFTRSswKQotI2RlZmluZSBQRF9FVkVOVF9WSURFT19DT0RFQyAgIChQRF9FVkVOVF9WSURFT19CQVNFKzEpCi0vKiBSZXR1cm5lZCBpbiB0aGUgInR5cGUiIGZpZWxkLCB3aGVuIHRoZXJlIGlzIG5vIGVudHJ5IGF2YWlsYWJsZSAqLwotI2RlZmluZSBQRF9FVkVOVF9OT19FTlRSWSAgICAgICAweGZmCi0KLS8qCi0gKiBQRF9FVkVOVF9NQ1VfQ0hBUkdFIGV2ZW50IGRlZmluaXRpb24gOgotICogdGhlIHBheWxvYWQgaXMgInN0cnVjdCB1c2JfY2hnX21lYXN1cmVzIgotICogdGhlIGRhdGEgZmllbGQgY29udGFpbnMgdGhlIHBvcnQgc3RhdGUgZmxhZ3MgYXMgZGVmaW5lZCBiZWxvdyA6Ci0gKi8KLS8qIFBvcnQgcGFydG5lciBpcyBhIGR1YWwgcm9sZSBkZXZpY2UgKi8KLSNkZWZpbmUgQ0hBUkdFX0ZMQUdTX0RVQUxfUk9MRSAgICAgICAgIEJJVCgxNSkKLS8qIFBvcnQgaXMgdGhlIHBlbmRpbmcgb3ZlcnJpZGUgcG9ydCAqLwotI2RlZmluZSBDSEFSR0VfRkxBR1NfREVMQVlFRF9PVkVSUklERSAgQklUKDE0KQotLyogUG9ydCBpcyB0aGUgb3ZlcnJpZGUgcG9ydCAqLwotI2RlZmluZSBDSEFSR0VfRkxBR1NfT1ZFUlJJREUgICAgICAgICAgQklUKDEzKQotLyogQ2hhcmdlciB0eXBlICovCi0jZGVmaW5lIENIQVJHRV9GTEFHU19UWVBFX1NISUZUICAgICAgICAgICAgICAgMwotI2RlZmluZSBDSEFSR0VfRkxBR1NfVFlQRV9NQVNLICAgICAgICgweGYgPDwgQ0hBUkdFX0ZMQUdTX1RZUEVfU0hJRlQpCi0vKiBQb3dlciBkZWxpdmVyeSByb2xlICovCi0jZGVmaW5lIENIQVJHRV9GTEFHU19ST0xFX01BU0sgICAgICAgICAoNyA8PCAgMCkKLQotLyoKLSAqIFBEX0VWRU5UX1BTX0ZBVUxUIGRhdGEgZmllbGQgZmxhZ3MgZGVmaW5pdGlvbiA6Ci0gKi8KLSNkZWZpbmUgUFNfRkFVTFRfT0NQICAgICAgICAgICAgICAgICAgICAgICAgICAxCi0jZGVmaW5lIFBTX0ZBVUxUX0ZBU1RfT0NQICAgICAgICAgICAgICAgICAgICAgMgotI2RlZmluZSBQU19GQVVMVF9PVlAgICAgICAgICAgICAgICAgICAgICAgICAgIDMKLSNkZWZpbmUgUFNfRkFVTFRfRElTQ0ggICAgICAgICAgICAgICAgICAgICAgICA0Ci0KLS8qCi0gKiBQRF9FVkVOVF9WSURFT19DT0RFQyBwYXlsb2FkIGlzICJzdHJ1Y3QgbWNkcF9pbmZvIi4KLSAqLwotc3RydWN0IG1jZHBfdmVyc2lvbiB7Ci0JdWludDhfdCBtYWpvcjsKLQl1aW50OF90IG1pbm9yOwotCXVpbnQxNl90IGJ1aWxkOwotfSBfX2VjX2FsaWduNDsKLQotc3RydWN0IG1jZHBfaW5mbyB7Ci0JdWludDhfdCBmYW1pbHlbMl07Ci0JdWludDhfdCBjaGlwaWRbMl07Ci0Jc3RydWN0IG1jZHBfdmVyc2lvbiBpcm9tOwotCXN0cnVjdCBtY2RwX3ZlcnNpb24gZnc7Ci19IF9fZWNfYWxpZ240OwotCi0vKiBzdHJ1Y3QgbWNkcF9pbmZvIGZpZWxkIGRlY29kaW5nICovCi0jZGVmaW5lIE1DRFBfQ0hJUElEKGNoaXBpZCkgKChjaGlwaWRbMF0gPDwgOCkgfCBjaGlwaWRbMV0pCi0jZGVmaW5lIE1DRFBfRkFNSUxZKGZhbWlseSkgKChmYW1pbHlbMF0gPDwgOCkgfCBmYW1pbHlbMV0pCi0KLS8qIEdldC9TZXQgVVNCLVBEIEFsdGVybmF0ZSBtb2RlIGluZm8gKi8KLSNkZWZpbmUgRUNfQ01EX1VTQl9QRF9HRVRfQU1PREUgMHgwMTE2Ci1zdHJ1Y3QgZWNfcGFyYW1zX3VzYl9wZF9nZXRfbW9kZV9yZXF1ZXN0IHsKLQl1aW50MTZfdCBzdmlkX2lkeDsgLyogU1ZJRCBpbmRleCB0byBnZXQgKi8KLQl1aW50OF90IHBvcnQ7ICAgICAgLyogcG9ydCAqLwotfSBfX2VjX2FsaWduX3NpemUxOwotCi1zdHJ1Y3QgZWNfcGFyYW1zX3VzYl9wZF9nZXRfbW9kZV9yZXNwb25zZSB7Ci0JdWludDE2X3Qgc3ZpZDsgICAvKiBTVklEICovCi0JdWludDE2X3Qgb3BvczsgICAgLyogT2JqZWN0IFBvc2l0aW9uICovCi0JdWludDMyX3QgdmRvWzZdOyAvKiBNb2RlIFZET3MgKi8KLX0gX19lY19hbGlnbjQ7Ci0KLSNkZWZpbmUgRUNfQ01EX1VTQl9QRF9TRVRfQU1PREUgMHgwMTE3Ci0KLWVudW0gcGRfbW9kZV9jbWQgewotCVBEX0VYSVRfTU9ERSA9IDAsCi0JUERfRU5URVJfTU9ERSA9IDEsCi0JLyogTm90IGEgY29tbWFuZC4gIERvIE5PVCByZW1vdmUuICovCi0JUERfTU9ERV9DTURfQ09VTlQsCi19OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX3VzYl9wZF9zZXRfbW9kZV9yZXF1ZXN0IHsKLQl1aW50MzJfdCBjbWQ7ICAvKiBlbnVtIHBkX21vZGVfY21kICovCi0JdWludDE2X3Qgc3ZpZDsgLyogU1ZJRCB0byBzZXQgKi8KLQl1aW50OF90IG9wb3M7ICAvKiBPYmplY3QgUG9zaXRpb24gKi8KLQl1aW50OF90IHBvcnQ7ICAvKiBwb3J0ICovCi19IF9fZWNfYWxpZ240OwotCi0vKiBBc2sgdGhlIFBEIE1DVSB0byByZWNvcmQgYSBsb2cgb2YgYSByZXF1ZXN0ZWQgdHlwZSAqLwotI2RlZmluZSBFQ19DTURfUERfV1JJVEVfTE9HX0VOVFJZIDB4MDExOAotCi1zdHJ1Y3QgZWNfcGFyYW1zX3BkX3dyaXRlX2xvZ19lbnRyeSB7Ci0JdWludDhfdCB0eXBlOyAvKiBldmVudCB0eXBlIDogc2VlIFBEX0VWRU5UX3h4IGFib3ZlICovCi0JdWludDhfdCBwb3J0OyAvKiBwb3J0Iywgb3IgMCBmb3IgZXZlbnRzIHVucmVsYXRlZCB0byBhIGdpdmVuIHBvcnQgKi8KLX0gX19lY19hbGlnbjE7Ci0KLQotLyogQ29udHJvbCBVU0ItUEQgY2hpcCAqLwotI2RlZmluZSBFQ19DTURfUERfQ09OVFJPTCAweDAxMTkKLQotZW51bSBlY19wZF9jb250cm9sX2NtZCB7Ci0JUERfU1VTUEVORCA9IDAsICAgICAgLyogU3VzcGVuZCB0aGUgUEQgY2hpcCAoRUM6IHN0b3AgdGFsa2luZyB0byBQRCkgKi8KLQlQRF9SRVNVTUUsICAgICAgICAgICAvKiBSZXN1bWUgdGhlIFBEIGNoaXAgKEVDOiBzdGFydCB0YWxraW5nIHRvIFBEKSAqLwotCVBEX1JFU0VULCAgICAgICAgICAgIC8qIEZvcmNlIHJlc2V0IHRoZSBQRCBjaGlwICovCi0JUERfQ09OVFJPTF9ESVNBQkxFLCAgLyogRGlzYWJsZSBmdXJ0aGVyIGNhbGxzIHRvIHRoaXMgY29tbWFuZCAqLwotCVBEX0NISVBfT04sICAgICAgICAgIC8qIFBvd2VyIG9uIHRoZSBQRCBjaGlwICovCi19OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX3BkX2NvbnRyb2wgewotCXVpbnQ4X3QgY2hpcDsgICAgICAgICAvKiBjaGlwIGlkICovCi0JdWludDhfdCBzdWJjbWQ7Ci19IF9fZWNfYWxpZ24xOwotCi0vKiBHZXQgaW5mbyBhYm91dCBVU0ItQyBTUyBtdXhlcyAqLwotI2RlZmluZSBFQ19DTURfVVNCX1BEX01VWF9JTkZPIDB4MDExQQotCi1zdHJ1Y3QgZWNfcGFyYW1zX3VzYl9wZF9tdXhfaW5mbyB7Ci0JdWludDhfdCBwb3J0OyAvKiBVU0ItQyBwb3J0IG51bWJlciAqLwotfSBfX2VjX2FsaWduMTsKLQotLyogRmxhZ3MgcmVwcmVzZW50aW5nIG11eCBzdGF0ZSAqLwotI2RlZmluZSBVU0JfUERfTVVYX1VTQl9FTkFCTEVEICAgICAgIEJJVCgwKSAvKiBVU0IgY29ubmVjdGVkICovCi0jZGVmaW5lIFVTQl9QRF9NVVhfRFBfRU5BQkxFRCAgICAgICAgQklUKDEpIC8qIERQIGNvbm5lY3RlZCAqLwotI2RlZmluZSBVU0JfUERfTVVYX1BPTEFSSVRZX0lOVkVSVEVEIEJJVCgyKSAvKiBDQyBsaW5lIFBvbGFyaXR5IGludmVydGVkICovCi0jZGVmaW5lIFVTQl9QRF9NVVhfSFBEX0lSUSAgICAgICAgICAgQklUKDMpIC8qIEhQRCBJUlEgaXMgYXNzZXJ0ZWQgKi8KLSNkZWZpbmUgVVNCX1BEX01VWF9IUERfTFZMICAgICAgICAgICBCSVQoNCkgLyogSFBEIGxldmVsIGlzIGFzc2VydGVkICovCi0KLXN0cnVjdCBlY19yZXNwb25zZV91c2JfcGRfbXV4X2luZm8gewotCXVpbnQ4X3QgZmxhZ3M7IC8qIFVTQl9QRF9NVVhfKi1lbmNvZGVkIFVTQiBtdXggc3RhdGUgKi8KLX0gX19lY19hbGlnbjE7Ci0KLSNkZWZpbmUgRUNfQ01EX1BEX0NISVBfSU5GTwkJMHgwMTFCCi0KLXN0cnVjdCBlY19wYXJhbXNfcGRfY2hpcF9pbmZvIHsKLQl1aW50OF90IHBvcnQ7CS8qIFVTQi1DIHBvcnQgbnVtYmVyICovCi0JdWludDhfdCByZW5ldzsJLyogRm9yY2UgcmVuZXdhbCAqLwotfSBfX2VjX2FsaWduMTsKLQotc3RydWN0IGVjX3Jlc3BvbnNlX3BkX2NoaXBfaW5mbyB7Ci0JdWludDE2X3QgdmVuZG9yX2lkOwotCXVpbnQxNl90IHByb2R1Y3RfaWQ7Ci0JdWludDE2X3QgZGV2aWNlX2lkOwotCXVuaW9uIHsKLQkJdWludDhfdCBmd192ZXJzaW9uX3N0cmluZ1s4XTsKLQkJdWludDY0X3QgZndfdmVyc2lvbl9udW1iZXI7Ci0JfTsKLX0gX19lY19hbGlnbjI7Ci0KLXN0cnVjdCBlY19yZXNwb25zZV9wZF9jaGlwX2luZm9fdjEgewotCXVpbnQxNl90IHZlbmRvcl9pZDsKLQl1aW50MTZfdCBwcm9kdWN0X2lkOwotCXVpbnQxNl90IGRldmljZV9pZDsKLQl1bmlvbiB7Ci0JCXVpbnQ4X3QgZndfdmVyc2lvbl9zdHJpbmdbOF07Ci0JCXVpbnQ2NF90IGZ3X3ZlcnNpb25fbnVtYmVyOwotCX07Ci0JdW5pb24gewotCQl1aW50OF90IG1pbl9yZXFfZndfdmVyc2lvbl9zdHJpbmdbOF07Ci0JCXVpbnQ2NF90IG1pbl9yZXFfZndfdmVyc2lvbl9udW1iZXI7Ci0JfTsKLX0gX19lY19hbGlnbjI7Ci0KLS8qIFJ1biBSVyBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGFuZCBnZXQgc3RhdHVzICovCi0jZGVmaW5lIEVDX0NNRF9SV1NJR19DSEVDS19TVEFUVVMJMHgwMTFDCi0KLXN0cnVjdCBlY19yZXNwb25zZV9yd3NpZ19jaGVja19zdGF0dXMgewotCXVpbnQzMl90IHN0YXR1czsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qIEZvciBjb250cm9sbGluZyBSV1NJRyB0YXNrICovCi0jZGVmaW5lIEVDX0NNRF9SV1NJR19BQ1RJT04JMHgwMTFECi0KLWVudW0gcndzaWdfYWN0aW9uIHsKLQlSV1NJR19BQ1RJT05fQUJPUlQgPSAwLAkJLyogQWJvcnQgUldTSUcgYW5kIHByZXZlbnQganVtcGluZyAqLwotCVJXU0lHX0FDVElPTl9DT05USU5VRSA9IDEsCS8qIEp1bXAgdG8gUlcgaW1tZWRpYXRlbHkgKi8KLX07Ci0KLXN0cnVjdCBlY19wYXJhbXNfcndzaWdfYWN0aW9uIHsKLQl1aW50MzJfdCBhY3Rpb247Ci19IF9fZWNfYWxpZ240OwotCi0vKiBSdW4gdmVyaWZpY2F0aW9uIG9uIGEgc2xvdCAqLwotI2RlZmluZSBFQ19DTURfRUZTX1ZFUklGWQkweDAxMUUKLQotc3RydWN0IGVjX3BhcmFtc19lZnNfdmVyaWZ5IHsKLQl1aW50OF90IHJlZ2lvbjsJCS8qIGVudW0gZWNfZmxhc2hfcmVnaW9uICovCi19IF9fZWNfYWxpZ24xOwotCi0vKgotICogUmV0cmlldmUgaW5mbyBmcm9tIENyb3MgQm9hcmQgSW5mbyBzdG9yZS4gUmVzcG9uc2UgaXMgYmFzZWQgb24gdGhlIGRhdGEKLSAqIHR5cGUuIEludGVnZXJzIHJldHVybiBhIHVpbnQzMi4gU3RyaW5ncyByZXR1cm4gYSBzdHJpbmcsIHVzaW5nIHRoZSByZXNwb25zZQotICogc2l6ZSB0byBkZXRlcm1pbmUgaG93IGJpZyBpdCBpcy4KLSAqLwotI2RlZmluZSBFQ19DTURfR0VUX0NST1NfQk9BUkRfSU5GTwkweDAxMUYKLS8qCi0gKiBXcml0ZSBpbmZvIGludG8gQ3JvcyBCb2FyZCBJbmZvIG9uIEVFUFJPTS4gV3JpdGUgZmFpbHMgaWYgdGhlIGJvYXJkIGhhcwotICogaGFyZHdhcmUgd3JpdGUtcHJvdGVjdCBlbmFibGVkLgotICovCi0jZGVmaW5lIEVDX0NNRF9TRVRfQ1JPU19CT0FSRF9JTkZPCTB4MDEyMAotCi1lbnVtIGNiaV9kYXRhX3RhZyB7Ci0JQ0JJX1RBR19CT0FSRF9WRVJTSU9OID0gMCwgLyogdWludDMyX3Qgb3Igc21hbGxlciAqLwotCUNCSV9UQUdfT0VNX0lEID0gMSwgICAgICAgIC8qIHVpbnQzMl90IG9yIHNtYWxsZXIgKi8KLQlDQklfVEFHX1NLVV9JRCA9IDIsICAgICAgICAvKiB1aW50MzJfdCBvciBzbWFsbGVyICovCi0JQ0JJX1RBR19EUkFNX1BBUlRfTlVNID0gMywgLyogdmFyaWFibGUgbGVuZ3RoIGFzY2lpLCBudWwgdGVybWluYXRlZC4gKi8KLQlDQklfVEFHX09FTV9OQU1FID0gNCwgICAgICAvKiB2YXJpYWJsZSBsZW5ndGggYXNjaWksIG51bCB0ZXJtaW5hdGVkLiAqLwotCUNCSV9UQUdfTU9ERUxfSUQgPSA1LCAgICAgIC8qIHVpbnQzMl90IG9yIHNtYWxsZXIgKi8KLQlDQklfVEFHX0NPVU5ULAotfTsKLQotLyoKLSAqIEZsYWdzIHRvIGNvbnRyb2wgcmVhZCBvcGVyYXRpb24KLSAqCi0gKiBSRUxPQUQ6ICBJbnZhbGlkYXRlIGNhY2hlIGFuZCByZWFkIGRhdGEgZnJvbSBFRVBST00uIFVzZWZ1bCB0byB2ZXJpZnkKLSAqICAgICAgICAgIHdyaXRlIHdhcyBzdWNjZXNzZnVsIHdpdGhvdXQgcmVib290LgotICovCi0jZGVmaW5lIENCSV9HRVRfUkVMT0FECQlCSVQoMCkKLQotc3RydWN0IGVjX3BhcmFtc19nZXRfY2JpIHsKLQl1aW50MzJfdCB0YWc7CQkvKiBlbnVtIGNiaV9kYXRhX3RhZyAqLwotCXVpbnQzMl90IGZsYWc7CQkvKiBDQklfR0VUXyogKi8KLX0gX19lY19hbGlnbjQ7Ci0KLS8qCi0gKiBGbGFncyB0byBjb250cm9sIHdyaXRlIGJlaGF2aW9yLgotICoKLSAqIE5PX1NZTkM6IE1ha2VzIEVDIHVwZGF0ZSBkYXRhIGluIFJBTSBidXQgc2tpcCB3cml0aW5nIHRvIEVFUFJPTS4gSXQncwotICogICAgICAgICAgdXNlZnVsIHdoZW4gd3JpdGluZyBtdWx0aXBsZSBmaWVsZHMgaW4gYSByb3cuCi0gKiBJTklUOiAgICBOZWVkIHRvIGJlIHNldCB3aGVuIGNyZWF0aW5nIGEgbmV3IENCSSBmcm9tIHNjcmF0Y2guIEFsbCBmaWVsZHMKLSAqICAgICAgICAgIHdpbGwgYmUgaW5pdGlhbGl6ZWQgdG8gemVybyBmaXJzdC4KLSAqLwotI2RlZmluZSBDQklfU0VUX05PX1NZTkMJCUJJVCgwKQotI2RlZmluZSBDQklfU0VUX0lOSVQJCUJJVCgxKQotCi1zdHJ1Y3QgZWNfcGFyYW1zX3NldF9jYmkgewotCXVpbnQzMl90IHRhZzsJCS8qIGVudW0gY2JpX2RhdGFfdGFnICovCi0JdWludDMyX3QgZmxhZzsJCS8qIENCSV9TRVRfKiAqLwotCXVpbnQzMl90IHNpemU7CQkvKiBEYXRhIHNpemUgKi8KLQl1aW50OF90IGRhdGFbXTsJCS8qIEZvciBzdHJpbmcgYW5kIHJhdyBkYXRhICovCi19IF9fZWNfYWxpZ24xOwotCi0vKgotICogSW5mb3JtYXRpb24gYWJvdXQgcmVzZXRzIG9mIHRoZSBBUCBieSB0aGUgRUMgYW5kIHRoZSBFQydzIG93biB1cHRpbWUuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0dFVF9VUFRJTUVfSU5GTyAweDAxMjEKLQotc3RydWN0IGVjX3Jlc3BvbnNlX3VwdGltZV9pbmZvIHsKLQkvKgotCSAqIE51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGxhc3QgRUMgYm9vdC4gU3lzanVtcCByZXNldHMKLQkgKiB0eXBpY2FsbHkgZG8gbm90IHJlc3RhcnQgdGhlIEVDJ3MgdGltZV9zaW5jZV9ib290IGVwb2NoLgotCSAqCi0JICogV0FSTklORzogVGhlIEVDJ3Mgc2Vuc2Ugb2YgdGltZSBpcyBtdWNoIGxlc3MgYWNjdXJhdGUgdGhhbiB0aGUgQVAncwotCSAqIHNlbnNlIG9mIHRpbWUsIGluIGJvdGggcGhhc2UgYW5kIGZyZXF1ZW5jeS4gIFRoaXMgdGltZWJhc2UgaXMgc2ltaWxhcgotCSAqIHRvIENMT0NLX01PTk9UT05JQ19SQVcsIGJ1dCB3aXRoIDElIG9yIG1vcmUgZnJlcXVlbmN5IGVycm9yLgotCSAqLwotCXVpbnQzMl90IHRpbWVfc2luY2VfZWNfYm9vdF9tczsKLQotCS8qCi0JICogTnVtYmVyIG9mIHRpbWVzIHRoZSBBUCB3YXMgcmVzZXQgYnkgdGhlIEVDIHNpbmNlIHRoZSBsYXN0IEVDIGJvb3QuCi0JICogTm90ZSB0aGF0IHRoZSBBUCBtYXkgYmUgaGVsZCBpbiByZXNldCBieSB0aGUgRUMgZHVyaW5nIHRoZSBpbml0aWFsCi0JICogYm9vdCBzZXF1ZW5jZSwgc3VjaCB0aGF0IHRoZSB2ZXJ5IGZpcnN0IEFQIGJvb3QgbWF5IGNvdW50IGFzIG1vcmUKLQkgKiB0aGFuIG9uZSBoZXJlLgotCSAqLwotCXVpbnQzMl90IGFwX3Jlc2V0c19zaW5jZV9lY19ib290OwotCi0JLyoKLQkgKiBUaGUgc2V0IG9mIGZsYWdzIHdoaWNoIGRlc2NyaWJlIHRoZSBFQydzIG1vc3QgcmVjZW50IHJlc2V0LiAgU2VlCi0JICogaW5jbHVkZS9zeXN0ZW0uaCBSRVNFVF9GTEFHXyogZm9yIGRldGFpbHMuCi0JICovCi0JdWludDMyX3QgZWNfcmVzZXRfZmxhZ3M7Ci0KLQkvKiBFbXB0eSBsb2cgZW50cmllcyBoYXZlIGJvdGggdGhlIGNhdXNlIGFuZCB0aW1lc3RhbXAgc2V0IHRvIHplcm8uICovCi0Jc3RydWN0IGFwX3Jlc2V0X2xvZ19lbnRyeSB7Ci0JCS8qCi0JCSAqIFNlZSBpbmNsdWRlL2NoaXBzZXQuaDogZW51bSBjaGlwc2V0X3tyZXNldCxzaHV0ZG93bn1fcmVhc29uCi0JCSAqIGZvciBkZXRhaWxzLgotCQkgKi8KLQkJdWludDE2X3QgcmVzZXRfY2F1c2U7Ci0KLQkJLyogUmVzZXJ2ZWQgZm9yIHByb3RvY29sIGdyb3d0aC4gKi8KLQkJdWludDE2X3QgcmVzZXJ2ZWQ7Ci0KLQkJLyoKLQkJICogVGhlIHRpbWUgb2YgdGhlIHJlc2V0J3MgYXNzZXJ0aW9uLCBpbiBtaWxsaXNlY29uZHMgc2luY2UgdGhlCi0JCSAqIGxhc3QgRUMgYm9vdCwgaW4gdGhlIHNhbWUgZXBvY2ggYXMgdGltZV9zaW5jZV9lY19ib290X21zLgotCQkgKiBTZXQgdG8gemVybyBpZiB0aGUgbG9nIGVudHJ5IGlzIGVtcHR5LgotCQkgKi8KLQkJdWludDMyX3QgcmVzZXRfdGltZV9tczsKLQl9IHJlY2VudF9hcF9yZXNldFs0XTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qCi0gKiBBZGQgZW50cm9weSB0byB0aGUgZGV2aWNlIHNlY3JldCAoc3RvcmVkIGluIHRoZSByb2xsYmFjayByZWdpb24pLgotICoKLSAqIERlcGVuZGluZyBvbiB0aGUgY2hpcCwgdGhlIG9wZXJhdGlvbiBtYXkgdGFrZSBhIGxvbmcgdGltZSAoZS5nLiB0byBlcmFzZQotICogZmxhc2gpLCBzbyB0aGUgY29tbWFuZHMgYXJlIGFzeW5jaHJvbm91cy4KLSAqLwotI2RlZmluZSBFQ19DTURfQUREX0VOVFJPUFkJMHgwMTIyCi0KLWVudW0gYWRkX2VudHJvcHlfYWN0aW9uIHsKLQkvKiBBZGQgZW50cm9weSB0byB0aGUgY3VycmVudCBzZWNyZXQuICovCi0JQUREX0VOVFJPUFlfQVNZTkMgPSAwLAotCS8qCi0JICogQWRkIGVudHJvcHksIGFuZCBhbHNvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwcmV2aW91cyBzZWNyZXQgaXMgZXJhc2VkLgotCSAqICh0aGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBieSBhZGRpbmcgZW50cm9weSBtdWx0aXBsZSB0aW1lcyB1bnRpbAotCSAqIGFsbCByb2xiYWNrIGJsb2NrcyBoYXZlIGJlZW4gb3ZlcndyaXR0ZW4pLgotCSAqLwotCUFERF9FTlRST1BZX1JFU0VUX0FTWU5DID0gMSwKLQkvKiBSZWFkIGJhY2sgcmVzdWx0IGZyb20gdGhlIHByZXZpb3VzIG9wZXJhdGlvbi4gKi8KLQlBRERfRU5UUk9QWV9HRVRfUkVTVUxUID0gMiwKLX07Ci0KLXN0cnVjdCBlY19wYXJhbXNfcm9sbGJhY2tfYWRkX2VudHJvcHkgewotCXVpbnQ4X3QgYWN0aW9uOwotfSBfX2VjX2FsaWduMTsKLQotLyoKLSAqIFBlcmZvcm0gYSBzaW5nbGUgcmVhZCBvZiBhIGdpdmVuIEFEQyBjaGFubmVsLgotICovCi0jZGVmaW5lIEVDX0NNRF9BRENfUkVBRAkJMHgwMTIzCi0KLXN0cnVjdCBlY19wYXJhbXNfYWRjX3JlYWQgewotCXVpbnQ4X3QgYWRjX2NoYW5uZWw7Ci19IF9fZWNfYWxpZ24xOwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfYWRjX3JlYWQgewotCWludDMyX3QgYWRjX3ZhbHVlOwotfSBfX2VjX2FsaWduNDsKLQotLyoKLSAqIFJlYWQgYmFjayByb2xsYmFjayBpbmZvCi0gKi8KLSNkZWZpbmUgRUNfQ01EX1JPTExCQUNLX0lORk8JCTB4MDEyNAotCi1zdHJ1Y3QgZWNfcmVzcG9uc2Vfcm9sbGJhY2tfaW5mbyB7Ci0JaW50MzJfdCBpZDsgLyogSW5jcmVtZW50aW5nIG51bWJlciB0byBpbmRpY2F0ZSB3aGljaCByZWdpb24gdG8gdXNlLiAqLwotCWludDMyX3Qgcm9sbGJhY2tfbWluX3ZlcnNpb247Ci0JaW50MzJfdCByd19yb2xsYmFja192ZXJzaW9uOwotfSBfX2VjX2FsaWduNDsKLQotCi0vKiBJc3N1ZSBBUCByZXNldCAqLwotI2RlZmluZSBFQ19DTURfQVBfUkVTRVQgMHgwMTI1Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIFRoZSBjb21tYW5kIHJhbmdlIDB4MjAwLTB4MkZGIGlzIHJlc2VydmVkIGZvciBSb3Rvci4gKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoKLSAqIFJlc2VydmUgYSByYW5nZSBvZiBob3N0IGNvbW1hbmRzIGZvciB0aGUgQ1I1MSBmaXJtd2FyZS4KLSAqLwotI2RlZmluZSBFQ19DTURfQ1I1MV9CQVNFIDB4MDMwMAotI2RlZmluZSBFQ19DTURfQ1I1MV9MQVNUIDB4MDNGRgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBGaW5nZXJwcmludCBNQ1UgY29tbWFuZHM6IHJhbmdlIDB4MDQwMC0weDA0MHggKi8KLQotLyogRmluZ2VycHJpbnQgU1BJIHNlbnNvciBwYXNzdGhydSBjb21tYW5kOiBwcm90b3R5cGluZyBPTkxZICovCi0jZGVmaW5lIEVDX0NNRF9GUF9QQVNTVEhSVSAweDA0MDAKLQotI2RlZmluZSBFQ19GUF9GTEFHX05PVF9DT01QTEVURSAweDEKLQotc3RydWN0IGVjX3BhcmFtc19mcF9wYXNzdGhydSB7Ci0JdWludDE2X3QgbGVuOwkJLyogTnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlIHRoZW4gcmVhZCAqLwotCXVpbnQxNl90IGZsYWdzOwkJLyogRUNfRlBfRkxBR194eHggKi8KLQl1aW50OF90IGRhdGFbXTsJCS8qIERhdGEgdG8gc2VuZCAqLwotfSBfX2VjX2FsaWduMjsKLQotLyogQ29uZmlndXJlIHRoZSBGaW5nZXJwcmludCBNQ1UgYmVoYXZpb3IgKi8KLSNkZWZpbmUgRUNfQ01EX0ZQX01PREUgMHgwNDAyCi0KLS8qIFB1dCB0aGUgc2Vuc29yIGluIGl0cyBsb3dlc3QgcG93ZXIgbW9kZSAqLwotI2RlZmluZSBGUF9NT0RFX0RFRVBTTEVFUCAgICAgIEJJVCgwKQotLyogV2FpdCB0byBzZWUgYSBmaW5nZXIgb24gdGhlIHNlbnNvciAqLwotI2RlZmluZSBGUF9NT0RFX0ZJTkdFUl9ET1dOICAgIEJJVCgxKQotLyogUG9sbCB1bnRpbCB0aGUgZmluZ2VyIGhhcyBsZWZ0IHRoZSBzZW5zb3IgKi8KLSNkZWZpbmUgRlBfTU9ERV9GSU5HRVJfVVAgICAgICBCSVQoMikKLS8qIENhcHR1cmUgdGhlIGN1cnJlbnQgZmluZ2VyIGltYWdlICovCi0jZGVmaW5lIEZQX01PREVfQ0FQVFVSRSAgICAgICAgQklUKDMpCi0vKiBGaW5nZXIgZW5yb2xsbWVudCBzZXNzaW9uIG9uLWdvaW5nICovCi0jZGVmaW5lIEZQX01PREVfRU5ST0xMX1NFU1NJT04gQklUKDQpCi0vKiBFbnJvbGwgdGhlIGN1cnJlbnQgZmluZ2VyIGltYWdlICovCi0jZGVmaW5lIEZQX01PREVfRU5ST0xMX0lNQUdFICAgQklUKDUpCi0vKiBUcnkgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgZmluZ2VyIGltYWdlICovCi0jZGVmaW5lIEZQX01PREVfTUFUQ0ggICAgICAgICAgQklUKDYpCi0vKiBSZXNldCBhbmQgcmUtaW5pdGlhbGl6ZSB0aGUgc2Vuc29yLiAqLwotI2RlZmluZSBGUF9NT0RFX1JFU0VUX1NFTlNPUiAgIEJJVCg3KQotLyogc3BlY2lhbCB2YWx1ZTogZG9uJ3QgY2hhbmdlIGFueXRoaW5nIGp1c3QgcmVhZCBiYWNrIGN1cnJlbnQgbW9kZSAqLwotI2RlZmluZSBGUF9NT0RFX0RPTlRfQ0hBTkdFICAgIEJJVCgzMSkKLQotI2RlZmluZSBGUF9WQUxJRF9NT0RFUyAoRlBfTU9ERV9ERUVQU0xFRVAgICAgICB8IFwKLQkJCUZQX01PREVfRklOR0VSX0RPV04gICAgfCBcCi0JCQlGUF9NT0RFX0ZJTkdFUl9VUCAgICAgIHwgXAotCQkJRlBfTU9ERV9DQVBUVVJFICAgICAgICB8IFwKLQkJCUZQX01PREVfRU5ST0xMX1NFU1NJT04gfCBcCi0JCQlGUF9NT0RFX0VOUk9MTF9JTUFHRSAgIHwgXAotCQkJRlBfTU9ERV9NQVRDSCAgICAgICAgICB8IFwKLQkJCUZQX01PREVfUkVTRVRfU0VOU09SICAgfCBcCi0JCQlGUF9NT0RFX0RPTlRfQ0hBTkdFKQotCi0vKiBDYXB0dXJlIHR5cGVzIGRlZmluZWQgaW4gYml0cyBbMzAuLjI4XSAqLwotI2RlZmluZSBGUF9NT0RFX0NBUFRVUkVfVFlQRV9TSElGVCAyOAotI2RlZmluZSBGUF9NT0RFX0NBUFRVUkVfVFlQRV9NQVNLICAoMHg3IDw8IEZQX01PREVfQ0FQVFVSRV9UWVBFX1NISUZUKQotLyoKLSAqIFRoaXMgZW51bSBtdXN0IHJlbWFpbiBvcmRlcmVkLCBpZiB5b3UgYWRkIG5ldyB2YWx1ZXMgeW91IG11c3QgZW5zdXJlIHRoYXQKLSAqIEZQX0NBUFRVUkVfVFlQRV9NQVggaXMgc3RpbGwgdGhlIGxhc3Qgb25lLgotICovCi1lbnVtIGZwX2NhcHR1cmVfdHlwZSB7Ci0JLyogRnVsbCBibG93biB2ZW5kb3ItZGVmaW5lZCBjYXB0dXJlIChwcm9kdWNlcyAnZnJhbWVfc2l6ZScgYnl0ZXMpICovCi0JRlBfQ0FQVFVSRV9WRU5ET1JfRk9STUFUID0gMCwKLQkvKiBTaW1wbGUgcmF3IGltYWdlIGNhcHR1cmUgKHByb2R1Y2VzIHdpZHRoIHggaGVpZ2h0IHggYnBwIGJpdHMpICovCi0JRlBfQ0FQVFVSRV9TSU1QTEVfSU1BR0UgPSAxLAotCS8qIFNlbGYgdGVzdCBwYXR0ZXJuIChlLmcuIGNoZWNrZXJib2FyZCkgKi8KLQlGUF9DQVBUVVJFX1BBVFRFUk4wID0gMiwKLQkvKiBTZWxmIHRlc3QgcGF0dGVybiAoZS5nLiBpbnZlcnRlZCBjaGVja2VyYm9hcmQpICovCi0JRlBfQ0FQVFVSRV9QQVRURVJOMSA9IDMsCi0JLyogQ2FwdHVyZSBmb3IgUXVhbGl0eSB0ZXN0IHdpdGggZml4ZWQgY29udHJhc3QgKi8KLQlGUF9DQVBUVVJFX1FVQUxJVFlfVEVTVCA9IDQsCi0JLyogQ2FwdHVyZSBmb3IgcGl4ZWwgcmVzZXQgdmFsdWUgdGVzdCAqLwotCUZQX0NBUFRVUkVfUkVTRVRfVEVTVCA9IDUsCi0JRlBfQ0FQVFVSRV9UWVBFX01BWCwKLX07Ci0vKiBFeHRyYWN0cyB0aGUgY2FwdHVyZSB0eXBlIGZyb20gdGhlIHNlbnNvciAnbW9kZScgd29yZCAqLwotI2RlZmluZSBGUF9DQVBUVVJFX1RZUEUobW9kZSkgKCgobW9kZSkgJiBGUF9NT0RFX0NBUFRVUkVfVFlQRV9NQVNLKSBcCi0JCQkJICAgICAgID4+IEZQX01PREVfQ0FQVFVSRV9UWVBFX1NISUZUKQotCi1zdHJ1Y3QgZWNfcGFyYW1zX2ZwX21vZGUgewotCXVpbnQzMl90IG1vZGU7IC8qIGFzIGRlZmluZWQgYnkgRlBfTU9ERV8gY29uc3RhbnRzICovCi19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZnBfbW9kZSB7Ci0JdWludDMyX3QgbW9kZTsgLyogYXMgZGVmaW5lZCBieSBGUF9NT0RFXyBjb25zdGFudHMgKi8KLX0gX19lY19hbGlnbjQ7Ci0KLS8qIFJldHJpZXZlIEZpbmdlcnByaW50IHNlbnNvciBpbmZvcm1hdGlvbiAqLwotI2RlZmluZSBFQ19DTURfRlBfSU5GTyAweDA0MDMKLQotLyogTnVtYmVyIG9mIGRlYWQgcGl4ZWxzIGRldGVjdGVkIG9uIHRoZSBsYXN0IG1haW50ZW5hbmNlICovCi0jZGVmaW5lIEZQX0VSUk9SX0RFQURfUElYRUxTKGVycm9ycykgKChlcnJvcnMpICYgMHgzRkYpCi0vKiBVbmtub3duIG51bWJlciBvZiBkZWFkIHBpeGVscyBkZXRlY3RlZCBvbiB0aGUgbGFzdCBtYWludGVuYW5jZSAqLwotI2RlZmluZSBGUF9FUlJPUl9ERUFEX1BJWEVMU19VTktOT1dOICgweDNGRikKLS8qIE5vIGludGVycnVwdCBmcm9tIHRoZSBzZW5zb3IgKi8KLSNkZWZpbmUgRlBfRVJST1JfTk9fSVJRICAgIEJJVCgxMikKLS8qIFNQSSBjb21tdW5pY2F0aW9uIGVycm9yICovCi0jZGVmaW5lIEZQX0VSUk9SX1NQSV9DT01NICBCSVQoMTMpCi0vKiBJbnZhbGlkIHNlbnNvciBIYXJkd2FyZSBJRCAqLwotI2RlZmluZSBGUF9FUlJPUl9CQURfSFdJRCAgQklUKDE0KQotLyogU2Vuc29yIGluaXRpYWxpemF0aW9uIGZhaWxlZCAqLwotI2RlZmluZSBGUF9FUlJPUl9JTklUX0ZBSUwgQklUKDE1KQotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZnBfaW5mb192MCB7Ci0JLyogU2Vuc29yIGlkZW50aWZpY2F0aW9uICovCi0JdWludDMyX3QgdmVuZG9yX2lkOwotCXVpbnQzMl90IHByb2R1Y3RfaWQ7Ci0JdWludDMyX3QgbW9kZWxfaWQ7Ci0JdWludDMyX3QgdmVyc2lvbjsKLQkvKiBJbWFnZSBmcmFtZSBjaGFyYWN0ZXJpc3RpY3MgKi8KLQl1aW50MzJfdCBmcmFtZV9zaXplOwotCXVpbnQzMl90IHBpeGVsX2Zvcm1hdDsgLyogdXNpbmcgVjRMMl9QSVhfRk1UXyAqLwotCXVpbnQxNl90IHdpZHRoOwotCXVpbnQxNl90IGhlaWdodDsKLQl1aW50MTZfdCBicHA7Ci0JdWludDE2X3QgZXJyb3JzOyAvKiBzZWUgRlBfRVJST1JfIGZsYWdzIGFib3ZlICovCi19IF9fZWNfYWxpZ240OwotCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfZnBfaW5mbyB7Ci0JLyogU2Vuc29yIGlkZW50aWZpY2F0aW9uICovCi0JdWludDMyX3QgdmVuZG9yX2lkOwotCXVpbnQzMl90IHByb2R1Y3RfaWQ7Ci0JdWludDMyX3QgbW9kZWxfaWQ7Ci0JdWludDMyX3QgdmVyc2lvbjsKLQkvKiBJbWFnZSBmcmFtZSBjaGFyYWN0ZXJpc3RpY3MgKi8KLQl1aW50MzJfdCBmcmFtZV9zaXplOwotCXVpbnQzMl90IHBpeGVsX2Zvcm1hdDsgLyogdXNpbmcgVjRMMl9QSVhfRk1UXyAqLwotCXVpbnQxNl90IHdpZHRoOwotCXVpbnQxNl90IGhlaWdodDsKLQl1aW50MTZfdCBicHA7Ci0JdWludDE2X3QgZXJyb3JzOyAvKiBzZWUgRlBfRVJST1JfIGZsYWdzIGFib3ZlICovCi0JLyogVGVtcGxhdGUvZmluZ2VyIGN1cnJlbnQgaW5mb3JtYXRpb24gKi8KLQl1aW50MzJfdCB0ZW1wbGF0ZV9zaXplOyAgLyogbWF4IHRlbXBsYXRlIHNpemUgaW4gYnl0ZXMgKi8KLQl1aW50MTZfdCB0ZW1wbGF0ZV9tYXg7ICAgLyogbWF4aW11bSBudW1iZXIgb2YgZmluZ2Vycy90ZW1wbGF0ZXMgKi8KLQl1aW50MTZfdCB0ZW1wbGF0ZV92YWxpZDsgLyogbnVtYmVyIG9mIHZhbGlkIGZpbmdlcnMvdGVtcGxhdGVzICovCi0JdWludDMyX3QgdGVtcGxhdGVfZGlydHk7IC8qIGJpdG1hcCBvZiB0ZW1wbGF0ZXMgd2l0aCBNQ1Ugc2lkZSBjaGFuZ2VzICovCi0JdWludDMyX3QgdGVtcGxhdGVfdmVyc2lvbjsgLyogdmVyc2lvbiBvZiB0aGUgdGVtcGxhdGUgZm9ybWF0ICovCi19IF9fZWNfYWxpZ240OwotCi0vKiBHZXQgdGhlIGxhc3QgY2FwdHVyZWQgZmluZ2VyIGZyYW1lIG9yIGEgdGVtcGxhdGUgY29udGVudCAqLwotI2RlZmluZSBFQ19DTURfRlBfRlJBTUUgMHgwNDA0Ci0KLS8qIGNvbnN0YW50cyBkZWZpbmluZyB0aGUgJ29mZnNldCcgZmllbGQgd2hpY2ggYWxzbyBjb250YWlucyB0aGUgZnJhbWUgaW5kZXggKi8KLSNkZWZpbmUgRlBfRlJBTUVfSU5ERVhfU0hJRlQgICAgICAgMjgKLS8qIEZyYW1lIGJ1ZmZlciB3aGVyZSB0aGUgY2FwdHVyZWQgaW1hZ2UgaXMgc3RvcmVkICovCi0jZGVmaW5lIEZQX0ZSQU1FX0lOREVYX1JBV19JTUFHRSAgICAwCi0vKiBGaXJzdCBmcmFtZSBidWZmZXIgaG9sZGluZyBhIHRlbXBsYXRlICovCi0jZGVmaW5lIEZQX0ZSQU1FX0lOREVYX1RFTVBMQVRFICAgICAxCi0jZGVmaW5lIEZQX0ZSQU1FX0dFVF9CVUZGRVJfSU5ERVgob2Zmc2V0KSAoKG9mZnNldCkgPj4gRlBfRlJBTUVfSU5ERVhfU0hJRlQpCi0jZGVmaW5lIEZQX0ZSQU1FX09GRlNFVF9NQVNLICAgICAgIDB4MEZGRkZGRkYKLQotLyogVmVyc2lvbiBvZiB0aGUgZm9ybWF0IG9mIHRoZSBlbmNyeXB0ZWQgdGVtcGxhdGVzLiAqLwotI2RlZmluZSBGUF9URU1QTEFURV9GT1JNQVRfVkVSU0lPTiAzCi0KLS8qIENvbnN0YW50cyBmb3IgZW5jcnlwdGlvbiBwYXJhbWV0ZXJzICovCi0jZGVmaW5lIEZQX0NPTlRFWFRfTk9OQ0VfQllURVMgMTIKLSNkZWZpbmUgRlBfQ09OVEVYVF9VU0VSSURfV09SRFMgKDMyIC8gc2l6ZW9mKHVpbnQzMl90KSkKLSNkZWZpbmUgRlBfQ09OVEVYVF9UQUdfQllURVMgMTYKLSNkZWZpbmUgRlBfQ09OVEVYVF9TQUxUX0JZVEVTIDE2Ci0jZGVmaW5lIEZQX0NPTlRFWFRfVFBNX0JZVEVTIDMyCi0KLXN0cnVjdCBlY19mcF90ZW1wbGF0ZV9lbmNyeXB0aW9uX21ldGFkYXRhIHsKLQkvKgotCSAqIFZlcnNpb24gb2YgdGhlIHN0cnVjdHVyZSBmb3JtYXQgKE49MykuCi0JICovCi0JdWludDE2X3Qgc3RydWN0X3ZlcnNpb247Ci0JLyogUmVzZXJ2ZWQgYnl0ZXMsIHNldCB0byAwLiAqLwotCXVpbnQxNl90IHJlc2VydmVkOwotCS8qCi0JICogVGhlIHNhbHQgaXMgKm9ubHkqIGV2ZXIgdXNlZCBmb3Iga2V5IGRlcml2YXRpb24uIFRoZSBub25jZSBpcyB1bmlxdWUsCi0JICogYSBkaWZmZXJlbnQgb25lIGlzIHVzZWQgZm9yIGV2ZXJ5IG1lc3NhZ2UuCi0JICovCi0JdWludDhfdCBub25jZVtGUF9DT05URVhUX05PTkNFX0JZVEVTXTsKLQl1aW50OF90IHNhbHRbRlBfQ09OVEVYVF9TQUxUX0JZVEVTXTsKLQl1aW50OF90IHRhZ1tGUF9DT05URVhUX1RBR19CWVRFU107Ci19OwotCi1zdHJ1Y3QgZWNfcGFyYW1zX2ZwX2ZyYW1lIHsKLQkvKgotCSAqIFRoZSBvZmZzZXQgY29udGFpbnMgdGhlIHRlbXBsYXRlIGluZGV4IG9yIEZQX0ZSQU1FX0lOREVYX1JBV19JTUFHRQotCSAqIGluIHRoZSBoaWdoIG5pYmJsZSwgYW5kIHRoZSByZWFsIG9mZnNldCB3aXRoaW4gdGhlIGZyYW1lIGluCi0JICogRlBfRlJBTUVfT0ZGU0VUX01BU0suCi0JICovCi0JdWludDMyX3Qgb2Zmc2V0OwotCXVpbnQzMl90IHNpemU7Ci19IF9fZWNfYWxpZ240OwotCi0vKiBMb2FkIGEgdGVtcGxhdGUgaW50byB0aGUgTUNVICovCi0jZGVmaW5lIEVDX0NNRF9GUF9URU1QTEFURSAweDA0MDUKLQotLyogRmxhZyBpbiB0aGUgJ3NpemUnIGZpZWxkIGluZGljYXRpbmcgdGhhdCB0aGUgZnVsbCB0ZW1wbGF0ZSBoYXMgYmVlbiBzZW50ICovCi0jZGVmaW5lIEZQX1RFTVBMQVRFX0NPTU1JVCAweDgwMDAwMDAwCi0KLXN0cnVjdCBlY19wYXJhbXNfZnBfdGVtcGxhdGUgewotCXVpbnQzMl90IG9mZnNldDsKLQl1aW50MzJfdCBzaXplOwotCXVpbnQ4X3QgZGF0YVtdOwotfSBfX2VjX2FsaWduNDsKLQotLyogQ2xlYXIgdGhlIGN1cnJlbnQgZmluZ2VycHJpbnQgdXNlciBjb250ZXh0IGFuZCBzZXQgYSBuZXcgb25lICovCi0jZGVmaW5lIEVDX0NNRF9GUF9DT05URVhUIDB4MDQwNgotCi1zdHJ1Y3QgZWNfcGFyYW1zX2ZwX2NvbnRleHQgewotCXVpbnQzMl90IHVzZXJpZFtGUF9DT05URVhUX1VTRVJJRF9XT1JEU107Ci19IF9fZWNfYWxpZ240OwotCi0jZGVmaW5lIEVDX0NNRF9GUF9TVEFUUyAweDA0MDcKLQotI2RlZmluZSBGUFNUQVRTX0NBUFRVUkVfSU5WICBCSVQoMCkKLSNkZWZpbmUgRlBTVEFUU19NQVRDSElOR19JTlYgQklUKDEpCi0KLXN0cnVjdCBlY19yZXNwb25zZV9mcF9zdGF0cyB7Ci0JdWludDMyX3QgY2FwdHVyZV90aW1lX3VzOwotCXVpbnQzMl90IG1hdGNoaW5nX3RpbWVfdXM7Ci0JdWludDMyX3Qgb3ZlcmFsbF90aW1lX3VzOwotCXN0cnVjdCB7Ci0JCXVpbnQzMl90IGxvOwotCQl1aW50MzJfdCBoaTsKLQl9IG92ZXJhbGxfdDA7Ci0JdWludDhfdCB0aW1lc3RhbXBzX2ludmFsaWQ7Ci0JaW50OF90IHRlbXBsYXRlX21hdGNoZWQ7Ci19IF9fZWNfYWxpZ24yOwotCi0jZGVmaW5lIEVDX0NNRF9GUF9TRUVEIDB4MDQwOAotc3RydWN0IGVjX3BhcmFtc19mcF9zZWVkIHsKLQkvKgotCSAqIFZlcnNpb24gb2YgdGhlIHN0cnVjdHVyZSBmb3JtYXQgKE49MykuCi0JICovCi0JdWludDE2X3Qgc3RydWN0X3ZlcnNpb247Ci0JLyogUmVzZXJ2ZWQgYnl0ZXMsIHNldCB0byAwLiAqLwotCXVpbnQxNl90IHJlc2VydmVkOwotCS8qIFNlZWQgZnJvbSB0aGUgVFBNLiAqLwotCXVpbnQ4X3Qgc2VlZFtGUF9DT05URVhUX1RQTV9CWVRFU107Ci19IF9fZWNfYWxpZ240OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBUb3VjaHBhZCBNQ1UgY29tbWFuZHM6IHJhbmdlIDB4MDUwMC0weDA1RkYgKi8KLQotLyogUGVyZm9ybSB0b3VjaHBhZCBzZWxmIHRlc3QgKi8KLSNkZWZpbmUgRUNfQ01EX1RQX1NFTEZfVEVTVCAweDA1MDAKLQotLyogR2V0IG51bWJlciBvZiBmcmFtZSB0eXBlcywgYW5kIHRoZSBzaXplIG9mIGVhY2ggdHlwZSAqLwotI2RlZmluZSBFQ19DTURfVFBfRlJBTUVfSU5GTyAweDA1MDEKLQotc3RydWN0IGVjX3Jlc3BvbnNlX3RwX2ZyYW1lX2luZm8gewotCXVpbnQzMl90IG5fZnJhbWVzOwotCXVpbnQzMl90IGZyYW1lX3NpemVzWzBdOwotfSBfX2VjX2FsaWduNDsKLQotLyogQ3JlYXRlIGEgc25hcHNob3Qgb2YgY3VycmVudCBmcmFtZSByZWFkaW5ncyAqLwotI2RlZmluZSBFQ19DTURfVFBfRlJBTUVfU05BUFNIT1QgMHgwNTAyCi0KLS8qIFJlYWQgdGhlIGZyYW1lICovCi0jZGVmaW5lIEVDX0NNRF9UUF9GUkFNRV9HRVQgMHgwNTAzCi0KLXN0cnVjdCBlY19wYXJhbXNfdHBfZnJhbWVfZ2V0IHsKLQl1aW50MzJfdCBmcmFtZV9pbmRleDsKLQl1aW50MzJfdCBvZmZzZXQ7Ci0JdWludDMyX3Qgc2l6ZTsKLX0gX19lY19hbGlnbjQ7Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIEVDLUVDIGNvbW11bmljYXRpb24gY29tbWFuZHM6IHJhbmdlIDB4MDYwMC0weDA2RkYgKi8KLQotI2RlZmluZSBFQ19DT01NX1RFWFRfTUFYIDgKLQotLyoKLSAqIEdldCBiYXR0ZXJ5IHN0YXRpYyBpbmZvcm1hdGlvbiwgaS5lLiBpbmZvcm1hdGlvbiB0aGF0IG5ldmVyIGNoYW5nZXMsIG9yCi0gKiB2ZXJ5IGluZnJlcXVlbnRseS4KLSAqLwotI2RlZmluZSBFQ19DTURfQkFUVEVSWV9HRVRfU1RBVElDIDB4MDYwMAotCi0vKioKLSAqIHN0cnVjdCBlY19wYXJhbXNfYmF0dGVyeV9zdGF0aWNfaW5mbyAtIEJhdHRlcnkgc3RhdGljIGluZm8gcGFyYW1ldGVycwotICogQGluZGV4OiBCYXR0ZXJ5IGluZGV4LgotICovCi1zdHJ1Y3QgZWNfcGFyYW1zX2JhdHRlcnlfc3RhdGljX2luZm8gewotCXVpbnQ4X3QgaW5kZXg7Ci19IF9fZWNfYWxpZ25fc2l6ZTE7Ci0KLS8qKgotICogc3RydWN0IGVjX3Jlc3BvbnNlX2JhdHRlcnlfc3RhdGljX2luZm8gLSBCYXR0ZXJ5IHN0YXRpYyBpbmZvIHJlc3BvbnNlCi0gKiBAZGVzaWduX2NhcGFjaXR5OiBCYXR0ZXJ5IERlc2lnbiBDYXBhY2l0eSAobUFoKQotICogQGRlc2lnbl92b2x0YWdlOiBCYXR0ZXJ5IERlc2lnbiBWb2x0YWdlIChtVikKLSAqIEBtYW51ZmFjdHVyZXI6IEJhdHRlcnkgTWFudWZhY3R1cmVyIFN0cmluZwotICogQG1vZGVsOiBCYXR0ZXJ5IE1vZGVsIE51bWJlciBTdHJpbmcKLSAqIEBzZXJpYWw6IEJhdHRlcnkgU2VyaWFsIE51bWJlciBTdHJpbmcKLSAqIEB0eXBlOiBCYXR0ZXJ5IFR5cGUgU3RyaW5nCi0gKiBAY3ljbGVfY291bnQ6IEJhdHRlcnkgQ3ljbGUgQ291bnQKLSAqLwotc3RydWN0IGVjX3Jlc3BvbnNlX2JhdHRlcnlfc3RhdGljX2luZm8gewotCXVpbnQxNl90IGRlc2lnbl9jYXBhY2l0eTsKLQl1aW50MTZfdCBkZXNpZ25fdm9sdGFnZTsKLQljaGFyIG1hbnVmYWN0dXJlcltFQ19DT01NX1RFWFRfTUFYXTsKLQljaGFyIG1vZGVsW0VDX0NPTU1fVEVYVF9NQVhdOwotCWNoYXIgc2VyaWFsW0VDX0NPTU1fVEVYVF9NQVhdOwotCWNoYXIgdHlwZVtFQ19DT01NX1RFWFRfTUFYXTsKLQkvKiBUT0RPKGNyYnVnLmNvbS83OTU5OTEpOiBDb25zaWRlciBtb3ZpbmcgdG8gZHluYW1pYyBzdHJ1Y3R1cmUuICovCi0JdWludDMyX3QgY3ljbGVfY291bnQ7Ci19IF9fZWNfYWxpZ240OwotCi0vKgotICogR2V0IGJhdHRlcnkgZHluYW1pYyBpbmZvcm1hdGlvbiwgaS5lLiBpbmZvcm1hdGlvbiB0aGF0IGlzIGxpa2VseSB0byBjaGFuZ2UKLSAqIGV2ZXJ5IHRpbWUgaXQgaXMgcmVhZC4KLSAqLwotI2RlZmluZSBFQ19DTURfQkFUVEVSWV9HRVRfRFlOQU1JQyAweDA2MDEKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcGFyYW1zX2JhdHRlcnlfZHluYW1pY19pbmZvIC0gQmF0dGVyeSBkeW5hbWljIGluZm8gcGFyYW1ldGVycwotICogQGluZGV4OiBCYXR0ZXJ5IGluZGV4LgotICovCi1zdHJ1Y3QgZWNfcGFyYW1zX2JhdHRlcnlfZHluYW1pY19pbmZvIHsKLQl1aW50OF90IGluZGV4OwotfSBfX2VjX2FsaWduX3NpemUxOwotCi0vKioKLSAqIHN0cnVjdCBlY19yZXNwb25zZV9iYXR0ZXJ5X2R5bmFtaWNfaW5mbyAtIEJhdHRlcnkgZHluYW1pYyBpbmZvIHJlc3BvbnNlCi0gKiBAYWN0dWFsX3ZvbHRhZ2U6IEJhdHRlcnkgdm9sdGFnZSAobVYpCi0gKiBAYWN0dWFsX2N1cnJlbnQ6IEJhdHRlcnkgY3VycmVudCAobUEpOyBuZWdhdGl2ZT1kaXNjaGFyZ2luZwotICogQHJlbWFpbmluZ19jYXBhY2l0eTogUmVtYWluaW5nIGNhcGFjaXR5IChtQWgpCi0gKiBAZnVsbF9jYXBhY2l0eTogQ2FwYWNpdHkgKG1BaCwgbWlnaHQgY2hhbmdlIG9jY2FzaW9uYWxseSkKLSAqIEBmbGFnczogRmxhZ3MsIHNlZSBFQ19CQVRUX0ZMQUdfKgotICogQGRlc2lyZWRfdm9sdGFnZTogQ2hhcmdpbmcgdm9sdGFnZSBkZXNpcmVkIGJ5IGJhdHRlcnkgKG1WKQotICogQGRlc2lyZWRfY3VycmVudDogQ2hhcmdpbmcgY3VycmVudCBkZXNpcmVkIGJ5IGJhdHRlcnkgKG1BKQotICovCi1zdHJ1Y3QgZWNfcmVzcG9uc2VfYmF0dGVyeV9keW5hbWljX2luZm8gewotCWludDE2X3QgYWN0dWFsX3ZvbHRhZ2U7Ci0JaW50MTZfdCBhY3R1YWxfY3VycmVudDsKLQlpbnQxNl90IHJlbWFpbmluZ19jYXBhY2l0eTsKLQlpbnQxNl90IGZ1bGxfY2FwYWNpdHk7Ci0JaW50MTZfdCBmbGFnczsKLQlpbnQxNl90IGRlc2lyZWRfdm9sdGFnZTsKLQlpbnQxNl90IGRlc2lyZWRfY3VycmVudDsKLX0gX19lY19hbGlnbjI7Ci0KLS8qCi0gKiBDb250cm9sIGNoYXJnZXIgY2hpcC4gVXNlZCB0byBjb250cm9sIGNoYXJnZXIgY2hpcCBvbiB0aGUgc2xhdmUuCi0gKi8KLSNkZWZpbmUgRUNfQ01EX0NIQVJHRVJfQ09OVFJPTCAweDA2MDIKLQotLyoqCi0gKiBzdHJ1Y3QgZWNfcGFyYW1zX2NoYXJnZXJfY29udHJvbCAtIENoYXJnZXIgY29udHJvbCBwYXJhbWV0ZXJzCi0gKiBAbWF4X2N1cnJlbnQ6IENoYXJnZXIgY3VycmVudCAobUEpLiBQb3NpdGl2ZSB0byBhbGxvdyBiYXNlIHRvIGRyYXcgdXAgdG8KLSAqICAgICBtYXhfY3VycmVudCBhbmQgKHBvc3NpYmx5KSBjaGFyZ2UgYmF0dGVyeSwgbmVnYXRpdmUgdG8gcmVxdWVzdCBjdXJyZW50Ci0gKiAgICAgZnJvbSBiYXNlIChPVEcpLgotICogQG90Z192b2x0YWdlOiBWb2x0YWdlIChtVikgdG8gdXNlIGluIE9URyBtb2RlLCBpZ25vcmVkIGlmIG1heF9jdXJyZW50IGlzCi0gKiAgICAgPj0gMC4KLSAqIEBhbGxvd19jaGFyZ2luZzogQWxsb3cgYmFzZSBiYXR0ZXJ5IGNoYXJnaW5nIChvbmx5IG1ha2VzIHNlbnNlIGlmCi0gKiAgICAgbWF4X2N1cnJlbnQgPiAwKS4KLSAqLwotc3RydWN0IGVjX3BhcmFtc19jaGFyZ2VyX2NvbnRyb2wgewotCWludDE2X3QgbWF4X2N1cnJlbnQ7Ci0JdWludDE2X3Qgb3RnX3ZvbHRhZ2U7Ci0JdWludDhfdCBhbGxvd19jaGFyZ2luZzsKLX0gX19lY19hbGlnbl9zaXplMTsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoKLSAqIFJlc2VydmUgYSByYW5nZSBvZiBob3N0IGNvbW1hbmRzIGZvciBib2FyZC1zcGVjaWZpYywgZXhwZXJpbWVudGFsLCBvcgotICogc3BlY2lhbCBwdXJwb3NlIGZlYXR1cmVzLiBUaGVzZSBjYW4gYmUgKHJlKXVzZWQgd2l0aG91dCB1cGRhdGluZyB0aGlzIGZpbGUuCi0gKgotICogQ0FVVElPTjogRG9uJ3QgZ28gbnV0cyB3aXRoIHRoaXMuIFNoaXBwaW5nIHByb2R1Y3RzIHNob3VsZCBkb2N1bWVudCBBTEwKLSAqIHRoZWlyIEVDIGNvbW1hbmRzIGZvciBlYXNpZXIgZGV2ZWxvcG1lbnQsIHRlc3RpbmcsIGRlYnVnZ2luZywgYW5kIHN1cHBvcnQuCi0gKgotICogQWxsIGNvbW1hbmRzIE1VU1QgYmUgI2RlZmluZWQgdG8gYmUgNC1kaWdpdCBVUFBFUiBDQVNFIGhleCB2YWx1ZXMKLSAqIChlLmcuLCAweDAwQUIsIG5vdCAweGFiKSBmb3IgQ09ORklHX0hPU1RDTURfU0VDVElPTl9TT1JURUQgdG8gd29yay4KLSAqCi0gKiBJbiB5b3VyIGV4cGVyaW1lbnRhbCBjb2RlLCB5b3UgbWF5IHdhbnQgdG8gZG8gc29tZXRoaW5nIGxpa2UgdGhpczoKLSAqCi0gKiAgICNkZWZpbmUgRUNfQ01EX01BR0lDX0ZPTyAweDAwMDAKLSAqICAgI2RlZmluZSBFQ19DTURfTUFHSUNfQkFSIDB4MDAwMQotICogICAjZGVmaW5lIEVDX0NNRF9NQUdJQ19IRVkgMHgwMDAyCi0gKgotICogICBERUNMQVJFX1BSSVZBVEVfSE9TVF9DT01NQU5EKEVDX0NNRF9NQUdJQ19GT08sIG1hZ2ljX2Zvb19oYW5kbGVyLAotICogICAgICBFQ19WRVJfTUFTSygwKTsKLSAqCi0gKiAgIERFQ0xBUkVfUFJJVkFURV9IT1NUX0NPTU1BTkQoRUNfQ01EX01BR0lDX0JBUiwgbWFnaWNfYmFyX2hhbmRsZXIsCi0gKiAgICAgIEVDX1ZFUl9NQVNLKDApOwotICoKLSAqICAgREVDTEFSRV9QUklWQVRFX0hPU1RfQ09NTUFORChFQ19DTURfTUFHSUNfSEVZLCBtYWdpY19oZXlfaGFuZGxlciwKLSAqICAgICAgRUNfVkVSX01BU0soMCk7Ci0gKi8KLSNkZWZpbmUgRUNfQ01EX0JPQVJEX1NQRUNJRklDX0JBU0UgMHgzRTAwCi0jZGVmaW5lIEVDX0NNRF9CT0FSRF9TUEVDSUZJQ19MQVNUIDB4M0ZGRgotCi0vKgotICogR2l2ZW4gdGhlIHByaXZhdGUgaG9zdCBjb21tYW5kIG9mZnNldCwgY2FsY3VsYXRlIHRoZSB0cnVlIHByaXZhdGUgaG9zdAotICogY29tbWFuZCB2YWx1ZS4KLSAqLwotI2RlZmluZSBFQ19QUklWQVRFX0hPU1RfQ09NTUFORF9WQUxVRShjb21tYW5kKSBcCi0JKEVDX0NNRF9CT0FSRF9TUEVDSUZJQ19CQVNFICsgKGNvbW1hbmQpKQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgotICogUGFzc3RocnUgY29tbWFuZHMKLSAqCi0gKiBTb21lIHBsYXRmb3JtcyBoYXZlIHN1Yi1wcm9jZXNzb3JzIGNoYWluZWQgdG8gZWFjaCBvdGhlci4gIEZvciBleGFtcGxlLgotICoKLSAqICAgICBBUCA8LS0+IEVDIDwtLT4gUEQgTUNVCi0gKgotICogVGhlIHRvcCAyIGJpdHMgb2YgdGhlIGNvbW1hbmQgbnVtYmVyIGFyZSB1c2VkIHRvIGluZGljYXRlIHdoaWNoIGRldmljZSB0aGUKLSAqIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yLiAgRGV2aWNlIDAgaXMgYWx3YXlzIHRoZSBkZXZpY2UgcmVjZWl2aW5nIHRoZQotICogY29tbWFuZDsgb3RoZXIgZGV2aWNlIG1hcHBpbmcgaXMgYm9hcmQtc3BlY2lmaWMuCi0gKgotICogV2hlbiBhIGRldmljZSByZWNlaXZlcyBhIGNvbW1hbmQgdG8gYmUgcGFzc2VkIHRvIGEgc3ViLXByb2Nlc3NvciwgaXQgcGFzc2VzCi0gKiBpdCBvbiB3aXRoIHRoZSBkZXZpY2UgbnVtYmVyIHNldCBiYWNrIHRvIDAuICBUaGlzIGFsbG93cyB0aGUgc3ViLXByb2Nlc3NvcgotICogdG8gcmVtYWluIGJsaXNzZnVsbHkgdW5hd2FyZSBvZiB3aGV0aGVyIHRoZSBjb21tYW5kIG9yaWdpbmF0ZWQgb24gdGhlIG5leHQKLSAqIGRldmljZSB1cCB0aGUgY2hhaW4sIG9yIHdhcyBwYXNzZWQgdGhyb3VnaCBmcm9tIHRoZSBBUC4KLSAqCi0gKiBJbiB0aGUgYWJvdmUgZXhhbXBsZSwgaWYgdGhlIEFQIHdhbnRzIHRvIHNlbmQgY29tbWFuZCAweDAwMDIgdG8gdGhlIFBEIE1DVSwKLSAqICAgICBBUCBzZW5kcyBjb21tYW5kIDB4NDAwMiB0byB0aGUgRUMKLSAqICAgICBFQyBzZW5kcyBjb21tYW5kIDB4MDAwMiB0byB0aGUgUEQgTUNVCi0gKiAgICAgRUMgZm9yd2FyZHMgUEQgTUNVIHJlc3BvbnNlIGJhY2sgdG8gdGhlIEFQCi0gKi8KLQotLyogT2Zmc2V0IGFuZCBtYXggY29tbWFuZCBudW1iZXIgZm9yIHN1Yi1kZXZpY2UgbiAqLwotI2RlZmluZSBFQ19DTURfUEFTU1RIUlVfT0ZGU0VUKG4pICgweDQwMDAgKiAobikpCi0jZGVmaW5lIEVDX0NNRF9QQVNTVEhSVV9NQVgobikgKEVDX0NNRF9QQVNTVEhSVV9PRkZTRVQobikgKyAweDNmZmYpCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCi0gKiBEZXByZWNhdGVkIGNvbnN0YW50cy4gVGhlc2UgY29uc3RhbnRzIGhhdmUgYmVlbiByZW5hbWVkIGZvciBjbGFyaXR5LiBUaGUKLSAqIG1lYW5pbmcgYW5kIHNpemUgaGFzIG5vdCBjaGFuZ2VkLiBQcm9ncmFtcyB0aGF0IHVzZSB0aGUgb2xkIG5hbWVzIHNob3VsZAotICogc3dpdGNoIHRvIHRoZSBuZXcgbmFtZXMgc29vbiwgYXMgdGhlIG9sZCBuYW1lcyBtYXkgbm90IGJlIGNhcnJpZWQgZm9yd2FyZAotICogZm9yZXZlci4KLSAqLwotI2RlZmluZSBFQ19IT1NUX1BBUkFNX1NJWkUgICAgICBFQ19QUk9UTzJfTUFYX1BBUkFNX1NJWkUKLSNkZWZpbmUgRUNfTFBDX0FERFJfT0xEX1BBUkFNICAgRUNfSE9TVF9DTURfUkVHSU9OMQotI2RlZmluZSBFQ19PTERfUEFSQU1fU0laRSAgICAgICBFQ19IT1NUX0NNRF9SRUdJT05fU0laRQotCi0KLQotI2VuZGlmICAvKiBfX0NST1NfRUNfQ09NTUFORFNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZmQvZGE5MDYzL3BkYXRhLmggYi9pbmNsdWRlL2xpbnV4L21mZC9kYTkwNjMvcGRhdGEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDg1ZWRiZi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2xpbnV4L21mZC9kYTkwNjMvcGRhdGEuaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCi0vKgotICogUGxhdGZvcm0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBEQTkwNjMKLSAqCi0gKiBDb3B5cmlnaHQgMjAxMiBEaWFsb2cgU2VtaWNvbmR1Y3RvciBMdGQuCi0gKgotICogQXV0aG9yOiBNaWNoYWwgSGFqZHVrLCBEaWFsb2cgU2VtaWNvbmR1Y3RvcgotICogQXV0aG9yOiBLcnlzdGlhbiBHYXJiYWNpYWssIERpYWxvZyBTZW1pY29uZHVjdG9yCi0gKi8KLQotI2lmbmRlZiBfX01GRF9EQTkwNjNfUERBVEFfSF9fCi0jZGVmaW5lIF9fTUZEX0RBOTA2M19QREFUQV9IX18KLQotLyoKLSAqIFJHQiBMRUQgY29uZmlndXJhdGlvbgotICovCi0vKiBMRUQgSURzIGZvciBmbGFncyBpbiBzdHJ1Y3QgbGVkX2luZm8uICovCi1lbnVtIHsKLQlEQTkwNjNfR1BJTzExX0xFRCwKLQlEQTkwNjNfR1BJTzE0X0xFRCwKLQlEQTkwNjNfR1BJTzE1X0xFRCwKLQotCURBOTA2M19MRURfTlVNCi19OwotI2RlZmluZSBEQTkwNjNfTEVEX0lEX01BU0sJCTB4MwotCi0vKiBMRUQgcG9sYXJpdHkgZm9yIGZsYWdzIGluIHN0cnVjdCBsZWRfaW5mby4gKi8KLSNkZWZpbmUgREE5MDYzX0xFRF9ISUdIX0xFVkVMX0FDVElWRQkweDAKLSNkZWZpbmUgREE5MDYzX0xFRF9MT1dfTEVWRUxfQUNUSVZFCTB4NAotCi0KLS8qCi0gKiBHZW5lcmFsIFBNSUMgY29uZmlndXJhdGlvbgotICovCi0vKiBIV01PTiBBREMgY2hhbm5lbHMgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBEQTkwNjNfRkxHX0ZPUkNFX0lOMF9NQU5VQUxfTU9ERQkweDAwMTAKLSNkZWZpbmUgREE5MDYzX0ZMR19GT1JDRV9JTjBfQVVUT19NT0RFCQkweDAwMjAKLSNkZWZpbmUgREE5MDYzX0ZMR19GT1JDRV9JTjFfTUFOVUFMX01PREUJMHgwMDQwCi0jZGVmaW5lIERBOTA2M19GTEdfRk9SQ0VfSU4xX0FVVE9fTU9ERQkJMHgwMDgwCi0jZGVmaW5lIERBOTA2M19GTEdfRk9SQ0VfSU4yX01BTlVBTF9NT0RFCTB4MDEwMAotI2RlZmluZSBEQTkwNjNfRkxHX0ZPUkNFX0lOMl9BVVRPX01PREUJCTB4MDIwMAotI2RlZmluZSBEQTkwNjNfRkxHX0ZPUkNFX0lOM19NQU5VQUxfTU9ERQkweDA0MDAKLSNkZWZpbmUgREE5MDYzX0ZMR19GT1JDRV9JTjNfQVVUT19NT0RFCQkweDA4MDAKLQotLyogRGlzYWJsZSByZWdpc3RlciBjYWNoaW5nLiAqLwotI2RlZmluZSBEQTkwNjNfRkxHX05PX0NBQ0hFCQkJMHgwMDA4Ci0KLXN0cnVjdCBkYTkwNjM7Ci0KLS8qIERBOTA2MyBwbGF0Zm9ybSBkYXRhICovCi1zdHJ1Y3QgZGE5MDYzX3BkYXRhIHsKLQlpbnQJCQkJKCppbml0KShzdHJ1Y3QgZGE5MDYzICpkYTkwNjMpOwotCWludAkJCQlpcnFfYmFzZTsKLQlib29sCQkJCWtleV9wb3dlcjsKLQl1bnNpZ25lZAkJCWZsYWdzOwotCXN0cnVjdCBkYTkwNjNfcmVndWxhdG9yc19wZGF0YQkqcmVndWxhdG9yc19wZGF0YTsKLQlzdHJ1Y3QgbGVkX3BsYXRmb3JtX2RhdGEJKmxlZHNfcGRhdGE7Ci19OwotCi0jZW5kaWYJLyogX19NRkRfREE5MDYzX1BEQVRBX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZmQvaW50ZWxfc29jX3BtaWNfbXJmbGQuaCBiL2luY2x1ZGUvbGludXgvbWZkL2ludGVsX3NvY19wbWljX21yZmxkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRhZWNkNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvbWZkL2ludGVsX3NvY19wbWljX21yZmxkLmgKQEAgLTAsMCArMSw4MSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKy8qCisgKiBIZWFkZXIgZmlsZSBmb3IgSW50ZWwgTWVycmlmaWVsZCBCYXNpbiBDb3ZlIFBNSUMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKi8KKworI2lmbmRlZiBfX0lOVEVMX1NPQ19QTUlDX01SRkxEX0hfXworI2RlZmluZSBfX0lOVEVMX1NPQ19QTUlDX01SRkxEX0hfXworCisjaW5jbHVkZSA8bGludXgvYml0cy5oPgorCisjZGVmaW5lIEJDT1ZFX0lECQkweDAwCisKKyNkZWZpbmUgQkNPVkVfSURfTUlOUkVWMAlHRU5NQVNLKDIsIDApCisjZGVmaW5lIEJDT1ZFX0lEX01BSlJFVjAJR0VOTUFTSyg1LCAzKQorI2RlZmluZSBCQ09WRV9JRF9WRU5ESUQwCUdFTk1BU0soNywgNikKKworI2RlZmluZSBCQ09WRV9NSU5PUih4KQkJKHVuc2lnbmVkIGludCkoKCh4KSAmIEJDT1ZFX0lEX01JTlJFVjApID4+IDApCisjZGVmaW5lIEJDT1ZFX01BSk9SKHgpCQkodW5zaWduZWQgaW50KSgoKHgpICYgQkNPVkVfSURfTUFKUkVWMCkgPj4gMykKKyNkZWZpbmUgQkNPVkVfVkVORE9SKHgpCQkodW5zaWduZWQgaW50KSgoKHgpICYgQkNPVkVfSURfVkVORElEMCkgPj4gNikKKworI2RlZmluZSBCQ09WRV9JUlFMVkwxCQkweDAxCisKKyNkZWZpbmUgQkNPVkVfUEJJUlEJCTB4MDIKKyNkZWZpbmUgQkNPVkVfVE1VSVJRCQkweDAzCisjZGVmaW5lIEJDT1ZFX1RIUk1JUlEJCTB4MDQKKyNkZWZpbmUgQkNPVkVfQkNVSVJRCQkweDA1CisjZGVmaW5lIEJDT1ZFX0FEQ0lSUQkJMHgwNgorI2RlZmluZSBCQ09WRV9DSEdSSVJRMAkJMHgwNworI2RlZmluZSBCQ09WRV9DSEdSSVJRMQkJMHgwOAorI2RlZmluZSBCQ09WRV9HUElPSVJRCQkweDA5CisjZGVmaW5lIEJDT1ZFX0NSSVRJUlEJCTB4MEIKKworI2RlZmluZSBCQ09WRV9NSVJRTFZMMQkJMHgwQworCisjZGVmaW5lIEJDT1ZFX01QQklSUQkJMHgwRAorI2RlZmluZSBCQ09WRV9NVE1VSVJRCQkweDBFCisjZGVmaW5lIEJDT1ZFX01USFJNSVJRCQkweDBGCisjZGVmaW5lIEJDT1ZFX01CQ1VJUlEJCTB4MTAKKyNkZWZpbmUgQkNPVkVfTUFEQ0lSUQkJMHgxMQorI2RlZmluZSBCQ09WRV9NQ0hHUklSUTAJCTB4MTIKKyNkZWZpbmUgQkNPVkVfTUNIR1JJUlExCQkweDEzCisjZGVmaW5lIEJDT1ZFX01HUElPSVJRCQkweDE0CisjZGVmaW5lIEJDT1ZFX01DUklUSVJRCQkweDE2CisKKyNkZWZpbmUgQkNPVkVfU0NIR1JJUlEwCQkweDRFCisjZGVmaW5lIEJDT1ZFX1NDSEdSSVJRMQkJMHg0RgorCisvKiBMZXZlbCAxIElSUXMgKi8KKyNkZWZpbmUgQkNPVkVfTFZMMV9QV1JCVE4JQklUKDApCS8qIHBvd2VyIGJ1dHRvbiAqLworI2RlZmluZSBCQ09WRV9MVkwxX1RNVQkJQklUKDEpCS8qIHRpbWUgbWFuYWdlbWVudCB1bml0ICovCisjZGVmaW5lIEJDT1ZFX0xWTDFfVEhSTQkJQklUKDIpCS8qIHRoZXJtYWwgKi8KKyNkZWZpbmUgQkNPVkVfTFZMMV9CQ1UJCUJJVCgzKQkvKiBidXJzdCBjb250cm9sIHVuaXQgKi8KKyNkZWZpbmUgQkNPVkVfTFZMMV9BREMJCUJJVCg0KQkvKiBBREMgKi8KKyNkZWZpbmUgQkNPVkVfTFZMMV9DSEdSCQlCSVQoNSkJLyogY2hhcmdlciAqLworI2RlZmluZSBCQ09WRV9MVkwxX0dQSU8JCUJJVCg2KQkvKiBHUElPICovCisjZGVmaW5lIEJDT1ZFX0xWTDFfQ1JJVAkJQklUKDcpCS8qIGNyaXRpY2FsIGV2ZW50ICovCisKKy8qIExldmVsIDIgSVJRczogcG93ZXIgYnV0dG9uICovCisjZGVmaW5lIEJDT1ZFX1BCSVJRX1BCVE4JQklUKDApCisjZGVmaW5lIEJDT1ZFX1BCSVJRX1VCVE4JQklUKDEpCisKKy8qIExldmVsIDIgSVJRczogQURDICovCisjZGVmaW5lIEJDT1ZFX0FEQ0lSUV9CQVRURU1QCUJJVCgyKQorI2RlZmluZSBCQ09WRV9BRENJUlFfU1lTVEVNUAlCSVQoMykKKyNkZWZpbmUgQkNPVkVfQURDSVJRX0JBVFRJRAlCSVQoNCkKKyNkZWZpbmUgQkNPVkVfQURDSVJRX1ZJQkFUVAlCSVQoNSkKKyNkZWZpbmUgQkNPVkVfQURDSVJRX0NDVElDSwlCSVQoNykKKworLyogTGV2ZWwgMiBJUlFzOiBjaGFyZ2VyICovCisjZGVmaW5lIEJDT1ZFX0NIR1JJUlFfQkFUMEFMUlQJQklUKDQpCisjZGVmaW5lIEJDT1ZFX0NIR1JJUlFfQkFUMUFMUlQJQklUKDUpCisjZGVmaW5lIEJDT1ZFX0NIR1JJUlFfQkFUQ1JJVAlCSVQoNikKKworI2RlZmluZSBCQ09WRV9DSEdSSVJRX1ZCVVNERVQJQklUKDApCisjZGVmaW5lIEJDT1ZFX0NIR1JJUlFfRENERVQJQklUKDEpCisjZGVmaW5lIEJDT1ZFX0NIR1JJUlFfQkFUVERFVAlCSVQoMikKKyNkZWZpbmUgQkNPVkVfQ0hHUklSUV9VU0JJRERFVAlCSVQoMykKKworI2VuZGlmCS8qIF9fSU5URUxfU09DX1BNSUNfTVJGTERfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21mZC9tdDYzOTcvY29yZS5oIGIvaW5jbHVkZS9saW51eC9tZmQvbXQ2Mzk3L2NvcmUuaAppbmRleCAyNWE5NWU3Li5mYzg4ZDMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21mZC9tdDYzOTcvY29yZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbWZkL210NjM5Ny9jb3JlLmgKQEAgLTcsNiArNywxNCBAQAogI2lmbmRlZiBfX01GRF9NVDYzOTdfQ09SRV9IX18KICNkZWZpbmUgX19NRkRfTVQ2Mzk3X0NPUkVfSF9fCiAKKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorCitlbnVtIGNoaXBfaWQgeworCU1UNjMyM19DSElQX0lEID0gMHgyMywKKwlNVDYzOTFfQ0hJUF9JRCA9IDB4OTEsCisJTVQ2Mzk3X0NISVBfSUQgPSAweDk3LAorfTsKKwogZW51bSBtdDYzOTdfaXJxX251bWJlcnMgewogCU1UNjM5N19JUlFfU1BLTF9BQiA9IDAsCiAJTVQ2Mzk3X0lSUV9TUEtSX0FCLApAQCAtNTQsNiArNjIsOSBAQCBzdHJ1Y3QgbXQ2Mzk3X2NoaXAgewogCXUxNiBpcnFfbWFza3NfY2FjaGVbMl07CiAJdTE2IGludF9jb25bMl07CiAJdTE2IGludF9zdGF0dXNbMl07CisJdTE2IGNoaXBfaWQ7CiB9OwogCitpbnQgbXQ2Mzk3X2lycV9pbml0KHN0cnVjdCBtdDYzOTdfY2hpcCAqY2hpcCk7CisKICNlbmRpZiAvKiBfX01GRF9NVDYzOTdfQ09SRV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWZkL3N5c2Nvbi5oIGIvaW5jbHVkZS9saW51eC9tZmQvc3lzY29uLmgKaW5kZXggOGNmZGEwNS4uMTEyZGM2NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tZmQvc3lzY29uLmgKKysrIGIvaW5jbHVkZS9saW51eC9tZmQvc3lzY29uLmgKQEAgLTE3LDEyICsxNywxOCBAQAogc3RydWN0IGRldmljZV9ub2RlOwogCiAjaWZkZWYgQ09ORklHX01GRF9TWVNDT04KK2V4dGVybiBzdHJ1Y3QgcmVnbWFwICpkZXZpY2Vfbm9kZV90b19yZWdtYXAoc3RydWN0IGRldmljZV9ub2RlICpucCk7CiBleHRlcm4gc3RydWN0IHJlZ21hcCAqc3lzY29uX25vZGVfdG9fcmVnbWFwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApOwogZXh0ZXJuIHN0cnVjdCByZWdtYXAgKnN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X2NvbXBhdGlibGUoY29uc3QgY2hhciAqcyk7CiBleHRlcm4gc3RydWN0IHJlZ21hcCAqc3lzY29uX3JlZ21hcF9sb29rdXBfYnlfcGhhbmRsZSgKIAkJCQkJc3RydWN0IGRldmljZV9ub2RlICpucCwKIAkJCQkJY29uc3QgY2hhciAqcHJvcGVydHkpOwogI2Vsc2UKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJlZ21hcCAqZGV2aWNlX25vZGVfdG9fcmVnbWFwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCit7CisJcmV0dXJuIEVSUl9QVFIoLUVOT1RTVVBQKTsKK30KKwogc3RhdGljIGlubGluZSBzdHJ1Y3QgcmVnbWFwICpzeXNjb25fbm9kZV90b19yZWdtYXAoc3RydWN0IGRldmljZV9ub2RlICpucCkKIHsKIAlyZXR1cm4gRVJSX1BUUigtRU5PVFNVUFApOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9taWdyYXRlLmggYi9pbmNsdWRlL2xpbnV4L21pZ3JhdGUuaAppbmRleCA3ZjA0NzU0Li43MjEyMDA2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21pZ3JhdGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L21pZ3JhdGUuaApAQCAtMTY2LDggKzE2Niw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1pZ3JhdGVfbWlzcGxhY2VkX3RyYW5zaHVnZV9wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogI2RlZmluZSBNSUdSQVRFX1BGTl9NSUdSQVRFCSgxVUwgPDwgMSkKICNkZWZpbmUgTUlHUkFURV9QRk5fTE9DS0VECSgxVUwgPDwgMikKICNkZWZpbmUgTUlHUkFURV9QRk5fV1JJVEUJKDFVTCA8PCAzKQotI2RlZmluZSBNSUdSQVRFX1BGTl9ERVZJQ0UJKDFVTCA8PCA0KQotI2RlZmluZSBNSUdSQVRFX1BGTl9FUlJPUgkoMVVMIDw8IDUpCiAjZGVmaW5lIE1JR1JBVEVfUEZOX1NISUZUCTYKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqbWlncmF0ZV9wZm5fdG9fcGFnZSh1bnNpZ25lZCBsb25nIG1wZm4pCkBAIC0xODIsMTA3ICsxODAsMjcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIG1pZ3JhdGVfcGZuKHVuc2lnbmVkIGxvbmcgcGZuKQogCXJldHVybiAocGZuIDw8IE1JR1JBVEVfUEZOX1NISUZUKSB8IE1JR1JBVEVfUEZOX1ZBTElEOwogfQogCi0vKgotICogc3RydWN0IG1pZ3JhdGVfdm1hX29wcyAtIG1pZ3JhdGUgb3BlcmF0aW9uIGNhbGxiYWNrCi0gKgotICogQGFsbG9jX2FuZF9jb3B5OiBhbGxvYyBkZXN0aW5hdGlvbiBtZW1vcnkgYW5kIGNvcHkgc291cmNlIG1lbW9yeSB0byBpdAotICogQGZpbmFsaXplX2FuZF9tYXA6IGFsbG93IGNhbGxlciB0byBtYXAgdGhlIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZCBwYWdlcwotICoKLSAqCi0gKiBUaGUgYWxsb2NfYW5kX2NvcHkoKSBjYWxsYmFjayBoYXBwZW5zIG9uY2UgYWxsIHNvdXJjZSBwYWdlcyBoYXZlIGJlZW4gbG9ja2VkLAotICogdW5tYXBwZWQgYW5kIGNoZWNrZWQgKGNoZWNrZWQgd2hldGhlciBwaW5uZWQgb3Igbm90KS4gQWxsIHBhZ2VzIHRoYXQgY2FuIGJlCi0gKiBtaWdyYXRlZCB3aWxsIGhhdmUgYW4gZW50cnkgaW4gdGhlIHNyYyBhcnJheSBzZXQgd2l0aCB0aGUgcGZuIHZhbHVlIG9mIHRoZQotICogcGFnZSBhbmQgd2l0aCB0aGUgTUlHUkFURV9QRk5fVkFMSUQgYW5kIE1JR1JBVEVfUEZOX01JR1JBVEUgZmxhZyBzZXQgKG90aGVyCi0gKiBmbGFncyBtaWdodCBiZSBzZXQgYnV0IHNob3VsZCBiZSBpZ25vcmVkIGJ5IHRoZSBjYWxsYmFjaykuCi0gKgotICogVGhlIGFsbG9jX2FuZF9jb3B5KCkgY2FsbGJhY2sgY2FuIHRoZW4gYWxsb2NhdGUgZGVzdGluYXRpb24gbWVtb3J5IGFuZCBjb3B5Ci0gKiBzb3VyY2UgbWVtb3J5IHRvIGl0IGZvciBhbGwgdGhvc2UgZW50cmllcyAoaWUgd2l0aCBNSUdSQVRFX1BGTl9WQUxJRCBhbmQKLSAqIE1JR1JBVEVfUEZOX01JR1JBVEUgZmxhZyBzZXQpLiBPbmNlIHRoZXNlIGFyZSBhbGxvY2F0ZWQgYW5kIGNvcGllZCwgdGhlCi0gKiBjYWxsYmFjayBtdXN0IHVwZGF0ZSBlYWNoIGNvcnJlc3BvbmRpbmcgZW50cnkgaW4gdGhlIGRzdCBhcnJheSB3aXRoIHRoZSBwZm4KLSAqIHZhbHVlIG9mIHRoZSBkZXN0aW5hdGlvbiBwYWdlIGFuZCB3aXRoIHRoZSBNSUdSQVRFX1BGTl9WQUxJRCBhbmQKLSAqIE1JR1JBVEVfUEZOX0xPQ0tFRCBmbGFncyBzZXQgKGRlc3RpbmF0aW9uIHBhZ2VzIG11c3QgaGF2ZSB0aGVpciBzdHJ1Y3QgcGFnZXMKLSAqIGxvY2tlZCwgdmlhIGxvY2tfcGFnZSgpKS4KLSAqCi0gKiBBdCB0aGlzIHBvaW50IHRoZSBhbGxvY19hbmRfY29weSgpIGNhbGxiYWNrIGlzIGRvbmUgYW5kIHJldHVybnMuCi0gKgotICogTm90ZSB0aGF0IHRoZSBjYWxsYmFjayBkb2VzIG5vdCBoYXZlIHRvIG1pZ3JhdGUgYWxsIHRoZSBwYWdlcyB0aGF0IGFyZQotICogbWFya2VkIHdpdGggTUlHUkFURV9QRk5fTUlHUkFURSBmbGFnIGluIHNyYyBhcnJheSB1bmxlc3MgdGhpcyBpcyBhIG1pZ3JhdGlvbgotICogZnJvbSBkZXZpY2UgbWVtb3J5IHRvIHN5c3RlbSBtZW1vcnkgKGllIHRoZSBNSUdSQVRFX1BGTl9ERVZJQ0UgZmxhZyBpcyBhbHNvCi0gKiBzZXQgaW4gdGhlIHNyYyBhcnJheSBlbnRyeSkuIElmIHRoZSBkZXZpY2UgZHJpdmVyIGNhbm5vdCBtaWdyYXRlIGEgZGV2aWNlCi0gKiBwYWdlIGJhY2sgdG8gc3lzdGVtIG1lbW9yeSwgdGhlbiBpdCBtdXN0IHNldCB0aGUgY29ycmVzcG9uZGluZyBkc3QgYXJyYXkKLSAqIGVudHJ5IHRvIE1JR1JBVEVfUEZOX0VSUk9SLiBUaGlzIHdpbGwgdHJpZ2dlciBhIFNJR0JVUyBpZiBDUFUgdHJpZXMgdG8KLSAqIGFjY2VzcyBhbnkgb2YgdGhlIHZpcnR1YWwgYWRkcmVzc2VzIG9yaWdpbmFsbHkgYmFja2VkIGJ5IHRoaXMgcGFnZS4gQmVjYXVzZQotICogYSBTSUdCVVMgaXMgc3VjaCBhIHNldmVyZSByZXN1bHQgZm9yIHRoZSB1c2Vyc3BhY2UgcHJvY2VzcywgdGhlIGRldmljZQotICogZHJpdmVyIHNob3VsZCBhdm9pZCBzZXR0aW5nIE1JR1JBVEVfUEZOX0VSUk9SIHVubGVzcyBpdCBpcyByZWFsbHkgaW4gYW4KLSAqIHVucmVjb3ZlcmFibGUgc3RhdGUuCi0gKgotICogRm9yIGVtcHR5IGVudHJ5IGluc2lkZSBDUFUgcGFnZSB0YWJsZSAocHRlX25vbmUoKSBvciBwbWRfbm9uZSgpIGlzIHRydWUpIHdlCi0gKiBkbyBzZXQgTUlHUkFURV9QRk5fTUlHUkFURSBmbGFnIGluc2lkZSB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgYXJyYXkgdGh1cwotICogYWxsb3dpbmcgZGV2aWNlIGRyaXZlciB0byBhbGxvY2F0ZSBkZXZpY2UgbWVtb3J5IGZvciB0aG9zZSB1bmJhY2sgdmlydHVhbAotICogYWRkcmVzcy4gRm9yIHRoaXMgdGhlIGRldmljZSBkcml2ZXIgc2ltcGx5IGhhdmUgdG8gYWxsb2NhdGUgZGV2aWNlIG1lbW9yeQotICogYW5kIHByb3Blcmx5IHNldCB0aGUgZGVzdGluYXRpb24gZW50cnkgbGlrZSBmb3IgcmVndWxhciBtaWdyYXRpb24uIE5vdGUgdGhhdAotICogdGhpcyBjYW4gc3RpbGwgZmFpbHMgYW5kIHRodXMgaW5zaWRlIHRoZSBkZXZpY2UgZHJpdmVyIG11c3QgY2hlY2sgaWYgdGhlCi0gKiBtaWdyYXRpb24gd2FzIHN1Y2Nlc3NmdWwgZm9yIHRob3NlIGVudHJ5IGluc2lkZSB0aGUgZmluYWxpemVfYW5kX21hcCgpCi0gKiBjYWxsYmFjayBqdXN0IGxpa2UgZm9yIHJlZ3VsYXIgbWlncmF0aW9uLgotICoKLSAqIFRIRSBhbGxvY19hbmRfY29weSgpIENBTExCQUNLIE1VU1QgTk9UIENIQU5HRSBBTlkgT0YgVEhFIFNSQyBBUlJBWSBFTlRSSUVTCi0gKiBPUiBCQUQgVEhJTkdTIFdJTEwgSEFQUEVOICEKLSAqCi0gKgotICogVGhlIGZpbmFsaXplX2FuZF9tYXAoKSBjYWxsYmFjayBoYXBwZW5zIGFmdGVyIHN0cnVjdCBwYWdlIG1pZ3JhdGlvbiBmcm9tCi0gKiBzb3VyY2UgdG8gZGVzdGluYXRpb24gKGRlc3RpbmF0aW9uIHN0cnVjdCBwYWdlcyBhcmUgdGhlIHN0cnVjdCBwYWdlcyBmb3IgdGhlCi0gKiBtZW1vcnkgYWxsb2NhdGVkIGJ5IHRoZSBhbGxvY19hbmRfY29weSgpIGNhbGxiYWNrKS4gIE1pZ3JhdGlvbiBjYW4gZmFpbCwgYW5kCi0gKiB0aHVzIHRoZSBmaW5hbGl6ZV9hbmRfbWFwKCkgYWxsb3dzIHRoZSBkcml2ZXIgdG8gaW5zcGVjdCB3aGljaCBwYWdlcyB3ZXJlCi0gKiBzdWNjZXNzZnVsbHkgbWlncmF0ZWQsIGFuZCB3aGljaCB3ZXJlIG5vdC4gU3VjY2Vzc2Z1bGx5IG1pZ3JhdGVkIHBhZ2VzIHdpbGwKLSAqIGhhdmUgdGhlIE1JR1JBVEVfUEZOX01JR1JBVEUgZmxhZyBzZXQgZm9yIHRoZWlyIHNyYyBhcnJheSBlbnRyeS4KLSAqCi0gKiBJdCBpcyBzYWZlIHRvIHVwZGF0ZSBkZXZpY2UgcGFnZSB0YWJsZSBmcm9tIHdpdGhpbiB0aGUgZmluYWxpemVfYW5kX21hcCgpCi0gKiBjYWxsYmFjayBiZWNhdXNlIGJvdGggZGVzdGluYXRpb24gYW5kIHNvdXJjZSBwYWdlIGFyZSBzdGlsbCBsb2NrZWQsIGFuZCB0aGUKLSAqIG1tYXBfc2VtIGlzIGhlbGQgaW4gcmVhZCBtb2RlIChoZW5jZSBubyBvbmUgY2FuIHVubWFwIHRoZSByYW5nZSBiZWluZwotICogbWlncmF0ZWQpLgotICoKLSAqIE9uY2UgY2FsbGJhY2sgaXMgZG9uZSBjbGVhbmluZyB1cCB0aGluZ3MgYW5kIHVwZGF0aW5nIGl0cyBwYWdlIHRhYmxlIChpZiBpdAotICogY2hvc2UgdG8gZG8gc28sIHRoaXMgaXMgbm90IGFuIG9ibGlnYXRpb24pIHRoZW4gaXQgcmV0dXJucy4gQXQgdGhpcyBwb2ludCwKLSAqIHRoZSBITU0gY29yZSB3aWxsIGZpbmlzaCB1cCB0aGUgZmluYWwgc3RlcHMsIGFuZCB0aGUgbWlncmF0aW9uIGlzIGNvbXBsZXRlLgotICoKLSAqIFRIRSBmaW5hbGl6ZV9hbmRfbWFwKCkgQ0FMTEJBQ0sgTVVTVCBOT1QgQ0hBTkdFIEFOWSBPRiBUSEUgU1JDIE9SIERTVCBBUlJBWQotICogRU5UUklFUyBPUiBCQUQgVEhJTkdTIFdJTEwgSEFQUEVOICEKLSAqLwotc3RydWN0IG1pZ3JhdGVfdm1hX29wcyB7Ci0Jdm9pZCAoKmFsbG9jX2FuZF9jb3B5KShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsCi0JCQkgICAgICAgdW5zaWduZWQgbG9uZyAqZHN0LAotCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgICAgICAgdm9pZCAqcHJpdmF0ZSk7Ci0Jdm9pZCAoKmZpbmFsaXplX2FuZF9tYXApKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAotCQkJCSBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsCi0JCQkJIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmRzdCwKLQkJCQkgdW5zaWduZWQgbG9uZyBzdGFydCwKLQkJCQkgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkJIHZvaWQgKnByaXZhdGUpOworc3RydWN0IG1pZ3JhdGVfdm1hIHsKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QJKnZtYTsKKwkvKgorCSAqIEJvdGggc3JjIGFuZCBkc3QgYXJyYXkgbXVzdCBiZSBiaWcgZW5vdWdoIGZvcgorCSAqIChlbmQgLSBzdGFydCkgPj4gUEFHRV9TSElGVCBlbnRyaWVzLgorCSAqCisJICogVGhlIHNyYyBhcnJheSBtdXN0IG5vdCBiZSBtb2RpZmllZCBieSB0aGUgY2FsbGVyIGFmdGVyCisJICogbWlncmF0ZV92bWFfc2V0dXAoKSwgYW5kIG11c3Qgbm90IGNoYW5nZSB0aGUgZHN0IGFycmF5IGFmdGVyCisJICogbWlncmF0ZV92bWFfcGFnZXMoKSByZXR1cm5zLgorCSAqLworCXVuc2lnbmVkIGxvbmcJCSpkc3Q7CisJdW5zaWduZWQgbG9uZwkJKnNyYzsKKwl1bnNpZ25lZCBsb25nCQljcGFnZXM7CisJdW5zaWduZWQgbG9uZwkJbnBhZ2VzOworCXVuc2lnbmVkIGxvbmcJCXN0YXJ0OworCXVuc2lnbmVkIGxvbmcJCWVuZDsKIH07CiAKLSNpZiBkZWZpbmVkKENPTkZJR19NSUdSQVRFX1ZNQV9IRUxQRVIpCi1pbnQgbWlncmF0ZV92bWEoY29uc3Qgc3RydWN0IG1pZ3JhdGVfdm1hX29wcyAqb3BzLAotCQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJdW5zaWduZWQgbG9uZyBzdGFydCwKLQkJdW5zaWduZWQgbG9uZyBlbmQsCi0JCXVuc2lnbmVkIGxvbmcgKnNyYywKLQkJdW5zaWduZWQgbG9uZyAqZHN0LAotCQl2b2lkICpwcml2YXRlKTsKLSNlbHNlCi1zdGF0aWMgaW5saW5lIGludCBtaWdyYXRlX3ZtYShjb25zdCBzdHJ1Y3QgbWlncmF0ZV92bWFfb3BzICpvcHMsCi0JCQkgICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgKnNyYywKLQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgKmRzdCwKLQkJCSAgICAgIHZvaWQgKnByaXZhdGUpCi17Ci0JcmV0dXJuIC1FSU5WQUw7Ci19Ci0jZW5kaWYgLyogSVNfRU5BQkxFRChDT05GSUdfTUlHUkFURV9WTUFfSEVMUEVSKSAqLworaW50IG1pZ3JhdGVfdm1hX3NldHVwKHN0cnVjdCBtaWdyYXRlX3ZtYSAqYXJncyk7Cit2b2lkIG1pZ3JhdGVfdm1hX3BhZ2VzKHN0cnVjdCBtaWdyYXRlX3ZtYSAqbWlncmF0ZSk7Cit2b2lkIG1pZ3JhdGVfdm1hX2ZpbmFsaXplKHN0cnVjdCBtaWdyYXRlX3ZtYSAqbWlncmF0ZSk7CiAKICNlbmRpZiAvKiBDT05GSUdfTUlHUkFUSU9OICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaAppbmRleCBmMzc3M2U4Li5jYzFjMjMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oCkBAIC0zMjgsNiArMzI4LDcgQEAgZW51bSBtbHg1X2V2ZW50IHsKIAlNTFg1X0VWRU5UX1RZUEVfR1BJT19FVkVOVAkgICA9IDB4MTUsCiAJTUxYNV9FVkVOVF9UWVBFX1BPUlRfTU9EVUxFX0VWRU5UICA9IDB4MTYsCiAJTUxYNV9FVkVOVF9UWVBFX1RFTVBfV0FSTl9FVkVOVCAgICA9IDB4MTcsCisJTUxYNV9FVkVOVF9UWVBFX1hSUV9FUlJPUgkgICA9IDB4MTgsCiAJTUxYNV9FVkVOVF9UWVBFX1JFTU9URV9DT05GSUcJICAgPSAweDE5LAogCU1MWDVfRVZFTlRfVFlQRV9HRU5FUkFMX0VWRU5UCSAgID0gMHgyMiwKIAlNTFg1X0VWRU5UX1RZUEVfTU9OSVRPUl9DT1VOVEVSICAgID0gMHgyNCwKQEAgLTM0NSw2ICszNDYsNyBAQCBlbnVtIG1seDVfZXZlbnQgewogCU1MWDVfRVZFTlRfVFlQRV9FU1dfRlVOQ1RJT05TX0NIQU5HRUQgPSAweGUsCiAKIAlNTFg1X0VWRU5UX1RZUEVfRENUX0RSQUlORUQgICAgICAgID0gMHgxYywKKwlNTFg1X0VWRU5UX1RZUEVfRENUX0tFWV9WSU9MQVRJT04gID0gMHgxZCwKIAogCU1MWDVfRVZFTlRfVFlQRV9GUEdBX0VSUk9SICAgICAgICAgPSAweDIwLAogCU1MWDVfRVZFTlRfVFlQRV9GUEdBX1FQX0VSUk9SICAgICAgPSAweDIxLApAQCAtNTg0LDYgKzU4NiwxMiBAQCBzdHJ1Y3QgbWx4NV9lcWVfY3FfZXJyIHsKIAl1OAlzeW5kcm9tZTsKIH07CiAKK3N0cnVjdCBtbHg1X2VxZV94cnFfZXJyIHsKKwlfX2JlMzIJcmVzZXJ2ZWQxWzVdOworCV9fYmUzMgl0eXBlX3hycW47CisJX19iZTMyCXJlc2VydmVkMjsKK307CisKIHN0cnVjdCBtbHg1X2VxZV9wb3J0X3N0YXRlIHsKIAl1OAlyZXNlcnZlZDBbOF07CiAJdTgJcG9ydDsKQEAgLTY5OCw2ICs3MDYsNyBAQCB1bmlvbiBldl9kYXRhIHsKIAlzdHJ1Y3QgbWx4NV9lcWVfcHBzCQlwcHM7CiAJc3RydWN0IG1seDVfZXFlX2RjdCAgICAgICAgICAgICBkY3Q7CiAJc3RydWN0IG1seDVfZXFlX3RlbXBfd2FybmluZwl0ZW1wX3dhcm5pbmc7CisJc3RydWN0IG1seDVfZXFlX3hycV9lcnIJCXhycV9lcnI7CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbWx4NV9lcWUgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oCmluZGV4IDAzMzRjYTkuLmNjMjkyMjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAgLTgwNSw2ICs4MDUsMjQgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldF9jb21wb3VuZF9vcmRlcihzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IG9yZGVyKQogCXBhZ2VbMV0uY29tcG91bmRfb3JkZXIgPSBvcmRlcjsKIH0KIAorLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIGluIHRoaXMgcG90ZW50aWFsbHkgY29tcG91bmQgcGFnZS4gKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBjb21wb3VuZF9ucihzdHJ1Y3QgcGFnZSAqcGFnZSkKK3sKKwlyZXR1cm4gMVVMIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpOworfQorCisvKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhpcyBwb3RlbnRpYWxseSBjb21wb3VuZCBwYWdlLiAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZShzdHJ1Y3QgcGFnZSAqcGFnZSkKK3sKKwlyZXR1cm4gUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpOworfQorCisvKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYml0cyBuZWVkZWQgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gYSBwYWdlICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBwYWdlX3NoaWZ0KHN0cnVjdCBwYWdlICpwYWdlKQoreworCXJldHVybiBQQUdFX1NISUZUICsgY29tcG91bmRfb3JkZXIocGFnZSk7Cit9CisKIHZvaWQgZnJlZV9jb21wb3VuZF9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKTsKIAogI2lmZGVmIENPTkZJR19NTVUKQEAgLTEwNTcsOCArMTA3NSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfdXNlcl9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKQogCXB1dF9wYWdlKHBhZ2UpOwogfQogCi12b2lkIHB1dF91c2VyX3BhZ2VzX2RpcnR5KHN0cnVjdCBwYWdlICoqcGFnZXMsIHVuc2lnbmVkIGxvbmcgbnBhZ2VzKTsKLXZvaWQgcHV0X3VzZXJfcGFnZXNfZGlydHlfbG9jayhzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1bnNpZ25lZCBsb25nIG5wYWdlcyk7Cit2b2lkIHB1dF91c2VyX3BhZ2VzX2RpcnR5X2xvY2soc3RydWN0IHBhZ2UgKipwYWdlcywgdW5zaWduZWQgbG9uZyBucGFnZXMsCisJCQkgICAgICAgYm9vbCBtYWtlX2RpcnR5KTsKKwogdm9pZCBwdXRfdXNlcl9wYWdlcyhzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1bnNpZ25lZCBsb25nIG5wYWdlcyk7CiAKICNpZiBkZWZpbmVkKENPTkZJR19TUEFSU0VNRU0pICYmICFkZWZpbmVkKENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUCkKQEAgLTE0MDUsNyArMTQyNCwxMSBAQCBleHRlcm4gdm9pZCBwYWdlZmF1bHRfb3V0X29mX21lbW9yeSh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgc2hvd19mcmVlX2FyZWFzKHVuc2lnbmVkIGludCBmbGFncywgbm9kZW1hc2tfdCAqbm9kZW1hc2spOwogCisjaWZkZWYgQ09ORklHX01NVQogZXh0ZXJuIGJvb2wgY2FuX2RvX21sb2NrKHZvaWQpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgYm9vbCBjYW5fZG9fbWxvY2sodm9pZCkgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogZXh0ZXJuIGludCB1c2VyX3NobV9sb2NrKHNpemVfdCwgc3RydWN0IHVzZXJfc3RydWN0ICopOwogZXh0ZXJuIHZvaWQgdXNlcl9zaG1fdW5sb2NrKHNpemVfdCwgc3RydWN0IHVzZXJfc3RydWN0ICopOwogCkBAIC0xNDMwLDU0ICsxNDUzLDggQEAgdm9pZCB6YXBfcGFnZV9yYW5nZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAogdm9pZCB1bm1hcF92bWFzKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqc3RhcnRfdm1hLAogCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7CiAKLS8qKgotICogbW1fd2FsayAtIGNhbGxiYWNrcyBmb3Igd2Fsa19wYWdlX3JhbmdlCi0gKiBAcHVkX2VudHJ5OiBpZiBzZXQsIGNhbGxlZCBmb3IgZWFjaCBub24tZW1wdHkgUFVEICgybmQtbGV2ZWwpIGVudHJ5Ci0gKgkgICAgICAgdGhpcyBoYW5kbGVyIHNob3VsZCBvbmx5IGhhbmRsZSBwdWRfdHJhbnNfaHVnZSgpIHB1ZHMuCi0gKgkgICAgICAgdGhlIHBtZF9lbnRyeSBvciBwdGVfZW50cnkgY2FsbGJhY2tzIHdpbGwgYmUgdXNlZCBmb3IKLSAqCSAgICAgICByZWd1bGFyIFBVRHMuCi0gKiBAcG1kX2VudHJ5OiBpZiBzZXQsIGNhbGxlZCBmb3IgZWFjaCBub24tZW1wdHkgUE1EICgzcmQtbGV2ZWwpIGVudHJ5Ci0gKgkgICAgICAgdGhpcyBoYW5kbGVyIGlzIHJlcXVpcmVkIHRvIGJlIGFibGUgdG8gaGFuZGxlCi0gKgkgICAgICAgcG1kX3RyYW5zX2h1Z2UoKSBwbWRzLiAgVGhleSBtYXkgc2ltcGx5IGNob29zZSB0bwotICoJICAgICAgIHNwbGl0X2h1Z2VfcGFnZSgpIGluc3RlYWQgb2YgaGFuZGxpbmcgaXQgZXhwbGljaXRseS4KLSAqIEBwdGVfZW50cnk6IGlmIHNldCwgY2FsbGVkIGZvciBlYWNoIG5vbi1lbXB0eSBQVEUgKDR0aC1sZXZlbCkgZW50cnkKLSAqIEBwdGVfaG9sZTogaWYgc2V0LCBjYWxsZWQgZm9yIGVhY2ggaG9sZSBhdCBhbGwgbGV2ZWxzCi0gKiBAaHVnZXRsYl9lbnRyeTogaWYgc2V0LCBjYWxsZWQgZm9yIGVhY2ggaHVnZXRsYiBlbnRyeQotICogQHRlc3Rfd2FsazogY2FsbGVyIHNwZWNpZmljIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGRldGVybWluZSB3aGV0aGVyCi0gKiAgICAgICAgICAgICB3ZSB3YWxrIG92ZXIgdGhlIGN1cnJlbnQgdm1hIG9yIG5vdC4gUmV0dXJuaW5nIDAKLSAqICAgICAgICAgICAgIHZhbHVlIG1lYW5zICJkbyBwYWdlIHRhYmxlIHdhbGsgb3ZlciB0aGUgY3VycmVudCB2bWEsIgotICogICAgICAgICAgICAgYW5kIGEgbmVnYXRpdmUgb25lIG1lYW5zICJhYm9ydCBjdXJyZW50IHBhZ2UgdGFibGUgd2FsawotICogICAgICAgICAgICAgcmlnaHQgbm93LiIgMSBtZWFucyAic2tpcCB0aGUgY3VycmVudCB2bWEuIgotICogQG1tOiAgICAgICAgbW1fc3RydWN0IHJlcHJlc2VudGluZyB0aGUgdGFyZ2V0IHByb2Nlc3Mgb2YgcGFnZSB0YWJsZSB3YWxrCi0gKiBAdm1hOiAgICAgICB2bWEgY3VycmVudGx5IHdhbGtlZCAoTlVMTCBpZiB3YWxraW5nIG91dHNpZGUgdm1hcykKLSAqIEBwcml2YXRlOiAgIHByaXZhdGUgZGF0YSBmb3IgY2FsbGJhY2tzJyB1c2FnZQotICoKLSAqIChzZWUgdGhlIGNvbW1lbnQgb24gd2Fsa19wYWdlX3JhbmdlKCkgZm9yIG1vcmUgZGV0YWlscykKLSAqLwotc3RydWN0IG1tX3dhbGsgewotCWludCAoKnB1ZF9lbnRyeSkocHVkX3QgKnB1ZCwgdW5zaWduZWQgbG9uZyBhZGRyLAotCQkJIHVuc2lnbmVkIGxvbmcgbmV4dCwgc3RydWN0IG1tX3dhbGsgKndhbGspOwotCWludCAoKnBtZF9lbnRyeSkocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLAotCQkJIHVuc2lnbmVkIGxvbmcgbmV4dCwgc3RydWN0IG1tX3dhbGsgKndhbGspOwotCWludCAoKnB0ZV9lbnRyeSkocHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBhZGRyLAotCQkJIHVuc2lnbmVkIGxvbmcgbmV4dCwgc3RydWN0IG1tX3dhbGsgKndhbGspOwotCWludCAoKnB0ZV9ob2xlKSh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbmV4dCwKLQkJCXN0cnVjdCBtbV93YWxrICp3YWxrKTsKLQlpbnQgKCpodWdldGxiX2VudHJ5KShwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIGhtYXNrLAotCQkJICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbmV4dCwKLQkJCSAgICAgc3RydWN0IG1tX3dhbGsgKndhbGspOwotCWludCAoKnRlc3Rfd2FsaykodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIG5leHQsCi0JCQlzdHJ1Y3QgbW1fd2FsayAqd2Fsayk7Ci0Jc3RydWN0IG1tX3N0cnVjdCAqbW07Ci0Jc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7Ci0Jdm9pZCAqcHJpdmF0ZTsKLX07Ci0KIHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2U7CiAKLWludCB3YWxrX3BhZ2VfcmFuZ2UodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJc3RydWN0IG1tX3dhbGsgKndhbGspOwotaW50IHdhbGtfcGFnZV92bWEoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCBtbV93YWxrICp3YWxrKTsKIHZvaWQgZnJlZV9wZ2RfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQl1bnNpZ25lZCBsb25nIGVuZCwgdW5zaWduZWQgbG9uZyBmbG9vciwgdW5zaWduZWQgbG9uZyBjZWlsaW5nKTsKIGludCBjb3B5X3BhZ2VfcmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAqZHN0LCBzdHJ1Y3QgbW1fc3RydWN0ICpzcmMsCkBAIC0xOTcyLDcgKzE5NDksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGd0YWJsZV9pbml0KHZvaWQpCiAJcGd0YWJsZV9jYWNoZV9pbml0KCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwZ3RhYmxlX3BhZ2VfY3RvcihzdHJ1Y3QgcGFnZSAqcGFnZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBwZ3RhYmxlX3B0ZV9wYWdlX2N0b3Ioc3RydWN0IHBhZ2UgKnBhZ2UpCiB7CiAJaWYgKCFwdGxvY2tfaW5pdChwYWdlKSkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMTk4MSw3ICsxOTU4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHBndGFibGVfcGFnZV9jdG9yKHN0cnVjdCBwYWdlICpwYWdlKQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgcGd0YWJsZV9wYWdlX2R0b3Ioc3RydWN0IHBhZ2UgKnBhZ2UpCitzdGF0aWMgaW5saW5lIHZvaWQgcGd0YWJsZV9wdGVfcGFnZV9kdG9yKHN0cnVjdCBwYWdlICpwYWdlKQogewogCXB0bG9ja19mcmVlKHBhZ2UpOwogCV9fQ2xlYXJQYWdlVGFibGUocGFnZSk7CkBAIC0yMzUxLDYgKzIzMjgsOCBAQCBleHRlcm4gaW50IGluc3RhbGxfc3BlY2lhbF9tYXBwaW5nKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJCSAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBsZW4sCiAJCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncywgc3RydWN0IHBhZ2UgKipwYWdlcyk7CiAKK3Vuc2lnbmVkIGxvbmcgcmFuZG9taXplX3N0YWNrX3RvcCh1bnNpZ25lZCBsb25nIHN0YWNrX3RvcCk7CisKIGV4dGVybiB1bnNpZ25lZCBsb25nIGdldF91bm1hcHBlZF9hcmVhKHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOwogCiBleHRlcm4gdW5zaWduZWQgbG9uZyBtbWFwX3JlZ2lvbihzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBhZGRyLApAQCAtMjYxNCw2ICsyNTkzLDcgQEAgc3RydWN0IHBhZ2UgKmZvbGxvd19wYWdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAjZGVmaW5lIEZPTExfQ09XCTB4NDAwMAkvKiBpbnRlcm5hbCBHVVAgZmxhZyAqLwogI2RlZmluZSBGT0xMX0FOT04JMHg4MDAwCS8qIGRvbid0IGRvIGZpbGUgbWFwcGluZ3MgKi8KICNkZWZpbmUgRk9MTF9MT05HVEVSTQkweDEwMDAwCS8qIG1hcHBpbmcgbGlmZXRpbWUgaXMgaW5kZWZpbml0ZTogc2VlIGJlbG93ICovCisjZGVmaW5lIEZPTExfU1BMSVRfUE1ECTB4MjAwMDAJLyogc3BsaXQgaHVnZSBwbWQgYmVmb3JlIHJldHVybmluZyAqLwogCiAvKgogICogTk9URSBvbiBGT0xMX0xPTkdURVJNOgpAQCAtMjg5MSw1ICsyODcxLDEyIEBAIHZvaWQgX19pbml0IHNldHVwX25yX25vZGVfaWRzKHZvaWQpOwogc3RhdGljIGlubGluZSB2b2lkIHNldHVwX25yX25vZGVfaWRzKHZvaWQpIHt9CiAjZW5kaWYKIAorZXh0ZXJuIGludCBtZW1jbXBfcGFnZXMoc3RydWN0IHBhZ2UgKnBhZ2UxLCBzdHJ1Y3QgcGFnZSAqcGFnZTIpOworCitzdGF0aWMgaW5saW5lIGludCBwYWdlc19pZGVudGljYWwoc3RydWN0IHBhZ2UgKnBhZ2UxLCBzdHJ1Y3QgcGFnZSAqcGFnZTIpCit7CisJcmV0dXJuICFtZW1jbXBfcGFnZXMocGFnZTEsIHBhZ2UyKTsKK30KKwogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KICNlbmRpZiAvKiBfTElOVVhfTU1fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oCmluZGV4IDZhN2ExMDgzLi4yMjIyZmE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oCkBAIC0yNSw3ICsyNSw2IEBACiAKIHN0cnVjdCBhZGRyZXNzX3NwYWNlOwogc3RydWN0IG1lbV9jZ3JvdXA7Ci1zdHJ1Y3QgaG1tOwogCiAvKgogICogRWFjaCBwaHlzaWNhbCBwYWdlIGluIHRoZSBzeXN0ZW0gaGFzIGEgc3RydWN0IHBhZ2UgYXNzb2NpYXRlZCB3aXRoCkBAIC0xMzksNiArMTM4LDcgQEAgc3RydWN0IHBhZ2UgewogCQlzdHJ1Y3QgewkvKiBTZWNvbmQgdGFpbCBwYWdlIG9mIGNvbXBvdW5kIHBhZ2UgKi8KIAkJCXVuc2lnbmVkIGxvbmcgX2NvbXBvdW5kX3BhZF8xOwkvKiBjb21wb3VuZF9oZWFkICovCiAJCQl1bnNpZ25lZCBsb25nIF9jb21wb3VuZF9wYWRfMjsKKwkJCS8qIEZvciBib3RoIGdsb2JhbCBhbmQgbWVtY2cgKi8KIAkJCXN0cnVjdCBsaXN0X2hlYWQgZGVmZXJyZWRfbGlzdDsKIAkJfTsKIAkJc3RydWN0IHsJLyogUGFnZSB0YWJsZSBwYWdlcyAqLwpAQCAtMzgzLDYgKzM4MywxNiBAQCBzdHJ1Y3QgbW1fc3RydWN0IHsKIAkJdW5zaWduZWQgbG9uZyBoaWdoZXN0X3ZtX2VuZDsJLyogaGlnaGVzdCB2bWEgZW5kIGFkZHJlc3MgKi8KIAkJcGdkX3QgKiBwZ2Q7CiAKKyNpZmRlZiBDT05GSUdfTUVNQkFSUklFUgorCQkvKioKKwkJICogQG1lbWJhcnJpZXJfc3RhdGU6IEZsYWdzIGNvbnRyb2xsaW5nIG1lbWJhcnJpZXIgYmVoYXZpb3IuCisJCSAqCisJCSAqIFRoaXMgZmllbGQgaXMgY2xvc2UgdG8gQHBnZCB0byBob3BlZnVsbHkgZml0IGluIHRoZSBzYW1lCisJCSAqIGNhY2hlLWxpbmUsIHdoaWNoIG5lZWRzIHRvIGJlIHRvdWNoZWQgYnkgc3dpdGNoX21tKCkuCisJCSAqLworCQlhdG9taWNfdCBtZW1iYXJyaWVyX3N0YXRlOworI2VuZGlmCisKIAkJLyoqCiAJCSAqIEBtbV91c2VyczogVGhlIG51bWJlciBvZiB1c2VycyBpbmNsdWRpbmcgdXNlcnNwYWNlLgogCQkgKgpAQCAtNDUyLDkgKzQ2Miw3IEBAIHN0cnVjdCBtbV9zdHJ1Y3QgewogCQl1bnNpZ25lZCBsb25nIGZsYWdzOyAvKiBNdXN0IHVzZSBhdG9taWMgYml0b3BzIHRvIGFjY2VzcyAqLwogCiAJCXN0cnVjdCBjb3JlX3N0YXRlICpjb3JlX3N0YXRlOyAvKiBjb3JlZHVtcGluZyBzdXBwb3J0ICovCi0jaWZkZWYgQ09ORklHX01FTUJBUlJJRVIKLQkJYXRvbWljX3QgbWVtYmFycmllcl9zdGF0ZTsKLSNlbmRpZgorCiAjaWZkZWYgQ09ORklHX0FJTwogCQlzcGlubG9ja190CQkJaW9jdHhfbG9jazsKIAkJc3RydWN0IGtpb2N0eF90YWJsZSBfX3JjdQkqaW9jdHhfdGFibGU7CkBAIC01MTEsMTEgKzUxOSw2IEBAIHN0cnVjdCBtbV9zdHJ1Y3QgewogCQlhdG9taWNfbG9uZ190IGh1Z2V0bGJfdXNhZ2U7CiAjZW5kaWYKIAkJc3RydWN0IHdvcmtfc3RydWN0IGFzeW5jX3B1dF93b3JrOwotCi0jaWZkZWYgQ09ORklHX0hNTV9NSVJST1IKLQkJLyogSE1NIG5lZWRzIHRvIHRyYWNrIGEgZmV3IHRoaW5ncyBwZXIgbW0gKi8KLQkJc3RydWN0IGhtbSAqaG1tOwotI2VuZGlmCiAJfSBfX3JhbmRvbWl6ZV9sYXlvdXQ7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbV90eXBlc190YXNrLmggYi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzX3Rhc2suaAppbmRleCBkNzAxNmRjLi5jMWJjNjczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tX3R5cGVzX3Rhc2suaAorKysgYi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzX3Rhc2suaApAQCAtMzYsNiArMzYsMTAgQEAgc3RydWN0IHZtYWNhY2hlIHsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYXNbVk1BQ0FDSEVfU0laRV07CiB9OwogCisvKgorICogV2hlbiB1cGRhdGluZyB0aGlzLCBwbGVhc2UgYWxzbyB1cGRhdGUgc3RydWN0IHJlc2lkZW50X3BhZ2VfdHlwZXNbXSBpbgorICoga2VybmVsL2ZvcmsuYworICovCiBlbnVtIHsKIAlNTV9GSUxFUEFHRVMsCS8qIFJlc2lkZW50IGZpbGUgbWFwcGluZyBwYWdlcyAqLwogCU1NX0FOT05QQUdFUywJLyogUmVzaWRlbnQgYW5vbnltb3VzIHBhZ2VzICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tYy9ob3N0LmggYi9pbmNsdWRlL2xpbnV4L21tYy9ob3N0LmgKaW5kZXggNDcwNGI3NzIuLmJhNzAzMzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW1jL2hvc3QuaAorKysgYi9pbmNsdWRlL2xpbnV4L21tYy9ob3N0LmgKQEAgLTM2OCw2ICszNjgsNyBAQCBzdHJ1Y3QgbW1jX2hvc3QgewogI2RlZmluZSBNTUNfQ0FQMl9DUUUJCSgxIDw8IDIzKQkvKiBIYXMgZU1NQyBjb21tYW5kIHF1ZXVlIGVuZ2luZSAqLwogI2RlZmluZSBNTUNfQ0FQMl9DUUVfRENNRAkoMSA8PCAyNCkJLyogQ1FFIGNhbiBpc3N1ZSBhIGRpcmVjdCBjb21tYW5kICovCiAjZGVmaW5lIE1NQ19DQVAyX0FWT0lEXzNfM1YJKDEgPDwgMjUpCS8qIEhvc3QgbXVzdCBuZWdvdGlhdGUgZG93biBmcm9tIDMuM1YgKi8KKyNkZWZpbmUgTU1DX0NBUDJfTUVSR0VfQ0FQQUJMRQkoMSA8PCAyNikJLyogSG9zdCBjYW4gbWVyZ2UgYSBzZWdtZW50IG92ZXIgdGhlIHNlZ21lbnQgc2l6ZSAqLwogCiAJaW50CQkJZml4ZWRfZHJ2X3R5cGU7CS8qIGZpeGVkIGRyaXZlciB0eXBlIGZvciBub24tcmVtb3ZhYmxlIG1lZGlhICovCiAKQEAgLTM5Nyw2ICszOTgsNyBAQCBzdHJ1Y3QgbW1jX2hvc3QgewogCXVuc2lnbmVkIGludAkJcmV0dW5lX3BhdXNlZDoxOyAvKiByZS10dW5pbmcgaXMgdGVtcG9yYXJpbHkgZGlzYWJsZWQgKi8KIAl1bnNpZ25lZCBpbnQJCXVzZV9ibGtfbXE6MTsJLyogdXNlIGJsay1tcSAqLwogCXVuc2lnbmVkIGludAkJcmV0dW5lX2NyY19kaXNhYmxlOjE7IC8qIGRvbid0IHRyaWdnZXIgcmV0dW5lIHVwb24gY3JjICovCisJdW5zaWduZWQgaW50CQljYW5fZG1hX21hcF9tZXJnZToxOyAvKiBtZXJnaW5nIGNhbiBiZSB1c2VkICovCiAKIAlpbnQJCQlyZXNjYW5fZGlzYWJsZTsJLyogZGlzYWJsZSBjYXJkIGRldGVjdGlvbiAqLwogCWludAkJCXJlc2Nhbl9lbnRlcmVkOwkvKiB1c2VkIHdpdGggbm9ucmVtb3ZhYmxlIGRldmljZXMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW11X25vdGlmaWVyLmggYi9pbmNsdWRlL2xpbnV4L21tdV9ub3RpZmllci5oCmluZGV4IGI2YzAwNGIuLjFiZDhlNmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW11X25vdGlmaWVyLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbXVfbm90aWZpZXIuaApAQCAtNDIsNiArNDIsMTAgQEAgZW51bSBtbXVfbm90aWZpZXJfZXZlbnQgewogCiAjaWZkZWYgQ09ORklHX01NVV9OT1RJRklFUgogCisjaWZkZWYgQ09ORklHX0xPQ0tERVAKK2V4dGVybiBzdHJ1Y3QgbG9ja2RlcF9tYXAgX19tbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydF9tYXA7CisjZW5kaWYKKwogLyoKICAqIFRoZSBtbXUgbm90aWZpZXJfbW0gc3RydWN0dXJlIGlzIGFsbG9jYXRlZCBhbmQgaW5zdGFsbGVkIGluCiAgKiBtbS0+bW11X25vdGlmaWVyX21tIGluc2lkZSB0aGUgbW1fdGFrZV9hbGxfbG9ja3MoKSBwcm90ZWN0ZWQKQEAgLTIxMSw2ICsyMTUsMTkgQEAgc3RydWN0IG1tdV9ub3RpZmllcl9vcHMgewogCSAqLwogCXZvaWQgKCppbnZhbGlkYXRlX3JhbmdlKShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQkJIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKKworCS8qCisJICogVGhlc2UgY2FsbGJhY2tzIGFyZSB1c2VkIHdpdGggdGhlIGdldC9wdXQgaW50ZXJmYWNlIHRvIG1hbmFnZSB0aGUKKwkgKiBsaWZldGltZSBvZiB0aGUgbW11X25vdGlmaWVyIG1lbW9yeS4gYWxsb2Nfbm90aWZpZXIoKSByZXR1cm5zIGEgbmV3CisJICogbm90aWZpZXIgZm9yIHVzZSB3aXRoIHRoZSBtbS4KKwkgKgorCSAqIGZyZWVfbm90aWZpZXIoKSBpcyBvbmx5IGNhbGxlZCBhZnRlciB0aGUgbW11X25vdGlmaWVyIGhhcyBiZWVuCisJICogZnVsbHkgcHV0LCBjYWxscyB0byBhbnkgb3BzIGNhbGxiYWNrIGFyZSBwcmV2ZW50ZWQgYW5kIG5vIG9wcworCSAqIGNhbGxiYWNrcyBhcmUgY3VycmVudGx5IHJ1bm5pbmcuIEl0IGlzIGNhbGxlZCBmcm9tIGEgU1JDVSBjYWxsYmFjaworCSAqIGFuZCBjYW5ub3Qgc2xlZXAuCisJICovCisJc3RydWN0IG1tdV9ub3RpZmllciAqKCphbGxvY19ub3RpZmllcikoc3RydWN0IG1tX3N0cnVjdCAqbW0pOworCXZvaWQgKCpmcmVlX25vdGlmaWVyKShzdHJ1Y3QgbW11X25vdGlmaWVyICptbik7CiB9OwogCiAvKgpAQCAtMjI3LDYgKzI0NCw5IEBAIHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzIHsKIHN0cnVjdCBtbXVfbm90aWZpZXIgewogCXN0cnVjdCBobGlzdF9ub2RlIGhsaXN0OwogCWNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzICpvcHM7CisJc3RydWN0IG1tX3N0cnVjdCAqbW07CisJc3RydWN0IHJjdV9oZWFkIHJjdTsKKwl1bnNpZ25lZCBpbnQgdXNlcnM7CiB9OwogCiBzdGF0aWMgaW5saW5lIGludCBtbV9oYXNfbm90aWZpZXJzKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQpAQCAtMjM0LDE0ICsyNTQsMjcgQEAgc3RhdGljIGlubGluZSBpbnQgbW1faGFzX25vdGlmaWVycyhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIAlyZXR1cm4gdW5saWtlbHkobW0tPm1tdV9ub3RpZmllcl9tbSk7CiB9CiAKK3N0cnVjdCBtbXVfbm90aWZpZXIgKm1tdV9ub3RpZmllcl9nZXRfbG9ja2VkKGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzICpvcHMsCisJCQkJCSAgICAgc3RydWN0IG1tX3N0cnVjdCAqbW0pOworc3RhdGljIGlubGluZSBzdHJ1Y3QgbW11X25vdGlmaWVyICoKK21tdV9ub3RpZmllcl9nZXQoY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9vcHMgKm9wcywgc3RydWN0IG1tX3N0cnVjdCAqbW0pCit7CisJc3RydWN0IG1tdV9ub3RpZmllciAqcmV0OworCisJZG93bl93cml0ZSgmbW0tPm1tYXBfc2VtKTsKKwlyZXQgPSBtbXVfbm90aWZpZXJfZ2V0X2xvY2tlZChvcHMsIG1tKTsKKwl1cF93cml0ZSgmbW0tPm1tYXBfc2VtKTsKKwlyZXR1cm4gcmV0OworfQordm9pZCBtbXVfbm90aWZpZXJfcHV0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uKTsKK3ZvaWQgbW11X25vdGlmaWVyX3N5bmNocm9uaXplKHZvaWQpOworCiBleHRlcm4gaW50IG1tdV9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAkJCQkgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwogZXh0ZXJuIGludCBfX21tdV9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAkJCQkgICBzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiBleHRlcm4gdm9pZCBtbXVfbm90aWZpZXJfdW5yZWdpc3RlcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAkJCQkgICAgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwotZXh0ZXJuIHZvaWQgbW11X25vdGlmaWVyX3VucmVnaXN0ZXJfbm9fcmVsZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKLQkJCQkJICAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKIGV4dGVybiB2b2lkIF9fbW11X25vdGlmaWVyX21tX2Rlc3Ryb3koc3RydWN0IG1tX3N0cnVjdCAqbW0pOwogZXh0ZXJuIHZvaWQgX19tbXVfbm90aWZpZXJfcmVsZWFzZShzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiBleHRlcm4gaW50IF9fbW11X25vdGlmaWVyX2NsZWFyX2ZsdXNoX3lvdW5nKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLApAQCAtMzEwLDI1ICszNDMsMzYgQEAgc3RhdGljIGlubGluZSB2b2lkIG1tdV9ub3RpZmllcl9jaGFuZ2VfcHRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogc3RhdGljIGlubGluZSB2b2lkCiBtbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlICpyYW5nZSkKIHsKKwltaWdodF9zbGVlcCgpOworCisJbG9ja19tYXBfYWNxdWlyZSgmX19tbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydF9tYXApOwogCWlmIChtbV9oYXNfbm90aWZpZXJzKHJhbmdlLT5tbSkpIHsKIAkJcmFuZ2UtPmZsYWdzIHw9IE1NVV9OT1RJRklFUl9SQU5HRV9CTE9DS0FCTEU7CiAJCV9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQocmFuZ2UpOwogCX0KKwlsb2NrX21hcF9yZWxlYXNlKCZfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0X21hcCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50CiBtbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydF9ub25ibG9jayhzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlICpyYW5nZSkKIHsKKwlpbnQgcmV0ID0gMDsKKworCWxvY2tfbWFwX2FjcXVpcmUoJl9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnRfbWFwKTsKIAlpZiAobW1faGFzX25vdGlmaWVycyhyYW5nZS0+bW0pKSB7CiAJCXJhbmdlLT5mbGFncyAmPSB+TU1VX05PVElGSUVSX1JBTkdFX0JMT0NLQUJMRTsKLQkJcmV0dXJuIF9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQocmFuZ2UpOworCQlyZXQgPSBfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHJhbmdlKTsKIAl9Ci0JcmV0dXJuIDA7CisJbG9ja19tYXBfcmVsZWFzZSgmX19tbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydF9tYXApOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAogbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlKQogeworCWlmIChtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKHJhbmdlKSkKKwkJbWlnaHRfc2xlZXAoKTsKKwogCWlmIChtbV9oYXNfbm90aWZpZXJzKHJhbmdlLT5tbSkpCiAJCV9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKHJhbmdlLCBmYWxzZSk7CiB9CkBAIC00ODIsOSArNTI2LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIG1tdV9ub3RpZmllcl9yYW5nZV9pbml0KHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAogCXNldF9wdGVfYXQoX19fbW0sIF9fX2FkZHJlc3MsIF9fcHRlcCwgX19fcHRlKTsJCQlcCiB9KQogCi1leHRlcm4gdm9pZCBtbXVfbm90aWZpZXJfY2FsbF9zcmN1KHN0cnVjdCByY3VfaGVhZCAqcmN1LAotCQkJCSAgIHZvaWQgKCpmdW5jKShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSkpOwotCiAjZWxzZSAvKiBDT05GSUdfTU1VX05PVElGSUVSICovCiAKIHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgewpAQCAtNTgxLDYgKzYyMiwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbW11X25vdGlmaWVyX21tX2Rlc3Ryb3koc3RydWN0IG1tX3N0cnVjdCAqbW0pCiAjZGVmaW5lIHB1ZHBfaHVnZV9jbGVhcl9mbHVzaF9ub3RpZnkgcHVkcF9odWdlX2NsZWFyX2ZsdXNoCiAjZGVmaW5lIHNldF9wdGVfYXRfbm90aWZ5IHNldF9wdGVfYXQKIAorc3RhdGljIGlubGluZSB2b2lkIG1tdV9ub3RpZmllcl9zeW5jaHJvbml6ZSh2b2lkKQoreworfQorCiAjZW5kaWYgLyogQ09ORklHX01NVV9OT1RJRklFUiAqLwogCiAjZW5kaWYgLyogX0xJTlVYX01NVV9OT1RJRklFUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tem9uZS5oIGIvaW5jbHVkZS9saW51eC9tbXpvbmUuaAppbmRleCAzZjM4YzMwLi5iZGEyMDI4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tem9uZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW16b25lLmgKQEAgLTIzNSw2ICsyMzUsOCBAQCBlbnVtIG5vZGVfc3RhdF9pdGVtIHsKIAlOUl9TSE1FTSwJCS8qIHNobWVtIHBhZ2VzIChpbmNsdWRlZCB0bXBmcy9HRU0gcGFnZXMpICovCiAJTlJfU0hNRU1fVEhQUywKIAlOUl9TSE1FTV9QTURNQVBQRUQsCisJTlJfRklMRV9USFBTLAorCU5SX0ZJTEVfUE1ETUFQUEVELAogCU5SX0FOT05fVEhQUywKIAlOUl9VTlNUQUJMRV9ORlMsCS8qIE5GUyB1bnN0YWJsZSBwYWdlcyAqLwogCU5SX1ZNU0NBTl9XUklURSwKQEAgLTY3Nyw2ICs2NzksMTQgQEAgc3RydWN0IHpvbmVsaXN0IHsKIGV4dGVybiBzdHJ1Y3QgcGFnZSAqbWVtX21hcDsKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFCitzdHJ1Y3QgZGVmZXJyZWRfc3BsaXQgeworCXNwaW5sb2NrX3Qgc3BsaXRfcXVldWVfbG9jazsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHNwbGl0X3F1ZXVlOworCXVuc2lnbmVkIGxvbmcgc3BsaXRfcXVldWVfbGVuOworfTsKKyNlbmRpZgorCiAvKgogICogT24gTlVNQSBtYWNoaW5lcywgZWFjaCBOVU1BIG5vZGUgd291bGQgaGF2ZSBhIHBnX2RhdGFfdCB0byBkZXNjcmliZQogICogaXQncyBtZW1vcnkgbGF5b3V0LiBPbiBVTUEgbWFjaGluZXMgdGhlcmUgaXMgYSBzaW5nbGUgcGdsaXN0X2RhdGEgd2hpY2gKQEAgLTc1Niw5ICs3NjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBwZ2xpc3RfZGF0YSB7CiAjZW5kaWYgLyogQ09ORklHX0RFRkVSUkVEX1NUUlVDVF9QQUdFX0lOSVQgKi8KIAogI2lmZGVmIENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRQotCXNwaW5sb2NrX3Qgc3BsaXRfcXVldWVfbG9jazsKLQlzdHJ1Y3QgbGlzdF9oZWFkIHNwbGl0X3F1ZXVlOwotCXVuc2lnbmVkIGxvbmcgc3BsaXRfcXVldWVfbGVuOworCXN0cnVjdCBkZWZlcnJlZF9zcGxpdCBkZWZlcnJlZF9zcGxpdF9xdWV1ZTsKICNlbmRpZgogCiAJLyogRmllbGRzIGNvbW1vbmx5IGFjY2Vzc2VkIGJ5IHRoZSBwYWdlIHJlY2xhaW0gc2Nhbm5lciAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tb2R1bGUuaCBiL2luY2x1ZGUvbGludXgvbW9kdWxlLmgKaW5kZXggMTQ1NTgxMi4uNmQyMDg5NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tb2R1bGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L21vZHVsZS5oCkBAIC0yNiw5ICsyNiw2IEBACiAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CiAjaW5jbHVkZSA8YXNtL21vZHVsZS5oPgogCi0vKiBJbiBzdHJpcHBlZCBBUk0gYW5kIHg4Ni02NCBtb2R1bGVzLCB+IGlzIHN1cnByaXNpbmdseSByYXJlLiAqLwotI2RlZmluZSBNT0RVTEVfU0lHX1NUUklORyAifk1vZHVsZSBzaWduYXR1cmUgYXBwZW5kZWR+XG4iCi0KIC8qIE5vdCBZZXQgSW1wbGVtZW50ZWQgKi8KICNkZWZpbmUgTU9EVUxFX1NVUFBPUlRFRF9ERVZJQ0UobmFtZSkKIApAQCAtMjc2LDYgKzI3Myw4IEBAIGV4dGVybiB0eXBlb2YobmFtZSkgX19tb2RfIyN0eXBlIyNfXyMjbmFtZSMjX2RldmljZV90YWJsZQkJXAogICogZmlsZXMgcmVxdWlyZSBtdWx0aXBsZSBNT0RVTEVfRklSTVdBUkUoKSBzcGVjaWZpZXJzICovCiAjZGVmaW5lIE1PRFVMRV9GSVJNV0FSRShfZmlybXdhcmUpIE1PRFVMRV9JTkZPKGZpcm13YXJlLCBfZmlybXdhcmUpCiAKKyNkZWZpbmUgTU9EVUxFX0lNUE9SVF9OUyhucykgTU9EVUxFX0lORk8oaW1wb3J0X25zLCAjbnMpCisKIHN0cnVjdCBub3RpZmllcl9ibG9jazsKIAogI2lmZGVmIENPTkZJR19NT0RVTEVTCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21vZHVsZV9zaWduYXR1cmUuaCBiL2luY2x1ZGUvbGludXgvbW9kdWxlX3NpZ25hdHVyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlYjRiMDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L21vZHVsZV9zaWduYXR1cmUuaApAQCAtMCwwICsxLDQ2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsgKi8KKy8qCisgKiBNb2R1bGUgc2lnbmF0dXJlIGhhbmRsaW5nLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZWQgSGF0LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBXcml0dGVuIGJ5IERhdmlkIEhvd2VsbHMgKGRob3dlbGxzQHJlZGhhdC5jb20pCisgKi8KKworI2lmbmRlZiBfTElOVVhfTU9EVUxFX1NJR05BVFVSRV9ICisjZGVmaW5lIF9MSU5VWF9NT0RVTEVfU0lHTkFUVVJFX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKy8qIEluIHN0cmlwcGVkIEFSTSBhbmQgeDg2LTY0IG1vZHVsZXMsIH4gaXMgc3VycHJpc2luZ2x5IHJhcmUuICovCisjZGVmaW5lIE1PRFVMRV9TSUdfU1RSSU5HICJ+TW9kdWxlIHNpZ25hdHVyZSBhcHBlbmRlZH5cbiIKKworZW51bSBwa2V5X2lkX3R5cGUgeworCVBLRVlfSURfUEdQLAkJLyogT3BlblBHUCBnZW5lcmF0ZWQga2V5IElEICovCisJUEtFWV9JRF9YNTA5LAkJLyogWC41MDkgYXJiaXRyYXJ5IHN1YmplY3RLZXlJZGVudGlmaWVyICovCisJUEtFWV9JRF9QS0NTNywJCS8qIFNpZ25hdHVyZSBpbiBQS0NTIzcgbWVzc2FnZSAqLworfTsKKworLyoKKyAqIE1vZHVsZSBzaWduYXR1cmUgaW5mb3JtYXRpb24gYmxvY2suCisgKgorICogVGhlIGNvbnN0aXR1ZW50cyBvZiB0aGUgc2lnbmF0dXJlIHNlY3Rpb24gYXJlLCBpbiBvcmRlcjoKKyAqCisgKgktIFNpZ25lcidzIG5hbWUKKyAqCS0gS2V5IGlkZW50aWZpZXIKKyAqCS0gU2lnbmF0dXJlIGRhdGEKKyAqCS0gSW5mb3JtYXRpb24gYmxvY2sKKyAqLworc3RydWN0IG1vZHVsZV9zaWduYXR1cmUgeworCXU4CWFsZ287CQkvKiBQdWJsaWMta2V5IGNyeXB0byBhbGdvcml0aG0gWzBdICovCisJdTgJaGFzaDsJCS8qIERpZ2VzdCBhbGdvcml0aG0gWzBdICovCisJdTgJaWRfdHlwZTsJLyogS2V5IGlkZW50aWZpZXIgdHlwZSBbUEtFWV9JRF9QS0NTN10gKi8KKwl1OAlzaWduZXJfbGVuOwkvKiBMZW5ndGggb2Ygc2lnbmVyJ3MgbmFtZSBbMF0gKi8KKwl1OAlrZXlfaWRfbGVuOwkvKiBMZW5ndGggb2Yga2V5IGlkZW50aWZpZXIgWzBdICovCisJdTgJX19wYWRbM107CisJX19iZTMyCXNpZ19sZW47CS8qIExlbmd0aCBvZiBzaWduYXR1cmUgZGF0YSAqLworfTsKKworaW50IG1vZF9jaGVja19zaWcoY29uc3Qgc3RydWN0IG1vZHVsZV9zaWduYXR1cmUgKm1zLCBzaXplX3QgZmlsZV9sZW4sCisJCSAgY29uc3QgY2hhciAqbmFtZSk7CisKKyNlbmRpZiAvKiBfTElOVVhfTU9EVUxFX1NJR05BVFVSRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L210ZC9tdGQuaCBiL2luY2x1ZGUvbGludXgvbXRkL210ZC5oCmluZGV4IDRjYThjMWMuLjI0OWU4ZDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbXRkL210ZC5oCisrKyBiL2luY2x1ZGUvbGludXgvbXRkL210ZC5oCkBAIC0xODksNiArMTg5LDkgQEAgc3RydWN0IG1vZHVsZTsJLyogb25seSBuZWVkZWQgZm9yIG93bmVyIGZpZWxkIGluIG10ZF9pbmZvICovCiAgKi8KIHN0cnVjdCBtdGRfZGVidWdfaW5mbyB7CiAJc3RydWN0IGRlbnRyeSAqZGZzX2RpcjsKKworCWNvbnN0IGNoYXIgKnBhcnRuYW1lOworCWNvbnN0IGNoYXIgKnBhcnRpZDsKIH07CiAKIHN0cnVjdCBtdGRfaW5mbyB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L210ZC9uYW5kLmggYi9pbmNsdWRlL2xpbnV4L210ZC9uYW5kLmgKaW5kZXggY2ViYzM4Yi4uMGM3NDgzOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tdGQvbmFuZC5oCisrKyBiL2luY2x1ZGUvbGludXgvbXRkL25hbmQuaApAQCAtMzQ2LDcgKzM0Niw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IG5hbmRkZXZfbnRhcmdldHMoY29uc3Qgc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kKQogfQogCiAvKioKLSAqIG5hbmRkZXZfbmVyYXNlYmxvY2tzKCkgLSBHZXQgdGhlIHRvdGFsIG51bWJlciBvZiBlcmFzYWJsb2NrcworICogbmFuZGRldl9uZXJhc2VibG9ja3MoKSAtIEdldCB0aGUgdG90YWwgbnVtYmVyIG9mIGVyYXNlYmxvY2tzCiAgKiBAbmFuZDogTkFORCBkZXZpY2UKICAqCiAgKiBSZXR1cm46IHRoZSB0b3RhbCBudW1iZXIgb2YgZXJhc2VibG9ja3MgZXhwb3NlZCBieSBAbmFuZC4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXRkL3NoYXJwc2wuaCBiL2luY2x1ZGUvbGludXgvbXRkL3NoYXJwc2wuaAppbmRleCAwMTMwNmViLi5kMmMzY2YyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L210ZC9zaGFycHNsLmgKKysrIGIvaW5jbHVkZS9saW51eC9tdGQvc2hhcnBzbC5oCkBAIC01LDYgKzUsOSBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IERtaXRyeSBCYXJ5c2hrb3YKICAqLwogCisjaWZuZGVmIF9NVERfU0hBUlBTTF9ICisjZGVmaW5lIF9NVERfU0hBUlBTTF9ICisKICNpbmNsdWRlIDxsaW51eC9tdGQvcmF3bmFuZC5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kX2VjYy5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+CkBAIC0xNiwzICsxOSw1IEBAIHN0cnVjdCBzaGFycHNsX25hbmRfcGxhdGZvcm1fZGF0YSB7CiAJdW5zaWduZWQgaW50CQlucl9wYXJ0aXRpb25zOwogCWNvbnN0IGNoYXIgKmNvbnN0CSpwYXJ0X3BhcnNlcnM7CiB9OworCisjZW5kaWYgLyogX01URF9TSEFSUFNMX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXRkL3NwaS1ub3IuaCBiL2luY2x1ZGUvbGludXgvbXRkL3NwaS1ub3IuaAppbmRleCA5ZjU3Y2RmLi5mYzBiNGIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L210ZC9zcGktbm9yLmgKKysrIGIvaW5jbHVkZS9saW51eC9tdGQvc3BpLW5vci5oCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9jZmkuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS1tZW0uaD4KIAogLyoKICAqIE1hbnVmYWN0dXJlciBJRHMKQEAgLTIyNCw3ICsyMjUsNiBAQCBzdGF0aWMgaW5saW5lIHU4IHNwaV9ub3JfZ2V0X3Byb3RvY29sX3dpZHRoKGVudW0gc3BpX25vcl9wcm90b2NvbCBwcm90bykKIAlyZXR1cm4gc3BpX25vcl9nZXRfcHJvdG9jb2xfZGF0YV9uYml0cyhwcm90byk7CiB9CiAKLSNkZWZpbmUgU1BJX05PUl9NQVhfQ01EX1NJWkUJOAogZW51bSBzcGlfbm9yX29wcyB7CiAJU1BJX05PUl9PUFNfUkVBRCA9IDAsCiAJU1BJX05PUl9PUFNfV1JJVEUsCkBAIC0yMzcsMTIgKzIzNywxMiBAQCBlbnVtIHNwaV9ub3Jfb3B0aW9uX2ZsYWdzIHsKIAlTTk9SX0ZfVVNFX0ZTUgkJPSBCSVQoMCksCiAJU05PUl9GX0hBU19TUl9UQgk9IEJJVCgxKSwKIAlTTk9SX0ZfTk9fT1BfQ0hJUF9FUkFTRQk9IEJJVCgyKSwKLQlTTk9SX0ZfUzNBTl9BRERSX0RFRkFVTFQgPSBCSVQoMyksCi0JU05PUl9GX1JFQURZX1hTUl9SRFkJPSBCSVQoNCksCi0JU05PUl9GX1VTRV9DTFNSCQk9IEJJVCg1KSwKLQlTTk9SX0ZfQlJPS0VOX1JFU0VUCT0gQklUKDYpLAotCVNOT1JfRl80Ql9PUENPREVTCT0gQklUKDcpLAotCVNOT1JfRl9IQVNfNEJBSVQJPSBCSVQoOCksCisJU05PUl9GX1JFQURZX1hTUl9SRFkJPSBCSVQoMyksCisJU05PUl9GX1VTRV9DTFNSCQk9IEJJVCg0KSwKKwlTTk9SX0ZfQlJPS0VOX1JFU0VUCT0gQklUKDUpLAorCVNOT1JfRl80Ql9PUENPREVTCT0gQklUKDYpLAorCVNOT1JfRl9IQVNfNEJBSVQJPSBCSVQoNyksCisJU05PUl9GX0hBU19MT0NLCQk9IEJJVCg4KSwKIH07CiAKIC8qKgpAQCAtMzM0LDEzMCArMzM0LDYgQEAgc3RydWN0IHNwaV9ub3JfZXJhc2VfbWFwIHsKIH07CiAKIC8qKgotICogc3RydWN0IGZsYXNoX2luZm8gLSBGb3J3YXJkIGRlY2xhcmF0aW9uIG9mIGEgc3RydWN0dXJlIHVzZWQgaW50ZXJuYWxseSBieQotICoJCSAgICAgICBzcGlfbm9yX3NjYW4oKQotICovCi1zdHJ1Y3QgZmxhc2hfaW5mbzsKLQotLyoqCi0gKiBzdHJ1Y3Qgc3BpX25vciAtIFN0cnVjdHVyZSBmb3IgZGVmaW5pbmcgYSB0aGUgU1BJIE5PUiBsYXllcgotICogQG10ZDoJCXBvaW50IHRvIGEgbXRkX2luZm8gc3RydWN0dXJlCi0gKiBAbG9jazoJCXRoZSBsb2NrIGZvciB0aGUgcmVhZC93cml0ZS9lcmFzZS9sb2NrL3VubG9jayBvcGVyYXRpb25zCi0gKiBAZGV2OgkJcG9pbnQgdG8gYSBzcGkgZGV2aWNlLCBvciBhIHNwaSBub3IgY29udHJvbGxlciBkZXZpY2UuCi0gKiBAaW5mbzoJCXNwaS1ub3IgcGFydCBKREVDIE1GUiBpZCBhbmQgb3RoZXIgaW5mbwotICogQHBhZ2Vfc2l6ZToJCXRoZSBwYWdlIHNpemUgb2YgdGhlIFNQSSBOT1IKLSAqIEBhZGRyX3dpZHRoOgkJbnVtYmVyIG9mIGFkZHJlc3MgYnl0ZXMKLSAqIEBlcmFzZV9vcGNvZGU6CXRoZSBvcGNvZGUgZm9yIGVyYXNpbmcgYSBzZWN0b3IKLSAqIEByZWFkX29wY29kZToJdGhlIHJlYWQgb3Bjb2RlCi0gKiBAcmVhZF9kdW1teToJCXRoZSBkdW1teSBuZWVkZWQgYnkgdGhlIHJlYWQgb3BlcmF0aW9uCi0gKiBAcHJvZ3JhbV9vcGNvZGU6CXRoZSBwcm9ncmFtIG9wY29kZQotICogQHNzdF93cml0ZV9zZWNvbmQ6CXVzZWQgYnkgdGhlIFNTVCB3cml0ZSBvcGVyYXRpb24KLSAqIEBmbGFnczoJCWZsYWcgb3B0aW9ucyBmb3IgdGhlIGN1cnJlbnQgU1BJLU5PUiAoU05PUl9GXyopCi0gKiBAcmVhZF9wcm90bzoJCXRoZSBTUEkgcHJvdG9jb2wgZm9yIHJlYWQgb3BlcmF0aW9ucwotICogQHdyaXRlX3Byb3RvOgl0aGUgU1BJIHByb3RvY29sIGZvciB3cml0ZSBvcGVyYXRpb25zCi0gKiBAcmVnX3Byb3RvCQl0aGUgU1BJIHByb3RvY29sIGZvciByZWFkX3JlZy93cml0ZV9yZWcvZXJhc2Ugb3BlcmF0aW9ucwotICogQGNtZF9idWY6CQl1c2VkIGJ5IHRoZSB3cml0ZV9yZWcKLSAqIEBlcmFzZV9tYXA6CQl0aGUgZXJhc2UgbWFwIG9mIHRoZSBTUEkgTk9SCi0gKiBAcHJlcGFyZToJCVtPUFRJT05BTF0gZG8gc29tZSBwcmVwYXJhdGlvbnMgZm9yIHRoZQotICoJCQlyZWFkL3dyaXRlL2VyYXNlL2xvY2svdW5sb2NrIG9wZXJhdGlvbnMKLSAqIEB1bnByZXBhcmU6CQlbT1BUSU9OQUxdIGRvIHNvbWUgcG9zdCB3b3JrIGFmdGVyIHRoZQotICoJCQlyZWFkL3dyaXRlL2VyYXNlL2xvY2svdW5sb2NrIG9wZXJhdGlvbnMKLSAqIEByZWFkX3JlZzoJCVtEUklWRVItU1BFQ0lGSUNdIHJlYWQgb3V0IHRoZSByZWdpc3RlcgotICogQHdyaXRlX3JlZzoJCVtEUklWRVItU1BFQ0lGSUNdIHdyaXRlIGRhdGEgdG8gdGhlIHJlZ2lzdGVyCi0gKiBAcmVhZDoJCVtEUklWRVItU1BFQ0lGSUNdIHJlYWQgZGF0YSBmcm9tIHRoZSBTUEkgTk9SCi0gKiBAd3JpdGU6CQlbRFJJVkVSLVNQRUNJRklDXSB3cml0ZSBkYXRhIHRvIHRoZSBTUEkgTk9SCi0gKiBAZXJhc2U6CQlbRFJJVkVSLVNQRUNJRklDXSBlcmFzZSBhIHNlY3RvciBvZiB0aGUgU1BJIE5PUgotICoJCQlhdCB0aGUgb2Zmc2V0IEBvZmZzOyBpZiBub3QgcHJvdmlkZWQgYnkgdGhlIGRyaXZlciwKLSAqCQkJc3BpLW5vciB3aWxsIHNlbmQgdGhlIGVyYXNlIG9wY29kZSB2aWEgd3JpdGVfcmVnKCkKLSAqIEBmbGFzaF9sb2NrOgkJW0ZMQVNILVNQRUNJRklDXSBsb2NrIGEgcmVnaW9uIG9mIHRoZSBTUEkgTk9SCi0gKiBAZmxhc2hfdW5sb2NrOglbRkxBU0gtU1BFQ0lGSUNdIHVubG9jayBhIHJlZ2lvbiBvZiB0aGUgU1BJIE5PUgotICogQGZsYXNoX2lzX2xvY2tlZDoJW0ZMQVNILVNQRUNJRklDXSBjaGVjayBpZiBhIHJlZ2lvbiBvZiB0aGUgU1BJIE5PUiBpcwotICogQHF1YWRfZW5hYmxlOglbRkxBU0gtU1BFQ0lGSUNdIGVuYWJsZXMgU1BJIE5PUiBxdWFkIG1vZGUKLSAqIEBjbGVhcl9zcl9icDoJW0ZMQVNILVNQRUNJRklDXSBjbGVhcnMgdGhlIEJsb2NrIFByb3RlY3Rpb24gQml0cyBmcm9tCi0gKgkJCXRoZSBTUEkgTk9SIFN0YXR1cyBSZWdpc3Rlci4KLSAqCQkJY29tcGxldGVseSBsb2NrZWQKLSAqIEBwcml2OgkJdGhlIHByaXZhdGUgZGF0YQotICovCi1zdHJ1Y3Qgc3BpX25vciB7Ci0Jc3RydWN0IG10ZF9pbmZvCQltdGQ7Ci0Jc3RydWN0IG11dGV4CQlsb2NrOwotCXN0cnVjdCBkZXZpY2UJCSpkZXY7Ci0JY29uc3Qgc3RydWN0IGZsYXNoX2luZm8JKmluZm87Ci0JdTMyCQkJcGFnZV9zaXplOwotCXU4CQkJYWRkcl93aWR0aDsKLQl1OAkJCWVyYXNlX29wY29kZTsKLQl1OAkJCXJlYWRfb3Bjb2RlOwotCXU4CQkJcmVhZF9kdW1teTsKLQl1OAkJCXByb2dyYW1fb3Bjb2RlOwotCWVudW0gc3BpX25vcl9wcm90b2NvbAlyZWFkX3Byb3RvOwotCWVudW0gc3BpX25vcl9wcm90b2NvbAl3cml0ZV9wcm90bzsKLQllbnVtIHNwaV9ub3JfcHJvdG9jb2wJcmVnX3Byb3RvOwotCWJvb2wJCQlzc3Rfd3JpdGVfc2Vjb25kOwotCXUzMgkJCWZsYWdzOwotCXU4CQkJY21kX2J1ZltTUElfTk9SX01BWF9DTURfU0laRV07Ci0Jc3RydWN0IHNwaV9ub3JfZXJhc2VfbWFwCWVyYXNlX21hcDsKLQotCWludCAoKnByZXBhcmUpKHN0cnVjdCBzcGlfbm9yICpub3IsIGVudW0gc3BpX25vcl9vcHMgb3BzKTsKLQl2b2lkICgqdW5wcmVwYXJlKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBlbnVtIHNwaV9ub3Jfb3BzIG9wcyk7Ci0JaW50ICgqcmVhZF9yZWcpKHN0cnVjdCBzcGlfbm9yICpub3IsIHU4IG9wY29kZSwgdTggKmJ1ZiwgaW50IGxlbik7Ci0JaW50ICgqd3JpdGVfcmVnKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCB1OCBvcGNvZGUsIHU4ICpidWYsIGludCBsZW4pOwotCi0Jc3NpemVfdCAoKnJlYWQpKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBmcm9tLAotCQkJc2l6ZV90IGxlbiwgdV9jaGFyICpyZWFkX2J1Zik7Ci0Jc3NpemVfdCAoKndyaXRlKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBsb2ZmX3QgdG8sCi0JCQlzaXplX3QgbGVuLCBjb25zdCB1X2NoYXIgKndyaXRlX2J1Zik7Ci0JaW50ICgqZXJhc2UpKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBvZmZzKTsKLQotCWludCAoKmZsYXNoX2xvY2spKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBvZnMsIHVpbnQ2NF90IGxlbik7Ci0JaW50ICgqZmxhc2hfdW5sb2NrKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBsb2ZmX3Qgb2ZzLCB1aW50NjRfdCBsZW4pOwotCWludCAoKmZsYXNoX2lzX2xvY2tlZCkoc3RydWN0IHNwaV9ub3IgKm5vciwgbG9mZl90IG9mcywgdWludDY0X3QgbGVuKTsKLQlpbnQgKCpxdWFkX2VuYWJsZSkoc3RydWN0IHNwaV9ub3IgKm5vcik7Ci0JaW50ICgqY2xlYXJfc3JfYnApKHN0cnVjdCBzcGlfbm9yICpub3IpOwotCi0Jdm9pZCAqcHJpdjsKLX07Ci0KLXN0YXRpYyB1NjQgX19tYXliZV91bnVzZWQKLXNwaV9ub3JfcmVnaW9uX2lzX2xhc3QoY29uc3Qgc3RydWN0IHNwaV9ub3JfZXJhc2VfcmVnaW9uICpyZWdpb24pCi17Ci0JcmV0dXJuIHJlZ2lvbi0+b2Zmc2V0ICYgU05PUl9MQVNUX1JFR0lPTjsKLX0KLQotc3RhdGljIHU2NCBfX21heWJlX3VudXNlZAotc3BpX25vcl9yZWdpb25fZW5kKGNvbnN0IHN0cnVjdCBzcGlfbm9yX2VyYXNlX3JlZ2lvbiAqcmVnaW9uKQotewotCXJldHVybiAocmVnaW9uLT5vZmZzZXQgJiB+U05PUl9FUkFTRV9GTEFHU19NQVNLKSArIHJlZ2lvbi0+c2l6ZTsKLX0KLQotc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQKLXNwaV9ub3JfcmVnaW9uX21hcmtfZW5kKHN0cnVjdCBzcGlfbm9yX2VyYXNlX3JlZ2lvbiAqcmVnaW9uKQotewotCXJlZ2lvbi0+b2Zmc2V0IHw9IFNOT1JfTEFTVF9SRUdJT047Ci19Ci0KLXN0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCi1zcGlfbm9yX3JlZ2lvbl9tYXJrX292ZXJsYXkoc3RydWN0IHNwaV9ub3JfZXJhc2VfcmVnaW9uICpyZWdpb24pCi17Ci0JcmVnaW9uLT5vZmZzZXQgfD0gU05PUl9PVkVSTEFJRF9SRUdJT047Ci19Ci0KLXN0YXRpYyBib29sIF9fbWF5YmVfdW51c2VkIHNwaV9ub3JfaGFzX3VuaWZvcm1fZXJhc2UoY29uc3Qgc3RydWN0IHNwaV9ub3IgKm5vcikKLXsKLQlyZXR1cm4gISFub3ItPmVyYXNlX21hcC51bmlmb3JtX2VyYXNlX3R5cGU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzcGlfbm9yX3NldF9mbGFzaF9ub2RlKHN0cnVjdCBzcGlfbm9yICpub3IsCi0JCQkJCSAgc3RydWN0IGRldmljZV9ub2RlICpucCkKLXsKLQltdGRfc2V0X29mX25vZGUoJm5vci0+bXRkLCBucCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGRldmljZV9ub2RlICpzcGlfbm9yX2dldF9mbGFzaF9ub2RlKHN0cnVjdCBzcGlfbm9yICpub3IpCi17Ci0JcmV0dXJuIG10ZF9nZXRfb2Zfbm9kZSgmbm9yLT5tdGQpOwotfQotCi0vKioKICAqIHN0cnVjdCBzcGlfbm9yX2h3Y2FwcyAtIFN0cnVjdHVyZSBmb3IgZGVzY3JpYmluZyB0aGUgaGFyZHdhcmUgY2FwYWJpbGllcwogICogc3VwcG9ydGVkIGJ5IHRoZSBTUEkgY29udHJvbGxlciAoYnVzIG1hc3RlcikuCiAgKiBAbWFzazoJCXRoZSBiaXRtYXNrIGxpc3RpbmcgYWxsIHRoZSBzdXBwb3J0ZWQgaHcgY2FwYWJpbGllcwpAQCAtNTE4LDYgKzM5NCwyNTcgQEAgc3RydWN0IHNwaV9ub3JfaHdjYXBzIHsKICNkZWZpbmUgU05PUl9IV0NBUFNfUFBfMV84XzgJQklUKDIxKQogI2RlZmluZSBTTk9SX0hXQ0FQU19QUF84XzhfOAlCSVQoMjIpCiAKKyNkZWZpbmUgU05PUl9IV0NBUFNfWF9YX1gJKFNOT1JfSFdDQVBTX1JFQURfMl8yXzIgfAlcCisJCQkJIFNOT1JfSFdDQVBTX1JFQURfNF80XzQgfAlcCisJCQkJIFNOT1JfSFdDQVBTX1JFQURfOF84XzggfAlcCisJCQkJIFNOT1JfSFdDQVBTX1BQXzRfNF80IHwJCVwKKwkJCQkgU05PUl9IV0NBUFNfUFBfOF84XzgpCisKKyNkZWZpbmUgU05PUl9IV0NBUFNfRFRSCQkoU05PUl9IV0NBUFNfUkVBRF8xXzFfMV9EVFIgfAlcCisJCQkJIFNOT1JfSFdDQVBTX1JFQURfMV8yXzJfRFRSIHwJXAorCQkJCSBTTk9SX0hXQ0FQU19SRUFEXzFfNF80X0RUUiB8CVwKKwkJCQkgU05PUl9IV0NBUFNfUkVBRF8xXzhfOF9EVFIpCisKKyNkZWZpbmUgU05PUl9IV0NBUFNfQUxMCQkoU05PUl9IV0NBUFNfUkVBRF9NQVNLIHwJXAorCQkJCSBTTk9SX0hXQ0FQU19QUF9NQVNLKQorCitzdHJ1Y3Qgc3BpX25vcl9yZWFkX2NvbW1hbmQgeworCXU4CQkJbnVtX21vZGVfY2xvY2tzOworCXU4CQkJbnVtX3dhaXRfc3RhdGVzOworCXU4CQkJb3Bjb2RlOworCWVudW0gc3BpX25vcl9wcm90b2NvbAlwcm90bzsKK307CisKK3N0cnVjdCBzcGlfbm9yX3BwX2NvbW1hbmQgeworCXU4CQkJb3Bjb2RlOworCWVudW0gc3BpX25vcl9wcm90b2NvbAlwcm90bzsKK307CisKK2VudW0gc3BpX25vcl9yZWFkX2NvbW1hbmRfaW5kZXggeworCVNOT1JfQ01EX1JFQUQsCisJU05PUl9DTURfUkVBRF9GQVNULAorCVNOT1JfQ01EX1JFQURfMV8xXzFfRFRSLAorCisJLyogRHVhbCBTUEkgKi8KKwlTTk9SX0NNRF9SRUFEXzFfMV8yLAorCVNOT1JfQ01EX1JFQURfMV8yXzIsCisJU05PUl9DTURfUkVBRF8yXzJfMiwKKwlTTk9SX0NNRF9SRUFEXzFfMl8yX0RUUiwKKworCS8qIFF1YWQgU1BJICovCisJU05PUl9DTURfUkVBRF8xXzFfNCwKKwlTTk9SX0NNRF9SRUFEXzFfNF80LAorCVNOT1JfQ01EX1JFQURfNF80XzQsCisJU05PUl9DTURfUkVBRF8xXzRfNF9EVFIsCisKKwkvKiBPY3RhbCBTUEkgKi8KKwlTTk9SX0NNRF9SRUFEXzFfMV84LAorCVNOT1JfQ01EX1JFQURfMV84XzgsCisJU05PUl9DTURfUkVBRF84XzhfOCwKKwlTTk9SX0NNRF9SRUFEXzFfOF84X0RUUiwKKworCVNOT1JfQ01EX1JFQURfTUFYCit9OworCitlbnVtIHNwaV9ub3JfcHBfY29tbWFuZF9pbmRleCB7CisJU05PUl9DTURfUFAsCisKKwkvKiBRdWFkIFNQSSAqLworCVNOT1JfQ01EX1BQXzFfMV80LAorCVNOT1JfQ01EX1BQXzFfNF80LAorCVNOT1JfQ01EX1BQXzRfNF80LAorCisJLyogT2N0YWwgU1BJICovCisJU05PUl9DTURfUFBfMV8xXzgsCisJU05PUl9DTURfUFBfMV84XzgsCisJU05PUl9DTURfUFBfOF84XzgsCisKKwlTTk9SX0NNRF9QUF9NQVgKK307CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgaW4gJ3N0cnVjdCBzcGlfbm9yX2ZsYXNoX3BhcmFtZXRlcicgKi8KK3N0cnVjdCBzcGlfbm9yOworCisvKioKKyAqIHN0cnVjdCBzcGlfbm9yX2xvY2tpbmdfb3BzIC0gU1BJIE5PUiBsb2NraW5nIG1ldGhvZHMKKyAqIEBsb2NrOglsb2NrIGEgcmVnaW9uIG9mIHRoZSBTUEkgTk9SLgorICogQHVubG9jazoJdW5sb2NrIGEgcmVnaW9uIG9mIHRoZSBTUEkgTk9SLgorICogQGlzX2xvY2tlZDoJY2hlY2sgaWYgYSByZWdpb24gb2YgdGhlIFNQSSBOT1IgaXMgY29tcGxldGVseSBsb2NrZWQKKyAqLworc3RydWN0IHNwaV9ub3JfbG9ja2luZ19vcHMgeworCWludCAoKmxvY2spKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBvZnMsIHVpbnQ2NF90IGxlbik7CisJaW50ICgqdW5sb2NrKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBsb2ZmX3Qgb2ZzLCB1aW50NjRfdCBsZW4pOworCWludCAoKmlzX2xvY2tlZCkoc3RydWN0IHNwaV9ub3IgKm5vciwgbG9mZl90IG9mcywgdWludDY0X3QgbGVuKTsKK307CisKKy8qKgorICogc3RydWN0IHNwaV9ub3JfZmxhc2hfcGFyYW1ldGVyIC0gU1BJIE5PUiBmbGFzaCBwYXJhbWV0ZXJzIGFuZCBzZXR0aW5ncy4KKyAqIEluY2x1ZGVzIGxlZ2FjeSBmbGFzaCBwYXJhbWV0ZXJzIGFuZCBzZXR0aW5ncyB0aGF0IGNhbiBiZSBvdmVyd3JpdHRlbgorICogYnkgdGhlIHNwaV9ub3JfZml4dXBzIGhvb2tzLCBvciBkeW5hbWljYWxseSB3aGVuIHBhcnNpbmcgdGhlIEpFU0QyMTYKKyAqIFNlcmlhbCBGbGFzaCBEaXNjb3ZlcmFibGUgUGFyYW1ldGVycyAoU0ZEUCkgdGFibGVzLgorICoKKyAqIEBzaXplOgkJdGhlIGZsYXNoIG1lbW9yeSBkZW5zaXR5IGluIGJ5dGVzLgorICogQHBhZ2Vfc2l6ZToJCXRoZSBwYWdlIHNpemUgb2YgdGhlIFNQSSBOT1IgZmxhc2ggbWVtb3J5LgorICogQGh3Y2FwczoJCWRlc2NyaWJlcyB0aGUgcmVhZCBhbmQgcGFnZSBwcm9ncmFtIGhhcmR3YXJlCisgKgkJCWNhcGFiaWxpdGllcy4KKyAqIEByZWFkczoJCXJlYWQgY2FwYWJpbGl0aWVzIG9yZGVyZWQgYnkgcHJpb3JpdHk6IHRoZSBoaWdoZXIgaW5kZXgKKyAqICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBhcnJheSwgdGhlIGhpZ2hlciBwcmlvcml0eS4KKyAqIEBwYWdlX3Byb2dyYW1zOglwYWdlIHByb2dyYW0gY2FwYWJpbGl0aWVzIG9yZGVyZWQgYnkgcHJpb3JpdHk6IHRoZQorICogICAgICAgICAgICAgICAgICAgICAgaGlnaGVyIGluZGV4IGluIHRoZSBhcnJheSwgdGhlIGhpZ2hlciBwcmlvcml0eS4KKyAqIEBlcmFzZV9tYXA6CQl0aGUgZXJhc2UgbWFwIHBhcnNlZCBmcm9tIHRoZSBTRkRQIFNlY3RvciBNYXAgUGFyYW1ldGVyCisgKiAgICAgICAgICAgICAgICAgICAgICBUYWJsZS4KKyAqIEBxdWFkX2VuYWJsZToJZW5hYmxlcyBTUEkgTk9SIHF1YWQgbW9kZS4KKyAqIEBzZXRfNGJ5dGU6CQlwdXRzIHRoZSBTUEkgTk9SIGluIDQgYnl0ZSBhZGRyZXNzaW5nIG1vZGUuCisgKiBAY29udmVydF9hZGRyOgljb252ZXJ0cyBhbiBhYnNvbHV0ZSBhZGRyZXNzIGludG8gc29tZXRoaW5nIHRoZSBmbGFzaAorICogICAgICAgICAgICAgICAgICAgICAgd2lsbCB1bmRlcnN0YW5kLiBQYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gcGFnZXNpemUgaXMKKyAqICAgICAgICAgICAgICAgICAgICAgIG5vdCBhIHBvd2VyLW9mLTIuCisgKiBAc2V0dXA6ICAgICAgICAgICAgICBjb25maWd1cmVzIHRoZSBTUEkgTk9SIG1lbW9yeS4gVXNlZnVsIGZvciBTUEkgTk9SCisgKiAgICAgICAgICAgICAgICAgICAgICBmbGFzaGVzIHRoYXQgaGF2ZSBwZWN1bGlhcml0aWVzIHRvIHRoZSBTUEkgTk9SIHN0YW5kYXJkCisgKiAgICAgICAgICAgICAgICAgICAgICBlLmcuIGRpZmZlcmVudCBvcGNvZGVzLCBzcGVjaWZpYyBhZGRyZXNzIGNhbGN1bGF0aW9uLAorICogICAgICAgICAgICAgICAgICAgICAgcGFnZSBzaXplLCBldGMuCisgKiBAbG9ja2luZ19vcHM6CVNQSSBOT1IgbG9ja2luZyBtZXRob2RzLgorICovCitzdHJ1Y3Qgc3BpX25vcl9mbGFzaF9wYXJhbWV0ZXIgeworCXU2NAkJCQlzaXplOworCXUzMgkJCQlwYWdlX3NpemU7CisKKwlzdHJ1Y3Qgc3BpX25vcl9od2NhcHMJCWh3Y2FwczsKKwlzdHJ1Y3Qgc3BpX25vcl9yZWFkX2NvbW1hbmQJcmVhZHNbU05PUl9DTURfUkVBRF9NQVhdOworCXN0cnVjdCBzcGlfbm9yX3BwX2NvbW1hbmQJcGFnZV9wcm9ncmFtc1tTTk9SX0NNRF9QUF9NQVhdOworCisJc3RydWN0IHNwaV9ub3JfZXJhc2VfbWFwICAgICAgICBlcmFzZV9tYXA7CisKKwlpbnQgKCpxdWFkX2VuYWJsZSkoc3RydWN0IHNwaV9ub3IgKm5vcik7CisJaW50ICgqc2V0XzRieXRlKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBib29sIGVuYWJsZSk7CisJdTMyICgqY29udmVydF9hZGRyKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCB1MzIgYWRkcik7CisJaW50ICgqc2V0dXApKHN0cnVjdCBzcGlfbm9yICpub3IsIGNvbnN0IHN0cnVjdCBzcGlfbm9yX2h3Y2FwcyAqaHdjYXBzKTsKKworCWNvbnN0IHN0cnVjdCBzcGlfbm9yX2xvY2tpbmdfb3BzICpsb2NraW5nX29wczsKK307CisKKy8qKgorICogc3RydWN0IGZsYXNoX2luZm8gLSBGb3J3YXJkIGRlY2xhcmF0aW9uIG9mIGEgc3RydWN0dXJlIHVzZWQgaW50ZXJuYWxseSBieQorICoJCSAgICAgICBzcGlfbm9yX3NjYW4oKQorICovCitzdHJ1Y3QgZmxhc2hfaW5mbzsKKworLyoqCisgKiBzdHJ1Y3Qgc3BpX25vciAtIFN0cnVjdHVyZSBmb3IgZGVmaW5pbmcgYSB0aGUgU1BJIE5PUiBsYXllcgorICogQG10ZDoJCXBvaW50IHRvIGEgbXRkX2luZm8gc3RydWN0dXJlCisgKiBAbG9jazoJCXRoZSBsb2NrIGZvciB0aGUgcmVhZC93cml0ZS9lcmFzZS9sb2NrL3VubG9jayBvcGVyYXRpb25zCisgKiBAZGV2OgkJcG9pbnQgdG8gYSBzcGkgZGV2aWNlLCBvciBhIHNwaSBub3IgY29udHJvbGxlciBkZXZpY2UuCisgKiBAc3BpbWVtOgkJcG9pbnQgdG8gdGhlIHNwaSBtZW0gZGV2aWNlCisgKiBAYm91bmNlYnVmOgkJYm91bmNlIGJ1ZmZlciB1c2VkIHdoZW4gdGhlIGJ1ZmZlciBwYXNzZWQgYnkgdGhlIE1URAorICogICAgICAgICAgICAgICAgICAgICAgbGF5ZXIgaXMgbm90IERNQS1hYmxlCisgKiBAYm91bmNlYnVmX3NpemU6CXNpemUgb2YgdGhlIGJvdW5jZSBidWZmZXIKKyAqIEBpbmZvOgkJc3BpLW5vciBwYXJ0IEpERUMgTUZSIGlkIGFuZCBvdGhlciBpbmZvCisgKiBAcGFnZV9zaXplOgkJdGhlIHBhZ2Ugc2l6ZSBvZiB0aGUgU1BJIE5PUgorICogQGFkZHJfd2lkdGg6CQludW1iZXIgb2YgYWRkcmVzcyBieXRlcworICogQGVyYXNlX29wY29kZToJdGhlIG9wY29kZSBmb3IgZXJhc2luZyBhIHNlY3RvcgorICogQHJlYWRfb3Bjb2RlOgl0aGUgcmVhZCBvcGNvZGUKKyAqIEByZWFkX2R1bW15OgkJdGhlIGR1bW15IG5lZWRlZCBieSB0aGUgcmVhZCBvcGVyYXRpb24KKyAqIEBwcm9ncmFtX29wY29kZToJdGhlIHByb2dyYW0gb3Bjb2RlCisgKiBAc3N0X3dyaXRlX3NlY29uZDoJdXNlZCBieSB0aGUgU1NUIHdyaXRlIG9wZXJhdGlvbgorICogQGZsYWdzOgkJZmxhZyBvcHRpb25zIGZvciB0aGUgY3VycmVudCBTUEktTk9SIChTTk9SX0ZfKikKKyAqIEByZWFkX3Byb3RvOgkJdGhlIFNQSSBwcm90b2NvbCBmb3IgcmVhZCBvcGVyYXRpb25zCisgKiBAd3JpdGVfcHJvdG86CXRoZSBTUEkgcHJvdG9jb2wgZm9yIHdyaXRlIG9wZXJhdGlvbnMKKyAqIEByZWdfcHJvdG8JCXRoZSBTUEkgcHJvdG9jb2wgZm9yIHJlYWRfcmVnL3dyaXRlX3JlZy9lcmFzZSBvcGVyYXRpb25zCisgKiBAcHJlcGFyZToJCVtPUFRJT05BTF0gZG8gc29tZSBwcmVwYXJhdGlvbnMgZm9yIHRoZQorICoJCQlyZWFkL3dyaXRlL2VyYXNlL2xvY2svdW5sb2NrIG9wZXJhdGlvbnMKKyAqIEB1bnByZXBhcmU6CQlbT1BUSU9OQUxdIGRvIHNvbWUgcG9zdCB3b3JrIGFmdGVyIHRoZQorICoJCQlyZWFkL3dyaXRlL2VyYXNlL2xvY2svdW5sb2NrIG9wZXJhdGlvbnMKKyAqIEByZWFkX3JlZzoJCVtEUklWRVItU1BFQ0lGSUNdIHJlYWQgb3V0IHRoZSByZWdpc3RlcgorICogQHdyaXRlX3JlZzoJCVtEUklWRVItU1BFQ0lGSUNdIHdyaXRlIGRhdGEgdG8gdGhlIHJlZ2lzdGVyCisgKiBAcmVhZDoJCVtEUklWRVItU1BFQ0lGSUNdIHJlYWQgZGF0YSBmcm9tIHRoZSBTUEkgTk9SCisgKiBAd3JpdGU6CQlbRFJJVkVSLVNQRUNJRklDXSB3cml0ZSBkYXRhIHRvIHRoZSBTUEkgTk9SCisgKiBAZXJhc2U6CQlbRFJJVkVSLVNQRUNJRklDXSBlcmFzZSBhIHNlY3RvciBvZiB0aGUgU1BJIE5PUgorICoJCQlhdCB0aGUgb2Zmc2V0IEBvZmZzOyBpZiBub3QgcHJvdmlkZWQgYnkgdGhlIGRyaXZlciwKKyAqCQkJc3BpLW5vciB3aWxsIHNlbmQgdGhlIGVyYXNlIG9wY29kZSB2aWEgd3JpdGVfcmVnKCkKKyAqIEBjbGVhcl9zcl9icDoJW0ZMQVNILVNQRUNJRklDXSBjbGVhcnMgdGhlIEJsb2NrIFByb3RlY3Rpb24gQml0cyBmcm9tCisgKgkJCXRoZSBTUEkgTk9SIFN0YXR1cyBSZWdpc3Rlci4KKyAqIEBwYXJhbXM6CQlbRkxBU0gtU1BFQ0lGSUNdIFNQSS1OT1IgZmxhc2ggcGFyYW1ldGVycyBhbmQgc2V0dGluZ3MuCisgKiAgICAgICAgICAgICAgICAgICAgICBUaGUgc3RydWN0dXJlIGluY2x1ZGVzIGxlZ2FjeSBmbGFzaCBwYXJhbWV0ZXJzIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MgdGhhdCBjYW4gYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIHNwaV9ub3JfZml4dXBzCisgKiAgICAgICAgICAgICAgICAgICAgICBob29rcywgb3IgZHluYW1pY2FsbHkgd2hlbiBwYXJzaW5nIHRoZSBTRkRQIHRhYmxlcy4KKyAqIEBwcml2OgkJdGhlIHByaXZhdGUgZGF0YQorICovCitzdHJ1Y3Qgc3BpX25vciB7CisJc3RydWN0IG10ZF9pbmZvCQltdGQ7CisJc3RydWN0IG11dGV4CQlsb2NrOworCXN0cnVjdCBkZXZpY2UJCSpkZXY7CisJc3RydWN0IHNwaV9tZW0JCSpzcGltZW07CisJdTgJCQkqYm91bmNlYnVmOworCXNpemVfdAkJCWJvdW5jZWJ1Zl9zaXplOworCWNvbnN0IHN0cnVjdCBmbGFzaF9pbmZvCSppbmZvOworCXUzMgkJCXBhZ2Vfc2l6ZTsKKwl1OAkJCWFkZHJfd2lkdGg7CisJdTgJCQllcmFzZV9vcGNvZGU7CisJdTgJCQlyZWFkX29wY29kZTsKKwl1OAkJCXJlYWRfZHVtbXk7CisJdTgJCQlwcm9ncmFtX29wY29kZTsKKwllbnVtIHNwaV9ub3JfcHJvdG9jb2wJcmVhZF9wcm90bzsKKwllbnVtIHNwaV9ub3JfcHJvdG9jb2wJd3JpdGVfcHJvdG87CisJZW51bSBzcGlfbm9yX3Byb3RvY29sCXJlZ19wcm90bzsKKwlib29sCQkJc3N0X3dyaXRlX3NlY29uZDsKKwl1MzIJCQlmbGFnczsKKworCWludCAoKnByZXBhcmUpKHN0cnVjdCBzcGlfbm9yICpub3IsIGVudW0gc3BpX25vcl9vcHMgb3BzKTsKKwl2b2lkICgqdW5wcmVwYXJlKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBlbnVtIHNwaV9ub3Jfb3BzIG9wcyk7CisJaW50ICgqcmVhZF9yZWcpKHN0cnVjdCBzcGlfbm9yICpub3IsIHU4IG9wY29kZSwgdTggKmJ1ZiwgaW50IGxlbik7CisJaW50ICgqd3JpdGVfcmVnKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCB1OCBvcGNvZGUsIHU4ICpidWYsIGludCBsZW4pOworCisJc3NpemVfdCAoKnJlYWQpKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBmcm9tLAorCQkJc2l6ZV90IGxlbiwgdV9jaGFyICpyZWFkX2J1Zik7CisJc3NpemVfdCAoKndyaXRlKShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBsb2ZmX3QgdG8sCisJCQlzaXplX3QgbGVuLCBjb25zdCB1X2NoYXIgKndyaXRlX2J1Zik7CisJaW50ICgqZXJhc2UpKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBvZmZzKTsKKworCWludCAoKmNsZWFyX3NyX2JwKShzdHJ1Y3Qgc3BpX25vciAqbm9yKTsKKwlzdHJ1Y3Qgc3BpX25vcl9mbGFzaF9wYXJhbWV0ZXIgcGFyYW1zOworCisJdm9pZCAqcHJpdjsKK307CisKK3N0YXRpYyB1NjQgX19tYXliZV91bnVzZWQKK3NwaV9ub3JfcmVnaW9uX2lzX2xhc3QoY29uc3Qgc3RydWN0IHNwaV9ub3JfZXJhc2VfcmVnaW9uICpyZWdpb24pCit7CisJcmV0dXJuIHJlZ2lvbi0+b2Zmc2V0ICYgU05PUl9MQVNUX1JFR0lPTjsKK30KKworc3RhdGljIHU2NCBfX21heWJlX3VudXNlZAorc3BpX25vcl9yZWdpb25fZW5kKGNvbnN0IHN0cnVjdCBzcGlfbm9yX2VyYXNlX3JlZ2lvbiAqcmVnaW9uKQoreworCXJldHVybiAocmVnaW9uLT5vZmZzZXQgJiB+U05PUl9FUkFTRV9GTEFHU19NQVNLKSArIHJlZ2lvbi0+c2l6ZTsKK30KKworc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQKK3NwaV9ub3JfcmVnaW9uX21hcmtfZW5kKHN0cnVjdCBzcGlfbm9yX2VyYXNlX3JlZ2lvbiAqcmVnaW9uKQoreworCXJlZ2lvbi0+b2Zmc2V0IHw9IFNOT1JfTEFTVF9SRUdJT047Cit9CisKK3N0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCitzcGlfbm9yX3JlZ2lvbl9tYXJrX292ZXJsYXkoc3RydWN0IHNwaV9ub3JfZXJhc2VfcmVnaW9uICpyZWdpb24pCit7CisJcmVnaW9uLT5vZmZzZXQgfD0gU05PUl9PVkVSTEFJRF9SRUdJT047Cit9CisKK3N0YXRpYyBib29sIF9fbWF5YmVfdW51c2VkIHNwaV9ub3JfaGFzX3VuaWZvcm1fZXJhc2UoY29uc3Qgc3RydWN0IHNwaV9ub3IgKm5vcikKK3sKKwlyZXR1cm4gISFub3ItPnBhcmFtcy5lcmFzZV9tYXAudW5pZm9ybV9lcmFzZV90eXBlOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc3BpX25vcl9zZXRfZmxhc2hfbm9kZShzdHJ1Y3Qgc3BpX25vciAqbm9yLAorCQkJCQkgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCit7CisJbXRkX3NldF9vZl9ub2RlKCZub3ItPm10ZCwgbnApOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkZXZpY2Vfbm9kZSAqc3BpX25vcl9nZXRfZmxhc2hfbm9kZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQoreworCXJldHVybiBtdGRfZ2V0X29mX25vZGUoJm5vci0+bXRkKTsKK30KKwogLyoqCiAgKiBzcGlfbm9yX3NjYW4oKSAtIHNjYW4gdGhlIFNQSSBOT1IKICAqIEBub3I6CXRoZSBzcGlfbm9yIHN0cnVjdHVyZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tdGQvc3VwZXIuaCBiL2luY2x1ZGUvbGludXgvbXRkL3N1cGVyLmgKaW5kZXggNDJkYjNmOC4uMzYwOGE2YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tdGQvc3VwZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L210ZC9zdXBlci5oCkBAIC0xNyw5ICsxNyw2IEBACiBleHRlcm4gaW50IGdldF90cmVlX210ZChzdHJ1Y3QgZnNfY29udGV4dCAqZmMsCiAJCSAgICAgaW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJCQkgICAgICAgc3RydWN0IGZzX2NvbnRleHQgKmZjKSk7Ci1leHRlcm4gc3RydWN0IGRlbnRyeSAqbW91bnRfbXRkKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLCBpbnQgZmxhZ3MsCi0JCSAgICAgIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhLAotCQkgICAgICBpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqLCBpbnQpKTsKIGV4dGVybiB2b2lkIGtpbGxfbXRkX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmZzX2ZzLmggYi9pbmNsdWRlL2xpbnV4L25mc19mcy5oCmluZGV4IDBhMTE3MTIuLjU3MGE2MGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmZzX2ZzLmgKKysrIGIvaW5jbHVkZS9saW51eC9uZnNfZnMuaApAQCAtNDkwLDYgKzQ5MCw5IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5mc19kaXJfb3BlcmF0aW9uczsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgbmZzX2RlbnRyeV9vcGVyYXRpb25zOwogCiBleHRlcm4gdm9pZCBuZnNfZm9yY2VfbG9va3VwX3JldmFsaWRhdGUoc3RydWN0IGlub2RlICpkaXIpOworZXh0ZXJuIHN0cnVjdCBkZW50cnkgKm5mc19hZGRfb3Jfb2J0YWluKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKKwkJCXN0cnVjdCBuZnNfZmggKmZoLCBzdHJ1Y3QgbmZzX2ZhdHRyICpmYXR0ciwKKwkJCXN0cnVjdCBuZnM0X2xhYmVsICpsYWJlbCk7CiBleHRlcm4gaW50IG5mc19pbnN0YW50aWF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuZnNfZmggKmZoLAogCQkJc3RydWN0IG5mc19mYXR0ciAqZmF0dHIsIHN0cnVjdCBuZnM0X2xhYmVsICpsYWJlbCk7CiBleHRlcm4gaW50IG5mc19tYXlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwgaW50IG9wZW5mbGFncyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L252bWUtZmMtZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L252bWUtZmMtZHJpdmVyLmgKaW5kZXggOThkOTA0OS4uMTBmODE2MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9udm1lLWZjLWRyaXZlci5oCisrKyBiL2luY2x1ZGUvbGludXgvbnZtZS1mYy1kcml2ZXIuaApAQCAtNiw2ICs2LDggQEAKICNpZm5kZWYgX05WTUVfRkNfRFJJVkVSX0gKICNkZWZpbmUgX05WTUVfRkNfRFJJVkVSX0ggMQogCisjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KKwogCiAvKgogICogKioqKioqKioqKioqKioqKioqKioqKiAgTExERCBGQy1OVk1FIEhvc3QgQVBJICoqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BhZ2VfZXh0LmggYi9pbmNsdWRlL2xpbnV4L3BhZ2VfZXh0LmgKaW5kZXggMDk1OTI5NS4uNjgyZmQ0NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wYWdlX2V4dC5oCisrKyBiL2luY2x1ZGUvbGludXgvcGFnZV9leHQuaApAQCAtMTgsNiArMTgsNyBAQCBzdHJ1Y3QgcGFnZV9leHRfb3BlcmF0aW9ucyB7CiAKIGVudW0gcGFnZV9leHRfZmxhZ3MgewogCVBBR0VfRVhUX09XTkVSLAorCVBBR0VfRVhUX09XTkVSX0FDVElWRSwKICNpZiBkZWZpbmVkKENPTkZJR19JRExFX1BBR0VfVFJBQ0tJTkcpICYmICFkZWZpbmVkKENPTkZJR182NEJJVCkKIAlQQUdFX0VYVF9ZT1VORywKIAlQQUdFX0VYVF9JRExFLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wYWdlbWFwLmggYi9pbmNsdWRlL2xpbnV4L3BhZ2VtYXAuaAppbmRleCBjNzU1MjQ1Li4zN2E0ZDllIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BhZ2VtYXAuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BhZ2VtYXAuaApAQCAtMzMzLDYgKzMzMywxNiBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICpncmFiX2NhY2hlX3BhZ2Vfbm93YWl0KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQkJbWFwcGluZ19nZnBfbWFzayhtYXBwaW5nKSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2UgKmZpbmRfc3VicGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgcGdvZmZfdCBvZmZzZXQpCit7CisJaWYgKFBhZ2VIdWdlKHBhZ2UpKQorCQlyZXR1cm4gcGFnZTsKKworCVZNX0JVR19PTl9QQUdFKFBhZ2VUYWlsKHBhZ2UpLCBwYWdlKTsKKworCXJldHVybiBwYWdlICsgKG9mZnNldCAmIChjb21wb3VuZF9ucihwYWdlKSAtIDEpKTsKK30KKwogc3RydWN0IHBhZ2UgKmZpbmRfZ2V0X2VudHJ5KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBwZ29mZl90IG9mZnNldCk7CiBzdHJ1Y3QgcGFnZSAqZmluZF9sb2NrX2VudHJ5KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBwZ29mZl90IG9mZnNldCk7CiB1bnNpZ25lZCBmaW5kX2dldF9lbnRyaWVzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBwZ29mZl90IHN0YXJ0LApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wYWdld2Fsay5oIGIvaW5jbHVkZS9saW51eC9wYWdld2Fsay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkZGQ5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L3BhZ2V3YWxrLmgKQEAgLTAsMCArMSw2NiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKyNpZm5kZWYgX0xJTlVYX1BBR0VXQUxLX0gKKyNkZWZpbmUgX0xJTlVYX1BBR0VXQUxLX0gKKworI2luY2x1ZGUgPGxpbnV4L21tLmg+CisKK3N0cnVjdCBtbV93YWxrOworCisvKioKKyAqIG1tX3dhbGtfb3BzIC0gY2FsbGJhY2tzIGZvciB3YWxrX3BhZ2VfcmFuZ2UKKyAqIEBwdWRfZW50cnk6CQlpZiBzZXQsIGNhbGxlZCBmb3IgZWFjaCBub24tZW1wdHkgUFVEICgybmQtbGV2ZWwpIGVudHJ5CisgKgkJCXRoaXMgaGFuZGxlciBzaG91bGQgb25seSBoYW5kbGUgcHVkX3RyYW5zX2h1Z2UoKSBwdWRzLgorICoJCQl0aGUgcG1kX2VudHJ5IG9yIHB0ZV9lbnRyeSBjYWxsYmFja3Mgd2lsbCBiZSB1c2VkIGZvcgorICoJCQlyZWd1bGFyIFBVRHMuCisgKiBAcG1kX2VudHJ5OgkJaWYgc2V0LCBjYWxsZWQgZm9yIGVhY2ggbm9uLWVtcHR5IFBNRCAoM3JkLWxldmVsKSBlbnRyeQorICoJCQl0aGlzIGhhbmRsZXIgaXMgcmVxdWlyZWQgdG8gYmUgYWJsZSB0byBoYW5kbGUKKyAqCQkJcG1kX3RyYW5zX2h1Z2UoKSBwbWRzLiAgVGhleSBtYXkgc2ltcGx5IGNob29zZSB0bworICoJCQlzcGxpdF9odWdlX3BhZ2UoKSBpbnN0ZWFkIG9mIGhhbmRsaW5nIGl0IGV4cGxpY2l0bHkuCisgKiBAcHRlX2VudHJ5OgkJaWYgc2V0LCBjYWxsZWQgZm9yIGVhY2ggbm9uLWVtcHR5IFBURSAoNHRoLWxldmVsKSBlbnRyeQorICogQHB0ZV9ob2xlOgkJaWYgc2V0LCBjYWxsZWQgZm9yIGVhY2ggaG9sZSBhdCBhbGwgbGV2ZWxzCisgKiBAaHVnZXRsYl9lbnRyeToJaWYgc2V0LCBjYWxsZWQgZm9yIGVhY2ggaHVnZXRsYiBlbnRyeQorICogQHRlc3Rfd2FsazoJCWNhbGxlciBzcGVjaWZpYyBjYWxsYmFjayBmdW5jdGlvbiB0byBkZXRlcm1pbmUgd2hldGhlcgorICoJCQl3ZSB3YWxrIG92ZXIgdGhlIGN1cnJlbnQgdm1hIG9yIG5vdC4gUmV0dXJuaW5nIDAgbWVhbnMKKyAqCQkJImRvIHBhZ2UgdGFibGUgd2FsayBvdmVyIHRoZSBjdXJyZW50IHZtYSIsIHJldHVybmluZworICoJCQlhIG5lZ2F0aXZlIHZhbHVlIG1lYW5zICJhYm9ydCBjdXJyZW50IHBhZ2UgdGFibGUgd2FsaworICoJCQlyaWdodCBub3ciIGFuZCByZXR1cm5pbmcgMSBtZWFucyAic2tpcCB0aGUgY3VycmVudCB2bWEiCisgKi8KK3N0cnVjdCBtbV93YWxrX29wcyB7CisJaW50ICgqcHVkX2VudHJ5KShwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkgdW5zaWduZWQgbG9uZyBuZXh0LCBzdHJ1Y3QgbW1fd2FsayAqd2Fsayk7CisJaW50ICgqcG1kX2VudHJ5KShwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkgdW5zaWduZWQgbG9uZyBuZXh0LCBzdHJ1Y3QgbW1fd2FsayAqd2Fsayk7CisJaW50ICgqcHRlX2VudHJ5KShwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkgdW5zaWduZWQgbG9uZyBuZXh0LCBzdHJ1Y3QgbW1fd2FsayAqd2Fsayk7CisJaW50ICgqcHRlX2hvbGUpKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBuZXh0LAorCQkJc3RydWN0IG1tX3dhbGsgKndhbGspOworCWludCAoKmh1Z2V0bGJfZW50cnkpKHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgaG1hc2ssCisJCQkgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBuZXh0LAorCQkJICAgICBzdHJ1Y3QgbW1fd2FsayAqd2Fsayk7CisJaW50ICgqdGVzdF93YWxrKSh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbmV4dCwKKwkJCXN0cnVjdCBtbV93YWxrICp3YWxrKTsKK307CisKKy8qKgorICogbW1fd2FsayAtIHdhbGtfcGFnZV9yYW5nZSBkYXRhCisgKiBAb3BzOglvcGVyYXRpb24gdG8gY2FsbCBkdXJpbmcgdGhlIHdhbGsKKyAqIEBtbToJCW1tX3N0cnVjdCByZXByZXNlbnRpbmcgdGhlIHRhcmdldCBwcm9jZXNzIG9mIHBhZ2UgdGFibGUgd2FsaworICogQHZtYToJdm1hIGN1cnJlbnRseSB3YWxrZWQgKE5VTEwgaWYgd2Fsa2luZyBvdXRzaWRlIHZtYXMpCisgKiBAcHJpdmF0ZToJcHJpdmF0ZSBkYXRhIGZvciBjYWxsYmFja3MnIHVzYWdlCisgKgorICogKHNlZSB0aGUgY29tbWVudCBvbiB3YWxrX3BhZ2VfcmFuZ2UoKSBmb3IgbW9yZSBkZXRhaWxzKQorICovCitzdHJ1Y3QgbW1fd2FsayB7CisJY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzICpvcHM7CisJc3RydWN0IG1tX3N0cnVjdCAqbW07CisJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CisJdm9pZCAqcHJpdmF0ZTsKK307CisKK2ludCB3YWxrX3BhZ2VfcmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgc3RhcnQsCisJCXVuc2lnbmVkIGxvbmcgZW5kLCBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgKm9wcywKKwkJdm9pZCAqcHJpdmF0ZSk7CitpbnQgd2Fsa19wYWdlX3ZtYShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzICpvcHMsCisJCXZvaWQgKnByaXZhdGUpOworCisjZW5kaWYgLyogX0xJTlVYX1BBR0VXQUxLX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLWFzcG0uaCBiL2luY2x1ZGUvbGludXgvcGNpLWFzcG0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjcwNjQxNC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS1hc3BtLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwotLyoKLSAqCWFzcG0uaAotICoKLSAqCVBDSSBFeHByZXNzIEFTUE0gZGVmaW5lcyBhbmQgZnVuY3Rpb24gcHJvdG90eXBlcwotICoKLSAqCUNvcHlyaWdodCAoQykgMjAwNyBJbnRlbCBDb3JwLgotICoJCVpoYW5nIFlhbm1pbiAoeWFubWluLnpoYW5nQGludGVsLmNvbSkKLSAqCQlTaGFvaHVhIExpIChzaGFvaHVhLmxpQGludGVsLmNvbSkKLSAqCi0gKglGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIGNvbnN1bHQgdGhlIGZvbGxvd2luZyBtYW51YWxzIChsb29rIGF0Ci0gKglodHRwOi8vd3d3LnBjaXNpZy5jb20vIGZvciBob3cgdG8gZ2V0IHRoZW0pOgotICoKLSAqCVBDSSBFeHByZXNzIFNwZWNpZmljYXRpb24KLSAqLwotCi0jaWZuZGVmIExJTlVYX0FTUE1fSAotI2RlZmluZSBMSU5VWF9BU1BNX0gKLQotI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgotCi0jZGVmaW5lIFBDSUVfTElOS19TVEFURV9MMFMJMQotI2RlZmluZSBQQ0lFX0xJTktfU1RBVEVfTDEJMgotI2RlZmluZSBQQ0lFX0xJTktfU1RBVEVfQ0xLUE0JNAotCi0jaWZkZWYgQ09ORklHX1BDSUVBU1BNCi1pbnQgcGNpX2Rpc2FibGVfbGlua19zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IHN0YXRlKTsKLWludCBwY2lfZGlzYWJsZV9saW5rX3N0YXRlX2xvY2tlZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IHN0YXRlKTsKLXZvaWQgcGNpZV9ub19hc3BtKHZvaWQpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IHBjaV9kaXNhYmxlX2xpbmtfc3RhdGUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBzdGF0ZSkKLXsgcmV0dXJuIDA7IH0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwY2llX25vX2FzcG0odm9pZCkgeyB9Ci0jZW5kaWYKLQotI2VuZGlmIC8qIExJTlVYX0FTUE1fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2ktcDJwZG1hLmggYi9pbmNsdWRlL2xpbnV4L3BjaS1wMnBkbWEuaAppbmRleCBiY2E5YmMzLi44MzE4YTk3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS1wMnBkbWEuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BjaS1wMnBkbWEuaApAQCAtMzAsOCArMzAsMTAgQEAgc3RydWN0IHNjYXR0ZXJsaXN0ICpwY2lfcDJwbWVtX2FsbG9jX3NnbChzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJCQkJIHVuc2lnbmVkIGludCAqbmVudHMsIHUzMiBsZW5ndGgpOwogdm9pZCBwY2lfcDJwbWVtX2ZyZWVfc2dsKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCk7CiB2b2lkIHBjaV9wMnBtZW1fcHVibGlzaChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgYm9vbCBwdWJsaXNoKTsKLWludCBwY2lfcDJwZG1hX21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csIGludCBuZW50cywKLQkJICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKTsKK2ludCBwY2lfcDJwZG1hX21hcF9zZ19hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCisJCWludCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKTsKK3ZvaWQgcGNpX3AycGRtYV91bm1hcF9zZ19hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCisJCWludCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKTsKIGludCBwY2lfcDJwZG1hX2VuYWJsZV9zdG9yZShjb25zdCBjaGFyICpwYWdlLCBzdHJ1Y3QgcGNpX2RldiAqKnAycF9kZXYsCiAJCQkgICAgYm9vbCAqdXNlX3AycGRtYSk7CiBzc2l6ZV90IHBjaV9wMnBkbWFfZW5hYmxlX3Nob3coY2hhciAqcGFnZSwgc3RydWN0IHBjaV9kZXYgKnAycF9kZXYsCkBAIC04MSwxMSArODMsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBjaV9wMnBtZW1fZnJlZV9zZ2woc3RydWN0IHBjaV9kZXYgKnBkZXYsCiBzdGF0aWMgaW5saW5lIHZvaWQgcGNpX3AycG1lbV9wdWJsaXNoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBib29sIHB1Ymxpc2gpCiB7CiB9Ci1zdGF0aWMgaW5saW5lIGludCBwY2lfcDJwZG1hX21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCXN0cnVjdCBzY2F0dGVybGlzdCAqc2csIGludCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQorc3RhdGljIGlubGluZSBpbnQgcGNpX3AycGRtYV9tYXBfc2dfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2LAorCQlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmVudHMsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKKwkJdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlyZXR1cm4gMDsKIH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBwY2lfcDJwZG1hX3VubWFwX3NnX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgaW50IG5lbnRzLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCisJCXVuc2lnbmVkIGxvbmcgYXR0cnMpCit7Cit9CiBzdGF0aWMgaW5saW5lIGludCBwY2lfcDJwZG1hX2VuYWJsZV9zdG9yZShjb25zdCBjaGFyICpwYWdlLAogCQlzdHJ1Y3QgcGNpX2RldiAqKnAycF9kZXYsIGJvb2wgKnVzZV9wMnBkbWEpCiB7CkBAIC0xMTEsNCArMTE5LDE2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBjaV9kZXYgKnBjaV9wMnBtZW1fZmluZChzdHJ1Y3QgZGV2aWNlICpjbGllbnQpCiAJcmV0dXJuIHBjaV9wMnBtZW1fZmluZF9tYW55KCZjbGllbnQsIDEpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBwY2lfcDJwZG1hX21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCisJCQkJICAgIGludCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQoreworCXJldHVybiBwY2lfcDJwZG1hX21hcF9zZ19hdHRycyhkZXYsIHNnLCBuZW50cywgZGlyLCAwKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBjaV9wMnBkbWFfdW5tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LAorCQlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmVudHMsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKK3sKKwlwY2lfcDJwZG1hX3VubWFwX3NnX2F0dHJzKGRldiwgc2csIG5lbnRzLCBkaXIsIDApOworfQorCiAjZW5kaWYgLyogX0xJTlVYX1BDSV9QMlBfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2kuaCBiL2luY2x1ZGUvbGludXgvcGNpLmgKaW5kZXggODJlNGNkMS4uZjkwODhjOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wY2kuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BjaS5oCkBAIC02LDEyICs2LDE4IEBACiAgKglDb3B5cmlnaHQgMTk5NCwgRHJldyBFY2toYXJkdAogICoJQ29weXJpZ2h0IDE5OTctLTE5OTkgTWFydGluIE1hcmVzIDxtakB1Y3cuY3o+CiAgKgorICoJUENJIEV4cHJlc3MgQVNQTSBkZWZpbmVzIGFuZCBmdW5jdGlvbiBwcm90b3R5cGVzCisgKglDb3B5cmlnaHQgKGMpIDIwMDcgSW50ZWwgQ29ycC4KKyAqCQlaaGFuZyBZYW5taW4gKHlhbm1pbi56aGFuZ0BpbnRlbC5jb20pCisgKgkJU2hhb2h1YSBMaSAoc2hhb2h1YS5saUBpbnRlbC5jb20pCisgKgogICoJRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBjb25zdWx0IHRoZSBmb2xsb3dpbmcgbWFudWFscyAobG9vayBhdAogICoJaHR0cDovL3d3dy5wY2lzaWcuY29tLyBmb3IgaG93IHRvIGdldCB0aGVtKToKICAqCiAgKglQQ0kgQklPUyBTcGVjaWZpY2F0aW9uCiAgKglQQ0kgTG9jYWwgQnVzIFNwZWNpZmljYXRpb24KICAqCVBDSSB0byBQQ0kgQnJpZGdlIFNwZWNpZmljYXRpb24KKyAqCVBDSSBFeHByZXNzIFNwZWNpZmljYXRpb24KICAqCVBDSSBTeXN0ZW0gRGVzaWduIEd1aWRlCiAgKi8KICNpZm5kZWYgTElOVVhfUENJX0gKQEAgLTE0NSwxMSArMTUxLDYgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyICpwY2lfcG93ZXJfbmFtZShwY2lfcG93ZXJfdCBzdGF0ZSkKIAlyZXR1cm4gcGNpX3Bvd2VyX25hbWVzWzEgKyAoX19mb3JjZSBpbnQpIHN0YXRlXTsKIH0KIAotI2RlZmluZSBQQ0lfUE1fRDJfREVMQVkJCTIwMAotI2RlZmluZSBQQ0lfUE1fRDNfV0FJVAkJMTAKLSNkZWZpbmUgUENJX1BNX0QzQ09MRF9XQUlUCTEwMAotI2RlZmluZSBQQ0lfUE1fQlVTX1dBSVQJCTUwCi0KIC8qKgogICogdHlwZWRlZiBwY2lfY2hhbm5lbF9zdGF0ZV90CiAgKgpAQCAtNDE4LDcgKzQxOSw2IEBAIHN0cnVjdCBwY2lfZGV2IHsKIAl1bnNpZ25lZCBpbnQJYnJva2VuX2ludHhfbWFza2luZzoxOwkvKiBJTlR4IG1hc2tpbmcgY2FuJ3QgYmUgdXNlZCAqLwogCXVuc2lnbmVkIGludAlpb193aW5kb3dfMWs6MTsJCS8qIEludGVsIGJyaWRnZSAxSyBJL08gd2luZG93cyAqLwogCXVuc2lnbmVkIGludAlpcnFfbWFuYWdlZDoxOwotCXVuc2lnbmVkIGludAloYXNfc2Vjb25kYXJ5X2xpbms6MTsKIAl1bnNpZ25lZCBpbnQJbm9uX2NvbXBsaWFudF9iYXJzOjE7CS8qIEJyb2tlbiBCQVJzOyBpZ25vcmUgdGhlbSAqLwogCXVuc2lnbmVkIGludAlpc19wcm9iZWQ6MTsJCS8qIERldmljZSBwcm9iaW5nIGluIHByb2dyZXNzICovCiAJdW5zaWduZWQgaW50CWxpbmtfYWN0aXZlX3JlcG9ydGluZzoxOy8qIERldmljZSBjYXBhYmxlIG9mIHJlcG9ydGluZyBsaW5rIGFjdGl2ZSAqLwpAQCAtNjQ5LDkgKzY0OSw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBjaV9kZXYgKnBjaV91cHN0cmVhbV9icmlkZ2Uoc3RydWN0IHBjaV9kZXYgKmRldikKIAlyZXR1cm4gZGV2LT5idXMtPnNlbGY7CiB9CiAKLXN0cnVjdCBkZXZpY2UgKnBjaV9nZXRfaG9zdF9icmlkZ2VfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwotdm9pZCBwY2lfcHV0X2hvc3RfYnJpZGdlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwotCiAjaWZkZWYgQ09ORklHX1BDSV9NU0kKIHN0YXRpYyBpbmxpbmUgYm9vbCBwY2lfZGV2X21zaV9lbmFibGVkKHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2KQogewpAQCAtOTI1LDYgKzkyMiwxMSBAQCBlbnVtIHsKIAlQQ0lfU0NBTl9BTExfUENJRV9ERVZTCT0gMHgwMDAwMDA0MCwJLyogU2NhbiBhbGwsIG5vdCBqdXN0IGRldiAwICovCiB9OwogCisjZGVmaW5lIFBDSV9JUlFfTEVHQUNZCQkoMSA8PCAwKSAvKiBBbGxvdyBsZWdhY3kgaW50ZXJydXB0cyAqLworI2RlZmluZSBQQ0lfSVJRX01TSQkJKDEgPDwgMSkgLyogQWxsb3cgTVNJIGludGVycnVwdHMgKi8KKyNkZWZpbmUgUENJX0lSUV9NU0lYCQkoMSA8PCAyKSAvKiBBbGxvdyBNU0ktWCBpbnRlcnJ1cHRzICovCisjZGVmaW5lIFBDSV9JUlFfQUZGSU5JVFkJKDEgPDwgMykgLyogQXV0by1hc3NpZ24gYWZmaW5pdHkgKi8KKwogLyogVGhlc2UgZXh0ZXJuYWwgZnVuY3Rpb25zIGFyZSBvbmx5IGF2YWlsYWJsZSB3aGVuIFBDSSBzdXBwb3J0IGlzIGVuYWJsZWQgKi8KICNpZmRlZiBDT05GSUdfUENJCiAKQEAgLTk2OSw3ICs5NzEsNyBAQCByZXNvdXJjZV9zaXplX3QgcGNpYmlvc19hbGlnbl9yZXNvdXJjZSh2b2lkICosIGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqLAogCQkJCXJlc291cmNlX3NpemVfdCwKIAkJCQlyZXNvdXJjZV9zaXplX3QpOwogCi0vKiBXZWFrIGJ1dCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IGFyY2ggKi8KKy8qIFdlYWsgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IGFyY2ggKi8KIHZvaWQgcGNpX2ZpeHVwX2NhcmRidXMoc3RydWN0IHBjaV9idXMgKik7CiAKIC8qIEdlbmVyaWMgUENJIGZ1bmN0aW9ucyB1c2VkIGludGVybmFsbHkgKi8KQEAgLTk5NSw3ICs5OTcsNiBAQCBzdHJ1Y3QgcGNpX2J1cyAqcGNpX3NjYW5fcm9vdF9idXMoc3RydWN0IGRldmljZSAqcGFyZW50LCBpbnQgYnVzLAogaW50IHBjaV9zY2FuX3Jvb3RfYnVzX2JyaWRnZShzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2UpOwogc3RydWN0IHBjaV9idXMgKnBjaV9hZGRfbmV3X2J1cyhzdHJ1Y3QgcGNpX2J1cyAqcGFyZW50LCBzdHJ1Y3QgcGNpX2RldiAqZGV2LAogCQkJCWludCBidXNucik7Ci12b2lkIHBjaWVfdXBkYXRlX2xpbmtfc3BlZWQoc3RydWN0IHBjaV9idXMgKmJ1cywgdTE2IGxpbmtfc3RhdHVzKTsKIHN0cnVjdCBwY2lfc2xvdCAqcGNpX2NyZWF0ZV9zbG90KHN0cnVjdCBwY2lfYnVzICpwYXJlbnQsIGludCBzbG90X25yLAogCQkJCSBjb25zdCBjaGFyICpuYW1lLAogCQkJCSBzdHJ1Y3QgaG90cGx1Z19zbG90ICpob3RwbHVnKTsKQEAgLTEyNDEsMTkgKzEyNDIsMTIgQEAgaW50IHBjaV93YWtlX2Zyb21fZDMoc3RydWN0IHBjaV9kZXYgKmRldiwgYm9vbCBlbmFibGUpOwogaW50IHBjaV9wcmVwYXJlX3RvX3NsZWVwKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogaW50IHBjaV9iYWNrX2Zyb21fc2xlZXAoc3RydWN0IHBjaV9kZXYgKmRldik7CiBib29sIHBjaV9kZXZfcnVuX3dha2Uoc3RydWN0IHBjaV9kZXYgKmRldik7Ci1ib29sIHBjaV9jaGVja19wbWVfc3RhdHVzKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwotdm9pZCBwY2lfcG1lX3dha2V1cF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cyk7CiB2b2lkIHBjaV9kM2NvbGRfZW5hYmxlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogdm9pZCBwY2lfZDNjb2xkX2Rpc2FibGUoc3RydWN0IHBjaV9kZXYgKmRldik7CiBib29sIHBjaWVfcmVsYXhlZF9vcmRlcmluZ19lbmFibGVkKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogdm9pZCBwY2lfd2FrZXVwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKIHZvaWQgcGNpX2J1c19zZXRfY3VycmVudF9zdGF0ZShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCBwY2lfcG93ZXJfdCBzdGF0ZSk7CiAKLS8qIFBDSSBWaXJ0dWFsIENoYW5uZWwgKi8KLWludCBwY2lfc2F2ZV92Y19zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKLXZvaWQgcGNpX3Jlc3RvcmVfdmNfc3RhdGUoc3RydWN0IHBjaV9kZXYgKmRldik7Ci12b2lkIHBjaV9hbGxvY2F0ZV92Y19zYXZlX2J1ZmZlcnMoc3RydWN0IHBjaV9kZXYgKmRldik7Ci0KIC8qIEZvciB1c2UgYnkgYXJjaCB3aXRoIGN1c3RvbSBwcm9iZSBjb2RlICovCiB2b2lkIHNldF9wY2llX3BvcnRfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7CiB2b2lkIHNldF9wY2llX2hvdHBsdWdfYnJpZGdlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKQEAgLTEyOTcsOCArMTI5MSw2IEBAIGludCBwY2lfcmVxdWVzdF9zZWxlY3RlZF9yZWdpb25zX2V4Y2x1c2l2ZShzdHJ1Y3QgcGNpX2RldiAqLCBpbnQsIGNvbnN0IGNoYXIgKik7CiB2b2lkIHBjaV9yZWxlYXNlX3NlbGVjdGVkX3JlZ2lvbnMoc3RydWN0IHBjaV9kZXYgKiwgaW50KTsKIAogLyogZHJpdmVycy9wY2kvYnVzLmMgKi8KLXN0cnVjdCBwY2lfYnVzICpwY2lfYnVzX2dldChzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKLXZvaWQgcGNpX2J1c19wdXQoc3RydWN0IHBjaV9idXMgKmJ1cyk7CiB2b2lkIHBjaV9hZGRfcmVzb3VyY2Uoc3RydWN0IGxpc3RfaGVhZCAqcmVzb3VyY2VzLCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcyk7CiB2b2lkIHBjaV9hZGRfcmVzb3VyY2Vfb2Zmc2V0KHN0cnVjdCBsaXN0X2hlYWQgKnJlc291cmNlcywgc3RydWN0IHJlc291cmNlICpyZXMsCiAJCQkgICAgIHJlc291cmNlX3NpemVfdCBvZmZzZXQpOwpAQCAtMTQwOCwxMSArMTQwMCw2IEBAIHJlc291cmNlX3NpemVfdCBwY2liaW9zX3dpbmRvd19hbGlnbm1lbnQoc3RydWN0IHBjaV9idXMgKmJ1cywKIGludCBwY2lfc2V0X3ZnYV9zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgYm9vbCBkZWNvZGUsCiAJCSAgICAgIHVuc2lnbmVkIGludCBjb21tYW5kX2JpdHMsIHUzMiBmbGFncyk7CiAKLSNkZWZpbmUgUENJX0lSUV9MRUdBQ1kJCSgxIDw8IDApIC8qIEFsbG93IGxlZ2FjeSBpbnRlcnJ1cHRzICovCi0jZGVmaW5lIFBDSV9JUlFfTVNJCQkoMSA8PCAxKSAvKiBBbGxvdyBNU0kgaW50ZXJydXB0cyAqLwotI2RlZmluZSBQQ0lfSVJRX01TSVgJCSgxIDw8IDIpIC8qIEFsbG93IE1TSS1YIGludGVycnVwdHMgKi8KLSNkZWZpbmUgUENJX0lSUV9BRkZJTklUWQkoMSA8PCAzKSAvKiBBdXRvLWFzc2lnbiBhZmZpbml0eSAqLwotCiAvKgogICogVmlydHVhbCBpbnRlcnJ1cHRzIGFsbG93IGZvciBtb3JlIGludGVycnVwdHMgdG8gYmUgYWxsb2NhdGVkCiAgKiB0aGFuIHRoZSBkZXZpY2UgaGFzIGludGVycnVwdHMgZm9yLiBUaGVzZSBhcmUgbm90IHByb2dyYW1tZWQKQEAgLTE1MTcsMTQgKzE1MDQsNiBAQCBzdGF0aWMgaW5saW5lIGludCBwY2lfaXJxX2dldF9ub2RlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgdmVjKQogfQogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgaW50Ci1wY2lfYWxsb2NfaXJxX3ZlY3RvcnMoc3RydWN0IHBjaV9kZXYgKmRldiwgdW5zaWduZWQgaW50IG1pbl92ZWNzLAotCQkgICAgICB1bnNpZ25lZCBpbnQgbWF4X3ZlY3MsIHVuc2lnbmVkIGludCBmbGFncykKLXsKLQlyZXR1cm4gcGNpX2FsbG9jX2lycV92ZWN0b3JzX2FmZmluaXR5KGRldiwgbWluX3ZlY3MsIG1heF92ZWNzLCBmbGFncywKLQkJCQkJICAgICAgTlVMTCk7Ci19Ci0KIC8qKgogICogcGNpX2lycWRfaW50eF94bGF0ZSgpIC0gVHJhbnNsYXRlIFBDSSBJTlR4IHZhbHVlIHRvIGFuIElSUSBkb21haW4gaHdpcnEKICAqIEBkOiB0aGUgSU5UeCBJUlEgZG9tYWluCkBAIC0xNTY1LDEwICsxNTQ0LDIyIEBAIGV4dGVybiBib29sIHBjaWVfcG9ydHNfbmF0aXZlOwogI2RlZmluZSBwY2llX3BvcnRzX25hdGl2ZQlmYWxzZQogI2VuZGlmCiAKKyNkZWZpbmUgUENJRV9MSU5LX1NUQVRFX0wwUwkxCisjZGVmaW5lIFBDSUVfTElOS19TVEFURV9MMQkyCisjZGVmaW5lIFBDSUVfTElOS19TVEFURV9DTEtQTQk0CisKICNpZmRlZiBDT05GSUdfUENJRUFTUE0KK2ludCBwY2lfZGlzYWJsZV9saW5rX3N0YXRlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgc3RhdGUpOworaW50IHBjaV9kaXNhYmxlX2xpbmtfc3RhdGVfbG9ja2VkKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgc3RhdGUpOwordm9pZCBwY2llX25vX2FzcG0odm9pZCk7CiBib29sIHBjaWVfYXNwbV9zdXBwb3J0X2VuYWJsZWQodm9pZCk7CiBib29sIHBjaWVfYXNwbV9lbmFibGVkKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKICNlbHNlCitzdGF0aWMgaW5saW5lIGludCBwY2lfZGlzYWJsZV9saW5rX3N0YXRlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgc3RhdGUpCit7IHJldHVybiAwOyB9CitzdGF0aWMgaW5saW5lIGludCBwY2lfZGlzYWJsZV9saW5rX3N0YXRlX2xvY2tlZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IHN0YXRlKQoreyByZXR1cm4gMDsgfQorc3RhdGljIGlubGluZSB2b2lkIHBjaWVfbm9fYXNwbSh2b2lkKSB7IH0KIHN0YXRpYyBpbmxpbmUgYm9vbCBwY2llX2FzcG1fc3VwcG9ydF9lbmFibGVkKHZvaWQpIHsgcmV0dXJuIGZhbHNlOyB9CiBzdGF0aWMgaW5saW5lIGJvb2wgcGNpZV9hc3BtX2VuYWJsZWQoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKQEAgLTE1NzksMjMgKzE1NzAsOCBAQCBib29sIHBjaV9hZXJfYXZhaWxhYmxlKHZvaWQpOwogc3RhdGljIGlubGluZSBib29sIHBjaV9hZXJfYXZhaWxhYmxlKHZvaWQpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19QQ0lFX0VDUkMKLXZvaWQgcGNpZV9zZXRfZWNyY19jaGVja2luZyhzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKLXZvaWQgcGNpZV9lY3JjX2dldF9wb2xpY3koY2hhciAqc3RyKTsKLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgcGNpZV9zZXRfZWNyY19jaGVja2luZyhzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7IH0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwY2llX2VjcmNfZ2V0X3BvbGljeShjaGFyICpzdHIpIHsgfQotI2VuZGlmCi0KIGJvb2wgcGNpX2F0c19kaXNhYmxlZCh2b2lkKTsKIAotI2lmZGVmIENPTkZJR19QQ0lFX1BUTQotaW50IHBjaV9lbmFibGVfcHRtKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4ICpncmFudWxhcml0eSk7Ci0jZWxzZQotc3RhdGljIGlubGluZSBpbnQgcGNpX2VuYWJsZV9wdG0oc3RydWN0IHBjaV9kZXYgKmRldiwgdTggKmdyYW51bGFyaXR5KQoteyByZXR1cm4gLUVJTlZBTDsgfQotI2VuZGlmCi0KIHZvaWQgcGNpX2NmZ19hY2Nlc3NfbG9jayhzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIGJvb2wgcGNpX2NmZ19hY2Nlc3NfdHJ5bG9jayhzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIHZvaWQgcGNpX2NmZ19hY2Nlc3NfdW5sb2NrKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwpAQCAtMTc0OSwxMSArMTcyNSw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwY2lfcmVsZWFzZV9yZWdpb25zKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgfQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgcGNpX2FkZHJlc3NfdG9fcGlvKHBoeXNfYWRkcl90IGFkZHIpIHsgcmV0dXJuIC0xOyB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBwY2lfYmxvY2tfY2ZnX2FjY2VzcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7IH0KLXN0YXRpYyBpbmxpbmUgaW50IHBjaV9ibG9ja19jZmdfYWNjZXNzX2luX2F0b21pYyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQoteyByZXR1cm4gMDsgfQotc3RhdGljIGlubGluZSB2b2lkIHBjaV91bmJsb2NrX2NmZ19hY2Nlc3Moc3RydWN0IHBjaV9kZXYgKmRldikgeyB9Ci0KIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBjaV9idXMgKnBjaV9maW5kX25leHRfYnVzKGNvbnN0IHN0cnVjdCBwY2lfYnVzICpmcm9tKQogeyByZXR1cm4gTlVMTDsgfQogc3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX2RldiAqcGNpX2dldF9zbG90KHN0cnVjdCBwY2lfYnVzICpidXMsCkBAIC0xNzgyLDE3ICsxNzUzLDM2IEBAIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9tYXRjaF9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pCiAJCQkJCQkJIHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7IHJldHVybiBOVUxMOyB9CiBzdGF0aWMgaW5saW5lIGJvb2wgcGNpX2F0c19kaXNhYmxlZCh2b2lkKSB7IHJldHVybiB0cnVlOyB9CisKK3N0YXRpYyBpbmxpbmUgaW50IHBjaV9pcnFfdmVjdG9yKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHVuc2lnbmVkIGludCBucikKK3sKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGlubGluZSBpbnQKK3BjaV9hbGxvY19pcnFfdmVjdG9yc19hZmZpbml0eShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgbWluX3ZlY3MsCisJCQkgICAgICAgdW5zaWduZWQgaW50IG1heF92ZWNzLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCisJCQkgICAgICAgc3RydWN0IGlycV9hZmZpbml0eSAqYWZmX2Rlc2MpCit7CisJcmV0dXJuIC1FTk9TUEM7Cit9CiAjZW5kaWYgLyogQ09ORklHX1BDSSAqLwogCitzdGF0aWMgaW5saW5lIGludAorcGNpX2FsbG9jX2lycV92ZWN0b3JzKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHVuc2lnbmVkIGludCBtaW5fdmVjcywKKwkJICAgICAgdW5zaWduZWQgaW50IG1heF92ZWNzLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIHBjaV9hbGxvY19pcnFfdmVjdG9yc19hZmZpbml0eShkZXYsIG1pbl92ZWNzLCBtYXhfdmVjcywgZmxhZ3MsCisJCQkJCSAgICAgIE5VTEwpOworfQorCiAjaWZkZWYgQ09ORklHX1BDSV9BVFMKIC8qIEFkZHJlc3MgVHJhbnNsYXRpb24gU2VydmljZSAqLwotdm9pZCBwY2lfYXRzX2luaXQoc3RydWN0IHBjaV9kZXYgKmRldik7CiBpbnQgcGNpX2VuYWJsZV9hdHMoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHBzKTsKIHZvaWQgcGNpX2Rpc2FibGVfYXRzKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogaW50IHBjaV9hdHNfcXVldWVfZGVwdGgoc3RydWN0IHBjaV9kZXYgKmRldik7CiBpbnQgcGNpX2F0c19wYWdlX2FsaWduZWQoc3RydWN0IHBjaV9kZXYgKmRldik7CiAjZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHBjaV9hdHNfaW5pdChzdHJ1Y3QgcGNpX2RldiAqZCkgeyB9CiBzdGF0aWMgaW5saW5lIGludCBwY2lfZW5hYmxlX2F0cyhzdHJ1Y3QgcGNpX2RldiAqZCwgaW50IHBzKSB7IHJldHVybiAtRU5PREVWOyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgcGNpX2Rpc2FibGVfYXRzKHN0cnVjdCBwY2lfZGV2ICpkKSB7IH0KIHN0YXRpYyBpbmxpbmUgaW50IHBjaV9hdHNfcXVldWVfZGVwdGgoc3RydWN0IHBjaV9kZXYgKmQpIHsgcmV0dXJuIC1FTk9ERVY7IH0KQEAgLTE4MDMsNyArMTc5Myw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBjaV9hdHNfcGFnZV9hbGlnbmVkKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgcmV0dXJuIDA7IH0KIAogI2luY2x1ZGUgPGFzbS9wY2kuaD4KIAotLyogVGhlc2UgdHdvIGZ1bmN0aW9ucyBwcm92aWRlIGFsbW9zdCBpZGVudGljYWwgZnVuY3Rpb25hbGl0eS4gRGVwZW5uZGluZworLyogVGhlc2UgdHdvIGZ1bmN0aW9ucyBwcm92aWRlIGFsbW9zdCBpZGVudGljYWwgZnVuY3Rpb25hbGl0eS4gRGVwZW5kaW5nCiAgKiBvbiB0aGUgYXJjaGl0ZWN0dXJlLCBvbmUgd2lsbCBiZSBpbXBsZW1lbnRlZCBhcyBhIHdyYXBwZXIgYXJvdW5kIHRoZQogICogb3RoZXIgKGluIGRyaXZlcnMvcGNpL21tYXAuYykuCiAgKgpAQCAtMTg3MiwyNSArMTg2Miw5IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqcGNpX25hbWUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJcmV0dXJuIGRldl9uYW1lKCZwZGV2LT5kZXYpOwogfQogCi0KLS8qCi0gKiBTb21lIGFyY2hzIGRvbid0IHdhbnQgdG8gZXhwb3NlIHN0cnVjdCByZXNvdXJjZSB0byB1c2VybGFuZCBhcy1pcwotICogaW4gc3lzZnMgYW5kIC9wcm9jCi0gKi8KLSNpZmRlZiBIQVZFX0FSQ0hfUENJX1JFU09VUkNFX1RPX1VTRVIKIHZvaWQgcGNpX3Jlc291cmNlX3RvX3VzZXIoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IGJhciwKIAkJCSAgY29uc3Qgc3RydWN0IHJlc291cmNlICpyc3JjLAogCQkJICByZXNvdXJjZV9zaXplX3QgKnN0YXJ0LCByZXNvdXJjZV9zaXplX3QgKmVuZCk7Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHBjaV9yZXNvdXJjZV90b191c2VyKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBiYXIsCi0JCWNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcnNyYywgcmVzb3VyY2Vfc2l6ZV90ICpzdGFydCwKLQkJcmVzb3VyY2Vfc2l6ZV90ICplbmQpCi17Ci0JKnN0YXJ0ID0gcnNyYy0+c3RhcnQ7Ci0JKmVuZCA9IHJzcmMtPmVuZDsKLX0KLSNlbmRpZiAvKiBIQVZFX0FSQ0hfUENJX1JFU09VUkNFX1RPX1VTRVIgKi8KLQogCiAvKgogICogVGhlIHdvcmxkIGlzIG5vdCBwZXJmZWN0IGFuZCBzdXBwbGllcyB1cyB3aXRoIGJyb2tlbiBQQ0kgZGV2aWNlcy4KQEAgLTIwMzIsMTAgKzIwMDYsNiBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBwY2lfY2FyZGJ1c19tZW1fc2l6ZTsKIGV4dGVybiB1OCBwY2lfZGZsX2NhY2hlX2xpbmVfc2l6ZTsKIGV4dGVybiB1OCBwY2lfY2FjaGVfbGluZV9zaXplOwogCi1leHRlcm4gdW5zaWduZWQgbG9uZyBwY2lfaG90cGx1Z19pb19zaXplOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcGNpX2hvdHBsdWdfbWVtX3NpemU7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBwY2lfaG90cGx1Z19idXNfc2l6ZTsKLQogLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIHZlcnNpb25zIG1heSBvdmVycmlkZSB0aGVzZSAod2VhaykgKi8KIHZvaWQgcGNpYmlvc19kaXNhYmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIHZvaWQgcGNpYmlvc19zZXRfbWFzdGVyKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwpAQCAtMjMwNSwxMCArMjI3NSw2IEBAIGludCBwY2lfdnBkX2ZpbmRfaW5mb19rZXl3b3JkKGNvbnN0IHU4ICpidWYsIHVuc2lnbmVkIGludCBvZmYsCiAjaWZkZWYgQ09ORklHX09GCiBzdHJ1Y3QgZGV2aWNlX25vZGU7CiBzdHJ1Y3QgaXJxX2RvbWFpbjsKLXZvaWQgcGNpX3NldF9vZl9ub2RlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwotdm9pZCBwY2lfcmVsZWFzZV9vZl9ub2RlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwotdm9pZCBwY2lfc2V0X2J1c19vZl9ub2RlKHN0cnVjdCBwY2lfYnVzICpidXMpOwotdm9pZCBwY2lfcmVsZWFzZV9idXNfb2Zfbm9kZShzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKIHN0cnVjdCBpcnFfZG9tYWluICpwY2lfaG9zdF9icmlkZ2Vfb2ZfbXNpX2RvbWFpbihzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKIGludCBwY2lfcGFyc2VfcmVxdWVzdF9vZl9wY2lfcmFuZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJCQkgICAgc3RydWN0IGxpc3RfaGVhZCAqcmVzb3VyY2VzLApAQCAtMjMxOCwxMCArMjI4NCw2IEBAIGludCBwY2lfcGFyc2VfcmVxdWVzdF9vZl9wY2lfcmFuZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwKIHN0cnVjdCBkZXZpY2Vfbm9kZSAqcGNpYmlvc19nZXRfcGhiX29mX25vZGUoc3RydWN0IHBjaV9idXMgKmJ1cyk7CiAKICNlbHNlCS8qIENPTkZJR19PRiAqLwotc3RhdGljIGlubGluZSB2b2lkIHBjaV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7IH0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwY2lfcmVsZWFzZV9vZl9ub2RlKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgfQotc3RhdGljIGlubGluZSB2b2lkIHBjaV9zZXRfYnVzX29mX25vZGUoc3RydWN0IHBjaV9idXMgKmJ1cykgeyB9Ci1zdGF0aWMgaW5saW5lIHZvaWQgcGNpX3JlbGVhc2VfYnVzX29mX25vZGUoc3RydWN0IHBjaV9idXMgKmJ1cykgeyB9CiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpcnFfZG9tYWluICoKIHBjaV9ob3N0X2JyaWRnZV9vZl9tc2lfZG9tYWluKHN0cnVjdCBwY2lfYnVzICpidXMpIHsgcmV0dXJuIE5VTEw7IH0KIHN0YXRpYyBpbmxpbmUgaW50IHBjaV9wYXJzZV9yZXF1ZXN0X29mX3BjaV9yYW5nZXMoc3RydWN0IGRldmljZSAqZGV2LApAQCAtMjQzNSw0ICsyMzk3LDcgQEAgdm9pZCBwY2lfdWV2ZW50X2VycyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZW51bSAgcGNpX2Vyc19yZXN1bHQgZXJyX3R5cGUpOwogI2RlZmluZSBwY2lfbm90aWNlX3JhdGVsaW1pdGVkKHBkZXYsIGZtdCwgYXJnLi4uKSBcCiAJZGV2X25vdGljZV9yYXRlbGltaXRlZCgmKHBkZXYpLT5kZXYsIGZtdCwgIyNhcmcpCiAKKyNkZWZpbmUgcGNpX2luZm9fcmF0ZWxpbWl0ZWQocGRldiwgZm10LCBhcmcuLi4pIFwKKwlkZXZfaW5mb19yYXRlbGltaXRlZCgmKHBkZXYpLT5kZXYsIGZtdCwgIyNhcmcpCisKICNlbmRpZiAvKiBMSU5VWF9QQ0lfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2lfaG90cGx1Zy5oIGIvaW5jbHVkZS9saW51eC9wY2lfaG90cGx1Zy5oCmluZGV4IGY2OTRlYjIuLmI0ODJlNDIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNpX2hvdHBsdWcuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BjaV9ob3RwbHVnLmgKQEAgLTg2LDExNCArODYsMTQgQEAgdm9pZCBwY2lfaHBfZGVyZWdpc3RlcihzdHJ1Y3QgaG90cGx1Z19zbG90ICpzbG90KTsKICNkZWZpbmUgcGNpX2hwX2luaXRpYWxpemUoc2xvdCwgYnVzLCBuciwgbmFtZSkgXAogCV9fcGNpX2hwX2luaXRpYWxpemUoc2xvdCwgYnVzLCBuciwgbmFtZSwgVEhJU19NT0RVTEUsIEtCVUlMRF9NT0ROQU1FKQogCi0vKiBQQ0kgU2V0dGluZyBSZWNvcmQgKFR5cGUgMCkgKi8KLXN0cnVjdCBocHBfdHlwZTAgewotCXUzMiByZXZpc2lvbjsKLQl1OCAgY2FjaGVfbGluZV9zaXplOwotCXU4ICBsYXRlbmN5X3RpbWVyOwotCXU4ICBlbmFibGVfc2VycjsKLQl1OCAgZW5hYmxlX3BlcnI7Ci19OwotCi0vKiBQQ0ktWCBTZXR0aW5nIFJlY29yZCAoVHlwZSAxKSAqLwotc3RydWN0IGhwcF90eXBlMSB7Ci0JdTMyIHJldmlzaW9uOwotCXU4ICBtYXhfbWVtX3JlYWQ7Ci0JdTggIGF2Z19tYXhfc3BsaXQ7Ci0JdTE2IHRvdF9tYXhfc3BsaXQ7Ci19OwotCi0vKiBQQ0kgRXhwcmVzcyBTZXR0aW5nIFJlY29yZCAoVHlwZSAyKSAqLwotc3RydWN0IGhwcF90eXBlMiB7Ci0JdTMyIHJldmlzaW9uOwotCXUzMiB1bmNfZXJyX21hc2tfYW5kOwotCXUzMiB1bmNfZXJyX21hc2tfb3I7Ci0JdTMyIHVuY19lcnJfc2V2ZXJfYW5kOwotCXUzMiB1bmNfZXJyX3NldmVyX29yOwotCXUzMiBjb3JfZXJyX21hc2tfYW5kOwotCXUzMiBjb3JfZXJyX21hc2tfb3I7Ci0JdTMyIGFkdl9lcnJfY2FwX2FuZDsKLQl1MzIgYWR2X2Vycl9jYXBfb3I7Ci0JdTE2IHBjaV9leHBfZGV2Y3RsX2FuZDsKLQl1MTYgcGNpX2V4cF9kZXZjdGxfb3I7Ci0JdTE2IHBjaV9leHBfbG5rY3RsX2FuZDsKLQl1MTYgcGNpX2V4cF9sbmtjdGxfb3I7Ci0JdTMyIHNlY191bmNfZXJyX3NldmVyX2FuZDsKLQl1MzIgc2VjX3VuY19lcnJfc2V2ZXJfb3I7Ci0JdTMyIHNlY191bmNfZXJyX21hc2tfYW5kOwotCXUzMiBzZWNfdW5jX2Vycl9tYXNrX29yOwotfTsKLQotLyoKLSAqIF9IUFggUENJIEV4cHJlc3MgU2V0dGluZyBSZWNvcmQgKFR5cGUgMykKLSAqLwotc3RydWN0IGhweF90eXBlMyB7Ci0JdTE2IGRldmljZV90eXBlOwotCXUxNiBmdW5jdGlvbl90eXBlOwotCXUxNiBjb25maWdfc3BhY2VfbG9jYXRpb247Ci0JdTE2IHBjaV9leHBfY2FwX2lkOwotCXUxNiBwY2lfZXhwX2NhcF92ZXI7Ci0JdTE2IHBjaV9leHBfdmVuZG9yX2lkOwotCXUxNiBkdnNlY19pZDsKLQl1MTYgZHZzZWNfcmV2OwotCXUxNiBtYXRjaF9vZmZzZXQ7Ci0JdTMyIG1hdGNoX21hc2tfYW5kOwotCXUzMiBtYXRjaF92YWx1ZTsKLQl1MTYgcmVnX29mZnNldDsKLQl1MzIgcmVnX21hc2tfYW5kOwotCXUzMiByZWdfbWFza19vcjsKLX07Ci0KLXN0cnVjdCBob3RwbHVnX3Byb2dyYW1fb3BzIHsKLQl2b2lkICgqcHJvZ3JhbV90eXBlMCkoc3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IGhwcF90eXBlMCAqaHBwKTsKLQl2b2lkICgqcHJvZ3JhbV90eXBlMSkoc3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IGhwcF90eXBlMSAqaHBwKTsKLQl2b2lkICgqcHJvZ3JhbV90eXBlMikoc3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IGhwcF90eXBlMiAqaHBwKTsKLQl2b2lkICgqcHJvZ3JhbV90eXBlMykoc3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IGhweF90eXBlMyAqaHBwKTsKLX07Ci0KLWVudW0gaHB4X3R5cGUzX2Rldl90eXBlIHsKLQlIUFhfVFlQRV9FTkRQT0lOVAk9IEJJVCgwKSwKLQlIUFhfVFlQRV9MRUdfRU5ECT0gQklUKDEpLAotCUhQWF9UWVBFX1JDX0VORAkJPSBCSVQoMiksCi0JSFBYX1RZUEVfUkNfRUMJCT0gQklUKDMpLAotCUhQWF9UWVBFX1JPT1RfUE9SVAk9IEJJVCg0KSwKLQlIUFhfVFlQRV9VUFNUUkVBTQk9IEJJVCg1KSwKLQlIUFhfVFlQRV9ET1dOU1RSRUFNCT0gQklUKDYpLAotCUhQWF9UWVBFX1BDSV9CUklER0UJPSBCSVQoNyksCi0JSFBYX1RZUEVfUENJRV9CUklER0UJPSBCSVQoOCksCi19OwotCi1lbnVtIGhweF90eXBlM19mbl90eXBlIHsKLQlIUFhfRk5fTk9STUFMCQk9IEJJVCgwKSwKLQlIUFhfRk5fU1JJT1ZfUEhZUwk9IEJJVCgxKSwKLQlIUFhfRk5fU1JJT1ZfVklSVAk9IEJJVCgyKSwKLX07Ci0KLWVudW0gaHB4X3R5cGUzX2NmZ19sb2MgewotCUhQWF9DRkdfUENJQ0ZHCQk9IDAsCi0JSFBYX0NGR19QQ0lFX0NBUAk9IDEsCi0JSFBYX0NGR19QQ0lFX0NBUF9FWFQJPSAyLAotCUhQWF9DRkdfVkVORF9DQVAJPSAzLAotCUhQWF9DRkdfRFZTRUMJCT0gNCwKLQlIUFhfQ0ZHX01BWCwKLX07Ci0KICNpZmRlZiBDT05GSUdfQUNQSQogI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KLWludCBwY2lfYWNwaV9wcm9ncmFtX2hwX3BhcmFtcyhzdHJ1Y3QgcGNpX2RldiAqZGV2LAotCQkJICAgICAgIGNvbnN0IHN0cnVjdCBob3RwbHVnX3Byb2dyYW1fb3BzICpocF9vcHMpOwogYm9vbCBwY2llaHBfaXNfbmF0aXZlKHN0cnVjdCBwY2lfZGV2ICpicmlkZ2UpOwogaW50IGFjcGlfZ2V0X2hwX2h3X2NvbnRyb2xfZnJvbV9maXJtd2FyZShzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlKTsKIGJvb2wgc2hwY2hwX2lzX25hdGl2ZShzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlKTsKIGludCBhY3BpX3BjaV9jaGVja19lamVjdGFibGUoc3RydWN0IHBjaV9idXMgKnBidXMsIGFjcGlfaGFuZGxlIGhhbmRsZSk7CiBpbnQgYWNwaV9wY2lfZGV0ZWN0X2VqZWN0YWJsZShhY3BpX2hhbmRsZSBoYW5kbGUpOwogI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IHBjaV9hY3BpX3Byb2dyYW1faHBfcGFyYW1zKHN0cnVjdCBwY2lfZGV2ICpkZXYsCi0JCQkJICAgIGNvbnN0IHN0cnVjdCBob3RwbHVnX3Byb2dyYW1fb3BzICpocF9vcHMpCi17Ci0JcmV0dXJuIC1FTk9ERVY7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgaW50IGFjcGlfZ2V0X2hwX2h3X2NvbnRyb2xfZnJvbV9maXJtd2FyZShzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlKQogewogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2lfaWRzLmggYi9pbmNsdWRlL2xpbnV4L3BjaV9pZHMuaAppbmRleCBkZTFiNzVlOS4uMjFhNTcyNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKKysrIGIvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKQEAgLTIxMzQsNiArMjEzNCw3IEBACiAjZGVmaW5lIFBDSV9WRU5ET1JfSURfTVlSSUNPTQkJMHgxNGMxCiAKICNkZWZpbmUgUENJX1ZFTkRPUl9JRF9NRURJQVRFSwkJMHgxNGMzCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUVESUFURUtfNzYyOQkweDc2MjkKIAogI2RlZmluZSBQQ0lfVkVORE9SX0lEX1RJVEFOCQkweDE0RDIKICNkZWZpbmUgUENJX0RFVklDRV9JRF9USVRBTl8wMTBMCTB4ODAwMQpAQCAtMjU3NCw2ICsyNTc1LDggQEAKIAogI2RlZmluZSBQQ0lfVkVORE9SX0lEX0FTTUVESUEJCTB4MWIyMQogCisjZGVmaW5lIFBDSV9WRU5ET1JfSURfQU1BWk9OX0FOTkFQVVJOQV9MQUJTCTB4MWMzNgorCiAjZGVmaW5lIFBDSV9WRU5ET1JfSURfQ0lSQ1VJVENPCQkweDFjYzgKICNkZWZpbmUgUENJX1NVQlNZU1RFTV9JRF9DSVJDVUlUQ09fTUlOTk9XQk9BUkQJMHgwMDAxCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGluY3RybC9jb25zdW1lci5oIGIvaW5jbHVkZS9saW51eC9waW5jdHJsL2NvbnN1bWVyLmgKaW5kZXggODY3MjBhNS4uN2Y4YzdkOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9waW5jdHJsL2NvbnN1bWVyLmgKKysrIGIvaW5jbHVkZS9saW51eC9waW5jdHJsL2NvbnN1bWVyLmgKQEAgLTI0LDYgKzI0LDcgQEAgc3RydWN0IGRldmljZTsKICNpZmRlZiBDT05GSUdfUElOQ1RSTAogCiAvKiBFeHRlcm5hbCBpbnRlcmZhY2UgdG8gcGluIGNvbnRyb2wgKi8KK2V4dGVybiBib29sIHBpbmN0cmxfZ3Bpb19jYW5fdXNlX2xpbmUodW5zaWduZWQgZ3Bpbyk7CiBleHRlcm4gaW50IHBpbmN0cmxfZ3Bpb19yZXF1ZXN0KHVuc2lnbmVkIGdwaW8pOwogZXh0ZXJuIHZvaWQgcGluY3RybF9ncGlvX2ZyZWUodW5zaWduZWQgZ3Bpbyk7CiBleHRlcm4gaW50IHBpbmN0cmxfZ3Bpb19kaXJlY3Rpb25faW5wdXQodW5zaWduZWQgZ3Bpbyk7CkBAIC02MSw2ICs2MiwxMSBAQCBzdGF0aWMgaW5saW5lIGludCBwaW5jdHJsX3BtX3NlbGVjdF9pZGxlX3N0YXRlKHN0cnVjdCBkZXZpY2UgKmRldikKIAogI2Vsc2UgLyogIUNPTkZJR19QSU5DVFJMICovCiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwaW5jdHJsX2dwaW9fY2FuX3VzZV9saW5lKHVuc2lnbmVkIGdwaW8pCit7CisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IHBpbmN0cmxfZ3Bpb19yZXF1ZXN0KHVuc2lnbmVkIGdwaW8pCiB7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jaGFyZGV2LmggYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jaGFyZGV2LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RlOGZhYWY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY2hhcmRldi5oCkBAIC0wLDAgKzEsMzggQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisvKgorICogQ2hyb21lT1MgRUMgZGV2aWNlIGludGVyZmFjZS4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgR29vZ2xlLCBJbmMuCisgKi8KKworI2lmbmRlZiBfVUFQSV9MSU5VWF9DUk9TX0VDX0RFVl9IXworI2RlZmluZSBfVUFQSV9MSU5VWF9DUk9TX0VDX0RFVl9IXworCisjaW5jbHVkZSA8bGludXgvYml0cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oPgorCisjZGVmaW5lIENST1NfRUNfREVWX1ZFUlNJT04gIjEuMC4wIgorCisvKioKKyAqIHN0cnVjdCBjcm9zX2VjX3JlYWRtZW0gLSBTdHJ1Y3QgdXNlZCB0byByZWFkIG1hcHBlZCBtZW1vcnkuCisgKiBAb2Zmc2V0OiBXaXRoaW4gRUNfTFBDX0FERFJfTUVNTUFQIHJlZ2lvbi4KKyAqIEBieXRlczogTnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQuIFplcm8gbWVhbnMgInJlYWQgYSBzdHJpbmciIChpbmNsdWRpbmcgJ1wwJykKKyAqICAgICAgICAgQXQgbW9zdCBvbmx5IEVDX01FTU1BUF9TSVpFIGJ5dGVzIGNhbiBiZSByZWFkLgorICogQGJ1ZmZlcjogV2hlcmUgdG8gc3RvcmUgdGhlIHJlc3VsdC4gVGhlIGlvY3RsIHJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcworICogICAgICAgICByZWFkIG9yIG5lZ2F0aXZlIG9uIGVycm9yLgorICovCitzdHJ1Y3QgY3Jvc19lY19yZWFkbWVtIHsKKwl1aW50MzJfdCBvZmZzZXQ7CisJdWludDMyX3QgYnl0ZXM7CisJdWludDhfdCBidWZmZXJbRUNfTUVNTUFQX1NJWkVdOworfTsKKworI2RlZmluZSBDUk9TX0VDX0RFVl9JT0MgICAgICAgMHhFQworI2RlZmluZSBDUk9TX0VDX0RFVl9JT0NYQ01EICAgX0lPV1IoQ1JPU19FQ19ERVZfSU9DLCAwLCBzdHJ1Y3QgY3Jvc19lY19jb21tYW5kKQorI2RlZmluZSBDUk9TX0VDX0RFVl9JT0NSRE1FTSAgX0lPV1IoQ1JPU19FQ19ERVZfSU9DLCAxLCBzdHJ1Y3QgY3Jvc19lY19yZWFkbWVtKQorI2RlZmluZSBDUk9TX0VDX0RFVl9JT0NFVkVOVE1BU0sgX0lPKENST1NfRUNfREVWX0lPQywgMikKKworI2VuZGlmIC8qIF9DUk9TX0VDX0RFVl9IXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTg0MTU2OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmgKQEAgLTAsMCArMSw1NzI1IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCisvKgorICogSG9zdCBjb21tdW5pY2F0aW9uIGNvbW1hbmQgY29uc3RhbnRzIGZvciBDaHJvbWVPUyBFQworICoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYworICoKKyAqIE5PVEU6IFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBmcm9tIENocm9tZU9TIEVDIE9wZW4gU291cmNlIGNvZGUgZnJvbQorICogaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtb3MvcGxhdGZvcm0vZWMvKy9tYXN0ZXIvaW5jbHVkZS9lY19jb21tYW5kcy5oCisgKi8KKworLyogSG9zdCBjb21tdW5pY2F0aW9uIGNvbW1hbmQgY29uc3RhbnRzIGZvciBDaHJvbWUgRUMgKi8KKworI2lmbmRlZiBfX0NST1NfRUNfQ09NTUFORFNfSAorI2RlZmluZSBfX0NST1NfRUNfQ09NTUFORFNfSAorCisKKworCisjZGVmaW5lIEJVSUxEX0FTU0VSVChfY29uZCkKKworLyoKKyAqIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGlzIHByb3RvY29sCisgKgorICogVE9ETyhjcm9zYnVnLmNvbS9wLzExMjIzKTogVGhpcyBpcyBlZmZlY3RpdmVseSB1c2VsZXNzOyBwcm90b2NvbCBpcworICogZGV0ZXJtaW5lZCBpbiBvdGhlciB3YXlzLiAgUmVtb3ZlIHRoaXMgb25jZSB0aGUga2VybmVsIGNvZGUgbm8gbG9uZ2VyCisgKiBkZXBlbmRzIG9uIGl0LgorICovCisjZGVmaW5lIEVDX1BST1RPX1ZFUlNJT04gICAgICAgICAgMHgwMDAwMDAwMgorCisvKiBDb21tYW5kIHZlcnNpb24gbWFzayAqLworI2RlZmluZSBFQ19WRVJfTUFTSyh2ZXJzaW9uKSBCSVQodmVyc2lvbikKKworLyogSS9PIGFkZHJlc3NlcyBmb3IgQUNQSSBjb21tYW5kcyAqLworI2RlZmluZSBFQ19MUENfQUREUl9BQ1BJX0RBVEEgIDB4NjIKKyNkZWZpbmUgRUNfTFBDX0FERFJfQUNQSV9DTUQgICAweDY2CisKKy8qIEkvTyBhZGRyZXNzZXMgZm9yIGhvc3QgY29tbWFuZCAqLworI2RlZmluZSBFQ19MUENfQUREUl9IT1NUX0RBVEEgIDB4MjAwCisjZGVmaW5lIEVDX0xQQ19BRERSX0hPU1RfQ01EICAgMHgyMDQKKworLyogSS9PIGFkZHJlc3NlcyBmb3IgaG9zdCBjb21tYW5kIGFyZ3MgYW5kIHBhcmFtcyAqLworLyogUHJvdG9jb2wgdmVyc2lvbiAyICovCisjZGVmaW5lIEVDX0xQQ19BRERSX0hPU1RfQVJHUyAgICAweDgwMCAgLyogQW5kIDB4ODAxLCAweDgwMiwgMHg4MDMgKi8KKyNkZWZpbmUgRUNfTFBDX0FERFJfSE9TVF9QQVJBTSAgIDB4ODA0ICAvKiBGb3IgdmVyc2lvbiAyIHBhcmFtczsgc2l6ZSBpcworCQkJCQkgKiBFQ19QUk9UTzJfTUFYX1BBUkFNX1NJWkUKKwkJCQkJICovCisvKiBQcm90b2NvbCB2ZXJzaW9uIDMgKi8KKyNkZWZpbmUgRUNfTFBDX0FERFJfSE9TVF9QQUNLRVQgIDB4ODAwICAvKiBPZmZzZXQgb2YgdmVyc2lvbiAzIHBhY2tldCAqLworI2RlZmluZSBFQ19MUENfSE9TVF9QQUNLRVRfU0laRSAgMHgxMDAgIC8qIE1heCBzaXplIG9mIHZlcnNpb24gMyBwYWNrZXQgKi8KKworLyoKKyAqIFRoZSBhY3R1YWwgYmxvY2sgaXMgMHg4MDAtMHg4ZmYsIGJ1dCBzb21lIEJJT1NlcyB0aGluayBpdCdzIDB4ODgwLTB4OGZmCisgKiBhbmQgdGhleSB0ZWxsIHRoZSBrZXJuZWwgdGhhdCBzbyB3ZSBoYXZlIHRvIHRoaW5rIG9mIGl0IGFzIHR3byBwYXJ0cy4KKyAqLworI2RlZmluZSBFQ19IT1NUX0NNRF9SRUdJT04wICAgIDB4ODAwCisjZGVmaW5lIEVDX0hPU1RfQ01EX1JFR0lPTjEgICAgMHg4ODAKKyNkZWZpbmUgRUNfSE9TVF9DTURfUkVHSU9OX1NJWkUgMHg4MAorCisvKiBFQyBjb21tYW5kIHJlZ2lzdGVyIGJpdCBmdW5jdGlvbnMgKi8KKyNkZWZpbmUgRUNfTFBDX0NNRFJfREFUQQlCSVQoMCkgIC8qIERhdGEgcmVhZHkgZm9yIGhvc3QgdG8gcmVhZCAqLworI2RlZmluZSBFQ19MUENfQ01EUl9QRU5ESU5HCUJJVCgxKSAgLyogV3JpdGUgcGVuZGluZyB0byBFQyAqLworI2RlZmluZSBFQ19MUENfQ01EUl9CVVNZCUJJVCgyKSAgLyogRUMgaXMgYnVzeSBwcm9jZXNzaW5nIGEgY29tbWFuZCAqLworI2RlZmluZSBFQ19MUENfQ01EUl9DTUQJCUJJVCgzKSAgLyogTGFzdCBob3N0IHdyaXRlIHdhcyBhIGNvbW1hbmQgKi8KKyNkZWZpbmUgRUNfTFBDX0NNRFJfQUNQSV9CUlNUCUJJVCg0KSAgLyogQnVyc3QgbW9kZSAobm90IHVzZWQpICovCisjZGVmaW5lIEVDX0xQQ19DTURSX1NDSQkJQklUKDUpICAvKiBTQ0kgZXZlbnQgaXMgcGVuZGluZyAqLworI2RlZmluZSBFQ19MUENfQ01EUl9TTUkJCUJJVCg2KSAgLyogU01JIGV2ZW50IGlzIHBlbmRpbmcgKi8KKworI2RlZmluZSBFQ19MUENfQUREUl9NRU1NQVAgICAgICAgMHg5MDAKKyNkZWZpbmUgRUNfTUVNTUFQX1NJWkUgICAgICAgICAyNTUgLyogQUNQSSBJTyBidWZmZXIgbWF4IGlzIDI1NSBieXRlcyAqLworI2RlZmluZSBFQ19NRU1NQVBfVEVYVF9NQVggICAgIDggICAvKiBTaXplIG9mIGEgc3RyaW5nIGluIHRoZSBtZW1vcnkgbWFwICovCisKKy8qIFRoZSBvZmZzZXQgYWRkcmVzcyBvZiBlYWNoIHR5cGUgb2YgZGF0YSBpbiBtYXBwZWQgbWVtb3J5LiAqLworI2RlZmluZSBFQ19NRU1NQVBfVEVNUF9TRU5TT1IgICAgICAweDAwIC8qIFRlbXAgc2Vuc29ycyAweDAwIC0gMHgwZiAqLworI2RlZmluZSBFQ19NRU1NQVBfRkFOICAgICAgICAgICAgICAweDEwIC8qIEZhbiBzcGVlZHMgMHgxMCAtIDB4MTcgKi8KKyNkZWZpbmUgRUNfTUVNTUFQX1RFTVBfU0VOU09SX0IgICAgMHgxOCAvKiBNb3JlIHRlbXAgc2Vuc29ycyAweDE4IC0gMHgxZiAqLworI2RlZmluZSBFQ19NRU1NQVBfSUQgICAgICAgICAgICAgICAweDIwIC8qIDB4MjAgPT0gJ0UnLCAweDIxID09ICdDJyAqLworI2RlZmluZSBFQ19NRU1NQVBfSURfVkVSU0lPTiAgICAgICAweDIyIC8qIFZlcnNpb24gb2YgZGF0YSBpbiAweDIwIC0gMHgyZiAqLworI2RlZmluZSBFQ19NRU1NQVBfVEhFUk1BTF9WRVJTSU9OICAweDIzIC8qIFZlcnNpb24gb2YgZGF0YSBpbiAweDAwIC0gMHgxZiAqLworI2RlZmluZSBFQ19NRU1NQVBfQkFUVEVSWV9WRVJTSU9OICAweDI0IC8qIFZlcnNpb24gb2YgZGF0YSBpbiAweDQwIC0gMHg3ZiAqLworI2RlZmluZSBFQ19NRU1NQVBfU1dJVENIRVNfVkVSU0lPTiAweDI1IC8qIFZlcnNpb24gb2YgZGF0YSBpbiAweDMwIC0gMHgzMyAqLworI2RlZmluZSBFQ19NRU1NQVBfRVZFTlRTX1ZFUlNJT04gICAweDI2IC8qIFZlcnNpb24gb2YgZGF0YSBpbiAweDM0IC0gMHgzZiAqLworI2RlZmluZSBFQ19NRU1NQVBfSE9TVF9DTURfRkxBR1MgICAweDI3IC8qIEhvc3QgY21kIGludGVyZmFjZSBmbGFncyAoOCBiaXRzKSAqLworLyogVW51c2VkIDB4MjggLSAweDJmICovCisjZGVmaW5lIEVDX01FTU1BUF9TV0lUQ0hFUyAgICAgICAgIDB4MzAJLyogOCBiaXRzICovCisvKiBVbnVzZWQgMHgzMSAtIDB4MzMgKi8KKyNkZWZpbmUgRUNfTUVNTUFQX0hPU1RfRVZFTlRTICAgICAgMHgzNCAvKiA2NCBiaXRzICovCisvKiBCYXR0ZXJ5IHZhbHVlcyBhcmUgYWxsIDMyIGJpdHMsIHVubGVzcyBvdGhlcndpc2Ugbm90ZWQuICovCisjZGVmaW5lIEVDX01FTU1BUF9CQVRUX1ZPTFQgICAgICAgIDB4NDAgLyogQmF0dGVyeSBQcmVzZW50IFZvbHRhZ2UgKi8KKyNkZWZpbmUgRUNfTUVNTUFQX0JBVFRfUkFURSAgICAgICAgMHg0NCAvKiBCYXR0ZXJ5IFByZXNlbnQgUmF0ZSAqLworI2RlZmluZSBFQ19NRU1NQVBfQkFUVF9DQVAgICAgICAgICAweDQ4IC8qIEJhdHRlcnkgUmVtYWluaW5nIENhcGFjaXR5ICovCisjZGVmaW5lIEVDX01FTU1BUF9CQVRUX0ZMQUcgICAgICAgIDB4NGMgLyogQmF0dGVyeSBTdGF0ZSwgc2VlIGJlbG93ICg4LWJpdCkgKi8KKyNkZWZpbmUgRUNfTUVNTUFQX0JBVFRfQ09VTlQgICAgICAgMHg0ZCAvKiBCYXR0ZXJ5IENvdW50ICg4LWJpdCkgKi8KKyNkZWZpbmUgRUNfTUVNTUFQX0JBVFRfSU5ERVggICAgICAgMHg0ZSAvKiBDdXJyZW50IEJhdHRlcnkgRGF0YSBJbmRleCAoOC1iaXQpICovCisvKiBVbnVzZWQgMHg0ZiAqLworI2RlZmluZSBFQ19NRU1NQVBfQkFUVF9EQ0FQICAgICAgICAweDUwIC8qIEJhdHRlcnkgRGVzaWduIENhcGFjaXR5ICovCisjZGVmaW5lIEVDX01FTU1BUF9CQVRUX0RWTFQgICAgICAgIDB4NTQgLyogQmF0dGVyeSBEZXNpZ24gVm9sdGFnZSAqLworI2RlZmluZSBFQ19NRU1NQVBfQkFUVF9MRkNDICAgICAgICAweDU4IC8qIEJhdHRlcnkgTGFzdCBGdWxsIENoYXJnZSBDYXBhY2l0eSAqLworI2RlZmluZSBFQ19NRU1NQVBfQkFUVF9DQ05UICAgICAgICAweDVjIC8qIEJhdHRlcnkgQ3ljbGUgQ291bnQgKi8KKy8qIFN0cmluZ3MgYXJlIGFsbCA4IGJ5dGVzIChFQ19NRU1NQVBfVEVYVF9NQVgpICovCisjZGVmaW5lIEVDX01FTU1BUF9CQVRUX01GR1IgICAgICAgIDB4NjAgLyogQmF0dGVyeSBNYW51ZmFjdHVyZXIgU3RyaW5nICovCisjZGVmaW5lIEVDX01FTU1BUF9CQVRUX01PREVMICAgICAgIDB4NjggLyogQmF0dGVyeSBNb2RlbCBOdW1iZXIgU3RyaW5nICovCisjZGVmaW5lIEVDX01FTU1BUF9CQVRUX1NFUklBTCAgICAgIDB4NzAgLyogQmF0dGVyeSBTZXJpYWwgTnVtYmVyIFN0cmluZyAqLworI2RlZmluZSBFQ19NRU1NQVBfQkFUVF9UWVBFICAgICAgICAweDc4IC8qIEJhdHRlcnkgVHlwZSBTdHJpbmcgKi8KKyNkZWZpbmUgRUNfTUVNTUFQX0FMUyAgICAgICAgICAgICAgMHg4MCAvKiBBTFMgcmVhZGluZ3MgaW4gbHV4ICgyIFggMTYgYml0cykgKi8KKy8qIFVudXNlZCAweDg0IC0gMHg4ZiAqLworI2RlZmluZSBFQ19NRU1NQVBfQUNDX1NUQVRVUyAgICAgICAweDkwIC8qIEFjY2VsZXJvbWV0ZXIgc3RhdHVzICg4IGJpdHMgKSovCisvKiBVbnVzZWQgMHg5MSAqLworI2RlZmluZSBFQ19NRU1NQVBfQUNDX0RBVEEgICAgICAgICAweDkyIC8qIEFjY2VsZXJvbWV0ZXJzIGRhdGEgMHg5MiAtIDB4OWYgKi8KKy8qIDB4OTI6IExpZCBBbmdsZSBpZiBhdmFpbGFibGUsIExJRF9BTkdMRV9VTlJFTElBQkxFIG90aGVyd2lzZSAqLworLyogMHg5NCAtIDB4OTk6IDFzdCBBY2NlbGVyb21ldGVyICovCisvKiAweDlhIC0gMHg5ZjogMm5kIEFjY2VsZXJvbWV0ZXIgKi8KKyNkZWZpbmUgRUNfTUVNTUFQX0dZUk9fREFUQSAgICAgICAgMHhhMCAvKiBHeXJvc2NvcGUgZGF0YSAweGEwIC0gMHhhNSAqLworLyogVW51c2VkIDB4YTYgLSAweGRmICovCisKKy8qCisgKiBBQ1BJIGlzIHVuYWJsZSB0byBhY2Nlc3MgbWVtb3J5IG1hcHBlZCBkYXRhIGF0IG9yIGFib3ZlIHRoaXMgb2Zmc2V0IGR1ZSB0bworICogbGltaXRhdGlvbnMgb2YgdGhlIEFDUEkgcHJvdG9jb2wuIERvIG5vdCBwbGFjZSBkYXRhIGluIHRoZSByYW5nZSAweGUwIC0gMHhmZQorICogd2hpY2ggbWlnaHQgYmUgbmVlZGVkIGJ5IEFDUEkuCisgKi8KKyNkZWZpbmUgRUNfTUVNTUFQX05PX0FDUEkgMHhlMAorCisvKiBEZWZpbmUgdGhlIGZvcm1hdCBvZiB0aGUgYWNjZWxlcm9tZXRlciBtYXBwZWQgbWVtb3J5IHN0YXR1cyBieXRlLiAqLworI2RlZmluZSBFQ19NRU1NQVBfQUNDX1NUQVRVU19TQU1QTEVfSURfTUFTSyAgMHgwZgorI2RlZmluZSBFQ19NRU1NQVBfQUNDX1NUQVRVU19CVVNZX0JJVCAgICAgICAgQklUKDQpCisjZGVmaW5lIEVDX01FTU1BUF9BQ0NfU1RBVFVTX1BSRVNFTkNFX0JJVCAgICBCSVQoNykKKworLyogTnVtYmVyIG9mIHRlbXAgc2Vuc29ycyBhdCBFQ19NRU1NQVBfVEVNUF9TRU5TT1IgKi8KKyNkZWZpbmUgRUNfVEVNUF9TRU5TT1JfRU5UUklFUyAgICAgMTYKKy8qCisgKiBOdW1iZXIgb2YgdGVtcCBzZW5zb3JzIGF0IEVDX01FTU1BUF9URU1QX1NFTlNPUl9CLgorICoKKyAqIFZhbGlkIG9ubHkgaWYgRUNfTUVNTUFQX1RIRVJNQUxfVkVSU0lPTiByZXR1cm5zID49IDIuCisgKi8KKyNkZWZpbmUgRUNfVEVNUF9TRU5TT1JfQl9FTlRSSUVTICAgICAgOAorCisvKiBTcGVjaWFsIHZhbHVlcyBmb3IgbWFwcGVkIHRlbXBlcmF0dXJlIHNlbnNvcnMgKi8KKyNkZWZpbmUgRUNfVEVNUF9TRU5TT1JfTk9UX1BSRVNFTlQgICAgMHhmZgorI2RlZmluZSBFQ19URU1QX1NFTlNPUl9FUlJPUiAgICAgICAgICAweGZlCisjZGVmaW5lIEVDX1RFTVBfU0VOU09SX05PVF9QT1dFUkVEICAgIDB4ZmQKKyNkZWZpbmUgRUNfVEVNUF9TRU5TT1JfTk9UX0NBTElCUkFURUQgMHhmYworLyoKKyAqIFRoZSBvZmZzZXQgb2YgdGVtcGVyYXR1cmUgdmFsdWUgc3RvcmVkIGluIG1hcHBlZCBtZW1vcnkuICBUaGlzIGFsbG93cworICogcmVwb3J0aW5nIGEgdGVtcGVyYXR1cmUgcmFuZ2Ugb2YgMjAwSyB0byA0NTRLID0gLTczQyB0byAxODFDLgorICovCisjZGVmaW5lIEVDX1RFTVBfU0VOU09SX09GRlNFVCAgICAgIDIwMAorCisvKgorICogTnVtYmVyIG9mIEFMUyByZWFkaW5ncyBhdCBFQ19NRU1NQVBfQUxTCisgKi8KKyNkZWZpbmUgRUNfQUxTX0VOVFJJRVMgICAgICAgICAgICAgMgorCisvKgorICogVGhlIGRlZmF1bHQgdmFsdWUgYSB0ZW1wZXJhdHVyZSBzZW5zb3Igd2lsbCByZXR1cm4gd2hlbiBpdCBpcyBwcmVzZW50IGJ1dAorICogaGFzIG5vdCBiZWVuIHJlYWQgdGhpcyBib290LiAgVGhpcyBpcyBhIHJlYXNvbmFibGUgbnVtYmVyIHRvIGF2b2lkCisgKiB0cmlnZ2VyaW5nIGFsYXJtcyBvbiB0aGUgaG9zdC4KKyAqLworI2RlZmluZSBFQ19URU1QX1NFTlNPUl9ERUZBVUxUICAgICAoMjk2IC0gRUNfVEVNUF9TRU5TT1JfT0ZGU0VUKQorCisjZGVmaW5lIEVDX0ZBTl9TUEVFRF9FTlRSSUVTICAgICAgIDQgICAgICAgLyogTnVtYmVyIG9mIGZhbnMgYXQgRUNfTUVNTUFQX0ZBTiAqLworI2RlZmluZSBFQ19GQU5fU1BFRURfTk9UX1BSRVNFTlQgICAweGZmZmYgIC8qIEVudHJ5IG5vdCBwcmVzZW50ICovCisjZGVmaW5lIEVDX0ZBTl9TUEVFRF9TVEFMTEVEICAgICAgIDB4ZmZmZSAgLyogRmFuIHN0YWxsZWQgKi8KKworLyogQmF0dGVyeSBiaXQgZmxhZ3MgYXQgRUNfTUVNTUFQX0JBVFRfRkxBRy4gKi8KKyNkZWZpbmUgRUNfQkFUVF9GTEFHX0FDX1BSRVNFTlQgICAweDAxCisjZGVmaW5lIEVDX0JBVFRfRkxBR19CQVRUX1BSRVNFTlQgMHgwMgorI2RlZmluZSBFQ19CQVRUX0ZMQUdfRElTQ0hBUkdJTkcgIDB4MDQKKyNkZWZpbmUgRUNfQkFUVF9GTEFHX0NIQVJHSU5HICAgICAweDA4CisjZGVmaW5lIEVDX0JBVFRfRkxBR19MRVZFTF9DUklUSUNBTCAweDEwCisvKiBTZXQgaWYgc29tZSBvZiB0aGUgc3RhdGljL2R5bmFtaWMgZGF0YSBpcyBpbnZhbGlkIChvciBvdXRkYXRlZCkuICovCisjZGVmaW5lIEVDX0JBVFRfRkxBR19JTlZBTElEX0RBVEEgMHgyMAorCisvKiBTd2l0Y2ggZmxhZ3MgYXQgRUNfTUVNTUFQX1NXSVRDSEVTICovCisjZGVmaW5lIEVDX1NXSVRDSF9MSURfT1BFTiAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgRUNfU1dJVENIX1BPV0VSX0JVVFRPTl9QUkVTU0VEICAgMHgwMgorI2RlZmluZSBFQ19TV0lUQ0hfV1JJVEVfUFJPVEVDVF9ESVNBQkxFRCAweDA0CisvKiBXYXMgcmVjb3ZlcnkgcmVxdWVzdGVkIHZpYSBrZXlib2FyZDsgbm93IHVudXNlZC4gKi8KKyNkZWZpbmUgRUNfU1dJVENIX0lHTk9SRTEJCSAweDA4CisvKiBSZWNvdmVyeSByZXF1ZXN0ZWQgdmlhIGRlZGljYXRlZCBzaWduYWwgKGZyb20gc2Vydm8gYm9hcmQpICovCisjZGVmaW5lIEVDX1NXSVRDSF9ERURJQ0FURURfUkVDT1ZFUlkgICAgIDB4MTAKKy8qIFdhcyBmYWtlIGRldmVsb3BlciBtb2RlIHN3aXRjaDsgbm93IHVudXNlZC4gIFJlbW92ZSBpbiBuZXh0IHJlZmFjdG9yLiAqLworI2RlZmluZSBFQ19TV0lUQ0hfSUdOT1JFMCAgICAgICAgICAgICAgICAweDIwCisKKy8qIEhvc3QgY29tbWFuZCBpbnRlcmZhY2UgZmxhZ3MgKi8KKy8qIEhvc3QgY29tbWFuZCBpbnRlcmZhY2Ugc3VwcG9ydHMgTFBDIGFyZ3MgKExQQyBpbnRlcmZhY2Ugb25seSkgKi8KKyNkZWZpbmUgRUNfSE9TVF9DTURfRkxBR19MUENfQVJHU19TVVBQT1JURUQgIDB4MDEKKy8qIEhvc3QgY29tbWFuZCBpbnRlcmZhY2Ugc3VwcG9ydHMgdmVyc2lvbiAzIHByb3RvY29sICovCisjZGVmaW5lIEVDX0hPU1RfQ01EX0ZMQUdfVkVSU0lPTl8zICAgMHgwMgorCisvKiBXaXJlbGVzcyBzd2l0Y2ggZmxhZ3MgKi8KKyNkZWZpbmUgRUNfV0lSRUxFU1NfU1dJVENIX0FMTCAgICAgICB+MHgwMCAgLyogQWxsIGZsYWdzICovCisjZGVmaW5lIEVDX1dJUkVMRVNTX1NXSVRDSF9XTEFOICAgICAgIDB4MDEgIC8qIFdMQU4gcmFkaW8gKi8KKyNkZWZpbmUgRUNfV0lSRUxFU1NfU1dJVENIX0JMVUVUT09USCAgMHgwMiAgLyogQmx1ZXRvb3RoIHJhZGlvICovCisjZGVmaW5lIEVDX1dJUkVMRVNTX1NXSVRDSF9XV0FOICAgICAgIDB4MDQgIC8qIFdXQU4gcG93ZXIgKi8KKyNkZWZpbmUgRUNfV0lSRUxFU1NfU1dJVENIX1dMQU5fUE9XRVIgMHgwOCAgLyogV0xBTiBwb3dlciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogQUNQSSBjb21tYW5kcworICoKKyAqIFRoZXNlIGFyZSB2YWxpZCBPTkxZIG9uIHRoZSBBQ1BJIGNvbW1hbmQvZGF0YSBwb3J0LgorICovCisKKy8qCisgKiBBQ1BJIFJlYWQgRW1iZWRkZWQgQ29udHJvbGxlcgorICoKKyAqIFRoaXMgcmVhZHMgZnJvbSBBQ1BJIG1lbW9yeSBzcGFjZSBvbiB0aGUgRUMgKEVDX0FDUElfTUVNXyopLgorICoKKyAqIFVzZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlOgorICoKKyAqICAgIC0gV3JpdGUgRUNfQ01EX0FDUElfUkVBRCB0byBFQ19MUENfQUREUl9BQ1BJX0NNRAorICogICAgLSBXYWl0IGZvciBFQ19MUENfQ01EUl9QRU5ESU5HIGJpdCB0byBjbGVhcgorICogICAgLSBXcml0ZSBhZGRyZXNzIHRvIEVDX0xQQ19BRERSX0FDUElfREFUQQorICogICAgLSBXYWl0IGZvciBFQ19MUENfQ01EUl9EQVRBIGJpdCB0byBzZXQKKyAqICAgIC0gUmVhZCB2YWx1ZSBmcm9tIEVDX0xQQ19BRERSX0FDUElfREFUQQorICovCisjZGVmaW5lIEVDX0NNRF9BQ1BJX1JFQUQgMHgwMDgwCisKKy8qCisgKiBBQ1BJIFdyaXRlIEVtYmVkZGVkIENvbnRyb2xsZXIKKyAqCisgKiBUaGlzIHJlYWRzIGZyb20gQUNQSSBtZW1vcnkgc3BhY2Ugb24gdGhlIEVDIChFQ19BQ1BJX01FTV8qKS4KKyAqCisgKiBVc2UgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZToKKyAqCisgKiAgICAtIFdyaXRlIEVDX0NNRF9BQ1BJX1dSSVRFIHRvIEVDX0xQQ19BRERSX0FDUElfQ01ECisgKiAgICAtIFdhaXQgZm9yIEVDX0xQQ19DTURSX1BFTkRJTkcgYml0IHRvIGNsZWFyCisgKiAgICAtIFdyaXRlIGFkZHJlc3MgdG8gRUNfTFBDX0FERFJfQUNQSV9EQVRBCisgKiAgICAtIFdhaXQgZm9yIEVDX0xQQ19DTURSX1BFTkRJTkcgYml0IHRvIGNsZWFyCisgKiAgICAtIFdyaXRlIHZhbHVlIHRvIEVDX0xQQ19BRERSX0FDUElfREFUQQorICovCisjZGVmaW5lIEVDX0NNRF9BQ1BJX1dSSVRFIDB4MDA4MQorCisvKgorICogQUNQSSBCdXJzdCBFbmFibGUgRW1iZWRkZWQgQ29udHJvbGxlcgorICoKKyAqIFRoaXMgZW5hYmxlcyBidXJzdCBtb2RlIG9uIHRoZSBFQyB0byBhbGxvdyB0aGUgaG9zdCB0byBpc3N1ZSBzZXZlcmFsCisgKiBjb21tYW5kcyBiYWNrLXRvLWJhY2suIFdoaWxlIGluIHRoaXMgbW9kZSwgd3JpdGVzIHRvIG1hcHBlZCBtdWx0aS1ieXRlCisgKiBkYXRhIGFyZSBsb2NrZWQgb3V0IHRvIGVuc3VyZSBkYXRhIGNvbnNpc3RlbmN5LgorICovCisjZGVmaW5lIEVDX0NNRF9BQ1BJX0JVUlNUX0VOQUJMRSAweDAwODIKKworLyoKKyAqIEFDUEkgQnVyc3QgRGlzYWJsZSBFbWJlZGRlZCBDb250cm9sbGVyCisgKgorICogVGhpcyBkaXNhYmxlcyBidXJzdCBtb2RlIG9uIHRoZSBFQyBhbmQgc3RvcHMgcHJldmVudGluZyBFQyB3cml0ZXMgdG8gbWFwcGVkCisgKiBtdWx0aS1ieXRlIGRhdGEuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0FDUElfQlVSU1RfRElTQUJMRSAweDAwODMKKworLyoKKyAqIEFDUEkgUXVlcnkgRW1iZWRkZWQgQ29udHJvbGxlcgorICoKKyAqIFRoaXMgY2xlYXJzIHRoZSBsb3dlc3Qtb3JkZXIgYml0IGluIHRoZSBjdXJyZW50bHkgcGVuZGluZyBob3N0IGV2ZW50cywgYW5kCisgKiBzZXRzIHRoZSByZXN1bHQgY29kZSB0byB0aGUgMS1iYXNlZCBpbmRleCBvZiB0aGUgYml0IChldmVudCAweDAwMDAwMDAxID0gMSwKKyAqIGV2ZW50IDB4ODAwMDAwMDAgPSAzMiksIG9yIDAgaWYgbm8gZXZlbnQgd2FzIHBlbmRpbmcuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0FDUElfUVVFUllfRVZFTlQgMHgwMDg0CisKKy8qIFZhbGlkIGFkZHJlc3NlcyBpbiBBQ1BJIG1lbW9yeSBzcGFjZSwgZm9yIHJlYWQvd3JpdGUgY29tbWFuZHMgKi8KKworLyogTWVtb3J5IHNwYWNlIHZlcnNpb247IHNldCB0byBFQ19BQ1BJX01FTV9WRVJTSU9OX0NVUlJFTlQgKi8KKyNkZWZpbmUgRUNfQUNQSV9NRU1fVkVSU0lPTiAgICAgICAgICAgIDB4MDAKKy8qCisgKiBUZXN0IGxvY2F0aW9uOyB3cml0aW5nIHZhbHVlIGhlcmUgdXBkYXRlcyB0ZXN0IGNvbXBsaW1lbnQgYnl0ZSB0byAoMHhmZiAtCisgKiB2YWx1ZSkuCisgKi8KKyNkZWZpbmUgRUNfQUNQSV9NRU1fVEVTVCAgICAgICAgICAgICAgIDB4MDEKKy8qIFRlc3QgY29tcGxpbWVudDsgd3JpdGVzIGhlcmUgYXJlIGlnbm9yZWQuICovCisjZGVmaW5lIEVDX0FDUElfTUVNX1RFU1RfQ09NUExJTUVOVCAgICAweDAyCisKKy8qIEtleWJvYXJkIGJhY2tsaWdodCBicmlnaHRuZXNzIHBlcmNlbnQgKDAgLSAxMDApICovCisjZGVmaW5lIEVDX0FDUElfTUVNX0tFWUJPQVJEX0JBQ0tMSUdIVCAweDAzCisvKiBEUFRGIFRhcmdldCBGYW4gRHV0eSAoMC0xMDAsIDB4ZmYgZm9yIGF1dG8vbm9uZSkgKi8KKyNkZWZpbmUgRUNfQUNQSV9NRU1fRkFOX0RVVFkgICAgICAgICAgIDB4MDQKKworLyoKKyAqIERQVEYgdGVtcCB0aHJlc2hvbGRzLiBBbnkgb2YgdGhlIEVDJ3MgdGVtcCBzZW5zb3JzIGNhbiBoYXZlIHVwIHRvIHR3bworICogaW5kZXBlbmRlbnQgdGhyZXNob2xkcyBhdHRhY2hlZCB0byB0aGVtLiBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgSUQKKyAqIHJlZ2lzdGVyIGRldGVybWluZXMgd2hpY2ggc2Vuc29yIGlzIGFmZmVjdGVkIGJ5IHRoZSBUSFJFU0hPTEQgYW5kIENPTU1JVAorICogcmVnaXN0ZXJzLiBUaGUgVEhSRVNIT0xEIHJlZ2lzdGVyIHVzZXMgdGhlIHNhbWUgRUNfVEVNUF9TRU5TT1JfT0ZGU0VUIHNjaGVtZQorICogYXMgdGhlIG1lbW9yeS1tYXBwZWQgc2Vuc29ycy4gVGhlIENPTU1JVCByZWdpc3RlciBhcHBsaWVzIHRob3NlIHNldHRpbmdzLgorICoKKyAqIFRoZSBzcGVjIGRvZXMgbm90IG1hbmRhdGUgYW55IHdheSB0byByZWFkIGJhY2sgdGhlIHRocmVzaG9sZCBzZXR0aW5ncworICogdGhlbXNlbHZlcywgYnV0IHdoZW4gYSB0aHJlc2hvbGQgaXMgY3Jvc3NlZCB0aGUgQVAgbmVlZHMgYSB3YXkgdG8gZGV0ZXJtaW5lCisgKiB3aGljaCBzZW5zb3IocykgYXJlIHJlc3BvbnNpYmxlLiBFYWNoIHJlYWRpbmcgb2YgdGhlIElEIHJlZ2lzdGVyIGNsZWFycyBhbmQKKyAqIHJldHVybnMgb25lIHNlbnNvciBJRCB0aGF0IGhhcyBjcm9zc2VkIG9uZSBvZiBpdHMgdGhyZXNob2xkIChpbiBlaXRoZXIKKyAqIGRpcmVjdGlvbikgc2luY2UgdGhlIGxhc3QgcmVhZC4gQSB2YWx1ZSBvZiAweEZGIG1lYW5zICJubyBuZXcgdGhyZXNob2xkcworICogaGF2ZSB0cmlwcGVkIi4gU2V0dGluZyBvciBlbmFibGluZyB0aGUgdGhyZXNob2xkcyBmb3IgYSBzZW5zb3Igd2lsbCBjbGVhcgorICogdGhlIHVucmVhZCBldmVudCBjb3VudCBmb3IgdGhhdCBzZW5zb3IuCisgKi8KKyNkZWZpbmUgRUNfQUNQSV9NRU1fVEVNUF9JRCAgICAgICAgICAgIDB4MDUKKyNkZWZpbmUgRUNfQUNQSV9NRU1fVEVNUF9USFJFU0hPTEQgICAgIDB4MDYKKyNkZWZpbmUgRUNfQUNQSV9NRU1fVEVNUF9DT01NSVQgICAgICAgIDB4MDcKKy8qCisgKiBIZXJlIGFyZSB0aGUgYml0cyBmb3IgdGhlIENPTU1JVCByZWdpc3RlcjoKKyAqICAgYml0IDAgc2VsZWN0cyB0aGUgdGhyZXNob2xkIGluZGV4IGZvciB0aGUgY2hvc2VuIHNlbnNvciAoMC8xKQorICogICBiaXQgMSBlbmFibGVzL2Rpc2FibGVzIHRoZSBzZWxlY3RlZCB0aHJlc2hvbGQgKDAgPSBvZmYsIDEgPSBvbikKKyAqIEVhY2ggd3JpdGUgdG8gdGhlIGNvbW1pdCByZWdpc3RlciBhZmZlY3RzIG9uZSB0aHJlc2hvbGQuCisgKi8KKyNkZWZpbmUgRUNfQUNQSV9NRU1fVEVNUF9DT01NSVRfU0VMRUNUX01BU0sgQklUKDApCisjZGVmaW5lIEVDX0FDUElfTUVNX1RFTVBfQ09NTUlUX0VOQUJMRV9NQVNLIEJJVCgxKQorLyoKKyAqIEV4YW1wbGU6CisgKgorICogU2V0IHRoZSB0aHJlc2hvbGRzIGZvciBzZW5zb3IgMiB0byA1MCBDIGFuZCA2MCBDOgorICogICB3cml0ZSAyIHRvIFsweDA1XSAgICAgIC0tICBzZWxlY3QgdGVtcCBzZW5zb3IgMgorICogICB3cml0ZSAweDdiIHRvIFsweDA2XSAgIC0tICBDX1RPX0soNTApIC0gRUNfVEVNUF9TRU5TT1JfT0ZGU0VUCisgKiAgIHdyaXRlIDB4MiB0byBbMHgwN10gICAgLS0gIGVuYWJsZSB0aHJlc2hvbGQgMCB3aXRoIHRoaXMgdmFsdWUKKyAqICAgd3JpdGUgMHg4NSB0byBbMHgwNl0gICAtLSAgQ19UT19LKDYwKSAtIEVDX1RFTVBfU0VOU09SX09GRlNFVAorICogICB3cml0ZSAweDMgdG8gWzB4MDddICAgIC0tICBlbmFibGUgdGhyZXNob2xkIDEgd2l0aCB0aGlzIHZhbHVlCisgKgorICogRGlzYWJsZSB0aGUgNjAgQyB0aHJlc2hvbGQsIGxlYXZpbmcgdGhlIDUwIEMgdGhyZXNob2xkIHVuY2hhbmdlZDoKKyAqICAgd3JpdGUgMiB0byBbMHgwNV0gICAgICAtLSAgc2VsZWN0IHRlbXAgc2Vuc29yIDIKKyAqICAgd3JpdGUgMHgxIHRvIFsweDA3XSAgICAtLSAgZGlzYWJsZSB0aHJlc2hvbGQgMQorICovCisKKy8qIERQVEYgYmF0dGVyeSBjaGFyZ2luZyBjdXJyZW50IGxpbWl0ICovCisjZGVmaW5lIEVDX0FDUElfTUVNX0NIQVJHSU5HX0xJTUlUICAgICAweDA4CisKKy8qIENoYXJnaW5nIGxpbWl0IGlzIHNwZWNpZmllZCBpbiA2NCBtQSBzdGVwcyAqLworI2RlZmluZSBFQ19BQ1BJX01FTV9DSEFSR0lOR19MSU1JVF9TVEVQX01BICAgNjQKKy8qIFZhbHVlIHRvIGRpc2FibGUgRFBURiBiYXR0ZXJ5IGNoYXJnaW5nIGxpbWl0ICovCisjZGVmaW5lIEVDX0FDUElfTUVNX0NIQVJHSU5HX0xJTUlUX0RJU0FCTEVEICAweGZmCisKKy8qCisgKiBSZXBvcnQgZGV2aWNlIG9yaWVudGF0aW9uCisgKiAgQml0cyAgICAgICBEZWZpbml0aW9uCisgKiAgMzoxICAgICAgICBEZXZpY2UgRFBURiBQcm9maWxlIE51bWJlciAoRERQTikKKyAqICAgICAgICAgICAgICAgMCAgID0gUmVzZXJ2ZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgKGluZGljYXRlcyBubyB2YWxpZAorICogICAgICAgICAgICAgICAgICAgICBwcm9maWxlIG51bWJlci4gSG9zdCBzaG91bGQgZmFsbCBiYWNrIHRvIHVzaW5nIFRCTUQpLgorICogICAgICAgICAgICAgIDEuLjcgPSBEUFRGIFByb2ZpbGUgbnVtYmVyIHRvIGluZGljYXRlIHRvIGhvc3Qgd2hpY2ggdGFibGUgbmVlZHMKKyAqICAgICAgICAgICAgICAgICAgICAgdG8gYmUgbG9hZGVkLgorICogICAwICAgICAgICAgVGFibGV0IE1vZGUgRGV2aWNlIEluZGljYXRvciAoVEJNRCkKKyAqLworI2RlZmluZSBFQ19BQ1BJX01FTV9ERVZJQ0VfT1JJRU5UQVRJT04gMHgwOQorI2RlZmluZSBFQ19BQ1BJX01FTV9UQk1EX1NISUZUICAgICAgICAgMAorI2RlZmluZSBFQ19BQ1BJX01FTV9UQk1EX01BU0sgICAgICAgICAgMHgxCisjZGVmaW5lIEVDX0FDUElfTUVNX0REUE5fU0hJRlQgICAgICAgICAxCisjZGVmaW5lIEVDX0FDUElfTUVNX0REUE5fTUFTSyAgICAgICAgICAweDcKKworLyoKKyAqIFJlcG9ydCBkZXZpY2UgZmVhdHVyZXMuIFVzZXMgdGhlIHNhbWUgZm9ybWF0IGFzIHRoZSBob3N0IGNvbW1hbmQsIGV4Y2VwdDoKKyAqCisgKiBiaXQgMCAoRUNfRkVBVFVSRV9MSU1JVEVEKSBjaGFuZ2VzIG1lYW5pbmcgZnJvbSAiRUMgY29kZSBoYXMgYSBsaW1pdGVkIHNldAorICogb2YgZmVhdHVyZXMiLCB3aGljaCBpcyBvZiBsaW1pdGVkIGludGVyZXN0IHdoZW4gdGhlIHN5c3RlbSBpcyBhbHJlYWR5CisgKiBpbnRlcnByZXRpbmcgQUNQSSBieXRlY29kZSwgdG8gIkVDX0ZFQVRVUkVTWzAtN10gaXMgbm90IHN1cHBvcnRlZCIuIFNpbmNlCisgKiB0aGVzZSBhcmUgc3VwcG9ydGVkLCBpdCBkZWZhdWx0cyB0byAwLgorICogVGhpcyBhbGxvd3MgZGV0ZWN0aW5nIHRoZSBwcmVzZW5jZSBvZiB0aGlzIGZpZWxkIHNpbmNlIG9sZGVyIHZlcnNpb25zIG9mCisgKiB0aGUgRUMgY29kZWJhc2Ugd291bGQgc2ltcGx5IHJldHVybiAweGZmIHRvIHRoYXQgdW5rbm93biBhZGRyZXNzLiBDaGVjaworICogRkVBVFVSRVMwICE9IDB4ZmYgKG9yIEZFQVRVUkVTMFswXSA9PSAwKSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3RoZXIgYml0cworICogYXJlIHZhbGlkLgorICovCisjZGVmaW5lIEVDX0FDUElfTUVNX0RFVklDRV9GRUFUVVJFUzAgMHgwYQorI2RlZmluZSBFQ19BQ1BJX01FTV9ERVZJQ0VfRkVBVFVSRVMxIDB4MGIKKyNkZWZpbmUgRUNfQUNQSV9NRU1fREVWSUNFX0ZFQVRVUkVTMiAweDBjCisjZGVmaW5lIEVDX0FDUElfTUVNX0RFVklDRV9GRUFUVVJFUzMgMHgwZAorI2RlZmluZSBFQ19BQ1BJX01FTV9ERVZJQ0VfRkVBVFVSRVM0IDB4MGUKKyNkZWZpbmUgRUNfQUNQSV9NRU1fREVWSUNFX0ZFQVRVUkVTNSAweDBmCisjZGVmaW5lIEVDX0FDUElfTUVNX0RFVklDRV9GRUFUVVJFUzYgMHgxMAorI2RlZmluZSBFQ19BQ1BJX01FTV9ERVZJQ0VfRkVBVFVSRVM3IDB4MTEKKworI2RlZmluZSBFQ19BQ1BJX01FTV9CQVRURVJZX0lOREVYICAgIDB4MTIKKworLyoKKyAqIFVTQiBQb3J0IFBvd2VyLiBFYWNoIGJpdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgY29ycmVzcG9uZGluZyBVU0IgcG9ydHMnIHBvd2VyCisgKiBpcyBlbmFibGVkICgxKSBvciBkaXNhYmxlZCAoMCkuCisgKiAgIGJpdCAwIFVTQiBwb3J0IElEIDAKKyAqICAgLi4uCisgKiAgIGJpdCA3IFVTQiBwb3J0IElEIDcKKyAqLworI2RlZmluZSBFQ19BQ1BJX01FTV9VU0JfUE9SVF9QT1dFUiAweDEzCisKKy8qCisgKiBBQ1BJIGFkZHJlc3NlcyAweDIwIC0gMHhmZiBtYXAgdG8gRUNfTUVNTUFQIG9mZnNldCAweDAwIC0gMHhkZi4gIFRoaXMgZGF0YQorICogaXMgcmVhZC1vbmx5IGZyb20gdGhlIEFQLiAgQWRkZWQgaW4gRUNfQUNQSV9NRU1fVkVSU0lPTiAyLgorICovCisjZGVmaW5lIEVDX0FDUElfTUVNX01BUFBFRF9CRUdJTiAgIDB4MjAKKyNkZWZpbmUgRUNfQUNQSV9NRU1fTUFQUEVEX1NJWkUgICAgMHhlMAorCisvKiBDdXJyZW50IHZlcnNpb24gb2YgQUNQSSBtZW1vcnkgYWRkcmVzcyBzcGFjZSAqLworI2RlZmluZSBFQ19BQ1BJX01FTV9WRVJTSU9OX0NVUlJFTlQgMgorCisKKy8qCisgKiBUaGlzIGhlYWRlciBmaWxlIGlzIHVzZWQgaW4gY29yZWJvb3QgYm90aCBpbiBDIGFuZCBBQ1BJIGNvZGUuICBUaGUgQUNQSSBjb2RlCisgKiBpcyBwcmUtcHJvY2Vzc2VkIHRvIGhhbmRsZSBjb25zdGFudHMgYnV0IHRoZSBBU0wgY29tcGlsZXIgaXMgdW5hYmxlIHRvCisgKiBoYW5kbGUgYWN0dWFsIEMgY29kZSBzbyBrZWVwIGl0IHNlcGFyYXRlLgorICovCisKKworLyoKKyAqIEF0dHJpYnV0ZXMgZm9yIEVDIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHBhY2tldHMuICBKdXN0IGRlZmluaW5nIF9fcGFja2VkCisgKiByZXN1bHRzIGluIGluZWZmaWNpZW50IGFzc2VtYmx5IGNvZGUgb24gQVJNLCBpZiB0aGUgc3RydWN0dXJlIGlzIGFjdHVhbGx5CisgKiAzMi1iaXQgYWxpZ25lZCwgYXMgaXQgc2hvdWxkIGJlIGZvciBhbGwgYnVmZmVycy4KKyAqCisgKiBCZSB2ZXJ5IGNhcmVmdWwgd2hlbiBhZGRpbmcgdGhlc2UgdG8gZXhpc3Rpbmcgc3RydWN0dXJlcy4gIFRoZXkgd2lsbCByb3VuZAorICogdXAgdGhlIHN0cnVjdHVyZSBzaXplIHRvIHRoZSBzcGVjaWZpZWQgYm91bmRhcnkuCisgKgorICogQWxzbyBiZSB2ZXJ5IGNhcmVmdWwgdG8gbWFrZSB0aGF0IGlmIGEgc3RydWN0dXJlIGlzIGluY2x1ZGVkIGluIHNvbWUgb3RoZXIKKyAqIHBhcmVudCBzdHJ1Y3R1cmUgdGhhdCB0aGUgYWxpZ25tZW50IHdpbGwgc3RpbGwgYmUgdHJ1ZSBnaXZlbiB0aGUgcGFja2luZyBvZgorICogdGhlIHBhcmVudCBzdHJ1Y3R1cmUuICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgaWYgdGhlIHN1Yi1zdHJ1Y3R1cmUKKyAqIHdpbGwgYmUgcGFzc2VkIGFzIGEgcG9pbnRlciB0byBhbm90aGVyIGZ1bmN0aW9uLCBzaW5jZSB0aGF0IGZ1bmN0aW9uIHdpbGwKKyAqIG5vdCBrbm93IGFib3V0IHRoZSBtaXNhbGlnbWVudCBjYXVzZWQgYnkgdGhlIHBhcmVudCBzdHJ1Y3R1cmUncyBwYWNraW5nLgorICoKKyAqIEFsc28gYmUgdmVyeSBjYXJlZnVsIHVzaW5nIF9fcGFja2VkIC0gcGFydGljdWxhcmx5IHdoZW4gbmVzdGluZyBub24tcGFja2VkCisgKiBzdHJ1Y3R1cmVzIGluc2lkZSBwYWNrZWQgb25lcy4gIEluIGZhY3QsIERPIE5PVCB1c2UgX19wYWNrZWQgZGlyZWN0bHk7CisgKiBhbHdheXMgdXNlIG9uZSBvZiB0aGVzZSBhdHRyaWJ1dGVzLgorICoKKyAqIE9uY2UgZXZlcnl0aGluZyBpcyBhbm5vdGF0ZWQgcHJvcGVybHksIHRoZSBmb2xsb3dpbmcgc2VhcmNoIHN0cmluZ3Mgc2hvdWxkCisgKiBub3QgcmV0dXJuIEFOWSBtYXRjaGVzIGluIHRoaXMgZmlsZSBvdGhlciB0aGFuIHJpZ2h0IGhlcmU6CisgKgorICogIl9fcGFja2VkIiAtIGdlbmVyYXRlcyBpbmVmZmljaWVudCBjb2RlOyBhbGwgc3ViLXN0cnVjdHMgbXVzdCBhbHNvIGJlIHBhY2tlZAorICoKKyAqICJzdHJ1Y3QgW15fXSIgLSBhbGwgc3RydWN0cyBzaG91bGQgYmUgYW5ub3RhdGVkLCBleGNlcHQgZm9yIHN0cnVjdHMgdGhhdCBhcmUKKyAqIG1lbWJlcnMgb2Ygb3RoZXIgc3RydWN0cy91bmlvbnMgKGFuZCB0aGVpciBvcmlnaW5hbCBkZWNsYXJhdGlvbnMgc2hvdWxkIGJlCisgKiBhbm5vdGF0ZWQpLgorICovCisKKy8qCisgKiBQYWNrZWQgc3RydWN0dXJlcyBtYWtlIG5vIGFzc3VtcHRpb24gYWJvdXQgYWxpZ25tZW50LCBzbyB0aGV5IGRvIGluZWZmaWNpZW50CisgKiBieXRlLXdpc2UgcmVhZHMuCisgKi8KKyNkZWZpbmUgX19lY19hbGlnbjEgX19wYWNrZWQKKyNkZWZpbmUgX19lY19hbGlnbjIgX19wYWNrZWQKKyNkZWZpbmUgX19lY19hbGlnbjQgX19wYWNrZWQKKyNkZWZpbmUgX19lY19hbGlnbl9zaXplMSBfX3BhY2tlZAorI2RlZmluZSBfX2VjX2FsaWduX29mZnNldDEgX19wYWNrZWQKKyNkZWZpbmUgX19lY19hbGlnbl9vZmZzZXQyIF9fcGFja2VkCisjZGVmaW5lIF9fZWNfdG9kb19wYWNrZWQgX19wYWNrZWQKKyNkZWZpbmUgX19lY190b2RvX3VucGFja2VkCisKKworLyogTFBDIGNvbW1hbmQgc3RhdHVzIGJ5dGUgbWFza3MgKi8KKy8qIEVDIGhhcyB3cml0dGVuIGEgYnl0ZSBpbiB0aGUgZGF0YSByZWdpc3RlciBhbmQgaG9zdCBoYXNuJ3QgcmVhZCBpdCB5ZXQgKi8KKyNkZWZpbmUgRUNfTFBDX1NUQVRVU19UT19IT1NUICAgICAweDAxCisvKiBIb3N0IGhhcyB3cml0dGVuIGEgY29tbWFuZC9kYXRhIGJ5dGUgYW5kIHRoZSBFQyBoYXNuJ3QgcmVhZCBpdCB5ZXQgKi8KKyNkZWZpbmUgRUNfTFBDX1NUQVRVU19GUk9NX0hPU1QgICAweDAyCisvKiBFQyBpcyBwcm9jZXNzaW5nIGEgY29tbWFuZCAqLworI2RlZmluZSBFQ19MUENfU1RBVFVTX1BST0NFU1NJTkcgIDB4MDQKKy8qIExhc3Qgd3JpdGUgdG8gRUMgd2FzIGEgY29tbWFuZCwgbm90IGRhdGEgKi8KKyNkZWZpbmUgRUNfTFBDX1NUQVRVU19MQVNUX0NNRCAgICAweDA4CisvKiBFQyBpcyBpbiBidXJzdCBtb2RlICovCisjZGVmaW5lIEVDX0xQQ19TVEFUVVNfQlVSU1RfTU9ERSAgMHgxMAorLyogU0NJIGV2ZW50IGlzIHBlbmRpbmcgKHJlcXVlc3RpbmcgU0NJIHF1ZXJ5KSAqLworI2RlZmluZSBFQ19MUENfU1RBVFVTX1NDSV9QRU5ESU5HIDB4MjAKKy8qIFNNSSBldmVudCBpcyBwZW5kaW5nIChyZXF1ZXN0aW5nIFNNSSBxdWVyeSkgKi8KKyNkZWZpbmUgRUNfTFBDX1NUQVRVU19TTUlfUEVORElORyAweDQwCisvKiAocmVzZXJ2ZWQpICovCisjZGVmaW5lIEVDX0xQQ19TVEFUVVNfUkVTRVJWRUQgICAgMHg4MAorCisvKgorICogRUMgaXMgYnVzeS4gIFRoaXMgY292ZXJzIGJvdGggdGhlIEVDIHByb2Nlc3NpbmcgYSBjb21tYW5kLCBhbmQgdGhlIGhvc3QgaGFzCisgKiB3cml0dGVuIGEgbmV3IGNvbW1hbmQgYnV0IHRoZSBFQyBoYXNuJ3QgcGlja2VkIGl0IHVwIHlldC4KKyAqLworI2RlZmluZSBFQ19MUENfU1RBVFVTX0JVU1lfTUFTSyBcCisJKEVDX0xQQ19TVEFUVVNfRlJPTV9IT1NUIHwgRUNfTFBDX1NUQVRVU19QUk9DRVNTSU5HKQorCisvKgorICogSG9zdCBjb21tYW5kIHJlc3BvbnNlIGNvZGVzICgxNi1iaXQpLiAgTm90ZSB0aGF0IHJlc3BvbnNlIGNvZGVzIHNob3VsZCBiZQorICogc3RvcmVkIGluIGEgdWludDE2X3QgcmF0aGVyIHRoYW4gZGlyZWN0bHkgaW4gYSB2YWx1ZSBvZiB0aGlzIHR5cGUuCisgKi8KK2VudW0gZWNfc3RhdHVzIHsKKwlFQ19SRVNfU1VDQ0VTUyA9IDAsCisJRUNfUkVTX0lOVkFMSURfQ09NTUFORCA9IDEsCisJRUNfUkVTX0VSUk9SID0gMiwKKwlFQ19SRVNfSU5WQUxJRF9QQVJBTSA9IDMsCisJRUNfUkVTX0FDQ0VTU19ERU5JRUQgPSA0LAorCUVDX1JFU19JTlZBTElEX1JFU1BPTlNFID0gNSwKKwlFQ19SRVNfSU5WQUxJRF9WRVJTSU9OID0gNiwKKwlFQ19SRVNfSU5WQUxJRF9DSEVDS1NVTSA9IDcsCisJRUNfUkVTX0lOX1BST0dSRVNTID0gOCwJCS8qIEFjY2VwdGVkLCBjb21tYW5kIGluIHByb2dyZXNzICovCisJRUNfUkVTX1VOQVZBSUxBQkxFID0gOSwJCS8qIE5vIHJlc3BvbnNlIGF2YWlsYWJsZSAqLworCUVDX1JFU19USU1FT1VUID0gMTAsCQkvKiBXZSBnb3QgYSB0aW1lb3V0ICovCisJRUNfUkVTX09WRVJGTE9XID0gMTEsCQkvKiBUYWJsZSAvIGRhdGEgb3ZlcmZsb3cgKi8KKwlFQ19SRVNfSU5WQUxJRF9IRUFERVIgPSAxMiwgICAgIC8qIEhlYWRlciBjb250YWlucyBpbnZhbGlkIGRhdGEgKi8KKwlFQ19SRVNfUkVRVUVTVF9UUlVOQ0FURUQgPSAxMywgIC8qIERpZG4ndCBnZXQgdGhlIGVudGlyZSByZXF1ZXN0ICovCisJRUNfUkVTX1JFU1BPTlNFX1RPT19CSUcgPSAxNCwgICAvKiBSZXNwb25zZSB3YXMgdG9vIGJpZyB0byBoYW5kbGUgKi8KKwlFQ19SRVNfQlVTX0VSUk9SID0gMTUsCQkvKiBDb21tdW5pY2F0aW9ucyBidXMgZXJyb3IgKi8KKwlFQ19SRVNfQlVTWSA9IDE2LAkJLyogVXAgYnV0IHRvbyBidXN5LiAgU2hvdWxkIHJldHJ5ICovCisJRUNfUkVTX0lOVkFMSURfSEVBREVSX1ZFUlNJT04gPSAxNywgIC8qIEhlYWRlciB2ZXJzaW9uIGludmFsaWQgKi8KKwlFQ19SRVNfSU5WQUxJRF9IRUFERVJfQ1JDID0gMTgsICAgICAgLyogSGVhZGVyIENSQyBpbnZhbGlkICovCisJRUNfUkVTX0lOVkFMSURfREFUQV9DUkMgPSAxOSwgICAgICAgIC8qIERhdGEgQ1JDIGludmFsaWQgKi8KKwlFQ19SRVNfRFVQX1VOQVZBSUxBQkxFID0gMjAsICAgICAgICAgLyogQ2FuJ3QgcmVzZW5kIHJlc3BvbnNlICovCit9OworCisvKgorICogSG9zdCBldmVudCBjb2Rlcy4gIE5vdGUgdGhlc2UgYXJlIDEtYmFzZWQsIG5vdCAwLWJhc2VkLCBiZWNhdXNlIEFDUEkgcXVlcnkKKyAqIEVDIGNvbW1hbmQgdXNlcyBjb2RlIDAgdG8gbWVhbiAibm8gZXZlbnQgcGVuZGluZyIuICBXZSBleHBsaWNpdGx5IHNwZWNpZnkKKyAqIGVhY2ggdmFsdWUgaW4gdGhlIGVudW0gbGlzdGluZyBzbyB0aGV5IHdvbid0IGNoYW5nZSBpZiB3ZSBkZWxldGUvaW5zZXJ0IGFuCisgKiBpdGVtIG9yIHJlYXJyYW5nZSB0aGUgbGlzdCAoaXQgbmVlZHMgdG8gYmUgc3RhYmxlIGFjcm9zcyBwbGF0Zm9ybXMsIG5vdAorICoganVzdCB3aXRoaW4gYSBzaW5nbGUgY29tcGlsZWQgaW5zdGFuY2UpLgorICovCitlbnVtIGhvc3RfZXZlbnRfY29kZSB7CisJRUNfSE9TVF9FVkVOVF9MSURfQ0xPU0VEID0gMSwKKwlFQ19IT1NUX0VWRU5UX0xJRF9PUEVOID0gMiwKKwlFQ19IT1NUX0VWRU5UX1BPV0VSX0JVVFRPTiA9IDMsCisJRUNfSE9TVF9FVkVOVF9BQ19DT05ORUNURUQgPSA0LAorCUVDX0hPU1RfRVZFTlRfQUNfRElTQ09OTkVDVEVEID0gNSwKKwlFQ19IT1NUX0VWRU5UX0JBVFRFUllfTE9XID0gNiwKKwlFQ19IT1NUX0VWRU5UX0JBVFRFUllfQ1JJVElDQUwgPSA3LAorCUVDX0hPU1RfRVZFTlRfQkFUVEVSWSA9IDgsCisJRUNfSE9TVF9FVkVOVF9USEVSTUFMX1RIUkVTSE9MRCA9IDksCisJLyogRXZlbnQgZ2VuZXJhdGVkIGJ5IGEgZGV2aWNlIGF0dGFjaGVkIHRvIHRoZSBFQyAqLworCUVDX0hPU1RfRVZFTlRfREVWSUNFID0gMTAsCisJRUNfSE9TVF9FVkVOVF9USEVSTUFMID0gMTEsCisJRUNfSE9TVF9FVkVOVF9VU0JfQ0hBUkdFUiA9IDEyLAorCUVDX0hPU1RfRVZFTlRfS0VZX1BSRVNTRUQgPSAxMywKKwkvKgorCSAqIEVDIGhhcyBmaW5pc2hlZCBpbml0aWFsaXppbmcgdGhlIGhvc3QgaW50ZXJmYWNlLiAgVGhlIGhvc3QgY2FuIGNoZWNrCisJICogZm9yIHRoaXMgZXZlbnQgZm9sbG93aW5nIHNlbmRpbmcgYSBFQ19DTURfUkVCT09UX0VDIGNvbW1hbmQgdG8KKwkgKiBkZXRlcm1pbmUgd2hlbiB0aGUgRUMgaXMgcmVhZHkgdG8gYWNjZXB0IHN1YnNlcXVlbnQgY29tbWFuZHMuCisJICovCisJRUNfSE9TVF9FVkVOVF9JTlRFUkZBQ0VfUkVBRFkgPSAxNCwKKwkvKiBLZXlib2FyZCByZWNvdmVyeSBjb21ibyBoYXMgYmVlbiBwcmVzc2VkICovCisJRUNfSE9TVF9FVkVOVF9LRVlCT0FSRF9SRUNPVkVSWSA9IDE1LAorCisJLyogU2h1dGRvd24gZHVlIHRvIHRoZXJtYWwgb3ZlcmxvYWQgKi8KKwlFQ19IT1NUX0VWRU5UX1RIRVJNQUxfU0hVVERPV04gPSAxNiwKKwkvKiBTaHV0ZG93biBkdWUgdG8gYmF0dGVyeSBsZXZlbCB0b28gbG93ICovCisJRUNfSE9TVF9FVkVOVF9CQVRURVJZX1NIVVRET1dOID0gMTcsCisKKwkvKiBTdWdnZXN0IHRoYXQgdGhlIEFQIHRocm90dGxlIGl0c2VsZiAqLworCUVDX0hPU1RfRVZFTlRfVEhST1RUTEVfU1RBUlQgPSAxOCwKKwkvKiBTdWdnZXN0IHRoYXQgdGhlIEFQIHJlc3VtZSBub3JtYWwgc3BlZWQgKi8KKwlFQ19IT1NUX0VWRU5UX1RIUk9UVExFX1NUT1AgPSAxOSwKKworCS8qIEhhbmcgZGV0ZWN0IGxvZ2ljIGRldGVjdGVkIGEgaGFuZyBhbmQgaG9zdCBldmVudCB0aW1lb3V0IGV4cGlyZWQgKi8KKwlFQ19IT1NUX0VWRU5UX0hBTkdfREVURUNUID0gMjAsCisJLyogSGFuZyBkZXRlY3QgbG9naWMgZGV0ZWN0ZWQgYSBoYW5nIGFuZCB3YXJtIHJlYm9vdGVkIHRoZSBBUCAqLworCUVDX0hPU1RfRVZFTlRfSEFOR19SRUJPT1QgPSAyMSwKKworCS8qIFBEIE1DVSB0cmlnZ2VyaW5nIGhvc3QgZXZlbnQgKi8KKwlFQ19IT1NUX0VWRU5UX1BEX01DVSA9IDIyLAorCisJLyogQmF0dGVyeSBTdGF0dXMgZmxhZ3MgaGF2ZSBjaGFuZ2VkICovCisJRUNfSE9TVF9FVkVOVF9CQVRURVJZX1NUQVRVUyA9IDIzLAorCisJLyogRUMgZW5jb3VudGVyZWQgYSBwYW5pYywgdHJpZ2dlcmluZyBhIHJlc2V0ICovCisJRUNfSE9TVF9FVkVOVF9QQU5JQyA9IDI0LAorCisJLyogS2V5Ym9hcmQgZmFzdGJvb3QgY29tYm8gaGFzIGJlZW4gcHJlc3NlZCAqLworCUVDX0hPU1RfRVZFTlRfS0VZQk9BUkRfRkFTVEJPT1QgPSAyNSwKKworCS8qIEVDIFJUQyBldmVudCBvY2N1cnJlZCAqLworCUVDX0hPU1RfRVZFTlRfUlRDID0gMjYsCisKKwkvKiBFbXVsYXRlIE1LQlAgZXZlbnQgKi8KKwlFQ19IT1NUX0VWRU5UX01LQlAgPSAyNywKKworCS8qIEVDIGRlc2lyZXMgdG8gY2hhbmdlIHN0YXRlIG9mIGhvc3QtY29udHJvbGxlZCBVU0IgbXV4ICovCisJRUNfSE9TVF9FVkVOVF9VU0JfTVVYID0gMjgsCisKKwkvKiBUQUJMRVQvTEFQVE9QIG1vZGUgb3IgZGV0YWNoYWJsZSBiYXNlIGF0dGFjaC9kZXRhY2ggZXZlbnQgKi8KKwlFQ19IT1NUX0VWRU5UX01PREVfQ0hBTkdFID0gMjksCisKKwkvKiBLZXlib2FyZCByZWNvdmVyeSBjb21ibyB3aXRoIGhhcmR3YXJlIHJlaW5pdGlhbGl6YXRpb24gKi8KKwlFQ19IT1NUX0VWRU5UX0tFWUJPQVJEX1JFQ09WRVJZX0hXX1JFSU5JVCA9IDMwLAorCisJLyoKKwkgKiBUaGUgaGlnaCBiaXQgb2YgdGhlIGV2ZW50IG1hc2sgaXMgbm90IHVzZWQgYXMgYSBob3N0IGV2ZW50IGNvZGUuICBJZgorCSAqIGl0IHJlYWRzIGJhY2sgYXMgc2V0LCB0aGVuIHRoZSBlbnRpcmUgZXZlbnQgbWFzayBzaG91bGQgYmUKKwkgKiBjb25zaWRlcmVkIGludmFsaWQgYnkgdGhlIGhvc3QuICBUaGlzIGNhbiBoYXBwZW4gd2hlbiByZWFkaW5nIHRoZQorCSAqIHJhdyBldmVudCBzdGF0dXMgdmlhIEVDX01FTU1BUF9IT1NUX0VWRU5UUyBidXQgdGhlIExQQyBpbnRlcmZhY2UgaXMKKwkgKiBub3QgaW5pdGlhbGl6ZWQgb24gdGhlIEVDLCBvciBpbXByb3Blcmx5IGNvbmZpZ3VyZWQgb24gdGhlIGhvc3QuCisJICovCisJRUNfSE9TVF9FVkVOVF9JTlZBTElEID0gMzIKK307CisvKiBIb3N0IGV2ZW50IG1hc2sgKi8KKyNkZWZpbmUgRUNfSE9TVF9FVkVOVF9NQVNLKGV2ZW50X2NvZGUpIEJJVF9VTEwoKGV2ZW50X2NvZGUpIC0gMSkKKworLyoqCisgKiBzdHJ1Y3QgZWNfbHBjX2hvc3RfYXJncyAtIEFyZ3VtZW50cyBhdCBFQ19MUENfQUREUl9IT1NUX0FSR1MKKyAqIEBmbGFnczogVGhlIGhvc3QgYXJndW1lbnQgZmxhZ3MuCisgKiBAY29tbWFuZF92ZXJzaW9uOiBDb21tYW5kIHZlcnNpb24uCisgKiBAZGF0YV9zaXplOiBUaGUgbGVuZ3RoIG9mIGRhdGEuCisgKiBAY2hlY2tzdW06IENoZWNrc3VtOyBzdW0gb2YgY29tbWFuZCArIGZsYWdzICsgY29tbWFuZF92ZXJzaW9uICsgZGF0YV9zaXplICsKKyAqICAgICAgICAgICAgYWxsIHBhcmFtcy9yZXNwb25zZSBkYXRhIGJ5dGVzLgorICovCitzdHJ1Y3QgZWNfbHBjX2hvc3RfYXJncyB7CisJdWludDhfdCBmbGFnczsKKwl1aW50OF90IGNvbW1hbmRfdmVyc2lvbjsKKwl1aW50OF90IGRhdGFfc2l6ZTsKKwl1aW50OF90IGNoZWNrc3VtOworfSBfX2VjX2FsaWduNDsKKworLyogRmxhZ3MgZm9yIGVjX2xwY19ob3N0X2FyZ3MuZmxhZ3MgKi8KKy8qCisgKiBBcmdzIGFyZSBmcm9tIGhvc3QuICBEYXRhIGFyZWEgYXQgRUNfTFBDX0FERFJfSE9TVF9QQVJBTSBjb250YWlucyBjb21tYW5kCisgKiBwYXJhbXMuCisgKgorICogSWYgRUMgZ2V0cyBhIGNvbW1hbmQgYW5kIHRoaXMgZmxhZyBpcyBub3Qgc2V0LCB0aGlzIGlzIGFuIG9sZC1zdHlsZSBjb21tYW5kLgorICogQ29tbWFuZCB2ZXJzaW9uIGlzIDAgYW5kIHBhcmFtcyBmcm9tIGhvc3QgYXJlIGF0IEVDX0xQQ19BRERSX09MRF9QQVJBTSB3aXRoCisgKiB1bmtub3duIGxlbmd0aC4gIEVDIG11c3QgcmVzcG9uZCB3aXRoIGFuIG9sZC1zdHlsZSByZXNwb25zZSAodGhhdCBpcywKKyAqIHdpdGhvdXQgc2V0dGluZyBFQ19IT1NUX0FSR1NfRkxBR19UT19IT1NUKS4KKyAqLworI2RlZmluZSBFQ19IT1NUX0FSR1NfRkxBR19GUk9NX0hPU1QgMHgwMQorLyoKKyAqIEFyZ3MgYXJlIGZyb20gRUMuICBEYXRhIGFyZWEgYXQgRUNfTFBDX0FERFJfSE9TVF9QQVJBTSBjb250YWlucyByZXNwb25zZS4KKyAqCisgKiBJZiBFQyByZXNwb25kcyB0byBhIGNvbW1hbmQgYW5kIHRoaXMgZmxhZyBpcyBub3Qgc2V0LCB0aGlzIGlzIGFuIG9sZC1zdHlsZQorICogcmVzcG9uc2UuICBDb21tYW5kIHZlcnNpb24gaXMgMCBhbmQgcmVzcG9uc2UgZGF0YSBmcm9tIEVDIGlzIGF0CisgKiBFQ19MUENfQUREUl9PTERfUEFSQU0gd2l0aCB1bmtub3duIGxlbmd0aC4KKyAqLworI2RlZmluZSBFQ19IT1NUX0FSR1NfRkxBR19UT19IT1NUICAgMHgwMgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogQnl0ZSBjb2RlcyByZXR1cm5lZCBieSBFQyBvdmVyIFNQSSBpbnRlcmZhY2UuCisgKgorICogVGhlc2UgY2FuIGJlIHVzZWQgYnkgdGhlIEFQIHRvIGRlYnVnIHRoZSBFQyBpbnRlcmZhY2UsIGFuZCB0byBkZXRlcm1pbmUKKyAqIHdoZW4gdGhlIEVDIGlzIG5vdCBpbiBhIHN0YXRlIHdoZXJlIGl0IHdpbGwgZXZlciBnZXQgYXJvdW5kIHRvIHJlc3BvbmRpbmcKKyAqIHRvIHRoZSBBUC4KKyAqCisgKiBFeGFtcGxlIG9mIHNlcXVlbmNlIG9mIGJ5dGVzIHJlYWQgZnJvbSBFQyBmb3IgYSBjdXJyZW50IGdvb2QgdHJhbnNmZXI6CisgKiAgIDEuIC0gICAgICAgICAgICAgICAgICAtIEFQIGFzc2VydHMgY2hpcCBzZWxlY3QgKENTIykKKyAqICAgMi4gRUNfU1BJX09MRF9SRUFEWSAgIC0gQVAgc2VuZHMgZmlyc3QgYnl0ZShzKSBvZiByZXF1ZXN0CisgKiAgIDMuIC0gICAgICAgICAgICAgICAgICAtIEVDIHN0YXJ0cyBoYW5kbGluZyBDUyMgaW50ZXJydXB0CisgKiAgIDQuIEVDX1NQSV9SRUNFSVZJTkcgICAtIEFQIHNlbmRzIHJlbWFpbmluZyBieXRlKHMpIG9mIHJlcXVlc3QKKyAqICAgNS4gRUNfU1BJX1BST0NFU1NJTkcgIC0gRUMgc3RhcnRzIHByb2Nlc3NpbmcgcmVxdWVzdDsgQVAgaXMgY2xvY2tpbmcgaW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXMgbG9va2luZyBmb3IgRUNfU1BJX0ZSQU1FX1NUQVJUCisgKiAgIDYuIC0gICAgICAgICAgICAgICAgICAtIEVDIGZpbmlzaGVzIHByb2Nlc3NpbmcgYW5kIHNldHMgdXAgcmVzcG9uc2UKKyAqICAgNy4gRUNfU1BJX0ZSQU1FX1NUQVJUIC0gQVAgcmVhZHMgZnJhbWUgYnl0ZQorICogICA4LiAocmVzcG9uc2UgcGFja2V0KSAgLSBBUCByZWFkcyByZXNwb25zZSBwYWNrZXQKKyAqICAgOS4gRUNfU1BJX1BBU1RfRU5EICAgIC0gQW55IGFkZGl0aW9uYWwgYnl0ZXMgcmVhZCBieSBBUAorICogICAxMCAtICAgICAgICAgICAgICAgICAgLSBBUCBkZWFzc2VydHMgY2hpcCBzZWxlY3QKKyAqICAgMTEgLSAgICAgICAgICAgICAgICAgIC0gRUMgcHJvY2Vzc2VzIENTIyBpbnRlcnJ1cHQgYW5kIHNldHMgdXAgRE1BIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0IHJlcXVlc3QKKyAqCisgKiBJZiB0aGUgQVAgaXMgd2FpdGluZyBmb3IgRUNfU1BJX0ZSQU1FX1NUQVJUIGFuZCBzZWVzIGFueSB2YWx1ZSBvdGhlciB0aGFuCisgKiB0aGUgZm9sbG93aW5nIGJ5dGUgdmFsdWVzOgorICogICBFQ19TUElfT0xEX1JFQURZCisgKiAgIEVDX1NQSV9SWF9SRUFEWQorICogICBFQ19TUElfUkVDRUlWSU5HCisgKiAgIEVDX1NQSV9QUk9DRVNTSU5HCisgKgorICogVGhlbiB0aGUgRUMgZm91bmQgYW4gZXJyb3IgaW4gdGhlIHJlcXVlc3QsIG9yIHdhcyBub3QgcmVhZHkgZm9yIHRoZSByZXF1ZXN0CisgKiBhbmQgbG9zdCBkYXRhLiAgVGhlIEFQIHNob3VsZCBnaXZlIHVwIHdhaXRpbmcgZm9yIEVDX1NQSV9GUkFNRV9TVEFSVCwKKyAqIGJlY2F1c2UgdGhlIEVDIGlzIHVuYWJsZSB0byB0ZWxsIHdoZW4gdGhlIEFQIGlzIGRvbmUgc2VuZGluZyBpdHMgcmVxdWVzdC4KKyAqLworCisvKgorICogRnJhbWluZyBieXRlIHdoaWNoIHByZWNlZGVzIGEgcmVzcG9uc2UgcGFja2V0IGZyb20gdGhlIEVDLiAgQWZ0ZXIgc2VuZGluZyBhCisgKiByZXF1ZXN0LCB0aGUgQVAgd2lsbCBjbG9jayBpbiBieXRlcyB1bnRpbCBpdCBzZWVzIHRoZSBmcmFtaW5nIGJ5dGUsIHRoZW4KKyAqIGNsb2NrIGluIHRoZSByZXNwb25zZSBwYWNrZXQuCisgKi8KKyNkZWZpbmUgRUNfU1BJX0ZSQU1FX1NUQVJUICAgIDB4ZWMKKworLyoKKyAqIFBhZGRpbmcgYnl0ZXMgd2hpY2ggYXJlIGNsb2NrZWQgb3V0IGFmdGVyIHRoZSBlbmQgb2YgYSByZXNwb25zZSBwYWNrZXQuCisgKi8KKyNkZWZpbmUgRUNfU1BJX1BBU1RfRU5EICAgICAgIDB4ZWQKKworLyoKKyAqIEVDIGlzIHJlYWR5IHRvIHJlY2VpdmUsIGFuZCBoYXMgaWdub3JlZCB0aGUgYnl0ZSBzZW50IGJ5IHRoZSBBUC4gIEVDIGV4cGVjdHMKKyAqIHRoYXQgdGhlIEFQIHdpbGwgc2VuZCBhIHZhbGlkIHBhY2tldCBoZWFkZXIgKHN0YXJ0aW5nIHdpdGgKKyAqIEVDX0NPTU1BTkRfUFJPVE9DT0xfMykgaW4gdGhlIG5leHQgMzIgYnl0ZXMuCisgKi8KKyNkZWZpbmUgRUNfU1BJX1JYX1JFQURZICAgICAgIDB4ZjgKKworLyoKKyAqIEVDIGhhcyBzdGFydGVkIHJlY2VpdmluZyB0aGUgcmVxdWVzdCBmcm9tIHRoZSBBUCwgYnV0IGhhc24ndCBzdGFydGVkCisgKiBwcm9jZXNzaW5nIGl0IHlldC4KKyAqLworI2RlZmluZSBFQ19TUElfUkVDRUlWSU5HICAgICAgMHhmOQorCisvKiBFQyBoYXMgcmVjZWl2ZWQgdGhlIGVudGlyZSByZXF1ZXN0IGZyb20gdGhlIEFQIGFuZCBpcyBwcm9jZXNzaW5nIGl0LiAqLworI2RlZmluZSBFQ19TUElfUFJPQ0VTU0lORyAgICAgMHhmYQorCisvKgorICogRUMgcmVjZWl2ZWQgYmFkIGRhdGEgZnJvbSB0aGUgQVAsIHN1Y2ggYXMgYSBwYWNrZXQgaGVhZGVyIHdpdGggYW4gaW52YWxpZAorICogbGVuZ3RoLiAgRUMgd2lsbCBpZ25vcmUgYWxsIGRhdGEgdW50aWwgY2hpcCBzZWxlY3QgZGVhc3NlcnRzLgorICovCisjZGVmaW5lIEVDX1NQSV9SWF9CQURfREFUQSAgICAweGZiCisKKy8qCisgKiBFQyByZWNlaXZlZCBkYXRhIGZyb20gdGhlIEFQIGJlZm9yZSBpdCB3YXMgcmVhZHkuICBUaGF0IGlzLCB0aGUgQVAgYXNzZXJ0ZWQKKyAqIGNoaXAgc2VsZWN0IGFuZCBzdGFydGVkIGNsb2NraW5nIGRhdGEgYmVmb3JlIHRoZSBFQyB3YXMgcmVhZHkgdG8gcmVjZWl2ZSBpdC4KKyAqIEVDIHdpbGwgaWdub3JlIGFsbCBkYXRhIHVudGlsIGNoaXAgc2VsZWN0IGRlYXNzZXJ0cy4KKyAqLworI2RlZmluZSBFQ19TUElfTk9UX1JFQURZICAgICAgMHhmYworCisvKgorICogRUMgd2FzIHJlYWR5IHRvIHJlY2VpdmUgYSByZXF1ZXN0IGZyb20gdGhlIEFQLiAgRUMgaGFzIHRyZWF0ZWQgdGhlIGJ5dGUgc2VudAorICogYnkgdGhlIEFQIGFzIHBhcnQgb2YgYSByZXF1ZXN0IHBhY2tldCwgb3IgKGZvciBvbGQtc3R5bGUgRUNzKSBpcyBwcm9jZXNzaW5nCisgKiBhIGZ1bGx5IHJlY2VpdmVkIHBhY2tldCBidXQgaXMgbm90IHJlYWR5IHRvIHJlc3BvbmQgeWV0LgorICovCisjZGVmaW5lIEVDX1NQSV9PTERfUkVBRFkgICAgICAweGZkCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIFByb3RvY29sIHZlcnNpb24gMiBmb3IgSTJDIGFuZCBTUEkgc2VuZCBhIHJlcXVlc3QgdGhpcyB3YXk6CisgKgorICoJMAlFQ19DTURfVkVSU0lPTjAgKyAoY29tbWFuZCB2ZXJzaW9uKQorICoJMQlDb21tYW5kIG51bWJlcgorICoJMglMZW5ndGggb2YgcGFyYW1zID0gTgorICoJMy4uTisyCVBhcmFtcywgaWYgYW55CisgKglOKzMJOC1iaXQgY2hlY2tzdW0gb2YgYnl0ZXMgMC4uTisyCisgKgorICogVGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UgaXM6CisgKgorICoJMAlSZXN1bHQgY29kZSAoRUNfUkVTXyopCisgKgkxCUxlbmd0aCBvZiBwYXJhbXMgPSBNCisgKgkyLi5NKzEJUGFyYW1zLCBpZiBhbnkKKyAqCU0rMgk4LWJpdCBjaGVja3N1bSBvZiBieXRlcyAwLi5NKzEKKyAqLworI2RlZmluZSBFQ19QUk9UTzJfUkVRVUVTVF9IRUFERVJfQllURVMgMworI2RlZmluZSBFQ19QUk9UTzJfUkVRVUVTVF9UUkFJTEVSX0JZVEVTIDEKKyNkZWZpbmUgRUNfUFJPVE8yX1JFUVVFU1RfT1ZFUkhFQUQgKEVDX1BST1RPMl9SRVFVRVNUX0hFQURFUl9CWVRFUyArCVwKKwkJCQkgICAgRUNfUFJPVE8yX1JFUVVFU1RfVFJBSUxFUl9CWVRFUykKKworI2RlZmluZSBFQ19QUk9UTzJfUkVTUE9OU0VfSEVBREVSX0JZVEVTIDIKKyNkZWZpbmUgRUNfUFJPVE8yX1JFU1BPTlNFX1RSQUlMRVJfQllURVMgMQorI2RlZmluZSBFQ19QUk9UTzJfUkVTUE9OU0VfT1ZFUkhFQUQgKEVDX1BST1RPMl9SRVNQT05TRV9IRUFERVJfQllURVMgKwlcCisJCQkJICAgICBFQ19QUk9UTzJfUkVTUE9OU0VfVFJBSUxFUl9CWVRFUykKKworLyogUGFyYW1ldGVyIGxlbmd0aCB3YXMgbGltaXRlZCBieSB0aGUgTFBDIGludGVyZmFjZSAqLworI2RlZmluZSBFQ19QUk9UTzJfTUFYX1BBUkFNX1NJWkUgMHhmYworCisvKiBNYXhpbXVtIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHBhY2tldCBzaXplcyBmb3IgcHJvdG9jb2wgdmVyc2lvbiAyICovCisjZGVmaW5lIEVDX1BST1RPMl9NQVhfUkVRVUVTVF9TSVpFIChFQ19QUk9UTzJfUkVRVUVTVF9PVkVSSEVBRCArCVwKKwkJCQkgICAgRUNfUFJPVE8yX01BWF9QQVJBTV9TSVpFKQorI2RlZmluZSBFQ19QUk9UTzJfTUFYX1JFU1BPTlNFX1NJWkUgKEVDX1BST1RPMl9SRVNQT05TRV9PVkVSSEVBRCArCVwKKwkJCQkgICAgIEVDX1BST1RPMl9NQVhfUEFSQU1fU0laRSkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogVmFsdWUgd3JpdHRlbiB0byBsZWdhY3kgY29tbWFuZCBwb3J0IC8gcHJlZml4IGJ5dGUgdG8gaW5kaWNhdGUgcHJvdG9jb2wKKyAqIDMrIHN0cnVjdHMgYXJlIGJlaW5nIHVzZWQuICBVc2FnZSBpcyBidXMtZGVwZW5kZW50LgorICovCisjZGVmaW5lIEVDX0NPTU1BTkRfUFJPVE9DT0xfMyAweGRhCisKKyNkZWZpbmUgRUNfSE9TVF9SRVFVRVNUX1ZFUlNJT04gMworCisvKioKKyAqIHN0cnVjdCBlY19ob3N0X3JlcXVlc3QgLSBWZXJzaW9uIDMgcmVxdWVzdCBmcm9tIGhvc3QuCisgKiBAc3RydWN0X3ZlcnNpb246IFNob3VsZCBiZSAzLiBUaGUgRUMgd2lsbCByZXR1cm4gRUNfUkVTX0lOVkFMSURfSEVBREVSIGlmIGl0CisgKiAgICAgICAgICAgICAgICAgIHJlY2VpdmVzIGEgaGVhZGVyIHdpdGggYSB2ZXJzaW9uIGl0IGRvZXNuJ3Qga25vdyBob3cgdG8KKyAqICAgICAgICAgICAgICAgICAgcGFyc2UuCisgKiBAY2hlY2tzdW06IENoZWNrc3VtIG9mIHJlcXVlc3QgYW5kIGRhdGE7IHN1bSBvZiBhbGwgYnl0ZXMgaW5jbHVkaW5nIGNoZWNrc3VtCisgKiAgICAgICAgICAgIHNob3VsZCB0b3RhbCB0byAwLgorICogQGNvbW1hbmQ6IENvbW1hbmQgdG8gc2VuZCAoRUNfQ01EXy4uLikKKyAqIEBjb21tYW5kX3ZlcnNpb246IENvbW1hbmQgdmVyc2lvbi4KKyAqIEByZXNlcnZlZDogVW51c2VkIGJ5dGUgaW4gY3VycmVudCBwcm90b2NvbCB2ZXJzaW9uOyBzZXQgdG8gMC4KKyAqIEBkYXRhX2xlbjogTGVuZ3RoIG9mIGRhdGEgd2hpY2ggZm9sbG93cyB0aGlzIGhlYWRlci4KKyAqLworc3RydWN0IGVjX2hvc3RfcmVxdWVzdCB7CisJdWludDhfdCBzdHJ1Y3RfdmVyc2lvbjsKKwl1aW50OF90IGNoZWNrc3VtOworCXVpbnQxNl90IGNvbW1hbmQ7CisJdWludDhfdCBjb21tYW5kX3ZlcnNpb247CisJdWludDhfdCByZXNlcnZlZDsKKwl1aW50MTZfdCBkYXRhX2xlbjsKK30gX19lY19hbGlnbjQ7CisKKyNkZWZpbmUgRUNfSE9TVF9SRVNQT05TRV9WRVJTSU9OIDMKKworLyoqCisgKiBzdHJ1Y3QgZWNfaG9zdF9yZXNwb25zZSAtIFZlcnNpb24gMyByZXNwb25zZSBmcm9tIEVDLgorICogQHN0cnVjdF92ZXJzaW9uOiBTdHJ1Y3QgdmVyc2lvbiAoPTMpLgorICogQGNoZWNrc3VtOiBDaGVja3N1bSBvZiByZXNwb25zZSBhbmQgZGF0YTsgc3VtIG9mIGFsbCBieXRlcyBpbmNsdWRpbmcKKyAqICAgICAgICAgICAgY2hlY2tzdW0gc2hvdWxkIHRvdGFsIHRvIDAuCisgKiBAcmVzdWx0OiBFQydzIHJlc3BvbnNlIHRvIHRoZSBjb21tYW5kIChzZXBhcmF0ZSBmcm9tIGNvbW11bmljYXRpb24gZmFpbHVyZSkKKyAqIEBkYXRhX2xlbjogTGVuZ3RoIG9mIGRhdGEgd2hpY2ggZm9sbG93cyB0aGlzIGhlYWRlci4KKyAqIEByZXNlcnZlZDogVW51c2VkIGJ5dGVzIGluIGN1cnJlbnQgcHJvdG9jb2wgdmVyc2lvbjsgc2V0IHRvIDAuCisgKi8KK3N0cnVjdCBlY19ob3N0X3Jlc3BvbnNlIHsKKwl1aW50OF90IHN0cnVjdF92ZXJzaW9uOworCXVpbnQ4X3QgY2hlY2tzdW07CisJdWludDE2X3QgcmVzdWx0OworCXVpbnQxNl90IGRhdGFfbGVuOworCXVpbnQxNl90IHJlc2VydmVkOworfSBfX2VjX2FsaWduNDsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogSG9zdCBjb21tYW5kIHByb3RvY29sIFY0LgorICoKKyAqIFBhY2tldHMgYWx3YXlzIHN0YXJ0IHdpdGggYSByZXF1ZXN0IG9yIHJlc3BvbnNlIGhlYWRlci4gIFRoZXkgYXJlIGZvbGxvd2VkCisgKiBieSBkYXRhX2xlbiBieXRlcyBvZiBkYXRhLiAgSWYgdGhlIGRhdGFfY3JjX3ByZXNlbnQgZmxhZyBpcyBzZXQsIHRoZSBkYXRhCisgKiBieXRlcyBhcmUgZm9sbG93ZWQgYnkgYSBDUkMtOCBvZiB0aGF0IGRhdGEsIHVzaW5nIHVzaW5nIHheOCArIHheMiArIHggKyAxCisgKiBwb2x5bm9taWFsLgorICoKKyAqIEhvc3QgYWxnb3JpdGhtIHdoZW4gc2VuZGluZyBhIHJlcXVlc3QgcToKKyAqCisgKiAxMDEpIHRyaWVzX2xlZnQ9KHNvbWUgdmFsdWUsIGUuZy4gMyk7CisgKiAxMDIpIHEuc2VxX251bSsrCisgKiAxMDMpIHEuc2VxX2R1cD0wCisgKiAxMDQpIENhbGN1bGF0ZSBxLmhlYWRlcl9jcmMuCisgKiAxMDUpIFNlbmQgcmVxdWVzdCBxIHRvIEVDLgorICogMTA2KSBXYWl0IGZvciByZXNwb25zZSByLiAgR28gdG8gMjAxIGlmIHJlY2VpdmVkIG9yIDMwMSBpZiB0aW1lb3V0LgorICoKKyAqIDIwMSkgSWYgci5zdHJ1Y3RfdmVyc2lvbiAhPSA0LCBnbyB0byAzMDEuCisgKiAyMDIpIElmIHIuaGVhZGVyX2NyYyBtaXNtYXRjaGVzIGNhbGN1bGF0ZWQgQ1JDIGZvciByIGhlYWRlciwgZ28gdG8gMzAxLgorICogMjAzKSBJZiByLmRhdGFfY3JjX3ByZXNlbnQgYW5kIHIuZGF0YV9jcmMgbWlzbWF0Y2hlcywgZ28gdG8gMzAxLgorICogMjA0KSBJZiByLnNlcV9udW0gIT0gcS5zZXFfbnVtLCBnbyB0byAzMDEuCisgKiAyMDUpIElmIHIuc2VxX2R1cCA9PSBxLnNlcV9kdXAsIHJldHVybiBzdWNjZXNzLgorICogMjA3KSBJZiByLnNlcV9kdXAgPT0gMSwgZ28gdG8gMzAxLgorICogMjA4KSBSZXR1cm4gZXJyb3IuCisgKgorICogMzAxKSBJZiAtLXRyaWVzX2xlZnQgPD0gMCwgcmV0dXJuIGVycm9yLgorICogMzAyKSBJZiBxLnNlcV9kdXAgPT0gMSwgZ28gdG8gMTA1LgorICogMzAzKSBxLnNlcV9kdXAgPSAxCisgKiAzMDQpIEdvIHRvIDEwNC4KKyAqCisgKiBFQyBhbGdvcml0aG0gd2hlbiByZWNlaXZpbmcgYSByZXF1ZXN0IHEuCisgKiBFQyBoYXMgcmVzcG9uc2UgYnVmZmVyIHIsIGVycm9yIGJ1ZmZlciBlLgorICoKKyAqIDEwMSkgSWYgcS5zdHJ1Y3RfdmVyc2lvbiAhPSA0LCBzZXQgZS5yZXN1bHQgPSBFQ19SRVNfSU5WQUxJRF9IRUFERVJfVkVSU0lPTgorICogICAgICBhbmQgZ28gdG8gMzAxCisgKiAxMDIpIElmIHEuaGVhZGVyX2NyYyBtaXNtYXRjaGVzIGNhbGN1bGF0ZWQgQ1JDLCBzZXQgZS5yZXN1bHQgPQorICogICAgICBFQ19SRVNfSU5WQUxJRF9IRUFERVJfQ1JDIGFuZCBnbyB0byAzMDEKKyAqIDEwMykgSWYgcS5kYXRhX2NyY19wcmVzZW50LCBjYWxjdWxhdGUgZGF0YSBDUkMuICBJZiB0aGF0IG1pc21hdGNoZXMgdGhlIENSQworICogICAgICBieXRlIGF0IHRoZSBlbmQgb2YgdGhlIHBhY2tldCwgc2V0IGUucmVzdWx0ID0gRUNfUkVTX0lOVkFMSURfREFUQV9DUkMKKyAqICAgICAgYW5kIGdvIHRvIDMwMS4KKyAqIDEwNCkgSWYgcS5zZXFfZHVwID09IDAsIGdvIHRvIDIwMS4KKyAqIDEwNSkgSWYgcS5zZXFfbnVtICE9IHIuc2VxX251bSwgZ28gdG8gMjAxLgorICogMTA2KSBJZiBxLnNlcV9kdXAgPT0gci5zZXFfZHVwLCBnbyB0byAyMDUsIGVsc2UgZ28gdG8gMjAzLgorICoKKyAqIDIwMSkgUHJvY2VzcyByZXF1ZXN0IHEgaW50byByZXNwb25zZSByLgorICogMjAyKSByLnNlcV9udW0gPSBxLnNlcV9udW0KKyAqIDIwMykgci5zZXFfZHVwID0gcS5zZXFfZHVwCisgKiAyMDQpIENhbGN1bGF0ZSByLmhlYWRlcl9jcmMKKyAqIDIwNSkgSWYgci5kYXRhX2xlbiA+IDAgYW5kIGRhdGEgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSwgc2V0IGUucmVzdWx0ID0KKyAqICAgICAgRUNfUkVTX0RVUF9VTkFWQUlMQUJMRSBhbmQgZ28gdG8gMzAxLgorICogMjA2KSBTZW5kIHJlc3BvbnNlIHIuCisgKgorICogMzAxKSBlLnNlcV9udW0gPSBxLnNlcV9udW0KKyAqIDMwMikgZS5zZXFfZHVwID0gcS5zZXFfZHVwCisgKiAzMDMpIENhbGN1bGF0ZSBlLmhlYWRlcl9jcmMuCisgKiAzMDQpIFNlbmQgZXJyb3IgcmVzcG9uc2UgZS4KKyAqLworCisvKiBWZXJzaW9uIDQgcmVxdWVzdCBmcm9tIGhvc3QgKi8KK3N0cnVjdCBlY19ob3N0X3JlcXVlc3Q0IHsKKwkvKgorCSAqIGJpdHMgMC0zOiBzdHJ1Y3RfdmVyc2lvbjogU3RydWN0dXJlIHZlcnNpb24gKD00KQorCSAqIGJpdCAgICA0OiBpc19yZXNwb25zZTogSXMgcmVzcG9uc2UgKD0wKQorCSAqIGJpdHMgNS02OiBzZXFfbnVtOiBTZXF1ZW5jZSBudW1iZXIKKwkgKiBiaXQgICAgNzogc2VxX2R1cDogU2VxdWVuY2UgZHVwbGljYXRlIGZsYWcKKwkgKi8KKwl1aW50OF90IGZpZWxkczA7CisKKwkvKgorCSAqIGJpdHMgMC00OiBjb21tYW5kX3ZlcnNpb246IENvbW1hbmQgdmVyc2lvbgorCSAqIGJpdHMgNS02OiBSZXNlcnZlZCAoc2V0IDAsIGlnbm9yZSBvbiByZWFkKQorCSAqIGJpdCAgICA3OiBkYXRhX2NyY19wcmVzZW50OiBJcyBkYXRhIENSQyBwcmVzZW50IGFmdGVyIGRhdGEKKwkgKi8KKwl1aW50OF90IGZpZWxkczE7CisKKwkvKiBDb21tYW5kIGNvZGUgKEVDX0NNRF8qKSAqLworCXVpbnQxNl90IGNvbW1hbmQ7CisKKwkvKiBMZW5ndGggb2YgZGF0YSB3aGljaCBmb2xsb3dzIHRoaXMgaGVhZGVyIChub3QgaW5jbHVkaW5nIGRhdGEgQ1JDKSAqLworCXVpbnQxNl90IGRhdGFfbGVuOworCisJLyogUmVzZXJ2ZWQgKHNldCAwLCBpZ25vcmUgb24gcmVhZCkgKi8KKwl1aW50OF90IHJlc2VydmVkOworCisJLyogQ1JDLTggb2YgYWJvdmUgZmllbGRzLCB1c2luZyB4XjggKyB4XjIgKyB4ICsgMSBwb2x5bm9taWFsICovCisJdWludDhfdCBoZWFkZXJfY3JjOworfSBfX2VjX2FsaWduNDsKKworLyogVmVyc2lvbiA0IHJlc3BvbnNlIGZyb20gRUMgKi8KK3N0cnVjdCBlY19ob3N0X3Jlc3BvbnNlNCB7CisJLyoKKwkgKiBiaXRzIDAtMzogc3RydWN0X3ZlcnNpb246IFN0cnVjdHVyZSB2ZXJzaW9uICg9NCkKKwkgKiBiaXQgICAgNDogaXNfcmVzcG9uc2U6IElzIHJlc3BvbnNlICg9MSkKKwkgKiBiaXRzIDUtNjogc2VxX251bTogU2VxdWVuY2UgbnVtYmVyCisJICogYml0ICAgIDc6IHNlcV9kdXA6IFNlcXVlbmNlIGR1cGxpY2F0ZSBmbGFnCisJICovCisJdWludDhfdCBmaWVsZHMwOworCisJLyoKKwkgKiBiaXRzIDAtNjogUmVzZXJ2ZWQgKHNldCAwLCBpZ25vcmUgb24gcmVhZCkKKwkgKiBiaXQgICAgNzogZGF0YV9jcmNfcHJlc2VudDogSXMgZGF0YSBDUkMgcHJlc2VudCBhZnRlciBkYXRhCisJICovCisJdWludDhfdCBmaWVsZHMxOworCisJLyogUmVzdWx0IGNvZGUgKEVDX1JFU18qKSAqLworCXVpbnQxNl90IHJlc3VsdDsKKworCS8qIExlbmd0aCBvZiBkYXRhIHdoaWNoIGZvbGxvd3MgdGhpcyBoZWFkZXIgKG5vdCBpbmNsdWRpbmcgZGF0YSBDUkMpICovCisJdWludDE2X3QgZGF0YV9sZW47CisKKwkvKiBSZXNlcnZlZCAoc2V0IDAsIGlnbm9yZSBvbiByZWFkKSAqLworCXVpbnQ4X3QgcmVzZXJ2ZWQ7CisKKwkvKiBDUkMtOCBvZiBhYm92ZSBmaWVsZHMsIHVzaW5nIHheOCArIHheMiArIHggKyAxIHBvbHlub21pYWwgKi8KKwl1aW50OF90IGhlYWRlcl9jcmM7Cit9IF9fZWNfYWxpZ240OworCisvKiBGaWVsZHMgaW4gZmllbGRzMCBieXRlICovCisjZGVmaW5lIEVDX1BBQ0tFVDRfMF9TVFJVQ1RfVkVSU0lPTl9NQVNLCTB4MGYKKyNkZWZpbmUgRUNfUEFDS0VUNF8wX0lTX1JFU1BPTlNFX01BU0sJCTB4MTAKKyNkZWZpbmUgRUNfUEFDS0VUNF8wX1NFUV9OVU1fU0hJRlQJCTUKKyNkZWZpbmUgRUNfUEFDS0VUNF8wX1NFUV9OVU1fTUFTSwkJMHg2MAorI2RlZmluZSBFQ19QQUNLRVQ0XzBfU0VRX0RVUF9NQVNLCQkweDgwCisKKy8qIEZpZWxkcyBpbiBmaWVsZHMxIGJ5dGUgKi8KKyNkZWZpbmUgRUNfUEFDS0VUNF8xX0NPTU1BTkRfVkVSU0lPTl9NQVNLCTB4MWYgIC8qIChyZXF1ZXN0IG9ubHkpICovCisjZGVmaW5lIEVDX1BBQ0tFVDRfMV9EQVRBX0NSQ19QUkVTRU5UX01BU0sJMHg4MAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogTm90ZXMgb24gY29tbWFuZHM6CisgKgorICogRWFjaCBjb21tYW5kIGlzIGFuIDE2LWJpdCBjb21tYW5kIHZhbHVlLiAgQ29tbWFuZHMgd2hpY2ggdGFrZSBwYXJhbXMgb3IKKyAqIHJldHVybiByZXNwb25zZSBkYXRhIHNwZWNpZnkgc3RydWN0dXJlcyBmb3IgdGhhdCBkYXRhLiAgSWYgbm8gc3RydWN0dXJlIGlzCisgKiBzcGVjaWZpZWQsIHRoZSBjb21tYW5kIGRvZXMgbm90IGlucHV0IG9yIG91dHB1dCBkYXRhLCByZXNwZWN0aXZlbHkuCisgKiBQYXJhbWV0ZXIvcmVzcG9uc2UgbGVuZ3RoIGlzIGltcGxpY2l0IGluIHRoZSBzdHJ1Y3RzLiAgU29tZSB1bmRlcmx5aW5nCisgKiBjb21tdW5pY2F0aW9uIHByb3RvY29scyAoSTJDLCBTUEkpIG1heSBhZGQgbGVuZ3RoIG9yIGNoZWNrc3VtIGhlYWRlcnMsIGJ1dAorICogdGhvc2UgYXJlIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCBhbmQgbm90IGRlZmluZWQgaGVyZS4KKyAqCisgKiBBbGwgY29tbWFuZHMgTVVTVCBiZSAjZGVmaW5lZCB0byBiZSA0LWRpZ2l0IFVQUEVSIENBU0UgaGV4IHZhbHVlcworICogKGUuZy4sIDB4MDBBQiwgbm90IDB4YWIpIGZvciBDT05GSUdfSE9TVENNRF9TRUNUSU9OX1NPUlRFRCB0byB3b3JrLgorICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEdlbmVyYWwgLyB0ZXN0IGNvbW1hbmRzICovCisKKy8qCisgKiBHZXQgcHJvdG9jb2wgdmVyc2lvbiwgdXNlZCB0byBkZWFsIHdpdGggbm9uLWJhY2t3YXJkIGNvbXBhdGlibGUgcHJvdG9jb2wKKyAqIGNoYW5nZXMuCisgKi8KKyNkZWZpbmUgRUNfQ01EX1BST1RPX1ZFUlNJT04gMHgwMDAwCisKKy8qKgorICogc3RydWN0IGVjX3Jlc3BvbnNlX3Byb3RvX3ZlcnNpb24gLSBSZXNwb25zZSB0byB0aGUgcHJvdG8gdmVyc2lvbiBjb21tYW5kLgorICogQHZlcnNpb246IFRoZSBwcm90b2NvbCB2ZXJzaW9uLgorICovCitzdHJ1Y3QgZWNfcmVzcG9uc2VfcHJvdG9fdmVyc2lvbiB7CisJdWludDMyX3QgdmVyc2lvbjsKK30gX19lY19hbGlnbjQ7CisKKy8qCisgKiBIZWxsby4gIFRoaXMgaXMgYSBzaW1wbGUgY29tbWFuZCB0byB0ZXN0IHRoZSBFQyBpcyByZXNwb25zaXZlIHRvCisgKiBjb21tYW5kcy4KKyAqLworI2RlZmluZSBFQ19DTURfSEVMTE8gMHgwMDAxCisKKy8qKgorICogc3RydWN0IGVjX3BhcmFtc19oZWxsbyAtIFBhcmFtZXRlcnMgdG8gdGhlIGhlbGxvIGNvbW1hbmQuCisgKiBAaW5fZGF0YTogUGFzcyBhbnl0aGluZyBoZXJlLgorICovCitzdHJ1Y3QgZWNfcGFyYW1zX2hlbGxvIHsKKwl1aW50MzJfdCBpbl9kYXRhOworfSBfX2VjX2FsaWduNDsKKworLyoqCisgKiBzdHJ1Y3QgZWNfcmVzcG9uc2VfaGVsbG8gLSBSZXNwb25zZSB0byB0aGUgaGVsbG8gY29tbWFuZC4KKyAqIEBvdXRfZGF0YTogT3V0cHV0IHdpbGwgYmUgaW5fZGF0YSArIDB4MDEwMjAzMDQuCisgKi8KK3N0cnVjdCBlY19yZXNwb25zZV9oZWxsbyB7CisJdWludDMyX3Qgb3V0X2RhdGE7Cit9IF9fZWNfYWxpZ240OworCisvKiBHZXQgdmVyc2lvbiBudW1iZXIgKi8KKyNkZWZpbmUgRUNfQ01EX0dFVF9WRVJTSU9OIDB4MDAwMgorCitlbnVtIGVjX2N1cnJlbnRfaW1hZ2UgeworCUVDX0lNQUdFX1VOS05PV04gPSAwLAorCUVDX0lNQUdFX1JPLAorCUVDX0lNQUdFX1JXCit9OworCisvKioKKyAqIHN0cnVjdCBlY19yZXNwb25zZV9nZXRfdmVyc2lvbiAtIFJlc3BvbnNlIHRvIHRoZSBnZXQgdmVyc2lvbiBjb21tYW5kLgorICogQHZlcnNpb25fc3RyaW5nX3JvOiBOdWxsLXRlcm1pbmF0ZWQgUk8gZmlybXdhcmUgdmVyc2lvbiBzdHJpbmcuCisgKiBAdmVyc2lvbl9zdHJpbmdfcnc6IE51bGwtdGVybWluYXRlZCBSVyBmaXJtd2FyZSB2ZXJzaW9uIHN0cmluZy4KKyAqIEByZXNlcnZlZDogVW51c2VkIGJ5dGVzOyB3YXMgcHJldmlvdXNseSBSVy1CIGZpcm13YXJlIHZlcnNpb24gc3RyaW5nLgorICogQGN1cnJlbnRfaW1hZ2U6IE9uZSBvZiBlY19jdXJyZW50X2ltYWdlLgorICovCitzdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X3ZlcnNpb24geworCWNoYXIgdmVyc2lvbl9zdHJpbmdfcm9bMzJdOworCWNoYXIgdmVyc2lvbl9zdHJpbmdfcndbMzJdOworCWNoYXIgcmVzZXJ2ZWRbMzJdOworCXVpbnQzMl90IGN1cnJlbnRfaW1hZ2U7Cit9IF9fZWNfYWxpZ240OworCisvKiBSZWFkIHRlc3QgKi8KKyNkZWZpbmUgRUNfQ01EX1JFQURfVEVTVCAweDAwMDMKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX3JlYWRfdGVzdCAtIFBhcmFtZXRlcnMgZm9yIHRoZSByZWFkIHRlc3QgY29tbWFuZC4KKyAqIEBvZmZzZXQ6IFN0YXJ0aW5nIHZhbHVlIGZvciByZWFkIGJ1ZmZlci4KKyAqIEBzaXplOiBTaXplIHRvIHJlYWQgaW4gYnl0ZXMuCisgKi8KK3N0cnVjdCBlY19wYXJhbXNfcmVhZF90ZXN0IHsKKwl1aW50MzJfdCBvZmZzZXQ7CisJdWludDMyX3Qgc2l6ZTsKK30gX19lY19hbGlnbjQ7CisKKy8qKgorICogc3RydWN0IGVjX3Jlc3BvbnNlX3JlYWRfdGVzdCAtIFJlc3BvbnNlIHRvIHRoZSByZWFkIHRlc3QgY29tbWFuZC4KKyAqIEBkYXRhOiBEYXRhIHJldHVybmVkIGJ5IHRoZSByZWFkIHRlc3QgY29tbWFuZC4KKyAqLworc3RydWN0IGVjX3Jlc3BvbnNlX3JlYWRfdGVzdCB7CisJdWludDMyX3QgZGF0YVszMl07Cit9IF9fZWNfYWxpZ240OworCisvKgorICogR2V0IGJ1aWxkIGluZm9ybWF0aW9uCisgKgorICogUmVzcG9uc2UgaXMgbnVsbC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqLworI2RlZmluZSBFQ19DTURfR0VUX0JVSUxEX0lORk8gMHgwMDA0CisKKy8qIEdldCBjaGlwIGluZm8gKi8KKyNkZWZpbmUgRUNfQ01EX0dFVF9DSElQX0lORk8gMHgwMDA1CisKKy8qKgorICogc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9jaGlwX2luZm8gLSBSZXNwb25zZSB0byB0aGUgZ2V0IGNoaXAgaW5mbyBjb21tYW5kLgorICogQHZlbmRvcjogTnVsbC10ZXJtaW5hdGVkIHN0cmluZyBmb3IgY2hpcCB2ZW5kb3IuCisgKiBAbmFtZTogTnVsbC10ZXJtaW5hdGVkIHN0cmluZyBmb3IgY2hpcCBuYW1lLgorICogQHJldmlzaW9uOiBOdWxsLXRlcm1pbmF0ZWQgc3RyaW5nIGZvciBjaGlwIG1hc2sgdmVyc2lvbi4KKyAqLworc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9jaGlwX2luZm8geworCWNoYXIgdmVuZG9yWzMyXTsKKwljaGFyIG5hbWVbMzJdOworCWNoYXIgcmV2aXNpb25bMzJdOworfSBfX2VjX2FsaWduNDsKKworLyogR2V0IGJvYXJkIEhXIHZlcnNpb24gKi8KKyNkZWZpbmUgRUNfQ01EX0dFVF9CT0FSRF9WRVJTSU9OIDB4MDAwNgorCisvKioKKyAqIHN0cnVjdCBlY19yZXNwb25zZV9ib2FyZF92ZXJzaW9uIC0gUmVzcG9uc2UgdG8gdGhlIGJvYXJkIHZlcnNpb24gY29tbWFuZC4KKyAqIEBib2FyZF92ZXJzaW9uOiBBIG1vbm90b25vdXNseSBpbmNyZW1lbnRpbmcgbnVtYmVyLgorICovCitzdHJ1Y3QgZWNfcmVzcG9uc2VfYm9hcmRfdmVyc2lvbiB7CisJdWludDE2X3QgYm9hcmRfdmVyc2lvbjsKK30gX19lY19hbGlnbjI7CisKKy8qCisgKiBSZWFkIG1lbW9yeS1tYXBwZWQgZGF0YS4KKyAqCisgKiBUaGlzIGlzIGFuIGFsdGVybmF0ZSBpbnRlcmZhY2UgdG8gbWVtb3J5LW1hcHBlZCBkYXRhIGZvciBidXMgcHJvdG9jb2xzCisgKiB3aGljaCBkb24ndCBzdXBwb3J0IGRpcmVjdC1tYXBwZWQgbWVtb3J5IC0gSTJDLCBTUEksIGV0Yy4KKyAqCisgKiBSZXNwb25zZSBpcyBwYXJhbXMuc2l6ZSBieXRlcyBvZiBkYXRhLgorICovCisjZGVmaW5lIEVDX0NNRF9SRUFEX01FTU1BUCAweDAwMDcKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX3JlYWRfbWVtbWFwIC0gUGFyYW1ldGVycyBmb3IgdGhlIHJlYWQgbWVtb3J5IG1hcCBjb21tYW5kLgorICogQG9mZnNldDogT2Zmc2V0IGluIG1lbW1hcCAoRUNfTUVNTUFQXyopLgorICogQHNpemU6IFNpemUgdG8gcmVhZCBpbiBieXRlcy4KKyAqLworc3RydWN0IGVjX3BhcmFtc19yZWFkX21lbW1hcCB7CisJdWludDhfdCBvZmZzZXQ7CisJdWludDhfdCBzaXplOworfSBfX2VjX2FsaWduMTsKKworLyogUmVhZCB2ZXJzaW9ucyBzdXBwb3J0ZWQgZm9yIGEgY29tbWFuZCAqLworI2RlZmluZSBFQ19DTURfR0VUX0NNRF9WRVJTSU9OUyAweDAwMDgKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX2dldF9jbWRfdmVyc2lvbnMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IGNvbW1hbmQgdmVyc2lvbnMuCisgKiBAY21kOiBDb21tYW5kIHRvIGNoZWNrLgorICovCitzdHJ1Y3QgZWNfcGFyYW1zX2dldF9jbWRfdmVyc2lvbnMgeworCXVpbnQ4X3QgY21kOworfSBfX2VjX2FsaWduMTsKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX2dldF9jbWRfdmVyc2lvbnNfdjEgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IGNvbW1hbmQKKyAqICAgICAgICAgdmVyc2lvbnMgKHYxKQorICogQGNtZDogQ29tbWFuZCB0byBjaGVjay4KKyAqLworc3RydWN0IGVjX3BhcmFtc19nZXRfY21kX3ZlcnNpb25zX3YxIHsKKwl1aW50MTZfdCBjbWQ7Cit9IF9fZWNfYWxpZ24yOworCisvKioKKyAqIHN0cnVjdCBlY19yZXNwb25zZV9nZXRfY21kX3ZlcnNpb24gLSBSZXNwb25zZSB0byB0aGUgZ2V0IGNvbW1hbmQgdmVyc2lvbnMuCisgKiBAdmVyc2lvbl9tYXNrOiBNYXNrIG9mIHN1cHBvcnRlZCB2ZXJzaW9uczsgdXNlIEVDX1ZFUl9NQVNLKCkgdG8gY29tcGFyZSB3aXRoCisgKiAgICAgICAgICAgICAgICBhIGRlc2lyZWQgdmVyc2lvbi4KKyAqLworc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9jbWRfdmVyc2lvbnMgeworCXVpbnQzMl90IHZlcnNpb25fbWFzazsKK30gX19lY19hbGlnbjQ7CisKKy8qCisgKiBDaGVjayBFQyBjb21tdW5pY2F0aW9ucyBzdGF0dXMgKGJ1c3kpLiBUaGlzIGlzIG5lZWRlZCBvbiBpMmMvc3BpIGJ1dCBub3QKKyAqIG9uIGxwYyBzaW5jZSBpdCBoYXMgaXRzIG93biBvdXQtb2YtYmFuZCBidXN5IGluZGljYXRvci4KKyAqCisgKiBscGMgbXVzdCByZWFkIHRoZSBzdGF0dXMgZnJvbSB0aGUgY29tbWFuZCByZWdpc3Rlci4gQXR0ZW1wdGluZyB0aGlzIG9uCisgKiBscGMgd2lsbCBvdmVyd3JpdGUgdGhlIGFyZ3MvcGFyYW1ldGVyIHNwYWNlIGFuZCBjb3JydXB0IGl0cyBkYXRhLgorICovCisjZGVmaW5lIEVDX0NNRF9HRVRfQ09NTVNfU1RBVFVTCQkweDAwMDkKKworLyogQXZvaWQgdXNpbmcgZWNfc3RhdHVzIHdoaWNoIGlzIGZvciByZXR1cm4gdmFsdWVzICovCitlbnVtIGVjX2NvbW1zX3N0YXR1cyB7CisJRUNfQ09NTVNfU1RBVFVTX1BST0NFU1NJTkcJPSBCSVQoMCksCS8qIFByb2Nlc3NpbmcgY21kICovCit9OworCisvKioKKyAqIHN0cnVjdCBlY19yZXNwb25zZV9nZXRfY29tbXNfc3RhdHVzIC0gUmVzcG9uc2UgdG8gdGhlIGdldCBjb21tcyBzdGF0dXMKKyAqICAgICAgICAgY29tbWFuZC4KKyAqIEBmbGFnczogTWFzayBvZiBlbnVtIGVjX2NvbW1zX3N0YXR1cy4KKyAqLworc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9jb21tc19zdGF0dXMgeworCXVpbnQzMl90IGZsYWdzOwkJLyogTWFzayBvZiBlbnVtIGVjX2NvbW1zX3N0YXR1cyAqLworfSBfX2VjX2FsaWduNDsKKworLyogRmFrZSBhIHZhcmlldHkgb2YgcmVzcG9uc2VzLCBwdXJlbHkgZm9yIHRlc3RpbmcgcHVycG9zZXMuICovCisjZGVmaW5lIEVDX0NNRF9URVNUX1BST1RPQ09MCQkweDAwMEEKKworLyogVGVsbCB0aGUgRUMgd2hhdCB0byBzZW5kIGJhY2sgdG8gdXMuICovCitzdHJ1Y3QgZWNfcGFyYW1zX3Rlc3RfcHJvdG9jb2wgeworCXVpbnQzMl90IGVjX3Jlc3VsdDsKKwl1aW50MzJfdCByZXRfbGVuOworCXVpbnQ4X3QgYnVmWzMyXTsKK30gX19lY19hbGlnbjQ7CisKKy8qIEhlcmUgaXQgY29tZXMuLi4gKi8KK3N0cnVjdCBlY19yZXNwb25zZV90ZXN0X3Byb3RvY29sIHsKKwl1aW50OF90IGJ1ZlszMl07Cit9IF9fZWNfYWxpZ240OworCisvKiBHZXQgcHJvdG9jb2wgaW5mb3JtYXRpb24gKi8KKyNkZWZpbmUgRUNfQ01EX0dFVF9QUk9UT0NPTF9JTkZPCTB4MDAwQgorCisvKiBGbGFncyBmb3IgZWNfcmVzcG9uc2VfZ2V0X3Byb3RvY29sX2luZm8uZmxhZ3MgKi8KKy8qIEVDX1JFU19JTl9QUk9HUkVTUyBtYXkgYmUgcmV0dXJuZWQgaWYgYSBjb21tYW5kIGlzIHNsb3cgKi8KKyNkZWZpbmUgRUNfUFJPVE9DT0xfSU5GT19JTl9QUk9HUkVTU19TVVBQT1JURUQgQklUKDApCisKKy8qKgorICogc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9wcm90b2NvbF9pbmZvIC0gUmVzcG9uc2UgdG8gdGhlIGdldCBwcm90b2NvbCBpbmZvLgorICogQHByb3RvY29sX3ZlcnNpb25zOiBCaXRtYXNrIG9mIHByb3RvY29sIHZlcnNpb25zIHN1cHBvcnRlZCAoMSA8PCBuIG1lYW5zCisgKiAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gbikuCisgKiBAbWF4X3JlcXVlc3RfcGFja2V0X3NpemU6IE1heGltdW0gcmVxdWVzdCBwYWNrZXQgc2l6ZSBpbiBieXRlcy4KKyAqIEBtYXhfcmVzcG9uc2VfcGFja2V0X3NpemU6IE1heGltdW0gcmVzcG9uc2UgcGFja2V0IHNpemUgaW4gYnl0ZXMuCisgKiBAZmxhZ3M6IHNlZSBFQ19QUk9UT0NPTF9JTkZPXyoKKyAqLworc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9wcm90b2NvbF9pbmZvIHsKKwkvKiBGaWVsZHMgd2hpY2ggZXhpc3QgaWYgYXQgbGVhc3QgcHJvdG9jb2wgdmVyc2lvbiAzIHN1cHBvcnRlZCAqLworCXVpbnQzMl90IHByb3RvY29sX3ZlcnNpb25zOworCXVpbnQxNl90IG1heF9yZXF1ZXN0X3BhY2tldF9zaXplOworCXVpbnQxNl90IG1heF9yZXNwb25zZV9wYWNrZXRfc2l6ZTsKKwl1aW50MzJfdCBmbGFnczsKK30gX19lY19hbGlnbjQ7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogR2V0L1NldCBtaXNjZWxsYW5lb3VzIHZhbHVlcyAqLworCisvKiBUaGUgdXBwZXIgYnl0ZSBvZiAuZmxhZ3MgdGVsbHMgd2hhdCB0byBkbyAobm90aGluZyBtZWFucyAiZ2V0IikgKi8KKyNkZWZpbmUgRUNfR1NWX1NFVCAgICAgICAgMHg4MDAwMDAwMAorCisvKgorICogVGhlIGxvd2VyIHRocmVlIGJ5dGVzIG9mIC5mbGFncyBpZGVudGlmaWVzIHRoZSBwYXJhbWV0ZXIsIGlmIHRoYXQgaGFzCisgKiBtZWFuaW5nIGZvciBhbiBpbmRpdmlkdWFsIGNvbW1hbmQuCisgKi8KKyNkZWZpbmUgRUNfR1NWX1BBUkFNX01BU0sgMHgwMGZmZmZmZgorCitzdHJ1Y3QgZWNfcGFyYW1zX2dldF9zZXRfdmFsdWUgeworCXVpbnQzMl90IGZsYWdzOworCXVpbnQzMl90IHZhbHVlOworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9zZXRfdmFsdWUgeworCXVpbnQzMl90IGZsYWdzOworCXVpbnQzMl90IHZhbHVlOworfSBfX2VjX2FsaWduNDsKKworLyogTW9yZSB0aGFuIG9uZSBjb21tYW5kIGNhbiB1c2UgdGhlc2Ugc3RydWN0cyB0byBnZXQvc2V0IHBhcmFtZXRlcnMuICovCisjZGVmaW5lIEVDX0NNRF9HU1ZfUEFVU0VfSU5fUzUJMHgwMDBDCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIExpc3QgdGhlIGZlYXR1cmVzIHN1cHBvcnRlZCBieSB0aGUgZmlybXdhcmUgKi8KKyNkZWZpbmUgRUNfQ01EX0dFVF9GRUFUVVJFUyAgMHgwMDBECisKKy8qIFN1cHBvcnRlZCBmZWF0dXJlcyAqLworZW51bSBlY19mZWF0dXJlX2NvZGUgeworCS8qCisJICogVGhpcyBpbWFnZSBjb250YWlucyBhIGxpbWl0ZWQgc2V0IG9mIGZlYXR1cmVzLiBBbm90aGVyIGltYWdlCisJICogaW4gUlcgcGFydGl0aW9uIG1heSBzdXBwb3J0IG1vcmUgZmVhdHVyZXMuCisJICovCisJRUNfRkVBVFVSRV9MSU1JVEVEID0gMCwKKwkvKgorCSAqIENvbW1hbmRzIGZvciBwcm9iaW5nL3JlYWRpbmcvd3JpdGluZy9lcmFzaW5nIHRoZSBmbGFzaCBpbiB0aGUKKwkgKiBFQyBhcmUgcHJlc2VudC4KKwkgKi8KKwlFQ19GRUFUVVJFX0ZMQVNIID0gMSwKKwkvKgorCSAqIENhbiBjb250cm9sIHRoZSBmYW4gc3BlZWQgZGlyZWN0bHkuCisJICovCisJRUNfRkVBVFVSRV9QV01fRkFOID0gMiwKKwkvKgorCSAqIENhbiBjb250cm9sIHRoZSBpbnRlbnNpdHkgb2YgdGhlIGtleWJvYXJkIGJhY2tsaWdodC4KKwkgKi8KKwlFQ19GRUFUVVJFX1BXTV9LRVlCID0gMywKKwkvKgorCSAqIFN1cHBvcnQgR29vZ2xlIGxpZ2h0YmFyLCBpbnRyb2R1Y2VkIG9uIFBpeGVsLgorCSAqLworCUVDX0ZFQVRVUkVfTElHSFRCQVIgPSA0LAorCS8qIENvbnRyb2wgb2YgTEVEcyAgKi8KKwlFQ19GRUFUVVJFX0xFRCA9IDUsCisJLyogRXhwb3NlcyBhbiBpbnRlcmZhY2UgdG8gY29udHJvbCBneXJvIGFuZCBzZW5zb3JzLgorCSAqIFRoZSBob3N0IGdvZXMgdGhyb3VnaCB0aGUgRUMgdG8gYWNjZXNzIHRoZXNlIHNlbnNvcnMuCisJICogSW4gYWRkaXRpb24sIHRoZSBFQyBtYXkgcHJvdmlkZSBjb21wb3NpdGUgc2Vuc29ycywgbGlrZSBsaWQgYW5nbGUuCisJICovCisJRUNfRkVBVFVSRV9NT1RJT05fU0VOU0UgPSA2LAorCS8qIFRoZSBrZXlib2FyZCBpcyBjb250cm9sbGVkIGJ5IHRoZSBFQyAqLworCUVDX0ZFQVRVUkVfS0VZQiA9IDcsCisJLyogVGhlIEFQIGNhbiB1c2UgcGFydCBvZiB0aGUgRUMgZmxhc2ggYXMgcGVyc2lzdGVudCBzdG9yYWdlLiAqLworCUVDX0ZFQVRVUkVfUFNUT1JFID0gOCwKKwkvKiBUaGUgRUMgbW9uaXRvcnMgQklPUyBwb3J0IDgwaCwgYW5kIGNhbiByZXR1cm4gUE9TVCBjb2Rlcy4gKi8KKwlFQ19GRUFUVVJFX1BPUlQ4MCA9IDksCisJLyoKKwkgKiBUaGVybWFsIG1hbmFnZW1lbnQ6IGluY2x1ZGUgVE1QIHNwZWNpZmljIGNvbW1hbmRzLgorCSAqIEhpZ2hlciBsZXZlbCB0aGFuIGRpcmVjdCBmYW4gY29udHJvbC4KKwkgKi8KKwlFQ19GRUFUVVJFX1RIRVJNQUwgPSAxMCwKKwkvKiBDYW4gc3dpdGNoIHRoZSBzY3JlZW4gYmFja2xpZ2h0IG9uL29mZiAqLworCUVDX0ZFQVRVUkVfQktMSUdIVF9TV0lUQ0ggPSAxMSwKKwkvKiBDYW4gc3dpdGNoIHRoZSB3aWZpIG1vZHVsZSBvbi9vZmYgKi8KKwlFQ19GRUFUVVJFX1dJRklfU1dJVENIID0gMTIsCisJLyogTW9uaXRvciBob3N0IGV2ZW50cywgdGhyb3VnaCBmb3IgZXhhbXBsZSBTTUkgb3IgU0NJICovCisJRUNfRkVBVFVSRV9IT1NUX0VWRU5UUyA9IDEzLAorCS8qIFRoZSBFQyBleHBvc2VzIEdQSU8gY29tbWFuZHMgdG8gY29udHJvbC9tb25pdG9yIGNvbm5lY3RlZCBkZXZpY2VzLiAqLworCUVDX0ZFQVRVUkVfR1BJTyA9IDE0LAorCS8qIFRoZSBFQyBjYW4gc2VuZCBpMmMgbWVzc2FnZXMgdG8gZG93bnN0cmVhbSBkZXZpY2VzLiAqLworCUVDX0ZFQVRVUkVfSTJDID0gMTUsCisJLyogQ29tbWFuZCB0byBjb250cm9sIGNoYXJnZXIgYXJlIGluY2x1ZGVkICovCisJRUNfRkVBVFVSRV9DSEFSR0VSID0gMTYsCisJLyogU2ltcGxlIGJhdHRlcnkgc3VwcG9ydC4gKi8KKwlFQ19GRUFUVVJFX0JBVFRFUlkgPSAxNywKKwkvKgorCSAqIFN1cHBvcnQgU21hcnQgYmF0dGVyeSBwcm90b2NvbAorCSAqIChDb21tb24gU21hcnQgQmF0dGVyeSBTeXN0ZW0gSW50ZXJmYWNlIFNwZWNpZmljYXRpb24pCisJICovCisJRUNfRkVBVFVSRV9TTUFSVF9CQVRURVJZID0gMTgsCisJLyogRUMgY2FuIGRldGVjdCB3aGVuIHRoZSBob3N0IGhhbmdzLiAqLworCUVDX0ZFQVRVUkVfSEFOR19ERVRFQ1QgPSAxOSwKKwkvKiBSZXBvcnQgcG93ZXIgaW5mb3JtYXRpb24sIGZvciBwaXQgb25seSAqLworCUVDX0ZFQVRVUkVfUE1VID0gMjAsCisJLyogQW5vdGhlciBDcm9zIEVDIGRldmljZSBpcyBwcmVzZW50IGRvd25zdHJlYW0gb2YgdGhpcyBvbmUgKi8KKwlFQ19GRUFUVVJFX1NVQl9NQ1UgPSAyMSwKKwkvKiBTdXBwb3J0IFVTQiBQb3dlciBkZWxpdmVyeSAoUEQpIGNvbW1hbmRzICovCisJRUNfRkVBVFVSRV9VU0JfUEQgPSAyMiwKKwkvKiBDb250cm9sIFVTQiBtdWx0aXBsZXhlciwgZm9yIGF1ZGlvIHRocm91Z2ggVVNCIHBvcnQgZm9yIGluc3RhbmNlLiAqLworCUVDX0ZFQVRVUkVfVVNCX01VWCA9IDIzLAorCS8qIE1vdGlvbiBTZW5zb3IgY29kZSBoYXMgYW4gaW50ZXJuYWwgc29mdHdhcmUgRklGTyAqLworCUVDX0ZFQVRVUkVfTU9USU9OX1NFTlNFX0ZJRk8gPSAyNCwKKwkvKiBTdXBwb3J0IHRlbXBvcmFyeSBzZWN1cmUgdnN0b3JlICovCisJRUNfRkVBVFVSRV9WU1RPUkUgPSAyNSwKKwkvKiBFQyBkZWNpZGVzIG9uIFVTQi1DIFNTIG11eCBzdGF0ZSwgbXV4ZXMgY29uZmlndXJlZCBieSBob3N0ICovCisJRUNfRkVBVFVSRV9VU0JDX1NTX01VWF9WSVJUVUFMID0gMjYsCisJLyogRUMgaGFzIFJUQyBmZWF0dXJlIHRoYXQgY2FuIGJlIGNvbnRyb2xsZWQgYnkgaG9zdCBjb21tYW5kcyAqLworCUVDX0ZFQVRVUkVfUlRDID0gMjcsCisJLyogVGhlIE1DVSBleHBvc2VzIGEgRmluZ2VycHJpbnQgc2Vuc29yICovCisJRUNfRkVBVFVSRV9GSU5HRVJQUklOVCA9IDI4LAorCS8qIFRoZSBNQ1UgZXhwb3NlcyBhIFRvdWNocGFkICovCisJRUNfRkVBVFVSRV9UT1VDSFBBRCA9IDI5LAorCS8qIFRoZSBNQ1UgaGFzIFJXU0lHIHRhc2sgZW5hYmxlZCAqLworCUVDX0ZFQVRVUkVfUldTSUcgPSAzMCwKKwkvKiBFQyBoYXMgZGV2aWNlIGV2ZW50cyBzdXBwb3J0ICovCisJRUNfRkVBVFVSRV9ERVZJQ0VfRVZFTlQgPSAzMSwKKwkvKiBFQyBzdXBwb3J0cyB0aGUgdW5pZmllZCB3YWtlIG1hc2tzIGZvciBMUEMvZVNQSSBzeXN0ZW1zICovCisJRUNfRkVBVFVSRV9VTklGSUVEX1dBS0VfTUFTS1MgPSAzMiwKKwkvKiBFQyBzdXBwb3J0cyA2NC1iaXQgaG9zdCBldmVudHMgKi8KKwlFQ19GRUFUVVJFX0hPU1RfRVZFTlQ2NCA9IDMzLAorCS8qIEVDIHJ1bnMgY29kZSBpbiBSQU0gKG5vdCBpbiBwbGFjZSwgYS5rLmEuIFhJUCkgKi8KKwlFQ19GRUFUVVJFX0VYRUNfSU5fUkFNID0gMzQsCisJLyogRUMgc3VwcG9ydHMgQ0VDIGNvbW1hbmRzICovCisJRUNfRkVBVFVSRV9DRUMgPSAzNSwKKwkvKiBFQyBzdXBwb3J0cyB0aWdodCBzZW5zb3IgdGltZXN0YW1waW5nLiAqLworCUVDX0ZFQVRVUkVfTU9USU9OX1NFTlNFX1RJR0hUX1RJTUVTVEFNUFMgPSAzNiwKKwkvKgorCSAqIEVDIHN1cHBvcnRzIHRhYmxldCBtb2RlIGRldGVjdGlvbiBhbGlnbmVkIHRvIENocm9tZSBhbmQgYWxsb3dzCisJICogc2V0dGluZyBvZiB0aHJlc2hvbGQgYnkgaG9zdCBjb21tYW5kIHVzaW5nCisJICogTU9USU9OU0VOU0VfQ01EX1RBQkxFVF9NT0RFX0xJRF9BTkdMRS4KKwkgKi8KKwlFQ19GRUFUVVJFX1JFRklORURfVEFCTEVUX01PREVfSFlTVEVSRVNJUyA9IDM3LAorCS8qIEVDIHN1cHBvcnRzIGF1ZGlvIGNvZGVjLiAqLworCUVDX0ZFQVRVUkVfQVVESU9fQ09ERUMgPSAzOCwKKwkvKiBUaGUgTUNVIGlzIGEgU3lzdGVtIENvbXBhbmlvbiBQcm9jZXNzb3IgKFNDUCkuICovCisJRUNfRkVBVFVSRV9TQ1AgPSAzOSwKKwkvKiBUaGUgTUNVIGlzIGFuIEludGVncmF0ZWQgU2Vuc29yIEh1YiAqLworCUVDX0ZFQVRVUkVfSVNIID0gNDAsCit9OworCisjZGVmaW5lIEVDX0ZFQVRVUkVfTUFTS18wKGV2ZW50X2NvZGUpIEJJVChldmVudF9jb2RlICUgMzIpCisjZGVmaW5lIEVDX0ZFQVRVUkVfTUFTS18xKGV2ZW50X2NvZGUpIEJJVChldmVudF9jb2RlIC0gMzIpCisKK3N0cnVjdCBlY19yZXNwb25zZV9nZXRfZmVhdHVyZXMgeworCXVpbnQzMl90IGZsYWdzWzJdOworfSBfX2VjX2FsaWduNDsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogR2V0IHRoZSBib2FyZCdzIFNLVSBJRCBmcm9tIEVDICovCisjZGVmaW5lIEVDX0NNRF9HRVRfU0tVX0lEIDB4MDAwRQorCisvKiBTZXQgU0tVIElEIGZyb20gQVAgKi8KKyNkZWZpbmUgRUNfQ01EX1NFVF9TS1VfSUQgMHgwMDBGCisKK3N0cnVjdCBlY19za3VfaWRfaW5mbyB7CisJdWludDMyX3Qgc2t1X2lkOworfSBfX2VjX2FsaWduNDsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRmxhc2ggY29tbWFuZHMgKi8KKworLyogR2V0IGZsYXNoIGluZm8gKi8KKyNkZWZpbmUgRUNfQ01EX0ZMQVNIX0lORk8gMHgwMDEwCisjZGVmaW5lIEVDX1ZFUl9GTEFTSF9JTkZPIDIKKworLyoqCisgKiBzdHJ1Y3QgZWNfcmVzcG9uc2VfZmxhc2hfaW5mbyAtIFJlc3BvbnNlIHRvIHRoZSBmbGFzaCBpbmZvIGNvbW1hbmQuCisgKiBAZmxhc2hfc2l6ZTogVXNhYmxlIGZsYXNoIHNpemUgaW4gYnl0ZXMuCisgKiBAd3JpdGVfYmxvY2tfc2l6ZTogV3JpdGUgYmxvY2sgc2l6ZS4gV3JpdGUgb2Zmc2V0IGFuZCBzaXplIG11c3QgYmUgYQorICogICAgICAgICAgICAgICAgICAgIG11bHRpcGxlIG9mIHRoaXMuCisgKiBAZXJhc2VfYmxvY2tfc2l6ZTogRXJhc2UgYmxvY2sgc2l6ZS4gRXJhc2Ugb2Zmc2V0IGFuZCBzaXplIG11c3QgYmUgYQorICogICAgICAgICAgICAgICAgICAgIG11bHRpcGxlIG9mIHRoaXMuCisgKiBAcHJvdGVjdF9ibG9ja19zaXplOiBQcm90ZWN0aW9uIGJsb2NrIHNpemUuIFByb3RlY3Rpb24gb2Zmc2V0IGFuZCBzaXplCisgKiAgICAgICAgICAgICAgICAgICAgICBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhpcy4KKyAqCisgKiBWZXJzaW9uIDAgcmV0dXJucyB0aGVzZSBmaWVsZHMuCisgKi8KK3N0cnVjdCBlY19yZXNwb25zZV9mbGFzaF9pbmZvIHsKKwl1aW50MzJfdCBmbGFzaF9zaXplOworCXVpbnQzMl90IHdyaXRlX2Jsb2NrX3NpemU7CisJdWludDMyX3QgZXJhc2VfYmxvY2tfc2l6ZTsKKwl1aW50MzJfdCBwcm90ZWN0X2Jsb2NrX3NpemU7Cit9IF9fZWNfYWxpZ240OworCisvKgorICogRmxhZ3MgZm9yIHZlcnNpb24gMSsgZmxhc2ggaW5mbyBjb21tYW5kCisgKiBFQyBmbGFzaCBlcmFzZXMgYml0cyB0byAwIGluc3RlYWQgb2YgMS4KKyAqLworI2RlZmluZSBFQ19GTEFTSF9JTkZPX0VSQVNFX1RPXzAgQklUKDApCisKKy8qCisgKiBGbGFzaCBtdXN0IGJlIHNlbGVjdGVkIGZvciByZWFkL3dyaXRlL2VyYXNlIG9wZXJhdGlvbnMgdG8gc3VjY2VlZC4gIFRoaXMgbWF5CisgKiBiZSBuZWNlc3Nhcnkgb24gYSBjaGlwIHdoZXJlIHdyaXRlL2VyYXNlIGNhbiBiZSBjb3JydXB0ZWQgYnkgb3RoZXIgYm9hcmQKKyAqIGFjdGl2aXR5LCBvciB3aGVyZSB0aGUgY2hpcCBuZWVkcyB0byBlbmFibGUgc29tZSBzb3J0IG9mIHByb2dyYW1taW5nIHZvbHRhZ2UsCisgKiBvciB3aGVyZSB0aGUgcmVhZC93cml0ZS9lcmFzZSBvcGVyYXRpb25zIHJlcXVpcmUgY2xlYW5seSBzdXNwZW5kaW5nIG90aGVyCisgKiBjaGlwIGZ1bmN0aW9uYWxpdHkuCisgKi8KKyNkZWZpbmUgRUNfRkxBU0hfSU5GT19TRUxFQ1RfUkVRVUlSRUQgQklUKDEpCisKKy8qKgorICogc3RydWN0IGVjX3Jlc3BvbnNlX2ZsYXNoX2luZm9fMSAtIFJlc3BvbnNlIHRvIHRoZSBmbGFzaCBpbmZvIHYxIGNvbW1hbmQuCisgKiBAZmxhc2hfc2l6ZTogVXNhYmxlIGZsYXNoIHNpemUgaW4gYnl0ZXMuCisgKiBAd3JpdGVfYmxvY2tfc2l6ZTogV3JpdGUgYmxvY2sgc2l6ZS4gV3JpdGUgb2Zmc2V0IGFuZCBzaXplIG11c3QgYmUgYQorICogICAgICAgICAgICAgICAgICAgIG11bHRpcGxlIG9mIHRoaXMuCisgKiBAZXJhc2VfYmxvY2tfc2l6ZTogRXJhc2UgYmxvY2sgc2l6ZS4gRXJhc2Ugb2Zmc2V0IGFuZCBzaXplIG11c3QgYmUgYQorICogICAgICAgICAgICAgICAgICAgIG11bHRpcGxlIG9mIHRoaXMuCisgKiBAcHJvdGVjdF9ibG9ja19zaXplOiBQcm90ZWN0aW9uIGJsb2NrIHNpemUuIFByb3RlY3Rpb24gb2Zmc2V0IGFuZCBzaXplCisgKiAgICAgICAgICAgICAgICAgICAgICBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhpcy4KKyAqIEB3cml0ZV9pZGVhbF9zaXplOiBJZGVhbCB3cml0ZSBzaXplIGluIGJ5dGVzLiAgV3JpdGVzIHdpbGwgYmUgZmFzdGVzdCBpZgorICogICAgICAgICAgICAgICAgICAgIHNpemUgaXMgZXhhY3RseSB0aGlzIGFuZCBvZmZzZXQgaXMgYSBtdWx0aXBsZSBvZiB0aGlzLgorICogICAgICAgICAgICAgICAgICAgIEZvciBleGFtcGxlLCBhbiBFQyBtYXkgaGF2ZSBhIHdyaXRlIGJ1ZmZlciB3aGljaCBjYW4gZG8KKyAqICAgICAgICAgICAgICAgICAgICBoYWxmLXBhZ2Ugb3BlcmF0aW9ucyBpZiBkYXRhIGlzIGFsaWduZWQsIGFuZCBhIHNsb3dlcgorICogICAgICAgICAgICAgICAgICAgIHdvcmQtYXQtYS10aW1lIHdyaXRlIG1vZGUuCisgKiBAZmxhZ3M6IEZsYWdzOyBzZWUgRUNfRkxBU0hfSU5GT18qCisgKgorICogVmVyc2lvbiAxIHJldHVybnMgdGhlIHNhbWUgaW5pdGlhbCBmaWVsZHMgYXMgdmVyc2lvbiAwLCB3aXRoIGFkZGl0aW9uYWwKKyAqIGZpZWxkcyBmb2xsb3dpbmcuCisgKgorICogZ2NjIGFub255bW91cyBzdHJ1Y3RzIGRvbid0IHNlZW0gdG8gZ2V0IGFsb25nIHdpdGggdGhlIF9fcGFja2VkIGRpcmVjdGl2ZTsKKyAqIGlmIHRoZXkgZGlkIHdlJ2QgZGVmaW5lIHRoZSB2ZXJzaW9uIDAgc3RydWN0dXJlIGFzIGEgc3ViLXN0cnVjdHVyZSBvZiB0aGlzCisgKiBvbmUuCisgKgorICogVmVyc2lvbiAyIHN1cHBvcnRzIGZsYXNoIGJhbmtzIG9mIGRpZmZlcmVudCBzaXplczoKKyAqIFRoZSBjYWxsZXIgc3BlY2lmaWVkIHRoZSBudW1iZXIgb2YgYmFua3MgaXQgaGFzIHByZWFsbG9jYXRlZAorICogKG51bV9iYW5rc19kZXNjKQorICogVGhlIEVDIHJldHVybnMgdGhlIG51bWJlciBvZiBiYW5rcyBkZXNjcmliaW5nIHRoZSBmbGFzaCBtZW1vcnkuCisgKiBJdCBhZGRzIGJhbmtzIGRlc2NyaXB0aW9ucyB1cCB0byBudW1fYmFua3NfZGVzYy4KKyAqLworc3RydWN0IGVjX3Jlc3BvbnNlX2ZsYXNoX2luZm9fMSB7CisJLyogVmVyc2lvbiAwIGZpZWxkczsgc2VlIGFib3ZlIGZvciBkZXNjcmlwdGlvbiAqLworCXVpbnQzMl90IGZsYXNoX3NpemU7CisJdWludDMyX3Qgd3JpdGVfYmxvY2tfc2l6ZTsKKwl1aW50MzJfdCBlcmFzZV9ibG9ja19zaXplOworCXVpbnQzMl90IHByb3RlY3RfYmxvY2tfc2l6ZTsKKworCS8qIFZlcnNpb24gMSBhZGRzIHRoZXNlIGZpZWxkczogKi8KKwl1aW50MzJfdCB3cml0ZV9pZGVhbF9zaXplOworCXVpbnQzMl90IGZsYWdzOworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX3BhcmFtc19mbGFzaF9pbmZvXzIgeworCS8qIE51bWJlciBvZiBiYW5rcyB0byBkZXNjcmliZSAqLworCXVpbnQxNl90IG51bV9iYW5rc19kZXNjOworCS8qIFJlc2VydmVkOyBzZXQgMDsgaWdub3JlIG9uIHJlYWQgKi8KKwl1aW50OF90IHJlc2VydmVkWzJdOworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX2ZsYXNoX2JhbmsgeworCS8qIE51bWJlciBvZiBzZWN0b3IgaXMgaW4gdGhpcyBiYW5rLiAqLworCXVpbnQxNl90IGNvdW50OworCS8qIFNpemUgaW4gcG93ZXIgb2YgMiBvZiBlYWNoIHNlY3RvciAoOCAtLT4gMjU2IGJ5dGVzKSAqLworCXVpbnQ4X3Qgc2l6ZV9leHA7CisJLyogTWluaW1hbCB3cml0ZSBzaXplIGZvciB0aGUgc2VjdG9ycyBpbiB0aGlzIGJhbmsgKi8KKwl1aW50OF90IHdyaXRlX3NpemVfZXhwOworCS8qIEVyYXNlIHNpemUgZm9yIHRoZSBzZWN0b3JzIGluIHRoaXMgYmFuayAqLworCXVpbnQ4X3QgZXJhc2Vfc2l6ZV9leHA7CisJLyogU2l6ZSBmb3Igd3JpdGUgcHJvdGVjdGlvbiwgdXN1YWxseSBpZGVudGljYWwgdG8gZXJhc2Ugc2l6ZS4gKi8KKwl1aW50OF90IHByb3RlY3Rfc2l6ZV9leHA7CisJLyogUmVzZXJ2ZWQ7IHNldCAwOyBpZ25vcmUgb24gcmVhZCAqLworCXVpbnQ4X3QgcmVzZXJ2ZWRbMl07Cit9OworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfZmxhc2hfaW5mb18yIHsKKwkvKiBUb3RhbCBmbGFzaCBpbiB0aGUgRUMuICovCisJdWludDMyX3QgZmxhc2hfc2l6ZTsKKwkvKiBGbGFnczsgc2VlIEVDX0ZMQVNIX0lORk9fKiAqLworCXVpbnQzMl90IGZsYWdzOworCS8qIE1heGltdW0gc2l6ZSB0byB1c2UgdG8gc2VuZCBkYXRhIHRvIHdyaXRlIHRvIHRoZSBFQy4gKi8KKwl1aW50MzJfdCB3cml0ZV9pZGVhbF9zaXplOworCS8qIE51bWJlciBvZiBiYW5rcyBwcmVzZW50IGluIHRoZSBFQy4gKi8KKwl1aW50MTZfdCBudW1fYmFua3NfdG90YWw7CisJLyogTnVtYmVyIG9mIGJhbmtzIGRlc2NyaWJlZCBpbiBiYW5rcyBhcnJheS4gKi8KKwl1aW50MTZfdCBudW1fYmFua3NfZGVzYzsKKwlzdHJ1Y3QgZWNfZmxhc2hfYmFuayBiYW5rc1swXTsKK30gX19lY19hbGlnbjQ7CisKKy8qCisgKiBSZWFkIGZsYXNoCisgKgorICogUmVzcG9uc2UgaXMgcGFyYW1zLnNpemUgYnl0ZXMgb2YgZGF0YS4KKyAqLworI2RlZmluZSBFQ19DTURfRkxBU0hfUkVBRCAweDAwMTEKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX3JlYWQgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZmxhc2ggcmVhZCBjb21tYW5kLgorICogQG9mZnNldDogQnl0ZSBvZmZzZXQgdG8gcmVhZC4KKyAqIEBzaXplOiBTaXplIHRvIHJlYWQgaW4gYnl0ZXMuCisgKi8KK3N0cnVjdCBlY19wYXJhbXNfZmxhc2hfcmVhZCB7CisJdWludDMyX3Qgb2Zmc2V0OworCXVpbnQzMl90IHNpemU7Cit9IF9fZWNfYWxpZ240OworCisvKiBXcml0ZSBmbGFzaCAqLworI2RlZmluZSBFQ19DTURfRkxBU0hfV1JJVEUgMHgwMDEyCisjZGVmaW5lIEVDX1ZFUl9GTEFTSF9XUklURSAxCisKKy8qIFZlcnNpb24gMCBvZiB0aGUgZmxhc2ggY29tbWFuZCBzdXBwb3J0ZWQgb25seSA2NCBieXRlcyBvZiBkYXRhICovCisjZGVmaW5lIEVDX0ZMQVNIX1dSSVRFX1ZFUjBfU0laRSA2NAorCisvKioKKyAqIHN0cnVjdCBlY19wYXJhbXNfZmxhc2hfd3JpdGUgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZmxhc2ggd3JpdGUgY29tbWFuZC4KKyAqIEBvZmZzZXQ6IEJ5dGUgb2Zmc2V0IHRvIHdyaXRlLgorICogQHNpemU6IFNpemUgdG8gd3JpdGUgaW4gYnl0ZXMuCisgKi8KK3N0cnVjdCBlY19wYXJhbXNfZmxhc2hfd3JpdGUgeworCXVpbnQzMl90IG9mZnNldDsKKwl1aW50MzJfdCBzaXplOworCS8qIEZvbGxvd2VkIGJ5IGRhdGEgdG8gd3JpdGUgKi8KK30gX19lY19hbGlnbjQ7CisKKy8qIEVyYXNlIGZsYXNoICovCisjZGVmaW5lIEVDX0NNRF9GTEFTSF9FUkFTRSAweDAwMTMKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX2VyYXNlIC0gUGFyYW1ldGVycyBmb3IgdGhlIGZsYXNoIGVyYXNlIGNvbW1hbmQsIHYwLgorICogQG9mZnNldDogQnl0ZSBvZmZzZXQgdG8gZXJhc2UuCisgKiBAc2l6ZTogU2l6ZSB0byBlcmFzZSBpbiBieXRlcy4KKyAqLworc3RydWN0IGVjX3BhcmFtc19mbGFzaF9lcmFzZSB7CisJdWludDMyX3Qgb2Zmc2V0OworCXVpbnQzMl90IHNpemU7Cit9IF9fZWNfYWxpZ240OworCisvKgorICogdjEgYWRkIGFzeW5jIGVyYXNlOgorICogc3ViY29tbWFuZHMgY2FuIHJldHVybnM6CisgKiBFQ19SRVNfU1VDQ0VTUyA6IGVyYXNlZCAoc2VlIEVSQVNFX1NFQ1RPUl9BU1lOQyBjYXNlIGJlbG93KS4KKyAqIEVDX1JFU19JTlZBTElEX1BBUkFNIDogb2Zmc2V0L3NpemUgYXJlIG5vdCBhbGlnbmVkIG9uIGEgZXJhc2UgYm91bmRhcnkuCisgKiBFQ19SRVNfRVJST1IgOiBvdGhlciBlcnJvcnMuCisgKiBFQ19SRVNfQlVTWSA6IGFuIGV4aXN0aW5nIGVyYXNlIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcy4KKyAqIEVDX1JFU19BQ0NFU1NfREVOSUVEOiBUcnlpbmcgdG8gZXJhc2UgcnVubmluZyBpbWFnZS4KKyAqCisgKiBXaGVuIEVSQVNFX1NFQ1RPUl9BU1lOQyByZXR1cm5zIEVDX1JFU19TVUNDRVNTLCB0aGUgb3BlcmF0aW9uIGlzIGp1c3QKKyAqIHByb3Blcmx5IHF1ZXVlZC4gVGhlIHVzZXIgbXVzdCBjYWxsIEVSQVNFX0dFVF9SRVNVTFQgc3ViY29tbWFuZCB0byBnZXQKKyAqIHRoZSBwcm9wZXIgcmVzdWx0LgorICogV2hlbiBFUkFTRV9HRVRfUkVTVUxUIHJldHVybnMgRUNfUkVTX0JVU1ksIHRoZSBjYWxsZXIgbXVzdCB3YWl0IGFuZCBzZW5kCisgKiBFUkFTRV9HRVRfUkVTVUxUIGFnYWluIHRvIGdldCB0aGUgcmVzdWx0IG9mIEVSQVNFX1NFQ1RPUl9BU1lOQy4KKyAqIEVSQVNFX0dFVF9SRVNVTFQgY29tbWFuZCBtYXkgdGltZW91dCBvbiBFQyB3aGVyZSBmbGFzaCBhY2Nlc3MgaXMgbm90CisgKiBwZXJtaXR0ZWQgd2hpbGUgZXJhc2luZy4gKEZvciBpbnN0YW5jZSwgU1RNMzJGNCkuCisgKi8KK2VudW0gZWNfZmxhc2hfZXJhc2VfY21kIHsKKwlGTEFTSF9FUkFTRV9TRUNUT1IsICAgICAvKiBFcmFzZSBhbmQgd2FpdCBmb3IgcmVzdWx0ICovCisJRkxBU0hfRVJBU0VfU0VDVE9SX0FTWU5DLCAgLyogRXJhc2UgYW5kIHJldHVybiBpbW1lZGlhdGVseS4gKi8KKwlGTEFTSF9FUkFTRV9HRVRfUkVTVUxULCAgLyogQXNrIGZvciBsYXN0IGVyYXNlIHJlc3VsdCAqLworfTsKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX2VyYXNlX3YxIC0gUGFyYW1ldGVycyBmb3IgdGhlIGZsYXNoIGVyYXNlIGNvbW1hbmQsIHYxLgorICogQGNtZDogT25lIG9mIGVjX2ZsYXNoX2VyYXNlX2NtZC4KKyAqIEByZXNlcnZlZDogUGFkIGJ5dGU7IGN1cnJlbnRseSBhbHdheXMgY29udGFpbnMgMC4KKyAqIEBmbGFnOiBObyBmbGFncyBkZWZpbmVkIHlldDsgc2V0IHRvIDAuCisgKiBAcGFyYW1zOiBTYW1lIGFzIHYwIHBhcmFtZXRlcnMuCisgKi8KK3N0cnVjdCBlY19wYXJhbXNfZmxhc2hfZXJhc2VfdjEgeworCXVpbnQ4X3QgIGNtZDsKKwl1aW50OF90ICByZXNlcnZlZDsKKwl1aW50MTZfdCBmbGFnOworCXN0cnVjdCBlY19wYXJhbXNfZmxhc2hfZXJhc2UgcGFyYW1zOworfSBfX2VjX2FsaWduNDsKKworLyoKKyAqIEdldC9zZXQgZmxhc2ggcHJvdGVjdGlvbi4KKyAqCisgKiBJZiBtYXNrIT0wLCBzZXRzL2NsZWFyIHRoZSByZXF1ZXN0ZWQgYml0cyBvZiBmbGFncy4gIERlcGVuZGluZyBvbiB0aGUKKyAqIGZpcm13YXJlIHdyaXRlIHByb3RlY3QgR1BJTywgbm90IGFsbCBmbGFncyB3aWxsIHRha2UgZWZmZWN0IGltbWVkaWF0ZWx5OworICogc29tZSBmbGFncyByZXF1aXJlIGEgc3Vic2VxdWVudCBoYXJkIHJlc2V0IHRvIHRha2UgZWZmZWN0LiAgQ2hlY2sgdGhlCisgKiByZXR1cm5lZCBmbGFncyBiaXRzIHRvIHNlZSB3aGF0IGFjdHVhbGx5IGhhcHBlbmVkLgorICoKKyAqIElmIG1hc2s9MCwgc2ltcGx5IHJldHVybnMgdGhlIGN1cnJlbnQgZmxhZ3Mgc3RhdGUuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0ZMQVNIX1BST1RFQ1QgMHgwMDE1CisjZGVmaW5lIEVDX1ZFUl9GTEFTSF9QUk9URUNUIDEgIC8qIENvbW1hbmQgdmVyc2lvbiAxICovCisKKy8qIEZsYWdzIGZvciBmbGFzaCBwcm90ZWN0aW9uICovCisvKiBSTyBmbGFzaCBjb2RlIHByb3RlY3RlZCB3aGVuIHRoZSBFQyBib290cyAqLworI2RlZmluZSBFQ19GTEFTSF9QUk9URUNUX1JPX0FUX0JPT1QgICAgICAgICBCSVQoMCkKKy8qCisgKiBSTyBmbGFzaCBjb2RlIHByb3RlY3RlZCBub3cuICBJZiB0aGlzIGJpdCBpcyBzZXQsIGF0LWJvb3Qgc3RhdHVzIGNhbm5vdAorICogYmUgY2hhbmdlZC4KKyAqLworI2RlZmluZSBFQ19GTEFTSF9QUk9URUNUX1JPX05PVyAgICAgICAgICAgICBCSVQoMSkKKy8qIEVudGlyZSBmbGFzaCBjb2RlIHByb3RlY3RlZCBub3csIHVudGlsIHJlYm9vdC4gKi8KKyNkZWZpbmUgRUNfRkxBU0hfUFJPVEVDVF9BTExfTk9XICAgICAgICAgICAgQklUKDIpCisvKiBGbGFzaCB3cml0ZSBwcm90ZWN0IEdQSU8gaXMgYXNzZXJ0ZWQgbm93ICovCisjZGVmaW5lIEVDX0ZMQVNIX1BST1RFQ1RfR1BJT19BU1NFUlRFRCAgICAgIEJJVCgzKQorLyogRXJyb3IgLSBhdCBsZWFzdCBvbmUgYmFuayBvZiBmbGFzaCBpcyBzdHVjayBsb2NrZWQsIGFuZCBjYW5ub3QgYmUgdW5sb2NrZWQgKi8KKyNkZWZpbmUgRUNfRkxBU0hfUFJPVEVDVF9FUlJPUl9TVFVDSyAgICAgICAgQklUKDQpCisvKgorICogRXJyb3IgLSBmbGFzaCBwcm90ZWN0aW9uIGlzIGluIGluY29uc2lzdGVudCBzdGF0ZS4gIEF0IGxlYXN0IG9uZSBiYW5rIG9mCisgKiBmbGFzaCB3aGljaCBzaG91bGQgYmUgcHJvdGVjdGVkIGlzIG5vdCBwcm90ZWN0ZWQuICBVc3VhbGx5IGZpeGVkIGJ5CisgKiByZS1yZXF1ZXN0aW5nIHRoZSBkZXNpcmVkIGZsYWdzLCBvciBieSBhIGhhcmQgcmVzZXQgaWYgdGhhdCBmYWlscy4KKyAqLworI2RlZmluZSBFQ19GTEFTSF9QUk9URUNUX0VSUk9SX0lOQ09OU0lTVEVOVCBCSVQoNSkKKy8qIEVudGlyZSBmbGFzaCBjb2RlIHByb3RlY3RlZCB3aGVuIHRoZSBFQyBib290cyAqLworI2RlZmluZSBFQ19GTEFTSF9QUk9URUNUX0FMTF9BVF9CT09UICAgICAgICBCSVQoNikKKy8qIFJXIGZsYXNoIGNvZGUgcHJvdGVjdGVkIHdoZW4gdGhlIEVDIGJvb3RzICovCisjZGVmaW5lIEVDX0ZMQVNIX1BST1RFQ1RfUldfQVRfQk9PVCAgICAgICAgIEJJVCg3KQorLyogUlcgZmxhc2ggY29kZSBwcm90ZWN0ZWQgbm93LiAqLworI2RlZmluZSBFQ19GTEFTSF9QUk9URUNUX1JXX05PVyAgICAgICAgICAgICBCSVQoOCkKKy8qIFJvbGxiYWNrIGluZm9ybWF0aW9uIGZsYXNoIHJlZ2lvbiBwcm90ZWN0ZWQgd2hlbiB0aGUgRUMgYm9vdHMgKi8KKyNkZWZpbmUgRUNfRkxBU0hfUFJPVEVDVF9ST0xMQkFDS19BVF9CT09UICAgQklUKDkpCisvKiBSb2xsYmFjayBpbmZvcm1hdGlvbiBmbGFzaCByZWdpb24gcHJvdGVjdGVkIG5vdyAqLworI2RlZmluZSBFQ19GTEFTSF9QUk9URUNUX1JPTExCQUNLX05PVyAgICAgICBCSVQoMTApCisKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX2ZsYXNoX3Byb3RlY3QgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZmxhc2ggcHJvdGVjdCBjb21tYW5kLgorICogQG1hc2s6IEJpdHMgaW4gZmxhZ3MgdG8gYXBwbHkuCisgKiBAZmxhZ3M6IE5ldyBmbGFncyB0byBhcHBseS4KKyAqLworc3RydWN0IGVjX3BhcmFtc19mbGFzaF9wcm90ZWN0IHsKKwl1aW50MzJfdCBtYXNrOworCXVpbnQzMl90IGZsYWdzOworfSBfX2VjX2FsaWduNDsKKworLyoqCisgKiBzdHJ1Y3QgZWNfcmVzcG9uc2VfZmxhc2hfcHJvdGVjdCAtIFJlc3BvbnNlIHRvIHRoZSBmbGFzaCBwcm90ZWN0IGNvbW1hbmQuCisgKiBAZmxhZ3M6IEN1cnJlbnQgdmFsdWUgb2YgZmxhc2ggcHJvdGVjdCBmbGFncy4KKyAqIEB2YWxpZF9mbGFnczogRmxhZ3Mgd2hpY2ggYXJlIHZhbGlkIG9uIHRoaXMgcGxhdGZvcm0uIFRoaXMgYWxsb3dzIHRoZQorICogICAgICAgICAgICAgICBjYWxsZXIgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBmbGFncyB3aGljaCBhcmVuJ3Qgc2V0IHZzLiBmbGFncworICogICAgICAgICAgICAgICB3aGljaCBjYW4ndCBiZSBzZXQgb24gdGhpcyBwbGF0Zm9ybS4KKyAqIEB3cml0YWJsZV9mbGFnczogRmxhZ3Mgd2hpY2ggY2FuIGJlIGNoYW5nZWQgZ2l2ZW4gdGhlIGN1cnJlbnQgcHJvdGVjdGlvbgorICogICAgICAgICAgICAgICAgICBzdGF0ZS4KKyAqLworc3RydWN0IGVjX3Jlc3BvbnNlX2ZsYXNoX3Byb3RlY3QgeworCXVpbnQzMl90IGZsYWdzOworCXVpbnQzMl90IHZhbGlkX2ZsYWdzOworCXVpbnQzMl90IHdyaXRhYmxlX2ZsYWdzOworfSBfX2VjX2FsaWduNDsKKworLyoKKyAqIE5vdGU6IGNvbW1hbmRzIDB4MTQgLSAweDE5IHZlcnNpb24gMCB3ZXJlIG9sZCBjb21tYW5kcyB0byBnZXQvc2V0IGZsYXNoCisgKiB3cml0ZSBwcm90ZWN0LiAgVGhlc2UgY29tbWFuZHMgbWF5IGJlIHJldXNlZCB3aXRoIHZlcnNpb24gPiAwLgorICovCisKKy8qIEdldCB0aGUgcmVnaW9uIG9mZnNldC9zaXplICovCisjZGVmaW5lIEVDX0NNRF9GTEFTSF9SRUdJT05fSU5GTyAweDAwMTYKKyNkZWZpbmUgRUNfVkVSX0ZMQVNIX1JFR0lPTl9JTkZPIDEKKworZW51bSBlY19mbGFzaF9yZWdpb24geworCS8qIFJlZ2lvbiB3aGljaCBob2xkcyByZWFkLW9ubHkgRUMgaW1hZ2UgKi8KKwlFQ19GTEFTSF9SRUdJT05fUk8gPSAwLAorCS8qCisJICogUmVnaW9uIHdoaWNoIGhvbGRzIGFjdGl2ZSBSVyBpbWFnZS4gJ0FjdGl2ZScgaXMgZGlmZmVyZW50IGZyb20KKwkgKiAncnVubmluZycuIEFjdGl2ZSBtZWFucyAnc2NoZWR1bGVkLXRvLXJ1bicuIFNpbmNlIFJPIGltYWdlIGFsd2F5cworCSAqIHNjaGVkdWxlZCB0byBydW4sIGFjdGl2ZS9ub24tYWN0aXZlIGFwcGxpZXMgb25seSB0byBSVyBpbWFnZXMgKGZvcgorCSAqIHRoZSBzYW1lIHJlYXNvbiAndXBkYXRlJyBhcHBsaWVzIG9ubHkgdG8gUlcgaW1hZ2VzLiBJdCdzIGEgc3RhdGUgb2YKKwkgKiBhbiBpbWFnZSBvbiBhIGZsYXNoLiBSdW5uaW5nIGltYWdlIGNhbiBiZSBSTywgUldfQSwgUldfQiBidXQgYWN0aXZlCisJICogaW1hZ2UgY2FuIG9ubHkgYmUgUldfQSBvciBSV19CLiBJbiByZWNvdmVyeSBtb2RlLCBhbiBhY3RpdmUgUlcgaW1hZ2UKKwkgKiBkb2Vzbid0IGVudGVyICdydW5uaW5nJyBzdGF0ZSBidXQgaXQncyBzdGlsbCBhY3RpdmUgb24gYSBmbGFzaC4KKwkgKi8KKwlFQ19GTEFTSF9SRUdJT05fQUNUSVZFLAorCS8qCisJICogUmVnaW9uIHdoaWNoIHNob3VsZCBiZSB3cml0ZS1wcm90ZWN0ZWQgaW4gdGhlIGZhY3RvcnkgKGEgc3VwZXJzZXQgb2YKKwkgKiBFQ19GTEFTSF9SRUdJT05fUk8pCisJICovCisJRUNfRkxBU0hfUkVHSU9OX1dQX1JPLAorCS8qIFJlZ2lvbiB3aGljaCBob2xkcyB1cGRhdGFibGUgKG5vbi1hY3RpdmUpIFJXIGltYWdlICovCisJRUNfRkxBU0hfUkVHSU9OX1VQREFURSwKKwkvKiBOdW1iZXIgb2YgcmVnaW9ucyAqLworCUVDX0ZMQVNIX1JFR0lPTl9DT1VOVCwKK307CisvKgorICogJ1JXJyBpcyB2YWd1ZSBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgUlcgaW1hZ2VzOyB3ZSBtZWFuIHRoZSBhY3RpdmUgb25lLAorICogc28gdGhlIG9sZCBjb25zdGFudCBpcyBkZXByZWNhdGVkLgorICovCisjZGVmaW5lIEVDX0ZMQVNIX1JFR0lPTl9SVyBFQ19GTEFTSF9SRUdJT05fQUNUSVZFCisKKy8qKgorICogc3RydWN0IGVjX3BhcmFtc19mbGFzaF9yZWdpb25faW5mbyAtIFBhcmFtZXRlcnMgZm9yIHRoZSBmbGFzaCByZWdpb24gaW5mbworICogICAgICAgICBjb21tYW5kLgorICogQHJlZ2lvbjogRmxhc2ggcmVnaW9uOyBzZWUgRUNfRkxBU0hfUkVHSU9OXyoKKyAqLworc3RydWN0IGVjX3BhcmFtc19mbGFzaF9yZWdpb25faW5mbyB7CisJdWludDMyX3QgcmVnaW9uOworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2ZsYXNoX3JlZ2lvbl9pbmZvIHsKKwl1aW50MzJfdCBvZmZzZXQ7CisJdWludDMyX3Qgc2l6ZTsKK30gX19lY19hbGlnbjQ7CisKKy8qIFJlYWQvd3JpdGUgVmJOdkNvbnRleHQgKi8KKyNkZWZpbmUgRUNfQ01EX1ZCTlZfQ09OVEVYVCAweDAwMTcKKyNkZWZpbmUgRUNfVkVSX1ZCTlZfQ09OVEVYVCAxCisjZGVmaW5lIEVDX1ZCTlZfQkxPQ0tfU0laRSAxNgorCitlbnVtIGVjX3ZibnZjb250ZXh0X29wIHsKKwlFQ19WQk5WX0NPTlRFWFRfT1BfUkVBRCwKKwlFQ19WQk5WX0NPTlRFWFRfT1BfV1JJVEUsCit9OworCitzdHJ1Y3QgZWNfcGFyYW1zX3ZibnZjb250ZXh0IHsKKwl1aW50MzJfdCBvcDsKKwl1aW50OF90IGJsb2NrW0VDX1ZCTlZfQkxPQ0tfU0laRV07Cit9IF9fZWNfYWxpZ240OworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfdmJudmNvbnRleHQgeworCXVpbnQ4X3QgYmxvY2tbRUNfVkJOVl9CTE9DS19TSVpFXTsKK30gX19lY19hbGlnbjQ7CisKKworLyogR2V0IFNQSSBmbGFzaCBpbmZvcm1hdGlvbiAqLworI2RlZmluZSBFQ19DTURfRkxBU0hfU1BJX0lORk8gMHgwMDE4CisKK3N0cnVjdCBlY19yZXNwb25zZV9mbGFzaF9zcGlfaW5mbyB7CisJLyogSkVERUMgaW5mbyBmcm9tIGNvbW1hbmQgMHg5RiAobWFudWZhY3R1cmVyLCBtZW1vcnkgdHlwZSwgc2l6ZSkgKi8KKwl1aW50OF90IGplZGVjWzNdOworCisJLyogUGFkIGJ5dGU7IGN1cnJlbnRseSBhbHdheXMgY29udGFpbnMgMCAqLworCXVpbnQ4X3QgcmVzZXJ2ZWQwOworCisJLyogTWFudWZhY3R1cmVyIC8gZGV2aWNlIElEIGZyb20gY29tbWFuZCAweDkwICovCisJdWludDhfdCBtZnJfZGV2X2lkWzJdOworCisJLyogU3RhdHVzIHJlZ2lzdGVycyBmcm9tIGNvbW1hbmQgMHgwNSBhbmQgMHgzNSAqLworCXVpbnQ4X3Qgc3IxLCBzcjI7Cit9IF9fZWNfYWxpZ24xOworCisKKy8qIFNlbGVjdCBmbGFzaCBkdXJpbmcgZmxhc2ggb3BlcmF0aW9ucyAqLworI2RlZmluZSBFQ19DTURfRkxBU0hfU0VMRUNUIDB4MDAxOQorCisvKioKKyAqIHN0cnVjdCBlY19wYXJhbXNfZmxhc2hfc2VsZWN0IC0gUGFyYW1ldGVycyBmb3IgdGhlIGZsYXNoIHNlbGVjdCBjb21tYW5kLgorICogQHNlbGVjdDogMSB0byBzZWxlY3QgZmxhc2gsIDAgdG8gZGVzZWxlY3QgZmxhc2gKKyAqLworc3RydWN0IGVjX3BhcmFtc19mbGFzaF9zZWxlY3QgeworCXVpbnQ4X3Qgc2VsZWN0OworfSBfX2VjX2FsaWduNDsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBQV00gY29tbWFuZHMgKi8KKworLyogR2V0IGZhbiB0YXJnZXQgUlBNICovCisjZGVmaW5lIEVDX0NNRF9QV01fR0VUX0ZBTl9UQVJHRVRfUlBNIDB4MDAyMAorCitzdHJ1Y3QgZWNfcmVzcG9uc2VfcHdtX2dldF9mYW5fcnBtIHsKKwl1aW50MzJfdCBycG07Cit9IF9fZWNfYWxpZ240OworCisvKiBTZXQgdGFyZ2V0IGZhbiBSUE0gKi8KKyNkZWZpbmUgRUNfQ01EX1BXTV9TRVRfRkFOX1RBUkdFVF9SUE0gMHgwMDIxCisKKy8qIFZlcnNpb24gMCBvZiBpbnB1dCBwYXJhbXMgKi8KK3N0cnVjdCBlY19wYXJhbXNfcHdtX3NldF9mYW5fdGFyZ2V0X3JwbV92MCB7CisJdWludDMyX3QgcnBtOworfSBfX2VjX2FsaWduNDsKKworLyogVmVyc2lvbiAxIG9mIGlucHV0IHBhcmFtcyAqLworc3RydWN0IGVjX3BhcmFtc19wd21fc2V0X2Zhbl90YXJnZXRfcnBtX3YxIHsKKwl1aW50MzJfdCBycG07CisJdWludDhfdCBmYW5faWR4OworfSBfX2VjX2FsaWduX3NpemUxOworCisvKiBHZXQga2V5Ym9hcmQgYmFja2xpZ2h0ICovCisvKiBPQlNPTEVURSAtIFVzZSBFQ19DTURfUFdNX1NFVF9EVVRZICovCisjZGVmaW5lIEVDX0NNRF9QV01fR0VUX0tFWUJPQVJEX0JBQ0tMSUdIVCAweDAwMjIKKworc3RydWN0IGVjX3Jlc3BvbnNlX3B3bV9nZXRfa2V5Ym9hcmRfYmFja2xpZ2h0IHsKKwl1aW50OF90IHBlcmNlbnQ7CisJdWludDhfdCBlbmFibGVkOworfSBfX2VjX2FsaWduMTsKKworLyogU2V0IGtleWJvYXJkIGJhY2tsaWdodCAqLworLyogT0JTT0xFVEUgLSBVc2UgRUNfQ01EX1BXTV9TRVRfRFVUWSAqLworI2RlZmluZSBFQ19DTURfUFdNX1NFVF9LRVlCT0FSRF9CQUNLTElHSFQgMHgwMDIzCisKK3N0cnVjdCBlY19wYXJhbXNfcHdtX3NldF9rZXlib2FyZF9iYWNrbGlnaHQgeworCXVpbnQ4X3QgcGVyY2VudDsKK30gX19lY19hbGlnbjE7CisKKy8qIFNldCB0YXJnZXQgZmFuIFBXTSBkdXR5IGN5Y2xlICovCisjZGVmaW5lIEVDX0NNRF9QV01fU0VUX0ZBTl9EVVRZIDB4MDAyNAorCisvKiBWZXJzaW9uIDAgb2YgaW5wdXQgcGFyYW1zICovCitzdHJ1Y3QgZWNfcGFyYW1zX3B3bV9zZXRfZmFuX2R1dHlfdjAgeworCXVpbnQzMl90IHBlcmNlbnQ7Cit9IF9fZWNfYWxpZ240OworCisvKiBWZXJzaW9uIDEgb2YgaW5wdXQgcGFyYW1zICovCitzdHJ1Y3QgZWNfcGFyYW1zX3B3bV9zZXRfZmFuX2R1dHlfdjEgeworCXVpbnQzMl90IHBlcmNlbnQ7CisJdWludDhfdCBmYW5faWR4OworfSBfX2VjX2FsaWduX3NpemUxOworCisjZGVmaW5lIEVDX0NNRF9QV01fU0VUX0RVVFkgMHgwMDI1CisvKiAxNiBiaXQgZHV0eSBjeWNsZSwgMHhmZmZmID0gMTAwJSAqLworI2RlZmluZSBFQ19QV01fTUFYX0RVVFkgMHhmZmZmCisKK2VudW0gZWNfcHdtX3R5cGUgeworCS8qIEFsbCB0eXBlcywgaW5kZXhlZCBieSBib2FyZC1zcGVjaWZpYyBlbnVtIHB3bV9jaGFubmVsICovCisJRUNfUFdNX1RZUEVfR0VORVJJQyA9IDAsCisJLyogS2V5Ym9hcmQgYmFja2xpZ2h0ICovCisJRUNfUFdNX1RZUEVfS0JfTElHSFQsCisJLyogRGlzcGxheSBiYWNrbGlnaHQgKi8KKwlFQ19QV01fVFlQRV9ESVNQTEFZX0xJR0hULAorCUVDX1BXTV9UWVBFX0NPVU5ULAorfTsKKworc3RydWN0IGVjX3BhcmFtc19wd21fc2V0X2R1dHkgeworCXVpbnQxNl90IGR1dHk7ICAgICAvKiBEdXR5IGN5Y2xlLCBFQ19QV01fTUFYX0RVVFkgPSAxMDAlICovCisJdWludDhfdCBwd21fdHlwZTsgIC8qIGVjX3B3bV90eXBlICovCisJdWludDhfdCBpbmRleDsgICAgIC8qIFR5cGUtc3BlY2lmaWMgaW5kZXgsIG9yIDAgaWYgdW5pcXVlICovCit9IF9fZWNfYWxpZ240OworCisjZGVmaW5lIEVDX0NNRF9QV01fR0VUX0RVVFkgMHgwMDI2CisKK3N0cnVjdCBlY19wYXJhbXNfcHdtX2dldF9kdXR5IHsKKwl1aW50OF90IHB3bV90eXBlOyAgLyogZWNfcHdtX3R5cGUgKi8KKwl1aW50OF90IGluZGV4OyAgICAgLyogVHlwZS1zcGVjaWZpYyBpbmRleCwgb3IgMCBpZiB1bmlxdWUgKi8KK30gX19lY19hbGlnbjE7CisKK3N0cnVjdCBlY19yZXNwb25zZV9wd21fZ2V0X2R1dHkgeworCXVpbnQxNl90IGR1dHk7ICAgICAvKiBEdXR5IGN5Y2xlLCBFQ19QV01fTUFYX0RVVFkgPSAxMDAlICovCit9IF9fZWNfYWxpZ24yOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogTGlnaHRiYXIgY29tbWFuZHMuIFRoaXMgbG9va3Mgd29yc2UgdGhhbiBpdCBpcy4gU2luY2Ugd2Ugb25seSB1c2Ugb25lIEhPU1QKKyAqIGNvbW1hbmQgdG8gc2F5ICJ0YWxrIHRvIHRoZSBsaWdodGJhciIsIHdlIHB1dCB0aGUgImFuZCB0ZWxsIGl0IHRvIGRvIFgiIHBhcnQKKyAqIGludG8gYSBzdWJjb21tYW5kLiBXZSdsbCBtYWtlIHNlcGFyYXRlIHN0cnVjdHMgZm9yIHN1YmNvbW1hbmRzIHdpdGgKKyAqIGRpZmZlcmVudCBpbnB1dCBhcmdzLCBzbyB0aGF0IHdlIGtub3cgaG93IG11Y2ggdG8gZXhwZWN0LgorICovCisjZGVmaW5lIEVDX0NNRF9MSUdIVEJBUl9DTUQgMHgwMDI4CisKK3N0cnVjdCByZ2JfcyB7CisJdWludDhfdCByLCBnLCBiOworfSBfX2VjX3RvZG9fdW5wYWNrZWQ7CisKKyNkZWZpbmUgTEJfQkFUVEVSWV9MRVZFTFMgNAorCisvKgorICogTGlzdCBvZiB0d2Vha2FibGUgcGFyYW1ldGVycy4gTk9URTogSXQncyBfX3BhY2tlZCBzbyBpdCBjYW4gYmUgc2VudCBpbiBhCisgKiBob3N0IGNvbW1hbmQsIGJ1dCB0aGUgYWxpZ25tZW50IGlzIHRoZSBzYW1lIHJlZ2FyZGxlc3MuIEtlZXAgaXQgdGhhdCB3YXkuCisgKi8KK3N0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjAgeworCS8qIFRpbWluZyAqLworCWludDMyX3QgZ29vZ2xlX3JhbXBfdXA7CisJaW50MzJfdCBnb29nbGVfcmFtcF9kb3duOworCWludDMyX3QgczNzMF9yYW1wX3VwOworCWludDMyX3QgczBfdGlja19kZWxheVsyXTsJCS8qIEFDPTAvMSAqLworCWludDMyX3QgczBhX3RpY2tfZGVsYXlbMl07CQkvKiBBQz0wLzEgKi8KKwlpbnQzMl90IHMwczNfcmFtcF9kb3duOworCWludDMyX3QgczNfc2xlZXBfZm9yOworCWludDMyX3QgczNfcmFtcF91cDsKKwlpbnQzMl90IHMzX3JhbXBfZG93bjsKKworCS8qIE9zY2lsbGF0aW9uICovCisJdWludDhfdCBuZXdfczA7CisJdWludDhfdCBvc2NfbWluWzJdOwkJCS8qIEFDPTAvMSAqLworCXVpbnQ4X3Qgb3NjX21heFsyXTsJCQkvKiBBQz0wLzEgKi8KKwl1aW50OF90IHdfb2ZzWzJdOwkJCS8qIEFDPTAvMSAqLworCisJLyogQnJpZ2h0bmVzcyBsaW1pdHMgYmFzZWQgb24gdGhlIGJhY2tsaWdodCBhbmQgQUMuICovCisJdWludDhfdCBicmlnaHRfYmxfb2ZmX2ZpeGVkWzJdOwkJLyogQUM9MC8xICovCisJdWludDhfdCBicmlnaHRfYmxfb25fbWluWzJdOwkJLyogQUM9MC8xICovCisJdWludDhfdCBicmlnaHRfYmxfb25fbWF4WzJdOwkJLyogQUM9MC8xICovCisKKwkvKiBCYXR0ZXJ5IGxldmVsIHRocmVzaG9sZHMgKi8KKwl1aW50OF90IGJhdHRlcnlfdGhyZXNob2xkW0xCX0JBVFRFUllfTEVWRUxTIC0gMV07CisKKwkvKiBNYXAgW0FDXVtiYXR0ZXJ5X2xldmVsXSB0byBjb2xvciBpbmRleCAqLworCXVpbnQ4X3QgczBfaWR4WzJdW0xCX0JBVFRFUllfTEVWRUxTXTsJLyogQVAgaXMgcnVubmluZyAqLworCXVpbnQ4X3QgczNfaWR4WzJdW0xCX0JBVFRFUllfTEVWRUxTXTsJLyogQVAgaXMgc2xlZXBpbmcgKi8KKworCS8qIENvbG9yIHBhbGV0dGUgKi8KKwlzdHJ1Y3QgcmdiX3MgY29sb3JbOF07CQkJLyogMC0zIGFyZSBHb29nbGUgY29sb3JzICovCit9IF9fZWNfdG9kb19wYWNrZWQ7CisKK3N0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjEgeworCS8qIFRpbWluZyAqLworCWludDMyX3QgZ29vZ2xlX3JhbXBfdXA7CisJaW50MzJfdCBnb29nbGVfcmFtcF9kb3duOworCWludDMyX3QgczNzMF9yYW1wX3VwOworCWludDMyX3QgczBfdGlja19kZWxheVsyXTsJCS8qIEFDPTAvMSAqLworCWludDMyX3QgczBhX3RpY2tfZGVsYXlbMl07CQkvKiBBQz0wLzEgKi8KKwlpbnQzMl90IHMwczNfcmFtcF9kb3duOworCWludDMyX3QgczNfc2xlZXBfZm9yOworCWludDMyX3QgczNfcmFtcF91cDsKKwlpbnQzMl90IHMzX3JhbXBfZG93bjsKKwlpbnQzMl90IHM1X3JhbXBfdXA7CisJaW50MzJfdCBzNV9yYW1wX2Rvd247CisJaW50MzJfdCB0YXBfdGlja19kZWxheTsKKwlpbnQzMl90IHRhcF9nYXRlX2RlbGF5OworCWludDMyX3QgdGFwX2Rpc3BsYXlfdGltZTsKKworCS8qIFRhcC1mb3ItYmF0dGVyeSBwYXJhbXMgKi8KKwl1aW50OF90IHRhcF9wY3RfcmVkOworCXVpbnQ4X3QgdGFwX3BjdF9ncmVlbjsKKwl1aW50OF90IHRhcF9zZWdfbWluX29uOworCXVpbnQ4X3QgdGFwX3NlZ19tYXhfb247CisJdWludDhfdCB0YXBfc2VnX29zYzsKKwl1aW50OF90IHRhcF9pZHhbM107CisKKwkvKiBPc2NpbGxhdGlvbiAqLworCXVpbnQ4X3Qgb3NjX21pblsyXTsJCQkvKiBBQz0wLzEgKi8KKwl1aW50OF90IG9zY19tYXhbMl07CQkJLyogQUM9MC8xICovCisJdWludDhfdCB3X29mc1syXTsJCQkvKiBBQz0wLzEgKi8KKworCS8qIEJyaWdodG5lc3MgbGltaXRzIGJhc2VkIG9uIHRoZSBiYWNrbGlnaHQgYW5kIEFDLiAqLworCXVpbnQ4X3QgYnJpZ2h0X2JsX29mZl9maXhlZFsyXTsJCS8qIEFDPTAvMSAqLworCXVpbnQ4X3QgYnJpZ2h0X2JsX29uX21pblsyXTsJCS8qIEFDPTAvMSAqLworCXVpbnQ4X3QgYnJpZ2h0X2JsX29uX21heFsyXTsJCS8qIEFDPTAvMSAqLworCisJLyogQmF0dGVyeSBsZXZlbCB0aHJlc2hvbGRzICovCisJdWludDhfdCBiYXR0ZXJ5X3RocmVzaG9sZFtMQl9CQVRURVJZX0xFVkVMUyAtIDFdOworCisJLyogTWFwIFtBQ11bYmF0dGVyeV9sZXZlbF0gdG8gY29sb3IgaW5kZXggKi8KKwl1aW50OF90IHMwX2lkeFsyXVtMQl9CQVRURVJZX0xFVkVMU107CS8qIEFQIGlzIHJ1bm5pbmcgKi8KKwl1aW50OF90IHMzX2lkeFsyXVtMQl9CQVRURVJZX0xFVkVMU107CS8qIEFQIGlzIHNsZWVwaW5nICovCisKKwkvKiBzNTogc2luZ2xlIGNvbG9yIHB1bHNlIG9uIGluaGliaXRlZCBwb3dlci11cCAqLworCXVpbnQ4X3QgczVfaWR4OworCisJLyogQ29sb3IgcGFsZXR0ZSAqLworCXN0cnVjdCByZ2JfcyBjb2xvcls4XTsJCQkvKiAwLTMgYXJlIEdvb2dsZSBjb2xvcnMgKi8KK30gX19lY190b2RvX3BhY2tlZDsKKworLyogTGlnaHRiYXIgY29tbWFuZCBwYXJhbXMgdjIKKyAqIGNyYnVnLmNvbS80Njc3MTYKKyAqCisgKiBsaWdodGJhcl9wYXJtc192MSB3YXMgdG9vIGJpZyBmb3IgaTJjLCB0aGVyZWZvcmUgaW4gdjIsIHdlIHNwbGl0IHRoZW0gdXAgYnkKKyAqIGxvZ2ljYWwgZ3JvdXBzIHRvIG1ha2UgaXQgbW9yZSBtYW5hZ2VhYmxlICggPCAxMjAgYnl0ZXMpLgorICoKKyAqIE5PVEU6IEVhY2ggb2YgdGhlc2UgZ3JvdXBzIG11c3QgYmUgbGVzcyB0aGFuIDEyMCBieXRlcy4KKyAqLworCitzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX3RpbWluZyB7CisJLyogVGltaW5nICovCisJaW50MzJfdCBnb29nbGVfcmFtcF91cDsKKwlpbnQzMl90IGdvb2dsZV9yYW1wX2Rvd247CisJaW50MzJfdCBzM3MwX3JhbXBfdXA7CisJaW50MzJfdCBzMF90aWNrX2RlbGF5WzJdOwkJLyogQUM9MC8xICovCisJaW50MzJfdCBzMGFfdGlja19kZWxheVsyXTsJCS8qIEFDPTAvMSAqLworCWludDMyX3QgczBzM19yYW1wX2Rvd247CisJaW50MzJfdCBzM19zbGVlcF9mb3I7CisJaW50MzJfdCBzM19yYW1wX3VwOworCWludDMyX3QgczNfcmFtcF9kb3duOworCWludDMyX3QgczVfcmFtcF91cDsKKwlpbnQzMl90IHM1X3JhbXBfZG93bjsKKwlpbnQzMl90IHRhcF90aWNrX2RlbGF5OworCWludDMyX3QgdGFwX2dhdGVfZGVsYXk7CisJaW50MzJfdCB0YXBfZGlzcGxheV90aW1lOworfSBfX2VjX3RvZG9fcGFja2VkOworCitzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX3RhcCB7CisJLyogVGFwLWZvci1iYXR0ZXJ5IHBhcmFtcyAqLworCXVpbnQ4X3QgdGFwX3BjdF9yZWQ7CisJdWludDhfdCB0YXBfcGN0X2dyZWVuOworCXVpbnQ4X3QgdGFwX3NlZ19taW5fb247CisJdWludDhfdCB0YXBfc2VnX21heF9vbjsKKwl1aW50OF90IHRhcF9zZWdfb3NjOworCXVpbnQ4X3QgdGFwX2lkeFszXTsKK30gX19lY190b2RvX3BhY2tlZDsKKworc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192Ml9vc2NpbGxhdGlvbiB7CisJLyogT3NjaWxsYXRpb24gKi8KKwl1aW50OF90IG9zY19taW5bMl07CQkJLyogQUM9MC8xICovCisJdWludDhfdCBvc2NfbWF4WzJdOwkJCS8qIEFDPTAvMSAqLworCXVpbnQ4X3Qgd19vZnNbMl07CQkJLyogQUM9MC8xICovCit9IF9fZWNfdG9kb19wYWNrZWQ7CisKK3N0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfYnJpZ2h0bmVzcyB7CisJLyogQnJpZ2h0bmVzcyBsaW1pdHMgYmFzZWQgb24gdGhlIGJhY2tsaWdodCBhbmQgQUMuICovCisJdWludDhfdCBicmlnaHRfYmxfb2ZmX2ZpeGVkWzJdOwkJLyogQUM9MC8xICovCisJdWludDhfdCBicmlnaHRfYmxfb25fbWluWzJdOwkJLyogQUM9MC8xICovCisJdWludDhfdCBicmlnaHRfYmxfb25fbWF4WzJdOwkJLyogQUM9MC8xICovCit9IF9fZWNfdG9kb19wYWNrZWQ7CisKK3N0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfdGhyZXNob2xkcyB7CisJLyogQmF0dGVyeSBsZXZlbCB0aHJlc2hvbGRzICovCisJdWludDhfdCBiYXR0ZXJ5X3RocmVzaG9sZFtMQl9CQVRURVJZX0xFVkVMUyAtIDFdOworfSBfX2VjX3RvZG9fcGFja2VkOworCitzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX2NvbG9ycyB7CisJLyogTWFwIFtBQ11bYmF0dGVyeV9sZXZlbF0gdG8gY29sb3IgaW5kZXggKi8KKwl1aW50OF90IHMwX2lkeFsyXVtMQl9CQVRURVJZX0xFVkVMU107CS8qIEFQIGlzIHJ1bm5pbmcgKi8KKwl1aW50OF90IHMzX2lkeFsyXVtMQl9CQVRURVJZX0xFVkVMU107CS8qIEFQIGlzIHNsZWVwaW5nICovCisKKwkvKiBzNTogc2luZ2xlIGNvbG9yIHB1bHNlIG9uIGluaGliaXRlZCBwb3dlci11cCAqLworCXVpbnQ4X3QgczVfaWR4OworCisJLyogQ29sb3IgcGFsZXR0ZSAqLworCXN0cnVjdCByZ2JfcyBjb2xvcls4XTsJCQkvKiAwLTMgYXJlIEdvb2dsZSBjb2xvcnMgKi8KK30gX19lY190b2RvX3BhY2tlZDsKKworLyogTGlnaHRiYXIgcHJvZ3JhbS4gKi8KKyNkZWZpbmUgRUNfTEJfUFJPR19MRU4gMTkyCitzdHJ1Y3QgbGlnaHRiYXJfcHJvZ3JhbSB7CisJdWludDhfdCBzaXplOworCXVpbnQ4X3QgZGF0YVtFQ19MQl9QUk9HX0xFTl07Cit9IF9fZWNfdG9kb191bnBhY2tlZDsKKworc3RydWN0IGVjX3BhcmFtc19saWdodGJhciB7CisJdWludDhfdCBjbWQ7CQkgICAgICAvKiBDb21tYW5kIChzZWUgZW51bSBsaWdodGJhcl9jb21tYW5kKSAqLworCXVuaW9uIHsKKwkJLyoKKwkJICogVGhlIGZvbGxvd2luZyBjb21tYW5kcyBoYXZlIG5vIGFyZ3M6CisJCSAqCisJCSAqIGR1bXAsIG9mZiwgb24sIGluaXQsIGdldF9zZXEsIGdldF9wYXJhbXNfdjAsIGdldF9wYXJhbXNfdjEsCisJCSAqIHZlcnNpb24sIGdldF9icmlnaHRuZXNzLCBnZXRfZGVtbywgc3VzcGVuZCwgcmVzdW1lLAorCQkgKiBnZXRfcGFyYW1zX3YyX3RpbWluZywgZ2V0X3BhcmFtc192Ml90YXAsIGdldF9wYXJhbXNfdjJfb3NjLAorCQkgKiBnZXRfcGFyYW1zX3YyX2JyaWdodCwgZ2V0X3BhcmFtc192Ml90aGxkcywKKwkJICogZ2V0X3BhcmFtc192Ml9jb2xvcnMKKwkJICoKKwkJICogRG9uJ3QgdXNlIGFuIGVtcHR5IHN0cnVjdCwgYmVjYXVzZSBDKysgaGF0ZXMgdGhhdC4KKwkJICovCisKKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQl1aW50OF90IG51bTsKKwkJfSBzZXRfYnJpZ2h0bmVzcywgc2VxLCBkZW1vOworCisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJdWludDhfdCBjdHJsLCByZWcsIHZhbHVlOworCQl9IHJlZzsKKworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCXVpbnQ4X3QgbGVkLCByZWQsIGdyZWVuLCBibHVlOworCQl9IHNldF9yZ2I7CisKKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQl1aW50OF90IGxlZDsKKwkJfSBnZXRfcmdiOworCisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJdWludDhfdCBlbmFibGU7CisJCX0gbWFudWFsX3N1c3BlbmRfY3RybDsKKworCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YwIHNldF9wYXJhbXNfdjA7CisJCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjEgc2V0X3BhcmFtc192MTsKKworCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX3RpbWluZyBzZXRfdjJwYXJfdGltaW5nOworCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX3RhcCBzZXRfdjJwYXJfdGFwOworCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX29zY2lsbGF0aW9uIHNldF92MnBhcl9vc2M7CisJCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfYnJpZ2h0bmVzcyBzZXRfdjJwYXJfYnJpZ2h0OworCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX3RocmVzaG9sZHMgc2V0X3YycGFyX3RobGRzOworCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX2NvbG9ycyBzZXRfdjJwYXJfY29sb3JzOworCisJCXN0cnVjdCBsaWdodGJhcl9wcm9ncmFtIHNldF9wcm9ncmFtOworCX07Cit9IF9fZWNfdG9kb19wYWNrZWQ7CisKK3N0cnVjdCBlY19yZXNwb25zZV9saWdodGJhciB7CisJdW5pb24geworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJCXVpbnQ4X3QgcmVnOworCQkJCXVpbnQ4X3QgaWMwOworCQkJCXVpbnQ4X3QgaWMxOworCQkJfSB2YWxzWzIzXTsKKwkJfSBkdW1wOworCisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJdWludDhfdCBudW07CisJCX0gZ2V0X3NlcSwgZ2V0X2JyaWdodG5lc3MsIGdldF9kZW1vOworCisJCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjAgZ2V0X3BhcmFtc192MDsKKwkJc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192MSBnZXRfcGFyYW1zX3YxOworCisKKwkJc3RydWN0IGxpZ2h0YmFyX3BhcmFtc192Ml90aW1pbmcgZ2V0X3BhcmFtc192Ml90aW1pbmc7CisJCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfdGFwIGdldF9wYXJhbXNfdjJfdGFwOworCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX29zY2lsbGF0aW9uIGdldF9wYXJhbXNfdjJfb3NjOworCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX2JyaWdodG5lc3MgZ2V0X3BhcmFtc192Ml9icmlnaHQ7CisJCXN0cnVjdCBsaWdodGJhcl9wYXJhbXNfdjJfdGhyZXNob2xkcyBnZXRfcGFyYW1zX3YyX3RobGRzOworCQlzdHJ1Y3QgbGlnaHRiYXJfcGFyYW1zX3YyX2NvbG9ycyBnZXRfcGFyYW1zX3YyX2NvbG9yczsKKworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCXVpbnQzMl90IG51bTsKKwkJCXVpbnQzMl90IGZsYWdzOworCQl9IHZlcnNpb247CisKKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQl1aW50OF90IHJlZCwgZ3JlZW4sIGJsdWU7CisJCX0gZ2V0X3JnYjsKKworCQkvKgorCQkgKiBUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGhhdmUgbm8gcmVzcG9uc2U6CisJCSAqCisJCSAqIG9mZiwgb24sIGluaXQsIHNldF9icmlnaHRuZXNzLCBzZXEsIHJlZywgc2V0X3JnYiwgZGVtbywKKwkJICogc2V0X3BhcmFtc192MCwgc2V0X3BhcmFtc192MSwgc2V0X3Byb2dyYW0sCisJCSAqIG1hbnVhbF9zdXNwZW5kX2N0cmwsIHN1c3BlbmQsIHJlc3VtZSwgc2V0X3YycGFyX3RpbWluZywKKwkJICogc2V0X3YycGFyX3RhcCwgc2V0X3YycGFyX29zYywgc2V0X3YycGFyX2JyaWdodCwKKwkJICogc2V0X3YycGFyX3RobGRzLCBzZXRfdjJwYXJfY29sb3JzCisJCSAqLworCX07Cit9IF9fZWNfdG9kb19wYWNrZWQ7CisKKy8qIExpZ2h0YmFyIGNvbW1hbmRzICovCitlbnVtIGxpZ2h0YmFyX2NvbW1hbmQgeworCUxJR0hUQkFSX0NNRF9EVU1QID0gMCwKKwlMSUdIVEJBUl9DTURfT0ZGID0gMSwKKwlMSUdIVEJBUl9DTURfT04gPSAyLAorCUxJR0hUQkFSX0NNRF9JTklUID0gMywKKwlMSUdIVEJBUl9DTURfU0VUX0JSSUdIVE5FU1MgPSA0LAorCUxJR0hUQkFSX0NNRF9TRVEgPSA1LAorCUxJR0hUQkFSX0NNRF9SRUcgPSA2LAorCUxJR0hUQkFSX0NNRF9TRVRfUkdCID0gNywKKwlMSUdIVEJBUl9DTURfR0VUX1NFUSA9IDgsCisJTElHSFRCQVJfQ01EX0RFTU8gPSA5LAorCUxJR0hUQkFSX0NNRF9HRVRfUEFSQU1TX1YwID0gMTAsCisJTElHSFRCQVJfQ01EX1NFVF9QQVJBTVNfVjAgPSAxMSwKKwlMSUdIVEJBUl9DTURfVkVSU0lPTiA9IDEyLAorCUxJR0hUQkFSX0NNRF9HRVRfQlJJR0hUTkVTUyA9IDEzLAorCUxJR0hUQkFSX0NNRF9HRVRfUkdCID0gMTQsCisJTElHSFRCQVJfQ01EX0dFVF9ERU1PID0gMTUsCisJTElHSFRCQVJfQ01EX0dFVF9QQVJBTVNfVjEgPSAxNiwKKwlMSUdIVEJBUl9DTURfU0VUX1BBUkFNU19WMSA9IDE3LAorCUxJR0hUQkFSX0NNRF9TRVRfUFJPR1JBTSA9IDE4LAorCUxJR0hUQkFSX0NNRF9NQU5VQUxfU1VTUEVORF9DVFJMID0gMTksCisJTElHSFRCQVJfQ01EX1NVU1BFTkQgPSAyMCwKKwlMSUdIVEJBUl9DTURfUkVTVU1FID0gMjEsCisJTElHSFRCQVJfQ01EX0dFVF9QQVJBTVNfVjJfVElNSU5HID0gMjIsCisJTElHSFRCQVJfQ01EX1NFVF9QQVJBTVNfVjJfVElNSU5HID0gMjMsCisJTElHSFRCQVJfQ01EX0dFVF9QQVJBTVNfVjJfVEFQID0gMjQsCisJTElHSFRCQVJfQ01EX1NFVF9QQVJBTVNfVjJfVEFQID0gMjUsCisJTElHSFRCQVJfQ01EX0dFVF9QQVJBTVNfVjJfT1NDSUxMQVRJT04gPSAyNiwKKwlMSUdIVEJBUl9DTURfU0VUX1BBUkFNU19WMl9PU0NJTExBVElPTiA9IDI3LAorCUxJR0hUQkFSX0NNRF9HRVRfUEFSQU1TX1YyX0JSSUdIVE5FU1MgPSAyOCwKKwlMSUdIVEJBUl9DTURfU0VUX1BBUkFNU19WMl9CUklHSFRORVNTID0gMjksCisJTElHSFRCQVJfQ01EX0dFVF9QQVJBTVNfVjJfVEhSRVNIT0xEUyA9IDMwLAorCUxJR0hUQkFSX0NNRF9TRVRfUEFSQU1TX1YyX1RIUkVTSE9MRFMgPSAzMSwKKwlMSUdIVEJBUl9DTURfR0VUX1BBUkFNU19WMl9DT0xPUlMgPSAzMiwKKwlMSUdIVEJBUl9DTURfU0VUX1BBUkFNU19WMl9DT0xPUlMgPSAzMywKKwlMSUdIVEJBUl9OVU1fQ01EUworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTEVEIGNvbnRyb2wgY29tbWFuZHMgKi8KKworI2RlZmluZSBFQ19DTURfTEVEX0NPTlRST0wgMHgwMDI5CisKK2VudW0gZWNfbGVkX2lkIHsKKwkvKiBMRUQgdG8gaW5kaWNhdGUgYmF0dGVyeSBzdGF0ZSBvZiBjaGFyZ2UgKi8KKwlFQ19MRURfSURfQkFUVEVSWV9MRUQgPSAwLAorCS8qCisJICogTEVEIHRvIGluZGljYXRlIHN5c3RlbSBwb3dlciBzdGF0ZSAob24gb3IgaW4gc3VzcGVuZCkuCisJICogTWF5IGJlIG9uIHBvd2VyIGJ1dHRvbiBvciBvbiBDLXBhbmVsLgorCSAqLworCUVDX0xFRF9JRF9QT1dFUl9MRUQsCisJLyogTEVEIG9uIHBvd2VyIGFkYXB0ZXIgb3IgaXRzIHBsdWcgKi8KKwlFQ19MRURfSURfQURBUFRFUl9MRUQsCisJLyogTEVEIHRvIGluZGljYXRlIGxlZnQgc2lkZSAqLworCUVDX0xFRF9JRF9MRUZUX0xFRCwKKwkvKiBMRUQgdG8gaW5kaWNhdGUgcmlnaHQgc2lkZSAqLworCUVDX0xFRF9JRF9SSUdIVF9MRUQsCisJLyogTEVEIHRvIGluZGljYXRlIHJlY292ZXJ5IG1vZGUgd2l0aCBIV19SRUlOSVQgKi8KKwlFQ19MRURfSURfUkVDT1ZFUllfSFdfUkVJTklUX0xFRCwKKwkvKiBMRUQgdG8gaW5kaWNhdGUgc3lzcnEgZGVidWcgbW9kZS4gKi8KKwlFQ19MRURfSURfU1lTUlFfREVCVUdfTEVELAorCisJRUNfTEVEX0lEX0NPVU5UCit9OworCisvKiBMRUQgY29udHJvbCBmbGFncyAqLworI2RlZmluZSBFQ19MRURfRkxBR1NfUVVFUlkgQklUKDApIC8qIFF1ZXJ5IExFRCBjYXBhYmlsaXR5IG9ubHkgKi8KKyNkZWZpbmUgRUNfTEVEX0ZMQUdTX0FVVE8gIEJJVCgxKSAvKiBTd2l0Y2ggTEVEIGJhY2sgdG8gYXV0b21hdGljIGNvbnRyb2wgKi8KKworZW51bSBlY19sZWRfY29sb3JzIHsKKwlFQ19MRURfQ09MT1JfUkVEID0gMCwKKwlFQ19MRURfQ09MT1JfR1JFRU4sCisJRUNfTEVEX0NPTE9SX0JMVUUsCisJRUNfTEVEX0NPTE9SX1lFTExPVywKKwlFQ19MRURfQ09MT1JfV0hJVEUsCisJRUNfTEVEX0NPTE9SX0FNQkVSLAorCisJRUNfTEVEX0NPTE9SX0NPVU5UCit9OworCitzdHJ1Y3QgZWNfcGFyYW1zX2xlZF9jb250cm9sIHsKKwl1aW50OF90IGxlZF9pZDsgICAgIC8qIFdoaWNoIExFRCB0byBjb250cm9sICovCisJdWludDhfdCBmbGFnczsgICAgICAvKiBDb250cm9sIGZsYWdzICovCisKKwl1aW50OF90IGJyaWdodG5lc3NbRUNfTEVEX0NPTE9SX0NPVU5UXTsKK30gX19lY19hbGlnbjE7CisKK3N0cnVjdCBlY19yZXNwb25zZV9sZWRfY29udHJvbCB7CisJLyoKKwkgKiBBdmFpbGFibGUgYnJpZ2h0bmVzcyB2YWx1ZSByYW5nZS4KKwkgKgorCSAqIFJhbmdlIDAgbWVhbnMgY29sb3IgY2hhbm5lbCBub3QgcHJlc2VudC4KKwkgKiBSYW5nZSAxIG1lYW5zIG9uL29mZiBjb250cm9sLgorCSAqIE90aGVyIHZhbHVlcyBtZWFucyB0aGUgTEVEIGlzIGNvbnRyb2wgYnkgUFdNLgorCSAqLworCXVpbnQ4X3QgYnJpZ2h0bmVzc19yYW5nZVtFQ19MRURfQ09MT1JfQ09VTlRdOworfSBfX2VjX2FsaWduMTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogVmVyaWZpZWQgYm9vdCBjb21tYW5kcyAqLworCisvKgorICogTm90ZTogY29tbWFuZCBjb2RlIDB4MjkgdmVyc2lvbiAwIHdhcyBWQk9PVF9DTUQgaW4gTGluayBFVlQ7IGl0IG1heSBiZQorICogcmV1c2VkIGZvciBvdGhlciBwdXJwb3NlcyB3aXRoIHZlcnNpb24gPiAwLgorICovCisKKy8qIFZlcmlmaWVkIGJvb3QgaGFzaCBjb21tYW5kICovCisjZGVmaW5lIEVDX0NNRF9WQk9PVF9IQVNIIDB4MDAyQQorCitzdHJ1Y3QgZWNfcGFyYW1zX3Zib290X2hhc2ggeworCXVpbnQ4X3QgY21kOyAgICAgICAgICAgICAvKiBlbnVtIGVjX3Zib290X2hhc2hfY21kICovCisJdWludDhfdCBoYXNoX3R5cGU7ICAgICAgIC8qIGVudW0gZWNfdmJvb3RfaGFzaF90eXBlICovCisJdWludDhfdCBub25jZV9zaXplOyAgICAgIC8qIE5vbmNlIHNpemU7IG1heSBiZSAwICovCisJdWludDhfdCByZXNlcnZlZDA7ICAgICAgIC8qIFJlc2VydmVkOyBzZXQgMCAqLworCXVpbnQzMl90IG9mZnNldDsgICAgICAgICAvKiBPZmZzZXQgaW4gZmxhc2ggdG8gaGFzaCAqLworCXVpbnQzMl90IHNpemU7ICAgICAgICAgICAvKiBOdW1iZXIgb2YgYnl0ZXMgdG8gaGFzaCAqLworCXVpbnQ4X3Qgbm9uY2VfZGF0YVs2NF07ICAvKiBOb25jZSBkYXRhOyBpZ25vcmVkIGlmIG5vbmNlX3NpemU9MCAqLworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX3Jlc3BvbnNlX3Zib290X2hhc2ggeworCXVpbnQ4X3Qgc3RhdHVzOyAgICAgICAgICAvKiBlbnVtIGVjX3Zib290X2hhc2hfc3RhdHVzICovCisJdWludDhfdCBoYXNoX3R5cGU7ICAgICAgIC8qIGVudW0gZWNfdmJvb3RfaGFzaF90eXBlICovCisJdWludDhfdCBkaWdlc3Rfc2l6ZTsgICAgIC8qIFNpemUgb2YgaGFzaCBkaWdlc3QgaW4gYnl0ZXMgKi8KKwl1aW50OF90IHJlc2VydmVkMDsgICAgICAgLyogSWdub3JlOyB3aWxsIGJlIDAgKi8KKwl1aW50MzJfdCBvZmZzZXQ7ICAgICAgICAgLyogT2Zmc2V0IGluIGZsYXNoIHdoaWNoIHdhcyBoYXNoZWQgKi8KKwl1aW50MzJfdCBzaXplOyAgICAgICAgICAgLyogTnVtYmVyIG9mIGJ5dGVzIGhhc2hlZCAqLworCXVpbnQ4X3QgaGFzaF9kaWdlc3RbNjRdOyAvKiBIYXNoIGRpZ2VzdCBkYXRhICovCit9IF9fZWNfYWxpZ240OworCitlbnVtIGVjX3Zib290X2hhc2hfY21kIHsKKwlFQ19WQk9PVF9IQVNIX0dFVCA9IDAsICAgICAgIC8qIEdldCBjdXJyZW50IGhhc2ggc3RhdHVzICovCisJRUNfVkJPT1RfSEFTSF9BQk9SVCA9IDEsICAgICAvKiBBYm9ydCBjYWxjdWxhdGluZyBjdXJyZW50IGhhc2ggKi8KKwlFQ19WQk9PVF9IQVNIX1NUQVJUID0gMiwgICAgIC8qIFN0YXJ0IGNvbXB1dGluZyBhIG5ldyBoYXNoICovCisJRUNfVkJPT1RfSEFTSF9SRUNBTEMgPSAzLCAgICAvKiBTeW5jaHJvbm91c2x5IGNvbXB1dGUgYSBuZXcgaGFzaCAqLworfTsKKworZW51bSBlY192Ym9vdF9oYXNoX3R5cGUgeworCUVDX1ZCT09UX0hBU0hfVFlQRV9TSEEyNTYgPSAwLCAvKiBTSEEtMjU2ICovCit9OworCitlbnVtIGVjX3Zib290X2hhc2hfc3RhdHVzIHsKKwlFQ19WQk9PVF9IQVNIX1NUQVRVU19OT05FID0gMCwgLyogTm8gaGFzaCAobm90IHN0YXJ0ZWQsIG9yIGFib3J0ZWQpICovCisJRUNfVkJPT1RfSEFTSF9TVEFUVVNfRE9ORSA9IDEsIC8qIEZpbmlzaGVkIGNvbXB1dGluZyBhIGhhc2ggKi8KKwlFQ19WQk9PVF9IQVNIX1NUQVRVU19CVVNZID0gMiwgLyogQnVzeSBjb21wdXRpbmcgYSBoYXNoICovCit9OworCisvKgorICogU3BlY2lhbCB2YWx1ZXMgZm9yIG9mZnNldCBmb3IgRUNfVkJPT1RfSEFTSF9TVEFSVCBhbmQgRUNfVkJPT1RfSEFTSF9SRUNBTEMuCisgKiBJZiBvbmUgb2YgdGhlc2UgaXMgc3BlY2lmaWVkLCB0aGUgRUMgd2lsbCBhdXRvbWF0aWNhbGx5IHVwZGF0ZSBvZmZzZXQgYW5kCisgKiBzaXplIHRvIHRoZSBjb3JyZWN0IHZhbHVlcyBmb3IgdGhlIHNwZWNpZmllZCBpbWFnZSAoUk8gb3IgUlcpLgorICovCisjZGVmaW5lIEVDX1ZCT09UX0hBU0hfT0ZGU0VUX1JPCQkweGZmZmZmZmZlCisjZGVmaW5lIEVDX1ZCT09UX0hBU0hfT0ZGU0VUX0FDVElWRQkweGZmZmZmZmZkCisjZGVmaW5lIEVDX1ZCT09UX0hBU0hfT0ZGU0VUX1VQREFURQkweGZmZmZmZmZjCisKKy8qCisgKiAnUlcnIGlzIHZhZ3VlIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBSVyBpbWFnZXM7IHdlIG1lYW4gdGhlIGFjdGl2ZSBvbmUsCisgKiBzbyB0aGUgb2xkIGNvbnN0YW50IGlzIGRlcHJlY2F0ZWQuCisgKi8KKyNkZWZpbmUgRUNfVkJPT1RfSEFTSF9PRkZTRVRfUlcgRUNfVkJPT1RfSEFTSF9PRkZTRVRfQUNUSVZFCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiBNb3Rpb24gc2Vuc2UgY29tbWFuZHMuIFdlJ2xsIG1ha2Ugc2VwYXJhdGUgc3RydWN0cyBmb3Igc3ViLWNvbW1hbmRzIHdpdGgKKyAqIGRpZmZlcmVudCBpbnB1dCBhcmdzLCBzbyB0aGF0IHdlIGtub3cgaG93IG11Y2ggdG8gZXhwZWN0LgorICovCisjZGVmaW5lIEVDX0NNRF9NT1RJT05fU0VOU0VfQ01EIDB4MDAyQgorCisvKiBNb3Rpb24gc2Vuc2UgY29tbWFuZHMgKi8KK2VudW0gbW90aW9uc2Vuc2VfY29tbWFuZCB7CisJLyoKKwkgKiBEdW1wIGNvbW1hbmQgcmV0dXJucyBhbGwgbW90aW9uIHNlbnNvciBkYXRhIGluY2x1ZGluZyBtb3Rpb24gc2Vuc2UKKwkgKiBtb2R1bGUgZmxhZ3MgYW5kIGluZGl2aWR1YWwgc2Vuc29yIGZsYWdzLgorCSAqLworCU1PVElPTlNFTlNFX0NNRF9EVU1QID0gMCwKKworCS8qCisJICogSW5mbyBjb21tYW5kIHJldHVybnMgZGF0YSBkZXNjcmliaW5nIHRoZSBkZXRhaWxzIG9mIGEgZ2l2ZW4gc2Vuc29yLAorCSAqIGluY2x1ZGluZyBlbnVtIG1vdGlvbnNlbnNvcl90eXBlLCBlbnVtIG1vdGlvbnNlbnNvcl9sb2NhdGlvbiwgYW5kCisJICogZW51bSBtb3Rpb25zZW5zb3JfY2hpcC4KKwkgKi8KKwlNT1RJT05TRU5TRV9DTURfSU5GTyA9IDEsCisKKwkvKgorCSAqIEVDIFJhdGUgY29tbWFuZCBpcyBhIHNldHRlci9nZXR0ZXIgY29tbWFuZCBmb3IgdGhlIEVDIHNhbXBsaW5nIHJhdGUKKwkgKiBpbiBtaWxsaXNlY29uZHMuCisJICogSXQgaXMgcGVyIHNlbnNvciwgdGhlIEVDIHJ1biBzYW1wbGUgdGFzayAgYXQgdGhlIG1pbmltdW0gb2YgYWxsCisJICogc2Vuc29ycyBFQ19SQVRFLgorCSAqIEZvciBzZW5zb3JzIHdpdGhvdXQgaGFyZHdhcmUgRklGTywgRUNfUkFURSBzaG91bGQgYmUgZXF1YWxzIHRvIDEvT0RSCisJICogdG8gY29sbGVjdCBhbGwgdGhlIHNlbnNvciBzYW1wbGVzLgorCSAqIEZvciBzZW5zb3Igd2l0aCBoYXJkd2FyZSBGSUZPLCBFQ19SQVRFIGlzIHVzZWQgYXMgdGhlIG1heGltYWwgZGVsYXkKKwkgKiB0byBwcm9jZXNzIG9mIGFsbCBtb3Rpb24gc2Vuc29ycyBpbiBtaWxsaXNlY29uZHMuCisJICovCisJTU9USU9OU0VOU0VfQ01EX0VDX1JBVEUgPSAyLAorCisJLyoKKwkgKiBTZW5zb3IgT0RSIGNvbW1hbmQgaXMgYSBzZXR0ZXIvZ2V0dGVyIGNvbW1hbmQgZm9yIHRoZSBvdXRwdXQgZGF0YQorCSAqIHJhdGUgb2YgYSBzcGVjaWZpYyBtb3Rpb24gc2Vuc29yIGluIG1pbGxpaGVydHouCisJICovCisJTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9PRFIgPSAzLAorCisJLyoKKwkgKiBTZW5zb3IgcmFuZ2UgY29tbWFuZCBpcyBhIHNldHRlci9nZXR0ZXIgY29tbWFuZCBmb3IgdGhlIHJhbmdlIG9mCisJICogYSBzcGVjaWZpZWQgbW90aW9uIHNlbnNvciBpbiArLy1HJ3Mgb3IgKy8tIGRlZy9zLgorCSAqLworCU1PVElPTlNFTlNFX0NNRF9TRU5TT1JfUkFOR0UgPSA0LAorCisJLyoKKwkgKiBTZXR0ZXIvZ2V0dGVyIGNvbW1hbmQgZm9yIHRoZSBrZXlib2FyZCB3YWtlIGFuZ2xlLiBXaGVuIHRoZSBsaWQKKwkgKiBhbmdsZSBpcyBncmVhdGVyIHRoYW4gdGhpcyB2YWx1ZSwga2V5Ym9hcmQgd2FrZSBpcyBkaXNhYmxlZCBpbiBTMywKKwkgKiBhbmQgd2hlbiB0aGUgbGlkIGFuZ2xlIGdvZXMgbGVzcyB0aGFuIHRoaXMgdmFsdWUsIGtleWJvYXJkIHdha2UgaXMKKwkgKiBlbmFibGVkLiBOb3RlLCB0aGUgbGlkIGFuZ2xlIG1lYXN1cmVtZW50IGlzIGFuIGFwcHJveGltYXRlLAorCSAqIHVuLWNhbGlicmF0ZWQgdmFsdWUsIGhlbmNlIHRoZSB3YWtlIGFuZ2xlIGlzbid0IGV4YWN0LgorCSAqLworCU1PVElPTlNFTlNFX0NNRF9LQl9XQUtFX0FOR0xFID0gNSwKKworCS8qCisJICogUmV0dXJucyBhIHNpbmdsZSBzZW5zb3IgZGF0YS4KKwkgKi8KKwlNT1RJT05TRU5TRV9DTURfREFUQSA9IDYsCisKKwkvKgorCSAqIFJldHVybiBzZW5zb3IgZmlmbyBpbmZvLgorCSAqLworCU1PVElPTlNFTlNFX0NNRF9GSUZPX0lORk8gPSA3LAorCisJLyoKKwkgKiBJbnNlcnQgYSBmbHVzaCBlbGVtZW50IGluIHRoZSBmaWZvIGFuZCByZXR1cm4gc2Vuc29yIGZpZm8gaW5mby4KKwkgKiBUaGUgaG9zdCBjYW4gdXNlIHRoYXQgZWxlbWVudCB0byBzeW5jaHJvbml6ZSBpdHMgb3BlcmF0aW9uLgorCSAqLworCU1PVElPTlNFTlNFX0NNRF9GSUZPX0ZMVVNIID0gOCwKKworCS8qCisJICogUmV0dXJuIGEgcG9ydGlvbiBvZiB0aGUgZmlmby4KKwkgKi8KKwlNT1RJT05TRU5TRV9DTURfRklGT19SRUFEID0gOSwKKworCS8qCisJICogUGVyZm9ybSBsb3cgbGV2ZWwgY2FsaWJyYXRpb24uCisJICogT24gc2Vuc29ycyB0aGF0IHN1cHBvcnQgaXQsIGFzayB0byBkbyBvZmZzZXQgY2FsaWJyYXRpb24uCisJICovCisJTU9USU9OU0VOU0VfQ01EX1BFUkZPUk1fQ0FMSUIgPSAxMCwKKworCS8qCisJICogU2Vuc29yIE9mZnNldCBjb21tYW5kIGlzIGEgc2V0dGVyL2dldHRlciBjb21tYW5kIGZvciB0aGUgb2Zmc2V0CisJICogdXNlZCBmb3IgY2FsaWJyYXRpb24uCisJICogVGhlIG9mZnNldHMgY2FuIGJlIGNhbGN1bGF0ZWQgYnkgdGhlIGhvc3QsIG9yIHZpYQorCSAqIFBFUkZPUk1fQ0FMSUIgY29tbWFuZC4KKwkgKi8KKwlNT1RJT05TRU5TRV9DTURfU0VOU09SX09GRlNFVCA9IDExLAorCisJLyoKKwkgKiBMaXN0IGF2YWlsYWJsZSBhY3Rpdml0aWVzIGZvciBhIE1PVElPTiBzZW5zb3IuCisJICogSW5kaWNhdGVzIGlmIHRoZXkgYXJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuCisJICovCisJTU9USU9OU0VOU0VfQ01EX0xJU1RfQUNUSVZJVElFUyA9IDEyLAorCisJLyoKKwkgKiBBY3Rpdml0eSBtYW5hZ2VtZW50CisJICogRW5hYmxlL0Rpc2FibGUgYWN0aXZpdHkgcmVjb2duaXRpb24uCisJICovCisJTU9USU9OU0VOU0VfQ01EX1NFVF9BQ1RJVklUWSA9IDEzLAorCisJLyoKKwkgKiBMaWQgQW5nbGUKKwkgKi8KKwlNT1RJT05TRU5TRV9DTURfTElEX0FOR0xFID0gMTQsCisKKwkvKgorCSAqIEFsbG93IHRoZSBGSUZPIHRvIHRyaWdnZXIgaW50ZXJydXB0IHZpYSBNS0JQIGV2ZW50cy4KKwkgKiBCeSBkZWZhdWx0IHRoZSBGSUZPIGRvZXMgbm90IHNlbmQgaW50ZXJydXB0IHRvIHByb2Nlc3MgdGhlIEZJRk8KKwkgKiB1bnRpbCB0aGUgQVAgaXMgcmVhZHkgb3IgaXQgaXMgY29taW5nIGZyb20gYSB3YWtldXAgc2Vuc29yLgorCSAqLworCU1PVElPTlNFTlNFX0NNRF9GSUZPX0lOVF9FTkFCTEUgPSAxNSwKKworCS8qCisJICogU3Bvb2YgdGhlIHJlYWRpbmdzIG9mIHRoZSBzZW5zb3JzLiAgVGhlIHNwb29mZWQgcmVhZGluZ3MgY2FuIGJlIHNldAorCSAqIHRvIGFyYml0cmFyeSB2YWx1ZXMsIG9yIHdpbGwgbG9jayB0byB0aGUgbGFzdCByZWFkIGFjdHVhbCB2YWx1ZXMuCisJICovCisJTU9USU9OU0VOU0VfQ01EX1NQT09GID0gMTYsCisKKwkvKiBTZXQgbGlkIGFuZ2xlIGZvciB0YWJsZXQgbW9kZSBkZXRlY3Rpb24uICovCisJTU9USU9OU0VOU0VfQ01EX1RBQkxFVF9NT0RFX0xJRF9BTkdMRSA9IDE3LAorCisJLyoKKwkgKiBTZW5zb3IgU2NhbGUgY29tbWFuZCBpcyBhIHNldHRlci9nZXR0ZXIgY29tbWFuZCBmb3IgdGhlIGNhbGlicmF0aW9uCisJICogc2NhbGUuCisJICovCisJTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9TQ0FMRSA9IDE4LAorCisJLyogTnVtYmVyIG9mIG1vdGlvbnNlbnNlIHN1Yi1jb21tYW5kcy4gKi8KKwlNT1RJT05TRU5TRV9OVU1fQ01EUworfTsKKworLyogTGlzdCBvZiBtb3Rpb24gc2Vuc29yIHR5cGVzLiAqLworZW51bSBtb3Rpb25zZW5zb3JfdHlwZSB7CisJTU9USU9OU0VOU0VfVFlQRV9BQ0NFTCA9IDAsCisJTU9USU9OU0VOU0VfVFlQRV9HWVJPID0gMSwKKwlNT1RJT05TRU5TRV9UWVBFX01BRyA9IDIsCisJTU9USU9OU0VOU0VfVFlQRV9QUk9YID0gMywKKwlNT1RJT05TRU5TRV9UWVBFX0xJR0hUID0gNCwKKwlNT1RJT05TRU5TRV9UWVBFX0FDVElWSVRZID0gNSwKKwlNT1RJT05TRU5TRV9UWVBFX0JBUk8gPSA2LAorCU1PVElPTlNFTlNFX1RZUEVfU1lOQyA9IDcsCisJTU9USU9OU0VOU0VfVFlQRV9NQVgsCit9OworCisvKiBMaXN0IG9mIG1vdGlvbiBzZW5zb3IgbG9jYXRpb25zLiAqLworZW51bSBtb3Rpb25zZW5zb3JfbG9jYXRpb24geworCU1PVElPTlNFTlNFX0xPQ19CQVNFID0gMCwKKwlNT1RJT05TRU5TRV9MT0NfTElEID0gMSwKKwlNT1RJT05TRU5TRV9MT0NfQ0FNRVJBID0gMiwKKwlNT1RJT05TRU5TRV9MT0NfTUFYLAorfTsKKworLyogTGlzdCBvZiBtb3Rpb24gc2Vuc29yIGNoaXBzLiAqLworZW51bSBtb3Rpb25zZW5zb3JfY2hpcCB7CisJTU9USU9OU0VOU0VfQ0hJUF9LWENKOSA9IDAsCisJTU9USU9OU0VOU0VfQ0hJUF9MU002RFMwID0gMSwKKwlNT1RJT05TRU5TRV9DSElQX0JNSTE2MCA9IDIsCisJTU9USU9OU0VOU0VfQ0hJUF9TSTExNDEgPSAzLAorCU1PVElPTlNFTlNFX0NISVBfU0kxMTQyID0gNCwKKwlNT1RJT05TRU5TRV9DSElQX1NJMTE0MyA9IDUsCisJTU9USU9OU0VOU0VfQ0hJUF9LWDAyMiA9IDYsCisJTU9USU9OU0VOU0VfQ0hJUF9MM0dEMjBIID0gNywKKwlNT1RJT05TRU5TRV9DSElQX0JNQTI1NSA9IDgsCisJTU9USU9OU0VOU0VfQ0hJUF9CTVAyODAgPSA5LAorCU1PVElPTlNFTlNFX0NISVBfT1BUMzAwMSA9IDEwLAorCU1PVElPTlNFTlNFX0NISVBfQkgxNzMwID0gMTEsCisJTU9USU9OU0VOU0VfQ0hJUF9HUElPID0gMTIsCisJTU9USU9OU0VOU0VfQ0hJUF9MSVMyREggPSAxMywKKwlNT1RJT05TRU5TRV9DSElQX0xTTTZEU00gPSAxNCwKKwlNT1RJT05TRU5TRV9DSElQX0xJUzJERSA9IDE1LAorCU1PVElPTlNFTlNFX0NISVBfTElTMk1ETCA9IDE2LAorCU1PVElPTlNFTlNFX0NISVBfTFNNNkRTMyA9IDE3LAorCU1PVElPTlNFTlNFX0NISVBfTFNNNkRTTyA9IDE4LAorCU1PVElPTlNFTlNFX0NISVBfTE5HMkRNID0gMTksCisJTU9USU9OU0VOU0VfQ0hJUF9NQVgsCit9OworCisvKiBMaXN0IG9mIG9yaWVudGF0aW9uIHBvc2l0aW9ucyAqLworZW51bSBtb3Rpb25zZW5zb3Jfb3JpZW50YXRpb24geworCU1PVElPTlNFTlNFX09SSUVOVEFUSU9OX0xBTkRTQ0FQRSA9IDAsCisJTU9USU9OU0VOU0VfT1JJRU5UQVRJT05fUE9SVFJBSVQgPSAxLAorCU1PVElPTlNFTlNFX09SSUVOVEFUSU9OX1VQU0lERV9ET1dOX1BPUlRSQUlUID0gMiwKKwlNT1RJT05TRU5TRV9PUklFTlRBVElPTl9VUFNJREVfRE9XTl9MQU5EU0NBUEUgPSAzLAorCU1PVElPTlNFTlNFX09SSUVOVEFUSU9OX1VOS05PV04gPSA0LAorfTsKKworc3RydWN0IGVjX3Jlc3BvbnNlX21vdGlvbl9zZW5zb3JfZGF0YSB7CisJLyogRmxhZ3MgZm9yIGVhY2ggc2Vuc29yLiAqLworCXVpbnQ4X3QgZmxhZ3M7CisJLyogU2Vuc29yIG51bWJlciB0aGUgZGF0YSBjb21lcyBmcm9tLiAqLworCXVpbnQ4X3Qgc2Vuc29yX251bTsKKwkvKiBFYWNoIHNlbnNvciBpcyB1cCB0byAzLWF4aXMuICovCisJdW5pb24geworCQlpbnQxNl90ICAgICAgICAgICAgIGRhdGFbM107CisJCXN0cnVjdCBfX2VjX3RvZG9fcGFja2VkIHsKKwkJCXVpbnQxNl90ICAgIHJlc2VydmVkOworCQkJdWludDMyX3QgICAgdGltZXN0YW1wOworCQl9OworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCXVpbnQ4X3QgICAgIGFjdGl2aXR5OyAvKiBtb3Rpb25zZW5zb3JfYWN0aXZpdHkgKi8KKwkJCXVpbnQ4X3QgICAgIHN0YXRlOworCQkJaW50MTZfdCAgICAgYWRkX2luZm9bMl07CisJCX07CisJfTsKK30gX19lY190b2RvX3BhY2tlZDsKKworLyogTm90ZTogdXNlZCBpbiBlY19yZXNwb25zZV9nZXRfbmV4dF9kYXRhICovCitzdHJ1Y3QgZWNfcmVzcG9uc2VfbW90aW9uX3NlbnNlX2ZpZm9faW5mbyB7CisJLyogU2l6ZSBvZiB0aGUgZmlmbyAqLworCXVpbnQxNl90IHNpemU7CisJLyogQW1vdW50IG9mIHNwYWNlIHVzZWQgaW4gdGhlIGZpZm8gKi8KKwl1aW50MTZfdCBjb3VudDsKKwkvKiBUaW1lc3RhbXAgcmVjb3JkZWQgaW4gdXMuCisJICogYWthIGFjY3VyYXRlIHRpbWVzdGFtcCB3aGVuIGhvc3QgZXZlbnQgd2FzIHRyaWdnZXJlZC4KKwkgKi8KKwl1aW50MzJfdCB0aW1lc3RhbXA7CisJLyogVG90YWwgYW1vdW50IG9mIHZlY3RvciBsb3N0ICovCisJdWludDE2X3QgdG90YWxfbG9zdDsKKwkvKiBMb3N0IGV2ZW50cyBzaW5jZSB0aGUgbGFzdCBmaWZvX2luZm8sIHBlciBzZW5zb3JzICovCisJdWludDE2X3QgbG9zdFswXTsKK30gX19lY190b2RvX3BhY2tlZDsKKworc3RydWN0IGVjX3Jlc3BvbnNlX21vdGlvbl9zZW5zZV9maWZvX2RhdGEgeworCXVpbnQzMl90IG51bWJlcl9kYXRhOworCXN0cnVjdCBlY19yZXNwb25zZV9tb3Rpb25fc2Vuc29yX2RhdGEgZGF0YVswXTsKK30gX19lY190b2RvX3BhY2tlZDsKKworLyogTGlzdCBzdXBwb3J0ZWQgYWN0aXZpdHkgcmVjb2duaXRpb24gKi8KK2VudW0gbW90aW9uc2Vuc29yX2FjdGl2aXR5IHsKKwlNT1RJT05TRU5TRV9BQ1RJVklUWV9SRVNFUlZFRCA9IDAsCisJTU9USU9OU0VOU0VfQUNUSVZJVFlfU0lHX01PVElPTiA9IDEsCisJTU9USU9OU0VOU0VfQUNUSVZJVFlfRE9VQkxFX1RBUCA9IDIsCisJTU9USU9OU0VOU0VfQUNUSVZJVFlfT1JJRU5UQVRJT04gPSAzLAorfTsKKworc3RydWN0IGVjX21vdGlvbl9zZW5zZV9hY3Rpdml0eSB7CisJdWludDhfdCBzZW5zb3JfbnVtOworCXVpbnQ4X3QgYWN0aXZpdHk7IC8qIG9uZSBvZiBlbnVtIG1vdGlvbnNlbnNvcl9hY3Rpdml0eSAqLworCXVpbnQ4X3QgZW5hYmxlOyAgIC8qIDE6IGVuYWJsZSwgMDogZGlzYWJsZSAqLworCXVpbnQ4X3QgcmVzZXJ2ZWQ7CisJdWludDE2X3QgcGFyYW1ldGVyc1szXTsgLyogYWN0aXZpdHkgZGVwZW5kZW50IHBhcmFtZXRlcnMgKi8KK30gX19lY190b2RvX3VucGFja2VkOworCisvKiBNb2R1bGUgZmxhZyBtYXNrcyB1c2VkIGZvciB0aGUgZHVtcCBzdWItY29tbWFuZC4gKi8KKyNkZWZpbmUgTU9USU9OU0VOU0VfTU9EVUxFX0ZMQUdfQUNUSVZFIEJJVCgwKQorCisvKiBTZW5zb3IgZmxhZyBtYXNrcyB1c2VkIGZvciB0aGUgZHVtcCBzdWItY29tbWFuZC4gKi8KKyNkZWZpbmUgTU9USU9OU0VOU0VfU0VOU09SX0ZMQUdfUFJFU0VOVCBCSVQoMCkKKworLyoKKyAqIEZsdXNoIGVudHJ5IGZvciBzeW5jaHJvbml6YXRpb24uCisgKiBkYXRhIGNvbnRhaW5zIHRpbWUgc3RhbXAKKyAqLworI2RlZmluZSBNT1RJT05TRU5TRV9TRU5TT1JfRkxBR19GTFVTSCBCSVQoMCkKKyNkZWZpbmUgTU9USU9OU0VOU0VfU0VOU09SX0ZMQUdfVElNRVNUQU1QIEJJVCgxKQorI2RlZmluZSBNT1RJT05TRU5TRV9TRU5TT1JfRkxBR19XQUtFVVAgQklUKDIpCisjZGVmaW5lIE1PVElPTlNFTlNFX1NFTlNPUl9GTEFHX1RBQkxFVF9NT0RFIEJJVCgzKQorI2RlZmluZSBNT1RJT05TRU5TRV9TRU5TT1JfRkxBR19PRFIgQklUKDQpCisKKy8qCisgKiBTZW5kIHRoaXMgdmFsdWUgZm9yIHRoZSBkYXRhIGVsZW1lbnQgdG8gb25seSBwZXJmb3JtIGEgcmVhZC4gSWYgeW91CisgKiBzZW5kIGFueSBvdGhlciB2YWx1ZSwgdGhlIEVDIHdpbGwgaW50ZXJwcmV0IGl0IGFzIGRhdGEgdG8gc2V0IGFuZCB3aWxsCisgKiByZXR1cm4gdGhlIGFjdHVhbCB2YWx1ZSBzZXQuCisgKi8KKyNkZWZpbmUgRUNfTU9USU9OX1NFTlNFX05PX1ZBTFVFIC0xCisKKyNkZWZpbmUgRUNfTU9USU9OX1NFTlNFX0lOVkFMSURfQ0FMSUJfVEVNUCAweDgwMDAKKworLyogTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9PRkZTRVQgc3ViY29tbWFuZCBmbGFnICovCisvKiBTZXQgQ2FsaWJyYXRpb24gaW5mb3JtYXRpb24gKi8KKyNkZWZpbmUgTU9USU9OX1NFTlNFX1NFVF9PRkZTRVQgQklUKDApCisKKy8qIERlZmF1bHQgU2NhbGUgdmFsdWUsIGZhY3RvciAxLiAqLworI2RlZmluZSBNT1RJT05fU0VOU0VfREVGQVVMVF9TQ0FMRSBCSVQoMTUpCisKKyNkZWZpbmUgTElEX0FOR0xFX1VOUkVMSUFCTEUgNTAwCisKK2VudW0gbW90aW9uc2Vuc2Vfc3Bvb2ZfbW9kZSB7CisJLyogRGlzYWJsZSBzcG9vZiBtb2RlLiAqLworCU1PVElPTlNFTlNFX1NQT09GX01PREVfRElTQUJMRSA9IDAsCisKKwkvKiBFbmFibGUgc3Bvb2YgbW9kZSwgYnV0IHVzZSBwcm92aWRlZCBjb21wb25lbnQgdmFsdWVzLiAqLworCU1PVElPTlNFTlNFX1NQT09GX01PREVfQ1VTVE9NLAorCisJLyogRW5hYmxlIHNwb29mIG1vZGUsIGJ1dCB1c2UgdGhlIGN1cnJlbnQgc2Vuc29yIHZhbHVlcy4gKi8KKwlNT1RJT05TRU5TRV9TUE9PRl9NT0RFX0xPQ0tfQ1VSUkVOVCwKKworCS8qIFF1ZXJ5IHRoZSBjdXJyZW50IHNwb29mIG1vZGUgc3RhdHVzIGZvciB0aGUgc2Vuc29yLiAqLworCU1PVElPTlNFTlNFX1NQT09GX01PREVfUVVFUlksCit9OworCitzdHJ1Y3QgZWNfcGFyYW1zX21vdGlvbl9zZW5zZSB7CisJdWludDhfdCBjbWQ7CisJdW5pb24geworCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfRFVNUC4gKi8KKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQkvKgorCQkJICogTWF4aW1hbCBudW1iZXIgb2Ygc2Vuc29yIHRoZSBob3N0IGlzIGV4cGVjdGluZy4KKwkJCSAqIDAgbWVhbnMgdGhlIGhvc3QgaXMgb25seSBpbnRlcmVzdGVkIGluIHRoZSBudW1iZXIKKwkJCSAqIG9mIHNlbnNvcnMgY29udHJvbGxlZCBieSB0aGUgRUMuCisJCQkgKi8KKwkJCXVpbnQ4X3QgbWF4X3NlbnNvcl9jb3VudDsKKwkJfSBkdW1wOworCisJCS8qCisJCSAqIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9LQl9XQUtFX0FOR0xFLgorCQkgKi8KKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQkvKiBEYXRhIHRvIHNldCBvciBFQ19NT1RJT05fU0VOU0VfTk9fVkFMVUUgdG8gcmVhZC4KKwkJCSAqIGtiX3dha2VfYW5nbGU6IGFuZ2xlIHRvIHdha3VwIEFQLgorCQkJICovCisJCQlpbnQxNl90IGRhdGE7CisJCX0ga2Jfd2FrZV9hbmdsZTsKKworCQkvKgorCQkgKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfSU5GTywgTU9USU9OU0VOU0VfQ01EX0RBVEEKKwkJICogYW5kIE1PVElPTlNFTlNFX0NNRF9QRVJGT1JNX0NBTElCLgorCQkgKi8KKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQl1aW50OF90IHNlbnNvcl9udW07CisJCX0gaW5mbywgaW5mb18zLCBkYXRhLCBmaWZvX2ZsdXNoLCBwZXJmb3JtX2NhbGliLAorCQkJCWxpc3RfYWN0aXZpdGllczsKKworCQkvKgorCQkgKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfRUNfUkFURSwgTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9PRFIKKwkJICogYW5kIE1PVElPTlNFTlNFX0NNRF9TRU5TT1JfUkFOR0UuCisJCSAqLworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCXVpbnQ4X3Qgc2Vuc29yX251bTsKKworCQkJLyogUm91bmRpbmcgZmxhZywgdHJ1ZSBmb3Igcm91bmQtdXAsIGZhbHNlIGZvciBkb3duLiAqLworCQkJdWludDhfdCByb3VuZHVwOworCisJCQl1aW50MTZfdCByZXNlcnZlZDsKKworCQkJLyogRGF0YSB0byBzZXQgb3IgRUNfTU9USU9OX1NFTlNFX05PX1ZBTFVFIHRvIHJlYWQuICovCisJCQlpbnQzMl90IGRhdGE7CisJCX0gZWNfcmF0ZSwgc2Vuc29yX29kciwgc2Vuc29yX3JhbmdlOworCisJCS8qIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9TRU5TT1JfT0ZGU0VUICovCisJCXN0cnVjdCBfX2VjX3RvZG9fcGFja2VkIHsKKwkJCXVpbnQ4X3Qgc2Vuc29yX251bTsKKworCQkJLyoKKwkJCSAqIGJpdCAwOiBJZiBzZXQgKE1PVElPTl9TRU5TRV9TRVRfT0ZGU0VUKSwgc2V0CisJCQkgKiB0aGUgY2FsaWJyYXRpb24gaW5mb3JtYXRpb24gaW4gdGhlIEVDLgorCQkJICogSWYgdW5zZXQsIGp1c3QgcmV0cmlldmUgY2FsaWJyYXRpb24gaW5mb3JtYXRpb24uCisJCQkgKi8KKwkJCXVpbnQxNl90IGZsYWdzOworCisJCQkvKgorCQkJICogVGVtcGVyYXR1cmUgYXQgY2FsaWJyYXRpb24sIGluIHVuaXRzIG9mIDAuMDEgQworCQkJICogMHg4MDAwOiBpbnZhbGlkIC8gdW5rbm93bi4KKwkJCSAqIDB4MDogMEMKKwkJCSAqIDB4N2ZmZjogKzMyNy42N0MKKwkJCSAqLworCQkJaW50MTZfdCB0ZW1wOworCisJCQkvKgorCQkJICogT2Zmc2V0IGZvciBjYWxpYnJhdGlvbi4KKwkJCSAqIFVuaXQ6CisJCQkgKiBBY2NlbGVyb21ldGVyOiAxLzEwMjQgZworCQkJICogR3lybzogICAgICAgICAgMS8xMDI0IGRlZy9zCisJCQkgKiBDb21wYXNzOiAgICAgICAxLzE2IHVUCisJCQkgKi8KKwkJCWludDE2X3Qgb2Zmc2V0WzNdOworCQl9IHNlbnNvcl9vZmZzZXQ7CisKKwkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9TQ0FMRSAqLworCQlzdHJ1Y3QgX19lY190b2RvX3BhY2tlZCB7CisJCQl1aW50OF90IHNlbnNvcl9udW07CisKKwkJCS8qCisJCQkgKiBiaXQgMDogSWYgc2V0IChNT1RJT05fU0VOU0VfU0VUX09GRlNFVCksIHNldAorCQkJICogdGhlIGNhbGlicmF0aW9uIGluZm9ybWF0aW9uIGluIHRoZSBFQy4KKwkJCSAqIElmIHVuc2V0LCBqdXN0IHJldHJpZXZlIGNhbGlicmF0aW9uIGluZm9ybWF0aW9uLgorCQkJICovCisJCQl1aW50MTZfdCBmbGFnczsKKworCQkJLyoKKwkJCSAqIFRlbXBlcmF0dXJlIGF0IGNhbGlicmF0aW9uLCBpbiB1bml0cyBvZiAwLjAxIEMKKwkJCSAqIDB4ODAwMDogaW52YWxpZCAvIHVua25vd24uCisJCQkgKiAweDA6IDBDCisJCQkgKiAweDdmZmY6ICszMjcuNjdDCisJCQkgKi8KKwkJCWludDE2X3QgdGVtcDsKKworCQkJLyoKKwkJCSAqIFNjYWxlIGZvciBjYWxpYnJhdGlvbjoKKwkJCSAqIEJ5IGRlZmF1bHQgc2NhbGUgaXMgMSwgaXQgaXMgZW5jb2RlZCBvbiAxNmJpdHM6CisJCQkgKiAxID0gQklUKDE1KQorCQkJICogfjIgPSAweEZGRkYKKwkJCSAqIH4wID0gMC4KKwkJCSAqLworCQkJdWludDE2X3Qgc2NhbGVbM107CisJCX0gc2Vuc29yX3NjYWxlOworCisKKwkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX0ZJRk9fSU5GTyAqLworCQkvKiAobm8gcGFyYW1zKSAqLworCisJCS8qIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9GSUZPX1JFQUQgKi8KKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQkvKgorCQkJICogTnVtYmVyIG9mIGV4cGVjdGVkIHZlY3RvciB0byByZXR1cm4uCisJCQkgKiBFQyBtYXkgcmV0dXJuIGxlc3Mgb3IgMCBpZiBub25lIGF2YWlsYWJsZS4KKwkJCSAqLworCQkJdWludDMyX3QgbWF4X2RhdGFfdmVjdG9yOworCQl9IGZpZm9fcmVhZDsKKworCQlzdHJ1Y3QgZWNfbW90aW9uX3NlbnNlX2FjdGl2aXR5IHNldF9hY3Rpdml0eTsKKworCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfTElEX0FOR0xFICovCisJCS8qIChubyBwYXJhbXMpICovCisKKwkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX0ZJRk9fSU5UX0VOQUJMRSAqLworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCS8qCisJCQkgKiAxOiBlbmFibGUsIDAgZGlzYWJsZSBmaWZvLAorCQkJICogRUNfTU9USU9OX1NFTlNFX05PX1ZBTFVFIHJldHVybiB2YWx1ZS4KKwkJCSAqLworCQkJaW50OF90IGVuYWJsZTsKKwkJfSBmaWZvX2ludF9lbmFibGU7CisKKwkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX1NQT09GICovCisJCXN0cnVjdCBfX2VjX3RvZG9fcGFja2VkIHsKKwkJCXVpbnQ4X3Qgc2Vuc29yX2lkOworCisJCQkvKiBTZWUgZW51bSBtb3Rpb25zZW5zZV9zcG9vZl9tb2RlLiAqLworCQkJdWludDhfdCBzcG9vZl9lbmFibGU7CisKKwkJCS8qIElnbm9yZWQsIHVzZWQgZm9yIGFsaWdubWVudC4gKi8KKwkJCXVpbnQ4X3QgcmVzZXJ2ZWQ7CisKKwkJCS8qIEluZGl2aWR1YWwgY29tcG9uZW50IHZhbHVlcyB0byBzcG9vZi4gKi8KKwkJCWludDE2X3QgY29tcG9uZW50c1szXTsKKwkJfSBzcG9vZjsKKworCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfVEFCTEVUX01PREVfTElEX0FOR0xFLiAqLworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCS8qCisJCQkgKiBMaWQgYW5nbGUgdGhyZXNob2xkIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiB0YWJsZXQgYW5kCisJCQkgKiBjbGFtc2hlbGwgbW9kZS4KKwkJCSAqLworCQkJaW50MTZfdCBsaWRfYW5nbGU7CisKKwkJCS8qCisJCQkgKiBIeXN0ZXJlc2lzIGRlZ3JlZSB0byBwcmV2ZW50IGZsdWN0dWF0aW9ucyBiZXR3ZWVuCisJCQkgKiBjbGFtc2hlbGwgYW5kIHRhYmxldCBtb2RlIGlmIGxpZCBhbmdsZSBrZWVwcworCQkJICogY2hhbmdpbmcgYXJvdW5kIHRoZSB0aHJlc2hvbGQuIExpZCBtb3Rpb24gZHJpdmVyIHdpbGwKKwkJCSAqIHVzZSBsaWRfYW5nbGUgKyBoeXNfZGVncmVlIHRvIHRyaWdnZXIgdGFibGV0IG1vZGUgYW5kCisJCQkgKiBsaWRfYW5nbGUgLSBoeXNfZGVncmVlIHRvIHRyaWdnZXIgY2xhbXNoZWxsIG1vZGUuCisJCQkgKi8KKwkJCWludDE2X3QgaHlzX2RlZ3JlZTsKKwkJfSB0YWJsZXRfbW9kZV90aHJlc2hvbGQ7CisJfTsKK30gX19lY190b2RvX3BhY2tlZDsKKworc3RydWN0IGVjX3Jlc3BvbnNlX21vdGlvbl9zZW5zZSB7CisJdW5pb24geworCQkvKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfRFVNUCAqLworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCS8qIEZsYWdzIHJlcHJlc2VudGluZyB0aGUgbW90aW9uIHNlbnNvciBtb2R1bGUuICovCisJCQl1aW50OF90IG1vZHVsZV9mbGFnczsKKworCQkJLyogTnVtYmVyIG9mIHNlbnNvcnMgbWFuYWdlZCBkaXJlY3RseSBieSB0aGUgRUMuICovCisJCQl1aW50OF90IHNlbnNvcl9jb3VudDsKKworCQkJLyoKKwkJCSAqIFNlbnNvciBkYXRhIGlzIHRydW5jYXRlZCBpZiByZXNwb25zZV9tYXggaXMgdG9vIHNtYWxsCisJCQkgKiBmb3IgaG9sZGluZyBhbGwgdGhlIGRhdGEuCisJCQkgKi8KKwkJCXN0cnVjdCBlY19yZXNwb25zZV9tb3Rpb25fc2Vuc29yX2RhdGEgc2Vuc29yWzBdOworCQl9IGR1bXA7CisKKwkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX0lORk8uICovCisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJLyogU2hvdWxkIGJlIGVsZW1lbnQgb2YgZW51bSBtb3Rpb25zZW5zb3JfdHlwZS4gKi8KKwkJCXVpbnQ4X3QgdHlwZTsKKworCQkJLyogU2hvdWxkIGJlIGVsZW1lbnQgb2YgZW51bSBtb3Rpb25zZW5zb3JfbG9jYXRpb24uICovCisJCQl1aW50OF90IGxvY2F0aW9uOworCisJCQkvKiBTaG91bGQgYmUgZWxlbWVudCBvZiBlbnVtIG1vdGlvbnNlbnNvcl9jaGlwLiAqLworCQkJdWludDhfdCBjaGlwOworCQl9IGluZm87CisKKwkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX0lORk8gdmVyc2lvbiAzICovCisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJLyogU2hvdWxkIGJlIGVsZW1lbnQgb2YgZW51bSBtb3Rpb25zZW5zb3JfdHlwZS4gKi8KKwkJCXVpbnQ4X3QgdHlwZTsKKworCQkJLyogU2hvdWxkIGJlIGVsZW1lbnQgb2YgZW51bSBtb3Rpb25zZW5zb3JfbG9jYXRpb24uICovCisJCQl1aW50OF90IGxvY2F0aW9uOworCisJCQkvKiBTaG91bGQgYmUgZWxlbWVudCBvZiBlbnVtIG1vdGlvbnNlbnNvcl9jaGlwLiAqLworCQkJdWludDhfdCBjaGlwOworCisJCQkvKiBNaW5pbXVtIHNlbnNvciBzYW1wbGluZyBmcmVxdWVuY3kgKi8KKwkJCXVpbnQzMl90IG1pbl9mcmVxdWVuY3k7CisKKwkJCS8qIE1heGltdW0gc2Vuc29yIHNhbXBsaW5nIGZyZXF1ZW5jeSAqLworCQkJdWludDMyX3QgbWF4X2ZyZXF1ZW5jeTsKKworCQkJLyogTWF4IG51bWJlciBvZiBzZW5zb3IgZXZlbnRzIHRoYXQgY291bGQgYmUgaW4gZmlmbyAqLworCQkJdWludDMyX3QgZmlmb19tYXhfZXZlbnRfY291bnQ7CisJCX0gaW5mb18zOworCisJCS8qIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9EQVRBICovCisJCXN0cnVjdCBlY19yZXNwb25zZV9tb3Rpb25fc2Vuc29yX2RhdGEgZGF0YTsKKworCQkvKgorCQkgKiBVc2VkIGZvciBNT1RJT05TRU5TRV9DTURfRUNfUkFURSwgTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9PRFIsCisJCSAqIE1PVElPTlNFTlNFX0NNRF9TRU5TT1JfUkFOR0UsCisJCSAqIE1PVElPTlNFTlNFX0NNRF9LQl9XQUtFX0FOR0xFLAorCQkgKiBNT1RJT05TRU5TRV9DTURfRklGT19JTlRfRU5BQkxFIGFuZAorCQkgKiBNT1RJT05TRU5TRV9DTURfU1BPT0YuCisJCSAqLworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCS8qIEN1cnJlbnQgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBxdWVyaWVkLiAqLworCQkJaW50MzJfdCByZXQ7CisJCX0gZWNfcmF0ZSwgc2Vuc29yX29kciwgc2Vuc29yX3JhbmdlLCBrYl93YWtlX2FuZ2xlLAorCQkgIGZpZm9faW50X2VuYWJsZSwgc3Bvb2Y7CisKKwkJLyoKKwkJICogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX1NFTlNPUl9PRkZTRVQsCisJCSAqIFBFUkZPUk1fQ0FMSUIuCisJCSAqLworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkICB7CisJCQlpbnQxNl90IHRlbXA7CisJCQlpbnQxNl90IG9mZnNldFszXTsKKwkJfSBzZW5zb3Jfb2Zmc2V0LCBwZXJmb3JtX2NhbGliOworCisJCS8qIFVzZWQgZm9yIE1PVElPTlNFTlNFX0NNRF9TRU5TT1JfU0NBTEUgKi8KKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCAgeworCQkJaW50MTZfdCB0ZW1wOworCQkJdWludDE2X3Qgc2NhbGVbM107CisJCX0gc2Vuc29yX3NjYWxlOworCisJCXN0cnVjdCBlY19yZXNwb25zZV9tb3Rpb25fc2Vuc2VfZmlmb19pbmZvIGZpZm9faW5mbywgZmlmb19mbHVzaDsKKworCQlzdHJ1Y3QgZWNfcmVzcG9uc2VfbW90aW9uX3NlbnNlX2ZpZm9fZGF0YSBmaWZvX3JlYWQ7CisKKwkJc3RydWN0IF9fZWNfdG9kb19wYWNrZWQgeworCQkJdWludDE2X3QgcmVzZXJ2ZWQ7CisJCQl1aW50MzJfdCBlbmFibGVkOworCQkJdWludDMyX3QgZGlzYWJsZWQ7CisJCX0gbGlzdF9hY3Rpdml0aWVzOworCisJCS8qIE5vIHBhcmFtcyBmb3Igc2V0IGFjdGl2aXR5ICovCisKKwkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX0xJRF9BTkdMRSAqLworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCS8qCisJCQkgKiBBbmdsZSBiZXR3ZWVuIDAgYW5kIDM2MCBkZWdyZWUgaWYgYXZhaWxhYmxlLAorCQkJICogTElEX0FOR0xFX1VOUkVMSUFCTEUgb3RoZXJ3aXNlLgorCQkJICovCisJCQl1aW50MTZfdCB2YWx1ZTsKKwkJfSBsaWRfYW5nbGU7CisKKwkJLyogVXNlZCBmb3IgTU9USU9OU0VOU0VfQ01EX1RBQkxFVF9NT0RFX0xJRF9BTkdMRS4gKi8KKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQkvKgorCQkJICogTGlkIGFuZ2xlIHRocmVzaG9sZCBmb3Igc3dpdGNoaW5nIGJldHdlZW4gdGFibGV0IGFuZAorCQkJICogY2xhbXNoZWxsIG1vZGUuCisJCQkgKi8KKwkJCXVpbnQxNl90IGxpZF9hbmdsZTsKKworCQkJLyogSHlzdGVyZXNpcyBkZWdyZWUuICovCisJCQl1aW50MTZfdCBoeXNfZGVncmVlOworCQl9IHRhYmxldF9tb2RlX3RocmVzaG9sZDsKKworCX07Cit9IF9fZWNfdG9kb19wYWNrZWQ7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEZvcmNlIGxpZCBvcGVuIGNvbW1hbmQgKi8KKworLyogTWFrZSBsaWQgZXZlbnQgYWx3YXlzIG9wZW4gKi8KKyNkZWZpbmUgRUNfQ01EX0ZPUkNFX0xJRF9PUEVOIDB4MDAyQworCitzdHJ1Y3QgZWNfcGFyYW1zX2ZvcmNlX2xpZF9vcGVuIHsKKwl1aW50OF90IGVuYWJsZWQ7Cit9IF9fZWNfYWxpZ24xOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBDb25maWd1cmUgdGhlIGJlaGF2aW9yIG9mIHRoZSBwb3dlciBidXR0b24gKi8KKyNkZWZpbmUgRUNfQ01EX0NPTkZJR19QT1dFUl9CVVRUT04gMHgwMDJECisKK2VudW0gZWNfY29uZmlnX3Bvd2VyX2J1dHRvbl9mbGFncyB7CisJLyogRW5hYmxlL0Rpc2FibGUgcG93ZXIgYnV0dG9uIHB1bHNlcyBmb3IgeDg2IGRldmljZXMgKi8KKwlFQ19QT1dFUl9CVVRUT05fRU5BQkxFX1BVTFNFID0gQklUKDApLAorfTsKKworc3RydWN0IGVjX3BhcmFtc19jb25maWdfcG93ZXJfYnV0dG9uIHsKKwkvKiBTZWUgZW51bSBlY19jb25maWdfcG93ZXJfYnV0dG9uX2ZsYWdzICovCisJdWludDhfdCBmbGFnczsKK30gX19lY19hbGlnbjE7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFVTQiBjaGFyZ2luZyBjb250cm9sIGNvbW1hbmRzICovCisKKy8qIFNldCBVU0IgcG9ydCBjaGFyZ2luZyBtb2RlICovCisjZGVmaW5lIEVDX0NNRF9VU0JfQ0hBUkdFX1NFVF9NT0RFIDB4MDAzMAorCitzdHJ1Y3QgZWNfcGFyYW1zX3VzYl9jaGFyZ2Vfc2V0X21vZGUgeworCXVpbnQ4X3QgdXNiX3BvcnRfaWQ7CisJdWludDhfdCBtb2RlOjc7CisJdWludDhfdCBpbmhpYml0X2NoYXJnZToxOworfSBfX2VjX2FsaWduMTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogUGVyc2lzdGVudCBzdG9yYWdlIGZvciBob3N0ICovCisKKy8qIE1heGltdW0gYnl0ZXMgdGhhdCBjYW4gYmUgcmVhZC93cml0dGVuIGluIGEgc2luZ2xlIGNvbW1hbmQgKi8KKyNkZWZpbmUgRUNfUFNUT1JFX1NJWkVfTUFYIDY0CisKKy8qIEdldCBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mbyAqLworI2RlZmluZSBFQ19DTURfUFNUT1JFX0lORk8gMHgwMDQwCisKK3N0cnVjdCBlY19yZXNwb25zZV9wc3RvcmVfaW5mbyB7CisJLyogUGVyc2lzdGVudCBzdG9yYWdlIHNpemUsIGluIGJ5dGVzICovCisJdWludDMyX3QgcHN0b3JlX3NpemU7CisJLyogQWNjZXNzIHNpemU7IHJlYWQvd3JpdGUgb2Zmc2V0IGFuZCBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiB0aGlzICovCisJdWludDMyX3QgYWNjZXNzX3NpemU7Cit9IF9fZWNfYWxpZ240OworCisvKgorICogUmVhZCBwZXJzaXN0ZW50IHN0b3JhZ2UKKyAqCisgKiBSZXNwb25zZSBpcyBwYXJhbXMuc2l6ZSBieXRlcyBvZiBkYXRhLgorICovCisjZGVmaW5lIEVDX0NNRF9QU1RPUkVfUkVBRCAweDAwNDEKKworc3RydWN0IGVjX3BhcmFtc19wc3RvcmVfcmVhZCB7CisJdWludDMyX3Qgb2Zmc2V0OyAgIC8qIEJ5dGUgb2Zmc2V0IHRvIHJlYWQgKi8KKwl1aW50MzJfdCBzaXplOyAgICAgLyogU2l6ZSB0byByZWFkIGluIGJ5dGVzICovCit9IF9fZWNfYWxpZ240OworCisvKiBXcml0ZSBwZXJzaXN0ZW50IHN0b3JhZ2UgKi8KKyNkZWZpbmUgRUNfQ01EX1BTVE9SRV9XUklURSAweDAwNDIKKworc3RydWN0IGVjX3BhcmFtc19wc3RvcmVfd3JpdGUgeworCXVpbnQzMl90IG9mZnNldDsgICAvKiBCeXRlIG9mZnNldCB0byB3cml0ZSAqLworCXVpbnQzMl90IHNpemU7ICAgICAvKiBTaXplIHRvIHdyaXRlIGluIGJ5dGVzICovCisJdWludDhfdCBkYXRhW0VDX1BTVE9SRV9TSVpFX01BWF07Cit9IF9fZWNfYWxpZ240OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBSZWFsLXRpbWUgY2xvY2sgKi8KKworLyogUlRDIHBhcmFtcyBhbmQgcmVzcG9uc2Ugc3RydWN0dXJlcyAqLworc3RydWN0IGVjX3BhcmFtc19ydGMgeworCXVpbnQzMl90IHRpbWU7Cit9IF9fZWNfYWxpZ240OworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfcnRjIHsKKwl1aW50MzJfdCB0aW1lOworfSBfX2VjX2FsaWduNDsKKworLyogVGhlc2UgdXNlIGVjX3Jlc3BvbnNlX3J0YyAqLworI2RlZmluZSBFQ19DTURfUlRDX0dFVF9WQUxVRSAweDAwNDQKKyNkZWZpbmUgRUNfQ01EX1JUQ19HRVRfQUxBUk0gMHgwMDQ1CisKKy8qIFRoZXNlIGFsbCB1c2UgZWNfcGFyYW1zX3J0YyAqLworI2RlZmluZSBFQ19DTURfUlRDX1NFVF9WQUxVRSAweDAwNDYKKyNkZWZpbmUgRUNfQ01EX1JUQ19TRVRfQUxBUk0gMHgwMDQ3CisKKy8qIFBhc3MgYXMgdGltZSBwYXJhbSB0byBTRVRfQUxBUk0gdG8gY2xlYXIgdGhlIGN1cnJlbnQgYWxhcm0gKi8KKyNkZWZpbmUgRUNfUlRDX0FMQVJNX0NMRUFSIDAKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogUG9ydDgwIGxvZyBhY2Nlc3MgKi8KKworLyogTWF4aW11bSBlbnRyaWVzIHRoYXQgY2FuIGJlIHJlYWQvd3JpdHRlbiBpbiBhIHNpbmdsZSBjb21tYW5kICovCisjZGVmaW5lIEVDX1BPUlQ4MF9TSVpFX01BWCAzMgorCisvKiBHZXQgbGFzdCBwb3J0ODAgY29kZSBmcm9tIHByZXZpb3VzIGJvb3QgKi8KKyNkZWZpbmUgRUNfQ01EX1BPUlQ4MF9MQVNUX0JPT1QgMHgwMDQ4CisjZGVmaW5lIEVDX0NNRF9QT1JUODBfUkVBRCAweDAwNDgKKworZW51bSBlY19wb3J0ODBfc3ViY21kIHsKKwlFQ19QT1JUODBfR0VUX0lORk8gPSAwLAorCUVDX1BPUlQ4MF9SRUFEX0JVRkZFUiwKK307CisKK3N0cnVjdCBlY19wYXJhbXNfcG9ydDgwX3JlYWQgeworCXVpbnQxNl90IHN1YmNtZDsKKwl1bmlvbiB7CisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJdWludDMyX3Qgb2Zmc2V0OworCQkJdWludDMyX3QgbnVtX2VudHJpZXM7CisJCX0gcmVhZF9idWZmZXI7CisJfTsKK30gX19lY190b2RvX3BhY2tlZDsKKworc3RydWN0IGVjX3Jlc3BvbnNlX3BvcnQ4MF9yZWFkIHsKKwl1bmlvbiB7CisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJdWludDMyX3Qgd3JpdGVzOworCQkJdWludDMyX3QgaGlzdG9yeV9zaXplOworCQkJdWludDMyX3QgbGFzdF9ib290OworCQl9IGdldF9pbmZvOworCQlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJCXVpbnQxNl90IGNvZGVzW0VDX1BPUlQ4MF9TSVpFX01BWF07CisJCX0gZGF0YTsKKwl9OworfSBfX2VjX3RvZG9fcGFja2VkOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfcG9ydDgwX2xhc3RfYm9vdCB7CisJdWludDE2X3QgY29kZTsKK30gX19lY19hbGlnbjI7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFRlbXBvcmFyeSBzZWN1cmUgc3RvcmFnZSBmb3IgaG9zdCB2ZXJpZmllZCBib290IHVzZSAqLworCisvKiBOdW1iZXIgb2YgYnl0ZXMgaW4gYSB2c3RvcmUgc2xvdCAqLworI2RlZmluZSBFQ19WU1RPUkVfU0xPVF9TSVpFIDY0CisKKy8qIE1heGltdW0gbnVtYmVyIG9mIHZzdG9yZSBzbG90cyAqLworI2RlZmluZSBFQ19WU1RPUkVfU0xPVF9NQVggMzIKKworLyogR2V0IHBlcnNpc3RlbnQgc3RvcmFnZSBpbmZvICovCisjZGVmaW5lIEVDX0NNRF9WU1RPUkVfSU5GTyAweDAwNDkKK3N0cnVjdCBlY19yZXNwb25zZV92c3RvcmVfaW5mbyB7CisJLyogSW5kaWNhdGVzIHdoaWNoIHNsb3RzIGFyZSBsb2NrZWQgKi8KKwl1aW50MzJfdCBzbG90X2xvY2tlZDsKKwkvKiBUb3RhbCBudW1iZXIgb2Ygc2xvdHMgYXZhaWxhYmxlICovCisJdWludDhfdCBzbG90X2NvdW50OworfSBfX2VjX2FsaWduX3NpemUxOworCisvKgorICogUmVhZCB0ZW1wb3Jhcnkgc2VjdXJlIHN0b3JhZ2UKKyAqCisgKiBSZXNwb25zZSBpcyBFQ19WU1RPUkVfU0xPVF9TSVpFIGJ5dGVzIG9mIGRhdGEuCisgKi8KKyNkZWZpbmUgRUNfQ01EX1ZTVE9SRV9SRUFEIDB4MDA0QQorCitzdHJ1Y3QgZWNfcGFyYW1zX3ZzdG9yZV9yZWFkIHsKKwl1aW50OF90IHNsb3Q7IC8qIFNsb3QgdG8gcmVhZCBmcm9tICovCit9IF9fZWNfYWxpZ24xOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfdnN0b3JlX3JlYWQgeworCXVpbnQ4X3QgZGF0YVtFQ19WU1RPUkVfU0xPVF9TSVpFXTsKK30gX19lY19hbGlnbjE7CisKKy8qCisgKiBXcml0ZSB0ZW1wb3Jhcnkgc2VjdXJlIHN0b3JhZ2UgYW5kIGxvY2sgaXQuCisgKi8KKyNkZWZpbmUgRUNfQ01EX1ZTVE9SRV9XUklURSAweDAwNEIKKworc3RydWN0IGVjX3BhcmFtc192c3RvcmVfd3JpdGUgeworCXVpbnQ4X3Qgc2xvdDsgLyogU2xvdCB0byB3cml0ZSB0byAqLworCXVpbnQ4X3QgZGF0YVtFQ19WU1RPUkVfU0xPVF9TSVpFXTsKK30gX19lY19hbGlnbjE7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFRoZXJtYWwgZW5naW5lIGNvbW1hbmRzLiBOb3RlIHRoYXQgdGhlcmUgYXJlIHR3byBpbXBsZW1lbnRhdGlvbnMuIFdlJ2xsCisgKiByZXVzZSB0aGUgY29tbWFuZCBudW1iZXIsIGJ1dCB0aGUgZGF0YSBhbmQgYmVoYXZpb3IgaXMgaW5jb21wYXRpYmxlLgorICogVmVyc2lvbiAwIGlzIHdoYXQgb3JpZ2luYWxseSBzaGlwcGVkIG9uIExpbmsuCisgKiBWZXJzaW9uIDEgc2VwYXJhdGVzIHRoZSBDUFUgdGhlcm1hbCBsaW1pdHMgZnJvbSB0aGUgZmFuIGNvbnRyb2wuCisgKi8KKworI2RlZmluZSBFQ19DTURfVEhFUk1BTF9TRVRfVEhSRVNIT0xEIDB4MDA1MAorI2RlZmluZSBFQ19DTURfVEhFUk1BTF9HRVRfVEhSRVNIT0xEIDB4MDA1MQorCisvKiBUaGUgdmVyc2lvbiAwIHN0cnVjdHMgYXJlIG9wYXF1ZS4gWW91IGhhdmUgdG8ga25vdyB3aGF0IHRoZXkgYXJlIGZvcgorICogdGhlIGdldC9zZXQgY29tbWFuZHMgdG8gbWFrZSBhbnkgc2Vuc2UuCisgKi8KKworLyogVmVyc2lvbiAwIC0gc2V0ICovCitzdHJ1Y3QgZWNfcGFyYW1zX3RoZXJtYWxfc2V0X3RocmVzaG9sZCB7CisJdWludDhfdCBzZW5zb3JfdHlwZTsKKwl1aW50OF90IHRocmVzaG9sZF9pZDsKKwl1aW50MTZfdCB2YWx1ZTsKK30gX19lY19hbGlnbjI7CisKKy8qIFZlcnNpb24gMCAtIGdldCAqLworc3RydWN0IGVjX3BhcmFtc190aGVybWFsX2dldF90aHJlc2hvbGQgeworCXVpbnQ4X3Qgc2Vuc29yX3R5cGU7CisJdWludDhfdCB0aHJlc2hvbGRfaWQ7Cit9IF9fZWNfYWxpZ24xOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfdGhlcm1hbF9nZXRfdGhyZXNob2xkIHsKKwl1aW50MTZfdCB2YWx1ZTsKK30gX19lY19hbGlnbjI7CisKKworLyogVGhlIHZlcnNpb24gMSBzdHJ1Y3RzIGFyZSB2aXNpYmxlLiAqLworZW51bSBlY190ZW1wX3RocmVzaG9sZHMgeworCUVDX1RFTVBfVEhSRVNIX1dBUk4gPSAwLAorCUVDX1RFTVBfVEhSRVNIX0hJR0gsCisJRUNfVEVNUF9USFJFU0hfSEFMVCwKKworCUVDX1RFTVBfVEhSRVNIX0NPVU5UCit9OworCisvKgorICogVGhlcm1hbCBjb25maWd1cmF0aW9uIGZvciBvbmUgdGVtcGVyYXR1cmUgc2Vuc29yLiBUZW1wcyBhcmUgaW4gZGVncmVlcyBLLgorICogWmVybyB2YWx1ZXMgd2lsbCBiZSBzaWxlbnRseSBpZ25vcmVkIGJ5IHRoZSB0aGVybWFsIHRhc2suCisgKgorICogU2V0ICd0ZW1wX2hvc3QnIHZhbHVlIGFsbG93cyB0aGVybWFsIHRhc2sgdG8gdHJpZ2dlciBzb21lIGV2ZW50IHdpdGggMSBkZWdyZWUKKyAqIGh5c3RlcmVzaXMuCisgKiBGb3IgZXhhbXBsZSwKKyAqCXRlbXBfaG9zdFtFQ19URU1QX1RIUkVTSF9ISUdIXSA9IDMwMCBLCisgKgl0ZW1wX2hvc3RfcmVsZWFzZVtFQ19URU1QX1RIUkVTSF9ISUdIXSA9IDAgSworICogRUMgd2lsbCB0aHJvdHRsZSBhcCB3aGVuIHRlbXBlcmF0dXJlID49IDMwMSBLLCBhbmQgcmVsZWFzZSB0aHJvdHRsaW5nIHdoZW4KKyAqIHRlbXBlcmF0dXJlIDw9IDI5OSBLLgorICoKKyAqIFNldCAndGVtcF9ob3N0X3JlbGVhc2UnIHZhbHVlIGFsbG93cyB0aGVybWFsIHRhc2sgaGFzIGEgY3VzdG9tIGh5c3RlcmVzaXMuCisgKiBGb3IgZXhhbXBsZSwKKyAqCXRlbXBfaG9zdFtFQ19URU1QX1RIUkVTSF9ISUdIXSA9IDMwMCBLCisgKgl0ZW1wX2hvc3RfcmVsZWFzZVtFQ19URU1QX1RIUkVTSF9ISUdIXSA9IDI5NSBLCisgKiBFQyB3aWxsIHRocm90dGxlIGFwIHdoZW4gdGVtcGVyYXR1cmUgPj0gMzAxIEssIGFuZCByZWxlYXNlIHRocm90dGxpbmcgd2hlbgorICogdGVtcGVyYXR1cmUgPD0gMjk0IEsuCisgKgorICogTm90ZSB0aGF0IHRoaXMgc3RydWN0dXJlIGlzIGEgc3ViLXN0cnVjdHVyZSBvZgorICogZWNfcGFyYW1zX3RoZXJtYWxfc2V0X3RocmVzaG9sZF92MSwgYnV0IG1haW50YWlucyBpdHMgYWxpZ25tZW50IHRoZXJlLgorICovCitzdHJ1Y3QgZWNfdGhlcm1hbF9jb25maWcgeworCXVpbnQzMl90IHRlbXBfaG9zdFtFQ19URU1QX1RIUkVTSF9DT1VOVF07IC8qIGxldmVscyBvZiBob3RuZXNzICovCisJdWludDMyX3QgdGVtcF9ob3N0X3JlbGVhc2VbRUNfVEVNUF9USFJFU0hfQ09VTlRdOyAvKiByZWxlYXNlIGxldmVscyAqLworCXVpbnQzMl90IHRlbXBfZmFuX29mZjsJCS8qIG5vIGFjdGl2ZSBjb29saW5nIG5lZWRlZCAqLworCXVpbnQzMl90IHRlbXBfZmFuX21heDsJCS8qIG1heCBhY3RpdmUgY29vbGluZyBuZWVkZWQgKi8KK30gX19lY19hbGlnbjQ7CisKKy8qIFZlcnNpb24gMSAtIGdldCBjb25maWcgZm9yIG9uZSBzZW5zb3IuICovCitzdHJ1Y3QgZWNfcGFyYW1zX3RoZXJtYWxfZ2V0X3RocmVzaG9sZF92MSB7CisJdWludDMyX3Qgc2Vuc29yX251bTsKK30gX19lY19hbGlnbjQ7CisvKiBUaGlzIHJldHVybnMgYSBzdHJ1Y3QgZWNfdGhlcm1hbF9jb25maWcgKi8KKworLyoKKyAqIFZlcnNpb24gMSAtIHNldCBjb25maWcgZm9yIG9uZSBzZW5zb3IuCisgKiBVc2UgcmVhZC1tb2RpZnktd3JpdGUgZm9yIGJlc3QgcmVzdWx0cyEKKyAqLworc3RydWN0IGVjX3BhcmFtc190aGVybWFsX3NldF90aHJlc2hvbGRfdjEgeworCXVpbnQzMl90IHNlbnNvcl9udW07CisJc3RydWN0IGVjX3RoZXJtYWxfY29uZmlnIGNmZzsKK30gX19lY19hbGlnbjQ7CisvKiBUaGlzIHJldHVybnMgbm8gZGF0YSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVG9nZ2xlIGF1dG9tYXRpYyBmYW4gY29udHJvbCAqLworI2RlZmluZSBFQ19DTURfVEhFUk1BTF9BVVRPX0ZBTl9DVFJMIDB4MDA1MgorCisvKiBWZXJzaW9uIDEgb2YgaW5wdXQgcGFyYW1zICovCitzdHJ1Y3QgZWNfcGFyYW1zX2F1dG9fZmFuX2N0cmxfdjEgeworCXVpbnQ4X3QgZmFuX2lkeDsKK30gX19lY19hbGlnbjE7CisKKy8qIEdldC9TZXQgVE1QMDA2IGNhbGlicmF0aW9uIGRhdGEgKi8KKyNkZWZpbmUgRUNfQ01EX1RNUDAwNl9HRVRfQ0FMSUJSQVRJT04gMHgwMDUzCisjZGVmaW5lIEVDX0NNRF9UTVAwMDZfU0VUX0NBTElCUkFUSU9OIDB4MDA1NAorCisvKgorICogVGhlIG9yaWdpbmFsIFRNUDAwNiBjYWxpYnJhdGlvbiBvbmx5IG5lZWRlZCBmb3VyIHBhcmFtcywgYnV0IG5vdyB3ZSBuZWVkCisgKiBtb3JlLiBTaW5jZSB0aGUgYWxnb3JpdGhtIGlzIG5vdGhpbmcgYnV0IG1hZ2ljIG51bWJlcnMgYW55d2F5LCB3ZSdsbCBsZWF2ZQorICogdGhlIHBhcmFtcyBvcGFxdWUuIFRoZSB2MSAiZ2V0IiByZXNwb25zZSB3aWxsIGluY2x1ZGUgdGhlIGFsZ29yaXRobSBudW1iZXIKKyAqIGFuZCBob3cgbWFueSBwYXJhbXMgaXQgcmVxdWlyZXMuIFRoYXQgd2F5IHdlIGNhbiBjaGFuZ2UgdGhlIEVDIGNvZGUgd2l0aG91dAorICogbmVlZGluZyB0byB1cGRhdGUgdGhpcyBmaWxlLiBXZSBjYW4gYWxzbyB1c2UgYSBkaWZmZXJlbnQgYWxnb3JpdGhtIG9uIGVhY2gKKyAqIHNlbnNvci4KKyAqLworCisvKiBUaGlzIGlzIHRoZSBzYW1lIHN0cnVjdCBmb3IgYm90aCB2MCBhbmQgdjEuICovCitzdHJ1Y3QgZWNfcGFyYW1zX3RtcDAwNl9nZXRfY2FsaWJyYXRpb24geworCXVpbnQ4X3QgaW5kZXg7Cit9IF9fZWNfYWxpZ24xOworCisvKiBWZXJzaW9uIDAgKi8KK3N0cnVjdCBlY19yZXNwb25zZV90bXAwMDZfZ2V0X2NhbGlicmF0aW9uX3YwIHsKKwlmbG9hdCBzMDsKKwlmbG9hdCBiMDsKKwlmbG9hdCBiMTsKKwlmbG9hdCBiMjsKK30gX19lY19hbGlnbjQ7CisKK3N0cnVjdCBlY19wYXJhbXNfdG1wMDA2X3NldF9jYWxpYnJhdGlvbl92MCB7CisJdWludDhfdCBpbmRleDsKKwl1aW50OF90IHJlc2VydmVkWzNdOworCWZsb2F0IHMwOworCWZsb2F0IGIwOworCWZsb2F0IGIxOworCWZsb2F0IGIyOworfSBfX2VjX2FsaWduNDsKKworLyogVmVyc2lvbiAxICovCitzdHJ1Y3QgZWNfcmVzcG9uc2VfdG1wMDA2X2dldF9jYWxpYnJhdGlvbl92MSB7CisJdWludDhfdCBhbGdvcml0aG07CisJdWludDhfdCBudW1fcGFyYW1zOworCXVpbnQ4X3QgcmVzZXJ2ZWRbMl07CisJZmxvYXQgdmFsWzBdOworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX3BhcmFtc190bXAwMDZfc2V0X2NhbGlicmF0aW9uX3YxIHsKKwl1aW50OF90IGluZGV4OworCXVpbnQ4X3QgYWxnb3JpdGhtOworCXVpbnQ4X3QgbnVtX3BhcmFtczsKKwl1aW50OF90IHJlc2VydmVkOworCWZsb2F0IHZhbFswXTsKK30gX19lY19hbGlnbjQ7CisKKworLyogUmVhZCByYXcgVE1QMDA2IGRhdGEgKi8KKyNkZWZpbmUgRUNfQ01EX1RNUDAwNl9HRVRfUkFXIDB4MDA1NQorCitzdHJ1Y3QgZWNfcGFyYW1zX3RtcDAwNl9nZXRfcmF3IHsKKwl1aW50OF90IGluZGV4OworfSBfX2VjX2FsaWduMTsKKworc3RydWN0IGVjX3Jlc3BvbnNlX3RtcDAwNl9nZXRfcmF3IHsKKwlpbnQzMl90IHQ7ICAvKiBJbiAxLzEwMCBLICovCisJaW50MzJfdCB2OyAgLyogSW4gblYgKi8KK30gX19lY19hbGlnbjQ7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIE1LQlAgLSBNYXRyaXggS2V5Qm9hcmQgUHJvdG9jb2wgKi8KKworLyoKKyAqIFJlYWQga2V5IHN0YXRlCisgKgorICogUmV0dXJucyByYXcgZGF0YSBmb3Iga2V5Ym9hcmQgY29sczsgc2VlIGVjX3Jlc3BvbnNlX21rYnBfaW5mby5jb2xzIGZvcgorICogZXhwZWN0ZWQgcmVzcG9uc2Ugc2l6ZS4KKyAqCisgKiBOT1RFOiBUaGlzIGhhcyBiZWVuIHN1cGVyc2VkZWQgYnkgRUNfQ01EX01LQlBfR0VUX05FWFRfRVZFTlQuICBJZiB5b3Ugd2lzaAorICogdG8gb2J0YWluIHRoZSBpbnN0YW50YW5lb3VzIHN0YXRlLCB1c2UgRUNfQ01EX01LQlBfSU5GTyB3aXRoIHRoZSB0eXBlCisgKiBFQ19NS0JQX0lORk9fQ1VSUkVOVCBhbmQgZXZlbnQgRUNfTUtCUF9FVkVOVF9LRVlfTUFUUklYLgorICovCisjZGVmaW5lIEVDX0NNRF9NS0JQX1NUQVRFIDB4MDA2MAorCisvKgorICogUHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCB2YXJpb3VzIE1LQlAgdGhpbmdzLiAgU2VlIGVudW0gZWNfbWticF9pbmZvX3R5cGUuCisgKi8KKyNkZWZpbmUgRUNfQ01EX01LQlBfSU5GTyAweDAwNjEKKworc3RydWN0IGVjX3Jlc3BvbnNlX21rYnBfaW5mbyB7CisJdWludDMyX3Qgcm93czsKKwl1aW50MzJfdCBjb2xzOworCS8qIEZvcm1lcmx5ICJzd2l0Y2hlcyIsIHdoaWNoIHdhcyAwLiAqLworCXVpbnQ4X3QgcmVzZXJ2ZWQ7Cit9IF9fZWNfYWxpZ25fc2l6ZTE7CisKK3N0cnVjdCBlY19wYXJhbXNfbWticF9pbmZvIHsKKwl1aW50OF90IGluZm9fdHlwZTsKKwl1aW50OF90IGV2ZW50X3R5cGU7Cit9IF9fZWNfYWxpZ24xOworCitlbnVtIGVjX21rYnBfaW5mb190eXBlIHsKKwkvKgorCSAqIEluZm8gYWJvdXQgdGhlIGtleWJvYXJkIG1hdHJpeDogbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuCisJICoKKwkgKiBSZXR1cm5zIHN0cnVjdCBlY19yZXNwb25zZV9ta2JwX2luZm8uCisJICovCisJRUNfTUtCUF9JTkZPX0tCRCA9IDAsCisKKwkvKgorCSAqIEZvciBidXR0b25zIGFuZCBzd2l0Y2hlcywgaW5mbyBhYm91dCB3aGljaCBzcGVjaWZpY2FsbHkgYXJlCisJICogc3VwcG9ydGVkLiAgZXZlbnRfdHlwZSBtdXN0IGJlIHNldCB0byBvbmUgb2YgdGhlIHZhbHVlcyBpbiBlbnVtCisJICogZWNfbWticF9ldmVudC4KKwkgKgorCSAqIEZvciBFQ19NS0JQX0VWRU5UX0JVVFRPTiBhbmQgRUNfTUtCUF9FVkVOVF9TV0lUQ0gsIHJldHVybnMgYSA0IGJ5dGUKKwkgKiBiaXRtYXNrIGluZGljYXRpbmcgd2hpY2ggYnV0dG9ucyBvciBzd2l0Y2hlcyBhcmUgcHJlc2VudC4gIFNlZSB0aGUKKwkgKiBiaXQgaW5pZGljZXMgYmVsb3cuCisJICovCisJRUNfTUtCUF9JTkZPX1NVUFBPUlRFRCA9IDEsCisKKwkvKgorCSAqIEluc3RhbnRhbmVvdXMgc3RhdGUgb2YgYnV0dG9ucyBhbmQgc3dpdGNoZXMuCisJICoKKwkgKiBldmVudF90eXBlIG11c3QgYmUgc2V0IHRvIG9uZSBvZiB0aGUgdmFsdWVzIGluIGVudW0gZWNfbWticF9ldmVudC4KKwkgKgorCSAqIEZvciBFQ19NS0JQX0VWRU5UX0tFWV9NQVRSSVgsIHJldHVybnMgdWludDhfdCBrZXlfbWF0cml4WzEzXQorCSAqIGluZGljYXRpbmcgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGtleWJvYXJkIG1hdHJpeC4KKwkgKgorCSAqIEZvciBFQ19NS0JQX0VWRU5UX0hPU1RfRVZFTlQsIHJldHVybiB1aW50MzJfdCBob3N0X2V2ZW50LCB0aGUgcmF3CisJICogZXZlbnQgc3RhdGUuCisJICoKKwkgKiBGb3IgRUNfTUtCUF9FVkVOVF9CVVRUT04sIHJldHVybnMgdWludDMyX3QgYnV0dG9ucywgaW5kaWNhdGluZyB0aGUKKwkgKiBzdGF0ZSBvZiBzdXBwb3J0ZWQgYnV0dG9ucy4KKwkgKgorCSAqIEZvciBFQ19NS0JQX0VWRU5UX1NXSVRDSCwgcmV0dXJucyB1aW50MzJfdCBzd2l0Y2hlcywgaW5kaWNhdGluZyB0aGUKKwkgKiBzdGF0ZSBvZiBzdXBwb3J0ZWQgc3dpdGNoZXMuCisJICovCisJRUNfTUtCUF9JTkZPX0NVUlJFTlQgPSAyLAorfTsKKworLyogU2ltdWxhdGUga2V5IHByZXNzICovCisjZGVmaW5lIEVDX0NNRF9NS0JQX1NJTVVMQVRFX0tFWSAweDAwNjIKKworc3RydWN0IGVjX3BhcmFtc19ta2JwX3NpbXVsYXRlX2tleSB7CisJdWludDhfdCBjb2w7CisJdWludDhfdCByb3c7CisJdWludDhfdCBwcmVzc2VkOworfSBfX2VjX2FsaWduMTsKKworI2RlZmluZSBFQ19DTURfR0VUX0tFWUJPQVJEX0lEIDB4MDA2MworCitzdHJ1Y3QgZWNfcmVzcG9uc2Vfa2V5Ym9hcmRfaWQgeworCXVpbnQzMl90IGtleWJvYXJkX2lkOworfSBfX2VjX2FsaWduNDsKKworZW51bSBrZXlib2FyZF9pZCB7CisJS0VZQk9BUkRfSURfVU5TVVBQT1JURUQgPSAwLAorCUtFWUJPQVJEX0lEX1VOUkVBREFCTEUgPSAweGZmZmZmZmZmLAorfTsKKworLyogQ29uZmlndXJlIGtleWJvYXJkIHNjYW5uaW5nICovCisjZGVmaW5lIEVDX0NNRF9NS0JQX1NFVF9DT05GSUcgMHgwMDY0CisjZGVmaW5lIEVDX0NNRF9NS0JQX0dFVF9DT05GSUcgMHgwMDY1CisKKy8qIGZsYWdzICovCitlbnVtIG1rYnBfY29uZmlnX2ZsYWdzIHsKKwlFQ19NS0JQX0ZMQUdTX0VOQUJMRSA9IDEsCS8qIEVuYWJsZSBrZXlib2FyZCBzY2FubmluZyAqLworfTsKKworZW51bSBta2JwX2NvbmZpZ192YWxpZCB7CisJRUNfTUtCUF9WQUxJRF9TQ0FOX1BFUklPRAkJPSBCSVQoMCksCisJRUNfTUtCUF9WQUxJRF9QT0xMX1RJTUVPVVQJCT0gQklUKDEpLAorCUVDX01LQlBfVkFMSURfTUlOX1BPU1RfU0NBTl9ERUxBWQk9IEJJVCgzKSwKKwlFQ19NS0JQX1ZBTElEX09VVFBVVF9TRVRUTEUJCT0gQklUKDQpLAorCUVDX01LQlBfVkFMSURfREVCT1VOQ0VfRE9XTgkJPSBCSVQoNSksCisJRUNfTUtCUF9WQUxJRF9ERUJPVU5DRV9VUAkJPSBCSVQoNiksCisJRUNfTUtCUF9WQUxJRF9GSUZPX01BWF9ERVBUSAkJPSBCSVQoNyksCit9OworCisvKgorICogQ29uZmlndXJhdGlvbiBmb3Igb3VyIGtleSBzY2FubmluZyBhbGdvcml0aG0uCisgKgorICogTm90ZSB0aGF0IHRoaXMgaXMgdXNlZCBhcyBhIHN1Yi1zdHJ1Y3R1cmUgb2YKKyAqIGVjX3twYXJhbXMvcmVzcG9uc2V9X21rYnBfZ2V0X2NvbmZpZy4KKyAqLworc3RydWN0IGVjX21rYnBfY29uZmlnIHsKKwl1aW50MzJfdCB2YWxpZF9tYXNrOwkJLyogdmFsaWQgZmllbGRzICovCisJdWludDhfdCBmbGFnczsJCS8qIHNvbWUgZmxhZ3MgKGVudW0gbWticF9jb25maWdfZmxhZ3MpICovCisJdWludDhfdCB2YWxpZF9mbGFnczsJCS8qIHdoaWNoIGZsYWdzIGFyZSB2YWxpZCAqLworCXVpbnQxNl90IHNjYW5fcGVyaW9kX3VzOwkvKiBwZXJpb2QgYmV0d2VlbiBzdGFydCBvZiBzY2FucyAqLworCS8qIHJldmVydCB0byBpbnRlcnJ1cHQgbW9kZSBhZnRlciBubyBhY3Rpdml0eSBmb3IgdGhpcyBsb25nICovCisJdWludDMyX3QgcG9sbF90aW1lb3V0X3VzOworCS8qCisJICogbWluaW11bSBwb3N0LXNjYW4gcmVsYXggdGltZS4gT25jZSB3ZSBmaW5pc2ggYSBzY2FuIHdlIGNoZWNrCisJICogdGhlIHRpbWUgdW50aWwgd2UgYXJlIGR1ZSB0byBzdGFydCB0aGUgbmV4dCBvbmUuIElmIHRoaXMgdGltZSBpcworCSAqIHNob3J0ZXIgdGhpcyBmaWVsZCwgd2UgdXNlIHRoaXMgaW5zdGVhZC4KKwkgKi8KKwl1aW50MTZfdCBtaW5fcG9zdF9zY2FuX2RlbGF5X3VzOworCS8qIGRlbGF5IGJldHdlZW4gc2V0dGluZyB1cCBvdXRwdXQgYW5kIHdhaXRpbmcgZm9yIGl0IHRvIHNldHRsZSAqLworCXVpbnQxNl90IG91dHB1dF9zZXR0bGVfdXM7CisJdWludDE2X3QgZGVib3VuY2VfZG93bl91czsJLyogdGltZSBmb3IgZGVib3VuY2Ugb24ga2V5IGRvd24gKi8KKwl1aW50MTZfdCBkZWJvdW5jZV91cF91czsJLyogdGltZSBmb3IgZGVib3VuY2Ugb24ga2V5IHVwICovCisJLyogbWF4aW11bSBkZXB0aCB0byBhbGxvdyBmb3IgZmlmbyAoMCA9IG5vIGtleXNjYW4gb3V0cHV0KSAqLworCXVpbnQ4X3QgZmlmb19tYXhfZGVwdGg7Cit9IF9fZWNfYWxpZ25fc2l6ZTE7CisKK3N0cnVjdCBlY19wYXJhbXNfbWticF9zZXRfY29uZmlnIHsKKwlzdHJ1Y3QgZWNfbWticF9jb25maWcgY29uZmlnOworfSBfX2VjX2FsaWduX3NpemUxOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfbWticF9nZXRfY29uZmlnIHsKKwlzdHJ1Y3QgZWNfbWticF9jb25maWcgY29uZmlnOworfSBfX2VjX2FsaWduX3NpemUxOworCisvKiBSdW4gdGhlIGtleSBzY2FuIGVtdWxhdGlvbiAqLworI2RlZmluZSBFQ19DTURfS0VZU0NBTl9TRVFfQ1RSTCAweDAwNjYKKworZW51bSBlY19rZXlzY2FuX3NlcV9jbWQgeworCUVDX0tFWVNDQU5fU0VRX1NUQVRVUyA9IDAsCS8qIEdldCBzdGF0dXMgaW5mb3JtYXRpb24gKi8KKwlFQ19LRVlTQ0FOX1NFUV9DTEVBUiA9IDEsCS8qIENsZWFyIHNlcXVlbmNlICovCisJRUNfS0VZU0NBTl9TRVFfQUREID0gMiwJCS8qIEFkZCBpdGVtIHRvIHNlcXVlbmNlICovCisJRUNfS0VZU0NBTl9TRVFfU1RBUlQgPSAzLAkvKiBTdGFydCBydW5uaW5nIHNlcXVlbmNlICovCisJRUNfS0VZU0NBTl9TRVFfQ09MTEVDVCA9IDQsCS8qIENvbGxlY3Qgc2VxdWVuY2Ugc3VtbWFyeSBkYXRhICovCit9OworCitlbnVtIGVjX2NvbGxlY3RfZmxhZ3MgeworCS8qCisJICogSW5kaWNhdGVzIHRoaXMgc2NhbiB3YXMgcHJvY2Vzc2VkIGJ5IHRoZSBFQy4gRHVlIHRvIHRpbWluZywgc29tZQorCSAqIHNjYW5zIG1heSBiZSBza2lwcGVkLgorCSAqLworCUVDX0tFWVNDQU5fU0VRX0ZMQUdfRE9ORQk9IEJJVCgwKSwKK307CisKK3N0cnVjdCBlY19jb2xsZWN0X2l0ZW0geworCXVpbnQ4X3QgZmxhZ3M7CQkvKiBzb21lIGZsYWdzIChlbnVtIGVjX2NvbGxlY3RfZmxhZ3MpICovCit9IF9fZWNfYWxpZ24xOworCitzdHJ1Y3QgZWNfcGFyYW1zX2tleXNjYW5fc2VxX2N0cmwgeworCXVpbnQ4X3QgY21kOwkvKiBDb21tYW5kIHRvIHNlbmQgKGVudW0gZWNfa2V5c2Nhbl9zZXFfY21kKSAqLworCXVuaW9uIHsKKwkJc3RydWN0IF9fZWNfYWxpZ24xIHsKKwkJCXVpbnQ4X3QgYWN0aXZlOwkJLyogc3RpbGwgYWN0aXZlICovCisJCQl1aW50OF90IG51bV9pdGVtczsJLyogbnVtYmVyIG9mIGl0ZW1zICovCisJCQkvKiBDdXJyZW50IGl0ZW0gYmVpbmcgcHJlc2VudGVkICovCisJCQl1aW50OF90IGN1cl9pdGVtOworCQl9IHN0YXR1czsKKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQkvKgorCQkJICogQWJzb2x1dGUgdGltZSBmb3IgdGhpcyBzY2FuLCBtZWFzdXJlZCBmcm9tIHRoZQorCQkJICogc3RhcnQgb2YgdGhlIHNlcXVlbmNlLgorCQkJICovCisJCQl1aW50MzJfdCB0aW1lX3VzOworCQkJdWludDhfdCBzY2FuWzBdOwkvKiBrZXlzY2FuIGRhdGEgKi8KKwkJfSBhZGQ7CisJCXN0cnVjdCBfX2VjX2FsaWduMSB7CisJCQl1aW50OF90IHN0YXJ0X2l0ZW07CS8qIEZpcnN0IGl0ZW0gdG8gcmV0dXJuICovCisJCQl1aW50OF90IG51bV9pdGVtczsJLyogTnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiAqLworCQl9IGNvbGxlY3Q7CisJfTsKK30gX19lY190b2RvX3BhY2tlZDsKKworc3RydWN0IGVjX3Jlc3VsdF9rZXlzY2FuX3NlcV9jdHJsIHsKKwl1bmlvbiB7CisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJdWludDhfdCBudW1faXRlbXM7CS8qIE51bWJlciBvZiBpdGVtcyAqLworCQkJLyogRGF0YSBmb3IgZWFjaCBpdGVtICovCisJCQlzdHJ1Y3QgZWNfY29sbGVjdF9pdGVtIGl0ZW1bMF07CisJCX0gY29sbGVjdDsKKwl9OworfSBfX2VjX3RvZG9fcGFja2VkOworCisvKgorICogR2V0IHRoZSBuZXh0IHBlbmRpbmcgTUtCUCBldmVudC4KKyAqCisgKiBSZXR1cm5zIEVDX1JFU19VTkFWQUlMQUJMRSBpZiB0aGVyZSBpcyBubyBldmVudCBwZW5kaW5nLgorICovCisjZGVmaW5lIEVDX0NNRF9HRVRfTkVYVF9FVkVOVCAweDAwNjcKKworI2RlZmluZSBFQ19NS0JQX0hBU19NT1JFX0VWRU5UU19TSElGVCA3CisKKy8qCisgKiBXZSB1c2UgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIHRoZSBldmVudCB0eXBlIHRvIGluZGljYXRlIHRvIHRoZSBob3N0CisgKiB0aGF0IHRoZSBFQyBoYXMgbW9yZSBNS0JQIGV2ZW50cyBhdmFpbGFibGUgdG8gcHJvdmlkZS4KKyAqLworI2RlZmluZSBFQ19NS0JQX0hBU19NT1JFX0VWRU5UUyBCSVQoRUNfTUtCUF9IQVNfTU9SRV9FVkVOVFNfU0hJRlQpCisKKy8qIFRoZSBtYXNrIHRvIGFwcGx5IHRvIGdldCB0aGUgcmF3IGV2ZW50IHR5cGUgKi8KKyNkZWZpbmUgRUNfTUtCUF9FVkVOVF9UWVBFX01BU0sgKEJJVChFQ19NS0JQX0hBU19NT1JFX0VWRU5UU19TSElGVCkgLSAxKQorCitlbnVtIGVjX21rYnBfZXZlbnQgeworCS8qIEtleWJvYXJkIG1hdHJpeCBjaGFuZ2VkLiBUaGUgZXZlbnQgZGF0YSBpcyB0aGUgbmV3IG1hdHJpeCBzdGF0ZS4gKi8KKwlFQ19NS0JQX0VWRU5UX0tFWV9NQVRSSVggPSAwLAorCisJLyogTmV3IGhvc3QgZXZlbnQuIFRoZSBldmVudCBkYXRhIGlzIDQgYnl0ZXMgb2YgaG9zdCBldmVudCBmbGFncy4gKi8KKwlFQ19NS0JQX0VWRU5UX0hPU1RfRVZFTlQgPSAxLAorCisJLyogTmV3IFNlbnNvciBGSUZPIGRhdGEuIFRoZSBldmVudCBkYXRhIGlzIGZpZm9faW5mbyBzdHJ1Y3R1cmUuICovCisJRUNfTUtCUF9FVkVOVF9TRU5TT1JfRklGTyA9IDIsCisKKwkvKiBUaGUgc3RhdGUgb2YgdGhlIG5vbi1tYXRyaXhlZCBidXR0b25zIGhhdmUgY2hhbmdlZC4gKi8KKwlFQ19NS0JQX0VWRU5UX0JVVFRPTiA9IDMsCisKKwkvKiBUaGUgc3RhdGUgb2YgdGhlIHN3aXRjaGVzIGhhdmUgY2hhbmdlZC4gKi8KKwlFQ19NS0JQX0VWRU5UX1NXSVRDSCA9IDQsCisKKwkvKiBOZXcgRmluZ2VycHJpbnQgc2Vuc29yIGV2ZW50LCB0aGUgZXZlbnQgZGF0YSBpcyBmcF9ldmVudHMgYml0bWFwLiAqLworCUVDX01LQlBfRVZFTlRfRklOR0VSUFJJTlQgPSA1LAorCisJLyoKKwkgKiBTeXNycSBldmVudDogc2VuZCBlbXVsYXRlZCBzeXNycS4gVGhlIGV2ZW50IGRhdGEgaXMgc3lzcnEsCisJICogY29ycmVzcG9uZGluZyB0byB0aGUga2V5IHRvIGJlIHByZXNzZWQuCisJICovCisJRUNfTUtCUF9FVkVOVF9TWVNSUSA9IDYsCisKKwkvKgorCSAqIE5ldyA2NC1iaXQgaG9zdCBldmVudC4KKwkgKiBUaGUgZXZlbnQgZGF0YSBpcyA4IGJ5dGVzIG9mIGhvc3QgZXZlbnQgZmxhZ3MuCisJICovCisJRUNfTUtCUF9FVkVOVF9IT1NUX0VWRU5UNjQgPSA3LAorCisJLyogTm90aWZ5IHRoZSBBUCB0aGF0IHNvbWV0aGluZyBoYXBwZW5lZCBvbiBDRUMgKi8KKwlFQ19NS0JQX0VWRU5UX0NFQ19FVkVOVCA9IDgsCisKKwkvKiBTZW5kIGFuIGluY29taW5nIENFQyBtZXNzYWdlIHRvIHRoZSBBUCAqLworCUVDX01LQlBfRVZFTlRfQ0VDX01FU1NBR0UgPSA5LAorCisJLyogTnVtYmVyIG9mIE1LQlAgZXZlbnRzICovCisJRUNfTUtCUF9FVkVOVF9DT1VOVCwKK307CitCVUlMRF9BU1NFUlQoRUNfTUtCUF9FVkVOVF9DT1VOVCA8PSBFQ19NS0JQX0VWRU5UX1RZUEVfTUFTSyk7CisKK3VuaW9uIF9fZWNfYWxpZ25fb2Zmc2V0MSBlY19yZXNwb25zZV9nZXRfbmV4dF9kYXRhIHsKKwl1aW50OF90IGtleV9tYXRyaXhbMTNdOworCisJLyogVW5hbGlnbmVkICovCisJdWludDMyX3QgaG9zdF9ldmVudDsKKwl1aW50NjRfdCBob3N0X2V2ZW50NjQ7CisKKwlzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIHsKKwkJLyogRm9yIGFsaWduaW5nIHRoZSBmaWZvX2luZm8gKi8KKwkJdWludDhfdCByZXNlcnZlZFszXTsKKwkJc3RydWN0IGVjX3Jlc3BvbnNlX21vdGlvbl9zZW5zZV9maWZvX2luZm8gaW5mbzsKKwl9IHNlbnNvcl9maWZvOworCisJdWludDMyX3QgYnV0dG9uczsKKworCXVpbnQzMl90IHN3aXRjaGVzOworCisJdWludDMyX3QgZnBfZXZlbnRzOworCisJdWludDMyX3Qgc3lzcnE7CisKKwkvKiBDRUMgZXZlbnRzIGZyb20gZW51bSBta2JwX2NlY19ldmVudCAqLworCXVpbnQzMl90IGNlY19ldmVudHM7Cit9OworCit1bmlvbiBfX2VjX2FsaWduX29mZnNldDEgZWNfcmVzcG9uc2VfZ2V0X25leHRfZGF0YV92MSB7CisJdWludDhfdCBrZXlfbWF0cml4WzE2XTsKKworCS8qIFVuYWxpZ25lZCAqLworCXVpbnQzMl90IGhvc3RfZXZlbnQ7CisJdWludDY0X3QgaG9zdF9ldmVudDY0OworCisJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCS8qIEZvciBhbGlnbmluZyB0aGUgZmlmb19pbmZvICovCisJCXVpbnQ4X3QgcmVzZXJ2ZWRbM107CisJCXN0cnVjdCBlY19yZXNwb25zZV9tb3Rpb25fc2Vuc2VfZmlmb19pbmZvIGluZm87CisJfSBzZW5zb3JfZmlmbzsKKworCXVpbnQzMl90IGJ1dHRvbnM7CisKKwl1aW50MzJfdCBzd2l0Y2hlczsKKworCXVpbnQzMl90IGZwX2V2ZW50czsKKworCXVpbnQzMl90IHN5c3JxOworCisJLyogQ0VDIGV2ZW50cyBmcm9tIGVudW0gbWticF9jZWNfZXZlbnQgKi8KKwl1aW50MzJfdCBjZWNfZXZlbnRzOworCisJdWludDhfdCBjZWNfbWVzc2FnZVsxNl07Cit9OworQlVJTERfQVNTRVJUKHNpemVvZih1bmlvbiBlY19yZXNwb25zZV9nZXRfbmV4dF9kYXRhX3YxKSA9PSAxNik7CisKK3N0cnVjdCBlY19yZXNwb25zZV9nZXRfbmV4dF9ldmVudCB7CisJdWludDhfdCBldmVudF90eXBlOworCS8qIEZvbGxvd2VkIGJ5IGV2ZW50IGRhdGEgaWYgYW55ICovCisJdW5pb24gZWNfcmVzcG9uc2VfZ2V0X25leHRfZGF0YSBkYXRhOworfSBfX2VjX2FsaWduMTsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2dldF9uZXh0X2V2ZW50X3YxIHsKKwl1aW50OF90IGV2ZW50X3R5cGU7CisJLyogRm9sbG93ZWQgYnkgZXZlbnQgZGF0YSBpZiBhbnkgKi8KKwl1bmlvbiBlY19yZXNwb25zZV9nZXRfbmV4dF9kYXRhX3YxIGRhdGE7Cit9IF9fZWNfYWxpZ24xOworCisvKiBCaXQgaW5kaWNlcyBmb3IgYnV0dG9ucyBhbmQgc3dpdGNoZXMuKi8KKy8qIEJ1dHRvbnMgKi8KKyNkZWZpbmUgRUNfTUtCUF9QT1dFUl9CVVRUT04JMAorI2RlZmluZSBFQ19NS0JQX1ZPTF9VUAkJMQorI2RlZmluZSBFQ19NS0JQX1ZPTF9ET1dOCTIKKyNkZWZpbmUgRUNfTUtCUF9SRUNPVkVSWQkzCisKKy8qIFN3aXRjaGVzICovCisjZGVmaW5lIEVDX01LQlBfTElEX09QRU4JMAorI2RlZmluZSBFQ19NS0JQX1RBQkxFVF9NT0RFCTEKKyNkZWZpbmUgRUNfTUtCUF9CQVNFX0FUVEFDSEVECTIKKworLyogUnVuIGtleWJvYXJkIGZhY3RvcnkgdGVzdCBzY2FubmluZyAqLworI2RlZmluZSBFQ19DTURfS0VZQk9BUkRfRkFDVE9SWV9URVNUIDB4MDA2OAorCitzdHJ1Y3QgZWNfcmVzcG9uc2Vfa2V5Ym9hcmRfZmFjdG9yeV90ZXN0IHsKKwl1aW50MTZfdCBzaG9ydGVkOwkvKiBLZXlib2FyZCBwaW5zIGFyZSBzaG9ydGVkICovCit9IF9fZWNfYWxpZ24yOworCisvKiBGaW5nZXJwcmludCBldmVudHMgaW4gJ2ZwX2V2ZW50cycgZm9yIEVDX01LQlBfRVZFTlRfRklOR0VSUFJJTlQgKi8KKyNkZWZpbmUgRUNfTUtCUF9GUF9SQVdfRVZFTlQoZnBfZXZlbnRzKSAoKGZwX2V2ZW50cykgJiAweDAwRkZGRkZGKQorI2RlZmluZSBFQ19NS0JQX0ZQX0VSUkNPREUoZnBfZXZlbnRzKSAgICgoZnBfZXZlbnRzKSAmIDB4MDAwMDAwMEYpCisjZGVmaW5lIEVDX01LQlBfRlBfRU5ST0xMX1BST0dSRVNTX09GRlNFVCA0CisjZGVmaW5lIEVDX01LQlBfRlBfRU5ST0xMX1BST0dSRVNTKGZwZSkgKCgoZnBlKSAmIDB4MDAwMDBGRjApIFwKKwkJCQkJID4+IEVDX01LQlBfRlBfRU5ST0xMX1BST0dSRVNTX09GRlNFVCkKKyNkZWZpbmUgRUNfTUtCUF9GUF9NQVRDSF9JRFhfT0ZGU0VUIDEyCisjZGVmaW5lIEVDX01LQlBfRlBfTUFUQ0hfSURYX01BU0sgMHgwMDAwRjAwMAorI2RlZmluZSBFQ19NS0JQX0ZQX01BVENIX0lEWChmcGUpICgoKGZwZSkgJiBFQ19NS0JQX0ZQX01BVENIX0lEWF9NQVNLKSBcCisJCQkJCSA+PiBFQ19NS0JQX0ZQX01BVENIX0lEWF9PRkZTRVQpCisjZGVmaW5lIEVDX01LQlBfRlBfRU5ST0xMICAgICAgICAgICAgICAgQklUKDI3KQorI2RlZmluZSBFQ19NS0JQX0ZQX01BVENIICAgICAgICAgICAgICAgIEJJVCgyOCkKKyNkZWZpbmUgRUNfTUtCUF9GUF9GSU5HRVJfRE9XTiAgICAgICAgICBCSVQoMjkpCisjZGVmaW5lIEVDX01LQlBfRlBfRklOR0VSX1VQICAgICAgICAgICAgQklUKDMwKQorI2RlZmluZSBFQ19NS0JQX0ZQX0lNQUdFX1JFQURZICAgICAgICAgIEJJVCgzMSkKKy8qIGNvZGUgZ2l2ZW4gYnkgRUNfTUtCUF9GUF9FUlJDT0RFKCkgd2hlbiBFQ19NS0JQX0ZQX0VOUk9MTCBpcyBzZXQgKi8KKyNkZWZpbmUgRUNfTUtCUF9GUF9FUlJfRU5ST0xMX09LICAgICAgICAgICAgICAgMAorI2RlZmluZSBFQ19NS0JQX0ZQX0VSUl9FTlJPTExfTE9XX1FVQUxJVFkgICAgICAxCisjZGVmaW5lIEVDX01LQlBfRlBfRVJSX0VOUk9MTF9JTU1PQklMRSAgICAgICAgIDIKKyNkZWZpbmUgRUNfTUtCUF9GUF9FUlJfRU5ST0xMX0xPV19DT1ZFUkFHRSAgICAgMworI2RlZmluZSBFQ19NS0JQX0ZQX0VSUl9FTlJPTExfSU5URVJOQUwgICAgICAgICA1CisvKiBDYW4gYmUgdXNlZCB0byBkZXRlY3QgaWYgaW1hZ2Ugd2FzIHVzYWJsZSBmb3IgZW5yb2xsbWVudCBvciBub3QuICovCisjZGVmaW5lIEVDX01LQlBfRlBfRVJSX0VOUk9MTF9QUk9CTEVNX01BU0sgICAgIDEKKy8qIGNvZGUgZ2l2ZW4gYnkgRUNfTUtCUF9GUF9FUlJDT0RFKCkgd2hlbiBFQ19NS0JQX0ZQX01BVENIIGlzIHNldCAqLworI2RlZmluZSBFQ19NS0JQX0ZQX0VSUl9NQVRDSF9OTyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEVDX01LQlBfRlBfRVJSX01BVENIX05PX0lOVEVSTkFMICAgICAgIDYKKyNkZWZpbmUgRUNfTUtCUF9GUF9FUlJfTUFUQ0hfTk9fVEVNUExBVEVTICAgICAgNworI2RlZmluZSBFQ19NS0JQX0ZQX0VSUl9NQVRDSF9OT19MT1dfUVVBTElUWSAgICAyCisjZGVmaW5lIEVDX01LQlBfRlBfRVJSX01BVENIX05PX0xPV19DT1ZFUkFHRSAgIDQKKyNkZWZpbmUgRUNfTUtCUF9GUF9FUlJfTUFUQ0hfWUVTICAgICAgICAgICAgICAgMQorI2RlZmluZSBFQ19NS0JQX0ZQX0VSUl9NQVRDSF9ZRVNfVVBEQVRFRCAgICAgICAzCisjZGVmaW5lIEVDX01LQlBfRlBfRVJSX01BVENIX1lFU19VUERBVEVfRkFJTEVEIDUKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBUZW1wZXJhdHVyZSBzZW5zb3IgY29tbWFuZHMgKi8KKworLyogUmVhZCB0ZW1wZXJhdHVyZSBzZW5zb3IgaW5mbyAqLworI2RlZmluZSBFQ19DTURfVEVNUF9TRU5TT1JfR0VUX0lORk8gMHgwMDcwCisKK3N0cnVjdCBlY19wYXJhbXNfdGVtcF9zZW5zb3JfZ2V0X2luZm8geworCXVpbnQ4X3QgaWQ7Cit9IF9fZWNfYWxpZ24xOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfdGVtcF9zZW5zb3JfZ2V0X2luZm8geworCWNoYXIgc2Vuc29yX25hbWVbMzJdOworCXVpbnQ4X3Qgc2Vuc29yX3R5cGU7Cit9IF9fZWNfYWxpZ24xOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBOb3RlOiBob3N0IGNvbW1hbmRzIDB4ODAgLSAweDg3IGFyZSByZXNlcnZlZCB0byBhdm9pZCBjb25mbGljdCB3aXRoIEFDUEkKKyAqIGNvbW1hbmRzIGFjY2lkZW50YWxseSBzZW50IHRvIHRoZSB3cm9uZyBpbnRlcmZhY2UuICBTZWUgdGhlIEFDUEkgc2VjdGlvbgorICogYmVsb3cuCisgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogSG9zdCBldmVudCBjb21tYW5kcyAqLworCisKKy8qIE9ic29sZXRlLiBOZXcgaW1wbGVtZW50YXRpb24gc2hvdWxkIHVzZSBFQ19DTURfSE9TVF9FVkVOVCBpbnN0ZWFkICovCisvKgorICogSG9zdCBldmVudCBtYXNrIHBhcmFtcyBhbmQgcmVzcG9uc2Ugc3RydWN0dXJlcywgc2hhcmVkIGJ5IGFsbCBvZiB0aGUgaG9zdAorICogZXZlbnQgY29tbWFuZHMgYmVsb3cuCisgKi8KK3N0cnVjdCBlY19wYXJhbXNfaG9zdF9ldmVudF9tYXNrIHsKKwl1aW50MzJfdCBtYXNrOworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2hvc3RfZXZlbnRfbWFzayB7CisJdWludDMyX3QgbWFzazsKK30gX19lY19hbGlnbjQ7CisKKy8qIFRoZXNlIGFsbCB1c2UgZWNfcmVzcG9uc2VfaG9zdF9ldmVudF9tYXNrICovCisjZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UX0dFVF9CICAgICAgICAgMHgwMDg3CisjZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UX0dFVF9TTUlfTUFTSyAgMHgwMDg4CisjZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UX0dFVF9TQ0lfTUFTSyAgMHgwMDg5CisjZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UX0dFVF9XQUtFX01BU0sgMHgwMDhECisKKy8qIFRoZXNlIGFsbCB1c2UgZWNfcGFyYW1zX2hvc3RfZXZlbnRfbWFzayAqLworI2RlZmluZSBFQ19DTURfSE9TVF9FVkVOVF9TRVRfU01JX01BU0sgIDB4MDA4QQorI2RlZmluZSBFQ19DTURfSE9TVF9FVkVOVF9TRVRfU0NJX01BU0sgIDB4MDA4QgorI2RlZmluZSBFQ19DTURfSE9TVF9FVkVOVF9DTEVBUiAgICAgICAgIDB4MDA4QworI2RlZmluZSBFQ19DTURfSE9TVF9FVkVOVF9TRVRfV0FLRV9NQVNLIDB4MDA4RQorI2RlZmluZSBFQ19DTURfSE9TVF9FVkVOVF9DTEVBUl9CICAgICAgIDB4MDA4RgorCisvKgorICogVW5pZmllZCBob3N0IGV2ZW50IHByb2dyYW1taW5nIGludGVyZmFjZSAtIFNob3VsZCBiZSB1c2VkIGJ5IG5ld2VyIHZlcnNpb25zCisgKiBvZiBCSU9TL09TIHRvIHByb2dyYW0gaG9zdCBldmVudHMgYW5kIG1hc2tzCisgKi8KKworc3RydWN0IGVjX3BhcmFtc19ob3N0X2V2ZW50IHsKKworCS8qIEFjdGlvbiByZXF1ZXN0ZWQgYnkgaG9zdCAtIG9uZSBvZiBlbnVtIGVjX2hvc3RfZXZlbnRfYWN0aW9uLiAqLworCXVpbnQ4X3QgYWN0aW9uOworCisJLyoKKwkgKiBNYXNrIHR5cGUgdGhhdCB0aGUgaG9zdCByZXF1ZXN0ZWQgdGhlIGFjdGlvbiBvbiAtIG9uZSBvZgorCSAqIGVudW0gZWNfaG9zdF9ldmVudF9tYXNrX3R5cGUuCisJICovCisJdWludDhfdCBtYXNrX3R5cGU7CisKKwkvKiBTZXQgdG8gMCwgaWdub3JlIG9uIHJlYWQgKi8KKwl1aW50MTZfdCByZXNlcnZlZDsKKworCS8qIFZhbHVlIHRvIGJlIHVzZWQgaW4gY2FzZSBvZiBzZXQgb3BlcmF0aW9ucy4gKi8KKwl1aW50NjRfdCB2YWx1ZTsKK30gX19lY19hbGlnbjQ7CisKKy8qCisgKiBSZXNwb25zZSBzdHJ1Y3R1cmUgcmV0dXJuZWQgYnkgRUNfQ01EX0hPU1RfRVZFTlQuCisgKiBVcGRhdGUgdGhlIHZhbHVlIG9uIGEgR0VUIHJlcXVlc3QuIFNldCB0byAwIG9uIEdFVC9DTEVBUgorICovCisKK3N0cnVjdCBlY19yZXNwb25zZV9ob3N0X2V2ZW50IHsKKworCS8qIE1hc2sgdmFsdWUgaW4gY2FzZSBvZiBnZXQgb3BlcmF0aW9uICovCisJdWludDY0X3QgdmFsdWU7Cit9IF9fZWNfYWxpZ240OworCitlbnVtIGVjX2hvc3RfZXZlbnRfYWN0aW9uIHsKKwkvKgorCSAqIHBhcmFtcy52YWx1ZSBpcyBpZ25vcmVkLiBWYWx1ZSBvZiBtYXNrX3R5cGUgcG9wdWxhdGVkCisJICogaW4gcmVzcG9uc2UudmFsdWUKKwkgKi8KKwlFQ19IT1NUX0VWRU5UX0dFVCwKKworCS8qIEJpdHMgaW4gcGFyYW1zLnZhbHVlIGFyZSBzZXQgKi8KKwlFQ19IT1NUX0VWRU5UX1NFVCwKKworCS8qIEJpdHMgaW4gcGFyYW1zLnZhbHVlIGFyZSBjbGVhcmVkICovCisJRUNfSE9TVF9FVkVOVF9DTEVBUiwKK307CisKK2VudW0gZWNfaG9zdF9ldmVudF9tYXNrX3R5cGUgeworCisJLyogTWFpbiBob3N0IGV2ZW50IGNvcHkgKi8KKwlFQ19IT1NUX0VWRU5UX01BSU4sCisKKwkvKiBDb3B5IEIgb2YgaG9zdCBldmVudHMgKi8KKwlFQ19IT1NUX0VWRU5UX0IsCisKKwkvKiBTQ0kgTWFzayAqLworCUVDX0hPU1RfRVZFTlRfU0NJX01BU0ssCisKKwkvKiBTTUkgTWFzayAqLworCUVDX0hPU1RfRVZFTlRfU01JX01BU0ssCisKKwkvKiBNYXNrIG9mIGV2ZW50cyB0aGF0IHNob3VsZCBiZSBhbHdheXMgcmVwb3J0ZWQgaW4gaG9zdGV2ZW50cyAqLworCUVDX0hPU1RfRVZFTlRfQUxXQVlTX1JFUE9SVF9NQVNLLAorCisJLyogQWN0aXZlIHdha2UgbWFzayAqLworCUVDX0hPU1RfRVZFTlRfQUNUSVZFX1dBS0VfTUFTSywKKworCS8qIExhenkgd2FrZSBtYXNrIGZvciBTMGl4ICovCisJRUNfSE9TVF9FVkVOVF9MQVpZX1dBS0VfTUFTS19TMElYLAorCisJLyogTGF6eSB3YWtlIG1hc2sgZm9yIFMzICovCisJRUNfSE9TVF9FVkVOVF9MQVpZX1dBS0VfTUFTS19TMywKKworCS8qIExhenkgd2FrZSBtYXNrIGZvciBTNSAqLworCUVDX0hPU1RfRVZFTlRfTEFaWV9XQUtFX01BU0tfUzUsCit9OworCisjZGVmaW5lIEVDX0NNRF9IT1NUX0VWRU5UICAgICAgIDB4MDBBNAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBTd2l0Y2ggY29tbWFuZHMgKi8KKworLyogRW5hYmxlL2Rpc2FibGUgTENEIGJhY2tsaWdodCAqLworI2RlZmluZSBFQ19DTURfU1dJVENIX0VOQUJMRV9CS0xJR0hUIDB4MDA5MAorCitzdHJ1Y3QgZWNfcGFyYW1zX3N3aXRjaF9lbmFibGVfYmFja2xpZ2h0IHsKKwl1aW50OF90IGVuYWJsZWQ7Cit9IF9fZWNfYWxpZ24xOworCisvKiBFbmFibGUvZGlzYWJsZSBXTEFOL0JsdWV0b290aCAqLworI2RlZmluZSBFQ19DTURfU1dJVENIX0VOQUJMRV9XSVJFTEVTUyAweDAwOTEKKyNkZWZpbmUgRUNfVkVSX1NXSVRDSF9FTkFCTEVfV0lSRUxFU1MgMQorCisvKiBWZXJzaW9uIDAgcGFyYW1zOyBubyByZXNwb25zZSAqLworc3RydWN0IGVjX3BhcmFtc19zd2l0Y2hfZW5hYmxlX3dpcmVsZXNzX3YwIHsKKwl1aW50OF90IGVuYWJsZWQ7Cit9IF9fZWNfYWxpZ24xOworCisvKiBWZXJzaW9uIDEgcGFyYW1zICovCitzdHJ1Y3QgZWNfcGFyYW1zX3N3aXRjaF9lbmFibGVfd2lyZWxlc3NfdjEgeworCS8qIEZsYWdzIHRvIGVuYWJsZSBub3cgKi8KKwl1aW50OF90IG5vd19mbGFnczsKKworCS8qIFdoaWNoIGZsYWdzIHRvIGNvcHkgZnJvbSBub3dfZmxhZ3MgKi8KKwl1aW50OF90IG5vd19tYXNrOworCisJLyoKKwkgKiBGbGFncyB0byBsZWF2ZSBlbmFibGVkIGluIFMzLCBpZiB0aGV5J3JlIG9uIGF0IHRoZSBTMC0+UzMKKwkgKiB0cmFuc2l0aW9uLiAgKE90aGVyIGZsYWdzIHdpbGwgYmUgZGlzYWJsZWQgYnkgdGhlIFMwLT5TMworCSAqIHRyYW5zaXRpb24uKQorCSAqLworCXVpbnQ4X3Qgc3VzcGVuZF9mbGFnczsKKworCS8qIFdoaWNoIGZsYWdzIHRvIGNvcHkgZnJvbSBzdXNwZW5kX2ZsYWdzICovCisJdWludDhfdCBzdXNwZW5kX21hc2s7Cit9IF9fZWNfYWxpZ24xOworCisvKiBWZXJzaW9uIDEgcmVzcG9uc2UgKi8KK3N0cnVjdCBlY19yZXNwb25zZV9zd2l0Y2hfZW5hYmxlX3dpcmVsZXNzX3YxIHsKKwkvKiBGbGFncyB0byBlbmFibGUgbm93ICovCisJdWludDhfdCBub3dfZmxhZ3M7CisKKwkvKiBGbGFncyB0byBsZWF2ZSBlbmFibGVkIGluIFMzICovCisJdWludDhfdCBzdXNwZW5kX2ZsYWdzOworfSBfX2VjX2FsaWduMTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogR1BJTyBjb21tYW5kcy4gT25seSBhdmFpbGFibGUgb24gRUMgaWYgd3JpdGUgcHJvdGVjdCBoYXMgYmVlbiBkaXNhYmxlZC4gKi8KKworLyogU2V0IEdQSU8gb3V0cHV0IHZhbHVlICovCisjZGVmaW5lIEVDX0NNRF9HUElPX1NFVCAweDAwOTIKKworc3RydWN0IGVjX3BhcmFtc19ncGlvX3NldCB7CisJY2hhciBuYW1lWzMyXTsKKwl1aW50OF90IHZhbDsKK30gX19lY19hbGlnbjE7CisKKy8qIEdldCBHUElPIHZhbHVlICovCisjZGVmaW5lIEVDX0NNRF9HUElPX0dFVCAweDAwOTMKKworLyogVmVyc2lvbiAwIG9mIGlucHV0IHBhcmFtcyBhbmQgcmVzcG9uc2UgKi8KK3N0cnVjdCBlY19wYXJhbXNfZ3Bpb19nZXQgeworCWNoYXIgbmFtZVszMl07Cit9IF9fZWNfYWxpZ24xOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfZ3Bpb19nZXQgeworCXVpbnQ4X3QgdmFsOworfSBfX2VjX2FsaWduMTsKKworLyogVmVyc2lvbiAxIG9mIGlucHV0IHBhcmFtcyBhbmQgcmVzcG9uc2UgKi8KK3N0cnVjdCBlY19wYXJhbXNfZ3Bpb19nZXRfdjEgeworCXVpbnQ4X3Qgc3ViY21kOworCXVuaW9uIHsKKwkJc3RydWN0IF9fZWNfYWxpZ24xIHsKKwkJCWNoYXIgbmFtZVszMl07CisJCX0gZ2V0X3ZhbHVlX2J5X25hbWU7CisJCXN0cnVjdCBfX2VjX2FsaWduMSB7CisJCQl1aW50OF90IGluZGV4OworCQl9IGdldF9pbmZvOworCX07Cit9IF9fZWNfYWxpZ24xOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfZ3Bpb19nZXRfdjEgeworCXVuaW9uIHsKKwkJc3RydWN0IF9fZWNfYWxpZ24xIHsKKwkJCXVpbnQ4X3QgdmFsOworCQl9IGdldF92YWx1ZV9ieV9uYW1lLCBnZXRfY291bnQ7CisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJdWludDhfdCB2YWw7CisJCQljaGFyIG5hbWVbMzJdOworCQkJdWludDMyX3QgZmxhZ3M7CisJCX0gZ2V0X2luZm87CisJfTsKK30gX19lY190b2RvX3BhY2tlZDsKKworZW51bSBncGlvX2dldF9zdWJjbWQgeworCUVDX0dQSU9fR0VUX0JZX05BTUUgPSAwLAorCUVDX0dQSU9fR0VUX0NPVU5UID0gMSwKKwlFQ19HUElPX0dFVF9JTkZPID0gMiwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEkyQyBjb21tYW5kcy4gT25seSBhdmFpbGFibGUgd2hlbiBmbGFzaCB3cml0ZSBwcm90ZWN0IGlzIHVubG9ja2VkLiAqLworCisvKgorICogQ0FVVElPTjogVGhlc2UgY29tbWFuZHMgYXJlIGRlcHJlY2F0ZWQsIGFuZCBhcmUgbm90IHN1cHBvcnRlZCBhbnltb3JlIGluIEVDCisgKiBidWlsZHMgPj0gODM5OC4wLjAgKHNlZSBjcm9zYnVnLmNvbS9wLzIzNTcwKS4KKyAqCisgKiBVc2UgRUNfQ01EX0kyQ19QQVNTVEhSVSBpbnN0ZWFkLgorICovCisKKy8qIFJlYWQgSTJDIGJ1cyAqLworI2RlZmluZSBFQ19DTURfSTJDX1JFQUQgMHgwMDk0CisKK3N0cnVjdCBlY19wYXJhbXNfaTJjX3JlYWQgeworCXVpbnQxNl90IGFkZHI7IC8qIDgtYml0IGFkZHJlc3MgKDctYml0IHNoaWZ0ZWQgPDwgMSkgKi8KKwl1aW50OF90IHJlYWRfc2l6ZTsgLyogRWl0aGVyIDggb3IgMTYuICovCisJdWludDhfdCBwb3J0OworCXVpbnQ4X3Qgb2Zmc2V0OworfSBfX2VjX2FsaWduX3NpemUxOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfaTJjX3JlYWQgeworCXVpbnQxNl90IGRhdGE7Cit9IF9fZWNfYWxpZ24yOworCisvKiBXcml0ZSBJMkMgYnVzICovCisjZGVmaW5lIEVDX0NNRF9JMkNfV1JJVEUgMHgwMDk1CisKK3N0cnVjdCBlY19wYXJhbXNfaTJjX3dyaXRlIHsKKwl1aW50MTZfdCBkYXRhOworCXVpbnQxNl90IGFkZHI7IC8qIDgtYml0IGFkZHJlc3MgKDctYml0IHNoaWZ0ZWQgPDwgMSkgKi8KKwl1aW50OF90IHdyaXRlX3NpemU7IC8qIEVpdGhlciA4IG9yIDE2LiAqLworCXVpbnQ4X3QgcG9ydDsKKwl1aW50OF90IG9mZnNldDsKK30gX19lY19hbGlnbl9zaXplMTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogQ2hhcmdlIHN0YXRlIGNvbW1hbmRzLiBPbmx5IGF2YWlsYWJsZSB3aGVuIGZsYXNoIHdyaXRlIHByb3RlY3QgdW5sb2NrZWQuICovCisKKy8qIEZvcmNlIGNoYXJnZSBzdGF0ZSBtYWNoaW5lIHRvIHN0b3AgY2hhcmdpbmcgdGhlIGJhdHRlcnkgb3IgZm9yY2UgaXQgdG8KKyAqIGRpc2NoYXJnZSB0aGUgYmF0dGVyeS4KKyAqLworI2RlZmluZSBFQ19DTURfQ0hBUkdFX0NPTlRST0wgMHgwMDk2CisjZGVmaW5lIEVDX1ZFUl9DSEFSR0VfQ09OVFJPTCAxCisKK2VudW0gZWNfY2hhcmdlX2NvbnRyb2xfbW9kZSB7CisJQ0hBUkdFX0NPTlRST0xfTk9STUFMID0gMCwKKwlDSEFSR0VfQ09OVFJPTF9JRExFLAorCUNIQVJHRV9DT05UUk9MX0RJU0NIQVJHRSwKK307CisKK3N0cnVjdCBlY19wYXJhbXNfY2hhcmdlX2NvbnRyb2wgeworCXVpbnQzMl90IG1vZGU7ICAvKiBlbnVtIGNoYXJnZV9jb250cm9sX21vZGUgKi8KK30gX19lY19hbGlnbjQ7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogU25hcHNob3QgY29uc29sZSBvdXRwdXQgYnVmZmVyIGZvciB1c2UgYnkgRUNfQ01EX0NPTlNPTEVfUkVBRC4gKi8KKyNkZWZpbmUgRUNfQ01EX0NPTlNPTEVfU05BUFNIT1QgMHgwMDk3CisKKy8qCisgKiBSZWFkIGRhdGEgZnJvbSB0aGUgc2F2ZWQgc25hcHNob3QuIElmIHRoZSBzdWJjbWQgcGFyYW1ldGVyIGlzCisgKiBDT05TT0xFX1JFQURfTkVYVCwgdGhpcyB3aWxsIHJldHVybiBkYXRhIHN0YXJ0aW5nIGZyb20gdGhlIGJlZ2lubmluZyBvZgorICogdGhlIGxhdGVzdCBzbmFwc2hvdC4gSWYgaXQgaXMgQ09OU09MRV9SRUFEX1JFQ0VOVCwgaXQgd2lsbCBzdGFydCBmcm9tIHRoZQorICogZW5kIG9mIHRoZSBwcmV2aW91cyBzbmFwc2hvdC4KKyAqCisgKiBUaGUgcGFyYW1zIGFyZSBvbmx5IGxvb2tlZCBhdCBpbiB2ZXJzaW9uID49IDEgb2YgdGhpcyBjb21tYW5kLiBQcmlvcgorICogdmVyc2lvbnMgd2lsbCBqdXN0IGRlZmF1bHQgdG8gQ09OU09MRV9SRUFEX05FWFQgYmVoYXZpb3IuCisgKgorICogUmVzcG9uc2UgaXMgbnVsbC10ZXJtaW5hdGVkIHN0cmluZy4gIEVtcHR5IHN0cmluZywgaWYgdGhlcmUgaXMgbm8gbW9yZQorICogcmVtYWluaW5nIG91dHB1dC4KKyAqLworI2RlZmluZSBFQ19DTURfQ09OU09MRV9SRUFEIDB4MDA5OAorCitlbnVtIGVjX2NvbnNvbGVfcmVhZF9zdWJjbWQgeworCUNPTlNPTEVfUkVBRF9ORVhUID0gMCwKKwlDT05TT0xFX1JFQURfUkVDRU5UCit9OworCitzdHJ1Y3QgZWNfcGFyYW1zX2NvbnNvbGVfcmVhZF92MSB7CisJdWludDhfdCBzdWJjbWQ7IC8qIGVudW0gZWNfY29uc29sZV9yZWFkX3N1YmNtZCAqLworfSBfX2VjX2FsaWduMTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogQ3V0IG9mZiBiYXR0ZXJ5IHBvd2VyIGltbWVkaWF0ZWx5IG9yIGFmdGVyIHRoZSBob3N0IGhhcyBzaHV0IGRvd24uCisgKgorICogcmV0dXJuIEVDX1JFU19JTlZBTElEX0NPTU1BTkQgaWYgdW5zdXBwb3J0ZWQgYnkgYSBib2FyZC9iYXR0ZXJ5LgorICoJICBFQ19SRVNfU1VDQ0VTUyBpZiB0aGUgY29tbWFuZCB3YXMgc3VjY2Vzc2Z1bC4KKyAqCSAgRUNfUkVTX0VSUk9SIGlmIHRoZSBjdXQgb2ZmIGNvbW1hbmQgZmFpbGVkLgorICovCisjZGVmaW5lIEVDX0NNRF9CQVRURVJZX0NVVF9PRkYgMHgwMDk5CisKKyNkZWZpbmUgRUNfQkFUVEVSWV9DVVRPRkZfRkxBR19BVF9TSFVURE9XTglCSVQoMCkKKworc3RydWN0IGVjX3BhcmFtc19iYXR0ZXJ5X2N1dG9mZiB7CisJdWludDhfdCBmbGFnczsKK30gX19lY19hbGlnbjE7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFVTQiBwb3J0IG11eCBjb250cm9sLiAqLworCisvKgorICogU3dpdGNoIFVTQiBtdXggb3IgcmV0dXJuIHRvIGF1dG9tYXRpYyBzd2l0Y2hpbmcuCisgKi8KKyNkZWZpbmUgRUNfQ01EX1VTQl9NVVggMHgwMDlBCisKK3N0cnVjdCBlY19wYXJhbXNfdXNiX211eCB7CisJdWludDhfdCBtdXg7Cit9IF9fZWNfYWxpZ24xOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBMRE9zIC8gRkVUcyBjb250cm9sLiAqLworCitlbnVtIGVjX2xkb19zdGF0ZSB7CisJRUNfTERPX1NUQVRFX09GRiA9IDAsCS8qIHRoZSBMRE8gLyBGRVQgaXMgc2h1dCBkb3duICovCisJRUNfTERPX1NUQVRFX09OID0gMSwJLyogdGhlIExETyAvIEZFVCBpcyBPTiAvIHByb3ZpZGluZyBwb3dlciAqLworfTsKKworLyoKKyAqIFN3aXRjaCBvbi9vZmYgYSBMRE8uCisgKi8KKyNkZWZpbmUgRUNfQ01EX0xET19TRVQgMHgwMDlCCisKK3N0cnVjdCBlY19wYXJhbXNfbGRvX3NldCB7CisJdWludDhfdCBpbmRleDsKKwl1aW50OF90IHN0YXRlOworfSBfX2VjX2FsaWduMTsKKworLyoKKyAqIEdldCBMRE8gc3RhdGUuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0xET19HRVQgMHgwMDlDCisKK3N0cnVjdCBlY19wYXJhbXNfbGRvX2dldCB7CisJdWludDhfdCBpbmRleDsKK30gX19lY19hbGlnbjE7CisKK3N0cnVjdCBlY19yZXNwb25zZV9sZG9fZ2V0IHsKKwl1aW50OF90IHN0YXRlOworfSBfX2VjX2FsaWduMTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogUG93ZXIgaW5mby4gKi8KKworLyoKKyAqIEdldCBwb3dlciBpbmZvLgorICovCisjZGVmaW5lIEVDX0NNRF9QT1dFUl9JTkZPIDB4MDA5RAorCitzdHJ1Y3QgZWNfcmVzcG9uc2VfcG93ZXJfaW5mbyB7CisJdWludDMyX3QgdXNiX2Rldl90eXBlOworCXVpbnQxNl90IHZvbHRhZ2VfYWM7CisJdWludDE2X3Qgdm9sdGFnZV9zeXN0ZW07CisJdWludDE2X3QgY3VycmVudF9zeXN0ZW07CisJdWludDE2X3QgdXNiX2N1cnJlbnRfbGltaXQ7Cit9IF9fZWNfYWxpZ240OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBJMkMgcGFzc3RocnUgY29tbWFuZCAqLworCisjZGVmaW5lIEVDX0NNRF9JMkNfUEFTU1RIUlUgMHgwMDlFCisKKy8qIFJlYWQgZGF0YTsgaWYgbm90IHByZXNlbnQsIG1lc3NhZ2UgaXMgYSB3cml0ZSAqLworI2RlZmluZSBFQ19JMkNfRkxBR19SRUFECUJJVCgxNSkKKworLyogTWFzayBmb3IgYWRkcmVzcyAqLworI2RlZmluZSBFQ19JMkNfQUREUl9NQVNLCTB4M2ZmCisKKyNkZWZpbmUgRUNfSTJDX1NUQVRVU19OQUsJQklUKDApIC8qIFRyYW5zZmVyIHdhcyBub3QgYWNrbm93bGVkZ2VkICovCisjZGVmaW5lIEVDX0kyQ19TVEFUVVNfVElNRU9VVAlCSVQoMSkgLyogVGltZW91dCBkdXJpbmcgdHJhbnNmZXIgKi8KKworLyogQW55IGVycm9yICovCisjZGVmaW5lIEVDX0kyQ19TVEFUVVNfRVJST1IJKEVDX0kyQ19TVEFUVVNfTkFLIHwgRUNfSTJDX1NUQVRVU19USU1FT1VUKQorCitzdHJ1Y3QgZWNfcGFyYW1zX2kyY19wYXNzdGhydV9tc2cgeworCXVpbnQxNl90IGFkZHJfZmxhZ3M7CS8qIEkyQyBzbGF2ZSBhZGRyZXNzICg3IG9yIDEwIGJpdHMpIGFuZCBmbGFncyAqLworCXVpbnQxNl90IGxlbjsJCS8qIE51bWJlciBvZiBieXRlcyB0byByZWFkIG9yIHdyaXRlICovCit9IF9fZWNfYWxpZ24yOworCitzdHJ1Y3QgZWNfcGFyYW1zX2kyY19wYXNzdGhydSB7CisJdWludDhfdCBwb3J0OwkJLyogSTJDIHBvcnQgbnVtYmVyICovCisJdWludDhfdCBudW1fbXNnczsJLyogTnVtYmVyIG9mIG1lc3NhZ2VzICovCisJc3RydWN0IGVjX3BhcmFtc19pMmNfcGFzc3RocnVfbXNnIG1zZ1tdOworCS8qIERhdGEgdG8gd3JpdGUgZm9yIGFsbCBtZXNzYWdlcyBpcyBjb25jYXRlbmF0ZWQgaGVyZSAqLworfSBfX2VjX2FsaWduMjsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2kyY19wYXNzdGhydSB7CisJdWludDhfdCBpMmNfc3RhdHVzOwkvKiBTdGF0dXMgZmxhZ3MgKEVDX0kyQ19TVEFUVVNfLi4uKSAqLworCXVpbnQ4X3QgbnVtX21zZ3M7CS8qIE51bWJlciBvZiBtZXNzYWdlcyBwcm9jZXNzZWQgKi8KKwl1aW50OF90IGRhdGFbXTsJCS8qIERhdGEgcmVhZCBieSBtZXNzYWdlcyBjb25jYXRlbmF0ZWQgaGVyZSAqLworfSBfX2VjX2FsaWduMTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogUG93ZXIgYnV0dG9uIGhhbmcgZGV0ZWN0ICovCisKKyNkZWZpbmUgRUNfQ01EX0hBTkdfREVURUNUIDB4MDA5RgorCisvKiBSZWFzb25zIHRvIHN0YXJ0IGhhbmcgZGV0ZWN0aW9uIHRpbWVyICovCisvKiBQb3dlciBidXR0b24gcHJlc3NlZCAqLworI2RlZmluZSBFQ19IQU5HX1NUQVJUX09OX1BPV0VSX1BSRVNTICBCSVQoMCkKKworLyogTGlkIGNsb3NlZCAqLworI2RlZmluZSBFQ19IQU5HX1NUQVJUX09OX0xJRF9DTE9TRSAgICBCSVQoMSkKKworIC8qIExpZCBvcGVuZWQgKi8KKyNkZWZpbmUgRUNfSEFOR19TVEFSVF9PTl9MSURfT1BFTiAgICAgQklUKDIpCisKKy8qIFN0YXJ0IG9mIEFQIFMzLT5TMCB0cmFuc2l0aW9uIChib290aW5nIG9yIHJlc3VtaW5nIGZyb20gc3VzcGVuZCkgKi8KKyNkZWZpbmUgRUNfSEFOR19TVEFSVF9PTl9SRVNVTUUgICAgICAgQklUKDMpCisKKy8qIFJlYXNvbnMgdG8gY2FuY2VsIGhhbmcgZGV0ZWN0aW9uICovCisKKy8qIFBvd2VyIGJ1dHRvbiByZWxlYXNlZCAqLworI2RlZmluZSBFQ19IQU5HX1NUT1BfT05fUE9XRVJfUkVMRUFTRSBCSVQoOCkKKworLyogQW55IGhvc3QgY29tbWFuZCBmcm9tIEFQIHJlY2VpdmVkICovCisjZGVmaW5lIEVDX0hBTkdfU1RPUF9PTl9IT1NUX0NPTU1BTkQgIEJJVCg5KQorCisvKiBTdG9wIG9uIGVuZCBvZiBBUCBTMC0+UzMgdHJhbnNpdGlvbiAoc3VzcGVuZGluZyBvciBzaHV0dGluZyBkb3duKSAqLworI2RlZmluZSBFQ19IQU5HX1NUT1BfT05fU1VTUEVORCAgICAgICBCSVQoMTApCisKKy8qCisgKiBJZiB0aGlzIGZsYWcgaXMgc2V0LCBhbGwgdGhlIG90aGVyIGZpZWxkcyBhcmUgaWdub3JlZCwgYW5kIHRoZSBoYW5nIGRldGVjdAorICogdGltZXIgaXMgc3RhcnRlZC4gIFRoaXMgcHJvdmlkZXMgdGhlIEFQIGEgd2F5IHRvIHN0YXJ0IHRoZSBoYW5nIHRpbWVyCisgKiB3aXRob3V0IHJlY29uZmlndXJpbmcgYW55IG9mIHRoZSBvdGhlciBoYW5nIGRldGVjdCBzZXR0aW5ncy4gIE5vdGUgdGhhdAorICogeW91IG11c3QgcHJldmlvdXNseSBoYXZlIGNvbmZpZ3VyZWQgdGhlIHRpbWVvdXRzLgorICovCisjZGVmaW5lIEVDX0hBTkdfU1RBUlRfTk9XICAgICAgICAgICAgIEJJVCgzMCkKKworLyoKKyAqIElmIHRoaXMgZmxhZyBpcyBzZXQsIGFsbCB0aGUgb3RoZXIgZmllbGRzIGFyZSBpZ25vcmVkIChpbmNsdWRpbmcKKyAqIEVDX0hBTkdfU1RBUlRfTk9XKS4gIFRoaXMgcHJvdmlkZXMgdGhlIEFQIGEgd2F5IHRvIHN0b3AgdGhlIGhhbmcgdGltZXIKKyAqIHdpdGhvdXQgcmVjb25maWd1cmluZyBhbnkgb2YgdGhlIG90aGVyIGhhbmcgZGV0ZWN0IHNldHRpbmdzLgorICovCisjZGVmaW5lIEVDX0hBTkdfU1RPUF9OT1cgICAgICAgICAgICAgIEJJVCgzMSkKKworc3RydWN0IGVjX3BhcmFtc19oYW5nX2RldGVjdCB7CisJLyogRmxhZ3M7IHNlZSBFQ19IQU5HXyogKi8KKwl1aW50MzJfdCBmbGFnczsKKworCS8qIFRpbWVvdXQgaW4gbXNlYyBiZWZvcmUgZ2VuZXJhdGluZyBob3N0IGV2ZW50LCBpZiBlbmFibGVkICovCisJdWludDE2X3QgaG9zdF9ldmVudF90aW1lb3V0X21zZWM7CisKKwkvKiBUaW1lb3V0IGluIG1zZWMgYmVmb3JlIGdlbmVyYXRpbmcgd2FybSByZWJvb3QsIGlmIGVuYWJsZWQgKi8KKwl1aW50MTZfdCB3YXJtX3JlYm9vdF90aW1lb3V0X21zZWM7Cit9IF9fZWNfYWxpZ240OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBDb21tYW5kcyBmb3IgYmF0dGVyeSBjaGFyZ2luZyAqLworCisvKgorICogVGhpcyBpcyB0aGUgc2luZ2xlIGNhdGNoLWFsbCBob3N0IGNvbW1hbmQgdG8gZXhjaGFuZ2UgZGF0YSByZWdhcmRpbmcgdGhlCisgKiBjaGFyZ2Ugc3RhdGUgbWFjaGluZSAodjIgYW5kIHVwKS4KKyAqLworI2RlZmluZSBFQ19DTURfQ0hBUkdFX1NUQVRFIDB4MDBBMAorCisvKiBTdWJjb21tYW5kcyBmb3IgdGhpcyBob3N0IGNvbW1hbmQgKi8KK2VudW0gY2hhcmdlX3N0YXRlX2NvbW1hbmQgeworCUNIQVJHRV9TVEFURV9DTURfR0VUX1NUQVRFLAorCUNIQVJHRV9TVEFURV9DTURfR0VUX1BBUkFNLAorCUNIQVJHRV9TVEFURV9DTURfU0VUX1BBUkFNLAorCUNIQVJHRV9TVEFURV9OVU1fQ01EUworfTsKKworLyoKKyAqIEtub3duIHBhcmFtIG51bWJlcnMgYXJlIGRlZmluZWQgaGVyZS4gUmFuZ2VzIGFyZSByZXNlcnZlZCBmb3IgYm9hcmQtc3BlY2lmaWMKKyAqIHBhcmFtcywgd2hpY2ggYXJlIGhhbmRsZWQgYnkgdGhlIHBhcnRpY3VsYXIgaW1wbGVtZW50YXRpb25zLgorICovCitlbnVtIGNoYXJnZV9zdGF0ZV9wYXJhbXMgeworCUNTX1BBUkFNX0NIR19WT0xUQUdFLAkgICAgICAvKiBjaGFyZ2VyIHZvbHRhZ2UgbGltaXQgKi8KKwlDU19QQVJBTV9DSEdfQ1VSUkVOVCwJICAgICAgLyogY2hhcmdlciBjdXJyZW50IGxpbWl0ICovCisJQ1NfUEFSQU1fQ0hHX0lOUFVUX0NVUlJFTlQsICAgLyogY2hhcmdlciBpbnB1dCBjdXJyZW50IGxpbWl0ICovCisJQ1NfUEFSQU1fQ0hHX1NUQVRVUywJICAgICAgLyogY2hhcmdlci1zcGVjaWZpYyBzdGF0dXMgKi8KKwlDU19QQVJBTV9DSEdfT1BUSU9OLAkgICAgICAvKiBjaGFyZ2VyLXNwZWNpZmljIG9wdGlvbnMgKi8KKwlDU19QQVJBTV9MSU1JVF9QT1dFUiwJICAgICAgLyoKKwkJCQkgICAgICAgKiBDaGVjayBpZiBwb3dlciBpcyBsaW1pdGVkIGR1ZSB0bworCQkJCSAgICAgICAqIGxvdyBiYXR0ZXJ5IGFuZCAvIG9yIGEgd2VhayBleHRlcm5hbAorCQkJCSAgICAgICAqIGNoYXJnZXIuIFJFQUQgT05MWS4KKwkJCQkgICAgICAgKi8KKwkvKiBIb3cgbWFueSBzbyBmYXI/ICovCisJQ1NfTlVNX0JBU0VfUEFSQU1TLAorCisJLyogUmFuZ2UgZm9yIENPTkZJR19DSEFSR0VSX1BST0ZJTEVfT1ZFUlJJREUgcGFyYW1zICovCisJQ1NfUEFSQU1fQ1VTVE9NX1BST0ZJTEVfTUlOID0gMHgxMDAwMCwKKwlDU19QQVJBTV9DVVNUT01fUFJPRklMRV9NQVggPSAweDFmZmZmLAorCisJLyogUmFuZ2UgZm9yIENPTkZJR19DSEFSR0VfU1RBVEVfREVCVUcgcGFyYW1zICovCisJQ1NfUEFSQU1fREVCVUdfTUlOID0gMHgyMDAwMCwKKwlDU19QQVJBTV9ERUJVR19DVExfTU9ERSA9IDB4MjAwMDAsCisJQ1NfUEFSQU1fREVCVUdfTUFOVUFMX01PREUsCisJQ1NfUEFSQU1fREVCVUdfU0VFTVNfREVBRCwKKwlDU19QQVJBTV9ERUJVR19TRUVNU19ESVNDT05ORUNURUQsCisJQ1NfUEFSQU1fREVCVUdfQkFUVF9SRU1PVkVELAorCUNTX1BBUkFNX0RFQlVHX01BTlVBTF9DVVJSRU5ULAorCUNTX1BBUkFNX0RFQlVHX01BTlVBTF9WT0xUQUdFLAorCUNTX1BBUkFNX0RFQlVHX01BWCA9IDB4MmZmZmYsCisKKwkvKiBPdGhlciBjdXN0b20gcGFyYW0gcmFuZ2VzIGdvIGhlcmUuLi4gKi8KK307CisKK3N0cnVjdCBlY19wYXJhbXNfY2hhcmdlX3N0YXRlIHsKKwl1aW50OF90IGNtZDsJCQkJLyogZW51bSBjaGFyZ2Vfc3RhdGVfY29tbWFuZCAqLworCXVuaW9uIHsKKwkJLyogZ2V0X3N0YXRlIGhhcyBubyBhcmdzICovCisKKwkJc3RydWN0IF9fZWNfdG9kb191bnBhY2tlZCB7CisJCQl1aW50MzJfdCBwYXJhbTsJCS8qIGVudW0gY2hhcmdlX3N0YXRlX3BhcmFtICovCisJCX0gZ2V0X3BhcmFtOworCisJCXN0cnVjdCBfX2VjX3RvZG9fdW5wYWNrZWQgeworCQkJdWludDMyX3QgcGFyYW07CQkvKiBwYXJhbSB0byBzZXQgKi8KKwkJCXVpbnQzMl90IHZhbHVlOwkJLyogdmFsdWUgdG8gc2V0ICovCisJCX0gc2V0X3BhcmFtOworCX07Cit9IF9fZWNfdG9kb19wYWNrZWQ7CisKK3N0cnVjdCBlY19yZXNwb25zZV9jaGFyZ2Vfc3RhdGUgeworCXVuaW9uIHsKKwkJc3RydWN0IF9fZWNfYWxpZ240IHsKKwkJCWludCBhYzsKKwkJCWludCBjaGdfdm9sdGFnZTsKKwkJCWludCBjaGdfY3VycmVudDsKKwkJCWludCBjaGdfaW5wdXRfY3VycmVudDsKKwkJCWludCBiYXR0X3N0YXRlX29mX2NoYXJnZTsKKwkJfSBnZXRfc3RhdGU7CisKKwkJc3RydWN0IF9fZWNfYWxpZ240IHsKKwkJCXVpbnQzMl90IHZhbHVlOworCQl9IGdldF9wYXJhbTsKKworCQkvKiBzZXRfcGFyYW0gcmV0dXJucyBubyBhcmdzICovCisJfTsKK30gX19lY19hbGlnbjQ7CisKKworLyoKKyAqIFNldCBtYXhpbXVtIGJhdHRlcnkgY2hhcmdpbmcgY3VycmVudC4KKyAqLworI2RlZmluZSBFQ19DTURfQ0hBUkdFX0NVUlJFTlRfTElNSVQgMHgwMEExCisKK3N0cnVjdCBlY19wYXJhbXNfY3VycmVudF9saW1pdCB7CisJdWludDMyX3QgbGltaXQ7IC8qIGluIG1BICovCit9IF9fZWNfYWxpZ240OworCisvKgorICogU2V0IG1heGltdW0gZXh0ZXJuYWwgdm9sdGFnZSAvIGN1cnJlbnQuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0VYVEVSTkFMX1BPV0VSX0xJTUlUIDB4MDBBMgorCisvKiBDb21tYW5kIHYwIGlzIHVzZWQgb25seSBvbiBTcHJpbmcgYW5kIGlzIG9ic29sZXRlICsgdW5zdXBwb3J0ZWQgKi8KK3N0cnVjdCBlY19wYXJhbXNfZXh0ZXJuYWxfcG93ZXJfbGltaXRfdjEgeworCXVpbnQxNl90IGN1cnJlbnRfbGltOyAvKiBpbiBtQSwgb3IgRUNfUE9XRVJfTElNSVRfTk9ORSB0byBjbGVhciBsaW1pdCAqLworCXVpbnQxNl90IHZvbHRhZ2VfbGltOyAvKiBpbiBtViwgb3IgRUNfUE9XRVJfTElNSVRfTk9ORSB0byBjbGVhciBsaW1pdCAqLworfSBfX2VjX2FsaWduMjsKKworI2RlZmluZSBFQ19QT1dFUl9MSU1JVF9OT05FIDB4ZmZmZgorCisvKgorICogU2V0IG1heGltdW0gdm9sdGFnZSAmIGN1cnJlbnQgb2YgYSBkZWRpY2F0ZWQgY2hhcmdlIHBvcnQKKyAqLworI2RlZmluZSBFQ19DTURfT1ZFUlJJREVfREVESUNBVEVEX0NIQVJHRVJfTElNSVQgMHgwMEEzCisKK3N0cnVjdCBlY19wYXJhbXNfZGVkaWNhdGVkX2NoYXJnZXJfbGltaXQgeworCXVpbnQxNl90IGN1cnJlbnRfbGltOyAvKiBpbiBtQSAqLworCXVpbnQxNl90IHZvbHRhZ2VfbGltOyAvKiBpbiBtViAqLworfSBfX2VjX2FsaWduMjsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogSGliZXJuYXRlL0RlZXAgU2xlZXAgQ29tbWFuZHMgKi8KKworLyogU2V0IHRoZSBkZWxheSBiZWZvcmUgZ29pbmcgaW50byBoaWJlcm5hdGlvbi4gKi8KKyNkZWZpbmUgRUNfQ01EX0hJQkVSTkFUSU9OX0RFTEFZIDB4MDBBOAorCitzdHJ1Y3QgZWNfcGFyYW1zX2hpYmVybmF0aW9uX2RlbGF5IHsKKwkvKgorCSAqIFNlY29uZHMgdG8gd2FpdCBpbiBHMyBiZWZvcmUgaGliZXJuYXRlLiAgUGFzcyBpbiAwIHRvIHJlYWQgdGhlCisJICogY3VycmVudCBzZXR0aW5ncyB3aXRob3V0IGNoYW5naW5nIHRoZW0uCisJICovCisJdWludDMyX3Qgc2Vjb25kczsKK30gX19lY19hbGlnbjQ7CisKK3N0cnVjdCBlY19yZXNwb25zZV9oaWJlcm5hdGlvbl9kZWxheSB7CisJLyoKKwkgKiBUaGUgY3VycmVudCB0aW1lIGluIHNlY29uZHMgaW4gd2hpY2ggdGhlIHN5c3RlbSBoYXMgYmVlbiBpbiB0aGUgRzMKKwkgKiBzdGF0ZS4gIFRoaXMgdmFsdWUgaXMgcmVzZXQgaWYgdGhlIEVDIHRyYW5zaXRpb25zIG91dCBvZiBHMy4KKwkgKi8KKwl1aW50MzJfdCB0aW1lX2czOworCisJLyoKKwkgKiBUaGUgY3VycmVudCB0aW1lIHJlbWFpbmluZyBpbiBzZWNvbmRzIHVudGlsIHRoZSBFQyBzaG91bGQgaGliZXJuYXRlLgorCSAqIFRoaXMgdmFsdWUgaXMgYWxzbyByZXNldCBpZiB0aGUgRUMgdHJhbnNpdGlvbnMgb3V0IG9mIEczLgorCSAqLworCXVpbnQzMl90IHRpbWVfcmVtYWluaW5nOworCisJLyoKKwkgKiBUaGUgY3VycmVudCB0aW1lIGluIHNlY29uZHMgdGhhdCB0aGUgRUMgc2hvdWxkIHdhaXQgaW4gRzMgYmVmb3JlCisJICogaGliZXJuYXRpbmcuCisJICovCisJdWludDMyX3QgaGliZXJuYXRlX2RlbGF5OworfSBfX2VjX2FsaWduNDsKKworLyogSW5mb3JtIHRoZSBFQyB3aGVuIGVudGVyaW5nIGEgc2xlZXAgc3RhdGUgKi8KKyNkZWZpbmUgRUNfQ01EX0hPU1RfU0xFRVBfRVZFTlQgMHgwMEE5CisKK2VudW0gaG9zdF9zbGVlcF9ldmVudCB7CisJSE9TVF9TTEVFUF9FVkVOVF9TM19TVVNQRU5EICAgPSAxLAorCUhPU1RfU0xFRVBfRVZFTlRfUzNfUkVTVU1FICAgID0gMiwKKwlIT1NUX1NMRUVQX0VWRU5UX1MwSVhfU1VTUEVORCA9IDMsCisJSE9TVF9TTEVFUF9FVkVOVF9TMElYX1JFU1VNRSAgPSA0LAorCS8qIFMzIHN1c3BlbmQgd2l0aCBhZGRpdGlvbmFsIGVuYWJsZWQgd2FrZSBzb3VyY2VzICovCisJSE9TVF9TTEVFUF9FVkVOVF9TM19XQUtFQUJMRV9TVVNQRU5EID0gNSwKK307CisKK3N0cnVjdCBlY19wYXJhbXNfaG9zdF9zbGVlcF9ldmVudCB7CisJdWludDhfdCBzbGVlcF9ldmVudDsKK30gX19lY19hbGlnbjE7CisKKy8qCisgKiBVc2UgYSBkZWZhdWx0IHRpbWVvdXQgdmFsdWUgKENPTkZJR19TTEVFUF9USU1FT1VUX01TKSBmb3IgZGV0ZWN0aW5nIHNsZWVwCisgKiB0cmFuc2l0aW9uIGZhaWx1cmVzCisgKi8KKyNkZWZpbmUgRUNfSE9TVF9TTEVFUF9USU1FT1VUX0RFRkFVTFQgMAorCisvKiBEaXNhYmxlIHRpbWVvdXQgZGV0ZWN0aW9uIGZvciB0aGlzIHNsZWVwIHRyYW5zaXRpb24gKi8KKyNkZWZpbmUgRUNfSE9TVF9TTEVFUF9USU1FT1VUX0lORklOSVRFIDB4RkZGRgorCitzdHJ1Y3QgZWNfcGFyYW1zX2hvc3Rfc2xlZXBfZXZlbnRfdjEgeworCS8qIFRoZSB0eXBlIG9mIHNsZWVwIGJlaW5nIGVudGVyZWQgb3IgZXhpdGVkLiAqLworCXVpbnQ4X3Qgc2xlZXBfZXZlbnQ7CisKKwkvKiBQYWRkaW5nICovCisJdWludDhfdCByZXNlcnZlZDsKKwl1bmlvbiB7CisJCS8qIFBhcmFtZXRlcnMgdGhhdCBhcHBseSBmb3Igc3VzcGVuZCBtZXNzYWdlcy4gKi8KKwkJc3RydWN0IHsKKwkJCS8qCisJCQkgKiBUaGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiB3aGVuIHRoaXMgbWVzc2FnZQorCQkJICogaXMgcmVjZWl2ZWQgYW5kIHdoZW4gdGhlIEVDIHdpbGwgZGVjbGFyZSBzbGVlcAorCQkJICogdHJhbnNpdGlvbiBmYWlsdXJlIGlmIHRoZSBzbGVlcCBzaWduYWwgaXMgbm90CisJCQkgKiBhc3NlcnRlZC4KKwkJCSAqLworCQkJdWludDE2X3Qgc2xlZXBfdGltZW91dF9tczsKKwkJfSBzdXNwZW5kX3BhcmFtczsKKworCQkvKiBObyBwYXJhbWV0ZXJzIGZvciBub24tc3VzcGVuZCBtZXNzYWdlcy4gKi8KKwl9OworfSBfX2VjX2FsaWduMjsKKworLyogQSB0aW1lb3V0IG9jY3VycmVkIHdoZW4gdGhpcyBiaXQgaXMgc2V0ICovCisjZGVmaW5lIEVDX0hPU1RfUkVTVU1FX1NMRUVQX1RJTUVPVVQgMHg4MDAwMDAwMAorCisvKgorICogVGhlIG1hc2sgZGVmaW5pbmcgd2hpY2ggYml0cyBjb3JyZXNwb25kIHRvIHRoZSBudW1iZXIgb2Ygc2xlZXAgdHJhbnNpdGlvbnMsCisgKiBhcyB3ZWxsIGFzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzdXNwZW5kIGxpbmUgdHJhbnNpdGlvbnMgdGhhdCB3aWxsIGJlCisgKiByZXBvcnRlZCBiYWNrIHRvIHRoZSBob3N0LgorICovCisjZGVmaW5lIEVDX0hPU1RfUkVTVU1FX1NMRUVQX1RSQU5TSVRJT05TX01BU0sgMHg3RkZGRkZGRgorCitzdHJ1Y3QgZWNfcmVzcG9uc2VfaG9zdF9zbGVlcF9ldmVudF92MSB7CisJdW5pb24geworCQkvKiBSZXNwb25zZSBmaWVsZHMgdGhhdCBhcHBseSBmb3IgcmVzdW1lIG1lc3NhZ2VzLiAqLworCQlzdHJ1Y3QgeworCQkJLyoKKwkJCSAqIFRoZSBudW1iZXIgb2Ygc2xlZXAgcG93ZXIgc2lnbmFsIHRyYW5zaXRpb25zIHRoYXQKKwkJCSAqIG9jY3VycmVkIHNpbmNlIHRoZSBzdXNwZW5kIG1lc3NhZ2UuIFRoZSBoaWdoIGJpdAorCQkJICogaW5kaWNhdGVzIGEgdGltZW91dCBvY2N1cnJlZC4KKwkJCSAqLworCQkJdWludDMyX3Qgc2xlZXBfdHJhbnNpdGlvbnM7CisJCX0gcmVzdW1lX3Jlc3BvbnNlOworCisJCS8qIE5vIHJlc3BvbnNlIGZpZWxkcyBmb3Igbm9uLXJlc3VtZSBtZXNzYWdlcy4gKi8KKwl9OworfSBfX2VjX2FsaWduNDsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRGV2aWNlIGV2ZW50cyAqLworI2RlZmluZSBFQ19DTURfREVWSUNFX0VWRU5UIDB4MDBBQQorCitlbnVtIGVjX2RldmljZV9ldmVudCB7CisJRUNfREVWSUNFX0VWRU5UX1RSQUNLUEFELAorCUVDX0RFVklDRV9FVkVOVF9EU1AsCisJRUNfREVWSUNFX0VWRU5UX1dJRkksCit9OworCitlbnVtIGVjX2RldmljZV9ldmVudF9wYXJhbSB7CisJLyogR2V0IGFuZCBjbGVhciBwZW5kaW5nIGRldmljZSBldmVudHMgKi8KKwlFQ19ERVZJQ0VfRVZFTlRfUEFSQU1fR0VUX0NVUlJFTlRfRVZFTlRTLAorCS8qIEdldCBkZXZpY2UgZXZlbnQgbWFzayAqLworCUVDX0RFVklDRV9FVkVOVF9QQVJBTV9HRVRfRU5BQkxFRF9FVkVOVFMsCisJLyogU2V0IGRldmljZSBldmVudCBtYXNrICovCisJRUNfREVWSUNFX0VWRU5UX1BBUkFNX1NFVF9FTkFCTEVEX0VWRU5UUywKK307CisKKyNkZWZpbmUgRUNfREVWSUNFX0VWRU5UX01BU0soZXZlbnRfY29kZSkgQklUKGV2ZW50X2NvZGUgJSAzMikKKworc3RydWN0IGVjX3BhcmFtc19kZXZpY2VfZXZlbnQgeworCXVpbnQzMl90IGV2ZW50X21hc2s7CisJdWludDhfdCBwYXJhbTsKK30gX19lY19hbGlnbl9zaXplMTsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2RldmljZV9ldmVudCB7CisJdWludDMyX3QgZXZlbnRfbWFzazsKK30gX19lY19hbGlnbjQ7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFNtYXJ0IGJhdHRlcnkgcGFzcy10aHJvdWdoICovCisKKy8qIEdldCAvIFNldCAxNi1iaXQgc21hcnQgYmF0dGVyeSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgRUNfQ01EX1NCX1JFQURfV09SRCAgIDB4MDBCMAorI2RlZmluZSBFQ19DTURfU0JfV1JJVEVfV09SRCAgMHgwMEIxCisKKy8qIEdldCAvIFNldCBzdHJpbmcgc21hcnQgYmF0dGVyeSBwYXJhbWV0ZXJzCisgKiBmb3JtYXR0ZWQgYXMgU01CVVMgImJsb2NrIi4KKyAqLworI2RlZmluZSBFQ19DTURfU0JfUkVBRF9CTE9DSyAgMHgwMEIyCisjZGVmaW5lIEVDX0NNRF9TQl9XUklURV9CTE9DSyAweDAwQjMKKworc3RydWN0IGVjX3BhcmFtc19zYl9yZCB7CisJdWludDhfdCByZWc7Cit9IF9fZWNfYWxpZ24xOworCitzdHJ1Y3QgZWNfcmVzcG9uc2Vfc2JfcmRfd29yZCB7CisJdWludDE2X3QgdmFsdWU7Cit9IF9fZWNfYWxpZ24yOworCitzdHJ1Y3QgZWNfcGFyYW1zX3NiX3dyX3dvcmQgeworCXVpbnQ4X3QgcmVnOworCXVpbnQxNl90IHZhbHVlOworfSBfX2VjX2FsaWduMTsKKworc3RydWN0IGVjX3Jlc3BvbnNlX3NiX3JkX2Jsb2NrIHsKKwl1aW50OF90IGRhdGFbMzJdOworfSBfX2VjX2FsaWduMTsKKworc3RydWN0IGVjX3BhcmFtc19zYl93cl9ibG9jayB7CisJdWludDhfdCByZWc7CisJdWludDE2X3QgZGF0YVszMl07Cit9IF9fZWNfYWxpZ24xOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBCYXR0ZXJ5IHZlbmRvciBwYXJhbWV0ZXJzCisgKgorICogR2V0IG9yIHNldCB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVycyBpbiB0aGUgYmF0dGVyeS4gSW1wbGVtZW50YXRpb25zIG1heQorICogZGlmZmVyIGJldHdlZW4gYm9hcmRzIG9yIGJhdHRlcmllcy4gT24gYSBzZXQgb3BlcmF0aW9uLCB0aGUgcmVzcG9uc2UKKyAqIGNvbnRhaW5zIHRoZSBhY3R1YWwgdmFsdWUgc2V0LCB3aGljaCBtYXkgYmUgcm91bmRlZCBvciBjbGlwcGVkIGZyb20gdGhlCisgKiByZXF1ZXN0ZWQgdmFsdWUuCisgKi8KKworI2RlZmluZSBFQ19DTURfQkFUVEVSWV9WRU5ET1JfUEFSQU0gMHgwMEI0CisKK2VudW0gZWNfYmF0dGVyeV92ZW5kb3JfcGFyYW1fbW9kZSB7CisJQkFUVEVSWV9WRU5ET1JfUEFSQU1fTU9ERV9HRVQgPSAwLAorCUJBVFRFUllfVkVORE9SX1BBUkFNX01PREVfU0VULAorfTsKKworc3RydWN0IGVjX3BhcmFtc19iYXR0ZXJ5X3ZlbmRvcl9wYXJhbSB7CisJdWludDMyX3QgcGFyYW07CisJdWludDMyX3QgdmFsdWU7CisJdWludDhfdCBtb2RlOworfSBfX2VjX2FsaWduX3NpemUxOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfYmF0dGVyeV92ZW5kb3JfcGFyYW0geworCXVpbnQzMl90IHZhbHVlOworfSBfX2VjX2FsaWduNDsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoKKyAqIFNtYXJ0IEJhdHRlcnkgRmlybXdhcmUgVXBkYXRlIENvbW1hbmRzCisgKi8KKyNkZWZpbmUgRUNfQ01EX1NCX0ZXX1VQREFURSAweDAwQjUKKworZW51bSBlY19zYl9md191cGRhdGVfc3ViY21kIHsKKwlFQ19TQl9GV19VUERBVEVfUFJFUEFSRSAgPSAweDAsCisJRUNfU0JfRldfVVBEQVRFX0lORk8gICAgID0gMHgxLCAvKnF1ZXJ5IHNiIGluZm8gKi8KKwlFQ19TQl9GV19VUERBVEVfQkVHSU4gICAgPSAweDIsIC8qY2hlY2sgaWYgcHJvdGVjdGVkICovCisJRUNfU0JfRldfVVBEQVRFX1dSSVRFICAgID0gMHgzLCAvKmNoZWNrIGlmIHByb3RlY3RlZCAqLworCUVDX1NCX0ZXX1VQREFURV9FTkQgICAgICA9IDB4NCwKKwlFQ19TQl9GV19VUERBVEVfU1RBVFVTICAgPSAweDUsCisJRUNfU0JfRldfVVBEQVRFX1BST1RFQ1QgID0gMHg2LAorCUVDX1NCX0ZXX1VQREFURV9NQVggICAgICA9IDB4NywKK307CisKKyNkZWZpbmUgU0JfRldfVVBEQVRFX0NNRF9XUklURV9CTE9DS19TSVpFIDMyCisjZGVmaW5lIFNCX0ZXX1VQREFURV9DTURfU1RBVFVTX1NJWkUgMgorI2RlZmluZSBTQl9GV19VUERBVEVfQ01EX0lORk9fU0laRSA4CisKK3N0cnVjdCBlY19zYl9md191cGRhdGVfaGVhZGVyIHsKKwl1aW50MTZfdCBzdWJjbWQ7ICAvKiBlbnVtIGVjX3NiX2Z3X3VwZGF0ZV9zdWJjbWQgKi8KKwl1aW50MTZfdCBmd19pZDsgICAvKiBmaXJtd2FyZSBpZCAqLworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX3BhcmFtc19zYl9md191cGRhdGUgeworCXN0cnVjdCBlY19zYl9md191cGRhdGVfaGVhZGVyIGhkcjsKKwl1bmlvbiB7CisJCS8qIEVDX1NCX0ZXX1VQREFURV9QUkVQQVJFICA9IDB4MCAqLworCQkvKiBFQ19TQl9GV19VUERBVEVfSU5GTyAgICAgPSAweDEgKi8KKwkJLyogRUNfU0JfRldfVVBEQVRFX0JFR0lOICAgID0gMHgyICovCisJCS8qIEVDX1NCX0ZXX1VQREFURV9FTkQgICAgICA9IDB4NCAqLworCQkvKiBFQ19TQl9GV19VUERBVEVfU1RBVFVTICAgPSAweDUgKi8KKwkJLyogRUNfU0JfRldfVVBEQVRFX1BST1RFQ1QgID0gMHg2ICovCisJCS8qIFRob3NlIGhhdmUgbm8gYXJncyAqLworCisJCS8qIEVDX1NCX0ZXX1VQREFURV9XUklURSAgICA9IDB4MyAqLworCQlzdHJ1Y3QgX19lY19hbGlnbjQgeworCQkJdWludDhfdCAgZGF0YVtTQl9GV19VUERBVEVfQ01EX1dSSVRFX0JMT0NLX1NJWkVdOworCQl9IHdyaXRlOworCX07Cit9IF9fZWNfYWxpZ240OworCitzdHJ1Y3QgZWNfcmVzcG9uc2Vfc2JfZndfdXBkYXRlIHsKKwl1bmlvbiB7CisJCS8qIEVDX1NCX0ZXX1VQREFURV9JTkZPICAgICA9IDB4MSAqLworCQlzdHJ1Y3QgX19lY19hbGlnbjEgeworCQkJdWludDhfdCBkYXRhW1NCX0ZXX1VQREFURV9DTURfSU5GT19TSVpFXTsKKwkJfSBpbmZvOworCisJCS8qIEVDX1NCX0ZXX1VQREFURV9TVEFUVVMgICA9IDB4NSAqLworCQlzdHJ1Y3QgX19lY19hbGlnbjEgeworCQkJdWludDhfdCBkYXRhW1NCX0ZXX1VQREFURV9DTURfU1RBVFVTX1NJWkVdOworCQl9IHN0YXR1czsKKwl9OworfSBfX2VjX2FsaWduMTsKKworLyoKKyAqIEVudGVyaW5nIFZlcmlmaWVkIEJvb3QgTW9kZSBDb21tYW5kCisgKiBEZWZhdWx0IG1vZGUgaXMgVkJPT1RfTU9ERV9OT1JNQUwgaWYgRUMgZGlkIG5vdCByZWNlaXZlIHRoaXMgY29tbWFuZC4KKyAqIFZhbGlkIE1vZGVzIGFyZTogbm9ybWFsLCBkZXZlbG9wZXIsIGFuZCByZWNvdmVyeS4KKyAqLworI2RlZmluZSBFQ19DTURfRU5URVJJTkdfTU9ERSAweDAwQjYKKworc3RydWN0IGVjX3BhcmFtc19lbnRlcmluZ19tb2RlIHsKKwlpbnQgdmJvb3RfbW9kZTsKK30gX19lY19hbGlnbjQ7CisKKyNkZWZpbmUgVkJPT1RfTU9ERV9OT1JNQUwgICAgMAorI2RlZmluZSBWQk9PVF9NT0RFX0RFVkVMT1BFUiAxCisjZGVmaW5lIFZCT09UX01PREVfUkVDT1ZFUlkgIDIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoKKyAqIEkyQyBwYXNzdGhydSBwcm90ZWN0aW9uIGNvbW1hbmQ6IFByb3RlY3RzIEkyQyB0dW5uZWxzIGFnYWluc3QgYWNjZXNzIG9uCisgKiBjZXJ0YWluIGFkZHJlc3NlcyAoYm9hcmQtc3BlY2lmaWMpLgorICovCisjZGVmaW5lIEVDX0NNRF9JMkNfUEFTU1RIUlVfUFJPVEVDVCAweDAwQjcKKworZW51bSBlY19pMmNfcGFzc3RocnVfcHJvdGVjdF9zdWJjbWQgeworCUVDX0NNRF9JMkNfUEFTU1RIUlVfUFJPVEVDVF9TVEFUVVMgPSAweDAsCisJRUNfQ01EX0kyQ19QQVNTVEhSVV9QUk9URUNUX0VOQUJMRSA9IDB4MSwKK307CisKK3N0cnVjdCBlY19wYXJhbXNfaTJjX3Bhc3N0aHJ1X3Byb3RlY3QgeworCXVpbnQ4X3Qgc3ViY21kOworCXVpbnQ4X3QgcG9ydDsJCS8qIEkyQyBwb3J0IG51bWJlciAqLworfSBfX2VjX2FsaWduMTsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2kyY19wYXNzdGhydV9wcm90ZWN0IHsKKwl1aW50OF90IHN0YXR1czsJCS8qIFN0YXR1cyBmbGFncyAoMDogdW5sb2NrZWQsIDE6IGxvY2tlZCkgKi8KK30gX19lY19hbGlnbjE7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoKKyAqIEhETUkgQ0VDIGNvbW1hbmRzCisgKgorICogVGhlc2UgY29tbWFuZHMgYXJlIGZvciBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZSB2aWEgSERNSSBDRUMKKyAqLworCisjZGVmaW5lIE1BWF9DRUNfTVNHX0xFTiAxNgorCisvKiBDRUMgbWVzc2FnZSBmcm9tIHRoZSBBUCB0byBiZSB3cml0dGVuIG9uIHRoZSBDRUMgYnVzICovCisjZGVmaW5lIEVDX0NNRF9DRUNfV1JJVEVfTVNHIDB4MDBCOAorCisvKioKKyAqIHN0cnVjdCBlY19wYXJhbXNfY2VjX3dyaXRlIC0gTWVzc2FnZSB0byB3cml0ZSB0byB0aGUgQ0VDIGJ1cworICogQG1zZzogbWVzc2FnZSBjb250ZW50IHRvIHdyaXRlIHRvIHRoZSBDRUMgYnVzCisgKi8KK3N0cnVjdCBlY19wYXJhbXNfY2VjX3dyaXRlIHsKKwl1aW50OF90IG1zZ1tNQVhfQ0VDX01TR19MRU5dOworfSBfX2VjX2FsaWduMTsKKworLyogU2V0IHZhcmlvdXMgQ0VDIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgRUNfQ01EX0NFQ19TRVQgMHgwMEJBCisKKy8qKgorICogc3RydWN0IGVjX3BhcmFtc19jZWNfc2V0IC0gQ0VDIHBhcmFtZXRlcnMgc2V0CisgKiBAY21kOiBwYXJhbWV0ZXIgdHlwZSwgY2FuIGJlIENFQ19DTURfRU5BQkxFIG9yIENFQ19DTURfTE9HSUNBTF9BRERSRVNTCisgKiBAdmFsOiBpbiBjYXNlIGNtZCBpcyBDRUNfQ01EX0VOQUJMRSwgdGhpcyBmaWVsZCBjYW4gYmUgMCB0byBkaXNhYmxlIENFQworICoJb3IgMSB0byBlbmFibGUgQ0VDIGZ1bmN0aW9uYWxpdHksIGluIGNhc2UgY21kIGlzCisgKglDRUNfQ01EX0xPR0lDQUxfQUREUkVTUywgdGhpcyBmaWVsZCBlbmNvZGVzIHRoZSByZXF1ZXN0ZWQgbG9naWNhbAorICoJYWRkcmVzcyBiZXR3ZWVuIDAgYW5kIDE1IG9yIDB4ZmYgdG8gdW5yZWdpc3RlcgorICovCitzdHJ1Y3QgZWNfcGFyYW1zX2NlY19zZXQgeworCXVpbnQ4X3QgY21kOyAvKiBlbnVtIGNlY19jb21tYW5kICovCisJdWludDhfdCB2YWw7Cit9IF9fZWNfYWxpZ24xOworCisvKiBSZWFkIHZhcmlvdXMgQ0VDIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgRUNfQ01EX0NFQ19HRVQgMHgwMEJCCisKKy8qKgorICogc3RydWN0IGVjX3BhcmFtc19jZWNfZ2V0IC0gQ0VDIHBhcmFtZXRlcnMgZ2V0CisgKiBAY21kOiBwYXJhbWV0ZXIgdHlwZSwgY2FuIGJlIENFQ19DTURfRU5BQkxFIG9yIENFQ19DTURfTE9HSUNBTF9BRERSRVNTCisgKi8KK3N0cnVjdCBlY19wYXJhbXNfY2VjX2dldCB7CisJdWludDhfdCBjbWQ7IC8qIGVudW0gY2VjX2NvbW1hbmQgKi8KK30gX19lY19hbGlnbjE7CisKKy8qKgorICogc3RydWN0IGVjX3Jlc3BvbnNlX2NlY19nZXQgLSBDRUMgcGFyYW1ldGVycyBnZXQgcmVzcG9uc2UKKyAqIEB2YWw6IGluIGNhc2UgY21kIHdhcyBDRUNfQ01EX0VOQUJMRSwgdGhpcyBmaWVsZCB3aWxsIDAgaWYgQ0VDIGlzCisgKglkaXNhYmxlZCBvciAxIGlmIENFQyBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQsCisgKglpbiBjYXNlIGNtZCB3YXMgQ0VDX0NNRF9MT0dJQ0FMX0FERFJFU1MsIHRoaXMgd2lsbCBlbmNvZGUgdGhlCisgKgljb25maWd1cmVkIGxvZ2ljYWwgYWRkcmVzcyBiZXR3ZWVuIDAgYW5kIDE1IG9yIDB4ZmYgaWYgdW5yZWdpc3RlcmVkCisgKi8KK3N0cnVjdCBlY19yZXNwb25zZV9jZWNfZ2V0IHsKKwl1aW50OF90IHZhbDsKK30gX19lY19hbGlnbjE7CisKKy8qIENFQyBwYXJhbWV0ZXJzIGNvbW1hbmQgKi8KK2VudW0gY2VjX2NvbW1hbmQgeworCS8qIENFQyByZWFkaW5nLCB3cml0aW5nIGFuZCBldmVudHMgZW5hYmxlICovCisJQ0VDX0NNRF9FTkFCTEUsCisJLyogQ0VDIGxvZ2ljYWwgYWRkcmVzcyAgKi8KKwlDRUNfQ01EX0xPR0lDQUxfQUREUkVTUywKK307CisKKy8qIEV2ZW50cyBmcm9tIENFQyB0byBBUCAqLworZW51bSBta2JwX2NlY19ldmVudCB7CisJLyogT3V0Z29pbmcgbWVzc2FnZSB3YXMgYWNrbm93bGVkZ2VkIGJ5IGEgZm9sbG93ZXIgKi8KKwlFQ19NS0JQX0NFQ19TRU5EX09LCQkJPSBCSVQoMCksCisJLyogT3V0Z29pbmcgbWVzc2FnZSB3YXMgbm90IGFja25vd2xlZGdlZCAqLworCUVDX01LQlBfQ0VDX1NFTkRfRkFJTEVECQkJPSBCSVQoMSksCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIENvbW1hbmRzIGZvciBJMlMgcmVjb3JkaW5nIG9uIGF1ZGlvIGNvZGVjLiAqLworCisjZGVmaW5lIEVDX0NNRF9DT0RFQ19JMlMgMHgwMEJDCisjZGVmaW5lIEVDX1dPVl9JMlNfU0FNUExFX1JBVEUgNDgwMDAKKworZW51bSBlY19jb2RlY19pMnNfc3ViY21kIHsKKwlFQ19DT0RFQ19TRVRfU0FNUExFX0RFUFRIID0gMHgwLAorCUVDX0NPREVDX1NFVF9HQUlOID0gMHgxLAorCUVDX0NPREVDX0dFVF9HQUlOID0gMHgyLAorCUVDX0NPREVDX0kyU19FTkFCTEUgPSAweDMsCisJRUNfQ09ERUNfSTJTX1NFVF9DT05GSUcgPSAweDQsCisJRUNfQ09ERUNfSTJTX1NFVF9URE1fQ09ORklHID0gMHg1LAorCUVDX0NPREVDX0kyU19TRVRfQkNMSyA9IDB4NiwKKwlFQ19DT0RFQ19JMlNfU1VCQ01EX0NPVU5UID0gMHg3LAorfTsKKworZW51bSBlY19zYW1wbGVfZGVwdGhfdmFsdWUgeworCUVDX0NPREVDX1NBTVBMRV9ERVBUSF8xNiA9IDAsCisJRUNfQ09ERUNfU0FNUExFX0RFUFRIXzI0ID0gMSwKK307CisKK2VudW0gZWNfaTJzX2NvbmZpZyB7CisJRUNfREFJX0ZNVF9JMlMgPSAwLAorCUVDX0RBSV9GTVRfUklHSFRfSiA9IDEsCisJRUNfREFJX0ZNVF9MRUZUX0ogPSAyLAorCUVDX0RBSV9GTVRfUENNX0EgPSAzLAorCUVDX0RBSV9GTVRfUENNX0IgPSA0LAorCUVDX0RBSV9GTVRfUENNX1RETSA9IDUsCit9OworCisvKgorICogRm9yIHN1YmNvbW1hbmQgRUNfQ09ERUNfR0VUX0dBSU4uCisgKi8KK3N0cnVjdCBfX2VjX2FsaWduMSBlY19jb2RlY19pMnNfZ2FpbiB7CisJdWludDhfdCBsZWZ0OworCXVpbnQ4X3QgcmlnaHQ7Cit9OworCitzdHJ1Y3QgX19lY190b2RvX3VucGFja2VkIGVjX3BhcmFtX2NvZGVjX2kyc190ZG0geworCWludDE2X3QgY2gwX2RlbGF5OyAvKiAwIHRvIDQ5NiAqLworCWludDE2X3QgY2gxX2RlbGF5OyAvKiAtMSB0byA0OTYgKi8KKwl1aW50OF90IGFkamFjZW50X3RvX2NoMDsKKwl1aW50OF90IGFkamFjZW50X3RvX2NoMTsKK307CisKK3N0cnVjdCBfX2VjX3RvZG9fcGFja2VkIGVjX3BhcmFtX2NvZGVjX2kycyB7CisJLyogZW51bSBlY19jb2RlY19pMnNfc3ViY21kICovCisJdWludDhfdCBjbWQ7CisJdW5pb24geworCQkvKgorCQkgKiBFQ19DT0RFQ19TRVRfU0FNUExFX0RFUFRICisJCSAqIFZhbHVlIHNob3VsZCBiZSBvbmUgb2YgZWNfc2FtcGxlX2RlcHRoX3ZhbHVlLgorCQkgKi8KKwkJdWludDhfdCBkZXB0aDsKKworCQkvKgorCQkgKiBFQ19DT0RFQ19TRVRfR0FJTgorCQkgKiBWYWx1ZSBzaG91bGQgYmUgMH40MyBmb3IgYm90aCBjaGFubmVscy4KKwkJICovCisJCXN0cnVjdCBlY19jb2RlY19pMnNfZ2FpbiBnYWluOworCisJCS8qCisJCSAqIEVDX0NPREVDX0kyU19FTkFCTEUKKwkJICogMSB0byBlbmFibGUsIDAgdG8gZGlzYWJsZS4KKwkJICovCisJCXVpbnQ4X3QgaTJzX2VuYWJsZTsKKworCQkvKgorCQkgKiBFQ19DT0RFQ19JMlNfU0VUX0NPTkZJRworCQkgKiBWYWx1ZSBzaG91bGQgYmUgb25lIG9mIGVjX2kyc19jb25maWcuCisJCSAqLworCQl1aW50OF90IGkyc19jb25maWc7CisKKwkJLyoKKwkJICogRUNfQ09ERUNfSTJTX1NFVF9URE1fQ09ORklHCisJCSAqIFZhbHVlIHNob3VsZCBiZSBvbmUgb2YgZWNfaTJzX2NvbmZpZy4KKwkJICovCisJCXN0cnVjdCBlY19wYXJhbV9jb2RlY19pMnNfdGRtIHRkbV9wYXJhbTsKKworCQkvKgorCQkgKiBFQ19DT0RFQ19JMlNfU0VUX0JDTEsKKwkJICovCisJCXVpbnQzMl90IGJjbGs7CisJfTsKK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogU3lzdGVtIGNvbW1hbmRzICovCisKKy8qCisgKiBUT0RPKGNyb3NidWcuY29tL3AvMjM3NDcpOiBUaGlzIGlzIGEgY29uZnVzaW5nIG5hbWUsIHNpbmNlIGl0IGRvZXNuJ3QKKyAqIG5lY2Vzc2FyaWx5IHJlYm9vdCB0aGUgRUMuICBSZW5hbWUgdG8gImltYWdlIiBvciBzb21ldGhpbmcgc2ltaWxhcj8KKyAqLworI2RlZmluZSBFQ19DTURfUkVCT09UX0VDIDB4MDBEMgorCisvKiBDb21tYW5kICovCitlbnVtIGVjX3JlYm9vdF9jbWQgeworCUVDX1JFQk9PVF9DQU5DRUwgPSAwLCAgICAgICAgLyogQ2FuY2VsIGEgcGVuZGluZyByZWJvb3QgKi8KKwlFQ19SRUJPT1RfSlVNUF9STyA9IDEsICAgICAgIC8qIEp1bXAgdG8gUk8gd2l0aG91dCByZWJvb3RpbmcgKi8KKwlFQ19SRUJPT1RfSlVNUF9SVyA9IDIsICAgICAgIC8qIEp1bXAgdG8gYWN0aXZlIFJXIHdpdGhvdXQgcmVib290aW5nICovCisJLyogKGNvbW1hbmQgMyB3YXMganVtcCB0byBSVy1CKSAqLworCUVDX1JFQk9PVF9DT0xEID0gNCwgICAgICAgICAgLyogQ29sZC1yZWJvb3QgKi8KKwlFQ19SRUJPT1RfRElTQUJMRV9KVU1QID0gNSwgIC8qIERpc2FibGUganVtcCB1bnRpbCBuZXh0IHJlYm9vdCAqLworCUVDX1JFQk9PVF9ISUJFUk5BVEUgPSA2LCAgICAgLyogSGliZXJuYXRlIEVDICovCisJRUNfUkVCT09UX0hJQkVSTkFURV9DTEVBUl9BUF9PRkYgPSA3LCAvKiBhbmQgY2xlYXJzIEFQX09GRiBmbGFnICovCit9OworCisvKiBGbGFncyBmb3IgZWNfcGFyYW1zX3JlYm9vdF9lYy5yZWJvb3RfZmxhZ3MgKi8KKyNkZWZpbmUgRUNfUkVCT09UX0ZMQUdfUkVTRVJWRUQwICAgICAgQklUKDApICAvKiBXYXMgcmVjb3ZlcnkgcmVxdWVzdCAqLworI2RlZmluZSBFQ19SRUJPT1RfRkxBR19PTl9BUF9TSFVURE9XTiBCSVQoMSkgIC8qIFJlYm9vdCBhZnRlciBBUCBzaHV0ZG93biAqLworI2RlZmluZSBFQ19SRUJPT1RfRkxBR19TV0lUQ0hfUldfU0xPVCBCSVQoMikgIC8qIFN3aXRjaCBSVyBzbG90ICovCisKK3N0cnVjdCBlY19wYXJhbXNfcmVib290X2VjIHsKKwl1aW50OF90IGNtZDsgICAgICAgICAgIC8qIGVudW0gZWNfcmVib290X2NtZCAqLworCXVpbnQ4X3QgZmxhZ3M7ICAgICAgICAgLyogU2VlIEVDX1JFQk9PVF9GTEFHXyogKi8KK30gX19lY19hbGlnbjE7CisKKy8qCisgKiBHZXQgaW5mb3JtYXRpb24gb24gbGFzdCBFQyBwYW5pYy4KKyAqCisgKiBSZXR1cm5zIHZhcmlhYmxlLWxlbmd0aCBwbGF0Zm9ybS1kZXBlbmRlbnQgcGFuaWMgaW5mb3JtYXRpb24uICBTZWUgcGFuaWMuaAorICogZm9yIGRldGFpbHMuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0dFVF9QQU5JQ19JTkZPIDB4MDBEMworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogU3BlY2lhbCBjb21tYW5kcworICoKKyAqIFRoZXNlIGRvIG5vdCBmb2xsb3cgdGhlIG5vcm1hbCBydWxlcyBmb3IgY29tbWFuZHMuICBTZWUgZWFjaCBjb21tYW5kIGZvcgorICogZGV0YWlscy4KKyAqLworCisvKgorICogUmVib290IE5PVworICoKKyAqIFRoaXMgY29tbWFuZCB3aWxsIHdvcmsgZXZlbiB3aGVuIHRoZSBFQyBMUEMgaW50ZXJmYWNlIGlzIGJ1c3ksIGJlY2F1c2UgdGhlCisgKiByZWJvb3QgY29tbWFuZCBpcyBwcm9jZXNzZWQgYXQgaW50ZXJydXB0IGxldmVsLiAgTm90ZSB0aGF0IHdoZW4gdGhlIEVDCisgKiByZWJvb3RzLCB0aGUgaG9zdCB3aWxsIHJlYm9vdCB0b28sIHNvIHRoZXJlIGlzIG5vIHJlc3BvbnNlIHRvIHRoaXMgY29tbWFuZC4KKyAqCisgKiBVc2UgRUNfQ01EX1JFQk9PVF9FQyB0byByZWJvb3QgdGhlIEVDIG1vcmUgcG9saXRlbHkuCisgKi8KKyNkZWZpbmUgRUNfQ01EX1JFQk9PVCAweDAwRDEgIC8qIFRoaW5rICJkaWUiICovCisKKy8qCisgKiBSZXNlbmQgbGFzdCByZXNwb25zZSAobm90IHN1cHBvcnRlZCBvbiBMUEMpLgorICoKKyAqIFJldHVybnMgRUNfUkVTX1VOQVZBSUxBQkxFIGlmIHRoZXJlIGlzIG5vIHJlc3BvbnNlIGF2YWlsYWJsZSAtIGZvciBleGFtcGxlLAorICogdGhlcmUgd2FzIG5vIHByZXZpb3VzIGNvbW1hbmQsIG9yIHRoZSBwcmV2aW91cyBjb21tYW5kJ3MgcmVzcG9uc2Ugd2FzIHRvbworICogYmlnIHRvIHNhdmUuCisgKi8KKyNkZWZpbmUgRUNfQ01EX1JFU0VORF9SRVNQT05TRSAweDAwREIKKworLyoKKyAqIFRoaXMgaGVhZGVyIGJ5dGUgb24gYSBjb21tYW5kIGluZGljYXRlIHZlcnNpb24gMC4gQW55IGhlYWRlciBieXRlIGxlc3MKKyAqIHRoYW4gdGhpcyBtZWFucyB0aGF0IHdlIGFyZSB0YWxraW5nIHRvIGFuIG9sZCBFQyB3aGljaCBkb2Vzbid0IHN1cHBvcnQKKyAqIHZlcnNpb25pbmcuIEluIHRoYXQgY2FzZSwgd2UgYXNzdW1lIHZlcnNpb24gMC4KKyAqCisgKiBIZWFkZXIgYnl0ZXMgZ3JlYXRlciB0aGFuIHRoaXMgaW5kaWNhdGUgYSBsYXRlciB2ZXJzaW9uLiBGb3IgZXhhbXBsZSwKKyAqIEVDX0NNRF9WRVJTSU9OMCArIDEgbWVhbnMgd2UgYXJlIHVzaW5nIHZlcnNpb24gMS4KKyAqCisgKiBUaGUgb2xkIEVDIGludGVyZmFjZSBtdXN0IG5vdCB1c2UgY29tbWFuZHMgMHhkYyBvciBoaWdoZXIuCisgKi8KKyNkZWZpbmUgRUNfQ01EX1ZFUlNJT04wIDB4MDBEQworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogUEQgY29tbWFuZHMKKyAqCisgKiBUaGVzZSBjb21tYW5kcyBhcmUgZm9yIFBEIE1DVSBjb21tdW5pY2F0aW9uLgorICovCisKKy8qIEVDIHRvIFBEIE1DVSBleGNoYW5nZSBzdGF0dXMgY29tbWFuZCAqLworI2RlZmluZSBFQ19DTURfUERfRVhDSEFOR0VfU1RBVFVTIDB4MDEwMAorI2RlZmluZSBFQ19WRVJfUERfRVhDSEFOR0VfU1RBVFVTIDIKKworZW51bSBwZF9jaGFyZ2Vfc3RhdGUgeworCVBEX0NIQVJHRV9OT19DSEFOR0UgPSAwLCAvKiBEb24ndCBjaGFuZ2UgY2hhcmdlIHN0YXRlICovCisJUERfQ0hBUkdFX05PTkUsICAgICAgICAgIC8qIE5vIGNoYXJnaW5nIGFsbG93ZWQgKi8KKwlQRF9DSEFSR0VfNVYsICAgICAgICAgICAgLyogNVYgY2hhcmdpbmcgb25seSAqLworCVBEX0NIQVJHRV9NQVggICAgICAgICAgICAvKiBDaGFyZ2UgYXQgbWF4IHZvbHRhZ2UgKi8KK307CisKKy8qIFN0YXR1cyBvZiBFQyBiZWluZyBzZW50IHRvIFBEICovCisjZGVmaW5lIEVDX1NUQVRVU19ISUJFUk5BVElORwlCSVQoMCkKKworc3RydWN0IGVjX3BhcmFtc19wZF9zdGF0dXMgeworCXVpbnQ4X3Qgc3RhdHVzOyAgICAgICAvKiBFQyBzdGF0dXMgKi8KKwlpbnQ4X3QgYmF0dF9zb2M7ICAgICAgLyogYmF0dGVyeSBzdGF0ZSBvZiBjaGFyZ2UgKi8KKwl1aW50OF90IGNoYXJnZV9zdGF0ZTsgLyogY2hhcmdpbmcgc3RhdGUgKGZyb20gZW51bSBwZF9jaGFyZ2Vfc3RhdGUpICovCit9IF9fZWNfYWxpZ24xOworCisvKiBTdGF0dXMgb2YgUEQgYmVpbmcgc2VudCBiYWNrIHRvIEVDICovCisjZGVmaW5lIFBEX1NUQVRVU19IT1NUX0VWRU5UICAgICAgQklUKDApIC8qIEZvcndhcmQgaG9zdCBldmVudCB0byBBUCAqLworI2RlZmluZSBQRF9TVEFUVVNfSU5fUlcgICAgICAgICAgIEJJVCgxKSAvKiBSdW5uaW5nIFJXIGltYWdlICovCisjZGVmaW5lIFBEX1NUQVRVU19KVU1QRURfVE9fSU1BR0UgQklUKDIpIC8qIEN1cnJlbnQgaW1hZ2Ugd2FzIGp1bXBlZCB0byAqLworI2RlZmluZSBQRF9TVEFUVVNfVENQQ19BTEVSVF8wICAgIEJJVCgzKSAvKiBBbGVydCBhY3RpdmUgaW4gcG9ydCAwIFRDUEMgKi8KKyNkZWZpbmUgUERfU1RBVFVTX1RDUENfQUxFUlRfMSAgICBCSVQoNCkgLyogQWxlcnQgYWN0aXZlIGluIHBvcnQgMSBUQ1BDICovCisjZGVmaW5lIFBEX1NUQVRVU19UQ1BDX0FMRVJUXzIgICAgQklUKDUpIC8qIEFsZXJ0IGFjdGl2ZSBpbiBwb3J0IDIgVENQQyAqLworI2RlZmluZSBQRF9TVEFUVVNfVENQQ19BTEVSVF8zICAgIEJJVCg2KSAvKiBBbGVydCBhY3RpdmUgaW4gcG9ydCAzIFRDUEMgKi8KKyNkZWZpbmUgUERfU1RBVFVTX0VDX0lOVF9BQ1RJVkUgIChQRF9TVEFUVVNfVENQQ19BTEVSVF8wIHwgXAorCQkJCSAgICAgIFBEX1NUQVRVU19UQ1BDX0FMRVJUXzEgfCBcCisJCQkJICAgICAgUERfU1RBVFVTX0hPU1RfRVZFTlQpCitzdHJ1Y3QgZWNfcmVzcG9uc2VfcGRfc3RhdHVzIHsKKwl1aW50MzJfdCBjdXJyX2xpbV9tYTsgICAgICAgLyogaW5wdXQgY3VycmVudCBsaW1pdCAqLworCXVpbnQxNl90IHN0YXR1czsgICAgICAgICAgICAvKiBQRCBNQ1Ugc3RhdHVzICovCisJaW50OF90IGFjdGl2ZV9jaGFyZ2VfcG9ydDsgIC8qIGFjdGl2ZSBjaGFyZ2luZyBwb3J0ICovCit9IF9fZWNfYWxpZ25fc2l6ZTE7CisKKy8qIEFQIHRvIFBEIE1DVSBob3N0IGV2ZW50IHN0YXR1cyBjb21tYW5kLCBjbGVhcmVkIG9uIHJlYWQgKi8KKyNkZWZpbmUgRUNfQ01EX1BEX0hPU1RfRVZFTlRfU1RBVFVTIDB4MDEwNAorCisvKiBQRCBNQ1UgaG9zdCBldmVudCBzdGF0dXMgYml0cyAqLworI2RlZmluZSBQRF9FVkVOVF9VUERBVEVfREVWSUNFICAgICBCSVQoMCkKKyNkZWZpbmUgUERfRVZFTlRfUE9XRVJfQ0hBTkdFICAgICAgQklUKDEpCisjZGVmaW5lIFBEX0VWRU5UX0lERU5USVRZX1JFQ0VJVkVEIEJJVCgyKQorI2RlZmluZSBQRF9FVkVOVF9EQVRBX1NXQVAgICAgICAgICBCSVQoMykKK3N0cnVjdCBlY19yZXNwb25zZV9ob3N0X2V2ZW50X3N0YXR1cyB7CisJdWludDMyX3Qgc3RhdHVzOyAgICAgIC8qIFBEIE1DVSBob3N0IGV2ZW50IHN0YXR1cyAqLworfSBfX2VjX2FsaWduNDsKKworLyogU2V0IFVTQiB0eXBlLUMgcG9ydCByb2xlIGFuZCBtdXhlcyAqLworI2RlZmluZSBFQ19DTURfVVNCX1BEX0NPTlRST0wgMHgwMTAxCisKK2VudW0gdXNiX3BkX2NvbnRyb2xfcm9sZSB7CisJVVNCX1BEX0NUUkxfUk9MRV9OT19DSEFOR0UgPSAwLAorCVVTQl9QRF9DVFJMX1JPTEVfVE9HR0xFX09OID0gMSwgLyogPT0gQVVUTyAqLworCVVTQl9QRF9DVFJMX1JPTEVfVE9HR0xFX09GRiA9IDIsCisJVVNCX1BEX0NUUkxfUk9MRV9GT1JDRV9TSU5LID0gMywKKwlVU0JfUERfQ1RSTF9ST0xFX0ZPUkNFX1NPVVJDRSA9IDQsCisJVVNCX1BEX0NUUkxfUk9MRV9GUkVFWkUgPSA1LAorCVVTQl9QRF9DVFJMX1JPTEVfQ09VTlQKK307CisKK2VudW0gdXNiX3BkX2NvbnRyb2xfbXV4IHsKKwlVU0JfUERfQ1RSTF9NVVhfTk9fQ0hBTkdFID0gMCwKKwlVU0JfUERfQ1RSTF9NVVhfTk9ORSA9IDEsCisJVVNCX1BEX0NUUkxfTVVYX1VTQiA9IDIsCisJVVNCX1BEX0NUUkxfTVVYX0RQID0gMywKKwlVU0JfUERfQ1RSTF9NVVhfRE9DSyA9IDQsCisJVVNCX1BEX0NUUkxfTVVYX0FVVE8gPSA1LAorCVVTQl9QRF9DVFJMX01VWF9DT1VOVAorfTsKKworZW51bSB1c2JfcGRfY29udHJvbF9zd2FwIHsKKwlVU0JfUERfQ1RSTF9TV0FQX05PTkUgPSAwLAorCVVTQl9QRF9DVFJMX1NXQVBfREFUQSA9IDEsCisJVVNCX1BEX0NUUkxfU1dBUF9QT1dFUiA9IDIsCisJVVNCX1BEX0NUUkxfU1dBUF9WQ09OTiA9IDMsCisJVVNCX1BEX0NUUkxfU1dBUF9DT1VOVAorfTsKKworc3RydWN0IGVjX3BhcmFtc191c2JfcGRfY29udHJvbCB7CisJdWludDhfdCBwb3J0OworCXVpbnQ4X3Qgcm9sZTsKKwl1aW50OF90IG11eDsKKwl1aW50OF90IHN3YXA7Cit9IF9fZWNfYWxpZ24xOworCisjZGVmaW5lIFBEX0NUUkxfUkVTUF9FTkFCTEVEX0NPTU1TICAgICAgQklUKDApIC8qIENvbW11bmljYXRpb24gZW5hYmxlZCAqLworI2RlZmluZSBQRF9DVFJMX1JFU1BfRU5BQkxFRF9DT05ORUNURUQgIEJJVCgxKSAvKiBEZXZpY2UgY29ubmVjdGVkICovCisjZGVmaW5lIFBEX0NUUkxfUkVTUF9FTkFCTEVEX1BEX0NBUEFCTEUgQklUKDIpIC8qIFBhcnRuZXIgaXMgUEQgY2FwYWJsZSAqLworCisjZGVmaW5lIFBEX0NUUkxfUkVTUF9ST0xFX1BPV0VSICAgICAgICAgQklUKDApIC8qIDA9U05LLzE9U1JDICovCisjZGVmaW5lIFBEX0NUUkxfUkVTUF9ST0xFX0RBVEEgICAgICAgICAgQklUKDEpIC8qIDA9VUZQLzE9REZQICovCisjZGVmaW5lIFBEX0NUUkxfUkVTUF9ST0xFX1ZDT05OICAgICAgICAgQklUKDIpIC8qIFZjb25uIHN0YXR1cyAqLworI2RlZmluZSBQRF9DVFJMX1JFU1BfUk9MRV9EUl9QT1dFUiAgICAgIEJJVCgzKSAvKiBQYXJ0bmVyIGlzIGR1YWxyb2xlIHBvd2VyICovCisjZGVmaW5lIFBEX0NUUkxfUkVTUF9ST0xFX0RSX0RBVEEgICAgICAgQklUKDQpIC8qIFBhcnRuZXIgaXMgZHVhbHJvbGUgZGF0YSAqLworI2RlZmluZSBQRF9DVFJMX1JFU1BfUk9MRV9VU0JfQ09NTSAgICAgIEJJVCg1KSAvKiBQYXJ0bmVyIFVTQiBjb21tIGNhcGFibGUgKi8KKyNkZWZpbmUgUERfQ1RSTF9SRVNQX1JPTEVfRVhUX1BPV0VSRUQgICBCSVQoNikgLyogUGFydG5lciBleHRlcm5hbGx5IHBvd2VyZCAqLworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfdXNiX3BkX2NvbnRyb2wgeworCXVpbnQ4X3QgZW5hYmxlZDsKKwl1aW50OF90IHJvbGU7CisJdWludDhfdCBwb2xhcml0eTsKKwl1aW50OF90IHN0YXRlOworfSBfX2VjX2FsaWduMTsKKworc3RydWN0IGVjX3Jlc3BvbnNlX3VzYl9wZF9jb250cm9sX3YxIHsKKwl1aW50OF90IGVuYWJsZWQ7CisJdWludDhfdCByb2xlOworCXVpbnQ4X3QgcG9sYXJpdHk7CisJY2hhciBzdGF0ZVszMl07Cit9IF9fZWNfYWxpZ24xOworCisvKiBWYWx1ZXMgcmVwcmVzZW50aW5nIHVzYmMgUEQgQ0Mgc3RhdGUgKi8KKyNkZWZpbmUgVVNCQ19QRF9DQ19OT05FCQkwIC8qIE5vIGFjY2Vzc29yeSBjb25uZWN0ZWQgKi8KKyNkZWZpbmUgVVNCQ19QRF9DQ19OT19VRlAJMSAvKiBObyBVRlAgYWNjZXNzb3J5IGNvbm5lY3RlZCAqLworI2RlZmluZSBVU0JDX1BEX0NDX0FVRElPX0FDQwkyIC8qIEF1ZGlvIGFjY2Vzc29yeSBjb25uZWN0ZWQgKi8KKyNkZWZpbmUgVVNCQ19QRF9DQ19ERUJVR19BQ0MJMyAvKiBEZWJ1ZyBhY2Nlc3NvcnkgY29ubmVjdGVkICovCisjZGVmaW5lIFVTQkNfUERfQ0NfVUZQX0FUVEFDSEVECTQgLyogVUZQIGF0dGFjaGVkIHRvIHVzYmMgKi8KKyNkZWZpbmUgVVNCQ19QRF9DQ19ERlBfQVRUQUNIRUQJNSAvKiBEUEYgYXR0YWNoZWQgdG8gdXNiYyAqLworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfdXNiX3BkX2NvbnRyb2xfdjIgeworCXVpbnQ4X3QgZW5hYmxlZDsKKwl1aW50OF90IHJvbGU7CisJdWludDhfdCBwb2xhcml0eTsKKwljaGFyIHN0YXRlWzMyXTsKKwl1aW50OF90IGNjX3N0YXRlOyAvKiBVU0JDX1BEX0NDXypFbmNvZGVkIGNjIHN0YXRlICovCisJdWludDhfdCBkcF9tb2RlOyAgLyogQ3VycmVudCBEUCBwaW4gbW9kZSAoTU9ERV9EUF9QSU5fW0EtRV0pICovCisJLyogQ0w6MTUwMDk5NCBDdXJyZW50IGNhYmxlIHR5cGUgKi8KKwl1aW50OF90IHJlc2VydmVkX2NhYmxlX3R5cGU7Cit9IF9fZWNfYWxpZ24xOworCisjZGVmaW5lIEVDX0NNRF9VU0JfUERfUE9SVFMgMHgwMTAyCisKKy8qIE1heGltdW0gbnVtYmVyIG9mIFBEIHBvcnRzIG9uIGEgZGV2aWNlLCBudW1fcG9ydHMgd2lsbCBiZSA8PSB0aGlzICovCisjZGVmaW5lIEVDX1VTQl9QRF9NQVhfUE9SVFMgOAorCitzdHJ1Y3QgZWNfcmVzcG9uc2VfdXNiX3BkX3BvcnRzIHsKKwl1aW50OF90IG51bV9wb3J0czsKK30gX19lY19hbGlnbjE7CisKKyNkZWZpbmUgRUNfQ01EX1VTQl9QRF9QT1dFUl9JTkZPIDB4MDEwMworCisjZGVmaW5lIFBEX1BPV0VSX0NIQVJHSU5HX1BPUlQgMHhmZgorc3RydWN0IGVjX3BhcmFtc191c2JfcGRfcG93ZXJfaW5mbyB7CisJdWludDhfdCBwb3J0OworfSBfX2VjX2FsaWduMTsKKworZW51bSB1c2JfY2hnX3R5cGUgeworCVVTQl9DSEdfVFlQRV9OT05FLAorCVVTQl9DSEdfVFlQRV9QRCwKKwlVU0JfQ0hHX1RZUEVfQywKKwlVU0JfQ0hHX1RZUEVfUFJPUFJJRVRBUlksCisJVVNCX0NIR19UWVBFX0JDMTJfRENQLAorCVVTQl9DSEdfVFlQRV9CQzEyX0NEUCwKKwlVU0JfQ0hHX1RZUEVfQkMxMl9TRFAsCisJVVNCX0NIR19UWVBFX09USEVSLAorCVVTQl9DSEdfVFlQRV9WQlVTLAorCVVTQl9DSEdfVFlQRV9VTktOT1dOLAorCVVTQl9DSEdfVFlQRV9ERURJQ0FURUQsCit9OworZW51bSB1c2JfcG93ZXJfcm9sZXMgeworCVVTQl9QRF9QT1JUX1BPV0VSX0RJU0NPTk5FQ1RFRCwKKwlVU0JfUERfUE9SVF9QT1dFUl9TT1VSQ0UsCisJVVNCX1BEX1BPUlRfUE9XRVJfU0lOSywKKwlVU0JfUERfUE9SVF9QT1dFUl9TSU5LX05PVF9DSEFSR0lORywKK307CisKK3N0cnVjdCB1c2JfY2hnX21lYXN1cmVzIHsKKwl1aW50MTZfdCB2b2x0YWdlX21heDsKKwl1aW50MTZfdCB2b2x0YWdlX25vdzsKKwl1aW50MTZfdCBjdXJyZW50X21heDsKKwl1aW50MTZfdCBjdXJyZW50X2xpbTsKK30gX19lY19hbGlnbjI7CisKK3N0cnVjdCBlY19yZXNwb25zZV91c2JfcGRfcG93ZXJfaW5mbyB7CisJdWludDhfdCByb2xlOworCXVpbnQ4X3QgdHlwZTsKKwl1aW50OF90IGR1YWxyb2xlOworCXVpbnQ4X3QgcmVzZXJ2ZWQxOworCXN0cnVjdCB1c2JfY2hnX21lYXN1cmVzIG1lYXM7CisJdWludDMyX3QgbWF4X3Bvd2VyOworfSBfX2VjX2FsaWduNDsKKworCisvKgorICogVGhpcyBjb21tYW5kIHdpbGwgcmV0dXJuIHRoZSBudW1iZXIgb2YgVVNCIFBEIGNoYXJnZSBwb3J0ICsgdGhlIG51bWJlcgorICogb2YgZGVkaWNhdGVkIHBvcnQgcHJlc2VudC4KKyAqIEVDX0NNRF9VU0JfUERfUE9SVFMgZG9lcyBOT1QgaW5jbHVkZSB0aGUgZGVkaWNhdGVkIHBvcnRzCisgKi8KKyNkZWZpbmUgRUNfQ01EX0NIQVJHRV9QT1JUX0NPVU5UIDB4MDEwNQorc3RydWN0IGVjX3Jlc3BvbnNlX2NoYXJnZV9wb3J0X2NvdW50IHsKKwl1aW50OF90IHBvcnRfY291bnQ7Cit9IF9fZWNfYWxpZ24xOworCisvKiBXcml0ZSBVU0ItUEQgZGV2aWNlIEZXICovCisjZGVmaW5lIEVDX0NNRF9VU0JfUERfRldfVVBEQVRFIDB4MDExMAorCitlbnVtIHVzYl9wZF9md191cGRhdGVfY21kcyB7CisJVVNCX1BEX0ZXX1JFQk9PVCwKKwlVU0JfUERfRldfRkxBU0hfRVJBU0UsCisJVVNCX1BEX0ZXX0ZMQVNIX1dSSVRFLAorCVVTQl9QRF9GV19FUkFTRV9TSUcsCit9OworCitzdHJ1Y3QgZWNfcGFyYW1zX3VzYl9wZF9md191cGRhdGUgeworCXVpbnQxNl90IGRldl9pZDsKKwl1aW50OF90IGNtZDsKKwl1aW50OF90IHBvcnQ7CisJdWludDMyX3Qgc2l6ZTsgICAgIC8qIFNpemUgdG8gd3JpdGUgaW4gYnl0ZXMgKi8KKwkvKiBGb2xsb3dlZCBieSBkYXRhIHRvIHdyaXRlICovCit9IF9fZWNfYWxpZ240OworCisvKiBXcml0ZSBVU0ItUEQgQWNjZXNzb3J5IFJXX0hBU0ggdGFibGUgZW50cnkgKi8KKyNkZWZpbmUgRUNfQ01EX1VTQl9QRF9SV19IQVNIX0VOVFJZIDB4MDExMQorLyogUlcgaGFzaCBpcyBmaXJzdCAyMCBieXRlcyBvZiBTSEEtMjU2IG9mIFJXIHNlY3Rpb24gKi8KKyNkZWZpbmUgUERfUldfSEFTSF9TSVpFIDIwCitzdHJ1Y3QgZWNfcGFyYW1zX3VzYl9wZF9yd19oYXNoX2VudHJ5IHsKKwl1aW50MTZfdCBkZXZfaWQ7CisJdWludDhfdCBkZXZfcndfaGFzaFtQRF9SV19IQVNIX1NJWkVdOworCXVpbnQ4X3QgcmVzZXJ2ZWQ7ICAgICAgICAvKgorCQkJCSAgKiBGb3IgYWxpZ25tZW50IG9mIGN1cnJlbnRfaW1hZ2UKKwkJCQkgICogVE9ETyhyc3BhbmdsZXIpIGJ1dCBpdCdzIG5vdCBhbGlnbmVkIQorCQkJCSAgKiBTaG91bGQgaGF2ZSBiZWVuIHJlc2VydmVkWzJdLgorCQkJCSAgKi8KKwl1aW50MzJfdCBjdXJyZW50X2ltYWdlOyAgLyogT25lIG9mIGVjX2N1cnJlbnRfaW1hZ2UgKi8KK30gX19lY19hbGlnbjE7CisKKy8qIFJlYWQgVVNCLVBEIEFjY2Vzc29yeSBpbmZvICovCisjZGVmaW5lIEVDX0NNRF9VU0JfUERfREVWX0lORk8gMHgwMTEyCisKK3N0cnVjdCBlY19wYXJhbXNfdXNiX3BkX2luZm9fcmVxdWVzdCB7CisJdWludDhfdCBwb3J0OworfSBfX2VjX2FsaWduMTsKKworLyogUmVhZCBVU0ItUEQgRGV2aWNlIGRpc2NvdmVyeSBpbmZvICovCisjZGVmaW5lIEVDX0NNRF9VU0JfUERfRElTQ09WRVJZIDB4MDExMworc3RydWN0IGVjX3BhcmFtc191c2JfcGRfZGlzY292ZXJ5X2VudHJ5IHsKKwl1aW50MTZfdCB2aWQ7ICAvKiBVU0ItSUYgVklEICovCisJdWludDE2X3QgcGlkOyAgLyogVVNCLUlGIFBJRCAqLworCXVpbnQ4X3QgcHR5cGU7IC8qIHByb2R1Y3QgdHlwZSAoaHViLHBlcmlwaCxjYWJsZSxhbWEpICovCit9IF9fZWNfYWxpZ25fc2l6ZTE7CisKKy8qIE92ZXJyaWRlIGRlZmF1bHQgY2hhcmdlIGJlaGF2aW9yICovCisjZGVmaW5lIEVDX0NNRF9QRF9DSEFSR0VfUE9SVF9PVkVSUklERSAweDAxMTQKKworLyogTmVnYXRpdmUgcG9ydCBwYXJhbWV0ZXJzIGhhdmUgc3BlY2lhbCBtZWFuaW5nICovCitlbnVtIHVzYl9wZF9vdmVycmlkZV9wb3J0cyB7CisJT1ZFUlJJREVfRE9OVF9DSEFSR0UgPSAtMiwKKwlPVkVSUklERV9PRkYgPSAtMSwKKwkvKiBbMCwgQ09ORklHX1VTQl9QRF9QT1JUX0NPVU5UKTogUG9ydCMgKi8KK307CisKK3N0cnVjdCBlY19wYXJhbXNfY2hhcmdlX3BvcnRfb3ZlcnJpZGUgeworCWludDE2X3Qgb3ZlcnJpZGVfcG9ydDsgLyogT3ZlcnJpZGUgcG9ydCMgKi8KK30gX19lY19hbGlnbjI7CisKKy8qCisgKiBSZWFkIChhbmQgZGVsZXRlKSBvbmUgZW50cnkgb2YgUEQgZXZlbnQgbG9nLgorICogVE9ETyhjcmJ1Zy5jb20vNzUxNzQyKTogTWFrZSB0aGlzIGhvc3QgY29tbWFuZCBtb3JlIGdlbmVyaWMgdG8gYWNjb21tb2RhdGUKKyAqIGZ1dHVyZSBub24tUEQgbG9ncyB0aGF0IHVzZSB0aGUgc2FtZSBpbnRlcm5hbCBFQyBldmVudF9sb2cuCisgKi8KKyNkZWZpbmUgRUNfQ01EX1BEX0dFVF9MT0dfRU5UUlkgMHgwMTE1CisKK3N0cnVjdCBlY19yZXNwb25zZV9wZF9sb2cgeworCXVpbnQzMl90IHRpbWVzdGFtcDsgLyogcmVsYXRpdmUgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyAqLworCXVpbnQ4X3QgdHlwZTsgICAgICAgLyogZXZlbnQgdHlwZSA6IHNlZSBQRF9FVkVOVF94eCBiZWxvdyAqLworCXVpbnQ4X3Qgc2l6ZV9wb3J0OyAgLyogWzc6NV0gcG9ydCBudW1iZXIgWzQ6MF0gcGF5bG9hZCBzaXplIGluIGJ5dGVzICovCisJdWludDE2X3QgZGF0YTsgICAgICAvKiB0eXBlLWRlZmluZWQgZGF0YSBwYXlsb2FkICovCisJdWludDhfdCBwYXlsb2FkWzBdOyAvKiBvcHRpb25hbCBhZGRpdGlvbmFsIGRhdGEgcGF5bG9hZDogMC4uMTYgYnl0ZXMgKi8KK30gX19lY19hbGlnbjQ7CisKKy8qIFRoZSB0aW1lc3RhbXAgaXMgdGhlIG1pY3Jvc2Vjb25kIGNvdW50ZXIgc2hpZnRlZCB0byBnZXQgYWJvdXQgYSBtcy4gKi8KKyNkZWZpbmUgUERfTE9HX1RJTUVTVEFNUF9TSElGVCAxMCAvKiAxIExTQiA9IDEwMjR1cyAqLworCisjZGVmaW5lIFBEX0xPR19TSVpFX01BU0sgIDB4MWYKKyNkZWZpbmUgUERfTE9HX1BPUlRfTUFTSyAgMHhlMAorI2RlZmluZSBQRF9MT0dfUE9SVF9TSElGVCAgICA1CisjZGVmaW5lIFBEX0xPR19QT1JUX1NJWkUocG9ydCwgc2l6ZSkgKCgocG9ydCkgPDwgUERfTE9HX1BPUlRfU0hJRlQpIHwgXAorCQkJCSAgICAgICgoc2l6ZSkgJiBQRF9MT0dfU0laRV9NQVNLKSkKKyNkZWZpbmUgUERfTE9HX1BPUlQoc2l6ZV9wb3J0KSAoKHNpemVfcG9ydCkgPj4gUERfTE9HX1BPUlRfU0hJRlQpCisjZGVmaW5lIFBEX0xPR19TSVpFKHNpemVfcG9ydCkgKChzaXplX3BvcnQpICYgUERfTE9HX1NJWkVfTUFTSykKKworLyogUEQgZXZlbnQgbG9nIDogZW50cnkgdHlwZXMgKi8KKy8qIFBEIE1DVSBldmVudHMgKi8KKyNkZWZpbmUgUERfRVZFTlRfTUNVX0JBU0UgICAgICAgMHgwMAorI2RlZmluZSBQRF9FVkVOVF9NQ1VfQ0hBUkdFICAgICAgICAgICAgIChQRF9FVkVOVF9NQ1VfQkFTRSswKQorI2RlZmluZSBQRF9FVkVOVF9NQ1VfQ09OTkVDVCAgICAgICAgICAgIChQRF9FVkVOVF9NQ1VfQkFTRSsxKQorLyogUmVzZXJ2ZWQgZm9yIGN1c3RvbSBib2FyZCBldmVudCAqLworI2RlZmluZSBQRF9FVkVOVF9NQ1VfQk9BUkRfQ1VTVE9NICAgICAgIChQRF9FVkVOVF9NQ1VfQkFTRSsyKQorLyogUEQgZ2VuZXJpYyBhY2Nlc3NvcnkgZXZlbnRzICovCisjZGVmaW5lIFBEX0VWRU5UX0FDQ19CQVNFICAgICAgIDB4MjAKKyNkZWZpbmUgUERfRVZFTlRfQUNDX1JXX0ZBSUwgICAoUERfRVZFTlRfQUNDX0JBU0UrMCkKKyNkZWZpbmUgUERfRVZFTlRfQUNDX1JXX0VSQVNFICAoUERfRVZFTlRfQUNDX0JBU0UrMSkKKy8qIFBEIHBvd2VyIHN1cHBseSBldmVudHMgKi8KKyNkZWZpbmUgUERfRVZFTlRfUFNfQkFTRSAgICAgICAgMHg0MAorI2RlZmluZSBQRF9FVkVOVF9QU19GQVVMVCAgICAgIChQRF9FVkVOVF9QU19CQVNFKzApCisvKiBQRCB2aWRlbyBkb25nbGVzIGV2ZW50cyAqLworI2RlZmluZSBQRF9FVkVOVF9WSURFT19CQVNFICAgICAweDYwCisjZGVmaW5lIFBEX0VWRU5UX1ZJREVPX0RQX01PREUgKFBEX0VWRU5UX1ZJREVPX0JBU0UrMCkKKyNkZWZpbmUgUERfRVZFTlRfVklERU9fQ09ERUMgICAoUERfRVZFTlRfVklERU9fQkFTRSsxKQorLyogUmV0dXJuZWQgaW4gdGhlICJ0eXBlIiBmaWVsZCwgd2hlbiB0aGVyZSBpcyBubyBlbnRyeSBhdmFpbGFibGUgKi8KKyNkZWZpbmUgUERfRVZFTlRfTk9fRU5UUlkgICAgICAgMHhmZgorCisvKgorICogUERfRVZFTlRfTUNVX0NIQVJHRSBldmVudCBkZWZpbml0aW9uIDoKKyAqIHRoZSBwYXlsb2FkIGlzICJzdHJ1Y3QgdXNiX2NoZ19tZWFzdXJlcyIKKyAqIHRoZSBkYXRhIGZpZWxkIGNvbnRhaW5zIHRoZSBwb3J0IHN0YXRlIGZsYWdzIGFzIGRlZmluZWQgYmVsb3cgOgorICovCisvKiBQb3J0IHBhcnRuZXIgaXMgYSBkdWFsIHJvbGUgZGV2aWNlICovCisjZGVmaW5lIENIQVJHRV9GTEFHU19EVUFMX1JPTEUgICAgICAgICBCSVQoMTUpCisvKiBQb3J0IGlzIHRoZSBwZW5kaW5nIG92ZXJyaWRlIHBvcnQgKi8KKyNkZWZpbmUgQ0hBUkdFX0ZMQUdTX0RFTEFZRURfT1ZFUlJJREUgIEJJVCgxNCkKKy8qIFBvcnQgaXMgdGhlIG92ZXJyaWRlIHBvcnQgKi8KKyNkZWZpbmUgQ0hBUkdFX0ZMQUdTX09WRVJSSURFICAgICAgICAgIEJJVCgxMykKKy8qIENoYXJnZXIgdHlwZSAqLworI2RlZmluZSBDSEFSR0VfRkxBR1NfVFlQRV9TSElGVCAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgQ0hBUkdFX0ZMQUdTX1RZUEVfTUFTSyAgICAgICAoMHhmIDw8IENIQVJHRV9GTEFHU19UWVBFX1NISUZUKQorLyogUG93ZXIgZGVsaXZlcnkgcm9sZSAqLworI2RlZmluZSBDSEFSR0VfRkxBR1NfUk9MRV9NQVNLICAgICAgICAgKDcgPDwgIDApCisKKy8qCisgKiBQRF9FVkVOVF9QU19GQVVMVCBkYXRhIGZpZWxkIGZsYWdzIGRlZmluaXRpb24gOgorICovCisjZGVmaW5lIFBTX0ZBVUxUX09DUCAgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBQU19GQVVMVF9GQVNUX09DUCAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgUFNfRkFVTFRfT1ZQICAgICAgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIFBTX0ZBVUxUX0RJU0NIICAgICAgICAgICAgICAgICAgICAgICAgNAorCisvKgorICogUERfRVZFTlRfVklERU9fQ09ERUMgcGF5bG9hZCBpcyAic3RydWN0IG1jZHBfaW5mbyIuCisgKi8KK3N0cnVjdCBtY2RwX3ZlcnNpb24geworCXVpbnQ4X3QgbWFqb3I7CisJdWludDhfdCBtaW5vcjsKKwl1aW50MTZfdCBidWlsZDsKK30gX19lY19hbGlnbjQ7CisKK3N0cnVjdCBtY2RwX2luZm8geworCXVpbnQ4X3QgZmFtaWx5WzJdOworCXVpbnQ4X3QgY2hpcGlkWzJdOworCXN0cnVjdCBtY2RwX3ZlcnNpb24gaXJvbTsKKwlzdHJ1Y3QgbWNkcF92ZXJzaW9uIGZ3OworfSBfX2VjX2FsaWduNDsKKworLyogc3RydWN0IG1jZHBfaW5mbyBmaWVsZCBkZWNvZGluZyAqLworI2RlZmluZSBNQ0RQX0NISVBJRChjaGlwaWQpICgoY2hpcGlkWzBdIDw8IDgpIHwgY2hpcGlkWzFdKQorI2RlZmluZSBNQ0RQX0ZBTUlMWShmYW1pbHkpICgoZmFtaWx5WzBdIDw8IDgpIHwgZmFtaWx5WzFdKQorCisvKiBHZXQvU2V0IFVTQi1QRCBBbHRlcm5hdGUgbW9kZSBpbmZvICovCisjZGVmaW5lIEVDX0NNRF9VU0JfUERfR0VUX0FNT0RFIDB4MDExNgorc3RydWN0IGVjX3BhcmFtc191c2JfcGRfZ2V0X21vZGVfcmVxdWVzdCB7CisJdWludDE2X3Qgc3ZpZF9pZHg7IC8qIFNWSUQgaW5kZXggdG8gZ2V0ICovCisJdWludDhfdCBwb3J0OyAgICAgIC8qIHBvcnQgKi8KK30gX19lY19hbGlnbl9zaXplMTsKKworc3RydWN0IGVjX3BhcmFtc191c2JfcGRfZ2V0X21vZGVfcmVzcG9uc2UgeworCXVpbnQxNl90IHN2aWQ7ICAgLyogU1ZJRCAqLworCXVpbnQxNl90IG9wb3M7ICAgIC8qIE9iamVjdCBQb3NpdGlvbiAqLworCXVpbnQzMl90IHZkb1s2XTsgLyogTW9kZSBWRE9zICovCit9IF9fZWNfYWxpZ240OworCisjZGVmaW5lIEVDX0NNRF9VU0JfUERfU0VUX0FNT0RFIDB4MDExNworCitlbnVtIHBkX21vZGVfY21kIHsKKwlQRF9FWElUX01PREUgPSAwLAorCVBEX0VOVEVSX01PREUgPSAxLAorCS8qIE5vdCBhIGNvbW1hbmQuICBEbyBOT1QgcmVtb3ZlLiAqLworCVBEX01PREVfQ01EX0NPVU5ULAorfTsKKworc3RydWN0IGVjX3BhcmFtc191c2JfcGRfc2V0X21vZGVfcmVxdWVzdCB7CisJdWludDMyX3QgY21kOyAgLyogZW51bSBwZF9tb2RlX2NtZCAqLworCXVpbnQxNl90IHN2aWQ7IC8qIFNWSUQgdG8gc2V0ICovCisJdWludDhfdCBvcG9zOyAgLyogT2JqZWN0IFBvc2l0aW9uICovCisJdWludDhfdCBwb3J0OyAgLyogcG9ydCAqLworfSBfX2VjX2FsaWduNDsKKworLyogQXNrIHRoZSBQRCBNQ1UgdG8gcmVjb3JkIGEgbG9nIG9mIGEgcmVxdWVzdGVkIHR5cGUgKi8KKyNkZWZpbmUgRUNfQ01EX1BEX1dSSVRFX0xPR19FTlRSWSAweDAxMTgKKworc3RydWN0IGVjX3BhcmFtc19wZF93cml0ZV9sb2dfZW50cnkgeworCXVpbnQ4X3QgdHlwZTsgLyogZXZlbnQgdHlwZSA6IHNlZSBQRF9FVkVOVF94eCBhYm92ZSAqLworCXVpbnQ4X3QgcG9ydDsgLyogcG9ydCMsIG9yIDAgZm9yIGV2ZW50cyB1bnJlbGF0ZWQgdG8gYSBnaXZlbiBwb3J0ICovCit9IF9fZWNfYWxpZ24xOworCisKKy8qIENvbnRyb2wgVVNCLVBEIGNoaXAgKi8KKyNkZWZpbmUgRUNfQ01EX1BEX0NPTlRST0wgMHgwMTE5CisKK2VudW0gZWNfcGRfY29udHJvbF9jbWQgeworCVBEX1NVU1BFTkQgPSAwLCAgICAgIC8qIFN1c3BlbmQgdGhlIFBEIGNoaXAgKEVDOiBzdG9wIHRhbGtpbmcgdG8gUEQpICovCisJUERfUkVTVU1FLCAgICAgICAgICAgLyogUmVzdW1lIHRoZSBQRCBjaGlwIChFQzogc3RhcnQgdGFsa2luZyB0byBQRCkgKi8KKwlQRF9SRVNFVCwgICAgICAgICAgICAvKiBGb3JjZSByZXNldCB0aGUgUEQgY2hpcCAqLworCVBEX0NPTlRST0xfRElTQUJMRSwgIC8qIERpc2FibGUgZnVydGhlciBjYWxscyB0byB0aGlzIGNvbW1hbmQgKi8KKwlQRF9DSElQX09OLCAgICAgICAgICAvKiBQb3dlciBvbiB0aGUgUEQgY2hpcCAqLworfTsKKworc3RydWN0IGVjX3BhcmFtc19wZF9jb250cm9sIHsKKwl1aW50OF90IGNoaXA7ICAgICAgICAgLyogY2hpcCBpZCAqLworCXVpbnQ4X3Qgc3ViY21kOworfSBfX2VjX2FsaWduMTsKKworLyogR2V0IGluZm8gYWJvdXQgVVNCLUMgU1MgbXV4ZXMgKi8KKyNkZWZpbmUgRUNfQ01EX1VTQl9QRF9NVVhfSU5GTyAweDAxMUEKKworc3RydWN0IGVjX3BhcmFtc191c2JfcGRfbXV4X2luZm8geworCXVpbnQ4X3QgcG9ydDsgLyogVVNCLUMgcG9ydCBudW1iZXIgKi8KK30gX19lY19hbGlnbjE7CisKKy8qIEZsYWdzIHJlcHJlc2VudGluZyBtdXggc3RhdGUgKi8KKyNkZWZpbmUgVVNCX1BEX01VWF9VU0JfRU5BQkxFRCAgICAgICBCSVQoMCkgLyogVVNCIGNvbm5lY3RlZCAqLworI2RlZmluZSBVU0JfUERfTVVYX0RQX0VOQUJMRUQgICAgICAgIEJJVCgxKSAvKiBEUCBjb25uZWN0ZWQgKi8KKyNkZWZpbmUgVVNCX1BEX01VWF9QT0xBUklUWV9JTlZFUlRFRCBCSVQoMikgLyogQ0MgbGluZSBQb2xhcml0eSBpbnZlcnRlZCAqLworI2RlZmluZSBVU0JfUERfTVVYX0hQRF9JUlEgICAgICAgICAgIEJJVCgzKSAvKiBIUEQgSVJRIGlzIGFzc2VydGVkICovCisjZGVmaW5lIFVTQl9QRF9NVVhfSFBEX0xWTCAgICAgICAgICAgQklUKDQpIC8qIEhQRCBsZXZlbCBpcyBhc3NlcnRlZCAqLworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfdXNiX3BkX211eF9pbmZvIHsKKwl1aW50OF90IGZsYWdzOyAvKiBVU0JfUERfTVVYXyotZW5jb2RlZCBVU0IgbXV4IHN0YXRlICovCit9IF9fZWNfYWxpZ24xOworCisjZGVmaW5lIEVDX0NNRF9QRF9DSElQX0lORk8JCTB4MDExQgorCitzdHJ1Y3QgZWNfcGFyYW1zX3BkX2NoaXBfaW5mbyB7CisJdWludDhfdCBwb3J0OwkvKiBVU0ItQyBwb3J0IG51bWJlciAqLworCXVpbnQ4X3QgcmVuZXc7CS8qIEZvcmNlIHJlbmV3YWwgKi8KK30gX19lY19hbGlnbjE7CisKK3N0cnVjdCBlY19yZXNwb25zZV9wZF9jaGlwX2luZm8geworCXVpbnQxNl90IHZlbmRvcl9pZDsKKwl1aW50MTZfdCBwcm9kdWN0X2lkOworCXVpbnQxNl90IGRldmljZV9pZDsKKwl1bmlvbiB7CisJCXVpbnQ4X3QgZndfdmVyc2lvbl9zdHJpbmdbOF07CisJCXVpbnQ2NF90IGZ3X3ZlcnNpb25fbnVtYmVyOworCX07Cit9IF9fZWNfYWxpZ24yOworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfcGRfY2hpcF9pbmZvX3YxIHsKKwl1aW50MTZfdCB2ZW5kb3JfaWQ7CisJdWludDE2X3QgcHJvZHVjdF9pZDsKKwl1aW50MTZfdCBkZXZpY2VfaWQ7CisJdW5pb24geworCQl1aW50OF90IGZ3X3ZlcnNpb25fc3RyaW5nWzhdOworCQl1aW50NjRfdCBmd192ZXJzaW9uX251bWJlcjsKKwl9OworCXVuaW9uIHsKKwkJdWludDhfdCBtaW5fcmVxX2Z3X3ZlcnNpb25fc3RyaW5nWzhdOworCQl1aW50NjRfdCBtaW5fcmVxX2Z3X3ZlcnNpb25fbnVtYmVyOworCX07Cit9IF9fZWNfYWxpZ24yOworCisvKiBSdW4gUlcgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBhbmQgZ2V0IHN0YXR1cyAqLworI2RlZmluZSBFQ19DTURfUldTSUdfQ0hFQ0tfU1RBVFVTCTB4MDExQworCitzdHJ1Y3QgZWNfcmVzcG9uc2VfcndzaWdfY2hlY2tfc3RhdHVzIHsKKwl1aW50MzJfdCBzdGF0dXM7Cit9IF9fZWNfYWxpZ240OworCisvKiBGb3IgY29udHJvbGxpbmcgUldTSUcgdGFzayAqLworI2RlZmluZSBFQ19DTURfUldTSUdfQUNUSU9OCTB4MDExRAorCitlbnVtIHJ3c2lnX2FjdGlvbiB7CisJUldTSUdfQUNUSU9OX0FCT1JUID0gMCwJCS8qIEFib3J0IFJXU0lHIGFuZCBwcmV2ZW50IGp1bXBpbmcgKi8KKwlSV1NJR19BQ1RJT05fQ09OVElOVUUgPSAxLAkvKiBKdW1wIHRvIFJXIGltbWVkaWF0ZWx5ICovCit9OworCitzdHJ1Y3QgZWNfcGFyYW1zX3J3c2lnX2FjdGlvbiB7CisJdWludDMyX3QgYWN0aW9uOworfSBfX2VjX2FsaWduNDsKKworLyogUnVuIHZlcmlmaWNhdGlvbiBvbiBhIHNsb3QgKi8KKyNkZWZpbmUgRUNfQ01EX0VGU19WRVJJRlkJMHgwMTFFCisKK3N0cnVjdCBlY19wYXJhbXNfZWZzX3ZlcmlmeSB7CisJdWludDhfdCByZWdpb247CQkvKiBlbnVtIGVjX2ZsYXNoX3JlZ2lvbiAqLworfSBfX2VjX2FsaWduMTsKKworLyoKKyAqIFJldHJpZXZlIGluZm8gZnJvbSBDcm9zIEJvYXJkIEluZm8gc3RvcmUuIFJlc3BvbnNlIGlzIGJhc2VkIG9uIHRoZSBkYXRhCisgKiB0eXBlLiBJbnRlZ2VycyByZXR1cm4gYSB1aW50MzIuIFN0cmluZ3MgcmV0dXJuIGEgc3RyaW5nLCB1c2luZyB0aGUgcmVzcG9uc2UKKyAqIHNpemUgdG8gZGV0ZXJtaW5lIGhvdyBiaWcgaXQgaXMuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0dFVF9DUk9TX0JPQVJEX0lORk8JMHgwMTFGCisvKgorICogV3JpdGUgaW5mbyBpbnRvIENyb3MgQm9hcmQgSW5mbyBvbiBFRVBST00uIFdyaXRlIGZhaWxzIGlmIHRoZSBib2FyZCBoYXMKKyAqIGhhcmR3YXJlIHdyaXRlLXByb3RlY3QgZW5hYmxlZC4KKyAqLworI2RlZmluZSBFQ19DTURfU0VUX0NST1NfQk9BUkRfSU5GTwkweDAxMjAKKworZW51bSBjYmlfZGF0YV90YWcgeworCUNCSV9UQUdfQk9BUkRfVkVSU0lPTiA9IDAsIC8qIHVpbnQzMl90IG9yIHNtYWxsZXIgKi8KKwlDQklfVEFHX09FTV9JRCA9IDEsICAgICAgICAvKiB1aW50MzJfdCBvciBzbWFsbGVyICovCisJQ0JJX1RBR19TS1VfSUQgPSAyLCAgICAgICAgLyogdWludDMyX3Qgb3Igc21hbGxlciAqLworCUNCSV9UQUdfRFJBTV9QQVJUX05VTSA9IDMsIC8qIHZhcmlhYmxlIGxlbmd0aCBhc2NpaSwgbnVsIHRlcm1pbmF0ZWQuICovCisJQ0JJX1RBR19PRU1fTkFNRSA9IDQsICAgICAgLyogdmFyaWFibGUgbGVuZ3RoIGFzY2lpLCBudWwgdGVybWluYXRlZC4gKi8KKwlDQklfVEFHX01PREVMX0lEID0gNSwgICAgICAvKiB1aW50MzJfdCBvciBzbWFsbGVyICovCisJQ0JJX1RBR19DT1VOVCwKK307CisKKy8qCisgKiBGbGFncyB0byBjb250cm9sIHJlYWQgb3BlcmF0aW9uCisgKgorICogUkVMT0FEOiAgSW52YWxpZGF0ZSBjYWNoZSBhbmQgcmVhZCBkYXRhIGZyb20gRUVQUk9NLiBVc2VmdWwgdG8gdmVyaWZ5CisgKiAgICAgICAgICB3cml0ZSB3YXMgc3VjY2Vzc2Z1bCB3aXRob3V0IHJlYm9vdC4KKyAqLworI2RlZmluZSBDQklfR0VUX1JFTE9BRAkJQklUKDApCisKK3N0cnVjdCBlY19wYXJhbXNfZ2V0X2NiaSB7CisJdWludDMyX3QgdGFnOwkJLyogZW51bSBjYmlfZGF0YV90YWcgKi8KKwl1aW50MzJfdCBmbGFnOwkJLyogQ0JJX0dFVF8qICovCit9IF9fZWNfYWxpZ240OworCisvKgorICogRmxhZ3MgdG8gY29udHJvbCB3cml0ZSBiZWhhdmlvci4KKyAqCisgKiBOT19TWU5DOiBNYWtlcyBFQyB1cGRhdGUgZGF0YSBpbiBSQU0gYnV0IHNraXAgd3JpdGluZyB0byBFRVBST00uIEl0J3MKKyAqICAgICAgICAgIHVzZWZ1bCB3aGVuIHdyaXRpbmcgbXVsdGlwbGUgZmllbGRzIGluIGEgcm93LgorICogSU5JVDogICAgTmVlZCB0byBiZSBzZXQgd2hlbiBjcmVhdGluZyBhIG5ldyBDQkkgZnJvbSBzY3JhdGNoLiBBbGwgZmllbGRzCisgKiAgICAgICAgICB3aWxsIGJlIGluaXRpYWxpemVkIHRvIHplcm8gZmlyc3QuCisgKi8KKyNkZWZpbmUgQ0JJX1NFVF9OT19TWU5DCQlCSVQoMCkKKyNkZWZpbmUgQ0JJX1NFVF9JTklUCQlCSVQoMSkKKworc3RydWN0IGVjX3BhcmFtc19zZXRfY2JpIHsKKwl1aW50MzJfdCB0YWc7CQkvKiBlbnVtIGNiaV9kYXRhX3RhZyAqLworCXVpbnQzMl90IGZsYWc7CQkvKiBDQklfU0VUXyogKi8KKwl1aW50MzJfdCBzaXplOwkJLyogRGF0YSBzaXplICovCisJdWludDhfdCBkYXRhW107CQkvKiBGb3Igc3RyaW5nIGFuZCByYXcgZGF0YSAqLworfSBfX2VjX2FsaWduMTsKKworLyoKKyAqIEluZm9ybWF0aW9uIGFib3V0IHJlc2V0cyBvZiB0aGUgQVAgYnkgdGhlIEVDIGFuZCB0aGUgRUMncyBvd24gdXB0aW1lLgorICovCisjZGVmaW5lIEVDX0NNRF9HRVRfVVBUSU1FX0lORk8gMHgwMTIxCisKK3N0cnVjdCBlY19yZXNwb25zZV91cHRpbWVfaW5mbyB7CisJLyoKKwkgKiBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIHRoZSBsYXN0IEVDIGJvb3QuIFN5c2p1bXAgcmVzZXRzCisJICogdHlwaWNhbGx5IGRvIG5vdCByZXN0YXJ0IHRoZSBFQydzIHRpbWVfc2luY2VfYm9vdCBlcG9jaC4KKwkgKgorCSAqIFdBUk5JTkc6IFRoZSBFQydzIHNlbnNlIG9mIHRpbWUgaXMgbXVjaCBsZXNzIGFjY3VyYXRlIHRoYW4gdGhlIEFQJ3MKKwkgKiBzZW5zZSBvZiB0aW1lLCBpbiBib3RoIHBoYXNlIGFuZCBmcmVxdWVuY3kuICBUaGlzIHRpbWViYXNlIGlzIHNpbWlsYXIKKwkgKiB0byBDTE9DS19NT05PVE9OSUNfUkFXLCBidXQgd2l0aCAxJSBvciBtb3JlIGZyZXF1ZW5jeSBlcnJvci4KKwkgKi8KKwl1aW50MzJfdCB0aW1lX3NpbmNlX2VjX2Jvb3RfbXM7CisKKwkvKgorCSAqIE51bWJlciBvZiB0aW1lcyB0aGUgQVAgd2FzIHJlc2V0IGJ5IHRoZSBFQyBzaW5jZSB0aGUgbGFzdCBFQyBib290LgorCSAqIE5vdGUgdGhhdCB0aGUgQVAgbWF5IGJlIGhlbGQgaW4gcmVzZXQgYnkgdGhlIEVDIGR1cmluZyB0aGUgaW5pdGlhbAorCSAqIGJvb3Qgc2VxdWVuY2UsIHN1Y2ggdGhhdCB0aGUgdmVyeSBmaXJzdCBBUCBib290IG1heSBjb3VudCBhcyBtb3JlCisJICogdGhhbiBvbmUgaGVyZS4KKwkgKi8KKwl1aW50MzJfdCBhcF9yZXNldHNfc2luY2VfZWNfYm9vdDsKKworCS8qCisJICogVGhlIHNldCBvZiBmbGFncyB3aGljaCBkZXNjcmliZSB0aGUgRUMncyBtb3N0IHJlY2VudCByZXNldC4gIFNlZQorCSAqIGluY2x1ZGUvc3lzdGVtLmggUkVTRVRfRkxBR18qIGZvciBkZXRhaWxzLgorCSAqLworCXVpbnQzMl90IGVjX3Jlc2V0X2ZsYWdzOworCisJLyogRW1wdHkgbG9nIGVudHJpZXMgaGF2ZSBib3RoIHRoZSBjYXVzZSBhbmQgdGltZXN0YW1wIHNldCB0byB6ZXJvLiAqLworCXN0cnVjdCBhcF9yZXNldF9sb2dfZW50cnkgeworCQkvKgorCQkgKiBTZWUgaW5jbHVkZS9jaGlwc2V0Lmg6IGVudW0gY2hpcHNldF97cmVzZXQsc2h1dGRvd259X3JlYXNvbgorCQkgKiBmb3IgZGV0YWlscy4KKwkJICovCisJCXVpbnQxNl90IHJlc2V0X2NhdXNlOworCisJCS8qIFJlc2VydmVkIGZvciBwcm90b2NvbCBncm93dGguICovCisJCXVpbnQxNl90IHJlc2VydmVkOworCisJCS8qCisJCSAqIFRoZSB0aW1lIG9mIHRoZSByZXNldCdzIGFzc2VydGlvbiwgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIHRoZQorCQkgKiBsYXN0IEVDIGJvb3QsIGluIHRoZSBzYW1lIGVwb2NoIGFzIHRpbWVfc2luY2VfZWNfYm9vdF9tcy4KKwkJICogU2V0IHRvIHplcm8gaWYgdGhlIGxvZyBlbnRyeSBpcyBlbXB0eS4KKwkJICovCisJCXVpbnQzMl90IHJlc2V0X3RpbWVfbXM7CisJfSByZWNlbnRfYXBfcmVzZXRbNF07Cit9IF9fZWNfYWxpZ240OworCisvKgorICogQWRkIGVudHJvcHkgdG8gdGhlIGRldmljZSBzZWNyZXQgKHN0b3JlZCBpbiB0aGUgcm9sbGJhY2sgcmVnaW9uKS4KKyAqCisgKiBEZXBlbmRpbmcgb24gdGhlIGNoaXAsIHRoZSBvcGVyYXRpb24gbWF5IHRha2UgYSBsb25nIHRpbWUgKGUuZy4gdG8gZXJhc2UKKyAqIGZsYXNoKSwgc28gdGhlIGNvbW1hbmRzIGFyZSBhc3luY2hyb25vdXMuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0FERF9FTlRST1BZCTB4MDEyMgorCitlbnVtIGFkZF9lbnRyb3B5X2FjdGlvbiB7CisJLyogQWRkIGVudHJvcHkgdG8gdGhlIGN1cnJlbnQgc2VjcmV0LiAqLworCUFERF9FTlRST1BZX0FTWU5DID0gMCwKKwkvKgorCSAqIEFkZCBlbnRyb3B5LCBhbmQgYWxzbyBtYWtlIHN1cmUgdGhhdCB0aGUgcHJldmlvdXMgc2VjcmV0IGlzIGVyYXNlZC4KKwkgKiAodGhpcyBjYW4gYmUgaW1wbGVtZW50ZWQgYnkgYWRkaW5nIGVudHJvcHkgbXVsdGlwbGUgdGltZXMgdW50aWwKKwkgKiBhbGwgcm9sYmFjayBibG9ja3MgaGF2ZSBiZWVuIG92ZXJ3cml0dGVuKS4KKwkgKi8KKwlBRERfRU5UUk9QWV9SRVNFVF9BU1lOQyA9IDEsCisJLyogUmVhZCBiYWNrIHJlc3VsdCBmcm9tIHRoZSBwcmV2aW91cyBvcGVyYXRpb24uICovCisJQUREX0VOVFJPUFlfR0VUX1JFU1VMVCA9IDIsCit9OworCitzdHJ1Y3QgZWNfcGFyYW1zX3JvbGxiYWNrX2FkZF9lbnRyb3B5IHsKKwl1aW50OF90IGFjdGlvbjsKK30gX19lY19hbGlnbjE7CisKKy8qCisgKiBQZXJmb3JtIGEgc2luZ2xlIHJlYWQgb2YgYSBnaXZlbiBBREMgY2hhbm5lbC4KKyAqLworI2RlZmluZSBFQ19DTURfQURDX1JFQUQJCTB4MDEyMworCitzdHJ1Y3QgZWNfcGFyYW1zX2FkY19yZWFkIHsKKwl1aW50OF90IGFkY19jaGFubmVsOworfSBfX2VjX2FsaWduMTsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2FkY19yZWFkIHsKKwlpbnQzMl90IGFkY192YWx1ZTsKK30gX19lY19hbGlnbjQ7CisKKy8qCisgKiBSZWFkIGJhY2sgcm9sbGJhY2sgaW5mbworICovCisjZGVmaW5lIEVDX0NNRF9ST0xMQkFDS19JTkZPCQkweDAxMjQKKworc3RydWN0IGVjX3Jlc3BvbnNlX3JvbGxiYWNrX2luZm8geworCWludDMyX3QgaWQ7IC8qIEluY3JlbWVudGluZyBudW1iZXIgdG8gaW5kaWNhdGUgd2hpY2ggcmVnaW9uIHRvIHVzZS4gKi8KKwlpbnQzMl90IHJvbGxiYWNrX21pbl92ZXJzaW9uOworCWludDMyX3Qgcndfcm9sbGJhY2tfdmVyc2lvbjsKK30gX19lY19hbGlnbjQ7CisKKworLyogSXNzdWUgQVAgcmVzZXQgKi8KKyNkZWZpbmUgRUNfQ01EX0FQX1JFU0VUIDB4MDEyNQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBUaGUgY29tbWFuZCByYW5nZSAweDIwMC0weDJGRiBpcyByZXNlcnZlZCBmb3IgUm90b3IuICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiBSZXNlcnZlIGEgcmFuZ2Ugb2YgaG9zdCBjb21tYW5kcyBmb3IgdGhlIENSNTEgZmlybXdhcmUuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0NSNTFfQkFTRSAweDAzMDAKKyNkZWZpbmUgRUNfQ01EX0NSNTFfTEFTVCAweDAzRkYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRmluZ2VycHJpbnQgTUNVIGNvbW1hbmRzOiByYW5nZSAweDA0MDAtMHgwNDB4ICovCisKKy8qIEZpbmdlcnByaW50IFNQSSBzZW5zb3IgcGFzc3RocnUgY29tbWFuZDogcHJvdG90eXBpbmcgT05MWSAqLworI2RlZmluZSBFQ19DTURfRlBfUEFTU1RIUlUgMHgwNDAwCisKKyNkZWZpbmUgRUNfRlBfRkxBR19OT1RfQ09NUExFVEUgMHgxCisKK3N0cnVjdCBlY19wYXJhbXNfZnBfcGFzc3RocnUgeworCXVpbnQxNl90IGxlbjsJCS8qIE51bWJlciBvZiBieXRlcyB0byB3cml0ZSB0aGVuIHJlYWQgKi8KKwl1aW50MTZfdCBmbGFnczsJCS8qIEVDX0ZQX0ZMQUdfeHh4ICovCisJdWludDhfdCBkYXRhW107CQkvKiBEYXRhIHRvIHNlbmQgKi8KK30gX19lY19hbGlnbjI7CisKKy8qIENvbmZpZ3VyZSB0aGUgRmluZ2VycHJpbnQgTUNVIGJlaGF2aW9yICovCisjZGVmaW5lIEVDX0NNRF9GUF9NT0RFIDB4MDQwMgorCisvKiBQdXQgdGhlIHNlbnNvciBpbiBpdHMgbG93ZXN0IHBvd2VyIG1vZGUgKi8KKyNkZWZpbmUgRlBfTU9ERV9ERUVQU0xFRVAgICAgICBCSVQoMCkKKy8qIFdhaXQgdG8gc2VlIGEgZmluZ2VyIG9uIHRoZSBzZW5zb3IgKi8KKyNkZWZpbmUgRlBfTU9ERV9GSU5HRVJfRE9XTiAgICBCSVQoMSkKKy8qIFBvbGwgdW50aWwgdGhlIGZpbmdlciBoYXMgbGVmdCB0aGUgc2Vuc29yICovCisjZGVmaW5lIEZQX01PREVfRklOR0VSX1VQICAgICAgQklUKDIpCisvKiBDYXB0dXJlIHRoZSBjdXJyZW50IGZpbmdlciBpbWFnZSAqLworI2RlZmluZSBGUF9NT0RFX0NBUFRVUkUgICAgICAgIEJJVCgzKQorLyogRmluZ2VyIGVucm9sbG1lbnQgc2Vzc2lvbiBvbi1nb2luZyAqLworI2RlZmluZSBGUF9NT0RFX0VOUk9MTF9TRVNTSU9OIEJJVCg0KQorLyogRW5yb2xsIHRoZSBjdXJyZW50IGZpbmdlciBpbWFnZSAqLworI2RlZmluZSBGUF9NT0RFX0VOUk9MTF9JTUFHRSAgIEJJVCg1KQorLyogVHJ5IHRvIG1hdGNoIHRoZSBjdXJyZW50IGZpbmdlciBpbWFnZSAqLworI2RlZmluZSBGUF9NT0RFX01BVENIICAgICAgICAgIEJJVCg2KQorLyogUmVzZXQgYW5kIHJlLWluaXRpYWxpemUgdGhlIHNlbnNvci4gKi8KKyNkZWZpbmUgRlBfTU9ERV9SRVNFVF9TRU5TT1IgICBCSVQoNykKKy8qIHNwZWNpYWwgdmFsdWU6IGRvbid0IGNoYW5nZSBhbnl0aGluZyBqdXN0IHJlYWQgYmFjayBjdXJyZW50IG1vZGUgKi8KKyNkZWZpbmUgRlBfTU9ERV9ET05UX0NIQU5HRSAgICBCSVQoMzEpCisKKyNkZWZpbmUgRlBfVkFMSURfTU9ERVMgKEZQX01PREVfREVFUFNMRUVQICAgICAgfCBcCisJCQlGUF9NT0RFX0ZJTkdFUl9ET1dOICAgIHwgXAorCQkJRlBfTU9ERV9GSU5HRVJfVVAgICAgICB8IFwKKwkJCUZQX01PREVfQ0FQVFVSRSAgICAgICAgfCBcCisJCQlGUF9NT0RFX0VOUk9MTF9TRVNTSU9OIHwgXAorCQkJRlBfTU9ERV9FTlJPTExfSU1BR0UgICB8IFwKKwkJCUZQX01PREVfTUFUQ0ggICAgICAgICAgfCBcCisJCQlGUF9NT0RFX1JFU0VUX1NFTlNPUiAgIHwgXAorCQkJRlBfTU9ERV9ET05UX0NIQU5HRSkKKworLyogQ2FwdHVyZSB0eXBlcyBkZWZpbmVkIGluIGJpdHMgWzMwLi4yOF0gKi8KKyNkZWZpbmUgRlBfTU9ERV9DQVBUVVJFX1RZUEVfU0hJRlQgMjgKKyNkZWZpbmUgRlBfTU9ERV9DQVBUVVJFX1RZUEVfTUFTSyAgKDB4NyA8PCBGUF9NT0RFX0NBUFRVUkVfVFlQRV9TSElGVCkKKy8qCisgKiBUaGlzIGVudW0gbXVzdCByZW1haW4gb3JkZXJlZCwgaWYgeW91IGFkZCBuZXcgdmFsdWVzIHlvdSBtdXN0IGVuc3VyZSB0aGF0CisgKiBGUF9DQVBUVVJFX1RZUEVfTUFYIGlzIHN0aWxsIHRoZSBsYXN0IG9uZS4KKyAqLworZW51bSBmcF9jYXB0dXJlX3R5cGUgeworCS8qIEZ1bGwgYmxvd24gdmVuZG9yLWRlZmluZWQgY2FwdHVyZSAocHJvZHVjZXMgJ2ZyYW1lX3NpemUnIGJ5dGVzKSAqLworCUZQX0NBUFRVUkVfVkVORE9SX0ZPUk1BVCA9IDAsCisJLyogU2ltcGxlIHJhdyBpbWFnZSBjYXB0dXJlIChwcm9kdWNlcyB3aWR0aCB4IGhlaWdodCB4IGJwcCBiaXRzKSAqLworCUZQX0NBUFRVUkVfU0lNUExFX0lNQUdFID0gMSwKKwkvKiBTZWxmIHRlc3QgcGF0dGVybiAoZS5nLiBjaGVja2VyYm9hcmQpICovCisJRlBfQ0FQVFVSRV9QQVRURVJOMCA9IDIsCisJLyogU2VsZiB0ZXN0IHBhdHRlcm4gKGUuZy4gaW52ZXJ0ZWQgY2hlY2tlcmJvYXJkKSAqLworCUZQX0NBUFRVUkVfUEFUVEVSTjEgPSAzLAorCS8qIENhcHR1cmUgZm9yIFF1YWxpdHkgdGVzdCB3aXRoIGZpeGVkIGNvbnRyYXN0ICovCisJRlBfQ0FQVFVSRV9RVUFMSVRZX1RFU1QgPSA0LAorCS8qIENhcHR1cmUgZm9yIHBpeGVsIHJlc2V0IHZhbHVlIHRlc3QgKi8KKwlGUF9DQVBUVVJFX1JFU0VUX1RFU1QgPSA1LAorCUZQX0NBUFRVUkVfVFlQRV9NQVgsCit9OworLyogRXh0cmFjdHMgdGhlIGNhcHR1cmUgdHlwZSBmcm9tIHRoZSBzZW5zb3IgJ21vZGUnIHdvcmQgKi8KKyNkZWZpbmUgRlBfQ0FQVFVSRV9UWVBFKG1vZGUpICgoKG1vZGUpICYgRlBfTU9ERV9DQVBUVVJFX1RZUEVfTUFTSykgXAorCQkJCSAgICAgICA+PiBGUF9NT0RFX0NBUFRVUkVfVFlQRV9TSElGVCkKKworc3RydWN0IGVjX3BhcmFtc19mcF9tb2RlIHsKKwl1aW50MzJfdCBtb2RlOyAvKiBhcyBkZWZpbmVkIGJ5IEZQX01PREVfIGNvbnN0YW50cyAqLworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2ZwX21vZGUgeworCXVpbnQzMl90IG1vZGU7IC8qIGFzIGRlZmluZWQgYnkgRlBfTU9ERV8gY29uc3RhbnRzICovCit9IF9fZWNfYWxpZ240OworCisvKiBSZXRyaWV2ZSBGaW5nZXJwcmludCBzZW5zb3IgaW5mb3JtYXRpb24gKi8KKyNkZWZpbmUgRUNfQ01EX0ZQX0lORk8gMHgwNDAzCisKKy8qIE51bWJlciBvZiBkZWFkIHBpeGVscyBkZXRlY3RlZCBvbiB0aGUgbGFzdCBtYWludGVuYW5jZSAqLworI2RlZmluZSBGUF9FUlJPUl9ERUFEX1BJWEVMUyhlcnJvcnMpICgoZXJyb3JzKSAmIDB4M0ZGKQorLyogVW5rbm93biBudW1iZXIgb2YgZGVhZCBwaXhlbHMgZGV0ZWN0ZWQgb24gdGhlIGxhc3QgbWFpbnRlbmFuY2UgKi8KKyNkZWZpbmUgRlBfRVJST1JfREVBRF9QSVhFTFNfVU5LTk9XTiAoMHgzRkYpCisvKiBObyBpbnRlcnJ1cHQgZnJvbSB0aGUgc2Vuc29yICovCisjZGVmaW5lIEZQX0VSUk9SX05PX0lSUSAgICBCSVQoMTIpCisvKiBTUEkgY29tbXVuaWNhdGlvbiBlcnJvciAqLworI2RlZmluZSBGUF9FUlJPUl9TUElfQ09NTSAgQklUKDEzKQorLyogSW52YWxpZCBzZW5zb3IgSGFyZHdhcmUgSUQgKi8KKyNkZWZpbmUgRlBfRVJST1JfQkFEX0hXSUQgIEJJVCgxNCkKKy8qIFNlbnNvciBpbml0aWFsaXphdGlvbiBmYWlsZWQgKi8KKyNkZWZpbmUgRlBfRVJST1JfSU5JVF9GQUlMIEJJVCgxNSkKKworc3RydWN0IGVjX3Jlc3BvbnNlX2ZwX2luZm9fdjAgeworCS8qIFNlbnNvciBpZGVudGlmaWNhdGlvbiAqLworCXVpbnQzMl90IHZlbmRvcl9pZDsKKwl1aW50MzJfdCBwcm9kdWN0X2lkOworCXVpbnQzMl90IG1vZGVsX2lkOworCXVpbnQzMl90IHZlcnNpb247CisJLyogSW1hZ2UgZnJhbWUgY2hhcmFjdGVyaXN0aWNzICovCisJdWludDMyX3QgZnJhbWVfc2l6ZTsKKwl1aW50MzJfdCBwaXhlbF9mb3JtYXQ7IC8qIHVzaW5nIFY0TDJfUElYX0ZNVF8gKi8KKwl1aW50MTZfdCB3aWR0aDsKKwl1aW50MTZfdCBoZWlnaHQ7CisJdWludDE2X3QgYnBwOworCXVpbnQxNl90IGVycm9yczsgLyogc2VlIEZQX0VSUk9SXyBmbGFncyBhYm92ZSAqLworfSBfX2VjX2FsaWduNDsKKworc3RydWN0IGVjX3Jlc3BvbnNlX2ZwX2luZm8geworCS8qIFNlbnNvciBpZGVudGlmaWNhdGlvbiAqLworCXVpbnQzMl90IHZlbmRvcl9pZDsKKwl1aW50MzJfdCBwcm9kdWN0X2lkOworCXVpbnQzMl90IG1vZGVsX2lkOworCXVpbnQzMl90IHZlcnNpb247CisJLyogSW1hZ2UgZnJhbWUgY2hhcmFjdGVyaXN0aWNzICovCisJdWludDMyX3QgZnJhbWVfc2l6ZTsKKwl1aW50MzJfdCBwaXhlbF9mb3JtYXQ7IC8qIHVzaW5nIFY0TDJfUElYX0ZNVF8gKi8KKwl1aW50MTZfdCB3aWR0aDsKKwl1aW50MTZfdCBoZWlnaHQ7CisJdWludDE2X3QgYnBwOworCXVpbnQxNl90IGVycm9yczsgLyogc2VlIEZQX0VSUk9SXyBmbGFncyBhYm92ZSAqLworCS8qIFRlbXBsYXRlL2ZpbmdlciBjdXJyZW50IGluZm9ybWF0aW9uICovCisJdWludDMyX3QgdGVtcGxhdGVfc2l6ZTsgIC8qIG1heCB0ZW1wbGF0ZSBzaXplIGluIGJ5dGVzICovCisJdWludDE2X3QgdGVtcGxhdGVfbWF4OyAgIC8qIG1heGltdW0gbnVtYmVyIG9mIGZpbmdlcnMvdGVtcGxhdGVzICovCisJdWludDE2X3QgdGVtcGxhdGVfdmFsaWQ7IC8qIG51bWJlciBvZiB2YWxpZCBmaW5nZXJzL3RlbXBsYXRlcyAqLworCXVpbnQzMl90IHRlbXBsYXRlX2RpcnR5OyAvKiBiaXRtYXAgb2YgdGVtcGxhdGVzIHdpdGggTUNVIHNpZGUgY2hhbmdlcyAqLworCXVpbnQzMl90IHRlbXBsYXRlX3ZlcnNpb247IC8qIHZlcnNpb24gb2YgdGhlIHRlbXBsYXRlIGZvcm1hdCAqLworfSBfX2VjX2FsaWduNDsKKworLyogR2V0IHRoZSBsYXN0IGNhcHR1cmVkIGZpbmdlciBmcmFtZSBvciBhIHRlbXBsYXRlIGNvbnRlbnQgKi8KKyNkZWZpbmUgRUNfQ01EX0ZQX0ZSQU1FIDB4MDQwNAorCisvKiBjb25zdGFudHMgZGVmaW5pbmcgdGhlICdvZmZzZXQnIGZpZWxkIHdoaWNoIGFsc28gY29udGFpbnMgdGhlIGZyYW1lIGluZGV4ICovCisjZGVmaW5lIEZQX0ZSQU1FX0lOREVYX1NISUZUICAgICAgIDI4CisvKiBGcmFtZSBidWZmZXIgd2hlcmUgdGhlIGNhcHR1cmVkIGltYWdlIGlzIHN0b3JlZCAqLworI2RlZmluZSBGUF9GUkFNRV9JTkRFWF9SQVdfSU1BR0UgICAgMAorLyogRmlyc3QgZnJhbWUgYnVmZmVyIGhvbGRpbmcgYSB0ZW1wbGF0ZSAqLworI2RlZmluZSBGUF9GUkFNRV9JTkRFWF9URU1QTEFURSAgICAgMQorI2RlZmluZSBGUF9GUkFNRV9HRVRfQlVGRkVSX0lOREVYKG9mZnNldCkgKChvZmZzZXQpID4+IEZQX0ZSQU1FX0lOREVYX1NISUZUKQorI2RlZmluZSBGUF9GUkFNRV9PRkZTRVRfTUFTSyAgICAgICAweDBGRkZGRkZGCisKKy8qIFZlcnNpb24gb2YgdGhlIGZvcm1hdCBvZiB0aGUgZW5jcnlwdGVkIHRlbXBsYXRlcy4gKi8KKyNkZWZpbmUgRlBfVEVNUExBVEVfRk9STUFUX1ZFUlNJT04gMworCisvKiBDb25zdGFudHMgZm9yIGVuY3J5cHRpb24gcGFyYW1ldGVycyAqLworI2RlZmluZSBGUF9DT05URVhUX05PTkNFX0JZVEVTIDEyCisjZGVmaW5lIEZQX0NPTlRFWFRfVVNFUklEX1dPUkRTICgzMiAvIHNpemVvZih1aW50MzJfdCkpCisjZGVmaW5lIEZQX0NPTlRFWFRfVEFHX0JZVEVTIDE2CisjZGVmaW5lIEZQX0NPTlRFWFRfU0FMVF9CWVRFUyAxNgorI2RlZmluZSBGUF9DT05URVhUX1RQTV9CWVRFUyAzMgorCitzdHJ1Y3QgZWNfZnBfdGVtcGxhdGVfZW5jcnlwdGlvbl9tZXRhZGF0YSB7CisJLyoKKwkgKiBWZXJzaW9uIG9mIHRoZSBzdHJ1Y3R1cmUgZm9ybWF0IChOPTMpLgorCSAqLworCXVpbnQxNl90IHN0cnVjdF92ZXJzaW9uOworCS8qIFJlc2VydmVkIGJ5dGVzLCBzZXQgdG8gMC4gKi8KKwl1aW50MTZfdCByZXNlcnZlZDsKKwkvKgorCSAqIFRoZSBzYWx0IGlzICpvbmx5KiBldmVyIHVzZWQgZm9yIGtleSBkZXJpdmF0aW9uLiBUaGUgbm9uY2UgaXMgdW5pcXVlLAorCSAqIGEgZGlmZmVyZW50IG9uZSBpcyB1c2VkIGZvciBldmVyeSBtZXNzYWdlLgorCSAqLworCXVpbnQ4X3Qgbm9uY2VbRlBfQ09OVEVYVF9OT05DRV9CWVRFU107CisJdWludDhfdCBzYWx0W0ZQX0NPTlRFWFRfU0FMVF9CWVRFU107CisJdWludDhfdCB0YWdbRlBfQ09OVEVYVF9UQUdfQllURVNdOworfTsKKworc3RydWN0IGVjX3BhcmFtc19mcF9mcmFtZSB7CisJLyoKKwkgKiBUaGUgb2Zmc2V0IGNvbnRhaW5zIHRoZSB0ZW1wbGF0ZSBpbmRleCBvciBGUF9GUkFNRV9JTkRFWF9SQVdfSU1BR0UKKwkgKiBpbiB0aGUgaGlnaCBuaWJibGUsIGFuZCB0aGUgcmVhbCBvZmZzZXQgd2l0aGluIHRoZSBmcmFtZSBpbgorCSAqIEZQX0ZSQU1FX09GRlNFVF9NQVNLLgorCSAqLworCXVpbnQzMl90IG9mZnNldDsKKwl1aW50MzJfdCBzaXplOworfSBfX2VjX2FsaWduNDsKKworLyogTG9hZCBhIHRlbXBsYXRlIGludG8gdGhlIE1DVSAqLworI2RlZmluZSBFQ19DTURfRlBfVEVNUExBVEUgMHgwNDA1CisKKy8qIEZsYWcgaW4gdGhlICdzaXplJyBmaWVsZCBpbmRpY2F0aW5nIHRoYXQgdGhlIGZ1bGwgdGVtcGxhdGUgaGFzIGJlZW4gc2VudCAqLworI2RlZmluZSBGUF9URU1QTEFURV9DT01NSVQgMHg4MDAwMDAwMAorCitzdHJ1Y3QgZWNfcGFyYW1zX2ZwX3RlbXBsYXRlIHsKKwl1aW50MzJfdCBvZmZzZXQ7CisJdWludDMyX3Qgc2l6ZTsKKwl1aW50OF90IGRhdGFbXTsKK30gX19lY19hbGlnbjQ7CisKKy8qIENsZWFyIHRoZSBjdXJyZW50IGZpbmdlcnByaW50IHVzZXIgY29udGV4dCBhbmQgc2V0IGEgbmV3IG9uZSAqLworI2RlZmluZSBFQ19DTURfRlBfQ09OVEVYVCAweDA0MDYKKworc3RydWN0IGVjX3BhcmFtc19mcF9jb250ZXh0IHsKKwl1aW50MzJfdCB1c2VyaWRbRlBfQ09OVEVYVF9VU0VSSURfV09SRFNdOworfSBfX2VjX2FsaWduNDsKKworI2RlZmluZSBFQ19DTURfRlBfU1RBVFMgMHgwNDA3CisKKyNkZWZpbmUgRlBTVEFUU19DQVBUVVJFX0lOViAgQklUKDApCisjZGVmaW5lIEZQU1RBVFNfTUFUQ0hJTkdfSU5WIEJJVCgxKQorCitzdHJ1Y3QgZWNfcmVzcG9uc2VfZnBfc3RhdHMgeworCXVpbnQzMl90IGNhcHR1cmVfdGltZV91czsKKwl1aW50MzJfdCBtYXRjaGluZ190aW1lX3VzOworCXVpbnQzMl90IG92ZXJhbGxfdGltZV91czsKKwlzdHJ1Y3QgeworCQl1aW50MzJfdCBsbzsKKwkJdWludDMyX3QgaGk7CisJfSBvdmVyYWxsX3QwOworCXVpbnQ4X3QgdGltZXN0YW1wc19pbnZhbGlkOworCWludDhfdCB0ZW1wbGF0ZV9tYXRjaGVkOworfSBfX2VjX2FsaWduMjsKKworI2RlZmluZSBFQ19DTURfRlBfU0VFRCAweDA0MDgKK3N0cnVjdCBlY19wYXJhbXNfZnBfc2VlZCB7CisJLyoKKwkgKiBWZXJzaW9uIG9mIHRoZSBzdHJ1Y3R1cmUgZm9ybWF0IChOPTMpLgorCSAqLworCXVpbnQxNl90IHN0cnVjdF92ZXJzaW9uOworCS8qIFJlc2VydmVkIGJ5dGVzLCBzZXQgdG8gMC4gKi8KKwl1aW50MTZfdCByZXNlcnZlZDsKKwkvKiBTZWVkIGZyb20gdGhlIFRQTS4gKi8KKwl1aW50OF90IHNlZWRbRlBfQ09OVEVYVF9UUE1fQllURVNdOworfSBfX2VjX2FsaWduNDsKKworI2RlZmluZSBFQ19DTURfRlBfRU5DX1NUQVRVUyAweDA0MDkKKworLyogRlAgVFBNIHNlZWQgaGFzIGJlZW4gc2V0IG9yIG5vdCAqLworI2RlZmluZSBGUF9FTkNfU1RBVFVTX1NFRURfU0VUIEJJVCgwKQorCitzdHJ1Y3QgZWNfcmVzcG9uc2VfZnBfZW5jcnlwdGlvbl9zdGF0dXMgeworCS8qIFVzZWQgYml0cyBpbiBlbmNyeXB0aW9uIGVuZ2luZSBzdGF0dXMgKi8KKwl1aW50MzJfdCB2YWxpZF9mbGFnczsKKwkvKiBFbmNyeXB0aW9uIGVuZ2luZSBzdGF0dXMgKi8KKwl1aW50MzJfdCBzdGF0dXM7Cit9IF9fZWNfYWxpZ240OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBUb3VjaHBhZCBNQ1UgY29tbWFuZHM6IHJhbmdlIDB4MDUwMC0weDA1RkYgKi8KKworLyogUGVyZm9ybSB0b3VjaHBhZCBzZWxmIHRlc3QgKi8KKyNkZWZpbmUgRUNfQ01EX1RQX1NFTEZfVEVTVCAweDA1MDAKKworLyogR2V0IG51bWJlciBvZiBmcmFtZSB0eXBlcywgYW5kIHRoZSBzaXplIG9mIGVhY2ggdHlwZSAqLworI2RlZmluZSBFQ19DTURfVFBfRlJBTUVfSU5GTyAweDA1MDEKKworc3RydWN0IGVjX3Jlc3BvbnNlX3RwX2ZyYW1lX2luZm8geworCXVpbnQzMl90IG5fZnJhbWVzOworCXVpbnQzMl90IGZyYW1lX3NpemVzWzBdOworfSBfX2VjX2FsaWduNDsKKworLyogQ3JlYXRlIGEgc25hcHNob3Qgb2YgY3VycmVudCBmcmFtZSByZWFkaW5ncyAqLworI2RlZmluZSBFQ19DTURfVFBfRlJBTUVfU05BUFNIT1QgMHgwNTAyCisKKy8qIFJlYWQgdGhlIGZyYW1lICovCisjZGVmaW5lIEVDX0NNRF9UUF9GUkFNRV9HRVQgMHgwNTAzCisKK3N0cnVjdCBlY19wYXJhbXNfdHBfZnJhbWVfZ2V0IHsKKwl1aW50MzJfdCBmcmFtZV9pbmRleDsKKwl1aW50MzJfdCBvZmZzZXQ7CisJdWludDMyX3Qgc2l6ZTsKK30gX19lY19hbGlnbjQ7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEVDLUVDIGNvbW11bmljYXRpb24gY29tbWFuZHM6IHJhbmdlIDB4MDYwMC0weDA2RkYgKi8KKworI2RlZmluZSBFQ19DT01NX1RFWFRfTUFYIDgKKworLyoKKyAqIEdldCBiYXR0ZXJ5IHN0YXRpYyBpbmZvcm1hdGlvbiwgaS5lLiBpbmZvcm1hdGlvbiB0aGF0IG5ldmVyIGNoYW5nZXMsIG9yCisgKiB2ZXJ5IGluZnJlcXVlbnRseS4KKyAqLworI2RlZmluZSBFQ19DTURfQkFUVEVSWV9HRVRfU1RBVElDIDB4MDYwMAorCisvKioKKyAqIHN0cnVjdCBlY19wYXJhbXNfYmF0dGVyeV9zdGF0aWNfaW5mbyAtIEJhdHRlcnkgc3RhdGljIGluZm8gcGFyYW1ldGVycworICogQGluZGV4OiBCYXR0ZXJ5IGluZGV4LgorICovCitzdHJ1Y3QgZWNfcGFyYW1zX2JhdHRlcnlfc3RhdGljX2luZm8geworCXVpbnQ4X3QgaW5kZXg7Cit9IF9fZWNfYWxpZ25fc2l6ZTE7CisKKy8qKgorICogc3RydWN0IGVjX3Jlc3BvbnNlX2JhdHRlcnlfc3RhdGljX2luZm8gLSBCYXR0ZXJ5IHN0YXRpYyBpbmZvIHJlc3BvbnNlCisgKiBAZGVzaWduX2NhcGFjaXR5OiBCYXR0ZXJ5IERlc2lnbiBDYXBhY2l0eSAobUFoKQorICogQGRlc2lnbl92b2x0YWdlOiBCYXR0ZXJ5IERlc2lnbiBWb2x0YWdlIChtVikKKyAqIEBtYW51ZmFjdHVyZXI6IEJhdHRlcnkgTWFudWZhY3R1cmVyIFN0cmluZworICogQG1vZGVsOiBCYXR0ZXJ5IE1vZGVsIE51bWJlciBTdHJpbmcKKyAqIEBzZXJpYWw6IEJhdHRlcnkgU2VyaWFsIE51bWJlciBTdHJpbmcKKyAqIEB0eXBlOiBCYXR0ZXJ5IFR5cGUgU3RyaW5nCisgKiBAY3ljbGVfY291bnQ6IEJhdHRlcnkgQ3ljbGUgQ291bnQKKyAqLworc3RydWN0IGVjX3Jlc3BvbnNlX2JhdHRlcnlfc3RhdGljX2luZm8geworCXVpbnQxNl90IGRlc2lnbl9jYXBhY2l0eTsKKwl1aW50MTZfdCBkZXNpZ25fdm9sdGFnZTsKKwljaGFyIG1hbnVmYWN0dXJlcltFQ19DT01NX1RFWFRfTUFYXTsKKwljaGFyIG1vZGVsW0VDX0NPTU1fVEVYVF9NQVhdOworCWNoYXIgc2VyaWFsW0VDX0NPTU1fVEVYVF9NQVhdOworCWNoYXIgdHlwZVtFQ19DT01NX1RFWFRfTUFYXTsKKwkvKiBUT0RPKGNyYnVnLmNvbS83OTU5OTEpOiBDb25zaWRlciBtb3ZpbmcgdG8gZHluYW1pYyBzdHJ1Y3R1cmUuICovCisJdWludDMyX3QgY3ljbGVfY291bnQ7Cit9IF9fZWNfYWxpZ240OworCisvKgorICogR2V0IGJhdHRlcnkgZHluYW1pYyBpbmZvcm1hdGlvbiwgaS5lLiBpbmZvcm1hdGlvbiB0aGF0IGlzIGxpa2VseSB0byBjaGFuZ2UKKyAqIGV2ZXJ5IHRpbWUgaXQgaXMgcmVhZC4KKyAqLworI2RlZmluZSBFQ19DTURfQkFUVEVSWV9HRVRfRFlOQU1JQyAweDA2MDEKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX2JhdHRlcnlfZHluYW1pY19pbmZvIC0gQmF0dGVyeSBkeW5hbWljIGluZm8gcGFyYW1ldGVycworICogQGluZGV4OiBCYXR0ZXJ5IGluZGV4LgorICovCitzdHJ1Y3QgZWNfcGFyYW1zX2JhdHRlcnlfZHluYW1pY19pbmZvIHsKKwl1aW50OF90IGluZGV4OworfSBfX2VjX2FsaWduX3NpemUxOworCisvKioKKyAqIHN0cnVjdCBlY19yZXNwb25zZV9iYXR0ZXJ5X2R5bmFtaWNfaW5mbyAtIEJhdHRlcnkgZHluYW1pYyBpbmZvIHJlc3BvbnNlCisgKiBAYWN0dWFsX3ZvbHRhZ2U6IEJhdHRlcnkgdm9sdGFnZSAobVYpCisgKiBAYWN0dWFsX2N1cnJlbnQ6IEJhdHRlcnkgY3VycmVudCAobUEpOyBuZWdhdGl2ZT1kaXNjaGFyZ2luZworICogQHJlbWFpbmluZ19jYXBhY2l0eTogUmVtYWluaW5nIGNhcGFjaXR5IChtQWgpCisgKiBAZnVsbF9jYXBhY2l0eTogQ2FwYWNpdHkgKG1BaCwgbWlnaHQgY2hhbmdlIG9jY2FzaW9uYWxseSkKKyAqIEBmbGFnczogRmxhZ3MsIHNlZSBFQ19CQVRUX0ZMQUdfKgorICogQGRlc2lyZWRfdm9sdGFnZTogQ2hhcmdpbmcgdm9sdGFnZSBkZXNpcmVkIGJ5IGJhdHRlcnkgKG1WKQorICogQGRlc2lyZWRfY3VycmVudDogQ2hhcmdpbmcgY3VycmVudCBkZXNpcmVkIGJ5IGJhdHRlcnkgKG1BKQorICovCitzdHJ1Y3QgZWNfcmVzcG9uc2VfYmF0dGVyeV9keW5hbWljX2luZm8geworCWludDE2X3QgYWN0dWFsX3ZvbHRhZ2U7CisJaW50MTZfdCBhY3R1YWxfY3VycmVudDsKKwlpbnQxNl90IHJlbWFpbmluZ19jYXBhY2l0eTsKKwlpbnQxNl90IGZ1bGxfY2FwYWNpdHk7CisJaW50MTZfdCBmbGFnczsKKwlpbnQxNl90IGRlc2lyZWRfdm9sdGFnZTsKKwlpbnQxNl90IGRlc2lyZWRfY3VycmVudDsKK30gX19lY19hbGlnbjI7CisKKy8qCisgKiBDb250cm9sIGNoYXJnZXIgY2hpcC4gVXNlZCB0byBjb250cm9sIGNoYXJnZXIgY2hpcCBvbiB0aGUgc2xhdmUuCisgKi8KKyNkZWZpbmUgRUNfQ01EX0NIQVJHRVJfQ09OVFJPTCAweDA2MDIKKworLyoqCisgKiBzdHJ1Y3QgZWNfcGFyYW1zX2NoYXJnZXJfY29udHJvbCAtIENoYXJnZXIgY29udHJvbCBwYXJhbWV0ZXJzCisgKiBAbWF4X2N1cnJlbnQ6IENoYXJnZXIgY3VycmVudCAobUEpLiBQb3NpdGl2ZSB0byBhbGxvdyBiYXNlIHRvIGRyYXcgdXAgdG8KKyAqICAgICBtYXhfY3VycmVudCBhbmQgKHBvc3NpYmx5KSBjaGFyZ2UgYmF0dGVyeSwgbmVnYXRpdmUgdG8gcmVxdWVzdCBjdXJyZW50CisgKiAgICAgZnJvbSBiYXNlIChPVEcpLgorICogQG90Z192b2x0YWdlOiBWb2x0YWdlIChtVikgdG8gdXNlIGluIE9URyBtb2RlLCBpZ25vcmVkIGlmIG1heF9jdXJyZW50IGlzCisgKiAgICAgPj0gMC4KKyAqIEBhbGxvd19jaGFyZ2luZzogQWxsb3cgYmFzZSBiYXR0ZXJ5IGNoYXJnaW5nIChvbmx5IG1ha2VzIHNlbnNlIGlmCisgKiAgICAgbWF4X2N1cnJlbnQgPiAwKS4KKyAqLworc3RydWN0IGVjX3BhcmFtc19jaGFyZ2VyX2NvbnRyb2wgeworCWludDE2X3QgbWF4X2N1cnJlbnQ7CisJdWludDE2X3Qgb3RnX3ZvbHRhZ2U7CisJdWludDhfdCBhbGxvd19jaGFyZ2luZzsKK30gX19lY19hbGlnbl9zaXplMTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoKKyAqIFJlc2VydmUgYSByYW5nZSBvZiBob3N0IGNvbW1hbmRzIGZvciBib2FyZC1zcGVjaWZpYywgZXhwZXJpbWVudGFsLCBvcgorICogc3BlY2lhbCBwdXJwb3NlIGZlYXR1cmVzLiBUaGVzZSBjYW4gYmUgKHJlKXVzZWQgd2l0aG91dCB1cGRhdGluZyB0aGlzIGZpbGUuCisgKgorICogQ0FVVElPTjogRG9uJ3QgZ28gbnV0cyB3aXRoIHRoaXMuIFNoaXBwaW5nIHByb2R1Y3RzIHNob3VsZCBkb2N1bWVudCBBTEwKKyAqIHRoZWlyIEVDIGNvbW1hbmRzIGZvciBlYXNpZXIgZGV2ZWxvcG1lbnQsIHRlc3RpbmcsIGRlYnVnZ2luZywgYW5kIHN1cHBvcnQuCisgKgorICogQWxsIGNvbW1hbmRzIE1VU1QgYmUgI2RlZmluZWQgdG8gYmUgNC1kaWdpdCBVUFBFUiBDQVNFIGhleCB2YWx1ZXMKKyAqIChlLmcuLCAweDAwQUIsIG5vdCAweGFiKSBmb3IgQ09ORklHX0hPU1RDTURfU0VDVElPTl9TT1JURUQgdG8gd29yay4KKyAqCisgKiBJbiB5b3VyIGV4cGVyaW1lbnRhbCBjb2RlLCB5b3UgbWF5IHdhbnQgdG8gZG8gc29tZXRoaW5nIGxpa2UgdGhpczoKKyAqCisgKiAgICNkZWZpbmUgRUNfQ01EX01BR0lDX0ZPTyAweDAwMDAKKyAqICAgI2RlZmluZSBFQ19DTURfTUFHSUNfQkFSIDB4MDAwMQorICogICAjZGVmaW5lIEVDX0NNRF9NQUdJQ19IRVkgMHgwMDAyCisgKgorICogICBERUNMQVJFX1BSSVZBVEVfSE9TVF9DT01NQU5EKEVDX0NNRF9NQUdJQ19GT08sIG1hZ2ljX2Zvb19oYW5kbGVyLAorICogICAgICBFQ19WRVJfTUFTSygwKTsKKyAqCisgKiAgIERFQ0xBUkVfUFJJVkFURV9IT1NUX0NPTU1BTkQoRUNfQ01EX01BR0lDX0JBUiwgbWFnaWNfYmFyX2hhbmRsZXIsCisgKiAgICAgIEVDX1ZFUl9NQVNLKDApOworICoKKyAqICAgREVDTEFSRV9QUklWQVRFX0hPU1RfQ09NTUFORChFQ19DTURfTUFHSUNfSEVZLCBtYWdpY19oZXlfaGFuZGxlciwKKyAqICAgICAgRUNfVkVSX01BU0soMCk7CisgKi8KKyNkZWZpbmUgRUNfQ01EX0JPQVJEX1NQRUNJRklDX0JBU0UgMHgzRTAwCisjZGVmaW5lIEVDX0NNRF9CT0FSRF9TUEVDSUZJQ19MQVNUIDB4M0ZGRgorCisvKgorICogR2l2ZW4gdGhlIHByaXZhdGUgaG9zdCBjb21tYW5kIG9mZnNldCwgY2FsY3VsYXRlIHRoZSB0cnVlIHByaXZhdGUgaG9zdAorICogY29tbWFuZCB2YWx1ZS4KKyAqLworI2RlZmluZSBFQ19QUklWQVRFX0hPU1RfQ09NTUFORF9WQUxVRShjb21tYW5kKSBcCisJKEVDX0NNRF9CT0FSRF9TUEVDSUZJQ19CQVNFICsgKGNvbW1hbmQpKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogUGFzc3RocnUgY29tbWFuZHMKKyAqCisgKiBTb21lIHBsYXRmb3JtcyBoYXZlIHN1Yi1wcm9jZXNzb3JzIGNoYWluZWQgdG8gZWFjaCBvdGhlci4gIEZvciBleGFtcGxlLgorICoKKyAqICAgICBBUCA8LS0+IEVDIDwtLT4gUEQgTUNVCisgKgorICogVGhlIHRvcCAyIGJpdHMgb2YgdGhlIGNvbW1hbmQgbnVtYmVyIGFyZSB1c2VkIHRvIGluZGljYXRlIHdoaWNoIGRldmljZSB0aGUKKyAqIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yLiAgRGV2aWNlIDAgaXMgYWx3YXlzIHRoZSBkZXZpY2UgcmVjZWl2aW5nIHRoZQorICogY29tbWFuZDsgb3RoZXIgZGV2aWNlIG1hcHBpbmcgaXMgYm9hcmQtc3BlY2lmaWMuCisgKgorICogV2hlbiBhIGRldmljZSByZWNlaXZlcyBhIGNvbW1hbmQgdG8gYmUgcGFzc2VkIHRvIGEgc3ViLXByb2Nlc3NvciwgaXQgcGFzc2VzCisgKiBpdCBvbiB3aXRoIHRoZSBkZXZpY2UgbnVtYmVyIHNldCBiYWNrIHRvIDAuICBUaGlzIGFsbG93cyB0aGUgc3ViLXByb2Nlc3NvcgorICogdG8gcmVtYWluIGJsaXNzZnVsbHkgdW5hd2FyZSBvZiB3aGV0aGVyIHRoZSBjb21tYW5kIG9yaWdpbmF0ZWQgb24gdGhlIG5leHQKKyAqIGRldmljZSB1cCB0aGUgY2hhaW4sIG9yIHdhcyBwYXNzZWQgdGhyb3VnaCBmcm9tIHRoZSBBUC4KKyAqCisgKiBJbiB0aGUgYWJvdmUgZXhhbXBsZSwgaWYgdGhlIEFQIHdhbnRzIHRvIHNlbmQgY29tbWFuZCAweDAwMDIgdG8gdGhlIFBEIE1DVSwKKyAqICAgICBBUCBzZW5kcyBjb21tYW5kIDB4NDAwMiB0byB0aGUgRUMKKyAqICAgICBFQyBzZW5kcyBjb21tYW5kIDB4MDAwMiB0byB0aGUgUEQgTUNVCisgKiAgICAgRUMgZm9yd2FyZHMgUEQgTUNVIHJlc3BvbnNlIGJhY2sgdG8gdGhlIEFQCisgKi8KKworLyogT2Zmc2V0IGFuZCBtYXggY29tbWFuZCBudW1iZXIgZm9yIHN1Yi1kZXZpY2UgbiAqLworI2RlZmluZSBFQ19DTURfUEFTU1RIUlVfT0ZGU0VUKG4pICgweDQwMDAgKiAobikpCisjZGVmaW5lIEVDX0NNRF9QQVNTVEhSVV9NQVgobikgKEVDX0NNRF9QQVNTVEhSVV9PRkZTRVQobikgKyAweDNmZmYpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiBEZXByZWNhdGVkIGNvbnN0YW50cy4gVGhlc2UgY29uc3RhbnRzIGhhdmUgYmVlbiByZW5hbWVkIGZvciBjbGFyaXR5LiBUaGUKKyAqIG1lYW5pbmcgYW5kIHNpemUgaGFzIG5vdCBjaGFuZ2VkLiBQcm9ncmFtcyB0aGF0IHVzZSB0aGUgb2xkIG5hbWVzIHNob3VsZAorICogc3dpdGNoIHRvIHRoZSBuZXcgbmFtZXMgc29vbiwgYXMgdGhlIG9sZCBuYW1lcyBtYXkgbm90IGJlIGNhcnJpZWQgZm9yd2FyZAorICogZm9yZXZlci4KKyAqLworI2RlZmluZSBFQ19IT1NUX1BBUkFNX1NJWkUgICAgICBFQ19QUk9UTzJfTUFYX1BBUkFNX1NJWkUKKyNkZWZpbmUgRUNfTFBDX0FERFJfT0xEX1BBUkFNICAgRUNfSE9TVF9DTURfUkVHSU9OMQorI2RlZmluZSBFQ19PTERfUEFSQU1fU0laRSAgICAgICBFQ19IT1NUX0NNRF9SRUdJT05fU0laRQorCisKKworI2VuZGlmICAvKiBfX0NST1NfRUNfQ09NTUFORFNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFiNzAzNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX3Byb3RvLmgKQEAgLTAsMCArMSwzMTkgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisvKgorICogQ2hyb21lT1MgRW1iZWRkZWQgQ29udHJvbGxlciBwcm90b2NvbCBpbnRlcmZhY2UuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jCisgKi8KKworI2lmbmRlZiBfX0xJTlVYX0NST1NfRUNfUFJPVE9fSAorI2RlZmluZSBfX0xJTlVYX0NST1NfRUNfUFJPVE9fSAorCisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgorCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9jcm9zX2VjX2NvbW1hbmRzLmg+CisKKyNkZWZpbmUgQ1JPU19FQ19ERVZfTkFNRQkiY3Jvc19lYyIKKyNkZWZpbmUgQ1JPU19FQ19ERVZfRlBfTkFNRQkiY3Jvc19mcCIKKyNkZWZpbmUgQ1JPU19FQ19ERVZfSVNIX05BTUUJImNyb3NfaXNoIgorI2RlZmluZSBDUk9TX0VDX0RFVl9QRF9OQU1FCSJjcm9zX3BkIgorI2RlZmluZSBDUk9TX0VDX0RFVl9TQ1BfTkFNRQkiY3Jvc19zY3AiCisjZGVmaW5lIENST1NfRUNfREVWX1RQX05BTUUJImNyb3NfdHAiCisKKy8qCisgKiBUaGUgRUMgaXMgdW5yZXNwb25zaXZlIGZvciBhIHRpbWUgYWZ0ZXIgYSByZWJvb3QgY29tbWFuZC4gIEFkZCBhCisgKiBzaW1wbGUgZGVsYXkgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGJ1cyBzdGF5cyBsb2NrZWQuCisgKi8KKyNkZWZpbmUgRUNfUkVCT09UX0RFTEFZX01TCQk1MAorCisvKgorICogTWF4IGJ1cy1zcGVjaWZpYyBvdmVyaGVhZCBpbmN1cnJlZCBieSByZXF1ZXN0L3Jlc3BvbnNlcy4KKyAqIEkyQyByZXF1aXJlcyAxIGFkZGl0aW9uYWwgYnl0ZSBmb3IgcmVxdWVzdHMuCisgKiBJMkMgcmVxdWlyZXMgMiBhZGRpdGlvbmFsIGJ5dGVzIGZvciByZXNwb25zZXMuCisgKiBTUEkgcmVxdWlyZXMgdXAgdG8gMzIgYWRkaXRpb25hbCBieXRlcyBmb3IgcmVzcG9uc2VzLgorICovCisjZGVmaW5lIEVDX1BST1RPX1ZFUlNJT05fVU5LTk9XTgkwCisjZGVmaW5lIEVDX01BWF9SRVFVRVNUX09WRVJIRUFECQkxCisjZGVmaW5lIEVDX01BWF9SRVNQT05TRV9PVkVSSEVBRAkzMgorCisvKgorICogQ29tbWFuZCBpbnRlcmZhY2UgYmV0d2VlbiBFQyBhbmQgQVAsIGZvciBMUEMsIEkyQyBhbmQgU1BJIGludGVyZmFjZXMuCisgKi8KK2VudW0geworCUVDX01TR19UWF9IRUFERVJfQllURVMJPSAzLAorCUVDX01TR19UWF9UUkFJTEVSX0JZVEVTCT0gMSwKKwlFQ19NU0dfVFhfUFJPVE9fQllURVMJPSBFQ19NU0dfVFhfSEVBREVSX0JZVEVTICsKKwkJCQkgIEVDX01TR19UWF9UUkFJTEVSX0JZVEVTLAorCUVDX01TR19SWF9QUk9UT19CWVRFUwk9IDMsCisKKwkvKiBNYXggbGVuZ3RoIG9mIG1lc3NhZ2VzIGZvciBwcm90byAyKi8KKwlFQ19QUk9UTzJfTVNHX0JZVEVTCT0gRUNfUFJPVE8yX01BWF9QQVJBTV9TSVpFICsKKwkJCQkgIEVDX01TR19UWF9QUk9UT19CWVRFUywKKworCUVDX01BWF9NU0dfQllURVMJPSA2NCAqIDEwMjQsCit9OworCisvKioKKyAqIHN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgLSBJbmZvcm1hdGlvbiBhYm91dCBhIENocm9tZU9TIEVDIGNvbW1hbmQuCisgKiBAdmVyc2lvbjogQ29tbWFuZCB2ZXJzaW9uIG51bWJlciAob2Z0ZW4gMCkuCisgKiBAY29tbWFuZDogQ29tbWFuZCB0byBzZW5kIChFQ19DTURfLi4uKS4KKyAqIEBvdXRzaXplOiBPdXRnb2luZyBsZW5ndGggaW4gYnl0ZXMuCisgKiBAaW5zaXplOiBNYXggbnVtYmVyIG9mIGJ5dGVzIHRvIGFjY2VwdCBmcm9tIHRoZSBFQy4KKyAqIEByZXN1bHQ6IEVDJ3MgcmVzcG9uc2UgdG8gdGhlIGNvbW1hbmQgKHNlcGFyYXRlIGZyb20gY29tbXVuaWNhdGlvbiBmYWlsdXJlKS4KKyAqIEBkYXRhOiBXaGVyZSB0byBwdXQgdGhlIGluY29taW5nIGRhdGEgZnJvbSBFQyBhbmQgb3V0Z29pbmcgZGF0YSB0byBFQy4KKyAqLworc3RydWN0IGNyb3NfZWNfY29tbWFuZCB7CisJdWludDMyX3QgdmVyc2lvbjsKKwl1aW50MzJfdCBjb21tYW5kOworCXVpbnQzMl90IG91dHNpemU7CisJdWludDMyX3QgaW5zaXplOworCXVpbnQzMl90IHJlc3VsdDsKKwl1aW50OF90IGRhdGFbMF07Cit9OworCisvKioKKyAqIHN0cnVjdCBjcm9zX2VjX2RldmljZSAtIEluZm9ybWF0aW9uIGFib3V0IGEgQ2hyb21lT1MgRUMgZGV2aWNlLgorICogQHBoeXNfbmFtZTogTmFtZSBvZiBwaHlzaWNhbCBjb21tcyBsYXllciAoZS5nLiAnaTJjLTQnKS4KKyAqIEBkZXY6IERldmljZSBwb2ludGVyIGZvciBwaHlzaWNhbCBjb21tcyBkZXZpY2UKKyAqIEB3YXNfd2FrZV9kZXZpY2U6IFRydWUgaWYgdGhpcyBkZXZpY2Ugd2FzIHNldCB0byB3YWtlIHRoZSBzeXN0ZW0gZnJvbQorICogICAgICAgICAgICAgICAgICAgc2xlZXAgYXQgdGhlIGxhc3Qgc3VzcGVuZC4KKyAqIEBjcm9zX2NsYXNzOiBUaGUgY2xhc3Mgc3RydWN0dXJlIGZvciB0aGlzIGRldmljZS4KKyAqIEBjbWRfcmVhZG1lbTogRGlyZWN0IHJlYWQgb2YgdGhlIEVDIG1lbW9yeS1tYXBwZWQgcmVnaW9uLCBpZiBzdXBwb3J0ZWQuCisgKiAgICAgQG9mZnNldDogSXMgd2l0aGluIEVDX0xQQ19BRERSX01FTU1BUCByZWdpb24uCisgKiAgICAgQGJ5dGVzOiBOdW1iZXIgb2YgYnl0ZXMgdG8gcmVhZC4gemVybyBtZWFucyAicmVhZCBhIHN0cmluZyIgKGluY2x1ZGluZworICogICAgICAgICAgICAgdGhlIHRyYWlsaW5nICdcMCcpLiBBdCBtb3N0IG9ubHkgRUNfTUVNTUFQX1NJWkUgYnl0ZXMgY2FuIGJlCisgKiAgICAgICAgICAgICByZWFkLiBDYWxsZXIgbXVzdCBlbnN1cmUgdGhhdCB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaCBmb3IgdGhlCisgKiAgICAgICAgICAgICByZXN1bHQgd2hlbiByZWFkaW5nIGEgc3RyaW5nLgorICogQG1heF9yZXF1ZXN0OiBNYXggc2l6ZSBvZiBtZXNzYWdlIHJlcXVlc3RlZC4KKyAqIEBtYXhfcmVzcG9uc2U6IE1heCBzaXplIG9mIG1lc3NhZ2UgcmVzcG9uc2UuCisgKiBAbWF4X3Bhc3N0aHJ1OiBNYXggc2ljZSBvZiBwYXNzdGhydSBtZXNzYWdlLgorICogQHByb3RvX3ZlcnNpb246IFRoZSBwcm90b2NvbCB2ZXJzaW9uIHVzZWQgZm9yIHRoaXMgZGV2aWNlLgorICogQHByaXY6IFByaXZhdGUgZGF0YS4KKyAqIEBpcnE6IEludGVycnVwdCB0byB1c2UuCisgKiBAaWQ6IERldmljZSBpZC4KKyAqIEBkaW46IElucHV0IGJ1ZmZlciAoZm9yIGRhdGEgZnJvbSBFQykuIFRoaXMgYnVmZmVyIHdpbGwgYWx3YXlzIGJlCisgKiAgICAgICBkd29yZC1hbGlnbmVkIGFuZCBpbmNsdWRlIGVub3VnaCBzcGFjZSBmb3IgdXAgdG8gNyB3b3JkLWFsaWdubWVudAorICogICAgICAgYnl0ZXMgYWxzbywgc28gd2UgY2FuIGVuc3VyZSB0aGF0IHRoZSBib2R5IG9mIHRoZSBtZXNzYWdlIGlzIGFsd2F5cworICogICAgICAgZHdvcmQtYWxpZ25lZCAoNjQtYml0KS4gV2UgdXNlIHRoaXMgYWxpZ25tZW50IHRvIGtlZXAgQVJNIGFuZCB4ODYKKyAqICAgICAgIGhhcHB5LiBQcm9iYWJseSB3b3JkIGFsaWdubWVudCB3b3VsZCBiZSBPSywgdGhlcmUgbWlnaHQgYmUgYSBzbWFsbAorICogICAgICAgcGVyZm9ybWFuY2UgYWR2YW50YWdlIHRvIHVzaW5nIGR3b3JkLgorICogQGRvdXQ6IE91dHB1dCBidWZmZXIgKGZvciBkYXRhIHRvIEVDKS4gVGhpcyBidWZmZXIgd2lsbCBhbHdheXMgYmUKKyAqICAgICAgICBkd29yZC1hbGlnbmVkIGFuZCBpbmNsdWRlIGVub3VnaCBzcGFjZSBmb3IgdXAgdG8gNyB3b3JkLWFsaWdubWVudAorICogICAgICAgIGJ5dGVzIGFsc28sIHNvIHdlIGNhbiBlbnN1cmUgdGhhdCB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZSBpcyBhbHdheXMKKyAqICAgICAgICBkd29yZC1hbGlnbmVkICg2NC1iaXQpLiBXZSB1c2UgdGhpcyBhbGlnbm1lbnQgdG8ga2VlcCBBUk0gYW5kIHg4NgorICogICAgICAgIGhhcHB5LiBQcm9iYWJseSB3b3JkIGFsaWdubWVudCB3b3VsZCBiZSBPSywgdGhlcmUgbWlnaHQgYmUgYSBzbWFsbAorICogICAgICAgIHBlcmZvcm1hbmNlIGFkdmFudGFnZSB0byB1c2luZyBkd29yZC4KKyAqIEBkaW5fc2l6ZTogU2l6ZSBvZiBkaW4gYnVmZmVyIHRvIGFsbG9jYXRlICh6ZXJvIHRvIHVzZSBzdGF0aWMgZGluKS4KKyAqIEBkb3V0X3NpemU6IFNpemUgb2YgZG91dCBidWZmZXIgdG8gYWxsb2NhdGUgKHplcm8gdG8gdXNlIHN0YXRpYyBkb3V0KS4KKyAqIEB3YWtlX2VuYWJsZWQ6IFRydWUgaWYgdGhpcyBkZXZpY2UgY2FuIHdha2UgdGhlIHN5c3RlbSBmcm9tIHNsZWVwLgorICogQHN1c3BlbmRlZDogVHJ1ZSBpZiB0aGlzIGRldmljZSBoYWQgYmVlbiBzdXNwZW5kZWQuCisgKiBAY21kX3hmZXI6IFNlbmQgY29tbWFuZCB0byBFQyBhbmQgZ2V0IHJlc3BvbnNlLgorICogICAgICAgICAgICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVjZWl2ZWQgaWYgdGhlIGNvbW11bmljYXRpb24KKyAqICAgICAgICAgICAgc3VjY2VlZGVkLCBidXQgdGhhdCBkb2Vzbid0IG1lYW4gdGhlIEVDIHdhcyBoYXBweSB3aXRoIHRoZQorICogICAgICAgICAgICBjb21tYW5kLiBUaGUgY2FsbGVyIHNob3VsZCBjaGVjayBtc2cucmVzdWx0IGZvciB0aGUgRUMncyByZXN1bHQKKyAqICAgICAgICAgICAgY29kZS4KKyAqIEBwa3RfeGZlcjogU2VuZCBwYWNrZXQgdG8gRUMgYW5kIGdldCByZXNwb25zZS4KKyAqIEBsb2NrOiBPbmUgdHJhbnNhY3Rpb24gYXQgYSB0aW1lLgorICogQG1rYnBfZXZlbnRfc3VwcG9ydGVkOiBUcnVlIGlmIHRoaXMgRUMgc3VwcG9ydHMgdGhlIE1LQlAgZXZlbnQgcHJvdG9jb2wuCisgKiBAaG9zdF9zbGVlcF92MTogVHJ1ZSBpZiB0aGlzIEVDIHN1cHBvcnRzIHRoZSBzbGVlcCB2MSBjb21tYW5kLgorICogQGV2ZW50X25vdGlmaWVyOiBJbnRlcnJ1cHQgZXZlbnQgbm90aWZpZXIgZm9yIHRyYW5zcG9ydCBkZXZpY2VzLgorICogQGV2ZW50X2RhdGE6IFJhdyBwYXlsb2FkIHRyYW5zZmVycmVkIHdpdGggdGhlIE1LQlAgZXZlbnQuCisgKiBAZXZlbnRfc2l6ZTogU2l6ZSBpbiBieXRlcyBvZiB0aGUgZXZlbnQgZGF0YS4KKyAqIEBob3N0X2V2ZW50X3dha2VfbWFzazogTWFzayBvZiBob3N0IGV2ZW50cyB0aGF0IGNhdXNlIHdha2UgZnJvbSBzdXNwZW5kLgorICogQGVjOiBUaGUgcGxhdGZvcm1fZGV2aWNlIHVzZWQgYnkgdGhlIG1mZCBkcml2ZXIgdG8gaW50ZXJmYWNlIHdpdGggdGhlCisgKiAgICAgIG1haW4gRUMuCisgKiBAcGQ6IFRoZSBwbGF0Zm9ybV9kZXZpY2UgdXNlZCBieSB0aGUgbWZkIGRyaXZlciB0byBpbnRlcmZhY2Ugd2l0aCB0aGUKKyAqICAgICAgUEQgYmVoaW5kIGFuIEVDLgorICovCitzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgeworCS8qIFRoZXNlIGFyZSB1c2VkIGJ5IG90aGVyIGRyaXZlcnMgdGhhdCB3YW50IHRvIHRhbGsgdG8gdGhlIEVDICovCisJY29uc3QgY2hhciAqcGh5c19uYW1lOworCXN0cnVjdCBkZXZpY2UgKmRldjsKKwlib29sIHdhc193YWtlX2RldmljZTsKKwlzdHJ1Y3QgY2xhc3MgKmNyb3NfY2xhc3M7CisJaW50ICgqY21kX3JlYWRtZW0pKHN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWMsIHVuc2lnbmVkIGludCBvZmZzZXQsCisJCQkgICB1bnNpZ25lZCBpbnQgYnl0ZXMsIHZvaWQgKmRlc3QpOworCisJLyogVGhlc2UgYXJlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBpbnRlcmZhY2UgKi8KKwl1MTYgbWF4X3JlcXVlc3Q7CisJdTE2IG1heF9yZXNwb25zZTsKKwl1MTYgbWF4X3Bhc3N0aHJ1OworCXUxNiBwcm90b192ZXJzaW9uOworCXZvaWQgKnByaXY7CisJaW50IGlycTsKKwl1OCAqZGluOworCXU4ICpkb3V0OworCWludCBkaW5fc2l6ZTsKKwlpbnQgZG91dF9zaXplOworCWJvb2wgd2FrZV9lbmFibGVkOworCWJvb2wgc3VzcGVuZGVkOworCWludCAoKmNtZF94ZmVyKShzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjLAorCQkJc3RydWN0IGNyb3NfZWNfY29tbWFuZCAqbXNnKTsKKwlpbnQgKCpwa3RfeGZlcikoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplYywKKwkJCXN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgKm1zZyk7CisJc3RydWN0IG11dGV4IGxvY2s7CisJYm9vbCBta2JwX2V2ZW50X3N1cHBvcnRlZDsKKwlib29sIGhvc3Rfc2xlZXBfdjE7CisJc3RydWN0IGJsb2NraW5nX25vdGlmaWVyX2hlYWQgZXZlbnRfbm90aWZpZXI7CisKKwlzdHJ1Y3QgZWNfcmVzcG9uc2VfZ2V0X25leHRfZXZlbnRfdjEgZXZlbnRfZGF0YTsKKwlpbnQgZXZlbnRfc2l6ZTsKKwl1MzIgaG9zdF9ldmVudF93YWtlX21hc2s7CisJdTMyIGxhc3RfcmVzdW1lX3Jlc3VsdDsKKworCS8qIFRoZSBwbGF0Zm9ybSBkZXZpY2VzIHVzZWQgYnkgdGhlIG1mZCBkcml2ZXIgKi8KKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICplYzsKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZDsKK307CisKKy8qKgorICogc3RydWN0IGNyb3NfZWNfc2Vuc29yX3BsYXRmb3JtIC0gQ2hyb21lT1MgRUMgc2Vuc29yIHBsYXRmb3JtIGluZm9ybWF0aW9uLgorICogQHNlbnNvcl9udW06IElkIG9mIHRoZSBzZW5zb3IsIGFzIHJlcG9ydGVkIGJ5IHRoZSBFQy4KKyAqLworc3RydWN0IGNyb3NfZWNfc2Vuc29yX3BsYXRmb3JtIHsKKwl1OCBzZW5zb3JfbnVtOworfTsKKworLyoqCisgKiBzdHJ1Y3QgY3Jvc19lY19wbGF0Zm9ybSAtIENocm9tZU9TIEVDIHBsYXRmb3JtIGluZm9ybWF0aW9uLgorICogQGVjX25hbWU6IE5hbWUgb2YgRUMgZGV2aWNlIChlLmcuICdjcm9zLWVjJywgJ2Nyb3MtcGQnLCAuLi4pCisgKiAgICAgICAgICAgdXNlZCBpbiAvZGV2LyBhbmQgc3lzZnMuCisgKiBAY21kX29mZnNldDogT2Zmc2V0IHRvIGFwcGx5IGZvciBlYWNoIGNvbW1hbmQuIFNldCB3aGVuCisgKiAgICAgICAgICAgICAgcmVnaXN0ZXJpbmcgYSBkZXZpY2UgYmVoaW5kIGFub3RoZXIgb25lLgorICovCitzdHJ1Y3QgY3Jvc19lY19wbGF0Zm9ybSB7CisJY29uc3QgY2hhciAqZWNfbmFtZTsKKwl1MTYgY21kX29mZnNldDsKK307CisKKy8qKgorICogY3Jvc19lY19zdXNwZW5kKCkgLSBIYW5kbGUgYSBzdXNwZW5kIG9wZXJhdGlvbiBmb3IgdGhlIENocm9tZU9TIEVDIGRldmljZS4KKyAqIEBlY19kZXY6IERldmljZSB0byBzdXNwZW5kLgorICoKKyAqIFRoaXMgY2FuIGJlIGNhbGxlZCBieSBkcml2ZXJzIHRvIGhhbmRsZSBhIHN1c3BlbmQgZXZlbnQuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZS4KKyAqLworaW50IGNyb3NfZWNfc3VzcGVuZChzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2Rldik7CisKKy8qKgorICogY3Jvc19lY19yZXN1bWUoKSAtIEhhbmRsZSBhIHJlc3VtZSBvcGVyYXRpb24gZm9yIHRoZSBDaHJvbWVPUyBFQyBkZXZpY2UuCisgKiBAZWNfZGV2OiBEZXZpY2UgdG8gcmVzdW1lLgorICoKKyAqIFRoaXMgY2FuIGJlIGNhbGxlZCBieSBkcml2ZXJzIHRvIGhhbmRsZSBhIHJlc3VtZSBldmVudC4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlLgorICovCitpbnQgY3Jvc19lY19yZXN1bWUoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYpOworCisvKioKKyAqIGNyb3NfZWNfcHJlcGFyZV90eCgpIC0gUHJlcGFyZSBhbiBvdXRnb2luZyBtZXNzYWdlIGluIHRoZSBvdXRwdXQgYnVmZmVyLgorICogQGVjX2RldjogRGV2aWNlIHRvIHJlZ2lzdGVyLgorICogQG1zZzogTWVzc2FnZSB0byB3cml0ZS4KKyAqCisgKiBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgYWxsIENocm9tZU9TIEVDIGRyaXZlcnMsIGJ1dCBhdCBwcmVzZW50CisgKiBvbmx5IFNQSSB1c2VzIGl0LiBPbmNlIExQQyB1c2VzIHRoZSBzYW1lIHByb3RvY29sIGl0IGNhbiBzdGFydCB1c2luZyBpdC4KKyAqIEkyQyBjb3VsZCB1c2UgaXQgbm93LCB3aXRoIGEgcmVmYWN0b3Igb2YgdGhlIGV4aXN0aW5nIGNvZGUuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZS4KKyAqLworaW50IGNyb3NfZWNfcHJlcGFyZV90eChzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiwKKwkJICAgICAgIHN0cnVjdCBjcm9zX2VjX2NvbW1hbmQgKm1zZyk7CisKKy8qKgorICogY3Jvc19lY19jaGVja19yZXN1bHQoKSAtIENoZWNrIGVjX21zZy0+cmVzdWx0LgorICogQGVjX2RldjogRUMgZGV2aWNlLgorICogQG1zZzogTWVzc2FnZSB0byBjaGVjay4KKyAqCisgKiBUaGlzIGlzIHVzZWQgYnkgQ2hyb21lT1MgRUMgZHJpdmVycyB0byBjaGVjayB0aGUgZWNfbXNnLT5yZXN1bHQgZm9yCisgKiBlcnJvcnMgYW5kIHRvIHdhcm4gYWJvdXQgdGhlbS4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlLgorICovCitpbnQgY3Jvc19lY19jaGVja19yZXN1bHQoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYsCisJCQkgc3RydWN0IGNyb3NfZWNfY29tbWFuZCAqbXNnKTsKKworLyoqCisgKiBjcm9zX2VjX2NtZF94ZmVyKCkgLSBTZW5kIGEgY29tbWFuZCB0byB0aGUgQ2hyb21lT1MgRUMuCisgKiBAZWNfZGV2OiBFQyBkZXZpY2UuCisgKiBAbXNnOiBNZXNzYWdlIHRvIHdyaXRlLgorICoKKyAqIENhbGwgdGhpcyB0byBzZW5kIGEgY29tbWFuZCB0byB0aGUgQ2hyb21lT1MgRUMuICBUaGlzIHNob3VsZCBiZSB1c2VkCisgKiBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlIEVDJ3MgY21kX3hmZXIoKSBjYWxsYmFjayBkaXJlY3RseS4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlLgorICovCitpbnQgY3Jvc19lY19jbWRfeGZlcihzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiwKKwkJICAgICBzdHJ1Y3QgY3Jvc19lY19jb21tYW5kICptc2cpOworCisvKioKKyAqIGNyb3NfZWNfY21kX3hmZXJfc3RhdHVzKCkgLSBTZW5kIGEgY29tbWFuZCB0byB0aGUgQ2hyb21lT1MgRUMuCisgKiBAZWNfZGV2OiBFQyBkZXZpY2UuCisgKiBAbXNnOiBNZXNzYWdlIHRvIHdyaXRlLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgaWRlbnRpY2FsIHRvIGNyb3NfZWNfY21kX3hmZXIsIGV4Y2VwdCBpdCByZXR1cm5zIHN1Y2Nlc3MKKyAqIHN0YXR1cyBvbmx5IGlmIGJvdGggdGhlIGNvbW1hbmQgd2FzIHRyYW5zbWl0dGVkIHN1Y2Nlc3NmdWxseSBhbmQgdGhlIEVDCisgKiByZXBsaWVkIHdpdGggc3VjY2VzcyBzdGF0dXMuIEl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjaGVjayBtc2ctPnJlc3VsdCB3aGVuCisgKiB1c2luZyB0aGlzIGZ1bmN0aW9uLgorICoKKyAqIFJldHVybjogVGhlIG51bWJlciBvZiBieXRlcyB0cmFuc2ZlcnJlZCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgKi8KK2ludCBjcm9zX2VjX2NtZF94ZmVyX3N0YXR1cyhzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2RldiwKKwkJCSAgICBzdHJ1Y3QgY3Jvc19lY19jb21tYW5kICptc2cpOworCisvKioKKyAqIGNyb3NfZWNfcmVnaXN0ZXIoKSAtIFJlZ2lzdGVyIGEgbmV3IENocm9tZU9TIEVDLCB1c2luZyB0aGUgcHJvdmlkZWQgaW5mby4KKyAqIEBlY19kZXY6IERldmljZSB0byByZWdpc3Rlci4KKyAqCisgKiBCZWZvcmUgY2FsbGluZyB0aGlzLCBhbGxvY2F0ZSBhIHBvaW50ZXIgdG8gYSBuZXcgZGV2aWNlIGFuZCB0aGVuIGZpbGwKKyAqIGluIGFsbCB0aGUgZmllbGRzIHVwIHRvIHRoZSAtLXByaXZhdGUtLSBtYXJrZXIuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZS4KKyAqLworaW50IGNyb3NfZWNfcmVnaXN0ZXIoc3RydWN0IGNyb3NfZWNfZGV2aWNlICplY19kZXYpOworCisvKioKKyAqIGNyb3NfZWNfdW5yZWdpc3RlcigpIC0gUmVtb3ZlIGEgQ2hyb21lT1MgRUMuCisgKiBAZWNfZGV2OiBEZXZpY2UgdG8gdW5yZWdpc3Rlci4KKyAqCisgKiBDYWxsIHRoaXMgdG8gZGVyZWdpc3RlciBhIENocm9tZU9TIEVDLCB0aGVuIGNsZWFuIHVwIGFueSBwcml2YXRlIGRhdGEuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZS4KKyAqLworaW50IGNyb3NfZWNfdW5yZWdpc3RlcihzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2Rldik7CisKKy8qKgorICogY3Jvc19lY19xdWVyeV9hbGwoKSAtICBRdWVyeSB0aGUgcHJvdG9jb2wgdmVyc2lvbiBzdXBwb3J0ZWQgYnkgdGhlCisgKiAgICAgICAgIENocm9tZU9TIEVDLgorICogQGVjX2RldjogRGV2aWNlIHRvIHJlZ2lzdGVyLgorICoKKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgKi8KK2ludCBjcm9zX2VjX3F1ZXJ5X2FsbChzdHJ1Y3QgY3Jvc19lY19kZXZpY2UgKmVjX2Rldik7CisKKy8qKgorICogY3Jvc19lY19nZXRfbmV4dF9ldmVudCgpIC0gRmV0Y2ggbmV4dCBldmVudCBmcm9tIHRoZSBDaHJvbWVPUyBFQy4KKyAqIEBlY19kZXY6IERldmljZSB0byBmZXRjaCBldmVudCBmcm9tLgorICogQHdha2VfZXZlbnQ6IFBvaW50ZXIgdG8gYSBib29sIHNldCB0byB0cnVlIHVwb24gcmV0dXJuIGlmIHRoZSBldmVudCBtaWdodCBiZQorICogICAgICAgICAgICAgIHRyZWF0ZWQgYXMgYSB3YWtlIGV2ZW50LiBJZ25vcmVkIGlmIG51bGwuCisgKgorICogUmV0dXJuOiBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGVycm9yczsgMCBmb3Igbm8gZGF0YTsgb3IgZWxzZSBudW1iZXIgb2YKKyAqIGJ5dGVzIHJlY2VpdmVkIChpLmUuLCBhbiBldmVudCB3YXMgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseSkuIEV2ZW50IHR5cGVzIGFyZQorICogd3JpdHRlbiBvdXQgdG8gQGVjX2Rldi0+ZXZlbnRfZGF0YS5ldmVudF90eXBlIG9uIHN1Y2Nlc3MuCisgKi8KK2ludCBjcm9zX2VjX2dldF9uZXh0X2V2ZW50KHN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2LCBib29sICp3YWtlX2V2ZW50KTsKKworLyoqCisgKiBjcm9zX2VjX2dldF9ob3N0X2V2ZW50KCkgLSBSZXR1cm4gYSBtYXNrIG9mIGV2ZW50IHNldCBieSB0aGUgQ2hyb21lT1MgRUMuCisgKiBAZWNfZGV2OiBEZXZpY2UgdG8gZmV0Y2ggZXZlbnQgZnJvbS4KKyAqCisgKiBXaGVuIE1LQlAgaXMgc3VwcG9ydGVkLCB3aGVuIHRoZSBFQyByYWlzZXMgYW4gaW50ZXJydXB0LCB3ZSBjb2xsZWN0IHRoZQorICogZXZlbnRzIHJhaXNlZCBhbmQgY2FsbCB0aGUgZnVuY3Rpb25zIGluIHRoZSBlYyBub3RpZmllci4gVGhpcyBmdW5jdGlvbgorICogaXMgYSBoZWxwZXIgdG8ga25vdyB3aGljaCBldmVudHMgYXJlIHJhaXNlZC4KKyAqCisgKiBSZXR1cm46IDAgb24gZXJyb3Igb3Igbm9uLXplcm8gYml0bWFzayBvZiBvbmUgb3IgbW9yZSBFQ19IT1NUX0VWRU5UXyouCisgKi8KK3UzMiBjcm9zX2VjX2dldF9ob3N0X2V2ZW50KHN0cnVjdCBjcm9zX2VjX2RldmljZSAqZWNfZGV2KTsKKworI2VuZGlmIC8qIF9fTElOVVhfQ1JPU19FQ19QUk9UT19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEva2V5cGFkLXc5MHA5MTAuaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9rZXlwYWQtdzkwcDkxMC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDZjYTRlLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9rZXlwYWQtdzkwcDkxMC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KLSNpZm5kZWYgX19BU01fQVJDSF9XOTBQOTEwX0tFWVBBRF9ICi0jZGVmaW5lIF9fQVNNX0FSQ0hfVzkwUDkxMF9LRVlQQURfSAotCi0jaW5jbHVkZSA8bGludXgvaW5wdXQvbWF0cml4X2tleXBhZC5oPgotCi1leHRlcm4gdm9pZCBtZnBfc2V0X2dyb3VwaShzdHJ1Y3QgZGV2aWNlICpkZXYpOwotCi1zdHJ1Y3QgdzkwcDkxMF9rZXlwYWRfcGxhdGZvcm1fZGF0YSB7Ci0JY29uc3Qgc3RydWN0IG1hdHJpeF9rZXltYXBfZGF0YSAqa2V5bWFwX2RhdGE7Ci0KLQl1bnNpZ25lZCBpbnQJcHJlc2NhbGU7Ci0JdW5zaWduZWQgaW50CWRlYm91bmNlOwotfTsKLQotI2VuZGlmIC8qIF9fQVNNX0FSQ0hfVzkwUDkxMF9LRVlQQURfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL3BpbmN0cmwtc2luZ2xlLmggYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvcGluY3RybC1zaW5nbGUuaAppbmRleCAxY2YzNmZkLi43NDczZDNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvcGluY3RybC1zaW5nbGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvcGluY3RybC1zaW5nbGUuaApAQCAtMSw0ICsxLDggQEAKIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisKKyNpZm5kZWYgX1BJTkNUUkxfU0lOR0xFX0gKKyNkZWZpbmUgX1BJTkNUUkxfU0lOR0xFX0gKKwogLyoqCiAgKiBpcnE6CQlvcHRpb25hbCB3YWtlLXVwIGludGVycnVwdAogICogcmVhcm06CW9wdGlvbmFsIHNvYyBzcGVjaWZpYyByZWFybSBmdW5jdGlvbgpAQCAtMTEsMyArMTUsNSBAQCBzdHJ1Y3QgcGNzX3BkYXRhIHsKIAlpbnQgaXJxOwogCXZvaWQgKCpyZWFybSkodm9pZCk7CiB9OworCisjZW5kaWYgLyogX1BJTkNUUkxfU0lOR0xFX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS90aS1zeXNjLmggYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvdGktc3lzYy5oCmluZGV4IDBjNTg3ZDQuLmI1YjdhMzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS90aS1zeXNjLmgKKysrIGIvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL3RpLXN5c2MuaApAQCAtMSwzICsxLDUgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisKICNpZm5kZWYgX19USV9TWVNDX0RBVEFfSF9fCiAjZGVmaW5lIF9fVElfU1lTQ19EQVRBX0hfXwogCkBAIC00Nyw2ICs0OSw3IEBAIHN0cnVjdCBzeXNjX3JlZ2JpdHMgewogCXM4IGVtdWZyZWVfc2hpZnQ7CiB9OwogCisjZGVmaW5lIFNZU0NfTU9EVUxFX1FVSVJLX1NHWAkJQklUKDE4KQogI2RlZmluZSBTWVNDX01PRFVMRV9RVUlSS19IRFExVwkJQklUKDE3KQogI2RlZmluZSBTWVNDX01PRFVMRV9RVUlSS19JMkMJCUJJVCgxNikKICNkZWZpbmUgU1lTQ19NT0RVTEVfUVVJUktfV0RUCQlCSVQoMTUpCkBAIC03MCw3ICs3Myw3IEBAIHN0cnVjdCBzeXNjX3JlZ2JpdHMgewogCiAvKioKICAqIHN0cnVjdCBzeXNjX2NhcGFiaWxpdGllcyAtIGNhcGFiaWxpdGllcyBmb3IgYW4gaW50ZXJjb25uZWN0IHRhcmdldCBtb2R1bGUKLSAqCisgKiBAdHlwZTogc3lzYyB0eXBlIGlkZW50aWZpZXIgZm9yIHRoZSBtb2R1bGUKICAqIEBzeXNjX21hc2s6IGJpdG1hc2sgb2Ygc3VwcG9ydGVkIFNZU0NPTkZJRyByZWdpc3RlciBiaXRzCiAgKiBAcmVnYml0czogYml0bWFzayBvZiBTWVNDT05GSUcgcmVnaXN0ZXIgYml0cwogICogQG1vZF9xdWlya3M6IGJpdG1hc2sgb2YgbW9kdWxlIHNwZWNpZmljIHF1aXJrcwpAQCAtODUsOCArODgsOSBAQCBzdHJ1Y3Qgc3lzY19jYXBhYmlsaXRpZXMgewogLyoqCiAgKiBzdHJ1Y3Qgc3lzY19jb25maWcgLSBjb25maWd1cmF0aW9uIGZvciBhbiBpbnRlcmNvbm5lY3QgdGFyZ2V0IG1vZHVsZQogICogQHN5c2NfdmFsOiBjb25maWd1cmVkIHZhbHVlIGZvciBzeXNjIHJlZ2lzdGVyCisgKiBAc3lzc19tYXNrOiBjb25maWd1cmVkIG1hc2sgdmFsdWUgZm9yIFNZU1NUQVRVUyByZWdpc3RlcgogICogQG1pZGxlbW9kZXM6IGJpdG1hc2sgb2Ygc3VwcG9ydGVkIG1hc3RlciBpZGxlIG1vZGVzCi0gKiBAc2lkbGVtb2RlczogYml0bWFzayBvZiBzdXBwb3J0ZWQgbWFzdGVyIGlkbGUgbW9kZXMKKyAqIEBzaWRsZW1vZGVzOiBiaXRtYXNrIG9mIHN1cHBvcnRlZCBzbGF2ZSBpZGxlIG1vZGVzCiAgKiBAc3JzdF91ZGVsYXk6IG9wdGlvbmFsIGRlbGF5IG5lZWRlZCBhZnRlciBPQ1Agc29mdCByZXNldAogICogQHF1aXJrczogYml0bWFzayBvZiBlbmFibGVkIHF1aXJrcwogICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIGIvaW5jbHVkZS9saW51eC9wcmludGsuaAppbmRleCBjZWZkMzc0Li5jMDlkNjdlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3ByaW50ay5oCisrKyBiL2luY2x1ZGUvbGludXgvcHJpbnRrLmgKQEAgLTQ4OCwxMyArNDg4LDYgQEAgZXh0ZXJuIGludCBoZXhfZHVtcF90b19idWZmZXIoY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuLCBpbnQgcm93c2l6ZSwKIGV4dGVybiB2b2lkIHByaW50X2hleF9kdW1wKGNvbnN0IGNoYXIgKmxldmVsLCBjb25zdCBjaGFyICpwcmVmaXhfc3RyLAogCQkJICAgaW50IHByZWZpeF90eXBlLCBpbnQgcm93c2l6ZSwgaW50IGdyb3Vwc2l6ZSwKIAkJCSAgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwgYm9vbCBhc2NpaSk7Ci0jaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19ERUJVRykKLSNkZWZpbmUgcHJpbnRfaGV4X2R1bXBfYnl0ZXMocHJlZml4X3N0ciwgcHJlZml4X3R5cGUsIGJ1ZiwgbGVuKQlcCi0JZHluYW1pY19oZXhfZHVtcChwcmVmaXhfc3RyLCBwcmVmaXhfdHlwZSwgMTYsIDEsIGJ1ZiwgbGVuLCB0cnVlKQotI2Vsc2UKLWV4dGVybiB2b2lkIHByaW50X2hleF9kdW1wX2J5dGVzKGNvbnN0IGNoYXIgKnByZWZpeF9zdHIsIGludCBwcmVmaXhfdHlwZSwKLQkJCQkgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKTsKLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19EWU5BTUlDX0RFQlVHKSAqLwogI2Vsc2UKIHN0YXRpYyBpbmxpbmUgdm9pZCBwcmludF9oZXhfZHVtcChjb25zdCBjaGFyICpsZXZlbCwgY29uc3QgY2hhciAqcHJlZml4X3N0ciwKIAkJCQkgIGludCBwcmVmaXhfdHlwZSwgaW50IHJvd3NpemUsIGludCBncm91cHNpemUsCkBAIC01MjYsNCArNTE5LDE5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwcmludF9oZXhfZHVtcF9kZWJ1Zyhjb25zdCBjaGFyICpwcmVmaXhfc3RyLCBpbnQgcHJlZml4X3R5cGUsCiB9CiAjZW5kaWYKIAorLyoqCisgKiBwcmludF9oZXhfZHVtcF9ieXRlcyAtIHNob3J0aGFuZCBmb3JtIG9mIHByaW50X2hleF9kdW1wKCkgd2l0aCBkZWZhdWx0IHBhcmFtcworICogQHByZWZpeF9zdHI6IHN0cmluZyB0byBwcmVmaXggZWFjaCBsaW5lIHdpdGg7CisgKiAgY2FsbGVyIHN1cHBsaWVzIHRyYWlsaW5nIHNwYWNlcyBmb3IgYWxpZ25tZW50IGlmIGRlc2lyZWQKKyAqIEBwcmVmaXhfdHlwZTogY29udHJvbHMgd2hldGhlciBwcmVmaXggb2YgYW4gb2Zmc2V0LCBhZGRyZXNzLCBvciBub25lCisgKiAgaXMgcHJpbnRlZCAoJURVTVBfUFJFRklYX09GRlNFVCwgJURVTVBfUFJFRklYX0FERFJFU1MsICVEVU1QX1BSRUZJWF9OT05FKQorICogQGJ1ZjogZGF0YSBibG9iIHRvIGR1bXAKKyAqIEBsZW46IG51bWJlciBvZiBieXRlcyBpbiB0aGUgQGJ1ZgorICoKKyAqIENhbGxzIHByaW50X2hleF9kdW1wKCksIHdpdGggbG9nIGxldmVsIG9mIEtFUk5fREVCVUcsCisgKiByb3dzaXplIG9mIDE2LCBncm91cHNpemUgb2YgMSwgYW5kIEFTQ0lJIG91dHB1dCBpbmNsdWRlZC4KKyAqLworI2RlZmluZSBwcmludF9oZXhfZHVtcF9ieXRlcyhwcmVmaXhfc3RyLCBwcmVmaXhfdHlwZSwgYnVmLCBsZW4pCVwKKwlwcmludF9oZXhfZHVtcF9kZWJ1ZyhwcmVmaXhfc3RyLCBwcmVmaXhfdHlwZSwgMTYsIDEsIGJ1ZiwgbGVuLCB0cnVlKQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHdtLmggYi9pbmNsdWRlL2xpbnV4L3B3bS5oCmluZGV4IDI0NjMyYTcuLmIyYzljNDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcHdtLmgKKysrIGIvaW5jbHVkZS9saW51eC9wd20uaApAQCAtMjYyLDcgKzI2Miw3IEBAIHN0cnVjdCBwd21fb3BzIHsKIAlpbnQgKCpjYXB0dXJlKShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpwd20sCiAJCSAgICAgICBzdHJ1Y3QgcHdtX2NhcHR1cmUgKnJlc3VsdCwgdW5zaWduZWQgbG9uZyB0aW1lb3V0KTsKIAlpbnQgKCphcHBseSkoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAotCQkgICAgIHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKTsKKwkJICAgICBjb25zdCBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSk7CiAJdm9pZCAoKmdldF9zdGF0ZSkoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAogCQkJICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSk7CiAJc3RydWN0IG1vZHVsZSAqb3duZXI7CkBAIC0zMTYsNyArMzE2LDcgQEAgc3RydWN0IHB3bV9jYXB0dXJlIHsKIC8qIFBXTSB1c2VyIEFQSXMgKi8KIHN0cnVjdCBwd21fZGV2aWNlICpwd21fcmVxdWVzdChpbnQgcHdtX2lkLCBjb25zdCBjaGFyICpsYWJlbCk7CiB2b2lkIHB3bV9mcmVlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOwotaW50IHB3bV9hcHBseV9zdGF0ZShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSk7CitpbnQgcHdtX2FwcGx5X3N0YXRlKHN0cnVjdCBwd21fZGV2aWNlICpwd20sIGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKTsKIGludCBwd21fYWRqdXN0X2NvbmZpZyhzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKTsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3FlZC9xZWRfcmRtYV9pZi5oIGIvaW5jbHVkZS9saW51eC9xZWQvcWVkX3JkbWFfaWYuaAppbmRleCA4OThmNTk1Li43NGVmY2ExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3FlZC9xZWRfcmRtYV9pZi5oCisrKyBiL2luY2x1ZGUvbGludXgvcWVkL3FlZF9yZG1hX2lmLmgKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdHJ1Y3QgcWVkX3JkbWFfc3RhcnRfaW5fcGFyYW1zIHsKIAogc3RydWN0IHFlZF9yZG1hX2FkZF91c2VyX291dF9wYXJhbXMgewogCXUxNiBkcGk7Ci0JdTY0IGRwaV9hZGRyOworCXZvaWQgX19pb21lbSAqZHBpX2FkZHI7CiAJdTY0IGRwaV9waHlzX2FkZHI7CiAJdTMyIGRwaV9zaXplOwogCXUxNiB3aWRfY291bnQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3F1aWNrbGlzdC5oIGIvaW5jbHVkZS9saW51eC9xdWlja2xpc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM0OTgyYzkuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9saW51eC9xdWlja2xpc3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCi0jaWZuZGVmIExJTlVYX1FVSUNLTElTVF9ICi0jZGVmaW5lIExJTlVYX1FVSUNLTElTVF9ICi0vKgotICogRmFzdCBhbGxvY2F0aW9ucyBhbmQgZGlzcG9zYWwgb2YgcGFnZXMuIFBhZ2VzIG11c3QgYmUgaW4gdGhlIGNvbmRpdGlvbgotICogYXMgbmVlZGVkIGFmdGVyIGFsbG9jYXRpb24gd2hlbiB0aGV5IGFyZSBmcmVlZC4gUGVyIGNwdSBsaXN0cyBvZiBwYWdlcwotICogYXJlIGtlcHQgdGhhdCBvbmx5IGNvbnRhaW4gbm9kZSBsb2NhbCBwYWdlcy4KLSAqCi0gKiAoQykgMjAwNywgU0dJLiBDaHJpc3RvcGggTGFtZXRlciA8Y2xAbGludXguY29tPgotICovCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvZ2ZwLmg+Ci0jaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+Ci0KLSNpZmRlZiBDT05GSUdfUVVJQ0tMSVNUCi0KLXN0cnVjdCBxdWlja2xpc3QgewotCXZvaWQgKnBhZ2U7Ci0JaW50IG5yX3BhZ2VzOwotfTsKLQotREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCBxdWlja2xpc3QsIHF1aWNrbGlzdClbQ09ORklHX05SX1FVSUNLXTsKLQotLyoKLSAqIFRoZSB0d28ga2V5IGZ1bmN0aW9ucyBxdWlja2xpc3RfYWxsb2MgYW5kIHF1aWNrbGlzdF9mcmVlIGFyZSBpbmxpbmUgc28KLSAqIHRoYXQgdGhleSBtYXkgYmUgY3VzdG9tIGNvbXBpbGVkIGZvciB0aGUgcGxhdGZvcm0uCi0gKiBTcGVjaWZ5aW5nIGEgTlVMTCBjdG9yIGNhbiByZW1vdmUgY29uc3RydWN0b3Igc3VwcG9ydC4gU3BlY2lmeWluZwotICogYSBjb25zdGFudCBxdWlja2xpc3QgYWxsb3dzIHRoZSBkZXRlcm1pbmF0aW9uIG9mIHRoZSBleGFjdCBhZGRyZXNzCi0gKiBpbiB0aGUgcGVyIGNwdSBhcmVhLgotICoKLSAqIFRoZSBmYXN0IHBhdGNoIGluIHF1aWNrbGlzdF9hbGxvYyB0b3VjaGVkIG9ubHkgYSBwZXIgY3B1IGNhY2hlbGluZSBhbmQKLSAqIHRoZSBmaXJzdCBjYWNoZWxpbmUgb2YgdGhlIHBhZ2UgaXRzZWxmLiBUaGVyZSBpcyBtaW5tYWwgb3ZlcmhlYWQgaW52b2x2ZWQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCAqcXVpY2tsaXN0X2FsbG9jKGludCBuciwgZ2ZwX3QgZmxhZ3MsIHZvaWQgKCpjdG9yKSh2b2lkICopKQotewotCXN0cnVjdCBxdWlja2xpc3QgKnE7Ci0Jdm9pZCAqKnAgPSBOVUxMOwotCi0JcSA9JmdldF9jcHVfdmFyKHF1aWNrbGlzdClbbnJdOwotCXAgPSBxLT5wYWdlOwotCWlmIChsaWtlbHkocCkpIHsKLQkJcS0+cGFnZSA9IHBbMF07Ci0JCXBbMF0gPSBOVUxMOwotCQlxLT5ucl9wYWdlcy0tOwotCX0KLQlwdXRfY3B1X3ZhcihxdWlja2xpc3QpOwotCWlmIChsaWtlbHkocCkpCi0JCXJldHVybiBwOwotCi0JcCA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlKGZsYWdzIHwgX19HRlBfWkVSTyk7Ci0JaWYgKGN0b3IgJiYgcCkKLQkJY3RvcihwKTsKLQlyZXR1cm4gcDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIF9fcXVpY2tsaXN0X2ZyZWUoaW50IG5yLCB2b2lkICgqZHRvcikodm9pZCAqKSwgdm9pZCAqcCwKLQlzdHJ1Y3QgcGFnZSAqcGFnZSkKLXsKLQlzdHJ1Y3QgcXVpY2tsaXN0ICpxOwotCi0JcSA9ICZnZXRfY3B1X3ZhcihxdWlja2xpc3QpW25yXTsKLQkqKHZvaWQgKiopcCA9IHEtPnBhZ2U7Ci0JcS0+cGFnZSA9IHA7Ci0JcS0+bnJfcGFnZXMrKzsKLQlwdXRfY3B1X3ZhcihxdWlja2xpc3QpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgcXVpY2tsaXN0X2ZyZWUoaW50IG5yLCB2b2lkICgqZHRvcikodm9pZCAqKSwgdm9pZCAqcHApCi17Ci0JX19xdWlja2xpc3RfZnJlZShuciwgZHRvciwgcHAsIHZpcnRfdG9fcGFnZShwcCkpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgcXVpY2tsaXN0X2ZyZWVfcGFnZShpbnQgbnIsIHZvaWQgKCpkdG9yKSh2b2lkICopLAotCQkJCQkJCXN0cnVjdCBwYWdlICpwYWdlKQotewotCV9fcXVpY2tsaXN0X2ZyZWUobnIsIGR0b3IsIHBhZ2VfYWRkcmVzcyhwYWdlKSwgcGFnZSk7Ci19Ci0KLXZvaWQgcXVpY2tsaXN0X3RyaW0oaW50IG5yLCB2b2lkICgqZHRvcikodm9pZCAqKSwKLQl1bnNpZ25lZCBsb25nIG1pbl9wYWdlcywgdW5zaWduZWQgbG9uZyBtYXhfZnJlZSk7Ci0KLXVuc2lnbmVkIGxvbmcgcXVpY2tsaXN0X3RvdGFsX3NpemUodm9pZCk7Ci0KLSNlbHNlCi0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBxdWlja2xpc3RfdG90YWxfc2l6ZSh2b2lkKQotewotCXJldHVybiAwOwotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8qIExJTlVYX1FVSUNLTElTVF9IICovCi0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcXVvdGFvcHMuaCBiL2luY2x1ZGUvbGludXgvcXVvdGFvcHMuaAppbmRleCBkYzkwNWE0Li4xODVkOTQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3F1b3Rhb3BzLmgKKysrIGIvaW5jbHVkZS9saW51eC9xdW90YW9wcy5oCkBAIC0yMiw3ICsyMiw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHF1b3RhX2luZm8gKnNiX2Rxb3B0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAvKiBpX211dGV4IG11c3QgYmVpbmcgaGVsZCAqLwogc3RhdGljIGlubGluZSBib29sIGlzX3F1b3RhX21vZGlmaWNhdGlvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaWF0dHIgKmlhKQogewotCXJldHVybiAoaWEtPmlhX3ZhbGlkICYgQVRUUl9TSVpFICYmIGlhLT5pYV9zaXplICE9IGlub2RlLT5pX3NpemUpIHx8CisJcmV0dXJuIChpYS0+aWFfdmFsaWQgJiBBVFRSX1NJWkUpIHx8CiAJCShpYS0+aWFfdmFsaWQgJiBBVFRSX1VJRCAmJiAhdWlkX2VxKGlhLT5pYV91aWQsIGlub2RlLT5pX3VpZCkpIHx8CiAJCShpYS0+aWFfdmFsaWQgJiBBVFRSX0dJRCAmJiAhZ2lkX2VxKGlhLT5pYV9naWQsIGlub2RlLT5pX2dpZCkpOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yYW1mcy5oIGIvaW5jbHVkZS9saW51eC9yYW1mcy5oCmluZGV4IGVlNTgyYmQuLmI4MDZhMGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcmFtZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3JhbWZzLmgKQEAgLTQsOCArNCw3IEBACiAKIHN0cnVjdCBpbm9kZSAqcmFtZnNfZ2V0X2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGNvbnN0IHN0cnVjdCBpbm9kZSAqZGlyLAogCSB1bW9kZV90IG1vZGUsIGRldl90IGRldik7Ci1leHRlcm4gc3RydWN0IGRlbnRyeSAqcmFtZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsCi0JIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpOworZXh0ZXJuIGludCByYW1mc19pbml0X2ZzX2NvbnRleHQoc3RydWN0IGZzX2NvbnRleHQgKmZjKTsKIAogI2lmZGVmIENPTkZJR19NTVUKIHN0YXRpYyBpbmxpbmUgaW50CkBAIC0xNyw5ICsxNiw4IEBAIHJhbWZzX25vbW11X2V4cGFuZF9mb3JfbWFwcGluZyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzaXplX3QgbmV3c2l6ZSkKIGV4dGVybiBpbnQgcmFtZnNfbm9tbXVfZXhwYW5kX2Zvcl9tYXBwaW5nKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHNpemVfdCBuZXdzaXplKTsKICNlbmRpZgogCitleHRlcm4gY29uc3Qgc3RydWN0IGZzX3BhcmFtZXRlcl9kZXNjcmlwdGlvbiByYW1mc19mc19wYXJhbWV0ZXJzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcmFtZnNfZmlsZV9vcGVyYXRpb25zOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBnZW5lcmljX2ZpbGVfdm1fb3BzOwogCi1pbnQgcmFtZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KTsKLQogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3JidHJlZV9hdWdtZW50ZWQuaCBiL2luY2x1ZGUvbGludXgvcmJ0cmVlX2F1Z21lbnRlZC5oCmluZGV4IDE3OWZhYWIuLmZkZDQyMWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcmJ0cmVlX2F1Z21lbnRlZC5oCisrKyBiL2luY2x1ZGUvbGludXgvcmJ0cmVlX2F1Z21lbnRlZC5oCkBAIC02MCw0MSArNjAsODcgQEAgcmJfaW5zZXJ0X2F1Z21lbnRlZF9jYWNoZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsCiAJcmJfaW5zZXJ0X2F1Z21lbnRlZChub2RlLCAmcm9vdC0+cmJfcm9vdCwgYXVnbWVudCk7CiB9CiAKLSNkZWZpbmUgUkJfREVDTEFSRV9DQUxMQkFDS1MocmJzdGF0aWMsIHJibmFtZSwgcmJzdHJ1Y3QsIHJiZmllbGQsCVwKLQkJCSAgICAgcmJ0eXBlLCByYmF1Z21lbnRlZCwgcmJjb21wdXRlKQkJXAorLyoKKyAqIFRlbXBsYXRlIGZvciBkZWNsYXJpbmcgYXVnbWVudGVkIHJidHJlZSBjYWxsYmFja3MgKGdlbmVyaWMgY2FzZSkKKyAqCisgKiBSQlNUQVRJQzogICAgJ3N0YXRpYycgb3IgZW1wdHkKKyAqIFJCTkFNRTogICAgICBuYW1lIG9mIHRoZSByYl9hdWdtZW50X2NhbGxiYWNrcyBzdHJ1Y3R1cmUKKyAqIFJCU1RSVUNUOiAgICBzdHJ1Y3QgdHlwZSBvZiB0aGUgdHJlZSBub2RlcworICogUkJGSUVMRDogICAgIG5hbWUgb2Ygc3RydWN0IHJiX25vZGUgZmllbGQgd2l0aGluIFJCU1RSVUNUCisgKiBSQkFVR01FTlRFRDogbmFtZSBvZiBmaWVsZCB3aXRoaW4gUkJTVFJVQ1QgaG9sZGluZyBkYXRhIGZvciBzdWJ0cmVlCisgKiBSQkNPTVBVVEU6ICAgbmFtZSBvZiBmdW5jdGlvbiB0aGF0IHJlY29tcHV0ZXMgdGhlIFJCQVVHTUVOVEVEIGRhdGEKKyAqLworCisjZGVmaW5lIFJCX0RFQ0xBUkVfQ0FMTEJBQ0tTKFJCU1RBVElDLCBSQk5BTUUsCQkJCVwKKwkJCSAgICAgUkJTVFJVQ1QsIFJCRklFTEQsIFJCQVVHTUVOVEVELCBSQkNPTVBVVEUpCVwKIHN0YXRpYyBpbmxpbmUgdm9pZAkJCQkJCQlcCi1yYm5hbWUgIyMgX3Byb3BhZ2F0ZShzdHJ1Y3QgcmJfbm9kZSAqcmIsIHN0cnVjdCByYl9ub2RlICpzdG9wKQkJXAorUkJOQU1FICMjIF9wcm9wYWdhdGUoc3RydWN0IHJiX25vZGUgKnJiLCBzdHJ1Y3QgcmJfbm9kZSAqc3RvcCkJCVwKIHsJCQkJCQkJCQlcCiAJd2hpbGUgKHJiICE9IHN0b3ApIHsJCQkJCQlcCi0JCXJic3RydWN0ICpub2RlID0gcmJfZW50cnkocmIsIHJic3RydWN0LCByYmZpZWxkKTsJXAotCQlyYnR5cGUgYXVnbWVudGVkID0gcmJjb21wdXRlKG5vZGUpOwkJCVwKLQkJaWYgKG5vZGUtPnJiYXVnbWVudGVkID09IGF1Z21lbnRlZCkJCQlcCisJCVJCU1RSVUNUICpub2RlID0gcmJfZW50cnkocmIsIFJCU1RSVUNULCBSQkZJRUxEKTsJXAorCQlpZiAoUkJDT01QVVRFKG5vZGUsIHRydWUpKQkJCQlcCiAJCQlicmVhazsJCQkJCQlcCi0JCW5vZGUtPnJiYXVnbWVudGVkID0gYXVnbWVudGVkOwkJCQlcCi0JCXJiID0gcmJfcGFyZW50KCZub2RlLT5yYmZpZWxkKTsJCQkJXAorCQlyYiA9IHJiX3BhcmVudCgmbm9kZS0+UkJGSUVMRCk7CQkJCVwKIAl9CQkJCQkJCQlcCiB9CQkJCQkJCQkJXAogc3RhdGljIGlubGluZSB2b2lkCQkJCQkJCVwKLXJibmFtZSAjIyBfY29weShzdHJ1Y3QgcmJfbm9kZSAqcmJfb2xkLCBzdHJ1Y3QgcmJfbm9kZSAqcmJfbmV3KQkJXAorUkJOQU1FICMjIF9jb3B5KHN0cnVjdCByYl9ub2RlICpyYl9vbGQsIHN0cnVjdCByYl9ub2RlICpyYl9uZXcpCQlcCiB7CQkJCQkJCQkJXAotCXJic3RydWN0ICpvbGQgPSByYl9lbnRyeShyYl9vbGQsIHJic3RydWN0LCByYmZpZWxkKTsJCVwKLQlyYnN0cnVjdCAqbmV3ID0gcmJfZW50cnkocmJfbmV3LCByYnN0cnVjdCwgcmJmaWVsZCk7CQlcCi0JbmV3LT5yYmF1Z21lbnRlZCA9IG9sZC0+cmJhdWdtZW50ZWQ7CQkJCVwKKwlSQlNUUlVDVCAqb2xkID0gcmJfZW50cnkocmJfb2xkLCBSQlNUUlVDVCwgUkJGSUVMRCk7CQlcCisJUkJTVFJVQ1QgKm5ldyA9IHJiX2VudHJ5KHJiX25ldywgUkJTVFJVQ1QsIFJCRklFTEQpOwkJXAorCW5ldy0+UkJBVUdNRU5URUQgPSBvbGQtPlJCQVVHTUVOVEVEOwkJCQlcCiB9CQkJCQkJCQkJXAogc3RhdGljIHZvaWQJCQkJCQkJCVwKLXJibmFtZSAjIyBfcm90YXRlKHN0cnVjdCByYl9ub2RlICpyYl9vbGQsIHN0cnVjdCByYl9ub2RlICpyYl9uZXcpCVwKK1JCTkFNRSAjIyBfcm90YXRlKHN0cnVjdCByYl9ub2RlICpyYl9vbGQsIHN0cnVjdCByYl9ub2RlICpyYl9uZXcpCVwKIHsJCQkJCQkJCQlcCi0JcmJzdHJ1Y3QgKm9sZCA9IHJiX2VudHJ5KHJiX29sZCwgcmJzdHJ1Y3QsIHJiZmllbGQpOwkJXAotCXJic3RydWN0ICpuZXcgPSByYl9lbnRyeShyYl9uZXcsIHJic3RydWN0LCByYmZpZWxkKTsJCVwKLQluZXctPnJiYXVnbWVudGVkID0gb2xkLT5yYmF1Z21lbnRlZDsJCQkJXAotCW9sZC0+cmJhdWdtZW50ZWQgPSByYmNvbXB1dGUob2xkKTsJCQkJXAorCVJCU1RSVUNUICpvbGQgPSByYl9lbnRyeShyYl9vbGQsIFJCU1RSVUNULCBSQkZJRUxEKTsJCVwKKwlSQlNUUlVDVCAqbmV3ID0gcmJfZW50cnkocmJfbmV3LCBSQlNUUlVDVCwgUkJGSUVMRCk7CQlcCisJbmV3LT5SQkFVR01FTlRFRCA9IG9sZC0+UkJBVUdNRU5URUQ7CQkJCVwKKwlSQkNPTVBVVEUob2xkLCBmYWxzZSk7CQkJCQkJXAogfQkJCQkJCQkJCVwKLXJic3RhdGljIGNvbnN0IHN0cnVjdCByYl9hdWdtZW50X2NhbGxiYWNrcyByYm5hbWUgPSB7CQkJXAotCS5wcm9wYWdhdGUgPSByYm5hbWUgIyMgX3Byb3BhZ2F0ZSwJCQkJXAotCS5jb3B5ID0gcmJuYW1lICMjIF9jb3B5LAkJCQkJXAotCS5yb3RhdGUgPSByYm5hbWUgIyMgX3JvdGF0ZQkJCQkJXAorUkJTVEFUSUMgY29uc3Qgc3RydWN0IHJiX2F1Z21lbnRfY2FsbGJhY2tzIFJCTkFNRSA9IHsJCQlcCisJLnByb3BhZ2F0ZSA9IFJCTkFNRSAjIyBfcHJvcGFnYXRlLAkJCQlcCisJLmNvcHkgPSBSQk5BTUUgIyMgX2NvcHksCQkJCQlcCisJLnJvdGF0ZSA9IFJCTkFNRSAjIyBfcm90YXRlCQkJCQlcCiB9OwogCisvKgorICogVGVtcGxhdGUgZm9yIGRlY2xhcmluZyBhdWdtZW50ZWQgcmJ0cmVlIGNhbGxiYWNrcywKKyAqIGNvbXB1dGluZyBSQkFVR01FTlRFRCBzY2FsYXIgYXMgbWF4KFJCQ09NUFVURShub2RlKSkgZm9yIGFsbCBzdWJ0cmVlIG5vZGVzLgorICoKKyAqIFJCU1RBVElDOiAgICAnc3RhdGljJyBvciBlbXB0eQorICogUkJOQU1FOiAgICAgIG5hbWUgb2YgdGhlIHJiX2F1Z21lbnRfY2FsbGJhY2tzIHN0cnVjdHVyZQorICogUkJTVFJVQ1Q6ICAgIHN0cnVjdCB0eXBlIG9mIHRoZSB0cmVlIG5vZGVzCisgKiBSQkZJRUxEOiAgICAgbmFtZSBvZiBzdHJ1Y3QgcmJfbm9kZSBmaWVsZCB3aXRoaW4gUkJTVFJVQ1QKKyAqIFJCVFlQRTogICAgICB0eXBlIG9mIHRoZSBSQkFVR01FTlRFRCBmaWVsZAorICogUkJBVUdNRU5URUQ6IG5hbWUgb2YgUkJUWVBFIGZpZWxkIHdpdGhpbiBSQlNUUlVDVCBob2xkaW5nIGRhdGEgZm9yIHN1YnRyZWUKKyAqIFJCQ09NUFVURTogICBuYW1lIG9mIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgcGVyLW5vZGUgUkJUWVBFIHNjYWxhcgorICovCisKKyNkZWZpbmUgUkJfREVDTEFSRV9DQUxMQkFDS1NfTUFYKFJCU1RBVElDLCBSQk5BTUUsIFJCU1RSVUNULCBSQkZJRUxELAkgICAgICBcCisJCQkJIFJCVFlQRSwgUkJBVUdNRU5URUQsIFJCQ09NUFVURSkJICAgICAgXAorc3RhdGljIGlubGluZSBib29sIFJCTkFNRSAjIyBfY29tcHV0ZV9tYXgoUkJTVFJVQ1QgKm5vZGUsIGJvb2wgZXhpdCkJICAgICAgXAorewkJCQkJCQkJCSAgICAgIFwKKwlSQlNUUlVDVCAqY2hpbGQ7CQkJCQkJICAgICAgXAorCVJCVFlQRSBtYXggPSBSQkNPTVBVVEUobm9kZSk7CQkJCQkgICAgICBcCisJaWYgKG5vZGUtPlJCRklFTEQucmJfbGVmdCkgewkJCQkJICAgICAgXAorCQljaGlsZCA9IHJiX2VudHJ5KG5vZGUtPlJCRklFTEQucmJfbGVmdCwgUkJTVFJVQ1QsIFJCRklFTEQpOyAgIFwKKwkJaWYgKGNoaWxkLT5SQkFVR01FTlRFRCA+IG1heCkJCQkJICAgICAgXAorCQkJbWF4ID0gY2hpbGQtPlJCQVVHTUVOVEVEOwkJCSAgICAgIFwKKwl9CQkJCQkJCQkgICAgICBcCisJaWYgKG5vZGUtPlJCRklFTEQucmJfcmlnaHQpIHsJCQkJCSAgICAgIFwKKwkJY2hpbGQgPSByYl9lbnRyeShub2RlLT5SQkZJRUxELnJiX3JpZ2h0LCBSQlNUUlVDVCwgUkJGSUVMRCk7ICBcCisJCWlmIChjaGlsZC0+UkJBVUdNRU5URUQgPiBtYXgpCQkJCSAgICAgIFwKKwkJCW1heCA9IGNoaWxkLT5SQkFVR01FTlRFRDsJCQkgICAgICBcCisJfQkJCQkJCQkJICAgICAgXAorCWlmIChleGl0ICYmIG5vZGUtPlJCQVVHTUVOVEVEID09IG1heCkJCQkJICAgICAgXAorCQlyZXR1cm4gdHJ1ZTsJCQkJCQkgICAgICBcCisJbm9kZS0+UkJBVUdNRU5URUQgPSBtYXg7CQkJCQkgICAgICBcCisJcmV0dXJuIGZhbHNlOwkJCQkJCQkgICAgICBcCit9CQkJCQkJCQkJICAgICAgXAorUkJfREVDTEFSRV9DQUxMQkFDS1MoUkJTVEFUSUMsIFJCTkFNRSwJCQkJCSAgICAgIFwKKwkJICAgICBSQlNUUlVDVCwgUkJGSUVMRCwgUkJBVUdNRU5URUQsIFJCTkFNRSAjIyBfY29tcHV0ZV9tYXgpCisKIAogI2RlZmluZQlSQl9SRUQJCTAKICNkZWZpbmUJUkJfQkxBQ0sJMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yY3V3YWl0LmggYi9pbmNsdWRlL2xpbnV4L3JjdXdhaXQuaAppbmRleCA1NjMyOTBmLi43NWM5N2U0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3JjdXdhaXQuaAorKysgYi9pbmNsdWRlL2xpbnV4L3JjdXdhaXQuaApAQCAtNiwxNiArNiwxMSBAQAogCiAvKgogICogcmN1d2FpdCBwcm92aWRlcyBhIHdheSBvZiBibG9ja2luZyBhbmQgd2FraW5nIHVwIGEgc2luZ2xlCi0gKiB0YXNrIGluIGFuIHJjdS1zYWZlIG1hbm5lcjsgd2hlcmUgaXQgaXMgZm9yYmlkZGVuIHRvIHVzZQotICogYWZ0ZXIgZXhpdF9ub3RpZnkoKS4gdGFza19zdHJ1Y3QgaXMgbm90IHByb3Blcmx5IHJjdSBwcm90ZWN0ZWQsCi0gKiB1bmxlc3MgZGVhbGluZyB3aXRoIHJjdS1hd2FyZSBsaXN0cywgaWU6IGZpbmRfdGFza19ieV8qKCkuCisgKiB0YXNrIGluIGFuIHJjdS1zYWZlIG1hbm5lci4KICAqCi0gKiBBbHRlcm5hdGl2ZWx5IHdlIGhhdmUgdGFza19yY3VfZGVyZWZlcmVuY2UoKSwgYnV0IHRoZSByZXR1cm4KLSAqIHNlbWFudGljcyBoYXZlIGRpZmZlcmVudCBpbXBsaWNhdGlvbnMgd2hpY2ggd291bGQgYnJlYWsgdGhlCi0gKiB3YWtldXAgc2lkZS4gVGhlIG9ubHkgdGltZSBAdGFzayBpcyBub24tbmlsIGlzIHdoZW4gYSB1c2VyIGlzCi0gKiBibG9ja2VkIChvciBjaGVja2luZyBpZiBpdCBuZWVkcyB0bykgb24gYSBjb25kaXRpb24sIGFuZCByZXNldAotICogYXMgc29vbiBhcyB3ZSBrbm93IHRoYXQgdGhlIGNvbmRpdGlvbiBoYXMgc3VjY2VlZGVkIGFuZCBhcmUKLSAqIGF3b2tlbi4KKyAqIFRoZSBvbmx5IHRpbWUgQHRhc2sgaXMgbm9uLW5pbCBpcyB3aGVuIGEgdXNlciBpcyBibG9ja2VkIChvcgorICogY2hlY2tpbmcgaWYgaXQgbmVlZHMgdG8pIG9uIGEgY29uZGl0aW9uLCBhbmQgcmVzZXQgYXMgc29vbiBhcyB3ZQorICoga25vdyB0aGF0IHRoZSBjb25kaXRpb24gaGFzIHN1Y2NlZWRlZCBhbmQgYXJlIGF3b2tlbi4KICAqLwogc3RydWN0IHJjdXdhaXQgewogCXN0cnVjdCB0YXNrX3N0cnVjdCBfX3JjdSAqdGFzazsKQEAgLTM3LDEzICszMiw2IEBAIGV4dGVybiB2b2lkIHJjdXdhaXRfd2FrZV91cChzdHJ1Y3QgcmN1d2FpdCAqdyk7CiAgKi8KICNkZWZpbmUgcmN1d2FpdF93YWl0X2V2ZW50KHcsIGNvbmRpdGlvbikJCQkJXAogKHsJCQkJCQkJCQlcCi0JLyoJCQkJCQkJCVwKLQkgKiBDb21wbGFpbiBpZiB3ZSBhcmUgY2FsbGVkIGFmdGVyIGRvX2V4aXQoKS9leGl0X25vdGlmeSgpLCAgICAgXAotCSAqIGFzIHdlIGNhbm5vdCByZWx5IG9uIHRoZSByY3UgY3JpdGljYWwgcmVnaW9uIGZvciB0aGUJCVwKLQkgKiB3YWtldXAgc2lkZS4JCQkJCQkJXAotCSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0JV0FSTl9PTihjdXJyZW50LT5leGl0X3N0YXRlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkJCQkJCQkJCVwKIAlyY3VfYXNzaWduX3BvaW50ZXIoKHcpLT50YXNrLCBjdXJyZW50KTsJCQkJXAogCWZvciAoOzspIHsJCQkJCQkJXAogCQkvKgkJCQkJCQlcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmggYi9pbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0NGEyMmQuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMjk3ICswLDAgQEAKLS8qCi0gKiBIZWFkZXIgZmlsZSBmb3IgcmVzZXJ2YXRpb25zIGZvciBkbWEtYnVmIGFuZCB0dG0KLSAqCi0gKiBDb3B5cmlnaHQoQykgMjAxMSBMaW5hcm8gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIENhbm9uaWNhbCBMdGQKLSAqIENvcHlyaWdodCAoQykgMjAxMiBUZXhhcyBJbnN0cnVtZW50cwotICoKLSAqIEF1dGhvcnM6Ci0gKiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Ci0gKiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAY2Fub25pY2FsLmNvbT4KLSAqIFRob21hcyBIZWxsc3Ryb20gPHRoZWxsc3Ryb20tYXQtdm13YXJlLWRvdC1jb20+Ci0gKgotICogQmFzZWQgb24gYm8uYyB3aGljaCBiZWFycyB0aGUgZm9sbG93aW5nIGNvcHlyaWdodCBub3RpY2UsCi0gKiBidXQgaXMgZHVhbCBsaWNlbnNlZDoKLSAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOSBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0EKLSAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSAqIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KLSAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlCi0gKiBuZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucwotICogb2YgdGhlIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIENPUFlSSUdIVCBIT0xERVJTLCBBVVRIT1JTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAotICogREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCi0gKiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCi0gKiBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICovCi0jaWZuZGVmIF9MSU5VWF9SRVNFUlZBVElPTl9ICi0jZGVmaW5lIF9MSU5VWF9SRVNFUlZBVElPTl9ICi0KLSNpbmNsdWRlIDxsaW51eC93d19tdXRleC5oPgotI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9zZXFsb2NrLmg+Ci0jaW5jbHVkZSA8bGludXgvcmN1cGRhdGUuaD4KLQotZXh0ZXJuIHN0cnVjdCB3d19jbGFzcyByZXNlcnZhdGlvbl93d19jbGFzczsKLWV4dGVybiBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgcmVzZXJ2YXRpb25fc2VxY291bnRfY2xhc3M7Ci1leHRlcm4gY29uc3QgY2hhciByZXNlcnZhdGlvbl9zZXFjb3VudF9zdHJpbmdbXTsKLQotLyoqCi0gKiBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgLSBhIGxpc3Qgb2Ygc2hhcmVkIGZlbmNlcwotICogQHJjdTogZm9yIGludGVybmFsIHVzZQotICogQHNoYXJlZF9jb3VudDogdGFibGUgb2Ygc2hhcmVkIGZlbmNlcwotICogQHNoYXJlZF9tYXg6IGZvciBncm93aW5nIHNoYXJlZCBmZW5jZSB0YWJsZQotICogQHNoYXJlZDogc2hhcmVkIGZlbmNlIHRhYmxlCi0gKi8KLXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCB7Ci0Jc3RydWN0IHJjdV9oZWFkIHJjdTsKLQl1MzIgc2hhcmVkX2NvdW50LCBzaGFyZWRfbWF4OwotCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKnNoYXJlZFtdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0IC0gYSByZXNlcnZhdGlvbiBvYmplY3QgbWFuYWdlcyBmZW5jZXMgZm9yIGEgYnVmZmVyCi0gKiBAbG9jazogdXBkYXRlIHNpZGUgbG9jawotICogQHNlcTogc2VxdWVuY2UgY291bnQgZm9yIG1hbmFnaW5nIFJDVSByZWFkLXNpZGUgc3luY2hyb25pemF0aW9uCi0gKiBAZmVuY2VfZXhjbDogdGhlIGV4Y2x1c2l2ZSBmZW5jZSwgaWYgdGhlcmUgaXMgb25lIGN1cnJlbnRseQotICogQGZlbmNlOiBsaXN0IG9mIGN1cnJlbnQgc2hhcmVkIGZlbmNlcwotICovCi1zdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0IHsKLQlzdHJ1Y3Qgd3dfbXV0ZXggbG9jazsKLQlzZXFjb3VudF90IHNlcTsKLQotCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKmZlbmNlX2V4Y2w7Ci0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0IF9fcmN1ICpmZW5jZTsKLX07Ci0KLSNkZWZpbmUgcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSBsb2NrZGVwX2lzX2hlbGQoJihvYmopLT5sb2NrLmJhc2UpCi0jZGVmaW5lIHJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChvYmopIFwKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCYob2JqKS0+bG9jay5iYXNlKQotCi0vKioKLSAqIHJlc2VydmF0aW9uX29iamVjdF9pbml0IC0gaW5pdGlhbGl6ZSBhIHJlc2VydmF0aW9uIG9iamVjdAotICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAotICovCi1zdGF0aWMgaW5saW5lIHZvaWQKLXJlc2VydmF0aW9uX29iamVjdF9pbml0KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaikKLXsKLQl3d19tdXRleF9pbml0KCZvYmotPmxvY2ssICZyZXNlcnZhdGlvbl93d19jbGFzcyk7Ci0KLQlfX3NlcWNvdW50X2luaXQoJm9iai0+c2VxLCByZXNlcnZhdGlvbl9zZXFjb3VudF9zdHJpbmcsICZyZXNlcnZhdGlvbl9zZXFjb3VudF9jbGFzcyk7Ci0JUkNVX0lOSVRfUE9JTlRFUihvYmotPmZlbmNlLCBOVUxMKTsKLQlSQ1VfSU5JVF9QT0lOVEVSKG9iai0+ZmVuY2VfZXhjbCwgTlVMTCk7Ci19Ci0KLS8qKgotICogcmVzZXJ2YXRpb25fb2JqZWN0X2ZpbmkgLSBkZXN0cm95cyBhIHJlc2VydmF0aW9uIG9iamVjdAotICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAotICovCi1zdGF0aWMgaW5saW5lIHZvaWQKLXJlc2VydmF0aW9uX29iamVjdF9maW5pKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaikKLXsKLQlpbnQgaTsKLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmo7Ci0Jc3RydWN0IGRtYV9mZW5jZSAqZXhjbDsKLQotCS8qCi0JICogVGhpcyBvYmplY3Qgc2hvdWxkIGJlIGRlYWQgYW5kIGFsbCByZWZlcmVuY2VzIG11c3QgaGF2ZQotCSAqIGJlZW4gcmVsZWFzZWQgdG8gaXQsIHNvIG5vIG5lZWQgdG8gYmUgcHJvdGVjdGVkIHdpdGggcmN1LgotCSAqLwotCWV4Y2wgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ZmVuY2VfZXhjbCwgMSk7Ci0JaWYgKGV4Y2wpCi0JCWRtYV9mZW5jZV9wdXQoZXhjbCk7Ci0KLQlmb2JqID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvYmotPmZlbmNlLCAxKTsKLQlpZiAoZm9iaikgewotCQlmb3IgKGkgPSAwOyBpIDwgZm9iai0+c2hhcmVkX2NvdW50OyArK2kpCi0JCQlkbWFfZmVuY2VfcHV0KHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoZm9iai0+c2hhcmVkW2ldLCAxKSk7Ci0KLQkJa2ZyZWUoZm9iaik7Ci0JfQotCi0Jd3dfbXV0ZXhfZGVzdHJveSgmb2JqLT5sb2NrKTsKLX0KLQotLyoqCi0gKiByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3QgLSBnZXQgdGhlIHJlc2VydmF0aW9uIG9iamVjdCdzCi0gKiBzaGFyZWQgZmVuY2UgbGlzdCwgd2l0aCB1cGRhdGUtc2lkZSBsb2NrIGhlbGQKLSAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QKLSAqCi0gKiBSZXR1cm5zIHRoZSBzaGFyZWQgZmVuY2UgbGlzdC4gIERvZXMgTk9UIHRha2UgcmVmZXJlbmNlcyB0bwotICogdGhlIGZlbmNlLiAgVGhlIG9iai0+bG9jayBtdXN0IGJlIGhlbGQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICoKLXJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCi17Ci0JcmV0dXJuIHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQob2JqLT5mZW5jZSwKLQkJCQkJIHJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iaikpOwotfQotCi0vKioKLSAqIHJlc2VydmF0aW9uX29iamVjdF9sb2NrIC0gbG9jayB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0Ci0gKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0Ci0gKiBAY3R4OiB0aGUgbG9ja2luZyBjb250ZXh0Ci0gKgotICogTG9ja3MgdGhlIHJlc2VydmF0aW9uIG9iamVjdCBmb3IgZXhjbHVzaXZlIGFjY2VzcyBhbmQgbW9kaWZpY2F0aW9uLiBOb3RlLAotICogdGhhdCB0aGUgbG9jayBpcyBvbmx5IGFnYWluc3Qgb3RoZXIgd3JpdGVycywgcmVhZGVycyB3aWxsIHJ1biBjb25jdXJyZW50bHkKLSAqIHdpdGggYSB3cml0ZXIgdW5kZXIgUkNVLiBUaGUgc2VxbG9jayBpcyB1c2VkIHRvIG5vdGlmeSByZWFkZXJzIGlmIHRoZXkKLSAqIG92ZXJsYXAgd2l0aCBhIHdyaXRlci4KLSAqCi0gKiBBcyB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0IG1heSBiZSBsb2NrZWQgYnkgbXVsdGlwbGUgcGFydGllcyBpbiBhbgotICogdW5kZWZpbmVkIG9yZGVyLCBhICN3d19hY3F1aXJlX2N0eCBpcyBwYXNzZWQgdG8gdW53aW5kIGlmIGEgY3ljbGUKLSAqIGlzIGRldGVjdGVkLiBTZWUgd3dfbXV0ZXhfbG9jaygpIGFuZCB3d19hY3F1aXJlX2luaXQoKS4gQSByZXNlcnZhdGlvbgotICogb2JqZWN0IG1heSBiZSBsb2NrZWQgYnkgaXRzZWxmIGJ5IHBhc3NpbmcgTlVMTCBhcyBAY3R4LgotICovCi1zdGF0aWMgaW5saW5lIGludAotcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2soc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAotCQkJc3RydWN0IHd3X2FjcXVpcmVfY3R4ICpjdHgpCi17Ci0JcmV0dXJuIHd3X211dGV4X2xvY2soJm9iai0+bG9jaywgY3R4KTsKLX0KLQotLyoqCi0gKiByZXNlcnZhdGlvbl9vYmplY3RfbG9ja19pbnRlcnJ1cHRpYmxlIC0gbG9jayB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0Ci0gKiBAb2JqOiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0Ci0gKiBAY3R4OiB0aGUgbG9ja2luZyBjb250ZXh0Ci0gKgotICogTG9ja3MgdGhlIHJlc2VydmF0aW9uIG9iamVjdCBpbnRlcnJ1cHRpYmxlIGZvciBleGNsdXNpdmUgYWNjZXNzIGFuZAotICogbW9kaWZpY2F0aW9uLiBOb3RlLCB0aGF0IHRoZSBsb2NrIGlzIG9ubHkgYWdhaW5zdCBvdGhlciB3cml0ZXJzLCByZWFkZXJzCi0gKiB3aWxsIHJ1biBjb25jdXJyZW50bHkgd2l0aCBhIHdyaXRlciB1bmRlciBSQ1UuIFRoZSBzZXFsb2NrIGlzIHVzZWQgdG8KLSAqIG5vdGlmeSByZWFkZXJzIGlmIHRoZXkgb3ZlcmxhcCB3aXRoIGEgd3JpdGVyLgotICoKLSAqIEFzIHRoZSByZXNlcnZhdGlvbiBvYmplY3QgbWF5IGJlIGxvY2tlZCBieSBtdWx0aXBsZSBwYXJ0aWVzIGluIGFuCi0gKiB1bmRlZmluZWQgb3JkZXIsIGEgI3d3X2FjcXVpcmVfY3R4IGlzIHBhc3NlZCB0byB1bndpbmQgaWYgYSBjeWNsZQotICogaXMgZGV0ZWN0ZWQuIFNlZSB3d19tdXRleF9sb2NrKCkgYW5kIHd3X2FjcXVpcmVfaW5pdCgpLiBBIHJlc2VydmF0aW9uCi0gKiBvYmplY3QgbWF5IGJlIGxvY2tlZCBieSBpdHNlbGYgYnkgcGFzc2luZyBOVUxMIGFzIEBjdHguCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50Ci1yZXNlcnZhdGlvbl9vYmplY3RfbG9ja19pbnRlcnJ1cHRpYmxlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICBzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKmN0eCkKLXsKLQlyZXR1cm4gd3dfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZvYmotPmxvY2ssIGN0eCk7Ci19Ci0KLQotLyoqCi0gKiByZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayAtIHRyeWxvY2sgdGhlIHJlc2VydmF0aW9uIG9iamVjdAotICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAotICoKLSAqIFRyaWVzIHRvIGxvY2sgdGhlIHJlc2VydmF0aW9uIG9iamVjdCBmb3IgZXhjbHVzaXZlIGFjY2VzcyBhbmQgbW9kaWZpY2F0aW9uLgotICogTm90ZSwgdGhhdCB0aGUgbG9jayBpcyBvbmx5IGFnYWluc3Qgb3RoZXIgd3JpdGVycywgcmVhZGVycyB3aWxsIHJ1bgotICogY29uY3VycmVudGx5IHdpdGggYSB3cml0ZXIgdW5kZXIgUkNVLiBUaGUgc2VxbG9jayBpcyB1c2VkIHRvIG5vdGlmeSByZWFkZXJzCi0gKiBpZiB0aGV5IG92ZXJsYXAgd2l0aCBhIHdyaXRlci4KLSAqCi0gKiBBbHNvIG5vdGUgdGhhdCBzaW5jZSBubyBjb250ZXh0IGlzIHByb3ZpZGVkLCBubyBkZWFkbG9jayBwcm90ZWN0aW9uIGlzCi0gKiBwb3NzaWJsZS4KLSAqCi0gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGxvY2sgd2FzIGFjcXVpcmVkLCBmYWxzZSBvdGhlcndpc2UuCi0gKi8KLXN0YXRpYyBpbmxpbmUgYm9vbCBfX211c3RfY2hlY2sKLXJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaikKLXsKLQlyZXR1cm4gd3dfbXV0ZXhfdHJ5bG9jaygmb2JqLT5sb2NrKTsKLX0KLQotLyoqCi0gKiByZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrIC0gdW5sb2NrIHRoZSByZXNlcnZhdGlvbiBvYmplY3QKLSAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QKLSAqCi0gKiBVbmxvY2tzIHRoZSByZXNlcnZhdGlvbiBvYmplY3QgZm9sbG93aW5nIGV4Y2x1c2l2ZSBhY2Nlc3MuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZAotcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCi17Ci0jaWZkZWYgQ09ORklHX0RFQlVHX01VVEVYRVMKLQkvKiBUZXN0IHNoYXJlZCBmZW5jZSBzbG90IHJlc2VydmF0aW9uICovCi0JaWYgKHJjdV9hY2Nlc3NfcG9pbnRlcihvYmotPmZlbmNlKSkgewotCQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZlbmNlID0KLQkJCXJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChvYmopOwotCi0JCWZlbmNlLT5zaGFyZWRfbWF4ID0gZmVuY2UtPnNoYXJlZF9jb3VudDsKLQl9Ci0jZW5kaWYKLQl3d19tdXRleF91bmxvY2soJm9iai0+bG9jayk7Ci19Ci0KLS8qKgotICogcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsIC0gZ2V0IHRoZSByZXNlcnZhdGlvbiBvYmplY3QncwotICogZXhjbHVzaXZlIGZlbmNlLCB3aXRoIHVwZGF0ZS1zaWRlIGxvY2sgaGVsZAotICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAotICoKLSAqIFJldHVybnMgdGhlIGV4Y2x1c2l2ZSBmZW5jZSAoaWYgYW55KS4gIERvZXMgTk9UIHRha2UgYQotICogcmVmZXJlbmNlLiBXcml0ZXJzIG11c3QgaG9sZCBvYmotPmxvY2ssIHJlYWRlcnMgbWF5IG9ubHkKLSAqIGhvbGQgYSBSQ1UgcmVhZCBzaWRlIGxvY2suCi0gKgotICogUkVUVVJOUwotICogVGhlIGV4Y2x1c2l2ZSBmZW5jZSBvciBOVUxMCi0gKi8KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqCi1yZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2woc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQotewotCXJldHVybiByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ZmVuY2VfZXhjbCwKLQkJCQkJIHJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iaikpOwotfQotCi0vKioKLSAqIHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbF9yY3UgLSBnZXQgdGhlIHJlc2VydmF0aW9uIG9iamVjdCdzCi0gKiBleGNsdXNpdmUgZmVuY2UsIHdpdGhvdXQgbG9jayBoZWxkLgotICogQG9iajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAotICoKLSAqIElmIHRoZXJlIGlzIGFuIGV4Y2x1c2l2ZSBmZW5jZSwgdGhpcyBhdG9taWNhbGx5IGluY3JlbWVudHMgaXQncwotICogcmVmZXJlbmNlIGNvdW50IGFuZCByZXR1cm5zIGl0LgotICoKLSAqIFJFVFVSTlMKLSAqIFRoZSBleGNsdXNpdmUgZmVuY2Ugb3IgTlVMTCBpZiBub25lCi0gKi8KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqCi1yZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaikKLXsKLQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKLQotCWlmICghcmN1X2FjY2Vzc19wb2ludGVyKG9iai0+ZmVuY2VfZXhjbCkpCi0JCXJldHVybiBOVUxMOwotCi0JcmN1X3JlYWRfbG9jaygpOwotCWZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3Vfc2FmZSgmb2JqLT5mZW5jZV9leGNsKTsKLQlyY3VfcmVhZF91bmxvY2soKTsKLQotCXJldHVybiBmZW5jZTsKLX0KLQotaW50IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJICAgICAgdW5zaWduZWQgaW50IG51bV9mZW5jZXMpOwotdm9pZCByZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJCSBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7Ci0KLXZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOwotCi1pbnQgcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqcGZlbmNlX2V4Y2wsCi0JCQkJICAgICAgdW5zaWduZWQgKnBzaGFyZWRfY291bnQsCi0JCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKipwc2hhcmVkKTsKLQotaW50IHJlc2VydmF0aW9uX29iamVjdF9jb3B5X2ZlbmNlcyhzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpkc3QsCi0JCQkJICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqc3JjKTsKLQotbG9uZyByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJCSBib29sIHdhaXRfYWxsLCBib29sIGludHIsCi0JCQkJCSB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwotCi1ib29sIHJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJCSAgYm9vbCB0ZXN0X2FsbCk7Ci0KLSNlbmRpZiAvKiBfTElOVVhfUkVTRVJWQVRJT05fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yb290X2Rldi5oIGIvaW5jbHVkZS9saW51eC9yb290X2Rldi5oCmluZGV4IGJhYjY3MWIuLjRlNzg2NTEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3Jvb3RfZGV2LmgKKysrIGIvaW5jbHVkZS9saW51eC9yb290X2Rldi5oCkBAIC04LDYgKzgsNyBAQAogCiBlbnVtIHsKIAlSb290X05GUyA9IE1LREVWKFVOTkFNRURfTUFKT1IsIDI1NSksCisJUm9vdF9DSUZTID0gTUtERVYoVU5OQU1FRF9NQUpPUiwgMjU0KSwKIAlSb290X1JBTTAgPSBNS0RFVihSQU1ESVNLX01BSk9SLCAwKSwKIAlSb290X1JBTTEgPSBNS0RFVihSQU1ESVNLX01BSk9SLCAxKSwKIAlSb290X0ZEMCA9IE1LREVWKEZMT1BQWV9NQUpPUiwgMCksCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NjaGVkLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgKaW5kZXggYjc1YjI4Mi4uMmMyZTU2YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1ZGUvbGludXgvc2NoZWQuaApAQCAtOTU4LDYgKzk1OCwxMCBAQCBzdHJ1Y3QgdGFza19zdHJ1Y3QgewogCXN0cnVjdCBtdXRleF93YWl0ZXIJCSpibG9ja2VkX29uOwogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfREVCVUdfQVRPTUlDX1NMRUVQCisJaW50CQkJCW5vbl9ibG9ja19jb3VudDsKKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCiAJdW5zaWduZWQgaW50CQkJaXJxX2V2ZW50czsKIAl1bnNpZ25lZCBsb25nCQkJaGFyZGlycV9lbmFibGVfaXA7CkBAIC0xMTI2LDcgKzExMzAsMTAgQEAgc3RydWN0IHRhc2tfc3RydWN0IHsKIAogCXN0cnVjdCB0bGJmbHVzaF91bm1hcF9iYXRjaAl0bGJfdWJjOwogCi0Jc3RydWN0IHJjdV9oZWFkCQkJcmN1OworCXVuaW9uIHsKKwkJcmVmY291bnRfdAkJcmN1X3VzZXJzOworCQlzdHJ1Y3QgcmN1X2hlYWQJCXJjdTsKKwl9OwogCiAJLyogQ2FjaGUgbGFzdCB1c2VkIHBpcGUgZm9yIHNwbGljZSgpOiAqLwogCXN0cnVjdCBwaXBlX2lub2RlX2luZm8JCSpzcGxpY2VfcGlwZTsKQEAgLTE4MzUsNyArMTg0MiwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Rhc2tfY3B1KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdW5zaWduZWQgaW50IGNwdSkKICAqIHJ1bm5pbmcgb3Igbm90LgogICovCiAjaWZuZGVmIHZjcHVfaXNfcHJlZW1wdGVkCi0jIGRlZmluZSB2Y3B1X2lzX3ByZWVtcHRlZChjcHUpCWZhbHNlCitzdGF0aWMgaW5saW5lIGJvb2wgdmNwdV9pc19wcmVlbXB0ZWQoaW50IGNwdSkKK3sKKwlyZXR1cm4gZmFsc2U7Cit9CiAjZW5kaWYKIAogZXh0ZXJuIGxvbmcgc2NoZWRfc2V0YWZmaW5pdHkocGlkX3QgcGlkLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbmV3X21hc2spOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC9tbS5oIGIvaW5jbHVkZS9saW51eC9zY2hlZC9tbS5oCmluZGV4IDRhNzk0NDAuLmU2NzcwMDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2NoZWQvbW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL21tLmgKQEAgLTM2MiwxNiArMzYyLDE2IEBAIGVudW0gewogCiBzdGF0aWMgaW5saW5lIHZvaWQgbWVtYmFycmllcl9tbV9zeW5jX2NvcmVfYmVmb3JlX3VzZXJtb2RlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogeworCWlmIChjdXJyZW50LT5tbSAhPSBtbSkKKwkJcmV0dXJuOwogCWlmIChsaWtlbHkoIShhdG9taWNfcmVhZCgmbW0tPm1lbWJhcnJpZXJfc3RhdGUpICYKIAkJICAgICBNRU1CQVJSSUVSX1NUQVRFX1BSSVZBVEVfRVhQRURJVEVEX1NZTkNfQ09SRSkpKQogCQlyZXR1cm47CiAJc3luY19jb3JlX2JlZm9yZV91c2VybW9kZSgpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgbWVtYmFycmllcl9leGVjdmUoc3RydWN0IHRhc2tfc3RydWN0ICp0KQotewotCWF0b21pY19zZXQoJnQtPm1tLT5tZW1iYXJyaWVyX3N0YXRlLCAwKTsKLX0KK2V4dGVybiB2b2lkIG1lbWJhcnJpZXJfZXhlY19tbWFwKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKKwogI2Vsc2UKICNpZmRlZiBDT05GSUdfQVJDSF9IQVNfTUVNQkFSUklFUl9DQUxMQkFDS1MKIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1iYXJyaWVyX2FyY2hfc3dpdGNoX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKnByZXYsCkBAIC0zODAsNyArMzgwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIG1lbWJhcnJpZXJfYXJjaF9zd2l0Y2hfbW0oc3RydWN0IG1tX3N0cnVjdCAqcHJldiwKIHsKIH0KICNlbmRpZgotc3RhdGljIGlubGluZSB2b2lkIG1lbWJhcnJpZXJfZXhlY3ZlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBtZW1iYXJyaWVyX2V4ZWNfbW1hcChzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIHsKIH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1iYXJyaWVyX21tX3N5bmNfY29yZV9iZWZvcmVfdXNlcm1vZGUoc3RydWN0IG1tX3N0cnVjdCAqbW0pCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NjaGVkL3Rhc2suaCBiL2luY2x1ZGUvbGludXgvc2NoZWQvdGFzay5oCmluZGV4IDNkOTBlZDguLjRiMWMzYjY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NjaGVkL3Rhc2suaAorKysgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL3Rhc2suaApAQCAtMTE5LDcgKzExOSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfdGFza19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICp0KQogCQlfX3B1dF90YXNrX3N0cnVjdCh0KTsKIH0KIAotc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrX3JjdV9kZXJlZmVyZW5jZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKipwdGFzayk7Cit2b2lkIHB1dF90YXNrX3N0cnVjdF9yY3VfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwogCiAjaWZkZWYgQ09ORklHX0FSQ0hfV0FOVFNfRFlOQU1JQ19UQVNLX1NUUlVDVAogZXh0ZXJuIGludCBhcmNoX3Rhc2tfc3RydWN0X3NpemUgX19yZWFkX21vc3RseTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaCBiL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaAppbmRleCA1Zjc0NDFhLi5hOGQ1OWQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgKKysrIGIvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCkBAIC03Nyw2ICs3Nyw1NCBAQCBlbnVtIGxzbV9ldmVudCB7CiAJTFNNX1BPTElDWV9DSEFOR0UsCiB9OwogCisvKgorICogVGhlc2UgYXJlIHJlYXNvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBzZWN1cml0eV9sb2NrZWRfZG93bigpCisgKiBMU00gaG9vay4gTG9ja2Rvd24gcmVhc29ucyB0aGF0IHByb3RlY3Qga2VybmVsIGludGVncml0eSAoaWUsIHRoZQorICogYWJpbGl0eSBmb3IgdXNlcmxhbmQgdG8gbW9kaWZ5IGtlcm5lbCBjb2RlKSBhcmUgcGxhY2VkIGJlZm9yZQorICogTE9DS0RPV05fSU5URUdSSVRZX01BWC4gIExvY2tkb3duIHJlYXNvbnMgdGhhdCBwcm90ZWN0IGtlcm5lbAorICogY29uZmlkZW50aWFsaXR5IChpZSwgdGhlIGFiaWxpdHkgZm9yIHVzZXJsYW5kIHRvIGV4dHJhY3QKKyAqIGluZm9ybWF0aW9uIGZyb20gdGhlIHJ1bm5pbmcga2VybmVsIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlCisgKiByZXN0cmljdGVkKSBhcmUgcGxhY2VkIGJlZm9yZSBMT0NLRE9XTl9DT05GSURFTlRJQUxJVFlfTUFYLgorICoKKyAqIExTTSBhdXRob3JzIHNob3VsZCBub3RlIHRoYXQgdGhlIHNlbWFudGljcyBvZiBhbnkgZ2l2ZW4gbG9ja2Rvd24KKyAqIHJlYXNvbiBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgc3RhYmxlIC0gdGhlIHNhbWUgcmVhc29uIG1heSBibG9jaworICogb25lIHNldCBvZiBmZWF0dXJlcyBpbiBvbmUga2VybmVsIHJlbGVhc2UsIGFuZCBhIHNsaWdodGx5IGRpZmZlcmVudAorICogc2V0IG9mIGZlYXR1cmVzIGluIGEgbGF0ZXIga2VybmVsIHJlbGVhc2UuIExTTXMgdGhhdCBzZWVrIHRvIGV4cG9zZQorICogbG9ja2Rvd24gcG9saWN5IGF0IGFueSBsZXZlbCBvZiBncmFudWxhcml0eSBvdGhlciB0aGFuICJub25lIiwKKyAqICJpbnRlZ3JpdHkiIG9yICJjb25maWRlbnRpYWxpdHkiIGFyZSByZXNwb25zaWJsZSBmb3IgZWl0aGVyCisgKiBlbnN1cmluZyB0aGF0IHRoZXkgZXhwb3NlIGEgY29uc2lzdGVudCBsZXZlbCBvZiBmdW5jdGlvbmFsaXR5IHRvCisgKiB1c2VybGFuZCwgb3IgZW5zdXJpbmcgdGhhdCB1c2VybGFuZCBpcyBhd2FyZSB0aGF0IHRoaXMgaXMKKyAqIHBvdGVudGlhbGx5IGEgbW92aW5nIHRhcmdldC4gSXQgaXMgZWFzeSB0byBtaXN1c2UgdGhpcyBpbmZvcm1hdGlvbgorICogaW4gYSB3YXkgdGhhdCBjb3VsZCBicmVhayB1c2Vyc3BhY2UuIFBsZWFzZSBiZSBjYXJlZnVsIG5vdCB0byBkbworICogc28uCisgKgorICogSWYgeW91IGFkZCB0byB0aGlzLCByZW1lbWJlciB0byBleHRlbmQgbG9ja2Rvd25fcmVhc29ucyBpbgorICogc2VjdXJpdHkvbG9ja2Rvd24vbG9ja2Rvd24uYy4KKyAqLworZW51bSBsb2NrZG93bl9yZWFzb24geworCUxPQ0tET1dOX05PTkUsCisJTE9DS0RPV05fTU9EVUxFX1NJR05BVFVSRSwKKwlMT0NLRE9XTl9ERVZfTUVNLAorCUxPQ0tET1dOX0tFWEVDLAorCUxPQ0tET1dOX0hJQkVSTkFUSU9OLAorCUxPQ0tET1dOX1BDSV9BQ0NFU1MsCisJTE9DS0RPV05fSU9QT1JULAorCUxPQ0tET1dOX01TUiwKKwlMT0NLRE9XTl9BQ1BJX1RBQkxFUywKKwlMT0NLRE9XTl9QQ01DSUFfQ0lTLAorCUxPQ0tET1dOX1RJT0NTU0VSSUFMLAorCUxPQ0tET1dOX01PRFVMRV9QQVJBTUVURVJTLAorCUxPQ0tET1dOX01NSU9UUkFDRSwKKwlMT0NLRE9XTl9ERUJVR0ZTLAorCUxPQ0tET1dOX0lOVEVHUklUWV9NQVgsCisJTE9DS0RPV05fS0NPUkUsCisJTE9DS0RPV05fS1BST0JFUywKKwlMT0NLRE9XTl9CUEZfUkVBRCwKKwlMT0NLRE9XTl9QRVJGLAorCUxPQ0tET1dOX1RSQUNFRlMsCisJTE9DS0RPV05fQ09ORklERU5USUFMSVRZX01BWCwKK307CisKIC8qIFRoZXNlIGZ1bmN0aW9ucyBhcmUgaW4gc2VjdXJpdHkvY29tbW9uY2FwLmMgKi8KIGV4dGVybiBpbnQgY2FwX2NhcGFibGUoY29uc3Qgc3RydWN0IGNyZWQgKmNyZWQsIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsCiAJCSAgICAgICBpbnQgY2FwLCB1bnNpZ25lZCBpbnQgb3B0cyk7CkBAIC0xOTUsNiArMjQzLDcgQEAgaW50IHVucmVnaXN0ZXJfYmxvY2tpbmdfbHNtX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpOwogCiAvKiBwcm90b3R5cGVzICovCiBleHRlcm4gaW50IHNlY3VyaXR5X2luaXQodm9pZCk7CitleHRlcm4gaW50IGVhcmx5X3NlY3VyaXR5X2luaXQodm9pZCk7CiAKIC8qIFNlY3VyaXR5IG9wZXJhdGlvbnMgKi8KIGludCBzZWN1cml0eV9iaW5kZXJfc2V0X2NvbnRleHRfbWdyKHN0cnVjdCB0YXNrX3N0cnVjdCAqbWdyKTsKQEAgLTI1OSw3ICszMDgsOCBAQCBpbnQgc2VjdXJpdHlfZGVudHJ5X2NyZWF0ZV9maWxlc19hcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBtb2RlLAogCQkJCQlzdHJ1Y3QgcXN0ciAqbmFtZSwKIAkJCQkJY29uc3Qgc3RydWN0IGNyZWQgKm9sZCwKIAkJCQkJc3RydWN0IGNyZWQgKm5ldyk7Ci0KK2ludCBzZWN1cml0eV9wYXRoX25vdGlmeShjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwgdTY0IG1hc2ssCisJCQkJCXVuc2lnbmVkIGludCBvYmpfdHlwZSk7CiBpbnQgc2VjdXJpdHlfaW5vZGVfYWxsb2Moc3RydWN0IGlub2RlICppbm9kZSk7CiB2b2lkIHNlY3VyaXR5X2lub2RlX2ZyZWUoc3RydWN0IGlub2RlICppbm9kZSk7CiBpbnQgc2VjdXJpdHlfaW5vZGVfaW5pdF9zZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW5vZGUgKmRpciwKQEAgLTM4NywxMSArNDM3LDExIEBAIGludCBzZWN1cml0eV9pc21hY2xhYmVsKGNvbnN0IGNoYXIgKm5hbWUpOwogaW50IHNlY3VyaXR5X3NlY2lkX3RvX3NlY2N0eCh1MzIgc2VjaWQsIGNoYXIgKipzZWNkYXRhLCB1MzIgKnNlY2xlbik7CiBpbnQgc2VjdXJpdHlfc2VjY3R4X3RvX3NlY2lkKGNvbnN0IGNoYXIgKnNlY2RhdGEsIHUzMiBzZWNsZW4sIHUzMiAqc2VjaWQpOwogdm9pZCBzZWN1cml0eV9yZWxlYXNlX3NlY2N0eChjaGFyICpzZWNkYXRhLCB1MzIgc2VjbGVuKTsKLQogdm9pZCBzZWN1cml0eV9pbm9kZV9pbnZhbGlkYXRlX3NlY2N0eChzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGludCBzZWN1cml0eV9pbm9kZV9ub3RpZnlzZWNjdHgoc3RydWN0IGlub2RlICppbm9kZSwgdm9pZCAqY3R4LCB1MzIgY3R4bGVuKTsKIGludCBzZWN1cml0eV9pbm9kZV9zZXRzZWNjdHgoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB2b2lkICpjdHgsIHUzMiBjdHhsZW4pOwogaW50IHNlY3VyaXR5X2lub2RlX2dldHNlY2N0eChzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2b2lkICoqY3R4LCB1MzIgKmN0eGxlbik7CitpbnQgc2VjdXJpdHlfbG9ja2VkX2Rvd24oZW51bSBsb2NrZG93bl9yZWFzb24gd2hhdCk7CiAjZWxzZSAvKiBDT05GSUdfU0VDVVJJVFkgKi8KIAogc3RhdGljIGlubGluZSBpbnQgY2FsbF9ibG9ja2luZ19sc21fbm90aWZpZXIoZW51bSBsc21fZXZlbnQgZXZlbnQsIHZvaWQgKmRhdGEpCkBAIC00MjMsNiArNDczLDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X2luaXQodm9pZCkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgZWFybHlfc2VjdXJpdHlfaW5pdCh2b2lkKQoreworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9iaW5kZXJfc2V0X2NvbnRleHRfbWdyKHN0cnVjdCB0YXNrX3N0cnVjdCAqbWdyKQogewogCXJldHVybiAwOwpAQCAtNjIxLDYgKzY3NiwxMiBAQCBzdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9tb3ZlX21vdW50KGNvbnN0IHN0cnVjdCBwYXRoICpmcm9tX3BhdGgsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X3BhdGhfbm90aWZ5KGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLCB1NjQgbWFzaywKKwkJCQl1bnNpZ25lZCBpbnQgb2JqX3R5cGUpCit7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X2lub2RlX2FsbG9jKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7CiAJcmV0dXJuIDA7CkBAIC0xMjA0LDYgKzEyNjUsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfaW5vZGVfZ2V0c2VjY3R4KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHZvaWQgKipjdHgsIHUzMgogewogCXJldHVybiAtRU9QTk9UU1VQUDsKIH0KK3N0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X2xvY2tlZF9kb3duKGVudW0gbG9ja2Rvd25fcmVhc29uIHdoYXQpCit7CisJcmV0dXJuIDA7Cit9CiAjZW5kaWYJLyogQ09ORklHX1NFQ1VSSVRZICovCiAKICNpZmRlZiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zaG1lbV9mcy5oIGIvaW5jbHVkZS9saW51eC9zaG1lbV9mcy5oCmluZGV4IDIwZDgxNWEuLmRlOGU0YjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2htZW1fZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NobWVtX2ZzLmgKQEAgLTQ5LDggKzQ5LDkgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2htZW1faW5vZGVfaW5mbyAqU0hNRU1fSShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogLyoKICAqIEZ1bmN0aW9ucyBpbiBtbS9zaG1lbS5jIGNhbGxlZCBkaXJlY3RseSBmcm9tIGVsc2V3aGVyZToKICAqLworZXh0ZXJuIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfZGVzY3JpcHRpb24gc2htZW1fZnNfcGFyYW1ldGVyczsKIGV4dGVybiBpbnQgc2htZW1faW5pdCh2b2lkKTsKLWV4dGVybiBpbnQgc2htZW1fZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KTsKK2V4dGVybiBpbnQgc2htZW1faW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYyk7CiBleHRlcm4gc3RydWN0IGZpbGUgKnNobWVtX2ZpbGVfc2V0dXAoY29uc3QgY2hhciAqbmFtZSwKIAkJCQkJbG9mZl90IHNpemUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOwogZXh0ZXJuIHN0cnVjdCBmaWxlICpzaG1lbV9rZXJuZWxfZmlsZV9zZXR1cChjb25zdCBjaGFyICpuYW1lLCBsb2ZmX3Qgc2l6ZSwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2hyaW5rZXIuaCBiL2luY2x1ZGUvbGludXgvc2hyaW5rZXIuaAppbmRleCA5NDQzY2FmLi4wZjgwMTIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3Nocmlua2VyLmgKKysrIGIvaW5jbHVkZS9saW51eC9zaHJpbmtlci5oCkBAIC02OSw3ICs2OSw3IEBAIHN0cnVjdCBzaHJpbmtlciB7CiAKIAkvKiBUaGVzZSBhcmUgZm9yIGludGVybmFsIHVzZSAqLwogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKLSNpZmRlZiBDT05GSUdfTUVNQ0dfS01FTQorI2lmZGVmIENPTkZJR19NRU1DRwogCS8qIElEIGluIHNocmlua2VyX2lkciAqLwogCWludCBpZDsKICNlbmRpZgpAQCAtODEsNiArODEsMTEgQEAgc3RydWN0IHNocmlua2VyIHsKIC8qIEZsYWdzICovCiAjZGVmaW5lIFNIUklOS0VSX05VTUFfQVdBUkUJKDEgPDwgMCkKICNkZWZpbmUgU0hSSU5LRVJfTUVNQ0dfQVdBUkUJKDEgPDwgMSkKKy8qCisgKiBJdCBqdXN0IG1ha2VzIHNlbnNlIHdoZW4gdGhlIHNocmlua2VyIGlzIGFsc28gTUVNQ0dfQVdBUkUgZm9yIG5vdywKKyAqIG5vbi1NRU1DR19BV0FSRSBzaHJpbmtlciBzaG91bGQgbm90IGhhdmUgdGhpcyBmbGFnIHNldC4KKyAqLworI2RlZmluZSBTSFJJTktFUl9OT05TTEFCCSgxIDw8IDIpCiAKIGV4dGVybiBpbnQgcHJlYWxsb2Nfc2hyaW5rZXIoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcik7CiBleHRlcm4gdm9pZCByZWdpc3Rlcl9zaHJpbmtlcl9wcmVwYXJlZChzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2xhYi5oIGIvaW5jbHVkZS9saW51eC9zbGFiLmgKaW5kZXggNTZjOWM3ZS4uYWIyYjk4YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zbGFiLmgKKysrIGIvaW5jbHVkZS9saW51eC9zbGFiLmgKQEAgLTU5NSw2OCArNTk1LDYgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkICprbWFsbG9jX25vZGUoc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKIAlyZXR1cm4gX19rbWFsbG9jX25vZGUoc2l6ZSwgZmxhZ3MsIG5vZGUpOwogfQogCi1zdHJ1Y3QgbWVtY2dfY2FjaGVfYXJyYXkgewotCXN0cnVjdCByY3VfaGVhZCByY3U7Ci0Jc3RydWN0IGttZW1fY2FjaGUgKmVudHJpZXNbMF07Ci19OwotCi0vKgotICogVGhpcyBpcyB0aGUgbWFpbiBwbGFjZWhvbGRlciBmb3IgbWVtY2ctcmVsYXRlZCBpbmZvcm1hdGlvbiBpbiBrbWVtIGNhY2hlcy4KLSAqIEJvdGggdGhlIHJvb3QgY2FjaGUgYW5kIHRoZSBjaGlsZCBjYWNoZXMgd2lsbCBoYXZlIGl0LiBGb3IgdGhlIHJvb3QgY2FjaGUsCi0gKiB0aGlzIHdpbGwgaG9sZCBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhcnJheSBsYXJnZSBlbm91Z2ggdG8gaG9sZAotICogaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnRseSBsaW1pdGVkIG1lbWNncyBpbiB0aGUgc3lzdGVtLiBUbyBhbGxvdyB0aGUKLSAqIGFycmF5IHRvIGJlIGFjY2Vzc2VkIHdpdGhvdXQgdGFraW5nIGFueSBsb2Nrcywgb24gcmVsb2NhdGlvbiB3ZSBmcmVlIHRoZSBvbGQKLSAqIHZlcnNpb24gb25seSBhZnRlciBhIGdyYWNlIHBlcmlvZC4KLSAqCi0gKiBSb290IGFuZCBjaGlsZCBjYWNoZXMgaG9sZCBkaWZmZXJlbnQgbWV0YWRhdGEuCi0gKgotICogQHJvb3RfY2FjaGU6CUNvbW1vbiB0byByb290IGFuZCBjaGlsZCBjYWNoZXMuICBOVUxMIGZvciByb290LCBwb2ludGVyIHRvCi0gKgkJdGhlIHJvb3QgY2FjaGUgZm9yIGNoaWxkcmVuLgotICoKLSAqIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBzcGVjaWZpYyB0byByb290IGNhY2hlcy4KLSAqCi0gKiBAbWVtY2dfY2FjaGVzOiBrbWVtY2cgSUQgaW5kZXhlZCB0YWJsZSBvZiBjaGlsZCBjYWNoZXMuICBUaGlzIHRhYmxlIGlzCi0gKgkJdXNlZCB0byBpbmRleCBjaGlsZCBjYWNoY2VzIGR1cmluZyBhbGxvY2F0aW9uIGFuZCBjbGVhcmVkCi0gKgkJZWFybHkgZHVyaW5nIHNodXRkb3duLgotICoKLSAqIEByb290X2NhY2hlc19ub2RlOiBMaXN0IG5vZGUgZm9yIHNsYWJfcm9vdF9jYWNoZXMgbGlzdC4KLSAqCi0gKiBAY2hpbGRyZW46CUxpc3Qgb2YgYWxsIGNoaWxkIGNhY2hlcy4gIFdoaWxlIHRoZSBjaGlsZCBjYWNoZXMgYXJlIGFsc28KLSAqCQlyZWFjaGFibGUgdGhyb3VnaCBAbWVtY2dfY2FjaGVzLCBhIGNoaWxkIGNhY2hlIHJlbWFpbnMgb24KLSAqCQl0aGlzIGxpc3QgdW50aWwgaXQgaXMgYWN0dWFsbHkgZGVzdHJveWVkLgotICoKLSAqIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBzcGVjaWZpYyB0byBjaGlsZCBjYWNoZXMuCi0gKgotICogQG1lbWNnOglQb2ludGVyIHRvIHRoZSBtZW1jZyB0aGlzIGNhY2hlIGJlbG9uZ3MgdG8uCi0gKgotICogQGNoaWxkcmVuX25vZGU6IExpc3Qgbm9kZSBmb3IgQHJvb3RfY2FjaGUtPmNoaWxkcmVuIGxpc3QuCi0gKgotICogQGttZW1fY2FjaGVzX25vZGU6IExpc3Qgbm9kZSBmb3IgQG1lbWNnLT5rbWVtX2NhY2hlcyBsaXN0LgotICovCi1zdHJ1Y3QgbWVtY2dfY2FjaGVfcGFyYW1zIHsKLQlzdHJ1Y3Qga21lbV9jYWNoZSAqcm9vdF9jYWNoZTsKLQl1bmlvbiB7Ci0JCXN0cnVjdCB7Ci0JCQlzdHJ1Y3QgbWVtY2dfY2FjaGVfYXJyYXkgX19yY3UgKm1lbWNnX2NhY2hlczsKLQkJCXN0cnVjdCBsaXN0X2hlYWQgX19yb290X2NhY2hlc19ub2RlOwotCQkJc3RydWN0IGxpc3RfaGVhZCBjaGlsZHJlbjsKLQkJCWJvb2wgZHlpbmc7Ci0JCX07Ci0JCXN0cnVjdCB7Ci0JCQlzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2c7Ci0JCQlzdHJ1Y3QgbGlzdF9oZWFkIGNoaWxkcmVuX25vZGU7Ci0JCQlzdHJ1Y3QgbGlzdF9oZWFkIGttZW1fY2FjaGVzX25vZGU7Ci0JCQlzdHJ1Y3QgcGVyY3B1X3JlZiByZWZjbnQ7Ci0KLQkJCXZvaWQgKCp3b3JrX2ZuKShzdHJ1Y3Qga21lbV9jYWNoZSAqKTsKLQkJCXVuaW9uIHsKLQkJCQlzdHJ1Y3QgcmN1X2hlYWQgcmN1X2hlYWQ7Ci0JCQkJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Ci0JCQl9OwotCQl9OwotCX07Ci19OwotCiBpbnQgbWVtY2dfdXBkYXRlX2FsbF9jYWNoZXMoaW50IG51bV9tZW1jZ3MpOwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc29jL2FtbG9naWMvbWVzb24tY2FudmFzLmggYi9pbmNsdWRlL2xpbnV4L3NvYy9hbWxvZ2ljL21lc29uLWNhbnZhcy5oCmluZGV4IGI0ZGRlMmYuLjBjYjJhNjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc29jL2FtbG9naWMvbWVzb24tY2FudmFzLmgKKysrIGIvaW5jbHVkZS9saW51eC9zb2MvYW1sb2dpYy9tZXNvbi1jYW52YXMuaApAQCAtMjAsNiArMjAsNyBAQAogI2RlZmluZSBNRVNPTl9DQU5WQVNfRU5ESUFOX1NXQVA2NAkweDcKICNkZWZpbmUgTUVTT05fQ0FOVkFTX0VORElBTl9TV0FQMTI4CTB4ZgogCitzdHJ1Y3QgZGV2aWNlOwogc3RydWN0IG1lc29uX2NhbnZhczsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oIGIvaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEuaAppbmRleCBmM2FlNDVkLi45NjE4ZGViIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oCisrKyBiL2luY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210ay1jbWRxLmgKQEAgLTEzLDkgKzEzLDYgQEAKIAogI2RlZmluZSBDTURRX05PX1RJTUVPVVQJCTB4ZmZmZmZmZmZ1CiAKLS8qKiBjbWRxIGV2ZW50IG1heGltdW0gKi8KLSNkZWZpbmUgQ01EUV9NQVhfRVZFTlQJCQkJMHgzZmYKLQogc3RydWN0IGNtZHFfcGt0OwogCiBzdHJ1Y3QgY21kcV9jbGllbnQgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zb3VuZHdpcmUvc2R3LmggYi9pbmNsdWRlL2xpbnV4L3NvdW5kd2lyZS9zZHcuaAppbmRleCBiZWE0NmJkLi5lYTc4NzIwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NvdW5kd2lyZS9zZHcuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NvdW5kd2lyZS9zZHcuaApAQCAtNCw2ICs0LDggQEAKICNpZm5kZWYgX19TT1VORFdJUkVfSAogI2RlZmluZSBfX1NPVU5EV0lSRV9ICiAKKyNpbmNsdWRlIDxsaW51eC9tb2RfZGV2aWNldGFibGUuaD4KKwogc3RydWN0IHNkd19idXM7CiBzdHJ1Y3Qgc2R3X3NsYXZlOwogCkBAIC0zNzcsNiArMzc5LDggQEAgc3RydWN0IHNkd19zbGF2ZV9wcm9wIHsKICAqIEBkeW5hbWljX2ZyYW1lOiBEeW5hbWljIGZyYW1lIHNoYXBlIHN1cHBvcnRlZAogICogQGVycl90aHJlc2hvbGQ6IE51bWJlciBvZiB0aW1lcyB0aGF0IHNvZnR3YXJlIG1heSByZXRyeSBzZW5kaW5nIGEgc2luZ2xlCiAgKiBjb21tYW5kCisgKiBAbWNsa19mcmVxOiBjbG9jayByZWZlcmVuY2UgcGFzc2VkIHRvIFNvdW5kV2lyZSBNYXN0ZXIsIGluIEh6LgorICogQGh3X2Rpc2FibGVkOiBpZiB0cnVlLCB0aGUgTWFzdGVyIGlzIG5vdCBmdW5jdGlvbmFsLCB0eXBpY2FsbHkgZHVlIHRvIHBpbi1tdXgKICAqLwogc3RydWN0IHNkd19tYXN0ZXJfcHJvcCB7CiAJdTMyIHJldmlzaW9uOwpAQCAtMzkxLDYgKzM5NSw4IEBAIHN0cnVjdCBzZHdfbWFzdGVyX3Byb3AgewogCXUzMiBkZWZhdWx0X2NvbDsKIAlib29sIGR5bmFtaWNfZnJhbWU7CiAJdTMyIGVycl90aHJlc2hvbGQ7CisJdTMyIG1jbGtfZnJlcTsKKwlib29sIGh3X2Rpc2FibGVkOwogfTsKIAogaW50IHNkd19tYXN0ZXJfcmVhZF9wcm9wKHN0cnVjdCBzZHdfYnVzICpidXMpOwpAQCAtNTM4LDYgKzU0NCw3IEBAIHN0cnVjdCBzZHdfc2xhdmVfb3BzIHsKICAqIEBidXM6IEJ1cyBoYW5kbGUKICAqIEBvcHM6IFNsYXZlIGNhbGxiYWNrIG9wcwogICogQHByb3A6IFNsYXZlIHByb3BlcnRpZXMKKyAqIEBkZWJ1Z2ZzOiBTbGF2ZSBkZWJ1Z2ZzCiAgKiBAbm9kZTogbm9kZSBmb3IgYnVzIGxpc3QKICAqIEBwb3J0X3JlYWR5OiBQb3J0IHJlYWR5IGNvbXBsZXRpb24gZmxhZyBmb3IgZWFjaCBTbGF2ZSBwb3J0CiAgKiBAZGV2X251bTogRGV2aWNlIE51bWJlciBhc3NpZ25lZCBieSBCdXMKQEAgLTU0OSw2ICs1NTYsOSBAQCBzdHJ1Y3Qgc2R3X3NsYXZlIHsKIAlzdHJ1Y3Qgc2R3X2J1cyAqYnVzOwogCWNvbnN0IHN0cnVjdCBzZHdfc2xhdmVfb3BzICpvcHM7CiAJc3RydWN0IHNkd19zbGF2ZV9wcm9wIHByb3A7CisjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCisJc3RydWN0IGRlbnRyeSAqZGVidWdmczsKKyNlbmRpZgogCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKIAlzdHJ1Y3QgY29tcGxldGlvbiAqcG9ydF9yZWFkeTsKIAl1MTYgZGV2X251bTsKQEAgLTcxOCw2ICs3MjgsNyBAQCBzdHJ1Y3Qgc2R3X21hc3Rlcl9vcHMgewogICogQml0IHNldCBpbXBsaWVzIHVzZWQgbnVtYmVyLCBiaXQgY2xlYXIgaW1wbGllcyB1bnVzZWQgbnVtYmVyLgogICogQGJ1c19sb2NrOiBidXMgbG9jawogICogQG1zZ19sb2NrOiBtZXNzYWdlIGxvY2sKKyAqIEBjb21wdXRlX3BhcmFtczogcG9pbnRzIHRvIEJ1cyByZXNvdXJjZSBtYW5hZ2VtZW50IGltcGxlbWVudGF0aW9uCiAgKiBAb3BzOiBNYXN0ZXIgY2FsbGJhY2sgb3BzCiAgKiBAcG9ydF9vcHM6IE1hc3RlciBwb3J0IGNhbGxiYWNrIG9wcwogICogQHBhcmFtczogQ3VycmVudCBidXMgcGFyYW1ldGVycwpAQCAtNzI1LDYgKzczNiw3IEBAIHN0cnVjdCBzZHdfbWFzdGVyX29wcyB7CiAgKiBAbV9ydF9saXN0OiBMaXN0IG9mIE1hc3RlciBpbnN0YW5jZSBvZiBhbGwgc3RyZWFtKHMpIHJ1bm5pbmcgb24gQnVzLiBUaGlzCiAgKiBpcyB1c2VkIHRvIGNvbXB1dGUgYW5kIHByb2dyYW0gYnVzIGJhbmR3aWR0aCwgY2xvY2ssIGZyYW1lIHNoYXBlLAogICogdHJhbnNwb3J0IGFuZCBwb3J0IHBhcmFtZXRlcnMKKyAqIEBkZWJ1Z2ZzOiBCdXMgZGVidWdmcwogICogQGRlZmVyX21zZzogRGVmZXIgbWVzc2FnZQogICogQGNsa19zdG9wX3RpbWVvdXQ6IENsb2NrIHN0b3AgdGltZW91dCBjb21wdXRlZAogICogQGJhbmtfc3dpdGNoX3RpbWVvdXQ6IEJhbmsgc3dpdGNoIHRpbWVvdXQgY29tcHV0ZWQKQEAgLTczOSwxMSArNzUxLDE1IEBAIHN0cnVjdCBzZHdfYnVzIHsKIAlERUNMQVJFX0JJVE1BUChhc3NpZ25lZCwgU0RXX01BWF9ERVZJQ0VTKTsKIAlzdHJ1Y3QgbXV0ZXggYnVzX2xvY2s7CiAJc3RydWN0IG11dGV4IG1zZ19sb2NrOworCWludCAoKmNvbXB1dGVfcGFyYW1zKShzdHJ1Y3Qgc2R3X2J1cyAqYnVzKTsKIAljb25zdCBzdHJ1Y3Qgc2R3X21hc3Rlcl9vcHMgKm9wczsKIAljb25zdCBzdHJ1Y3Qgc2R3X21hc3Rlcl9wb3J0X29wcyAqcG9ydF9vcHM7CiAJc3RydWN0IHNkd19idXNfcGFyYW1zIHBhcmFtczsKIAlzdHJ1Y3Qgc2R3X21hc3Rlcl9wcm9wIHByb3A7CiAJc3RydWN0IGxpc3RfaGVhZCBtX3J0X2xpc3Q7CisjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCisJc3RydWN0IGRlbnRyeSAqZGVidWdmczsKKyNlbmRpZgogCXN0cnVjdCBzZHdfZGVmZXIgZGVmZXJfbXNnOwogCXVuc2lnbmVkIGludCBjbGtfc3RvcF90aW1lb3V0OwogCXUzMiBiYW5rX3N3aXRjaF90aW1lb3V0OwpAQCAtODI4LDcgKzg0NCw3IEBAIHN0cnVjdCBzZHdfc3RyZWFtX3BhcmFtcyB7CiAgKiBAbV9ydF9jb3VudDogQ291bnQgb2YgTWFzdGVyIHJ1bnRpbWUocykgaW4gdGhpcyBzdHJlYW0KICAqLwogc3RydWN0IHNkd19zdHJlYW1fcnVudGltZSB7Ci0JY2hhciAqbmFtZTsKKwljb25zdCBjaGFyICpuYW1lOwogCXN0cnVjdCBzZHdfc3RyZWFtX3BhcmFtcyBwYXJhbXM7CiAJZW51bSBzZHdfc3RyZWFtX3N0YXRlIHN0YXRlOwogCWVudW0gc2R3X3N0cmVhbV90eXBlIHR5cGU7CkBAIC04MzYsNyArODUyLDcgQEAgc3RydWN0IHNkd19zdHJlYW1fcnVudGltZSB7CiAJaW50IG1fcnRfY291bnQ7CiB9OwogCi1zdHJ1Y3Qgc2R3X3N0cmVhbV9ydW50aW1lICpzZHdfYWxsb2Nfc3RyZWFtKGNoYXIgKnN0cmVhbV9uYW1lKTsKK3N0cnVjdCBzZHdfc3RyZWFtX3J1bnRpbWUgKnNkd19hbGxvY19zdHJlYW0oY29uc3QgY2hhciAqc3RyZWFtX25hbWUpOwogdm9pZCBzZHdfcmVsZWFzZV9zdHJlYW0oc3RydWN0IHNkd19zdHJlYW1fcnVudGltZSAqc3RyZWFtKTsKIGludCBzZHdfc3RyZWFtX2FkZF9tYXN0ZXIoc3RydWN0IHNkd19idXMgKmJ1cywKIAkJc3RydWN0IHNkd19zdHJlYW1fY29uZmlnICpzdHJlYW1fY29uZmlnLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zb3VuZHdpcmUvc2R3X2ludGVsLmggYi9pbmNsdWRlL2xpbnV4L3NvdW5kd2lyZS9zZHdfaW50ZWwuaAppbmRleCA0ZDcwZGE0Li5jOTQyN2NiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NvdW5kd2lyZS9zZHdfaW50ZWwuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NvdW5kd2lyZS9zZHdfaW50ZWwuaApAQCAtOCw2ICs4LDcgQEAKICAqIHN0cnVjdCBzZHdfaW50ZWxfb3BzOiBJbnRlbCBhdWRpbyBkcml2ZXIgY2FsbGJhY2sgb3BzCiAgKgogICogQGNvbmZpZ19zdHJlYW06IGNvbmZpZ3VyZSB0aGUgc3RyZWFtIHdpdGggdGhlIGh3X3BhcmFtcworICogdGhlIGZpcnN0IGFyZ3VtZW50IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgaXMgbWFuZGF0b3J5CiAgKi8KIHN0cnVjdCBzZHdfaW50ZWxfb3BzIHsKIAlpbnQgKCpjb25maWdfc3RyZWFtKSh2b2lkICphcmcsIHZvaWQgKnN1YnN0cmVhbSwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3RyaW5nLmggYi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oCmluZGV4IDRkZWIxMWYuLmIyZjlkZjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc3RyaW5nLmgKKysrIGIvaW5jbHVkZS9saW51eC9zdHJpbmcuaApAQCAtNDc0LDggKzQ3NCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1jcHlfYW5kX3BhZCh2b2lkICpkZXN0LCBzaXplX3QgZGVzdF9sZW4sCiAgKiBCdXQgdGhpcyBjYW4gbGVhZCB0byBidWdzIGR1ZSB0byB0eXBvcywgb3IgaWYgcHJlZml4IGlzIGEgcG9pbnRlcgogICogYW5kIG5vdCBhIGNvbnN0YW50LiBJbnN0ZWFkIHVzZSBzdHJfaGFzX3ByZWZpeCgpLgogICoKLSAqIFJldHVybnM6IDAgaWYgQHN0ciBkb2VzIG5vdCBzdGFydCB3aXRoIEBwcmVmaXgKLSAgICAgICAgIHN0cmxlbihAcHJlZml4KSBpZiBAc3RyIGRvZXMgc3RhcnQgd2l0aCBAcHJlZml4CisgKiBSZXR1cm5zOgorICogKiBzdHJsZW4oQHByZWZpeCkgaWYgQHN0ciBzdGFydHMgd2l0aCBAcHJlZml4CisgKiAqIDAgaWYgQHN0ciBkb2VzIG5vdCBzdGFydCB3aXRoIEBwcmVmaXgKICAqLwogc3RhdGljIF9fYWx3YXlzX2lubGluZSBzaXplX3Qgc3RyX2hhc19wcmVmaXgoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9jYWNoZS5oIGIvaW5jbHVkZS9saW51eC9zdW5ycGMvY2FjaGUuaAppbmRleCBjN2YzOGU4Li5mODYwMzcyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9jYWNoZS5oCisrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL2NhY2hlLmgKQEAgLTg3LDYgKzg3LDcgQEAgc3RydWN0IGNhY2hlX2RldGFpbCB7CiAJCQkJCSAgICAgIGludCBoYXNfZGllZCk7CiAKIAlzdHJ1Y3QgY2FjaGVfaGVhZCAqCSgqYWxsb2MpKHZvaWQpOworCXZvaWQJCQkoKmZsdXNoKSh2b2lkKTsKIAlpbnQJCQkoKm1hdGNoKShzdHJ1Y3QgY2FjaGVfaGVhZCAqb3JpZywgc3RydWN0IGNhY2hlX2hlYWQgKm5ldyk7CiAJdm9pZAkJCSgqaW5pdCkoc3RydWN0IGNhY2hlX2hlYWQgKm9yaWcsIHN0cnVjdCBjYWNoZV9oZWFkICpuZXcpOwogCXZvaWQJCQkoKnVwZGF0ZSkoc3RydWN0IGNhY2hlX2hlYWQgKm9yaWcsIHN0cnVjdCBjYWNoZV9oZWFkICpuZXcpOwpAQCAtMTA3LDkgKzEwOCw5IEBAIHN0cnVjdCBjYWNoZV9kZXRhaWwgewogCS8qIGZpZWxkcyBmb3IgY29tbXVuaWNhdGlvbiBvdmVyIGNoYW5uZWwgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkCXF1ZXVlOwogCi0JYXRvbWljX3QJCXJlYWRlcnM7CQkvKiBob3cgbWFueSB0aW1lIGlzIC9jaGVubmVsIG9wZW4gKi8KLQl0aW1lX3QJCQlsYXN0X2Nsb3NlOwkJLyogaWYgbm8gcmVhZGVycywgd2hlbiBkaWQgbGFzdCBjbG9zZSAqLwotCXRpbWVfdAkJCWxhc3Rfd2FybjsJCS8qIHdoZW4gd2UgbGFzdCB3YXJuZWQgYWJvdXQgbm8gcmVhZGVycyAqLworCWF0b21pY190CQl3cml0ZXJzOwkJLyogaG93IG1hbnkgdGltZSBpcyAvY2hhbm5lbCBvcGVuICovCisJdGltZV90CQkJbGFzdF9jbG9zZTsJCS8qIGlmIG5vIHdyaXRlcnMsIHdoZW4gZGlkIGxhc3QgY2xvc2UgKi8KKwl0aW1lX3QJCQlsYXN0X3dhcm47CQkvKiB3aGVuIHdlIGxhc3Qgd2FybmVkIGFib3V0IG5vIHdyaXRlcnMgKi8KIAogCXVuaW9uIHsKIAkJc3RydWN0IHByb2NfZGlyX2VudHJ5CSpwcm9jZnM7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9zY2hlZC5oIGIvaW5jbHVkZS9saW51eC9zdW5ycGMvc2NoZWQuaAppbmRleCAyNzUzNmI5Li5hNmVmMzUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9zY2hlZC5oCisrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL3NjaGVkLmgKQEAgLTI0Miw5ICsyNDIsNiBAQCB2b2lkCQlycGNfc2xlZXBfb25fcHJpb3JpdHlfdGltZW91dChzdHJ1Y3QgcnBjX3dhaXRfcXVldWUgKnF1ZXVlLAogdm9pZAkJcnBjX3NsZWVwX29uX3ByaW9yaXR5KHN0cnVjdCBycGNfd2FpdF9xdWV1ZSAqLAogCQkJCQlzdHJ1Y3QgcnBjX3Rhc2sgKiwKIAkJCQkJaW50IHByaW9yaXR5KTsKLXZvaWQgcnBjX3dha2VfdXBfcXVldWVkX3Rhc2tfb25fd3Eoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAotCQlzdHJ1Y3QgcnBjX3dhaXRfcXVldWUgKnF1ZXVlLAotCQlzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spOwogdm9pZAkJcnBjX3dha2VfdXBfcXVldWVkX3Rhc2soc3RydWN0IHJwY193YWl0X3F1ZXVlICosCiAJCQkJCXN0cnVjdCBycGNfdGFzayAqKTsKIHZvaWQJCXJwY193YWtlX3VwX3F1ZXVlZF90YXNrX3NldF9zdGF0dXMoc3RydWN0IHJwY193YWl0X3F1ZXVlICosCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9zdmNfcmRtYS5oIGIvaW5jbHVkZS9saW51eC9zdW5ycGMvc3ZjX3JkbWEuaAppbmRleCA5ODFmMGQ3Li40MGY2NTg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9zdmNfcmRtYS5oCisrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL3N2Y19yZG1hLmgKQEAgLTQyLDYgKzQyLDcgQEAKIAogI2lmbmRlZiBTVkNfUkRNQV9ICiAjZGVmaW5lIFNWQ19SRE1BX0gKKyNpbmNsdWRlIDxsaW51eC9sbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3N1bnJwYy94ZHIuaD4KICNpbmNsdWRlIDxsaW51eC9zdW5ycGMvc3Zjc29jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N1bnJwYy9ycGNfcmRtYS5oPgpAQCAtMTA3LDggKzEwOCw3IEBAIHN0cnVjdCBzdmN4cHJ0X3JkbWEgewogCXN0cnVjdCBsaXN0X2hlYWQgICAgIHNjX3JlYWRfY29tcGxldGVfcTsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgICBzY193b3JrOwogCi0Jc3BpbmxvY2tfdAkgICAgIHNjX3JlY3ZfbG9jazsKLQlzdHJ1Y3QgbGlzdF9oZWFkICAgICBzY19yZWN2X2N0eHRzOworCXN0cnVjdCBsbGlzdF9oZWFkICAgIHNjX3JlY3ZfY3R4dHM7CiB9OwogLyogc2NfZmxhZ3MgKi8KICNkZWZpbmUgUkRNQVhQUlRfQ09OTl9QRU5ESU5HCTMKQEAgLTEyNSw2ICsxMjUsNyBAQCBlbnVtIHsKICNkZWZpbmUgUlBDU1ZDX01BWFBBWUxPQURfUkRNQQlSUENTVkNfTUFYUEFZTE9BRAogCiBzdHJ1Y3Qgc3ZjX3JkbWFfcmVjdl9jdHh0IHsKKwlzdHJ1Y3QgbGxpc3Rfbm9kZQlyY19ub2RlOwogCXN0cnVjdCBsaXN0X2hlYWQJcmNfbGlzdDsKIAlzdHJ1Y3QgaWJfcmVjdl93cglyY19yZWN2X3dyOwogCXN0cnVjdCBpYl9jcWUJCXJjX2NxZTsKQEAgLTIwMCw3ICsyMDEsNiBAQCBleHRlcm4gc3RydWN0IHN2Y194cHJ0X2NsYXNzIHN2Y19yZG1hX2JjX2NsYXNzOwogI2VuZGlmCiAKIC8qIHN2Y19yZG1hLmMgKi8KLWV4dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3ZjX3JkbWFfd3E7CiBleHRlcm4gaW50IHN2Y19yZG1hX2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBzdmNfcmRtYV9jbGVhbnVwKHZvaWQpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy94ZHIuaCBiL2luY2x1ZGUvbGludXgvc3VucnBjL3hkci5oCmluZGV4IDhhODdkOGIuLmYzM2U1MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc3VucnBjL3hkci5oCisrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL3hkci5oCkBAIC0xODYsNyArMTg2LDcgQEAgeGRyX2FkanVzdF9pb3ZlYyhzdHJ1Y3Qga3ZlYyAqaW92LCBfX2JlMzIgKnApCiBleHRlcm4gdm9pZCB4ZHJfc2hpZnRfYnVmKHN0cnVjdCB4ZHJfYnVmICosIHNpemVfdCk7CiBleHRlcm4gdm9pZCB4ZHJfYnVmX2Zyb21faW92KHN0cnVjdCBrdmVjICosIHN0cnVjdCB4ZHJfYnVmICopOwogZXh0ZXJuIGludCB4ZHJfYnVmX3N1YnNlZ21lbnQoc3RydWN0IHhkcl9idWYgKiwgc3RydWN0IHhkcl9idWYgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOwotZXh0ZXJuIGludCB4ZHJfYnVmX3JlYWRfbmV0b2JqKHN0cnVjdCB4ZHJfYnVmICosIHN0cnVjdCB4ZHJfbmV0b2JqICosIHVuc2lnbmVkIGludCk7CitleHRlcm4gaW50IHhkcl9idWZfcmVhZF9taWMoc3RydWN0IHhkcl9idWYgKiwgc3RydWN0IHhkcl9uZXRvYmogKiwgdW5zaWduZWQgaW50KTsKIGV4dGVybiBpbnQgcmVhZF9ieXRlc19mcm9tX3hkcl9idWYoc3RydWN0IHhkcl9idWYgKiwgdW5zaWduZWQgaW50LCB2b2lkICosIHVuc2lnbmVkIGludCk7CiBleHRlcm4gaW50IHdyaXRlX2J5dGVzX3RvX3hkcl9idWYoc3RydWN0IHhkcl9idWYgKiwgdW5zaWduZWQgaW50LCB2b2lkICosIHVuc2lnbmVkIGludCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3VucnBjL3hwcnQuaCBiL2luY2x1ZGUvbGludXgvc3VucnBjL3hwcnQuaAppbmRleCAxM2UxMDhiLi5kNzgzZTE1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy94cHJ0LmgKKysrIGIvaW5jbHVkZS9saW51eC9zdW5ycGMveHBydC5oCkBAIC0zNTIsNiArMzUyLDcgQEAgYm9vbAkJCXhwcnRfcHJlcGFyZV90cmFuc21pdChzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spOwogdm9pZAkJCXhwcnRfcmVxdWVzdF9lbnF1ZXVlX3RyYW5zbWl0KHN0cnVjdCBycGNfdGFzayAqdGFzayk7CiB2b2lkCQkJeHBydF9yZXF1ZXN0X2VucXVldWVfcmVjZWl2ZShzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spOwogdm9pZAkJCXhwcnRfcmVxdWVzdF93YWl0X3JlY2VpdmUoc3RydWN0IHJwY190YXNrICp0YXNrKTsKK3ZvaWQJCQl4cHJ0X3JlcXVlc3RfZGVxdWV1ZV94cHJ0KHN0cnVjdCBycGNfdGFzayAqdGFzayk7CiBib29sCQkJeHBydF9yZXF1ZXN0X25lZWRfcmV0cmFuc21pdChzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spOwogdm9pZAkJCXhwcnRfdHJhbnNtaXQoc3RydWN0IHJwY190YXNrICp0YXNrKTsKIHZvaWQJCQl4cHJ0X2VuZF90cmFuc21pdChzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zdW5ycGMveHBydHJkbWEuaCBiL2luY2x1ZGUvbGludXgvc3VucnBjL3hwcnRyZG1hLmgKaW5kZXggODZmYzM4Zi4uMTZjMjM5ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zdW5ycGMveHBydHJkbWEuaAorKysgYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy94cHJ0cmRtYS5oCkBAIC00OSw5ICs0OSw5IEBACiAgKiBmdWxseS1jaHVua2VkIE5GUyBtZXNzYWdlIChyZWFkIGNodW5rcyBhcmUgdGhlIGxhcmdlc3QpLiBOb3RlIG9ubHkKICAqIGEgc2luZ2xlIGNodW5rIHR5cGUgcGVyIG1lc3NhZ2UgaXMgc3VwcG9ydGVkIGN1cnJlbnRseS4KICAqLwotI2RlZmluZSBSUENSRE1BX01JTl9TTE9UX1RBQkxFCSgyVSkKKyNkZWZpbmUgUlBDUkRNQV9NSU5fU0xPVF9UQUJMRQkoNFUpCiAjZGVmaW5lIFJQQ1JETUFfREVGX1NMT1RfVEFCTEUJKDEyOFUpCi0jZGVmaW5lIFJQQ1JETUFfTUFYX1NMT1RfVEFCTEUJKDI1NlUpCisjZGVmaW5lIFJQQ1JETUFfTUFYX1NMT1RfVEFCTEUJKDE2Mzg0VSkKIAogI2RlZmluZSBSUENSRE1BX01JTl9JTkxJTkUgICgxMDI0KQkvKiBtaW4gaW5saW5lIHRocmVzaCAqLwogI2RlZmluZSBSUENSRE1BX0RFRl9JTkxJTkUgICg0MDk2KQkvKiBkZWZhdWx0IGlubGluZSB0aHJlc2ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3dhcC5oIGIvaW5jbHVkZS9saW51eC9zd2FwLmgKaW5kZXggZGUyYzY3YS4uMDYzYzBjMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zd2FwLmgKKysrIGIvaW5jbHVkZS9saW51eC9zd2FwLmgKQEAgLTM0MCw2ICszNDAsNyBAQCBleHRlcm4gdm9pZCBscnVfYWRkX2RyYWluX2NwdShpbnQgY3B1KTsKIGV4dGVybiB2b2lkIGxydV9hZGRfZHJhaW5fYWxsKHZvaWQpOwogZXh0ZXJuIHZvaWQgcm90YXRlX3JlY2xhaW1hYmxlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOwogZXh0ZXJuIHZvaWQgZGVhY3RpdmF0ZV9maWxlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOworZXh0ZXJuIHZvaWQgZGVhY3RpdmF0ZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKTsKIGV4dGVybiB2b2lkIG1hcmtfcGFnZV9sYXp5ZnJlZShzdHJ1Y3QgcGFnZSAqcGFnZSk7CiBleHRlcm4gdm9pZCBzd2FwX3NldHVwKHZvaWQpOwogCkBAIC0zNjQsNiArMzY1LDcgQEAgZXh0ZXJuIGludCB2bV9zd2FwcGluZXNzOwogZXh0ZXJuIGludCByZW1vdmVfbWFwcGluZyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgc3RydWN0IHBhZ2UgKnBhZ2UpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdm1fdG90YWxfcGFnZXM7CiAKK2V4dGVybiB1bnNpZ25lZCBsb25nIHJlY2xhaW1fcGFnZXMoc3RydWN0IGxpc3RfaGVhZCAqcGFnZV9saXN0KTsKICNpZmRlZiBDT05GSUdfTlVNQQogZXh0ZXJuIGludCBub2RlX3JlY2xhaW1fbW9kZTsKIGV4dGVybiBpbnQgc3lzY3RsX21pbl91bm1hcHBlZF9yYXRpbzsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdDEwLXBpLmggYi9pbmNsdWRlL2xpbnV4L3QxMC1waS5oCmluZGV4IDNlMmE4MGMuLjk2MzA1YTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdDEwLXBpLmgKKysrIGIvaW5jbHVkZS9saW51eC90MTAtcGkuaApAQCAtNTMsMTggKzUzLDQgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtfaW50ZWdyaXR5X3Byb2ZpbGUgdDEwX3BpX3R5cGUxX2lwOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtfaW50ZWdyaXR5X3Byb2ZpbGUgdDEwX3BpX3R5cGUzX2NyYzsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgYmxrX2ludGVncml0eV9wcm9maWxlIHQxMF9waV90eXBlM19pcDsKIAotI2lmZGVmIENPTkZJR19CTEtfREVWX0lOVEVHUklUWQotZXh0ZXJuIHZvaWQgdDEwX3BpX3ByZXBhcmUoc3RydWN0IHJlcXVlc3QgKnJxLCB1OCBwcm90ZWN0aW9uX3R5cGUpOwotZXh0ZXJuIHZvaWQgdDEwX3BpX2NvbXBsZXRlKHN0cnVjdCByZXF1ZXN0ICpycSwgdTggcHJvdGVjdGlvbl90eXBlLAotCQkJICAgIHVuc2lnbmVkIGludCBpbnRlcnZhbHMpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9pZCB0MTBfcGlfY29tcGxldGUoc3RydWN0IHJlcXVlc3QgKnJxLCB1OCBwcm90ZWN0aW9uX3R5cGUsCi0JCQkJICAgdW5zaWduZWQgaW50IGludGVydmFscykKLXsKLX0KLXN0YXRpYyBpbmxpbmUgdm9pZCB0MTBfcGlfcHJlcGFyZShzdHJ1Y3QgcmVxdWVzdCAqcnEsIHU4IHByb3RlY3Rpb25fdHlwZSkKLXsKLX0KLSNlbmRpZgotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCBiL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaAppbmRleCA4ZDg4MjFiLi42NTlhNDQwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3RocmVhZF9pbmZvLmgKKysrIGIvaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oCkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGNvcHlfb3ZlcmZsb3coaW50IHNpemUsIHVuc2lnbmVkIGxvbmcgY291bnQpCiAJV0FSTigxLCAiQnVmZmVyIG92ZXJmbG93IGRldGVjdGVkICglZCA8ICVsdSkhXG4iLCBzaXplLCBjb3VudCk7CiB9CiAKLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbAorc3RhdGljIF9fYWx3YXlzX2lubGluZSBfX211c3RfY2hlY2sgYm9vbAogY2hlY2tfY29weV9zaXplKGNvbnN0IHZvaWQgKmFkZHIsIHNpemVfdCBieXRlcywgYm9vbCBpc19zb3VyY2UpCiB7CiAJaW50IHN6ID0gX19jb21waWxldGltZV9vYmplY3Rfc2l6ZShhZGRyKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGltZTY0LmggYi9pbmNsdWRlL2xpbnV4L3RpbWU2NC5oCmluZGV4IGE2MjBlZTYuLjE5MTI1NDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdGltZTY0LmgKKysrIGIvaW5jbHVkZS9saW51eC90aW1lNjQuaApAQCAtMzAsNiArMzAsOCBAQCBzdHJ1Y3QgaXRpbWVyc3BlYzY0IHsKIAogLyogTG9jYXRlZCBoZXJlIGZvciB0aW1lc3BlY1s2NF1fdmFsaWRfc3RyaWN0ICovCiAjZGVmaW5lIFRJTUU2NF9NQVgJCQkoKHM2NCl+KCh1NjQpMSA8PCA2MykpCisjZGVmaW5lIFRJTUU2NF9NSU4JCQkoLVRJTUU2NF9NQVggLSAxKQorCiAjZGVmaW5lIEtUSU1FX01BWAkJCSgoczY0KX4oKHU2NCkxIDw8IDYzKSkKICNkZWZpbmUgS1RJTUVfU0VDX01BWAkJCShLVElNRV9NQVggLyBOU0VDX1BFUl9TRUMpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdWFjY2Vzcy5oIGIvaW5jbHVkZS9saW51eC91YWNjZXNzLmgKaW5kZXggMzRhMDM4NS4uNzBiYmRjMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC91YWNjZXNzLmgKKysrIGIvaW5jbHVkZS9saW51eC91YWNjZXNzLmgKQEAgLTU1LDcgKzU1LDcgQEAKICAqIGFzIHVzdWFsKSBhbmQgYm90aCBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGNhbiB0cmlnZ2VyIGZhdWx0cy4KICAqLwogCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGxvbmcKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgX19tdXN0X2NoZWNrIHVuc2lnbmVkIGxvbmcKIF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWModm9pZCAqdG8sIGNvbnN0IHZvaWQgX191c2VyICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCiB7CiAJa2FzYW5fY2hlY2tfd3JpdGUodG8sIG4pOwpAQCAtNjMsNyArNjMsNyBAQCBfX2NvcHlfZnJvbV91c2VyX2luYXRvbWljKHZvaWQgKnRvLCBjb25zdCB2b2lkIF9fdXNlciAqZnJvbSwgdW5zaWduZWQgbG9uZyBuKQogCXJldHVybiByYXdfY29weV9mcm9tX3VzZXIodG8sIGZyb20sIG4pOwogfQogCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGxvbmcKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgX19tdXN0X2NoZWNrIHVuc2lnbmVkIGxvbmcKIF9fY29weV9mcm9tX3VzZXIodm9pZCAqdG8sIGNvbnN0IHZvaWQgX191c2VyICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCiB7CiAJbWlnaHRfZmF1bHQoKTsKQEAgLTg1LDcgKzg1LDcgQEAgX19jb3B5X2Zyb21fdXNlcih2b2lkICp0bywgY29uc3Qgdm9pZCBfX3VzZXIgKmZyb20sIHVuc2lnbmVkIGxvbmcgbikKICAqIFRoZSBjYWxsZXIgc2hvdWxkIGFsc28gbWFrZSBzdXJlIGhlIHBpbnMgdGhlIHVzZXIgc3BhY2UgYWRkcmVzcwogICogc28gdGhhdCB3ZSBkb24ndCByZXN1bHQgaW4gcGFnZSBmYXVsdCBhbmQgc2xlZXAuCiAgKi8KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgbG9uZworc3RhdGljIF9fYWx3YXlzX2lubGluZSBfX211c3RfY2hlY2sgdW5zaWduZWQgbG9uZwogX19jb3B5X3RvX3VzZXJfaW5hdG9taWModm9pZCBfX3VzZXIgKnRvLCBjb25zdCB2b2lkICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCiB7CiAJa2FzYW5fY2hlY2tfcmVhZChmcm9tLCBuKTsKQEAgLTkzLDcgKzkzLDcgQEAgX19jb3B5X3RvX3VzZXJfaW5hdG9taWModm9pZCBfX3VzZXIgKnRvLCBjb25zdCB2b2lkICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCiAJcmV0dXJuIHJhd19jb3B5X3RvX3VzZXIodG8sIGZyb20sIG4pOwogfQogCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGxvbmcKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgX19tdXN0X2NoZWNrIHVuc2lnbmVkIGxvbmcKIF9fY29weV90b191c2VyKHZvaWQgX191c2VyICp0bywgY29uc3Qgdm9pZCAqZnJvbSwgdW5zaWduZWQgbG9uZyBuKQogewogCW1pZ2h0X2ZhdWx0KCk7CkBAIC0xMDMsNyArMTAzLDcgQEAgX19jb3B5X3RvX3VzZXIodm9pZCBfX3VzZXIgKnRvLCBjb25zdCB2b2lkICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCiB9CiAKICNpZmRlZiBJTkxJTkVfQ09QWV9GUk9NX1VTRVIKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZworc3RhdGljIGlubGluZSBfX211c3RfY2hlY2sgdW5zaWduZWQgbG9uZwogX2NvcHlfZnJvbV91c2VyKHZvaWQgKnRvLCBjb25zdCB2b2lkIF9fdXNlciAqZnJvbSwgdW5zaWduZWQgbG9uZyBuKQogewogCXVuc2lnbmVkIGxvbmcgcmVzID0gbjsKQEAgLTExNywxMiArMTE3LDEyIEBAIF9jb3B5X2Zyb21fdXNlcih2b2lkICp0bywgY29uc3Qgdm9pZCBfX3VzZXIgKmZyb20sIHVuc2lnbmVkIGxvbmcgbikKIAlyZXR1cm4gcmVzOwogfQogI2Vsc2UKLWV4dGVybiB1bnNpZ25lZCBsb25nCitleHRlcm4gX19tdXN0X2NoZWNrIHVuc2lnbmVkIGxvbmcKIF9jb3B5X2Zyb21fdXNlcih2b2lkICosIGNvbnN0IHZvaWQgX191c2VyICosIHVuc2lnbmVkIGxvbmcpOwogI2VuZGlmCiAKICNpZmRlZiBJTkxJTkVfQ09QWV9UT19VU0VSCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKK3N0YXRpYyBpbmxpbmUgX19tdXN0X2NoZWNrIHVuc2lnbmVkIGxvbmcKIF9jb3B5X3RvX3VzZXIodm9pZCBfX3VzZXIgKnRvLCBjb25zdCB2b2lkICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCiB7CiAJbWlnaHRfZmF1bHQoKTsKQEAgLTEzMyw3ICsxMzMsNyBAQCBfY29weV90b191c2VyKHZvaWQgX191c2VyICp0bywgY29uc3Qgdm9pZCAqZnJvbSwgdW5zaWduZWQgbG9uZyBuKQogCXJldHVybiBuOwogfQogI2Vsc2UKLWV4dGVybiB1bnNpZ25lZCBsb25nCitleHRlcm4gX19tdXN0X2NoZWNrIHVuc2lnbmVkIGxvbmcKIF9jb3B5X3RvX3VzZXIodm9pZCBfX3VzZXIgKiwgY29uc3Qgdm9pZCAqLCB1bnNpZ25lZCBsb25nKTsKICNlbmRpZgogCkBAIC0yMjIsOCArMjIyLDkgQEAgc3RhdGljIGlubGluZSBib29sIHBhZ2VmYXVsdF9kaXNhYmxlZCh2b2lkKQogCiAjaWZuZGVmIEFSQ0hfSEFTX05PQ0FDSEVfVUFDQ0VTUwogCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pY19ub2NhY2hlKHZvaWQgKnRvLAotCQkJCWNvbnN0IHZvaWQgX191c2VyICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCitzdGF0aWMgaW5saW5lIF9fbXVzdF9jaGVjayB1bnNpZ25lZCBsb25nCitfX2NvcHlfZnJvbV91c2VyX2luYXRvbWljX25vY2FjaGUodm9pZCAqdG8sIGNvbnN0IHZvaWQgX191c2VyICpmcm9tLAorCQkJCSAgdW5zaWduZWQgbG9uZyBuKQogewogCXJldHVybiBfX2NvcHlfZnJvbV91c2VyX2luYXRvbWljKHRvLCBmcm9tLCBuKTsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmVyaWZpY2F0aW9uLmggYi9pbmNsdWRlL2xpbnV4L3ZlcmlmaWNhdGlvbi5oCmluZGV4IDMyZDk5MGQuLjkxMWFiN2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdmVyaWZpY2F0aW9uLmgKKysrIGIvaW5jbHVkZS9saW51eC92ZXJpZmljYXRpb24uaApAQCAtMzIsNiArMzIsNyBAQCBleHRlcm4gY29uc3QgY2hhciAqY29uc3Qga2V5X2JlaW5nX3VzZWRfZm9yW05SX19LRVlfQkVJTkdfVVNFRF9GT1JdOwogI2lmZGVmIENPTkZJR19TWVNURU1fREFUQV9WRVJJRklDQVRJT04KIAogc3RydWN0IGtleTsKK3N0cnVjdCBwa2NzN19tZXNzYWdlOwogCiBleHRlcm4gaW50IHZlcmlmeV9wa2NzN19zaWduYXR1cmUoY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbiwKIAkJCQkgIGNvbnN0IHZvaWQgKnJhd19wa2NzNywgc2l6ZV90IHBrY3M3X2xlbiwKQEAgLTQxLDYgKzQyLDE1IEBAIGV4dGVybiBpbnQgdmVyaWZ5X3BrY3M3X3NpZ25hdHVyZShjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuLAogCQkJCQkJICAgICAgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbiwKIAkJCQkJCSAgICAgIHNpemVfdCBhc24xaGRybGVuKSwKIAkJCQkgIHZvaWQgKmN0eCk7CitleHRlcm4gaW50IHZlcmlmeV9wa2NzN19tZXNzYWdlX3NpZyhjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuLAorCQkJCSAgICBzdHJ1Y3QgcGtjczdfbWVzc2FnZSAqcGtjczcsCisJCQkJICAgIHN0cnVjdCBrZXkgKnRydXN0ZWRfa2V5cywKKwkJCQkgICAgZW51bSBrZXlfYmVpbmdfdXNlZF9mb3IgdXNhZ2UsCisJCQkJICAgIGludCAoKnZpZXdfY29udGVudCkodm9pZCAqY3R4LAorCQkJCQkJCWNvbnN0IHZvaWQgKmRhdGEsCisJCQkJCQkJc2l6ZV90IGxlbiwKKwkJCQkJCQlzaXplX3QgYXNuMWhkcmxlbiksCisJCQkJICAgIHZvaWQgKmN0eCk7CiAKICNpZmRlZiBDT05GSUdfU0lHTkVEX1BFX0ZJTEVfVkVSSUZJQ0FUSU9OCiBleHRlcm4gaW50IHZlcmlmeV9wZWZpbGVfc2lnbmF0dXJlKGNvbnN0IHZvaWQgKnBlYnVmLCB1bnNpZ25lZCBwZWxlbiwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmVybWFnaWMuaCBiL2luY2x1ZGUvbGludXgvdmVybWFnaWMuaAppbmRleCBiYWU4MDdlLi45YWNlZDExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3Zlcm1hZ2ljLmgKKysrIGIvaW5jbHVkZS9saW51eC92ZXJtYWdpYy5oCkBAIC05LDYgKzksOCBAQAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1BSRUVNUFQKICNkZWZpbmUgTU9EVUxFX1ZFUk1BR0lDX1BSRUVNUFQgInByZWVtcHQgIgorI2VsaWYgZGVmaW5lZChDT05GSUdfUFJFRU1QVF9SVCkKKyNkZWZpbmUgTU9EVUxFX1ZFUk1BR0lDX1BSRUVNUFQgInByZWVtcHRfcnQgIgogI2Vsc2UKICNkZWZpbmUgTU9EVUxFX1ZFUk1BR0lDX1BSRUVNUFQgIiIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC92bWFsbG9jLmggYi9pbmNsdWRlL2xpbnV4L3ZtYWxsb2MuaAppbmRleCA5YjIxZDAwLi40ZTc4MDk0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3ZtYWxsb2MuaAorKysgYi9pbmNsdWRlL2xpbnV4L3ZtYWxsb2MuaApAQCAtMTgsNiArMTgsNyBAQCBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2s7CQkvKiBpbiBub3RpZmllci5oICovCiAjZGVmaW5lIFZNX0FMTE9DCQkweDAwMDAwMDAyCS8qIHZtYWxsb2MoKSAqLwogI2RlZmluZSBWTV9NQVAJCQkweDAwMDAwMDA0CS8qIHZtYXAoKWVkIHBhZ2VzICovCiAjZGVmaW5lIFZNX1VTRVJNQVAJCTB4MDAwMDAwMDgJLyogc3VpdGFibGUgZm9yIHJlbWFwX3ZtYWxsb2NfcmFuZ2UgKi8KKyNkZWZpbmUgVk1fRE1BX0NPSEVSRU5UCQkweDAwMDAwMDEwCS8qIGRtYV9hbGxvY19jb2hlcmVudCAqLwogI2RlZmluZSBWTV9VTklOSVRJQUxJWkVECTB4MDAwMDAwMjAJLyogdm1fc3RydWN0IGlzIG5vdCBmdWxseSBpbml0aWFsaXplZCAqLwogI2RlZmluZSBWTV9OT19HVUFSRAkJMHgwMDAwMDA0MCAgICAgIC8qIGRvbid0IGFkZCBndWFyZCBwYWdlICovCiAjZGVmaW5lIFZNX0tBU0FOCQkweDAwMDAwMDgwICAgICAgLyogaGFzIGFsbG9jYXRlZCBrYXNhbiBzaGFkb3cgbWVtb3J5ICovCkBAIC0yNiw2ICsyNyw3IEBAIHN0cnVjdCBub3RpZmllcl9ibG9jazsJCS8qIGluIG5vdGlmaWVyLmggKi8KICAqIHZmcmVlX2F0b21pYygpLgogICovCiAjZGVmaW5lIFZNX0ZMVVNIX1JFU0VUX1BFUk1TCTB4MDAwMDAxMDAgICAgICAvKiBSZXNldCBkaXJlY3QgbWFwIGFuZCBmbHVzaCBUTEIgb24gdW5tYXAgKi8KKwogLyogYml0cyBbMjAuLjMyXSByZXNlcnZlZCBmb3IgYXJjaCBzcGVjaWZpYyBpb3JlbWFwIGludGVybmFscyAqLwogCiAvKgpAQCAtNTEsMTUgKzUzLDIxIEBAIHN0cnVjdCB2bWFwX2FyZWEgewogCXVuc2lnbmVkIGxvbmcgdmFfc3RhcnQ7CiAJdW5zaWduZWQgbG9uZyB2YV9lbmQ7CiAKLQkvKgotCSAqIExhcmdlc3QgYXZhaWxhYmxlIGZyZWUgc2l6ZSBpbiBzdWJ0cmVlLgotCSAqLwotCXVuc2lnbmVkIGxvbmcgc3VidHJlZV9tYXhfc2l6ZTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCByYl9ub2RlIHJiX25vZGU7ICAgICAgICAgLyogYWRkcmVzcyBzb3J0ZWQgcmJ0cmVlICovCiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OyAgICAgICAgICAvKiBhZGRyZXNzIHNvcnRlZCBsaXN0ICovCi0Jc3RydWN0IGxsaXN0X25vZGUgcHVyZ2VfbGlzdDsgICAgLyogImxhenkgcHVyZ2UiIGxpc3QgKi8KLQlzdHJ1Y3Qgdm1fc3RydWN0ICp2bTsKKworCS8qCisJICogVGhlIGZvbGxvd2luZyB0aHJlZSB2YXJpYWJsZXMgY2FuIGJlIHBhY2tlZCwgYmVjYXVzZQorCSAqIGEgdm1hcF9hcmVhIG9iamVjdCBpcyBhbHdheXMgb25lIG9mIHRoZSB0aHJlZSBzdGF0ZXM6CisJICogICAgMSkgaW4gImZyZWUiIHRyZWUgKHJvb3QgaXMgdm1hcF9hcmVhX3Jvb3QpCisJICogICAgMikgaW4gImJ1c3kiIHRyZWUgKHJvb3QgaXMgZnJlZV92bWFwX2FyZWFfcm9vdCkKKwkgKiAgICAzKSBpbiBwdXJnZSBsaXN0ICAoaGVhZCBpcyB2bWFwX3B1cmdlX2xpc3QpCisJICovCisJdW5pb24geworCQl1bnNpZ25lZCBsb25nIHN1YnRyZWVfbWF4X3NpemU7IC8qIGluICJmcmVlIiB0cmVlICovCisJCXN0cnVjdCB2bV9zdHJ1Y3QgKnZtOyAgICAgICAgICAgLyogaW4gImJ1c3kiIHRyZWUgKi8KKwkJc3RydWN0IGxsaXN0X25vZGUgcHVyZ2VfbGlzdDsgICAvKiBpbiBwdXJnZSBsaXN0ICovCisJfTsKIH07CiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3pwb29sLmggYi9pbmNsdWRlL2xpbnV4L3pwb29sLmgKaW5kZXggNzIzODg2NWUuLjUxYmY0MzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvenBvb2wuaAorKysgYi9pbmNsdWRlL2xpbnV4L3pwb29sLmgKQEAgLTQ2LDYgKzQ2LDggQEAgY29uc3QgY2hhciAqenBvb2xfZ2V0X3R5cGUoc3RydWN0IHpwb29sICpwb29sKTsKIAogdm9pZCB6cG9vbF9kZXN0cm95X3Bvb2woc3RydWN0IHpwb29sICpwb29sKTsKIAorYm9vbCB6cG9vbF9tYWxsb2Nfc3VwcG9ydF9tb3ZhYmxlKHN0cnVjdCB6cG9vbCAqcG9vbCk7CisKIGludCB6cG9vbF9tYWxsb2Moc3RydWN0IHpwb29sICpwb29sLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwLAogCQkJdW5zaWduZWQgbG9uZyAqaGFuZGxlKTsKIApAQCAtOTAsNiArOTIsNyBAQCBzdHJ1Y3QgenBvb2xfZHJpdmVyIHsKIAkJCXN0cnVjdCB6cG9vbCAqenBvb2wpOwogCXZvaWQgKCpkZXN0cm95KSh2b2lkICpwb29sKTsKIAorCWJvb2wgbWFsbG9jX3N1cHBvcnRfbW92YWJsZTsKIAlpbnQgKCptYWxsb2MpKHZvaWQgKnBvb2wsIHNpemVfdCBzaXplLCBnZnBfdCBnZnAsCiAJCQkJdW5zaWduZWQgbG9uZyAqaGFuZGxlKTsKIAl2b2lkICgqZnJlZSkodm9pZCAqcG9vbCwgdW5zaWduZWQgbG9uZyBoYW5kbGUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL2liLmggYi9pbmNsdWRlL3JkbWEvaWIuaAppbmRleCA0ZjM4NWVjLi5mZTJmYzllIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWIuaAorKysgYi9pbmNsdWRlL3JkbWEvaWIuaApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9jcmVkLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAKIHN0cnVjdCBpYl9hZGRyIHsKIAl1bmlvbiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfdW1lbS5oIGIvaW5jbHVkZS9yZG1hL2liX3VtZW0uaAppbmRleCAxMDUyZDBkLi5hOTFiMmFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfdW1lbS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl91bWVtLmgKQEAgLTQyLDcgKzQyLDcgQEAgc3RydWN0IGliX3Vjb250ZXh0Owogc3RydWN0IGliX3VtZW1fb2RwOwogCiBzdHJ1Y3QgaWJfdW1lbSB7Ci0Jc3RydWN0IGliX3Vjb250ZXh0ICAgICAqY29udGV4dDsKKwlzdHJ1Y3QgaWJfZGV2aWNlICAgICAgICppYmRldjsKIAlzdHJ1Y3QgbW1fc3RydWN0ICAgICAgICpvd25pbmdfbW07CiAJc2l6ZV90CQkJbGVuZ3RoOwogCXVuc2lnbmVkIGxvbmcJCWFkZHJlc3M7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfdW1lbV9vZHAuaCBiL2luY2x1ZGUvcmRtYS9pYl91bWVtX29kcC5oCmluZGV4IDQ3OWRiNWMuLjI1M2RmMWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl91bWVtX29kcC5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl91bWVtX29kcC5oCkBAIC0zNywxMSArMzcsNiBAQAogI2luY2x1ZGUgPHJkbWEvaWJfdmVyYnMuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnZhbF90cmVlLmg+CiAKLXN0cnVjdCB1bWVtX29kcF9ub2RlIHsKLQl1NjQgX19zdWJ0cmVlX2xhc3Q7Ci0Jc3RydWN0IHJiX25vZGUgcmI7Ci19OwotCiBzdHJ1Y3QgaWJfdW1lbV9vZHAgewogCXN0cnVjdCBpYl91bWVtIHVtZW07CiAJc3RydWN0IGliX3Vjb250ZXh0X3Blcl9tbSAqcGVyX21tOwpAQCAtNzIsNyArNjcsMTUgQEAgc3RydWN0IGliX3VtZW1fb2RwIHsKIAlpbnQgbnBhZ2VzOwogCiAJLyogVHJlZSB0cmFja2luZyAqLwotCXN0cnVjdCB1bWVtX29kcF9ub2RlCWludGVydmFsX3RyZWU7CisJc3RydWN0IGludGVydmFsX3RyZWVfbm9kZSBpbnRlcnZhbF90cmVlOworCisJLyoKKwkgKiBBbiBpbXBsaWNpdCBvZHAgdW1lbSBjYW5ub3QgYmUgRE1BIG1hcHBlZCwgaGFzIDAgbGVuZ3RoLCBhbmQgc2VydmVzCisJICogb25seSBhcyBhbiBhbmNob3IgZm9yIHRoZSBkcml2ZXIgdG8gaG9sZCBvbnRvIHRoZSBwZXJfbW0uIEZJWE1FOgorCSAqIFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgYW5kIGRyaXZlcnMgc2hvdWxkIHdvcmsgd2l0aCB0aGUgcGVyX21tCisJICogZGlyZWN0bHkuCisJICovCisJYm9vbCBpc19pbXBsaWNpdF9vZHA7CiAKIAlzdHJ1Y3QgY29tcGxldGlvbglub3RpZmllcl9jb21wbGV0aW9uOwogCWludAkJCWR5aW5nOwpAQCAtODgsMTQgKzkxLDEzIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGliX3VtZW1fb2RwICp0b19pYl91bWVtX29kcChzdHJ1Y3QgaWJfdW1lbSAqdW1lbSkKIC8qIFJldHVybnMgdGhlIGZpcnN0IHBhZ2Ugb2YgYW4gT0RQIHVtZW0uICovCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgaWJfdW1lbV9zdGFydChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwKQogewotCXJldHVybiBBTElHTl9ET1dOKHVtZW1fb2RwLT51bWVtLmFkZHJlc3MsIDFVTCA8PCB1bWVtX29kcC0+cGFnZV9zaGlmdCk7CisJcmV0dXJuIHVtZW1fb2RwLT5pbnRlcnZhbF90cmVlLnN0YXJ0OwogfQogCiAvKiBSZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoZSBwYWdlIGFmdGVyIHRoZSBsYXN0IG9uZSBvZiBhbiBPRFAgdW1lbS4gKi8KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBpYl91bWVtX2VuZChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwKQogewotCXJldHVybiBBTElHTih1bWVtX29kcC0+dW1lbS5hZGRyZXNzICsgdW1lbV9vZHAtPnVtZW0ubGVuZ3RoLAotCQkgICAgIDFVTCA8PCB1bWVtX29kcC0+cGFnZV9zaGlmdCk7CisJcmV0dXJuIHVtZW1fb2RwLT5pbnRlcnZhbF90cmVlLmxhc3QgKyAxOwogfQogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBpYl91bWVtX29kcF9udW1fcGFnZXMoc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCkKQEAgLTEyMCwyNSArMTIyLDIwIEBAIHN0YXRpYyBpbmxpbmUgc2l6ZV90IGliX3VtZW1fb2RwX251bV9wYWdlcyhzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwKQogI2lmZGVmIENPTkZJR19JTkZJTklCQU5EX09OX0RFTUFORF9QQUdJTkcKIAogc3RydWN0IGliX3Vjb250ZXh0X3Blcl9tbSB7Ci0Jc3RydWN0IGliX3Vjb250ZXh0ICpjb250ZXh0OwotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOworCXN0cnVjdCBtbXVfbm90aWZpZXIgbW47CiAJc3RydWN0IHBpZCAqdGdpZDsKLQlib29sIGFjdGl2ZTsKIAogCXN0cnVjdCByYl9yb290X2NhY2hlZCB1bWVtX3RyZWU7CiAJLyogUHJvdGVjdHMgdW1lbV90cmVlICovCiAJc3RydWN0IHJ3X3NlbWFwaG9yZSB1bWVtX3J3c2VtOwotCi0Jc3RydWN0IG1tdV9ub3RpZmllciBtbjsKLQl1bnNpZ25lZCBpbnQgb2RwX21yc19jb3VudDsKLQotCXN0cnVjdCBsaXN0X2hlYWQgdWNvbnRleHRfbGlzdDsKLQlzdHJ1Y3QgcmN1X2hlYWQgcmN1OwogfTsKIAotaW50IGliX3VtZW1fb2RwX2dldChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwLCBpbnQgYWNjZXNzKTsKLXN0cnVjdCBpYl91bWVtX29kcCAqaWJfYWxsb2Nfb2RwX3VtZW0oc3RydWN0IGliX3VtZW1fb2RwICpyb290X3VtZW0sCi0JCQkJICAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCBzaXplX3Qgc2l6ZSk7CitzdHJ1Y3QgaWJfdW1lbV9vZHAgKmliX3VtZW1fb2RwX2dldChzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJICAgIHNpemVfdCBzaXplLCBpbnQgYWNjZXNzKTsKK3N0cnVjdCBpYl91bWVtX29kcCAqaWJfdW1lbV9vZHBfYWxsb2NfaW1wbGljaXQoc3RydWN0IGliX3VkYXRhICp1ZGF0YSwKKwkJCQkJICAgICAgIGludCBhY2Nlc3MpOworc3RydWN0IGliX3VtZW1fb2RwICppYl91bWVtX29kcF9hbGxvY19jaGlsZChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnJvb3RfdW1lbSwKKwkJCQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgc2l6ZV90IHNpemUpOwogdm9pZCBpYl91bWVtX29kcF9yZWxlYXNlKHN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9vZHApOwogCiBpbnQgaWJfdW1lbV9vZHBfbWFwX2RtYV9wYWdlcyhzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwLCB1NjQgc3RhcnRfb2Zmc2V0LApAQCAtMTYzLDggKzE2MCwxNyBAQCBpbnQgcmJ0X2liX3VtZW1fZm9yX2VhY2hfaW5fcmFuZ2Uoc3RydWN0IHJiX3Jvb3RfY2FjaGVkICpyb290LAogICogRmluZCBmaXJzdCByZWdpb24gaW50ZXJzZWN0aW5nIHdpdGggYWRkcmVzcyByYW5nZS4KICAqIFJldHVybiBOVUxMIGlmIG5vdCBmb3VuZAogICovCi1zdHJ1Y3QgaWJfdW1lbV9vZHAgKnJidF9pYl91bWVtX2xvb2t1cChzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgKnJvb3QsCi0JCQkJICAgICAgIHU2NCBhZGRyLCB1NjQgbGVuZ3RoKTsKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGliX3VtZW1fb2RwICoKK3JidF9pYl91bWVtX2xvb2t1cChzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgKnJvb3QsIHU2NCBhZGRyLCB1NjQgbGVuZ3RoKQoreworCXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgKm5vZGU7CisKKwlub2RlID0gaW50ZXJ2YWxfdHJlZV9pdGVyX2ZpcnN0KHJvb3QsIGFkZHIsIGFkZHIgKyBsZW5ndGggLSAxKTsKKwlpZiAoIW5vZGUpCisJCXJldHVybiBOVUxMOworCXJldHVybiBjb250YWluZXJfb2Yobm9kZSwgc3RydWN0IGliX3VtZW1fb2RwLCBpbnRlcnZhbF90cmVlKTsKKworfQogCiBzdGF0aWMgaW5saW5lIGludCBpYl91bWVtX21tdV9ub3RpZmllcl9yZXRyeShzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwLAogCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgbW11X3NlcSkKQEAgLTE4NSw5ICsxOTEsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgaWJfdW1lbV9tbXVfbm90aWZpZXJfcmV0cnkoc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCwKIAogI2Vsc2UgLyogQ09ORklHX0lORklOSUJBTkRfT05fREVNQU5EX1BBR0lORyAqLwogCi1zdGF0aWMgaW5saW5lIGludCBpYl91bWVtX29kcF9nZXQoc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCwgaW50IGFjY2VzcykKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGliX3VtZW1fb2RwICppYl91bWVtX29kcF9nZXQoc3RydWN0IGliX3VkYXRhICp1ZGF0YSwKKwkJCQkJCSAgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkJCQkJICBzaXplX3Qgc2l6ZSwgaW50IGFjY2VzcykKIHsKLQlyZXR1cm4gLUVJTlZBTDsKKwlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGliX3VtZW1fb2RwX3JlbGVhc2Uoc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCkge30KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl92ZXJicy5oIGIvaW5jbHVkZS9yZG1hL2liX3ZlcmJzLmgKaW5kZXggNGYyMjUxNy4uNmE0N2JhOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2liX3ZlcmJzLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3ZlcmJzLmgKQEAgLTk4LDE1ICs5OCw1NCBAQCB2b2lkIGliZGV2X2luZm8oY29uc3Qgc3RydWN0IGliX2RldmljZSAqaWJkZXYsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKICNpZiBkZWZpbmVkKENPTkZJR19EWU5BTUlDX0RFQlVHKQogI2RlZmluZSBpYmRldl9kYmcoX19kZXYsIGZvcm1hdCwgYXJncy4uLikgICAgICAgICAgICAgICAgICAgICAgIFwKIAlkeW5hbWljX2liZGV2X2RiZyhfX2RldiwgZm9ybWF0LCAjI2FyZ3MpCi0jZWxpZiBkZWZpbmVkKERFQlVHKQotI2RlZmluZSBpYmRldl9kYmcoX19kZXYsIGZvcm1hdCwgYXJncy4uLikgICAgICAgICAgICAgICAgICAgICAgIFwKLQlpYmRldl9wcmludGsoS0VSTl9ERUJVRywgX19kZXYsIGZvcm1hdCwgIyNhcmdzKQogI2Vsc2UKIF9fcHJpbnRmKDIsIDMpIF9fY29sZAogc3RhdGljIGlubGluZQogdm9pZCBpYmRldl9kYmcoY29uc3Qgc3RydWN0IGliX2RldmljZSAqaWJkZXYsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKSB7fQogI2VuZGlmCiAKKyNkZWZpbmUgaWJkZXZfbGV2ZWxfcmF0ZWxpbWl0ZWQoaWJkZXZfbGV2ZWwsIGliZGV2LCBmbXQsIC4uLikgICAgICAgICAgIFwKK2RvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlzdGF0aWMgREVGSU5FX1JBVEVMSU1JVF9TVEFURShfcnMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkJCSAgICAgIERFRkFVTFRfUkFURUxJTUlUX0lOVEVSVkFMLCAgICAgICBcCisJCQkJICAgICAgREVGQVVMVF9SQVRFTElNSVRfQlVSU1QpOyAgICAgICAgIFwKKwlpZiAoX19yYXRlbGltaXQoJl9ycykpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQlpYmRldl9sZXZlbChpYmRldiwgZm10LCAjI19fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgIFwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgaWJkZXZfZW1lcmdfcmF0ZWxpbWl0ZWQoaWJkZXYsIGZtdCwgLi4uKSBcCisJaWJkZXZfbGV2ZWxfcmF0ZWxpbWl0ZWQoaWJkZXZfZW1lcmcsIGliZGV2LCBmbXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIGliZGV2X2FsZXJ0X3JhdGVsaW1pdGVkKGliZGV2LCBmbXQsIC4uLikgXAorCWliZGV2X2xldmVsX3JhdGVsaW1pdGVkKGliZGV2X2FsZXJ0LCBpYmRldiwgZm10LCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBpYmRldl9jcml0X3JhdGVsaW1pdGVkKGliZGV2LCBmbXQsIC4uLikgXAorCWliZGV2X2xldmVsX3JhdGVsaW1pdGVkKGliZGV2X2NyaXQsIGliZGV2LCBmbXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIGliZGV2X2Vycl9yYXRlbGltaXRlZChpYmRldiwgZm10LCAuLi4pIFwKKwlpYmRldl9sZXZlbF9yYXRlbGltaXRlZChpYmRldl9lcnIsIGliZGV2LCBmbXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIGliZGV2X3dhcm5fcmF0ZWxpbWl0ZWQoaWJkZXYsIGZtdCwgLi4uKSBcCisJaWJkZXZfbGV2ZWxfcmF0ZWxpbWl0ZWQoaWJkZXZfd2FybiwgaWJkZXYsIGZtdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgaWJkZXZfbm90aWNlX3JhdGVsaW1pdGVkKGliZGV2LCBmbXQsIC4uLikgXAorCWliZGV2X2xldmVsX3JhdGVsaW1pdGVkKGliZGV2X25vdGljZSwgaWJkZXYsIGZtdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgaWJkZXZfaW5mb19yYXRlbGltaXRlZChpYmRldiwgZm10LCAuLi4pIFwKKwlpYmRldl9sZXZlbF9yYXRlbGltaXRlZChpYmRldl9pbmZvLCBpYmRldiwgZm10LCAjI19fVkFfQVJHU19fKQorCisjaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19ERUJVRykKKy8qIGRlc2NyaXB0b3IgY2hlY2sgaXMgZmlyc3QgdG8gcHJldmVudCBmbG9vZGluZyB3aXRoICJjYWxsYmFja3Mgc3VwcHJlc3NlZCIgKi8KKyNkZWZpbmUgaWJkZXZfZGJnX3JhdGVsaW1pdGVkKGliZGV2LCBmbXQsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2RvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlzdGF0aWMgREVGSU5FX1JBVEVMSU1JVF9TVEFURShfcnMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkJCSAgICAgIERFRkFVTFRfUkFURUxJTUlUX0lOVEVSVkFMLCAgICAgICBcCisJCQkJICAgICAgREVGQVVMVF9SQVRFTElNSVRfQlVSU1QpOyAgICAgICAgIFwKKwlERUZJTkVfRFlOQU1JQ19ERUJVR19NRVRBREFUQShkZXNjcmlwdG9yLCBmbXQpOyAgICAgICAgICAgICAgICAgXAorCWlmIChEWU5BTUlDX0RFQlVHX0JSQU5DSChkZXNjcmlwdG9yKSAmJiBfX3JhdGVsaW1pdCgmX3JzKSkgICAgICBcCisJCV9fZHluYW1pY19pYmRldl9kYmcoJmRlc2NyaXB0b3IsIGliZGV2LCBmbXQsICAgICAgICAgICAgXAorCQkJCSAgICAjI19fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlICgwKQorI2Vsc2UKK19fcHJpbnRmKDIsIDMpIF9fY29sZAorc3RhdGljIGlubGluZQordm9pZCBpYmRldl9kYmdfcmF0ZWxpbWl0ZWQoY29uc3Qgc3RydWN0IGliX2RldmljZSAqaWJkZXYsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKSB7fQorI2VuZGlmCisKIHVuaW9uIGliX2dpZCB7CiAJdTgJcmF3WzE2XTsKIAlzdHJ1Y3QgewpAQCAtNDUxLDYgKzQ5MCwxNiBAQCBlbnVtIGliX3BvcnRfc3RhdGUgewogCUlCX1BPUlRfQUNUSVZFX0RFRkVSCT0gNQogfTsKIAorZW51bSBpYl9wb3J0X3BoeXNfc3RhdGUgeworCUlCX1BPUlRfUEhZU19TVEFURV9TTEVFUCA9IDEsCisJSUJfUE9SVF9QSFlTX1NUQVRFX1BPTExJTkcgPSAyLAorCUlCX1BPUlRfUEhZU19TVEFURV9ESVNBQkxFRCA9IDMsCisJSUJfUE9SVF9QSFlTX1NUQVRFX1BPUlRfQ09ORklHVVJBVElPTl9UUkFJTklORyA9IDQsCisJSUJfUE9SVF9QSFlTX1NUQVRFX0xJTktfVVAgPSA1LAorCUlCX1BPUlRfUEhZU19TVEFURV9MSU5LX0VSUk9SX1JFQ09WRVJZID0gNiwKKwlJQl9QT1JUX1BIWVNfU1RBVEVfUEhZX1RFU1QgPSA3LAorfTsKKwogZW51bSBpYl9wb3J0X3dpZHRoIHsKIAlJQl9XSURUSF8xWAk9IDEsCiAJSUJfV0lEVEhfMlgJPSAxNiwKQEAgLTE0MTcsMTEgKzE0NjYsNiBAQCBzdHJ1Y3QgaWJfdWNvbnRleHQgewogCiAJYm9vbCBjbGVhbnVwX3JldHJ5YWJsZTsKIAotCXZvaWQgKCppbnZhbGlkYXRlX3JhbmdlKShzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwLAotCQkJCSB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7Ci0Jc3RydWN0IG11dGV4IHBlcl9tbV9saXN0X2xvY2s7Ci0Jc3RydWN0IGxpc3RfaGVhZCBwZXJfbW1fbGlzdDsKLQogCXN0cnVjdCBpYl9yZG1hY2dfb2JqZWN0CWNnX29iajsKIAkvKgogCSAqIEltcGxlbWVudGF0aW9uIGRldGFpbHMgb2YgdGhlIFJETUEgY29yZSwgZG9uJ3QgdXNlIGluIGRyaXZlcnM6CkBAIC0yMzc4LDYgKzI0MjIsOCBAQCBzdHJ1Y3QgaWJfZGV2aWNlX29wcyB7CiAJCQkgICAgdTY0IGlvdmEpOwogCWludCAoKnVubWFwX2Ztcikoc3RydWN0IGxpc3RfaGVhZCAqZm1yX2xpc3QpOwogCWludCAoKmRlYWxsb2NfZm1yKShzdHJ1Y3QgaWJfZm1yICpmbXIpOworCXZvaWQgKCppbnZhbGlkYXRlX3JhbmdlKShzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwLAorCQkJCSB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7CiAJaW50ICgqYXR0YWNoX21jYXN0KShzdHJ1Y3QgaWJfcXAgKnFwLCB1bmlvbiBpYl9naWQgKmdpZCwgdTE2IGxpZCk7CiAJaW50ICgqZGV0YWNoX21jYXN0KShzdHJ1Y3QgaWJfcXAgKnFwLCB1bmlvbiBpYl9naWQgKmdpZCwgdTE2IGxpZCk7CiAJc3RydWN0IGliX3hyY2QgKigqYWxsb2NfeHJjZCkoc3RydWN0IGliX2RldmljZSAqZGV2aWNlLApAQCAtMzcxMyw2ICszNzU5LDI1IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGliX2NxICppYl9hbGxvY19jcShzdHJ1Y3QgaWJfZGV2aWNlICpkZXYsIHZvaWQgKnByaXZhdGUsCiAJCQkJTlVMTCk7CiB9CiAKK3N0cnVjdCBpYl9jcSAqX19pYl9hbGxvY19jcV9hbnkoc3RydWN0IGliX2RldmljZSAqZGV2LCB2b2lkICpwcml2YXRlLAorCQkJCWludCBucl9jcWUsIGVudW0gaWJfcG9sbF9jb250ZXh0IHBvbGxfY3R4LAorCQkJCWNvbnN0IGNoYXIgKmNhbGxlcik7CisKKy8qKgorICogaWJfYWxsb2NfY3FfYW55OiBBbGxvY2F0ZSBrZXJuZWwgQ1EKKyAqIEBkZXY6IFRoZSBJQiBkZXZpY2UKKyAqIEBwcml2YXRlOiBQcml2YXRlIGRhdGEgYXR0YWNoZWQgdG8gdGhlIENRRQorICogQG5yX2NxZTogTnVtYmVyIG9mIENRRXMgaW4gdGhlIENRCisgKiBAcG9sbF9jdHg6IENvbnRleHQgdXNlZCBmb3IgcG9sbGluZyB0aGUgQ1EKKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgaWJfY3EgKmliX2FsbG9jX2NxX2FueShzdHJ1Y3QgaWJfZGV2aWNlICpkZXYsCisJCQkJCSAgICB2b2lkICpwcml2YXRlLCBpbnQgbnJfY3FlLAorCQkJCQkgICAgZW51bSBpYl9wb2xsX2NvbnRleHQgcG9sbF9jdHgpCit7CisJcmV0dXJuIF9faWJfYWxsb2NfY3FfYW55KGRldiwgcHJpdmF0ZSwgbnJfY3FlLCBwb2xsX2N0eCwKKwkJCQkgS0JVSUxEX01PRE5BTUUpOworfQorCiAvKioKICAqIGliX2ZyZWVfY3FfdXNlciAtIEZyZWUga2VybmVsL3VzZXIgQ1EKICAqIEBjcTogVGhlIENRIHRvIGZyZWUKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pd19wb3J0bWFwLmggYi9pbmNsdWRlL3JkbWEvaXdfcG9ydG1hcC5oCmluZGV4IGI5ZmVlN2YuLmM4OTUzNTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pd19wb3J0bWFwLmgKKysrIGIvaW5jbHVkZS9yZG1hL2l3X3BvcnRtYXAuaApAQCAtMzMsNiArMzMsOSBAQAogI2lmbmRlZiBfSVdfUE9SVE1BUF9ICiAjZGVmaW5lIF9JV19QT1JUTUFQX0gKIAorI2luY2x1ZGUgPGxpbnV4L3NvY2tldC5oPgorI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KKwogI2RlZmluZSBJV1BNX1VMSUJOQU1FX1NJWkUJMzIKICNkZWZpbmUgSVdQTV9ERVZOQU1FX1NJWkUJMzIKICNkZWZpbmUgSVdQTV9JRk5BTUVfU0laRQkxNgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL29wYV9wb3J0X2luZm8uaCBiL2luY2x1ZGUvcmRtYS9vcGFfcG9ydF9pbmZvLmgKaW5kZXggNzE0N2E5Mi4uYmRiZmUyNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL29wYV9wb3J0X2luZm8uaAorKysgYi9pbmNsdWRlL3JkbWEvb3BhX3BvcnRfaW5mby5oCkBAIC0zMyw2ICszMyw4IEBACiAjaWYgIWRlZmluZWQoT1BBX1BPUlRfSU5GT19IKQogI2RlZmluZSBPUEFfUE9SVF9JTkZPX0gKIAorI2luY2x1ZGUgPHJkbWEvb3BhX3NtaS5oPgorCiAjZGVmaW5lIE9QQV9QT1JUX0xJTktfTU9ERV9OT1AJMAkJLyogTm8gY2hhbmdlICovCiAjZGVmaW5lIE9QQV9QT1JUX0xJTktfTU9ERV9PUEEJNAkJLyogUG9ydCBtb2RlIGlzIE9QQSAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvcmRtYV9uZXRsaW5rLmggYi9pbmNsdWRlL3JkbWEvcmRtYV9uZXRsaW5rLmgKaW5kZXggNjYzMTYyNC4uYWIyMjc1OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL3JkbWFfbmV0bGluay5oCisrKyBiL2luY2x1ZGUvcmRtYS9yZG1hX25ldGxpbmsuaApAQCAtNzYsMjggKzc2LDMyIEBAIGludCBpYm5sX3B1dF9hdHRyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCiAvKioKICAqIFNlbmQgdGhlIHN1cHBsaWVkIHNrYiB0byBhIHNwZWNpZmljIHVzZXJzcGFjZSBQSUQuCisgKiBAbmV0OiBOZXQgbmFtZXNwYWNlIGluIHdoaWNoIHRvIHNlbmQgdGhlIHNrYgogICogQHNrYjogVGhlIG5ldGxpbmsgc2tiCiAgKiBAcGlkOiBVc2Vyc3BhY2UgbmV0bGluayBwcm9jZXNzIElECiAgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCiAgKi8KLWludCByZG1hX25sX3VuaWNhc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHBpZCk7CitpbnQgcmRtYV9ubF91bmljYXN0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHBpZCk7CiAKIC8qKgogICogU2VuZCwgd2l0aCB3YWl0LzEgcmV0cnksIHRoZSBzdXBwbGllZCBza2IgdG8gYSBzcGVjaWZpYyB1c2Vyc3BhY2UgUElELgorICogQG5ldDogTmV0IG5hbWVzcGFjZSBpbiB3aGljaCB0byBzZW5kIHRoZSBza2IKICAqIEBza2I6IFRoZSBuZXRsaW5rIHNrYgogICogQHBpZDogVXNlcnNwYWNlIG5ldGxpbmsgcHJvY2VzcyBJRAogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlLgogICovCi1pbnQgcmRtYV9ubF91bmljYXN0X3dhaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgX191MzIgcGlkKTsKK2ludCByZG1hX25sX3VuaWNhc3Rfd2FpdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIF9fdTMyIHBpZCk7CiAKIC8qKgogICogU2VuZCB0aGUgc3VwcGxpZWQgc2tiIHRvIGEgbmV0bGluayBncm91cC4KKyAqIEBuZXQ6IE5ldCBuYW1lc3BhY2UgaW4gd2hpY2ggdG8gc2VuZCB0aGUgc2tiCiAgKiBAc2tiOiBUaGUgbmV0bGluayBza2IKICAqIEBncm91cDogTmV0bGluayBncm91cCBJRAogICogQGZsYWdzOiBhbGxvY2F0aW9uIGZsYWdzCiAgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCiAgKi8KLWludCByZG1hX25sX211bHRpY2FzdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgZ3JvdXAsIGdmcF90IGZsYWdzKTsKK2ludCByZG1hX25sX211bHRpY2FzdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsCisJCSAgICAgIHVuc2lnbmVkIGludCBncm91cCwgZ2ZwX3QgZmxhZ3MpOwogCiAvKioKICAqIENoZWNrIGlmIHRoZXJlIGFyZSBhbnkgbGlzdGVuZXJzIHRvIHRoZSBuZXRsaW5rIGdyb3VwCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvcmRtYV92dC5oIGIvaW5jbHVkZS9yZG1hL3JkbWFfdnQuaAppbmRleCA1MjU4NDhlLi5hYzVhOTQzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvcmRtYV92dC5oCisrKyBiL2luY2x1ZGUvcmRtYS9yZG1hX3Z0LmgKQEAgLTExNiw2ICsxMTYsNyBAQCBzdHJ1Y3QgcnZ0X2licG9ydCB7CiAJdTY0IG5fdW5hbGlnbmVkOwogCXU2NCBuX3JjX2R1cHJlcTsKIAl1NjQgbl9yY19zZXFuYWs7CisJdTY0IG5fcmNfY3J3YWl0czsKIAl1MTYgcGtleV92aW9sYXRpb25zOwogCXUxNiBxa2V5X3Zpb2xhdGlvbnM7CiAJdTE2IG1rZXlfdmlvbGF0aW9uczsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9yZG1hdnRfY3EuaCBiL2luY2x1ZGUvcmRtYS9yZG1hdnRfY3EuaAppbmRleCAwNGM1MTllLi41NzRlYjcyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvcmRtYXZ0X2NxLmgKKysrIGIvaW5jbHVkZS9yZG1hL3JkbWF2dF9jcS5oCkBAIC01Myw2ICs1Myw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiAjaW5jbHVkZSA8cmRtYS9pYl91c2VyX3ZlcmJzLmg+CisjaW5jbHVkZSA8cmRtYS9pYl92ZXJicy5oPgogCiAvKgogICogRGVmaW5lIGFuIGliX2NxX25vdGlmeSB2YWx1ZSB0aGF0IGlzIG5vdCB2YWxpZCBzbyB3ZSBrbm93IHdoZW4gQ1EKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9yZG1hdnRfcXAuaCBiL2luY2x1ZGUvcmRtYS9yZG1hdnRfcXAuaAppbmRleCBlMDZjNzdkLi5iNTUwYWU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvcmRtYXZ0X3FwLmgKKysrIGIvaW5jbHVkZS9yZG1hL3JkbWF2dF9xcC5oCkBAIC05NzMsNiArOTczLDQxIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBydnRfZnJlZV9ycShzdHJ1Y3QgcnZ0X3JxICpycSkKIAlycS0+d3EgPSBOVUxMOwogfQogCisvKioKKyAqIHJ2dF90b19pcG9ydCAtIEdldCB0aGUgaWJwb3J0IHBvaW50ZXIKKyAqIEBxcDogdGhlIHFwIHBvaW50ZXIKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGlicG9ydCBwb2ludGVyIGZyb20gdGhlIHFwIHBvaW50ZXIuCisgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJ2dF9pYnBvcnQgKnJ2dF90b19pcG9ydChzdHJ1Y3QgcnZ0X3FwICpxcCkKK3sKKwlzdHJ1Y3QgcnZ0X2Rldl9pbmZvICpyZGkgPSBpYl90b19ydnQocXAtPmlicXAuZGV2aWNlKTsKKworCXJldHVybiByZGktPnBvcnRzW3FwLT5wb3J0X251bSAtIDFdOworfQorCisvKioKKyAqIHJ2dF9yY19jcmVkaXRfYXZhaWwgLSBDaGVjayBpZiB0aGVyZSBhcmUgZW5vdWdoIFJDIGNyZWRpdHMgZm9yIHRoZSByZXF1ZXN0CisgKiBAcXA6IHRoZSBxcAorICogQHdxZTogdGhlIHJlcXVlc3QKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgZmFsc2Ugd2hlbiB0aGVyZSBhcmUgbm90IGVub3VnaCBjcmVkaXRzIGZvciB0aGUgZ2l2ZW4KKyAqIHJlcXVlc3QgYW5kIHRydWUgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW5saW5lIGJvb2wgcnZ0X3JjX2NyZWRpdF9hdmFpbChzdHJ1Y3QgcnZ0X3FwICpxcCwgc3RydWN0IHJ2dF9zd3FlICp3cWUpCit7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmcXAtPnNfbG9jayk7CisJaWYgKCEocXAtPnNfZmxhZ3MgJiBSVlRfU19VTkxJTUlURURfQ1JFRElUKSAmJgorCSAgICBydnRfY21wX21zbih3cWUtPnNzbiwgcXAtPnNfbHNuICsgMSkgPiAwKSB7CisJCXN0cnVjdCBydnRfaWJwb3J0ICpydnAgPSBydnRfdG9faXBvcnQocXApOworCisJCXFwLT5zX2ZsYWdzIHw9IFJWVF9TX1dBSVRfU1NOX0NSRURJVDsKKwkJcnZwLT5uX3JjX2Nyd2FpdHMrKzsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwlyZXR1cm4gdHJ1ZTsKK30KKwogc3RydWN0IHJ2dF9xcF9pdGVyICpydnRfcXBfaXRlcl9pbml0KHN0cnVjdCBydnRfZGV2X2luZm8gKnJkaSwKIAkJCQkgICAgIHU2NCB2LAogCQkJCSAgICAgdm9pZCAoKmNiKShzdHJ1Y3QgcnZ0X3FwICpxcCwgdTY0IHYpKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9zaWduYXR1cmUuaCBiL2luY2x1ZGUvcmRtYS9zaWduYXR1cmUuaAppbmRleCBmMjRjYzJhLi5kMTZiMGZjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvc2lnbmF0dXJlLmgKKysrIGIvaW5jbHVkZS9yZG1hL3NpZ25hdHVyZS5oCkBAIC02LDYgKzYsOCBAQAogI2lmbmRlZiBfUkRNQV9TSUdOQVRVUkVfSF8KICNkZWZpbmUgX1JETUFfU0lHTkFUVVJFX0hfCiAKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCiBlbnVtIGliX3NpZ25hdHVyZV9wcm90X2NhcCB7CiAJSUJfUFJPVF9UMTBESUZfVFlQRV8xID0gMSwKIAlJQl9QUk9UX1QxMERJRl9UWVBFXzIgPSAxIDw8IDEsCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Njc2kvc2NzaV9jbW5kLmggYi9pbmNsdWRlL3Njc2kvc2NzaV9jbW5kLmgKaW5kZXggNzZlZDVlNC4uOTFiZDc0OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zY3NpL3Njc2lfY21uZC5oCisrKyBiL2luY2x1ZGUvc2NzaS9zY3NpX2NtbmQuaApAQCAtNTcsNiArNTcsNyBAQCBzdHJ1Y3Qgc2NzaV9wb2ludGVyIHsKICNkZWZpbmUgU0NNRF9UQUdHRUQJCSgxIDw8IDApCiAjZGVmaW5lIFNDTURfVU5DSEVDS0VEX0lTQV9ETUEJKDEgPDwgMSkKICNkZWZpbmUgU0NNRF9JTklUSUFMSVpFRAkoMSA8PCAyKQorI2RlZmluZSBTQ01EX0xBU1QJCSgxIDw8IDMpCiAvKiBmbGFncyBwcmVzZXJ2ZWQgYWNyb3NzIHVucHJlcCAvIHJlcHJlcCAqLwogI2RlZmluZSBTQ01EX1BSRVNFUlZFRF9GTEFHUwkoU0NNRF9VTkNIRUNLRURfSVNBX0RNQSB8IFNDTURfSU5JVElBTElaRUQpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc2NzaS9zY3NpX2RiZy5oIGIvaW5jbHVkZS9zY3NpL3Njc2lfZGJnLmgKaW5kZXggZTAzYmQ5ZC4uN2IxOTZkMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zY3NpL3Njc2lfZGJnLmgKKysrIGIvaW5jbHVkZS9zY3NpL3Njc2lfZGJnLmgKQEAgLTYsOCArNiw2IEBAIHN0cnVjdCBzY3NpX2NtbmQ7CiBzdHJ1Y3Qgc2NzaV9kZXZpY2U7CiBzdHJ1Y3Qgc2NzaV9zZW5zZV9oZHI7CiAKLSNkZWZpbmUgU0NTSV9MT0dfQlVGU0laRSAxMjgKLQogZXh0ZXJuIHZvaWQgc2NzaV9wcmludF9jb21tYW5kKHN0cnVjdCBzY3NpX2NtbmQgKik7CiBleHRlcm4gc2l6ZV90IF9fc2NzaV9mb3JtYXRfY29tbWFuZChjaGFyICosIHNpemVfdCwKIAkJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3Njc2kvc2NzaV9ob3N0LmggYi9pbmNsdWRlL3Njc2kvc2NzaV9ob3N0LmgKaW5kZXggY2MxMzlkYi4uMzFlMGQ2YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zY3NpL3Njc2lfaG9zdC5oCisrKyBiL2luY2x1ZGUvc2NzaS9zY3NpX2hvc3QuaApAQCAtODAsOCArODAsMTAgQEAgc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSB7CiAJICogY29tbWFuZCBibG9jayB0byB0aGUgTExERC4gIFdoZW4gdGhlIGRyaXZlciBmaW5pc2hlZAogCSAqIHByb2Nlc3NpbmcgdGhlIGNvbW1hbmQgdGhlIGRvbmUgY2FsbGJhY2sgaXMgaW52b2tlZC4KIAkgKgotCSAqIElmIHF1ZXVlY29tbWFuZCByZXR1cm5zIDAsIHRoZW4gdGhlIEhCQSBoYXMgYWNjZXB0ZWQgdGhlCi0JICogY29tbWFuZC4gIFRoZSBkb25lKCkgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgb24gdGhlIGNvbW1hbmQKKwkgKiBJZiBxdWV1ZWNvbW1hbmQgcmV0dXJucyAwLCB0aGVuIHRoZSBkcml2ZXIgaGFzIGFjY2VwdGVkIHRoZQorCSAqIGNvbW1hbmQuICBJdCBtdXN0IGFsc28gcHVzaCBpdCB0byB0aGUgSEJBIGlmIHRoZSBzY3NpX2NtbmQKKwkgKiBmbGFnIFNDTURfTEFTVCBpcyBzZXQsIG9yIGlmIHRoZSBkcml2ZXIgZG9lcyBub3QgaW1wbGVtZW50CisJICogY29tbWl0X3Jxcy4gIFRoZSBkb25lKCkgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgb24gdGhlIGNvbW1hbmQKIAkgKiB3aGVuIHRoZSBkcml2ZXIgaGFzIGZpbmlzaGVkIHdpdGggaXQuICh5b3UgbWF5IGNhbGwgZG9uZSBvbiB0aGUKIAkgKiBjb21tYW5kIGJlZm9yZSBxdWV1ZWNvbW1hbmQgcmV0dXJucywgYnV0IGluIHRoaXMgY2FzZSB5b3UKIAkgKiAqbXVzdCogcmV0dXJuIDAgZnJvbSBxdWV1ZWNvbW1hbmQpLgpAQCAtMTEwLDYgKzExMiwxNiBAQCBzdHJ1Y3Qgc2NzaV9ob3N0X3RlbXBsYXRlIHsKIAlpbnQgKCogcXVldWVjb21tYW5kKShzdHJ1Y3QgU2NzaV9Ib3N0ICosIHN0cnVjdCBzY3NpX2NtbmQgKik7CiAKIAkvKgorCSAqIFRoZSBjb21taXRfcnFzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdHJpZ2dlciBhIGhhcmR3YXJlCisJICogZG9vcmJlbGwgYWZ0ZXIgc29tZSByZXF1ZXN0cyBoYXZlIGJlZW4gcXVldWVkIHdpdGgKKwkgKiBxdWV1ZWNvbW1hbmQsIHdoZW4gYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQgYmVmb3JlIHNlbmRpbmcKKwkgKiB0aGUgcmVxdWVzdCB3aXRoIFNDTURfTEFTVCBzZXQuCisJICoKKwkgKiBTVEFUVVM6IE9QVElPTkFMCisJICovCisJdm9pZCAoKmNvbW1pdF9ycXMpKHN0cnVjdCBTY3NpX0hvc3QgKiwgdTE2KTsKKworCS8qCiAJICogVGhpcyBpcyBhbiBlcnJvciBoYW5kbGluZyBzdHJhdGVneSByb3V0aW5lLiAgWW91IGRvbid0IG5lZWQgdG8KIAkgKiBkZWZpbmUgb25lIG9mIHRoZXNlIGlmIHlvdSBkb24ndCB3YW50IHRvIC0gdGhlcmUgaXMgYSBkZWZhdWx0CiAJICogcm91dGluZSB0aGF0IGlzIHByZXNlbnQgdGhhdCBzaG91bGQgd29yayBpbiBtb3N0IGNhc2VzLiAgRm9yIHRob3NlCmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9ycGNyZG1hLmggYi9pbmNsdWRlL3RyYWNlL2V2ZW50cy9ycGNyZG1hLmgKaW5kZXggZjZhNGVhYS4uYTEzODMwNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS90cmFjZS9ldmVudHMvcnBjcmRtYS5oCisrKyBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL3JwY3JkbWEuaApAQCAtNDUxLDIwICs0NTEsODEgQEAgVFJBQ0VfRVZFTlQoeHBydHJkbWFfY3JlYXRlbXJzLAogCiAJVFBfU1RSVUNUX19lbnRyeSgKIAkJX19maWVsZChjb25zdCB2b2lkICosIHJfeHBydCkKKwkJX19zdHJpbmcoYWRkciwgcnBjcmRtYV9hZGRyc3RyKHJfeHBydCkpCisJCV9fc3RyaW5nKHBvcnQsIHJwY3JkbWFfcG9ydHN0cihyX3hwcnQpKQogCQlfX2ZpZWxkKHVuc2lnbmVkIGludCwgY291bnQpCiAJKSwKIAogCVRQX2Zhc3RfYXNzaWduKAogCQlfX2VudHJ5LT5yX3hwcnQgPSByX3hwcnQ7CiAJCV9fZW50cnktPmNvdW50ID0gY291bnQ7CisJCV9fYXNzaWduX3N0cihhZGRyLCBycGNyZG1hX2FkZHJzdHIocl94cHJ0KSk7CisJCV9fYXNzaWduX3N0cihwb3J0LCBycGNyZG1hX3BvcnRzdHIocl94cHJ0KSk7CiAJKSwKIAotCVRQX3ByaW50aygicl94cHJ0PSVwOiBjcmVhdGVkICV1IE1ScyIsCi0JCV9fZW50cnktPnJfeHBydCwgX19lbnRyeS0+Y291bnQKKwlUUF9wcmludGsoInBlZXI9WyVzXTolcyByX3hwcnQ9JXA6IGNyZWF0ZWQgJXUgTVJzIiwKKwkJX19nZXRfc3RyKGFkZHIpLCBfX2dldF9zdHIocG9ydCksIF9fZW50cnktPnJfeHBydCwKKwkJX19lbnRyeS0+Y291bnQKIAkpCiApOwogCi1ERUZJTkVfUlhQUlRfRVZFTlQoeHBydHJkbWFfbm9tcnMpOworVFJBQ0VfRVZFTlQoeHBydHJkbWFfbXJfZ2V0LAorCVRQX1BST1RPKAorCQljb25zdCBzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJlcQorCSksCisKKwlUUF9BUkdTKHJlcSksCisKKwlUUF9TVFJVQ1RfX2VudHJ5KAorCQlfX2ZpZWxkKGNvbnN0IHZvaWQgKiwgcmVxKQorCQlfX2ZpZWxkKHVuc2lnbmVkIGludCwgdGFza19pZCkKKwkJX19maWVsZCh1bnNpZ25lZCBpbnQsIGNsaWVudF9pZCkKKwkJX19maWVsZCh1MzIsIHhpZCkKKwkpLAorCisJVFBfZmFzdF9hc3NpZ24oCisJCWNvbnN0IHN0cnVjdCBycGNfcnFzdCAqcnFzdCA9ICZyZXEtPnJsX3Nsb3Q7CisKKwkJX19lbnRyeS0+cmVxID0gcmVxOworCQlfX2VudHJ5LT50YXNrX2lkID0gcnFzdC0+cnFfdGFzay0+dGtfcGlkOworCQlfX2VudHJ5LT5jbGllbnRfaWQgPSBycXN0LT5ycV90YXNrLT50a19jbGllbnQtPmNsX2NsaWQ7CisJCV9fZW50cnktPnhpZCA9IGJlMzJfdG9fY3B1KHJxc3QtPnJxX3hpZCk7CisJKSwKKworCVRQX3ByaW50aygidGFzazoldUAldSB4aWQ9MHglMDh4IHJlcT0lcCIsCisJCV9fZW50cnktPnRhc2tfaWQsIF9fZW50cnktPmNsaWVudF9pZCwgX19lbnRyeS0+eGlkLAorCQlfX2VudHJ5LT5yZXEKKwkpCispOworCitUUkFDRV9FVkVOVCh4cHJ0cmRtYV9ub21ycywKKwlUUF9QUk9UTygKKwkJY29uc3Qgc3RydWN0IHJwY3JkbWFfcmVxICpyZXEKKwkpLAorCisJVFBfQVJHUyhyZXEpLAorCisJVFBfU1RSVUNUX19lbnRyeSgKKwkJX19maWVsZChjb25zdCB2b2lkICosIHJlcSkKKwkJX19maWVsZCh1bnNpZ25lZCBpbnQsIHRhc2tfaWQpCisJCV9fZmllbGQodW5zaWduZWQgaW50LCBjbGllbnRfaWQpCisJCV9fZmllbGQodTMyLCB4aWQpCisJKSwKKworCVRQX2Zhc3RfYXNzaWduKAorCQljb25zdCBzdHJ1Y3QgcnBjX3Jxc3QgKnJxc3QgPSAmcmVxLT5ybF9zbG90OworCisJCV9fZW50cnktPnJlcSA9IHJlcTsKKwkJX19lbnRyeS0+dGFza19pZCA9IHJxc3QtPnJxX3Rhc2stPnRrX3BpZDsKKwkJX19lbnRyeS0+Y2xpZW50X2lkID0gcnFzdC0+cnFfdGFzay0+dGtfY2xpZW50LT5jbF9jbGlkOworCQlfX2VudHJ5LT54aWQgPSBiZTMyX3RvX2NwdShycXN0LT5ycV94aWQpOworCSksCisKKwlUUF9wcmludGsoInRhc2s6JXVAJXUgeGlkPTB4JTA4eCByZXE9JXAiLAorCQlfX2VudHJ5LT50YXNrX2lkLCBfX2VudHJ5LT5jbGllbnRfaWQsIF9fZW50cnktPnhpZCwKKwkJX19lbnRyeS0+cmVxCisJKQorKTsKIAogREVGSU5FX1JEQ0hfRVZFTlQocmVhZCk7CiBERUZJTkVfV1JDSF9FVkVOVCh3cml0ZSk7CkBAIC02MjMsMjEgKzY4NCwyMSBAQCBUUkFDRV9FVkVOVCh4cHJ0cmRtYV9wb3N0X3NlbmQsCiAKIFRSQUNFX0VWRU5UKHhwcnRyZG1hX3Bvc3RfcmVjdiwKIAlUUF9QUk9UTygKLQkJY29uc3Qgc3RydWN0IGliX2NxZSAqY3FlCisJCWNvbnN0IHN0cnVjdCBycGNyZG1hX3JlcCAqcmVwCiAJKSwKIAotCVRQX0FSR1MoY3FlKSwKKwlUUF9BUkdTKHJlcCksCiAKIAlUUF9TVFJVQ1RfX2VudHJ5KAotCQlfX2ZpZWxkKGNvbnN0IHZvaWQgKiwgY3FlKQorCQlfX2ZpZWxkKGNvbnN0IHZvaWQgKiwgcmVwKQogCSksCiAKIAlUUF9mYXN0X2Fzc2lnbigKLQkJX19lbnRyeS0+Y3FlID0gY3FlOworCQlfX2VudHJ5LT5yZXAgPSByZXA7CiAJKSwKIAotCVRQX3ByaW50aygiY3FlPSVwIiwKLQkJX19lbnRyeS0+Y3FlCisJVFBfcHJpbnRrKCJyZXA9JXAiLAorCQlfX2VudHJ5LT5yZXAKIAkpCiApOwogCkBAIC03MTUsMTQgKzc3NiwxNSBAQCBUUkFDRV9FVkVOVCh4cHJ0cmRtYV93Y19yZWNlaXZlLAogCVRQX0FSR1Mod2MpLAogCiAJVFBfU1RSVUNUX19lbnRyeSgKLQkJX19maWVsZChjb25zdCB2b2lkICosIGNxZSkKKwkJX19maWVsZChjb25zdCB2b2lkICosIHJlcCkKIAkJX19maWVsZCh1MzIsIGJ5dGVfbGVuKQogCQlfX2ZpZWxkKHVuc2lnbmVkIGludCwgc3RhdHVzKQogCQlfX2ZpZWxkKHUzMiwgdmVuZG9yX2VycikKIAkpLAogCiAJVFBfZmFzdF9hc3NpZ24oCi0JCV9fZW50cnktPmNxZSA9IHdjLT53cl9jcWU7CisJCV9fZW50cnktPnJlcCA9IGNvbnRhaW5lcl9vZih3Yy0+d3JfY3FlLCBzdHJ1Y3QgcnBjcmRtYV9yZXAsCisJCQkJCSAgICBycl9jcWUpOwogCQlfX2VudHJ5LT5zdGF0dXMgPSB3Yy0+c3RhdHVzOwogCQlpZiAod2MtPnN0YXR1cykgewogCQkJX19lbnRyeS0+Ynl0ZV9sZW4gPSAwOwpAQCAtNzMzLDggKzc5NSw4IEBAIFRSQUNFX0VWRU5UKHhwcnRyZG1hX3djX3JlY2VpdmUsCiAJCX0KIAkpLAogCi0JVFBfcHJpbnRrKCJjcWU9JXAgJXUgYnl0ZXM6ICVzICgldS8weCV4KSIsCi0JCV9fZW50cnktPmNxZSwgX19lbnRyeS0+Ynl0ZV9sZW4sCisJVFBfcHJpbnRrKCJyZXA9JXAgJXUgYnl0ZXM6ICVzICgldS8weCV4KSIsCisJCV9fZW50cnktPnJlcCwgX19lbnRyeS0+Ynl0ZV9sZW4sCiAJCXJkbWFfc2hvd193Y19zdGF0dXMoX19lbnRyeS0+c3RhdHVzKSwKIAkJX19lbnRyeS0+c3RhdHVzLCBfX2VudHJ5LT52ZW5kb3JfZXJyCiAJKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS90cmFjZS9ldmVudHMvd3JpdGViYWNrLmggYi9pbmNsdWRlL3RyYWNlL2V2ZW50cy93cml0ZWJhY2suaAppbmRleCAzYTI3MzM1Li5jMmNlNjQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy93cml0ZWJhY2suaAorKysgYi9pbmNsdWRlL3RyYWNlL2V2ZW50cy93cml0ZWJhY2suaApAQCAtNjYsOCArNjYsOSBAQCBERUNMQVJFX0VWRU5UX0NMQVNTKHdyaXRlYmFja19wYWdlX3RlbXBsYXRlLAogCSksCiAKIAlUUF9mYXN0X2Fzc2lnbigKLQkJc3RybmNweShfX2VudHJ5LT5uYW1lLAotCQkJbWFwcGluZyA/IGRldl9uYW1lKGlub2RlX3RvX2JkaShtYXBwaW5nLT5ob3N0KS0+ZGV2KSA6ICIodW5rbm93bikiLCAzMik7CisJCXN0cnNjcHlfcGFkKF9fZW50cnktPm5hbWUsCisJCQkgICAgbWFwcGluZyA/IGRldl9uYW1lKGlub2RlX3RvX2JkaShtYXBwaW5nLT5ob3N0KS0+ZGV2KSA6ICIodW5rbm93bikiLAorCQkJICAgIDMyKTsKIAkJX19lbnRyeS0+aW5vID0gbWFwcGluZyA/IG1hcHBpbmctPmhvc3QtPmlfaW5vIDogMDsKIAkJX19lbnRyeS0+aW5kZXggPSBwYWdlLT5pbmRleDsKIAkpLApAQCAtMTEwLDggKzExMSw4IEBAIERFQ0xBUkVfRVZFTlRfQ0xBU1Mod3JpdGViYWNrX2RpcnR5X2lub2RlX3RlbXBsYXRlLAogCQlzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRpID0gaW5vZGVfdG9fYmRpKGlub2RlKTsKIAogCQkvKiBtYXkgYmUgY2FsbGVkIGZvciBmaWxlcyBvbiBwc2V1ZG8gRlNlcyB3LyB1bnJlZ2lzdGVyZWQgYmRpICovCi0JCXN0cm5jcHkoX19lbnRyeS0+bmFtZSwKLQkJCWJkaS0+ZGV2ID8gZGV2X25hbWUoYmRpLT5kZXYpIDogIih1bmtub3duKSIsIDMyKTsKKwkJc3Ryc2NweV9wYWQoX19lbnRyeS0+bmFtZSwKKwkJCSAgICBiZGktPmRldiA/IGRldl9uYW1lKGJkaS0+ZGV2KSA6ICIodW5rbm93bikiLCAzMik7CiAJCV9fZW50cnktPmlubwkJPSBpbm9kZS0+aV9pbm87CiAJCV9fZW50cnktPnN0YXRlCQk9IGlub2RlLT5pX3N0YXRlOwogCQlfX2VudHJ5LT5mbGFncwkJPSBmbGFnczsKQEAgLTMxNiw4ICszMTcsOCBAQCBERUNMQVJFX0VWRU5UX0NMQVNTKHdyaXRlYmFja193cml0ZV9pbm9kZV90ZW1wbGF0ZSwKIAkpLAogCiAJVFBfZmFzdF9hc3NpZ24oCi0JCXN0cm5jcHkoX19lbnRyeS0+bmFtZSwKLQkJCWRldl9uYW1lKGlub2RlX3RvX2JkaShpbm9kZSktPmRldiksIDMyKTsKKwkJc3Ryc2NweV9wYWQoX19lbnRyeS0+bmFtZSwKKwkJCSAgICBkZXZfbmFtZShpbm9kZV90b19iZGkoaW5vZGUpLT5kZXYpLCAzMik7CiAJCV9fZW50cnktPmlubwkJPSBpbm9kZS0+aV9pbm87CiAJCV9fZW50cnktPnN5bmNfbW9kZQk9IHdiYy0+c3luY19tb2RlOwogCQlfX2VudHJ5LT5jZ3JvdXBfaW5vCT0gX190cmFjZV93YmNfYXNzaWduX2Nncm91cCh3YmMpOwpAQCAtMzYwLDggKzM2MSw5IEBAIERFQ0xBUkVfRVZFTlRfQ0xBU1Mod3JpdGViYWNrX3dvcmtfY2xhc3MsCiAJCV9fZmllbGQodW5zaWduZWQgaW50LCBjZ3JvdXBfaW5vKQogCSksCiAJVFBfZmFzdF9hc3NpZ24oCi0JCXN0cm5jcHkoX19lbnRyeS0+bmFtZSwKLQkJCXdiLT5iZGktPmRldiA/IGRldl9uYW1lKHdiLT5iZGktPmRldikgOiAiKHVua25vd24pIiwgMzIpOworCQlzdHJzY3B5X3BhZChfX2VudHJ5LT5uYW1lLAorCQkJICAgIHdiLT5iZGktPmRldiA/IGRldl9uYW1lKHdiLT5iZGktPmRldikgOgorCQkJICAgICIodW5rbm93bikiLCAzMik7CiAJCV9fZW50cnktPm5yX3BhZ2VzID0gd29yay0+bnJfcGFnZXM7CiAJCV9fZW50cnktPnNiX2RldiA9IHdvcmstPnNiID8gd29yay0+c2ItPnNfZGV2IDogMDsKIAkJX19lbnRyeS0+c3luY19tb2RlID0gd29yay0+c3luY19tb2RlOwpAQCAtNDE0LDcgKzQxNiw3IEBAIERFQ0xBUkVfRVZFTlRfQ0xBU1Mod3JpdGViYWNrX2NsYXNzLAogCQlfX2ZpZWxkKHVuc2lnbmVkIGludCwgY2dyb3VwX2lubykKIAkpLAogCVRQX2Zhc3RfYXNzaWduKAotCQlzdHJuY3B5KF9fZW50cnktPm5hbWUsIGRldl9uYW1lKHdiLT5iZGktPmRldiksIDMyKTsKKwkJc3Ryc2NweV9wYWQoX19lbnRyeS0+bmFtZSwgZGV2X25hbWUod2ItPmJkaS0+ZGV2KSwgMzIpOwogCQlfX2VudHJ5LT5jZ3JvdXBfaW5vID0gX190cmFjZV93Yl9hc3NpZ25fY2dyb3VwKHdiKTsKIAkpLAogCVRQX3ByaW50aygiYmRpICVzOiBjZ3JvdXBfaW5vPSV1IiwKQEAgLTQzNiw3ICs0MzgsNyBAQCBUUkFDRV9FVkVOVCh3cml0ZWJhY2tfYmRpX3JlZ2lzdGVyLAogCQlfX2FycmF5KGNoYXIsIG5hbWUsIDMyKQogCSksCiAJVFBfZmFzdF9hc3NpZ24oCi0JCXN0cm5jcHkoX19lbnRyeS0+bmFtZSwgZGV2X25hbWUoYmRpLT5kZXYpLCAzMik7CisJCXN0cnNjcHlfcGFkKF9fZW50cnktPm5hbWUsIGRldl9uYW1lKGJkaS0+ZGV2KSwgMzIpOwogCSksCiAJVFBfcHJpbnRrKCJiZGkgJXMiLAogCQlfX2VudHJ5LT5uYW1lCkBAIC00NjEsNyArNDYzLDcgQEAgREVDTEFSRV9FVkVOVF9DTEFTUyh3YmNfY2xhc3MsCiAJKSwKIAogCVRQX2Zhc3RfYXNzaWduKAotCQlzdHJuY3B5KF9fZW50cnktPm5hbWUsIGRldl9uYW1lKGJkaS0+ZGV2KSwgMzIpOworCQlzdHJzY3B5X3BhZChfX2VudHJ5LT5uYW1lLCBkZXZfbmFtZShiZGktPmRldiksIDMyKTsKIAkJX19lbnRyeS0+bnJfdG9fd3JpdGUJPSB3YmMtPm5yX3RvX3dyaXRlOwogCQlfX2VudHJ5LT5wYWdlc19za2lwcGVkCT0gd2JjLT5wYWdlc19za2lwcGVkOwogCQlfX2VudHJ5LT5zeW5jX21vZGUJPSB3YmMtPnN5bmNfbW9kZTsKQEAgLTUxMiw3ICs1MTQsNyBAQCBUUkFDRV9FVkVOVCh3cml0ZWJhY2tfcXVldWVfaW8sCiAJKSwKIAlUUF9mYXN0X2Fzc2lnbigKIAkJdW5zaWduZWQgbG9uZyAqb2xkZXJfdGhhbl90aGlzID0gd29yay0+b2xkZXJfdGhhbl90aGlzOwotCQlzdHJuY3B5KF9fZW50cnktPm5hbWUsIGRldl9uYW1lKHdiLT5iZGktPmRldiksIDMyKTsKKwkJc3Ryc2NweV9wYWQoX19lbnRyeS0+bmFtZSwgZGV2X25hbWUod2ItPmJkaS0+ZGV2KSwgMzIpOwogCQlfX2VudHJ5LT5vbGRlcgk9IG9sZGVyX3RoYW5fdGhpcyA/ICAqb2xkZXJfdGhhbl90aGlzIDogMDsKIAkJX19lbnRyeS0+YWdlCT0gb2xkZXJfdGhhbl90aGlzID8KIAkJCQkgIChqaWZmaWVzIC0gKm9sZGVyX3RoYW5fdGhpcykgKiAxMDAwIC8gSFogOiAtMTsKQEAgLTU5OCw3ICs2MDAsNyBAQCBUUkFDRV9FVkVOVChiZGlfZGlydHlfcmF0ZWxpbWl0LAogCSksCiAKIAlUUF9mYXN0X2Fzc2lnbigKLQkJc3RybGNweShfX2VudHJ5LT5iZGksIGRldl9uYW1lKHdiLT5iZGktPmRldiksIDMyKTsKKwkJc3Ryc2NweV9wYWQoX19lbnRyeS0+YmRpLCBkZXZfbmFtZSh3Yi0+YmRpLT5kZXYpLCAzMik7CiAJCV9fZW50cnktPndyaXRlX2J3CT0gS0Jwcyh3Yi0+d3JpdGVfYmFuZHdpZHRoKTsKIAkJX19lbnRyeS0+YXZnX3dyaXRlX2J3CT0gS0Jwcyh3Yi0+YXZnX3dyaXRlX2JhbmR3aWR0aCk7CiAJCV9fZW50cnktPmRpcnR5X3JhdGUJPSBLQnBzKGRpcnR5X3JhdGUpOwpAQCAtNjYzLDcgKzY2NSw3IEBAIFRSQUNFX0VWRU5UKGJhbGFuY2VfZGlydHlfcGFnZXMsCiAKIAlUUF9mYXN0X2Fzc2lnbigKIAkJdW5zaWduZWQgbG9uZyBmcmVlcnVuID0gKHRocmVzaCArIGJnX3RocmVzaCkgLyAyOwotCQlzdHJsY3B5KF9fZW50cnktPmJkaSwgZGV2X25hbWUod2ItPmJkaS0+ZGV2KSwgMzIpOworCQlzdHJzY3B5X3BhZChfX2VudHJ5LT5iZGksIGRldl9uYW1lKHdiLT5iZGktPmRldiksIDMyKTsKIAogCQlfX2VudHJ5LT5saW1pdAkJPSBnbG9iYWxfd2JfZG9tYWluLmRpcnR5X2xpbWl0OwogCQlfX2VudHJ5LT5zZXRwb2ludAk9IChnbG9iYWxfd2JfZG9tYWluLmRpcnR5X2xpbWl0ICsKQEAgLTcyMyw4ICs3MjUsOCBAQCBUUkFDRV9FVkVOVCh3cml0ZWJhY2tfc2JfaW5vZGVzX3JlcXVldWUsCiAJKSwKIAogCVRQX2Zhc3RfYXNzaWduKAotCQlzdHJuY3B5KF9fZW50cnktPm5hbWUsCi0JCSAgICAgICAgZGV2X25hbWUoaW5vZGVfdG9fYmRpKGlub2RlKS0+ZGV2KSwgMzIpOworCQlzdHJzY3B5X3BhZChfX2VudHJ5LT5uYW1lLAorCQkJICAgIGRldl9uYW1lKGlub2RlX3RvX2JkaShpbm9kZSktPmRldiksIDMyKTsKIAkJX19lbnRyeS0+aW5vCQk9IGlub2RlLT5pX2lubzsKIAkJX19lbnRyeS0+c3RhdGUJCT0gaW5vZGUtPmlfc3RhdGU7CiAJCV9fZW50cnktPmRpcnRpZWRfd2hlbgk9IGlub2RlLT5kaXJ0aWVkX3doZW47CkBAIC03OTcsOCArNzk5LDggQEAgREVDTEFSRV9FVkVOVF9DTEFTUyh3cml0ZWJhY2tfc2luZ2xlX2lub2RlX3RlbXBsYXRlLAogCSksCiAKIAlUUF9mYXN0X2Fzc2lnbigKLQkJc3RybmNweShfX2VudHJ5LT5uYW1lLAotCQkJZGV2X25hbWUoaW5vZGVfdG9fYmRpKGlub2RlKS0+ZGV2KSwgMzIpOworCQlzdHJzY3B5X3BhZChfX2VudHJ5LT5uYW1lLAorCQkJICAgIGRldl9uYW1lKGlub2RlX3RvX2JkaShpbm9kZSktPmRldiksIDMyKTsKIAkJX19lbnRyeS0+aW5vCQk9IGlub2RlLT5pX2lubzsKIAkJX19lbnRyeS0+c3RhdGUJCT0gaW5vZGUtPmlfc3RhdGU7CiAJCV9fZW50cnktPmRpcnRpZWRfd2hlbgk9IGlub2RlLT5kaXJ0aWVkX3doZW47CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvbW1hbi1jb21tb24uaCBiL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9tbWFuLWNvbW1vbi5oCmluZGV4IDYzYjFmNTAuLmMxNjBhNTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9tbWFuLWNvbW1vbi5oCisrKyBiL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9tbWFuLWNvbW1vbi5oCkBAIC02Nyw2ICs2Nyw5IEBACiAjZGVmaW5lIE1BRFZfV0lQRU9ORk9SSyAxOAkJLyogWmVybyBtZW1vcnkgb24gZm9yaywgY2hpbGQgb25seSAqLwogI2RlZmluZSBNQURWX0tFRVBPTkZPUksgMTkJCS8qIFVuZG8gTUFEVl9XSVBFT05GT1JLICovCiAKKyNkZWZpbmUgTUFEVl9DT0xECTIwCQkvKiBkZWFjdGl2YXRlIHRoZXNlIHBhZ2VzICovCisjZGVmaW5lIE1BRFZfUEFHRU9VVAkyMQkJLyogcmVjbGFpbSB0aGVzZSBwYWdlcyAqLworCiAvKiBjb21wYXRpYmlsaXR5IGZsYWdzICovCiAjZGVmaW5lIE1BUF9GSUxFCTAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaAppbmRleCAxMWNjNTczLi5jOTliNGYyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaApAQCAtMTI4LDYgKzEyOCwxMCBAQCBleHRlcm4gIkMiIHsKICAqIGZvciB0aGUgc2Vjb25kIHBhZ2Ugb253YXJkIHNob3VsZCBiZSBzZXQgdG8gTkMuCiAgKi8KICNkZWZpbmUgQU1ER1BVX0dFTV9DUkVBVEVfTVFEX0dGWDkJCSgxIDw8IDgpCisvKiBGbGFnIHRoYXQgQk8gbWF5IGNvbnRhaW4gc2Vuc2l0aXZlIGRhdGEgdGhhdCBtdXN0IGJlIHdpcGVkIGJlZm9yZQorICogcmVsZWFzaW5nIHRoZSBtZW1vcnkKKyAqLworI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9WUkFNX1dJUEVfT05fUkVMRUFTRQkoMSA8PCA5KQogCiBzdHJ1Y3QgZHJtX2FtZGdwdV9nZW1fY3JlYXRlX2luICB7CiAJLyoqIHRoZSByZXF1ZXN0ZWQgbWVtb3J5IHNpemUgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAppbmRleCA1YWIzMzFlLi43MzVjOGNmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCkBAIC0zNjEsNiArMzYxLDcgQEAgZW51bSBkcm1fbW9kZV9zdWJjb25uZWN0b3IgewogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1JfRFNJCQkxNgogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1JfRFBJCQkxNwogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLCTE4CisjZGVmaW5lIERSTV9NT0RFX0NPTk5FQ1RPUl9TUEkJCTE5CiAKIHN0cnVjdCBkcm1fbW9kZV9nZXRfY29ubmVjdG9yIHsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5oCmluZGV4IDBkNWM0OWQuLjA5ZDBkZjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZXRuYXZpdl9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2V0bmF2aXZfZHJtLmgKQEAgLTczLDYgKzczLDcgQEAgc3RydWN0IGRybV9ldG5hdml2X3RpbWVzcGVjIHsKICNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfSU5TVFJVQ1RJT05fQ09VTlQgICAgICAgICAweDE4CiAjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX05VTV9DT05TVEFOVFMgICAgICAgICAgICAgMHgxOQogI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9OVU1fVkFSWUlOR1MgICAgICAgICAgICAgIDB4MWEKKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9TT0ZUUElOX1NUQVJUX0FERFIgICAgICAgICAgICAweDFiCiAKICNkZWZpbmUgRVROQV9NQVhfUElQRVMgNAogCkBAIC0xNDgsNiArMTQ5LDExIEBAIHN0cnVjdCBkcm1fZXRuYXZpdl9nZW1fc3VibWl0X3JlbG9jIHsKICAqIHRoZW4gcGF0Y2hpbmcgdGhlIGNtZHN0cmVhbSBmb3IgdGhpcyBlbnRyeSBpcyBza2lwcGVkLiAgVGhpcyBjYW4KICAqIGF2b2lkIGtlcm5lbCBuZWVkaW5nIHRvIG1hcC9hY2Nlc3MgdGhlIGNtZHN0cmVhbSBibyBpbiB0aGUgY29tbW9uCiAgKiBjYXNlLgorICogSWYgdGhlIHN1Ym1pdCBpcyBhIHNvZnRwaW4gc3VibWl0IChFVE5BX1NVQk1JVF9TT0ZUUElOKSB0aGUgJ3ByZXN1bWVkJworICogZmllbGQgaXMgaW50ZXJwcmV0ZWQgYXMgdGhlIGZpeGVkIGxvY2F0aW9uIHRvIG1hcCB0aGUgYm8gaW50byB0aGUgZ3B1CisgKiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UuIElmIHRoZSBrZXJuZWwgaXMgdW5hYmxlIHRvIG1hcCB0aGUgYnVmZmVyIGF0CisgKiB0aGlzIGxvY2F0aW9uIHRoZSBzdWJtaXQgd2lsbCBmYWlsLiBUaGlzIG1lYW5zIHVzZXJzcGFjZSBpcyByZXNwb25zaWJsZQorICogZm9yIHRoZSB3aG9sZSBncHUgdmlydHVhbCBhZGRyZXNzIG1hbmFnZW1lbnQuCiAgKi8KICNkZWZpbmUgRVROQV9TVUJNSVRfQk9fUkVBRCAgICAgICAgICAgICAweDAwMDEKICNkZWZpbmUgRVROQV9TVUJNSVRfQk9fV1JJVEUgICAgICAgICAgICAweDAwMDIKQEAgLTE3Nyw5ICsxODMsMTEgQEAgc3RydWN0IGRybV9ldG5hdml2X2dlbV9zdWJtaXRfcG1yIHsKICNkZWZpbmUgRVROQV9TVUJNSVRfTk9fSU1QTElDSVQgICAgICAgICAweDAwMDEKICNkZWZpbmUgRVROQV9TVUJNSVRfRkVOQ0VfRkRfSU4gICAgICAgICAweDAwMDIKICNkZWZpbmUgRVROQV9TVUJNSVRfRkVOQ0VfRkRfT1VUICAgICAgICAweDAwMDQKKyNkZWZpbmUgRVROQV9TVUJNSVRfU09GVFBJTiAgICAgICAgICAgICAweDAwMDgKICNkZWZpbmUgRVROQV9TVUJNSVRfRkxBR1MJCShFVE5BX1NVQk1JVF9OT19JTVBMSUNJVCB8IFwKIAkJCQkJIEVUTkFfU1VCTUlUX0ZFTkNFX0ZEX0lOIHwgXAotCQkJCQkgRVROQV9TVUJNSVRfRkVOQ0VfRkRfT1VUKQorCQkJCQkgRVROQV9TVUJNSVRfRkVOQ0VfRkRfT1VUfCBcCisJCQkJCSBFVE5BX1NVQk1JVF9TT0ZUUElOKQogI2RlZmluZSBFVE5BX1BJUEVfM0QgICAgICAweDAwCiAjZGVmaW5lIEVUTkFfUElQRV8yRCAgICAgIDB4MDEKICNkZWZpbmUgRVROQV9QSVBFX1ZHICAgICAgMHgwMgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCmluZGV4IDMyOGQwNWUuLjQ2OWRjNTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTUyMSw2ICs1MjEsNyBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9pcnFfd2FpdCB7CiAjZGVmaW5lICAgSTkxNV9TQ0hFRFVMRVJfQ0FQX1BSSU9SSVRZCSgxdWwgPDwgMSkKICNkZWZpbmUgICBJOTE1X1NDSEVEVUxFUl9DQVBfUFJFRU1QVElPTgkoMXVsIDw8IDIpCiAjZGVmaW5lICAgSTkxNV9TQ0hFRFVMRVJfQ0FQX1NFTUFQSE9SRVMJKDF1bCA8PCAzKQorI2RlZmluZSAgIEk5MTVfU0NIRURVTEVSX0NBUF9FTkdJTkVfQlVTWV9TVEFUUwkoMXVsIDw8IDQpCiAKICNkZWZpbmUgSTkxNV9QQVJBTV9IVUNfU1RBVFVTCQkgNDIKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vcGFuZnJvc3RfZHJtLmgKaW5kZXggYjVkMzcwNi4uZWMxOWRiMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL3BhbmZyb3N0X2RybS5oCkBAIC0yMCw2ICsyMCw3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fUEFORlJPU1RfR0VUX0JPX09GRlNFVAkJMHgwNQogI2RlZmluZSBEUk1fUEFORlJPU1RfUEVSRkNOVF9FTkFCTEUJCTB4MDYKICNkZWZpbmUgRFJNX1BBTkZST1NUX1BFUkZDTlRfRFVNUAkJMHgwNworI2RlZmluZSBEUk1fUEFORlJPU1RfTUFEVklTRQkJCTB4MDgKIAogI2RlZmluZSBEUk1fSU9DVExfUEFORlJPU1RfU1VCTUlUCQlEUk1fSU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUEFORlJPU1RfU1VCTUlULCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X3N1Ym1pdCkKICNkZWZpbmUgRFJNX0lPQ1RMX1BBTkZST1NUX1dBSVRfQk8JCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9QQU5GUk9TVF9XQUlUX0JPLCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X3dhaXRfYm8pCkBAIC0yNyw2ICsyOCw3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fSU9DVExfUEFORlJPU1RfTU1BUF9CTwkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9QQU5GUk9TVF9NTUFQX0JPLCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X21tYXBfYm8pCiAjZGVmaW5lIERSTV9JT0NUTF9QQU5GUk9TVF9HRVRfUEFSQU0JCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUEFORlJPU1RfR0VUX1BBUkFNLCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X2dldF9wYXJhbSkKICNkZWZpbmUgRFJNX0lPQ1RMX1BBTkZST1NUX0dFVF9CT19PRkZTRVQJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9QQU5GUk9TVF9HRVRfQk9fT0ZGU0VULCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X2dldF9ib19vZmZzZXQpCisjZGVmaW5lIERSTV9JT0NUTF9QQU5GUk9TVF9NQURWSVNFCQlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1BBTkZST1NUX01BRFZJU0UsIHN0cnVjdCBkcm1fcGFuZnJvc3RfbWFkdmlzZSkKIAogLyoKICAqIFVuc3RhYmxlIGlvY3RsKHMpOiBvbmx5IGV4cG9zZWQgd2hlbiB0aGUgdW5zYWZlIHVuc3RhYmxlX2lvY3RscyBtb2R1bGUKQEAgLTgyLDYgKzg0LDkgQEAgc3RydWN0IGRybV9wYW5mcm9zdF93YWl0X2JvIHsKIAlfX3M2NCB0aW1lb3V0X25zOwkvKiBhYnNvbHV0ZSAqLwogfTsKIAorI2RlZmluZSBQQU5GUk9TVF9CT19OT0VYRUMJMQorI2RlZmluZSBQQU5GUk9TVF9CT19IRUFQCTIKKwogLyoqCiAgKiBzdHJ1Y3QgZHJtX3BhbmZyb3N0X2NyZWF0ZV9ibyAtIGlvY3RsIGFyZ3VtZW50IGZvciBjcmVhdGluZyBQYW5mcm9zdCBCT3MuCiAgKgpAQCAtMTI3LDYgKzEzMiw0NSBAQCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X21tYXBfYm8gewogCiBlbnVtIGRybV9wYW5mcm9zdF9wYXJhbSB7CiAJRFJNX1BBTkZST1NUX1BBUkFNX0dQVV9QUk9EX0lELAorCURSTV9QQU5GUk9TVF9QQVJBTV9HUFVfUkVWSVNJT04sCisJRFJNX1BBTkZST1NUX1BBUkFNX1NIQURFUl9QUkVTRU5ULAorCURSTV9QQU5GUk9TVF9QQVJBTV9USUxFUl9QUkVTRU5ULAorCURSTV9QQU5GUk9TVF9QQVJBTV9MMl9QUkVTRU5ULAorCURSTV9QQU5GUk9TVF9QQVJBTV9TVEFDS19QUkVTRU5ULAorCURSTV9QQU5GUk9TVF9QQVJBTV9BU19QUkVTRU5ULAorCURSTV9QQU5GUk9TVF9QQVJBTV9KU19QUkVTRU5ULAorCURSTV9QQU5GUk9TVF9QQVJBTV9MMl9GRUFUVVJFUywKKwlEUk1fUEFORlJPU1RfUEFSQU1fQ09SRV9GRUFUVVJFUywKKwlEUk1fUEFORlJPU1RfUEFSQU1fVElMRVJfRkVBVFVSRVMsCisJRFJNX1BBTkZST1NUX1BBUkFNX01FTV9GRUFUVVJFUywKKwlEUk1fUEFORlJPU1RfUEFSQU1fTU1VX0ZFQVRVUkVTLAorCURSTV9QQU5GUk9TVF9QQVJBTV9USFJFQURfRkVBVFVSRVMsCisJRFJNX1BBTkZST1NUX1BBUkFNX01BWF9USFJFQURTLAorCURSTV9QQU5GUk9TVF9QQVJBTV9USFJFQURfTUFYX1dPUktHUk9VUF9TWiwKKwlEUk1fUEFORlJPU1RfUEFSQU1fVEhSRUFEX01BWF9CQVJSSUVSX1NaLAorCURSTV9QQU5GUk9TVF9QQVJBTV9DT0hFUkVOQ1lfRkVBVFVSRVMsCisJRFJNX1BBTkZST1NUX1BBUkFNX1RFWFRVUkVfRkVBVFVSRVMwLAorCURSTV9QQU5GUk9TVF9QQVJBTV9URVhUVVJFX0ZFQVRVUkVTMSwKKwlEUk1fUEFORlJPU1RfUEFSQU1fVEVYVFVSRV9GRUFUVVJFUzIsCisJRFJNX1BBTkZST1NUX1BBUkFNX1RFWFRVUkVfRkVBVFVSRVMzLAorCURSTV9QQU5GUk9TVF9QQVJBTV9KU19GRUFUVVJFUzAsCisJRFJNX1BBTkZST1NUX1BBUkFNX0pTX0ZFQVRVUkVTMSwKKwlEUk1fUEFORlJPU1RfUEFSQU1fSlNfRkVBVFVSRVMyLAorCURSTV9QQU5GUk9TVF9QQVJBTV9KU19GRUFUVVJFUzMsCisJRFJNX1BBTkZST1NUX1BBUkFNX0pTX0ZFQVRVUkVTNCwKKwlEUk1fUEFORlJPU1RfUEFSQU1fSlNfRkVBVFVSRVM1LAorCURSTV9QQU5GUk9TVF9QQVJBTV9KU19GRUFUVVJFUzYsCisJRFJNX1BBTkZST1NUX1BBUkFNX0pTX0ZFQVRVUkVTNywKKwlEUk1fUEFORlJPU1RfUEFSQU1fSlNfRkVBVFVSRVM4LAorCURSTV9QQU5GUk9TVF9QQVJBTV9KU19GRUFUVVJFUzksCisJRFJNX1BBTkZST1NUX1BBUkFNX0pTX0ZFQVRVUkVTMTAsCisJRFJNX1BBTkZST1NUX1BBUkFNX0pTX0ZFQVRVUkVTMTEsCisJRFJNX1BBTkZST1NUX1BBUkFNX0pTX0ZFQVRVUkVTMTIsCisJRFJNX1BBTkZST1NUX1BBUkFNX0pTX0ZFQVRVUkVTMTMsCisJRFJNX1BBTkZST1NUX1BBUkFNX0pTX0ZFQVRVUkVTMTQsCisJRFJNX1BBTkZST1NUX1BBUkFNX0pTX0ZFQVRVUkVTMTUsCisJRFJNX1BBTkZST1NUX1BBUkFNX05SX0NPUkVfR1JPVVBTLAorCURSTV9QQU5GUk9TVF9QQVJBTV9USFJFQURfVExTX0FMTE9DLAogfTsKIAogc3RydWN0IGRybV9wYW5mcm9zdF9nZXRfcGFyYW0gewpAQCAtMTU5LDYgKzIwMywyNiBAQCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X3BlcmZjbnRfZHVtcCB7CiAJX191NjQgYnVmX3B0cjsKIH07CiAKKy8qIG1hZHZpc2UgcHJvdmlkZXMgYSB3YXkgdG8gdGVsbCB0aGUga2VybmVsIGluIGNhc2UgYSBidWZmZXJzIGNvbnRlbnRzCisgKiBjYW4gYmUgZGlzY2FyZGVkIHVuZGVyIG1lbW9yeSBwcmVzc3VyZSwgd2hpY2ggaXMgdXNlZnVsIGZvciB1c2Vyc3BhY2UKKyAqIGJvIGNhY2hlIHdoZXJlIHdlIHdhbnQgdG8gb3B0aW1pc3RpY2FsbHkgaG9sZCBvbiB0byBidWZmZXIgYWxsb2NhdGUKKyAqIGFuZCBwb3RlbnRpYWwgbW1hcCwgYnV0IGFsbG93IHRoZSBwYWdlcyB0byBiZSBkaXNjYXJkZWQgdW5kZXIgbWVtb3J5CisgKiBwcmVzc3VyZS4KKyAqCisgKiBUeXBpY2FsIHVzYWdlIHdvdWxkIGludm9sdmUgbWFkdmlzZShET05UTkVFRCkgd2hlbiBidWZmZXIgZW50ZXJzIEJPCisgKiBjYWNoZSwgYW5kIG1hZHZpc2UoV0lMTE5FRUQpIGlmIHRyeWluZyB0byByZWN5Y2xlIGJ1ZmZlciBmcm9tIEJPIGNhY2hlLgorICogSW4gdGhlIFdJTExORUVEIGNhc2UsICdyZXRhaW5lZCcgaW5kaWNhdGVzIHRvIHVzZXJzcGFjZSB3aGV0aGVyIHRoZQorICogYmFja2luZyBwYWdlcyBzdGlsbCBleGlzdC4KKyAqLworI2RlZmluZSBQQU5GUk9TVF9NQURWX1dJTExORUVEIDAJLyogYmFja2luZyBwYWdlcyBhcmUgbmVlZGVkLCBzdGF0dXMgcmV0dXJuZWQgaW4gJ3JldGFpbmVkJyAqLworI2RlZmluZSBQQU5GUk9TVF9NQURWX0RPTlRORUVEIDEJLyogYmFja2luZyBwYWdlcyBub3QgbmVlZGVkICovCisKK3N0cnVjdCBkcm1fcGFuZnJvc3RfbWFkdmlzZSB7CisJX191MzIgaGFuZGxlOyAgICAgICAgIC8qIGluLCBHRU0gaGFuZGxlICovCisJX191MzIgbWFkdjsgICAgICAgICAgIC8qIGluLCBQQU5GUk9TVF9NQURWX3ggKi8KKwlfX3UzMiByZXRhaW5lZDsgICAgICAgLyogb3V0LCB3aGV0aGVyIGJhY2tpbmcgc3RvcmUgc3RpbGwgZXhpc3RzICovCit9OworCiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2NvZmYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9jb2ZmLmgKaW5kZXggZTRhNzlmOC4uYWI1YzdlOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2NvZmYuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvY29mZi5oCkBAIC0xMSw2ICsxMSw5IEBACiAgICBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENPRkYsIHRoZW4gTydSZWlsbHkgaGFzIGEgdmVyeSBleGNlbGxlbnQgYm9vay4KICovCiAKKyNpZm5kZWYgX1VBUElfTElOVVhfQ09GRl9ICisjZGVmaW5lIF9VQVBJX0xJTlVYX0NPRkZfSAorCiAjZGVmaW5lICBFX1NZTU5NTEVOICA4ICAgLyogTnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gYSBzeW1ib2wgbmFtZSAgICAgICAgICovCiAjZGVmaW5lICBFX0ZJTE5NTEVOIDE0ICAgLyogTnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gYSBmaWxlIG5hbWUgICAgICAgICAgICovCiAjZGVmaW5lICBFX0RJTU5VTSAgICA0ICAgLyogTnVtYmVyIG9mIGFycmF5IGRpbWVuc2lvbnMgaW4gYXV4aWxpYXJ5IGVudHJ5ICovCkBAIC0zNTAsMyArMzUzLDUgQEAgc3RydWN0IENPRkZfcmVsb2MgewogCiAvKiBGb3IgbmV3IHNlY3Rpb25zIHdlIGhhdmVuJ3QgaGVhcmQgb2YgYmVmb3JlICovCiAjZGVmaW5lIENPRkZfREVGX1NFQ1RJT05fQUxJR05NRU5UICAgICAgIDQKKworI2VuZGlmIC8qIF9VQVBJX0xJTlVYX0NPRkZfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2RtLWlvY3RsLmggYi9pbmNsdWRlL3VhcGkvbGludXgvZG0taW9jdGwuaAppbmRleCBmMzk2YTgyLi4yZGY4Y2VjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZG0taW9jdGwuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZG0taW9jdGwuaApAQCAtMjQzLDYgKzI0Myw3IEBAIGVudW0gewogCURNX1RBUkdFVF9NU0dfQ01ELAogCURNX0RFVl9TRVRfR0VPTUVUUllfQ01ELAogCURNX0RFVl9BUk1fUE9MTF9DTUQsCisJRE1fR0VUX1RBUkdFVF9WRVJTSU9OX0NNRCwKIH07CiAKICNkZWZpbmUgRE1fSU9DVEwgMHhmZApAQCAtMjY1LDE0ICsyNjYsMTUgQEAgZW51bSB7CiAjZGVmaW5lIERNX1RBQkxFX1NUQVRVUyAgX0lPV1IoRE1fSU9DVEwsIERNX1RBQkxFX1NUQVRVU19DTUQsIHN0cnVjdCBkbV9pb2N0bCkKIAogI2RlZmluZSBETV9MSVNUX1ZFUlNJT05TIF9JT1dSKERNX0lPQ1RMLCBETV9MSVNUX1ZFUlNJT05TX0NNRCwgc3RydWN0IGRtX2lvY3RsKQorI2RlZmluZSBETV9HRVRfVEFSR0VUX1ZFUlNJT04gX0lPV1IoRE1fSU9DVEwsIERNX0dFVF9UQVJHRVRfVkVSU0lPTl9DTUQsIHN0cnVjdCBkbV9pb2N0bCkKIAogI2RlZmluZSBETV9UQVJHRVRfTVNHCSBfSU9XUihETV9JT0NUTCwgRE1fVEFSR0VUX01TR19DTUQsIHN0cnVjdCBkbV9pb2N0bCkKICNkZWZpbmUgRE1fREVWX1NFVF9HRU9NRVRSWQlfSU9XUihETV9JT0NUTCwgRE1fREVWX1NFVF9HRU9NRVRSWV9DTUQsIHN0cnVjdCBkbV9pb2N0bCkKIAogI2RlZmluZSBETV9WRVJTSU9OX01BSk9SCTQKLSNkZWZpbmUgRE1fVkVSU0lPTl9NSU5PUgk0MAorI2RlZmluZSBETV9WRVJTSU9OX01JTk9SCTQxCiAjZGVmaW5lIERNX1ZFUlNJT05fUEFUQ0hMRVZFTAkwCi0jZGVmaW5lIERNX1ZFUlNJT05fRVhUUkEJIi1pb2N0bCAoMjAxOS0wMS0xOCkiCisjZGVmaW5lIERNX1ZFUlNJT05fRVhUUkEJIi1pb2N0bCAoMjAxOS0wOS0xNikiCiAKIC8qIFN0YXR1cyBiaXRzICovCiAjZGVmaW5lIERNX1JFQURPTkxZX0ZMQUcJKDEgPDwgMCkgLyogSW4vT3V0ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZnMuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9mcy5oCmluZGV4IGFhZDIyNWIuLjM3OWE2MTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9mcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9mcy5oCkBAIC0yNjQsNiArMjY0LDcgQEAgc3RydWN0IGZzeGF0dHIgewogI2RlZmluZSBGU19OT0NPV19GTAkJCTB4MDA4MDAwMDAgLyogRG8gbm90IGNvdyBmaWxlICovCiAjZGVmaW5lIEZTX0lOTElORV9EQVRBX0ZMCQkweDEwMDAwMDAwIC8qIFJlc2VydmVkIGZvciBleHQ0ICovCiAjZGVmaW5lIEZTX1BST0pJTkhFUklUX0ZMCQkweDIwMDAwMDAwIC8qIENyZWF0ZSB3aXRoIHBhcmVudHMgcHJvamlkICovCisjZGVmaW5lIEZTX0NBU0VGT0xEX0ZMCQkJMHg0MDAwMDAwMCAvKiBGb2xkZXIgaXMgY2FzZSBpbnNlbnNpdGl2ZSAqLwogI2RlZmluZSBGU19SRVNFUlZFRF9GTAkJCTB4ODAwMDAwMDAgLyogcmVzZXJ2ZWQgZm9yIGV4dDIgbGliICovCiAKICNkZWZpbmUgRlNfRkxfVVNFUl9WSVNJQkxFCQkweDAwMDNERkZGIC8qIFVzZXIgdmlzaWJsZSBmbGFncyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2Z1c2UuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9mdXNlLmgKaW5kZXggMjk3MWQyOS4uODAyYjAzNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2Z1c2UuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZnVzZS5oCkBAIC0xMzMsNiArMTMzLDggQEAKICAqCiAgKiAgNy4zMQogICogIC0gYWRkIEZVU0VfV1JJVEVfS0lMTF9QUklWIGZsYWcKKyAqICAtIGFkZCBGVVNFX1NFVFVQTUFQUElORyBhbmQgRlVTRV9SRU1PVkVNQVBQSU5HCisgKiAgLSBhZGQgbWFwX2FsaWdubWVudCB0byBmdXNlX2luaXRfb3V0LCBhZGQgRlVTRV9NQVBfQUxJR05NRU5UIGZsYWcKICAqLwogCiAjaWZuZGVmIF9MSU5VWF9GVVNFX0gKQEAgLTI3NCw2ICsyNzYsNyBAQCBzdHJ1Y3QgZnVzZV9maWxlX2xvY2sgewogICogRlVTRV9DQUNIRV9TWU1MSU5LUzogY2FjaGUgUkVBRExJTksgcmVzcG9uc2VzCiAgKiBGVVNFX05PX09QRU5ESVJfU1VQUE9SVDoga2VybmVsIHN1cHBvcnRzIHplcm8tbWVzc2FnZSBvcGVuZGlyCiAgKiBGVVNFX0VYUExJQ0lUX0lOVkFMX0RBVEE6IG9ubHkgaW52YWxpZGF0ZSBjYWNoZWQgcGFnZXMgb24gZXhwbGljaXQgcmVxdWVzdAorICogRlVTRV9NQVBfQUxJR05NRU5UOiBtYXBfYWxpZ25tZW50IGZpZWxkIGlzIHZhbGlkCiAgKi8KICNkZWZpbmUgRlVTRV9BU1lOQ19SRUFECQkoMSA8PCAwKQogI2RlZmluZSBGVVNFX1BPU0lYX0xPQ0tTCSgxIDw8IDEpCkBAIC0zMDEsNiArMzA0LDcgQEAgc3RydWN0IGZ1c2VfZmlsZV9sb2NrIHsKICNkZWZpbmUgRlVTRV9DQUNIRV9TWU1MSU5LUwkoMSA8PCAyMykKICNkZWZpbmUgRlVTRV9OT19PUEVORElSX1NVUFBPUlQgKDEgPDwgMjQpCiAjZGVmaW5lIEZVU0VfRVhQTElDSVRfSU5WQUxfREFUQSAoMSA8PCAyNSkKKyNkZWZpbmUgRlVTRV9NQVBfQUxJR05NRU5UCSgxIDw8IDI2KQogCiAvKioKICAqIENVU0UgSU5JVCByZXF1ZXN0L3JlcGx5IGZsYWdzCkBAIC00MjIsOSArNDI2LDE1IEBAIGVudW0gZnVzZV9vcGNvZGUgewogCUZVU0VfUkVOQU1FMgkJPSA0NSwKIAlGVVNFX0xTRUVLCQk9IDQ2LAogCUZVU0VfQ09QWV9GSUxFX1JBTkdFCT0gNDcsCisJRlVTRV9TRVRVUE1BUFBJTkcJPSA0OCwKKwlGVVNFX1JFTU9WRU1BUFBJTkcJPSA0OSwKIAogCS8qIENVU0Ugc3BlY2lmaWMgb3BlcmF0aW9ucyAqLwogCUNVU0VfSU5JVAkJPSA0MDk2LAorCisJLyogUmVzZXJ2ZWQgb3Bjb2RlczogaGVscGZ1bCB0byBkZXRlY3Qgc3RydWN0dXJlIGVuZGlhbi1uZXNzICovCisJQ1VTRV9JTklUX0JTV0FQX1JFU0VSVkVECT0gMTA0ODU3NiwJLyogQ1VTRV9JTklUIDw8IDggKi8KKwlGVVNFX0lOSVRfQlNXQVBfUkVTRVJWRUQJPSA0MzYyMDc2MTYsCS8qIEZVU0VfSU5JVCA8PCAyNCAqLwogfTsKIAogZW51bSBmdXNlX25vdGlmeV9jb2RlIHsKQEAgLTY1Miw3ICs2NjIsNyBAQCBzdHJ1Y3QgZnVzZV9pbml0X291dCB7CiAJdWludDMyX3QJbWF4X3dyaXRlOwogCXVpbnQzMl90CXRpbWVfZ3JhbjsKIAl1aW50MTZfdAltYXhfcGFnZXM7Ci0JdWludDE2X3QJcGFkZGluZzsKKwl1aW50MTZfdAltYXBfYWxpZ25tZW50OwogCXVpbnQzMl90CXVudXNlZFs4XTsKIH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmgKaW5kZXggOTZlZTlkOS4uZWE1NzUyNmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCkBAIC0yOCw2ICsyOCw3IEBAIHN0cnVjdCBpb191cmluZ19zcWUgewogCQlfX3UxNgkJcG9sbF9ldmVudHM7CiAJCV9fdTMyCQlzeW5jX3JhbmdlX2ZsYWdzOwogCQlfX3UzMgkJbXNnX2ZsYWdzOworCQlfX3UzMgkJdGltZW91dF9mbGFnczsKIAl9OwogCV9fdTY0CXVzZXJfZGF0YTsJLyogZGF0YSB0byBiZSBwYXNzZWQgYmFjayBhdCBjb21wbGV0aW9uIHRpbWUgKi8KIAl1bmlvbiB7CkBAIC02MSw2ICs2Miw3IEBAIHN0cnVjdCBpb191cmluZ19zcWUgewogI2RlZmluZSBJT1JJTkdfT1BfU1lOQ19GSUxFX1JBTkdFCTgKICNkZWZpbmUgSU9SSU5HX09QX1NFTkRNU0cJOQogI2RlZmluZSBJT1JJTkdfT1BfUkVDVk1TRwkxMAorI2RlZmluZSBJT1JJTkdfT1BfVElNRU9VVAkxMQogCiAvKgogICogc3FlLT5mc3luY19mbGFncwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCmluZGV4IDIzM2VmYmIuLjUyNjQxZDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKQEAgLTk5OSw2ICs5OTksNyBAQCBzdHJ1Y3Qga3ZtX3BwY19yZXNpemVfaHB0IHsKICNkZWZpbmUgS1ZNX0NBUF9BUk1fUFRSQVVUSF9HRU5FUklDIDE3MgogI2RlZmluZSBLVk1fQ0FQX1BNVV9FVkVOVF9GSUxURVIgMTczCiAjZGVmaW5lIEtWTV9DQVBfQVJNX0lSUV9MSU5FX0xBWU9VVF8yIDE3NAorI2RlZmluZSBLVk1fQ0FQX0hZUEVSVl9ESVJFQ1RfVExCRkxVU0ggMTc1CiAKICNpZmRlZiBLVk1fQ0FQX0lSUV9ST1VUSU5HCiAKQEAgLTExNDUsNiArMTE0Niw3IEBAIHN0cnVjdCBrdm1fZGlydHlfdGxiIHsKICNkZWZpbmUgS1ZNX1JFR19TMzkwCQkweDUwMDAwMDAwMDAwMDAwMDBVTEwKICNkZWZpbmUgS1ZNX1JFR19BUk02NAkJMHg2MDAwMDAwMDAwMDAwMDAwVUxMCiAjZGVmaW5lIEtWTV9SRUdfTUlQUwkJMHg3MDAwMDAwMDAwMDAwMDAwVUxMCisjZGVmaW5lIEtWTV9SRUdfUklTQ1YJCTB4ODAwMDAwMDAwMDAwMDAwMFVMTAogCiAjZGVmaW5lIEtWTV9SRUdfU0laRV9TSElGVAk1MgogI2RlZmluZSBLVk1fUkVHX1NJWkVfTUFTSwkweDAwZjAwMDAwMDAwMDAwMDBVTEwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9tZWRpYS1idXMtZm9ybWF0LmggYi9pbmNsdWRlL3VhcGkvbGludXgvbWVkaWEtYnVzLWZvcm1hdC5oCmluZGV4IDJhNmIyNTMuLjE2YzFmYTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9tZWRpYS1idXMtZm9ybWF0LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L21lZGlhLWJ1cy1mb3JtYXQuaApAQCAtMzQsNyArMzQsNyBAQAogCiAjZGVmaW5lIE1FRElBX0JVU19GTVRfRklYRUQJCQkweDAwMDEKIAotLyogUkdCIC0gbmV4dCBpcwkweDEwMWMgKi8KKy8qIFJHQiAtIG5leHQgaXMJMHgxMDFkICovCiAjZGVmaW5lIE1FRElBX0JVU19GTVRfUkdCNDQ0XzFYMTIJCTB4MTAxNgogI2RlZmluZSBNRURJQV9CVVNfRk1UX1JHQjQ0NF8yWDhfUEFESElfQkUJMHgxMDAxCiAjZGVmaW5lIE1FRElBX0JVU19GTVRfUkdCNDQ0XzJYOF9QQURISV9MRQkweDEwMDIKQEAgLTU1LDYgKzU1LDcgQEAKICNkZWZpbmUgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNAkJMHgxMDBhCiAjZGVmaW5lIE1FRElBX0JVU19GTVRfUkdCODg4XzJYMTJfQkUJCTB4MTAwYgogI2RlZmluZSBNRURJQV9CVVNfRk1UX1JHQjg4OF8yWDEyX0xFCQkweDEwMGMKKyNkZWZpbmUgTUVESUFfQlVTX0ZNVF9SR0I4ODhfM1g4CQkweDEwMWMKICNkZWZpbmUgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVg3WDRfU1BXRwkJMHgxMDExCiAjZGVmaW5lIE1FRElBX0JVU19GTVRfUkdCODg4XzFYN1g0X0pFSURBCTB4MTAxMgogI2RlZmluZSBNRURJQV9CVVNfRk1UX0FSR0I4ODg4XzFYMzIJCTB4MTAwZApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L25mc2QvY2xkLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmZzZC9jbGQuaAppbmRleCBiMWU5ZGU0Li5hNTE5MzEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmZzZC9jbGQuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmZzZC9jbGQuaApAQCAtMjYsMTcgKzI2LDIyIEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAogLyogbGF0ZXN0IHVwY2FsbCB2ZXJzaW9uIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDTERfVVBDQUxMX1ZFUlNJT04gMQorI2RlZmluZSBDTERfVVBDQUxMX1ZFUlNJT04gMgogCiAvKiBkZWZpbmVkIGJ5IFJGQzM1MzAgKi8KICNkZWZpbmUgTkZTNF9PUEFRVUVfTElNSVQgMTAyNAogCisjaWZuZGVmIFNIQTI1Nl9ESUdFU1RfU0laRQorI2RlZmluZSBTSEEyNTZfRElHRVNUX1NJWkUgICAgICAzMgorI2VuZGlmCisKIGVudW0gY2xkX2NvbW1hbmQgewogCUNsZF9DcmVhdGUsCQkvKiBjcmVhdGUgYSByZWNvcmQgZm9yIHRoaXMgY21faWQgKi8KIAlDbGRfUmVtb3ZlLAkJLyogcmVtb3ZlIHJlY29yZCBvZiB0aGlzIGNtX2lkICovCiAJQ2xkX0NoZWNrLAkJLyogaXMgdGhpcyBjbV9pZCBhbGxvd2VkPyAqLwogCUNsZF9HcmFjZURvbmUsCQkvKiBncmFjZSBwZXJpb2QgaXMgY29tcGxldGUgKi8KLQlDbGRfR3JhY2VTdGFydCwKKwlDbGRfR3JhY2VTdGFydCwJCS8qIGdyYWNlIHN0YXJ0ICh1cGxvYWQgY2xpZW50IHJlY29yZHMpICovCisJQ2xkX0dldFZlcnNpb24sCQkvKiBxdWVyeSBtYXggc3VwcG9ydGVkIHVwY2FsbCB2ZXJzaW9uICovCiB9OwogCiAvKiByZXByZXNlbnRhdGlvbiBvZiBsb25nLWZvcm0gTkZTdjQgY2xpZW50IElEICovCkBAIC00NSw2ICs1MCwxNyBAQCBzdHJ1Y3QgY2xkX25hbWUgewogCXVuc2lnbmVkIGNoYXIJY25faWRbTkZTNF9PUEFRVUVfTElNSVRdOwkvKiBjbGllbnQtcHJvdmlkZWQgKi8KIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKKy8qIHNoYTI1NiBoYXNoIG9mIHRoZSBrZXJiZXJvcyBwcmluY2lwYWwgKi8KK3N0cnVjdCBjbGRfcHJpbmNoYXNoIHsKKwlfX3U4CQljcF9sZW47CQkJCS8qIGxlbmd0aCBvZiBjcF9kYXRhICovCisJdW5zaWduZWQgY2hhcgljcF9kYXRhW1NIQTI1Nl9ESUdFU1RfU0laRV07CS8qIGhhc2ggb2YgcHJpbmNpcGFsICovCit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdHJ1Y3QgY2xkX2NsbnRpbmZvIHsKKwlzdHJ1Y3QgY2xkX25hbWUJCWNjX25hbWU7CisJc3RydWN0IGNsZF9wcmluY2hhc2gJY2NfcHJpbmNoYXNoOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKwogLyogbWVzc2FnZSBzdHJ1Y3QgZm9yIGNvbW11bmljYXRpb24gd2l0aCB1c2Vyc3BhY2UgKi8KIHN0cnVjdCBjbGRfbXNnIHsKIAlfX3U4CQljbV92ZXJzOwkJLyogdXBjYWxsIHZlcnNpb24gKi8KQEAgLTU0LDcgKzcwLDI4IEBAIHN0cnVjdCBjbGRfbXNnIHsKIAl1bmlvbiB7CiAJCV9fczY0CQljbV9ncmFjZXRpbWU7CS8qIGdyYWNlIHBlcmlvZCBzdGFydCB0aW1lICovCiAJCXN0cnVjdCBjbGRfbmFtZQljbV9uYW1lOworCQlfX3U4CQljbV92ZXJzaW9uOwkvKiBmb3IgZ2V0dGluZyBtYXggdmVyc2lvbiAqLwogCX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgY21fdTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKKy8qIHZlcnNpb24gMiBtZXNzYWdlIGNhbiBpbmNsdWRlIGhhc2ggb2Yga2VyYmVyb3MgcHJpbmNpcGFsICovCitzdHJ1Y3QgY2xkX21zZ192MiB7CisJX191OAkJY21fdmVyczsJCS8qIHVwY2FsbCB2ZXJzaW9uICovCisJX191OAkJY21fY21kOwkJCS8qIHVwY2FsbCBjb21tYW5kICovCisJX19zMTYJCWNtX3N0YXR1czsJCS8qIHJldHVybiBjb2RlICovCisJX191MzIJCWNtX3hpZDsJCQkvKiB0cmFuc2FjdGlvbiBpZCAqLworCXVuaW9uIHsKKwkJc3RydWN0IGNsZF9uYW1lCWNtX25hbWU7CisJCV9fdTgJCWNtX3ZlcnNpb247CS8qIGZvciBnZXR0aW5nIG1heCB2ZXJzaW9uICovCisJCXN0cnVjdCBjbGRfY2xudGluZm8gY21fY2xudGluZm87IC8qIG5hbWUgJiBwcmluYyBoYXNoICovCisJfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBjbV91OworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IGNsZF9tc2dfaGRyIHsKKwlfX3U4CQljbV92ZXJzOwkJLyogdXBjYWxsIHZlcnNpb24gKi8KKwlfX3U4CQljbV9jbWQ7CQkJLyogdXBjYWxsIGNvbW1hbmQgKi8KKwlfX3MxNgkJY21fc3RhdHVzOwkJLyogcmV0dXJuIGNvZGUgKi8KKwlfX3UzMgkJY21feGlkOwkJCS8qIHRyYW5zYWN0aW9uIGlkICovCit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCiAjZW5kaWYgLyogIV9ORlNEX0NMRF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvcGNpX3JlZ3MuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9wY2lfcmVncy5oCmluZGV4IGYyOGU1NjIuLjI5ZDZlOTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9wY2lfcmVncy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9wY2lfcmVncy5oCkBAIC01OTEsNiArNTkxLDcgQEAKICNkZWZpbmUgIFBDSV9FWFBfU0xUQ1RMX0NDSUUJMHgwMDEwCS8qIENvbW1hbmQgQ29tcGxldGVkIEludGVycnVwdCBFbmFibGUgKi8KICNkZWZpbmUgIFBDSV9FWFBfU0xUQ1RMX0hQSUUJMHgwMDIwCS8qIEhvdC1QbHVnIEludGVycnVwdCBFbmFibGUgKi8KICNkZWZpbmUgIFBDSV9FWFBfU0xUQ1RMX0FJQwkweDAwYzAJLyogQXR0ZW50aW9uIEluZGljYXRvciBDb250cm9sICovCisjZGVmaW5lICBQQ0lfRVhQX1NMVENUTF9BVFROX0lORF9TSElGVCA2ICAgICAgLyogQXR0ZW50aW9uIEluZGljYXRvciBzaGlmdCAqLwogI2RlZmluZSAgUENJX0VYUF9TTFRDVExfQVRUTl9JTkRfT04gICAgMHgwMDQwIC8qIEF0dGVudGlvbiBJbmRpY2F0b3Igb24gKi8KICNkZWZpbmUgIFBDSV9FWFBfU0xUQ1RMX0FUVE5fSU5EX0JMSU5LIDB4MDA4MCAvKiBBdHRlbnRpb24gSW5kaWNhdG9yIGJsaW5raW5nICovCiAjZGVmaW5lICBQQ0lfRVhQX1NMVENUTF9BVFROX0lORF9PRkYgICAweDAwYzAgLyogQXR0ZW50aW9uIEluZGljYXRvciBvZmYgKi8KQEAgLTcxMyw3ICs3MTQsOSBAQAogI2RlZmluZSBQQ0lfRVhUX0NBUF9JRF9EUEMJMHgxRAkvKiBEb3duc3RyZWFtIFBvcnQgQ29udGFpbm1lbnQgKi8KICNkZWZpbmUgUENJX0VYVF9DQVBfSURfTDFTUwkweDFFCS8qIEwxIFBNIFN1YnN0YXRlcyAqLwogI2RlZmluZSBQQ0lfRVhUX0NBUF9JRF9QVE0JMHgxRgkvKiBQcmVjaXNpb24gVGltZSBNZWFzdXJlbWVudCAqLwotI2RlZmluZSBQQ0lfRVhUX0NBUF9JRF9NQVgJUENJX0VYVF9DQVBfSURfUFRNCisjZGVmaW5lIFBDSV9FWFRfQ0FQX0lEX0RMRgkweDI1CS8qIERhdGEgTGluayBGZWF0dXJlICovCisjZGVmaW5lIFBDSV9FWFRfQ0FQX0lEX1BMXzE2R1QJMHgyNgkvKiBQaHlzaWNhbCBMYXllciAxNi4wIEdUL3MgKi8KKyNkZWZpbmUgUENJX0VYVF9DQVBfSURfTUFYCVBDSV9FWFRfQ0FQX0lEX1BMXzE2R1QKIAogI2RlZmluZSBQQ0lfRVhUX0NBUF9EU05fU0laRU9GCTEyCiAjZGVmaW5lIFBDSV9FWFRfQ0FQX01DQVNUX0VORFBPSU5UX1NJWkVPRiA0MApAQCAtMTA1Myw0ICsxMDU2LDE0IEBACiAjZGVmaW5lICBQQ0lfTDFTU19DVEwxX0xUUl9MMTJfVEhfU0NBTEUJMHhlMDAwMDAwMCAgLyogTFRSX0wxLjJfVEhSRVNIT0xEX1NjYWxlICovCiAjZGVmaW5lIFBDSV9MMVNTX0NUTDIJCTB4MGMJLyogQ29udHJvbCAyIFJlZ2lzdGVyICovCiAKKy8qIERhdGEgTGluayBGZWF0dXJlICovCisjZGVmaW5lIFBDSV9ETEZfQ0FQCQkweDA0CS8qIENhcGFiaWxpdGllcyBSZWdpc3RlciAqLworI2RlZmluZSAgUENJX0RMRl9FWENIQU5HRV9FTkFCTEUJMHg4MDAwMDAwMCAgLyogRGF0YSBMaW5rIEZlYXR1cmUgRXhjaGFuZ2UgRW5hYmxlICovCisKKy8qIFBoeXNpY2FsIExheWVyIDE2LjAgR1QvcyAqLworI2RlZmluZSBQQ0lfUExfMTZHVF9MRV9DVFJMCTB4MjAJLyogTGFuZSBFcXVhbGl6YXRpb24gQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSAgUENJX1BMXzE2R1RfTEVfQ1RSTF9EU1BfVFhfUFJFU0VUX01BU0sJCTB4MDAwMDAwMEYKKyNkZWZpbmUgIFBDSV9QTF8xNkdUX0xFX0NUUkxfVVNQX1RYX1BSRVNFVF9NQVNLCQkweDAwMDAwMEYwCisjZGVmaW5lICBQQ0lfUExfMTZHVF9MRV9DVFJMX1VTUF9UWF9QUkVTRVRfU0hJRlQJNAorCiAjZW5kaWYgLyogTElOVVhfUENJX1JFR1NfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3NlcmlvLmggYi9pbmNsdWRlL3VhcGkvbGludXgvc2VyaW8uaAppbmRleCBhMGNhYzFkLi41MGU5OTE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvc2VyaW8uaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvc2VyaW8uaApAQCAtODIsNSArODIsNiBAQAogI2RlZmluZSBTRVJJT19FR0FMQVgJMHgzZgogI2RlZmluZSBTRVJJT19QVUxTRThfQ0VDCTB4NDAKICNkZWZpbmUgU0VSSU9fUkFJTlNIQURPV19DRUMJMHg0MQorI2RlZmluZSBTRVJJT19GU0lBNkIJMHg0MgogCiAjZW5kaWYgLyogX1VBUElfU0VSSU9fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaCBiL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmgKaW5kZXggOGYxMDc0OC4uOWU4NDNhMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oCkBAIC0yOTUsMTUgKzI5NSwzOCBAQCBzdHJ1Y3QgdmZpb19yZWdpb25faW5mb19jYXBfdHlwZSB7CiAJX191MzIgc3VidHlwZTsJLyogdHlwZSBzcGVjaWZpYyAqLwogfTsKIAorLyoKKyAqIExpc3Qgb2YgcmVnaW9uIHR5cGVzLCBnbG9iYWwgcGVyIGJ1cyBkcml2ZXIuCisgKiBJZiB5b3UgaW50cm9kdWNlIGEgbmV3IHR5cGUsIHBsZWFzZSBhZGQgaXQgaGVyZS4KKyAqLworCisvKiBQQ0kgcmVnaW9uIHR5cGUgY29udGFpbmluZyBhIFBDSSB2ZW5kb3IgcGFydCAqLwogI2RlZmluZSBWRklPX1JFR0lPTl9UWVBFX1BDSV9WRU5ET1JfVFlQRQkoMSA8PCAzMSkKICNkZWZpbmUgVkZJT19SRUdJT05fVFlQRV9QQ0lfVkVORE9SX01BU0sJKDB4ZmZmZikKKyNkZWZpbmUgVkZJT19SRUdJT05fVFlQRV9HRlggICAgICAgICAgICAgICAgICAgICgxKQorI2RlZmluZSBWRklPX1JFR0lPTl9UWVBFX0NDVwkJCSgyKQogCi0vKiA4MDg2IFZlbmRvciBzdWItdHlwZXMgKi8KKy8qIHN1Yi10eXBlcyBmb3IgVkZJT19SRUdJT05fVFlQRV9QQ0lfKiAqLworCisvKiA4MDg2IHZlbmRvciBQQ0kgc3ViLXR5cGVzICovCiAjZGVmaW5lIFZGSU9fUkVHSU9OX1NVQlRZUEVfSU5URUxfSUdEX09QUkVHSU9OCSgxKQogI2RlZmluZSBWRklPX1JFR0lPTl9TVUJUWVBFX0lOVEVMX0lHRF9IT1NUX0NGRwkoMikKICNkZWZpbmUgVkZJT19SRUdJT05fU1VCVFlQRV9JTlRFTF9JR0RfTFBDX0NGRwkoMykKIAotI2RlZmluZSBWRklPX1JFR0lPTl9UWVBFX0dGWCAgICAgICAgICAgICAgICAgICAgKDEpCisvKiAxMGRlIHZlbmRvciBQQ0kgc3ViLXR5cGVzICovCisvKgorICogTlZJRElBIEdQVSBOVmxpbmsyIFJBTSBpcyBjb2hlcmVudCBSQU0gbWFwcGVkIG9udG8gdGhlIGhvc3QgYWRkcmVzcyBzcGFjZS4KKyAqLworI2RlZmluZSBWRklPX1JFR0lPTl9TVUJUWVBFX05WSURJQV9OVkxJTksyX1JBTQkoMSkKKworLyogMTAxNCB2ZW5kb3IgUENJIHN1Yi10eXBlcyAqLworLyoKKyAqIElCTSBOUFUgTlZsaW5rMiBBVFNEIChBZGRyZXNzIFRyYW5zbGF0aW9uIFNob290ZG93bikgcmVnaXN0ZXIgb2YgTlBVCisgKiB0byBkbyBUTEIgaW52YWxpZGF0aW9uIG9uIGEgR1BVLgorICovCisjZGVmaW5lIFZGSU9fUkVHSU9OX1NVQlRZUEVfSUJNX05WTElOSzJfQVRTRAkoMSkKKworLyogc3ViLXR5cGVzIGZvciBWRklPX1JFR0lPTl9UWVBFX0dGWCAqLwogI2RlZmluZSBWRklPX1JFR0lPTl9TVUJUWVBFX0dGWF9FRElEICAgICAgICAgICAgKDEpCiAKIC8qKgpAQCAtMzUzLDI2ICszNzYsMTAgQEAgc3RydWN0IHZmaW9fcmVnaW9uX2dmeF9lZGlkIHsKICNkZWZpbmUgVkZJT19ERVZJQ0VfR0ZYX0xJTktfU1RBVEVfRE9XTiAgMgogfTsKIAotI2RlZmluZSBWRklPX1JFR0lPTl9UWVBFX0NDVwkJCSgyKQotLyogY2N3IHN1Yi10eXBlcyAqLworLyogc3ViLXR5cGVzIGZvciBWRklPX1JFR0lPTl9UWVBFX0NDVyAqLwogI2RlZmluZSBWRklPX1JFR0lPTl9TVUJUWVBFX0NDV19BU1lOQ19DTUQJKDEpCiAKIC8qCi0gKiAxMGRlIHZlbmRvciBzdWItdHlwZQotICoKLSAqIE5WSURJQSBHUFUgTlZsaW5rMiBSQU0gaXMgY29oZXJlbnQgUkFNIG1hcHBlZCBvbnRvIHRoZSBob3N0IGFkZHJlc3Mgc3BhY2UuCi0gKi8KLSNkZWZpbmUgVkZJT19SRUdJT05fU1VCVFlQRV9OVklESUFfTlZMSU5LMl9SQU0JKDEpCi0KLS8qCi0gKiAxMDE0IHZlbmRvciBzdWItdHlwZQotICoKLSAqIElCTSBOUFUgTlZsaW5rMiBBVFNEIChBZGRyZXNzIFRyYW5zbGF0aW9uIFNob290ZG93bikgcmVnaXN0ZXIgb2YgTlBVCi0gKiB0byBkbyBUTEIgaW52YWxpZGF0aW9uIG9uIGEgR1BVLgotICovCi0jZGVmaW5lIFZGSU9fUkVHSU9OX1NVQlRZUEVfSUJNX05WTElOSzJfQVRTRAkoMSkKLQotLyoKICAqIFRoZSBNU0lYIG1hcHBhYmxlIGNhcGFiaWxpdHkgaW5mb3JtcyB0aGF0IE1TSVggZGF0YSBvZiBhIEJBUiBjYW4gYmUgbW1hcHBlZAogICogd2hpY2ggYWxsb3dzIGRpcmVjdCBhY2Nlc3MgdG8gbm9uLU1TSVggcmVnaXN0ZXJzIHdoaWNoIGhhcHBlbmVkIHRvIGJlIHdpdGhpbgogICogdGhlIHNhbWUgc3lzdGVtIHBhZ2UuCkBAIC03MTQsNyArNzIxLDMxIEBAIHN0cnVjdCB2ZmlvX2lvbW11X3R5cGUxX2luZm8gewogCV9fdTMyCWFyZ3N6OwogCV9fdTMyCWZsYWdzOwogI2RlZmluZSBWRklPX0lPTU1VX0lORk9fUEdTSVpFUyAoMSA8PCAwKQkvKiBzdXBwb3J0ZWQgcGFnZSBzaXplcyBpbmZvICovCi0JX191NjQJaW92YV9wZ3NpemVzOwkJLyogQml0bWFwIG9mIHN1cHBvcnRlZCBwYWdlIHNpemVzICovCisjZGVmaW5lIFZGSU9fSU9NTVVfSU5GT19DQVBTCSgxIDw8IDEpCS8qIEluZm8gc3VwcG9ydHMgY2FwcyAqLworCV9fdTY0CWlvdmFfcGdzaXplczsJLyogQml0bWFwIG9mIHN1cHBvcnRlZCBwYWdlIHNpemVzICovCisJX191MzIgICBjYXBfb2Zmc2V0OwkvKiBPZmZzZXQgd2l0aGluIGluZm8gc3RydWN0IG9mIGZpcnN0IGNhcCAqLworfTsKKworLyoKKyAqIFRoZSBJT1ZBIGNhcGFiaWxpdHkgYWxsb3dzIHRvIHJlcG9ydCB0aGUgdmFsaWQgSU9WQSByYW5nZShzKQorICogZXhjbHVkaW5nIGFueSBub24tcmVsYXhhYmxlIHJlc2VydmVkIHJlZ2lvbnMgZXhwb3NlZCBieQorICogZGV2aWNlcyBhdHRhY2hlZCB0byB0aGUgY29udGFpbmVyLiBBbnkgRE1BIG1hcCBhdHRlbXB0CisgKiBvdXRzaWRlIHRoZSB2YWxpZCBpb3ZhIHJhbmdlIHdpbGwgcmV0dXJuIGVycm9yLgorICoKKyAqIFRoZSBzdHJ1Y3R1cmVzIGJlbG93IGRlZmluZSB2ZXJzaW9uIDEgb2YgdGhpcyBjYXBhYmlsaXR5LgorICovCisjZGVmaW5lIFZGSU9fSU9NTVVfVFlQRTFfSU5GT19DQVBfSU9WQV9SQU5HRSAgMQorCitzdHJ1Y3QgdmZpb19pb3ZhX3JhbmdlIHsKKwlfX3U2NAlzdGFydDsKKwlfX3U2NAllbmQ7Cit9OworCitzdHJ1Y3QgdmZpb19pb21tdV90eXBlMV9pbmZvX2NhcF9pb3ZhX3JhbmdlIHsKKwlzdHJ1Y3QJdmZpb19pbmZvX2NhcF9oZWFkZXIgaGVhZGVyOworCV9fdTMyCW5yX2lvdmFzOworCV9fdTMyCXJlc2VydmVkOworCXN0cnVjdAl2ZmlvX2lvdmFfcmFuZ2UgaW92YV9yYW5nZXNbXTsKIH07CiAKICNkZWZpbmUgVkZJT19JT01NVV9HRVRfSU5GTyBfSU8oVkZJT19UWVBFLCBWRklPX0JBU0UgKyAxMikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92aXJ0aW9fZnMuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92aXJ0aW9fZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDJlYjJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZpcnRpb19mcy5oCkBAIC0wLDAgKzEsMTkgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoKEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUpIE9SIEJTRC0zLUNsYXVzZSkgKi8KKworI2lmbmRlZiBfVUFQSV9MSU5VWF9WSVJUSU9fRlNfSAorI2RlZmluZSBfVUFQSV9MSU5VWF9WSVJUSU9fRlNfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC92aXJ0aW9faWRzLmg+CisjaW5jbHVkZSA8bGludXgvdmlydGlvX2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L3ZpcnRpb190eXBlcy5oPgorCitzdHJ1Y3QgdmlydGlvX2ZzX2NvbmZpZyB7CisJLyogRmlsZXN5c3RlbSBuYW1lIChVVEYtOCwgbm90IE5VTC10ZXJtaW5hdGVkLCBwYWRkZWQgd2l0aCBOVUxzKSAqLworCV9fdTggdGFnWzM2XTsKKworCS8qIE51bWJlciBvZiByZXF1ZXN0IHF1ZXVlcyAqLworCV9fdTMyIG51bV9yZXF1ZXN0X3F1ZXVlczsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKKyNlbmRpZiAvKiBfVUFQSV9MSU5VWF9WSVJUSU9fRlNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZpcnRpb19pZHMuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92aXJ0aW9faWRzLmgKaW5kZXggMzQ4ZmQwMS4uNTg1ZTA3YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZpcnRpb19pZHMuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvdmlydGlvX2lkcy5oCkBAIC00NCw2ICs0NCw3IEBACiAjZGVmaW5lIFZJUlRJT19JRF9WU09DSyAgICAgICAgMTkgLyogdmlydGlvIHZzb2NrIHRyYW5zcG9ydCAqLwogI2RlZmluZSBWSVJUSU9fSURfQ1JZUFRPICAgICAgIDIwIC8qIHZpcnRpbyBjcnlwdG8gKi8KICNkZWZpbmUgVklSVElPX0lEX0lPTU1VICAgICAgICAyMyAvKiB2aXJ0aW8gSU9NTVUgKi8KKyNkZWZpbmUgVklSVElPX0lEX0ZTICAgICAgICAgICAyNiAvKiB2aXJ0aW8gZmlsZXN5c3RlbSAqLwogI2RlZmluZSBWSVJUSU9fSURfUE1FTSAgICAgICAgIDI3IC8qIHZpcnRpbyBwbWVtICovCiAKICNlbmRpZiAvKiBfTElOVVhfVklSVElPX0lEU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvcmRtYS9tbHg1X3VzZXJfaW9jdGxfdmVyYnMuaCBiL2luY2x1ZGUvdWFwaS9yZG1hL21seDVfdXNlcl9pb2N0bF92ZXJicy5oCmluZGV4IDdlOTkwMGIuLjg4YjZjYTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9yZG1hL21seDVfdXNlcl9pb2N0bF92ZXJicy5oCisrKyBiL2luY2x1ZGUvdWFwaS9yZG1hL21seDVfdXNlcl9pb2N0bF92ZXJicy5oCkBAIC00Myw2ICs0Myw3IEBAIGVudW0gbWx4NV9pYl91YXBpX2Zsb3dfdGFibGVfdHlwZSB7CiAJTUxYNV9JQl9VQVBJX0ZMT1dfVEFCTEVfVFlQRV9OSUNfUlggICAgID0gMHgwLAogCU1MWDVfSUJfVUFQSV9GTE9XX1RBQkxFX1RZUEVfTklDX1RYCT0gMHgxLAogCU1MWDVfSUJfVUFQSV9GTE9XX1RBQkxFX1RZUEVfRkRCCT0gMHgyLAorCU1MWDVfSUJfVUFQSV9GTE9XX1RBQkxFX1RZUEVfUkRNQV9SWAk9IDB4MywKIH07CiAKIGVudW0gbWx4NV9pYl91YXBpX2Zsb3dfYWN0aW9uX3BhY2tldF9yZWZvcm1hdF90eXBlIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9zY3NpL3Njc2lfYnNnX2ZjLmggYi9pbmNsdWRlL3VhcGkvc2NzaS9zY3NpX2JzZ19mYy5oCmluZGV4IDUyZjMyYTYuLjNhZTY1ZTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9zY3NpL3Njc2lfYnNnX2ZjLmgKKysrIGIvaW5jbHVkZS91YXBpL3Njc2kvc2NzaV9ic2dfZmMuaApAQCAtOCw2ICs4LDggQEAKICNpZm5kZWYgU0NTSV9CU0dfRkNfSAogI2RlZmluZSBTQ1NJX0JTR19GQ19ICiAKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCiAvKgogICogVGhpcyBmaWxlIGludGVuZGVkIHRvIGJlIGluY2x1ZGVkIGJ5IGJvdGgga2VybmVsIGFuZCB1c2VyIHNwYWNlCiAgKi8KQEAgLTY2LDEwICs2OCwxMCBAQAogICogd2l0aCB0aGUgdHJhbnNwb3J0IHVwb24gY29tcGxldGlvbiBvZiB0aGUgbG9naW4uCiAgKi8KIHN0cnVjdCBmY19ic2dfaG9zdF9hZGRfcnBvcnQgewotCXVpbnQ4X3QJCXJlc2VydmVkOworCV9fdTgJcmVzZXJ2ZWQ7CiAKIAkvKiBGQyBBZGRyZXNzIElkZW50aWVyIG9mIHRoZSByZW1vdGUgcG9ydCB0byBsb2dpbiB0byAqLwotCXVpbnQ4X3QJCXBvcnRfaWRbM107CisJX191OAlwb3J0X2lkWzNdOwogfTsKIAogLyogUmVzcG9uc2U6CkBAIC04NywxMCArODksMTAgQEAgc3RydWN0IGZjX2JzZ19ob3N0X2FkZF9ycG9ydCB7CiAgKiByZW1haW4gbG9nZ2VkIGluIHdpdGggdGhlIHJlbW90ZSBwb3J0LgogICovCiBzdHJ1Y3QgZmNfYnNnX2hvc3RfZGVsX3Jwb3J0IHsKLQl1aW50OF90CQlyZXNlcnZlZDsKKwlfX3U4CXJlc2VydmVkOwogCiAJLyogRkMgQWRkcmVzcyBJZGVudGllciBvZiB0aGUgcmVtb3RlIHBvcnQgdG8gbG9nb3V0IG9mICovCi0JdWludDhfdAkJcG9ydF9pZFszXTsKKwlfX3U4CXBvcnRfaWRbM107CiB9OwogCiAvKiBSZXNwb25zZToKQEAgLTExMSwxMCArMTEzLDEwIEBAIHN0cnVjdCBmY19ic2dfaG9zdF9lbHMgewogCSAqIEVMUyBDb21tYW5kIENvZGUgYmVpbmcgc2VudCAobXVzdCBiZSB0aGUgc2FtZSBhcyBieXRlIDAKIAkgKiBvZiB0aGUgcGF5bG9hZCkKIAkgKi8KLQl1aW50OF90IAljb21tYW5kX2NvZGU7CisJX191OAljb21tYW5kX2NvZGU7CiAKIAkvKiBGQyBBZGRyZXNzIElkZW50aWVyIG9mIHRoZSByZW1vdGUgcG9ydCB0byBzZW5kIHRoZSBFTFMgdG8gKi8KLQl1aW50OF90CQlwb3J0X2lkWzNdOworCV9fdTgJcG9ydF9pZFszXTsKIH07CiAKIC8qIFJlc3BvbnNlOgpAQCAtMTUxLDE0ICsxNTMsMTQgQEAgc3RydWN0IGZjX2JzZ19jdGVsc19yZXBseSB7CiAJICogTm90ZTogeF9SSlQvQlNZIHN0YXR1cyB3aWxsIGluZGljYWUgdGhhdCB0aGUgcmp0X2RhdGEgZmllbGQKIAkgKiAgIGlzIHZhbGlkIGFuZCBjb250YWlucyB0aGUgcmVhc29uL2V4cGxhbmF0aW9uIHZhbHVlcy4KIAkgKi8KLQl1aW50MzJfdAlzdGF0dXM7CQkvKiBTZWUgRkNfQ1RFTFNfU1RBVFVTX3h4eCAqLworCV9fdTMyCXN0YXR1czsJCS8qIFNlZSBGQ19DVEVMU19TVEFUVVNfeHh4ICovCiAKIAkvKiB2YWxpZCBpZiBzdGF0dXMgaXMgbm90IEZDX0NURUxTX1NUQVRVU19PSyAqLwogCXN0cnVjdAl7Ci0JCXVpbnQ4X3QJYWN0aW9uOwkJLyogZnJhZ21lbnRfaWQgZm9yIENUIFJFSkVDVCAqLwotCQl1aW50OF90CXJlYXNvbl9jb2RlOwotCQl1aW50OF90CXJlYXNvbl9leHBsYW5hdGlvbjsKLQkJdWludDhfdAl2ZW5kb3JfdW5pcXVlOworCQlfX3U4CWFjdGlvbjsJCS8qIGZyYWdtZW50X2lkIGZvciBDVCBSRUpFQ1QgKi8KKwkJX191OAlyZWFzb25fY29kZTsKKwkJX191OAlyZWFzb25fZXhwbGFuYXRpb247CisJCV9fdTgJdmVuZG9yX3VuaXF1ZTsKIAl9IHJqdF9kYXRhOwogfTsKIApAQCAtMTc0LDE3ICsxNzYsMTcgQEAgc3RydWN0IGZjX2JzZ19jdGVsc19yZXBseSB7CiAgKiBhbmQgd2hldGhlciB0byB0ZWFyIGl0IGRvd24gYWZ0ZXIgdGhlIHJlcXVlc3QuCiAgKi8KIHN0cnVjdCBmY19ic2dfaG9zdF9jdCB7Ci0JdWludDhfdAkJcmVzZXJ2ZWQ7CisJX191OAlyZXNlcnZlZDsKIAogCS8qIEZDIEFkZHJlc3MgSWRlbnRpZXIgb2YgdGhlIHJlbW90ZSBwb3J0IHRvIHNlbmQgdGhlIEVMUyB0byAqLwotCXVpbnQ4X3QJCXBvcnRfaWRbM107CisJX191OAlwb3J0X2lkWzNdOwogCiAJLyoKIAkgKiBXZSBuZWVkIHdvcmRzIDAtMiBvZiB0aGUgZ2VuZXJpYyBwcmVhbWJsZSBmb3IgdGhlIExMRCdzCiAJICovCi0JdWludDMyX3QJcHJlYW1ibGVfd29yZDA7CS8qIHJldmlzaW9uICYgSU5fSUQgKi8KLQl1aW50MzJfdAlwcmVhbWJsZV93b3JkMTsJLyogR1NfVHlwZSwgR1NfU3ViVHlwZSwgT3B0aW9ucywgUnN2ZCAqLwotCXVpbnQzMl90CXByZWFtYmxlX3dvcmQyOwkvKiBDbWQgQ29kZSwgTWF4IFNpemUgKi8KKwlfX3UzMglwcmVhbWJsZV93b3JkMDsJLyogcmV2aXNpb24gJiBJTl9JRCAqLworCV9fdTMyCXByZWFtYmxlX3dvcmQxOwkvKiBHU19UeXBlLCBHU19TdWJUeXBlLCBPcHRpb25zLCBSc3ZkICovCisJX191MzIJcHJlYW1ibGVfd29yZDI7CS8qIENtZCBDb2RlLCBNYXggU2l6ZSAqLwogCiB9OwogLyogUmVzcG9uc2U6CkBAIC0yMDQsMTcgKzIwNiwxNyBAQCBzdHJ1Y3QgZmNfYnNnX2hvc3RfdmVuZG9yIHsKIAkgKiBJZGVudGlmaWVzIHRoZSB2ZW5kb3IgdGhhdCB0aGUgbWVzc2FnZSBpcyBmb3JtYXR0ZWQgZm9yLiBUaGlzCiAJICogc2hvdWxkIGJlIHRoZSByZWNpcGllbnQgb2YgdGhlIG1lc3NhZ2UuCiAJICovCi0JdWludDY0X3QgdmVuZG9yX2lkOworCV9fdTY0IHZlbmRvcl9pZDsKIAogCS8qIHN0YXJ0IG9mIHZlbmRvciBjb21tYW5kIGFyZWEgKi8KLQl1aW50MzJfdCB2ZW5kb3JfY21kWzBdOworCV9fdTMyIHZlbmRvcl9jbWRbMF07CiB9OwogCiAvKiBSZXNwb25zZToKICAqLwogc3RydWN0IGZjX2JzZ19ob3N0X3ZlbmRvcl9yZXBseSB7CiAJLyogc3RhcnQgb2YgdmVuZG9yIHJlc3BvbnNlIGFyZWEgKi8KLQl1aW50MzJfdCB2ZW5kb3JfcnNwWzBdOworCV9fdTMyIHZlbmRvcl9yc3BbMF07CiB9OwogCiAKQEAgLTIzMyw3ICsyMzUsNyBAQCBzdHJ1Y3QgZmNfYnNnX3Jwb3J0X2VscyB7CiAJICogRUxTIENvbW1hbmQgQ29kZSBiZWluZyBzZW50IChtdXN0IGJlIHRoZSBzYW1lIGFzCiAJICogYnl0ZSAwIG9mIHRoZSBwYXlsb2FkKQogCSAqLwotCXVpbnQ4X3QgZWxzX2NvZGU7CisJX191OCBlbHNfY29kZTsKIH07CiAKIC8qIFJlc3BvbnNlOgpAQCAtMjUxLDkgKzI1Myw5IEBAIHN0cnVjdCBmY19ic2dfcnBvcnRfY3QgewogCS8qCiAJICogV2UgbmVlZCB3b3JkcyAwLTIgb2YgdGhlIGdlbmVyaWMgcHJlYW1ibGUgZm9yIHRoZSBMTEQncwogCSAqLwotCXVpbnQzMl90CXByZWFtYmxlX3dvcmQwOwkvKiByZXZpc2lvbiAmIElOX0lEICovCi0JdWludDMyX3QJcHJlYW1ibGVfd29yZDE7CS8qIEdTX1R5cGUsIEdTX1N1YlR5cGUsIE9wdGlvbnMsIFJzdmQgKi8KLQl1aW50MzJfdAlwcmVhbWJsZV93b3JkMjsJLyogQ21kIENvZGUsIE1heCBTaXplICovCisJX191MzIJcHJlYW1ibGVfd29yZDA7CS8qIHJldmlzaW9uICYgSU5fSUQgKi8KKwlfX3UzMglwcmVhbWJsZV93b3JkMTsJLyogR1NfVHlwZSwgR1NfU3ViVHlwZSwgT3B0aW9ucywgUnN2ZCAqLworCV9fdTMyCXByZWFtYmxlX3dvcmQyOwkvKiBDbWQgQ29kZSwgTWF4IFNpemUgKi8KIH07CiAvKiBSZXNwb25zZToKICAqCkBAIC0yNjUsNyArMjY3LDcgQEAgc3RydWN0IGZjX2JzZ19ycG9ydF9jdCB7CiAKIC8qIHJlcXVlc3QgKENEQikgc3RydWN0dXJlIG9mIHRoZSBzZ19pb192NCAqLwogc3RydWN0IGZjX2JzZ19yZXF1ZXN0IHsKLQl1aW50MzJfdCBtc2djb2RlOworCV9fdTMyIG1zZ2NvZGU7CiAJdW5pb24gewogCQlzdHJ1Y3QgZmNfYnNnX2hvc3RfYWRkX3Jwb3J0CWhfYWRkcnBvcnQ7CiAJCXN0cnVjdCBmY19ic2dfaG9zdF9kZWxfcnBvcnQJaF9kZWxycG9ydDsKQEAgLTI4OSwxMCArMjkxLDEwIEBAIHN0cnVjdCBmY19ic2dfcmVwbHkgewogCSAqICAgIG1zZyBhbmQgc3RhdHVzIGZpZWxkcy4gVGhlIHBlci1tc2djb2RlIHJlcGx5IHN0cnVjdHVyZQogCSAqICAgIHdpbGwgY29udGFpbiB2YWxpZCBkYXRhLgogCSAqLwotCXVpbnQzMl90IHJlc3VsdDsKKwlfX3UzMiByZXN1bHQ7CiAKIAkvKiBJZiB0aGVyZSB3YXMgcmVwbHlfcGF5bG9hZCwgaG93IG11Y2ggd2FzIHJlY2V2aWVkID8gKi8KLQl1aW50MzJfdCByZXBseV9wYXlsb2FkX3Jjdl9sZW47CisJX191MzIgcmVwbHlfcGF5bG9hZF9yY3ZfbGVuOwogCiAJdW5pb24gewogCQlzdHJ1Y3QgZmNfYnNnX2hvc3RfdmVuZG9yX3JlcGx5CQl2ZW5kb3JfcmVwbHk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvc2NzaS9zY3NpX25ldGxpbmsuaCBiL2luY2x1ZGUvdWFwaS9zY3NpL3Njc2lfbmV0bGluay5oCmluZGV4IDVkZDM4MjAuLjFiMTczN2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9zY3NpL3Njc2lfbmV0bGluay5oCisrKyBiL2luY2x1ZGUvdWFwaS9zY3NpL3Njc2lfbmV0bGluay5oCkBAIC0yNiwxMiArMjYsMTIgQEAKIAogLyogU0NTSV9UUkFOU1BPUlRfTVNHIGV2ZW50IG1lc3NhZ2UgaGVhZGVyICovCiBzdHJ1Y3Qgc2NzaV9ubF9oZHIgewotCXVpbnQ4X3QgdmVyc2lvbjsKLQl1aW50OF90IHRyYW5zcG9ydDsKLQl1aW50MTZfdCBtYWdpYzsKLQl1aW50MTZfdCBtc2d0eXBlOwotCXVpbnQxNl90IG1zZ2xlbjsKLX0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChzaXplb2YodWludDY0X3QpKSkpOworCV9fdTggdmVyc2lvbjsKKwlfX3U4IHRyYW5zcG9ydDsKKwlfX3UxNiBtYWdpYzsKKwlfX3UxNiBtc2d0eXBlOworCV9fdTE2IG1zZ2xlbjsKK30gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChzaXplb2YoX191NjQpKSkpOwogCiAvKiBzY3NpX25sX2hkci0+dmVyc2lvbiB2YWx1ZSAqLwogI2RlZmluZSBTQ1NJX05MX1ZFUlNJT04JCQkJMQpAQCAtNzUsMTAgKzc1LDEwIEBAIHN0cnVjdCBzY3NpX25sX2hkciB7CiAgKi8KIHN0cnVjdCBzY3NpX25sX2hvc3RfdmVuZG9yX21zZyB7CiAJc3RydWN0IHNjc2lfbmxfaGRyIHNubGg7CQkvKiBtdXN0IGJlIDFzdCBlbGVtZW50ICEgKi8KLQl1aW50NjRfdCB2ZW5kb3JfaWQ7Ci0JdWludDE2X3QgaG9zdF9ubzsKLQl1aW50MTZfdCB2bXNnX2RhdGFsZW47Ci19IF9fYXR0cmlidXRlX18oKGFsaWduZWQoc2l6ZW9mKHVpbnQ2NF90KSkpKTsKKwlfX3U2NCB2ZW5kb3JfaWQ7CisJX191MTYgaG9zdF9ubzsKKwlfX3UxNiB2bXNnX2RhdGFsZW47Cit9IF9fYXR0cmlidXRlX18oKGFsaWduZWQoc2l6ZW9mKF9fdTY0KSkpKTsKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL3Njc2kvc2NzaV9uZXRsaW5rX2ZjLmggYi9pbmNsdWRlL3VhcGkvc2NzaS9zY3NpX25ldGxpbmtfZmMuaAppbmRleCBhMzkwMjM1Li43NTM1MjUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvc2NzaS9zY3NpX25ldGxpbmtfZmMuaAorKysgYi9pbmNsdWRlL3VhcGkvc2NzaS9zY3NpX25ldGxpbmtfZmMuaApAQCAtNyw2ICs3LDcgQEAKICNpZm5kZWYgU0NTSV9ORVRMSU5LX0ZDX0gKICNkZWZpbmUgU0NTSV9ORVRMSU5LX0ZDX0gKIAorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX25ldGxpbmsuaD4KIAogLyoKQEAgLTQzLDE0ICs0NCwxNCBAQAogICovCiBzdHJ1Y3QgZmNfbmxfZXZlbnQgewogCXN0cnVjdCBzY3NpX25sX2hkciBzbmxoOwkJLyogbXVzdCBiZSAxc3QgZWxlbWVudCAhICovCi0JdWludDY0X3Qgc2Vjb25kczsKLQl1aW50NjRfdCB2ZW5kb3JfaWQ7Ci0JdWludDE2X3QgaG9zdF9ubzsKLQl1aW50MTZfdCBldmVudF9kYXRhbGVuOwotCXVpbnQzMl90IGV2ZW50X251bTsKLQl1aW50MzJfdCBldmVudF9jb2RlOwotCXVpbnQzMl90IGV2ZW50X2RhdGE7Ci19IF9fYXR0cmlidXRlX18oKGFsaWduZWQoc2l6ZW9mKHVpbnQ2NF90KSkpKTsKKwlfX3U2NCBzZWNvbmRzOworCV9fdTY0IHZlbmRvcl9pZDsKKwlfX3UxNiBob3N0X25vOworCV9fdTE2IGV2ZW50X2RhdGFsZW47CisJX191MzIgZXZlbnRfbnVtOworCV9fdTMyIGV2ZW50X2NvZGU7CisJX191MzIgZXZlbnRfZGF0YTsKK30gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChzaXplb2YoX191NjQpKSkpOwogCiAKICNlbmRpZiAvKiBTQ1NJX05FVExJTktfRkNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vYXJtL2h5cGVydmlzb3IuaCBiL2luY2x1ZGUveGVuL2FybS9oeXBlcnZpc29yLmgKaW5kZXggMjk4MjU3MWYuLjQzZWYyNGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2FybS9oeXBlcnZpc29yLmgKKysrIGIvaW5jbHVkZS94ZW4vYXJtL2h5cGVydmlzb3IuaApAQCAtMTksOCArMTksNiBAQCBzdGF0aWMgaW5saW5lIGVudW0gcGFyYXZpcnRfbGF6eV9tb2RlIHBhcmF2aXJ0X2dldF9sYXp5X21vZGUodm9pZCkKIAlyZXR1cm4gUEFSQVZJUlRfTEFaWV9OT05FOwogfQogCi1leHRlcm4gY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICp4ZW5fZG1hX29wczsKLQogI2lmZGVmIENPTkZJR19YRU4KIHZvaWQgX19pbml0IHhlbl9lYXJseV9pbml0KHZvaWQpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2FybS9wYWdlLWNvaGVyZW50LmggYi9pbmNsdWRlL3hlbi9hcm0vcGFnZS1jb2hlcmVudC5oCmluZGV4IDJjYTkxNjQuLmI5Y2MxMWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2FybS9wYWdlLWNvaGVyZW50LmgKKysrIGIvaW5jbHVkZS94ZW4vYXJtL3BhZ2UtY29oZXJlbnQuaApAQCAtMiwxNSArMiwxOSBAQAogI2lmbmRlZiBfWEVOX0FSTV9QQUdFX0NPSEVSRU5UX0gKICNkZWZpbmUgX1hFTl9BUk1fUEFHRV9DT0hFUkVOVF9ICiAKLXZvaWQgX194ZW5fZG1hX21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKLQkgICAgIGRtYV9hZGRyX3QgZGV2X2FkZHIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwKLQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycyk7Ci12b2lkIF9feGVuX2RtYV91bm1hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKLQkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJdW5zaWduZWQgbG9uZyBhdHRycyk7Ci12b2lkIF9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAotCQlkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7Ci12b2lkIF9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAotCQlkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxhc20vcGFnZS5oPgorCitzdGF0aWMgaW5saW5lIHZvaWQgKnhlbl9hbGxvY19jb2hlcmVudF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc2l6ZV90IHNpemUsCisJCWRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsIGdmcF90IGZsYWdzLCB1bnNpZ25lZCBsb25nIGF0dHJzKQoreworCXJldHVybiBkbWFfZGlyZWN0X2FsbG9jKGh3ZGV2LCBzaXplLCBkbWFfaGFuZGxlLCBmbGFncywgYXR0cnMpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2ZyZWVfY29oZXJlbnRfcGFnZXMoc3RydWN0IGRldmljZSAqaHdkZXYsIHNpemVfdCBzaXplLAorCQl2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlLCB1bnNpZ25lZCBsb25nIGF0dHJzKQoreworCWRtYV9kaXJlY3RfZnJlZShod2Rldiwgc2l6ZSwgY3B1X2FkZHIsIGRtYV9oYW5kbGUsIGF0dHJzKTsKK30KIAogI2VuZGlmIC8qIF9YRU5fQVJNX1BBR0VfQ09IRVJFTlRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vc3dpb3RsYi14ZW4uaCBiL2luY2x1ZGUveGVuL3N3aW90bGIteGVuLmgKaW5kZXggNWU0YjgzZi4uZDcxMzgwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vc3dpb3RsYi14ZW4uaAorKysgYi9pbmNsdWRlL3hlbi9zd2lvdGxiLXhlbi5oCkBAIC00LDYgKzQsMTEgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3N3aW90bGIuaD4KIAordm9pZCB4ZW5fZG1hX3N5bmNfZm9yX2NwdShzdHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAorCQlwaHlzX2FkZHJfdCBwYWRkciwgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7Cit2b2lkIHhlbl9kbWFfc3luY19mb3JfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBoYW5kbGUsCisJCXBoeXNfYWRkcl90IHBhZGRyLCBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKTsKKwogZXh0ZXJuIGludCB4ZW5fc3dpb3RsYl9pbml0KGludCB2ZXJib3NlLCBib29sIGVhcmx5KTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgeGVuX3N3aW90bGJfZG1hX29wczsKIApkaWZmIC0tZ2l0IGEvaW5pdC9LY29uZmlnIGIvaW5pdC9LY29uZmlnCmluZGV4IGVjMTAyMWYuLmI0ZGFhZDIgMTAwNjQ0Ci0tLSBhL2luaXQvS2NvbmZpZworKysgYi9pbml0L0tjb25maWcKQEAgLTMzLDYgKzMzLDkgQEAKIGNvbmZpZyBUT09MU19TVVBQT1JUX1JFTFIKIAlkZWZfYm9vbCAkKHN1Y2Nlc3MsZW52ICJDQz0kKENDKSIgIkxEPSQoTEQpIiAiTk09JChOTSkiICJPQkpDT1BZPSQoT0JKQ09QWSkiICQoc3JjdHJlZSkvc2NyaXB0cy90b29scy1zdXBwb3J0LXJlbHIuc2gpCiAKK2NvbmZpZyBDQ19IQVNfQVNNX0lOTElORQorCWRlZl9ib29sICQoc3VjY2VzcyxlY2hvICd2b2lkIGZvbyh2b2lkKSB7IGFzbSBpbmxpbmUgKCIiKTsgfScgfCAkKENDKSAteCBjIC0gLWMgLW8gL2Rldi9udWxsKQorCiBjb25maWcgQ0NfSEFTX1dBUk5fTUFZQkVfVU5JTklUSUFMSVpFRAogCWRlZl9ib29sICQoY2Mtb3B0aW9uLC1XbWF5YmUtdW5pbml0aWFsaXplZCkKIAloZWxwCkBAIC01MSw3ICs1NCw2IEBACiAKIGNvbmZpZyBDT05TVFJVQ1RPUlMKIAlib29sCi0JZGVwZW5kcyBvbiAhVU1MCiAKIGNvbmZpZyBJUlFfV09SSwogCWJvb2wKQEAgLTEyMzQsMjAgKzEyMzYsMjYgQEAKIAlkZWZhdWx0IENDX09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRQogCiBjb25maWcgQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFCi0JYm9vbCAiT3B0aW1pemUgZm9yIHBlcmZvcm1hbmNlIgorCWJvb2wgIk9wdGltaXplIGZvciBwZXJmb3JtYW5jZSAoLU8yKSIKIAloZWxwCiAJICBUaGlzIGlzIHRoZSBkZWZhdWx0IG9wdGltaXphdGlvbiBsZXZlbCBmb3IgdGhlIGtlcm5lbCwgYnVpbGRpbmcKIAkgIHdpdGggdGhlICItTzIiIGNvbXBpbGVyIGZsYWcgZm9yIGJlc3QgcGVyZm9ybWFuY2UgYW5kIG1vc3QKIAkgIGhlbHBmdWwgY29tcGlsZS10aW1lIHdhcm5pbmdzLgogCi1jb25maWcgQ0NfT1BUSU1JWkVfRk9SX1NJWkUKLQlib29sICJPcHRpbWl6ZSBmb3Igc2l6ZSIKK2NvbmZpZyBDQ19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0VfTzMKKwlib29sICJPcHRpbWl6ZSBtb3JlIGZvciBwZXJmb3JtYW5jZSAoLU8zKSIKKwlkZXBlbmRzIG9uIEFSQwogCWltcGx5IENDX0RJU0FCTEVfV0FSTl9NQVlCRV9VTklOSVRJQUxJWkVEICAjIGF2b2lkIGZhbHNlIHBvc2l0aXZlcwogCWhlbHAKLQkgIEVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgcGFzcyAiLU9zIiBpbnN0ZWFkIG9mICItTzIiIHRvCi0JICB5b3VyIGNvbXBpbGVyIHJlc3VsdGluZyBpbiBhIHNtYWxsZXIga2VybmVsLgorCSAgQ2hvb3NpbmcgdGhpcyBvcHRpb24gd2lsbCBwYXNzICItTzMiIHRvIHlvdXIgY29tcGlsZXIgdG8gb3B0aW1pemUKKwkgIHRoZSBrZXJuZWwgeWV0IG1vcmUgZm9yIHBlcmZvcm1hbmNlLgogCi0JICBJZiB1bnN1cmUsIHNheSBOLgorY29uZmlnIENDX09QVElNSVpFX0ZPUl9TSVpFCisJYm9vbCAiT3B0aW1pemUgZm9yIHNpemUgKC1PcykiCisJaW1wbHkgQ0NfRElTQUJMRV9XQVJOX01BWUJFX1VOSU5JVElBTElaRUQgICMgYXZvaWQgZmFsc2UgcG9zaXRpdmVzCisJaGVscAorCSAgQ2hvb3NpbmcgdGhpcyBvcHRpb24gd2lsbCBwYXNzICItT3MiIHRvIHlvdXIgY29tcGlsZXIgcmVzdWx0aW5nCisJICBpbiBhIHNtYWxsZXIga2VybmVsLgogCiBlbmRjaG9pY2UKIApAQCAtMTk1NSw2ICsxOTYzLDEwIEBACiAJZGVmYXVsdCAwIGlmIEJBU0VfRlVMTAogCWRlZmF1bHQgMSBpZiAhQkFTRV9GVUxMCiAKK2NvbmZpZyBNT0RVTEVfU0lHX0ZPUk1BVAorCWRlZl9ib29sIG4KKwlzZWxlY3QgU1lTVEVNX0RBVEFfVkVSSUZJQ0FUSU9OCisKIG1lbnVjb25maWcgTU9EVUxFUwogCWJvb2wgIkVuYWJsZSBsb2FkYWJsZSBtb2R1bGUgc3VwcG9ydCIKIAlvcHRpb24gbW9kdWxlcwpAQCAtMjAxNCw2ICsyMDI2LDE0IEBACiAJICBtYWtlIHRoZW0gaW5jb21wYXRpYmxlIHdpdGggdGhlIGtlcm5lbCB5b3UgYXJlIHJ1bm5pbmcuICBJZgogCSAgdW5zdXJlLCBzYXkgTi4KIAorY29uZmlnIEFTTV9NT0RWRVJTSU9OUworCWJvb2wKKwlkZWZhdWx0IEhBVkVfQVNNX01PRFZFUlNJT05TICYmIE1PRFZFUlNJT05TCisJaGVscAorCSAgVGhpcyBlbmFibGVzIG1vZHVsZSB2ZXJzaW9uaW5nIGZvciBleHBvcnRlZCBzeW1ib2xzIGFsc28gZnJvbQorCSAgYXNzZW1ibHkuIFRoaXMgY2FuIGJlIGVuYWJsZWQgb25seSB3aGVuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlCisJICBzdXBwb3J0cyBpdC4KKwogY29uZmlnIE1PRFVMRV9SRUxfQ1JDUwogCWJvb2wKIAlkZXBlbmRzIG9uIE1PRFZFUlNJT05TCkBAIC0yMDMxLDggKzIwNTEsNyBAQAogCiBjb25maWcgTU9EVUxFX1NJRwogCWJvb2wgIk1vZHVsZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIgotCWRlcGVuZHMgb24gTU9EVUxFUwotCXNlbGVjdCBTWVNURU1fREFUQV9WRVJJRklDQVRJT04KKwlzZWxlY3QgTU9EVUxFX1NJR19GT1JNQVQKIAloZWxwCiAJICBDaGVjayBtb2R1bGVzIGZvciB2YWxpZCBzaWduYXR1cmVzIHVwb24gbG9hZDogdGhlIHNpZ25hdHVyZQogCSAgaXMgc2ltcGx5IGFwcGVuZGVkIHRvIHRoZSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZQpAQCAtMjA0Miw2ICsyMDYxLDExIEBACiAJICBrZXJuZWwgYnVpbGQgZGVwZW5kZW5jeSBzbyB0aGF0IHRoZSBzaWduaW5nIHRvb2wgY2FuIHVzZSBpdHMgY3J5cHRvCiAJICBsaWJyYXJ5LgogCisJICBZb3Ugc2hvdWxkIGVuYWJsZSB0aGlzIG9wdGlvbiBpZiB5b3Ugd2lzaCB0byB1c2UgZWl0aGVyCisJICBDT05GSUdfU0VDVVJJVFlfTE9DS0RPV05fTFNNIG9yIGxvY2tkb3duIGZ1bmN0aW9uYWxpdHkgaW1wb3NlZCB2aWEKKwkgIGFub3RoZXIgTFNNIC0gb3RoZXJ3aXNlIHVuc2lnbmVkIG1vZHVsZXMgd2lsbCBiZSBsb2FkYWJsZSByZWdhcmRsZXNzCisJICBvZiB0aGUgbG9ja2Rvd24gcG9saWN5LgorCiAJICAhISFXQVJOSU5HISEhICBJZiB5b3UgZW5hYmxlIHRoaXMgb3B0aW9uLCB5b3UgTVVTVCBtYWtlIHN1cmUgdGhhdCB0aGUKIAkgIG1vZHVsZSBET0VTIE5PVCBnZXQgc3RyaXBwZWQgYWZ0ZXIgYmVpbmcgc2lnbmVkLiAgVGhpcyBpbmNsdWRlcyB0aGUKIAkgIGRlYnVnaW5mbyBzdHJpcCBkb25lIGJ5IHNvbWUgcGFja2FnZXJzIChzdWNoIGFzIHJwbWJ1aWxkKSBhbmQKQEAgLTIxMDgsNyArMjEzMiw2IEBACiAKIGNvbmZpZyBNT0RVTEVfQ09NUFJFU1MKIAlib29sICJDb21wcmVzcyBtb2R1bGVzIG9uIGluc3RhbGxhdGlvbiIKLQlkZXBlbmRzIG9uIE1PRFVMRVMKIAloZWxwCiAKIAkgIENvbXByZXNzZXMga2VybmVsIG1vZHVsZXMgd2hlbiAnbWFrZSBtb2R1bGVzX2luc3RhbGwnIGlzIHJ1bjsgZ3ppcCBvcgpAQCAtMjE0NCw5ICsyMTY3LDM4IEBACiAKIGVuZGNob2ljZQogCitjb25maWcgTU9EVUxFX0FMTE9XX01JU1NJTkdfTkFNRVNQQUNFX0lNUE9SVFMKKwlib29sICJBbGxvdyBsb2FkaW5nIG9mIG1vZHVsZXMgd2l0aCBtaXNzaW5nIG5hbWVzcGFjZSBpbXBvcnRzIgorCWhlbHAKKwkgIFN5bWJvbHMgZXhwb3J0ZWQgd2l0aCBFWFBPUlRfU1lNQk9MX05TKigpIGFyZSBjb25zaWRlcmVkIGV4cG9ydGVkIGluCisJICBhIG5hbWVzcGFjZS4gQSBtb2R1bGUgdGhhdCBtYWtlcyB1c2Ugb2YgYSBzeW1ib2wgZXhwb3J0ZWQgd2l0aCBzdWNoIGEKKwkgIG5hbWVzcGFjZSBpcyByZXF1aXJlZCB0byBpbXBvcnQgdGhlIG5hbWVzcGFjZSB2aWEgTU9EVUxFX0lNUE9SVF9OUygpLgorCSAgVGhlcmUgaXMgbm8gdGVjaG5pY2FsIHJlYXNvbiB0byBlbmZvcmNlIGNvcnJlY3QgbmFtZXNwYWNlIGltcG9ydHMsCisJICBidXQgaXQgY3JlYXRlcyBjb25zaXN0ZW5jeSBiZXR3ZWVuIHN5bWJvbHMgZGVmaW5pbmcgbmFtZXNwYWNlcyBhbmQKKwkgIHVzZXJzIGltcG9ydGluZyBuYW1lc3BhY2VzIHRoZXkgbWFrZSB1c2Ugb2YuIFRoaXMgb3B0aW9uIHJlbGF4ZXMgdGhpcworCSAgcmVxdWlyZW1lbnQgYW5kIGxpZnRzIHRoZSBlbmZvcmNlbWVudCB3aGVuIGxvYWRpbmcgYSBtb2R1bGUuCisKKwkgIElmIHVuc3VyZSwgc2F5IE4uCisKK2NvbmZpZyBVTlVTRURfU1lNQk9MUworCWJvb2wgIkVuYWJsZSB1bnVzZWQvb2Jzb2xldGUgZXhwb3J0ZWQgc3ltYm9scyIKKwlkZWZhdWx0IHkgaWYgWDg2CisJaGVscAorCSAgVW51c2VkIGJ1dCBleHBvcnRlZCBzeW1ib2xzIG1ha2UgdGhlIGtlcm5lbCBuZWVkbGVzc2x5IGJpZ2dlci4gIEZvcgorCSAgdGhhdCByZWFzb24gbW9zdCBvZiB0aGVzZSB1bnVzZWQgZXhwb3J0cyB3aWxsIHNvb24gYmUgcmVtb3ZlZC4gIFRoaXMKKwkgIG9wdGlvbiBpcyBwcm92aWRlZCB0ZW1wb3JhcmlseSB0byBwcm92aWRlIGEgdHJhbnNpdGlvbiBwZXJpb2QgaW4gY2FzZQorCSAgc29tZSBleHRlcm5hbCBrZXJuZWwgbW9kdWxlIG5lZWRzIG9uZSBvZiB0aGVzZSBzeW1ib2xzIGFueXdheS4gSWYgeW91CisJICBlbmNvdW50ZXIgc3VjaCBhIGNhc2UgaW4geW91ciBtb2R1bGUsIGNvbnNpZGVyIGlmIHlvdSBhcmUgYWN0dWFsbHkKKwkgIHVzaW5nIHRoZSByaWdodCBBUEkuICAocmF0aW9uYWxlOiBzaW5jZSBub2JvZHkgaW4gdGhlIGtlcm5lbCBpcyB1c2luZworCSAgdGhpcyBpbiBhIG1vZHVsZSwgdGhlcmUgaXMgYSBwcmV0dHkgZ29vZCBjaGFuY2UgaXQncyBhY3R1YWxseSB0aGUKKwkgIHdyb25nIGludGVyZmFjZSB0byB1c2UpLiAgSWYgeW91IHJlYWxseSBuZWVkIHRoZSBzeW1ib2wsIHBsZWFzZSBzZW5kIGEKKwkgIG1haWwgdG8gdGhlIGxpbnV4IGtlcm5lbCBtYWlsaW5nIGxpc3QgbWVudGlvbmluZyB0aGUgc3ltYm9sIGFuZCB3aHkKKwkgIHlvdSByZWFsbHkgbmVlZCBpdCwgYW5kIHdoYXQgdGhlIG1lcmdlIHBsYW4gdG8gdGhlIG1haW5saW5lIGtlcm5lbCBmb3IKKwkgIHlvdXIgbW9kdWxlIGlzLgorCiBjb25maWcgVFJJTV9VTlVTRURfS1NZTVMKIAlib29sICJUcmltIHVudXNlZCBleHBvcnRlZCBrZXJuZWwgc3ltYm9scyIKLQlkZXBlbmRzIG9uIE1PRFVMRVMgJiYgIVVOVVNFRF9TWU1CT0xTCisJZGVwZW5kcyBvbiAhVU5VU0VEX1NZTUJPTFMKIAloZWxwCiAJICBUaGUga2VybmVsIGFuZCBzb21lIG1vZHVsZXMgbWFrZSBtYW55IHN5bWJvbHMgYXZhaWxhYmxlIGZvcgogCSAgb3RoZXIgbW9kdWxlcyB0byB1c2UgdmlhIEVYUE9SVF9TWU1CT0woKSBhbmQgdmFyaWFudHMuIERlcGVuZGluZwpkaWZmIC0tZ2l0IGEvaW5pdC9NYWtlZmlsZSBiL2luaXQvTWFrZWZpbGUKaW5kZXggYTNlNWNlMi4uNjI0NmEwNiAxMDA2NDQKLS0tIGEvaW5pdC9NYWtlZmlsZQorKysgYi9pbml0L01ha2VmaWxlCkBAIC0zMyw1ICszMyw2IEBACiBzaWxlbnRfY2hrX2NvbXBpbGUuaCA9IDoKIGluY2x1ZGUvZ2VuZXJhdGVkL2NvbXBpbGUuaDogRk9SQ0UKIAlAJCgkKHF1aWV0KWNoa19jb21waWxlLmgpCi0JJChRKSQoQ09ORklHX1NIRUxMKSAkKHNyY3RyZWUpL3NjcmlwdHMvbWtjb21waWxlX2ggJEAgXAotCSIkKFVUU19NQUNISU5FKSIgIiQoQ09ORklHX1NNUCkiICIkKENPTkZJR19QUkVFTVBUKSIgIiQoQ0MpICQoS0JVSUxEX0NGTEFHUykiCisJJChRKSQoQ09ORklHX1NIRUxMKSAkKHNyY3RyZWUpL3NjcmlwdHMvbWtjb21waWxlX2ggJEAJXAorCSIkKFVUU19NQUNISU5FKSIgIiQoQ09ORklHX1NNUCkiICIkKENPTkZJR19QUkVFTVBUKSIJXAorCSIkKENPTkZJR19QUkVFTVBUX1JUKSIgIiQoQ0MpICQoS0JVSUxEX0NGTEFHUykiCmRpZmYgLS1naXQgYS9pbml0L2RvX21vdW50cy5jIGIvaW5pdC9kb19tb3VudHMuYwppbmRleCA1M2NiMzdiLi45NjM0ZWNmIDEwMDY0NAotLS0gYS9pbml0L2RvX21vdW50cy5jCisrKyBiL2luaXQvZG9fbW91bnRzLmMKQEAgLTYyNywyMCArNjI3LDE3IEBAIHZvaWQgX19pbml0IHByZXBhcmVfbmFtZXNwYWNlKHZvaWQpCiB9CiAKIHN0YXRpYyBib29sIGlzX3RtcGZzOwotc3RhdGljIHN0cnVjdCBkZW50cnkgKnJvb3Rmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKLQlpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKQorc3RhdGljIGludCByb290ZnNfaW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYykKIHsKLQl2b2lkICpmaWxsID0gcmFtZnNfZmlsbF9zdXBlcjsKLQogCWlmIChJU19FTkFCTEVEKENPTkZJR19UTVBGUykgJiYgaXNfdG1wZnMpCi0JCWZpbGwgPSBzaG1lbV9maWxsX3N1cGVyOworCQlyZXR1cm4gc2htZW1faW5pdF9mc19jb250ZXh0KGZjKTsKIAotCXJldHVybiBtb3VudF9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwgZmlsbCk7CisJcmV0dXJuIHJhbWZzX2luaXRfZnNfY29udGV4dChmYyk7CiB9CiAKIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIHJvb3Rmc19mc190eXBlID0gewogCS5uYW1lCQk9ICJyb290ZnMiLAotCS5tb3VudAkJPSByb290ZnNfbW91bnQsCisJLmluaXRfZnNfY29udGV4dCA9IHJvb3Rmc19pbml0X2ZzX2NvbnRleHQsCiAJLmtpbGxfc2IJPSBraWxsX2xpdHRlcl9zdXBlciwKIH07CiAKZGlmZiAtLWdpdCBhL2luaXQvbWFpbi5jIGIvaW5pdC9tYWluLmMKaW5kZXggNjUzNjkzZC4uOTFmNmViYiAxMDA2NDQKLS0tIGEvaW5pdC9tYWluLmMKKysrIGIvaW5pdC9tYWluLmMKQEAgLTUwNyw3ICs1MDcsNyBAQCB2b2lkIF9faW5pdCBfX3dlYWsgbWVtX2VuY3J5cHRfaW5pdCh2b2lkKSB7IH0KIAogdm9pZCBfX2luaXQgX193ZWFrIHBva2luZ19pbml0KHZvaWQpIHsgfQogCi12b2lkIF9faW5pdCBfX3dlYWsgcGdkX2NhY2hlX2luaXQodm9pZCkgeyB9Cit2b2lkIF9faW5pdCBfX3dlYWsgcGd0YWJsZV9jYWNoZV9pbml0KHZvaWQpIHsgfQogCiBib29sIGluaXRjYWxsX2RlYnVnOwogY29yZV9wYXJhbShpbml0Y2FsbF9kZWJ1ZywgaW5pdGNhbGxfZGVidWcsIGJvb2wsIDA2NDQpOwpAQCAtNTU2LDYgKzU1Niw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBtbV9pbml0KHZvaWQpCiAJcmVwb3J0X21lbWluaXQoKTsKIAltZW1faW5pdCgpOwogCWttZW1fY2FjaGVfaW5pdCgpOworCWttZW1sZWFrX2luaXQoKTsKIAlwZ3RhYmxlX2luaXQoKTsKIAlkZWJ1Z19vYmplY3RzX21lbV9pbml0KCk7CiAJdm1hbGxvY19pbml0KCk7CkBAIC01NjQsNyArNTY1LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IG1tX2luaXQodm9pZCkKIAlpbml0X2VzcGZpeF9ic3AoKTsKIAkvKiBTaG91bGQgYmUgcnVuIGFmdGVyIGVzcGZpeDY0IGlzIHNldCB1cC4gKi8KIAlwdGlfaW5pdCgpOwotCXBnZF9jYWNoZV9pbml0KCk7CiB9CiAKIHZvaWQgX19pbml0IF9fd2VhayBhcmNoX2NhbGxfcmVzdF9pbml0KHZvaWQpCkBAIC01OTMsOCArNTkzLDggQEAgYXNtbGlua2FnZSBfX3Zpc2libGUgdm9pZCBfX2luaXQgc3RhcnRfa2VybmVsKHZvaWQpCiAJYm9vdF9jcHVfaW5pdCgpOwogCXBhZ2VfYWRkcmVzc19pbml0KCk7CiAJcHJfbm90aWNlKCIlcyIsIGxpbnV4X2Jhbm5lcik7CisJZWFybHlfc2VjdXJpdHlfaW5pdCgpOwogCXNldHVwX2FyY2goJmNvbW1hbmRfbGluZSk7Ci0JbW1faW5pdF9jcHVtYXNrKCZpbml0X21tKTsKIAlzZXR1cF9jb21tYW5kX2xpbmUoY29tbWFuZF9saW5lKTsKIAlzZXR1cF9ucl9jcHVfaWRzKCk7CiAJc2V0dXBfcGVyX2NwdV9hcmVhcygpOwpAQCAtNzQwLDcgKzc0MCw2IEBAIGFzbWxpbmthZ2UgX192aXNpYmxlIHZvaWQgX19pbml0IHN0YXJ0X2tlcm5lbCh2b2lkKQogCQlpbml0cmRfc3RhcnQgPSAwOwogCX0KICNlbmRpZgotCWttZW1sZWFrX2luaXQoKTsKIAlzZXR1cF9wZXJfY3B1X3BhZ2VzZXQoKTsKIAludW1hX3BvbGljeV9pbml0KCk7CiAJYWNwaV9lYXJseV9pbml0KCk7CmRpZmYgLS1naXQgYS9pcGMvbXF1ZXVlLmMgYi9pcGMvbXF1ZXVlLmMKaW5kZXggN2MxNTcyOS4uM2Q5MjBmZiAxMDA2NDQKLS0tIGEvaXBjL21xdWV1ZS5jCisrKyBiL2lwYy9tcXVldWUuYwpAQCAtMTI0MCwxNSArMTI0MCwxNCBAQCBzdGF0aWMgaW50IGRvX21xX25vdGlmeShtcWRfdCBtcWRlcywgY29uc3Qgc3RydWN0IHNpZ2V2ZW50ICpub3RpZmljYXRpb24pCiAKIAkJCS8qIGNyZWF0ZSB0aGUgbm90aWZ5IHNrYiAqLwogCQkJbmMgPSBhbGxvY19za2IoTk9USUZZX0NPT0tJRV9MRU4sIEdGUF9LRVJORUwpOwotCQkJaWYgKCFuYykgewotCQkJCXJldCA9IC1FTk9NRU07Ci0JCQkJZ290byBvdXQ7Ci0JCQl9CisJCQlpZiAoIW5jKQorCQkJCXJldHVybiAtRU5PTUVNOworCiAJCQlpZiAoY29weV9mcm9tX3VzZXIobmMtPmRhdGEsCiAJCQkJCW5vdGlmaWNhdGlvbi0+c2lnZXZfdmFsdWUuc2l2YWxfcHRyLAogCQkJCQlOT1RJRllfQ09PS0lFX0xFTikpIHsKIAkJCQlyZXQgPSAtRUZBVUxUOwotCQkJCWdvdG8gb3V0OworCQkJCWdvdG8gZnJlZV9za2I7CiAJCQl9CiAKIAkJCS8qIFRPRE86IGFkZCBhIGhlYWRlcj8gKi8KQEAgLTEyNjQsOCArMTI2Myw3IEBAIHN0YXRpYyBpbnQgZG9fbXFfbm90aWZ5KG1xZF90IG1xZGVzLCBjb25zdCBzdHJ1Y3Qgc2lnZXZlbnQgKm5vdGlmaWNhdGlvbikKIAkJCWZkcHV0KGYpOwogCQkJaWYgKElTX0VSUihzb2NrKSkgewogCQkJCXJldCA9IFBUUl9FUlIoc29jayk7Ci0JCQkJc29jayA9IE5VTEw7Ci0JCQkJZ290byBvdXQ7CisJCQkJZ290byBmcmVlX3NrYjsKIAkJCX0KIAogCQkJdGltZW8gPSBNQVhfU0NIRURVTEVfVElNRU9VVDsKQEAgLTEyNzQsMTEgKzEyNzIsOCBAQCBzdGF0aWMgaW50IGRvX21xX25vdGlmeShtcWRfdCBtcWRlcywgY29uc3Qgc3RydWN0IHNpZ2V2ZW50ICpub3RpZmljYXRpb24pCiAJCQkJc29jayA9IE5VTEw7CiAJCQkJZ290byByZXRyeTsKIAkJCX0KLQkJCWlmIChyZXQpIHsKLQkJCQlzb2NrID0gTlVMTDsKLQkJCQluYyA9IE5VTEw7Ci0JCQkJZ290byBvdXQ7Ci0JCQl9CisJCQlpZiAocmV0KQorCQkJCXJldHVybiByZXQ7CiAJCX0KIAl9CiAKQEAgLTEzMzMsNyArMTMyOCw4IEBAIHN0YXRpYyBpbnQgZG9fbXFfbm90aWZ5KG1xZF90IG1xZGVzLCBjb25zdCBzdHJ1Y3Qgc2lnZXZlbnQgKm5vdGlmaWNhdGlvbikKIG91dDoKIAlpZiAoc29jaykKIAkJbmV0bGlua19kZXRhY2hza2Ioc29jaywgbmMpOwotCWVsc2UgaWYgKG5jKQorCWVsc2UKK2ZyZWVfc2tiOgogCQlkZXZfa2ZyZWVfc2tiKG5jKTsKIAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9pcGMvc2VtLmMgYi9pcGMvc2VtLmMKaW5kZXggN2RhNDUwNC4uZWM5N2E3MCAxMDA2NDQKLS0tIGEvaXBjL3NlbS5jCisrKyBiL2lwYy9zZW0uYwpAQCAtMTg1Miw3ICsxODUyLDggQEAgc3RhdGljIHN0cnVjdCBzZW1fdW5kbyAqX19sb29rdXBfdW5kbyhzdHJ1Y3Qgc2VtX3VuZG9fbGlzdCAqdWxwLCBpbnQgc2VtaWQpCiB7CiAJc3RydWN0IHNlbV91bmRvICp1bjsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHVuLCAmdWxwLT5saXN0X3Byb2MsIGxpc3RfcHJvYykgeworCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHVuLCAmdWxwLT5saXN0X3Byb2MsIGxpc3RfcHJvYywKKwkJCQlzcGluX2lzX2xvY2tlZCgmdWxwLT5sb2NrKSkgewogCQlpZiAodW4tPnNlbWlkID09IHNlbWlkKQogCQkJcmV0dXJuIHVuOwogCX0KZGlmZiAtLWdpdCBhL2tlcm5lbC9NYWtlZmlsZSBiL2tlcm5lbC9NYWtlZmlsZQppbmRleCA0OGM1Mzc2Li5kYWFkNzg3IDEwMDY0NAotLS0gYS9rZXJuZWwvTWFrZWZpbGUKKysrIGIva2VybmVsL01ha2VmaWxlCkBAIC01OCw2ICs1OCw3IEBACiBvYmotJChDT05GSUdfVUlEMTYpICs9IHVpZDE2Lm8KIG9iai0kKENPTkZJR19NT0RVTEVTKSArPSBtb2R1bGUubwogb2JqLSQoQ09ORklHX01PRFVMRV9TSUcpICs9IG1vZHVsZV9zaWduaW5nLm8KK29iai0kKENPTkZJR19NT0RVTEVfU0lHX0ZPUk1BVCkgKz0gbW9kdWxlX3NpZ25hdHVyZS5vCiBvYmotJChDT05GSUdfS0FMTFNZTVMpICs9IGthbGxzeW1zLm8KIG9iai0kKENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUKSArPSBhY2N0Lm8KIG9iai0kKENPTkZJR19DUkFTSF9DT1JFKSArPSBjcmFzaF9jb3JlLm8KQEAgLTEyNyw3ICsxMjgsNyBAQAogJChvYmopL2toZWFkZXJzLm86ICQob2JqKS9raGVhZGVyc19kYXRhLnRhci54egogCiBxdWlldF9jbWRfZ2VuaWtoID0gQ0hLICAgICAkKG9iaikva2hlYWRlcnNfZGF0YS50YXIueHoKLWNtZF9nZW5pa2ggPSAkKENPTkZJR19TSEVMTCkgJChzcmN0cmVlKS9rZXJuZWwvZ2VuX2toZWFkZXJzLnNoICRACisgICAgICBjbWRfZ2VuaWtoID0gJChCQVNIKSAkKHNyY3RyZWUpL2tlcm5lbC9nZW5fa2hlYWRlcnMuc2ggJEAKICQob2JqKS9raGVhZGVyc19kYXRhLnRhci54ejogRk9SQ0UKIAkkKGNhbGwgY21kLGdlbmlraCkKIApkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9pbm9kZS5jIGIva2VybmVsL2JwZi9pbm9kZS5jCmluZGV4IGNjMGQwY2YuLmE3MGY3MjAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvaW5vZGUuYworKysgYi9rZXJuZWwvYnBmL2lub2RlLmMKQEAgLTE0LDggKzE0LDkgQEAKICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9mc19jb250ZXh0Lmg+CisjaW5jbHVkZSA8bGludXgvZnNfcGFyc2VyLmg+CiAjaW5jbHVkZSA8bGludXgva2Rldl90Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGFyc2VyLmg+CiAjaW5jbHVkZSA8bGludXgvZmlsdGVyLmg+CiAjaW5jbHVkZSA8bGludXgvYnBmLmg+CiAjaW5jbHVkZSA8bGludXgvYnBmX3RyYWNlLmg+CkBAIC01ODMsNTggKzU4NCw1MiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgYnBmX3N1cGVyX29wcyA9IHsKIAogZW51bSB7CiAJT1BUX01PREUsCi0JT1BUX0VSUiwKIH07CiAKLXN0YXRpYyBjb25zdCBtYXRjaF90YWJsZV90IGJwZl9tb3VudF90b2tlbnMgPSB7Ci0JeyBPUFRfTU9ERSwgIm1vZGU9JW8iIH0sCi0JeyBPUFRfRVJSLCBOVUxMIH0sCitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX3BhcmFtZXRlcl9zcGVjIGJwZl9wYXJhbV9zcGVjc1tdID0geworCWZzcGFyYW1fdTMyb2N0CSgibW9kZSIsCQkJT1BUX01PREUpLAorCXt9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZzX3BhcmFtZXRlcl9kZXNjcmlwdGlvbiBicGZfZnNfcGFyYW1ldGVycyA9IHsKKwkubmFtZQkJPSAiYnBmIiwKKwkuc3BlY3MJCT0gYnBmX3BhcmFtX3NwZWNzLAogfTsKIAogc3RydWN0IGJwZl9tb3VudF9vcHRzIHsKIAl1bW9kZV90IG1vZGU7CiB9OwogCi1zdGF0aWMgaW50IGJwZl9wYXJzZV9vcHRpb25zKGNoYXIgKmRhdGEsIHN0cnVjdCBicGZfbW91bnRfb3B0cyAqb3B0cykKK3N0YXRpYyBpbnQgYnBmX3BhcnNlX3BhcmFtKHN0cnVjdCBmc19jb250ZXh0ICpmYywgc3RydWN0IGZzX3BhcmFtZXRlciAqcGFyYW0pCiB7Ci0Jc3Vic3RyaW5nX3QgYXJnc1tNQVhfT1BUX0FSR1NdOwotCWludCBvcHRpb24sIHRva2VuOwotCWNoYXIgKnB0cjsKKwlzdHJ1Y3QgYnBmX21vdW50X29wdHMgKm9wdHMgPSBmYy0+ZnNfcHJpdmF0ZTsKKwlzdHJ1Y3QgZnNfcGFyc2VfcmVzdWx0IHJlc3VsdDsKKwlpbnQgb3B0OwogCi0Jb3B0cy0+bW9kZSA9IFNfSVJXWFVHTzsKLQotCXdoaWxlICgocHRyID0gc3Ryc2VwKCZkYXRhLCAiLCIpKSAhPSBOVUxMKSB7Ci0JCWlmICghKnB0cikKLQkJCWNvbnRpbnVlOwotCi0JCXRva2VuID0gbWF0Y2hfdG9rZW4ocHRyLCBicGZfbW91bnRfdG9rZW5zLCBhcmdzKTsKLQkJc3dpdGNoICh0b2tlbikgewotCQljYXNlIE9QVF9NT0RFOgotCQkJaWYgKG1hdGNoX29jdGFsKCZhcmdzWzBdLCAmb3B0aW9uKSkKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCW9wdHMtPm1vZGUgPSBvcHRpb24gJiBTX0lBTExVR087Ci0JCQlicmVhazsKKwlvcHQgPSBmc19wYXJzZShmYywgJmJwZl9mc19wYXJhbWV0ZXJzLCBwYXJhbSwgJnJlc3VsdCk7CisJaWYgKG9wdCA8IDApCiAJCS8qIFdlIG1pZ2h0IGxpa2UgdG8gcmVwb3J0IGJhZCBtb3VudCBvcHRpb25zIGhlcmUsIGJ1dAogCQkgKiB0cmFkaXRpb25hbGx5IHdlJ3ZlIGlnbm9yZWQgYWxsIG1vdW50IG9wdGlvbnMsIHNvIHdlJ2QKIAkJICogYmV0dGVyIGNvbnRpbnVlIHRvIGlnbm9yZSBub24tZXhpc3Rpbmcgb3B0aW9ucyBmb3IgYnBmLgogCQkgKi8KLQkJfQorCQlyZXR1cm4gb3B0ID09IC1FTk9QQVJBTSA/IDAgOiBvcHQ7CisKKwlzd2l0Y2ggKG9wdCkgeworCWNhc2UgT1BUX01PREU6CisJCW9wdHMtPm1vZGUgPSByZXN1bHQudWludF8zMiAmIFNfSUFMTFVHTzsKKwkJYnJlYWs7CiAJfQogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYnBmX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKK3N0YXRpYyBpbnQgYnBmX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHJlZV9kZXNjciBicGZfcmZpbGVzW10gPSB7IHsgIiIgfSB9OwotCXN0cnVjdCBicGZfbW91bnRfb3B0cyBvcHRzOworCXN0cnVjdCBicGZfbW91bnRfb3B0cyAqb3B0cyA9IGZjLT5mc19wcml2YXRlOwogCXN0cnVjdCBpbm9kZSAqaW5vZGU7CiAJaW50IHJldDsKIAotCXJldCA9IGJwZl9wYXJzZV9vcHRpb25zKGRhdGEsICZvcHRzKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCiAJcmV0ID0gc2ltcGxlX2ZpbGxfc3VwZXIoc2IsIEJQRl9GU19NQUdJQywgYnBmX3JmaWxlcyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTY0NCwyMSArNjM5LDUwIEBAIHN0YXRpYyBpbnQgYnBmX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIAlpbm9kZSA9IHNiLT5zX3Jvb3QtPmRfaW5vZGU7CiAJaW5vZGUtPmlfb3AgPSAmYnBmX2Rpcl9pb3BzOwogCWlub2RlLT5pX21vZGUgJj0gflNfSUFMTFVHTzsKLQlpbm9kZS0+aV9tb2RlIHw9IFNfSVNWVFggfCBvcHRzLm1vZGU7CisJaW5vZGUtPmlfbW9kZSB8PSBTX0lTVlRYIHwgb3B0cy0+bW9kZTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGRlbnRyeSAqYnBmX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICp0eXBlLCBpbnQgZmxhZ3MsCi0JCQkJY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGJwZl9nZXRfdHJlZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0JcmV0dXJuIG1vdW50X25vZGV2KHR5cGUsIGZsYWdzLCBkYXRhLCBicGZfZmlsbF9zdXBlcik7CisJcmV0dXJuIGdldF90cmVlX25vZGV2KGZjLCBicGZfZmlsbF9zdXBlcik7Cit9CisKK3N0YXRpYyB2b2lkIGJwZl9mcmVlX2ZjKHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlrZnJlZShmYy0+ZnNfcHJpdmF0ZSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnNfY29udGV4dF9vcGVyYXRpb25zIGJwZl9jb250ZXh0X29wcyA9IHsKKwkuZnJlZQkJPSBicGZfZnJlZV9mYywKKwkucGFyc2VfcGFyYW0JPSBicGZfcGFyc2VfcGFyYW0sCisJLmdldF90cmVlCT0gYnBmX2dldF90cmVlLAorfTsKKworLyoKKyAqIFNldCB1cCB0aGUgZmlsZXN5c3RlbSBtb3VudCBjb250ZXh0LgorICovCitzdGF0aWMgaW50IGJwZl9pbml0X2ZzX2NvbnRleHQoc3RydWN0IGZzX2NvbnRleHQgKmZjKQoreworCXN0cnVjdCBicGZfbW91bnRfb3B0cyAqb3B0czsKKworCW9wdHMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYnBmX21vdW50X29wdHMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW9wdHMpCisJCXJldHVybiAtRU5PTUVNOworCisJb3B0cy0+bW9kZSA9IFNfSVJXWFVHTzsKKworCWZjLT5mc19wcml2YXRlID0gb3B0czsKKwlmYy0+b3BzID0gJmJwZl9jb250ZXh0X29wczsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIGJwZl9mc190eXBlID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkubmFtZQkJPSAiYnBmIiwKLQkubW91bnQJCT0gYnBmX21vdW50LAorCS5pbml0X2ZzX2NvbnRleHQgPSBicGZfaW5pdF9mc19jb250ZXh0LAorCS5wYXJhbWV0ZXJzCT0gJmJwZl9mc19wYXJhbWV0ZXJzLAogCS5raWxsX3NiCT0ga2lsbF9saXR0ZXJfc3VwZXIsCiB9OwogCmRpZmYgLS1naXQgYS9rZXJuZWwvY3B1LmMgYi9rZXJuZWwvY3B1LmMKaW5kZXggZTE5NjdlOS4uZmMyOGUxNyAxMDA2NDQKLS0tIGEva2VybmVsL2NwdS5jCisrKyBiL2tlcm5lbC9jcHUuYwpAQCAtMzkyLDggKzM5Miw3IEBAIGVudW0gY3B1aHBfc210X2NvbnRyb2wgY3B1X3NtdF9jb250cm9sIF9fcmVhZF9tb3N0bHkgPSBDUFVfU01UX0VOQUJMRUQ7CiAKIHZvaWQgX19pbml0IGNwdV9zbXRfZGlzYWJsZShib29sIGZvcmNlKQogewotCWlmIChjcHVfc210X2NvbnRyb2wgPT0gQ1BVX1NNVF9GT1JDRV9ESVNBQkxFRCB8fAotCQljcHVfc210X2NvbnRyb2wgPT0gQ1BVX1NNVF9OT1RfU1VQUE9SVEVEKQorCWlmICghY3B1X3NtdF9wb3NzaWJsZSgpKQogCQlyZXR1cm47CiAKIAlpZiAoZm9yY2UpIHsKQEAgLTQzOCw2ICs0MzcsMTQgQEAgc3RhdGljIGlubGluZSBib29sIGNwdV9zbXRfYWxsb3dlZCh1bnNpZ25lZCBpbnQgY3B1KQogCSAqLwogCXJldHVybiAhY3B1bWFza190ZXN0X2NwdShjcHUsICZjcHVzX2Jvb3RlZF9vbmNlX21hc2spOwogfQorCisvKiBSZXR1cm5zIHRydWUgaWYgU01UIGlzIG5vdCBzdXBwb3J0ZWQgb2YgZm9yY2VmdWxseSAoaXJyZXZlcnNpYmx5KSBkaXNhYmxlZCAqLworYm9vbCBjcHVfc210X3Bvc3NpYmxlKHZvaWQpCit7CisJcmV0dXJuIGNwdV9zbXRfY29udHJvbCAhPSBDUFVfU01UX0ZPUkNFX0RJU0FCTEVEICYmCisJCWNwdV9zbXRfY29udHJvbCAhPSBDUFVfU01UX05PVF9TVVBQT1JURUQ7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChjcHVfc210X3Bvc3NpYmxlKTsKICNlbHNlCiBzdGF0aWMgaW5saW5lIGJvb2wgY3B1X3NtdF9hbGxvd2VkKHVuc2lnbmVkIGludCBjcHUpIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEva2VybmVsL2RlYnVnL2RlYnVnX2NvcmUuYyBiL2tlcm5lbC9kZWJ1Zy9kZWJ1Z19jb3JlLmMKaW5kZXggNWNjNjA4ZC4uZjc2ZDZmNyAxMDA2NDQKLS0tIGEva2VybmVsL2RlYnVnL2RlYnVnX2NvcmUuYworKysgYi9rZXJuZWwvZGVidWcvZGVidWdfY29yZS5jCkBAIC03ODcsMTEgKzc4Nyw4IEBAIGtnZGJfaGFuZGxlX2V4Y2VwdGlvbihpbnQgZXZlY3RvciwgaW50IHNpZ25vLCBpbnQgZWNvZGUsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogfQogCiAvKgotICogR0RCIHBsYWNlcyBhIGJyZWFrcG9pbnQgYXQgdGhpcyBmdW5jdGlvbiB0byBrbm93IGR5bmFtaWNhbGx5Ci0gKiBsb2FkZWQgb2JqZWN0cy4gSXQncyBub3QgZGVmaW5lZCBzdGF0aWMgc28gdGhhdCBvbmx5IG9uZSBpbnN0YW5jZSB3aXRoIHRoaXMKLSAqIG5hbWUgZXhpc3RzIGluIHRoZSBrZXJuZWwuCisgKiBHREIgcGxhY2VzIGEgYnJlYWtwb2ludCBhdCB0aGlzIGZ1bmN0aW9uIHRvIGtub3cgZHluYW1pY2FsbHkgbG9hZGVkIG9iamVjdHMuCiAgKi8KLQogc3RhdGljIGludCBtb2R1bGVfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLCB1bnNpZ25lZCBsb25nIHZhbCwKIAl2b2lkICpkYXRhKQogewpAQCAtODk2LDI5ICs4OTMsMjQgQEAgc3RhdGljIHN0cnVjdCBzeXNycV9rZXlfb3Agc3lzcnFfZGJnX29wID0gewogfTsKICNlbmRpZgogCi1zdGF0aWMgaW50IGtnZGJfcGFuaWNfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLAotCQkJICAgIHVuc2lnbmVkIGxvbmcgdmFsLAotCQkJICAgIHZvaWQgKmRhdGEpCit2b2lkIGtnZGJfcGFuaWMoY29uc3QgY2hhciAqbXNnKQogeworCWlmICgha2dkYl9pb19tb2R1bGVfcmVnaXN0ZXJlZCkKKwkJcmV0dXJuOworCiAJLyoKLQkgKiBBdm9pZCBlbnRlcmluZyB0aGUgZGVidWdnZXIgaWYgd2Ugd2VyZSB0cmlnZ2VyZWQgZHVlIHRvIGEgcGFuaWMKLQkgKiBXZSBkb24ndCB3YW50IHRvIGdldCBzdHVjayB3YWl0aW5nIGZvciBpbnB1dCBmcm9tIHVzZXIgaW4gc3VjaCBjYXNlLgotCSAqIHBhbmljX3RpbWVvdXQgaW5kaWNhdGVzIHRoZSBzeXN0ZW0gc2hvdWxkIGF1dG9tYXRpY2FsbHkKKwkgKiBXZSBkb24ndCB3YW50IHRvIGdldCBzdHVjayB3YWl0aW5nIGZvciBpbnB1dCBmcm9tIHVzZXIgaWYKKwkgKiAicGFuaWNfdGltZW91dCIgaW5kaWNhdGVzIHRoZSBzeXN0ZW0gc2hvdWxkIGF1dG9tYXRpY2FsbHkKIAkgKiByZWJvb3Qgb24gcGFuaWMuCiAJICovCiAJaWYgKHBhbmljX3RpbWVvdXQpCi0JCXJldHVybiBOT1RJRllfRE9ORTsKKwkJcmV0dXJuOwogCiAJaWYgKGRiZ19rZGJfbW9kZSkKLQkJa2RiX3ByaW50ZigiUEFOSUM6ICVzXG4iLCAoY2hhciAqKWRhdGEpOwotCWtnZGJfYnJlYWtwb2ludCgpOwotCXJldHVybiBOT1RJRllfRE9ORTsKLX0KKwkJa2RiX3ByaW50ZigiUEFOSUM6ICVzXG4iLCBtc2cpOwogCi1zdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGtnZGJfcGFuaWNfZXZlbnRfbmIgPSB7Ci0gICAgICAgLm5vdGlmaWVyX2NhbGwJPSBrZ2RiX3BhbmljX2V2ZW50LAotICAgICAgIC5wcmlvcml0eQk9IElOVF9NQVgsCi19OworCWtnZGJfYnJlYWtwb2ludCgpOworfQogCiB2b2lkIF9fd2VhayBrZ2RiX2FyY2hfbGF0ZSh2b2lkKQogewpAQCAtOTY4LDggKzk2MCw2IEBAIHN0YXRpYyB2b2lkIGtnZGJfcmVnaXN0ZXJfY2FsbGJhY2tzKHZvaWQpCiAJCQlrZ2RiX2FyY2hfbGF0ZSgpOwogCQlyZWdpc3Rlcl9tb2R1bGVfbm90aWZpZXIoJmRiZ19tb2R1bGVfbG9hZF9uYik7CiAJCXJlZ2lzdGVyX3JlYm9vdF9ub3RpZmllcigmZGJnX3JlYm9vdF9ub3RpZmllcik7Ci0JCWF0b21pY19ub3RpZmllcl9jaGFpbl9yZWdpc3RlcigmcGFuaWNfbm90aWZpZXJfbGlzdCwKLQkJCQkJICAgICAgICZrZ2RiX3BhbmljX2V2ZW50X25iKTsKICNpZmRlZiBDT05GSUdfTUFHSUNfU1lTUlEKIAkJcmVnaXN0ZXJfc3lzcnFfa2V5KCdnJywgJnN5c3JxX2RiZ19vcCk7CiAjZW5kaWYKQEAgLTk4MywxNiArOTczLDE0IEBAIHN0YXRpYyB2b2lkIGtnZGJfcmVnaXN0ZXJfY2FsbGJhY2tzKHZvaWQpCiBzdGF0aWMgdm9pZCBrZ2RiX3VucmVnaXN0ZXJfY2FsbGJhY2tzKHZvaWQpCiB7CiAJLyoKLQkgKiBXaGVuIHRoaXMgcm91dGluZSBpcyBjYWxsZWQgS0dEQiBzaG91bGQgdW5yZWdpc3RlciBmcm9tIHRoZQotCSAqIHBhbmljIGhhbmRsZXIgYW5kIGNsZWFuIHVwLCBtYWtpbmcgc3VyZSBpdCBpcyBub3QgaGFuZGxpbmcgYW55CisJICogV2hlbiB0aGlzIHJvdXRpbmUgaXMgY2FsbGVkIEtHREIgc2hvdWxkIHVucmVnaXN0ZXIgZnJvbQorCSAqIGhhbmRsZXJzIGFuZCBjbGVhbiB1cCwgbWFraW5nIHN1cmUgaXQgaXMgbm90IGhhbmRsaW5nIGFueQogCSAqIGJyZWFrIGV4Y2VwdGlvbnMgYXQgdGhlIHRpbWUuCiAJICovCiAJaWYgKGtnZGJfaW9fbW9kdWxlX3JlZ2lzdGVyZWQpIHsKIAkJa2dkYl9pb19tb2R1bGVfcmVnaXN0ZXJlZCA9IDA7CiAJCXVucmVnaXN0ZXJfcmVib290X25vdGlmaWVyKCZkYmdfcmVib290X25vdGlmaWVyKTsKIAkJdW5yZWdpc3Rlcl9tb2R1bGVfbm90aWZpZXIoJmRiZ19tb2R1bGVfbG9hZF9uYik7Ci0JCWF0b21pY19ub3RpZmllcl9jaGFpbl91bnJlZ2lzdGVyKCZwYW5pY19ub3RpZmllcl9saXN0LAotCQkJCQkgICAgICAgJmtnZGJfcGFuaWNfZXZlbnRfbmIpOwogCQlrZ2RiX2FyY2hfZXhpdCgpOwogI2lmZGVmIENPTkZJR19NQUdJQ19TWVNSUQogCQl1bnJlZ2lzdGVyX3N5c3JxX2tleSgnZycsICZzeXNycV9kYmdfb3ApOwpkaWZmIC0tZ2l0IGEva2VybmVsL2RlYnVnL2tkYi9rZGJfbWFpbi5jIGIva2VybmVsL2RlYnVnL2tkYi9rZGJfbWFpbi5jCmluZGV4IDllY2ZhMzcuLjQ1NjdmZTkgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9kZWJ1Zy9rZGIva2RiX21haW4uYworKysgYi9rZXJuZWwvZGVidWcva2RiL2tkYl9tYWluLmMKQEAgLTgzMCw3ICs4MzAsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9ncmVwKGNvbnN0IGNoYXIgKnN0cikKIAljcCsrOwogCXdoaWxlIChpc3NwYWNlKCpjcCkpCiAJCWNwKys7Ci0JaWYgKHN0cm5jbXAoY3AsICJncmVwICIsIDUpKSB7CisJaWYgKCFzdHJfaGFzX3ByZWZpeChjcCwgImdyZXAgIikpIHsKIAkJa2RiX3ByaW50ZigiaW52YWxpZCAncGlwZScsIHNlZSBncmVwaGVscFxuIik7CiAJCXJldHVybjsKIAl9CmRpZmYgLS1naXQgYS9rZXJuZWwvZG1hL0tjb25maWcgYi9rZXJuZWwvZG1hL0tjb25maWcKaW5kZXggOWRlY2JiYS4uNzNjNWMyYjggMTAwNjQ0Ci0tLSBhL2tlcm5lbC9kbWEvS2NvbmZpZworKysgYi9rZXJuZWwvZG1hL0tjb25maWcKQEAgLTIwLDYgKzIwLDE1IEBACiBjb25maWcgQVJDSF9IQVNfRE1BX1NFVF9NQVNLCiAJYm9vbAogCisjCisjIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB0aGUgYXJjaGl0ZWN0dXJlIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcgZm9yCisjIERNQV9BVFRSX1dSSVRFX0NPTUJJTkUuICBOb3JtYWxseSB0aGUgInVuY2FjaGVkIiBtYXBwaW5nIHNob3VsZCBiZSB3aGF0CisjIHBlb3BsZSB0aGluZyBvZiB3aGVuIHNheWluZyB3cml0ZSBjb21iaW5lLCBzbyB2ZXJ5IGZldyBwbGF0Zm9ybXMgc2hvdWxkCisjIG5lZWQgdG8gZW5hYmxlIHRoaXMuCisjCitjb25maWcgQVJDSF9IQVNfRE1BX1dSSVRFX0NPTUJJTkUKKwlib29sCisKIGNvbmZpZyBETUFfREVDTEFSRV9DT0hFUkVOVAogCWJvb2wKIApAQCAtNDUsOSArNTQsNiBAQAogY29uZmlnIEFSQ0hfSEFTX0RNQV9DT0hFUkVOVF9UT19QRk4KIAlib29sCiAKLWNvbmZpZyBBUkNIX0hBU19ETUFfTU1BUF9QR1BST1QKLQlib29sCi0KIGNvbmZpZyBBUkNIX0hBU19GT1JDRV9ETUFfVU5FTkNSWVBURUQKIAlib29sCiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9kbWEvY29oZXJlbnQuYyBiL2tlcm5lbC9kbWEvY29oZXJlbnQuYwppbmRleCAyOWZkNjU5Li41NDVlMzg2IDEwMDY0NAotLS0gYS9rZXJuZWwvZG1hL2NvaGVyZW50LmMKKysrIGIva2VybmVsL2RtYS9jb2hlcmVudC5jCkBAIC0xMjIsMTggKzEyMiw2IEBAIGludCBkbWFfZGVjbGFyZV9jb2hlcmVudF9tZW1vcnkoc3RydWN0IGRldmljZSAqZGV2LCBwaHlzX2FkZHJfdCBwaHlzX2FkZHIsCiAJCWRtYV9yZWxlYXNlX2NvaGVyZW50X21lbW9yeShtZW0pOwogCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKGRtYV9kZWNsYXJlX2NvaGVyZW50X21lbW9yeSk7Ci0KLXZvaWQgZG1hX3JlbGVhc2VfZGVjbGFyZWRfbWVtb3J5KHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgZG1hX2NvaGVyZW50X21lbSAqbWVtID0gZGV2LT5kbWFfbWVtOwotCi0JaWYgKCFtZW0pCi0JCXJldHVybjsKLQlkbWFfcmVsZWFzZV9jb2hlcmVudF9tZW1vcnkobWVtKTsKLQlkZXYtPmRtYV9tZW0gPSBOVUxMOwotfQotRVhQT1JUX1NZTUJPTChkbWFfcmVsZWFzZV9kZWNsYXJlZF9tZW1vcnkpOwogCiBzdGF0aWMgdm9pZCAqX19kbWFfYWxsb2NfZnJvbV9jb2hlcmVudChzdHJ1Y3QgZG1hX2NvaGVyZW50X21lbSAqbWVtLAogCQlzc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUpCkBAIC0yODgsNyArMjc2LDYgQEAgaW50IGRtYV9tbWFwX2Zyb21fZGV2X2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAKIAlyZXR1cm4gX19kbWFfbW1hcF9mcm9tX2NvaGVyZW50KG1lbSwgdm1hLCB2YWRkciwgc2l6ZSwgcmV0KTsKIH0KLUVYUE9SVF9TWU1CT0woZG1hX21tYXBfZnJvbV9kZXZfY29oZXJlbnQpOwogCiBpbnQgZG1hX21tYXBfZnJvbV9nbG9iYWxfY29oZXJlbnQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHZvaWQgKnZhZGRyLAogCQkJCSAgIHNpemVfdCBzaXplLCBpbnQgKnJldCkKZGlmZiAtLWdpdCBhL2tlcm5lbC9kbWEvbWFwcGluZy5jIGIva2VybmVsL2RtYS9tYXBwaW5nLmMKaW5kZXggYjAwMzhjYS4uZDkzMzRmMyAxMDA2NDQKLS0tIGEva2VybmVsL2RtYS9tYXBwaW5nLmMKKysrIGIva2VybmVsL2RtYS9tYXBwaW5nLmMKQEAgLTEzNiwxNyArMTM2LDI5IEBAIGludCBkbWFfY29tbW9uX2dldF9zZ3RhYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNnX3RhYmxlICpzZ3QsCiAJcmV0dXJuIHJldDsKIH0KIAorLyoKKyAqIFRoZSB3aG9sZSBkbWFfZ2V0X3NndGFibGUoKSBpZGVhIGlzIGZ1bmRhbWVudGFsbHkgdW5zYWZlIC0gaXQgc2VlbXMKKyAqIHRoYXQgdGhlIGludGVudGlvbiBpcyB0byBhbGxvdyBleHBvcnRpbmcgbWVtb3J5IGFsbG9jYXRlZCB2aWEgdGhlCisgKiBjb2hlcmVudCBETUEgQVBJcyB0aHJvdWdoIHRoZSBkbWFfYnVmIEFQSSwgd2hpY2ggb25seSBhY2NlcHRzIGEKKyAqIHNjYXR0ZXJ0YWJsZS4gIFRoaXMgcHJlc2VudHMgYSBjb3VwbGUgb2YgcHJvYmxlbXM6CisgKiAxLiBOb3QgYWxsIG1lbW9yeSBhbGxvY2F0ZWQgdmlhIHRoZSBjb2hlcmVudCBETUEgQVBJcyBpcyBiYWNrZWQgYnkKKyAqICAgIGEgc3RydWN0IHBhZ2UKKyAqIDIuIFBhc3NpbmcgY29oZXJlbnQgRE1BIG1lbW9yeSBpbnRvIHRoZSBzdHJlYW1pbmcgQVBJcyBpcyBub3QgYWxsb3dlZAorICogICAgYXMgd2Ugd2lsbCB0cnkgdG8gZmx1c2ggdGhlIG1lbW9yeSB0aHJvdWdoIGEgZGlmZmVyZW50IGFsaWFzIHRvIHRoYXQKKyAqICAgIGFjdHVhbGx5IGJlaW5nIHVzZWQgKGFuZCB0aGUgZmx1c2hlcyBhcmUgcmVkdW5kYW50LikKKyAqLwogaW50IGRtYV9nZXRfc2d0YWJsZV9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzZ190YWJsZSAqc2d0LAogCQl2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfYWRkciwgc2l6ZV90IHNpemUsCiAJCXVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICpvcHMgPSBnZXRfZG1hX29wcyhkZXYpOwogCi0JaWYgKCFkbWFfaXNfZGlyZWN0KG9wcykgJiYgb3BzLT5nZXRfc2d0YWJsZSkKLQkJcmV0dXJuIG9wcy0+Z2V0X3NndGFibGUoZGV2LCBzZ3QsIGNwdV9hZGRyLCBkbWFfYWRkciwgc2l6ZSwKLQkJCQkJYXR0cnMpOwotCXJldHVybiBkbWFfY29tbW9uX2dldF9zZ3RhYmxlKGRldiwgc2d0LCBjcHVfYWRkciwgZG1hX2FkZHIsIHNpemUsCi0JCQlhdHRycyk7CisJaWYgKGRtYV9pc19kaXJlY3Qob3BzKSkKKwkJcmV0dXJuIGRtYV9jb21tb25fZ2V0X3NndGFibGUoZGV2LCBzZ3QsIGNwdV9hZGRyLCBkbWFfYWRkciwKKwkJCQlzaXplLCBhdHRycyk7CisJaWYgKCFvcHMtPmdldF9zZ3RhYmxlKQorCQlyZXR1cm4gLUVOWElPOworCXJldHVybiBvcHMtPmdldF9zZ3RhYmxlKGRldiwgc2d0LCBjcHVfYWRkciwgZG1hX2FkZHIsIHNpemUsIGF0dHJzKTsKIH0KIEVYUE9SVF9TWU1CT0woZG1hX2dldF9zZ3RhYmxlX2F0dHJzKTsKIApAQCAtMTYxLDkgKzE3MywxMSBAQCBwZ3Byb3RfdCBkbWFfcGdwcm90KHN0cnVjdCBkZXZpY2UgKmRldiwgcGdwcm90X3QgcHJvdCwgdW5zaWduZWQgbG9uZyBhdHRycykKIAkgICAgKElTX0VOQUJMRUQoQ09ORklHX0RNQV9OT05DT0hFUkVOVF9DQUNIRV9TWU5DKSAmJgogICAgICAgICAgICAgIChhdHRycyAmIERNQV9BVFRSX05PTl9DT05TSVNURU5UKSkpCiAJCXJldHVybiBwcm90OwotCWlmIChJU19FTkFCTEVEKENPTkZJR19BUkNIX0hBU19ETUFfTU1BUF9QR1BST1QpKQotCQlyZXR1cm4gYXJjaF9kbWFfbW1hcF9wZ3Byb3QoZGV2LCBwcm90LCBhdHRycyk7Ci0JcmV0dXJuIHBncHJvdF9ub25jYWNoZWQocHJvdCk7CisjaWZkZWYgQ09ORklHX0FSQ0hfSEFTX0RNQV9XUklURV9DT01CSU5FCisJaWYgKGF0dHJzICYgRE1BX0FUVFJfV1JJVEVfQ09NQklORSkKKwkJcmV0dXJuIHBncHJvdF93cml0ZWNvbWJpbmUocHJvdCk7CisjZW5kaWYKKwlyZXR1cm4gcGdwcm90X2RtYWNvaGVyZW50KHByb3QpOwogfQogI2VuZGlmIC8qIENPTkZJR19NTVUgKi8KIApAQCAtMTc0LDcgKzE4OCw3IEBAIGludCBkbWFfY29tbW9uX21tYXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHNpemVfdCBzaXplLAogCQl1bnNpZ25lZCBsb25nIGF0dHJzKQogewotI2lmbmRlZiBDT05GSUdfQVJDSF9OT19DT0hFUkVOVF9ETUFfTU1BUAorI2lmZGVmIENPTkZJR19NTVUKIAl1bnNpZ25lZCBsb25nIHVzZXJfY291bnQgPSB2bWFfcGFnZXModm1hKTsKIAl1bnNpZ25lZCBsb25nIGNvdW50ID0gUEFHRV9BTElHTihzaXplKSA+PiBQQUdFX1NISUZUOwogCXVuc2lnbmVkIGxvbmcgb2ZmID0gdm1hLT52bV9wZ29mZjsKQEAgLTIwNSwxMCArMjE5LDMxIEBAIGludCBkbWFfY29tbW9uX21tYXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCXVzZXJfY291bnQgPDwgUEFHRV9TSElGVCwgdm1hLT52bV9wYWdlX3Byb3QpOwogI2Vsc2UKIAlyZXR1cm4gLUVOWElPOwotI2VuZGlmIC8qICFDT05GSUdfQVJDSF9OT19DT0hFUkVOVF9ETUFfTU1BUCAqLworI2VuZGlmIC8qIENPTkZJR19NTVUgKi8KIH0KIAogLyoqCisgKiBkbWFfY2FuX21tYXAgLSBjaGVjayBpZiBhIGdpdmVuIGRldmljZSBzdXBwb3J0cyBkbWFfbW1hcF8qCisgKiBAZGV2OiBkZXZpY2UgdG8gY2hlY2sKKyAqCisgKiBSZXR1cm5zICV0cnVlIGlmIEBkZXYgc3VwcG9ydHMgZG1hX21tYXBfY29oZXJlbnQoKSBhbmQgZG1hX21tYXBfYXR0cnMoKSB0bworICogbWFwIERNQSBhbGxvY2F0aW9ucyB0byB1c2Vyc3BhY2UuCisgKi8KK2Jvb2wgZG1hX2Nhbl9tbWFwKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwljb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgKm9wcyA9IGdldF9kbWFfb3BzKGRldik7CisKKwlpZiAoZG1hX2lzX2RpcmVjdChvcHMpKSB7CisJCXJldHVybiBJU19FTkFCTEVEKENPTkZJR19NTVUpICYmCisJCSAgICAgICAoZGV2X2lzX2RtYV9jb2hlcmVudChkZXYpIHx8CisJCQlJU19FTkFCTEVEKENPTkZJR19BUkNIX0hBU19ETUFfQ09IRVJFTlRfVE9fUEZOKSk7CisJfQorCisJcmV0dXJuIG9wcy0+bW1hcCAhPSBOVUxMOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZG1hX2Nhbl9tbWFwKTsKKworLyoqCiAgKiBkbWFfbW1hcF9hdHRycyAtIG1hcCBhIGNvaGVyZW50IERNQSBhbGxvY2F0aW9uIGludG8gdXNlciBzcGFjZQogICogQGRldjogdmFsaWQgc3RydWN0IGRldmljZSBwb2ludGVyLCBvciBOVUxMIGZvciBJU0EgYW5kIEVJU0EtbGlrZSBkZXZpY2VzCiAgKiBAdm1hOiB2bV9hcmVhX3N0cnVjdCBkZXNjcmliaW5nIHJlcXVlc3RlZCB1c2VyIG1hcHBpbmcKQEAgLTIyNywzMSArMjYyLDE1IEBAIGludCBkbWFfbW1hcF9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogewogCWNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyAqb3BzID0gZ2V0X2RtYV9vcHMoZGV2KTsKIAotCWlmICghZG1hX2lzX2RpcmVjdChvcHMpICYmIG9wcy0+bW1hcCkKLQkJcmV0dXJuIG9wcy0+bW1hcChkZXYsIHZtYSwgY3B1X2FkZHIsIGRtYV9hZGRyLCBzaXplLCBhdHRycyk7Ci0JcmV0dXJuIGRtYV9jb21tb25fbW1hcChkZXYsIHZtYSwgY3B1X2FkZHIsIGRtYV9hZGRyLCBzaXplLCBhdHRycyk7CisJaWYgKGRtYV9pc19kaXJlY3Qob3BzKSkKKwkJcmV0dXJuIGRtYV9jb21tb25fbW1hcChkZXYsIHZtYSwgY3B1X2FkZHIsIGRtYV9hZGRyLCBzaXplLAorCQkJCWF0dHJzKTsKKwlpZiAoIW9wcy0+bW1hcCkKKwkJcmV0dXJuIC1FTlhJTzsKKwlyZXR1cm4gb3BzLT5tbWFwKGRldiwgdm1hLCBjcHVfYWRkciwgZG1hX2FkZHIsIHNpemUsIGF0dHJzKTsKIH0KIEVYUE9SVF9TWU1CT0woZG1hX21tYXBfYXR0cnMpOwogCi1zdGF0aWMgdTY0IGRtYV9kZWZhdWx0X2dldF9yZXF1aXJlZF9tYXNrKHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQl1MzIgbG93X3RvdGFscmFtID0gKChtYXhfcGZuIC0gMSkgPDwgUEFHRV9TSElGVCk7Ci0JdTMyIGhpZ2hfdG90YWxyYW0gPSAoKG1heF9wZm4gLSAxKSA+PiAoMzIgLSBQQUdFX1NISUZUKSk7Ci0JdTY0IG1hc2s7Ci0KLQlpZiAoIWhpZ2hfdG90YWxyYW0pIHsKLQkJLyogY29udmVydCB0byBtYXNrIGp1c3QgY292ZXJpbmcgdG90YWxyYW0gKi8KLQkJbG93X3RvdGFscmFtID0gKDEgPDwgKGZscyhsb3dfdG90YWxyYW0pIC0gMSkpOwotCQlsb3dfdG90YWxyYW0gKz0gbG93X3RvdGFscmFtIC0gMTsKLQkJbWFzayA9IGxvd190b3RhbHJhbTsKLQl9IGVsc2UgewotCQloaWdoX3RvdGFscmFtID0gKDEgPDwgKGZscyhoaWdoX3RvdGFscmFtKSAtIDEpKTsKLQkJaGlnaF90b3RhbHJhbSArPSBoaWdoX3RvdGFscmFtIC0gMTsKLQkJbWFzayA9ICgoKHU2NCloaWdoX3RvdGFscmFtKSA8PCAzMikgKyAweGZmZmZmZmZmOwotCX0KLQlyZXR1cm4gbWFzazsKLX0KLQogdTY0IGRtYV9nZXRfcmVxdWlyZWRfbWFzayhzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICpvcHMgPSBnZXRfZG1hX29wcyhkZXYpOwpAQCAtMjYwLDcgKzI3OSwxNiBAQCB1NjQgZG1hX2dldF9yZXF1aXJlZF9tYXNrKHN0cnVjdCBkZXZpY2UgKmRldikKIAkJcmV0dXJuIGRtYV9kaXJlY3RfZ2V0X3JlcXVpcmVkX21hc2soZGV2KTsKIAlpZiAob3BzLT5nZXRfcmVxdWlyZWRfbWFzaykKIAkJcmV0dXJuIG9wcy0+Z2V0X3JlcXVpcmVkX21hc2soZGV2KTsKLQlyZXR1cm4gZG1hX2RlZmF1bHRfZ2V0X3JlcXVpcmVkX21hc2soZGV2KTsKKworCS8qCisJICogV2UgcmVxdWlyZSBldmVyeSBETUEgb3BzIGltcGxlbWVudGF0aW9uIHRvIGF0IGxlYXN0IHN1cHBvcnQgYSAzMi1iaXQKKwkgKiBETUEgbWFzayAoYW5kIHVzZSBib3VuY2UgYnVmZmVyaW5nIGlmIHRoYXQgaXNuJ3Qgc3VwcG9ydGVkIGluCisJICogaGFyZHdhcmUpLiAgQXMgdGhlIGRpcmVjdCBtYXBwaW5nIGNvZGUgaGFzIGl0cyBvd24gcm91dGluZSB0bworCSAqIGFjdHVhbGx5IHJlcG9ydCBhbiBvcHRpbWFsIG1hc2sgd2UgZGVmYXVsdCB0byAzMi1iaXQgaGVyZSBhcyB0aGF0CisJICogaXMgdGhlIHJpZ2h0IHRoaW5nIGZvciBtb3N0IElPTU1VcywgYW5kIGF0IGxlYXN0IG5vdCBhY3RpdmVseQorCSAqIGhhcm1mdWwgaW4gZ2VuZXJhbC4KKwkgKi8KKwlyZXR1cm4gRE1BX0JJVF9NQVNLKDMyKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGRtYV9nZXRfcmVxdWlyZWRfbWFzayk7CiAKQEAgLTMxNywxMiArMzQ1LDYgQEAgdm9pZCBkbWFfZnJlZV9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCB2b2lkICpjcHVfYWRkciwKIH0KIEVYUE9SVF9TWU1CT0woZG1hX2ZyZWVfYXR0cnMpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgZG1hX2NoZWNrX21hc2soc3RydWN0IGRldmljZSAqZGV2LCB1NjQgbWFzaykKLXsKLQlpZiAoc21lX2FjdGl2ZSgpICYmIChtYXNrIDwgKCgodTY0KXNtZV9nZXRfbWVfbWFzaygpIDw8IDEpIC0gMSkpKQotCQlkZXZfd2FybihkZXYsICJTTUUgaXMgYWN0aXZlLCBkZXZpY2Ugd2lsbCByZXF1aXJlIERNQSBib3VuY2UgYnVmZmVyc1xuIik7Ci19Ci0KIGludCBkbWFfc3VwcG9ydGVkKHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IG1hc2spCiB7CiAJY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICpvcHMgPSBnZXRfZG1hX29wcyhkZXYpOwpAQCAtMzUzLDcgKzM3NSw2IEBAIGludCBkbWFfc2V0X21hc2soc3RydWN0IGRldmljZSAqZGV2LCB1NjQgbWFzaykKIAkJcmV0dXJuIC1FSU87CiAKIAlhcmNoX2RtYV9zZXRfbWFzayhkZXYsIG1hc2spOwotCWRtYV9jaGVja19tYXNrKGRldiwgbWFzayk7CiAJKmRldi0+ZG1hX21hc2sgPSBtYXNrOwogCXJldHVybiAwOwogfQpAQCAtMzcxLDcgKzM5Miw2IEBAIGludCBkbWFfc2V0X2NvaGVyZW50X21hc2soc3RydWN0IGRldmljZSAqZGV2LCB1NjQgbWFzaykKIAlpZiAoIWRtYV9zdXBwb3J0ZWQoZGV2LCBtYXNrKSkKIAkJcmV0dXJuIC1FSU87CiAKLQlkbWFfY2hlY2tfbWFzayhkZXYsIG1hc2spOwogCWRldi0+Y29oZXJlbnRfZG1hX21hc2sgPSBtYXNrOwogCXJldHVybiAwOwogfQpAQCAtNDA1LDMgKzQyNSwxNCBAQCBzaXplX3QgZG1hX21heF9tYXBwaW5nX3NpemUoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBzaXplOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZG1hX21heF9tYXBwaW5nX3NpemUpOworCit1bnNpZ25lZCBsb25nIGRtYV9nZXRfbWVyZ2VfYm91bmRhcnkoc3RydWN0IGRldmljZSAqZGV2KQoreworCWNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyAqb3BzID0gZ2V0X2RtYV9vcHMoZGV2KTsKKworCWlmICghb3BzIHx8ICFvcHMtPmdldF9tZXJnZV9ib3VuZGFyeSkKKwkJcmV0dXJuIDA7CS8qIGNhbid0IG1lcmdlICovCisKKwlyZXR1cm4gb3BzLT5nZXRfbWVyZ2VfYm91bmRhcnkoZGV2KTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGRtYV9nZXRfbWVyZ2VfYm91bmRhcnkpOwpkaWZmIC0tZ2l0IGEva2VybmVsL2RtYS9yZW1hcC5jIGIva2VybmVsL2RtYS9yZW1hcC5jCmluZGV4IGZmZTc4ZjAuLmNhNGU1ZDQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9kbWEvcmVtYXAuYworKysgYi9rZXJuZWwvZG1hL3JlbWFwLmMKQEAgLTExLDEzICsxMSwyMSBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAKK3N0cnVjdCBwYWdlICoqZG1hX2NvbW1vbl9maW5kX3BhZ2VzKHZvaWQgKmNwdV9hZGRyKQoreworCXN0cnVjdCB2bV9zdHJ1Y3QgKmFyZWEgPSBmaW5kX3ZtX2FyZWEoY3B1X2FkZHIpOworCisJaWYgKCFhcmVhIHx8IGFyZWEtPmZsYWdzICE9IFZNX0RNQV9DT0hFUkVOVCkKKwkJcmV0dXJuIE5VTEw7CisJcmV0dXJuIGFyZWEtPnBhZ2VzOworfQorCiBzdGF0aWMgc3RydWN0IHZtX3N0cnVjdCAqX19kbWFfY29tbW9uX3BhZ2VzX3JlbWFwKHN0cnVjdCBwYWdlICoqcGFnZXMsCi0JCQlzaXplX3Qgc2l6ZSwgdW5zaWduZWQgbG9uZyB2bV9mbGFncywgcGdwcm90X3QgcHJvdCwKLQkJCWNvbnN0IHZvaWQgKmNhbGxlcikKKwkJCXNpemVfdCBzaXplLCBwZ3Byb3RfdCBwcm90LCBjb25zdCB2b2lkICpjYWxsZXIpCiB7CiAJc3RydWN0IHZtX3N0cnVjdCAqYXJlYTsKIAotCWFyZWEgPSBnZXRfdm1fYXJlYV9jYWxsZXIoc2l6ZSwgdm1fZmxhZ3MsIGNhbGxlcik7CisJYXJlYSA9IGdldF92bV9hcmVhX2NhbGxlcihzaXplLCBWTV9ETUFfQ09IRVJFTlQsIGNhbGxlcik7CiAJaWYgKCFhcmVhKQogCQlyZXR1cm4gTlVMTDsKIApAQCAtMzQsMTIgKzQyLDExIEBAIHN0YXRpYyBzdHJ1Y3Qgdm1fc3RydWN0ICpfX2RtYV9jb21tb25fcGFnZXNfcmVtYXAoc3RydWN0IHBhZ2UgKipwYWdlcywKICAqIENhbm5vdCBiZSB1c2VkIGluIG5vbi1zbGVlcGluZyBjb250ZXh0cwogICovCiB2b2lkICpkbWFfY29tbW9uX3BhZ2VzX3JlbWFwKHN0cnVjdCBwYWdlICoqcGFnZXMsIHNpemVfdCBzaXplLAotCQkJdW5zaWduZWQgbG9uZyB2bV9mbGFncywgcGdwcm90X3QgcHJvdCwKLQkJCWNvbnN0IHZvaWQgKmNhbGxlcikKKwkJCSBwZ3Byb3RfdCBwcm90LCBjb25zdCB2b2lkICpjYWxsZXIpCiB7CiAJc3RydWN0IHZtX3N0cnVjdCAqYXJlYTsKIAotCWFyZWEgPSBfX2RtYV9jb21tb25fcGFnZXNfcmVtYXAocGFnZXMsIHNpemUsIHZtX2ZsYWdzLCBwcm90LCBjYWxsZXIpOworCWFyZWEgPSBfX2RtYV9jb21tb25fcGFnZXNfcmVtYXAocGFnZXMsIHNpemUsIHByb3QsIGNhbGxlcik7CiAJaWYgKCFhcmVhKQogCQlyZXR1cm4gTlVMTDsKIApAQCAtNTMsNyArNjAsNiBAQCB2b2lkICpkbWFfY29tbW9uX3BhZ2VzX3JlbWFwKHN0cnVjdCBwYWdlICoqcGFnZXMsIHNpemVfdCBzaXplLAogICogQ2Fubm90IGJlIHVzZWQgaW4gbm9uLXNsZWVwaW5nIGNvbnRleHRzCiAgKi8KIHZvaWQgKmRtYV9jb21tb25fY29udGlndW91c19yZW1hcChzdHJ1Y3QgcGFnZSAqcGFnZSwgc2l6ZV90IHNpemUsCi0JCQl1bnNpZ25lZCBsb25nIHZtX2ZsYWdzLAogCQkJcGdwcm90X3QgcHJvdCwgY29uc3Qgdm9pZCAqY2FsbGVyKQogewogCWludCBpOwpAQCAtNjcsNyArNzMsNyBAQCB2b2lkICpkbWFfY29tbW9uX2NvbnRpZ3VvdXNfcmVtYXAoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBzaXplLAogCWZvciAoaSA9IDA7IGkgPCAoc2l6ZSA+PiBQQUdFX1NISUZUKTsgaSsrKQogCQlwYWdlc1tpXSA9IG50aF9wYWdlKHBhZ2UsIGkpOwogCi0JYXJlYSA9IF9fZG1hX2NvbW1vbl9wYWdlc19yZW1hcChwYWdlcywgc2l6ZSwgdm1fZmxhZ3MsIHByb3QsIGNhbGxlcik7CisJYXJlYSA9IF9fZG1hX2NvbW1vbl9wYWdlc19yZW1hcChwYWdlcywgc2l6ZSwgcHJvdCwgY2FsbGVyKTsKIAogCWtmcmVlKHBhZ2VzKTsKIApAQCAtNzksMTEgKzg1LDExIEBAIHZvaWQgKmRtYV9jb21tb25fY29udGlndW91c19yZW1hcChzdHJ1Y3QgcGFnZSAqcGFnZSwgc2l6ZV90IHNpemUsCiAvKgogICogVW5tYXBzIGEgcmFuZ2UgcHJldmlvdXNseSBtYXBwZWQgYnkgZG1hX2NvbW1vbl8qX3JlbWFwCiAgKi8KLXZvaWQgZG1hX2NvbW1vbl9mcmVlX3JlbWFwKHZvaWQgKmNwdV9hZGRyLCBzaXplX3Qgc2l6ZSwgdW5zaWduZWQgbG9uZyB2bV9mbGFncykKK3ZvaWQgZG1hX2NvbW1vbl9mcmVlX3JlbWFwKHZvaWQgKmNwdV9hZGRyLCBzaXplX3Qgc2l6ZSkKIHsKLQlzdHJ1Y3Qgdm1fc3RydWN0ICphcmVhID0gZmluZF92bV9hcmVhKGNwdV9hZGRyKTsKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2VzID0gZG1hX2NvbW1vbl9maW5kX3BhZ2VzKGNwdV9hZGRyKTsKIAotCWlmICghYXJlYSB8fCAoYXJlYS0+ZmxhZ3MgJiB2bV9mbGFncykgIT0gdm1fZmxhZ3MpIHsKKwlpZiAoIXBhZ2VzKSB7CiAJCVdBUk4oMSwgInRyeWluZyB0byBmcmVlIGludmFsaWQgY29oZXJlbnQgYXJlYTogJXBcbiIsIGNwdV9hZGRyKTsKIAkJcmV0dXJuOwogCX0KQEAgLTEwNSw3ICsxMTEsMTYgQEAgc3RhdGljIGludCBfX2luaXQgZWFybHlfY29oZXJlbnRfcG9vbChjaGFyICpwKQogfQogZWFybHlfcGFyYW0oImNvaGVyZW50X3Bvb2wiLCBlYXJseV9jb2hlcmVudF9wb29sKTsKIAotaW50IF9faW5pdCBkbWFfYXRvbWljX3Bvb2xfaW5pdChnZnBfdCBnZnAsIHBncHJvdF90IHByb3QpCitzdGF0aWMgZ2ZwX3QgZG1hX2F0b21pY19wb29sX2dmcCh2b2lkKQoreworCWlmIChJU19FTkFCTEVEKENPTkZJR19aT05FX0RNQSkpCisJCXJldHVybiBHRlBfRE1BOworCWlmIChJU19FTkFCTEVEKENPTkZJR19aT05FX0RNQTMyKSkKKwkJcmV0dXJuIEdGUF9ETUEzMjsKKwlyZXR1cm4gR0ZQX0tFUk5FTDsKK30KKworc3RhdGljIGludCBfX2luaXQgZG1hX2F0b21pY19wb29sX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgcG9vbF9zaXplX29yZGVyID0gZ2V0X29yZGVyKGF0b21pY19wb29sX3NpemUpOwogCXVuc2lnbmVkIGxvbmcgbnJfcGFnZXMgPSBhdG9taWNfcG9vbF9zaXplID4+IFBBR0VfU0hJRlQ7CkBAIC0xMTcsNyArMTMyLDcgQEAgaW50IF9faW5pdCBkbWFfYXRvbWljX3Bvb2xfaW5pdChnZnBfdCBnZnAsIHBncHJvdF90IHByb3QpCiAJCXBhZ2UgPSBkbWFfYWxsb2NfZnJvbV9jb250aWd1b3VzKE5VTEwsIG5yX3BhZ2VzLAogCQkJCQkJIHBvb2xfc2l6ZV9vcmRlciwgZmFsc2UpOwogCWVsc2UKLQkJcGFnZSA9IGFsbG9jX3BhZ2VzKGdmcCwgcG9vbF9zaXplX29yZGVyKTsKKwkJcGFnZSA9IGFsbG9jX3BhZ2VzKGRtYV9hdG9taWNfcG9vbF9nZnAoKSwgcG9vbF9zaXplX29yZGVyKTsKIAlpZiAoIXBhZ2UpCiAJCWdvdG8gb3V0OwogCkBAIC0xMjcsOCArMTQyLDkgQEAgaW50IF9faW5pdCBkbWFfYXRvbWljX3Bvb2xfaW5pdChnZnBfdCBnZnAsIHBncHJvdF90IHByb3QpCiAJaWYgKCFhdG9taWNfcG9vbCkKIAkJZ290byBmcmVlX3BhZ2U7CiAKLQlhZGRyID0gZG1hX2NvbW1vbl9jb250aWd1b3VzX3JlbWFwKHBhZ2UsIGF0b21pY19wb29sX3NpemUsIFZNX1VTRVJNQVAsCi0JCQkJCSAgIHByb3QsIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7CisJYWRkciA9IGRtYV9jb21tb25fY29udGlndW91c19yZW1hcChwYWdlLCBhdG9taWNfcG9vbF9zaXplLAorCQkJCQkgICBwZ3Byb3RfZG1hY29oZXJlbnQoUEFHRV9LRVJORUwpLAorCQkJCQkgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOwogCWlmICghYWRkcikKIAkJZ290byBkZXN0cm95X2dlbnBvb2w7CiAKQEAgLTE0Myw3ICsxNTksNyBAQCBpbnQgX19pbml0IGRtYV9hdG9taWNfcG9vbF9pbml0KGdmcF90IGdmcCwgcGdwcm90X3QgcHJvdCkKIAlyZXR1cm4gMDsKIAogcmVtb3ZlX21hcHBpbmc6Ci0JZG1hX2NvbW1vbl9mcmVlX3JlbWFwKGFkZHIsIGF0b21pY19wb29sX3NpemUsIFZNX1VTRVJNQVApOworCWRtYV9jb21tb25fZnJlZV9yZW1hcChhZGRyLCBhdG9taWNfcG9vbF9zaXplKTsKIGRlc3Ryb3lfZ2VucG9vbDoKIAlnZW5fcG9vbF9kZXN0cm95KGF0b21pY19wb29sKTsKIAlhdG9taWNfcG9vbCA9IE5VTEw7CkBAIC0xNTUsNiArMTcxLDcgQEAgaW50IF9faW5pdCBkbWFfYXRvbWljX3Bvb2xfaW5pdChnZnBfdCBnZnAsIHBncHJvdF90IHByb3QpCiAJCWF0b21pY19wb29sX3NpemUgLyAxMDI0KTsKIAlyZXR1cm4gLUVOT01FTTsKIH0KK3Bvc3Rjb3JlX2luaXRjYWxsKGRtYV9hdG9taWNfcG9vbF9pbml0KTsKIAogYm9vbCBkbWFfaW5fYXRvbWljX3Bvb2wodm9pZCAqc3RhcnQsIHNpemVfdCBzaXplKQogewpAQCAtMjE3LDcgKzIzNCw3IEBAIHZvaWQgKmFyY2hfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsCiAJYXJjaF9kbWFfcHJlcF9jb2hlcmVudChwYWdlLCBzaXplKTsKIAogCS8qIGNyZWF0ZSBhIGNvaGVyZW50IG1hcHBpbmcgKi8KLQlyZXQgPSBkbWFfY29tbW9uX2NvbnRpZ3VvdXNfcmVtYXAocGFnZSwgc2l6ZSwgVk1fVVNFUk1BUCwKKwlyZXQgPSBkbWFfY29tbW9uX2NvbnRpZ3VvdXNfcmVtYXAocGFnZSwgc2l6ZSwKIAkJCWRtYV9wZ3Byb3QoZGV2LCBQQUdFX0tFUk5FTCwgYXR0cnMpLAogCQkJX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKIAlpZiAoIXJldCkgewpkaWZmIC0tZ2l0IGEva2VybmVsL2RtYS9zd2lvdGxiLmMgYi9rZXJuZWwvZG1hL3N3aW90bGIuYwppbmRleCA3OTZhNDRmLi42NzNhMmNkIDEwMDY0NAotLS0gYS9rZXJuZWwvZG1hL3N3aW90bGIuYworKysgYi9rZXJuZWwvZG1hL3N3aW90bGIuYwpAQCAtNDYzLDggKzQ2Myw3IEBAIHBoeXNfYWRkcl90IHN3aW90bGJfdGJsX21hcF9zaW5nbGUoc3RydWN0IGRldmljZSAqaHdkZXYsCiAJCXBhbmljKCJDYW4gbm90IGFsbG9jYXRlIFNXSU9UTEIgYnVmZmVyIGVhcmxpZXIgYW5kIGNhbid0IG5vdyBwcm92aWRlIHlvdSB3aXRoIHRoZSBETUEgYm91bmNlIGJ1ZmZlciIpOwogCiAJaWYgKG1lbV9lbmNyeXB0X2FjdGl2ZSgpKQotCQlwcl93YXJuX29uY2UoIiVzIGlzIGFjdGl2ZSBhbmQgc3lzdGVtIGlzIHVzaW5nIERNQSBib3VuY2UgYnVmZmVyc1xuIiwKLQkJCSAgICAgc21lX2FjdGl2ZSgpID8gIlNNRSIgOiAiU0VWIik7CisJCXByX3dhcm5fb25jZSgiTWVtb3J5IGVuY3J5cHRpb24gaXMgYWN0aXZlIGFuZCBzeXN0ZW0gaXMgdXNpbmcgRE1BIGJvdW5jZSBidWZmZXJzXG4iKTsKIAogCWlmIChtYXBwaW5nX3NpemUgPiBhbGxvY19zaXplKSB7CiAJCWRldl93YXJuX29uY2UoaHdkZXYsICJJbnZhbGlkIHNpemVzIChtYXBwaW5nOiAlemQgYnl0ZXMsIGFsbG9jOiAlemQgYnl0ZXMpIiwKZGlmZiAtLWdpdCBhL2tlcm5lbC9lbGZjb3JlLmMgYi9rZXJuZWwvZWxmY29yZS5jCmluZGV4IGZjNDgyYzguLjU3ZmI0ZGMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9lbGZjb3JlLmMKKysrIGIva2VybmVsL2VsZmNvcmUuYwpAQCAtMyw2ICszLDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvYmluZm10cy5oPgorI2luY2x1ZGUgPGxpbnV4L2VsZmNvcmUuaD4KIAogRWxmX0hhbGYgX193ZWFrIGVsZl9jb3JlX2V4dHJhX3BoZHJzKHZvaWQpCiB7CmRpZmYgLS1naXQgYS9rZXJuZWwvZXZlbnRzL2NvcmUuYyBiL2tlcm5lbC9ldmVudHMvY29yZS5jCmluZGV4IDRmMDhiMTcuLjQ2NTVhZGIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9ldmVudHMvY29yZS5jCisrKyBiL2tlcm5lbC9ldmVudHMvY29yZS5jCkBAIC0yMjM5LDcgKzIyMzksNyBAQCBzdGF0aWMgdm9pZCBfX3BlcmZfZXZlbnRfZGlzYWJsZShzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsCiAgKgogICogSWYgZXZlbnQtPmN0eCBpcyBhIGNsb25lZCBjb250ZXh0LCBjYWxsZXJzIG11c3QgbWFrZSBzdXJlIHRoYXQKICAqIGV2ZXJ5IHRhc2sgc3RydWN0IHRoYXQgZXZlbnQtPmN0eC0+dGFzayBjb3VsZCBwb3NzaWJseSBwb2ludCB0bwotICogcmVtYWlucyB2YWxpZC4gIFRoaXMgY29uZGl0aW9uIGlzIHNhdGlzaWZlZCB3aGVuIGNhbGxlZCB0aHJvdWdoCisgKiByZW1haW5zIHZhbGlkLiAgVGhpcyBjb25kaXRpb24gaXMgc2F0aXNmaWVkIHdoZW4gY2FsbGVkIHRocm91Z2gKICAqIHBlcmZfZXZlbnRfZm9yX2VhY2hfY2hpbGQgb3IgcGVyZl9ldmVudF9mb3JfZWFjaCBiZWNhdXNlIHRoZXkKICAqIGhvbGQgdGhlIHRvcC1sZXZlbCBldmVudCdzIGNoaWxkX211dGV4LCBzbyBhbnkgZGVzY2VuZGFudCB0aGF0CiAgKiBnb2VzIHRvIGV4aXQgd2lsbCBibG9jayBpbiBwZXJmX2V2ZW50X2V4aXRfZXZlbnQoKS4KQEAgLTYwNTQsNyArNjA1NCw3IEBAIHN0YXRpYyB2b2lkIHBlcmZfc2FtcGxlX3JlZ3NfaW50cihzdHJ1Y3QgcGVyZl9yZWdzICpyZWdzX2ludHIsCiAgKiBHZXQgcmVtYWluaW5nIHRhc2sgc2l6ZSBmcm9tIHVzZXIgc3RhY2sgcG9pbnRlci4KICAqCiAgKiBJdCdkIGJlIGJldHRlciB0byB0YWtlIHN0YWNrIHZtYSBtYXAgYW5kIGxpbWl0IHRoaXMgbW9yZQotICogcHJlY2lzbHksIGJ1dCB0aGVyZSdzIG5vIHdheSB0byBnZXQgaXQgc2FmZWx5IHVuZGVyIGludGVycnVwdCwKKyAqIHByZWNpc2VseSwgYnV0IHRoZXJlJ3Mgbm8gd2F5IHRvIGdldCBpdCBzYWZlbHkgdW5kZXIgaW50ZXJydXB0LAogICogc28gdXNpbmcgVEFTS19TSVpFIGFzIGxpbWl0LgogICovCiBzdGF0aWMgdTY0IHBlcmZfdXN0YWNrX3Rhc2tfc2l6ZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKQEAgLTY2MTYsNyArNjYxNiw3IEBAIHZvaWQgcGVyZl9wcmVwYXJlX3NhbXBsZShzdHJ1Y3QgcGVyZl9ldmVudF9oZWFkZXIgKmhlYWRlciwKIAogCWlmIChzYW1wbGVfdHlwZSAmIFBFUkZfU0FNUExFX1NUQUNLX1VTRVIpIHsKIAkJLyoKLQkJICogRWl0aGVyIHdlIG5lZWQgUEVSRl9TQU1QTEVfU1RBQ0tfVVNFUiBiaXQgdG8gYmUgYWxsd2F5cworCQkgKiBFaXRoZXIgd2UgbmVlZCBQRVJGX1NBTVBMRV9TVEFDS19VU0VSIGJpdCB0byBiZSBhbHdheXMKIAkJICogcHJvY2Vzc2VkIGFzIHRoZSBsYXN0IG9uZSBvciBoYXZlIGFkZGl0aW9uYWwgY2hlY2sgYWRkZWQKIAkJICogaW4gY2FzZSBuZXcgc2FtcGxlIHR5cGUgaXMgYWRkZWQsIGJlY2F1c2Ugd2UgY291bGQgZWF0CiAJCSAqIHVwIHRoZSByZXN0IG9mIHRoZSBzYW1wbGUgc2l6ZS4KQEAgLTEwOTE3LDYgKzEwOTE3LDEzIEBAIFNZU0NBTExfREVGSU5FNShwZXJmX2V2ZW50X29wZW4sCiAJICAgIHBlcmZfcGFyYW5vaWRfa2VybmVsKCkgJiYgIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpCiAJCXJldHVybiAtRUFDQ0VTOwogCisJZXJyID0gc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fUEVSRik7CisJaWYgKGVyciAmJiAoYXR0ci5zYW1wbGVfdHlwZSAmIFBFUkZfU0FNUExFX1JFR1NfSU5UUikpCisJCS8qIFJFR1NfSU5UUiBjYW4gbGVhayBkYXRhLCBsb2NrZG93biBtdXN0IHByZXZlbnQgdGhpcyAqLworCQlyZXR1cm4gZXJyOworCisJZXJyID0gMDsKKwogCS8qCiAJICogSW4gY2dyb3VwIG1vZGUsIHRoZSBwaWQgYXJndW1lbnQgaXMgdXNlZCB0byBwYXNzIHRoZSBmZAogCSAqIG9wZW5lZCB0byB0aGUgY2dyb3VwIGRpcmVjdG9yeSBpbiBjZ3JvdXBmcy4gVGhlIGNwdSBhcmd1bWVudApkaWZmIC0tZ2l0IGEva2VybmVsL2V2ZW50cy91cHJvYmVzLmMgYi9rZXJuZWwvZXZlbnRzL3Vwcm9iZXMuYwppbmRleCA4NGZhMDA0Li45NGQzOGEzIDEwMDY0NAotLS0gYS9rZXJuZWwvZXZlbnRzL3Vwcm9iZXMuYworKysgYi9rZXJuZWwvZXZlbnRzL3Vwcm9iZXMuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS1yd3NlbS5oPgogI2luY2x1ZGUgPGxpbnV4L3Rhc2tfd29yay5oPgogI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CisjaW5jbHVkZSA8bGludXgva2h1Z2VwYWdlZC5oPgogCiAjaW5jbHVkZSA8bGludXgvdXByb2Jlcy5oPgogCkBAIC0xNDMsMTcgKzE0NCwxOSBAQCBzdGF0aWMgbG9mZl90IHZhZGRyX3RvX29mZnNldChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyB2YWRkcikKICAqCiAgKiBAdm1hOiAgICAgIHZtYSB0aGF0IGhvbGRzIHRoZSBwdGUgcG9pbnRpbmcgdG8gcGFnZQogICogQGFkZHI6ICAgICBhZGRyZXNzIHRoZSBvbGQgQHBhZ2UgaXMgbWFwcGVkIGF0Ci0gKiBAcGFnZTogICAgIHRoZSBjb3dlZCBwYWdlIHdlIGFyZSByZXBsYWNpbmcgYnkga3BhZ2UKLSAqIEBrcGFnZTogICAgdGhlIG1vZGlmaWVkIHBhZ2Ugd2UgcmVwbGFjZSBwYWdlIGJ5CisgKiBAb2xkX3BhZ2U6IHRoZSBwYWdlIHdlIGFyZSByZXBsYWNpbmcgYnkgbmV3X3BhZ2UKKyAqIEBuZXdfcGFnZTogdGhlIG1vZGlmaWVkIHBhZ2Ugd2UgcmVwbGFjZSBwYWdlIGJ5CiAgKgotICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC1FRkFVTFQgb24gZmFpbHVyZS4KKyAqIElmIEBuZXdfcGFnZSBpcyBOVUxMLCBvbmx5IHVubWFwIEBvbGRfcGFnZS4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvdGhlcndpc2UuCiAgKi8KIHN0YXRpYyBpbnQgX19yZXBsYWNlX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJCQlzdHJ1Y3QgcGFnZSAqb2xkX3BhZ2UsIHN0cnVjdCBwYWdlICpuZXdfcGFnZSkKIHsKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHZtYS0+dm1fbW07CiAJc3RydWN0IHBhZ2Vfdm1hX21hcHBlZF93YWxrIHB2bXcgPSB7Ci0JCS5wYWdlID0gb2xkX3BhZ2UsCisJCS5wYWdlID0gY29tcG91bmRfaGVhZChvbGRfcGFnZSksCiAJCS52bWEgPSB2bWEsCiAJCS5hZGRyZXNzID0gYWRkciwKIAl9OwpAQCAtMTY0LDEyICsxNjcsMTIgQEAgc3RhdGljIGludCBfX3JlcGxhY2VfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwgTU1VX05PVElGWV9DTEVBUiwgMCwgdm1hLCBtbSwgYWRkciwKIAkJCQlhZGRyICsgUEFHRV9TSVpFKTsKIAotCVZNX0JVR19PTl9QQUdFKFBhZ2VUcmFuc0h1Z2Uob2xkX3BhZ2UpLCBvbGRfcGFnZSk7Ci0KLQllcnIgPSBtZW1fY2dyb3VwX3RyeV9jaGFyZ2UobmV3X3BhZ2UsIHZtYS0+dm1fbW0sIEdGUF9LRVJORUwsICZtZW1jZywKLQkJCWZhbHNlKTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOworCWlmIChuZXdfcGFnZSkgeworCQllcnIgPSBtZW1fY2dyb3VwX3RyeV9jaGFyZ2UobmV3X3BhZ2UsIHZtYS0+dm1fbW0sIEdGUF9LRVJORUwsCisJCQkJCSAgICAmbWVtY2csIGZhbHNlKTsKKwkJaWYgKGVycikKKwkJCXJldHVybiBlcnI7CisJfQogCiAJLyogRm9yIHRyeV90b19mcmVlX3N3YXAoKSBhbmQgbXVubG9ja192bWFfcGFnZSgpIGJlbG93ICovCiAJbG9ja19wYWdlKG9sZF9wYWdlKTsKQEAgLTE3NywxNSArMTgwLDIwIEBAIHN0YXRpYyBpbnQgX19yZXBsYWNlX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwogCWVyciA9IC1FQUdBSU47CiAJaWYgKCFwYWdlX3ZtYV9tYXBwZWRfd2FsaygmcHZtdykpIHsKLQkJbWVtX2Nncm91cF9jYW5jZWxfY2hhcmdlKG5ld19wYWdlLCBtZW1jZywgZmFsc2UpOworCQlpZiAobmV3X3BhZ2UpCisJCQltZW1fY2dyb3VwX2NhbmNlbF9jaGFyZ2UobmV3X3BhZ2UsIG1lbWNnLCBmYWxzZSk7CiAJCWdvdG8gdW5sb2NrOwogCX0KIAlWTV9CVUdfT05fUEFHRShhZGRyICE9IHB2bXcuYWRkcmVzcywgb2xkX3BhZ2UpOwogCi0JZ2V0X3BhZ2UobmV3X3BhZ2UpOwotCXBhZ2VfYWRkX25ld19hbm9uX3JtYXAobmV3X3BhZ2UsIHZtYSwgYWRkciwgZmFsc2UpOwotCW1lbV9jZ3JvdXBfY29tbWl0X2NoYXJnZShuZXdfcGFnZSwgbWVtY2csIGZhbHNlLCBmYWxzZSk7Ci0JbHJ1X2NhY2hlX2FkZF9hY3RpdmVfb3JfdW5ldmljdGFibGUobmV3X3BhZ2UsIHZtYSk7CisJaWYgKG5ld19wYWdlKSB7CisJCWdldF9wYWdlKG5ld19wYWdlKTsKKwkJcGFnZV9hZGRfbmV3X2Fub25fcm1hcChuZXdfcGFnZSwgdm1hLCBhZGRyLCBmYWxzZSk7CisJCW1lbV9jZ3JvdXBfY29tbWl0X2NoYXJnZShuZXdfcGFnZSwgbWVtY2csIGZhbHNlLCBmYWxzZSk7CisJCWxydV9jYWNoZV9hZGRfYWN0aXZlX29yX3VuZXZpY3RhYmxlKG5ld19wYWdlLCB2bWEpOworCX0gZWxzZQorCQkvKiBubyBuZXcgcGFnZSwganVzdCBkZWNfbW1fY291bnRlciBmb3Igb2xkX3BhZ2UgKi8KKwkJZGVjX21tX2NvdW50ZXIobW0sIE1NX0FOT05QQUdFUyk7CiAKIAlpZiAoIVBhZ2VBbm9uKG9sZF9wYWdlKSkgewogCQlkZWNfbW1fY291bnRlcihtbSwgbW1fY291bnRlcl9maWxlKG9sZF9wYWdlKSk7CkBAIC0xOTQsOCArMjAyLDkgQEAgc3RhdGljIGludCBfX3JlcGxhY2VfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCiAJZmx1c2hfY2FjaGVfcGFnZSh2bWEsIGFkZHIsIHB0ZV9wZm4oKnB2bXcucHRlKSk7CiAJcHRlcF9jbGVhcl9mbHVzaF9ub3RpZnkodm1hLCBhZGRyLCBwdm13LnB0ZSk7Ci0Jc2V0X3B0ZV9hdF9ub3RpZnkobW0sIGFkZHIsIHB2bXcucHRlLAotCQkJbWtfcHRlKG5ld19wYWdlLCB2bWEtPnZtX3BhZ2VfcHJvdCkpOworCWlmIChuZXdfcGFnZSkKKwkJc2V0X3B0ZV9hdF9ub3RpZnkobW0sIGFkZHIsIHB2bXcucHRlLAorCQkJCSAgbWtfcHRlKG5ld19wYWdlLCB2bWEtPnZtX3BhZ2VfcHJvdCkpOwogCiAJcGFnZV9yZW1vdmVfcm1hcChvbGRfcGFnZSwgZmFsc2UpOwogCWlmICghcGFnZV9tYXBwZWQob2xkX3BhZ2UpKQpAQCAtNDY0LDYgKzQ3Myw3IEBAIGludCB1cHJvYmVfd3JpdGVfb3Bjb2RlKHN0cnVjdCBhcmNoX3Vwcm9iZSAqYXVwcm9iZSwgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJc3RydWN0IHBhZ2UgKm9sZF9wYWdlLCAqbmV3X3BhZ2U7CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CiAJaW50IHJldCwgaXNfcmVnaXN0ZXIsIHJlZl9jdHJfdXBkYXRlZCA9IDA7CisJYm9vbCBvcmlnX3BhZ2VfaHVnZSA9IGZhbHNlOwogCiAJaXNfcmVnaXN0ZXIgPSBpc19zd2JwX2luc24oJm9wY29kZSk7CiAJdXByb2JlID0gY29udGFpbmVyX29mKGF1cHJvYmUsIHN0cnVjdCB1cHJvYmUsIGFyY2gpOwpAQCAtNDcxLDcgKzQ4MSw3IEBAIGludCB1cHJvYmVfd3JpdGVfb3Bjb2RlKHN0cnVjdCBhcmNoX3Vwcm9iZSAqYXVwcm9iZSwgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiByZXRyeToKIAkvKiBSZWFkIHRoZSBwYWdlIHdpdGggdmFkZHIgaW50byBtZW1vcnkgKi8KIAlyZXQgPSBnZXRfdXNlcl9wYWdlc19yZW1vdGUoTlVMTCwgbW0sIHZhZGRyLCAxLAotCQkJRk9MTF9GT1JDRSB8IEZPTExfU1BMSVQsICZvbGRfcGFnZSwgJnZtYSwgTlVMTCk7CisJCQlGT0xMX0ZPUkNFIHwgRk9MTF9TUExJVF9QTUQsICZvbGRfcGFnZSwgJnZtYSwgTlVMTCk7CiAJaWYgKHJldCA8PSAwKQogCQlyZXR1cm4gcmV0OwogCkBAIC00ODgsNiArNDk4LDEwIEBAIGludCB1cHJvYmVfd3JpdGVfb3Bjb2RlKHN0cnVjdCBhcmNoX3Vwcm9iZSAqYXVwcm9iZSwgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCXJlZl9jdHJfdXBkYXRlZCA9IDE7CiAJfQogCisJcmV0ID0gMDsKKwlpZiAoIWlzX3JlZ2lzdGVyICYmICFQYWdlQW5vbihvbGRfcGFnZSkpCisJCWdvdG8gcHV0X29sZDsKKwogCXJldCA9IGFub25fdm1hX3ByZXBhcmUodm1hKTsKIAlpZiAocmV0KQogCQlnb3RvIHB1dF9vbGQ7CkBAIC01MDEsOCArNTE1LDMzIEBAIGludCB1cHJvYmVfd3JpdGVfb3Bjb2RlKHN0cnVjdCBhcmNoX3Vwcm9iZSAqYXVwcm9iZSwgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJY29weV9oaWdocGFnZShuZXdfcGFnZSwgb2xkX3BhZ2UpOwogCWNvcHlfdG9fcGFnZShuZXdfcGFnZSwgdmFkZHIsICZvcGNvZGUsIFVQUk9CRV9TV0JQX0lOU05fU0laRSk7CiAKKwlpZiAoIWlzX3JlZ2lzdGVyKSB7CisJCXN0cnVjdCBwYWdlICpvcmlnX3BhZ2U7CisJCXBnb2ZmX3QgaW5kZXg7CisKKwkJVk1fQlVHX09OX1BBR0UoIVBhZ2VBbm9uKG9sZF9wYWdlKSwgb2xkX3BhZ2UpOworCisJCWluZGV4ID0gdmFkZHJfdG9fb2Zmc2V0KHZtYSwgdmFkZHIgJiBQQUdFX01BU0spID4+IFBBR0VfU0hJRlQ7CisJCW9yaWdfcGFnZSA9IGZpbmRfZ2V0X3BhZ2Uodm1hLT52bV9maWxlLT5mX2lub2RlLT5pX21hcHBpbmcsCisJCQkJCSAgaW5kZXgpOworCisJCWlmIChvcmlnX3BhZ2UpIHsKKwkJCWlmIChQYWdlVXB0b2RhdGUob3JpZ19wYWdlKSAmJgorCQkJICAgIHBhZ2VzX2lkZW50aWNhbChuZXdfcGFnZSwgb3JpZ19wYWdlKSkgeworCQkJCS8qIGxldCBnbyBuZXdfcGFnZSAqLworCQkJCXB1dF9wYWdlKG5ld19wYWdlKTsKKwkJCQluZXdfcGFnZSA9IE5VTEw7CisKKwkJCQlpZiAoUGFnZUNvbXBvdW5kKG9yaWdfcGFnZSkpCisJCQkJCW9yaWdfcGFnZV9odWdlID0gdHJ1ZTsKKwkJCX0KKwkJCXB1dF9wYWdlKG9yaWdfcGFnZSk7CisJCX0KKwl9CisKIAlyZXQgPSBfX3JlcGxhY2VfcGFnZSh2bWEsIHZhZGRyLCBvbGRfcGFnZSwgbmV3X3BhZ2UpOwotCXB1dF9wYWdlKG5ld19wYWdlKTsKKwlpZiAobmV3X3BhZ2UpCisJCXB1dF9wYWdlKG5ld19wYWdlKTsKIHB1dF9vbGQ6CiAJcHV0X3BhZ2Uob2xkX3BhZ2UpOwogCkBAIC01MTMsNiArNTUyLDEwIEBAIGludCB1cHJvYmVfd3JpdGVfb3Bjb2RlKHN0cnVjdCBhcmNoX3Vwcm9iZSAqYXVwcm9iZSwgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJaWYgKHJldCAmJiBpc19yZWdpc3RlciAmJiByZWZfY3RyX3VwZGF0ZWQpCiAJCXVwZGF0ZV9yZWZfY3RyKHVwcm9iZSwgbW0sIC0xKTsKIAorCS8qIHRyeSBjb2xsYXBzZSBwbWQgZm9yIGNvbXBvdW5kIHBhZ2UgKi8KKwlpZiAoIXJldCAmJiBvcmlnX3BhZ2VfaHVnZSkKKwkJY29sbGFwc2VfcHRlX21hcHBlZF90aHAobW0sIHZhZGRyKTsKKwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9leGl0LmMgYi9rZXJuZWwvZXhpdC5jCmluZGV4IDIyYWI2YTQuLmE0NmE1MGQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9leGl0LmMKKysrIGIva2VybmVsL2V4aXQuYwpAQCAtMTgyLDYgKzE4MiwxMSBAQCBzdGF0aWMgdm9pZCBkZWxheWVkX3B1dF90YXNrX3N0cnVjdChzdHJ1Y3QgcmN1X2hlYWQgKnJocCkKIAlwdXRfdGFza19zdHJ1Y3QodHNrKTsKIH0KIAordm9pZCBwdXRfdGFza19zdHJ1Y3RfcmN1X3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQoreworCWlmIChyZWZjb3VudF9kZWNfYW5kX3Rlc3QoJnRhc2stPnJjdV91c2VycykpCisJCWNhbGxfcmN1KCZ0YXNrLT5yY3UsIGRlbGF5ZWRfcHV0X3Rhc2tfc3RydWN0KTsKK30KIAogdm9pZCByZWxlYXNlX3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwKQogewpAQCAtMjIyLDc2ICsyMjcsMTMgQEAgdm9pZCByZWxlYXNlX3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwKQogCiAJd3JpdGVfdW5sb2NrX2lycSgmdGFza2xpc3RfbG9jayk7CiAJcmVsZWFzZV90aHJlYWQocCk7Ci0JY2FsbF9yY3UoJnAtPnJjdSwgZGVsYXllZF9wdXRfdGFza19zdHJ1Y3QpOworCXB1dF90YXNrX3N0cnVjdF9yY3VfdXNlcihwKTsKIAogCXAgPSBsZWFkZXI7CiAJaWYgKHVubGlrZWx5KHphcF9sZWFkZXIpKQogCQlnb3RvIHJlcGVhdDsKIH0KIAotLyoKLSAqIE5vdGUgdGhhdCBpZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYSB2YWxpZCB0YXNrX3N0cnVjdCBwb2ludGVyICghTlVMTCkKLSAqIHRhc2stPnVzYWdlIG11c3QgcmVtYWluID4wIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIFJDVSBjcml0aWNhbCBzZWN0aW9uLgotICovCi1zdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2tfcmN1X2RlcmVmZXJlbmNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqKnB0YXNrKQotewotCXN0cnVjdCBzaWdoYW5kX3N0cnVjdCAqc2lnaGFuZDsKLQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7Ci0KLQkvKgotCSAqIFdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgcmVsZWFzZV90YXNrKCkgd2FzIG5vdCBjYWxsZWQgYW5kIHRodXMKLQkgKiBkZWxheWVkX3B1dF90YXNrX3N0cnVjdCgpIGNhbid0IHJ1biBhbmQgZHJvcCB0aGUgbGFzdCByZWZlcmVuY2UKLQkgKiBiZWZvcmUgcmN1X3JlYWRfdW5sb2NrKCkuIFdlIGNoZWNrIHRhc2stPnNpZ2hhbmQgIT0gTlVMTCwKLQkgKiBidXQgd2UgY2FuIHJlYWQgdGhlIGFscmVhZHkgZnJlZWQgYW5kIHJldXNlZCBtZW1vcnkuCi0JICovCi1yZXRyeToKLQl0YXNrID0gcmN1X2RlcmVmZXJlbmNlKCpwdGFzayk7Ci0JaWYgKCF0YXNrKQotCQlyZXR1cm4gTlVMTDsKLQotCXByb2JlX2tlcm5lbF9hZGRyZXNzKCZ0YXNrLT5zaWdoYW5kLCBzaWdoYW5kKTsKLQotCS8qCi0JICogUGFpcnMgd2l0aCBhdG9taWNfZGVjX2FuZF90ZXN0KCkgaW4gcHV0X3Rhc2tfc3RydWN0KCkuIElmIHRoaXMgdGFzawotCSAqIHdhcyBhbHJlYWR5IGZyZWVkIHdlIGNhbiBub3QgbWlzcyB0aGUgcHJlY2VkaW5nIHVwZGF0ZSBvZiB0aGlzCi0JICogcG9pbnRlci4KLQkgKi8KLQlzbXBfcm1iKCk7Ci0JaWYgKHVubGlrZWx5KHRhc2sgIT0gUkVBRF9PTkNFKCpwdGFzaykpKQotCQlnb3RvIHJldHJ5OwotCi0JLyoKLQkgKiBXZSd2ZSByZS1jaGVja2VkIHRoYXQgInRhc2sgPT0gKnB0YXNrIiwgbm93IHdlIGhhdmUgdHdvIGRpZmZlcmVudAotCSAqIGNhc2VzOgotCSAqCi0JICogMS4gVGhpcyBpcyBhY3R1YWxseSB0aGUgc2FtZSB0YXNrL3Rhc2tfc3RydWN0LiBJbiB0aGlzIGNhc2UKLQkgKiAgICBzaWdoYW5kICE9IE5VTEwgdGVsbHMgdXMgaXQgaXMgc3RpbGwgYWxpdmUuCi0JICoKLQkgKiAyLiBUaGlzIGlzIGFub3RoZXIgdGFzayB3aGljaCBnb3QgdGhlIHNhbWUgbWVtb3J5IGZvciB0YXNrX3N0cnVjdC4KLQkgKiAgICBXZSBjYW4ndCBrbm93IHRoaXMgb2YgY291cnNlLCBhbmQgd2UgY2FuIG5vdCB0cnVzdAotCSAqICAgIHNpZ2hhbmQgIT0gTlVMTC4KLQkgKgotCSAqICAgIEluIHRoaXMgY2FzZSB3ZSBhY3R1YWxseSByZXR1cm4gYSByYW5kb20gdmFsdWUsIGJ1dCB0aGlzIGlzCi0JICogICAgY29ycmVjdC4KLQkgKgotCSAqICAgIElmIHdlIHJldHVybiBOVUxMIC0gd2UgY2FuIHByZXRlbmQgdGhhdCB3ZSBhY3R1YWxseSBub3RpY2VkIHRoYXQKLQkgKiAgICAqcHRhc2sgd2FzIHVwZGF0ZWQgd2hlbiB0aGUgcHJldmlvdXMgdGFzayBoYXMgZXhpdGVkLiBPciBwcmV0ZW5kCi0JICogICAgdGhhdCBwcm9iZV9zbGFiX2FkZHJlc3MoJnNpZ2hhbmQpIHJlYWRzIE5VTEwuCi0JICoKLQkgKiAgICBJZiB3ZSByZXR1cm4gdGhlIG5ldyB0YXNrIChiZWNhdXNlIHNpZ2hhbmQgaXMgbm90IE5VTEwgZm9yIGFueQotCSAqICAgIHJlYXNvbikgLSB0aGlzIGlzIGZpbmUgdG9vLiBUaGlzIChuZXcpIHRhc2sgY2FuJ3QgZ28gYXdheSBiZWZvcmUKLQkgKiAgICBhbm90aGVyIGdwIHBhc3MuCi0JICoKLQkgKiAgICBBbmQgbm90ZTogV2UgY291bGQgZXZlbiBlbGltaW5hdGUgdGhlIGZhbHNlIHBvc2l0aXZlIGlmIHJlLXJlYWQKLQkgKiAgICB0YXNrLT5zaWdoYW5kIG9uY2UgYWdhaW4gdG8gYXZvaWQgdGhlIGZhbHNlbHkgTlVMTC4gQnV0IHRoaXMgY2FzZQotCSAqICAgIGlzIHZlcnkgdW5saWtlbHkgc28gd2UgZG9uJ3QgY2FyZS4KLQkgKi8KLQlpZiAoIXNpZ2hhbmQpCi0JCXJldHVybiBOVUxMOwotCi0JcmV0dXJuIHRhc2s7Ci19Ci0KIHZvaWQgcmN1d2FpdF93YWtlX3VwKHN0cnVjdCByY3V3YWl0ICp3KQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKQEAgLTMxMSwxMCArMjUzLDYgQEAgdm9pZCByY3V3YWl0X3dha2VfdXAoc3RydWN0IHJjdXdhaXQgKncpCiAJICovCiAJc21wX21iKCk7IC8qIChCKSAqLwogCi0JLyoKLQkgKiBBdm9pZCB1c2luZyB0YXNrX3JjdV9kZXJlZmVyZW5jZSgpIG1hZ2ljIGFzIGxvbmcgYXMgd2UgYXJlIGNhcmVmdWwsCi0JICogc2VlIGNvbW1lbnQgaW4gcmN1d2FpdF93YWl0X2V2ZW50KCkgcmVnYXJkaW5nIC0+ZXhpdF9zdGF0ZS4KLQkgKi8KIAl0YXNrID0gcmN1X2RlcmVmZXJlbmNlKHctPnRhc2spOwogCWlmICh0YXNrKQogCQl3YWtlX3VwX3Byb2Nlc3ModGFzayk7CmRpZmYgLS1naXQgYS9rZXJuZWwvZXh0YWJsZS5jIGIva2VybmVsL2V4dGFibGUuYwppbmRleCBlMjNjY2U2Li5mNmM5NDA2IDEwMDY0NAotLS0gYS9rZXJuZWwvZXh0YWJsZS5jCisrKyBiL2tlcm5lbC9leHRhYmxlLmMKQEAgLTQwLDEzICs0MCwyMCBAQCB2b2lkIF9faW5pdCBzb3J0X21haW5fZXh0YWJsZSh2b2lkKQogCX0KIH0KIAorLyogR2l2ZW4gYW4gYWRkcmVzcywgbG9vayBmb3IgaXQgaW4gdGhlIGtlcm5lbCBleGNlcHRpb24gdGFibGUgKi8KK2NvbnN0CitzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpzZWFyY2hfa2VybmVsX2V4Y2VwdGlvbl90YWJsZSh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJcmV0dXJuIHNlYXJjaF9leHRhYmxlKF9fc3RhcnRfX19leF90YWJsZSwKKwkJCSAgICAgIF9fc3RvcF9fX2V4X3RhYmxlIC0gX19zdGFydF9fX2V4X3RhYmxlLCBhZGRyKTsKK30KKwogLyogR2l2ZW4gYW4gYWRkcmVzcywgbG9vayBmb3IgaXQgaW4gdGhlIGV4Y2VwdGlvbiB0YWJsZXMuICovCiBjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpzZWFyY2hfZXhjZXB0aW9uX3RhYmxlcyh1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZTsKIAotCWUgPSBzZWFyY2hfZXh0YWJsZShfX3N0YXJ0X19fZXhfdGFibGUsCi0JCQkgICBfX3N0b3BfX19leF90YWJsZSAtIF9fc3RhcnRfX19leF90YWJsZSwgYWRkcik7CisJZSA9IHNlYXJjaF9rZXJuZWxfZXhjZXB0aW9uX3RhYmxlKGFkZHIpOwogCWlmICghZSkKIAkJZSA9IHNlYXJjaF9tb2R1bGVfZXh0YWJsZXMoYWRkcik7CiAJcmV0dXJuIGU7CmRpZmYgLS1naXQgYS9rZXJuZWwvZm9yay5jIGIva2VybmVsL2ZvcmsuYwppbmRleCA1M2U3ODA3Li5mOTU3MmY0IDEwMDY0NAotLS0gYS9rZXJuZWwvZm9yay5jCisrKyBiL2tlcm5lbC9mb3JrLmMKQEAgLTEyNSw2ICsxMjUsMTUgQEAgaW50IG5yX3RocmVhZHM7CQkJLyogVGhlIGlkbGUgdGhyZWFkcyBkbyBub3QgY291bnQuLiAqLwogCiBzdGF0aWMgaW50IG1heF90aHJlYWRzOwkJLyogdHVuYWJsZSBsaW1pdCBvbiBucl90aHJlYWRzICovCiAKKyNkZWZpbmUgTkFNRURfQVJSQVlfSU5ERVgoeCkJW3hdID0gX19zdHJpbmdpZnkoeCkKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByZXNpZGVudF9wYWdlX3R5cGVzW10gPSB7CisJTkFNRURfQVJSQVlfSU5ERVgoTU1fRklMRVBBR0VTKSwKKwlOQU1FRF9BUlJBWV9JTkRFWChNTV9BTk9OUEFHRVMpLAorCU5BTUVEX0FSUkFZX0lOREVYKE1NX1NXQVBFTlRTKSwKKwlOQU1FRF9BUlJBWV9JTkRFWChNTV9TSE1FTVBBR0VTKSwKK307CisKIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIHByb2Nlc3NfY291bnRzKSA9IDA7CiAKIF9fY2FjaGVsaW5lX2FsaWduZWQgREVGSU5FX1JXTE9DSyh0YXNrbGlzdF9sb2NrKTsgIC8qIG91dGVyICovCkBAIC02NDUsMTIgKzY1NCwxNSBAQCBzdGF0aWMgdm9pZCBjaGVja19tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIHsKIAlpbnQgaTsKIAorCUJVSUxEX0JVR19PTl9NU0coQVJSQVlfU0laRShyZXNpZGVudF9wYWdlX3R5cGVzKSAhPSBOUl9NTV9DT1VOVEVSUywKKwkJCSAiUGxlYXNlIG1ha2Ugc3VyZSAnc3RydWN0IHJlc2lkZW50X3BhZ2VfdHlwZXNbXScgaXMgdXBkYXRlZCBhcyB3ZWxsIik7CisKIAlmb3IgKGkgPSAwOyBpIDwgTlJfTU1fQ09VTlRFUlM7IGkrKykgewogCQlsb25nIHggPSBhdG9taWNfbG9uZ19yZWFkKCZtbS0+cnNzX3N0YXQuY291bnRbaV0pOwogCiAJCWlmICh1bmxpa2VseSh4KSkKLQkJCXByaW50ayhLRVJOX0FMRVJUICJCVUc6IEJhZCByc3MtY291bnRlciBzdGF0ZSAiCi0JCQkJCSAgIm1tOiVwIGlkeDolZCB2YWw6JWxkXG4iLCBtbSwgaSwgeCk7CisJCQlwcl9hbGVydCgiQlVHOiBCYWQgcnNzLWNvdW50ZXIgc3RhdGUgbW06JXAgdHlwZTolcyB2YWw6JWxkXG4iLAorCQkJCSBtbSwgcmVzaWRlbnRfcGFnZV90eXBlc1tpXSwgeCk7CiAJfQogCiAJaWYgKG1tX3BndGFibGVzX2J5dGVzKG1tKSkKQEAgLTkwMywxMCArOTE1LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmR1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm9yaWcsIGludCBub2RlKQogCQl0c2stPmNwdXNfcHRyID0gJnRzay0+Y3B1c19tYXNrOwogCiAJLyoKLQkgKiBPbmUgZm9yIHVzLCBvbmUgZm9yIHdob2V2ZXIgZG9lcyB0aGUgInJlbGVhc2VfdGFzaygpIiAodXN1YWxseQotCSAqIHBhcmVudCkKKwkgKiBPbmUgZm9yIHRoZSB1c2VyIHNwYWNlIHZpc2libGUgc3RhdGUgdGhhdCBnb2VzIGF3YXkgd2hlbiByZWFwZWQuCisJICogT25lIGZvciB0aGUgc2NoZWR1bGVyLgogCSAqLwotCXJlZmNvdW50X3NldCgmdHNrLT51c2FnZSwgMik7CisJcmVmY291bnRfc2V0KCZ0c2stPnJjdV91c2VycywgMik7CisJLyogT25lIGZvciB0aGUgcmN1IHVzZXJzICovCisJcmVmY291bnRfc2V0KCZ0c2stPnVzYWdlLCAxKTsKICNpZmRlZiBDT05GSUdfQkxLX0RFVl9JT19UUkFDRQogCXRzay0+YnRyYWNlX3NlcSA9IDA7CiAjZW5kaWYKQEAgLTEwMDksNyArMTAyMyw2IEBAIHN0YXRpYyBzdHJ1Y3QgbW1fc3RydWN0ICptbV9pbml0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsCiAJbW1faW5pdF9vd25lcihtbSwgcCk7CiAJUkNVX0lOSVRfUE9JTlRFUihtbS0+ZXhlX2ZpbGUsIE5VTEwpOwogCW1tdV9ub3RpZmllcl9tbV9pbml0KG1tKTsKLQlobW1fbW1faW5pdChtbSk7CiAJaW5pdF90bGJfZmx1c2hfcGVuZGluZyhtbSk7CiAjaWYgZGVmaW5lZChDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0UpICYmICFVU0VfU1BMSVRfUE1EX1BUTE9DS1MKIAltbS0+cG1kX2h1Z2VfcHRlID0gTlVMTDsKZGlmZiAtLWdpdCBhL2tlcm5lbC9nY292L0tjb25maWcgYi9rZXJuZWwvZ2Nvdi9LY29uZmlnCmluZGV4IDM5NDFhOWMuLjA2MGU4ZTcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9nY292L0tjb25maWcKKysrIGIva2VybmVsL2djb3YvS2NvbmZpZwpAQCAtNCw3ICs0LDcgQEAKIGNvbmZpZyBHQ09WX0tFUk5FTAogCWJvb2wgIkVuYWJsZSBnY292LWJhc2VkIGtlcm5lbCBwcm9maWxpbmciCiAJZGVwZW5kcyBvbiBERUJVR19GUwotCXNlbGVjdCBDT05TVFJVQ1RPUlMgaWYgIVVNTAorCXNlbGVjdCBDT05TVFJVQ1RPUlMKIAlkZWZhdWx0IG4KIAktLS1oZWxwLS0tCiAJVGhpcyBvcHRpb24gZW5hYmxlcyBnY292LWJhc2VkIGNvZGUgcHJvZmlsaW5nIChlLmcuIGZvciBjb2RlIGNvdmVyYWdlCmRpZmYgLS1naXQgYS9rZXJuZWwva2V4ZWMuYyBiL2tlcm5lbC9rZXhlYy5jCmluZGV4IDFiMDE4ZjEuLmJjOTMzYzAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9rZXhlYy5jCisrKyBiL2tlcm5lbC9rZXhlYy5jCkBAIC0yMDYsNiArMjA2LDE0IEBAIHN0YXRpYyBpbmxpbmUgaW50IGtleGVjX2xvYWRfY2hlY2sodW5zaWduZWQgbG9uZyBucl9zZWdtZW50cywKIAkJcmV0dXJuIHJlc3VsdDsKIAogCS8qCisJICoga2V4ZWMgY2FuIGJlIHVzZWQgdG8gY2lyY3VtdmVudCBtb2R1bGUgbG9hZGluZyByZXN0cmljdGlvbnMsIHNvCisJICogcHJldmVudCBsb2FkaW5nIGluIHRoYXQgY2FzZQorCSAqLworCXJlc3VsdCA9IHNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX0tFWEVDKTsKKwlpZiAocmVzdWx0KQorCQlyZXR1cm4gcmVzdWx0OworCisJLyoKIAkgKiBWZXJpZnkgd2UgaGF2ZSBhIGxlZ2FsIHNldCBvZiBmbGFncwogCSAqIFRoaXMgbGVhdmVzIHVzIHJvb20gZm9yIGZ1dHVyZSBleHRlbnNpb25zLgogCSAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL2tleGVjX2NvcmUuYyBiL2tlcm5lbC9rZXhlY19jb3JlLmMKaW5kZXggZDU4NzA3MjMuLjE1ZDcwYTkgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9rZXhlY19jb3JlLmMKKysrIGIva2VybmVsL2tleGVjX2NvcmUuYwpAQCAtMzAwLDYgKzMwMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqa2ltYWdlX2FsbG9jX3BhZ2VzKGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiB7CiAJc3RydWN0IHBhZ2UgKnBhZ2VzOwogCisJaWYgKGZhdGFsX3NpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKQorCQlyZXR1cm4gTlVMTDsKIAlwYWdlcyA9IGFsbG9jX3BhZ2VzKGdmcF9tYXNrICYgfl9fR0ZQX1pFUk8sIG9yZGVyKTsKIAlpZiAocGFnZXMpIHsKIAkJdW5zaWduZWQgaW50IGNvdW50LCBpOwpkaWZmIC0tZ2l0IGEva2VybmVsL2tleGVjX2ZpbGUuYyBiL2tlcm5lbC9rZXhlY19maWxlLmMKaW5kZXggYjhjYzAzMi4uNzlmMjUyYSAxMDA2NDQKLS0tIGEva2VybmVsL2tleGVjX2ZpbGUuYworKysgYi9rZXJuZWwva2V4ZWNfZmlsZS5jCkBAIC04OCw3ICs4OCw3IEBAIGludCBfX3dlYWsgYXJjaF9raW1hZ2VfZmlsZV9wb3N0X2xvYWRfY2xlYW51cChzdHJ1Y3Qga2ltYWdlICppbWFnZSkKIAlyZXR1cm4ga2V4ZWNfaW1hZ2VfcG9zdF9sb2FkX2NsZWFudXBfZGVmYXVsdChpbWFnZSk7CiB9CiAKLSNpZmRlZiBDT05GSUdfS0VYRUNfVkVSSUZZX1NJRworI2lmZGVmIENPTkZJR19LRVhFQ19TSUcKIHN0YXRpYyBpbnQga2V4ZWNfaW1hZ2VfdmVyaWZ5X3NpZ19kZWZhdWx0KHN0cnVjdCBraW1hZ2UgKmltYWdlLCB2b2lkICpidWYsCiAJCQkJCSAgdW5zaWduZWQgbG9uZyBidWZfbGVuKQogewpAQCAtMTc3LDYgKzE3Nyw1OSBAQCB2b2lkIGtpbWFnZV9maWxlX3Bvc3RfbG9hZF9jbGVhbnVwKHN0cnVjdCBraW1hZ2UgKmltYWdlKQogCWltYWdlLT5pbWFnZV9sb2FkZXJfZGF0YSA9IE5VTEw7CiB9CiAKKyNpZmRlZiBDT05GSUdfS0VYRUNfU0lHCitzdGF0aWMgaW50CitraW1hZ2VfdmFsaWRhdGVfc2lnbmF0dXJlKHN0cnVjdCBraW1hZ2UgKmltYWdlKQoreworCWNvbnN0IGNoYXIgKnJlYXNvbjsKKwlpbnQgcmV0OworCisJcmV0ID0gYXJjaF9rZXhlY19rZXJuZWxfdmVyaWZ5X3NpZyhpbWFnZSwgaW1hZ2UtPmtlcm5lbF9idWYsCisJCQkJCSAgIGltYWdlLT5rZXJuZWxfYnVmX2xlbik7CisJc3dpdGNoIChyZXQpIHsKKwljYXNlIDA6CisJCWJyZWFrOworCisJCS8qIENlcnRhaW4gdmVyaWZpY2F0aW9uIGVycm9ycyBhcmUgbm9uLWZhdGFsIGlmIHdlJ3JlIG5vdAorCQkgKiBjaGVja2luZyBlcnJvcnMsIHByb3ZpZGVkIHdlIGFyZW4ndCBtYW5kYXRpbmcgdGhhdCB0aGVyZQorCQkgKiBtdXN0IGJlIGEgdmFsaWQgc2lnbmF0dXJlLgorCQkgKi8KKwljYXNlIC1FTk9EQVRBOgorCQlyZWFzb24gPSAia2V4ZWMgb2YgdW5zaWduZWQgaW1hZ2UiOworCQlnb3RvIGRlY2lkZTsKKwljYXNlIC1FTk9QS0c6CisJCXJlYXNvbiA9ICJrZXhlYyBvZiBpbWFnZSB3aXRoIHVuc3VwcG9ydGVkIGNyeXB0byI7CisJCWdvdG8gZGVjaWRlOworCWNhc2UgLUVOT0tFWToKKwkJcmVhc29uID0gImtleGVjIG9mIGltYWdlIHdpdGggdW5hdmFpbGFibGUga2V5IjsKKwlkZWNpZGU6CisJCWlmIChJU19FTkFCTEVEKENPTkZJR19LRVhFQ19TSUdfRk9SQ0UpKSB7CisJCQlwcl9ub3RpY2UoIiVzIHJlamVjdGVkXG4iLCByZWFzb24pOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCS8qIElmIElNQSBpcyBndWFyYW50ZWVkIHRvIGFwcHJhaXNlIGEgc2lnbmF0dXJlIG9uIHRoZSBrZXhlYworCQkgKiBpbWFnZSwgcGVybWl0IGl0IGV2ZW4gaWYgdGhlIGtlcm5lbCBpcyBvdGhlcndpc2UgbG9ja2VkCisJCSAqIGRvd24uCisJCSAqLworCQlpZiAoIWltYV9hcHByYWlzZV9zaWduYXR1cmUoUkVBRElOR19LRVhFQ19JTUFHRSkgJiYKKwkJICAgIHNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX0tFWEVDKSkKKwkJCXJldHVybiAtRVBFUk07CisKKwkJcmV0dXJuIDA7CisKKwkJLyogQWxsIG90aGVyIGVycm9ycyBhcmUgZmF0YWwsIGluY2x1ZGluZyBub21lbSwgdW5wYXJzZWFibGUKKwkJICogc2lnbmF0dXJlcyBhbmQgc2lnbmF0dXJlIGNoZWNrIGZhaWx1cmVzIC0gZXZlbiBpZiBzaWduYXR1cmVzCisJCSAqIGFyZW4ndCByZXF1aXJlZC4KKwkJICovCisJZGVmYXVsdDoKKwkJcHJfbm90aWNlKCJrZXJuZWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmYWlsZWQgKCVkKS5cbiIsIHJldCk7CisJfQorCisJcmV0dXJuIHJldDsKK30KKyNlbmRpZgorCiAvKgogICogSW4gZmlsZSBtb2RlIGxpc3Qgb2Ygc2VnbWVudHMgaXMgcHJlcGFyZWQgYnkga2VybmVsLiBDb3B5IHJlbGV2YW50CiAgKiBkYXRhIGZyb20gdXNlciBzcGFjZSwgZG8gZXJyb3IgY2hlY2tpbmcsIHByZXBhcmUgc2VnbWVudCBsaXN0CkBAIC0xODYsNyArMjM5LDcgQEAga2ltYWdlX2ZpbGVfcHJlcGFyZV9zZWdtZW50cyhzdHJ1Y3Qga2ltYWdlICppbWFnZSwgaW50IGtlcm5lbF9mZCwgaW50IGluaXRyZF9mZCwKIAkJCSAgICAgY29uc3QgY2hhciBfX3VzZXIgKmNtZGxpbmVfcHRyLAogCQkJICAgICB1bnNpZ25lZCBsb25nIGNtZGxpbmVfbGVuLCB1bnNpZ25lZCBmbGFncykKIHsKLQlpbnQgcmV0ID0gMDsKKwlpbnQgcmV0OwogCXZvaWQgKmxkYXRhOwogCWxvZmZfdCBzaXplOwogCkBAIC0yMDIsMTQgKzI1NSwxMSBAQCBraW1hZ2VfZmlsZV9wcmVwYXJlX3NlZ21lbnRzKHN0cnVjdCBraW1hZ2UgKmltYWdlLCBpbnQga2VybmVsX2ZkLCBpbnQgaW5pdHJkX2ZkLAogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCi0jaWZkZWYgQ09ORklHX0tFWEVDX1ZFUklGWV9TSUcKLQlyZXQgPSBhcmNoX2tleGVjX2tlcm5lbF92ZXJpZnlfc2lnKGltYWdlLCBpbWFnZS0+a2VybmVsX2J1ZiwKLQkJCQkJICAgaW1hZ2UtPmtlcm5lbF9idWZfbGVuKTsKLQlpZiAocmV0KSB7Ci0JCXByX2RlYnVnKCJrZXJuZWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmYWlsZWQuXG4iKTsKKyNpZmRlZiBDT05GSUdfS0VYRUNfU0lHCisJcmV0ID0ga2ltYWdlX3ZhbGlkYXRlX3NpZ25hdHVyZShpbWFnZSk7CisKKwlpZiAocmV0KQogCQlnb3RvIG91dDsKLQl9Ci0JcHJfZGVidWcoImtlcm5lbCBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1Y2Nlc3NmdWwuXG4iKTsKICNlbmRpZgogCS8qIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgbm8gaW5pdHJhbWZzIGlzIGJlaW5nIGxvYWRlZCAqLwogCWlmICghKGZsYWdzICYgS0VYRUNfRklMRV9OT19JTklUUkFNRlMpKSB7CmRpZmYgLS1naXQgYS9rZXJuZWwva3Byb2Jlcy5jIGIva2VybmVsL2twcm9iZXMuYwppbmRleCAxYjY2Y2NiLi41MzUzNGFhIDEwMDY0NAotLS0gYS9rZXJuZWwva3Byb2Jlcy5jCisrKyBiL2tlcm5lbC9rcHJvYmVzLmMKQEAgLTk2Miw4ICs5NjIsMTUgQEAgc3RhdGljIHN0cnVjdCBrcHJvYmUgKmFsbG9jX2FnZ3Jfa3Byb2JlKHN0cnVjdCBrcHJvYmUgKnApCiAjaWZkZWYgQ09ORklHX0tQUk9CRVNfT05fRlRSQUNFCiBzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMga3Byb2JlX2Z0cmFjZV9vcHMgX19yZWFkX21vc3RseSA9IHsKIAkuZnVuYyA9IGtwcm9iZV9mdHJhY2VfaGFuZGxlciwKKwkuZmxhZ3MgPSBGVFJBQ0VfT1BTX0ZMX1NBVkVfUkVHUywKK307CisKK3N0YXRpYyBzdHJ1Y3QgZnRyYWNlX29wcyBrcHJvYmVfaXBtb2RpZnlfb3BzIF9fcmVhZF9tb3N0bHkgPSB7CisJLmZ1bmMgPSBrcHJvYmVfZnRyYWNlX2hhbmRsZXIsCiAJLmZsYWdzID0gRlRSQUNFX09QU19GTF9TQVZFX1JFR1MgfCBGVFJBQ0VfT1BTX0ZMX0lQTU9ESUZZLAogfTsKKworc3RhdGljIGludCBrcHJvYmVfaXBtb2RpZnlfZW5hYmxlZDsKIHN0YXRpYyBpbnQga3Byb2JlX2Z0cmFjZV9lbmFibGVkOwogCiAvKiBNdXN0IGVuc3VyZSBwLT5hZGRyIGlzIHJlYWxseSBvbiBmdHJhY2UgKi8KQEAgLTk3Niw1OCArOTgzLDc1IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9rcHJvYmUoc3RydWN0IGtwcm9iZSAqcCkKIH0KIAogLyogQ2FsbGVyIG11c3QgbG9jayBrcHJvYmVfbXV0ZXggKi8KLXN0YXRpYyBpbnQgYXJtX2twcm9iZV9mdHJhY2Uoc3RydWN0IGtwcm9iZSAqcCkKK3N0YXRpYyBpbnQgX19hcm1fa3Byb2JlX2Z0cmFjZShzdHJ1Y3Qga3Byb2JlICpwLCBzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzLAorCQkJICAgICAgIGludCAqY250KQogewogCWludCByZXQgPSAwOwogCi0JcmV0ID0gZnRyYWNlX3NldF9maWx0ZXJfaXAoJmtwcm9iZV9mdHJhY2Vfb3BzLAotCQkJCSAgICh1bnNpZ25lZCBsb25nKXAtPmFkZHIsIDAsIDApOworCXJldCA9IGZ0cmFjZV9zZXRfZmlsdGVyX2lwKG9wcywgKHVuc2lnbmVkIGxvbmcpcC0+YWRkciwgMCwgMCk7CiAJaWYgKHJldCkgewogCQlwcl9kZWJ1ZygiRmFpbGVkIHRvIGFybSBrcHJvYmUtZnRyYWNlIGF0ICVwUyAoJWQpXG4iLAogCQkJIHAtPmFkZHIsIHJldCk7CiAJCXJldHVybiByZXQ7CiAJfQogCi0JaWYgKGtwcm9iZV9mdHJhY2VfZW5hYmxlZCA9PSAwKSB7Ci0JCXJldCA9IHJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbigma3Byb2JlX2Z0cmFjZV9vcHMpOworCWlmICgqY250ID09IDApIHsKKwkJcmV0ID0gcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKG9wcyk7CiAJCWlmIChyZXQpIHsKIAkJCXByX2RlYnVnKCJGYWlsZWQgdG8gaW5pdCBrcHJvYmUtZnRyYWNlICglZClcbiIsIHJldCk7CiAJCQlnb3RvIGVycl9mdHJhY2U7CiAJCX0KIAl9CiAKLQlrcHJvYmVfZnRyYWNlX2VuYWJsZWQrKzsKKwkoKmNudCkrKzsKIAlyZXR1cm4gcmV0OwogCiBlcnJfZnRyYWNlOgogCS8qCi0JICogTm90ZTogU2luY2Uga3Byb2JlX2Z0cmFjZV9vcHMgaGFzIElQTU9ESUZZIHNldCwgYW5kIGZ0cmFjZSByZXF1aXJlcyBhCi0JICogbm9uLWVtcHR5IGZpbHRlcl9oYXNoIGZvciBJUE1PRElGWSBvcHMsIHdlJ3JlIHNhZmUgZnJvbSBhbiBhY2NpZGVudGFsCi0JICogZW1wdHkgZmlsdGVyX2hhc2ggd2hpY2ggd291bGQgdW5kZXNpcmFibHkgdHJhY2UgYWxsIGZ1bmN0aW9ucy4KKwkgKiBBdCB0aGlzIHBvaW50LCBzaW5lYyBvcHMgaXMgbm90IHJlZ2lzdGVyZWQsIHdlIHNob3VsZCBiZSBzZWZlIGZyb20KKwkgKiByZWdpc3RlcmluZyBlbXB0eSBmaWx0ZXIuCiAJICovCi0JZnRyYWNlX3NldF9maWx0ZXJfaXAoJmtwcm9iZV9mdHJhY2Vfb3BzLCAodW5zaWduZWQgbG9uZylwLT5hZGRyLCAxLCAwKTsKKwlmdHJhY2Vfc2V0X2ZpbHRlcl9pcChvcHMsICh1bnNpZ25lZCBsb25nKXAtPmFkZHIsIDEsIDApOwogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgYXJtX2twcm9iZV9mdHJhY2Uoc3RydWN0IGtwcm9iZSAqcCkKK3sKKwlib29sIGlwbW9kaWZ5ID0gKHAtPnBvc3RfaGFuZGxlciAhPSBOVUxMKTsKKworCXJldHVybiBfX2FybV9rcHJvYmVfZnRyYWNlKHAsCisJCWlwbW9kaWZ5ID8gJmtwcm9iZV9pcG1vZGlmeV9vcHMgOiAma3Byb2JlX2Z0cmFjZV9vcHMsCisJCWlwbW9kaWZ5ID8gJmtwcm9iZV9pcG1vZGlmeV9lbmFibGVkIDogJmtwcm9iZV9mdHJhY2VfZW5hYmxlZCk7Cit9CisKIC8qIENhbGxlciBtdXN0IGxvY2sga3Byb2JlX211dGV4ICovCi1zdGF0aWMgaW50IGRpc2FybV9rcHJvYmVfZnRyYWNlKHN0cnVjdCBrcHJvYmUgKnApCitzdGF0aWMgaW50IF9fZGlzYXJtX2twcm9iZV9mdHJhY2Uoc3RydWN0IGtwcm9iZSAqcCwgc3RydWN0IGZ0cmFjZV9vcHMgKm9wcywKKwkJCQkgIGludCAqY250KQogewogCWludCByZXQgPSAwOwogCi0JaWYgKGtwcm9iZV9mdHJhY2VfZW5hYmxlZCA9PSAxKSB7Ci0JCXJldCA9IHVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZrcHJvYmVfZnRyYWNlX29wcyk7CisJaWYgKCpjbnQgPT0gMSkgeworCQlyZXQgPSB1bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihvcHMpOwogCQlpZiAoV0FSTihyZXQgPCAwLCAiRmFpbGVkIHRvIHVucmVnaXN0ZXIga3Byb2JlLWZ0cmFjZSAoJWQpXG4iLCByZXQpKQogCQkJcmV0dXJuIHJldDsKIAl9CiAKLQlrcHJvYmVfZnRyYWNlX2VuYWJsZWQtLTsKKwkoKmNudCktLTsKIAotCXJldCA9IGZ0cmFjZV9zZXRfZmlsdGVyX2lwKCZrcHJvYmVfZnRyYWNlX29wcywKLQkJCSAgICh1bnNpZ25lZCBsb25nKXAtPmFkZHIsIDEsIDApOworCXJldCA9IGZ0cmFjZV9zZXRfZmlsdGVyX2lwKG9wcywgKHVuc2lnbmVkIGxvbmcpcC0+YWRkciwgMSwgMCk7CiAJV0FSTl9PTkNFKHJldCA8IDAsICJGYWlsZWQgdG8gZGlzYXJtIGtwcm9iZS1mdHJhY2UgYXQgJXBTICglZClcbiIsCiAJCSAgcC0+YWRkciwgcmV0KTsKIAlyZXR1cm4gcmV0OwogfQorCitzdGF0aWMgaW50IGRpc2FybV9rcHJvYmVfZnRyYWNlKHN0cnVjdCBrcHJvYmUgKnApCit7CisJYm9vbCBpcG1vZGlmeSA9IChwLT5wb3N0X2hhbmRsZXIgIT0gTlVMTCk7CisKKwlyZXR1cm4gX19kaXNhcm1fa3Byb2JlX2Z0cmFjZShwLAorCQlpcG1vZGlmeSA/ICZrcHJvYmVfaXBtb2RpZnlfb3BzIDogJmtwcm9iZV9mdHJhY2Vfb3BzLAorCQlpcG1vZGlmeSA/ICZrcHJvYmVfaXBtb2RpZnlfZW5hYmxlZCA6ICZrcHJvYmVfZnRyYWNlX2VuYWJsZWQpOworfQogI2Vsc2UJLyogIUNPTkZJR19LUFJPQkVTX09OX0ZUUkFDRSAqLwogI2RlZmluZSBwcmVwYXJlX2twcm9iZShwKQlhcmNoX3ByZXBhcmVfa3Byb2JlKHApCiAjZGVmaW5lIGFybV9rcHJvYmVfZnRyYWNlKHApCSgtRU5PREVWKQpkaWZmIC0tZ2l0IGEva2VybmVsL2xpdmVwYXRjaC9jb3JlLmMgYi9rZXJuZWwvbGl2ZXBhdGNoL2NvcmUuYwppbmRleCBjNGNlMDhmLi5hYjRhNDYwIDEwMDY0NAotLS0gYS9rZXJuZWwvbGl2ZXBhdGNoL2NvcmUuYworKysgYi9rZXJuZWwvbGl2ZXBhdGNoL2NvcmUuYwpAQCAtMTE3NSw2ICsxMTc1LDcgQEAgaW50IGtscF9tb2R1bGVfY29taW5nKHN0cnVjdCBtb2R1bGUgKm1vZCkKIAlwcl93YXJuKCJwYXRjaCAnJXMnIGZhaWxlZCBmb3IgbW9kdWxlICclcycsIHJlZnVzaW5nIHRvIGxvYWQgbW9kdWxlICclcydcbiIsCiAJCXBhdGNoLT5tb2QtPm5hbWUsIG9iai0+bW9kLT5uYW1lLCBvYmotPm1vZC0+bmFtZSk7CiAJbW9kLT5rbHBfYWxpdmUgPSBmYWxzZTsKKwlvYmotPm1vZCA9IE5VTEw7CiAJa2xwX2NsZWFudXBfbW9kdWxlX3BhdGNoZXNfbGltaXRlZChtb2QsIHBhdGNoKTsKIAltdXRleF91bmxvY2soJmtscF9tdXRleCk7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9sb2NraW5nL3FzcGlubG9ja19wYXJhdmlydC5oIGIva2VybmVsL2xvY2tpbmcvcXNwaW5sb2NrX3BhcmF2aXJ0LmgKaW5kZXggODliYWIwNy4uZTg0ZDIxYSAxMDA2NDQKLS0tIGEva2VybmVsL2xvY2tpbmcvcXNwaW5sb2NrX3BhcmF2aXJ0LmgKKysrIGIva2VybmVsL2xvY2tpbmcvcXNwaW5sb2NrX3BhcmF2aXJ0LmgKQEAgLTI2OSw3ICsyNjksNyBAQCBwdl93YWl0X2Vhcmx5KHN0cnVjdCBwdl9ub2RlICpwcmV2LCBpbnQgbG9vcCkKIAlpZiAoKGxvb3AgJiBQVl9QUkVWX0NIRUNLX01BU0spICE9IDApCiAJCXJldHVybiBmYWxzZTsKIAotCXJldHVybiBSRUFEX09OQ0UocHJldi0+c3RhdGUpICE9IHZjcHVfcnVubmluZyB8fCB2Y3B1X2lzX3ByZWVtcHRlZChwcmV2LT5jcHUpOworCXJldHVybiBSRUFEX09OQ0UocHJldi0+c3RhdGUpICE9IHZjcHVfcnVubmluZzsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2tlcm5lbC9tb2R1bGUuYyBiL2tlcm5lbC9tb2R1bGUuYwppbmRleCA5ZWU5MzQyLi5mZjJkNzM1OWEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9tb2R1bGUuYworKysgYi9rZXJuZWwvbW9kdWxlLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvZXh0YWJsZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZWxvYWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZV9zaWduYXR1cmUuaD4KICNpbmNsdWRlIDxsaW51eC90cmFjZV9ldmVudHMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KQEAgLTU0NCwxMiArNTQ1LDIwIEBAIHN0YXRpYyBjb25zdCBjaGFyICprZXJuZWxfc3ltYm9sX25hbWUoY29uc3Qgc3RydWN0IGtlcm5lbF9zeW1ib2wgKnN5bSkKICNlbmRpZgogfQogCi1zdGF0aWMgaW50IGNtcF9uYW1lKGNvbnN0IHZvaWQgKnZhLCBjb25zdCB2b2lkICp2YikKK3N0YXRpYyBjb25zdCBjaGFyICprZXJuZWxfc3ltYm9sX25hbWVzcGFjZShjb25zdCBzdHJ1Y3Qga2VybmVsX3N5bWJvbCAqc3ltKQogewotCWNvbnN0IGNoYXIgKmE7Ci0JY29uc3Qgc3RydWN0IGtlcm5lbF9zeW1ib2wgKmI7Ci0JYSA9IHZhOyBiID0gdmI7Ci0JcmV0dXJuIHN0cmNtcChhLCBrZXJuZWxfc3ltYm9sX25hbWUoYikpOworI2lmZGVmIENPTkZJR19IQVZFX0FSQ0hfUFJFTDMyX1JFTE9DQVRJT05TCisJaWYgKCFzeW0tPm5hbWVzcGFjZV9vZmZzZXQpCisJCXJldHVybiBOVUxMOworCXJldHVybiBvZmZzZXRfdG9fcHRyKCZzeW0tPm5hbWVzcGFjZV9vZmZzZXQpOworI2Vsc2UKKwlyZXR1cm4gc3ltLT5uYW1lc3BhY2U7CisjZW5kaWYKK30KKworc3RhdGljIGludCBjbXBfbmFtZShjb25zdCB2b2lkICpuYW1lLCBjb25zdCB2b2lkICpzeW0pCit7CisJcmV0dXJuIHN0cmNtcChuYW1lLCBrZXJuZWxfc3ltYm9sX25hbWUoc3ltKSk7CiB9CiAKIHN0YXRpYyBib29sIGZpbmRfZXhwb3J0ZWRfc3ltYm9sX2luX3NlY3Rpb24oY29uc3Qgc3RydWN0IHN5bXNlYXJjaCAqc3ltcywKQEAgLTEzNzksNiArMTM4OCw0MSBAQCBzdGF0aWMgaW5saW5lIGludCBzYW1lX21hZ2ljKGNvbnN0IGNoYXIgKmFtYWdpYywgY29uc3QgY2hhciAqYm1hZ2ljLAogfQogI2VuZGlmIC8qIENPTkZJR19NT0RWRVJTSU9OUyAqLwogCitzdGF0aWMgY2hhciAqZ2V0X21vZGluZm8oY29uc3Qgc3RydWN0IGxvYWRfaW5mbyAqaW5mbywgY29uc3QgY2hhciAqdGFnKTsKK3N0YXRpYyBjaGFyICpnZXRfbmV4dF9tb2RpbmZvKGNvbnN0IHN0cnVjdCBsb2FkX2luZm8gKmluZm8sIGNvbnN0IGNoYXIgKnRhZywKKwkJCSAgICAgIGNoYXIgKnByZXYpOworCitzdGF0aWMgaW50IHZlcmlmeV9uYW1lc3BhY2VfaXNfaW1wb3J0ZWQoY29uc3Qgc3RydWN0IGxvYWRfaW5mbyAqaW5mbywKKwkJCQkJY29uc3Qgc3RydWN0IGtlcm5lbF9zeW1ib2wgKnN5bSwKKwkJCQkJc3RydWN0IG1vZHVsZSAqbW9kKQoreworCWNvbnN0IGNoYXIgKm5hbWVzcGFjZTsKKwljaGFyICppbXBvcnRlZF9uYW1lc3BhY2U7CisKKwluYW1lc3BhY2UgPSBrZXJuZWxfc3ltYm9sX25hbWVzcGFjZShzeW0pOworCWlmIChuYW1lc3BhY2UpIHsKKwkJaW1wb3J0ZWRfbmFtZXNwYWNlID0gZ2V0X21vZGluZm8oaW5mbywgImltcG9ydF9ucyIpOworCQl3aGlsZSAoaW1wb3J0ZWRfbmFtZXNwYWNlKSB7CisJCQlpZiAoc3RyY21wKG5hbWVzcGFjZSwgaW1wb3J0ZWRfbmFtZXNwYWNlKSA9PSAwKQorCQkJCXJldHVybiAwOworCQkJaW1wb3J0ZWRfbmFtZXNwYWNlID0gZ2V0X25leHRfbW9kaW5mbygKKwkJCQlpbmZvLCAiaW1wb3J0X25zIiwgaW1wb3J0ZWRfbmFtZXNwYWNlKTsKKwkJfQorI2lmZGVmIENPTkZJR19NT0RVTEVfQUxMT1dfTUlTU0lOR19OQU1FU1BBQ0VfSU1QT1JUUworCQlwcl93YXJuKAorI2Vsc2UKKwkJcHJfZXJyKAorI2VuZGlmCisJCQkiJXM6IG1vZHVsZSB1c2VzIHN5bWJvbCAoJXMpIGZyb20gbmFtZXNwYWNlICVzLCBidXQgZG9lcyBub3QgaW1wb3J0IGl0LlxuIiwKKwkJCW1vZC0+bmFtZSwga2VybmVsX3N5bWJvbF9uYW1lKHN5bSksIG5hbWVzcGFjZSk7CisjaWZuZGVmIENPTkZJR19NT0RVTEVfQUxMT1dfTUlTU0lOR19OQU1FU1BBQ0VfSU1QT1JUUworCQlyZXR1cm4gLUVJTlZBTDsKKyNlbmRpZgorCX0KKwlyZXR1cm4gMDsKK30KKworCiAvKiBSZXNvbHZlIGEgc3ltYm9sIGZvciB0aGlzIG1vZHVsZS4gIEkuZS4gaWYgd2UgZmluZCBvbmUsIHJlY29yZCB1c2FnZS4gKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2VybmVsX3N5bWJvbCAqcmVzb2x2ZV9zeW1ib2woc3RydWN0IG1vZHVsZSAqbW9kLAogCQkJCQkJICBjb25zdCBzdHJ1Y3QgbG9hZF9pbmZvICppbmZvLApAQCAtMTQwNyw2ICsxNDUxLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2VybmVsX3N5bWJvbCAqcmVzb2x2ZV9zeW1ib2woc3RydWN0IG1vZHVsZSAqbW9kLAogCQlnb3RvIGdldG5hbWU7CiAJfQogCisJZXJyID0gdmVyaWZ5X25hbWVzcGFjZV9pc19pbXBvcnRlZChpbmZvLCBzeW0sIG1vZCk7CisJaWYgKGVycikgeworCQlzeW0gPSBFUlJfUFRSKGVycik7CisJCWdvdG8gZ2V0bmFtZTsKKwl9CisKIAllcnIgPSByZWZfbW9kdWxlKG1vZCwgb3duZXIpOwogCWlmIChlcnIpIHsKIAkJc3ltID0gRVJSX1BUUihlcnIpOwpAQCAtMjQ4MSw3ICsyNTMxLDggQEAgc3RhdGljIGNoYXIgKm5leHRfc3RyaW5nKGNoYXIgKnN0cmluZywgdW5zaWduZWQgbG9uZyAqc2Vjc2l6ZSkKIAlyZXR1cm4gc3RyaW5nOwogfQogCi1zdGF0aWMgY2hhciAqZ2V0X21vZGluZm8oc3RydWN0IGxvYWRfaW5mbyAqaW5mbywgY29uc3QgY2hhciAqdGFnKQorc3RhdGljIGNoYXIgKmdldF9uZXh0X21vZGluZm8oY29uc3Qgc3RydWN0IGxvYWRfaW5mbyAqaW5mbywgY29uc3QgY2hhciAqdGFnLAorCQkJICAgICAgY2hhciAqcHJldikKIHsKIAljaGFyICpwOwogCXVuc2lnbmVkIGludCB0YWdsZW4gPSBzdHJsZW4odGFnKTsKQEAgLTI0OTIsMTMgKzI1NDMsMjUgQEAgc3RhdGljIGNoYXIgKmdldF9tb2RpbmZvKHN0cnVjdCBsb2FkX2luZm8gKmluZm8sIGNvbnN0IGNoYXIgKnRhZykKIAkgKiBnZXRfbW9kaW5mbygpIGNhbGxzIG1hZGUgYmVmb3JlIHJld3JpdGVfc2VjdGlvbl9oZWFkZXJzKCkKIAkgKiBtdXN0IHVzZSBzaF9vZmZzZXQsIGFzIHNoX2FkZHIgaXNuJ3Qgc2V0IQogCSAqLwotCWZvciAocCA9IChjaGFyICopaW5mby0+aGRyICsgaW5mb3NlYy0+c2hfb2Zmc2V0OyBwOyBwID0gbmV4dF9zdHJpbmcocCwgJnNpemUpKSB7CisJY2hhciAqbW9kaW5mbyA9IChjaGFyICopaW5mby0+aGRyICsgaW5mb3NlYy0+c2hfb2Zmc2V0OworCisJaWYgKHByZXYpIHsKKwkJc2l6ZSAtPSBwcmV2IC0gbW9kaW5mbzsKKwkJbW9kaW5mbyA9IG5leHRfc3RyaW5nKHByZXYsICZzaXplKTsKKwl9CisKKwlmb3IgKHAgPSBtb2RpbmZvOyBwOyBwID0gbmV4dF9zdHJpbmcocCwgJnNpemUpKSB7CiAJCWlmIChzdHJuY21wKHAsIHRhZywgdGFnbGVuKSA9PSAwICYmIHBbdGFnbGVuXSA9PSAnPScpCiAJCQlyZXR1cm4gcCArIHRhZ2xlbiArIDE7CiAJfQogCXJldHVybiBOVUxMOwogfQogCitzdGF0aWMgY2hhciAqZ2V0X21vZGluZm8oY29uc3Qgc3RydWN0IGxvYWRfaW5mbyAqaW5mbywgY29uc3QgY2hhciAqdGFnKQoreworCXJldHVybiBnZXRfbmV4dF9tb2RpbmZvKGluZm8sIHRhZywgTlVMTCk7Cit9CisKIHN0YXRpYyB2b2lkIHNldHVwX21vZGluZm8oc3RydWN0IG1vZHVsZSAqbW9kLCBzdHJ1Y3QgbG9hZF9pbmZvICppbmZvKQogewogCXN0cnVjdCBtb2R1bGVfYXR0cmlidXRlICphdHRyOwpAQCAtMjc3Niw4ICsyODM5LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGttZW1sZWFrX2xvYWRfbW9kdWxlKGNvbnN0IHN0cnVjdCBtb2R1bGUgKm1vZCwKICNpZmRlZiBDT05GSUdfTU9EVUxFX1NJRwogc3RhdGljIGludCBtb2R1bGVfc2lnX2NoZWNrKHN0cnVjdCBsb2FkX2luZm8gKmluZm8sIGludCBmbGFncykKIHsKLQlpbnQgZXJyID0gLUVOT0tFWTsKKwlpbnQgZXJyID0gLUVOT0RBVEE7CiAJY29uc3QgdW5zaWduZWQgbG9uZyBtYXJrZXJsZW4gPSBzaXplb2YoTU9EVUxFX1NJR19TVFJJTkcpIC0gMTsKKwljb25zdCBjaGFyICpyZWFzb247CiAJY29uc3Qgdm9pZCAqbW9kID0gaW5mby0+aGRyOwogCiAJLyoKQEAgLTI3OTIsMTYgKzI4NTYsMzggQEAgc3RhdGljIGludCBtb2R1bGVfc2lnX2NoZWNrKHN0cnVjdCBsb2FkX2luZm8gKmluZm8sIGludCBmbGFncykKIAkJZXJyID0gbW9kX3ZlcmlmeV9zaWcobW9kLCBpbmZvKTsKIAl9CiAKLQlpZiAoIWVycikgeworCXN3aXRjaCAoZXJyKSB7CisJY2FzZSAwOgogCQlpbmZvLT5zaWdfb2sgPSB0cnVlOwogCQlyZXR1cm4gMDsKKworCQkvKiBXZSBkb24ndCBwZXJtaXQgbW9kdWxlcyB0byBiZSBsb2FkZWQgaW50byB0cnVzdGVkIGtlcm5lbHMKKwkJICogd2l0aG91dCBhIHZhbGlkIHNpZ25hdHVyZSBvbiB0aGVtLCBidXQgaWYgd2UncmUgbm90CisJCSAqIGVuZm9yY2luZywgY2VydGFpbiBlcnJvcnMgYXJlIG5vbi1mYXRhbC4KKwkJICovCisJY2FzZSAtRU5PREFUQToKKwkJcmVhc29uID0gIkxvYWRpbmcgb2YgdW5zaWduZWQgbW9kdWxlIjsKKwkJZ290byBkZWNpZGU7CisJY2FzZSAtRU5PUEtHOgorCQlyZWFzb24gPSAiTG9hZGluZyBvZiBtb2R1bGUgd2l0aCB1bnN1cHBvcnRlZCBjcnlwdG8iOworCQlnb3RvIGRlY2lkZTsKKwljYXNlIC1FTk9LRVk6CisJCXJlYXNvbiA9ICJMb2FkaW5nIG9mIG1vZHVsZSB3aXRoIHVuYXZhaWxhYmxlIGtleSI7CisJZGVjaWRlOgorCQlpZiAoaXNfbW9kdWxlX3NpZ19lbmZvcmNlZCgpKSB7CisJCQlwcl9ub3RpY2UoIiVzIGlzIHJlamVjdGVkXG4iLCByZWFzb24pOworCQkJcmV0dXJuIC1FS0VZUkVKRUNURUQ7CisJCX0KKworCQlyZXR1cm4gc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fTU9EVUxFX1NJR05BVFVSRSk7CisKKwkJLyogQWxsIG90aGVyIGVycm9ycyBhcmUgZmF0YWwsIGluY2x1ZGluZyBub21lbSwgdW5wYXJzZWFibGUKKwkJICogc2lnbmF0dXJlcyBhbmQgc2lnbmF0dXJlIGNoZWNrIGZhaWx1cmVzIC0gZXZlbiBpZiBzaWduYXR1cmVzCisJCSAqIGFyZW4ndCByZXF1aXJlZC4KKwkJICovCisJZGVmYXVsdDoKKwkJcmV0dXJuIGVycjsKIAl9Ci0KLQkvKiBOb3QgaGF2aW5nIGEgc2lnbmF0dXJlIGlzIG9ubHkgYW4gZXJyb3IgaWYgd2UncmUgc3RyaWN0LiAqLwotCWlmIChlcnIgPT0gLUVOT0tFWSAmJiAhaXNfbW9kdWxlX3NpZ19lbmZvcmNlZCgpKQotCQllcnIgPSAwOwotCi0JcmV0dXJuIGVycjsKIH0KICNlbHNlIC8qICFDT05GSUdfTU9EVUxFX1NJRyAqLwogc3RhdGljIGludCBtb2R1bGVfc2lnX2NoZWNrKHN0cnVjdCBsb2FkX2luZm8gKmluZm8sIGludCBmbGFncykKZGlmZiAtLWdpdCBhL2tlcm5lbC9tb2R1bGVfc2lnbmF0dXJlLmMgYi9rZXJuZWwvbW9kdWxlX3NpZ25hdHVyZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMjRhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvbW9kdWxlX3NpZ25hdHVyZS5jCkBAIC0wLDAgKzEsNDYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIE1vZHVsZSBzaWduYXR1cmUgY2hlY2tlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZWQgSGF0LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBXcml0dGVuIGJ5IERhdmlkIEhvd2VsbHMgKGRob3dlbGxzQHJlZGhhdC5jb20pCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvcHJpbnRrLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlX3NpZ25hdHVyZS5oPgorI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKworLyoqCisgKiBtb2RfY2hlY2tfc2lnIC0gY2hlY2sgdGhhdCB0aGUgZ2l2ZW4gc2lnbmF0dXJlIGlzIHNhbmUKKyAqCisgKiBAbXM6CQlTaWduYXR1cmUgdG8gY2hlY2suCisgKiBAZmlsZV9sZW46CVNpemUgb2YgdGhlIGZpbGUgdG8gd2hpY2ggQG1zIGlzIGFwcGVuZGVkLgorICogQG5hbWU6CVdoYXQgaXMgYmVpbmcgY2hlY2tlZC4gVXNlZCBmb3IgZXJyb3IgbWVzc2FnZXMuCisgKi8KK2ludCBtb2RfY2hlY2tfc2lnKGNvbnN0IHN0cnVjdCBtb2R1bGVfc2lnbmF0dXJlICptcywgc2l6ZV90IGZpbGVfbGVuLAorCQkgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisJaWYgKGJlMzJfdG9fY3B1KG1zLT5zaWdfbGVuKSA+PSBmaWxlX2xlbiAtIHNpemVvZigqbXMpKQorCQlyZXR1cm4gLUVCQURNU0c7CisKKwlpZiAobXMtPmlkX3R5cGUgIT0gUEtFWV9JRF9QS0NTNykgeworCQlwcl9lcnIoIiVzOiBNb2R1bGUgaXMgbm90IHNpZ25lZCB3aXRoIGV4cGVjdGVkIFBLQ1MjNyBtZXNzYWdlXG4iLAorCQkgICAgICAgbmFtZSk7CisJCXJldHVybiAtRU5PUEtHOworCX0KKworCWlmIChtcy0+YWxnbyAhPSAwIHx8CisJICAgIG1zLT5oYXNoICE9IDAgfHwKKwkgICAgbXMtPnNpZ25lcl9sZW4gIT0gMCB8fAorCSAgICBtcy0+a2V5X2lkX2xlbiAhPSAwIHx8CisJICAgIG1zLT5fX3BhZFswXSAhPSAwIHx8CisJICAgIG1zLT5fX3BhZFsxXSAhPSAwIHx8CisJICAgIG1zLT5fX3BhZFsyXSAhPSAwKSB7CisJCXByX2VycigiJXM6IFBLQ1MjNyBzaWduYXR1cmUgaW5mbyBoYXMgdW5leHBlY3RlZCBub24temVybyBwYXJhbXNcbiIsCisJCSAgICAgICBuYW1lKTsKKwkJcmV0dXJuIC1FQkFETVNHOworCX0KKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEva2VybmVsL21vZHVsZV9zaWduaW5nLmMgYi9rZXJuZWwvbW9kdWxlX3NpZ25pbmcuYwppbmRleCBiMTBmYjE5Li45ZDlmYzY3IDEwMDY0NAotLS0gYS9rZXJuZWwvbW9kdWxlX3NpZ25pbmcuYworKysgYi9rZXJuZWwvbW9kdWxlX3NpZ25pbmcuYwpAQCAtNywzNyArNywxMyBAQAogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVfc2lnbmF0dXJlLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvdmVyaWZpY2F0aW9uLmg+CiAjaW5jbHVkZSA8Y3J5cHRvL3B1YmxpY19rZXkuaD4KICNpbmNsdWRlICJtb2R1bGUtaW50ZXJuYWwuaCIKIAotZW51bSBwa2V5X2lkX3R5cGUgewotCVBLRVlfSURfUEdQLAkJLyogT3BlblBHUCBnZW5lcmF0ZWQga2V5IElEICovCi0JUEtFWV9JRF9YNTA5LAkJLyogWC41MDkgYXJiaXRyYXJ5IHN1YmplY3RLZXlJZGVudGlmaWVyICovCi0JUEtFWV9JRF9QS0NTNywJCS8qIFNpZ25hdHVyZSBpbiBQS0NTIzcgbWVzc2FnZSAqLwotfTsKLQotLyoKLSAqIE1vZHVsZSBzaWduYXR1cmUgaW5mb3JtYXRpb24gYmxvY2suCi0gKgotICogVGhlIGNvbnN0aXR1ZW50cyBvZiB0aGUgc2lnbmF0dXJlIHNlY3Rpb24gYXJlLCBpbiBvcmRlcjoKLSAqCi0gKgktIFNpZ25lcidzIG5hbWUKLSAqCS0gS2V5IGlkZW50aWZpZXIKLSAqCS0gU2lnbmF0dXJlIGRhdGEKLSAqCS0gSW5mb3JtYXRpb24gYmxvY2sKLSAqLwotc3RydWN0IG1vZHVsZV9zaWduYXR1cmUgewotCXU4CWFsZ287CQkvKiBQdWJsaWMta2V5IGNyeXB0byBhbGdvcml0aG0gWzBdICovCi0JdTgJaGFzaDsJCS8qIERpZ2VzdCBhbGdvcml0aG0gWzBdICovCi0JdTgJaWRfdHlwZTsJLyogS2V5IGlkZW50aWZpZXIgdHlwZSBbUEtFWV9JRF9QS0NTN10gKi8KLQl1OAlzaWduZXJfbGVuOwkvKiBMZW5ndGggb2Ygc2lnbmVyJ3MgbmFtZSBbMF0gKi8KLQl1OAlrZXlfaWRfbGVuOwkvKiBMZW5ndGggb2Yga2V5IGlkZW50aWZpZXIgWzBdICovCi0JdTgJX19wYWRbM107Ci0JX19iZTMyCXNpZ19sZW47CS8qIExlbmd0aCBvZiBzaWduYXR1cmUgZGF0YSAqLwotfTsKLQogLyoKICAqIFZlcmlmeSB0aGUgc2lnbmF0dXJlIG9uIGEgbW9kdWxlLgogICovCkBAIC00NSw2ICsyMSw3IEBAIGludCBtb2RfdmVyaWZ5X3NpZyhjb25zdCB2b2lkICptb2QsIHN0cnVjdCBsb2FkX2luZm8gKmluZm8pCiB7CiAJc3RydWN0IG1vZHVsZV9zaWduYXR1cmUgbXM7CiAJc2l6ZV90IHNpZ19sZW4sIG1vZGxlbiA9IGluZm8tPmxlbjsKKwlpbnQgcmV0OwogCiAJcHJfZGV2ZWwoIj09PiVzKCwlenUpXG4iLCBfX2Z1bmNfXywgbW9kbGVuKTsKIApAQCAtNTIsMzIgKzI5LDE1IEBAIGludCBtb2RfdmVyaWZ5X3NpZyhjb25zdCB2b2lkICptb2QsIHN0cnVjdCBsb2FkX2luZm8gKmluZm8pCiAJCXJldHVybiAtRUJBRE1TRzsKIAogCW1lbWNweSgmbXMsIG1vZCArIChtb2RsZW4gLSBzaXplb2YobXMpKSwgc2l6ZW9mKG1zKSk7Ci0JbW9kbGVuIC09IHNpemVvZihtcyk7CisKKwlyZXQgPSBtb2RfY2hlY2tfc2lnKCZtcywgbW9kbGVuLCBpbmZvLT5uYW1lKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJc2lnX2xlbiA9IGJlMzJfdG9fY3B1KG1zLnNpZ19sZW4pOwotCWlmIChzaWdfbGVuID49IG1vZGxlbikKLQkJcmV0dXJuIC1FQkFETVNHOwotCW1vZGxlbiAtPSBzaWdfbGVuOworCW1vZGxlbiAtPSBzaWdfbGVuICsgc2l6ZW9mKG1zKTsKIAlpbmZvLT5sZW4gPSBtb2RsZW47CiAKLQlpZiAobXMuaWRfdHlwZSAhPSBQS0VZX0lEX1BLQ1M3KSB7Ci0JCXByX2VycigiJXM6IE1vZHVsZSBpcyBub3Qgc2lnbmVkIHdpdGggZXhwZWN0ZWQgUEtDUyM3IG1lc3NhZ2VcbiIsCi0JCSAgICAgICBpbmZvLT5uYW1lKTsKLQkJcmV0dXJuIC1FTk9QS0c7Ci0JfQotCi0JaWYgKG1zLmFsZ28gIT0gMCB8fAotCSAgICBtcy5oYXNoICE9IDAgfHwKLQkgICAgbXMuc2lnbmVyX2xlbiAhPSAwIHx8Ci0JICAgIG1zLmtleV9pZF9sZW4gIT0gMCB8fAotCSAgICBtcy5fX3BhZFswXSAhPSAwIHx8Ci0JICAgIG1zLl9fcGFkWzFdICE9IDAgfHwKLQkgICAgbXMuX19wYWRbMl0gIT0gMCkgewotCQlwcl9lcnIoIiVzOiBQS0NTIzcgc2lnbmF0dXJlIGluZm8gaGFzIHVuZXhwZWN0ZWQgbm9uLXplcm8gcGFyYW1zXG4iLAotCQkgICAgICAgaW5mby0+bmFtZSk7Ci0JCXJldHVybiAtRUJBRE1TRzsKLQl9Ci0KIAlyZXR1cm4gdmVyaWZ5X3BrY3M3X3NpZ25hdHVyZShtb2QsIG1vZGxlbiwgbW9kICsgbW9kbGVuLCBzaWdfbGVuLAogCQkJCSAgICAgIFZFUklGWV9VU0VfU0VDT05EQVJZX0tFWVJJTkcsCiAJCQkJICAgICAgVkVSSUZZSU5HX01PRFVMRV9TSUdOQVRVUkUsCmRpZmYgLS1naXQgYS9rZXJuZWwvcGFuaWMuYyBiL2tlcm5lbC9wYW5pYy5jCmluZGV4IDA1NzU0MGIuLjQ3ZThlYmMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9wYW5pYy5jCisrKyBiL2tlcm5lbC9wYW5pYy5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvZGVidWdfbG9ja3MuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC9kZWJ1Zy5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tnZGIuaD4KICNpbmNsdWRlIDxsaW51eC9rbXNnX2R1bXAuaD4KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgogI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+CkBAIC0yMjAsNiArMjIxLDEzIEBAIHZvaWQgcGFuaWMoY29uc3QgY2hhciAqZm10LCAuLi4pCiAjZW5kaWYKIAogCS8qCisJICogSWYga2dkYiBpcyBlbmFibGVkLCBnaXZlIGl0IGEgY2hhbmNlIHRvIHJ1biBiZWZvcmUgd2Ugc3RvcCBhbGwKKwkgKiB0aGUgb3RoZXIgQ1BVcyBvciBlbHNlIHdlIHdvbid0IGJlIGFibGUgdG8gZGVidWcgcHJvY2Vzc2VzIGxlZnQKKwkgKiBydW5uaW5nIG9uIHRoZW0uCisJICovCisJa2dkYl9wYW5pYyhidWYpOworCisJLyoKIAkgKiBJZiB3ZSBoYXZlIGNyYXNoZWQgYW5kIHdlIGhhdmUgYSBjcmFzaCBrZXJuZWwgbG9hZGVkIGxldCBpdCBoYW5kbGUKIAkgKiBldmVyeXRoaW5nIGVsc2UuCiAJICogSWYgd2Ugd2FudCB0byBydW4gdGhpcyBhZnRlciBjYWxsaW5nIHBhbmljX25vdGlmaWVycywgcGFzcwpAQCAtNTUxLDkgKzU1OSw2IEBAIHZvaWQgX193YXJuKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCB2b2lkICpjYWxsZXIsIHVuc2lnbmVkIHRhaW50LAogewogCWRpc2FibGVfdHJhY2Vfb25fd2FybmluZygpOwogCi0JaWYgKGFyZ3MpCi0JCXByX3dhcm4oQ1VUX0hFUkUpOwotCiAJaWYgKGZpbGUpCiAJCXByX3dhcm4oIldBUk5JTkc6IENQVTogJWQgUElEOiAlZCBhdCAlczolZCAlcFNcbiIsCiAJCQlyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpLCBjdXJyZW50LT5waWQsIGZpbGUsIGxpbmUsCkBAIC01OTEsMzcgKzU5NiwyNiBAQCB2b2lkIF9fd2Fybihjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgdm9pZCAqY2FsbGVyLCB1bnNpZ25lZCB0YWludCwKIAlhZGRfdGFpbnQodGFpbnQsIExPQ0tERVBfU1RJTExfT0spOwogfQogCi0jaWZkZWYgV0FOVF9XQVJOX09OX1NMT1dQQVRICi12b2lkIHdhcm5fc2xvd3BhdGhfZm10KGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyICpmbXQsIC4uLikKKyNpZm5kZWYgX19XQVJOX0ZMQUdTCit2b2lkIHdhcm5fc2xvd3BhdGhfZm10KGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCB1bnNpZ25lZCB0YWludCwKKwkJICAgICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXN0cnVjdCB3YXJuX2FyZ3MgYXJnczsKIAotCWFyZ3MuZm10ID0gZm10OwotCXZhX3N0YXJ0KGFyZ3MuYXJncywgZm10KTsKLQlfX3dhcm4oZmlsZSwgbGluZSwgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCBUQUlOVF9XQVJOLCBOVUxMLAotCSAgICAgICAmYXJncyk7Ci0JdmFfZW5kKGFyZ3MuYXJncyk7Ci19Ci1FWFBPUlRfU1lNQk9MKHdhcm5fc2xvd3BhdGhfZm10KTsKKwlwcl93YXJuKENVVF9IRVJFKTsKIAotdm9pZCB3YXJuX3Nsb3dwYXRoX2ZtdF90YWludChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKLQkJCSAgICAgdW5zaWduZWQgdGFpbnQsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotewotCXN0cnVjdCB3YXJuX2FyZ3MgYXJnczsKKwlpZiAoIWZtdCkgeworCQlfX3dhcm4oZmlsZSwgbGluZSwgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCB0YWludCwKKwkJICAgICAgIE5VTEwsIE5VTEwpOworCQlyZXR1cm47CisJfQogCiAJYXJncy5mbXQgPSBmbXQ7CiAJdmFfc3RhcnQoYXJncy5hcmdzLCBmbXQpOwogCV9fd2FybihmaWxlLCBsaW5lLCBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksIHRhaW50LCBOVUxMLCAmYXJncyk7CiAJdmFfZW5kKGFyZ3MuYXJncyk7CiB9Ci1FWFBPUlRfU1lNQk9MKHdhcm5fc2xvd3BhdGhfZm10X3RhaW50KTsKLQotdm9pZCB3YXJuX3Nsb3dwYXRoX251bGwoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUpCi17Ci0JcHJfd2FybihDVVRfSEVSRSk7Ci0JX193YXJuKGZpbGUsIGxpbmUsIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgVEFJTlRfV0FSTiwgTlVMTCwgTlVMTCk7Ci19Ci1FWFBPUlRfU1lNQk9MKHdhcm5fc2xvd3BhdGhfbnVsbCk7CitFWFBPUlRfU1lNQk9MKHdhcm5fc2xvd3BhdGhfZm10KTsKICNlbHNlCiB2b2lkIF9fd2Fybl9wcmludGsoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CmRpZmYgLS1naXQgYS9rZXJuZWwvcGFyYW1zLmMgYi9rZXJuZWwvcGFyYW1zLmMKaW5kZXggY2Y0NDg3OC4uOGU1NmY4YiAxMDA2NDQKLS0tIGEva2VybmVsL3BhcmFtcy5jCisrKyBiL2tlcm5lbC9wYXJhbXMuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAKICNpZmRlZiBDT05GSUdfU1lTRlMKIC8qIFByb3RlY3RzIGFsbCBidWlsdC1pbiBwYXJhbWV0ZXJzLCBtb2R1bGVzIHVzZSB0aGVpciBvd24gcGFyYW1fbG9jayAqLwpAQCAtOTYsMTMgKzk3LDE5IEBAIGJvb2wgcGFyYW1lcShjb25zdCBjaGFyICphLCBjb25zdCBjaGFyICpiKQogCXJldHVybiBwYXJhbWVxbihhLCBiLCBzdHJsZW4oYSkrMSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBhcmFtX2NoZWNrX3Vuc2FmZShjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcCkKK3N0YXRpYyBib29sIHBhcmFtX2NoZWNrX3Vuc2FmZShjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcCkKIHsKKwlpZiAoa3AtPmZsYWdzICYgS0VSTkVMX1BBUkFNX0ZMX0hXUEFSQU0gJiYKKwkgICAgc2VjdXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fTU9EVUxFX1BBUkFNRVRFUlMpKQorCQlyZXR1cm4gZmFsc2U7CisKIAlpZiAoa3AtPmZsYWdzICYgS0VSTkVMX1BBUkFNX0ZMX1VOU0FGRSkgewogCQlwcl9ub3RpY2UoIlNldHRpbmcgZGFuZ2Vyb3VzIG9wdGlvbiAlcyAtIHRhaW50aW5nIGtlcm5lbFxuIiwKIAkJCSAga3AtPm5hbWUpOwogCQlhZGRfdGFpbnQoVEFJTlRfVVNFUiwgTE9DS0RFUF9TVElMTF9PSyk7CiAJfQorCisJcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBpbnQgcGFyc2Vfb25lKGNoYXIgKnBhcmFtLApAQCAtMTMyLDggKzEzOSwxMCBAQCBzdGF0aWMgaW50IHBhcnNlX29uZShjaGFyICpwYXJhbSwKIAkJCXByX2RlYnVnKCJoYW5kbGluZyAlcyB3aXRoICVwXG4iLCBwYXJhbSwKIAkJCQlwYXJhbXNbaV0ub3BzLT5zZXQpOwogCQkJa2VybmVsX3BhcmFtX2xvY2socGFyYW1zW2ldLm1vZCk7Ci0JCQlwYXJhbV9jaGVja191bnNhZmUoJnBhcmFtc1tpXSk7Ci0JCQllcnIgPSBwYXJhbXNbaV0ub3BzLT5zZXQodmFsLCAmcGFyYW1zW2ldKTsKKwkJCWlmIChwYXJhbV9jaGVja191bnNhZmUoJnBhcmFtc1tpXSkpCisJCQkJZXJyID0gcGFyYW1zW2ldLm9wcy0+c2V0KHZhbCwgJnBhcmFtc1tpXSk7CisJCQllbHNlCisJCQkJZXJyID0gLUVQRVJNOwogCQkJa2VybmVsX3BhcmFtX3VubG9jayhwYXJhbXNbaV0ubW9kKTsKIAkJCXJldHVybiBlcnI7CiAJCX0KQEAgLTU1Myw4ICs1NjIsMTAgQEAgc3RhdGljIHNzaXplX3QgcGFyYW1fYXR0cl9zdG9yZShzdHJ1Y3QgbW9kdWxlX2F0dHJpYnV0ZSAqbWF0dHIsCiAJCXJldHVybiAtRVBFUk07CiAKIAlrZXJuZWxfcGFyYW1fbG9jayhtay0+bW9kKTsKLQlwYXJhbV9jaGVja191bnNhZmUoYXR0cmlidXRlLT5wYXJhbSk7Ci0JZXJyID0gYXR0cmlidXRlLT5wYXJhbS0+b3BzLT5zZXQoYnVmLCBhdHRyaWJ1dGUtPnBhcmFtKTsKKwlpZiAocGFyYW1fY2hlY2tfdW5zYWZlKGF0dHJpYnV0ZS0+cGFyYW0pKQorCQllcnIgPSBhdHRyaWJ1dGUtPnBhcmFtLT5vcHMtPnNldChidWYsIGF0dHJpYnV0ZS0+cGFyYW0pOworCWVsc2UKKwkJZXJyID0gLUVQRVJNOwogCWtlcm5lbF9wYXJhbV91bmxvY2sobWstPm1vZCk7CiAJaWYgKCFlcnIpCiAJCXJldHVybiBsZW47CmRpZmYgLS1naXQgYS9rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMgYi9rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMKaW5kZXggY2Q3NDM0ZS4uM2MwYTVhOCAxMDA2NDQKLS0tIGEva2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jCisrKyBiL2tlcm5lbC9wb3dlci9oaWJlcm5hdGUuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSA8bGludXgvZ2VuaGQuaD4KICNpbmNsdWRlIDxsaW51eC9rdGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL3Bvd2VyLmg+CiAKICNpbmNsdWRlICJwb3dlci5oIgpAQCAtNjgsNyArNjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2hpYmVybmF0aW9uX29wcyAqaGliZXJuYXRpb25fb3BzOwogCiBib29sIGhpYmVybmF0aW9uX2F2YWlsYWJsZSh2b2lkKQogewotCXJldHVybiAobm9oaWJlcm5hdGUgPT0gMCk7CisJcmV0dXJuIG5vaGliZXJuYXRlID09IDAgJiYgIXNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX0hJQkVSTkFUSU9OKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9rZXJuZWwvcHJpbnRrL2JyYWlsbGUuYyBiL2tlcm5lbC9wcmludGsvYnJhaWxsZS5jCmluZGV4IDFkMjFlYmEuLjE3YTk1OTEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9wcmludGsvYnJhaWxsZS5jCisrKyBiL2tlcm5lbC9wcmludGsvYnJhaWxsZS5jCkBAIC0xMSwxMSArMTEsMTggQEAKIAogaW50IF9icmFpbGxlX2NvbnNvbGVfc2V0dXAoY2hhciAqKnN0ciwgY2hhciAqKmJybF9vcHRpb25zKQogewotCWlmICghc3RybmNtcCgqc3RyLCAiYnJsLCIsIDQpKSB7CisJc2l6ZV90IGxlbjsKKworCWxlbiA9IHN0cl9oYXNfcHJlZml4KCpzdHIsICJicmwsIik7CisJaWYgKGxlbikgewogCQkqYnJsX29wdGlvbnMgPSAiIjsKLQkJKnN0ciArPSA0OwotCX0gZWxzZSBpZiAoIXN0cm5jbXAoKnN0ciwgImJybD0iLCA0KSkgewotCQkqYnJsX29wdGlvbnMgPSAqc3RyICsgNDsKKwkJKnN0ciArPSBsZW47CisJCXJldHVybiAwOworCX0KKworCWxlbiA9IHN0cl9oYXNfcHJlZml4KCpzdHIsICJicmw9Iik7CisJaWYgKGxlbikgeworCQkqYnJsX29wdGlvbnMgPSAqc3RyICsgbGVuOwogCQkqc3RyID0gc3RyY2hyKCpicmxfb3B0aW9ucywgJywnKTsKIAkJaWYgKCEqc3RyKSB7CiAJCQlwcl9lcnIoIm5lZWQgcG9ydCBuYW1lIGFmdGVyIGJybD1cbiIpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3ByaW50ay9wcmludGsuYyBiL2tlcm5lbC9wcmludGsvcHJpbnRrLmMKaW5kZXggMTg4OGY2YS4uY2E2NTMyNyAxMDA2NDQKLS0tIGEva2VybmVsL3ByaW50ay9wcmludGsuYworKysgYi9rZXJuZWwvcHJpbnRrL3ByaW50ay5jCkBAIC0xMTgsMTkgKzExOCwyOSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgZGV2a21zZ19sb2cgPSBERVZLTVNHX0xPR19NQVNLX0RFRkFVTFQ7CiAKIHN0YXRpYyBpbnQgX19jb250cm9sX2Rldmttc2coY2hhciAqc3RyKQogeworCXNpemVfdCBsZW47CisKIAlpZiAoIXN0cikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoIXN0cm5jbXAoc3RyLCAib24iLCAyKSkgeworCWxlbiA9IHN0cl9oYXNfcHJlZml4KHN0ciwgIm9uIik7CisJaWYgKGxlbikgewogCQlkZXZrbXNnX2xvZyA9IERFVktNU0dfTE9HX01BU0tfT047Ci0JCXJldHVybiAyOwotCX0gZWxzZSBpZiAoIXN0cm5jbXAoc3RyLCAib2ZmIiwgMykpIHsKLQkJZGV2a21zZ19sb2cgPSBERVZLTVNHX0xPR19NQVNLX09GRjsKLQkJcmV0dXJuIDM7Ci0JfSBlbHNlIGlmICghc3RybmNtcChzdHIsICJyYXRlbGltaXQiLCA5KSkgewotCQlkZXZrbXNnX2xvZyA9IERFVktNU0dfTE9HX01BU0tfREVGQVVMVDsKLQkJcmV0dXJuIDk7CisJCXJldHVybiBsZW47CiAJfQorCisJbGVuID0gc3RyX2hhc19wcmVmaXgoc3RyLCAib2ZmIik7CisJaWYgKGxlbikgeworCQlkZXZrbXNnX2xvZyA9IERFVktNU0dfTE9HX01BU0tfT0ZGOworCQlyZXR1cm4gbGVuOworCX0KKworCWxlbiA9IHN0cl9oYXNfcHJlZml4KHN0ciwgInJhdGVsaW1pdCIpOworCWlmIChsZW4pIHsKKwkJZGV2a21zZ19sb2cgPSBERVZLTVNHX0xPR19NQVNLX0RFRkFVTFQ7CisJCXJldHVybiBsZW47CisJfQorCiAJcmV0dXJuIC1FSU5WQUw7CiB9CiAKQEAgLTMyNzQsNyArMzI4NCw3IEBAIGJvb2wga21zZ19kdW1wX2dldF9idWZmZXIoc3RydWN0IGttc2dfZHVtcGVyICpkdW1wZXIsIGJvb2wgc3lzbG9nLAogCS8qIG1vdmUgZmlyc3QgcmVjb3JkIGZvcndhcmQgdW50aWwgbGVuZ3RoIGZpdHMgaW50byB0aGUgYnVmZmVyICovCiAJc2VxID0gZHVtcGVyLT5jdXJfc2VxOwogCWlkeCA9IGR1bXBlci0+Y3VyX2lkeDsKLQl3aGlsZSAobCA+IHNpemUgJiYgc2VxIDwgZHVtcGVyLT5uZXh0X3NlcSkgeworCXdoaWxlIChsID49IHNpemUgJiYgc2VxIDwgZHVtcGVyLT5uZXh0X3NlcSkgewogCQlzdHJ1Y3QgcHJpbnRrX2xvZyAqbXNnID0gbG9nX2Zyb21faWR4KGlkeCk7CiAKIAkJbCAtPSBtc2dfcHJpbnRfdGV4dChtc2csIHRydWUsIHRpbWUsIE5VTEwsIDApOwpkaWZmIC0tZ2l0IGEva2VybmVsL3Jlc291cmNlLmMgYi9rZXJuZWwvcmVzb3VyY2UuYwppbmRleCA3ZWE0MzA2Li43NjAzNmE0IDEwMDY0NAotLS0gYS9rZXJuZWwvcmVzb3VyY2UuYworKysgYi9rZXJuZWwvcmVzb3VyY2UuYwpAQCAtNDg3LDggKzQ4Nyw4IEBAIGludCB3YWxrX3N5c3RlbV9yYW1fcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAJd2hpbGUgKHN0YXJ0IDwgZW5kICYmCiAJICAgICAgICFmaW5kX25leHRfaW9tZW1fcmVzKHN0YXJ0LCBlbmQsIGZsYWdzLCBJT1JFU19ERVNDX05PTkUsCiAJCQkJICAgIGZhbHNlLCAmcmVzKSkgewotCQlwZm4gPSAocmVzLnN0YXJ0ICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKLQkJZW5kX3BmbiA9IChyZXMuZW5kICsgMSkgPj4gUEFHRV9TSElGVDsKKwkJcGZuID0gUEZOX1VQKHJlcy5zdGFydCk7CisJCWVuZF9wZm4gPSBQRk5fRE9XTihyZXMuZW5kICsgMSk7CiAJCWlmIChlbmRfcGZuID4gcGZuKQogCQkJcmV0ID0gKCpmdW5jKShwZm4sIGVuZF9wZm4gLSBwZm4sIGFyZyk7CiAJCWlmIChyZXQpCkBAIC0xNjQ0LDYgKzE2NDQsMzQgQEAgdm9pZCByZXNvdXJjZV9saXN0X2ZyZWUoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKIEVYUE9SVF9TWU1CT0wocmVzb3VyY2VfbGlzdF9mcmVlKTsKIAogI2lmZGVmIENPTkZJR19ERVZJQ0VfUFJJVkFURQorc3RhdGljIHN0cnVjdCByZXNvdXJjZSAqX19yZXF1ZXN0X2ZyZWVfbWVtX3JlZ2lvbihzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCXN0cnVjdCByZXNvdXJjZSAqYmFzZSwgdW5zaWduZWQgbG9uZyBzaXplLCBjb25zdCBjaGFyICpuYW1lKQoreworCXJlc291cmNlX3NpemVfdCBlbmQsIGFkZHI7CisJc3RydWN0IHJlc291cmNlICpyZXM7CisKKwlzaXplID0gQUxJR04oc2l6ZSwgMVVMIDw8IFBBX1NFQ1RJT05fU0hJRlQpOworCWVuZCA9IG1pbl90KHVuc2lnbmVkIGxvbmcsIGJhc2UtPmVuZCwgKDFVTCA8PCBNQVhfUEhZU01FTV9CSVRTKSAtIDEpOworCWFkZHIgPSBlbmQgLSBzaXplICsgMVVMOworCisJZm9yICg7IGFkZHIgPiBzaXplICYmIGFkZHIgPj0gYmFzZS0+c3RhcnQ7IGFkZHIgLT0gc2l6ZSkgeworCQlpZiAocmVnaW9uX2ludGVyc2VjdHMoYWRkciwgc2l6ZSwgMCwgSU9SRVNfREVTQ19OT05FKSAhPQorCQkJCVJFR0lPTl9ESVNKT0lOVCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChkZXYpCisJCQlyZXMgPSBkZXZtX3JlcXVlc3RfbWVtX3JlZ2lvbihkZXYsIGFkZHIsIHNpemUsIG5hbWUpOworCQllbHNlCisJCQlyZXMgPSByZXF1ZXN0X21lbV9yZWdpb24oYWRkciwgc2l6ZSwgbmFtZSk7CisJCWlmICghcmVzKQorCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJCXJlcy0+ZGVzYyA9IElPUkVTX0RFU0NfREVWSUNFX1BSSVZBVEVfTUVNT1JZOworCQlyZXR1cm4gcmVzOworCX0KKworCXJldHVybiBFUlJfUFRSKC1FUkFOR0UpOworfQorCiAvKioKICAqIGRldm1fcmVxdWVzdF9mcmVlX21lbV9yZWdpb24gLSBmaW5kIGZyZWUgcmVnaW9uIGZvciBkZXZpY2UgcHJpdmF0ZSBtZW1vcnkKICAqCkBAIC0xNjU4LDI4ICsxNjg2LDE3IEBAIEVYUE9SVF9TWU1CT0wocmVzb3VyY2VfbGlzdF9mcmVlKTsKIHN0cnVjdCByZXNvdXJjZSAqZGV2bV9yZXF1ZXN0X2ZyZWVfbWVtX3JlZ2lvbihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCXN0cnVjdCByZXNvdXJjZSAqYmFzZSwgdW5zaWduZWQgbG9uZyBzaXplKQogewotCXJlc291cmNlX3NpemVfdCBlbmQsIGFkZHI7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0KLQlzaXplID0gQUxJR04oc2l6ZSwgMVVMIDw8IFBBX1NFQ1RJT05fU0hJRlQpOwotCWVuZCA9IG1pbl90KHVuc2lnbmVkIGxvbmcsIGJhc2UtPmVuZCwgKDFVTCA8PCBNQVhfUEhZU01FTV9CSVRTKSAtIDEpOwotCWFkZHIgPSBlbmQgLSBzaXplICsgMVVMOwotCi0JZm9yICg7IGFkZHIgPiBzaXplICYmIGFkZHIgPj0gYmFzZS0+c3RhcnQ7IGFkZHIgLT0gc2l6ZSkgewotCQlpZiAocmVnaW9uX2ludGVyc2VjdHMoYWRkciwgc2l6ZSwgMCwgSU9SRVNfREVTQ19OT05FKSAhPQotCQkJCVJFR0lPTl9ESVNKT0lOVCkKLQkJCWNvbnRpbnVlOwotCi0JCXJlcyA9IGRldm1fcmVxdWVzdF9tZW1fcmVnaW9uKGRldiwgYWRkciwgc2l6ZSwgZGV2X25hbWUoZGV2KSk7Ci0JCWlmICghcmVzKQotCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JCXJlcy0+ZGVzYyA9IElPUkVTX0RFU0NfREVWSUNFX1BSSVZBVEVfTUVNT1JZOwotCQlyZXR1cm4gcmVzOwotCX0KLQotCXJldHVybiBFUlJfUFRSKC1FUkFOR0UpOworCXJldHVybiBfX3JlcXVlc3RfZnJlZV9tZW1fcmVnaW9uKGRldiwgYmFzZSwgc2l6ZSwgZGV2X25hbWUoZGV2KSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChkZXZtX3JlcXVlc3RfZnJlZV9tZW1fcmVnaW9uKTsKKworc3RydWN0IHJlc291cmNlICpyZXF1ZXN0X2ZyZWVfbWVtX3JlZ2lvbihzdHJ1Y3QgcmVzb3VyY2UgKmJhc2UsCisJCXVuc2lnbmVkIGxvbmcgc2l6ZSwgY29uc3QgY2hhciAqbmFtZSkKK3sKKwlyZXR1cm4gX19yZXF1ZXN0X2ZyZWVfbWVtX3JlZ2lvbihOVUxMLCBiYXNlLCBzaXplLCBuYW1lKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHJlcXVlc3RfZnJlZV9tZW1fcmVnaW9uKTsKKwogI2VuZGlmIC8qIENPTkZJR19ERVZJQ0VfUFJJVkFURSAqLwogCiBzdGF0aWMgaW50IF9faW5pdCBzdHJpY3RfaW9tZW0oY2hhciAqc3RyKQpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NvcmUuYyBiL2tlcm5lbC9zY2hlZC9jb3JlLmMKaW5kZXggNWU4Mzg3Yi4uNzg4MGY0ZiAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkL2NvcmUuYworKysgYi9rZXJuZWwvc2NoZWQvY29yZS5jCkBAIC0xNjU2LDcgKzE2NTYsOCBAQCBzdGF0aWMgaW50IF9fc2V0X2NwdXNfYWxsb3dlZF9wdHIoc3RydWN0IHRhc2tfc3RydWN0ICpwLAogCWlmIChjcHVtYXNrX2VxdWFsKHAtPmNwdXNfcHRyLCBuZXdfbWFzaykpCiAJCWdvdG8gb3V0OwogCi0JaWYgKCFjcHVtYXNrX2ludGVyc2VjdHMobmV3X21hc2ssIGNwdV92YWxpZF9tYXNrKSkgeworCWRlc3RfY3B1ID0gY3B1bWFza19hbnlfYW5kKGNwdV92YWxpZF9tYXNrLCBuZXdfbWFzayk7CisJaWYgKGRlc3RfY3B1ID49IG5yX2NwdV9pZHMpIHsKIAkJcmV0ID0gLUVJTlZBTDsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTY3Nyw3ICsxNjc4LDYgQEAgc3RhdGljIGludCBfX3NldF9jcHVzX2FsbG93ZWRfcHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwKIAlpZiAoY3B1bWFza190ZXN0X2NwdSh0YXNrX2NwdShwKSwgbmV3X21hc2spKQogCQlnb3RvIG91dDsKIAotCWRlc3RfY3B1ID0gY3B1bWFza19hbnlfYW5kKGNwdV92YWxpZF9tYXNrLCBuZXdfbWFzayk7CiAJaWYgKHRhc2tfcnVubmluZyhycSwgcCkgfHwgcC0+c3RhdGUgPT0gVEFTS19XQUtJTkcpIHsKIAkJc3RydWN0IG1pZ3JhdGlvbl9hcmcgYXJnID0geyBwLCBkZXN0X2NwdSB9OwogCQkvKiBOZWVkIGhlbHAgZnJvbSBtaWdyYXRpb24gdGhyZWFkOiBkcm9wIGxvY2sgYW5kIHdhaXQuICovCkBAIC0zMjU0LDcgKzMyNTQsNyBAQCBzdGF0aWMgc3RydWN0IHJxICpmaW5pc2hfdGFza19zd2l0Y2goc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2KQogCQkvKiBUYXNrIGlzIGRvbmUgd2l0aCBpdHMgc3RhY2suICovCiAJCXB1dF90YXNrX3N0YWNrKHByZXYpOwogCi0JCXB1dF90YXNrX3N0cnVjdChwcmV2KTsKKwkJcHV0X3Rhc2tfc3RydWN0X3JjdV91c2VyKHByZXYpOwogCX0KIAogCXRpY2tfbm9oel90YXNrX3N3aXRjaCgpOwpAQCAtMzM1OCwxNSArMzM1OCwxNSBAQCBjb250ZXh0X3N3aXRjaChzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXYsCiAJCWVsc2UKIAkJCXByZXYtPmFjdGl2ZV9tbSA9IE5VTEw7CiAJfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gdXNlcgorCQltZW1iYXJyaWVyX3N3aXRjaF9tbShycSwgcHJldi0+YWN0aXZlX21tLCBuZXh0LT5tbSk7CiAJCS8qCiAJCSAqIHN5c19tZW1iYXJyaWVyKCkgcmVxdWlyZXMgYW4gc21wX21iKCkgYmV0d2VlbiBzZXR0aW5nCi0JCSAqIHJxLT5jdXJyIGFuZCByZXR1cm5pbmcgdG8gdXNlcnNwYWNlLgorCQkgKiBycS0+Y3VyciAvIG1lbWJhcnJpZXJfc3dpdGNoX21tKCkgYW5kIHJldHVybmluZyB0byB1c2Vyc3BhY2UuCiAJCSAqCiAJCSAqIFRoZSBiZWxvdyBwcm92aWRlcyB0aGlzIGVpdGhlciB0aHJvdWdoIHN3aXRjaF9tbSgpLCBvciBpbgogCQkgKiBjYXNlICdwcmV2LT5hY3RpdmVfbW0gPT0gbmV4dC0+bW0nIHRocm91Z2gKIAkJICogZmluaXNoX3Rhc2tfc3dpdGNoKCkncyBtbWRyb3AoKS4KIAkJICovCi0KIAkJc3dpdGNoX21tX2lycXNfb2ZmKHByZXYtPmFjdGl2ZV9tbSwgbmV4dC0+bW0sIG5leHQpOwogCiAJCWlmICghcHJldi0+bW0pIHsgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIGtlcm5lbApAQCAtMzg3MSwxMyArMzg3MSwyMiBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX3NjaGVkdWxlX2J1ZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXYpCiAvKgogICogVmFyaW91cyBzY2hlZHVsZSgpLXRpbWUgZGVidWdnaW5nIGNoZWNrcyBhbmQgc3RhdGlzdGljczoKICAqLwotc3RhdGljIGlubGluZSB2b2lkIHNjaGVkdWxlX2RlYnVnKHN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldikKK3N0YXRpYyBpbmxpbmUgdm9pZCBzY2hlZHVsZV9kZWJ1ZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXYsIGJvb2wgcHJlZW1wdCkKIHsKICNpZmRlZiBDT05GSUdfU0NIRURfU1RBQ0tfRU5EX0NIRUNLCiAJaWYgKHRhc2tfc3RhY2tfZW5kX2NvcnJ1cHRlZChwcmV2KSkKIAkJcGFuaWMoImNvcnJ1cHRlZCBzdGFjayBlbmQgZGV0ZWN0ZWQgaW5zaWRlIHNjaGVkdWxlclxuIik7CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19ERUJVR19BVE9NSUNfU0xFRVAKKwlpZiAoIXByZWVtcHQgJiYgcHJldi0+c3RhdGUgJiYgcHJldi0+bm9uX2Jsb2NrX2NvdW50KSB7CisJCXByaW50ayhLRVJOX0VSUiAiQlVHOiBzY2hlZHVsaW5nIGluIGEgbm9uLWJsb2NraW5nIHNlY3Rpb246ICVzLyVkLyVpXG4iLAorCQkJcHJldi0+Y29tbSwgcHJldi0+cGlkLCBwcmV2LT5ub25fYmxvY2tfY291bnQpOworCQlkdW1wX3N0YWNrKCk7CisJCWFkZF90YWludChUQUlOVF9XQVJOLCBMT0NLREVQX1NUSUxMX09LKTsKKwl9CisjZW5kaWYKKwogCWlmICh1bmxpa2VseShpbl9hdG9taWNfcHJlZW1wdF9vZmYoKSkpIHsKIAkJX19zY2hlZHVsZV9idWcocHJldik7CiAJCXByZWVtcHRfY291bnRfc2V0KFBSRUVNUFRfRElTQUJMRUQpOwpAQCAtMzk4OSw3ICszOTk4LDcgQEAgc3RhdGljIHZvaWQgX19zY2hlZCBub3RyYWNlIF9fc2NoZWR1bGUoYm9vbCBwcmVlbXB0KQogCXJxID0gY3B1X3JxKGNwdSk7CiAJcHJldiA9IHJxLT5jdXJyOwogCi0Jc2NoZWR1bGVfZGVidWcocHJldik7CisJc2NoZWR1bGVfZGVidWcocHJldiwgcHJlZW1wdCk7CiAKIAlpZiAoc2NoZWRfZmVhdChIUlRJQ0spKQogCQlocnRpY2tfY2xlYXIocnEpOwpAQCAtNDAzMyw3ICs0MDQyLDExIEBAIHN0YXRpYyB2b2lkIF9fc2NoZWQgbm90cmFjZSBfX3NjaGVkdWxlKGJvb2wgcHJlZW1wdCkKIAogCWlmIChsaWtlbHkocHJldiAhPSBuZXh0KSkgewogCQlycS0+bnJfc3dpdGNoZXMrKzsKLQkJcnEtPmN1cnIgPSBuZXh0OworCQkvKgorCQkgKiBSQ1UgdXNlcnMgb2YgcmN1X2RlcmVmZXJlbmNlKHJxLT5jdXJyKSBtYXkgbm90IHNlZQorCQkgKiBjaGFuZ2VzIHRvIHRhc2tfc3RydWN0IG1hZGUgYnkgcGlja19uZXh0X3Rhc2soKS4KKwkJICovCisJCVJDVV9JTklUX1BPSU5URVIocnEtPmN1cnIsIG5leHQpOwogCQkvKgogCQkgKiBUaGUgbWVtYmFycmllciBzeXN0ZW0gY2FsbCByZXF1aXJlcyBlYWNoIGFyY2hpdGVjdHVyZQogCQkgKiB0byBoYXZlIGEgZnVsbCBtZW1vcnkgYmFycmllciBhZnRlciB1cGRhdGluZwpAQCAtNDIxNCw5ICs0MjI3LDggQEAgc3RhdGljIHZvaWQgX19zY2hlZCBub3RyYWNlIHByZWVtcHRfc2NoZWR1bGVfY29tbW9uKHZvaWQpCiAKICNpZmRlZiBDT05GSUdfUFJFRU1QVElPTgogLyoKLSAqIHRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IHRvIHNjaGVkdWxlKCkgZnJvbSBpbi1rZXJuZWwgcHJlZW1wdGlvbgotICogb2ZmIG9mIHByZWVtcHRfZW5hYmxlLiBLZXJuZWwgcHJlZW1wdGlvbnMgb2ZmIHJldHVybiBmcm9tIGludGVycnVwdAotICogb2NjdXIgdGhlcmUgYW5kIGNhbGwgc2NoZWR1bGUgZGlyZWN0bHkuCisgKiBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCB0byBzY2hlZHVsZSgpIGZyb20gaW4ta2VybmVsIHByZWVtcHRpb24KKyAqIG9mZiBvZiBwcmVlbXB0X2VuYWJsZS4KICAqLwogYXNtbGlua2FnZSBfX3Zpc2libGUgdm9pZCBfX3NjaGVkIG5vdHJhY2UgcHJlZW1wdF9zY2hlZHVsZSh2b2lkKQogewpAQCAtNDI4Nyw3ICs0Mjk5LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocHJlZW1wdF9zY2hlZHVsZV9ub3RyYWNlKTsKICNlbmRpZiAvKiBDT05GSUdfUFJFRU1QVElPTiAqLwogCiAvKgotICogdGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgdG8gc2NoZWR1bGUoKSBmcm9tIGtlcm5lbCBwcmVlbXB0aW9uCisgKiBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCB0byBzY2hlZHVsZSgpIGZyb20ga2VybmVsIHByZWVtcHRpb24KICAqIG9mZiBvZiBpcnEgY29udGV4dC4KICAqIE5vdGUsIHRoYXQgdGhpcyBpcyBjYWxsZWQgYW5kIHJldHVybiB3aXRoIGlycXMgZGlzYWJsZWQuIFRoaXMgd2lsbAogICogcHJvdGVjdCB1cyBhZ2FpbnN0IHJlY3Vyc2l2ZSBjYWxsaW5nIGZyb20gaXJxLgpAQCAtNjA2MCw3ICs2MDcyLDggQEAgdm9pZCBpbml0X2lkbGUoc3RydWN0IHRhc2tfc3RydWN0ICppZGxlLCBpbnQgY3B1KQogCV9fc2V0X3Rhc2tfY3B1KGlkbGUsIGNwdSk7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKLQlycS0+Y3VyciA9IHJxLT5pZGxlID0gaWRsZTsKKwlycS0+aWRsZSA9IGlkbGU7CisJcmN1X2Fzc2lnbl9wb2ludGVyKHJxLT5jdXJyLCBpZGxlKTsKIAlpZGxlLT5vbl9ycSA9IFRBU0tfT05fUlFfUVVFVUVEOwogI2lmZGVmIENPTkZJR19TTVAKIAlpZGxlLT5vbl9jcHUgPSAxOwpAQCAtNjQyMSw4ICs2NDM0LDYgQEAgaW50IHNjaGVkX2NwdV9hY3RpdmF0ZSh1bnNpZ25lZCBpbnQgY3B1KQogCX0KIAlycV91bmxvY2tfaXJxcmVzdG9yZShycSwgJnJmKTsKIAotCXVwZGF0ZV9tYXhfaW50ZXJ2YWwoKTsKLQogCXJldHVybiAwOwogfQogCkBAIC02NzYzLDcgKzY3NzQsNyBAQCB2b2lkIF9fX21pZ2h0X3NsZWVwKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBpbnQgcHJlZW1wdF9vZmZzZXQpCiAJcmN1X3NsZWVwX2NoZWNrKCk7CiAKIAlpZiAoKHByZWVtcHRfY291bnRfZXF1YWxzKHByZWVtcHRfb2Zmc2V0KSAmJiAhaXJxc19kaXNhYmxlZCgpICYmCi0JICAgICAhaXNfaWRsZV90YXNrKGN1cnJlbnQpKSB8fAorCSAgICAgIWlzX2lkbGVfdGFzayhjdXJyZW50KSAmJiAhY3VycmVudC0+bm9uX2Jsb2NrX2NvdW50KSB8fAogCSAgICBzeXN0ZW1fc3RhdGUgPT0gU1lTVEVNX0JPT1RJTkcgfHwgc3lzdGVtX3N0YXRlID4gU1lTVEVNX1JVTk5JTkcgfHwKIAkgICAgb29wc19pbl9wcm9ncmVzcykKIAkJcmV0dXJuOwpAQCAtNjc3OSw4ICs2NzkwLDggQEAgdm9pZCBfX19taWdodF9zbGVlcChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgaW50IHByZWVtcHRfb2Zmc2V0KQogCQkiQlVHOiBzbGVlcGluZyBmdW5jdGlvbiBjYWxsZWQgZnJvbSBpbnZhbGlkIGNvbnRleHQgYXQgJXM6JWRcbiIsCiAJCQlmaWxlLCBsaW5lKTsKIAlwcmludGsoS0VSTl9FUlIKLQkJImluX2F0b21pYygpOiAlZCwgaXJxc19kaXNhYmxlZCgpOiAlZCwgcGlkOiAlZCwgbmFtZTogJXNcbiIsCi0JCQlpbl9hdG9taWMoKSwgaXJxc19kaXNhYmxlZCgpLAorCQkiaW5fYXRvbWljKCk6ICVkLCBpcnFzX2Rpc2FibGVkKCk6ICVkLCBub25fYmxvY2s6ICVkLCBwaWQ6ICVkLCBuYW1lOiAlc1xuIiwKKwkJCWluX2F0b21pYygpLCBpcnFzX2Rpc2FibGVkKCksIGN1cnJlbnQtPm5vbl9ibG9ja19jb3VudCwKIAkJCWN1cnJlbnQtPnBpZCwgY3VycmVudC0+Y29tbSk7CiAKIAlpZiAodGFza19zdGFja19lbmRfY29ycnVwdGVkKGN1cnJlbnQpKQpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2ZhaXIuYyBiL2tlcm5lbC9zY2hlZC9mYWlyLmMKaW5kZXggZDRiYmY2OC4uODNhYjM1ZSAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkL2ZhaXIuYworKysgYi9rZXJuZWwvc2NoZWQvZmFpci5jCkBAIC03NDksNyArNzQ5LDYgQEAgdm9pZCBpbml0X2VudGl0eV9ydW5uYWJsZV9hdmVyYWdlKHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQogCS8qIHdoZW4gdGhpcyB0YXNrIGVucXVldWUnZWQsIGl0IHdpbGwgY29udHJpYnV0ZSB0byBpdHMgY2ZzX3JxJ3MgbG9hZF9hdmcgKi8KIH0KIAotc3RhdGljIGlubGluZSB1NjQgY2ZzX3JxX2Nsb2NrX3Rhc2soc3RydWN0IGNmc19ycSAqY2ZzX3JxKTsKIHN0YXRpYyB2b2lkIGF0dGFjaF9lbnRpdHlfY2ZzX3JxKHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKTsKIAogLyoKQEAgLTE2MDMsNyArMTYwMiw3IEBAIHN0YXRpYyB2b2lkIHRhc2tfbnVtYV9jb21wYXJlKHN0cnVjdCB0YXNrX251bWFfZW52ICplbnYsCiAJCXJldHVybjsKIAogCXJjdV9yZWFkX2xvY2soKTsKLQljdXIgPSB0YXNrX3JjdV9kZXJlZmVyZW5jZSgmZHN0X3JxLT5jdXJyKTsKKwljdXIgPSByY3VfZGVyZWZlcmVuY2UoZHN0X3JxLT5jdXJyKTsKIAlpZiAoY3VyICYmICgoY3VyLT5mbGFncyAmIFBGX0VYSVRJTkcpIHx8IGlzX2lkbGVfdGFzayhjdXIpKSkKIAkJY3VyID0gTlVMTDsKIApAQCAtNDM1NCwyMSArNDM1MywxNiBAQCBzdGF0aWMgaW5saW5lIHU2NCBzY2hlZF9jZnNfYmFuZHdpZHRoX3NsaWNlKHZvaWQpCiB9CiAKIC8qCi0gKiBSZXBsZW5pc2ggcnVudGltZSBhY2NvcmRpbmcgdG8gYXNzaWduZWQgcXVvdGEgYW5kIHVwZGF0ZSBleHBpcmF0aW9uIHRpbWUuCi0gKiBXZSB1c2Ugc2NoZWRfY2xvY2tfY3B1IGRpcmVjdGx5IGluc3RlYWQgb2YgcnEtPmNsb2NrIHRvIGF2b2lkIGFkZGluZwotICogYWRkaXRpb25hbCBzeW5jaHJvbml6YXRpb24gYXJvdW5kIHJxLT5sb2NrLgorICogUmVwbGVuaXNoIHJ1bnRpbWUgYWNjb3JkaW5nIHRvIGFzc2lnbmVkIHF1b3RhLiBXZSB1c2Ugc2NoZWRfY2xvY2tfY3B1CisgKiBkaXJlY3RseSBpbnN0ZWFkIG9mIHJxLT5jbG9jayB0byBhdm9pZCBhZGRpbmcgYWRkaXRpb25hbCBzeW5jaHJvbml6YXRpb24KKyAqIGFyb3VuZCBycS0+bG9jay4KICAqCiAgKiByZXF1aXJlcyBjZnNfYi0+bG9jawogICovCiB2b2lkIF9fcmVmaWxsX2Nmc19iYW5kd2lkdGhfcnVudGltZShzdHJ1Y3QgY2ZzX2JhbmR3aWR0aCAqY2ZzX2IpCiB7Ci0JdTY0IG5vdzsKLQotCWlmIChjZnNfYi0+cXVvdGEgPT0gUlVOVElNRV9JTkYpCi0JCXJldHVybjsKLQotCW5vdyA9IHNjaGVkX2Nsb2NrX2NwdShzbXBfcHJvY2Vzc29yX2lkKCkpOwotCWNmc19iLT5ydW50aW1lID0gY2ZzX2ItPnF1b3RhOworCWlmIChjZnNfYi0+cXVvdGEgIT0gUlVOVElNRV9JTkYpCisJCWNmc19iLT5ydW50aW1lID0gY2ZzX2ItPnF1b3RhOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBjZnNfYmFuZHdpZHRoICp0Z19jZnNfYmFuZHdpZHRoKHN0cnVjdCB0YXNrX2dyb3VwICp0ZykKQEAgLTQzNzYsMTUgKzQzNzAsNiBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBjZnNfYmFuZHdpZHRoICp0Z19jZnNfYmFuZHdpZHRoKHN0cnVjdCB0YXNrX2dyb3VwICp0ZykKIAlyZXR1cm4gJnRnLT5jZnNfYmFuZHdpZHRoOwogfQogCi0vKiBycS0+dGFza19jbG9jayBub3JtYWxpemVkIGFnYWluc3QgYW55IHRpbWUgdGhpcyBjZnNfcnEgaGFzIHNwZW50IHRocm90dGxlZCAqLwotc3RhdGljIGlubGluZSB1NjQgY2ZzX3JxX2Nsb2NrX3Rhc2soc3RydWN0IGNmc19ycSAqY2ZzX3JxKQotewotCWlmICh1bmxpa2VseShjZnNfcnEtPnRocm90dGxlX2NvdW50KSkKLQkJcmV0dXJuIGNmc19ycS0+dGhyb3R0bGVkX2Nsb2NrX3Rhc2sgLSBjZnNfcnEtPnRocm90dGxlZF9jbG9ja190YXNrX3RpbWU7Ci0KLQlyZXR1cm4gcnFfY2xvY2tfdGFzayhycV9vZihjZnNfcnEpKSAtIGNmc19ycS0+dGhyb3R0bGVkX2Nsb2NrX3Rhc2tfdGltZTsKLX0KLQogLyogcmV0dXJucyAwIG9uIGZhaWx1cmUgdG8gYWxsb2NhdGUgcnVudGltZSAqLwogc3RhdGljIGludCBhc3NpZ25fY2ZzX3JxX3J1bnRpbWUoc3RydWN0IGNmc19ycSAqY2ZzX3JxKQogewpAQCAtNDQ3Niw3ICs0NDYxLDYgQEAgc3RhdGljIGludCB0Z191bnRocm90dGxlX3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0Zywgdm9pZCAqZGF0YSkKIAogCWNmc19ycS0+dGhyb3R0bGVfY291bnQtLTsKIAlpZiAoIWNmc19ycS0+dGhyb3R0bGVfY291bnQpIHsKLQkJLyogYWRqdXN0IGNmc19ycV9jbG9ja190YXNrKCkgKi8KIAkJY2ZzX3JxLT50aHJvdHRsZWRfY2xvY2tfdGFza190aW1lICs9IHJxX2Nsb2NrX3Rhc2socnEpIC0KIAkJCQkJICAgICBjZnNfcnEtPnRocm90dGxlZF9jbG9ja190YXNrOwogCkBAIC00OTk0LDE1ICs0OTc4LDEzIEBAIHN0YXRpYyB2b2lkIGluaXRfY2ZzX3JxX3J1bnRpbWUoc3RydWN0IGNmc19ycSAqY2ZzX3JxKQogCiB2b2lkIHN0YXJ0X2Nmc19iYW5kd2lkdGgoc3RydWN0IGNmc19iYW5kd2lkdGggKmNmc19iKQogewotCXU2NCBvdmVycnVuOwotCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmY2ZzX2ItPmxvY2spOwogCiAJaWYgKGNmc19iLT5wZXJpb2RfYWN0aXZlKQogCQlyZXR1cm47CiAKIAljZnNfYi0+cGVyaW9kX2FjdGl2ZSA9IDE7Ci0Jb3ZlcnJ1biA9IGhydGltZXJfZm9yd2FyZF9ub3coJmNmc19iLT5wZXJpb2RfdGltZXIsIGNmc19iLT5wZXJpb2QpOworCWhydGltZXJfZm9yd2FyZF9ub3coJmNmc19iLT5wZXJpb2RfdGltZXIsIGNmc19iLT5wZXJpb2QpOwogCWhydGltZXJfc3RhcnRfZXhwaXJlcygmY2ZzX2ItPnBlcmlvZF90aW1lciwgSFJUSU1FUl9NT0RFX0FCU19QSU5ORUQpOwogfQogCkBAIC01MDgwLDExICs1MDYyLDYgQEAgc3RhdGljIGlubGluZSBib29sIGNmc19iYW5kd2lkdGhfdXNlZCh2b2lkKQogCXJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGlubGluZSB1NjQgY2ZzX3JxX2Nsb2NrX3Rhc2soc3RydWN0IGNmc19ycSAqY2ZzX3JxKQotewotCXJldHVybiBycV9jbG9ja190YXNrKHJxX29mKGNmc19ycSkpOwotfQotCiBzdGF0aWMgdm9pZCBhY2NvdW50X2Nmc19ycV9ydW50aW1lKHN0cnVjdCBjZnNfcnEgKmNmc19ycSwgdTY0IGRlbHRhX2V4ZWMpIHt9CiBzdGF0aWMgYm9vbCBjaGVja19jZnNfcnFfcnVudGltZShzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEpIHsgcmV0dXJuIGZhbHNlOyB9CiBzdGF0aWMgdm9pZCBjaGVja19lbnF1ZXVlX3Rocm90dGxlKHN0cnVjdCBjZnNfcnEgKmNmc19ycSkge30KQEAgLTY0MTIsNyArNjM4OSw3IEBAIHN0YXRpYyBpbnQgZmluZF9lbmVyZ3lfZWZmaWNpZW50X2NwdShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwcmV2X2NwdSkKIAkJfQogCiAJCS8qIEV2YWx1YXRlIHRoZSBlbmVyZ3kgaW1wYWN0IG9mIHVzaW5nIHRoaXMgQ1BVLiAqLwotCQlpZiAobWF4X3NwYXJlX2NhcF9jcHUgPj0gMCkgeworCQlpZiAobWF4X3NwYXJlX2NhcF9jcHUgPj0gMCAmJiBtYXhfc3BhcmVfY2FwX2NwdSAhPSBwcmV2X2NwdSkgewogCQkJY3VyX2RlbHRhID0gY29tcHV0ZV9lbmVyZ3kocCwgbWF4X3NwYXJlX2NhcF9jcHUsIHBkKTsKIAkJCWN1cl9kZWx0YSAtPSBiYXNlX2VuZXJneV9wZDsKIAkJCWlmIChjdXJfZGVsdGEgPCBiZXN0X2RlbHRhKSB7CmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQvaWRsZS5jIGIva2VybmVsL3NjaGVkL2lkbGUuYwppbmRleCBjODkyYzYyLi44ZGFkNWFhIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQvaWRsZS5jCisrKyBiL2tlcm5lbC9zY2hlZC9pZGxlLmMKQEAgLTIzOCw3ICsyMzgsNiBAQCBzdGF0aWMgdm9pZCBkb19pZGxlKHZvaWQpCiAJdGlja19ub2h6X2lkbGVfZW50ZXIoKTsKIAogCXdoaWxlICghbmVlZF9yZXNjaGVkKCkpIHsKLQkJY2hlY2tfcGd0X2NhY2hlKCk7CiAJCXJtYigpOwogCiAJCWxvY2FsX2lycV9kaXNhYmxlKCk7CmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQvbWVtYmFycmllci5jIGIva2VybmVsL3NjaGVkL21lbWJhcnJpZXIuYwppbmRleCBhYThkNzU4Li5hMzliZWQyIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQvbWVtYmFycmllci5jCisrKyBiL2tlcm5lbC9zY2hlZC9tZW1iYXJyaWVyLmMKQEAgLTMwLDEwICszMCw0MiBAQCBzdGF0aWMgdm9pZCBpcGlfbWIodm9pZCAqaW5mbykKIAlzbXBfbWIoKTsJLyogSVBJcyBzaG91bGQgYmUgc2VyaWFsaXppbmcgYnV0IHBhcmFub2lkLiAqLwogfQogCitzdGF0aWMgdm9pZCBpcGlfc3luY19ycV9zdGF0ZSh2b2lkICppbmZvKQoreworCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gKHN0cnVjdCBtbV9zdHJ1Y3QgKikgaW5mbzsKKworCWlmIChjdXJyZW50LT5tbSAhPSBtbSkKKwkJcmV0dXJuOworCXRoaXNfY3B1X3dyaXRlKHJ1bnF1ZXVlcy5tZW1iYXJyaWVyX3N0YXRlLAorCQkgICAgICAgYXRvbWljX3JlYWQoJm1tLT5tZW1iYXJyaWVyX3N0YXRlKSk7CisJLyoKKwkgKiBJc3N1ZSBhIG1lbW9yeSBiYXJyaWVyIGFmdGVyIHNldHRpbmcKKwkgKiBNRU1CQVJSSUVSX1NUQVRFX0dMT0JBTF9FWFBFRElURUQgaW4gdGhlIGN1cnJlbnQgcnVucXVldWUgdG8KKwkgKiBndWFyYW50ZWUgdGhhdCBubyBtZW1vcnkgYWNjZXNzIGZvbGxvd2luZyByZWdpc3RyYXRpb24gaXMgcmVvcmRlcmVkCisJICogYmVmb3JlIHJlZ2lzdHJhdGlvbi4KKwkgKi8KKwlzbXBfbWIoKTsKK30KKwordm9pZCBtZW1iYXJyaWVyX2V4ZWNfbW1hcChzdHJ1Y3QgbW1fc3RydWN0ICptbSkKK3sKKwkvKgorCSAqIElzc3VlIGEgbWVtb3J5IGJhcnJpZXIgYmVmb3JlIGNsZWFyaW5nIG1lbWJhcnJpZXJfc3RhdGUgdG8KKwkgKiBndWFyYW50ZWUgdGhhdCBubyBtZW1vcnkgYWNjZXNzIHByaW9yIHRvIGV4ZWMgaXMgcmVvcmRlcmVkIGFmdGVyCisJICogY2xlYXJpbmcgdGhpcyBzdGF0ZS4KKwkgKi8KKwlzbXBfbWIoKTsKKwlhdG9taWNfc2V0KCZtbS0+bWVtYmFycmllcl9zdGF0ZSwgMCk7CisJLyoKKwkgKiBLZWVwIHRoZSBydW5xdWV1ZSBtZW1iYXJyaWVyX3N0YXRlIGluIHN5bmMgd2l0aCB0aGlzIG1tCisJICogbWVtYmFycmllcl9zdGF0ZS4KKwkgKi8KKwl0aGlzX2NwdV93cml0ZShydW5xdWV1ZXMubWVtYmFycmllcl9zdGF0ZSwgMCk7Cit9CisKIHN0YXRpYyBpbnQgbWVtYmFycmllcl9nbG9iYWxfZXhwZWRpdGVkKHZvaWQpCiB7CiAJaW50IGNwdTsKLQlib29sIGZhbGxiYWNrID0gZmFsc2U7CiAJY3B1bWFza192YXJfdCB0bXBtYXNrOwogCiAJaWYgKG51bV9vbmxpbmVfY3B1cygpID09IDEpCkBAIC00NSwxNyArNzcsMTEgQEAgc3RhdGljIGludCBtZW1iYXJyaWVyX2dsb2JhbF9leHBlZGl0ZWQodm9pZCkKIAkgKi8KIAlzbXBfbWIoKTsJLyogc3lzdGVtIGNhbGwgZW50cnkgaXMgbm90IGEgbWIuICovCiAKLQkvKgotCSAqIEV4cGVkaXRlZCBtZW1iYXJyaWVyIGNvbW1hbmRzIGd1YXJhbnRlZSB0aGF0IHRoZXkgd29uJ3QKLQkgKiBibG9jaywgaGVuY2UgdGhlIEdGUF9OT1dBSVQgYWxsb2NhdGlvbiBmbGFnIGFuZCBmYWxsYmFjawotCSAqIGltcGxlbWVudGF0aW9uLgotCSAqLwotCWlmICghemFsbG9jX2NwdW1hc2tfdmFyKCZ0bXBtYXNrLCBHRlBfTk9XQUlUKSkgewotCQkvKiBGYWxsYmFjayBmb3IgT09NLiAqLwotCQlmYWxsYmFjayA9IHRydWU7Ci0JfQorCWlmICghemFsbG9jX2NwdW1hc2tfdmFyKCZ0bXBtYXNrLCBHRlBfS0VSTkVMKSkKKwkJcmV0dXJuIC1FTk9NRU07CiAKIAljcHVzX3JlYWRfbG9jaygpOworCXJjdV9yZWFkX2xvY2soKTsKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgewogCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CiAKQEAgLTcwLDIzICs5NiwyOCBAQCBzdGF0aWMgaW50IG1lbWJhcnJpZXJfZ2xvYmFsX2V4cGVkaXRlZCh2b2lkKQogCQlpZiAoY3B1ID09IHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpCiAJCQljb250aW51ZTsKIAotCQlyY3VfcmVhZF9sb2NrKCk7Ci0JCXAgPSB0YXNrX3JjdV9kZXJlZmVyZW5jZSgmY3B1X3JxKGNwdSktPmN1cnIpOwotCQlpZiAocCAmJiBwLT5tbSAmJiAoYXRvbWljX3JlYWQoJnAtPm1tLT5tZW1iYXJyaWVyX3N0YXRlKSAmCi0JCQkJICAgTUVNQkFSUklFUl9TVEFURV9HTE9CQUxfRVhQRURJVEVEKSkgewotCQkJaWYgKCFmYWxsYmFjaykKLQkJCQlfX2NwdW1hc2tfc2V0X2NwdShjcHUsIHRtcG1hc2spOwotCQkJZWxzZQotCQkJCXNtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZShjcHUsIGlwaV9tYiwgTlVMTCwgMSk7Ci0JCX0KLQkJcmN1X3JlYWRfdW5sb2NrKCk7CisJCWlmICghKFJFQURfT05DRShjcHVfcnEoY3B1KS0+bWVtYmFycmllcl9zdGF0ZSkgJgorCQkgICAgTUVNQkFSUklFUl9TVEFURV9HTE9CQUxfRVhQRURJVEVEKSkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFNraXAgdGhlIENQVSBpZiBpdCBydW5zIGEga2VybmVsIHRocmVhZC4gVGhlIHNjaGVkdWxlcgorCQkgKiBsZWF2ZXMgdGhlIHByaW9yIHRhc2sgbW0gaW4gcGxhY2UgYXMgYW4gb3B0aW1pemF0aW9uIHdoZW4KKwkJICogc2NoZWR1bGluZyBhIGt0aHJlYWQuCisJCSAqLworCQlwID0gcmN1X2RlcmVmZXJlbmNlKGNwdV9ycShjcHUpLT5jdXJyKTsKKwkJaWYgKHAtPmZsYWdzICYgUEZfS1RIUkVBRCkKKwkJCWNvbnRpbnVlOworCisJCV9fY3B1bWFza19zZXRfY3B1KGNwdSwgdG1wbWFzayk7CiAJfQotCWlmICghZmFsbGJhY2spIHsKLQkJcHJlZW1wdF9kaXNhYmxlKCk7Ci0JCXNtcF9jYWxsX2Z1bmN0aW9uX21hbnkodG1wbWFzaywgaXBpX21iLCBOVUxMLCAxKTsKLQkJcHJlZW1wdF9lbmFibGUoKTsKLQkJZnJlZV9jcHVtYXNrX3Zhcih0bXBtYXNrKTsKLQl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CisKKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwlzbXBfY2FsbF9mdW5jdGlvbl9tYW55KHRtcG1hc2ssIGlwaV9tYiwgTlVMTCwgMSk7CisJcHJlZW1wdF9lbmFibGUoKTsKKworCWZyZWVfY3B1bWFza192YXIodG1wbWFzayk7CiAJY3B1c19yZWFkX3VubG9jaygpOwogCiAJLyoKQEAgLTEwMSwyMiArMTMyLDIyIEBAIHN0YXRpYyBpbnQgbWVtYmFycmllcl9nbG9iYWxfZXhwZWRpdGVkKHZvaWQpCiBzdGF0aWMgaW50IG1lbWJhcnJpZXJfcHJpdmF0ZV9leHBlZGl0ZWQoaW50IGZsYWdzKQogewogCWludCBjcHU7Ci0JYm9vbCBmYWxsYmFjayA9IGZhbHNlOwogCWNwdW1hc2tfdmFyX3QgdG1wbWFzazsKKwlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IGN1cnJlbnQtPm1tOwogCiAJaWYgKGZsYWdzICYgTUVNQkFSUklFUl9GTEFHX1NZTkNfQ09SRSkgewogCQlpZiAoIUlTX0VOQUJMRUQoQ09ORklHX0FSQ0hfSEFTX01FTUJBUlJJRVJfU1lOQ19DT1JFKSkKIAkJCXJldHVybiAtRUlOVkFMOwotCQlpZiAoIShhdG9taWNfcmVhZCgmY3VycmVudC0+bW0tPm1lbWJhcnJpZXJfc3RhdGUpICYKKwkJaWYgKCEoYXRvbWljX3JlYWQoJm1tLT5tZW1iYXJyaWVyX3N0YXRlKSAmCiAJCSAgICAgIE1FTUJBUlJJRVJfU1RBVEVfUFJJVkFURV9FWFBFRElURURfU1lOQ19DT1JFX1JFQURZKSkKIAkJCXJldHVybiAtRVBFUk07CiAJfSBlbHNlIHsKLQkJaWYgKCEoYXRvbWljX3JlYWQoJmN1cnJlbnQtPm1tLT5tZW1iYXJyaWVyX3N0YXRlKSAmCisJCWlmICghKGF0b21pY19yZWFkKCZtbS0+bWVtYmFycmllcl9zdGF0ZSkgJgogCQkgICAgICBNRU1CQVJSSUVSX1NUQVRFX1BSSVZBVEVfRVhQRURJVEVEX1JFQURZKSkKIAkJCXJldHVybiAtRVBFUk07CiAJfQogCi0JaWYgKG51bV9vbmxpbmVfY3B1cygpID09IDEpCisJaWYgKGF0b21pY19yZWFkKCZtbS0+bW1fdXNlcnMpID09IDEgfHwgbnVtX29ubGluZV9jcHVzKCkgPT0gMSkKIAkJcmV0dXJuIDA7CiAKIAkvKgpAQCAtMTI1LDE3ICsxNTYsMTEgQEAgc3RhdGljIGludCBtZW1iYXJyaWVyX3ByaXZhdGVfZXhwZWRpdGVkKGludCBmbGFncykKIAkgKi8KIAlzbXBfbWIoKTsJLyogc3lzdGVtIGNhbGwgZW50cnkgaXMgbm90IGEgbWIuICovCiAKLQkvKgotCSAqIEV4cGVkaXRlZCBtZW1iYXJyaWVyIGNvbW1hbmRzIGd1YXJhbnRlZSB0aGF0IHRoZXkgd29uJ3QKLQkgKiBibG9jaywgaGVuY2UgdGhlIEdGUF9OT1dBSVQgYWxsb2NhdGlvbiBmbGFnIGFuZCBmYWxsYmFjawotCSAqIGltcGxlbWVudGF0aW9uLgotCSAqLwotCWlmICghemFsbG9jX2NwdW1hc2tfdmFyKCZ0bXBtYXNrLCBHRlBfTk9XQUlUKSkgewotCQkvKiBGYWxsYmFjayBmb3IgT09NLiAqLwotCQlmYWxsYmFjayA9IHRydWU7Ci0JfQorCWlmICghemFsbG9jX2NwdW1hc2tfdmFyKCZ0bXBtYXNrLCBHRlBfS0VSTkVMKSkKKwkJcmV0dXJuIC1FTk9NRU07CiAKIAljcHVzX3JlYWRfbG9jaygpOworCXJjdV9yZWFkX2xvY2soKTsKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgewogCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CiAKQEAgLTE1MCwyMSArMTc1LDE3IEBAIHN0YXRpYyBpbnQgbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZChpbnQgZmxhZ3MpCiAJCWlmIChjcHUgPT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkKIAkJCWNvbnRpbnVlOwogCQlyY3VfcmVhZF9sb2NrKCk7Ci0JCXAgPSB0YXNrX3JjdV9kZXJlZmVyZW5jZSgmY3B1X3JxKGNwdSktPmN1cnIpOwotCQlpZiAocCAmJiBwLT5tbSA9PSBjdXJyZW50LT5tbSkgewotCQkJaWYgKCFmYWxsYmFjaykKLQkJCQlfX2NwdW1hc2tfc2V0X2NwdShjcHUsIHRtcG1hc2spOwotCQkJZWxzZQotCQkJCXNtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZShjcHUsIGlwaV9tYiwgTlVMTCwgMSk7Ci0JCX0KLQkJcmN1X3JlYWRfdW5sb2NrKCk7CisJCXAgPSByY3VfZGVyZWZlcmVuY2UoY3B1X3JxKGNwdSktPmN1cnIpOworCQlpZiAocCAmJiBwLT5tbSA9PSBtbSkKKwkJCV9fY3B1bWFza19zZXRfY3B1KGNwdSwgdG1wbWFzayk7CiAJfQotCWlmICghZmFsbGJhY2spIHsKLQkJcHJlZW1wdF9kaXNhYmxlKCk7Ci0JCXNtcF9jYWxsX2Z1bmN0aW9uX21hbnkodG1wbWFzaywgaXBpX21iLCBOVUxMLCAxKTsKLQkJcHJlZW1wdF9lbmFibGUoKTsKLQkJZnJlZV9jcHVtYXNrX3Zhcih0bXBtYXNrKTsKLQl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CisKKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwlzbXBfY2FsbF9mdW5jdGlvbl9tYW55KHRtcG1hc2ssIGlwaV9tYiwgTlVMTCwgMSk7CisJcHJlZW1wdF9lbmFibGUoKTsKKworCWZyZWVfY3B1bWFza192YXIodG1wbWFzayk7CiAJY3B1c19yZWFkX3VubG9jaygpOwogCiAJLyoKQEAgLTE3NywzMiArMTk4LDc4IEBAIHN0YXRpYyBpbnQgbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZChpbnQgZmxhZ3MpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgc3luY19ydW5xdWV1ZXNfbWVtYmFycmllcl9zdGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKK3sKKwlpbnQgbWVtYmFycmllcl9zdGF0ZSA9IGF0b21pY19yZWFkKCZtbS0+bWVtYmFycmllcl9zdGF0ZSk7CisJY3B1bWFza192YXJfdCB0bXBtYXNrOworCWludCBjcHU7CisKKwlpZiAoYXRvbWljX3JlYWQoJm1tLT5tbV91c2VycykgPT0gMSB8fCBudW1fb25saW5lX2NwdXMoKSA9PSAxKSB7CisJCXRoaXNfY3B1X3dyaXRlKHJ1bnF1ZXVlcy5tZW1iYXJyaWVyX3N0YXRlLCBtZW1iYXJyaWVyX3N0YXRlKTsKKworCQkvKgorCQkgKiBGb3Igc2luZ2xlIG1tIHVzZXIsIHdlIGNhbiBzaW1wbHkgaXNzdWUgYSBtZW1vcnkgYmFycmllcgorCQkgKiBhZnRlciBzZXR0aW5nIE1FTUJBUlJJRVJfU1RBVEVfR0xPQkFMX0VYUEVESVRFRCBpbiB0aGUKKwkJICogbW0gYW5kIGluIHRoZSBjdXJyZW50IHJ1bnF1ZXVlIHRvIGd1YXJhbnRlZSB0aGF0IG5vIG1lbW9yeQorCQkgKiBhY2Nlc3MgZm9sbG93aW5nIHJlZ2lzdHJhdGlvbiBpcyByZW9yZGVyZWQgYmVmb3JlCisJCSAqIHJlZ2lzdHJhdGlvbi4KKwkJICovCisJCXNtcF9tYigpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoIXphbGxvY19jcHVtYXNrX3ZhcigmdG1wbWFzaywgR0ZQX0tFUk5FTCkpCisJCXJldHVybiAtRU5PTUVNOworCisJLyoKKwkgKiBGb3IgbW0gd2l0aCBtdWx0aXBsZSB1c2Vycywgd2UgbmVlZCB0byBlbnN1cmUgYWxsIGZ1dHVyZQorCSAqIHNjaGVkdWxlciBleGVjdXRpb25zIHdpbGwgb2JzZXJ2ZSBAbW0ncyBuZXcgbWVtYmFycmllcgorCSAqIHN0YXRlLgorCSAqLworCXN5bmNocm9uaXplX3JjdSgpOworCisJLyoKKwkgKiBGb3IgZWFjaCBjcHUgcnVucXVldWUsIGlmIHRoZSB0YXNrJ3MgbW0gbWF0Y2ggQG1tLCBlbnN1cmUgdGhhdCBhbGwKKwkgKiBAbW0ncyBtZW1iYXJyaWVyIHN0YXRlIHNldCBiaXRzIGFyZSBhbHNvIHNldCBpbiBpbiB0aGUgcnVucXVldWUncworCSAqIG1lbWJhcnJpZXIgc3RhdGUuIFRoaXMgZW5zdXJlcyB0aGF0IGEgcnVucXVldWUgc2NoZWR1bGluZworCSAqIGJldHdlZW4gdGhyZWFkcyB3aGljaCBhcmUgdXNlcnMgb2YgQG1tIGhhcyBpdHMgbWVtYmFycmllciBzdGF0ZQorCSAqIHVwZGF0ZWQuCisJICovCisJY3B1c19yZWFkX2xvY2soKTsKKwlyY3VfcmVhZF9sb2NrKCk7CisJZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKKwkJc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOworCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CisKKwkJcCA9IHJjdV9kZXJlZmVyZW5jZShycS0+Y3Vycik7CisJCWlmIChwICYmIHAtPm1tID09IG1tKQorCQkJX19jcHVtYXNrX3NldF9jcHUoY3B1LCB0bXBtYXNrKTsKKwl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CisKKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwlzbXBfY2FsbF9mdW5jdGlvbl9tYW55KHRtcG1hc2ssIGlwaV9zeW5jX3JxX3N0YXRlLCBtbSwgMSk7CisJcHJlZW1wdF9lbmFibGUoKTsKKworCWZyZWVfY3B1bWFza192YXIodG1wbWFzayk7CisJY3B1c19yZWFkX3VubG9jaygpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgbWVtYmFycmllcl9yZWdpc3Rlcl9nbG9iYWxfZXhwZWRpdGVkKHZvaWQpCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpwID0gY3VycmVudDsKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHAtPm1tOworCWludCByZXQ7CiAKIAlpZiAoYXRvbWljX3JlYWQoJm1tLT5tZW1iYXJyaWVyX3N0YXRlKSAmCiAJICAgIE1FTUJBUlJJRVJfU1RBVEVfR0xPQkFMX0VYUEVESVRFRF9SRUFEWSkKIAkJcmV0dXJuIDA7CiAJYXRvbWljX29yKE1FTUJBUlJJRVJfU1RBVEVfR0xPQkFMX0VYUEVESVRFRCwgJm1tLT5tZW1iYXJyaWVyX3N0YXRlKTsKLQlpZiAoYXRvbWljX3JlYWQoJm1tLT5tbV91c2VycykgPT0gMSAmJiBnZXRfbnJfdGhyZWFkcyhwKSA9PSAxKSB7Ci0JCS8qCi0JCSAqIEZvciBzaW5nbGUgbW0gdXNlciwgc2luZ2xlIHRocmVhZGVkIHByb2Nlc3MsIHdlIGNhbgotCQkgKiBzaW1wbHkgaXNzdWUgYSBtZW1vcnkgYmFycmllciBhZnRlciBzZXR0aW5nCi0JCSAqIE1FTUJBUlJJRVJfU1RBVEVfR0xPQkFMX0VYUEVESVRFRCB0byBndWFyYW50ZWUgdGhhdAotCQkgKiBubyBtZW1vcnkgYWNjZXNzIGZvbGxvd2luZyByZWdpc3RyYXRpb24gaXMgcmVvcmRlcmVkCi0JCSAqIGJlZm9yZSByZWdpc3RyYXRpb24uCi0JCSAqLwotCQlzbXBfbWIoKTsKLQl9IGVsc2UgewotCQkvKgotCQkgKiBGb3IgbXVsdGktbW0gdXNlciB0aHJlYWRzLCB3ZSBuZWVkIHRvIGVuc3VyZSBhbGwKLQkJICogZnV0dXJlIHNjaGVkdWxlciBleGVjdXRpb25zIHdpbGwgb2JzZXJ2ZSB0aGUgbmV3Ci0JCSAqIHRocmVhZCBmbGFnIHN0YXRlIGZvciB0aGlzIG1tLgotCQkgKi8KLQkJc3luY2hyb25pemVfcmN1KCk7Ci0JfQorCXJldCA9IHN5bmNfcnVucXVldWVzX21lbWJhcnJpZXJfc3RhdGUobW0pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAJYXRvbWljX29yKE1FTUJBUlJJRVJfU1RBVEVfR0xPQkFMX0VYUEVESVRFRF9SRUFEWSwKIAkJICAmbW0tPm1lbWJhcnJpZXJfc3RhdGUpOwogCkBAIC0yMTMsMTIgKzI4MCwxNSBAQCBzdGF0aWMgaW50IG1lbWJhcnJpZXJfcmVnaXN0ZXJfcHJpdmF0ZV9leHBlZGl0ZWQoaW50IGZsYWdzKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcCA9IGN1cnJlbnQ7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBwLT5tbTsKLQlpbnQgc3RhdGUgPSBNRU1CQVJSSUVSX1NUQVRFX1BSSVZBVEVfRVhQRURJVEVEX1JFQURZOworCWludCByZWFkeV9zdGF0ZSA9IE1FTUJBUlJJRVJfU1RBVEVfUFJJVkFURV9FWFBFRElURURfUkVBRFksCisJICAgIHNldF9zdGF0ZSA9IE1FTUJBUlJJRVJfU1RBVEVfUFJJVkFURV9FWFBFRElURUQsCisJICAgIHJldDsKIAogCWlmIChmbGFncyAmIE1FTUJBUlJJRVJfRkxBR19TWU5DX0NPUkUpIHsKIAkJaWYgKCFJU19FTkFCTEVEKENPTkZJR19BUkNIX0hBU19NRU1CQVJSSUVSX1NZTkNfQ09SRSkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJc3RhdGUgPSBNRU1CQVJSSUVSX1NUQVRFX1BSSVZBVEVfRVhQRURJVEVEX1NZTkNfQ09SRV9SRUFEWTsKKwkJcmVhZHlfc3RhdGUgPQorCQkJTUVNQkFSUklFUl9TVEFURV9QUklWQVRFX0VYUEVESVRFRF9TWU5DX0NPUkVfUkVBRFk7CiAJfQogCiAJLyoKQEAgLTIyNiwyMCArMjk2LDE1IEBAIHN0YXRpYyBpbnQgbWVtYmFycmllcl9yZWdpc3Rlcl9wcml2YXRlX2V4cGVkaXRlZChpbnQgZmxhZ3MpCiAJICogZ3JvdXBzLCB3aGljaCB1c2UgdGhlIHNhbWUgbW0uIChDTE9ORV9WTSBidXQgbm90CiAJICogQ0xPTkVfVEhSRUFEKS4KIAkgKi8KLQlpZiAoYXRvbWljX3JlYWQoJm1tLT5tZW1iYXJyaWVyX3N0YXRlKSAmIHN0YXRlKQorCWlmICgoYXRvbWljX3JlYWQoJm1tLT5tZW1iYXJyaWVyX3N0YXRlKSAmIHJlYWR5X3N0YXRlKSA9PSByZWFkeV9zdGF0ZSkKIAkJcmV0dXJuIDA7Ci0JYXRvbWljX29yKE1FTUJBUlJJRVJfU1RBVEVfUFJJVkFURV9FWFBFRElURUQsICZtbS0+bWVtYmFycmllcl9zdGF0ZSk7CiAJaWYgKGZsYWdzICYgTUVNQkFSUklFUl9GTEFHX1NZTkNfQ09SRSkKLQkJYXRvbWljX29yKE1FTUJBUlJJRVJfU1RBVEVfUFJJVkFURV9FWFBFRElURURfU1lOQ19DT1JFLAotCQkJICAmbW0tPm1lbWJhcnJpZXJfc3RhdGUpOwotCWlmICghKGF0b21pY19yZWFkKCZtbS0+bW1fdXNlcnMpID09IDEgJiYgZ2V0X25yX3RocmVhZHMocCkgPT0gMSkpIHsKLQkJLyoKLQkJICogRW5zdXJlIGFsbCBmdXR1cmUgc2NoZWR1bGVyIGV4ZWN1dGlvbnMgd2lsbCBvYnNlcnZlIHRoZQotCQkgKiBuZXcgdGhyZWFkIGZsYWcgc3RhdGUgZm9yIHRoaXMgcHJvY2Vzcy4KLQkJICovCi0JCXN5bmNocm9uaXplX3JjdSgpOwotCX0KLQlhdG9taWNfb3Ioc3RhdGUsICZtbS0+bWVtYmFycmllcl9zdGF0ZSk7CisJCXNldF9zdGF0ZSB8PSBNRU1CQVJSSUVSX1NUQVRFX1BSSVZBVEVfRVhQRURJVEVEX1NZTkNfQ09SRTsKKwlhdG9taWNfb3Ioc2V0X3N0YXRlLCAmbW0tPm1lbWJhcnJpZXJfc3RhdGUpOworCXJldCA9IHN5bmNfcnVucXVldWVzX21lbWJhcnJpZXJfc3RhdGUobW0pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisJYXRvbWljX29yKHJlYWR5X3N0YXRlLCAmbW0tPm1lbWJhcnJpZXJfc3RhdGUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yNTMsOCArMzE4LDEwIEBAIHN0YXRpYyBpbnQgbWVtYmFycmllcl9yZWdpc3Rlcl9wcml2YXRlX2V4cGVkaXRlZChpbnQgZmxhZ3MpCiAgKiBjb21tYW5kIHNwZWNpZmllZCBkb2VzIG5vdCBleGlzdCwgbm90IGF2YWlsYWJsZSBvbiB0aGUgcnVubmluZwogICoga2VybmVsLCBvciBpZiB0aGUgY29tbWFuZCBhcmd1bWVudCBpcyBpbnZhbGlkLCB0aGlzIHN5c3RlbSBjYWxsCiAgKiByZXR1cm5zIC1FSU5WQUwuIEZvciBhIGdpdmVuIGNvbW1hbmQsIHdpdGggZmxhZ3MgYXJndW1lbnQgc2V0IHRvIDAsCi0gKiB0aGlzIHN5c3RlbSBjYWxsIGlzIGd1YXJhbnRlZWQgdG8gYWx3YXlzIHJldHVybiB0aGUgc2FtZSB2YWx1ZSB1bnRpbAotICogcmVib290LgorICogaWYgdGhpcyBzeXN0ZW0gY2FsbCByZXR1cm5zIC1FTk9TWVMgb3IgLUVJTlZBTCwgaXQgaXMgZ3VhcmFudGVlZCB0bworICogYWx3YXlzIHJldHVybiB0aGUgc2FtZSB2YWx1ZSB1bnRpbCByZWJvb3QuIEluIGFkZGl0aW9uLCBpdCBjYW4gcmV0dXJuCisgKiAtRU5PTUVNIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2ggbWVtb3J5IGF2YWlsYWJsZSB0byBwZXJmb3JtIHRoZSBzeXN0ZW0KKyAqIGNhbGwuCiAgKgogICogQWxsIG1lbW9yeSBhY2Nlc3NlcyBwZXJmb3JtZWQgaW4gcHJvZ3JhbSBvcmRlciBmcm9tIGVhY2ggdGFyZ2V0ZWQgdGhyZWFkCiAgKiBpcyBndWFyYW50ZWVkIHRvIGJlIG9yZGVyZWQgd2l0aCByZXNwZWN0IHRvIHN5c19tZW1iYXJyaWVyKCkuIElmIHdlIHVzZQpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL3NjaGVkLmggYi9rZXJuZWwvc2NoZWQvc2NoZWQuaAppbmRleCBiM2NiODk1Li4wZGIyYzFiIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQvc2NoZWQuaAorKysgYi9rZXJuZWwvc2NoZWQvc2NoZWQuaApAQCAtOTExLDYgKzkxMSwxMCBAQCBzdHJ1Y3QgcnEgewogCiAJYXRvbWljX3QJCW5yX2lvd2FpdDsKIAorI2lmZGVmIENPTkZJR19NRU1CQVJSSUVSCisJaW50IG1lbWJhcnJpZXJfc3RhdGU7CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19TTVAKIAlzdHJ1Y3Qgcm9vdF9kb21haW4JCSpyZDsKIAlzdHJ1Y3Qgc2NoZWRfZG9tYWluIF9fcmN1CSpzZDsKQEAgLTI0MzgsMyArMjQ0MiwzMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2NoZWRfZW5lcmd5X2VuYWJsZWQodm9pZCkKIHN0YXRpYyBpbmxpbmUgYm9vbCBzY2hlZF9lbmVyZ3lfZW5hYmxlZCh2b2lkKSB7IHJldHVybiBmYWxzZTsgfQogCiAjZW5kaWYgLyogQ09ORklHX0VORVJHWV9NT0RFTCAmJiBDT05GSUdfQ1BVX0ZSRVFfR09WX1NDSEVEVVRJTCAqLworCisjaWZkZWYgQ09ORklHX01FTUJBUlJJRVIKKy8qCisgKiBUaGUgc2NoZWR1bGVyIHByb3ZpZGVzIG1lbW9yeSBiYXJyaWVycyByZXF1aXJlZCBieSBtZW1iYXJyaWVyIGJldHdlZW46CisgKiAtIHByaW9yIHVzZXItc3BhY2UgbWVtb3J5IGFjY2Vzc2VzIGFuZCBzdG9yZSB0byBycS0+bWVtYmFycmllcl9zdGF0ZSwKKyAqIC0gc3RvcmUgdG8gcnEtPm1lbWJhcnJpZXJfc3RhdGUgYW5kIGZvbGxvd2luZyB1c2VyLXNwYWNlIG1lbW9yeSBhY2Nlc3Nlcy4KKyAqIEluIHRoZSBzYW1lIHdheSBpdCBwcm92aWRlcyB0aG9zZSBndWFyYW50ZWVzIGFyb3VuZCBzdG9yZSB0byBycS0+Y3Vyci4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIG1lbWJhcnJpZXJfc3dpdGNoX21tKHN0cnVjdCBycSAqcnEsCisJCQkJCXN0cnVjdCBtbV9zdHJ1Y3QgKnByZXZfbW0sCisJCQkJCXN0cnVjdCBtbV9zdHJ1Y3QgKm5leHRfbW0pCit7CisJaW50IG1lbWJhcnJpZXJfc3RhdGU7CisKKwlpZiAocHJldl9tbSA9PSBuZXh0X21tKQorCQlyZXR1cm47CisKKwltZW1iYXJyaWVyX3N0YXRlID0gYXRvbWljX3JlYWQoJm5leHRfbW0tPm1lbWJhcnJpZXJfc3RhdGUpOworCWlmIChSRUFEX09OQ0UocnEtPm1lbWJhcnJpZXJfc3RhdGUpID09IG1lbWJhcnJpZXJfc3RhdGUpCisJCXJldHVybjsKKworCVdSSVRFX09OQ0UocnEtPm1lbWJhcnJpZXJfc3RhdGUsIG1lbWJhcnJpZXJfc3RhdGUpOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBtZW1iYXJyaWVyX3N3aXRjaF9tbShzdHJ1Y3QgcnEgKnJxLAorCQkJCQlzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2X21tLAorCQkJCQlzdHJ1Y3QgbW1fc3RydWN0ICpuZXh0X21tKQoreworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9rZXJuZWwvc3lzY3RsLmMgYi9rZXJuZWwvc3lzY3RsLmMKaW5kZXggMDc4OTUwZC4uMDBmY2VhMiAxMDA2NDQKLS0tIGEva2VybmVsL3N5c2N0bC5jCisrKyBiL2tlcm5lbC9zeXNjdGwuYwpAQCAtMjY0LDcgKzI2NCw4IEBAIGV4dGVybiBzdHJ1Y3QgY3RsX3RhYmxlIGVwb2xsX3RhYmxlW107CiBleHRlcm4gc3RydWN0IGN0bF90YWJsZSBmaXJtd2FyZV9jb25maWdfdGFibGVbXTsKICNlbmRpZgogCi0jaWZkZWYgSEFWRV9BUkNIX1BJQ0tfTU1BUF9MQVlPVVQKKyNpZiBkZWZpbmVkKEhBVkVfQVJDSF9QSUNLX01NQVBfTEFZT1VUKSB8fCBcCisgICAgZGVmaW5lZChDT05GSUdfQVJDSF9XQU5UX0RFRkFVTFRfVE9QRE9XTl9NTUFQX0xBWU9VVCkKIGludCBzeXNjdGxfbGVnYWN5X3ZhX2xheW91dDsKICNlbmRpZgogCkBAIC0xNTczLDcgKzE1NzQsOCBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZSB2bV90YWJsZVtdID0gewogCQkucHJvY19oYW5kbGVyCT0gcHJvY19kb2ludHZlYywKIAkJLmV4dHJhMQkJPSBTWVNDVExfWkVSTywKIAl9LAotI2lmZGVmIEhBVkVfQVJDSF9QSUNLX01NQVBfTEFZT1VUCisjaWYgZGVmaW5lZChIQVZFX0FSQ0hfUElDS19NTUFQX0xBWU9VVCkgfHwgXAorICAgIGRlZmluZWQoQ09ORklHX0FSQ0hfV0FOVF9ERUZBVUxUX1RPUERPV05fTU1BUF9MQVlPVVQpCiAJewogCQkucHJvY25hbWUJPSAibGVnYWN5X3ZhX2xheW91dCIsCiAJCS5kYXRhCQk9ICZzeXNjdGxfbGVnYWN5X3ZhX2xheW91dCwKZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lL3RpbWVyLmMgYi9rZXJuZWwvdGltZS90aW1lci5jCmluZGV4IDBlMzE1YTIuLjQ4MjA4MjMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lL3RpbWVyLmMKKysrIGIva2VybmVsL3RpbWUvdGltZXIuYwpAQCAtMTY3OCwyNCArMTY3OCwyNiBAQCB2b2lkIHRpbWVyX2NsZWFyX2lkbGUodm9pZCkKIHN0YXRpYyBpbnQgY29sbGVjdF9leHBpcmVkX3RpbWVycyhzdHJ1Y3QgdGltZXJfYmFzZSAqYmFzZSwKIAkJCQkgIHN0cnVjdCBobGlzdF9oZWFkICpoZWFkcykKIHsKKwl1bnNpZ25lZCBsb25nIG5vdyA9IFJFQURfT05DRShqaWZmaWVzKTsKKwogCS8qCiAJICogTk9IWiBvcHRpbWl6YXRpb24uIEFmdGVyIGEgbG9uZyBpZGxlIHNsZWVwIHdlIG5lZWQgdG8gZm9yd2FyZCB0aGUKIAkgKiBiYXNlIHRvIGN1cnJlbnQgamlmZmllcy4gQXZvaWQgYSBsb29wIGJ5IHNlYXJjaGluZyB0aGUgYml0ZmllbGQgZm9yCiAJICogdGhlIG5leHQgZXhwaXJpbmcgdGltZXIuCiAJICovCi0JaWYgKChsb25nKShqaWZmaWVzIC0gYmFzZS0+Y2xrKSA+IDIpIHsKKwlpZiAoKGxvbmcpKG5vdyAtIGJhc2UtPmNsaykgPiAyKSB7CiAJCXVuc2lnbmVkIGxvbmcgbmV4dCA9IF9fbmV4dF90aW1lcl9pbnRlcnJ1cHQoYmFzZSk7CiAKIAkJLyoKIAkJICogSWYgdGhlIG5leHQgdGltZXIgaXMgYWhlYWQgb2YgdGltZSBmb3J3YXJkIHRvIGN1cnJlbnQKIAkJICogamlmZmllcywgb3RoZXJ3aXNlIGZvcndhcmQgdG8gdGhlIG5leHQgZXhwaXJ5IHRpbWU6CiAJCSAqLwotCQlpZiAodGltZV9hZnRlcihuZXh0LCBqaWZmaWVzKSkgeworCQlpZiAodGltZV9hZnRlcihuZXh0LCBub3cpKSB7CiAJCQkvKgogCQkJICogVGhlIGNhbGwgc2l0ZSB3aWxsIGluY3JlbWVudCBiYXNlLT5jbGsgYW5kIHRoZW4KIAkJCSAqIHRlcm1pbmF0ZSB0aGUgZXhwaXJ5IGxvb3AgaW1tZWRpYXRlbHkuCiAJCQkgKi8KLQkJCWJhc2UtPmNsayA9IGppZmZpZXM7CisJCQliYXNlLT5jbGsgPSBub3c7CiAJCQlyZXR1cm4gMDsKIAkJfQogCQliYXNlLT5jbGsgPSBuZXh0OwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL2JwZl90cmFjZS5jIGIva2VybmVsL3RyYWNlL2JwZl90cmFjZS5jCmluZGV4IDNlMzhhMDEuLjQ0YmQwOGYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS9icGZfdHJhY2UuYworKysgYi9rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmMKQEAgLTE0Miw4ICsxNDIsMTMgQEAgQlBGX0NBTExfMyhicGZfcHJvYmVfcmVhZCwgdm9pZCAqLCBkc3QsIHUzMiwgc2l6ZSwgY29uc3Qgdm9pZCAqLCB1bnNhZmVfcHRyKQogewogCWludCByZXQ7CiAKKwlyZXQgPSBzZWN1cml0eV9sb2NrZWRfZG93bihMT0NLRE9XTl9CUEZfUkVBRCk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gb3V0OworCiAJcmV0ID0gcHJvYmVfa2VybmVsX3JlYWQoZHN0LCB1bnNhZmVfcHRyLCBzaXplKTsKIAlpZiAodW5saWtlbHkocmV0IDwgMCkpCitvdXQ6CiAJCW1lbXNldChkc3QsIDAsIHNpemUpOwogCiAJcmV0dXJuIHJldDsKQEAgLTU4NSw2ICs1OTAsMTAgQEAgQlBGX0NBTExfMyhicGZfcHJvYmVfcmVhZF9zdHIsIHZvaWQgKiwgZHN0LCB1MzIsIHNpemUsCiB7CiAJaW50IHJldDsKIAorCXJldCA9IHNlY3VyaXR5X2xvY2tlZF9kb3duKExPQ0tET1dOX0JQRl9SRUFEKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXQ7CisKIAkvKgogCSAqIFRoZSBzdHJuY3B5X2Zyb21fdW5zYWZlKCkgY2FsbCB3aWxsIGxpa2VseSBub3QgZmlsbCB0aGUgZW50aXJlCiAJICogYnVmZmVyLCBidXQgdGhhdCdzIG9rYXkgaW4gdGhpcyBjaXJjdW1zdGFuY2UgYXMgd2UncmUgcHJvYmluZwpAQCAtNTk2LDYgKzYwNSw3IEBAIEJQRl9DQUxMXzMoYnBmX3Byb2JlX3JlYWRfc3RyLCB2b2lkICosIGRzdCwgdTMyLCBzaXplLAogCSAqLwogCXJldCA9IHN0cm5jcHlfZnJvbV91bnNhZmUoZHN0LCB1bnNhZmVfcHRyLCBzaXplKTsKIAlpZiAodW5saWtlbHkocmV0IDwgMCkpCitvdXQ6CiAJCW1lbXNldChkc3QsIDAsIHNpemUpOwogCiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS9mZ3JhcGguYyBiL2tlcm5lbC90cmFjZS9mZ3JhcGguYwppbmRleCA4ZGZkNTAyLi43OTUwYTAzIDEwMDY0NAotLS0gYS9rZXJuZWwvdHJhY2UvZmdyYXBoLmMKKysrIGIva2VybmVsL3RyYWNlL2ZncmFwaC5jCkBAIC0yNzYsNyArMjc2LDcgQEAgdW5zaWduZWQgbG9uZyBmdHJhY2VfZ3JhcGhfcmV0X2FkZHIoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBpbnQgKmlkeCwKIAlpbnQgaW5kZXggPSB0YXNrLT5jdXJyX3JldF9zdGFjazsKIAlpbnQgaTsKIAotCWlmIChyZXQgIT0gKHVuc2lnbmVkIGxvbmcpcmV0dXJuX3RvX2hhbmRsZXIpCisJaWYgKHJldCAhPSAodW5zaWduZWQgbG9uZylkZXJlZmVyZW5jZV9rZXJuZWxfZnVuY3Rpb25fZGVzY3JpcHRvcihyZXR1cm5fdG9faGFuZGxlcikpCiAJCXJldHVybiByZXQ7CiAKIAlpZiAoaW5kZXggPCAwKQpAQCAtMjk0LDcgKzI5NCw3IEBAIHVuc2lnbmVkIGxvbmcgZnRyYWNlX2dyYXBoX3JldF9hZGRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50ICppZHgsCiB7CiAJaW50IHRhc2tfaWR4OwogCi0JaWYgKHJldCAhPSAodW5zaWduZWQgbG9uZylyZXR1cm5fdG9faGFuZGxlcikKKwlpZiAocmV0ICE9ICh1bnNpZ25lZCBsb25nKWRlcmVmZXJlbmNlX2tlcm5lbF9mdW5jdGlvbl9kZXNjcmlwdG9yKHJldHVybl90b19oYW5kbGVyKSkKIAkJcmV0dXJuIHJldDsKIAogCXRhc2tfaWR4ID0gdGFzay0+Y3Vycl9yZXRfc3RhY2s7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvZnRyYWNlLmMgYi9rZXJuZWwvdHJhY2UvZnRyYWNlLmMKaW5kZXggMzU2Yjg0OC4uNjJhNTBiZiAxMDA2NDQKLS0tIGEva2VybmVsL3RyYWNlL2Z0cmFjZS5jCisrKyBiL2tlcm5lbC90cmFjZS9mdHJhY2UuYwpAQCAtNjAzNiwxMSArNjAzNiw3IEBAIGNsZWFyX2Z1bmNfZnJvbV9oYXNoKHN0cnVjdCBmdHJhY2VfaW5pdF9mdW5jICpmdW5jLCBzdHJ1Y3QgZnRyYWNlX2hhc2ggKmhhc2gpCiB7CiAJc3RydWN0IGZ0cmFjZV9mdW5jX2VudHJ5ICplbnRyeTsKIAotCWlmIChmdHJhY2VfaGFzaF9lbXB0eShoYXNoKSkKLQkJcmV0dXJuOwotCi0JZW50cnkgPSBfX2Z0cmFjZV9sb29rdXBfaXAoaGFzaCwgZnVuYy0+aXApOwotCisJZW50cnkgPSBmdHJhY2VfbG9va3VwX2lwKGhhc2gsIGZ1bmMtPmlwKTsKIAkvKgogCSAqIERvIG5vdCBhbGxvdyB0aGlzIHJlYyB0byBtYXRjaCBhZ2Fpbi4KIAkgKiBZZWFoLCBpdCBtYXkgd2FzdGUgc29tZSBtZW1vcnksIGJ1dCB3aWxsIGJlIHJlbW92ZWQKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZS5jIGIva2VybmVsL3RyYWNlL3RyYWNlLmMKaW5kZXggOTQ3YmE0My4uMjUyZjc5YyAxMDA2NDQKLS0tIGEva2VybmVsL3RyYWNlL3RyYWNlLmMKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlLmMKQEAgLTE4NTQsNyArMTg1NCw3IEBAIGludCBfX2luaXQgcmVnaXN0ZXJfdHJhY2VyKHN0cnVjdCB0cmFjZXIgKnR5cGUpCiAJcmV0dXJuIHJldDsKIH0KIAotdm9pZCB0cmFjaW5nX3Jlc2V0KHN0cnVjdCB0cmFjZV9idWZmZXIgKmJ1ZiwgaW50IGNwdSkKK3N0YXRpYyB2b2lkIHRyYWNpbmdfcmVzZXRfY3B1KHN0cnVjdCB0cmFjZV9idWZmZXIgKmJ1ZiwgaW50IGNwdSkKIHsKIAlzdHJ1Y3QgcmluZ19idWZmZXIgKmJ1ZmZlciA9IGJ1Zi0+YnVmZmVyOwogCkBAIC00MjUxLDcgKzQyNTEsNyBAQCBzdGF0aWMgaW50IHRyYWNpbmdfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIAkJaWYgKGNwdSA9PSBSSU5HX0JVRkZFUl9BTExfQ1BVUykKIAkJCXRyYWNpbmdfcmVzZXRfb25saW5lX2NwdXModHJhY2VfYnVmKTsKIAkJZWxzZQotCQkJdHJhY2luZ19yZXNldCh0cmFjZV9idWYsIGNwdSk7CisJCQl0cmFjaW5nX3Jlc2V0X2NwdSh0cmFjZV9idWYsIGNwdSk7CiAJfQogCiAJaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1JFQUQpIHsKQEAgLTQ4MTUsMTUgKzQ4MTUsMTUgQEAgc3RhdGljIGNvbnN0IGNoYXIgcmVhZG1lX21zZ1tdID0KICNlbmRpZgogI2VuZGlmIC8qIENPTkZJR19TVEFDS19UUkFDRVIgKi8KICNpZmRlZiBDT05GSUdfRFlOQU1JQ19FVkVOVFMKLQkiICBkeW5hbWljX2V2ZW50c1x0XHQtIEFkZC9yZW1vdmUvc2hvdyB0aGUgZ2VuZXJpYyBkeW5hbWljIGV2ZW50c1xuIgorCSIgIGR5bmFtaWNfZXZlbnRzXHRcdC0gQ3JlYXRlL2FwcGVuZC9yZW1vdmUvc2hvdyB0aGUgZ2VuZXJpYyBkeW5hbWljIGV2ZW50c1xuIgogCSJcdFx0XHQgIFdyaXRlIGludG8gdGhpcyBmaWxlIHRvIGRlZmluZS91bmRlZmluZSBuZXcgdHJhY2UgZXZlbnRzLlxuIgogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0tQUk9CRV9FVkVOVFMKLQkiICBrcHJvYmVfZXZlbnRzXHRcdC0gQWRkL3JlbW92ZS9zaG93IHRoZSBrZXJuZWwgZHluYW1pYyBldmVudHNcbiIKKwkiICBrcHJvYmVfZXZlbnRzXHRcdC0gQ3JlYXRlL2FwcGVuZC9yZW1vdmUvc2hvdyB0aGUga2VybmVsIGR5bmFtaWMgZXZlbnRzXG4iCiAJIlx0XHRcdCAgV3JpdGUgaW50byB0aGlzIGZpbGUgdG8gZGVmaW5lL3VuZGVmaW5lIG5ldyB0cmFjZSBldmVudHMuXG4iCiAjZW5kaWYKICNpZmRlZiBDT05GSUdfVVBST0JFX0VWRU5UUwotCSIgIHVwcm9iZV9ldmVudHNcdFx0LSBBZGQvcmVtb3ZlL3Nob3cgdGhlIHVzZXJzcGFjZSBkeW5hbWljIGV2ZW50c1xuIgorCSIgIHVwcm9iZV9ldmVudHNcdFx0LSBDcmVhdGUvYXBwZW5kL3JlbW92ZS9zaG93IHRoZSB1c2Vyc3BhY2UgZHluYW1pYyBldmVudHNcbiIKIAkiXHRcdFx0ICBXcml0ZSBpbnRvIHRoaXMgZmlsZSB0byBkZWZpbmUvdW5kZWZpbmUgbmV3IHRyYWNlIGV2ZW50cy5cbiIKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0tQUk9CRV9FVkVOVFMpIHx8IGRlZmluZWQoQ09ORklHX1VQUk9CRV9FVkVOVFMpCkBAIC00ODQ4LDcgKzQ4NDgsNyBAQCBzdGF0aWMgY29uc3QgY2hhciByZWFkbWVfbXNnW10gPQogI2Vsc2UKIAkiXHQgICAgICAgICAgICRzdGFjazxpbmRleD4sICRzdGFjaywgJHJldHZhbCwgJGNvbW0sXG4iCiAjZW5kaWYKLQkiXHQgICAgICAgICAgICt8LVt1XTxvZmZzZXQ+KDxmZXRjaGFyZz4pXG4iCisJIlx0ICAgICAgICAgICArfC1bdV08b2Zmc2V0Pig8ZmV0Y2hhcmc+KSwgXFxpbW0tdmFsdWUsIFxcXCJpbW0tc3RyaW5nXCJcbiIKIAkiXHQgICAgIHR5cGU6IHM4LzE2LzMyLzY0LCB1OC8xNi8zMi82NCwgeDgvMTYvMzIvNjQsIHN0cmluZywgc3ltYm9sLFxuIgogCSJcdCAgICAgICAgICAgYjxiaXQtd2lkdGg+QDxiaXQtb2Zmc2V0Pi88Y29udGFpbmVyLXNpemU+LCB1c3RyaW5nLFxuIgogCSJcdCAgICAgICAgICAgPHR5cGU+XFxbPGFycmF5LXNpemU+XFxdXG4iCkBAIC02NzQyLDcgKzY3NDIsNyBAQCB0cmFjaW5nX3NuYXBzaG90X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1Ziwgc2l6ZV90IGNudCwKIAkJCWlmIChpdGVyLT5jcHVfZmlsZSA9PSBSSU5HX0JVRkZFUl9BTExfQ1BVUykKIAkJCQl0cmFjaW5nX3Jlc2V0X29ubGluZV9jcHVzKCZ0ci0+bWF4X2J1ZmZlcik7CiAJCQllbHNlCi0JCQkJdHJhY2luZ19yZXNldCgmdHItPm1heF9idWZmZXIsIGl0ZXItPmNwdV9maWxlKTsKKwkJCQl0cmFjaW5nX3Jlc2V0X2NwdSgmdHItPm1heF9idWZmZXIsIGl0ZXItPmNwdV9maWxlKTsKIAkJfQogCQlicmVhazsKIAl9CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2UuaCBiL2tlcm5lbC90cmFjZS90cmFjZS5oCmluZGV4IDAwNWYwODYuLjI2YjBhMDggMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFjZS5oCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZS5oCkBAIC02NzcsNyArNjc3LDYgQEAgdHJhY2VfYnVmZmVyX2l0ZXIoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLCBpbnQgY3B1KQogCiBpbnQgdHJhY2VyX2luaXQoc3RydWN0IHRyYWNlciAqdCwgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CiBpbnQgdHJhY2luZ19pc19lbmFibGVkKHZvaWQpOwotdm9pZCB0cmFjaW5nX3Jlc2V0KHN0cnVjdCB0cmFjZV9idWZmZXIgKmJ1ZiwgaW50IGNwdSk7CiB2b2lkIHRyYWNpbmdfcmVzZXRfb25saW5lX2NwdXMoc3RydWN0IHRyYWNlX2J1ZmZlciAqYnVmKTsKIHZvaWQgdHJhY2luZ19yZXNldF9jdXJyZW50KGludCBjcHUpOwogdm9pZCB0cmFjaW5nX3Jlc2V0X2FsbF9vbmxpbmVfY3B1cyh2b2lkKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9keW5ldmVudC5jIGIva2VybmVsL3RyYWNlL3RyYWNlX2R5bmV2ZW50LmMKaW5kZXggZmExMDBlZC4uYTQxZmVkNCAxMDA2NDQKLS0tIGEva2VybmVsL3RyYWNlL3RyYWNlX2R5bmV2ZW50LmMKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX2R5bmV2ZW50LmMKQEAgLTQ3LDYgKzQ3LDcgQEAgaW50IGR5bl9ldmVudF9yZWxlYXNlKGludCBhcmdjLCBjaGFyICoqYXJndiwgc3RydWN0IGR5bl9ldmVudF9vcGVyYXRpb25zICp0eXBlKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCWV2ZW50Kys7CiAJfQorCWFyZ2MtLTsgYXJndisrOwogCiAJcCA9IHN0cmNocihldmVudCwgJy8nKTsKIAlpZiAocCkgewpAQCAtNjEsMTAgKzYyLDEzIEBAIGludCBkeW5fZXZlbnRfcmVsZWFzZShpbnQgYXJnYywgY2hhciAqKmFyZ3YsIHN0cnVjdCBkeW5fZXZlbnRfb3BlcmF0aW9ucyAqdHlwZSkKIAlmb3JfZWFjaF9keW5fZXZlbnRfc2FmZShwb3MsIG4pIHsKIAkJaWYgKHR5cGUgJiYgdHlwZSAhPSBwb3MtPm9wcykKIAkJCWNvbnRpbnVlOwotCQlpZiAocG9zLT5vcHMtPm1hdGNoKHN5c3RlbSwgZXZlbnQsIHBvcykpIHsKLQkJCXJldCA9IHBvcy0+b3BzLT5mcmVlKHBvcyk7CisJCWlmICghcG9zLT5vcHMtPm1hdGNoKHN5c3RlbSwgZXZlbnQsCisJCQkJYXJnYywgKGNvbnN0IGNoYXIgKiopYXJndiwgcG9zKSkKKwkJCWNvbnRpbnVlOworCisJCXJldCA9IHBvcy0+b3BzLT5mcmVlKHBvcyk7CisJCWlmIChyZXQpCiAJCQlicmVhazsKLQkJfQogCX0KIAltdXRleF91bmxvY2soJmV2ZW50X211dGV4KTsKIApkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX2R5bmV2ZW50LmggYi9rZXJuZWwvdHJhY2UvdHJhY2VfZHluZXZlbnQuaAppbmRleCA4YzMzNDA2Li40Njg5ODEzIDEwMDY0NAotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2VfZHluZXZlbnQuaAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2VfZHluZXZlbnQuaApAQCAtMzEsOCArMzEsOSBAQCBzdHJ1Y3QgZHluX2V2ZW50OwogICogQGlzX2J1c3k6IENoZWNrIHdoZXRoZXIgZ2l2ZW4gZXZlbnQgaXMgYnVzeSBzbyB0aGF0IGl0IGNhbiBub3QgYmUgZGVsZXRlZC4KICAqICBSZXR1cm4gdHJ1ZSBpZiBpdCBpcyBidXN5LCBvdGhlcndpZGVzIGZhbHNlLgogICogQGZyZWU6IERlbGV0ZSB0aGUgZ2l2ZW4gZXZlbnQuIFJldHVybiAwIGlmIHN1Y2Nlc3MsIG90aGVyd2lkZXMgZXJyb3IuCi0gKiBAbWF0Y2g6IENoZWNrIHdoZXRoZXIgZ2l2ZW4gZXZlbnQgYW5kIHN5c3RlbSBuYW1lIG1hdGNoIHRoaXMgZXZlbnQuCi0gKiAgUmV0dXJuIHRydWUgaWYgaXQgbWF0Y2hlcywgb3RoZXJ3aWRlcyBmYWxzZS4KKyAqIEBtYXRjaDogQ2hlY2sgd2hldGhlciBnaXZlbiBldmVudCBhbmQgc3lzdGVtIG5hbWUgbWF0Y2ggdGhpcyBldmVudC4gVGhlIGFyZ2MKKyAqICBhbmQgYXJndiBpcyB1c2VkIGZvciBleGFjdCBtYXRjaC4gUmV0dXJuIHRydWUgaWYgaXQgbWF0Y2hlcywgb3RoZXJ3aWRlcworICogIGZhbHNlLgogICoKICAqIEV4Y2VwdCBmb3IgQGNyZWF0ZSwgdGhlc2UgbWV0aG9kcyBhcmUgY2FsbGVkIHVuZGVyIGhvbGRpbmcgZXZlbnRfbXV0ZXguCiAgKi8KQEAgLTQzLDcgKzQ0LDcgQEAgc3RydWN0IGR5bl9ldmVudF9vcGVyYXRpb25zIHsKIAlib29sICgqaXNfYnVzeSkoc3RydWN0IGR5bl9ldmVudCAqZXYpOwogCWludCAoKmZyZWUpKHN0cnVjdCBkeW5fZXZlbnQgKmV2KTsKIAlib29sICgqbWF0Y2gpKGNvbnN0IGNoYXIgKnN5c3RlbSwgY29uc3QgY2hhciAqZXZlbnQsCi0JCQlzdHJ1Y3QgZHluX2V2ZW50ICpldik7CisJCSAgICAgIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGR5bl9ldmVudCAqZXYpOwogfTsKIAogLyogUmVnaXN0ZXIgbmV3IGR5bl9ldmVudCB0eXBlIC0tIG11c3QgYmUgY2FsbGVkIGF0IGZpcnN0ICovCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2VfZXZlbnRzX2hpc3QuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9ldmVudHNfaGlzdC5jCmluZGV4IGNhNmIwZGYuLjk0NjhiZDggMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFjZV9ldmVudHNfaGlzdC5jCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9ldmVudHNfaGlzdC5jCkBAIC0xMyw2ICsxMywxMCBAQAogI2luY2x1ZGUgPGxpbnV4L3JjdWxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC90cmFjZWZzLmg+CiAKKy8qIGZvciBnZnAgZmxhZyBuYW1lcyAqLworI2luY2x1ZGUgPGxpbnV4L3RyYWNlX2V2ZW50cy5oPgorI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9tbWZsYWdzLmg+CisKICNpbmNsdWRlICJ0cmFjaW5nX21hcC5oIgogI2luY2x1ZGUgInRyYWNlLmgiCiAjaW5jbHVkZSAidHJhY2VfZHluZXZlbnQuaCIKQEAgLTM3NCw3ICszNzgsNyBAQCBzdGF0aWMgaW50IHN5bnRoX2V2ZW50X3Nob3coc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHluX2V2ZW50ICpldik7CiBzdGF0aWMgaW50IHN5bnRoX2V2ZW50X3JlbGVhc2Uoc3RydWN0IGR5bl9ldmVudCAqZXYpOwogc3RhdGljIGJvb2wgc3ludGhfZXZlbnRfaXNfYnVzeShzdHJ1Y3QgZHluX2V2ZW50ICpldik7CiBzdGF0aWMgYm9vbCBzeW50aF9ldmVudF9tYXRjaChjb25zdCBjaGFyICpzeXN0ZW0sIGNvbnN0IGNoYXIgKmV2ZW50LAotCQkJICAgICAgc3RydWN0IGR5bl9ldmVudCAqZXYpOworCQkJaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgZHluX2V2ZW50ICpldik7CiAKIHN0YXRpYyBzdHJ1Y3QgZHluX2V2ZW50X29wZXJhdGlvbnMgc3ludGhfZXZlbnRfb3BzID0gewogCS5jcmVhdGUgPSBzeW50aF9ldmVudF9jcmVhdGUsCkBAIC00MjIsNyArNDI2LDcgQEAgc3RhdGljIGJvb2wgc3ludGhfZXZlbnRfaXNfYnVzeShzdHJ1Y3QgZHluX2V2ZW50ICpldikKIH0KIAogc3RhdGljIGJvb2wgc3ludGhfZXZlbnRfbWF0Y2goY29uc3QgY2hhciAqc3lzdGVtLCBjb25zdCBjaGFyICpldmVudCwKLQkJCSAgICAgIHN0cnVjdCBkeW5fZXZlbnQgKmV2KQorCQkJaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgZHluX2V2ZW50ICpldikKIHsKIAlzdHJ1Y3Qgc3ludGhfZXZlbnQgKnNldiA9IHRvX3N5bnRoX2V2ZW50KGV2KTsKIApAQCAtNzUyLDYgKzc1Niw4IEBAIHN0YXRpYyBpbnQgc3ludGhfZmllbGRfc2l6ZShjaGFyICp0eXBlKQogCQlzaXplID0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOwogCWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAicGlkX3QiKSA9PSAwKQogCQlzaXplID0gc2l6ZW9mKHBpZF90KTsKKwllbHNlIGlmIChzdHJjbXAodHlwZSwgImdmcF90IikgPT0gMCkKKwkJc2l6ZSA9IHNpemVvZihnZnBfdCk7CiAJZWxzZSBpZiAoc3ludGhfZmllbGRfaXNfc3RyaW5nKHR5cGUpKQogCQlzaXplID0gc3ludGhfZmllbGRfc3RyaW5nX3NpemUodHlwZSk7CiAKQEAgLTc5Miw2ICs3OTgsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqc3ludGhfZmllbGRfZm10KGNoYXIgKnR5cGUpCiAJCWZtdCA9ICIlbHUiOwogCWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAicGlkX3QiKSA9PSAwKQogCQlmbXQgPSAiJWQiOworCWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAiZ2ZwX3QiKSA9PSAwKQorCQlmbXQgPSAiJXgiOwogCWVsc2UgaWYgKHN5bnRoX2ZpZWxkX2lzX3N0cmluZyh0eXBlKSkKIAkJZm10ID0gIiVzIjsKIApAQCAtODM0LDkgKzg0MiwyMCBAQCBzdGF0aWMgZW51bSBwcmludF9saW5lX3QgcHJpbnRfc3ludGhfZXZlbnQoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLAogCQkJCQkgaSA9PSBzZS0+bl9maWVsZHMgLSAxID8gIiIgOiAiICIpOwogCQkJbl91NjQgKz0gU1RSX1ZBUl9MRU5fTUFYIC8gc2l6ZW9mKHU2NCk7CiAJCX0gZWxzZSB7CisJCQlzdHJ1Y3QgdHJhY2VfcHJpbnRfZmxhZ3MgX19mbGFnc1tdID0geworCQkJICAgIF9fZGVmX2dmcGZsYWdfbmFtZXMsIHstMSwgTlVMTH0gfTsKKwogCQkJdHJhY2Vfc2VxX3ByaW50ZihzLCBwcmludF9mbXQsIHNlLT5maWVsZHNbaV0tPm5hbWUsCiAJCQkJCSBlbnRyeS0+ZmllbGRzW25fdTY0XSwKIAkJCQkJIGkgPT0gc2UtPm5fZmllbGRzIC0gMSA/ICIiIDogIiAiKTsKKworCQkJaWYgKHN0cmNtcChzZS0+ZmllbGRzW2ldLT50eXBlLCAiZ2ZwX3QiKSA9PSAwKSB7CisJCQkJdHJhY2Vfc2VxX3B1dHMocywgIiAoIik7CisJCQkJdHJhY2VfcHJpbnRfZmxhZ3Nfc2VxKHMsICJ8IiwKKwkJCQkJCSAgICAgIGVudHJ5LT5maWVsZHNbbl91NjRdLAorCQkJCQkJICAgICAgX19mbGFncyk7CisJCQkJdHJhY2Vfc2VxX3B1dGMocywgJyknKTsKKwkJCX0KIAkJCW5fdTY0Kys7CiAJCX0KIAl9CkBAIC0yNzg1LDYgKzI4MDQsOCBAQCBzdGF0aWMgc3RydWN0IGhpc3RfZmllbGQgKmNyZWF0ZV9hbGlhcyhzdHJ1Y3QgaGlzdF90cmlnZ2VyX2RhdGEgKmhpc3RfZGF0YSwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCisJYWxpYXMtPnZhcl9yZWZfaWR4ID0gdmFyX3JlZi0+dmFyX3JlZl9pZHg7CisKIAlyZXR1cm4gYWxpYXM7CiB9CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9rcHJvYmUuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9rcHJvYmUuYwppbmRleCA5ZDQ4M2FkLi4zMjRmZmJlIDEwMDY0NAotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfa3Byb2JlLmMKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX2twcm9iZS5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3JjdWxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJvci1pbmplY3Rpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgogCiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+ICAvKiBmb3IgQ09NTUFORF9MSU5FX1NJWkUgKi8KIApAQCAtMzksNyArNDAsNyBAQCBzdGF0aWMgaW50IHRyYWNlX2twcm9iZV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGR5bl9ldmVudCAqZXYpOwogc3RhdGljIGludCB0cmFjZV9rcHJvYmVfcmVsZWFzZShzdHJ1Y3QgZHluX2V2ZW50ICpldik7CiBzdGF0aWMgYm9vbCB0cmFjZV9rcHJvYmVfaXNfYnVzeShzdHJ1Y3QgZHluX2V2ZW50ICpldik7CiBzdGF0aWMgYm9vbCB0cmFjZV9rcHJvYmVfbWF0Y2goY29uc3QgY2hhciAqc3lzdGVtLCBjb25zdCBjaGFyICpldmVudCwKLQkJCSAgICAgICBzdHJ1Y3QgZHluX2V2ZW50ICpldik7CisJCQlpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBkeW5fZXZlbnQgKmV2KTsKIAogc3RhdGljIHN0cnVjdCBkeW5fZXZlbnRfb3BlcmF0aW9ucyB0cmFjZV9rcHJvYmVfb3BzID0gewogCS5jcmVhdGUgPSB0cmFjZV9rcHJvYmVfY3JlYXRlLApAQCAtMTM3LDEzICsxMzgsMzYgQEAgc3RhdGljIGJvb2wgdHJhY2Vfa3Byb2JlX2lzX2J1c3koc3RydWN0IGR5bl9ldmVudCAqZXYpCiAJcmV0dXJuIHRyYWNlX3Byb2JlX2lzX2VuYWJsZWQoJnRrLT50cCk7CiB9CiAKK3N0YXRpYyBib29sIHRyYWNlX2twcm9iZV9tYXRjaF9jb21tYW5kX2hlYWQoc3RydWN0IHRyYWNlX2twcm9iZSAqdGssCisJCQkJCSAgICBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCit7CisJY2hhciBidWZbTUFYX0FSR1NUUl9MRU4gKyAxXTsKKworCWlmICghYXJnYykKKwkJcmV0dXJuIHRydWU7CisKKwlpZiAoIXRrLT5zeW1ib2wpCisJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIweCVwIiwgdGstPnJwLmtwLmFkZHIpOworCWVsc2UgaWYgKHRrLT5ycC5rcC5vZmZzZXQpCisJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlcysldSIsCisJCQkgdHJhY2Vfa3Byb2JlX3N5bWJvbCh0ayksIHRrLT5ycC5rcC5vZmZzZXQpOworCWVsc2UKKwkJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVzIiwgdHJhY2Vfa3Byb2JlX3N5bWJvbCh0aykpOworCWlmIChzdHJjbXAoYnVmLCBhcmd2WzBdKSkKKwkJcmV0dXJuIGZhbHNlOworCWFyZ2MtLTsgYXJndisrOworCisJcmV0dXJuIHRyYWNlX3Byb2JlX21hdGNoX2NvbW1hbmRfYXJncygmdGstPnRwLCBhcmdjLCBhcmd2KTsKK30KKwogc3RhdGljIGJvb2wgdHJhY2Vfa3Byb2JlX21hdGNoKGNvbnN0IGNoYXIgKnN5c3RlbSwgY29uc3QgY2hhciAqZXZlbnQsCi0JCQkgICAgICAgc3RydWN0IGR5bl9ldmVudCAqZXYpCisJCQlpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBkeW5fZXZlbnQgKmV2KQogewogCXN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrID0gdG9fdHJhY2Vfa3Byb2JlKGV2KTsKIAogCXJldHVybiBzdHJjbXAodHJhY2VfcHJvYmVfbmFtZSgmdGstPnRwKSwgZXZlbnQpID09IDAgJiYKLQkgICAgKCFzeXN0ZW0gfHwgc3RyY21wKHRyYWNlX3Byb2JlX2dyb3VwX25hbWUoJnRrLT50cCksIHN5c3RlbSkgPT0gMCk7CisJICAgICghc3lzdGVtIHx8IHN0cmNtcCh0cmFjZV9wcm9iZV9ncm91cF9uYW1lKCZ0ay0+dHApLCBzeXN0ZW0pID09IDApICYmCisJICAgIHRyYWNlX2twcm9iZV9tYXRjaF9jb21tYW5kX2hlYWQodGssIGFyZ2MsIGFyZ3YpOwogfQogCiBzdGF0aWMgbm9rcHJvYmVfaW5saW5lIHVuc2lnbmVkIGxvbmcgdHJhY2Vfa3Byb2JlX25oaXQoc3RydWN0IHRyYWNlX2twcm9iZSAqdGspCkBAIC0xODAsMjAgKzIwNCwzMyBAQCB1bnNpZ25lZCBsb25nIHRyYWNlX2twcm9iZV9hZGRyZXNzKHN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrKQogCXJldHVybiBhZGRyOwogfQogCitzdGF0aWMgbm9rcHJvYmVfaW5saW5lIHN0cnVjdCB0cmFjZV9rcHJvYmUgKgordHJhY2Vfa3Byb2JlX3ByaW1hcnlfZnJvbV9jYWxsKHN0cnVjdCB0cmFjZV9ldmVudF9jYWxsICpjYWxsKQoreworCXN0cnVjdCB0cmFjZV9wcm9iZSAqdHA7CisKKwl0cCA9IHRyYWNlX3Byb2JlX3ByaW1hcnlfZnJvbV9jYWxsKGNhbGwpOworCWlmIChXQVJOX09OX09OQ0UoIXRwKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXR1cm4gY29udGFpbmVyX29mKHRwLCBzdHJ1Y3QgdHJhY2Vfa3Byb2JlLCB0cCk7Cit9CisKIGJvb2wgdHJhY2Vfa3Byb2JlX29uX2Z1bmNfZW50cnkoc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKmNhbGwpCiB7Ci0Jc3RydWN0IHRyYWNlX2twcm9iZSAqdGsgPSAoc3RydWN0IHRyYWNlX2twcm9iZSAqKWNhbGwtPmRhdGE7CisJc3RydWN0IHRyYWNlX2twcm9iZSAqdGsgPSB0cmFjZV9rcHJvYmVfcHJpbWFyeV9mcm9tX2NhbGwoY2FsbCk7CiAKLQlyZXR1cm4ga3Byb2JlX29uX2Z1bmNfZW50cnkodGstPnJwLmtwLmFkZHIsCisJcmV0dXJuIHRrID8ga3Byb2JlX29uX2Z1bmNfZW50cnkodGstPnJwLmtwLmFkZHIsCiAJCQl0ay0+cnAua3AuYWRkciA/IE5VTEwgOiB0ay0+cnAua3Auc3ltYm9sX25hbWUsCi0JCQl0ay0+cnAua3AuYWRkciA/IDAgOiB0ay0+cnAua3Aub2Zmc2V0KTsKKwkJCXRrLT5ycC5rcC5hZGRyID8gMCA6IHRrLT5ycC5rcC5vZmZzZXQpIDogZmFsc2U7CiB9CiAKIGJvb2wgdHJhY2Vfa3Byb2JlX2Vycm9yX2luamVjdGFibGUoc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKmNhbGwpCiB7Ci0Jc3RydWN0IHRyYWNlX2twcm9iZSAqdGsgPSAoc3RydWN0IHRyYWNlX2twcm9iZSAqKWNhbGwtPmRhdGE7CisJc3RydWN0IHRyYWNlX2twcm9iZSAqdGsgPSB0cmFjZV9rcHJvYmVfcHJpbWFyeV9mcm9tX2NhbGwoY2FsbCk7CiAKLQlyZXR1cm4gd2l0aGluX2Vycm9yX2luamVjdGlvbl9saXN0KHRyYWNlX2twcm9iZV9hZGRyZXNzKHRrKSk7CisJcmV0dXJuIHRrID8gd2l0aGluX2Vycm9yX2luamVjdGlvbl9saXN0KHRyYWNlX2twcm9iZV9hZGRyZXNzKHRrKSkgOgorCSAgICAgICBmYWxzZTsKIH0KIAogc3RhdGljIGludCByZWdpc3Rlcl9rcHJvYmVfZXZlbnQoc3RydWN0IHRyYWNlX2twcm9iZSAqdGspOwpAQCAtMjkxLDMyICszMjgsNjggQEAgc3RhdGljIGlubGluZSBpbnQgX19lbmFibGVfdHJhY2Vfa3Byb2JlKHN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIF9fZGlzYWJsZV90cmFjZV9rcHJvYmUoc3RydWN0IHRyYWNlX3Byb2JlICp0cCkKK3sKKwlzdHJ1Y3QgdHJhY2VfcHJvYmUgKnBvczsKKwlzdHJ1Y3QgdHJhY2Vfa3Byb2JlICp0azsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCB0cmFjZV9wcm9iZV9wcm9iZV9saXN0KHRwKSwgbGlzdCkgeworCQl0ayA9IGNvbnRhaW5lcl9vZihwb3MsIHN0cnVjdCB0cmFjZV9rcHJvYmUsIHRwKTsKKwkJaWYgKCF0cmFjZV9rcHJvYmVfaXNfcmVnaXN0ZXJlZCh0aykpCisJCQljb250aW51ZTsKKwkJaWYgKHRyYWNlX2twcm9iZV9pc19yZXR1cm4odGspKQorCQkJZGlzYWJsZV9rcmV0cHJvYmUoJnRrLT5ycCk7CisJCWVsc2UKKwkJCWRpc2FibGVfa3Byb2JlKCZ0ay0+cnAua3ApOworCX0KK30KKwogLyoKICAqIEVuYWJsZSB0cmFjZV9wcm9iZQogICogaWYgdGhlIGZpbGUgaXMgTlVMTCwgZW5hYmxlICJwZXJmIiBoYW5kbGVyLCBvciBlbmFibGUgInRyYWNlIiBoYW5kbGVyLgogICovCi1zdGF0aWMgaW50Ci1lbmFibGVfdHJhY2Vfa3Byb2JlKHN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrLCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSkKK3N0YXRpYyBpbnQgZW5hYmxlX3RyYWNlX2twcm9iZShzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqY2FsbCwKKwkJCQlzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSkKIHsKLQlib29sIGVuYWJsZWQgPSB0cmFjZV9wcm9iZV9pc19lbmFibGVkKCZ0ay0+dHApOworCXN0cnVjdCB0cmFjZV9wcm9iZSAqcG9zLCAqdHA7CisJc3RydWN0IHRyYWNlX2twcm9iZSAqdGs7CisJYm9vbCBlbmFibGVkOwogCWludCByZXQgPSAwOwogCisJdHAgPSB0cmFjZV9wcm9iZV9wcmltYXJ5X2Zyb21fY2FsbChjYWxsKTsKKwlpZiAoV0FSTl9PTl9PTkNFKCF0cCkpCisJCXJldHVybiAtRU5PREVWOworCWVuYWJsZWQgPSB0cmFjZV9wcm9iZV9pc19lbmFibGVkKHRwKTsKKworCS8qIFRoaXMgYWxzbyBjaGFuZ2VzICJlbmFibGVkIiBzdGF0ZSAqLwogCWlmIChmaWxlKSB7Ci0JCXJldCA9IHRyYWNlX3Byb2JlX2FkZF9maWxlKCZ0ay0+dHAsIGZpbGUpOworCQlyZXQgPSB0cmFjZV9wcm9iZV9hZGRfZmlsZSh0cCwgZmlsZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0gZWxzZQotCQl0cmFjZV9wcm9iZV9zZXRfZmxhZygmdGstPnRwLCBUUF9GTEFHX1BST0ZJTEUpOworCQl0cmFjZV9wcm9iZV9zZXRfZmxhZyh0cCwgVFBfRkxBR19QUk9GSUxFKTsKIAogCWlmIChlbmFibGVkKQogCQlyZXR1cm4gMDsKIAotCXJldCA9IF9fZW5hYmxlX3RyYWNlX2twcm9iZSh0ayk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShwb3MsIHRyYWNlX3Byb2JlX3Byb2JlX2xpc3QodHApLCBsaXN0KSB7CisJCXRrID0gY29udGFpbmVyX29mKHBvcywgc3RydWN0IHRyYWNlX2twcm9iZSwgdHApOworCQlpZiAodHJhY2Vfa3Byb2JlX2hhc19nb25lKHRrKSkKKwkJCWNvbnRpbnVlOworCQlyZXQgPSBfX2VuYWJsZV90cmFjZV9rcHJvYmUodGspOworCQlpZiAocmV0KQorCQkJYnJlYWs7CisJCWVuYWJsZWQgPSB0cnVlOworCX0KKwogCWlmIChyZXQpIHsKKwkJLyogRmFpbGVkIHRvIGVuYWJsZSBvbmUgb2YgdGhlbS4gUm9sbCBiYWNrIGFsbCAqLworCQlpZiAoZW5hYmxlZCkKKwkJCV9fZGlzYWJsZV90cmFjZV9rcHJvYmUodHApOwogCQlpZiAoZmlsZSkKLQkJCXRyYWNlX3Byb2JlX3JlbW92ZV9maWxlKCZ0ay0+dHAsIGZpbGUpOworCQkJdHJhY2VfcHJvYmVfcmVtb3ZlX2ZpbGUodHAsIGZpbGUpOwogCQllbHNlCi0JCQl0cmFjZV9wcm9iZV9jbGVhcl9mbGFnKCZ0ay0+dHAsIFRQX0ZMQUdfUFJPRklMRSk7CisJCQl0cmFjZV9wcm9iZV9jbGVhcl9mbGFnKHRwLCBUUF9GTEFHX1BST0ZJTEUpOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC0zMjYsMTEgKzM5OSwxNCBAQCBlbmFibGVfdHJhY2Vfa3Byb2JlKHN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrLCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSkKICAqIERpc2FibGUgdHJhY2VfcHJvYmUKICAqIGlmIHRoZSBmaWxlIGlzIE5VTEwsIGRpc2FibGUgInBlcmYiIGhhbmRsZXIsIG9yIGRpc2FibGUgInRyYWNlIiBoYW5kbGVyLgogICovCi1zdGF0aWMgaW50Ci1kaXNhYmxlX3RyYWNlX2twcm9iZShzdHJ1Y3QgdHJhY2Vfa3Byb2JlICp0aywgc3RydWN0IHRyYWNlX2V2ZW50X2ZpbGUgKmZpbGUpCitzdGF0aWMgaW50IGRpc2FibGVfdHJhY2Vfa3Byb2JlKHN0cnVjdCB0cmFjZV9ldmVudF9jYWxsICpjYWxsLAorCQkJCXN0cnVjdCB0cmFjZV9ldmVudF9maWxlICpmaWxlKQogewotCXN0cnVjdCB0cmFjZV9wcm9iZSAqdHAgPSAmdGstPnRwOwotCWludCByZXQgPSAwOworCXN0cnVjdCB0cmFjZV9wcm9iZSAqdHA7CisKKwl0cCA9IHRyYWNlX3Byb2JlX3ByaW1hcnlfZnJvbV9jYWxsKGNhbGwpOworCWlmIChXQVJOX09OX09OQ0UoIXRwKSkKKwkJcmV0dXJuIC1FTk9ERVY7CiAKIAlpZiAoZmlsZSkgewogCQlpZiAoIXRyYWNlX3Byb2JlX2dldF9maWxlX2xpbmsodHAsIGZpbGUpKQpAQCAtMzQxLDEyICs0MTcsOCBAQCBkaXNhYmxlX3RyYWNlX2twcm9iZShzdHJ1Y3QgdHJhY2Vfa3Byb2JlICp0aywgc3RydWN0IHRyYWNlX2V2ZW50X2ZpbGUgKmZpbGUpCiAJfSBlbHNlCiAJCXRyYWNlX3Byb2JlX2NsZWFyX2ZsYWcodHAsIFRQX0ZMQUdfUFJPRklMRSk7CiAKLQlpZiAoIXRyYWNlX3Byb2JlX2lzX2VuYWJsZWQodHApICYmIHRyYWNlX2twcm9iZV9pc19yZWdpc3RlcmVkKHRrKSkgewotCQlpZiAodHJhY2Vfa3Byb2JlX2lzX3JldHVybih0aykpCi0JCQlkaXNhYmxlX2tyZXRwcm9iZSgmdGstPnJwKTsKLQkJZWxzZQotCQkJZGlzYWJsZV9rcHJvYmUoJnRrLT5ycC5rcCk7Ci0JfQorCWlmICghdHJhY2VfcHJvYmVfaXNfZW5hYmxlZCh0cCkpCisJCV9fZGlzYWJsZV90cmFjZV9rcHJvYmUodHApOwogCiAgb3V0OgogCWlmIChmaWxlKQpAQCAtMzU4LDcgKzQzMCw3IEBAIGRpc2FibGVfdHJhY2Vfa3Byb2JlKHN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrLCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSkKIAkJICovCiAJCXRyYWNlX3Byb2JlX3JlbW92ZV9maWxlKHRwLCBmaWxlKTsKIAotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKICNpZiBkZWZpbmVkKENPTkZJR19LUFJPQkVTX09OX0ZUUkFDRSkgJiYgXApAQCAtMzg5LDYgKzQ2MSwxMCBAQCBzdGF0aWMgaW50IF9fcmVnaXN0ZXJfdHJhY2Vfa3Byb2JlKHN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrKQogewogCWludCBpLCByZXQ7CiAKKwlyZXQgPSBzZWN1cml0eV9sb2NrZWRfZG93bihMT0NLRE9XTl9LUFJPQkVTKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJaWYgKHRyYWNlX2twcm9iZV9pc19yZWdpc3RlcmVkKHRrKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTQzNyw2ICs1MTMsMTAgQEAgc3RhdGljIHZvaWQgX191bnJlZ2lzdGVyX3RyYWNlX2twcm9iZShzdHJ1Y3QgdHJhY2Vfa3Byb2JlICp0aykKIC8qIFVucmVnaXN0ZXIgYSB0cmFjZV9wcm9iZSBhbmQgcHJvYmVfZXZlbnQgKi8KIHN0YXRpYyBpbnQgdW5yZWdpc3Rlcl90cmFjZV9rcHJvYmUoc3RydWN0IHRyYWNlX2twcm9iZSAqdGspCiB7CisJLyogSWYgb3RoZXIgcHJvYmVzIGFyZSBvbiB0aGUgZXZlbnQsIGp1c3QgdW5yZWdpc3RlciBrcHJvYmUgKi8KKwlpZiAodHJhY2VfcHJvYmVfaGFzX3NpYmxpbmcoJnRrLT50cCkpCisJCWdvdG8gdW5yZWc7CisKIAkvKiBFbmFibGVkIGV2ZW50IGNhbiBub3QgYmUgdW5yZWdpc3RlcmVkICovCiAJaWYgKHRyYWNlX3Byb2JlX2lzX2VuYWJsZWQoJnRrLT50cCkpCiAJCXJldHVybiAtRUJVU1k7CkBAIC00NDUsMTIgKzUyNSw4MiBAQCBzdGF0aWMgaW50IHVucmVnaXN0ZXJfdHJhY2Vfa3Byb2JlKHN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrKQogCWlmICh1bnJlZ2lzdGVyX2twcm9iZV9ldmVudCh0aykpCiAJCXJldHVybiAtRUJVU1k7CiAKK3VucmVnOgogCV9fdW5yZWdpc3Rlcl90cmFjZV9rcHJvYmUodGspOwogCWR5bl9ldmVudF9yZW1vdmUoJnRrLT5kZXZlbnQpOworCXRyYWNlX3Byb2JlX3VubGluaygmdGstPnRwKTsKIAogCXJldHVybiAwOwogfQogCitzdGF0aWMgYm9vbCB0cmFjZV9rcHJvYmVfaGFzX3NhbWVfa3Byb2JlKHN0cnVjdCB0cmFjZV9rcHJvYmUgKm9yaWcsCisJCQkJCSBzdHJ1Y3QgdHJhY2Vfa3Byb2JlICpjb21wKQoreworCXN0cnVjdCB0cmFjZV9wcm9iZV9ldmVudCAqdHBlID0gb3JpZy0+dHAuZXZlbnQ7CisJc3RydWN0IHRyYWNlX3Byb2JlICpwb3M7CisJaW50IGk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBvcywgJnRwZS0+cHJvYmVzLCBsaXN0KSB7CisJCW9yaWcgPSBjb250YWluZXJfb2YocG9zLCBzdHJ1Y3QgdHJhY2Vfa3Byb2JlLCB0cCk7CisJCWlmIChzdHJjbXAodHJhY2Vfa3Byb2JlX3N5bWJvbChvcmlnKSwKKwkJCSAgIHRyYWNlX2twcm9iZV9zeW1ib2woY29tcCkpIHx8CisJCSAgICB0cmFjZV9rcHJvYmVfb2Zmc2V0KG9yaWcpICE9IHRyYWNlX2twcm9iZV9vZmZzZXQoY29tcCkpCisJCQljb250aW51ZTsKKworCQkvKgorCQkgKiB0cmFjZV9wcm9iZV9jb21wYXJlX2FyZ190eXBlKCkgZW5zdXJlZCB0aGF0IG5yX2FyZ3MgYW5kCisJCSAqIGVhY2ggYXJndW1lbnQgbmFtZSBhbmQgdHlwZSBhcmUgc2FtZS4gTGV0J3MgY29tcGFyZSBjb21tLgorCQkgKi8KKwkJZm9yIChpID0gMDsgaSA8IG9yaWctPnRwLm5yX2FyZ3M7IGkrKykgeworCQkJaWYgKHN0cmNtcChvcmlnLT50cC5hcmdzW2ldLmNvbW0sCisJCQkJICAgY29tcC0+dHAuYXJnc1tpXS5jb21tKSkKKwkJCQlicmVhazsKKwkJfQorCisJCWlmIChpID09IG9yaWctPnRwLm5yX2FyZ3MpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBpbnQgYXBwZW5kX3RyYWNlX2twcm9iZShzdHJ1Y3QgdHJhY2Vfa3Byb2JlICp0aywgc3RydWN0IHRyYWNlX2twcm9iZSAqdG8pCit7CisJaW50IHJldDsKKworCXJldCA9IHRyYWNlX3Byb2JlX2NvbXBhcmVfYXJnX3R5cGUoJnRrLT50cCwgJnRvLT50cCk7CisJaWYgKHJldCkgeworCQkvKiBOb3RlIHRoYXQgYXJndW1lbnQgc3RhcnRzIGluZGV4ID0gMiAqLworCQl0cmFjZV9wcm9iZV9sb2dfc2V0X2luZGV4KHJldCArIDEpOworCQl0cmFjZV9wcm9iZV9sb2dfZXJyKDAsIERJRkZfQVJHX1RZUEUpOworCQlyZXR1cm4gLUVFWElTVDsKKwl9CisJaWYgKHRyYWNlX2twcm9iZV9oYXNfc2FtZV9rcHJvYmUodG8sIHRrKSkgeworCQl0cmFjZV9wcm9iZV9sb2dfc2V0X2luZGV4KDApOworCQl0cmFjZV9wcm9iZV9sb2dfZXJyKDAsIFNBTUVfUFJPQkUpOworCQlyZXR1cm4gLUVFWElTVDsKKwl9CisKKwkvKiBBcHBlbmQgdG8gZXhpc3RpbmcgZXZlbnQgKi8KKwlyZXQgPSB0cmFjZV9wcm9iZV9hcHBlbmQoJnRrLT50cCwgJnRvLT50cCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qIFJlZ2lzdGVyIGsqcHJvYmUgKi8KKwlyZXQgPSBfX3JlZ2lzdGVyX3RyYWNlX2twcm9iZSh0ayk7CisJaWYgKHJldCA9PSAtRU5PRU5UICYmICF0cmFjZV9rcHJvYmVfbW9kdWxlX2V4aXN0KHRrKSkgeworCQlwcl93YXJuKCJUaGlzIHByb2JlIG1pZ2h0IGJlIGFibGUgdG8gcmVnaXN0ZXIgYWZ0ZXIgdGFyZ2V0IG1vZHVsZSBpcyBsb2FkZWQuIENvbnRpbnVlLlxuIik7CisJCXJldCA9IDA7CisJfQorCisJaWYgKHJldCkKKwkJdHJhY2VfcHJvYmVfdW5saW5rKCZ0ay0+dHApOworCWVsc2UKKwkJZHluX2V2ZW50X2FkZCgmdGstPmRldmVudCk7CisKKwlyZXR1cm4gcmV0OworfQorCiAvKiBSZWdpc3RlciBhIHRyYWNlX3Byb2JlIGFuZCBwcm9iZV9ldmVudCAqLwogc3RhdGljIGludCByZWdpc3Rlcl90cmFjZV9rcHJvYmUoc3RydWN0IHRyYWNlX2twcm9iZSAqdGspCiB7CkBAIC00NTksMTQgKzYwOSwxNyBAQCBzdGF0aWMgaW50IHJlZ2lzdGVyX3RyYWNlX2twcm9iZShzdHJ1Y3QgdHJhY2Vfa3Byb2JlICp0aykKIAogCW11dGV4X2xvY2soJmV2ZW50X211dGV4KTsKIAotCS8qIERlbGV0ZSBvbGQgKHNhbWUgbmFtZSkgZXZlbnQgaWYgZXhpc3QgKi8KIAlvbGRfdGsgPSBmaW5kX3RyYWNlX2twcm9iZSh0cmFjZV9wcm9iZV9uYW1lKCZ0ay0+dHApLAogCQkJCSAgIHRyYWNlX3Byb2JlX2dyb3VwX25hbWUoJnRrLT50cCkpOwogCWlmIChvbGRfdGspIHsKLQkJcmV0ID0gdW5yZWdpc3Rlcl90cmFjZV9rcHJvYmUob2xkX3RrKTsKLQkJaWYgKHJldCA8IDApCi0JCQlnb3RvIGVuZDsKLQkJZnJlZV90cmFjZV9rcHJvYmUob2xkX3RrKTsKKwkJaWYgKHRyYWNlX2twcm9iZV9pc19yZXR1cm4odGspICE9IHRyYWNlX2twcm9iZV9pc19yZXR1cm4ob2xkX3RrKSkgeworCQkJdHJhY2VfcHJvYmVfbG9nX3NldF9pbmRleCgwKTsKKwkJCXRyYWNlX3Byb2JlX2xvZ19lcnIoMCwgRElGRl9QUk9CRV9UWVBFKTsKKwkJCXJldCA9IC1FRVhJU1Q7CisJCX0gZWxzZSB7CisJCQlyZXQgPSBhcHBlbmRfdHJhY2Vfa3Byb2JlKHRrLCBvbGRfdGspOworCQl9CisJCWdvdG8gZW5kOwogCX0KIAogCS8qIFJlZ2lzdGVyIG5ldyBldmVudCAqLwpAQCAtNzAwLDcgKzg1Myw3IEBAIHN0YXRpYyBpbnQgdHJhY2Vfa3Byb2JlX2NyZWF0ZShpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKQogCQkJdHJhY2VfcHJvYmVfbG9nX2VycigwLCBCQURfSU5TTl9CTkRSWSk7CiAJCWVsc2UgaWYgKHJldCA9PSAtRU5PRU5UKQogCQkJdHJhY2VfcHJvYmVfbG9nX2VycigwLCBCQURfUFJPQkVfQUREUik7Ci0JCWVsc2UgaWYgKHJldCAhPSAtRU5PTUVNKQorCQllbHNlIGlmIChyZXQgIT0gLUVOT01FTSAmJiByZXQgIT0gLUVFWElTVCkKIAkJCXRyYWNlX3Byb2JlX2xvZ19lcnIoMCwgRkFJTF9SRUdfUFJPQkUpOwogCQlnb3RvIGVycm9yOwogCX0KQEAgLTk2NSw2ICsxMTE4LDkgQEAgcHJvY2Vzc19mZXRjaF9pbnNuKHN0cnVjdCBmZXRjaF9pbnNuICpjb2RlLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgdm9pZCAqZGVzdCwKIAljYXNlIEZFVENIX09QX0NPTU06CiAJCXZhbCA9ICh1bnNpZ25lZCBsb25nKWN1cnJlbnQtPmNvbW07CiAJCWJyZWFrOworCWNhc2UgRkVUQ0hfT1BfREFUQToKKwkJdmFsID0gKHVuc2lnbmVkIGxvbmcpY29kZS0+ZGF0YTsKKwkJYnJlYWs7CiAjaWZkZWYgQ09ORklHX0hBVkVfRlVOQ1RJT05fQVJHX0FDQ0VTU19BUEkKIAljYXNlIEZFVENIX09QX0FSRzoKIAkJdmFsID0gcmVnc19nZXRfa2VybmVsX2FyZ3VtZW50KHJlZ3MsIGNvZGUtPnBhcmFtKTsKQEAgLTEwODksNyArMTI0NSwxMCBAQCBwcmludF9rcHJvYmVfZXZlbnQoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLCBpbnQgZmxhZ3MsCiAJc3RydWN0IHRyYWNlX3Byb2JlICp0cDsKIAogCWZpZWxkID0gKHN0cnVjdCBrcHJvYmVfdHJhY2VfZW50cnlfaGVhZCAqKWl0ZXItPmVudDsKLQl0cCA9IGNvbnRhaW5lcl9vZihldmVudCwgc3RydWN0IHRyYWNlX3Byb2JlLCBjYWxsLmV2ZW50KTsKKwl0cCA9IHRyYWNlX3Byb2JlX3ByaW1hcnlfZnJvbV9jYWxsKAorCQljb250YWluZXJfb2YoZXZlbnQsIHN0cnVjdCB0cmFjZV9ldmVudF9jYWxsLCBldmVudCkpOworCWlmIChXQVJOX09OX09OQ0UoIXRwKSkKKwkJZ290byBvdXQ7CiAKIAl0cmFjZV9zZXFfcHJpbnRmKHMsICIlczogKCIsIHRyYWNlX3Byb2JlX25hbWUodHApKTsKIApAQCAtMTExNiw3ICsxMjc1LDEwIEBAIHByaW50X2tyZXRwcm9iZV9ldmVudChzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIsIGludCBmbGFncywKIAlzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwOwogCiAJZmllbGQgPSAoc3RydWN0IGtyZXRwcm9iZV90cmFjZV9lbnRyeV9oZWFkICopaXRlci0+ZW50OwotCXRwID0gY29udGFpbmVyX29mKGV2ZW50LCBzdHJ1Y3QgdHJhY2VfcHJvYmUsIGNhbGwuZXZlbnQpOworCXRwID0gdHJhY2VfcHJvYmVfcHJpbWFyeV9mcm9tX2NhbGwoCisJCWNvbnRhaW5lcl9vZihldmVudCwgc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwsIGV2ZW50KSk7CisJaWYgKFdBUk5fT05fT05DRSghdHApKQorCQlnb3RvIG91dDsKIAogCXRyYWNlX3NlcV9wcmludGYocywgIiVzOiAoIiwgdHJhY2VfcHJvYmVfbmFtZSh0cCkpOwogCkBAIC0xMTQ1LDIzICsxMzA3LDMxIEBAIHN0YXRpYyBpbnQga3Byb2JlX2V2ZW50X2RlZmluZV9maWVsZHMoc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKmV2ZW50X2NhbGwpCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3Qga3Byb2JlX3RyYWNlX2VudHJ5X2hlYWQgZmllbGQ7Ci0Jc3RydWN0IHRyYWNlX2twcm9iZSAqdGsgPSAoc3RydWN0IHRyYWNlX2twcm9iZSAqKWV2ZW50X2NhbGwtPmRhdGE7CisJc3RydWN0IHRyYWNlX3Byb2JlICp0cDsKKworCXRwID0gdHJhY2VfcHJvYmVfcHJpbWFyeV9mcm9tX2NhbGwoZXZlbnRfY2FsbCk7CisJaWYgKFdBUk5fT05fT05DRSghdHApKQorCQlyZXR1cm4gLUVOT0VOVDsKIAogCURFRklORV9GSUVMRCh1bnNpZ25lZCBsb25nLCBpcCwgRklFTERfU1RSSU5HX0lQLCAwKTsKIAotCXJldHVybiB0cmFjZXByb2JlX2RlZmluZV9hcmdfZmllbGRzKGV2ZW50X2NhbGwsIHNpemVvZihmaWVsZCksICZ0ay0+dHApOworCXJldHVybiB0cmFjZXByb2JlX2RlZmluZV9hcmdfZmllbGRzKGV2ZW50X2NhbGwsIHNpemVvZihmaWVsZCksIHRwKTsKIH0KIAogc3RhdGljIGludCBrcmV0cHJvYmVfZXZlbnRfZGVmaW5lX2ZpZWxkcyhzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqZXZlbnRfY2FsbCkKIHsKIAlpbnQgcmV0OwogCXN0cnVjdCBrcmV0cHJvYmVfdHJhY2VfZW50cnlfaGVhZCBmaWVsZDsKLQlzdHJ1Y3QgdHJhY2Vfa3Byb2JlICp0ayA9IChzdHJ1Y3QgdHJhY2Vfa3Byb2JlICopZXZlbnRfY2FsbC0+ZGF0YTsKKwlzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwOworCisJdHAgPSB0cmFjZV9wcm9iZV9wcmltYXJ5X2Zyb21fY2FsbChldmVudF9jYWxsKTsKKwlpZiAoV0FSTl9PTl9PTkNFKCF0cCkpCisJCXJldHVybiAtRU5PRU5UOwogCiAJREVGSU5FX0ZJRUxEKHVuc2lnbmVkIGxvbmcsIGZ1bmMsIEZJRUxEX1NUUklOR19GVU5DLCAwKTsKIAlERUZJTkVfRklFTEQodW5zaWduZWQgbG9uZywgcmV0X2lwLCBGSUVMRF9TVFJJTkdfUkVUSVAsIDApOwogCi0JcmV0dXJuIHRyYWNlcHJvYmVfZGVmaW5lX2FyZ19maWVsZHMoZXZlbnRfY2FsbCwgc2l6ZW9mKGZpZWxkKSwgJnRrLT50cCk7CisJcmV0dXJuIHRyYWNlcHJvYmVfZGVmaW5lX2FyZ19maWVsZHMoZXZlbnRfY2FsbCwgc2l6ZW9mKGZpZWxkKSwgdHApOwogfQogCiAjaWZkZWYgQ09ORklHX1BFUkZfRVZFTlRTCkBAIC0xMjg5LDIwICsxNDU5LDE5IEBAIGludCBicGZfZ2V0X2twcm9iZV9pbmZvKGNvbnN0IHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCwgdTMyICpmZF90eXBlLAogc3RhdGljIGludCBrcHJvYmVfcmVnaXN0ZXIoc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKmV2ZW50LAogCQkJICAgZW51bSB0cmFjZV9yZWcgdHlwZSwgdm9pZCAqZGF0YSkKIHsKLQlzdHJ1Y3QgdHJhY2Vfa3Byb2JlICp0ayA9IChzdHJ1Y3QgdHJhY2Vfa3Byb2JlICopZXZlbnQtPmRhdGE7CiAJc3RydWN0IHRyYWNlX2V2ZW50X2ZpbGUgKmZpbGUgPSBkYXRhOwogCiAJc3dpdGNoICh0eXBlKSB7CiAJY2FzZSBUUkFDRV9SRUdfUkVHSVNURVI6Ci0JCXJldHVybiBlbmFibGVfdHJhY2Vfa3Byb2JlKHRrLCBmaWxlKTsKKwkJcmV0dXJuIGVuYWJsZV90cmFjZV9rcHJvYmUoZXZlbnQsIGZpbGUpOwogCWNhc2UgVFJBQ0VfUkVHX1VOUkVHSVNURVI6Ci0JCXJldHVybiBkaXNhYmxlX3RyYWNlX2twcm9iZSh0aywgZmlsZSk7CisJCXJldHVybiBkaXNhYmxlX3RyYWNlX2twcm9iZShldmVudCwgZmlsZSk7CiAKICNpZmRlZiBDT05GSUdfUEVSRl9FVkVOVFMKIAljYXNlIFRSQUNFX1JFR19QRVJGX1JFR0lTVEVSOgotCQlyZXR1cm4gZW5hYmxlX3RyYWNlX2twcm9iZSh0aywgTlVMTCk7CisJCXJldHVybiBlbmFibGVfdHJhY2Vfa3Byb2JlKGV2ZW50LCBOVUxMKTsKIAljYXNlIFRSQUNFX1JFR19QRVJGX1VOUkVHSVNURVI6Ci0JCXJldHVybiBkaXNhYmxlX3RyYWNlX2twcm9iZSh0aywgTlVMTCk7CisJCXJldHVybiBkaXNhYmxlX3RyYWNlX2twcm9iZShldmVudCwgTlVMTCk7CiAJY2FzZSBUUkFDRV9SRUdfUEVSRl9PUEVOOgogCWNhc2UgVFJBQ0VfUkVHX1BFUkZfQ0xPU0U6CiAJY2FzZSBUUkFDRV9SRUdfUEVSRl9BREQ6CkBAIC0xMzY5LDcgKzE1MzgsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF90cmFjZV9ldmVudF9jYWxsKHN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrKQogCiAJY2FsbC0+ZmxhZ3MgPSBUUkFDRV9FVkVOVF9GTF9LUFJPQkU7CiAJY2FsbC0+Y2xhc3MtPnJlZyA9IGtwcm9iZV9yZWdpc3RlcjsKLQljYWxsLT5kYXRhID0gdGs7CiB9CiAKIHN0YXRpYyBpbnQgcmVnaXN0ZXJfa3Byb2JlX2V2ZW50KHN0cnVjdCB0cmFjZV9rcHJvYmUgKnRrKQpAQCAtMTQzMiw3ICsxNjAwLDkgQEAgdm9pZCBkZXN0cm95X2xvY2FsX3RyYWNlX2twcm9iZShzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqZXZlbnRfY2FsbCkKIHsKIAlzdHJ1Y3QgdHJhY2Vfa3Byb2JlICp0azsKIAotCXRrID0gY29udGFpbmVyX29mKGV2ZW50X2NhbGwsIHN0cnVjdCB0cmFjZV9rcHJvYmUsIHRwLmNhbGwpOworCXRrID0gdHJhY2Vfa3Byb2JlX3ByaW1hcnlfZnJvbV9jYWxsKGV2ZW50X2NhbGwpOworCWlmICh1bmxpa2VseSghdGspKQorCQlyZXR1cm47CiAKIAlpZiAodHJhY2VfcHJvYmVfaXNfZW5hYmxlZCgmdGstPnRwKSkgewogCQlXQVJOX09OKDEpOwpAQCAtMTU3Nyw3ICsxNzQ3LDggQEAgc3RhdGljIF9faW5pdCBpbnQga3Byb2JlX3RyYWNlX3NlbGZfdGVzdHNfaW5pdCh2b2lkKQogCQkJCXByX3dhcm4oImVycm9yIG9uIGdldHRpbmcgcHJvYmUgZmlsZS5cbiIpOwogCQkJCXdhcm4rKzsKIAkJCX0gZWxzZQotCQkJCWVuYWJsZV90cmFjZV9rcHJvYmUodGssIGZpbGUpOworCQkJCWVuYWJsZV90cmFjZV9rcHJvYmUoCisJCQkJCXRyYWNlX3Byb2JlX2V2ZW50X2NhbGwoJnRrLT50cCksIGZpbGUpOwogCQl9CiAJfQogCkBAIC0xNTk4LDcgKzE3NjksOCBAQCBzdGF0aWMgX19pbml0IGludCBrcHJvYmVfdHJhY2Vfc2VsZl90ZXN0c19pbml0KHZvaWQpCiAJCQkJcHJfd2FybigiZXJyb3Igb24gZ2V0dGluZyBwcm9iZSBmaWxlLlxuIik7CiAJCQkJd2FybisrOwogCQkJfSBlbHNlCi0JCQkJZW5hYmxlX3RyYWNlX2twcm9iZSh0aywgZmlsZSk7CisJCQkJZW5hYmxlX3RyYWNlX2twcm9iZSgKKwkJCQkJdHJhY2VfcHJvYmVfZXZlbnRfY2FsbCgmdGstPnRwKSwgZmlsZSk7CiAJCX0KIAl9CiAKQEAgLTE2MzEsNyArMTgwMyw4IEBAIHN0YXRpYyBfX2luaXQgaW50IGtwcm9iZV90cmFjZV9zZWxmX3Rlc3RzX2luaXQodm9pZCkKIAkJCXByX3dhcm4oImVycm9yIG9uIGdldHRpbmcgcHJvYmUgZmlsZS5cbiIpOwogCQkJd2FybisrOwogCQl9IGVsc2UKLQkJCWRpc2FibGVfdHJhY2Vfa3Byb2JlKHRrLCBmaWxlKTsKKwkJCWRpc2FibGVfdHJhY2Vfa3Byb2JlKAorCQkJCXRyYWNlX3Byb2JlX2V2ZW50X2NhbGwoJnRrLT50cCksIGZpbGUpOwogCX0KIAogCXRrID0gZmluZF90cmFjZV9rcHJvYmUoInRlc3Rwcm9iZTIiLCBLUFJPQkVfRVZFTlRfU1lTVEVNKTsKQEAgLTE2NDksNyArMTgyMiw4IEBAIHN0YXRpYyBfX2luaXQgaW50IGtwcm9iZV90cmFjZV9zZWxmX3Rlc3RzX2luaXQodm9pZCkKIAkJCXByX3dhcm4oImVycm9yIG9uIGdldHRpbmcgcHJvYmUgZmlsZS5cbiIpOwogCQkJd2FybisrOwogCQl9IGVsc2UKLQkJCWRpc2FibGVfdHJhY2Vfa3Byb2JlKHRrLCBmaWxlKTsKKwkJCWRpc2FibGVfdHJhY2Vfa3Byb2JlKAorCQkJCXRyYWNlX3Byb2JlX2V2ZW50X2NhbGwoJnRrLT50cCksIGZpbGUpOwogCX0KIAogCXJldCA9IHRyYWNlX3J1bl9jb21tYW5kKCItOnRlc3Rwcm9iZSIsIGNyZWF0ZV9vcl9kZWxldGVfdHJhY2Vfa3Byb2JlKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9vdXRwdXQuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9vdXRwdXQuYwppbmRleCBjYWI0YTUzLi5kNTRjZTI1IDEwMDY0NAotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfb3V0cHV0LmMKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX291dHB1dC5jCkBAIC0yMTksMTAgKzIxOSwxMCBAQCB0cmFjZV9wcmludF9oZXhfc2VxKHN0cnVjdCB0cmFjZV9zZXEgKnAsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGJ1Zl9sZW4sCiB7CiAJaW50IGk7CiAJY29uc3QgY2hhciAqcmV0ID0gdHJhY2Vfc2VxX2J1ZmZlcl9wdHIocCk7CisJY29uc3QgY2hhciAqZm10ID0gY29uY2F0ZW5hdGUgPyAiJSpwaE4iIDogIiUqcGgiOwogCi0JZm9yIChpID0gMDsgaSA8IGJ1Zl9sZW47IGkrKykKLQkJdHJhY2Vfc2VxX3ByaW50ZihwLCAiJXMlMi4yeCIsIGNvbmNhdGVuYXRlIHx8IGkgPT0gMCA/ICIiIDogIiAiLAotCQkJCSBidWZbaV0pOworCWZvciAoaSA9IDA7IGkgPCBidWZfbGVuOyBpICs9IDE2KQorCQl0cmFjZV9zZXFfcHJpbnRmKHAsIGZtdCwgbWluKGJ1Zl9sZW4gLSBpLCAxNiksICZidWZbaV0pOwogCXRyYWNlX3NlcV9wdXRjKHAsIDApOwogCiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9wcm9iZS5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3Byb2JlLmMKaW5kZXggZmI2YmZiYy4uYmFmNThhMyAxMDA2NDQKLS0tIGEva2VybmVsL3RyYWNlL3RyYWNlX3Byb2JlLmMKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3Byb2JlLmMKQEAgLTMxNiw2ICszMTYsMjkgQEAgc3RhdGljIGludCBwYXJzZV9wcm9iZV92YXJzKGNoYXIgKmFyZywgY29uc3Qgc3RydWN0IGZldGNoX3R5cGUgKnQsCiAJcmV0dXJuIC1FSU5WQUw7CiB9CiAKK3N0YXRpYyBpbnQgc3RyX3RvX2ltbWVkaWF0ZShjaGFyICpzdHIsIHVuc2lnbmVkIGxvbmcgKmltbSkKK3sKKwlpZiAoaXNkaWdpdChzdHJbMF0pKQorCQlyZXR1cm4ga3N0cnRvdWwoc3RyLCAwLCBpbW0pOworCWVsc2UgaWYgKHN0clswXSA9PSAnLScpCisJCXJldHVybiBrc3RydG9sKHN0ciwgMCwgKGxvbmcgKilpbW0pOworCWVsc2UgaWYgKHN0clswXSA9PSAnKycpCisJCXJldHVybiBrc3RydG9sKHN0ciArIDEsIDAsIChsb25nICopaW1tKTsKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGludCBfX3BhcnNlX2ltbV9zdHJpbmcoY2hhciAqc3RyLCBjaGFyICoqcGJ1ZiwgaW50IG9mZnMpCit7CisJc2l6ZV90IGxlbiA9IHN0cmxlbihzdHIpOworCisJaWYgKHN0cltsZW4gLSAxXSAhPSAnIicpIHsKKwkJdHJhY2VfcHJvYmVfbG9nX2VycihvZmZzICsgbGVuLCBJTU1TVFJfTk9fQ0xPU0UpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJKnBidWYgPSBrc3RybmR1cChzdHIsIGxlbiAtIDEsIEdGUF9LRVJORUwpOworCXJldHVybiAwOworfQorCiAvKiBSZWN1cnNpdmUgYXJndW1lbnQgcGFyc2VyICovCiBzdGF0aWMgaW50CiBwYXJzZV9wcm9iZV9hcmcoY2hhciAqYXJnLCBjb25zdCBzdHJ1Y3QgZmV0Y2hfdHlwZSAqdHlwZSwKQEAgLTQzMCw3ICs0NTMsOCBAQCBwYXJzZV9wcm9iZV9hcmcoY2hhciAqYXJnLCBjb25zdCBzdHJ1Y3QgZmV0Y2hfdHlwZSAqdHlwZSwKIAkJCXJldCA9IHBhcnNlX3Byb2JlX2FyZyhhcmcsIHQyLCAmY29kZSwgZW5kLCBmbGFncywgb2Zmcyk7CiAJCQlpZiAocmV0KQogCQkJCWJyZWFrOwotCQkJaWYgKGNvZGUtPm9wID09IEZFVENIX09QX0NPTU0pIHsKKwkJCWlmIChjb2RlLT5vcCA9PSBGRVRDSF9PUF9DT01NIHx8CisJCQkgICAgY29kZS0+b3AgPT0gRkVUQ0hfT1BfREFUQSkgewogCQkJCXRyYWNlX3Byb2JlX2xvZ19lcnIob2ZmcywgQ09NTV9DQU5UX0RFUkVGKTsKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0KQEAgLTQ0NCw2ICs0NjgsMjEgQEAgcGFyc2VfcHJvYmVfYXJnKGNoYXIgKmFyZywgY29uc3Qgc3RydWN0IGZldGNoX3R5cGUgKnR5cGUsCiAJCQljb2RlLT5vZmZzZXQgPSBvZmZzZXQ7CiAJCX0KIAkJYnJlYWs7CisJY2FzZSAnXFwnOgkvKiBJbW1lZGlhdGUgdmFsdWUgKi8KKwkJaWYgKGFyZ1sxXSA9PSAnIicpIHsJLyogSW1tZWRpYXRlIHN0cmluZyAqLworCQkJcmV0ID0gX19wYXJzZV9pbW1fc3RyaW5nKGFyZyArIDIsICZ0bXAsIG9mZnMgKyAyKTsKKwkJCWlmIChyZXQpCisJCQkJYnJlYWs7CisJCQljb2RlLT5vcCA9IEZFVENIX09QX0RBVEE7CisJCQljb2RlLT5kYXRhID0gdG1wOworCQl9IGVsc2UgeworCQkJcmV0ID0gc3RyX3RvX2ltbWVkaWF0ZShhcmcgKyAxLCAmY29kZS0+aW1tZWRpYXRlKTsKKwkJCWlmIChyZXQpCisJCQkJdHJhY2VfcHJvYmVfbG9nX2VycihvZmZzICsgMSwgQkFEX0lNTSk7CisJCQllbHNlCisJCQkJY29kZS0+b3AgPSBGRVRDSF9PUF9JTU07CisJCX0KKwkJYnJlYWs7CiAJfQogCWlmICghcmV0ICYmIGNvZGUtPm9wID09IEZFVENIX09QX05PUCkgewogCQkvKiBQYXJzZWQsIGJ1dCBkbyBub3QgZmluZCBmZXRjaCBtZXRob2QgKi8KQEAgLTU0Miw4ICs1ODEsMTEgQEAgc3RhdGljIGludCB0cmFjZXByb2JlX3BhcnNlX3Byb2JlX2FyZ19ib2R5KGNoYXIgKmFyZywgc3NpemVfdCAqc2l6ZSwKIAkJfQogCX0KIAotCS8qIFNpbmNlICRjb21tIGNhbiBub3QgYmUgZGVyZWZlcnJlZCwgd2UgY2FuIGZpbmQgJGNvbW0gYnkgc3RyY21wICovCi0JaWYgKHN0cmNtcChhcmcsICIkY29tbSIpID09IDApIHsKKwkvKgorCSAqIFNpbmNlICRjb21tIGFuZCBpbW1lZGlhdGUgc3RyaW5nIGNhbiBub3QgYmUgZGVyZWZlcnJlZCwKKwkgKiB3ZSBjYW4gZmluZCB0aG9zZSBieSBzdHJjbXAuCisJICovCisJaWYgKHN0cmNtcChhcmcsICIkY29tbSIpID09IDAgfHwgc3RybmNtcChhcmcsICJcXFwiIiwgMikgPT0gMCkgewogCQkvKiBUaGUgdHlwZSBvZiAkY29tbSBtdXN0IGJlICJzdHJpbmciLCBhbmQgbm90IGFuIGFycmF5LiAqLwogCQlpZiAocGFyZy0+Y291bnQgfHwgKHQgJiYgc3RyY21wKHQsICJzdHJpbmciKSkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTU4MCw3ICs2MjIsOCBAQCBzdGF0aWMgaW50IHRyYWNlcHJvYmVfcGFyc2VfcHJvYmVfYXJnX2JvZHkoY2hhciAqYXJnLCBzc2l6ZV90ICpzaXplLAogCWlmICghc3RyY21wKHBhcmctPnR5cGUtPm5hbWUsICJzdHJpbmciKSB8fAogCSAgICAhc3RyY21wKHBhcmctPnR5cGUtPm5hbWUsICJ1c3RyaW5nIikpIHsKIAkJaWYgKGNvZGUtPm9wICE9IEZFVENIX09QX0RFUkVGICYmIGNvZGUtPm9wICE9IEZFVENIX09QX1VERVJFRiAmJgotCQkgICAgY29kZS0+b3AgIT0gRkVUQ0hfT1BfSU1NICYmIGNvZGUtPm9wICE9IEZFVENIX09QX0NPTU0pIHsKKwkJICAgIGNvZGUtPm9wICE9IEZFVENIX09QX0lNTSAmJiBjb2RlLT5vcCAhPSBGRVRDSF9PUF9DT01NICYmCisJCSAgICBjb2RlLT5vcCAhPSBGRVRDSF9PUF9EQVRBKSB7CiAJCQl0cmFjZV9wcm9iZV9sb2dfZXJyKG9mZnNldCArICh0ID8gKHQgLSBhcmcpIDogMCksCiAJCQkJCSAgICBCQURfU1RSSU5HKTsKIAkJCXJldCA9IC1FSU5WQUw7CkBAIC01ODksOSArNjMyLDEwIEBAIHN0YXRpYyBpbnQgdHJhY2Vwcm9iZV9wYXJzZV9wcm9iZV9hcmdfYm9keShjaGFyICphcmcsIHNzaXplX3QgKnNpemUsCiAJCWlmICgoY29kZS0+b3AgPT0gRkVUQ0hfT1BfSU1NIHx8IGNvZGUtPm9wID09IEZFVENIX09QX0NPTU0pIHx8CiAJCSAgICAgcGFyZy0+Y291bnQpIHsKIAkJCS8qCi0JCQkgKiBJTU0gYW5kIENPTU0gaXMgcG9pbnRpbmcgYWN0dWFsIGFkZHJlc3MsIHRob3NlIG11c3QKLQkJCSAqIGJlIGtlcHQsIGFuZCBpZiBwYXJnLT5jb3VudCAhPSAwLCB0aGlzIGlzIGFuIGFycmF5Ci0JCQkgKiBvZiBzdHJpbmcgcG9pbnRlcnMgaW5zdGVhZCBvZiBzdHJpbmcgYWRkcmVzcyBpdHNlbGYuCisJCQkgKiBJTU0sIERBVEEgYW5kIENPTU0gaXMgcG9pbnRpbmcgYWN0dWFsIGFkZHJlc3MsIHRob3NlCisJCQkgKiBtdXN0IGJlIGtlcHQsIGFuZCBpZiBwYXJnLT5jb3VudCAhPSAwLCB0aGlzIGlzIGFuCisJCQkgKiBhcnJheSBvZiBzdHJpbmcgcG9pbnRlcnMgaW5zdGVhZCBvZiBzdHJpbmcgYWRkcmVzcworCQkJICogaXRzZWxmLgogCQkJICovCiAJCQljb2RlKys7CiAJCQlpZiAoY29kZS0+b3AgIT0gRkVUQ0hfT1BfTk9QKSB7CkBAIC02NjUsNyArNzA5LDggQEAgc3RhdGljIGludCB0cmFjZXByb2JlX3BhcnNlX3Byb2JlX2FyZ19ib2R5KGNoYXIgKmFyZywgc3NpemVfdCAqc2l6ZSwKIGZhaWw6CiAJaWYgKHJldCkgewogCQlmb3IgKGNvZGUgPSB0bXA7IGNvZGUgPCB0bXAgKyBGRVRDSF9JTlNOX01BWDsgY29kZSsrKQotCQkJaWYgKGNvZGUtPm9wID09IEZFVENIX05PUF9TWU1CT0wpCisJCQlpZiAoY29kZS0+b3AgPT0gRkVUQ0hfTk9QX1NZTUJPTCB8fAorCQkJICAgIGNvZGUtPm9wID09IEZFVENIX09QX0RBVEEpCiAJCQkJa2ZyZWUoY29kZS0+ZGF0YSk7CiAJfQogCWtmcmVlKHRtcCk7CkBAIC03MzYsNyArNzgxLDggQEAgdm9pZCB0cmFjZXByb2JlX2ZyZWVfcHJvYmVfYXJnKHN0cnVjdCBwcm9iZV9hcmcgKmFyZykKIAlzdHJ1Y3QgZmV0Y2hfaW5zbiAqY29kZSA9IGFyZy0+Y29kZTsKIAogCXdoaWxlIChjb2RlICYmIGNvZGUtPm9wICE9IEZFVENIX09QX0VORCkgewotCQlpZiAoY29kZS0+b3AgPT0gRkVUQ0hfTk9QX1NZTUJPTCkKKwkJaWYgKGNvZGUtPm9wID09IEZFVENIX05PUF9TWU1CT0wgfHwKKwkJICAgIGNvZGUtPm9wID09IEZFVENIX09QX0RBVEEpCiAJCQlrZnJlZShjb2RlLT5kYXRhKTsKIAkJY29kZSsrOwogCX0KQEAgLTg4Niw0NCArOTMyLDg1IEBAIGludCB0cmFjZXByb2JlX2RlZmluZV9hcmdfZmllbGRzKHN0cnVjdCB0cmFjZV9ldmVudF9jYWxsICpldmVudF9jYWxsLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCB0cmFjZV9wcm9iZV9ldmVudF9mcmVlKHN0cnVjdCB0cmFjZV9wcm9iZV9ldmVudCAqdHBlKQoreworCWtmcmVlKHRwZS0+Y2xhc3Muc3lzdGVtKTsKKwlrZnJlZSh0cGUtPmNhbGwubmFtZSk7CisJa2ZyZWUodHBlLT5jYWxsLnByaW50X2ZtdCk7CisJa2ZyZWUodHBlKTsKK30KKworaW50IHRyYWNlX3Byb2JlX2FwcGVuZChzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwLCBzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRvKQoreworCWlmICh0cmFjZV9wcm9iZV9oYXNfc2libGluZyh0cCkpCisJCXJldHVybiAtRUJVU1k7CisKKwlsaXN0X2RlbF9pbml0KCZ0cC0+bGlzdCk7CisJdHJhY2VfcHJvYmVfZXZlbnRfZnJlZSh0cC0+ZXZlbnQpOworCisJdHAtPmV2ZW50ID0gdG8tPmV2ZW50OworCWxpc3RfYWRkX3RhaWwoJnRwLT5saXN0LCB0cmFjZV9wcm9iZV9wcm9iZV9saXN0KHRvKSk7CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCB0cmFjZV9wcm9iZV91bmxpbmsoc3RydWN0IHRyYWNlX3Byb2JlICp0cCkKK3sKKwlsaXN0X2RlbF9pbml0KCZ0cC0+bGlzdCk7CisJaWYgKGxpc3RfZW1wdHkodHJhY2VfcHJvYmVfcHJvYmVfbGlzdCh0cCkpKQorCQl0cmFjZV9wcm9iZV9ldmVudF9mcmVlKHRwLT5ldmVudCk7CisJdHAtPmV2ZW50ID0gTlVMTDsKK30KIAogdm9pZCB0cmFjZV9wcm9iZV9jbGVhbnVwKHN0cnVjdCB0cmFjZV9wcm9iZSAqdHApCiB7Ci0Jc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKmNhbGwgPSB0cmFjZV9wcm9iZV9ldmVudF9jYWxsKHRwKTsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCB0cC0+bnJfYXJnczsgaSsrKQogCQl0cmFjZXByb2JlX2ZyZWVfcHJvYmVfYXJnKCZ0cC0+YXJnc1tpXSk7CiAKLQlpZiAoY2FsbC0+Y2xhc3MpCi0JCWtmcmVlKGNhbGwtPmNsYXNzLT5zeXN0ZW0pOwotCWtmcmVlKGNhbGwtPm5hbWUpOwotCWtmcmVlKGNhbGwtPnByaW50X2ZtdCk7CisJaWYgKHRwLT5ldmVudCkKKwkJdHJhY2VfcHJvYmVfdW5saW5rKHRwKTsKIH0KIAogaW50IHRyYWNlX3Byb2JlX2luaXQoc3RydWN0IHRyYWNlX3Byb2JlICp0cCwgY29uc3QgY2hhciAqZXZlbnQsCiAJCSAgICAgY29uc3QgY2hhciAqZ3JvdXApCiB7Ci0Jc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKmNhbGwgPSB0cmFjZV9wcm9iZV9ldmVudF9jYWxsKHRwKTsKKwlzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqY2FsbDsKKwlpbnQgcmV0ID0gMDsKIAogCWlmICghZXZlbnQgfHwgIWdyb3VwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWNhbGwtPmNsYXNzID0gJnRwLT5jbGFzczsKLQljYWxsLT5uYW1lID0ga3N0cmR1cChldmVudCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFjYWxsLT5uYW1lKQorCXRwLT5ldmVudCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB0cmFjZV9wcm9iZV9ldmVudCksIEdGUF9LRVJORUwpOworCWlmICghdHAtPmV2ZW50KQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXRwLT5jbGFzcy5zeXN0ZW0gPSBrc3RyZHVwKGdyb3VwLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXRwLT5jbGFzcy5zeXN0ZW0pIHsKLQkJa2ZyZWUoY2FsbC0+bmFtZSk7Ci0JCWNhbGwtPm5hbWUgPSBOVUxMOwotCQlyZXR1cm4gLUVOT01FTTsKKwlJTklUX0xJU1RfSEVBRCgmdHAtPmV2ZW50LT5maWxlcyk7CisJSU5JVF9MSVNUX0hFQUQoJnRwLT5ldmVudC0+Y2xhc3MuZmllbGRzKTsKKwlJTklUX0xJU1RfSEVBRCgmdHAtPmV2ZW50LT5wcm9iZXMpOworCUlOSVRfTElTVF9IRUFEKCZ0cC0+bGlzdCk7CisJbGlzdF9hZGQoJnRwLT5ldmVudC0+cHJvYmVzLCAmdHAtPmxpc3QpOworCisJY2FsbCA9IHRyYWNlX3Byb2JlX2V2ZW50X2NhbGwodHApOworCWNhbGwtPmNsYXNzID0gJnRwLT5ldmVudC0+Y2xhc3M7CisJY2FsbC0+bmFtZSA9IGtzdHJkdXAoZXZlbnQsIEdGUF9LRVJORUwpOworCWlmICghY2FsbC0+bmFtZSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVycm9yOwogCX0KLQlJTklUX0xJU1RfSEVBRCgmdHAtPmZpbGVzKTsKLQlJTklUX0xJU1RfSEVBRCgmdHAtPmNsYXNzLmZpZWxkcyk7CisKKwl0cC0+ZXZlbnQtPmNsYXNzLnN5c3RlbSA9IGtzdHJkdXAoZ3JvdXAsIEdGUF9LRVJORUwpOworCWlmICghdHAtPmV2ZW50LT5jbGFzcy5zeXN0ZW0pIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJvcjsKKwl9CiAKIAlyZXR1cm4gMDsKKworZXJyb3I6CisJdHJhY2VfcHJvYmVfY2xlYW51cCh0cCk7CisJcmV0dXJuIHJldDsKIH0KIAogaW50IHRyYWNlX3Byb2JlX3JlZ2lzdGVyX2V2ZW50X2NhbGwoc3RydWN0IHRyYWNlX3Byb2JlICp0cCkKQEAgLTk1Miw3ICsxMDM5LDcgQEAgaW50IHRyYWNlX3Byb2JlX2FkZF9maWxlKHN0cnVjdCB0cmFjZV9wcm9iZSAqdHAsIHN0cnVjdCB0cmFjZV9ldmVudF9maWxlICpmaWxlKQogCiAJbGluay0+ZmlsZSA9IGZpbGU7CiAJSU5JVF9MSVNUX0hFQUQoJmxpbmstPmxpc3QpOwotCWxpc3RfYWRkX3RhaWxfcmN1KCZsaW5rLT5saXN0LCAmdHAtPmZpbGVzKTsKKwlsaXN0X2FkZF90YWlsX3JjdSgmbGluay0+bGlzdCwgJnRwLT5ldmVudC0+ZmlsZXMpOwogCXRyYWNlX3Byb2JlX3NldF9mbGFnKHRwLCBUUF9GTEFHX1RSQUNFKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTk4Myw4ICsxMDcwLDQ1IEBAIGludCB0cmFjZV9wcm9iZV9yZW1vdmVfZmlsZShzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwLAogCXN5bmNocm9uaXplX3JjdSgpOwogCWtmcmVlKGxpbmspOwogCi0JaWYgKGxpc3RfZW1wdHkoJnRwLT5maWxlcykpCisJaWYgKGxpc3RfZW1wdHkoJnRwLT5ldmVudC0+ZmlsZXMpKQogCQl0cmFjZV9wcm9iZV9jbGVhcl9mbGFnKHRwLCBUUF9GTEFHX1RSQUNFKTsKIAogCXJldHVybiAwOwogfQorCisvKgorICogUmV0dXJuIHRoZSBzbWFsbGVzdCBpbmRleCBvZiBkaWZmZXJlbnQgdHlwZSBhcmd1bWVudCAoc3RhcnQgZnJvbSAxKS4KKyAqIElmIGFsbCBhcmd1bWVudCB0eXBlcyBhbmQgbmFtZSBhcmUgc2FtZSwgcmV0dXJuIDAuCisgKi8KK2ludCB0cmFjZV9wcm9iZV9jb21wYXJlX2FyZ190eXBlKHN0cnVjdCB0cmFjZV9wcm9iZSAqYSwgc3RydWN0IHRyYWNlX3Byb2JlICpiKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGEtPm5yX2FyZ3M7IGkrKykgeworCQlpZiAoKGItPm5yX2FyZ3MgPD0gaSkgfHwKKwkJICAgICgoYS0+YXJnc1tpXS50eXBlICE9IGItPmFyZ3NbaV0udHlwZSkgfHwKKwkJICAgICAoYS0+YXJnc1tpXS5jb3VudCAhPSBiLT5hcmdzW2ldLmNvdW50KSB8fAorCQkgICAgIHN0cmNtcChhLT5hcmdzW2ldLm5hbWUsIGItPmFyZ3NbaV0ubmFtZSkpKQorCQkJcmV0dXJuIGkgKyAxOworCX0KKworCXJldHVybiAwOworfQorCitib29sIHRyYWNlX3Byb2JlX21hdGNoX2NvbW1hbmRfYXJncyhzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwLAorCQkJCSAgICBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCit7CisJY2hhciBidWZbTUFYX0FSR1NUUl9MRU4gKyAxXTsKKwlpbnQgaTsKKworCWlmICh0cC0+bnJfYXJncyA8IGFyZ2MpCisJCXJldHVybiBmYWxzZTsKKworCWZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspIHsKKwkJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVzPSVzIiwKKwkJCSB0cC0+YXJnc1tpXS5uYW1lLCB0cC0+YXJnc1tpXS5jb21tKTsKKwkJaWYgKHN0cmNtcChidWYsIGFyZ3ZbaV0pKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKwlyZXR1cm4gdHJ1ZTsKK30KZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9wcm9iZS5oIGIva2VybmVsL3RyYWNlL3RyYWNlX3Byb2JlLmgKaW5kZXggZDE3MTQ4Mi4uNGVlNzAzNyAxMDA2NDQKLS0tIGEva2VybmVsL3RyYWNlL3RyYWNlX3Byb2JlLmgKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3Byb2JlLmgKQEAgLTg5LDYgKzg5LDcgQEAgZW51bSBmZXRjaF9vcCB7CiAJRkVUQ0hfT1BfQ09NTSwJCS8qIEN1cnJlbnQgY29tbSAqLwogCUZFVENIX09QX0FSRywJCS8qIEZ1bmN0aW9uIGFyZ3VtZW50IDogLnBhcmFtICovCiAJRkVUQ0hfT1BfRk9GRlMsCQkvKiBGaWxlIG9mZnNldDogLmltbWVkaWF0ZSAqLworCUZFVENIX09QX0RBVEEsCQkvKiBBbGxvY2F0ZWQgZGF0YTogLmRhdGEgKi8KIAkvLyBTdGFnZSAyIChkZXJlZmVyZW5jZSkgb3AKIAlGRVRDSF9PUF9ERVJFRiwJCS8qIERlcmVmZXJlbmNlOiAub2Zmc2V0ICovCiAJRkVUQ0hfT1BfVURFUkVGLAkvKiBVc2VyLXNwYWNlIERlcmVmZXJlbmNlOiAub2Zmc2V0ICovCkBAIC0yMjIsMTEgKzIyMywxOCBAQCBzdHJ1Y3QgcHJvYmVfYXJnIHsKIAljb25zdCBzdHJ1Y3QgZmV0Y2hfdHlwZQkqdHlwZTsJLyogVHlwZSBvZiB0aGlzIGFyZ3VtZW50ICovCiB9OwogCi1zdHJ1Y3QgdHJhY2VfcHJvYmUgeworLyogRXZlbnQgY2FsbCBhbmQgY2xhc3MgaG9sZGVyICovCitzdHJ1Y3QgdHJhY2VfcHJvYmVfZXZlbnQgewogCXVuc2lnbmVkIGludAkJCWZsYWdzOwkvKiBGb3IgVFBfRkxBR18qICovCiAJc3RydWN0IHRyYWNlX2V2ZW50X2NsYXNzCWNsYXNzOwogCXN0cnVjdCB0cmFjZV9ldmVudF9jYWxsCQljYWxsOwogCXN0cnVjdCBsaXN0X2hlYWQgCQlmaWxlczsKKwlzdHJ1Y3QgbGlzdF9oZWFkCQlwcm9iZXM7Cit9OworCitzdHJ1Y3QgdHJhY2VfcHJvYmUgeworCXN0cnVjdCBsaXN0X2hlYWQJCWxpc3Q7CisJc3RydWN0IHRyYWNlX3Byb2JlX2V2ZW50CSpldmVudDsKIAlzc2l6ZV90CQkJCXNpemU7CS8qIHRyYWNlIGVudHJ5IHNpemUgKi8KIAl1bnNpZ25lZCBpbnQJCQlucl9hcmdzOwogCXN0cnVjdCBwcm9iZV9hcmcJCWFyZ3NbXTsKQEAgLTI0MCwxOSArMjQ4LDE5IEBAIHN0cnVjdCBldmVudF9maWxlX2xpbmsgewogc3RhdGljIGlubGluZSBib29sIHRyYWNlX3Byb2JlX3Rlc3RfZmxhZyhzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwLAogCQkJCQkgdW5zaWduZWQgaW50IGZsYWcpCiB7Ci0JcmV0dXJuICEhKHRwLT5mbGFncyAmIGZsYWcpOworCXJldHVybiAhISh0cC0+ZXZlbnQtPmZsYWdzICYgZmxhZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB0cmFjZV9wcm9iZV9zZXRfZmxhZyhzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwLAogCQkJCQl1bnNpZ25lZCBpbnQgZmxhZykKIHsKLQl0cC0+ZmxhZ3MgfD0gZmxhZzsKKwl0cC0+ZXZlbnQtPmZsYWdzIHw9IGZsYWc7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB0cmFjZV9wcm9iZV9jbGVhcl9mbGFnKHN0cnVjdCB0cmFjZV9wcm9iZSAqdHAsCiAJCQkJCSAgdW5zaWduZWQgaW50IGZsYWcpCiB7Ci0JdHAtPmZsYWdzICY9IH5mbGFnOworCXRwLT5ldmVudC0+ZmxhZ3MgJj0gfmZsYWc7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCB0cmFjZV9wcm9iZV9pc19lbmFibGVkKHN0cnVjdCB0cmFjZV9wcm9iZSAqdHApCkBAIC0yNjIsNDUgKzI3MCw3NiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2VfcHJvYmVfaXNfZW5hYmxlZChzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwKQogCiBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKnRyYWNlX3Byb2JlX25hbWUoc3RydWN0IHRyYWNlX3Byb2JlICp0cCkKIHsKLQlyZXR1cm4gdHJhY2VfZXZlbnRfbmFtZSgmdHAtPmNhbGwpOworCXJldHVybiB0cmFjZV9ldmVudF9uYW1lKCZ0cC0+ZXZlbnQtPmNhbGwpOwogfQogCiBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKnRyYWNlX3Byb2JlX2dyb3VwX25hbWUoc3RydWN0IHRyYWNlX3Byb2JlICp0cCkKIHsKLQlyZXR1cm4gdHAtPmNhbGwuY2xhc3MtPnN5c3RlbTsKKwlyZXR1cm4gdHAtPmV2ZW50LT5jYWxsLmNsYXNzLT5zeXN0ZW07CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKgogCXRyYWNlX3Byb2JlX2V2ZW50X2NhbGwoc3RydWN0IHRyYWNlX3Byb2JlICp0cCkKIHsKLQlyZXR1cm4gJnRwLT5jYWxsOworCXJldHVybiAmdHAtPmV2ZW50LT5jYWxsOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCB0cmFjZV9wcm9iZV9ldmVudCAqCit0cmFjZV9wcm9iZV9ldmVudF9mcm9tX2NhbGwoc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKmV2ZW50X2NhbGwpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihldmVudF9jYWxsLCBzdHJ1Y3QgdHJhY2VfcHJvYmVfZXZlbnQsIGNhbGwpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCB0cmFjZV9wcm9iZSAqCit0cmFjZV9wcm9iZV9wcmltYXJ5X2Zyb21fY2FsbChzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqY2FsbCkKK3sKKwlzdHJ1Y3QgdHJhY2VfcHJvYmVfZXZlbnQgKnRwZSA9IHRyYWNlX3Byb2JlX2V2ZW50X2Zyb21fY2FsbChjYWxsKTsKKworCXJldHVybiBsaXN0X2ZpcnN0X2VudHJ5KCZ0cGUtPnByb2Jlcywgc3RydWN0IHRyYWNlX3Byb2JlLCBsaXN0KTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgbGlzdF9oZWFkICp0cmFjZV9wcm9iZV9wcm9iZV9saXN0KHN0cnVjdCB0cmFjZV9wcm9iZSAqdHApCit7CisJcmV0dXJuICZ0cC0+ZXZlbnQtPnByb2JlczsKK30KKworc3RhdGljIGlubGluZSBib29sIHRyYWNlX3Byb2JlX2hhc19zaWJsaW5nKHN0cnVjdCB0cmFjZV9wcm9iZSAqdHApCit7CisJc3RydWN0IGxpc3RfaGVhZCAqbGlzdCA9IHRyYWNlX3Byb2JlX3Byb2JlX2xpc3QodHApOworCisJcmV0dXJuICFsaXN0X2VtcHR5KGxpc3QpICYmICFsaXN0X2lzX3Npbmd1bGFyKGxpc3QpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCB0cmFjZV9wcm9iZV91bnJlZ2lzdGVyX2V2ZW50X2NhbGwoc3RydWN0IHRyYWNlX3Byb2JlICp0cCkKIHsKIAkvKiB0cC0+ZXZlbnQgaXMgdW5yZWdpc3RlcmVkIGluIHRyYWNlX3JlbW92ZV9ldmVudF9jYWxsKCkgKi8KLQlyZXR1cm4gdHJhY2VfcmVtb3ZlX2V2ZW50X2NhbGwoJnRwLT5jYWxsKTsKKwlyZXR1cm4gdHJhY2VfcmVtb3ZlX2V2ZW50X2NhbGwoJnRwLT5ldmVudC0+Y2FsbCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCB0cmFjZV9wcm9iZV9oYXNfc2luZ2xlX2ZpbGUoc3RydWN0IHRyYWNlX3Byb2JlICp0cCkKIHsKLQlyZXR1cm4gISFsaXN0X2lzX3Npbmd1bGFyKCZ0cC0+ZmlsZXMpOworCXJldHVybiAhIWxpc3RfaXNfc2luZ3VsYXIoJnRwLT5ldmVudC0+ZmlsZXMpOwogfQogCiBpbnQgdHJhY2VfcHJvYmVfaW5pdChzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwLCBjb25zdCBjaGFyICpldmVudCwKIAkJICAgICBjb25zdCBjaGFyICpncm91cCk7CiB2b2lkIHRyYWNlX3Byb2JlX2NsZWFudXAoc3RydWN0IHRyYWNlX3Byb2JlICp0cCk7CitpbnQgdHJhY2VfcHJvYmVfYXBwZW5kKHN0cnVjdCB0cmFjZV9wcm9iZSAqdHAsIHN0cnVjdCB0cmFjZV9wcm9iZSAqdG8pOwordm9pZCB0cmFjZV9wcm9iZV91bmxpbmsoc3RydWN0IHRyYWNlX3Byb2JlICp0cCk7CiBpbnQgdHJhY2VfcHJvYmVfcmVnaXN0ZXJfZXZlbnRfY2FsbChzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwKTsKIGludCB0cmFjZV9wcm9iZV9hZGRfZmlsZShzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwLCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSk7CiBpbnQgdHJhY2VfcHJvYmVfcmVtb3ZlX2ZpbGUoc3RydWN0IHRyYWNlX3Byb2JlICp0cCwKIAkJCSAgICBzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSk7CiBzdHJ1Y3QgZXZlbnRfZmlsZV9saW5rICp0cmFjZV9wcm9iZV9nZXRfZmlsZV9saW5rKHN0cnVjdCB0cmFjZV9wcm9iZSAqdHAsCiAJCQkJCQlzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSk7CitpbnQgdHJhY2VfcHJvYmVfY29tcGFyZV9hcmdfdHlwZShzdHJ1Y3QgdHJhY2VfcHJvYmUgKmEsIHN0cnVjdCB0cmFjZV9wcm9iZSAqYik7Citib29sIHRyYWNlX3Byb2JlX21hdGNoX2NvbW1hbmRfYXJncyhzdHJ1Y3QgdHJhY2VfcHJvYmUgKnRwLAorCQkJCSAgICBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpOwogCiAjZGVmaW5lIHRyYWNlX3Byb2JlX2Zvcl9lYWNoX2xpbmsocG9zLCB0cCkJXAotCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCAmKHRwKS0+ZmlsZXMsIGxpc3QpCisJbGlzdF9mb3JfZWFjaF9lbnRyeShwb3MsICYodHApLT5ldmVudC0+ZmlsZXMsIGxpc3QpCiAjZGVmaW5lIHRyYWNlX3Byb2JlX2Zvcl9lYWNoX2xpbmtfcmN1KHBvcywgdHApCVwKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShwb3MsICYodHApLT5maWxlcywgbGlzdCkKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShwb3MsICYodHApLT5ldmVudC0+ZmlsZXMsIGxpc3QpCiAKIC8qIENoZWNrIHRoZSBuYW1lIGlzIGdvb2QgZm9yIGV2ZW50L2dyb3VwL2ZpZWxkcyAqLwogc3RhdGljIGlubGluZSBib29sIGlzX2dvb2RfbmFtZShjb25zdCBjaGFyICpuYW1lKQpAQCAtMzcwLDYgKzQwOSw4IEBAIGV4dGVybiBpbnQgdHJhY2Vwcm9iZV9kZWZpbmVfYXJnX2ZpZWxkcyhzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqZXZlbnRfY2FsbCwKIAlDKEJBRF9WQVIsCQkiSW52YWxpZCAkLXZhbGlhYmxlIHNwZWNpZmllZCIpLAlcCiAJQyhCQURfUkVHX05BTUUsCQkiSW52YWxpZCByZWdpc3RlciBuYW1lIiksCQlcCiAJQyhCQURfTUVNX0FERFIsCQkiSW52YWxpZCBtZW1vcnkgYWRkcmVzcyIpLAkJXAorCUMoQkFEX0lNTSwJCSJJbnZhbGlkIGltbWVkaWF0ZSB2YWx1ZSIpLAkJXAorCUMoSU1NU1RSX05PX0NMT1NFLAkiU3RyaW5nIGlzIG5vdCBjbG9zZWQgd2l0aCAnXCInIiksCVwKIAlDKEZJTEVfT05fS1BST0JFLAkiRmlsZSBvZmZzZXQgaXMgbm90IGF2YWlsYWJsZSB3aXRoIGtwcm9iZSIpLCBcCiAJQyhCQURfRklMRV9PRkZTLAkiSW52YWxpZCBmaWxlIG9mZnNldCB2YWx1ZSIpLAkJXAogCUMoU1lNX09OX1VQUk9CRSwJIlN5bWJvbCBpcyBub3QgYXZhaWxhYmxlIHdpdGggdXByb2JlIiksCVwKQEAgLTM5Myw3ICs0MzQsMTAgQEAgZXh0ZXJuIGludCB0cmFjZXByb2JlX2RlZmluZV9hcmdfZmllbGRzKHN0cnVjdCB0cmFjZV9ldmVudF9jYWxsICpldmVudF9jYWxsLAogCUMoQVJHX1RPT19MT05HLAkJIkFyZ3VtZW50IGV4cHJlc3Npb24gaXMgdG9vIGxvbmciKSwJXAogCUMoTk9fQVJHX0JPRFksCQkiTm8gYXJndW1lbnQgZXhwcmVzc2lvbiIpLAkJXAogCUMoQkFEX0lOU05fQk5EUlksCSJQcm9iZSBwb2ludCBpcyBub3QgYW4gaW5zdHJ1Y3Rpb24gYm91bmRhcnkiKSxcCi0JQyhGQUlMX1JFR19QUk9CRSwJIkZhaWxlZCB0byByZWdpc3RlciBwcm9iZSBldmVudCIpLAorCUMoRkFJTF9SRUdfUFJPQkUsCSJGYWlsZWQgdG8gcmVnaXN0ZXIgcHJvYmUgZXZlbnQiKSxcCisJQyhESUZGX1BST0JFX1RZUEUsCSJQcm9iZSB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIGV4aXN0aW5nIHByb2JlIiksXAorCUMoRElGRl9BUkdfVFlQRSwJIkFyZ3VtZW50IHR5cGUgb3IgbmFtZSBpcyBkaWZmZXJlbnQgZnJvbSBleGlzdGluZyBwcm9iZSIpLFwKKwlDKFNBTUVfUFJPQkUsCQkiVGhlcmUgaXMgYWxyZWFkeSB0aGUgZXhhY3Qgc2FtZSBwcm9iZSBldmVudCIpLAogCiAjdW5kZWYgQwogI2RlZmluZSBDKGEsIGIpCQlUUF9FUlJfIyNhCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3RhY2suYyBiL2tlcm5lbC90cmFjZS90cmFjZV9zdGFjay5jCmluZGV4IDVkMTZmNzMuLmVjOWEzNGEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFjZV9zdGFjay5jCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9zdGFjay5jCkBAIC01Myw2ICs1MywxMDQgQEAgc3RhdGljIHZvaWQgcHJpbnRfbWF4X3N0YWNrKHZvaWQpCiAJfQogfQogCisvKgorICogVGhlIHN0YWNrIHRyYWNlciBsb29rcyBmb3IgYSBtYXhpbXVtIHN0YWNrIGF0IGVhY2ggY2FsbCBmcm9tIGEgZnVuY3Rpb24uIEl0CisgKiByZWdpc3RlcnMgYSBjYWxsYmFjayBmcm9tIGZ0cmFjZSwgYW5kIGluIHRoYXQgY2FsbGJhY2sgaXQgZXhhbWluZXMgdGhlIHN0YWNrCisgKiBzaXplLiBJdCBkZXRlcm1pbmVzIHRoZSBzdGFjayBzaXplIGZyb20gdGhlIHZhcmlhYmxlIHBhc3NlZCBpbiwgd2hpY2ggaXMgdGhlCisgKiBhZGRyZXNzIG9mIGEgbG9jYWwgdmFyaWFibGUgaW4gdGhlIHN0YWNrX3RyYWNlX2NhbGwoKSBjYWxsYmFjayBmdW5jdGlvbi4KKyAqIFRoZSBzdGFjayBzaXplIGlzIGNhbGN1bGF0ZWQgYnkgdGhlIGFkZHJlc3Mgb2YgdGhlIGxvY2FsIHZhcmlhYmxlIHRvIHRoZSB0b3AKKyAqIG9mIHRoZSBjdXJyZW50IHN0YWNrLiBJZiB0aGF0IHNpemUgaXMgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50bHkgc2F2ZWQgbWF4CisgKiBzdGFjayBzaXplLCBub3RoaW5nIG1vcmUgaXMgZG9uZS4KKyAqCisgKiBJZiB0aGUgc2l6ZSBvZiB0aGUgc3RhY2sgaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIHJlY29yZGVkIHNpemUsIHRoZW4gdGhlCisgKiBmb2xsb3dpbmcgYWxnb3JpdGhtIHRha2VzIHBsYWNlLgorICoKKyAqIEZvciBhcmNoaXRlY3R1cmVzIChsaWtlIHg4NikgdGhhdCBzdG9yZSB0aGUgZnVuY3Rpb24ncyByZXR1cm4gYWRkcmVzcyBiZWZvcmUKKyAqIHNhdmluZyB0aGUgZnVuY3Rpb24ncyBsb2NhbCB2YXJpYWJsZXMsIHRoZSBzdGFjayB3aWxsIGxvb2sgc29tZXRoaW5nIGxpa2UKKyAqIHRoaXM6CisgKgorICogICBbIHRvcCBvZiBzdGFjayBdCisgKiAgICAwOiBzeXMgY2FsbCBlbnRyeSBmcmFtZQorICogICAxMDogcmV0dXJuIGFkZHIgdG8gZW50cnkgY29kZQorICogICAxMTogc3RhcnQgb2Ygc3lzX2ZvbyBmcmFtZQorICogICAyMDogcmV0dXJuIGFkZHIgdG8gc3lzX2ZvbworICogICAyMTogc3RhcnQgb2Yga2VybmVsX2Z1bmNfYmFyIGZyYW1lCisgKiAgIDMwOiByZXR1cm4gYWRkciB0byBrZXJuZWxfZnVuY19iYXIKKyAqICAgMzE6IFsgZG8gdHJhY2Ugc3RhY2sgaGVyZSBdCisgKgorICogVGhlIHNhdmVfc3RhY2tfdHJhY2UoKSBpcyBjYWxsZWQgcmV0dXJuaW5nIGFsbCB0aGUgZnVuY3Rpb25zIGl0IGZpbmRzIGluIHRoZQorICogY3VycmVudCBzdGFjay4gV2hpY2ggd291bGQgYmUgKGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgc3RhY2sgdG8gdGhlIHRvcCk6CisgKgorICogICByZXR1cm4gYWRkciB0byBrZXJuZWxfZnVuY19iYXIKKyAqICAgcmV0dXJuIGFkZHIgdG8gc3lzX2ZvbworICogICByZXR1cm4gYWRkciB0byBlbnRyeSBjb2RlCisgKgorICogTm93IHRvIGZpZ3VyZSBvdXQgaG93IG11Y2ggZWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMnIGxvY2FsIHZhcmlhYmxlIHNpemUgaXMsCisgKiBhIHNlYXJjaCBvZiB0aGUgc3RhY2sgaXMgbWFkZSB0byBmaW5kIHRoZXNlIHZhbHVlcy4gV2hlbiBhIG1hdGNoIGlzIG1hZGUsIGl0CisgKiBpcyBhZGRlZCB0byB0aGUgc3RhY2tfZHVtcF90cmFjZVtdIGFycmF5LiBUaGUgb2Zmc2V0IGludG8gdGhlIHN0YWNrIGlzIHNhdmVkCisgKiBpbiB0aGUgc3RhY2tfdHJhY2VfaW5kZXhbXSBhcnJheS4gVGhlIGFib3ZlIGV4YW1wbGUgd291bGQgc2hvdzoKKyAqCisgKiAgICAgICAgc3RhY2tfZHVtcF90cmFjZVtdICAgICAgICB8ICAgc3RhY2tfdHJhY2VfaW5kZXhbXQorICogICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICByZXR1cm4gYWRkciB0byBrZXJuZWxfZnVuY19iYXIgIHwgICAgICAgICAgMzAKKyAqICByZXR1cm4gYWRkciB0byBzeXNfZm9vICAgICAgICAgIHwgICAgICAgICAgMjAKKyAqICByZXR1cm4gYWRkciB0byBlbnRyeSAgICAgICAgICAgIHwgICAgICAgICAgMTAKKyAqCisgKiBUaGUgcHJpbnRfbWF4X3N0YWNrKCkgZnVuY3Rpb24gYWJvdmUsIHVzZXMgdGhlc2UgdmFsdWVzIHRvIHByaW50IHRoZSBzaXplIG9mCisgKiBlYWNoIGZ1bmN0aW9uJ3MgcG9ydGlvbiBvZiB0aGUgc3RhY2suCisgKgorICogIGZvciAoaSA9IDA7IGkgPCBucl9lbnRyaWVzOyBpKyspIHsKKyAqICAgICBzaXplID0gaSA9PSBucl9lbnRyaWVzIC0gMSA/IHN0YWNrX3RyYWNlX2luZGV4W2ldIDoKKyAqICAgICAgICAgICAgICAgICAgICBzdGFja190cmFjZV9pbmRleFtpXSAtIHN0YWNrX3RyYWNlX2luZGV4W2krMV0KKyAqICAgICBwcmludCAiJWQgJWQgJWQgJXNcbiIsIGksIHN0YWNrX3RyYWNlX2luZGV4W2ldLCBzaXplLCBzdGFja19kdW1wX3RyYWNlW2ldKTsKKyAqICB9CisgKgorICogVGhlIGFib3ZlIHNob3dzCisgKgorICogICAgIGRlcHRoIHNpemUgIGxvY2F0aW9uCisgKiAgICAgLS0tLS0gLS0tLSAgLS0tLS0tLS0KKyAqICAwICAgIDMwICAgMTAgICBrZXJuZWxfZnVuY19iYXIKKyAqICAxICAgIDIwICAgMTAgICBzeXNfZm9vCisgKiAgMiAgICAxMCAgIDEwICAgZW50cnkgY29kZQorICoKKyAqIE5vdyBmb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IG1pZ2h0IHNhdmUgdGhlIHJldHVybiBhZGRyZXNzIGFmdGVyIHRoZSBmdW5jdGlvbnMKKyAqIGxvY2FsIHZhcmlhYmxlcyAoc2F2aW5nIHRoZSBsaW5rIHJlZ2lzdGVyIGJlZm9yZSBjYWxsaW5nIG5lc3RlZCBmdW5jdGlvbnMpLAorICogdGhpcyB3aWxsIGNhdXNlIHRoZSBzdGFjayB0byBsb29rIGEgbGl0dGxlIGRpZmZlcmVudDoKKyAqCisgKiBbIHRvcCBvZiBzdGFjayBdCisgKiAgMDogc3lzIGNhbGwgZW50cnkgZnJhbWUKKyAqIDEwOiBzdGFydCBvZiBzeXNfZm9vX2ZyYW1lCisgKiAxOTogcmV0dXJuIGFkZHIgdG8gZW50cnkgY29kZSA8PCBsciBzYXZlZCBiZWZvcmUgY2FsbGluZyBrZXJuZWxfZnVuY19iYXIKKyAqIDIwOiBzdGFydCBvZiBrZXJuZWxfZnVuY19iYXIgZnJhbWUKKyAqIDI5OiByZXR1cm4gYWRkciB0byBzeXNfZm9vX2ZyYW1lIDw8IGxyIHNhdmVkIGJlZm9yZSBjYWxsaW5nIG5leHQgZnVuY3Rpb24KKyAqIDMwOiBbIGRvIHRyYWNlIHN0YWNrIGhlcmUgXQorICoKKyAqIEFsdGhvdWdoIHRoZSBmdW5jdGlvbnMgcmV0dXJuZWQgYnkgc2F2ZV9zdGFja190cmFjZSgpIG1heSBiZSB0aGUgc2FtZSwgdGhlCisgKiBwbGFjZW1lbnQgaW4gdGhlIHN0YWNrIHdpbGwgYmUgZGlmZmVyZW50LiBVc2luZyB0aGUgc2FtZSBhbGdvcml0aG0gYXMgYWJvdmUKKyAqIHdvdWxkIHlpZWxkOgorICoKKyAqICAgICAgICBzdGFja19kdW1wX3RyYWNlW10gICAgICAgIHwgICBzdGFja190cmFjZV9pbmRleFtdCisgKiAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICArICAgLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIHJldHVybiBhZGRyIHRvIGtlcm5lbF9mdW5jX2JhciAgfCAgICAgICAgICAzMAorICogIHJldHVybiBhZGRyIHRvIHN5c19mb28gICAgICAgICAgfCAgICAgICAgICAyOQorICogIHJldHVybiBhZGRyIHRvIGVudHJ5ICAgICAgICAgICAgfCAgICAgICAgICAxOQorICoKKyAqIFdoZXJlIHRoZSBtYXBwaW5nIGlzIG9mZiBieSBvbmU6CisgKgorICogICBrZXJuZWxfZnVuY19iYXIgc3RhY2sgZnJhbWUgc2l6ZSBpcyAyOSAtIDE5IG5vdCAzMCAtIDI5IQorICoKKyAqIFRvIGZpeCB0aGlzLCBpZiB0aGUgYXJjaGl0ZWN0dXJlIHNldHMgQVJDSF9SRVRfQUREUl9BRlRFUl9MT0NBTF9WQVJTIHRoZQorICogdmFsdWVzIGluIHN0YWNrX3RyYWNlX2luZGV4W10gYXJlIHNoaWZ0ZWQgYnkgb25lIHRvIGFuZCB0aGUgbnVtYmVyIG9mCisgKiBzdGFjayB0cmFjZSBlbnRyaWVzIGlzIGRlY3JlbWVudGVkIGJ5IG9uZS4KKyAqCisgKiAgICAgICAgc3RhY2tfZHVtcF90cmFjZVtdICAgICAgICB8ICAgc3RhY2tfdHJhY2VfaW5kZXhbXQorICogICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICByZXR1cm4gYWRkciB0byBrZXJuZWxfZnVuY19iYXIgIHwgICAgICAgICAgMjkKKyAqICByZXR1cm4gYWRkciB0byBzeXNfZm9vICAgICAgICAgIHwgICAgICAgICAgMTkKKyAqCisgKiBBbHRob3VnaCB0aGUgZW50cnkgZnVuY3Rpb24gaXMgbm90IGRpc3BsYXllZCwgdGhlIGZpcnN0IGZ1bmN0aW9uIChzeXNfZm9vKQorICogd2lsbCBzdGlsbCBpbmNsdWRlIHRoZSBzdGFjayBzaXplIG9mIGl0LgorICovCiBzdGF0aWMgdm9pZCBjaGVja19zdGFjayh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nICpzdGFjaykKIHsKIAl1bnNpZ25lZCBsb25nIHRoaXNfc2l6ZSwgZmxhZ3M7IHVuc2lnbmVkIGxvbmcgKnAsICp0b3AsICpzdGFydDsKQEAgLTE1OCw2ICsyNTYsMjAgQEAgc3RhdGljIHZvaWQgY2hlY2tfc3RhY2sodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyAqc3RhY2spCiAJCQlpKys7CiAJfQogCisjaWZkZWYgQVJDSF9GVFJBQ0VfU0hJRlRfU1RBQ0tfVFJBQ0VSCisJLyoKKwkgKiBTb21lIGFyY2hzIHdpbGwgc3RvcmUgdGhlIGxpbmsgcmVnaXN0ZXIgYmVmb3JlIGNhbGxpbmcKKwkgKiBuZXN0ZWQgZnVuY3Rpb25zLiBUaGlzIG1lYW5zIHRoZSBzYXZlZCByZXR1cm4gYWRkcmVzcworCSAqIGNvbWVzIGFmdGVyIHRoZSBsb2NhbCBzdG9yYWdlLCBhbmQgd2UgbmVlZCB0byBzaGlmdAorCSAqIGZvciB0aGF0LgorCSAqLworCWlmICh4ID4gMSkgeworCQltZW1tb3ZlKCZzdGFja190cmFjZV9pbmRleFswXSwgJnN0YWNrX3RyYWNlX2luZGV4WzFdLAorCQkJc2l6ZW9mKHN0YWNrX3RyYWNlX2luZGV4WzBdKSAqICh4IC0gMSkpOworCQl4LS07CisJfQorI2VuZGlmCisKIAlzdGFja190cmFjZV9ucl9lbnRyaWVzID0geDsKIAogCWlmICh0YXNrX3N0YWNrX2VuZF9jb3JydXB0ZWQoY3VycmVudCkpIHsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV91cHJvYmUuYyBiL2tlcm5lbC90cmFjZS90cmFjZV91cHJvYmUuYwppbmRleCAxY2VlZGI5Li5kZDg4NDM0IDEwMDY0NAotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2VfdXByb2JlLmMKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3Vwcm9iZS5jCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBpbnQgdHJhY2VfdXByb2JlX3Nob3coc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHluX2V2ZW50ICpldik7CiBzdGF0aWMgaW50IHRyYWNlX3Vwcm9iZV9yZWxlYXNlKHN0cnVjdCBkeW5fZXZlbnQgKmV2KTsKIHN0YXRpYyBib29sIHRyYWNlX3Vwcm9iZV9pc19idXN5KHN0cnVjdCBkeW5fZXZlbnQgKmV2KTsKIHN0YXRpYyBib29sIHRyYWNlX3Vwcm9iZV9tYXRjaChjb25zdCBjaGFyICpzeXN0ZW0sIGNvbnN0IGNoYXIgKmV2ZW50LAotCQkJICAgICAgIHN0cnVjdCBkeW5fZXZlbnQgKmV2KTsKKwkJCWludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGR5bl9ldmVudCAqZXYpOwogCiBzdGF0aWMgc3RydWN0IGR5bl9ldmVudF9vcGVyYXRpb25zIHRyYWNlX3Vwcm9iZV9vcHMgPSB7CiAJLmNyZWF0ZSA9IHRyYWNlX3Vwcm9iZV9jcmVhdGUsCkBAIC0yNDgsNiArMjQ4LDkgQEAgcHJvY2Vzc19mZXRjaF9pbnNuKHN0cnVjdCBmZXRjaF9pbnNuICpjb2RlLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgdm9pZCAqZGVzdCwKIAljYXNlIEZFVENIX09QX0NPTU06CiAJCXZhbCA9IEZFVENIX1RPS0VOX0NPTU07CiAJCWJyZWFrOworCWNhc2UgRkVUQ0hfT1BfREFUQToKKwkJdmFsID0gKHVuc2lnbmVkIGxvbmcpY29kZS0+ZGF0YTsKKwkJYnJlYWs7CiAJY2FzZSBGRVRDSF9PUF9GT0ZGUzoKIAkJdmFsID0gdHJhbnNsYXRlX3VzZXJfdmFkZHIoY29kZS0+aW1tZWRpYXRlKTsKIAkJYnJlYWs7CkBAIC0yODQsMTMgKzI4Nyw1NCBAQCBzdGF0aWMgYm9vbCB0cmFjZV91cHJvYmVfaXNfYnVzeShzdHJ1Y3QgZHluX2V2ZW50ICpldikKIAlyZXR1cm4gdHJhY2VfcHJvYmVfaXNfZW5hYmxlZCgmdHUtPnRwKTsKIH0KIAorc3RhdGljIGJvb2wgdHJhY2VfdXByb2JlX21hdGNoX2NvbW1hbmRfaGVhZChzdHJ1Y3QgdHJhY2VfdXByb2JlICp0dSwKKwkJCQkJICAgIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKK3sKKwljaGFyIGJ1ZltNQVhfQVJHU1RSX0xFTiArIDFdOworCWludCBsZW47CisKKwlpZiAoIWFyZ2MpCisJCXJldHVybiB0cnVlOworCisJbGVuID0gc3RybGVuKHR1LT5maWxlbmFtZSk7CisJaWYgKHN0cm5jbXAodHUtPmZpbGVuYW1lLCBhcmd2WzBdLCBsZW4pIHx8IGFyZ3ZbMF1bbGVuXSAhPSAnOicpCisJCXJldHVybiBmYWxzZTsKKworCWlmICh0dS0+cmVmX2N0cl9vZmZzZXQgPT0gMCkKKwkJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIjB4JTAqbHgiLAorCQkJCShpbnQpKHNpemVvZih2b2lkICopICogMiksIHR1LT5vZmZzZXQpOworCWVsc2UKKwkJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIjB4JTAqbHgoMHglbHgpIiwKKwkJCQkoaW50KShzaXplb2Yodm9pZCAqKSAqIDIpLCB0dS0+b2Zmc2V0LAorCQkJCXR1LT5yZWZfY3RyX29mZnNldCk7CisJaWYgKHN0cmNtcChidWYsICZhcmd2WzBdW2xlbiArIDFdKSkKKwkJcmV0dXJuIGZhbHNlOworCisJYXJnYy0tOyBhcmd2Kys7CisKKwlyZXR1cm4gdHJhY2VfcHJvYmVfbWF0Y2hfY29tbWFuZF9hcmdzKCZ0dS0+dHAsIGFyZ2MsIGFyZ3YpOworfQorCiBzdGF0aWMgYm9vbCB0cmFjZV91cHJvYmVfbWF0Y2goY29uc3QgY2hhciAqc3lzdGVtLCBjb25zdCBjaGFyICpldmVudCwKLQkJCSAgICAgICBzdHJ1Y3QgZHluX2V2ZW50ICpldikKKwkJCWludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGR5bl9ldmVudCAqZXYpCiB7CiAJc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHUgPSB0b190cmFjZV91cHJvYmUoZXYpOwogCiAJcmV0dXJuIHN0cmNtcCh0cmFjZV9wcm9iZV9uYW1lKCZ0dS0+dHApLCBldmVudCkgPT0gMCAmJgotCSAgICAoIXN5c3RlbSB8fCBzdHJjbXAodHJhY2VfcHJvYmVfZ3JvdXBfbmFtZSgmdHUtPnRwKSwgc3lzdGVtKSA9PSAwKTsKKwkgICAoIXN5c3RlbSB8fCBzdHJjbXAodHJhY2VfcHJvYmVfZ3JvdXBfbmFtZSgmdHUtPnRwKSwgc3lzdGVtKSA9PSAwKSAmJgorCSAgIHRyYWNlX3Vwcm9iZV9tYXRjaF9jb21tYW5kX2hlYWQodHUsIGFyZ2MsIGFyZ3YpOworfQorCitzdGF0aWMgbm9rcHJvYmVfaW5saW5lIHN0cnVjdCB0cmFjZV91cHJvYmUgKgordHJhY2VfdXByb2JlX3ByaW1hcnlfZnJvbV9jYWxsKHN0cnVjdCB0cmFjZV9ldmVudF9jYWxsICpjYWxsKQoreworCXN0cnVjdCB0cmFjZV9wcm9iZSAqdHA7CisKKwl0cCA9IHRyYWNlX3Byb2JlX3ByaW1hcnlfZnJvbV9jYWxsKGNhbGwpOworCWlmIChXQVJOX09OX09OQ0UoIXRwKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXR1cm4gY29udGFpbmVyX29mKHRwLCBzdHJ1Y3QgdHJhY2VfdXByb2JlLCB0cCk7CiB9CiAKIC8qCkBAIC0zNTIsMTUgKzM5Niw3NiBAQCBzdGF0aWMgaW50IHVucmVnaXN0ZXJfdHJhY2VfdXByb2JlKHN0cnVjdCB0cmFjZV91cHJvYmUgKnR1KQogewogCWludCByZXQ7CiAKKwlpZiAodHJhY2VfcHJvYmVfaGFzX3NpYmxpbmcoJnR1LT50cCkpCisJCWdvdG8gdW5yZWc7CisKIAlyZXQgPSB1bnJlZ2lzdGVyX3Vwcm9iZV9ldmVudCh0dSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAordW5yZWc6CiAJZHluX2V2ZW50X3JlbW92ZSgmdHUtPmRldmVudCk7CisJdHJhY2VfcHJvYmVfdW5saW5rKCZ0dS0+dHApOwogCWZyZWVfdHJhY2VfdXByb2JlKHR1KTsKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGJvb2wgdHJhY2VfdXByb2JlX2hhc19zYW1lX3Vwcm9iZShzdHJ1Y3QgdHJhY2VfdXByb2JlICpvcmlnLAorCQkJCQkgc3RydWN0IHRyYWNlX3Vwcm9iZSAqY29tcCkKK3sKKwlzdHJ1Y3QgdHJhY2VfcHJvYmVfZXZlbnQgKnRwZSA9IG9yaWctPnRwLmV2ZW50OworCXN0cnVjdCB0cmFjZV9wcm9iZSAqcG9zOworCXN0cnVjdCBpbm9kZSAqY29tcF9pbm9kZSA9IGRfcmVhbF9pbm9kZShjb21wLT5wYXRoLmRlbnRyeSk7CisJaW50IGk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBvcywgJnRwZS0+cHJvYmVzLCBsaXN0KSB7CisJCW9yaWcgPSBjb250YWluZXJfb2YocG9zLCBzdHJ1Y3QgdHJhY2VfdXByb2JlLCB0cCk7CisJCWlmIChjb21wX2lub2RlICE9IGRfcmVhbF9pbm9kZShvcmlnLT5wYXRoLmRlbnRyeSkgfHwKKwkJICAgIGNvbXAtPm9mZnNldCAhPSBvcmlnLT5vZmZzZXQpCisJCQljb250aW51ZTsKKworCQkvKgorCQkgKiB0cmFjZV9wcm9iZV9jb21wYXJlX2FyZ190eXBlKCkgZW5zdXJlZCB0aGF0IG5yX2FyZ3MgYW5kCisJCSAqIGVhY2ggYXJndW1lbnQgbmFtZSBhbmQgdHlwZSBhcmUgc2FtZS4gTGV0J3MgY29tcGFyZSBjb21tLgorCQkgKi8KKwkJZm9yIChpID0gMDsgaSA8IG9yaWctPnRwLm5yX2FyZ3M7IGkrKykgeworCQkJaWYgKHN0cmNtcChvcmlnLT50cC5hcmdzW2ldLmNvbW0sCisJCQkJICAgY29tcC0+dHAuYXJnc1tpXS5jb21tKSkKKwkJCQlicmVhazsKKwkJfQorCisJCWlmIChpID09IG9yaWctPnRwLm5yX2FyZ3MpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBpbnQgYXBwZW5kX3RyYWNlX3Vwcm9iZShzdHJ1Y3QgdHJhY2VfdXByb2JlICp0dSwgc3RydWN0IHRyYWNlX3Vwcm9iZSAqdG8pCit7CisJaW50IHJldDsKKworCXJldCA9IHRyYWNlX3Byb2JlX2NvbXBhcmVfYXJnX3R5cGUoJnR1LT50cCwgJnRvLT50cCk7CisJaWYgKHJldCkgeworCQkvKiBOb3RlIHRoYXQgYXJndW1lbnQgc3RhcnRzIGluZGV4ID0gMiAqLworCQl0cmFjZV9wcm9iZV9sb2dfc2V0X2luZGV4KHJldCArIDEpOworCQl0cmFjZV9wcm9iZV9sb2dfZXJyKDAsIERJRkZfQVJHX1RZUEUpOworCQlyZXR1cm4gLUVFWElTVDsKKwl9CisJaWYgKHRyYWNlX3Vwcm9iZV9oYXNfc2FtZV91cHJvYmUodG8sIHR1KSkgeworCQl0cmFjZV9wcm9iZV9sb2dfc2V0X2luZGV4KDApOworCQl0cmFjZV9wcm9iZV9sb2dfZXJyKDAsIFNBTUVfUFJPQkUpOworCQlyZXR1cm4gLUVFWElTVDsKKwl9CisKKwkvKiBBcHBlbmQgdG8gZXhpc3RpbmcgZXZlbnQgKi8KKwlyZXQgPSB0cmFjZV9wcm9iZV9hcHBlbmQoJnR1LT50cCwgJnRvLT50cCk7CisJaWYgKCFyZXQpCisJCWR5bl9ldmVudF9hZGQoJnR1LT5kZXZlbnQpOworCisJcmV0dXJuIHJldDsKK30KKwogLyoKICAqIFVwcm9iZSB3aXRoIG11bHRpcGxlIHJlZmVyZW5jZSBjb3VudGVyIGlzIG5vdCBhbGxvd2VkLiBpLmUuCiAgKiBJZiBpbm9kZSBhbmQgb2Zmc2V0IG1hdGNoZXMsIHJlZmVyZW5jZSBjb3VudGVyIG9mZnNldCAqbXVzdCoKQEAgLTM3MCwyNSArNDc1LDIxIEBAIHN0YXRpYyBpbnQgdW5yZWdpc3Rlcl90cmFjZV91cHJvYmUoc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHUpCiAgKiBhcyB0aGUgbmV3IG9uZSBkb2VzIG5vdCBjb25mbGljdCB3aXRoIGFueSBvdGhlciBleGlzdGluZwogICogb25lcy4KICAqLwotc3RhdGljIHN0cnVjdCB0cmFjZV91cHJvYmUgKmZpbmRfb2xkX3RyYWNlX3Vwcm9iZShzdHJ1Y3QgdHJhY2VfdXByb2JlICpuZXcpCitzdGF0aWMgaW50IHZhbGlkYXRlX3JlZl9jdHJfb2Zmc2V0KHN0cnVjdCB0cmFjZV91cHJvYmUgKm5ldykKIHsKIAlzdHJ1Y3QgZHluX2V2ZW50ICpwb3M7Ci0Jc3RydWN0IHRyYWNlX3Vwcm9iZSAqdG1wLCAqb2xkID0gTlVMTDsKKwlzdHJ1Y3QgdHJhY2VfdXByb2JlICp0bXA7CiAJc3RydWN0IGlub2RlICpuZXdfaW5vZGUgPSBkX3JlYWxfaW5vZGUobmV3LT5wYXRoLmRlbnRyeSk7CiAKLQlvbGQgPSBmaW5kX3Byb2JlX2V2ZW50KHRyYWNlX3Byb2JlX25hbWUoJm5ldy0+dHApLAotCQkJCXRyYWNlX3Byb2JlX2dyb3VwX25hbWUoJm5ldy0+dHApKTsKLQogCWZvcl9lYWNoX3RyYWNlX3Vwcm9iZSh0bXAsIHBvcykgewotCQlpZiAoKG9sZCA/IG9sZCAhPSB0bXAgOiB0cnVlKSAmJgotCQkgICAgbmV3X2lub2RlID09IGRfcmVhbF9pbm9kZSh0bXAtPnBhdGguZGVudHJ5KSAmJgorCQlpZiAobmV3X2lub2RlID09IGRfcmVhbF9pbm9kZSh0bXAtPnBhdGguZGVudHJ5KSAmJgogCQkgICAgbmV3LT5vZmZzZXQgPT0gdG1wLT5vZmZzZXQgJiYKIAkJICAgIG5ldy0+cmVmX2N0cl9vZmZzZXQgIT0gdG1wLT5yZWZfY3RyX29mZnNldCkgewogCQkJcHJfd2FybigiUmVmZXJlbmNlIGNvdW50ZXIgb2Zmc2V0IG1pc21hdGNoLiIpOwotCQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCX0KLQlyZXR1cm4gb2xkOworCXJldHVybiAwOwogfQogCiAvKiBSZWdpc3RlciBhIHRyYWNlX3Vwcm9iZSBhbmQgcHJvYmVfZXZlbnQgKi8KQEAgLTM5OSwxOCArNTAwLDIyIEBAIHN0YXRpYyBpbnQgcmVnaXN0ZXJfdHJhY2VfdXByb2JlKHN0cnVjdCB0cmFjZV91cHJvYmUgKnR1KQogCiAJbXV0ZXhfbG9jaygmZXZlbnRfbXV0ZXgpOwogCi0JLyogcmVnaXN0ZXIgYXMgYW4gZXZlbnQgKi8KLQlvbGRfdHUgPSBmaW5kX29sZF90cmFjZV91cHJvYmUodHUpOwotCWlmIChJU19FUlIob2xkX3R1KSkgewotCQlyZXQgPSBQVFJfRVJSKG9sZF90dSk7CisJcmV0ID0gdmFsaWRhdGVfcmVmX2N0cl9vZmZzZXQodHUpOworCWlmIChyZXQpCiAJCWdvdG8gZW5kOwotCX0KIAorCS8qIHJlZ2lzdGVyIGFzIGFuIGV2ZW50ICovCisJb2xkX3R1ID0gZmluZF9wcm9iZV9ldmVudCh0cmFjZV9wcm9iZV9uYW1lKCZ0dS0+dHApLAorCQkJCSAgdHJhY2VfcHJvYmVfZ3JvdXBfbmFtZSgmdHUtPnRwKSk7CiAJaWYgKG9sZF90dSkgewotCQkvKiBkZWxldGUgb2xkIGV2ZW50ICovCi0JCXJldCA9IHVucmVnaXN0ZXJfdHJhY2VfdXByb2JlKG9sZF90dSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVuZDsKKwkJaWYgKGlzX3JldF9wcm9iZSh0dSkgIT0gaXNfcmV0X3Byb2JlKG9sZF90dSkpIHsKKwkJCXRyYWNlX3Byb2JlX2xvZ19zZXRfaW5kZXgoMCk7CisJCQl0cmFjZV9wcm9iZV9sb2dfZXJyKDAsIERJRkZfUFJPQkVfVFlQRSk7CisJCQlyZXQgPSAtRUVYSVNUOworCQl9IGVsc2UgeworCQkJcmV0ID0gYXBwZW5kX3RyYWNlX3Vwcm9iZSh0dSwgb2xkX3R1KTsKKwkJfQorCQlnb3RvIGVuZDsKIAl9CiAKIAlyZXQgPSByZWdpc3Rlcl91cHJvYmVfZXZlbnQodHUpOwpAQCAtODk3LDcgKzEwMDIsMTAgQEAgcHJpbnRfdXByb2JlX2V2ZW50KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciwgaW50IGZsYWdzLCBzdHJ1Y3QgdHJhY2VfZXZlbnQgKmUKIAl1OCAqZGF0YTsKIAogCWVudHJ5ID0gKHN0cnVjdCB1cHJvYmVfdHJhY2VfZW50cnlfaGVhZCAqKWl0ZXItPmVudDsKLQl0dSA9IGNvbnRhaW5lcl9vZihldmVudCwgc3RydWN0IHRyYWNlX3Vwcm9iZSwgdHAuY2FsbC5ldmVudCk7CisJdHUgPSB0cmFjZV91cHJvYmVfcHJpbWFyeV9mcm9tX2NhbGwoCisJCWNvbnRhaW5lcl9vZihldmVudCwgc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwsIGV2ZW50KSk7CisJaWYgKHVubGlrZWx5KCF0dSkpCisJCWdvdG8gb3V0OwogCiAJaWYgKGlzX3JldF9wcm9iZSh0dSkpIHsKIAkJdHJhY2Vfc2VxX3ByaW50ZihzLCAiJXM6ICgweCVseCA8LSAweCVseCkiLApAQCAtOTI0LDI3ICsxMDMyLDcxIEBAIHR5cGVkZWYgYm9vbCAoKmZpbHRlcl9mdW5jX3QpKHN0cnVjdCB1cHJvYmVfY29uc3VtZXIgKnNlbGYsCiAJCQkJZW51bSB1cHJvYmVfZmlsdGVyX2N0eCBjdHgsCiAJCQkJc3RydWN0IG1tX3N0cnVjdCAqbW0pOwogCi1zdGF0aWMgaW50Ci1wcm9iZV9ldmVudF9lbmFibGUoc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHUsIHN0cnVjdCB0cmFjZV9ldmVudF9maWxlICpmaWxlLAotCQkgICBmaWx0ZXJfZnVuY190IGZpbHRlcikKK3N0YXRpYyBpbnQgdHJhY2VfdXByb2JlX2VuYWJsZShzdHJ1Y3QgdHJhY2VfdXByb2JlICp0dSwgZmlsdGVyX2Z1bmNfdCBmaWx0ZXIpCiB7Ci0JYm9vbCBlbmFibGVkID0gdHJhY2VfcHJvYmVfaXNfZW5hYmxlZCgmdHUtPnRwKTsKIAlpbnQgcmV0OwogCisJdHUtPmNvbnN1bWVyLmZpbHRlciA9IGZpbHRlcjsKKwl0dS0+aW5vZGUgPSBkX3JlYWxfaW5vZGUodHUtPnBhdGguZGVudHJ5KTsKKworCWlmICh0dS0+cmVmX2N0cl9vZmZzZXQpCisJCXJldCA9IHVwcm9iZV9yZWdpc3Rlcl9yZWZjdHIodHUtPmlub2RlLCB0dS0+b2Zmc2V0LAorCQkJCXR1LT5yZWZfY3RyX29mZnNldCwgJnR1LT5jb25zdW1lcik7CisJZWxzZQorCQlyZXQgPSB1cHJvYmVfcmVnaXN0ZXIodHUtPmlub2RlLCB0dS0+b2Zmc2V0LCAmdHUtPmNvbnN1bWVyKTsKKworCWlmIChyZXQpCisJCXR1LT5pbm9kZSA9IE5VTEw7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBfX3Byb2JlX2V2ZW50X2Rpc2FibGUoc3RydWN0IHRyYWNlX3Byb2JlICp0cCkKK3sKKwlzdHJ1Y3QgdHJhY2VfcHJvYmUgKnBvczsKKwlzdHJ1Y3QgdHJhY2VfdXByb2JlICp0dTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCB0cmFjZV9wcm9iZV9wcm9iZV9saXN0KHRwKSwgbGlzdCkgeworCQl0dSA9IGNvbnRhaW5lcl9vZihwb3MsIHN0cnVjdCB0cmFjZV91cHJvYmUsIHRwKTsKKwkJaWYgKCF0dS0+aW5vZGUpCisJCQljb250aW51ZTsKKworCQlXQVJOX09OKCF1cHJvYmVfZmlsdGVyX2lzX2VtcHR5KCZ0dS0+ZmlsdGVyKSk7CisKKwkJdXByb2JlX3VucmVnaXN0ZXIodHUtPmlub2RlLCB0dS0+b2Zmc2V0LCAmdHUtPmNvbnN1bWVyKTsKKwkJdHUtPmlub2RlID0gTlVMTDsKKwl9Cit9CisKK3N0YXRpYyBpbnQgcHJvYmVfZXZlbnRfZW5hYmxlKHN0cnVjdCB0cmFjZV9ldmVudF9jYWxsICpjYWxsLAorCQkJc3RydWN0IHRyYWNlX2V2ZW50X2ZpbGUgKmZpbGUsIGZpbHRlcl9mdW5jX3QgZmlsdGVyKQoreworCXN0cnVjdCB0cmFjZV9wcm9iZSAqcG9zLCAqdHA7CisJc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHU7CisJYm9vbCBlbmFibGVkOworCWludCByZXQ7CisKKwl0cCA9IHRyYWNlX3Byb2JlX3ByaW1hcnlfZnJvbV9jYWxsKGNhbGwpOworCWlmIChXQVJOX09OX09OQ0UoIXRwKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisJZW5hYmxlZCA9IHRyYWNlX3Byb2JlX2lzX2VuYWJsZWQodHApOworCisJLyogVGhpcyBtYXkgYWxzbyBjaGFuZ2UgImVuYWJsZWQiIHN0YXRlICovCiAJaWYgKGZpbGUpIHsKLQkJaWYgKHRyYWNlX3Byb2JlX3Rlc3RfZmxhZygmdHUtPnRwLCBUUF9GTEFHX1BST0ZJTEUpKQorCQlpZiAodHJhY2VfcHJvYmVfdGVzdF9mbGFnKHRwLCBUUF9GTEFHX1BST0ZJTEUpKQogCQkJcmV0dXJuIC1FSU5UUjsKIAotCQlyZXQgPSB0cmFjZV9wcm9iZV9hZGRfZmlsZSgmdHUtPnRwLCBmaWxlKTsKKwkJcmV0ID0gdHJhY2VfcHJvYmVfYWRkX2ZpbGUodHAsIGZpbGUpOwogCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CiAJfSBlbHNlIHsKLQkJaWYgKHRyYWNlX3Byb2JlX3Rlc3RfZmxhZygmdHUtPnRwLCBUUF9GTEFHX1RSQUNFKSkKKwkJaWYgKHRyYWNlX3Byb2JlX3Rlc3RfZmxhZyh0cCwgVFBfRkxBR19UUkFDRSkpCiAJCQlyZXR1cm4gLUVJTlRSOwogCi0JCXRyYWNlX3Byb2JlX3NldF9mbGFnKCZ0dS0+dHAsIFRQX0ZMQUdfUFJPRklMRSk7CisJCXRyYWNlX3Byb2JlX3NldF9mbGFnKHRwLCBUUF9GTEFHX1BST0ZJTEUpOwogCX0KIAorCXR1ID0gY29udGFpbmVyX29mKHRwLCBzdHJ1Y3QgdHJhY2VfdXByb2JlLCB0cCk7CiAJV0FSTl9PTighdXByb2JlX2ZpbHRlcl9pc19lbXB0eSgmdHUtPmZpbHRlcikpOwogCiAJaWYgKGVuYWJsZWQpCkBAIC05NTQsMTggKzExMDYsMTUgQEAgcHJvYmVfZXZlbnRfZW5hYmxlKHN0cnVjdCB0cmFjZV91cHJvYmUgKnR1LCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSwKIAlpZiAocmV0KQogCQlnb3RvIGVycl9mbGFnczsKIAotCXR1LT5jb25zdW1lci5maWx0ZXIgPSBmaWx0ZXI7Ci0JdHUtPmlub2RlID0gZF9yZWFsX2lub2RlKHR1LT5wYXRoLmRlbnRyeSk7Ci0JaWYgKHR1LT5yZWZfY3RyX29mZnNldCkgewotCQlyZXQgPSB1cHJvYmVfcmVnaXN0ZXJfcmVmY3RyKHR1LT5pbm9kZSwgdHUtPm9mZnNldCwKLQkJCQl0dS0+cmVmX2N0cl9vZmZzZXQsICZ0dS0+Y29uc3VtZXIpOwotCX0gZWxzZSB7Ci0JCXJldCA9IHVwcm9iZV9yZWdpc3Rlcih0dS0+aW5vZGUsIHR1LT5vZmZzZXQsICZ0dS0+Y29uc3VtZXIpOworCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCB0cmFjZV9wcm9iZV9wcm9iZV9saXN0KHRwKSwgbGlzdCkgeworCQl0dSA9IGNvbnRhaW5lcl9vZihwb3MsIHN0cnVjdCB0cmFjZV91cHJvYmUsIHRwKTsKKwkJcmV0ID0gdHJhY2VfdXByb2JlX2VuYWJsZSh0dSwgZmlsdGVyKTsKKwkJaWYgKHJldCkgeworCQkJX19wcm9iZV9ldmVudF9kaXNhYmxlKHRwKTsKKwkJCWdvdG8gZXJyX2J1ZmZlcjsKKwkJfQogCX0KIAotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2J1ZmZlcjsKLQogCXJldHVybiAwOwogCiAgZXJyX2J1ZmZlcjoKQEAgLTk3MywzMyArMTEyMiwzNSBAQCBwcm9iZV9ldmVudF9lbmFibGUoc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHUsIHN0cnVjdCB0cmFjZV9ldmVudF9maWxlICpmaWxlLAogCiAgZXJyX2ZsYWdzOgogCWlmIChmaWxlKQotCQl0cmFjZV9wcm9iZV9yZW1vdmVfZmlsZSgmdHUtPnRwLCBmaWxlKTsKKwkJdHJhY2VfcHJvYmVfcmVtb3ZlX2ZpbGUodHAsIGZpbGUpOwogCWVsc2UKLQkJdHJhY2VfcHJvYmVfY2xlYXJfZmxhZygmdHUtPnRwLCBUUF9GTEFHX1BST0ZJTEUpOworCQl0cmFjZV9wcm9iZV9jbGVhcl9mbGFnKHRwLCBUUF9GTEFHX1BST0ZJTEUpOwogCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQKLXByb2JlX2V2ZW50X2Rpc2FibGUoc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHUsIHN0cnVjdCB0cmFjZV9ldmVudF9maWxlICpmaWxlKQorc3RhdGljIHZvaWQgcHJvYmVfZXZlbnRfZGlzYWJsZShzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqY2FsbCwKKwkJCQlzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSkKIHsKLQlpZiAoIXRyYWNlX3Byb2JlX2lzX2VuYWJsZWQoJnR1LT50cCkpCisJc3RydWN0IHRyYWNlX3Byb2JlICp0cDsKKworCXRwID0gdHJhY2VfcHJvYmVfcHJpbWFyeV9mcm9tX2NhbGwoY2FsbCk7CisJaWYgKFdBUk5fT05fT05DRSghdHApKQorCQlyZXR1cm47CisKKwlpZiAoIXRyYWNlX3Byb2JlX2lzX2VuYWJsZWQodHApKQogCQlyZXR1cm47CiAKIAlpZiAoZmlsZSkgewotCQlpZiAodHJhY2VfcHJvYmVfcmVtb3ZlX2ZpbGUoJnR1LT50cCwgZmlsZSkgPCAwKQorCQlpZiAodHJhY2VfcHJvYmVfcmVtb3ZlX2ZpbGUodHAsIGZpbGUpIDwgMCkKIAkJCXJldHVybjsKIAotCQlpZiAodHJhY2VfcHJvYmVfaXNfZW5hYmxlZCgmdHUtPnRwKSkKKwkJaWYgKHRyYWNlX3Byb2JlX2lzX2VuYWJsZWQodHApKQogCQkJcmV0dXJuOwogCX0gZWxzZQotCQl0cmFjZV9wcm9iZV9jbGVhcl9mbGFnKCZ0dS0+dHAsIFRQX0ZMQUdfUFJPRklMRSk7CisJCXRyYWNlX3Byb2JlX2NsZWFyX2ZsYWcodHAsIFRQX0ZMQUdfUFJPRklMRSk7CiAKLQlXQVJOX09OKCF1cHJvYmVfZmlsdGVyX2lzX2VtcHR5KCZ0dS0+ZmlsdGVyKSk7Ci0KLQl1cHJvYmVfdW5yZWdpc3Rlcih0dS0+aW5vZGUsIHR1LT5vZmZzZXQsICZ0dS0+Y29uc3VtZXIpOwotCXR1LT5pbm9kZSA9IE5VTEw7Ci0KKwlfX3Byb2JlX2V2ZW50X2Rpc2FibGUodHApOwogCXVwcm9iZV9idWZmZXJfZGlzYWJsZSgpOwogfQogCkBAIC0xMDA3LDcgKzExNTgsMTEgQEAgc3RhdGljIGludCB1cHJvYmVfZXZlbnRfZGVmaW5lX2ZpZWxkcyhzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqZXZlbnRfY2FsbCkKIHsKIAlpbnQgcmV0LCBzaXplOwogCXN0cnVjdCB1cHJvYmVfdHJhY2VfZW50cnlfaGVhZCBmaWVsZDsKLQlzdHJ1Y3QgdHJhY2VfdXByb2JlICp0dSA9IGV2ZW50X2NhbGwtPmRhdGE7CisJc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHU7CisKKwl0dSA9IHRyYWNlX3Vwcm9iZV9wcmltYXJ5X2Zyb21fY2FsbChldmVudF9jYWxsKTsKKwlpZiAodW5saWtlbHkoIXR1KSkKKwkJcmV0dXJuIC1FTk9ERVY7CiAKIAlpZiAoaXNfcmV0X3Byb2JlKHR1KSkgewogCQlERUZJTkVfRklFTEQodW5zaWduZWQgbG9uZywgdmFkZHJbMF0sIEZJRUxEX1NUUklOR19GVU5DLCAwKTsKQEAgLTExMDAsNiArMTI1NSwyNyBAQCBzdGF0aWMgaW50IHVwcm9iZV9wZXJmX29wZW4oc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHUsIHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgaW50IHVwcm9iZV9wZXJmX211bHRpX2NhbGwoc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKmNhbGwsCisJCQkJICBzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsCisJCWludCAoKm9wKShzdHJ1Y3QgdHJhY2VfdXByb2JlICp0dSwgc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KSkKK3sKKwlzdHJ1Y3QgdHJhY2VfcHJvYmUgKnBvcywgKnRwOworCXN0cnVjdCB0cmFjZV91cHJvYmUgKnR1OworCWludCByZXQgPSAwOworCisJdHAgPSB0cmFjZV9wcm9iZV9wcmltYXJ5X2Zyb21fY2FsbChjYWxsKTsKKwlpZiAoV0FSTl9PTl9PTkNFKCF0cCkpCisJCXJldHVybiAtRU5PREVWOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShwb3MsIHRyYWNlX3Byb2JlX3Byb2JlX2xpc3QodHApLCBsaXN0KSB7CisJCXR1ID0gY29udGFpbmVyX29mKHBvcywgc3RydWN0IHRyYWNlX3Vwcm9iZSwgdHApOworCQlyZXQgPSBvcCh0dSwgZXZlbnQpOworCQlpZiAocmV0KQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJldDsKK30KIHN0YXRpYyBib29sIHVwcm9iZV9wZXJmX2ZpbHRlcihzdHJ1Y3QgdXByb2JlX2NvbnN1bWVyICp1YywKIAkJCQllbnVtIHVwcm9iZV9maWx0ZXJfY3R4IGN0eCwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CkBAIC0xMjEzLDMwICsxMzg5LDI5IEBAIHN0YXRpYyBpbnQKIHRyYWNlX3Vwcm9iZV9yZWdpc3RlcihzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqZXZlbnQsIGVudW0gdHJhY2VfcmVnIHR5cGUsCiAJCSAgICAgIHZvaWQgKmRhdGEpCiB7Ci0Jc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHUgPSBldmVudC0+ZGF0YTsKIAlzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZSA9IGRhdGE7CiAKIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIFRSQUNFX1JFR19SRUdJU1RFUjoKLQkJcmV0dXJuIHByb2JlX2V2ZW50X2VuYWJsZSh0dSwgZmlsZSwgTlVMTCk7CisJCXJldHVybiBwcm9iZV9ldmVudF9lbmFibGUoZXZlbnQsIGZpbGUsIE5VTEwpOwogCiAJY2FzZSBUUkFDRV9SRUdfVU5SRUdJU1RFUjoKLQkJcHJvYmVfZXZlbnRfZGlzYWJsZSh0dSwgZmlsZSk7CisJCXByb2JlX2V2ZW50X2Rpc2FibGUoZXZlbnQsIGZpbGUpOwogCQlyZXR1cm4gMDsKIAogI2lmZGVmIENPTkZJR19QRVJGX0VWRU5UUwogCWNhc2UgVFJBQ0VfUkVHX1BFUkZfUkVHSVNURVI6Ci0JCXJldHVybiBwcm9iZV9ldmVudF9lbmFibGUodHUsIE5VTEwsIHVwcm9iZV9wZXJmX2ZpbHRlcik7CisJCXJldHVybiBwcm9iZV9ldmVudF9lbmFibGUoZXZlbnQsIE5VTEwsIHVwcm9iZV9wZXJmX2ZpbHRlcik7CiAKIAljYXNlIFRSQUNFX1JFR19QRVJGX1VOUkVHSVNURVI6Ci0JCXByb2JlX2V2ZW50X2Rpc2FibGUodHUsIE5VTEwpOworCQlwcm9iZV9ldmVudF9kaXNhYmxlKGV2ZW50LCBOVUxMKTsKIAkJcmV0dXJuIDA7CiAKIAljYXNlIFRSQUNFX1JFR19QRVJGX09QRU46Ci0JCXJldHVybiB1cHJvYmVfcGVyZl9vcGVuKHR1LCBkYXRhKTsKKwkJcmV0dXJuIHVwcm9iZV9wZXJmX211bHRpX2NhbGwoZXZlbnQsIGRhdGEsIHVwcm9iZV9wZXJmX29wZW4pOwogCiAJY2FzZSBUUkFDRV9SRUdfUEVSRl9DTE9TRToKLQkJcmV0dXJuIHVwcm9iZV9wZXJmX2Nsb3NlKHR1LCBkYXRhKTsKKwkJcmV0dXJuIHVwcm9iZV9wZXJmX211bHRpX2NhbGwoZXZlbnQsIGRhdGEsIHVwcm9iZV9wZXJmX2Nsb3NlKTsKIAogI2VuZGlmCiAJZGVmYXVsdDoKQEAgLTEzMzAsNyArMTUwNSw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X3RyYWNlX2V2ZW50X2NhbGwoc3RydWN0IHRyYWNlX3Vwcm9iZSAqdHUpCiAKIAljYWxsLT5mbGFncyA9IFRSQUNFX0VWRU5UX0ZMX1VQUk9CRSB8IFRSQUNFX0VWRU5UX0ZMX0NBUF9BTlk7CiAJY2FsbC0+Y2xhc3MtPnJlZyA9IHRyYWNlX3Vwcm9iZV9yZWdpc3RlcjsKLQljYWxsLT5kYXRhID0gdHU7CiB9CiAKIHN0YXRpYyBpbnQgcmVnaXN0ZXJfdXByb2JlX2V2ZW50KHN0cnVjdCB0cmFjZV91cHJvYmUgKnR1KQpAQCAtMTM5OSw3ICsxNTczLDcgQEAgdm9pZCBkZXN0cm95X2xvY2FsX3RyYWNlX3Vwcm9iZShzdHJ1Y3QgdHJhY2VfZXZlbnRfY2FsbCAqZXZlbnRfY2FsbCkKIHsKIAlzdHJ1Y3QgdHJhY2VfdXByb2JlICp0dTsKIAotCXR1ID0gY29udGFpbmVyX29mKGV2ZW50X2NhbGwsIHN0cnVjdCB0cmFjZV91cHJvYmUsIHRwLmNhbGwpOworCXR1ID0gdHJhY2VfdXByb2JlX3ByaW1hcnlfZnJvbV9jYWxsKGV2ZW50X2NhbGwpOwogCiAJZnJlZV90cmFjZV91cHJvYmUodHUpOwogfQpkaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1ZwppbmRleCA1OTYwZTI5Li45M2Q5N2Y5IDEwMDY0NAotLS0gYS9saWIvS2NvbmZpZy5kZWJ1ZworKysgYi9saWIvS2NvbmZpZy5kZWJ1ZwpAQCAtMjc3LDIyICsyNzcsNiBAQAogICAgICAgICAgIHRvIGtlZXAga2VybmVsIGRldmVsb3BlcnMgd2hvIGhhdmUgdG8gc3RhcmUgYSBsb3QgYXQgYXNzZW1ibGVyIGxpc3RpbmdzCiAgICAgICAgICAgc2FuZS4KIAotY29uZmlnIFVOVVNFRF9TWU1CT0xTCi0JYm9vbCAiRW5hYmxlIHVudXNlZC9vYnNvbGV0ZSBleHBvcnRlZCBzeW1ib2xzIgotCWRlZmF1bHQgeSBpZiBYODYKLQloZWxwCi0JICBVbnVzZWQgYnV0IGV4cG9ydGVkIHN5bWJvbHMgbWFrZSB0aGUga2VybmVsIG5lZWRsZXNzbHkgYmlnZ2VyLiAgRm9yCi0JICB0aGF0IHJlYXNvbiBtb3N0IG9mIHRoZXNlIHVudXNlZCBleHBvcnRzIHdpbGwgc29vbiBiZSByZW1vdmVkLiAgVGhpcwotCSAgb3B0aW9uIGlzIHByb3ZpZGVkIHRlbXBvcmFyaWx5IHRvIHByb3ZpZGUgYSB0cmFuc2l0aW9uIHBlcmlvZCBpbiBjYXNlCi0JICBzb21lIGV4dGVybmFsIGtlcm5lbCBtb2R1bGUgbmVlZHMgb25lIG9mIHRoZXNlIHN5bWJvbHMgYW55d2F5LiBJZiB5b3UKLQkgIGVuY291bnRlciBzdWNoIGEgY2FzZSBpbiB5b3VyIG1vZHVsZSwgY29uc2lkZXIgaWYgeW91IGFyZSBhY3R1YWxseQotCSAgdXNpbmcgdGhlIHJpZ2h0IEFQSS4gIChyYXRpb25hbGU6IHNpbmNlIG5vYm9keSBpbiB0aGUga2VybmVsIGlzIHVzaW5nCi0JICB0aGlzIGluIGEgbW9kdWxlLCB0aGVyZSBpcyBhIHByZXR0eSBnb29kIGNoYW5jZSBpdCdzIGFjdHVhbGx5IHRoZQotCSAgd3JvbmcgaW50ZXJmYWNlIHRvIHVzZSkuICBJZiB5b3UgcmVhbGx5IG5lZWQgdGhlIHN5bWJvbCwgcGxlYXNlIHNlbmQgYQotCSAgbWFpbCB0byB0aGUgbGludXgga2VybmVsIG1haWxpbmcgbGlzdCBtZW50aW9uaW5nIHRoZSBzeW1ib2wgYW5kIHdoeQotCSAgeW91IHJlYWxseSBuZWVkIGl0LCBhbmQgd2hhdCB0aGUgbWVyZ2UgcGxhbiB0byB0aGUgbWFpbmxpbmUga2VybmVsIGZvcgotCSAgeW91ciBtb2R1bGUgaXMuCi0KIGNvbmZpZyBERUJVR19GUwogCWJvb2wgIkRlYnVnIEZpbGVzeXN0ZW0iCiAJaGVscApAQCAtMzI3LDcgKzMxMSw3IEBACiAJICByZWxldmFudCBmb3IgdXNlcnNwYWNlLCBzYXkgJ1knLgogCiBjb25maWcgT1BUSU1JWkVfSU5MSU5JTkcKLQlib29sICJBbGxvdyBjb21waWxlciB0byB1bmlubGluZSBmdW5jdGlvbnMgbWFya2VkICdpbmxpbmUnIgorCWRlZl9ib29sIHkKIAloZWxwCiAJICBUaGlzIG9wdGlvbiBkZXRlcm1pbmVzIGlmIHRoZSBrZXJuZWwgZm9yY2VzIGdjYyB0byBpbmxpbmUgdGhlIGZ1bmN0aW9ucwogCSAgZGV2ZWxvcGVycyBoYXZlIG1hcmtlZCAnaW5saW5lJy4gRG9pbmcgc28gdGFrZXMgYXdheSBmcmVlZG9tIGZyb20gZ2NjIHRvCkBAIC0zMzgsOCArMzIyLDYgQEAKIAkgIGRlY2lzaW9uIHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IGluIHRoZSBmdXR1cmUuIFVudGlsIHRoZW4gdGhpcyBvcHRpb24KIAkgIGlzIHRoZXJlIHRvIHRlc3QgZ2NjIGZvciB0aGlzLgogCi0JICBJZiB1bnN1cmUsIHNheSBOLgotCiBjb25maWcgREVCVUdfU0VDVElPTl9NSVNNQVRDSAogCWJvb2wgIkVuYWJsZSBmdWxsIFNlY3Rpb24gbWlzbWF0Y2ggYW5hbHlzaXMiCiAJaGVscApAQCAtNTkyLDE3ICs1NzQsMTggQEAKIAkgIEluIG9yZGVyIHRvIGFjY2VzcyB0aGUga21lbWxlYWsgZmlsZSwgZGVidWdmcyBuZWVkcyB0byBiZQogCSAgbW91bnRlZCAodXN1YWxseSBhdCAvc3lzL2tlcm5lbC9kZWJ1ZykuCiAKLWNvbmZpZyBERUJVR19LTUVNTEVBS19FQVJMWV9MT0dfU0laRQotCWludCAiTWF4aW11bSBrbWVtbGVhayBlYXJseSBsb2cgZW50cmllcyIKK2NvbmZpZyBERUJVR19LTUVNTEVBS19NRU1fUE9PTF9TSVpFCisJaW50ICJLbWVtbGVhayBtZW1vcnkgcG9vbCBzaXplIgogCWRlcGVuZHMgb24gREVCVUdfS01FTUxFQUsKLQlyYW5nZSAyMDAgNDAwMDAKLQlkZWZhdWx0IDQwMAorCXJhbmdlIDIwMCAxMDAwMDAwCisJZGVmYXVsdCAxNjAwMAogCWhlbHAKIAkgIEttZW1sZWFrIG11c3QgdHJhY2sgYWxsIHRoZSBtZW1vcnkgYWxsb2NhdGlvbnMgdG8gYXZvaWQKIAkgIHJlcG9ydGluZyBmYWxzZSBwb3NpdGl2ZXMuIFNpbmNlIG1lbW9yeSBtYXkgYmUgYWxsb2NhdGVkIG9yCi0JICBmcmVlZCBiZWZvcmUga21lbWxlYWsgaXMgaW5pdGlhbGlzZWQsIGFuIGVhcmx5IGxvZyBidWZmZXIgaXMKLQkgIHVzZWQgdG8gc3RvcmUgdGhlc2UgYWN0aW9ucy4gSWYga21lbWxlYWsgcmVwb3J0cyAiZWFybHkgbG9nCi0JICBidWZmZXIgZXhjZWVkZWQiLCBwbGVhc2UgaW5jcmVhc2UgdGhpcyB2YWx1ZS4KKwkgIGZyZWVkIGJlZm9yZSBrbWVtbGVhayBpcyBmdWxseSBpbml0aWFsaXNlZCwgdXNlIGEgc3RhdGljIHBvb2wKKwkgIG9mIG1ldGFkYXRhIG9iamVjdHMgdG8gdHJhY2sgc3VjaCBjYWxsYmFja3MuIEFmdGVyIGttZW1sZWFrIGlzCisJICBmdWxseSBpbml0aWFsaXNlZCwgdGhpcyBtZW1vcnkgcG9vbCBhY3RzIGFzIGFuIGVtZXJnZW5jeSBvbmUKKwkgIGlmIHNsYWIgYWxsb2NhdGlvbnMgZmFpbC4KIAogY29uZmlnIERFQlVHX0tNRU1MRUFLX1RFU1QKIAl0cmlzdGF0ZSAiU2ltcGxlIHRlc3QgZm9yIHRoZSBrZXJuZWwgbWVtb3J5IGxlYWsgZGV0ZWN0b3IiCmRpZmYgLS1naXQgYS9saWIvS2NvbmZpZy5rYXNhbiBiL2xpYi9LY29uZmlnLmthc2FuCmluZGV4IDdmYTk3YTguLjZjOTY4MmMgMTAwNjQ0Ci0tLSBhL2xpYi9LY29uZmlnLmthc2FuCisrKyBiL2xpYi9LY29uZmlnLmthc2FuCkBAIC0xMzQsNiArMTM0LDE0IEBACiAJICB0byAzVEIgb2YgUkFNIHdpdGggS0FTYW4gZW5hYmxlZCkuIFRoaXMgb3B0aW9ucyBhbGxvd3MgdG8gZm9yY2UKIAkgIDQtbGV2ZWwgcGFnaW5nIGluc3RlYWQuCiAKK2NvbmZpZyBLQVNBTl9TV19UQUdTX0lERU5USUZZCisJYm9vbCAiRW5hYmxlIG1lbW9yeSBjb3JydXB0aW9uIGlkZW50aWZpY2F0aW9uIgorCWRlcGVuZHMgb24gS0FTQU5fU1dfVEFHUworCWhlbHAKKwkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgYmVzdC1lZmZvcnQgaWRlbnRpZmljYXRpb24gb2YgYnVnIHR5cGUKKwkgICh1c2UtYWZ0ZXItZnJlZSBvciBvdXQtb2YtYm91bmRzKSBhdCB0aGUgY29zdCBvZiBpbmNyZWFzZWQKKwkgIG1lbW9yeSBjb25zdW1wdGlvbi4KKwogY29uZmlnIFRFU1RfS0FTQU4KIAl0cmlzdGF0ZSAiTW9kdWxlIGZvciB0ZXN0aW5nIEtBU0FOIGZvciBidWcgZGV0ZWN0aW9uIgogCWRlcGVuZHMgb24gbSAmJiBLQVNBTgpkaWZmIC0tZ2l0IGEvbGliL2J1Zy5jIGIvbGliL2J1Zy5jCmluZGV4IDEwNzczNjYuLjhjOThhZjAgMTAwNjQ0Ci0tLSBhL2xpYi9idWcuYworKysgYi9saWIvYnVnLmMKQEAgLTE4MSw2ICsxODEsMTUgQEAgZW51bSBidWdfdHJhcF90eXBlIHJlcG9ydF9idWcodW5zaWduZWQgbG9uZyBidWdhZGRyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAkJfQogCX0KIAorCS8qCisJICogQlVHKCkgYW5kIFdBUk5fT04oKSBmYW1pbGllcyBkb24ndCBwcmludCBhIGN1c3RvbSBkZWJ1ZyBtZXNzYWdlCisJICogYmVmb3JlIHRyaWdnZXJpbmcgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLCBzbyB3ZSBtdXN0IGFkZCB0aGUKKwkgKiAiY3V0IGhlcmUiIGxpbmUgbm93LiBXQVJOKCkgaXNzdWVzIGl0cyBvd24gImN1dCBoZXJlIiBiZWZvcmUgdGhlCisJICogZXh0cmEgZGVidWdnaW5nIG1lc3NhZ2UgaXQgd3JpdGVzIGJlZm9yZSB0cmlnZ2VyaW5nIHRoZSBoYW5kbGVyLgorCSAqLworCWlmICgoYnVnLT5mbGFncyAmIEJVR0ZMQUdfTk9fQ1VUX0hFUkUpID09IDApCisJCXByaW50ayhLRVJOX0RFRkFVTFQgQ1VUX0hFUkUpOworCiAJaWYgKHdhcm5pbmcpIHsKIAkJLyogdGhpcyBpcyBhIFdBUk5fT04gcmF0aGVyIHRoYW4gQlVHL0JVR19PTiAqLwogCQlfX3dhcm4oZmlsZSwgbGluZSwgKHZvaWQgKilidWdhZGRyLCBCVUdfR0VUX1RBSU5UKGJ1ZyksIHJlZ3MsCkBAIC0xODgsOCArMTk3LDYgQEAgZW51bSBidWdfdHJhcF90eXBlIHJlcG9ydF9idWcodW5zaWduZWQgbG9uZyBidWdhZGRyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAkJcmV0dXJuIEJVR19UUkFQX1RZUEVfV0FSTjsKIAl9CiAKLQlwcmludGsoS0VSTl9ERUZBVUxUIENVVF9IRVJFKTsKLQogCWlmIChmaWxlKQogCQlwcl9jcml0KCJrZXJuZWwgQlVHIGF0ICVzOiV1IVxuIiwgZmlsZSwgbGluZSk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvbGliL2V4dGFibGUuYyBiL2xpYi9leHRhYmxlLmMKaW5kZXggMjVkYTQwNzEuLmMzZTU5Y2EgMTAwNjQ0Ci0tLSBhL2xpYi9leHRhYmxlLmMKKysrIGIvbGliL2V4dGFibGUuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2V4dGFibGUuaD4KIAogI2lmbmRlZiBBUkNIX0hBU19SRUxBVElWRV9FWFRBQkxFCiAjZGVmaW5lIGV4X3RvX2luc24oeCkJKCh4KS0+aW5zbikKZGlmZiAtLWdpdCBhL2xpYi9nZW5lcmljLXJhZGl4LXRyZWUuYyBiL2xpYi9nZW5lcmljLXJhZGl4LXRyZWUuYwppbmRleCBhN2JhZmM0Li5hZTI1ZTJmIDEwMDY0NAotLS0gYS9saWIvZ2VuZXJpYy1yYWRpeC10cmVlLmMKKysrIGIvbGliL2dlbmVyaWMtcmFkaXgtdHJlZS5jCkBAIC0zNiwxMiArMzYsMTIgQEAgc3RhdGljIGlubGluZSBzaXplX3QgZ2VucmFkaXhfZGVwdGhfc2l6ZSh1bnNpZ25lZCBkZXB0aCkKICNkZWZpbmUgR0VOUkFESVhfREVQVEhfTUFTSwkJCQlcCiAJKCh1bnNpZ25lZCBsb25nKSAocm91bmR1cF9wb3dfb2ZfdHdvKEdFTlJBRElYX01BWF9ERVBUSCArIDEpIC0gMSkpCiAKLXVuc2lnbmVkIGdlbnJhZGl4X3Jvb3RfdG9fZGVwdGgoc3RydWN0IGdlbnJhZGl4X3Jvb3QgKnIpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGdlbnJhZGl4X3Jvb3RfdG9fZGVwdGgoc3RydWN0IGdlbnJhZGl4X3Jvb3QgKnIpCiB7CiAJcmV0dXJuICh1bnNpZ25lZCBsb25nKSByICYgR0VOUkFESVhfREVQVEhfTUFTSzsKIH0KIAotc3RydWN0IGdlbnJhZGl4X25vZGUgKmdlbnJhZGl4X3Jvb3RfdG9fbm9kZShzdHJ1Y3QgZ2VucmFkaXhfcm9vdCAqcikKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGdlbnJhZGl4X25vZGUgKmdlbnJhZGl4X3Jvb3RfdG9fbm9kZShzdHJ1Y3QgZ2VucmFkaXhfcm9vdCAqcikKIHsKIAlyZXR1cm4gKHZvaWQgKikgKCh1bnNpZ25lZCBsb25nKSByICYgfkdFTlJBRElYX0RFUFRIX01BU0spOwogfQpkaWZmIC0tZ2l0IGEvbGliL2hleGR1bXAuYyBiL2xpYi9oZXhkdW1wLmMKaW5kZXggYjFkNTViNi4uMTQ3MTMzZiAxMDA2NDQKLS0tIGEvbGliL2hleGR1bXAuYworKysgYi9saWIvaGV4ZHVtcC5jCkBAIC0yNzAsMjUgKzI3MCw0IEBAIHZvaWQgcHJpbnRfaGV4X2R1bXAoY29uc3QgY2hhciAqbGV2ZWwsIGNvbnN0IGNoYXIgKnByZWZpeF9zdHIsIGludCBwcmVmaXhfdHlwZSwKIH0KIEVYUE9SVF9TWU1CT0wocHJpbnRfaGV4X2R1bXApOwogCi0jaWYgIWRlZmluZWQoQ09ORklHX0RZTkFNSUNfREVCVUcpCi0vKioKLSAqIHByaW50X2hleF9kdW1wX2J5dGVzIC0gc2hvcnRoYW5kIGZvcm0gb2YgcHJpbnRfaGV4X2R1bXAoKSB3aXRoIGRlZmF1bHQgcGFyYW1zCi0gKiBAcHJlZml4X3N0cjogc3RyaW5nIHRvIHByZWZpeCBlYWNoIGxpbmUgd2l0aDsKLSAqICBjYWxsZXIgc3VwcGxpZXMgdHJhaWxpbmcgc3BhY2VzIGZvciBhbGlnbm1lbnQgaWYgZGVzaXJlZAotICogQHByZWZpeF90eXBlOiBjb250cm9scyB3aGV0aGVyIHByZWZpeCBvZiBhbiBvZmZzZXQsIGFkZHJlc3MsIG9yIG5vbmUKLSAqICBpcyBwcmludGVkICglRFVNUF9QUkVGSVhfT0ZGU0VULCAlRFVNUF9QUkVGSVhfQUREUkVTUywgJURVTVBfUFJFRklYX05PTkUpCi0gKiBAYnVmOiBkYXRhIGJsb2IgdG8gZHVtcAotICogQGxlbjogbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBAYnVmCi0gKgotICogQ2FsbHMgcHJpbnRfaGV4X2R1bXAoKSwgd2l0aCBsb2cgbGV2ZWwgb2YgS0VSTl9ERUJVRywKLSAqIHJvd3NpemUgb2YgMTYsIGdyb3Vwc2l6ZSBvZiAxLCBhbmQgQVNDSUkgb3V0cHV0IGluY2x1ZGVkLgotICovCi12b2lkIHByaW50X2hleF9kdW1wX2J5dGVzKGNvbnN0IGNoYXIgKnByZWZpeF9zdHIsIGludCBwcmVmaXhfdHlwZSwKLQkJCSAgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQotewotCXByaW50X2hleF9kdW1wKEtFUk5fREVCVUcsIHByZWZpeF9zdHIsIHByZWZpeF90eXBlLCAxNiwgMSwKLQkJICAgICAgIGJ1ZiwgbGVuLCB0cnVlKTsKLX0KLUVYUE9SVF9TWU1CT0wocHJpbnRfaGV4X2R1bXBfYnl0ZXMpOwotI2VuZGlmIC8qICFkZWZpbmVkKENPTkZJR19EWU5BTUlDX0RFQlVHKSAqLwogI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BSSU5USykgKi8KZGlmZiAtLWdpdCBhL2xpYi9pb3ZfaXRlci5jIGIvbGliL2lvdl9pdGVyLmMKaW5kZXggZjFlMDU2OS4uNjM5ZDVlNyAxMDA2NDQKLS0tIGEvbGliL2lvdl9pdGVyLmMKKysrIGIvbGliL2lvdl9pdGVyLmMKQEAgLTg3OCw3ICs4NzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFnZV9jb3B5X3NhbmUoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBvZmZzZXQsIHNpemVfdCBuKQogCWhlYWQgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOwogCXYgKz0gKHBhZ2UgLSBoZWFkKSA8PCBQQUdFX1NISUZUOwogCi0JaWYgKGxpa2VseShuIDw9IHYgJiYgdiA8PSAoUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKGhlYWQpKSkpCisJaWYgKGxpa2VseShuIDw9IHYgJiYgdiA8PSAocGFnZV9zaXplKGhlYWQpKSkpCiAJCXJldHVybiB0cnVlOwogCVdBUk5fT04oMSk7CiAJcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvbGliL2x6NC9sejRoY19jb21wcmVzcy5jIGIvbGliL2x6NC9sejRoY19jb21wcmVzcy5jCmluZGV4IDE3NmYwM2IuLjFiNjFkODcgMTAwNjQ0Ci0tLSBhL2xpYi9sejQvbHo0aGNfY29tcHJlc3MuYworKysgYi9saWIvbHo0L2x6NGhjX2NvbXByZXNzLmMKQEAgLTY2Myw3ICs2NjMsNiBAQCBzdGF0aWMgdm9pZCBMWjRIQ19zZXRFeHRlcm5hbERpY3QoCiAJLyogbWF0Y2ggcmVmZXJlbmNpbmcgd2lsbCByZXN1bWUgZnJvbSB0aGVyZSAqLwogCWN0eFB0ci0+bmV4dFRvVXBkYXRlID0gY3R4UHRyLT5kaWN0TGltaXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKExaNEhDX3NldEV4dGVybmFsRGljdCk7CiAKIHN0YXRpYyBpbnQgTFo0X2NvbXByZXNzSENfY29udGludWVfZ2VuZXJpYygKIAlMWjRfc3RyZWFtSENfdCAqTFo0X3N0cmVhbUhDUHRyLApkaWZmIC0tZ2l0IGEvbGliL2x6by9sem8xeF9jb21wcmVzcy5jIGIvbGliL2x6by9sem8xeF9jb21wcmVzcy5jCmluZGV4IGJhMTZjMDguLjcxN2M5NDAgMTAwNjQ0Ci0tLSBhL2xpYi9sem8vbHpvMXhfY29tcHJlc3MuYworKysgYi9saWIvbHpvL2x6bzF4X2NvbXByZXNzLmMKQEAgLTgzLDE3ICs4MywxOSBAQCBsem8xeF8xX2RvX2NvbXByZXNzKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLCBzaXplX3QgaW5fbGVuLAogCQkJCQlBTElHTigodWludHB0cl90KWlyLCA0KSkgJiYKIAkJCQkJKGlyIDwgbGltaXQpICYmICgqaXIgPT0gMCkpCiAJCQkJaXIrKzsKLQkJCWZvciAoOyAoaXIgKyA0KSA8PSBsaW1pdDsgaXIgKz0gNCkgewotCQkJCWR2ID0gKigodTMyICopaXIpOwotCQkJCWlmIChkdikgeworCQkJaWYgKElTX0FMSUdORUQoKHVpbnRwdHJfdClpciwgNCkpIHsKKwkJCQlmb3IgKDsgKGlyICsgNCkgPD0gbGltaXQ7IGlyICs9IDQpIHsKKwkJCQkJZHYgPSAqKCh1MzIgKilpcik7CisJCQkJCWlmIChkdikgewogIyAgaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pCi0JCQkJCWlyICs9IF9fYnVpbHRpbl9jdHooZHYpID4+IDM7CisJCQkJCQlpciArPSBfX2J1aWx0aW5fY3R6KGR2KSA+PiAzOwogIyAgZWxpZiBkZWZpbmVkKF9fQklHX0VORElBTikKLQkJCQkJaXIgKz0gX19idWlsdGluX2NseihkdikgPj4gMzsKKwkJCQkJCWlyICs9IF9fYnVpbHRpbl9jbHooZHYpID4+IDM7CiAjICBlbHNlCiAjICAgIGVycm9yICJtaXNzaW5nIGVuZGlhbiBkZWZpbml0aW9uIgogIyAgZW5kaWYKLQkJCQkJYnJlYWs7CisJCQkJCQlicmVhazsKKwkJCQkJfQogCQkJCX0KIAkJCX0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliL3JidHJlZV90ZXN0LmMgYi9saWIvcmJ0cmVlX3Rlc3QuYwppbmRleCA2MmI4ZWU5Li40MWFlM2M3IDEwMDY0NAotLS0gYS9saWIvcmJ0cmVlX3Rlc3QuYworKysgYi9saWIvcmJ0cmVlX3Rlc3QuYwpAQCAtNzcsMjYgKzc3LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlcmFzZV9jYWNoZWQoc3RydWN0IHRlc3Rfbm9kZSAqbm9kZSwgc3RydWN0IHJiX3Jvb3RfY2FjaGVkICpyCiB9CiAKIAotc3RhdGljIGlubGluZSB1MzIgYXVnbWVudF9yZWNvbXB1dGUoc3RydWN0IHRlc3Rfbm9kZSAqbm9kZSkKLXsKLQl1MzIgbWF4ID0gbm9kZS0+dmFsLCBjaGlsZF9hdWdtZW50ZWQ7Ci0JaWYgKG5vZGUtPnJiLnJiX2xlZnQpIHsKLQkJY2hpbGRfYXVnbWVudGVkID0gcmJfZW50cnkobm9kZS0+cmIucmJfbGVmdCwgc3RydWN0IHRlc3Rfbm9kZSwKLQkJCQkJICAgcmIpLT5hdWdtZW50ZWQ7Ci0JCWlmIChtYXggPCBjaGlsZF9hdWdtZW50ZWQpCi0JCQltYXggPSBjaGlsZF9hdWdtZW50ZWQ7Ci0JfQotCWlmIChub2RlLT5yYi5yYl9yaWdodCkgewotCQljaGlsZF9hdWdtZW50ZWQgPSByYl9lbnRyeShub2RlLT5yYi5yYl9yaWdodCwgc3RydWN0IHRlc3Rfbm9kZSwKLQkJCQkJICAgcmIpLT5hdWdtZW50ZWQ7Ci0JCWlmIChtYXggPCBjaGlsZF9hdWdtZW50ZWQpCi0JCQltYXggPSBjaGlsZF9hdWdtZW50ZWQ7Ci0JfQotCXJldHVybiBtYXg7Ci19CisjZGVmaW5lIE5PREVfVkFMKG5vZGUpICgobm9kZSktPnZhbCkKIAotUkJfREVDTEFSRV9DQUxMQkFDS1Moc3RhdGljLCBhdWdtZW50X2NhbGxiYWNrcywgc3RydWN0IHRlc3Rfbm9kZSwgcmIsCi0JCSAgICAgdTMyLCBhdWdtZW50ZWQsIGF1Z21lbnRfcmVjb21wdXRlKQorUkJfREVDTEFSRV9DQUxMQkFDS1NfTUFYKHN0YXRpYywgYXVnbWVudF9jYWxsYmFja3MsCisJCQkgc3RydWN0IHRlc3Rfbm9kZSwgcmIsIHUzMiwgYXVnbWVudGVkLCBOT0RFX1ZBTCkKIAogc3RhdGljIHZvaWQgaW5zZXJ0X2F1Z21lbnRlZChzdHJ1Y3QgdGVzdF9ub2RlICpub2RlLAogCQkJICAgICBzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgKnJvb3QpCkBAIC0yMzgsNyArMjIyLDIwIEBAIHN0YXRpYyB2b2lkIGNoZWNrX2F1Z21lbnRlZChpbnQgbnJfbm9kZXMpCiAJY2hlY2sobnJfbm9kZXMpOwogCWZvciAocmIgPSByYl9maXJzdCgmcm9vdC5yYl9yb290KTsgcmI7IHJiID0gcmJfbmV4dChyYikpIHsKIAkJc3RydWN0IHRlc3Rfbm9kZSAqbm9kZSA9IHJiX2VudHJ5KHJiLCBzdHJ1Y3QgdGVzdF9ub2RlLCByYik7Ci0JCVdBUk5fT05fT05DRShub2RlLT5hdWdtZW50ZWQgIT0gYXVnbWVudF9yZWNvbXB1dGUobm9kZSkpOworCQl1MzIgc3VidHJlZSwgbWF4ID0gbm9kZS0+dmFsOworCQlpZiAobm9kZS0+cmIucmJfbGVmdCkgeworCQkJc3VidHJlZSA9IHJiX2VudHJ5KG5vZGUtPnJiLnJiX2xlZnQsIHN0cnVjdCB0ZXN0X25vZGUsCisJCQkJCSAgIHJiKS0+YXVnbWVudGVkOworCQkJaWYgKG1heCA8IHN1YnRyZWUpCisJCQkJbWF4ID0gc3VidHJlZTsKKwkJfQorCQlpZiAobm9kZS0+cmIucmJfcmlnaHQpIHsKKwkJCXN1YnRyZWUgPSByYl9lbnRyeShub2RlLT5yYi5yYl9yaWdodCwgc3RydWN0IHRlc3Rfbm9kZSwKKwkJCQkJICAgcmIpLT5hdWdtZW50ZWQ7CisJCQlpZiAobWF4IDwgc3VidHJlZSkKKwkJCQltYXggPSBzdWJ0cmVlOworCQl9CisJCVdBUk5fT05fT05DRShub2RlLT5hdWdtZW50ZWQgIT0gbWF4KTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2xpYi9zaG93X21lbS5jIGIvbGliL3Nob3dfbWVtLmMKaW5kZXggNWM4NmVmNC4uMWMyNmMxNCAxMDA2NDQKLS0tIGEvbGliL3Nob3dfbWVtLmMKKysrIGIvbGliL3Nob3dfbWVtLmMKQEAgLTYsNyArNiw2IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvcXVpY2tsaXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvY21hLmg+CiAKIHZvaWQgc2hvd19tZW0odW5zaWduZWQgaW50IGZpbHRlciwgbm9kZW1hc2tfdCAqbm9kZW1hc2spCkBAIC0zOSwxMCArMzgsNiBAQCB2b2lkIHNob3dfbWVtKHVuc2lnbmVkIGludCBmaWx0ZXIsIG5vZGVtYXNrX3QgKm5vZGVtYXNrKQogI2lmZGVmIENPTkZJR19DTUEKIAlwcmludGsoIiVsdSBwYWdlcyBjbWEgcmVzZXJ2ZWRcbiIsIHRvdGFsY21hX3BhZ2VzKTsKICNlbmRpZgotI2lmZGVmIENPTkZJR19RVUlDS0xJU1QKLQlwcmludGsoIiVsdSBwYWdlcyBpbiBwYWdldGFibGUgY2FjaGVcbiIsCi0JCXF1aWNrbGlzdF90b3RhbF9zaXplKCkpOwotI2VuZGlmCiAjaWZkZWYgQ09ORklHX01FTU9SWV9GQUlMVVJFCiAJcHJpbnRrKCIlbHUgcGFnZXMgaHdwb2lzb25lZFxuIiwgYXRvbWljX2xvbmdfcmVhZCgmbnVtX3BvaXNvbmVkX3BhZ2VzKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYi9zdHJpbmcuYyBiL2xpYi9zdHJpbmcuYwppbmRleCA0NjFmYjYyLi5jZDdhMTBjIDEwMDY0NAotLS0gYS9saWIvc3RyaW5nLmMKKysrIGIvbGliL3N0cmluZy5jCkBAIC0xNzMsOCArMTczLDkgQEAgRVhQT1JUX1NZTUJPTChzdHJsY3B5KTsKICAqIGRvZXNuJ3QgdW5uZWNlc3NhcmlseSBmb3JjZSB0aGUgdGFpbCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIGJlCiAgKiB6ZXJvZWQuICBJZiB6ZXJvaW5nIGlzIGRlc2lyZWQgcGxlYXNlIHVzZSBzdHJzY3B5X3BhZCgpLgogICoKLSAqIFJldHVybjogVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGNvcGllZCAobm90IGluY2x1ZGluZyB0aGUgdHJhaWxpbmcKLSAqICAgICAgICAgJU5VTCkgb3IgLUUyQklHIGlmIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgd2Fzbid0IGJpZyBlbm91Z2guCisgKiBSZXR1cm5zOgorICogKiBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29waWVkIChub3QgaW5jbHVkaW5nIHRoZSB0cmFpbGluZyAlTlVMKQorICogKiAtRTJCSUcgaWYgY291bnQgaXMgMCBvciBAc3JjIHdhcyB0cnVuY2F0ZWQuCiAgKi8KIHNzaXplX3Qgc3Ryc2NweShjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBjb3VudCkKIHsKQEAgLTE4Miw3ICsxODMsNyBAQCBzc2l6ZV90IHN0cnNjcHkoY2hhciAqZGVzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3QgY291bnQpCiAJc2l6ZV90IG1heCA9IGNvdW50OwogCWxvbmcgcmVzID0gMDsKIAotCWlmIChjb3VudCA9PSAwKQorCWlmIChjb3VudCA9PSAwIHx8IFdBUk5fT05fT05DRShjb3VudCA+IElOVF9NQVgpKQogCQlyZXR1cm4gLUUyQklHOwogCiAjaWZkZWYgQ09ORklHX0hBVkVfRUZGSUNJRU5UX1VOQUxJR05FRF9BQ0NFU1MKQEAgLTI1Myw4ICsyNTQsOSBAQCBFWFBPUlRfU1lNQk9MKHN0cnNjcHkpOwogICogRm9yIGZ1bGwgZXhwbGFuYXRpb24gb2Ygd2h5IHlvdSBtYXkgd2FudCB0byBjb25zaWRlciB1c2luZyB0aGUKICAqICdzdHJzY3B5JyBmdW5jdGlvbnMgcGxlYXNlIHNlZSB0aGUgZnVuY3Rpb24gZG9jc3RyaW5nIGZvciBzdHJzY3B5KCkuCiAgKgotICogUmV0dXJuOiBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29waWVkIChub3QgaW5jbHVkaW5nIHRoZSB0cmFpbGluZwotICogICAgICAgICAlTlVMKSBvciAtRTJCSUcgaWYgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciB3YXNuJ3QgYmlnIGVub3VnaC4KKyAqIFJldHVybnM6CisgKiAqIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBjb3BpZWQgKG5vdCBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nICVOVUwpCisgKiAqIC1FMkJJRyBpZiBjb3VudCBpcyAwIG9yIEBzcmMgd2FzIHRydW5jYXRlZC4KICAqLwogc3NpemVfdCBzdHJzY3B5X3BhZChjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBjb3VudCkKIHsKZGlmZiAtLWdpdCBhL2xpYi9zdHJuY3B5X2Zyb21fdXNlci5jIGIvbGliL3N0cm5jcHlfZnJvbV91c2VyLmMKaW5kZXggMDIzYmE5Zi4uZGNjYjk1YSAxMDA2NDQKLS0tIGEvbGliL3N0cm5jcHlfZnJvbV91c2VyLmMKKysrIGIvbGliL3N0cm5jcHlfZnJvbV91c2VyLmMKQEAgLTYsNiArNiw3IEBACiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KIAogI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KICNpbmNsdWRlIDxhc20vd29yZC1hdC1hLXRpbWUuaD4KQEAgLTEwOCw3ICsxMDksNyBAQCBsb25nIHN0cm5jcHlfZnJvbV91c2VyKGNoYXIgKmRzdCwgY29uc3QgY2hhciBfX3VzZXIgKnNyYywgbG9uZyBjb3VudCkKIAkJcmV0dXJuIDA7CiAKIAltYXhfYWRkciA9IHVzZXJfYWRkcl9tYXgoKTsKLQlzcmNfYWRkciA9ICh1bnNpZ25lZCBsb25nKXNyYzsKKwlzcmNfYWRkciA9ICh1bnNpZ25lZCBsb25nKXVudGFnZ2VkX2FkZHIoc3JjKTsKIAlpZiAobGlrZWx5KHNyY19hZGRyIDwgbWF4X2FkZHIpKSB7CiAJCXVuc2lnbmVkIGxvbmcgbWF4ID0gbWF4X2FkZHIgLSBzcmNfYWRkcjsKIAkJbG9uZyByZXR2YWw7CmRpZmYgLS1naXQgYS9saWIvc3Rybmxlbl91c2VyLmMgYi9saWIvc3Rybmxlbl91c2VyLmMKaW5kZXggN2YyZGIzZi4uMjhmZjU1NCAxMDA2NDQKLS0tIGEvbGliL3N0cm5sZW5fdXNlci5jCisrKyBiL2xpYi9zdHJubGVuX3VzZXIuYwpAQCAtMiw2ICsyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KIAogI2luY2x1ZGUgPGFzbS93b3JkLWF0LWEtdGltZS5oPgogCkBAIC0xMDksNyArMTEwLDcgQEAgbG9uZyBzdHJubGVuX3VzZXIoY29uc3QgY2hhciBfX3VzZXIgKnN0ciwgbG9uZyBjb3VudCkKIAkJcmV0dXJuIDA7CiAKIAltYXhfYWRkciA9IHVzZXJfYWRkcl9tYXgoKTsKLQlzcmNfYWRkciA9ICh1bnNpZ25lZCBsb25nKXN0cjsKKwlzcmNfYWRkciA9ICh1bnNpZ25lZCBsb25nKXVudGFnZ2VkX2FkZHIoc3RyKTsKIAlpZiAobGlrZWx5KHNyY19hZGRyIDwgbWF4X2FkZHIpKSB7CiAJCXVuc2lnbmVkIGxvbmcgbWF4ID0gbWF4X2FkZHIgLSBzcmNfYWRkcjsKIAkJbG9uZyByZXR2YWw7CmRpZmYgLS1naXQgYS9saWIvdGVzdF9rYXNhbi5jIGIvbGliL3Rlc3Rfa2FzYW4uYwppbmRleCBiNjNiMzY3Li40OWNjNGQ1IDEwMDY0NAotLS0gYS9saWIvdGVzdF9rYXNhbi5jCisrKyBiL2xpYi90ZXN0X2thc2FuLmMKQEAgLTE4LDYgKzE4LDkgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisKKyNpbmNsdWRlIDxhc20vcGFnZS5oPgogCiAvKgogICogTm90ZTogdGVzdCBmdW5jdGlvbnMgYXJlIG1hcmtlZCBub2lubGluZSBzbyB0aGF0IHRoZWlyIG5hbWVzIGFwcGVhciBpbgpAQCAtMzM3LDYgKzM0MCw0MiBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQga21hbGxvY191YWYyKHZvaWQpCiAJa2ZyZWUocHRyMik7CiB9CiAKK3N0YXRpYyBub2lubGluZSB2b2lkIF9faW5pdCBrZnJlZV92aWFfcGFnZSh2b2lkKQoreworCWNoYXIgKnB0cjsKKwlzaXplX3Qgc2l6ZSA9IDg7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CisKKwlwcl9pbmZvKCJpbnZhbGlkLWZyZWUgZmFsc2UgcG9zaXRpdmUgKHZpYSBwYWdlKVxuIik7CisJcHRyID0ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXB0cikgeworCQlwcl9lcnIoIkFsbG9jYXRpb24gZmFpbGVkXG4iKTsKKwkJcmV0dXJuOworCX0KKworCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UocHRyKTsKKwlvZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShwdHIpOworCWtmcmVlKHBhZ2VfYWRkcmVzcyhwYWdlKSArIG9mZnNldCk7Cit9CisKK3N0YXRpYyBub2lubGluZSB2b2lkIF9faW5pdCBrZnJlZV92aWFfcGh5cyh2b2lkKQoreworCWNoYXIgKnB0cjsKKwlzaXplX3Qgc2l6ZSA9IDg7CisJcGh5c19hZGRyX3QgcGh5czsKKworCXByX2luZm8oImludmFsaWQtZnJlZSBmYWxzZSBwb3NpdGl2ZSAodmlhIHBoeXMpXG4iKTsKKwlwdHIgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworCWlmICghcHRyKSB7CisJCXByX2VycigiQWxsb2NhdGlvbiBmYWlsZWRcbiIpOworCQlyZXR1cm47CisJfQorCisJcGh5cyA9IHZpcnRfdG9fcGh5cyhwdHIpOworCWtmcmVlKHBoeXNfdG9fdmlydChwaHlzKSk7Cit9CisKIHN0YXRpYyBub2lubGluZSB2b2lkIF9faW5pdCBrbWVtX2NhY2hlX29vYih2b2lkKQogewogCWNoYXIgKnA7CkBAIC03MzcsNiArNzc2LDggQEAgc3RhdGljIGludCBfX2luaXQga21hbGxvY190ZXN0c19pbml0KHZvaWQpCiAJa21hbGxvY191YWYoKTsKIAlrbWFsbG9jX3VhZl9tZW1zZXQoKTsKIAlrbWFsbG9jX3VhZjIoKTsKKwlrZnJlZV92aWFfcGFnZSgpOworCWtmcmVlX3ZpYV9waHlzKCk7CiAJa21lbV9jYWNoZV9vb2IoKTsKIAltZW1jZ19hY2NvdW50ZWRfa21lbV9jYWNoZSgpOwogCWthc2FuX3N0YWNrX29vYigpOwpkaWZmIC0tZ2l0IGEvbGliL3Rlc3RfcHJpbnRmLmMgYi9saWIvdGVzdF9wcmludGYuYwppbmRleCA5NDRlYjUwLi41ZDk0Y2JmIDEwMDY0NAotLS0gYS9saWIvdGVzdF9wcmludGYuYworKysgYi9saWIvdGVzdF9wcmludGYuYwpAQCAtNDU1LDYgKzQ1NSwxMSBAQCBkZW50cnkodm9pZCkKIAl0ZXN0KCJmb28iLCAiJXBkIiwgJnRlc3RfZGVudHJ5WzBdKTsKIAl0ZXN0KCJmb28iLCAiJXBkMiIsICZ0ZXN0X2RlbnRyeVswXSk7CiAKKwl0ZXN0KCIobnVsbCkiLCAiJXBkIiwgTlVMTCk7CisJdGVzdCgiKGVmYXVsdCkiLCAiJXBkIiwgUFRSX0lOVkFMSUQpOworCXRlc3QoIihudWxsKSIsICIlcEQiLCBOVUxMKTsKKwl0ZXN0KCIoZWZhdWx0KSIsICIlcEQiLCBQVFJfSU5WQUxJRCk7CisKIAl0ZXN0KCJyb21lbyIsICIlcGQiLCAmdGVzdF9kZW50cnlbM10pOwogCXRlc3QoImFsZmEvcm9tZW8iLCAiJXBkMiIsICZ0ZXN0X2RlbnRyeVszXSk7CiAJdGVzdCgiYnJhdm8vYWxmYS9yb21lbyIsICIlcGQzIiwgJnRlc3RfZGVudHJ5WzNdKTsKZGlmZiAtLWdpdCBhL2xpYi92c3ByaW50Zi5jIGIvbGliL3ZzcHJpbnRmLmMKaW5kZXggYjA5NjdjZi4uZTc4MDE3YSAxMDA2NDQKLS0tIGEvbGliL3ZzcHJpbnRmLmMKKysrIGIvbGliL3ZzcHJpbnRmLmMKQEAgLTg2OSw2ICs4NjksMTUgQEAgY2hhciAqZGVudHJ5X25hbWUoY2hhciAqYnVmLCBjaGFyICplbmQsIGNvbnN0IHN0cnVjdCBkZW50cnkgKmQsIHN0cnVjdCBwcmludGZfc3AKIAlyZXR1cm4gd2lkZW5fc3RyaW5nKGJ1ZiwgbiwgZW5kLCBzcGVjKTsKIH0KIAorc3RhdGljIG5vaW5saW5lX2Zvcl9zdGFjaworY2hhciAqZmlsZV9kZW50cnlfbmFtZShjaGFyICpidWYsIGNoYXIgKmVuZCwgY29uc3Qgc3RydWN0IGZpbGUgKmYsCisJCQlzdHJ1Y3QgcHJpbnRmX3NwZWMgc3BlYywgY29uc3QgY2hhciAqZm10KQoreworCWlmIChjaGVja19wb2ludGVyKCZidWYsIGVuZCwgZiwgc3BlYykpCisJCXJldHVybiBidWY7CisKKwlyZXR1cm4gZGVudHJ5X25hbWUoYnVmLCBlbmQsIGYtPmZfcGF0aC5kZW50cnksIHNwZWMsIGZtdCk7Cit9CiAjaWZkZWYgQ09ORklHX0JMT0NLCiBzdGF0aWMgbm9pbmxpbmVfZm9yX3N0YWNrCiBjaGFyICpiZGV2X25hbWUoY2hhciAqYnVmLCBjaGFyICplbmQsIHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsCkBAIC0yMTY2LDkgKzIxNzUsNyBAQCBjaGFyICpwb2ludGVyKGNvbnN0IGNoYXIgKmZtdCwgY2hhciAqYnVmLCBjaGFyICplbmQsIHZvaWQgKnB0ciwKIAljYXNlICdDJzoKIAkJcmV0dXJuIGNsb2NrKGJ1ZiwgZW5kLCBwdHIsIHNwZWMsIGZtdCk7CiAJY2FzZSAnRCc6Ci0JCXJldHVybiBkZW50cnlfbmFtZShidWYsIGVuZCwKLQkJCQkgICAoKGNvbnN0IHN0cnVjdCBmaWxlICopcHRyKS0+Zl9wYXRoLmRlbnRyeSwKLQkJCQkgICBzcGVjLCBmbXQpOworCQlyZXR1cm4gZmlsZV9kZW50cnlfbmFtZShidWYsIGVuZCwgcHRyLCBzcGVjLCBmbXQpOwogI2lmZGVmIENPTkZJR19CTE9DSwogCWNhc2UgJ2cnOgogCQlyZXR1cm4gYmRldl9uYW1lKGJ1ZiwgZW5kLCBwdHIsIHNwZWMsIGZtdCk7CmRpZmYgLS1naXQgYS9saWIvenN0ZC9tZW0uaCBiL2xpYi96c3RkL21lbS5oCmluZGV4IDNhMGYzNGMuLjkzZDdhMmMgMTAwNjQ0Ci0tLSBhL2xpYi96c3RkL21lbS5oCisrKyBiL2xpYi96c3RkL21lbS5oCkBAIC0yNyw3ICsyNyw3IEBACiAvKi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICBDb21waWxlciBzcGVjaWZpY3MKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgWlNURF9TVEFUSUMgc3RhdGljIF9faW5saW5lIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCisjZGVmaW5lIFpTVERfU1RBVElDIHN0YXRpYyBpbmxpbmUKIAogLyotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogIEJhc2ljIFR5cGVzCmRpZmYgLS1naXQgYS9tbS9LY29uZmlnIGIvbW0vS2NvbmZpZwppbmRleCA1NmNlYzYzLi5hNWRhZTlhIDEwMDY0NAotLS0gYS9tbS9LY29uZmlnCisrKyBiL21tL0tjb25maWcKQEAgLTI3MywxMSArMjczLDYgQEAKIAkgIGJ5IGRlZmF1bHQgd2hlbiBaT05FX0RNQSBvciBISUdITUVNIGlzIHNlbGVjdGVkLCBidXQgeW91CiAJICBtYXkgc2F5IG4gdG8gb3ZlcnJpZGUgdGhpcy4KIAotY29uZmlnIE5SX1FVSUNLCi0JaW50Ci0JZGVwZW5kcyBvbiBRVUlDS0xJU1QKLQlkZWZhdWx0ICIxIgotCiBjb25maWcgVklSVF9UT19CVVMKIAlib29sCiAJaGVscApAQCAtNjY5LDIzICs2NjQsMTcgQEAKIAogCSAgSWYgRlNfREFYIGlzIGVuYWJsZWQsIHRoZW4gc2F5IFkuCiAKLWNvbmZpZyBNSUdSQVRFX1ZNQV9IRUxQRVIKLQlib29sCi0KIGNvbmZpZyBERVZfUEFHRU1BUF9PUFMKIAlib29sCiAKKyMKKyMgSGVscGVycyB0byBtaXJyb3IgcmFuZ2Ugb2YgdGhlIENQVSBwYWdlIHRhYmxlcyBvZiBhIHByb2Nlc3MgaW50byBkZXZpY2UgcGFnZQorIyB0YWJsZXMuCisjCiBjb25maWcgSE1NX01JUlJPUgotCWJvb2wgIkhNTSBtaXJyb3IgQ1BVIHBhZ2UgdGFibGUgaW50byBhIGRldmljZSBwYWdlIHRhYmxlIgotCWRlcGVuZHMgb24gKFg4Nl82NCB8fCBQUEM2NCkKLQlkZXBlbmRzIG9uIE1NVSAmJiA2NEJJVAotCXNlbGVjdCBNTVVfTk9USUZJRVIKLQloZWxwCi0JICBTZWxlY3QgSE1NX01JUlJPUiBpZiB5b3Ugd2FudCB0byBtaXJyb3IgcmFuZ2Ugb2YgdGhlIENQVSBwYWdlIHRhYmxlIG9mIGEKLQkgIHByb2Nlc3MgaW50byBhIGRldmljZSBwYWdlIHRhYmxlLiBIZXJlLCBtaXJyb3IgbWVhbnMgImtlZXAgc3luY2hyb25pemVkIi4KLQkgIFByZXJlcXVpc2l0ZXM6IHRoZSBkZXZpY2UgbXVzdCBwcm92aWRlIHRoZSBhYmlsaXR5IHRvIHdyaXRlLXByb3RlY3QgaXRzCi0JICBwYWdlIHRhYmxlcyAoYXQgUEFHRV9TSVpFIGdyYW51bGFyaXR5KSwgYW5kIG11c3QgYmUgYWJsZSB0byByZWNvdmVyIGZyb20KLQkgIHRoZSByZXN1bHRpbmcgcG90ZW50aWFsIHBhZ2UgZmF1bHRzLgorCWJvb2wKKwlkZXBlbmRzIG9uIE1NVQorCWRlcGVuZHMgb24gTU1VX05PVElGSUVSCiAKIGNvbmZpZyBERVZJQ0VfUFJJVkFURQogCWJvb2wgIlVuYWRkcmVzc2FibGUgZGV2aWNlIG1lbW9yeSAoR1BVIG1lbW9yeSwgLi4uKSIKQEAgLTcyMyw2ICs3MTIsMTcgQEAKIGNvbmZpZyBHVVBfR0VUX1BURV9MT1dfSElHSAogCWJvb2wKIAorY29uZmlnIFJFQURfT05MWV9USFBfRk9SX0ZTCisJYm9vbCAiUmVhZC1vbmx5IFRIUCBmb3IgZmlsZXN5c3RlbXMgKEVYUEVSSU1FTlRBTCkiCisJZGVwZW5kcyBvbiBUUkFOU1BBUkVOVF9IVUdFX1BBR0VDQUNIRSAmJiBTSE1FTQorCisJaGVscAorCSAgQWxsb3cga2h1Z2VwYWdlZCB0byBwdXQgcmVhZC1vbmx5IGZpbGUtYmFja2VkIHBhZ2VzIGluIFRIUC4KKworCSAgVGhpcyBpcyBtYXJrZWQgZXhwZXJpbWVudGFsIGJlY2F1c2UgaXQgaXMgYSBuZXcgZmVhdHVyZS4gV3JpdGUKKwkgIHN1cHBvcnQgb2YgZmlsZSBUSFBzIHdpbGwgYmUgZGV2ZWxvcGVkIGluIHRoZSBuZXh0IGZldyByZWxlYXNlCisJICBjeWNsZXMuCisKIGNvbmZpZyBBUkNIX0hBU19QVEVfU1BFQ0lBTAogCWJvb2wKIApkaWZmIC0tZ2l0IGEvbW0vS2NvbmZpZy5kZWJ1ZyBiL21tL0tjb25maWcuZGVidWcKaW5kZXggODJiNmEyMC4uMzI3YjNlYiAxMDA2NDQKLS0tIGEvbW0vS2NvbmZpZy5kZWJ1ZworKysgYi9tbS9LY29uZmlnLmRlYnVnCkBAIC0yMSw3ICsyMSw5IEBACiAJICBBbHNvLCB0aGUgc3RhdGUgb2YgcGFnZSB0cmFja2luZyBzdHJ1Y3R1cmVzIGlzIGNoZWNrZWQgbW9yZSBvZnRlbiBhcwogCSAgcGFnZXMgYXJlIGJlaW5nIGFsbG9jYXRlZCBhbmQgZnJlZWQsIGFzIHVuZXhwZWN0ZWQgc3RhdGUgY2hhbmdlcwogCSAgb2Z0ZW4gaGFwcGVuIGZvciBzYW1lIHJlYXNvbnMgYXMgbWVtb3J5IGNvcnJ1cHRpb24gKGUuZy4gZG91YmxlIGZyZWUsCi0JICB1c2UtYWZ0ZXItZnJlZSkuCisJICB1c2UtYWZ0ZXItZnJlZSkuIFRoZSBlcnJvciByZXBvcnRzIGZvciB0aGVzZSBjaGVja3MgY2FuIGJlIGF1Z21lbnRlZAorCSAgd2l0aCBzdGFjayB0cmFjZXMgb2YgbGFzdCBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIHRoZSBwYWdlLCB3aGVuCisJICBQQUdFX09XTkVSIGlzIGFsc28gc2VsZWN0ZWQgYW5kIGVuYWJsZWQgb24gYm9vdC4KIAogCSAgRm9yIGFyY2hpdGVjdHVyZXMgd2hpY2ggZG9uJ3QgZW5hYmxlIEFSQ0hfU1VQUE9SVFNfREVCVUdfUEFHRUFMTE9DLAogCSAgZmlsbCB0aGUgcGFnZXMgd2l0aCBwb2lzb24gcGF0dGVybnMgYWZ0ZXIgZnJlZV9wYWdlcygpIGFuZCB2ZXJpZnkKZGlmZiAtLWdpdCBhL21tL01ha2VmaWxlIGIvbW0vTWFrZWZpbGUKaW5kZXggZDBiMjk1Yy4uZDk5Njg0NiAxMDA2NDQKLS0tIGEvbW0vTWFrZWZpbGUKKysrIGIvbW0vTWFrZWZpbGUKQEAgLTIxLDYgKzIxLDkgQEAKIEtDT1ZfSU5TVFJVTUVOVF9tbXpvbmUubyA6PSBuCiBLQ09WX0lOU1RSVU1FTlRfdm1zdGF0Lm8gOj0gbgogCitDRkxBR1NfaW5pdC1tbS5vICs9ICQoY2FsbCBjYy1kaXNhYmxlLXdhcm5pbmcsIG92ZXJyaWRlLWluaXQpCitDRkxBR1NfaW5pdC1tbS5vICs9ICQoY2FsbCBjYy1kaXNhYmxlLXdhcm5pbmcsIGluaXRpYWxpemVyLW92ZXJyaWRlcykKKwogbW11LXkJCQk6PSBub21tdS5vCiBtbXUtJChDT05GSUdfTU1VKQk6PSBoaWdobWVtLm8gbWVtb3J5Lm8gbWluY29yZS5vIFwKIAkJCSAgIG1sb2NrLm8gbW1hcC5vIG1tdV9nYXRoZXIubyBtcHJvdGVjdC5vIG1yZW1hcC5vIFwKQEAgLTcyLDcgKzc1LDYgQEAKIG9iai0kKENPTkZJR19NRU1PUllfSE9UUExVRykgKz0gbWVtb3J5X2hvdHBsdWcubwogb2JqLSQoQ09ORklHX01FTVRFU1QpCQkrPSBtZW10ZXN0Lm8KIG9iai0kKENPTkZJR19NSUdSQVRJT04pICs9IG1pZ3JhdGUubwotb2JqLSQoQ09ORklHX1FVSUNLTElTVCkgKz0gcXVpY2tsaXN0Lm8KIG9iai0kKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSkgKz0gaHVnZV9tZW1vcnkubyBraHVnZXBhZ2VkLm8KIG9iai0kKENPTkZJR19QQUdFX0NPVU5URVIpICs9IHBhZ2VfY291bnRlci5vCiBvYmotJChDT05GSUdfTUVNQ0cpICs9IG1lbWNvbnRyb2wubyB2bXByZXNzdXJlLm8KZGlmZiAtLWdpdCBhL21tL2NvbXBhY3Rpb24uYyBiL21tL2NvbXBhY3Rpb24uYwppbmRleCA5NTJkYzJmLi5jZTA4YjM5IDEwMDY0NAotLS0gYS9tbS9jb21wYWN0aW9uLmMKKysrIGIvbW0vY29tcGFjdGlvbi5jCkBAIC05NjksNyArOTY5LDcgQEAgaXNvbGF0ZV9taWdyYXRlcGFnZXNfYmxvY2soc3RydWN0IGNvbXBhY3RfY29udHJvbCAqY2MsIHVuc2lnbmVkIGxvbmcgbG93X3BmbiwKIAkJCSAqIGlzIHNhZmUgdG8gcmVhZCBhbmQgaXQncyAwIGZvciB0YWlsIHBhZ2VzLgogCQkJICovCiAJCQlpZiAodW5saWtlbHkoUGFnZUNvbXBvdW5kKHBhZ2UpKSkgewotCQkJCWxvd19wZm4gKz0gKDFVTCA8PCBjb21wb3VuZF9vcmRlcihwYWdlKSkgLSAxOworCQkJCWxvd19wZm4gKz0gY29tcG91bmRfbnIocGFnZSkgLSAxOwogCQkJCWdvdG8gaXNvbGF0ZV9mYWlsOwogCQkJfQogCQl9CkBAIC0xNzM3LDggKzE3MzcsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBmYXN0X2ZpbmRfbWlncmF0ZWJsb2NrKHN0cnVjdCBjb21wYWN0X2NvbnRyb2wgKmNjKQogICogc3RhcnRpbmcgYXQgdGhlIGJsb2NrIHBvaW50ZWQgdG8gYnkgdGhlIG1pZ3JhdGUgc2Nhbm5lciBwZm4gd2l0aGluCiAgKiBjb21wYWN0X2NvbnRyb2wuCiAgKi8KLXN0YXRpYyBpc29sYXRlX21pZ3JhdGVfdCBpc29sYXRlX21pZ3JhdGVwYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSwKLQkJCQkJc3RydWN0IGNvbXBhY3RfY29udHJvbCAqY2MpCitzdGF0aWMgaXNvbGF0ZV9taWdyYXRlX3QgaXNvbGF0ZV9taWdyYXRlcGFnZXMoc3RydWN0IGNvbXBhY3RfY29udHJvbCAqY2MpCiB7CiAJdW5zaWduZWQgbG9uZyBibG9ja19zdGFydF9wZm47CiAJdW5zaWduZWQgbG9uZyBibG9ja19lbmRfcGZuOwpAQCAtMTc1Niw4ICsxNzU1LDggQEAgc3RhdGljIGlzb2xhdGVfbWlncmF0ZV90IGlzb2xhdGVfbWlncmF0ZXBhZ2VzKHN0cnVjdCB6b25lICp6b25lLAogCSAqLwogCWxvd19wZm4gPSBmYXN0X2ZpbmRfbWlncmF0ZWJsb2NrKGNjKTsKIAlibG9ja19zdGFydF9wZm4gPSBwYWdlYmxvY2tfc3RhcnRfcGZuKGxvd19wZm4pOwotCWlmIChibG9ja19zdGFydF9wZm4gPCB6b25lLT56b25lX3N0YXJ0X3BmbikKLQkJYmxvY2tfc3RhcnRfcGZuID0gem9uZS0+em9uZV9zdGFydF9wZm47CisJaWYgKGJsb2NrX3N0YXJ0X3BmbiA8IGNjLT56b25lLT56b25lX3N0YXJ0X3BmbikKKwkJYmxvY2tfc3RhcnRfcGZuID0gY2MtPnpvbmUtPnpvbmVfc3RhcnRfcGZuOwogCiAJLyoKIAkgKiBmYXN0X2ZpbmRfbWlncmF0ZWJsb2NrIG1hcmtzIGEgcGFnZWJsb2NrIHNraXBwZWQgc28gdG8gYXZvaWQKQEAgLTE3ODcsOCArMTc4Niw4IEBAIHN0YXRpYyBpc29sYXRlX21pZ3JhdGVfdCBpc29sYXRlX21pZ3JhdGVwYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSwKIAkJaWYgKCEobG93X3BmbiAlIChTV0FQX0NMVVNURVJfTUFYICogcGFnZWJsb2NrX25yX3BhZ2VzKSkpCiAJCQljb25kX3Jlc2NoZWQoKTsKIAotCQlwYWdlID0gcGFnZWJsb2NrX3Bmbl90b19wYWdlKGJsb2NrX3N0YXJ0X3BmbiwgYmxvY2tfZW5kX3BmbiwKLQkJCQkJCQkJCXpvbmUpOworCQlwYWdlID0gcGFnZWJsb2NrX3Bmbl90b19wYWdlKGJsb2NrX3N0YXJ0X3BmbiwKKwkJCQkJCWJsb2NrX2VuZF9wZm4sIGNjLT56b25lKTsKIAkJaWYgKCFwYWdlKQogCQkJY29udGludWU7CiAKQEAgLTIwNzgsNiArMjA3NywxNyBAQCBjb21wYWN0X3pvbmUoc3RydWN0IGNvbXBhY3RfY29udHJvbCAqY2MsIHN0cnVjdCBjYXB0dXJlX2NvbnRyb2wgKmNhcGMpCiAJY29uc3QgYm9vbCBzeW5jID0gY2MtPm1vZGUgIT0gTUlHUkFURV9BU1lOQzsKIAlib29sIHVwZGF0ZV9jYWNoZWQ7CiAKKwkvKgorCSAqIFRoZXNlIGNvdW50ZXJzIHRyYWNrIGFjdGl2aXRpZXMgZHVyaW5nIHpvbmUgY29tcGFjdGlvbi4gIEluaXRpYWxpemUKKwkgKiB0aGVtIGJlZm9yZSBjb21wYWN0aW5nIGEgbmV3IHpvbmUuCisJICovCisJY2MtPnRvdGFsX21pZ3JhdGVfc2Nhbm5lZCA9IDA7CisJY2MtPnRvdGFsX2ZyZWVfc2Nhbm5lZCA9IDA7CisJY2MtPm5yX21pZ3JhdGVwYWdlcyA9IDA7CisJY2MtPm5yX2ZyZWVwYWdlcyA9IDA7CisJSU5JVF9MSVNUX0hFQUQoJmNjLT5mcmVlcGFnZXMpOworCUlOSVRfTElTVF9IRUFEKCZjYy0+bWlncmF0ZXBhZ2VzKTsKKwogCWNjLT5taWdyYXRldHlwZSA9IGdmcGZsYWdzX3RvX21pZ3JhdGV0eXBlKGNjLT5nZnBfbWFzayk7CiAJcmV0ID0gY29tcGFjdGlvbl9zdWl0YWJsZShjYy0+em9uZSwgY2MtPm9yZGVyLCBjYy0+YWxsb2NfZmxhZ3MsCiAJCQkJCQkJY2MtPmNsYXNzem9uZV9pZHgpOwpAQCAtMjE1OCw3ICsyMTY4LDcgQEAgY29tcGFjdF96b25lKHN0cnVjdCBjb21wYWN0X2NvbnRyb2wgKmNjLCBzdHJ1Y3QgY2FwdHVyZV9jb250cm9sICpjYXBjKQogCQkJY2MtPnJlc2NhbiA9IHRydWU7CiAJCX0KIAotCQlzd2l0Y2ggKGlzb2xhdGVfbWlncmF0ZXBhZ2VzKGNjLT56b25lLCBjYykpIHsKKwkJc3dpdGNoIChpc29sYXRlX21pZ3JhdGVwYWdlcyhjYykpIHsKIAkJY2FzZSBJU09MQVRFX0FCT1JUOgogCQkJcmV0ID0gQ09NUEFDVF9DT05URU5ERUQ7CiAJCQlwdXRiYWNrX21vdmFibGVfcGFnZXMoJmNjLT5taWdyYXRlcGFnZXMpOwpAQCAtMjI4MSwxMCArMjI5MSw2IEBAIHN0YXRpYyBlbnVtIGNvbXBhY3RfcmVzdWx0IGNvbXBhY3Rfem9uZV9vcmRlcihzdHJ1Y3Qgem9uZSAqem9uZSwgaW50IG9yZGVyLAogewogCWVudW0gY29tcGFjdF9yZXN1bHQgcmV0OwogCXN0cnVjdCBjb21wYWN0X2NvbnRyb2wgY2MgPSB7Ci0JCS5ucl9mcmVlcGFnZXMgPSAwLAotCQkubnJfbWlncmF0ZXBhZ2VzID0gMCwKLQkJLnRvdGFsX21pZ3JhdGVfc2Nhbm5lZCA9IDAsCi0JCS50b3RhbF9mcmVlX3NjYW5uZWQgPSAwLAogCQkub3JkZXIgPSBvcmRlciwKIAkJLnNlYXJjaF9vcmRlciA9IG9yZGVyLAogCQkuZ2ZwX21hc2sgPSBnZnBfbWFzaywKQEAgLTIzMDUsOCArMjMxMSw2IEBAIHN0YXRpYyBlbnVtIGNvbXBhY3RfcmVzdWx0IGNvbXBhY3Rfem9uZV9vcmRlcihzdHJ1Y3Qgem9uZSAqem9uZSwgaW50IG9yZGVyLAogCiAJaWYgKGNhcHR1cmUpCiAJCWN1cnJlbnQtPmNhcHR1cmVfY29udHJvbCA9ICZjYXBjOwotCUlOSVRfTElTVF9IRUFEKCZjYy5mcmVlcGFnZXMpOwotCUlOSVRfTElTVF9IRUFEKCZjYy5taWdyYXRlcGFnZXMpOwogCiAJcmV0ID0gY29tcGFjdF96b25lKCZjYywgJmNhcGMpOwogCkBAIC0yNDA4LDggKzI0MTIsNiBAQCBzdGF0aWMgdm9pZCBjb21wYWN0X25vZGUoaW50IG5pZCkKIAlzdHJ1Y3Qgem9uZSAqem9uZTsKIAlzdHJ1Y3QgY29tcGFjdF9jb250cm9sIGNjID0gewogCQkub3JkZXIgPSAtMSwKLQkJLnRvdGFsX21pZ3JhdGVfc2Nhbm5lZCA9IDAsCi0JCS50b3RhbF9mcmVlX3NjYW5uZWQgPSAwLAogCQkubW9kZSA9IE1JR1JBVEVfU1lOQywKIAkJLmlnbm9yZV9za2lwX2hpbnQgPSB0cnVlLAogCQkud2hvbGVfem9uZSA9IHRydWUsCkBAIC0yNDIzLDExICsyNDI1LDcgQEAgc3RhdGljIHZvaWQgY29tcGFjdF9ub2RlKGludCBuaWQpCiAJCWlmICghcG9wdWxhdGVkX3pvbmUoem9uZSkpCiAJCQljb250aW51ZTsKIAotCQljYy5ucl9mcmVlcGFnZXMgPSAwOwotCQljYy5ucl9taWdyYXRlcGFnZXMgPSAwOwogCQljYy56b25lID0gem9uZTsKLQkJSU5JVF9MSVNUX0hFQUQoJmNjLmZyZWVwYWdlcyk7Ci0JCUlOSVRfTElTVF9IRUFEKCZjYy5taWdyYXRlcGFnZXMpOwogCiAJCWNvbXBhY3Rfem9uZSgmY2MsIE5VTEwpOwogCkBAIC0yNTI5LDggKzI1MjcsNiBAQCBzdGF0aWMgdm9pZCBrY29tcGFjdGRfZG9fd29yayhwZ19kYXRhX3QgKnBnZGF0KQogCXN0cnVjdCBjb21wYWN0X2NvbnRyb2wgY2MgPSB7CiAJCS5vcmRlciA9IHBnZGF0LT5rY29tcGFjdGRfbWF4X29yZGVyLAogCQkuc2VhcmNoX29yZGVyID0gcGdkYXQtPmtjb21wYWN0ZF9tYXhfb3JkZXIsCi0JCS50b3RhbF9taWdyYXRlX3NjYW5uZWQgPSAwLAotCQkudG90YWxfZnJlZV9zY2FubmVkID0gMCwKIAkJLmNsYXNzem9uZV9pZHggPSBwZ2RhdC0+a2NvbXBhY3RkX2NsYXNzem9uZV9pZHgsCiAJCS5tb2RlID0gTUlHUkFURV9TWU5DX0xJR0hULAogCQkuaWdub3JlX3NraXBfaGludCA9IGZhbHNlLApAQCAtMjU1NCwxNiArMjU1MCwxMCBAQCBzdGF0aWMgdm9pZCBrY29tcGFjdGRfZG9fd29yayhwZ19kYXRhX3QgKnBnZGF0KQogCQkJCQkJCUNPTVBBQ1RfQ09OVElOVUUpCiAJCQljb250aW51ZTsKIAotCQljYy5ucl9mcmVlcGFnZXMgPSAwOwotCQljYy5ucl9taWdyYXRlcGFnZXMgPSAwOwotCQljYy50b3RhbF9taWdyYXRlX3NjYW5uZWQgPSAwOwotCQljYy50b3RhbF9mcmVlX3NjYW5uZWQgPSAwOwotCQljYy56b25lID0gem9uZTsKLQkJSU5JVF9MSVNUX0hFQUQoJmNjLmZyZWVwYWdlcyk7Ci0JCUlOSVRfTElTVF9IRUFEKCZjYy5taWdyYXRlcGFnZXMpOwotCiAJCWlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCiAJCQlyZXR1cm47CisKKwkJY2Muem9uZSA9IHpvbmU7CiAJCXN0YXR1cyA9IGNvbXBhY3Rfem9uZSgmY2MsIE5VTEwpOwogCiAJCWlmIChzdGF0dXMgPT0gQ09NUEFDVF9TVUNDRVNTKSB7CmRpZmYgLS1naXQgYS9tbS9maWxlbWFwLmMgYi9tbS9maWxlbWFwLmMKaW5kZXggNDA2NjdjMi4uMTE0NmZjZiAxMDA2NDQKLS0tIGEvbW0vZmlsZW1hcC5jCisrKyBiL21tL2ZpbGVtYXAuYwpAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyB2b2lkIHBhZ2VfY2FjaGVfZGVsZXRlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCS8qIGh1Z2V0bGIgcGFnZXMgYXJlIHJlcHJlc2VudGVkIGJ5IGEgc2luZ2xlIGVudHJ5IGluIHRoZSB4YXJyYXkgKi8KIAlpZiAoIVBhZ2VIdWdlKHBhZ2UpKSB7CiAJCXhhc19zZXRfb3JkZXIoJnhhcywgcGFnZS0+aW5kZXgsIGNvbXBvdW5kX29yZGVyKHBhZ2UpKTsKLQkJbnIgPSAxVSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKTsKKwkJbnIgPSBjb21wb3VuZF9ucihwYWdlKTsKIAl9CiAKIAlWTV9CVUdfT05fUEFHRSghUGFnZUxvY2tlZChwYWdlKSwgcGFnZSk7CkBAIC0yMDMsOCArMjAzLDkgQEAgc3RhdGljIHZvaWQgdW5hY2NvdW50X3BhZ2VfY2FjaGVfcGFnZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJX19tb2Rfbm9kZV9wYWdlX3N0YXRlKHBhZ2VfcGdkYXQocGFnZSksIE5SX1NITUVNLCAtbnIpOwogCQlpZiAoUGFnZVRyYW5zSHVnZShwYWdlKSkKIAkJCV9fZGVjX25vZGVfcGFnZV9zdGF0ZShwYWdlLCBOUl9TSE1FTV9USFBTKTsKLQl9IGVsc2UgewotCQlWTV9CVUdfT05fUEFHRShQYWdlVHJhbnNIdWdlKHBhZ2UpLCBwYWdlKTsKKwl9IGVsc2UgaWYgKFBhZ2VUcmFuc0h1Z2UocGFnZSkpIHsKKwkJX19kZWNfbm9kZV9wYWdlX3N0YXRlKHBhZ2UsIE5SX0ZJTEVfVEhQUyk7CisJCWZpbGVtYXBfbnJfdGhwc19kZWMobWFwcGluZyk7CiAJfQogCiAJLyoKQEAgLTI4MSwxMSArMjgyLDExIEBAIEVYUE9SVF9TWU1CT0woZGVsZXRlX2Zyb21fcGFnZV9jYWNoZSk7CiAgKiBAcHZlYzogcGFnZXZlYyB3aXRoIHBhZ2VzIHRvIGRlbGV0ZQogICoKICAqIFRoZSBmdW5jdGlvbiB3YWxrcyBvdmVyIG1hcHBpbmctPmlfcGFnZXMgYW5kIHJlbW92ZXMgcGFnZXMgcGFzc2VkIGluIEBwdmVjCi0gKiBmcm9tIHRoZSBtYXBwaW5nLiBUaGUgZnVuY3Rpb24gZXhwZWN0cyBAcHZlYyB0byBiZSBzb3J0ZWQgYnkgcGFnZSBpbmRleC4KKyAqIGZyb20gdGhlIG1hcHBpbmcuIFRoZSBmdW5jdGlvbiBleHBlY3RzIEBwdmVjIHRvIGJlIHNvcnRlZCBieSBwYWdlIGluZGV4CisgKiBhbmQgaXMgb3B0aW1pc2VkIGZvciBpdCB0byBiZSBkZW5zZS4KICAqIEl0IHRvbGVyYXRlcyBob2xlcyBpbiBAcHZlYyAobWFwcGluZyBlbnRyaWVzIGF0IHRob3NlIGluZGljZXMgYXJlIG5vdAogICogbW9kaWZpZWQpLiBUaGUgZnVuY3Rpb24gZXhwZWN0cyBvbmx5IFRIUCBoZWFkIHBhZ2VzIHRvIGJlIHByZXNlbnQgaW4gdGhlCi0gKiBAcHZlYyBhbmQgdGFrZXMgY2FyZSB0byBkZWxldGUgYWxsIGNvcnJlc3BvbmRpbmcgdGFpbCBwYWdlcyBmcm9tIHRoZQotICogbWFwcGluZyBhcyB3ZWxsLgorICogQHB2ZWMuCiAgKgogICogVGhlIGZ1bmN0aW9uIGV4cGVjdHMgdGhlIGlfcGFnZXMgbG9jayB0byBiZSBoZWxkLgogICovCkBAIC0yOTQsNDAgKzI5NSw0MyBAQCBzdGF0aWMgdm9pZCBwYWdlX2NhY2hlX2RlbGV0ZV9iYXRjaChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIHsKIAlYQV9TVEFURSh4YXMsICZtYXBwaW5nLT5pX3BhZ2VzLCBwdmVjLT5wYWdlc1swXS0+aW5kZXgpOwogCWludCB0b3RhbF9wYWdlcyA9IDA7Ci0JaW50IGkgPSAwLCB0YWlsX3BhZ2VzID0gMDsKKwlpbnQgaSA9IDA7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKIAltYXBwaW5nX3NldF91cGRhdGUoJnhhcywgbWFwcGluZyk7CiAJeGFzX2Zvcl9lYWNoKCZ4YXMsIHBhZ2UsIFVMT05HX01BWCkgewotCQlpZiAoaSA+PSBwYWdldmVjX2NvdW50KHB2ZWMpICYmICF0YWlsX3BhZ2VzKQorCQlpZiAoaSA+PSBwYWdldmVjX2NvdW50KHB2ZWMpKQogCQkJYnJlYWs7CisKKwkJLyogQSBzd2FwL2RheC9zaGFkb3cgZW50cnkgZ290IGluc2VydGVkPyBTa2lwIGl0LiAqLwogCQlpZiAoeGFfaXNfdmFsdWUocGFnZSkpCiAJCQljb250aW51ZTsKLQkJaWYgKCF0YWlsX3BhZ2VzKSB7Ci0JCQkvKgotCQkJICogU29tZSBwYWdlIGdvdCBpbnNlcnRlZCBpbiBvdXIgcmFuZ2U/IFNraXAgaXQuIFdlCi0JCQkgKiBoYXZlIG91ciBwYWdlcyBsb2NrZWQgc28gdGhleSBhcmUgcHJvdGVjdGVkIGZyb20KLQkJCSAqIGJlaW5nIHJlbW92ZWQuCi0JCQkgKi8KLQkJCWlmIChwYWdlICE9IHB2ZWMtPnBhZ2VzW2ldKSB7Ci0JCQkJVk1fQlVHX09OX1BBR0UocGFnZS0+aW5kZXggPgotCQkJCQkJcHZlYy0+cGFnZXNbaV0tPmluZGV4LCBwYWdlKTsKLQkJCQljb250aW51ZTsKLQkJCX0KLQkJCVdBUk5fT05fT05DRSghUGFnZUxvY2tlZChwYWdlKSk7Ci0JCQlpZiAoUGFnZVRyYW5zSHVnZShwYWdlKSAmJiAhUGFnZUh1Z2UocGFnZSkpCi0JCQkJdGFpbF9wYWdlcyA9IEhQQUdFX1BNRF9OUiAtIDE7Ci0JCQlwYWdlLT5tYXBwaW5nID0gTlVMTDsKLQkJCS8qCi0JCQkgKiBMZWF2ZSBwYWdlLT5pbmRleCBzZXQ6IHRydW5jYXRpb24gbG9va3VwIHJlbGllcwotCQkJICogdXBvbiBpdAotCQkJICovCi0JCQlpKys7Ci0JCX0gZWxzZSB7Ci0JCQlWTV9CVUdfT05fUEFHRShwYWdlLT5pbmRleCArIEhQQUdFX1BNRF9OUiAtIHRhaWxfcGFnZXMKLQkJCQkJIT0gcHZlYy0+cGFnZXNbaV0tPmluZGV4LCBwYWdlKTsKLQkJCXRhaWxfcGFnZXMtLTsKKwkJLyoKKwkJICogQSBwYWdlIGdvdCBpbnNlcnRlZCBpbiBvdXIgcmFuZ2U/IFNraXAgaXQuIFdlIGhhdmUgb3VyCisJCSAqIHBhZ2VzIGxvY2tlZCBzbyB0aGV5IGFyZSBwcm90ZWN0ZWQgZnJvbSBiZWluZyByZW1vdmVkLgorCQkgKiBJZiB3ZSBzZWUgYSBwYWdlIHdob3NlIGluZGV4IGlzIGhpZ2hlciB0aGFuIG91cnMsIGl0CisJCSAqIG1lYW5zIG91ciBwYWdlIGhhcyBiZWVuIHJlbW92ZWQsIHdoaWNoIHNob3VsZG4ndCBiZQorCQkgKiBwb3NzaWJsZSBiZWNhdXNlIHdlJ3JlIGhvbGRpbmcgdGhlIFBhZ2VMb2NrLgorCQkgKi8KKwkJaWYgKHBhZ2UgIT0gcHZlYy0+cGFnZXNbaV0pIHsKKwkJCVZNX0JVR19PTl9QQUdFKHBhZ2UtPmluZGV4ID4gcHZlYy0+cGFnZXNbaV0tPmluZGV4LAorCQkJCQlwYWdlKTsKKwkJCWNvbnRpbnVlOwogCQl9CisKKwkJV0FSTl9PTl9PTkNFKCFQYWdlTG9ja2VkKHBhZ2UpKTsKKworCQlpZiAocGFnZS0+aW5kZXggPT0geGFzLnhhX2luZGV4KQorCQkJcGFnZS0+bWFwcGluZyA9IE5VTEw7CisJCS8qIExlYXZlIHBhZ2UtPmluZGV4IHNldDogdHJ1bmNhdGlvbiBsb29rdXAgcmVsaWVzIG9uIGl0ICovCisKKwkJLyoKKwkJICogTW92ZSB0byB0aGUgbmV4dCBwYWdlIGluIHRoZSB2ZWN0b3IgaWYgdGhpcyBpcyBhIHJlZ3VsYXIKKwkJICogcGFnZSBvciB0aGUgaW5kZXggaXMgb2YgdGhlIGxhc3Qgc3ViLXBhZ2Ugb2YgdGhpcyBjb21wb3VuZAorCQkgKiBwYWdlLgorCQkgKi8KKwkJaWYgKHBhZ2UtPmluZGV4ICsgY29tcG91bmRfbnIocGFnZSkgLSAxID09IHhhcy54YV9pbmRleCkKKwkJCWkrKzsKIAkJeGFzX3N0b3JlKCZ4YXMsIE5VTEwpOwogCQl0b3RhbF9wYWdlcysrOwogCX0KQEAgLTQwOCw3ICs0MTIsOCBAQCBpbnQgX19maWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBzdGFydCwKIAkJLnJhbmdlX2VuZCA9IGVuZCwKIAl9OwogCi0JaWYgKCFtYXBwaW5nX2NhcF93cml0ZWJhY2tfZGlydHkobWFwcGluZykpCisJaWYgKCFtYXBwaW5nX2NhcF93cml0ZWJhY2tfZGlydHkobWFwcGluZykgfHwKKwkgICAgIW1hcHBpbmdfdGFnZ2VkKG1hcHBpbmcsIFBBR0VDQUNIRV9UQUdfRElSVFkpKQogCQlyZXR1cm4gMDsKIAogCXdiY19hdHRhY2hfZmRhdGF3cml0ZV9pbm9kZSgmd2JjLCBtYXBwaW5nLT5ob3N0KTsKQEAgLTYxNywxMCArNjIyLDEzIEBAIGludCBmaWxlbWFwX2ZkYXRhd2FpdF9rZWVwX2Vycm9ycyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKIH0KIEVYUE9SVF9TWU1CT0woZmlsZW1hcF9mZGF0YXdhaXRfa2VlcF9lcnJvcnMpOwogCisvKiBSZXR1cm5zIHRydWUgaWYgd3JpdGViYWNrIG1pZ2h0IGJlIG5lZWRlZCBvciBhbHJlYWR5IGluIHByb2dyZXNzLiAqLwogc3RhdGljIGJvb2wgbWFwcGluZ19uZWVkc193cml0ZWJhY2soc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCiB7Ci0JcmV0dXJuICghZGF4X21hcHBpbmcobWFwcGluZykgJiYgbWFwcGluZy0+bnJwYWdlcykgfHwKLQkgICAgKGRheF9tYXBwaW5nKG1hcHBpbmcpICYmIG1hcHBpbmctPm5yZXhjZXB0aW9uYWwpOworCWlmIChkYXhfbWFwcGluZyhtYXBwaW5nKSkKKwkJcmV0dXJuIG1hcHBpbmctPm5yZXhjZXB0aW9uYWw7CisKKwlyZXR1cm4gbWFwcGluZy0+bnJwYWdlczsKIH0KIAogaW50IGZpbGVtYXBfd3JpdGVfYW5kX3dhaXQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCkBAIC0xNTE2LDcgKzE1MjQsNyBAQCBFWFBPUlRfU1lNQk9MKHBhZ2VfY2FjaGVfcHJldl9taXNzKTsKIHN0cnVjdCBwYWdlICpmaW5kX2dldF9lbnRyeShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgcGdvZmZfdCBvZmZzZXQpCiB7CiAJWEFfU1RBVEUoeGFzLCAmbWFwcGluZy0+aV9wYWdlcywgb2Zmc2V0KTsKLQlzdHJ1Y3QgcGFnZSAqaGVhZCwgKnBhZ2U7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKIAlyY3VfcmVhZF9sb2NrKCk7CiByZXBlYXQ6CkBAIC0xNTMxLDI1ICsxNTM5LDE5IEBAIHN0cnVjdCBwYWdlICpmaW5kX2dldF9lbnRyeShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgcGdvZmZfdCBvZmZzZXQpCiAJaWYgKCFwYWdlIHx8IHhhX2lzX3ZhbHVlKHBhZ2UpKQogCQlnb3RvIG91dDsKIAotCWhlYWQgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOwotCWlmICghcGFnZV9jYWNoZV9nZXRfc3BlY3VsYXRpdmUoaGVhZCkpCisJaWYgKCFwYWdlX2NhY2hlX2dldF9zcGVjdWxhdGl2ZShwYWdlKSkKIAkJZ290byByZXBlYXQ7CiAKLQkvKiBUaGUgcGFnZSB3YXMgc3BsaXQgdW5kZXIgdXM/ICovCi0JaWYgKGNvbXBvdW5kX2hlYWQocGFnZSkgIT0gaGVhZCkgewotCQlwdXRfcGFnZShoZWFkKTsKLQkJZ290byByZXBlYXQ7Ci0JfQotCiAJLyoKLQkgKiBIYXMgdGhlIHBhZ2UgbW92ZWQ/CisJICogSGFzIHRoZSBwYWdlIG1vdmVkIG9yIGJlZW4gc3BsaXQ/CiAJICogVGhpcyBpcyBwYXJ0IG9mIHRoZSBsb2NrbGVzcyBwYWdlY2FjaGUgcHJvdG9jb2wuIFNlZQogCSAqIGluY2x1ZGUvbGludXgvcGFnZW1hcC5oIGZvciBkZXRhaWxzLgogCSAqLwogCWlmICh1bmxpa2VseShwYWdlICE9IHhhc19yZWxvYWQoJnhhcykpKSB7Ci0JCXB1dF9wYWdlKGhlYWQpOworCQlwdXRfcGFnZShwYWdlKTsKIAkJZ290byByZXBlYXQ7CiAJfQorCXBhZ2UgPSBmaW5kX3N1YnBhZ2UocGFnZSwgb2Zmc2V0KTsKIG91dDoKIAlyY3VfcmVhZF91bmxvY2soKTsKIApAQCAtMTY0Niw3ICsxNjQ4LDcgQEAgc3RydWN0IHBhZ2UgKnBhZ2VjYWNoZV9nZXRfcGFnZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgcGdvZmZfdCBvZmZzZXQsCiAJCX0KIAogCQkvKiBIYXMgdGhlIHBhZ2UgYmVlbiB0cnVuY2F0ZWQ/ICovCi0JCWlmICh1bmxpa2VseShwYWdlLT5tYXBwaW5nICE9IG1hcHBpbmcpKSB7CisJCWlmICh1bmxpa2VseShjb21wb3VuZF9oZWFkKHBhZ2UpLT5tYXBwaW5nICE9IG1hcHBpbmcpKSB7CiAJCQl1bmxvY2tfcGFnZShwYWdlKTsKIAkJCXB1dF9wYWdlKHBhZ2UpOwogCQkJZ290byByZXBlYXQ7CkBAIC0xNzMxLDcgKzE3MzMsNiBAQCB1bnNpZ25lZCBmaW5kX2dldF9lbnRyaWVzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCiAJcmN1X3JlYWRfbG9jaygpOwogCXhhc19mb3JfZWFjaCgmeGFzLCBwYWdlLCBVTE9OR19NQVgpIHsKLQkJc3RydWN0IHBhZ2UgKmhlYWQ7CiAJCWlmICh4YXNfcmV0cnkoJnhhcywgcGFnZSkpCiAJCQljb250aW51ZTsKIAkJLyoKQEAgLTE3NDIsMTcgKzE3NDMsMTMgQEAgdW5zaWduZWQgZmluZF9nZXRfZW50cmllcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJaWYgKHhhX2lzX3ZhbHVlKHBhZ2UpKQogCQkJZ290byBleHBvcnQ7CiAKLQkJaGVhZCA9IGNvbXBvdW5kX2hlYWQocGFnZSk7Ci0JCWlmICghcGFnZV9jYWNoZV9nZXRfc3BlY3VsYXRpdmUoaGVhZCkpCisJCWlmICghcGFnZV9jYWNoZV9nZXRfc3BlY3VsYXRpdmUocGFnZSkpCiAJCQlnb3RvIHJldHJ5OwogCi0JCS8qIFRoZSBwYWdlIHdhcyBzcGxpdCB1bmRlciB1cz8gKi8KLQkJaWYgKGNvbXBvdW5kX2hlYWQocGFnZSkgIT0gaGVhZCkKLQkJCWdvdG8gcHV0X3BhZ2U7Ci0KLQkJLyogSGFzIHRoZSBwYWdlIG1vdmVkPyAqLworCQkvKiBIYXMgdGhlIHBhZ2UgbW92ZWQgb3IgYmVlbiBzcGxpdD8gKi8KIAkJaWYgKHVubGlrZWx5KHBhZ2UgIT0geGFzX3JlbG9hZCgmeGFzKSkpCiAJCQlnb3RvIHB1dF9wYWdlOworCQlwYWdlID0gZmluZF9zdWJwYWdlKHBhZ2UsIHhhcy54YV9pbmRleCk7CiAKIGV4cG9ydDoKIAkJaW5kaWNlc1tyZXRdID0geGFzLnhhX2luZGV4OwpAQCAtMTc2MSw3ICsxNzU4LDcgQEAgdW5zaWduZWQgZmluZF9nZXRfZW50cmllcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJCWJyZWFrOwogCQljb250aW51ZTsKIHB1dF9wYWdlOgotCQlwdXRfcGFnZShoZWFkKTsKKwkJcHV0X3BhZ2UocGFnZSk7CiByZXRyeToKIAkJeGFzX3Jlc2V0KCZ4YXMpOwogCX0KQEAgLTE4MDMsMzMgKzE4MDAsMjcgQEAgdW5zaWduZWQgZmluZF9nZXRfcGFnZXNfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHBnb2ZmX3QgKnN0YXJ0LAogCiAJcmN1X3JlYWRfbG9jaygpOwogCXhhc19mb3JfZWFjaCgmeGFzLCBwYWdlLCBlbmQpIHsKLQkJc3RydWN0IHBhZ2UgKmhlYWQ7CiAJCWlmICh4YXNfcmV0cnkoJnhhcywgcGFnZSkpCiAJCQljb250aW51ZTsKIAkJLyogU2tpcCBvdmVyIHNoYWRvdywgc3dhcCBhbmQgREFYIGVudHJpZXMgKi8KIAkJaWYgKHhhX2lzX3ZhbHVlKHBhZ2UpKQogCQkJY29udGludWU7CiAKLQkJaGVhZCA9IGNvbXBvdW5kX2hlYWQocGFnZSk7Ci0JCWlmICghcGFnZV9jYWNoZV9nZXRfc3BlY3VsYXRpdmUoaGVhZCkpCisJCWlmICghcGFnZV9jYWNoZV9nZXRfc3BlY3VsYXRpdmUocGFnZSkpCiAJCQlnb3RvIHJldHJ5OwogCi0JCS8qIFRoZSBwYWdlIHdhcyBzcGxpdCB1bmRlciB1cz8gKi8KLQkJaWYgKGNvbXBvdW5kX2hlYWQocGFnZSkgIT0gaGVhZCkKLQkJCWdvdG8gcHV0X3BhZ2U7Ci0KLQkJLyogSGFzIHRoZSBwYWdlIG1vdmVkPyAqLworCQkvKiBIYXMgdGhlIHBhZ2UgbW92ZWQgb3IgYmVlbiBzcGxpdD8gKi8KIAkJaWYgKHVubGlrZWx5KHBhZ2UgIT0geGFzX3JlbG9hZCgmeGFzKSkpCiAJCQlnb3RvIHB1dF9wYWdlOwogCi0JCXBhZ2VzW3JldF0gPSBwYWdlOworCQlwYWdlc1tyZXRdID0gZmluZF9zdWJwYWdlKHBhZ2UsIHhhcy54YV9pbmRleCk7CiAJCWlmICgrK3JldCA9PSBucl9wYWdlcykgewogCQkJKnN0YXJ0ID0geGFzLnhhX2luZGV4ICsgMTsKIAkJCWdvdG8gb3V0OwogCQl9CiAJCWNvbnRpbnVlOwogcHV0X3BhZ2U6Ci0JCXB1dF9wYWdlKGhlYWQpOworCQlwdXRfcGFnZShwYWdlKTsKIHJldHJ5OgogCQl4YXNfcmVzZXQoJnhhcyk7CiAJfQpAQCAtMTg3NCw3ICsxODY1LDYgQEAgdW5zaWduZWQgZmluZF9nZXRfcGFnZXNfY29udGlnKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBwZ29mZl90IGluZGV4LAogCiAJcmN1X3JlYWRfbG9jaygpOwogCWZvciAocGFnZSA9IHhhc19sb2FkKCZ4YXMpOyBwYWdlOyBwYWdlID0geGFzX25leHQoJnhhcykpIHsKLQkJc3RydWN0IHBhZ2UgKmhlYWQ7CiAJCWlmICh4YXNfcmV0cnkoJnhhcywgcGFnZSkpCiAJCQljb250aW51ZTsKIAkJLyoKQEAgLTE4ODQsMjQgKzE4NzQsMTkgQEAgdW5zaWduZWQgZmluZF9nZXRfcGFnZXNfY29udGlnKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBwZ29mZl90IGluZGV4LAogCQlpZiAoeGFfaXNfdmFsdWUocGFnZSkpCiAJCQlicmVhazsKIAotCQloZWFkID0gY29tcG91bmRfaGVhZChwYWdlKTsKLQkJaWYgKCFwYWdlX2NhY2hlX2dldF9zcGVjdWxhdGl2ZShoZWFkKSkKKwkJaWYgKCFwYWdlX2NhY2hlX2dldF9zcGVjdWxhdGl2ZShwYWdlKSkKIAkJCWdvdG8gcmV0cnk7CiAKLQkJLyogVGhlIHBhZ2Ugd2FzIHNwbGl0IHVuZGVyIHVzPyAqLwotCQlpZiAoY29tcG91bmRfaGVhZChwYWdlKSAhPSBoZWFkKQotCQkJZ290byBwdXRfcGFnZTsKLQotCQkvKiBIYXMgdGhlIHBhZ2UgbW92ZWQ/ICovCisJCS8qIEhhcyB0aGUgcGFnZSBtb3ZlZCBvciBiZWVuIHNwbGl0PyAqLwogCQlpZiAodW5saWtlbHkocGFnZSAhPSB4YXNfcmVsb2FkKCZ4YXMpKSkKIAkJCWdvdG8gcHV0X3BhZ2U7CiAKLQkJcGFnZXNbcmV0XSA9IHBhZ2U7CisJCXBhZ2VzW3JldF0gPSBmaW5kX3N1YnBhZ2UocGFnZSwgeGFzLnhhX2luZGV4KTsKIAkJaWYgKCsrcmV0ID09IG5yX3BhZ2VzKQogCQkJYnJlYWs7CiAJCWNvbnRpbnVlOwogcHV0X3BhZ2U6Ci0JCXB1dF9wYWdlKGhlYWQpOworCQlwdXRfcGFnZShwYWdlKTsKIHJldHJ5OgogCQl4YXNfcmVzZXQoJnhhcyk7CiAJfQpAQCAtMTkzNyw3ICsxOTIyLDYgQEAgdW5zaWduZWQgZmluZF9nZXRfcGFnZXNfcmFuZ2VfdGFnKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBwZ29mZl90ICppbmRleCwKIAogCXJjdV9yZWFkX2xvY2soKTsKIAl4YXNfZm9yX2VhY2hfbWFya2VkKCZ4YXMsIHBhZ2UsIGVuZCwgdGFnKSB7Ci0JCXN0cnVjdCBwYWdlICpoZWFkOwogCQlpZiAoeGFzX3JldHJ5KCZ4YXMsIHBhZ2UpKQogCQkJY29udGludWU7CiAJCS8qCkBAIC0xOTQ4LDI2ICsxOTMyLDIxIEBAIHVuc2lnbmVkIGZpbmRfZ2V0X3BhZ2VzX3JhbmdlX3RhZyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgcGdvZmZfdCAqaW5kZXgsCiAJCWlmICh4YV9pc192YWx1ZShwYWdlKSkKIAkJCWNvbnRpbnVlOwogCi0JCWhlYWQgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOwotCQlpZiAoIXBhZ2VfY2FjaGVfZ2V0X3NwZWN1bGF0aXZlKGhlYWQpKQorCQlpZiAoIXBhZ2VfY2FjaGVfZ2V0X3NwZWN1bGF0aXZlKHBhZ2UpKQogCQkJZ290byByZXRyeTsKIAotCQkvKiBUaGUgcGFnZSB3YXMgc3BsaXQgdW5kZXIgdXM/ICovCi0JCWlmIChjb21wb3VuZF9oZWFkKHBhZ2UpICE9IGhlYWQpCi0JCQlnb3RvIHB1dF9wYWdlOwotCi0JCS8qIEhhcyB0aGUgcGFnZSBtb3ZlZD8gKi8KKwkJLyogSGFzIHRoZSBwYWdlIG1vdmVkIG9yIGJlZW4gc3BsaXQ/ICovCiAJCWlmICh1bmxpa2VseShwYWdlICE9IHhhc19yZWxvYWQoJnhhcykpKQogCQkJZ290byBwdXRfcGFnZTsKIAotCQlwYWdlc1tyZXRdID0gcGFnZTsKKwkJcGFnZXNbcmV0XSA9IGZpbmRfc3VicGFnZShwYWdlLCB4YXMueGFfaW5kZXgpOwogCQlpZiAoKytyZXQgPT0gbnJfcGFnZXMpIHsKIAkJCSppbmRleCA9IHhhcy54YV9pbmRleCArIDE7CiAJCQlnb3RvIG91dDsKIAkJfQogCQljb250aW51ZTsKIHB1dF9wYWdlOgotCQlwdXRfcGFnZShoZWFkKTsKKwkJcHV0X3BhZ2UocGFnZSk7CiByZXRyeToKIAkJeGFzX3Jlc2V0KCZ4YXMpOwogCX0KQEAgLTI1NjIsMTIgKzI1NDEsMTIgQEAgdm1fZmF1bHRfdCBmaWxlbWFwX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCQlnb3RvIG91dF9yZXRyeTsKIAogCS8qIERpZCBpdCBnZXQgdHJ1bmNhdGVkPyAqLwotCWlmICh1bmxpa2VseShwYWdlLT5tYXBwaW5nICE9IG1hcHBpbmcpKSB7CisJaWYgKHVubGlrZWx5KGNvbXBvdW5kX2hlYWQocGFnZSktPm1hcHBpbmcgIT0gbWFwcGluZykpIHsKIAkJdW5sb2NrX3BhZ2UocGFnZSk7CiAJCXB1dF9wYWdlKHBhZ2UpOwogCQlnb3RvIHJldHJ5X2ZpbmQ7CiAJfQotCVZNX0JVR19PTl9QQUdFKHBhZ2UtPmluZGV4ICE9IG9mZnNldCwgcGFnZSk7CisJVk1fQlVHX09OX1BBR0UocGFnZV90b19wZ29mZihwYWdlKSAhPSBvZmZzZXQsIHBhZ2UpOwogCiAJLyoKIAkgKiBXZSBoYXZlIGEgbG9ja2VkIHBhZ2UgaW4gdGhlIHBhZ2UgY2FjaGUsIG5vdyB3ZSBuZWVkIHRvIGNoZWNrCkBAIC0yNjQ4LDcgKzI2MjcsNyBAQCB2b2lkIGZpbGVtYXBfbWFwX3BhZ2VzKHN0cnVjdCB2bV9mYXVsdCAqdm1mLAogCXBnb2ZmX3QgbGFzdF9wZ29mZiA9IHN0YXJ0X3Bnb2ZmOwogCXVuc2lnbmVkIGxvbmcgbWF4X2lkeDsKIAlYQV9TVEFURSh4YXMsICZtYXBwaW5nLT5pX3BhZ2VzLCBzdGFydF9wZ29mZik7Ci0Jc3RydWN0IHBhZ2UgKmhlYWQsICpwYWdlOworCXN0cnVjdCBwYWdlICpwYWdlOwogCiAJcmN1X3JlYWRfbG9jaygpOwogCXhhc19mb3JfZWFjaCgmeGFzLCBwYWdlLCBlbmRfcGdvZmYpIHsKQEAgLTI2NTcsMjQgKzI2MzYsMTkgQEAgdm9pZCBmaWxlbWFwX21hcF9wYWdlcyhzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwKIAkJaWYgKHhhX2lzX3ZhbHVlKHBhZ2UpKQogCQkJZ290byBuZXh0OwogCi0JCWhlYWQgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOwotCiAJCS8qCiAJCSAqIENoZWNrIGZvciBhIGxvY2tlZCBwYWdlIGZpcnN0LCBhcyBhIHNwZWN1bGF0aXZlCiAJCSAqIHJlZmVyZW5jZSBtYXkgYWR2ZXJzZWx5IGluZmx1ZW5jZSBwYWdlIG1pZ3JhdGlvbi4KIAkJICovCi0JCWlmIChQYWdlTG9ja2VkKGhlYWQpKQorCQlpZiAoUGFnZUxvY2tlZChwYWdlKSkKIAkJCWdvdG8gbmV4dDsKLQkJaWYgKCFwYWdlX2NhY2hlX2dldF9zcGVjdWxhdGl2ZShoZWFkKSkKKwkJaWYgKCFwYWdlX2NhY2hlX2dldF9zcGVjdWxhdGl2ZShwYWdlKSkKIAkJCWdvdG8gbmV4dDsKIAotCQkvKiBUaGUgcGFnZSB3YXMgc3BsaXQgdW5kZXIgdXM/ICovCi0JCWlmIChjb21wb3VuZF9oZWFkKHBhZ2UpICE9IGhlYWQpCi0JCQlnb3RvIHNraXA7Ci0KLQkJLyogSGFzIHRoZSBwYWdlIG1vdmVkPyAqLworCQkvKiBIYXMgdGhlIHBhZ2UgbW92ZWQgb3IgYmVlbiBzcGxpdD8gKi8KIAkJaWYgKHVubGlrZWx5KHBhZ2UgIT0geGFzX3JlbG9hZCgmeGFzKSkpCiAJCQlnb3RvIHNraXA7CisJCXBhZ2UgPSBmaW5kX3N1YnBhZ2UocGFnZSwgeGFzLnhhX2luZGV4KTsKIAogCQlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSB8fAogCQkJCVBhZ2VSZWFkYWhlYWQocGFnZSkgfHwKZGlmZiAtLWdpdCBhL21tL2ZyYW1lX3ZlY3Rvci5jIGIvbW0vZnJhbWVfdmVjdG9yLmMKaW5kZXggYzY0ZGNhNi4uYzQzMWNhOCAxMDA2NDQKLS0tIGEvbW0vZnJhbWVfdmVjdG9yLmMKKysrIGIvbW0vZnJhbWVfdmVjdG9yLmMKQEAgLTQ2LDYgKzQ2LDggQEAgaW50IGdldF92YWRkcl9mcmFtZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX2ZyYW1lcywKIAlpZiAoV0FSTl9PTl9PTkNFKG5yX2ZyYW1lcyA+IHZlYy0+bnJfYWxsb2NhdGVkKSkKIAkJbnJfZnJhbWVzID0gdmVjLT5ucl9hbGxvY2F0ZWQ7CiAKKwlzdGFydCA9IHVudGFnZ2VkX2FkZHIoc3RhcnQpOworCiAJZG93bl9yZWFkKCZtbS0+bW1hcF9zZW0pOwogCWxvY2tlZCA9IDE7CiAJdm1hID0gZmluZF92bWFfaW50ZXJzZWN0aW9uKG1tLCBzdGFydCwgc3RhcnQgKyAxKTsKZGlmZiAtLWdpdCBhL21tL2d1cC5jIGIvbW0vZ3VwLmMKaW5kZXggOThmMTNhYi4uMjNhOWY5YyAxMDA2NDQKLS0tIGEvbW0vZ3VwLmMKKysrIGIvbW0vZ3VwLmMKQEAgLTI5LDg1ICsyOSw3MCBAQCBzdHJ1Y3QgZm9sbG93X3BhZ2VfY29udGV4dCB7CiAJdW5zaWduZWQgaW50IHBhZ2VfbWFzazsKIH07CiAKLXR5cGVkZWYgaW50ICgqc2V0X2RpcnR5X2Z1bmNfdCkoc3RydWN0IHBhZ2UgKnBhZ2UpOwotCi1zdGF0aWMgdm9pZCBfX3B1dF91c2VyX3BhZ2VzX2RpcnR5KHN0cnVjdCBwYWdlICoqcGFnZXMsCi0JCQkJICAgdW5zaWduZWQgbG9uZyBucGFnZXMsCi0JCQkJICAgc2V0X2RpcnR5X2Z1bmNfdCBzZGYpCi17Ci0JdW5zaWduZWQgbG9uZyBpbmRleDsKLQotCWZvciAoaW5kZXggPSAwOyBpbmRleCA8IG5wYWdlczsgaW5kZXgrKykgewotCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGNvbXBvdW5kX2hlYWQocGFnZXNbaW5kZXhdKTsKLQotCQkvKgotCQkgKiBDaGVja2luZyBQYWdlRGlydHkgYXQgdGhpcyBwb2ludCBtYXkgcmFjZSB3aXRoCi0JCSAqIGNsZWFyX3BhZ2VfZGlydHlfZm9yX2lvKCksIGJ1dCB0aGF0J3MgT0suIFR3byBrZXkgY2FzZXM6Ci0JCSAqCi0JCSAqIDEpIFRoaXMgY29kZSBzZWVzIHRoZSBwYWdlIGFzIGFscmVhZHkgZGlydHksIHNvIGl0IHNraXBzCi0JCSAqIHRoZSBjYWxsIHRvIHNkZigpLiBUaGF0IGNvdWxkIGhhcHBlbiBiZWNhdXNlCi0JCSAqIGNsZWFyX3BhZ2VfZGlydHlfZm9yX2lvKCkgY2FsbGVkIHBhZ2VfbWtjbGVhbigpLAotCQkgKiBmb2xsb3dlZCBieSBzZXRfcGFnZV9kaXJ0eSgpLiBIb3dldmVyLCBub3cgdGhlIHBhZ2UgaXMKLQkJICogZ29pbmcgdG8gZ2V0IHdyaXR0ZW4gYmFjaywgd2hpY2ggbWVldHMgdGhlIG9yaWdpbmFsCi0JCSAqIGludGVudGlvbiBvZiBzZXR0aW5nIGl0IGRpcnR5LCBzbyBhbGwgaXMgd2VsbDoKLQkJICogY2xlYXJfcGFnZV9kaXJ0eV9mb3JfaW8oKSBnb2VzIG9uIHRvIGNhbGwKLQkJICogVGVzdENsZWFyUGFnZURpcnR5KCksIGFuZCB3cml0ZSB0aGUgcGFnZSBiYWNrLgotCQkgKgotCQkgKiAyKSBUaGlzIGNvZGUgc2VlcyB0aGUgcGFnZSBhcyBjbGVhbiwgc28gaXQgY2FsbHMgc2RmKCkuCi0JCSAqIFRoZSBwYWdlIHN0YXlzIGRpcnR5LCBkZXNwaXRlIGJlaW5nIHdyaXR0ZW4gYmFjaywgc28gaXQKLQkJICogZ2V0cyB3cml0dGVuIGJhY2sgYWdhaW4gaW4gdGhlIG5leHQgd3JpdGViYWNrIGN5Y2xlLgotCQkgKiBUaGlzIGlzIGhhcm1sZXNzLgotCQkgKi8KLQkJaWYgKCFQYWdlRGlydHkocGFnZSkpCi0JCQlzZGYocGFnZSk7Ci0KLQkJcHV0X3VzZXJfcGFnZShwYWdlKTsKLQl9Ci19Ci0KIC8qKgotICogcHV0X3VzZXJfcGFnZXNfZGlydHkoKSAtIHJlbGVhc2UgYW5kIGRpcnR5IGFuIGFycmF5IG9mIGd1cC1waW5uZWQgcGFnZXMKLSAqIEBwYWdlczogIGFycmF5IG9mIHBhZ2VzIHRvIGJlIG1hcmtlZCBkaXJ0eSBhbmQgcmVsZWFzZWQuCisgKiBwdXRfdXNlcl9wYWdlc19kaXJ0eV9sb2NrKCkgLSByZWxlYXNlIGFuZCBvcHRpb25hbGx5IGRpcnR5IGd1cC1waW5uZWQgcGFnZXMKKyAqIEBwYWdlczogIGFycmF5IG9mIHBhZ2VzIHRvIGJlIG1heWJlIG1hcmtlZCBkaXJ0eSwgYW5kIGRlZmluaXRlbHkgcmVsZWFzZWQuCiAgKiBAbnBhZ2VzOiBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIEBwYWdlcyBhcnJheS4KKyAqIEBtYWtlX2RpcnR5OiB3aGV0aGVyIHRvIG1hcmsgdGhlIHBhZ2VzIGRpcnR5CiAgKgogICogImd1cC1waW5uZWQgcGFnZSIgcmVmZXJzIHRvIGEgcGFnZSB0aGF0IGhhcyBoYWQgb25lIG9mIHRoZSBnZXRfdXNlcl9wYWdlcygpCiAgKiB2YXJpYW50cyBjYWxsZWQgb24gdGhhdCBwYWdlLgogICoKICAqIEZvciBlYWNoIHBhZ2UgaW4gdGhlIEBwYWdlcyBhcnJheSwgbWFrZSB0aGF0IHBhZ2UgKG9yIGl0cyBoZWFkIHBhZ2UsIGlmIGEKLSAqIGNvbXBvdW5kIHBhZ2UpIGRpcnR5LCBpZiBpdCB3YXMgcHJldmlvdXNseSBsaXN0ZWQgYXMgY2xlYW4uIFRoZW4sIHJlbGVhc2UKLSAqIHRoZSBwYWdlIHVzaW5nIHB1dF91c2VyX3BhZ2UoKS4KKyAqIGNvbXBvdW5kIHBhZ2UpIGRpcnR5LCBpZiBAbWFrZV9kaXJ0eSBpcyB0cnVlLCBhbmQgaWYgdGhlIHBhZ2Ugd2FzIHByZXZpb3VzbHkKKyAqIGxpc3RlZCBhcyBjbGVhbi4gSW4gYW55IGNhc2UsIHJlbGVhc2VzIGFsbCBwYWdlcyB1c2luZyBwdXRfdXNlcl9wYWdlKCksCisgKiBwb3NzaWJseSB2aWEgcHV0X3VzZXJfcGFnZXMoKSwgZm9yIHRoZSBub24tZGlydHkgY2FzZS4KICAqCiAgKiBQbGVhc2Ugc2VlIHRoZSBwdXRfdXNlcl9wYWdlKCkgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4KICAqCi0gKiBzZXRfcGFnZV9kaXJ0eSgpLCB3aGljaCBkb2VzIG5vdCBsb2NrIHRoZSBwYWdlLCBpcyB1c2VkIGhlcmUuCi0gKiBUaGVyZWZvcmUsIGl0IGlzIHRoZSBjYWxsZXIncyByZXNwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhhdCB0aGlzIGlzCi0gKiBzYWZlLiBJZiBub3QsIHRoZW4gcHV0X3VzZXJfcGFnZXNfZGlydHlfbG9jaygpIHNob3VsZCBiZSBjYWxsZWQgaW5zdGVhZC4KKyAqIHNldF9wYWdlX2RpcnR5X2xvY2soKSBpcyB1c2VkIGludGVybmFsbHkuIElmIGluc3RlYWQsIHNldF9wYWdlX2RpcnR5KCkgaXMKKyAqIHJlcXVpcmVkLCB0aGVuIHRoZSBjYWxsZXIgc2hvdWxkIGEpIHZlcmlmeSB0aGF0IHRoaXMgaXMgcmVhbGx5IGNvcnJlY3QsCisgKiBiZWNhdXNlIF9sb2NrKCkgaXMgdXN1YWxseSByZXF1aXJlZCwgYW5kIGIpIGhhbmQgY29kZSBpdDoKKyAqIHNldF9wYWdlX2RpcnR5X2xvY2soKSwgcHV0X3VzZXJfcGFnZSgpLgogICoKICAqLwotdm9pZCBwdXRfdXNlcl9wYWdlc19kaXJ0eShzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1bnNpZ25lZCBsb25nIG5wYWdlcykKK3ZvaWQgcHV0X3VzZXJfcGFnZXNfZGlydHlfbG9jayhzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1bnNpZ25lZCBsb25nIG5wYWdlcywKKwkJCSAgICAgICBib29sIG1ha2VfZGlydHkpCiB7Ci0JX19wdXRfdXNlcl9wYWdlc19kaXJ0eShwYWdlcywgbnBhZ2VzLCBzZXRfcGFnZV9kaXJ0eSk7Ci19Ci1FWFBPUlRfU1lNQk9MKHB1dF91c2VyX3BhZ2VzX2RpcnR5KTsKKwl1bnNpZ25lZCBsb25nIGluZGV4OwogCi0vKioKLSAqIHB1dF91c2VyX3BhZ2VzX2RpcnR5X2xvY2soKSAtIHJlbGVhc2UgYW5kIGRpcnR5IGFuIGFycmF5IG9mIGd1cC1waW5uZWQgcGFnZXMKLSAqIEBwYWdlczogIGFycmF5IG9mIHBhZ2VzIHRvIGJlIG1hcmtlZCBkaXJ0eSBhbmQgcmVsZWFzZWQuCi0gKiBAbnBhZ2VzOiBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIEBwYWdlcyBhcnJheS4KLSAqCi0gKiBGb3IgZWFjaCBwYWdlIGluIHRoZSBAcGFnZXMgYXJyYXksIG1ha2UgdGhhdCBwYWdlIChvciBpdHMgaGVhZCBwYWdlLCBpZiBhCi0gKiBjb21wb3VuZCBwYWdlKSBkaXJ0eSwgaWYgaXQgd2FzIHByZXZpb3VzbHkgbGlzdGVkIGFzIGNsZWFuLiBUaGVuLCByZWxlYXNlCi0gKiB0aGUgcGFnZSB1c2luZyBwdXRfdXNlcl9wYWdlKCkuCi0gKgotICogUGxlYXNlIHNlZSB0aGUgcHV0X3VzZXJfcGFnZSgpIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCi0gKgotICogVGhpcyBpcyBqdXN0IGxpa2UgcHV0X3VzZXJfcGFnZXNfZGlydHkoKSwgZXhjZXB0IHRoYXQgaXQgaW52b2tlcwotICogc2V0X3BhZ2VfZGlydHlfbG9jaygpLCBpbnN0ZWFkIG9mIHNldF9wYWdlX2RpcnR5KCkuCi0gKgotICovCi12b2lkIHB1dF91c2VyX3BhZ2VzX2RpcnR5X2xvY2soc3RydWN0IHBhZ2UgKipwYWdlcywgdW5zaWduZWQgbG9uZyBucGFnZXMpCi17Ci0JX19wdXRfdXNlcl9wYWdlc19kaXJ0eShwYWdlcywgbnBhZ2VzLCBzZXRfcGFnZV9kaXJ0eV9sb2NrKTsKKwkvKgorCSAqIFRPRE86IHRoaXMgY2FuIGJlIG9wdGltaXplZCBmb3IgaHVnZSBwYWdlczogaWYgYSBzZXJpZXMgb2YgcGFnZXMgaXMKKwkgKiBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMgYW5kIHBhcnQgb2YgdGhlIHNhbWUgY29tcG91bmQgcGFnZSwgdGhlbiBhCisJICogc2luZ2xlIG9wZXJhdGlvbiB0byB0aGUgaGVhZCBwYWdlIHNob3VsZCBzdWZmaWNlLgorCSAqLworCisJaWYgKCFtYWtlX2RpcnR5KSB7CisJCXB1dF91c2VyX3BhZ2VzKHBhZ2VzLCBucGFnZXMpOworCQlyZXR1cm47CisJfQorCisJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgbnBhZ2VzOyBpbmRleCsrKSB7CisJCXN0cnVjdCBwYWdlICpwYWdlID0gY29tcG91bmRfaGVhZChwYWdlc1tpbmRleF0pOworCQkvKgorCQkgKiBDaGVja2luZyBQYWdlRGlydHkgYXQgdGhpcyBwb2ludCBtYXkgcmFjZSB3aXRoCisJCSAqIGNsZWFyX3BhZ2VfZGlydHlfZm9yX2lvKCksIGJ1dCB0aGF0J3MgT0suIFR3byBrZXkKKwkJICogY2FzZXM6CisJCSAqCisJCSAqIDEpIFRoaXMgY29kZSBzZWVzIHRoZSBwYWdlIGFzIGFscmVhZHkgZGlydHksIHNvIGl0CisJCSAqIHNraXBzIHRoZSBjYWxsIHRvIHNldF9wYWdlX2RpcnR5KCkuIFRoYXQgY291bGQgaGFwcGVuCisJCSAqIGJlY2F1c2UgY2xlYXJfcGFnZV9kaXJ0eV9mb3JfaW8oKSBjYWxsZWQKKwkJICogcGFnZV9ta2NsZWFuKCksIGZvbGxvd2VkIGJ5IHNldF9wYWdlX2RpcnR5KCkuCisJCSAqIEhvd2V2ZXIsIG5vdyB0aGUgcGFnZSBpcyBnb2luZyB0byBnZXQgd3JpdHRlbiBiYWNrLAorCQkgKiB3aGljaCBtZWV0cyB0aGUgb3JpZ2luYWwgaW50ZW50aW9uIG9mIHNldHRpbmcgaXQKKwkJICogZGlydHksIHNvIGFsbCBpcyB3ZWxsOiBjbGVhcl9wYWdlX2RpcnR5X2Zvcl9pbygpIGdvZXMKKwkJICogb24gdG8gY2FsbCBUZXN0Q2xlYXJQYWdlRGlydHkoKSwgYW5kIHdyaXRlIHRoZSBwYWdlCisJCSAqIGJhY2suCisJCSAqCisJCSAqIDIpIFRoaXMgY29kZSBzZWVzIHRoZSBwYWdlIGFzIGNsZWFuLCBzbyBpdCBjYWxscworCQkgKiBzZXRfcGFnZV9kaXJ0eSgpLiBUaGUgcGFnZSBzdGF5cyBkaXJ0eSwgZGVzcGl0ZSBiZWluZworCQkgKiB3cml0dGVuIGJhY2ssIHNvIGl0IGdldHMgd3JpdHRlbiBiYWNrIGFnYWluIGluIHRoZQorCQkgKiBuZXh0IHdyaXRlYmFjayBjeWNsZS4gVGhpcyBpcyBoYXJtbGVzcy4KKwkJICovCisJCWlmICghUGFnZURpcnR5KHBhZ2UpKQorCQkJc2V0X3BhZ2VfZGlydHlfbG9jayhwYWdlKTsKKwkJcHV0X3VzZXJfcGFnZShwYWdlKTsKKwl9CiB9CiBFWFBPUlRfU1lNQk9MKHB1dF91c2VyX3BhZ2VzX2RpcnR5X2xvY2spOwogCkBAIC0zOTksNyArMzg0LDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlICpmb2xsb3dfcG1kX21hc2soc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCXNwaW5fdW5sb2NrKHB0bCk7CiAJCXJldHVybiBmb2xsb3dfcGFnZV9wdGUodm1hLCBhZGRyZXNzLCBwbWQsIGZsYWdzLCAmY3R4LT5wZ21hcCk7CiAJfQotCWlmIChmbGFncyAmIEZPTExfU1BMSVQpIHsKKwlpZiAoZmxhZ3MgJiAoRk9MTF9TUExJVCB8IEZPTExfU1BMSVRfUE1EKSkgewogCQlpbnQgcmV0OwogCQlwYWdlID0gcG1kX3BhZ2UoKnBtZCk7CiAJCWlmIChpc19odWdlX3plcm9fcGFnZShwYWdlKSkgewpAQCAtNDA4LDcgKzM5Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqZm9sbG93X3BtZF9tYXNrKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJc3BsaXRfaHVnZV9wbWQodm1hLCBwbWQsIGFkZHJlc3MpOwogCQkJaWYgKHBtZF90cmFuc191bnN0YWJsZShwbWQpKQogCQkJCXJldCA9IC1FQlVTWTsKLQkJfSBlbHNlIHsKKwkJfSBlbHNlIGlmIChmbGFncyAmIEZPTExfU1BMSVQpIHsKIAkJCWlmICh1bmxpa2VseSghdHJ5X2dldF9wYWdlKHBhZ2UpKSkgewogCQkJCXNwaW5fdW5sb2NrKHB0bCk7CiAJCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CkBAIC00MjAsNiArNDA1LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqZm9sbG93X3BtZF9tYXNrKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJcHV0X3BhZ2UocGFnZSk7CiAJCQlpZiAocG1kX25vbmUoKnBtZCkpCiAJCQkJcmV0dXJuIG5vX3BhZ2VfdGFibGUodm1hLCBmbGFncyk7CisJCX0gZWxzZSB7ICAvKiBmbGFncyAmIEZPTExfU1BMSVRfUE1EICovCisJCQlzcGluX3VubG9jayhwdGwpOworCQkJc3BsaXRfaHVnZV9wbWQodm1hLCBwbWQsIGFkZHJlc3MpOworCQkJcmV0ID0gcHRlX2FsbG9jKG1tLCBwbWQpID8gLUVOT01FTSA6IDA7CiAJCX0KIAogCQlyZXR1cm4gcmV0ID8gRVJSX1BUUihyZXQpIDoKQEAgLTc5OSw2ICs3ODgsOCBAQCBzdGF0aWMgbG9uZyBfX2dldF91c2VyX3BhZ2VzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAlpZiAoIW5yX3BhZ2VzKQogCQlyZXR1cm4gMDsKIAorCXN0YXJ0ID0gdW50YWdnZWRfYWRkcihzdGFydCk7CisKIAlWTV9CVUdfT04oISFwYWdlcyAhPSAhIShndXBfZmxhZ3MgJiBGT0xMX0dFVCkpOwogCiAJLyoKQEAgLTk2MSw2ICs5NTIsOCBAQCBpbnQgZml4dXBfdXNlcl9mYXVsdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CiAJdm1fZmF1bHRfdCByZXQsIG1ham9yID0gMDsKIAorCWFkZHJlc3MgPSB1bnRhZ2dlZF9hZGRyKGFkZHJlc3MpOworCiAJaWYgKHVubG9ja2VkKQogCQlmYXVsdF9mbGFncyB8PSBGQVVMVF9GTEFHX0FMTE9XX1JFVFJZOwogCkBAIC0xNDYwLDcgKzE0NTMsNyBAQCBzdGF0aWMgbG9uZyBjaGVja19hbmRfbWlncmF0ZV9jbWFfcGFnZXMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCiAJCSAqIGd1cCBtYXkgc3RhcnQgZnJvbSBhIHRhaWwgcGFnZS4gQWR2YW5jZSBzdGVwIGJ5IHRoZSBsZWZ0CiAJCSAqIHBhcnQuCiAJCSAqLwotCQlzdGVwID0gKDEgPDwgY29tcG91bmRfb3JkZXIoaGVhZCkpIC0gKHBhZ2VzW2ldIC0gaGVhZCk7CisJCXN0ZXAgPSBjb21wb3VuZF9ucihoZWFkKSAtIChwYWdlc1tpXSAtIGhlYWQpOwogCQkvKgogCQkgKiBJZiB3ZSBnZXQgYSBwYWdlIGZyb20gdGhlIENNQSB6b25lLCBzaW5jZSB3ZSBhcmUgZ29pbmcgdG8KIAkJICogYmUgcGlubmluZyB0aGVzZSBlbnRyaWVzLCB3ZSBtaWdodCBhcyB3ZWxsIG1vdmUgdGhlbSBvdXQKZGlmZiAtLWdpdCBhL21tL2htbS5jIGIvbW0vaG1tLmMKaW5kZXggMTZiNjczMS4uOTAyZjVmYSAxMDA2NDQKLS0tIGEvbW0vaG1tLmMKKysrIGIvbW0vaG1tLmMKQEAgLTgsNyArOCw3IEBACiAgKiBSZWZlciB0byBpbmNsdWRlL2xpbnV4L2htbS5oIGZvciBpbmZvcm1hdGlvbiBhYm91dCBoZXRlcm9nZW5lb3VzIG1lbW9yeQogICogbWFuYWdlbWVudCBvciBITU0gZm9yIHNob3J0LgogICovCi0jaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wYWdld2Fsay5oPgogI2luY2x1ZGUgPGxpbnV4L2htbS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9ybWFwLmg+CkBAIC0yNiwxMDEgKzI2LDM3IEBACiAjaW5jbHVkZSA8bGludXgvbW11X25vdGlmaWVyLmg+CiAjaW5jbHVkZSA8bGludXgvbWVtb3J5X2hvdHBsdWcuaD4KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzIGhtbV9tbXVfbm90aWZpZXJfb3BzOwotCi0vKioKLSAqIGhtbV9nZXRfb3JfY3JlYXRlIC0gcmVnaXN0ZXIgSE1NIGFnYWluc3QgYW4gbW0gKEhNTSBpbnRlcm5hbCkKLSAqCi0gKiBAbW06IG1tIHN0cnVjdCB0byBhdHRhY2ggdG8KLSAqIFJldHVybnM6IHJldHVybnMgYW4gSE1NIG9iamVjdCwgZWl0aGVyIGJ5IHJlZmVyZW5jaW5nIHRoZSBleGlzdGluZwotICogICAgICAgICAgKHBlci1wcm9jZXNzKSBvYmplY3QsIG9yIGJ5IGNyZWF0aW5nIGEgbmV3IG9uZS4KLSAqCi0gKiBUaGlzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGJ5IGRldmljZSBkcml2ZXJzLiBJZiBtbSBhbHJlYWR5Ci0gKiBoYXMgYW4gSE1NIHN0cnVjdCB0aGVuIGl0IGdldCBhIHJlZmVyZW5jZSBvbiBpdCBhbmQgcmV0dXJucyBpdC4gT3RoZXJ3aXNlCi0gKiBpdCBhbGxvY2F0ZXMgYW4gSE1NIHN0cnVjdCwgaW5pdGlhbGl6ZXMgaXQsIGFzc29jaWF0ZSBpdCB3aXRoIHRoZSBtbSBhbmQKLSAqIHJldHVybnMgaXQuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgaG1tICpobW1fZ2V0X29yX2NyZWF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKK3N0YXRpYyBzdHJ1Y3QgbW11X25vdGlmaWVyICpobW1fYWxsb2Nfbm90aWZpZXIoc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CiAJc3RydWN0IGhtbSAqaG1tOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZF93cml0ZSgmbW0tPm1tYXBfc2VtKTsKLQotCS8qIEFidXNlIHRoZSBwYWdlX3RhYmxlX2xvY2sgdG8gYWxzbyBwcm90ZWN0IG1tLT5obW0uICovCi0Jc3Bpbl9sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKLQlobW0gPSBtbS0+aG1tOwotCWlmIChtbS0+aG1tICYmIGtyZWZfZ2V0X3VubGVzc196ZXJvKCZtbS0+aG1tLT5rcmVmKSkKLQkJZ290byBvdXRfdW5sb2NrOwotCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKLQotCWhtbSA9IGttYWxsb2Moc2l6ZW9mKCpobW0pLCBHRlBfS0VSTkVMKTsKKwlobW0gPSBremFsbG9jKHNpemVvZigqaG1tKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFobW0pCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmhtbS0+d3EpOwogCUlOSVRfTElTVF9IRUFEKCZobW0tPm1pcnJvcnMpOwogCWluaXRfcndzZW0oJmhtbS0+bWlycm9yc19zZW0pOwotCWhtbS0+bW11X25vdGlmaWVyLm9wcyA9IE5VTEw7CiAJSU5JVF9MSVNUX0hFQUQoJmhtbS0+cmFuZ2VzKTsKIAlzcGluX2xvY2tfaW5pdCgmaG1tLT5yYW5nZXNfbG9jayk7Ci0Ja3JlZl9pbml0KCZobW0tPmtyZWYpOwogCWhtbS0+bm90aWZpZXJzID0gMDsKLQlobW0tPm1tID0gbW07Ci0KLQlobW0tPm1tdV9ub3RpZmllci5vcHMgPSAmaG1tX21tdV9ub3RpZmllcl9vcHM7Ci0JaWYgKF9fbW11X25vdGlmaWVyX3JlZ2lzdGVyKCZobW0tPm1tdV9ub3RpZmllciwgbW0pKSB7Ci0JCWtmcmVlKGhtbSk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQotCW1tZ3JhYihobW0tPm1tKTsKLQotCS8qCi0JICogV2UgaG9sZCB0aGUgZXhjbHVzaXZlIG1tYXBfc2VtIGhlcmUgc28gd2Uga25vdyB0aGF0IG1tLT5obW0gaXMKLQkgKiBzdGlsbCBOVUxMIG9yIDAga3JlZiwgYW5kIGlzIHNhZmUgdG8gdXBkYXRlLgotCSAqLwotCXNwaW5fbG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7Ci0JbW0tPmhtbSA9IGhtbTsKLQotb3V0X3VubG9jazoKLQlzcGluX3VubG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7Ci0JcmV0dXJuIGhtbTsKKwlyZXR1cm4gJmhtbS0+bW11X25vdGlmaWVyOwogfQogCi1zdGF0aWMgdm9pZCBobW1fZnJlZV9yY3Uoc3RydWN0IHJjdV9oZWFkICpyY3UpCitzdGF0aWMgdm9pZCBobW1fZnJlZV9ub3RpZmllcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbikKIHsKLQlzdHJ1Y3QgaG1tICpobW0gPSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3QgaG1tLCByY3UpOworCXN0cnVjdCBobW0gKmhtbSA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGhtbSwgbW11X25vdGlmaWVyKTsKIAotCW1tZHJvcChobW0tPm1tKTsKKwlXQVJOX09OKCFsaXN0X2VtcHR5KCZobW0tPnJhbmdlcykpOworCVdBUk5fT04oIWxpc3RfZW1wdHkoJmhtbS0+bWlycm9ycykpOwogCWtmcmVlKGhtbSk7CiB9CiAKLXN0YXRpYyB2b2lkIGhtbV9mcmVlKHN0cnVjdCBrcmVmICprcmVmKQotewotCXN0cnVjdCBobW0gKmhtbSA9IGNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgaG1tLCBrcmVmKTsKLQotCXNwaW5fbG9jaygmaG1tLT5tbS0+cGFnZV90YWJsZV9sb2NrKTsKLQlpZiAoaG1tLT5tbS0+aG1tID09IGhtbSkKLQkJaG1tLT5tbS0+aG1tID0gTlVMTDsKLQlzcGluX3VubG9jaygmaG1tLT5tbS0+cGFnZV90YWJsZV9sb2NrKTsKLQotCW1tdV9ub3RpZmllcl91bnJlZ2lzdGVyX25vX3JlbGVhc2UoJmhtbS0+bW11X25vdGlmaWVyLCBobW0tPm1tKTsKLQltbXVfbm90aWZpZXJfY2FsbF9zcmN1KCZobW0tPnJjdSwgaG1tX2ZyZWVfcmN1KTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGhtbV9wdXQoc3RydWN0IGhtbSAqaG1tKQotewotCWtyZWZfcHV0KCZobW0tPmtyZWYsIGhtbV9mcmVlKTsKLX0KLQogc3RhdGljIHZvaWQgaG1tX3JlbGVhc2Uoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogewogCXN0cnVjdCBobW0gKmhtbSA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGhtbSwgbW11X25vdGlmaWVyKTsKIAlzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yOwogCi0JLyogQmFpbCBvdXQgaWYgaG1tIGlzIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGZyZWVkICovCi0JaWYgKCFrcmVmX2dldF91bmxlc3NfemVybygmaG1tLT5rcmVmKSkKLQkJcmV0dXJuOwotCiAJLyoKIAkgKiBTaW5jZSBobW1fcmFuZ2VfcmVnaXN0ZXIoKSBob2xkcyB0aGUgbW1nZXQoKSBsb2NrIGhtbV9yZWxlYXNlKCkgaXMKIAkgKiBwcmV2ZW50ZWQgYXMgbG9uZyBhcyBhIHJhbmdlIGV4aXN0cy4KQEAgLTEzNyw4ICs3Myw2IEBAIHN0YXRpYyB2b2lkIGhtbV9yZWxlYXNlKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIAkJCW1pcnJvci0+b3BzLT5yZWxlYXNlKG1pcnJvcik7CiAJfQogCXVwX3JlYWQoJmhtbS0+bWlycm9yc19zZW0pOwotCi0JaG1tX3B1dChobW0pOwogfQogCiBzdGF0aWMgdm9pZCBub3RpZmllcnNfZGVjcmVtZW50KHN0cnVjdCBobW0gKmhtbSkKQEAgLTE2NSwyMyArOTksMTQgQEAgc3RhdGljIGludCBobW1faW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIHsKIAlzdHJ1Y3QgaG1tICpobW0gPSBjb250YWluZXJfb2YobW4sIHN0cnVjdCBobW0sIG1tdV9ub3RpZmllcik7CiAJc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvcjsKLQlzdHJ1Y3QgaG1tX3VwZGF0ZSB1cGRhdGU7CiAJc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2U7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcmV0ID0gMDsKIAotCWlmICgha3JlZl9nZXRfdW5sZXNzX3plcm8oJmhtbS0+a3JlZikpCi0JCXJldHVybiAwOwotCi0JdXBkYXRlLnN0YXJ0ID0gbnJhbmdlLT5zdGFydDsKLQl1cGRhdGUuZW5kID0gbnJhbmdlLT5lbmQ7Ci0JdXBkYXRlLmV2ZW50ID0gSE1NX1VQREFURV9JTlZBTElEQVRFOwotCXVwZGF0ZS5ibG9ja2FibGUgPSBtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKG5yYW5nZSk7Ci0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmaG1tLT5yYW5nZXNfbG9jaywgZmxhZ3MpOwogCWhtbS0+bm90aWZpZXJzKys7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShyYW5nZSwgJmhtbS0+cmFuZ2VzLCBsaXN0KSB7Ci0JCWlmICh1cGRhdGUuZW5kIDwgcmFuZ2UtPnN0YXJ0IHx8IHVwZGF0ZS5zdGFydCA+PSByYW5nZS0+ZW5kKQorCQlpZiAobnJhbmdlLT5lbmQgPCByYW5nZS0+c3RhcnQgfHwgbnJhbmdlLT5zdGFydCA+PSByYW5nZS0+ZW5kKQogCQkJY29udGludWU7CiAKIAkJcmFuZ2UtPnZhbGlkID0gZmFsc2U7CkBAIC0xOTgsOSArMTIzLDEwIEBAIHN0YXRpYyBpbnQgaG1tX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShtaXJyb3IsICZobW0tPm1pcnJvcnMsIGxpc3QpIHsKIAkJaW50IHJjOwogCi0JCXJjID0gbWlycm9yLT5vcHMtPnN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKG1pcnJvciwgJnVwZGF0ZSk7CisJCXJjID0gbWlycm9yLT5vcHMtPnN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKG1pcnJvciwgbnJhbmdlKTsKIAkJaWYgKHJjKSB7Ci0JCQlpZiAoV0FSTl9PTih1cGRhdGUuYmxvY2thYmxlIHx8IHJjICE9IC1FQUdBSU4pKQorCQkJaWYgKFdBUk5fT04obW11X25vdGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShucmFuZ2UpIHx8CisJCQkgICAgcmMgIT0gLUVBR0FJTikpCiAJCQkJY29udGludWU7CiAJCQlyZXQgPSAtRUFHQUlOOwogCQkJYnJlYWs7CkBAIC0yMTEsNyArMTM3LDYgQEAgc3RhdGljIGludCBobW1faW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIG91dDoKIAlpZiAocmV0KQogCQlub3RpZmllcnNfZGVjcmVtZW50KGhtbSk7Ci0JaG1tX3B1dChobW0pOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTIyMCwxNyArMTQ1LDE1IEBAIHN0YXRpYyB2b2lkIGhtbV9pbnZhbGlkYXRlX3JhbmdlX2VuZChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIHsKIAlzdHJ1Y3QgaG1tICpobW0gPSBjb250YWluZXJfb2YobW4sIHN0cnVjdCBobW0sIG1tdV9ub3RpZmllcik7CiAKLQlpZiAoIWtyZWZfZ2V0X3VubGVzc196ZXJvKCZobW0tPmtyZWYpKQotCQlyZXR1cm47Ci0KIAlub3RpZmllcnNfZGVjcmVtZW50KGhtbSk7Ci0JaG1tX3B1dChobW0pOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9vcHMgaG1tX21tdV9ub3RpZmllcl9vcHMgPSB7CiAJLnJlbGVhc2UJCT0gaG1tX3JlbGVhc2UsCiAJLmludmFsaWRhdGVfcmFuZ2Vfc3RhcnQJPSBobW1faW52YWxpZGF0ZV9yYW5nZV9zdGFydCwKIAkuaW52YWxpZGF0ZV9yYW5nZV9lbmQJPSBobW1faW52YWxpZGF0ZV9yYW5nZV9lbmQsCisJLmFsbG9jX25vdGlmaWVyCQk9IGhtbV9hbGxvY19ub3RpZmllciwKKwkuZnJlZV9ub3RpZmllcgkJPSBobW1fZnJlZV9ub3RpZmllciwKIH07CiAKIC8qCkBAIC0yNDIsMTggKzE2NSwyNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9vcHMgaG1tX21tdV9ub3RpZmllcl9vcHMgPSB7CiAgKgogICogVG8gc3RhcnQgbWlycm9yaW5nIGEgcHJvY2VzcyBhZGRyZXNzIHNwYWNlLCB0aGUgZGV2aWNlIGRyaXZlciBtdXN0IHJlZ2lzdGVyCiAgKiBhbiBITU0gbWlycm9yIHN0cnVjdC4KKyAqCisgKiBUaGUgY2FsbGVyIGNhbm5vdCB1bnJlZ2lzdGVyIHRoZSBobW1fbWlycm9yIHdoaWxlIGFueSByYW5nZXMgYXJlCisgKiByZWdpc3RlcmVkLgorICoKKyAqIENhbGxlcnMgdXNpbmcgdGhpcyBmdW5jdGlvbiBtdXN0IHB1dCBhIGNhbGwgdG8gbW11X25vdGlmaWVyX3N5bmNocm9uaXplKCkKKyAqIGluIHRoZWlyIG1vZHVsZSBleGl0IGZ1bmN0aW9ucy4KICAqLwogaW50IGhtbV9taXJyb3JfcmVnaXN0ZXIoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CisJc3RydWN0IG1tdV9ub3RpZmllciAqbW47CisKIAlsb2NrZGVwX2Fzc2VydF9oZWxkX3dyaXRlKCZtbS0+bW1hcF9zZW0pOwogCiAJLyogU2FuaXR5IGNoZWNrICovCiAJaWYgKCFtbSB8fCAhbWlycm9yIHx8ICFtaXJyb3ItPm9wcykKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQltaXJyb3ItPmhtbSA9IGhtbV9nZXRfb3JfY3JlYXRlKG1tKTsKLQlpZiAoIW1pcnJvci0+aG1tKQotCQlyZXR1cm4gLUVOT01FTTsKKwltbiA9IG1tdV9ub3RpZmllcl9nZXRfbG9ja2VkKCZobW1fbW11X25vdGlmaWVyX29wcywgbW0pOworCWlmIChJU19FUlIobW4pKQorCQlyZXR1cm4gUFRSX0VSUihtbik7CisJbWlycm9yLT5obW0gPSBjb250YWluZXJfb2YobW4sIHN0cnVjdCBobW0sIG1tdV9ub3RpZmllcik7CiAKIAlkb3duX3dyaXRlKCZtaXJyb3ItPmhtbS0+bWlycm9yc19zZW0pOwogCWxpc3RfYWRkKCZtaXJyb3ItPmxpc3QsICZtaXJyb3ItPmhtbS0+bWlycm9ycyk7CkBAIC0yNzcsNyArMjA5LDcgQEAgdm9pZCBobW1fbWlycm9yX3VucmVnaXN0ZXIoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvcikKIAlkb3duX3dyaXRlKCZobW0tPm1pcnJvcnNfc2VtKTsKIAlsaXN0X2RlbCgmbWlycm9yLT5saXN0KTsKIAl1cF93cml0ZSgmaG1tLT5taXJyb3JzX3NlbSk7Ci0JaG1tX3B1dChobW0pOworCW1tdV9ub3RpZmllcl9wdXQoJmhtbS0+bW11X25vdGlmaWVyKTsKIH0KIEVYUE9SVF9TWU1CT0woaG1tX21pcnJvcl91bnJlZ2lzdGVyKTsKIApAQCAtMjg1LDggKzIxNyw3IEBAIHN0cnVjdCBobW1fdm1hX3dhbGsgewogCXN0cnVjdCBobW1fcmFuZ2UJKnJhbmdlOwogCXN0cnVjdCBkZXZfcGFnZW1hcAkqcGdtYXA7CiAJdW5zaWduZWQgbG9uZwkJbGFzdDsKLQlib29sCQkJZmF1bHQ7Ci0JYm9vbAkJCWJsb2NrOworCXVuc2lnbmVkIGludAkJZmxhZ3M7CiB9OwogCiBzdGF0aWMgaW50IGhtbV92bWFfZG9fZmF1bHQoc3RydWN0IG1tX3dhbGsgKndhbGssIHVuc2lnbmVkIGxvbmcgYWRkciwKQEAgLTI5OCwxNyArMjI5LDI3IEBAIHN0YXRpYyBpbnQgaG1tX3ZtYV9kb19mYXVsdChzdHJ1Y3QgbW1fd2FsayAqd2FsaywgdW5zaWduZWQgbG9uZyBhZGRyLAogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gd2Fsay0+dm1hOwogCXZtX2ZhdWx0X3QgcmV0OwogCi0JZmxhZ3MgfD0gaG1tX3ZtYV93YWxrLT5ibG9jayA/IDAgOiBGQVVMVF9GTEFHX0FMTE9XX1JFVFJZOwotCWZsYWdzIHw9IHdyaXRlX2ZhdWx0ID8gRkFVTFRfRkxBR19XUklURSA6IDA7CisJaWYgKCF2bWEpCisJCWdvdG8gZXJyOworCisJaWYgKGhtbV92bWFfd2Fsay0+ZmxhZ3MgJiBITU1fRkFVTFRfQUxMT1dfUkVUUlkpCisJCWZsYWdzIHw9IEZBVUxUX0ZMQUdfQUxMT1dfUkVUUlk7CisJaWYgKHdyaXRlX2ZhdWx0KQorCQlmbGFncyB8PSBGQVVMVF9GTEFHX1dSSVRFOworCiAJcmV0ID0gaGFuZGxlX21tX2ZhdWx0KHZtYSwgYWRkciwgZmxhZ3MpOwotCWlmIChyZXQgJiBWTV9GQVVMVF9SRVRSWSkKKwlpZiAocmV0ICYgVk1fRkFVTFRfUkVUUlkpIHsKKwkJLyogTm90ZSwgaGFuZGxlX21tX2ZhdWx0IGRpZCB1cF9yZWFkKCZtbS0+bW1hcF9zZW0pKSAqLwogCQlyZXR1cm4gLUVBR0FJTjsKLQlpZiAocmV0ICYgVk1fRkFVTFRfRVJST1IpIHsKLQkJKnBmbiA9IHJhbmdlLT52YWx1ZXNbSE1NX1BGTl9FUlJPUl07Ci0JCXJldHVybiAtRUZBVUxUOwogCX0KKwlpZiAocmV0ICYgVk1fRkFVTFRfRVJST1IpCisJCWdvdG8gZXJyOwogCiAJcmV0dXJuIC1FQlVTWTsKKworZXJyOgorCSpwZm4gPSByYW5nZS0+dmFsdWVzW0hNTV9QRk5fRVJST1JdOworCXJldHVybiAtRUZBVUxUOwogfQogCiBzdGF0aWMgaW50IGhtbV9wZm5zX2JhZCh1bnNpZ25lZCBsb25nIGFkZHIsCkBAIC0zMjgsOCArMjY5LDggQEAgc3RhdGljIGludCBobW1fcGZuc19iYWQodW5zaWduZWQgbG9uZyBhZGRyLAogfQogCiAvKgotICogaG1tX3ZtYV93YWxrX2hvbGUoKSAtIGhhbmRsZSBhIHJhbmdlIGxhY2tpbmcgdmFsaWQgcG1kIG9yIHB0ZShzKQotICogQHN0YXJ0OiByYW5nZSB2aXJ0dWFsIHN0YXJ0IGFkZHJlc3MgKGluY2x1c2l2ZSkKKyAqIGhtbV92bWFfd2Fsa19ob2xlXygpIC0gaGFuZGxlIGEgcmFuZ2UgbGFja2luZyB2YWxpZCBwbWQgb3IgcHRlKHMpCisgKiBAYWRkcjogcmFuZ2UgdmlydHVhbCBzdGFydCBhZGRyZXNzIChpbmNsdXNpdmUpCiAgKiBAZW5kOiByYW5nZSB2aXJ0dWFsIGVuZCBhZGRyZXNzIChleGNsdXNpdmUpCiAgKiBAZmF1bHQ6IHNob3VsZCB3ZSBmYXVsdCBvciBub3QgPwogICogQHdyaXRlX2ZhdWx0OiB3cml0ZSBmYXVsdCA/CkBAIC0zNDYsMTMgKzI4NywxNSBAQCBzdGF0aWMgaW50IGhtbV92bWFfd2Fsa19ob2xlXyh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogCXN0cnVjdCBobW1fdm1hX3dhbGsgKmhtbV92bWFfd2FsayA9IHdhbGstPnByaXZhdGU7CiAJc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UgPSBobW1fdm1hX3dhbGstPnJhbmdlOwogCXVpbnQ2NF90ICpwZm5zID0gcmFuZ2UtPnBmbnM7Ci0JdW5zaWduZWQgbG9uZyBpLCBwYWdlX3NpemU7CisJdW5zaWduZWQgbG9uZyBpOwogCiAJaG1tX3ZtYV93YWxrLT5sYXN0ID0gYWRkcjsKLQlwYWdlX3NpemUgPSBobW1fcmFuZ2VfcGFnZV9zaXplKHJhbmdlKTsKLQlpID0gKGFkZHIgLSByYW5nZS0+c3RhcnQpID4+IHJhbmdlLT5wYWdlX3NoaWZ0OworCWkgPSAoYWRkciAtIHJhbmdlLT5zdGFydCkgPj4gUEFHRV9TSElGVDsKIAotCWZvciAoOyBhZGRyIDwgZW5kOyBhZGRyICs9IHBhZ2Vfc2l6ZSwgaSsrKSB7CisJaWYgKHdyaXRlX2ZhdWx0ICYmIHdhbGstPnZtYSAmJiAhKHdhbGstPnZtYS0+dm1fZmxhZ3MgJiBWTV9XUklURSkpCisJCXJldHVybiAtRVBFUk07CisKKwlmb3IgKDsgYWRkciA8IGVuZDsgYWRkciArPSBQQUdFX1NJWkUsIGkrKykgewogCQlwZm5zW2ldID0gcmFuZ2UtPnZhbHVlc1tITU1fUEZOX05PTkVdOwogCQlpZiAoZmF1bHQgfHwgd3JpdGVfZmF1bHQpIHsKIAkJCWludCByZXQ7CkBAIC0zNzMsMTUgKzMxNiwxNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaG1tX3B0ZV9uZWVkX2ZhdWx0KGNvbnN0IHN0cnVjdCBobW1fdm1hX3dhbGsgKmhtbV92bWFfd2FsaywKIHsKIAlzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSA9IGhtbV92bWFfd2Fsay0+cmFuZ2U7CiAKLQlpZiAoIWhtbV92bWFfd2Fsay0+ZmF1bHQpCisJaWYgKGhtbV92bWFfd2Fsay0+ZmxhZ3MgJiBITU1fRkFVTFRfU05BUFNIT1QpCiAJCXJldHVybjsKIAogCS8qCiAJICogU28gd2Ugbm90IG9ubHkgY29uc2lkZXIgdGhlIGluZGl2aWR1YWwgcGVyIHBhZ2UgcmVxdWVzdCB3ZSBhbHNvCiAJICogY29uc2lkZXIgdGhlIGRlZmF1bHQgZmxhZ3MgcmVxdWVzdGVkIGZvciB0aGUgcmFuZ2UuIFRoZSBBUEkgY2FuCi0JICogYmUgdXNlIGluIDIgZmFzaGlvbnMuIFRoZSBmaXJzdCBvbmUgd2hlcmUgdGhlIEhNTSB1c2VyIGNvYWxlc2NlCi0JICogbXVsdGlwbGUgcGFnZSBmYXVsdCBpbnRvIG9uZSByZXF1ZXN0IGFuZCBzZXQgZmxhZ3MgcGVyIHBmbnMgZm9yCi0JICogb2YgdGhvc2UgZmF1bHRzLiBUaGUgc2Vjb25kIG9uZSB3aGVyZSB0aGUgSE1NIHVzZXIgd2FudCB0byBwcmUtCisJICogYmUgdXNlZCAyIHdheXMuIFRoZSBmaXJzdCBvbmUgd2hlcmUgdGhlIEhNTSB1c2VyIGNvYWxlc2NlcworCSAqIG11bHRpcGxlIHBhZ2UgZmF1bHRzIGludG8gb25lIHJlcXVlc3QgYW5kIHNldHMgZmxhZ3MgcGVyIHBmbiBmb3IKKwkgKiB0aG9zZSBmYXVsdHMuIFRoZSBzZWNvbmQgb25lIHdoZXJlIHRoZSBITU0gdXNlciB3YW50cyB0byBwcmUtCiAJICogZmF1bHQgYSByYW5nZSB3aXRoIHNwZWNpZmljIGZsYWdzLiBGb3IgdGhlIGxhdHRlciBvbmUgaXQgaXMgYQogCSAqIHdhc3RlIHRvIGhhdmUgdGhlIHVzZXIgcHJlLWZpbGwgdGhlIHBmbiBhcnJheXMgd2l0aCBhIGRlZmF1bHQKIAkgKiBmbGFncyB2YWx1ZS4KQEAgLTM5MSw3ICszMzQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaG1tX3B0ZV9uZWVkX2ZhdWx0KGNvbnN0IHN0cnVjdCBobW1fdm1hX3dhbGsgKmhtbV92bWFfd2FsaywKIAkvKiBXZSBhcmVuJ3QgYXNrIHRvIGRvIGFueXRoaW5nIC4uLiAqLwogCWlmICghKHBmbnMgJiByYW5nZS0+ZmxhZ3NbSE1NX1BGTl9WQUxJRF0pKQogCQlyZXR1cm47Ci0JLyogSWYgdGhpcyBpcyBkZXZpY2UgbWVtb3J5IHRoYW4gb25seSBmYXVsdCBpZiBleHBsaWNpdGx5IHJlcXVlc3RlZCAqLworCS8qIElmIHRoaXMgaXMgZGV2aWNlIG1lbW9yeSB0aGVuIG9ubHkgZmF1bHQgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQgKi8KIAlpZiAoKGNwdV9mbGFncyAmIHJhbmdlLT5mbGFnc1tITU1fUEZOX0RFVklDRV9QUklWQVRFXSkpIHsKIAkJLyogRG8gd2UgZmF1bHQgb24gZGV2aWNlIG1lbW9yeSA/ICovCiAJCWlmIChwZm5zICYgcmFuZ2UtPmZsYWdzW0hNTV9QRk5fREVWSUNFX1BSSVZBVEVdKSB7CkBAIC00MTgsNyArMzYxLDcgQEAgc3RhdGljIHZvaWQgaG1tX3JhbmdlX25lZWRfZmF1bHQoY29uc3Qgc3RydWN0IGhtbV92bWFfd2FsayAqaG1tX3ZtYV93YWxrLAogewogCXVuc2lnbmVkIGxvbmcgaTsKIAotCWlmICghaG1tX3ZtYV93YWxrLT5mYXVsdCkgeworCWlmIChobW1fdm1hX3dhbGstPmZsYWdzICYgSE1NX0ZBVUxUX1NOQVBTSE9UKSB7CiAJCSpmYXVsdCA9ICp3cml0ZV9mYXVsdCA9IGZhbHNlOwogCQlyZXR1cm47CiAJfQpAQCAtNDU4LDIyICs0MDEsMTAgQEAgc3RhdGljIGlubGluZSB1aW50NjRfdCBwbWRfdG9faG1tX3Bmbl9mbGFncyhzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwgcG1kX3QgcG1kKQogCQkJCXJhbmdlLT5mbGFnc1tITU1fUEZOX1ZBTElEXTsKIH0KIAotc3RhdGljIGlubGluZSB1aW50NjRfdCBwdWRfdG9faG1tX3Bmbl9mbGFncyhzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwgcHVkX3QgcHVkKQotewotCWlmICghcHVkX3ByZXNlbnQocHVkKSkKLQkJcmV0dXJuIDA7Ci0JcmV0dXJuIHB1ZF93cml0ZShwdWQpID8gcmFuZ2UtPmZsYWdzW0hNTV9QRk5fVkFMSURdIHwKLQkJCQlyYW5nZS0+ZmxhZ3NbSE1NX1BGTl9XUklURV0gOgotCQkJCXJhbmdlLT5mbGFnc1tITU1fUEZOX1ZBTElEXTsKLX0KLQotc3RhdGljIGludCBobW1fdm1hX2hhbmRsZV9wbWQoc3RydWN0IG1tX3dhbGsgKndhbGssCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIGFkZHIsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgICAgIHVpbnQ2NF90ICpwZm5zLAotCQkJICAgICAgcG1kX3QgcG1kKQotewogI2lmZGVmIENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRQorc3RhdGljIGludCBobW1fdm1hX2hhbmRsZV9wbWQoc3RydWN0IG1tX3dhbGsgKndhbGssIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJdW5zaWduZWQgbG9uZyBlbmQsIHVpbnQ2NF90ICpwZm5zLCBwbWRfdCBwbWQpCit7CiAJc3RydWN0IGhtbV92bWFfd2FsayAqaG1tX3ZtYV93YWxrID0gd2Fsay0+cHJpdmF0ZTsKIAlzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSA9IGhtbV92bWFfd2Fsay0+cmFuZ2U7CiAJdW5zaWduZWQgbG9uZyBwZm4sIG5wYWdlcywgaTsKQEAgLTQ4OCw3ICs0MTksNyBAQCBzdGF0aWMgaW50IGhtbV92bWFfaGFuZGxlX3BtZChzdHJ1Y3QgbW1fd2FsayAqd2FsaywKIAlpZiAocG1kX3Byb3Rub25lKHBtZCkgfHwgZmF1bHQgfHwgd3JpdGVfZmF1bHQpCiAJCXJldHVybiBobW1fdm1hX3dhbGtfaG9sZV8oYWRkciwgZW5kLCBmYXVsdCwgd3JpdGVfZmF1bHQsIHdhbGspOwogCi0JcGZuID0gcG1kX3BmbihwbWQpICsgcHRlX2luZGV4KGFkZHIpOworCXBmbiA9IHBtZF9wZm4ocG1kKSArICgoYWRkciAmIH5QTURfTUFTSykgPj4gUEFHRV9TSElGVCk7CiAJZm9yIChpID0gMDsgYWRkciA8IGVuZDsgYWRkciArPSBQQUdFX1NJWkUsIGkrKywgcGZuKyspIHsKIAkJaWYgKHBtZF9kZXZtYXAocG1kKSkgewogCQkJaG1tX3ZtYV93YWxrLT5wZ21hcCA9IGdldF9kZXZfcGFnZW1hcChwZm4sCkBAIC01MDQsMTEgKzQzNSwxMiBAQCBzdGF0aWMgaW50IGhtbV92bWFfaGFuZGxlX3BtZChzdHJ1Y3QgbW1fd2FsayAqd2FsaywKIAl9CiAJaG1tX3ZtYV93YWxrLT5sYXN0ID0gZW5kOwogCXJldHVybiAwOwotI2Vsc2UKLQkvKiBJZiBUSFAgaXMgbm90IGVuYWJsZWQgdGhlbiB3ZSBzaG91bGQgbmV2ZXIgcmVhY2ggdGhhdCBjb2RlICEgKi8KLQlyZXR1cm4gLUVJTlZBTDsKLSNlbmRpZgogfQorI2Vsc2UgLyogQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFICovCisvKiBzdHViIHRvIGFsbG93IHRoZSBjb2RlIGJlbG93IHRvIGNvbXBpbGUgKi8KK2ludCBobW1fdm1hX2hhbmRsZV9wbWQoc3RydWN0IG1tX3dhbGsgKndhbGssIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJdW5zaWduZWQgbG9uZyBlbmQsIHVpbnQ2NF90ICpwZm5zLCBwbWRfdCBwbWQpOworI2VuZGlmIC8qIENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSAqLwogCiBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IHB0ZV90b19obW1fcGZuX2ZsYWdzKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLCBwdGVfdCBwdGUpCiB7CkBAIC01MjUsNyArNDU3LDYgQEAgc3RhdGljIGludCBobW1fdm1hX2hhbmRsZV9wdGUoc3RydWN0IG1tX3dhbGsgKndhbGssIHVuc2lnbmVkIGxvbmcgYWRkciwKIHsKIAlzdHJ1Y3QgaG1tX3ZtYV93YWxrICpobW1fdm1hX3dhbGsgPSB3YWxrLT5wcml2YXRlOwogCXN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlID0gaG1tX3ZtYV93YWxrLT5yYW5nZTsKLQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHdhbGstPnZtYTsKIAlib29sIGZhdWx0LCB3cml0ZV9mYXVsdDsKIAl1aW50NjRfdCBjcHVfZmxhZ3M7CiAJcHRlX3QgcHRlID0gKnB0ZXA7CkBAIC01NDYsNiArNDc3LDkgQEAgc3RhdGljIGludCBobW1fdm1hX2hhbmRsZV9wdGUoc3RydWN0IG1tX3dhbGsgKndhbGssIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJc3dwX2VudHJ5X3QgZW50cnkgPSBwdGVfdG9fc3dwX2VudHJ5KHB0ZSk7CiAKIAkJaWYgKCFub25fc3dhcF9lbnRyeShlbnRyeSkpIHsKKwkJCWNwdV9mbGFncyA9IHB0ZV90b19obW1fcGZuX2ZsYWdzKHJhbmdlLCBwdGUpOworCQkJaG1tX3B0ZV9uZWVkX2ZhdWx0KGhtbV92bWFfd2Fsaywgb3JpZ19wZm4sIGNwdV9mbGFncywKKwkJCQkJICAgJmZhdWx0LCAmd3JpdGVfZmF1bHQpOwogCQkJaWYgKGZhdWx0IHx8IHdyaXRlX2ZhdWx0KQogCQkJCWdvdG8gZmF1bHQ7CiAJCQlyZXR1cm4gMDsKQEAgLTU3NCw4ICs1MDgsNyBAQCBzdGF0aWMgaW50IGhtbV92bWFfaGFuZGxlX3B0ZShzdHJ1Y3QgbW1fd2FsayAqd2FsaywgdW5zaWduZWQgbG9uZyBhZGRyLAogCQkJaWYgKGZhdWx0IHx8IHdyaXRlX2ZhdWx0KSB7CiAJCQkJcHRlX3VubWFwKHB0ZXApOwogCQkJCWhtbV92bWFfd2Fsay0+bGFzdCA9IGFkZHI7Ci0JCQkJbWlncmF0aW9uX2VudHJ5X3dhaXQodm1hLT52bV9tbSwKLQkJCQkJCSAgICAgcG1kcCwgYWRkcik7CisJCQkJbWlncmF0aW9uX2VudHJ5X3dhaXQod2Fsay0+bW0sIHBtZHAsIGFkZHIpOwogCQkJCXJldHVybiAtRUJVU1k7CiAJCQl9CiAJCQlyZXR1cm4gMDsKQEAgLTYyMywyMSArNTU2LDE2IEBAIHN0YXRpYyBpbnQgaG1tX3ZtYV93YWxrX3BtZChwbWRfdCAqcG1kcCwKIHsKIAlzdHJ1Y3QgaG1tX3ZtYV93YWxrICpobW1fdm1hX3dhbGsgPSB3YWxrLT5wcml2YXRlOwogCXN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlID0gaG1tX3ZtYV93YWxrLT5yYW5nZTsKLQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHdhbGstPnZtYTsKIAl1aW50NjRfdCAqcGZucyA9IHJhbmdlLT5wZm5zOwogCXVuc2lnbmVkIGxvbmcgYWRkciA9IHN0YXJ0LCBpOwogCXB0ZV90ICpwdGVwOwogCXBtZF90IHBtZDsKIAotCiBhZ2FpbjoKIAlwbWQgPSBSRUFEX09OQ0UoKnBtZHApOwogCWlmIChwbWRfbm9uZShwbWQpKQogCQlyZXR1cm4gaG1tX3ZtYV93YWxrX2hvbGUoc3RhcnQsIGVuZCwgd2Fsayk7CiAKLQlpZiAocG1kX2h1Z2UocG1kKSAmJiAocmFuZ2UtPnZtYS0+dm1fZmxhZ3MgJiBWTV9IVUdFVExCKSkKLQkJcmV0dXJuIGhtbV9wZm5zX2JhZChzdGFydCwgZW5kLCB3YWxrKTsKLQogCWlmICh0aHBfbWlncmF0aW9uX3N1cHBvcnRlZCgpICYmIGlzX3BtZF9taWdyYXRpb25fZW50cnkocG1kKSkgewogCQlib29sIGZhdWx0LCB3cml0ZV9mYXVsdDsKIAkJdW5zaWduZWQgbG9uZyBucGFnZXM7CkBAIC02NTEsNyArNTc5LDcgQEAgc3RhdGljIGludCBobW1fdm1hX3dhbGtfcG1kKHBtZF90ICpwbWRwLAogCQkJCSAgICAgMCwgJmZhdWx0LCAmd3JpdGVfZmF1bHQpOwogCQlpZiAoZmF1bHQgfHwgd3JpdGVfZmF1bHQpIHsKIAkJCWhtbV92bWFfd2Fsay0+bGFzdCA9IGFkZHI7Ci0JCQlwbWRfbWlncmF0aW9uX2VudHJ5X3dhaXQodm1hLT52bV9tbSwgcG1kcCk7CisJCQlwbWRfbWlncmF0aW9uX2VudHJ5X3dhaXQod2Fsay0+bW0sIHBtZHApOwogCQkJcmV0dXJuIC1FQlVTWTsKIAkJfQogCQlyZXR1cm4gMDsKQEAgLTY2MCwxMSArNTg4LDExIEBAIHN0YXRpYyBpbnQgaG1tX3ZtYV93YWxrX3BtZChwbWRfdCAqcG1kcCwKIAogCWlmIChwbWRfZGV2bWFwKHBtZCkgfHwgcG1kX3RyYW5zX2h1Z2UocG1kKSkgewogCQkvKgotCQkgKiBObyBuZWVkIHRvIHRha2UgcG1kX2xvY2sgaGVyZSwgZXZlbiBpZiBzb21lIG90aGVyIHRocmVhZHMKKwkJICogTm8gbmVlZCB0byB0YWtlIHBtZF9sb2NrIGhlcmUsIGV2ZW4gaWYgc29tZSBvdGhlciB0aHJlYWQKIAkJICogaXMgc3BsaXR0aW5nIHRoZSBodWdlIHBtZCB3ZSB3aWxsIGdldCB0aGF0IGV2ZW50IHRocm91Z2gKIAkJICogbW11X25vdGlmaWVyIGNhbGxiYWNrLgogCQkgKgotCQkgKiBTbyBqdXN0IHJlYWQgcG1kIHZhbHVlIGFuZCBjaGVjayBhZ2FpbiBpdHMgYSB0cmFuc3BhcmVudAorCQkgKiBTbyBqdXN0IHJlYWQgcG1kIHZhbHVlIGFuZCBjaGVjayBhZ2FpbiBpdCdzIGEgdHJhbnNwYXJlbnQKIAkJICogaHVnZSBvciBkZXZpY2UgbWFwcGluZyBvbmUgYW5kIGNvbXB1dGUgY29ycmVzcG9uZGluZyBwZm4KIAkJICogdmFsdWVzLgogCQkgKi8KQEAgLTY3OCw3ICs2MDYsNyBAQCBzdGF0aWMgaW50IGhtbV92bWFfd2Fsa19wbWQocG1kX3QgKnBtZHAsCiAJfQogCiAJLyoKLQkgKiBXZSBoYXZlIGhhbmRsZWQgYWxsIHRoZSB2YWxpZCBjYXNlIGFib3ZlIGllIGVpdGhlciBub25lLCBtaWdyYXRpb24sCisJICogV2UgaGF2ZSBoYW5kbGVkIGFsbCB0aGUgdmFsaWQgY2FzZXMgYWJvdmUgaWUgZWl0aGVyIG5vbmUsIG1pZ3JhdGlvbiwKIAkgKiBodWdlIG9yIHRyYW5zcGFyZW50IGh1Z2UuIEF0IHRoaXMgcG9pbnQgZWl0aGVyIGl0IGlzIGEgdmFsaWQgcG1kCiAJICogZW50cnkgcG9pbnRpbmcgdG8gcHRlIGRpcmVjdG9yeSBvciBpdCBpcyBhIGJhZCBwbWQgdGhhdCB3aWxsIG5vdAogCSAqIHJlY292ZXIuCkBAIC03MTQsMTAgKzY0MiwxOSBAQCBzdGF0aWMgaW50IGhtbV92bWFfd2Fsa19wbWQocG1kX3QgKnBtZHAsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaG1tX3ZtYV93YWxrX3B1ZChwdWRfdCAqcHVkcCwKLQkJCSAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LAotCQkJICAgIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJICAgIHN0cnVjdCBtbV93YWxrICp3YWxrKQorI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfSEFTX1BURV9ERVZNQVApICYmIFwKKyAgICBkZWZpbmVkKENPTkZJR19IQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0VfUFVEKQorc3RhdGljIGlubGluZSB1aW50NjRfdCBwdWRfdG9faG1tX3Bmbl9mbGFncyhzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwgcHVkX3QgcHVkKQoreworCWlmICghcHVkX3ByZXNlbnQocHVkKSkKKwkJcmV0dXJuIDA7CisJcmV0dXJuIHB1ZF93cml0ZShwdWQpID8gcmFuZ2UtPmZsYWdzW0hNTV9QRk5fVkFMSURdIHwKKwkJCQlyYW5nZS0+ZmxhZ3NbSE1NX1BGTl9XUklURV0gOgorCQkJCXJhbmdlLT5mbGFnc1tITU1fUEZOX1ZBTElEXTsKK30KKworc3RhdGljIGludCBobW1fdm1hX3dhbGtfcHVkKHB1ZF90ICpwdWRwLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKKwkJc3RydWN0IG1tX3dhbGsgKndhbGspCiB7CiAJc3RydWN0IGhtbV92bWFfd2FsayAqaG1tX3ZtYV93YWxrID0gd2Fsay0+cHJpdmF0ZTsKIAlzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSA9IGhtbV92bWFfd2Fsay0+cmFuZ2U7CkBAIC03ODEsNDIgKzcxOCwyOSBAQCBzdGF0aWMgaW50IGhtbV92bWFfd2Fsa19wdWQocHVkX3QgKnB1ZHAsCiAKIAlyZXR1cm4gMDsKIH0KKyNlbHNlCisjZGVmaW5lIGhtbV92bWFfd2Fsa19wdWQJTlVMTAorI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfSFVHRVRMQl9QQUdFCiBzdGF0aWMgaW50IGhtbV92bWFfd2Fsa19odWdldGxiX2VudHJ5KHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgaG1hc2ssCiAJCQkJICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCiAJCQkJICAgICAgc3RydWN0IG1tX3dhbGsgKndhbGspCiB7Ci0jaWZkZWYgQ09ORklHX0hVR0VUTEJfUEFHRQotCXVuc2lnbmVkIGxvbmcgYWRkciA9IHN0YXJ0LCBpLCBwZm4sIG1hc2ssIHNpemUsIHBmbl9pbmM7CisJdW5zaWduZWQgbG9uZyBhZGRyID0gc3RhcnQsIGksIHBmbjsKIAlzdHJ1Y3QgaG1tX3ZtYV93YWxrICpobW1fdm1hX3dhbGsgPSB3YWxrLT5wcml2YXRlOwogCXN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlID0gaG1tX3ZtYV93YWxrLT5yYW5nZTsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHdhbGstPnZtYTsKLQlzdHJ1Y3QgaHN0YXRlICpoID0gaHN0YXRlX3ZtYSh2bWEpOwogCXVpbnQ2NF90IG9yaWdfcGZuLCBjcHVfZmxhZ3M7CiAJYm9vbCBmYXVsdCwgd3JpdGVfZmF1bHQ7CiAJc3BpbmxvY2tfdCAqcHRsOwogCXB0ZV90IGVudHJ5OwogCWludCByZXQgPSAwOwogCi0Jc2l6ZSA9IDFVTCA8PCBodWdlX3BhZ2Vfc2hpZnQoaCk7Ci0JbWFzayA9IHNpemUgLSAxOwotCWlmIChyYW5nZS0+cGFnZV9zaGlmdCAhPSBQQUdFX1NISUZUKSB7Ci0JCS8qIE1ha2Ugc3VyZSB3ZSBhcmUgbG9va2luZyBhdCBmdWxsIHBhZ2UuICovCi0JCWlmIChzdGFydCAmIG1hc2spCi0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJaWYgKGVuZCA8IChzdGFydCArIHNpemUpKQotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCXBmbl9pbmMgPSBzaXplID4+IFBBR0VfU0hJRlQ7Ci0JfSBlbHNlIHsKLQkJcGZuX2luYyA9IDE7Ci0JCXNpemUgPSBQQUdFX1NJWkU7Ci0JfQotCi0KLQlwdGwgPSBodWdlX3B0ZV9sb2NrKGhzdGF0ZV92bWEod2Fsay0+dm1hKSwgd2Fsay0+bW0sIHB0ZSk7CisJcHRsID0gaHVnZV9wdGVfbG9jayhoc3RhdGVfdm1hKHZtYSksIHdhbGstPm1tLCBwdGUpOwogCWVudHJ5ID0gaHVnZV9wdGVwX2dldChwdGUpOwogCi0JaSA9IChzdGFydCAtIHJhbmdlLT5zdGFydCkgPj4gcmFuZ2UtPnBhZ2Vfc2hpZnQ7CisJaSA9IChzdGFydCAtIHJhbmdlLT5zdGFydCkgPj4gUEFHRV9TSElGVDsKIAlvcmlnX3BmbiA9IHJhbmdlLT5wZm5zW2ldOwogCXJhbmdlLT5wZm5zW2ldID0gcmFuZ2UtPnZhbHVlc1tITU1fUEZOX05PTkVdOwogCWNwdV9mbGFncyA9IHB0ZV90b19obW1fcGZuX2ZsYWdzKHJhbmdlLCBlbnRyeSk7CkBAIC04MjgsOCArNzUyLDggQEAgc3RhdGljIGludCBobW1fdm1hX3dhbGtfaHVnZXRsYl9lbnRyeShwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIGhtYXNrLAogCQlnb3RvIHVubG9jazsKIAl9CiAKLQlwZm4gPSBwdGVfcGZuKGVudHJ5KSArICgoc3RhcnQgJiBtYXNrKSA+PiByYW5nZS0+cGFnZV9zaGlmdCk7Ci0JZm9yICg7IGFkZHIgPCBlbmQ7IGFkZHIgKz0gc2l6ZSwgaSsrLCBwZm4gKz0gcGZuX2luYykKKwlwZm4gPSBwdGVfcGZuKGVudHJ5KSArICgoc3RhcnQgJiB+aG1hc2spID4+IFBBR0VfU0hJRlQpOworCWZvciAoOyBhZGRyIDwgZW5kOyBhZGRyICs9IFBBR0VfU0laRSwgaSsrLCBwZm4rKykKIAkJcmFuZ2UtPnBmbnNbaV0gPSBobW1fZGV2aWNlX2VudHJ5X2Zyb21fcGZuKHJhbmdlLCBwZm4pIHwKIAkJCQkgY3B1X2ZsYWdzOwogCWhtbV92bWFfd2Fsay0+bGFzdCA9IGVuZDsKQEAgLTg0MSwxMCArNzY1LDEwIEBAIHN0YXRpYyBpbnQgaG1tX3ZtYV93YWxrX2h1Z2V0bGJfZW50cnkocHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBobWFzaywKIAkJcmV0dXJuIGhtbV92bWFfd2Fsa19ob2xlXyhhZGRyLCBlbmQsIGZhdWx0LCB3cml0ZV9mYXVsdCwgd2Fsayk7CiAKIAlyZXR1cm4gcmV0OwotI2Vsc2UgLyogQ09ORklHX0hVR0VUTEJfUEFHRSAqLwotCXJldHVybiAtRUlOVkFMOwotI2VuZGlmCiB9CisjZWxzZQorI2RlZmluZSBobW1fdm1hX3dhbGtfaHVnZXRsYl9lbnRyeSBOVUxMCisjZW5kaWYgLyogQ09ORklHX0hVR0VUTEJfUEFHRSAqLwogCiBzdGF0aWMgdm9pZCBobW1fcGZuc19jbGVhcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwKIAkJCSAgIHVpbnQ2NF90ICpwZm5zLApAQCAtODU5LDQ0ICs3ODMsMzIgQEAgc3RhdGljIHZvaWQgaG1tX3BmbnNfY2xlYXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UsCiAgKiBobW1fcmFuZ2VfcmVnaXN0ZXIoKSAtIHN0YXJ0IHRyYWNraW5nIGNoYW5nZSB0byBDUFUgcGFnZSB0YWJsZSBvdmVyIGEgcmFuZ2UKICAqIEByYW5nZTogcmFuZ2UKICAqIEBtbTogdGhlIG1tIHN0cnVjdCBmb3IgdGhlIHJhbmdlIG9mIHZpcnR1YWwgYWRkcmVzcwotICogQHN0YXJ0OiBzdGFydCB2aXJ0dWFsIGFkZHJlc3MgKGluY2x1c2l2ZSkKLSAqIEBlbmQ6IGVuZCB2aXJ0dWFsIGFkZHJlc3MgKGV4Y2x1c2l2ZSkKLSAqIEBwYWdlX3NoaWZ0OiBleHBlY3QgcGFnZSBzaGlmdCBmb3IgdGhlIHJhbmdlCi0gKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLUVGQVVMVCBpZiB0aGUgYWRkcmVzcyBzcGFjZSBpcyBubyBsb25nZXIgdmFsaWQKKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLUVGQVVMVCBpZiB0aGUgYWRkcmVzcyBzcGFjZSBpcyBubyBsb25nZXIgdmFsaWQKICAqCiAgKiBUcmFjayB1cGRhdGVzIHRvIHRoZSBDUFUgcGFnZSB0YWJsZSBzZWUgaW5jbHVkZS9saW51eC9obW0uaAogICovCi1pbnQgaG1tX3JhbmdlX3JlZ2lzdGVyKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAotCQkgICAgICAgc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwKLQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCSAgICAgICB1bnNpZ25lZCBsb25nIGVuZCwKLQkJICAgICAgIHVuc2lnbmVkIHBhZ2Vfc2hpZnQpCitpbnQgaG1tX3JhbmdlX3JlZ2lzdGVyKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLCBzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yKQogewotCXVuc2lnbmVkIGxvbmcgbWFzayA9ICgoMVVMIDw8IHBhZ2Vfc2hpZnQpIC0gMVVMKTsKIAlzdHJ1Y3QgaG1tICpobW0gPSBtaXJyb3ItPmhtbTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJcmFuZ2UtPnZhbGlkID0gZmFsc2U7CiAJcmFuZ2UtPmhtbSA9IE5VTEw7CiAKLQlpZiAoKHN0YXJ0ICYgbWFzaykgfHwgKGVuZCAmIG1hc2spKQorCWlmICgocmFuZ2UtPnN0YXJ0ICYgKFBBR0VfU0laRSAtIDEpKSB8fCAocmFuZ2UtPmVuZCAmIChQQUdFX1NJWkUgLSAxKSkpCiAJCXJldHVybiAtRUlOVkFMOwotCWlmIChzdGFydCA+PSBlbmQpCisJaWYgKHJhbmdlLT5zdGFydCA+PSByYW5nZS0+ZW5kKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXJhbmdlLT5wYWdlX3NoaWZ0ID0gcGFnZV9zaGlmdDsKLQlyYW5nZS0+c3RhcnQgPSBzdGFydDsKLQlyYW5nZS0+ZW5kID0gZW5kOwotCiAJLyogUHJldmVudCBobW1fcmVsZWFzZSgpIGZyb20gcnVubmluZyB3aGlsZSB0aGUgcmFuZ2UgaXMgdmFsaWQgKi8KLQlpZiAoIW1tZ2V0X25vdF96ZXJvKGhtbS0+bW0pKQorCWlmICghbW1nZXRfbm90X3plcm8oaG1tLT5tbXVfbm90aWZpZXIubW0pKQogCQlyZXR1cm4gLUVGQVVMVDsKIAogCS8qIEluaXRpYWxpemUgcmFuZ2UgdG8gdHJhY2sgQ1BVIHBhZ2UgdGFibGUgdXBkYXRlcy4gKi8KIAlzcGluX2xvY2tfaXJxc2F2ZSgmaG1tLT5yYW5nZXNfbG9jaywgZmxhZ3MpOwogCiAJcmFuZ2UtPmhtbSA9IGhtbTsKLQlrcmVmX2dldCgmaG1tLT5rcmVmKTsKIAlsaXN0X2FkZCgmcmFuZ2UtPmxpc3QsICZobW0tPnJhbmdlcyk7CiAKIAkvKgpAQCAtOTI4LDggKzg0MCw3IEBAIHZvaWQgaG1tX3JhbmdlX3VucmVnaXN0ZXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaG1tLT5yYW5nZXNfbG9jaywgZmxhZ3MpOwogCiAJLyogRHJvcCByZWZlcmVuY2UgdGFrZW4gYnkgaG1tX3JhbmdlX3JlZ2lzdGVyKCkgKi8KLQltbXB1dChobW0tPm1tKTsKLQlobW1fcHV0KGhtbSk7CisJbW1wdXQoaG1tLT5tbXVfbm90aWZpZXIubW0pOwogCiAJLyoKIAkgKiBUaGUgcmFuZ2UgaXMgbm93IGludmFsaWQgYW5kIHRoZSByZWYgb24gdGhlIGhtbSBpcyBkcm9wcGVkLCBzbwpAQCAtOTQxLDEwNSArODUyLDMzIEBAIHZvaWQgaG1tX3JhbmdlX3VucmVnaXN0ZXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiB9CiBFWFBPUlRfU1lNQk9MKGhtbV9yYW5nZV91bnJlZ2lzdGVyKTsKIAotLyoKLSAqIGhtbV9yYW5nZV9zbmFwc2hvdCgpIC0gc25hcHNob3QgQ1BVIHBhZ2UgdGFibGUgZm9yIGEgcmFuZ2UKLSAqIEByYW5nZTogcmFuZ2UKLSAqIFJldHVybjogLUVJTlZBTCBpZiBpbnZhbGlkIGFyZ3VtZW50LCAtRU5PTUVNIG91dCBvZiBtZW1vcnksIC1FUEVSTSBpbnZhbGlkCi0gKiAgICAgICAgICBwZXJtaXNzaW9uIChmb3IgaW5zdGFuY2UgYXNraW5nIGZvciB3cml0ZSBhbmQgcmFuZ2UgaXMgcmVhZCBvbmx5KSwKLSAqICAgICAgICAgIC1FQlVTWSBpZiB5b3UgbmVlZCB0byByZXRyeSwgLUVGQVVMVCBpbnZhbGlkIChpZSBlaXRoZXIgbm8gdmFsaWQKLSAqICAgICAgICAgIHZtYSBvciBpdCBpcyBpbGxlZ2FsIHRvIGFjY2VzcyB0aGF0IHJhbmdlKSwgbnVtYmVyIG9mIHZhbGlkIHBhZ2VzCi0gKiAgICAgICAgICBpbiByYW5nZS0+cGZuc1tdIChmcm9tIHJhbmdlIHN0YXJ0IGFkZHJlc3MpLgorc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBobW1fd2Fsa19vcHMgPSB7CisJLnB1ZF9lbnRyeQk9IGhtbV92bWFfd2Fsa19wdWQsCisJLnBtZF9lbnRyeQk9IGhtbV92bWFfd2Fsa19wbWQsCisJLnB0ZV9ob2xlCT0gaG1tX3ZtYV93YWxrX2hvbGUsCisJLmh1Z2V0bGJfZW50cnkJPSBobW1fdm1hX3dhbGtfaHVnZXRsYl9lbnRyeSwKK307CisKKy8qKgorICogaG1tX3JhbmdlX2ZhdWx0IC0gdHJ5IHRvIGZhdWx0IHNvbWUgYWRkcmVzcyBpbiBhIHZpcnR1YWwgYWRkcmVzcyByYW5nZQorICogQHJhbmdlOglyYW5nZSBiZWluZyBmYXVsdGVkCisgKiBAZmxhZ3M6CUhNTV9GQVVMVF8qIGZsYWdzCiAgKgotICogVGhpcyBzbmFwc2hvdHMgdGhlIENQVSBwYWdlIHRhYmxlIGZvciBhIHJhbmdlIG9mIHZpcnR1YWwgYWRkcmVzc2VzLiBTbmFwc2hvdAotICogdmFsaWRpdHkgaXMgdHJhY2tlZCBieSByYW5nZSBzdHJ1Y3QuIFNlZSBpbiBpbmNsdWRlL2xpbnV4L2htbS5oIGZvciBleGFtcGxlCi0gKiBvbiBob3cgdG8gdXNlLgotICovCi1sb25nIGhtbV9yYW5nZV9zbmFwc2hvdChzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSkKLXsKLQljb25zdCB1bnNpZ25lZCBsb25nIGRldmljZV92bWEgPSBWTV9JTyB8IFZNX1BGTk1BUCB8IFZNX01JWEVETUFQOwotCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSByYW5nZS0+c3RhcnQsIGVuZDsKLQlzdHJ1Y3QgaG1tX3ZtYV93YWxrIGhtbV92bWFfd2FsazsKLQlzdHJ1Y3QgaG1tICpobW0gPSByYW5nZS0+aG1tOwotCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwotCXN0cnVjdCBtbV93YWxrIG1tX3dhbGs7Ci0KLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZobW0tPm1tLT5tbWFwX3NlbSk7Ci0JZG8gewotCQkvKiBJZiByYW5nZSBpcyBubyBsb25nZXIgdmFsaWQgZm9yY2UgcmV0cnkuICovCi0JCWlmICghcmFuZ2UtPnZhbGlkKQotCQkJcmV0dXJuIC1FQlVTWTsKLQotCQl2bWEgPSBmaW5kX3ZtYShobW0tPm1tLCBzdGFydCk7Ci0JCWlmICh2bWEgPT0gTlVMTCB8fCAodm1hLT52bV9mbGFncyAmIGRldmljZV92bWEpKQotCQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQkJaWYgKGlzX3ZtX2h1Z2V0bGJfcGFnZSh2bWEpKSB7Ci0JCQlpZiAoaHVnZV9wYWdlX3NoaWZ0KGhzdGF0ZV92bWEodm1hKSkgIT0KLQkJCQkgICAgcmFuZ2UtPnBhZ2Vfc2hpZnQgJiYKLQkJCSAgICByYW5nZS0+cGFnZV9zaGlmdCAhPSBQQUdFX1NISUZUKQotCQkJCXJldHVybiAtRUlOVkFMOwotCQl9IGVsc2UgewotCQkJaWYgKHJhbmdlLT5wYWdlX3NoaWZ0ICE9IFBBR0VfU0hJRlQpCi0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQlpZiAoISh2bWEtPnZtX2ZsYWdzICYgVk1fUkVBRCkpIHsKLQkJCS8qCi0JCQkgKiBJZiB2bWEgZG8gbm90IGFsbG93IHJlYWQgYWNjZXNzLCB0aGVuIGFzc3VtZSB0aGF0IGl0Ci0JCQkgKiBkb2VzIG5vdCBhbGxvdyB3cml0ZSBhY2Nlc3MsIGVpdGhlci4gSE1NIGRvZXMgbm90Ci0JCQkgKiBzdXBwb3J0IGFyY2hpdGVjdHVyZSB0aGF0IGFsbG93IHdyaXRlIHdpdGhvdXQgcmVhZC4KLQkJCSAqLwotCQkJaG1tX3BmbnNfY2xlYXIocmFuZ2UsIHJhbmdlLT5wZm5zLAotCQkJCXJhbmdlLT5zdGFydCwgcmFuZ2UtPmVuZCk7Ci0JCQlyZXR1cm4gLUVQRVJNOwotCQl9Ci0KLQkJcmFuZ2UtPnZtYSA9IHZtYTsKLQkJaG1tX3ZtYV93YWxrLnBnbWFwID0gTlVMTDsKLQkJaG1tX3ZtYV93YWxrLmxhc3QgPSBzdGFydDsKLQkJaG1tX3ZtYV93YWxrLmZhdWx0ID0gZmFsc2U7Ci0JCWhtbV92bWFfd2Fsay5yYW5nZSA9IHJhbmdlOwotCQltbV93YWxrLnByaXZhdGUgPSAmaG1tX3ZtYV93YWxrOwotCQllbmQgPSBtaW4ocmFuZ2UtPmVuZCwgdm1hLT52bV9lbmQpOwotCi0JCW1tX3dhbGsudm1hID0gdm1hOwotCQltbV93YWxrLm1tID0gdm1hLT52bV9tbTsKLQkJbW1fd2Fsay5wdGVfZW50cnkgPSBOVUxMOwotCQltbV93YWxrLnRlc3Rfd2FsayA9IE5VTEw7Ci0JCW1tX3dhbGsuaHVnZXRsYl9lbnRyeSA9IE5VTEw7Ci0JCW1tX3dhbGsucHVkX2VudHJ5ID0gaG1tX3ZtYV93YWxrX3B1ZDsKLQkJbW1fd2Fsay5wbWRfZW50cnkgPSBobW1fdm1hX3dhbGtfcG1kOwotCQltbV93YWxrLnB0ZV9ob2xlID0gaG1tX3ZtYV93YWxrX2hvbGU7Ci0JCW1tX3dhbGsuaHVnZXRsYl9lbnRyeSA9IGhtbV92bWFfd2Fsa19odWdldGxiX2VudHJ5OwotCi0JCXdhbGtfcGFnZV9yYW5nZShzdGFydCwgZW5kLCAmbW1fd2Fsayk7Ci0JCXN0YXJ0ID0gZW5kOwotCX0gd2hpbGUgKHN0YXJ0IDwgcmFuZ2UtPmVuZCk7Ci0KLQlyZXR1cm4gKGhtbV92bWFfd2Fsay5sYXN0IC0gcmFuZ2UtPnN0YXJ0KSA+PiBQQUdFX1NISUZUOwotfQotRVhQT1JUX1NZTUJPTChobW1fcmFuZ2Vfc25hcHNob3QpOwotCi0vKgotICogaG1tX3JhbmdlX2ZhdWx0KCkgLSB0cnkgdG8gZmF1bHQgc29tZSBhZGRyZXNzIGluIGEgdmlydHVhbCBhZGRyZXNzIHJhbmdlCi0gKiBAcmFuZ2U6IHJhbmdlIGJlaW5nIGZhdWx0ZWQKLSAqIEBibG9jazogYWxsb3cgYmxvY2tpbmcgb24gZmF1bHQgKGlmIHRydWUgaXQgc2xlZXBzIGFuZCBkbyBub3QgZHJvcCBtbWFwX3NlbSkKLSAqIFJldHVybjogbnVtYmVyIG9mIHZhbGlkIHBhZ2VzIGluIHJhbmdlLT5wZm5zW10gKGZyb20gcmFuZ2Ugc3RhcnQKLSAqICAgICAgICAgIGFkZHJlc3MpLiBUaGlzIG1heSBiZSB6ZXJvLiBJZiB0aGUgcmV0dXJuIHZhbHVlIGlzIG5lZ2F0aXZlLAotICogICAgICAgICAgdGhlbiBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMgbWF5IGJlIHJldHVybmVkOgorICogUmV0dXJuOiB0aGUgbnVtYmVyIG9mIHZhbGlkIHBhZ2VzIGluIHJhbmdlLT5wZm5zW10gKGZyb20gcmFuZ2Ugc3RhcnQKKyAqIGFkZHJlc3MpLCB3aGljaCBtYXkgYmUgemVyby4gIE9uIGVycm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHN0YXR1cyBjb2RlcworICogY2FuIGJlIHJldHVybmVkOgogICoKLSAqICAgICAgICAgICAtRUlOVkFMICBpbnZhbGlkIGFyZ3VtZW50cyBvciBtbSBvciB2aXJ0dWFsIGFkZHJlc3MgYXJlIGluIGFuCi0gKiAgICAgICAgICAgICAgICAgICAgaW52YWxpZCB2bWEgKGZvciBpbnN0YW5jZSBkZXZpY2UgZmlsZSB2bWEpLgotICogICAgICAgICAgIC1FTk9NRU06IE91dCBvZiBtZW1vcnkuCi0gKiAgICAgICAgICAgLUVQRVJNOiAgSW52YWxpZCBwZXJtaXNzaW9uIChmb3IgaW5zdGFuY2UgYXNraW5nIGZvciB3cml0ZSBhbmQKLSAqICAgICAgICAgICAgICAgICAgICByYW5nZSBpcyByZWFkIG9ubHkpLgotICogICAgICAgICAgIC1FQUdBSU46IElmIHlvdSBuZWVkIHRvIHJldHJ5IGFuZCBtbWFwX3NlbSB3YXMgZHJvcC4gVGhpcyBjYW4gb25seQotICogICAgICAgICAgICAgICAgICAgIGhhcHBlbnMgaWYgYmxvY2sgYXJndW1lbnQgaXMgZmFsc2UuCi0gKiAgICAgICAgICAgLUVCVVNZOiAgSWYgdGhlIHRoZSByYW5nZSBpcyBiZWluZyBpbnZhbGlkYXRlZCBhbmQgeW91IHNob3VsZCB3YWl0Ci0gKiAgICAgICAgICAgICAgICAgICAgZm9yIGludmFsaWRhdGlvbiB0byBmaW5pc2guCi0gKiAgICAgICAgICAgLUVGQVVMVDogSW52YWxpZCAoaWUgZWl0aGVyIG5vIHZhbGlkIHZtYSBvciBpdCBpcyBpbGxlZ2FsIHRvIGFjY2VzcwotICogICAgICAgICAgICAgICAgICAgIHRoYXQgcmFuZ2UpLCBudW1iZXIgb2YgdmFsaWQgcGFnZXMgaW4gcmFuZ2UtPnBmbnNbXSAoZnJvbQotICogICAgICAgICAgICAgICAgICAgIHJhbmdlIHN0YXJ0IGFkZHJlc3MpLgorICogLUVJTlZBTDoJSW52YWxpZCBhcmd1bWVudHMgb3IgbW0gb3IgdmlydHVhbCBhZGRyZXNzIGlzIGluIGFuIGludmFsaWQgdm1hCisgKgkJKGUuZy4sIGRldmljZSBmaWxlIHZtYSkuCisgKiAtRU5PTUVNOglPdXQgb2YgbWVtb3J5LgorICogLUVQRVJNOglJbnZhbGlkIHBlcm1pc3Npb24gKGUuZy4sIGFza2luZyBmb3Igd3JpdGUgYW5kIHJhbmdlIGlzIHJlYWQKKyAqCQlvbmx5KS4KKyAqIC1FQUdBSU46CUEgcGFnZSBmYXVsdCBuZWVkcyB0byBiZSByZXRyaWVkIGFuZCBtbWFwX3NlbSB3YXMgZHJvcHBlZC4KKyAqIC1FQlVTWToJVGhlIHJhbmdlIGhhcyBiZWVuIGludmFsaWRhdGVkIGFuZCB0aGUgY2FsbGVyIG5lZWRzIHRvIHdhaXQgZm9yCisgKgkJdGhlIGludmFsaWRhdGlvbiB0byBmaW5pc2guCisgKiAtRUZBVUxUOglJbnZhbGlkIChpLmUuLCBlaXRoZXIgbm8gdmFsaWQgdm1hIG9yIGl0IGlzIGlsbGVnYWwgdG8gYWNjZXNzCisgKgkJdGhhdCByYW5nZSkgbnVtYmVyIG9mIHZhbGlkIHBhZ2VzIGluIHJhbmdlLT5wZm5zW10gKGZyb20KKyAqICAgICAgICAgICAgICByYW5nZSBzdGFydCBhZGRyZXNzKS4KICAqCiAgKiBUaGlzIGlzIHNpbWlsYXIgdG8gYSByZWd1bGFyIENQVSBwYWdlIGZhdWx0IGV4Y2VwdCB0aGF0IGl0IHdpbGwgbm90IHRyaWdnZXIKICAqIGFueSBtZW1vcnkgbWlncmF0aW9uIGlmIHRoZSBtZW1vcnkgYmVpbmcgZmF1bHRlZCBpcyBub3QgYWNjZXNzaWJsZSBieSBDUFVzCkBAIC0xMDQ4LDM3ICs4ODcsMjYgQEAgRVhQT1JUX1NZTUJPTChobW1fcmFuZ2Vfc25hcHNob3QpOwogICogT24gZXJyb3IsIGZvciBvbmUgdmlydHVhbCBhZGRyZXNzIGluIHRoZSByYW5nZSwgdGhlIGZ1bmN0aW9uIHdpbGwgbWFyayB0aGUKICAqIGNvcnJlc3BvbmRpbmcgSE1NIHBmbiBlbnRyeSB3aXRoIGFuIGVycm9yIGZsYWcuCiAgKi8KLWxvbmcgaG1tX3JhbmdlX2ZhdWx0KHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLCBib29sIGJsb2NrKQorbG9uZyBobW1fcmFuZ2VfZmF1bHQoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UsIHVuc2lnbmVkIGludCBmbGFncykKIHsKIAljb25zdCB1bnNpZ25lZCBsb25nIGRldmljZV92bWEgPSBWTV9JTyB8IFZNX1BGTk1BUCB8IFZNX01JWEVETUFQOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSByYW5nZS0+c3RhcnQsIGVuZDsKIAlzdHJ1Y3QgaG1tX3ZtYV93YWxrIGhtbV92bWFfd2FsazsKIAlzdHJ1Y3QgaG1tICpobW0gPSByYW5nZS0+aG1tOwogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwotCXN0cnVjdCBtbV93YWxrIG1tX3dhbGs7CiAJaW50IHJldDsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmhtbS0+bW0tPm1tYXBfc2VtKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZobW0tPm1tdV9ub3RpZmllci5tbS0+bW1hcF9zZW0pOwogCiAJZG8gewogCQkvKiBJZiByYW5nZSBpcyBubyBsb25nZXIgdmFsaWQgZm9yY2UgcmV0cnkuICovCiAJCWlmICghcmFuZ2UtPnZhbGlkKQogCQkJcmV0dXJuIC1FQlVTWTsKIAotCQl2bWEgPSBmaW5kX3ZtYShobW0tPm1tLCBzdGFydCk7CisJCXZtYSA9IGZpbmRfdm1hKGhtbS0+bW11X25vdGlmaWVyLm1tLCBzdGFydCk7CiAJCWlmICh2bWEgPT0gTlVMTCB8fCAodm1hLT52bV9mbGFncyAmIGRldmljZV92bWEpKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAKLQkJaWYgKGlzX3ZtX2h1Z2V0bGJfcGFnZSh2bWEpKSB7Ci0JCQlpZiAoaHVnZV9wYWdlX3NoaWZ0KGhzdGF0ZV92bWEodm1hKSkgIT0KLQkJCSAgICByYW5nZS0+cGFnZV9zaGlmdCAmJgotCQkJICAgIHJhbmdlLT5wYWdlX3NoaWZ0ICE9IFBBR0VfU0hJRlQpCi0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0gZWxzZSB7Ci0JCQlpZiAocmFuZ2UtPnBhZ2Vfc2hpZnQgIT0gUEFHRV9TSElGVCkKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCiAJCWlmICghKHZtYS0+dm1fZmxhZ3MgJiBWTV9SRUFEKSkgewogCQkJLyoKIAkJCSAqIElmIHZtYSBkbyBub3QgYWxsb3cgcmVhZCBhY2Nlc3MsIHRoZW4gYXNzdW1lIHRoYXQgaXQKQEAgLTEwOTAsMjcgKzkxOCwxOCBAQCBsb25nIGhtbV9yYW5nZV9mYXVsdChzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwgYm9vbCBibG9jaykKIAkJCXJldHVybiAtRVBFUk07CiAJCX0KIAotCQlyYW5nZS0+dm1hID0gdm1hOwogCQlobW1fdm1hX3dhbGsucGdtYXAgPSBOVUxMOwogCQlobW1fdm1hX3dhbGsubGFzdCA9IHN0YXJ0OwotCQlobW1fdm1hX3dhbGsuZmF1bHQgPSB0cnVlOwotCQlobW1fdm1hX3dhbGsuYmxvY2sgPSBibG9jazsKKwkJaG1tX3ZtYV93YWxrLmZsYWdzID0gZmxhZ3M7CiAJCWhtbV92bWFfd2Fsay5yYW5nZSA9IHJhbmdlOwotCQltbV93YWxrLnByaXZhdGUgPSAmaG1tX3ZtYV93YWxrOwogCQllbmQgPSBtaW4ocmFuZ2UtPmVuZCwgdm1hLT52bV9lbmQpOwogCi0JCW1tX3dhbGsudm1hID0gdm1hOwotCQltbV93YWxrLm1tID0gdm1hLT52bV9tbTsKLQkJbW1fd2Fsay5wdGVfZW50cnkgPSBOVUxMOwotCQltbV93YWxrLnRlc3Rfd2FsayA9IE5VTEw7Ci0JCW1tX3dhbGsuaHVnZXRsYl9lbnRyeSA9IE5VTEw7Ci0JCW1tX3dhbGsucHVkX2VudHJ5ID0gaG1tX3ZtYV93YWxrX3B1ZDsKLQkJbW1fd2Fsay5wbWRfZW50cnkgPSBobW1fdm1hX3dhbGtfcG1kOwotCQltbV93YWxrLnB0ZV9ob2xlID0gaG1tX3ZtYV93YWxrX2hvbGU7Ci0JCW1tX3dhbGsuaHVnZXRsYl9lbnRyeSA9IGhtbV92bWFfd2Fsa19odWdldGxiX2VudHJ5OworCQl3YWxrX3BhZ2VfcmFuZ2Uodm1hLT52bV9tbSwgc3RhcnQsIGVuZCwgJmhtbV93YWxrX29wcywKKwkJCQkmaG1tX3ZtYV93YWxrKTsKIAogCQlkbyB7Ci0JCQlyZXQgPSB3YWxrX3BhZ2VfcmFuZ2Uoc3RhcnQsIGVuZCwgJm1tX3dhbGspOworCQkJcmV0ID0gd2Fsa19wYWdlX3JhbmdlKHZtYS0+dm1fbW0sIHN0YXJ0LCBlbmQsCisJCQkJCSZobW1fd2Fsa19vcHMsICZobW1fdm1hX3dhbGspOwogCQkJc3RhcnQgPSBobW1fdm1hX3dhbGsubGFzdDsKIAogCQkJLyogS2VlcCB0cnlpbmcgd2hpbGUgdGhlIHJhbmdlIGlzIHZhbGlkLiAqLwpAQCAtMTEzMywyNSArOTUyLDIyIEBAIGxvbmcgaG1tX3JhbmdlX2ZhdWx0KHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLCBib29sIGJsb2NrKQogRVhQT1JUX1NZTUJPTChobW1fcmFuZ2VfZmF1bHQpOwogCiAvKioKLSAqIGhtbV9yYW5nZV9kbWFfbWFwKCkgLSBobW1fcmFuZ2VfZmF1bHQoKSBhbmQgZG1hIG1hcCBwYWdlIGFsbCBpbiBvbmUuCi0gKiBAcmFuZ2U6IHJhbmdlIGJlaW5nIGZhdWx0ZWQKLSAqIEBkZXZpY2U6IGRldmljZSBhZ2FpbnN0IHRvIGRtYSBtYXAgcGFnZSB0bwotICogQGRhZGRyczogZG1hIGFkZHJlc3Mgb2YgbWFwcGVkIHBhZ2VzCi0gKiBAYmxvY2s6IGFsbG93IGJsb2NraW5nIG9uIGZhdWx0IChpZiB0cnVlIGl0IHNsZWVwcyBhbmQgZG8gbm90IGRyb3AgbW1hcF9zZW0pCi0gKiBSZXR1cm46IG51bWJlciBvZiBwYWdlcyBtYXBwZWQgb24gc3VjY2VzcywgLUVBR0FJTiBpZiBtbWFwX3NlbSBoYXZlIGJlZW4KLSAqICAgICAgICAgIGRyb3AgYW5kIHlvdSBuZWVkIHRvIHRyeSBhZ2Fpbiwgc29tZSBvdGhlciBlcnJvciB2YWx1ZSBvdGhlcndpc2UKKyAqIGhtbV9yYW5nZV9kbWFfbWFwIC0gaG1tX3JhbmdlX2ZhdWx0KCkgYW5kIGRtYSBtYXAgcGFnZSBhbGwgaW4gb25lLgorICogQHJhbmdlOglyYW5nZSBiZWluZyBmYXVsdGVkCisgKiBAZGV2aWNlOglkZXZpY2UgdG8gbWFwIHBhZ2UgdG8KKyAqIEBkYWRkcnM6CWFycmF5IG9mIGRtYSBhZGRyZXNzZXMgZm9yIHRoZSBtYXBwZWQgcGFnZXMKKyAqIEBmbGFnczoJSE1NX0ZBVUxUXyoKICAqCi0gKiBOb3RlIHNhbWUgdXNhZ2UgcGF0dGVybiBhcyBobW1fcmFuZ2VfZmF1bHQoKS4KKyAqIFJldHVybjogdGhlIG51bWJlciBvZiBwYWdlcyBtYXBwZWQgb24gc3VjY2VzcyAoaW5jbHVkaW5nIHplcm8pLCBvciBhbnkKKyAqIHN0YXR1cyByZXR1cm4gZnJvbSBobW1fcmFuZ2VfZmF1bHQoKSBvdGhlcndpc2UuCiAgKi8KLWxvbmcgaG1tX3JhbmdlX2RtYV9tYXAoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UsCi0JCSAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXZpY2UsCi0JCSAgICAgICBkbWFfYWRkcl90ICpkYWRkcnMsCi0JCSAgICAgICBib29sIGJsb2NrKQorbG9uZyBobW1fcmFuZ2VfZG1hX21hcChzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwgc3RydWN0IGRldmljZSAqZGV2aWNlLAorCQlkbWFfYWRkcl90ICpkYWRkcnMsIHVuc2lnbmVkIGludCBmbGFncykKIHsKIAl1bnNpZ25lZCBsb25nIGksIG5wYWdlcywgbWFwcGVkOwogCWxvbmcgcmV0OwogCi0JcmV0ID0gaG1tX3JhbmdlX2ZhdWx0KHJhbmdlLCBibG9jayk7CisJcmV0ID0gaG1tX3JhbmdlX2ZhdWx0KHJhbmdlLCBmbGFncyk7CiAJaWYgKHJldCA8PSAwKQogCQlyZXR1cm4gcmV0ID8gcmV0IDogLUVCVVNZOwogCkBAIC0xMjIyLDcgKzEwMzgsNiBAQCBFWFBPUlRfU1lNQk9MKGhtbV9yYW5nZV9kbWFfbWFwKTsKIC8qKgogICogaG1tX3JhbmdlX2RtYV91bm1hcCgpIC0gdW5tYXAgcmFuZ2Ugb2YgdGhhdCB3YXMgbWFwIHdpdGggaG1tX3JhbmdlX2RtYV9tYXAoKQogICogQHJhbmdlOiByYW5nZSBiZWluZyB1bm1hcHBlZAotICogQHZtYTogdGhlIHZtYSBhZ2FpbnN0IHdoaWNoIHRoZSByYW5nZSAob3B0aW9uYWwpCiAgKiBAZGV2aWNlOiBkZXZpY2UgYWdhaW5zdCB3aGljaCBkbWEgbWFwIHdhcyBkb25lCiAgKiBAZGFkZHJzOiBkbWEgYWRkcmVzcyBvZiBtYXBwZWQgcGFnZXMKICAqIEBkaXJ0eTogZGlydHkgcGFnZSBpZiBpdCBoYWQgdGhlIHdyaXRlIGZsYWcgc2V0CkBAIC0xMjM0LDcgKzEwNDksNiBAQCBFWFBPUlRfU1lNQk9MKGhtbV9yYW5nZV9kbWFfbWFwKTsKICAqIGNvbmN1cnJlbnQgbW11IG5vdGlmaWVyIG9yIHN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKCkgdG8gbWFrZSBwcm9ncmVzcy4KICAqLwogbG9uZyBobW1fcmFuZ2VfZG1hX3VubWFwKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAotCQkJIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJIHN0cnVjdCBkZXZpY2UgKmRldmljZSwKIAkJCSBkbWFfYWRkcl90ICpkYWRkcnMsCiAJCQkgYm9vbCBkaXJ0eSkKZGlmZiAtLWdpdCBhL21tL2h1Z2VfbWVtb3J5LmMgYi9tbS9odWdlX21lbW9yeS5jCmluZGV4IGRlMWYxNTkuLmM1Y2I2ZGMgMTAwNjQ0Ci0tLSBhL21tL2h1Z2VfbWVtb3J5LmMKKysrIGIvbW0vaHVnZV9tZW1vcnkuYwpAQCAtNDk2LDExICs0OTYsMjUgQEAgcG1kX3QgbWF5YmVfcG1kX21rd3JpdGUocG1kX3QgcG1kLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAlyZXR1cm4gcG1kOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBsaXN0X2hlYWQgKnBhZ2VfZGVmZXJyZWRfbGlzdChzdHJ1Y3QgcGFnZSAqcGFnZSkKKyNpZmRlZiBDT05GSUdfTUVNQ0cKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRlZmVycmVkX3NwbGl0ICpnZXRfZGVmZXJyZWRfc3BsaXRfcXVldWUoc3RydWN0IHBhZ2UgKnBhZ2UpCiB7Ci0JLyogLT5scnUgaW4gdGhlIHRhaWwgcGFnZXMgaXMgb2NjdXBpZWQgYnkgY29tcG91bmRfaGVhZC4gKi8KLQlyZXR1cm4gJnBhZ2VbMl0uZGVmZXJyZWRfbGlzdDsKKwlzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2cgPSBjb21wb3VuZF9oZWFkKHBhZ2UpLT5tZW1fY2dyb3VwOworCXN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQgPSBOT0RFX0RBVEEocGFnZV90b19uaWQocGFnZSkpOworCisJaWYgKG1lbWNnKQorCQlyZXR1cm4gJm1lbWNnLT5kZWZlcnJlZF9zcGxpdF9xdWV1ZTsKKwllbHNlCisJCXJldHVybiAmcGdkYXQtPmRlZmVycmVkX3NwbGl0X3F1ZXVlOwogfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRlZmVycmVkX3NwbGl0ICpnZXRfZGVmZXJyZWRfc3BsaXRfcXVldWUoc3RydWN0IHBhZ2UgKnBhZ2UpCit7CisJc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdCA9IE5PREVfREFUQShwYWdlX3RvX25pZChwYWdlKSk7CisKKwlyZXR1cm4gJnBnZGF0LT5kZWZlcnJlZF9zcGxpdF9xdWV1ZTsKK30KKyNlbmRpZgogCiB2b2lkIHByZXBfdHJhbnNodWdlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpCiB7CkBAIC02NDUsNDAgKzY1OSwzMCBAQCBzdGF0aWMgdm1fZmF1bHRfdCBfX2RvX2h1Z2VfcG1kX2Fub255bW91c19wYWdlKHN0cnVjdCB2bV9mYXVsdCAqdm1mLAogICoJICAgIGF2YWlsYWJsZQogICogbmV2ZXI6IG5ldmVyIHN0YWxsIGZvciBhbnkgdGhwIGFsbG9jYXRpb24KICAqLwotc3RhdGljIGlubGluZSBnZnBfdCBhbGxvY19odWdlcGFnZV9kaXJlY3RfZ2ZwbWFzayhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyKQorc3RhdGljIGlubGluZSBnZnBfdCBhbGxvY19odWdlcGFnZV9kaXJlY3RfZ2ZwbWFzayhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKIAljb25zdCBib29sIHZtYV9tYWR2aXNlZCA9ICEhKHZtYS0+dm1fZmxhZ3MgJiBWTV9IVUdFUEFHRSk7Ci0JZ2ZwX3QgdGhpc19ub2RlID0gMDsKIAotI2lmZGVmIENPTkZJR19OVU1BCi0Jc3RydWN0IG1lbXBvbGljeSAqcG9sOwotCS8qCi0JICogX19HRlBfVEhJU05PREUgaXMgdXNlZCBvbmx5IHdoZW4gX19HRlBfRElSRUNUX1JFQ0xBSU0gaXMgbm90Ci0JICogc3BlY2lmaWVkLCB0byBleHByZXNzIGEgZ2VuZXJhbCBkZXNpcmUgdG8gc3RheSBvbiB0aGUgY3VycmVudAotCSAqIG5vZGUgZm9yIG9wdGltaXN0aWMgYWxsb2NhdGlvbiBhdHRlbXB0cy4gSWYgdGhlIGRlZnJhZyBtb2RlCi0JICogYW5kL29yIG1hZHZpc2UgaGludCByZXF1aXJlcyB0aGUgZGlyZWN0IHJlY2xhaW0gdGhlbiB3ZSBwcmVmZXIKLQkgKiB0byBmYWxsYmFjayB0byBvdGhlciBub2RlIHJhdGhlciB0aGFuIG5vZGUgcmVjbGFpbSBiZWNhdXNlIHRoYXQKLQkgKiBjYW4gbGVhZCB0byBleGNlc3NpdmUgcmVjbGFpbSBldmVuIHRob3VnaCB0aGVyZSBpcyBmcmVlIG1lbW9yeQotCSAqIG9uIG90aGVyIG5vZGVzLiBXZSBleHBlY3QgdGhhdCBOVU1BIHByZWZlcmVuY2VzIGFyZSBzcGVjaWZpZWQKLQkgKiBieSBtZW1vcnkgcG9saWNpZXMuCi0JICovCi0JcG9sID0gZ2V0X3ZtYV9wb2xpY3kodm1hLCBhZGRyKTsKLQlpZiAocG9sLT5tb2RlICE9IE1QT0xfQklORCkKLQkJdGhpc19ub2RlID0gX19HRlBfVEhJU05PREU7Ci0JbXBvbF9jb25kX3B1dChwb2wpOwotI2VuZGlmCi0KKwkvKiBBbHdheXMgZG8gc3luY2hyb25vdXMgY29tcGFjdGlvbiAqLwogCWlmICh0ZXN0X2JpdChUUkFOU1BBUkVOVF9IVUdFUEFHRV9ERUZSQUdfRElSRUNUX0ZMQUcsICZ0cmFuc3BhcmVudF9odWdlcGFnZV9mbGFncykpCiAJCXJldHVybiBHRlBfVFJBTlNIVUdFIHwgKHZtYV9tYWR2aXNlZCA/IDAgOiBfX0dGUF9OT1JFVFJZKTsKKworCS8qIEtpY2sga2NvbXBhY3RkIGFuZCBmYWlsIHF1aWNrbHkgKi8KIAlpZiAodGVzdF9iaXQoVFJBTlNQQVJFTlRfSFVHRVBBR0VfREVGUkFHX0tTV0FQRF9GTEFHLCAmdHJhbnNwYXJlbnRfaHVnZXBhZ2VfZmxhZ3MpKQotCQlyZXR1cm4gR0ZQX1RSQU5TSFVHRV9MSUdIVCB8IF9fR0ZQX0tTV0FQRF9SRUNMQUlNIHwgdGhpc19ub2RlOworCQlyZXR1cm4gR0ZQX1RSQU5TSFVHRV9MSUdIVCB8IF9fR0ZQX0tTV0FQRF9SRUNMQUlNOworCisJLyogU3luY2hyb25vdXMgY29tcGFjdGlvbiBpZiBtYWR2aXNlZCwgb3RoZXJ3aXNlIGtpY2sga2NvbXBhY3RkICovCiAJaWYgKHRlc3RfYml0KFRSQU5TUEFSRU5UX0hVR0VQQUdFX0RFRlJBR19LU1dBUERfT1JfTUFEVl9GTEFHLCAmdHJhbnNwYXJlbnRfaHVnZXBhZ2VfZmxhZ3MpKQotCQlyZXR1cm4gR0ZQX1RSQU5TSFVHRV9MSUdIVCB8ICh2bWFfbWFkdmlzZWQgPyBfX0dGUF9ESVJFQ1RfUkVDTEFJTSA6Ci0JCQkJCQkJICAgICBfX0dGUF9LU1dBUERfUkVDTEFJTSB8IHRoaXNfbm9kZSk7CisJCXJldHVybiBHRlBfVFJBTlNIVUdFX0xJR0hUIHwKKwkJCSh2bWFfbWFkdmlzZWQgPyBfX0dGUF9ESVJFQ1RfUkVDTEFJTSA6CisJCQkJCV9fR0ZQX0tTV0FQRF9SRUNMQUlNKTsKKworCS8qIE9ubHkgZG8gc3luY2hyb25vdXMgY29tcGFjdGlvbiBpZiBtYWR2aXNlZCAqLwogCWlmICh0ZXN0X2JpdChUUkFOU1BBUkVOVF9IVUdFUEFHRV9ERUZSQUdfUkVRX01BRFZfRkxBRywgJnRyYW5zcGFyZW50X2h1Z2VwYWdlX2ZsYWdzKSkKLQkJcmV0dXJuIEdGUF9UUkFOU0hVR0VfTElHSFQgfCAodm1hX21hZHZpc2VkID8gX19HRlBfRElSRUNUX1JFQ0xBSU0gOgotCQkJCQkJCSAgICAgdGhpc19ub2RlKTsKLQlyZXR1cm4gR0ZQX1RSQU5TSFVHRV9MSUdIVCB8IHRoaXNfbm9kZTsKKwkJcmV0dXJuIEdGUF9UUkFOU0hVR0VfTElHSFQgfAorCQkgICAgICAgKHZtYV9tYWR2aXNlZCA/IF9fR0ZQX0RJUkVDVF9SRUNMQUlNIDogMCk7CisKKwlyZXR1cm4gR0ZQX1RSQU5TSFVHRV9MSUdIVDsKIH0KIAogLyogQ2FsbGVyIG11c3QgaG9sZCBwYWdlIHRhYmxlIGxvY2suICovCkBAIC03NTAsOCArNzU0LDggQEAgdm1fZmF1bHRfdCBkb19odWdlX3BtZF9hbm9ueW1vdXNfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkJCXB0ZV9mcmVlKHZtYS0+dm1fbW0sIHBndGFibGUpOwogCQlyZXR1cm4gcmV0OwogCX0KLQlnZnAgPSBhbGxvY19odWdlcGFnZV9kaXJlY3RfZ2ZwbWFzayh2bWEsIGhhZGRyKTsKLQlwYWdlID0gYWxsb2NfcGFnZXNfdm1hKGdmcCwgSFBBR0VfUE1EX09SREVSLCB2bWEsIGhhZGRyLCBudW1hX25vZGVfaWQoKSk7CisJZ2ZwID0gYWxsb2NfaHVnZXBhZ2VfZGlyZWN0X2dmcG1hc2sodm1hKTsKKwlwYWdlID0gYWxsb2NfaHVnZXBhZ2Vfdm1hKGdmcCwgdm1hLCBoYWRkciwgSFBBR0VfUE1EX09SREVSKTsKIAlpZiAodW5saWtlbHkoIXBhZ2UpKSB7CiAJCWNvdW50X3ZtX2V2ZW50KFRIUF9GQVVMVF9GQUxMQkFDSyk7CiAJCXJldHVybiBWTV9GQVVMVF9GQUxMQkFDSzsKQEAgLTEzNTgsOSArMTM2Miw4IEBAIHZtX2ZhdWx0X3QgZG9faHVnZV9wbWRfd3BfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3Qgb3JpZ19wbWQpCiBhbGxvYzoKIAlpZiAoX190cmFuc3BhcmVudF9odWdlcGFnZV9lbmFibGVkKHZtYSkgJiYKIAkgICAgIXRyYW5zcGFyZW50X2h1Z2VwYWdlX2RlYnVnX2NvdygpKSB7Ci0JCWh1Z2VfZ2ZwID0gYWxsb2NfaHVnZXBhZ2VfZGlyZWN0X2dmcG1hc2sodm1hLCBoYWRkcik7Ci0JCW5ld19wYWdlID0gYWxsb2NfcGFnZXNfdm1hKGh1Z2VfZ2ZwLCBIUEFHRV9QTURfT1JERVIsIHZtYSwKLQkJCQloYWRkciwgbnVtYV9ub2RlX2lkKCkpOworCQlodWdlX2dmcCA9IGFsbG9jX2h1Z2VwYWdlX2RpcmVjdF9nZnBtYXNrKHZtYSk7CisJCW5ld19wYWdlID0gYWxsb2NfaHVnZXBhZ2Vfdm1hKGh1Z2VfZ2ZwLCB2bWEsIGhhZGRyLCBIUEFHRV9QTURfT1JERVIpOwogCX0gZWxzZQogCQluZXdfcGFnZSA9IE5VTEw7CiAKQEAgLTI0OTcsNiArMjUwMCw4IEBAIHN0YXRpYyB2b2lkIF9fc3BsaXRfaHVnZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAogCXN0cnVjdCBwYWdlICpoZWFkID0gY29tcG91bmRfaGVhZChwYWdlKTsKIAlwZ19kYXRhX3QgKnBnZGF0ID0gcGFnZV9wZ2RhdChoZWFkKTsKIAlzdHJ1Y3QgbHJ1dmVjICpscnV2ZWM7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKnN3YXBfY2FjaGUgPSBOVUxMOworCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gMDsKIAlpbnQgaTsKIAogCWxydXZlYyA9IG1lbV9jZ3JvdXBfcGFnZV9scnV2ZWMoaGVhZCwgcGdkYXQpOwpAQCAtMjUwNCw2ICsyNTA5LDE0IEBAIHN0YXRpYyB2b2lkIF9fc3BsaXRfaHVnZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAogCS8qIGNvbXBsZXRlIG1lbWNnIHdvcmtzIGJlZm9yZSBhZGQgcGFnZXMgdG8gTFJVICovCiAJbWVtX2Nncm91cF9zcGxpdF9odWdlX2ZpeHVwKGhlYWQpOwogCisJaWYgKFBhZ2VBbm9uKGhlYWQpICYmIFBhZ2VTd2FwQ2FjaGUoaGVhZCkpIHsKKwkJc3dwX2VudHJ5X3QgZW50cnkgPSB7IC52YWwgPSBwYWdlX3ByaXZhdGUoaGVhZCkgfTsKKworCQlvZmZzZXQgPSBzd3Bfb2Zmc2V0KGVudHJ5KTsKKwkJc3dhcF9jYWNoZSA9IHN3YXBfYWRkcmVzc19zcGFjZShlbnRyeSk7CisJCXhhX2xvY2soJnN3YXBfY2FjaGUtPmlfcGFnZXMpOworCX0KKwogCWZvciAoaSA9IEhQQUdFX1BNRF9OUiAtIDE7IGkgPj0gMTsgaS0tKSB7CiAJCV9fc3BsaXRfaHVnZV9wYWdlX3RhaWwoaGVhZCwgaSwgbHJ1dmVjLCBsaXN0KTsKIAkJLyogU29tZSBwYWdlcyBjYW4gYmUgYmV5b25kIGlfc2l6ZTogZHJvcCB0aGVtIGZyb20gcGFnZSBjYWNoZSAqLwpAQCAtMjUxMyw2ICsyNTI2LDEyIEBAIHN0YXRpYyB2b2lkIF9fc3BsaXRfaHVnZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAogCQkJaWYgKElTX0VOQUJMRUQoQ09ORklHX1NITUVNKSAmJiBQYWdlU3dhcEJhY2tlZChoZWFkKSkKIAkJCQlzaG1lbV91bmNoYXJnZShoZWFkLT5tYXBwaW5nLT5ob3N0LCAxKTsKIAkJCXB1dF9wYWdlKGhlYWQgKyBpKTsKKwkJfSBlbHNlIGlmICghUGFnZUFub24ocGFnZSkpIHsKKwkJCV9feGFfc3RvcmUoJmhlYWQtPm1hcHBpbmctPmlfcGFnZXMsIGhlYWRbaV0uaW5kZXgsCisJCQkJCWhlYWQgKyBpLCAwKTsKKwkJfSBlbHNlIGlmIChzd2FwX2NhY2hlKSB7CisJCQlfX3hhX3N0b3JlKCZzd2FwX2NhY2hlLT5pX3BhZ2VzLCBvZmZzZXQgKyBpLAorCQkJCQloZWFkICsgaSwgMCk7CiAJCX0KIAl9CiAKQEAgLTI1MjMsMTAgKzI1NDIsMTIgQEAgc3RhdGljIHZvaWQgX19zcGxpdF9odWdlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAJLyogU2VlIGNvbW1lbnQgaW4gX19zcGxpdF9odWdlX3BhZ2VfdGFpbCgpICovCiAJaWYgKFBhZ2VBbm9uKGhlYWQpKSB7CiAJCS8qIEFkZGl0aW9uYWwgcGluIHRvIHN3YXAgY2FjaGUgKi8KLQkJaWYgKFBhZ2VTd2FwQ2FjaGUoaGVhZCkpCisJCWlmIChQYWdlU3dhcENhY2hlKGhlYWQpKSB7CiAJCQlwYWdlX3JlZl9hZGQoaGVhZCwgMik7Ci0JCWVsc2UKKwkJCXhhX3VubG9jaygmc3dhcF9jYWNoZS0+aV9wYWdlcyk7CisJCX0gZWxzZSB7CiAJCQlwYWdlX3JlZl9pbmMoaGVhZCk7CisJCX0KIAl9IGVsc2UgewogCQkvKiBBZGRpdGlvbmFsIHBpbiB0byBwYWdlIGNhY2hlICovCiAJCXBhZ2VfcmVmX2FkZChoZWFkLCAyKTsKQEAgLTI2NzMsNiArMjY5NCw3IEBAIGludCBzcGxpdF9odWdlX3BhZ2VfdG9fbGlzdChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKIHsKIAlzdHJ1Y3QgcGFnZSAqaGVhZCA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CiAJc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdGEgPSBOT0RFX0RBVEEocGFnZV90b19uaWQoaGVhZCkpOworCXN0cnVjdCBkZWZlcnJlZF9zcGxpdCAqZHNfcXVldWUgPSBnZXRfZGVmZXJyZWRfc3BsaXRfcXVldWUocGFnZSk7CiAJc3RydWN0IGFub25fdm1hICphbm9uX3ZtYSA9IE5VTEw7CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBOVUxMOwogCWludCBjb3VudCwgbWFwY291bnQsIGV4dHJhX3BpbnMsIHJldDsKQEAgLTI3NTksMTcgKzI3ODEsMTcgQEAgaW50IHNwbGl0X2h1Z2VfcGFnZV90b19saXN0KHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQogCX0KIAogCS8qIFByZXZlbnQgZGVmZXJyZWRfc3BsaXRfc2NhbigpIHRvdWNoaW5nIC0+X3JlZmNvdW50ICovCi0Jc3Bpbl9sb2NrKCZwZ2RhdGEtPnNwbGl0X3F1ZXVlX2xvY2spOworCXNwaW5fbG9jaygmZHNfcXVldWUtPnNwbGl0X3F1ZXVlX2xvY2spOwogCWNvdW50ID0gcGFnZV9jb3VudChoZWFkKTsKIAltYXBjb3VudCA9IHRvdGFsX21hcGNvdW50KGhlYWQpOwogCWlmICghbWFwY291bnQgJiYgcGFnZV9yZWZfZnJlZXplKGhlYWQsIDEgKyBleHRyYV9waW5zKSkgewogCQlpZiAoIWxpc3RfZW1wdHkocGFnZV9kZWZlcnJlZF9saXN0KGhlYWQpKSkgewotCQkJcGdkYXRhLT5zcGxpdF9xdWV1ZV9sZW4tLTsKKwkJCWRzX3F1ZXVlLT5zcGxpdF9xdWV1ZV9sZW4tLTsKIAkJCWxpc3RfZGVsKHBhZ2VfZGVmZXJyZWRfbGlzdChoZWFkKSk7CiAJCX0KIAkJaWYgKG1hcHBpbmcpCiAJCQlfX2RlY19ub2RlX3BhZ2Vfc3RhdGUocGFnZSwgTlJfU0hNRU1fVEhQUyk7Ci0JCXNwaW5fdW5sb2NrKCZwZ2RhdGEtPnNwbGl0X3F1ZXVlX2xvY2spOworCQlzcGluX3VubG9jaygmZHNfcXVldWUtPnNwbGl0X3F1ZXVlX2xvY2spOwogCQlfX3NwbGl0X2h1Z2VfcGFnZShwYWdlLCBsaXN0LCBlbmQsIGZsYWdzKTsKIAkJaWYgKFBhZ2VTd2FwQ2FjaGUoaGVhZCkpIHsKIAkJCXN3cF9lbnRyeV90IGVudHJ5ID0geyAudmFsID0gcGFnZV9wcml2YXRlKGhlYWQpIH07CkBAIC0yNzg2LDcgKzI4MDgsNyBAQCBpbnQgc3BsaXRfaHVnZV9wYWdlX3RvX2xpc3Qoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCiAJCQlkdW1wX3BhZ2UocGFnZSwgInRvdGFsX21hcGNvdW50KGhlYWQpID4gMCIpOwogCQkJQlVHKCk7CiAJCX0KLQkJc3Bpbl91bmxvY2soJnBnZGF0YS0+c3BsaXRfcXVldWVfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZkc19xdWV1ZS0+c3BsaXRfcXVldWVfbG9jayk7CiBmYWlsOgkJaWYgKG1hcHBpbmcpCiAJCQl4YV91bmxvY2soJm1hcHBpbmctPmlfcGFnZXMpOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RhdGEtPmxydV9sb2NrLCBmbGFncyk7CkBAIC0yODA4LDUzICsyODMwLDg2IEBAIGZhaWw6CQlpZiAobWFwcGluZykKIAogdm9pZCBmcmVlX3RyYW5zaHVnZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKQogewotCXN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXRhID0gTk9ERV9EQVRBKHBhZ2VfdG9fbmlkKHBhZ2UpKTsKKwlzdHJ1Y3QgZGVmZXJyZWRfc3BsaXQgKmRzX3F1ZXVlID0gZ2V0X2RlZmVycmVkX3NwbGl0X3F1ZXVlKHBhZ2UpOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkYXRhLT5zcGxpdF9xdWV1ZV9sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmRzX3F1ZXVlLT5zcGxpdF9xdWV1ZV9sb2NrLCBmbGFncyk7CiAJaWYgKCFsaXN0X2VtcHR5KHBhZ2VfZGVmZXJyZWRfbGlzdChwYWdlKSkpIHsKLQkJcGdkYXRhLT5zcGxpdF9xdWV1ZV9sZW4tLTsKKwkJZHNfcXVldWUtPnNwbGl0X3F1ZXVlX2xlbi0tOwogCQlsaXN0X2RlbChwYWdlX2RlZmVycmVkX2xpc3QocGFnZSkpOwogCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RhdGEtPnNwbGl0X3F1ZXVlX2xvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkc19xdWV1ZS0+c3BsaXRfcXVldWVfbG9jaywgZmxhZ3MpOwogCWZyZWVfY29tcG91bmRfcGFnZShwYWdlKTsKIH0KIAogdm9pZCBkZWZlcnJlZF9zcGxpdF9odWdlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpCiB7Ci0Jc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdGEgPSBOT0RFX0RBVEEocGFnZV90b19uaWQocGFnZSkpOworCXN0cnVjdCBkZWZlcnJlZF9zcGxpdCAqZHNfcXVldWUgPSBnZXRfZGVmZXJyZWRfc3BsaXRfcXVldWUocGFnZSk7CisjaWZkZWYgQ09ORklHX01FTUNHCisJc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnID0gY29tcG91bmRfaGVhZChwYWdlKS0+bWVtX2Nncm91cDsKKyNlbmRpZgogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlWTV9CVUdfT05fUEFHRSghUGFnZVRyYW5zSHVnZShwYWdlKSwgcGFnZSk7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkYXRhLT5zcGxpdF9xdWV1ZV9sb2NrLCBmbGFncyk7CisJLyoKKwkgKiBUaGUgdHJ5X3RvX3VubWFwKCkgaW4gcGFnZSByZWNsYWltIHBhdGggbWlnaHQgcmVhY2ggaGVyZSB0b28sCisJICogdGhpcyBtYXkgY2F1c2UgYSByYWNlIGNvbmRpdGlvbiB0byBjb3JydXB0IGRlZmVycmVkIHNwbGl0IHF1ZXVlLgorCSAqIEFuZCwgaWYgcGFnZSByZWNsYWltIGlzIGFscmVhZHkgaGFuZGxpbmcgdGhlIHNhbWUgcGFnZSwgaXQgaXMKKwkgKiB1bm5lY2Vzc2FyeSB0byBoYW5kbGUgaXQgYWdhaW4gaW4gc2hyaW5rZXIuCisJICoKKwkgKiBDaGVjayBQYWdlU3dhcENhY2hlIHRvIGRldGVybWluZSBpZiB0aGUgcGFnZSBpcyBiZWluZworCSAqIGhhbmRsZWQgYnkgcGFnZSByZWNsYWltIHNpbmNlIFRIUCBzd2FwIHdvdWxkIGFkZCB0aGUgcGFnZSBpbnRvCisJICogc3dhcCBjYWNoZSBiZWZvcmUgY2FsbGluZyB0cnlfdG9fdW5tYXAoKS4KKwkgKi8KKwlpZiAoUGFnZVN3YXBDYWNoZShwYWdlKSkKKwkJcmV0dXJuOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRzX3F1ZXVlLT5zcGxpdF9xdWV1ZV9sb2NrLCBmbGFncyk7CiAJaWYgKGxpc3RfZW1wdHkocGFnZV9kZWZlcnJlZF9saXN0KHBhZ2UpKSkgewogCQljb3VudF92bV9ldmVudChUSFBfREVGRVJSRURfU1BMSVRfUEFHRSk7Ci0JCWxpc3RfYWRkX3RhaWwocGFnZV9kZWZlcnJlZF9saXN0KHBhZ2UpLCAmcGdkYXRhLT5zcGxpdF9xdWV1ZSk7Ci0JCXBnZGF0YS0+c3BsaXRfcXVldWVfbGVuKys7CisJCWxpc3RfYWRkX3RhaWwocGFnZV9kZWZlcnJlZF9saXN0KHBhZ2UpLCAmZHNfcXVldWUtPnNwbGl0X3F1ZXVlKTsKKwkJZHNfcXVldWUtPnNwbGl0X3F1ZXVlX2xlbisrOworI2lmZGVmIENPTkZJR19NRU1DRworCQlpZiAobWVtY2cpCisJCQltZW1jZ19zZXRfc2hyaW5rZXJfYml0KG1lbWNnLCBwYWdlX3RvX25pZChwYWdlKSwKKwkJCQkJICAgICAgIGRlZmVycmVkX3NwbGl0X3Nocmlua2VyLmlkKTsKKyNlbmRpZgogCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RhdGEtPnNwbGl0X3F1ZXVlX2xvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkc19xdWV1ZS0+c3BsaXRfcXVldWVfbG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBkZWZlcnJlZF9zcGxpdF9jb3VudChzdHJ1Y3Qgc2hyaW5rZXIgKnNocmluaywKIAkJc3RydWN0IHNocmlua19jb250cm9sICpzYykKIHsKIAlzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0YSA9IE5PREVfREFUQShzYy0+bmlkKTsKLQlyZXR1cm4gUkVBRF9PTkNFKHBnZGF0YS0+c3BsaXRfcXVldWVfbGVuKTsKKwlzdHJ1Y3QgZGVmZXJyZWRfc3BsaXQgKmRzX3F1ZXVlID0gJnBnZGF0YS0+ZGVmZXJyZWRfc3BsaXRfcXVldWU7CisKKyNpZmRlZiBDT05GSUdfTUVNQ0cKKwlpZiAoc2MtPm1lbWNnKQorCQlkc19xdWV1ZSA9ICZzYy0+bWVtY2ctPmRlZmVycmVkX3NwbGl0X3F1ZXVlOworI2VuZGlmCisJcmV0dXJuIFJFQURfT05DRShkc19xdWV1ZS0+c3BsaXRfcXVldWVfbGVuKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgZGVmZXJyZWRfc3BsaXRfc2NhbihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmluaywKIAkJc3RydWN0IHNocmlua19jb250cm9sICpzYykKIHsKIAlzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0YSA9IE5PREVfREFUQShzYy0+bmlkKTsKKwlzdHJ1Y3QgZGVmZXJyZWRfc3BsaXQgKmRzX3F1ZXVlID0gJnBnZGF0YS0+ZGVmZXJyZWRfc3BsaXRfcXVldWU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlMSVNUX0hFQUQobGlzdCksICpwb3MsICpuZXh0OwogCXN0cnVjdCBwYWdlICpwYWdlOwogCWludCBzcGxpdCA9IDA7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkYXRhLT5zcGxpdF9xdWV1ZV9sb2NrLCBmbGFncyk7CisjaWZkZWYgQ09ORklHX01FTUNHCisJaWYgKHNjLT5tZW1jZykKKwkJZHNfcXVldWUgPSAmc2MtPm1lbWNnLT5kZWZlcnJlZF9zcGxpdF9xdWV1ZTsKKyNlbmRpZgorCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRzX3F1ZXVlLT5zcGxpdF9xdWV1ZV9sb2NrLCBmbGFncyk7CiAJLyogVGFrZSBwaW4gb24gYWxsIGhlYWQgcGFnZXMgdG8gYXZvaWQgZnJlZWluZyB0aGVtIHVuZGVyIHVzICovCi0JbGlzdF9mb3JfZWFjaF9zYWZlKHBvcywgbmV4dCwgJnBnZGF0YS0+c3BsaXRfcXVldWUpIHsKKwlsaXN0X2Zvcl9lYWNoX3NhZmUocG9zLCBuZXh0LCAmZHNfcXVldWUtPnNwbGl0X3F1ZXVlKSB7CiAJCXBhZ2UgPSBsaXN0X2VudHJ5KCh2b2lkICopcG9zLCBzdHJ1Y3QgcGFnZSwgbWFwcGluZyk7CiAJCXBhZ2UgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOwogCQlpZiAoZ2V0X3BhZ2VfdW5sZXNzX3plcm8ocGFnZSkpIHsKQEAgLTI4NjIsMTIgKzI5MTcsMTIgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgZGVmZXJyZWRfc3BsaXRfc2NhbihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmluaywKIAkJfSBlbHNlIHsKIAkJCS8qIFdlIGxvc3QgcmFjZSB3aXRoIHB1dF9jb21wb3VuZF9wYWdlKCkgKi8KIAkJCWxpc3RfZGVsX2luaXQocGFnZV9kZWZlcnJlZF9saXN0KHBhZ2UpKTsKLQkJCXBnZGF0YS0+c3BsaXRfcXVldWVfbGVuLS07CisJCQlkc19xdWV1ZS0+c3BsaXRfcXVldWVfbGVuLS07CiAJCX0KIAkJaWYgKCEtLXNjLT5ucl90b19zY2FuKQogCQkJYnJlYWs7CiAJfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZGF0YS0+c3BsaXRfcXVldWVfbG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRzX3F1ZXVlLT5zcGxpdF9xdWV1ZV9sb2NrLCBmbGFncyk7CiAKIAlsaXN0X2Zvcl9lYWNoX3NhZmUocG9zLCBuZXh0LCAmbGlzdCkgewogCQlwYWdlID0gbGlzdF9lbnRyeSgodm9pZCAqKXBvcywgc3RydWN0IHBhZ2UsIG1hcHBpbmcpOwpAQCAtMjg4MSwxNSArMjkzNiwxNSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBkZWZlcnJlZF9zcGxpdF9zY2FuKHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rLAogCQlwdXRfcGFnZShwYWdlKTsKIAl9CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkYXRhLT5zcGxpdF9xdWV1ZV9sb2NrLCBmbGFncyk7Ci0JbGlzdF9zcGxpY2VfdGFpbCgmbGlzdCwgJnBnZGF0YS0+c3BsaXRfcXVldWUpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZGF0YS0+c3BsaXRfcXVldWVfbG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZkc19xdWV1ZS0+c3BsaXRfcXVldWVfbG9jaywgZmxhZ3MpOworCWxpc3Rfc3BsaWNlX3RhaWwoJmxpc3QsICZkc19xdWV1ZS0+c3BsaXRfcXVldWUpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRzX3F1ZXVlLT5zcGxpdF9xdWV1ZV9sb2NrLCBmbGFncyk7CiAKIAkvKgogCSAqIFN0b3Agc2hyaW5rZXIgaWYgd2UgZGlkbid0IHNwbGl0IGFueSBwYWdlLCBidXQgdGhlIHF1ZXVlIGlzIGVtcHR5LgogCSAqIFRoaXMgY2FuIGhhcHBlbiBpZiBwYWdlcyB3ZXJlIGZyZWVkIHVuZGVyIHVzLgogCSAqLwotCWlmICghc3BsaXQgJiYgbGlzdF9lbXB0eSgmcGdkYXRhLT5zcGxpdF9xdWV1ZSkpCisJaWYgKCFzcGxpdCAmJiBsaXN0X2VtcHR5KCZkc19xdWV1ZS0+c3BsaXRfcXVldWUpKQogCQlyZXR1cm4gU0hSSU5LX1NUT1A7CiAJcmV0dXJuIHNwbGl0OwogfQpAQCAtMjg5OCw3ICsyOTUzLDggQEAgc3RhdGljIHN0cnVjdCBzaHJpbmtlciBkZWZlcnJlZF9zcGxpdF9zaHJpbmtlciA9IHsKIAkuY291bnRfb2JqZWN0cyA9IGRlZmVycmVkX3NwbGl0X2NvdW50LAogCS5zY2FuX29iamVjdHMgPSBkZWZlcnJlZF9zcGxpdF9zY2FuLAogCS5zZWVrcyA9IERFRkFVTFRfU0VFS1MsCi0JLmZsYWdzID0gU0hSSU5LRVJfTlVNQV9BV0FSRSwKKwkuZmxhZ3MgPSBTSFJJTktFUl9OVU1BX0FXQVJFIHwgU0hSSU5LRVJfTUVNQ0dfQVdBUkUgfAorCQkgU0hSSU5LRVJfTk9OU0xBQiwKIH07CiAKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKZGlmZiAtLWdpdCBhL21tL2h1Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYwppbmRleCA2ZDcyOTZkLi5lZjM3Yzg1IDEwMDY0NAotLS0gYS9tbS9odWdldGxiLmMKKysrIGIvbW0vaHVnZXRsYi5jCkBAIC0xNDA1LDEyICsxNDA1LDI1IEBAIHBnb2ZmX3QgX19iYXNlcGFnZV9pbmRleChzdHJ1Y3QgcGFnZSAqcGFnZSkKIH0KIAogc3RhdGljIHN0cnVjdCBwYWdlICphbGxvY19idWRkeV9odWdlX3BhZ2Uoc3RydWN0IGhzdGF0ZSAqaCwKLQkJZ2ZwX3QgZ2ZwX21hc2ssIGludCBuaWQsIG5vZGVtYXNrX3QgKm5tYXNrKQorCQlnZnBfdCBnZnBfbWFzaywgaW50IG5pZCwgbm9kZW1hc2tfdCAqbm1hc2ssCisJCW5vZGVtYXNrX3QgKm5vZGVfYWxsb2Nfbm9yZXRyeSkKIHsKIAlpbnQgb3JkZXIgPSBodWdlX3BhZ2Vfb3JkZXIoaCk7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CisJYm9vbCBhbGxvY190cnlfaGFyZCA9IHRydWU7CiAKLQlnZnBfbWFzayB8PSBfX0dGUF9DT01QfF9fR0ZQX1JFVFJZX01BWUZBSUx8X19HRlBfTk9XQVJOOworCS8qCisJICogQnkgZGVmYXVsdCB3ZSBhbHdheXMgdHJ5IGhhcmQgdG8gYWxsb2NhdGUgdGhlIHBhZ2Ugd2l0aAorCSAqIF9fR0ZQX1JFVFJZX01BWUZBSUwgZmxhZy4gIEhvd2V2ZXIsIGlmIHdlIGFyZSBhbGxvY2F0aW5nIHBhZ2VzIGluCisJICogYSBsb29wICh0byBhZGp1c3QgZ2xvYmFsIGh1Z2UgcGFnZSBjb3VudHMpIGFuZCBwcmV2aW91cyBhbGxvY2F0aW9uCisJICogZmFpbGVkLCBkbyBub3QgY29udGludWUgdG8gdHJ5IGhhcmQgb24gdGhlIHNhbWUgbm9kZS4gIFVzZSB0aGUKKwkgKiBub2RlX2FsbG9jX25vcmV0cnkgYml0bWFwIHRvIG1hbmFnZSB0aGlzIHN0YXRlIGluZm9ybWF0aW9uLgorCSAqLworCWlmIChub2RlX2FsbG9jX25vcmV0cnkgJiYgbm9kZV9pc3NldChuaWQsICpub2RlX2FsbG9jX25vcmV0cnkpKQorCQlhbGxvY190cnlfaGFyZCA9IGZhbHNlOworCWdmcF9tYXNrIHw9IF9fR0ZQX0NPTVB8X19HRlBfTk9XQVJOOworCWlmIChhbGxvY190cnlfaGFyZCkKKwkJZ2ZwX21hc2sgfD0gX19HRlBfUkVUUllfTUFZRkFJTDsKIAlpZiAobmlkID09IE5VTUFfTk9fTk9ERSkKIAkJbmlkID0gbnVtYV9tZW1faWQoKTsKIAlwYWdlID0gX19hbGxvY19wYWdlc19ub2RlbWFzayhnZnBfbWFzaywgb3JkZXIsIG5pZCwgbm1hc2spOwpAQCAtMTQxOSw2ICsxNDMyLDIyIEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqYWxsb2NfYnVkZHlfaHVnZV9wYWdlKHN0cnVjdCBoc3RhdGUgKmgsCiAJZWxzZQogCQlfX2NvdW50X3ZtX2V2ZW50KEhUTEJfQlVERFlfUEdBTExPQ19GQUlMKTsKIAorCS8qCisJICogSWYgd2UgZGlkIG5vdCBzcGVjaWZ5IF9fR0ZQX1JFVFJZX01BWUZBSUwsIGJ1dCBzdGlsbCBnb3QgYSBwYWdlIHRoaXMKKwkgKiBpbmRpY2F0ZXMgYW4gb3ZlcmFsbCBzdGF0ZSBjaGFuZ2UuICBDbGVhciBiaXQgc28gdGhhdCB3ZSByZXN1bWUKKwkgKiBub3JtYWwgJ3RyeSBoYXJkJyBhbGxvY2F0aW9ucy4KKwkgKi8KKwlpZiAobm9kZV9hbGxvY19ub3JldHJ5ICYmIHBhZ2UgJiYgIWFsbG9jX3RyeV9oYXJkKQorCQlub2RlX2NsZWFyKG5pZCwgKm5vZGVfYWxsb2Nfbm9yZXRyeSk7CisKKwkvKgorCSAqIElmIHdlIHRyaWVkIGhhcmQgdG8gZ2V0IGEgcGFnZSBidXQgZmFpbGVkLCBzZXQgYml0IHNvIHRoYXQKKwkgKiBzdWJzZXF1ZW50IGF0dGVtcHRzIHdpbGwgbm90IHRyeSBhcyBoYXJkIHVudGlsIHRoZXJlIGlzIGFuCisJICogb3ZlcmFsbCBzdGF0ZSBjaGFuZ2UuCisJICovCisJaWYgKG5vZGVfYWxsb2Nfbm9yZXRyeSAmJiAhcGFnZSAmJiBhbGxvY190cnlfaGFyZCkKKwkJbm9kZV9zZXQobmlkLCAqbm9kZV9hbGxvY19ub3JldHJ5KTsKKwogCXJldHVybiBwYWdlOwogfQogCkBAIC0xNDI3LDcgKzE0NTYsOCBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKmFsbG9jX2J1ZGR5X2h1Z2VfcGFnZShzdHJ1Y3QgaHN0YXRlICpoLAogICogc2hvdWxkIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGdldCBuZXcgaHVnZXRsYiBwYWdlcwogICovCiBzdGF0aWMgc3RydWN0IHBhZ2UgKmFsbG9jX2ZyZXNoX2h1Z2VfcGFnZShzdHJ1Y3QgaHN0YXRlICpoLAotCQlnZnBfdCBnZnBfbWFzaywgaW50IG5pZCwgbm9kZW1hc2tfdCAqbm1hc2spCisJCWdmcF90IGdmcF9tYXNrLCBpbnQgbmlkLCBub2RlbWFza190ICpubWFzaywKKwkJbm9kZW1hc2tfdCAqbm9kZV9hbGxvY19ub3JldHJ5KQogewogCXN0cnVjdCBwYWdlICpwYWdlOwogCkBAIC0xNDM1LDcgKzE0NjUsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKmFsbG9jX2ZyZXNoX2h1Z2VfcGFnZShzdHJ1Y3QgaHN0YXRlICpoLAogCQlwYWdlID0gYWxsb2NfZ2lnYW50aWNfcGFnZShoLCBnZnBfbWFzaywgbmlkLCBubWFzayk7CiAJZWxzZQogCQlwYWdlID0gYWxsb2NfYnVkZHlfaHVnZV9wYWdlKGgsIGdmcF9tYXNrLAotCQkJCW5pZCwgbm1hc2spOworCQkJCW5pZCwgbm1hc2ssIG5vZGVfYWxsb2Nfbm9yZXRyeSk7CiAJaWYgKCFwYWdlKQogCQlyZXR1cm4gTlVMTDsKIApAQCAtMTQ1MCwxNCArMTQ4MCwxNiBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKmFsbG9jX2ZyZXNoX2h1Z2VfcGFnZShzdHJ1Y3QgaHN0YXRlICpoLAogICogQWxsb2NhdGVzIGEgZnJlc2ggcGFnZSB0byB0aGUgaHVnZXRsYiBhbGxvY2F0b3IgcG9vbCBpbiB0aGUgbm9kZSBpbnRlcmxlYXZlZAogICogbWFubmVyLgogICovCi1zdGF0aWMgaW50IGFsbG9jX3Bvb2xfaHVnZV9wYWdlKHN0cnVjdCBoc3RhdGUgKmgsIG5vZGVtYXNrX3QgKm5vZGVzX2FsbG93ZWQpCitzdGF0aWMgaW50IGFsbG9jX3Bvb2xfaHVnZV9wYWdlKHN0cnVjdCBoc3RhdGUgKmgsIG5vZGVtYXNrX3QgKm5vZGVzX2FsbG93ZWQsCisJCQkJbm9kZW1hc2tfdCAqbm9kZV9hbGxvY19ub3JldHJ5KQogewogCXN0cnVjdCBwYWdlICpwYWdlOwogCWludCBucl9ub2Rlcywgbm9kZTsKIAlnZnBfdCBnZnBfbWFzayA9IGh0bGJfYWxsb2NfbWFzayhoKSB8IF9fR0ZQX1RISVNOT0RFOwogCiAJZm9yX2VhY2hfbm9kZV9tYXNrX3RvX2FsbG9jKGgsIG5yX25vZGVzLCBub2RlLCBub2Rlc19hbGxvd2VkKSB7Ci0JCXBhZ2UgPSBhbGxvY19mcmVzaF9odWdlX3BhZ2UoaCwgZ2ZwX21hc2ssIG5vZGUsIG5vZGVzX2FsbG93ZWQpOworCQlwYWdlID0gYWxsb2NfZnJlc2hfaHVnZV9wYWdlKGgsIGdmcF9tYXNrLCBub2RlLCBub2Rlc19hbGxvd2VkLAorCQkJCQkJbm9kZV9hbGxvY19ub3JldHJ5KTsKIAkJaWYgKHBhZ2UpCiAJCQlicmVhazsKIAl9CkBAIC0xNjAxLDcgKzE2MzMsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKmFsbG9jX3N1cnBsdXNfaHVnZV9wYWdlKHN0cnVjdCBoc3RhdGUgKmgsIGdmcF90IGdmcF9tYXNrLAogCQlnb3RvIG91dF91bmxvY2s7CiAJc3Bpbl91bmxvY2soJmh1Z2V0bGJfbG9jayk7CiAKLQlwYWdlID0gYWxsb2NfZnJlc2hfaHVnZV9wYWdlKGgsIGdmcF9tYXNrLCBuaWQsIG5tYXNrKTsKKwlwYWdlID0gYWxsb2NfZnJlc2hfaHVnZV9wYWdlKGgsIGdmcF9tYXNrLCBuaWQsIG5tYXNrLCBOVUxMKTsKIAlpZiAoIXBhZ2UpCiAJCXJldHVybiBOVUxMOwogCkBAIC0xNjM3LDcgKzE2NjksNyBAQCBzdHJ1Y3QgcGFnZSAqYWxsb2NfbWlncmF0ZV9odWdlX3BhZ2Uoc3RydWN0IGhzdGF0ZSAqaCwgZ2ZwX3QgZ2ZwX21hc2ssCiAJaWYgKGhzdGF0ZV9pc19naWdhbnRpYyhoKSkKIAkJcmV0dXJuIE5VTEw7CiAKLQlwYWdlID0gYWxsb2NfZnJlc2hfaHVnZV9wYWdlKGgsIGdmcF9tYXNrLCBuaWQsIG5tYXNrKTsKKwlwYWdlID0gYWxsb2NfZnJlc2hfaHVnZV9wYWdlKGgsIGdmcF9tYXNrLCBuaWQsIG5tYXNrLCBOVUxMKTsKIAlpZiAoIXBhZ2UpCiAJCXJldHVybiBOVUxMOwogCkBAIC0yMjA3LDEzICsyMjM5LDMzIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBnYXRoZXJfYm9vdG1lbV9wcmVhbGxvYyh2b2lkKQogc3RhdGljIHZvaWQgX19pbml0IGh1Z2V0bGJfaHN0YXRlX2FsbG9jX3BhZ2VzKHN0cnVjdCBoc3RhdGUgKmgpCiB7CiAJdW5zaWduZWQgbG9uZyBpOworCW5vZGVtYXNrX3QgKm5vZGVfYWxsb2Nfbm9yZXRyeTsKKworCWlmICghaHN0YXRlX2lzX2dpZ2FudGljKGgpKSB7CisJCS8qCisJCSAqIEJpdCBtYXNrIGNvbnRyb2xsaW5nIGhvdyBoYXJkIHdlIHJldHJ5IHBlci1ub2RlIGFsbG9jYXRpb25zLgorCQkgKiBJZ25vcmUgZXJyb3JzIGFzIGxvd2VyIGxldmVsIHJvdXRpbmVzIGNhbiBkZWFsIHdpdGgKKwkJICogbm9kZV9hbGxvY19ub3JldHJ5ID09IE5VTEwuICBJZiB0aGlzIGttYWxsb2MgZmFpbHMgYXQgYm9vdAorCQkgKiB0aW1lLCB3ZSBhcmUgbGlrZWx5IGluIGJpZ2dlciB0cm91YmxlLgorCQkgKi8KKwkJbm9kZV9hbGxvY19ub3JldHJ5ID0ga21hbGxvYyhzaXplb2YoKm5vZGVfYWxsb2Nfbm9yZXRyeSksCisJCQkJCQlHRlBfS0VSTkVMKTsKKwl9IGVsc2UgeworCQkvKiBhbGxvY2F0aW9ucyBkb25lIGF0IGJvb3QgdGltZSAqLworCQlub2RlX2FsbG9jX25vcmV0cnkgPSBOVUxMOworCX0KKworCS8qIGJpdCBtYXNrIGNvbnRyb2xsaW5nIGhvdyBoYXJkIHdlIHJldHJ5IHBlci1ub2RlIGFsbG9jYXRpb25zICovCisJaWYgKG5vZGVfYWxsb2Nfbm9yZXRyeSkKKwkJbm9kZXNfY2xlYXIoKm5vZGVfYWxsb2Nfbm9yZXRyeSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgaC0+bWF4X2h1Z2VfcGFnZXM7ICsraSkgewogCQlpZiAoaHN0YXRlX2lzX2dpZ2FudGljKGgpKSB7CiAJCQlpZiAoIWFsbG9jX2Jvb3RtZW1faHVnZV9wYWdlKGgpKQogCQkJCWJyZWFrOwogCQl9IGVsc2UgaWYgKCFhbGxvY19wb29sX2h1Z2VfcGFnZShoLAotCQkJCQkgJm5vZGVfc3RhdGVzW05fTUVNT1JZXSkpCisJCQkJCSAmbm9kZV9zdGF0ZXNbTl9NRU1PUlldLAorCQkJCQkgbm9kZV9hbGxvY19ub3JldHJ5KSkKIAkJCWJyZWFrOwogCQljb25kX3Jlc2NoZWQoKTsKIAl9CkBAIC0yMjI1LDYgKzIyNzcsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaHVnZXRsYl9oc3RhdGVfYWxsb2NfcGFnZXMoc3RydWN0IGhzdGF0ZSAqaCkKIAkJCWgtPm1heF9odWdlX3BhZ2VzLCBidWYsIGkpOwogCQloLT5tYXhfaHVnZV9wYWdlcyA9IGk7CiAJfQorCisJa2ZyZWUobm9kZV9hbGxvY19ub3JldHJ5KTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IGh1Z2V0bGJfaW5pdF9oc3RhdGVzKHZvaWQpCkBAIC0yMzIzLDYgKzIzNzcsMTcgQEAgc3RhdGljIGludCBzZXRfbWF4X2h1Z2VfcGFnZXMoc3RydWN0IGhzdGF0ZSAqaCwgdW5zaWduZWQgbG9uZyBjb3VudCwgaW50IG5pZCwKIAkJCSAgICAgIG5vZGVtYXNrX3QgKm5vZGVzX2FsbG93ZWQpCiB7CiAJdW5zaWduZWQgbG9uZyBtaW5fY291bnQsIHJldDsKKwlOT0RFTUFTS19BTExPQyhub2RlbWFza190LCBub2RlX2FsbG9jX25vcmV0cnksIEdGUF9LRVJORUwpOworCisJLyoKKwkgKiBCaXQgbWFzayBjb250cm9sbGluZyBob3cgaGFyZCB3ZSByZXRyeSBwZXItbm9kZSBhbGxvY2F0aW9ucy4KKwkgKiBJZiB3ZSBjYW4gbm90IGFsbG9jYXRlIHRoZSBiaXQgbWFzaywgZG8gbm90IGF0dGVtcHQgdG8gYWxsb2NhdGUKKwkgKiB0aGUgcmVxdWVzdGVkIGh1Z2UgcGFnZXMuCisJICovCisJaWYgKG5vZGVfYWxsb2Nfbm9yZXRyeSkKKwkJbm9kZXNfY2xlYXIoKm5vZGVfYWxsb2Nfbm9yZXRyeSk7CisJZWxzZQorCQlyZXR1cm4gLUVOT01FTTsKIAogCXNwaW5fbG9jaygmaHVnZXRsYl9sb2NrKTsKIApAQCAtMjM1Niw2ICsyNDIxLDcgQEAgc3RhdGljIGludCBzZXRfbWF4X2h1Z2VfcGFnZXMoc3RydWN0IGhzdGF0ZSAqaCwgdW5zaWduZWQgbG9uZyBjb3VudCwgaW50IG5pZCwKIAlpZiAoaHN0YXRlX2lzX2dpZ2FudGljKGgpICYmICFJU19FTkFCTEVEKENPTkZJR19DT05USUdfQUxMT0MpKSB7CiAJCWlmIChjb3VudCA+IHBlcnNpc3RlbnRfaHVnZV9wYWdlcyhoKSkgewogCQkJc3Bpbl91bmxvY2soJmh1Z2V0bGJfbG9jayk7CisJCQlOT0RFTUFTS19GUkVFKG5vZGVfYWxsb2Nfbm9yZXRyeSk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCQkvKiBGYWxsIHRocm91Z2ggdG8gZGVjcmVhc2UgcG9vbCAqLwpAQCAtMjM4OCw3ICsyNDU0LDggQEAgc3RhdGljIGludCBzZXRfbWF4X2h1Z2VfcGFnZXMoc3RydWN0IGhzdGF0ZSAqaCwgdW5zaWduZWQgbG9uZyBjb3VudCwgaW50IG5pZCwKIAkJLyogeWllbGQgY3B1IHRvIGF2b2lkIHNvZnQgbG9ja3VwICovCiAJCWNvbmRfcmVzY2hlZCgpOwogCi0JCXJldCA9IGFsbG9jX3Bvb2xfaHVnZV9wYWdlKGgsIG5vZGVzX2FsbG93ZWQpOworCQlyZXQgPSBhbGxvY19wb29sX2h1Z2VfcGFnZShoLCBub2Rlc19hbGxvd2VkLAorCQkJCQkJbm9kZV9hbGxvY19ub3JldHJ5KTsKIAkJc3Bpbl9sb2NrKCZodWdldGxiX2xvY2spOwogCQlpZiAoIXJldCkKIAkJCWdvdG8gb3V0OwpAQCAtMjQyOSw2ICsyNDk2LDggQEAgc3RhdGljIGludCBzZXRfbWF4X2h1Z2VfcGFnZXMoc3RydWN0IGhzdGF0ZSAqaCwgdW5zaWduZWQgbG9uZyBjb3VudCwgaW50IG5pZCwKIAloLT5tYXhfaHVnZV9wYWdlcyA9IHBlcnNpc3RlbnRfaHVnZV9wYWdlcyhoKTsKIAlzcGluX3VubG9jaygmaHVnZXRsYl9sb2NrKTsKIAorCU5PREVNQVNLX0ZSRUUobm9kZV9hbGxvY19ub3JldHJ5KTsKKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9tbS9odWdldGxiX2Nncm91cC5jIGIvbW0vaHVnZXRsYl9jZ3JvdXAuYwppbmRleCA2OGMyZjJmLi5mMTkzMGZhIDEwMDY0NAotLS0gYS9tbS9odWdldGxiX2Nncm91cC5jCisrKyBiL21tL2h1Z2V0bGJfY2dyb3VwLmMKQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0aWMgdm9pZCBodWdldGxiX2Nncm91cF9tb3ZlX3BhcmVudChpbnQgaWR4LCBzdHJ1Y3QgaHVnZXRsYl9jZ3JvdXAgKmhfY2csCiAJaWYgKCFwYWdlX2hjZyB8fCBwYWdlX2hjZyAhPSBoX2NnKQogCQlnb3RvIG91dDsKIAotCW5yX3BhZ2VzID0gMSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKTsKKwlucl9wYWdlcyA9IGNvbXBvdW5kX25yKHBhZ2UpOwogCWlmICghcGFyZW50KSB7CiAJCXBhcmVudCA9IHJvb3RfaF9jZ3JvdXA7CiAJCS8qIHJvb3QgaGFzIG5vIGxpbWl0ICovCmRpZmYgLS1naXQgYS9tbS9pbml0LW1tLmMgYi9tbS9pbml0LW1tLmMKaW5kZXggYTc4N2EzMS4uZmIxZTE1MCAxMDA2NDQKLS0tIGEvbW0vaW5pdC1tbS5jCisrKyBiL21tL2luaXQtbW0uYwpAQCAtMzUsNiArMzUsNiBAQCBzdHJ1Y3QgbW1fc3RydWN0IGluaXRfbW0gPSB7CiAJLmFyZ19sb2NrCT0gIF9fU1BJTl9MT0NLX1VOTE9DS0VEKGluaXRfbW0uYXJnX2xvY2spLAogCS5tbWxpc3QJCT0gTElTVF9IRUFEX0lOSVQoaW5pdF9tbS5tbWxpc3QpLAogCS51c2VyX25zCT0gJmluaXRfdXNlcl9ucywKLQkuY3B1X2JpdG1hcAk9IHsgW0JJVFNfVE9fTE9OR1MoTlJfQ1BVUyldID0gMH0sCisJLmNwdV9iaXRtYXAJPSBDUFVfQklUU19OT05FLAogCUlOSVRfTU1fQ09OVEVYVChpbml0X21tKQogfTsKZGlmZiAtLWdpdCBhL21tL2ludGVybmFsLmggYi9tbS9pbnRlcm5hbC5oCmluZGV4IGUzMjM5MDguLjBkNWY3MjAgMTAwNjQ0Ci0tLSBhL21tL2ludGVybmFsLmgKKysrIGIvbW0vaW50ZXJuYWwuaApAQCAtMzksNyArMzksNyBAQCB2bV9mYXVsdF90IGRvX3N3YXBfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZik7CiB2b2lkIGZyZWVfcGd0YWJsZXMoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICpzdGFydF92bWEsCiAJCXVuc2lnbmVkIGxvbmcgZmxvb3IsIHVuc2lnbmVkIGxvbmcgY2VpbGluZyk7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjYW5fbWFkdl9kb250bmVlZF92bWEoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCitzdGF0aWMgaW5saW5lIGJvb2wgY2FuX21hZHZfbHJ1X3ZtYShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKIAlyZXR1cm4gISh2bWEtPnZtX2ZsYWdzICYgKFZNX0xPQ0tFRHxWTV9IVUdFVExCfFZNX1BGTk1BUCkpOwogfQpkaWZmIC0tZ2l0IGEvbW0va2FzYW4vY29tbW9uLmMgYi9tbS9rYXNhbi9jb21tb24uYwppbmRleCA5NWQxNmE0Li42ODE0ZDZkIDEwMDY0NAotLS0gYS9tbS9rYXNhbi9jb21tb24uYworKysgYi9tbS9rYXNhbi9jb21tb24uYwpAQCAtMzA0LDcgKzMwNCw2IEBAIHNpemVfdCBrYXNhbl9tZXRhZGF0YV9zaXplKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSkKIHN0cnVjdCBrYXNhbl9hbGxvY19tZXRhICpnZXRfYWxsb2NfaW5mbyhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsCiAJCQkJCWNvbnN0IHZvaWQgKm9iamVjdCkKIHsKLQlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBrYXNhbl9hbGxvY19tZXRhKSA+IDMyKTsKIAlyZXR1cm4gKHZvaWQgKilvYmplY3QgKyBjYWNoZS0+a2FzYW5faW5mby5hbGxvY19tZXRhX29mZnNldDsKIH0KIApAQCAtMzE1LDE0ICszMTQsMzEgQEAgc3RydWN0IGthc2FuX2ZyZWVfbWV0YSAqZ2V0X2ZyZWVfaW5mbyhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsCiAJcmV0dXJuICh2b2lkICopb2JqZWN0ICsgY2FjaGUtPmthc2FuX2luZm8uZnJlZV9tZXRhX29mZnNldDsKIH0KIAorCitzdGF0aWMgdm9pZCBrYXNhbl9zZXRfZnJlZV9pbmZvKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSwKKwkJdm9pZCAqb2JqZWN0LCB1OCB0YWcpCit7CisJc3RydWN0IGthc2FuX2FsbG9jX21ldGEgKmFsbG9jX21ldGE7CisJdTggaWR4ID0gMDsKKworCWFsbG9jX21ldGEgPSBnZXRfYWxsb2NfaW5mbyhjYWNoZSwgb2JqZWN0KTsKKworI2lmZGVmIENPTkZJR19LQVNBTl9TV19UQUdTX0lERU5USUZZCisJaWR4ID0gYWxsb2NfbWV0YS0+ZnJlZV90cmFja19pZHg7CisJYWxsb2NfbWV0YS0+ZnJlZV9wb2ludGVyX3RhZ1tpZHhdID0gdGFnOworCWFsbG9jX21ldGEtPmZyZWVfdHJhY2tfaWR4ID0gKGlkeCArIDEpICUgS0FTQU5fTlJfRlJFRV9TVEFDS1M7CisjZW5kaWYKKworCXNldF90cmFjaygmYWxsb2NfbWV0YS0+ZnJlZV90cmFja1tpZHhdLCBHRlBfTk9XQUlUKTsKK30KKwogdm9pZCBrYXNhbl9wb2lzb25fc2xhYihzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsKIAl1bnNpZ25lZCBsb25nIGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgKDEgPDwgY29tcG91bmRfb3JkZXIocGFnZSkpOyBpKyspCisJZm9yIChpID0gMDsgaSA8IGNvbXBvdW5kX25yKHBhZ2UpOyBpKyspCiAJCXBhZ2Vfa2FzYW5fdGFnX3Jlc2V0KHBhZ2UgKyBpKTsKLQlrYXNhbl9wb2lzb25fc2hhZG93KHBhZ2VfYWRkcmVzcyhwYWdlKSwKLQkJCVBBR0VfU0laRSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKSwKKwlrYXNhbl9wb2lzb25fc2hhZG93KHBhZ2VfYWRkcmVzcyhwYWdlKSwgcGFnZV9zaXplKHBhZ2UpLAogCQkJS0FTQU5fS01BTExPQ19SRURaT05FKTsKIH0KIApAQCAtNDUyLDcgKzQ2OCw4IEBAIHN0YXRpYyBib29sIF9fa2FzYW5fc2xhYl9mcmVlKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSwgdm9pZCAqb2JqZWN0LAogCQkJdW5saWtlbHkoIShjYWNoZS0+ZmxhZ3MgJiBTTEFCX0tBU0FOKSkpCiAJCXJldHVybiBmYWxzZTsKIAotCXNldF90cmFjaygmZ2V0X2FsbG9jX2luZm8oY2FjaGUsIG9iamVjdCktPmZyZWVfdHJhY2ssIEdGUF9OT1dBSVQpOworCWthc2FuX3NldF9mcmVlX2luZm8oY2FjaGUsIG9iamVjdCwgdGFnKTsKKwogCXF1YXJhbnRpbmVfcHV0KGdldF9mcmVlX2luZm8oY2FjaGUsIG9iamVjdCksIGNhY2hlKTsKIAogCXJldHVybiBJU19FTkFCTEVEKENPTkZJR19LQVNBTl9HRU5FUklDKTsKQEAgLTUyNCw3ICs1NDEsNyBAQCB2b2lkICogX19tdXN0X2NoZWNrIGthc2FuX2ttYWxsb2NfbGFyZ2UoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSwKIAlwYWdlID0gdmlydF90b19wYWdlKHB0cik7CiAJcmVkem9uZV9zdGFydCA9IHJvdW5kX3VwKCh1bnNpZ25lZCBsb25nKShwdHIgKyBzaXplKSwKIAkJCQlLQVNBTl9TSEFET1dfU0NBTEVfU0laRSk7Ci0JcmVkem9uZV9lbmQgPSAodW5zaWduZWQgbG9uZylwdHIgKyAoUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpKTsKKwlyZWR6b25lX2VuZCA9ICh1bnNpZ25lZCBsb25nKXB0ciArIHBhZ2Vfc2l6ZShwYWdlKTsKIAogCWthc2FuX3VucG9pc29uX3NoYWRvdyhwdHIsIHNpemUpOwogCWthc2FuX3BvaXNvbl9zaGFkb3coKHZvaWQgKilyZWR6b25lX3N0YXJ0LCByZWR6b25lX2VuZCAtIHJlZHpvbmVfc3RhcnQsCkBAIC01NjAsOCArNTc3LDcgQEAgdm9pZCBrYXNhbl9wb2lzb25fa2ZyZWUodm9pZCAqcHRyLCB1bnNpZ25lZCBsb25nIGlwKQogCQkJa2FzYW5fcmVwb3J0X2ludmFsaWRfZnJlZShwdHIsIGlwKTsKIAkJCXJldHVybjsKIAkJfQotCQlrYXNhbl9wb2lzb25fc2hhZG93KHB0ciwgUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpLAotCQkJCUtBU0FOX0ZSRUVfUEFHRSk7CisJCWthc2FuX3BvaXNvbl9zaGFkb3cocHRyLCBwYWdlX3NpemUocGFnZSksIEtBU0FOX0ZSRUVfUEFHRSk7CiAJfSBlbHNlIHsKIAkJX19rYXNhbl9zbGFiX2ZyZWUocGFnZS0+c2xhYl9jYWNoZSwgcHRyLCBpcCwgZmFsc2UpOwogCX0KZGlmZiAtLWdpdCBhL21tL2thc2FuL2thc2FuLmggYi9tbS9rYXNhbi9rYXNhbi5oCmluZGV4IDAxNGYxOWUuLjM1Y2ZmNmIgMTAwNjQ0Ci0tLSBhL21tL2thc2FuL2thc2FuLmgKKysrIGIvbW0va2FzYW4va2FzYW4uaApAQCAtOTUsOSArOTUsMTkgQEAgc3RydWN0IGthc2FuX3RyYWNrIHsKIAlkZXBvdF9zdGFja19oYW5kbGVfdCBzdGFjazsKIH07CiAKKyNpZmRlZiBDT05GSUdfS0FTQU5fU1dfVEFHU19JREVOVElGWQorI2RlZmluZSBLQVNBTl9OUl9GUkVFX1NUQUNLUyA1CisjZWxzZQorI2RlZmluZSBLQVNBTl9OUl9GUkVFX1NUQUNLUyAxCisjZW5kaWYKKwogc3RydWN0IGthc2FuX2FsbG9jX21ldGEgewogCXN0cnVjdCBrYXNhbl90cmFjayBhbGxvY190cmFjazsKLQlzdHJ1Y3Qga2FzYW5fdHJhY2sgZnJlZV90cmFjazsKKwlzdHJ1Y3Qga2FzYW5fdHJhY2sgZnJlZV90cmFja1tLQVNBTl9OUl9GUkVFX1NUQUNLU107CisjaWZkZWYgQ09ORklHX0tBU0FOX1NXX1RBR1NfSURFTlRJRlkKKwl1OCBmcmVlX3BvaW50ZXJfdGFnW0tBU0FOX05SX0ZSRUVfU1RBQ0tTXTsKKwl1OCBmcmVlX3RyYWNrX2lkeDsKKyNlbmRpZgogfTsKIAogc3RydWN0IHFsaXN0X25vZGUgewpAQCAtMTQ2LDYgKzE1Niw4IEBAIHZvaWQga2FzYW5fcmVwb3J0KHVuc2lnbmVkIGxvbmcgYWRkciwgc2l6ZV90IHNpemUsCiAJCWJvb2wgaXNfd3JpdGUsIHVuc2lnbmVkIGxvbmcgaXApOwogdm9pZCBrYXNhbl9yZXBvcnRfaW52YWxpZF9mcmVlKHZvaWQgKm9iamVjdCwgdW5zaWduZWQgbG9uZyBpcCk7CiAKK3N0cnVjdCBwYWdlICprYXNhbl9hZGRyX3RvX3BhZ2UoY29uc3Qgdm9pZCAqYWRkcik7CisKICNpZiBkZWZpbmVkKENPTkZJR19LQVNBTl9HRU5FUklDKSAmJiBcCiAJKGRlZmluZWQoQ09ORklHX1NMQUIpIHx8IGRlZmluZWQoQ09ORklHX1NMVUIpKQogdm9pZCBxdWFyYW50aW5lX3B1dChzdHJ1Y3Qga2FzYW5fZnJlZV9tZXRhICppbmZvLCBzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpOwpkaWZmIC0tZ2l0IGEvbW0va2FzYW4vcmVwb3J0LmMgYi9tbS9rYXNhbi9yZXBvcnQuYwppbmRleCAwZTVmOTY1Li42MjE3ODIxIDEwMDY0NAotLS0gYS9tbS9rYXNhbi9yZXBvcnQuYworKysgYi9tbS9rYXNhbi9yZXBvcnQuYwpAQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyB2b2lkIHByaW50X3RyYWNrKHN0cnVjdCBrYXNhbl90cmFjayAqdHJhY2ssIGNvbnN0IGNoYXIgKnByZWZpeCkKIAl9CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcGFnZSAqYWRkcl90b19wYWdlKGNvbnN0IHZvaWQgKmFkZHIpCitzdHJ1Y3QgcGFnZSAqa2FzYW5fYWRkcl90b19wYWdlKGNvbnN0IHZvaWQgKmFkZHIpCiB7CiAJaWYgKChhZGRyID49ICh2b2lkICopUEFHRV9PRkZTRVQpICYmCiAJCQkoYWRkciA8IGhpZ2hfbWVtb3J5KSkKQEAgLTE1MSwxNSArMTUxLDM4IEBAIHN0YXRpYyB2b2lkIGRlc2NyaWJlX29iamVjdF9hZGRyKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSwgdm9pZCAqb2JqZWN0LAogCQkodm9pZCAqKShvYmplY3RfYWRkciArIGNhY2hlLT5vYmplY3Rfc2l6ZSkpOwogfQogCitzdGF0aWMgc3RydWN0IGthc2FuX3RyYWNrICprYXNhbl9nZXRfZnJlZV90cmFjayhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsCisJCXZvaWQgKm9iamVjdCwgdTggdGFnKQoreworCXN0cnVjdCBrYXNhbl9hbGxvY19tZXRhICphbGxvY19tZXRhOworCWludCBpID0gMDsKKworCWFsbG9jX21ldGEgPSBnZXRfYWxsb2NfaW5mbyhjYWNoZSwgb2JqZWN0KTsKKworI2lmZGVmIENPTkZJR19LQVNBTl9TV19UQUdTX0lERU5USUZZCisJZm9yIChpID0gMDsgaSA8IEtBU0FOX05SX0ZSRUVfU1RBQ0tTOyBpKyspIHsKKwkJaWYgKGFsbG9jX21ldGEtPmZyZWVfcG9pbnRlcl90YWdbaV0gPT0gdGFnKQorCQkJYnJlYWs7CisJfQorCWlmIChpID09IEtBU0FOX05SX0ZSRUVfU1RBQ0tTKQorCQlpID0gYWxsb2NfbWV0YS0+ZnJlZV90cmFja19pZHg7CisjZW5kaWYKKworCXJldHVybiAmYWxsb2NfbWV0YS0+ZnJlZV90cmFja1tpXTsKK30KKwogc3RhdGljIHZvaWQgZGVzY3JpYmVfb2JqZWN0KHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSwgdm9pZCAqb2JqZWN0LAotCQkJCWNvbnN0IHZvaWQgKmFkZHIpCisJCQkJY29uc3Qgdm9pZCAqYWRkciwgdTggdGFnKQogewogCXN0cnVjdCBrYXNhbl9hbGxvY19tZXRhICphbGxvY19pbmZvID0gZ2V0X2FsbG9jX2luZm8oY2FjaGUsIG9iamVjdCk7CiAKIAlpZiAoY2FjaGUtPmZsYWdzICYgU0xBQl9LQVNBTikgeworCQlzdHJ1Y3Qga2FzYW5fdHJhY2sgKmZyZWVfdHJhY2s7CisKIAkJcHJpbnRfdHJhY2soJmFsbG9jX2luZm8tPmFsbG9jX3RyYWNrLCAiQWxsb2NhdGVkIik7CiAJCXByX2VycigiXG4iKTsKLQkJcHJpbnRfdHJhY2soJmFsbG9jX2luZm8tPmZyZWVfdHJhY2ssICJGcmVlZCIpOworCQlmcmVlX3RyYWNrID0ga2FzYW5fZ2V0X2ZyZWVfdHJhY2soY2FjaGUsIG9iamVjdCwgdGFnKTsKKwkJcHJpbnRfdHJhY2soZnJlZV90cmFjaywgIkZyZWVkIik7CiAJCXByX2VycigiXG4iKTsKIAl9CiAKQEAgLTM0NCw5ICszNjcsOSBAQCBzdGF0aWMgdm9pZCBwcmludF9hZGRyZXNzX3N0YWNrX2ZyYW1lKGNvbnN0IHZvaWQgKmFkZHIpCiAJcHJpbnRfZGVjb2RlZF9mcmFtZV9kZXNjcihmcmFtZV9kZXNjcik7CiB9CiAKLXN0YXRpYyB2b2lkIHByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24odm9pZCAqYWRkcikKK3N0YXRpYyB2b2lkIHByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24odm9pZCAqYWRkciwgdTggdGFnKQogewotCXN0cnVjdCBwYWdlICpwYWdlID0gYWRkcl90b19wYWdlKGFkZHIpOworCXN0cnVjdCBwYWdlICpwYWdlID0ga2FzYW5fYWRkcl90b19wYWdlKGFkZHIpOwogCiAJZHVtcF9zdGFjaygpOwogCXByX2VycigiXG4iKTsKQEAgLTM1NSw3ICszNzgsNyBAQCBzdGF0aWMgdm9pZCBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uKHZvaWQgKmFkZHIpCiAJCXN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSA9IHBhZ2UtPnNsYWJfY2FjaGU7CiAJCXZvaWQgKm9iamVjdCA9IG5lYXJlc3Rfb2JqKGNhY2hlLCBwYWdlLAlhZGRyKTsKIAotCQlkZXNjcmliZV9vYmplY3QoY2FjaGUsIG9iamVjdCwgYWRkcik7CisJCWRlc2NyaWJlX29iamVjdChjYWNoZSwgb2JqZWN0LCBhZGRyLCB0YWcpOwogCX0KIAogCWlmIChrZXJuZWxfb3JfbW9kdWxlX2FkZHIoYWRkcikgJiYgIWluaXRfdGFza19zdGFja19hZGRyKGFkZHIpKSB7CkBAIC00MzUsMTMgKzQ1OCwxNCBAQCBzdGF0aWMgYm9vbCByZXBvcnRfZW5hYmxlZCh2b2lkKQogdm9pZCBrYXNhbl9yZXBvcnRfaW52YWxpZF9mcmVlKHZvaWQgKm9iamVjdCwgdW5zaWduZWQgbG9uZyBpcCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCXU4IHRhZyA9IGdldF90YWcob2JqZWN0KTsKIAorCW9iamVjdCA9IHJlc2V0X3RhZyhvYmplY3QpOwogCXN0YXJ0X3JlcG9ydCgmZmxhZ3MpOwogCXByX2VycigiQlVHOiBLQVNBTjogZG91YmxlLWZyZWUgb3IgaW52YWxpZC1mcmVlIGluICVwU1xuIiwgKHZvaWQgKilpcCk7Ci0JcHJpbnRfdGFncyhnZXRfdGFnKG9iamVjdCksIHJlc2V0X3RhZyhvYmplY3QpKTsKLQlvYmplY3QgPSByZXNldF90YWcob2JqZWN0KTsKKwlwcmludF90YWdzKHRhZywgb2JqZWN0KTsKIAlwcl9lcnIoIlxuIik7Ci0JcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbihvYmplY3QpOworCXByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24ob2JqZWN0LCB0YWcpOwogCXByX2VycigiXG4iKTsKIAlwcmludF9zaGFkb3dfZm9yX2FkZHJlc3Mob2JqZWN0KTsKIAllbmRfcmVwb3J0KCZmbGFncyk7CkBAIC00NzksNyArNTAzLDcgQEAgdm9pZCBfX2thc2FuX3JlcG9ydCh1bnNpZ25lZCBsb25nIGFkZHIsIHNpemVfdCBzaXplLCBib29sIGlzX3dyaXRlLCB1bnNpZ25lZCBsb24KIAlwcl9lcnIoIlxuIik7CiAKIAlpZiAoYWRkcl9oYXNfc2hhZG93KHVudGFnZ2VkX2FkZHIpKSB7Ci0JCXByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24odW50YWdnZWRfYWRkcik7CisJCXByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24odW50YWdnZWRfYWRkciwgZ2V0X3RhZyh0YWdnZWRfYWRkcikpOwogCQlwcl9lcnIoIlxuIik7CiAJCXByaW50X3NoYWRvd19mb3JfYWRkcmVzcyhpbmZvLmZpcnN0X2JhZF9hZGRyKTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvbW0va2FzYW4vdGFnc19yZXBvcnQuYyBiL21tL2thc2FuL3RhZ3NfcmVwb3J0LmMKaW5kZXggOGVhZjVmNy4uOTY5YWUwOCAxMDA2NDQKLS0tIGEvbW0va2FzYW4vdGFnc19yZXBvcnQuYworKysgYi9tbS9rYXNhbi90YWdzX3JlcG9ydC5jCkBAIC0zNiw2ICszNiwzMCBAQAogCiBjb25zdCBjaGFyICpnZXRfYnVnX3R5cGUoc3RydWN0IGthc2FuX2FjY2Vzc19pbmZvICppbmZvKQogeworI2lmZGVmIENPTkZJR19LQVNBTl9TV19UQUdTX0lERU5USUZZCisJc3RydWN0IGthc2FuX2FsbG9jX21ldGEgKmFsbG9jX21ldGE7CisJc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlOworCXN0cnVjdCBwYWdlICpwYWdlOworCWNvbnN0IHZvaWQgKmFkZHI7CisJdm9pZCAqb2JqZWN0OworCXU4IHRhZzsKKwlpbnQgaTsKKworCXRhZyA9IGdldF90YWcoaW5mby0+YWNjZXNzX2FkZHIpOworCWFkZHIgPSByZXNldF90YWcoaW5mby0+YWNjZXNzX2FkZHIpOworCXBhZ2UgPSBrYXNhbl9hZGRyX3RvX3BhZ2UoYWRkcik7CisJaWYgKHBhZ2UgJiYgUGFnZVNsYWIocGFnZSkpIHsKKwkJY2FjaGUgPSBwYWdlLT5zbGFiX2NhY2hlOworCQlvYmplY3QgPSBuZWFyZXN0X29iaihjYWNoZSwgcGFnZSwgKHZvaWQgKilhZGRyKTsKKwkJYWxsb2NfbWV0YSA9IGdldF9hbGxvY19pbmZvKGNhY2hlLCBvYmplY3QpOworCisJCWZvciAoaSA9IDA7IGkgPCBLQVNBTl9OUl9GUkVFX1NUQUNLUzsgaSsrKQorCQkJaWYgKGFsbG9jX21ldGEtPmZyZWVfcG9pbnRlcl90YWdbaV0gPT0gdGFnKQorCQkJCXJldHVybiAidXNlLWFmdGVyLWZyZWUiOworCQlyZXR1cm4gIm91dC1vZi1ib3VuZHMiOworCX0KKworI2VuZGlmCiAJcmV0dXJuICJpbnZhbGlkLWFjY2VzcyI7CiB9CiAKZGlmZiAtLWdpdCBhL21tL2todWdlcGFnZWQuYyBiL21tL2todWdlcGFnZWQuYwppbmRleCBjY2VkZTI0Li4wYTFiNGI0IDEwMDY0NAotLS0gYS9tbS9raHVnZXBhZ2VkLmMKKysrIGIvbW0va2h1Z2VwYWdlZC5jCkBAIC00OCw2ICs0OCw3IEBAIGVudW0gc2Nhbl9yZXN1bHQgewogCVNDQU5fQ0dST1VQX0NIQVJHRV9GQUlMLAogCVNDQU5fRVhDRUVEX1NXQVBfUFRFLAogCVNDQU5fVFJVTkNBVEVELAorCVNDQU5fUEFHRV9IQVNfUFJJVkFURSwKIH07CiAKICNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BPSU5UUwpAQCAtNzYsNiArNzcsOCBAQCBzdGF0aWMgX19yZWFkX21vc3RseSBERUZJTkVfSEFTSFRBQkxFKG1tX3Nsb3RzX2hhc2gsIE1NX1NMT1RTX0hBU0hfQklUUyk7CiAKIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqbW1fc2xvdF9jYWNoZSBfX3JlYWRfbW9zdGx5OwogCisjZGVmaW5lIE1BWF9QVEVfTUFQUEVEX1RIUCA4CisKIC8qKgogICogc3RydWN0IG1tX3Nsb3QgLSBoYXNoIGxvb2t1cCBmcm9tIG1tIHRvIG1tX3Nsb3QKICAqIEBoYXNoOiBoYXNoIGNvbGxpc2lvbiBsaXN0CkBAIC04Niw2ICs4OSwxMCBAQCBzdHJ1Y3QgbW1fc2xvdCB7CiAJc3RydWN0IGhsaXN0X25vZGUgaGFzaDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG1tX25vZGU7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW07CisKKwkvKiBwdGUtbWFwcGVkIFRIUCBpbiB0aGlzIG1tICovCisJaW50IG5yX3B0ZV9tYXBwZWRfdGhwOworCXVuc2lnbmVkIGxvbmcgcHRlX21hcHBlZF90aHBbTUFYX1BURV9NQVBQRURfVEhQXTsKIH07CiAKIC8qKgpAQCAtNDA0LDcgKzQxMSwxMSBAQCBzdGF0aWMgYm9vbCBodWdlcGFnZV92bWFfY2hlY2soc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJICAgICh2bV9mbGFncyAmIFZNX05PSFVHRVBBR0UpIHx8CiAJICAgIHRlc3RfYml0KE1NRl9ESVNBQkxFX1RIUCwgJnZtYS0+dm1fbW0tPmZsYWdzKSkKIAkJcmV0dXJuIGZhbHNlOwotCWlmIChzaG1lbV9maWxlKHZtYS0+dm1fZmlsZSkpIHsKKworCWlmIChzaG1lbV9maWxlKHZtYS0+dm1fZmlsZSkgfHwKKwkgICAgKElTX0VOQUJMRUQoQ09ORklHX1JFQURfT05MWV9USFBfRk9SX0ZTKSAmJgorCSAgICAgdm1hLT52bV9maWxlICYmCisJICAgICAodm1fZmxhZ3MgJiBWTV9ERU5ZV1JJVEUpKSkgewogCQlpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VfUEFHRUNBQ0hFKSkKIAkJCXJldHVybiBmYWxzZTsKIAkJcmV0dXJuIElTX0FMSUdORUQoKHZtYS0+dm1fc3RhcnQgPj4gUEFHRV9TSElGVCkgLSB2bWEtPnZtX3Bnb2ZmLApAQCAtNDU2LDggKzQ2Nyw5IEBAIGludCBraHVnZXBhZ2VkX2VudGVyX3ZtYV9tZXJnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAl1bnNpZ25lZCBsb25nIGhzdGFydCwgaGVuZDsKIAogCS8qCi0JICoga2h1Z2VwYWdlZCBkb2VzIG5vdCB5ZXQgd29yayBvbiBub24tc2htZW0gZmlsZXMgb3Igc3BlY2lhbAotCSAqIG1hcHBpbmdzLiBBbmQgZmlsZS1wcml2YXRlIHNobWVtIFRIUCBpcyBub3Qgc3VwcG9ydGVkLgorCSAqIGtodWdlcGFnZWQgb25seSBzdXBwb3J0cyByZWFkLW9ubHkgZmlsZXMgZm9yIG5vbi1zaG1lbSBmaWxlcy4KKwkgKiBraHVnZXBhZ2VkIGRvZXMgbm90IHlldCB3b3JrIG9uIHNwZWNpYWwgbWFwcGluZ3MuIEFuZAorCSAqIGZpbGUtcHJpdmF0ZSBzaG1lbSBUSFAgaXMgbm90IHN1cHBvcnRlZC4KIAkgKi8KIAlpZiAoIWh1Z2VwYWdlX3ZtYV9jaGVjayh2bWEsIHZtX2ZsYWdzKSkKIAkJcmV0dXJuIDA7CkBAIC0xMjQ4LDYgKzEyNjAsMTU5IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3RfbW1fc2xvdChzdHJ1Y3QgbW1fc2xvdCAqbW1fc2xvdCkKIH0KIAogI2lmIGRlZmluZWQoQ09ORklHX1NITUVNKSAmJiBkZWZpbmVkKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFX1BBR0VDQUNIRSkKKy8qCisgKiBOb3RpZnkga2h1Z2VwYWdlZCB0aGF0IGdpdmVuIGFkZHIgb2YgdGhlIG1tIGlzIHB0ZS1tYXBwZWQgVEhQLiBUaGVuCisgKiBraHVnZXBhZ2VkIHNob3VsZCB0cnkgdG8gY29sbGFwc2UgdGhlIHBhZ2UgdGFibGUuCisgKi8KK3N0YXRpYyBpbnQga2h1Z2VwYWdlZF9hZGRfcHRlX21hcHBlZF90aHAoc3RydWN0IG1tX3N0cnVjdCAqbW0sCisJCQkJCSB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJc3RydWN0IG1tX3Nsb3QgKm1tX3Nsb3Q7CisKKwlWTV9CVUdfT04oYWRkciAmIH5IUEFHRV9QTURfTUFTSyk7CisKKwlzcGluX2xvY2soJmtodWdlcGFnZWRfbW1fbG9jayk7CisJbW1fc2xvdCA9IGdldF9tbV9zbG90KG1tKTsKKwlpZiAobGlrZWx5KG1tX3Nsb3QgJiYgbW1fc2xvdC0+bnJfcHRlX21hcHBlZF90aHAgPCBNQVhfUFRFX01BUFBFRF9USFApKQorCQltbV9zbG90LT5wdGVfbWFwcGVkX3RocFttbV9zbG90LT5ucl9wdGVfbWFwcGVkX3RocCsrXSA9IGFkZHI7CisJc3Bpbl91bmxvY2soJmtodWdlcGFnZWRfbW1fbG9jayk7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogVHJ5IHRvIGNvbGxhcHNlIGEgcHRlLW1hcHBlZCBUSFAgZm9yIG1tIGF0IGFkZHJlc3MgaGFkZHIuCisgKgorICogVGhpcyBmdW5jdGlvbiBjaGVja3Mgd2hldGhlciBhbGwgdGhlIFBURXMgaW4gdGhlIFBNRCBhcmUgcG9pbnRpbmcgdG8gdGhlCisgKiByaWdodCBUSFAuIElmIHNvLCByZXRyYWN0IHRoZSBwYWdlIHRhYmxlIHNvIHRoZSBUSFAgY2FuIHJlZmF1bHQgaW4gd2l0aAorICogYXMgcG1kLW1hcHBlZC4KKyAqLwordm9pZCBjb2xsYXBzZV9wdGVfbWFwcGVkX3RocChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyKQoreworCXVuc2lnbmVkIGxvbmcgaGFkZHIgPSBhZGRyICYgSFBBR0VfUE1EX01BU0s7CisJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEgPSBmaW5kX3ZtYShtbSwgaGFkZHIpOworCXN0cnVjdCBwYWdlICpocGFnZSA9IE5VTEw7CisJcHRlX3QgKnN0YXJ0X3B0ZSwgKnB0ZTsKKwlwbWRfdCAqcG1kLCBfcG1kOworCXNwaW5sb2NrX3QgKnB0bDsKKwlpbnQgY291bnQgPSAwOworCWludCBpOworCisJaWYgKCF2bWEgfHwgIXZtYS0+dm1fZmlsZSB8fAorCSAgICB2bWEtPnZtX3N0YXJ0ID4gaGFkZHIgfHwgdm1hLT52bV9lbmQgPCBoYWRkciArIEhQQUdFX1BNRF9TSVpFKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFRoaXMgdm1fZmxhZ3MgbWF5IG5vdCBoYXZlIFZNX0hVR0VQQUdFIGlmIHRoZSBwYWdlIHdhcyBub3QKKwkgKiBjb2xsYXBzZWQgYnkgdGhpcyBtbS4gQnV0IHdlIGNhbiBzdGlsbCBjb2xsYXBzZSBpZiB0aGUgcGFnZSBpcworCSAqIHRoZSB2YWxpZCBUSFAuIEFkZCBleHRyYSBWTV9IVUdFUEFHRSBzbyBodWdlcGFnZV92bWFfY2hlY2soKQorCSAqIHdpbGwgbm90IGZhaWwgdGhlIHZtYSBmb3IgbWlzc2luZyBWTV9IVUdFUEFHRQorCSAqLworCWlmICghaHVnZXBhZ2Vfdm1hX2NoZWNrKHZtYSwgdm1hLT52bV9mbGFncyB8IFZNX0hVR0VQQUdFKSkKKwkJcmV0dXJuOworCisJcG1kID0gbW1fZmluZF9wbWQobW0sIGhhZGRyKTsKKwlpZiAoIXBtZCkKKwkJcmV0dXJuOworCisJc3RhcnRfcHRlID0gcHRlX29mZnNldF9tYXBfbG9jayhtbSwgcG1kLCBoYWRkciwgJnB0bCk7CisKKwkvKiBzdGVwIDE6IGNoZWNrIGFsbCBtYXBwZWQgUFRFcyBhcmUgdG8gdGhlIHJpZ2h0IGh1Z2UgcGFnZSAqLworCWZvciAoaSA9IDAsIGFkZHIgPSBoYWRkciwgcHRlID0gc3RhcnRfcHRlOworCSAgICAgaSA8IEhQQUdFX1BNRF9OUjsgaSsrLCBhZGRyICs9IFBBR0VfU0laRSwgcHRlKyspIHsKKwkJc3RydWN0IHBhZ2UgKnBhZ2U7CisKKwkJLyogZW1wdHkgcHRlLCBza2lwICovCisJCWlmIChwdGVfbm9uZSgqcHRlKSkKKwkJCWNvbnRpbnVlOworCisJCS8qIHBhZ2Ugc3dhcHBlZCBvdXQsIGFib3J0ICovCisJCWlmICghcHRlX3ByZXNlbnQoKnB0ZSkpCisJCQlnb3RvIGFib3J0OworCisJCXBhZ2UgPSB2bV9ub3JtYWxfcGFnZSh2bWEsIGFkZHIsICpwdGUpOworCisJCWlmICghcGFnZSB8fCAhUGFnZUNvbXBvdW5kKHBhZ2UpKQorCQkJZ290byBhYm9ydDsKKworCQlpZiAoIWhwYWdlKSB7CisJCQlocGFnZSA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CisJCQkvKgorCQkJICogVGhlIG1hcHBpbmcgb2YgdGhlIFRIUCBzaG91bGQgbm90IGNoYW5nZS4KKwkJCSAqCisJCQkgKiBOb3RlIHRoYXQgdXByb2JlLCBkZWJ1Z2dlciwgb3IgTUFQX1BSSVZBVEUgbWF5CisJCQkgKiBjaGFuZ2UgdGhlIHBhZ2UgdGFibGUsIGJ1dCB0aGUgbmV3IHBhZ2Ugd2lsbAorCQkJICogbm90IHBhc3MgUGFnZUNvbXBvdW5kKCkgY2hlY2suCisJCQkgKi8KKwkJCWlmIChXQVJOX09OKGhwYWdlLT5tYXBwaW5nICE9IHZtYS0+dm1fZmlsZS0+Zl9tYXBwaW5nKSkKKwkJCQlnb3RvIGFib3J0OworCQl9CisKKwkJLyoKKwkJICogQ29uZmlybSB0aGUgcGFnZSBtYXBzIHRvIHRoZSBjb3JyZWN0IHN1YnBhZ2UuCisJCSAqCisJCSAqIE5vdGUgdGhhdCB1cHJvYmUsIGRlYnVnZ2VyLCBvciBNQVBfUFJJVkFURSBtYXkgY2hhbmdlCisJCSAqIHRoZSBwYWdlIHRhYmxlLCBidXQgdGhlIG5ldyBwYWdlIHdpbGwgbm90IHBhc3MKKwkJICogUGFnZUNvbXBvdW5kKCkgY2hlY2suCisJCSAqLworCQlpZiAoV0FSTl9PTihocGFnZSArIGkgIT0gcGFnZSkpCisJCQlnb3RvIGFib3J0OworCQljb3VudCsrOworCX0KKworCS8qIHN0ZXAgMjogYWRqdXN0IHJtYXAgKi8KKwlmb3IgKGkgPSAwLCBhZGRyID0gaGFkZHIsIHB0ZSA9IHN0YXJ0X3B0ZTsKKwkgICAgIGkgPCBIUEFHRV9QTURfTlI7IGkrKywgYWRkciArPSBQQUdFX1NJWkUsIHB0ZSsrKSB7CisJCXN0cnVjdCBwYWdlICpwYWdlOworCisJCWlmIChwdGVfbm9uZSgqcHRlKSkKKwkJCWNvbnRpbnVlOworCQlwYWdlID0gdm1fbm9ybWFsX3BhZ2Uodm1hLCBhZGRyLCAqcHRlKTsKKwkJcGFnZV9yZW1vdmVfcm1hcChwYWdlLCBmYWxzZSk7CisJfQorCisJcHRlX3VubWFwX3VubG9jayhzdGFydF9wdGUsIHB0bCk7CisKKwkvKiBzdGVwIDM6IHNldCBwcm9wZXIgcmVmY291bnQgYW5kIG1tX2NvdW50ZXJzLiAqLworCWlmIChocGFnZSkgeworCQlwYWdlX3JlZl9zdWIoaHBhZ2UsIGNvdW50KTsKKwkJYWRkX21tX2NvdW50ZXIodm1hLT52bV9tbSwgbW1fY291bnRlcl9maWxlKGhwYWdlKSwgLWNvdW50KTsKKwl9CisKKwkvKiBzdGVwIDQ6IGNvbGxhcHNlIHBtZCAqLworCXB0bCA9IHBtZF9sb2NrKHZtYS0+dm1fbW0sIHBtZCk7CisJX3BtZCA9IHBtZHBfY29sbGFwc2VfZmx1c2godm1hLCBhZGRyLCBwbWQpOworCXNwaW5fdW5sb2NrKHB0bCk7CisJbW1fZGVjX25yX3B0ZXMobW0pOworCXB0ZV9mcmVlKG1tLCBwbWRfcGd0YWJsZShfcG1kKSk7CisJcmV0dXJuOworCithYm9ydDoKKwlwdGVfdW5tYXBfdW5sb2NrKHN0YXJ0X3B0ZSwgcHRsKTsKK30KKworc3RhdGljIGludCBraHVnZXBhZ2VkX2NvbGxhcHNlX3B0ZV9tYXBwZWRfdGhwcyhzdHJ1Y3QgbW1fc2xvdCAqbW1fc2xvdCkKK3sKKwlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG1tX3Nsb3QtPm1tOworCWludCBpOworCisJaWYgKGxpa2VseShtbV9zbG90LT5ucl9wdGVfbWFwcGVkX3RocCA9PSAwKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIWRvd25fd3JpdGVfdHJ5bG9jaygmbW0tPm1tYXBfc2VtKSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCWlmICh1bmxpa2VseShraHVnZXBhZ2VkX3Rlc3RfZXhpdChtbSkpKQorCQlnb3RvIG91dDsKKworCWZvciAoaSA9IDA7IGkgPCBtbV9zbG90LT5ucl9wdGVfbWFwcGVkX3RocDsgaSsrKQorCQljb2xsYXBzZV9wdGVfbWFwcGVkX3RocChtbSwgbW1fc2xvdC0+cHRlX21hcHBlZF90aHBbaV0pOworCitvdXQ6CisJbW1fc2xvdC0+bnJfcHRlX21hcHBlZF90aHAgPSAwOworCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOworCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCByZXRyYWN0X3BhZ2VfdGFibGVzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBwZ29mZl90IHBnb2ZmKQogewogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwpAQCAtMTI1Niw3ICsxNDIxLDIyIEBAIHN0YXRpYyB2b2lkIHJldHJhY3RfcGFnZV90YWJsZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHBnb2ZmX3QgcGdvZmYpCiAKIAlpX21tYXBfbG9ja193cml0ZShtYXBwaW5nKTsKIAl2bWFfaW50ZXJ2YWxfdHJlZV9mb3JlYWNoKHZtYSwgJm1hcHBpbmctPmlfbW1hcCwgcGdvZmYsIHBnb2ZmKSB7Ci0JCS8qIHByb2JhYmx5IG92ZXJraWxsICovCisJCS8qCisJCSAqIENoZWNrIHZtYS0+YW5vbl92bWEgdG8gZXhjbHVkZSBNQVBfUFJJVkFURSBtYXBwaW5ncyB0aGF0CisJCSAqIGdvdCB3cml0dGVuIHRvLiBUaGVzZSBWTUFzIGFyZSBsaWtlbHkgbm90IHdvcnRoIGludmVzdGluZworCQkgKiBkb3duX3dyaXRlKG1tYXBfc2VtKSBhcyBQTUQtbWFwcGluZyBpcyBsaWtlbHkgdG8gYmUgc3BsaXQKKwkJICogbGF0ZXIuCisJCSAqCisJCSAqIE5vdCB0aGF0IHZtYS0+YW5vbl92bWEgY2hlY2sgaXMgcmFjeTogaXQgY2FuIGJlIHNldCB1cCBhZnRlcgorCQkgKiB0aGUgY2hlY2sgYnV0IGJlZm9yZSB3ZSB0b29rIG1tYXBfc2VtIGJ5IHRoZSBmYXVsdCBwYXRoLgorCQkgKiBCdXQgcGFnZSBsb2NrIHdvdWxkIHByZXZlbnQgZXN0YWJsaXNoaW5nIGFueSBuZXcgcHRlcyBvZiB0aGUKKwkJICogcGFnZSwgc28gd2UgYXJlIHNhZmUuCisJCSAqCisJCSAqIEFuIGFsdGVybmF0aXZlIHdvdWxkIGJlIGRyb3AgdGhlIGNoZWNrLCBidXQgY2hlY2sgdGhhdCBwYWdlCisJCSAqIHRhYmxlIGlzIGNsZWFyIGJlZm9yZSBjYWxsaW5nIHBtZHBfY29sbGFwc2VfZmx1c2goKSB1bmRlcgorCQkgKiBwdGwuIEl0IGhhcyBoaWdoZXIgY2hhbmNlIHRvIHJlY292ZXIgVEhQIGZvciB0aGUgVk1BLCBidXQKKwkJICogaGFzIGhpZ2hlciBjb3N0IHRvby4KKwkJICovCiAJCWlmICh2bWEtPmFub25fdm1hKQogCQkJY29udGludWU7CiAJCWFkZHIgPSB2bWEtPnZtX3N0YXJ0ICsgKChwZ29mZiAtIHZtYS0+dm1fcGdvZmYpIDw8IFBBR0VfU0hJRlQpOwpAQCAtMTI2OSw5ICsxNDQ5LDEwIEBAIHN0YXRpYyB2b2lkIHJldHJhY3RfcGFnZV90YWJsZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHBnb2ZmX3QgcGdvZmYpCiAJCQljb250aW51ZTsKIAkJLyoKIAkJICogV2UgbmVlZCBleGNsdXNpdmUgbW1hcF9zZW0gdG8gcmV0cmFjdCBwYWdlIHRhYmxlLgotCQkgKiBJZiB0cnlsb2NrIGZhaWxzIHdlIHdvdWxkIGVuZCB1cCB3aXRoIHB0ZS1tYXBwZWQgVEhQIGFmdGVyCi0JCSAqIHJlLWZhdWx0LiBOb3QgaWRlYWwsIGJ1dCBpdCdzIG1vcmUgaW1wb3J0YW50IHRvIG5vdCBkaXN0dXJiCi0JCSAqIHRoZSBzeXN0ZW0gdG9vIG11Y2guCisJCSAqCisJCSAqIFdlIHVzZSB0cnlsb2NrIGR1ZSB0byBsb2NrIGludmVyc2lvbjogd2UgbmVlZCB0byBhY3F1aXJlCisJCSAqIG1tYXBfc2VtIHdoaWxlIGhvbGRpbmcgcGFnZSBsb2NrLiBGYXVsdCBwYXRoIGRvZXMgaXQgaW4KKwkJICogcmV2ZXJzZSBvcmRlci4gVHJ5bG9jayBpcyBhIHdheSB0byBhdm9pZCBkZWFkbG9jay4KIAkJICovCiAJCWlmIChkb3duX3dyaXRlX3RyeWxvY2soJnZtYS0+dm1fbW0tPm1tYXBfc2VtKSkgewogCQkJc3BpbmxvY2tfdCAqcHRsID0gcG1kX2xvY2sodm1hLT52bV9tbSwgcG1kKTsKQEAgLTEyODEsMTggKzE0NjIsMjEgQEAgc3RhdGljIHZvaWQgcmV0cmFjdF9wYWdlX3RhYmxlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgcGdvZmZfdCBwZ29mZikKIAkJCXVwX3dyaXRlKCZ2bWEtPnZtX21tLT5tbWFwX3NlbSk7CiAJCQltbV9kZWNfbnJfcHRlcyh2bWEtPnZtX21tKTsKIAkJCXB0ZV9mcmVlKHZtYS0+dm1fbW0sIHBtZF9wZ3RhYmxlKF9wbWQpKTsKKwkJfSBlbHNlIHsKKwkJCS8qIFRyeSBhZ2FpbiBsYXRlciAqLworCQkJa2h1Z2VwYWdlZF9hZGRfcHRlX21hcHBlZF90aHAodm1hLT52bV9tbSwgYWRkcik7CiAJCX0KIAl9CiAJaV9tbWFwX3VubG9ja193cml0ZShtYXBwaW5nKTsKIH0KIAogLyoqCi0gKiBjb2xsYXBzZV9zaG1lbSAtIGNvbGxhcHNlIHNtYWxsIHRtcGZzL3NobWVtIHBhZ2VzIGludG8gaHVnZSBvbmUuCisgKiBjb2xsYXBzZV9maWxlIC0gY29sbGFwc2UgZmlsZW1hcC90bXBmcy9zaG1lbSBwYWdlcyBpbnRvIGh1Z2Ugb25lLgogICoKICAqIEJhc2ljIHNjaGVtZSBpcyBzaW1wbGUsIGRldGFpbHMgYXJlIG1vcmUgY29tcGxleDoKICAqICAtIGFsbG9jYXRlIGFuZCBsb2NrIGEgbmV3IGh1Z2UgcGFnZTsKICAqICAtIHNjYW4gcGFnZSBjYWNoZSByZXBsYWNpbmcgb2xkIHBhZ2VzIHdpdGggdGhlIG5ldyBvbmUKLSAqICAgICsgc3dhcCBpbiBwYWdlcyBpZiBuZWNlc3Nhcnk7CisgKiAgICArIHN3YXAvZ3VwIGluIHBhZ2VzIGlmIG5lY2Vzc2FyeTsKICAqICAgICsgZmlsbCBpbiBnYXBzOwogICogICAgKyBrZWVwIG9sZCBwYWdlcyBhcm91bmQgaW4gY2FzZSByb2xsYmFjayBpcyByZXF1aXJlZDsKICAqICAtIGlmIHJlcGxhY2luZyBzdWNjZWVkczoKQEAgLTEzMDQsMTAgKzE0ODgsMTEgQEAgc3RhdGljIHZvaWQgcmV0cmFjdF9wYWdlX3RhYmxlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgcGdvZmZfdCBwZ29mZikKICAqICAgICsgcmVzdG9yZSBnYXBzIGluIHRoZSBwYWdlIGNhY2hlOwogICogICAgKyB1bmxvY2sgYW5kIGZyZWUgaHVnZSBwYWdlOwogICovCi1zdGF0aWMgdm9pZCBjb2xsYXBzZV9zaG1lbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKLQkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHBnb2ZmX3Qgc3RhcnQsCitzdGF0aWMgdm9pZCBjb2xsYXBzZV9maWxlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQlzdHJ1Y3QgZmlsZSAqZmlsZSwgcGdvZmZfdCBzdGFydCwKIAkJc3RydWN0IHBhZ2UgKipocGFnZSwgaW50IG5vZGUpCiB7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7CiAJZ2ZwX3QgZ2ZwOwogCXN0cnVjdCBwYWdlICpuZXdfcGFnZTsKIAlzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2c7CkBAIC0xMzE1LDcgKzE1MDAsOSBAQCBzdGF0aWMgdm9pZCBjb2xsYXBzZV9zaG1lbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAlMSVNUX0hFQUQocGFnZWxpc3QpOwogCVhBX1NUQVRFX09SREVSKHhhcywgJm1hcHBpbmctPmlfcGFnZXMsIHN0YXJ0LCBIUEFHRV9QTURfT1JERVIpOwogCWludCBucl9ub25lID0gMCwgcmVzdWx0ID0gU0NBTl9TVUNDRUVEOworCWJvb2wgaXNfc2htZW0gPSBzaG1lbV9maWxlKGZpbGUpOwogCisJVk1fQlVHX09OKCFJU19FTkFCTEVEKENPTkZJR19SRUFEX09OTFlfVEhQX0ZPUl9GUykgJiYgIWlzX3NobWVtKTsKIAlWTV9CVUdfT04oc3RhcnQgJiAoSFBBR0VfUE1EX05SIC0gMSkpOwogCiAJLyogT25seSBhbGxvY2F0ZSBmcm9tIHRoZSB0YXJnZXQgbm9kZSAqLwpAQCAtMTM0Nyw3ICsxNTM0LDggQEAgc3RhdGljIHZvaWQgY29sbGFwc2Vfc2htZW0oc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJfSB3aGlsZSAoMSk7CiAKIAlfX1NldFBhZ2VMb2NrZWQobmV3X3BhZ2UpOwotCV9fU2V0UGFnZVN3YXBCYWNrZWQobmV3X3BhZ2UpOworCWlmIChpc19zaG1lbSkKKwkJX19TZXRQYWdlU3dhcEJhY2tlZChuZXdfcGFnZSk7CiAJbmV3X3BhZ2UtPmluZGV4ID0gc3RhcnQ7CiAJbmV3X3BhZ2UtPm1hcHBpbmcgPSBtYXBwaW5nOwogCkBAIC0xMzYyLDQxICsxNTUwLDc1IEBAIHN0YXRpYyB2b2lkIGNvbGxhcHNlX3NobWVtKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHhhc19uZXh0KCZ4YXMpOwogCiAJCVZNX0JVR19PTihpbmRleCAhPSB4YXMueGFfaW5kZXgpOwotCQlpZiAoIXBhZ2UpIHsKLQkJCS8qCi0JCQkgKiBTdG9wIGlmIGV4dGVudCBoYXMgYmVlbiB0cnVuY2F0ZWQgb3IgaG9sZS1wdW5jaGVkLAotCQkJICogYW5kIGlzIG5vdyBjb21wbGV0ZWx5IGVtcHR5LgotCQkJICovCi0JCQlpZiAoaW5kZXggPT0gc3RhcnQpIHsKLQkJCQlpZiAoIXhhc19uZXh0X2VudHJ5KCZ4YXMsIGVuZCAtIDEpKSB7Ci0JCQkJCXJlc3VsdCA9IFNDQU5fVFJVTkNBVEVEOworCQlpZiAoaXNfc2htZW0pIHsKKwkJCWlmICghcGFnZSkgeworCQkJCS8qCisJCQkJICogU3RvcCBpZiBleHRlbnQgaGFzIGJlZW4gdHJ1bmNhdGVkIG9yCisJCQkJICogaG9sZS1wdW5jaGVkLCBhbmQgaXMgbm93IGNvbXBsZXRlbHkKKwkJCQkgKiBlbXB0eS4KKwkJCQkgKi8KKwkJCQlpZiAoaW5kZXggPT0gc3RhcnQpIHsKKwkJCQkJaWYgKCF4YXNfbmV4dF9lbnRyeSgmeGFzLCBlbmQgLSAxKSkgeworCQkJCQkJcmVzdWx0ID0gU0NBTl9UUlVOQ0FURUQ7CisJCQkJCQlnb3RvIHhhX2xvY2tlZDsKKwkJCQkJfQorCQkJCQl4YXNfc2V0KCZ4YXMsIGluZGV4KTsKKwkJCQl9CisJCQkJaWYgKCFzaG1lbV9jaGFyZ2UobWFwcGluZy0+aG9zdCwgMSkpIHsKKwkJCQkJcmVzdWx0ID0gU0NBTl9GQUlMOwogCQkJCQlnb3RvIHhhX2xvY2tlZDsKIAkJCQl9Ci0JCQkJeGFzX3NldCgmeGFzLCBpbmRleCk7CisJCQkJeGFzX3N0b3JlKCZ4YXMsIG5ld19wYWdlKTsKKwkJCQlucl9ub25lKys7CisJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAoIXNobWVtX2NoYXJnZShtYXBwaW5nLT5ob3N0LCAxKSkgewotCQkJCXJlc3VsdCA9IFNDQU5fRkFJTDsKKworCQkJaWYgKHhhX2lzX3ZhbHVlKHBhZ2UpIHx8ICFQYWdlVXB0b2RhdGUocGFnZSkpIHsKKwkJCQl4YXNfdW5sb2NrX2lycSgmeGFzKTsKKwkJCQkvKiBzd2FwIGluIG9yIGluc3RhbnRpYXRlIGZhbGxvY2F0ZWQgcGFnZSAqLworCQkJCWlmIChzaG1lbV9nZXRwYWdlKG1hcHBpbmctPmhvc3QsIGluZGV4LCAmcGFnZSwKKwkJCQkJCSAgU0dQX05PSFVHRSkpIHsKKwkJCQkJcmVzdWx0ID0gU0NBTl9GQUlMOworCQkJCQlnb3RvIHhhX3VubG9ja2VkOworCQkJCX0KKwkJCX0gZWxzZSBpZiAodHJ5bG9ja19wYWdlKHBhZ2UpKSB7CisJCQkJZ2V0X3BhZ2UocGFnZSk7CisJCQkJeGFzX3VubG9ja19pcnEoJnhhcyk7CisJCQl9IGVsc2UgeworCQkJCXJlc3VsdCA9IFNDQU5fUEFHRV9MT0NLOwogCQkJCWdvdG8geGFfbG9ja2VkOwogCQkJfQotCQkJeGFzX3N0b3JlKCZ4YXMsIG5ld19wYWdlICsgKGluZGV4ICUgSFBBR0VfUE1EX05SKSk7Ci0JCQlucl9ub25lKys7Ci0JCQljb250aW51ZTsKLQkJfQotCi0JCWlmICh4YV9pc192YWx1ZShwYWdlKSB8fCAhUGFnZVVwdG9kYXRlKHBhZ2UpKSB7Ci0JCQl4YXNfdW5sb2NrX2lycSgmeGFzKTsKLQkJCS8qIHN3YXAgaW4gb3IgaW5zdGFudGlhdGUgZmFsbG9jYXRlZCBwYWdlICovCi0JCQlpZiAoc2htZW1fZ2V0cGFnZShtYXBwaW5nLT5ob3N0LCBpbmRleCwgJnBhZ2UsCi0JCQkJCQlTR1BfTk9IVUdFKSkgeworCQl9IGVsc2UgewkvKiAhaXNfc2htZW0gKi8KKwkJCWlmICghcGFnZSB8fCB4YV9pc192YWx1ZShwYWdlKSkgeworCQkJCXhhc191bmxvY2tfaXJxKCZ4YXMpOworCQkJCXBhZ2VfY2FjaGVfc3luY19yZWFkYWhlYWQobWFwcGluZywgJmZpbGUtPmZfcmEsCisJCQkJCQkJICBmaWxlLCBpbmRleCwKKwkJCQkJCQkgIFBBR0VfU0laRSk7CisJCQkJLyogZHJhaW4gcGFnZXZlY3MgdG8gaGVscCBpc29sYXRlX2xydV9wYWdlKCkgKi8KKwkJCQlscnVfYWRkX2RyYWluKCk7CisJCQkJcGFnZSA9IGZpbmRfbG9ja19wYWdlKG1hcHBpbmcsIGluZGV4KTsKKwkJCQlpZiAodW5saWtlbHkocGFnZSA9PSBOVUxMKSkgeworCQkJCQlyZXN1bHQgPSBTQ0FOX0ZBSUw7CisJCQkJCWdvdG8geGFfdW5sb2NrZWQ7CisJCQkJfQorCQkJfSBlbHNlIGlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKSB7CisJCQkJeGFzX3VubG9ja19pcnEoJnhhcyk7CisJCQkJd2FpdF9vbl9wYWdlX2xvY2tlZChwYWdlKTsKKwkJCQlpZiAoIXRyeWxvY2tfcGFnZShwYWdlKSkgeworCQkJCQlyZXN1bHQgPSBTQ0FOX1BBR0VfTE9DSzsKKwkJCQkJZ290byB4YV91bmxvY2tlZDsKKwkJCQl9CisJCQkJZ2V0X3BhZ2UocGFnZSk7CisJCQl9IGVsc2UgaWYgKFBhZ2VEaXJ0eShwYWdlKSkgewogCQkJCXJlc3VsdCA9IFNDQU5fRkFJTDsKLQkJCQlnb3RvIHhhX3VubG9ja2VkOworCQkJCWdvdG8geGFfbG9ja2VkOworCQkJfSBlbHNlIGlmICh0cnlsb2NrX3BhZ2UocGFnZSkpIHsKKwkJCQlnZXRfcGFnZShwYWdlKTsKKwkJCQl4YXNfdW5sb2NrX2lycSgmeGFzKTsKKwkJCX0gZWxzZSB7CisJCQkJcmVzdWx0ID0gU0NBTl9QQUdFX0xPQ0s7CisJCQkJZ290byB4YV9sb2NrZWQ7CiAJCQl9Ci0JCX0gZWxzZSBpZiAodHJ5bG9ja19wYWdlKHBhZ2UpKSB7Ci0JCQlnZXRfcGFnZShwYWdlKTsKLQkJCXhhc191bmxvY2tfaXJxKCZ4YXMpOwotCQl9IGVsc2UgewotCQkJcmVzdWx0ID0gU0NBTl9QQUdFX0xPQ0s7Ci0JCQlnb3RvIHhhX2xvY2tlZDsKIAkJfQogCiAJCS8qCkBAIC0xNDI1LDYgKzE2NDcsMTIgQEAgc3RhdGljIHZvaWQgY29sbGFwc2Vfc2htZW0oc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQlnb3RvIG91dF91bmxvY2s7CiAJCX0KIAorCQlpZiAocGFnZV9oYXNfcHJpdmF0ZShwYWdlKSAmJgorCQkgICAgIXRyeV90b19yZWxlYXNlX3BhZ2UocGFnZSwgR0ZQX0tFUk5FTCkpIHsKKwkJCXJlc3VsdCA9IFNDQU5fUEFHRV9IQVNfUFJJVkFURTsKKwkJCWdvdG8gb3V0X3VubG9jazsKKwkJfQorCiAJCWlmIChwYWdlX21hcHBlZChwYWdlKSkKIAkJCXVubWFwX21hcHBpbmdfcGFnZXMobWFwcGluZywgaW5kZXgsIDEsIGZhbHNlKTsKIApAQCAtMTQ1NCw3ICsxNjgyLDcgQEAgc3RhdGljIHZvaWQgY29sbGFwc2Vfc2htZW0oc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCWxpc3RfYWRkX3RhaWwoJnBhZ2UtPmxydSwgJnBhZ2VsaXN0KTsKIAogCQkvKiBGaW5hbGx5LCByZXBsYWNlIHdpdGggdGhlIG5ldyBwYWdlLiAqLwotCQl4YXNfc3RvcmUoJnhhcywgbmV3X3BhZ2UgKyAoaW5kZXggJSBIUEFHRV9QTURfTlIpKTsKKwkJeGFzX3N0b3JlKCZ4YXMsIG5ld19wYWdlKTsKIAkJY29udGludWU7CiBvdXRfdW5sb2NrOgogCQl1bmxvY2tfcGFnZShwYWdlKTsKQEAgLTE0NjIsMTIgKzE2OTAsMjAgQEAgc3RhdGljIHZvaWQgY29sbGFwc2Vfc2htZW0oc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCWdvdG8geGFfdW5sb2NrZWQ7CiAJfQogCi0JX19pbmNfbm9kZV9wYWdlX3N0YXRlKG5ld19wYWdlLCBOUl9TSE1FTV9USFBTKTsKKwlpZiAoaXNfc2htZW0pCisJCV9faW5jX25vZGVfcGFnZV9zdGF0ZShuZXdfcGFnZSwgTlJfU0hNRU1fVEhQUyk7CisJZWxzZSB7CisJCV9faW5jX25vZGVfcGFnZV9zdGF0ZShuZXdfcGFnZSwgTlJfRklMRV9USFBTKTsKKwkJZmlsZW1hcF9ucl90aHBzX2luYyhtYXBwaW5nKTsKKwl9CisKIAlpZiAobnJfbm9uZSkgewogCQlzdHJ1Y3Qgem9uZSAqem9uZSA9IHBhZ2Vfem9uZShuZXdfcGFnZSk7CiAKIAkJX19tb2Rfbm9kZV9wYWdlX3N0YXRlKHpvbmUtPnpvbmVfcGdkYXQsIE5SX0ZJTEVfUEFHRVMsIG5yX25vbmUpOwotCQlfX21vZF9ub2RlX3BhZ2Vfc3RhdGUoem9uZS0+em9uZV9wZ2RhdCwgTlJfU0hNRU0sIG5yX25vbmUpOworCQlpZiAoaXNfc2htZW0pCisJCQlfX21vZF9ub2RlX3BhZ2Vfc3RhdGUoem9uZS0+em9uZV9wZ2RhdCwKKwkJCQkJICAgICAgTlJfU0hNRU0sIG5yX25vbmUpOwogCX0KIAogeGFfbG9ja2VkOgpAQCAtMTUwNSwxMCArMTc0MSwxNSBAQCBzdGF0aWMgdm9pZCBjb2xsYXBzZV9zaG1lbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAogCQlTZXRQYWdlVXB0b2RhdGUobmV3X3BhZ2UpOwogCQlwYWdlX3JlZl9hZGQobmV3X3BhZ2UsIEhQQUdFX1BNRF9OUiAtIDEpOwotCQlzZXRfcGFnZV9kaXJ0eShuZXdfcGFnZSk7CiAJCW1lbV9jZ3JvdXBfY29tbWl0X2NoYXJnZShuZXdfcGFnZSwgbWVtY2csIGZhbHNlLCB0cnVlKTsKKworCQlpZiAoaXNfc2htZW0pIHsKKwkJCXNldF9wYWdlX2RpcnR5KG5ld19wYWdlKTsKKwkJCWxydV9jYWNoZV9hZGRfYW5vbihuZXdfcGFnZSk7CisJCX0gZWxzZSB7CisJCQlscnVfY2FjaGVfYWRkX2ZpbGUobmV3X3BhZ2UpOworCQl9CiAJCWNvdW50X21lbWNnX2V2ZW50cyhtZW1jZywgVEhQX0NPTExBUFNFX0FMTE9DLCAxKTsKLQkJbHJ1X2NhY2hlX2FkZF9hbm9uKG5ld19wYWdlKTsKIAogCQkvKgogCQkgKiBSZW1vdmUgcHRlIHBhZ2UgdGFibGVzLCBzbyB3ZSBjYW4gcmUtZmF1bHQgdGhlIHBhZ2UgYXMgaHVnZS4KQEAgLTE1MjMsNyArMTc2NCw5IEBAIHN0YXRpYyB2b2lkIGNvbGxhcHNlX3NobWVtKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkvKiBTb21ldGhpbmcgd2VudCB3cm9uZzogcm9sbCBiYWNrIHBhZ2UgY2FjaGUgY2hhbmdlcyAqLwogCQl4YXNfbG9ja19pcnEoJnhhcyk7CiAJCW1hcHBpbmctPm5ycGFnZXMgLT0gbnJfbm9uZTsKLQkJc2htZW1fdW5jaGFyZ2UobWFwcGluZy0+aG9zdCwgbnJfbm9uZSk7CisKKwkJaWYgKGlzX3NobWVtKQorCQkJc2htZW1fdW5jaGFyZ2UobWFwcGluZy0+aG9zdCwgbnJfbm9uZSk7CiAKIAkJeGFzX3NldCgmeGFzLCBzdGFydCk7CiAJCXhhc19mb3JfZWFjaCgmeGFzLCBwYWdlLCBlbmQgLSAxKSB7CkBAIC0xNTYzLDExICsxODA2LDExIEBAIHN0YXRpYyB2b2lkIGNvbGxhcHNlX3NobWVtKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCS8qIFRPRE86IHRyYWNlcG9pbnRzICovCiB9CiAKLXN0YXRpYyB2b2lkIGtodWdlcGFnZWRfc2Nhbl9zaG1lbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKLQkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCi0JCXBnb2ZmX3Qgc3RhcnQsIHN0cnVjdCBwYWdlICoqaHBhZ2UpCitzdGF0aWMgdm9pZCBraHVnZXBhZ2VkX3NjYW5fZmlsZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJc3RydWN0IGZpbGUgKmZpbGUsIHBnb2ZmX3Qgc3RhcnQsIHN0cnVjdCBwYWdlICoqaHBhZ2UpCiB7CiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSBOVUxMOworCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gZmlsZS0+Zl9tYXBwaW5nOwogCVhBX1NUQVRFKHhhcywgJm1hcHBpbmctPmlfcGFnZXMsIHN0YXJ0KTsKIAlpbnQgcHJlc2VudCwgc3dhcDsKIAlpbnQgbm9kZSA9IE5VTUFfTk9fTk9ERTsKQEAgLTE2MDYsNyArMTg0OSw4IEBAIHN0YXRpYyB2b2lkIGtodWdlcGFnZWRfc2Nhbl9zaG1lbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCWJyZWFrOwogCQl9CiAKLQkJaWYgKHBhZ2VfY291bnQocGFnZSkgIT0gMSArIHBhZ2VfbWFwY291bnQocGFnZSkpIHsKKwkJaWYgKHBhZ2VfY291bnQocGFnZSkgIT0KKwkJICAgIDEgKyBwYWdlX21hcGNvdW50KHBhZ2UpICsgcGFnZV9oYXNfcHJpdmF0ZShwYWdlKSkgewogCQkJcmVzdWx0ID0gU0NBTl9QQUdFX0NPVU5UOwogCQkJYnJlYWs7CiAJCX0KQEAgLTE2MzEsMTkgKzE4NzUsMjMgQEAgc3RhdGljIHZvaWQga2h1Z2VwYWdlZF9zY2FuX3NobWVtKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJcmVzdWx0ID0gU0NBTl9FWENFRURfTk9ORV9QVEU7CiAJCX0gZWxzZSB7CiAJCQlub2RlID0ga2h1Z2VwYWdlZF9maW5kX3RhcmdldF9ub2RlKCk7Ci0JCQljb2xsYXBzZV9zaG1lbShtbSwgbWFwcGluZywgc3RhcnQsIGhwYWdlLCBub2RlKTsKKwkJCWNvbGxhcHNlX2ZpbGUobW0sIGZpbGUsIHN0YXJ0LCBocGFnZSwgbm9kZSk7CiAJCX0KIAl9CiAKIAkvKiBUT0RPOiB0cmFjZXBvaW50cyAqLwogfQogI2Vsc2UKLXN0YXRpYyB2b2lkIGtodWdlcGFnZWRfc2Nhbl9zaG1lbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKLQkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCi0JCXBnb2ZmX3Qgc3RhcnQsIHN0cnVjdCBwYWdlICoqaHBhZ2UpCitzdGF0aWMgdm9pZCBraHVnZXBhZ2VkX3NjYW5fZmlsZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJc3RydWN0IGZpbGUgKmZpbGUsIHBnb2ZmX3Qgc3RhcnQsIHN0cnVjdCBwYWdlICoqaHBhZ2UpCiB7CiAJQlVJTERfQlVHKCk7CiB9CisKK3N0YXRpYyBpbnQga2h1Z2VwYWdlZF9jb2xsYXBzZV9wdGVfbWFwcGVkX3RocHMoc3RydWN0IG1tX3Nsb3QgKm1tX3Nsb3QpCit7CisJcmV0dXJuIDA7Cit9CiAjZW5kaWYKIAogc3RhdGljIHVuc2lnbmVkIGludCBraHVnZXBhZ2VkX3NjYW5fbW1fc2xvdCh1bnNpZ25lZCBpbnQgcGFnZXMsCkBAIC0xNjY4LDYgKzE5MTYsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGtodWdlcGFnZWRfc2Nhbl9tbV9zbG90KHVuc2lnbmVkIGludCBwYWdlcywKIAkJa2h1Z2VwYWdlZF9zY2FuLm1tX3Nsb3QgPSBtbV9zbG90OwogCX0KIAlzcGluX3VubG9jaygma2h1Z2VwYWdlZF9tbV9sb2NrKTsKKwlraHVnZXBhZ2VkX2NvbGxhcHNlX3B0ZV9tYXBwZWRfdGhwcyhtbV9zbG90KTsKIAogCW1tID0gbW1fc2xvdC0+bW07CiAJLyoKQEAgLTE3MTMsMTcgKzE5NjIsMTggQEAgc3RhdGljIHVuc2lnbmVkIGludCBraHVnZXBhZ2VkX3NjYW5fbW1fc2xvdCh1bnNpZ25lZCBpbnQgcGFnZXMsCiAJCQlWTV9CVUdfT04oa2h1Z2VwYWdlZF9zY2FuLmFkZHJlc3MgPCBoc3RhcnQgfHwKIAkJCQkgIGtodWdlcGFnZWRfc2Nhbi5hZGRyZXNzICsgSFBBR0VfUE1EX1NJWkUgPgogCQkJCSAgaGVuZCk7Ci0JCQlpZiAoc2htZW1fZmlsZSh2bWEtPnZtX2ZpbGUpKSB7CisJCQlpZiAoSVNfRU5BQkxFRChDT05GSUdfU0hNRU0pICYmIHZtYS0+dm1fZmlsZSkgewogCQkJCXN0cnVjdCBmaWxlICpmaWxlOwogCQkJCXBnb2ZmX3QgcGdvZmYgPSBsaW5lYXJfcGFnZV9pbmRleCh2bWEsCiAJCQkJCQlraHVnZXBhZ2VkX3NjYW4uYWRkcmVzcyk7Ci0JCQkJaWYgKCFzaG1lbV9odWdlX2VuYWJsZWQodm1hKSkKKworCQkJCWlmIChzaG1lbV9maWxlKHZtYS0+dm1fZmlsZSkKKwkJCQkgICAgJiYgIXNobWVtX2h1Z2VfZW5hYmxlZCh2bWEpKQogCQkJCQlnb3RvIHNraXA7CiAJCQkJZmlsZSA9IGdldF9maWxlKHZtYS0+dm1fZmlsZSk7CiAJCQkJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsKIAkJCQlyZXQgPSAxOwotCQkJCWtodWdlcGFnZWRfc2Nhbl9zaG1lbShtbSwgZmlsZS0+Zl9tYXBwaW5nLAotCQkJCQkJcGdvZmYsIGhwYWdlKTsKKwkJCQlraHVnZXBhZ2VkX3NjYW5fZmlsZShtbSwgZmlsZSwgcGdvZmYsIGhwYWdlKTsKIAkJCQlmcHV0KGZpbGUpOwogCQkJfSBlbHNlIHsKIAkJCQlyZXQgPSBraHVnZXBhZ2VkX3NjYW5fcG1kKG1tLCB2bWEsCmRpZmYgLS1naXQgYS9tbS9rbWVtbGVhay5jIGIvbW0va21lbWxlYWsuYwppbmRleCBmNmU2MDI5Li4wM2E4ZDg0IDEwMDY0NAotLS0gYS9tbS9rbWVtbGVhay5jCisrKyBiL21tL2ttZW1sZWFrLmMKQEAgLTE2OCw2ICsxNjgsOCBAQCBzdHJ1Y3Qga21lbWxlYWtfb2JqZWN0IHsKICNkZWZpbmUgT0JKRUNUX1JFUE9SVEVECQkoMSA8PCAxKQogLyogZmxhZyBzZXQgdG8gbm90IHNjYW4gdGhlIG9iamVjdCAqLwogI2RlZmluZSBPQkpFQ1RfTk9fU0NBTgkJKDEgPDwgMikKKy8qIGZsYWcgc2V0IHRvIGZ1bGx5IHNjYW4gdGhlIG9iamVjdCB3aGVuIHNjYW5fYXJlYSBhbGxvY2F0aW9uIGZhaWxlZCAqLworI2RlZmluZSBPQkpFQ1RfRlVMTF9TQ0FOCSgxIDw8IDMpCiAKICNkZWZpbmUgSEVYX1BSRUZJWAkJIiAgICAiCiAvKiBudW1iZXIgb2YgYnl0ZXMgdG8gcHJpbnQgcGVyIGxpbmU7IG11c3QgYmUgMTYgb3IgMzIgKi8KQEAgLTE4Myw2ICsxODUsMTAgQEAgc3RydWN0IGttZW1sZWFrX29iamVjdCB7CiBzdGF0aWMgTElTVF9IRUFEKG9iamVjdF9saXN0KTsKIC8qIHRoZSBsaXN0IG9mIGdyYXktY29sb3JlZCBvYmplY3RzIChzZWUgY29sb3JfZ3JheSBjb21tZW50IGJlbG93KSAqLwogc3RhdGljIExJU1RfSEVBRChncmF5X2xpc3QpOworLyogbWVtb3J5IHBvb2wgYWxsb2NhdGlvbiAqLworc3RhdGljIHN0cnVjdCBrbWVtbGVha19vYmplY3QgbWVtX3Bvb2xbQ09ORklHX0RFQlVHX0tNRU1MRUFLX01FTV9QT09MX1NJWkVdOworc3RhdGljIGludCBtZW1fcG9vbF9mcmVlX2NvdW50ID0gQVJSQVlfU0laRShtZW1fcG9vbCk7CitzdGF0aWMgTElTVF9IRUFEKG1lbV9wb29sX2ZyZWVfbGlzdCk7CiAvKiBzZWFyY2ggdHJlZSBmb3Igb2JqZWN0IGJvdW5kYXJpZXMgKi8KIHN0YXRpYyBzdHJ1Y3QgcmJfcm9vdCBvYmplY3RfdHJlZV9yb290ID0gUkJfUk9PVDsKIC8qIHJ3X2xvY2sgcHJvdGVjdGluZyB0aGUgYWNjZXNzIHRvIG9iamVjdF9saXN0IGFuZCBvYmplY3RfdHJlZV9yb290ICovCkBAIC0xOTMsMTMgKzE5OSwxMSBAQCBzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKm9iamVjdF9jYWNoZTsKIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqc2Nhbl9hcmVhX2NhY2hlOwogCiAvKiBzZXQgaWYgdHJhY2luZyBtZW1vcnkgb3BlcmF0aW9ucyBpcyBlbmFibGVkICovCi1zdGF0aWMgaW50IGttZW1sZWFrX2VuYWJsZWQ7CitzdGF0aWMgaW50IGttZW1sZWFrX2VuYWJsZWQgPSAxOwogLyogc2FtZSBhcyBhYm92ZSBidXQgb25seSBmb3IgdGhlIGttZW1sZWFrX2ZyZWUoKSBjYWxsYmFjayAqLwotc3RhdGljIGludCBrbWVtbGVha19mcmVlX2VuYWJsZWQ7CitzdGF0aWMgaW50IGttZW1sZWFrX2ZyZWVfZW5hYmxlZCA9IDE7CiAvKiBzZXQgaW4gdGhlIGxhdGVfaW5pdGNhbGwgaWYgdGhlcmUgd2VyZSBubyBlcnJvcnMgKi8KIHN0YXRpYyBpbnQga21lbWxlYWtfaW5pdGlhbGl6ZWQ7Ci0vKiBlbmFibGVzIG9yIGRpc2FibGVzIGVhcmx5IGxvZ2dpbmcgb2YgdGhlIG1lbW9yeSBvcGVyYXRpb25zICovCi1zdGF0aWMgaW50IGttZW1sZWFrX2Vhcmx5X2xvZyA9IDE7CiAvKiBzZXQgaWYgYSBrbWVtbGVhayB3YXJuaW5nIHdhcyBpc3N1ZWQgKi8KIHN0YXRpYyBpbnQga21lbWxlYWtfd2FybmluZzsKIC8qIHNldCBpZiBhIGZhdGFsIGttZW1sZWFrIGVycm9yIGhhcyBvY2N1cnJlZCAqLwpAQCAtMjI3LDQ5ICsyMzEsNiBAQCBzdGF0aWMgYm9vbCBrbWVtbGVha19mb3VuZF9sZWFrczsKIHN0YXRpYyBib29sIGttZW1sZWFrX3ZlcmJvc2U7CiBtb2R1bGVfcGFyYW1fbmFtZWQodmVyYm9zZSwga21lbWxlYWtfdmVyYm9zZSwgYm9vbCwgMDYwMCk7CiAKLS8qCi0gKiBFYXJseSBvYmplY3QgYWxsb2NhdGlvbi9mcmVlaW5nIGxvZ2dpbmcuIEttZW1sZWFrIGlzIGluaXRpYWxpemVkIGFmdGVyIHRoZQotICoga2VybmVsIGFsbG9jYXRvci4gSG93ZXZlciwgYm90aCB0aGUga2VybmVsIGFsbG9jYXRvciBhbmQga21lbWxlYWsgbWF5Ci0gKiBhbGxvY2F0ZSBtZW1vcnkgYmxvY2tzIHdoaWNoIG5lZWQgdG8gYmUgdHJhY2tlZC4gS21lbWxlYWsgZGVmaW5lcyBhbgotICogYXJiaXRyYXJ5IGJ1ZmZlciB0byBob2xkIHRoZSBhbGxvY2F0aW9uL2ZyZWVpbmcgaW5mb3JtYXRpb24gYmVmb3JlIGl0IGlzCi0gKiBmdWxseSBpbml0aWFsaXplZC4KLSAqLwotCi0vKiBrbWVtbGVhayBvcGVyYXRpb24gdHlwZSBmb3IgZWFybHkgbG9nZ2luZyAqLwotZW51bSB7Ci0JS01FTUxFQUtfQUxMT0MsCi0JS01FTUxFQUtfQUxMT0NfUEVSQ1BVLAotCUtNRU1MRUFLX0ZSRUUsCi0JS01FTUxFQUtfRlJFRV9QQVJULAotCUtNRU1MRUFLX0ZSRUVfUEVSQ1BVLAotCUtNRU1MRUFLX05PVF9MRUFLLAotCUtNRU1MRUFLX0lHTk9SRSwKLQlLTUVNTEVBS19TQ0FOX0FSRUEsCi0JS01FTUxFQUtfTk9fU0NBTiwKLQlLTUVNTEVBS19TRVRfRVhDRVNTX1JFRgotfTsKLQotLyoKLSAqIFN0cnVjdHVyZSBob2xkaW5nIHRoZSBpbmZvcm1hdGlvbiBwYXNzZWQgdG8ga21lbWxlYWsgY2FsbGJhY2tzIGR1cmluZyB0aGUKLSAqIGVhcmx5IGxvZ2dpbmcuCi0gKi8KLXN0cnVjdCBlYXJseV9sb2cgewotCWludCBvcF90eXBlOwkJCS8qIGttZW1sZWFrIG9wZXJhdGlvbiB0eXBlICovCi0JaW50IG1pbl9jb3VudDsJCQkvKiBtaW5pbXVtIHJlZmVyZW5jZSBjb3VudCAqLwotCWNvbnN0IHZvaWQgKnB0cjsJCS8qIGFsbG9jYXRlZC9mcmVlZCBtZW1vcnkgYmxvY2sgKi8KLQl1bmlvbiB7Ci0JCXNpemVfdCBzaXplOwkJLyogbWVtb3J5IGJsb2NrIHNpemUgKi8KLQkJdW5zaWduZWQgbG9uZyBleGNlc3NfcmVmOyAvKiBzdXJwbHVzIHJlZmVyZW5jZSBwYXNzaW5nICovCi0JfTsKLQl1bnNpZ25lZCBsb25nIHRyYWNlW01BWF9UUkFDRV07CS8qIHN0YWNrIHRyYWNlICovCi0JdW5zaWduZWQgaW50IHRyYWNlX2xlbjsJCS8qIHN0YWNrIHRyYWNlIGxlbmd0aCAqLwotfTsKLQotLyogZWFybHkgbG9nZ2luZyBidWZmZXIgYW5kIGN1cnJlbnQgcG9zaXRpb24gKi8KLXN0YXRpYyBzdHJ1Y3QgZWFybHlfbG9nCi0JZWFybHlfbG9nW0NPTkZJR19ERUJVR19LTUVNTEVBS19FQVJMWV9MT0dfU0laRV0gX19pbml0ZGF0YTsKLXN0YXRpYyBpbnQgY3J0X2Vhcmx5X2xvZyBfX2luaXRkYXRhOwotCiBzdGF0aWMgdm9pZCBrbWVtbGVha19kaXNhYmxlKHZvaWQpOwogCiAvKgpAQCAtNDUwLDYgKzQxMSw1NCBAQCBzdGF0aWMgaW50IGdldF9vYmplY3Qoc3RydWN0IGttZW1sZWFrX29iamVjdCAqb2JqZWN0KQogfQogCiAvKgorICogTWVtb3J5IHBvb2wgYWxsb2NhdGlvbiBhbmQgZnJlZWluZy4ga21lbWxlYWtfbG9jayBtdXN0IG5vdCBiZSBoZWxkLgorICovCitzdGF0aWMgc3RydWN0IGttZW1sZWFrX29iamVjdCAqbWVtX3Bvb2xfYWxsb2MoZ2ZwX3QgZ2ZwKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGttZW1sZWFrX29iamVjdCAqb2JqZWN0OworCisJLyogdHJ5IHRoZSBzbGFiIGFsbG9jYXRvciBmaXJzdCAqLworCWlmIChvYmplY3RfY2FjaGUpIHsKKwkJb2JqZWN0ID0ga21lbV9jYWNoZV9hbGxvYyhvYmplY3RfY2FjaGUsIGdmcF9rbWVtbGVha19tYXNrKGdmcCkpOworCQlpZiAob2JqZWN0KQorCQkJcmV0dXJuIG9iamVjdDsKKwl9CisKKwkvKiBzbGFiIGFsbG9jYXRpb24gZmFpbGVkLCB0cnkgdGhlIG1lbW9yeSBwb29sICovCisJd3JpdGVfbG9ja19pcnFzYXZlKCZrbWVtbGVha19sb2NrLCBmbGFncyk7CisJb2JqZWN0ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZtZW1fcG9vbF9mcmVlX2xpc3QsCisJCQkJCSAgdHlwZW9mKCpvYmplY3QpLCBvYmplY3RfbGlzdCk7CisJaWYgKG9iamVjdCkKKwkJbGlzdF9kZWwoJm9iamVjdC0+b2JqZWN0X2xpc3QpOworCWVsc2UgaWYgKG1lbV9wb29sX2ZyZWVfY291bnQpCisJCW9iamVjdCA9ICZtZW1fcG9vbFstLW1lbV9wb29sX2ZyZWVfY291bnRdOworCWVsc2UKKwkJcHJfd2Fybl9vbmNlKCJNZW1vcnkgcG9vbCBlbXB0eSwgY29uc2lkZXIgaW5jcmVhc2luZyBDT05GSUdfREVCVUdfS01FTUxFQUtfTUVNX1BPT0xfU0laRVxuIik7CisJd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJmttZW1sZWFrX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiBvYmplY3Q7Cit9CisKKy8qCisgKiBSZXR1cm4gdGhlIG9iamVjdCB0byBlaXRoZXIgdGhlIHNsYWIgYWxsb2NhdG9yIG9yIHRoZSBtZW1vcnkgcG9vbC4KKyAqLworc3RhdGljIHZvaWQgbWVtX3Bvb2xfZnJlZShzdHJ1Y3Qga21lbWxlYWtfb2JqZWN0ICpvYmplY3QpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWlmIChvYmplY3QgPCBtZW1fcG9vbCB8fCBvYmplY3QgPj0gbWVtX3Bvb2wgKyBBUlJBWV9TSVpFKG1lbV9wb29sKSkgeworCQlrbWVtX2NhY2hlX2ZyZWUob2JqZWN0X2NhY2hlLCBvYmplY3QpOworCQlyZXR1cm47CisJfQorCisJLyogYWRkIHRoZSBvYmplY3QgdG8gdGhlIG1lbW9yeSBwb29sIGZyZWUgbGlzdCAqLworCXdyaXRlX2xvY2tfaXJxc2F2ZSgma21lbWxlYWtfbG9jaywgZmxhZ3MpOworCWxpc3RfYWRkKCZvYmplY3QtPm9iamVjdF9saXN0LCAmbWVtX3Bvb2xfZnJlZV9saXN0KTsKKwl3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgma21lbWxlYWtfbG9jaywgZmxhZ3MpOworfQorCisvKgogICogUkNVIGNhbGxiYWNrIHRvIGZyZWUgYSBrbWVtbGVha19vYmplY3QuCiAgKi8KIHN0YXRpYyB2b2lkIGZyZWVfb2JqZWN0X3JjdShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSkKQEAgLTQ2Nyw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX29iamVjdF9yY3Uoc3RydWN0IHJjdV9oZWFkICpyY3UpCiAJCWhsaXN0X2RlbCgmYXJlYS0+bm9kZSk7CiAJCWttZW1fY2FjaGVfZnJlZShzY2FuX2FyZWFfY2FjaGUsIGFyZWEpOwogCX0KLQlrbWVtX2NhY2hlX2ZyZWUob2JqZWN0X2NhY2hlLCBvYmplY3QpOworCW1lbV9wb29sX2ZyZWUob2JqZWN0KTsKIH0KIAogLyoKQEAgLTQ4NSw3ICs0OTQsMTUgQEAgc3RhdGljIHZvaWQgcHV0X29iamVjdChzdHJ1Y3Qga21lbWxlYWtfb2JqZWN0ICpvYmplY3QpCiAJLyogc2hvdWxkIG9ubHkgZ2V0IGhlcmUgYWZ0ZXIgZGVsZXRlX29iamVjdCB3YXMgY2FsbGVkICovCiAJV0FSTl9PTihvYmplY3QtPmZsYWdzICYgT0JKRUNUX0FMTE9DQVRFRCk7CiAKLQljYWxsX3JjdSgmb2JqZWN0LT5yY3UsIGZyZWVfb2JqZWN0X3JjdSk7CisJLyoKKwkgKiBJdCBtYXkgYmUgdG9vIGVhcmx5IGZvciB0aGUgUkNVIGNhbGxiYWNrcywgaG93ZXZlciwgdGhlcmUgaXMgbm8KKwkgKiBjb25jdXJyZW50IG9iamVjdF9saXN0IHRyYXZlcnNhbCB3aGVuICFvYmplY3RfY2FjaGUgYW5kIGFsbCBvYmplY3RzCisJICogY2FtZSBmcm9tIHRoZSBtZW1vcnkgcG9vbC4gRnJlZSB0aGUgb2JqZWN0IGRpcmVjdGx5LgorCSAqLworCWlmIChvYmplY3RfY2FjaGUpCisJCWNhbGxfcmN1KCZvYmplY3QtPnJjdSwgZnJlZV9vYmplY3RfcmN1KTsKKwllbHNlCisJCWZyZWVfb2JqZWN0X3JjdSgmb2JqZWN0LT5yY3UpOwogfQogCiAvKgpAQCAtNTUwLDcgKzU2Nyw3IEBAIHN0YXRpYyBzdHJ1Y3Qga21lbWxlYWtfb2JqZWN0ICpjcmVhdGVfb2JqZWN0KHVuc2lnbmVkIGxvbmcgcHRyLCBzaXplX3Qgc2l6ZSwKIAlzdHJ1Y3QgcmJfbm9kZSAqKmxpbmssICpyYl9wYXJlbnQ7CiAJdW5zaWduZWQgbG9uZyB1bnRhZ2dlZF9wdHI7CiAKLQlvYmplY3QgPSBrbWVtX2NhY2hlX2FsbG9jKG9iamVjdF9jYWNoZSwgZ2ZwX2ttZW1sZWFrX21hc2soZ2ZwKSk7CisJb2JqZWN0ID0gbWVtX3Bvb2xfYWxsb2MoZ2ZwKTsKIAlpZiAoIW9iamVjdCkgewogCQlwcl93YXJuKCJDYW5ub3QgYWxsb2NhdGUgYSBrbWVtbGVha19vYmplY3Qgc3RydWN0dXJlXG4iKTsKIAkJa21lbWxlYWtfZGlzYWJsZSgpOwpAQCAtNjg5LDkgKzcwNiw3IEBAIHN0YXRpYyB2b2lkIGRlbGV0ZV9vYmplY3RfcGFydCh1bnNpZ25lZCBsb25nIHB0ciwgc2l6ZV90IHNpemUpCiAJLyoKIAkgKiBDcmVhdGUgb25lIG9yIHR3byBvYmplY3RzIHRoYXQgbWF5IHJlc3VsdCBmcm9tIHRoZSBtZW1vcnkgYmxvY2sKIAkgKiBzcGxpdC4gTm90ZSB0aGF0IHBhcnRpYWwgZnJlZWluZyBpcyBvbmx5IGRvbmUgYnkgZnJlZV9ib290bWVtKCkgYW5kCi0JICogdGhpcyBoYXBwZW5zIGJlZm9yZSBrbWVtbGVha19pbml0KCkgaXMgY2FsbGVkLiBUaGUgcGF0aCBiZWxvdyBpcwotCSAqIG9ubHkgZXhlY3V0ZWQgZHVyaW5nIGVhcmx5IGxvZyByZWNvcmRpbmcgaW4ga21lbWxlYWtfaW5pdCgpLCBzbwotCSAqIEdGUF9LRVJORUwgaXMgZW5vdWdoLgorCSAqIHRoaXMgaGFwcGVucyBiZWZvcmUga21lbWxlYWtfaW5pdCgpIGlzIGNhbGxlZC4KIAkgKi8KIAlzdGFydCA9IG9iamVjdC0+cG9pbnRlcjsKIAllbmQgPSBvYmplY3QtPnBvaW50ZXIgKyBvYmplY3QtPnNpemU7CkBAIC03NjMsNyArNzc4LDcgQEAgc3RhdGljIHZvaWQgYWRkX3NjYW5fYXJlYSh1bnNpZ25lZCBsb25nIHB0ciwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBrbWVtbGVha19vYmplY3QgKm9iamVjdDsKLQlzdHJ1Y3Qga21lbWxlYWtfc2Nhbl9hcmVhICphcmVhOworCXN0cnVjdCBrbWVtbGVha19zY2FuX2FyZWEgKmFyZWEgPSBOVUxMOwogCiAJb2JqZWN0ID0gZmluZF9hbmRfZ2V0X29iamVjdChwdHIsIDEpOwogCWlmICghb2JqZWN0KSB7CkBAIC03NzIsMTMgKzc4NywxNiBAQCBzdGF0aWMgdm9pZCBhZGRfc2Nhbl9hcmVhKHVuc2lnbmVkIGxvbmcgcHRyLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwKQogCQlyZXR1cm47CiAJfQogCi0JYXJlYSA9IGttZW1fY2FjaGVfYWxsb2Moc2Nhbl9hcmVhX2NhY2hlLCBnZnBfa21lbWxlYWtfbWFzayhnZnApKTsKLQlpZiAoIWFyZWEpIHsKLQkJcHJfd2FybigiQ2Fubm90IGFsbG9jYXRlIGEgc2NhbiBhcmVhXG4iKTsKLQkJZ290byBvdXQ7Ci0JfQorCWlmIChzY2FuX2FyZWFfY2FjaGUpCisJCWFyZWEgPSBrbWVtX2NhY2hlX2FsbG9jKHNjYW5fYXJlYV9jYWNoZSwgZ2ZwX2ttZW1sZWFrX21hc2soZ2ZwKSk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmb2JqZWN0LT5sb2NrLCBmbGFncyk7CisJaWYgKCFhcmVhKSB7CisJCXByX3dhcm5fb25jZSgiQ2Fubm90IGFsbG9jYXRlIGEgc2NhbiBhcmVhLCBzY2FubmluZyB0aGUgZnVsbCBvYmplY3RcbiIpOworCQkvKiBtYXJrIHRoZSBvYmplY3QgZm9yIGZ1bGwgc2NhbiB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMgKi8KKwkJb2JqZWN0LT5mbGFncyB8PSBPQkpFQ1RfRlVMTF9TQ0FOOworCQlnb3RvIG91dF91bmxvY2s7CisJfQogCWlmIChzaXplID09IFNJWkVfTUFYKSB7CiAJCXNpemUgPSBvYmplY3QtPnBvaW50ZXIgKyBvYmplY3QtPnNpemUgLSBwdHI7CiAJfSBlbHNlIGlmIChwdHIgKyBzaXplID4gb2JqZWN0LT5wb2ludGVyICsgb2JqZWN0LT5zaXplKSB7CkBAIC03OTUsNyArODEzLDYgQEAgc3RhdGljIHZvaWQgYWRkX3NjYW5fYXJlYSh1bnNpZ25lZCBsb25nIHB0ciwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCkKIAlobGlzdF9hZGRfaGVhZCgmYXJlYS0+bm9kZSwgJm9iamVjdC0+YXJlYV9saXN0KTsKIG91dF91bmxvY2s6CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb2JqZWN0LT5sb2NrLCBmbGFncyk7Ci1vdXQ6CiAJcHV0X29iamVjdChvYmplY3QpOwogfQogCkBAIC04NDUsODYgKzg2Miw2IEBAIHN0YXRpYyB2b2lkIG9iamVjdF9ub19zY2FuKHVuc2lnbmVkIGxvbmcgcHRyKQogCXB1dF9vYmplY3Qob2JqZWN0KTsKIH0KIAotLyoKLSAqIExvZyBhbiBlYXJseSBrbWVtbGVha18qIGNhbGwgdG8gdGhlIGVhcmx5X2xvZyBidWZmZXIuIFRoZXNlIGNhbGxzIHdpbGwgYmUKLSAqIHByb2Nlc3NlZCBsYXRlciBvbmNlIGttZW1sZWFrIGlzIGZ1bGx5IGluaXRpYWxpemVkLgotICovCi1zdGF0aWMgdm9pZCBfX2luaXQgbG9nX2Vhcmx5KGludCBvcF90eXBlLCBjb25zdCB2b2lkICpwdHIsIHNpemVfdCBzaXplLAotCQkJICAgICBpbnQgbWluX2NvdW50KQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IGVhcmx5X2xvZyAqbG9nOwotCi0JaWYgKGttZW1sZWFrX2Vycm9yKSB7Ci0JCS8qIGttZW1sZWFrIHN0b3BwZWQgcmVjb3JkaW5nLCBqdXN0IGNvdW50IHRoZSByZXF1ZXN0cyAqLwotCQljcnRfZWFybHlfbG9nKys7Ci0JCXJldHVybjsKLQl9Ci0KLQlpZiAoY3J0X2Vhcmx5X2xvZyA+PSBBUlJBWV9TSVpFKGVhcmx5X2xvZykpIHsKLQkJY3J0X2Vhcmx5X2xvZysrOwotCQlrbWVtbGVha19kaXNhYmxlKCk7Ci0JCXJldHVybjsKLQl9Ci0KLQkvKgotCSAqIFRoZXJlIGlzIG5vIG5lZWQgZm9yIGxvY2tpbmcgc2luY2UgdGhlIGtlcm5lbCBpcyBzdGlsbCBpbiBVUCBtb2RlCi0JICogYXQgdGhpcyBzdGFnZS4gRGlzYWJsaW5nIHRoZSBJUlFzIGlzIGVub3VnaC4KLQkgKi8KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0JbG9nID0gJmVhcmx5X2xvZ1tjcnRfZWFybHlfbG9nXTsKLQlsb2ctPm9wX3R5cGUgPSBvcF90eXBlOwotCWxvZy0+cHRyID0gcHRyOwotCWxvZy0+c2l6ZSA9IHNpemU7Ci0JbG9nLT5taW5fY291bnQgPSBtaW5fY291bnQ7Ci0JbG9nLT50cmFjZV9sZW4gPSBfX3NhdmVfc3RhY2tfdHJhY2UobG9nLT50cmFjZSk7Ci0JY3J0X2Vhcmx5X2xvZysrOwotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLX0KLQotLyoKLSAqIExvZyBhbiBlYXJseSBhbGxvY2F0ZWQgYmxvY2sgYW5kIHBvcHVsYXRlIHRoZSBzdGFjayB0cmFjZS4KLSAqLwotc3RhdGljIHZvaWQgZWFybHlfYWxsb2Moc3RydWN0IGVhcmx5X2xvZyAqbG9nKQotewotCXN0cnVjdCBrbWVtbGVha19vYmplY3QgKm9iamVjdDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBpOwotCi0JaWYgKCFrbWVtbGVha19lbmFibGVkIHx8ICFsb2ctPnB0ciB8fCBJU19FUlIobG9nLT5wdHIpKQotCQlyZXR1cm47Ci0KLQkvKgotCSAqIFJDVSBsb2NraW5nIG5lZWRlZCB0byBlbnN1cmUgb2JqZWN0IGlzIG5vdCBmcmVlZCB2aWEgcHV0X29iamVjdCgpLgotCSAqLwotCXJjdV9yZWFkX2xvY2soKTsKLQlvYmplY3QgPSBjcmVhdGVfb2JqZWN0KCh1bnNpZ25lZCBsb25nKWxvZy0+cHRyLCBsb2ctPnNpemUsCi0JCQkgICAgICAgbG9nLT5taW5fY291bnQsIEdGUF9BVE9NSUMpOwotCWlmICghb2JqZWN0KQotCQlnb3RvIG91dDsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmb2JqZWN0LT5sb2NrLCBmbGFncyk7Ci0JZm9yIChpID0gMDsgaSA8IGxvZy0+dHJhY2VfbGVuOyBpKyspCi0JCW9iamVjdC0+dHJhY2VbaV0gPSBsb2ctPnRyYWNlW2ldOwotCW9iamVjdC0+dHJhY2VfbGVuID0gbG9nLT50cmFjZV9sZW47Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb2JqZWN0LT5sb2NrLCBmbGFncyk7Ci1vdXQ6Ci0JcmN1X3JlYWRfdW5sb2NrKCk7Ci19Ci0KLS8qCi0gKiBMb2cgYW4gZWFybHkgYWxsb2NhdGVkIGJsb2NrIGFuZCBwb3B1bGF0ZSB0aGUgc3RhY2sgdHJhY2UuCi0gKi8KLXN0YXRpYyB2b2lkIGVhcmx5X2FsbG9jX3BlcmNwdShzdHJ1Y3QgZWFybHlfbG9nICpsb2cpCi17Ci0JdW5zaWduZWQgaW50IGNwdTsKLQljb25zdCB2b2lkIF9fcGVyY3B1ICpwdHIgPSBsb2ctPnB0cjsKLQotCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKLQkJbG9nLT5wdHIgPSBwZXJfY3B1X3B0cihwdHIsIGNwdSk7Ci0JCWVhcmx5X2FsbG9jKGxvZyk7Ci0JfQotfQotCiAvKioKICAqIGttZW1sZWFrX2FsbG9jIC0gcmVnaXN0ZXIgYSBuZXdseSBhbGxvY2F0ZWQgb2JqZWN0CiAgKiBAcHRyOglwb2ludGVyIHRvIGJlZ2lubmluZyBvZiB0aGUgb2JqZWN0CkBAIC05NDYsOCArODgzLDYgQEAgdm9pZCBfX3JlZiBrbWVtbGVha19hbGxvYyhjb25zdCB2b2lkICpwdHIsIHNpemVfdCBzaXplLCBpbnQgbWluX2NvdW50LAogCiAJaWYgKGttZW1sZWFrX2VuYWJsZWQgJiYgcHRyICYmICFJU19FUlIocHRyKSkKIAkJY3JlYXRlX29iamVjdCgodW5zaWduZWQgbG9uZylwdHIsIHNpemUsIG1pbl9jb3VudCwgZ2ZwKTsKLQllbHNlIGlmIChrbWVtbGVha19lYXJseV9sb2cpCi0JCWxvZ19lYXJseShLTUVNTEVBS19BTExPQywgcHRyLCBzaXplLCBtaW5fY291bnQpOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoa21lbWxlYWtfYWxsb2MpOwogCkBAIC05NzUsOCArOTEwLDYgQEAgdm9pZCBfX3JlZiBrbWVtbGVha19hbGxvY19wZXJjcHUoY29uc3Qgdm9pZCBfX3BlcmNwdSAqcHRyLCBzaXplX3Qgc2l6ZSwKIAkJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkKIAkJCWNyZWF0ZV9vYmplY3QoKHVuc2lnbmVkIGxvbmcpcGVyX2NwdV9wdHIocHRyLCBjcHUpLAogCQkJCSAgICAgIHNpemUsIDAsIGdmcCk7Ci0JZWxzZSBpZiAoa21lbWxlYWtfZWFybHlfbG9nKQotCQlsb2dfZWFybHkoS01FTUxFQUtfQUxMT0NfUEVSQ1BVLCBwdHIsIHNpemUsIDApOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoa21lbWxlYWtfYWxsb2NfcGVyY3B1KTsKIApAQCAtMTAwMSwxMSArOTM0LDYgQEAgdm9pZCBfX3JlZiBrbWVtbGVha192bWFsbG9jKGNvbnN0IHN0cnVjdCB2bV9zdHJ1Y3QgKmFyZWEsIHNpemVfdCBzaXplLCBnZnBfdCBnZnAKIAkJY3JlYXRlX29iamVjdCgodW5zaWduZWQgbG9uZylhcmVhLT5hZGRyLCBzaXplLCAyLCBnZnApOwogCQlvYmplY3Rfc2V0X2V4Y2Vzc19yZWYoKHVuc2lnbmVkIGxvbmcpYXJlYSwKIAkJCQkgICAgICAodW5zaWduZWQgbG9uZylhcmVhLT5hZGRyKTsKLQl9IGVsc2UgaWYgKGttZW1sZWFrX2Vhcmx5X2xvZykgewotCQlsb2dfZWFybHkoS01FTUxFQUtfQUxMT0MsIGFyZWEtPmFkZHIsIHNpemUsIDIpOwotCQkvKiByZXVzaW5nIGVhcmx5X2xvZy5zaXplIGZvciBzdG9yaW5nIGFyZWEtPmFkZHIgKi8KLQkJbG9nX2Vhcmx5KEtNRU1MRUFLX1NFVF9FWENFU1NfUkVGLAotCQkJICBhcmVhLCAodW5zaWduZWQgbG9uZylhcmVhLT5hZGRyLCAwKTsKIAl9CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChrbWVtbGVha192bWFsbG9jKTsKQEAgLTEwMjMsOCArOTUxLDYgQEAgdm9pZCBfX3JlZiBrbWVtbGVha19mcmVlKGNvbnN0IHZvaWQgKnB0cikKIAogCWlmIChrbWVtbGVha19mcmVlX2VuYWJsZWQgJiYgcHRyICYmICFJU19FUlIocHRyKSkKIAkJZGVsZXRlX29iamVjdF9mdWxsKCh1bnNpZ25lZCBsb25nKXB0cik7Ci0JZWxzZSBpZiAoa21lbWxlYWtfZWFybHlfbG9nKQotCQlsb2dfZWFybHkoS01FTUxFQUtfRlJFRSwgcHRyLCAwLCAwKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGttZW1sZWFrX2ZyZWUpOwogCkBAIC0xMDQzLDggKzk2OSw2IEBAIHZvaWQgX19yZWYga21lbWxlYWtfZnJlZV9wYXJ0KGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpCiAKIAlpZiAoa21lbWxlYWtfZW5hYmxlZCAmJiBwdHIgJiYgIUlTX0VSUihwdHIpKQogCQlkZWxldGVfb2JqZWN0X3BhcnQoKHVuc2lnbmVkIGxvbmcpcHRyLCBzaXplKTsKLQllbHNlIGlmIChrbWVtbGVha19lYXJseV9sb2cpCi0JCWxvZ19lYXJseShLTUVNTEVBS19GUkVFX1BBUlQsIHB0ciwgc2l6ZSwgMCk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChrbWVtbGVha19mcmVlX3BhcnQpOwogCkBAIC0xMDY1LDggKzk4OSw2IEBAIHZvaWQgX19yZWYga21lbWxlYWtfZnJlZV9wZXJjcHUoY29uc3Qgdm9pZCBfX3BlcmNwdSAqcHRyKQogCQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KQogCQkJZGVsZXRlX29iamVjdF9mdWxsKCh1bnNpZ25lZCBsb25nKXBlcl9jcHVfcHRyKHB0ciwKIAkJCQkJCQkJICAgICAgY3B1KSk7Ci0JZWxzZSBpZiAoa21lbWxlYWtfZWFybHlfbG9nKQotCQlsb2dfZWFybHkoS01FTUxFQUtfRlJFRV9QRVJDUFUsIHB0ciwgMCwgMCk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChrbWVtbGVha19mcmVlX3BlcmNwdSk7CiAKQEAgLTExMTcsOCArMTAzOSw2IEBAIHZvaWQgX19yZWYga21lbWxlYWtfbm90X2xlYWsoY29uc3Qgdm9pZCAqcHRyKQogCiAJaWYgKGttZW1sZWFrX2VuYWJsZWQgJiYgcHRyICYmICFJU19FUlIocHRyKSkKIAkJbWFrZV9ncmF5X29iamVjdCgodW5zaWduZWQgbG9uZylwdHIpOwotCWVsc2UgaWYgKGttZW1sZWFrX2Vhcmx5X2xvZykKLQkJbG9nX2Vhcmx5KEtNRU1MRUFLX05PVF9MRUFLLCBwdHIsIDAsIDApOwogfQogRVhQT1JUX1NZTUJPTChrbWVtbGVha19ub3RfbGVhayk7CiAKQEAgLTExMzcsOCArMTA1Nyw2IEBAIHZvaWQgX19yZWYga21lbWxlYWtfaWdub3JlKGNvbnN0IHZvaWQgKnB0cikKIAogCWlmIChrbWVtbGVha19lbmFibGVkICYmIHB0ciAmJiAhSVNfRVJSKHB0cikpCiAJCW1ha2VfYmxhY2tfb2JqZWN0KCh1bnNpZ25lZCBsb25nKXB0cik7Ci0JZWxzZSBpZiAoa21lbWxlYWtfZWFybHlfbG9nKQotCQlsb2dfZWFybHkoS01FTUxFQUtfSUdOT1JFLCBwdHIsIDAsIDApOwogfQogRVhQT1JUX1NZTUJPTChrbWVtbGVha19pZ25vcmUpOwogCkBAIC0xMTU5LDggKzEwNzcsNiBAQCB2b2lkIF9fcmVmIGttZW1sZWFrX3NjYW5fYXJlYShjb25zdCB2b2lkICpwdHIsIHNpemVfdCBzaXplLCBnZnBfdCBnZnApCiAKIAlpZiAoa21lbWxlYWtfZW5hYmxlZCAmJiBwdHIgJiYgc2l6ZSAmJiAhSVNfRVJSKHB0cikpCiAJCWFkZF9zY2FuX2FyZWEoKHVuc2lnbmVkIGxvbmcpcHRyLCBzaXplLCBnZnApOwotCWVsc2UgaWYgKGttZW1sZWFrX2Vhcmx5X2xvZykKLQkJbG9nX2Vhcmx5KEtNRU1MRUFLX1NDQU5fQVJFQSwgcHRyLCBzaXplLCAwKTsKIH0KIEVYUE9SVF9TWU1CT0woa21lbWxlYWtfc2Nhbl9hcmVhKTsKIApAQCAtMTE3OSw4ICsxMDk1LDYgQEAgdm9pZCBfX3JlZiBrbWVtbGVha19ub19zY2FuKGNvbnN0IHZvaWQgKnB0cikKIAogCWlmIChrbWVtbGVha19lbmFibGVkICYmIHB0ciAmJiAhSVNfRVJSKHB0cikpCiAJCW9iamVjdF9ub19zY2FuKCh1bnNpZ25lZCBsb25nKXB0cik7Ci0JZWxzZSBpZiAoa21lbWxlYWtfZWFybHlfbG9nKQotCQlsb2dfZWFybHkoS01FTUxFQUtfTk9fU0NBTiwgcHRyLCAwLCAwKTsKIH0KIEVYUE9SVF9TWU1CT0woa21lbWxlYWtfbm9fc2Nhbik7CiAKQEAgLTE0MDgsNyArMTMyMiw4IEBAIHN0YXRpYyB2b2lkIHNjYW5fb2JqZWN0KHN0cnVjdCBrbWVtbGVha19vYmplY3QgKm9iamVjdCkKIAlpZiAoIShvYmplY3QtPmZsYWdzICYgT0JKRUNUX0FMTE9DQVRFRCkpCiAJCS8qIGFscmVhZHkgZnJlZWQgb2JqZWN0ICovCiAJCWdvdG8gb3V0OwotCWlmIChobGlzdF9lbXB0eSgmb2JqZWN0LT5hcmVhX2xpc3QpKSB7CisJaWYgKGhsaXN0X2VtcHR5KCZvYmplY3QtPmFyZWFfbGlzdCkgfHwKKwkgICAgb2JqZWN0LT5mbGFncyAmIE9CSkVDVF9GVUxMX1NDQU4pIHsKIAkJdm9pZCAqc3RhcnQgPSAodm9pZCAqKW9iamVjdC0+cG9pbnRlcjsKIAkJdm9pZCAqZW5kID0gKHZvaWQgKikob2JqZWN0LT5wb2ludGVyICsgb2JqZWN0LT5zaXplKTsKIAkJdm9pZCAqbmV4dDsKQEAgLTE5NjYsNyArMTg4MSw2IEBAIHN0YXRpYyB2b2lkIGttZW1sZWFrX2Rpc2FibGUodm9pZCkKIAogCS8qIHN0b3AgYW55IG1lbW9yeSBvcGVyYXRpb24gdHJhY2luZyAqLwogCWttZW1sZWFrX2VuYWJsZWQgPSAwOwotCWttZW1sZWFrX2Vhcmx5X2xvZyA9IDA7CiAKIAkvKiBjaGVjayB3aGV0aGVyIGl0IGlzIHRvbyBlYXJseSBmb3IgYSBrZXJuZWwgdGhyZWFkICovCiAJaWYgKGttZW1sZWFrX2luaXRpYWxpemVkKQpAQCAtMTk5NCwyMCArMTkwOCwxMSBAQCBzdGF0aWMgaW50IF9faW5pdCBrbWVtbGVha19ib290X2NvbmZpZyhjaGFyICpzdHIpCiB9CiBlYXJseV9wYXJhbSgia21lbWxlYWsiLCBrbWVtbGVha19ib290X2NvbmZpZyk7CiAKLXN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9sb2dfdHJhY2Uoc3RydWN0IGVhcmx5X2xvZyAqbG9nKQotewotCXByX25vdGljZSgiRWFybHkgbG9nIGJhY2t0cmFjZTpcbiIpOwotCXN0YWNrX3RyYWNlX3ByaW50KGxvZy0+dHJhY2UsIGxvZy0+dHJhY2VfbGVuLCAyKTsKLX0KLQogLyoKICAqIEttZW1sZWFrIGluaXRpYWxpemF0aW9uLgogICovCiB2b2lkIF9faW5pdCBrbWVtbGVha19pbml0KHZvaWQpCiB7Ci0JaW50IGk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQogI2lmZGVmIENPTkZJR19ERUJVR19LTUVNTEVBS19ERUZBVUxUX09GRgogCWlmICgha21lbWxlYWtfc2tpcF9kaXNhYmxlKSB7CiAJCWttZW1sZWFrX2Rpc2FibGUoKTsKQEAgLTIwMTUsMjggKzE5MjAsMTUgQEAgdm9pZCBfX2luaXQga21lbWxlYWtfaW5pdCh2b2lkKQogCX0KICNlbmRpZgogCisJaWYgKGttZW1sZWFrX2Vycm9yKQorCQlyZXR1cm47CisKIAlqaWZmaWVzX21pbl9hZ2UgPSBtc2Vjc190b19qaWZmaWVzKE1TRUNTX01JTl9BR0UpOwogCWppZmZpZXNfc2Nhbl93YWl0ID0gbXNlY3NfdG9famlmZmllcyhTRUNTX1NDQU5fV0FJVCAqIDEwMDApOwogCiAJb2JqZWN0X2NhY2hlID0gS01FTV9DQUNIRShrbWVtbGVha19vYmplY3QsIFNMQUJfTk9MRUFLVFJBQ0UpOwogCXNjYW5fYXJlYV9jYWNoZSA9IEtNRU1fQ0FDSEUoa21lbWxlYWtfc2Nhbl9hcmVhLCBTTEFCX05PTEVBS1RSQUNFKTsKIAotCWlmIChjcnRfZWFybHlfbG9nID4gQVJSQVlfU0laRShlYXJseV9sb2cpKQotCQlwcl93YXJuKCJFYXJseSBsb2cgYnVmZmVyIGV4Y2VlZGVkICglZCksIHBsZWFzZSBpbmNyZWFzZSBERUJVR19LTUVNTEVBS19FQVJMWV9MT0dfU0laRVxuIiwKLQkJCWNydF9lYXJseV9sb2cpOwotCi0JLyogdGhlIGtlcm5lbCBpcyBzdGlsbCBpbiBVUCBtb2RlLCBzbyBkaXNhYmxpbmcgdGhlIElSUXMgaXMgZW5vdWdoICovCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCWttZW1sZWFrX2Vhcmx5X2xvZyA9IDA7Ci0JaWYgKGttZW1sZWFrX2Vycm9yKSB7Ci0JCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQkJcmV0dXJuOwotCX0gZWxzZSB7Ci0JCWttZW1sZWFrX2VuYWJsZWQgPSAxOwotCQlrbWVtbGVha19mcmVlX2VuYWJsZWQgPSAxOwotCX0KLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0KIAkvKiByZWdpc3RlciB0aGUgZGF0YS9ic3Mgc2VjdGlvbnMgKi8KIAljcmVhdGVfb2JqZWN0KCh1bnNpZ25lZCBsb25nKV9zZGF0YSwgX2VkYXRhIC0gX3NkYXRhLAogCQkgICAgICBLTUVNTEVBS19HUkVZLCBHRlBfQVRPTUlDKTsKQEAgLTIwNDcsNTcgKzE5MzksNiBAQCB2b2lkIF9faW5pdCBrbWVtbGVha19pbml0KHZvaWQpCiAJCWNyZWF0ZV9vYmplY3QoKHVuc2lnbmVkIGxvbmcpX19zdGFydF9yb19hZnRlcl9pbml0LAogCQkJICAgICAgX19lbmRfcm9fYWZ0ZXJfaW5pdCAtIF9fc3RhcnRfcm9fYWZ0ZXJfaW5pdCwKIAkJCSAgICAgIEtNRU1MRUFLX0dSRVksIEdGUF9BVE9NSUMpOwotCi0JLyoKLQkgKiBUaGlzIGlzIHRoZSBwb2ludCB3aGVyZSB0cmFja2luZyBhbGxvY2F0aW9ucyBpcyBzYWZlLiBBdXRvbWF0aWMKLQkgKiBzY2FubmluZyBpcyBzdGFydGVkIGR1cmluZyB0aGUgbGF0ZSBpbml0Y2FsbC4gQWRkIHRoZSBlYXJseSBsb2dnZWQKLQkgKiBjYWxsYmFja3MgdG8gdGhlIGttZW1sZWFrIGluZnJhc3RydWN0dXJlLgotCSAqLwotCWZvciAoaSA9IDA7IGkgPCBjcnRfZWFybHlfbG9nOyBpKyspIHsKLQkJc3RydWN0IGVhcmx5X2xvZyAqbG9nID0gJmVhcmx5X2xvZ1tpXTsKLQotCQlzd2l0Y2ggKGxvZy0+b3BfdHlwZSkgewotCQljYXNlIEtNRU1MRUFLX0FMTE9DOgotCQkJZWFybHlfYWxsb2MobG9nKTsKLQkJCWJyZWFrOwotCQljYXNlIEtNRU1MRUFLX0FMTE9DX1BFUkNQVToKLQkJCWVhcmx5X2FsbG9jX3BlcmNwdShsb2cpOwotCQkJYnJlYWs7Ci0JCWNhc2UgS01FTUxFQUtfRlJFRToKLQkJCWttZW1sZWFrX2ZyZWUobG9nLT5wdHIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgS01FTUxFQUtfRlJFRV9QQVJUOgotCQkJa21lbWxlYWtfZnJlZV9wYXJ0KGxvZy0+cHRyLCBsb2ctPnNpemUpOwotCQkJYnJlYWs7Ci0JCWNhc2UgS01FTUxFQUtfRlJFRV9QRVJDUFU6Ci0JCQlrbWVtbGVha19mcmVlX3BlcmNwdShsb2ctPnB0cik7Ci0JCQlicmVhazsKLQkJY2FzZSBLTUVNTEVBS19OT1RfTEVBSzoKLQkJCWttZW1sZWFrX25vdF9sZWFrKGxvZy0+cHRyKTsKLQkJCWJyZWFrOwotCQljYXNlIEtNRU1MRUFLX0lHTk9SRToKLQkJCWttZW1sZWFrX2lnbm9yZShsb2ctPnB0cik7Ci0JCQlicmVhazsKLQkJY2FzZSBLTUVNTEVBS19TQ0FOX0FSRUE6Ci0JCQlrbWVtbGVha19zY2FuX2FyZWEobG9nLT5wdHIsIGxvZy0+c2l6ZSwgR0ZQX0tFUk5FTCk7Ci0JCQlicmVhazsKLQkJY2FzZSBLTUVNTEVBS19OT19TQ0FOOgotCQkJa21lbWxlYWtfbm9fc2Nhbihsb2ctPnB0cik7Ci0JCQlicmVhazsKLQkJY2FzZSBLTUVNTEVBS19TRVRfRVhDRVNTX1JFRjoKLQkJCW9iamVjdF9zZXRfZXhjZXNzX3JlZigodW5zaWduZWQgbG9uZylsb2ctPnB0ciwKLQkJCQkJICAgICAgbG9nLT5leGNlc3NfcmVmKTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJa21lbWxlYWtfd2FybigiVW5rbm93biBlYXJseSBsb2cgb3BlcmF0aW9uOiAlZFxuIiwKLQkJCQkgICAgICBsb2ctPm9wX3R5cGUpOwotCQl9Ci0KLQkJaWYgKGttZW1sZWFrX3dhcm5pbmcpIHsKLQkJCXByaW50X2xvZ190cmFjZShsb2cpOwotCQkJa21lbWxlYWtfd2FybmluZyA9IDA7Ci0JCX0KLQl9CiB9CiAKIC8qCkBAIC0yMTI2LDcgKzE5NjcsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBrbWVtbGVha19sYXRlX2luaXQodm9pZCkKIAkJbXV0ZXhfdW5sb2NrKCZzY2FuX211dGV4KTsKIAl9CiAKLQlwcl9pbmZvKCJLZXJuZWwgbWVtb3J5IGxlYWsgZGV0ZWN0b3IgaW5pdGlhbGl6ZWRcbiIpOworCXByX2luZm8oIktlcm5lbCBtZW1vcnkgbGVhayBkZXRlY3RvciBpbml0aWFsaXplZCAobWVtIHBvb2wgYXZhaWxhYmxlOiAlZClcbiIsCisJCW1lbV9wb29sX2ZyZWVfY291bnQpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9tbS9rc20uYyBiL21tL2tzbS5jCmluZGV4IDNkYzQzNDYuLmRiZWUyZWIgMTAwNjQ0Ci0tLSBhL21tL2tzbS5jCisrKyBiL21tL2tzbS5jCkBAIC0xMDI5LDI0ICsxMDI5LDYgQEAgc3RhdGljIHUzMiBjYWxjX2NoZWNrc3VtKHN0cnVjdCBwYWdlICpwYWdlKQogCXJldHVybiBjaGVja3N1bTsKIH0KIAotc3RhdGljIGludCBtZW1jbXBfcGFnZXMoc3RydWN0IHBhZ2UgKnBhZ2UxLCBzdHJ1Y3QgcGFnZSAqcGFnZTIpCi17Ci0JY2hhciAqYWRkcjEsICphZGRyMjsKLQlpbnQgcmV0OwotCi0JYWRkcjEgPSBrbWFwX2F0b21pYyhwYWdlMSk7Ci0JYWRkcjIgPSBrbWFwX2F0b21pYyhwYWdlMik7Ci0JcmV0ID0gbWVtY21wKGFkZHIxLCBhZGRyMiwgUEFHRV9TSVpFKTsKLQlrdW5tYXBfYXRvbWljKGFkZHIyKTsKLQlrdW5tYXBfYXRvbWljKGFkZHIxKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW5saW5lIGludCBwYWdlc19pZGVudGljYWwoc3RydWN0IHBhZ2UgKnBhZ2UxLCBzdHJ1Y3QgcGFnZSAqcGFnZTIpCi17Ci0JcmV0dXJuICFtZW1jbXBfcGFnZXMocGFnZTEsIHBhZ2UyKTsKLX0KLQogc3RhdGljIGludCB3cml0ZV9wcm90ZWN0X3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCBwYWdlICpwYWdlLAogCQkJICAgICAgcHRlX3QgKm9yaWdfcHRlKQogewpkaWZmIC0tZ2l0IGEvbW0vbWFkdmlzZS5jIGIvbW0vbWFkdmlzZS5jCmluZGV4IGJhYzk3M2IuLjJiZTlmM2YgMTAwNjQ0Ci0tLSBhL21tL21hZHZpc2UuYworKysgYi9tbS9tYWR2aXNlLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGxpbnV4L21lbXBvbGljeS5oPgogI2luY2x1ZGUgPGxpbnV4L3BhZ2UtaXNvbGF0aW9uLmg+CisjaW5jbHVkZSA8bGludXgvcGFnZV9pZGxlLmg+CiAjaW5jbHVkZSA8bGludXgvdXNlcmZhdWx0ZmRfay5oPgogI2luY2x1ZGUgPGxpbnV4L2h1Z2V0bGIuaD4KICNpbmNsdWRlIDxsaW51eC9mYWxsb2MuaD4KQEAgLTIxLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvYmFja2luZy1kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9wYWdld2Fsay5oPgogI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KICNpbmNsdWRlIDxsaW51eC9zd2Fwb3BzLmg+CiAjaW5jbHVkZSA8bGludXgvc2htZW1fZnMuaD4KQEAgLTMwLDYgKzMyLDExIEBACiAKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogCitzdHJ1Y3QgbWFkdmlzZV93YWxrX3ByaXZhdGUgeworCXN0cnVjdCBtbXVfZ2F0aGVyICp0bGI7CisJYm9vbCBwYWdlb3V0OworfTsKKwogLyoKICAqIEFueSBiZWhhdmlvdXIgd2hpY2ggcmVzdWx0cyBpbiBjaGFuZ2VzIHRvIHRoZSB2bWEtPnZtX2ZsYWdzIG5lZWRzIHRvCiAgKiB0YWtlIG1tYXBfc2VtIGZvciB3cml0aW5nLiBPdGhlcnMsIHdoaWNoIHNpbXBseSB0cmF2ZXJzZSB2bWFzLCBuZWVkCkBAIC00MSw2ICs0OCw4IEBAIHN0YXRpYyBpbnQgbWFkdmlzZV9uZWVkX21tYXBfd3JpdGUoaW50IGJlaGF2aW9yKQogCWNhc2UgTUFEVl9SRU1PVkU6CiAJY2FzZSBNQURWX1dJTExORUVEOgogCWNhc2UgTUFEVl9ET05UTkVFRDoKKwljYXNlIE1BRFZfQ09MRDoKKwljYXNlIE1BRFZfUEFHRU9VVDoKIAljYXNlIE1BRFZfRlJFRToKIAkJcmV0dXJuIDA7CiAJZGVmYXVsdDoKQEAgLTEwNiwyOCArMTE1LDE0IEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfYmVoYXZpb3Ioc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJY2FzZSBNQURWX01FUkdFQUJMRToKIAljYXNlIE1BRFZfVU5NRVJHRUFCTEU6CiAJCWVycm9yID0ga3NtX21hZHZpc2Uodm1hLCBzdGFydCwgZW5kLCBiZWhhdmlvciwgJm5ld19mbGFncyk7Ci0JCWlmIChlcnJvcikgewotCQkJLyoKLQkJCSAqIG1hZHZpc2UoKSByZXR1cm5zIEVBR0FJTiBpZiBrZXJuZWwgcmVzb3VyY2VzLCBzdWNoIGFzCi0JCQkgKiBzbGFiLCBhcmUgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuCi0JCQkgKi8KLQkJCWlmIChlcnJvciA9PSAtRU5PTUVNKQotCQkJCWVycm9yID0gLUVBR0FJTjsKLQkJCWdvdG8gb3V0OwotCQl9CisJCWlmIChlcnJvcikKKwkJCWdvdG8gb3V0X2NvbnZlcnRfZXJybm87CiAJCWJyZWFrOwogCWNhc2UgTUFEVl9IVUdFUEFHRToKIAljYXNlIE1BRFZfTk9IVUdFUEFHRToKIAkJZXJyb3IgPSBodWdlcGFnZV9tYWR2aXNlKHZtYSwgJm5ld19mbGFncywgYmVoYXZpb3IpOwotCQlpZiAoZXJyb3IpIHsKLQkJCS8qCi0JCQkgKiBtYWR2aXNlKCkgcmV0dXJucyBFQUdBSU4gaWYga2VybmVsIHJlc291cmNlcywgc3VjaCBhcwotCQkJICogc2xhYiwgYXJlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlLgotCQkJICovCi0JCQlpZiAoZXJyb3IgPT0gLUVOT01FTSkKLQkJCQllcnJvciA9IC1FQUdBSU47Ci0JCQlnb3RvIG91dDsKLQkJfQorCQlpZiAoZXJyb3IpCisJCQlnb3RvIG91dF9jb252ZXJ0X2Vycm5vOwogCQlicmVhazsKIAl9CiAKQEAgLTE1MywxNSArMTQ4LDggQEAgc3RhdGljIGxvbmcgbWFkdmlzZV9iZWhhdmlvcihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCWdvdG8gb3V0OwogCQl9CiAJCWVycm9yID0gX19zcGxpdF92bWEobW0sIHZtYSwgc3RhcnQsIDEpOwotCQlpZiAoZXJyb3IpIHsKLQkJCS8qCi0JCQkgKiBtYWR2aXNlKCkgcmV0dXJucyBFQUdBSU4gaWYga2VybmVsIHJlc291cmNlcywgc3VjaCBhcwotCQkJICogc2xhYiwgYXJlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlLgotCQkJICovCi0JCQlpZiAoZXJyb3IgPT0gLUVOT01FTSkKLQkJCQllcnJvciA9IC1FQUdBSU47Ci0JCQlnb3RvIG91dDsKLQkJfQorCQlpZiAoZXJyb3IpCisJCQlnb3RvIG91dF9jb252ZXJ0X2Vycm5vOwogCX0KIAogCWlmIChlbmQgIT0gdm1hLT52bV9lbmQpIHsKQEAgLTE3MCwxNSArMTU4LDggQEAgc3RhdGljIGxvbmcgbWFkdmlzZV9iZWhhdmlvcihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCWdvdG8gb3V0OwogCQl9CiAJCWVycm9yID0gX19zcGxpdF92bWEobW0sIHZtYSwgZW5kLCAwKTsKLQkJaWYgKGVycm9yKSB7Ci0JCQkvKgotCQkJICogbWFkdmlzZSgpIHJldHVybnMgRUFHQUlOIGlmIGtlcm5lbCByZXNvdXJjZXMsIHN1Y2ggYXMKLQkJCSAqIHNsYWIsIGFyZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZS4KLQkJCSAqLwotCQkJaWYgKGVycm9yID09IC1FTk9NRU0pCi0JCQkJZXJyb3IgPSAtRUFHQUlOOwotCQkJZ290byBvdXQ7Ci0JCX0KKwkJaWYgKGVycm9yKQorCQkJZ290byBvdXRfY29udmVydF9lcnJubzsKIAl9CiAKIHN1Y2Nlc3M6CkBAIC0xODYsNiArMTY3LDE0IEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfYmVoYXZpb3Ioc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJICogdm1fZmxhZ3MgaXMgcHJvdGVjdGVkIGJ5IHRoZSBtbWFwX3NlbSBoZWxkIGluIHdyaXRlIG1vZGUuCiAJICovCiAJdm1hLT52bV9mbGFncyA9IG5ld19mbGFnczsKKworb3V0X2NvbnZlcnRfZXJybm86CisJLyoKKwkgKiBtYWR2aXNlKCkgcmV0dXJucyBFQUdBSU4gaWYga2VybmVsIHJlc291cmNlcywgc3VjaCBhcworCSAqIHNsYWIsIGFyZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZS4KKwkgKi8KKwlpZiAoZXJyb3IgPT0gLUVOT01FTSkKKwkJZXJyb3IgPSAtRUFHQUlOOwogb3V0OgogCXJldHVybiBlcnJvcjsKIH0KQEAgLTIyNiwxOSArMjE1LDkgQEAgc3RhdGljIGludCBzd2FwaW5fd2Fsa19wbWRfZW50cnkocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBzdGFydCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZm9yY2Vfc3dhcGluX3JlYWRhaGVhZChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCi17Ci0Jc3RydWN0IG1tX3dhbGsgd2FsayA9IHsKLQkJLm1tID0gdm1hLT52bV9tbSwKLQkJLnBtZF9lbnRyeSA9IHN3YXBpbl93YWxrX3BtZF9lbnRyeSwKLQkJLnByaXZhdGUgPSB2bWEsCi0JfTsKLQotCXdhbGtfcGFnZV9yYW5nZShzdGFydCwgZW5kLCAmd2Fsayk7Ci0KLQlscnVfYWRkX2RyYWluKCk7CS8qIFB1c2ggYW55IG5ldyBwYWdlcyBvbnRvIHRoZSBMUlUgbm93ICovCi19CitzdGF0aWMgY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzIHN3YXBpbl93YWxrX29wcyA9IHsKKwkucG1kX2VudHJ5CQk9IHN3YXBpbl93YWxrX3BtZF9lbnRyeSwKK307CiAKIHN0YXRpYyB2b2lkIGZvcmNlX3NobV9zd2FwaW5fcmVhZGFoZWFkKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKQEAgLTI4MSw3ICsyNjAsOCBAQCBzdGF0aWMgbG9uZyBtYWR2aXNlX3dpbGxuZWVkKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCSpwcmV2ID0gdm1hOwogI2lmZGVmIENPTkZJR19TV0FQCiAJaWYgKCFmaWxlKSB7Ci0JCWZvcmNlX3N3YXBpbl9yZWFkYWhlYWQodm1hLCBzdGFydCwgZW5kKTsKKwkJd2Fsa19wYWdlX3JhbmdlKHZtYS0+dm1fbW0sIHN0YXJ0LCBlbmQsICZzd2FwaW5fd2Fsa19vcHMsIHZtYSk7CisJCWxydV9hZGRfZHJhaW4oKTsgLyogUHVzaCBhbnkgbmV3IHBhZ2VzIG9udG8gdGhlIExSVSBub3cgKi8KIAkJcmV0dXJuIDA7CiAJfQogCkBAIC0zMTcsNiArMjk3LDI1NCBAQCBzdGF0aWMgbG9uZyBtYWR2aXNlX3dpbGxuZWVkKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZShwbWRfdCAqcG1kLAorCQkJCXVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCisJCQkJc3RydWN0IG1tX3dhbGsgKndhbGspCit7CisJc3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlICpwcml2YXRlID0gd2Fsay0+cHJpdmF0ZTsKKwlzdHJ1Y3QgbW11X2dhdGhlciAqdGxiID0gcHJpdmF0ZS0+dGxiOworCWJvb2wgcGFnZW91dCA9IHByaXZhdGUtPnBhZ2VvdXQ7CisJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSB0bGItPm1tOworCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gd2Fsay0+dm1hOworCXB0ZV90ICpvcmlnX3B0ZSwgKnB0ZSwgcHRlbnQ7CisJc3BpbmxvY2tfdCAqcHRsOworCXN0cnVjdCBwYWdlICpwYWdlID0gTlVMTDsKKwlMSVNUX0hFQUQocGFnZV9saXN0KTsKKworCWlmIChmYXRhbF9zaWduYWxfcGVuZGluZyhjdXJyZW50KSkKKwkJcmV0dXJuIC1FSU5UUjsKKworI2lmZGVmIENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRQorCWlmIChwbWRfdHJhbnNfaHVnZSgqcG1kKSkgeworCQlwbWRfdCBvcmlnX3BtZDsKKwkJdW5zaWduZWQgbG9uZyBuZXh0ID0gcG1kX2FkZHJfZW5kKGFkZHIsIGVuZCk7CisKKwkJdGxiX2NoYW5nZV9wYWdlX3NpemUodGxiLCBIUEFHRV9QTURfU0laRSk7CisJCXB0bCA9IHBtZF90cmFuc19odWdlX2xvY2socG1kLCB2bWEpOworCQlpZiAoIXB0bCkKKwkJCXJldHVybiAwOworCisJCW9yaWdfcG1kID0gKnBtZDsKKwkJaWYgKGlzX2h1Z2VfemVyb19wbWQob3JpZ19wbWQpKQorCQkJZ290byBodWdlX3VubG9jazsKKworCQlpZiAodW5saWtlbHkoIXBtZF9wcmVzZW50KG9yaWdfcG1kKSkpIHsKKwkJCVZNX0JVR19PTih0aHBfbWlncmF0aW9uX3N1cHBvcnRlZCgpICYmCisJCQkJCSFpc19wbWRfbWlncmF0aW9uX2VudHJ5KG9yaWdfcG1kKSk7CisJCQlnb3RvIGh1Z2VfdW5sb2NrOworCQl9CisKKwkJcGFnZSA9IHBtZF9wYWdlKG9yaWdfcG1kKTsKKwkJaWYgKG5leHQgLSBhZGRyICE9IEhQQUdFX1BNRF9TSVpFKSB7CisJCQlpbnQgZXJyOworCisJCQlpZiAocGFnZV9tYXBjb3VudChwYWdlKSAhPSAxKQorCQkJCWdvdG8gaHVnZV91bmxvY2s7CisKKwkJCWdldF9wYWdlKHBhZ2UpOworCQkJc3Bpbl91bmxvY2socHRsKTsKKwkJCWxvY2tfcGFnZShwYWdlKTsKKwkJCWVyciA9IHNwbGl0X2h1Z2VfcGFnZShwYWdlKTsKKwkJCXVubG9ja19wYWdlKHBhZ2UpOworCQkJcHV0X3BhZ2UocGFnZSk7CisJCQlpZiAoIWVycikKKwkJCQlnb3RvIHJlZ3VsYXJfcGFnZTsKKwkJCXJldHVybiAwOworCQl9CisKKwkJaWYgKHBtZF95b3VuZyhvcmlnX3BtZCkpIHsKKwkJCXBtZHBfaW52YWxpZGF0ZSh2bWEsIGFkZHIsIHBtZCk7CisJCQlvcmlnX3BtZCA9IHBtZF9ta29sZChvcmlnX3BtZCk7CisKKwkJCXNldF9wbWRfYXQobW0sIGFkZHIsIHBtZCwgb3JpZ19wbWQpOworCQkJdGxiX3JlbW92ZV9wbWRfdGxiX2VudHJ5KHRsYiwgcG1kLCBhZGRyKTsKKwkJfQorCisJCUNsZWFyUGFnZVJlZmVyZW5jZWQocGFnZSk7CisJCXRlc3RfYW5kX2NsZWFyX3BhZ2VfeW91bmcocGFnZSk7CisJCWlmIChwYWdlb3V0KSB7CisJCQlpZiAoIWlzb2xhdGVfbHJ1X3BhZ2UocGFnZSkpCisJCQkJbGlzdF9hZGQoJnBhZ2UtPmxydSwgJnBhZ2VfbGlzdCk7CisJCX0gZWxzZQorCQkJZGVhY3RpdmF0ZV9wYWdlKHBhZ2UpOworaHVnZV91bmxvY2s6CisJCXNwaW5fdW5sb2NrKHB0bCk7CisJCWlmIChwYWdlb3V0KQorCQkJcmVjbGFpbV9wYWdlcygmcGFnZV9saXN0KTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKHBtZF90cmFuc191bnN0YWJsZShwbWQpKQorCQlyZXR1cm4gMDsKK3JlZ3VsYXJfcGFnZToKKyNlbmRpZgorCXRsYl9jaGFuZ2VfcGFnZV9zaXplKHRsYiwgUEFHRV9TSVpFKTsKKwlvcmlnX3B0ZSA9IHB0ZSA9IHB0ZV9vZmZzZXRfbWFwX2xvY2sodm1hLT52bV9tbSwgcG1kLCBhZGRyLCAmcHRsKTsKKwlmbHVzaF90bGJfYmF0Y2hlZF9wZW5kaW5nKG1tKTsKKwlhcmNoX2VudGVyX2xhenlfbW11X21vZGUoKTsKKwlmb3IgKDsgYWRkciA8IGVuZDsgcHRlKyssIGFkZHIgKz0gUEFHRV9TSVpFKSB7CisJCXB0ZW50ID0gKnB0ZTsKKworCQlpZiAocHRlX25vbmUocHRlbnQpKQorCQkJY29udGludWU7CisKKwkJaWYgKCFwdGVfcHJlc2VudChwdGVudCkpCisJCQljb250aW51ZTsKKworCQlwYWdlID0gdm1fbm9ybWFsX3BhZ2Uodm1hLCBhZGRyLCBwdGVudCk7CisJCWlmICghcGFnZSkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIENyZWF0aW5nIGEgVEhQIHBhZ2UgaXMgZXhwZW5zaXZlIHNvIHNwbGl0IGl0IG9ubHkgaWYgd2UKKwkJICogYXJlIHN1cmUgaXQncyB3b3J0aC4gU3BsaXQgaXQgaWYgd2UgYXJlIG9ubHkgb3duZXIuCisJCSAqLworCQlpZiAoUGFnZVRyYW5zQ29tcG91bmQocGFnZSkpIHsKKwkJCWlmIChwYWdlX21hcGNvdW50KHBhZ2UpICE9IDEpCisJCQkJYnJlYWs7CisJCQlnZXRfcGFnZShwYWdlKTsKKwkJCWlmICghdHJ5bG9ja19wYWdlKHBhZ2UpKSB7CisJCQkJcHV0X3BhZ2UocGFnZSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlwdGVfdW5tYXBfdW5sb2NrKG9yaWdfcHRlLCBwdGwpOworCQkJaWYgKHNwbGl0X2h1Z2VfcGFnZShwYWdlKSkgeworCQkJCXVubG9ja19wYWdlKHBhZ2UpOworCQkJCXB1dF9wYWdlKHBhZ2UpOworCQkJCXB0ZV9vZmZzZXRfbWFwX2xvY2sobW0sIHBtZCwgYWRkciwgJnB0bCk7CisJCQkJYnJlYWs7CisJCQl9CisJCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJCXB1dF9wYWdlKHBhZ2UpOworCQkJcHRlID0gcHRlX29mZnNldF9tYXBfbG9jayhtbSwgcG1kLCBhZGRyLCAmcHRsKTsKKwkJCXB0ZS0tOworCQkJYWRkciAtPSBQQUdFX1NJWkU7CisJCQljb250aW51ZTsKKwkJfQorCisJCVZNX0JVR19PTl9QQUdFKFBhZ2VUcmFuc0NvbXBvdW5kKHBhZ2UpLCBwYWdlKTsKKworCQlpZiAocHRlX3lvdW5nKHB0ZW50KSkgeworCQkJcHRlbnQgPSBwdGVwX2dldF9hbmRfY2xlYXJfZnVsbChtbSwgYWRkciwgcHRlLAorCQkJCQkJCXRsYi0+ZnVsbG1tKTsKKwkJCXB0ZW50ID0gcHRlX21rb2xkKHB0ZW50KTsKKwkJCXNldF9wdGVfYXQobW0sIGFkZHIsIHB0ZSwgcHRlbnQpOworCQkJdGxiX3JlbW92ZV90bGJfZW50cnkodGxiLCBwdGUsIGFkZHIpOworCQl9CisKKwkJLyoKKwkJICogV2UgYXJlIGRlYWN0aXZhdGluZyBhIHBhZ2UgZm9yIGFjY2VsZXJhdGluZyByZWNsYWltaW5nLgorCQkgKiBWTSBjb3VsZG4ndCByZWNsYWltIHRoZSBwYWdlIHVubGVzcyB3ZSBjbGVhciBQR195b3VuZy4KKwkJICogQXMgYSBzaWRlIGVmZmVjdCwgaXQgbWFrZXMgY29uZnVzZSBpZGxlLXBhZ2UgdHJhY2tpbmcKKwkJICogYmVjYXVzZSB0aGV5IHdpbGwgbWlzcyByZWNlbnQgcmVmZXJlbmNlZCBoaXN0b3J5LgorCQkgKi8KKwkJQ2xlYXJQYWdlUmVmZXJlbmNlZChwYWdlKTsKKwkJdGVzdF9hbmRfY2xlYXJfcGFnZV95b3VuZyhwYWdlKTsKKwkJaWYgKHBhZ2VvdXQpIHsKKwkJCWlmICghaXNvbGF0ZV9scnVfcGFnZShwYWdlKSkKKwkJCQlsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmcGFnZV9saXN0KTsKKwkJfSBlbHNlCisJCQlkZWFjdGl2YXRlX3BhZ2UocGFnZSk7CisJfQorCisJYXJjaF9sZWF2ZV9sYXp5X21tdV9tb2RlKCk7CisJcHRlX3VubWFwX3VubG9jayhvcmlnX3B0ZSwgcHRsKTsKKwlpZiAocGFnZW91dCkKKwkJcmVjbGFpbV9wYWdlcygmcGFnZV9saXN0KTsKKwljb25kX3Jlc2NoZWQoKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzIGNvbGRfd2Fsa19vcHMgPSB7CisJLnBtZF9lbnRyeSA9IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZSwKK307CisKK3N0YXRpYyB2b2lkIG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsCisJCQkgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAorCQkJICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXN0cnVjdCBtYWR2aXNlX3dhbGtfcHJpdmF0ZSB3YWxrX3ByaXZhdGUgPSB7CisJCS5wYWdlb3V0ID0gZmFsc2UsCisJCS50bGIgPSB0bGIsCisJfTsKKworCXRsYl9zdGFydF92bWEodGxiLCB2bWEpOworCXdhbGtfcGFnZV9yYW5nZSh2bWEtPnZtX21tLCBhZGRyLCBlbmQsICZjb2xkX3dhbGtfb3BzLCAmd2Fsa19wcml2YXRlKTsKKwl0bGJfZW5kX3ZtYSh0bGIsIHZtYSk7Cit9CisKK3N0YXRpYyBsb25nIG1hZHZpc2VfY29sZChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKKwkJCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKnByZXYsCisJCQl1bnNpZ25lZCBsb25nIHN0YXJ0X2FkZHIsIHVuc2lnbmVkIGxvbmcgZW5kX2FkZHIpCit7CisJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSB2bWEtPnZtX21tOworCXN0cnVjdCBtbXVfZ2F0aGVyIHRsYjsKKworCSpwcmV2ID0gdm1hOworCWlmICghY2FuX21hZHZfbHJ1X3ZtYSh2bWEpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWxydV9hZGRfZHJhaW4oKTsKKwl0bGJfZ2F0aGVyX21tdSgmdGxiLCBtbSwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOworCW1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKCZ0bGIsIHZtYSwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOworCXRsYl9maW5pc2hfbW11KCZ0bGIsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLAorCQkJICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKKwkJCSAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwlzdHJ1Y3QgbWFkdmlzZV93YWxrX3ByaXZhdGUgd2Fsa19wcml2YXRlID0geworCQkucGFnZW91dCA9IHRydWUsCisJCS50bGIgPSB0bGIsCisJfTsKKworCXRsYl9zdGFydF92bWEodGxiLCB2bWEpOworCXdhbGtfcGFnZV9yYW5nZSh2bWEtPnZtX21tLCBhZGRyLCBlbmQsICZjb2xkX3dhbGtfb3BzLCAmd2Fsa19wcml2YXRlKTsKKwl0bGJfZW5kX3ZtYSh0bGIsIHZtYSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjYW5fZG9fcGFnZW91dChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlpZiAodm1hX2lzX2Fub255bW91cyh2bWEpKQorCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoIXZtYS0+dm1fZmlsZSkKKwkJcmV0dXJuIGZhbHNlOworCS8qCisJICogcGFnaW5nIG91dCBwYWdlY2FjaGUgb25seSBmb3Igbm9uLWFub255bW91cyBtYXBwaW5ncyB0aGF0IGNvcnJlc3BvbmQKKwkgKiB0byB0aGUgZmlsZXMgdGhlIGNhbGxpbmcgcHJvY2VzcyBjb3VsZCAoaWYgdHJpZWQpIG9wZW4gZm9yIHdyaXRpbmc7CisJICogb3RoZXJ3aXNlIHdlJ2QgYmUgaW5jbHVkaW5nIHNoYXJlZCBub24tZXhjbHVzaXZlIG1hcHBpbmdzLCB3aGljaAorCSAqIG9wZW5zIGEgc2lkZSBjaGFubmVsLgorCSAqLworCXJldHVybiBpbm9kZV9vd25lcl9vcl9jYXBhYmxlKGZpbGVfaW5vZGUodm1hLT52bV9maWxlKSkgfHwKKwkJaW5vZGVfcGVybWlzc2lvbihmaWxlX2lub2RlKHZtYS0+dm1fZmlsZSksIE1BWV9XUklURSkgPT0gMDsKK30KKworc3RhdGljIGxvbmcgbWFkdmlzZV9wYWdlb3V0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAorCQkJc3RydWN0IHZtX2FyZWFfc3RydWN0ICoqcHJldiwKKwkJCXVuc2lnbmVkIGxvbmcgc3RhcnRfYWRkciwgdW5zaWduZWQgbG9uZyBlbmRfYWRkcikKK3sKKwlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHZtYS0+dm1fbW07CisJc3RydWN0IG1tdV9nYXRoZXIgdGxiOworCisJKnByZXYgPSB2bWE7CisJaWYgKCFjYW5fbWFkdl9scnVfdm1hKHZtYSkpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFjYW5fZG9fcGFnZW91dCh2bWEpKQorCQlyZXR1cm4gMDsKKworCWxydV9hZGRfZHJhaW4oKTsKKwl0bGJfZ2F0aGVyX21tdSgmdGxiLCBtbSwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOworCW1hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlKCZ0bGIsIHZtYSwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOworCXRsYl9maW5pc2hfbW11KCZ0bGIsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IG1hZHZpc2VfZnJlZV9wdGVfcmFuZ2UocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQkJCXVuc2lnbmVkIGxvbmcgZW5kLCBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKIApAQCAtNDUwLDIwICs2NzgsOSBAQCBzdGF0aWMgaW50IG1hZHZpc2VfZnJlZV9wdGVfcmFuZ2UocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBtYWR2aXNlX2ZyZWVfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLAotCQkJICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJCSAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCkKLXsKLQlzdHJ1Y3QgbW1fd2FsayBmcmVlX3dhbGsgPSB7Ci0JCS5wbWRfZW50cnkgPSBtYWR2aXNlX2ZyZWVfcHRlX3JhbmdlLAotCQkubW0gPSB2bWEtPnZtX21tLAotCQkucHJpdmF0ZSA9IHRsYiwKLQl9OwotCi0JdGxiX3N0YXJ0X3ZtYSh0bGIsIHZtYSk7Ci0Jd2Fsa19wYWdlX3JhbmdlKGFkZHIsIGVuZCwgJmZyZWVfd2Fsayk7Ci0JdGxiX2VuZF92bWEodGxiLCB2bWEpOwotfQorc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBtYWR2aXNlX2ZyZWVfd2Fsa19vcHMgPSB7CisJLnBtZF9lbnRyeQkJPSBtYWR2aXNlX2ZyZWVfcHRlX3JhbmdlLAorfTsKIAogc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfc2luZ2xlX3ZtYShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCXVuc2lnbmVkIGxvbmcgc3RhcnRfYWRkciwgdW5zaWduZWQgbG9uZyBlbmRfYWRkcikKQEAgLTQ5MCw3ICs3MDcsMTAgQEAgc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfc2luZ2xlX3ZtYShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAl1cGRhdGVfaGl3YXRlcl9yc3MobW0pOwogCiAJbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoJnJhbmdlKTsKLQltYWR2aXNlX2ZyZWVfcGFnZV9yYW5nZSgmdGxiLCB2bWEsIHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOworCXRsYl9zdGFydF92bWEoJnRsYiwgdm1hKTsKKwl3YWxrX3BhZ2VfcmFuZ2Uodm1hLT52bV9tbSwgcmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCwKKwkJCSZtYWR2aXNlX2ZyZWVfd2Fsa19vcHMsICZ0bGIpOworCXRsYl9lbmRfdm1hKCZ0bGIsIHZtYSk7CiAJbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKCZyYW5nZSk7CiAJdGxiX2ZpbmlzaF9tbXUoJnRsYiwgcmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7CiAKQEAgLTUyOSw3ICs3NDksNyBAQCBzdGF0aWMgbG9uZyBtYWR2aXNlX2RvbnRuZWVkX2ZyZWUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkJICBpbnQgYmVoYXZpb3IpCiB7CiAJKnByZXYgPSB2bWE7Ci0JaWYgKCFjYW5fbWFkdl9kb250bmVlZF92bWEodm1hKSkKKwlpZiAoIWNhbl9tYWR2X2xydV92bWEodm1hKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoIXVzZXJmYXVsdGZkX3JlbW92ZSh2bWEsIHN0YXJ0LCBlbmQpKSB7CkBAIC01NTEsNyArNzcxLDcgQEAgc3RhdGljIGxvbmcgbWFkdmlzZV9kb250bmVlZF9mcmVlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJICovCiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJfQotCQlpZiAoIWNhbl9tYWR2X2RvbnRuZWVkX3ZtYSh2bWEpKQorCQlpZiAoIWNhbl9tYWR2X2xydV92bWEodm1hKSkKIAkJCXJldHVybiAtRUlOVkFMOwogCQlpZiAoZW5kID4gdm1hLT52bV9lbmQpIHsKIAkJCS8qCkBAIC03MDUsNiArOTI1LDEwIEBAIG1hZHZpc2Vfdm1hKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKipwcmV2LAogCQlyZXR1cm4gbWFkdmlzZV9yZW1vdmUodm1hLCBwcmV2LCBzdGFydCwgZW5kKTsKIAljYXNlIE1BRFZfV0lMTE5FRUQ6CiAJCXJldHVybiBtYWR2aXNlX3dpbGxuZWVkKHZtYSwgcHJldiwgc3RhcnQsIGVuZCk7CisJY2FzZSBNQURWX0NPTEQ6CisJCXJldHVybiBtYWR2aXNlX2NvbGQodm1hLCBwcmV2LCBzdGFydCwgZW5kKTsKKwljYXNlIE1BRFZfUEFHRU9VVDoKKwkJcmV0dXJuIG1hZHZpc2VfcGFnZW91dCh2bWEsIHByZXYsIHN0YXJ0LCBlbmQpOwogCWNhc2UgTUFEVl9GUkVFOgogCWNhc2UgTUFEVl9ET05UTkVFRDoKIAkJcmV0dXJuIG1hZHZpc2VfZG9udG5lZWRfZnJlZSh2bWEsIHByZXYsIHN0YXJ0LCBlbmQsIGJlaGF2aW9yKTsKQEAgLTcyNiw2ICs5NTAsOCBAQCBtYWR2aXNlX2JlaGF2aW9yX3ZhbGlkKGludCBiZWhhdmlvcikKIAljYXNlIE1BRFZfV0lMTE5FRUQ6CiAJY2FzZSBNQURWX0RPTlRORUVEOgogCWNhc2UgTUFEVl9GUkVFOgorCWNhc2UgTUFEVl9DT0xEOgorCWNhc2UgTUFEVl9QQUdFT1VUOgogI2lmZGVmIENPTkZJR19LU00KIAljYXNlIE1BRFZfTUVSR0VBQkxFOgogCWNhc2UgTUFEVl9VTk1FUkdFQUJMRToKQEAgLTgyMCw2ICsxMDQ2LDggQEAgU1lTQ0FMTF9ERUZJTkUzKG1hZHZpc2UsIHVuc2lnbmVkIGxvbmcsIHN0YXJ0LCBzaXplX3QsIGxlbl9pbiwgaW50LCBiZWhhdmlvcikKIAlzaXplX3QgbGVuOwogCXN0cnVjdCBibGtfcGx1ZyBwbHVnOwogCisJc3RhcnQgPSB1bnRhZ2dlZF9hZGRyKHN0YXJ0KTsKKwogCWlmICghbWFkdmlzZV9iZWhhdmlvcl92YWxpZChiZWhhdmlvcikpCiAJCXJldHVybiBlcnJvcjsKIApkaWZmIC0tZ2l0IGEvbW0vbWVtY29udHJvbC5jIGIvbW0vbWVtY29udHJvbC5jCmluZGV4IDU5N2Q1ODEuLmMzMTNjNDkgMTAwNjQ0Ci0tLSBhL21tL21lbWNvbnRyb2wuYworKysgYi9tbS9tZW1jb250cm9sLmMKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wYWdlX2NvdW50ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tZW1jb250cm9sLmg+CiAjaW5jbHVkZSA8bGludXgvY2dyb3VwLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wYWdld2Fsay5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkL21tLmg+CiAjaW5jbHVkZSA8bGludXgvc2htZW1fZnMuaD4KICNpbmNsdWRlIDxsaW51eC9odWdldGxiLmg+CkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8bGludXgvbG9ja2RlcC5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC90cmFjZWhvb2suaD4KKyNpbmNsdWRlIDxsaW51eC9wc2kuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfYnVmLmg+CiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKICNpbmNsdWRlIDxuZXQvc29jay5oPgpAQCAtMzE3LDYgKzMxOCw3IEBAIERFRklORV9TVEFUSUNfS0VZX0ZBTFNFKG1lbWNnX2ttZW1fZW5hYmxlZF9rZXkpOwogRVhQT1JUX1NZTUJPTChtZW1jZ19rbWVtX2VuYWJsZWRfa2V5KTsKIAogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKm1lbWNnX2ttZW1fY2FjaGVfd3E7CisjZW5kaWYKIAogc3RhdGljIGludCBtZW1jZ19zaHJpbmtlcl9tYXBfc2l6ZTsKIHN0YXRpYyBERUZJTkVfTVVURVgobWVtY2dfc2hyaW5rZXJfbWFwX211dGV4KTsKQEAgLTQ0MCwxNCArNDQyLDYgQEAgdm9pZCBtZW1jZ19zZXRfc2hyaW5rZXJfYml0KHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZywgaW50IG5pZCwgaW50IHNocmlua2VyX2lkKQogCX0KIH0KIAotI2Vsc2UgLyogQ09ORklHX01FTUNHX0tNRU0gKi8KLXN0YXRpYyBpbnQgbWVtY2dfYWxsb2Nfc2hyaW5rZXJfbWFwcyhzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2cpCi17Ci0JcmV0dXJuIDA7Ci19Ci1zdGF0aWMgdm9pZCBtZW1jZ19mcmVlX3Nocmlua2VyX21hcHMoc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnKSB7IH0KLSNlbmRpZiAvKiBDT05GSUdfTUVNQ0dfS01FTSAqLwotCiAvKioKICAqIG1lbV9jZ3JvdXBfY3NzX2Zyb21fcGFnZSAtIGNzcyBvZiB0aGUgbWVtY2cgYXNzb2NpYXRlZCB3aXRoIGEgcGFnZQogICogQHBhZ2U6IHBhZ2Ugb2YgaW50ZXJlc3QKQEAgLTIyNzAsMjEgKzIyNjQsMjIgQEAgc3RhdGljIHZvaWQgZHJhaW5fYWxsX3N0b2NrKHN0cnVjdCBtZW1fY2dyb3VwICpyb290X21lbWNnKQogCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CiAJCXN0cnVjdCBtZW1jZ19zdG9ja19wY3AgKnN0b2NrID0gJnBlcl9jcHUobWVtY2dfc3RvY2ssIGNwdSk7CiAJCXN0cnVjdCBtZW1fY2dyb3VwICptZW1jZzsKKwkJYm9vbCBmbHVzaCA9IGZhbHNlOwogCisJCXJjdV9yZWFkX2xvY2soKTsKIAkJbWVtY2cgPSBzdG9jay0+Y2FjaGVkOwotCQlpZiAoIW1lbWNnIHx8ICFzdG9jay0+bnJfcGFnZXMgfHwgIWNzc190cnlnZXQoJm1lbWNnLT5jc3MpKQotCQkJY29udGludWU7Ci0JCWlmICghbWVtX2Nncm91cF9pc19kZXNjZW5kYW50KG1lbWNnLCByb290X21lbWNnKSkgewotCQkJY3NzX3B1dCgmbWVtY2ctPmNzcyk7Ci0JCQljb250aW51ZTsKLQkJfQotCQlpZiAoIXRlc3RfYW5kX3NldF9iaXQoRkxVU0hJTkdfQ0FDSEVEX0NIQVJHRSwgJnN0b2NrLT5mbGFncykpIHsKKwkJaWYgKG1lbWNnICYmIHN0b2NrLT5ucl9wYWdlcyAmJgorCQkgICAgbWVtX2Nncm91cF9pc19kZXNjZW5kYW50KG1lbWNnLCByb290X21lbWNnKSkKKwkJCWZsdXNoID0gdHJ1ZTsKKwkJcmN1X3JlYWRfdW5sb2NrKCk7CisKKwkJaWYgKGZsdXNoICYmCisJCSAgICAhdGVzdF9hbmRfc2V0X2JpdChGTFVTSElOR19DQUNIRURfQ0hBUkdFLCAmc3RvY2stPmZsYWdzKSkgewogCQkJaWYgKGNwdSA9PSBjdXJjcHUpCiAJCQkJZHJhaW5fbG9jYWxfc3RvY2soJnN0b2NrLT53b3JrKTsKIAkJCWVsc2UKIAkJCQlzY2hlZHVsZV93b3JrX29uKGNwdSwgJnN0b2NrLT53b3JrKTsKIAkJfQotCQljc3NfcHV0KCZtZW1jZy0+Y3NzKTsKIAl9CiAJcHV0X2NwdSgpOwogCW11dGV4X3VubG9jaygmcGVyY3B1X2NoYXJnZV9tdXRleCk7CkBAIC0yMzU5LDExICsyMzU0LDY3IEBAIHN0YXRpYyB2b2lkIGhpZ2hfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIH0KIAogLyoKKyAqIENsYW1wIHRoZSBtYXhpbXVtIHNsZWVwIHRpbWUgcGVyIGFsbG9jYXRpb24gYmF0Y2ggdG8gMiBzZWNvbmRzLiBUaGlzIGlzCisgKiBlbm91Z2ggdG8gc3RpbGwgY2F1c2UgYSBzaWduaWZpY2FudCBzbG93ZG93biBpbiBtb3N0IGNhc2VzLCB3aGlsZSBzdGlsbAorICogYWxsb3dpbmcgZGlhZ25vc3RpY3MgYW5kIHRyYWNpbmcgdG8gcHJvY2VlZCB3aXRob3V0IGJlY29taW5nIHN0dWNrLgorICovCisjZGVmaW5lIE1FTUNHX01BWF9ISUdIX0RFTEFZX0pJRkZJRVMgKDJVTCpIWikKKworLyoKKyAqIFdoZW4gY2FsY3VsYXRpbmcgdGhlIGRlbGF5LCB3ZSB1c2UgdGhlc2UgZWl0aGVyIHNpZGUgb2YgdGhlIGV4cG9uZW50aWF0aW9uIHRvCisgKiBtYWludGFpbiBwcmVjaXNpb24gYW5kIHNjYWxlIHRvIGEgcmVhc29uYWJsZSBudW1iZXIgb2YgamlmZmllcyAoc2VlIHRoZSB0YWJsZQorICogYmVsb3cuCisgKgorICogLSBNRU1DR19ERUxBWV9QUkVDSVNJT05fU0hJRlQ6IEV4dHJhIHByZWNpc2lvbiBiaXRzIHdoaWxlIHRyYW5zbGF0aW5nIHRoZQorICogICBvdmVyYWdlIHJhdGlvIHRvIGEgZGVsYXkuCisgKiAtIE1FTUNHX0RFTEFZX1NDQUxJTkdfU0hJRlQ6IFRoZSBudW1iZXIgb2YgYml0cyB0byBzY2FsZSBkb3duIGRvd24gdGhlCisgKiAgIHByb3Bvc2VkIHBlbmFsdHkgaW4gb3JkZXIgdG8gcmVkdWNlIHRvIGEgcmVhc29uYWJsZSBudW1iZXIgb2YgamlmZmllcywgYW5kCisgKiAgIHRvIHByb2R1Y2UgYSByZWFzb25hYmxlIGRlbGF5IGN1cnZlLgorICoKKyAqIE1FTUNHX0RFTEFZX1NDQUxJTkdfU0hJRlQganVzdCBoYXBwZW5zIHRvIGJlIGEgbnVtYmVyIHRoYXQgcHJvZHVjZXMgYQorICogcmVhc29uYWJsZSBkZWxheSBjdXJ2ZSBjb21wYXJlZCB0byBwcmVjaXNpb24tYWRqdXN0ZWQgb3ZlcmFnZSwgbm90CisgKiBwZW5hbGlzaW5nIGhlYXZpbHkgYXQgZmlyc3QsIGJ1dCBzdGlsbCBtYWtpbmcgc3VyZSB0aGF0IGdyb3d0aCBiZXlvbmQgdGhlCisgKiBsaW1pdCBwZW5hbGlzZXMgbWlzYmVoYXZpb3VyIGNncm91cHMgYnkgc2xvd2luZyB0aGVtIGRvd24gZXhwb25lbnRpYWxseS4gRm9yCisgKiBleGFtcGxlLCB3aXRoIGEgaGlnaCBvZiAxMDAgbWVnYWJ5dGVzOgorICoKKyAqICArLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgfCB1c2FnZSB8IHRpbWUgdG8gYWxsb2NhdGUgaW4gbXMgfAorICogICstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICB8IDEwME0gIHwgICAgICAgICAgICAgICAgICAgICAgMCB8CisgKiAgfCAxMDFNICB8ICAgICAgICAgICAgICAgICAgICAgIDYgfAorICogIHwgMTAyTSAgfCAgICAgICAgICAgICAgICAgICAgIDI1IHwKKyAqICB8IDEwM00gIHwgICAgICAgICAgICAgICAgICAgICA1NyB8CisgKiAgfCAxMDRNICB8ICAgICAgICAgICAgICAgICAgICAxMDIgfAorICogIHwgMTA1TSAgfCAgICAgICAgICAgICAgICAgICAgMTU5IHwKKyAqICB8IDEwNk0gIHwgICAgICAgICAgICAgICAgICAgIDIzMCB8CisgKiAgfCAxMDdNICB8ICAgICAgICAgICAgICAgICAgICAzMTMgfAorICogIHwgMTA4TSAgfCAgICAgICAgICAgICAgICAgICAgNDA5IHwKKyAqICB8IDEwOU0gIHwgICAgICAgICAgICAgICAgICAgIDUxOCB8CisgKiAgfCAxMTBNICB8ICAgICAgICAgICAgICAgICAgICA2MzkgfAorICogIHwgMTExTSAgfCAgICAgICAgICAgICAgICAgICAgNzc0IHwKKyAqICB8IDExMk0gIHwgICAgICAgICAgICAgICAgICAgIDkyMSB8CisgKiAgfCAxMTNNICB8ICAgICAgICAgICAgICAgICAgIDEwODEgfAorICogIHwgMTE0TSAgfCAgICAgICAgICAgICAgICAgICAxMjU0IHwKKyAqICB8IDExNU0gIHwgICAgICAgICAgICAgICAgICAgMTQzOSB8CisgKiAgfCAxMTZNICB8ICAgICAgICAgICAgICAgICAgIDE2MzggfAorICogIHwgMTE3TSAgfCAgICAgICAgICAgICAgICAgICAxODQ5IHwKKyAqICB8IDExOE0gIHwgICAgICAgICAgICAgICAgICAgMjAwMCB8CisgKiAgfCAxMTlNICB8ICAgICAgICAgICAgICAgICAgIDIwMDAgfAorICogIHwgMTIwTSAgfCAgICAgICAgICAgICAgICAgICAyMDAwIHwKKyAqICArLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKi8KKyAjZGVmaW5lIE1FTUNHX0RFTEFZX1BSRUNJU0lPTl9TSElGVCAyMAorICNkZWZpbmUgTUVNQ0dfREVMQVlfU0NBTElOR19TSElGVCAxNAorCisvKgogICogU2NoZWR1bGVkIGJ5IHRyeV9jaGFyZ2UoKSB0byBiZSBleGVjdXRlZCBmcm9tIHRoZSB1c2VybGFuZCByZXR1cm4gcGF0aAogICogYW5kIHJlY2xhaW1zIG1lbW9yeSBvdmVyIHRoZSBoaWdoIGxpbWl0LgogICovCiB2b2lkIG1lbV9jZ3JvdXBfaGFuZGxlX292ZXJfaGlnaCh2b2lkKQogeworCXVuc2lnbmVkIGxvbmcgdXNhZ2UsIGhpZ2gsIGNsYW1wZWRfaGlnaDsKKwl1bnNpZ25lZCBsb25nIHBmbGFnczsKKwl1bnNpZ25lZCBsb25nIHBlbmFsdHlfamlmZmllcywgb3ZlcmFnZTsKIAl1bnNpZ25lZCBpbnQgbnJfcGFnZXMgPSBjdXJyZW50LT5tZW1jZ19ucl9wYWdlc19vdmVyX2hpZ2g7CiAJc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnOwogCkBAIC0yMzcyLDggKzI0MjMsNzUgQEAgdm9pZCBtZW1fY2dyb3VwX2hhbmRsZV9vdmVyX2hpZ2godm9pZCkKIAogCW1lbWNnID0gZ2V0X21lbV9jZ3JvdXBfZnJvbV9tbShjdXJyZW50LT5tbSk7CiAJcmVjbGFpbV9oaWdoKG1lbWNnLCBucl9wYWdlcywgR0ZQX0tFUk5FTCk7Ci0JY3NzX3B1dCgmbWVtY2ctPmNzcyk7CiAJY3VycmVudC0+bWVtY2dfbnJfcGFnZXNfb3Zlcl9oaWdoID0gMDsKKworCS8qCisJICogbWVtb3J5LmhpZ2ggaXMgYnJlYWNoZWQgYW5kIHJlY2xhaW0gaXMgdW5hYmxlIHRvIGtlZXAgdXAuIFRocm90dGxlCisJICogYWxsb2NhdG9ycyBwcm9hY3RpdmVseSB0byBzbG93IGRvd24gZXhjZXNzaXZlIGdyb3d0aC4KKwkgKgorCSAqIFdlIHVzZSBvdmVyYWdlIGNvbXBhcmVkIHRvIG1lbW9yeS5oaWdoIHRvIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mCisJICogamlmZmllcyB0byBzbGVlcCAocGVuYWx0eV9qaWZmaWVzKS4gSWRlYWxseSB0aGlzIHZhbHVlIHNob3VsZCBiZQorCSAqIGZhaXJseSBsZW5pZW50IG9uIHNtYWxsIG92ZXJhZ2VzLCBhbmQgaW5jcmVhc2luZ2x5IGhhcnNoIHdoZW4gdGhlCisJICogbWVtY2cgaW4gcXVlc3Rpb24gbWFrZXMgaXQgY2xlYXIgdGhhdCBpdCBoYXMgbm8gaW50ZW50aW9uIG9mIHN0b3BwaW5nCisJICogaXRzIGNyYXp5IGJlaGF2aW91ciwgc28gd2UgZXhwb25lbnRpYWxseSBpbmNyZWFzZSB0aGUgZGVsYXkgYmFzZWQgb24KKwkgKiBvdmVyYWdlIGFtb3VudC4KKwkgKi8KKworCXVzYWdlID0gcGFnZV9jb3VudGVyX3JlYWQoJm1lbWNnLT5tZW1vcnkpOworCWhpZ2ggPSBSRUFEX09OQ0UobWVtY2ctPmhpZ2gpOworCisJaWYgKHVzYWdlIDw9IGhpZ2gpCisJCWdvdG8gb3V0OworCisJLyoKKwkgKiBQcmV2ZW50IGRpdmlzaW9uIGJ5IDAgaW4gb3ZlcmFnZSBjYWxjdWxhdGlvbiBieSBhY3RpbmcgYXMgaWYgaXQgd2FzIGEKKwkgKiB0aHJlc2hvbGQgb2YgMSBwYWdlCisJICovCisJY2xhbXBlZF9oaWdoID0gbWF4KGhpZ2gsIDFVTCk7CisKKwlvdmVyYWdlID0gZGl2X3U2NCgodTY0KSh1c2FnZSAtIGhpZ2gpIDw8IE1FTUNHX0RFTEFZX1BSRUNJU0lPTl9TSElGVCwKKwkJCSAgY2xhbXBlZF9oaWdoKTsKKworCXBlbmFsdHlfamlmZmllcyA9ICgodTY0KW92ZXJhZ2UgKiBvdmVyYWdlICogSFopCisJCT4+IChNRU1DR19ERUxBWV9QUkVDSVNJT05fU0hJRlQgKyBNRU1DR19ERUxBWV9TQ0FMSU5HX1NISUZUKTsKKworCS8qCisJICogRmFjdG9yIGluIHRoZSB0YXNrJ3Mgb3duIGNvbnRyaWJ1dGlvbiB0byB0aGUgb3ZlcmFnZSwgc3VjaCB0aGF0IGZvdXIKKwkgKiBOLXNpemVkIGFsbG9jYXRpb25zIGFyZSB0aHJvdHRsZWQgYXBwcm94aW1hdGVseSB0aGUgc2FtZSBhcyBvbmUKKwkgKiA0Ti1zaXplZCBhbGxvY2F0aW9uLgorCSAqCisJICogTUVNQ0dfQ0hBUkdFX0JBVENIIHBhZ2VzIGlzIG5vbWluYWwsIHNvIHdvcmsgb3V0IGhvdyBtdWNoIHNtYWxsZXIgb3IKKwkgKiBsYXJnZXIgdGhlIGN1cnJlbnQgY2hhcmdlIHBhdGNoIGlzIHRoYW4gdGhhdC4KKwkgKi8KKwlwZW5hbHR5X2ppZmZpZXMgPSBwZW5hbHR5X2ppZmZpZXMgKiBucl9wYWdlcyAvIE1FTUNHX0NIQVJHRV9CQVRDSDsKKworCS8qCisJICogQ2xhbXAgdGhlIG1heCBkZWxheSBwZXIgdXNlcm1vZGUgcmV0dXJuIHNvIGFzIHRvIHN0aWxsIGtlZXAgdGhlCisJICogYXBwbGljYXRpb24gbW92aW5nIGZvcndhcmRzIGFuZCBhbHNvIHBlcm1pdCBkaWFnbm9zdGljcywgYWxiZWl0CisJICogZXh0cmVtZWx5IHNsb3dseS4KKwkgKi8KKwlwZW5hbHR5X2ppZmZpZXMgPSBtaW4ocGVuYWx0eV9qaWZmaWVzLCBNRU1DR19NQVhfSElHSF9ERUxBWV9KSUZGSUVTKTsKKworCS8qCisJICogRG9uJ3Qgc2xlZXAgaWYgdGhlIGFtb3VudCBvZiBqaWZmaWVzIHRoaXMgbWVtY2cgb3dlcyB1cyBpcyBzbyBsb3cKKwkgKiB0aGF0IGl0J3Mgbm90IGV2ZW4gd29ydGggZG9pbmcsIGluIGFuIGF0dGVtcHQgdG8gYmUgbmljZSB0byB0aG9zZSB3aG8KKwkgKiBnbyBvbmx5IGEgc21hbGwgYW1vdW50IG92ZXIgdGhlaXIgbWVtb3J5LmhpZ2ggdmFsdWUgYW5kIG1heWJlIGhhdmVuJ3QKKwkgKiBiZWVuIGFnZ3Jlc3NpdmVseSByZWNsYWltZWQgZW5vdWdoIHlldC4KKwkgKi8KKwlpZiAocGVuYWx0eV9qaWZmaWVzIDw9IEhaIC8gMTAwKQorCQlnb3RvIG91dDsKKworCS8qCisJICogSWYgd2UgZXhpdCBlYXJseSwgd2UncmUgZ3VhcmFudGVlZCB0byBkaWUgKHNpbmNlCisJICogc2NoZWR1bGVfdGltZW91dF9raWxsYWJsZSBzZXRzIFRBU0tfS0lMTEFCTEUpLiBUaGlzIG1lYW5zIHdlIGRvbid0CisJICogbmVlZCB0byBhY2NvdW50IGZvciBhbnkgaWxsLWJlZ290dGVuIGppZmZpZXMgdG8gcGF5IHRoZW0gb2ZmIGxhdGVyLgorCSAqLworCXBzaV9tZW1zdGFsbF9lbnRlcigmcGZsYWdzKTsKKwlzY2hlZHVsZV90aW1lb3V0X2tpbGxhYmxlKHBlbmFsdHlfamlmZmllcyk7CisJcHNpX21lbXN0YWxsX2xlYXZlKCZwZmxhZ3MpOworCitvdXQ6CisJY3NzX3B1dCgmbWVtY2ctPmNzcyk7CiB9CiAKIHN0YXRpYyBpbnQgdHJ5X2NoYXJnZShzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2csIGdmcF90IGdmcF9tYXNrLApAQCAtMjgyNSw2ICsyOTQzLDE2IEBAIGludCBfX21lbWNnX2ttZW1fY2hhcmdlX21lbWNnKHN0cnVjdCBwYWdlICpwYWdlLCBnZnBfdCBnZnAsIGludCBvcmRlciwKIAogCWlmICghY2dyb3VwX3N1YnN5c19vbl9kZmwobWVtb3J5X2NncnBfc3Vic3lzKSAmJgogCSAgICAhcGFnZV9jb3VudGVyX3RyeV9jaGFyZ2UoJm1lbWNnLT5rbWVtLCBucl9wYWdlcywgJmNvdW50ZXIpKSB7CisKKwkJLyoKKwkJICogRW5mb3JjZSBfX0dGUF9OT0ZBSUwgYWxsb2NhdGlvbiBiZWNhdXNlIGNhbGxlcnMgYXJlIG5vdAorCQkgKiBwcmVwYXJlZCB0byBzZWUgZmFpbHVyZXMgYW5kIGxpa2VseSBkbyBub3QgaGF2ZSBhbnkgZmFpbHVyZQorCQkgKiBoYW5kbGluZyBjb2RlLgorCQkgKi8KKwkJaWYgKGdmcCAmIF9fR0ZQX05PRkFJTCkgeworCQkJcGFnZV9jb3VudGVyX2NoYXJnZSgmbWVtY2ctPmttZW0sIG5yX3BhZ2VzKTsKKwkJCXJldHVybiAwOworCQl9CiAJCWNhbmNlbF9jaGFyZ2UobWVtY2csIG5yX3BhZ2VzKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQpAQCAtMzUxMiw2ICszNjQwLDkgQEAgc3RhdGljIHNzaXplX3QgbWVtX2Nncm91cF93cml0ZShzdHJ1Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YsCiAJCQlyZXQgPSBtZW1fY2dyb3VwX3Jlc2l6ZV9tYXgobWVtY2csIG5yX3BhZ2VzLCB0cnVlKTsKIAkJCWJyZWFrOwogCQljYXNlIF9LTUVNOgorCQkJcHJfd2Fybl9vbmNlKCJrbWVtLmxpbWl0X2luX2J5dGVzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gIgorCQkJCSAgICAgIlBsZWFzZSByZXBvcnQgeW91ciB1c2VjYXNlIHRvIGxpbnV4LW1tQGt2YWNrLm9yZyBpZiB5b3UgIgorCQkJCSAgICAgImRlcGVuZCBvbiB0aGlzIGZ1bmN0aW9uYWxpdHkuXG4iKTsKIAkJCXJldCA9IG1lbWNnX3VwZGF0ZV9rbWVtX21heChtZW1jZywgbnJfcGFnZXMpOwogCQkJYnJlYWs7CiAJCWNhc2UgX1RDUDoKQEAgLTQ4MDUsMTEgKzQ5MzYsNiBAQCBzdGF0aWMgdm9pZCBtZW1fY2dyb3VwX2lkX3B1dF9tYW55KHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZywgdW5zaWduZWQgaW50IG4pCiAJfQogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgbWVtX2Nncm91cF9pZF9nZXQoc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnKQotewotCW1lbV9jZ3JvdXBfaWRfZ2V0X21hbnkobWVtY2csIDEpOwotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgbWVtX2Nncm91cF9pZF9wdXQoc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnKQogewogCW1lbV9jZ3JvdXBfaWRfcHV0X21hbnkobWVtY2csIDEpOwpAQCAtNDk1NSw2ICs1MDgxLDExIEBAIHN0YXRpYyBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtX2Nncm91cF9hbGxvYyh2b2lkKQogCQltZW1jZy0+Y2d3Yl9mcm5baV0uZG9uZSA9CiAJCQlfX1dCX0NPTVBMRVRJT05fSU5JVCgmbWVtY2dfY2d3Yl9mcm5fd2FpdHEpOwogI2VuZGlmCisjaWZkZWYgQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFCisJc3Bpbl9sb2NrX2luaXQoJm1lbWNnLT5kZWZlcnJlZF9zcGxpdF9xdWV1ZS5zcGxpdF9xdWV1ZV9sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmbWVtY2ctPmRlZmVycmVkX3NwbGl0X3F1ZXVlLnNwbGl0X3F1ZXVlKTsKKwltZW1jZy0+ZGVmZXJyZWRfc3BsaXRfcXVldWUuc3BsaXRfcXVldWVfbGVuID0gMDsKKyNlbmRpZgogCWlkcl9yZXBsYWNlKCZtZW1fY2dyb3VwX2lkciwgbWVtY2csIG1lbWNnLT5pZC5pZCk7CiAJcmV0dXJuIG1lbWNnOwogZmFpbDoKQEAgLTUzMzMsNiArNTQ2NCwxNCBAQCBzdGF0aWMgaW50IG1lbV9jZ3JvdXBfbW92ZV9hY2NvdW50KHN0cnVjdCBwYWdlICpwYWdlLAogCQlfX21vZF9tZW1jZ19zdGF0ZSh0bywgTlJfV1JJVEVCQUNLLCBucl9wYWdlcyk7CiAJfQogCisjaWZkZWYgQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFCisJaWYgKGNvbXBvdW5kICYmICFsaXN0X2VtcHR5KHBhZ2VfZGVmZXJyZWRfbGlzdChwYWdlKSkpIHsKKwkJc3Bpbl9sb2NrKCZmcm9tLT5kZWZlcnJlZF9zcGxpdF9xdWV1ZS5zcGxpdF9xdWV1ZV9sb2NrKTsKKwkJbGlzdF9kZWxfaW5pdChwYWdlX2RlZmVycmVkX2xpc3QocGFnZSkpOworCQlmcm9tLT5kZWZlcnJlZF9zcGxpdF9xdWV1ZS5zcGxpdF9xdWV1ZV9sZW4tLTsKKwkJc3Bpbl91bmxvY2soJmZyb20tPmRlZmVycmVkX3NwbGl0X3F1ZXVlLnNwbGl0X3F1ZXVlX2xvY2spOworCX0KKyNlbmRpZgogCS8qCiAJICogSXQgaXMgc2FmZSB0byBjaGFuZ2UgcGFnZS0+bWVtX2Nncm91cCBoZXJlIGJlY2F1c2UgdGhlIHBhZ2UKIAkgKiBpcyByZWZlcmVuY2VkLCBjaGFyZ2VkLCBhbmQgaXNvbGF0ZWQgLSB3ZSBjYW4ndCByYWNlIHdpdGgKQEAgLTUzNDEsNiArNTQ4MCwxNyBAQCBzdGF0aWMgaW50IG1lbV9jZ3JvdXBfbW92ZV9hY2NvdW50KHN0cnVjdCBwYWdlICpwYWdlLAogCiAJLyogY2FsbGVyIHNob3VsZCBoYXZlIGRvbmUgY3NzX2dldCAqLwogCXBhZ2UtPm1lbV9jZ3JvdXAgPSB0bzsKKworI2lmZGVmIENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRQorCWlmIChjb21wb3VuZCAmJiBsaXN0X2VtcHR5KHBhZ2VfZGVmZXJyZWRfbGlzdChwYWdlKSkpIHsKKwkJc3Bpbl9sb2NrKCZ0by0+ZGVmZXJyZWRfc3BsaXRfcXVldWUuc3BsaXRfcXVldWVfbG9jayk7CisJCWxpc3RfYWRkX3RhaWwocGFnZV9kZWZlcnJlZF9saXN0KHBhZ2UpLAorCQkJICAgICAgJnRvLT5kZWZlcnJlZF9zcGxpdF9xdWV1ZS5zcGxpdF9xdWV1ZSk7CisJCXRvLT5kZWZlcnJlZF9zcGxpdF9xdWV1ZS5zcGxpdF9xdWV1ZV9sZW4rKzsKKwkJc3Bpbl91bmxvY2soJnRvLT5kZWZlcnJlZF9zcGxpdF9xdWV1ZS5zcGxpdF9xdWV1ZV9sb2NrKTsKKwl9CisjZW5kaWYKKwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZyb20tPm1vdmVfbG9jaywgZmxhZ3MpOwogCiAJcmV0ID0gMDsKQEAgLTU0OTksMTcgKzU2NDksMTYgQEAgc3RhdGljIGludCBtZW1fY2dyb3VwX2NvdW50X3ByZWNoYXJnZV9wdGVfcmFuZ2UocG1kX3QgKnBtZCwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBwcmVjaGFyZ2Vfd2Fsa19vcHMgPSB7CisJLnBtZF9lbnRyeQk9IG1lbV9jZ3JvdXBfY291bnRfcHJlY2hhcmdlX3B0ZV9yYW5nZSwKK307CisKIHN0YXRpYyB1bnNpZ25lZCBsb25nIG1lbV9jZ3JvdXBfY291bnRfcHJlY2hhcmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogewogCXVuc2lnbmVkIGxvbmcgcHJlY2hhcmdlOwogCi0Jc3RydWN0IG1tX3dhbGsgbWVtX2Nncm91cF9jb3VudF9wcmVjaGFyZ2Vfd2FsayA9IHsKLQkJLnBtZF9lbnRyeSA9IG1lbV9jZ3JvdXBfY291bnRfcHJlY2hhcmdlX3B0ZV9yYW5nZSwKLQkJLm1tID0gbW0sCi0JfTsKIAlkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7Ci0Jd2Fsa19wYWdlX3JhbmdlKDAsIG1tLT5oaWdoZXN0X3ZtX2VuZCwKLQkJCSZtZW1fY2dyb3VwX2NvdW50X3ByZWNoYXJnZV93YWxrKTsKKwl3YWxrX3BhZ2VfcmFuZ2UobW0sIDAsIG1tLT5oaWdoZXN0X3ZtX2VuZCwgJnByZWNoYXJnZV93YWxrX29wcywgTlVMTCk7CiAJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsKIAogCXByZWNoYXJnZSA9IG1jLnByZWNoYXJnZTsKQEAgLTU3NzgsMTMgKzU5MjcsMTIgQEAgc3RhdGljIGludCBtZW1fY2dyb3VwX21vdmVfY2hhcmdlX3B0ZV9yYW5nZShwbWRfdCAqcG1kLAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgY2hhcmdlX3dhbGtfb3BzID0geworCS5wbWRfZW50cnkJPSBtZW1fY2dyb3VwX21vdmVfY2hhcmdlX3B0ZV9yYW5nZSwKK307CisKIHN0YXRpYyB2b2lkIG1lbV9jZ3JvdXBfbW92ZV9jaGFyZ2Uodm9pZCkKIHsKLQlzdHJ1Y3QgbW1fd2FsayBtZW1fY2dyb3VwX21vdmVfY2hhcmdlX3dhbGsgPSB7Ci0JCS5wbWRfZW50cnkgPSBtZW1fY2dyb3VwX21vdmVfY2hhcmdlX3B0ZV9yYW5nZSwKLQkJLm1tID0gbWMubW0sCi0JfTsKLQogCWxydV9hZGRfZHJhaW5fYWxsKCk7CiAJLyoKIAkgKiBTaWduYWwgbG9ja19wYWdlX21lbWNnKCkgdG8gdGFrZSB0aGUgbWVtY2cncyBtb3ZlX2xvY2sKQEAgLTU4MTAsNyArNTk1OCw4IEBAIHN0YXRpYyB2b2lkIG1lbV9jZ3JvdXBfbW92ZV9jaGFyZ2Uodm9pZCkKIAkgKiBXaGVuIHdlIGhhdmUgY29uc3VtZWQgYWxsIHByZWNoYXJnZXMgYW5kIGZhaWxlZCBpbiBkb2luZwogCSAqIGFkZGl0aW9uYWwgY2hhcmdlLCB0aGUgcGFnZSB3YWxrIGp1c3QgYWJvcnRzLgogCSAqLwotCXdhbGtfcGFnZV9yYW5nZSgwLCBtYy5tbS0+aGlnaGVzdF92bV9lbmQsICZtZW1fY2dyb3VwX21vdmVfY2hhcmdlX3dhbGspOworCXdhbGtfcGFnZV9yYW5nZShtYy5tbSwgMCwgbWMubW0tPmhpZ2hlc3Rfdm1fZW5kLCAmY2hhcmdlX3dhbGtfb3BzLAorCQkJTlVMTCk7CiAKIAl1cF9yZWFkKCZtYy5tbS0+bW1hcF9zZW0pOwogCWF0b21pY19kZWMoJm1jLmZyb20tPm1vdmluZ19hY2NvdW50KTsKQEAgLTY1MTIsNyArNjY2MSw3IEBAIHN0YXRpYyB2b2lkIHVuY2hhcmdlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB1bmNoYXJnZV9nYXRoZXIgKnVnKQogCQl1bnNpZ25lZCBpbnQgbnJfcGFnZXMgPSAxOwogCiAJCWlmIChQYWdlVHJhbnNIdWdlKHBhZ2UpKSB7Ci0JCQlucl9wYWdlcyA8PD0gY29tcG91bmRfb3JkZXIocGFnZSk7CisJCQlucl9wYWdlcyA9IGNvbXBvdW5kX25yKHBhZ2UpOwogCQkJdWctPm5yX2h1Z2UgKz0gbnJfcGFnZXM7CiAJCX0KIAkJaWYgKFBhZ2VBbm9uKHBhZ2UpKQpAQCAtNjUyNCw3ICs2NjczLDcgQEAgc3RhdGljIHZvaWQgdW5jaGFyZ2VfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHVuY2hhcmdlX2dhdGhlciAqdWcpCiAJCX0KIAkJdWctPnBncGdvdXQrKzsKIAl9IGVsc2UgewotCQl1Zy0+bnJfa21lbSArPSAxIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpOworCQl1Zy0+bnJfa21lbSArPSBjb21wb3VuZF9ucihwYWdlKTsKIAkJX19DbGVhclBhZ2VLbWVtY2cocGFnZSk7CiAJfQogCmRpZmYgLS1naXQgYS9tbS9tZW1mZC5jIGIvbW0vbWVtZmQuYwppbmRleCA2NTBlNjVhLi4yNjQ3Yzg5IDEwMDY0NAotLS0gYS9tbS9tZW1mZC5jCisrKyBiL21tL21lbWZkLmMKQEAgLTM5LDYgKzM5LDcgQEAgc3RhdGljIHZvaWQgbWVtZmRfdGFnX3BpbnMoc3RydWN0IHhhX3N0YXRlICp4YXMpCiAJeGFzX2Zvcl9lYWNoKHhhcywgcGFnZSwgVUxPTkdfTUFYKSB7CiAJCWlmICh4YV9pc192YWx1ZShwYWdlKSkKIAkJCWNvbnRpbnVlOworCQlwYWdlID0gZmluZF9zdWJwYWdlKHBhZ2UsIHhhcy0+eGFfaW5kZXgpOwogCQlpZiAocGFnZV9jb3VudChwYWdlKSAtIHBhZ2VfbWFwY291bnQocGFnZSkgPiAxKQogCQkJeGFzX3NldF9tYXJrKHhhcywgTUVNRkRfVEFHX1BJTk5FRCk7CiAKQEAgLTg4LDYgKzg5LDcgQEAgc3RhdGljIGludCBtZW1mZF93YWl0X2Zvcl9waW5zKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQogCQkJYm9vbCBjbGVhciA9IHRydWU7CiAJCQlpZiAoeGFfaXNfdmFsdWUocGFnZSkpCiAJCQkJY29udGludWU7CisJCQlwYWdlID0gZmluZF9zdWJwYWdlKHBhZ2UsIHhhcy54YV9pbmRleCk7CiAJCQlpZiAocGFnZV9jb3VudChwYWdlKSAtIHBhZ2VfbWFwY291bnQocGFnZSkgIT0gMSkgewogCQkJCS8qCiAJCQkJICogT24gdGhlIGxhc3Qgc2Nhbiwgd2UgY2xlYW4gdXAgYWxsIHRob3NlIHRhZ3MKZGlmZiAtLWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKaW5kZXggYjFkZmY3NS4uYjFjYTUxYSAxMDA2NDQKLS0tIGEvbW0vbWVtb3J5LmMKKysrIGIvbW0vbWVtb3J5LmMKQEAgLTUxOCw3ICs1MTgsNyBAQCBzdGF0aWMgdm9pZCBwcmludF9iYWRfcHRlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJCSAobG9uZyBsb25nKXB0ZV92YWwocHRlKSwgKGxvbmcgbG9uZylwbWRfdmFsKCpwbWQpKTsKIAlpZiAocGFnZSkKIAkJZHVtcF9wYWdlKHBhZ2UsICJiYWQgcHRlIik7Ci0JcHJfYWxlcnQoImFkZHI6JXAgdm1fZmxhZ3M6JTA4bHggYW5vbl92bWE6JXAgbWFwcGluZzolcCBpbmRleDolbHhcbiIsCisJcHJfYWxlcnQoImFkZHI6JXB4IHZtX2ZsYWdzOiUwOGx4IGFub25fdm1hOiVweCBtYXBwaW5nOiVweCBpbmRleDolbHhcbiIsCiAJCSAodm9pZCAqKWFkZHIsIHZtYS0+dm1fZmxhZ3MsIHZtYS0+YW5vbl92bWEsIG1hcHBpbmcsIGluZGV4KTsKIAlwcl9hbGVydCgiZmlsZTolcEQgZmF1bHQ6JXBzIG1tYXA6JXBzIHJlYWRwYWdlOiVwc1xuIiwKIAkJIHZtYS0+dm1fZmlsZSwKQEAgLTEwMjYsNiArMTAyNiw5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHphcF9wdGVfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwKIAkJaWYgKHB0ZV9ub25lKHB0ZW50KSkKIAkJCWNvbnRpbnVlOwogCisJCWlmIChuZWVkX3Jlc2NoZWQoKSkKKwkJCWJyZWFrOworCiAJCWlmIChwdGVfcHJlc2VudChwdGVudCkpIHsKIAkJCXN0cnVjdCBwYWdlICpwYWdlOwogCkBAIC0xMDkzLDcgKzEwOTYsNiBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyB6YXBfcHRlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsCiAJCWlmICh1bmxpa2VseShkZXRhaWxzKSkKIAkJCWNvbnRpbnVlOwogCi0JCWVudHJ5ID0gcHRlX3RvX3N3cF9lbnRyeShwdGVudCk7CiAJCWlmICghbm9uX3N3YXBfZW50cnkoZW50cnkpKQogCQkJcnNzW01NX1NXQVBFTlRTXS0tOwogCQllbHNlIGlmIChpc19taWdyYXRpb25fZW50cnkoZW50cnkpKSB7CkBAIC0xMTI0LDggKzExMjYsMTEgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgemFwX3B0ZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLAogCWlmIChmb3JjZV9mbHVzaCkgewogCQlmb3JjZV9mbHVzaCA9IDA7CiAJCXRsYl9mbHVzaF9tbXUodGxiKTsKLQkJaWYgKGFkZHIgIT0gZW5kKQotCQkJZ290byBhZ2FpbjsKKwl9CisKKwlpZiAoYWRkciAhPSBlbmQpIHsKKwkJY29uZF9yZXNjaGVkKCk7CisJCWdvdG8gYWdhaW47CiAJfQogCiAJcmV0dXJuIGFkZHI7CmRpZmYgLS1naXQgYS9tbS9tZW1vcnlfaG90cGx1Zy5jIGIvbW0vbWVtb3J5X2hvdHBsdWcuYwppbmRleCBjNzNmMDk5Li5iMWJlNzkxIDEwMDY0NAotLS0gYS9tbS9tZW1vcnlfaG90cGx1Zy5jCisrKyBiL21tL21lbW9yeV9ob3RwbHVnLmMKQEAgLTYzMiwzMyArNjMyLDMwIEBAIHN0YXRpYyB2b2lkIGdlbmVyaWNfb25saW5lX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRlcikKICNlbmRpZgogfQogCi1zdGF0aWMgaW50IG9ubGluZV9wYWdlc19ibG9ja3ModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBucl9wYWdlcykKLXsKLQl1bnNpZ25lZCBsb25nIGVuZCA9IHN0YXJ0ICsgbnJfcGFnZXM7Ci0JaW50IG9yZGVyLCBvbmxpbmVkX3BhZ2VzID0gMDsKLQotCXdoaWxlIChzdGFydCA8IGVuZCkgewotCQlvcmRlciA9IG1pbihNQVhfT1JERVIgLSAxLAotCQkJZ2V0X29yZGVyKFBGTl9QSFlTKGVuZCkgLSBQRk5fUEhZUyhzdGFydCkpKTsKLQkJKCpvbmxpbmVfcGFnZV9jYWxsYmFjaykocGZuX3RvX3BhZ2Uoc3RhcnQpLCBvcmRlcik7Ci0KLQkJb25saW5lZF9wYWdlcyArPSAoMVVMIDw8IG9yZGVyKTsKLQkJc3RhcnQgKz0gKDFVTCA8PCBvcmRlcik7Ci0JfQotCXJldHVybiBvbmxpbmVkX3BhZ2VzOwotfQotCiBzdGF0aWMgaW50IG9ubGluZV9wYWdlc19yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKIAkJCXZvaWQgKmFyZykKIHsKLQl1bnNpZ25lZCBsb25nIG9ubGluZWRfcGFnZXMgPSAqKHVuc2lnbmVkIGxvbmcgKilhcmc7CisJY29uc3QgdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gc3RhcnRfcGZuICsgbnJfcGFnZXM7CisJdW5zaWduZWQgbG9uZyBwZm47CisJaW50IG9yZGVyOwogCi0JaWYgKFBhZ2VSZXNlcnZlZChwZm5fdG9fcGFnZShzdGFydF9wZm4pKSkKLQkJb25saW5lZF9wYWdlcyArPSBvbmxpbmVfcGFnZXNfYmxvY2tzKHN0YXJ0X3BmbiwgbnJfcGFnZXMpOworCS8qCisJICogT25saW5lIHRoZSBwYWdlcy4gVGhlIGNhbGxiYWNrIG1pZ2h0IGRlY2lkZSB0byBrZWVwIHNvbWUgcGFnZXMKKwkgKiBQR19yZXNlcnZlZCAodG8gYWRkIHRoZW0gdG8gdGhlIGJ1ZGR5IGxhdGVyKSwgYnV0IHdlIHN0aWxsIGFjY291bnQKKwkgKiB0aGVtIGFzIGJlaW5nIG9ubGluZS9iZWxvbmdpbmcgdG8gdGhpcyB6b25lICgicHJlc2VudCIpLgorCSAqLworCWZvciAocGZuID0gc3RhcnRfcGZuOyBwZm4gPCBlbmRfcGZuOyBwZm4gKz0gMXVsIDw8IG9yZGVyKSB7CisJCW9yZGVyID0gbWluKE1BWF9PUkRFUiAtIDEsIGdldF9vcmRlcihQRk5fUEhZUyhlbmRfcGZuIC0gcGZuKSkpOworCQkvKiBfX2ZyZWVfcGFnZXNfY29yZSgpIHdhbnRzIHBmbnMgdG8gYmUgYWxpZ25lZCB0byB0aGUgb3JkZXIgKi8KKwkJaWYgKFdBUk5fT05fT05DRSghSVNfQUxJR05FRChwZm4sIDF1bCA8PCBvcmRlcikpKQorCQkJb3JkZXIgPSAwOworCQkoKm9ubGluZV9wYWdlX2NhbGxiYWNrKShwZm5fdG9fcGFnZShwZm4pLCBvcmRlcik7CisJfQogCi0Jb25saW5lX21lbV9zZWN0aW9ucyhzdGFydF9wZm4sIHN0YXJ0X3BmbiArIG5yX3BhZ2VzKTsKKwkvKiBtYXJrIGFsbCBpbnZvbHZlZCBzZWN0aW9ucyBhcyBvbmxpbmUgKi8KKwlvbmxpbmVfbWVtX3NlY3Rpb25zKHN0YXJ0X3BmbiwgZW5kX3Bmbik7CiAKLQkqKHVuc2lnbmVkIGxvbmcgKilhcmcgPSBvbmxpbmVkX3BhZ2VzOworCSoodW5zaWduZWQgbG9uZyAqKWFyZyArPSBucl9wYWdlczsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNzE0LDggKzcxMSwxMyBAQCBzdGF0aWMgdm9pZCBfX21lbWluaXQgcmVzaXplX3BnZGF0X3JhbmdlKHN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQsIHVuc2lnbmVkIGxvbgogCQlwZ2RhdC0+bm9kZV9zdGFydF9wZm4gPSBzdGFydF9wZm47CiAKIAlwZ2RhdC0+bm9kZV9zcGFubmVkX3BhZ2VzID0gbWF4KHN0YXJ0X3BmbiArIG5yX3BhZ2VzLCBvbGRfZW5kX3BmbikgLSBwZ2RhdC0+bm9kZV9zdGFydF9wZm47Ci19CiAKK30KKy8qCisgKiBBc3NvY2lhdGUgdGhlIHBmbiByYW5nZSB3aXRoIHRoZSBnaXZlbiB6b25lLCBpbml0aWFsaXppbmcgdGhlIG1lbW1hcHMKKyAqIGFuZCByZXNpemluZyB0aGUgcGdkYXQvem9uZSBkYXRhIHRvIHNwYW4gdGhlIGFkZGVkIHBhZ2VzLiBBZnRlciB0aGlzCisgKiBjYWxsLCBhbGwgYWZmZWN0ZWQgcGFnZXMgYXJlIFBHX3Jlc2VydmVkLgorICovCiB2b2lkIF9fcmVmIG1vdmVfcGZuX3JhbmdlX3RvX3pvbmUoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAogCQl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBzdHJ1Y3Qgdm1lbV9hbHRtYXAgKmFsdG1hcCkKIHsKQEAgLTgwNCwyMCArODA2LDYgQEAgc3RydWN0IHpvbmUgKiB6b25lX2Zvcl9wZm5fcmFuZ2UoaW50IG9ubGluZV90eXBlLCBpbnQgbmlkLCB1bnNpZ25lZCBzdGFydF9wZm4sCiAJcmV0dXJuIGRlZmF1bHRfem9uZV9mb3JfcGZuKG5pZCwgc3RhcnRfcGZuLCBucl9wYWdlcyk7CiB9CiAKLS8qCi0gKiBBc3NvY2lhdGVzIHRoZSBnaXZlbiBwZm4gcmFuZ2Ugd2l0aCB0aGUgZ2l2ZW4gbm9kZSBhbmQgdGhlIHpvbmUgYXBwcm9wcmlhdGUKLSAqIGZvciB0aGUgZ2l2ZW4gb25saW5lIHR5cGUuCi0gKi8KLXN0YXRpYyBzdHJ1Y3Qgem9uZSAqIF9fbWVtaW5pdCBtb3ZlX3Bmbl9yYW5nZShpbnQgb25saW5lX3R5cGUsIGludCBuaWQsCi0JCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKQotewotCXN0cnVjdCB6b25lICp6b25lOwotCi0Jem9uZSA9IHpvbmVfZm9yX3Bmbl9yYW5nZShvbmxpbmVfdHlwZSwgbmlkLCBzdGFydF9wZm4sIG5yX3BhZ2VzKTsKLQltb3ZlX3Bmbl9yYW5nZV90b196b25lKHpvbmUsIHN0YXJ0X3BmbiwgbnJfcGFnZXMsIE5VTEwpOwotCXJldHVybiB6b25lOwotfQotCiBpbnQgX19yZWYgb25saW5lX3BhZ2VzKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBpbnQgb25saW5lX3R5cGUpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTg0MCw3ICs4MjgsOCBAQCBpbnQgX19yZWYgb25saW5lX3BhZ2VzKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBpbnQgb25saW5lX3R5cAogCXB1dF9kZXZpY2UoJm1lbS0+ZGV2KTsKIAogCS8qIGFzc29jaWF0ZSBwZm4gcmFuZ2Ugd2l0aCB0aGUgem9uZSAqLwotCXpvbmUgPSBtb3ZlX3Bmbl9yYW5nZShvbmxpbmVfdHlwZSwgbmlkLCBwZm4sIG5yX3BhZ2VzKTsKKwl6b25lID0gem9uZV9mb3JfcGZuX3JhbmdlKG9ubGluZV90eXBlLCBuaWQsIHBmbiwgbnJfcGFnZXMpOworCW1vdmVfcGZuX3JhbmdlX3RvX3pvbmUoem9uZSwgcGZuLCBucl9wYWdlcywgTlVMTCk7CiAKIAlhcmcuc3RhcnRfcGZuID0gcGZuOwogCWFyZy5ucl9wYWdlcyA9IG5yX3BhZ2VzOwpAQCAtODY0LDYgKzg1Myw3IEBAIGludCBfX3JlZiBvbmxpbmVfcGFnZXModW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsIGludCBvbmxpbmVfdHlwCiAJcmV0ID0gd2Fsa19zeXN0ZW1fcmFtX3JhbmdlKHBmbiwgbnJfcGFnZXMsICZvbmxpbmVkX3BhZ2VzLAogCQlvbmxpbmVfcGFnZXNfcmFuZ2UpOwogCWlmIChyZXQpIHsKKwkJLyogbm90IGEgc2luZ2xlIG1lbW9yeSByZXNvdXJjZSB3YXMgYXBwbGljYWJsZSAqLwogCQlpZiAobmVlZF96b25lbGlzdHNfcmVidWlsZCkKIAkJCXpvbmVfcGNwX3Jlc2V0KHpvbmUpOwogCQlnb3RvIGZhaWxlZF9hZGRpdGlvbjsKQEAgLTg3NywyNyArODY3LDIyIEBAIGludCBfX3JlZiBvbmxpbmVfcGFnZXModW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsIGludCBvbmxpbmVfdHlwCiAKIAlzaHVmZmxlX3pvbmUoem9uZSk7CiAKLQlpZiAob25saW5lZF9wYWdlcykgewotCQlub2RlX3N0YXRlc19zZXRfbm9kZShuaWQsICZhcmcpOwotCQlpZiAobmVlZF96b25lbGlzdHNfcmVidWlsZCkKLQkJCWJ1aWxkX2FsbF96b25lbGlzdHMoTlVMTCk7Ci0JCWVsc2UKLQkJCXpvbmVfcGNwX3VwZGF0ZSh6b25lKTsKLQl9CisJbm9kZV9zdGF0ZXNfc2V0X25vZGUobmlkLCAmYXJnKTsKKwlpZiAobmVlZF96b25lbGlzdHNfcmVidWlsZCkKKwkJYnVpbGRfYWxsX3pvbmVsaXN0cyhOVUxMKTsKKwllbHNlCisJCXpvbmVfcGNwX3VwZGF0ZSh6b25lKTsKIAogCWluaXRfcGVyX3pvbmVfd21hcmtfbWluKCk7CiAKLQlpZiAob25saW5lZF9wYWdlcykgewotCQlrc3dhcGRfcnVuKG5pZCk7Ci0JCWtjb21wYWN0ZF9ydW4obmlkKTsKLQl9CisJa3N3YXBkX3J1bihuaWQpOworCWtjb21wYWN0ZF9ydW4obmlkKTsKIAogCXZtX3RvdGFsX3BhZ2VzID0gbnJfZnJlZV9wYWdlY2FjaGVfcGFnZXMoKTsKIAogCXdyaXRlYmFja19zZXRfcmF0ZWxpbWl0KCk7CiAKLQlpZiAob25saW5lZF9wYWdlcykKLQkJbWVtb3J5X25vdGlmeShNRU1fT05MSU5FLCAmYXJnKTsKKwltZW1vcnlfbm90aWZ5KE1FTV9PTkxJTkUsICZhcmcpOwogCW1lbV9ob3RwbHVnX2RvbmUoKTsKIAlyZXR1cm4gMDsKIApAQCAtOTMzLDggKzkxOCwxMSBAQCBzdGF0aWMgcGdfZGF0YV90IF9fcmVmICpob3RhZGRfbmV3X3BnZGF0KGludCBuaWQsIHU2NCBzdGFydCkKIAkJaWYgKCFwZ2RhdCkKIAkJCXJldHVybiBOVUxMOwogCisJCXBnZGF0LT5wZXJfY3B1X25vZGVzdGF0cyA9CisJCQlhbGxvY19wZXJjcHUoc3RydWN0IHBlcl9jcHVfbm9kZXN0YXQpOwogCQlhcmNoX3JlZnJlc2hfbm9kZWRhdGEobmlkLCBwZ2RhdCk7CiAJfSBlbHNlIHsKKwkJaW50IGNwdTsKIAkJLyoKIAkJICogUmVzZXQgdGhlIG5yX3pvbmVzLCBvcmRlciBhbmQgY2xhc3N6b25lX2lkeCBiZWZvcmUgcmV1c2UuCiAJCSAqIE5vdGUgdGhhdCBrc3dhcGQgd2lsbCBpbml0IGtzd2FwZF9jbGFzc3pvbmVfaWR4IHByb3Blcmx5CkBAIC05NDMsNiArOTMxLDEyIEBAIHN0YXRpYyBwZ19kYXRhX3QgX19yZWYgKmhvdGFkZF9uZXdfcGdkYXQoaW50IG5pZCwgdTY0IHN0YXJ0KQogCQlwZ2RhdC0+bnJfem9uZXMgPSAwOwogCQlwZ2RhdC0+a3N3YXBkX29yZGVyID0gMDsKIAkJcGdkYXQtPmtzd2FwZF9jbGFzc3pvbmVfaWR4ID0gMDsKKwkJZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKKwkJCXN0cnVjdCBwZXJfY3B1X25vZGVzdGF0ICpwOworCisJCQlwID0gcGVyX2NwdV9wdHIocGdkYXQtPnBlcl9jcHVfbm9kZXN0YXRzLCBjcHUpOworCQkJbWVtc2V0KHAsIDAsIHNpemVvZigqcCkpOworCQl9CiAJfQogCiAJLyogd2UgY2FuIHVzZSBOT0RFX0RBVEEobmlkKSBmcm9tIGhlcmUgKi8KQEAgLTk1Miw3ICs5NDYsNiBAQCBzdGF0aWMgcGdfZGF0YV90IF9fcmVmICpob3RhZGRfbmV3X3BnZGF0KGludCBuaWQsIHU2NCBzdGFydCkKIAogCS8qIGluaXQgbm9kZSdzIHpvbmVzIGFzIGVtcHR5IHpvbmVzLCB3ZSBkb24ndCBoYXZlIGFueSBwcmVzZW50IHBhZ2VzLiovCiAJZnJlZV9hcmVhX2luaXRfY29yZV9ob3RwbHVnKG5pZCk7Ci0JcGdkYXQtPnBlcl9jcHVfbm9kZXN0YXRzID0gYWxsb2NfcGVyY3B1KHN0cnVjdCBwZXJfY3B1X25vZGVzdGF0KTsKIAogCS8qCiAJICogVGhlIG5vZGUgd2UgYWxsb2NhdGVkIGhhcyBubyB6b25lIGZhbGxiYWNrIGxpc3RzLiBGb3IgYXZvaWRpbmcKQEAgLTEzMDksNyArMTMwMiw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNjYW5fbW92YWJsZV9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKIAkJaGVhZCA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CiAJCWlmIChwYWdlX2h1Z2VfYWN0aXZlKGhlYWQpKQogCQkJcmV0dXJuIHBmbjsKLQkJc2tpcCA9ICgxIDw8IGNvbXBvdW5kX29yZGVyKGhlYWQpKSAtIChwYWdlIC0gaGVhZCk7CisJCXNraXAgPSBjb21wb3VuZF9ucihoZWFkKSAtIChwYWdlIC0gaGVhZCk7CiAJCXBmbiArPSBza2lwIC0gMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0xMzQ3LDcgKzEzNDAsNyBAQCBkb19taWdyYXRlX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCiAKIAkJaWYgKFBhZ2VIdWdlKHBhZ2UpKSB7CiAJCQlzdHJ1Y3QgcGFnZSAqaGVhZCA9IGNvbXBvdW5kX2hlYWQocGFnZSk7Ci0JCQlwZm4gPSBwYWdlX3RvX3BmbihoZWFkKSArICgxPDxjb21wb3VuZF9vcmRlcihoZWFkKSkgLSAxOworCQkJcGZuID0gcGFnZV90b19wZm4oaGVhZCkgKyBjb21wb3VuZF9ucihoZWFkKSAtIDE7CiAJCQlpc29sYXRlX2h1Z2VfcGFnZShoZWFkLCAmc291cmNlKTsKIAkJCWNvbnRpbnVlOwogCQl9IGVsc2UgaWYgKFBhZ2VUcmFuc0h1Z2UocGFnZSkpCkBAIC0xNjYyLDcgKzE2NTUsNyBAQCBzdGF0aWMgaW50IGNoZWNrX21lbWJsb2NrX29mZmxpbmVkX2NiKHN0cnVjdCBtZW1vcnlfYmxvY2sgKm1lbSwgdm9pZCAqYXJnKQogCQlwaHlzX2FkZHJfdCBiZWdpbnBhLCBlbmRwYTsKIAogCQliZWdpbnBhID0gUEZOX1BIWVMoc2VjdGlvbl9ucl90b19wZm4obWVtLT5zdGFydF9zZWN0aW9uX25yKSk7Ci0JCWVuZHBhID0gUEZOX1BIWVMoc2VjdGlvbl9ucl90b19wZm4obWVtLT5lbmRfc2VjdGlvbl9uciArIDEpKS0xOworCQllbmRwYSA9IGJlZ2lucGEgKyBtZW1vcnlfYmxvY2tfc2l6ZV9ieXRlcygpIC0gMTsKIAkJcHJfd2FybigicmVtb3ZpbmcgbWVtb3J5IGZhaWxzLCBiZWNhdXNlIG1lbW9yeSBbJXBhLSVwYV0gaXMgb25saW5lZFxuIiwKIAkJCSZiZWdpbnBhLCAmZW5kcGEpOwogCkBAIC0xODAwLDcgKzE3OTMsNyBAQCB2b2lkIF9fcmVtb3ZlX21lbW9yeShpbnQgbmlkLCB1NjQgc3RhcnQsIHU2NCBzaXplKQogewogCiAJLyoKLQkgKiB0cmlnZ2VyIEJVRygpIGlzIHNvbWUgbWVtb3J5IGlzIG5vdCBvZmZsaW5lZCBwcmlvciB0byBjYWxsaW5nIHRoaXMKKwkgKiB0cmlnZ2VyIEJVRygpIGlmIHNvbWUgbWVtb3J5IGlzIG5vdCBvZmZsaW5lZCBwcmlvciB0byBjYWxsaW5nIHRoaXMKIAkgKiBmdW5jdGlvbgogCSAqLwogCWlmICh0cnlfcmVtb3ZlX21lbW9yeShuaWQsIHN0YXJ0LCBzaXplKSkKZGlmZiAtLWdpdCBhL21tL21lbXBvbGljeS5jIGIvbW0vbWVtcG9saWN5LmMKaW5kZXggNjVlMDg3NC4uNGFlOTY3YiAxMDA2NDQKLS0tIGEvbW0vbWVtcG9saWN5LmMKKysrIGIvbW0vbWVtcG9saWN5LmMKQEAgLTY4LDcgKzY4LDcgQEAKICNkZWZpbmUgcHJfZm10KGZtdCkgS0JVSUxEX01PRE5BTUUgIjogIiBmbXQKIAogI2luY2x1ZGUgPGxpbnV4L21lbXBvbGljeS5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvcGFnZXdhbGsuaD4KICNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CiAjaW5jbHVkZSA8bGludXgvaHVnZXRsYi5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgpAQCAtNjU1LDYgKzY1NSwxMiBAQCBzdGF0aWMgaW50IHF1ZXVlX3BhZ2VzX3Rlc3Rfd2Fsayh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKIAlyZXR1cm4gMTsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBxdWV1ZV9wYWdlc193YWxrX29wcyA9IHsKKwkuaHVnZXRsYl9lbnRyeQkJPSBxdWV1ZV9wYWdlc19odWdldGxiLAorCS5wbWRfZW50cnkJCT0gcXVldWVfcGFnZXNfcHRlX3JhbmdlLAorCS50ZXN0X3dhbGsJCT0gcXVldWVfcGFnZXNfdGVzdF93YWxrLAorfTsKKwogLyoKICAqIFdhbGsgdGhyb3VnaCBwYWdlIHRhYmxlcyBhbmQgY29sbGVjdCBwYWdlcyB0byBiZSBtaWdyYXRlZC4KICAqCkBAIC02NzksMTUgKzY4NSw4IEBAIHF1ZXVlX3BhZ2VzX3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKIAkJLm5tYXNrID0gbm9kZXMsCiAJCS5wcmV2ID0gTlVMTCwKIAl9OwotCXN0cnVjdCBtbV93YWxrIHF1ZXVlX3BhZ2VzX3dhbGsgPSB7Ci0JCS5odWdldGxiX2VudHJ5ID0gcXVldWVfcGFnZXNfaHVnZXRsYiwKLQkJLnBtZF9lbnRyeSA9IHF1ZXVlX3BhZ2VzX3B0ZV9yYW5nZSwKLQkJLnRlc3Rfd2FsayA9IHF1ZXVlX3BhZ2VzX3Rlc3Rfd2FsaywKLQkJLm1tID0gbW0sCi0JCS5wcml2YXRlID0gJnFwLAotCX07CiAKLQlyZXR1cm4gd2Fsa19wYWdlX3JhbmdlKHN0YXJ0LCBlbmQsICZxdWV1ZV9wYWdlc193YWxrKTsKKwlyZXR1cm4gd2Fsa19wYWdlX3JhbmdlKG1tLCBzdGFydCwgZW5kLCAmcXVldWVfcGFnZXNfd2Fsa19vcHMsICZxcCk7CiB9CiAKIC8qCkBAIC0xMTgwLDggKzExNzksOCBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKm5ld19wYWdlKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIHN0YXJ0KQogCX0gZWxzZSBpZiAoUGFnZVRyYW5zSHVnZShwYWdlKSkgewogCQlzdHJ1Y3QgcGFnZSAqdGhwOwogCi0JCXRocCA9IGFsbG9jX3BhZ2VzX3ZtYShHRlBfVFJBTlNIVUdFLCBIUEFHRV9QTURfT1JERVIsIHZtYSwKLQkJCQlhZGRyZXNzLCBudW1hX25vZGVfaWQoKSk7CisJCXRocCA9IGFsbG9jX2h1Z2VwYWdlX3ZtYShHRlBfVFJBTlNIVUdFLCB2bWEsIGFkZHJlc3MsCisJCQkJCSBIUEFHRV9QTURfT1JERVIpOwogCQlpZiAoIXRocCkKIAkJCXJldHVybiBOVUxMOwogCQlwcmVwX3RyYW5zaHVnZV9wYWdlKHRocCk7CkBAIC0xNDA2LDYgKzE0MDUsNyBAQCBzdGF0aWMgbG9uZyBrZXJuZWxfbWJpbmQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW4sCiAJaW50IGVycjsKIAl1bnNpZ25lZCBzaG9ydCBtb2RlX2ZsYWdzOwogCisJc3RhcnQgPSB1bnRhZ2dlZF9hZGRyKHN0YXJ0KTsKIAltb2RlX2ZsYWdzID0gbW9kZSAmIE1QT0xfTU9ERV9GTEFHUzsKIAltb2RlICY9IH5NUE9MX01PREVfRkxBR1M7CiAJaWYgKG1vZGUgPj0gTVBPTF9NQVgpCkBAIC0xNTEzLDEwICsxNTEzLDYgQEAgc3RhdGljIGludCBrZXJuZWxfbWlncmF0ZV9wYWdlcyhwaWRfdCBwaWQsIHVuc2lnbmVkIGxvbmcgbWF4bm9kZSwKIAlpZiAobm9kZXNfZW1wdHkoKm5ldykpCiAJCWdvdG8gb3V0X3B1dDsKIAotCW5vZGVzX2FuZCgqbmV3LCAqbmV3LCBub2RlX3N0YXRlc1tOX01FTU9SWV0pOwotCWlmIChub2Rlc19lbXB0eSgqbmV3KSkKLQkJZ290byBvdXRfcHV0OwotCiAJZXJyID0gc2VjdXJpdHlfdGFza19tb3ZlbWVtb3J5KHRhc2spOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3B1dDsKQEAgLTE1NjMsNiArMTU1OSw4IEBAIHN0YXRpYyBpbnQga2VybmVsX2dldF9tZW1wb2xpY3koaW50IF9fdXNlciAqcG9saWN5LAogCWludCB1bmluaXRpYWxpemVkX3ZhcihwdmFsKTsKIAlub2RlbWFza190IG5vZGVzOwogCisJYWRkciA9IHVudGFnZ2VkX2FkZHIoYWRkcik7CisKIAlpZiAobm1hc2sgIT0gTlVMTCAmJiBtYXhub2RlIDwgbnJfbm9kZV9pZHMpCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC0xNzM0LDcgKzE3MzIsNyBAQCBzdHJ1Y3QgbWVtcG9saWN5ICpfX2dldF92bWFfcG9saWN5KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogICogZnJlZWluZyBieSBhbm90aGVyIHRhc2suICBJdCBpcyB0aGUgY2FsbGVyJ3MgcmVzcG9uc2liaWxpdHkgdG8gZnJlZSB0aGUKICAqIGV4dHJhIHJlZmVyZW5jZSBmb3Igc2hhcmVkIHBvbGljaWVzLgogICovCi1zdHJ1Y3QgbWVtcG9saWN5ICpnZXRfdm1hX3BvbGljeShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKK3N0YXRpYyBzdHJ1Y3QgbWVtcG9saWN5ICpnZXRfdm1hX3BvbGljeShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCQkJCXVuc2lnbmVkIGxvbmcgYWRkcikKIHsKIAlzdHJ1Y3QgbWVtcG9saWN5ICpwb2wgPSBfX2dldF92bWFfcG9saWN5KHZtYSwgYWRkcik7CkBAIC0yMDgzLDYgKzIwODEsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKmFsbG9jX3BhZ2VfaW50ZXJsZWF2ZShnZnBfdCBnZnAsIHVuc2lnbmVkIG9yZGVyLAogICogCUB2bWE6ICBQb2ludGVyIHRvIFZNQSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUuCiAgKglAYWRkcjogVmlydHVhbCBBZGRyZXNzIG9mIHRoZSBhbGxvY2F0aW9uLiBNdXN0IGJlIGluc2lkZSB0aGUgVk1BLgogICoJQG5vZGU6IFdoaWNoIG5vZGUgdG8gcHJlZmVyIGZvciBhbGxvY2F0aW9uIChtb2R1bG8gcG9saWN5KS4KKyAqCUBodWdlcGFnZTogZm9yIGh1Z2VwYWdlcyB0cnkgb25seSB0aGUgcHJlZmVycmVkIG5vZGUgaWYgcG9zc2libGUKICAqCiAgKiAJVGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgYSBwYWdlIGZyb20gdGhlIGtlcm5lbCBwYWdlIHBvb2wgYW5kIGFwcGxpZXMKICAqCWEgTlVNQSBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHRoZSBWTUEgb3IgdGhlIGN1cnJlbnQgcHJvY2Vzcy4KQEAgLTIwOTMsNyArMjA5Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqYWxsb2NfcGFnZV9pbnRlcmxlYXZlKGdmcF90IGdmcCwgdW5zaWduZWQgb3JkZXIsCiAgKi8KIHN0cnVjdCBwYWdlICoKIGFsbG9jX3BhZ2VzX3ZtYShnZnBfdCBnZnAsIGludCBvcmRlciwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0JCXVuc2lnbmVkIGxvbmcgYWRkciwgaW50IG5vZGUpCisJCXVuc2lnbmVkIGxvbmcgYWRkciwgaW50IG5vZGUsIGJvb2wgaHVnZXBhZ2UpCiB7CiAJc3RydWN0IG1lbXBvbGljeSAqcG9sOwogCXN0cnVjdCBwYWdlICpwYWdlOwpAQCAtMjExMSw2ICsyMTEwLDQyIEBAIGFsbG9jX3BhZ2VzX3ZtYShnZnBfdCBnZnAsIGludCBvcmRlciwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCWdvdG8gb3V0OwogCX0KIAorCWlmICh1bmxpa2VseShJU19FTkFCTEVEKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSkgJiYgaHVnZXBhZ2UpKSB7CisJCWludCBocGFnZV9ub2RlID0gbm9kZTsKKworCQkvKgorCQkgKiBGb3IgaHVnZXBhZ2UgYWxsb2NhdGlvbiBhbmQgbm9uLWludGVybGVhdmUgcG9saWN5IHdoaWNoCisJCSAqIGFsbG93cyB0aGUgY3VycmVudCBub2RlIChvciBvdGhlciBleHBsaWNpdGx5IHByZWZlcnJlZAorCQkgKiBub2RlKSB3ZSBvbmx5IHRyeSB0byBhbGxvY2F0ZSBmcm9tIHRoZSBjdXJyZW50L3ByZWZlcnJlZAorCQkgKiBub2RlIGFuZCBkb24ndCBmYWxsIGJhY2sgdG8gb3RoZXIgbm9kZXMsIGFzIHRoZSBjb3N0IG9mCisJCSAqIHJlbW90ZSBhY2Nlc3NlcyB3b3VsZCBsaWtlbHkgb2Zmc2V0IFRIUCBiZW5lZml0cy4KKwkJICoKKwkJICogSWYgdGhlIHBvbGljeSBpcyBpbnRlcmxlYXZlLCBvciBkb2VzIG5vdCBhbGxvdyB0aGUgY3VycmVudAorCQkgKiBub2RlIGluIGl0cyBub2RlbWFzaywgd2UgYWxsb2NhdGUgdGhlIHN0YW5kYXJkIHdheS4KKwkJICovCisJCWlmIChwb2wtPm1vZGUgPT0gTVBPTF9QUkVGRVJSRUQgJiYgIShwb2wtPmZsYWdzICYgTVBPTF9GX0xPQ0FMKSkKKwkJCWhwYWdlX25vZGUgPSBwb2wtPnYucHJlZmVycmVkX25vZGU7CisKKwkJbm1hc2sgPSBwb2xpY3lfbm9kZW1hc2soZ2ZwLCBwb2wpOworCQlpZiAoIW5tYXNrIHx8IG5vZGVfaXNzZXQoaHBhZ2Vfbm9kZSwgKm5tYXNrKSkgeworCQkJbXBvbF9jb25kX3B1dChwb2wpOworCQkJcGFnZSA9IF9fYWxsb2NfcGFnZXNfbm9kZShocGFnZV9ub2RlLAorCQkJCQkJZ2ZwIHwgX19HRlBfVEhJU05PREUsIG9yZGVyKTsKKworCQkJLyoKKwkJCSAqIElmIGh1Z2VwYWdlIGFsbG9jYXRpb25zIGFyZSBjb25maWd1cmVkIHRvIGFsd2F5cworCQkJICogc3luY2hyb25vdXMgY29tcGFjdCBvciB0aGUgdm1hIGhhcyBiZWVuIG1hZHZpc2VkCisJCQkgKiB0byBwcmVmZXIgaHVnZXBhZ2UgYmFja2luZywgcmV0cnkgYWxsb3dpbmcgcmVtb3RlCisJCQkgKiBtZW1vcnkgYXMgd2VsbC4KKwkJCSAqLworCQkJaWYgKCFwYWdlICYmIChnZnAgJiBfX0dGUF9ESVJFQ1RfUkVDTEFJTSkpCisJCQkJcGFnZSA9IF9fYWxsb2NfcGFnZXNfbm9kZShocGFnZV9ub2RlLAorCQkJCQkJZ2ZwIHwgX19HRlBfTk9SRVRSWSwgb3JkZXIpOworCisJCQlnb3RvIG91dDsKKwkJfQorCX0KKwogCW5tYXNrID0gcG9saWN5X25vZGVtYXNrKGdmcCwgcG9sKTsKIAlwcmVmZXJyZWRfbmlkID0gcG9saWN5X25vZGUoZ2ZwLCBwb2wsIG5vZGUpOwogCXBhZ2UgPSBfX2FsbG9jX3BhZ2VzX25vZGVtYXNrKGdmcCwgb3JkZXIsIHByZWZlcnJlZF9uaWQsIG5tYXNrKTsKZGlmZiAtLWdpdCBhL21tL21lbXJlbWFwLmMgYi9tbS9tZW1yZW1hcC5jCmluZGV4IGVkNzBjNGUuLjMyYzc5YjUgMTAwNjQ0Ci0tLSBhL21tL21lbXJlbWFwLmMKKysrIGIvbW0vbWVtcmVtYXAuYwpAQCAtMjEsMTMgKzIxLDEzIEBAIERFRklORV9TVEFUSUNfS0VZX0ZBTFNFKGRldm1hcF9tYW5hZ2VkX2tleSk7CiBFWFBPUlRfU1lNQk9MKGRldm1hcF9tYW5hZ2VkX2tleSk7CiBzdGF0aWMgYXRvbWljX3QgZGV2bWFwX21hbmFnZWRfZW5hYmxlOwogCi1zdGF0aWMgdm9pZCBkZXZtYXBfbWFuYWdlZF9lbmFibGVfcHV0KHZvaWQgKmRhdGEpCitzdGF0aWMgdm9pZCBkZXZtYXBfbWFuYWdlZF9lbmFibGVfcHV0KHZvaWQpCiB7CiAJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmRldm1hcF9tYW5hZ2VkX2VuYWJsZSkpCiAJCXN0YXRpY19icmFuY2hfZGlzYWJsZSgmZGV2bWFwX21hbmFnZWRfa2V5KTsKIH0KIAotc3RhdGljIGludCBkZXZtYXBfbWFuYWdlZF9lbmFibGVfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCkKK3N0YXRpYyBpbnQgZGV2bWFwX21hbmFnZWRfZW5hYmxlX2dldChzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKQogewogCWlmICghcGdtYXAtPm9wcyB8fCAhcGdtYXAtPm9wcy0+cGFnZV9mcmVlKSB7CiAJCVdBUk4oMSwgIk1pc3NpbmcgcGFnZV9mcmVlIG1ldGhvZFxuIik7CkBAIC0zNiwxMyArMzYsMTYgQEAgc3RhdGljIGludCBkZXZtYXBfbWFuYWdlZF9lbmFibGVfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldl9wYWdlbWFwICpwZ20KIAogCWlmIChhdG9taWNfaW5jX3JldHVybigmZGV2bWFwX21hbmFnZWRfZW5hYmxlKSA9PSAxKQogCQlzdGF0aWNfYnJhbmNoX2VuYWJsZSgmZGV2bWFwX21hbmFnZWRfa2V5KTsKLQlyZXR1cm4gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRldiwgZGV2bWFwX21hbmFnZWRfZW5hYmxlX3B1dCwgTlVMTCk7CisJcmV0dXJuIDA7CiB9CiAjZWxzZQotc3RhdGljIGludCBkZXZtYXBfbWFuYWdlZF9lbmFibGVfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCkKK3N0YXRpYyBpbnQgZGV2bWFwX21hbmFnZWRfZW5hYmxlX2dldChzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKQogewogCXJldHVybiAtRUlOVkFMOwogfQorc3RhdGljIHZvaWQgZGV2bWFwX21hbmFnZWRfZW5hYmxlX3B1dCh2b2lkKQoreworfQogI2VuZGlmIC8qIENPTkZJR19ERVZfUEFHRU1BUF9PUFMgKi8KIAogc3RhdGljIHZvaWQgcGdtYXBfYXJyYXlfZGVsZXRlKHN0cnVjdCByZXNvdXJjZSAqcmVzKQpAQCAtOTksMTAgKzEwMiw4IEBAIHN0YXRpYyB2b2lkIGRldl9wYWdlbWFwX2NsZWFudXAoc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCkKIAkJcGdtYXAtPnJlZiA9IE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIGRldm1fbWVtcmVtYXBfcGFnZXNfcmVsZWFzZSh2b2lkICpkYXRhKQordm9pZCBtZW11bm1hcF9wYWdlcyhzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKQogewotCXN0cnVjdCBkZXZfcGFnZW1hcCAqcGdtYXAgPSBkYXRhOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9IHBnbWFwLT5kZXY7CiAJc3RydWN0IHJlc291cmNlICpyZXMgPSAmcGdtYXAtPnJlczsKIAl1bnNpZ25lZCBsb25nIHBmbjsKIAlpbnQgbmlkOwpAQCAtMTI5LDggKzEzMCwxNCBAQCBzdGF0aWMgdm9pZCBkZXZtX21lbXJlbWFwX3BhZ2VzX3JlbGVhc2Uodm9pZCAqZGF0YSkKIAogCXVudHJhY2tfcGZuKE5VTEwsIFBIWVNfUEZOKHJlcy0+c3RhcnQpLCByZXNvdXJjZV9zaXplKHJlcykpOwogCXBnbWFwX2FycmF5X2RlbGV0ZShyZXMpOwotCWRldl9XQVJOX09OQ0UoZGV2LCBwZ21hcC0+YWx0bWFwLmFsbG9jLAotCQkgICAgICAiJXM6IGZhaWxlZCB0byBmcmVlIGFsbCByZXNlcnZlZCBwYWdlc1xuIiwgX19mdW5jX18pOworCVdBUk5fT05DRShwZ21hcC0+YWx0bWFwLmFsbG9jLCAiZmFpbGVkIHRvIGZyZWUgYWxsIHJlc2VydmVkIHBhZ2VzXG4iKTsKKwlkZXZtYXBfbWFuYWdlZF9lbmFibGVfcHV0KCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChtZW11bm1hcF9wYWdlcyk7CisKK3N0YXRpYyB2b2lkIGRldm1fbWVtcmVtYXBfcGFnZXNfcmVsZWFzZSh2b2lkICpkYXRhKQoreworCW1lbXVubWFwX3BhZ2VzKGRhdGEpOwogfQogCiBzdGF0aWMgdm9pZCBkZXZfcGFnZW1hcF9wZXJjcHVfcmVsZWFzZShzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKQpAQCAtMTQxLDI3ICsxNDgsMTIgQEAgc3RhdGljIHZvaWQgZGV2X3BhZ2VtYXBfcGVyY3B1X3JlbGVhc2Uoc3RydWN0IHBlcmNwdV9yZWYgKnJlZikKIAljb21wbGV0ZSgmcGdtYXAtPmRvbmUpOwogfQogCi0vKioKLSAqIGRldm1fbWVtcmVtYXBfcGFnZXMgLSByZW1hcCBhbmQgcHJvdmlkZSBtZW1tYXAgYmFja2luZyBmb3IgdGhlIGdpdmVuIHJlc291cmNlCi0gKiBAZGV2OiBob3N0aW5nIGRldmljZSBmb3IgQHJlcwotICogQHBnbWFwOiBwb2ludGVyIHRvIGEgc3RydWN0IGRldl9wYWdlbWFwCi0gKgotICogTm90ZXM6Ci0gKiAxLyBBdCBhIG1pbmltdW0gdGhlIHJlcyBhbmQgdHlwZSBtZW1iZXJzIG9mIEBwZ21hcCBtdXN0IGJlIGluaXRpYWxpemVkCi0gKiAgICBieSB0aGUgY2FsbGVyIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHRoaXMgZnVuY3Rpb24KLSAqCi0gKiAyLyBUaGUgYWx0bWFwIGZpZWxkIG1heSBvcHRpb25hbGx5IGJlIGluaXRpYWxpemVkLCBpbiB3aGljaCBjYXNlCi0gKiAgICBQR01BUF9BTFRNQVBfVkFMSUQgbXVzdCBiZSBzZXQgaW4gcGdtYXAtPmZsYWdzLgotICoKLSAqIDMvIFRoZSByZWYgZmllbGQgbWF5IG9wdGlvbmFsbHkgYmUgcHJvdmlkZWQsIGluIHdoaWNoIHBnbWFwLT5yZWYgbXVzdCBiZQotICogICAgJ2xpdmUnIG9uIGVudHJ5IGFuZCB3aWxsIGJlIGtpbGxlZCBhbmQgcmVhcGVkIGF0Ci0gKiAgICBkZXZtX21lbXJlbWFwX3BhZ2VzX3JlbGVhc2UoKSB0aW1lLCBvciBpZiB0aGlzIHJvdXRpbmUgZmFpbHMuCi0gKgotICogNC8gcmVzIGlzIGV4cGVjdGVkIHRvIGJlIGEgaG9zdCBtZW1vcnkgcmFuZ2UgdGhhdCBjb3VsZCBmZWFzaWJseSBiZQotICogICAgdHJlYXRlZCBhcyBhICJTeXN0ZW0gUkFNIiByYW5nZSwgaS5lLiBub3QgYSBkZXZpY2UgbW1pbyByYW5nZSwgYnV0Ci0gKiAgICB0aGlzIGlzIG5vdCBlbmZvcmNlZC4KKy8qCisgKiBOb3QgZGV2aWNlIG1hbmFnZWQgdmVyc2lvbiBvZiBkZXZfbWVtcmVtYXBfcGFnZXMsIHVuZG9uZSBieQorICogbWVtdW5tYXBfcGFnZXMoKS4gIFBsZWFzZSB1c2UgZGV2X21lbXJlbWFwX3BhZ2VzIGlmIHlvdSBoYXZlIGEgc3RydWN0CisgKiBkZXZpY2UgYXZhaWxhYmxlLgogICovCi12b2lkICpkZXZtX21lbXJlbWFwX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCkKK3ZvaWQgKm1lbXJlbWFwX3BhZ2VzKHN0cnVjdCBkZXZfcGFnZW1hcCAqcGdtYXAsIGludCBuaWQpCiB7CiAJc3RydWN0IHJlc291cmNlICpyZXMgPSAmcGdtYXAtPnJlczsKIAlzdHJ1Y3QgZGV2X3BhZ2VtYXAgKmNvbmZsaWN0X3BnbWFwOwpAQCAtMTcyLDcgKzE2NCw3IEBAIHZvaWQgKmRldm1fbWVtcmVtYXBfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKQogCQkuYWx0bWFwID0gcGdtYXBfYWx0bWFwKHBnbWFwKSwKIAl9OwogCXBncHJvdF90IHBncHJvdCA9IFBBR0VfS0VSTkVMOwotCWludCBlcnJvciwgbmlkLCBpc19yYW07CisJaW50IGVycm9yLCBpc19yYW07CiAJYm9vbCBuZWVkX2Rldm1hcF9tYW5hZ2VkID0gdHJ1ZTsKIAogCXN3aXRjaCAocGdtYXAtPnR5cGUpIHsKQEAgLTIyMCwxNCArMjEyLDE0IEBAIHZvaWQgKmRldm1fbWVtcmVtYXBfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKQogCX0KIAogCWlmIChuZWVkX2Rldm1hcF9tYW5hZ2VkKSB7Ci0JCWVycm9yID0gZGV2bWFwX21hbmFnZWRfZW5hYmxlX2dldChkZXYsIHBnbWFwKTsKKwkJZXJyb3IgPSBkZXZtYXBfbWFuYWdlZF9lbmFibGVfZ2V0KHBnbWFwKTsKIAkJaWYgKGVycm9yKQogCQkJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOwogCX0KIAogCWNvbmZsaWN0X3BnbWFwID0gZ2V0X2Rldl9wYWdlbWFwKFBIWVNfUEZOKHJlcy0+c3RhcnQpLCBOVUxMKTsKIAlpZiAoY29uZmxpY3RfcGdtYXApIHsKLQkJZGV2X1dBUk4oZGV2LCAiQ29uZmxpY3RpbmcgbWFwcGluZyBpbiBzYW1lIHNlY3Rpb25cbiIpOworCQlXQVJOKDEsICJDb25mbGljdGluZyBtYXBwaW5nIGluIHNhbWUgc2VjdGlvblxuIik7CiAJCXB1dF9kZXZfcGFnZW1hcChjb25mbGljdF9wZ21hcCk7CiAJCWVycm9yID0gLUVOT01FTTsKIAkJZ290byBlcnJfYXJyYXk7CkBAIC0yMzUsNyArMjI3LDcgQEAgdm9pZCAqZGV2bV9tZW1yZW1hcF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZfcGFnZW1hcCAqcGdtYXApCiAKIAljb25mbGljdF9wZ21hcCA9IGdldF9kZXZfcGFnZW1hcChQSFlTX1BGTihyZXMtPmVuZCksIE5VTEwpOwogCWlmIChjb25mbGljdF9wZ21hcCkgewotCQlkZXZfV0FSTihkZXYsICJDb25mbGljdGluZyBtYXBwaW5nIGluIHNhbWUgc2VjdGlvblxuIik7CisJCVdBUk4oMSwgIkNvbmZsaWN0aW5nIG1hcHBpbmcgaW4gc2FtZSBzZWN0aW9uXG4iKTsKIAkJcHV0X2Rldl9wYWdlbWFwKGNvbmZsaWN0X3BnbWFwKTsKIAkJZXJyb3IgPSAtRU5PTUVNOwogCQlnb3RvIGVycl9hcnJheTsKQEAgLTI1MSwxNCArMjQzLDExIEBAIHZvaWQgKmRldm1fbWVtcmVtYXBfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKQogCQlnb3RvIGVycl9hcnJheTsKIAl9CiAKLQlwZ21hcC0+ZGV2ID0gZGV2OwotCiAJZXJyb3IgPSB4YV9lcnIoeGFfc3RvcmVfcmFuZ2UoJnBnbWFwX2FycmF5LCBQSFlTX1BGTihyZXMtPnN0YXJ0KSwKIAkJCQlQSFlTX1BGTihyZXMtPmVuZCksIHBnbWFwLCBHRlBfS0VSTkVMKSk7CiAJaWYgKGVycm9yKQogCQlnb3RvIGVycl9hcnJheTsKIAotCW5pZCA9IGRldl90b19ub2RlKGRldik7CiAJaWYgKG5pZCA8IDApCiAJCW5pZCA9IG51bWFfbWVtX2lkKCk7CiAKQEAgLTMxNCwxMiArMzAzLDYgQEAgdm9pZCAqZGV2bV9tZW1yZW1hcF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZfcGFnZW1hcCAqcGdtYXApCiAJCQkJUEhZU19QRk4ocmVzLT5zdGFydCksCiAJCQkJUEhZU19QRk4ocmVzb3VyY2Vfc2l6ZShyZXMpKSwgcGdtYXApOwogCXBlcmNwdV9yZWZfZ2V0X21hbnkocGdtYXAtPnJlZiwgcGZuX2VuZChwZ21hcCkgLSBwZm5fZmlyc3QocGdtYXApKTsKLQotCWVycm9yID0gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRldiwgZGV2bV9tZW1yZW1hcF9wYWdlc19yZWxlYXNlLAotCQkJcGdtYXApOwotCWlmIChlcnJvcikKLQkJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOwotCiAJcmV0dXJuIF9fdmEocmVzLT5zdGFydCk7CiAKICBlcnJfYWRkX21lbW9yeToKQEAgLTMzMSw4ICszMTQsNDYgQEAgdm9pZCAqZGV2bV9tZW1yZW1hcF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZfcGFnZW1hcCAqcGdtYXApCiAgZXJyX2FycmF5OgogCWRldl9wYWdlbWFwX2tpbGwocGdtYXApOwogCWRldl9wYWdlbWFwX2NsZWFudXAocGdtYXApOworCWRldm1hcF9tYW5hZ2VkX2VuYWJsZV9wdXQoKTsKIAlyZXR1cm4gRVJSX1BUUihlcnJvcik7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChtZW1yZW1hcF9wYWdlcyk7CisKKy8qKgorICogZGV2bV9tZW1yZW1hcF9wYWdlcyAtIHJlbWFwIGFuZCBwcm92aWRlIG1lbW1hcCBiYWNraW5nIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UKKyAqIEBkZXY6IGhvc3RpbmcgZGV2aWNlIGZvciBAcmVzCisgKiBAcGdtYXA6IHBvaW50ZXIgdG8gYSBzdHJ1Y3QgZGV2X3BhZ2VtYXAKKyAqCisgKiBOb3RlczoKKyAqIDEvIEF0IGEgbWluaW11bSB0aGUgcmVzIGFuZCB0eXBlIG1lbWJlcnMgb2YgQHBnbWFwIG11c3QgYmUgaW5pdGlhbGl6ZWQKKyAqICAgIGJ5IHRoZSBjYWxsZXIgYmVmb3JlIHBhc3NpbmcgaXQgdG8gdGhpcyBmdW5jdGlvbgorICoKKyAqIDIvIFRoZSBhbHRtYXAgZmllbGQgbWF5IG9wdGlvbmFsbHkgYmUgaW5pdGlhbGl6ZWQsIGluIHdoaWNoIGNhc2UKKyAqICAgIFBHTUFQX0FMVE1BUF9WQUxJRCBtdXN0IGJlIHNldCBpbiBwZ21hcC0+ZmxhZ3MuCisgKgorICogMy8gVGhlIHJlZiBmaWVsZCBtYXkgb3B0aW9uYWxseSBiZSBwcm92aWRlZCwgaW4gd2hpY2ggcGdtYXAtPnJlZiBtdXN0IGJlCisgKiAgICAnbGl2ZScgb24gZW50cnkgYW5kIHdpbGwgYmUga2lsbGVkIGFuZCByZWFwZWQgYXQKKyAqICAgIGRldm1fbWVtcmVtYXBfcGFnZXNfcmVsZWFzZSgpIHRpbWUsIG9yIGlmIHRoaXMgcm91dGluZSBmYWlscy4KKyAqCisgKiA0LyByZXMgaXMgZXhwZWN0ZWQgdG8gYmUgYSBob3N0IG1lbW9yeSByYW5nZSB0aGF0IGNvdWxkIGZlYXNpYmx5IGJlCisgKiAgICB0cmVhdGVkIGFzIGEgIlN5c3RlbSBSQU0iIHJhbmdlLCBpLmUuIG5vdCBhIGRldmljZSBtbWlvIHJhbmdlLCBidXQKKyAqICAgIHRoaXMgaXMgbm90IGVuZm9yY2VkLgorICovCit2b2lkICpkZXZtX21lbXJlbWFwX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCkKK3sKKwlpbnQgZXJyb3I7CisJdm9pZCAqcmV0OworCisJcmV0ID0gbWVtcmVtYXBfcGFnZXMocGdtYXAsIGRldl90b19ub2RlKGRldikpOworCWlmIChJU19FUlIocmV0KSkKKwkJcmV0dXJuIHJldDsKKworCWVycm9yID0gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRldiwgZGV2bV9tZW1yZW1hcF9wYWdlc19yZWxlYXNlLAorCQkJcGdtYXApOworCWlmIChlcnJvcikKKwkJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOworCXJldHVybiByZXQ7Cit9CiBFWFBPUlRfU1lNQk9MX0dQTChkZXZtX21lbXJlbWFwX3BhZ2VzKTsKIAogdm9pZCBkZXZtX21lbXVubWFwX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCkKZGlmZiAtLWdpdCBhL21tL21pZ3JhdGUuYyBiL21tL21pZ3JhdGUuYwppbmRleCBhNDI4NThkLi40ZmU0NWQxIDEwMDY0NAotLS0gYS9tbS9taWdyYXRlLmMKKysrIGIvbW0vbWlncmF0ZS5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaHVnZXRsYi5oPgogI2luY2x1ZGUgPGxpbnV4L2h1Z2V0bGJfY2dyb3VwLmg+CiAjaW5jbHVkZSA8bGludXgvZ2ZwLmg+CisjaW5jbHVkZSA8bGludXgvcGFnZXdhbGsuaD4KICNpbmNsdWRlIDxsaW51eC9wZm5fdC5oPgogI2luY2x1ZGUgPGxpbnV4L21lbXJlbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvdXNlcmZhdWx0ZmRfay5oPgpAQCAtNDU5LDcgKzQ2MCw3IEBAIGludCBtaWdyYXRlX3BhZ2VfbW92ZV9tYXBwaW5nKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCiAJCWZvciAoaSA9IDE7IGkgPCBIUEFHRV9QTURfTlI7IGkrKykgewogCQkJeGFzX25leHQoJnhhcyk7Ci0JCQl4YXNfc3RvcmUoJnhhcywgbmV3cGFnZSArIGkpOworCQkJeGFzX3N0b3JlKCZ4YXMsIG5ld3BhZ2UpOwogCQl9CiAJfQogCkBAIC0xNjExLDcgKzE2MTIsNyBAQCBzdGF0aWMgaW50IGRvX3BhZ2VzX21vdmUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIG5vZGVtYXNrX3QgdGFza19ub2RlcywKIAkJCWdvdG8gb3V0X2ZsdXNoOwogCQlpZiAoZ2V0X3VzZXIobm9kZSwgbm9kZXMgKyBpKSkKIAkJCWdvdG8gb3V0X2ZsdXNoOwotCQlhZGRyID0gKHVuc2lnbmVkIGxvbmcpcDsKKwkJYWRkciA9ICh1bnNpZ25lZCBsb25nKXVudGFnZ2VkX2FkZHIocCk7CiAKIAkJZXJyID0gLUVOT0RFVjsKIAkJaWYgKG5vZGUgPCAwIHx8IG5vZGUgPj0gTUFYX05VTU5PREVTKQpAQCAtMTg5MSw3ICsxODkyLDcgQEAgc3RhdGljIGludCBudW1hbWlncmF0ZV9pc29sYXRlX3BhZ2UocGdfZGF0YV90ICpwZ2RhdCwgc3RydWN0IHBhZ2UgKnBhZ2UpCiAJVk1fQlVHX09OX1BBR0UoY29tcG91bmRfb3JkZXIocGFnZSkgJiYgIVBhZ2VUcmFuc0h1Z2UocGFnZSksIHBhZ2UpOwogCiAJLyogQXZvaWQgbWlncmF0aW5nIHRvIGEgbm9kZSB0aGF0IGlzIG5lYXJseSBmdWxsICovCi0JaWYgKCFtaWdyYXRlX2JhbGFuY2VkX3BnZGF0KHBnZGF0LCAxVUwgPDwgY29tcG91bmRfb3JkZXIocGFnZSkpKQorCWlmICghbWlncmF0ZV9iYWxhbmNlZF9wZ2RhdChwZ2RhdCwgY29tcG91bmRfbnIocGFnZSkpKQogCQlyZXR1cm4gMDsKIAogCWlmIChpc29sYXRlX2xydV9wYWdlKHBhZ2UpKQpAQCAtMjExOSwxNyArMjEyMCw3IEBAIGludCBtaWdyYXRlX21pc3BsYWNlZF90cmFuc2h1Z2VfcGFnZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAogI2VuZGlmIC8qIENPTkZJR19OVU1BICovCiAKLSNpZiBkZWZpbmVkKENPTkZJR19NSUdSQVRFX1ZNQV9IRUxQRVIpCi1zdHJ1Y3QgbWlncmF0ZV92bWEgewotCXN0cnVjdCB2bV9hcmVhX3N0cnVjdAkqdm1hOwotCXVuc2lnbmVkIGxvbmcJCSpkc3Q7Ci0JdW5zaWduZWQgbG9uZwkJKnNyYzsKLQl1bnNpZ25lZCBsb25nCQljcGFnZXM7Ci0JdW5zaWduZWQgbG9uZwkJbnBhZ2VzOwotCXVuc2lnbmVkIGxvbmcJCXN0YXJ0OwotCXVuc2lnbmVkIGxvbmcJCWVuZDsKLX07Ci0KKyNpZmRlZiBDT05GSUdfREVWSUNFX1BSSVZBVEUKIHN0YXRpYyBpbnQgbWlncmF0ZV92bWFfY29sbGVjdF9ob2xlKHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJCQkJICAgIHVuc2lnbmVkIGxvbmcgZW5kLAogCQkJCSAgICBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKQEAgLTIyMjcsMTcgKzIyMTgsMTUgQEAgc3RhdGljIGludCBtaWdyYXRlX3ZtYV9jb2xsZWN0X3BtZChwbWRfdCAqcG1kcCwKIAkJcHRlX3QgcHRlOwogCiAJCXB0ZSA9ICpwdGVwOwotCQlwZm4gPSBwdGVfcGZuKHB0ZSk7CiAKIAkJaWYgKHB0ZV9ub25lKHB0ZSkpIHsKIAkJCW1wZm4gPSBNSUdSQVRFX1BGTl9NSUdSQVRFOwogCQkJbWlncmF0ZS0+Y3BhZ2VzKys7Ci0JCQlwZm4gPSAwOwogCQkJZ290byBuZXh0OwogCQl9CiAKIAkJaWYgKCFwdGVfcHJlc2VudChwdGUpKSB7Ci0JCQltcGZuID0gcGZuID0gMDsKKwkJCW1wZm4gPSAwOwogCiAJCQkvKgogCQkJICogT25seSBjYXJlIGFib3V0IHVuYWRkcmVzc2FibGUgZGV2aWNlIHBhZ2Ugc3BlY2lhbApAQCAtMjI0OSwxNSArMjIzOCwxNSBAQCBzdGF0aWMgaW50IG1pZ3JhdGVfdm1hX2NvbGxlY3RfcG1kKHBtZF90ICpwbWRwLAogCQkJCWdvdG8gbmV4dDsKIAogCQkJcGFnZSA9IGRldmljZV9wcml2YXRlX2VudHJ5X3RvX3BhZ2UoZW50cnkpOwotCQkJbXBmbiA9IG1pZ3JhdGVfcGZuKHBhZ2VfdG9fcGZuKHBhZ2UpKXwKLQkJCQlNSUdSQVRFX1BGTl9ERVZJQ0UgfCBNSUdSQVRFX1BGTl9NSUdSQVRFOworCQkJbXBmbiA9IG1pZ3JhdGVfcGZuKHBhZ2VfdG9fcGZuKHBhZ2UpKSB8CisJCQkJCU1JR1JBVEVfUEZOX01JR1JBVEU7CiAJCQlpZiAoaXNfd3JpdGVfZGV2aWNlX3ByaXZhdGVfZW50cnkoZW50cnkpKQogCQkJCW1wZm4gfD0gTUlHUkFURV9QRk5fV1JJVEU7CiAJCX0gZWxzZSB7CisJCQlwZm4gPSBwdGVfcGZuKHB0ZSk7CiAJCQlpZiAoaXNfemVyb19wZm4ocGZuKSkgewogCQkJCW1wZm4gPSBNSUdSQVRFX1BGTl9NSUdSQVRFOwogCQkJCW1pZ3JhdGUtPmNwYWdlcysrOwotCQkJCXBmbiA9IDA7CiAJCQkJZ290byBuZXh0OwogCQkJfQogCQkJcGFnZSA9IHZtX25vcm1hbF9wYWdlKG1pZ3JhdGUtPnZtYSwgYWRkciwgcHRlKTsKQEAgLTIyNjcsMTAgKzIyNTYsOSBAQCBzdGF0aWMgaW50IG1pZ3JhdGVfdm1hX2NvbGxlY3RfcG1kKHBtZF90ICpwbWRwLAogCiAJCS8qIEZJWE1FIHN1cHBvcnQgVEhQICovCiAJCWlmICghcGFnZSB8fCAhcGFnZS0+bWFwcGluZyB8fCBQYWdlVHJhbnNDb21wb3VuZChwYWdlKSkgewotCQkJbXBmbiA9IHBmbiA9IDA7CisJCQltcGZuID0gMDsKIAkJCWdvdG8gbmV4dDsKIAkJfQotCQlwZm4gPSBwYWdlX3RvX3BmbihwYWdlKTsKIAogCQkvKgogCQkgKiBCeSBnZXR0aW5nIGEgcmVmZXJlbmNlIG9uIHRoZSBwYWdlIHdlIHBpbiBpdCBhbmQgdGhhdCBibG9ja3MKQEAgLTIzMjksNiArMjMxNywxMSBAQCBzdGF0aWMgaW50IG1pZ3JhdGVfdm1hX2NvbGxlY3RfcG1kKHBtZF90ICpwbWRwLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzIG1pZ3JhdGVfdm1hX3dhbGtfb3BzID0geworCS5wbWRfZW50cnkJCT0gbWlncmF0ZV92bWFfY29sbGVjdF9wbWQsCisJLnB0ZV9ob2xlCQk9IG1pZ3JhdGVfdm1hX2NvbGxlY3RfaG9sZSwKK307CisKIC8qCiAgKiBtaWdyYXRlX3ZtYV9jb2xsZWN0KCkgLSBjb2xsZWN0IHBhZ2VzIG92ZXIgYSByYW5nZSBvZiB2aXJ0dWFsIGFkZHJlc3NlcwogICogQG1pZ3JhdGU6IG1pZ3JhdGUgc3RydWN0IGNvbnRhaW5pbmcgYWxsIG1pZ3JhdGlvbiBpbmZvcm1hdGlvbgpAQCAtMjM0MCwyMSArMjMzMywxNSBAQCBzdGF0aWMgaW50IG1pZ3JhdGVfdm1hX2NvbGxlY3RfcG1kKHBtZF90ICpwbWRwLAogc3RhdGljIHZvaWQgbWlncmF0ZV92bWFfY29sbGVjdChzdHJ1Y3QgbWlncmF0ZV92bWEgKm1pZ3JhdGUpCiB7CiAJc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSByYW5nZTsKLQlzdHJ1Y3QgbW1fd2FsayBtbV93YWxrID0gewotCQkucG1kX2VudHJ5ID0gbWlncmF0ZV92bWFfY29sbGVjdF9wbWQsCi0JCS5wdGVfaG9sZSA9IG1pZ3JhdGVfdm1hX2NvbGxlY3RfaG9sZSwKLQkJLnZtYSA9IG1pZ3JhdGUtPnZtYSwKLQkJLm1tID0gbWlncmF0ZS0+dm1hLT52bV9tbSwKLQkJLnByaXZhdGUgPSBtaWdyYXRlLAotCX07CiAKLQltbXVfbm90aWZpZXJfcmFuZ2VfaW5pdCgmcmFuZ2UsIE1NVV9OT1RJRllfQ0xFQVIsIDAsIE5VTEwsIG1tX3dhbGsubW0sCi0JCQkJbWlncmF0ZS0+c3RhcnQsCi0JCQkJbWlncmF0ZS0+ZW5kKTsKKwltbXVfbm90aWZpZXJfcmFuZ2VfaW5pdCgmcmFuZ2UsIE1NVV9OT1RJRllfQ0xFQVIsIDAsIE5VTEwsCisJCQltaWdyYXRlLT52bWEtPnZtX21tLCBtaWdyYXRlLT5zdGFydCwgbWlncmF0ZS0+ZW5kKTsKIAltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwotCXdhbGtfcGFnZV9yYW5nZShtaWdyYXRlLT5zdGFydCwgbWlncmF0ZS0+ZW5kLCAmbW1fd2Fsayk7Ci0JbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKCZyYW5nZSk7CiAKKwl3YWxrX3BhZ2VfcmFuZ2UobWlncmF0ZS0+dm1hLT52bV9tbSwgbWlncmF0ZS0+c3RhcnQsIG1pZ3JhdGUtPmVuZCwKKwkJCSZtaWdyYXRlX3ZtYV93YWxrX29wcywgbWlncmF0ZSk7CisKKwltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9lbmQoJnJhbmdlKTsKIAltaWdyYXRlLT5lbmQgPSBtaWdyYXRlLT5zdGFydCArIChtaWdyYXRlLT5ucGFnZXMgPDwgUEFHRV9TSElGVCk7CiB9CiAKQEAgLTI1NzcsNiArMjU2NCwxMTAgQEAgc3RhdGljIHZvaWQgbWlncmF0ZV92bWFfdW5tYXAoc3RydWN0IG1pZ3JhdGVfdm1hICptaWdyYXRlKQogCX0KIH0KIAorLyoqCisgKiBtaWdyYXRlX3ZtYV9zZXR1cCgpIC0gcHJlcGFyZSB0byBtaWdyYXRlIGEgcmFuZ2Ugb2YgbWVtb3J5CisgKiBAYXJnczogY29udGFpbnMgdGhlIHZtYSwgc3RhcnQsIGFuZCBhbmQgcGZucyBhcnJheXMgZm9yIHRoZSBtaWdyYXRpb24KKyAqCisgKiBSZXR1cm5zOiBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlcywgMCB3aGVuIDAgb3IgbW9yZSBwYWdlcyB3ZXJlIG1pZ3JhdGVkCisgKiB3aXRob3V0IGFuIGVycm9yLgorICoKKyAqIFByZXBhcmUgdG8gbWlncmF0ZSBhIHJhbmdlIG9mIG1lbW9yeSB2aXJ0dWFsIGFkZHJlc3MgcmFuZ2UgYnkgY29sbGVjdGluZyBhbGwKKyAqIHRoZSBwYWdlcyBiYWNraW5nIGVhY2ggdmlydHVhbCBhZGRyZXNzIGluIHRoZSByYW5nZSwgc2F2aW5nIHRoZW0gaW5zaWRlIHRoZQorICogc3JjIGFycmF5LiAgVGhlbiBsb2NrIHRob3NlIHBhZ2VzIGFuZCB1bm1hcCB0aGVtLiBPbmNlIHRoZSBwYWdlcyBhcmUgbG9ja2VkCisgKiBhbmQgdW5tYXBwZWQsIGNoZWNrIHdoZXRoZXIgZWFjaCBwYWdlIGlzIHBpbm5lZCBvciBub3QuICBQYWdlcyB0aGF0IGFyZW4ndAorICogcGlubmVkIGhhdmUgdGhlIE1JR1JBVEVfUEZOX01JR1JBVEUgZmxhZyBzZXQgKGJ5IHRoaXMgZnVuY3Rpb24pIGluIHRoZQorICogY29ycmVzcG9uZGluZyBzcmMgYXJyYXkgZW50cnkuICBUaGVuIHJlc3RvcmVzIGFueSBwYWdlcyB0aGF0IGFyZSBwaW5uZWQsIGJ5CisgKiByZW1hcHBpbmcgYW5kIHVubG9ja2luZyB0aG9zZSBwYWdlcy4KKyAqCisgKiBUaGUgY2FsbGVyIHNob3VsZCB0aGVuIGFsbG9jYXRlIGRlc3RpbmF0aW9uIG1lbW9yeSBhbmQgY29weSBzb3VyY2UgbWVtb3J5IHRvCisgKiBpdCBmb3IgYWxsIHRob3NlIGVudHJpZXMgKGllIHdpdGggTUlHUkFURV9QRk5fVkFMSUQgYW5kIE1JR1JBVEVfUEZOX01JR1JBVEUKKyAqIGZsYWcgc2V0KS4gIE9uY2UgdGhlc2UgYXJlIGFsbG9jYXRlZCBhbmQgY29waWVkLCB0aGUgY2FsbGVyIG11c3QgdXBkYXRlIGVhY2gKKyAqIGNvcnJlc3BvbmRpbmcgZW50cnkgaW4gdGhlIGRzdCBhcnJheSB3aXRoIHRoZSBwZm4gdmFsdWUgb2YgdGhlIGRlc3RpbmF0aW9uCisgKiBwYWdlIGFuZCB3aXRoIHRoZSBNSUdSQVRFX1BGTl9WQUxJRCBhbmQgTUlHUkFURV9QRk5fTE9DS0VEIGZsYWdzIHNldAorICogKGRlc3RpbmF0aW9uIHBhZ2VzIG11c3QgaGF2ZSB0aGVpciBzdHJ1Y3QgcGFnZXMgbG9ja2VkLCB2aWEgbG9ja19wYWdlKCkpLgorICoKKyAqIE5vdGUgdGhhdCB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUgdG8gbWlncmF0ZSBhbGwgdGhlIHBhZ2VzIHRoYXQgYXJlIG1hcmtlZAorICogd2l0aCBNSUdSQVRFX1BGTl9NSUdSQVRFIGZsYWcgaW4gc3JjIGFycmF5IHVubGVzcyB0aGlzIGlzIGEgbWlncmF0aW9uIGZyb20KKyAqIGRldmljZSBtZW1vcnkgdG8gc3lzdGVtIG1lbW9yeS4gIElmIHRoZSBjYWxsZXIgY2Fubm90IG1pZ3JhdGUgYSBkZXZpY2UgcGFnZQorICogYmFjayB0byBzeXN0ZW0gbWVtb3J5LCB0aGVuIGl0IG11c3QgcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUywgd2hpY2ggaGFzIHNldmVyZQorICogY29uc2VxdWVuY2VzIGZvciB0aGUgdXNlcnNwYWNlIHByb2Nlc3MsIHNvIGl0IG11c3QgYmUgYXZvaWRlZCBpZiBhdCBhbGwKKyAqIHBvc3NpYmxlLgorICoKKyAqIEZvciBlbXB0eSBlbnRyaWVzIGluc2lkZSBDUFUgcGFnZSB0YWJsZSAocHRlX25vbmUoKSBvciBwbWRfbm9uZSgpIGlzIHRydWUpIHdlCisgKiBkbyBzZXQgTUlHUkFURV9QRk5fTUlHUkFURSBmbGFnIGluc2lkZSB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgYXJyYXkgdGh1cworICogYWxsb3dpbmcgdGhlIGNhbGxlciB0byBhbGxvY2F0ZSBkZXZpY2UgbWVtb3J5IGZvciB0aG9zZSB1bmJhY2sgdmlydHVhbAorICogYWRkcmVzcy4gIEZvciB0aGlzIHRoZSBjYWxsZXIgc2ltcGx5IGhhcyB0byBhbGxvY2F0ZSBkZXZpY2UgbWVtb3J5IGFuZAorICogcHJvcGVybHkgc2V0IHRoZSBkZXN0aW5hdGlvbiBlbnRyeSBsaWtlIGZvciByZWd1bGFyIG1pZ3JhdGlvbi4gIE5vdGUgdGhhdAorICogdGhpcyBjYW4gc3RpbGwgZmFpbHMgYW5kIHRodXMgaW5zaWRlIHRoZSBkZXZpY2UgZHJpdmVyIG11c3QgY2hlY2sgaWYgdGhlCisgKiBtaWdyYXRpb24gd2FzIHN1Y2Nlc3NmdWwgZm9yIHRob3NlIGVudHJpZXMgYWZ0ZXIgY2FsbGluZyBtaWdyYXRlX3ZtYV9wYWdlcygpCisgKiBqdXN0IGxpa2UgZm9yIHJlZ3VsYXIgbWlncmF0aW9uLgorICoKKyAqIEFmdGVyIHRoYXQsIHRoZSBjYWxsZXJzIG11c3QgY2FsbCBtaWdyYXRlX3ZtYV9wYWdlcygpIHRvIGdvIG92ZXIgZWFjaCBlbnRyeQorICogaW4gdGhlIHNyYyBhcnJheSB0aGF0IGhhcyB0aGUgTUlHUkFURV9QRk5fVkFMSUQgYW5kIE1JR1JBVEVfUEZOX01JR1JBVEUgZmxhZworICogc2V0LiBJZiB0aGUgY29ycmVzcG9uZGluZyBlbnRyeSBpbiBkc3QgYXJyYXkgaGFzIE1JR1JBVEVfUEZOX1ZBTElEIGZsYWcgc2V0LAorICogdGhlbiBtaWdyYXRlX3ZtYV9wYWdlcygpIHRvIG1pZ3JhdGUgc3RydWN0IHBhZ2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgc291cmNlCisgKiBzdHJ1Y3QgcGFnZSB0byB0aGUgZGVzdGluYXRpb24gc3RydWN0IHBhZ2UuICBJZiBpdCBmYWlscyB0byBtaWdyYXRlIHRoZQorICogc3RydWN0IHBhZ2UgaW5mb3JtYXRpb24sIHRoZW4gaXQgY2xlYXJzIHRoZSBNSUdSQVRFX1BGTl9NSUdSQVRFIGZsYWcgaW4gdGhlCisgKiBzcmMgYXJyYXkuCisgKgorICogQXQgdGhpcyBwb2ludCBhbGwgc3VjY2Vzc2Z1bGx5IG1pZ3JhdGVkIHBhZ2VzIGhhdmUgYW4gZW50cnkgaW4gdGhlIHNyYworICogYXJyYXkgd2l0aCBNSUdSQVRFX1BGTl9WQUxJRCBhbmQgTUlHUkFURV9QRk5fTUlHUkFURSBmbGFnIHNldCBhbmQgdGhlIGRzdAorICogYXJyYXkgZW50cnkgd2l0aCBNSUdSQVRFX1BGTl9WQUxJRCBmbGFnIHNldC4KKyAqCisgKiBPbmNlIG1pZ3JhdGVfdm1hX3BhZ2VzKCkgcmV0dXJucyB0aGUgY2FsbGVyIG1heSBpbnNwZWN0IHdoaWNoIHBhZ2VzIHdlcmUKKyAqIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZCwgYW5kIHdoaWNoIHdlcmUgbm90LiAgU3VjY2Vzc2Z1bGx5IG1pZ3JhdGVkIHBhZ2VzIHdpbGwKKyAqIGhhdmUgdGhlIE1JR1JBVEVfUEZOX01JR1JBVEUgZmxhZyBzZXQgZm9yIHRoZWlyIHNyYyBhcnJheSBlbnRyeS4KKyAqCisgKiBJdCBpcyBzYWZlIHRvIHVwZGF0ZSBkZXZpY2UgcGFnZSB0YWJsZSBhZnRlciBtaWdyYXRlX3ZtYV9wYWdlcygpIGJlY2F1c2UKKyAqIGJvdGggZGVzdGluYXRpb24gYW5kIHNvdXJjZSBwYWdlIGFyZSBzdGlsbCBsb2NrZWQsIGFuZCB0aGUgbW1hcF9zZW0gaXMgaGVsZAorICogaW4gcmVhZCBtb2RlIChoZW5jZSBubyBvbmUgY2FuIHVubWFwIHRoZSByYW5nZSBiZWluZyBtaWdyYXRlZCkuCisgKgorICogT25jZSB0aGUgY2FsbGVyIGlzIGRvbmUgY2xlYW5pbmcgdXAgdGhpbmdzIGFuZCB1cGRhdGluZyBpdHMgcGFnZSB0YWJsZSAoaWYgaXQKKyAqIGNob3NlIHRvIGRvIHNvLCB0aGlzIGlzIG5vdCBhbiBvYmxpZ2F0aW9uKSBpdCBmaW5hbGx5IGNhbGxzCisgKiBtaWdyYXRlX3ZtYV9maW5hbGl6ZSgpIHRvIHVwZGF0ZSB0aGUgQ1BVIHBhZ2UgdGFibGUgdG8gcG9pbnQgdG8gbmV3IHBhZ2VzCisgKiBmb3Igc3VjY2Vzc2Z1bGx5IG1pZ3JhdGVkIHBhZ2VzIG9yIG90aGVyd2lzZSByZXN0b3JlIHRoZSBDUFUgcGFnZSB0YWJsZSB0bworICogcG9pbnQgdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBwYWdlcy4KKyAqLworaW50IG1pZ3JhdGVfdm1hX3NldHVwKHN0cnVjdCBtaWdyYXRlX3ZtYSAqYXJncykKK3sKKwlsb25nIG5yX3BhZ2VzID0gKGFyZ3MtPmVuZCAtIGFyZ3MtPnN0YXJ0KSA+PiBQQUdFX1NISUZUOworCisJYXJncy0+c3RhcnQgJj0gUEFHRV9NQVNLOworCWFyZ3MtPmVuZCAmPSBQQUdFX01BU0s7CisJaWYgKCFhcmdzLT52bWEgfHwgaXNfdm1faHVnZXRsYl9wYWdlKGFyZ3MtPnZtYSkgfHwKKwkgICAgKGFyZ3MtPnZtYS0+dm1fZmxhZ3MgJiBWTV9TUEVDSUFMKSB8fCB2bWFfaXNfZGF4KGFyZ3MtPnZtYSkpCisJCXJldHVybiAtRUlOVkFMOworCWlmIChucl9wYWdlcyA8PSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoYXJncy0+c3RhcnQgPCBhcmdzLT52bWEtPnZtX3N0YXJ0IHx8CisJICAgIGFyZ3MtPnN0YXJ0ID49IGFyZ3MtPnZtYS0+dm1fZW5kKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoYXJncy0+ZW5kIDw9IGFyZ3MtPnZtYS0+dm1fc3RhcnQgfHwgYXJncy0+ZW5kID4gYXJncy0+dm1hLT52bV9lbmQpCisJCXJldHVybiAtRUlOVkFMOworCWlmICghYXJncy0+c3JjIHx8ICFhcmdzLT5kc3QpCisJCXJldHVybiAtRUlOVkFMOworCisJbWVtc2V0KGFyZ3MtPnNyYywgMCwgc2l6ZW9mKCphcmdzLT5zcmMpICogbnJfcGFnZXMpOworCWFyZ3MtPmNwYWdlcyA9IDA7CisJYXJncy0+bnBhZ2VzID0gMDsKKworCW1pZ3JhdGVfdm1hX2NvbGxlY3QoYXJncyk7CisKKwlpZiAoYXJncy0+Y3BhZ2VzKQorCQltaWdyYXRlX3ZtYV9wcmVwYXJlKGFyZ3MpOworCWlmIChhcmdzLT5jcGFnZXMpCisJCW1pZ3JhdGVfdm1hX3VubWFwKGFyZ3MpOworCisJLyoKKwkgKiBBdCB0aGlzIHBvaW50IHBhZ2VzIGFyZSBsb2NrZWQgYW5kIHVubWFwcGVkLCBhbmQgdGh1cyB0aGV5IGhhdmUKKwkgKiBzdGFibGUgY29udGVudCBhbmQgY2FuIHNhZmVseSBiZSBjb3BpZWQgdG8gZGVzdGluYXRpb24gbWVtb3J5IHRoYXQKKwkgKiBpcyBhbGxvY2F0ZWQgYnkgdGhlIGRyaXZlcnMuCisJICovCisJcmV0dXJuIDA7CisKK30KK0VYUE9SVF9TWU1CT0wobWlncmF0ZV92bWFfc2V0dXApOworCiBzdGF0aWMgdm9pZCBtaWdyYXRlX3ZtYV9pbnNlcnRfcGFnZShzdHJ1Y3QgbWlncmF0ZV92bWEgKm1pZ3JhdGUsCiAJCQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJCQkgICAgc3RydWN0IHBhZ2UgKnBhZ2UsCkBAIC0yNzA4LDcgKzI3OTksNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlX3ZtYV9pbnNlcnRfcGFnZShzdHJ1Y3QgbWlncmF0ZV92bWEgKm1pZ3JhdGUsCiAJKnNyYyAmPSB+TUlHUkFURV9QRk5fTUlHUkFURTsKIH0KIAotLyoKKy8qKgogICogbWlncmF0ZV92bWFfcGFnZXMoKSAtIG1pZ3JhdGUgbWV0YS1kYXRhIGZyb20gc3JjIHBhZ2UgdG8gZHN0IHBhZ2UKICAqIEBtaWdyYXRlOiBtaWdyYXRlIHN0cnVjdCBjb250YWluaW5nIGFsbCBtaWdyYXRpb24gaW5mb3JtYXRpb24KICAqCkBAIC0yNzE2LDcgKzI4MDcsNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlX3ZtYV9pbnNlcnRfcGFnZShzdHJ1Y3QgbWlncmF0ZV92bWEgKm1pZ3JhdGUsCiAgKiBzdHJ1Y3QgcGFnZS4gVGhpcyBlZmZlY3RpdmVseSBmaW5pc2hlcyB0aGUgbWlncmF0aW9uIGZyb20gc291cmNlIHBhZ2UgdG8gdGhlCiAgKiBkZXN0aW5hdGlvbiBwYWdlLgogICovCi1zdGF0aWMgdm9pZCBtaWdyYXRlX3ZtYV9wYWdlcyhzdHJ1Y3QgbWlncmF0ZV92bWEgKm1pZ3JhdGUpCit2b2lkIG1pZ3JhdGVfdm1hX3BhZ2VzKHN0cnVjdCBtaWdyYXRlX3ZtYSAqbWlncmF0ZSkKIHsKIAljb25zdCB1bnNpZ25lZCBsb25nIG5wYWdlcyA9IG1pZ3JhdGUtPm5wYWdlczsKIAljb25zdCB1bnNpZ25lZCBsb25nIHN0YXJ0ID0gbWlncmF0ZS0+c3RhcnQ7CkBAIC0yNzkwLDggKzI4ODEsOSBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlX3ZtYV9wYWdlcyhzdHJ1Y3QgbWlncmF0ZV92bWEgKm1pZ3JhdGUpCiAJaWYgKG5vdGlmaWVkKQogCQltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9vbmx5X2VuZCgmcmFuZ2UpOwogfQorRVhQT1JUX1NZTUJPTChtaWdyYXRlX3ZtYV9wYWdlcyk7CiAKLS8qCisvKioKICAqIG1pZ3JhdGVfdm1hX2ZpbmFsaXplKCkgLSByZXN0b3JlIENQVSBwYWdlIHRhYmxlIGVudHJ5CiAgKiBAbWlncmF0ZTogbWlncmF0ZSBzdHJ1Y3QgY29udGFpbmluZyBhbGwgbWlncmF0aW9uIGluZm9ybWF0aW9uCiAgKgpAQCAtMjgwMiw3ICsyODk0LDcgQEAgc3RhdGljIHZvaWQgbWlncmF0ZV92bWFfcGFnZXMoc3RydWN0IG1pZ3JhdGVfdm1hICptaWdyYXRlKQogICogVGhpcyBhbHNvIHVubG9ja3MgdGhlIHBhZ2VzIGFuZCBwdXRzIHRoZW0gYmFjayBvbiB0aGUgbHJ1LCBvciBkcm9wcyB0aGUgZXh0cmEKICAqIHJlZmNvdW50LCBmb3IgZGV2aWNlIHBhZ2VzLgogICovCi1zdGF0aWMgdm9pZCBtaWdyYXRlX3ZtYV9maW5hbGl6ZShzdHJ1Y3QgbWlncmF0ZV92bWEgKm1pZ3JhdGUpCit2b2lkIG1pZ3JhdGVfdm1hX2ZpbmFsaXplKHN0cnVjdCBtaWdyYXRlX3ZtYSAqbWlncmF0ZSkKIHsKIAljb25zdCB1bnNpZ25lZCBsb25nIG5wYWdlcyA9IG1pZ3JhdGUtPm5wYWdlczsKIAl1bnNpZ25lZCBsb25nIGk7CkBAIC0yODQ1LDEyNCArMjkzNyw1IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGVfdm1hX2ZpbmFsaXplKHN0cnVjdCBtaWdyYXRlX3ZtYSAqbWlncmF0ZSkKIAkJfQogCX0KIH0KLQotLyoKLSAqIG1pZ3JhdGVfdm1hKCkgLSBtaWdyYXRlIGEgcmFuZ2Ugb2YgbWVtb3J5IGluc2lkZSB2bWEKLSAqCi0gKiBAb3BzOiBtaWdyYXRpb24gY2FsbGJhY2sgZm9yIGFsbG9jYXRpbmcgZGVzdGluYXRpb24gbWVtb3J5IGFuZCBjb3B5aW5nCi0gKiBAdm1hOiB2aXJ0dWFsIG1lbW9yeSBhcmVhIGNvbnRhaW5pbmcgdGhlIHJhbmdlIHRvIGJlIG1pZ3JhdGVkCi0gKiBAc3RhcnQ6IHN0YXJ0IGFkZHJlc3Mgb2YgdGhlIHJhbmdlIHRvIG1pZ3JhdGUgKGluY2x1c2l2ZSkKLSAqIEBlbmQ6IGVuZCBhZGRyZXNzIG9mIHRoZSByYW5nZSB0byBtaWdyYXRlIChleGNsdXNpdmUpCi0gKiBAc3JjOiBhcnJheSBvZiBobW1fcGZuX3QgY29udGFpbmluZyBzb3VyY2UgcGZucwotICogQGRzdDogYXJyYXkgb2YgaG1tX3Bmbl90IGNvbnRhaW5pbmcgZGVzdGluYXRpb24gcGZucwotICogQHByaXZhdGU6IHBvaW50ZXIgcGFzc2VkIGJhY2sgdG8gZWFjaCBvZiB0aGUgY2FsbGJhY2sKLSAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgZXJyb3IgY29kZSBvdGhlcndpc2UKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIG1pZ3JhdGUgYSByYW5nZSBvZiBtZW1vcnkgdmlydHVhbCBhZGRyZXNzIHJhbmdlLCB1c2luZwotICogY2FsbGJhY2tzIHRvIGFsbG9jYXRlIGFuZCBjb3B5IG1lbW9yeSBmcm9tIHNvdXJjZSB0byBkZXN0aW5hdGlvbi4gRmlyc3QgaXQKLSAqIGNvbGxlY3RzIGFsbCB0aGUgcGFnZXMgYmFja2luZyBlYWNoIHZpcnR1YWwgYWRkcmVzcyBpbiB0aGUgcmFuZ2UsIHNhdmluZyB0aGlzCi0gKiBpbnNpZGUgdGhlIHNyYyBhcnJheS4gVGhlbiBpdCBsb2NrcyB0aG9zZSBwYWdlcyBhbmQgdW5tYXBzIHRoZW0uIE9uY2UgdGhlIHBhZ2VzCi0gKiBhcmUgbG9ja2VkIGFuZCB1bm1hcHBlZCwgaXQgY2hlY2tzIHdoZXRoZXIgZWFjaCBwYWdlIGlzIHBpbm5lZCBvciBub3QuIFBhZ2VzCi0gKiB0aGF0IGFyZW4ndCBwaW5uZWQgaGF2ZSB0aGUgTUlHUkFURV9QRk5fTUlHUkFURSBmbGFnIHNldCAoYnkgdGhpcyBmdW5jdGlvbikKLSAqIGluIHRoZSBjb3JyZXNwb25kaW5nIHNyYyBhcnJheSBlbnRyeS4gSXQgdGhlbiByZXN0b3JlcyBhbnkgcGFnZXMgdGhhdCBhcmUKLSAqIHBpbm5lZCwgYnkgcmVtYXBwaW5nIGFuZCB1bmxvY2tpbmcgdGhvc2UgcGFnZXMuCi0gKgotICogQXQgdGhpcyBwb2ludCBpdCBjYWxscyB0aGUgYWxsb2NfYW5kX2NvcHkoKSBjYWxsYmFjay4gRm9yIGRvY3VtZW50YXRpb24gb24KLSAqIHdoYXQgaXMgZXhwZWN0ZWQgZnJvbSB0aGF0IGNhbGxiYWNrLCBzZWUgc3RydWN0IG1pZ3JhdGVfdm1hX29wcyBjb21tZW50cyBpbgotICogaW5jbHVkZS9saW51eC9taWdyYXRlLmgKLSAqCi0gKiBBZnRlciB0aGUgYWxsb2NfYW5kX2NvcHkoKSBjYWxsYmFjaywgdGhpcyBmdW5jdGlvbiBnb2VzIG92ZXIgZWFjaCBlbnRyeSBpbgotICogdGhlIHNyYyBhcnJheSB0aGF0IGhhcyB0aGUgTUlHUkFURV9QRk5fVkFMSUQgYW5kIE1JR1JBVEVfUEZOX01JR1JBVEUgZmxhZwotICogc2V0LiBJZiB0aGUgY29ycmVzcG9uZGluZyBlbnRyeSBpbiBkc3QgYXJyYXkgaGFzIE1JR1JBVEVfUEZOX1ZBTElEIGZsYWcgc2V0LAotICogdGhlbiB0aGUgZnVuY3Rpb24gdHJpZXMgdG8gbWlncmF0ZSBzdHJ1Y3QgcGFnZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzb3VyY2UKLSAqIHN0cnVjdCBwYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzdHJ1Y3QgcGFnZS4gSWYgaXQgZmFpbHMgdG8gbWlncmF0ZSB0aGUgc3RydWN0Ci0gKiBwYWdlIGluZm9ybWF0aW9uLCB0aGVuIGl0IGNsZWFycyB0aGUgTUlHUkFURV9QRk5fTUlHUkFURSBmbGFnIGluIHRoZSBzcmMKLSAqIGFycmF5LgotICoKLSAqIEF0IHRoaXMgcG9pbnQgYWxsIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZCBwYWdlcyBoYXZlIGFuIGVudHJ5IGluIHRoZSBzcmMKLSAqIGFycmF5IHdpdGggTUlHUkFURV9QRk5fVkFMSUQgYW5kIE1JR1JBVEVfUEZOX01JR1JBVEUgZmxhZyBzZXQgYW5kIHRoZSBkc3QKLSAqIGFycmF5IGVudHJ5IHdpdGggTUlHUkFURV9QRk5fVkFMSUQgZmxhZyBzZXQuCi0gKgotICogSXQgdGhlbiBjYWxscyB0aGUgZmluYWxpemVfYW5kX21hcCgpIGNhbGxiYWNrLiBTZWUgY29tbWVudHMgZm9yICJzdHJ1Y3QKLSAqIG1pZ3JhdGVfdm1hX29wcyIsIGluIGluY2x1ZGUvbGludXgvbWlncmF0ZS5oIGZvciBkZXRhaWxzIGFib3V0Ci0gKiBmaW5hbGl6ZV9hbmRfbWFwKCkgYmVoYXZpb3IuCi0gKgotICogQWZ0ZXIgdGhlIGZpbmFsaXplX2FuZF9tYXAoKSBjYWxsYmFjaywgZm9yIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZCBwYWdlcywgdGhpcwotICogZnVuY3Rpb24gdXBkYXRlcyB0aGUgQ1BVIHBhZ2UgdGFibGUgdG8gcG9pbnQgdG8gbmV3IHBhZ2VzLCBvdGhlcndpc2UgaXQKLSAqIHJlc3RvcmVzIHRoZSBDUFUgcGFnZSB0YWJsZSB0byBwb2ludCB0byB0aGUgb3JpZ2luYWwgc291cmNlIHBhZ2VzLgotICoKLSAqIEZ1bmN0aW9uIHJldHVybnMgMCBhZnRlciB0aGUgYWJvdmUgc3RlcHMsIGV2ZW4gaWYgbm8gcGFnZXMgd2VyZSBtaWdyYXRlZAotICogKFRoZSBmdW5jdGlvbiBvbmx5IHJldHVybnMgYW4gZXJyb3IgaWYgYW55IG9mIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQuKQotICoKLSAqIEJvdGggc3JjIGFuZCBkc3QgYXJyYXkgbXVzdCBiZSBiaWcgZW5vdWdoIGZvciAoZW5kIC0gc3RhcnQpID4+IFBBR0VfU0hJRlQKLSAqIHVuc2lnbmVkIGxvbmcgZW50cmllcy4KLSAqLwotaW50IG1pZ3JhdGVfdm1hKGNvbnN0IHN0cnVjdCBtaWdyYXRlX3ZtYV9vcHMgKm9wcywKLQkJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0JCXVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCXVuc2lnbmVkIGxvbmcgZW5kLAotCQl1bnNpZ25lZCBsb25nICpzcmMsCi0JCXVuc2lnbmVkIGxvbmcgKmRzdCwKLQkJdm9pZCAqcHJpdmF0ZSkKLXsKLQlzdHJ1Y3QgbWlncmF0ZV92bWEgbWlncmF0ZTsKLQotCS8qIFNhbml0eSBjaGVjayB0aGUgYXJndW1lbnRzICovCi0Jc3RhcnQgJj0gUEFHRV9NQVNLOwotCWVuZCAmPSBQQUdFX01BU0s7Ci0JaWYgKCF2bWEgfHwgaXNfdm1faHVnZXRsYl9wYWdlKHZtYSkgfHwgKHZtYS0+dm1fZmxhZ3MgJiBWTV9TUEVDSUFMKSB8fAotCQkJdm1hX2lzX2RheCh2bWEpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQlpZiAoc3RhcnQgPCB2bWEtPnZtX3N0YXJ0IHx8IHN0YXJ0ID49IHZtYS0+dm1fZW5kKQotCQlyZXR1cm4gLUVJTlZBTDsKLQlpZiAoZW5kIDw9IHZtYS0+dm1fc3RhcnQgfHwgZW5kID4gdm1hLT52bV9lbmQpCi0JCXJldHVybiAtRUlOVkFMOwotCWlmICghb3BzIHx8ICFzcmMgfHwgIWRzdCB8fCBzdGFydCA+PSBlbmQpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JbWVtc2V0KHNyYywgMCwgc2l6ZW9mKCpzcmMpICogKChlbmQgLSBzdGFydCkgPj4gUEFHRV9TSElGVCkpOwotCW1pZ3JhdGUuc3JjID0gc3JjOwotCW1pZ3JhdGUuZHN0ID0gZHN0OwotCW1pZ3JhdGUuc3RhcnQgPSBzdGFydDsKLQltaWdyYXRlLm5wYWdlcyA9IDA7Ci0JbWlncmF0ZS5jcGFnZXMgPSAwOwotCW1pZ3JhdGUuZW5kID0gZW5kOwotCW1pZ3JhdGUudm1hID0gdm1hOwotCi0JLyogQ29sbGVjdCwgYW5kIHRyeSB0byB1bm1hcCBzb3VyY2UgcGFnZXMgKi8KLQltaWdyYXRlX3ZtYV9jb2xsZWN0KCZtaWdyYXRlKTsKLQlpZiAoIW1pZ3JhdGUuY3BhZ2VzKQotCQlyZXR1cm4gMDsKLQotCS8qIExvY2sgYW5kIGlzb2xhdGUgcGFnZSAqLwotCW1pZ3JhdGVfdm1hX3ByZXBhcmUoJm1pZ3JhdGUpOwotCWlmICghbWlncmF0ZS5jcGFnZXMpCi0JCXJldHVybiAwOwotCi0JLyogVW5tYXAgcGFnZXMgKi8KLQltaWdyYXRlX3ZtYV91bm1hcCgmbWlncmF0ZSk7Ci0JaWYgKCFtaWdyYXRlLmNwYWdlcykKLQkJcmV0dXJuIDA7Ci0KLQkvKgotCSAqIEF0IHRoaXMgcG9pbnQgcGFnZXMgYXJlIGxvY2tlZCBhbmQgdW5tYXBwZWQsIGFuZCB0aHVzIHRoZXkgaGF2ZQotCSAqIHN0YWJsZSBjb250ZW50IGFuZCBjYW4gc2FmZWx5IGJlIGNvcGllZCB0byBkZXN0aW5hdGlvbiBtZW1vcnkgdGhhdAotCSAqIGlzIGFsbG9jYXRlZCBieSB0aGUgY2FsbGJhY2suCi0JICoKLQkgKiBOb3RlIHRoYXQgbWlncmF0aW9uIGNhbiBmYWlsIGluIG1pZ3JhdGVfdm1hX3N0cnVjdF9wYWdlKCkgZm9yIGVhY2gKLQkgKiBpbmRpdmlkdWFsIHBhZ2UuCi0JICovCi0Jb3BzLT5hbGxvY19hbmRfY29weSh2bWEsIHNyYywgZHN0LCBzdGFydCwgZW5kLCBwcml2YXRlKTsKLQotCS8qIFRoaXMgZG9lcyB0aGUgcmVhbCBtaWdyYXRpb24gb2Ygc3RydWN0IHBhZ2UgKi8KLQltaWdyYXRlX3ZtYV9wYWdlcygmbWlncmF0ZSk7Ci0KLQlvcHMtPmZpbmFsaXplX2FuZF9tYXAodm1hLCBzcmMsIGRzdCwgc3RhcnQsIGVuZCwgcHJpdmF0ZSk7Ci0KLQkvKiBVbmxvY2sgYW5kIHJlbWFwIHBhZ2VzICovCi0JbWlncmF0ZV92bWFfZmluYWxpemUoJm1pZ3JhdGUpOwotCi0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MKG1pZ3JhdGVfdm1hKTsKLSNlbmRpZiAvKiBkZWZpbmVkKE1JR1JBVEVfVk1BX0hFTFBFUikgKi8KK0VYUE9SVF9TWU1CT0wobWlncmF0ZV92bWFfZmluYWxpemUpOworI2VuZGlmIC8qIENPTkZJR19ERVZJQ0VfUFJJVkFURSAqLwpkaWZmIC0tZ2l0IGEvbW0vbWluY29yZS5jIGIvbW0vbWluY29yZS5jCmluZGV4IDRmZTkxZDQuLjQ5YjZmYTIgMTAwNjQ0Ci0tLSBhL21tL21pbmNvcmUuYworKysgYi9tbS9taW5jb3JlLmMKQEAgLTEwLDcgKzEwLDcgQEAKICAqLwogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9nZnAuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3BhZ2V3YWxrLmg+CiAjaW5jbHVkZSA8bGludXgvbW1hbi5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2NhbGxzLmg+CiAjaW5jbHVkZSA8bGludXgvc3dhcC5oPgpAQCAtMTkzLDYgKzE5MywxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY2FuX2RvX21pbmNvcmUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJCWlub2RlX3Blcm1pc3Npb24oZmlsZV9pbm9kZSh2bWEtPnZtX2ZpbGUpLCBNQVlfV1JJVEUpID09IDA7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgbWluY29yZV93YWxrX29wcyA9IHsKKwkucG1kX2VudHJ5CQk9IG1pbmNvcmVfcHRlX3JhbmdlLAorCS5wdGVfaG9sZQkJPSBtaW5jb3JlX3VubWFwcGVkX3JhbmdlLAorCS5odWdldGxiX2VudHJ5CQk9IG1pbmNvcmVfaHVnZXRsYiwKK307CisKIC8qCiAgKiBEbyBhIGNodW5rIG9mICJzeXNfbWluY29yZSgpIi4gV2UndmUgYWxyZWFkeSBjaGVja2VkCiAgKiBhbGwgdGhlIGFyZ3VtZW50cywgd2UgaG9sZCB0aGUgbW1hcCBzZW1hcGhvcmU6IHdlIHNob3VsZApAQCAtMjAzLDEyICsyMDksNiBAQCBzdGF0aWMgbG9uZyBkb19taW5jb3JlKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBwYWdlcywgdW5zaWduZWQgY2hhciAqdgogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwogCXVuc2lnbmVkIGxvbmcgZW5kOwogCWludCBlcnI7Ci0Jc3RydWN0IG1tX3dhbGsgbWluY29yZV93YWxrID0gewotCQkucG1kX2VudHJ5ID0gbWluY29yZV9wdGVfcmFuZ2UsCi0JCS5wdGVfaG9sZSA9IG1pbmNvcmVfdW5tYXBwZWRfcmFuZ2UsCi0JCS5odWdldGxiX2VudHJ5ID0gbWluY29yZV9odWdldGxiLAotCQkucHJpdmF0ZSA9IHZlYywKLQl9OwogCiAJdm1hID0gZmluZF92bWEoY3VycmVudC0+bW0sIGFkZHIpOwogCWlmICghdm1hIHx8IGFkZHIgPCB2bWEtPnZtX3N0YXJ0KQpAQCAtMjE5LDggKzIxOSw3IEBAIHN0YXRpYyBsb25nIGRvX21pbmNvcmUodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIHBhZ2VzLCB1bnNpZ25lZCBjaGFyICp2CiAJCW1lbXNldCh2ZWMsIDEsIHBhZ2VzKTsKIAkJcmV0dXJuIHBhZ2VzOwogCX0KLQltaW5jb3JlX3dhbGsubW0gPSB2bWEtPnZtX21tOwotCWVyciA9IHdhbGtfcGFnZV9yYW5nZShhZGRyLCBlbmQsICZtaW5jb3JlX3dhbGspOworCWVyciA9IHdhbGtfcGFnZV9yYW5nZSh2bWEtPnZtX21tLCBhZGRyLCBlbmQsICZtaW5jb3JlX3dhbGtfb3BzLCB2ZWMpOwogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwogCXJldHVybiAoZW5kIC0gYWRkcikgPj4gUEFHRV9TSElGVDsKQEAgLTI1Nyw2ICsyNTYsOCBAQCBTWVNDQUxMX0RFRklORTMobWluY29yZSwgdW5zaWduZWQgbG9uZywgc3RhcnQsIHNpemVfdCwgbGVuLAogCXVuc2lnbmVkIGxvbmcgcGFnZXM7CiAJdW5zaWduZWQgY2hhciAqdG1wOwogCisJc3RhcnQgPSB1bnRhZ2dlZF9hZGRyKHN0YXJ0KTsKKwogCS8qIENoZWNrIHRoZSBzdGFydCBhZGRyZXNzOiBuZWVkcyB0byBiZSBwYWdlLWFsaWduZWQuLiAqLwogCWlmIChzdGFydCAmIH5QQUdFX01BU0spCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvbW0vbWxvY2suYyBiL21tL21sb2NrLmMKaW5kZXggYTkwMDk5ZGE0Li5hNzJjMWVlIDEwMDY0NAotLS0gYS9tbS9tbG9jay5jCisrKyBiL21tL21sb2NrLmMKQEAgLTY3NCw2ICs2NzQsOCBAQCBzdGF0aWMgX19tdXN0X2NoZWNrIGludCBkb19tbG9jayh1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplX3QgbGVuLCB2bV9mbGFnc190IGZsYQogCXVuc2lnbmVkIGxvbmcgbG9ja19saW1pdDsKIAlpbnQgZXJyb3IgPSAtRU5PTUVNOwogCisJc3RhcnQgPSB1bnRhZ2dlZF9hZGRyKHN0YXJ0KTsKKwogCWlmICghY2FuX2RvX21sb2NrKCkpCiAJCXJldHVybiAtRVBFUk07CiAKQEAgLTczNSw2ICs3MzcsOCBAQCBTWVNDQUxMX0RFRklORTIobXVubG9jaywgdW5zaWduZWQgbG9uZywgc3RhcnQsIHNpemVfdCwgbGVuKQogewogCWludCByZXQ7CiAKKwlzdGFydCA9IHVudGFnZ2VkX2FkZHIoc3RhcnQpOworCiAJbGVuID0gUEFHRV9BTElHTihsZW4gKyAob2Zmc2V0X2luX3BhZ2Uoc3RhcnQpKSk7CiAJc3RhcnQgJj0gUEFHRV9NQVNLOwogCmRpZmYgLS1naXQgYS9tbS9tbWFwLmMgYi9tbS9tbWFwLmMKaW5kZXggNmJjMjFmY2EuLmE3ZDhjODQgMTAwNjQ0Ci0tLSBhL21tL21tYXAuYworKysgYi9tbS9tbWFwLmMKQEAgLTIwMSw2ICsyMDEsOCBAQCBTWVNDQUxMX0RFRklORTEoYnJrLCB1bnNpZ25lZCBsb25nLCBicmspCiAJYm9vbCBkb3duZ3JhZGVkID0gZmFsc2U7CiAJTElTVF9IRUFEKHVmKTsKIAorCWJyayA9IHVudGFnZ2VkX2FkZHIoYnJrKTsKKwogCWlmIChkb3duX3dyaXRlX2tpbGxhYmxlKCZtbS0+bW1hcF9zZW0pKQogCQlyZXR1cm4gLUVJTlRSOwogCkBAIC0yODksOSArMjkxLDkgQEAgU1lTQ0FMTF9ERUZJTkUxKGJyaywgdW5zaWduZWQgbG9uZywgYnJrKQogCXJldHVybiByZXR2YWw7CiB9CiAKLXN0YXRpYyBsb25nIHZtYV9jb21wdXRlX3N1YnRyZWVfZ2FwKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHZtYV9jb21wdXRlX2dhcChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKLQl1bnNpZ25lZCBsb25nIG1heCwgcHJldl9lbmQsIHN1YnRyZWVfZ2FwOworCXVuc2lnbmVkIGxvbmcgZ2FwLCBwcmV2X2VuZDsKIAogCS8qCiAJICogTm90ZTogaW4gdGhlIHJhcmUgY2FzZSBvZiBhIFZNX0dST1dTRE9XTiBhYm92ZSBhIFZNX0dST1dTVVAsIHdlCkBAIC0yOTksMTQgKzMwMSwyMSBAQCBzdGF0aWMgbG9uZyB2bWFfY29tcHV0ZV9zdWJ0cmVlX2dhcChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAkgKiBhbiB1bm1hcHBlZCBhcmVhOyB3aGVyZWFzIHdoZW4gZXhwYW5kaW5nIHdlIG9ubHkgcmVxdWlyZSBvbmUuCiAJICogVGhhdCdzIGEgbGl0dGxlIGluY29uc2lzdGVudCwgYnV0IGtlZXBzIHRoZSBjb2RlIGhlcmUgc2ltcGxlci4KIAkgKi8KLQltYXggPSB2bV9zdGFydF9nYXAodm1hKTsKKwlnYXAgPSB2bV9zdGFydF9nYXAodm1hKTsKIAlpZiAodm1hLT52bV9wcmV2KSB7CiAJCXByZXZfZW5kID0gdm1fZW5kX2dhcCh2bWEtPnZtX3ByZXYpOwotCQlpZiAobWF4ID4gcHJldl9lbmQpCi0JCQltYXggLT0gcHJldl9lbmQ7CisJCWlmIChnYXAgPiBwcmV2X2VuZCkKKwkJCWdhcCAtPSBwcmV2X2VuZDsKIAkJZWxzZQotCQkJbWF4ID0gMDsKKwkJCWdhcCA9IDA7CiAJfQorCXJldHVybiBnYXA7Cit9CisKKyNpZmRlZiBDT05GSUdfREVCVUdfVk1fUkIKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHZtYV9jb21wdXRlX3N1YnRyZWVfZ2FwKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXVuc2lnbmVkIGxvbmcgbWF4ID0gdm1hX2NvbXB1dGVfZ2FwKHZtYSksIHN1YnRyZWVfZ2FwOwogCWlmICh2bWEtPnZtX3JiLnJiX2xlZnQpIHsKIAkJc3VidHJlZV9nYXAgPSByYl9lbnRyeSh2bWEtPnZtX3JiLnJiX2xlZnQsCiAJCQkJc3RydWN0IHZtX2FyZWFfc3RydWN0LCB2bV9yYiktPnJiX3N1YnRyZWVfZ2FwOwpAQCAtMzIyLDcgKzMzMSw2IEBAIHN0YXRpYyBsb25nIHZtYV9jb21wdXRlX3N1YnRyZWVfZ2FwKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCXJldHVybiBtYXg7CiB9CiAKLSNpZmRlZiBDT05GSUdfREVCVUdfVk1fUkIKIHN0YXRpYyBpbnQgYnJvd3NlX3JiKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogewogCXN0cnVjdCByYl9yb290ICpyb290ID0gJm1tLT5tbV9yYjsKQEAgLTQyOCw4ICs0MzYsOSBAQCBzdGF0aWMgdm9pZCB2YWxpZGF0ZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKICNkZWZpbmUgdmFsaWRhdGVfbW0obW0pIGRvIHsgfSB3aGlsZSAoMCkKICNlbmRpZgogCi1SQl9ERUNMQVJFX0NBTExCQUNLUyhzdGF0aWMsIHZtYV9nYXBfY2FsbGJhY2tzLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QsIHZtX3JiLAotCQkgICAgIHVuc2lnbmVkIGxvbmcsIHJiX3N1YnRyZWVfZ2FwLCB2bWFfY29tcHV0ZV9zdWJ0cmVlX2dhcCkKK1JCX0RFQ0xBUkVfQ0FMTEJBQ0tTX01BWChzdGF0aWMsIHZtYV9nYXBfY2FsbGJhY2tzLAorCQkJIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCwgdm1fcmIsCisJCQkgdW5zaWduZWQgbG9uZywgcmJfc3VidHJlZV9nYXAsIHZtYV9jb21wdXRlX2dhcCkKIAogLyoKICAqIFVwZGF0ZSBhdWdtZW50ZWQgcmJ0cmVlIHJiX3N1YnRyZWVfZ2FwIHZhbHVlcyBhZnRlciB2bWEtPnZtX3N0YXJ0IG9yCkBAIC00MzksOCArNDQ4LDggQEAgUkJfREVDTEFSRV9DQUxMQkFDS1Moc3RhdGljLCB2bWFfZ2FwX2NhbGxiYWNrcywgc3RydWN0IHZtX2FyZWFfc3RydWN0LCB2bV9yYiwKIHN0YXRpYyB2b2lkIHZtYV9nYXBfdXBkYXRlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogewogCS8qCi0JICogQXMgaXQgdHVybnMgb3V0LCBSQl9ERUNMQVJFX0NBTExCQUNLUygpIGFscmVhZHkgY3JlYXRlZCBhIGNhbGxiYWNrCi0JICogZnVuY3Rpb24gdGhhdCBkb2VzIGV4YWN0bHkgd2hhdCB3ZSB3YW50LgorCSAqIEFzIGl0IHR1cm5zIG91dCwgUkJfREVDTEFSRV9DQUxMQkFDS1NfTUFYKCkgYWxyZWFkeSBjcmVhdGVkCisJICogYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGRvZXMgZXhhY3RseSB3aGF0IHdlIHdhbnQuCiAJICovCiAJdm1hX2dhcF9jYWxsYmFja3NfcHJvcGFnYXRlKCZ2bWEtPnZtX3JiLCBOVUxMKTsKIH0KQEAgLTEzNTgsNiArMTM2Nyw5IEBAIHN0YXRpYyBpbmxpbmUgdTY0IGZpbGVfbW1hcF9zaXplX21heChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGlub2RlICppbm9kZSkKIAlpZiAoU19JU0JMSyhpbm9kZS0+aV9tb2RlKSkKIAkJcmV0dXJuIE1BWF9MRlNfRklMRVNJWkU7CiAKKwlpZiAoU19JU1NPQ0soaW5vZGUtPmlfbW9kZSkpCisJCXJldHVybiBNQVhfTEZTX0ZJTEVTSVpFOworCiAJLyogU3BlY2lhbCAid2UgZG8gZXZlbiB1bnNpZ25lZCBmaWxlIHBvc2l0aW9ucyIgY2FzZSAqLwogCWlmIChmaWxlLT5mX21vZGUgJiBGTU9ERV9VTlNJR05FRF9PRkZTRVQpCiAJCXJldHVybiAwOwpAQCAtMTU3Nyw2ICsxNTg5LDggQEAgdW5zaWduZWQgbG9uZyBrc3lzX21tYXBfcGdvZmYodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGxlbiwKIAlzdHJ1Y3QgZmlsZSAqZmlsZSA9IE5VTEw7CiAJdW5zaWduZWQgbG9uZyByZXR2YWw7CiAKKwlhZGRyID0gdW50YWdnZWRfYWRkcihhZGRyKTsKKwogCWlmICghKGZsYWdzICYgTUFQX0FOT05ZTU9VUykpIHsKIAkJYXVkaXRfbW1hcF9mZChmZCwgZmxhZ3MpOwogCQlmaWxlID0gZmdldChmZCk7CkBAIC0yMjc0LDEyICsyMjg4LDkgQEAgZmluZF92bWFfcHJldihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCWlmICh2bWEpIHsKIAkJKnBwcmV2ID0gdm1hLT52bV9wcmV2OwogCX0gZWxzZSB7Ci0JCXN0cnVjdCByYl9ub2RlICpyYl9ub2RlID0gbW0tPm1tX3JiLnJiX25vZGU7Ci0JCSpwcHJldiA9IE5VTEw7Ci0JCXdoaWxlIChyYl9ub2RlKSB7Ci0JCQkqcHByZXYgPSByYl9lbnRyeShyYl9ub2RlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QsIHZtX3JiKTsKLQkJCXJiX25vZGUgPSByYl9ub2RlLT5yYl9yaWdodDsKLQkJfQorCQlzdHJ1Y3QgcmJfbm9kZSAqcmJfbm9kZSA9IHJiX2xhc3QoJm1tLT5tbV9yYik7CisKKwkJKnBwcmV2ID0gcmJfbm9kZSA/IHJiX2VudHJ5KHJiX25vZGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCwgdm1fcmIpIDogTlVMTDsKIAl9CiAJcmV0dXJuIHZtYTsKIH0KQEAgLTI4NzgsNiArMjg4OSw3IEBAIEVYUE9SVF9TWU1CT0wodm1fbXVubWFwKTsKIAogU1lTQ0FMTF9ERUZJTkUyKG11bm1hcCwgdW5zaWduZWQgbG9uZywgYWRkciwgc2l6ZV90LCBsZW4pCiB7CisJYWRkciA9IHVudGFnZ2VkX2FkZHIoYWRkcik7CiAJcHJvZmlsZV9tdW5tYXAoYWRkcik7CiAJcmV0dXJuIF9fdm1fbXVubWFwKGFkZHIsIGxlbiwgdHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9tbS9tbXVfZ2F0aGVyLmMgYi9tbS9tbXVfZ2F0aGVyLmMKaW5kZXggOGM5NDNhNi4uN2Q3MGU1YyAxMDA2NDQKLS0tIGEvbW0vbW11X2dhdGhlci5jCisrKyBiL21tL21tdV9nYXRoZXIuYwpAQCAtMjcxLDggKzI3MSw2IEBAIHZvaWQgdGxiX2ZpbmlzaF9tbXUoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwKIAogCXRsYl9mbHVzaF9tbXUodGxiKTsKIAotCS8qIGtlZXAgdGhlIHBhZ2UgdGFibGUgY2FjaGUgd2l0aGluIGJvdW5kcyAqLwotCWNoZWNrX3BndF9jYWNoZSgpOwogI2lmbmRlZiBDT05GSUdfSEFWRV9NTVVfR0FUSEVSX05PX0dBVEhFUgogCXRsYl9iYXRjaF9saXN0X2ZyZWUodGxiKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbW0vbW11X25vdGlmaWVyLmMgYi9tbS9tbXVfbm90aWZpZXIuYwppbmRleCBiNTY3MDYyLi43ZmRlODg2IDEwMDY0NAotLS0gYS9tbS9tbXVfbm90aWZpZXIuYworKysgYi9tbS9tbXVfbm90aWZpZXIuYwpAQCAtMjEsMTcgKzIxLDExIEBACiAvKiBnbG9iYWwgU1JDVSBmb3IgYWxsIE1NcyAqLwogREVGSU5FX1NUQVRJQ19TUkNVKHNyY3UpOwogCi0vKgotICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgbW11X25vdGlmaWVyOjpyZWxlYXNlIGNhbGxiYWNrIHRvIGRlbGF5IGEgY2FsbCB0bwotICogYSBmdW5jdGlvbiB0aGF0IHdpbGwgZnJlZSBhcHByb3ByaWF0ZSByZXNvdXJjZXMuIFRoZSBmdW5jdGlvbiBtdXN0IGJlCi0gKiBxdWljayBhbmQgbXVzdCBub3QgYmxvY2suCi0gKi8KLXZvaWQgbW11X25vdGlmaWVyX2NhbGxfc3JjdShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSwKLQkJCSAgICB2b2lkICgqZnVuYykoc3RydWN0IHJjdV9oZWFkICpyY3UpKQotewotCWNhbGxfc3JjdSgmc3JjdSwgcmN1LCBmdW5jKTsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKG1tdV9ub3RpZmllcl9jYWxsX3NyY3UpOworI2lmZGVmIENPTkZJR19MT0NLREVQCitzdHJ1Y3QgbG9ja2RlcF9tYXAgX19tbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydF9tYXAgPSB7CisJLm5hbWUgPSAibW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQiCit9OworI2VuZGlmCiAKIC8qCiAgKiBUaGlzIGZ1bmN0aW9uIGNhbid0IHJ1biBjb25jdXJyZW50bHkgYWdhaW5zdCBtbXVfbm90aWZpZXJfcmVnaXN0ZXIKQEAgLTE3NCwxMSArMTY4LDE5IEBAIGludCBfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlKQogCWlkID0gc3JjdV9yZWFkX2xvY2soJnNyY3UpOwogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShtbiwgJnJhbmdlLT5tbS0+bW11X25vdGlmaWVyX21tLT5saXN0LCBobGlzdCkgewogCQlpZiAobW4tPm9wcy0+aW52YWxpZGF0ZV9yYW5nZV9zdGFydCkgewotCQkJaW50IF9yZXQgPSBtbi0+b3BzLT5pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KG1uLCByYW5nZSk7CisJCQlpbnQgX3JldDsKKworCQkJaWYgKCFtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKHJhbmdlKSkKKwkJCQlub25fYmxvY2tfc3RhcnQoKTsKKwkJCV9yZXQgPSBtbi0+b3BzLT5pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KG1uLCByYW5nZSk7CisJCQlpZiAoIW1tdV9ub3RpZmllcl9yYW5nZV9ibG9ja2FibGUocmFuZ2UpKQorCQkJCW5vbl9ibG9ja19lbmQoKTsKIAkJCWlmIChfcmV0KSB7CiAJCQkJcHJfaW5mbygiJXBTIGNhbGxiYWNrIGZhaWxlZCB3aXRoICVkIGluICVzYmxvY2thYmxlIGNvbnRleHQuXG4iLAogCQkJCQltbi0+b3BzLT5pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0LCBfcmV0LAogCQkJCQkhbW11X25vdGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShyYW5nZSkgPyAibm9uLSIgOiAiIik7CisJCQkJV0FSTl9PTihtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKHJhbmdlKSB8fAorCQkJCQlyZXQgIT0gLUVBR0FJTik7CiAJCQkJcmV0ID0gX3JldDsKIAkJCX0KIAkJfQpAQCAtMTg3LDcgKzE4OSw2IEBAIGludCBfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlKQogCiAJcmV0dXJuIHJldDsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKF9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQpOwogCiB2b2lkIF9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAogCQkJCQkgYm9vbCBvbmx5X2VuZCkKQEAgLTE5NSw2ICsxOTYsNyBAQCB2b2lkIF9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAogCXN0cnVjdCBtbXVfbm90aWZpZXIgKm1uOwogCWludCBpZDsKIAorCWxvY2tfbWFwX2FjcXVpcmUoJl9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnRfbWFwKTsKIAlpZCA9IHNyY3VfcmVhZF9sb2NrKCZzcmN1KTsKIAlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UobW4sICZyYW5nZS0+bW0tPm1tdV9ub3RpZmllcl9tbS0+bGlzdCwgaGxpc3QpIHsKIAkJLyoKQEAgLTIxNCwxMiArMjE2LDE3IEBAIHZvaWQgX19tbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9lbmQoc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSAqcmFuZ2UsCiAJCQltbi0+b3BzLT5pbnZhbGlkYXRlX3JhbmdlKG1uLCByYW5nZS0+bW0sCiAJCQkJCQkgIHJhbmdlLT5zdGFydCwKIAkJCQkJCSAgcmFuZ2UtPmVuZCk7Ci0JCWlmIChtbi0+b3BzLT5pbnZhbGlkYXRlX3JhbmdlX2VuZCkKKwkJaWYgKG1uLT5vcHMtPmludmFsaWRhdGVfcmFuZ2VfZW5kKSB7CisJCQlpZiAoIW1tdV9ub3RpZmllcl9yYW5nZV9ibG9ja2FibGUocmFuZ2UpKQorCQkJCW5vbl9ibG9ja19zdGFydCgpOwogCQkJbW4tPm9wcy0+aW52YWxpZGF0ZV9yYW5nZV9lbmQobW4sIHJhbmdlKTsKKwkJCWlmICghbW11X25vdGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShyYW5nZSkpCisJCQkJbm9uX2Jsb2NrX2VuZCgpOworCQl9CiAJfQogCXNyY3VfcmVhZF91bmxvY2soJnNyY3UsIGlkKTsKKwlsb2NrX21hcF9yZWxlYXNlKCZfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0X21hcCk7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX2VuZCk7CiAKIHZvaWQgX19tbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCQkgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQpAQCAtMjM0LDM1ICsyNDEsNDkgQEAgdm9pZCBfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCX0KIAlzcmN1X3JlYWRfdW5sb2NrKCZzcmN1LCBpZCk7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlKTsKIAotc3RhdGljIGludCBkb19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sCi0JCQkJICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAotCQkJCSAgICBpbnQgdGFrZV9tbWFwX3NlbSkKKy8qCisgKiBTYW1lIGFzIG1tdV9ub3RpZmllcl9yZWdpc3RlciBidXQgaGVyZSB0aGUgY2FsbGVyIG11c3QgaG9sZCB0aGUKKyAqIG1tYXBfc2VtIGluIHdyaXRlIG1vZGUuCisgKi8KK2ludCBfX21tdV9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0Jc3RydWN0IG1tdV9ub3RpZmllcl9tbSAqbW11X25vdGlmaWVyX21tOworCXN0cnVjdCBtbXVfbm90aWZpZXJfbW0gKm1tdV9ub3RpZmllcl9tbSA9IE5VTEw7CiAJaW50IHJldDsKIAorCWxvY2tkZXBfYXNzZXJ0X2hlbGRfd3JpdGUoJm1tLT5tbWFwX3NlbSk7CiAJQlVHX09OKGF0b21pY19yZWFkKCZtbS0+bW1fdXNlcnMpIDw9IDApOwogCi0JcmV0ID0gLUVOT01FTTsKLQltbXVfbm90aWZpZXJfbW0gPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgbW11X25vdGlmaWVyX21tKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKHVubGlrZWx5KCFtbXVfbm90aWZpZXJfbW0pKQotCQlnb3RvIG91dDsKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfTE9DS0RFUCkpIHsKKwkJZnNfcmVjbGFpbV9hY3F1aXJlKEdGUF9LRVJORUwpOworCQlsb2NrX21hcF9hY3F1aXJlKCZfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0X21hcCk7CisJCWxvY2tfbWFwX3JlbGVhc2UoJl9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnRfbWFwKTsKKwkJZnNfcmVjbGFpbV9yZWxlYXNlKEdGUF9LRVJORUwpOworCX0KIAotCWlmICh0YWtlX21tYXBfc2VtKQotCQlkb3duX3dyaXRlKCZtbS0+bW1hcF9zZW0pOworCW1uLT5tbSA9IG1tOworCW1uLT51c2VycyA9IDE7CisKKwlpZiAoIW1tLT5tbXVfbm90aWZpZXJfbW0pIHsKKwkJLyoKKwkJICoga21hbGxvYyBjYW5ub3QgYmUgY2FsbGVkIHVuZGVyIG1tX3Rha2VfYWxsX2xvY2tzKCksIGJ1dCB3ZQorCQkgKiBrbm93IHRoYXQgbW0tPm1tdV9ub3RpZmllcl9tbSBjYW4ndCBjaGFuZ2Ugd2hpbGUgd2UgaG9sZAorCQkgKiB0aGUgd3JpdGUgc2lkZSBvZiB0aGUgbW1hcF9zZW0uCisJCSAqLworCQltbXVfbm90aWZpZXJfbW0gPQorCQkJa21hbGxvYyhzaXplb2Yoc3RydWN0IG1tdV9ub3RpZmllcl9tbSksIEdGUF9LRVJORUwpOworCQlpZiAoIW1tdV9ub3RpZmllcl9tbSkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCUlOSVRfSExJU1RfSEVBRCgmbW11X25vdGlmaWVyX21tLT5saXN0KTsKKwkJc3Bpbl9sb2NrX2luaXQoJm1tdV9ub3RpZmllcl9tbS0+bG9jayk7CisJfQorCiAJcmV0ID0gbW1fdGFrZV9hbGxfbG9ja3MobW0pOwogCWlmICh1bmxpa2VseShyZXQpKQogCQlnb3RvIG91dF9jbGVhbjsKIAotCWlmICghbW1faGFzX25vdGlmaWVycyhtbSkpIHsKLQkJSU5JVF9ITElTVF9IRUFEKCZtbXVfbm90aWZpZXJfbW0tPmxpc3QpOwotCQlzcGluX2xvY2tfaW5pdCgmbW11X25vdGlmaWVyX21tLT5sb2NrKTsKLQotCQltbS0+bW11X25vdGlmaWVyX21tID0gbW11X25vdGlmaWVyX21tOwotCQltbXVfbm90aWZpZXJfbW0gPSBOVUxMOwotCX0KKwkvKiBQYWlycyB3aXRoIHRoZSBtbWRyb3AgaW4gbW11X25vdGlmaWVyX3VucmVnaXN0ZXJfKiAqLwogCW1tZ3JhYihtbSk7CiAKIAkvKgpAQCAtMjczLDQ4ICsyOTQsMTE4IEBAIHN0YXRpYyBpbnQgZG9fbW11X25vdGlmaWVyX3JlZ2lzdGVyKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAogCSAqIFdlIGNhbid0IHJhY2UgYWdhaW5zdCBhbnkgb3RoZXIgbW11IG5vdGlmaWVyIG1ldGhvZCBlaXRoZXIKIAkgKiB0aGFua3MgdG8gbW1fdGFrZV9hbGxfbG9ja3MoKS4KIAkgKi8KKwlpZiAobW11X25vdGlmaWVyX21tKQorCQltbS0+bW11X25vdGlmaWVyX21tID0gbW11X25vdGlmaWVyX21tOworCiAJc3Bpbl9sb2NrKCZtbS0+bW11X25vdGlmaWVyX21tLT5sb2NrKTsKIAlobGlzdF9hZGRfaGVhZF9yY3UoJm1uLT5obGlzdCwgJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxpc3QpOwogCXNwaW5fdW5sb2NrKCZtbS0+bW11X25vdGlmaWVyX21tLT5sb2NrKTsKIAogCW1tX2Ryb3BfYWxsX2xvY2tzKG1tKTsKLW91dF9jbGVhbjoKLQlpZiAodGFrZV9tbWFwX3NlbSkKLQkJdXBfd3JpdGUoJm1tLT5tbWFwX3NlbSk7Ci0Ja2ZyZWUobW11X25vdGlmaWVyX21tKTsKLW91dDoKIAlCVUdfT04oYXRvbWljX3JlYWQoJm1tLT5tbV91c2VycykgPD0gMCk7CisJcmV0dXJuIDA7CisKK291dF9jbGVhbjoKKwlrZnJlZShtbXVfbm90aWZpZXJfbW0pOwogCXJldHVybiByZXQ7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChfX21tdV9ub3RpZmllcl9yZWdpc3Rlcik7CiAKLS8qCisvKioKKyAqIG1tdV9ub3RpZmllcl9yZWdpc3RlciAtIFJlZ2lzdGVyIGEgbm90aWZpZXIgb24gYSBtbQorICogQG1uOiBUaGUgbm90aWZpZXIgdG8gYXR0YWNoCisgKiBAbW06IFRoZSBtbSB0byBhdHRhY2ggdGhlIG5vdGlmaWVyIHRvCisgKgogICogTXVzdCBub3QgaG9sZCBtbWFwX3NlbSBub3IgYW55IG90aGVyIFZNIHJlbGF0ZWQgbG9jayB3aGVuIGNhbGxpbmcKICAqIHRoaXMgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uLiBNdXN0IGFsc28gZW5zdXJlIG1tX3VzZXJzIGNhbid0IGdvIGRvd24KICAqIHRvIHplcm8gd2hpbGUgdGhpcyBydW5zIHRvIGF2b2lkIHJhY2VzIHdpdGggbW11X25vdGlmaWVyX3JlbGVhc2UsCiAgKiBzbyBtbSBoYXMgdG8gYmUgY3VycmVudC0+bW0gb3IgdGhlIG1tIHNob3VsZCBiZSBwaW5uZWQgc2FmZWx5IHN1Y2gKICAqIGFzIHdpdGggZ2V0X3Rhc2tfbW0oKS4gSWYgdGhlIG1tIGlzIG5vdCBjdXJyZW50LT5tbSwgdGhlIG1tX3VzZXJzCiAgKiBwaW4gc2hvdWxkIGJlIHJlbGVhc2VkIGJ5IGNhbGxpbmcgbW1wdXQgYWZ0ZXIgbW11X25vdGlmaWVyX3JlZ2lzdGVyCi0gKiByZXR1cm5zLiBtbXVfbm90aWZpZXJfdW5yZWdpc3RlciBtdXN0IGJlIGFsd2F5cyBjYWxsZWQgdG8KLSAqIHVucmVnaXN0ZXIgdGhlIG5vdGlmaWVyLiBtbV9jb3VudCBpcyBhdXRvbWF0aWNhbGx5IHBpbm5lZCB0byBhbGxvdwotICogbW11X25vdGlmaWVyX3VucmVnaXN0ZXIgdG8gc2FmZWx5IHJ1biBhdCBhbnkgdGltZSBsYXRlciwgYmVmb3JlIG9yCi0gKiBhZnRlciBleGl0X21tYXAuIC0+cmVsZWFzZSB3aWxsIGFsd2F5cyBiZSBjYWxsZWQgYmVmb3JlIGV4aXRfbW1hcAotICogZnJlZXMgdGhlIHBhZ2VzLgorICogcmV0dXJucy4KKyAqCisgKiBtbXVfbm90aWZpZXJfdW5yZWdpc3RlcigpIG9yIG1tdV9ub3RpZmllcl9wdXQoKSBtdXN0IGJlIGFsd2F5cyBjYWxsZWQgdG8KKyAqIHVucmVnaXN0ZXIgdGhlIG5vdGlmaWVyLgorICoKKyAqIFdoaWxlIHRoZSBjYWxsZXIgaGFzIGEgbW11X25vdGlmaWVyIGdldCB0aGUgbW4tPm1tIHBvaW50ZXIgd2lsbCByZW1haW4KKyAqIHZhbGlkLCBhbmQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBhY3RpdmUgbW0gcG9pbnRlciB2aWEgbW1nZXRfbm90X3plcm8oKS4KICAqLwogaW50IG1tdV9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0JcmV0dXJuIGRvX21tdV9ub3RpZmllcl9yZWdpc3RlcihtbiwgbW0sIDEpOworCWludCByZXQ7CisKKwlkb3duX3dyaXRlKCZtbS0+bW1hcF9zZW0pOworCXJldCA9IF9fbW11X25vdGlmaWVyX3JlZ2lzdGVyKG1uLCBtbSk7CisJdXBfd3JpdGUoJm1tLT5tbWFwX3NlbSk7CisJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKG1tdV9ub3RpZmllcl9yZWdpc3Rlcik7CiAKLS8qCi0gKiBTYW1lIGFzIG1tdV9ub3RpZmllcl9yZWdpc3RlciBidXQgaGVyZSB0aGUgY2FsbGVyIG11c3QgaG9sZCB0aGUKLSAqIG1tYXBfc2VtIGluIHdyaXRlIG1vZGUuCi0gKi8KLWludCBfX21tdV9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCitzdGF0aWMgc3RydWN0IG1tdV9ub3RpZmllciAqCitmaW5kX2dldF9tbXVfbm90aWZpZXIoc3RydWN0IG1tX3N0cnVjdCAqbW0sIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzICpvcHMpCiB7Ci0JcmV0dXJuIGRvX21tdV9ub3RpZmllcl9yZWdpc3RlcihtbiwgbW0sIDApOworCXN0cnVjdCBtbXVfbm90aWZpZXIgKm1uOworCisJc3Bpbl9sb2NrKCZtbS0+bW11X25vdGlmaWVyX21tLT5sb2NrKTsKKwlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UgKG1uLCAmbW0tPm1tdV9ub3RpZmllcl9tbS0+bGlzdCwgaGxpc3QpIHsKKwkJaWYgKG1uLT5vcHMgIT0gb3BzKQorCQkJY29udGludWU7CisKKwkJaWYgKGxpa2VseShtbi0+dXNlcnMgIT0gVUlOVF9NQVgpKQorCQkJbW4tPnVzZXJzKys7CisJCWVsc2UKKwkJCW1uID0gRVJSX1BUUigtRU9WRVJGTE9XKTsKKwkJc3Bpbl91bmxvY2soJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxvY2spOworCQlyZXR1cm4gbW47CisJfQorCXNwaW5fdW5sb2NrKCZtbS0+bW11X25vdGlmaWVyX21tLT5sb2NrKTsKKwlyZXR1cm4gTlVMTDsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKF9fbW11X25vdGlmaWVyX3JlZ2lzdGVyKTsKKworLyoqCisgKiBtbXVfbm90aWZpZXJfZ2V0X2xvY2tlZCAtIFJldHVybiB0aGUgc2luZ2xlIHN0cnVjdCBtbXVfbm90aWZpZXIgZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtbSAmIG9wcworICogQG9wczogVGhlIG9wZXJhdGlvbnMgc3RydWN0IGJlaW5nIHN1YnNjcmliZSB3aXRoCisgKiBAbW0gOiBUaGUgbW0gdG8gYXR0YWNoIG5vdGlmaWVycyB0b28KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGVpdGhlciBhbGxvY2F0ZXMgYSBuZXcgbW11X25vdGlmaWVyIHZpYQorICogb3BzLT5hbGxvY19ub3RpZmllcigpLCBvciByZXR1cm5zIGFuIGFscmVhZHkgZXhpc3Rpbmcgbm90aWZpZXIgb24gdGhlCisgKiBsaXN0LiBUaGUgdmFsdWUgb2YgdGhlIG9wcyBwb2ludGVyIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZW4gdHdvIG5vdGlmaWVycworICogYXJlIHRoZSBzYW1lLgorICoKKyAqIEVhY2ggY2FsbCB0byBtbXVfbm90aWZpZXJfZ2V0KCkgbXVzdCBiZSBwYWlyZWQgd2l0aCBhIGNhbGwgdG8KKyAqIG1tdV9ub3RpZmllcl9wdXQoKS4gVGhlIGNhbGxlciBtdXN0IGhvbGQgdGhlIHdyaXRlIHNpZGUgb2YgbW0tPm1tYXBfc2VtLgorICoKKyAqIFdoaWxlIHRoZSBjYWxsZXIgaGFzIGEgbW11X25vdGlmaWVyIGdldCB0aGUgbW0gcG9pbnRlciB3aWxsIHJlbWFpbiB2YWxpZCwKKyAqIGFuZCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGFjdGl2ZSBtbSBwb2ludGVyIHZpYSBtbWdldF9ub3RfemVybygpLgorICovCitzdHJ1Y3QgbW11X25vdGlmaWVyICptbXVfbm90aWZpZXJfZ2V0X2xvY2tlZChjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyAqb3BzLAorCQkJCQkgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoreworCXN0cnVjdCBtbXVfbm90aWZpZXIgKm1uOworCWludCByZXQ7CisKKwlsb2NrZGVwX2Fzc2VydF9oZWxkX3dyaXRlKCZtbS0+bW1hcF9zZW0pOworCisJaWYgKG1tLT5tbXVfbm90aWZpZXJfbW0pIHsKKwkJbW4gPSBmaW5kX2dldF9tbXVfbm90aWZpZXIobW0sIG9wcyk7CisJCWlmIChtbikKKwkJCXJldHVybiBtbjsKKwl9CisKKwltbiA9IG9wcy0+YWxsb2Nfbm90aWZpZXIobW0pOworCWlmIChJU19FUlIobW4pKQorCQlyZXR1cm4gbW47CisJbW4tPm9wcyA9IG9wczsKKwlyZXQgPSBfX21tdV9ub3RpZmllcl9yZWdpc3RlcihtbiwgbW0pOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2ZyZWU7CisJcmV0dXJuIG1uOworb3V0X2ZyZWU6CisJbW4tPm9wcy0+ZnJlZV9ub3RpZmllcihtbik7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKG1tdV9ub3RpZmllcl9nZXRfbG9ja2VkKTsKIAogLyogdGhpcyBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGxhc3QgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIoKSByZXR1cm5lZCAqLwogdm9pZCBfX21tdV9ub3RpZmllcl9tbV9kZXN0cm95KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQpAQCAtMzc1LDI0ICs0NjYsNzQgQEAgdm9pZCBtbXVfbm90aWZpZXJfdW5yZWdpc3RlcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChtbXVfbm90aWZpZXJfdW5yZWdpc3Rlcik7CiAKLS8qCi0gKiBTYW1lIGFzIG1tdV9ub3RpZmllcl91bnJlZ2lzdGVyIGJ1dCBubyBjYWxsYmFjayBhbmQgbm8gc3JjdSBzeW5jaHJvbml6YXRpb24uCi0gKi8KLXZvaWQgbW11X25vdGlmaWVyX3VucmVnaXN0ZXJfbm9fcmVsZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKLQkJCQkJc3RydWN0IG1tX3N0cnVjdCAqbW0pCitzdGF0aWMgdm9pZCBtbXVfbm90aWZpZXJfZnJlZV9yY3Uoc3RydWN0IHJjdV9oZWFkICpyY3UpCiB7CisJc3RydWN0IG1tdV9ub3RpZmllciAqbW4gPSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3QgbW11X25vdGlmaWVyLCByY3UpOworCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gbW4tPm1tOworCisJbW4tPm9wcy0+ZnJlZV9ub3RpZmllcihtbik7CisJLyogUGFpcnMgd2l0aCB0aGUgZ2V0IGluIF9fbW11X25vdGlmaWVyX3JlZ2lzdGVyKCkgKi8KKwltbWRyb3AobW0pOworfQorCisvKioKKyAqIG1tdV9ub3RpZmllcl9wdXQgLSBSZWxlYXNlIHRoZSByZWZlcmVuY2Ugb24gdGhlIG5vdGlmaWVyCisgKiBAbW46IFRoZSBub3RpZmllciB0byBhY3Qgb24KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgcGFpcmVkIHdpdGggZWFjaCBtbXVfbm90aWZpZXJfZ2V0KCksIGl0IHJlbGVhc2VzIHRoZQorICogcmVmZXJlbmNlIG9idGFpbmVkIGJ5IHRoZSBnZXQuIElmIHRoaXMgaXMgdGhlIGxhc3QgcmVmZXJlbmNlIHRoZW4gcHJvY2VzcworICogdG8gZnJlZSB0aGUgbm90aWZpZXIgd2lsbCBiZSBydW4gYXN5bmNocm9ub3VzbHkuCisgKgorICogVW5saWtlIG1tdV9ub3RpZmllcl91bnJlZ2lzdGVyKCkgdGhlIGdldC9wdXQgZmxvdyBvbmx5IGNhbGxzIG9wcy0+cmVsZWFzZQorICogd2hlbiB0aGUgbW1fc3RydWN0IGlzIGRlc3Ryb3llZC4gSW5zdGVhZCBmcmVlX25vdGlmaWVyIGlzIGFsd2F5cyBjYWxsZWQgdG8KKyAqIHJlbGVhc2UgYW55IHJlc291cmNlcyBoZWxkIGJ5IHRoZSB1c2VyLgorICoKKyAqIEFzIG9wcy0+cmVsZWFzZSBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQsIHRoZSB1c2VyIG11c3QgZW5zdXJlIHRoYXQKKyAqIGFsbCBzcHRlcyBhcmUgZHJvcHBlZCwgYW5kIG5vIG5ldyBzcHRlcyBjYW4gYmUgZXN0YWJsaXNoZWQgYmVmb3JlCisgKiBtbXVfbm90aWZpZXJfcHV0KCkgaXMgY2FsbGVkLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBmcm9tIHRoZSBvcHMtPnJlbGVhc2UgY2FsbGJhY2ssIGhvd2V2ZXIgdGhlCisgKiBjYWxsZXIgbXVzdCBzdGlsbCBlbnN1cmUgaXQgaXMgY2FsbGVkIHBhaXJ3aXNlIHdpdGggbW11X25vdGlmaWVyX2dldCgpLgorICoKKyAqIE1vZHVsZXMgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIG11c3QgY2FsbCBtbXVfbm90aWZpZXJfc3luY2hyb25pemUoKSBpbgorICogdGhlaXIgX19leGl0IGZ1bmN0aW9ucyB0byBlbnN1cmUgdGhlIGFzeW5jIHdvcmsgaXMgY29tcGxldGVkLgorICovCit2b2lkIG1tdV9ub3RpZmllcl9wdXQoc3RydWN0IG1tdV9ub3RpZmllciAqbW4pCit7CisJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBtbi0+bW07CisKIAlzcGluX2xvY2soJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxvY2spOwotCS8qCi0JICogQ2FuIG5vdCB1c2UgbGlzdF9kZWxfcmN1KCkgc2luY2UgX19tbXVfbm90aWZpZXJfcmVsZWFzZQotCSAqIGNhbiBkZWxldGUgaXQgYmVmb3JlIHdlIGhvbGQgdGhlIGxvY2suCi0JICovCisJaWYgKFdBUk5fT04oIW1uLT51c2VycykgfHwgLS1tbi0+dXNlcnMpCisJCWdvdG8gb3V0X3VubG9jazsKIAlobGlzdF9kZWxfaW5pdF9yY3UoJm1uLT5obGlzdCk7CiAJc3Bpbl91bmxvY2soJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxvY2spOwogCi0JQlVHX09OKGF0b21pY19yZWFkKCZtbS0+bW1fY291bnQpIDw9IDApOwotCW1tZHJvcChtbSk7CisJY2FsbF9zcmN1KCZzcmN1LCAmbW4tPnJjdSwgbW11X25vdGlmaWVyX2ZyZWVfcmN1KTsKKwlyZXR1cm47CisKK291dF91bmxvY2s6CisJc3Bpbl91bmxvY2soJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxvY2spOwogfQotRVhQT1JUX1NZTUJPTF9HUEwobW11X25vdGlmaWVyX3VucmVnaXN0ZXJfbm9fcmVsZWFzZSk7CitFWFBPUlRfU1lNQk9MX0dQTChtbXVfbm90aWZpZXJfcHV0KTsKKworLyoqCisgKiBtbXVfbm90aWZpZXJfc3luY2hyb25pemUgLSBFbnN1cmUgYWxsIG1tdV9ub3RpZmllcnMgYXJlIGZyZWVkCisgKgorICogVGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgYWxsIG91dHN0YW5kaW5nIGFzeW5jIFNSVSB3b3JrIGZyb20KKyAqIG1tdV9ub3RpZmllcl9wdXQoKSBpcyBjb21wbGV0ZWQuIEFmdGVyIGl0IHJldHVybnMgYW55IG1tdV9ub3RpZmllcl9vcHMKKyAqIGFzc29jaWF0ZWQgd2l0aCBhbiB1bnVzZWQgbW11X25vdGlmaWVyIHdpbGwgbm8gbG9uZ2VyIGJlIGNhbGxlZC4KKyAqCisgKiBCZWZvcmUgdXNpbmcgdGhlIGNhbGxlciBtdXN0IGVuc3VyZSB0aGF0IGFsbCBvZiBpdHMgbW11X25vdGlmaWVycyBoYXZlIGJlZW4KKyAqIGZ1bGx5IHJlbGVhc2VkIHZpYSBtbXVfbm90aWZpZXJfcHV0KCkuCisgKgorICogTW9kdWxlcyB1c2luZyB0aGUgbW11X25vdGlmaWVyX3B1dCgpIEFQSSBzaG91bGQgY2FsbCB0aGlzIGluIHRoZWlyIF9fZXhpdAorICogZnVuY3Rpb24gdG8gYXZvaWQgbW9kdWxlIHVubG9hZGluZyByYWNlcy4KKyAqLwordm9pZCBtbXVfbm90aWZpZXJfc3luY2hyb25pemUodm9pZCkKK3sKKwlzeW5jaHJvbml6ZV9zcmN1KCZzcmN1KTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKG1tdV9ub3RpZmllcl9zeW5jaHJvbml6ZSk7CiAKIGJvb2wKIG1tdV9ub3RpZmllcl9yYW5nZV91cGRhdGVfdG9fcmVhZF9vbmx5KGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlKQpkaWZmIC0tZ2l0IGEvbW0vbXByb3RlY3QuYyBiL21tL21wcm90ZWN0LmMKaW5kZXggYmYzOGRmYi4uNzk2NzgyNSAxMDA2NDQKLS0tIGEvbW0vbXByb3RlY3QuYworKysgYi9tbS9tcHJvdGVjdC5jCkBAIC05LDcgKzksNyBAQAogICogIChDKSBDb3B5cmlnaHQgMjAwMiBSZWQgSGF0IEluYywgQWxsIFJpZ2h0cyBSZXNlcnZlZAogICovCiAKLSNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3BhZ2V3YWxrLmg+CiAjaW5jbHVkZSA8bGludXgvaHVnZXRsYi5oPgogI2luY2x1ZGUgPGxpbnV4L3NobS5oPgogI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KQEAgLTMyOSwyMCArMzI5LDExIEBAIHN0YXRpYyBpbnQgcHJvdF9ub25lX3Rlc3QodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIG5leHQsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcHJvdF9ub25lX3dhbGsoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCQkgICB1bnNpZ25lZCBsb25nIGVuZCwgdW5zaWduZWQgbG9uZyBuZXdmbGFncykKLXsKLQlwZ3Byb3RfdCBuZXdfcGdwcm90ID0gdm1fZ2V0X3BhZ2VfcHJvdChuZXdmbGFncyk7Ci0Jc3RydWN0IG1tX3dhbGsgcHJvdF9ub25lX3dhbGsgPSB7Ci0JCS5wdGVfZW50cnkgPSBwcm90X25vbmVfcHRlX2VudHJ5LAotCQkuaHVnZXRsYl9lbnRyeSA9IHByb3Rfbm9uZV9odWdldGxiX2VudHJ5LAotCQkudGVzdF93YWxrID0gcHJvdF9ub25lX3Rlc3QsCi0JCS5tbSA9IGN1cnJlbnQtPm1tLAotCQkucHJpdmF0ZSA9ICZuZXdfcGdwcm90LAotCX07Ci0KLQlyZXR1cm4gd2Fsa19wYWdlX3JhbmdlKHN0YXJ0LCBlbmQsICZwcm90X25vbmVfd2Fsayk7Ci19CitzdGF0aWMgY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzIHByb3Rfbm9uZV93YWxrX29wcyA9IHsKKwkucHRlX2VudHJ5CQk9IHByb3Rfbm9uZV9wdGVfZW50cnksCisJLmh1Z2V0bGJfZW50cnkJCT0gcHJvdF9ub25lX2h1Z2V0bGJfZW50cnksCisJLnRlc3Rfd2FsawkJPSBwcm90X25vbmVfdGVzdCwKK307CiAKIGludAogbXByb3RlY3RfZml4dXAoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKnBwcmV2LApAQCAtMzY5LDcgKzM2MCwxMCBAQCBtcHJvdGVjdF9maXh1cChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICoqcHByZXYsCiAJaWYgKGFyY2hfaGFzX3Bmbl9tb2RpZnlfY2hlY2soKSAmJgogCSAgICAodm1hLT52bV9mbGFncyAmIChWTV9QRk5NQVB8Vk1fTUlYRURNQVApKSAmJgogCSAgICAobmV3ZmxhZ3MgJiAoVk1fUkVBRHxWTV9XUklURXxWTV9FWEVDKSkgPT0gMCkgewotCQllcnJvciA9IHByb3Rfbm9uZV93YWxrKHZtYSwgc3RhcnQsIGVuZCwgbmV3ZmxhZ3MpOworCQlwZ3Byb3RfdCBuZXdfcGdwcm90ID0gdm1fZ2V0X3BhZ2VfcHJvdChuZXdmbGFncyk7CisKKwkJZXJyb3IgPSB3YWxrX3BhZ2VfcmFuZ2UoY3VycmVudC0+bW0sIHN0YXJ0LCBlbmQsCisJCQkJJnByb3Rfbm9uZV93YWxrX29wcywgJm5ld19wZ3Byb3QpOwogCQlpZiAoZXJyb3IpCiAJCQlyZXR1cm4gZXJyb3I7CiAJfQpAQCAtNDY1LDYgKzQ1OSw4IEBAIHN0YXRpYyBpbnQgZG9fbXByb3RlY3RfcGtleSh1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplX3QgbGVuLAogCWNvbnN0IGJvb2wgcmllciA9IChjdXJyZW50LT5wZXJzb25hbGl0eSAmIFJFQURfSU1QTElFU19FWEVDKSAmJgogCQkJCShwcm90ICYgUFJPVF9SRUFEKTsKIAorCXN0YXJ0ID0gdW50YWdnZWRfYWRkcihzdGFydCk7CisKIAlwcm90ICY9IH4oUFJPVF9HUk9XU0RPV058UFJPVF9HUk9XU1VQKTsKIAlpZiAoZ3Jvd3MgPT0gKFBST1RfR1JPV1NET1dOfFBST1RfR1JPV1NVUCkpIC8qIGNhbid0IGJlIGJvdGggKi8KIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9tbS9tcmVtYXAuYyBiL21tL21yZW1hcC5jCmluZGV4IGZjMjQxZDIuLjFmYzhhMjkgMTAwNjQ0Ci0tLSBhL21tL21yZW1hcC5jCisrKyBiL21tL21yZW1hcC5jCkBAIC02MDYsNiArNjA2LDkgQEAgU1lTQ0FMTF9ERUZJTkU1KG1yZW1hcCwgdW5zaWduZWQgbG9uZywgYWRkciwgdW5zaWduZWQgbG9uZywgb2xkX2xlbiwKIAlMSVNUX0hFQUQodWZfdW5tYXBfZWFybHkpOwogCUxJU1RfSEVBRCh1Zl91bm1hcCk7CiAKKwlhZGRyID0gdW50YWdnZWRfYWRkcihhZGRyKTsKKwluZXdfYWRkciA9IHVudGFnZ2VkX2FkZHIobmV3X2FkZHIpOworCiAJaWYgKGZsYWdzICYgfihNUkVNQVBfRklYRUQgfCBNUkVNQVBfTUFZTU9WRSkpCiAJCXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL21tL21zeW5jLmMgYi9tbS9tc3luYy5jCmluZGV4IGVmMzBhNDIuLmMzYmQzZTc1IDEwMDY0NAotLS0gYS9tbS9tc3luYy5jCisrKyBiL21tL21zeW5jLmMKQEAgLTM3LDYgKzM3LDggQEAgU1lTQ0FMTF9ERUZJTkUzKG1zeW5jLCB1bnNpZ25lZCBsb25nLCBzdGFydCwgc2l6ZV90LCBsZW4sIGludCwgZmxhZ3MpCiAJaW50IHVubWFwcGVkX2Vycm9yID0gMDsKIAlpbnQgZXJyb3IgPSAtRUlOVkFMOwogCisJc3RhcnQgPSB1bnRhZ2dlZF9hZGRyKHN0YXJ0KTsKKwogCWlmIChmbGFncyAmIH4oTVNfQVNZTkMgfCBNU19JTlZBTElEQVRFIHwgTVNfU1lOQykpCiAJCWdvdG8gb3V0OwogCWlmIChvZmZzZXRfaW5fcGFnZShzdGFydCkpCmRpZmYgLS1naXQgYS9tbS9ub21tdS5jIGIvbW0vbm9tbXUuYwppbmRleCBmZWQxYjZlLi45OWI3ZWMzIDEwMDY0NAotLS0gYS9tbS9ub21tdS5jCisrKyBiL21tL25vbW11LmMKQEAgLTEwOCw3ICsxMDgsNyBAQCB1bnNpZ25lZCBpbnQga29ianNpemUoY29uc3Qgdm9pZCAqb2JqcCkKIAkgKiBUaGUga3NpemUoKSBmdW5jdGlvbiBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gd29yayBmb3IgcG9pbnRlcnMKIAkgKiByZXR1cm5lZCBieSBrbWFsbG9jKCkuIFNvIGhhbmRsZSBhcmJpdHJhcnkgcG9pbnRlcnMgaGVyZS4KIAkgKi8KLQlyZXR1cm4gUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpOworCXJldHVybiBwYWdlX3NpemUocGFnZSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvbW0vb29tX2tpbGwuYyBiL21tL29vbV9raWxsLmMKaW5kZXggZWRhMmUyYS4uNzFlM2FjZSAxMDA2NDQKLS0tIGEvbW0vb29tX2tpbGwuYworKysgYi9tbS9vb21fa2lsbC5jCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc19tZW1jZ19vb20oc3RydWN0IG9vbV9jb250cm9sICpvYykKIC8qKgogICogb29tX2NwdXNldF9lbGlnaWJsZSgpIC0gY2hlY2sgdGFzayBlbGlnaWJsaXR5IGZvciBraWxsCiAgKiBAc3RhcnQ6IHRhc2sgc3RydWN0IG9mIHdoaWNoIHRhc2sgdG8gY29uc2lkZXIKLSAqIEBtYXNrOiBub2RlbWFzayBwYXNzZWQgdG8gcGFnZSBhbGxvY2F0b3IgZm9yIG1lbXBvbGljeSBvb21zCisgKiBAb2M6IHBvaW50ZXIgdG8gc3RydWN0IG9vbV9jb250cm9sCiAgKgogICogVGFzayBlbGlnaWJpbGl0eSBpcyBkZXRlcm1pbmVkIGJ5IHdoZXRoZXIgb3Igbm90IGEgY2FuZGlkYXRlIHRhc2ssIEB0c2ssCiAgKiBzaGFyZXMgdGhlIHNhbWUgbWVtcG9saWN5IG5vZGVzIGFzIGN1cnJlbnQgaWYgaXQgaXMgYm91bmQgYnkgc3VjaCBhIHBvbGljeQpAQCAtMjg3LDcgKzI4Nyw3IEBAIHN0YXRpYyBlbnVtIG9vbV9jb25zdHJhaW50IGNvbnN0cmFpbmVkX2FsbG9jKHN0cnVjdCBvb21fY29udHJvbCAqb2MpCiAJICAgICFub2Rlc19zdWJzZXQobm9kZV9zdGF0ZXNbTl9NRU1PUlldLCAqb2MtPm5vZGVtYXNrKSkgewogCQlvYy0+dG90YWxwYWdlcyA9IHRvdGFsX3N3YXBfcGFnZXM7CiAJCWZvcl9lYWNoX25vZGVfbWFzayhuaWQsICpvYy0+bm9kZW1hc2spCi0JCQlvYy0+dG90YWxwYWdlcyArPSBub2RlX3NwYW5uZWRfcGFnZXMobmlkKTsKKwkJCW9jLT50b3RhbHBhZ2VzICs9IG5vZGVfcHJlc2VudF9wYWdlcyhuaWQpOwogCQlyZXR1cm4gQ09OU1RSQUlOVF9NRU1PUllfUE9MSUNZOwogCX0KIApAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBlbnVtIG9vbV9jb25zdHJhaW50IGNvbnN0cmFpbmVkX2FsbG9jKHN0cnVjdCBvb21fY29udHJvbCAqb2MpCiAJaWYgKGNwdXNldF9saW1pdGVkKSB7CiAJCW9jLT50b3RhbHBhZ2VzID0gdG90YWxfc3dhcF9wYWdlczsKIAkJZm9yX2VhY2hfbm9kZV9tYXNrKG5pZCwgY3B1c2V0X2N1cnJlbnRfbWVtc19hbGxvd2VkKQotCQkJb2MtPnRvdGFscGFnZXMgKz0gbm9kZV9zcGFubmVkX3BhZ2VzKG5pZCk7CisJCQlvYy0+dG90YWxwYWdlcyArPSBub2RlX3ByZXNlbnRfcGFnZXMobmlkKTsKIAkJcmV0dXJuIENPTlNUUkFJTlRfQ1BVU0VUOwogCX0KIAlyZXR1cm4gQ09OU1RSQUlOVF9OT05FOwpAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgX19vb21fcmVhcF90YXNrX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogCXNldF9iaXQoTU1GX1VOU1RBQkxFLCAmbW0tPmZsYWdzKTsKIAogCWZvciAodm1hID0gbW0tPm1tYXAgOyB2bWE7IHZtYSA9IHZtYS0+dm1fbmV4dCkgewotCQlpZiAoIWNhbl9tYWR2X2RvbnRuZWVkX3ZtYSh2bWEpKQorCQlpZiAoIWNhbl9tYWR2X2xydV92bWEodm1hKSkKIAkJCWNvbnRpbnVlOwogCiAJCS8qCkBAIC04ODQsMTIgKzg4NCwxMyBAQCBzdGF0aWMgdm9pZCBfX29vbV9raWxsX3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICp2aWN0aW0sIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCiAJICovCiAJZG9fc2VuZF9zaWdfaW5mbyhTSUdLSUxMLCBTRU5EX1NJR19QUklWLCB2aWN0aW0sIFBJRFRZUEVfVEdJRCk7CiAJbWFya19vb21fdmljdGltKHZpY3RpbSk7Ci0JcHJfZXJyKCIlczogS2lsbGVkIHByb2Nlc3MgJWQgKCVzKSB0b3RhbC12bTolbHVrQiwgYW5vbi1yc3M6JWx1a0IsIGZpbGUtcnNzOiVsdWtCLCBzaG1lbS1yc3M6JWx1a0JcbiIsCi0JCW1lc3NhZ2UsIHRhc2tfcGlkX25yKHZpY3RpbSksIHZpY3RpbS0+Y29tbSwKLQkJSyh2aWN0aW0tPm1tLT50b3RhbF92bSksCi0JCUsoZ2V0X21tX2NvdW50ZXIodmljdGltLT5tbSwgTU1fQU5PTlBBR0VTKSksCi0JCUsoZ2V0X21tX2NvdW50ZXIodmljdGltLT5tbSwgTU1fRklMRVBBR0VTKSksCi0JCUsoZ2V0X21tX2NvdW50ZXIodmljdGltLT5tbSwgTU1fU0hNRU1QQUdFUykpKTsKKwlwcl9lcnIoIiVzOiBLaWxsZWQgcHJvY2VzcyAlZCAoJXMpIHRvdGFsLXZtOiVsdWtCLCBhbm9uLXJzczolbHVrQiwgZmlsZS1yc3M6JWx1a0IsIHNobWVtLXJzczolbHVrQiwgVUlEOiV1IHBndGFibGVzOiVsdWtCIG9vbV9zY29yZV9hZGo6JWhkXG4iLAorCQltZXNzYWdlLCB0YXNrX3BpZF9ucih2aWN0aW0pLCB2aWN0aW0tPmNvbW0sIEsobW0tPnRvdGFsX3ZtKSwKKwkJSyhnZXRfbW1fY291bnRlcihtbSwgTU1fQU5PTlBBR0VTKSksCisJCUsoZ2V0X21tX2NvdW50ZXIobW0sIE1NX0ZJTEVQQUdFUykpLAorCQlLKGdldF9tbV9jb3VudGVyKG1tLCBNTV9TSE1FTVBBR0VTKSksCisJCWZyb21fa3VpZCgmaW5pdF91c2VyX25zLCB0YXNrX3VpZCh2aWN0aW0pKSwKKwkJbW1fcGd0YWJsZXNfYnl0ZXMobW0pLCB2aWN0aW0tPnNpZ25hbC0+b29tX3Njb3JlX2Fkaik7CiAJdGFza191bmxvY2sodmljdGltKTsKIAogCS8qCkBAIC0xMDY4LDkgKzEwNjksMTAgQEAgYm9vbCBvdXRfb2ZfbWVtb3J5KHN0cnVjdCBvb21fY29udHJvbCAqb2MpCiAJICogVGhlIE9PTSBraWxsZXIgZG9lcyBub3QgY29tcGVuc2F0ZSBmb3IgSU8tbGVzcyByZWNsYWltLgogCSAqIHBhZ2VmYXVsdF9vdXRfb2ZfbWVtb3J5IGxvc3QgaXRzIGdmcCBjb250ZXh0IHNvIHdlIGhhdmUgdG8KIAkgKiBtYWtlIHN1cmUgZXhjbHVkZSAwIG1hc2sgLSBhbGwgb3RoZXIgdXNlcnMgc2hvdWxkIGhhdmUgYXQgbGVhc3QKLQkgKiBfX19HRlBfRElSRUNUX1JFQ0xBSU0gdG8gZ2V0IGhlcmUuCisJICogX19fR0ZQX0RJUkVDVF9SRUNMQUlNIHRvIGdldCBoZXJlLiBCdXQgbWVtX2Nncm91cF9vb20oKSBoYXMgdG8KKwkgKiBpbnZva2UgdGhlIE9PTSBraWxsZXIgZXZlbiBpZiBpdCBpcyBhIEdGUF9OT0ZTIGFsbG9jYXRpb24uCiAJICovCi0JaWYgKG9jLT5nZnBfbWFzayAmJiAhKG9jLT5nZnBfbWFzayAmIF9fR0ZQX0ZTKSkKKwlpZiAob2MtPmdmcF9tYXNrICYmICEob2MtPmdmcF9tYXNrICYgX19HRlBfRlMpICYmICFpc19tZW1jZ19vb20ob2MpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCS8qCmRpZmYgLS1naXQgYS9tbS9wYWdlX2FsbG9jLmMgYi9tbS9wYWdlX2FsbG9jLmMKaW5kZXggNjk5MWNjZWMuLjE1YzIwNTAgMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfYWxsb2MuYworKysgYi9tbS9wYWdlX2FsbG9jLmMKQEAgLTY3MCw2ICs2NzAsNyBAQCBzdGF0aWMgdm9pZCBiYWRfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgY29uc3QgY2hhciAqcmVhc29uLAogCiB2b2lkIGZyZWVfY29tcG91bmRfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsKKwltZW1fY2dyb3VwX3VuY2hhcmdlKHBhZ2UpOwogCV9fZnJlZV9wYWdlc19vayhwYWdlLCBjb21wb3VuZF9vcmRlcihwYWdlKSk7CiB9CiAKQEAgLTM5NTUsMTcgKzM5NTYsMjUgQEAgc2hvdWxkX2NvbXBhY3RfcmV0cnkoc3RydWN0IGFsbG9jX2NvbnRleHQgKmFjLCBpbnQgb3JkZXIsIGludCBhbGxvY19mbGFncywKIAkJZ290byBjaGVja19wcmlvcml0eTsKIAogCS8qCi0JICogbWFrZSBzdXJlIHRoZSBjb21wYWN0aW9uIHdhc24ndCBkZWZlcnJlZCBvciBkaWRuJ3QgYmFpbCBvdXQgZWFybHkKLQkgKiBkdWUgdG8gbG9ja3MgY29udGVudGlvbiBiZWZvcmUgd2UgZGVjbGFyZSB0aGF0IHdlIHNob3VsZCBnaXZlIHVwLgotCSAqIEJ1dCBkbyBub3QgcmV0cnkgaWYgdGhlIGdpdmVuIHpvbmVsaXN0IGlzIG5vdCBzdWl0YWJsZSBmb3IKLQkgKiBjb21wYWN0aW9uLgorCSAqIGNvbXBhY3Rpb24gd2FzIHNraXBwZWQgYmVjYXVzZSB0aGVyZSBhcmUgbm90IGVub3VnaCBvcmRlci0wIHBhZ2VzCisJICogdG8gd29yayB3aXRoLCBzbyB3ZSByZXRyeSBvbmx5IGlmIGl0IGxvb2tzIGxpa2UgcmVjbGFpbSBjYW4gaGVscC4KIAkgKi8KLQlpZiAoY29tcGFjdGlvbl93aXRoZHJhd24oY29tcGFjdF9yZXN1bHQpKSB7CisJaWYgKGNvbXBhY3Rpb25fbmVlZHNfcmVjbGFpbShjb21wYWN0X3Jlc3VsdCkpIHsKIAkJcmV0ID0gY29tcGFjdGlvbl96b25lbGlzdF9zdWl0YWJsZShhYywgb3JkZXIsIGFsbG9jX2ZsYWdzKTsKIAkJZ290byBvdXQ7CiAJfQogCiAJLyoKKwkgKiBtYWtlIHN1cmUgdGhlIGNvbXBhY3Rpb24gd2Fzbid0IGRlZmVycmVkIG9yIGRpZG4ndCBiYWlsIG91dCBlYXJseQorCSAqIGR1ZSB0byBsb2NrcyBjb250ZW50aW9uIGJlZm9yZSB3ZSBkZWNsYXJlIHRoYXQgd2Ugc2hvdWxkIGdpdmUgdXAuCisJICogQnV0IHRoZSBuZXh0IHJldHJ5IHNob3VsZCB1c2UgYSBoaWdoZXIgcHJpb3JpdHkgaWYgYWxsb3dlZCwgc28KKwkgKiB3ZSBkb24ndCBqdXN0IGtlZXAgYmFpbGluZyBvdXQgZW5kbGVzc2x5LgorCSAqLworCWlmIChjb21wYWN0aW9uX3dpdGhkcmF3bihjb21wYWN0X3Jlc3VsdCkpIHsKKwkJZ290byBjaGVja19wcmlvcml0eTsKKwl9CisKKwkvKgogCSAqICFjb3N0bHkgcmVxdWVzdHMgYXJlIG11Y2ggbW9yZSBpbXBvcnRhbnQgdGhhbiBfX0dGUF9SRVRSWV9NQVlGQUlMCiAJICogY29zdGx5IG9uZXMgYmVjYXVzZSB0aGV5IGFyZSBkZSBmYWN0byBub2ZhaWwgYW5kIGludm9rZSBPT00KIAkgKiBraWxsZXIgdG8gbW92ZSBvbiB3aGlsZSBjb3N0bHkgY2FuIGZhaWwgYW5kIHVzZXJzIGFyZSByZWFkeQpAQCAtNDQ1OCw2ICs0NDY3LDI4IEBAIF9fYWxsb2NfcGFnZXNfc2xvd3BhdGgoZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVkIGludCBvcmRlciwKIAkJaWYgKHBhZ2UpCiAJCQlnb3RvIGdvdF9wZzsKIAorCQkgaWYgKG9yZGVyID49IHBhZ2VibG9ja19vcmRlciAmJiAoZ2ZwX21hc2sgJiBfX0dGUF9JTykpIHsKKwkJCS8qCisJCQkgKiBJZiBhbGxvY2F0aW5nIGVudGlyZSBwYWdlYmxvY2socykgYW5kIGNvbXBhY3Rpb24KKwkJCSAqIGZhaWxlZCBiZWNhdXNlIGFsbCB6b25lcyBhcmUgYmVsb3cgbG93IHdhdGVybWFya3MKKwkJCSAqIG9yIGlzIHByb2hpYml0ZWQgYmVjYXVzZSBpdCByZWNlbnRseSBmYWlsZWQgYXQgdGhpcworCQkJICogb3JkZXIsIGZhaWwgaW1tZWRpYXRlbHkuCisJCQkgKgorCQkJICogUmVjbGFpbSBpcworCQkJICogIC0gcG90ZW50aWFsbHkgdmVyeSBleHBlbnNpdmUgYmVjYXVzZSB6b25lcyBhcmUgZmFyCisJCQkgKiAgICBiZWxvdyB0aGVpciBsb3cgd2F0ZXJtYXJrcyBvciB0aGlzIGlzIHBhcnQgb2YgdmVyeQorCQkJICogICAgYnVyc3R5IGhpZ2ggb3JkZXIgYWxsb2NhdGlvbnMsCisJCQkgKiAgLSBub3QgZ3VhcmFudGVlZCB0byBoZWxwIGJlY2F1c2UgaXNvbGF0ZV9mcmVlcGFnZXMoKQorCQkJICogICAgbWF5IG5vdCBpdGVyYXRlIG92ZXIgZnJlZWQgcGFnZXMgYXMgcGFydCBvZiBpdHMKKwkJCSAqICAgIGxpbmVhciBzY2FuLCBhbmQKKwkJCSAqICAtIHVubGlrZWx5IHRvIG1ha2UgZW50aXJlIHBhZ2VibG9ja3MgZnJlZSBvbiBpdHMKKwkJCSAqICAgIG93bi4KKwkJCSAqLworCQkJaWYgKGNvbXBhY3RfcmVzdWx0ID09IENPTVBBQ1RfU0tJUFBFRCB8fAorCQkJICAgIGNvbXBhY3RfcmVzdWx0ID09IENPTVBBQ1RfREVGRVJSRUQpCisJCQkJZ290byBub3BhZ2U7CisJCX0KKwogCQkvKgogCQkgKiBDaGVja3MgZm9yIGNvc3RseSBhbGxvY2F0aW9ucyB3aXRoIF9fR0ZQX05PUkVUUlksIHdoaWNoCiAJCSAqIGluY2x1ZGVzIFRIUCBwYWdlIGZhdWx0IGFsbG9jYXRpb25zCkBAIC01OTcxLDcgKzYwMDIsNyBAQCB2b2lkIF9fcmVmIG1lbW1hcF9pbml0X3pvbmVfZGV2aWNlKHN0cnVjdCB6b25lICp6b25lLAogCQl9CiAJfQogCi0JcHJfaW5mbygiJXMgaW5pdGlhbGlzZWQsICVsdSBwYWdlcyBpbiAldW1zXG4iLCBkZXZfbmFtZShwZ21hcC0+ZGV2KSwKKwlwcl9pbmZvKCIlcyBpbml0aWFsaXNlZCAlbHUgcGFnZXMgaW4gJXVtc1xuIiwgX19mdW5jX18sCiAJCXNpemUsIGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtIHN0YXJ0KSk7CiB9CiAKQEAgLTY2MzgsOSArNjY2OSwxMSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgY2FsY19tZW1tYXBfc2l6ZSh1bnNpZ25lZCBsb25nIHNwYW5uZWRfcGFnZXMsCiAjaWZkZWYgQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFCiBzdGF0aWMgdm9pZCBwZ2RhdF9pbml0X3NwbGl0X3F1ZXVlKHN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQpCiB7Ci0Jc3Bpbl9sb2NrX2luaXQoJnBnZGF0LT5zcGxpdF9xdWV1ZV9sb2NrKTsKLQlJTklUX0xJU1RfSEVBRCgmcGdkYXQtPnNwbGl0X3F1ZXVlKTsKLQlwZ2RhdC0+c3BsaXRfcXVldWVfbGVuID0gMDsKKwlzdHJ1Y3QgZGVmZXJyZWRfc3BsaXQgKmRzX3F1ZXVlID0gJnBnZGF0LT5kZWZlcnJlZF9zcGxpdF9xdWV1ZTsKKworCXNwaW5fbG9ja19pbml0KCZkc19xdWV1ZS0+c3BsaXRfcXVldWVfbG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJmRzX3F1ZXVlLT5zcGxpdF9xdWV1ZSk7CisJZHNfcXVldWUtPnNwbGl0X3F1ZXVlX2xlbiA9IDA7CiB9CiAjZWxzZQogc3RhdGljIHZvaWQgcGdkYXRfaW5pdF9zcGxpdF9xdWV1ZShzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0KSB7fQpAQCAtODE5Niw3ICs4MjI5LDcgQEAgYm9vbCBoYXNfdW5tb3ZhYmxlX3BhZ2VzKHN0cnVjdCB6b25lICp6b25lLCBzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50IGNvdW50LAogCQkJaWYgKCFodWdlcGFnZV9taWdyYXRpb25fc3VwcG9ydGVkKHBhZ2VfaHN0YXRlKGhlYWQpKSkKIAkJCQlnb3RvIHVubW92YWJsZTsKIAotCQkJc2tpcF9wYWdlcyA9ICgxIDw8IGNvbXBvdW5kX29yZGVyKGhlYWQpKSAtIChwYWdlIC0gaGVhZCk7CisJCQlza2lwX3BhZ2VzID0gY29tcG91bmRfbnIoaGVhZCkgLSAocGFnZSAtIGhlYWQpOwogCQkJaXRlciArPSBza2lwX3BhZ2VzIC0gMTsKIAkJCWNvbnRpbnVlOwogCQl9CmRpZmYgLS1naXQgYS9tbS9wYWdlX293bmVyLmMgYi9tbS9wYWdlX293bmVyLmMKaW5kZXggYWRkY2JiMmEuLmRlZTkzMTEgMTAwNjQ0Ci0tLSBhL21tL3BhZ2Vfb3duZXIuYworKysgYi9tbS9wYWdlX293bmVyLmMKQEAgLTI0LDYgKzI0LDkgQEAgc3RydWN0IHBhZ2Vfb3duZXIgewogCXNob3J0IGxhc3RfbWlncmF0ZV9yZWFzb247CiAJZ2ZwX3QgZ2ZwX21hc2s7CiAJZGVwb3Rfc3RhY2tfaGFuZGxlX3QgaGFuZGxlOworI2lmZGVmIENPTkZJR19ERUJVR19QQUdFQUxMT0MKKwlkZXBvdF9zdGFja19oYW5kbGVfdCBmcmVlX2hhbmRsZTsKKyNlbmRpZgogfTsKIAogc3RhdGljIGJvb2wgcGFnZV9vd25lcl9kaXNhYmxlZCA9IHRydWU7CkBAIC0xMDIsMTkgKzEwNSw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2Vfb3duZXIgKmdldF9wYWdlX293bmVyKHN0cnVjdCBwYWdlX2V4dCAqcGFnZV9leHQpCiAJcmV0dXJuICh2b2lkICopcGFnZV9leHQgKyBwYWdlX293bmVyX29wcy5vZmZzZXQ7CiB9CiAKLXZvaWQgX19yZXNldF9wYWdlX293bmVyKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIpCi17Ci0JaW50IGk7Ci0Jc3RydWN0IHBhZ2VfZXh0ICpwYWdlX2V4dDsKLQotCWZvciAoaSA9IDA7IGkgPCAoMSA8PCBvcmRlcik7IGkrKykgewotCQlwYWdlX2V4dCA9IGxvb2t1cF9wYWdlX2V4dChwYWdlICsgaSk7Ci0JCWlmICh1bmxpa2VseSghcGFnZV9leHQpKQotCQkJY29udGludWU7Ci0JCV9fY2xlYXJfYml0KFBBR0VfRVhUX09XTkVSLCAmcGFnZV9leHQtPmZsYWdzKTsKLQl9Ci19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja19yZWN1cnNpdmVfYWxsb2ModW5zaWduZWQgbG9uZyAqZW50cmllcywKIAkJCQkJIHVuc2lnbmVkIGludCBucl9lbnRyaWVzLAogCQkJCQkgdW5zaWduZWQgbG9uZyBpcCkKQEAgLTE1NCwxOCArMTQ0LDUwIEBAIHN0YXRpYyBub2lubGluZSBkZXBvdF9zdGFja19oYW5kbGVfdCBzYXZlX3N0YWNrKGdmcF90IGZsYWdzKQogCXJldHVybiBoYW5kbGU7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX3NldF9wYWdlX293bmVyX2hhbmRsZShzdHJ1Y3QgcGFnZV9leHQgKnBhZ2VfZXh0LAotCWRlcG90X3N0YWNrX2hhbmRsZV90IGhhbmRsZSwgdW5zaWduZWQgaW50IG9yZGVyLCBnZnBfdCBnZnBfbWFzaykKK3ZvaWQgX19yZXNldF9wYWdlX293bmVyKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiB7CisJaW50IGk7CisJc3RydWN0IHBhZ2VfZXh0ICpwYWdlX2V4dDsKKyNpZmRlZiBDT05GSUdfREVCVUdfUEFHRUFMTE9DCisJZGVwb3Rfc3RhY2tfaGFuZGxlX3QgaGFuZGxlID0gMDsKIAlzdHJ1Y3QgcGFnZV9vd25lciAqcGFnZV9vd25lcjsKIAotCXBhZ2Vfb3duZXIgPSBnZXRfcGFnZV9vd25lcihwYWdlX2V4dCk7Ci0JcGFnZV9vd25lci0+aGFuZGxlID0gaGFuZGxlOwotCXBhZ2Vfb3duZXItPm9yZGVyID0gb3JkZXI7Ci0JcGFnZV9vd25lci0+Z2ZwX21hc2sgPSBnZnBfbWFzazsKLQlwYWdlX293bmVyLT5sYXN0X21pZ3JhdGVfcmVhc29uID0gLTE7CisJaWYgKGRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpCisJCWhhbmRsZSA9IHNhdmVfc3RhY2soR0ZQX05PV0FJVCB8IF9fR0ZQX05PV0FSTik7CisjZW5kaWYKIAotCV9fc2V0X2JpdChQQUdFX0VYVF9PV05FUiwgJnBhZ2VfZXh0LT5mbGFncyk7CisJZm9yIChpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrKSB7CisJCXBhZ2VfZXh0ID0gbG9va3VwX3BhZ2VfZXh0KHBhZ2UgKyBpKTsKKwkJaWYgKHVubGlrZWx5KCFwYWdlX2V4dCkpCisJCQljb250aW51ZTsKKwkJX19jbGVhcl9iaXQoUEFHRV9FWFRfT1dORVJfQUNUSVZFLCAmcGFnZV9leHQtPmZsYWdzKTsKKyNpZmRlZiBDT05GSUdfREVCVUdfUEFHRUFMTE9DCisJCWlmIChkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKSB7CisJCQlwYWdlX293bmVyID0gZ2V0X3BhZ2Vfb3duZXIocGFnZV9leHQpOworCQkJcGFnZV9vd25lci0+ZnJlZV9oYW5kbGUgPSBoYW5kbGU7CisJCX0KKyNlbmRpZgorCX0KK30KKworc3RhdGljIGlubGluZSB2b2lkIF9fc2V0X3BhZ2Vfb3duZXJfaGFuZGxlKHN0cnVjdCBwYWdlICpwYWdlLAorCXN0cnVjdCBwYWdlX2V4dCAqcGFnZV9leHQsIGRlcG90X3N0YWNrX2hhbmRsZV90IGhhbmRsZSwKKwl1bnNpZ25lZCBpbnQgb3JkZXIsIGdmcF90IGdmcF9tYXNrKQoreworCXN0cnVjdCBwYWdlX293bmVyICpwYWdlX293bmVyOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrKSB7CisJCXBhZ2Vfb3duZXIgPSBnZXRfcGFnZV9vd25lcihwYWdlX2V4dCk7CisJCXBhZ2Vfb3duZXItPmhhbmRsZSA9IGhhbmRsZTsKKwkJcGFnZV9vd25lci0+b3JkZXIgPSBvcmRlcjsKKwkJcGFnZV9vd25lci0+Z2ZwX21hc2sgPSBnZnBfbWFzazsKKwkJcGFnZV9vd25lci0+bGFzdF9taWdyYXRlX3JlYXNvbiA9IC0xOworCQlfX3NldF9iaXQoUEFHRV9FWFRfT1dORVIsICZwYWdlX2V4dC0+ZmxhZ3MpOworCQlfX3NldF9iaXQoUEFHRV9FWFRfT1dORVJfQUNUSVZFLCAmcGFnZV9leHQtPmZsYWdzKTsKKworCQlwYWdlX2V4dCA9IGxvb2t1cF9wYWdlX2V4dChwYWdlICsgaSk7CisJfQogfQogCiBub2lubGluZSB2b2lkIF9fc2V0X3BhZ2Vfb3duZXIoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRlciwKQEAgLTE3OCw3ICsyMDAsNyBAQCBub2lubGluZSB2b2lkIF9fc2V0X3BhZ2Vfb3duZXIoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRlciwKIAkJcmV0dXJuOwogCiAJaGFuZGxlID0gc2F2ZV9zdGFjayhnZnBfbWFzayk7Ci0JX19zZXRfcGFnZV9vd25lcl9oYW5kbGUocGFnZV9leHQsIGhhbmRsZSwgb3JkZXIsIGdmcF9tYXNrKTsKKwlfX3NldF9wYWdlX293bmVyX2hhbmRsZShwYWdlLCBwYWdlX2V4dCwgaGFuZGxlLCBvcmRlciwgZ2ZwX21hc2spOwogfQogCiB2b2lkIF9fc2V0X3BhZ2Vfb3duZXJfbWlncmF0ZV9yZWFzb24oc3RydWN0IHBhZ2UgKnBhZ2UsIGludCByZWFzb24pCkBAIC0yMDQsOCArMjI2LDExIEBAIHZvaWQgX19zcGxpdF9wYWdlX293bmVyKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiAKIAlwYWdlX293bmVyID0gZ2V0X3BhZ2Vfb3duZXIocGFnZV9leHQpOwogCXBhZ2Vfb3duZXItPm9yZGVyID0gMDsKLQlmb3IgKGkgPSAxOyBpIDwgKDEgPDwgb3JkZXIpOyBpKyspCi0JCV9fY29weV9wYWdlX293bmVyKHBhZ2UsIHBhZ2UgKyBpKTsKKwlmb3IgKGkgPSAxOyBpIDwgKDEgPDwgb3JkZXIpOyBpKyspIHsKKwkJcGFnZV9leHQgPSBsb29rdXBfcGFnZV9leHQocGFnZSArIGkpOworCQlwYWdlX293bmVyID0gZ2V0X3BhZ2Vfb3duZXIocGFnZV9leHQpOworCQlwYWdlX293bmVyLT5vcmRlciA9IDA7CisJfQogfQogCiB2b2lkIF9fY29weV9wYWdlX293bmVyKHN0cnVjdCBwYWdlICpvbGRwYWdlLCBzdHJ1Y3QgcGFnZSAqbmV3cGFnZSkKQEAgLTIzNSw2ICsyNjAsNyBAQCB2b2lkIF9fY29weV9wYWdlX293bmVyKHN0cnVjdCBwYWdlICpvbGRwYWdlLCBzdHJ1Y3QgcGFnZSAqbmV3cGFnZSkKIAkgKiB0aGUgbmV3IHBhZ2UsIHdoaWNoIHdpbGwgYmUgZnJlZWQuCiAJICovCiAJX19zZXRfYml0KFBBR0VfRVhUX09XTkVSLCAmbmV3X2V4dC0+ZmxhZ3MpOworCV9fc2V0X2JpdChQQUdFX0VYVF9PV05FUl9BQ1RJVkUsICZuZXdfZXh0LT5mbGFncyk7CiB9CiAKIHZvaWQgcGFnZXR5cGVpbmZvX3Nob3dtaXhlZGNvdW50X3ByaW50KHN0cnVjdCBzZXFfZmlsZSAqbSwKQEAgLTI5NCw3ICszMjAsNyBAQCB2b2lkIHBhZ2V0eXBlaW5mb19zaG93bWl4ZWRjb3VudF9wcmludChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiAJCQlpZiAodW5saWtlbHkoIXBhZ2VfZXh0KSkKIAkJCQljb250aW51ZTsKIAotCQkJaWYgKCF0ZXN0X2JpdChQQUdFX0VYVF9PV05FUiwgJnBhZ2VfZXh0LT5mbGFncykpCisJCQlpZiAoIXRlc3RfYml0KFBBR0VfRVhUX09XTkVSX0FDVElWRSwgJnBhZ2VfZXh0LT5mbGFncykpCiAJCQkJY29udGludWU7CiAKIAkJCXBhZ2Vfb3duZXIgPSBnZXRfcGFnZV9vd25lcihwYWdlX2V4dCk7CkBAIC00MDUsMjAgKzQzMSwzNiBAQCB2b2lkIF9fZHVtcF9wYWdlX293bmVyKHN0cnVjdCBwYWdlICpwYWdlKQogCW10ID0gZ2ZwZmxhZ3NfdG9fbWlncmF0ZXR5cGUoZ2ZwX21hc2spOwogCiAJaWYgKCF0ZXN0X2JpdChQQUdFX0VYVF9PV05FUiwgJnBhZ2VfZXh0LT5mbGFncykpIHsKLQkJcHJfYWxlcnQoInBhZ2Vfb3duZXIgaW5mbyBpcyBub3QgYWN0aXZlIChmcmVlIHBhZ2U/KVxuIik7CisJCXByX2FsZXJ0KCJwYWdlX293bmVyIGluZm8gaXMgbm90IHByZXNlbnQgKG5ldmVyIHNldD8pXG4iKTsKIAkJcmV0dXJuOwogCX0KIAorCWlmICh0ZXN0X2JpdChQQUdFX0VYVF9PV05FUl9BQ1RJVkUsICZwYWdlX2V4dC0+ZmxhZ3MpKQorCQlwcl9hbGVydCgicGFnZV9vd25lciB0cmFja3MgdGhlIHBhZ2UgYXMgYWxsb2NhdGVkXG4iKTsKKwllbHNlCisJCXByX2FsZXJ0KCJwYWdlX293bmVyIHRyYWNrcyB0aGUgcGFnZSBhcyBmcmVlZFxuIik7CisKKwlwcl9hbGVydCgicGFnZSBsYXN0IGFsbG9jYXRlZCB2aWEgb3JkZXIgJXUsIG1pZ3JhdGV0eXBlICVzLCBnZnBfbWFzayAlI3goJXBHZylcbiIsCisJCSBwYWdlX293bmVyLT5vcmRlciwgbWlncmF0ZXR5cGVfbmFtZXNbbXRdLCBnZnBfbWFzaywgJmdmcF9tYXNrKTsKKwogCWhhbmRsZSA9IFJFQURfT05DRShwYWdlX293bmVyLT5oYW5kbGUpOwogCWlmICghaGFuZGxlKSB7Ci0JCXByX2FsZXJ0KCJwYWdlX293bmVyIGluZm8gaXMgbm90IGFjdGl2ZSAoZnJlZSBwYWdlPylcbiIpOwotCQlyZXR1cm47CisJCXByX2FsZXJ0KCJwYWdlX293bmVyIGFsbG9jYXRpb24gc3RhY2sgdHJhY2UgbWlzc2luZ1xuIik7CisJfSBlbHNlIHsKKwkJbnJfZW50cmllcyA9IHN0YWNrX2RlcG90X2ZldGNoKGhhbmRsZSwgJmVudHJpZXMpOworCQlzdGFja190cmFjZV9wcmludChlbnRyaWVzLCBucl9lbnRyaWVzLCAwKTsKIAl9CiAKLQlucl9lbnRyaWVzID0gc3RhY2tfZGVwb3RfZmV0Y2goaGFuZGxlLCAmZW50cmllcyk7Ci0JcHJfYWxlcnQoInBhZ2UgYWxsb2NhdGVkIHZpYSBvcmRlciAldSwgbWlncmF0ZXR5cGUgJXMsIGdmcF9tYXNrICUjeCglcEdnKVxuIiwKLQkJIHBhZ2Vfb3duZXItPm9yZGVyLCBtaWdyYXRldHlwZV9uYW1lc1ttdF0sIGdmcF9tYXNrLCAmZ2ZwX21hc2spOwotCXN0YWNrX3RyYWNlX3ByaW50KGVudHJpZXMsIG5yX2VudHJpZXMsIDApOworI2lmZGVmIENPTkZJR19ERUJVR19QQUdFQUxMT0MKKwloYW5kbGUgPSBSRUFEX09OQ0UocGFnZV9vd25lci0+ZnJlZV9oYW5kbGUpOworCWlmICghaGFuZGxlKSB7CisJCXByX2FsZXJ0KCJwYWdlX293bmVyIGZyZWUgc3RhY2sgdHJhY2UgbWlzc2luZ1xuIik7CisJfSBlbHNlIHsKKwkJbnJfZW50cmllcyA9IHN0YWNrX2RlcG90X2ZldGNoKGhhbmRsZSwgJmVudHJpZXMpOworCQlwcl9hbGVydCgicGFnZSBsYXN0IGZyZWUgc3RhY2sgdHJhY2U6XG4iKTsKKwkJc3RhY2tfdHJhY2VfcHJpbnQoZW50cmllcywgbnJfZW50cmllcywgMCk7CisJfQorI2VuZGlmCiAKIAlpZiAocGFnZV9vd25lci0+bGFzdF9taWdyYXRlX3JlYXNvbiAhPSAtMSkKIAkJcHJfYWxlcnQoInBhZ2UgaGFzIGJlZW4gbWlncmF0ZWQsIGxhc3QgbWlncmF0ZSByZWFzb246ICVzXG4iLApAQCAtNDgxLDkgKzUyMywyMyBAQCByZWFkX3BhZ2Vfb3duZXIoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQogCQlpZiAoIXRlc3RfYml0KFBBR0VfRVhUX09XTkVSLCAmcGFnZV9leHQtPmZsYWdzKSkKIAkJCWNvbnRpbnVlOwogCisJCS8qCisJCSAqIEFsdGhvdWdoIHdlIGRvIGhhdmUgdGhlIGluZm8gYWJvdXQgcGFzdCBhbGxvY2F0aW9uIG9mIGZyZWUKKwkJICogcGFnZXMsIGl0J3Mgbm90IHJlbGV2YW50IGZvciBjdXJyZW50IG1lbW9yeSB1c2FnZS4KKwkJICovCisJCWlmICghdGVzdF9iaXQoUEFHRV9FWFRfT1dORVJfQUNUSVZFLCAmcGFnZV9leHQtPmZsYWdzKSkKKwkJCWNvbnRpbnVlOworCiAJCXBhZ2Vfb3duZXIgPSBnZXRfcGFnZV9vd25lcihwYWdlX2V4dCk7CiAKIAkJLyoKKwkJICogRG9uJ3QgcHJpbnQgInRhaWwiIHBhZ2VzIG9mIGhpZ2gtb3JkZXIgYWxsb2NhdGlvbnMgYXMgdGhhdAorCQkgKiB3b3VsZCBpbmZsYXRlIHRoZSBzdGF0cy4KKwkJICovCisJCWlmICghSVNfQUxJR05FRChwZm4sIDEgPDwgcGFnZV9vd25lci0+b3JkZXIpKQorCQkJY29udGludWU7CisKKwkJLyoKIAkJICogQWNjZXNzIHRvIHBhZ2VfZXh0LT5oYW5kbGUgaXNuJ3Qgc3luY2hyb25vdXMgc28gd2Ugc2hvdWxkCiAJCSAqIGJlIGNhcmVmdWwgdG8gYWNjZXNzIGl0LgogCQkgKi8KQEAgLTU2Miw3ICs2MTgsOCBAQCBzdGF0aWMgdm9pZCBpbml0X3BhZ2VzX2luX3pvbmUocGdfZGF0YV90ICpwZ2RhdCwgc3RydWN0IHpvbmUgKnpvbmUpCiAJCQkJY29udGludWU7CiAKIAkJCS8qIEZvdW5kIGVhcmx5IGFsbG9jYXRlZCBwYWdlICovCi0JCQlfX3NldF9wYWdlX293bmVyX2hhbmRsZShwYWdlX2V4dCwgZWFybHlfaGFuZGxlLCAwLCAwKTsKKwkJCV9fc2V0X3BhZ2Vfb3duZXJfaGFuZGxlKHBhZ2UsIHBhZ2VfZXh0LCBlYXJseV9oYW5kbGUsCisJCQkJCQkwLCAwKTsKIAkJCWNvdW50Kys7CiAJCX0KIAkJY29uZF9yZXNjaGVkKCk7CmRpZmYgLS1naXQgYS9tbS9wYWdlX3BvaXNvbi5jIGIvbW0vcGFnZV9wb2lzb24uYwppbmRleCAyMWQ0Zjk3Li4zNGI5MTgxIDEwMDY0NAotLS0gYS9tbS9wYWdlX3BvaXNvbi5jCisrKyBiL21tL3BhZ2VfcG9pc29uLmMKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgdm9pZCB1bnBvaXNvbl9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKQogCS8qCiAJICogUGFnZSBwb2lzb25pbmcgd2hlbiBlbmFibGVkIHBvaXNvbnMgZWFjaCBhbmQgZXZlcnkgcGFnZQogCSAqIHRoYXQgaXMgZnJlZWQgdG8gYnVkZHkuIFRodXMgbm8gZXh0cmEgY2hlY2sgaXMgZG9uZSB0bwotCSAqIHNlZSBpZiBhIHBhZ2Ugd2FzIHBvc2lvbmVkLgorCSAqIHNlZSBpZiBhIHBhZ2Ugd2FzIHBvaXNvbmVkLgogCSAqLwogCWNoZWNrX3BvaXNvbl9tZW0oYWRkciwgUEFHRV9TSVpFKTsKIAlrdW5tYXBfYXRvbWljKGFkZHIpOwpkaWZmIC0tZ2l0IGEvbW0vcGFnZV92bWFfbWFwcGVkLmMgYi9tbS9wYWdlX3ZtYV9tYXBwZWQuYwppbmRleCAxMWRmMDNlLi5lZmY0YjQ1IDEwMDY0NAotLS0gYS9tbS9wYWdlX3ZtYV9tYXBwZWQuYworKysgYi9tbS9wYWdlX3ZtYV9tYXBwZWQuYwpAQCAtMTUzLDggKzE1Myw3IEBAIGJvb2wgcGFnZV92bWFfbWFwcGVkX3dhbGsoc3RydWN0IHBhZ2Vfdm1hX21hcHBlZF93YWxrICpwdm13KQogCiAJaWYgKHVubGlrZWx5KFBhZ2VIdWdlKHB2bXctPnBhZ2UpKSkgewogCQkvKiB3aGVuIHB1ZCBpcyBub3QgcHJlc2VudCwgcHRlIHdpbGwgYmUgTlVMTCAqLwotCQlwdm13LT5wdGUgPSBodWdlX3B0ZV9vZmZzZXQobW0sIHB2bXctPmFkZHJlc3MsCi0JCQkJCSAgICBQQUdFX1NJWkUgPDwgY29tcG91bmRfb3JkZXIocGFnZSkpOworCQlwdm13LT5wdGUgPSBodWdlX3B0ZV9vZmZzZXQobW0sIHB2bXctPmFkZHJlc3MsIHBhZ2Vfc2l6ZShwYWdlKSk7CiAJCWlmICghcHZtdy0+cHRlKQogCQkJcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9tbS9wYWdld2Fsay5jIGIvbW0vcGFnZXdhbGsuYwppbmRleCBjMzA4NGZmMi4uZDQ4YzJhOSAxMDA2NDQKLS0tIGEvbW0vcGFnZXdhbGsuYworKysgYi9tbS9wYWdld2Fsay5jCkBAIC0xLDUgKzEsNSBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLSNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3BhZ2V3YWxrLmg+CiAjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvaHVnZXRsYi5oPgpAQCAtOSwxMCArOSwxMSBAQCBzdGF0aWMgaW50IHdhbGtfcHRlX3JhbmdlKHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCiB7CiAJcHRlX3QgKnB0ZTsKIAlpbnQgZXJyID0gMDsKKwljb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgKm9wcyA9IHdhbGstPm9wczsKIAogCXB0ZSA9IHB0ZV9vZmZzZXRfbWFwKHBtZCwgYWRkcik7CiAJZm9yICg7OykgewotCQllcnIgPSB3YWxrLT5wdGVfZW50cnkocHRlLCBhZGRyLCBhZGRyICsgUEFHRV9TSVpFLCB3YWxrKTsKKwkJZXJyID0gb3BzLT5wdGVfZW50cnkocHRlLCBhZGRyLCBhZGRyICsgUEFHRV9TSVpFLCB3YWxrKTsKIAkJaWYgKGVycikKIAkJICAgICAgIGJyZWFrOwogCQlhZGRyICs9IFBBR0VfU0laRTsKQEAgLTMwLDYgKzMxLDcgQEAgc3RhdGljIGludCB3YWxrX3BtZF9yYW5nZShwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogewogCXBtZF90ICpwbWQ7CiAJdW5zaWduZWQgbG9uZyBuZXh0OworCWNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyAqb3BzID0gd2Fsay0+b3BzOwogCWludCBlcnIgPSAwOwogCiAJcG1kID0gcG1kX29mZnNldChwdWQsIGFkZHIpOwpAQCAtMzcsOCArMzksOCBAQCBzdGF0aWMgaW50IHdhbGtfcG1kX3JhbmdlKHB1ZF90ICpwdWQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCiBhZ2FpbjoKIAkJbmV4dCA9IHBtZF9hZGRyX2VuZChhZGRyLCBlbmQpOwogCQlpZiAocG1kX25vbmUoKnBtZCkgfHwgIXdhbGstPnZtYSkgewotCQkJaWYgKHdhbGstPnB0ZV9ob2xlKQotCQkJCWVyciA9IHdhbGstPnB0ZV9ob2xlKGFkZHIsIG5leHQsIHdhbGspOworCQkJaWYgKG9wcy0+cHRlX2hvbGUpCisJCQkJZXJyID0gb3BzLT5wdGVfaG9sZShhZGRyLCBuZXh0LCB3YWxrKTsKIAkJCWlmIChlcnIpCiAJCQkJYnJlYWs7CiAJCQljb250aW51ZTsKQEAgLTQ3LDggKzQ5LDggQEAgc3RhdGljIGludCB3YWxrX3BtZF9yYW5nZShwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogCQkgKiBUaGlzIGltcGxpZXMgdGhhdCBlYWNoIC0+cG1kX2VudHJ5KCkgaGFuZGxlcgogCQkgKiBuZWVkcyB0byBrbm93IGFib3V0IHBtZF90cmFuc19odWdlKCkgcG1kcwogCQkgKi8KLQkJaWYgKHdhbGstPnBtZF9lbnRyeSkKLQkJCWVyciA9IHdhbGstPnBtZF9lbnRyeShwbWQsIGFkZHIsIG5leHQsIHdhbGspOworCQlpZiAob3BzLT5wbWRfZW50cnkpCisJCQllcnIgPSBvcHMtPnBtZF9lbnRyeShwbWQsIGFkZHIsIG5leHQsIHdhbGspOwogCQlpZiAoZXJyKQogCQkJYnJlYWs7CiAKQEAgLTU2LDcgKzU4LDcgQEAgc3RhdGljIGludCB3YWxrX3BtZF9yYW5nZShwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogCQkgKiBDaGVjayB0aGlzIGhlcmUgc28gd2Ugb25seSBicmVhayBkb3duIHRyYW5zX2h1Z2UKIAkJICogcGFnZXMgd2hlbiB3ZSBfbmVlZF8gdG8KIAkJICovCi0JCWlmICghd2Fsay0+cHRlX2VudHJ5KQorCQlpZiAoIW9wcy0+cHRlX2VudHJ5KQogCQkJY29udGludWU7CiAKIAkJc3BsaXRfaHVnZV9wbWQod2Fsay0+dm1hLCBwbWQsIGFkZHIpOwpAQCAtNzUsNiArNzcsNyBAQCBzdGF0aWMgaW50IHdhbGtfcHVkX3JhbmdlKHA0ZF90ICpwNGQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCiB7CiAJcHVkX3QgKnB1ZDsKIAl1bnNpZ25lZCBsb25nIG5leHQ7CisJY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzICpvcHMgPSB3YWxrLT5vcHM7CiAJaW50IGVyciA9IDA7CiAKIAlwdWQgPSBwdWRfb2Zmc2V0KHA0ZCwgYWRkcik7CkBAIC04MiwxOCArODUsMTggQEAgc3RhdGljIGludCB3YWxrX3B1ZF9yYW5nZShwNGRfdCAqcDRkLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogIGFnYWluOgogCQluZXh0ID0gcHVkX2FkZHJfZW5kKGFkZHIsIGVuZCk7CiAJCWlmIChwdWRfbm9uZSgqcHVkKSB8fCAhd2Fsay0+dm1hKSB7Ci0JCQlpZiAod2Fsay0+cHRlX2hvbGUpCi0JCQkJZXJyID0gd2Fsay0+cHRlX2hvbGUoYWRkciwgbmV4dCwgd2Fsayk7CisJCQlpZiAob3BzLT5wdGVfaG9sZSkKKwkJCQllcnIgPSBvcHMtPnB0ZV9ob2xlKGFkZHIsIG5leHQsIHdhbGspOwogCQkJaWYgKGVycikKIAkJCQlicmVhazsKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJaWYgKHdhbGstPnB1ZF9lbnRyeSkgeworCQlpZiAob3BzLT5wdWRfZW50cnkpIHsKIAkJCXNwaW5sb2NrX3QgKnB0bCA9IHB1ZF90cmFuc19odWdlX2xvY2socHVkLCB3YWxrLT52bWEpOwogCiAJCQlpZiAocHRsKSB7Ci0JCQkJZXJyID0gd2Fsay0+cHVkX2VudHJ5KHB1ZCwgYWRkciwgbmV4dCwgd2Fsayk7CisJCQkJZXJyID0gb3BzLT5wdWRfZW50cnkocHVkLCBhZGRyLCBuZXh0LCB3YWxrKTsKIAkJCQlzcGluX3VubG9jayhwdGwpOwogCQkJCWlmIChlcnIpCiAJCQkJCWJyZWFrOwpAQCAtMTA1LDcgKzEwOCw3IEBAIHN0YXRpYyBpbnQgd2Fsa19wdWRfcmFuZ2UocDRkX3QgKnA0ZCwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKIAkJaWYgKHB1ZF9ub25lKCpwdWQpKQogCQkJZ290byBhZ2FpbjsKIAotCQlpZiAod2Fsay0+cG1kX2VudHJ5IHx8IHdhbGstPnB0ZV9lbnRyeSkKKwkJaWYgKG9wcy0+cG1kX2VudHJ5IHx8IG9wcy0+cHRlX2VudHJ5KQogCQkJZXJyID0gd2Fsa19wbWRfcmFuZ2UocHVkLCBhZGRyLCBuZXh0LCB3YWxrKTsKIAkJaWYgKGVycikKIAkJCWJyZWFrOwpAQCAtMTE5LDE5ICsxMjIsMjAgQEAgc3RhdGljIGludCB3YWxrX3A0ZF9yYW5nZShwZ2RfdCAqcGdkLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogewogCXA0ZF90ICpwNGQ7CiAJdW5zaWduZWQgbG9uZyBuZXh0OworCWNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyAqb3BzID0gd2Fsay0+b3BzOwogCWludCBlcnIgPSAwOwogCiAJcDRkID0gcDRkX29mZnNldChwZ2QsIGFkZHIpOwogCWRvIHsKIAkJbmV4dCA9IHA0ZF9hZGRyX2VuZChhZGRyLCBlbmQpOwogCQlpZiAocDRkX25vbmVfb3JfY2xlYXJfYmFkKHA0ZCkpIHsKLQkJCWlmICh3YWxrLT5wdGVfaG9sZSkKLQkJCQllcnIgPSB3YWxrLT5wdGVfaG9sZShhZGRyLCBuZXh0LCB3YWxrKTsKKwkJCWlmIChvcHMtPnB0ZV9ob2xlKQorCQkJCWVyciA9IG9wcy0+cHRlX2hvbGUoYWRkciwgbmV4dCwgd2Fsayk7CiAJCQlpZiAoZXJyKQogCQkJCWJyZWFrOwogCQkJY29udGludWU7CiAJCX0KLQkJaWYgKHdhbGstPnBtZF9lbnRyeSB8fCB3YWxrLT5wdGVfZW50cnkpCisJCWlmIChvcHMtPnBtZF9lbnRyeSB8fCBvcHMtPnB0ZV9lbnRyeSkKIAkJCWVyciA9IHdhbGtfcHVkX3JhbmdlKHA0ZCwgYWRkciwgbmV4dCwgd2Fsayk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKQEAgLTE0NSwxOSArMTQ5LDIwIEBAIHN0YXRpYyBpbnQgd2Fsa19wZ2RfcmFuZ2UodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKIHsKIAlwZ2RfdCAqcGdkOwogCXVuc2lnbmVkIGxvbmcgbmV4dDsKKwljb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgKm9wcyA9IHdhbGstPm9wczsKIAlpbnQgZXJyID0gMDsKIAogCXBnZCA9IHBnZF9vZmZzZXQod2Fsay0+bW0sIGFkZHIpOwogCWRvIHsKIAkJbmV4dCA9IHBnZF9hZGRyX2VuZChhZGRyLCBlbmQpOwogCQlpZiAocGdkX25vbmVfb3JfY2xlYXJfYmFkKHBnZCkpIHsKLQkJCWlmICh3YWxrLT5wdGVfaG9sZSkKLQkJCQllcnIgPSB3YWxrLT5wdGVfaG9sZShhZGRyLCBuZXh0LCB3YWxrKTsKKwkJCWlmIChvcHMtPnB0ZV9ob2xlKQorCQkJCWVyciA9IG9wcy0+cHRlX2hvbGUoYWRkciwgbmV4dCwgd2Fsayk7CiAJCQlpZiAoZXJyKQogCQkJCWJyZWFrOwogCQkJY29udGludWU7CiAJCX0KLQkJaWYgKHdhbGstPnBtZF9lbnRyeSB8fCB3YWxrLT5wdGVfZW50cnkpCisJCWlmIChvcHMtPnBtZF9lbnRyeSB8fCBvcHMtPnB0ZV9lbnRyeSkKIAkJCWVyciA9IHdhbGtfcDRkX3JhbmdlKHBnZCwgYWRkciwgbmV4dCwgd2Fsayk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKQEAgLTE4Myw2ICsxODgsNyBAQCBzdGF0aWMgaW50IHdhbGtfaHVnZXRsYl9yYW5nZSh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogCXVuc2lnbmVkIGxvbmcgaG1hc2sgPSBodWdlX3BhZ2VfbWFzayhoKTsKIAl1bnNpZ25lZCBsb25nIHN6ID0gaHVnZV9wYWdlX3NpemUoaCk7CiAJcHRlX3QgKnB0ZTsKKwljb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgKm9wcyA9IHdhbGstPm9wczsKIAlpbnQgZXJyID0gMDsKIAogCWRvIHsKQEAgLTE5MCw5ICsxOTYsOSBAQCBzdGF0aWMgaW50IHdhbGtfaHVnZXRsYl9yYW5nZSh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogCQlwdGUgPSBodWdlX3B0ZV9vZmZzZXQod2Fsay0+bW0sIGFkZHIgJiBobWFzaywgc3opOwogCiAJCWlmIChwdGUpCi0JCQllcnIgPSB3YWxrLT5odWdldGxiX2VudHJ5KHB0ZSwgaG1hc2ssIGFkZHIsIG5leHQsIHdhbGspOwotCQllbHNlIGlmICh3YWxrLT5wdGVfaG9sZSkKLQkJCWVyciA9IHdhbGstPnB0ZV9ob2xlKGFkZHIsIG5leHQsIHdhbGspOworCQkJZXJyID0gb3BzLT5odWdldGxiX2VudHJ5KHB0ZSwgaG1hc2ssIGFkZHIsIG5leHQsIHdhbGspOworCQllbHNlIGlmIChvcHMtPnB0ZV9ob2xlKQorCQkJZXJyID0gb3BzLT5wdGVfaG9sZShhZGRyLCBuZXh0LCB3YWxrKTsKIAogCQlpZiAoZXJyKQogCQkJYnJlYWs7CkBAIC0yMjAsOSArMjI2LDEwIEBAIHN0YXRpYyBpbnQgd2Fsa19wYWdlX3Rlc3QodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCiAJCQlzdHJ1Y3QgbW1fd2FsayAqd2FsaykKIHsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHdhbGstPnZtYTsKKwljb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgKm9wcyA9IHdhbGstPm9wczsKIAotCWlmICh3YWxrLT50ZXN0X3dhbGspCi0JCXJldHVybiB3YWxrLT50ZXN0X3dhbGsoc3RhcnQsIGVuZCwgd2Fsayk7CisJaWYgKG9wcy0+dGVzdF93YWxrKQorCQlyZXR1cm4gb3BzLT50ZXN0X3dhbGsoc3RhcnQsIGVuZCwgd2Fsayk7CiAKIAkvKgogCSAqIHZtYShWTV9QRk5NQVApIGRvZXNuJ3QgaGF2ZSBhbnkgdmFsaWQgc3RydWN0IHBhZ2VzIGJlaGluZCBWTV9QRk5NQVAKQEAgLTIzNCw4ICsyNDEsOCBAQCBzdGF0aWMgaW50IHdhbGtfcGFnZV90ZXN0KHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAogCSAqLwogCWlmICh2bWEtPnZtX2ZsYWdzICYgVk1fUEZOTUFQKSB7CiAJCWludCBlcnIgPSAxOwotCQlpZiAod2Fsay0+cHRlX2hvbGUpCi0JCQllcnIgPSB3YWxrLT5wdGVfaG9sZShzdGFydCwgZW5kLCB3YWxrKTsKKwkJaWYgKG9wcy0+cHRlX2hvbGUpCisJCQllcnIgPSBvcHMtPnB0ZV9ob2xlKHN0YXJ0LCBlbmQsIHdhbGspOwogCQlyZXR1cm4gZXJyID8gZXJyIDogMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0yNDgsNyArMjU1LDcgQEAgc3RhdGljIGludCBfX3dhbGtfcGFnZV9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHdhbGstPnZtYTsKIAogCWlmICh2bWEgJiYgaXNfdm1faHVnZXRsYl9wYWdlKHZtYSkpIHsKLQkJaWYgKHdhbGstPmh1Z2V0bGJfZW50cnkpCisJCWlmICh3YWxrLT5vcHMtPmh1Z2V0bGJfZW50cnkpCiAJCQllcnIgPSB3YWxrX2h1Z2V0bGJfcmFuZ2Uoc3RhcnQsIGVuZCwgd2Fsayk7CiAJfSBlbHNlCiAJCWVyciA9IHdhbGtfcGdkX3JhbmdlKHN0YXJ0LCBlbmQsIHdhbGspOwpAQCAtMjU4LDExICsyNjUsMTMgQEAgc3RhdGljIGludCBfX3dhbGtfcGFnZV9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKIAogLyoqCiAgKiB3YWxrX3BhZ2VfcmFuZ2UgLSB3YWxrIHBhZ2UgdGFibGUgd2l0aCBjYWxsZXIgc3BlY2lmaWMgY2FsbGJhY2tzCi0gKiBAc3RhcnQ6IHN0YXJ0IGFkZHJlc3Mgb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyByYW5nZQotICogQGVuZDogZW5kIGFkZHJlc3Mgb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyByYW5nZQotICogQHdhbGs6IG1tX3dhbGsgc3RydWN0dXJlIGRlZmluaW5nIHRoZSBjYWxsYmFja3MgYW5kIHRoZSB0YXJnZXQgYWRkcmVzcyBzcGFjZQorICogQG1tOgkJbW1fc3RydWN0IHJlcHJlc2VudGluZyB0aGUgdGFyZ2V0IHByb2Nlc3Mgb2YgcGFnZSB0YWJsZSB3YWxrCisgKiBAc3RhcnQ6CXN0YXJ0IGFkZHJlc3Mgb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyByYW5nZQorICogQGVuZDoJZW5kIGFkZHJlc3Mgb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyByYW5nZQorICogQG9wczoJb3BlcmF0aW9uIHRvIGNhbGwgZHVyaW5nIHRoZSB3YWxrCisgKiBAcHJpdmF0ZToJcHJpdmF0ZSBkYXRhIGZvciBjYWxsYmFja3MnIHVzYWdlCiAgKgotICogUmVjdXJzaXZlbHkgd2FsayB0aGUgcGFnZSB0YWJsZSB0cmVlIG9mIHRoZSBwcm9jZXNzIHJlcHJlc2VudGVkIGJ5IEB3YWxrLT5tbQorICogUmVjdXJzaXZlbHkgd2FsayB0aGUgcGFnZSB0YWJsZSB0cmVlIG9mIHRoZSBwcm9jZXNzIHJlcHJlc2VudGVkIGJ5IEBtbQogICogd2l0aGluIHRoZSB2aXJ0dWFsIGFkZHJlc3MgcmFuZ2UgW0BzdGFydCwgQGVuZCkuIER1cmluZyB3YWxraW5nLCB3ZSBjYW4gZG8KICAqIHNvbWUgY2FsbGVyLXNwZWNpZmljIHdvcmtzIGZvciBlYWNoIGVudHJ5LCBieSBzZXR0aW5nIHVwIHBtZF9lbnRyeSgpLAogICogcHRlX2VudHJ5KCksIGFuZC9vciBodWdldGxiX2VudHJ5KCkuIElmIHlvdSBkb24ndCBzZXQgdXAgZm9yIHNvbWUgb2YgdGhlc2UKQEAgLTI3OCw0NyArMjg3LDUyIEBAIHN0YXRpYyBpbnQgX193YWxrX3BhZ2VfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCiAgKgogICogQmVmb3JlIHN0YXJ0aW5nIHRvIHdhbGsgcGFnZSB0YWJsZSwgc29tZSBjYWxsZXJzIHdhbnQgdG8gY2hlY2sgd2hldGhlcgogICogdGhleSByZWFsbHkgd2FudCB0byB3YWxrIG92ZXIgdGhlIGN1cnJlbnQgdm1hLCB0eXBpY2FsbHkgYnkgY2hlY2tpbmcKLSAqIGl0cyB2bV9mbGFncy4gd2Fsa19wYWdlX3Rlc3QoKSBhbmQgQHdhbGstPnRlc3Rfd2FsaygpIGFyZSB1c2VkIGZvciB0aGlzCisgKiBpdHMgdm1fZmxhZ3MuIHdhbGtfcGFnZV90ZXN0KCkgYW5kIEBvcHMtPnRlc3Rfd2FsaygpIGFyZSB1c2VkIGZvciB0aGlzCiAgKiBwdXJwb3NlLgogICoKICAqIHN0cnVjdCBtbV93YWxrIGtlZXBzIGN1cnJlbnQgdmFsdWVzIG9mIHNvbWUgY29tbW9uIGRhdGEgbGlrZSB2bWEgYW5kIHBtZCwKICAqIHdoaWNoIGFyZSB1c2VmdWwgZm9yIHRoZSBhY2Nlc3MgZnJvbSBjYWxsYmFja3MuIElmIHlvdSB3YW50IHRvIHBhc3Mgc29tZQotICogY2FsbGVyLXNwZWNpZmljIGRhdGEgdG8gY2FsbGJhY2tzLCBAd2Fsay0+cHJpdmF0ZSBzaG91bGQgYmUgaGVscGZ1bC4KKyAqIGNhbGxlci1zcGVjaWZpYyBkYXRhIHRvIGNhbGxiYWNrcywgQHByaXZhdGUgc2hvdWxkIGJlIGhlbHBmdWwuCiAgKgogICogTG9ja2luZzoKLSAqICAgQ2FsbGVycyBvZiB3YWxrX3BhZ2VfcmFuZ2UoKSBhbmQgd2Fsa19wYWdlX3ZtYSgpIHNob3VsZCBob2xkCi0gKiAgIEB3YWxrLT5tbS0+bW1hcF9zZW0sIGJlY2F1c2UgdGhlc2UgZnVuY3Rpb24gdHJhdmVyc2Ugdm1hIGxpc3QgYW5kL29yCi0gKiAgIGFjY2VzcyB0byB2bWEncyBkYXRhLgorICogICBDYWxsZXJzIG9mIHdhbGtfcGFnZV9yYW5nZSgpIGFuZCB3YWxrX3BhZ2Vfdm1hKCkgc2hvdWxkIGhvbGQgQG1tLT5tbWFwX3NlbSwKKyAqICAgYmVjYXVzZSB0aGVzZSBmdW5jdGlvbiB0cmF2ZXJzZSB2bWEgbGlzdCBhbmQvb3IgYWNjZXNzIHRvIHZtYSdzIGRhdGEuCiAgKi8KLWludCB3YWxrX3BhZ2VfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCSAgICBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKK2ludCB3YWxrX3BhZ2VfcmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgc3RhcnQsCisJCXVuc2lnbmVkIGxvbmcgZW5kLCBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgKm9wcywKKwkJdm9pZCAqcHJpdmF0ZSkKIHsKIAlpbnQgZXJyID0gMDsKIAl1bnNpZ25lZCBsb25nIG5leHQ7CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CisJc3RydWN0IG1tX3dhbGsgd2FsayA9IHsKKwkJLm9wcwkJPSBvcHMsCisJCS5tbQkJPSBtbSwKKwkJLnByaXZhdGUJPSBwcml2YXRlLAorCX07CiAKIAlpZiAoc3RhcnQgPj0gZW5kKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmICghd2Fsay0+bW0pCisJaWYgKCF3YWxrLm1tKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCVZNX0JVR19PTl9NTSghcndzZW1faXNfbG9ja2VkKCZ3YWxrLT5tbS0+bW1hcF9zZW0pLCB3YWxrLT5tbSk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmd2Fsay5tbS0+bW1hcF9zZW0pOwogCi0Jdm1hID0gZmluZF92bWEod2Fsay0+bW0sIHN0YXJ0KTsKKwl2bWEgPSBmaW5kX3ZtYSh3YWxrLm1tLCBzdGFydCk7CiAJZG8gewogCQlpZiAoIXZtYSkgeyAvKiBhZnRlciB0aGUgbGFzdCB2bWEgKi8KLQkJCXdhbGstPnZtYSA9IE5VTEw7CisJCQl3YWxrLnZtYSA9IE5VTEw7CiAJCQluZXh0ID0gZW5kOwogCQl9IGVsc2UgaWYgKHN0YXJ0IDwgdm1hLT52bV9zdGFydCkgeyAvKiBvdXRzaWRlIHZtYSAqLwotCQkJd2Fsay0+dm1hID0gTlVMTDsKKwkJCXdhbGsudm1hID0gTlVMTDsKIAkJCW5leHQgPSBtaW4oZW5kLCB2bWEtPnZtX3N0YXJ0KTsKIAkJfSBlbHNlIHsgLyogaW5zaWRlIHZtYSAqLwotCQkJd2Fsay0+dm1hID0gdm1hOworCQkJd2Fsay52bWEgPSB2bWE7CiAJCQluZXh0ID0gbWluKGVuZCwgdm1hLT52bV9lbmQpOwogCQkJdm1hID0gdm1hLT52bV9uZXh0OwogCi0JCQllcnIgPSB3YWxrX3BhZ2VfdGVzdChzdGFydCwgbmV4dCwgd2Fsayk7CisJCQllcnIgPSB3YWxrX3BhZ2VfdGVzdChzdGFydCwgbmV4dCwgJndhbGspOwogCQkJaWYgKGVyciA+IDApIHsKIAkJCQkvKgogCQkJCSAqIHBvc2l0aXZlIHJldHVybiB2YWx1ZXMgYXJlIHB1cmVseSBmb3IKQEAgLTMzMSwyOCArMzQ1LDM0IEBAIGludCB3YWxrX3BhZ2VfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCiAJCQlpZiAoZXJyIDwgMCkKIAkJCQlicmVhazsKIAkJfQotCQlpZiAod2Fsay0+dm1hIHx8IHdhbGstPnB0ZV9ob2xlKQotCQkJZXJyID0gX193YWxrX3BhZ2VfcmFuZ2Uoc3RhcnQsIG5leHQsIHdhbGspOworCQlpZiAod2Fsay52bWEgfHwgd2Fsay5vcHMtPnB0ZV9ob2xlKQorCQkJZXJyID0gX193YWxrX3BhZ2VfcmFuZ2Uoc3RhcnQsIG5leHQsICZ3YWxrKTsKIAkJaWYgKGVycikKIAkJCWJyZWFrOwogCX0gd2hpbGUgKHN0YXJ0ID0gbmV4dCwgc3RhcnQgPCBlbmQpOwogCXJldHVybiBlcnI7CiB9CiAKLWludCB3YWxrX3BhZ2Vfdm1hKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKK2ludCB3YWxrX3BhZ2Vfdm1hKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgKm9wcywKKwkJdm9pZCAqcHJpdmF0ZSkKIHsKKwlzdHJ1Y3QgbW1fd2FsayB3YWxrID0geworCQkub3BzCQk9IG9wcywKKwkJLm1tCQk9IHZtYS0+dm1fbW0sCisJCS52bWEJCT0gdm1hLAorCQkucHJpdmF0ZQk9IHByaXZhdGUsCisJfTsKIAlpbnQgZXJyOwogCi0JaWYgKCF3YWxrLT5tbSkKKwlpZiAoIXdhbGsubW0pCiAJCXJldHVybiAtRUlOVkFMOwogCi0JVk1fQlVHX09OKCFyd3NlbV9pc19sb2NrZWQoJndhbGstPm1tLT5tbWFwX3NlbSkpOwotCVZNX0JVR19PTighdm1hKTsKLQl3YWxrLT52bWEgPSB2bWE7Ci0JZXJyID0gd2Fsa19wYWdlX3Rlc3Qodm1hLT52bV9zdGFydCwgdm1hLT52bV9lbmQsIHdhbGspOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJndhbGsubW0tPm1tYXBfc2VtKTsKKworCWVyciA9IHdhbGtfcGFnZV90ZXN0KHZtYS0+dm1fc3RhcnQsIHZtYS0+dm1fZW5kLCAmd2Fsayk7CiAJaWYgKGVyciA+IDApCiAJCXJldHVybiAwOwogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwotCXJldHVybiBfX3dhbGtfcGFnZV9yYW5nZSh2bWEtPnZtX3N0YXJ0LCB2bWEtPnZtX2VuZCwgd2Fsayk7CisJcmV0dXJuIF9fd2Fsa19wYWdlX3JhbmdlKHZtYS0+dm1fc3RhcnQsIHZtYS0+dm1fZW5kLCAmd2Fsayk7CiB9CmRpZmYgLS1naXQgYS9tbS9xdWlja2xpc3QuYyBiL21tL3F1aWNrbGlzdC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTk4YWM3Li4wMDAwMDAwCi0tLSBhL21tL3F1aWNrbGlzdC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0vKgotICogUXVpY2tsaXN0IHN1cHBvcnQuCi0gKgotICogUXVpY2tsaXN0cyBhcmUgbGlnaHQgd2VpZ2h0IGxpc3RzIG9mIHBhZ2VzIHRoYXQgaGF2ZSBhIGRlZmluZWQgc3RhdGUKLSAqIG9uIGFsbG9jIGFuZCBmcmVlLiBQYWdlcyBtdXN0IGJlIGluIHRoZSBxdWlja2xpc3Qgc3BlY2lmaWMgZGVmaW5lZCBzdGF0ZQotICogKHplcm8gYnkgZGVmYXVsdCkgd2hlbiB0aGUgcGFnZSBpcyBmcmVlZC4gSXQgc2VlbXMgdGhhdCB0aGUgaW5pdGlhbCBpZGVhCi0gKiBmb3Igc3VjaCBsaXN0cyBmaXJzdCBjYW1lIGZyb20gRGF2ZSBNaWxsZXIgYW5kIHRoZW4gdmFyaW91cyBvdGhlciBwZW9wbGUKLSAqIGltcHJvdmVkIG9uIGl0LgotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBTR0ksCi0gKiAJQ2hyaXN0b3BoIExhbWV0ZXIgPGNsQGxpbnV4LmNvbT4KLSAqIAkJR2VuZXJhbGl6ZWQsIGFkZGVkIHN1cHBvcnQgZm9yIG11bHRpcGxlIGxpc3RzIGFuZAotICogCQljb25zdHJ1Y3RvcnMgLyBkZXN0cnVjdG9ycy4KLSAqLwotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotCi0jaW5jbHVkZSA8bGludXgvZ2ZwLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KLSNpbmNsdWRlIDxsaW51eC9xdWlja2xpc3QuaD4KLQotREVGSU5FX1BFUl9DUFUoc3RydWN0IHF1aWNrbGlzdCBbQ09ORklHX05SX1FVSUNLXSwgcXVpY2tsaXN0KTsKLQotI2RlZmluZSBGUkFDVElPTl9PRl9OT0RFX01FTQkxNgotCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBtYXhfcGFnZXModW5zaWduZWQgbG9uZyBtaW5fcGFnZXMpCi17Ci0JdW5zaWduZWQgbG9uZyBub2RlX2ZyZWVfcGFnZXMsIG1heDsKLQlpbnQgbm9kZSA9IG51bWFfbm9kZV9pZCgpOwotCXN0cnVjdCB6b25lICp6b25lcyA9IE5PREVfREFUQShub2RlKS0+bm9kZV96b25lczsKLQlpbnQgbnVtX2NwdXNfb25fbm9kZTsKLQotCW5vZGVfZnJlZV9wYWdlcyA9Ci0jaWZkZWYgQ09ORklHX1pPTkVfRE1BCi0JCXpvbmVfcGFnZV9zdGF0ZSgmem9uZXNbWk9ORV9ETUFdLCBOUl9GUkVFX1BBR0VTKSArCi0jZW5kaWYKLSNpZmRlZiBDT05GSUdfWk9ORV9ETUEzMgotCQl6b25lX3BhZ2Vfc3RhdGUoJnpvbmVzW1pPTkVfRE1BMzJdLCBOUl9GUkVFX1BBR0VTKSArCi0jZW5kaWYKLQkJem9uZV9wYWdlX3N0YXRlKCZ6b25lc1taT05FX05PUk1BTF0sIE5SX0ZSRUVfUEFHRVMpOwotCi0JbWF4ID0gbm9kZV9mcmVlX3BhZ2VzIC8gRlJBQ1RJT05fT0ZfTk9ERV9NRU07Ci0KLQludW1fY3B1c19vbl9ub2RlID0gY3B1bWFza193ZWlnaHQoY3B1bWFza19vZl9ub2RlKG5vZGUpKTsKLQltYXggLz0gbnVtX2NwdXNfb25fbm9kZTsKLQotCXJldHVybiBtYXgobWF4LCBtaW5fcGFnZXMpOwotfQotCi1zdGF0aWMgbG9uZyBtaW5fcGFnZXNfdG9fZnJlZShzdHJ1Y3QgcXVpY2tsaXN0ICpxLAotCXVuc2lnbmVkIGxvbmcgbWluX3BhZ2VzLCBsb25nIG1heF9mcmVlKQotewotCWxvbmcgcGFnZXNfdG9fZnJlZTsKLQotCXBhZ2VzX3RvX2ZyZWUgPSBxLT5ucl9wYWdlcyAtIG1heF9wYWdlcyhtaW5fcGFnZXMpOwotCi0JcmV0dXJuIG1pbihwYWdlc190b19mcmVlLCBtYXhfZnJlZSk7Ci19Ci0KLS8qCi0gKiBUcmltIGRvd24gdGhlIG51bWJlciBvZiBwYWdlcyBpbiB0aGUgcXVpY2tsaXN0Ci0gKi8KLXZvaWQgcXVpY2tsaXN0X3RyaW0oaW50IG5yLCB2b2lkICgqZHRvcikodm9pZCAqKSwKLQl1bnNpZ25lZCBsb25nIG1pbl9wYWdlcywgdW5zaWduZWQgbG9uZyBtYXhfZnJlZSkKLXsKLQlsb25nIHBhZ2VzX3RvX2ZyZWU7Ci0Jc3RydWN0IHF1aWNrbGlzdCAqcTsKLQotCXEgPSAmZ2V0X2NwdV92YXIocXVpY2tsaXN0KVtucl07Ci0JaWYgKHEtPm5yX3BhZ2VzID4gbWluX3BhZ2VzKSB7Ci0JCXBhZ2VzX3RvX2ZyZWUgPSBtaW5fcGFnZXNfdG9fZnJlZShxLCBtaW5fcGFnZXMsIG1heF9mcmVlKTsKLQotCQl3aGlsZSAocGFnZXNfdG9fZnJlZSA+IDApIHsKLQkJCS8qCi0JCQkgKiBXZSBwYXNzIGEgZ2ZwX3Qgb2YgMCB0byBxdWlja2xpc3RfYWxsb2MgaGVyZQotCQkJICogYmVjYXVzZSB3ZSB3aWxsIG5ldmVyIGNhbGwgaW50byB0aGUgcGFnZSBhbGxvY2F0b3IuCi0JCQkgKi8KLQkJCXZvaWQgKnAgPSBxdWlja2xpc3RfYWxsb2MobnIsIDAsIE5VTEwpOwotCi0JCQlpZiAoZHRvcikKLQkJCQlkdG9yKHApOwotCQkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXApOwotCQkJcGFnZXNfdG9fZnJlZS0tOwotCQl9Ci0JfQotCXB1dF9jcHVfdmFyKHF1aWNrbGlzdCk7Ci19Ci0KLXVuc2lnbmVkIGxvbmcgcXVpY2tsaXN0X3RvdGFsX3NpemUodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGNvdW50ID0gMDsKLQlpbnQgY3B1OwotCXN0cnVjdCBxdWlja2xpc3QgKnFsLCAqcTsKLQotCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7Ci0JCXFsID0gcGVyX2NwdShxdWlja2xpc3QsIGNwdSk7Ci0JCWZvciAocSA9IHFsOyBxIDwgcWwgKyBDT05GSUdfTlJfUVVJQ0s7IHErKykKLQkJCWNvdW50ICs9IHEtPm5yX3BhZ2VzOwotCX0KLQlyZXR1cm4gY291bnQ7Ci19Ci0KZGlmZiAtLWdpdCBhL21tL3JtYXAuYyBiL21tL3JtYXAuYwppbmRleCAwMDMzNzdlLi5kOWEyM2JiIDEwMDY0NAotLS0gYS9tbS9ybWFwLmMKKysrIGIvbW0vcm1hcC5jCkBAIC04OTgsMTUgKzg5OCwxMyBAQCBzdGF0aWMgYm9vbCBwYWdlX21rY2xlYW5fb25lKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkgKi8KIAltbXVfbm90aWZpZXJfcmFuZ2VfaW5pdCgmcmFuZ2UsIE1NVV9OT1RJRllfUFJPVEVDVElPTl9QQUdFLAogCQkJCTAsIHZtYSwgdm1hLT52bV9tbSwgYWRkcmVzcywKLQkJCQltaW4odm1hLT52bV9lbmQsIGFkZHJlc3MgKwotCQkJCSAgICAoUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpKSkpOworCQkJCW1pbih2bWEtPnZtX2VuZCwgYWRkcmVzcyArIHBhZ2Vfc2l6ZShwYWdlKSkpOwogCW1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KCZyYW5nZSk7CiAKIAl3aGlsZSAocGFnZV92bWFfbWFwcGVkX3dhbGsoJnB2bXcpKSB7Ci0JCXVuc2lnbmVkIGxvbmcgY3N0YXJ0OwogCQlpbnQgcmV0ID0gMDsKIAotCQljc3RhcnQgPSBhZGRyZXNzID0gcHZtdy5hZGRyZXNzOworCQlhZGRyZXNzID0gcHZtdy5hZGRyZXNzOwogCQlpZiAocHZtdy5wdGUpIHsKIAkJCXB0ZV90IGVudHJ5OwogCQkJcHRlX3QgKnB0ZSA9IHB2bXcucHRlOwpAQCAtOTMzLDcgKzkzMSw2IEBAIHN0YXRpYyBib29sIHBhZ2VfbWtjbGVhbl9vbmUoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJZW50cnkgPSBwbWRfd3Jwcm90ZWN0KGVudHJ5KTsKIAkJCWVudHJ5ID0gcG1kX21rY2xlYW4oZW50cnkpOwogCQkJc2V0X3BtZF9hdCh2bWEtPnZtX21tLCBhZGRyZXNzLCBwbWQsIGVudHJ5KTsKLQkJCWNzdGFydCAmPSBQTURfTUFTSzsKIAkJCXJldCA9IDE7CiAjZWxzZQogCQkJLyogdW5leHBlY3RlZCBwbWQtbWFwcGVkIHBhZ2U/ICovCkBAIC0xMTkyLDggKzExODksMTAgQEAgdm9pZCBwYWdlX2FkZF9maWxlX3JtYXAoc3RydWN0IHBhZ2UgKnBhZ2UsIGJvb2wgY29tcG91bmQpCiAJCX0KIAkJaWYgKCFhdG9taWNfaW5jX2FuZF90ZXN0KGNvbXBvdW5kX21hcGNvdW50X3B0cihwYWdlKSkpCiAJCQlnb3RvIG91dDsKLQkJVk1fQlVHX09OX1BBR0UoIVBhZ2VTd2FwQmFja2VkKHBhZ2UpLCBwYWdlKTsKLQkJX19pbmNfbm9kZV9wYWdlX3N0YXRlKHBhZ2UsIE5SX1NITUVNX1BNRE1BUFBFRCk7CisJCWlmIChQYWdlU3dhcEJhY2tlZChwYWdlKSkKKwkJCV9faW5jX25vZGVfcGFnZV9zdGF0ZShwYWdlLCBOUl9TSE1FTV9QTURNQVBQRUQpOworCQllbHNlCisJCQlfX2luY19ub2RlX3BhZ2Vfc3RhdGUocGFnZSwgTlJfRklMRV9QTURNQVBQRUQpOwogCX0gZWxzZSB7CiAJCWlmIChQYWdlVHJhbnNDb21wb3VuZChwYWdlKSAmJiBwYWdlX21hcHBpbmcocGFnZSkpIHsKIAkJCVZNX1dBUk5fT05fT05DRSghUGFnZUxvY2tlZChwYWdlKSk7CkBAIC0xMjMyLDggKzEyMzEsMTAgQEAgc3RhdGljIHZvaWQgcGFnZV9yZW1vdmVfZmlsZV9ybWFwKHN0cnVjdCBwYWdlICpwYWdlLCBib29sIGNvbXBvdW5kKQogCQl9CiAJCWlmICghYXRvbWljX2FkZF9uZWdhdGl2ZSgtMSwgY29tcG91bmRfbWFwY291bnRfcHRyKHBhZ2UpKSkKIAkJCWdvdG8gb3V0OwotCQlWTV9CVUdfT05fUEFHRSghUGFnZVN3YXBCYWNrZWQocGFnZSksIHBhZ2UpOwotCQlfX2RlY19ub2RlX3BhZ2Vfc3RhdGUocGFnZSwgTlJfU0hNRU1fUE1ETUFQUEVEKTsKKwkJaWYgKFBhZ2VTd2FwQmFja2VkKHBhZ2UpKQorCQkJX19kZWNfbm9kZV9wYWdlX3N0YXRlKHBhZ2UsIE5SX1NITUVNX1BNRE1BUFBFRCk7CisJCWVsc2UKKwkJCV9fZGVjX25vZGVfcGFnZV9zdGF0ZShwYWdlLCBOUl9GSUxFX1BNRE1BUFBFRCk7CiAJfSBlbHNlIHsKIAkJaWYgKCFhdG9taWNfYWRkX25lZ2F0aXZlKC0xLCAmcGFnZS0+X21hcGNvdW50KSkKIAkJCWdvdG8gb3V0OwpAQCAtMTM3NCw4ICsxMzc1LDcgQEAgc3RhdGljIGJvb2wgdHJ5X3RvX3VubWFwX29uZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJICovCiAJbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCBNTVVfTk9USUZZX0NMRUFSLCAwLCB2bWEsIHZtYS0+dm1fbW0sCiAJCQkJYWRkcmVzcywKLQkJCQltaW4odm1hLT52bV9lbmQsIGFkZHJlc3MgKwotCQkJCSAgICAoUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpKSkpOworCQkJCW1pbih2bWEtPnZtX2VuZCwgYWRkcmVzcyArIHBhZ2Vfc2l6ZShwYWdlKSkpOwogCWlmIChQYWdlSHVnZShwYWdlKSkgewogCQkvKgogCQkgKiBJZiBzaGFyaW5nIGlzIHBvc3NpYmxlLCBzdGFydCBhbmQgZW5kIHdpbGwgYmUgYWRqdXN0ZWQKQEAgLTE1MjQsOCArMTUyNCw3IEBAIHN0YXRpYyBib29sIHRyeV90b191bm1hcF9vbmUoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQlpZiAoUGFnZUhXUG9pc29uKHBhZ2UpICYmICEoZmxhZ3MgJiBUVFVfSUdOT1JFX0hXUE9JU09OKSkgewogCQkJcHRldmFsID0gc3dwX2VudHJ5X3RvX3B0ZShtYWtlX2h3cG9pc29uX2VudHJ5KHN1YnBhZ2UpKTsKIAkJCWlmIChQYWdlSHVnZShwYWdlKSkgewotCQkJCWludCBuciA9IDEgPDwgY29tcG91bmRfb3JkZXIocGFnZSk7Ci0JCQkJaHVnZXRsYl9jb3VudF9zdWIobnIsIG1tKTsKKwkJCQlodWdldGxiX2NvdW50X3N1Yihjb21wb3VuZF9ucihwYWdlKSwgbW0pOwogCQkJCXNldF9odWdlX3N3YXBfcHRlX2F0KG1tLCBhZGRyZXNzLAogCQkJCQkJICAgICBwdm13LnB0ZSwgcHRldmFsLAogCQkJCQkJICAgICB2bWFfbW11X3BhZ2VzaXplKHZtYSkpOwpkaWZmIC0tZ2l0IGEvbW0vc2htZW0uYyBiL21tL3NobWVtLmMKaW5kZXggMmJlZDQ3Ni4uY2Q1NzBjYyAxMDA2NDQKLS0tIGEvbW0vc2htZW0uYworKysgYi9tbS9zaG1lbS5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8bGludXgva2h1Z2VwYWdlZC5oPgogI2luY2x1ZGUgPGxpbnV4L2h1Z2V0bGIuaD4KICNpbmNsdWRlIDxsaW51eC9mcm9udHN3YXAuaD4KKyNpbmNsdWRlIDxsaW51eC9mc19wYXJzZXIuaD4KIAogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPiAvKiBmb3IgYXJjaC9taWNyb2JsYXplIHVwZGF0ZV9tbXVfY2FjaGUoKSAqLwogCkBAIC0xMDcsNiArMTA4LDIwIEBAIHN0cnVjdCBzaG1lbV9mYWxsb2MgewogCXBnb2ZmX3QgbnJfdW5zd2FwcGVkOwkvKiBob3cgb2Z0ZW4gd3JpdGVwYWdlIHJlZnVzZWQgdG8gc3dhcCBvdXQgKi8KIH07CiAKK3N0cnVjdCBzaG1lbV9vcHRpb25zIHsKKwl1bnNpZ25lZCBsb25nIGxvbmcgYmxvY2tzOworCXVuc2lnbmVkIGxvbmcgbG9uZyBpbm9kZXM7CisJc3RydWN0IG1lbXBvbGljeSAqbXBvbDsKKwlrdWlkX3QgdWlkOworCWtnaWRfdCBnaWQ7CisJdW1vZGVfdCBtb2RlOworCWludCBodWdlOworCWludCBzZWVuOworI2RlZmluZSBTSE1FTV9TRUVOX0JMT0NLUyAxCisjZGVmaW5lIFNITUVNX1NFRU5fSU5PREVTIDIKKyNkZWZpbmUgU0hNRU1fU0VFTl9IVUdFIDQKK307CisKICNpZmRlZiBDT05GSUdfVE1QRlMKIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNobWVtX2RlZmF1bHRfbWF4X2Jsb2Nrcyh2b2lkKQogewpAQCAtNTk0LDcgKzYwOSw3IEBAIHN0YXRpYyBpbnQgc2htZW1fYWRkX3RvX3BhZ2VfY2FjaGUoc3RydWN0IHBhZ2UgKnBhZ2UsCiB7CiAJWEFfU1RBVEVfT1JERVIoeGFzLCAmbWFwcGluZy0+aV9wYWdlcywgaW5kZXgsIGNvbXBvdW5kX29yZGVyKHBhZ2UpKTsKIAl1bnNpZ25lZCBsb25nIGkgPSAwOwotCXVuc2lnbmVkIGxvbmcgbnIgPSAxVUwgPDwgY29tcG91bmRfb3JkZXIocGFnZSk7CisJdW5zaWduZWQgbG9uZyBuciA9IGNvbXBvdW5kX25yKHBhZ2UpOwogCiAJVk1fQlVHX09OX1BBR0UoUGFnZVRhaWwocGFnZSksIHBhZ2UpOwogCVZNX0JVR19PTl9QQUdFKGluZGV4ICE9IHJvdW5kX2Rvd24oaW5kZXgsIG5yKSwgcGFnZSk7CkBAIC02MTYsNyArNjMxLDcgQEAgc3RhdGljIGludCBzaG1lbV9hZGRfdG9fcGFnZV9jYWNoZShzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJaWYgKHhhc19lcnJvcigmeGFzKSkKIAkJCWdvdG8gdW5sb2NrOwogbmV4dDoKLQkJeGFzX3N0b3JlKCZ4YXMsIHBhZ2UgKyBpKTsKKwkJeGFzX3N0b3JlKCZ4YXMsIHBhZ2UpOwogCQlpZiAoKytpIDwgbnIpIHsKIAkJCXhhc19uZXh0KCZ4YXMpOwogCQkJZ290byBuZXh0OwpAQCAtMTQ2Niw3ICsxNDgxLDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlICpzaG1lbV9hbGxvY19odWdlcGFnZShnZnBfdCBnZnAsCiAKIAlzaG1lbV9wc2V1ZG9fdm1hX2luaXQoJnB2bWEsIGluZm8sIGhpbmRleCk7CiAJcGFnZSA9IGFsbG9jX3BhZ2VzX3ZtYShnZnAgfCBfX0dGUF9DT01QIHwgX19HRlBfTk9SRVRSWSB8IF9fR0ZQX05PV0FSTiwKLQkJCUhQQUdFX1BNRF9PUkRFUiwgJnB2bWEsIDAsIG51bWFfbm9kZV9pZCgpKTsKKwkJCUhQQUdFX1BNRF9PUkRFUiwgJnB2bWEsIDAsIG51bWFfbm9kZV9pZCgpLCB0cnVlKTsKIAlzaG1lbV9wc2V1ZG9fdm1hX2Rlc3Ryb3koJnB2bWEpOwogCWlmIChwYWdlKQogCQlwcmVwX3RyYW5zaHVnZV9wYWdlKHBhZ2UpOwpAQCAtMTcxOSw3ICsxNzM0LDcgQEAgc3RhdGljIGludCBzaG1lbV9zd2FwaW5fcGFnZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4LAogICogdm0uIElmIHdlIHN3YXAgaXQgaW4gd2UgbWFyayBpdCBkaXJ0eSBzaW5jZSB3ZSBhbHNvIGZyZWUgdGhlIHN3YXAKICAqIGVudHJ5IHNpbmNlIGEgcGFnZSBjYW5ub3QgbGl2ZSBpbiBib3RoIHRoZSBzd2FwIGFuZCBwYWdlIGNhY2hlLgogICoKLSAqIGZhdWx0X21tIGFuZCBmYXVsdF90eXBlIGFyZSBvbmx5IHN1cHBsaWVkIGJ5IHNobWVtX2ZhdWx0OgorICogdm1mIGFuZCBmYXVsdF90eXBlIGFyZSBvbmx5IHN1cHBsaWVkIGJ5IHNobWVtX2ZhdWx0OgogICogb3RoZXJ3aXNlIHRoZXkgYXJlIE5VTEwuCiAgKi8KIHN0YXRpYyBpbnQgc2htZW1fZ2V0cGFnZV9nZnAoc3RydWN0IGlub2RlICppbm9kZSwgcGdvZmZfdCBpbmRleCwKQEAgLTE4NjksNyArMTg4NCw3IEBAIHN0YXRpYyBpbnQgc2htZW1fZ2V0cGFnZV9nZnAoc3RydWN0IGlub2RlICppbm9kZSwgcGdvZmZfdCBpbmRleCwKIAlscnVfY2FjaGVfYWRkX2Fub24ocGFnZSk7CiAKIAlzcGluX2xvY2tfaXJxKCZpbmZvLT5sb2NrKTsKLQlpbmZvLT5hbGxvY2VkICs9IDEgPDwgY29tcG91bmRfb3JkZXIocGFnZSk7CisJaW5mby0+YWxsb2NlZCArPSBjb21wb3VuZF9ucihwYWdlKTsKIAlpbm9kZS0+aV9ibG9ja3MgKz0gQkxPQ0tTX1BFUl9QQUdFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpOwogCXNobWVtX3JlY2FsY19pbm9kZShpbm9kZSk7CiAJc3Bpbl91bmxvY2tfaXJxKCZpbmZvLT5sb2NrKTsKQEAgLTE5MTAsNyArMTkyNSw3IEBAIHN0YXRpYyBpbnQgc2htZW1fZ2V0cGFnZV9nZnAoc3RydWN0IGlub2RlICppbm9kZSwgcGdvZmZfdCBpbmRleCwKIAkJc3RydWN0IHBhZ2UgKmhlYWQgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOwogCQlpbnQgaTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgKDEgPDwgY29tcG91bmRfb3JkZXIoaGVhZCkpOyBpKyspIHsKKwkJZm9yIChpID0gMDsgaSA8IGNvbXBvdW5kX25yKGhlYWQpOyBpKyspIHsKIAkJCWNsZWFyX2hpZ2hwYWdlKGhlYWQgKyBpKTsKIAkJCWZsdXNoX2RjYWNoZV9wYWdlKGhlYWQgKyBpKTsKIAkJfQpAQCAtMTkzNyw3ICsxOTUyLDcgQEAgc3RhdGljIGludCBzaG1lbV9nZXRwYWdlX2dmcChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4LAogCSAqIEVycm9yIHJlY292ZXJ5LgogCSAqLwogdW5hY2N0OgotCXNobWVtX2lub2RlX3VuYWNjdF9ibG9ja3MoaW5vZGUsIDEgPDwgY29tcG91bmRfb3JkZXIocGFnZSkpOworCXNobWVtX2lub2RlX3VuYWNjdF9ibG9ja3MoaW5vZGUsIGNvbXBvdW5kX25yKHBhZ2UpKTsKIAogCWlmIChQYWdlVHJhbnNIdWdlKHBhZ2UpKSB7CiAJCXVubG9ja19wYWdlKHBhZ2UpOwpAQCAtMzM0OSwxNiArMzM2NCwxMjYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHBvcnRfb3BlcmF0aW9ucyBzaG1lbV9leHBvcnRfb3BzID0gewogCS5maF90b19kZW50cnkJPSBzaG1lbV9maF90b19kZW50cnksCiB9OwogCi1zdGF0aWMgaW50IHNobWVtX3BhcnNlX29wdGlvbnMoY2hhciAqb3B0aW9ucywgc3RydWN0IHNobWVtX3NiX2luZm8gKnNiaW5mbywKLQkJCSAgICAgICBib29sIHJlbW91bnQpCitlbnVtIHNobWVtX3BhcmFtIHsKKwlPcHRfZ2lkLAorCU9wdF9odWdlLAorCU9wdF9tb2RlLAorCU9wdF9tcG9sLAorCU9wdF9ucl9ibG9ja3MsCisJT3B0X25yX2lub2RlcywKKwlPcHRfc2l6ZSwKKwlPcHRfdWlkLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfc3BlYyBzaG1lbV9wYXJhbV9zcGVjc1tdID0geworCWZzcGFyYW1fdTMyICAgKCJnaWQiLAkJT3B0X2dpZCksCisJZnNwYXJhbV9lbnVtICAoImh1Z2UiLAkJT3B0X2h1Z2UpLAorCWZzcGFyYW1fdTMyb2N0KCJtb2RlIiwJCU9wdF9tb2RlKSwKKwlmc3BhcmFtX3N0cmluZygibXBvbCIsCQlPcHRfbXBvbCksCisJZnNwYXJhbV9zdHJpbmcoIm5yX2Jsb2NrcyIsCU9wdF9ucl9ibG9ja3MpLAorCWZzcGFyYW1fc3RyaW5nKCJucl9pbm9kZXMiLAlPcHRfbnJfaW5vZGVzKSwKKwlmc3BhcmFtX3N0cmluZygic2l6ZSIsCQlPcHRfc2l6ZSksCisJZnNwYXJhbV91MzIgICAoInVpZCIsCQlPcHRfdWlkKSwKKwl7fQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfZW51bSBzaG1lbV9wYXJhbV9lbnVtc1tdID0geworCXsgT3B0X2h1Z2UsCSJuZXZlciIsCVNITUVNX0hVR0VfTkVWRVIgfSwKKwl7IE9wdF9odWdlLAkiYWx3YXlzIiwJU0hNRU1fSFVHRV9BTFdBWVMgfSwKKwl7IE9wdF9odWdlLAkid2l0aGluX3NpemUiLAlTSE1FTV9IVUdFX1dJVEhJTl9TSVpFIH0sCisJeyBPcHRfaHVnZSwJImFkdmlzZSIsCVNITUVNX0hVR0VfQURWSVNFIH0sCisJe30KK307CisKK2NvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfZGVzY3JpcHRpb24gc2htZW1fZnNfcGFyYW1ldGVycyA9IHsKKwkubmFtZQkJPSAidG1wZnMiLAorCS5zcGVjcwkJPSBzaG1lbV9wYXJhbV9zcGVjcywKKwkuZW51bXMJCT0gc2htZW1fcGFyYW1fZW51bXMsCit9OworCitzdGF0aWMgaW50IHNobWVtX3BhcnNlX29uZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMsIHN0cnVjdCBmc19wYXJhbWV0ZXIgKnBhcmFtKQogewotCWNoYXIgKnRoaXNfY2hhciwgKnZhbHVlLCAqcmVzdDsKLQlzdHJ1Y3QgbWVtcG9saWN5ICptcG9sID0gTlVMTDsKLQl1aWRfdCB1aWQ7Ci0JZ2lkX3QgZ2lkOworCXN0cnVjdCBzaG1lbV9vcHRpb25zICpjdHggPSBmYy0+ZnNfcHJpdmF0ZTsKKwlzdHJ1Y3QgZnNfcGFyc2VfcmVzdWx0IHJlc3VsdDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZTsKKwljaGFyICpyZXN0OworCWludCBvcHQ7CisKKwlvcHQgPSBmc19wYXJzZShmYywgJnNobWVtX2ZzX3BhcmFtZXRlcnMsIHBhcmFtLCAmcmVzdWx0KTsKKwlpZiAob3B0IDwgMCkKKwkJcmV0dXJuIG9wdDsKKworCXN3aXRjaCAob3B0KSB7CisJY2FzZSBPcHRfc2l6ZToKKwkJc2l6ZSA9IG1lbXBhcnNlKHBhcmFtLT5zdHJpbmcsICZyZXN0KTsKKwkJaWYgKCpyZXN0ID09ICclJykgeworCQkJc2l6ZSA8PD0gUEFHRV9TSElGVDsKKwkJCXNpemUgKj0gdG90YWxyYW1fcGFnZXMoKTsKKwkJCWRvX2RpdihzaXplLCAxMDApOworCQkJcmVzdCsrOworCQl9CisJCWlmICgqcmVzdCkKKwkJCWdvdG8gYmFkX3ZhbHVlOworCQljdHgtPmJsb2NrcyA9IERJVl9ST1VORF9VUChzaXplLCBQQUdFX1NJWkUpOworCQljdHgtPnNlZW4gfD0gU0hNRU1fU0VFTl9CTE9DS1M7CisJCWJyZWFrOworCWNhc2UgT3B0X25yX2Jsb2NrczoKKwkJY3R4LT5ibG9ja3MgPSBtZW1wYXJzZShwYXJhbS0+c3RyaW5nLCAmcmVzdCk7CisJCWlmICgqcmVzdCkKKwkJCWdvdG8gYmFkX3ZhbHVlOworCQljdHgtPnNlZW4gfD0gU0hNRU1fU0VFTl9CTE9DS1M7CisJCWJyZWFrOworCWNhc2UgT3B0X25yX2lub2RlczoKKwkJY3R4LT5pbm9kZXMgPSBtZW1wYXJzZShwYXJhbS0+c3RyaW5nLCAmcmVzdCk7CisJCWlmICgqcmVzdCkKKwkJCWdvdG8gYmFkX3ZhbHVlOworCQljdHgtPnNlZW4gfD0gU0hNRU1fU0VFTl9JTk9ERVM7CisJCWJyZWFrOworCWNhc2UgT3B0X21vZGU6CisJCWN0eC0+bW9kZSA9IHJlc3VsdC51aW50XzMyICYgMDc3Nzc7CisJCWJyZWFrOworCWNhc2UgT3B0X3VpZDoKKwkJY3R4LT51aWQgPSBtYWtlX2t1aWQoY3VycmVudF91c2VyX25zKCksIHJlc3VsdC51aW50XzMyKTsKKwkJaWYgKCF1aWRfdmFsaWQoY3R4LT51aWQpKQorCQkJZ290byBiYWRfdmFsdWU7CisJCWJyZWFrOworCWNhc2UgT3B0X2dpZDoKKwkJY3R4LT5naWQgPSBtYWtlX2tnaWQoY3VycmVudF91c2VyX25zKCksIHJlc3VsdC51aW50XzMyKTsKKwkJaWYgKCFnaWRfdmFsaWQoY3R4LT5naWQpKQorCQkJZ290byBiYWRfdmFsdWU7CisJCWJyZWFrOworCWNhc2UgT3B0X2h1Z2U6CisJCWN0eC0+aHVnZSA9IHJlc3VsdC51aW50XzMyOworCQlpZiAoY3R4LT5odWdlICE9IFNITUVNX0hVR0VfTkVWRVIgJiYKKwkJICAgICEoSVNfRU5BQkxFRChDT05GSUdfVFJBTlNQQVJFTlRfSFVHRV9QQUdFQ0FDSEUpICYmCisJCSAgICAgIGhhc190cmFuc3BhcmVudF9odWdlcGFnZSgpKSkKKwkJCWdvdG8gdW5zdXBwb3J0ZWRfcGFyYW1ldGVyOworCQljdHgtPnNlZW4gfD0gU0hNRU1fU0VFTl9IVUdFOworCQlicmVhazsKKwljYXNlIE9wdF9tcG9sOgorCQlpZiAoSVNfRU5BQkxFRChDT05GSUdfTlVNQSkpIHsKKwkJCW1wb2xfcHV0KGN0eC0+bXBvbCk7CisJCQljdHgtPm1wb2wgPSBOVUxMOworCQkJaWYgKG1wb2xfcGFyc2Vfc3RyKHBhcmFtLT5zdHJpbmcsICZjdHgtPm1wb2wpKQorCQkJCWdvdG8gYmFkX3ZhbHVlOworCQkJYnJlYWs7CisJCX0KKwkJZ290byB1bnN1cHBvcnRlZF9wYXJhbWV0ZXI7CisJfQorCXJldHVybiAwOworCit1bnN1cHBvcnRlZF9wYXJhbWV0ZXI6CisJcmV0dXJuIGludmFsZihmYywgInRtcGZzOiBVbnN1cHBvcnRlZCBwYXJhbWV0ZXIgJyVzJyIsIHBhcmFtLT5rZXkpOworYmFkX3ZhbHVlOgorCXJldHVybiBpbnZhbGYoZmMsICJ0bXBmczogQmFkIHZhbHVlIGZvciAnJXMnIiwgcGFyYW0tPmtleSk7Cit9CisKK3N0YXRpYyBpbnQgc2htZW1fcGFyc2Vfb3B0aW9ucyhzdHJ1Y3QgZnNfY29udGV4dCAqZmMsIHZvaWQgKmRhdGEpCit7CisJY2hhciAqb3B0aW9ucyA9IGRhdGE7CiAKIAl3aGlsZSAob3B0aW9ucyAhPSBOVUxMKSB7Ci0JCXRoaXNfY2hhciA9IG9wdGlvbnM7CisJCWNoYXIgKnRoaXNfY2hhciA9IG9wdGlvbnM7CiAJCWZvciAoOzspIHsKIAkJCS8qCiAJCQkgKiBOVUwtdGVybWluYXRlIHRoaXMgb3B0aW9uOiB1bmZvcnR1bmF0ZWx5LApAQCAtMzM3NCwxMzkgKzM0OTksODMgQEAgc3RhdGljIGludCBzaG1lbV9wYXJzZV9vcHRpb25zKGNoYXIgKm9wdGlvbnMsIHN0cnVjdCBzaG1lbV9zYl9pbmZvICpzYmluZm8sCiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0KLQkJaWYgKCEqdGhpc19jaGFyKQotCQkJY29udGludWU7Ci0JCWlmICgodmFsdWUgPSBzdHJjaHIodGhpc19jaGFyLCc9JykpICE9IE5VTEwpIHsKLQkJCSp2YWx1ZSsrID0gMDsKLQkJfSBlbHNlIHsKLQkJCXByX2VycigidG1wZnM6IE5vIHZhbHVlIGZvciBtb3VudCBvcHRpb24gJyVzJ1xuIiwKLQkJCSAgICAgICB0aGlzX2NoYXIpOwotCQkJZ290byBlcnJvcjsKLQkJfQorCQlpZiAoKnRoaXNfY2hhcikgeworCQkJY2hhciAqdmFsdWUgPSBzdHJjaHIodGhpc19jaGFyLCc9Jyk7CisJCQlzaXplX3QgbGVuID0gMDsKKwkJCWludCBlcnI7CiAKLQkJaWYgKCFzdHJjbXAodGhpc19jaGFyLCJzaXplIikpIHsKLQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBzaXplOwotCQkJc2l6ZSA9IG1lbXBhcnNlKHZhbHVlLCZyZXN0KTsKLQkJCWlmICgqcmVzdCA9PSAnJScpIHsKLQkJCQlzaXplIDw8PSBQQUdFX1NISUZUOwotCQkJCXNpemUgKj0gdG90YWxyYW1fcGFnZXMoKTsKLQkJCQlkb19kaXYoc2l6ZSwgMTAwKTsKLQkJCQlyZXN0Kys7CisJCQlpZiAodmFsdWUpIHsKKwkJCQkqdmFsdWUrKyA9ICdcMCc7CisJCQkJbGVuID0gc3RybGVuKHZhbHVlKTsKIAkJCX0KLQkJCWlmICgqcmVzdCkKLQkJCQlnb3RvIGJhZF92YWw7Ci0JCQlzYmluZm8tPm1heF9ibG9ja3MgPQotCQkJCURJVl9ST1VORF9VUChzaXplLCBQQUdFX1NJWkUpOwotCQl9IGVsc2UgaWYgKCFzdHJjbXAodGhpc19jaGFyLCJucl9ibG9ja3MiKSkgewotCQkJc2JpbmZvLT5tYXhfYmxvY2tzID0gbWVtcGFyc2UodmFsdWUsICZyZXN0KTsKLQkJCWlmICgqcmVzdCkKLQkJCQlnb3RvIGJhZF92YWw7Ci0JCX0gZWxzZSBpZiAoIXN0cmNtcCh0aGlzX2NoYXIsIm5yX2lub2RlcyIpKSB7Ci0JCQlzYmluZm8tPm1heF9pbm9kZXMgPSBtZW1wYXJzZSh2YWx1ZSwgJnJlc3QpOwotCQkJaWYgKCpyZXN0KQotCQkJCWdvdG8gYmFkX3ZhbDsKLQkJfSBlbHNlIGlmICghc3RyY21wKHRoaXNfY2hhciwibW9kZSIpKSB7Ci0JCQlpZiAocmVtb3VudCkKLQkJCQljb250aW51ZTsKLQkJCXNiaW5mby0+bW9kZSA9IHNpbXBsZV9zdHJ0b3VsKHZhbHVlLCAmcmVzdCwgOCkgJiAwNzc3NzsKLQkJCWlmICgqcmVzdCkKLQkJCQlnb3RvIGJhZF92YWw7Ci0JCX0gZWxzZSBpZiAoIXN0cmNtcCh0aGlzX2NoYXIsInVpZCIpKSB7Ci0JCQlpZiAocmVtb3VudCkKLQkJCQljb250aW51ZTsKLQkJCXVpZCA9IHNpbXBsZV9zdHJ0b3VsKHZhbHVlLCAmcmVzdCwgMCk7Ci0JCQlpZiAoKnJlc3QpCi0JCQkJZ290byBiYWRfdmFsOwotCQkJc2JpbmZvLT51aWQgPSBtYWtlX2t1aWQoY3VycmVudF91c2VyX25zKCksIHVpZCk7Ci0JCQlpZiAoIXVpZF92YWxpZChzYmluZm8tPnVpZCkpCi0JCQkJZ290byBiYWRfdmFsOwotCQl9IGVsc2UgaWYgKCFzdHJjbXAodGhpc19jaGFyLCJnaWQiKSkgewotCQkJaWYgKHJlbW91bnQpCi0JCQkJY29udGludWU7Ci0JCQlnaWQgPSBzaW1wbGVfc3RydG91bCh2YWx1ZSwgJnJlc3QsIDApOwotCQkJaWYgKCpyZXN0KQotCQkJCWdvdG8gYmFkX3ZhbDsKLQkJCXNiaW5mby0+Z2lkID0gbWFrZV9rZ2lkKGN1cnJlbnRfdXNlcl9ucygpLCBnaWQpOwotCQkJaWYgKCFnaWRfdmFsaWQoc2JpbmZvLT5naWQpKQotCQkJCWdvdG8gYmFkX3ZhbDsKLSNpZmRlZiBDT05GSUdfVFJBTlNQQVJFTlRfSFVHRV9QQUdFQ0FDSEUKLQkJfSBlbHNlIGlmICghc3RyY21wKHRoaXNfY2hhciwgImh1Z2UiKSkgewotCQkJaW50IGh1Z2U7Ci0JCQlodWdlID0gc2htZW1fcGFyc2VfaHVnZSh2YWx1ZSk7Ci0JCQlpZiAoaHVnZSA8IDApCi0JCQkJZ290byBiYWRfdmFsOwotCQkJaWYgKCFoYXNfdHJhbnNwYXJlbnRfaHVnZXBhZ2UoKSAmJgotCQkJCQlodWdlICE9IFNITUVNX0hVR0VfTkVWRVIpCi0JCQkJZ290byBiYWRfdmFsOwotCQkJc2JpbmZvLT5odWdlID0gaHVnZTsKLSNlbmRpZgotI2lmZGVmIENPTkZJR19OVU1BCi0JCX0gZWxzZSBpZiAoIXN0cmNtcCh0aGlzX2NoYXIsIm1wb2wiKSkgewotCQkJbXBvbF9wdXQobXBvbCk7Ci0JCQltcG9sID0gTlVMTDsKLQkJCWlmIChtcG9sX3BhcnNlX3N0cih2YWx1ZSwgJm1wb2wpKQotCQkJCWdvdG8gYmFkX3ZhbDsKLSNlbmRpZgotCQl9IGVsc2UgewotCQkJcHJfZXJyKCJ0bXBmczogQmFkIG1vdW50IG9wdGlvbiAlc1xuIiwgdGhpc19jaGFyKTsKLQkJCWdvdG8gZXJyb3I7CisJCQllcnIgPSB2ZnNfcGFyc2VfZnNfc3RyaW5nKGZjLCB0aGlzX2NoYXIsIHZhbHVlLCBsZW4pOworCQkJaWYgKGVyciA8IDApCisJCQkJcmV0dXJuIGVycjsKIAkJfQogCX0KLQlzYmluZm8tPm1wb2wgPSBtcG9sOwogCXJldHVybiAwOwotCi1iYWRfdmFsOgotCXByX2VycigidG1wZnM6IEJhZCB2YWx1ZSAnJXMnIGZvciBtb3VudCBvcHRpb24gJyVzJ1xuIiwKLQkgICAgICAgdmFsdWUsIHRoaXNfY2hhcik7Ci1lcnJvcjoKLQltcG9sX3B1dChtcG9sKTsKLQlyZXR1cm4gMTsKLQogfQogCi1zdGF0aWMgaW50IHNobWVtX3JlbW91bnRfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50ICpmbGFncywgY2hhciAqZGF0YSkKKy8qCisgKiBSZWNvbmZpZ3VyZSBhIHNobWVtIGZpbGVzeXN0ZW0uCisgKgorICogTm90ZSB0aGF0IHdlIGRpc2FsbG93IGNoYW5nZSBmcm9tIGxpbWl0ZWQtPnVubGltaXRlZCBibG9ja3MvaW5vZGVzIHdoaWxlIGFueQorICogYXJlIGluIHVzZTsgYnV0IHdlIG11c3Qgc2VwYXJhdGVseSBkaXNhbGxvdyB1bmxpbWl0ZWQtPmxpbWl0ZWQsIGJlY2F1c2UgaW4KKyAqIHRoYXQgY2FzZSB3ZSBoYXZlIG5vIHJlY29yZCBvZiBob3cgbXVjaCBpcyBhbHJlYWR5IGluIHVzZS4KKyAqLworc3RhdGljIGludCBzaG1lbV9yZWNvbmZpZ3VyZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0Jc3RydWN0IHNobWVtX3NiX2luZm8gKnNiaW5mbyA9IFNITUVNX1NCKHNiKTsKLQlzdHJ1Y3Qgc2htZW1fc2JfaW5mbyBjb25maWcgPSAqc2JpbmZvOworCXN0cnVjdCBzaG1lbV9vcHRpb25zICpjdHggPSBmYy0+ZnNfcHJpdmF0ZTsKKwlzdHJ1Y3Qgc2htZW1fc2JfaW5mbyAqc2JpbmZvID0gU0hNRU1fU0IoZmMtPnJvb3QtPmRfc2IpOwogCXVuc2lnbmVkIGxvbmcgaW5vZGVzOwotCWludCBlcnJvciA9IC1FSU5WQUw7Ci0KLQljb25maWcubXBvbCA9IE5VTEw7Ci0JaWYgKHNobWVtX3BhcnNlX29wdGlvbnMoZGF0YSwgJmNvbmZpZywgdHJ1ZSkpCi0JCXJldHVybiBlcnJvcjsKKwljb25zdCBjaGFyICplcnI7CiAKIAlzcGluX2xvY2soJnNiaW5mby0+c3RhdF9sb2NrKTsKIAlpbm9kZXMgPSBzYmluZm8tPm1heF9pbm9kZXMgLSBzYmluZm8tPmZyZWVfaW5vZGVzOwotCWlmIChwZXJjcHVfY291bnRlcl9jb21wYXJlKCZzYmluZm8tPnVzZWRfYmxvY2tzLCBjb25maWcubWF4X2Jsb2NrcykgPiAwKQotCQlnb3RvIG91dDsKLQlpZiAoY29uZmlnLm1heF9pbm9kZXMgPCBpbm9kZXMpCi0JCWdvdG8gb3V0OwotCS8qCi0JICogVGhvc2UgdGVzdHMgZGlzYWxsb3cgbGltaXRlZC0+dW5saW1pdGVkIHdoaWxlIGFueSBhcmUgaW4gdXNlOwotCSAqIGJ1dCB3ZSBtdXN0IHNlcGFyYXRlbHkgZGlzYWxsb3cgdW5saW1pdGVkLT5saW1pdGVkLCBiZWNhdXNlCi0JICogaW4gdGhhdCBjYXNlIHdlIGhhdmUgbm8gcmVjb3JkIG9mIGhvdyBtdWNoIGlzIGFscmVhZHkgaW4gdXNlLgotCSAqLwotCWlmIChjb25maWcubWF4X2Jsb2NrcyAmJiAhc2JpbmZvLT5tYXhfYmxvY2tzKQotCQlnb3RvIG91dDsKLQlpZiAoY29uZmlnLm1heF9pbm9kZXMgJiYgIXNiaW5mby0+bWF4X2lub2RlcykKLQkJZ290byBvdXQ7CisJaWYgKChjdHgtPnNlZW4gJiBTSE1FTV9TRUVOX0JMT0NLUykgJiYgY3R4LT5ibG9ja3MpIHsKKwkJaWYgKCFzYmluZm8tPm1heF9ibG9ja3MpIHsKKwkJCWVyciA9ICJDYW5ub3QgcmV0cm9hY3RpdmVseSBsaW1pdCBzaXplIjsKKwkJCWdvdG8gb3V0OworCQl9CisJCWlmIChwZXJjcHVfY291bnRlcl9jb21wYXJlKCZzYmluZm8tPnVzZWRfYmxvY2tzLAorCQkJCQkgICBjdHgtPmJsb2NrcykgPiAwKSB7CisJCQllcnIgPSAiVG9vIHNtYWxsIGEgc2l6ZSBmb3IgY3VycmVudCB1c2UiOworCQkJZ290byBvdXQ7CisJCX0KKwl9CisJaWYgKChjdHgtPnNlZW4gJiBTSE1FTV9TRUVOX0lOT0RFUykgJiYgY3R4LT5pbm9kZXMpIHsKKwkJaWYgKCFzYmluZm8tPm1heF9pbm9kZXMpIHsKKwkJCWVyciA9ICJDYW5ub3QgcmV0cm9hY3RpdmVseSBsaW1pdCBpbm9kZXMiOworCQkJZ290byBvdXQ7CisJCX0KKwkJaWYgKGN0eC0+aW5vZGVzIDwgaW5vZGVzKSB7CisJCQllcnIgPSAiVG9vIGZldyBpbm9kZXMgZm9yIGN1cnJlbnQgdXNlIjsKKwkJCWdvdG8gb3V0OworCQl9CisJfQogCi0JZXJyb3IgPSAwOwotCXNiaW5mby0+aHVnZSA9IGNvbmZpZy5odWdlOwotCXNiaW5mby0+bWF4X2Jsb2NrcyAgPSBjb25maWcubWF4X2Jsb2NrczsKLQlzYmluZm8tPm1heF9pbm9kZXMgID0gY29uZmlnLm1heF9pbm9kZXM7Ci0Jc2JpbmZvLT5mcmVlX2lub2RlcyA9IGNvbmZpZy5tYXhfaW5vZGVzIC0gaW5vZGVzOworCWlmIChjdHgtPnNlZW4gJiBTSE1FTV9TRUVOX0hVR0UpCisJCXNiaW5mby0+aHVnZSA9IGN0eC0+aHVnZTsKKwlpZiAoY3R4LT5zZWVuICYgU0hNRU1fU0VFTl9CTE9DS1MpCisJCXNiaW5mby0+bWF4X2Jsb2NrcyAgPSBjdHgtPmJsb2NrczsKKwlpZiAoY3R4LT5zZWVuICYgU0hNRU1fU0VFTl9JTk9ERVMpIHsKKwkJc2JpbmZvLT5tYXhfaW5vZGVzICA9IGN0eC0+aW5vZGVzOworCQlzYmluZm8tPmZyZWVfaW5vZGVzID0gY3R4LT5pbm9kZXMgLSBpbm9kZXM7CisJfQogCiAJLyoKIAkgKiBQcmVzZXJ2ZSBwcmV2aW91cyBtZW1wb2xpY3kgdW5sZXNzIG1wb2wgcmVtb3VudCBvcHRpb24gd2FzIHNwZWNpZmllZC4KIAkgKi8KLQlpZiAoY29uZmlnLm1wb2wpIHsKKwlpZiAoY3R4LT5tcG9sKSB7CiAJCW1wb2xfcHV0KHNiaW5mby0+bXBvbCk7Ci0JCXNiaW5mby0+bXBvbCA9IGNvbmZpZy5tcG9sOwkvKiB0cmFuc2ZlcnMgaW5pdGlhbCByZWYgKi8KKwkJc2JpbmZvLT5tcG9sID0gY3R4LT5tcG9sOwkvKiB0cmFuc2ZlcnMgaW5pdGlhbCByZWYgKi8KKwkJY3R4LT5tcG9sID0gTlVMTDsKIAl9CisJc3Bpbl91bmxvY2soJnNiaW5mby0+c3RhdF9sb2NrKTsKKwlyZXR1cm4gMDsKIG91dDoKIAlzcGluX3VubG9jaygmc2JpbmZvLT5zdGF0X2xvY2spOwotCXJldHVybiBlcnJvcjsKKwlyZXR1cm4gaW52YWxmKGZjLCAidG1wZnM6ICVzIiwgZXJyKTsKIH0KIAogc3RhdGljIGludCBzaG1lbV9zaG93X29wdGlvbnMoc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCBkZW50cnkgKnJvb3QpCkBAIC0zNTQ3LDggKzM2MTYsOSBAQCBzdGF0aWMgdm9pZCBzaG1lbV9wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlzYi0+c19mc19pbmZvID0gTlVMTDsKIH0KIAotaW50IHNobWVtX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKK3N0YXRpYyBpbnQgc2htZW1fZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7CisJc3RydWN0IHNobWVtX29wdGlvbnMgKmN0eCA9IGZjLT5mc19wcml2YXRlOwogCXN0cnVjdCBpbm9kZSAqaW5vZGU7CiAJc3RydWN0IHNobWVtX3NiX2luZm8gKnNiaW5mbzsKIAlpbnQgZXJyID0gLUVOT01FTTsKQEAgLTM1NTksOSArMzYyOSw2IEBAIGludCBzaG1lbV9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAJaWYgKCFzYmluZm8pCiAJCXJldHVybiAtRU5PTUVNOwogCi0Jc2JpbmZvLT5tb2RlID0gMDc3NyB8IFNfSVNWVFg7Ci0Jc2JpbmZvLT51aWQgPSBjdXJyZW50X2ZzdWlkKCk7Ci0Jc2JpbmZvLT5naWQgPSBjdXJyZW50X2ZzZ2lkKCk7CiAJc2ItPnNfZnNfaW5mbyA9IHNiaW5mbzsKIAogI2lmZGVmIENPTkZJR19UTVBGUwpAQCAtMzU3MSwxMiArMzYzOCwxMCBAQCBpbnQgc2htZW1fZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCSAqIGJ1dCB0aGUgaW50ZXJuYWwgaW5zdGFuY2UgaXMgbGVmdCB1bmxpbWl0ZWQuCiAJICovCiAJaWYgKCEoc2ItPnNfZmxhZ3MgJiBTQl9LRVJOTU9VTlQpKSB7Ci0JCXNiaW5mby0+bWF4X2Jsb2NrcyA9IHNobWVtX2RlZmF1bHRfbWF4X2Jsb2NrcygpOwotCQlzYmluZm8tPm1heF9pbm9kZXMgPSBzaG1lbV9kZWZhdWx0X21heF9pbm9kZXMoKTsKLQkJaWYgKHNobWVtX3BhcnNlX29wdGlvbnMoZGF0YSwgc2JpbmZvLCBmYWxzZSkpIHsKLQkJCWVyciA9IC1FSU5WQUw7Ci0JCQlnb3RvIGZhaWxlZDsKLQkJfQorCQlpZiAoIShjdHgtPnNlZW4gJiBTSE1FTV9TRUVOX0JMT0NLUykpCisJCQljdHgtPmJsb2NrcyA9IHNobWVtX2RlZmF1bHRfbWF4X2Jsb2NrcygpOworCQlpZiAoIShjdHgtPnNlZW4gJiBTSE1FTV9TRUVOX0lOT0RFUykpCisJCQljdHgtPmlub2RlcyA9IHNobWVtX2RlZmF1bHRfbWF4X2lub2RlcygpOwogCX0gZWxzZSB7CiAJCXNiLT5zX2ZsYWdzIHw9IFNCX05PVVNFUjsKIAl9CkBAIC0zNTg1LDExICszNjUwLDE4IEBAIGludCBzaG1lbV9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiAjZWxzZQogCXNiLT5zX2ZsYWdzIHw9IFNCX05PVVNFUjsKICNlbmRpZgorCXNiaW5mby0+bWF4X2Jsb2NrcyA9IGN0eC0+YmxvY2tzOworCXNiaW5mby0+ZnJlZV9pbm9kZXMgPSBzYmluZm8tPm1heF9pbm9kZXMgPSBjdHgtPmlub2RlczsKKwlzYmluZm8tPnVpZCA9IGN0eC0+dWlkOworCXNiaW5mby0+Z2lkID0gY3R4LT5naWQ7CisJc2JpbmZvLT5tb2RlID0gY3R4LT5tb2RlOworCXNiaW5mby0+aHVnZSA9IGN0eC0+aHVnZTsKKwlzYmluZm8tPm1wb2wgPSBjdHgtPm1wb2w7CisJY3R4LT5tcG9sID0gTlVMTDsKIAogCXNwaW5fbG9ja19pbml0KCZzYmluZm8tPnN0YXRfbG9jayk7CiAJaWYgKHBlcmNwdV9jb3VudGVyX2luaXQoJnNiaW5mby0+dXNlZF9ibG9ja3MsIDAsIEdGUF9LRVJORUwpKQogCQlnb3RvIGZhaWxlZDsKLQlzYmluZm8tPmZyZWVfaW5vZGVzID0gc2JpbmZvLT5tYXhfaW5vZGVzOwogCXNwaW5fbG9ja19pbml0KCZzYmluZm8tPnNocmlua2xpc3RfbG9jayk7CiAJSU5JVF9MSVNUX0hFQUQoJnNiaW5mby0+c2hyaW5rbGlzdCk7CiAKQEAgLTM2MjIsNiArMzY5NCwzMSBAQCBpbnQgc2htZW1fZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgc2htZW1fZ2V0X3RyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZjKQoreworCXJldHVybiBnZXRfdHJlZV9ub2RldihmYywgc2htZW1fZmlsbF9zdXBlcik7Cit9CisKK3N0YXRpYyB2b2lkIHNobWVtX2ZyZWVfZmMoc3RydWN0IGZzX2NvbnRleHQgKmZjKQoreworCXN0cnVjdCBzaG1lbV9vcHRpb25zICpjdHggPSBmYy0+ZnNfcHJpdmF0ZTsKKworCWlmIChjdHgpIHsKKwkJbXBvbF9wdXQoY3R4LT5tcG9sKTsKKwkJa2ZyZWUoY3R4KTsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnNfY29udGV4dF9vcGVyYXRpb25zIHNobWVtX2ZzX2NvbnRleHRfb3BzID0geworCS5mcmVlCQkJPSBzaG1lbV9mcmVlX2ZjLAorCS5nZXRfdHJlZQkJPSBzaG1lbV9nZXRfdHJlZSwKKyNpZmRlZiBDT05GSUdfVE1QRlMKKwkucGFyc2VfbW9ub2xpdGhpYwk9IHNobWVtX3BhcnNlX29wdGlvbnMsCisJLnBhcnNlX3BhcmFtCQk9IHNobWVtX3BhcnNlX29uZSwKKwkucmVjb25maWd1cmUJCT0gc2htZW1fcmVjb25maWd1cmUsCisjZW5kaWYKK307CisKIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqc2htZW1faW5vZGVfY2FjaGVwOwogCiBzdGF0aWMgc3RydWN0IGlub2RlICpzaG1lbV9hbGxvY19pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQpAQCAtMzczOCw3ICszODM1LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIHNobWVtX29wcyA9IHsKIAkuZGVzdHJveV9pbm9kZQk9IHNobWVtX2Rlc3Ryb3lfaW5vZGUsCiAjaWZkZWYgQ09ORklHX1RNUEZTCiAJLnN0YXRmcwkJPSBzaG1lbV9zdGF0ZnMsCi0JLnJlbW91bnRfZnMJPSBzaG1lbV9yZW1vdW50X2ZzLAogCS5zaG93X29wdGlvbnMJPSBzaG1lbV9zaG93X29wdGlvbnMsCiAjZW5kaWYKIAkuZXZpY3RfaW5vZGUJPSBzaG1lbV9ldmljdF9pbm9kZSwKQEAgLTM3NTksMTYgKzM4NTUsMzAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBzaG1lbV92bV9vcHMgPSB7CiAjZW5kaWYKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpzaG1lbV9tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKLQlpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKQoraW50IHNobWVtX2luaXRfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCiB7Ci0JcmV0dXJuIG1vdW50X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBzaG1lbV9maWxsX3N1cGVyKTsKKwlzdHJ1Y3Qgc2htZW1fb3B0aW9ucyAqY3R4OworCisJY3R4ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNobWVtX29wdGlvbnMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWN0eCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwljdHgtPm1vZGUgPSAwNzc3IHwgU19JU1ZUWDsKKwljdHgtPnVpZCA9IGN1cnJlbnRfZnN1aWQoKTsKKwljdHgtPmdpZCA9IGN1cnJlbnRfZnNnaWQoKTsKKworCWZjLT5mc19wcml2YXRlID0gY3R4OworCWZjLT5vcHMgPSAmc2htZW1fZnNfY29udGV4dF9vcHM7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBzaG1lbV9mc190eXBlID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkubmFtZQkJPSAidG1wZnMiLAotCS5tb3VudAkJPSBzaG1lbV9tb3VudCwKKwkuaW5pdF9mc19jb250ZXh0ID0gc2htZW1faW5pdF9mc19jb250ZXh0LAorI2lmZGVmIENPTkZJR19UTVBGUworCS5wYXJhbWV0ZXJzCT0gJnNobWVtX2ZzX3BhcmFtZXRlcnMsCisjZW5kaWYKIAkua2lsbF9zYgk9IGtpbGxfbGl0dGVyX3N1cGVyLAogCS5mc19mbGFncwk9IEZTX1VTRVJOU19NT1VOVCwKIH07CkBAIC0zOTEyLDcgKzQwMjIsOCBAQCBib29sIHNobWVtX2h1Z2VfZW5hYmxlZChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAogc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIHNobWVtX2ZzX3R5cGUgPSB7CiAJLm5hbWUJCT0gInRtcGZzIiwKLQkubW91bnQJCT0gcmFtZnNfbW91bnQsCisJLmluaXRfZnNfY29udGV4dCA9IHJhbWZzX2luaXRfZnNfY29udGV4dCwKKwkucGFyYW1ldGVycwk9ICZyYW1mc19mc19wYXJhbWV0ZXJzLAogCS5raWxsX3NiCT0ga2lsbF9saXR0ZXJfc3VwZXIsCiAJLmZzX2ZsYWdzCT0gRlNfVVNFUk5TX01PVU5ULAogfTsKZGlmZiAtLWdpdCBhL21tL3NsYWIuaCBiL21tL3NsYWIuaAppbmRleCA5MDU3YjgwLi42OGU0NTVmIDEwMDY0NAotLS0gYS9tbS9zbGFiLmgKKysrIGIvbW0vc2xhYi5oCkBAIC0zMCw2ICszMCw2OSBAQCBzdHJ1Y3Qga21lbV9jYWNoZSB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwkvKiBMaXN0IG9mIGFsbCBzbGFiIGNhY2hlcyBvbiB0aGUgc3lzdGVtICovCiB9OwogCisjZWxzZSAvKiAhQ09ORklHX1NMT0IgKi8KKworc3RydWN0IG1lbWNnX2NhY2hlX2FycmF5IHsKKwlzdHJ1Y3QgcmN1X2hlYWQgcmN1OworCXN0cnVjdCBrbWVtX2NhY2hlICplbnRyaWVzWzBdOworfTsKKworLyoKKyAqIFRoaXMgaXMgdGhlIG1haW4gcGxhY2Vob2xkZXIgZm9yIG1lbWNnLXJlbGF0ZWQgaW5mb3JtYXRpb24gaW4ga21lbSBjYWNoZXMuCisgKiBCb3RoIHRoZSByb290IGNhY2hlIGFuZCB0aGUgY2hpbGQgY2FjaGVzIHdpbGwgaGF2ZSBpdC4gRm9yIHRoZSByb290IGNhY2hlLAorICogdGhpcyB3aWxsIGhvbGQgYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgYXJyYXkgbGFyZ2UgZW5vdWdoIHRvIGhvbGQKKyAqIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50bHkgbGltaXRlZCBtZW1jZ3MgaW4gdGhlIHN5c3RlbS4gVG8gYWxsb3cgdGhlCisgKiBhcnJheSB0byBiZSBhY2Nlc3NlZCB3aXRob3V0IHRha2luZyBhbnkgbG9ja3MsIG9uIHJlbG9jYXRpb24gd2UgZnJlZSB0aGUgb2xkCisgKiB2ZXJzaW9uIG9ubHkgYWZ0ZXIgYSBncmFjZSBwZXJpb2QuCisgKgorICogUm9vdCBhbmQgY2hpbGQgY2FjaGVzIGhvbGQgZGlmZmVyZW50IG1ldGFkYXRhLgorICoKKyAqIEByb290X2NhY2hlOglDb21tb24gdG8gcm9vdCBhbmQgY2hpbGQgY2FjaGVzLiAgTlVMTCBmb3Igcm9vdCwgcG9pbnRlciB0bworICoJCXRoZSByb290IGNhY2hlIGZvciBjaGlsZHJlbi4KKyAqCisgKiBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgc3BlY2lmaWMgdG8gcm9vdCBjYWNoZXMuCisgKgorICogQG1lbWNnX2NhY2hlczoga21lbWNnIElEIGluZGV4ZWQgdGFibGUgb2YgY2hpbGQgY2FjaGVzLiAgVGhpcyB0YWJsZSBpcworICoJCXVzZWQgdG8gaW5kZXggY2hpbGQgY2FjaGNlcyBkdXJpbmcgYWxsb2NhdGlvbiBhbmQgY2xlYXJlZAorICoJCWVhcmx5IGR1cmluZyBzaHV0ZG93bi4KKyAqCisgKiBAcm9vdF9jYWNoZXNfbm9kZTogTGlzdCBub2RlIGZvciBzbGFiX3Jvb3RfY2FjaGVzIGxpc3QuCisgKgorICogQGNoaWxkcmVuOglMaXN0IG9mIGFsbCBjaGlsZCBjYWNoZXMuICBXaGlsZSB0aGUgY2hpbGQgY2FjaGVzIGFyZSBhbHNvCisgKgkJcmVhY2hhYmxlIHRocm91Z2ggQG1lbWNnX2NhY2hlcywgYSBjaGlsZCBjYWNoZSByZW1haW5zIG9uCisgKgkJdGhpcyBsaXN0IHVudGlsIGl0IGlzIGFjdHVhbGx5IGRlc3Ryb3llZC4KKyAqCisgKiBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgc3BlY2lmaWMgdG8gY2hpbGQgY2FjaGVzLgorICoKKyAqIEBtZW1jZzoJUG9pbnRlciB0byB0aGUgbWVtY2cgdGhpcyBjYWNoZSBiZWxvbmdzIHRvLgorICoKKyAqIEBjaGlsZHJlbl9ub2RlOiBMaXN0IG5vZGUgZm9yIEByb290X2NhY2hlLT5jaGlsZHJlbiBsaXN0LgorICoKKyAqIEBrbWVtX2NhY2hlc19ub2RlOiBMaXN0IG5vZGUgZm9yIEBtZW1jZy0+a21lbV9jYWNoZXMgbGlzdC4KKyAqLworc3RydWN0IG1lbWNnX2NhY2hlX3BhcmFtcyB7CisJc3RydWN0IGttZW1fY2FjaGUgKnJvb3RfY2FjaGU7CisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJc3RydWN0IG1lbWNnX2NhY2hlX2FycmF5IF9fcmN1ICptZW1jZ19jYWNoZXM7CisJCQlzdHJ1Y3QgbGlzdF9oZWFkIF9fcm9vdF9jYWNoZXNfbm9kZTsKKwkJCXN0cnVjdCBsaXN0X2hlYWQgY2hpbGRyZW47CisJCQlib29sIGR5aW5nOworCQl9OworCQlzdHJ1Y3QgeworCQkJc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnOworCQkJc3RydWN0IGxpc3RfaGVhZCBjaGlsZHJlbl9ub2RlOworCQkJc3RydWN0IGxpc3RfaGVhZCBrbWVtX2NhY2hlc19ub2RlOworCQkJc3RydWN0IHBlcmNwdV9yZWYgcmVmY250OworCisJCQl2b2lkICgqd29ya19mbikoc3RydWN0IGttZW1fY2FjaGUgKik7CisJCQl1bmlvbiB7CisJCQkJc3RydWN0IHJjdV9oZWFkIHJjdV9oZWFkOworCQkJCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOworCQkJfTsKKwkJfTsKKwl9OworfTsKICNlbmRpZiAvKiBDT05GSUdfU0xPQiAqLwogCiAjaWZkZWYgQ09ORklHX1NMQUIKQEAgLTE3NCw2ICsyMzcsNyBAQCBpbnQgX19rbWVtX2NhY2hlX3NocmluayhzdHJ1Y3Qga21lbV9jYWNoZSAqKTsKIHZvaWQgX19rbWVtY2dfY2FjaGVfZGVhY3RpdmF0ZShzdHJ1Y3Qga21lbV9jYWNoZSAqcyk7CiB2b2lkIF9fa21lbWNnX2NhY2hlX2RlYWN0aXZhdGVfYWZ0ZXJfcmN1KHN0cnVjdCBrbWVtX2NhY2hlICpzKTsKIHZvaWQgc2xhYl9rbWVtX2NhY2hlX3JlbGVhc2Uoc3RydWN0IGttZW1fY2FjaGUgKik7Cit2b2lkIGttZW1fY2FjaGVfc2hyaW5rX2FsbChzdHJ1Y3Qga21lbV9jYWNoZSAqcyk7CiAKIHN0cnVjdCBzZXFfZmlsZTsKIHN0cnVjdCBmaWxlOwpkaWZmIC0tZ2l0IGEvbW0vc2xhYl9jb21tb24uYyBiL21tL3NsYWJfY29tbW9uLmMKaW5kZXggODA3NDkwZi4uNjQ5MWMzYSAxMDA2NDQKLS0tIGEvbW0vc2xhYl9jb21tb24uYworKysgYi9tbS9zbGFiX2NvbW1vbi5jCkBAIC05ODEsNiArOTgxLDQzIEBAIGludCBrbWVtX2NhY2hlX3NocmluayhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGVwKQogfQogRVhQT1JUX1NZTUJPTChrbWVtX2NhY2hlX3Nocmluayk7CiAKKy8qKgorICoga21lbV9jYWNoZV9zaHJpbmtfYWxsIC0gc2hyaW5rIGEgY2FjaGUgYW5kIGFsbCBtZW1jZyBjYWNoZXMgZm9yIHJvb3QgY2FjaGUKKyAqIEBzOiBUaGUgY2FjaGUgcG9pbnRlcgorICovCit2b2lkIGttZW1fY2FjaGVfc2hyaW5rX2FsbChzdHJ1Y3Qga21lbV9jYWNoZSAqcykKK3sKKwlzdHJ1Y3Qga21lbV9jYWNoZSAqYzsKKworCWlmICghSVNfRU5BQkxFRChDT05GSUdfTUVNQ0dfS01FTSkgfHwgIWlzX3Jvb3RfY2FjaGUocykpIHsKKwkJa21lbV9jYWNoZV9zaHJpbmsocyk7CisJCXJldHVybjsKKwl9CisKKwlnZXRfb25saW5lX2NwdXMoKTsKKwlnZXRfb25saW5lX21lbXMoKTsKKwlrYXNhbl9jYWNoZV9zaHJpbmsocyk7CisJX19rbWVtX2NhY2hlX3NocmluayhzKTsKKworCS8qCisJICogV2UgaGF2ZSB0byB0YWtlIHRoZSBzbGFiX211dGV4IHRvIHByb3RlY3QgZnJvbSB0aGUgbWVtY2cgbGlzdAorCSAqIG1vZGlmaWNhdGlvbi4KKwkgKi8KKwltdXRleF9sb2NrKCZzbGFiX211dGV4KTsKKwlmb3JfZWFjaF9tZW1jZ19jYWNoZShjLCBzKSB7CisJCS8qCisJCSAqIERvbid0IG5lZWQgdG8gc2hyaW5rIGRlYWN0aXZhdGVkIG1lbWNnIGNhY2hlcy4KKwkJICovCisJCWlmIChzLT5mbGFncyAmIFNMQUJfREVBQ1RJVkFURUQpCisJCQljb250aW51ZTsKKwkJa2FzYW5fY2FjaGVfc2hyaW5rKGMpOworCQlfX2ttZW1fY2FjaGVfc2hyaW5rKGMpOworCX0KKwltdXRleF91bmxvY2soJnNsYWJfbXV0ZXgpOworCXB1dF9vbmxpbmVfbWVtcygpOworCXB1dF9vbmxpbmVfY3B1cygpOworfQorCiBib29sIHNsYWJfaXNfYXZhaWxhYmxlKHZvaWQpCiB7CiAJcmV0dXJuIHNsYWJfc3RhdGUgPj0gVVA7CmRpZmYgLS1naXQgYS9tbS9zbG9iLmMgYi9tbS9zbG9iLmMKaW5kZXggN2Y0MjFkMC4uY2YzNzdiZSAxMDA2NDQKLS0tIGEvbW0vc2xvYi5jCisrKyBiL21tL3Nsb2IuYwpAQCAtNTM5LDcgKzUzOSw3IEBAIHNpemVfdCBfX2tzaXplKGNvbnN0IHZvaWQgKmJsb2NrKQogCiAJc3AgPSB2aXJ0X3RvX3BhZ2UoYmxvY2spOwogCWlmICh1bmxpa2VseSghUGFnZVNsYWIoc3ApKSkKLQkJcmV0dXJuIFBBR0VfU0laRSA8PCBjb21wb3VuZF9vcmRlcihzcCk7CisJCXJldHVybiBwYWdlX3NpemUoc3ApOwogCiAJYWxpZ24gPSBtYXhfdChzaXplX3QsIEFSQ0hfS01BTExPQ19NSU5BTElHTiwgQVJDSF9TTEFCX01JTkFMSUdOKTsKIAltID0gKHVuc2lnbmVkIGludCAqKShibG9jayAtIGFsaWduKTsKZGlmZiAtLWdpdCBhL21tL3NsdWIuYyBiL21tL3NsdWIuYwppbmRleCA4ODM0NTYzLi40MmMxYjNhIDEwMDY0NAotLS0gYS9tbS9zbHViLmMKKysrIGIvbW0vc2x1Yi5jCkBAIC04MjksNyArODI5LDcgQEAgc3RhdGljIGludCBzbGFiX3BhZF9jaGVjayhzdHJ1Y3Qga21lbV9jYWNoZSAqcywgc3RydWN0IHBhZ2UgKnBhZ2UpCiAJCXJldHVybiAxOwogCiAJc3RhcnQgPSBwYWdlX2FkZHJlc3MocGFnZSk7Ci0JbGVuZ3RoID0gUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpOworCWxlbmd0aCA9IHBhZ2Vfc2l6ZShwYWdlKTsKIAllbmQgPSBzdGFydCArIGxlbmd0aDsKIAlyZW1haW5kZXIgPSBsZW5ndGggJSBzLT5zaXplOwogCWlmICghcmVtYWluZGVyKQpAQCAtMTA3NCwxMyArMTA3NCwxNCBAQCBzdGF0aWMgdm9pZCBzZXR1cF9vYmplY3RfZGVidWcoc3RydWN0IGttZW1fY2FjaGUgKnMsIHN0cnVjdCBwYWdlICpwYWdlLAogCWluaXRfdHJhY2tpbmcocywgb2JqZWN0KTsKIH0KIAotc3RhdGljIHZvaWQgc2V0dXBfcGFnZV9kZWJ1ZyhzdHJ1Y3Qga21lbV9jYWNoZSAqcywgdm9pZCAqYWRkciwgaW50IG9yZGVyKQorc3RhdGljCit2b2lkIHNldHVwX3BhZ2VfZGVidWcoc3RydWN0IGttZW1fY2FjaGUgKnMsIHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICphZGRyKQogewogCWlmICghKHMtPmZsYWdzICYgU0xBQl9QT0lTT04pKQogCQlyZXR1cm47CiAKIAltZXRhZGF0YV9hY2Nlc3NfZW5hYmxlKCk7Ci0JbWVtc2V0KGFkZHIsIFBPSVNPTl9JTlVTRSwgUEFHRV9TSVpFIDw8IG9yZGVyKTsKKwltZW1zZXQoYWRkciwgUE9JU09OX0lOVVNFLCBwYWdlX3NpemUocGFnZSkpOwogCW1ldGFkYXRhX2FjY2Vzc19kaXNhYmxlKCk7CiB9CiAKQEAgLTEzNDAsOCArMTM0MSw4IEBAIHNsYWJfZmxhZ3NfdCBrbWVtX2NhY2hlX2ZsYWdzKHVuc2lnbmVkIGludCBvYmplY3Rfc2l6ZSwKICNlbHNlIC8qICFDT05GSUdfU0xVQl9ERUJVRyAqLwogc3RhdGljIGlubGluZSB2b2lkIHNldHVwX29iamVjdF9kZWJ1ZyhzdHJ1Y3Qga21lbV9jYWNoZSAqcywKIAkJCXN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpvYmplY3QpIHt9Ci1zdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfcGFnZV9kZWJ1ZyhzdHJ1Y3Qga21lbV9jYWNoZSAqcywKLQkJCXZvaWQgKmFkZHIsIGludCBvcmRlcikge30KK3N0YXRpYyBpbmxpbmUKK3ZvaWQgc2V0dXBfcGFnZV9kZWJ1ZyhzdHJ1Y3Qga21lbV9jYWNoZSAqcywgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmFkZHIpIHt9CiAKIHN0YXRpYyBpbmxpbmUgaW50IGFsbG9jX2RlYnVnX3Byb2Nlc3Npbmcoc3RydWN0IGttZW1fY2FjaGUgKnMsCiAJc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKm9iamVjdCwgdW5zaWduZWQgbG9uZyBhZGRyKSB7IHJldHVybiAwOyB9CkBAIC0xNjM5LDcgKzE2NDAsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKmFsbG9jYXRlX3NsYWIoc3RydWN0IGttZW1fY2FjaGUgKnMsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKIAlzdHJ1Y3Qga21lbV9jYWNoZV9vcmRlcl9vYmplY3RzIG9vID0gcy0+b287CiAJZ2ZwX3QgYWxsb2NfZ2ZwOwogCXZvaWQgKnN0YXJ0LCAqcCwgKm5leHQ7Ci0JaW50IGlkeCwgb3JkZXI7CisJaW50IGlkeDsKIAlib29sIHNodWZmbGU7CiAKIAlmbGFncyAmPSBnZnBfYWxsb3dlZF9tYXNrOwpAQCAtMTY3Myw3ICsxNjc0LDYgQEAgc3RhdGljIHN0cnVjdCBwYWdlICphbGxvY2F0ZV9zbGFiKHN0cnVjdCBrbWVtX2NhY2hlICpzLCBnZnBfdCBmbGFncywgaW50IG5vZGUpCiAKIAlwYWdlLT5vYmplY3RzID0gb29fb2JqZWN0cyhvbyk7CiAKLQlvcmRlciA9IGNvbXBvdW5kX29yZGVyKHBhZ2UpOwogCXBhZ2UtPnNsYWJfY2FjaGUgPSBzOwogCV9fU2V0UGFnZVNsYWIocGFnZSk7CiAJaWYgKHBhZ2VfaXNfcGZtZW1hbGxvYyhwYWdlKSkKQEAgLTE2ODMsNyArMTY4Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqYWxsb2NhdGVfc2xhYihzdHJ1Y3Qga21lbV9jYWNoZSAqcywgZ2ZwX3QgZmxhZ3MsIGludCBub2RlKQogCiAJc3RhcnQgPSBwYWdlX2FkZHJlc3MocGFnZSk7CiAKLQlzZXR1cF9wYWdlX2RlYnVnKHMsIHN0YXJ0LCBvcmRlcik7CisJc2V0dXBfcGFnZV9kZWJ1ZyhzLCBwYWdlLCBzdGFydCk7CiAKIAlzaHVmZmxlID0gc2h1ZmZsZV9mcmVlbGlzdChzLCBwYWdlKTsKIApAQCAtMjAwNCw2ICsyMDA0LDcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIG5leHRfdGlkKHVuc2lnbmVkIGxvbmcgdGlkKQogCXJldHVybiB0aWQgKyBUSURfU1RFUDsKIH0KIAorI2lmZGVmIFNMVUJfREVCVUdfQ01QWENIRwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdGlkX3RvX2NwdSh1bnNpZ25lZCBsb25nIHRpZCkKIHsKIAlyZXR1cm4gdGlkICUgVElEX1NURVA7CkBAIC0yMDEzLDYgKzIwMTQsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGlkX3RvX2V2ZW50KHVuc2lnbmVkIGxvbmcgdGlkKQogewogCXJldHVybiB0aWQgLyBUSURfU1RFUDsKIH0KKyNlbmRpZgogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBpbml0X3RpZChpbnQgY3B1KQogewpAQCAtMzkzMCw3ICszOTMyLDcgQEAgc2l6ZV90IF9fa3NpemUoY29uc3Qgdm9pZCAqb2JqZWN0KQogCiAJaWYgKHVubGlrZWx5KCFQYWdlU2xhYihwYWdlKSkpIHsKIAkJV0FSTl9PTighUGFnZUNvbXBvdW5kKHBhZ2UpKTsKLQkJcmV0dXJuIFBBR0VfU0laRSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKTsKKwkJcmV0dXJuIHBhZ2Vfc2l6ZShwYWdlKTsKIAl9CiAKIAlyZXR1cm4gc2xhYl9rc2l6ZShwYWdlLT5zbGFiX2NhY2hlKTsKQEAgLTUyOTgsNyArNTMwMCw3IEBAIHN0YXRpYyBzc2l6ZV90IHNocmlua19zdG9yZShzdHJ1Y3Qga21lbV9jYWNoZSAqcywKIAkJCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbmd0aCkKIHsKIAlpZiAoYnVmWzBdID09ICcxJykKLQkJa21lbV9jYWNoZV9zaHJpbmsocyk7CisJCWttZW1fY2FjaGVfc2hyaW5rX2FsbChzKTsKIAllbHNlCiAJCXJldHVybiAtRUlOVkFMOwogCXJldHVybiBsZW5ndGg7CmRpZmYgLS1naXQgYS9tbS9zcGFyc2UuYyBiL21tL3NwYXJzZS5jCmluZGV4IDcyZjAxMGQuLmJmMzJkZTkgMTAwNjQ0Ci0tLSBhL21tL3NwYXJzZS5jCisrKyBiL21tL3NwYXJzZS5jCkBAIC0xMSw2ICsxMSw4IEBACiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvc3dhcC5oPgorI2luY2x1ZGUgPGxpbnV4L3N3YXBvcHMuaD4KIAogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5jbHVkZSA8YXNtL2RtYS5oPgpAQCAtNDcwLDYgKzQ3MiwxMiBAQCBzdHJ1Y3QgcGFnZSBfX2luaXQgKl9fcG9wdWxhdGVfc2VjdGlvbl9tZW1tYXAodW5zaWduZWQgbG9uZyBwZm4sCiBzdGF0aWMgdm9pZCAqc3BhcnNlbWFwX2J1ZiBfX21lbWluaXRkYXRhOwogc3RhdGljIHZvaWQgKnNwYXJzZW1hcF9idWZfZW5kIF9fbWVtaW5pdGRhdGE7CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX21lbWluaXQgc3BhcnNlX2J1ZmZlcl9mcmVlKHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3sKKwlXQVJOX09OKCFzcGFyc2VtYXBfYnVmIHx8IHNpemUgPT0gMCk7CisJbWVtYmxvY2tfZnJlZV9lYXJseShfX3BhKHNwYXJzZW1hcF9idWYpLCBzaXplKTsKK30KKwogc3RhdGljIHZvaWQgX19pbml0IHNwYXJzZV9idWZmZXJfaW5pdCh1bnNpZ25lZCBsb25nIHNpemUsIGludCBuaWQpCiB7CiAJcGh5c19hZGRyX3QgYWRkciA9IF9fcGEoTUFYX0RNQV9BRERSRVNTKTsKQEAgLTQ4Niw3ICs0OTQsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgc3BhcnNlX2J1ZmZlcl9maW5pKHZvaWQpCiAJdW5zaWduZWQgbG9uZyBzaXplID0gc3BhcnNlbWFwX2J1Zl9lbmQgLSBzcGFyc2VtYXBfYnVmOwogCiAJaWYgKHNwYXJzZW1hcF9idWYgJiYgc2l6ZSA+IDApCi0JCW1lbWJsb2NrX2ZyZWVfZWFybHkoX19wYShzcGFyc2VtYXBfYnVmKSwgc2l6ZSk7CisJCXNwYXJzZV9idWZmZXJfZnJlZShzaXplKTsKIAlzcGFyc2VtYXBfYnVmID0gTlVMTDsKIH0KIApAQCAtNDk1LDExICs1MDMsMTUgQEAgdm9pZCAqIF9fbWVtaW5pdCBzcGFyc2VfYnVmZmVyX2FsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSkKIAl2b2lkICpwdHIgPSBOVUxMOwogCiAJaWYgKHNwYXJzZW1hcF9idWYpIHsKLQkJcHRyID0gUFRSX0FMSUdOKHNwYXJzZW1hcF9idWYsIHNpemUpOworCQlwdHIgPSAodm9pZCAqKSByb3VuZHVwKCh1bnNpZ25lZCBsb25nKXNwYXJzZW1hcF9idWYsIHNpemUpOwogCQlpZiAocHRyICsgc2l6ZSA+IHNwYXJzZW1hcF9idWZfZW5kKQogCQkJcHRyID0gTlVMTDsKLQkJZWxzZQorCQllbHNlIHsKKwkJCS8qIEZyZWUgcmVkdW5kYW50IGFsaWduZWQgc3BhY2UgKi8KKwkJCWlmICgodW5zaWduZWQgbG9uZykocHRyIC0gc3BhcnNlbWFwX2J1ZikgPiAwKQorCQkJCXNwYXJzZV9idWZmZXJfZnJlZSgodW5zaWduZWQgbG9uZykocHRyIC0gc3BhcnNlbWFwX2J1ZikpOwogCQkJc3BhcnNlbWFwX2J1ZiA9IHB0ciArIHNpemU7CisJCX0KIAl9CiAJcmV0dXJuIHB0cjsKIH0KQEAgLTg2Nyw3ICs4NzksNyBAQCBpbnQgX19tZW1pbml0IHNwYXJzZV9hZGRfc2VjdGlvbihpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKIAkgKi8KIAlwYWdlX2luaXRfcG9pc29uKHBmbl90b19wYWdlKHN0YXJ0X3BmbiksIHNpemVvZihzdHJ1Y3QgcGFnZSkgKiBucl9wYWdlcyk7CiAKLQltcyA9IF9fcGZuX3RvX3NlY3Rpb24oc3RhcnRfcGZuKTsKKwltcyA9IF9fbnJfdG9fc2VjdGlvbihzZWN0aW9uX25yKTsKIAlzZXRfc2VjdGlvbl9uaWQoc2VjdGlvbl9uciwgbmlkKTsKIAlzZWN0aW9uX21hcmtfcHJlc2VudChtcyk7CiAKQEAgLTg4NCw5ICs4OTYsNiBAQCBzdGF0aWMgdm9pZCBjbGVhcl9od3BvaXNvbmVkX3BhZ2VzKHN0cnVjdCBwYWdlICptZW1tYXAsIGludCBucl9wYWdlcykKIHsKIAlpbnQgaTsKIAotCWlmICghbWVtbWFwKQotCQlyZXR1cm47Ci0KIAkvKgogCSAqIEEgZnVydGhlciBvcHRpbWl6YXRpb24gaXMgdG8gaGF2ZSBwZXIgc2VjdGlvbiByZWZjb3VudGVkCiAJICogbnVtX3BvaXNvbmVkX3BhZ2VzLiAgQnV0IHRoYXQgd291bGQgbmVlZCBtb3JlIHNwYWNlIHBlciBtZW1tYXAsIHNvCkBAIC04OTgsNyArOTA3LDcgQEAgc3RhdGljIHZvaWQgY2xlYXJfaHdwb2lzb25lZF9wYWdlcyhzdHJ1Y3QgcGFnZSAqbWVtbWFwLCBpbnQgbnJfcGFnZXMpCiAKIAlmb3IgKGkgPSAwOyBpIDwgbnJfcGFnZXM7IGkrKykgewogCQlpZiAoUGFnZUhXUG9pc29uKCZtZW1tYXBbaV0pKSB7Ci0JCQlhdG9taWNfbG9uZ19zdWIoMSwgJm51bV9wb2lzb25lZF9wYWdlcyk7CisJCQludW1fcG9pc29uZWRfcGFnZXNfZGVjKCk7CiAJCQlDbGVhclBhZ2VIV1BvaXNvbigmbWVtbWFwW2ldKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL21tL3N3YXAuYyBiL21tL3N3YXAuYwppbmRleCBhZTMwMDM5Li4zOGMzZmE0IDEwMDY0NAotLS0gYS9tbS9zd2FwLmMKKysrIGIvbW0vc3dhcC5jCkBAIC00Nyw2ICs0Nyw3IEBAIGludCBwYWdlX2NsdXN0ZXI7CiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHBhZ2V2ZWMsIGxydV9hZGRfcHZlYyk7CiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHBhZ2V2ZWMsIGxydV9yb3RhdGVfcHZlY3MpOwogc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBwYWdldmVjLCBscnVfZGVhY3RpdmF0ZV9maWxlX3B2ZWNzKTsKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgcGFnZXZlYywgbHJ1X2RlYWN0aXZhdGVfcHZlY3MpOwogc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBwYWdldmVjLCBscnVfbGF6eWZyZWVfcHZlY3MpOwogI2lmZGVmIENPTkZJR19TTVAKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgcGFnZXZlYywgYWN0aXZhdGVfcGFnZV9wdmVjcyk7CkBAIC03MSwxMiArNzIsMTIgQEAgc3RhdGljIHZvaWQgX19wYWdlX2NhY2hlX3JlbGVhc2Uoc3RydWN0IHBhZ2UgKnBhZ2UpCiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZGF0LT5scnVfbG9jaywgZmxhZ3MpOwogCX0KIAlfX0NsZWFyUGFnZVdhaXRlcnMocGFnZSk7Ci0JbWVtX2Nncm91cF91bmNoYXJnZShwYWdlKTsKIH0KIAogc3RhdGljIHZvaWQgX19wdXRfc2luZ2xlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpCiB7CiAJX19wYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CisJbWVtX2Nncm91cF91bmNoYXJnZShwYWdlKTsKIAlmcmVlX3VucmVmX3BhZ2UocGFnZSk7CiB9CiAKQEAgLTUxNSw3ICs1MTYsNiBAQCBzdGF0aWMgdm9pZCBscnVfZGVhY3RpdmF0ZV9maWxlX2ZuKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMsCiAJZGVsX3BhZ2VfZnJvbV9scnVfbGlzdChwYWdlLCBscnV2ZWMsIGxydSArIGFjdGl2ZSk7CiAJQ2xlYXJQYWdlQWN0aXZlKHBhZ2UpOwogCUNsZWFyUGFnZVJlZmVyZW5jZWQocGFnZSk7Ci0JYWRkX3BhZ2VfdG9fbHJ1X2xpc3QocGFnZSwgbHJ1dmVjLCBscnUpOwogCiAJaWYgKFBhZ2VXcml0ZWJhY2socGFnZSkgfHwgUGFnZURpcnR5KHBhZ2UpKSB7CiAJCS8qCkBAIC01MjMsMTMgKzUyMywxNCBAQCBzdGF0aWMgdm9pZCBscnVfZGVhY3RpdmF0ZV9maWxlX2ZuKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMsCiAJCSAqIEl0IGNhbiBtYWtlIHJlYWRhaGVhZCBjb25mdXNpbmcuICBCdXQgcmFjZSB3aW5kb3cKIAkJICogaXMgX3JlYWxseV8gc21hbGwgYW5kICBpdCdzIG5vbi1jcml0aWNhbCBwcm9ibGVtLgogCQkgKi8KKwkJYWRkX3BhZ2VfdG9fbHJ1X2xpc3QocGFnZSwgbHJ1dmVjLCBscnUpOwogCQlTZXRQYWdlUmVjbGFpbShwYWdlKTsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBUaGUgcGFnZSdzIHdyaXRlYmFjayBlbmRzIHVwIGR1cmluZyBwYWdldmVjCiAJCSAqIFdlIG1vdmVzIHRoYSBwYWdlIGludG8gdGFpbCBvZiBpbmFjdGl2ZS4KIAkJICovCi0JCWxpc3RfbW92ZV90YWlsKCZwYWdlLT5scnUsICZscnV2ZWMtPmxpc3RzW2xydV0pOworCQlhZGRfcGFnZV90b19scnVfbGlzdF90YWlsKHBhZ2UsIGxydXZlYywgbHJ1KTsKIAkJX19jb3VudF92bV9ldmVudChQR1JPVEFURUQpOwogCX0KIApAQCAtNTM4LDYgKzUzOSwyMiBAQCBzdGF0aWMgdm9pZCBscnVfZGVhY3RpdmF0ZV9maWxlX2ZuKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMsCiAJdXBkYXRlX3BhZ2VfcmVjbGFpbV9zdGF0KGxydXZlYywgZmlsZSwgMCk7CiB9CiAKK3N0YXRpYyB2b2lkIGxydV9kZWFjdGl2YXRlX2ZuKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMsCisJCQkgICAgdm9pZCAqYXJnKQoreworCWlmIChQYWdlTFJVKHBhZ2UpICYmIFBhZ2VBY3RpdmUocGFnZSkgJiYgIVBhZ2VVbmV2aWN0YWJsZShwYWdlKSkgeworCQlpbnQgZmlsZSA9IHBhZ2VfaXNfZmlsZV9jYWNoZShwYWdlKTsKKwkJaW50IGxydSA9IHBhZ2VfbHJ1X2Jhc2VfdHlwZShwYWdlKTsKKworCQlkZWxfcGFnZV9mcm9tX2xydV9saXN0KHBhZ2UsIGxydXZlYywgbHJ1ICsgTFJVX0FDVElWRSk7CisJCUNsZWFyUGFnZUFjdGl2ZShwYWdlKTsKKwkJQ2xlYXJQYWdlUmVmZXJlbmNlZChwYWdlKTsKKwkJYWRkX3BhZ2VfdG9fbHJ1X2xpc3QocGFnZSwgbHJ1dmVjLCBscnUpOworCisJCV9fY291bnRfdm1fZXZlbnRzKFBHREVBQ1RJVkFURSwgaHBhZ2VfbnJfcGFnZXMocGFnZSkpOworCQl1cGRhdGVfcGFnZV9yZWNsYWltX3N0YXQobHJ1dmVjLCBmaWxlLCAwKTsKKwl9Cit9CiAKIHN0YXRpYyB2b2lkIGxydV9sYXp5ZnJlZV9mbihzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGxydXZlYyAqbHJ1dmVjLAogCQkJICAgIHZvaWQgKmFyZykKQEAgLTU5MCw2ICs2MDcsMTAgQEAgdm9pZCBscnVfYWRkX2RyYWluX2NwdShpbnQgY3B1KQogCWlmIChwYWdldmVjX2NvdW50KHB2ZWMpKQogCQlwYWdldmVjX2xydV9tb3ZlX2ZuKHB2ZWMsIGxydV9kZWFjdGl2YXRlX2ZpbGVfZm4sIE5VTEwpOwogCisJcHZlYyA9ICZwZXJfY3B1KGxydV9kZWFjdGl2YXRlX3B2ZWNzLCBjcHUpOworCWlmIChwYWdldmVjX2NvdW50KHB2ZWMpKQorCQlwYWdldmVjX2xydV9tb3ZlX2ZuKHB2ZWMsIGxydV9kZWFjdGl2YXRlX2ZuLCBOVUxMKTsKKwogCXB2ZWMgPSAmcGVyX2NwdShscnVfbGF6eWZyZWVfcHZlY3MsIGNwdSk7CiAJaWYgKHBhZ2V2ZWNfY291bnQocHZlYykpCiAJCXBhZ2V2ZWNfbHJ1X21vdmVfZm4ocHZlYywgbHJ1X2xhenlmcmVlX2ZuLCBOVUxMKTsKQEAgLTYyMyw2ICs2NDQsMjYgQEAgdm9pZCBkZWFjdGl2YXRlX2ZpbGVfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkKIAl9CiB9CiAKKy8qCisgKiBkZWFjdGl2YXRlX3BhZ2UgLSBkZWFjdGl2YXRlIGEgcGFnZQorICogQHBhZ2U6IHBhZ2UgdG8gZGVhY3RpdmF0ZQorICoKKyAqIGRlYWN0aXZhdGVfcGFnZSgpIG1vdmVzIEBwYWdlIHRvIHRoZSBpbmFjdGl2ZSBsaXN0IGlmIEBwYWdlIHdhcyBvbiB0aGUgYWN0aXZlCisgKiBsaXN0IGFuZCB3YXMgbm90IGFuIHVuZXZpY3RhYmxlIHBhZ2UuICBUaGlzIGlzIGRvbmUgdG8gYWNjZWxlcmF0ZSB0aGUgcmVjbGFpbQorICogb2YgQHBhZ2UuCisgKi8KK3ZvaWQgZGVhY3RpdmF0ZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKQoreworCWlmIChQYWdlTFJVKHBhZ2UpICYmIFBhZ2VBY3RpdmUocGFnZSkgJiYgIVBhZ2VVbmV2aWN0YWJsZShwYWdlKSkgeworCQlzdHJ1Y3QgcGFnZXZlYyAqcHZlYyA9ICZnZXRfY3B1X3ZhcihscnVfZGVhY3RpdmF0ZV9wdmVjcyk7CisKKwkJZ2V0X3BhZ2UocGFnZSk7CisJCWlmICghcGFnZXZlY19hZGQocHZlYywgcGFnZSkgfHwgUGFnZUNvbXBvdW5kKHBhZ2UpKQorCQkJcGFnZXZlY19scnVfbW92ZV9mbihwdmVjLCBscnVfZGVhY3RpdmF0ZV9mbiwgTlVMTCk7CisJCXB1dF9jcHVfdmFyKGxydV9kZWFjdGl2YXRlX3B2ZWNzKTsKKwl9Cit9CisKIC8qKgogICogbWFya19wYWdlX2xhenlmcmVlIC0gbWFrZSBhbiBhbm9uIHBhZ2UgbGF6eWZyZWUKICAqIEBwYWdlOiBwYWdlIHRvIGRlYWN0aXZhdGUKQEAgLTY4Nyw2ICs3MjgsNyBAQCB2b2lkIGxydV9hZGRfZHJhaW5fYWxsKHZvaWQpCiAJCWlmIChwYWdldmVjX2NvdW50KCZwZXJfY3B1KGxydV9hZGRfcHZlYywgY3B1KSkgfHwKIAkJICAgIHBhZ2V2ZWNfY291bnQoJnBlcl9jcHUobHJ1X3JvdGF0ZV9wdmVjcywgY3B1KSkgfHwKIAkJICAgIHBhZ2V2ZWNfY291bnQoJnBlcl9jcHUobHJ1X2RlYWN0aXZhdGVfZmlsZV9wdmVjcywgY3B1KSkgfHwKKwkJICAgIHBhZ2V2ZWNfY291bnQoJnBlcl9jcHUobHJ1X2RlYWN0aXZhdGVfcHZlY3MsIGNwdSkpIHx8CiAJCSAgICBwYWdldmVjX2NvdW50KCZwZXJfY3B1KGxydV9sYXp5ZnJlZV9wdmVjcywgY3B1KSkgfHwKIAkJICAgIG5lZWRfYWN0aXZhdGVfcGFnZV9kcmFpbihjcHUpKSB7CiAJCQlJTklUX1dPUksod29yaywgbHJ1X2FkZF9kcmFpbl9wZXJfY3B1KTsKQEAgLTg0NCwxNyArODg2LDE1IEBAIHZvaWQgbHJ1X2FkZF9wYWdlX3RhaWwoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBwYWdlICpwYWdlX3RhaWwsCiAJCWdldF9wYWdlKHBhZ2VfdGFpbCk7CiAJCWxpc3RfYWRkX3RhaWwoJnBhZ2VfdGFpbC0+bHJ1LCBsaXN0KTsKIAl9IGVsc2UgewotCQlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0X2hlYWQ7CiAJCS8qCiAJCSAqIEhlYWQgcGFnZSBoYXMgbm90IHlldCBiZWVuIGNvdW50ZWQsIGFzIGFuIGhwYWdlLAogCQkgKiBzbyB3ZSBtdXN0IGFjY291bnQgZm9yIGVhY2ggc3VicGFnZSBpbmRpdmlkdWFsbHkuCiAJCSAqCi0JCSAqIFVzZSB0aGUgc3RhbmRhcmQgYWRkIGZ1bmN0aW9uIHRvIHB1dCBwYWdlX3RhaWwgb24gdGhlIGxpc3QsCi0JCSAqIGJ1dCB0aGVuIGNvcnJlY3QgaXRzIHBvc2l0aW9uIHNvIHRoZXkgYWxsIGVuZCB1cCBpbiBvcmRlci4KKwkJICogUHV0IHBhZ2VfdGFpbCBvbiB0aGUgbGlzdCBhdCB0aGUgY29ycmVjdCBwb3NpdGlvbgorCQkgKiBzbyB0aGV5IGFsbCBlbmQgdXAgaW4gb3JkZXIuCiAJCSAqLwotCQlhZGRfcGFnZV90b19scnVfbGlzdChwYWdlX3RhaWwsIGxydXZlYywgcGFnZV9scnUocGFnZV90YWlsKSk7Ci0JCWxpc3RfaGVhZCA9IHBhZ2VfdGFpbC0+bHJ1LnByZXY7Ci0JCWxpc3RfbW92ZV90YWlsKCZwYWdlX3RhaWwtPmxydSwgbGlzdF9oZWFkKTsKKwkJYWRkX3BhZ2VfdG9fbHJ1X2xpc3RfdGFpbChwYWdlX3RhaWwsIGxydXZlYywKKwkJCQkJICBwYWdlX2xydShwYWdlX3RhaWwpKTsKIAl9CiAKIAlpZiAoIVBhZ2VVbmV2aWN0YWJsZShwYWdlKSkKZGlmZiAtLWdpdCBhL21tL3N3YXBfc3RhdGUuYyBiL21tL3N3YXBfc3RhdGUuYwppbmRleCA4MzY4NjIxLi44ZTdjZTlhIDEwMDY0NAotLS0gYS9tbS9zd2FwX3N0YXRlLmMKKysrIGIvbW0vc3dhcF9zdGF0ZS5jCkBAIC0xMTYsNyArMTE2LDcgQEAgaW50IGFkZF90b19zd2FwX2NhY2hlKHN0cnVjdCBwYWdlICpwYWdlLCBzd3BfZW50cnlfdCBlbnRyeSwgZ2ZwX3QgZ2ZwKQogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICphZGRyZXNzX3NwYWNlID0gc3dhcF9hZGRyZXNzX3NwYWNlKGVudHJ5KTsKIAlwZ29mZl90IGlkeCA9IHN3cF9vZmZzZXQoZW50cnkpOwogCVhBX1NUQVRFX09SREVSKHhhcywgJmFkZHJlc3Nfc3BhY2UtPmlfcGFnZXMsIGlkeCwgY29tcG91bmRfb3JkZXIocGFnZSkpOwotCXVuc2lnbmVkIGxvbmcgaSwgbnIgPSAxVUwgPDwgY29tcG91bmRfb3JkZXIocGFnZSk7CisJdW5zaWduZWQgbG9uZyBpLCBuciA9IGNvbXBvdW5kX25yKHBhZ2UpOwogCiAJVk1fQlVHX09OX1BBR0UoIVBhZ2VMb2NrZWQocGFnZSksIHBhZ2UpOwogCVZNX0JVR19PTl9QQUdFKFBhZ2VTd2FwQ2FjaGUocGFnZSksIHBhZ2UpOwpAQCAtMTMzLDcgKzEzMyw3IEBAIGludCBhZGRfdG9fc3dhcF9jYWNoZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3dwX2VudHJ5X3QgZW50cnksIGdmcF90IGdmcCkKIAkJZm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKIAkJCVZNX0JVR19PTl9QQUdFKHhhcy54YV9pbmRleCAhPSBpZHggKyBpLCBwYWdlKTsKIAkJCXNldF9wYWdlX3ByaXZhdGUocGFnZSArIGksIGVudHJ5LnZhbCArIGkpOwotCQkJeGFzX3N0b3JlKCZ4YXMsIHBhZ2UgKyBpKTsKKwkJCXhhc19zdG9yZSgmeGFzLCBwYWdlKTsKIAkJCXhhc19uZXh0KCZ4YXMpOwogCQl9CiAJCWFkZHJlc3Nfc3BhY2UtPm5ycGFnZXMgKz0gbnI7CkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBfX2RlbGV0ZV9mcm9tX3N3YXBfY2FjaGUoc3RydWN0IHBhZ2UgKnBhZ2UsIHN3cF9lbnRyeV90IGVudHJ5KQogCiAJZm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKIAkJdm9pZCAqZW50cnkgPSB4YXNfc3RvcmUoJnhhcywgTlVMTCk7Ci0JCVZNX0JVR19PTl9QQUdFKGVudHJ5ICE9IHBhZ2UgKyBpLCBlbnRyeSk7CisJCVZNX0JVR19PTl9QQUdFKGVudHJ5ICE9IHBhZ2UsIGVudHJ5KTsKIAkJc2V0X3BhZ2VfcHJpdmF0ZShwYWdlICsgaSwgMCk7CiAJCXhhc19uZXh0KCZ4YXMpOwogCX0KZGlmZiAtLWdpdCBhL21tL3VzZXJjb3B5LmMgYi9tbS91c2VyY29weS5jCmluZGV4IDk4ZTkyNDg2Li42NjA3MTdhIDEwMDY0NAotLS0gYS9tbS91c2VyY29weS5jCisrKyBiL21tL3VzZXJjb3B5LmMKQEAgLTExLDYgKzExLDcgQEAKICNkZWZpbmUgcHJfZm10KGZtdCkgS0JVSUxEX01PRE5BTUUgIjogIiBmbXQKIAogI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3Rhc2suaD4KQEAgLTIyNyw3ICsyMjgsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX2hlYXBfb2JqZWN0KGNvbnN0IHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyBuLAogCWlmICghdmlydF9hZGRyX3ZhbGlkKHB0cikpCiAJCXJldHVybjsKIAotCXBhZ2UgPSB2aXJ0X3RvX2hlYWRfcGFnZShwdHIpOworCS8qCisJICogV2hlbiBDT05GSUdfSElHSE1FTT15LCBrbWFwX3RvX3BhZ2UoKSB3aWxsIGdpdmUgZWl0aGVyIHRoZQorCSAqIGhpZ2htZW0gcGFnZSBvciBmYWxsYmFjayB0byB2aXJ0X3RvX3BhZ2UoKS4gVGhlIGZvbGxvd2luZworCSAqIGlzIGVmZmVjdGl2ZWx5IGEgaGlnaG1lbS1hd2FyZSB2aXJ0X3RvX2hlYWRfcGFnZSgpLgorCSAqLworCXBhZ2UgPSBjb21wb3VuZF9oZWFkKGttYXBfdG9fcGFnZSgodm9pZCAqKXB0cikpOwogCiAJaWYgKFBhZ2VTbGFiKHBhZ2UpKSB7CiAJCS8qIENoZWNrIHNsYWIgYWxsb2NhdG9yIGZvciBmbGFncyBhbmQgc2l6ZS4gKi8KZGlmZiAtLWdpdCBhL21tL3V0aWwuYyBiL21tL3V0aWwuYwppbmRleCBlNjM1MWE4Li4zYWQ2ZGI5IDEwMDY0NAotLS0gYS9tbS91dGlsLmMKKysrIGIvbW0vdXRpbC5jCkBAIC0xNiw2ICsxNiwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L2h1Z2V0bGIuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8bGludXgvdXNlcmZhdWx0ZmRfay5oPgorI2luY2x1ZGUgPGxpbnV4L2VsZi5oPgorI2luY2x1ZGUgPGxpbnV4L2VsZi1yYW5kb21pemUuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJzb25hbGl0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPGxpbnV4L3NpemVzLmg+CisjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CiAKICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAKQEAgLTI5Myw3ICszMDAsMTA1IEBAIGludCB2bWFfaXNfc3RhY2tfZm9yX2N1cnJlbnQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJcmV0dXJuICh2bWEtPnZtX3N0YXJ0IDw9IEtTVEtfRVNQKHQpICYmIHZtYS0+dm1fZW5kID49IEtTVEtfRVNQKHQpKTsKIH0KIAotI2lmIGRlZmluZWQoQ09ORklHX01NVSkgJiYgIWRlZmluZWQoSEFWRV9BUkNIX1BJQ0tfTU1BUF9MQVlPVVQpCisjaWZuZGVmIFNUQUNLX1JORF9NQVNLCisjZGVmaW5lIFNUQUNLX1JORF9NQVNLICgweDdmZiA+PiAoUEFHRV9TSElGVCAtIDEyKSkgICAgIC8qIDhNQiBvZiBWQSAqLworI2VuZGlmCisKK3Vuc2lnbmVkIGxvbmcgcmFuZG9taXplX3N0YWNrX3RvcCh1bnNpZ25lZCBsb25nIHN0YWNrX3RvcCkKK3sKKwl1bnNpZ25lZCBsb25nIHJhbmRvbV92YXJpYWJsZSA9IDA7CisKKwlpZiAoY3VycmVudC0+ZmxhZ3MgJiBQRl9SQU5ET01JWkUpIHsKKwkJcmFuZG9tX3ZhcmlhYmxlID0gZ2V0X3JhbmRvbV9sb25nKCk7CisJCXJhbmRvbV92YXJpYWJsZSAmPSBTVEFDS19STkRfTUFTSzsKKwkJcmFuZG9tX3ZhcmlhYmxlIDw8PSBQQUdFX1NISUZUOworCX0KKyNpZmRlZiBDT05GSUdfU1RBQ0tfR1JPV1NVUAorCXJldHVybiBQQUdFX0FMSUdOKHN0YWNrX3RvcCkgKyByYW5kb21fdmFyaWFibGU7CisjZWxzZQorCXJldHVybiBQQUdFX0FMSUdOKHN0YWNrX3RvcCkgLSByYW5kb21fdmFyaWFibGU7CisjZW5kaWYKK30KKworI2lmZGVmIENPTkZJR19BUkNIX1dBTlRfREVGQVVMVF9UT1BET1dOX01NQVBfTEFZT1VUCit1bnNpZ25lZCBsb25nIGFyY2hfcmFuZG9taXplX2JyayhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKK3sKKwkvKiBJcyB0aGUgY3VycmVudCB0YXNrIDMyYml0ID8gKi8KKwlpZiAoIUlTX0VOQUJMRUQoQ09ORklHXzY0QklUKSB8fCBpc19jb21wYXRfdGFzaygpKQorCQlyZXR1cm4gcmFuZG9taXplX3BhZ2UobW0tPmJyaywgU1pfMzJNKTsKKworCXJldHVybiByYW5kb21pemVfcGFnZShtbS0+YnJrLCBTWl8xRyk7Cit9CisKK3Vuc2lnbmVkIGxvbmcgYXJjaF9tbWFwX3JuZCh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgcm5kOworCisjaWZkZWYgQ09ORklHX0hBVkVfQVJDSF9NTUFQX1JORF9DT01QQVRfQklUUworCWlmIChpc19jb21wYXRfdGFzaygpKQorCQlybmQgPSBnZXRfcmFuZG9tX2xvbmcoKSAmICgoMVVMIDw8IG1tYXBfcm5kX2NvbXBhdF9iaXRzKSAtIDEpOworCWVsc2UKKyNlbmRpZiAvKiBDT05GSUdfSEFWRV9BUkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTICovCisJCXJuZCA9IGdldF9yYW5kb21fbG9uZygpICYgKCgxVUwgPDwgbW1hcF9ybmRfYml0cykgLSAxKTsKKworCXJldHVybiBybmQgPDwgUEFHRV9TSElGVDsKK30KKworc3RhdGljIGludCBtbWFwX2lzX2xlZ2FjeShzdHJ1Y3QgcmxpbWl0ICpybGltX3N0YWNrKQoreworCWlmIChjdXJyZW50LT5wZXJzb25hbGl0eSAmIEFERFJfQ09NUEFUX0xBWU9VVCkKKwkJcmV0dXJuIDE7CisKKwlpZiAocmxpbV9zdGFjay0+cmxpbV9jdXIgPT0gUkxJTV9JTkZJTklUWSkKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4gc3lzY3RsX2xlZ2FjeV92YV9sYXlvdXQ7Cit9CisKKy8qCisgKiBMZWF2ZSBlbm91Z2ggc3BhY2UgYmV0d2VlbiB0aGUgbW1hcCBhcmVhIGFuZCB0aGUgc3RhY2sgdG8gaG9ub3VyIHVsaW1pdCBpbgorICogdGhlIGZhY2Ugb2YgcmFuZG9taXNhdGlvbi4KKyAqLworI2RlZmluZSBNSU5fR0FQCQkoU1pfMTI4TSkKKyNkZWZpbmUgTUFYX0dBUAkJKFNUQUNLX1RPUCAvIDYgKiA1KQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBtbWFwX2Jhc2UodW5zaWduZWQgbG9uZyBybmQsIHN0cnVjdCBybGltaXQgKnJsaW1fc3RhY2spCit7CisJdW5zaWduZWQgbG9uZyBnYXAgPSBybGltX3N0YWNrLT5ybGltX2N1cjsKKwl1bnNpZ25lZCBsb25nIHBhZCA9IHN0YWNrX2d1YXJkX2dhcDsKKworCS8qIEFjY291bnQgZm9yIHN0YWNrIHJhbmRvbWl6YXRpb24gaWYgbmVjZXNzYXJ5ICovCisJaWYgKGN1cnJlbnQtPmZsYWdzICYgUEZfUkFORE9NSVpFKQorCQlwYWQgKz0gKFNUQUNLX1JORF9NQVNLIDw8IFBBR0VfU0hJRlQpOworCisJLyogVmFsdWVzIGNsb3NlIHRvIFJMSU1fSU5GSU5JVFkgY2FuIG92ZXJmbG93LiAqLworCWlmIChnYXAgKyBwYWQgPiBnYXApCisJCWdhcCArPSBwYWQ7CisKKwlpZiAoZ2FwIDwgTUlOX0dBUCkKKwkJZ2FwID0gTUlOX0dBUDsKKwllbHNlIGlmIChnYXAgPiBNQVhfR0FQKQorCQlnYXAgPSBNQVhfR0FQOworCisJcmV0dXJuIFBBR0VfQUxJR04oU1RBQ0tfVE9QIC0gZ2FwIC0gcm5kKTsKK30KKwordm9pZCBhcmNoX3BpY2tfbW1hcF9sYXlvdXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCBybGltaXQgKnJsaW1fc3RhY2spCit7CisJdW5zaWduZWQgbG9uZyByYW5kb21fZmFjdG9yID0gMFVMOworCisJaWYgKGN1cnJlbnQtPmZsYWdzICYgUEZfUkFORE9NSVpFKQorCQlyYW5kb21fZmFjdG9yID0gYXJjaF9tbWFwX3JuZCgpOworCisJaWYgKG1tYXBfaXNfbGVnYWN5KHJsaW1fc3RhY2spKSB7CisJCW1tLT5tbWFwX2Jhc2UgPSBUQVNLX1VOTUFQUEVEX0JBU0UgKyByYW5kb21fZmFjdG9yOworCQltbS0+Z2V0X3VubWFwcGVkX2FyZWEgPSBhcmNoX2dldF91bm1hcHBlZF9hcmVhOworCX0gZWxzZSB7CisJCW1tLT5tbWFwX2Jhc2UgPSBtbWFwX2Jhc2UocmFuZG9tX2ZhY3RvciwgcmxpbV9zdGFjayk7CisJCW1tLT5nZXRfdW5tYXBwZWRfYXJlYSA9IGFyY2hfZ2V0X3VubWFwcGVkX2FyZWFfdG9wZG93bjsKKwl9Cit9CisjZWxpZiBkZWZpbmVkKENPTkZJR19NTVUpICYmICFkZWZpbmVkKEhBVkVfQVJDSF9QSUNLX01NQVBfTEFZT1VUKQogdm9pZCBhcmNoX3BpY2tfbW1hcF9sYXlvdXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCBybGltaXQgKnJsaW1fc3RhY2spCiB7CiAJbW0tPm1tYXBfYmFzZSA9IFRBU0tfVU5NQVBQRURfQkFTRTsKQEAgLTUyMSw3ICs2MjYsNyBAQCBib29sIHBhZ2VfbWFwcGVkKHN0cnVjdCBwYWdlICpwYWdlKQogCQlyZXR1cm4gdHJ1ZTsKIAlpZiAoUGFnZUh1Z2UocGFnZSkpCiAJCXJldHVybiBmYWxzZTsKLQlmb3IgKGkgPSAwOyBpIDwgKDEgPDwgY29tcG91bmRfb3JkZXIocGFnZSkpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgY29tcG91bmRfbnIocGFnZSk7IGkrKykgewogCQlpZiAoYXRvbWljX3JlYWQoJnBhZ2VbaV0uX21hcGNvdW50KSA+PSAwKQogCQkJcmV0dXJuIHRydWU7CiAJfQpAQCAtNzgzLDMgKzg4OCwxNiBAQCBpbnQgZ2V0X2NtZGxpbmUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBjaGFyICpidWZmZXIsIGludCBidWZsZW4pCiBvdXQ6CiAJcmV0dXJuIHJlczsKIH0KKworaW50IG1lbWNtcF9wYWdlcyhzdHJ1Y3QgcGFnZSAqcGFnZTEsIHN0cnVjdCBwYWdlICpwYWdlMikKK3sKKwljaGFyICphZGRyMSwgKmFkZHIyOworCWludCByZXQ7CisKKwlhZGRyMSA9IGttYXBfYXRvbWljKHBhZ2UxKTsKKwlhZGRyMiA9IGttYXBfYXRvbWljKHBhZ2UyKTsKKwlyZXQgPSBtZW1jbXAoYWRkcjEsIGFkZHIyLCBQQUdFX1NJWkUpOworCWt1bm1hcF9hdG9taWMoYWRkcjIpOworCWt1bm1hcF9hdG9taWMoYWRkcjEpOworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9tbS92bWFsbG9jLmMgYi9tbS92bWFsbG9jLmMKaW5kZXggN2JhMTFlMS4uYTNjNzBlMiAxMDA2NDQKLS0tIGEvbW0vdm1hbGxvYy5jCisrKyBiL21tL3ZtYWxsb2MuYwpAQCAtMzI5LDggKzMyOSw2IEBAIEVYUE9SVF9TWU1CT0wodm1hbGxvY190b19wZm4pOwogI2RlZmluZSBERUJVR19BVUdNRU5UX1BST1BBR0FURV9DSEVDSyAwCiAjZGVmaW5lIERFQlVHX0FVR01FTlRfTE9XRVNUX01BVENIX0NIRUNLIDAKIAotI2RlZmluZSBWTV9MQVpZX0ZSRUUJMHgwMgotI2RlZmluZSBWTV9WTV9BUkVBCTB4MDQKIAogc3RhdGljIERFRklORV9TUElOTE9DSyh2bWFwX2FyZWFfbG9jayk7CiAvKiBFeHBvcnQgZm9yIGtleGVjIG9ubHkgKi8KQEAgLTM5OCw5ICszOTYsOCBAQCBjb21wdXRlX3N1YnRyZWVfbWF4X3NpemUoc3RydWN0IHZtYXBfYXJlYSAqdmEpCiAJCWdldF9zdWJ0cmVlX21heF9zaXplKHZhLT5yYl9ub2RlLnJiX3JpZ2h0KSk7CiB9CiAKLVJCX0RFQ0xBUkVfQ0FMTEJBQ0tTKHN0YXRpYywgZnJlZV92bWFwX2FyZWFfcmJfYXVnbWVudF9jYiwKLQlzdHJ1Y3Qgdm1hcF9hcmVhLCByYl9ub2RlLCB1bnNpZ25lZCBsb25nLCBzdWJ0cmVlX21heF9zaXplLAotCWNvbXB1dGVfc3VidHJlZV9tYXhfc2l6ZSkKK1JCX0RFQ0xBUkVfQ0FMTEJBQ0tTX01BWChzdGF0aWMsIGZyZWVfdm1hcF9hcmVhX3JiX2F1Z21lbnRfY2IsCisJc3RydWN0IHZtYXBfYXJlYSwgcmJfbm9kZSwgdW5zaWduZWQgbG9uZywgc3VidHJlZV9tYXhfc2l6ZSwgdmFfc2l6ZSkKIAogc3RhdGljIHZvaWQgcHVyZ2Vfdm1hcF9hcmVhX2xhenkodm9pZCk7CiBzdGF0aWMgQkxPQ0tJTkdfTk9USUZJRVJfSEVBRCh2bWFwX25vdGlmeV9saXN0KTsKQEAgLTExMTYsNyArMTExMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgdm1hcF9hcmVhICphbGxvY192bWFwX2FyZWEodW5zaWduZWQgbG9uZyBzaXplLAogCiAJdmEtPnZhX3N0YXJ0ID0gYWRkcjsKIAl2YS0+dmFfZW5kID0gYWRkciArIHNpemU7Ci0JdmEtPmZsYWdzID0gMDsKKwl2YS0+dm0gPSBOVUxMOwogCWluc2VydF92bWFwX2FyZWEodmEsICZ2bWFwX2FyZWFfcm9vdCwgJnZtYXBfYXJlYV9saXN0KTsKIAogCXNwaW5fdW5sb2NrKCZ2bWFwX2FyZWFfbG9jayk7CkBAIC0xMjgyLDcgKzEyNzksMTQgQEAgc3RhdGljIGJvb2wgX19wdXJnZV92bWFwX2FyZWFfbGF6eSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKIAlsbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZhLCBuX3ZhLCB2YWxpc3QsIHB1cmdlX2xpc3QpIHsKIAkJdW5zaWduZWQgbG9uZyBuciA9ICh2YS0+dmFfZW5kIC0gdmEtPnZhX3N0YXJ0KSA+PiBQQUdFX1NISUZUOwogCi0JCV9fZnJlZV92bWFwX2FyZWEodmEpOworCQkvKgorCQkgKiBGaW5hbGx5IGluc2VydCBvciBtZXJnZSBsYXppbHktZnJlZWQgYXJlYS4gSXQgaXMKKwkJICogZGV0YWNoZWQgYW5kIHRoZXJlIGlzIG5vIG5lZWQgdG8gInVubGluayIgaXQgZnJvbQorCQkgKiBhbnl0aGluZy4KKwkJICovCisJCW1lcmdlX29yX2FkZF92bWFwX2FyZWEodmEsCisJCQkmZnJlZV92bWFwX2FyZWFfcm9vdCwgJmZyZWVfdm1hcF9hcmVhX2xpc3QpOworCiAJCWF0b21pY19sb25nX3N1YihuciwgJnZtYXBfbGF6eV9ucik7CiAKIAkJaWYgKGF0b21pY19sb25nX3JlYWQoJnZtYXBfbGF6eV9ucikgPCByZXNjaGVkX3RocmVzaG9sZCkKQEAgLTEzMjQsNiArMTMyOCwxMCBAQCBzdGF0aWMgdm9pZCBmcmVlX3ZtYXBfYXJlYV9ub2ZsdXNoKHN0cnVjdCB2bWFwX2FyZWEgKnZhKQogewogCXVuc2lnbmVkIGxvbmcgbnJfbGF6eTsKIAorCXNwaW5fbG9jaygmdm1hcF9hcmVhX2xvY2spOworCXVubGlua192YSh2YSwgJnZtYXBfYXJlYV9yb290KTsKKwlzcGluX3VubG9jaygmdm1hcF9hcmVhX2xvY2spOworCiAJbnJfbGF6eSA9IGF0b21pY19sb25nX2FkZF9yZXR1cm4oKHZhLT52YV9lbmQgLSB2YS0+dmFfc3RhcnQpID4+CiAJCQkJUEFHRV9TSElGVCwgJnZtYXBfbGF6eV9ucik7CiAKQEAgLTE5MTgsNyArMTkyNiw2IEBAIHZvaWQgX19pbml0IHZtYWxsb2NfaW5pdCh2b2lkKQogCQlpZiAoV0FSTl9PTl9PTkNFKCF2YSkpCiAJCQljb250aW51ZTsKIAotCQl2YS0+ZmxhZ3MgPSBWTV9WTV9BUkVBOwogCQl2YS0+dmFfc3RhcnQgPSAodW5zaWduZWQgbG9uZyl0bXAtPmFkZHI7CiAJCXZhLT52YV9lbmQgPSB2YS0+dmFfc3RhcnQgKyB0bXAtPnNpemU7CiAJCXZhLT52bSA9IHRtcDsKQEAgLTIwMTYsNyArMjAyMyw2IEBAIHN0YXRpYyB2b2lkIHNldHVwX3ZtYWxsb2Nfdm0oc3RydWN0IHZtX3N0cnVjdCAqdm0sIHN0cnVjdCB2bWFwX2FyZWEgKnZhLAogCXZtLT5zaXplID0gdmEtPnZhX2VuZCAtIHZhLT52YV9zdGFydDsKIAl2bS0+Y2FsbGVyID0gY2FsbGVyOwogCXZhLT52bSA9IHZtOwotCXZhLT5mbGFncyB8PSBWTV9WTV9BUkVBOwogCXNwaW5fdW5sb2NrKCZ2bWFwX2FyZWFfbG9jayk7CiB9CiAKQEAgLTIxMjEsMTAgKzIxMjcsMTAgQEAgc3RydWN0IHZtX3N0cnVjdCAqZmluZF92bV9hcmVhKGNvbnN0IHZvaWQgKmFkZHIpCiAJc3RydWN0IHZtYXBfYXJlYSAqdmE7CiAKIAl2YSA9IGZpbmRfdm1hcF9hcmVhKCh1bnNpZ25lZCBsb25nKWFkZHIpOwotCWlmICh2YSAmJiB2YS0+ZmxhZ3MgJiBWTV9WTV9BUkVBKQotCQlyZXR1cm4gdmEtPnZtOworCWlmICghdmEpCisJCXJldHVybiBOVUxMOwogCi0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIHZhLT52bTsKIH0KIAogLyoqCkBAIC0yMTQzLDE0ICsyMTQ5LDEyIEBAIHN0cnVjdCB2bV9zdHJ1Y3QgKnJlbW92ZV92bV9hcmVhKGNvbnN0IHZvaWQgKmFkZHIpCiAKIAltaWdodF9zbGVlcCgpOwogCi0JdmEgPSBmaW5kX3ZtYXBfYXJlYSgodW5zaWduZWQgbG9uZylhZGRyKTsKLQlpZiAodmEgJiYgdmEtPmZsYWdzICYgVk1fVk1fQVJFQSkgeworCXNwaW5fbG9jaygmdm1hcF9hcmVhX2xvY2spOworCXZhID0gX19maW5kX3ZtYXBfYXJlYSgodW5zaWduZWQgbG9uZylhZGRyKTsKKwlpZiAodmEgJiYgdmEtPnZtKSB7CiAJCXN0cnVjdCB2bV9zdHJ1Y3QgKnZtID0gdmEtPnZtOwogCi0JCXNwaW5fbG9jaygmdm1hcF9hcmVhX2xvY2spOwogCQl2YS0+dm0gPSBOVUxMOwotCQl2YS0+ZmxhZ3MgJj0gflZNX1ZNX0FSRUE7Ci0JCXZhLT5mbGFncyB8PSBWTV9MQVpZX0ZSRUU7CiAJCXNwaW5fdW5sb2NrKCZ2bWFwX2FyZWFfbG9jayk7CiAKIAkJa2FzYW5fZnJlZV9zaGFkb3codm0pOwpAQCAtMjE1OCw2ICsyMTYyLDggQEAgc3RydWN0IHZtX3N0cnVjdCAqcmVtb3ZlX3ZtX2FyZWEoY29uc3Qgdm9pZCAqYWRkcikKIAogCQlyZXR1cm4gdm07CiAJfQorCisJc3Bpbl91bmxvY2soJnZtYXBfYXJlYV9sb2NrKTsKIAlyZXR1cm4gTlVMTDsKIH0KIApAQCAtMjQwMiw3ICsyNDA4LDYgQEAgc3RhdGljIHZvaWQgKl9fdm1hbGxvY19hcmVhX25vZGUoc3RydWN0IHZtX3N0cnVjdCAqYXJlYSwgZ2ZwX3QgZ2ZwX21hc2ssCiAJbnJfcGFnZXMgPSBnZXRfdm1fYXJlYV9zaXplKGFyZWEpID4+IFBBR0VfU0hJRlQ7CiAJYXJyYXlfc2l6ZSA9IChucl9wYWdlcyAqIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSk7CiAKLQlhcmVhLT5ucl9wYWdlcyA9IG5yX3BhZ2VzOwogCS8qIFBsZWFzZSBub3RlIHRoYXQgdGhlIHJlY3Vyc2lvbiBpcyBzdHJpY3RseSBib3VuZGVkLiAqLwogCWlmIChhcnJheV9zaXplID4gUEFHRV9TSVpFKSB7CiAJCXBhZ2VzID0gX192bWFsbG9jX25vZGUoYXJyYXlfc2l6ZSwgMSwgbmVzdGVkX2dmcHxoaWdobWVtX21hc2ssCkBAIC0yNDEwLDEzICsyNDE1LDE2IEBAIHN0YXRpYyB2b2lkICpfX3ZtYWxsb2NfYXJlYV9ub2RlKHN0cnVjdCB2bV9zdHJ1Y3QgKmFyZWEsIGdmcF90IGdmcF9tYXNrLAogCX0gZWxzZSB7CiAJCXBhZ2VzID0ga21hbGxvY19ub2RlKGFycmF5X3NpemUsIG5lc3RlZF9nZnAsIG5vZGUpOwogCX0KLQlhcmVhLT5wYWdlcyA9IHBhZ2VzOwotCWlmICghYXJlYS0+cGFnZXMpIHsKKworCWlmICghcGFnZXMpIHsKIAkJcmVtb3ZlX3ZtX2FyZWEoYXJlYS0+YWRkcik7CiAJCWtmcmVlKGFyZWEpOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAKKwlhcmVhLT5wYWdlcyA9IHBhZ2VzOworCWFyZWEtPm5yX3BhZ2VzID0gbnJfcGFnZXM7CisKIAlmb3IgKGkgPSAwOyBpIDwgYXJlYS0+bnJfcGFnZXM7IGkrKykgewogCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKIApAQCAtMjg1MSw3ICsyODU5LDcgQEAgbG9uZyB2cmVhZChjaGFyICpidWYsIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGxvbmcgY291bnQpCiAJCWlmICghY291bnQpCiAJCQlicmVhazsKIAotCQlpZiAoISh2YS0+ZmxhZ3MgJiBWTV9WTV9BUkVBKSkKKwkJaWYgKCF2YS0+dm0pCiAJCQljb250aW51ZTsKIAogCQl2bSA9IHZhLT52bTsKQEAgLTI5MzEsNyArMjkzOSw3IEBAIGxvbmcgdndyaXRlKGNoYXIgKmJ1ZiwgY2hhciAqYWRkciwgdW5zaWduZWQgbG9uZyBjb3VudCkKIAkJaWYgKCFjb3VudCkKIAkJCWJyZWFrOwogCi0JCWlmICghKHZhLT5mbGFncyAmIFZNX1ZNX0FSRUEpKQorCQlpZiAoIXZhLT52bSkKIAkJCWNvbnRpbnVlOwogCiAJCXZtID0gdmEtPnZtOwpAQCAtMjk5Myw3ICszMDAxLDcgQEAgaW50IHJlbWFwX3ZtYWxsb2NfcmFuZ2VfcGFydGlhbChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyB1YWRkciwKIAlpZiAoIWFyZWEpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKCEoYXJlYS0+ZmxhZ3MgJiBWTV9VU0VSTUFQKSkKKwlpZiAoIShhcmVhLT5mbGFncyAmIChWTV9VU0VSTUFQIHwgVk1fRE1BX0NPSEVSRU5UKSkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKGthZGRyICsgc2l6ZSA+IGFyZWEtPmFkZHIgKyBnZXRfdm1fYXJlYV9zaXplKGFyZWEpKQpAQCAtMzQ1MCw2ICszNDU4LDIyIEBAIHN0YXRpYyB2b2lkIHNob3dfbnVtYV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHZtX3N0cnVjdCAqdikKIAl9CiB9CiAKK3N0YXRpYyB2b2lkIHNob3dfcHVyZ2VfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCit7CisJc3RydWN0IGxsaXN0X25vZGUgKmhlYWQ7CisJc3RydWN0IHZtYXBfYXJlYSAqdmE7CisKKwloZWFkID0gUkVBRF9PTkNFKHZtYXBfcHVyZ2VfbGlzdC5maXJzdCk7CisJaWYgKGhlYWQgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJbGxpc3RfZm9yX2VhY2hfZW50cnkodmEsIGhlYWQsIHB1cmdlX2xpc3QpIHsKKwkJc2VxX3ByaW50ZihtLCAiMHglcEstMHglcEsgJTdsZCB1bnB1cmdlZCB2bV9hcmVhXG4iLAorCQkJKHZvaWQgKil2YS0+dmFfc3RhcnQsICh2b2lkICopdmEtPnZhX2VuZCwKKwkJCXZhLT52YV9lbmQgLSB2YS0+dmFfc3RhcnQpOworCX0KK30KKwogc3RhdGljIGludCBzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpwKQogewogCXN0cnVjdCB2bWFwX2FyZWEgKnZhOwpAQCAtMzQ1OCwxNCArMzQ4MiwxMyBAQCBzdGF0aWMgaW50IHNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnApCiAJdmEgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCB2bWFwX2FyZWEsIGxpc3QpOwogCiAJLyoKLQkgKiBzX3Nob3cgY2FuIGVuY291bnRlciByYWNlIHdpdGggcmVtb3ZlX3ZtX2FyZWEsICFWTV9WTV9BUkVBIG9uCi0JICogYmVoYWxmIG9mIHZtYXAgYXJlYSBpcyBiZWluZyB0ZWFyIGRvd24gb3Igdm1fbWFwX3JhbSBhbGxvY2F0aW9uLgorCSAqIHNfc2hvdyBjYW4gZW5jb3VudGVyIHJhY2Ugd2l0aCByZW1vdmVfdm1fYXJlYSwgIXZtIG9uIGJlaGFsZgorCSAqIG9mIHZtYXAgYXJlYSBpcyBiZWluZyB0ZWFyIGRvd24gb3Igdm1fbWFwX3JhbSBhbGxvY2F0aW9uLgogCSAqLwotCWlmICghKHZhLT5mbGFncyAmIFZNX1ZNX0FSRUEpKSB7Ci0JCXNlcV9wcmludGYobSwgIjB4JXBLLTB4JXBLICU3bGQgJXNcbiIsCisJaWYgKCF2YS0+dm0pIHsKKwkJc2VxX3ByaW50ZihtLCAiMHglcEstMHglcEsgJTdsZCB2bV9tYXBfcmFtXG4iLAogCQkJKHZvaWQgKil2YS0+dmFfc3RhcnQsICh2b2lkICopdmEtPnZhX2VuZCwKLQkJCXZhLT52YV9lbmQgLSB2YS0+dmFfc3RhcnQsCi0JCQl2YS0+ZmxhZ3MgJiBWTV9MQVpZX0ZSRUUgPyAidW5wdXJnZWQgdm1fYXJlYSIgOiAidm1fbWFwX3JhbSIpOworCQkJdmEtPnZhX2VuZCAtIHZhLT52YV9zdGFydCk7CiAKIAkJcmV0dXJuIDA7CiAJfQpAQCAtMzQ5NiwxMSArMzUxOSwyNCBAQCBzdGF0aWMgaW50IHNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnApCiAJaWYgKHYtPmZsYWdzICYgVk1fVVNFUk1BUCkKIAkJc2VxX3B1dHMobSwgIiB1c2VyIik7CiAKKwlpZiAodi0+ZmxhZ3MgJiBWTV9ETUFfQ09IRVJFTlQpCisJCXNlcV9wdXRzKG0sICIgZG1hLWNvaGVyZW50Iik7CisKIAlpZiAoaXNfdm1hbGxvY19hZGRyKHYtPnBhZ2VzKSkKIAkJc2VxX3B1dHMobSwgIiB2cGFnZXMiKTsKIAogCXNob3dfbnVtYV9pbmZvKG0sIHYpOwogCXNlcV9wdXRjKG0sICdcbicpOworCisJLyoKKwkgKiBBcyBhIGZpbmFsIHN0ZXAsIGR1bXAgInVucHVyZ2VkIiBhcmVhcy4gTm90ZSwKKwkgKiB0aGF0IGVudGlyZSAiL3Byb2Mvdm1hbGxvY2luZm8iIG91dHB1dCB3aWxsIG5vdAorCSAqIGJlIGFkZHJlc3Mgc29ydGVkLCBiZWNhdXNlIHRoZSBwdXJnZSBsaXN0IGlzIG5vdAorCSAqIHNvcnRlZC4KKwkgKi8KKwlpZiAobGlzdF9pc19sYXN0KCZ2YS0+bGlzdCwgJnZtYXBfYXJlYV9saXN0KSkKKwkJc2hvd19wdXJnZV9pbmZvKG0pOworCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL21tL3Ztc2Nhbi5jIGIvbW0vdm1zY2FuLmMKaW5kZXggYTZjNWQwYi4uZTVkNTJkNiAxMDA2NDQKLS0tIGEvbW0vdm1zY2FuLmMKKysrIGIvbW0vdm1zY2FuLmMKQEAgLTE3MSwxMSArMTcxLDIyIEBAIGludCB2bV9zd2FwcGluZXNzID0gNjA7CiAgKi8KIHVuc2lnbmVkIGxvbmcgdm1fdG90YWxfcGFnZXM7CiAKK3N0YXRpYyB2b2lkIHNldF90YXNrX3JlY2xhaW1fc3RhdGUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAorCQkJCSAgIHN0cnVjdCByZWNsYWltX3N0YXRlICpycykKK3sKKwkvKiBDaGVjayBmb3IgYW4gb3ZlcndyaXRlICovCisJV0FSTl9PTl9PTkNFKHJzICYmIHRhc2stPnJlY2xhaW1fc3RhdGUpOworCisJLyogQ2hlY2sgZm9yIHRoZSBudWxsaW5nIG9mIGFuIGFscmVhZHktbnVsbGVkIG1lbWJlciAqLworCVdBUk5fT05fT05DRSghcnMgJiYgIXRhc2stPnJlY2xhaW1fc3RhdGUpOworCisJdGFzay0+cmVjbGFpbV9zdGF0ZSA9IHJzOworfQorCiBzdGF0aWMgTElTVF9IRUFEKHNocmlua2VyX2xpc3QpOwogc3RhdGljIERFQ0xBUkVfUldTRU0oc2hyaW5rZXJfcndzZW0pOwogCi0jaWZkZWYgQ09ORklHX01FTUNHX0tNRU0KLQorI2lmZGVmIENPTkZJR19NRU1DRwogLyoKICAqIFdlIGFsbG93IHN1YnN5c3RlbXMgdG8gcG9wdWxhdGUgdGhlaXIgc2hyaW5rZXItcmVsYXRlZAogICogTFJVIGxpc3RzIGJlZm9yZSByZWdpc3Rlcl9zaHJpbmtlcl9wcmVwYXJlZCgpIGlzIGNhbGxlZApAQCAtMjI3LDMwICsyMzgsNyBAQCBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX21lbWNnX3Nocmlua2VyKHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIpCiAJaWRyX3JlbW92ZSgmc2hyaW5rZXJfaWRyLCBpZCk7CiAJdXBfd3JpdGUoJnNocmlua2VyX3J3c2VtKTsKIH0KLSNlbHNlIC8qIENPTkZJR19NRU1DR19LTUVNICovCi1zdGF0aWMgaW50IHByZWFsbG9jX21lbWNnX3Nocmlua2VyKHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIpCi17Ci0JcmV0dXJuIDA7Ci19CiAKLXN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfbWVtY2dfc2hyaW5rZXIoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcikKLXsKLX0KLSNlbmRpZiAvKiBDT05GSUdfTUVNQ0dfS01FTSAqLwotCi1zdGF0aWMgdm9pZCBzZXRfdGFza19yZWNsYWltX3N0YXRlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKLQkJCQkgICBzdHJ1Y3QgcmVjbGFpbV9zdGF0ZSAqcnMpCi17Ci0JLyogQ2hlY2sgZm9yIGFuIG92ZXJ3cml0ZSAqLwotCVdBUk5fT05fT05DRShycyAmJiB0YXNrLT5yZWNsYWltX3N0YXRlKTsKLQotCS8qIENoZWNrIGZvciB0aGUgbnVsbGluZyBvZiBhbiBhbHJlYWR5LW51bGxlZCBtZW1iZXIgKi8KLQlXQVJOX09OX09OQ0UoIXJzICYmICF0YXNrLT5yZWNsYWltX3N0YXRlKTsKLQotCXRhc2stPnJlY2xhaW1fc3RhdGUgPSByczsKLX0KLQotI2lmZGVmIENPTkZJR19NRU1DRwogc3RhdGljIGJvb2wgZ2xvYmFsX3JlY2xhaW0oc3RydWN0IHNjYW5fY29udHJvbCAqc2MpCiB7CiAJcmV0dXJuICFzYy0+dGFyZ2V0X21lbV9jZ3JvdXA7CkBAIC0zMDUsNiArMjkzLDE1IEBAIHN0YXRpYyBib29sIG1lbWNnX2Nvbmdlc3RlZChwZ19kYXRhX3QgKnBnZGF0LAogCiB9CiAjZWxzZQorc3RhdGljIGludCBwcmVhbGxvY19tZW1jZ19zaHJpbmtlcihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX21lbWNnX3Nocmlua2VyKHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIpCit7Cit9CisKIHN0YXRpYyBib29sIGdsb2JhbF9yZWNsYWltKHN0cnVjdCBzY2FuX2NvbnRyb2wgKnNjKQogewogCXJldHVybiB0cnVlOwpAQCAtNTkxLDcgKzU4OCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGRvX3Nocmlua19zbGFiKHN0cnVjdCBzaHJpbmtfY29udHJvbCAqc2hyaW5rY3RsLAogCXJldHVybiBmcmVlZDsKIH0KIAotI2lmZGVmIENPTkZJR19NRU1DR19LTUVNCisjaWZkZWYgQ09ORklHX01FTUNHCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBzaHJpbmtfc2xhYl9tZW1jZyhnZnBfdCBnZnBfbWFzaywgaW50IG5pZCwKIAkJCXN0cnVjdCBtZW1fY2dyb3VwICptZW1jZywgaW50IHByaW9yaXR5KQogewpAQCAtNTk5LDcgKzU5Niw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNocmlua19zbGFiX21lbWNnKGdmcF90IGdmcF9tYXNrLCBpbnQgbmlkLAogCXVuc2lnbmVkIGxvbmcgcmV0LCBmcmVlZCA9IDA7CiAJaW50IGk7CiAKLQlpZiAoIW1lbWNnX2ttZW1fZW5hYmxlZCgpIHx8ICFtZW1fY2dyb3VwX29ubGluZShtZW1jZykpCisJaWYgKCFtZW1fY2dyb3VwX29ubGluZShtZW1jZykpCiAJCXJldHVybiAwOwogCiAJaWYgKCFkb3duX3JlYWRfdHJ5bG9jaygmc2hyaW5rZXJfcndzZW0pKQpAQCAtNjI1LDYgKzYyMiwxMSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBzaHJpbmtfc2xhYl9tZW1jZyhnZnBfdCBnZnBfbWFzaywgaW50IG5pZCwKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJLyogQ2FsbCBub24tc2xhYiBzaHJpbmtlcnMgZXZlbiB0aG91Z2gga21lbSBpcyBkaXNhYmxlZCAqLworCQlpZiAoIW1lbWNnX2ttZW1fZW5hYmxlZCgpICYmCisJCSAgICAhKHNocmlua2VyLT5mbGFncyAmIFNIUklOS0VSX05PTlNMQUIpKQorCQkJY29udGludWU7CisKIAkJcmV0ID0gZG9fc2hyaW5rX3NsYWIoJnNjLCBzaHJpbmtlciwgcHJpb3JpdHkpOwogCQlpZiAocmV0ID09IFNIUklOS19FTVBUWSkgewogCQkJY2xlYXJfYml0KGksIG1hcC0+bWFwKTsKQEAgLTY2MSwxMyArNjYzLDEzIEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNocmlua19zbGFiX21lbWNnKGdmcF90IGdmcF9tYXNrLCBpbnQgbmlkLAogCXVwX3JlYWQoJnNocmlua2VyX3J3c2VtKTsKIAlyZXR1cm4gZnJlZWQ7CiB9Ci0jZWxzZSAvKiBDT05GSUdfTUVNQ0dfS01FTSAqLworI2Vsc2UgLyogQ09ORklHX01FTUNHICovCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBzaHJpbmtfc2xhYl9tZW1jZyhnZnBfdCBnZnBfbWFzaywgaW50IG5pZCwKIAkJCXN0cnVjdCBtZW1fY2dyb3VwICptZW1jZywgaW50IHByaW9yaXR5KQogewogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENPTkZJR19NRU1DR19LTUVNICovCisjZW5kaWYgLyogQ09ORklHX01FTUNHICovCiAKIC8qKgogICogc2hyaW5rX3NsYWIgLSBzaHJpbmsgc2xhYiBjYWNoZXMKQEAgLTExMjEsNyArMTEyMyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNocmlua19wYWdlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqcGFnZV9saXN0LAogCQkJCSAgICAgIHN0cnVjdCBzY2FuX2NvbnRyb2wgKnNjLAogCQkJCSAgICAgIGVudW0gdHR1X2ZsYWdzIHR0dV9mbGFncywKIAkJCQkgICAgICBzdHJ1Y3QgcmVjbGFpbV9zdGF0ICpzdGF0LAotCQkJCSAgICAgIGJvb2wgZm9yY2VfcmVjbGFpbSkKKwkJCQkgICAgICBib29sIGlnbm9yZV9yZWZlcmVuY2VzKQogewogCUxJU1RfSEVBRChyZXRfcGFnZXMpOwogCUxJU1RfSEVBRChmcmVlX3BhZ2VzKTsKQEAgLTExMzUsNyArMTEzNyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNocmlua19wYWdlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqcGFnZV9saXN0LAogCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZzsKIAkJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJCWludCBtYXlfZW50ZXJfZnM7Ci0JCWVudW0gcGFnZV9yZWZlcmVuY2VzIHJlZmVyZW5jZXMgPSBQQUdFUkVGX1JFQ0xBSU1fQ0xFQU47CisJCWVudW0gcGFnZV9yZWZlcmVuY2VzIHJlZmVyZW5jZXMgPSBQQUdFUkVGX1JFQ0xBSU07CiAJCWJvb2wgZGlydHksIHdyaXRlYmFjazsKIAkJdW5zaWduZWQgaW50IG5yX3BhZ2VzOwogCkBAIC0xMTQ5LDcgKzExNTEsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBzaHJpbmtfcGFnZV9saXN0KHN0cnVjdCBsaXN0X2hlYWQgKnBhZ2VfbGlzdCwKIAogCQlWTV9CVUdfT05fUEFHRShQYWdlQWN0aXZlKHBhZ2UpLCBwYWdlKTsKIAotCQlucl9wYWdlcyA9IDEgPDwgY29tcG91bmRfb3JkZXIocGFnZSk7CisJCW5yX3BhZ2VzID0gY29tcG91bmRfbnIocGFnZSk7CiAKIAkJLyogQWNjb3VudCB0aGUgbnVtYmVyIG9mIGJhc2UgcGFnZXMgZXZlbiB0aG91Z2ggVEhQICovCiAJCXNjLT5ucl9zY2FubmVkICs9IG5yX3BhZ2VzOwpAQCAtMTI2Niw3ICsxMjY4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgc2hyaW5rX3BhZ2VfbGlzdChzdHJ1Y3QgbGlzdF9oZWFkICpwYWdlX2xpc3QsCiAJCQl9CiAJCX0KIAotCQlpZiAoIWZvcmNlX3JlY2xhaW0pCisJCWlmICghaWdub3JlX3JlZmVyZW5jZXMpCiAJCQlyZWZlcmVuY2VzID0gcGFnZV9jaGVja19yZWZlcmVuY2VzKHBhZ2UsIHNjKTsKIAogCQlzd2l0Y2ggKHJlZmVyZW5jZXMpIHsKQEAgLTE0ODcsMTAgKzE0ODksOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBzaHJpbmtfcGFnZV9saXN0KHN0cnVjdCBsaXN0X2hlYWQgKnBhZ2VfbGlzdCwKIAkJICogSXMgdGhlcmUgbmVlZCB0byBwZXJpb2RpY2FsbHkgZnJlZV9wYWdlX2xpc3Q/IEl0IHdvdWxkCiAJCSAqIGFwcGVhciBub3QgYXMgdGhlIGNvdW50cyBzaG91bGQgYmUgbG93CiAJCSAqLwotCQlpZiAodW5saWtlbHkoUGFnZVRyYW5zSHVnZShwYWdlKSkpIHsKLQkJCW1lbV9jZ3JvdXBfdW5jaGFyZ2UocGFnZSk7CisJCWlmICh1bmxpa2VseShQYWdlVHJhbnNIdWdlKHBhZ2UpKSkKIAkJCSgqZ2V0X2NvbXBvdW5kX3BhZ2VfZHRvcihwYWdlKSkocGFnZSk7Ci0JCX0gZWxzZQorCQllbHNlCiAJCQlsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmZnJlZV9wYWdlcyk7CiAJCWNvbnRpbnVlOwogCkBAIC0xNzA1LDcgKzE3MDYsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpc29sYXRlX2xydV9wYWdlcyh1bnNpZ25lZCBsb25nIG5yX3RvX3NjYW4sCiAKIAkJVk1fQlVHX09OX1BBR0UoIVBhZ2VMUlUocGFnZSksIHBhZ2UpOwogCi0JCW5yX3BhZ2VzID0gMSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKTsKKwkJbnJfcGFnZXMgPSBjb21wb3VuZF9ucihwYWdlKTsKIAkJdG90YWxfc2NhbiArPSBucl9wYWdlczsKIAogCQlpZiAocGFnZV96b25lbnVtKHBhZ2UpID4gc2MtPnJlY2xhaW1faWR4KSB7CkBAIC0xOTExLDcgKzE5MTIsNiBAQCBzdGF0aWMgdW5zaWduZWQgbm9pbmxpbmVfZm9yX3N0YWNrIG1vdmVfcGFnZXNfdG9fbHJ1KHN0cnVjdCBscnV2ZWMgKmxydXZlYywKIAogCQkJaWYgKHVubGlrZWx5KFBhZ2VDb21wb3VuZChwYWdlKSkpIHsKIAkJCQlzcGluX3VubG9ja19pcnEoJnBnZGF0LT5scnVfbG9jayk7Ci0JCQkJbWVtX2Nncm91cF91bmNoYXJnZShwYWdlKTsKIAkJCQkoKmdldF9jb21wb3VuZF9wYWdlX2R0b3IocGFnZSkpKHBhZ2UpOwogCQkJCXNwaW5fbG9ja19pcnEoJnBnZGF0LT5scnVfbG9jayk7CiAJCQl9IGVsc2UKQEAgLTIxNDUsNiArMjE0NSw2MiBAQCBzdGF0aWMgdm9pZCBzaHJpbmtfYWN0aXZlX2xpc3QodW5zaWduZWQgbG9uZyBucl90b19zY2FuLAogCQkJbnJfZGVhY3RpdmF0ZSwgbnJfcm90YXRlZCwgc2MtPnByaW9yaXR5LCBmaWxlKTsKIH0KIAordW5zaWduZWQgbG9uZyByZWNsYWltX3BhZ2VzKHN0cnVjdCBsaXN0X2hlYWQgKnBhZ2VfbGlzdCkKK3sKKwlpbnQgbmlkID0gLTE7CisJdW5zaWduZWQgbG9uZyBucl9yZWNsYWltZWQgPSAwOworCUxJU1RfSEVBRChub2RlX3BhZ2VfbGlzdCk7CisJc3RydWN0IHJlY2xhaW1fc3RhdCBkdW1teV9zdGF0OworCXN0cnVjdCBwYWdlICpwYWdlOworCXN0cnVjdCBzY2FuX2NvbnRyb2wgc2MgPSB7CisJCS5nZnBfbWFzayA9IEdGUF9LRVJORUwsCisJCS5wcmlvcml0eSA9IERFRl9QUklPUklUWSwKKwkJLm1heV93cml0ZXBhZ2UgPSAxLAorCQkubWF5X3VubWFwID0gMSwKKwkJLm1heV9zd2FwID0gMSwKKwl9OworCisJd2hpbGUgKCFsaXN0X2VtcHR5KHBhZ2VfbGlzdCkpIHsKKwkJcGFnZSA9IGxydV90b19wYWdlKHBhZ2VfbGlzdCk7CisJCWlmIChuaWQgPT0gLTEpIHsKKwkJCW5pZCA9IHBhZ2VfdG9fbmlkKHBhZ2UpOworCQkJSU5JVF9MSVNUX0hFQUQoJm5vZGVfcGFnZV9saXN0KTsKKwkJfQorCisJCWlmIChuaWQgPT0gcGFnZV90b19uaWQocGFnZSkpIHsKKwkJCUNsZWFyUGFnZUFjdGl2ZShwYWdlKTsKKwkJCWxpc3RfbW92ZSgmcGFnZS0+bHJ1LCAmbm9kZV9wYWdlX2xpc3QpOworCQkJY29udGludWU7CisJCX0KKworCQlucl9yZWNsYWltZWQgKz0gc2hyaW5rX3BhZ2VfbGlzdCgmbm9kZV9wYWdlX2xpc3QsCisJCQkJCQlOT0RFX0RBVEEobmlkKSwKKwkJCQkJCSZzYywgMCwKKwkJCQkJCSZkdW1teV9zdGF0LCBmYWxzZSk7CisJCXdoaWxlICghbGlzdF9lbXB0eSgmbm9kZV9wYWdlX2xpc3QpKSB7CisJCQlwYWdlID0gbHJ1X3RvX3BhZ2UoJm5vZGVfcGFnZV9saXN0KTsKKwkJCWxpc3RfZGVsKCZwYWdlLT5scnUpOworCQkJcHV0YmFja19scnVfcGFnZShwYWdlKTsKKwkJfQorCisJCW5pZCA9IC0xOworCX0KKworCWlmICghbGlzdF9lbXB0eSgmbm9kZV9wYWdlX2xpc3QpKSB7CisJCW5yX3JlY2xhaW1lZCArPSBzaHJpbmtfcGFnZV9saXN0KCZub2RlX3BhZ2VfbGlzdCwKKwkJCQkJCU5PREVfREFUQShuaWQpLAorCQkJCQkJJnNjLCAwLAorCQkJCQkJJmR1bW15X3N0YXQsIGZhbHNlKTsKKwkJd2hpbGUgKCFsaXN0X2VtcHR5KCZub2RlX3BhZ2VfbGlzdCkpIHsKKwkJCXBhZ2UgPSBscnVfdG9fcGFnZSgmbm9kZV9wYWdlX2xpc3QpOworCQkJbGlzdF9kZWwoJnBhZ2UtPmxydSk7CisJCQlwdXRiYWNrX2xydV9wYWdlKHBhZ2UpOworCQl9CisJfQorCisJcmV0dXJuIG5yX3JlY2xhaW1lZDsKK30KKwogLyoKICAqIFRoZSBpbmFjdGl2ZSBhbm9uIGxpc3Qgc2hvdWxkIGJlIHNtYWxsIGVub3VnaCB0aGF0IHRoZSBWTSBuZXZlciBoYXMKICAqIHRvIGRvIHRvbyBtdWNoIHdvcmsuCkBAIC0yNTg2LDcgKzI2NDIsNiBAQCBzdGF0aWMgYm9vbCBpbl9yZWNsYWltX2NvbXBhY3Rpb24oc3RydWN0IHNjYW5fY29udHJvbCAqc2MpCiAgKi8KIHN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRfY29udGludWVfcmVjbGFpbShzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0LAogCQkJCQl1bnNpZ25lZCBsb25nIG5yX3JlY2xhaW1lZCwKLQkJCQkJdW5zaWduZWQgbG9uZyBucl9zY2FubmVkLAogCQkJCQlzdHJ1Y3Qgc2Nhbl9jb250cm9sICpzYykKIHsKIAl1bnNpZ25lZCBsb25nIHBhZ2VzX2Zvcl9jb21wYWN0aW9uOwpAQCAtMjU5Nyw0MCArMjY1MiwxOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkX2NvbnRpbnVlX3JlY2xhaW0oc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdCwKIAlpZiAoIWluX3JlY2xhaW1fY29tcGFjdGlvbihzYykpCiAJCXJldHVybiBmYWxzZTsKIAotCS8qIENvbnNpZGVyIHN0b3BwaW5nIGRlcGVuZGluZyBvbiBzY2FuIGFuZCByZWNsYWltIGFjdGl2aXR5ICovCi0JaWYgKHNjLT5nZnBfbWFzayAmIF9fR0ZQX1JFVFJZX01BWUZBSUwpIHsKLQkJLyoKLQkJICogRm9yIF9fR0ZQX1JFVFJZX01BWUZBSUwgYWxsb2NhdGlvbnMsIHN0b3AgcmVjbGFpbWluZyBpZiB0aGUKLQkJICogZnVsbCBMUlUgbGlzdCBoYXMgYmVlbiBzY2FubmVkIGFuZCB3ZSBhcmUgc3RpbGwgZmFpbGluZwotCQkgKiB0byByZWNsYWltIHBhZ2VzLiBUaGlzIGZ1bGwgTFJVIHNjYW4gaXMgcG90ZW50aWFsbHkKLQkJICogZXhwZW5zaXZlIGJ1dCBhIF9fR0ZQX1JFVFJZX01BWUZBSUwgY2FsbGVyIHJlYWxseSB3YW50cyB0byBzdWNjZWVkCi0JCSAqLwotCQlpZiAoIW5yX3JlY2xhaW1lZCAmJiAhbnJfc2Nhbm5lZCkKLQkJCXJldHVybiBmYWxzZTsKLQl9IGVsc2UgewotCQkvKgotCQkgKiBGb3Igbm9uLV9fR0ZQX1JFVFJZX01BWUZBSUwgYWxsb2NhdGlvbnMgd2hpY2ggY2FuIHByZXN1bWFibHkKLQkJICogZmFpbCB3aXRob3V0IGNvbnNlcXVlbmNlLCBzdG9wIGlmIHdlIGZhaWxlZCB0byByZWNsYWltCi0JCSAqIGFueSBwYWdlcyBmcm9tIHRoZSBsYXN0IFNXQVBfQ0xVU1RFUl9NQVggbnVtYmVyIG9mCi0JCSAqIHBhZ2VzIHRoYXQgd2VyZSBzY2FubmVkLiBUaGlzIHdpbGwgcmV0dXJuIHRvIHRoZQotCQkgKiBjYWxsZXIgZmFzdGVyIGF0IHRoZSByaXNrIHJlY2xhaW0vY29tcGFjdGlvbiBhbmQKLQkJICogdGhlIHJlc3VsdGluZyBhbGxvY2F0aW9uIGF0dGVtcHQgZmFpbHMKLQkJICovCi0JCWlmICghbnJfcmVjbGFpbWVkKQotCQkJcmV0dXJuIGZhbHNlOwotCX0KLQogCS8qCi0JICogSWYgd2UgaGF2ZSBub3QgcmVjbGFpbWVkIGVub3VnaCBwYWdlcyBmb3IgY29tcGFjdGlvbiBhbmQgdGhlCi0JICogaW5hY3RpdmUgbGlzdHMgYXJlIGxhcmdlIGVub3VnaCwgY29udGludWUgcmVjbGFpbWluZworCSAqIFN0b3AgaWYgd2UgZmFpbGVkIHRvIHJlY2xhaW0gYW55IHBhZ2VzIGZyb20gdGhlIGxhc3QgU1dBUF9DTFVTVEVSX01BWAorCSAqIG51bWJlciBvZiBwYWdlcyB0aGF0IHdlcmUgc2Nhbm5lZC4gVGhpcyB3aWxsIHJldHVybiB0byB0aGUgY2FsbGVyCisJICogd2l0aCB0aGUgcmlzayByZWNsYWltL2NvbXBhY3Rpb24gYW5kIHRoZSByZXN1bHRpbmcgYWxsb2NhdGlvbiBhdHRlbXB0CisJICogZmFpbHMuIEluIHRoZSBwYXN0IHdlIGhhdmUgdHJpZWQgaGFyZGVyIGZvciBfX0dGUF9SRVRSWV9NQVlGQUlMCisJICogYWxsb2NhdGlvbnMgdGhyb3VnaCByZXF1aXJpbmcgdGhhdCB0aGUgZnVsbCBMUlUgbGlzdCBoYXMgYmVlbiBzY2FubmVkCisJICogZmlyc3QsIGJ5IGFzc3VtaW5nIHRoYXQgemVybyBkZWx0YSBvZiBzYy0+bnJfc2Nhbm5lZCBtZWFucyBmdWxsIExSVQorCSAqIHNjYW4sIGJ1dCB0aGF0IGFwcHJveGltYXRpb24gd2FzIHdyb25nLCBhbmQgdGhlcmUgd2VyZSBjb3JuZXIgY2FzZXMKKwkgKiB3aGVyZSBhbHdheXMgYSBub24temVybyBhbW91bnQgb2YgcGFnZXMgd2VyZSBzY2FubmVkLgogCSAqLwotCXBhZ2VzX2Zvcl9jb21wYWN0aW9uID0gY29tcGFjdF9nYXAoc2MtPm9yZGVyKTsKLQlpbmFjdGl2ZV9scnVfcGFnZXMgPSBub2RlX3BhZ2Vfc3RhdGUocGdkYXQsIE5SX0lOQUNUSVZFX0ZJTEUpOwotCWlmIChnZXRfbnJfc3dhcF9wYWdlcygpID4gMCkKLQkJaW5hY3RpdmVfbHJ1X3BhZ2VzICs9IG5vZGVfcGFnZV9zdGF0ZShwZ2RhdCwgTlJfSU5BQ1RJVkVfQU5PTik7Ci0JaWYgKHNjLT5ucl9yZWNsYWltZWQgPCBwYWdlc19mb3JfY29tcGFjdGlvbiAmJgotCQkJaW5hY3RpdmVfbHJ1X3BhZ2VzID4gcGFnZXNfZm9yX2NvbXBhY3Rpb24pCi0JCXJldHVybiB0cnVlOworCWlmICghbnJfcmVjbGFpbWVkKQorCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBJZiBjb21wYWN0aW9uIHdvdWxkIGdvIGFoZWFkIG9yIHRoZSBhbGxvY2F0aW9uIHdvdWxkIHN1Y2NlZWQsIHN0b3AgKi8KIAlmb3IgKHogPSAwOyB6IDw9IHNjLT5yZWNsYWltX2lkeDsgeisrKSB7CkBAIC0yNjQ3LDcgKzI2ODAsMTcgQEAgc3RhdGljIGlubGluZSBib29sIHNob3VsZF9jb250aW51ZV9yZWNsYWltKHN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQsCiAJCQk7CiAJCX0KIAl9Ci0JcmV0dXJuIHRydWU7CisKKwkvKgorCSAqIElmIHdlIGhhdmUgbm90IHJlY2xhaW1lZCBlbm91Z2ggcGFnZXMgZm9yIGNvbXBhY3Rpb24gYW5kIHRoZQorCSAqIGluYWN0aXZlIGxpc3RzIGFyZSBsYXJnZSBlbm91Z2gsIGNvbnRpbnVlIHJlY2xhaW1pbmcKKwkgKi8KKwlwYWdlc19mb3JfY29tcGFjdGlvbiA9IGNvbXBhY3RfZ2FwKHNjLT5vcmRlcik7CisJaW5hY3RpdmVfbHJ1X3BhZ2VzID0gbm9kZV9wYWdlX3N0YXRlKHBnZGF0LCBOUl9JTkFDVElWRV9GSUxFKTsKKwlpZiAoZ2V0X25yX3N3YXBfcGFnZXMoKSA+IDApCisJCWluYWN0aXZlX2xydV9wYWdlcyArPSBub2RlX3BhZ2Vfc3RhdGUocGdkYXQsIE5SX0lOQUNUSVZFX0FOT04pOworCisJcmV0dXJuIGluYWN0aXZlX2xydV9wYWdlcyA+IHBhZ2VzX2Zvcl9jb21wYWN0aW9uOwogfQogCiBzdGF0aWMgYm9vbCBwZ2RhdF9tZW1jZ19jb25nZXN0ZWQocGdfZGF0YV90ICpwZ2RhdCwgc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnKQpAQCAtMjY2NCwxMCArMjcwNyw2IEBAIHN0YXRpYyBib29sIHNocmlua19ub2RlKHBnX2RhdGFfdCAqcGdkYXQsIHN0cnVjdCBzY2FuX2NvbnRyb2wgKnNjKQogCiAJZG8gewogCQlzdHJ1Y3QgbWVtX2Nncm91cCAqcm9vdCA9IHNjLT50YXJnZXRfbWVtX2Nncm91cDsKLQkJc3RydWN0IG1lbV9jZ3JvdXBfcmVjbGFpbV9jb29raWUgcmVjbGFpbSA9IHsKLQkJCS5wZ2RhdCA9IHBnZGF0LAotCQkJLnByaW9yaXR5ID0gc2MtPnByaW9yaXR5LAotCQl9OwogCQl1bnNpZ25lZCBsb25nIG5vZGVfbHJ1X3BhZ2VzID0gMDsKIAkJc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnOwogCkBAIC0yNjc2LDcgKzI3MTUsNyBAQCBzdGF0aWMgYm9vbCBzaHJpbmtfbm9kZShwZ19kYXRhX3QgKnBnZGF0LCBzdHJ1Y3Qgc2Nhbl9jb250cm9sICpzYykKIAkJbnJfcmVjbGFpbWVkID0gc2MtPm5yX3JlY2xhaW1lZDsKIAkJbnJfc2Nhbm5lZCA9IHNjLT5ucl9zY2FubmVkOwogCi0JCW1lbWNnID0gbWVtX2Nncm91cF9pdGVyKHJvb3QsIE5VTEwsICZyZWNsYWltKTsKKwkJbWVtY2cgPSBtZW1fY2dyb3VwX2l0ZXIocm9vdCwgTlVMTCwgTlVMTCk7CiAJCWRvIHsKIAkJCXVuc2lnbmVkIGxvbmcgbHJ1X3BhZ2VzOwogCQkJdW5zaWduZWQgbG9uZyByZWNsYWltZWQ7CkBAIC0yNzE5LDIxICsyNzU4LDcgQEAgc3RhdGljIGJvb2wgc2hyaW5rX25vZGUocGdfZGF0YV90ICpwZ2RhdCwgc3RydWN0IHNjYW5fY29udHJvbCAqc2MpCiAJCQkJICAgc2MtPm5yX3NjYW5uZWQgLSBzY2FubmVkLAogCQkJCSAgIHNjLT5ucl9yZWNsYWltZWQgLSByZWNsYWltZWQpOwogCi0JCQkvKgotCQkJICogS3N3YXBkIGhhdmUgdG8gc2NhbiBhbGwgbWVtb3J5IGNncm91cHMgdG8gZnVsZmlsbAotCQkJICogdGhlIG92ZXJhbGwgc2NhbiB0YXJnZXQgZm9yIHRoZSBub2RlLgotCQkJICoKLQkJCSAqIExpbWl0IHJlY2xhaW0sIG9uIHRoZSBvdGhlciBoYW5kLCBvbmx5IGNhcmVzIGFib3V0Ci0JCQkgKiBucl90b19yZWNsYWltIHBhZ2VzIHRvIGJlIHJlY2xhaW1lZCBhbmQgaXQgd2lsbAotCQkJICogcmV0cnkgd2l0aCBkZWNyZWFzaW5nIHByaW9yaXR5IGlmIG9uZSByb3VuZCBvdmVyIHRoZQotCQkJICogd2hvbGUgaGllcmFyY2h5IGlzIG5vdCBzdWZmaWNpZW50LgotCQkJICovCi0JCQlpZiAoIWN1cnJlbnRfaXNfa3N3YXBkKCkgJiYKLQkJCQkJc2MtPm5yX3JlY2xhaW1lZCA+PSBzYy0+bnJfdG9fcmVjbGFpbSkgewotCQkJCW1lbV9jZ3JvdXBfaXRlcl9icmVhayhyb290LCBtZW1jZyk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0gd2hpbGUgKChtZW1jZyA9IG1lbV9jZ3JvdXBfaXRlcihyb290LCBtZW1jZywgJnJlY2xhaW0pKSk7CisJCX0gd2hpbGUgKChtZW1jZyA9IG1lbV9jZ3JvdXBfaXRlcihyb290LCBtZW1jZywgTlVMTCkpKTsKIAogCQlpZiAocmVjbGFpbV9zdGF0ZSkgewogCQkJc2MtPm5yX3JlY2xhaW1lZCArPSByZWNsYWltX3N0YXRlLT5yZWNsYWltZWRfc2xhYjsKQEAgLTI4MTAsNyArMjgzNSw3IEBAIHN0YXRpYyBib29sIHNocmlua19ub2RlKHBnX2RhdGFfdCAqcGdkYXQsIHN0cnVjdCBzY2FuX2NvbnRyb2wgKnNjKQogCQkJd2FpdF9pZmZfY29uZ2VzdGVkKEJMS19SV19BU1lOQywgSFovMTApOwogCiAJfSB3aGlsZSAoc2hvdWxkX2NvbnRpbnVlX3JlY2xhaW0ocGdkYXQsIHNjLT5ucl9yZWNsYWltZWQgLSBucl9yZWNsYWltZWQsCi0JCQkJCSBzYy0+bnJfc2Nhbm5lZCAtIG5yX3NjYW5uZWQsIHNjKSk7CisJCQkJCSBzYykpOwogCiAJLyoKIAkgKiBLc3dhcGQgZ2l2ZXMgdXAgb24gYmFsYW5jaW5nIHBhcnRpY3VsYXIgbm9kZXMgYWZ0ZXIgdG9vCmRpZmYgLS1naXQgYS9tbS92bXN0YXQuYyBiL21tL3Ztc3RhdC5jCmluZGV4IGZkN2UxNmMuLjZhZmM4OTIgMTAwNjQ0Ci0tLSBhL21tL3Ztc3RhdC5jCisrKyBiL21tL3Ztc3RhdC5jCkBAIC0xMTU4LDYgKzExNTgsOCBAQCBjb25zdCBjaGFyICogY29uc3Qgdm1zdGF0X3RleHRbXSA9IHsKIAkibnJfc2htZW0iLAogCSJucl9zaG1lbV9odWdlcGFnZXMiLAogCSJucl9zaG1lbV9wbWRtYXBwZWQiLAorCSJucl9maWxlX2h1Z2VwYWdlcyIsCisJIm5yX2ZpbGVfcG1kbWFwcGVkIiwKIAkibnJfYW5vbl90cmFuc3BhcmVudF9odWdlcGFnZXMiLAogCSJucl91bnN0YWJsZSIsCiAJIm5yX3Ztc2Nhbl93cml0ZSIsCmRpZmYgLS1naXQgYS9tbS96M2ZvbGQuYyBiL21tL3ozZm9sZC5jCmluZGV4IDc1Yjc5NjIuLjA1YmRmOTAgMTAwNjQ0Ci0tLSBhL21tL3ozZm9sZC5jCisrKyBiL21tL3ozZm9sZC5jCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Ci0jaW5jbHVkZSA8bGludXgvd2FpdC5oPgogI2luY2x1ZGUgPGxpbnV4L3pwb29sLmg+CiAjaW5jbHVkZSA8bGludXgvbWFnaWMuaD4KIApAQCAtMTQ2LDggKzE0NSw2IEBAIHN0cnVjdCB6M2ZvbGRfaGVhZGVyIHsKICAqIEByZWxlYXNlX3dxOgl3b3JrcXVldWUgZm9yIHNhZmUgcGFnZSByZWxlYXNlCiAgKiBAd29yazoJd29ya19zdHJ1Y3QgZm9yIHNhZmUgcGFnZSByZWxlYXNlCiAgKiBAaW5vZGU6CWlub2RlIGZvciB6M2ZvbGQgcHNldWRvIGZpbGVzeXN0ZW0KLSAqIEBkZXN0cm95aW5nOiBib29sIHRvIHN0b3AgbWlncmF0aW9uIG9uY2Ugd2Ugc3RhcnQgZGVzdHJ1Y3Rpb24KLSAqIEBpc29sYXRlZDogaW50IHRvIGNvdW50IHRoZSBudW1iZXIgb2YgcGFnZXMgY3VycmVudGx5IGluIGlzb2xhdGlvbgogICoKICAqIFRoaXMgc3RydWN0dXJlIGlzIGFsbG9jYXRlZCBhdCBwb29sIGNyZWF0aW9uIHRpbWUgYW5kIG1haW50YWlucyBtZXRhZGF0YQogICogcGVydGFpbmluZyB0byBhIHBhcnRpY3VsYXIgejNmb2xkIHBvb2wuCkBAIC0xNjYsMTEgKzE2Myw4IEBAIHN0cnVjdCB6M2ZvbGRfcG9vbCB7CiAJY29uc3Qgc3RydWN0IHpwb29sX29wcyAqenBvb2xfb3BzOwogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpjb21wYWN0X3dxOwogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpyZWxlYXNlX3dxOwotCXN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgaXNvbGF0ZV93YWl0OwogCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwogCXN0cnVjdCBpbm9kZSAqaW5vZGU7Ci0JYm9vbCBkZXN0cm95aW5nOwotCWludCBpc29sYXRlZDsKIH07CiAKIC8qCkBAIC0zMDEsMTQgKzI5NSwxMSBAQCBzdGF0aWMgdm9pZCB6M2ZvbGRfdW5yZWdpc3Rlcl9taWdyYXRpb24oc3RydWN0IHozZm9sZF9wb29sICpwb29sKQogIH0KIAogLyogSW5pdGlhbGl6ZXMgdGhlIHozZm9sZCBoZWFkZXIgb2YgYSBuZXdseSBhbGxvY2F0ZWQgejNmb2xkIHBhZ2UgKi8KLXN0YXRpYyBzdHJ1Y3QgejNmb2xkX2hlYWRlciAqaW5pdF96M2ZvbGRfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwKK3N0YXRpYyBzdHJ1Y3QgejNmb2xkX2hlYWRlciAqaW5pdF96M2ZvbGRfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgYm9vbCBoZWFkbGVzcywKIAkJCQkJc3RydWN0IHozZm9sZF9wb29sICpwb29sLCBnZnBfdCBnZnApCiB7CiAJc3RydWN0IHozZm9sZF9oZWFkZXIgKnpoZHIgPSBwYWdlX2FkZHJlc3MocGFnZSk7Ci0Jc3RydWN0IHozZm9sZF9idWRkeV9zbG90cyAqc2xvdHMgPSBhbGxvY19zbG90cyhwb29sLCBnZnApOwotCi0JaWYgKCFzbG90cykKLQkJcmV0dXJuIE5VTEw7CisJc3RydWN0IHozZm9sZF9idWRkeV9zbG90cyAqc2xvdHM7CiAKIAlJTklUX0xJU1RfSEVBRCgmcGFnZS0+bHJ1KTsKIAljbGVhcl9iaXQoUEFHRV9IRUFETEVTUywgJnBhZ2UtPnByaXZhdGUpOwpAQCAtMzE2LDYgKzMwNywxMiBAQCBzdGF0aWMgc3RydWN0IHozZm9sZF9oZWFkZXIgKmluaXRfejNmb2xkX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsCiAJY2xlYXJfYml0KE5FRURTX0NPTVBBQ1RJTkcsICZwYWdlLT5wcml2YXRlKTsKIAljbGVhcl9iaXQoUEFHRV9TVEFMRSwgJnBhZ2UtPnByaXZhdGUpOwogCWNsZWFyX2JpdChQQUdFX0NMQUlNRUQsICZwYWdlLT5wcml2YXRlKTsKKwlpZiAoaGVhZGxlc3MpCisJCXJldHVybiB6aGRyOworCisJc2xvdHMgPSBhbGxvY19zbG90cyhwb29sLCBnZnApOworCWlmICghc2xvdHMpCisJCXJldHVybiBOVUxMOwogCiAJc3Bpbl9sb2NrX2luaXQoJnpoZHItPnBhZ2VfbG9jayk7CiAJa3JlZl9pbml0KCZ6aGRyLT5yZWZjb3VudCk7CkBAIC0zNzIsOSArMzY5LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IF9faWR4KHN0cnVjdCB6M2ZvbGRfaGVhZGVyICp6aGRyLCBlbnVtIGJ1ZGR5IGJ1ZCkKICAqIEVuY29kZXMgdGhlIGhhbmRsZSBvZiBhIHBhcnRpY3VsYXIgYnVkZHkgd2l0aGluIGEgejNmb2xkIHBhZ2UKICAqIFBvb2wgbG9jayBzaG91bGQgYmUgaGVsZCBhcyB0aGlzIGZ1bmN0aW9uIGFjY2Vzc2VzIGZpcnN0X251bQogICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBlbmNvZGVfaGFuZGxlKHN0cnVjdCB6M2ZvbGRfaGVhZGVyICp6aGRyLCBlbnVtIGJ1ZGR5IGJ1ZCkKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fZW5jb2RlX2hhbmRsZShzdHJ1Y3QgejNmb2xkX2hlYWRlciAqemhkciwKKwkJCQlzdHJ1Y3QgejNmb2xkX2J1ZGR5X3Nsb3RzICpzbG90cywKKwkJCQllbnVtIGJ1ZGR5IGJ1ZCkKIHsKLQlzdHJ1Y3QgejNmb2xkX2J1ZGR5X3Nsb3RzICpzbG90czsKIAl1bnNpZ25lZCBsb25nIGggPSAodW5zaWduZWQgbG9uZyl6aGRyOwogCWludCBpZHggPSAwOwogCkBAIC0zOTEsMTEgKzM4OSwxNSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBlbmNvZGVfaGFuZGxlKHN0cnVjdCB6M2ZvbGRfaGVhZGVyICp6aGRyLCBlbnVtIGJ1ZGR5IGJ1ZCkKIAlpZiAoYnVkID09IExBU1QpCiAJCWggfD0gKHpoZHItPmxhc3RfY2h1bmtzIDw8IEJVRERZX1NISUZUKTsKIAotCXNsb3RzID0gemhkci0+c2xvdHM7CiAJc2xvdHMtPnNsb3RbaWR4XSA9IGg7CiAJcmV0dXJuICh1bnNpZ25lZCBsb25nKSZzbG90cy0+c2xvdFtpZHhdOwogfQogCitzdGF0aWMgdW5zaWduZWQgbG9uZyBlbmNvZGVfaGFuZGxlKHN0cnVjdCB6M2ZvbGRfaGVhZGVyICp6aGRyLCBlbnVtIGJ1ZGR5IGJ1ZCkKK3sKKwlyZXR1cm4gX19lbmNvZGVfaGFuZGxlKHpoZHIsIHpoZHItPnNsb3RzLCBidWQpOworfQorCiAvKiBSZXR1cm5zIHRoZSB6M2ZvbGQgcGFnZSB3aGVyZSBhIGdpdmVuIGhhbmRsZSBpcyBzdG9yZWQgKi8KIHN0YXRpYyBpbmxpbmUgc3RydWN0IHozZm9sZF9oZWFkZXIgKmhhbmRsZV90b196M2ZvbGRfaGVhZGVyKHVuc2lnbmVkIGxvbmcgaCkKIHsKQEAgLTYzMCw2ICs2MzIsNyBAQCBzdGF0aWMgdm9pZCBkb19jb21wYWN0X3BhZ2Uoc3RydWN0IHozZm9sZF9oZWFkZXIgKnpoZHIsIGJvb2wgbG9ja2VkKQogCX0KIAogCWlmICh1bmxpa2VseShQYWdlSXNvbGF0ZWQocGFnZSkgfHwKKwkJICAgICB0ZXN0X2JpdChQQUdFX0NMQUlNRUQsICZwYWdlLT5wcml2YXRlKSB8fAogCQkgICAgIHRlc3RfYml0KFBBR0VfU1RBTEUsICZwYWdlLT5wcml2YXRlKSkpIHsKIAkJejNmb2xkX3BhZ2VfdW5sb2NrKHpoZHIpOwogCQlyZXR1cm47CkBAIC03NzUsNyArNzc4LDYgQEAgc3RhdGljIHN0cnVjdCB6M2ZvbGRfcG9vbCAqejNmb2xkX2NyZWF0ZV9wb29sKGNvbnN0IGNoYXIgKm5hbWUsIGdmcF90IGdmcCwKIAkJZ290byBvdXRfYzsKIAlzcGluX2xvY2tfaW5pdCgmcG9vbC0+bG9jayk7CiAJc3Bpbl9sb2NrX2luaXQoJnBvb2wtPnN0YWxlX2xvY2spOwotCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnBvb2wtPmlzb2xhdGVfd2FpdCk7CiAJcG9vbC0+dW5idWRkaWVkID0gX19hbGxvY19wZXJjcHUoc2l6ZW9mKHN0cnVjdCBsaXN0X2hlYWQpKk5DSFVOS1MsIDIpOwogCWlmICghcG9vbC0+dW5idWRkaWVkKQogCQlnb3RvIG91dF9wb29sOwpAQCAtODE1LDE1ICs4MTcsNiBAQCBzdGF0aWMgc3RydWN0IHozZm9sZF9wb29sICp6M2ZvbGRfY3JlYXRlX3Bvb2woY29uc3QgY2hhciAqbmFtZSwgZ2ZwX3QgZ2ZwLAogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgYm9vbCBwb29sX2lzb2xhdGVkX2FyZV9kcmFpbmVkKHN0cnVjdCB6M2ZvbGRfcG9vbCAqcG9vbCkKLXsKLQlib29sIHJldDsKLQotCXNwaW5fbG9jaygmcG9vbC0+bG9jayk7Ci0JcmV0ID0gcG9vbC0+aXNvbGF0ZWQgPT0gMDsKLQlzcGluX3VubG9jaygmcG9vbC0+bG9jayk7Ci0JcmV0dXJuIHJldDsKLX0KIC8qKgogICogejNmb2xkX2Rlc3Ryb3lfcG9vbCgpIC0gZGVzdHJveXMgYW4gZXhpc3RpbmcgejNmb2xkIHBvb2wKICAqIEBwb29sOgl0aGUgejNmb2xkIHBvb2wgdG8gYmUgZGVzdHJveWVkCkBAIC04MzMsMjIgKzgyNiw2IEBAIHN0YXRpYyBib29sIHBvb2xfaXNvbGF0ZWRfYXJlX2RyYWluZWQoc3RydWN0IHozZm9sZF9wb29sICpwb29sKQogc3RhdGljIHZvaWQgejNmb2xkX2Rlc3Ryb3lfcG9vbChzdHJ1Y3QgejNmb2xkX3Bvb2wgKnBvb2wpCiB7CiAJa21lbV9jYWNoZV9kZXN0cm95KHBvb2wtPmNfaGFuZGxlKTsKLQkvKgotCSAqIFdlIHNldCBwb29sLT4gZGVzdHJveWluZyB1bmRlciBsb2NrIHRvIGVuc3VyZSB0aGF0Ci0JICogejNmb2xkX3BhZ2VfaXNvbGF0ZSgpIHNlZXMgYW55IGNoYW5nZXMgdG8gZGVzdHJveWluZy4gVGhpcyB3YXkgd2UKLQkgKiBhdm9pZCB0aGUgbmVlZCBmb3IgYW55IG1lbW9yeSBiYXJyaWVycy4KLQkgKi8KLQotCXNwaW5fbG9jaygmcG9vbC0+bG9jayk7Ci0JcG9vbC0+ZGVzdHJveWluZyA9IHRydWU7Ci0Jc3Bpbl91bmxvY2soJnBvb2wtPmxvY2spOwotCi0JLyoKLQkgKiBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IG5vIHBhZ2VzIGFyZSBiZWluZyBtaWdyYXRlZCB3aGlsZSB3ZSBkZXN0cm95Ci0JICogdGhlc2Ugd29ya3F1ZXVlcywgYXMgbWlncmF0aW9uIGNhbiBxdWV1ZSB3b3JrIG9uIGVpdGhlciBvZiB0aGUKLQkgKiB3b3JrcXVldWVzLgotCSAqLwotCXdhaXRfZXZlbnQocG9vbC0+aXNvbGF0ZV93YWl0LCAhcG9vbF9pc29sYXRlZF9hcmVfZHJhaW5lZChwb29sKSk7CiAKIAkvKgogCSAqIFdlIG5lZWQgdG8gZGVzdHJveSBwb29sLT5jb21wYWN0X3dxIGJlZm9yZSBwb29sLT5yZWxlYXNlX3dxLApAQCAtOTU2LDcgKzkzMyw3IEBAIHN0YXRpYyBpbnQgejNmb2xkX2FsbG9jKHN0cnVjdCB6M2ZvbGRfcG9vbCAqcG9vbCwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCwKIAlpZiAoIXBhZ2UpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JemhkciA9IGluaXRfejNmb2xkX3BhZ2UocGFnZSwgcG9vbCwgZ2ZwKTsKKwl6aGRyID0gaW5pdF96M2ZvbGRfcGFnZShwYWdlLCBidWQgPT0gSEVBRExFU1MsIHBvb2wsIGdmcCk7CiAJaWYgKCF6aGRyKSB7CiAJCV9fZnJlZV9wYWdlKHBhZ2UpOwogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTExMzIsNiArMTEwOSw3IEBAIHN0YXRpYyBpbnQgejNmb2xkX3JlY2xhaW1fcGFnZShzdHJ1Y3QgejNmb2xkX3Bvb2wgKnBvb2wsIHVuc2lnbmVkIGludCByZXRyaWVzKQogCXN0cnVjdCB6M2ZvbGRfaGVhZGVyICp6aGRyID0gTlVMTDsKIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IE5VTEw7CiAJc3RydWN0IGxpc3RfaGVhZCAqcG9zOworCXN0cnVjdCB6M2ZvbGRfYnVkZHlfc2xvdHMgc2xvdHM7CiAJdW5zaWduZWQgbG9uZyBmaXJzdF9oYW5kbGUgPSAwLCBtaWRkbGVfaGFuZGxlID0gMCwgbGFzdF9oYW5kbGUgPSAwOwogCiAJc3Bpbl9sb2NrKCZwb29sLT5sb2NrKTsKQEAgLTExNTAsMTYgKzExMjgsMjIgQEAgc3RhdGljIGludCB6M2ZvbGRfcmVjbGFpbV9wYWdlKHN0cnVjdCB6M2ZvbGRfcG9vbCAqcG9vbCwgdW5zaWduZWQgaW50IHJldHJpZXMpCiAJCQkvKiB0aGlzIGJpdCBjb3VsZCBoYXZlIGJlZW4gc2V0IGJ5IGZyZWUsIGluIHdoaWNoIGNhc2UKIAkJCSAqIHdlIHBhc3Mgb3ZlciB0byB0aGUgbmV4dCBwYWdlIGluIHRoZSBwb29sLgogCQkJICovCi0JCQlpZiAodGVzdF9hbmRfc2V0X2JpdChQQUdFX0NMQUlNRUQsICZwYWdlLT5wcml2YXRlKSkKKwkJCWlmICh0ZXN0X2FuZF9zZXRfYml0KFBBR0VfQ0xBSU1FRCwgJnBhZ2UtPnByaXZhdGUpKSB7CisJCQkJcGFnZSA9IE5VTEw7CiAJCQkJY29udGludWU7CisJCQl9CiAKLQkJCWlmICh1bmxpa2VseShQYWdlSXNvbGF0ZWQocGFnZSkpKQorCQkJaWYgKHVubGlrZWx5KFBhZ2VJc29sYXRlZChwYWdlKSkpIHsKKwkJCQljbGVhcl9iaXQoUEFHRV9DTEFJTUVELCAmcGFnZS0+cHJpdmF0ZSk7CisJCQkJcGFnZSA9IE5VTEw7CiAJCQkJY29udGludWU7CisJCQl9CisJCQl6aGRyID0gcGFnZV9hZGRyZXNzKHBhZ2UpOwogCQkJaWYgKHRlc3RfYml0KFBBR0VfSEVBRExFU1MsICZwYWdlLT5wcml2YXRlKSkKIAkJCQlicmVhazsKIAotCQkJemhkciA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsKIAkJCWlmICghejNmb2xkX3BhZ2VfdHJ5bG9jayh6aGRyKSkgeworCQkJCWNsZWFyX2JpdChQQUdFX0NMQUlNRUQsICZwYWdlLT5wcml2YXRlKTsKIAkJCQl6aGRyID0gTlVMTDsKIAkJCQljb250aW51ZTsgLyogY2FuJ3QgZXZpY3QgYXQgdGhpcyBwb2ludCAqLwogCQkJfQpAQCAtMTE3NywyNiArMTE2MSwzMCBAQCBzdGF0aWMgaW50IHozZm9sZF9yZWNsYWltX3BhZ2Uoc3RydWN0IHozZm9sZF9wb29sICpwb29sLCB1bnNpZ25lZCBpbnQgcmV0cmllcykKIAogCQlpZiAoIXRlc3RfYml0KFBBR0VfSEVBRExFU1MsICZwYWdlLT5wcml2YXRlKSkgewogCQkJLyoKLQkJCSAqIFdlIG5lZWQgZW5jb2RlIHRoZSBoYW5kbGVzIGJlZm9yZSB1bmxvY2tpbmcsIHNpbmNlCi0JCQkgKiB3ZSBjYW4gcmFjZSB3aXRoIGZyZWUgdGhhdCB3aWxsIHNldAotCQkJICogKGZpcnN0fGxhc3QpX2NodW5rcyB0byAwCisJCQkgKiBXZSBuZWVkIGVuY29kZSB0aGUgaGFuZGxlcyBiZWZvcmUgdW5sb2NraW5nLCBhbmQKKwkJCSAqIHVzZSBvdXIgbG9jYWwgc2xvdHMgc3RydWN0dXJlIGJlY2F1c2UgejNmb2xkX2ZyZWUKKwkJCSAqIGNhbiB6ZXJvIG91dCB6aGRyLT5zbG90cyBhbmQgd2UgY2FuJ3QgZG8gbXVjaAorCQkJICogYWJvdXQgdGhhdAogCQkJICovCiAJCQlmaXJzdF9oYW5kbGUgPSAwOwogCQkJbGFzdF9oYW5kbGUgPSAwOwogCQkJbWlkZGxlX2hhbmRsZSA9IDA7CiAJCQlpZiAoemhkci0+Zmlyc3RfY2h1bmtzKQotCQkJCWZpcnN0X2hhbmRsZSA9IGVuY29kZV9oYW5kbGUoemhkciwgRklSU1QpOworCQkJCWZpcnN0X2hhbmRsZSA9IF9fZW5jb2RlX2hhbmRsZSh6aGRyLCAmc2xvdHMsCisJCQkJCQkJCUZJUlNUKTsKIAkJCWlmICh6aGRyLT5taWRkbGVfY2h1bmtzKQotCQkJCW1pZGRsZV9oYW5kbGUgPSBlbmNvZGVfaGFuZGxlKHpoZHIsIE1JRERMRSk7CisJCQkJbWlkZGxlX2hhbmRsZSA9IF9fZW5jb2RlX2hhbmRsZSh6aGRyLCAmc2xvdHMsCisJCQkJCQkJCU1JRERMRSk7CiAJCQlpZiAoemhkci0+bGFzdF9jaHVua3MpCi0JCQkJbGFzdF9oYW5kbGUgPSBlbmNvZGVfaGFuZGxlKHpoZHIsIExBU1QpOworCQkJCWxhc3RfaGFuZGxlID0gX19lbmNvZGVfaGFuZGxlKHpoZHIsICZzbG90cywKKwkJCQkJCQkJTEFTVCk7CiAJCQkvKgogCQkJICogaXQncyBzYWZlIHRvIHVubG9jayBoZXJlIGJlY2F1c2Ugd2UgaG9sZCBhCiAJCQkgKiByZWZlcmVuY2UgdG8gdGhpcyBwYWdlCiAJCQkgKi8KIAkJCXozZm9sZF9wYWdlX3VubG9jayh6aGRyKTsKIAkJfSBlbHNlIHsKLQkJCWZpcnN0X2hhbmRsZSA9IGVuY29kZV9oYW5kbGUoemhkciwgSEVBRExFU1MpOworCQkJZmlyc3RfaGFuZGxlID0gX19lbmNvZGVfaGFuZGxlKHpoZHIsICZzbG90cywgSEVBRExFU1MpOwogCQkJbGFzdF9oYW5kbGUgPSBtaWRkbGVfaGFuZGxlID0gMDsKIAkJfQogCkBAIC0xMjI2LDkgKzEyMTQsOSBAQCBzdGF0aWMgaW50IHozZm9sZF9yZWNsYWltX3BhZ2Uoc3RydWN0IHozZm9sZF9wb29sICpwb29sLCB1bnNpZ25lZCBpbnQgcmV0cmllcykKIAkJCXNwaW5fbG9jaygmcG9vbC0+bG9jayk7CiAJCQlsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmcG9vbC0+bHJ1KTsKIAkJCXNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKKwkJCWNsZWFyX2JpdChQQUdFX0NMQUlNRUQsICZwYWdlLT5wcml2YXRlKTsKIAkJfSBlbHNlIHsKIAkJCXozZm9sZF9wYWdlX2xvY2soemhkcik7Ci0JCQljbGVhcl9iaXQoUEFHRV9DTEFJTUVELCAmcGFnZS0+cHJpdmF0ZSk7CiAJCQlpZiAoa3JlZl9wdXQoJnpoZHItPnJlZmNvdW50LAogCQkJCQlyZWxlYXNlX3ozZm9sZF9wYWdlX2xvY2tlZCkpIHsKIAkJCQlhdG9taWM2NF9kZWMoJnBvb2wtPnBhZ2VzX25yKTsKQEAgLTEyNDMsNiArMTIzMSw3IEBAIHN0YXRpYyBpbnQgejNmb2xkX3JlY2xhaW1fcGFnZShzdHJ1Y3QgejNmb2xkX3Bvb2wgKnBvb2wsIHVuc2lnbmVkIGludCByZXRyaWVzKQogCQkJbGlzdF9hZGQoJnBhZ2UtPmxydSwgJnBvb2wtPmxydSk7CiAJCQlzcGluX3VubG9jaygmcG9vbC0+bG9jayk7CiAJCQl6M2ZvbGRfcGFnZV91bmxvY2soemhkcik7CisJCQljbGVhcl9iaXQoUEFHRV9DTEFJTUVELCAmcGFnZS0+cHJpdmF0ZSk7CiAJCX0KIAogCQkvKiBXZSBzdGFydGVkIG9mZiBsb2NrZWQgdG8gd2UgbmVlZCB0byBsb2NrIHRoZSBwb29sIGJhY2sgKi8KQEAgLTEzMzksMjggKzEzMjgsNiBAQCBzdGF0aWMgdTY0IHozZm9sZF9nZXRfcG9vbF9zaXplKHN0cnVjdCB6M2ZvbGRfcG9vbCAqcG9vbCkKIAlyZXR1cm4gYXRvbWljNjRfcmVhZCgmcG9vbC0+cGFnZXNfbnIpOwogfQogCi0vKgotICogejNmb2xkX2RlY19pc29sYXRlZCgpIGV4cGVjdHMgdG8gYmUgY2FsbGVkIHdoaWxlIHBvb2wtPmxvY2sgaXMgaGVsZC4KLSAqLwotc3RhdGljIHZvaWQgejNmb2xkX2RlY19pc29sYXRlZChzdHJ1Y3QgejNmb2xkX3Bvb2wgKnBvb2wpCi17Ci0JYXNzZXJ0X3NwaW5fbG9ja2VkKCZwb29sLT5sb2NrKTsKLQlWTV9CVUdfT04ocG9vbC0+aXNvbGF0ZWQgPD0gMCk7Ci0JcG9vbC0+aXNvbGF0ZWQtLTsKLQotCS8qCi0JICogSWYgd2UgaGF2ZSBubyBtb3JlIGlzb2xhdGVkIHBhZ2VzLCB3ZSBoYXZlIHRvIHNlZSBpZgotCSAqIHozZm9sZF9kZXN0cm95X3Bvb2woKSBpcyB3YWl0aW5nIGZvciBhIHNpZ25hbC4KLQkgKi8KLQlpZiAocG9vbC0+aXNvbGF0ZWQgPT0gMCAmJiB3YWl0cXVldWVfYWN0aXZlKCZwb29sLT5pc29sYXRlX3dhaXQpKQotCQl3YWtlX3VwX2FsbCgmcG9vbC0+aXNvbGF0ZV93YWl0KTsKLX0KLQotc3RhdGljIHZvaWQgejNmb2xkX2luY19pc29sYXRlZChzdHJ1Y3QgejNmb2xkX3Bvb2wgKnBvb2wpCi17Ci0JcG9vbC0+aXNvbGF0ZWQrKzsKLX0KLQogc3RhdGljIGJvb2wgejNmb2xkX3BhZ2VfaXNvbGF0ZShzdHJ1Y3QgcGFnZSAqcGFnZSwgaXNvbGF0ZV9tb2RlX3QgbW9kZSkKIHsKIAlzdHJ1Y3QgejNmb2xkX2hlYWRlciAqemhkcjsKQEAgLTEzNjksNyArMTMzNiw4IEBAIHN0YXRpYyBib29sIHozZm9sZF9wYWdlX2lzb2xhdGUoc3RydWN0IHBhZ2UgKnBhZ2UsIGlzb2xhdGVfbW9kZV90IG1vZGUpCiAJVk1fQlVHX09OX1BBR0UoIVBhZ2VNb3ZhYmxlKHBhZ2UpLCBwYWdlKTsKIAlWTV9CVUdfT05fUEFHRShQYWdlSXNvbGF0ZWQocGFnZSksIHBhZ2UpOwogCi0JaWYgKHRlc3RfYml0KFBBR0VfSEVBRExFU1MsICZwYWdlLT5wcml2YXRlKSkKKwlpZiAodGVzdF9iaXQoUEFHRV9IRUFETEVTUywgJnBhZ2UtPnByaXZhdGUpIHx8CisJICAgIHRlc3RfYml0KFBBR0VfQ0xBSU1FRCwgJnBhZ2UtPnByaXZhdGUpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAl6aGRyID0gcGFnZV9hZGRyZXNzKHBhZ2UpOwpAQCAtMTM4NywzNCArMTM1NSw2IEBAIHN0YXRpYyBib29sIHozZm9sZF9wYWdlX2lzb2xhdGUoc3RydWN0IHBhZ2UgKnBhZ2UsIGlzb2xhdGVfbW9kZV90IG1vZGUpCiAJCXNwaW5fbG9jaygmcG9vbC0+bG9jayk7CiAJCWlmICghbGlzdF9lbXB0eSgmcGFnZS0+bHJ1KSkKIAkJCWxpc3RfZGVsKCZwYWdlLT5scnUpOwotCQkvKgotCQkgKiBXZSBuZWVkIHRvIGNoZWNrIGZvciBkZXN0cnVjdGlvbiB3aGlsZSBob2xkaW5nIHBvb2wtPmxvY2ssIGFzCi0JCSAqIG90aGVyd2lzZSBkZXN0cnVjdGlvbiBjb3VsZCBzZWUgMCBpc29sYXRlZCBwYWdlcywgYW5kCi0JCSAqIHByb2NlZWQuCi0JCSAqLwotCQlpZiAodW5saWtlbHkocG9vbC0+ZGVzdHJveWluZykpIHsKLQkJCXNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKLQkJCS8qCi0JCQkgKiBJZiB0aGlzIHBhZ2UgaXNuJ3Qgc3RhbGUsIHNvbWVib2R5IGVsc2UgaG9sZHMgYQotCQkJICogcmVmZXJlbmNlIHRvIGl0LiBMZXQndCBkcm9wIG91ciByZWZjb3VudCBzbyB0aGF0IHRoZXkKLQkJCSAqIGNhbiBjYWxsIHRoZSByZWxlYXNlIGxvZ2ljLgotCQkJICovCi0JCQlpZiAodW5saWtlbHkoa3JlZl9wdXQoJnpoZHItPnJlZmNvdW50LAotCQkJCQkgICAgICByZWxlYXNlX3ozZm9sZF9wYWdlX2xvY2tlZCkpKSB7Ci0JCQkJLyoKLQkJCQkgKiBJZiB3ZSBnZXQgaGVyZSB3ZSBoYXZlIGtyZWYgcHJvYmxlbXMsIHNvIHdlCi0JCQkJICogc2hvdWxkIGZyZWFrIG91dC4KLQkJCQkgKi8KLQkJCQlXQVJOKDEsICJaM2ZvbGQgaXMgZXhwZXJpZW5jaW5nIGtyZWYgcHJvYmxlbXNcbiIpOwotCQkJCXozZm9sZF9wYWdlX3VubG9jayh6aGRyKTsKLQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQl9Ci0JCQl6M2ZvbGRfcGFnZV91bmxvY2soemhkcik7Ci0JCQlyZXR1cm4gZmFsc2U7Ci0JCX0KLQotCi0JCXozZm9sZF9pbmNfaXNvbGF0ZWQocG9vbCk7CiAJCXNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKIAkJejNmb2xkX3BhZ2VfdW5sb2NrKHpoZHIpOwogCQlyZXR1cm4gdHJ1ZTsKQEAgLTE0ODMsMTAgKzE0MjMsNiBAQCBzdGF0aWMgaW50IHozZm9sZF9wYWdlX21pZ3JhdGUoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHN0cnVjdCBwYWdlICpuZXdwYQogCiAJcXVldWVfd29ya19vbihuZXdfemhkci0+Y3B1LCBwb29sLT5jb21wYWN0X3dxLCAmbmV3X3poZHItPndvcmspOwogCi0Jc3Bpbl9sb2NrKCZwb29sLT5sb2NrKTsKLQl6M2ZvbGRfZGVjX2lzb2xhdGVkKHBvb2wpOwotCXNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKLQogCXBhZ2VfbWFwY291bnRfcmVzZXQocGFnZSk7CiAJcHV0X3BhZ2UocGFnZSk7CiAJcmV0dXJuIDA7CkBAIC0xNTA2LDE0ICsxNDQyLDEwIEBAIHN0YXRpYyB2b2lkIHozZm9sZF9wYWdlX3B1dGJhY2soc3RydWN0IHBhZ2UgKnBhZ2UpCiAJSU5JVF9MSVNUX0hFQUQoJnBhZ2UtPmxydSk7CiAJaWYgKGtyZWZfcHV0KCZ6aGRyLT5yZWZjb3VudCwgcmVsZWFzZV96M2ZvbGRfcGFnZV9sb2NrZWQpKSB7CiAJCWF0b21pYzY0X2RlYygmcG9vbC0+cGFnZXNfbnIpOwotCQlzcGluX2xvY2soJnBvb2wtPmxvY2spOwotCQl6M2ZvbGRfZGVjX2lzb2xhdGVkKHBvb2wpOwotCQlzcGluX3VubG9jaygmcG9vbC0+bG9jayk7CiAJCXJldHVybjsKIAl9CiAJc3Bpbl9sb2NrKCZwb29sLT5sb2NrKTsKIAlsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmcG9vbC0+bHJ1KTsKLQl6M2ZvbGRfZGVjX2lzb2xhdGVkKHBvb2wpOwogCXNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKIAl6M2ZvbGRfcGFnZV91bmxvY2soemhkcik7CiB9CmRpZmYgLS1naXQgYS9tbS96cG9vbC5jIGIvbW0venBvb2wuYwppbmRleCBhMmRkOTEwLi44NjM2NjkyIDEwMDY0NAotLS0gYS9tbS96cG9vbC5jCisrKyBiL21tL3pwb29sLmMKQEAgLTIzOSw2ICsyMzksMjIgQEAgY29uc3QgY2hhciAqenBvb2xfZ2V0X3R5cGUoc3RydWN0IHpwb29sICp6cG9vbCkKIH0KIAogLyoqCisgKiB6cG9vbF9tYWxsb2Nfc3VwcG9ydF9tb3ZhYmxlKCkgLSBDaGVjayBpZiB0aGUgenBvb2wgc3VwcG9ydAorICogYWxsb2NhdGUgbW92YWJsZSBtZW1vcnkKKyAqIEB6cG9vbDoJVGhlIHpwb29sIHRvIGNoZWNrCisgKgorICogVGhpcyByZXR1cm5zIGlmIHRoZSB6cG9vbCBzdXBwb3J0IGFsbG9jYXRlIG1vdmFibGUgbWVtb3J5LgorICoKKyAqIEltcGxlbWVudGF0aW9ucyBtdXN0IGd1YXJhbnRlZSB0aGlzIHRvIGJlIHRocmVhZC1zYWZlLgorICoKKyAqIFJldHVybnM6IHRydWUgaWYgaWYgdGhlIHpwb29sIHN1cHBvcnQgYWxsb2NhdGUgbW92YWJsZSBtZW1vcnksIGZhbHNlIGlmIG5vdAorICovCitib29sIHpwb29sX21hbGxvY19zdXBwb3J0X21vdmFibGUoc3RydWN0IHpwb29sICp6cG9vbCkKK3sKKwlyZXR1cm4genBvb2wtPmRyaXZlci0+bWFsbG9jX3N1cHBvcnRfbW92YWJsZTsKK30KKworLyoqCiAgKiB6cG9vbF9tYWxsb2MoKSAtIEFsbG9jYXRlIG1lbW9yeQogICogQHpwb29sOglUaGUgenBvb2wgdG8gYWxsb2NhdGUgZnJvbS4KICAqIEBzaXplOglUaGUgYW1vdW50IG9mIG1lbW9yeSB0byBhbGxvY2F0ZS4KZGlmZiAtLWdpdCBhL21tL3pzbWFsbG9jLmMgYi9tbS96c21hbGxvYy5jCmluZGV4IGU5OGJiNmEuLjJiMmI5YWEgMTAwNjQ0Ci0tLSBhL21tL3pzbWFsbG9jLmMKKysrIGIvbW0venNtYWxsb2MuYwpAQCAtNDQzLDE1ICs0NDMsMTYgQEAgc3RhdGljIHU2NCB6c196cG9vbF90b3RhbF9zaXplKHZvaWQgKnBvb2wpCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgenBvb2xfZHJpdmVyIHpzX3pwb29sX2RyaXZlciA9IHsKLQkudHlwZSA9CQkienNtYWxsb2MiLAotCS5vd25lciA9CVRISVNfTU9EVUxFLAotCS5jcmVhdGUgPQl6c196cG9vbF9jcmVhdGUsCi0JLmRlc3Ryb3kgPQl6c196cG9vbF9kZXN0cm95LAotCS5tYWxsb2MgPQl6c196cG9vbF9tYWxsb2MsCi0JLmZyZWUgPQkJenNfenBvb2xfZnJlZSwKLQkubWFwID0JCXpzX3pwb29sX21hcCwKLQkudW5tYXAgPQl6c196cG9vbF91bm1hcCwKLQkudG90YWxfc2l6ZSA9CXpzX3pwb29sX3RvdGFsX3NpemUsCisJLnR5cGUgPQkJCSAgInpzbWFsbG9jIiwKKwkub3duZXIgPQkJICBUSElTX01PRFVMRSwKKwkuY3JlYXRlID0JCSAgenNfenBvb2xfY3JlYXRlLAorCS5kZXN0cm95ID0JCSAgenNfenBvb2xfZGVzdHJveSwKKwkubWFsbG9jX3N1cHBvcnRfbW92YWJsZSA9IHRydWUsCisJLm1hbGxvYyA9CQkgIHpzX3pwb29sX21hbGxvYywKKwkuZnJlZSA9CQkJICB6c196cG9vbF9mcmVlLAorCS5tYXAgPQkJCSAgenNfenBvb2xfbWFwLAorCS51bm1hcCA9CQkgIHpzX3pwb29sX3VubWFwLAorCS50b3RhbF9zaXplID0JCSAgenNfenBvb2xfdG90YWxfc2l6ZSwKIH07CiAKIE1PRFVMRV9BTElBUygienBvb2wtenNtYWxsb2MiKTsKQEAgLTQ3NiwxMCArNDc3LDYgQEAgc3RhdGljIGlubGluZSBpbnQgZ2V0X3pzcGFnZV9pbnVzZShzdHJ1Y3QgenNwYWdlICp6c3BhZ2UpCiAJcmV0dXJuIHpzcGFnZS0+aW51c2U7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfenNwYWdlX2ludXNlKHN0cnVjdCB6c3BhZ2UgKnpzcGFnZSwgaW50IHZhbCkKLXsKLQl6c3BhZ2UtPmludXNlID0gdmFsOwotfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgbW9kX3pzcGFnZV9pbnVzZShzdHJ1Y3QgenNwYWdlICp6c3BhZ2UsIGludCB2YWwpCiB7CmRpZmYgLS1naXQgYS9tbS96c3dhcC5jIGIvbW0venN3YXAuYwppbmRleCAwZTIyNzQ0Li40NmEzMjIzIDEwMDY0NAotLS0gYS9tbS96c3dhcC5jCisrKyBiL21tL3pzd2FwLmMKQEAgLTg1Niw3ICs4NTYsNiBAQCBzdGF0aWMgaW50IHpzd2FwX3dyaXRlYmFja19lbnRyeShzdHJ1Y3QgenBvb2wgKnBvb2wsIHVuc2lnbmVkIGxvbmcgaGFuZGxlKQogCS8qIGV4dHJhY3Qgc3dwZW50cnkgZnJvbSBkYXRhICovCiAJemhkciA9IHpwb29sX21hcF9oYW5kbGUocG9vbCwgaGFuZGxlLCBaUE9PTF9NTV9STyk7CiAJc3dwZW50cnkgPSB6aGRyLT5zd3BlbnRyeTsgLyogaGVyZSAqLwotCXpwb29sX3VubWFwX2hhbmRsZShwb29sLCBoYW5kbGUpOwogCXRyZWUgPSB6c3dhcF90cmVlc1tzd3BfdHlwZShzd3BlbnRyeSldOwogCW9mZnNldCA9IHN3cF9vZmZzZXQoc3dwZW50cnkpOwogCkBAIC04NjYsNiArODY1LDcgQEAgc3RhdGljIGludCB6c3dhcF93cml0ZWJhY2tfZW50cnkoc3RydWN0IHpwb29sICpwb29sLCB1bnNpZ25lZCBsb25nIGhhbmRsZSkKIAlpZiAoIWVudHJ5KSB7CiAJCS8qIGVudHJ5IHdhcyBpbnZhbGlkYXRlZCAqLwogCQlzcGluX3VubG9jaygmdHJlZS0+bG9jayk7CisJCXpwb29sX3VubWFwX2hhbmRsZShwb29sLCBoYW5kbGUpOwogCQlyZXR1cm4gMDsKIAl9CiAJc3Bpbl91bmxvY2soJnRyZWUtPmxvY2spOwpAQCAtODg2LDE1ICs4ODYsMTMgQEAgc3RhdGljIGludCB6c3dhcF93cml0ZWJhY2tfZW50cnkoc3RydWN0IHpwb29sICpwb29sLCB1bnNpZ25lZCBsb25nIGhhbmRsZSkKIAljYXNlIFpTV0FQX1NXQVBDQUNIRV9ORVc6IC8qIHBhZ2UgaXMgbG9ja2VkICovCiAJCS8qIGRlY29tcHJlc3MgKi8KIAkJZGxlbiA9IFBBR0VfU0laRTsKLQkJc3JjID0gKHU4ICopenBvb2xfbWFwX2hhbmRsZShlbnRyeS0+cG9vbC0+enBvb2wsIGVudHJ5LT5oYW5kbGUsCi0JCQkJWlBPT0xfTU1fUk8pICsgc2l6ZW9mKHN0cnVjdCB6c3dhcF9oZWFkZXIpOworCQlzcmMgPSAodTggKil6aGRyICsgc2l6ZW9mKHN0cnVjdCB6c3dhcF9oZWFkZXIpOwogCQlkc3QgPSBrbWFwX2F0b21pYyhwYWdlKTsKIAkJdGZtID0gKmdldF9jcHVfcHRyKGVudHJ5LT5wb29sLT50Zm0pOwogCQlyZXQgPSBjcnlwdG9fY29tcF9kZWNvbXByZXNzKHRmbSwgc3JjLCBlbnRyeS0+bGVuZ3RoLAogCQkJCQkgICAgIGRzdCwgJmRsZW4pOwogCQlwdXRfY3B1X3B0cihlbnRyeS0+cG9vbC0+dGZtKTsKIAkJa3VubWFwX2F0b21pYyhkc3QpOwotCQl6cG9vbF91bm1hcF9oYW5kbGUoZW50cnktPnBvb2wtPnpwb29sLCBlbnRyeS0+aGFuZGxlKTsKIAkJQlVHX09OKHJldCk7CiAJCUJVR19PTihkbGVuICE9IFBBR0VfU0laRSk7CiAKQEAgLTk0MCw2ICs5MzgsNyBAQCBzdGF0aWMgaW50IHpzd2FwX3dyaXRlYmFja19lbnRyeShzdHJ1Y3QgenBvb2wgKnBvb2wsIHVuc2lnbmVkIGxvbmcgaGFuZGxlKQogCXNwaW5fdW5sb2NrKCZ0cmVlLT5sb2NrKTsKIAogZW5kOgorCXpwb29sX3VubWFwX2hhbmRsZShwb29sLCBoYW5kbGUpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTk5Nyw2ICs5OTYsNyBAQCBzdGF0aWMgaW50IHpzd2FwX2Zyb250c3dhcF9zdG9yZSh1bnNpZ25lZCB0eXBlLCBwZ29mZl90IG9mZnNldCwKIAljaGFyICpidWY7CiAJdTggKnNyYywgKmRzdDsKIAlzdHJ1Y3QgenN3YXBfaGVhZGVyIHpoZHIgPSB7IC5zd3BlbnRyeSA9IHN3cF9lbnRyeSh0eXBlLCBvZmZzZXQpIH07CisJZ2ZwX3QgZ2ZwOwogCiAJLyogVEhQIGlzbid0IHN1cHBvcnRlZCAqLwogCWlmIChQYWdlVHJhbnNIdWdlKHBhZ2UpKSB7CkBAIC0xMDcwLDkgKzEwNzAsMTAgQEAgc3RhdGljIGludCB6c3dhcF9mcm9udHN3YXBfc3RvcmUodW5zaWduZWQgdHlwZSwgcGdvZmZfdCBvZmZzZXQsCiAKIAkvKiBzdG9yZSAqLwogCWhsZW4gPSB6cG9vbF9ldmljdGFibGUoZW50cnktPnBvb2wtPnpwb29sKSA/IHNpemVvZih6aGRyKSA6IDA7Ci0JcmV0ID0genBvb2xfbWFsbG9jKGVudHJ5LT5wb29sLT56cG9vbCwgaGxlbiArIGRsZW4sCi0JCQkgICBfX0dGUF9OT1JFVFJZIHwgX19HRlBfTk9XQVJOIHwgX19HRlBfS1NXQVBEX1JFQ0xBSU0sCi0JCQkgICAmaGFuZGxlKTsKKwlnZnAgPSBfX0dGUF9OT1JFVFJZIHwgX19HRlBfTk9XQVJOIHwgX19HRlBfS1NXQVBEX1JFQ0xBSU07CisJaWYgKHpwb29sX21hbGxvY19zdXBwb3J0X21vdmFibGUoZW50cnktPnBvb2wtPnpwb29sKSkKKwkJZ2ZwIHw9IF9fR0ZQX0hJR0hNRU0gfCBfX0dGUF9NT1ZBQkxFOworCXJldCA9IHpwb29sX21hbGxvYyhlbnRyeS0+cG9vbC0+enBvb2wsIGhsZW4gKyBkbGVuLCBnZnAsICZoYW5kbGUpOwogCWlmIChyZXQgPT0gLUVOT1NQQykgewogCQl6c3dhcF9yZWplY3RfY29tcHJlc3NfcG9vcisrOwogCQlnb3RvIHB1dF9kc3RtZW07CmRpZmYgLS1naXQgYS9uZXQvOXAvY2xpZW50LmMgYi9uZXQvOXAvY2xpZW50LmMKaW5kZXggOTYyMmYzZS4uMWQ0OGFmYyAxMDA2NDQKLS0tIGEvbmV0LzlwL2NsaWVudC5jCisrKyBiL25ldC85cC9jbGllbnQuYwpAQCAtMjgxLDYgKzI4MSw3IEBAIHA5X3RhZ19hbGxvYyhzdHJ1Y3QgcDlfY2xpZW50ICpjLCBpbnQ4X3QgdHlwZSwgdW5zaWduZWQgaW50IG1heF9zaXplKQogCiAJcDlwZHVfcmVzZXQoJnJlcS0+dGMpOwogCXA5cGR1X3Jlc2V0KCZyZXEtPnJjKTsKKwlyZXEtPnRfZXJyID0gMDsKIAlyZXEtPnN0YXR1cyA9IFJFUV9TVEFUVVNfQUxMT0M7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmcmVxLT53cSk7CiAJSU5JVF9MSVNUX0hFQUQoJnJlcS0+cmVxX2xpc3QpOwpkaWZmIC0tZ2l0IGEvbmV0LzlwL3RyYW5zX3JkbWEuYyBiL25ldC85cC90cmFuc19yZG1hLmMKaW5kZXggYmFjOGRhZC4uYjIxYzNjMiAxMDA2NDQKLS0tIGEvbmV0LzlwL3RyYW5zX3JkbWEuYworKysgYi9uZXQvOXAvdHJhbnNfcmRtYS5jCkBAIC02ODUsOSArNjg1LDkgQEAgcmRtYV9jcmVhdGVfdHJhbnMoc3RydWN0IHA5X2NsaWVudCAqY2xpZW50LCBjb25zdCBjaGFyICphZGRyLCBjaGFyICphcmdzKQogCQlnb3RvIGVycm9yOwogCiAJLyogQ3JlYXRlIHRoZSBDb21wbGV0aW9uIFF1ZXVlICovCi0JcmRtYS0+Y3EgPSBpYl9hbGxvY19jcShyZG1hLT5jbV9pZC0+ZGV2aWNlLCBjbGllbnQsCi0JCQlvcHRzLnNxX2RlcHRoICsgb3B0cy5ycV9kZXB0aCArIDEsCi0JCQkwLCBJQl9QT0xMX1NPRlRJUlEpOworCXJkbWEtPmNxID0gaWJfYWxsb2NfY3FfYW55KHJkbWEtPmNtX2lkLT5kZXZpY2UsIGNsaWVudCwKKwkJCQkgICBvcHRzLnNxX2RlcHRoICsgb3B0cy5ycV9kZXB0aCArIDEsCisJCQkJICAgSUJfUE9MTF9TT0ZUSVJRKTsKIAlpZiAoSVNfRVJSKHJkbWEtPmNxKSkKIAkJZ290byBlcnJvcjsKIApkaWZmIC0tZ2l0IGEvbmV0L2NlcGgvY2VwaF9jb21tb24uYyBiL25ldC9jZXBoL2NlcGhfY29tbW9uLmMKaW5kZXggNGVlZWE0ZC4uMmQ1NjgyNCAxMDA2NDQKLS0tIGEvbmV0L2NlcGgvY2VwaF9jb21tb24uYworKysgYi9uZXQvY2VwaC9jZXBoX2NvbW1vbi5jCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8bGludXgvbnNwcm94eS5oPgogI2luY2x1ZGUgPGxpbnV4L3BhcnNlci5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zdGF0ZnMuaD4KQEAgLTE4NSwxOCArMTg2LDM0IEBAIGludCBjZXBoX2NvbXBhcmVfb3B0aW9ucyhzdHJ1Y3QgY2VwaF9vcHRpb25zICpuZXdfb3B0LAogfQogRVhQT1JUX1NZTUJPTChjZXBoX2NvbXBhcmVfb3B0aW9ucyk7CiAKKy8qCisgKiBrdm1hbGxvYygpIGRvZXNuJ3QgZmFsbCBiYWNrIHRvIHRoZSB2bWFsbG9jIGFsbG9jYXRvciB1bmxlc3MgZmxhZ3MgYXJlCisgKiBjb21wYXRpYmxlIHdpdGggKGEgc3VwZXJzZXQgb2YpIEdGUF9LRVJORUwuICBUaGlzIGlzIGJlY2F1c2Ugd2hpbGUgdGhlCisgKiBhY3R1YWwgcGFnZXMgYXJlIGFsbG9jYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgZmxhZ3MsIHRoZSBwYWdlIHRhYmxlIHBhZ2VzCisgKiBhcmUgYWx3YXlzIGFsbG9jYXRlZCB3aXRoIEdGUF9LRVJORUwuICBtYXBfdm1fYXJlYSgpIGRvZXNuJ3QgZXZlbiB0YWtlCisgKiBmbGFncyBiZWNhdXNlIEdGUF9LRVJORUwgaXMgaGFyZC1jb2RlZCBpbiB7cDRkLHB1ZCxwbWQscHRlfV9hbGxvYygpLgorICoKKyAqIGNlcGhfa3ZtYWxsb2MoKSBtYXkgYmUgY2FsbGVkIHdpdGggR0ZQX0tFUk5FTCwgR0ZQX05PRlMgb3IgR0ZQX05PSU8uCisgKi8KIHZvaWQgKmNlcGhfa3ZtYWxsb2Moc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQogewotCWlmIChzaXplIDw9IChQQUdFX1NJWkUgPDwgUEFHRV9BTExPQ19DT1NUTFlfT1JERVIpKSB7Ci0JCXZvaWQgKnB0ciA9IGttYWxsb2Moc2l6ZSwgZmxhZ3MgfCBfX0dGUF9OT1dBUk4pOwotCQlpZiAocHRyKQotCQkJcmV0dXJuIHB0cjsKKwl2b2lkICpwOworCisJaWYgKChmbGFncyAmIChfX0dGUF9JTyB8IF9fR0ZQX0ZTKSkgPT0gKF9fR0ZQX0lPIHwgX19HRlBfRlMpKSB7CisJCXAgPSBrdm1hbGxvYyhzaXplLCBmbGFncyk7CisJfSBlbHNlIGlmICgoZmxhZ3MgJiAoX19HRlBfSU8gfCBfX0dGUF9GUykpID09IF9fR0ZQX0lPKSB7CisJCXVuc2lnbmVkIGludCBub2ZzX2ZsYWcgPSBtZW1hbGxvY19ub2ZzX3NhdmUoKTsKKwkJcCA9IGt2bWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworCQltZW1hbGxvY19ub2ZzX3Jlc3RvcmUobm9mc19mbGFnKTsKKwl9IGVsc2UgeworCQl1bnNpZ25lZCBpbnQgbm9pb19mbGFnID0gbWVtYWxsb2Nfbm9pb19zYXZlKCk7CisJCXAgPSBrdm1hbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKKwkJbWVtYWxsb2Nfbm9pb19yZXN0b3JlKG5vaW9fZmxhZyk7CiAJfQogCi0JcmV0dXJuIF9fdm1hbGxvYyhzaXplLCBmbGFncywgUEFHRV9LRVJORUwpOworCXJldHVybiBwOwogfQogCi0KIHN0YXRpYyBpbnQgcGFyc2VfZnNpZChjb25zdCBjaGFyICpzdHIsIHN0cnVjdCBjZXBoX2ZzaWQgKmZzaWQpCiB7CiAJaW50IGkgPSAwOwpAQCAtNjk0LDYgKzcxMSwxNCBAQCB2b2lkIGNlcGhfZGVzdHJveV9jbGllbnQoc3RydWN0IGNlcGhfY2xpZW50ICpjbGllbnQpCiB9CiBFWFBPUlRfU1lNQk9MKGNlcGhfZGVzdHJveV9jbGllbnQpOwogCit2b2lkIGNlcGhfcmVzZXRfY2xpZW50X2FkZHIoc3RydWN0IGNlcGhfY2xpZW50ICpjbGllbnQpCit7CisJY2VwaF9tZXNzZW5nZXJfcmVzZXRfbm9uY2UoJmNsaWVudC0+bXNncik7CisJY2VwaF9tb25jX3Jlb3Blbl9zZXNzaW9uKCZjbGllbnQtPm1vbmMpOworCWNlcGhfb3NkY19yZW9wZW5fb3NkcygmY2xpZW50LT5vc2RjKTsKK30KK0VYUE9SVF9TWU1CT0woY2VwaF9yZXNldF9jbGllbnRfYWRkcik7CisKIC8qCiAgKiB0cnVlIGlmIHdlIGhhdmUgdGhlIG1vbiBtYXAgKGFuZCBoYXZlIHRodXMgam9pbmVkIHRoZSBjbHVzdGVyKQogICovCmRpZmYgLS1naXQgYS9uZXQvY2VwaC9tZXNzZW5nZXIuYyBiL25ldC9jZXBoL21lc3Nlbmdlci5jCmluZGV4IDk2MmY1MjEuLmU0Y2IzZGIgMTAwNjQ0Ci0tLSBhL25ldC9jZXBoL21lc3Nlbmdlci5jCisrKyBiL25ldC9jZXBoL21lc3Nlbmdlci5jCkBAIC0zMDMxLDYgKzMwMzEsMTIgQEAgc3RhdGljIHZvaWQgY29uX2ZhdWx0KHN0cnVjdCBjZXBoX2Nvbm5lY3Rpb24gKmNvbikKIH0KIAogCit2b2lkIGNlcGhfbWVzc2VuZ2VyX3Jlc2V0X25vbmNlKHN0cnVjdCBjZXBoX21lc3NlbmdlciAqbXNncikKK3sKKwl1MzIgbm9uY2UgPSBsZTMyX3RvX2NwdShtc2dyLT5pbnN0LmFkZHIubm9uY2UpICsgMTAwMDAwMDsKKwltc2dyLT5pbnN0LmFkZHIubm9uY2UgPSBjcHVfdG9fbGUzMihub25jZSk7CisJZW5jb2RlX215X2FkZHIobXNncik7Cit9CiAKIC8qCiAgKiBpbml0aWFsaXplIGEgbmV3IG1lc3NlbmdlciBpbnN0YW5jZQpkaWZmIC0tZ2l0IGEvbmV0L2NlcGgvbW9uX2NsaWVudC5jIGIvbmV0L2NlcGgvbW9uX2NsaWVudC5jCmluZGV4IDA1MjBiZjkuLjcyNTZjNDAgMTAwNjQ0Ci0tLSBhL25ldC9jZXBoL21vbl9jbGllbnQuYworKysgYi9uZXQvY2VwaC9tb25fY2xpZW50LmMKQEAgLTIxMyw2ICsyMTMsMTMgQEAgc3RhdGljIHZvaWQgcmVvcGVuX3Nlc3Npb24oc3RydWN0IGNlcGhfbW9uX2NsaWVudCAqbW9uYykKIAlfX29wZW5fc2Vzc2lvbihtb25jKTsKIH0KIAordm9pZCBjZXBoX21vbmNfcmVvcGVuX3Nlc3Npb24oc3RydWN0IGNlcGhfbW9uX2NsaWVudCAqbW9uYykKK3sKKwltdXRleF9sb2NrKCZtb25jLT5tdXRleCk7CisJcmVvcGVuX3Nlc3Npb24obW9uYyk7CisJbXV0ZXhfdW5sb2NrKCZtb25jLT5tdXRleCk7Cit9CisKIHN0YXRpYyB2b2lkIHVuX2JhY2tvZmYoc3RydWN0IGNlcGhfbW9uX2NsaWVudCAqbW9uYykKIHsKIAltb25jLT5odW50X211bHQgLz0gMjsgLyogcmVkdWNlIGJ5IDUwJSAqLwpkaWZmIC0tZ2l0IGEvbmV0L2NlcGgvb3NkX2NsaWVudC5jIGIvbmV0L2NlcGgvb3NkX2NsaWVudC5jCmluZGV4IDc4YWU2ZTguLmJhNDViMDcgMTAwNjQ0Ci0tLSBhL25ldC9jZXBoL29zZF9jbGllbnQuYworKysgYi9uZXQvY2VwaC9vc2RfY2xpZW50LmMKQEAgLTg0MSw2ICs4NDEsNyBAQCBpbnQgb3NkX3JlcV9vcF9jbHNfaW5pdChzdHJ1Y3QgY2VwaF9vc2RfcmVxdWVzdCAqb3NkX3JlcSwgdW5zaWduZWQgaW50IHdoaWNoLAogCXN0cnVjdCBjZXBoX3BhZ2VsaXN0ICpwYWdlbGlzdDsKIAlzaXplX3QgcGF5bG9hZF9sZW4gPSAwOwogCXNpemVfdCBzaXplOworCWludCByZXQ7CiAKIAlvcCA9IF9vc2RfcmVxX29wX2luaXQob3NkX3JlcSwgd2hpY2gsIENFUEhfT1NEX09QX0NBTEwsIDApOwogCkBAIC04NTIsMjAgKzg1MywyNyBAQCBpbnQgb3NkX3JlcV9vcF9jbHNfaW5pdChzdHJ1Y3QgY2VwaF9vc2RfcmVxdWVzdCAqb3NkX3JlcSwgdW5zaWduZWQgaW50IHdoaWNoLAogCXNpemUgPSBzdHJsZW4oY2xhc3MpOwogCUJVR19PTihzaXplID4gKHNpemVfdCkgVThfTUFYKTsKIAlvcC0+Y2xzLmNsYXNzX2xlbiA9IHNpemU7Ci0JY2VwaF9wYWdlbGlzdF9hcHBlbmQocGFnZWxpc3QsIGNsYXNzLCBzaXplKTsKKwlyZXQgPSBjZXBoX3BhZ2VsaXN0X2FwcGVuZChwYWdlbGlzdCwgY2xhc3MsIHNpemUpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3BhZ2VsaXN0X2ZyZWU7CiAJcGF5bG9hZF9sZW4gKz0gc2l6ZTsKIAogCW9wLT5jbHMubWV0aG9kX25hbWUgPSBtZXRob2Q7CiAJc2l6ZSA9IHN0cmxlbihtZXRob2QpOwogCUJVR19PTihzaXplID4gKHNpemVfdCkgVThfTUFYKTsKIAlvcC0+Y2xzLm1ldGhvZF9sZW4gPSBzaXplOwotCWNlcGhfcGFnZWxpc3RfYXBwZW5kKHBhZ2VsaXN0LCBtZXRob2QsIHNpemUpOworCXJldCA9IGNlcGhfcGFnZWxpc3RfYXBwZW5kKHBhZ2VsaXN0LCBtZXRob2QsIHNpemUpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3BhZ2VsaXN0X2ZyZWU7CiAJcGF5bG9hZF9sZW4gKz0gc2l6ZTsKIAogCW9zZF9yZXFfb3BfY2xzX3JlcXVlc3RfaW5mb19wYWdlbGlzdChvc2RfcmVxLCB3aGljaCwgcGFnZWxpc3QpOwotCiAJb3AtPmluZGF0YV9sZW4gPSBwYXlsb2FkX2xlbjsKIAlyZXR1cm4gMDsKKworZXJyX3BhZ2VsaXN0X2ZyZWU6CisJY2VwaF9wYWdlbGlzdF9yZWxlYXNlKHBhZ2VsaXN0KTsKKwlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTChvc2RfcmVxX29wX2Nsc19pbml0KTsKIApAQCAtODc3LDYgKzg4NSw3IEBAIGludCBvc2RfcmVxX29wX3hhdHRyX2luaXQoc3RydWN0IGNlcGhfb3NkX3JlcXVlc3QgKm9zZF9yZXEsIHVuc2lnbmVkIGludCB3aGljaCwKIAkJCQkJCSAgICAgIG9wY29kZSwgMCk7CiAJc3RydWN0IGNlcGhfcGFnZWxpc3QgKnBhZ2VsaXN0OwogCXNpemVfdCBwYXlsb2FkX2xlbjsKKwlpbnQgcmV0OwogCiAJQlVHX09OKG9wY29kZSAhPSBDRVBIX09TRF9PUF9TRVRYQVRUUiAmJiBvcGNvZGUgIT0gQ0VQSF9PU0RfT1BfQ01QWEFUVFIpOwogCkBAIC04ODYsMTAgKzg5NSwxNCBAQCBpbnQgb3NkX3JlcV9vcF94YXR0cl9pbml0KHN0cnVjdCBjZXBoX29zZF9yZXF1ZXN0ICpvc2RfcmVxLCB1bnNpZ25lZCBpbnQgd2hpY2gsCiAKIAlwYXlsb2FkX2xlbiA9IHN0cmxlbihuYW1lKTsKIAlvcC0+eGF0dHIubmFtZV9sZW4gPSBwYXlsb2FkX2xlbjsKLQljZXBoX3BhZ2VsaXN0X2FwcGVuZChwYWdlbGlzdCwgbmFtZSwgcGF5bG9hZF9sZW4pOworCXJldCA9IGNlcGhfcGFnZWxpc3RfYXBwZW5kKHBhZ2VsaXN0LCBuYW1lLCBwYXlsb2FkX2xlbik7CisJaWYgKHJldCkKKwkJZ290byBlcnJfcGFnZWxpc3RfZnJlZTsKIAogCW9wLT54YXR0ci52YWx1ZV9sZW4gPSBzaXplOwotCWNlcGhfcGFnZWxpc3RfYXBwZW5kKHBhZ2VsaXN0LCB2YWx1ZSwgc2l6ZSk7CisJcmV0ID0gY2VwaF9wYWdlbGlzdF9hcHBlbmQocGFnZWxpc3QsIHZhbHVlLCBzaXplKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9wYWdlbGlzdF9mcmVlOwogCXBheWxvYWRfbGVuICs9IHNpemU7CiAKIAlvcC0+eGF0dHIuY21wX29wID0gY21wX29wOwpAQCAtODk4LDYgKzkxMSwxMCBAQCBpbnQgb3NkX3JlcV9vcF94YXR0cl9pbml0KHN0cnVjdCBjZXBoX29zZF9yZXF1ZXN0ICpvc2RfcmVxLCB1bnNpZ25lZCBpbnQgd2hpY2gsCiAJY2VwaF9vc2RfZGF0YV9wYWdlbGlzdF9pbml0KCZvcC0+eGF0dHIub3NkX2RhdGEsIHBhZ2VsaXN0KTsKIAlvcC0+aW5kYXRhX2xlbiA9IHBheWxvYWRfbGVuOwogCXJldHVybiAwOworCitlcnJfcGFnZWxpc3RfZnJlZToKKwljZXBoX3BhZ2VsaXN0X3JlbGVhc2UocGFnZWxpc3QpOworCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKG9zZF9yZXFfb3BfeGF0dHJfaW5pdCk7CiAKQEAgLTE0ODgsNyArMTUwNSw2IEBAIGVudW0gY2FsY190YXJnZXRfcmVzdWx0IHsKIAogc3RhdGljIGVudW0gY2FsY190YXJnZXRfcmVzdWx0IGNhbGNfdGFyZ2V0KHN0cnVjdCBjZXBoX29zZF9jbGllbnQgKm9zZGMsCiAJCQkJCSAgIHN0cnVjdCBjZXBoX29zZF9yZXF1ZXN0X3RhcmdldCAqdCwKLQkJCQkJICAgc3RydWN0IGNlcGhfY29ubmVjdGlvbiAqY29uLAogCQkJCQkgICBib29sIGFueV9jaGFuZ2UpCiB7CiAJc3RydWN0IGNlcGhfcGdfcG9vbF9pbmZvICpwaTsKQEAgLTIyNzIsNyArMjI4OCw3IEBAIHN0YXRpYyB2b2lkIF9fc3VibWl0X3JlcXVlc3Qoc3RydWN0IGNlcGhfb3NkX3JlcXVlc3QgKnJlcSwgYm9vbCB3cmxvY2tlZCkKIAlkb3V0KCIlcyByZXEgJXAgd3Jsb2NrZWQgJWRcbiIsIF9fZnVuY19fLCByZXEsIHdybG9ja2VkKTsKIAogYWdhaW46Ci0JY3RfcmVzID0gY2FsY190YXJnZXQob3NkYywgJnJlcS0+cl90LCBOVUxMLCBmYWxzZSk7CisJY3RfcmVzID0gY2FsY190YXJnZXQob3NkYywgJnJlcS0+cl90LCBmYWxzZSk7CiAJaWYgKGN0X3JlcyA9PSBDQUxDX1RBUkdFVF9QT09MX0RORSAmJiAhd3Jsb2NrZWQpCiAJCWdvdG8gcHJvbW90ZTsKIApAQCAtMjQ3Niw2ICsyNDkyLDE0IEBAIHZvaWQgY2VwaF9vc2RjX2Fib3J0X3JlcXVlc3RzKHN0cnVjdCBjZXBoX29zZF9jbGllbnQgKm9zZGMsIGludCBlcnIpCiB9CiBFWFBPUlRfU1lNQk9MKGNlcGhfb3NkY19hYm9ydF9yZXF1ZXN0cyk7CiAKK3ZvaWQgY2VwaF9vc2RjX2NsZWFyX2Fib3J0X2VycihzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjKQoreworCWRvd25fd3JpdGUoJm9zZGMtPmxvY2spOworCW9zZGMtPmFib3J0X2VyciA9IDA7CisJdXBfd3JpdGUoJm9zZGMtPmxvY2spOworfQorRVhQT1JUX1NZTUJPTChjZXBoX29zZGNfY2xlYXJfYWJvcnRfZXJyKTsKKwogc3RhdGljIHZvaWQgdXBkYXRlX2Vwb2NoX2JhcnJpZXIoc3RydWN0IGNlcGhfb3NkX2NsaWVudCAqb3NkYywgdTMyIGViKQogewogCWlmIChsaWtlbHkoZWIgPiBvc2RjLT5lcG9jaF9iYXJyaWVyKSkgewpAQCAtMzA4Nyw3ICszMTExLDcgQEAgc3RhdGljIHZvaWQgbGluZ2VyX3N1Ym1pdChzdHJ1Y3QgY2VwaF9vc2RfbGluZ2VyX3JlcXVlc3QgKmxyZXEpCiAJCWxyZXEtPnJlZ19yZXEtPnJfb3BzWzBdLm5vdGlmeS5jb29raWUgPSBscmVxLT5saW5nZXJfaWQ7CiAJfQogCi0JY2FsY190YXJnZXQob3NkYywgJmxyZXEtPnQsIE5VTEwsIGZhbHNlKTsKKwljYWxjX3RhcmdldChvc2RjLCAmbHJlcS0+dCwgZmFsc2UpOwogCW9zZCA9IGxvb2t1cF9jcmVhdGVfb3NkKG9zZGMsIGxyZXEtPnQub3NkLCB0cnVlKTsKIAlsaW5rX2xpbmdlcihvc2QsIGxyZXEpOwogCkBAIC0zNzA0LDcgKzM3MjgsNyBAQCByZWNhbGNfbGluZ2VyX3RhcmdldChzdHJ1Y3QgY2VwaF9vc2RfbGluZ2VyX3JlcXVlc3QgKmxyZXEpCiAJc3RydWN0IGNlcGhfb3NkX2NsaWVudCAqb3NkYyA9IGxyZXEtPm9zZGM7CiAJZW51bSBjYWxjX3RhcmdldF9yZXN1bHQgY3RfcmVzOwogCi0JY3RfcmVzID0gY2FsY190YXJnZXQob3NkYywgJmxyZXEtPnQsIE5VTEwsIHRydWUpOworCWN0X3JlcyA9IGNhbGNfdGFyZ2V0KG9zZGMsICZscmVxLT50LCB0cnVlKTsKIAlpZiAoY3RfcmVzID09IENBTENfVEFSR0VUX05FRURfUkVTRU5EKSB7CiAJCXN0cnVjdCBjZXBoX29zZCAqb3NkOwogCkBAIC0zNzc2LDggKzM4MDAsNyBAQCBzdGF0aWMgdm9pZCBzY2FuX3JlcXVlc3RzKHN0cnVjdCBjZXBoX29zZCAqb3NkLAogCQluID0gcmJfbmV4dChuKTsgLyogdW5saW5rX3JlcXVlc3QoKSwgY2hlY2tfcG9vbF9kbmUoKSAqLwogCiAJCWRvdXQoIiVzIHJlcSAlcCB0aWQgJWxsdVxuIiwgX19mdW5jX18sIHJlcSwgcmVxLT5yX3RpZCk7Ci0JCWN0X3JlcyA9IGNhbGNfdGFyZ2V0KG9zZGMsICZyZXEtPnJfdCwgJnJlcS0+cl9vc2QtPm9fY29uLAotCQkJCSAgICAgZmFsc2UpOworCQljdF9yZXMgPSBjYWxjX3RhcmdldChvc2RjLCAmcmVxLT5yX3QsIGZhbHNlKTsKIAkJc3dpdGNoIChjdF9yZXMpIHsKIAkJY2FzZSBDQUxDX1RBUkdFVF9OT19BQ1RJT046CiAJCQlmb3JjZV9yZXNlbmRfd3JpdGVzID0gY2xlYXJlZF9mdWxsIHx8CkBAIC0zODg2LDcgKzM5MDksNyBAQCBzdGF0aWMgdm9pZCBraWNrX3JlcXVlc3RzKHN0cnVjdCBjZXBoX29zZF9jbGllbnQgKm9zZGMsCiAJCW4gPSByYl9uZXh0KG4pOwogCiAJCWlmIChyZXEtPnJfdC5lcG9jaCA8IG9zZGMtPm9zZG1hcC0+ZXBvY2gpIHsKLQkJCWN0X3JlcyA9IGNhbGNfdGFyZ2V0KG9zZGMsICZyZXEtPnJfdCwgTlVMTCwgZmFsc2UpOworCQkJY3RfcmVzID0gY2FsY190YXJnZXQob3NkYywgJnJlcS0+cl90LCBmYWxzZSk7CiAJCQlpZiAoY3RfcmVzID09IENBTENfVEFSR0VUX1BPT0xfRE5FKSB7CiAJCQkJZXJhc2VfcmVxdWVzdChuZWVkX3Jlc2VuZCwgcmVxKTsKIAkJCQljaGVja19wb29sX2RuZShyZXEpOwpAQCAtNTA4Nyw2ICs1MTEwLDI0IEBAIGludCBjZXBoX29zZGNfY2FsbChzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjLAogRVhQT1JUX1NZTUJPTChjZXBoX29zZGNfY2FsbCk7CiAKIC8qCisgKiByZXNldCBhbGwgb3NkIGNvbm5lY3Rpb25zCisgKi8KK3ZvaWQgY2VwaF9vc2RjX3Jlb3Blbl9vc2RzKHN0cnVjdCBjZXBoX29zZF9jbGllbnQgKm9zZGMpCit7CisJc3RydWN0IHJiX25vZGUgKm47CisKKwlkb3duX3dyaXRlKCZvc2RjLT5sb2NrKTsKKwlmb3IgKG4gPSByYl9maXJzdCgmb3NkYy0+b3Nkcyk7IG47ICkgeworCQlzdHJ1Y3QgY2VwaF9vc2QgKm9zZCA9IHJiX2VudHJ5KG4sIHN0cnVjdCBjZXBoX29zZCwgb19ub2RlKTsKKworCQluID0gcmJfbmV4dChuKTsKKwkJaWYgKCFyZW9wZW5fb3NkKG9zZCkpCisJCQlraWNrX29zZF9yZXF1ZXN0cyhvc2QpOworCX0KKwl1cF93cml0ZSgmb3NkYy0+bG9jayk7Cit9CisKKy8qCiAgKiBpbml0LCBzaHV0ZG93bgogICovCiBpbnQgY2VwaF9vc2RjX2luaXQoc3RydWN0IGNlcGhfb3NkX2NsaWVudCAqb3NkYywgc3RydWN0IGNlcGhfY2xpZW50ICpjbGllbnQpCmRpZmYgLS1naXQgYS9uZXQvY2VwaC9vc2RtYXAuYyBiL25ldC9jZXBoL29zZG1hcC5jCmluZGV4IDkwNDM3OTAuLjRlMGRlMTQgMTAwNjQ0Ci0tLSBhL25ldC9jZXBoL29zZG1hcC5jCisrKyBiL25ldC9jZXBoL29zZG1hcC5jCkBAIC05NzMsMTEgKzk3MywxMSBAQCB2b2lkIGNlcGhfb3NkbWFwX2Rlc3Ryb3koc3RydWN0IGNlcGhfb3NkbWFwICptYXApCiAJCQkJIHN0cnVjdCBjZXBoX3BnX3Bvb2xfaW5mbywgbm9kZSk7CiAJCV9fcmVtb3ZlX3BnX3Bvb2woJm1hcC0+cGdfcG9vbHMsIHBpKTsKIAl9Ci0Ja2ZyZWUobWFwLT5vc2Rfc3RhdGUpOwotCWtmcmVlKG1hcC0+b3NkX3dlaWdodCk7Ci0Ja2ZyZWUobWFwLT5vc2RfYWRkcik7Ci0Ja2ZyZWUobWFwLT5vc2RfcHJpbWFyeV9hZmZpbml0eSk7Ci0Ja2ZyZWUobWFwLT5jcnVzaF93b3Jrc3BhY2UpOworCWt2ZnJlZShtYXAtPm9zZF9zdGF0ZSk7CisJa3ZmcmVlKG1hcC0+b3NkX3dlaWdodCk7CisJa3ZmcmVlKG1hcC0+b3NkX2FkZHIpOworCWt2ZnJlZShtYXAtPm9zZF9wcmltYXJ5X2FmZmluaXR5KTsKKwlrdmZyZWUobWFwLT5jcnVzaF93b3Jrc3BhY2UpOwogCWtmcmVlKG1hcCk7CiB9CiAKQEAgLTk4NiwyOCArOTg2LDQxIEBAIHZvaWQgY2VwaF9vc2RtYXBfZGVzdHJveShzdHJ1Y3QgY2VwaF9vc2RtYXAgKm1hcCkKICAqCiAgKiBUaGUgbmV3IGVsZW1lbnRzIGFyZSBwcm9wZXJseSBpbml0aWFsaXplZC4KICAqLwotc3RhdGljIGludCBvc2RtYXBfc2V0X21heF9vc2Qoc3RydWN0IGNlcGhfb3NkbWFwICptYXAsIGludCBtYXgpCitzdGF0aWMgaW50IG9zZG1hcF9zZXRfbWF4X29zZChzdHJ1Y3QgY2VwaF9vc2RtYXAgKm1hcCwgdTMyIG1heCkKIHsKIAl1MzIgKnN0YXRlOwogCXUzMiAqd2VpZ2h0OwogCXN0cnVjdCBjZXBoX2VudGl0eV9hZGRyICphZGRyOworCXUzMiB0b19jb3B5OwogCWludCBpOwogCi0Jc3RhdGUgPSBrcmVhbGxvYyhtYXAtPm9zZF9zdGF0ZSwgbWF4KnNpemVvZigqc3RhdGUpLCBHRlBfTk9GUyk7Ci0JaWYgKCFzdGF0ZSkKKwlkb3V0KCIlcyBvbGQgJXUgbmV3ICV1XG4iLCBfX2Z1bmNfXywgbWFwLT5tYXhfb3NkLCBtYXgpOworCWlmIChtYXggPT0gbWFwLT5tYXhfb3NkKQorCQlyZXR1cm4gMDsKKworCXN0YXRlID0gY2VwaF9rdm1hbGxvYyhhcnJheV9zaXplKG1heCwgc2l6ZW9mKCpzdGF0ZSkpLCBHRlBfTk9GUyk7CisJd2VpZ2h0ID0gY2VwaF9rdm1hbGxvYyhhcnJheV9zaXplKG1heCwgc2l6ZW9mKCp3ZWlnaHQpKSwgR0ZQX05PRlMpOworCWFkZHIgPSBjZXBoX2t2bWFsbG9jKGFycmF5X3NpemUobWF4LCBzaXplb2YoKmFkZHIpKSwgR0ZQX05PRlMpOworCWlmICghc3RhdGUgfHwgIXdlaWdodCB8fCAhYWRkcikgeworCQlrdmZyZWUoc3RhdGUpOworCQlrdmZyZWUod2VpZ2h0KTsKKwkJa3ZmcmVlKGFkZHIpOwogCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwl0b19jb3B5ID0gbWluKG1hcC0+bWF4X29zZCwgbWF4KTsKKwlpZiAobWFwLT5vc2Rfc3RhdGUpIHsKKwkJbWVtY3B5KHN0YXRlLCBtYXAtPm9zZF9zdGF0ZSwgdG9fY29weSAqIHNpemVvZigqc3RhdGUpKTsKKwkJbWVtY3B5KHdlaWdodCwgbWFwLT5vc2Rfd2VpZ2h0LCB0b19jb3B5ICogc2l6ZW9mKCp3ZWlnaHQpKTsKKwkJbWVtY3B5KGFkZHIsIG1hcC0+b3NkX2FkZHIsIHRvX2NvcHkgKiBzaXplb2YoKmFkZHIpKTsKKwkJa3ZmcmVlKG1hcC0+b3NkX3N0YXRlKTsKKwkJa3ZmcmVlKG1hcC0+b3NkX3dlaWdodCk7CisJCWt2ZnJlZShtYXAtPm9zZF9hZGRyKTsKKwl9CisKIAltYXAtPm9zZF9zdGF0ZSA9IHN0YXRlOwotCi0Jd2VpZ2h0ID0ga3JlYWxsb2MobWFwLT5vc2Rfd2VpZ2h0LCBtYXgqc2l6ZW9mKCp3ZWlnaHQpLCBHRlBfTk9GUyk7Ci0JaWYgKCF3ZWlnaHQpCi0JCXJldHVybiAtRU5PTUVNOwogCW1hcC0+b3NkX3dlaWdodCA9IHdlaWdodDsKLQotCWFkZHIgPSBrcmVhbGxvYyhtYXAtPm9zZF9hZGRyLCBtYXgqc2l6ZW9mKCphZGRyKSwgR0ZQX05PRlMpOwotCWlmICghYWRkcikKLQkJcmV0dXJuIC1FTk9NRU07CiAJbWFwLT5vc2RfYWRkciA9IGFkZHI7Ci0KIAlmb3IgKGkgPSBtYXAtPm1heF9vc2Q7IGkgPCBtYXg7IGkrKykgewogCQltYXAtPm9zZF9zdGF0ZVtpXSA9IDA7CiAJCW1hcC0+b3NkX3dlaWdodFtpXSA9IENFUEhfT1NEX09VVDsKQEAgLTEwMTcsMTIgKzEwMzAsMTYgQEAgc3RhdGljIGludCBvc2RtYXBfc2V0X21heF9vc2Qoc3RydWN0IGNlcGhfb3NkbWFwICptYXAsIGludCBtYXgpCiAJaWYgKG1hcC0+b3NkX3ByaW1hcnlfYWZmaW5pdHkpIHsKIAkJdTMyICphZmZpbml0eTsKIAotCQlhZmZpbml0eSA9IGtyZWFsbG9jKG1hcC0+b3NkX3ByaW1hcnlfYWZmaW5pdHksCi0JCQkJICAgIG1heCpzaXplb2YoKmFmZmluaXR5KSwgR0ZQX05PRlMpOworCQlhZmZpbml0eSA9IGNlcGhfa3ZtYWxsb2MoYXJyYXlfc2l6ZShtYXgsIHNpemVvZigqYWZmaW5pdHkpKSwKKwkJCQkJIEdGUF9OT0ZTKTsKIAkJaWYgKCFhZmZpbml0eSkKIAkJCXJldHVybiAtRU5PTUVNOwotCQltYXAtPm9zZF9wcmltYXJ5X2FmZmluaXR5ID0gYWZmaW5pdHk7CiAKKwkJbWVtY3B5KGFmZmluaXR5LCBtYXAtPm9zZF9wcmltYXJ5X2FmZmluaXR5LAorCQkgICAgICAgdG9fY29weSAqIHNpemVvZigqYWZmaW5pdHkpKTsKKwkJa3ZmcmVlKG1hcC0+b3NkX3ByaW1hcnlfYWZmaW5pdHkpOworCisJCW1hcC0+b3NkX3ByaW1hcnlfYWZmaW5pdHkgPSBhZmZpbml0eTsKIAkJZm9yIChpID0gbWFwLT5tYXhfb3NkOyBpIDwgbWF4OyBpKyspCiAJCQltYXAtPm9zZF9wcmltYXJ5X2FmZmluaXR5W2ldID0KIAkJCSAgICBDRVBIX09TRF9ERUZBVUxUX1BSSU1BUllfQUZGSU5JVFk7CkBAIC0xMDQzLDcgKzEwNjAsNyBAQCBzdGF0aWMgaW50IG9zZG1hcF9zZXRfY3J1c2goc3RydWN0IGNlcGhfb3NkbWFwICptYXAsIHN0cnVjdCBjcnVzaF9tYXAgKmNydXNoKQogCiAJd29ya19zaXplID0gY3J1c2hfd29ya19zaXplKGNydXNoLCBDRVBIX1BHX01BWF9TSVpFKTsKIAlkb3V0KCIlcyB3b3JrX3NpemUgJXp1IGJ5dGVzXG4iLCBfX2Z1bmNfXywgd29ya19zaXplKTsKLQl3b3Jrc3BhY2UgPSBrbWFsbG9jKHdvcmtfc2l6ZSwgR0ZQX05PSU8pOworCXdvcmtzcGFjZSA9IGNlcGhfa3ZtYWxsb2Mod29ya19zaXplLCBHRlBfTk9JTyk7CiAJaWYgKCF3b3Jrc3BhY2UpIHsKIAkJY3J1c2hfZGVzdHJveShjcnVzaCk7CiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMTA1Miw3ICsxMDY5LDcgQEAgc3RhdGljIGludCBvc2RtYXBfc2V0X2NydXNoKHN0cnVjdCBjZXBoX29zZG1hcCAqbWFwLCBzdHJ1Y3QgY3J1c2hfbWFwICpjcnVzaCkKIAogCWlmIChtYXAtPmNydXNoKQogCQljcnVzaF9kZXN0cm95KG1hcC0+Y3J1c2gpOwotCWtmcmVlKG1hcC0+Y3J1c2hfd29ya3NwYWNlKTsKKwlrdmZyZWUobWFwLT5jcnVzaF93b3Jrc3BhY2UpOwogCW1hcC0+Y3J1c2ggPSBjcnVzaDsKIAltYXAtPmNydXNoX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKIAlyZXR1cm4gMDsKQEAgLTEyOTgsOSArMTMxNSw5IEBAIHN0YXRpYyBpbnQgc2V0X3ByaW1hcnlfYWZmaW5pdHkoc3RydWN0IGNlcGhfb3NkbWFwICptYXAsIGludCBvc2QsIHUzMiBhZmYpCiAJaWYgKCFtYXAtPm9zZF9wcmltYXJ5X2FmZmluaXR5KSB7CiAJCWludCBpOwogCi0JCW1hcC0+b3NkX3ByaW1hcnlfYWZmaW5pdHkgPSBrbWFsbG9jX2FycmF5KG1hcC0+bWF4X29zZCwKLQkJCQkJCQkgIHNpemVvZih1MzIpLAotCQkJCQkJCSAgR0ZQX05PRlMpOworCQltYXAtPm9zZF9wcmltYXJ5X2FmZmluaXR5ID0gY2VwaF9rdm1hbGxvYygKKwkJICAgIGFycmF5X3NpemUobWFwLT5tYXhfb3NkLCBzaXplb2YoKm1hcC0+b3NkX3ByaW1hcnlfYWZmaW5pdHkpKSwKKwkJICAgIEdGUF9OT0ZTKTsKIAkJaWYgKCFtYXAtPm9zZF9wcmltYXJ5X2FmZmluaXR5KQogCQkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTEzMjEsNyArMTMzOCw3IEBAIHN0YXRpYyBpbnQgZGVjb2RlX3ByaW1hcnlfYWZmaW5pdHkodm9pZCAqKnAsIHZvaWQgKmVuZCwKIAogCWNlcGhfZGVjb2RlXzMyX3NhZmUocCwgZW5kLCBsZW4sIGVfaW52YWwpOwogCWlmIChsZW4gPT0gMCkgewotCQlrZnJlZShtYXAtPm9zZF9wcmltYXJ5X2FmZmluaXR5KTsKKwkJa3ZmcmVlKG1hcC0+b3NkX3ByaW1hcnlfYWZmaW5pdHkpOwogCQltYXAtPm9zZF9wcmltYXJ5X2FmZmluaXR5ID0gTlVMTDsKIAkJcmV0dXJuIDA7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9hdXRoX2dzcy5jIGIvbmV0L3N1bnJwYy9hdXRoX2dzcy9hdXRoX2dzcy5jCmluZGV4IDRjZTQyYzYuLmQ3NWZkZGMgMTAwNjQ0Ci0tLSBhL25ldC9zdW5ycGMvYXV0aF9nc3MvYXV0aF9nc3MuYworKysgYi9uZXQvc3VucnBjL2F1dGhfZ3NzL2F1dGhfZ3NzLmMKQEAgLTE5NjAsNyArMTk2MCw3IEBAIGdzc191bndyYXBfcmVzcF9pbnRlZyhzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2ssIHN0cnVjdCBycGNfY3JlZCAqY3JlZCwKIAogCWlmICh4ZHJfYnVmX3N1YnNlZ21lbnQocmN2X2J1ZiwgJmludGVnX2J1ZiwgZGF0YV9vZmZzZXQsIGludGVnX2xlbikpCiAJCWdvdG8gdW53cmFwX2ZhaWxlZDsKLQlpZiAoeGRyX2J1Zl9yZWFkX25ldG9iaihyY3ZfYnVmLCAmbWljLCBtaWNfb2Zmc2V0KSkKKwlpZiAoeGRyX2J1Zl9yZWFkX21pYyhyY3ZfYnVmLCAmbWljLCBtaWNfb2Zmc2V0KSkKIAkJZ290byB1bndyYXBfZmFpbGVkOwogCW1hal9zdGF0ID0gZ3NzX3ZlcmlmeV9taWMoY3R4LT5nY19nc3NfY3R4LCAmaW50ZWdfYnVmLCAmbWljKTsKIAlpZiAobWFqX3N0YXQgPT0gR1NTX1NfQ09OVEVYVF9FWFBJUkVEKQpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9jYWNoZS5jIGIvbmV0L3N1bnJwYy9jYWNoZS5jCmluZGV4IDZmMTUyOGYuLmEzNDkwOTQgMTAwNjQ0Ci0tLSBhL25ldC9zdW5ycGMvY2FjaGUuYworKysgYi9uZXQvc3VucnBjL2NhY2hlLmMKQEAgLTM3Myw3ICszNzMsNyBAQCB2b2lkIHN1bnJwY19pbml0X2NhY2hlX2RldGFpbChzdHJ1Y3QgY2FjaGVfZGV0YWlsICpjZCkKIAlzcGluX2xvY2soJmNhY2hlX2xpc3RfbG9jayk7CiAJY2QtPm5leHRjaGVjayA9IDA7CiAJY2QtPmVudHJpZXMgPSAwOwotCWF0b21pY19zZXQoJmNkLT5yZWFkZXJzLCAwKTsKKwlhdG9taWNfc2V0KCZjZC0+d3JpdGVycywgMCk7CiAJY2QtPmxhc3RfY2xvc2UgPSAwOwogCWNkLT5sYXN0X3dhcm4gPSAtMTsKIAlsaXN0X2FkZCgmY2QtPm90aGVycywgJmNhY2hlX2xpc3QpOwpAQCAtMTAyOSwxMSArMTAyOSwxMyBAQCBzdGF0aWMgaW50IGNhY2hlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCiAJCX0KIAkJcnAtPm9mZnNldCA9IDA7CiAJCXJwLT5xLnJlYWRlciA9IDE7Ci0JCWF0b21pY19pbmMoJmNkLT5yZWFkZXJzKTsKKwogCQlzcGluX2xvY2soJnF1ZXVlX2xvY2spOwogCQlsaXN0X2FkZCgmcnAtPnEubGlzdCwgJmNkLT5xdWV1ZSk7CiAJCXNwaW5fdW5sb2NrKCZxdWV1ZV9sb2NrKTsKIAl9CisJaWYgKGZpbHAtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKQorCQlhdG9taWNfaW5jKCZjZC0+d3JpdGVycyk7CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gcnA7CiAJcmV0dXJuIDA7CiB9CkBAIC0xMDYyLDggKzEwNjQsMTAgQEAgc3RhdGljIGludCBjYWNoZV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwLAogCQlmaWxwLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCQlrZnJlZShycCk7CiAKKwl9CisJaWYgKGZpbHAtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKSB7CisJCWF0b21pY19kZWMoJmNkLT53cml0ZXJzKTsKIAkJY2QtPmxhc3RfY2xvc2UgPSBzZWNvbmRzX3NpbmNlX2Jvb3QoKTsKLQkJYXRvbWljX2RlYygmY2QtPnJlYWRlcnMpOwogCX0KIAltb2R1bGVfcHV0KGNkLT5vd25lcik7CiAJcmV0dXJuIDA7CkBAIC0xMTcxLDcgKzExNzUsNyBAQCBzdGF0aWMgdm9pZCB3YXJuX25vX2xpc3RlbmVyKHN0cnVjdCBjYWNoZV9kZXRhaWwgKmRldGFpbCkKIAogc3RhdGljIGJvb2wgY2FjaGVfbGlzdGVuZXJzX2V4aXN0KHN0cnVjdCBjYWNoZV9kZXRhaWwgKmRldGFpbCkKIHsKLQlpZiAoYXRvbWljX3JlYWQoJmRldGFpbC0+cmVhZGVycykpCisJaWYgKGF0b21pY19yZWFkKCZkZXRhaWwtPndyaXRlcnMpKQogCQlyZXR1cm4gdHJ1ZTsKIAlpZiAoZGV0YWlsLT5sYXN0X2Nsb3NlID09IDApCiAJCS8qIFRoaXMgY2FjaGUgd2FzIG5ldmVyIG9wZW5lZCAqLwpAQCAtMTUyMCw2ICsxNTI0LDkgQEAgc3RhdGljIHNzaXplX3Qgd3JpdGVfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJY2QtPm5leHRjaGVjayA9IG5vdzsKIAljYWNoZV9mbHVzaCgpOwogCisJaWYgKGNkLT5mbHVzaCkKKwkJY2QtPmZsdXNoKCk7CisKIAkqcHBvcyArPSBjb3VudDsKIAlyZXR1cm4gY291bnQ7CiB9CmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL2NsbnQuYyBiL25ldC9zdW5ycGMvY2xudC5jCmluZGV4IGEwN2I1MTYuLmY3Zjc4NTYgMTAwNjQ0Ci0tLSBhL25ldC9zdW5ycGMvY2xudC5jCisrKyBiL25ldC9zdW5ycGMvY2xudC5jCkBAIC0xODM3LDcgKzE4MzcsNyBAQCBjYWxsX2FsbG9jYXRlKHN0cnVjdCBycGNfdGFzayAqdGFzaykKIAkJcmV0dXJuOwogCX0KIAotCXJwY19leGl0KHRhc2ssIC1FUkVTVEFSVFNZUyk7CisJcnBjX2NhbGxfcnBjZXJyb3IodGFzaywgLUVSRVNUQVJUU1lTKTsKIH0KIAogc3RhdGljIGludApAQCAtMTg2Miw2ICsxODYyLDcgQEAgcnBjX3hkcl9lbmNvZGUoc3RydWN0IHJwY190YXNrICp0YXNrKQogCQkgICAgIHJlcS0+cnFfcmJ1ZmZlciwKIAkJICAgICByZXEtPnJxX3JjdnNpemUpOwogCisJcmVxLT5ycV9yZXBseV9ieXRlc19yZWN2ZCA9IDA7CiAJcmVxLT5ycV9zbmRfYnVmLmhlYWRbMF0uaW92X2xlbiA9IDA7CiAJeGRyX2luaXRfZW5jb2RlKCZ4ZHIsICZyZXEtPnJxX3NuZF9idWYsCiAJCQlyZXEtPnJxX3NuZF9idWYuaGVhZFswXS5pb3ZfYmFzZSwgcmVxKTsKQEAgLTE4ODEsNiArMTg4Miw4IEBAIGNhbGxfZW5jb2RlKHN0cnVjdCBycGNfdGFzayAqdGFzaykKIAlpZiAoIXJwY190YXNrX25lZWRfZW5jb2RlKHRhc2spKQogCQlnb3RvIG91dDsKIAlkcHJpbnRfc3RhdHVzKHRhc2spOworCS8qIERlcXVldWUgdGFzayBmcm9tIHRoZSByZWNlaXZlIHF1ZXVlIHdoaWxlIHdlJ3JlIGVuY29kaW5nICovCisJeHBydF9yZXF1ZXN0X2RlcXVldWVfeHBydCh0YXNrKTsKIAkvKiBFbmNvZGUgaGVyZSBzbyB0aGF0IHJwY3NlY19nc3MgY2FuIHVzZSBjb3JyZWN0IHNlcXVlbmNlIG51bWJlci4gKi8KIAlycGNfeGRyX2VuY29kZSh0YXNrKTsKIAkvKiBEaWQgdGhlIGVuY29kZSByZXN1bHQgaW4gYW4gZXJyb3IgY29uZGl0aW9uPyAqLwpAQCAtMjQ3OSw2ICsyNDgyLDcgQEAgY2FsbF9kZWNvZGUoc3RydWN0IHJwY190YXNrICp0YXNrKQogCXN0cnVjdCBycGNfY2xudAkqY2xudCA9IHRhc2stPnRrX2NsaWVudDsKIAlzdHJ1Y3QgcnBjX3Jxc3QJKnJlcSA9IHRhc2stPnRrX3Jxc3RwOwogCXN0cnVjdCB4ZHJfc3RyZWFtIHhkcjsKKwlpbnQgZXJyOwogCiAJZHByaW50X3N0YXR1cyh0YXNrKTsKIApAQCAtMjUwMSw2ICsyNTA1LDE1IEBAIGNhbGxfZGVjb2RlKHN0cnVjdCBycGNfdGFzayAqdGFzaykKIAkgKiBiZWZvcmUgaXQgY2hhbmdlZCByZXEtPnJxX3JlcGx5X2J5dGVzX3JlY3ZkLgogCSAqLwogCXNtcF9ybWIoKTsKKworCS8qCisJICogRGlkIHdlIGV2ZXIgY2FsbCB4cHJ0X2NvbXBsZXRlX3Jxc3QoKT8gSWYgbm90LCB3ZSBzaG91bGQgYXNzdW1lCisJICogdGhlIG1lc3NhZ2UgaXMgaW5jb21wbGV0ZS4KKwkgKi8KKwllcnIgPSAtRUFHQUlOOworCWlmICghcmVxLT5ycV9yZXBseV9ieXRlc19yZWN2ZCkKKwkJZ290byBvdXQ7CisKIAlyZXEtPnJxX3Jjdl9idWYubGVuID0gcmVxLT5ycV9wcml2YXRlX2J1Zi5sZW47CiAKIAkvKiBDaGVjayB0aGF0IHRoZSBzb2Z0aXJxIHJlY2VpdmUgYnVmZmVyIGlzIHZhbGlkICovCkBAIC0yNTA5LDcgKzI1MjIsOSBAQCBjYWxsX2RlY29kZShzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spCiAKIAl4ZHJfaW5pdF9kZWNvZGUoJnhkciwgJnJlcS0+cnFfcmN2X2J1ZiwKIAkJCXJlcS0+cnFfcmN2X2J1Zi5oZWFkWzBdLmlvdl9iYXNlLCByZXEpOwotCXN3aXRjaCAocnBjX2RlY29kZV9oZWFkZXIodGFzaywgJnhkcikpIHsKKwllcnIgPSBycGNfZGVjb2RlX2hlYWRlcih0YXNrLCAmeGRyKTsKK291dDoKKwlzd2l0Y2ggKGVycikgewogCWNhc2UgMDoKIAkJdGFzay0+dGtfYWN0aW9uID0gcnBjX2V4aXRfdGFzazsKIAkJdGFzay0+dGtfc3RhdHVzID0gcnBjYXV0aF91bndyYXBfcmVzcCh0YXNrLCAmeGRyKTsKQEAgLTI1MTgsOSArMjUzMyw2IEBAIGNhbGxfZGVjb2RlKHN0cnVjdCBycGNfdGFzayAqdGFzaykKIAkJcmV0dXJuOwogCWNhc2UgLUVBR0FJTjoKIAkJdGFzay0+dGtfc3RhdHVzID0gMDsKLQkJeGRyX2ZyZWVfYnZlYygmcmVxLT5ycV9yY3ZfYnVmKTsKLQkJcmVxLT5ycV9yZXBseV9ieXRlc19yZWN2ZCA9IDA7Ci0JCXJlcS0+cnFfcmN2X2J1Zi5sZW4gPSAwOwogCQlpZiAodGFzay0+dGtfY2xpZW50LT5jbF9kaXNjcnRyeSkKIAkJCXhwcnRfY29uZGl0aW9uYWxfZGlzY29ubmVjdChyZXEtPnJxX3hwcnQsCiAJCQkJCQkgICAgcmVxLT5ycV9jb25uZWN0X2Nvb2tpZSk7CkBAIC0yNTYxLDcgKzI1NzMsNyBAQCBycGNfZW5jb2RlX2hlYWRlcihzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2ssIHN0cnVjdCB4ZHJfc3RyZWFtICp4ZHIpCiAJcmV0dXJuIDA7CiBvdXRfZmFpbDoKIAl0cmFjZV9ycGNfYmFkX2NhbGxoZHIodGFzayk7Ci0JcnBjX2V4aXQodGFzaywgZXJyb3IpOworCXJwY19jYWxsX3JwY2Vycm9yKHRhc2ssIGVycm9yKTsKIAlyZXR1cm4gZXJyb3I7CiB9CiAKQEAgLTI2MjgsNyArMjY0MCw3IEBAIHJwY19kZWNvZGVfaGVhZGVyKHN0cnVjdCBycGNfdGFzayAqdGFzaywgc3RydWN0IHhkcl9zdHJlYW0gKnhkcikKIAkJcmV0dXJuIC1FQUdBSU47CiAJfQogb3V0X2VycjoKLQlycGNfZXhpdCh0YXNrLCBlcnJvcik7CisJcnBjX2NhbGxfcnBjZXJyb3IodGFzaywgZXJyb3IpOwogCXJldHVybiBlcnJvcjsKIAogb3V0X3VucGFyc2FibGU6CmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3NjaGVkLmMgYi9uZXQvc3VucnBjL3NjaGVkLmMKaW5kZXggMWYyNzVhYi4uMzYwYWZlMSAxMDA2NDQKLS0tIGEvbmV0L3N1bnJwYy9zY2hlZC5jCisrKyBiL25ldC9zdW5ycGMvc2NoZWQuYwpAQCAtNTQxLDMzICs1NDEsMTQgQEAgcnBjX3dha2VfdXBfdGFza19vbl93cV9xdWV1ZV9hY3Rpb25fbG9ja2VkKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwKIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIHZvaWQKLXJwY193YWtlX3VwX3Rhc2tfb25fd3FfcXVldWVfbG9ja2VkKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwKLQkJc3RydWN0IHJwY193YWl0X3F1ZXVlICpxdWV1ZSwgc3RydWN0IHJwY190YXNrICp0YXNrKQotewotCXJwY193YWtlX3VwX3Rhc2tfb25fd3FfcXVldWVfYWN0aW9uX2xvY2tlZCh3cSwgcXVldWUsIHRhc2ssIE5VTEwsIE5VTEwpOwotfQotCiAvKgogICogV2FrZSB1cCBhIHF1ZXVlZCB0YXNrIHdoaWxlIHRoZSBxdWV1ZSBsb2NrIGlzIGJlaW5nIGhlbGQKICAqLwotc3RhdGljIHZvaWQgcnBjX3dha2VfdXBfdGFza19xdWV1ZV9sb2NrZWQoc3RydWN0IHJwY193YWl0X3F1ZXVlICpxdWV1ZSwgc3RydWN0IHJwY190YXNrICp0YXNrKQorc3RhdGljIHZvaWQgcnBjX3dha2VfdXBfdGFza19xdWV1ZV9sb2NrZWQoc3RydWN0IHJwY193YWl0X3F1ZXVlICpxdWV1ZSwKKwkJCQkJICBzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spCiB7Ci0JcnBjX3dha2VfdXBfdGFza19vbl93cV9xdWV1ZV9sb2NrZWQocnBjaW9kX3dvcmtxdWV1ZSwgcXVldWUsIHRhc2spOwotfQotCi0vKgotICogV2FrZSB1cCBhIHRhc2sgb24gYSBzcGVjaWZpYyBxdWV1ZQotICovCi12b2lkIHJwY193YWtlX3VwX3F1ZXVlZF90YXNrX29uX3dxKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwKLQkJc3RydWN0IHJwY193YWl0X3F1ZXVlICpxdWV1ZSwKLQkJc3RydWN0IHJwY190YXNrICp0YXNrKQotewotCWlmICghUlBDX0lTX1FVRVVFRCh0YXNrKSkKLQkJcmV0dXJuOwotCXNwaW5fbG9jaygmcXVldWUtPmxvY2spOwotCXJwY193YWtlX3VwX3Rhc2tfb25fd3FfcXVldWVfbG9ja2VkKHdxLCBxdWV1ZSwgdGFzayk7Ci0Jc3Bpbl91bmxvY2soJnF1ZXVlLT5sb2NrKTsKKwlycGNfd2FrZV91cF90YXNrX29uX3dxX3F1ZXVlX2FjdGlvbl9sb2NrZWQocnBjaW9kX3dvcmtxdWV1ZSwgcXVldWUsCisJCQkJCQkgICB0YXNrLCBOVUxMLCBOVUxMKTsKIH0KIAogLyoKQEAgLTkzMCw4ICs5MTEsMTAgQEAgc3RhdGljIHZvaWQgX19ycGNfZXhlY3V0ZShzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spCiAJCS8qCiAJCSAqIFNpZ25hbGxlZCB0YXNrcyBzaG91bGQgZXhpdCByYXRoZXIgdGhhbiBzbGVlcC4KIAkJICovCi0JCWlmIChSUENfU0lHTkFMTEVEKHRhc2spKQorCQlpZiAoUlBDX1NJR05BTExFRCh0YXNrKSkgeworCQkJdGFzay0+dGtfcnBjX3N0YXR1cyA9IC1FUkVTVEFSVFNZUzsKIAkJCXJwY19leGl0KHRhc2ssIC1FUkVTVEFSVFNZUyk7CisJCX0KIAogCQkvKgogCQkgKiBUaGUgcXVldWUtPmxvY2sgcHJvdGVjdHMgYWdhaW5zdCByYWNlcyB3aXRoCkBAIC05NjcsNiArOTUwLDcgQEAgc3RhdGljIHZvaWQgX19ycGNfZXhlY3V0ZShzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spCiAJCQkgKi8KIAkJCWRwcmludGsoIlJQQzogJTV1IGdvdCBzaWduYWxcbiIsIHRhc2stPnRrX3BpZCk7CiAJCQlzZXRfYml0KFJQQ19UQVNLX1NJR05BTExFRCwgJnRhc2stPnRrX3J1bnN0YXRlKTsKKwkJCXRhc2stPnRrX3JwY19zdGF0dXMgPSAtRVJFU1RBUlRTWVM7CiAJCQlycGNfZXhpdCh0YXNrLCAtRVJFU1RBUlRTWVMpOwogCQl9CiAJCWRwcmludGsoIlJQQzogJTV1IHN5bmMgdGFzayByZXN1bWluZ1xuIiwgdGFzay0+dGtfcGlkKTsKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvc3ZjLmMgYi9uZXQvc3VucnBjL3N2Yy5jCmluZGV4IDIyMGI3OTkuLmQxMWI3MDUgMTAwNjQ0Ci0tLSBhL25ldC9zdW5ycGMvc3ZjLmMKKysrIGIvbmV0L3N1bnJwYy9zdmMuYwpAQCAtMTIzMyw4ICsxMjMzLDggQEAgc3ZjX2dlbmVyaWNfaW5pdF9yZXF1ZXN0KHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsCiAKIAlpZiAocnFzdHAtPnJxX3ZlcnMgPj0gcHJvZ3AtPnBnX252ZXJzICkKIAkJZ290byBlcnJfYmFkX3ZlcnM7Ci0JICB2ZXJzcCA9IHByb2dwLT5wZ192ZXJzW3Jxc3RwLT5ycV92ZXJzXTsKLQkgIGlmICghdmVyc3ApCisJdmVyc3AgPSBwcm9ncC0+cGdfdmVyc1tycXN0cC0+cnFfdmVyc107CisJaWYgKCF2ZXJzcCkKIAkJZ290byBlcnJfYmFkX3ZlcnM7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy94ZHIuYyBiL25ldC9zdW5ycGMveGRyLmMKaW5kZXggNDhjOTNiOS4uMTRiYTllNyAxMDA2NDQKLS0tIGEvbmV0L3N1bnJwYy94ZHIuYworKysgYi9uZXQvc3VucnBjL3hkci5jCkBAIC01NjAsNyArNTYwLDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoeGRyX2luaXRfZW5jb2RlKTsKICAqIHJlcXVpcmVkIGF0IHRoZSBlbmQgb2YgZW5jb2RpbmcsIG9yIGFueSBvdGhlciB0aW1lIHdoZW4gdGhlIHhkcl9idWYKICAqIGRhdGEgbWlnaHQgYmUgcmVhZC4KICAqLwotdm9pZCB4ZHJfY29tbWl0X2VuY29kZShzdHJ1Y3QgeGRyX3N0cmVhbSAqeGRyKQoraW5saW5lIHZvaWQgeGRyX2NvbW1pdF9lbmNvZGUoc3RydWN0IHhkcl9zdHJlYW0gKnhkcikKIHsKIAlpbnQgc2hpZnQgPSB4ZHItPnNjcmF0Y2guaW92X2xlbjsKIAl2b2lkICpwYWdlOwpAQCAtMTIzNiw0MyArMTIzNiw2MCBAQCB4ZHJfZW5jb2RlX3dvcmQoc3RydWN0IHhkcl9idWYgKmJ1ZiwgdW5zaWduZWQgaW50IGJhc2UsIHUzMiBvYmopCiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh4ZHJfZW5jb2RlX3dvcmQpOwogCi0vKiBJZiB0aGUgbmV0b2JqIHN0YXJ0aW5nIG9mZnNldCBieXRlcyBmcm9tIHRoZSBzdGFydCBvZiB4ZHJfYnVmIGlzIGNvbnRhaW5lZAotICogZW50aXJlbHkgaW4gdGhlIGhlYWQgb3IgdGhlIHRhaWwsIHNldCBvYmplY3QgdG8gcG9pbnQgdG8gaXQ7IG90aGVyd2lzZQotICogdHJ5IHRvIGZpbmQgc3BhY2UgZm9yIGl0IGF0IHRoZSBlbmQgb2YgdGhlIHRhaWwsIGNvcHkgaXQgdGhlcmUsIGFuZAotICogc2V0IG9iaiB0byBwb2ludCB0byBpdC4gKi8KLWludCB4ZHJfYnVmX3JlYWRfbmV0b2JqKHN0cnVjdCB4ZHJfYnVmICpidWYsIHN0cnVjdCB4ZHJfbmV0b2JqICpvYmosIHVuc2lnbmVkIGludCBvZmZzZXQpCisvKioKKyAqIHhkcl9idWZfcmVhZF9taWMoKSAtIG9idGFpbiB0aGUgYWRkcmVzcyBvZiB0aGUgR1NTIG1pYyBmcm9tIHhkciBidWYKKyAqIEBidWY6IHBvaW50ZXIgdG8gYnVmZmVyIGNvbnRhaW5pbmcgYSBtaWMKKyAqIEBtaWM6IG9uIHN1Y2Nlc3MsIHJldHVybnMgdGhlIGFkZHJlc3Mgb2YgdGhlIG1pYworICogQG9mZnNldDogdGhlIG9mZnNldCBpbiBidWYgd2hlcmUgbWljIG1heSBiZSBmb3VuZAorICoKKyAqIFRoaXMgZnVuY3Rpb24gbWF5IG1vZGlmeSB0aGUgeGRyIGJ1ZiBpZiB0aGUgbWljIGlzIGZvdW5kIHRvIGJlIHN0cmFkZGxpbmcKKyAqIGEgYm91bmRhcnkgYmV0d2VlbiBoZWFkLCBwYWdlcywgYW5kIHRhaWwuICBPbiBzdWNjZXNzIHRoZSBtaWMgY2FuIGJlIHJlYWQKKyAqIGZyb20gdGhlIGFkZHJlc3MgcmV0dXJuZWQuICBUaGVyZSBpcyBubyBuZWVkIHRvIGZyZWUgdGhlIG1pYy4KKyAqCisgKiBSZXR1cm46IFN1Y2Nlc3MgcmV0dXJucyAwLCBvdGhlcndpc2UgYW4gaW50ZWdlciBlcnJvci4KKyAqLworaW50IHhkcl9idWZfcmVhZF9taWMoc3RydWN0IHhkcl9idWYgKmJ1Ziwgc3RydWN0IHhkcl9uZXRvYmogKm1pYywgdW5zaWduZWQgaW50IG9mZnNldCkKIHsKIAlzdHJ1Y3QgeGRyX2J1ZiBzdWJidWY7CisJdW5zaWduZWQgaW50IGJvdW5kYXJ5OwogCi0JaWYgKHhkcl9kZWNvZGVfd29yZChidWYsIG9mZnNldCwgJm9iai0+bGVuKSkKKwlpZiAoeGRyX2RlY29kZV93b3JkKGJ1Ziwgb2Zmc2V0LCAmbWljLT5sZW4pKQogCQlyZXR1cm4gLUVGQVVMVDsKLQlpZiAoeGRyX2J1Zl9zdWJzZWdtZW50KGJ1ZiwgJnN1YmJ1Ziwgb2Zmc2V0ICsgNCwgb2JqLT5sZW4pKQorCW9mZnNldCArPSA0OworCisJLyogSXMgdGhlIG1pYyBwYXJ0aWFsbHkgaW4gdGhlIGhlYWQ/ICovCisJYm91bmRhcnkgPSBidWYtPmhlYWRbMF0uaW92X2xlbjsKKwlpZiAob2Zmc2V0IDwgYm91bmRhcnkgJiYgKG9mZnNldCArIG1pYy0+bGVuKSA+IGJvdW5kYXJ5KQorCQl4ZHJfc2hpZnRfYnVmKGJ1ZiwgYm91bmRhcnkgLSBvZmZzZXQpOworCisJLyogSXMgdGhlIG1pYyBwYXJ0aWFsbHkgaW4gdGhlIHBhZ2VzPyAqLworCWJvdW5kYXJ5ICs9IGJ1Zi0+cGFnZV9sZW47CisJaWYgKG9mZnNldCA8IGJvdW5kYXJ5ICYmIChvZmZzZXQgKyBtaWMtPmxlbikgPiBib3VuZGFyeSkKKwkJeGRyX3Nocmlua19wYWdlbGVuKGJ1ZiwgYm91bmRhcnkgLSBvZmZzZXQpOworCisJaWYgKHhkcl9idWZfc3Vic2VnbWVudChidWYsICZzdWJidWYsIG9mZnNldCwgbWljLT5sZW4pKQogCQlyZXR1cm4gLUVGQVVMVDsKIAotCS8qIElzIHRoZSBvYmogY29udGFpbmVkIGVudGlyZWx5IGluIHRoZSBoZWFkPyAqLwotCW9iai0+ZGF0YSA9IHN1YmJ1Zi5oZWFkWzBdLmlvdl9iYXNlOwotCWlmIChzdWJidWYuaGVhZFswXS5pb3ZfbGVuID09IG9iai0+bGVuKQorCS8qIElzIHRoZSBtaWMgY29udGFpbmVkIGVudGlyZWx5IGluIHRoZSBoZWFkPyAqLworCW1pYy0+ZGF0YSA9IHN1YmJ1Zi5oZWFkWzBdLmlvdl9iYXNlOworCWlmIChzdWJidWYuaGVhZFswXS5pb3ZfbGVuID09IG1pYy0+bGVuKQogCQlyZXR1cm4gMDsKLQkvKiAuLm9yIGlzIHRoZSBvYmogY29udGFpbmVkIGVudGlyZWx5IGluIHRoZSB0YWlsPyAqLwotCW9iai0+ZGF0YSA9IHN1YmJ1Zi50YWlsWzBdLmlvdl9iYXNlOwotCWlmIChzdWJidWYudGFpbFswXS5pb3ZfbGVuID09IG9iai0+bGVuKQorCS8qIC4ub3IgaXMgdGhlIG1pYyBjb250YWluZWQgZW50aXJlbHkgaW4gdGhlIHRhaWw/ICovCisJbWljLT5kYXRhID0gc3ViYnVmLnRhaWxbMF0uaW92X2Jhc2U7CisJaWYgKHN1YmJ1Zi50YWlsWzBdLmlvdl9sZW4gPT0gbWljLT5sZW4pCiAJCXJldHVybiAwOwogCi0JLyogdXNlIGVuZCBvZiB0YWlsIGFzIHN0b3JhZ2UgZm9yIG9iajoKLQkgKiAoV2UgZG9uJ3QgY29weSB0byB0aGUgYmVnaW5uaW5nIGJlY2F1c2UgdGhlbiB3ZSdkIGhhdmUKLQkgKiB0byB3b3JyeSBhYm91dCBkb2luZyBhIHBvdGVudGlhbGx5IG92ZXJsYXBwaW5nIGNvcHkuCi0JICogVGhpcyBhc3N1bWVzIHRoZSBvYmplY3QgaXMgYXQgbW9zdCBoYWxmIHRoZSBsZW5ndGggb2YgdGhlCi0JICogdGFpbC4pICovCi0JaWYgKG9iai0+bGVuID4gYnVmLT5idWZsZW4gLSBidWYtPmxlbikKKwkvKiBGaW5kIGEgY29udGlndW91cyBhcmVhIGluIEBidWYgdG8gaG9sZCBhbGwgb2YgQG1pYyAqLworCWlmIChtaWMtPmxlbiA+IGJ1Zi0+YnVmbGVuIC0gYnVmLT5sZW4pCiAJCXJldHVybiAtRU5PTUVNOwogCWlmIChidWYtPnRhaWxbMF0uaW92X2xlbiAhPSAwKQotCQlvYmotPmRhdGEgPSBidWYtPnRhaWxbMF0uaW92X2Jhc2UgKyBidWYtPnRhaWxbMF0uaW92X2xlbjsKKwkJbWljLT5kYXRhID0gYnVmLT50YWlsWzBdLmlvdl9iYXNlICsgYnVmLT50YWlsWzBdLmlvdl9sZW47CiAJZWxzZQotCQlvYmotPmRhdGEgPSBidWYtPmhlYWRbMF0uaW92X2Jhc2UgKyBidWYtPmhlYWRbMF0uaW92X2xlbjsKLQlfX3JlYWRfYnl0ZXNfZnJvbV94ZHJfYnVmKCZzdWJidWYsIG9iai0+ZGF0YSwgb2JqLT5sZW4pOworCQltaWMtPmRhdGEgPSBidWYtPmhlYWRbMF0uaW92X2Jhc2UgKyBidWYtPmhlYWRbMF0uaW92X2xlbjsKKwlfX3JlYWRfYnl0ZXNfZnJvbV94ZHJfYnVmKCZzdWJidWYsIG1pYy0+ZGF0YSwgbWljLT5sZW4pOwogCXJldHVybiAwOwogfQotRVhQT1JUX1NZTUJPTF9HUEwoeGRyX2J1Zl9yZWFkX25ldG9iaik7CitFWFBPUlRfU1lNQk9MX0dQTCh4ZHJfYnVmX3JlYWRfbWljKTsKIAogLyogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIGVsc2UgYSBuZWdhdGl2ZSBlcnJvciBjb2RlLiAqLwogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy94cHJ0LmMgYi9uZXQvc3VucnBjL3hwcnQuYwppbmRleCAyZTcxZjU0Li44YTQ1YjNjIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnQuYworKysgYi9uZXQvc3VucnBjL3hwcnQuYwpAQCAtNDU2LDYgKzQ1NiwxMiBAQCB2b2lkIHhwcnRfcmVsZWFzZV9ycXN0X2Nvbmcoc3RydWN0IHJwY190YXNrICp0YXNrKQogfQogRVhQT1JUX1NZTUJPTF9HUEwoeHBydF9yZWxlYXNlX3Jxc3RfY29uZyk7CiAKK3N0YXRpYyB2b2lkIHhwcnRfY2xlYXJfY29uZ2VzdGlvbl93aW5kb3dfd2FpdF9sb2NrZWQoc3RydWN0IHJwY194cHJ0ICp4cHJ0KQoreworCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoWFBSVF9DV05EX1dBSVQsICZ4cHJ0LT5zdGF0ZSkpCisJCV9feHBydF9sb2NrX3dyaXRlX25leHRfY29uZyh4cHJ0KTsKK30KKwogLyoKICAqIENsZWFyIHRoZSBjb25nZXN0aW9uIHdpbmRvdyB3YWl0IGZsYWcgYW5kIHdha2UgdXAgdGhlIG5leHQKICAqIGVudHJ5IG9uIHhwcnQtPnNlbmRpbmcKQEAgLTY3MSw2ICs2NzcsNyBAQCB2b2lkIHhwcnRfZGlzY29ubmVjdF9kb25lKHN0cnVjdCBycGNfeHBydCAqeHBydCkKIAlzcGluX2xvY2soJnhwcnQtPnRyYW5zcG9ydF9sb2NrKTsKIAl4cHJ0X2NsZWFyX2Nvbm5lY3RlZCh4cHJ0KTsKIAl4cHJ0X2NsZWFyX3dyaXRlX3NwYWNlX2xvY2tlZCh4cHJ0KTsKKwl4cHJ0X2NsZWFyX2Nvbmdlc3Rpb25fd2luZG93X3dhaXRfbG9ja2VkKHhwcnQpOwogCXhwcnRfd2FrZV9wZW5kaW5nX3Rhc2tzKHhwcnQsIC1FTk9UQ09OTik7CiAJc3Bpbl91bmxvY2soJnhwcnQtPnRyYW5zcG9ydF9sb2NrKTsKIH0KQEAgLTEzMjQsNiArMTMzMSwzNiBAQCB4cHJ0X3JlcXVlc3RfZGVxdWV1ZV90cmFuc21pdChzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spCiB9CiAKIC8qKgorICogeHBydF9yZXF1ZXN0X2RlcXVldWVfeHBydCAtIHJlbW92ZSBhIHRhc2sgZnJvbSB0aGUgdHJhbnNtaXQrcmVjZWl2ZSBxdWV1ZQorICogQHRhc2s6IHBvaW50ZXIgdG8gcnBjX3Rhc2sKKyAqCisgKiBSZW1vdmUgYSB0YXNrIGZyb20gdGhlIHRyYW5zbWl0IGFuZCByZWNlaXZlIHF1ZXVlcywgYW5kIGVuc3VyZSB0aGF0CisgKiBpdCBpcyBub3QgcGlubmVkIGJ5IHRoZSByZWNlaXZlIHdvcmsgaXRlbS4KKyAqLwordm9pZAoreHBydF9yZXF1ZXN0X2RlcXVldWVfeHBydChzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spCit7CisJc3RydWN0IHJwY19ycXN0CSpyZXEgPSB0YXNrLT50a19ycXN0cDsKKwlzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQgPSByZXEtPnJxX3hwcnQ7CisKKwlpZiAodGVzdF9iaXQoUlBDX1RBU0tfTkVFRF9YTUlULCAmdGFzay0+dGtfcnVuc3RhdGUpIHx8CisJICAgIHRlc3RfYml0KFJQQ19UQVNLX05FRURfUkVDViwgJnRhc2stPnRrX3J1bnN0YXRlKSB8fAorCSAgICB4cHJ0X2lzX3Bpbm5lZF9ycXN0KHJlcSkpIHsKKwkJc3Bpbl9sb2NrKCZ4cHJ0LT5xdWV1ZV9sb2NrKTsKKwkJeHBydF9yZXF1ZXN0X2RlcXVldWVfdHJhbnNtaXRfbG9ja2VkKHRhc2spOworCQl4cHJ0X3JlcXVlc3RfZGVxdWV1ZV9yZWNlaXZlX2xvY2tlZCh0YXNrKTsKKwkJd2hpbGUgKHhwcnRfaXNfcGlubmVkX3Jxc3QocmVxKSkgeworCQkJc2V0X2JpdChSUENfVEFTS19NU0dfUElOX1dBSVQsICZ0YXNrLT50a19ydW5zdGF0ZSk7CisJCQlzcGluX3VubG9jaygmeHBydC0+cXVldWVfbG9jayk7CisJCQl4cHJ0X3dhaXRfb25fcGlubmVkX3Jxc3QocmVxKTsKKwkJCXNwaW5fbG9jaygmeHBydC0+cXVldWVfbG9jayk7CisJCQljbGVhcl9iaXQoUlBDX1RBU0tfTVNHX1BJTl9XQUlULCAmdGFzay0+dGtfcnVuc3RhdGUpOworCQl9CisJCXNwaW5fdW5sb2NrKCZ4cHJ0LT5xdWV1ZV9sb2NrKTsKKwl9Cit9CisKKy8qKgogICogeHBydF9yZXF1ZXN0X3ByZXBhcmUgLSBwcmVwYXJlIGFuIGVuY29kZWQgcmVxdWVzdCBmb3IgdHJhbnNwb3J0CiAgKiBAcmVxOiBwb2ludGVyIHRvIHJwY19ycXN0CiAgKgpAQCAtMTc0NywyOCArMTc4NCw2IEBAIHZvaWQgeHBydF9yZXRyeV9yZXNlcnZlKHN0cnVjdCBycGNfdGFzayAqdGFzaykKIAl4cHJ0X2RvX3Jlc2VydmUoeHBydCwgdGFzayk7CiB9CiAKLXN0YXRpYyB2b2lkCi14cHJ0X3JlcXVlc3RfZGVxdWV1ZV9hbGwoc3RydWN0IHJwY190YXNrICp0YXNrLCBzdHJ1Y3QgcnBjX3Jxc3QgKnJlcSkKLXsKLQlzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQgPSByZXEtPnJxX3hwcnQ7Ci0KLQlpZiAodGVzdF9iaXQoUlBDX1RBU0tfTkVFRF9YTUlULCAmdGFzay0+dGtfcnVuc3RhdGUpIHx8Ci0JICAgIHRlc3RfYml0KFJQQ19UQVNLX05FRURfUkVDViwgJnRhc2stPnRrX3J1bnN0YXRlKSB8fAotCSAgICB4cHJ0X2lzX3Bpbm5lZF9ycXN0KHJlcSkpIHsKLQkJc3Bpbl9sb2NrKCZ4cHJ0LT5xdWV1ZV9sb2NrKTsKLQkJeHBydF9yZXF1ZXN0X2RlcXVldWVfdHJhbnNtaXRfbG9ja2VkKHRhc2spOwotCQl4cHJ0X3JlcXVlc3RfZGVxdWV1ZV9yZWNlaXZlX2xvY2tlZCh0YXNrKTsKLQkJd2hpbGUgKHhwcnRfaXNfcGlubmVkX3Jxc3QocmVxKSkgewotCQkJc2V0X2JpdChSUENfVEFTS19NU0dfUElOX1dBSVQsICZ0YXNrLT50a19ydW5zdGF0ZSk7Ci0JCQlzcGluX3VubG9jaygmeHBydC0+cXVldWVfbG9jayk7Ci0JCQl4cHJ0X3dhaXRfb25fcGlubmVkX3Jxc3QocmVxKTsKLQkJCXNwaW5fbG9jaygmeHBydC0+cXVldWVfbG9jayk7Ci0JCQljbGVhcl9iaXQoUlBDX1RBU0tfTVNHX1BJTl9XQUlULCAmdGFzay0+dGtfcnVuc3RhdGUpOwotCQl9Ci0JCXNwaW5fdW5sb2NrKCZ4cHJ0LT5xdWV1ZV9sb2NrKTsKLQl9Ci19Ci0KIC8qKgogICogeHBydF9yZWxlYXNlIC0gcmVsZWFzZSBhbiBSUEMgcmVxdWVzdCBzbG90CiAgKiBAdGFzazogdGFzayB3aGljaCBpcyBmaW5pc2hlZCB3aXRoIHRoZSBzbG90CkBAIC0xNzg4LDcgKzE4MDMsNyBAQCB2b2lkIHhwcnRfcmVsZWFzZShzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spCiAJfQogCiAJeHBydCA9IHJlcS0+cnFfeHBydDsKLQl4cHJ0X3JlcXVlc3RfZGVxdWV1ZV9hbGwodGFzaywgcmVxKTsKKwl4cHJ0X3JlcXVlc3RfZGVxdWV1ZV94cHJ0KHRhc2spOwogCXNwaW5fbG9jaygmeHBydC0+dHJhbnNwb3J0X2xvY2spOwogCXhwcnQtPm9wcy0+cmVsZWFzZV94cHJ0KHhwcnQsIHRhc2spOwogCWlmICh4cHJ0LT5vcHMtPnJlbGVhc2VfcmVxdWVzdCkKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMveHBydHJkbWEvYmFja2NoYW5uZWwuYyBiL25ldC9zdW5ycGMveHBydHJkbWEvYmFja2NoYW5uZWwuYwppbmRleCA1OWU2MjRiLi41MGUwNzVmIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnRyZG1hL2JhY2tjaGFubmVsLmMKKysrIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS9iYWNrY2hhbm5lbC5jCkBAIC01NCw5ICs1NCw3IEBAIHNpemVfdCB4cHJ0X3JkbWFfYmNfbWF4cGF5bG9hZChzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQpCiAKIHVuc2lnbmVkIGludCB4cHJ0X3JkbWFfYmNfbWF4X3Nsb3RzKHN0cnVjdCBycGNfeHBydCAqeHBydCkKIHsKLQlzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQgPSBycGN4X3RvX3JkbWF4KHhwcnQpOwotCi0JcmV0dXJuIHJfeHBydC0+cnhfYnVmLnJiX2JjX3Nydl9tYXhfcmVxdWVzdHM7CisJcmV0dXJuIFJQQ1JETUFfQkFDS1dBUkRfV1JTID4+IDE7CiB9CiAKIHN0YXRpYyBpbnQgcnBjcmRtYV9iY19tYXJzaGFsX3JlcGx5KHN0cnVjdCBycGNfcnFzdCAqcnFzdCkKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMveHBydHJkbWEvZnJ3cl9vcHMuYyBiL25ldC9zdW5ycGMveHBydHJkbWEvZnJ3cl9vcHMuYwppbmRleCAwYjZkYWQ3Li4zMDA2NWEyIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnRyZG1hL2Zyd3Jfb3BzLmMKKysrIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS9mcndyX29wcy5jCkBAIC03LDY3ICs3LDM3IEBACiAvKiBMaWdodHdlaWdodCBtZW1vcnkgcmVnaXN0cmF0aW9uIHVzaW5nIEZhc3QgUmVnaXN0cmF0aW9uIFdvcmsKICAqIFJlcXVlc3RzIChGUldSKS4KICAqCi0gKiBGUldSIGZlYXR1cmVzIG9yZGVyZWQgYXN5bmNocm9ub3VzIHJlZ2lzdHJhdGlvbiBhbmQgZGVyZWdpc3RyYXRpb24KLSAqIG9mIGFyYml0cmFyaWx5IHNpemVkIG1lbW9yeSByZWdpb25zLiBUaGlzIGlzIHRoZSBmYXN0ZXN0IGFuZCBzYWZlc3QKKyAqIEZSV1IgZmVhdHVyZXMgb3JkZXJlZCBhc3luY2hyb25vdXMgcmVnaXN0cmF0aW9uIGFuZCBpbnZhbGlkYXRpb24KKyAqIG9mIGFyYml0cmFyaWx5LXNpemVkIG1lbW9yeSByZWdpb25zLiBUaGlzIGlzIHRoZSBmYXN0ZXN0IGFuZCBzYWZlc3QKICAqIGJ1dCBtb3N0IGNvbXBsZXggbWVtb3J5IHJlZ2lzdHJhdGlvbiBtb2RlLgogICovCiAKIC8qIE5vcm1hbCBvcGVyYXRpb24KICAqCi0gKiBBIE1lbW9yeSBSZWdpb24gaXMgcHJlcGFyZWQgZm9yIFJETUEgUkVBRCBvciBXUklURSB1c2luZyBhIEZBU1RfUkVHCisgKiBBIE1lbW9yeSBSZWdpb24gaXMgcHJlcGFyZWQgZm9yIFJETUEgUmVhZCBvciBXcml0ZSB1c2luZyBhIEZBU1RfUkVHCiAgKiBXb3JrIFJlcXVlc3QgKGZyd3JfbWFwKS4gV2hlbiB0aGUgUkRNQSBvcGVyYXRpb24gaXMgZmluaXNoZWQsIHRoaXMKICAqIE1lbW9yeSBSZWdpb24gaXMgaW52YWxpZGF0ZWQgdXNpbmcgYSBMT0NBTF9JTlYgV29yayBSZXF1ZXN0Ci0gKiAoZnJ3cl91bm1hcF9zeW5jKS4KKyAqIChmcndyX3VubWFwX2FzeW5jIGFuZCBmcndyX3VubWFwX3N5bmMpLgogICoKLSAqIFR5cGljYWxseSB0aGVzZSBXb3JrIFJlcXVlc3RzIGFyZSBub3Qgc2lnbmFsZWQsIGFuZCBuZWl0aGVyIGFyZSBSRE1BCi0gKiBTRU5EIFdvcmsgUmVxdWVzdHMgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzaWduYWxpbmcgb2NjYXNpb25hbGx5IHRvCi0gKiBwcmV2ZW50IHByb3ZpZGVyIHdvcmsgcXVldWUgb3ZlcmZsb3dzKS4gVGhpcyBncmVhdGx5IHJlZHVjZXMgSENBCisgKiBUeXBpY2FsbHkgRkFTVF9SRUcgV29yayBSZXF1ZXN0cyBhcmUgbm90IHNpZ25hbGVkLCBhbmQgbmVpdGhlciBhcmUKKyAqIFJETUEgU2VuZCBXb3JrIFJlcXVlc3RzICh3aXRoIHRoZSBleGNlcHRpb24gb2Ygc2lnbmFsaW5nIG9jY2FzaW9uYWxseQorICogdG8gcHJldmVudCBwcm92aWRlciB3b3JrIHF1ZXVlIG92ZXJmbG93cykuIFRoaXMgZ3JlYXRseSByZWR1Y2VzIEhDQQogICogaW50ZXJydXB0IHdvcmtsb2FkLgotICoKLSAqIEFzIGFuIG9wdGltaXphdGlvbiwgZnJ3cl91bm1hcCBtYXJrcyBNUnMgSU5WQUxJRCBiZWZvcmUgdGhlCi0gKiBMT0NBTF9JTlYgV1IgaXMgcG9zdGVkLiBJZiBwb3N0aW5nIHN1Y2NlZWRzLCB0aGUgTVIgaXMgcGxhY2VkIG9uCi0gKiByYl9tcnMgaW1tZWRpYXRlbHkgc28gdGhhdCBubyB3b3JrIChsaWtlIG1hbmFnaW5nIGEgbGlua2VkIGxpc3QKLSAqIHVuZGVyIGEgc3BpbmxvY2spIGlzIG5lZWRlZCBpbiB0aGUgY29tcGxldGlvbiB1cGNhbGwuCi0gKgotICogQnV0IHRoaXMgbWVhbnMgdGhhdCBmcndyX21hcCgpIGNhbiBvY2Nhc2lvbmFsbHkgZW5jb3VudGVyIGFuIE1SCi0gKiB0aGF0IGlzIElOVkFMSUQgYnV0IHRoZSBMT0NBTF9JTlYgV1IgaGFzIG5vdCBjb21wbGV0ZWQuIFdvcmsgUXVldWUKLSAqIG9yZGVyaW5nIHByZXZlbnRzIGEgc3Vic2VxdWVudCBGQVNUX1JFRyBXUiBmcm9tIGV4ZWN1dGluZyBhZ2FpbnN0Ci0gKiB0aGF0IE1SIHdoaWxlIGl0IGlzIHN0aWxsIGJlaW5nIGludmFsaWRhdGVkLgogICovCiAKIC8qIFRyYW5zcG9ydCByZWNvdmVyeQogICoKLSAqIC0+b3BfbWFwIGFuZCB0aGUgdHJhbnNwb3J0IGNvbm5lY3Qgd29ya2VyIGNhbm5vdCBydW4gYXQgdGhlIHNhbWUKLSAqIHRpbWUsIGJ1dCAtPm9wX3VubWFwIGNhbiBmaXJlIHdoaWxlIHRoZSB0cmFuc3BvcnQgY29ubmVjdCB3b3JrZXIKLSAqIGlzIHJ1bm5pbmcuIFRodXMgTVIgcmVjb3ZlcnkgaXMgaGFuZGxlZCBpbiAtPm9wX21hcCwgdG8gZ3VhcmFudGVlCi0gKiB0aGF0IHJlY292ZXJlZCBNUnMgYXJlIG93bmVkIGJ5IGEgc2VuZGluZyBSUEMsIGFuZCBub3Qgb25lIHdoZXJlCi0gKiAtPm9wX3VubWFwIGNvdWxkIGZpcmUgYXQgdGhlIHNhbWUgdGltZSB0cmFuc3BvcnQgcmVjb25uZWN0IGlzCi0gKiBiZWluZyBkb25lLgorICogZnJ3cl9tYXAgYW5kIGZyd3JfdW5tYXBfKiBjYW5ub3QgcnVuIGF0IHRoZSBzYW1lIHRpbWUgdGhlIHRyYW5zcG9ydAorICogY29ubmVjdCB3b3JrZXIgaXMgcnVubmluZy4gVGhlIGNvbm5lY3Qgd29ya2VyIGhvbGRzIHRoZSB0cmFuc3BvcnQKKyAqIHNlbmQgbG9jaywganVzdCBhcyAtPnNlbmRfcmVxdWVzdCBkb2VzLiBUaGlzIHByZXZlbnRzIGZyd3JfbWFwIGFuZAorICogdGhlIGNvbm5lY3Qgd29ya2VyIGZyb20gcnVubmluZyBjb25jdXJyZW50bHkuIFdoZW4gYSBjb25uZWN0aW9uIGlzCisgKiBjbG9zZWQsIHRoZSBSZWNlaXZlIGNvbXBsZXRpb24gcXVldWUgaXMgZHJhaW5lZCBiZWZvcmUgdGhlIGFsbG93aW5nCisgKiB0aGUgY29ubmVjdCB3b3JrZXIgdG8gZ2V0IGNvbnRyb2wuIFRoaXMgcHJldmVudHMgZnJ3cl91bm1hcCBhbmQgdGhlCisgKiBjb25uZWN0IHdvcmtlciBmcm9tIHJ1bm5pbmcgY29uY3VycmVudGx5LgogICoKLSAqIFdoZW4gdGhlIHVuZGVybHlpbmcgdHJhbnNwb3J0IGRpc2Nvbm5lY3RzLCBNUnMgYXJlIGxlZnQgaW4gb25lIG9mCi0gKiBmb3VyIHN0YXRlczoKLSAqCi0gKiBJTlZBTElEOglUaGUgTVIgd2FzIG5vdCBpbiB1c2UgYmVmb3JlIHRoZSBRUCBlbnRlcmVkIEVSUk9SIHN0YXRlLgotICoKLSAqIFZBTElEOglUaGUgTVIgd2FzIHJlZ2lzdGVyZWQgYmVmb3JlIHRoZSBRUCBlbnRlcmVkIEVSUk9SIHN0YXRlLgotICoKLSAqIEZMVVNIRURfRlI6CVRoZSBNUiB3YXMgYmVpbmcgcmVnaXN0ZXJlZCB3aGVuIHRoZSBRUCBlbnRlcmVkIEVSUk9SCi0gKgkJc3RhdGUsIGFuZCB0aGUgcGVuZGluZyBXUiB3YXMgZmx1c2hlZC4KLSAqCi0gKiBGTFVTSEVEX0xJOglUaGUgTVIgd2FzIGJlaW5nIGludmFsaWRhdGVkIHdoZW4gdGhlIFFQIGVudGVyZWQgRVJST1IKLSAqCQlzdGF0ZSwgYW5kIHRoZSBwZW5kaW5nIFdSIHdhcyBmbHVzaGVkLgotICoKLSAqIFdoZW4gZnJ3cl9tYXAgZW5jb3VudGVycyBGTFVTSEVEIGFuZCBWQUxJRCBNUnMsIHRoZXkgYXJlIHJlY292ZXJlZAotICogd2l0aCBpYl9kZXJlZ19tciBhbmQgdGhlbiBhcmUgcmUtaW5pdGlhbGl6ZWQuIEJlY2F1c2UgTVIgcmVjb3ZlcnkKLSAqIGFsbG9jYXRlcyBmcmVzaCByZXNvdXJjZXMsIGl0IGlzIGRlZmVycmVkIHRvIGEgd29ya3F1ZXVlLCBhbmQgdGhlCi0gKiByZWNvdmVyZWQgTVJzIGFyZSBwbGFjZWQgYmFjayBvbiB0aGUgcmJfbXJzIGxpc3Qgd2hlbiByZWNvdmVyeSBpcwotICogY29tcGxldGUuIGZyd3JfbWFwIGFsbG9jYXRlcyBhbm90aGVyIE1SIGZvciB0aGUgY3VycmVudCBSUEMgd2hpbGUKLSAqIHRoZSBicm9rZW4gTVIgaXMgcmVzZXQuCi0gKgotICogVG8gZW5zdXJlIHRoYXQgZnJ3cl9tYXAgZG9lc24ndCBlbmNvdW50ZXIgYW4gTVIgdGhhdCBpcyBtYXJrZWQKLSAqIElOVkFMSUQgYnV0IHRoYXQgaXMgYWJvdXQgdG8gYmUgZmx1c2hlZCBkdWUgdG8gYSBwcmV2aW91cyB0cmFuc3BvcnQKLSAqIGRpc2Nvbm5lY3QsIHRoZSB0cmFuc3BvcnQgY29ubmVjdCB3b3JrZXIgYXR0ZW1wdHMgdG8gZHJhaW4gYWxsCi0gKiBwZW5kaW5nIHNlbmQgcXVldWUgV1JzIGJlZm9yZSB0aGUgdHJhbnNwb3J0IGlzIHJlY29ubmVjdGVkLgorICogV2hlbiB0aGUgdW5kZXJseWluZyB0cmFuc3BvcnQgZGlzY29ubmVjdHMsIE1ScyB0aGF0IGFyZSBpbiBmbGlnaHQKKyAqIGFyZSBmbHVzaGVkIGFuZCBhcmUgbGlrZWx5IHVudXNhYmxlLiBUaHVzIGFsbCBmbHVzaGVkIE1ScyBhcmUKKyAqIGRlc3Ryb3llZC4gTmV3IE1ScyBhcmUgY3JlYXRlZCBvbiBkZW1hbmQuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3N1bnJwYy9ycGNfcmRtYS5oPgpAQCAtMTE4LDE1ICs4OCw4IEBAIHZvaWQgZnJ3cl9yZWxlYXNlX21yKHN0cnVjdCBycGNyZG1hX21yICptcikKIAlrZnJlZShtcik7CiB9CiAKLS8qIE1ScyBhcmUgZHluYW1pY2FsbHkgYWxsb2NhdGVkLCBzbyBzaW1wbHkgY2xlYW4gdXAgYW5kIHJlbGVhc2UgdGhlIE1SLgotICogQSByZXBsYWNlbWVudCBNUiB3aWxsIHN1YnNlcXVlbnRseSBiZSBhbGxvY2F0ZWQgb24gZGVtYW5kLgotICovCi1zdGF0aWMgdm9pZAotZnJ3cl9tcl9yZWN5Y2xlX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCitzdGF0aWMgdm9pZCBmcndyX21yX3JlY3ljbGUoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LCBzdHJ1Y3QgcnBjcmRtYV9tciAqbXIpCiB7Ci0Jc3RydWN0IHJwY3JkbWFfbXIgKm1yID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBycGNyZG1hX21yLCBtcl9yZWN5Y2xlKTsKLQlzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQgPSBtci0+bXJfeHBydDsKLQogCXRyYWNlX3hwcnRyZG1hX21yX3JlY3ljbGUobXIpOwogCiAJaWYgKG1yLT5tcl9kaXIgIT0gRE1BX05PTkUpIHsKQEAgLTEzNiwxNCArOTksNDAgQEAgZnJ3cl9tcl9yZWN5Y2xlX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCW1yLT5tcl9kaXIgPSBETUFfTk9ORTsKIAl9CiAKLQlzcGluX2xvY2soJnJfeHBydC0+cnhfYnVmLnJiX21ybG9jayk7CisJc3Bpbl9sb2NrKCZyX3hwcnQtPnJ4X2J1Zi5yYl9sb2NrKTsKIAlsaXN0X2RlbCgmbXItPm1yX2FsbCk7CiAJcl94cHJ0LT5yeF9zdGF0cy5tcnNfcmVjeWNsZWQrKzsKLQlzcGluX3VubG9jaygmcl94cHJ0LT5yeF9idWYucmJfbXJsb2NrKTsKKwlzcGluX3VubG9jaygmcl94cHJ0LT5yeF9idWYucmJfbG9jayk7CiAKIAlmcndyX3JlbGVhc2VfbXIobXIpOwogfQogCisvKiBNUnMgYXJlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCwgc28gc2ltcGx5IGNsZWFuIHVwIGFuZCByZWxlYXNlIHRoZSBNUi4KKyAqIEEgcmVwbGFjZW1lbnQgTVIgd2lsbCBzdWJzZXF1ZW50bHkgYmUgYWxsb2NhdGVkIG9uIGRlbWFuZC4KKyAqLworc3RhdGljIHZvaWQKK2Zyd3JfbXJfcmVjeWNsZV93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBycGNyZG1hX21yICptciA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcnBjcmRtYV9tciwKKwkJCQkJICAgICBtcl9yZWN5Y2xlKTsKKworCWZyd3JfbXJfcmVjeWNsZShtci0+bXJfeHBydCwgbXIpOworfQorCisvKiBmcndyX3JlY3ljbGUgLSBEaXNjYXJkIE1ScworICogQHJlcTogcmVxdWVzdCB0byByZXNldAorICoKKyAqIFVzZWQgYWZ0ZXIgYSByZWNvbm5lY3QuIFRoZXNlIE1ScyBjb3VsZCBiZSBpbiBmbGlnaHQsIHdlIGNhbid0CisgKiB0ZWxsLiBTYWZlIHRoaW5nIHRvIGRvIGlzIHJlbGVhc2UgdGhlbS4KKyAqLwordm9pZCBmcndyX3JlY3ljbGUoc3RydWN0IHJwY3JkbWFfcmVxICpyZXEpCit7CisJc3RydWN0IHJwY3JkbWFfbXIgKm1yOworCisJd2hpbGUgKChtciA9IHJwY3JkbWFfbXJfcG9wKCZyZXEtPnJsX3JlZ2lzdGVyZWQpKSkKKwkJZnJ3cl9tcl9yZWN5Y2xlKG1yLT5tcl94cHJ0LCBtcik7Cit9CisKIC8qIGZyd3JfcmVzZXQgLSBQbGFjZSBNUnMgYmFjayBvbiB0aGUgZnJlZSBsaXN0CiAgKiBAcmVxOiByZXF1ZXN0IHRvIHJlc2V0CiAgKgpAQCAtMTU2LDEyICsxNDUsMTAgQEAgZnJ3cl9tcl9yZWN5Y2xlX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAgKi8KIHZvaWQgZnJ3cl9yZXNldChzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJlcSkKIHsKLQl3aGlsZSAoIWxpc3RfZW1wdHkoJnJlcS0+cmxfcmVnaXN0ZXJlZCkpIHsKLQkJc3RydWN0IHJwY3JkbWFfbXIgKm1yOworCXN0cnVjdCBycGNyZG1hX21yICptcjsKIAotCQltciA9IHJwY3JkbWFfbXJfcG9wKCZyZXEtPnJsX3JlZ2lzdGVyZWQpOwotCQlycGNyZG1hX21yX3VubWFwX2FuZF9wdXQobXIpOwotCX0KKwl3aGlsZSAoKG1yID0gcnBjcmRtYV9tcl9wb3AoJnJlcS0+cmxfcmVnaXN0ZXJlZCkpKQorCQlycGNyZG1hX21yX3B1dChtcik7CiB9CiAKIC8qKgpAQCAtMTc5LDExICsxNjYsMTQgQEAgaW50IGZyd3JfaW5pdF9tcihzdHJ1Y3QgcnBjcmRtYV9pYSAqaWEsIHN0cnVjdCBycGNyZG1hX21yICptcikKIAlzdHJ1Y3QgaWJfbXIgKmZybXI7CiAJaW50IHJjOwogCisJLyogTkI6IGliX2FsbG9jX21yIGFuZCBkZXZpY2UgZHJpdmVycyB0eXBpY2FsbHkgYWxsb2NhdGUKKwkgKiAgICAgbWVtb3J5IHdpdGggR0ZQX0tFUk5FTC4KKwkgKi8KIAlmcm1yID0gaWJfYWxsb2NfbXIoaWEtPnJpX3BkLCBpYS0+cmlfbXJ0eXBlLCBkZXB0aCk7CiAJaWYgKElTX0VSUihmcm1yKSkKIAkJZ290byBvdXRfbXJfZXJyOwogCi0Jc2cgPSBrY2FsbG9jKGRlcHRoLCBzaXplb2YoKnNnKSwgR0ZQX0tFUk5FTCk7CisJc2cgPSBrY2FsbG9jKGRlcHRoLCBzaXplb2YoKnNnKSwgR0ZQX05PRlMpOwogCWlmICghc2cpCiAJCWdvdG8gb3V0X2xpc3RfZXJyOwogCkBAIC0yMDMsOCArMTkzLDYgQEAgaW50IGZyd3JfaW5pdF9tcihzdHJ1Y3QgcnBjcmRtYV9pYSAqaWEsIHN0cnVjdCBycGNyZG1hX21yICptcikKIAlyZXR1cm4gcmM7CiAKIG91dF9saXN0X2VycjoKLQlkcHJpbnRrKCJSUEM6ICAgICAgICVzOiBzZyBhbGxvY2F0aW9uIGZhaWx1cmVcbiIsCi0JCV9fZnVuY19fKTsKIAlpYl9kZXJlZ19tcihmcm1yKTsKIAlyZXR1cm4gLUVOT01FTTsKIH0KQEAgLTI5MCw4ICsyNzgsOCBAQCBpbnQgZnJ3cl9vcGVuKHN0cnVjdCBycGNyZG1hX2lhICppYSwgc3RydWN0IHJwY3JkbWFfZXAgKmVwKQogCWVwLT5yZXBfYXR0ci5jYXAubWF4X3JlY3Zfd3IgKz0gUlBDUkRNQV9CQUNLV0FSRF9XUlM7CiAJZXAtPnJlcF9hdHRyLmNhcC5tYXhfcmVjdl93ciArPSAxOyAvKiBmb3IgaWJfZHJhaW5fcnEgKi8KIAotCWlhLT5yaV9tYXhfc2VncyA9IG1heF90KHVuc2lnbmVkIGludCwgMSwgUlBDUkRNQV9NQVhfREFUQV9TRUdTIC8KLQkJCQlpYS0+cmlfbWF4X2Zyd3JfZGVwdGgpOworCWlhLT5yaV9tYXhfc2VncyA9CisJCURJVl9ST1VORF9VUChSUENSRE1BX01BWF9EQVRBX1NFR1MsIGlhLT5yaV9tYXhfZnJ3cl9kZXB0aCk7CiAJLyogUmVwbHkgY2h1bmtzIHJlcXVpcmUgc2VnbWVudHMgZm9yIGhlYWQgYW5kIHRhaWwgYnVmZmVycyAqLwogCWlhLT5yaV9tYXhfc2VncyArPSAyOwogCWlmIChpYS0+cmlfbWF4X3NlZ3MgPiBSUENSRE1BX01BWF9IRFJfU0VHUykKQEAgLTMyMywzMSArMzExLDI1IEBAIHNpemVfdCBmcndyX21heHBhZ2VzKHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCkKICAqIEBuc2VnczogbnVtYmVyIG9mIHNlZ21lbnRzIHJlbWFpbmluZwogICogQHdyaXRpbmc6IHRydWUgd2hlbiBSRE1BIFdyaXRlIHdpbGwgYmUgdXNlZAogICogQHhpZDogWElEIG9mIFJQQyB1c2luZyB0aGUgcmVnaXN0ZXJlZCBtZW1vcnkKLSAqIEBvdXQ6IGluaXRpYWxpemVkIE1SCisgKiBAbXI6IE1SIHRvIGZpbGwgaW4KICAqCiAgKiBQcmVwYXJlIGEgUkVHX01SIFdvcmsgUmVxdWVzdCB0byByZWdpc3RlciBhIG1lbW9yeSByZWdpb24KICAqIGZvciByZW1vdGUgYWNjZXNzIHZpYSBSRE1BIFJFQUQgb3IgUkRNQSBXUklURS4KICAqCiAgKiBSZXR1cm5zIHRoZSBuZXh0IHNlZ21lbnQgb3IgYSBuZWdhdGl2ZSBlcnJubyBwb2ludGVyLgotICogT24gc3VjY2VzcywgdGhlIHByZXBhcmVkIE1SIGlzIHBsYW50ZWQgaW4gQG91dC4KKyAqIE9uIHN1Y2Nlc3MsIEBtciBpcyBmaWxsZWQgaW4uCiAgKi8KIHN0cnVjdCBycGNyZG1hX21yX3NlZyAqZnJ3cl9tYXAoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LAogCQkJCXN0cnVjdCBycGNyZG1hX21yX3NlZyAqc2VnLAogCQkJCWludCBuc2VncywgYm9vbCB3cml0aW5nLCBfX2JlMzIgeGlkLAotCQkJCXN0cnVjdCBycGNyZG1hX21yICoqb3V0KQorCQkJCXN0cnVjdCBycGNyZG1hX21yICptcikKIHsKIAlzdHJ1Y3QgcnBjcmRtYV9pYSAqaWEgPSAmcl94cHJ0LT5yeF9pYTsKLQlib29sIGhvbGVzX29rID0gaWEtPnJpX21ydHlwZSA9PSBJQl9NUl9UWVBFX1NHX0dBUFM7Ci0Jc3RydWN0IHJwY3JkbWFfbXIgKm1yOwotCXN0cnVjdCBpYl9tciAqaWJtcjsKIAlzdHJ1Y3QgaWJfcmVnX3dyICpyZWdfd3I7CisJc3RydWN0IGliX21yICppYm1yOwogCWludCBpLCBuOwogCXU4IGtleTsKIAotCW1yID0gcnBjcmRtYV9tcl9nZXQocl94cHJ0KTsKLQlpZiAoIW1yKQotCQlnb3RvIG91dF9nZXRtcl9lcnI7Ci0KIAlpZiAobnNlZ3MgPiBpYS0+cmlfbWF4X2Zyd3JfZGVwdGgpCiAJCW5zZWdzID0gaWEtPnJpX21heF9mcndyX2RlcHRoOwogCWZvciAoaSA9IDA7IGkgPCBuc2VnczspIHsKQEAgLTM2Miw3ICszNDQsNyBAQCBzdHJ1Y3QgcnBjcmRtYV9tcl9zZWcgKmZyd3JfbWFwKHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwKIAogCQkrK3NlZzsKIAkJKytpOwotCQlpZiAoaG9sZXNfb2spCisJCWlmIChpYS0+cmlfbXJ0eXBlID09IElCX01SX1RZUEVfU0dfR0FQUykKIAkJCWNvbnRpbnVlOwogCQlpZiAoKGkgPCBuc2VncyAmJiBvZmZzZXRfaW5fcGFnZShzZWctPm1yX29mZnNldCkpIHx8CiAJCSAgICBvZmZzZXRfaW5fcGFnZSgoc2VnLTEpLT5tcl9vZmZzZXQgKyAoc2VnLTEpLT5tcl9sZW4pKQpAQCAtMzk3LDIyICszNzksMTUgQEAgc3RydWN0IHJwY3JkbWFfbXJfc2VnICpmcndyX21hcChzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsCiAJbXItPm1yX29mZnNldCA9IGlibXItPmlvdmE7CiAJdHJhY2VfeHBydHJkbWFfbXJfbWFwKG1yKTsKIAotCSpvdXQgPSBtcjsKIAlyZXR1cm4gc2VnOwogCi1vdXRfZ2V0bXJfZXJyOgotCXhwcnRfd2FpdF9mb3JfYnVmZmVyX3NwYWNlKCZyX3hwcnQtPnJ4X3hwcnQpOwotCXJldHVybiBFUlJfUFRSKC1FQUdBSU4pOwotCiBvdXRfZG1hbWFwX2VycjoKIAltci0+bXJfZGlyID0gRE1BX05PTkU7CiAJdHJhY2VfeHBydHJkbWFfZnJ3cl9zZ2VycihtciwgaSk7Ci0JcnBjcmRtYV9tcl9wdXQobXIpOwogCXJldHVybiBFUlJfUFRSKC1FSU8pOwogCiBvdXRfbWFwbXJfZXJyOgogCXRyYWNlX3hwcnRyZG1hX2Zyd3JfbWFwZXJyKG1yLCBuKTsKLQlycGNyZG1hX21yX3JlY3ljbGUobXIpOwogCXJldHVybiBFUlJfUFRSKC1FSU8pOwogfQogCkBAIC00ODUsNyArNDYwLDcgQEAgdm9pZCBmcndyX3JlbWludihzdHJ1Y3QgcnBjcmRtYV9yZXAgKnJlcCwgc3RydWN0IGxpc3RfaGVhZCAqbXJzKQogCQlpZiAobXItPm1yX2hhbmRsZSA9PSByZXAtPnJyX2ludl9ya2V5KSB7CiAJCQlsaXN0X2RlbF9pbml0KCZtci0+bXJfbGlzdCk7CiAJCQl0cmFjZV94cHJ0cmRtYV9tcl9yZW1vdGVpbnYobXIpOwotCQkJcnBjcmRtYV9tcl91bm1hcF9hbmRfcHV0KG1yKTsKKwkJCXJwY3JkbWFfbXJfcHV0KG1yKTsKIAkJCWJyZWFrOwkvKiBvbmx5IG9uZSBpbnZhbGlkYXRlZCBNUiBwZXIgUlBDICovCiAJCX0KIH0KQEAgLTQ5NSw3ICs0NzAsNyBAQCBzdGF0aWMgdm9pZCBfX2Zyd3JfcmVsZWFzZV9tcihzdHJ1Y3QgaWJfd2MgKndjLCBzdHJ1Y3QgcnBjcmRtYV9tciAqbXIpCiAJaWYgKHdjLT5zdGF0dXMgIT0gSUJfV0NfU1VDQ0VTUykKIAkJcnBjcmRtYV9tcl9yZWN5Y2xlKG1yKTsKIAllbHNlCi0JCXJwY3JkbWFfbXJfdW5tYXBfYW5kX3B1dChtcik7CisJCXJwY3JkbWFfbXJfcHV0KG1yKTsKIH0KIAogLyoqCkBAIC01MzIsOCArNTA3LDggQEAgc3RhdGljIHZvaWQgZnJ3cl93Y19sb2NhbGludl93YWtlKHN0cnVjdCBpYl9jcSAqY3EsIHN0cnVjdCBpYl93YyAqd2MpCiAKIAkvKiBXQVJOSU5HOiBPbmx5IHdyX2NxZSBhbmQgc3RhdHVzIGFyZSByZWxpYWJsZSBhdCB0aGlzIHBvaW50ICovCiAJdHJhY2VfeHBydHJkbWFfd2NfbGlfd2FrZSh3YywgZnJ3cik7Ci0JY29tcGxldGUoJmZyd3ItPmZyX2xpbnZfZG9uZSk7CiAJX19mcndyX3JlbGVhc2VfbXIod2MsIG1yKTsKKwljb21wbGV0ZSgmZnJ3ci0+ZnJfbGludl9kb25lKTsKIH0KIAogLyoqCkBAIC01NjIsOCArNTM3LDcgQEAgdm9pZCBmcndyX3VubWFwX3N5bmMoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LCBzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJlcSkKIAkgKi8KIAlmcndyID0gTlVMTDsKIAlwcmV2ID0gJmZpcnN0OwotCXdoaWxlICghbGlzdF9lbXB0eSgmcmVxLT5ybF9yZWdpc3RlcmVkKSkgewotCQltciA9IHJwY3JkbWFfbXJfcG9wKCZyZXEtPnJsX3JlZ2lzdGVyZWQpOworCXdoaWxlICgobXIgPSBycGNyZG1hX21yX3BvcCgmcmVxLT5ybF9yZWdpc3RlcmVkKSkpIHsKIAogCQl0cmFjZV94cHJ0cmRtYV9tcl9sb2NhbGludihtcik7CiAJCXJfeHBydC0+cnhfc3RhdHMubG9jYWxfaW52X25lZWRlZCsrOwpAQCAtNjMyLDExICs2MDYsMTUgQEAgc3RhdGljIHZvaWQgZnJ3cl93Y19sb2NhbGludl9kb25lKHN0cnVjdCBpYl9jcSAqY3EsIHN0cnVjdCBpYl93YyAqd2MpCiAJc3RydWN0IHJwY3JkbWFfZnJ3ciAqZnJ3ciA9CiAJCWNvbnRhaW5lcl9vZihjcWUsIHN0cnVjdCBycGNyZG1hX2Zyd3IsIGZyX2NxZSk7CiAJc3RydWN0IHJwY3JkbWFfbXIgKm1yID0gY29udGFpbmVyX29mKGZyd3IsIHN0cnVjdCBycGNyZG1hX21yLCBmcndyKTsKKwlzdHJ1Y3QgcnBjcmRtYV9yZXAgKnJlcCA9IG1yLT5tcl9yZXEtPnJsX3JlcGx5OwogCiAJLyogV0FSTklORzogT25seSB3cl9jcWUgYW5kIHN0YXR1cyBhcmUgcmVsaWFibGUgYXQgdGhpcyBwb2ludCAqLwogCXRyYWNlX3hwcnRyZG1hX3djX2xpX2RvbmUod2MsIGZyd3IpOwotCXJwY3JkbWFfY29tcGxldGVfcnFzdChmcndyLT5mcl9yZXEtPnJsX3JlcGx5KTsKIAlfX2Zyd3JfcmVsZWFzZV9tcih3YywgbXIpOworCisJLyogRW5zdXJlIEByZXAgaXMgZ2VuZXJhdGVkIGJlZm9yZSBfX2Zyd3JfcmVsZWFzZV9tciAqLworCXNtcF9ybWIoKTsKKwlycGNyZG1hX2NvbXBsZXRlX3Jxc3QocmVwKTsKIH0KIAogLyoqCkBAIC02NjIsMTUgKzY0MCwxMyBAQCB2b2lkIGZyd3JfdW5tYXBfYXN5bmMoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LCBzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJlcSkKIAkgKi8KIAlmcndyID0gTlVMTDsKIAlwcmV2ID0gJmZpcnN0OwotCXdoaWxlICghbGlzdF9lbXB0eSgmcmVxLT5ybF9yZWdpc3RlcmVkKSkgewotCQltciA9IHJwY3JkbWFfbXJfcG9wKCZyZXEtPnJsX3JlZ2lzdGVyZWQpOworCXdoaWxlICgobXIgPSBycGNyZG1hX21yX3BvcCgmcmVxLT5ybF9yZWdpc3RlcmVkKSkpIHsKIAogCQl0cmFjZV94cHJ0cmRtYV9tcl9sb2NhbGludihtcik7CiAJCXJfeHBydC0+cnhfc3RhdHMubG9jYWxfaW52X25lZWRlZCsrOwogCiAJCWZyd3IgPSAmbXItPmZyd3I7CiAJCWZyd3ItPmZyX2NxZS5kb25lID0gZnJ3cl93Y19sb2NhbGludjsKLQkJZnJ3ci0+ZnJfcmVxID0gcmVxOwogCQlsYXN0ID0gJmZyd3ItPmZyX2ludndyOwogCQlsYXN0LT5uZXh0ID0gTlVMTDsKIAkJbGFzdC0+d3JfY3FlID0gJmZyd3ItPmZyX2NxZTsKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMveHBydHJkbWEvcnBjX3JkbWEuYyBiL25ldC9zdW5ycGMveHBydHJkbWEvcnBjX3JkbWEuYwppbmRleCA0MzQ1ZTY5Li5iODZiNWZkIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnRyZG1hL3JwY19yZG1hLmMKKysrIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS9ycGNfcmRtYS5jCkBAIC0zNDIsNiArMzQyLDMyIEBAIGVuY29kZV9yZWFkX3NlZ21lbnQoc3RydWN0IHhkcl9zdHJlYW0gKnhkciwgc3RydWN0IHJwY3JkbWFfbXIgKm1yLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgc3RydWN0IHJwY3JkbWFfbXJfc2VnICpycGNyZG1hX21yX3ByZXBhcmUoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LAorCQkJCQkJIHN0cnVjdCBycGNyZG1hX3JlcSAqcmVxLAorCQkJCQkJIHN0cnVjdCBycGNyZG1hX21yX3NlZyAqc2VnLAorCQkJCQkJIGludCBuc2VncywgYm9vbCB3cml0aW5nLAorCQkJCQkJIHN0cnVjdCBycGNyZG1hX21yICoqbXIpCit7CisJKm1yID0gcnBjcmRtYV9tcl9wb3AoJnJlcS0+cmxfZnJlZV9tcnMpOworCWlmICghKm1yKSB7CisJCSptciA9IHJwY3JkbWFfbXJfZ2V0KHJfeHBydCk7CisJCWlmICghKm1yKQorCQkJZ290byBvdXRfZ2V0bXJfZXJyOworCQl0cmFjZV94cHJ0cmRtYV9tcl9nZXQocmVxKTsKKwkJKCptciktPm1yX3JlcSA9IHJlcTsKKwl9CisKKwlycGNyZG1hX21yX3B1c2goKm1yLCAmcmVxLT5ybF9yZWdpc3RlcmVkKTsKKwlyZXR1cm4gZnJ3cl9tYXAocl94cHJ0LCBzZWcsIG5zZWdzLCB3cml0aW5nLCByZXEtPnJsX3Nsb3QucnFfeGlkLCAqbXIpOworCitvdXRfZ2V0bXJfZXJyOgorCXRyYWNlX3hwcnRyZG1hX25vbXJzKHJlcSk7CisJeHBydF93YWl0X2Zvcl9idWZmZXJfc3BhY2UoJnJfeHBydC0+cnhfeHBydCk7CisJaWYgKHJfeHBydC0+cnhfZXAucmVwX2Nvbm5lY3RlZCAhPSAtRU5PREVWKQorCQlzY2hlZHVsZV93b3JrKCZyX3hwcnQtPnJ4X2J1Zi5yYl9yZWZyZXNoX3dvcmtlcik7CisJcmV0dXJuIEVSUl9QVFIoLUVBR0FJTik7Cit9CisKIC8qIFJlZ2lzdGVyIGFuZCBYRFIgZW5jb2RlIHRoZSBSZWFkIGxpc3QuIFN1cHBvcnRzIGVuY29kaW5nIGEgbGlzdCBvZiByZWFkCiAgKiBzZWdtZW50cyB0aGF0IGJlbG9uZyB0byBhIHNpbmdsZSByZWFkIGNodW5rLgogICoKQEAgLTM1Niw5ICszODIsMTAgQEAgZW5jb2RlX3JlYWRfc2VnbWVudChzdHJ1Y3QgeGRyX3N0cmVhbSAqeGRyLCBzdHJ1Y3QgcnBjcmRtYV9tciAqbXIsCiAgKgogICogT25seSBhIHNpbmdsZSBAcG9zIHZhbHVlIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQuCiAgKi8KLXN0YXRpYyBub2lubGluZSBpbnQKLXJwY3JkbWFfZW5jb2RlX3JlYWRfbGlzdChzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsIHN0cnVjdCBycGNyZG1hX3JlcSAqcmVxLAotCQkJIHN0cnVjdCBycGNfcnFzdCAqcnFzdCwgZW51bSBycGNyZG1hX2NodW5rdHlwZSBydHlwZSkKK3N0YXRpYyBpbnQgcnBjcmRtYV9lbmNvZGVfcmVhZF9saXN0KHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwKKwkJCQkgICAgc3RydWN0IHJwY3JkbWFfcmVxICpyZXEsCisJCQkJICAgIHN0cnVjdCBycGNfcnFzdCAqcnFzdCwKKwkJCQkgICAgZW51bSBycGNyZG1hX2NodW5rdHlwZSBydHlwZSkKIHsKIAlzdHJ1Y3QgeGRyX3N0cmVhbSAqeGRyID0gJnJlcS0+cmxfc3RyZWFtOwogCXN0cnVjdCBycGNyZG1hX21yX3NlZyAqc2VnOwpAQCAtMzc5LDEwICs0MDYsOSBAQCBycGNyZG1hX2VuY29kZV9yZWFkX2xpc3Qoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LCBzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJlcSwKIAkJcmV0dXJuIG5zZWdzOwogCiAJZG8gewotCQlzZWcgPSBmcndyX21hcChyX3hwcnQsIHNlZywgbnNlZ3MsIGZhbHNlLCBycXN0LT5ycV94aWQsICZtcik7CisJCXNlZyA9IHJwY3JkbWFfbXJfcHJlcGFyZShyX3hwcnQsIHJlcSwgc2VnLCBuc2VncywgZmFsc2UsICZtcik7CiAJCWlmIChJU19FUlIoc2VnKSkKIAkJCXJldHVybiBQVFJfRVJSKHNlZyk7Ci0JCXJwY3JkbWFfbXJfcHVzaChtciwgJnJlcS0+cmxfcmVnaXN0ZXJlZCk7CiAKIAkJaWYgKGVuY29kZV9yZWFkX3NlZ21lbnQoeGRyLCBtciwgcG9zKSA8IDApCiAJCQlyZXR1cm4gLUVNU0dTSVpFOwpAQCAtNDExLDkgKzQzNywxMCBAQCBycGNyZG1hX2VuY29kZV9yZWFkX2xpc3Qoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LCBzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJlcSwKICAqCiAgKiBPbmx5IGEgc2luZ2xlIFdyaXRlIGNodW5rIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQuCiAgKi8KLXN0YXRpYyBub2lubGluZSBpbnQKLXJwY3JkbWFfZW5jb2RlX3dyaXRlX2xpc3Qoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LCBzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJlcSwKLQkJCSAgc3RydWN0IHJwY19ycXN0ICpycXN0LCBlbnVtIHJwY3JkbWFfY2h1bmt0eXBlIHd0eXBlKQorc3RhdGljIGludCBycGNyZG1hX2VuY29kZV93cml0ZV9saXN0KHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwKKwkJCQkgICAgIHN0cnVjdCBycGNyZG1hX3JlcSAqcmVxLAorCQkJCSAgICAgc3RydWN0IHJwY19ycXN0ICpycXN0LAorCQkJCSAgICAgZW51bSBycGNyZG1hX2NodW5rdHlwZSB3dHlwZSkKIHsKIAlzdHJ1Y3QgeGRyX3N0cmVhbSAqeGRyID0gJnJlcS0+cmxfc3RyZWFtOwogCXN0cnVjdCBycGNyZG1hX21yX3NlZyAqc2VnOwpAQCAtNDQwLDEwICs0NjcsOSBAQCBycGNyZG1hX2VuY29kZV93cml0ZV9saXN0KHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwgc3RydWN0IHJwY3JkbWFfcmVxICpyZXEsCiAKIAluY2h1bmtzID0gMDsKIAlkbyB7Ci0JCXNlZyA9IGZyd3JfbWFwKHJfeHBydCwgc2VnLCBuc2VncywgdHJ1ZSwgcnFzdC0+cnFfeGlkLCAmbXIpOworCQlzZWcgPSBycGNyZG1hX21yX3ByZXBhcmUocl94cHJ0LCByZXEsIHNlZywgbnNlZ3MsIHRydWUsICZtcik7CiAJCWlmIChJU19FUlIoc2VnKSkKIAkJCXJldHVybiBQVFJfRVJSKHNlZyk7Ci0JCXJwY3JkbWFfbXJfcHVzaChtciwgJnJlcS0+cmxfcmVnaXN0ZXJlZCk7CiAKIAkJaWYgKGVuY29kZV9yZG1hX3NlZ21lbnQoeGRyLCBtcikgPCAwKQogCQkJcmV0dXJuIC1FTVNHU0laRTsKQEAgLTQ3NCw5ICs1MDAsMTAgQEAgcnBjcmRtYV9lbmNvZGVfd3JpdGVfbGlzdChzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsIHN0cnVjdCBycGNyZG1hX3JlcSAqcmVxLAogICogUmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJybm8gaWYgYSBmYWlsdXJlIG9jY3VycmVkLgogICogQHhkciBpcyBhZHZhbmNlZCB0byB0aGUgbmV4dCBwb3NpdGlvbiBpbiB0aGUgc3RyZWFtLgogICovCi1zdGF0aWMgbm9pbmxpbmUgaW50Ci1ycGNyZG1hX2VuY29kZV9yZXBseV9jaHVuayhzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsIHN0cnVjdCBycGNyZG1hX3JlcSAqcmVxLAotCQkJICAgc3RydWN0IHJwY19ycXN0ICpycXN0LCBlbnVtIHJwY3JkbWFfY2h1bmt0eXBlIHd0eXBlKQorc3RhdGljIGludCBycGNyZG1hX2VuY29kZV9yZXBseV9jaHVuayhzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsCisJCQkJICAgICAgc3RydWN0IHJwY3JkbWFfcmVxICpyZXEsCisJCQkJICAgICAgc3RydWN0IHJwY19ycXN0ICpycXN0LAorCQkJCSAgICAgIGVudW0gcnBjcmRtYV9jaHVua3R5cGUgd3R5cGUpCiB7CiAJc3RydWN0IHhkcl9zdHJlYW0gKnhkciA9ICZyZXEtPnJsX3N0cmVhbTsKIAlzdHJ1Y3QgcnBjcmRtYV9tcl9zZWcgKnNlZzsKQEAgLTUwMSwxMCArNTI4LDkgQEAgcnBjcmRtYV9lbmNvZGVfcmVwbHlfY2h1bmsoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LCBzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJlcSwKIAogCW5jaHVua3MgPSAwOwogCWRvIHsKLQkJc2VnID0gZnJ3cl9tYXAocl94cHJ0LCBzZWcsIG5zZWdzLCB0cnVlLCBycXN0LT5ycV94aWQsICZtcik7CisJCXNlZyA9IHJwY3JkbWFfbXJfcHJlcGFyZShyX3hwcnQsIHJlcSwgc2VnLCBuc2VncywgdHJ1ZSwgJm1yKTsKIAkJaWYgKElTX0VSUihzZWcpKQogCQkJcmV0dXJuIFBUUl9FUlIoc2VnKTsKLQkJcnBjcmRtYV9tcl9wdXNoKG1yLCAmcmVxLT5ybF9yZWdpc3RlcmVkKTsKIAogCQlpZiAoZW5jb2RlX3JkbWFfc2VnbWVudCh4ZHIsIG1yKSA8IDApCiAJCQlyZXR1cm4gLUVNU0dTSVpFOwpAQCAtODQxLDEyICs4NjcsNyBAQCBycGNyZG1hX21hcnNoYWxfcmVxKHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwgc3RydWN0IHJwY19ycXN0ICpycXN0KQogCSAqIGNodW5rcy4gVmVyeSBsaWtlbHkgdGhlIGNvbm5lY3Rpb24gaGFzIGJlZW4gcmVwbGFjZWQsCiAJICogc28gdGhlc2UgcmVnaXN0cmF0aW9ucyBhcmUgaW52YWxpZCBhbmQgdW51c2FibGUuCiAJICovCi0Jd2hpbGUgKHVubGlrZWx5KCFsaXN0X2VtcHR5KCZyZXEtPnJsX3JlZ2lzdGVyZWQpKSkgewotCQlzdHJ1Y3QgcnBjcmRtYV9tciAqbXI7Ci0KLQkJbXIgPSBycGNyZG1hX21yX3BvcCgmcmVxLT5ybF9yZWdpc3RlcmVkKTsKLQkJcnBjcmRtYV9tcl9yZWN5Y2xlKG1yKTsKLQl9CisJZnJ3cl9yZWN5Y2xlKHJlcSk7CiAKIAkvKiBUaGlzIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgY29tYmluYXRpb25zCiAJICogb2YgY2h1bmsgbGlzdHMgaW4gb25lIFJQQy1vdmVyLVJETUEgQ2FsbCBtZXNzYWdlOgpAQCAtMTI0MCw4ICsxMjYxLDYgQEAgdm9pZCBycGNyZG1hX2NvbXBsZXRlX3Jxc3Qoc3RydWN0IHJwY3JkbWFfcmVwICpyZXApCiAJc3RydWN0IHJwY19ycXN0ICpycXN0ID0gcmVwLT5ycl9ycXN0OwogCWludCBzdGF0dXM7CiAKLQl4cHJ0LT5yZWVzdGFibGlzaF90aW1lb3V0ID0gMDsKLQogCXN3aXRjaCAocmVwLT5ycl9wcm9jKSB7CiAJY2FzZSByZG1hX21zZzoKIAkJc3RhdHVzID0gcnBjcmRtYV9kZWNvZGVfbXNnKHJfeHBydCwgcmVwLCBycXN0KTsKQEAgLTEzMDAsNiArMTMxOSwxMiBAQCB2b2lkIHJwY3JkbWFfcmVwbHlfaGFuZGxlcihzdHJ1Y3QgcnBjcmRtYV9yZXAgKnJlcCkKIAl1MzIgY3JlZGl0czsKIAlfX2JlMzIgKnA7CiAKKwkvKiBBbnkgZGF0YSBtZWFucyB3ZSBoYWQgYSB1c2VmdWwgY29udmVyc2F0aW9uLCBzbworCSAqIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byBkZWxheSB0aGUgbmV4dCByZWNvbm5lY3QuCisJICovCisJaWYgKHhwcnQtPnJlZXN0YWJsaXNoX3RpbWVvdXQpCisJCXhwcnQtPnJlZXN0YWJsaXNoX3RpbWVvdXQgPSAwOworCiAJLyogRml4ZWQgdHJhbnNwb3J0IGhlYWRlciBmaWVsZHMgKi8KIAl4ZHJfaW5pdF9kZWNvZGUoJnJlcC0+cnJfc3RyZWFtLCAmcmVwLT5ycl9oZHJidWYsCiAJCQlyZXAtPnJyX2hkcmJ1Zi5oZWFkWzBdLmlvdl9iYXNlLCBOVUxMKTsKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWEuYyBiL25ldC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWEuYwppbmRleCBhYmRiMzAwLi45N2JjYTUwIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnRyZG1hL3N2Y19yZG1hLmMKKysrIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS9zdmNfcmRtYS5jCkBAIC03Myw4ICs3Myw2IEBAIGF0b21pY190IHJkbWFfc3RhdF9ycV9wcm9kOwogYXRvbWljX3QgcmRtYV9zdGF0X3NxX3BvbGw7CiBhdG9taWNfdCByZG1hX3N0YXRfc3FfcHJvZDsKIAotc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN2Y19yZG1hX3dxOwotCiAvKgogICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHJlYWRpbmcgYW5kIHJlc2V0dGluZyBhbiBhdG9taWNfdCBzdGF0CiAgKiB2YXJpYWJsZSB0aHJvdWdoIHJlYWQvd3JpdGUgdG8gYSBwcm9jIGZpbGUuIEFueSB3cml0ZSB0byB0aGUgZmlsZQpAQCAtMjMwLDcgKzIyOCw2IEBAIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIHN2Y3JkbWFfcm9vdF90YWJsZVtdID0gewogdm9pZCBzdmNfcmRtYV9jbGVhbnVwKHZvaWQpCiB7CiAJZHByaW50aygiU1ZDUkRNQSBNb2R1bGUgUmVtb3ZlZCwgZGVyZWdpc3RlciBSUEMgUkRNQSB0cmFuc3BvcnRcbiIpOwotCWRlc3Ryb3lfd29ya3F1ZXVlKHN2Y19yZG1hX3dxKTsKIAlpZiAoc3ZjcmRtYV90YWJsZV9oZWFkZXIpIHsKIAkJdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUoc3ZjcmRtYV90YWJsZV9oZWFkZXIpOwogCQlzdmNyZG1hX3RhYmxlX2hlYWRlciA9IE5VTEw7CkBAIC0yNDYsMTAgKzI0Myw2IEBAIGludCBzdmNfcmRtYV9pbml0KHZvaWQpCiAJZHByaW50aygiXHRtYXhfYmNfcmVxdWVzdHMgIDogJXVcbiIsIHN2Y3JkbWFfbWF4X2JjX3JlcXVlc3RzKTsKIAlkcHJpbnRrKCJcdG1heF9pbmxpbmUgICAgICAgOiAlZFxuIiwgc3ZjcmRtYV9tYXhfcmVxX3NpemUpOwogCi0Jc3ZjX3JkbWFfd3EgPSBhbGxvY193b3JrcXVldWUoInN2Y19yZG1hIiwgMCwgMCk7Ci0JaWYgKCFzdmNfcmRtYV93cSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KIAlpZiAoIXN2Y3JkbWFfdGFibGVfaGVhZGVyKQogCQlzdmNyZG1hX3RhYmxlX2hlYWRlciA9CiAJCQlyZWdpc3Rlcl9zeXNjdGxfdGFibGUoc3ZjcmRtYV9yb290X3RhYmxlKTsKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWFfcmVjdmZyb20uYyBiL25ldC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWFfcmVjdmZyb20uYwppbmRleCA2NWUyZmI5Li45NmJjY2QzIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnRyZG1hL3N2Y19yZG1hX3JlY3Zmcm9tLmMKKysrIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS9zdmNfcmRtYV9yZWN2ZnJvbS5jCkBAIC0xNzIsOSArMTcyLDEwIEBAIHN0YXRpYyB2b2lkIHN2Y19yZG1hX3JlY3ZfY3R4dF9kZXN0cm95KHN0cnVjdCBzdmN4cHJ0X3JkbWEgKnJkbWEsCiB2b2lkIHN2Y19yZG1hX3JlY3ZfY3R4dHNfZGVzdHJveShzdHJ1Y3Qgc3ZjeHBydF9yZG1hICpyZG1hKQogewogCXN0cnVjdCBzdmNfcmRtYV9yZWN2X2N0eHQgKmN0eHQ7CisJc3RydWN0IGxsaXN0X25vZGUgKm5vZGU7CiAKLQl3aGlsZSAoKGN0eHQgPSBzdmNfcmRtYV9uZXh0X3JlY3ZfY3R4dCgmcmRtYS0+c2NfcmVjdl9jdHh0cykpKSB7Ci0JCWxpc3RfZGVsKCZjdHh0LT5yY19saXN0KTsKKwl3aGlsZSAoKG5vZGUgPSBsbGlzdF9kZWxfZmlyc3QoJnJkbWEtPnNjX3JlY3ZfY3R4dHMpKSkgeworCQljdHh0ID0gbGxpc3RfZW50cnkobm9kZSwgc3RydWN0IHN2Y19yZG1hX3JlY3ZfY3R4dCwgcmNfbm9kZSk7CiAJCXN2Y19yZG1hX3JlY3ZfY3R4dF9kZXN0cm95KHJkbWEsIGN0eHQpOwogCX0KIH0KQEAgLTE4MywyMSArMTg0LDE4IEBAIHN0YXRpYyBzdHJ1Y3Qgc3ZjX3JkbWFfcmVjdl9jdHh0ICoKIHN2Y19yZG1hX3JlY3ZfY3R4dF9nZXQoc3RydWN0IHN2Y3hwcnRfcmRtYSAqcmRtYSkKIHsKIAlzdHJ1Y3Qgc3ZjX3JkbWFfcmVjdl9jdHh0ICpjdHh0OworCXN0cnVjdCBsbGlzdF9ub2RlICpub2RlOwogCi0Jc3Bpbl9sb2NrKCZyZG1hLT5zY19yZWN2X2xvY2spOwotCWN0eHQgPSBzdmNfcmRtYV9uZXh0X3JlY3ZfY3R4dCgmcmRtYS0+c2NfcmVjdl9jdHh0cyk7Ci0JaWYgKCFjdHh0KQorCW5vZGUgPSBsbGlzdF9kZWxfZmlyc3QoJnJkbWEtPnNjX3JlY3ZfY3R4dHMpOworCWlmICghbm9kZSkKIAkJZ290byBvdXRfZW1wdHk7Ci0JbGlzdF9kZWwoJmN0eHQtPnJjX2xpc3QpOwotCXNwaW5fdW5sb2NrKCZyZG1hLT5zY19yZWN2X2xvY2spOworCWN0eHQgPSBsbGlzdF9lbnRyeShub2RlLCBzdHJ1Y3Qgc3ZjX3JkbWFfcmVjdl9jdHh0LCByY19ub2RlKTsKIAogb3V0OgogCWN0eHQtPnJjX3BhZ2VfY291bnQgPSAwOwogCXJldHVybiBjdHh0OwogCiBvdXRfZW1wdHk6Ci0Jc3Bpbl91bmxvY2soJnJkbWEtPnNjX3JlY3ZfbG9jayk7Ci0KIAljdHh0ID0gc3ZjX3JkbWFfcmVjdl9jdHh0X2FsbG9jKHJkbWEpOwogCWlmICghY3R4dCkKIAkJcmV0dXJuIE5VTEw7CkBAIC0yMTgsMTEgKzIxNiw5IEBAIHZvaWQgc3ZjX3JkbWFfcmVjdl9jdHh0X3B1dChzdHJ1Y3Qgc3ZjeHBydF9yZG1hICpyZG1hLAogCWZvciAoaSA9IDA7IGkgPCBjdHh0LT5yY19wYWdlX2NvdW50OyBpKyspCiAJCXB1dF9wYWdlKGN0eHQtPnJjX3BhZ2VzW2ldKTsKIAotCWlmICghY3R4dC0+cmNfdGVtcCkgewotCQlzcGluX2xvY2soJnJkbWEtPnNjX3JlY3ZfbG9jayk7Ci0JCWxpc3RfYWRkKCZjdHh0LT5yY19saXN0LCAmcmRtYS0+c2NfcmVjdl9jdHh0cyk7Ci0JCXNwaW5fdW5sb2NrKCZyZG1hLT5zY19yZWN2X2xvY2spOwotCX0gZWxzZQorCWlmICghY3R4dC0+cmNfdGVtcCkKKwkJbGxpc3RfYWRkKCZjdHh0LT5yY19ub2RlLCAmcmRtYS0+c2NfcmVjdl9jdHh0cyk7CisJZWxzZQogCQlzdmNfcmRtYV9yZWN2X2N0eHRfZGVzdHJveShyZG1hLCBjdHh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy94cHJ0cmRtYS9zdmNfcmRtYV90cmFuc3BvcnQuYyBiL25ldC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWFfdHJhbnNwb3J0LmMKaW5kZXggM2ZlNjY1MS4uMTQ1YTM2MSAxMDA2NDQKLS0tIGEvbmV0L3N1bnJwYy94cHJ0cmRtYS9zdmNfcmRtYV90cmFuc3BvcnQuYworKysgYi9uZXQvc3VucnBjL3hwcnRyZG1hL3N2Y19yZG1hX3RyYW5zcG9ydC5jCkBAIC0xNDAsMTQgKzE0MCwxMyBAQCBzdGF0aWMgc3RydWN0IHN2Y3hwcnRfcmRtYSAqc3ZjX3JkbWFfY3JlYXRlX3hwcnQoc3RydWN0IHN2Y19zZXJ2ICpzZXJ2LAogCUlOSVRfTElTVF9IRUFEKCZjbWFfeHBydC0+c2NfcnFfZHRvX3EpOwogCUlOSVRfTElTVF9IRUFEKCZjbWFfeHBydC0+c2NfcmVhZF9jb21wbGV0ZV9xKTsKIAlJTklUX0xJU1RfSEVBRCgmY21hX3hwcnQtPnNjX3NlbmRfY3R4dHMpOwotCUlOSVRfTElTVF9IRUFEKCZjbWFfeHBydC0+c2NfcmVjdl9jdHh0cyk7CisJaW5pdF9sbGlzdF9oZWFkKCZjbWFfeHBydC0+c2NfcmVjdl9jdHh0cyk7CiAJSU5JVF9MSVNUX0hFQUQoJmNtYV94cHJ0LT5zY19yd19jdHh0cyk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmY21hX3hwcnQtPnNjX3NlbmRfd2FpdCk7CiAKIAlzcGluX2xvY2tfaW5pdCgmY21hX3hwcnQtPnNjX2xvY2spOwogCXNwaW5fbG9ja19pbml0KCZjbWFfeHBydC0+c2NfcnFfZHRvX2xvY2spOwogCXNwaW5fbG9ja19pbml0KCZjbWFfeHBydC0+c2Nfc2VuZF9sb2NrKTsKLQlzcGluX2xvY2tfaW5pdCgmY21hX3hwcnQtPnNjX3JlY3ZfbG9jayk7CiAJc3Bpbl9sb2NrX2luaXQoJmNtYV94cHJ0LT5zY19yd19jdHh0X2xvY2spOwogCiAJLyoKQEAgLTQ1NCwxNCArNDUzLDE0IEBAIHN0YXRpYyBzdHJ1Y3Qgc3ZjX3hwcnQgKnN2Y19yZG1hX2FjY2VwdChzdHJ1Y3Qgc3ZjX3hwcnQgKnhwcnQpCiAJCWRwcmludGsoInN2Y3JkbWE6IGVycm9yIGNyZWF0aW5nIFBEIGZvciBjb25uZWN0IHJlcXVlc3RcbiIpOwogCQlnb3RvIGVycm91dDsKIAl9Ci0JbmV3eHBydC0+c2Nfc3FfY3EgPSBpYl9hbGxvY19jcShkZXYsIG5ld3hwcnQsIG5ld3hwcnQtPnNjX3NxX2RlcHRoLAotCQkJCQkwLCBJQl9QT0xMX1dPUktRVUVVRSk7CisJbmV3eHBydC0+c2Nfc3FfY3EgPSBpYl9hbGxvY19jcV9hbnkoZGV2LCBuZXd4cHJ0LCBuZXd4cHJ0LT5zY19zcV9kZXB0aCwKKwkJCQkJICAgIElCX1BPTExfV09SS1FVRVVFKTsKIAlpZiAoSVNfRVJSKG5ld3hwcnQtPnNjX3NxX2NxKSkgewogCQlkcHJpbnRrKCJzdmNyZG1hOiBlcnJvciBjcmVhdGluZyBTUSBDUSBmb3IgY29ubmVjdCByZXF1ZXN0XG4iKTsKIAkJZ290byBlcnJvdXQ7CiAJfQotCW5ld3hwcnQtPnNjX3JxX2NxID0gaWJfYWxsb2NfY3EoZGV2LCBuZXd4cHJ0LCBycV9kZXB0aCwKLQkJCQkJMCwgSUJfUE9MTF9XT1JLUVVFVUUpOworCW5ld3hwcnQtPnNjX3JxX2NxID0KKwkJaWJfYWxsb2NfY3FfYW55KGRldiwgbmV3eHBydCwgcnFfZGVwdGgsIElCX1BPTExfV09SS1FVRVVFKTsKIAlpZiAoSVNfRVJSKG5ld3hwcnQtPnNjX3JxX2NxKSkgewogCQlkcHJpbnRrKCJzdmNyZG1hOiBlcnJvciBjcmVhdGluZyBSUSBDUSBmb3IgY29ubmVjdCByZXF1ZXN0XG4iKTsKIAkJZ290byBlcnJvdXQ7CkBAIC02MzAsOCArNjI5LDkgQEAgc3RhdGljIHZvaWQgc3ZjX3JkbWFfZnJlZShzdHJ1Y3Qgc3ZjX3hwcnQgKnhwcnQpCiB7CiAJc3RydWN0IHN2Y3hwcnRfcmRtYSAqcmRtYSA9CiAJCWNvbnRhaW5lcl9vZih4cHJ0LCBzdHJ1Y3Qgc3ZjeHBydF9yZG1hLCBzY194cHJ0KTsKKwogCUlOSVRfV09SSygmcmRtYS0+c2Nfd29yaywgX19zdmNfcmRtYV9mcmVlKTsKLQlxdWV1ZV93b3JrKHN2Y19yZG1hX3dxLCAmcmRtYS0+c2Nfd29yayk7CisJc2NoZWR1bGVfd29yaygmcmRtYS0+c2Nfd29yayk7CiB9CiAKIHN0YXRpYyBpbnQgc3ZjX3JkbWFfaGFzX3dzcGFjZShzdHJ1Y3Qgc3ZjX3hwcnQgKnhwcnQpCmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnRyZG1hL3RyYW5zcG9ydC5jIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS90cmFuc3BvcnQuYwppbmRleCAyZWMzNDllLi4xNjA1NThiIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnRyZG1hL3RyYW5zcG9ydC5jCisrKyBiL25ldC9zdW5ycGMveHBydHJkbWEvdHJhbnNwb3J0LmMKQEAgLTQyMyw4ICs0MjMsNiBAQCB2b2lkIHhwcnRfcmRtYV9jbG9zZShzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQpCiAKIAlpZiAoZXAtPnJlcF9jb25uZWN0ZWQgPT0gLUVOT0RFVikKIAkJcmV0dXJuOwotCWlmIChlcC0+cmVwX2Nvbm5lY3RlZCA+IDApCi0JCXhwcnQtPnJlZXN0YWJsaXNoX3RpbWVvdXQgPSAwOwogCXJwY3JkbWFfZXBfZGlzY29ubmVjdChlcCwgaWEpOwogCiAJLyogUHJlcGFyZSBAeHBydCBmb3IgdGhlIG5leHQgY29ubmVjdGlvbiBieSByZWluaXRpYWxpemluZwpAQCAtNDM0LDYgKzQzMiw3IEBAIHZvaWQgeHBydF9yZG1hX2Nsb3NlKHN0cnVjdCBycGNfeHBydCAqeHBydCkKIAl4cHJ0LT5jd25kID0gUlBDX0NXTkRTSElGVDsKIAogb3V0OgorCXhwcnQtPnJlZXN0YWJsaXNoX3RpbWVvdXQgPSAwOwogCSsreHBydC0+Y29ubmVjdF9jb29raWU7CiAJeHBydF9kaXNjb25uZWN0X2RvbmUoeHBydCk7CiB9CkBAIC00OTQsOSArNDkzLDkgQEAgeHBydF9yZG1hX3RpbWVyKHN0cnVjdCBycGNfeHBydCAqeHBydCwgc3RydWN0IHJwY190YXNrICp0YXNrKQogICogQHJlY29ubmVjdF90aW1lb3V0OiByZWNvbm5lY3QgdGltZW91dCBhZnRlciBzZXJ2ZXIgZGlzY29ubmVjdHMKICAqCiAgKi8KLXN0YXRpYyB2b2lkIHhwcnRfcmRtYV90Y3Bfc2V0X2Nvbm5lY3RfdGltZW91dChzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQsCi0JCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgY29ubmVjdF90aW1lb3V0LAotCQkJCQkgICAgICB1bnNpZ25lZCBsb25nIHJlY29ubmVjdF90aW1lb3V0KQorc3RhdGljIHZvaWQgeHBydF9yZG1hX3NldF9jb25uZWN0X3RpbWVvdXQoc3RydWN0IHJwY194cHJ0ICp4cHJ0LAorCQkJCQkgIHVuc2lnbmVkIGxvbmcgY29ubmVjdF90aW1lb3V0LAorCQkJCQkgIHVuc2lnbmVkIGxvbmcgcmVjb25uZWN0X3RpbWVvdXQpCiB7CiAJc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0ID0gcnBjeF90b19yZG1heCh4cHJ0KTsKIApAQCAtNTcxLDYgKzU3MCw3IEBAIHhwcnRfcmRtYV9hbGxvY19zbG90KHN0cnVjdCBycGNfeHBydCAqeHBydCwgc3RydWN0IHJwY190YXNrICp0YXNrKQogCXJldHVybjsKIAogb3V0X3NsZWVwOgorCXNldF9iaXQoWFBSVF9DT05HRVNURUQsICZ4cHJ0LT5zdGF0ZSk7CiAJcnBjX3NsZWVwX29uKCZ4cHJ0LT5iYWNrbG9nLCB0YXNrLCBOVUxMKTsKIAl0YXNrLT50a19zdGF0dXMgPSAtRUFHQUlOOwogfQpAQCAtNTg5LDcgKzU4OSw4IEBAIHhwcnRfcmRtYV9mcmVlX3Nsb3Qoc3RydWN0IHJwY194cHJ0ICp4cHJ0LCBzdHJ1Y3QgcnBjX3Jxc3QgKnJxc3QpCiAKIAltZW1zZXQocnFzdCwgMCwgc2l6ZW9mKCpycXN0KSk7CiAJcnBjcmRtYV9idWZmZXJfcHV0KCZyX3hwcnQtPnJ4X2J1ZiwgcnBjcl90b19yZG1hcihycXN0KSk7Ci0JcnBjX3dha2VfdXBfbmV4dCgmeHBydC0+YmFja2xvZyk7CisJaWYgKHVubGlrZWx5KCFycGNfd2FrZV91cF9uZXh0KCZ4cHJ0LT5iYWNrbG9nKSkpCisJCWNsZWFyX2JpdChYUFJUX0NPTkdFU1RFRCwgJnhwcnQtPnN0YXRlKTsKIH0KIAogc3RhdGljIGJvb2wgcnBjcmRtYV9jaGVja19yZWdidWYoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LApAQCAtODAzLDcgKzgwNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnBjX3hwcnRfb3BzIHhwcnRfcmRtYV9wcm9jcyA9IHsKIAkuc2VuZF9yZXF1ZXN0CQk9IHhwcnRfcmRtYV9zZW5kX3JlcXVlc3QsCiAJLmNsb3NlCQkJPSB4cHJ0X3JkbWFfY2xvc2UsCiAJLmRlc3Ryb3kJCT0geHBydF9yZG1hX2Rlc3Ryb3ksCi0JLnNldF9jb25uZWN0X3RpbWVvdXQJPSB4cHJ0X3JkbWFfdGNwX3NldF9jb25uZWN0X3RpbWVvdXQsCisJLnNldF9jb25uZWN0X3RpbWVvdXQJPSB4cHJ0X3JkbWFfc2V0X2Nvbm5lY3RfdGltZW91dCwKIAkucHJpbnRfc3RhdHMJCT0geHBydF9yZG1hX3ByaW50X3N0YXRzLAogCS5lbmFibGVfc3dhcAkJPSB4cHJ0X3JkbWFfZW5hYmxlX3N3YXAsCiAJLmRpc2FibGVfc3dhcAkJPSB4cHJ0X3JkbWFfZGlzYWJsZV9zd2FwLApkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy94cHJ0cmRtYS92ZXJicy5jIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS92ZXJicy5jCmluZGV4IDgwNWIxZjM1Li4zYTkwNzUzIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnRyZG1hL3ZlcmJzLmMKKysrIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS92ZXJicy5jCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3N1bnJwYy9hZGRyLmg+CiAjaW5jbHVkZSA8bGludXgvc3VucnBjL3N2Y19yZG1hLmg+CisjaW5jbHVkZSA8bGludXgvbG9nMi5oPgogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvYmFycmllci5oPgogI2luY2x1ZGUgPGFzbS9iaXRvcHMuaD4KQEAgLTc0LDggKzc1LDEwIEBACiAgKiBpbnRlcm5hbCBmdW5jdGlvbnMKICAqLwogc3RhdGljIHZvaWQgcnBjcmRtYV9zZW5kY3R4X3B1dF9sb2NrZWQoc3RydWN0IHJwY3JkbWFfc2VuZGN0eCAqc2MpOworc3RhdGljIHZvaWQgcnBjcmRtYV9yZXBzX2Rlc3Ryb3koc3RydWN0IHJwY3JkbWFfYnVmZmVyICpidWYpOwogc3RhdGljIHZvaWQgcnBjcmRtYV9tcnNfY3JlYXRlKHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCk7CiBzdGF0aWMgdm9pZCBycGNyZG1hX21yc19kZXN0cm95KHN0cnVjdCBycGNyZG1hX2J1ZmZlciAqYnVmKTsKK3N0YXRpYyB2b2lkIHJwY3JkbWFfbXJfZnJlZShzdHJ1Y3QgcnBjcmRtYV9tciAqbXIpOwogc3RhdGljIHN0cnVjdCBycGNyZG1hX3JlZ2J1ZiAqCiBycGNyZG1hX3JlZ2J1Zl9hbGxvYyhzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uLAogCQkgICAgIGdmcF90IGZsYWdzKTsKQEAgLTQwNSw5ICs0MDgsOCBAQCBycGNyZG1hX2lhX3JlbW92ZShzdHJ1Y3QgcnBjcmRtYV9pYSAqaWEpCiAJc3RydWN0IHJwY3JkbWFfZXAgKmVwID0gJnJfeHBydC0+cnhfZXA7CiAJc3RydWN0IHJwY3JkbWFfYnVmZmVyICpidWYgPSAmcl94cHJ0LT5yeF9idWY7CiAJc3RydWN0IHJwY3JkbWFfcmVxICpyZXE7Ci0Jc3RydWN0IHJwY3JkbWFfcmVwICpyZXA7CiAKLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmJ1Zi0+cmJfcmVmcmVzaF93b3JrZXIpOworCWNhbmNlbF93b3JrX3N5bmMoJmJ1Zi0+cmJfcmVmcmVzaF93b3JrZXIpOwogCiAJLyogVGhpcyBpcyBzaW1pbGFyIHRvIHJwY3JkbWFfZXBfZGVzdHJveSwgYnV0OgogCSAqIC0gRG9uJ3QgY2FuY2VsIHRoZSBjb25uZWN0IHdvcmtlci4KQEAgLTQyOSw4ICs0MzEsNyBAQCBycGNyZG1hX2lhX3JlbW92ZShzdHJ1Y3QgcnBjcmRtYV9pYSAqaWEpCiAJLyogVGhlIFVMUCBpcyByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgYWxsIERNQQogCSAqIG1hcHBpbmdzIGFuZCBNUnMgYXJlIGdvbmUuCiAJICovCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShyZXAsICZidWYtPnJiX3JlY3ZfYnVmcywgcnJfbGlzdCkKLQkJcnBjcmRtYV9yZWdidWZfZG1hX3VubWFwKHJlcC0+cnJfcmRtYWJ1Zik7CisJcnBjcmRtYV9yZXBzX2Rlc3Ryb3koYnVmKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcSwgJmJ1Zi0+cmJfYWxscmVxcywgcmxfYWxsKSB7CiAJCXJwY3JkbWFfcmVnYnVmX2RtYV91bm1hcChyZXEtPnJsX3JkbWFidWYpOwogCQlycGNyZG1hX3JlZ2J1Zl9kbWFfdW5tYXAocmVxLT5ybF9zZW5kYnVmKTsKQEAgLTUyMSwxOCArNTIyLDE3IEBAIGludCBycGNyZG1hX2VwX2NyZWF0ZShzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQpCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmZXAtPnJlcF9jb25uZWN0X3dhaXQpOwogCWVwLT5yZXBfcmVjZWl2ZV9jb3VudCA9IDA7CiAKLQlzZW5kY3EgPSBpYl9hbGxvY19jcShpYS0+cmlfaWQtPmRldmljZSwgTlVMTCwKLQkJCSAgICAgZXAtPnJlcF9hdHRyLmNhcC5tYXhfc2VuZF93ciArIDEsCi0JCQkgICAgIGlhLT5yaV9pZC0+ZGV2aWNlLT5udW1fY29tcF92ZWN0b3JzID4gMSA/IDEgOiAwLAotCQkJICAgICBJQl9QT0xMX1dPUktRVUVVRSk7CisJc2VuZGNxID0gaWJfYWxsb2NfY3FfYW55KGlhLT5yaV9pZC0+ZGV2aWNlLCBOVUxMLAorCQkJCSBlcC0+cmVwX2F0dHIuY2FwLm1heF9zZW5kX3dyICsgMSwKKwkJCQkgSUJfUE9MTF9XT1JLUVVFVUUpOwogCWlmIChJU19FUlIoc2VuZGNxKSkgewogCQlyYyA9IFBUUl9FUlIoc2VuZGNxKTsKIAkJZ290byBvdXQxOwogCX0KIAotCXJlY3ZjcSA9IGliX2FsbG9jX2NxKGlhLT5yaV9pZC0+ZGV2aWNlLCBOVUxMLAotCQkJICAgICBlcC0+cmVwX2F0dHIuY2FwLm1heF9yZWN2X3dyICsgMSwKLQkJCSAgICAgMCwgSUJfUE9MTF9XT1JLUVVFVUUpOworCXJlY3ZjcSA9IGliX2FsbG9jX2NxX2FueShpYS0+cmlfaWQtPmRldmljZSwgTlVMTCwKKwkJCQkgZXAtPnJlcF9hdHRyLmNhcC5tYXhfcmVjdl93ciArIDEsCisJCQkJIElCX1BPTExfV09SS1FVRVVFKTsKIAlpZiAoSVNfRVJSKHJlY3ZjcSkpIHsKIAkJcmMgPSBQVFJfRVJSKHJlY3ZjcSk7CiAJCWdvdG8gb3V0MjsKQEAgLTYwNSwxMCArNjA1LDEwIEBAIHZvaWQgcnBjcmRtYV9lcF9kZXN0cm95KHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCkKICAqIFVubGlrZSBhIG5vcm1hbCByZWNvbm5lY3Rpb24sIGEgZnJlc2ggUEQgYW5kIGEgbmV3IHNldAogICogb2YgTVJzIGFuZCBidWZmZXJzIGlzIG5lZWRlZC4KICAqLwotc3RhdGljIGludAotcnBjcmRtYV9lcF9yZWNyZWF0ZV94cHJ0KHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwKLQkJCSBzdHJ1Y3QgcnBjcmRtYV9lcCAqZXAsIHN0cnVjdCBycGNyZG1hX2lhICppYSkKK3N0YXRpYyBpbnQgcnBjcmRtYV9lcF9yZWNyZWF0ZV94cHJ0KHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwKKwkJCQkgICAgc3RydWN0IGliX3FwX2luaXRfYXR0ciAqcXBfaW5pdF9hdHRyKQogeworCXN0cnVjdCBycGNyZG1hX2lhICppYSA9ICZyX3hwcnQtPnJ4X2lhOwogCWludCByYywgZXJyOwogCiAJdHJhY2VfeHBydHJkbWFfcmVpbnNlcnQocl94cHJ0KTsKQEAgLTYyNSw3ICs2MjUsNyBAQCBycGNyZG1hX2VwX3JlY3JlYXRlX3hwcnQoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LAogCX0KIAogCXJjID0gLUVORVRVTlJFQUNIOwotCWVyciA9IHJkbWFfY3JlYXRlX3FwKGlhLT5yaV9pZCwgaWEtPnJpX3BkLCAmZXAtPnJlcF9hdHRyKTsKKwllcnIgPSByZG1hX2NyZWF0ZV9xcChpYS0+cmlfaWQsIGlhLT5yaV9wZCwgcXBfaW5pdF9hdHRyKTsKIAlpZiAoZXJyKSB7CiAJCXByX2VycigicnBjcmRtYTogcmRtYV9jcmVhdGVfcXAgcmV0dXJuZWQgJWRcbiIsIGVycik7CiAJCWdvdG8gb3V0MzsKQEAgLTY0MiwxNiArNjQyLDE2IEBAIHJwY3JkbWFfZXBfcmVjcmVhdGVfeHBydChzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsCiAJcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50Ci1ycGNyZG1hX2VwX3JlY29ubmVjdChzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsIHN0cnVjdCBycGNyZG1hX2VwICplcCwKLQkJICAgICBzdHJ1Y3QgcnBjcmRtYV9pYSAqaWEpCitzdGF0aWMgaW50IHJwY3JkbWFfZXBfcmVjb25uZWN0KHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwKKwkJCQlzdHJ1Y3QgaWJfcXBfaW5pdF9hdHRyICpxcF9pbml0X2F0dHIpCiB7CisJc3RydWN0IHJwY3JkbWFfaWEgKmlhID0gJnJfeHBydC0+cnhfaWE7CiAJc3RydWN0IHJkbWFfY21faWQgKmlkLCAqb2xkOwogCWludCBlcnIsIHJjOwogCiAJdHJhY2VfeHBydHJkbWFfcmVjb25uZWN0KHJfeHBydCk7CiAKLQlycGNyZG1hX2VwX2Rpc2Nvbm5lY3QoZXAsIGlhKTsKKwlycGNyZG1hX2VwX2Rpc2Nvbm5lY3QoJnJfeHBydC0+cnhfZXAsIGlhKTsKIAogCXJjID0gLUVIT1NUVU5SRUFDSDsKIAlpZCA9IHJwY3JkbWFfY3JlYXRlX2lkKHJfeHBydCwgaWEpOwpAQCAtNjczLDcgKzY3Myw3IEBAIHJwY3JkbWFfZXBfcmVjb25uZWN0KHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwgc3RydWN0IHJwY3JkbWFfZXAgKmVwLAogCQlnb3RvIG91dF9kZXN0cm95OwogCX0KIAotCWVyciA9IHJkbWFfY3JlYXRlX3FwKGlkLCBpYS0+cmlfcGQsICZlcC0+cmVwX2F0dHIpOworCWVyciA9IHJkbWFfY3JlYXRlX3FwKGlkLCBpYS0+cmlfcGQsIHFwX2luaXRfYXR0cik7CiAJaWYgKGVycikKIAkJZ290byBvdXRfZGVzdHJveTsKIApAQCAtNjk4LDI1ICs2OTgsMjcgQEAgcnBjcmRtYV9lcF9jb25uZWN0KHN0cnVjdCBycGNyZG1hX2VwICplcCwgc3RydWN0IHJwY3JkbWFfaWEgKmlhKQogCXN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCA9IGNvbnRhaW5lcl9vZihpYSwgc3RydWN0IHJwY3JkbWFfeHBydCwKIAkJCQkJCSAgIHJ4X2lhKTsKIAlzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQgPSAmcl94cHJ0LT5yeF94cHJ0OworCXN0cnVjdCBpYl9xcF9pbml0X2F0dHIgcXBfaW5pdF9hdHRyOwogCWludCByYzsKIAogcmV0cnk6CisJbWVtY3B5KCZxcF9pbml0X2F0dHIsICZlcC0+cmVwX2F0dHIsIHNpemVvZihxcF9pbml0X2F0dHIpKTsKIAlzd2l0Y2ggKGVwLT5yZXBfY29ubmVjdGVkKSB7CiAJY2FzZSAwOgogCQlkcHJpbnRrKCJSUEM6ICAgICAgICVzOiBjb25uZWN0aW5nLi4uXG4iLCBfX2Z1bmNfXyk7Ci0JCXJjID0gcmRtYV9jcmVhdGVfcXAoaWEtPnJpX2lkLCBpYS0+cmlfcGQsICZlcC0+cmVwX2F0dHIpOworCQlyYyA9IHJkbWFfY3JlYXRlX3FwKGlhLT5yaV9pZCwgaWEtPnJpX3BkLCAmcXBfaW5pdF9hdHRyKTsKIAkJaWYgKHJjKSB7CiAJCQlyYyA9IC1FTkVUVU5SRUFDSDsKIAkJCWdvdG8gb3V0X25vdXBkYXRlOwogCQl9CiAJCWJyZWFrOwogCWNhc2UgLUVOT0RFVjoKLQkJcmMgPSBycGNyZG1hX2VwX3JlY3JlYXRlX3hwcnQocl94cHJ0LCBlcCwgaWEpOworCQlyYyA9IHJwY3JkbWFfZXBfcmVjcmVhdGVfeHBydChyX3hwcnQsICZxcF9pbml0X2F0dHIpOwogCQlpZiAocmMpCiAJCQlnb3RvIG91dF9ub3VwZGF0ZTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJcmMgPSBycGNyZG1hX2VwX3JlY29ubmVjdChyX3hwcnQsIGVwLCBpYSk7CisJCXJjID0gcnBjcmRtYV9lcF9yZWNvbm5lY3Qocl94cHJ0LCAmcXBfaW5pdF9hdHRyKTsKIAkJaWYgKHJjKQogCQkJZ290byBvdXQ7CiAJfQpAQCAtNzMwLDYgKzczMiw4IEBAIHJwY3JkbWFfZXBfY29ubmVjdChzdHJ1Y3QgcnBjcmRtYV9lcCAqZXAsIHN0cnVjdCBycGNyZG1hX2lhICppYSkKIAlpZiAocmMpCiAJCWdvdG8gb3V0OwogCisJaWYgKHhwcnQtPnJlZXN0YWJsaXNoX3RpbWVvdXQgPCBSUENSRE1BX0lOSVRfUkVFU1RfVE8pCisJCXhwcnQtPnJlZXN0YWJsaXNoX3RpbWVvdXQgPSBSUENSRE1BX0lOSVRfUkVFU1RfVE87CiAJd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGVwLT5yZXBfY29ubmVjdF93YWl0LCBlcC0+cmVwX2Nvbm5lY3RlZCAhPSAwKTsKIAlpZiAoZXAtPnJlcF9jb25uZWN0ZWQgPD0gMCkgewogCQlpZiAoZXAtPnJlcF9jb25uZWN0ZWQgPT0gLUVBR0FJTikKQEAgLTk0MywxNCArOTQ3LDEyIEBAIHJwY3JkbWFfbXJzX2NyZWF0ZShzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQpCiAJc3RydWN0IHJwY3JkbWFfYnVmZmVyICpidWYgPSAmcl94cHJ0LT5yeF9idWY7CiAJc3RydWN0IHJwY3JkbWFfaWEgKmlhID0gJnJfeHBydC0+cnhfaWE7CiAJdW5zaWduZWQgaW50IGNvdW50OwotCUxJU1RfSEVBRChmcmVlKTsKLQlMSVNUX0hFQUQoYWxsKTsKIAogCWZvciAoY291bnQgPSAwOyBjb3VudCA8IGlhLT5yaV9tYXhfc2VnczsgY291bnQrKykgewogCQlzdHJ1Y3QgcnBjcmRtYV9tciAqbXI7CiAJCWludCByYzsKIAotCQltciA9IGt6YWxsb2Moc2l6ZW9mKCptciksIEdGUF9LRVJORUwpOworCQltciA9IGt6YWxsb2Moc2l6ZW9mKCptciksIEdGUF9OT0ZTKTsKIAkJaWYgKCFtcikKIAkJCWJyZWFrOwogCkBAIC05NjIsMTUgKzk2NCwxMyBAQCBycGNyZG1hX21yc19jcmVhdGUoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0KQogCiAJCW1yLT5tcl94cHJ0ID0gcl94cHJ0OwogCi0JCWxpc3RfYWRkKCZtci0+bXJfbGlzdCwgJmZyZWUpOwotCQlsaXN0X2FkZCgmbXItPm1yX2FsbCwgJmFsbCk7CisJCXNwaW5fbG9jaygmYnVmLT5yYl9sb2NrKTsKKwkJbGlzdF9hZGQoJm1yLT5tcl9saXN0LCAmYnVmLT5yYl9tcnMpOworCQlsaXN0X2FkZCgmbXItPm1yX2FsbCwgJmJ1Zi0+cmJfYWxsX21ycyk7CisJCXNwaW5fdW5sb2NrKCZidWYtPnJiX2xvY2spOwogCX0KIAotCXNwaW5fbG9jaygmYnVmLT5yYl9tcmxvY2spOwotCWxpc3Rfc3BsaWNlKCZmcmVlLCAmYnVmLT5yYl9tcnMpOwotCWxpc3Rfc3BsaWNlKCZhbGwsICZidWYtPnJiX2FsbCk7CiAJcl94cHJ0LT5yeF9zdGF0cy5tcnNfYWxsb2NhdGVkICs9IGNvdW50OwotCXNwaW5fdW5sb2NrKCZidWYtPnJiX21ybG9jayk7CiAJdHJhY2VfeHBydHJkbWFfY3JlYXRlbXJzKHJfeHBydCwgY291bnQpOwogfQogCkBAIC05NzgsNyArOTc4LDcgQEAgc3RhdGljIHZvaWQKIHJwY3JkbWFfbXJfcmVmcmVzaF93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBycGNyZG1hX2J1ZmZlciAqYnVmID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBycGNyZG1hX2J1ZmZlciwKLQkJCQkJCSAgcmJfcmVmcmVzaF93b3JrZXIud29yayk7CisJCQkJCQkgIHJiX3JlZnJlc2hfd29ya2VyKTsKIAlzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQgPSBjb250YWluZXJfb2YoYnVmLCBzdHJ1Y3QgcnBjcmRtYV94cHJ0LAogCQkJCQkJICAgcnhfYnVmKTsKIApAQCAtMTAwMCwxMiArMTAwMCwxOCBAQCBzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJwY3JkbWFfcmVxX2NyZWF0ZShzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsIHNpemVfdCBzaXplLAogCXN0cnVjdCBycGNyZG1hX2J1ZmZlciAqYnVmZmVyID0gJnJfeHBydC0+cnhfYnVmOwogCXN0cnVjdCBycGNyZG1hX3JlZ2J1ZiAqcmI7CiAJc3RydWN0IHJwY3JkbWFfcmVxICpyZXE7CisJc2l6ZV90IG1heGhkcnNpemU7CiAKIAlyZXEgPSBremFsbG9jKHNpemVvZigqcmVxKSwgZmxhZ3MpOwogCWlmIChyZXEgPT0gTlVMTCkKIAkJZ290byBvdXQxOwogCi0JcmIgPSBycGNyZG1hX3JlZ2J1Zl9hbGxvYyhSUENSRE1BX0hEUkJVRl9TSVpFLCBETUFfVE9fREVWSUNFLCBmbGFncyk7CisJLyogQ29tcHV0ZSBtYXhpbXVtIGhlYWRlciBidWZmZXIgc2l6ZSBpbiBieXRlcyAqLworCW1heGhkcnNpemUgPSBycGNyZG1hX2ZpeGVkX21heHN6ICsgMyArCisJCSAgICAgcl94cHJ0LT5yeF9pYS5yaV9tYXhfc2VncyAqIHJwY3JkbWFfcmVhZGNodW5rX21heHN6OworCW1heGhkcnNpemUgKj0gc2l6ZW9mKF9fYmUzMik7CisJcmIgPSBycGNyZG1hX3JlZ2J1Zl9hbGxvYyhfX3JvdW5kdXBfcG93X29mX3R3byhtYXhoZHJzaXplKSwKKwkJCQkgIERNQV9UT19ERVZJQ0UsIGZsYWdzKTsKIAlpZiAoIXJiKQogCQlnb3RvIG91dDI7CiAJcmVxLT5ybF9yZG1hYnVmID0gcmI7CkBAIC0xMDE5LDYgKzEwMjUsNyBAQCBzdHJ1Y3QgcnBjcmRtYV9yZXEgKnJwY3JkbWFfcmVxX2NyZWF0ZShzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsIHNpemVfdCBzaXplLAogCWlmICghcmVxLT5ybF9yZWN2YnVmKQogCQlnb3RvIG91dDQ7CiAKKwlJTklUX0xJU1RfSEVBRCgmcmVxLT5ybF9mcmVlX21ycyk7CiAJSU5JVF9MSVNUX0hFQUQoJnJlcS0+cmxfcmVnaXN0ZXJlZCk7CiAJc3Bpbl9sb2NrKCZidWZmZXItPnJiX2xvY2spOwogCWxpc3RfYWRkKCZyZXEtPnJsX2FsbCwgJmJ1ZmZlci0+cmJfYWxscmVxcyk7CkBAIC0xMDY2LDYgKzEwNzMsNDAgQEAgc3RhdGljIHN0cnVjdCBycGNyZG1hX3JlcCAqcnBjcmRtYV9yZXBfY3JlYXRlKHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwKIAlyZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIHZvaWQgcnBjcmRtYV9yZXBfZGVzdHJveShzdHJ1Y3QgcnBjcmRtYV9yZXAgKnJlcCkKK3sKKwlycGNyZG1hX3JlZ2J1Zl9mcmVlKHJlcC0+cnJfcmRtYWJ1Zik7CisJa2ZyZWUocmVwKTsKK30KKworc3RhdGljIHN0cnVjdCBycGNyZG1hX3JlcCAqcnBjcmRtYV9yZXBfZ2V0X2xvY2tlZChzdHJ1Y3QgcnBjcmRtYV9idWZmZXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgbGxpc3Rfbm9kZSAqbm9kZTsKKworCS8qIENhbGxzIHRvIGxsaXN0X2RlbF9maXJzdCBhcmUgcmVxdWlyZWQgdG8gYmUgc2VyaWFsaXplZCAqLworCW5vZGUgPSBsbGlzdF9kZWxfZmlyc3QoJmJ1Zi0+cmJfZnJlZV9yZXBzKTsKKwlpZiAoIW5vZGUpCisJCXJldHVybiBOVUxMOworCXJldHVybiBsbGlzdF9lbnRyeShub2RlLCBzdHJ1Y3QgcnBjcmRtYV9yZXAsIHJyX25vZGUpOworfQorCitzdGF0aWMgdm9pZCBycGNyZG1hX3JlcF9wdXQoc3RydWN0IHJwY3JkbWFfYnVmZmVyICpidWYsCisJCQkgICAgc3RydWN0IHJwY3JkbWFfcmVwICpyZXApCit7CisJaWYgKCFyZXAtPnJyX3RlbXApCisJCWxsaXN0X2FkZCgmcmVwLT5ycl9ub2RlLCAmYnVmLT5yYl9mcmVlX3JlcHMpOworCWVsc2UKKwkJcnBjcmRtYV9yZXBfZGVzdHJveShyZXApOworfQorCitzdGF0aWMgdm9pZCBycGNyZG1hX3JlcHNfZGVzdHJveShzdHJ1Y3QgcnBjcmRtYV9idWZmZXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgcnBjcmRtYV9yZXAgKnJlcDsKKworCXdoaWxlICgocmVwID0gcnBjcmRtYV9yZXBfZ2V0X2xvY2tlZChidWYpKSAhPSBOVUxMKQorCQlycGNyZG1hX3JlcF9kZXN0cm95KHJlcCk7Cit9CisKIC8qKgogICogcnBjcmRtYV9idWZmZXJfY3JlYXRlIC0gQ3JlYXRlIGluaXRpYWwgc2V0IG9mIHJlcS9yZXAgb2JqZWN0cwogICogQHJfeHBydDogdHJhbnNwb3J0IGluc3RhbmNlIHRvIChyZSlpbml0aWFsaXplCkBAIC0xMDc5LDEyICsxMTIwLDEwIEBAIGludCBycGNyZG1hX2J1ZmZlcl9jcmVhdGUoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0KQogCiAJYnVmLT5yYl9tYXhfcmVxdWVzdHMgPSByX3hwcnQtPnJ4X2VwLnJlcF9tYXhfcmVxdWVzdHM7CiAJYnVmLT5yYl9iY19zcnZfbWF4X3JlcXVlc3RzID0gMDsKLQlzcGluX2xvY2tfaW5pdCgmYnVmLT5yYl9tcmxvY2spOwogCXNwaW5fbG9ja19pbml0KCZidWYtPnJiX2xvY2spOwogCUlOSVRfTElTVF9IRUFEKCZidWYtPnJiX21ycyk7Ci0JSU5JVF9MSVNUX0hFQUQoJmJ1Zi0+cmJfYWxsKTsKLQlJTklUX0RFTEFZRURfV09SSygmYnVmLT5yYl9yZWZyZXNoX3dvcmtlciwKLQkJCSAgcnBjcmRtYV9tcl9yZWZyZXNoX3dvcmtlcik7CisJSU5JVF9MSVNUX0hFQUQoJmJ1Zi0+cmJfYWxsX21ycyk7CisJSU5JVF9XT1JLKCZidWYtPnJiX3JlZnJlc2hfd29ya2VyLCBycGNyZG1hX21yX3JlZnJlc2hfd29ya2VyKTsKIAogCXJwY3JkbWFfbXJzX2NyZWF0ZShyX3hwcnQpOwogCkBAIC0xMTAzLDcgKzExNDIsNyBAQCBpbnQgcnBjcmRtYV9idWZmZXJfY3JlYXRlKHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCkKIAl9CiAKIAlidWYtPnJiX2NyZWRpdHMgPSAxOwotCUlOSVRfTElTVF9IRUFEKCZidWYtPnJiX3JlY3ZfYnVmcyk7CisJaW5pdF9sbGlzdF9oZWFkKCZidWYtPnJiX2ZyZWVfcmVwcyk7CiAKIAlyYyA9IHJwY3JkbWFfc2VuZGN0eHNfY3JlYXRlKHJfeHBydCk7CiAJaWYgKHJjKQpAQCAtMTExNSwxMiArMTE1NCw2IEBAIGludCBycGNyZG1hX2J1ZmZlcl9jcmVhdGUoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0KQogCXJldHVybiByYzsKIH0KIAotc3RhdGljIHZvaWQgcnBjcmRtYV9yZXBfZGVzdHJveShzdHJ1Y3QgcnBjcmRtYV9yZXAgKnJlcCkKLXsKLQlycGNyZG1hX3JlZ2J1Zl9mcmVlKHJlcC0+cnJfcmRtYWJ1Zik7Ci0Ja2ZyZWUocmVwKTsKLX0KLQogLyoqCiAgKiBycGNyZG1hX3JlcV9kZXN0cm95IC0gRGVzdHJveSBhbiBycGNyZG1hX3JlcSBvYmplY3QKICAqIEByZXE6IHVudXNlZCBvYmplY3QgdG8gYmUgZGVzdHJveWVkCkBAIC0xMTI4LDExICsxMTYxLDEzIEBAIHN0YXRpYyB2b2lkIHJwY3JkbWFfcmVwX2Rlc3Ryb3koc3RydWN0IHJwY3JkbWFfcmVwICpyZXApCiAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgY2FsbGVyIHByZXZlbnRzIGNvbmN1cnJlbnQgZGV2aWNlCiAgKiB1bmxvYWQgYW5kIHRyYW5zcG9ydCB0ZWFyLWRvd24uCiAgKi8KLXZvaWQKLXJwY3JkbWFfcmVxX2Rlc3Ryb3koc3RydWN0IHJwY3JkbWFfcmVxICpyZXEpCit2b2lkIHJwY3JkbWFfcmVxX2Rlc3Ryb3koc3RydWN0IHJwY3JkbWFfcmVxICpyZXEpCiB7CiAJbGlzdF9kZWwoJnJlcS0+cmxfYWxsKTsKIAorCXdoaWxlICghbGlzdF9lbXB0eSgmcmVxLT5ybF9mcmVlX21ycykpCisJCXJwY3JkbWFfbXJfZnJlZShycGNyZG1hX21yX3BvcCgmcmVxLT5ybF9mcmVlX21ycykpOworCiAJcnBjcmRtYV9yZWdidWZfZnJlZShyZXEtPnJsX3JlY3ZidWYpOwogCXJwY3JkbWFfcmVnYnVmX2ZyZWUocmVxLT5ybF9zZW5kYnVmKTsKIAlycGNyZG1hX3JlZ2J1Zl9mcmVlKHJlcS0+cmxfcmRtYWJ1Zik7CkBAIC0xMTQ4LDI1ICsxMTgzLDE5IEBAIHJwY3JkbWFfbXJzX2Rlc3Ryb3koc3RydWN0IHJwY3JkbWFfYnVmZmVyICpidWYpCiAJdW5zaWduZWQgaW50IGNvdW50OwogCiAJY291bnQgPSAwOwotCXNwaW5fbG9jaygmYnVmLT5yYl9tcmxvY2spOwotCXdoaWxlICghbGlzdF9lbXB0eSgmYnVmLT5yYl9hbGwpKSB7Ci0JCW1yID0gbGlzdF9lbnRyeShidWYtPnJiX2FsbC5uZXh0LCBzdHJ1Y3QgcnBjcmRtYV9tciwgbXJfYWxsKTsKKwlzcGluX2xvY2soJmJ1Zi0+cmJfbG9jayk7CisJd2hpbGUgKChtciA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmYnVmLT5yYl9hbGxfbXJzLAorCQkJCQkgICAgICBzdHJ1Y3QgcnBjcmRtYV9tciwKKwkJCQkJICAgICAgbXJfYWxsKSkgIT0gTlVMTCkgewogCQlsaXN0X2RlbCgmbXItPm1yX2FsbCk7Ci0KLQkJc3Bpbl91bmxvY2soJmJ1Zi0+cmJfbXJsb2NrKTsKLQotCQkvKiBFbnN1cmUgTVcgaXMgbm90IG9uIGFueSBybF9yZWdpc3RlcmVkIGxpc3QgKi8KLQkJaWYgKCFsaXN0X2VtcHR5KCZtci0+bXJfbGlzdCkpCi0JCQlsaXN0X2RlbCgmbXItPm1yX2xpc3QpOworCQlzcGluX3VubG9jaygmYnVmLT5yYl9sb2NrKTsKIAogCQlmcndyX3JlbGVhc2VfbXIobXIpOwogCQljb3VudCsrOwotCQlzcGluX2xvY2soJmJ1Zi0+cmJfbXJsb2NrKTsKKwkJc3Bpbl9sb2NrKCZidWYtPnJiX2xvY2spOwogCX0KLQlzcGluX3VubG9jaygmYnVmLT5yYl9tcmxvY2spOworCXNwaW5fdW5sb2NrKCZidWYtPnJiX2xvY2spOwogCXJfeHBydC0+cnhfc3RhdHMubXJzX2FsbG9jYXRlZCA9IDA7Ci0KLQlkcHJpbnRrKCJSUEM6ICAgICAgICVzOiByZWxlYXNlZCAldSBNUnNcbiIsIF9fZnVuY19fLCBjb3VudCk7CiB9CiAKIC8qKgpAQCAtMTE4MCwxOCArMTIwOSwxMCBAQCBycGNyZG1hX21yc19kZXN0cm95KHN0cnVjdCBycGNyZG1hX2J1ZmZlciAqYnVmKQogdm9pZAogcnBjcmRtYV9idWZmZXJfZGVzdHJveShzdHJ1Y3QgcnBjcmRtYV9idWZmZXIgKmJ1ZikKIHsKLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmJ1Zi0+cmJfcmVmcmVzaF93b3JrZXIpOworCWNhbmNlbF93b3JrX3N5bmMoJmJ1Zi0+cmJfcmVmcmVzaF93b3JrZXIpOwogCiAJcnBjcmRtYV9zZW5kY3R4c19kZXN0cm95KGJ1Zik7Ci0KLQl3aGlsZSAoIWxpc3RfZW1wdHkoJmJ1Zi0+cmJfcmVjdl9idWZzKSkgewotCQlzdHJ1Y3QgcnBjcmRtYV9yZXAgKnJlcDsKLQotCQlyZXAgPSBsaXN0X2ZpcnN0X2VudHJ5KCZidWYtPnJiX3JlY3ZfYnVmcywKLQkJCQkgICAgICAgc3RydWN0IHJwY3JkbWFfcmVwLCBycl9saXN0KTsKLQkJbGlzdF9kZWwoJnJlcC0+cnJfbGlzdCk7Ci0JCXJwY3JkbWFfcmVwX2Rlc3Ryb3kocmVwKTsKLQl9CisJcnBjcmRtYV9yZXBzX2Rlc3Ryb3koYnVmKTsKIAogCXdoaWxlICghbGlzdF9lbXB0eSgmYnVmLT5yYl9zZW5kX2J1ZnMpKSB7CiAJCXN0cnVjdCBycGNyZG1hX3JlcSAqcmVxOwpAQCAtMTIxNiw1NCArMTIzNywyMCBAQCBzdHJ1Y3QgcnBjcmRtYV9tciAqCiBycGNyZG1hX21yX2dldChzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQpCiB7CiAJc3RydWN0IHJwY3JkbWFfYnVmZmVyICpidWYgPSAmcl94cHJ0LT5yeF9idWY7Ci0Jc3RydWN0IHJwY3JkbWFfbXIgKm1yID0gTlVMTDsKKwlzdHJ1Y3QgcnBjcmRtYV9tciAqbXI7CiAKLQlzcGluX2xvY2soJmJ1Zi0+cmJfbXJsb2NrKTsKLQlpZiAoIWxpc3RfZW1wdHkoJmJ1Zi0+cmJfbXJzKSkKLQkJbXIgPSBycGNyZG1hX21yX3BvcCgmYnVmLT5yYl9tcnMpOwotCXNwaW5fdW5sb2NrKCZidWYtPnJiX21ybG9jayk7Ci0KLQlpZiAoIW1yKQotCQlnb3RvIG91dF9ub21yczsKKwlzcGluX2xvY2soJmJ1Zi0+cmJfbG9jayk7CisJbXIgPSBycGNyZG1hX21yX3BvcCgmYnVmLT5yYl9tcnMpOworCXNwaW5fdW5sb2NrKCZidWYtPnJiX2xvY2spOwogCXJldHVybiBtcjsKLQotb3V0X25vbXJzOgotCXRyYWNlX3hwcnRyZG1hX25vbXJzKHJfeHBydCk7Ci0JaWYgKHJfeHBydC0+cnhfZXAucmVwX2Nvbm5lY3RlZCAhPSAtRU5PREVWKQotCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmJ1Zi0+cmJfcmVmcmVzaF93b3JrZXIsIDApOwotCi0JLyogQWxsb3cgdGhlIHJlcGx5IGhhbmRsZXIgYW5kIHJlZnJlc2ggd29ya2VyIHRvIHJ1biAqLwotCWNvbmRfcmVzY2hlZCgpOwotCi0JcmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXRpYyB2b2lkCi1fX3JwY3JkbWFfbXJfcHV0KHN0cnVjdCBycGNyZG1hX2J1ZmZlciAqYnVmLCBzdHJ1Y3QgcnBjcmRtYV9tciAqbXIpCi17Ci0Jc3Bpbl9sb2NrKCZidWYtPnJiX21ybG9jayk7Ci0JcnBjcmRtYV9tcl9wdXNoKG1yLCAmYnVmLT5yYl9tcnMpOwotCXNwaW5fdW5sb2NrKCZidWYtPnJiX21ybG9jayk7CiB9CiAKIC8qKgotICogcnBjcmRtYV9tcl9wdXQgLSBSZWxlYXNlIGFuIHJwY3JkbWFfbXIgb2JqZWN0Ci0gKiBAbXI6IG9iamVjdCB0byByZWxlYXNlCisgKiBycGNyZG1hX21yX3B1dCAtIERNQSB1bm1hcCBhbiBNUiBhbmQgcmVsZWFzZSBpdAorICogQG1yOiBNUiB0byByZWxlYXNlCiAgKgogICovCi12b2lkCi1ycGNyZG1hX21yX3B1dChzdHJ1Y3QgcnBjcmRtYV9tciAqbXIpCi17Ci0JX19ycGNyZG1hX21yX3B1dCgmbXItPm1yX3hwcnQtPnJ4X2J1ZiwgbXIpOwotfQotCi0vKioKLSAqIHJwY3JkbWFfbXJfdW5tYXBfYW5kX3B1dCAtIERNQSB1bm1hcCBhbiBNUiBhbmQgcmVsZWFzZSBpdAotICogQG1yOiBvYmplY3QgdG8gcmVsZWFzZQotICoKLSAqLwotdm9pZAotcnBjcmRtYV9tcl91bm1hcF9hbmRfcHV0KHN0cnVjdCBycGNyZG1hX21yICptcikKK3ZvaWQgcnBjcmRtYV9tcl9wdXQoc3RydWN0IHJwY3JkbWFfbXIgKm1yKQogewogCXN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCA9IG1yLT5tcl94cHJ0OwogCkBAIC0xMjczLDcgKzEyNjAsMTkgQEAgcnBjcmRtYV9tcl91bm1hcF9hbmRfcHV0KHN0cnVjdCBycGNyZG1hX21yICptcikKIAkJCQltci0+bXJfc2csIG1yLT5tcl9uZW50cywgbXItPm1yX2Rpcik7CiAJCW1yLT5tcl9kaXIgPSBETUFfTk9ORTsKIAl9Ci0JX19ycGNyZG1hX21yX3B1dCgmcl94cHJ0LT5yeF9idWYsIG1yKTsKKworCXJwY3JkbWFfbXJfcHVzaChtciwgJm1yLT5tcl9yZXEtPnJsX2ZyZWVfbXJzKTsKK30KKworc3RhdGljIHZvaWQgcnBjcmRtYV9tcl9mcmVlKHN0cnVjdCBycGNyZG1hX21yICptcikKK3sKKwlzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQgPSBtci0+bXJfeHBydDsKKwlzdHJ1Y3QgcnBjcmRtYV9idWZmZXIgKmJ1ZiA9ICZyX3hwcnQtPnJ4X2J1ZjsKKworCW1yLT5tcl9yZXEgPSBOVUxMOworCXNwaW5fbG9jaygmYnVmLT5yYl9sb2NrKTsKKwlycGNyZG1hX21yX3B1c2gobXIsICZidWYtPnJiX21ycyk7CisJc3Bpbl91bmxvY2soJmJ1Zi0+cmJfbG9jayk7CiB9CiAKIC8qKgpAQCAtMTMwNCwzOSArMTMwMywyNCBAQCBycGNyZG1hX2J1ZmZlcl9nZXQoc3RydWN0IHJwY3JkbWFfYnVmZmVyICpidWZmZXJzKQogICovCiB2b2lkIHJwY3JkbWFfYnVmZmVyX3B1dChzdHJ1Y3QgcnBjcmRtYV9idWZmZXIgKmJ1ZmZlcnMsIHN0cnVjdCBycGNyZG1hX3JlcSAqcmVxKQogewotCXN0cnVjdCBycGNyZG1hX3JlcCAqcmVwID0gcmVxLT5ybF9yZXBseTsKLQorCWlmIChyZXEtPnJsX3JlcGx5KQorCQlycGNyZG1hX3JlcF9wdXQoYnVmZmVycywgcmVxLT5ybF9yZXBseSk7CiAJcmVxLT5ybF9yZXBseSA9IE5VTEw7CiAKIAlzcGluX2xvY2soJmJ1ZmZlcnMtPnJiX2xvY2spOwogCWxpc3RfYWRkKCZyZXEtPnJsX2xpc3QsICZidWZmZXJzLT5yYl9zZW5kX2J1ZnMpOwotCWlmIChyZXApIHsKLQkJaWYgKCFyZXAtPnJyX3RlbXApIHsKLQkJCWxpc3RfYWRkKCZyZXAtPnJyX2xpc3QsICZidWZmZXJzLT5yYl9yZWN2X2J1ZnMpOwotCQkJcmVwID0gTlVMTDsKLQkJfQotCX0KIAlzcGluX3VubG9jaygmYnVmZmVycy0+cmJfbG9jayk7Ci0JaWYgKHJlcCkKLQkJcnBjcmRtYV9yZXBfZGVzdHJveShyZXApOwogfQogCi0vKgotICogUHV0IHJlcGx5IGJ1ZmZlcnMgYmFjayBpbnRvIHBvb2wgd2hlbiBub3QgYXR0YWNoZWQgdG8KLSAqIHJlcXVlc3QuIFRoaXMgaGFwcGVucyBpbiBlcnJvciBjb25kaXRpb25zLgorLyoqCisgKiBycGNyZG1hX3JlY3ZfYnVmZmVyX3B1dCAtIFJlbGVhc2UgcnBjcmRtYV9yZXAgYmFjayB0byBmcmVlIGxpc3QKKyAqIEByZXA6IHJlcCB0byByZWxlYXNlCisgKgorICogVXNlZCBhZnRlciBlcnJvciBjb25kaXRpb25zLgogICovCi12b2lkCi1ycGNyZG1hX3JlY3ZfYnVmZmVyX3B1dChzdHJ1Y3QgcnBjcmRtYV9yZXAgKnJlcCkKK3ZvaWQgcnBjcmRtYV9yZWN2X2J1ZmZlcl9wdXQoc3RydWN0IHJwY3JkbWFfcmVwICpyZXApCiB7Ci0Jc3RydWN0IHJwY3JkbWFfYnVmZmVyICpidWZmZXJzID0gJnJlcC0+cnJfcnhwcnQtPnJ4X2J1ZjsKLQotCWlmICghcmVwLT5ycl90ZW1wKSB7Ci0JCXNwaW5fbG9jaygmYnVmZmVycy0+cmJfbG9jayk7Ci0JCWxpc3RfYWRkKCZyZXAtPnJyX2xpc3QsICZidWZmZXJzLT5yYl9yZWN2X2J1ZnMpOwotCQlzcGluX3VubG9jaygmYnVmZmVycy0+cmJfbG9jayk7Ci0JfSBlbHNlIHsKLQkJcnBjcmRtYV9yZXBfZGVzdHJveShyZXApOwotCX0KKwlycGNyZG1hX3JlcF9wdXQoJnJlcC0+cnJfcnhwcnQtPnJ4X2J1ZiwgcmVwKTsKIH0KIAogLyogUmV0dXJucyBhIHBvaW50ZXIgdG8gYSBycGNyZG1hX3JlZ2J1ZiBvYmplY3QsIG9yIE5VTEwuCkBAIC0xNDg0LDcgKzE0NjgsNyBAQCBycGNyZG1hX3Bvc3RfcmVjdnMoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LCBib29sIHRlbXApCiAJY291bnQgPSAwOwogCiAJbmVlZGVkID0gYnVmLT5yYl9jcmVkaXRzICsgKGJ1Zi0+cmJfYmNfc3J2X21heF9yZXF1ZXN0cyA8PCAxKTsKLQlpZiAoZXAtPnJlcF9yZWNlaXZlX2NvdW50ID4gbmVlZGVkKQorCWlmIChsaWtlbHkoZXAtPnJlcF9yZWNlaXZlX2NvdW50ID4gbmVlZGVkKSkKIAkJZ290byBvdXQ7CiAJbmVlZGVkIC09IGVwLT5yZXBfcmVjZWl2ZV9jb3VudDsKIAlpZiAoIXRlbXApCkBAIC0xNDkyLDIyICsxNDc2LDEwIEBAIHJwY3JkbWFfcG9zdF9yZWN2cyhzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hwcnQsIGJvb2wgdGVtcCkKIAogCS8qIGZhc3QgcGF0aDogYWxsIG5lZWRlZCByZXBzIGNhbiBiZSBmb3VuZCBvbiB0aGUgZnJlZSBsaXN0ICovCiAJd3IgPSBOVUxMOwotCXNwaW5fbG9jaygmYnVmLT5yYl9sb2NrKTsKIAl3aGlsZSAobmVlZGVkKSB7Ci0JCXJlcCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmYnVmLT5yYl9yZWN2X2J1ZnMsCi0JCQkJCSAgICAgICBzdHJ1Y3QgcnBjcmRtYV9yZXAsIHJyX2xpc3QpOworCQlyZXAgPSBycGNyZG1hX3JlcF9nZXRfbG9ja2VkKGJ1Zik7CiAJCWlmICghcmVwKQotCQkJYnJlYWs7Ci0KLQkJbGlzdF9kZWwoJnJlcC0+cnJfbGlzdCk7Ci0JCXJlcC0+cnJfcmVjdl93ci5uZXh0ID0gd3I7Ci0JCXdyID0gJnJlcC0+cnJfcmVjdl93cjsKLQkJLS1uZWVkZWQ7Ci0JfQotCXNwaW5fdW5sb2NrKCZidWYtPnJiX2xvY2spOwotCi0Jd2hpbGUgKG5lZWRlZCkgewotCQlyZXAgPSBycGNyZG1hX3JlcF9jcmVhdGUocl94cHJ0LCB0ZW1wKTsKKwkJCXJlcCA9IHJwY3JkbWFfcmVwX2NyZWF0ZShyX3hwcnQsIHRlbXApOwogCQlpZiAoIXJlcCkKIAkJCWJyZWFrOwogCkBAIC0xNTI0LDcgKzE0OTYsNyBAQCBycGNyZG1hX3Bvc3RfcmVjdnMoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LCBib29sIHRlbXApCiAJCWlmICghcnBjcmRtYV9yZWdidWZfZG1hX21hcChyX3hwcnQsIHJlcC0+cnJfcmRtYWJ1ZikpCiAJCQlnb3RvIHJlbGVhc2Vfd3JzOwogCi0JCXRyYWNlX3hwcnRyZG1hX3Bvc3RfcmVjdihyZXAtPnJyX3JlY3Zfd3Iud3JfY3FlKTsKKwkJdHJhY2VfeHBydHJkbWFfcG9zdF9yZWN2KHJlcCk7CiAJCSsrY291bnQ7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnRyZG1hL3hwcnRfcmRtYS5oIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS94cHJ0X3JkbWEuaAppbmRleCA5MmNlMDlmLi42NWU2YjBlIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnRyZG1hL3hwcnRfcmRtYS5oCisrKyBiL25ldC9zdW5ycGMveHBydHJkbWEveHBydF9yZG1hLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4JCS8qIGF0b21pY190LCBldGMgKi8KICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+CQkJLyogc3RydWN0IGtyZWYgKi8KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4JCS8qIHN0cnVjdCB3b3JrX3N0cnVjdCAqLworI2luY2x1ZGUgPGxpbnV4L2xsaXN0Lmg+CiAKICNpbmNsdWRlIDxyZG1hL3JkbWFfY20uaD4JCS8qIFJETUEgY29ubmVjdGlvbiBhcGkgKi8KICNpbmNsdWRlIDxyZG1hL2liX3ZlcmJzLmg+CQkvKiBSRE1BIHZlcmJzIGFwaSAqLwpAQCAtMTE3LDkgKzExOCw2IEBAIHN0cnVjdCBycGNyZG1hX2VwIHsKICNlbmRpZgogCiAvKiBSZWdpc3RlcmVkIGJ1ZmZlciAtLSByZWdpc3RlcmVkIGttYWxsb2MnZCBtZW1vcnkgZm9yIFJETUEgU0VORC9SRUNWCi0gKgotICogVGhlIGJlbG93IHN0cnVjdHVyZSBhcHBlYXJzIGF0IHRoZSBmcm9udCBvZiBhIGxhcmdlIHJlZ2lvbiBvZiBrbWFsbG9jJ2QKLSAqIG1lbW9yeSwgd2hpY2ggYWx3YXlzIHN0YXJ0cyBvbiBhIGdvb2QgYWxpZ25tZW50IGJvdW5kYXJ5LgogICovCiAKIHN0cnVjdCBycGNyZG1hX3JlZ2J1ZiB7CkBAIC0xNTgsMjUgKzE1NiwyMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKnJkbWFiX2RhdGEoY29uc3Qgc3RydWN0IHJwY3JkbWFfcmVnYnVmICpyYikKIAogLyogVG8gZW5zdXJlIGEgdHJhbnNwb3J0IGNhbiBhbHdheXMgbWFrZSBmb3J3YXJkIHByb2dyZXNzLAogICogdGhlIG51bWJlciBvZiBSRE1BIHNlZ21lbnRzIGFsbG93ZWQgaW4gaGVhZGVyIGNodW5rIGxpc3RzCi0gKiBpcyBjYXBwZWQgYXQgOC4gVGhpcyBwcmV2ZW50cyBsZXNzLWNhcGFibGUgZGV2aWNlcyBhbmQKLSAqIG1lbW9yeSByZWdpc3RyYXRpb25zIGZyb20gb3ZlcnJ1bm5pbmcgdGhlIFNlbmQgYnVmZmVyCi0gKiB3aGlsZSBidWlsZGluZyBjaHVuayBsaXN0cy4KKyAqIGlzIGNhcHBlZCBhdCAxNi4gVGhpcyBwcmV2ZW50cyBsZXNzLWNhcGFibGUgZGV2aWNlcyBmcm9tCisgKiBvdmVycnVubmluZyB0aGUgU2VuZCBidWZmZXIgd2hpbGUgYnVpbGRpbmcgY2h1bmsgbGlzdHMuCiAgKgogICogRWxlbWVudHMgb2YgdGhlIFJlYWQgbGlzdCB0YWtlIHVwIG1vcmUgcm9vbSB0aGFuIHRoZQotICogV3JpdGUgbGlzdCBvciBSZXBseSBjaHVuay4gOCByZWFkIHNlZ21lbnRzIG1lYW5zIHRoZSBSZWFkCi0gKiBsaXN0IChvciBXcml0ZSBsaXN0IG9yIFJlcGx5IGNodW5rKSBjYW5ub3QgY29uc3VtZSBtb3JlCi0gKiB0aGFuCisgKiBXcml0ZSBsaXN0IG9yIFJlcGx5IGNodW5rLiAxNiByZWFkIHNlZ21lbnRzIG1lYW5zIHRoZQorICogY2h1bmsgbGlzdHMgY2Fubm90IGNvbnN1bWUgbW9yZSB0aGFuCiAgKgotICogKCg4ICsgMikgKiByZWFkIHNlZ21lbnQgc2l6ZSkgKyAxIFhEUiB3b3Jkcywgb3IgMjQ0IGJ5dGVzLgorICogKCgxNiArIDIpICogcmVhZCBzZWdtZW50IHNpemUpICsgMSBYRFIgd29yZHMsCiAgKgotICogQW5kIHRoZSBmaXhlZCBwYXJ0IG9mIHRoZSBoZWFkZXIgaXMgYW5vdGhlciAyNCBieXRlcy4KLSAqCi0gKiBUaGUgc21hbGxlc3QgaW5saW5lIHRocmVzaG9sZCBpcyAxMDI0IGJ5dGVzLCBlbnN1cmluZyB0aGF0Ci0gKiBhdCBsZWFzdCA3NTAgYnl0ZXMgYXJlIGF2YWlsYWJsZSBmb3IgUlBDIG1lc3NhZ2VzLgorICogb3IgYWJvdXQgNDAwIGJ5dGVzLiBUaGUgZml4ZWQgcGFydCBvZiB0aGUgaGVhZGVyIGlzCisgKiBhbm90aGVyIDI0IGJ5dGVzLiBUaHVzIHdoZW4gdGhlIGlubGluZSB0aHJlc2hvbGQgaXMKKyAqIDEwMjQgYnl0ZXMsIGF0IGxlYXN0IDYwMCBieXRlcyBhcmUgYXZhaWxhYmxlIGZvciBSUEMKKyAqIG1lc3NhZ2UgYm9kaWVzLgogICovCiBlbnVtIHsKLQlSUENSRE1BX01BWF9IRFJfU0VHUyA9IDgsCi0JUlBDUkRNQV9IRFJCVUZfU0laRSA9IDI1NiwKKwlSUENSRE1BX01BWF9IRFJfU0VHUyA9IDE2LAogfTsKIAogLyoKQEAgLTIwNiw3ICsyMDEsNyBAQCBzdHJ1Y3QgcnBjcmRtYV9yZXAgewogCXN0cnVjdCBycGNfcnFzdAkJKnJyX3Jxc3Q7CiAJc3RydWN0IHhkcl9idWYJCXJyX2hkcmJ1ZjsKIAlzdHJ1Y3QgeGRyX3N0cmVhbQlycl9zdHJlYW07Ci0Jc3RydWN0IGxpc3RfaGVhZAlycl9saXN0OworCXN0cnVjdCBsbGlzdF9ub2RlCXJyX25vZGU7CiAJc3RydWN0IGliX3JlY3Zfd3IJcnJfcmVjdl93cjsKIH07CiAKQEAgLTI0MCwyMCArMjM1LDIwIEBAIHN0cnVjdCBycGNyZG1hX3NlbmRjdHggewogICogQW4gZXh0ZXJuYWwgbWVtb3J5IHJlZ2lvbiBpcyBhbnkgYnVmZmVyIG9yIHBhZ2UgdGhhdCBpcyByZWdpc3RlcmVkCiAgKiBvbiB0aGUgZmx5IChpZSwgbm90IHByZS1yZWdpc3RlcmVkKS4KICAqLwotc3RydWN0IHJwY3JkbWFfcmVxOwogc3RydWN0IHJwY3JkbWFfZnJ3ciB7CiAJc3RydWN0IGliX21yCQkJKmZyX21yOwogCXN0cnVjdCBpYl9jcWUJCQlmcl9jcWU7CiAJc3RydWN0IGNvbXBsZXRpb24JCWZyX2xpbnZfZG9uZTsKLQlzdHJ1Y3QgcnBjcmRtYV9yZXEJCSpmcl9yZXE7CiAJdW5pb24gewogCQlzdHJ1Y3QgaWJfcmVnX3dyCWZyX3JlZ3dyOwogCQlzdHJ1Y3QgaWJfc2VuZF93cglmcl9pbnZ3cjsKIAl9OwogfTsKIAorc3RydWN0IHJwY3JkbWFfcmVxOwogc3RydWN0IHJwY3JkbWFfbXIgewogCXN0cnVjdCBsaXN0X2hlYWQJbXJfbGlzdDsKKwlzdHJ1Y3QgcnBjcmRtYV9yZXEJKm1yX3JlcTsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QJKm1yX3NnOwogCWludAkJCW1yX25lbnRzOwogCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uCW1yX2RpcjsKQEAgLTMzMSw3ICszMjYsOCBAQCBzdHJ1Y3QgcnBjcmRtYV9yZXEgewogCXN0cnVjdCBsaXN0X2hlYWQJcmxfYWxsOwogCXN0cnVjdCBrcmVmCQlybF9rcmVmOwogCi0Jc3RydWN0IGxpc3RfaGVhZAlybF9yZWdpc3RlcmVkOwkvKiByZWdpc3RlcmVkIHNlZ21lbnRzICovCisJc3RydWN0IGxpc3RfaGVhZAlybF9mcmVlX21yczsKKwlzdHJ1Y3QgbGlzdF9oZWFkCXJsX3JlZ2lzdGVyZWQ7CiAJc3RydWN0IHJwY3JkbWFfbXJfc2VnCXJsX3NlZ21lbnRzW1JQQ1JETUFfTUFYX1NFR1NdOwogfTsKIApAQCAtMzQ0LDcgKzM0MCw3IEBAIHJwY3JfdG9fcmRtYXIoY29uc3Qgc3RydWN0IHJwY19ycXN0ICpycXN0KQogc3RhdGljIGlubGluZSB2b2lkCiBycGNyZG1hX21yX3B1c2goc3RydWN0IHJwY3JkbWFfbXIgKm1yLCBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQogewotCWxpc3RfYWRkX3RhaWwoJm1yLT5tcl9saXN0LCBsaXN0KTsKKwlsaXN0X2FkZCgmbXItPm1yX2xpc3QsIGxpc3QpOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBycGNyZG1hX21yICoKQEAgLTM1Miw4ICszNDgsOSBAQCBycGNyZG1hX21yX3BvcChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQogewogCXN0cnVjdCBycGNyZG1hX21yICptcjsKIAotCW1yID0gbGlzdF9maXJzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgcnBjcmRtYV9tciwgbXJfbGlzdCk7Ci0JbGlzdF9kZWxfaW5pdCgmbXItPm1yX2xpc3QpOworCW1yID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKGxpc3QsIHN0cnVjdCBycGNyZG1hX21yLCBtcl9saXN0KTsKKwlpZiAobXIpCisJCWxpc3RfZGVsX2luaXQoJm1yLT5tcl9saXN0KTsKIAlyZXR1cm4gbXI7CiB9CiAKQEAgLTM2NCwxOSArMzYxLDE5IEBAIHJwY3JkbWFfbXJfcG9wKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCiAgKiBPbmUgb2YgdGhlc2UgaXMgYXNzb2NpYXRlZCB3aXRoIGEgdHJhbnNwb3J0IGluc3RhbmNlCiAgKi8KIHN0cnVjdCBycGNyZG1hX2J1ZmZlciB7Ci0Jc3BpbmxvY2tfdAkJcmJfbXJsb2NrOwkvKiBwcm90ZWN0IHJiX21ycyBsaXN0ICovCisJc3BpbmxvY2tfdAkJcmJfbG9jazsKKwlzdHJ1Y3QgbGlzdF9oZWFkCXJiX3NlbmRfYnVmczsKIAlzdHJ1Y3QgbGlzdF9oZWFkCXJiX21yczsKLQlzdHJ1Y3QgbGlzdF9oZWFkCXJiX2FsbDsKIAogCXVuc2lnbmVkIGxvbmcJCXJiX3NjX2hlYWQ7CiAJdW5zaWduZWQgbG9uZwkJcmJfc2NfdGFpbDsKIAl1bnNpZ25lZCBsb25nCQlyYl9zY19sYXN0OwogCXN0cnVjdCBycGNyZG1hX3NlbmRjdHgJKipyYl9zY19jdHhzOwogCi0Jc3BpbmxvY2tfdAkJcmJfbG9jazsJLyogcHJvdGVjdCBidWYgbGlzdHMgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkCXJiX3NlbmRfYnVmczsKLQlzdHJ1Y3QgbGlzdF9oZWFkCXJiX3JlY3ZfYnVmczsKIAlzdHJ1Y3QgbGlzdF9oZWFkCXJiX2FsbHJlcXM7CisJc3RydWN0IGxpc3RfaGVhZAlyYl9hbGxfbXJzOworCisJc3RydWN0IGxsaXN0X2hlYWQJcmJfZnJlZV9yZXBzOwogCiAJdTMyCQkJcmJfbWF4X3JlcXVlc3RzOwogCXUzMgkJCXJiX2NyZWRpdHM7CS8qIG1vc3QgcmVjZW50IGNyZWRpdCBncmFudCAqLwpAQCAtMzg0LDcgKzM4MSw3IEBAIHN0cnVjdCBycGNyZG1hX2J1ZmZlciB7CiAJdTMyCQkJcmJfYmNfc3J2X21heF9yZXF1ZXN0czsKIAl1MzIJCQlyYl9iY19tYXhfcmVxdWVzdHM7CiAKLQlzdHJ1Y3QgZGVsYXllZF93b3JrCXJiX3JlZnJlc2hfd29ya2VyOworCXN0cnVjdCB3b3JrX3N0cnVjdAlyYl9yZWZyZXNoX3dvcmtlcjsKIH07CiAKIC8qCkBAIC00OTAsNyArNDg3LDYgQEAgc3RydWN0IHJwY3JkbWFfc2VuZGN0eCAqcnBjcmRtYV9zZW5kY3R4X2dldF9sb2NrZWQoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0KTsKIAogc3RydWN0IHJwY3JkbWFfbXIgKnJwY3JkbWFfbXJfZ2V0KHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCk7CiB2b2lkIHJwY3JkbWFfbXJfcHV0KHN0cnVjdCBycGNyZG1hX21yICptcik7Ci12b2lkIHJwY3JkbWFfbXJfdW5tYXBfYW5kX3B1dChzdHJ1Y3QgcnBjcmRtYV9tciAqbXIpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQKIHJwY3JkbWFfbXJfcmVjeWNsZShzdHJ1Y3QgcnBjcmRtYV9tciAqbXIpCkBAIC01NDYsNiArNTQyLDcgQEAgcnBjcmRtYV9kYXRhX2Rpcihib29sIHdyaXRpbmcpCiAvKiBNZW1vcnkgcmVnaXN0cmF0aW9uIGNhbGxzIHhwcnRyZG1hL2Zyd3Jfb3BzLmMKICAqLwogYm9vbCBmcndyX2lzX3N1cHBvcnRlZChzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UpOwordm9pZCBmcndyX3JlY3ljbGUoc3RydWN0IHJwY3JkbWFfcmVxICpyZXEpOwogdm9pZCBmcndyX3Jlc2V0KHN0cnVjdCBycGNyZG1hX3JlcSAqcmVxKTsKIGludCBmcndyX29wZW4oc3RydWN0IHJwY3JkbWFfaWEgKmlhLCBzdHJ1Y3QgcnBjcmRtYV9lcCAqZXApOwogaW50IGZyd3JfaW5pdF9tcihzdHJ1Y3QgcnBjcmRtYV9pYSAqaWEsIHN0cnVjdCBycGNyZG1hX21yICptcik7CkBAIC01NTQsNyArNTUxLDcgQEAgc2l6ZV90IGZyd3JfbWF4cGFnZXMoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0KTsKIHN0cnVjdCBycGNyZG1hX21yX3NlZyAqZnJ3cl9tYXAoc3RydWN0IHJwY3JkbWFfeHBydCAqcl94cHJ0LAogCQkJCXN0cnVjdCBycGNyZG1hX21yX3NlZyAqc2VnLAogCQkJCWludCBuc2VncywgYm9vbCB3cml0aW5nLCBfX2JlMzIgeGlkLAotCQkJCXN0cnVjdCBycGNyZG1hX21yICoqbXIpOworCQkJCXN0cnVjdCBycGNyZG1hX21yICptcik7CiBpbnQgZnJ3cl9zZW5kKHN0cnVjdCBycGNyZG1hX2lhICppYSwgc3RydWN0IHJwY3JkbWFfcmVxICpyZXEpOwogdm9pZCBmcndyX3JlbWludihzdHJ1Y3QgcnBjcmRtYV9yZXAgKnJlcCwgc3RydWN0IGxpc3RfaGVhZCAqbXJzKTsKIHZvaWQgZnJ3cl91bm1hcF9zeW5jKHN0cnVjdCBycGNyZG1hX3hwcnQgKnJfeHBydCwgc3RydWN0IHJwY3JkbWFfcmVxICpyZXEpOwpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy94cHJ0c29jay5jIGIvbmV0L3N1bnJwYy94cHJ0c29jay5jCmluZGV4IGUyMTc2YzEuLjlhYzg4NzIgMTAwNjQ0Ci0tLSBhL25ldC9zdW5ycGMveHBydHNvY2suYworKysgYi9uZXQvc3VucnBjL3hwcnRzb2NrLmMKQEAgLTU2MiwxMCArNTYyLDE0IEBAIHhzX3JlYWRfc3RyZWFtX2NhbGwoc3RydWN0IHNvY2tfeHBydCAqdHJhbnNwb3J0LCBzdHJ1Y3QgbXNnaGRyICptc2csIGludCBmbGFncykKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiQ2FsbGJhY2sgc2xvdCB0YWJsZSBvdmVyZmxvd2VkXG4iKTsKIAkJcmV0dXJuIC1FU0hVVERPV047CiAJfQorCWlmICh0cmFuc3BvcnQtPnJlY3YuY29waWVkICYmICFyZXEtPnJxX3ByaXZhdGVfYnVmLmxlbikKKwkJcmV0dXJuIC1FU0hVVERPV047CiAKIAlyZXQgPSB4c19yZWFkX3N0cmVhbV9yZXF1ZXN0KHRyYW5zcG9ydCwgbXNnLCBmbGFncywgcmVxKTsKIAlpZiAobXNnLT5tc2dfZmxhZ3MgJiAoTVNHX0VPUnxNU0dfVFJVTkMpKQogCQl4cHJ0X2NvbXBsZXRlX2JjX3JlcXVlc3QocmVxLCB0cmFuc3BvcnQtPnJlY3YuY29waWVkKTsKKwllbHNlCisJCXJlcS0+cnFfcHJpdmF0ZV9idWYubGVuID0gdHJhbnNwb3J0LT5yZWN2LmNvcGllZDsKIAogCXJldHVybiByZXQ7CiB9CkBAIC01ODcsNyArNTkxLDcgQEAgeHNfcmVhZF9zdHJlYW1fcmVwbHkoc3RydWN0IHNvY2tfeHBydCAqdHJhbnNwb3J0LCBzdHJ1Y3QgbXNnaGRyICptc2csIGludCBmbGFncykKIAkvKiBMb29rIHVwIGFuZCBsb2NrIHRoZSByZXF1ZXN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIFhJRCAqLwogCXNwaW5fbG9jaygmeHBydC0+cXVldWVfbG9jayk7CiAJcmVxID0geHBydF9sb29rdXBfcnFzdCh4cHJ0LCB0cmFuc3BvcnQtPnJlY3YueGlkKTsKLQlpZiAoIXJlcSkgeworCWlmICghcmVxIHx8ICh0cmFuc3BvcnQtPnJlY3YuY29waWVkICYmICFyZXEtPnJxX3ByaXZhdGVfYnVmLmxlbikpIHsKIAkJbXNnLT5tc2dfZmxhZ3MgfD0gTVNHX1RSVU5DOwogCQlnb3RvIG91dDsKIAl9CkBAIC01OTksNiArNjAzLDggQEAgeHNfcmVhZF9zdHJlYW1fcmVwbHkoc3RydWN0IHNvY2tfeHBydCAqdHJhbnNwb3J0LCBzdHJ1Y3QgbXNnaGRyICptc2csIGludCBmbGFncykKIAlzcGluX2xvY2soJnhwcnQtPnF1ZXVlX2xvY2spOwogCWlmIChtc2ctPm1zZ19mbGFncyAmIChNU0dfRU9SfE1TR19UUlVOQykpCiAJCXhwcnRfY29tcGxldGVfcnFzdChyZXEtPnJxX3Rhc2ssIHRyYW5zcG9ydC0+cmVjdi5jb3BpZWQpOworCWVsc2UKKwkJcmVxLT5ycV9wcml2YXRlX2J1Zi5sZW4gPSB0cmFuc3BvcnQtPnJlY3YuY29waWVkOwogCXhwcnRfdW5waW5fcnFzdChyZXEpOwogb3V0OgogCXNwaW5fdW5sb2NrKCZ4cHJ0LT5xdWV1ZV9sb2NrKTsKZGlmZiAtLWdpdCBhL25ldC94ZHAveGRwX3VtZW0uYyBiL25ldC94ZHAveGRwX3VtZW0uYwppbmRleCBjZGFlZjU0Li4xNmQ1ZjM1IDEwMDY0NAotLS0gYS9uZXQveGRwL3hkcF91bWVtLmMKKysrIGIvbmV0L3hkcC94ZHBfdW1lbS5jCkBAIC0yMDYsMTQgKzIwNiw3IEBAIHN0YXRpYyBpbnQgeGRwX3VtZW1fbWFwX3BhZ2VzKHN0cnVjdCB4ZHBfdW1lbSAqdW1lbSkKIAogc3RhdGljIHZvaWQgeGRwX3VtZW1fdW5waW5fcGFnZXMoc3RydWN0IHhkcF91bWVtICp1bWVtKQogewotCXVuc2lnbmVkIGludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IHVtZW0tPm5wZ3M7IGkrKykgewotCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHVtZW0tPnBnc1tpXTsKLQotCQlzZXRfcGFnZV9kaXJ0eV9sb2NrKHBhZ2UpOwotCQlwdXRfcGFnZShwYWdlKTsKLQl9CisJcHV0X3VzZXJfcGFnZXNfZGlydHlfbG9jayh1bWVtLT5wZ3MsIHVtZW0tPm5wZ3MsIHRydWUpOwogCiAJa2ZyZWUodW1lbS0+cGdzKTsKIAl1bWVtLT5wZ3MgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvbmV0L3hkcC94c2suYyBiL25ldC94ZHAveHNrLmMKaW5kZXggYzJmMWFmMy4uZmE4ZmJiOGYgMTAwNjQ0Ci0tLSBhL25ldC94ZHAveHNrLmMKKysrIGIvbmV0L3hkcC94c2suYwpAQCAtOTc3LDcgKzk3Nyw3IEBAIHN0YXRpYyBpbnQgeHNrX21tYXAoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJLyogTWF0Y2hlcyB0aGUgc21wX3dtYigpIGluIHhza19pbml0X3F1ZXVlICovCiAJc21wX3JtYigpOwogCXFwZyA9IHZpcnRfdG9faGVhZF9wYWdlKHEtPnJpbmcpOwotCWlmIChzaXplID4gKFBBR0VfU0laRSA8PCBjb21wb3VuZF9vcmRlcihxcGcpKSkKKwlpZiAoc2l6ZSA+IHBhZ2Vfc2l6ZShxcGcpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXBmbiA9IHZpcnRfdG9fcGh5cyhxLT5yaW5nKSA+PiBQQUdFX1NISUZUOwpkaWZmIC0tZ2l0IGEvc2FtcGxlcy9ycG1zZy9ycG1zZ19jbGllbnRfc2FtcGxlLmMgYi9zYW1wbGVzL3JwbXNnL3JwbXNnX2NsaWVudF9zYW1wbGUuYwppbmRleCAyYTA2OTU1Li5hZTUwODE2IDEwMDY0NAotLS0gYS9zYW1wbGVzL3JwbXNnL3JwbXNnX2NsaWVudF9zYW1wbGUuYworKysgYi9zYW1wbGVzL3JwbXNnL3JwbXNnX2NsaWVudF9zYW1wbGUuYwpAQCAtMTQsNyArMTQsOSBAQAogI2luY2x1ZGUgPGxpbnV4L3JwbXNnLmg+CiAKICNkZWZpbmUgTVNHCQkiaGVsbG8gd29ybGQhIgotI2RlZmluZSBNU0dfTElNSVQJMTAwCisKK3N0YXRpYyBpbnQgY291bnQgPSAxMDA7Cittb2R1bGVfcGFyYW0oY291bnQsIGludCwgMDY0NCk7CiAKIHN0cnVjdCBpbnN0YW5jZV9kYXRhIHsKIAlpbnQgcnhfY291bnQ7CkBAIC0yOSwxMSArMzEsMTEgQEAgc3RhdGljIGludCBycG1zZ19zYW1wbGVfY2Ioc3RydWN0IHJwbXNnX2RldmljZSAqcnBkZXYsIHZvaWQgKmRhdGEsIGludCBsZW4sCiAJZGV2X2luZm8oJnJwZGV2LT5kZXYsICJpbmNvbWluZyBtc2cgJWQgKHNyYzogMHgleClcbiIsCiAJCSArK2lkYXRhLT5yeF9jb3VudCwgc3JjKTsKIAotCXByaW50X2hleF9kdW1wKEtFUk5fREVCVUcsIF9fZnVuY19fLCBEVU1QX1BSRUZJWF9OT05FLCAxNiwgMSwKLQkJICAgICAgIGRhdGEsIGxlbiwgIHRydWUpOworCXByaW50X2hleF9kdW1wX2RlYnVnKF9fZnVuY19fLCBEVU1QX1BSRUZJWF9OT05FLCAxNiwgMSwgZGF0YSwgbGVuLAorCQkJICAgICB0cnVlKTsKIAogCS8qIHNhbXBsZXMgc2hvdWxkIG5vdCBsaXZlIGZvcmV2ZXIgKi8KLQlpZiAoaWRhdGEtPnJ4X2NvdW50ID49IE1TR19MSU1JVCkgeworCWlmIChpZGF0YS0+cnhfY291bnQgPj0gY291bnQpIHsKIAkJZGV2X2luZm8oJnJwZGV2LT5kZXYsICJnb29kYnllIVxuIik7CiAJCXJldHVybiAwOwogCX0KZGlmZiAtLWdpdCBhL3NhbXBsZXMvdmZpby1tZGV2L210dHkuYyBiL3NhbXBsZXMvdmZpby1tZGV2L210dHkuYwppbmRleCA5MmU3NzBhLi5jZTg0YTMwIDEwMDY0NAotLS0gYS9zYW1wbGVzL3ZmaW8tbWRldi9tdHR5LmMKKysrIGIvc2FtcGxlcy92ZmlvLW1kZXYvbXR0eS5jCkBAIC0xNTIsMjAgKzE1Miw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHZkX2ZvcHMgPSB7CiAKIC8qIGZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KIAotc3RhdGljIGludCBtdHR5X3RyaWdnZXJfaW50ZXJydXB0KGNvbnN0IGd1aWRfdCAqdXVpZCk7CitzdGF0aWMgaW50IG10dHlfdHJpZ2dlcl9pbnRlcnJ1cHQoc3RydWN0IG1kZXZfc3RhdGUgKm1kZXZfc3RhdGUpOwogCiAvKiBIZWxwZXIgZnVuY3Rpb25zICovCi1zdGF0aWMgc3RydWN0IG1kZXZfc3RhdGUgKmZpbmRfbWRldl9zdGF0ZV9ieV91dWlkKGNvbnN0IGd1aWRfdCAqdXVpZCkKLXsKLQlzdHJ1Y3QgbWRldl9zdGF0ZSAqbWRzOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShtZHMsICZtZGV2X2RldmljZXNfbGlzdCwgbmV4dCkgewotCQlpZiAoZ3VpZF9lcXVhbChtZGV2X3V1aWQobWRzLT5tZGV2KSwgdXVpZCkpCi0JCQlyZXR1cm4gbWRzOwotCX0KLQotCXJldHVybiBOVUxMOwotfQogCiBzdGF0aWMgdm9pZCBkdW1wX2J1ZmZlcih1OCAqYnVmLCB1aW50MzJfdCBjb3VudCkKIHsKQEAgLTMzNyw4ICszMjYsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfYmFyX3dyaXRlKHVuc2lnbmVkIGludCBpbmRleCwgc3RydWN0IG1kZXZfc3RhdGUgKm1kZXZfc3RhdGUsCiAJCQkJcHJfZXJyKCJTZXJpYWwgcG9ydCAlZDogRmlmbyBsZXZlbCB0cmlnZ2VyXG4iLAogCQkJCQlpbmRleCk7CiAjZW5kaWYKLQkJCQltdHR5X3RyaWdnZXJfaW50ZXJydXB0KAotCQkJCQkJbWRldl91dWlkKG1kZXZfc3RhdGUtPm1kZXYpKTsKKwkJCQltdHR5X3RyaWdnZXJfaW50ZXJydXB0KG1kZXZfc3RhdGUpOwogCQkJfQogCQl9IGVsc2UgewogI2lmIGRlZmluZWQoREVCVUdfSU5UUikKQEAgLTM1Miw4ICszNDAsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfYmFyX3dyaXRlKHVuc2lnbmVkIGludCBpbmRleCwgc3RydWN0IG1kZXZfc3RhdGUgKm1kZXZfc3RhdGUsCiAJCQkgKi8KIAkJCWlmIChtZGV2X3N0YXRlLT5zW2luZGV4XS51YXJ0X3JlZ1tVQVJUX0lFUl0gJgogCQkJCQkJCQlVQVJUX0lFUl9STFNJKQotCQkJCW10dHlfdHJpZ2dlcl9pbnRlcnJ1cHQoCi0JCQkJCQltZGV2X3V1aWQobWRldl9zdGF0ZS0+bWRldikpOworCQkJCW10dHlfdHJpZ2dlcl9pbnRlcnJ1cHQobWRldl9zdGF0ZSk7CiAJCX0KIAkJbXV0ZXhfdW5sb2NrKCZtZGV2X3N0YXRlLT5yeHR4X2xvY2spOwogCQlicmVhazsKQEAgLTM3Miw4ICszNTksNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfYmFyX3dyaXRlKHVuc2lnbmVkIGludCBpbmRleCwgc3RydWN0IG1kZXZfc3RhdGUgKm1kZXZfc3RhdGUsCiAJCQkJcHJfZXJyKCJTZXJpYWwgcG9ydCAlZDogSUVSX1RIUkkgd3JpdGVcbiIsCiAJCQkJCWluZGV4KTsKICNlbmRpZgotCQkJCW10dHlfdHJpZ2dlcl9pbnRlcnJ1cHQoCi0JCQkJCQltZGV2X3V1aWQobWRldl9zdGF0ZS0+bWRldikpOworCQkJCW10dHlfdHJpZ2dlcl9pbnRlcnJ1cHQobWRldl9zdGF0ZSk7CiAJCQl9CiAKIAkJCW11dGV4X3VubG9jaygmbWRldl9zdGF0ZS0+cnh0eF9sb2NrKTsKQEAgLTQ0NCw3ICs0MzAsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfYmFyX3dyaXRlKHVuc2lnbmVkIGludCBpbmRleCwgc3RydWN0IG1kZXZfc3RhdGUgKm1kZXZfc3RhdGUsCiAjaWYgZGVmaW5lZChERUJVR19JTlRSKQogCQkJcHJfZXJyKCJTZXJpYWwgcG9ydCAlZDogTUNSX09VVDIgd3JpdGVcbiIsIGluZGV4KTsKICNlbmRpZgotCQkJbXR0eV90cmlnZ2VyX2ludGVycnVwdChtZGV2X3V1aWQobWRldl9zdGF0ZS0+bWRldikpOworCQkJbXR0eV90cmlnZ2VyX2ludGVycnVwdChtZGV2X3N0YXRlKTsKIAkJfQogCiAJCWlmICgobWRldl9zdGF0ZS0+c1tpbmRleF0udWFydF9yZWdbVUFSVF9JRVJdICYgVUFSVF9JRVJfTVNJKSAmJgpAQCAtNDUyLDcgKzQzOCw3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9iYXJfd3JpdGUodW5zaWduZWQgaW50IGluZGV4LCBzdHJ1Y3QgbWRldl9zdGF0ZSAqbWRldl9zdGF0ZSwKICNpZiBkZWZpbmVkKERFQlVHX0lOVFIpCiAJCQlwcl9lcnIoIlNlcmlhbCBwb3J0ICVkOiBNQ1IgUlRTL0RUUiB3cml0ZVxuIiwgaW5kZXgpOwogI2VuZGlmCi0JCQltdHR5X3RyaWdnZXJfaW50ZXJydXB0KG1kZXZfdXVpZChtZGV2X3N0YXRlLT5tZGV2KSk7CisJCQltdHR5X3RyaWdnZXJfaW50ZXJydXB0KG1kZXZfc3RhdGUpOwogCQl9CiAJCWJyZWFrOwogCkBAIC01MDMsOCArNDg5LDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX2Jhcl9yZWFkKHVuc2lnbmVkIGludCBpbmRleCwgc3RydWN0IG1kZXZfc3RhdGUgKm1kZXZfc3RhdGUsCiAjZW5kaWYKIAkJCWlmIChtZGV2X3N0YXRlLT5zW2luZGV4XS51YXJ0X3JlZ1tVQVJUX0lFUl0gJgogCQkJCQkJCSBVQVJUX0lFUl9USFJJKQotCQkJCW10dHlfdHJpZ2dlcl9pbnRlcnJ1cHQoCi0JCQkJCW1kZXZfdXVpZChtZGV2X3N0YXRlLT5tZGV2KSk7CisJCQkJbXR0eV90cmlnZ2VyX2ludGVycnVwdChtZGV2X3N0YXRlKTsKIAkJfQogCQltdXRleF91bmxvY2soJm1kZXZfc3RhdGUtPnJ4dHhfbG9jayk7CiAKQEAgLTEwMjgsMTcgKzEwMTMsOSBAQCBzdGF0aWMgaW50IG10dHlfc2V0X2lycXMoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2LCB1aW50MzJfdCBmbGFncywKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IG10dHlfdHJpZ2dlcl9pbnRlcnJ1cHQoY29uc3QgZ3VpZF90ICp1dWlkKQorc3RhdGljIGludCBtdHR5X3RyaWdnZXJfaW50ZXJydXB0KHN0cnVjdCBtZGV2X3N0YXRlICptZGV2X3N0YXRlKQogewogCWludCByZXQgPSAtMTsKLQlzdHJ1Y3QgbWRldl9zdGF0ZSAqbWRldl9zdGF0ZTsKLQotCW1kZXZfc3RhdGUgPSBmaW5kX21kZXZfc3RhdGVfYnlfdXVpZCh1dWlkKTsKLQotCWlmICghbWRldl9zdGF0ZSkgewotCQlwcl9pbmZvKCIlczogbWRldiBub3QgZm91bmRcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJaWYgKChtZGV2X3N0YXRlLT5pcnFfaW5kZXggPT0gVkZJT19QQ0lfTVNJX0lSUV9JTkRFWCkgJiYKIAkgICAgKCFtZGV2X3N0YXRlLT5tc2lfZXZ0ZmQpKQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9LY29uZmlnLmluY2x1ZGUgYi9zY3JpcHRzL0tjb25maWcuaW5jbHVkZQppbmRleCA0YmJmNGZjLi5kNGFkZmJlIDEwMDY0NAotLS0gYS9zY3JpcHRzL0tjb25maWcuaW5jbHVkZQorKysgYi9zY3JpcHRzL0tjb25maWcuaW5jbHVkZQpAQCAtMzUsNSArMzUsOCBAQAogJChlcnJvci1pZiwkKGZhaWx1cmUsY29tbWFuZCAtdiAkKENDKSksY29tcGlsZXIgJyQoQ0MpJyBub3QgZm91bmQpCiAkKGVycm9yLWlmLCQoZmFpbHVyZSxjb21tYW5kIC12ICQoTEQpKSxsaW5rZXIgJyQoTEQpJyBub3QgZm91bmQpCiAKKyMgRmFpbCBpZiB0aGUgbGlua2VyIGlzIGdvbGQgYXMgaXQncyBub3QgY2FwYWJsZSBvZiBsaW5raW5nIHRoZSBrZXJuZWwgcHJvcGVyCiskKGVycm9yLWlmLCQoc3VjY2VzcywgJChMRCkgLXYgfCBncmVwIC1xIGdvbGQpLCBnb2xkIGxpbmtlciAnJChMRCknIG5vdCBzdXBwb3J0ZWQpCisKICMgZ2NjIHZlcnNpb24gaW5jbHVkaW5nIHBhdGNoIGxldmVsCiBnY2MtdmVyc2lvbiA6PSAkKHNoZWxsLCQoc3JjdHJlZSkvc2NyaXB0cy9nY2MtdmVyc2lvbi5zaCAkKENDKSkKZGlmZiAtLWdpdCBhL3NjcmlwdHMvTWFrZWZpbGUgYi9zY3JpcHRzL01ha2VmaWxlCmluZGV4IDE2YmNiODAuLjNlODZiMzAgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvTWFrZWZpbGUKKysrIGIvc2NyaXB0cy9NYWtlZmlsZQpAQCAtMTcsNyArMTcsNyBAQAogaG9zdHByb2dzLSQoQlVJTERfQ19SRUNPUkRNQ09VTlQpICs9IHJlY29yZG1jb3VudAogaG9zdHByb2dzLSQoQ09ORklHX0JVSUxEVElNRV9FWFRBQkxFX1NPUlQpICs9IHNvcnRleHRhYmxlCiBob3N0cHJvZ3MtJChDT05GSUdfQVNOMSkJICs9IGFzbjFfY29tcGlsZXIKLWhvc3Rwcm9ncy0kKENPTkZJR19NT0RVTEVfU0lHKQkgKz0gc2lnbi1maWxlCitob3N0cHJvZ3MtJChDT05GSUdfTU9EVUxFX1NJR19GT1JNQVQpICs9IHNpZ24tZmlsZQogaG9zdHByb2dzLSQoQ09ORklHX1NZU1RFTV9UUlVTVEVEX0tFWVJJTkcpICs9IGV4dHJhY3QtY2VydAogaG9zdHByb2dzLSQoQ09ORklHX1NZU1RFTV9FWFRSQV9DRVJUSUZJQ0FURSkgKz0gaW5zZXJ0LXN5cy1jZXJ0CiAKQEAgLTM2LDQgKzM2LDQgQEAKIHN1YmRpci0kKENPTkZJR19TRUNVUklUWV9TRUxJTlVYKSArPSBzZWxpbnV4CiAKICMgTGV0IGNsZWFuIGRlc2NlbmQgaW50byBzdWJkaXJzCi1zdWJkaXItCSs9IGJhc2ljIGR0YyBnZGIga2NvbmZpZyBtb2QgcGFja2FnZQorc3ViZGlyLQkrPSBiYXNpYyBkdGMgZ2RiIGtjb25maWcgbW9kCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLmJ1aWxkIGIvc2NyaXB0cy9NYWtlZmlsZS5idWlsZAppbmRleCAyZjY2ZWQzLi5mNzJhYmE2IDEwMDY0NAotLS0gYS9zY3JpcHRzL01ha2VmaWxlLmJ1aWxkCisrKyBiL3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQKQEAgLTUyLDcgKzUyLDcgQEAKICQod2FybmluZyBrYnVpbGQ6IE1ha2VmaWxlLmJ1aWxkIGlzIGluY2x1ZGVkIGltcHJvcGVybHkpCiBlbmRpZgogCi1pZmVxICgkKE1BS0VDTURHT0FMUykkKG5lZWQtbW9kb3JkZXIpLCkKK2lmZXEgKCQobmVlZC1tb2RvcmRlciksKQogaWZuZXEgKCQob2JqLW0pLCkKICQod2FybmluZyAkKHBhdHN1YnN0ICUubywnJS5rbycsJChvYmotbSkpIHdpbGwgbm90IGJlIGJ1aWx0IGV2ZW4gdGhvdWdoIG9iai1tIGlzIHNwZWNpZmllZC4pCiAkKHdhcm5pbmcgWW91IGNhbm5vdCB1c2Ugc3ViZGlyLXkvbSB0byB2aXNpdCBhIG1vZHVsZSBNYWtlZmlsZS4gVXNlIG9iai15L20gaW5zdGVhZC4pCkBAIC03NiwxMSArNzYsNiBAQAogCiBtb2QtdGFyZ2V0cyA6PSAkKHBhdHN1YnN0ICUubywgJS5tb2QsICQob2JqLW0pKQogCi1fX2J1aWxkOiAkKGlmICQoS0JVSUxEX0JVSUxUSU4pLCQoYnVpbHRpbi10YXJnZXQpICQobGliLXRhcmdldCkgJChleHRyYS15KSkgXAotCSAkKGlmICQoS0JVSUxEX01PRFVMRVMpLCQob2JqLW0pICQobW9kLXRhcmdldHMpICQobW9kb3JkZXItdGFyZ2V0KSkgXAotCSAkKHN1YmRpci15bSkgJChhbHdheXMpCi0JQDoKLQogIyBMaW51cycga2VybmVsIHNhbml0eSBjaGVja2luZyB0b29sCiBpZmVxICgkKEtCVUlMRF9DSEVDS1NSQyksMSkKICAgcXVpZXRfY21kX2NoZWNrc3JjICAgICAgID0gQ0hFQ0sgICAkPApAQCAtOTAsMjMgKzg1LDEzIEBACiAgICAgICAgIGNtZF9mb3JjZV9jaGVja3NyYyA9ICQoQ0hFQ0spICQoQ0hFQ0tGTEFHUykgJChjX2ZsYWdzKSAkPAogZW5kaWYKIAotaWZuZXEgKCQoS0JVSUxEX0VOQUJMRV9FWFRSQV9HQ0NfQ0hFQ0tTKSwpCitpZm5lcSAoJChLQlVJTERfRVhUUkFfV0FSTiksKQogICBjbWRfY2hlY2tkb2MgPSAkKHNyY3RyZWUpL3NjcmlwdHMva2VybmVsLWRvYyAtbm9uZSAkPAogZW5kaWYKIAogIyBDb21waWxlIEMgc291cmNlcyAoLmMpCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIERlZmF1bHQgaXMgYnVpbHQtaW4sIHVubGVzcyB3ZSBrbm93IG90aGVyd2lzZQotJChmb3JlYWNoIHgsIGkgbGwgbHN0IG8gcyBzeW10eXBlcywgJChwYXRzdWJzdCAlLm8sJS4kKHgpLCQocmVhbC1vYmotbSkpKTogXAotCXBhcnQtb2YtbW9kdWxlIDo9IHkKLQotbW9ka2Vybl9jZmxhZ3MgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkkKGlmICQocGFydC1vZi1tb2R1bGUpLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkJJChLQlVJTERfQ0ZMQUdTX01PRFVMRSkgJChDRkxBR1NfTU9EVUxFKSwgXAotCQkkKEtCVUlMRF9DRkxBR1NfS0VSTkVMKSAkKENGTEFHU19LRVJORUwpKQotcXVpZXRfbW9kdGFnID0gJChpZiAkKHBhcnQtb2YtbW9kdWxlKSxbTV0sICAgKQotCiBxdWlldF9jbWRfY2Nfc19jID0gQ0MgJChxdWlldF9tb2R0YWcpICAkQAogICAgICAgY21kX2NjX3NfYyA9ICQoQ0MpICQoZmlsdGVyLW91dCAkKERFQlVHX0NGTEFHUyksICQoY19mbGFncykpICQoRElTQUJMRV9MVE8pIC1mdmVyYm9zZS1hc20gLVMgLW8gJEAgJDwKIApAQCAtMzEwLDExICsyOTUsNiBAQAogIyBDb21waWxlIGFzc2VtYmxlciBzb3VyY2VzICguUykKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLW1vZGtlcm5fYWZsYWdzIDo9ICQoS0JVSUxEX0FGTEFHU19LRVJORUwpICQoQUZMQUdTX0tFUk5FTCkKLQotJChyZWFsLW9iai1tKSAgICAgIDogbW9ka2Vybl9hZmxhZ3MgOj0gJChLQlVJTERfQUZMQUdTX01PRFVMRSkgJChBRkxBR1NfTU9EVUxFKQotJChyZWFsLW9iai1tOi5vPS5zKTogbW9ka2Vybl9hZmxhZ3MgOj0gJChLQlVJTERfQUZMQUdTX01PRFVMRSkgJChBRkxBR1NfTU9EVUxFKQotCiAjIC5TIGZpbGUgZXhwb3J0cyBtdXN0IGhhdmUgdGhlaXIgQyBwcm90b3R5cGVzIGRlZmluZWQgaW4gYXNtL2FzbS1wcm90b3R5cGVzLmgKICMgb3IgYSBmaWxlIHRoYXQgaXQgaW5jbHVkZXMsIGluIG9yZGVyIHRvIGdldCB2ZXJzaW9uZWQgc3ltYm9scy4gV2UgYnVpbGQgYQogIyBkdW1teSBDIGZpbGUgdGhhdCBpbmNsdWRlcyBhc20tcHJvdG90eXBlcyBhbmQgdGhlIEVYUE9SVF9TWU1CT0wgbGluZXMgZnJvbQpAQCAtMzU2LDExICszMzYsNyBAQAogcXVpZXRfY21kX2FzX29fUyA9IEFTICQocXVpZXRfbW9kdGFnKSAgJEAKICAgICAgIGNtZF9hc19vX1MgPSAkKENDKSAkKGFfZmxhZ3MpIC1jIC1vICRAICQ8CiAKLWlmZGVmIENPTkZJR19NT0RWRVJTSU9OUwotCi1BU01fUFJPVE9UWVBFUyA6PSAkKHdpbGRjYXJkICQoc3JjdHJlZSkvYXJjaC8kKFNSQ0FSQ0gpL2luY2x1ZGUvYXNtL2FzbS1wcm90b3R5cGVzLmgpCi0KLWlmbmVxICgkKEFTTV9QUk9UT1RZUEVTKSwpCitpZmRlZiBDT05GSUdfQVNNX01PRFZFUlNJT05TCiAKICMgdmVyc2lvbmluZyBtYXRjaGVzIHRoZSBDIHByb2Nlc3MgZGVzY3JpYmVkIGFib3ZlLCB3aXRoIGRpZmZlcmVuY2UgdGhhdAogIyB3ZSBwYXJzZSBhc20tcHJvdG90eXBlcy5oIEMgaGVhZGVyIHRvIGdldCBmdW5jdGlvbiBkZWZpbml0aW9ucy4KQEAgLTM3Niw3ICszNTIsNiBAQAogCQlybSAtZiAkKEBEKS8udG1wXyQoQEY6Lm89LnZlcik7CQkJCQlcCiAJZmkKIGVuZGlmCi1lbmRpZgogCiAkKG9iaikvJS5vOiAkKHNyYykvJS5TICQob2JqdG9vbF9kZXApIEZPUkNFCiAJJChjYWxsIGlmX2NoYW5nZWRfcnVsZSxhc19vX1MpCkBAIC0zOTUsOSArMzcwLDkgQEAKIAogIyBBU04uMSBncmFtbWFyCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotcXVpZXRfY21kX2FzbjFfY29tcGlsZXIgPSBBU04uMSAgICRACitxdWlldF9jbWRfYXNuMV9jb21waWxlciA9IEFTTi4xICAgJChiYXNlbmFtZSAkQCkuW2NoXQogICAgICAgY21kX2FzbjFfY29tcGlsZXIgPSAkKG9ianRyZWUpL3NjcmlwdHMvYXNuMV9jb21waWxlciAkPCBcCi0JCQkJJChzdWJzdCAuaCwuYywkQCkgJChzdWJzdCAuYywuaCwkQCkKKwkJCQkkKGJhc2VuYW1lICRAKS5jICQoYmFzZW5hbWUgJEApLmgKIAogJChvYmopLyUuYXNuMS5jICQob2JqKS8lLmFzbjEuaDogJChzcmMpLyUuYXNuMSAkKG9ianRyZWUpL3NjcmlwdHMvYXNuMV9jb21waWxlcgogCSQoY2FsbCBjbWQsYXNuMV9jb21waWxlcikKQEAgLTQ4OSwxMiArNDY0LDUwIEBACiAJICAgJChjYWxsIGludGVybWVkaWF0ZV90YXJnZXRzLCAubGV4Lm8sIC5sZXguYykgXAogCSAgICQoY2FsbCBpbnRlcm1lZGlhdGVfdGFyZ2V0cywgLnRhYi5vLCAudGFiLmMgLnRhYi5oKQogCisjIEJ1aWxkCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpZmRlZiBzaW5nbGUtYnVpbGQKKworY3VyZGlyLXNpbmdsZSA6PSAkKHNvcnQgJChmb3JlYWNoIHgsICQoS0JVSUxEX1NJTkdMRV9UQVJHRVRTKSwgXAorCQkJJChpZiAkKGZpbHRlciAkKHgpICQoYmFzZW5hbWUgJCh4KSkubywgJCh0YXJnZXRzKSksICQoeCkpKSkKKworIyBIYW5kbGUgc2luZ2xlIHRhcmdldHMgd2l0aG91dCBhbnkgcnVsZTogc2hvdyAiTm90aGluZyB0byBiZSBkb25lIGZvciAuLi4iIG9yCisjICJObyBydWxlIHRvIG1ha2UgdGFyZ2V0IC4uLiIgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHRhcmdldCBleGlzdHMuCit1bmtub3duLXNpbmdsZSA6PSAkKGZpbHRlci1vdXQgJChhZGRzdWZmaXggLyUsICQoc3ViZGlyLXltKSksIFwKKwkJCSQoZmlsdGVyICQob2JqKS8lLCBcCisJCQkJJChmaWx0ZXItb3V0ICQoY3VyZGlyLXNpbmdsZSksIFwKKwkJCQkJJChLQlVJTERfU0lOR0xFX1RBUkdFVFMpKSkpCisKK19fYnVpbGQ6ICQoY3VyZGlyLXNpbmdsZSkgJChzdWJkaXIteW0pCitpZm5lcSAoJCh1bmtub3duLXNpbmdsZSksKQorCSQoUSkkKE1BS0UpIC1mIC9kZXYvbnVsbCAkKHVua25vd24tc2luZ2xlKQorZW5kaWYKKwlAOgorCitpZmVxICgkKGN1cmRpci1zaW5nbGUpLCkKKyMgTm90aGluZyB0byBkbyBpbiB0aGlzIGRpcmVjdG9yeS4gRG8gbm90IGluY2x1ZGUgYW55IC4qLmNtZCBmaWxlIGZvciBzcGVlZC11cAordGFyZ2V0cyA6PQorZWxzZQordGFyZ2V0cyArPSAkKGN1cmRpci1zaW5nbGUpCitlbmRpZgorCitlbHNlCisKK19fYnVpbGQ6ICQoaWYgJChLQlVJTERfQlVJTFRJTiksJChidWlsdGluLXRhcmdldCkgJChsaWItdGFyZ2V0KSAkKGV4dHJhLXkpKSBcCisJICQoaWYgJChLQlVJTERfTU9EVUxFUyksJChvYmotbSkgJChtb2QtdGFyZ2V0cykgJChtb2RvcmRlci10YXJnZXQpKSBcCisJICQoc3ViZGlyLXltKSAkKGFsd2F5cykKKwlAOgorCitlbmRpZgorCiAjIERlc2NlbmRpbmcKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFBIT05ZICs9ICQoc3ViZGlyLXltKQogJChzdWJkaXIteW0pOgogCSQoUSkkKE1BS0UpICQoYnVpbGQpPSRAIFwKKwkkKGlmICQoZmlsdGVyICRALywgJChLQlVJTERfU0lOR0xFX1RBUkdFVFMpKSxzaW5nbGUtYnVpbGQ9KSBcCiAJbmVlZC1idWlsdGluPSQoaWYgJChmaWx0ZXIgJEAvYnVpbHQtaW4uYSwgJChzdWJkaXItb2JqLXkpKSwxKSBcCiAJbmVlZC1tb2RvcmRlcj0kKGlmICQobmVlZC1tb2RvcmRlciksJChpZiAkKGZpbHRlciAkQC9tb2R1bGVzLm9yZGVyLCAkKG1vZG9yZGVyKSksMSkpCiAKZGlmZiAtLWdpdCBhL3NjcmlwdHMvTWFrZWZpbGUuY2xlYW4gYi9zY3JpcHRzL01ha2VmaWxlLmNsZWFuCmluZGV4IDBiODBlMzIwLi5lMzY3ZWI5IDEwMDY0NAotLS0gYS9zY3JpcHRzL01ha2VmaWxlLmNsZWFuCisrKyBiL3NjcmlwdHMvTWFrZWZpbGUuY2xlYW4KQEAgLTE3LDE3ICsxNyw4IEBACiAjIEZpZ3VyZSBvdXQgd2hhdCB3ZSBuZWVkIHRvIGJ1aWxkIGZyb20gdGhlIHZhcmlvdXMgdmFyaWFibGVzCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLV9fc3ViZGlyLXkJOj0gJChwYXRzdWJzdCAlLywlLCQoZmlsdGVyICUvLCAkKG9iai15KSkpCi1zdWJkaXIteQkrPSAkKF9fc3ViZGlyLXkpCi1fX3N1YmRpci1tCTo9ICQocGF0c3Vic3QgJS8sJSwkKGZpbHRlciAlLywgJChvYmotbSkpKQotc3ViZGlyLW0JKz0gJChfX3N1YmRpci1tKQotX19zdWJkaXItCTo9ICQocGF0c3Vic3QgJS8sJSwkKGZpbHRlciAlLywgJChvYmotKSkpCi1zdWJkaXItCQkrPSAkKF9fc3ViZGlyLSkKLQotIyBTdWJkaXJlY3RvcmllcyB3ZSBuZWVkIHRvIGRlc2NlbmQgaW50bwotCi1zdWJkaXIteW0JOj0gJChzb3J0ICQoc3ViZGlyLXkpICQoc3ViZGlyLW0pKQotc3ViZGlyLXltbiAgICAgIDo9ICQoc29ydCAkKHN1YmRpci15bSkgJChzdWJkaXItKSkKK3N1YmRpci15bW4gOj0gJChzb3J0ICQoc3ViZGlyLXkpICQoc3ViZGlyLW0pICQoc3ViZGlyLSkgXAorCQkkKHBhdHN1YnN0ICUvLCUsICQoZmlsdGVyICUvLCAkKG9iai15KSAkKG9iai1tKSAkKG9iai0pKSkpCiAKICMgQWRkIHN1YmRpciBwYXRoCiAKQEAgLTUyLDI2ICs0MywxNCBAQAogCQkgICAkKGFkZHByZWZpeCAkKG9iaikvLCAkKGZpbHRlci1vdXQgJChvYmp0cmVlKS8lLCAkKF9fY2xlYW4tZmlsZXMpKSkgXAogCQkgICAkKGZpbHRlciAkKG9ianRyZWUpLyUsICQoX19jbGVhbi1maWxlcykpKQogCi0jIHNhbWUgYXMgY2xlYW4tZmlsZXMKLQotX19jbGVhbi1kaXJzICAgIDo9ICQod2lsZGNhcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkJICAgJChhZGRwcmVmaXggJChvYmopLywgJChmaWx0ZXItb3V0ICQob2JqdHJlZSkvJSwgJChjbGVhbi1kaXJzKSkpICAgIFwKLQkJICAgJChmaWx0ZXIgJChvYmp0cmVlKS8lLCAkKGNsZWFuLWRpcnMpKSkKLQogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi1xdWlldF9jbWRfY2xlYW4gICAgPSBDTEVBTiAgICQob2JqKQotICAgICAgY21kX2NsZWFuICAgID0gcm0gLWYgJChfX2NsZWFuLWZpbGVzKQotcXVpZXRfY21kX2NsZWFuZGlyID0gQ0xFQU4gICAkKF9fY2xlYW4tZGlycykKLSAgICAgIGNtZF9jbGVhbmRpciA9IHJtIC1yZiAkKF9fY2xlYW4tZGlycykKLQorcXVpZXRfY21kX2NsZWFuID0gQ0xFQU4gICAkKG9iaikKKyAgICAgIGNtZF9jbGVhbiA9IHJtIC1yZiAkKF9fY2xlYW4tZmlsZXMpCiAKIF9fY2xlYW46ICQoc3ViZGlyLXltbikKIGlmbmVxICgkKHN0cmlwICQoX19jbGVhbi1maWxlcykpLCkKLQkrJChjYWxsIGNtZCxjbGVhbikKLWVuZGlmCi1pZm5lcSAoJChzdHJpcCAkKF9fY2xlYW4tZGlycykpLCkKLQkrJChjYWxsIGNtZCxjbGVhbmRpcikKKwkkKGNhbGwgY21kLGNsZWFuKQogZW5kaWYKIAlAOgogCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLmV4dHJhd2FybiBiL3NjcmlwdHMvTWFrZWZpbGUuZXh0cmF3YXJuCmluZGV4IGE3NGNlMmUuLmVjZGRmODMgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvTWFrZWZpbGUuZXh0cmF3YXJuCisrKyBiL3NjcmlwdHMvTWFrZWZpbGUuZXh0cmF3YXJuCkBAIC0xLDc0ICsxLDkxIEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0jCiAjIG1ha2UgVz0uLi4gc2V0dGluZ3MKICMKLSMgVz0xIC0gd2FybmluZ3MgdGhhdCBtYXkgYmUgcmVsZXZhbnQgYW5kIGRvZXMgbm90IG9jY3VyIHRvbyBvZnRlbgotIyBXPTIgLSB3YXJuaW5ncyB0aGF0IG9jY3VyIHF1aXRlIG9mdGVuIGJ1dCBtYXkgc3RpbGwgYmUgcmVsZXZhbnQKLSMgVz0zIC0gdGhlIG1vcmUgb2JzY3VyZSB3YXJuaW5ncywgY2FuIG1vc3QgbGlrZWx5IGJlIGlnbm9yZWQKLSMKLSMgJChjYWxsIGNjLW9wdGlvbiwgLVcuLi4pIGhhbmRsZXMgZ2NjIC1XLi4gb3B0aW9ucyB3aGljaAotIyBhcmUgbm90IHN1cHBvcnRlZCBieSBhbGwgdmVyc2lvbnMgb2YgdGhlIGNvbXBpbGVyCisjIFRoZXJlIGFyZSB0aHJlZSB3YXJuaW5nIGdyb3VwcyBlbmFibGVkIGJ5IFc9MSwgVz0yLCBXPTMuCisjIFRoZXkgYXJlIGluZGVwZW5kZW50LCBhbmQgY2FuIGJlIGNvbWJpbmVkIGxpa2UgVz0xMiBvciBXPTEyMy4KICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2MtZGlzYWJsZS13YXJuaW5nLCBwYWNrZWQtbm90LWFsaWduZWQpCiAKKyMgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorS0JVSUxEX0VYVFJBX1dBUk4gPz0gJChLQlVJTERfRU5BQkxFX0VYVFJBX0dDQ19DSEVDS1MpCisKIGlmZXEgKCIkKG9yaWdpbiBXKSIsICJjb21tYW5kIGxpbmUiKQotICBleHBvcnQgS0JVSUxEX0VOQUJMRV9FWFRSQV9HQ0NfQ0hFQ0tTIDo9ICQoVykKKyAgS0JVSUxEX0VYVFJBX1dBUk4gOj0gJChXKQogZW5kaWYKIAotaWZkZWYgS0JVSUxEX0VOQUJMRV9FWFRSQV9HQ0NfQ0hFQ0tTCi13YXJuaW5nLSAgOj0gJChlbXB0eSkKK2V4cG9ydCBLQlVJTERfRVhUUkFfV0FSTgogCi13YXJuaW5nLTEgOj0gLVdleHRyYSAtV3VudXNlZCAtV25vLXVudXNlZC1wYXJhbWV0ZXIKLXdhcm5pbmctMSArPSAtV21pc3NpbmctZGVjbGFyYXRpb25zCi13YXJuaW5nLTEgKz0gLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUKLXdhcm5pbmctMSArPSAtV21pc3NpbmctcHJvdG90eXBlcwotd2FybmluZy0xICs9IC1Xb2xkLXN0eWxlLWRlZmluaXRpb24KLXdhcm5pbmctMSArPSAtV21pc3NpbmctaW5jbHVkZS1kaXJzCi13YXJuaW5nLTEgKz0gJChjYWxsIGNjLW9wdGlvbiwgLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZSkKLXdhcm5pbmctMSArPSAkKGNhbGwgY2Mtb3B0aW9uLCAtV3VudXNlZC1jb25zdC12YXJpYWJsZSkKLXdhcm5pbmctMSArPSAkKGNhbGwgY2Mtb3B0aW9uLCAtV3BhY2tlZC1ub3QtYWxpZ25lZCkKLXdhcm5pbmctMSArPSAkKGNhbGwgY2Mtb3B0aW9uLCAtV3N0cmluZ29wLXRydW5jYXRpb24pCisjCisjIFc9MSAtIHdhcm5pbmdzIHdoaWNoIG1heSBiZSByZWxldmFudCBhbmQgZG8gbm90IG9jY3VyIHRvbyBvZnRlbgorIworaWZuZXEgKCQoZmluZHN0cmluZyAxLCAkKEtCVUlMRF9FWFRSQV9XQVJOKSksKQorCitLQlVJTERfQ0ZMQUdTICs9IC1XZXh0cmEgLVd1bnVzZWQgLVduby11bnVzZWQtcGFyYW1ldGVyCitLQlVJTERfQ0ZMQUdTICs9IC1XbWlzc2luZy1kZWNsYXJhdGlvbnMKK0tCVUlMRF9DRkxBR1MgKz0gLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUKK0tCVUlMRF9DRkxBR1MgKz0gLVdtaXNzaW5nLXByb3RvdHlwZXMKK0tCVUlMRF9DRkxBR1MgKz0gLVdvbGQtc3R5bGUtZGVmaW5pdGlvbgorS0JVSUxEX0NGTEFHUyArPSAtV21pc3NpbmctaW5jbHVkZS1kaXJzCitLQlVJTERfQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sIC1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUpCitLQlVJTERfQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sIC1XdW51c2VkLWNvbnN0LXZhcmlhYmxlKQorS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLCAtV3BhY2tlZC1ub3QtYWxpZ25lZCkKK0tCVUlMRF9DRkxBR1MgKz0gJChjYWxsIGNjLW9wdGlvbiwgLVdzdHJpbmdvcC10cnVuY2F0aW9uKQogIyBUaGUgZm9sbG93aW5nIHR1cm4gb2ZmIHRoZSB3YXJuaW5ncyBlbmFibGVkIGJ5IC1XZXh0cmEKLXdhcm5pbmctMSArPSAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzCi13YXJuaW5nLTEgKz0gLVduby1zaWduLWNvbXBhcmUKK0tCVUlMRF9DRkxBR1MgKz0gLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycworS0JVSUxEX0NGTEFHUyArPSAtV25vLXNpZ24tY29tcGFyZQogCi13YXJuaW5nLTIgKz0gLVdjYXN0LWFsaWduCi13YXJuaW5nLTIgKz0gLVdkaXNhYmxlZC1vcHRpbWl6YXRpb24KLXdhcm5pbmctMiArPSAtV25lc3RlZC1leHRlcm5zCi13YXJuaW5nLTIgKz0gLVdzaGFkb3cKLXdhcm5pbmctMiArPSAkKGNhbGwgY2Mtb3B0aW9uLCAtV2xvZ2ljYWwtb3ApCi13YXJuaW5nLTIgKz0gLVdtaXNzaW5nLWZpZWxkLWluaXRpYWxpemVycwotd2FybmluZy0yICs9IC1Xc2lnbi1jb21wYXJlCi13YXJuaW5nLTIgKz0gJChjYWxsIGNjLW9wdGlvbiwgLVdtYXliZS11bmluaXRpYWxpemVkKQotd2FybmluZy0yICs9ICQoY2FsbCBjYy1vcHRpb24sIC1XdW51c2VkLW1hY3JvcykKK0tCVUlMRF9DUFBGTEFHUyArPSAtREtCVUlMRF9FWFRSQV9XQVJOMQogCi13YXJuaW5nLTMgOj0gLVdiYWQtZnVuY3Rpb24tY2FzdAotd2FybmluZy0zICs9IC1XY2FzdC1xdWFsCi13YXJuaW5nLTMgKz0gLVdjb252ZXJzaW9uCi13YXJuaW5nLTMgKz0gLVdwYWNrZWQKLXdhcm5pbmctMyArPSAtV3BhZGRlZAotd2FybmluZy0zICs9IC1XcG9pbnRlci1hcml0aAotd2FybmluZy0zICs9IC1XcmVkdW5kYW50LWRlY2xzCi13YXJuaW5nLTMgKz0gLVdzd2l0Y2gtZGVmYXVsdAotd2FybmluZy0zICs9ICQoY2FsbCBjYy1vcHRpb24sIC1XcGFja2VkLWJpdGZpZWxkLWNvbXBhdCkKLQotd2FybmluZyA6PSAkKHdhcm5pbmctJChmaW5kc3RyaW5nIDEsICQoS0JVSUxEX0VOQUJMRV9FWFRSQV9HQ0NfQ0hFQ0tTKSkpCi13YXJuaW5nICs9ICQod2FybmluZy0kKGZpbmRzdHJpbmcgMiwgJChLQlVJTERfRU5BQkxFX0VYVFJBX0dDQ19DSEVDS1MpKSkKLXdhcm5pbmcgKz0gJCh3YXJuaW5nLSQoZmluZHN0cmluZyAzLCAkKEtCVUlMRF9FTkFCTEVfRVhUUkFfR0NDX0NIRUNLUykpKQotCi1pZmVxICgiJChzdHJpcCAkKHdhcm5pbmcpKSIsIiIpCi0gICAgICAgICQoZXJyb3IgVz0kKEtCVUlMRF9FTkFCTEVfRVhUUkFfR0NDX0NIRUNLUykgaXMgdW5rbm93bikKLWVuZGlmCi0KLUtCVUlMRF9DRkxBR1MgKz0gJCh3YXJuaW5nKQogZWxzZQogCisjIFNvbWUgZGlhZ25vc3RpY3MgZW5hYmxlZCBieSBkZWZhdWx0IGFyZSBub2lzeS4KKyMgU3VwcHJlc3MgdGhlbSBieSB1c2luZyAtV25vLi4uIGV4Y2VwdCBmb3IgVz0xLgorCiBpZmRlZiBDT05GSUdfQ0NfSVNfQ0xBTkcKIEtCVUlMRF9DRkxBR1MgKz0gLVduby1pbml0aWFsaXplci1vdmVycmlkZXMKIEtCVUlMRF9DRkxBR1MgKz0gLVduby1mb3JtYXQKIEtCVUlMRF9DRkxBR1MgKz0gLVduby1zaWduLWNvbXBhcmUKIEtCVUlMRF9DRkxBR1MgKz0gLVduby1mb3JtYXQtemVyby1sZW5ndGgKIGVuZGlmCisKK2VuZGlmCisKKyMKKyMgVz0yIC0gd2FybmluZ3Mgd2hpY2ggb2NjdXIgcXVpdGUgb2Z0ZW4gYnV0IG1heSBzdGlsbCBiZSByZWxldmFudAorIworaWZuZXEgKCQoZmluZHN0cmluZyAyLCAkKEtCVUlMRF9FWFRSQV9XQVJOKSksKQorCitLQlVJTERfQ0ZMQUdTICs9IC1XY2FzdC1hbGlnbgorS0JVSUxEX0NGTEFHUyArPSAtV2Rpc2FibGVkLW9wdGltaXphdGlvbgorS0JVSUxEX0NGTEFHUyArPSAtV25lc3RlZC1leHRlcm5zCitLQlVJTERfQ0ZMQUdTICs9IC1Xc2hhZG93CitLQlVJTERfQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sIC1XbG9naWNhbC1vcCkKK0tCVUlMRF9DRkxBR1MgKz0gLVdtaXNzaW5nLWZpZWxkLWluaXRpYWxpemVycworS0JVSUxEX0NGTEFHUyArPSAtV3NpZ24tY29tcGFyZQorS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLCAtV21heWJlLXVuaW5pdGlhbGl6ZWQpCitLQlVJTERfQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sIC1XdW51c2VkLW1hY3JvcykKKworS0JVSUxEX0NQUEZMQUdTICs9IC1ES0JVSUxEX0VYVFJBX1dBUk4yCisKK2VuZGlmCisKKyMKKyMgVz0zIC0gbW9yZSBvYnNjdXJlIHdhcm5pbmdzLCBjYW4gbW9zdCBsaWtlbHkgYmUgaWdub3JlZAorIworaWZuZXEgKCQoZmluZHN0cmluZyAzLCAkKEtCVUlMRF9FWFRSQV9XQVJOKSksKQorCitLQlVJTERfQ0ZMQUdTICs9IC1XYmFkLWZ1bmN0aW9uLWNhc3QKK0tCVUlMRF9DRkxBR1MgKz0gLVdjYXN0LXF1YWwKK0tCVUlMRF9DRkxBR1MgKz0gLVdjb252ZXJzaW9uCitLQlVJTERfQ0ZMQUdTICs9IC1XcGFja2VkCitLQlVJTERfQ0ZMQUdTICs9IC1XcGFkZGVkCitLQlVJTERfQ0ZMQUdTICs9IC1XcG9pbnRlci1hcml0aAorS0JVSUxEX0NGTEFHUyArPSAtV3JlZHVuZGFudC1kZWNscworS0JVSUxEX0NGTEFHUyArPSAtV3N3aXRjaC1kZWZhdWx0CitLQlVJTERfQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sIC1XcGFja2VkLWJpdGZpZWxkLWNvbXBhdCkKKworS0JVSUxEX0NQUEZMQUdTICs9IC1ES0JVSUxEX0VYVFJBX1dBUk4zCisKIGVuZGlmCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLmhvc3QgYi9zY3JpcHRzL01ha2VmaWxlLmhvc3QKaW5kZXggMjIwOGViYi4uNGM1MWM5NSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9NYWtlZmlsZS5ob3N0CisrKyBiL3NjcmlwdHMvTWFrZWZpbGUuaG9zdApAQCAtMSw0ICsxLDIxIEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisKKyMgTEVYCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorcXVpZXRfY21kX2ZsZXggPSBMRVggICAgICRACisgICAgICBjbWRfZmxleCA9ICQoTEVYKSAtbyRAIC1MICQ8CisKKyQob2JqKS8lLmxleC5jOiAkKHNyYykvJS5sIEZPUkNFCisJJChjYWxsIGlmX2NoYW5nZWQsZmxleCkKKworIyBZQUNDCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorcXVpZXRfY21kX2Jpc29uID0gWUFDQyAgICAkKGJhc2VuYW1lICRAKS5bY2hdCisgICAgICBjbWRfYmlzb24gPSAkKFlBQ0MpIC1vICQoYmFzZW5hbWUgJEApLmMgLS1kZWZpbmVzPSQoYmFzZW5hbWUgJEApLmggLXQgLWwgJDwKKworJChvYmopLyUudGFiLmMgJChvYmopLyUudGFiLmg6ICQoc3JjKS8lLnkgRk9SQ0UKKwkkKGNhbGwgaWZfY2hhbmdlZCxiaXNvbikKKwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIyBCdWlsZGluZyBiaW5hcmllcyBvbiB0aGUgaG9zdCBzeXN0ZW0KICMgQmluYXJpZXMgYXJlIHVzZWQgZHVyaW5nIHRoZSBjb21waWxhdGlvbiBvZiB0aGUga2VybmVsLCBmb3IgZXhhbXBsZQpAQCAtNjMsOSArODAsOSBAQAogIyBIYW5kbGUgb3B0aW9ucyB0byBnY2MuIFN1cHBvcnQgYnVpbGRpbmcgd2l0aCBzZXBhcmF0ZSBvdXRwdXQgZGlyZWN0b3J5CiAKIF9ob3N0Y19mbGFncyAgID0gJChLQlVJTERfSE9TVENGTEFHUykgICAkKEhPU1RfRVhUUkFDRkxBR1MpICAgXAotICAgICAgICAgICAgICAgICAkKEhPU1RDRkxBR1NfJChiYXNldGFyZ2V0KS5vKQorICAgICAgICAgICAgICAgICAkKEhPU1RDRkxBR1NfJCh0YXJnZXQtc3RlbSkubykKIF9ob3N0Y3h4X2ZsYWdzID0gJChLQlVJTERfSE9TVENYWEZMQUdTKSAkKEhPU1RfRVhUUkFDWFhGTEFHUykgXAotICAgICAgICAgICAgICAgICAkKEhPU1RDWFhGTEFHU18kKGJhc2V0YXJnZXQpLm8pCisgICAgICAgICAgICAgICAgICQoSE9TVENYWEZMQUdTXyQodGFyZ2V0LXN0ZW0pLm8pCiAKICMgJChvYmp0cmVlKS8kKG9iaikgZm9yIGluY2x1ZGluZyBnZW5lcmF0ZWQgaGVhZGVycyBmcm9tIGNoZWNraW4gc291cmNlIGZpbGVzCiBpZmVxICgkKEtCVUlMRF9FWFRNT0QpLCkKQEAgLTg1LDcgKzEwMiw3IEBACiAjIGhvc3QtY3NpbmdsZSAtPiBFeGVjdXRhYmxlCiBxdWlldF9jbWRfaG9zdC1jc2luZ2xlIAk9IEhPU1RDQyAgJEAKICAgICAgIGNtZF9ob3N0LWNzaW5nbGUJPSAkKEhPU1RDQykgJChob3N0Y19mbGFncykgJChLQlVJTERfSE9TVExERkxBR1MpIC1vICRAICQ8IFwKLQkJJChLQlVJTERfSE9TVExETElCUykgJChIT1NUTERMSUJTXyQoQEYpKQorCQkkKEtCVUlMRF9IT1NUTERMSUJTKSAkKEhPU1RMRExJQlNfJCh0YXJnZXQtc3RlbSkpCiAkKGhvc3QtY3NpbmdsZSk6ICQob2JqKS8lOiAkKHNyYykvJS5jIEZPUkNFCiAJJChjYWxsIGlmX2NoYW5nZWRfZGVwLGhvc3QtY3NpbmdsZSkKIApAQCAtOTMsOCArMTEwLDggQEAKICMgaG9zdC1jbXVsdGkgLT4gZXhlY3V0YWJsZQogcXVpZXRfY21kX2hvc3QtY211bHRpCT0gSE9TVExEICAkQAogICAgICAgY21kX2hvc3QtY211bHRpCT0gJChIT1NUQ0MpICQoS0JVSUxEX0hPU1RMREZMQUdTKSAtbyAkQCBcCi0JCQkgICQoYWRkcHJlZml4ICQob2JqKS8sJCgkKEBGKS1vYmpzKSkgXAotCQkJICAkKEtCVUlMRF9IT1NUTERMSUJTKSAkKEhPU1RMRExJQlNfJChARikpCisJCQkgICQoYWRkcHJlZml4ICQob2JqKS8sICQoJCh0YXJnZXQtc3RlbSktb2JqcykpIFwKKwkJCSAgJChLQlVJTERfSE9TVExETElCUykgJChIT1NUTERMSUJTXyQodGFyZ2V0LXN0ZW0pKQogJChob3N0LWNtdWx0aSk6IEZPUkNFCiAJJChjYWxsIGlmX2NoYW5nZWQsaG9zdC1jbXVsdGkpCiAkKGNhbGwgbXVsdGlfZGVwZW5kLCAkKGhvc3QtY211bHRpKSwgLCAtb2JqcykKQEAgLTExMSw4ICsxMjgsOCBAQAogcXVpZXRfY21kX2hvc3QtY3h4bXVsdGkJPSBIT1NUTEQgICRACiAgICAgICBjbWRfaG9zdC1jeHhtdWx0aQk9ICQoSE9TVENYWCkgJChLQlVJTERfSE9TVExERkxBR1MpIC1vICRAIFwKIAkJCSAgJChmb3JlYWNoIG8sb2JqcyBjeHhvYmpzLFwKLQkJCSAgJChhZGRwcmVmaXggJChvYmopLywkKCQoQEYpLSQobykpKSkgXAotCQkJICAkKEtCVUlMRF9IT1NUTERMSUJTKSAkKEhPU1RMRExJQlNfJChARikpCisJCQkgICQoYWRkcHJlZml4ICQob2JqKS8sICQoJCh0YXJnZXQtc3RlbSktJChvKSkpKSBcCisJCQkgICQoS0JVSUxEX0hPU1RMRExJQlMpICQoSE9TVExETElCU18kKHRhcmdldC1zdGVtKSkKICQoaG9zdC1jeHhtdWx0aSk6IEZPUkNFCiAJJChjYWxsIGlmX2NoYW5nZWQsaG9zdC1jeHhtdWx0aSkKICQoY2FsbCBtdWx0aV9kZXBlbmQsICQoaG9zdC1jeHhtdWx0aSksICwgLW9ianMgLWN4eG9ianMpCkBAIC0xNDQsOCArMTYxLDggQEAKICMgKi5vIC0+IC5zbyBzaGFyZWQgbGlicmFyeSAoaG9zdC1jc2hsaWIpCiBxdWlldF9jbWRfaG9zdC1jc2hsaWIJPSBIT1NUTExEIC1zaGFyZWQgJEAKICAgICAgIGNtZF9ob3N0LWNzaGxpYgk9ICQoSE9TVENDKSAkKEtCVUlMRF9IT1NUTERGTEFHUykgLXNoYXJlZCAtbyAkQCBcCi0JCQkgICQoYWRkcHJlZml4ICQob2JqKS8sJCgkKEBGOi5zbz0tb2JqcykpKSBcCi0JCQkgICQoS0JVSUxEX0hPU1RMRExJQlMpICQoSE9TVExETElCU18kKEBGKSkKKwkJCSAgJChhZGRwcmVmaXggJChvYmopLywgJCgkKHRhcmdldC1zdGVtKS1vYmpzKSkgXAorCQkJICAkKEtCVUlMRF9IT1NUTERMSUJTKSAkKEhPU1RMRExJQlNfJCh0YXJnZXQtc3RlbSkuc28pCiAkKGhvc3QtY3NobGliKTogRk9SQ0UKIAkkKGNhbGwgaWZfY2hhbmdlZCxob3N0LWNzaGxpYikKICQoY2FsbCBtdWx0aV9kZXBlbmQsICQoaG9zdC1jc2hsaWIpLCAuc28sIC1vYmpzKQpAQCAtMTU0LDggKzE3MSw4IEBACiAjICoubyAtPiAuc28gc2hhcmVkIGxpYnJhcnkgKGhvc3QtY3h4c2hsaWIpCiBxdWlldF9jbWRfaG9zdC1jeHhzaGxpYgk9IEhPU1RMTEQgLXNoYXJlZCAkQAogICAgICAgY21kX2hvc3QtY3h4c2hsaWIJPSAkKEhPU1RDWFgpICQoS0JVSUxEX0hPU1RMREZMQUdTKSAtc2hhcmVkIC1vICRAIFwKLQkJCSAgJChhZGRwcmVmaXggJChvYmopLywkKCQoQEY6LnNvPS1vYmpzKSkpIFwKLQkJCSAgJChLQlVJTERfSE9TVExETElCUykgJChIT1NUTERMSUJTXyQoQEYpKQorCQkJICAkKGFkZHByZWZpeCAkKG9iaikvLCAkKCQodGFyZ2V0LXN0ZW0pLW9ianMpKSBcCisJCQkgICQoS0JVSUxEX0hPU1RMRExJQlMpICQoSE9TVExETElCU18kKHRhcmdldC1zdGVtKS5zbykKICQoaG9zdC1jeHhzaGxpYik6IEZPUkNFCiAJJChjYWxsIGlmX2NoYW5nZWQsaG9zdC1jeHhzaGxpYikKICQoY2FsbCBtdWx0aV9kZXBlbmQsICQoaG9zdC1jeHhzaGxpYiksIC5zbywgLW9ianMpCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLmxpYiBiL3NjcmlwdHMvTWFrZWZpbGUubGliCmluZGV4IDQxYzUwZjkuLjRhMGNkZDYgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvTWFrZWZpbGUubGliCisrKyBiL3NjcmlwdHMvTWFrZWZpbGUubGliCkBAIC00MSw5ICs0MSw5IEBACiAjIFN1YmRpcmVjdG9yaWVzIHdlIG5lZWQgdG8gZGVzY2VuZCBpbnRvCiBzdWJkaXIteW0JOj0gJChzb3J0ICQoc3ViZGlyLXkpICQoc3ViZGlyLW0pKQogCi0jIGlmICQoZm9vLW9ianMpLCAkKGZvby15KSwgb3IgJChmb28tbSkgZXhpc3RzLCBmb28ubyBpcyBhIGNvbXBvc2l0ZSBvYmplY3QKLW11bHRpLXVzZWQteSA6PSAkKHNvcnQgJChmb3JlYWNoIG0sJChvYmoteSksICQoaWYgJChzdHJpcCAkKCQobToubz0tb2JqcykpICQoJChtOi5vPS15KSkpLCAkKG0pKSkpCi1tdWx0aS11c2VkLW0gOj0gJChzb3J0ICQoZm9yZWFjaCBtLCQob2JqLW0pLCAkKGlmICQoc3RyaXAgJCgkKG06Lm89LW9ianMpKSAkKCQobToubz0teSkpICQoJChtOi5vPS1tKSkpLCAkKG0pKSkpCisjIElmICQoZm9vLW9ianMpLCAkKGZvby15KSwgJChmb28tbSksIG9yICQoZm9vLSkgZXhpc3RzLCBmb28ubyBpcyBhIGNvbXBvc2l0ZSBvYmplY3QKK211bHRpLXVzZWQteSA6PSAkKHNvcnQgJChmb3JlYWNoIG0sJChvYmoteSksICQoaWYgJChzdHJpcCAkKCQobToubz0tb2JqcykpICQoJChtOi5vPS15KSkgJCgkKG06Lm89LSkpKSwgJChtKSkpKQorbXVsdGktdXNlZC1tIDo9ICQoc29ydCAkKGZvcmVhY2ggbSwkKG9iai1tKSwgJChpZiAkKHN0cmlwICQoJChtOi5vPS1vYmpzKSkgJCgkKG06Lm89LXkpKSAkKCQobToubz0tbSkpICQoJChtOi5vPS0pKSksICQobSkpKSkKIG11bHRpLXVzZWQgICA6PSAkKG11bHRpLXVzZWQteSkgJChtdWx0aS11c2VkLW0pCiAKICMgJChzdWJkaXItb2JqLXkpIGlzIHRoZSBsaXN0IG9mIG9iamVjdHMgaW4gJChvYmoteSkgd2hpY2ggdXNlcyBkaXIvIHRvCkBAIC01Miw4ICs1Miw4IEBACiAKICMgUmVwbGFjZSBtdWx0aS1wYXJ0IG9iamVjdHMgYnkgdGhlaXIgaW5kaXZpZHVhbCBwYXJ0cywKICMgaW5jbHVkaW5nIGJ1aWx0LWluLmEgZnJvbSBzdWJkaXJlY3RvcmllcwotcmVhbC1vYmoteSA6PSAkKGZvcmVhY2ggbSwgJChvYmoteSksICQoaWYgJChzdHJpcCAkKCQobToubz0tb2JqcykpICQoJChtOi5vPS15KSkpLCQoJChtOi5vPS1vYmpzKSkgJCgkKG06Lm89LXkpKSwkKG0pKSkKLXJlYWwtb2JqLW0gOj0gJChmb3JlYWNoIG0sICQob2JqLW0pLCAkKGlmICQoc3RyaXAgJCgkKG06Lm89LW9ianMpKSAkKCQobToubz0teSkpICQoJChtOi5vPS1tKSkpLCQoJChtOi5vPS1vYmpzKSkgJCgkKG06Lm89LXkpKSAkKCQobToubz0tbSkpLCQobSkpKQorcmVhbC1vYmoteSA6PSAkKGZvcmVhY2ggbSwgJChvYmoteSksICQoaWYgJChzdHJpcCAkKCQobToubz0tb2JqcykpICQoJChtOi5vPS15KSkgJCgkKG06Lm89LSkpKSwkKCQobToubz0tb2JqcykpICQoJChtOi5vPS15KSksJChtKSkpCityZWFsLW9iai1tIDo9ICQoZm9yZWFjaCBtLCAkKG9iai1tKSwgJChpZiAkKHN0cmlwICQoJChtOi5vPS1vYmpzKSkgJCgkKG06Lm89LXkpKSAkKCQobToubz0tbSkpICQoJChtOi5vPS0pKSksJCgkKG06Lm89LW9ianMpKSAkKCQobToubz0teSkpICQoJChtOi5vPS1tKSksJChtKSkpCiAKICMgRFRCCiAjIElmIENPTkZJR19PRl9BTExfRFRCUyBpcyBlbmFibGVkLCBhbGwgRFQgYmxvYnMgYXJlIGJ1aWx0CkBAIC0xMDEsNiArMTAxLDkgQEAKIAogbW9kbmFtZSA9ICQoaWYgJChtb2RuYW1lLW11bHRpKSwkKG1vZG5hbWUtbXVsdGkpLCQoYmFzZXRhcmdldCkpCiAKKyMgdGFyZ2V0IHdpdGggJChvYmopLyBhbmQgaXRzIHN1ZmZpeCBzdHJpcHBlZAordGFyZ2V0LXN0ZW0gPSAkKGJhc2VuYW1lICQocGF0c3Vic3QgJChvYmopLyUsJSwkQCkpCisKICMgVGhlc2UgZmxhZ3MgYXJlIG5lZWRlZCBmb3IgbW9kdmVyc2lvbnMgYW5kIGNvbXBpbGluZywgc28gd2UgZGVmaW5lIHRoZW0gaGVyZQogIyAkKG1vZG5hbWVfZmxhZ3MpIGRlZmluZXMgS0JVSUxEX01PRE5BTUUgYXMgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSBpdCB3aWxsCiAjIGVuZCB1cCBpbiAob3Igd291bGQsIGlmIGl0IGdldHMgY29tcGlsZWQgaW4pCkBAIC0xMDksMTIgKzExMiwxMiBAQAogbW9kbmFtZV9mbGFncyAgPSAtREtCVUlMRF9NT0ROQU1FPSQoY2FsbCBuYW1lLWZpeCwkKG1vZG5hbWUpKQogCiBvcmlnX2NfZmxhZ3MgICA9ICQoS0JVSUxEX0NQUEZMQUdTKSAkKEtCVUlMRF9DRkxBR1MpIFwKLSAgICAgICAgICAgICAgICAgJChjY2ZsYWdzLXkpICQoQ0ZMQUdTXyQoYmFzZXRhcmdldCkubykKLV9jX2ZsYWdzICAgICAgID0gJChmaWx0ZXItb3V0ICQoQ0ZMQUdTX1JFTU9WRV8kKGJhc2V0YXJnZXQpLm8pLCAkKG9yaWdfY19mbGFncykpCisgICAgICAgICAgICAgICAgICQoY2NmbGFncy15KSAkKENGTEFHU18kKHRhcmdldC1zdGVtKS5vKQorX2NfZmxhZ3MgICAgICAgPSAkKGZpbHRlci1vdXQgJChDRkxBR1NfUkVNT1ZFXyQodGFyZ2V0LXN0ZW0pLm8pLCAkKG9yaWdfY19mbGFncykpCiBvcmlnX2FfZmxhZ3MgICA9ICQoS0JVSUxEX0NQUEZMQUdTKSAkKEtCVUlMRF9BRkxBR1MpIFwKLSAgICAgICAgICAgICAgICAgJChhc2ZsYWdzLXkpICQoQUZMQUdTXyQoYmFzZXRhcmdldCkubykKLV9hX2ZsYWdzICAgICAgID0gJChmaWx0ZXItb3V0ICQoQUZMQUdTX1JFTU9WRV8kKGJhc2V0YXJnZXQpLm8pLCAkKG9yaWdfYV9mbGFncykpCi1fY3BwX2ZsYWdzICAgICA9ICQoS0JVSUxEX0NQUEZMQUdTKSAkKGNwcGZsYWdzLXkpICQoQ1BQRkxBR1NfJChARikpCisgICAgICAgICAgICAgICAgICQoYXNmbGFncy15KSAkKEFGTEFHU18kKHRhcmdldC1zdGVtKS5vKQorX2FfZmxhZ3MgICAgICAgPSAkKGZpbHRlci1vdXQgJChBRkxBR1NfUkVNT1ZFXyQodGFyZ2V0LXN0ZW0pLm8pLCAkKG9yaWdfYV9mbGFncykpCitfY3BwX2ZsYWdzICAgICA9ICQoS0JVSUxEX0NQUEZMQUdTKSAkKGNwcGZsYWdzLXkpICQoQ1BQRkxBR1NfJCh0YXJnZXQtc3RlbSkubGRzKQogCiAjCiAjIEVuYWJsZSBnY292IHByb2ZpbGluZyBmbGFncyBmb3IgYSBmaWxlLCBkaXJlY3Rvcnkgb3IgZm9yIGFsbCBmaWxlcyBkZXBlbmRpbmcKQEAgLTE1OSw2ICsxNjIsMTggQEAKIGVuZGlmCiBlbmRpZgogCitwYXJ0LW9mLW1vZHVsZSA9ICQoaWYgJChmaWx0ZXIgJChiYXNlbmFtZSAkQCkubywgJChyZWFsLW9iai1tKSkseSkKK3F1aWV0X21vZHRhZyA9ICQoaWYgJChwYXJ0LW9mLW1vZHVsZSksW01dLCAgICkKKworbW9ka2Vybl9jZmxhZ3MgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkkKGlmICQocGFydC1vZi1tb2R1bGUpLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJJChLQlVJTERfQ0ZMQUdTX01PRFVMRSkgJChDRkxBR1NfTU9EVUxFKSwgXAorCQkkKEtCVUlMRF9DRkxBR1NfS0VSTkVMKSAkKENGTEFHU19LRVJORUwpKQorCittb2RrZXJuX2FmbGFncyA9ICQoaWYgJChwYXJ0LW9mLW1vZHVsZSksCQkJCVwKKwkJCSQoS0JVSUxEX0FGTEFHU19NT0RVTEUpICQoQUZMQUdTX01PRFVMRSksCVwKKwkJCSQoS0JVSUxEX0FGTEFHU19LRVJORUwpICQoQUZMQUdTX0tFUk5FTCkpCisKIGNfZmxhZ3MgICAgICAgID0gLVdwLC1NRCwkKGRlcGZpbGUpICQoTk9TVERJTkNfRkxBR1MpICQoTElOVVhJTkNMVURFKSAgICAgXAogCQkgLWluY2x1ZGUgJChzcmN0cmVlKS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmggICAgICAgXAogCQkgJChfY19mbGFncykgJChtb2RrZXJuX2NmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0xODcsMjggKzIwMiw2IEBACiAJJChhZGRwcmVmaXggJChvYmopLywgJChmb3JlYWNoIHMsICQzLCAkKCQobTolJChzdHJpcCAkMik9JSQocykpKSkpKSkKIGVuZGVmCiAKLSMgTEVYCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotcXVpZXRfY21kX2ZsZXggPSBMRVggICAgICRACi0gICAgICBjbWRfZmxleCA9ICQoTEVYKSAtbyRAIC1MICQ8Ci0KLSQob2JqKS8lLmxleC5jOiAkKHNyYykvJS5sIEZPUkNFCi0JJChjYWxsIGlmX2NoYW5nZWQsZmxleCkKLQotIyBZQUNDCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotcXVpZXRfY21kX2Jpc29uID0gWUFDQyAgICAkQAotICAgICAgY21kX2Jpc29uID0gJChZQUNDKSAtbyRAIC10IC1sICQ8Ci0KLSQob2JqKS8lLnRhYi5jOiAkKHNyYykvJS55IEZPUkNFCi0JJChjYWxsIGlmX2NoYW5nZWQsYmlzb24pCi0KLXF1aWV0X2NtZF9iaXNvbl9oID0gWUFDQyAgICAkQAotICAgICAgY21kX2Jpc29uX2ggPSAkKFlBQ0MpIC1vL2Rldi9udWxsIC0tZGVmaW5lcz0kQCAtdCAtbCAkPAotCi0kKG9iaikvJS50YWIuaDogJChzcmMpLyUueSBGT1JDRQotCSQoY2FsbCBpZl9jaGFuZ2VkLGJpc29uX2gpCi0KICMgU2hpcHBlZCBmaWxlcwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIApAQCAtMjU4LDcgKzI1MSw3IEBACiBEVEMgPz0gJChvYmp0cmVlKS9zY3JpcHRzL2R0Yy9kdGMKIAogIyBEaXNhYmxlIG5vaXN5IGNoZWNrcyBieSBkZWZhdWx0Ci1pZmVxICgkKGZpbmRzdHJpbmcgMSwkKEtCVUlMRF9FTkFCTEVfRVhUUkFfR0NDX0NIRUNLUykpLCkKK2lmZXEgKCQoZmluZHN0cmluZyAxLCQoS0JVSUxEX0VYVFJBX1dBUk4pKSwpCiBEVENfRkxBR1MgKz0gLVduby11bml0X2FkZHJlc3NfdnNfcmVnIFwKIAktV25vLXVuaXRfYWRkcmVzc19mb3JtYXQgXAogCS1Xbm8tYXZvaWRfdW5uZWNlc3NhcnlfYWRkcl9zaXplIFwKQEAgLTI2OSw3ICsyNjIsNyBAQAogCS1Xbm8tcGNpX2RldmljZV9yZWcKIGVuZGlmCiAKLWlmbmVxICgkKGZpbmRzdHJpbmcgMiwkKEtCVUlMRF9FTkFCTEVfRVhUUkFfR0NDX0NIRUNLUykpLCkKK2lmbmVxICgkKGZpbmRzdHJpbmcgMiwkKEtCVUlMRF9FWFRSQV9XQVJOKSksKQogRFRDX0ZMQUdTICs9IC1Xbm9kZV9uYW1lX2NoYXJzX3N0cmljdCBcCiAJLVdwcm9wZXJ0eV9uYW1lX2NoYXJzX3N0cmljdAogZW5kaWYKQEAgLTM3NCw3ICszNjcsNyBAQAogVUlNQUdFX05BTUUgPz0gJ0xpbnV4LSQoS0VSTkVMUkVMRUFTRSknCiAKIHF1aWV0X2NtZF91aW1hZ2UgPSBVSU1BR0UgICRACi0gICAgICBjbWRfdWltYWdlID0gJChDT05GSUdfU0hFTEwpICQoTUtJTUFHRSkgLUEgJChVSU1BR0VfQVJDSCkgLU8gbGludXggXAorICAgICAgY21kX3VpbWFnZSA9ICQoQkFTSCkgJChNS0lNQUdFKSAtQSAkKFVJTUFHRV9BUkNIKSAtTyBsaW51eCBcCiAJCQktQyAkKFVJTUFHRV9DT01QUkVTU0lPTikgJChVSU1BR0VfT1BUUy15KSBcCiAJCQktVCAkKFVJTUFHRV9UWVBFKSBcCiAJCQktYSAkKFVJTUFHRV9MT0FEQUREUikgLWUgJChVSU1BR0VfRU5UUllBRERSKSBcCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLm1vZGZpbmFsIGIvc2NyaXB0cy9NYWtlZmlsZS5tb2RmaW5hbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTFjMWU2MAotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvTWFrZWZpbGUubW9kZmluYWwKQEAgLTAsMCArMSw2MCBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBNb2R1bGUgZmluYWwgbGluaworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworUEhPTlkgOj0gX19tb2RmaW5hbAorX19tb2RmaW5hbDoKKworaW5jbHVkZSAkKHNyY3RyZWUpL3NjcmlwdHMvS2J1aWxkLmluY2x1ZGUKKworIyBmb3IgY19mbGFncworaW5jbHVkZSAkKHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUubGliCisKKyMgZmluZCBhbGwgbW9kdWxlcyBsaXN0ZWQgaW4gbW9kdWxlcy5vcmRlcgorbW9kdWxlcyA6PSAkKHNvcnQgJChzaGVsbCBjYXQgJChNT0RPUkRFUikpKQorCitfX21vZGZpbmFsOiAkKG1vZHVsZXMpCisJQDoKKworIyBtb2RuYW1lIGFuZCBwYXJ0LW9mLW1vZHVsZSBhcmUgc2V0IHRvIG1ha2UgY19mbGFncyBkZWZpbmUgcHJvcGVyIG1vZHVsZSBmbGFncworbW9kbmFtZSA9ICQobm90ZGlyICQoQDoubW9kLm89KSkKK3BhcnQtb2YtbW9kdWxlID0geQorCitxdWlldF9jbWRfY2Nfb19jID0gQ0MgW01dICAkQAorICAgICAgY21kX2NjX29fYyA9ICQoQ0MpICQoY19mbGFncykgLWMgLW8gJEAgJDwKKworJS5tb2QubzogJS5tb2QuYyBGT1JDRQorCSQoY2FsbCBpZl9jaGFuZ2VkX2RlcCxjY19vX2MpCisKK0FSQ0hfUE9TVExJTksgOj0gJCh3aWxkY2FyZCAkKHNyY3RyZWUpL2FyY2gvJChTUkNBUkNIKS9NYWtlZmlsZS5wb3N0bGluaykKKworcXVpZXRfY21kX2xkX2tvX28gPSBMRCBbTV0gICRACisgICAgICBjbWRfbGRfa29fbyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJJChMRCkgLXIgJChLQlVJTERfTERGTEFHUykJCQkJCVwKKwkJJChLQlVJTERfTERGTEFHU19NT0RVTEUpICQoTERGTEFHU19NT0RVTEUpCQlcCisJCSQoYWRkcHJlZml4IC1UICwgJChLQlVJTERfTERTX01PRFVMRSkpCQkJXAorCQktbyAkQCAkKGZpbHRlciAlLm8sICReKTsJCQkJXAorCSQoaWYgJChBUkNIX1BPU1RMSU5LKSwgJChNQUtFKSAtZiAkKEFSQ0hfUE9TVExJTkspICRALCB0cnVlKQorCiskKG1vZHVsZXMpOiAlLmtvOiAlLm8gJS5tb2QubyAkKEtCVUlMRF9MRFNfTU9EVUxFKSBGT1JDRQorCSskKGNhbGwgaWZfY2hhbmdlZCxsZF9rb19vKQorCit0YXJnZXRzICs9ICQobW9kdWxlcykgJChtb2R1bGVzOi5rbz0ubW9kLm8pCisKKyMgQWRkIEZPUkNFIHRvIHRoZSBwcmVxdWlzaXRlcyBvZiBhIHRhcmdldCB0byBmb3JjZSBpdCB0byBiZSBhbHdheXMgcmVidWlsdC4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1BIT05ZICs9IEZPUkNFCitGT1JDRToKKworIyBSZWFkIGFsbCBzYXZlZCBjb21tYW5kIGxpbmVzIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoZSAkKHRhcmdldHMpIHdlCisjIG1heSBiZSBidWlsZGluZyBhYm92ZSwgdXNpbmcgJChpZl9jaGFuZ2VkeyxfZGVwfSkuIEFzIGFuCisjIG9wdGltaXphdGlvbiwgd2UgZG9uJ3QgbmVlZCB0byByZWFkIHRoZW0gaWYgdGhlIHRhcmdldCBkb2VzIG5vdAorIyBleGlzdCwgd2Ugd2lsbCByZWJ1aWxkIGFueXdheSBpbiB0aGF0IGNhc2UuCisKK2V4aXN0aW5nLXRhcmdldHMgOj0gJCh3aWxkY2FyZCAkKHNvcnQgJCh0YXJnZXRzKSkpCisKKy1pbmNsdWRlICQoZm9yZWFjaCBmLCQoZXhpc3RpbmctdGFyZ2V0cyksJChkaXIgJChmKSkuJChub3RkaXIgJChmKSkuY21kKQorCisuUEhPTlk6ICQoUEhPTlkpCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLm1vZHBvc3QgYi9zY3JpcHRzL01ha2VmaWxlLm1vZHBvc3QKaW5kZXggMjZlNjU3NC4uOTUyZmZmNCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9NYWtlZmlsZS5tb2Rwb3N0CisrKyBiL3NjcmlwdHMvTWFrZWZpbGUubW9kcG9zdApAQCAtMTUsMTUgKzE1LDEzIEBACiAjIDIpIG1vZHBvc3QgaXMgdGhlbiB1c2VkIHRvCiAjIDMpICBjcmVhdGUgb25lIDxtb2R1bGU+Lm1vZC5jIGZpbGUgcHIuIG1vZHVsZQogIyA0KSAgY3JlYXRlIG9uZSBNb2R1bGUuc3ltdmVycyBmaWxlIHdpdGggQ1JDIGZvciBhbGwgZXhwb3J0ZWQgc3ltYm9scwotIyA1KSBjb21waWxlIGFsbCA8bW9kdWxlPi5tb2QuYyBmaWxlcwotIyA2KSBmaW5hbCBsaW5rIG9mIHRoZSBtb2R1bGUgdG8gYSA8bW9kdWxlLmtvPiBmaWxlCiAKICMgU3RlcCAzIGlzIHVzZWQgdG8gcGxhY2UgY2VydGFpbiBpbmZvcm1hdGlvbiBpbiB0aGUgbW9kdWxlJ3MgRUxGCiAjIHNlY3Rpb24sIGluY2x1ZGluZyBpbmZvcm1hdGlvbiBzdWNoIGFzOgogIyAgIFZlcnNpb24gbWFnaWMgKHNlZSBpbmNsdWRlL2xpbnV4L3Zlcm1hZ2ljLmggZm9yIGZ1bGwgZGV0YWlscykKICMgICAgIC0gS2VybmVsIHJlbGVhc2UKICMgICAgIC0gU01QIGlzIENPTkZJR19TTVAKLSMgICAgIC0gUFJFRU1QVCBpcyBDT05GSUdfUFJFRU1QVAorIyAgICAgLSBQUkVFTVBUIGlzIENPTkZJR19QUkVFTVBUW19SVF0KICMgICAgIC0gR0NDIFZlcnNpb24KICMgICBNb2R1bGUgaW5mbwogIyAgICAgLSBNb2R1bGUgdmVyc2lvbiAoTU9EVUxFX1ZFUlNJT04pCkBAIC01NiwxNyArNTQsMTUgQEAKIAkkKGlmICQoS0JVSUxEX0VYVE1PRCksJChhZGRwcmVmaXggLWUgLCQoS0JVSUxEX0VYVFJBX1NZTUJPTFMpKSkJXAogCSQoaWYgJChLQlVJTERfRVhUTU9EKSwtbyAkKG1vZHVsZXN5bWZpbGUpKQkJCVwKIAkkKGlmICQoQ09ORklHX1NFQ1RJT05fTUlTTUFUQ0hfV0FSTl9PTkxZKSwsLUUpCQkJXAotCSQoaWYgJChLQlVJTERfTU9EUE9TVF9XQVJOKSwtdykKKwkkKGlmICQoS0JVSUxEX01PRFBPU1RfV0FSTiksLXcpCQkJCQlcCisJJChpZiAkKGZpbHRlciBuc2RlcHMsJChNQUtFQ01ER09BTFMpKSwtZCkKIAogaWZkZWYgTU9EUE9TVF9WTUxJTlVYCiAKLV9fbW9kcG9zdDogdm1saW51eC5vCitxdWlldF9jbWRfbW9kcG9zdCA9IE1PRFBPU1Qgdm1saW51eC5vCisgICAgICBjbWRfbW9kcG9zdCA9ICQoTU9EUE9TVCkgdm1saW51eC5vCiAKLXF1aWV0X2NtZF9tb2Rwb3N0ID0gTU9EUE9TVCAkQAotICAgICAgY21kX21vZHBvc3QgPSAkKE1PRFBPU1QpICRACi0KLVBIT05ZICs9IHZtbGludXgubwotdm1saW51eC5vOgorX19tb2Rwb3N0OgogCSQoY2FsbCBjbWQsbW9kcG9zdCkKIAogZWxzZQpAQCAtODMsNzMgKzc5LDI0IEBACiAgICAgICAgICAgICAgJChLQlVJTERfRVhUTU9EKS9LYnVpbGQsICQoS0JVSUxEX0VYVE1PRCkvTWFrZWZpbGUpCiBlbmRpZgogCi1pbmNsdWRlIHNjcmlwdHMvTWFrZWZpbGUubGliCitNT0RQT1NUICs9ICQoc3Vic3QgLWksLW4sJChmaWx0ZXIgLWksJChNQUtFRkxBR1MpKSkgLXMgLVQgLSAkKHdpbGRjYXJkIHZtbGludXgpCiAKICMgZmluZCBhbGwgbW9kdWxlcyBsaXN0ZWQgaW4gbW9kdWxlcy5vcmRlcgogbW9kdWxlcyA6PSAkKHNvcnQgJChzaGVsbCBjYXQgJChNT0RPUkRFUikpKQogCi0jIFN0b3AgYWZ0ZXIgYnVpbGRpbmcgLm8gZmlsZXMgaWYgTk9GSU5BTCBpcyBzZXQuIE1ha2VzIGNvbXBpbGUgdGVzdHMgcXVpY2tlcgotX19tb2Rwb3N0OiAkKGlmICQoS0JVSUxEX01PRFBPU1RfTk9GSU5BTCksICQobW9kdWxlczoua286Lm8pLCQobW9kdWxlcykpCi0JQDoKLQotTU9EUE9TVCArPSAkKHN1YnN0IC1pLC1uLCQoZmlsdGVyIC1pLCQoTUFLRUZMQUdTKSkpIC1zIC1UIC0gJCh3aWxkY2FyZCB2bWxpbnV4KQotCi0jIFdlIGNhbiBnbyBvdmVyIGNvbW1hbmQgbGluZSBsZW5ndGggaGVyZSwgc28gYmUgY2FyZWZ1bC4KKyMgUmVhZCBvdXQgbW9kdWxlcy5vcmRlciBpbnN0ZWFkIG9mIGV4cGFuZGluZyAkKG1vZHVsZXMpIHRvIHBhc3MgaW4gbW9kcG9zdC4KKyMgT3RoZXJ3aXNlLCBhbGxtb2Rjb25maWcgd291bGQgZmFpbCB3aXRoICJBcmd1bWVudCBsaXN0IHRvbyBsb25nIi4KIHF1aWV0X2NtZF9tb2Rwb3N0ID0gTU9EUE9TVCAkKHdvcmRzICQobW9kdWxlcykpIG1vZHVsZXMKICAgICAgIGNtZF9tb2Rwb3N0ID0gc2VkICdzL2tvJCQvby8nICQoTU9ET1JERVIpIHwgJChNT0RQT1NUKQogCi1QSE9OWSArPSBtb2R1bGVzLW1vZHBvc3QKLW1vZHVsZXMtbW9kcG9zdDoKK19fbW9kcG9zdDoKKwlAJChrZWNobykgJyAgQnVpbGRpbmcgbW9kdWxlcywgc3RhZ2UgMi4nCiAJJChjYWxsIGNtZCxtb2Rwb3N0KQoraWZuZXEgKCQoS0JVSUxEX01PRFBPU1RfTk9GSU5BTCksMSkKKwkkKFEpJChNQUtFKSAtZiAkKHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUubW9kZmluYWwKK2VuZGlmCiAKLSMgRGVjbGFyZSBnZW5lcmF0ZWQgZmlsZXMgYXMgdGFyZ2V0cyBmb3IgbW9kcG9zdAotJChtb2R1bGVzOi5rbz0ubW9kLmMpOiBtb2R1bGVzLW1vZHBvc3QKLQotIyBTdGVwIDUpLCBjb21waWxlIGFsbCAqLm1vZC5jIGZpbGVzCi0KLSMgbW9kbmFtZSBpcyBzZXQgdG8gbWFrZSBjX2ZsYWdzIGRlZmluZSBLQlVJTERfTU9ETkFNRQotbW9kbmFtZSA9ICQobm90ZGlyICQoQDoubW9kLm89KSkKLQotcXVpZXRfY21kX2NjX29fYyA9IENDICAgICAgJEAKLSAgICAgIGNtZF9jY19vX2MgPSAkKENDKSAkKGNfZmxhZ3MpICQoS0JVSUxEX0NGTEFHU19NT0RVTEUpICQoQ0ZMQUdTX01PRFVMRSkgXAotCQkgICAtYyAtbyAkQCAkPAotCi0kKG1vZHVsZXM6LmtvPS5tb2Qubyk6ICUubW9kLm86ICUubW9kLmMgRk9SQ0UKLQkkKGNhbGwgaWZfY2hhbmdlZF9kZXAsY2Nfb19jKQotCi10YXJnZXRzICs9ICQobW9kdWxlczoua289Lm1vZC5vKQotCi1BUkNIX1BPU1RMSU5LIDo9ICQod2lsZGNhcmQgJChzcmN0cmVlKS9hcmNoLyQoU1JDQVJDSCkvTWFrZWZpbGUucG9zdGxpbmspCi0KLSMgU3RlcCA2KSwgZmluYWwgbGluayBvZiB0aGUgbW9kdWxlcyB3aXRoIG9wdGlvbmFsIGFyY2ggcGFzcyBhZnRlciBmaW5hbCBsaW5rCi1xdWlldF9jbWRfbGRfa29fbyA9IExEIFtNXSAgJEAKLSAgICAgIGNtZF9sZF9rb19vID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkkKExEKSAtciAkKEtCVUlMRF9MREZMQUdTKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAkKEtCVUlMRF9MREZMQUdTX01PRFVMRSkgJChMREZMQUdTX01PRFVMRSkgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAtbyAkQCAkKHJlYWwtcHJlcmVxcykgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCSQoaWYgJChBUkNIX1BPU1RMSU5LKSwgJChNQUtFKSAtZiAkKEFSQ0hfUE9TVExJTkspICRALCB0cnVlKQotCi0kKG1vZHVsZXMpOiAlLmtvIDolLm8gJS5tb2QubyBGT1JDRQotCSskKGNhbGwgaWZfY2hhbmdlZCxsZF9rb19vKQotCi10YXJnZXRzICs9ICQobW9kdWxlcykKLQotCi0jIEFkZCBGT1JDRSB0byB0aGUgcHJlcXVpc2l0ZXMgb2YgYSB0YXJnZXQgdG8gZm9yY2UgaXQgdG8gYmUgYWx3YXlzIHJlYnVpbHQuCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1QSE9OWSArPSBGT1JDRQotCi1GT1JDRToKLQotIyBSZWFkIGFsbCBzYXZlZCBjb21tYW5kIGxpbmVzIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoZSAkKHRhcmdldHMpIHdlCi0jIG1heSBiZSBidWlsZGluZyBhYm92ZSwgdXNpbmcgJChpZl9jaGFuZ2VkeyxfZGVwfSkuIEFzIGFuCi0jIG9wdGltaXphdGlvbiwgd2UgZG9uJ3QgbmVlZCB0byByZWFkIHRoZW0gaWYgdGhlIHRhcmdldCBkb2VzIG5vdAotIyBleGlzdCwgd2Ugd2lsbCByZWJ1aWxkIGFueXdheSBpbiB0aGF0IGNhc2UuCi0KLWV4aXN0aW5nLXRhcmdldHMgOj0gJCh3aWxkY2FyZCAkKHNvcnQgJCh0YXJnZXRzKSkpCi0KLS1pbmNsdWRlICQoZm9yZWFjaCBmLCQoZXhpc3RpbmctdGFyZ2V0cyksJChkaXIgJChmKSkuJChub3RkaXIgJChmKSkuY21kKQorbnNkZXBzOiBfX21vZHBvc3QKIAogZW5kaWYKIApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9NYWtlZmlsZS5wYWNrYWdlIGIvc2NyaXB0cy9NYWtlZmlsZS5wYWNrYWdlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ZWFkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL01ha2VmaWxlLnBhY2thZ2UKQEAgLTAsMCArMSwxNTkgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorIyBNYWtlZmlsZSBmb3IgdGhlIGRpZmZlcmVudCB0YXJnZXRzIHVzZWQgdG8gZ2VuZXJhdGUgZnVsbCBwYWNrYWdlcyBvZiBhIGtlcm5lbAorCitpbmNsdWRlICQoc3JjdHJlZSkvc2NyaXB0cy9LYnVpbGQuaW5jbHVkZQorCisjIFJQTSB0YXJnZXQKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRoZSBycG0gdGFyZ2V0IGdlbmVyYXRlcyB0d28gcnBtIGZpbGVzOgorIyAvdXNyL3NyYy9wYWNrYWdlcy9TUlBNUy9rZXJuZWwtMi42LjdyYzItMS5zcmMucnBtCisjIC91c3Ivc3JjL3BhY2thZ2VzL1JQTVMvaTM4Ni9rZXJuZWwtMi42LjdyYzItMS48YXJjaD4ucnBtCisjIFRoZSBzcmMucnBtIGZpbGVzIGluY2x1ZGVzIGFsbCBzb3VyY2UgZm9yIHRoZSBrZXJuZWwgYmVpbmcgYnVpbHQKKyMgVGhlIDxhcmNoPi5ycG0gaW5jbHVkZXMga2VybmVsIGNvbmZpZ3VyYXRpb24sIG1vZHVsZXMgZXRjLgorIworIyBQcm9jZXNzIHRvIGNyZWF0ZSB0aGUgcnBtIGZpbGVzCisjIGEpIGNsZWFuIHRoZSBrZXJuZWwKKyMgYikgR2VuZXJhdGUgLnNwZWMgZmlsZQorIyBjKSBCdWlsZCBhIHRhciBiYWxsLCB1c2luZyBzeW1saW5rIHRvIG1ha2Uga2VybmVsIHZlcnNpb24KKyMgICAgZmlyc3QgZW50cnkgaW4gdGhlIHBhdGgKKyMgZCkgYW5kIHBhY2sgdGhlIHJlc3VsdCB0byBhIHRhci5neiBmaWxlCisjIGUpIGdlbmVyYXRlIHRoZSBycG0gZmlsZXMsIGJhc2VkIG9uIGtlcm5lbC5zcGVjCisjIC0gVXNlIC8uIHRvIGF2b2lkIHRhciBwYWNraW5nIGp1c3QgdGhlIHN5bWxpbmsKKworIyBOb3RlIHRoYXQgdGhlIHJwbS1wa2cgdGFyZ2V0IGNhbm5vdCBiZSB1c2VkIHdpdGggS0JVSUxEX09VVFBVVCwKKyMgYnV0IHRoZSBiaW5ycG0tcGtnIHRhcmdldCBjYW47IGZvciBzb21lIHJlYXNvbiBPPSBnZXRzIGlnbm9yZWQuCisKKyMgUmVtb3ZlIGh5cGhlbnMgc2luY2UgdGhleSBoYXZlIHNwZWNpYWwgbWVhbmluZyBpbiBSUE0gZmlsZW5hbWVzCitLRVJORUxQQVRIIDo9IGtlcm5lbC0kKHN1YnN0IC0sXywkKEtFUk5FTFJFTEVBU0UpKQorS0RFQl9TT1VSQ0VOQU1FID89IGxpbnV4LSQoS0VSTkVMUkVMRUFTRSkKK0tCVUlMRF9QS0dfUk9PVENNRCA/PSJmYWtlcm9vdCAtdSIKK2V4cG9ydCBLREVCX1NPVVJDRU5BTUUKKyMgSW5jbHVkZSBvbmx5IHRob3NlIHRvcC1sZXZlbCBmaWxlcyB0aGF0IGFyZSBuZWVkZWQgYnkgbWFrZSwgcGx1cyB0aGUgR1BMIGNvcHkKK1RBUl9DT05URU5UIDo9ICQoS0JVSUxEX0FMTERJUlMpIC5jb25maWcgLnNjbXZlcnNpb24gTWFrZWZpbGUgXAorICAgICAgICAgICAgICAgS2J1aWxkIEtjb25maWcgQ09QWUlORyAkKHdpbGRjYXJkIGxvY2FsdmVyc2lvbiopCitNS1NQRUMgICAgIDo9ICQoc3JjdHJlZSkvc2NyaXB0cy9wYWNrYWdlL21rc3BlYworCitxdWlldF9jbWRfc3JjX3RhciA9IFRBUiAgICAgJCgyKS50YXIuZ3oKKyAgICAgIGNtZF9zcmNfdGFyID0gXAoraWYgdGVzdCAiJChvYmp0cmVlKSIgIT0gIiQoc3JjdHJlZSkiOyB0aGVuIFwKKwllY2hvID4mMjsgXAorCWVjaG8gPiYyICIgIEVSUk9SOiI7IFwKKwllY2hvID4mMiAiICBCdWlsZGluZyBzb3VyY2UgdGFyYmFsbCBpcyBub3QgcG9zc2libGUgb3V0c2lkZSB0aGUiOyBcCisJZWNobyA+JjIgIiAga2VybmVsIHNvdXJjZSB0cmVlLiBEb24ndCBzZXQgS0JVSUxEX09VVFBVVCwgb3IgdXNlIHRoZSI7IFwKKwllY2hvID4mMiAiICBiaW5ycG0tcGtnIG9yIGJpbmRlYi1wa2cgdGFyZ2V0IGluc3RlYWQuIjsgXAorCWVjaG8gPiYyOyBcCisJZmFsc2U7IFwKK2ZpIDsgXAorJChzcmN0cmVlKS9zY3JpcHRzL3NldGxvY2FsdmVyc2lvbiAtLXNhdmUtc2NtdmVyc2lvbjsgXAordGFyIC1jeiAkKFJDU19UQVJfSUdOT1JFKSAtZiAkKDIpLnRhci5neiBcCisJLS10cmFuc2Zvcm0gJ3M6XjokKDIpLzpTJyAkKFRBUl9DT05URU5UKSAkKDMpOyBcCitybSAtZiAkKG9ianRyZWUpLy5zY212ZXJzaW9uCisKKyMgcnBtLXBrZworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1BIT05ZICs9IHJwbS1wa2cKK3JwbS1wa2c6CisJJChNQUtFKSBjbGVhbgorCSQoQ09ORklHX1NIRUxMKSAkKE1LU1BFQykgPiQob2JqdHJlZSkva2VybmVsLnNwZWMKKwkkKGNhbGwgY21kLHNyY190YXIsJChLRVJORUxQQVRIKSxrZXJuZWwuc3BlYykKKwkrcnBtYnVpbGQgJChSUE1PUFRTKSAtLXRhcmdldCAkKFVUU19NQUNISU5FKSAtdGEgJChLRVJORUxQQVRIKS50YXIuZ3ogXAorCS0tZGVmaW5lPSdfc21wX21mbGFncyAle25pbH0nCisKKyMgYmlucnBtLXBrZworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1BIT05ZICs9IGJpbnJwbS1wa2cKK2JpbnJwbS1wa2c6CisJJChNQUtFKSAtZiAkKHNyY3RyZWUpL01ha2VmaWxlCisJJChDT05GSUdfU0hFTEwpICQoTUtTUEVDKSBwcmVidWlsdCA+ICQob2JqdHJlZSkvYmlua2VybmVsLnNwZWMKKwkrcnBtYnVpbGQgJChSUE1PUFRTKSAtLWRlZmluZSAiX2J1aWxkZGlyICQob2JqdHJlZSkiIC0tdGFyZ2V0IFwKKwkJJChVVFNfTUFDSElORSkgLWJiICQob2JqdHJlZSkvYmlua2VybmVsLnNwZWMKKworUEhPTlkgKz0gZGViLXBrZworZGViLXBrZzoKKwkkKE1BS0UpIGNsZWFuCisJJChDT05GSUdfU0hFTEwpICQoc3JjdHJlZSkvc2NyaXB0cy9wYWNrYWdlL21rZGViaWFuCisJJChjYWxsIGNtZCxzcmNfdGFyLCQoS0RFQl9TT1VSQ0VOQU1FKSkKKwlvcmlndmVyc2lvbj0kJChkcGtnLXBhcnNlY2hhbmdlbG9nIC1TVmVyc2lvbiB8c2VkICdzLy1bXi1dKiQkLy8nKTtcCisJCW12ICQoS0RFQl9TT1VSQ0VOQU1FKS50YXIuZ3ogLi4vJChLREVCX1NPVVJDRU5BTUUpXyQke29yaWd2ZXJzaW9ufS5vcmlnLnRhci5negorCStkcGtnLWJ1aWxkcGFja2FnZSAtciQoS0JVSUxEX1BLR19ST09UQ01EKSAtYSQkKGNhdCBkZWJpYW4vYXJjaCkgJChEUEtHX0ZMQUdTKSAtaS5naXQgLXVzIC11YworCitQSE9OWSArPSBiaW5kZWItcGtnCitiaW5kZWItcGtnOgorCSQoQ09ORklHX1NIRUxMKSAkKHNyY3RyZWUpL3NjcmlwdHMvcGFja2FnZS9ta2RlYmlhbgorCStkcGtnLWJ1aWxkcGFja2FnZSAtciQoS0JVSUxEX1BLR19ST09UQ01EKSAtYSQkKGNhdCBkZWJpYW4vYXJjaCkgJChEUEtHX0ZMQUdTKSAtYiAtbmMgLXVjCisKK1BIT05ZICs9IGludGRlYi1wa2cKK2ludGRlYi1wa2c6CisJKyQoQ09ORklHX1NIRUxMKSAkKHNyY3RyZWUpL3NjcmlwdHMvcGFja2FnZS9idWlsZGRlYgorCisjIHNuYXAtcGtnCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUEhPTlkgKz0gc25hcC1wa2cKK3NuYXAtcGtnOgorCXJtIC1yZiAkKG9ianRyZWUpL3NuYXAKKwlta2RpciAkKG9ianRyZWUpL3NuYXAKKwkkKE1BS0UpIGNsZWFuCisJJChjYWxsIGNtZCxzcmNfdGFyLCQoS0VSTkVMUEFUSCkpCisJc2VkICJzQEtFUk5FTFJFTEVBU0VAJChLRVJORUxSRUxFQVNFKUA7IFwKKwkJc0BTUkNUUkVFQCQoc2hlbGwgcmVhbHBhdGggJChLRVJORUxQQVRIKS50YXIuZ3opQCIgXAorCQkkKHNyY3RyZWUpL3NjcmlwdHMvcGFja2FnZS9zbmFwY3JhZnQudGVtcGxhdGUgPiBcCisJCSQob2JqdHJlZSkvc25hcC9zbmFwY3JhZnQueWFtbAorCWNkICQob2JqdHJlZSkvc25hcCAmJiBcCisJc25hcGNyYWZ0IC0tdGFyZ2V0LWFyY2g9JChVVFNfTUFDSElORSkKKworIyB0YXJiYWxsIHRhcmdldHMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit0YXItcGtncyA6PSB0YXItcGtnIHRhcmd6LXBrZyB0YXJiejItcGtnIHRhcnh6LXBrZworUEhPTlkgKz0gJCh0YXItcGtncykKKyQodGFyLXBrZ3MpOgorCSQoTUFLRSkgLWYgJChzcmN0cmVlKS9NYWtlZmlsZQorCSskKENPTkZJR19TSEVMTCkgJChzcmN0cmVlKS9zY3JpcHRzL3BhY2thZ2UvYnVpbGR0YXIgJEAKKworIyBwZXJmLXBrZyAtIGdlbmVyYXRlIGEgc291cmNlIHRhcmJhbGwgd2l0aCBwZXJmIHNvdXJjZQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworcGVyZi10YXI9cGVyZi0kKEtFUk5FTFZFUlNJT04pCisKK3F1aWV0X2NtZF9wZXJmX3RhciA9IFRBUgorICAgICAgY21kX3BlcmZfdGFyID0gXAorZ2l0IC0tZ2l0LWRpcj0kKHNyY3RyZWUpLy5naXQgYXJjaGl2ZSAtLXByZWZpeD0kKHBlcmYtdGFyKS8gICAgICAgICBcCisJSEVBRF57dHJlZX0gJCQoY2QgJChzcmN0cmVlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkgICAgICAgZWNobyAkJChjYXQgdG9vbHMvcGVyZi9NQU5JRkVTVCkpIFwKKwktbyAkKHBlcmYtdGFyKS50YXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitta2RpciAtcCAkKHBlcmYtdGFyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2dpdCAtLWdpdC1kaXI9JChzcmN0cmVlKS8uZ2l0IHJldi1wYXJzZSBIRUFEID4gJChwZXJmLXRhcikvSEVBRDsgICAgXAorKGNkICQoc3JjdHJlZSkvdG9vbHMvcGVyZjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit1dGlsL1BFUkYtVkVSU0lPTi1HRU4gJChDVVJESVIpLyQocGVyZi10YXIpLyk7ICAgICAgICAgICAgICBcCit0YXIgcmYgJChwZXJmLXRhcikudGFyICQocGVyZi10YXIpL0hFQUQgJChwZXJmLXRhcikvUEVSRi1WRVJTSU9OLUZJTEU7IFwKK3JtIC1yICQocGVyZi10YXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorJChpZiAkKGZpbmRzdHJpbmcgdGFyLXNyYywkQCksLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiskKGlmICQoZmluZHN0cmluZyBiejIsJEApLGJ6aXAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyQoaWYgJChmaW5kc3RyaW5nIGd6LCRAKSxnemlwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorJChpZiAkKGZpbmRzdHJpbmcgeHosJEApLHh6LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiskKGVycm9yIHVua25vd24gdGFyZ2V0ICRAKSkpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwktZiAtOSAkKHBlcmYtdGFyKS50YXIpCisKK3BlcmYtdGFyLXBrZ3MgOj0gcGVyZi10YXItc3JjLXBrZyBwZXJmLXRhcmd6LXNyYy1wa2cgcGVyZi10YXJiejItc3JjLXBrZyBwZXJmLXRhcnh6LXNyYy1wa2cKK1BIT05ZICs9ICQocGVyZi10YXItcGtncykKKyQocGVyZi10YXItcGtncyk6CisJJChjYWxsIGNtZCxwZXJmX3RhcikKKworIyBIZWxwIHRleHQgZGlzcGxheWVkIHdoZW4gZXhlY3V0aW5nICdtYWtlIGhlbHAnCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUEhPTlkgKz0gaGVscAoraGVscDoKKwlAZWNobyAnICBycG0tcGtnICAgICAgICAgICAgIC0gQnVpbGQgYm90aCBzb3VyY2UgYW5kIGJpbmFyeSBSUE0ga2VybmVsIHBhY2thZ2VzJworCUBlY2hvICcgIGJpbnJwbS1wa2cgICAgICAgICAgLSBCdWlsZCBvbmx5IHRoZSBiaW5hcnkga2VybmVsIFJQTSBwYWNrYWdlJworCUBlY2hvICcgIGRlYi1wa2cgICAgICAgICAgICAgLSBCdWlsZCBib3RoIHNvdXJjZSBhbmQgYmluYXJ5IGRlYiBrZXJuZWwgcGFja2FnZXMnCisJQGVjaG8gJyAgYmluZGViLXBrZyAgICAgICAgICAtIEJ1aWxkIG9ubHkgdGhlIGJpbmFyeSBrZXJuZWwgZGViIHBhY2thZ2UnCisJQGVjaG8gJyAgc25hcC1wa2cgICAgICAgICAgICAtIEJ1aWxkIG9ubHkgdGhlIGJpbmFyeSBrZXJuZWwgc25hcCBwYWNrYWdlICh3aWxsIGNvbm5lY3QgdG8gZXh0ZXJuYWwgaG9zdHMpJworCUBlY2hvICcgIHRhci1wa2cgICAgICAgICAgICAgLSBCdWlsZCB0aGUga2VybmVsIGFzIGFuIHVuY29tcHJlc3NlZCB0YXJiYWxsJworCUBlY2hvICcgIHRhcmd6LXBrZyAgICAgICAgICAgLSBCdWlsZCB0aGUga2VybmVsIGFzIGEgZ3ppcCBjb21wcmVzc2VkIHRhcmJhbGwnCisJQGVjaG8gJyAgdGFyYnoyLXBrZyAgICAgICAgICAtIEJ1aWxkIHRoZSBrZXJuZWwgYXMgYSBiemlwMiBjb21wcmVzc2VkIHRhcmJhbGwnCisJQGVjaG8gJyAgdGFyeHotcGtnICAgICAgICAgICAtIEJ1aWxkIHRoZSBrZXJuZWwgYXMgYSB4eiBjb21wcmVzc2VkIHRhcmJhbGwnCisJQGVjaG8gJyAgcGVyZi10YXItc3JjLXBrZyAgICAtIEJ1aWxkICQocGVyZi10YXIpLnRhciBzb3VyY2UgdGFyYmFsbCcKKwlAZWNobyAnICBwZXJmLXRhcmd6LXNyYy1wa2cgIC0gQnVpbGQgJChwZXJmLXRhcikudGFyLmd6IHNvdXJjZSB0YXJiYWxsJworCUBlY2hvICcgIHBlcmYtdGFyYnoyLXNyYy1wa2cgLSBCdWlsZCAkKHBlcmYtdGFyKS50YXIuYnoyIHNvdXJjZSB0YXJiYWxsJworCUBlY2hvICcgIHBlcmYtdGFyeHotc3JjLXBrZyAgLSBCdWlsZCAkKHBlcmYtdGFyKS50YXIueHogc291cmNlIHRhcmJhbGwnCisKKy5QSE9OWTogJChQSE9OWSkKZGlmZiAtLWdpdCBhL3NjcmlwdHMvYmFzaWMvTWFrZWZpbGUgYi9zY3JpcHRzL2Jhc2ljL01ha2VmaWxlCmluZGV4IDU0OGFlYjUuLjdjOWNiODAgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvYmFzaWMvTWFrZWZpbGUKKysrIGIvc2NyaXB0cy9iYXNpYy9NYWtlZmlsZQpAQCAtMSwxNiArMSw2IEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLSMjIwotIyBUaGlzIE1ha2VmaWxlIGxpc3RzIHRoZSBtb3N0IGJhc2ljIHByb2dyYW1zIHVzZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLgotIyBUaGUgcHJvZ3JhbXMgbGlzdGVkIGhlcmVpbiBhcmUgd2hhdCBhcmUgbmVlZGVkIHRvIGRvIHRoZSBiYXNpYyBzdHVmZiwKLSMgc3VjaCBhcyBmaXggZmlsZSBkZXBlbmRlbmNpZXMuCi0jIFRoaXMgaW5pdGlhbCBzdGVwIGlzIG5lZWRlZCB0byBhdm9pZCBmaWxlcyB0byBiZSByZWNvbXBpbGVkCi0jIHdoZW4ga2VybmVsIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyAod2hpY2ggaXMgd2hhdCBoYXBwZW5zIHdoZW4KLSMgLmNvbmZpZyBpcyBpbmNsdWRlZCBieSBtYWluIE1ha2VmaWxlLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgZml4ZGVwOiAJIFVzZWQgdG8gZ2VuZXJhdGUgZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBkdXJpbmcgYnVpbGQgcHJvY2VzcworIworIyBmaXhkZXA6IHVzZWQgdG8gZ2VuZXJhdGUgZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBkdXJpbmcgYnVpbGQgcHJvY2VzcwogCiBob3N0cHJvZ3MteQk6PSBmaXhkZXAKIGFsd2F5cwkJOj0gJChob3N0cHJvZ3MteSkKLQotIyBmaXhkZXAgaXMgbmVlZGVkIHRvIGNvbXBpbGUgb3RoZXIgaG9zdCBwcm9ncmFtcwotJChhZGRwcmVmaXggJChvYmopLywkKGZpbHRlci1vdXQgZml4ZGVwLCQoYWx3YXlzKSkpOiAkKG9iaikvZml4ZGVwCmRpZmYgLS1naXQgYS9zY3JpcHRzL2NoZWNrcGF0Y2gucGwgYi9zY3JpcHRzL2NoZWNrcGF0Y2gucGwKaW5kZXggOTNhN2VkZi4uNmZjYzY2YSAxMDA3NTUKLS0tIGEvc2NyaXB0cy9jaGVja3BhdGNoLnBsCisrKyBiL3NjcmlwdHMvY2hlY2twYXRjaC5wbApAQCAtNjIsNiArNjIsOCBAQAogbXkgJHR5cGVkZWZzZmlsZSA9ICIiOwogbXkgJGNvbG9yID0gImF1dG8iOwogbXkgJGFsbG93X2M5OV9jb21tZW50cyA9IDE7ICMgQ2FuIGJlIG92ZXJyaWRkZW4gYnkgLS1pZ25vcmUgQzk5X0NPTU1FTlRfVE9MRVJBTkNFCisjIGdpdCBvdXRwdXQgcGFyc2luZyBuZWVkcyBVUyBFbmdsaXNoIG91dHB1dCwgc28gZmlyc3Qgc2V0IGJhY2t0aWNrIGNoaWxkIHByb2Nlc3MgTEFOR1VBR0UKK215ICRnaXRfY29tbWFuZCA9J2V4cG9ydCBMQU5HVUFHRT1lbl9VUy5VVEYtODsgZ2l0JzsKIAogc3ViIGhlbHAgewogCW15ICgkZXhpdGNvZGUpID0gQF87CkBAIC05MDQsNyArOTA2LDcgQEAKIAkkY2FtZWxjYXNlX3NlZWRlZCA9IDE7CiAKIAlpZiAoLWUgIi5naXQiKSB7Ci0JCW15ICRnaXRfbGFzdF9pbmNsdWRlX2NvbW1pdCA9IGBnaXQgbG9nIC0tbm8tbWVyZ2VzIC0tcHJldHR5PWZvcm1hdDoiJWglbiIgLTEgLS0gaW5jbHVkZWA7CisJCW15ICRnaXRfbGFzdF9pbmNsdWRlX2NvbW1pdCA9IGAke2dpdF9jb21tYW5kfSBsb2cgLS1uby1tZXJnZXMgLS1wcmV0dHk9Zm9ybWF0OiIlaCVuIiAtMSAtLSBpbmNsdWRlYDsKIAkJY2hvbXAgJGdpdF9sYXN0X2luY2x1ZGVfY29tbWl0OwogCQkkY2FtZWxjYXNlX2NhY2hlID0gIi5jaGVja3BhdGNoLWNhbWVsY2FzZS5naXQuJGdpdF9sYXN0X2luY2x1ZGVfY29tbWl0IjsKIAl9IGVsc2UgewpAQCAtOTMyLDcgKzkzNCw3IEBACiAJfQogCiAJaWYgKC1lICIuZ2l0IikgewotCQkkZmlsZXMgPSBgZ2l0IGxzLWZpbGVzICJpbmNsdWRlLyouaCJgOworCQkkZmlsZXMgPSBgJHtnaXRfY29tbWFuZH0gbHMtZmlsZXMgImluY2x1ZGUvKi5oImA7CiAJCUBpbmNsdWRlX2ZpbGVzID0gc3BsaXQoJ1xuJywgJGZpbGVzKTsKIAl9CiAKQEAgLTk1NiwxMyArOTU4LDEzIEBACiAKIAlyZXR1cm4gKCRpZCwgJGRlc2MpIGlmICgod2hpY2goImdpdCIpIGVxICIiKSB8fCAhKC1lICIuZ2l0IikpOwogCi0JbXkgJG91dHB1dCA9IGBnaXQgbG9nIC0tbm8tY29sb3IgLS1mb3JtYXQ9JyVIICVzJyAtMSAkY29tbWl0IDI+JjFgOworCW15ICRvdXRwdXQgPSBgJHtnaXRfY29tbWFuZH0gbG9nIC0tbm8tY29sb3IgLS1mb3JtYXQ9JyVIICVzJyAtMSAkY29tbWl0IDI+JjFgOwogCSRvdXRwdXQgPX4gcy9eXHMqLy9nbTsKIAlteSBAbGluZXMgPSBzcGxpdCgiXG4iLCAkb3V0cHV0KTsKIAogCXJldHVybiAoJGlkLCAkZGVzYykgaWYgKCQjbGluZXMgPCAwKTsKIAotCWlmICgkbGluZXNbMF0gPX4gL15lcnJvcjogc2hvcnQgU0hBMSAkY29tbWl0IGlzIGFtYmlndW91c1wuLykgeworCWlmICgkbGluZXNbMF0gPX4gL15lcnJvcjogc2hvcnQgU0hBMSAkY29tbWl0IGlzIGFtYmlndW91cy8pIHsKICMgTWF5YmUgb25lIGRheSBjb252ZXJ0IHRoaXMgYmxvY2sgb2YgYmFzaCBpbnRvIHNvbWV0aGluZyB0aGF0IHJldHVybnMKICMgYWxsIG1hdGNoaW5nIGNvbW1pdCBpZHMsIGJ1dCBpdCdzIHZlcnkgc2xvdy4uLgogIwpAQCAtMTAwNiw3ICsxMDA4LDcgQEAKIAkJfSBlbHNlIHsKIAkJCSRnaXRfcmFuZ2UgPSAiLTEgJGNvbW1pdF9leHByIjsKIAkJfQotCQlteSAkbGluZXMgPSBgZ2l0IGxvZyAtLW5vLWNvbG9yIC0tbm8tbWVyZ2VzIC0tcHJldHR5PWZvcm1hdDonJUggJXMnICRnaXRfcmFuZ2VgOworCQlteSAkbGluZXMgPSBgJHtnaXRfY29tbWFuZH0gbG9nIC0tbm8tY29sb3IgLS1uby1tZXJnZXMgLS1wcmV0dHk9Zm9ybWF0OiclSCAlcycgJGdpdF9yYW5nZWA7CiAJCWZvcmVhY2ggbXkgJGxpbmUgKHNwbGl0KC9cbi8sICRsaW5lcykpIHsKIAkJCSRsaW5lID1+IC9eKFswLTlhLWZBLUZdezQwLDQwfSkgKC4qKSQvOwogCQkJbmV4dCBpZiAoIWRlZmluZWQoJDEpIHx8ICFkZWZpbmVkKCQyKSk7CkBAIC0yNzI1LDggKzI3MjcsMTAgQEAKIAkJICAgICgkbGluZSA9fiAvXlxzKig/OldBUk5JTkc6fEJVRzopLyB8fAogCQkgICAgICRsaW5lID1+IC9eXHMqXFtccypcZCtcLlxkezYsNn1ccypcXS8gfHwKIAkJCQkJIyB0aW1lc3RhbXAKLQkJICAgICAkbGluZSA9fiAvXlxzKlxbXDxbMC05YS1mQS1GXXs4LH1cPlxdLykpIHsKLQkJCQkJIyBzdGFjayBkdW1wIGFkZHJlc3MKKwkJICAgICAkbGluZSA9fiAvXlxzKlxbXDxbMC05YS1mQS1GXXs4LH1cPlxdLykgfHwKKwkJICAgICAkbGluZSA9fiAvXig/OlxzK1x3KzpccytbMC05YS1mQS1GXSspezMsM30vIHx8CisJCSAgICAgJGxpbmUgPX4gL15ccypcI1xkK1xzKlxbWzAtOWEtZkEtRl0rXF1ccypcdysgYXQgWzAtOWEtZkEtRl0rLykgeworCQkJCQkjIHN0YWNrIGR1bXAgYWRkcmVzcyBzdHlsZXMKIAkJCSRjb21taXRfbG9nX3Bvc3NpYmxlX3N0YWNrX2R1bXAgPSAxOwogCQl9CiAKQEAgLTI4OTgsNiArMjkwMiwxNyBAQAogCQkJfQogCQl9CiAKKyMgY2hlY2sgZm9yIGludmFsaWQgY29tbWl0IGlkCisJCWlmICgkaW5fY29tbWl0X2xvZyAmJiAkbGluZSA9fiAvKF5maXhlczp8XGJjb21taXQpXHMrKFswLTlhLWZdezYsNDB9KVxiL2kpIHsKKwkJCW15ICRpZDsKKwkJCW15ICRkZXNjcmlwdGlvbjsKKwkJCSgkaWQsICRkZXNjcmlwdGlvbikgPSBnaXRfY29tbWl0X2luZm8oJDIsIHVuZGVmLCB1bmRlZik7CisJCQlpZiAoIWRlZmluZWQoJGlkKSkgeworCQkJCVdBUk4oIlVOS05PV05fQ09NTUlUX0lEIiwKKwkJCQkgICAgICJVbmtub3duIGNvbW1pdCBpZCAnJDInLCBtYXliZSByZWJhc2VkIG9yIG5vdCBwdWxsZWQ/XG4iIC4gJGhlcmVjdXJyKTsKKwkJCX0KKwkJfQorCiAjIGlnbm9yZSBub24taHVuayBsaW5lcyBhbmQgbGluZXMgYmVpbmcgcmVtb3ZlZAogCQluZXh0IGlmICghJGh1bmtfbGluZSB8fCAkbGluZSA9fiAvXi0vKTsKIApAQCAtMzA2OSwyMSArMzA4NCwyMSBAQAogIyBjaGVjayBTUERYIGNvbW1lbnQgc3R5bGUgZm9yIC5bY2hzU10gZmlsZXMKIAkJCQlpZiAoJHJlYWxmaWxlID1+IC9cLltjaHNTXSQvICYmCiAJCQkJICAgICRyYXdsaW5lID1+IC9TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjovICYmCi0JCQkJICAgICRyYXdsaW5lICF+IC9eXCtccypcUSRjb21tZW50XEVccyovKSB7CisJCQkJICAgICRyYXdsaW5lICF+IG1AXlwrXHMqXFEkY29tbWVudFxFXHMqQCkgewogCQkJCQlXQVJOKCJTUERYX0xJQ0VOU0VfVEFHIiwKIAkJCQkJICAgICAiSW1wcm9wZXIgU1BEWCBjb21tZW50IHN0eWxlIGZvciAnJHJlYWxmaWxlJywgcGxlYXNlIHVzZSAnJGNvbW1lbnQnIGluc3RlYWRcbiIgLiAkaGVyZWN1cnIpOwogCQkJCX0KIAogCQkJCWlmICgkY29tbWVudCAhfiAvXiQvICYmCi0JCQkJICAgICRyYXdsaW5lICF+IC9eXCtcUSRjb21tZW50XEUgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IC8pIHsKLQkJCQkJIFdBUk4oIlNQRFhfTElDRU5TRV9UQUciLAotCQkJCQkgICAgICAiTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxpbmUgJGNoZWNrbGljZW5zZWxpbmVcbiIgLiAkaGVyZWN1cnIpOworCQkJCSAgICAkcmF3bGluZSAhfiBtQF5cK1xRJGNvbW1lbnRcRSBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQCkgeworCQkJCQlXQVJOKCJTUERYX0xJQ0VOU0VfVEFHIiwKKwkJCQkJICAgICAiTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxpbmUgJGNoZWNrbGljZW5zZWxpbmVcbiIgLiAkaGVyZWN1cnIpOwogCQkJCX0gZWxzaWYgKCRyYXdsaW5lID1+IC8oU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IC4qKS8pIHsKLQkJCQkJIG15ICRzcGR4X2xpY2Vuc2UgPSAkMTsKLQkJCQkJIGlmICghaXNfU1BEWF9MaWNlbnNlX3ZhbGlkKCRzcGR4X2xpY2Vuc2UpKSB7Ci0JCQkJCQkgIFdBUk4oIlNQRFhfTElDRU5TRV9UQUciLAotCQkJCQkJICAgICAgICInJHNwZHhfbGljZW5zZScgaXMgbm90IHN1cHBvcnRlZCBpbiBMSUNFTlNFUy8uLi5cbiIgLiAkaGVyZWN1cnIpOwotCQkJCQkgfQorCQkJCQlteSAkc3BkeF9saWNlbnNlID0gJDE7CisJCQkJCWlmICghaXNfU1BEWF9MaWNlbnNlX3ZhbGlkKCRzcGR4X2xpY2Vuc2UpKSB7CisJCQkJCQlXQVJOKCJTUERYX0xJQ0VOU0VfVEFHIiwKKwkJCQkJCSAgICAgIickc3BkeF9saWNlbnNlJyBpcyBub3Qgc3VwcG9ydGVkIGluIExJQ0VOU0VTLy4uLlxuIiAuICRoZXJlY3Vycik7CisJCQkJCX0KIAkJCQl9CiAJCQl9CiAJCX0KQEAgLTQ2NjAsNyArNDY3NSw3IEBACiAKICMgY2xvc2luZyBicmFjZSBzaG91bGQgaGF2ZSBhIHNwYWNlIGZvbGxvd2luZyBpdCB3aGVuIGl0IGhhcyBhbnl0aGluZwogIyBvbiB0aGUgbGluZQotCQlpZiAoJGxpbmUgPX4gL30oPyEoPzosfDt8XCkpKVxTLykgeworCQlpZiAoJGxpbmUgPX4gL30oPyEoPzosfDt8XCl8XH0pKVxTLykgewogCQkJaWYgKEVSUk9SKCJTUEFDSU5HIiwKIAkJCQkgICJzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0IGNsb3NlIGJyYWNlICd9J1xuIiAuICRoZXJlY3VycikgJiYKIAkJCSAgICAkZml4KSB7CkBAIC01MTkxLDcgKzUyMDYsNyBAQAogCQkJICAgICAgICBuZXh0IGlmICgkYXJnID1+IC9cLlwuXC4vKTsKIAkJCSAgICAgICAgbmV4dCBpZiAoJGFyZyA9fiAvXnR5cGUkL2kpOwogCQkJCW15ICR0bXBfc3RtdCA9ICRkZWZpbmVfc3RtdDsKLQkJCQkkdG1wX3N0bXQgPX4gcy9cYih0eXBlb2Z8X190eXBlb2ZfX3xfX2J1aWx0aW5cdyt8dHlwZWNoZWNrXHMqXChccyokVHlwZVxzKix8XCMrKVxzKlwoKlxzKiRhcmdccypcKSpcYi8vZzsKKwkJCQkkdG1wX3N0bXQgPX4gcy9cYihzaXplb2Z8dHlwZW9mfF9fdHlwZW9mX198X19idWlsdGluXHcrfHR5cGVjaGVja1xzKlwoXHMqJFR5cGVccyosfFwjKylccypcKCpccyokYXJnXHMqXCkqXGIvL2c7CiAJCQkJJHRtcF9zdG10ID1+IHMvXCMrXHMqJGFyZ1xiLy9nOwogCQkJCSR0bXBfc3RtdCA9fiBzL1xiJGFyZ1xzKlwjXCMvL2c7CiAJCQkJbXkgJHVzZV9jbnQgPSAoKSA9ICR0bXBfc3RtdCA9fiAvXGIkYXJnXGIvZzsKQEAgLTU4NzMsNiArNTg4OCwxOCBAQAogCQkJICAgICAiX19hbGlnbmVkKHNpemUpIGlzIHByZWZlcnJlZCBvdmVyIF9fYXR0cmlidXRlX18oKGFsaWduZWQoc2l6ZSkpKVxuIiAuICRoZXJlY3Vycik7CiAJCX0KIAorIyBDaGVjayBmb3IgX19hdHRyaWJ1dGVfXyBzZWN0aW9uLCBwcmVmZXIgX19zZWN0aW9uCisJCWlmICgkcmVhbGZpbGUgIX4gbUBcYmluY2x1ZGUvdWFwaS9AICYmCisJCSAgICAkbGluZSA9fiAvXGJfX2F0dHJpYnV0ZV9fXHMqXChccypcKC4qXypzZWN0aW9uXypccypcKFxzKigiW14iXSoiKS8pIHsKKwkJCW15ICRvbGQgPSBzdWJzdHIoJHJhd2xpbmUsICQtWzFdLCAkK1sxXSAtICQtWzFdKTsKKwkJCW15ICRuZXcgPSBzdWJzdHIoJG9sZCwgMSwgLTEpOworCQkJaWYgKFdBUk4oIlBSRUZFUl9TRUNUSU9OIiwKKwkJCQkgIl9fc2VjdGlvbigkbmV3KSBpcyBwcmVmZXJyZWQgb3ZlciBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCRvbGQpKSlcbiIgLiAkaGVyZWN1cnIpICYmCisJCQkgICAgJGZpeCkgeworCQkJCSRmaXhlZFskZml4bGluZW5yXSA9fiBzL1xiX19hdHRyaWJ1dGVfX1xzKlwoXHMqXChccypfKnNlY3Rpb25fKlxzKlwoXHMqXFEkb2xkXEVccypcKVxzKlwpXHMqXCkvX19zZWN0aW9uKCRuZXcpLzsKKwkJCX0KKwkJfQorCiAjIENoZWNrIGZvciBfX2F0dHJpYnV0ZV9fIGZvcm1hdChwcmludGYsIHByZWZlciBfX3ByaW50ZgogCQlpZiAoJHJlYWxmaWxlICF+IG1AXGJpbmNsdWRlL3VhcGkvQCAmJgogCQkgICAgJGxpbmUgPX4gL1xiX19hdHRyaWJ1dGVfX1xzKlwoXHMqXChccypmb3JtYXRccypcKFxzKnByaW50Zi8pIHsKQEAgLTY0ODAsNiArNjUwNywxMiBAQAogCQkJICAgICAiVXNpbmcgJDEgc2hvdWxkIGdlbmVyYWxseSBoYXZlIHBhcmVudGhlc2VzIGFyb3VuZCB0aGUgY29tcGFyaXNvblxuIiAuICRoZXJlY3Vycik7CiAJCX0KIAorIyBuZXN0ZWQgbGlrZWx5L3VubGlrZWx5IGNhbGxzCisJCWlmICgkbGluZSA9fiAvXGIoPzooPzp1bik/bGlrZWx5KVxzKlwoXHMqIT9ccyooSVNfRVJSKD86X09SX05VTEx8X1ZBTFVFKT98V0FSTikvKSB7CisJCQlXQVJOKCJMSUtFTFlfTUlTVVNFIiwKKwkJCSAgICAgIm5lc3RlZCAodW4pP2xpa2VseSgpIGNhbGxzLCAkMSBhbHJlYWR5IHVzZXMgdW5saWtlbHkoKSBpbnRlcm5hbGx5XG4iIC4gJGhlcmVjdXJyKTsKKwkJfQorCiAjIHdoaW5lIG1pZ2h0bHkgYWJvdXQgaW5fYXRvbWljCiAJCWlmICgkbGluZSA9fiAvXGJpbl9hdG9taWNccypcKC8pIHsKIAkJCWlmICgkcmVhbGZpbGUgPX4gbUBeZHJpdmVycy9AKSB7CmRpZmYgLS1naXQgYS9zY3JpcHRzL2NvY2NpbmVsbGUvbWlzYy9hZGRfbmFtZXNwYWNlLmNvY2NpIGIvc2NyaXB0cy9jb2NjaW5lbGxlL21pc2MvYWRkX25hbWVzcGFjZS5jb2NjaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODMyYmI2Ci0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy9jb2NjaW5lbGxlL21pc2MvYWRkX25hbWVzcGFjZS5jb2NjaQpAQCAtMCwwICsxLDIzIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvLworLy8vIEFkZHMgbWlzc2luZyBNT0RVTEVfSU1QT1JUX05TIHN0YXRlbWVudHMgdG8gc291cmNlIGZpbGVzCisvLy8KKy8vLyBUaGlzIHNjcmlwdCBpcyB1c3VhbGx5IGNhbGxlZCBmcm9tIHNjcmlwdHMvbnNkZXBzIHdpdGggLUQgbnM9PG5hbWVzcGFjZT4gdG8KKy8vLyBhZGQgYSBtaXNzaW5nIG5hbWVzcGFjZSB0YWcgdG8gYSBtb2R1bGUgc291cmNlIGZpbGUuCisvLy8KKworQGhhc19uc19pbXBvcnRACitkZWNsYXJlciBuYW1lIE1PRFVMRV9JTVBPUlRfTlM7CitpZGVudGlmaWVyIHZpcnR1YWwubnM7CitAQAorTU9EVUxFX0lNUE9SVF9OUyhucyk7CisKKy8vIEFkZCBtaXNzaW5nIGltcG9ydHMsIGJ1dCBvbmx5IGFkamFjZW50IHRvIGEgTU9EVUxFX0xJQ0VOU0Ugc3RhdGVtZW50LgorLy8gVGhhdCBlbnN1cmVzIHdlIGFyZSBhZGRpbmcgaXQgb25seSB0byB0aGUgbWFpbiBtb2R1bGUgc291cmNlIGZpbGUuCitAZG9faW1wb3J0IGRlcGVuZHMgb24gIWhhc19uc19pbXBvcnRACitkZWNsYXJlciBuYW1lIE1PRFVMRV9MSUNFTlNFOworZXhwcmVzc2lvbiBsaWNlbnNlOworaWRlbnRpZmllciB2aXJ0dWFsLm5zOworQEAKK01PRFVMRV9MSUNFTlNFKGxpY2Vuc2UpOworKyBNT0RVTEVfSU1QT1JUX05TKG5zKTsKZGlmZiAtLWdpdCBhL3NjcmlwdHMvZXhwb3J0X3JlcG9ydC5wbCBiL3NjcmlwdHMvZXhwb3J0X3JlcG9ydC5wbAppbmRleCA3ZDMwMzBkLi41NDgzMzBlIDEwMDc1NQotLS0gYS9zY3JpcHRzL2V4cG9ydF9yZXBvcnQucGwKKysrIGIvc2NyaXB0cy9leHBvcnRfcmVwb3J0LnBsCkBAIC05NCw3ICs5NCw3IEBACiAjCiB3aGlsZSAoIDwkbW9kdWxlX3N5bXZlcnM+ICkgewogCWNob21wOwotCW15ICh1bmRlZiwgJHN5bWJvbCwgJG1vZHVsZSwgJGdwbCkgPSBzcGxpdDsKKwlteSAodW5kZWYsICRzeW1ib2wsICRuYW1lc3BhY2UsICRtb2R1bGUsICRncGwpID0gc3BsaXQoJ1x0Jyk7CiAJJFNZTUJPTCB7ICRzeW1ib2wgfSA9ICBbICRtb2R1bGUgLCAiMCIgLCAkc3ltYm9sLCAkZ3BsXTsKIH0KIGNsb3NlKCRtb2R1bGVfc3ltdmVycyk7CmRpZmYgLS1naXQgYS9zY3JpcHRzL2djYy1wbHVnaW5zL3JhbmRvbWl6ZV9sYXlvdXRfcGx1Z2luLmMgYi9zY3JpcHRzL2djYy1wbHVnaW5zL3JhbmRvbWl6ZV9sYXlvdXRfcGx1Z2luLmMKaW5kZXggNmQ1YmJkMzEuLmJkMjllNGU3IDEwMDY0NAotLS0gYS9zY3JpcHRzL2djYy1wbHVnaW5zL3JhbmRvbWl6ZV9sYXlvdXRfcGx1Z2luLmMKKysrIGIvc2NyaXB0cy9nY2MtcGx1Z2lucy9yYW5kb21pemVfbGF5b3V0X3BsdWdpbi5jCkBAIC00NDMsMTMgKzQ0MywxMyBAQCBzdGF0aWMgaW50IGlzX3B1cmVfb3BzX3N0cnVjdChjb25zdF90cmVlIG5vZGUpCiAJCWlmIChub2RlID09IGZpZWxkdHlwZSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmICghaXNfZnB0cihmaWVsZHR5cGUpKQotCQkJcmV0dXJuIDA7Ci0KLQkJaWYgKGNvZGUgIT0gUkVDT1JEX1RZUEUgJiYgY29kZSAhPSBVTklPTl9UWVBFKQorCQlpZiAoY29kZSA9PSBSRUNPUkRfVFlQRSB8fCBjb2RlID09IFVOSU9OX1RZUEUpIHsKKwkJCWlmICghaXNfcHVyZV9vcHNfc3RydWN0KGZpZWxkdHlwZSkpCisJCQkJcmV0dXJuIDA7CiAJCQljb250aW51ZTsKKwkJfQogCi0JCWlmICghaXNfcHVyZV9vcHNfc3RydWN0KGZpZWxkdHlwZSkpCisJCWlmICghaXNfZnB0cihmaWVsZHR5cGUpKQogCQkJcmV0dXJuIDA7CiAJfQogCmRpZmYgLS1naXQgYS9zY3JpcHRzL2dkYi9saW51eC9zeW1ib2xzLnB5IGIvc2NyaXB0cy9nZGIvbGludXgvc3ltYm9scy5weQppbmRleCAyZjViOTVmLi4zNGU0MGU5IDEwMDY0NAotLS0gYS9zY3JpcHRzL2dkYi9saW51eC9zeW1ib2xzLnB5CisrKyBiL3NjcmlwdHMvZ2RiL2xpbnV4L3N5bWJvbHMucHkKQEAgLTc3LDEyICs3NywxMiBAQAogICAgICAgICAgICAgZ2RiLndyaXRlKCJzY2FubmluZyBmb3IgbW9kdWxlcyBpbiB7MH1cbiIuZm9ybWF0KHBhdGgpKQogICAgICAgICAgICAgZm9yIHJvb3QsIGRpcnMsIGZpbGVzIGluIG9zLndhbGsocGF0aCk6CiAgICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gZmlsZXM6Ci0gICAgICAgICAgICAgICAgICAgIGlmIG5hbWUuZW5kc3dpdGgoIi5rbyIpOgorICAgICAgICAgICAgICAgICAgICBpZiBuYW1lLmVuZHN3aXRoKCIua28iKSBvciBuYW1lLmVuZHN3aXRoKCIua28uZGVidWciKToKICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubW9kdWxlX2ZpbGVzLmFwcGVuZChyb290ICsgIi8iICsgbmFtZSkKICAgICAgICAgc2VsZi5tb2R1bGVfZmlsZXNfdXBkYXRlZCA9IFRydWUKIAogICAgIGRlZiBfZ2V0X21vZHVsZV9maWxlKHNlbGYsIG1vZHVsZV9uYW1lKToKLSAgICAgICAgbW9kdWxlX3BhdHRlcm4gPSAiLiovezB9XC5rbyQiLmZvcm1hdCgKKyAgICAgICAgbW9kdWxlX3BhdHRlcm4gPSAiLiovezB9XC5rbyg/Oi5kZWJ1Zyk/JCIuZm9ybWF0KAogICAgICAgICAgICAgbW9kdWxlX25hbWUucmVwbGFjZSgiXyIsIHIiW19cLV0iKSkKICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5tb2R1bGVfZmlsZXM6CiAgICAgICAgICAgICBpZiByZS5tYXRjaChtb2R1bGVfcGF0dGVybiwgbmFtZSkgYW5kIG9zLnBhdGguZXhpc3RzKG5hbWUpOgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nZW5rc3ltcy9NYWtlZmlsZSBiL3NjcmlwdHMvZ2Vua3N5bXMvTWFrZWZpbGUKaW5kZXggNjZjMzE0Yi4uNzg2MjlmNSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9nZW5rc3ltcy9NYWtlZmlsZQorKysgYi9zY3JpcHRzL2dlbmtzeW1zL01ha2VmaWxlCkBAIC0xMiwyMiArMTIsMTUgQEAKICMKICMgSnVzdCBpbiBjYXNlLCBydW4gIiQoWUFDQykgLS12ZXJzaW9uIiB3aXRob3V0IHN1cHByZXNzaW5nIHN0ZGVycgogIyBzbyB0aGF0ICdiaXNvbjogbm90IGZvdW5kJyB3aWxsIGJlIGRpc3BsYXllZCBpZiBpdCBpcyBtaXNzaW5nLgotaWZlcSAoJChmaW5kc3RyaW5nIDEsJChLQlVJTERfRU5BQkxFX0VYVFJBX0dDQ19DSEVDS1MpKSwpCitpZmVxICgkKGZpbmRzdHJpbmcgMSwkKEtCVUlMRF9FWFRSQV9XQVJOKSksKQogCiBxdWlldF9jbWRfYmlzb25fbm9fd2FybiA9ICQocXVpZXRfY21kX2Jpc29uKQogICAgICAgY21kX2Jpc29uX25vX3dhcm4gPSAkKFlBQ0MpIC0tdmVyc2lvbiA+L2Rldi9udWxsOyBcCiAJCQkgICQoY21kX2Jpc29uKSAyPi9kZXYvbnVsbAogCi0kKG9iaikvcGFyc2UudGFiLmM6ICQoc3JjKS9wYXJzZS55IEZPUkNFCiskKG9iaikvcGFycyUudGFiLmMgJChvYmopL3BhcnMlLnRhYi5oOiAkKHNyYykvcGFycyUueSBGT1JDRQogCSQoY2FsbCBpZl9jaGFuZ2VkLGJpc29uX25vX3dhcm4pCiAKLXF1aWV0X2NtZF9iaXNvbl9oX25vX3dhcm4gPSAkKHF1aWV0X2NtZF9iaXNvbl9oKQotICAgICAgY21kX2Jpc29uX2hfbm9fd2FybiA9ICQoWUFDQykgLS12ZXJzaW9uID4vZGV2L251bGw7IFwKLQkJCSAgICAkKGNtZF9iaXNvbl9oKSAyPi9kZXYvbnVsbAotCi0kKG9iaikvcGFyc2UudGFiLmg6ICQoc3JjKS9wYXJzZS55IEZPUkNFCi0JJChjYWxsIGlmX2NoYW5nZWQsYmlzb25faF9ub193YXJuKQotCiBlbmRpZgogCiAjIC1JIG5lZWRlZCBmb3IgZ2VuZXJhdGVkIEMgc291cmNlIChzaGlwcGVkIHNvdXJjZSkKZGlmZiAtLWdpdCBhL3NjcmlwdHMvZ2Vua3N5bXMva2V5d29yZHMuYyBiL3NjcmlwdHMvZ2Vua3N5bXMva2V5d29yZHMuYwppbmRleCBjNTg2ZDMyLi43YTg1YzRlIDEwMDY0NAotLS0gYS9zY3JpcHRzL2dlbmtzeW1zL2tleXdvcmRzLmMKKysrIGIvc2NyaXB0cy9nZW5rc3ltcy9rZXl3b3Jkcy5jCkBAIC0zLDExICszLDcgQEAgc3RhdGljIHN0cnVjdCByZXN3b3JkIHsKIAljb25zdCBjaGFyICpuYW1lOwogCWludCB0b2tlbjsKIH0ga2V5d29yZHNbXSA9IHsKLQl7ICJFWFBPUlRfU1lNQk9MIiwgRVhQT1JUX1NZTUJPTF9LRVlXIH0sCi0JeyAiRVhQT1JUX1NZTUJPTF9HUEwiLCBFWFBPUlRfU1lNQk9MX0tFWVcgfSwKLQl7ICJFWFBPUlRfU1lNQk9MX0dQTF9GVVRVUkUiLCBFWFBPUlRfU1lNQk9MX0tFWVcgfSwKLQl7ICJFWFBPUlRfVU5VU0VEX1NZTUJPTCIsIEVYUE9SVF9TWU1CT0xfS0VZVyB9LAotCXsgIkVYUE9SVF9VTlVTRURfU1lNQk9MX0dQTCIsIEVYUE9SVF9TWU1CT0xfS0VZVyB9LAorCXsgIl9fR0VOS1NZTVNfRVhQT1JUX1NZTUJPTCIsIEVYUE9SVF9TWU1CT0xfS0VZVyB9LAogCXsgIl9fYXNtIiwgQVNNX0tFWVcgfSwKIAl7ICJfX2FzbV9fIiwgQVNNX0tFWVcgfSwKIAl7ICJfX2F0dHJpYnV0ZSIsIEFUVFJJQlVURV9LRVlXIH0sCmRpZmYgLS1naXQgYS9zY3JpcHRzL2dlbmtzeW1zL2xleC5sIGIvc2NyaXB0cy9nZW5rc3ltcy9sZXgubAppbmRleCBkMjljNzc0Li5lMjY1YzVkIDEwMDY0NAotLS0gYS9zY3JpcHRzL2dlbmtzeW1zL2xleC5sCisrKyBiL3NjcmlwdHMvZ2Vua3N5bXMvbGV4LmwKQEAgLTEsMjUgKzEsMTMgQEAKLS8qIExleGljYWwgYW5hbHlzaXMgZm9yIGdlbmtzeW1zLgotICAgQ29weXJpZ2h0IDE5OTYsIDE5OTcgTGludXggSW50ZXJuYXRpb25hbC4KLQotICAgTmV3IGltcGxlbWVudGF0aW9uIGNvbnRyaWJ1dGVkIGJ5IFJpY2hhcmQgSGVuZGVyc29uIDxydGhAdGFtdS5lZHU+Ci0gICBCYXNlZCBvbiBvcmlnaW5hbCB3b3JrIGJ5IEJqb3JuIEVrd2FsbCA8Ymowcm5AYmxveC5zZT4KLQotICAgVGFrZW4gZnJvbSBMaW51eCBtb2R1dGlscyAyLjQuMjIuCi0KLSAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Ci0gICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKLSAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIKLSAgIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotICAgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICovCi0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCisvKgorICogTGV4aWNhbCBhbmFseXNpcyBmb3IgZ2Vua3N5bXMuCisgKiBDb3B5cmlnaHQgMTk5NiwgMTk5NyBMaW51eCBJbnRlcm5hdGlvbmFsLgorICoKKyAqIE5ldyBpbXBsZW1lbnRhdGlvbiBjb250cmlidXRlZCBieSBSaWNoYXJkIEhlbmRlcnNvbiA8cnRoQHRhbXUuZWR1PgorICogQmFzZWQgb24gb3JpZ2luYWwgd29yayBieSBCam9ybiBFa3dhbGwgPGJqMHJuQGJsb3guc2U+CisgKgorICogVGFrZW4gZnJvbSBMaW51eCBtb2R1dGlscyAyLjQuMjIuCisgKi8KIAogJXsKIApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nZW5rc3ltcy9wYXJzZS55IGIvc2NyaXB0cy9nZW5rc3ltcy9wYXJzZS55CmluZGV4IDFlYmNmNTIuLmUyMmI0MjI0IDEwMDY0NAotLS0gYS9zY3JpcHRzL2dlbmtzeW1zL3BhcnNlLnkKKysrIGIvc2NyaXB0cy9nZW5rc3ltcy9wYXJzZS55CkBAIC0xLDI1ICsxLDEzIEBACi0vKiBDIGdsb2JhbCBkZWNsYXJhdGlvbiBwYXJzZXIgZm9yIGdlbmtzeW1zLgotICAgQ29weXJpZ2h0IDE5OTYsIDE5OTcgTGludXggSW50ZXJuYXRpb25hbC4KLQotICAgTmV3IGltcGxlbWVudGF0aW9uIGNvbnRyaWJ1dGVkIGJ5IFJpY2hhcmQgSGVuZGVyc29uIDxydGhAdGFtdS5lZHU+Ci0gICBCYXNlZCBvbiBvcmlnaW5hbCB3b3JrIGJ5IEJqb3JuIEVrd2FsbCA8Ymowcm5AYmxveC5zZT4KLQotICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIExpbnV4IG1vZHV0aWxzLgotCi0gICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAotICAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCi0gICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyCi0gICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0gICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSAgIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAqLwotCisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlciAqLworLyoKKyAqIEMgZ2xvYmFsIGRlY2xhcmF0aW9uIHBhcnNlciBmb3IgZ2Vua3N5bXMuCisgKiBDb3B5cmlnaHQgMTk5NiwgMTk5NyBMaW51eCBJbnRlcm5hdGlvbmFsLgorICoKKyAqIE5ldyBpbXBsZW1lbnRhdGlvbiBjb250cmlidXRlZCBieSBSaWNoYXJkIEhlbmRlcnNvbiA8cnRoQHRhbXUuZWR1PgorICogQmFzZWQgb24gb3JpZ2luYWwgd29yayBieSBCam9ybiBFa3dhbGwgPGJqMHJuQGJsb3guc2U+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIExpbnV4IG1vZHV0aWxzLgorICovCiAKICV7CiAKZGlmZiAtLWdpdCBhL3NjcmlwdHMvaGVhZGVyc19pbnN0YWxsLnNoIGIvc2NyaXB0cy9oZWFkZXJzX2luc3RhbGwuc2gKaW5kZXggYmJhZjI5My4uYTA3NjY4YSAxMDA3NTUKLS0tIGEvc2NyaXB0cy9oZWFkZXJzX2luc3RhbGwuc2gKKysrIGIvc2NyaXB0cy9oZWFkZXJzX2luc3RhbGwuc2gKQEAgLTQxLDUgKzQxLDc3IEBACiBzY3JpcHRzL3VuaWZkZWYgLVVfX0tFUk5FTF9fIC1EX19FWFBPUlRFRF9IRUFERVJTX18gJFRNUEZJTEUgPiAkT1VURklMRQogWyAkPyAtZ3QgMSBdICYmIGV4aXQgMQogCisjIFJlbW92ZSAvKiAuLi4gKi8gc3R5bGUgY29tbWVudHMsIGFuZCBmaW5kIENPTkZJR18gcmVmZXJlbmNlcyBpbiBjb2RlCitjb25maWdzPSQoc2VkIC1lICcKKzpjb21tZW50CisJczovXCpbXipdW14qXSo6Lyo6CisJczovXCpcKlwqKlwoW14vXVwpOi8qXDE6CisJdCBjb21tZW50CisJczovXCpcKi86IDoKKwl0IGNvbW1lbnQKKwkvXC9cKi8hIGIgY2hlY2sKKwlOCisJYiBjb21tZW50Cis6cHJpbnQKKwlQCisJRAorOmNoZWNrCisJczpeXChDT05GSUdfW1s6YWxudW06XV9dKlwpOlwxXG46CisJdCBwcmludAorCXM6XltbOmFsbnVtOl1fXVtbOmFsbnVtOl1fXSo6OgorCXM6XlteWzphbG51bTpdX11bXls6YWxudW06XV9dKjo6CisJdCBjaGVjaworCWQKKycgJE9VVEZJTEUpCisKKyMgVGhlIGVudHJpZXMgaW4gdGhlIGZvbGxvd2luZyBsaXN0IGFyZSBub3Qgd2FybmVkLgorIyBQbGVhc2UgZG8gbm90IGFkZCBhIG5ldyBlbnRyeS4gVGhpcyBsaXN0IGlzIG9ubHkgZm9yIGV4aXN0aW5nIG9uZXMuCisjIFRoZSBsaXN0IHdpbGwgYmUgcmVkdWNlZCBncmFkdWFsbHksIGFuZCBkZWxldGVkIGV2ZW50dWFsbHkuIChob3BlZnVsbHkpCisjCisjIFRoZSBmb3JtYXQgaXMgPGZpbGUtbmFtZT46PENPTkZJRy1vcHRpb24+IGluIGVhY2ggbGluZS4KK2NvbmZpZ19sZWFrX2lnbm9yZXM9IgorYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL3NldHVwLmg6Q09ORklHX0FMUEhBX0xFR0FDWV9TVEFSVF9BRERSRVNTCithcmNoL2FyYy9pbmNsdWRlL3VhcGkvYXNtL3BhZ2UuaDpDT05GSUdfQVJDX1BBR0VfU0laRV8xNksKK2FyY2gvYXJjL2luY2x1ZGUvdWFwaS9hc20vcGFnZS5oOkNPTkZJR19BUkNfUEFHRV9TSVpFXzRLCithcmNoL2FyYy9pbmNsdWRlL3VhcGkvYXNtL3N3YWIuaDpDT05GSUdfQVJDX0hBU19TV0FQRQorYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9wdHJhY2UuaDpDT05GSUdfQ1BVX0VORElBTl9CRTgKK2FyY2gvaGV4YWdvbi9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oOkNPTkZJR19IRVhBR09OX0FSQ0hfVkVSU0lPTgorYXJjaC9oZXhhZ29uL2luY2x1ZGUvdWFwaS9hc20vdXNlci5oOkNPTkZJR19IRVhBR09OX0FSQ0hfVkVSU0lPTgorYXJjaC9pYTY0L2luY2x1ZGUvdWFwaS9hc20vY21weGNoZy5oOkNPTkZJR19JQTY0X0RFQlVHX0NNUFhDSEcKK2FyY2gvbTY4ay9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oOkNPTkZJR19DT0xERklSRQorYXJjaC9uaW9zMi9pbmNsdWRlL3VhcGkvYXNtL3N3YWIuaDpDT05GSUdfTklPUzJfQ0lfU1dBQl9OTworYXJjaC9uaW9zMi9pbmNsdWRlL3VhcGkvYXNtL3N3YWIuaDpDT05GSUdfTklPUzJfQ0lfU1dBQl9TVVBQT1JUCithcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vcHRyYWNlLmg6Q09ORklHX0NQVV9TSDUKK2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0Lmg6Q09ORklHX0NQVV9TSDUKK2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9zdGF0Lmg6Q09ORklHX0NQVV9TSDUKK2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmg6Q09ORklHX0lBMzJfRU1VTEFUSU9OCithcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oOkNPTkZJR19YODZfNjQKK2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vbW1hbi5oOkNPTkZJR19YODZfSU5URUxfTUVNT1JZX1BST1RFQ1RJT05fS0VZUworaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2ZjbnRsLmg6Q09ORklHXzY0QklUCitpbmNsdWRlL3VhcGkvbGludXgvYXRtZGV2Lmg6Q09ORklHX0NPTVBBVAoraW5jbHVkZS91YXBpL2xpbnV4L2VsZmNvcmUuaDpDT05GSUdfQklORk1UX0VMRl9GRFBJQworaW5jbHVkZS91YXBpL2xpbnV4L2V2ZW50cG9sbC5oOkNPTkZJR19QTV9TTEVFUAoraW5jbHVkZS91YXBpL2xpbnV4L2h3X2JyZWFrcG9pbnQuaDpDT05GSUdfSEFWRV9NSVhFRF9CUkVBS1BPSU5UU19SRUdTCitpbmNsdWRlL3VhcGkvbGludXgvcGt0Y2R2ZC5oOkNPTkZJR19DRFJPTV9QS1RDRFZEX1dDQUNIRQoraW5jbHVkZS91YXBpL2xpbnV4L3Jhdy5oOkNPTkZJR19NQVhfUkFXX0RFVlMKKyIKKworZm9yIGMgaW4gJGNvbmZpZ3MKK2RvCisJd2Fybj0xCisKKwlmb3IgaWdub3JlIGluICRjb25maWdfbGVha19pZ25vcmVzCisJZG8KKwkJaWYgZWNobyAiJElORklMRTokYyIgfCBncmVwIC1xICIkaWdub3JlJCI7IHRoZW4KKwkJCXdhcm49CisJCQlicmVhaworCQlmaQorCWRvbmUKKworCWlmIFsgIiR3YXJuIiA9IDEgXTsgdGhlbgorCQllY2hvICJ3YXJuaW5nOiAkSU5GSUxFOiBsZWFrICRjIHRvIHVzZXItc3BhY2UiID4mMgorCWZpCitkb25lCisKIHJtIC1mICRUTVBGSUxFCiB0cmFwIC0gRVhJVApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9rY29uZmlnL01ha2VmaWxlIGIvc2NyaXB0cy9rY29uZmlnL01ha2VmaWxlCmluZGV4IDc2NTZlMTEuLmVmMmYyMzMgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMva2NvbmZpZy9NYWtlZmlsZQorKysgYi9zY3JpcHRzL2tjb25maWcvTWFrZWZpbGUKQEAgLTExNCw3ICsxMTQsNyBAQAogCSQoUFlUSE9OMykgLUIgLW0gcHl0ZXN0ICQoc3JjdHJlZSkvJChzcmMpL3Rlc3RzIFwKIAktbyBjYWNoZV9kaXI9JChhYnNwYXRoICQob2JqKS90ZXN0cy8uY2FjaGUpIFwKIAkkKGlmICQoZmluZHN0cmluZyAxLCQoS0JVSUxEX1ZFUkJPU0UpKSwtLWNhcHR1cmU9bm8pCi1jbGVhbi1kaXJzICs9IHRlc3RzLy5jYWNoZQorY2xlYW4tZmlsZXMgKz0gdGVzdHMvLmNhY2hlCiAKICMgSGVscCB0ZXh0IHVzZWQgYnkgbWFrZSBoZWxwCiBoZWxwOgpAQCAtMTY2LDE1ICsxNjYsMTUgQEAKIAogIyBtY29uZjogVXNlZCBmb3IgdGhlIG1lbnVjb25maWcgdGFyZ2V0IGJhc2VkIG9uIGx4ZGlhbG9nCiBob3N0cHJvZ3MteQkrPSBtY29uZgotbHhkaWFsb2cJOj0gY2hlY2tsaXN0Lm8gaW5wdXRib3gubyBtZW51Ym94Lm8gdGV4dGJveC5vIHV0aWwubyB5ZXNuby5vCi1tY29uZi1vYmpzCTo9IG1jb25mLm8gJChhZGRwcmVmaXggbHhkaWFsb2cvLCAkKGx4ZGlhbG9nKSkgJChjb21tb24tb2JqcykKK2x4ZGlhbG9nCTo9ICQoYWRkcHJlZml4IGx4ZGlhbG9nLywgXAorCQkgICAgIGNoZWNrbGlzdC5vIGlucHV0Ym94Lm8gbWVudWJveC5vIHRleHRib3gubyB1dGlsLm8geWVzbm8ubykKK21jb25mLW9ianMJOj0gbWNvbmYubyAkKGx4ZGlhbG9nKSAkKGNvbW1vbi1vYmpzKQogCiBIT1NUTERMSUJTX21jb25mID0gJChzaGVsbCAuICQob2JqKS9tY29uZi1jZmcgJiYgZWNobyAkJGxpYnMpCiAkKGZvcmVhY2ggZiwgbWNvbmYubyAkKGx4ZGlhbG9nKSwgXAogICAkKGV2YWwgSE9TVENGTEFHU18kZiA9ICQkKHNoZWxsIC4gJChvYmopL21jb25mLWNmZyAmJiBlY2hvICQkJCRjZmxhZ3MpKSkKIAotJChvYmopL21jb25mLm86ICQob2JqKS9tY29uZi1jZmcKLSQoYWRkcHJlZml4ICQob2JqKS9seGRpYWxvZy8sICQobHhkaWFsb2cpKTogJChvYmopL21jb25mLWNmZworJChhZGRwcmVmaXggJChvYmopLywgbWNvbmYubyAkKGx4ZGlhbG9nKSk6ICQob2JqKS9tY29uZi1jZmcKIAogIyBxY29uZjogVXNlZCBmb3IgdGhlIHhjb25maWcgdGFyZ2V0IGJhc2VkIG9uIFF0CiBob3N0cHJvZ3MteQkrPSBxY29uZgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9rY29uZmlnL21lcmdlX2NvbmZpZy5zaCBiL3NjcmlwdHMva2NvbmZpZy9tZXJnZV9jb25maWcuc2gKaW5kZXggZDkyNGM1MS4uNjNjODU2NSAxMDA3NTUKLS0tIGEvc2NyaXB0cy9rY29uZmlnL21lcmdlX2NvbmZpZy5zaAorKysgYi9zY3JpcHRzL2tjb25maWcvbWVyZ2VfY29uZmlnLnNoCkBAIC0xMywxMiArMTMsMTIgQEAKICMgIENvcHlyaWdodCAoYykgMjAwOS0yMDEwIFdpbmQgUml2ZXIgU3lzdGVtcywgSW5jLgogIyAgQ29weXJpZ2h0IDIwMTEgTGluYXJvCiAKK3NldCAtZQorCiBjbGVhbl91cCgpIHsKIAlybSAtZiAkVE1QX0ZJTEUKIAlybSAtZiAkTUVSR0VfRklMRQotCWV4aXQKIH0KLXRyYXAgY2xlYW5fdXAgSFVQIElOVCBURVJNCiAKIHVzYWdlKCkgewogCWVjaG8gIlVzYWdlOiAkMCBbT1BUSU9OU10gW0NPTkZJRyBbLi4uXV0iCkBAIC0xMTAsNiArMTEwLDkgQEAKIE1FUkdFX0ZJTEU9JChta3RlbXAgLi8ubWVyZ2VfdG1wLmNvbmZpZy5YWFhYWFhYWFhYKQogCiBlY2hvICJVc2luZyAkSU5JVEZJTEUgYXMgYmFzZSIKKwordHJhcCBjbGVhbl91cCBFWElUCisKIGNhdCAkSU5JVEZJTEUgPiAkVE1QX0ZJTEUKIAogIyBNZXJnZSBmaWxlcywgcHJpbnRpbmcgd2FybmluZ3Mgb24gb3ZlcnJpZGRlbiB2YWx1ZXMKQEAgLTE1NSw3ICsxNTgsNiBAQAogCWVjaG8gIiMiCiAJZWNobyAiIyBtZXJnZWQgY29uZmlndXJhdGlvbiB3cml0dGVuIHRvICRLQ09ORklHX0NPTkZJRyAobmVlZHMgbWFrZSkiCiAJZWNobyAiIyIKLQljbGVhbl91cAogCWV4aXQKIGZpCiAKQEAgLTE3Nyw3ICsxNzksNyBAQAogZm9yIENGRyBpbiAkKHNlZCAtbiAtZSAiJFNFRF9DT05GSUdfRVhQMSIgLWUgIiRTRURfQ09ORklHX0VYUDIiICRUTVBfRklMRSk7IGRvCiAKIAlSRVFVRVNURURfVkFMPSQoZ3JlcCAtdyAtZSAiJENGRyIgJFRNUF9GSUxFKQotCUFDVFVBTF9WQUw9JChncmVwIC13IC1lICIkQ0ZHIiAiJEtDT05GSUdfQ09ORklHIikKKwlBQ1RVQUxfVkFMPSQoZ3JlcCAtdyAtZSAiJENGRyIgIiRLQ09ORklHX0NPTkZJRyIgfHwgdHJ1ZSkKIAlpZiBbICJ4JFJFUVVFU1RFRF9WQUwiICE9ICJ4JEFDVFVBTF9WQUwiIF0gOyB0aGVuCiAJCWVjaG8gIlZhbHVlIHJlcXVlc3RlZCBmb3IgJENGRyBub3QgaW4gZmluYWwgLmNvbmZpZyIKIAkJZWNobyAiUmVxdWVzdGVkIHZhbHVlOiAgJFJFUVVFU1RFRF9WQUwiCkBAIC0xODUsNSArMTg3LDMgQEAKIAkJZWNobyAiIgogCWZpCiBkb25lCi0KLWNsZWFuX3VwCmRpZmYgLS1naXQgYS9zY3JpcHRzL2xpbmstdm1saW51eC5zaCBiL3NjcmlwdHMvbGluay12bWxpbnV4LnNoCmluZGV4IDhjNTk5NzAuLjA2NDk1MzcgMTAwNzU1Ci0tLSBhL3NjcmlwdHMvbGluay12bWxpbnV4LnNoCisrKyBiL3NjcmlwdHMvbGluay12bWxpbnV4LnNoCkBAIC02NCw2ICs2NCw4IEBACiAJbG9jYWwgb3V0cHV0PSR7MX0KIAlsb2NhbCBvYmplY3RzCiAKKwlpbmZvIExEICR7b3V0cHV0fQorCiAJIyBza2lwIG91dHB1dCBmaWxlIGFyZ3VtZW50CiAJc2hpZnQKIApAQCAtMTU3LDYgKzE1OSwxOCBAQAogCSR7Q0N9ICR7YWZsYWdzfSAtYyAtbyAkezJ9ICR7YWZpbGV9CiB9CiAKKyMgUGVyZm9ybSBvbmUgc3RlcCBpbiBrYWxsc3ltcyBnZW5lcmF0aW9uLCBpbmNsdWRpbmcgdGVtcG9yYXJ5IGxpbmtpbmcgb2YKKyMgdm1saW51eC4KK2thbGxzeW1zX3N0ZXAoKQoreworCWthbGxzeW1zb19wcmV2PSR7a2FsbHN5bXNvfQorCWthbGxzeW1zbz0udG1wX2thbGxzeW1zJHsxfS5vCisJa2FsbHN5bXNfdm1saW51eD0udG1wX3ZtbGludXgkezF9CisKKwl2bWxpbnV4X2xpbmsgJHtrYWxsc3ltc192bWxpbnV4fSAiJHtrYWxsc3ltc29fcHJldn0iICR7YnRmX3ZtbGludXhfYmluX299CisJa2FsbHN5bXMgJHtrYWxsc3ltc192bWxpbnV4fSAke2thbGxzeW1zb30KK30KKwogIyBDcmVhdGUgbWFwIGZpbGUgd2l0aCBhbGwgc3ltYm9scyBmcm9tICR7MX0KICMgU2VlIG1rc3ltYXAgZm9yIGFkZGl0aW9uYWwgZGV0YWlscwogbWtzeXNtYXAoKQpAQCAtMjQzLDYgKzI1Nyw3IEBACiBmaQogCiBrYWxsc3ltc289IiIKK2thbGxzeW1zb19wcmV2PSIiCiBrYWxsc3ltc192bWxpbnV4PSIiCiBpZiBbIC1uICIke0NPTkZJR19LQUxMU1lNU30iIF07IHRoZW4KIApAQCAtMjY5LDMyICsyODQsMTkgQEAKIAkjIGEpICBWZXJpZnkgdGhhdCB0aGUgU3lzdGVtLm1hcCBmcm9tIHZtbGludXggbWF0Y2hlcyB0aGUgbWFwIGZyb20KIAkjICAgICAke2thbGxzeW1zb30uCiAKLQlrYWxsc3ltc289LnRtcF9rYWxsc3ltczIubwotCWthbGxzeW1zX3ZtbGludXg9LnRtcF92bWxpbnV4MgotCi0JIyBzdGVwIDEKLQl2bWxpbnV4X2xpbmsgLnRtcF92bWxpbnV4MSAke2J0Zl92bWxpbnV4X2Jpbl9vfQotCWthbGxzeW1zIC50bXBfdm1saW51eDEgLnRtcF9rYWxsc3ltczEubwotCi0JIyBzdGVwIDIKLQl2bWxpbnV4X2xpbmsgLnRtcF92bWxpbnV4MiAudG1wX2thbGxzeW1zMS5vICR7YnRmX3ZtbGludXhfYmluX299Ci0Ja2FsbHN5bXMgLnRtcF92bWxpbnV4MiAudG1wX2thbGxzeW1zMi5vCisJa2FsbHN5bXNfc3RlcCAxCisJa2FsbHN5bXNfc3RlcCAyCiAKIAkjIHN0ZXAgMwotCXNpemUxPSQoJHtDT05GSUdfU0hFTEx9ICIke3NyY3RyZWV9L3NjcmlwdHMvZmlsZS1zaXplLnNoIiAudG1wX2thbGxzeW1zMS5vKQotCXNpemUyPSQoJHtDT05GSUdfU0hFTEx9ICIke3NyY3RyZWV9L3NjcmlwdHMvZmlsZS1zaXplLnNoIiAudG1wX2thbGxzeW1zMi5vKQorCXNpemUxPSQoJHtDT05GSUdfU0hFTEx9ICIke3NyY3RyZWV9L3NjcmlwdHMvZmlsZS1zaXplLnNoIiAke2thbGxzeW1zb19wcmV2fSkKKwlzaXplMj0kKCR7Q09ORklHX1NIRUxMfSAiJHtzcmN0cmVlfS9zY3JpcHRzL2ZpbGUtc2l6ZS5zaCIgJHtrYWxsc3ltc299KQogCiAJaWYgWyAkc2l6ZTEgLW5lICRzaXplMiBdIHx8IFsgLW4gIiR7S0FMTFNZTVNfRVhUUkFfUEFTU30iIF07IHRoZW4KLQkJa2FsbHN5bXNvPS50bXBfa2FsbHN5bXMzLm8KLQkJa2FsbHN5bXNfdm1saW51eD0udG1wX3ZtbGludXgzCi0KLQkJdm1saW51eF9saW5rIC50bXBfdm1saW51eDMgLnRtcF9rYWxsc3ltczIubyAke2J0Zl92bWxpbnV4X2Jpbl9vfQotCQlrYWxsc3ltcyAudG1wX3ZtbGludXgzIC50bXBfa2FsbHN5bXMzLm8KKwkJa2FsbHN5bXNfc3RlcCAzCiAJZmkKIGZpCiAKLWluZm8gTEQgdm1saW51eAotdm1saW51eF9saW5rIHZtbGludXggIiR7a2FsbHN5bXNvfSIgIiR7YnRmX3ZtbGludXhfYmluX299Igordm1saW51eF9saW5rIHZtbGludXggIiR7a2FsbHN5bXNvfSIgJHtidGZfdm1saW51eF9iaW5fb30KIAogaWYgWyAtbiAiJHtDT05GSUdfQlVJTERUSU1FX0VYVEFCTEVfU09SVH0iIF07IHRoZW4KIAlpbmZvIFNPUlRFWCB2bWxpbnV4CmRpZmYgLS1naXQgYS9zY3JpcHRzL21rY29tcGlsZV9oIGIvc2NyaXB0cy9ta2NvbXBpbGVfaAppbmRleCAyMzM5Zjg2Li5kMWQ3NTdjIDEwMDc1NQotLS0gYS9zY3JpcHRzL21rY29tcGlsZV9oCisrKyBiL3NjcmlwdHMvbWtjb21waWxlX2gKQEAgLTUsNyArNSw4IEBACiBBUkNIPSQyCiBTTVA9JDMKIFBSRUVNUFQ9JDQKLUNDPSQ1CitQUkVFTVBUX1JUPSQ1CitDQz0kNgogCiB2ZWNobygpIHsgWyAiJHtxdWlldH0iID0gInNpbGVudF8iIF0gfHwgZWNobyAiJEAiIDsgfQogCkBAIC01Myw2ICs1NCw3IEBACiBDT05GSUdfRkxBR1M9IiIKIGlmIFsgLW4gIiRTTVAiIF0gOyB0aGVuIENPTkZJR19GTEFHUz0iU01QIjsgZmkKIGlmIFsgLW4gIiRQUkVFTVBUIiBdIDsgdGhlbiBDT05GSUdfRkxBR1M9IiRDT05GSUdfRkxBR1MgUFJFRU1QVCI7IGZpCitpZiBbIC1uICIkUFJFRU1QVF9SVCIgXSA7IHRoZW4gQ09ORklHX0ZMQUdTPSIkQ09ORklHX0ZMQUdTIFBSRUVNUFRfUlQiOyBmaQogVVRTX1ZFUlNJT049IiRVVFNfVkVSU0lPTiAkQ09ORklHX0ZMQUdTICRUSU1FU1RBTVAiCiAKICMgVHJ1bmNhdGUgdG8gbWF4aW11bSBsZW5ndGgKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWttYWtlZmlsZSBiL3NjcmlwdHMvbWttYWtlZmlsZQppbmRleCA0ZDBmYWViLi4xY2IxNzQ3IDEwMDc1NQotLS0gYS9zY3JpcHRzL21rbWFrZWZpbGUKKysrIGIvc2NyaXB0cy9ta21ha2VmaWxlCkBAIC0xMiw2ICsxMiw2IEBACiBmaQogCiBjYXQgPDwgRU9GID4gTWFrZWZpbGUKLSMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgJChyZWFscGF0aCAkMCk6IGRvbid0IGVkaXQKLWluY2x1ZGUgJChyZWFscGF0aCAkMS9NYWtlZmlsZSkKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgJDA6IGRvbid0IGVkaXQKK2luY2x1ZGUgJDEvTWFrZWZpbGUKIEVPRgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tb2QvZmlsZTJhbGlhcy5jIGIvc2NyaXB0cy9tb2QvZmlsZTJhbGlhcy5jCmluZGV4IGUxN2EyOWEuLmM5MWViYTcgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbW9kL2ZpbGUyYWxpYXMuYworKysgYi9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMKQEAgLTM2LDYgKzM2LDExIEBAIHR5cGVkZWYgdWludDE2X3QJX191MTY7CiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIJX191ODsKIHR5cGVkZWYgc3RydWN0IHsKIAlfX3U4IGJbMTZdOworfSBndWlkX3Q7CisKKy8qIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBkb24ndCB1c2UgaW4gbmV3IGNvZGUgKi8KK3R5cGVkZWYgc3RydWN0IHsKKwlfX3U4IGJbMTZdOwogfSB1dWlkX2xlOwogdHlwZWRlZiBzdHJ1Y3QgewogCV9fdTggYlsxNl07CmRpZmYgLS1naXQgYS9zY3JpcHRzL21vZC9tb2Rwb3N0LmMgYi9zY3JpcHRzL21vZC9tb2Rwb3N0LmMKaW5kZXggZjI3N2UxMS4uMzk2MTk0MSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tb2QvbW9kcG9zdC5jCisrKyBiL3NjcmlwdHMvbW9kL21vZHBvc3QuYwpAQCAtMzgsNiArMzgsOCBAQCBzdGF0aWMgaW50IHNlY19taXNtYXRjaF9jb3VudCA9IDA7CiBzdGF0aWMgaW50IHNlY19taXNtYXRjaF9mYXRhbCA9IDA7CiAvKiBpZ25vcmUgbWlzc2luZyBmaWxlcyAqLwogc3RhdGljIGludCBpZ25vcmVfbWlzc2luZ19maWxlczsKKy8qIHdyaXRlIG5hbWVzcGFjZSBkZXBlbmRlbmNpZXMgKi8KK3N0YXRpYyBpbnQgd3JpdGVfbmFtZXNwYWNlX2RlcHM7CiAKIGVudW0gZXhwb3J0IHsKIAlleHBvcnRfcGxhaW4sICAgICAgZXhwb3J0X3VudXNlZCwgICAgIGV4cG9ydF9ncGwsCkBAIC0xNjQsMTEgKzE2NiwxMyBAQCBzdHJ1Y3Qgc3ltYm9sIHsKIAlzdHJ1Y3QgbW9kdWxlICptb2R1bGU7CiAJdW5zaWduZWQgaW50IGNyYzsKIAlpbnQgY3JjX3ZhbGlkOworCWNvbnN0IGNoYXIgKm5hbWVzcGFjZTsKIAl1bnNpZ25lZCBpbnQgd2VhazoxOwogCXVuc2lnbmVkIGludCB2bWxpbnV4OjE7ICAgIC8qIDEgaWYgc3ltYm9sIGlzIGRlZmluZWQgaW4gdm1saW51eCAqLwogCXVuc2lnbmVkIGludCBrZXJuZWw6MTsgICAgIC8qIDEgaWYgc3ltYm9sIGlzIGZyb20ga2VybmVsCiAJCQkJICAgICogIChvbmx5IGZvciBleHRlcm5hbCBtb2R1bGVzKSAqKi8KIAl1bnNpZ25lZCBpbnQgcHJlbG9hZGVkOjE7ICAvKiAxIGlmIHN5bWJvbCBmcm9tIE1vZHVsZS5zeW12ZXJzLCBvciBjcmMgKi8KKwl1bnNpZ25lZCBpbnQgaXNfc3RhdGljOjE7ICAvKiAxIGlmIHN5bWJvbCBpcyBub3QgZ2xvYmFsICovCiAJZW51bSBleHBvcnQgIGV4cG9ydDsgICAgICAgLyogVHlwZSBvZiBleHBvcnQgKi8KIAljaGFyIG5hbWVbMF07CiB9OwpAQCAtMjAxLDYgKzIwNSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc3ltYm9sICphbGxvY19zeW1ib2woY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgaW50IHdlYWssCiAJc3RyY3B5KHMtPm5hbWUsIG5hbWUpOwogCXMtPndlYWsgPSB3ZWFrOwogCXMtPm5leHQgPSBuZXh0OworCXMtPmlzX3N0YXRpYyA9IDE7CiAJcmV0dXJuIHM7CiB9CiAKQEAgLTIzMyw2ICsyMzgsMzcgQEAgc3RhdGljIHN0cnVjdCBzeW1ib2wgKmZpbmRfc3ltYm9sKGNvbnN0IGNoYXIgKm5hbWUpCiAJcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyBib29sIGNvbnRhaW5zX25hbWVzcGFjZShzdHJ1Y3QgbmFtZXNwYWNlX2xpc3QgKmxpc3QsCisJCQkgICAgICAgY29uc3QgY2hhciAqbmFtZXNwYWNlKQoreworCXN0cnVjdCBuYW1lc3BhY2VfbGlzdCAqbnNfZW50cnk7CisKKwlmb3IgKG5zX2VudHJ5ID0gbGlzdDsgbnNfZW50cnkgIT0gTlVMTDsgbnNfZW50cnkgPSBuc19lbnRyeS0+bmV4dCkKKwkJaWYgKHN0cmNtcChuc19lbnRyeS0+bmFtZXNwYWNlLCBuYW1lc3BhY2UpID09IDApCisJCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgYWRkX25hbWVzcGFjZShzdHJ1Y3QgbmFtZXNwYWNlX2xpc3QgKipsaXN0LCBjb25zdCBjaGFyICpuYW1lc3BhY2UpCit7CisJc3RydWN0IG5hbWVzcGFjZV9saXN0ICpuc19lbnRyeTsKKworCWlmICghY29udGFpbnNfbmFtZXNwYWNlKCpsaXN0LCBuYW1lc3BhY2UpKSB7CisJCW5zX2VudHJ5ID0gTk9GQUlMKG1hbGxvYyhzaXplb2Yoc3RydWN0IG5hbWVzcGFjZV9saXN0KSArCisJCQkJCSBzdHJsZW4obmFtZXNwYWNlKSArIDEpKTsKKwkJc3RyY3B5KG5zX2VudHJ5LT5uYW1lc3BhY2UsIG5hbWVzcGFjZSk7CisJCW5zX2VudHJ5LT5uZXh0ID0gKmxpc3Q7CisJCSpsaXN0ID0gbnNfZW50cnk7CisJfQorfQorCitzdGF0aWMgYm9vbCBtb2R1bGVfaW1wb3J0c19uYW1lc3BhY2Uoc3RydWN0IG1vZHVsZSAqbW9kdWxlLAorCQkJCSAgICAgY29uc3QgY2hhciAqbmFtZXNwYWNlKQoreworCXJldHVybiBjb250YWluc19uYW1lc3BhY2UobW9kdWxlLT5pbXBvcnRlZF9uYW1lc3BhY2VzLCBuYW1lc3BhY2UpOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHsKIAljb25zdCBjaGFyICpzdHI7CiAJZW51bSBleHBvcnQgZXhwb3J0OwpAQCAtMzEyLDIzICszNDgsMzkgQEAgc3RhdGljIGVudW0gZXhwb3J0IGV4cG9ydF9mcm9tX3NlYyhzdHJ1Y3QgZWxmX2luZm8gKmVsZiwgdW5zaWduZWQgaW50IHNlYykKIAkJcmV0dXJuIGV4cG9ydF91bmtub3duOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqc3ltX2V4dHJhY3RfbmFtZXNwYWNlKGNvbnN0IGNoYXIgKipzeW1uYW1lKQoreworCXNpemVfdCBuOworCWNoYXIgKmR1cHN5bW5hbWU7CisKKwluID0gc3RyY3Nwbigqc3ltbmFtZSwgIi4iKTsKKwlpZiAobiA8IHN0cmxlbigqc3ltbmFtZSkgLSAxKSB7CisJCWR1cHN5bW5hbWUgPSBOT0ZBSUwoc3RyZHVwKCpzeW1uYW1lKSk7CisJCWR1cHN5bW5hbWVbbl0gPSAnXDAnOworCQkqc3ltbmFtZSA9IGR1cHN5bW5hbWU7CisJCXJldHVybiBkdXBzeW1uYW1lICsgbiArIDE7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKIC8qKgogICogQWRkIGFuIGV4cG9ydGVkIHN5bWJvbCAtIGl0IG1heSBoYXZlIGFscmVhZHkgYmVlbiBhZGRlZCB3aXRob3V0IGEKICAqIENSQywgaW4gdGhpcyBjYXNlIGp1c3QgdXBkYXRlIHRoZSBDUkMKICAqKi8KLXN0YXRpYyBzdHJ1Y3Qgc3ltYm9sICpzeW1fYWRkX2V4cG9ydGVkKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBtb2R1bGUgKm1vZCwKLQkJCQkgICAgICAgZW51bSBleHBvcnQgZXhwb3J0KQorc3RhdGljIHN0cnVjdCBzeW1ib2wgKnN5bV9hZGRfZXhwb3J0ZWQoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqbmFtZXNwYWNlLAorCQkJCSAgICAgICBzdHJ1Y3QgbW9kdWxlICptb2QsIGVudW0gZXhwb3J0IGV4cG9ydCkKIHsKIAlzdHJ1Y3Qgc3ltYm9sICpzID0gZmluZF9zeW1ib2wobmFtZSk7CiAKIAlpZiAoIXMpIHsKIAkJcyA9IG5ld19zeW1ib2wobmFtZSwgbW9kLCBleHBvcnQpOworCQlzLT5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7CiAJfSBlbHNlIHsKIAkJaWYgKCFzLT5wcmVsb2FkZWQpIHsKLQkJCXdhcm4oIiVzOiAnJXMnIGV4cG9ydGVkIHR3aWNlLiBQcmV2aW91cyBleHBvcnQgIgotCQkJICAgICAid2FzIGluICVzJXNcbiIsIG1vZC0+bmFtZSwgbmFtZSwKLQkJCSAgICAgcy0+bW9kdWxlLT5uYW1lLAotCQkJICAgICBpc192bWxpbnV4KHMtPm1vZHVsZS0+bmFtZSkgPyIiOiIua28iKTsKKwkJCXdhcm4oIiVzOiAnJXMnIGV4cG9ydGVkIHR3aWNlLiBQcmV2aW91cyBleHBvcnQgd2FzIGluICVzJXNcbiIsCisJCQkgICAgIG1vZC0+bmFtZSwgbmFtZSwgcy0+bW9kdWxlLT5uYW1lLAorCQkJICAgICBpc192bWxpbnV4KHMtPm1vZHVsZS0+bmFtZSkgPyAiIiA6ICIua28iKTsKIAkJfSBlbHNlIHsKIAkJCS8qIEluIGNhc2UgTW9kdWxlLnN5bXZlcnMgd2FzIG91dCBvZiBkYXRlICovCiAJCQlzLT5tb2R1bGUgPSBtb2Q7CkBAIC02MjAsNiArNjcyLDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX21vZHZlcnNpb25zKHN0cnVjdCBtb2R1bGUgKm1vZCwgc3RydWN0IGVsZl9pbmZvICppbmZvLAogCXVuc2lnbmVkIGludCBjcmM7CiAJZW51bSBleHBvcnQgZXhwb3J0OwogCWJvb2wgaXNfY3JjID0gZmFsc2U7CisJY29uc3QgY2hhciAqbmFtZSwgKm5hbWVzcGFjZTsKIAogCWlmICgoIWlzX3ZtbGludXgobW9kLT5uYW1lKSB8fCBtb2QtPmlzX2RvdF9vKSAmJgogCSAgICBzdHJzdGFydHMoc3ltbmFtZSwgIl9fa3N5bXRhYiIpKQpAQCAtNjkxLDggKzc0NCw5IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9tb2R2ZXJzaW9ucyhzdHJ1Y3QgbW9kdWxlICptb2QsIHN0cnVjdCBlbGZfaW5mbyAqaW5mbywKIAlkZWZhdWx0OgogCQkvKiBBbGwgZXhwb3J0ZWQgc3ltYm9scyAqLwogCQlpZiAoc3Ryc3RhcnRzKHN5bW5hbWUsICJfX2tzeW10YWJfIikpIHsKLQkJCXN5bV9hZGRfZXhwb3J0ZWQoc3ltbmFtZSArIHN0cmxlbigiX19rc3ltdGFiXyIpLCBtb2QsCi0JCQkJCWV4cG9ydCk7CisJCQluYW1lID0gc3ltbmFtZSArIHN0cmxlbigiX19rc3ltdGFiXyIpOworCQkJbmFtZXNwYWNlID0gc3ltX2V4dHJhY3RfbmFtZXNwYWNlKCZuYW1lKTsKKwkJCXN5bV9hZGRfZXhwb3J0ZWQobmFtZSwgbmFtZXNwYWNlLCBtb2QsIGV4cG9ydCk7CiAJCX0KIAkJaWYgKHN0cmNtcChzeW1uYW1lLCAiaW5pdF9tb2R1bGUiKSA9PSAwKQogCQkJbW9kLT5oYXNfaW5pdCA9IDE7CkBAIC03OTUsOSArODQ5LDkgQEAgc3RhdGljIGludCBtYXRjaChjb25zdCBjaGFyICpzeW0sIGNvbnN0IGNoYXIgKiBjb25zdCBwYXRbXSkKIAogCQkvKiAiKmZvbyoiICovCiAJCWlmICgqcCA9PSAnKicgJiYgKmVuZHAgPT0gJyonKSB7Ci0JCQljaGFyICpoZXJlLCAqYmFyZSA9IHN0cm5kdXAocCArIDEsIHN0cmxlbihwKSAtIDIpOworCQkJY2hhciAqYmFyZSA9IE5PRkFJTChzdHJuZHVwKHAgKyAxLCBzdHJsZW4ocCkgLSAyKSk7CisJCQljaGFyICpoZXJlID0gc3Ryc3RyKHN5bSwgYmFyZSk7CiAKLQkJCWhlcmUgPSBzdHJzdHIoc3ltLCBiYXJlKTsKIAkJCWZyZWUoYmFyZSk7CiAJCQlpZiAoaGVyZSAhPSBOVUxMKQogCQkJCXJldHVybiAxOwpAQCAtMTk0Myw2ICsxOTk3LDcgQEAgc3RhdGljIHZvaWQgcmVhZF9zeW1ib2xzKGNvbnN0IGNoYXIgKm1vZG5hbWUpCiAJY29uc3QgY2hhciAqc3ltbmFtZTsKIAljaGFyICp2ZXJzaW9uOwogCWNoYXIgKmxpY2Vuc2U7CisJY2hhciAqbmFtZXNwYWNlOwogCXN0cnVjdCBtb2R1bGUgKm1vZDsKIAlzdHJ1Y3QgZWxmX2luZm8gaW5mbyA9IHsgfTsKIAlFbGZfU3ltICpzeW07CkBAIC0xOTc0LDEyICsyMDI5LDMzIEBAIHN0YXRpYyB2b2lkIHJlYWRfc3ltYm9scyhjb25zdCBjaGFyICptb2RuYW1lKQogCQlsaWNlbnNlID0gZ2V0X25leHRfbW9kaW5mbygmaW5mbywgImxpY2Vuc2UiLCBsaWNlbnNlKTsKIAl9CiAKKwluYW1lc3BhY2UgPSBnZXRfbW9kaW5mbygmaW5mbywgImltcG9ydF9ucyIpOworCXdoaWxlIChuYW1lc3BhY2UpIHsKKwkJYWRkX25hbWVzcGFjZSgmbW9kLT5pbXBvcnRlZF9uYW1lc3BhY2VzLCBuYW1lc3BhY2UpOworCQluYW1lc3BhY2UgPSBnZXRfbmV4dF9tb2RpbmZvKCZpbmZvLCAiaW1wb3J0X25zIiwgbmFtZXNwYWNlKTsKKwl9CisKIAlmb3IgKHN5bSA9IGluZm8uc3ltdGFiX3N0YXJ0OyBzeW0gPCBpbmZvLnN5bXRhYl9zdG9wOyBzeW0rKykgewogCQlzeW1uYW1lID0gcmVtb3ZlX2RvdChpbmZvLnN0cnRhYiArIHN5bS0+c3RfbmFtZSk7CiAKIAkJaGFuZGxlX21vZHZlcnNpb25zKG1vZCwgJmluZm8sIHN5bSwgc3ltbmFtZSk7CiAJCWhhbmRsZV9tb2RkZXZ0YWJsZShtb2QsICZpbmZvLCBzeW0sIHN5bW5hbWUpOwogCX0KKworCS8vIGNoZWNrIGZvciBzdGF0aWMgRVhQT1JUX1NZTUJPTF8qIGZ1bmN0aW9ucyAmJiBnbG9iYWwgdmFycworCWZvciAoc3ltID0gaW5mby5zeW10YWJfc3RhcnQ7IHN5bSA8IGluZm8uc3ltdGFiX3N0b3A7IHN5bSsrKSB7CisJCXVuc2lnbmVkIGNoYXIgYmluZCA9IEVMRl9TVF9CSU5EKHN5bS0+c3RfaW5mbyk7CisKKwkJaWYgKGJpbmQgPT0gU1RCX0dMT0JBTCB8fCBiaW5kID09IFNUQl9XRUFLKSB7CisJCQlzdHJ1Y3Qgc3ltYm9sICpzID0KKwkJCQlmaW5kX3N5bWJvbChyZW1vdmVfZG90KGluZm8uc3RydGFiICsKKwkJCQkJCSAgICAgICBzeW0tPnN0X25hbWUpKTsKKworCQkJaWYgKHMpCisJCQkJcy0+aXNfc3RhdGljID0gMDsKKwkJfQorCX0KKwogCWlmICghaXNfdm1saW51eChtb2RuYW1lKSB8fCB2bWxpbnV4X3NlY3Rpb25fd2FybmluZ3MpCiAJCWNoZWNrX3NlY19yZWYobW9kLCBtb2RuYW1lLCAmaW5mbyk7CiAKQEAgLTIxMTgsNiArMjE5NCwxOCBAQCBzdGF0aWMgaW50IGNoZWNrX2V4cG9ydHMoc3RydWN0IG1vZHVsZSAqbW9kKQogCQkJYmFzZW5hbWUrKzsKIAkJZWxzZQogCQkJYmFzZW5hbWUgPSBtb2QtPm5hbWU7CisKKwkJaWYgKGV4cC0+bmFtZXNwYWNlKSB7CisJCQlhZGRfbmFtZXNwYWNlKCZtb2QtPnJlcXVpcmVkX25hbWVzcGFjZXMsCisJCQkJICAgICAgZXhwLT5uYW1lc3BhY2UpOworCisJCQlpZiAoIXdyaXRlX25hbWVzcGFjZV9kZXBzICYmCisJCQkgICAgIW1vZHVsZV9pbXBvcnRzX25hbWVzcGFjZShtb2QsIGV4cC0+bmFtZXNwYWNlKSkgeworCQkJCXdhcm4oIm1vZHVsZSAlcyB1c2VzIHN5bWJvbCAlcyBmcm9tIG5hbWVzcGFjZSAlcywgYnV0IGRvZXMgbm90IGltcG9ydCBpdC5cbiIsCisJCQkJICAgICBiYXNlbmFtZSwgZXhwLT5uYW1lLCBleHAtPm5hbWVzcGFjZSk7CisJCQl9CisJCX0KKwogCQlpZiAoIW1vZC0+Z3BsX2NvbXBhdGlibGUpCiAJCQljaGVja19mb3JfZ3BsX3VzYWdlKGV4cC0+ZXhwb3J0LCBiYXNlbmFtZSwgZXhwLT5uYW1lKTsKIAkJY2hlY2tfZm9yX3VudXNlZChleHAtPmV4cG9ydCwgYmFzZW5hbWUsIGV4cC0+bmFtZSk7CkBAIC0yMTU5LDcgKzIyNDcsNyBAQCBzdGF0aWMgdm9pZCBhZGRfaGVhZGVyKHN0cnVjdCBidWZmZXIgKmIsIHN0cnVjdCBtb2R1bGUgKm1vZCkKIAlidWZfcHJpbnRmKGIsICJNT0RVTEVfSU5GTyhuYW1lLCBLQlVJTERfTU9ETkFNRSk7XG4iKTsKIAlidWZfcHJpbnRmKGIsICJcbiIpOwogCWJ1Zl9wcmludGYoYiwgIl9fdmlzaWJsZSBzdHJ1Y3QgbW9kdWxlIF9fdGhpc19tb2R1bGVcbiIpOwotCWJ1Zl9wcmludGYoYiwgIl9fYXR0cmlidXRlX18oKHNlY3Rpb24oXCIuZ251LmxpbmtvbmNlLnRoaXNfbW9kdWxlXCIpKSkgPSB7XG4iKTsKKwlidWZfcHJpbnRmKGIsICJfX3NlY3Rpb24oLmdudS5saW5rb25jZS50aGlzX21vZHVsZSkgPSB7XG4iKTsKIAlidWZfcHJpbnRmKGIsICJcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4iKTsKIAlpZiAobW9kLT5oYXNfaW5pdCkKIAkJYnVmX3ByaW50ZihiLCAiXHQuaW5pdCA9IGluaXRfbW9kdWxlLFxuIik7CkBAIC0yMjEzLDggKzIzMDEsNyBAQCBzdGF0aWMgaW50IGFkZF92ZXJzaW9ucyhzdHJ1Y3QgYnVmZmVyICpiLCBzdHJ1Y3QgbW9kdWxlICptb2QpCiAKIAlidWZfcHJpbnRmKGIsICJcbiIpOwogCWJ1Zl9wcmludGYoYiwgInN0YXRpYyBjb25zdCBzdHJ1Y3QgbW9kdmVyc2lvbl9pbmZvIF9fX192ZXJzaW9uc1tdXG4iKTsKLQlidWZfcHJpbnRmKGIsICJfX3VzZWRcbiIpOwotCWJ1Zl9wcmludGYoYiwgIl9fYXR0cmlidXRlX18oKHNlY3Rpb24oXCJfX3ZlcnNpb25zXCIpKSkgPSB7XG4iKTsKKwlidWZfcHJpbnRmKGIsICJfX3VzZWQgX19zZWN0aW9uKF9fdmVyc2lvbnMpID0ge1xuIik7CiAKIAlmb3IgKHMgPSBtb2QtPnVucmVzOyBzOyBzID0gcy0+bmV4dCkgewogCQlpZiAoIXMtPm1vZHVsZSkKQEAgLTIyNTAsMTAgKzIzMzcsNyBAQCBzdGF0aWMgdm9pZCBhZGRfZGVwZW5kcyhzdHJ1Y3QgYnVmZmVyICpiLCBzdHJ1Y3QgbW9kdWxlICptb2QpCiAJCQlzLT5tb2R1bGUtPnNlZW4gPSBpc192bWxpbnV4KHMtPm1vZHVsZS0+bmFtZSk7CiAKIAlidWZfcHJpbnRmKGIsICJcbiIpOwotCWJ1Zl9wcmludGYoYiwgInN0YXRpYyBjb25zdCBjaGFyIF9fbW9kdWxlX2RlcGVuZHNbXVxuIik7Ci0JYnVmX3ByaW50ZihiLCAiX191c2VkXG4iKTsKLQlidWZfcHJpbnRmKGIsICJfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKFwiLm1vZGluZm9cIikpKSA9XG4iKTsKLQlidWZfcHJpbnRmKGIsICJcImRlcGVuZHM9Iik7CisJYnVmX3ByaW50ZihiLCAiTU9EVUxFX0lORk8oZGVwZW5kcywgXCIiKTsKIAlmb3IgKHMgPSBtb2QtPnVucmVzOyBzOyBzID0gcy0+bmV4dCkgewogCQljb25zdCBjaGFyICpwOwogCQlpZiAoIXMtPm1vZHVsZSkKQEAgLTIyNzEsNyArMjM1NSw3IEBAIHN0YXRpYyB2b2lkIGFkZF9kZXBlbmRzKHN0cnVjdCBidWZmZXIgKmIsIHN0cnVjdCBtb2R1bGUgKm1vZCkKIAkJYnVmX3ByaW50ZihiLCAiJXMlcyIsIGZpcnN0ID8gIiIgOiAiLCIsIHApOwogCQlmaXJzdCA9IDA7CiAJfQotCWJ1Zl9wcmludGYoYiwgIlwiO1xuIik7CisJYnVmX3ByaW50ZihiLCAiXCIpO1xuIik7CiB9CiAKIHN0YXRpYyB2b2lkIGFkZF9zcmN2ZXJzaW9uKHN0cnVjdCBidWZmZXIgKmIsIHN0cnVjdCBtb2R1bGUgKm1vZCkKQEAgLTIzNDEsNyArMjQyNSw3IEBAIHN0YXRpYyB2b2lkIHJlYWRfZHVtcChjb25zdCBjaGFyICpmbmFtZSwgdW5zaWduZWQgaW50IGtlcm5lbCkKIAkJcmV0dXJuOwogCiAJd2hpbGUgKChsaW5lID0gZ2V0X25leHRfbGluZSgmcG9zLCBmaWxlLCBzaXplKSkpIHsKLQkJY2hhciAqc3ltbmFtZSwgKm1vZG5hbWUsICpkLCAqZXhwb3J0LCAqZW5kOworCQljaGFyICpzeW1uYW1lLCAqbmFtZXNwYWNlLCAqbW9kbmFtZSwgKmQsICpleHBvcnQsICplbmQ7CiAJCXVuc2lnbmVkIGludCBjcmM7CiAJCXN0cnVjdCBtb2R1bGUgKm1vZDsKIAkJc3RydWN0IHN5bWJvbCAqczsKQEAgLTIzNDksNyArMjQzMywxMCBAQCBzdGF0aWMgdm9pZCByZWFkX2R1bXAoY29uc3QgY2hhciAqZm5hbWUsIHVuc2lnbmVkIGludCBrZXJuZWwpCiAJCWlmICghKHN5bW5hbWUgPSBzdHJjaHIobGluZSwgJ1x0JykpKQogCQkJZ290byBmYWlsOwogCQkqc3ltbmFtZSsrID0gJ1wwJzsKLQkJaWYgKCEobW9kbmFtZSA9IHN0cmNocihzeW1uYW1lLCAnXHQnKSkpCisJCWlmICghKG5hbWVzcGFjZSA9IHN0cmNocihzeW1uYW1lLCAnXHQnKSkpCisJCQlnb3RvIGZhaWw7CisJCSpuYW1lc3BhY2UrKyA9ICdcMCc7CisJCWlmICghKG1vZG5hbWUgPSBzdHJjaHIobmFtZXNwYWNlLCAnXHQnKSkpCiAJCQlnb3RvIGZhaWw7CiAJCSptb2RuYW1lKysgPSAnXDAnOwogCQlpZiAoKGV4cG9ydCA9IHN0cmNocihtb2RuYW1lLCAnXHQnKSkgIT0gTlVMTCkKQEAgLTIzNjYsOSArMjQ1MywxMSBAQCBzdGF0aWMgdm9pZCByZWFkX2R1bXAoY29uc3QgY2hhciAqZm5hbWUsIHVuc2lnbmVkIGludCBrZXJuZWwpCiAJCQltb2QgPSBuZXdfbW9kdWxlKG1vZG5hbWUpOwogCQkJbW9kLT5za2lwID0gMTsKIAkJfQotCQlzID0gc3ltX2FkZF9leHBvcnRlZChzeW1uYW1lLCBtb2QsIGV4cG9ydF9ubyhleHBvcnQpKTsKKwkJcyA9IHN5bV9hZGRfZXhwb3J0ZWQoc3ltbmFtZSwgbmFtZXNwYWNlLCBtb2QsCisJCQkJICAgICBleHBvcnRfbm8oZXhwb3J0KSk7CiAJCXMtPmtlcm5lbCAgICA9IGtlcm5lbDsKIAkJcy0+cHJlbG9hZGVkID0gMTsKKwkJcy0+aXNfc3RhdGljID0gMDsKIAkJc3ltX3VwZGF0ZV9jcmMoc3ltbmFtZSwgbW9kLCBjcmMsIGV4cG9ydF9ubyhleHBvcnQpKTsKIAl9CiAJcmVsZWFzZV9maWxlKGZpbGUsIHNpemUpOwpAQCAtMjM5NSwxNiArMjQ4NCwyMCBAQCBzdGF0aWMgdm9pZCB3cml0ZV9kdW1wKGNvbnN0IGNoYXIgKmZuYW1lKQogewogCXN0cnVjdCBidWZmZXIgYnVmID0geyB9OwogCXN0cnVjdCBzeW1ib2wgKnN5bWJvbDsKKwljb25zdCBjaGFyICpuYW1lc3BhY2U7CiAJaW50IG47CiAKIAlmb3IgKG4gPSAwOyBuIDwgU1lNQk9MX0hBU0hfU0laRSA7IG4rKykgewogCQlzeW1ib2wgPSBzeW1ib2xoYXNoW25dOwogCQl3aGlsZSAoc3ltYm9sKSB7Ci0JCQlpZiAoZHVtcF9zeW0oc3ltYm9sKSkKLQkJCQlidWZfcHJpbnRmKCZidWYsICIweCUwOHhcdCVzXHQlc1x0JXNcbiIsCi0JCQkJCXN5bWJvbC0+Y3JjLCBzeW1ib2wtPm5hbWUsCi0JCQkJCXN5bWJvbC0+bW9kdWxlLT5uYW1lLAotCQkJCQlleHBvcnRfc3RyKHN5bWJvbC0+ZXhwb3J0KSk7CisJCQlpZiAoZHVtcF9zeW0oc3ltYm9sKSkgeworCQkJCW5hbWVzcGFjZSA9IHN5bWJvbC0+bmFtZXNwYWNlOworCQkJCWJ1Zl9wcmludGYoJmJ1ZiwgIjB4JTA4eFx0JXNcdCVzXHQlc1x0JXNcbiIsCisJCQkJCSAgIHN5bWJvbC0+Y3JjLCBzeW1ib2wtPm5hbWUsCisJCQkJCSAgIG5hbWVzcGFjZSA/IG5hbWVzcGFjZSA6ICIiLAorCQkJCQkgICBzeW1ib2wtPm1vZHVsZS0+bmFtZSwKKwkJCQkJICAgZXhwb3J0X3N0cihzeW1ib2wtPmV4cG9ydCkpOworCQkJfQogCQkJc3ltYm9sID0gc3ltYm9sLT5uZXh0OwogCQl9CiAJfQpAQCAtMjQxMiw2ICsyNTA1LDMxIEBAIHN0YXRpYyB2b2lkIHdyaXRlX2R1bXAoY29uc3QgY2hhciAqZm5hbWUpCiAJZnJlZShidWYucCk7CiB9CiAKK3N0YXRpYyB2b2lkIHdyaXRlX25hbWVzcGFjZV9kZXBzX2ZpbGVzKHZvaWQpCit7CisJc3RydWN0IG1vZHVsZSAqbW9kOworCXN0cnVjdCBuYW1lc3BhY2VfbGlzdCAqbnM7CisJc3RydWN0IGJ1ZmZlciBuc19kZXBzX2J1ZiA9IHt9OworCisJZm9yIChtb2QgPSBtb2R1bGVzOyBtb2Q7IG1vZCA9IG1vZC0+bmV4dCkgeworCQljaGFyIGZuYW1lW1BBVEhfTUFYXTsKKworCQlpZiAobW9kLT5za2lwKQorCQkJY29udGludWU7CisKKwkJbnNfZGVwc19idWYucG9zID0gMDsKKworCQlmb3IgKG5zID0gbW9kLT5yZXF1aXJlZF9uYW1lc3BhY2VzOyBuczsgbnMgPSBucy0+bmV4dCkKKwkJCWJ1Zl9wcmludGYoJm5zX2RlcHNfYnVmLCAiJXNcbiIsIG5zLT5uYW1lc3BhY2UpOworCisJCWlmIChuc19kZXBzX2J1Zi5wb3MgPT0gMCkKKwkJCWNvbnRpbnVlOworCisJCXNwcmludGYoZm5hbWUsICIlcy5uc19kZXBzIiwgbW9kLT5uYW1lKTsKKwkJd3JpdGVfaWZfY2hhbmdlZCgmbnNfZGVwc19idWYsIGZuYW1lKTsKKwl9Cit9CisKIHN0cnVjdCBleHRfc3ltX2xpc3QgewogCXN0cnVjdCBleHRfc3ltX2xpc3QgKm5leHQ7CiAJY29uc3QgY2hhciAqZmlsZTsKQEAgLTI0MjUsMTAgKzI1NDMsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWNoYXIgKmR1bXBfd3JpdGUgPSBOVUxMLCAqZmlsZXNfc291cmNlID0gTlVMTDsKIAlpbnQgb3B0OwogCWludCBlcnI7CisJaW50IG47CiAJc3RydWN0IGV4dF9zeW1fbGlzdCAqZXh0c3ltX2l0ZXI7CiAJc3RydWN0IGV4dF9zeW1fbGlzdCAqZXh0c3ltX3N0YXJ0ID0gTlVMTDsKIAotCXdoaWxlICgob3B0ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJpOkk6ZTptbnNUOm86YXdFIikpICE9IC0xKSB7CisJd2hpbGUgKChvcHQgPSBnZXRvcHQoYXJnYywgYXJndiwgImk6STplOm1uc1Q6bzphd0VkIikpICE9IC0xKSB7CiAJCXN3aXRjaCAob3B0KSB7CiAJCWNhc2UgJ2knOgogCQkJa2VybmVsX3JlYWQgPSBvcHRhcmc7CkBAIC0yNDY5LDYgKzI1ODgsOSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWNhc2UgJ0UnOgogCQkJc2VjX21pc21hdGNoX2ZhdGFsID0gMTsKIAkJCWJyZWFrOworCQljYXNlICdkJzoKKwkJCXdyaXRlX25hbWVzcGFjZV9kZXBzID0gMTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZXhpdCgxKTsKIAkJfQpAQCAtMjUwMyw2ICsyNjI1LDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJCWVyciB8PSBjaGVja19tb2RuYW1lX2xlbihtb2QpOwogCQllcnIgfD0gY2hlY2tfZXhwb3J0cyhtb2QpOworCQlpZiAod3JpdGVfbmFtZXNwYWNlX2RlcHMpCisJCQljb250aW51ZTsKKwogCQlhZGRfaGVhZGVyKCZidWYsIG1vZCk7CiAJCWFkZF9pbnRyZWVfZmxhZygmYnVmLCAhZXh0ZXJuYWxfbW9kdWxlKTsKIAkJYWRkX3JldHBvbGluZSgmYnVmKTsKQEAgLTI1MTUsMTEgKzI2NDAsMzAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQlzcHJpbnRmKGZuYW1lLCAiJXMubW9kLmMiLCBtb2QtPm5hbWUpOwogCQl3cml0ZV9pZl9jaGFuZ2VkKCZidWYsIGZuYW1lKTsKIAl9CisKKwlpZiAod3JpdGVfbmFtZXNwYWNlX2RlcHMpIHsKKwkJd3JpdGVfbmFtZXNwYWNlX2RlcHNfZmlsZXMoKTsKKwkJcmV0dXJuIDA7CisJfQorCiAJaWYgKGR1bXBfd3JpdGUpCiAJCXdyaXRlX2R1bXAoZHVtcF93cml0ZSk7CiAJaWYgKHNlY19taXNtYXRjaF9jb3VudCAmJiBzZWNfbWlzbWF0Y2hfZmF0YWwpCiAJCWZhdGFsKCJtb2Rwb3N0OiBTZWN0aW9uIG1pc21hdGNoZXMgZGV0ZWN0ZWQuXG4iCiAJCSAgICAgICJTZXQgQ09ORklHX1NFQ1RJT05fTUlTTUFUQ0hfV0FSTl9PTkxZPXkgdG8gYWxsb3cgdGhlbS5cbiIpOworCWZvciAobiA9IDA7IG4gPCBTWU1CT0xfSEFTSF9TSVpFOyBuKyspIHsKKwkJc3RydWN0IHN5bWJvbCAqcyA9IHN5bWJvbGhhc2hbbl07CisKKwkJd2hpbGUgKHMpIHsKKwkJCWlmIChzLT5pc19zdGF0aWMpCisJCQkJd2FybigiXCIlc1wiIFslc10gaXMgYSBzdGF0aWMgJXNcbiIsCisJCQkJICAgICBzLT5uYW1lLCBzLT5tb2R1bGUtPm5hbWUsCisJCQkJICAgICBleHBvcnRfc3RyKHMtPmV4cG9ydCkpOworCisJCQlzID0gcy0+bmV4dDsKKwkJfQorCX0KKwogCWZyZWUoYnVmLnApOwogCiAJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbW9kL21vZHBvc3QuaCBiL3NjcmlwdHMvbW9kL21vZHBvc3QuaAppbmRleCA4NDUzZDZhLi45MmE5MjZkIDEwMDY0NAotLS0gYS9zY3JpcHRzL21vZC9tb2Rwb3N0LmgKKysrIGIvc2NyaXB0cy9tb2QvbW9kcG9zdC5oCkBAIC0xMDksNiArMTA5LDExIEBAIGJ1Zl9wcmludGYoc3RydWN0IGJ1ZmZlciAqYnVmLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CiB2b2lkCiBidWZfd3JpdGUoc3RydWN0IGJ1ZmZlciAqYnVmLCBjb25zdCBjaGFyICpzLCBpbnQgbGVuKTsKIAorc3RydWN0IG5hbWVzcGFjZV9saXN0IHsKKwlzdHJ1Y3QgbmFtZXNwYWNlX2xpc3QgKm5leHQ7CisJY2hhciBuYW1lc3BhY2VbMF07Cit9OworCiBzdHJ1Y3QgbW9kdWxlIHsKIAlzdHJ1Y3QgbW9kdWxlICpuZXh0OwogCWNvbnN0IGNoYXIgKm5hbWU7CkBAIC0xMjEsNiArMTI2LDEwIEBAIHN0cnVjdCBtb2R1bGUgewogCXN0cnVjdCBidWZmZXIgZGV2X3RhYmxlX2J1ZjsKIAljaGFyCSAgICAgc3JjdmVyc2lvblsyNV07CiAJaW50IGlzX2RvdF9vOworCS8vIFJlcXVpcmVkIG5hbWVzcGFjZSBkZXBlbmRlbmNpZXMKKwlzdHJ1Y3QgbmFtZXNwYWNlX2xpc3QgKnJlcXVpcmVkX25hbWVzcGFjZXM7CisJLy8gQWN0dWFsIGltcG9ydGVkIG5hbWVzcGFjZXMKKwlzdHJ1Y3QgbmFtZXNwYWNlX2xpc3QgKmltcG9ydGVkX25hbWVzcGFjZXM7CiB9OwogCiBzdHJ1Y3QgZWxmX2luZm8gewpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9uc2RlcHMgYi9zY3JpcHRzL25zZGVwcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzJiNjAzCi0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy9uc2RlcHMKQEAgLTAsMCArMSw1OCBAQAorIyEvYmluL2Jhc2gKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyMgTGludXgga2VybmVsIHN5bWJvbCBuYW1lc3BhY2UgaW1wb3J0IGdlbmVyYXRvcgorIworIyBUaGlzIHNjcmlwdCByZXF1aXJlcyBhIG1pbmltdW0gc3BhdGNoIHZlcnNpb24uCitTUEFUQ0hfUkVRX1ZFUlNJT049IjEuMC40IgorCitESVI9IiQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICQwKSkvLi4iCitTUEFUQ0g9ImB3aGljaCAke1NQQVRDSDo9c3BhdGNofWAiCitpZiBbICEgLXggIiRTUEFUQ0giIF07IHRoZW4KKwllY2hvICdzcGF0Y2ggaXMgcGFydCBvZiB0aGUgQ29jY2luZWxsZSBwcm9qZWN0IGFuZCBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2NvY2NpbmVsbGUubGlwNi5mci8nCisJZXhpdCAxCitmaQorCitTUEFUQ0hfUkVRX1ZFUlNJT05fTlVNPSQoZWNobyAkU1BBVENIX1JFUV9WRVJTSU9OIHwgJHtESVJ9L3NjcmlwdHMvbGQtdmVyc2lvbi5zaCkKK1NQQVRDSF9WRVJTSU9OPSQoJFNQQVRDSCAtLXZlcnNpb24gfCBoZWFkIC0xIHwgYXdrICd7cHJpbnQgJDN9JykKK1NQQVRDSF9WRVJTSU9OX05VTT0kKGVjaG8gJFNQQVRDSF9WRVJTSU9OIHwgJHtESVJ9L3NjcmlwdHMvbGQtdmVyc2lvbi5zaCkKKworaWYgWyAiJFNQQVRDSF9WRVJTSU9OX05VTSIgLWx0ICIkU1BBVENIX1JFUV9WRVJTSU9OX05VTSIgXSA7IHRoZW4KKwllY2hvICJzcGF0Y2ggbmVlZHMgdG8gYmUgdmVyc2lvbiAkU1BBVENIX1JFUV9WRVJTSU9OIG9yIGhpZ2hlciIKKwlleGl0IDEKK2ZpCisKK2dlbmVyYXRlX2RlcHNfZm9yX25zKCkgeworCSRTUEFUQ0ggLS12ZXJ5LXF1aWV0IC0taW4tcGxhY2UgLS1zcC1maWxlIFwKKwkJJHNyY3RyZWUvc2NyaXB0cy9jb2NjaW5lbGxlL21pc2MvYWRkX25hbWVzcGFjZS5jb2NjaSAtRCBucz0kMSAkMgorfQorCitnZW5lcmF0ZV9kZXBzKCkgeworCWxvY2FsIG1vZF9uYW1lPWBiYXNlbmFtZSAkQCAua29gCisJbG9jYWwgbW9kX2ZpbGU9YGVjaG8gJEAgfCBzZWQgLWUgJ3MvXC5rby9cLm1vZC8nYAorCWxvY2FsIG5zX2RlcHNfZmlsZT1gZWNobyAkQCB8IHNlZCAtZSAncy9cLmtvL1wubnNfZGVwcy8nYAorCWlmIFsgISAtZiAiJG5zX2RlcHNfZmlsZSIgXTsgdGhlbiByZXR1cm47IGZpCisJbG9jYWwgbW9kX3NvdXJjZV9maWxlcz1gY2F0ICRtb2RfZmlsZSB8IHNlZCAtbiAxcCAgICAgICAgICAgICAgICAgICAgICBcCisJCQkJCSAgICAgIHwgc2VkIC1lICdzL1wuby9cLmMvZycgICAgICAgICAgIFwKKwkJCQkJICAgICAgfCBzZWQgInMvW14gXSogKi8ke3NyY3RyZWV9XC8mL2ciYAorCWZvciBucyBpbiBgY2F0ICRuc19kZXBzX2ZpbGVgOyBkbworCQllY2hvICJBZGRpbmcgbmFtZXNwYWNlICRucyB0byBtb2R1bGUgJG1vZF9uYW1lIChpZiBuZWVkZWQpLiIKKwkJZ2VuZXJhdGVfZGVwc19mb3JfbnMgJG5zICRtb2Rfc291cmNlX2ZpbGVzCisJCSMgc29ydCB0aGUgaW1wb3J0cworCQlmb3Igc291cmNlX2ZpbGUgaW4gJG1vZF9zb3VyY2VfZmlsZXM7IGRvCisJCQlzZWQgJy9NT0RVTEVfSU1QT1JUX05TL1EnICRzb3VyY2VfZmlsZSA+ICR7c291cmNlX2ZpbGV9LnRtcAorCQkJb2Zmc2V0PSQod2MgLWwgJHtzb3VyY2VfZmlsZX0udG1wIHwgYXdrICd7cHJpbnQgJDE7fScpCisJCQljYXQgJHNvdXJjZV9maWxlIHwgZ3JlcCBNT0RVTEVfSU1QT1JUX05TIHwgc29ydCAtdSA+PiAke3NvdXJjZV9maWxlfS50bXAKKwkJCXRhaWwgLW4gKyQoKG9mZnNldCArMSkpICR7c291cmNlX2ZpbGV9IHwgZ3JlcCAtdiBNT0RVTEVfSU1QT1JUX05TID4+ICR7c291cmNlX2ZpbGV9LnRtcAorCQkJaWYgISBkaWZmIC1xICR7c291cmNlX2ZpbGV9ICR7c291cmNlX2ZpbGV9LnRtcDsgdGhlbgorCQkJCW12ICR7c291cmNlX2ZpbGV9LnRtcCAke3NvdXJjZV9maWxlfQorCQkJZWxzZQorCQkJCXJtICR7c291cmNlX2ZpbGV9LnRtcAorCQkJZmkKKwkJZG9uZQorCWRvbmUKK30KKworZm9yIGYgaW4gYGNhdCAkb2JqdHJlZS9tb2R1bGVzLm9yZGVyYDsgZG8KKwlnZW5lcmF0ZV9kZXBzICRmCitkb25lCisKZGlmZiAtLWdpdCBhL3NjcmlwdHMvcGFja2FnZS9NYWtlZmlsZSBiL3NjcmlwdHMvcGFja2FnZS9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E3ZjQ2Yi4uMDAwMDAwMAotLS0gYS9zY3JpcHRzL3BhY2thZ2UvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0jIE1ha2VmaWxlIGZvciB0aGUgZGlmZmVyZW50IHRhcmdldHMgdXNlZCB0byBnZW5lcmF0ZSBmdWxsIHBhY2thZ2VzIG9mIGEga2VybmVsCi0jIEl0IHVzZXMgdGhlIGdlbmVyaWMgY2xlYW4gaW5mcmFzdHJ1Y3R1cmUgb2Yga2J1aWxkCi0KLSMgUlBNIHRhcmdldAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIHJwbSB0YXJnZXQgZ2VuZXJhdGVzIHR3byBycG0gZmlsZXM6Ci0jIC91c3Ivc3JjL3BhY2thZ2VzL1NSUE1TL2tlcm5lbC0yLjYuN3JjMi0xLnNyYy5ycG0KLSMgL3Vzci9zcmMvcGFja2FnZXMvUlBNUy9pMzg2L2tlcm5lbC0yLjYuN3JjMi0xLjxhcmNoPi5ycG0KLSMgVGhlIHNyYy5ycG0gZmlsZXMgaW5jbHVkZXMgYWxsIHNvdXJjZSBmb3IgdGhlIGtlcm5lbCBiZWluZyBidWlsdAotIyBUaGUgPGFyY2g+LnJwbSBpbmNsdWRlcyBrZXJuZWwgY29uZmlndXJhdGlvbiwgbW9kdWxlcyBldGMuCi0jCi0jIFByb2Nlc3MgdG8gY3JlYXRlIHRoZSBycG0gZmlsZXMKLSMgYSkgY2xlYW4gdGhlIGtlcm5lbAotIyBiKSBHZW5lcmF0ZSAuc3BlYyBmaWxlCi0jIGMpIEJ1aWxkIGEgdGFyIGJhbGwsIHVzaW5nIHN5bWxpbmsgdG8gbWFrZSBrZXJuZWwgdmVyc2lvbgotIyAgICBmaXJzdCBlbnRyeSBpbiB0aGUgcGF0aAotIyBkKSBhbmQgcGFjayB0aGUgcmVzdWx0IHRvIGEgdGFyLmd6IGZpbGUKLSMgZSkgZ2VuZXJhdGUgdGhlIHJwbSBmaWxlcywgYmFzZWQgb24ga2VybmVsLnNwZWMKLSMgLSBVc2UgLy4gdG8gYXZvaWQgdGFyIHBhY2tpbmcganVzdCB0aGUgc3ltbGluawotCi0jIE5vdGUgdGhhdCB0aGUgcnBtLXBrZyB0YXJnZXQgY2Fubm90IGJlIHVzZWQgd2l0aCBLQlVJTERfT1VUUFVULAotIyBidXQgdGhlIGJpbnJwbS1wa2cgdGFyZ2V0IGNhbjsgZm9yIHNvbWUgcmVhc29uIE89IGdldHMgaWdub3JlZC4KLQotIyBSZW1vdmUgaHlwaGVucyBzaW5jZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5nIGluIFJQTSBmaWxlbmFtZXMKLUtFUk5FTFBBVEggOj0ga2VybmVsLSQoc3Vic3QgLSxfLCQoS0VSTkVMUkVMRUFTRSkpCi1LREVCX1NPVVJDRU5BTUUgPz0gbGludXgtJChLRVJORUxSRUxFQVNFKQotS0JVSUxEX1BLR19ST09UQ01EID89ImZha2Vyb290IC11IgotZXhwb3J0IEtERUJfU09VUkNFTkFNRQotIyBJbmNsdWRlIG9ubHkgdGhvc2UgdG9wLWxldmVsIGZpbGVzIHRoYXQgYXJlIG5lZWRlZCBieSBtYWtlLCBwbHVzIHRoZSBHUEwgY29weQotVEFSX0NPTlRFTlQgOj0gJChLQlVJTERfQUxMRElSUykgLmNvbmZpZyAuc2NtdmVyc2lvbiBNYWtlZmlsZSBcCi0gICAgICAgICAgICAgICBLYnVpbGQgS2NvbmZpZyBDT1BZSU5HICQod2lsZGNhcmQgbG9jYWx2ZXJzaW9uKikKLU1LU1BFQyAgICAgOj0gJChzcmN0cmVlKS9zY3JpcHRzL3BhY2thZ2UvbWtzcGVjCi0KLXF1aWV0X2NtZF9zcmNfdGFyID0gVEFSICAgICAkKDIpLnRhci5negotICAgICAgY21kX3NyY190YXIgPSBcCi1pZiB0ZXN0ICIkKG9ianRyZWUpIiAhPSAiJChzcmN0cmVlKSI7IHRoZW4gXAotCWVjaG8gPiYyOyBcCi0JZWNobyA+JjIgIiAgRVJST1I6IjsgXAotCWVjaG8gPiYyICIgIEJ1aWxkaW5nIHNvdXJjZSB0YXJiYWxsIGlzIG5vdCBwb3NzaWJsZSBvdXRzaWRlIHRoZSI7IFwKLQllY2hvID4mMiAiICBrZXJuZWwgc291cmNlIHRyZWUuIERvbid0IHNldCBLQlVJTERfT1VUUFVULCBvciB1c2UgdGhlIjsgXAotCWVjaG8gPiYyICIgIGJpbnJwbS1wa2cgb3IgYmluZGViLXBrZyB0YXJnZXQgaW5zdGVhZC4iOyBcCi0JZWNobyA+JjI7IFwKLQlmYWxzZTsgXAotZmkgOyBcCi0kKHNyY3RyZWUpL3NjcmlwdHMvc2V0bG9jYWx2ZXJzaW9uIC0tc2F2ZS1zY212ZXJzaW9uOyBcCi10YXIgLWN6ICQoUkNTX1RBUl9JR05PUkUpIC1mICQoMikudGFyLmd6IFwKLQktLXRyYW5zZm9ybSAnczpeOiQoMikvOlMnICQoVEFSX0NPTlRFTlQpICQoMyk7IFwKLXJtIC1mICQob2JqdHJlZSkvLnNjbXZlcnNpb24KLQotIyBycG0tcGtnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotcnBtLXBrZzogRk9SQ0UKLQkkKE1BS0UpIGNsZWFuCi0JJChDT05GSUdfU0hFTEwpICQoTUtTUEVDKSA+JChvYmp0cmVlKS9rZXJuZWwuc3BlYwotCSQoY2FsbCBjbWQsc3JjX3RhciwkKEtFUk5FTFBBVEgpLGtlcm5lbC5zcGVjKQotCStycG1idWlsZCAkKFJQTU9QVFMpIC0tdGFyZ2V0ICQoVVRTX01BQ0hJTkUpIC10YSAkKEtFUk5FTFBBVEgpLnRhci5neiBcCi0JLS1kZWZpbmU9J19zbXBfbWZsYWdzICV7bmlsfScKLQotIyBiaW5ycG0tcGtnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYmlucnBtLXBrZzogRk9SQ0UKLQkkKE1BS0UpIC1mICQoc3JjdHJlZSkvTWFrZWZpbGUKLQkkKENPTkZJR19TSEVMTCkgJChNS1NQRUMpIHByZWJ1aWx0ID4gJChvYmp0cmVlKS9iaW5rZXJuZWwuc3BlYwotCStycG1idWlsZCAkKFJQTU9QVFMpIC0tZGVmaW5lICJfYnVpbGRkaXIgJChvYmp0cmVlKSIgLS10YXJnZXQgXAotCQkkKFVUU19NQUNISU5FKSAtYmIgJChvYmp0cmVlKS9iaW5rZXJuZWwuc3BlYwotCi1jbGVhbi1maWxlcyArPSAkKG9ianRyZWUpLyouc3BlYwotCi1kZWItcGtnOiBGT1JDRQotCSQoTUFLRSkgY2xlYW4KLQkkKENPTkZJR19TSEVMTCkgJChzcmN0cmVlKS9zY3JpcHRzL3BhY2thZ2UvbWtkZWJpYW4KLQkkKGNhbGwgY21kLHNyY190YXIsJChLREVCX1NPVVJDRU5BTUUpKQotCW9yaWd2ZXJzaW9uPSQkKGRwa2ctcGFyc2VjaGFuZ2Vsb2cgLVNWZXJzaW9uIHxzZWQgJ3MvLVteLV0qJCQvLycpO1wKLQkJbXYgJChLREVCX1NPVVJDRU5BTUUpLnRhci5neiAuLi8kKEtERUJfU09VUkNFTkFNRSlfJCR7b3JpZ3ZlcnNpb259Lm9yaWcudGFyLmd6Ci0JK2Rwa2ctYnVpbGRwYWNrYWdlIC1yJChLQlVJTERfUEtHX1JPT1RDTUQpIC1hJCQoY2F0IGRlYmlhbi9hcmNoKSAkKERQS0dfRkxBR1MpIC1pLmdpdCAtdXMgLXVjCi0KLWJpbmRlYi1wa2c6IEZPUkNFCi0JJChDT05GSUdfU0hFTEwpICQoc3JjdHJlZSkvc2NyaXB0cy9wYWNrYWdlL21rZGViaWFuCi0JK2Rwa2ctYnVpbGRwYWNrYWdlIC1yJChLQlVJTERfUEtHX1JPT1RDTUQpIC1hJCQoY2F0IGRlYmlhbi9hcmNoKSAkKERQS0dfRkxBR1MpIC1iIC1uYyAtdWMKLQotaW50ZGViLXBrZzogRk9SQ0UKLQkrJChDT05GSUdfU0hFTEwpICQoc3JjdHJlZSkvc2NyaXB0cy9wYWNrYWdlL2J1aWxkZGViCi0KLWNsZWFuLWRpcnMgKz0gJChvYmp0cmVlKS9kZWJpYW4vCi0KLSMgc25hcC1wa2cKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zbmFwLXBrZzogRk9SQ0UKLQlybSAtcmYgJChvYmp0cmVlKS9zbmFwCi0JbWtkaXIgJChvYmp0cmVlKS9zbmFwCi0JJChNQUtFKSBjbGVhbgotCSQoY2FsbCBjbWQsc3JjX3RhciwkKEtFUk5FTFBBVEgpKQotCXNlZCAic0BLRVJORUxSRUxFQVNFQCQoS0VSTkVMUkVMRUFTRSlAOyBcCi0JCXNAU1JDVFJFRUAkKHNoZWxsIHJlYWxwYXRoICQoS0VSTkVMUEFUSCkudGFyLmd6KUAiIFwKLQkJJChzcmN0cmVlKS9zY3JpcHRzL3BhY2thZ2Uvc25hcGNyYWZ0LnRlbXBsYXRlID4gXAotCQkkKG9ianRyZWUpL3NuYXAvc25hcGNyYWZ0LnlhbWwKLQljZCAkKG9ianRyZWUpL3NuYXAgJiYgXAotCXNuYXBjcmFmdCAtLXRhcmdldC1hcmNoPSQoVVRTX01BQ0hJTkUpCi0KLWNsZWFuLWRpcnMgKz0gJChvYmp0cmVlKS9zbmFwLwotCi0jIHRhcmJhbGwgdGFyZ2V0cwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXRhciVwa2c6IEZPUkNFCi0JJChNQUtFKSAtZiAkKHNyY3RyZWUpL01ha2VmaWxlCi0JKyQoQ09ORklHX1NIRUxMKSAkKHNyY3RyZWUpL3NjcmlwdHMvcGFja2FnZS9idWlsZHRhciAkQAotCi1jbGVhbi1kaXJzICs9ICQob2JqdHJlZSkvdGFyLWluc3RhbGwvCi0KLQotIyBwZXJmLXBrZyAtIGdlbmVyYXRlIGEgc291cmNlIHRhcmJhbGwgd2l0aCBwZXJmIHNvdXJjZQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotcGVyZi10YXI9cGVyZi0kKEtFUk5FTFZFUlNJT04pCi0KLXF1aWV0X2NtZF9wZXJmX3RhciA9IFRBUgotICAgICAgY21kX3BlcmZfdGFyID0gXAotZ2l0IC0tZ2l0LWRpcj0kKHNyY3RyZWUpLy5naXQgYXJjaGl2ZSAtLXByZWZpeD0kKHBlcmYtdGFyKS8gICAgICAgICBcCi0JSEVBRF57dHJlZX0gJCQoY2QgJChzcmN0cmVlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCQkgICAgICAgZWNobyAkJChjYXQgdG9vbHMvcGVyZi9NQU5JRkVTVCkpIFwKLQktbyAkKHBlcmYtdGFyKS50YXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi1ta2RpciAtcCAkKHBlcmYtdGFyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLWdpdCAtLWdpdC1kaXI9JChzcmN0cmVlKS8uZ2l0IHJldi1wYXJzZSBIRUFEID4gJChwZXJmLXRhcikvSEVBRDsgICAgXAotKGNkICQoc3JjdHJlZSkvdG9vbHMvcGVyZjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi11dGlsL1BFUkYtVkVSU0lPTi1HRU4gJChDVVJESVIpLyQocGVyZi10YXIpLyk7ICAgICAgICAgICAgICBcCi10YXIgcmYgJChwZXJmLXRhcikudGFyICQocGVyZi10YXIpL0hFQUQgJChwZXJmLXRhcikvUEVSRi1WRVJTSU9OLUZJTEU7IFwKLXJtIC1yICQocGVyZi10YXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotJChpZiAkKGZpbmRzdHJpbmcgdGFyLXNyYywkQCksLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0kKGlmICQoZmluZHN0cmluZyBiejIsJEApLGJ6aXAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSQoaWYgJChmaW5kc3RyaW5nIGd6LCRAKSxnemlwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotJChpZiAkKGZpbmRzdHJpbmcgeHosJEApLHh6LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0kKGVycm9yIHVua25vd24gdGFyZ2V0ICRAKSkpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQktZiAtOSAkKHBlcmYtdGFyKS50YXIpCi0KLXBlcmYtJXBrZzogRk9SQ0UKLQkkKGNhbGwgY21kLHBlcmZfdGFyKQotCi0jIEhlbHAgdGV4dCBkaXNwbGF5ZWQgd2hlbiBleGVjdXRpbmcgJ21ha2UgaGVscCcKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1oZWxwOiBGT1JDRQotCUBlY2hvICcgIHJwbS1wa2cgICAgICAgICAgICAgLSBCdWlsZCBib3RoIHNvdXJjZSBhbmQgYmluYXJ5IFJQTSBrZXJuZWwgcGFja2FnZXMnCi0JQGVjaG8gJyAgYmlucnBtLXBrZyAgICAgICAgICAtIEJ1aWxkIG9ubHkgdGhlIGJpbmFyeSBrZXJuZWwgUlBNIHBhY2thZ2UnCi0JQGVjaG8gJyAgZGViLXBrZyAgICAgICAgICAgICAtIEJ1aWxkIGJvdGggc291cmNlIGFuZCBiaW5hcnkgZGViIGtlcm5lbCBwYWNrYWdlcycKLQlAZWNobyAnICBiaW5kZWItcGtnICAgICAgICAgIC0gQnVpbGQgb25seSB0aGUgYmluYXJ5IGtlcm5lbCBkZWIgcGFja2FnZScKLQlAZWNobyAnICBzbmFwLXBrZyAgICAgICAgICAgIC0gQnVpbGQgb25seSB0aGUgYmluYXJ5IGtlcm5lbCBzbmFwIHBhY2thZ2UgKHdpbGwgY29ubmVjdCB0byBleHRlcm5hbCBob3N0cyknCi0JQGVjaG8gJyAgdGFyLXBrZyAgICAgICAgICAgICAtIEJ1aWxkIHRoZSBrZXJuZWwgYXMgYW4gdW5jb21wcmVzc2VkIHRhcmJhbGwnCi0JQGVjaG8gJyAgdGFyZ3otcGtnICAgICAgICAgICAtIEJ1aWxkIHRoZSBrZXJuZWwgYXMgYSBnemlwIGNvbXByZXNzZWQgdGFyYmFsbCcKLQlAZWNobyAnICB0YXJiejItcGtnICAgICAgICAgIC0gQnVpbGQgdGhlIGtlcm5lbCBhcyBhIGJ6aXAyIGNvbXByZXNzZWQgdGFyYmFsbCcKLQlAZWNobyAnICB0YXJ4ei1wa2cgICAgICAgICAgIC0gQnVpbGQgdGhlIGtlcm5lbCBhcyBhIHh6IGNvbXByZXNzZWQgdGFyYmFsbCcKLQlAZWNobyAnICBwZXJmLXRhci1zcmMtcGtnICAgIC0gQnVpbGQgJChwZXJmLXRhcikudGFyIHNvdXJjZSB0YXJiYWxsJwotCUBlY2hvICcgIHBlcmYtdGFyZ3otc3JjLXBrZyAgLSBCdWlsZCAkKHBlcmYtdGFyKS50YXIuZ3ogc291cmNlIHRhcmJhbGwnCi0JQGVjaG8gJyAgcGVyZi10YXJiejItc3JjLXBrZyAtIEJ1aWxkICQocGVyZi10YXIpLnRhci5iejIgc291cmNlIHRhcmJhbGwnCi0JQGVjaG8gJyAgcGVyZi10YXJ4ei1zcmMtcGtnICAtIEJ1aWxkICQocGVyZi10YXIpLnRhci54eiBzb3VyY2UgdGFyYmFsbCcKZGlmZiAtLWdpdCBhL3NjcmlwdHMvcmVjb3JkbWNvdW50LmMgYi9zY3JpcHRzL3JlY29yZG1jb3VudC5jCmluZGV4IDgzODdhOWIuLjYxMjI2OGUgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvcmVjb3JkbWNvdW50LmMKKysrIGIvc2NyaXB0cy9yZWNvcmRtY291bnQuYwpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgPGdldG9wdC5oPgogI2luY2x1ZGUgPGVsZi5oPgogI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c2V0am1wLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KQEAgLTQzLDU2ICs0MiwzNyBAQCBzdGF0aWMgaW50IGZkX21hcDsJLyogRmlsZSBkZXNjcmlwdG9yIGZvciBmaWxlIGJlaW5nIG1vZGlmaWVkLiAqLwogc3RhdGljIGludCBtbWFwX2ZhaWxlZDsgLyogQm9vbGVhbiBmbGFnLiAqLwogc3RhdGljIGNoYXIgZ3BmeDsJLyogcHJlZml4IGZvciBnbG9iYWwgc3ltYm9sIG5hbWUgKHNvbWV0aW1lcyAnXycpICovCiBzdGF0aWMgc3RydWN0IHN0YXQgc2I7CS8qIFJlbWVtYmVyIC5zdF9zaXplLCBldGMuICovCi1zdGF0aWMgam1wX2J1ZiBqbXBlbnY7CS8qIHNldGptcC9sb25nam1wIHBlci1maWxlIGVycm9yIGVzY2FwZSAqLwogc3RhdGljIGNvbnN0IGNoYXIgKmFsdG1jb3VudDsJLyogYWx0ZXJuYXRlIG1jb3VudCBzeW1ib2wgbmFtZSAqLwogc3RhdGljIGludCB3YXJuX29uX25vdHJhY2Vfc2VjdDsgLyogd2FybiB3aGVuIHNlY3Rpb24gaGFzIG1jb3VudCBub3QgYmVpbmcgcmVjb3JkZWQgKi8KIHN0YXRpYyB2b2lkICpmaWxlX21hcDsJLyogcG9pbnRlciBvZiB0aGUgbWFwcGVkIGZpbGUgKi8KIHN0YXRpYyB2b2lkICpmaWxlX2VuZDsJLyogcG9pbnRlciB0byB0aGUgZW5kIG9mIHRoZSBtYXBwZWQgZmlsZSAqLwogc3RhdGljIGludCBmaWxlX3VwZGF0ZWQ7IC8qIGZsYWcgdG8gc3RhdGUgZmlsZSB3YXMgY2hhbmdlZCAqLwogc3RhdGljIHZvaWQgKmZpbGVfcHRyOwkvKiBjdXJyZW50IGZpbGUgcG9pbnRlciBsb2NhdGlvbiAqLworCiBzdGF0aWMgdm9pZCAqZmlsZV9hcHBlbmQ7IC8qIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGZpbGUgKi8KIHN0YXRpYyBzaXplX3QgZmlsZV9hcHBlbmRfc2l6ZTsgLyogaG93IG11Y2ggaXMgYWRkZWQgdG8gZW5kIG9mIGZpbGUgKi8KIAotLyogc2V0am1wKCkgcmV0dXJuIHZhbHVlcyAqLwotZW51bSB7Ci0JU0pfU0VUSk1QID0gMCwgIC8qIGhhcmR3aXJlZCBmaXJzdCByZXR1cm4gKi8KLQlTSl9GQUlMLAotCVNKX1NVQ0NFRUQKLX07Ci0KIC8qIFBlci1maWxlIHJlc291cmNlIGNsZWFudXAgd2hlbiBtdWx0aXBsZSBmaWxlcy4gKi8KLXN0YXRpYyB2b2lkCi1jbGVhbnVwKHZvaWQpCitzdGF0aWMgdm9pZCBmaWxlX2FwcGVuZF9jbGVhbnVwKHZvaWQpCiB7Ci0JaWYgKCFtbWFwX2ZhaWxlZCkKLQkJbXVubWFwKGZpbGVfbWFwLCBzYi5zdF9zaXplKTsKLQllbHNlCi0JCWZyZWUoZmlsZV9tYXApOwotCWZpbGVfbWFwID0gTlVMTDsKIAlmcmVlKGZpbGVfYXBwZW5kKTsKIAlmaWxlX2FwcGVuZCA9IE5VTEw7CiAJZmlsZV9hcHBlbmRfc2l6ZSA9IDA7CiAJZmlsZV91cGRhdGVkID0gMDsKIH0KIAotc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKQotZmFpbF9maWxlKHZvaWQpCitzdGF0aWMgdm9pZCBtbWFwX2NsZWFudXAodm9pZCkKIHsKLQljbGVhbnVwKCk7Ci0JbG9uZ2ptcChqbXBlbnYsIFNKX0ZBSUwpOworCWlmICghbW1hcF9mYWlsZWQpCisJCW11bm1hcChmaWxlX21hcCwgc2Iuc3Rfc2l6ZSk7CisJZWxzZQorCQlmcmVlKGZpbGVfbWFwKTsKKwlmaWxlX21hcCA9IE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSkKLXN1Y2NlZWRfZmlsZSh2b2lkKQotewotCWNsZWFudXAoKTsKLQlsb25nam1wKGptcGVudiwgU0pfU1VDQ0VFRCk7Ci19CisvKiB1bHNlZWssIHV3cml0ZSwgLi4uOiAgQ2hlY2sgcmV0dXJuIHZhbHVlIGZvciBlcnJvcnMuICovCiAKLS8qIHVsc2VlaywgdXJlYWQsIC4uLjogIENoZWNrIHJldHVybiB2YWx1ZSBmb3IgZXJyb3JzLiAqLwotCi1zdGF0aWMgb2ZmX3QKLXVsc2VlayhpbnQgY29uc3QgZmQsIG9mZl90IGNvbnN0IG9mZnNldCwgaW50IGNvbnN0IHdoZW5jZSkKK3N0YXRpYyBvZmZfdCB1bHNlZWsob2ZmX3QgY29uc3Qgb2Zmc2V0LCBpbnQgY29uc3Qgd2hlbmNlKQogewogCXN3aXRjaCAod2hlbmNlKSB7CiAJY2FzZSBTRUVLX1NFVDoKQEAgLTEwNywyNCArODcsMTIgQEAgdWxzZWVrKGludCBjb25zdCBmZCwgb2ZmX3QgY29uc3Qgb2Zmc2V0LCBpbnQgY29uc3Qgd2hlbmNlKQogCX0KIAlpZiAoZmlsZV9wdHIgPCBmaWxlX21hcCkgewogCQlmcHJpbnRmKHN0ZGVyciwgImxzZWVrOiBzZWVrIGJlZm9yZSBmaWxlXG4iKTsKLQkJZmFpbF9maWxlKCk7CisJCXJldHVybiAtMTsKIAl9CiAJcmV0dXJuIGZpbGVfcHRyIC0gZmlsZV9tYXA7CiB9CiAKLXN0YXRpYyBzaXplX3QKLXVyZWFkKGludCBjb25zdCBmZCwgdm9pZCAqY29uc3QgYnVmLCBzaXplX3QgY29uc3QgY291bnQpCi17Ci0Jc2l6ZV90IGNvbnN0IG4gPSByZWFkKGZkLCBidWYsIGNvdW50KTsKLQlpZiAobiAhPSBjb3VudCkgewotCQlwZXJyb3IoInJlYWQiKTsKLQkJZmFpbF9maWxlKCk7Ci0JfQotCXJldHVybiBuOwotfQotCi1zdGF0aWMgc2l6ZV90Ci11d3JpdGUoaW50IGNvbnN0IGZkLCB2b2lkIGNvbnN0ICpjb25zdCBidWYsIHNpemVfdCBjb25zdCBjb3VudCkKK3N0YXRpYyBzc2l6ZV90IHV3cml0ZSh2b2lkIGNvbnN0ICpjb25zdCBidWYsIHNpemVfdCBjb25zdCBjb3VudCkKIHsKIAlzaXplX3QgY250ID0gY291bnQ7CiAJb2ZmX3QgaWR4ID0gMDsKQEAgLTE0MCw3ICsxMDgsOSBAQCB1d3JpdGUoaW50IGNvbnN0IGZkLCB2b2lkIGNvbnN0ICpjb25zdCBidWYsIHNpemVfdCBjb25zdCBjb3VudCkKIAkJfQogCQlpZiAoIWZpbGVfYXBwZW5kKSB7CiAJCQlwZXJyb3IoIndyaXRlIik7Ci0JCQlmYWlsX2ZpbGUoKTsKKwkJCWZpbGVfYXBwZW5kX2NsZWFudXAoKTsKKwkJCW1tYXBfY2xlYW51cCgpOworCQkJcmV0dXJuIC0xOwogCQl9CiAJCWlmIChmaWxlX3B0ciA8IGZpbGVfZW5kKSB7CiAJCQljbnQgPSBmaWxlX2VuZCAtIGZpbGVfcHRyOwpAQCAtMTYwLDE3ICsxMzAsODEgQEAgdXdyaXRlKGludCBjb25zdCBmZCwgdm9pZCBjb25zdCAqY29uc3QgYnVmLCBzaXplX3QgY29uc3QgY291bnQpCiAJcmV0dXJuIGNvdW50OwogfQogCi1zdGF0aWMgdm9pZCAqCi11bWFsbG9jKHNpemVfdCBzaXplKQorc3RhdGljIHZvaWQgKiB1bWFsbG9jKHNpemVfdCBzaXplKQogewogCXZvaWQgKmNvbnN0IGFkZHIgPSBtYWxsb2Moc2l6ZSk7CiAJaWYgKGFkZHIgPT0gMCkgewogCQlmcHJpbnRmKHN0ZGVyciwgIm1hbGxvYyBmYWlsZWQ6ICV6dSBieXRlc1xuIiwgc2l6ZSk7Ci0JCWZhaWxfZmlsZSgpOworCQlmaWxlX2FwcGVuZF9jbGVhbnVwKCk7CisJCW1tYXBfY2xlYW51cCgpOworCQlyZXR1cm4gTlVMTDsKIAl9CiAJcmV0dXJuIGFkZHI7CiB9CiAKKy8qCisgKiBHZXQgdGhlIHdob2xlIGZpbGUgYXMgYSBwcm9ncmFtbWluZyBjb252ZW5pZW5jZSBpbiBvcmRlciB0byBhdm9pZAorICogbWFsbG9jK2xzZWVrK3JlYWQrZnJlZSBvZiBtYW55IHBpZWNlcy4gIElmIHN1Y2Nlc3NmdWwsIHRoZW4gbW1hcAorICogYXZvaWRzIGNvcHlpbmcgdW51c2VkIHBpZWNlczsgZWxzZSBqdXN0IHJlYWQgdGhlIHdob2xlIGZpbGUuCisgKiBPcGVuIGZvciBib3RoIHJlYWQgYW5kIHdyaXRlOyBuZXcgaW5mbyB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBmaWxlLgorICogVXNlIE1BUF9QUklWQVRFIHNvIHRoYXQgYSBmZXcgY2hhbmdlcyB0byB0aGUgaW4tbWVtb3J5IEVsZlhYX0VoZHIKKyAqIGRvIG5vdCBwcm9wYWdhdGUgdG8gdGhlIGZpbGUgdW50aWwgYW4gZXhwbGljaXQgb3ZlcndyaXRlIGF0IHRoZSBsYXN0LgorICogVGhpcyBwcmVzZXJ2ZXMgbW9zdCBhc3BlY3RzIG9mIGNvbnNpc3RlbmN5IChhbGwgZXhjZXB0IC5zdF9zaXplKQorICogZm9yIHNpbXVsdGFuZW91cyByZWFkZXJzIG9mIHRoZSBmaWxlIHdoaWxlIHdlIGFyZSBhcHBlbmRpbmcgdG8gaXQuCisgKiBIb3dldmVyLCBtdWx0aXBsZSB3cml0ZXJzIHN0aWxsIGFyZSBiYWQuICBXZSBjaG9vc2Ugbm90IHRvIHVzZQorICogbG9ja2luZyBiZWNhdXNlIGl0IGlzIGV4cGVuc2l2ZSBhbmQgdGhlIHVzZSBjYXNlIG9mIGtlcm5lbCBidWlsZAorICogbWFrZXMgbXVsdGlwbGUgd3JpdGVycyB1bmxpa2VseS4KKyAqLworc3RhdGljIHZvaWQgKm1tYXBfZmlsZShjaGFyIGNvbnN0ICpmbmFtZSkKK3sKKwkvKiBBdm9pZCBwcm9ibGVtcyBpZiBlYXJseSBjbGVhbnVwKCkgKi8KKwlmZF9tYXAgPSAtMTsKKwltbWFwX2ZhaWxlZCA9IDE7CisJZmlsZV9tYXAgPSBOVUxMOworCWZpbGVfcHRyID0gTlVMTDsKKwlmaWxlX3VwZGF0ZWQgPSAwOworCXNiLnN0X3NpemUgPSAwOworCisJZmRfbWFwID0gb3BlbihmbmFtZSwgT19SRE9OTFkpOworCWlmIChmZF9tYXAgPCAwKSB7CisJCXBlcnJvcihmbmFtZSk7CisJCXJldHVybiBOVUxMOworCX0KKwlpZiAoZnN0YXQoZmRfbWFwLCAmc2IpIDwgMCkgeworCQlwZXJyb3IoZm5hbWUpOworCQlnb3RvIG91dDsKKwl9CisJaWYgKCFTX0lTUkVHKHNiLnN0X21vZGUpKSB7CisJCWZwcmludGYoc3RkZXJyLCAibm90IGEgcmVndWxhciBmaWxlOiAlc1xuIiwgZm5hbWUpOworCQlnb3RvIG91dDsKKwl9CisJZmlsZV9tYXAgPSBtbWFwKDAsIHNiLnN0X3NpemUsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSwKKwkJCWZkX21hcCwgMCk7CisJaWYgKGZpbGVfbWFwID09IE1BUF9GQUlMRUQpIHsKKwkJbW1hcF9mYWlsZWQgPSAxOworCQlmaWxlX21hcCA9IHVtYWxsb2Moc2Iuc3Rfc2l6ZSk7CisJCWlmICghZmlsZV9tYXApIHsKKwkJCXBlcnJvcihmbmFtZSk7CisJCQlnb3RvIG91dDsKKwkJfQorCQlpZiAocmVhZChmZF9tYXAsIGZpbGVfbWFwLCBzYi5zdF9zaXplKSAhPSBzYi5zdF9zaXplKSB7CisJCQlwZXJyb3IoZm5hbWUpOworCQkJZnJlZShmaWxlX21hcCk7CisJCQlmaWxlX21hcCA9IE5VTEw7CisJCQlnb3RvIG91dDsKKwkJfQorCX0gZWxzZQorCQltbWFwX2ZhaWxlZCA9IDA7CitvdXQ6CisJY2xvc2UoZmRfbWFwKTsKKwlmZF9tYXAgPSAtMTsKKworCWZpbGVfZW5kID0gZmlsZV9tYXAgKyBzYi5zdF9zaXplOworCisJcmV0dXJuIGZpbGVfbWFwOworfQorCisKIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGlkZWFsX25vcDVfeDg2XzY0WzVdID0geyAweDBmLCAweDFmLCAweDQ0LCAweDAwLCAweDAwIH07CiBzdGF0aWMgdW5zaWduZWQgY2hhciBpZGVhbF9ub3A1X3g4Nl8zMls1XSA9IHsgMHgzZSwgMHg4ZCwgMHg3NCwgMHgyNiwgMHgwMCB9Owogc3RhdGljIHVuc2lnbmVkIGNoYXIgKmlkZWFsX25vcDsKQEAgLTE5NCw4ICsyMjgsMTAgQEAgc3RhdGljIGludCBtYWtlX25vcF94ODYodm9pZCAqbWFwLCBzaXplX3QgY29uc3Qgb2Zmc2V0KQogCQlyZXR1cm4gLTE7CiAKIAkvKiBjb252ZXJ0IHRvIG5vcCAqLwotCXVsc2VlayhmZF9tYXAsIG9mZnNldCAtIDEsIFNFRUtfU0VUKTsKLQl1d3JpdGUoZmRfbWFwLCBpZGVhbF9ub3AsIDUpOworCWlmICh1bHNlZWsob2Zmc2V0IC0gMSwgU0VFS19TRVQpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmICh1d3JpdGUoaWRlYWxfbm9wLCA1KSA8IDApCisJCXJldHVybiAtMTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjQzLDEwICsyNzksMTIgQEAgc3RhdGljIGludCBtYWtlX25vcF9hcm0odm9pZCAqbWFwLCBzaXplX3QgY29uc3Qgb2Zmc2V0KQogCQlyZXR1cm4gLTE7CiAKIAkvKiBDb252ZXJ0IHRvIG5vcCAqLwotCXVsc2VlayhmZF9tYXAsIG9mZiwgU0VFS19TRVQpOworCWlmICh1bHNlZWsob2ZmLCBTRUVLX1NFVCkgPCAwKQorCQlyZXR1cm4gLTE7CiAKIAlkbyB7Ci0JCXV3cml0ZShmZF9tYXAsIGlkZWFsX25vcCwgbm9wX3NpemUpOworCQlpZiAodXdyaXRlKGlkZWFsX25vcCwgbm9wX3NpemUpIDwgMCkKKwkJCXJldHVybiAtMTsKIAl9IHdoaWxlICgtLWNudCA+IDApOwogCiAJcmV0dXJuIDA7CkBAIC0yNjMsNTcgKzMwMSwyMCBAQCBzdGF0aWMgaW50IG1ha2Vfbm9wX2FybTY0KHZvaWQgKm1hcCwgc2l6ZV90IGNvbnN0IG9mZnNldCkKIAkJcmV0dXJuIC0xOwogCiAJLyogQ29udmVydCB0byBub3AgKi8KLQl1bHNlZWsoZmRfbWFwLCBvZmZzZXQsIFNFRUtfU0VUKTsKLQl1d3JpdGUoZmRfbWFwLCBpZGVhbF9ub3AsIDQpOworCWlmICh1bHNlZWsob2Zmc2V0LCBTRUVLX1NFVCkgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKHV3cml0ZShpZGVhbF9ub3AsIDQpIDwgMCkKKwkJcmV0dXJuIC0xOwogCXJldHVybiAwOwogfQogCi0vKgotICogR2V0IHRoZSB3aG9sZSBmaWxlIGFzIGEgcHJvZ3JhbW1pbmcgY29udmVuaWVuY2UgaW4gb3JkZXIgdG8gYXZvaWQKLSAqIG1hbGxvYytsc2VlaytyZWFkK2ZyZWUgb2YgbWFueSBwaWVjZXMuICBJZiBzdWNjZXNzZnVsLCB0aGVuIG1tYXAKLSAqIGF2b2lkcyBjb3B5aW5nIHVudXNlZCBwaWVjZXM7IGVsc2UganVzdCByZWFkIHRoZSB3aG9sZSBmaWxlLgotICogT3BlbiBmb3IgYm90aCByZWFkIGFuZCB3cml0ZTsgbmV3IGluZm8gd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZmlsZS4KLSAqIFVzZSBNQVBfUFJJVkFURSBzbyB0aGF0IGEgZmV3IGNoYW5nZXMgdG8gdGhlIGluLW1lbW9yeSBFbGZYWF9FaGRyCi0gKiBkbyBub3QgcHJvcGFnYXRlIHRvIHRoZSBmaWxlIHVudGlsIGFuIGV4cGxpY2l0IG92ZXJ3cml0ZSBhdCB0aGUgbGFzdC4KLSAqIFRoaXMgcHJlc2VydmVzIG1vc3QgYXNwZWN0cyBvZiBjb25zaXN0ZW5jeSAoYWxsIGV4Y2VwdCAuc3Rfc2l6ZSkKLSAqIGZvciBzaW11bHRhbmVvdXMgcmVhZGVycyBvZiB0aGUgZmlsZSB3aGlsZSB3ZSBhcmUgYXBwZW5kaW5nIHRvIGl0LgotICogSG93ZXZlciwgbXVsdGlwbGUgd3JpdGVycyBzdGlsbCBhcmUgYmFkLiAgV2UgY2hvb3NlIG5vdCB0byB1c2UKLSAqIGxvY2tpbmcgYmVjYXVzZSBpdCBpcyBleHBlbnNpdmUgYW5kIHRoZSB1c2UgY2FzZSBvZiBrZXJuZWwgYnVpbGQKLSAqIG1ha2VzIG11bHRpcGxlIHdyaXRlcnMgdW5saWtlbHkuCi0gKi8KLXN0YXRpYyB2b2lkICptbWFwX2ZpbGUoY2hhciBjb25zdCAqZm5hbWUpCi17Ci0JZmRfbWFwID0gb3BlbihmbmFtZSwgT19SRE9OTFkpOwotCWlmIChmZF9tYXAgPCAwIHx8IGZzdGF0KGZkX21hcCwgJnNiKSA8IDApIHsKLQkJcGVycm9yKGZuYW1lKTsKLQkJZmFpbF9maWxlKCk7Ci0JfQotCWlmICghU19JU1JFRyhzYi5zdF9tb2RlKSkgewotCQlmcHJpbnRmKHN0ZGVyciwgIm5vdCBhIHJlZ3VsYXIgZmlsZTogJXNcbiIsIGZuYW1lKTsKLQkJZmFpbF9maWxlKCk7Ci0JfQotCWZpbGVfbWFwID0gbW1hcCgwLCBzYi5zdF9zaXplLCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BSSVZBVEUsCi0JCQlmZF9tYXAsIDApOwotCW1tYXBfZmFpbGVkID0gMDsKLQlpZiAoZmlsZV9tYXAgPT0gTUFQX0ZBSUxFRCkgewotCQltbWFwX2ZhaWxlZCA9IDE7Ci0JCWZpbGVfbWFwID0gdW1hbGxvYyhzYi5zdF9zaXplKTsKLQkJdXJlYWQoZmRfbWFwLCBmaWxlX21hcCwgc2Iuc3Rfc2l6ZSk7Ci0JfQotCWNsb3NlKGZkX21hcCk7Ci0KLQlmaWxlX2VuZCA9IGZpbGVfbWFwICsgc2Iuc3Rfc2l6ZTsKLQotCXJldHVybiBmaWxlX21hcDsKLX0KLQotc3RhdGljIHZvaWQgd3JpdGVfZmlsZShjb25zdCBjaGFyICpmbmFtZSkKK3N0YXRpYyBpbnQgd3JpdGVfZmlsZShjb25zdCBjaGFyICpmbmFtZSkKIHsKIAljaGFyIHRtcF9maWxlW3N0cmxlbihmbmFtZSkgKyA0XTsKIAlzaXplX3QgbjsKIAogCWlmICghZmlsZV91cGRhdGVkKQotCQlyZXR1cm47CisJCXJldHVybiAwOwogCiAJc3ByaW50Zih0bXBfZmlsZSwgIiVzLnJjIiwgZm5hbWUpOwogCkBAIC0zMjUsMjUgKzMyNiwyOCBAQCBzdGF0aWMgdm9pZCB3cml0ZV9maWxlKGNvbnN0IGNoYXIgKmZuYW1lKQogCWZkX21hcCA9IG9wZW4odG1wX2ZpbGUsIE9fV1JPTkxZIHwgT19UUlVOQyB8IE9fQ1JFQVQsIHNiLnN0X21vZGUpOwogCWlmIChmZF9tYXAgPCAwKSB7CiAJCXBlcnJvcihmbmFtZSk7Ci0JCWZhaWxfZmlsZSgpOworCQlyZXR1cm4gLTE7CiAJfQogCW4gPSB3cml0ZShmZF9tYXAsIGZpbGVfbWFwLCBzYi5zdF9zaXplKTsKIAlpZiAobiAhPSBzYi5zdF9zaXplKSB7CiAJCXBlcnJvcigid3JpdGUiKTsKLQkJZmFpbF9maWxlKCk7CisJCWNsb3NlKGZkX21hcCk7CisJCXJldHVybiAtMTsKIAl9CiAJaWYgKGZpbGVfYXBwZW5kX3NpemUpIHsKIAkJbiA9IHdyaXRlKGZkX21hcCwgZmlsZV9hcHBlbmQsIGZpbGVfYXBwZW5kX3NpemUpOwogCQlpZiAobiAhPSBmaWxlX2FwcGVuZF9zaXplKSB7CiAJCQlwZXJyb3IoIndyaXRlIik7Ci0JCQlmYWlsX2ZpbGUoKTsKKwkJCWNsb3NlKGZkX21hcCk7CisJCQlyZXR1cm4gLTE7CiAJCX0KIAl9CiAJY2xvc2UoZmRfbWFwKTsKIAlpZiAocmVuYW1lKHRtcF9maWxlLCBmbmFtZSkgPCAwKSB7CiAJCXBlcnJvcihmbmFtZSk7Ci0JCWZhaWxfZmlsZSgpOworCQlyZXR1cm4gLTE7CiAJfQorCXJldHVybiAwOwogfQogCiAvKiB3OHJldiwgdzhuYXQsIC4uLjogSGFuZGxlIGVuZGlhbm5lc3MuICovCkBAIC0zOTQsOCArMzk4LDcgQEAgc3RhdGljIHVpbnQzMl90ICgqdykodWludDMyX3QpOwogc3RhdGljIHVpbnQzMl90ICgqdzIpKHVpbnQxNl90KTsKIAogLyogTmFtZXMgb2YgdGhlIHNlY3Rpb25zIHRoYXQgY291bGQgY29udGFpbiBjYWxscyB0byBtY291bnQuICovCi1zdGF0aWMgaW50Ci1pc19tY291bnRlZF9zZWN0aW9uX25hbWUoY2hhciBjb25zdCAqY29uc3QgdHh0bmFtZSkKK3N0YXRpYyBpbnQgaXNfbWNvdW50ZWRfc2VjdGlvbl9uYW1lKGNoYXIgY29uc3QgKmNvbnN0IHR4dG5hbWUpCiB7CiAJcmV0dXJuIHN0cm5jbXAoIi50ZXh0IiwgICAgICAgICAgdHh0bmFtZSwgNSkgPT0gMCB8fAogCQlzdHJjbXAoIi5pbml0LnRleHQiLCAgICAgdHh0bmFtZSkgPT0gMCB8fApAQCAtNDA1LDEwICs0MDgsMTEgQEAgaXNfbWNvdW50ZWRfc2VjdGlvbl9uYW1lKGNoYXIgY29uc3QgKmNvbnN0IHR4dG5hbWUpCiAJCXN0cmNtcCgiLmlycWVudHJ5LnRleHQiLCB0eHRuYW1lKSA9PSAwIHx8CiAJCXN0cmNtcCgiLnNvZnRpcnFlbnRyeS50ZXh0IiwgdHh0bmFtZSkgPT0gMCB8fAogCQlzdHJjbXAoIi5rcHJvYmVzLnRleHQiLCB0eHRuYW1lKSA9PSAwIHx8Ci0JCXN0cmNtcCgiLmNwdWlkbGUudGV4dCIsIHR4dG5hbWUpID09IDAgfHwKLQkJc3RyY21wKCIudGV4dC51bmxpa2VseSIsIHR4dG5hbWUpID09IDA7CisJCXN0cmNtcCgiLmNwdWlkbGUudGV4dCIsIHR4dG5hbWUpID09IDA7CiB9CiAKK3N0YXRpYyBjaGFyIGNvbnN0ICphbHJlYWR5X2hhc19yZWxfbWNvdW50ID0gInN1Y2Nlc3MiOyAvKiBvdXIgd29yayBoZXJlIGlzIGRvbmUhICovCisKIC8qIDMyIGJpdCBhbmQgNjQgYml0IGFyZSB2ZXJ5IHNpbWlsYXIgKi8KICNpbmNsdWRlICJyZWNvcmRtY291bnQuaCIKICNkZWZpbmUgUkVDT1JEX01DT1VOVF82NApAQCAtNDQ3LDExICs0NTEsMTUgQEAgc3RhdGljIHZvaWQgTUlQUzY0X3JfaW5mbyhFbGY2NF9SZWwgKmNvbnN0IHJwLCB1bnNpZ25lZCBzeW0sIHVuc2lnbmVkIHR5cGUpCiAJfSkucl9pbmZvOwogfQogCi1zdGF0aWMgdm9pZAotZG9fZmlsZShjaGFyIGNvbnN0ICpjb25zdCBmbmFtZSkKK3N0YXRpYyBpbnQgZG9fZmlsZShjaGFyIGNvbnN0ICpjb25zdCBmbmFtZSkKIHsKLQlFbGYzMl9FaGRyICpjb25zdCBlaGRyID0gbW1hcF9maWxlKGZuYW1lKTsKIAl1bnNpZ25lZCBpbnQgcmVsdHlwZSA9IDA7CisJRWxmMzJfRWhkciAqZWhkcjsKKwlpbnQgcmMgPSAtMTsKKworCWVoZHIgPSBtbWFwX2ZpbGUoZm5hbWUpOworCWlmICghZWhkcikKKwkJZ290byBvdXQ7CiAKIAl3ID0gdzRuYXQ7CiAJdzIgPSB3Mm5hdDsKQEAgLTQ2MSw4ICs0NjksNyBAQCBkb19maWxlKGNoYXIgY29uc3QgKmNvbnN0IGZuYW1lKQogCWRlZmF1bHQ6CiAJCWZwcmludGYoc3RkZXJyLCAidW5yZWNvZ25pemVkIEVMRiBkYXRhIGVuY29kaW5nICVkOiAlc1xuIiwKIAkJCWVoZHItPmVfaWRlbnRbRUlfREFUQV0sIGZuYW1lKTsKLQkJZmFpbF9maWxlKCk7Ci0JCWJyZWFrOworCQlnb3RvIG91dDsKIAljYXNlIEVMRkRBVEEyTFNCOgogCQlpZiAoKih1bnNpZ25lZCBjaGFyIGNvbnN0ICopJmVuZGlhbiAhPSAxKSB7CiAJCQkvKiBtYWluKCkgaXMgYmlnIGVuZGlhbiwgZmlsZS5vIGlzIGxpdHRsZSBlbmRpYW4uICovCkBAIC00OTAsNTIgKzQ5Nyw1NCBAQCBkb19maWxlKGNoYXIgY29uc3QgKmNvbnN0IGZuYW1lKQogCQlwdXNoX2JsX21jb3VudF90aHVtYiA9IHB1c2hfYmxfbWNvdW50X3RodW1iX2JlOwogCQlicmVhazsKIAl9ICAvKiBlbmQgc3dpdGNoICovCi0JaWYgKG1lbWNtcChFTEZNQUcsIGVoZHItPmVfaWRlbnQsIFNFTEZNQUcpICE9IDAKLQl8fCAgdzIoZWhkci0+ZV90eXBlKSAhPSBFVF9SRUwKLQl8fCAgZWhkci0+ZV9pZGVudFtFSV9WRVJTSU9OXSAhPSBFVl9DVVJSRU5UKSB7CisJaWYgKG1lbWNtcChFTEZNQUcsIGVoZHItPmVfaWRlbnQsIFNFTEZNQUcpICE9IDAgfHwKKwkgICAgdzIoZWhkci0+ZV90eXBlKSAhPSBFVF9SRUwgfHwKKwkgICAgZWhkci0+ZV9pZGVudFtFSV9WRVJTSU9OXSAhPSBFVl9DVVJSRU5UKSB7CiAJCWZwcmludGYoc3RkZXJyLCAidW5yZWNvZ25pemVkIEVUX1JFTCBmaWxlICVzXG4iLCBmbmFtZSk7Ci0JCWZhaWxfZmlsZSgpOworCQlnb3RvIG91dDsKIAl9CiAKLQlncGZ4ID0gMDsKKwlncGZ4ID0gJ18nOwogCXN3aXRjaCAodzIoZWhkci0+ZV9tYWNoaW5lKSkgewogCWRlZmF1bHQ6CiAJCWZwcmludGYoc3RkZXJyLCAidW5yZWNvZ25pemVkIGVfbWFjaGluZSAldSAlc1xuIiwKIAkJCXcyKGVoZHItPmVfbWFjaGluZSksIGZuYW1lKTsKLQkJZmFpbF9maWxlKCk7Ci0JCWJyZWFrOworCQlnb3RvIG91dDsKIAljYXNlIEVNXzM4NjoKIAkJcmVsdHlwZSA9IFJfMzg2XzMyOwogCQlyZWxfdHlwZV9ub3AgPSBSXzM4Nl9OT05FOwogCQltYWtlX25vcCA9IG1ha2Vfbm9wX3g4NjsKIAkJaWRlYWxfbm9wID0gaWRlYWxfbm9wNV94ODZfMzI7CiAJCW1jb3VudF9hZGp1c3RfMzIgPSAtMTsKKwkJZ3BmeCA9IDA7CiAJCWJyZWFrOwotCWNhc2UgRU1fQVJNOgkgcmVsdHlwZSA9IFJfQVJNX0FCUzMyOwotCQkJIGFsdG1jb3VudCA9ICJfX2dudV9tY291bnRfbmMiOwotCQkJIG1ha2Vfbm9wID0gbWFrZV9ub3BfYXJtOwotCQkJIHJlbF90eXBlX25vcCA9IFJfQVJNX05PTkU7Ci0JCQkgYnJlYWs7CisJY2FzZSBFTV9BUk06CisJCXJlbHR5cGUgPSBSX0FSTV9BQlMzMjsKKwkJYWx0bWNvdW50ID0gIl9fZ251X21jb3VudF9uYyI7CisJCW1ha2Vfbm9wID0gbWFrZV9ub3BfYXJtOworCQlyZWxfdHlwZV9ub3AgPSBSX0FSTV9OT05FOworCQlncGZ4ID0gMDsKKwkJYnJlYWs7CiAJY2FzZSBFTV9BQVJDSDY0OgotCQkJcmVsdHlwZSA9IFJfQUFSQ0g2NF9BQlM2NDsKLQkJCW1ha2Vfbm9wID0gbWFrZV9ub3BfYXJtNjQ7Ci0JCQlyZWxfdHlwZV9ub3AgPSBSX0FBUkNINjRfTk9ORTsKLQkJCWlkZWFsX25vcCA9IGlkZWFsX25vcDRfYXJtNjQ7Ci0JCQlncGZ4ID0gJ18nOwotCQkJYnJlYWs7Ci0JY2FzZSBFTV9JQV82NDoJIHJlbHR5cGUgPSBSX0lBNjRfSU1NNjQ7ICAgZ3BmeCA9ICdfJzsgYnJlYWs7Ci0JY2FzZSBFTV9NSVBTOgkgLyogcmVsdHlwZTogZV9jbGFzcyAgICAqLyBncGZ4ID0gJ18nOyBicmVhazsKLQljYXNlIEVNX1BQQzoJIHJlbHR5cGUgPSBSX1BQQ19BRERSMzI7ICAgZ3BmeCA9ICdfJzsgYnJlYWs7Ci0JY2FzZSBFTV9QUEM2NDoJIHJlbHR5cGUgPSBSX1BQQzY0X0FERFI2NDsgZ3BmeCA9ICdfJzsgYnJlYWs7Ci0JY2FzZSBFTV9TMzkwOiAgICAvKiByZWx0eXBlOiBlX2NsYXNzICAgICovIGdwZnggPSAnXyc7IGJyZWFrOwotCWNhc2UgRU1fU0g6CSByZWx0eXBlID0gUl9TSF9ESVIzMjsgICAgICAgICAgICAgICAgIGJyZWFrOwotCWNhc2UgRU1fU1BBUkNWOTogcmVsdHlwZSA9IFJfU1BBUkNfNjQ7ICAgICBncGZ4ID0gJ18nOyBicmVhazsKKwkJcmVsdHlwZSA9IFJfQUFSQ0g2NF9BQlM2NDsKKwkJbWFrZV9ub3AgPSBtYWtlX25vcF9hcm02NDsKKwkJcmVsX3R5cGVfbm9wID0gUl9BQVJDSDY0X05PTkU7CisJCWlkZWFsX25vcCA9IGlkZWFsX25vcDRfYXJtNjQ7CisJCWJyZWFrOworCWNhc2UgRU1fSUFfNjQ6CXJlbHR5cGUgPSBSX0lBNjRfSU1NNjQ7IGJyZWFrOworCWNhc2UgRU1fTUlQUzoJLyogcmVsdHlwZTogZV9jbGFzcyAgICAqLyBicmVhazsKKwljYXNlIEVNX1BQQzoJcmVsdHlwZSA9IFJfUFBDX0FERFIzMjsgYnJlYWs7CisJY2FzZSBFTV9QUEM2NDoJcmVsdHlwZSA9IFJfUFBDNjRfQUREUjY0OyBicmVhazsKKwljYXNlIEVNX1MzOTA6CS8qIHJlbHR5cGU6IGVfY2xhc3MgICAgKi8gYnJlYWs7CisJY2FzZSBFTV9TSDoJcmVsdHlwZSA9IFJfU0hfRElSMzI7IGdwZnggPSAwOyBicmVhazsKKwljYXNlIEVNX1NQQVJDVjk6IHJlbHR5cGUgPSBSX1NQQVJDXzY0OyBicmVhazsKIAljYXNlIEVNX1g4Nl82NDoKIAkJbWFrZV9ub3AgPSBtYWtlX25vcF94ODY7CiAJCWlkZWFsX25vcCA9IGlkZWFsX25vcDVfeDg2XzY0OwogCQlyZWx0eXBlID0gUl9YODZfNjRfNjQ7CiAJCXJlbF90eXBlX25vcCA9IFJfWDg2XzY0X05PTkU7CiAJCW1jb3VudF9hZGp1c3RfNjQgPSAtMTsKKwkJZ3BmeCA9IDA7CiAJCWJyZWFrOwogCX0gIC8qIGVuZCBzd2l0Y2ggKi8KIApAQCAtNTQzLDIwICs1NTIsMjAgQEAgZG9fZmlsZShjaGFyIGNvbnN0ICpjb25zdCBmbmFtZSkKIAlkZWZhdWx0OgogCQlmcHJpbnRmKHN0ZGVyciwgInVucmVjb2duaXplZCBFTEYgY2xhc3MgJWQgJXNcbiIsCiAJCQllaGRyLT5lX2lkZW50W0VJX0NMQVNTXSwgZm5hbWUpOwotCQlmYWlsX2ZpbGUoKTsKLQkJYnJlYWs7CisJCWdvdG8gb3V0OwogCWNhc2UgRUxGQ0xBU1MzMjoKIAkJaWYgKHcyKGVoZHItPmVfZWhzaXplKSAhPSBzaXplb2YoRWxmMzJfRWhkcikKIAkJfHwgIHcyKGVoZHItPmVfc2hlbnRzaXplKSAhPSBzaXplb2YoRWxmMzJfU2hkcikpIHsKIAkJCWZwcmludGYoc3RkZXJyLAogCQkJCSJ1bnJlY29nbml6ZWQgRVRfUkVMIGZpbGU6ICVzXG4iLCBmbmFtZSk7Ci0JCQlmYWlsX2ZpbGUoKTsKKwkJCWdvdG8gb3V0OwogCQl9CiAJCWlmICh3MihlaGRyLT5lX21hY2hpbmUpID09IEVNX01JUFMpIHsKIAkJCXJlbHR5cGUgPSBSX01JUFNfMzI7CiAJCQlpc19mYWtlX21jb3VudDMyID0gTUlQUzMyX2lzX2Zha2VfbWNvdW50OwogCQl9Ci0JCWRvMzIoZWhkciwgZm5hbWUsIHJlbHR5cGUpOworCQlpZiAoZG8zMihlaGRyLCBmbmFtZSwgcmVsdHlwZSkgPCAwKQorCQkJZ290byBvdXQ7CiAJCWJyZWFrOwogCWNhc2UgRUxGQ0xBU1M2NDogewogCQlFbGY2NF9FaGRyICpjb25zdCBnaGRyID0gKEVsZjY0X0VoZHIgKillaGRyOwpAQCAtNTY0LDcgKzU3Myw3IEBAIGRvX2ZpbGUoY2hhciBjb25zdCAqY29uc3QgZm5hbWUpCiAJCXx8ICB3MihnaGRyLT5lX3NoZW50c2l6ZSkgIT0gc2l6ZW9mKEVsZjY0X1NoZHIpKSB7CiAJCQlmcHJpbnRmKHN0ZGVyciwKIAkJCQkidW5yZWNvZ25pemVkIEVUX1JFTCBmaWxlOiAlc1xuIiwgZm5hbWUpOwotCQkJZmFpbF9maWxlKCk7CisJCQlnb3RvIG91dDsKIAkJfQogCQlpZiAodzIoZ2hkci0+ZV9tYWNoaW5lKSA9PSBFTV9TMzkwKSB7CiAJCQlyZWx0eXBlID0gUl8zOTBfNjQ7CkBAIC01NzYsMTcgKzU4NSwyMCBAQCBkb19maWxlKGNoYXIgY29uc3QgKmNvbnN0IGZuYW1lKQogCQkJRWxmNjRfcl9pbmZvID0gTUlQUzY0X3JfaW5mbzsKIAkJCWlzX2Zha2VfbWNvdW50NjQgPSBNSVBTNjRfaXNfZmFrZV9tY291bnQ7CiAJCX0KLQkJZG82NChnaGRyLCBmbmFtZSwgcmVsdHlwZSk7CisJCWlmIChkbzY0KGdoZHIsIGZuYW1lLCByZWx0eXBlKSA8IDApCisJCQlnb3RvIG91dDsKIAkJYnJlYWs7CiAJfQogCX0gIC8qIGVuZCBzd2l0Y2ggKi8KIAotCXdyaXRlX2ZpbGUoZm5hbWUpOwotCWNsZWFudXAoKTsKKwlyYyA9IHdyaXRlX2ZpbGUoZm5hbWUpOworb3V0OgorCWZpbGVfYXBwZW5kX2NsZWFudXAoKTsKKwltbWFwX2NsZWFudXAoKTsKKwlyZXR1cm4gcmM7CiB9CiAKLWludAotbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAljb25zdCBjaGFyIGZ0cmFjZVtdID0gIi9mdHJhY2UubyI7CiAJaW50IGZ0cmFjZV9zaXplID0gc2l6ZW9mKGZ0cmFjZSkgLSAxOwpAQCAtNjEzLDcgKzYyNSw2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkvKiBQcm9jZXNzIGVhY2ggZmlsZSBpbiB0dXJuLCBhbGxvd2luZyBkZWVwIGZhaWx1cmUuICovCiAJZm9yIChpID0gb3B0aW5kOyBpIDwgYXJnYzsgaSsrKSB7CiAJCWNoYXIgKmZpbGUgPSBhcmd2W2ldOwotCQlpbnQgY29uc3Qgc2p2YWwgPSBzZXRqbXAoam1wZW52KTsKIAkJaW50IGxlbjsKIAogCQkvKgpAQCAtNjI2LDI4ICs2MzcsMTAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkgICAgc3RyY21wKGZpbGUgKyAobGVuIC0gZnRyYWNlX3NpemUpLCBmdHJhY2UpID09IDApCiAJCQljb250aW51ZTsKIAotCQlzd2l0Y2ggKHNqdmFsKSB7Ci0JCWRlZmF1bHQ6Ci0JCQlmcHJpbnRmKHN0ZGVyciwgImludGVybmFsIGVycm9yOiAlc1xuIiwgZmlsZSk7Ci0JCQlleGl0KDEpOwotCQkJYnJlYWs7Ci0JCWNhc2UgU0pfU0VUSk1QOiAgICAvKiBub3JtYWwgc2VxdWVuY2UgKi8KLQkJCS8qIEF2b2lkIHByb2JsZW1zIGlmIGVhcmx5IGNsZWFudXAoKSAqLwotCQkJZmRfbWFwID0gLTE7Ci0JCQltbWFwX2ZhaWxlZCA9IDE7Ci0JCQlmaWxlX21hcCA9IE5VTEw7Ci0JCQlmaWxlX3B0ciA9IE5VTEw7Ci0JCQlmaWxlX3VwZGF0ZWQgPSAwOwotCQkJZG9fZmlsZShmaWxlKTsKLQkJCWJyZWFrOwotCQljYXNlIFNKX0ZBSUw6ICAgIC8qIGVycm9yIGluIGRvX2ZpbGUgb3IgYmVsb3cgKi8KKwkJaWYgKGRvX2ZpbGUoZmlsZSkpIHsKIAkJCWZwcmludGYoc3RkZXJyLCAiJXM6IGZhaWxlZFxuIiwgZmlsZSk7CiAJCQkrK25fZXJyb3I7Ci0JCQlicmVhazsKLQkJY2FzZSBTSl9TVUNDRUVEOiAgICAvKiBwcmVtYXR1cmUgc3VjY2VzcyAqLwotCQkJLyogZG8gbm90aGluZyAqLwotCQkJYnJlYWs7Ci0JCX0gIC8qIGVuZCBzd2l0Y2ggKi8KKwkJfQogCX0KIAlyZXR1cm4gISFuX2Vycm9yOwogfQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9yZWNvcmRtY291bnQuaCBiL3NjcmlwdHMvcmVjb3JkbWNvdW50LmgKaW5kZXggNDdmY2EyYy4uOGYwYTI3OCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9yZWNvcmRtY291bnQuaAorKysgYi9zY3JpcHRzL3JlY29yZG1jb3VudC5oCkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIGludCBNSVBTX2lzX2Zha2VfbWNvdW50KEVsZl9SZWwgY29uc3QgKnJwKQogfQogCiAvKiBBcHBlbmQgdGhlIG5ldyBzaHN0cnRhYiwgRWxmX1NoZHJbXSwgX19tY291bnRfbG9jIGFuZCBpdHMgcmVsb2NhdGlvbnMuICovCi1zdGF0aWMgdm9pZCBhcHBlbmRfZnVuYyhFbGZfRWhkciAqY29uc3QgZWhkciwKK3N0YXRpYyBpbnQgYXBwZW5kX2Z1bmMoRWxmX0VoZHIgKmNvbnN0IGVoZHIsCiAJCQlFbGZfU2hkciAqY29uc3Qgc2hzdHIsCiAJCQl1aW50X3QgY29uc3QgKmNvbnN0IG1sb2MwLAogCQkJdWludF90IGNvbnN0ICpjb25zdCBtbG9jcCwKQEAgLTIwMiwxNSArMjAyLDIwIEBAIHN0YXRpYyB2b2lkIGFwcGVuZF9mdW5jKEVsZl9FaGRyICpjb25zdCBlaGRyLAogCW5ld19lX3Nob2ZmID0gdDsKIAogCS8qIGJvZHkgZm9yIG5ldyBzaHN0cnRhYiAqLwotCXVsc2VlayhmZF9tYXAsIHNiLnN0X3NpemUsIFNFRUtfU0VUKTsKLQl1d3JpdGUoZmRfbWFwLCBvbGRfc2hzdHJfc2hfb2Zmc2V0ICsgKHZvaWQgKillaGRyLCBvbGRfc2hzdHJfc2hfc2l6ZSk7Ci0JdXdyaXRlKGZkX21hcCwgbWNfbmFtZSwgMSArIHN0cmxlbihtY19uYW1lKSk7CisJaWYgKHVsc2VlayhzYi5zdF9zaXplLCBTRUVLX1NFVCkgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKHV3cml0ZShvbGRfc2hzdHJfc2hfb2Zmc2V0ICsgKHZvaWQgKillaGRyLCBvbGRfc2hzdHJfc2hfc2l6ZSkgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKHV3cml0ZShtY19uYW1lLCAxICsgc3RybGVuKG1jX25hbWUpKSA8IDApCisJCXJldHVybiAtMTsKIAogCS8qIG9sZChtb2RpZmllZCkgRWxmX1NoZHIgdGFibGUsIHdvcmQtYnl0ZSBhbGlnbmVkICovCi0JdWxzZWVrKGZkX21hcCwgdCwgU0VFS19TRVQpOworCWlmICh1bHNlZWsodCwgU0VFS19TRVQpIDwgMCkKKwkJcmV0dXJuIC0xOwogCXQgKz0gc2l6ZW9mKEVsZl9TaGRyKSAqIG9sZF9zaG51bTsKLQl1d3JpdGUoZmRfbWFwLCBvbGRfc2hvZmYgKyAodm9pZCAqKWVoZHIsCi0JICAgICAgIHNpemVvZihFbGZfU2hkcikgKiBvbGRfc2hudW0pOworCWlmICh1d3JpdGUob2xkX3Nob2ZmICsgKHZvaWQgKillaGRyLAorCSAgICAgICBzaXplb2YoRWxmX1NoZHIpICogb2xkX3NobnVtKSA8IDApCisJCXJldHVybiAtMTsKIAogCS8qIG5ldyBzZWN0aW9ucyBfX21jb3VudF9sb2MgYW5kIC5yZWxfX21jb3VudF9sb2MgKi8KIAl0ICs9IDIqc2l6ZW9mKG1jc2VjKTsKQEAgLTIyNSw3ICsyMzAsOCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRfZnVuYyhFbGZfRWhkciAqY29uc3QgZWhkciwKIAltY3NlYy5zaF9pbmZvID0gMDsKIAltY3NlYy5zaF9hZGRyYWxpZ24gPSBfdyhfc2l6ZSk7CiAJbWNzZWMuc2hfZW50c2l6ZSA9IF93KF9zaXplKTsKLQl1d3JpdGUoZmRfbWFwLCAmbWNzZWMsIHNpemVvZihtY3NlYykpOworCWlmICh1d3JpdGUoJm1jc2VjLCBzaXplb2YobWNzZWMpKSA8IDApCisJCXJldHVybiAtMTsKIAogCW1jc2VjLnNoX25hbWUgPSB3KG9sZF9zaHN0cl9zaF9zaXplKTsKIAltY3NlYy5zaF90eXBlID0gKHNpemVvZihFbGZfUmVsYSkgPT0gcmVsX2VudHNpemUpCkBAIC0yMzksMTUgKzI0NSwyMiBAQCBzdGF0aWMgdm9pZCBhcHBlbmRfZnVuYyhFbGZfRWhkciAqY29uc3QgZWhkciwKIAltY3NlYy5zaF9pbmZvID0gdyhvbGRfc2hudW0pOwogCW1jc2VjLnNoX2FkZHJhbGlnbiA9IF93KF9zaXplKTsKIAltY3NlYy5zaF9lbnRzaXplID0gX3cocmVsX2VudHNpemUpOwotCXV3cml0ZShmZF9tYXAsICZtY3NlYywgc2l6ZW9mKG1jc2VjKSk7CiAKLQl1d3JpdGUoZmRfbWFwLCBtbG9jMCwgKHZvaWQgKiltbG9jcCAtICh2b2lkICopbWxvYzApOwotCXV3cml0ZShmZF9tYXAsIG1yZWwwLCAodm9pZCAqKW1yZWxwIC0gKHZvaWQgKiltcmVsMCk7CisJaWYgKHV3cml0ZSgmbWNzZWMsIHNpemVvZihtY3NlYykpIDwgMCkKKwkJcmV0dXJuIC0xOworCisJaWYgKHV3cml0ZShtbG9jMCwgKHZvaWQgKiltbG9jcCAtICh2b2lkICopbWxvYzApIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmICh1d3JpdGUobXJlbDAsICh2b2lkICopbXJlbHAgLSAodm9pZCAqKW1yZWwwKSA8IDApCisJCXJldHVybiAtMTsKIAogCWVoZHItPmVfc2hvZmYgPSBfdyhuZXdfZV9zaG9mZik7CiAJZWhkci0+ZV9zaG51bSA9IHcyKDIgKyB3MihlaGRyLT5lX3NobnVtKSk7ICAvKiB7LnJlbCx9X19tY291bnRfbG9jICovCi0JdWxzZWVrKGZkX21hcCwgMCwgU0VFS19TRVQpOwotCXV3cml0ZShmZF9tYXAsIGVoZHIsIHNpemVvZigqZWhkcikpOworCWlmICh1bHNlZWsoMCwgU0VFS19TRVQpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmICh1d3JpdGUoZWhkciwgc2l6ZW9mKCplaGRyKSkgPCAwKQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBnZXRfbWNvdW50c3ltKEVsZl9TeW0gY29uc3QgKmNvbnN0IHN5bTAsCkBAIC0zNTEsOSArMzY0LDkgQEAgc3RhdGljIHVpbnRfdCAqc2lmdF9yZWxfbWNvdW50KHVpbnRfdCAqbWxvY3AsCiAgKiB0aGF0IGFyZSBub3QgZ29pbmcgdG8gYmUgdHJhY2VkLiBUaGUgbWNvdW50IGNhbGxzIGhlcmUgd2lsbCBiZSBjb252ZXJ0ZWQKICAqIGludG8gbm9wcy4KICAqLwotc3RhdGljIHZvaWQgbm9wX21jb3VudChFbGZfU2hkciBjb25zdCAqY29uc3QgcmVsaGRyLAotCQkgICAgICAgRWxmX0VoZHIgY29uc3QgKmNvbnN0IGVoZHIsCi0JCSAgICAgICBjb25zdCBjaGFyICpjb25zdCB0eHRuYW1lKQorc3RhdGljIGludCBub3BfbWNvdW50KEVsZl9TaGRyIGNvbnN0ICpjb25zdCByZWxoZHIsCisJCSAgICAgIEVsZl9FaGRyIGNvbnN0ICpjb25zdCBlaGRyLAorCQkgICAgICBjb25zdCBjaGFyICpjb25zdCB0eHRuYW1lKQogewogCUVsZl9TaGRyICpjb25zdCBzaGRyMCA9IChFbGZfU2hkciAqKShfdyhlaGRyLT5lX3Nob2ZmKQogCQkrICh2b2lkICopZWhkcik7CkBAIC0zNzYsMTUgKzM4OSwxOCBAQCBzdGF0aWMgdm9pZCBub3BfbWNvdW50KEVsZl9TaGRyIGNvbnN0ICpjb25zdCByZWxoZHIsCiAJCQltY291bnRzeW0gPSBnZXRfbWNvdW50c3ltKHN5bTAsIHJlbHAsIHN0cjApOwogCiAJCWlmIChtY291bnRzeW0gPT0gRWxmX3Jfc3ltKHJlbHApICYmICFpc19mYWtlX21jb3VudChyZWxwKSkgewotCQkJaWYgKG1ha2Vfbm9wKQorCQkJaWYgKG1ha2Vfbm9wKSB7CiAJCQkJcmV0ID0gbWFrZV9ub3AoKHZvaWQgKillaGRyLCBfdyhzaGRyLT5zaF9vZmZzZXQpICsgX3cocmVscC0+cl9vZmZzZXQpKTsKKwkJCQlpZiAocmV0IDwgMCkKKwkJCQkJcmV0dXJuIC0xOworCQkJfQogCQkJaWYgKHdhcm5fb25fbm90cmFjZV9zZWN0ICYmICFvbmNlKSB7CiAJCQkJcHJpbnRmKCJTZWN0aW9uICVzIGhhcyBtY291bnQgY2FsbGVycyBiZWluZyBpZ25vcmVkXG4iLAogCQkJCSAgICAgICB0eHRuYW1lKTsKIAkJCQlvbmNlID0gMTsKIAkJCQkvKiBqdXN0IHdhcm4/ICovCiAJCQkJaWYgKCFtYWtlX25vcCkKLQkJCQkJcmV0dXJuOworCQkJCQlyZXR1cm4gMDsKIAkJCX0KIAkJfQogCkBAIC0zOTYsMTQgKzQxMiwxNiBAQCBzdGF0aWMgdm9pZCBub3BfbWNvdW50KEVsZl9TaGRyIGNvbnN0ICpjb25zdCByZWxoZHIsCiAJCQlFbGZfUmVsIHJlbDsKIAkJCXJlbCA9ICooRWxmX1JlbCAqKXJlbHA7CiAJCQlFbGZfcl9pbmZvKCZyZWwsIEVsZl9yX3N5bShyZWxwKSwgcmVsX3R5cGVfbm9wKTsKLQkJCXVsc2VlayhmZF9tYXAsICh2b2lkICopcmVscCAtICh2b2lkICopZWhkciwgU0VFS19TRVQpOwotCQkJdXdyaXRlKGZkX21hcCwgJnJlbCwgc2l6ZW9mKHJlbCkpOworCQkJaWYgKHVsc2Vlaygodm9pZCAqKXJlbHAgLSAodm9pZCAqKWVoZHIsIFNFRUtfU0VUKSA8IDApCisJCQkJcmV0dXJuIC0xOworCQkJaWYgKHV3cml0ZSgmcmVsLCBzaXplb2YocmVsKSkgPCAwKQorCQkJCXJldHVybiAtMTsKIAkJfQogCQlyZWxwID0gKEVsZl9SZWwgY29uc3QgKikocmVsX2VudHNpemUgKyAodm9pZCAqKXJlbHApOwogCX0KKwlyZXR1cm4gMDsKIH0KIAotCiAvKgogICogRmluZCBhIHN5bWJvbCBpbiB0aGUgZ2l2ZW4gc2VjdGlvbiwgdG8gYmUgdXNlZCBhcyB0aGUgYmFzZSBmb3IgcmVsb2NhdGluZwogICogdGhlIHRhYmxlIG9mIG9mZnNldHMgb2YgY2FsbHMgdG8gbWNvdW50LiAgQSBsb2NhbCBvciBnbG9iYWwgc3ltYm9sIHN1ZmZpY2VzLApAQCAtNDE0LDkgKzQzMiwxMCBAQCBzdGF0aWMgdm9pZCBub3BfbWNvdW50KEVsZl9TaGRyIGNvbnN0ICpjb25zdCByZWxoZHIsCiAgKiAgICBOdW06ICAgIFZhbHVlICBTaXplIFR5cGUgICAgQmluZCAgIFZpcyAgICAgIE5keCBOYW1lCiAgKiAgICAgIDI6IDAwMDAwMDAwICAgICAwIFNFQ1RJT04gTE9DQUwgIERFRkFVTFQgICAgMQogICovCi1zdGF0aWMgdW5zaWduZWQgZmluZF9zZWNzeW1fbmR4KHVuc2lnbmVkIGNvbnN0IHR4dG5keCwKK3N0YXRpYyBpbnQgZmluZF9zZWNzeW1fbmR4KHVuc2lnbmVkIGNvbnN0IHR4dG5keCwKIAkJCQljaGFyIGNvbnN0ICpjb25zdCB0eHRuYW1lLAogCQkJCXVpbnRfdCAqY29uc3QgcmVjdmFscCwKKwkJCQl1bnNpZ25lZCBpbnQgKnN5bV9pbmRleCwKIAkJCQlFbGZfU2hkciBjb25zdCAqY29uc3Qgc3ltaGRyLAogCQkJCUVsZl9FaGRyIGNvbnN0ICpjb25zdCBlaGRyKQogewpAQCAtNDM4LDIxICs0NTcsMjAgQEAgc3RhdGljIHVuc2lnbmVkIGZpbmRfc2Vjc3ltX25keCh1bnNpZ25lZCBjb25zdCB0eHRuZHgsCiAJCQkJY29udGludWU7CiAKIAkJCSpyZWN2YWxwID0gX3coc3ltcC0+c3RfdmFsdWUpOwotCQkJcmV0dXJuIHN5bXAgLSBzeW0wOworCQkJKnN5bV9pbmRleCA9IHN5bXAgLSBzeW0wOworCQkJcmV0dXJuIDA7CiAJCX0KIAl9CiAJZnByaW50ZihzdGRlcnIsICJDYW5ub3QgZmluZCBzeW1ib2wgZm9yIHNlY3Rpb24gJXU6ICVzLlxuIiwKIAkJdHh0bmR4LCB0eHRuYW1lKTsKLQlmYWlsX2ZpbGUoKTsKKwlyZXR1cm4gLTE7CiB9CiAKLQogLyogRXZhZGUgSVNPIEMgcmVzdHJpY3Rpb246IG5vIGRlY2xhcmF0aW9uIGFmdGVyIHN0YXRlbWVudCBpbiBoYXNfcmVsX21jb3VudC4gKi8KLXN0YXRpYyBjaGFyIGNvbnN0ICoKLV9faGFzX3JlbF9tY291bnQoRWxmX1NoZHIgY29uc3QgKmNvbnN0IHJlbGhkciwgIC8qIGlzIFNIVF9SRUwgb3IgU0hUX1JFTEEgKi8KLQkJIEVsZl9TaGRyIGNvbnN0ICpjb25zdCBzaGRyMCwKLQkJIGNoYXIgY29uc3QgKmNvbnN0IHNoc3RydGFiLAotCQkgY2hhciBjb25zdCAqY29uc3QgZm5hbWUpCitzdGF0aWMgY2hhciBjb25zdCAqIF9faGFzX3JlbF9tY291bnQoRWxmX1NoZHIgY29uc3QgKmNvbnN0IHJlbGhkciwgLyogcmVsdHlwZSAqLworCQkJCSAgICAgRWxmX1NoZHIgY29uc3QgKmNvbnN0IHNoZHIwLAorCQkJCSAgICAgY2hhciBjb25zdCAqY29uc3Qgc2hzdHJ0YWIsCisJCQkJICAgICBjaGFyIGNvbnN0ICpjb25zdCBmbmFtZSkKIHsKIAkvKiAuc2hfaW5mbyBkZXBlbmRzIG9uIC5zaF90eXBlID09IFNIVF9SRUxbLEFdICovCiAJRWxmX1NoZHIgY29uc3QgKmNvbnN0IHR4dGhkciA9ICZzaGRyMFt3KHJlbGhkci0+c2hfaW5mbyldOwpAQCAtNDYxLDcgKzQ3OSw3IEBAIF9faGFzX3JlbF9tY291bnQoRWxmX1NoZHIgY29uc3QgKmNvbnN0IHJlbGhkciwgIC8qIGlzIFNIVF9SRUwgb3IgU0hUX1JFTEEgKi8KIAlpZiAoc3RyY21wKCJfX21jb3VudF9sb2MiLCB0eHRuYW1lKSA9PSAwKSB7CiAJCWZwcmludGYoc3RkZXJyLCAid2FybmluZzogX19tY291bnRfbG9jIGFscmVhZHkgZXhpc3RzOiAlc1xuIiwKIAkJCWZuYW1lKTsKLQkJc3VjY2VlZF9maWxlKCk7CisJCXJldHVybiBhbHJlYWR5X2hhc19yZWxfbWNvdW50OwogCX0KIAlpZiAodyh0eHRoZHItPnNoX3R5cGUpICE9IFNIVF9QUk9HQklUUyB8fAogCSAgICAhKF93KHR4dGhkci0+c2hfZmxhZ3MpICYgU0hGX0VYRUNJTlNUUikpCkBAIC00OTEsNiArNTA5LDEwIEBAIHN0YXRpYyB1bnNpZ25lZCB0b3RfcmVsc2l6ZShFbGZfU2hkciBjb25zdCAqY29uc3Qgc2hkcjAsCiAKIAlmb3IgKDsgbmhkcjsgLS1uaGRyLCArK3NoZHJwKSB7CiAJCXR4dG5hbWUgPSBoYXNfcmVsX21jb3VudChzaGRycCwgc2hkcjAsIHNoc3RydGFiLCBmbmFtZSk7CisJCWlmICh0eHRuYW1lID09IGFscmVhZHlfaGFzX3JlbF9tY291bnQpIHsKKwkJCXRvdHJlbHN6ID0gMDsKKwkJCWJyZWFrOworCQl9CiAJCWlmICh0eHRuYW1lICYmIGlzX21jb3VudGVkX3NlY3Rpb25fbmFtZSh0eHRuYW1lKSkKIAkJCXRvdHJlbHN6ICs9IF93KHNoZHJwLT5zaF9zaXplKTsKIAl9CkBAIC00OTksOCArNTIxLDggQEAgc3RhdGljIHVuc2lnbmVkIHRvdF9yZWxzaXplKEVsZl9TaGRyIGNvbnN0ICpjb25zdCBzaGRyMCwKIAogCiAvKiBPdmVyYWxsIHN1cGVydmlzaW9uIGZvciBFbGYzMiBFVF9SRUwgZmlsZS4gKi8KLXN0YXRpYyB2b2lkCi1kb19mdW5jKEVsZl9FaGRyICpjb25zdCBlaGRyLCBjaGFyIGNvbnN0ICpjb25zdCBmbmFtZSwgdW5zaWduZWQgY29uc3QgcmVsdHlwZSkKK3N0YXRpYyBpbnQgZG9fZnVuYyhFbGZfRWhkciAqY29uc3QgZWhkciwgY2hhciBjb25zdCAqY29uc3QgZm5hbWUsCisJCSAgIHVuc2lnbmVkIGNvbnN0IHJlbHR5cGUpCiB7CiAJRWxmX1NoZHIgKmNvbnN0IHNoZHIwID0gKEVsZl9TaGRyICopKF93KGVoZHItPmVfc2hvZmYpCiAJCSsgKHZvaWQgKillaGRyKTsKQEAgLTUxMywyNiArNTM1LDU0IEBAIGRvX2Z1bmMoRWxmX0VoZHIgKmNvbnN0IGVoZHIsIGNoYXIgY29uc3QgKmNvbnN0IGZuYW1lLCB1bnNpZ25lZCBjb25zdCByZWx0eXBlKQogCXVuc2lnbmVkIGs7CiAKIAkvKiBVcHBlciBib3VuZCBvbiBzcGFjZTogYXNzdW1lIGFsbCByZWxldmFudCByZWxvY3MgYXJlIGZvciBtY291bnQuICovCi0JdW5zaWduZWQgY29uc3QgdG90cmVsc3ogPSB0b3RfcmVsc2l6ZShzaGRyMCwgbmhkciwgc2hzdHJ0YWIsIGZuYW1lKTsKLQlFbGZfUmVsICpjb25zdCBtcmVsMCA9IHVtYWxsb2ModG90cmVsc3opOwotCUVsZl9SZWwgKiAgICAgIG1yZWxwID0gbXJlbDA7CisJdW5zaWduZWQgICAgICAgdG90cmVsc3o7CiAKLQkvKiAyKnNpemVvZihhZGRyZXNzKSA8PSBzaXplb2YoRWxmX1JlbCkgKi8KLQl1aW50X3QgKmNvbnN0IG1sb2MwID0gdW1hbGxvYyh0b3RyZWxzej4+MSk7Ci0JdWludF90ICogICAgICBtbG9jcCA9IG1sb2MwOworCUVsZl9SZWwgKiAgICAgIG1yZWwwOworCUVsZl9SZWwgKiAgICAgIG1yZWxwOworCisJdWludF90ICogICAgICBtbG9jMDsKKwl1aW50X3QgKiAgICAgIG1sb2NwOwogCiAJdW5zaWduZWQgcmVsX2VudHNpemUgPSAwOwogCXVuc2lnbmVkIHN5bXNlY19zaF9saW5rID0gMDsKIAorCWludCByZXN1bHQgPSAwOworCisJdG90cmVsc3ogPSB0b3RfcmVsc2l6ZShzaGRyMCwgbmhkciwgc2hzdHJ0YWIsIGZuYW1lKTsKKwlpZiAodG90cmVsc3ogPT0gMCkKKwkJcmV0dXJuIDA7CisJbXJlbDAgPSB1bWFsbG9jKHRvdHJlbHN6KTsKKwltcmVscCA9IG1yZWwwOworCWlmICghbXJlbDApCisJCXJldHVybiAtMTsKKworCS8qIDIqc2l6ZW9mKGFkZHJlc3MpIDw9IHNpemVvZihFbGZfUmVsKSAqLworCW1sb2MwID0gdW1hbGxvYyh0b3RyZWxzej4+MSk7CisJbWxvY3AgPSBtbG9jMDsKKwlpZiAoIW1sb2MwKSB7CisJCWZyZWUobXJlbDApOworCQlyZXR1cm4gLTE7CisJfQorCiAJZm9yIChyZWxoZHIgPSBzaGRyMCwgayA9IG5oZHI7IGs7IC0taywgKytyZWxoZHIpIHsKIAkJY2hhciBjb25zdCAqY29uc3QgdHh0bmFtZSA9IGhhc19yZWxfbWNvdW50KHJlbGhkciwgc2hkcjAsCiAJCQlzaHN0cnRhYiwgZm5hbWUpOworCQlpZiAodHh0bmFtZSA9PSBhbHJlYWR5X2hhc19yZWxfbWNvdW50KSB7CisJCQlyZXN1bHQgPSAwOworCQkJZmlsZV91cGRhdGVkID0gMDsKKwkJCWdvdG8gb3V0OyAvKiBOb3RoaW5nIHRvIGJlIGRvbmU7IGRvbid0IGFwcGVuZCEgKi8KKwkJfQogCQlpZiAodHh0bmFtZSAmJiBpc19tY291bnRlZF9zZWN0aW9uX25hbWUodHh0bmFtZSkpIHsKKwkJCXVuc2lnbmVkIGludCByZWNzeW07CiAJCQl1aW50X3QgcmVjdmFsID0gMDsKLQkJCXVuc2lnbmVkIGNvbnN0IHJlY3N5bSA9IGZpbmRfc2Vjc3ltX25keCgKLQkJCQl3KHJlbGhkci0+c2hfaW5mbyksIHR4dG5hbWUsICZyZWN2YWwsCi0JCQkJJnNoZHIwW3N5bXNlY19zaF9saW5rID0gdyhyZWxoZHItPnNoX2xpbmspXSwKLQkJCQllaGRyKTsKKworCQkJc3ltc2VjX3NoX2xpbmsgPSB3KHJlbGhkci0+c2hfbGluayk7CisJCQlyZXN1bHQgPSBmaW5kX3NlY3N5bV9uZHgodyhyZWxoZHItPnNoX2luZm8pLCB0eHRuYW1lLAorCQkJCQkJJnJlY3ZhbCwgJnJlY3N5bSwKKwkJCQkJCSZzaGRyMFtzeW1zZWNfc2hfbGlua10sCisJCQkJCQllaGRyKTsKKwkJCWlmIChyZXN1bHQpCisJCQkJZ290byBvdXQ7CiAKIAkJCXJlbF9lbnRzaXplID0gX3cocmVsaGRyLT5zaF9lbnRzaXplKTsKIAkJCW1sb2NwID0gc2lmdF9yZWxfbWNvdW50KG1sb2NwLApAQCAtNTQzLDEzICs1OTMsMTcgQEAgZG9fZnVuYyhFbGZfRWhkciAqY29uc3QgZWhkciwgY2hhciBjb25zdCAqY29uc3QgZm5hbWUsIHVuc2lnbmVkIGNvbnN0IHJlbHR5cGUpCiAJCQkgKiBUaGlzIHNlY3Rpb24gaXMgaWdub3JlZCBieSBmdHJhY2UsIGJ1dCBzdGlsbAogCQkJICogaGFzIG1jb3VudCBjYWxscy4gQ29udmVydCB0aGVtIHRvIG5vcHMgbm93LgogCQkJICovCi0JCQlub3BfbWNvdW50KHJlbGhkciwgZWhkciwgdHh0bmFtZSk7CisJCQlpZiAobm9wX21jb3VudChyZWxoZHIsIGVoZHIsIHR4dG5hbWUpIDwgMCkgeworCQkJCXJlc3VsdCA9IC0xOworCQkJCWdvdG8gb3V0OworCQkJfQogCQl9CiAJfQotCWlmIChtbG9jMCAhPSBtbG9jcCkgewotCQlhcHBlbmRfZnVuYyhlaGRyLCBzaHN0ciwgbWxvYzAsIG1sb2NwLCBtcmVsMCwgbXJlbHAsCi0JCQkgICAgcmVsX2VudHNpemUsIHN5bXNlY19zaF9saW5rKTsKLQl9CisJaWYgKCFyZXN1bHQgJiYgbWxvYzAgIT0gbWxvY3ApCisJCXJlc3VsdCA9IGFwcGVuZF9mdW5jKGVoZHIsIHNoc3RyLCBtbG9jMCwgbWxvY3AsIG1yZWwwLCBtcmVscCwKKwkJCQkgICAgIHJlbF9lbnRzaXplLCBzeW1zZWNfc2hfbGluayk7CitvdXQ6CiAJZnJlZShtcmVsMCk7CiAJZnJlZShtbG9jMCk7CisJcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L0tjb25maWcgYi9zZWN1cml0eS9LY29uZmlnCmluZGV4IDBkNjU1OTQuLjJhMWEyZDMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L0tjb25maWcKKysrIGIvc2VjdXJpdHkvS2NvbmZpZwpAQCAtMjM3LDYgKzIzNyw3IEBACiBzb3VyY2UgInNlY3VyaXR5L2xvYWRwaW4vS2NvbmZpZyIKIHNvdXJjZSAic2VjdXJpdHkveWFtYS9LY29uZmlnIgogc291cmNlICJzZWN1cml0eS9zYWZlc2V0aWQvS2NvbmZpZyIKK3NvdXJjZSAic2VjdXJpdHkvbG9ja2Rvd24vS2NvbmZpZyIKIAogc291cmNlICJzZWN1cml0eS9pbnRlZ3JpdHkvS2NvbmZpZyIKIApAQCAtMjc2LDExICsyNzcsMTEgQEAKIAogY29uZmlnIExTTQogCXN0cmluZyAiT3JkZXJlZCBsaXN0IG9mIGVuYWJsZWQgTFNNcyIKLQlkZWZhdWx0ICJ5YW1hLGxvYWRwaW4sc2FmZXNldGlkLGludGVncml0eSxzbWFjayxzZWxpbnV4LHRvbW95byxhcHBhcm1vciIgaWYgREVGQVVMVF9TRUNVUklUWV9TTUFDSwotCWRlZmF1bHQgInlhbWEsbG9hZHBpbixzYWZlc2V0aWQsaW50ZWdyaXR5LGFwcGFybW9yLHNlbGludXgsc21hY2ssdG9tb3lvIiBpZiBERUZBVUxUX1NFQ1VSSVRZX0FQUEFSTU9SCi0JZGVmYXVsdCAieWFtYSxsb2FkcGluLHNhZmVzZXRpZCxpbnRlZ3JpdHksdG9tb3lvIiBpZiBERUZBVUxUX1NFQ1VSSVRZX1RPTU9ZTwotCWRlZmF1bHQgInlhbWEsbG9hZHBpbixzYWZlc2V0aWQsaW50ZWdyaXR5IiBpZiBERUZBVUxUX1NFQ1VSSVRZX0RBQwotCWRlZmF1bHQgInlhbWEsbG9hZHBpbixzYWZlc2V0aWQsaW50ZWdyaXR5LHNlbGludXgsc21hY2ssdG9tb3lvLGFwcGFybW9yIgorCWRlZmF1bHQgImxvY2tkb3duLHlhbWEsbG9hZHBpbixzYWZlc2V0aWQsaW50ZWdyaXR5LHNtYWNrLHNlbGludXgsdG9tb3lvLGFwcGFybW9yIiBpZiBERUZBVUxUX1NFQ1VSSVRZX1NNQUNLCisJZGVmYXVsdCAibG9ja2Rvd24seWFtYSxsb2FkcGluLHNhZmVzZXRpZCxpbnRlZ3JpdHksYXBwYXJtb3Isc2VsaW51eCxzbWFjayx0b21veW8iIGlmIERFRkFVTFRfU0VDVVJJVFlfQVBQQVJNT1IKKwlkZWZhdWx0ICJsb2NrZG93bix5YW1hLGxvYWRwaW4sc2FmZXNldGlkLGludGVncml0eSx0b21veW8iIGlmIERFRkFVTFRfU0VDVVJJVFlfVE9NT1lPCisJZGVmYXVsdCAibG9ja2Rvd24seWFtYSxsb2FkcGluLHNhZmVzZXRpZCxpbnRlZ3JpdHkiIGlmIERFRkFVTFRfU0VDVVJJVFlfREFDCisJZGVmYXVsdCAibG9ja2Rvd24seWFtYSxsb2FkcGluLHNhZmVzZXRpZCxpbnRlZ3JpdHksc2VsaW51eCxzbWFjayx0b21veW8sYXBwYXJtb3IiCiAJaGVscAogCSAgQSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBMU01zLCBpbiBpbml0aWFsaXphdGlvbiBvcmRlci4KIAkgIEFueSBMU01zIGxlZnQgb2ZmIHRoaXMgbGlzdCB3aWxsIGJlIGlnbm9yZWQuIFRoaXMgY2FuIGJlCmRpZmYgLS1naXQgYS9zZWN1cml0eS9NYWtlZmlsZSBiL3NlY3VyaXR5L01ha2VmaWxlCmluZGV4IGM1OThiOTAuLmJlMWRkOWQgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L01ha2VmaWxlCisrKyBiL3NlY3VyaXR5L01ha2VmaWxlCkBAIC0xMSw2ICsxMSw3IEBACiBzdWJkaXItJChDT05GSUdfU0VDVVJJVFlfWUFNQSkJCSs9IHlhbWEKIHN1YmRpci0kKENPTkZJR19TRUNVUklUWV9MT0FEUElOKQkrPSBsb2FkcGluCiBzdWJkaXItJChDT05GSUdfU0VDVVJJVFlfU0FGRVNFVElEKSAgICArPSBzYWZlc2V0aWQKK3N1YmRpci0kKENPTkZJR19TRUNVUklUWV9MT0NLRE9XTl9MU00pCSs9IGxvY2tkb3duCiAKICMgYWx3YXlzIGVuYWJsZSBkZWZhdWx0IGNhcGFiaWxpdGllcwogb2JqLXkJCQkJCSs9IGNvbW1vbmNhcC5vCkBAIC0yNyw2ICsyOCw3IEBACiBvYmotJChDT05GSUdfU0VDVVJJVFlfWUFNQSkJCSs9IHlhbWEvCiBvYmotJChDT05GSUdfU0VDVVJJVFlfTE9BRFBJTikJCSs9IGxvYWRwaW4vCiBvYmotJChDT05GSUdfU0VDVVJJVFlfU0FGRVNFVElEKSAgICAgICArPSBzYWZlc2V0aWQvCitvYmotJChDT05GSUdfU0VDVVJJVFlfTE9DS0RPV05fTFNNKQkrPSBsb2NrZG93bi8KIG9iai0kKENPTkZJR19DR1JPVVBfREVWSUNFKQkJKz0gZGV2aWNlX2Nncm91cC5vCiAKICMgT2JqZWN0IGludGVncml0eSBmaWxlIGxpc3RzCmRpZmYgLS1naXQgYS9zZWN1cml0eS9pbnRlZ3JpdHkvS2NvbmZpZyBiL3NlY3VyaXR5L2ludGVncml0eS9LY29uZmlnCmluZGV4IGMzNTI1MzIuLjBiYWU2YWQgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2ludGVncml0eS9LY29uZmlnCisrKyBiL3NlY3VyaXR5L2ludGVncml0eS9LY29uZmlnCkBAIC0xOCw4ICsxOCw4IEBACiAKIGNvbmZpZyBJTlRFR1JJVFlfU0lHTkFUVVJFCiAJYm9vbCAiRGlnaXRhbCBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHVzaW5nIG11bHRpcGxlIGtleXJpbmdzIgotCWRlcGVuZHMgb24gS0VZUwogCWRlZmF1bHQgbgorCXNlbGVjdCBLRVlTCiAJc2VsZWN0IFNJR05BVFVSRQogCWhlbHAKIAkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgZGlnaXRhbCBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1cHBvcnQKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2ludGVncml0eS9kaWdzaWcuYyBiL3NlY3VyaXR5L2ludGVncml0eS9kaWdzaWcuYwppbmRleCA4NjhhZGUzLi5lYTFhYWUzIDEwMDY0NAotLS0gYS9zZWN1cml0eS9pbnRlZ3JpdHkvZGlnc2lnLmMKKysrIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2RpZ3NpZy5jCkBAIC0zOSwxMSArMzksMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrZXlyaW5nX25hbWVbSU5URUdSSVRZX0tFWVJJTkdfTUFYXSA9IHsKICNkZWZpbmUgcmVzdHJpY3RfbGlua190b19pbWEgcmVzdHJpY3RfbGlua19ieV9idWlsdGluX3RydXN0ZWQKICNlbmRpZgogCi1pbnQgaW50ZWdyaXR5X2RpZ3NpZ192ZXJpZnkoY29uc3QgdW5zaWduZWQgaW50IGlkLCBjb25zdCBjaGFyICpzaWcsIGludCBzaWdsZW4sCi0JCQkgICAgY29uc3QgY2hhciAqZGlnZXN0LCBpbnQgZGlnZXN0bGVuKQorc3RhdGljIHN0cnVjdCBrZXkgKmludGVncml0eV9rZXlyaW5nX2Zyb21faWQoY29uc3QgdW5zaWduZWQgaW50IGlkKQogewotCWlmIChpZCA+PSBJTlRFR1JJVFlfS0VZUklOR19NQVggfHwgc2lnbGVuIDwgMikKLQkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKGlkID49IElOVEVHUklUWV9LRVlSSU5HX01BWCkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKIAlpZiAoIWtleXJpbmdbaWRdKSB7CiAJCWtleXJpbmdbaWRdID0KQEAgLTUyLDIzICs1MSw0OSBAQCBpbnQgaW50ZWdyaXR5X2RpZ3NpZ192ZXJpZnkoY29uc3QgdW5zaWduZWQgaW50IGlkLCBjb25zdCBjaGFyICpzaWcsIGludCBzaWdsZW4sCiAJCQlpbnQgZXJyID0gUFRSX0VSUihrZXlyaW5nW2lkXSk7CiAJCQlwcl9lcnIoIm5vICVzIGtleXJpbmc6ICVkXG4iLCBrZXlyaW5nX25hbWVbaWRdLCBlcnIpOwogCQkJa2V5cmluZ1tpZF0gPSBOVUxMOwotCQkJcmV0dXJuIGVycjsKKwkJCXJldHVybiBFUlJfUFRSKGVycik7CiAJCX0KIAl9CiAKKwlyZXR1cm4ga2V5cmluZ1tpZF07Cit9CisKK2ludCBpbnRlZ3JpdHlfZGlnc2lnX3ZlcmlmeShjb25zdCB1bnNpZ25lZCBpbnQgaWQsIGNvbnN0IGNoYXIgKnNpZywgaW50IHNpZ2xlbiwKKwkJCSAgICBjb25zdCBjaGFyICpkaWdlc3QsIGludCBkaWdlc3RsZW4pCit7CisJc3RydWN0IGtleSAqa2V5cmluZzsKKworCWlmIChzaWdsZW4gPCAyKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWtleXJpbmcgPSBpbnRlZ3JpdHlfa2V5cmluZ19mcm9tX2lkKGlkKTsKKwlpZiAoSVNfRVJSKGtleXJpbmcpKQorCQlyZXR1cm4gUFRSX0VSUihrZXlyaW5nKTsKKwogCXN3aXRjaCAoc2lnWzFdKSB7CiAJY2FzZSAxOgogCQkvKiB2MSBBUEkgZXhwZWN0IHNpZ25hdHVyZSB3aXRob3V0IHhhdHRyIHR5cGUgKi8KLQkJcmV0dXJuIGRpZ3NpZ192ZXJpZnkoa2V5cmluZ1tpZF0sIHNpZyArIDEsIHNpZ2xlbiAtIDEsCi0JCQkJICAgICBkaWdlc3QsIGRpZ2VzdGxlbik7CisJCXJldHVybiBkaWdzaWdfdmVyaWZ5KGtleXJpbmcsIHNpZyArIDEsIHNpZ2xlbiAtIDEsIGRpZ2VzdCwKKwkJCQkgICAgIGRpZ2VzdGxlbik7CiAJY2FzZSAyOgotCQlyZXR1cm4gYXN5bW1ldHJpY192ZXJpZnkoa2V5cmluZ1tpZF0sIHNpZywgc2lnbGVuLAotCQkJCQkgZGlnZXN0LCBkaWdlc3RsZW4pOworCQlyZXR1cm4gYXN5bW1ldHJpY192ZXJpZnkoa2V5cmluZywgc2lnLCBzaWdsZW4sIGRpZ2VzdCwKKwkJCQkJIGRpZ2VzdGxlbik7CiAJfQogCiAJcmV0dXJuIC1FT1BOT1RTVVBQOwogfQogCitpbnQgaW50ZWdyaXR5X21vZHNpZ192ZXJpZnkoY29uc3QgdW5zaWduZWQgaW50IGlkLCBjb25zdCBzdHJ1Y3QgbW9kc2lnICptb2RzaWcpCit7CisJc3RydWN0IGtleSAqa2V5cmluZzsKKworCWtleXJpbmcgPSBpbnRlZ3JpdHlfa2V5cmluZ19mcm9tX2lkKGlkKTsKKwlpZiAoSVNfRVJSKGtleXJpbmcpKQorCQlyZXR1cm4gUFRSX0VSUihrZXlyaW5nKTsKKworCXJldHVybiBpbWFfbW9kc2lnX3ZlcmlmeShrZXlyaW5nLCBtb2RzaWcpOworfQorCiBzdGF0aWMgaW50IF9faW5pdCBfX2ludGVncml0eV9pbml0X2tleXJpbmcoY29uc3QgdW5zaWduZWQgaW50IGlkLAogCQkJCQkgICBrZXlfcGVybV90IHBlcm0sCiAJCQkJCSAgIHN0cnVjdCBrZXlfcmVzdHJpY3Rpb24gKnJlc3RyaWN0aW9uKQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9LY29uZmlnIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9LY29uZmlnCmluZGV4IDJjZWQ5OWQuLjgzODQ3NmQgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvS2NvbmZpZworKysgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL0tjb25maWcKQEAgLTE2MCw3ICsxNjAsNyBAQAogCiBjb25maWcgSU1BX0FSQ0hfUE9MSUNZCiAgICAgICAgIGJvb2wgIkVuYWJsZSBsb2FkaW5nIGFuIElNQSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgcG9saWN5IgotICAgICAgICBkZXBlbmRzIG9uIChLRVhFQ19WRVJJRllfU0lHICYmIElNQSkgfHwgSU1BX0FQUFJBSVNFIFwKKyAgICAgICAgZGVwZW5kcyBvbiAoS0VYRUNfU0lHICYmIElNQSkgfHwgSU1BX0FQUFJBSVNFIFwKIAkJICAgJiYgSU5URUdSSVRZX0FTWU1NRVRSSUNfS0VZUwogICAgICAgICBkZWZhdWx0IG4KICAgICAgICAgaGVscApAQCAtMjMzLDYgKzIzMywxOSBAQAogCSAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgZGlmZmVyZW50ICJpbWFfYXBwcmFpc2U9IiBtb2RlcwogCSAgKGVnLiBmaXgsIGxvZykgZnJvbSB0aGUgYm9vdCBjb21tYW5kIGxpbmUuCiAKK2NvbmZpZyBJTUFfQVBQUkFJU0VfTU9EU0lHCisJYm9vbCAiU3VwcG9ydCBtb2R1bGUtc3R5bGUgc2lnbmF0dXJlcyBmb3IgYXBwcmFpc2FsIgorCWRlcGVuZHMgb24gSU1BX0FQUFJBSVNFCisJZGVwZW5kcyBvbiBJTlRFR1JJVFlfQVNZTU1FVFJJQ19LRVlTCisJc2VsZWN0IFBLQ1M3X01FU1NBR0VfUEFSU0VSCisJc2VsZWN0IE1PRFVMRV9TSUdfRk9STUFUCisJZGVmYXVsdCBuCisJaGVscAorCSAgIEFkZHMgc3VwcG9ydCBmb3Igc2lnbmF0dXJlcyBhcHBlbmRlZCB0byBmaWxlcy4gVGhlIGZvcm1hdCBvZiB0aGUKKwkgICBhcHBlbmRlZCBzaWduYXR1cmUgaXMgdGhlIHNhbWUgdXNlZCBmb3Igc2lnbmVkIGtlcm5lbCBtb2R1bGVzLgorCSAgIFRoZSBtb2RzaWcga2V5d29yZCBjYW4gYmUgdXNlZCBpbiB0aGUgSU1BIHBvbGljeSB0byBhbGxvdyBhIGhvb2sKKwkgICB0byBhY2NlcHQgc3VjaCBzaWduYXR1cmVzLgorCiBjb25maWcgSU1BX1RSVVNURURfS0VZUklORwogCWJvb2wgIlJlcXVpcmUgYWxsIGtleXMgb24gdGhlIC5pbWEga2V5cmluZyBiZSBzaWduZWQgKGRlcHJlY2F0ZWQpIgogCWRlcGVuZHMgb24gSU1BX0FQUFJBSVNFICYmIFNZU1RFTV9UUlVTVEVEX0tFWVJJTkcKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvTWFrZWZpbGUgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL01ha2VmaWxlCmluZGV4IGQ5MjFkYzQuLjMxZDU3Y2QgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvTWFrZWZpbGUKKysrIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9NYWtlZmlsZQpAQCAtOSw1ICs5LDYgQEAKIGltYS15IDo9IGltYV9mcy5vIGltYV9xdWV1ZS5vIGltYV9pbml0Lm8gaW1hX21haW4ubyBpbWFfY3J5cHRvLm8gaW1hX2FwaS5vIFwKIAkgaW1hX3BvbGljeS5vIGltYV90ZW1wbGF0ZS5vIGltYV90ZW1wbGF0ZV9saWIubwogaW1hLSQoQ09ORklHX0lNQV9BUFBSQUlTRSkgKz0gaW1hX2FwcHJhaXNlLm8KK2ltYS0kKENPTkZJR19JTUFfQVBQUkFJU0VfTU9EU0lHKSArPSBpbWFfbW9kc2lnLm8KIGltYS0kKENPTkZJR19IQVZFX0lNQV9LRVhFQykgKz0gaW1hX2tleGVjLm8KIG9iai0kKENPTkZJR19JTUFfQkxBQ0tMSVNUX0tFWVJJTkcpICs9IGltYV9tb2subwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWEuaCBiL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hLmgKaW5kZXggMDExYjkxYy4uMzY4OTA4MSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWEuaAorKysgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYS5oCkBAIC02MCw2ICs2MCw3IEBAIHN0cnVjdCBpbWFfZXZlbnRfZGF0YSB7CiAJY29uc3QgdW5zaWduZWQgY2hhciAqZmlsZW5hbWU7CiAJc3RydWN0IGV2bV9pbWFfeGF0dHJfZGF0YSAqeGF0dHJfdmFsdWU7CiAJaW50IHhhdHRyX2xlbjsKKwljb25zdCBzdHJ1Y3QgbW9kc2lnICptb2RzaWc7CiAJY29uc3QgY2hhciAqdmlvbGF0aW9uOwogCWNvbnN0IHZvaWQgKmJ1ZjsKIAlpbnQgYnVmX2xlbjsKQEAgLTExMyw2ICsxMTQsOCBAQCBzdHJ1Y3QgaW1hX2tleGVjX2hkciB7CiAJdTY0IGNvdW50OwogfTsKIAorZXh0ZXJuIGNvbnN0IGludCByZWFkX2lkbWFwW107CisKICNpZmRlZiBDT05GSUdfSEFWRV9JTUFfS0VYRUMKIHZvaWQgaW1hX2xvYWRfa2V4ZWNfYnVmZmVyKHZvaWQpOwogI2Vsc2UKQEAgLTE0OSw2ICsxNTIsNyBAQCBpbnQgdGVtcGxhdGVfZGVzY19pbml0X2ZpZWxkcyhjb25zdCBjaGFyICp0ZW1wbGF0ZV9mbXQsCiAJCQkgICAgICBpbnQgKm51bV9maWVsZHMpOwogc3RydWN0IGltYV90ZW1wbGF0ZV9kZXNjICppbWFfdGVtcGxhdGVfZGVzY19jdXJyZW50KHZvaWQpOwogc3RydWN0IGltYV90ZW1wbGF0ZV9kZXNjICpsb29rdXBfdGVtcGxhdGVfZGVzYyhjb25zdCBjaGFyICpuYW1lKTsKK2Jvb2wgaW1hX3RlbXBsYXRlX2hhc19tb2RzaWcoY29uc3Qgc3RydWN0IGltYV90ZW1wbGF0ZV9kZXNjICppbWFfdGVtcGxhdGUpOwogaW50IGltYV9yZXN0b3JlX21lYXN1cmVtZW50X2VudHJ5KHN0cnVjdCBpbWFfdGVtcGxhdGVfZW50cnkgKmVudHJ5KTsKIGludCBpbWFfcmVzdG9yZV9tZWFzdXJlbWVudF9saXN0KGxvZmZfdCBidWZzaXplLCB2b2lkICpidWYpOwogaW50IGltYV9tZWFzdXJlbWVudHNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpOwpAQCAtMTk2LDYgKzIwMCwxMCBAQCBlbnVtIGltYV9ob29rcyB7CiAJX19pbWFfaG9va3MoX19pbWFfaG9va19lbnVtaWZ5KQogfTsKIAorZXh0ZXJuIGNvbnN0IGNoYXIgKmNvbnN0IGZ1bmNfdG9rZW5zW107CisKK3N0cnVjdCBtb2RzaWc7CisKIC8qIExJTSBBUEkgZnVuY3Rpb24gZGVmaW5pdGlvbnMgKi8KIGludCBpbWFfZ2V0X2FjdGlvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwgdTMyIHNlY2lkLAogCQkgICBpbnQgbWFzaywgZW51bSBpbWFfaG9va3MgZnVuYywgaW50ICpwY3IsCkBAIC0yMDMsMTEgKzIxMSwxMSBAQCBpbnQgaW1hX2dldF9hY3Rpb24oc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGNyZWQgKmNyZWQsIHUzMiBzZWNpZCwKIGludCBpbWFfbXVzdF9tZWFzdXJlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrLCBlbnVtIGltYV9ob29rcyBmdW5jKTsKIGludCBpbWFfY29sbGVjdF9tZWFzdXJlbWVudChzdHJ1Y3QgaW50ZWdyaXR5X2lpbnRfY2FjaGUgKmlpbnQsCiAJCQkgICAgc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmJ1ZiwgbG9mZl90IHNpemUsCi0JCQkgICAgZW51bSBoYXNoX2FsZ28gYWxnbyk7CisJCQkgICAgZW51bSBoYXNoX2FsZ28gYWxnbywgc3RydWN0IG1vZHNpZyAqbW9kc2lnKTsKIHZvaWQgaW1hX3N0b3JlX21lYXN1cmVtZW50KHN0cnVjdCBpbnRlZ3JpdHlfaWludF9jYWNoZSAqaWludCwgc3RydWN0IGZpbGUgKmZpbGUsCiAJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICpmaWxlbmFtZSwKIAkJCSAgIHN0cnVjdCBldm1faW1hX3hhdHRyX2RhdGEgKnhhdHRyX3ZhbHVlLAotCQkJICAgaW50IHhhdHRyX2xlbiwgaW50IHBjciwKKwkJCSAgIGludCB4YXR0cl9sZW4sIGNvbnN0IHN0cnVjdCBtb2RzaWcgKm1vZHNpZywgaW50IHBjciwKIAkJCSAgIHN0cnVjdCBpbWFfdGVtcGxhdGVfZGVzYyAqdGVtcGxhdGVfZGVzYyk7CiB2b2lkIGltYV9hdWRpdF9tZWFzdXJlbWVudChzdHJ1Y3QgaW50ZWdyaXR5X2lpbnRfY2FjaGUgKmlpbnQsCiAJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICpmaWxlbmFtZSk7CkBAIC0yNDksNyArMjU3LDcgQEAgaW50IGltYV9hcHByYWlzZV9tZWFzdXJlbWVudChlbnVtIGltYV9ob29rcyBmdW5jLAogCQkJICAgICBzdHJ1Y3QgaW50ZWdyaXR5X2lpbnRfY2FjaGUgKmlpbnQsCiAJCQkgICAgIHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmaWxlbmFtZSwKIAkJCSAgICAgc3RydWN0IGV2bV9pbWFfeGF0dHJfZGF0YSAqeGF0dHJfdmFsdWUsCi0JCQkgICAgIGludCB4YXR0cl9sZW4pOworCQkJICAgICBpbnQgeGF0dHJfbGVuLCBjb25zdCBzdHJ1Y3QgbW9kc2lnICptb2RzaWcpOwogaW50IGltYV9tdXN0X2FwcHJhaXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrLCBlbnVtIGltYV9ob29rcyBmdW5jKTsKIHZvaWQgaW1hX3VwZGF0ZV94YXR0cihzdHJ1Y3QgaW50ZWdyaXR5X2lpbnRfY2FjaGUgKmlpbnQsIHN0cnVjdCBmaWxlICpmaWxlKTsKIGVudW0gaW50ZWdyaXR5X3N0YXR1cyBpbWFfZ2V0X2NhY2hlX3N0YXR1cyhzdHJ1Y3QgaW50ZWdyaXR5X2lpbnRfY2FjaGUgKmlpbnQsCkBAIC0yNjUsNyArMjczLDggQEAgc3RhdGljIGlubGluZSBpbnQgaW1hX2FwcHJhaXNlX21lYXN1cmVtZW50KGVudW0gaW1hX2hvb2tzIGZ1bmMsCiAJCQkJCSAgIHN0cnVjdCBmaWxlICpmaWxlLAogCQkJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICpmaWxlbmFtZSwKIAkJCQkJICAgc3RydWN0IGV2bV9pbWFfeGF0dHJfZGF0YSAqeGF0dHJfdmFsdWUsCi0JCQkJCSAgIGludCB4YXR0cl9sZW4pCisJCQkJCSAgIGludCB4YXR0cl9sZW4sCisJCQkJCSAgIGNvbnN0IHN0cnVjdCBtb2RzaWcgKm1vZHNpZykKIHsKIAlyZXR1cm4gSU5URUdSSVRZX1VOS05PV047CiB9CkBAIC0zMDIsNiArMzExLDUxIEBAIHN0YXRpYyBpbmxpbmUgaW50IGltYV9yZWFkX3hhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKIAogI2VuZGlmIC8qIENPTkZJR19JTUFfQVBQUkFJU0UgKi8KIAorI2lmZGVmIENPTkZJR19JTUFfQVBQUkFJU0VfTU9EU0lHCitib29sIGltYV9ob29rX3N1cHBvcnRzX21vZHNpZyhlbnVtIGltYV9ob29rcyBmdW5jKTsKK2ludCBpbWFfcmVhZF9tb2RzaWcoZW51bSBpbWFfaG9va3MgZnVuYywgY29uc3Qgdm9pZCAqYnVmLCBsb2ZmX3QgYnVmX2xlbiwKKwkJICAgIHN0cnVjdCBtb2RzaWcgKiptb2RzaWcpOwordm9pZCBpbWFfY29sbGVjdF9tb2RzaWcoc3RydWN0IG1vZHNpZyAqbW9kc2lnLCBjb25zdCB2b2lkICpidWYsIGxvZmZfdCBzaXplKTsKK2ludCBpbWFfZ2V0X21vZHNpZ19kaWdlc3QoY29uc3Qgc3RydWN0IG1vZHNpZyAqbW9kc2lnLCBlbnVtIGhhc2hfYWxnbyAqYWxnbywKKwkJCSAgY29uc3QgdTggKipkaWdlc3QsIHUzMiAqZGlnZXN0X3NpemUpOworaW50IGltYV9nZXRfcmF3X21vZHNpZyhjb25zdCBzdHJ1Y3QgbW9kc2lnICptb2RzaWcsIGNvbnN0IHZvaWQgKipkYXRhLAorCQkgICAgICAgdTMyICpkYXRhX2xlbik7Cit2b2lkIGltYV9mcmVlX21vZHNpZyhzdHJ1Y3QgbW9kc2lnICptb2RzaWcpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbWFfaG9va19zdXBwb3J0c19tb2RzaWcoZW51bSBpbWFfaG9va3MgZnVuYykKK3sKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGltYV9yZWFkX21vZHNpZyhlbnVtIGltYV9ob29rcyBmdW5jLCBjb25zdCB2b2lkICpidWYsCisJCQkJICBsb2ZmX3QgYnVmX2xlbiwgc3RydWN0IG1vZHNpZyAqKm1vZHNpZykKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbWFfY29sbGVjdF9tb2RzaWcoc3RydWN0IG1vZHNpZyAqbW9kc2lnLCBjb25zdCB2b2lkICpidWYsCisJCQkJICAgICAgbG9mZl90IHNpemUpCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGltYV9nZXRfbW9kc2lnX2RpZ2VzdChjb25zdCBzdHJ1Y3QgbW9kc2lnICptb2RzaWcsCisJCQkJCWVudW0gaGFzaF9hbGdvICphbGdvLCBjb25zdCB1OCAqKmRpZ2VzdCwKKwkJCQkJdTMyICpkaWdlc3Rfc2l6ZSkKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGltYV9nZXRfcmF3X21vZHNpZyhjb25zdCBzdHJ1Y3QgbW9kc2lnICptb2RzaWcsCisJCQkJICAgICBjb25zdCB2b2lkICoqZGF0YSwgdTMyICpkYXRhX2xlbikKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbWFfZnJlZV9tb2RzaWcoc3RydWN0IG1vZHNpZyAqbW9kc2lnKQoreworfQorI2VuZGlmIC8qIENPTkZJR19JTUFfQVBQUkFJU0VfTU9EU0lHICovCisKIC8qIExTTSBiYXNlZCBwb2xpY3kgcnVsZXMgcmVxdWlyZSBhdWRpdCAqLwogI2lmZGVmIENPTkZJR19JTUFfTFNNX1JVTEVTCiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX2FwaS5jIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfYXBpLmMKaW5kZXggZjYxNGUyMi4uNjEwNzU5ZiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfYXBpLmMKKysrIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfYXBpLmMKQEAgLTQ1LDggKzQ1LDggQEAgaW50IGltYV9hbGxvY19pbml0X3RlbXBsYXRlKHN0cnVjdCBpbWFfZXZlbnRfZGF0YSAqZXZlbnRfZGF0YSwKIAllbHNlCiAJCXRlbXBsYXRlX2Rlc2MgPSBpbWFfdGVtcGxhdGVfZGVzY19jdXJyZW50KCk7CiAKLQkqZW50cnkgPSBremFsbG9jKHNpemVvZigqKmVudHJ5KSArIHRlbXBsYXRlX2Rlc2MtPm51bV9maWVsZHMgKgotCQkJIHNpemVvZihzdHJ1Y3QgaW1hX2ZpZWxkX2RhdGEpLCBHRlBfTk9GUyk7CisJKmVudHJ5ID0ga3phbGxvYyhzdHJ1Y3Rfc2l6ZSgqZW50cnksIHRlbXBsYXRlX2RhdGEsCisJCQkJICAgICB0ZW1wbGF0ZV9kZXNjLT5udW1fZmllbGRzKSwgR0ZQX05PRlMpOwogCWlmICghKmVudHJ5KQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtMjA1LDcgKzIwNSw3IEBAIGludCBpbWFfZ2V0X2FjdGlvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwgdTMyIHNlY2lkLAogICovCiBpbnQgaW1hX2NvbGxlY3RfbWVhc3VyZW1lbnQoc3RydWN0IGludGVncml0eV9paW50X2NhY2hlICppaW50LAogCQkJICAgIHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpidWYsIGxvZmZfdCBzaXplLAotCQkJICAgIGVudW0gaGFzaF9hbGdvIGFsZ28pCisJCQkgICAgZW51bSBoYXNoX2FsZ28gYWxnbywgc3RydWN0IG1vZHNpZyAqbW9kc2lnKQogewogCWNvbnN0IGNoYXIgKmF1ZGl0X2NhdXNlID0gImZhaWxlZCI7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlsZSk7CkBAIC0yMTksNiArMjE5LDE0IEBAIGludCBpbWFfY29sbGVjdF9tZWFzdXJlbWVudChzdHJ1Y3QgaW50ZWdyaXR5X2lpbnRfY2FjaGUgKmlpbnQsCiAJCWNoYXIgZGlnZXN0W0lNQV9NQVhfRElHRVNUX1NJWkVdOwogCX0gaGFzaDsKIAorCS8qCisJICogQWx3YXlzIGNvbGxlY3QgdGhlIG1vZHNpZywgYmVjYXVzZSBJTUEgbWlnaHQgaGF2ZSBhbHJlYWR5IGNvbGxlY3RlZAorCSAqIHRoZSBmaWxlIGRpZ2VzdCB3aXRob3V0IGNvbGxlY3RpbmcgdGhlIG1vZHNpZyBpbiBhIHByZXZpb3VzCisJICogbWVhc3VyZW1lbnQgcnVsZS4KKwkgKi8KKwlpZiAobW9kc2lnKQorCQlpbWFfY29sbGVjdF9tb2RzaWcobW9kc2lnLCBidWYsIHNpemUpOworCiAJaWYgKGlpbnQtPmZsYWdzICYgSU1BX0NPTExFQ1RFRCkKIAkJZ290byBvdXQ7CiAKQEAgLTI4NSw3ICsyOTMsNyBAQCBpbnQgaW1hX2NvbGxlY3RfbWVhc3VyZW1lbnQoc3RydWN0IGludGVncml0eV9paW50X2NhY2hlICppaW50LAogdm9pZCBpbWFfc3RvcmVfbWVhc3VyZW1lbnQoc3RydWN0IGludGVncml0eV9paW50X2NhY2hlICppaW50LAogCQkJICAgc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZpbGVuYW1lLAogCQkJICAgc3RydWN0IGV2bV9pbWFfeGF0dHJfZGF0YSAqeGF0dHJfdmFsdWUsCi0JCQkgICBpbnQgeGF0dHJfbGVuLCBpbnQgcGNyLAorCQkJICAgaW50IHhhdHRyX2xlbiwgY29uc3Qgc3RydWN0IG1vZHNpZyAqbW9kc2lnLCBpbnQgcGNyLAogCQkJICAgc3RydWN0IGltYV90ZW1wbGF0ZV9kZXNjICp0ZW1wbGF0ZV9kZXNjKQogewogCXN0YXRpYyBjb25zdCBjaGFyIG9wW10gPSAiYWRkX3RlbXBsYXRlX21lYXN1cmUiOwpAQCAtMjk3LDEwICszMDUsMTcgQEAgdm9pZCBpbWFfc3RvcmVfbWVhc3VyZW1lbnQoc3RydWN0IGludGVncml0eV9paW50X2NhY2hlICppaW50LAogCQkJCQkgICAgIC5maWxlID0gZmlsZSwKIAkJCQkJICAgICAuZmlsZW5hbWUgPSBmaWxlbmFtZSwKIAkJCQkJICAgICAueGF0dHJfdmFsdWUgPSB4YXR0cl92YWx1ZSwKLQkJCQkJICAgICAueGF0dHJfbGVuID0geGF0dHJfbGVuIH07CisJCQkJCSAgICAgLnhhdHRyX2xlbiA9IHhhdHRyX2xlbiwKKwkJCQkJICAgICAubW9kc2lnID0gbW9kc2lnIH07CiAJaW50IHZpb2xhdGlvbiA9IDA7CiAKLQlpZiAoaWludC0+bWVhc3VyZWRfcGNycyAmICgweDEgPDwgcGNyKSkKKwkvKgorCSAqIFdlIHN0aWxsIG5lZWQgdG8gc3RvcmUgdGhlIG1lYXN1cmVtZW50IGluIHRoZSBjYXNlIG9mIE1PRFNJRyBiZWNhdXNlCisJICogd2Ugb25seSBoYXZlIGl0cyBjb250ZW50cyB0byBwdXQgaW4gdGhlIGxpc3QgYXQgdGhlIHRpbWUgb2YKKwkgKiBhcHByYWlzYWwsIGJ1dCBhIGZpbGUgbWVhc3VyZW1lbnQgZnJvbSBlYXJsaWVyIG1pZ2h0IGFscmVhZHkgZXhpc3QgaW4KKwkgKiB0aGUgbWVhc3VyZW1lbnQgbGlzdC4KKwkgKi8KKwlpZiAoaWludC0+bWVhc3VyZWRfcGNycyAmICgweDEgPDwgcGNyKSAmJiAhbW9kc2lnKQogCQlyZXR1cm47CiAKIAlyZXN1bHQgPSBpbWFfYWxsb2NfaW5pdF90ZW1wbGF0ZSgmZXZlbnRfZGF0YSwgJmVudHJ5LCB0ZW1wbGF0ZV9kZXNjKTsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX2FwcHJhaXNlLmMgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9hcHByYWlzZS5jCmluZGV4IDg5YjgzMTkuLjEzNmFlNGUgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX2FwcHJhaXNlLmMKKysrIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfYXBwcmFpc2UuYwpAQCAtMjAwLDYgKzIwMCwxMTAgQEAgaW50IGltYV9yZWFkX3hhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKIH0KIAogLyoKKyAqIHhhdHRyX3ZlcmlmeSAtIHZlcmlmeSB4YXR0ciBkaWdlc3Qgb3Igc2lnbmF0dXJlCisgKgorICogVmVyaWZ5IHdoZXRoZXIgdGhlIGhhc2ggb3Igc2lnbmF0dXJlIG1hdGNoZXMgdGhlIGZpbGUgY29udGVudHMuCisgKgorICogUmV0dXJuIDAgb24gc3VjY2VzcywgZXJyb3IgY29kZSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQgeGF0dHJfdmVyaWZ5KGVudW0gaW1hX2hvb2tzIGZ1bmMsIHN0cnVjdCBpbnRlZ3JpdHlfaWludF9jYWNoZSAqaWludCwKKwkJCXN0cnVjdCBldm1faW1hX3hhdHRyX2RhdGEgKnhhdHRyX3ZhbHVlLCBpbnQgeGF0dHJfbGVuLAorCQkJZW51bSBpbnRlZ3JpdHlfc3RhdHVzICpzdGF0dXMsIGNvbnN0IGNoYXIgKipjYXVzZSkKK3sKKwlpbnQgcmMgPSAtRUlOVkFMLCBoYXNoX3N0YXJ0ID0gMDsKKworCXN3aXRjaCAoeGF0dHJfdmFsdWUtPnR5cGUpIHsKKwljYXNlIElNQV9YQVRUUl9ESUdFU1RfTkc6CisJCS8qIGZpcnN0IGJ5dGUgY29udGFpbnMgYWxnb3JpdGhtIGlkICovCisJCWhhc2hfc3RhcnQgPSAxOworCQkvKiBmYWxsIHRocm91Z2ggKi8KKwljYXNlIElNQV9YQVRUUl9ESUdFU1Q6CisJCWlmIChpaW50LT5mbGFncyAmIElNQV9ESUdTSUdfUkVRVUlSRUQpIHsKKwkJCSpjYXVzZSA9ICJJTUEtc2lnbmF0dXJlLXJlcXVpcmVkIjsKKwkJCSpzdGF0dXMgPSBJTlRFR1JJVFlfRkFJTDsKKwkJCWJyZWFrOworCQl9CisJCWNsZWFyX2JpdChJTUFfRElHU0lHLCAmaWludC0+YXRvbWljX2ZsYWdzKTsKKwkJaWYgKHhhdHRyX2xlbiAtIHNpemVvZih4YXR0cl92YWx1ZS0+dHlwZSkgLSBoYXNoX3N0YXJ0ID49CisJCQkJaWludC0+aW1hX2hhc2gtPmxlbmd0aCkKKwkJCS8qCisJCQkgKiB4YXR0ciBsZW5ndGggbWF5IGJlIGxvbmdlci4gbWQ1IGhhc2ggaW4gcHJldmlvdXMKKwkJCSAqIHZlcnNpb24gb2NjdXBpZWQgMjAgYnl0ZXMgaW4geGF0dHIsIGluc3RlYWQgb2YgMTYKKwkJCSAqLworCQkJcmMgPSBtZW1jbXAoJnhhdHRyX3ZhbHVlLT5kYXRhW2hhc2hfc3RhcnRdLAorCQkJCSAgICBpaW50LT5pbWFfaGFzaC0+ZGlnZXN0LAorCQkJCSAgICBpaW50LT5pbWFfaGFzaC0+bGVuZ3RoKTsKKwkJZWxzZQorCQkJcmMgPSAtRUlOVkFMOworCQlpZiAocmMpIHsKKwkJCSpjYXVzZSA9ICJpbnZhbGlkLWhhc2giOworCQkJKnN0YXR1cyA9IElOVEVHUklUWV9GQUlMOworCQkJYnJlYWs7CisJCX0KKwkJKnN0YXR1cyA9IElOVEVHUklUWV9QQVNTOworCQlicmVhazsKKwljYXNlIEVWTV9JTUFfWEFUVFJfRElHU0lHOgorCQlzZXRfYml0KElNQV9ESUdTSUcsICZpaW50LT5hdG9taWNfZmxhZ3MpOworCQlyYyA9IGludGVncml0eV9kaWdzaWdfdmVyaWZ5KElOVEVHUklUWV9LRVlSSU5HX0lNQSwKKwkJCQkJICAgICAoY29uc3QgY2hhciAqKXhhdHRyX3ZhbHVlLAorCQkJCQkgICAgIHhhdHRyX2xlbiwKKwkJCQkJICAgICBpaW50LT5pbWFfaGFzaC0+ZGlnZXN0LAorCQkJCQkgICAgIGlpbnQtPmltYV9oYXNoLT5sZW5ndGgpOworCQlpZiAocmMgPT0gLUVPUE5PVFNVUFApIHsKKwkJCSpzdGF0dXMgPSBJTlRFR1JJVFlfVU5LTk9XTjsKKwkJCWJyZWFrOworCQl9CisJCWlmIChJU19FTkFCTEVEKENPTkZJR19JTlRFR1JJVFlfUExBVEZPUk1fS0VZUklORykgJiYgcmMgJiYKKwkJICAgIGZ1bmMgPT0gS0VYRUNfS0VSTkVMX0NIRUNLKQorCQkJcmMgPSBpbnRlZ3JpdHlfZGlnc2lnX3ZlcmlmeShJTlRFR1JJVFlfS0VZUklOR19QTEFURk9STSwKKwkJCQkJCSAgICAgKGNvbnN0IGNoYXIgKil4YXR0cl92YWx1ZSwKKwkJCQkJCSAgICAgeGF0dHJfbGVuLAorCQkJCQkJICAgICBpaW50LT5pbWFfaGFzaC0+ZGlnZXN0LAorCQkJCQkJICAgICBpaW50LT5pbWFfaGFzaC0+bGVuZ3RoKTsKKwkJaWYgKHJjKSB7CisJCQkqY2F1c2UgPSAiaW52YWxpZC1zaWduYXR1cmUiOworCQkJKnN0YXR1cyA9IElOVEVHUklUWV9GQUlMOworCQl9IGVsc2UgeworCQkJKnN0YXR1cyA9IElOVEVHUklUWV9QQVNTOworCQl9CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCSpzdGF0dXMgPSBJTlRFR1JJVFlfVU5LTk9XTjsKKwkJKmNhdXNlID0gInVua25vd24taW1hLWRhdGEiOworCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmM7Cit9CisKKy8qCisgKiBtb2RzaWdfdmVyaWZ5IC0gdmVyaWZ5IG1vZHNpZyBzaWduYXR1cmUKKyAqCisgKiBWZXJpZnkgd2hldGhlciB0aGUgc2lnbmF0dXJlIG1hdGNoZXMgdGhlIGZpbGUgY29udGVudHMuCisgKgorICogUmV0dXJuIDAgb24gc3VjY2VzcywgZXJyb3IgY29kZSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQgbW9kc2lnX3ZlcmlmeShlbnVtIGltYV9ob29rcyBmdW5jLCBjb25zdCBzdHJ1Y3QgbW9kc2lnICptb2RzaWcsCisJCQkgZW51bSBpbnRlZ3JpdHlfc3RhdHVzICpzdGF0dXMsIGNvbnN0IGNoYXIgKipjYXVzZSkKK3sKKwlpbnQgcmM7CisKKwlyYyA9IGludGVncml0eV9tb2RzaWdfdmVyaWZ5KElOVEVHUklUWV9LRVlSSU5HX0lNQSwgbW9kc2lnKTsKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfSU5URUdSSVRZX1BMQVRGT1JNX0tFWVJJTkcpICYmIHJjICYmCisJICAgIGZ1bmMgPT0gS0VYRUNfS0VSTkVMX0NIRUNLKQorCQlyYyA9IGludGVncml0eV9tb2RzaWdfdmVyaWZ5KElOVEVHUklUWV9LRVlSSU5HX1BMQVRGT1JNLAorCQkJCQkgICAgIG1vZHNpZyk7CisJaWYgKHJjKSB7CisJCSpjYXVzZSA9ICJpbnZhbGlkLXNpZ25hdHVyZSI7CisJCSpzdGF0dXMgPSBJTlRFR1JJVFlfRkFJTDsKKwl9IGVsc2UgeworCQkqc3RhdHVzID0gSU5URUdSSVRZX1BBU1M7CisJfQorCisJcmV0dXJuIHJjOworfQorCisvKgogICogaW1hX2FwcHJhaXNlX21lYXN1cmVtZW50IC0gYXBwcmFpc2UgZmlsZSBtZWFzdXJlbWVudAogICoKICAqIENhbGwgZXZtX3ZlcmlmeXhhdHRyKCkgdG8gdmVyaWZ5IHRoZSBpbnRlZ3JpdHkgb2YgJ3NlY3VyaXR5LmltYScuCkBAIC0yMTEsMTkgKzMxNSwyMiBAQCBpbnQgaW1hX2FwcHJhaXNlX21lYXN1cmVtZW50KGVudW0gaW1hX2hvb2tzIGZ1bmMsCiAJCQkgICAgIHN0cnVjdCBpbnRlZ3JpdHlfaWludF9jYWNoZSAqaWludCwKIAkJCSAgICAgc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZpbGVuYW1lLAogCQkJICAgICBzdHJ1Y3QgZXZtX2ltYV94YXR0cl9kYXRhICp4YXR0cl92YWx1ZSwKLQkJCSAgICAgaW50IHhhdHRyX2xlbikKKwkJCSAgICAgaW50IHhhdHRyX2xlbiwgY29uc3Qgc3RydWN0IG1vZHNpZyAqbW9kc2lnKQogewogCXN0YXRpYyBjb25zdCBjaGFyIG9wW10gPSAiYXBwcmFpc2VfZGF0YSI7CiAJY29uc3QgY2hhciAqY2F1c2UgPSAidW5rbm93biI7CiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gZmlsZV9kZW50cnkoZmlsZSk7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRfYmFja2luZ19pbm9kZShkZW50cnkpOwogCWVudW0gaW50ZWdyaXR5X3N0YXR1cyBzdGF0dXMgPSBJTlRFR1JJVFlfVU5LTk9XTjsKLQlpbnQgcmMgPSB4YXR0cl9sZW4sIGhhc2hfc3RhcnQgPSAwOworCWludCByYyA9IHhhdHRyX2xlbjsKKwlib29sIHRyeV9tb2RzaWcgPSBpaW50LT5mbGFncyAmIElNQV9NT0RTSUdfQUxMT1dFRCAmJiBtb2RzaWc7CiAKLQlpZiAoIShpbm9kZS0+aV9vcGZsYWdzICYgSU9QX1hBVFRSKSkKKwkvKiBJZiBub3QgYXBwcmFpc2luZyBhIG1vZHNpZywgd2UgbmVlZCBhbiB4YXR0ci4gKi8KKwlpZiAoIShpbm9kZS0+aV9vcGZsYWdzICYgSU9QX1hBVFRSKSAmJiAhdHJ5X21vZHNpZykKIAkJcmV0dXJuIElOVEVHUklUWV9VTktOT1dOOwogCi0JaWYgKHJjIDw9IDApIHsKKwkvKiBJZiByZWFkaW5nIHRoZSB4YXR0ciBmYWlsZWQgYW5kIHRoZXJlJ3Mgbm8gbW9kc2lnLCBlcnJvciBvdXQuICovCisJaWYgKHJjIDw9IDAgJiYgIXRyeV9tb2RzaWcpIHsKIAkJaWYgKHJjICYmIHJjICE9IC1FTk9EQVRBKQogCQkJZ290byBvdXQ7CiAKQEAgLTI0Niw2ICszNTMsMTAgQEAgaW50IGltYV9hcHByYWlzZV9tZWFzdXJlbWVudChlbnVtIGltYV9ob29rcyBmdW5jLAogCWNhc2UgSU5URUdSSVRZX1VOS05PV046CiAJCWJyZWFrOwogCWNhc2UgSU5URUdSSVRZX05PWEFUVFJTOgkvKiBObyBFVk0gcHJvdGVjdGVkIHhhdHRycy4gKi8KKwkJLyogSXQncyBmaW5lIG5vdCB0byBoYXZlIHhhdHRycyB3aGVuIHVzaW5nIGEgbW9kc2lnLiAqLworCQlpZiAodHJ5X21vZHNpZykKKwkJCWJyZWFrOworCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIElOVEVHUklUWV9OT0xBQkVMOgkJLyogTm8gc2VjdXJpdHkuZXZtIHhhdHRyLiAqLwogCQljYXVzZSA9ICJtaXNzaW5nLUhNQUMiOwogCQlnb3RvIG91dDsKQEAgLTI1Niw2NSArMzY3LDE4IEBAIGludCBpbWFfYXBwcmFpc2VfbWVhc3VyZW1lbnQoZW51bSBpbWFfaG9va3MgZnVuYywKIAkJV0FSTl9PTkNFKHRydWUsICJVbmV4cGVjdGVkIGludGVncml0eSBzdGF0dXMgJWRcbiIsIHN0YXR1cyk7CiAJfQogCi0Jc3dpdGNoICh4YXR0cl92YWx1ZS0+dHlwZSkgewotCWNhc2UgSU1BX1hBVFRSX0RJR0VTVF9ORzoKLQkJLyogZmlyc3QgYnl0ZSBjb250YWlucyBhbGdvcml0aG0gaWQgKi8KLQkJaGFzaF9zdGFydCA9IDE7Ci0JCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgSU1BX1hBVFRSX0RJR0VTVDoKLQkJaWYgKGlpbnQtPmZsYWdzICYgSU1BX0RJR1NJR19SRVFVSVJFRCkgewotCQkJY2F1c2UgPSAiSU1BLXNpZ25hdHVyZS1yZXF1aXJlZCI7Ci0JCQlzdGF0dXMgPSBJTlRFR1JJVFlfRkFJTDsKLQkJCWJyZWFrOwotCQl9Ci0JCWNsZWFyX2JpdChJTUFfRElHU0lHLCAmaWludC0+YXRvbWljX2ZsYWdzKTsKLQkJaWYgKHhhdHRyX2xlbiAtIHNpemVvZih4YXR0cl92YWx1ZS0+dHlwZSkgLSBoYXNoX3N0YXJ0ID49Ci0JCQkJaWludC0+aW1hX2hhc2gtPmxlbmd0aCkKLQkJCS8qIHhhdHRyIGxlbmd0aCBtYXkgYmUgbG9uZ2VyLiBtZDUgaGFzaCBpbiBwcmV2aW91cwotCQkJICAgdmVyc2lvbiBvY2N1cGllZCAyMCBieXRlcyBpbiB4YXR0ciwgaW5zdGVhZCBvZiAxNgotCQkJICovCi0JCQlyYyA9IG1lbWNtcCgmeGF0dHJfdmFsdWUtPmRhdGFbaGFzaF9zdGFydF0sCi0JCQkJICAgIGlpbnQtPmltYV9oYXNoLT5kaWdlc3QsCi0JCQkJICAgIGlpbnQtPmltYV9oYXNoLT5sZW5ndGgpOwotCQllbHNlCi0JCQlyYyA9IC1FSU5WQUw7Ci0JCWlmIChyYykgewotCQkJY2F1c2UgPSAiaW52YWxpZC1oYXNoIjsKLQkJCXN0YXR1cyA9IElOVEVHUklUWV9GQUlMOwotCQkJYnJlYWs7Ci0JCX0KLQkJc3RhdHVzID0gSU5URUdSSVRZX1BBU1M7Ci0JCWJyZWFrOwotCWNhc2UgRVZNX0lNQV9YQVRUUl9ESUdTSUc6Ci0JCXNldF9iaXQoSU1BX0RJR1NJRywgJmlpbnQtPmF0b21pY19mbGFncyk7Ci0JCXJjID0gaW50ZWdyaXR5X2RpZ3NpZ192ZXJpZnkoSU5URUdSSVRZX0tFWVJJTkdfSU1BLAotCQkJCQkgICAgIChjb25zdCBjaGFyICopeGF0dHJfdmFsdWUsCi0JCQkJCSAgICAgeGF0dHJfbGVuLAotCQkJCQkgICAgIGlpbnQtPmltYV9oYXNoLT5kaWdlc3QsCi0JCQkJCSAgICAgaWludC0+aW1hX2hhc2gtPmxlbmd0aCk7Ci0JCWlmIChyYyA9PSAtRU9QTk9UU1VQUCkgewotCQkJc3RhdHVzID0gSU5URUdSSVRZX1VOS05PV047Ci0JCQlicmVhazsKLQkJfQotCQlpZiAoSVNfRU5BQkxFRChDT05GSUdfSU5URUdSSVRZX1BMQVRGT1JNX0tFWVJJTkcpICYmIHJjICYmCi0JCSAgICBmdW5jID09IEtFWEVDX0tFUk5FTF9DSEVDSykKLQkJCXJjID0gaW50ZWdyaXR5X2RpZ3NpZ192ZXJpZnkoSU5URUdSSVRZX0tFWVJJTkdfUExBVEZPUk0sCi0JCQkJCQkgICAgIChjb25zdCBjaGFyICopeGF0dHJfdmFsdWUsCi0JCQkJCQkgICAgIHhhdHRyX2xlbiwKLQkJCQkJCSAgICAgaWludC0+aW1hX2hhc2gtPmRpZ2VzdCwKLQkJCQkJCSAgICAgaWludC0+aW1hX2hhc2gtPmxlbmd0aCk7Ci0JCWlmIChyYykgewotCQkJY2F1c2UgPSAiaW52YWxpZC1zaWduYXR1cmUiOwotCQkJc3RhdHVzID0gSU5URUdSSVRZX0ZBSUw7Ci0JCX0gZWxzZSB7Ci0JCQlzdGF0dXMgPSBJTlRFR1JJVFlfUEFTUzsKLQkJfQotCQlicmVhazsKLQlkZWZhdWx0OgotCQlzdGF0dXMgPSBJTlRFR1JJVFlfVU5LTk9XTjsKLQkJY2F1c2UgPSAidW5rbm93bi1pbWEtZGF0YSI7Ci0JCWJyZWFrOwotCX0KKwlpZiAoeGF0dHJfdmFsdWUpCisJCXJjID0geGF0dHJfdmVyaWZ5KGZ1bmMsIGlpbnQsIHhhdHRyX3ZhbHVlLCB4YXR0cl9sZW4sICZzdGF0dXMsCisJCQkJICAmY2F1c2UpOworCisJLyoKKwkgKiBJZiB3ZSBoYXZlIGEgbW9kc2lnIGFuZCBlaXRoZXIgbm8gaW1hc2lnIG9yIHRoZSBpbWFzaWcncyBrZXkgaXNuJ3QKKwkgKiBrbm93biwgdGhlbiB0cnkgdmVyaWZ5aW5nIHRoZSBtb2RzaWcuCisJICovCisJaWYgKHRyeV9tb2RzaWcgJiYKKwkgICAgKCF4YXR0cl92YWx1ZSB8fCB4YXR0cl92YWx1ZS0+dHlwZSA9PSBJTUFfWEFUVFJfRElHRVNUX05HIHx8CisJICAgICByYyA9PSAtRU5PS0VZKSkKKwkJcmMgPSBtb2RzaWdfdmVyaWZ5KGZ1bmMsIG1vZHNpZywgJnN0YXR1cywgJmNhdXNlKTsKIAogb3V0OgogCS8qCkBAIC0zMzIsNyArMzk2LDcgQEAgaW50IGltYV9hcHByYWlzZV9tZWFzdXJlbWVudChlbnVtIGltYV9ob29rcyBmdW5jLAogCQkJCSAgICBvcCwgY2F1c2UsIHJjLCAwKTsKIAl9IGVsc2UgaWYgKHN0YXR1cyAhPSBJTlRFR1JJVFlfUEFTUykgewogCQkvKiBGaXggbW9kZSwgYnV0IGRvbid0IHJlcGxhY2UgZmlsZSBzaWduYXR1cmVzLiAqLwotCQlpZiAoKGltYV9hcHByYWlzZSAmIElNQV9BUFBSQUlTRV9GSVgpICYmCisJCWlmICgoaW1hX2FwcHJhaXNlICYgSU1BX0FQUFJBSVNFX0ZJWCkgJiYgIXRyeV9tb2RzaWcgJiYKIAkJICAgICgheGF0dHJfdmFsdWUgfHwKIAkJICAgICB4YXR0cl92YWx1ZS0+dHlwZSAhPSBFVk1fSU1BX1hBVFRSX0RJR1NJRykpIHsKIAkJCWlmICghaW1hX2ZpeF94YXR0cihkZW50cnksIGlpbnQpKQpAQCAtMzcxLDcgKzQzNSw3IEBAIHZvaWQgaW1hX3VwZGF0ZV94YXR0cihzdHJ1Y3QgaW50ZWdyaXR5X2lpbnRfY2FjaGUgKmlpbnQsIHN0cnVjdCBmaWxlICpmaWxlKQogCSAgICAhKGlpbnQtPmZsYWdzICYgSU1BX0hBU0gpKQogCQlyZXR1cm47CiAKLQlyYyA9IGltYV9jb2xsZWN0X21lYXN1cmVtZW50KGlpbnQsIGZpbGUsIE5VTEwsIDAsIGltYV9oYXNoX2FsZ28pOworCXJjID0gaW1hX2NvbGxlY3RfbWVhc3VyZW1lbnQoaWludCwgZmlsZSwgTlVMTCwgMCwgaW1hX2hhc2hfYWxnbywgTlVMTCk7CiAJaWYgKHJjIDwgMCkKIAkJcmV0dXJuOwogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9jcnlwdG8uYyBiL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX2NyeXB0by5jCmluZGV4IGQ0YzdiOGUuLjczMDQ0ZmMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX2NyeXB0by5jCisrKyBiL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX2NyeXB0by5jCkBAIC0yNjgsOCArMjY4LDE2IEBAIHN0YXRpYyBpbnQgaW1hX2NhbGNfZmlsZV9oYXNoX2F0Zm0oc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJidWZfbGVuID0gbWluX3QobG9mZl90LCBpX3NpemUgLSBvZmZzZXQsIHJidWZfc2l6ZVthY3RpdmVdKTsKIAkJcmMgPSBpbnRlZ3JpdHlfa2VybmVsX3JlYWQoZmlsZSwgb2Zmc2V0LCByYnVmW2FjdGl2ZV0sCiAJCQkJCSAgIHJidWZfbGVuKTsKLQkJaWYgKHJjICE9IHJidWZfbGVuKQorCQlpZiAocmMgIT0gcmJ1Zl9sZW4pIHsKKwkJCWlmIChyYyA+PSAwKQorCQkJCXJjID0gLUVJTlZBTDsKKwkJCS8qCisJCQkgKiBGb3J3YXJkIGN1cnJlbnQgcmMsIGRvIG5vdCBvdmVyd3JpdGUgd2l0aCByZXR1cm4gdmFsdWUKKwkJCSAqIGZyb20gYWhhc2hfd2FpdCgpCisJCQkgKi8KKwkJCWFoYXNoX3dhaXQoYWhhc2hfcmMsICZ3YWl0KTsKIAkJCWdvdG8gb3V0MzsKKwkJfQogCiAJCWlmIChyYnVmWzFdICYmIG9mZnNldCkgewogCQkJLyogVXNpbmcgdHdvIGJ1ZmZlcnMsIGFuZCBpdCBpcyBub3QgdGhlIGZpcnN0CmRpZmYgLS1naXQgYS9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9tYWluLmMgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9tYWluLmMKaW5kZXggNTg0MDE5Ny4uNjAwMjdjNiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfbWFpbi5jCisrKyBiL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX21haW4uYwpAQCAtMjAyLDYgKzIwMiw3IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19tZWFzdXJlbWVudChzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3Qgc3RydWN0IGNyZWQgKmNyZWQsCiAJaW50IHJjID0gMCwgYWN0aW9uLCBtdXN0X2FwcHJhaXNlID0gMDsKIAlpbnQgcGNyID0gQ09ORklHX0lNQV9NRUFTVVJFX1BDUl9JRFg7CiAJc3RydWN0IGV2bV9pbWFfeGF0dHJfZGF0YSAqeGF0dHJfdmFsdWUgPSBOVUxMOworCXN0cnVjdCBtb2RzaWcgKm1vZHNpZyA9IE5VTEw7CiAJaW50IHhhdHRyX2xlbiA9IDA7CiAJYm9vbCB2aW9sYXRpb25fY2hlY2s7CiAJZW51bSBoYXNoX2FsZ28gaGFzaF9hbGdvOwpAQCAtMzAyLDEzICszMDMsMjcgQEAgc3RhdGljIGludCBwcm9jZXNzX21lYXN1cmVtZW50KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwKIAl9CiAKIAlpZiAoKGFjdGlvbiAmIElNQV9BUFBSQUlTRV9TVUJNQVNLKSB8fAotCQkgICAgc3RyY21wKHRlbXBsYXRlX2Rlc2MtPm5hbWUsIElNQV9URU1QTEFURV9JTUFfTkFNRSkgIT0gMCkKKwkgICAgc3RyY21wKHRlbXBsYXRlX2Rlc2MtPm5hbWUsIElNQV9URU1QTEFURV9JTUFfTkFNRSkgIT0gMCkgewogCQkvKiByZWFkICdzZWN1cml0eS5pbWEnICovCiAJCXhhdHRyX2xlbiA9IGltYV9yZWFkX3hhdHRyKGZpbGVfZGVudHJ5KGZpbGUpLCAmeGF0dHJfdmFsdWUpOwogCisJCS8qCisJCSAqIFJlYWQgdGhlIGFwcGVuZGVkIG1vZHNpZyBpZiBhbGxvd2VkIGJ5IHRoZSBwb2xpY3ksIGFuZCBhbGxvdworCQkgKiBhbiBhZGRpdGlvbmFsIG1lYXN1cmVtZW50IGxpc3QgZW50cnksIGlmIG5lZWRlZCwgYmFzZWQgb24gdGhlCisJCSAqIHRlbXBsYXRlIGZvcm1hdCBhbmQgd2hldGhlciB0aGUgZmlsZSB3YXMgYWxyZWFkeSBtZWFzdXJlZC4KKwkJICovCisJCWlmIChpaW50LT5mbGFncyAmIElNQV9NT0RTSUdfQUxMT1dFRCkgeworCQkJcmMgPSBpbWFfcmVhZF9tb2RzaWcoZnVuYywgYnVmLCBzaXplLCAmbW9kc2lnKTsKKworCQkJaWYgKCFyYyAmJiBpbWFfdGVtcGxhdGVfaGFzX21vZHNpZyh0ZW1wbGF0ZV9kZXNjKSAmJgorCQkJICAgIGlpbnQtPmZsYWdzICYgSU1BX01FQVNVUkVEKQorCQkJCWFjdGlvbiB8PSBJTUFfTUVBU1VSRTsKKwkJfQorCX0KKwogCWhhc2hfYWxnbyA9IGltYV9nZXRfaGFzaF9hbGdvKHhhdHRyX3ZhbHVlLCB4YXR0cl9sZW4pOwogCi0JcmMgPSBpbWFfY29sbGVjdF9tZWFzdXJlbWVudChpaW50LCBmaWxlLCBidWYsIHNpemUsIGhhc2hfYWxnbyk7CisJcmMgPSBpbWFfY29sbGVjdF9tZWFzdXJlbWVudChpaW50LCBmaWxlLCBidWYsIHNpemUsIGhhc2hfYWxnbywgbW9kc2lnKTsKIAlpZiAocmMgIT0gMCAmJiByYyAhPSAtRUJBREYgJiYgcmMgIT0gLUVJTlZBTCkKIAkJZ290byBvdXRfbG9ja2VkOwogCkBAIC0zMTcsMTIgKzMzMiwxMiBAQCBzdGF0aWMgaW50IHByb2Nlc3NfbWVhc3VyZW1lbnQoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IHN0cnVjdCBjcmVkICpjcmVkLAogCiAJaWYgKGFjdGlvbiAmIElNQV9NRUFTVVJFKQogCQlpbWFfc3RvcmVfbWVhc3VyZW1lbnQoaWludCwgZmlsZSwgcGF0aG5hbWUsCi0JCQkJICAgICAgeGF0dHJfdmFsdWUsIHhhdHRyX2xlbiwgcGNyLAorCQkJCSAgICAgIHhhdHRyX3ZhbHVlLCB4YXR0cl9sZW4sIG1vZHNpZywgcGNyLAogCQkJCSAgICAgIHRlbXBsYXRlX2Rlc2MpOwogCWlmIChyYyA9PSAwICYmIChhY3Rpb24gJiBJTUFfQVBQUkFJU0VfU1VCTUFTSykpIHsKIAkJaW5vZGVfbG9jayhpbm9kZSk7CiAJCXJjID0gaW1hX2FwcHJhaXNlX21lYXN1cmVtZW50KGZ1bmMsIGlpbnQsIGZpbGUsIHBhdGhuYW1lLAotCQkJCQkgICAgICB4YXR0cl92YWx1ZSwgeGF0dHJfbGVuKTsKKwkJCQkJICAgICAgeGF0dHJfdmFsdWUsIHhhdHRyX2xlbiwgbW9kc2lnKTsKIAkJaW5vZGVfdW5sb2NrKGlub2RlKTsKIAkJaWYgKCFyYykKIAkJCXJjID0gbW1hcF92aW9sYXRpb25fY2hlY2soZnVuYywgZmlsZSwgJnBhdGhidWYsCkBAIC0zMzksNiArMzU0LDcgQEAgc3RhdGljIGludCBwcm9jZXNzX21lYXN1cmVtZW50KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwKIAkJcmMgPSAtRUFDQ0VTOwogCW11dGV4X3VubG9jaygmaWludC0+bXV0ZXgpOwogCWtmcmVlKHhhdHRyX3ZhbHVlKTsKKwlpbWFfZnJlZV9tb2RzaWcobW9kc2lnKTsKIG91dDoKIAlpZiAocGF0aGJ1ZikKIAkJX19wdXRuYW1lKHBhdGhidWYpOwpAQCAtNTAyLDcgKzUxOCw3IEBAIGludCBpbWFfcmVhZF9maWxlKHN0cnVjdCBmaWxlICpmaWxlLCBlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQgcmVhZF9pZCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGNvbnN0IGludCByZWFkX2lkbWFwW1JFQURJTkdfTUFYX0lEXSA9IHsKK2NvbnN0IGludCByZWFkX2lkbWFwW1JFQURJTkdfTUFYX0lEXSA9IHsKIAlbUkVBRElOR19GSVJNV0FSRV0gPSBGSVJNV0FSRV9DSEVDSywKIAlbUkVBRElOR19GSVJNV0FSRV9QUkVBTExPQ19CVUZGRVJdID0gRklSTVdBUkVfQ0hFQ0ssCiAJW1JFQURJTkdfTU9EVUxFXSA9IE1PRFVMRV9DSEVDSywKQEAgLTU3NCw3ICs1OTAsNyBAQCBpbnQgaW1hX2xvYWRfZGF0YShlbnVtIGtlcm5lbF9sb2FkX2RhdGFfaWQgaWQpCiAKIAlzd2l0Y2ggKGlkKSB7CiAJY2FzZSBMT0FESU5HX0tFWEVDX0lNQUdFOgotCQlpZiAoSVNfRU5BQkxFRChDT05GSUdfS0VYRUNfVkVSSUZZX1NJRykKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0tFWEVDX1NJRykKIAkJICAgICYmIGFyY2hfaW1hX2dldF9zZWN1cmVib290KCkpIHsKIAkJCXByX2VycigiaW1wb3NzaWJsZSB0byBhcHByYWlzZSBhIGtlcm5lbCBpbWFnZSB3aXRob3V0IGEgZmlsZSBkZXNjcmlwdG9yOyB0cnkgdXNpbmcga2V4ZWNfZmlsZV9sb2FkIHN5c2NhbGwuXG4iKTsKIAkJCXJldHVybiAtRUFDQ0VTOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfbW9kc2lnLmMgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9tb2RzaWcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTA2ODg1Ci0tLSAvZGV2L251bGwKKysrIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfbW9kc2lnLmMKQEAgLTAsMCArMSwxNjggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIElNQSBzdXBwb3J0IGZvciBhcHByYWlzaW5nIG1vZHVsZS1zdHlsZSBhcHBlbmRlZCBzaWduYXR1cmVzLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxOSAgSUJNIENvcnBvcmF0aW9uCisgKgorICogQXV0aG9yOgorICogVGhpYWdvIEp1bmcgQmF1ZXJtYW5uIDxiYXVlcm1hbkBsaW51eC5pYm0uY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZV9zaWduYXR1cmUuaD4KKyNpbmNsdWRlIDxrZXlzL2FzeW1tZXRyaWMtdHlwZS5oPgorI2luY2x1ZGUgPGNyeXB0by9wa2NzNy5oPgorCisjaW5jbHVkZSAiaW1hLmgiCisKK3N0cnVjdCBtb2RzaWcgeworCXN0cnVjdCBwa2NzN19tZXNzYWdlICpwa2NzN19tc2c7CisKKwllbnVtIGhhc2hfYWxnbyBoYXNoX2FsZ287CisKKwkvKiBUaGlzIGRpZ2VzdCB3aWxsIGdvIGluIHRoZSAnZC1tb2RzaWcnIGZpZWxkIG9mIHRoZSBJTUEgdGVtcGxhdGUuICovCisJY29uc3QgdTggKmRpZ2VzdDsKKwl1MzIgZGlnZXN0X3NpemU7CisKKwkvKgorCSAqIFRoaXMgaXMgd2hhdCB3aWxsIGdvIHRvIHRoZSBtZWFzdXJlbWVudCBsaXN0IGlmIHRoZSB0ZW1wbGF0ZSByZXF1aXJlcworCSAqIHN0b3JpbmcgdGhlIHNpZ25hdHVyZS4KKwkgKi8KKwlpbnQgcmF3X3BrY3M3X2xlbjsKKwl1OCByYXdfcGtjczdbXTsKK307CisKKy8qKgorICogaW1hX2hvb2tfc3VwcG9ydHNfbW9kc2lnIC0gY2FuIHRoZSBwb2xpY3kgYWxsb3cgbW9kc2lnIGZvciB0aGlzIGhvb2s/CisgKgorICogbW9kc2lnIGlzIG9ubHkgc3VwcG9ydGVkIGJ5IGhvb2tzIHVzaW5nIGltYV9wb3N0X3JlYWRfZmlsZSgpLCBiZWNhdXNlIG9ubHkKKyAqIHRoZXkgcHJlbG9hZCB0aGUgY29udGVudHMgb2YgdGhlIGZpbGUgaW4gYSBidWZmZXIuIEZJTEVfQ0hFQ0sgZG9lcyB0aGF0IGluCisgKiBzb21lIGNhc2VzLCBidXQgbm90IHdoZW4gcmVhY2hlZCBmcm9tIHZmc19vcGVuKCkuIFBPTElDWV9DSEVDSyBjYW4gc3VwcG9ydAorICogaXQsIGJ1dCBpdCdzIG5vdCB1c2VmdWwgaW4gcHJhY3RpY2UgYmVjYXVzZSBpdCdzIGEgdGV4dCBmaWxlIHNvIGRlbnkuCisgKi8KK2Jvb2wgaW1hX2hvb2tfc3VwcG9ydHNfbW9kc2lnKGVudW0gaW1hX2hvb2tzIGZ1bmMpCit7CisJc3dpdGNoIChmdW5jKSB7CisJY2FzZSBLRVhFQ19LRVJORUxfQ0hFQ0s6CisJY2FzZSBLRVhFQ19JTklUUkFNRlNfQ0hFQ0s6CisJY2FzZSBNT0RVTEVfQ0hFQ0s6CisJCXJldHVybiB0cnVlOworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKKy8qCisgKiBpbWFfcmVhZF9tb2RzaWcgLSBSZWFkIG1vZHNpZyBmcm9tIGJ1Zi4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgZXJyb3IgY29kZSBvdGhlcndpc2UuCisgKi8KK2ludCBpbWFfcmVhZF9tb2RzaWcoZW51bSBpbWFfaG9va3MgZnVuYywgY29uc3Qgdm9pZCAqYnVmLCBsb2ZmX3QgYnVmX2xlbiwKKwkJICAgIHN0cnVjdCBtb2RzaWcgKiptb2RzaWcpCit7CisJY29uc3Qgc2l6ZV90IG1hcmtlcl9sZW4gPSBzdHJsZW4oTU9EVUxFX1NJR19TVFJJTkcpOworCWNvbnN0IHN0cnVjdCBtb2R1bGVfc2lnbmF0dXJlICpzaWc7CisJc3RydWN0IG1vZHNpZyAqaGRyOworCXNpemVfdCBzaWdfbGVuOworCWNvbnN0IHZvaWQgKnA7CisJaW50IHJjOworCisJaWYgKGJ1Zl9sZW4gPD0gbWFya2VyX2xlbiArIHNpemVvZigqc2lnKSkKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwlwID0gYnVmICsgYnVmX2xlbiAtIG1hcmtlcl9sZW47CisJaWYgKG1lbWNtcChwLCBNT0RVTEVfU0lHX1NUUklORywgbWFya2VyX2xlbikpCisJCXJldHVybiAtRU5PRU5UOworCisJYnVmX2xlbiAtPSBtYXJrZXJfbGVuOworCXNpZyA9IChjb25zdCBzdHJ1Y3QgbW9kdWxlX3NpZ25hdHVyZSAqKShwIC0gc2l6ZW9mKCpzaWcpKTsKKworCXJjID0gbW9kX2NoZWNrX3NpZyhzaWcsIGJ1Zl9sZW4sIGZ1bmNfdG9rZW5zW2Z1bmNdKTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKKworCXNpZ19sZW4gPSBiZTMyX3RvX2NwdShzaWctPnNpZ19sZW4pOworCWJ1Zl9sZW4gLT0gc2lnX2xlbiArIHNpemVvZigqc2lnKTsKKworCS8qIEFsbG9jYXRlIHNpZ19sZW4gYWRkaXRpb25hbCBieXRlcyB0byBob2xkIHRoZSByYXcgUEtDUyM3IGRhdGEuICovCisJaGRyID0ga3phbGxvYyhzaXplb2YoKmhkcikgKyBzaWdfbGVuLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWhkcikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwloZHItPnBrY3M3X21zZyA9IHBrY3M3X3BhcnNlX21lc3NhZ2UoYnVmICsgYnVmX2xlbiwgc2lnX2xlbik7CisJaWYgKElTX0VSUihoZHItPnBrY3M3X21zZykpIHsKKwkJcmMgPSBQVFJfRVJSKGhkci0+cGtjczdfbXNnKTsKKwkJa2ZyZWUoaGRyKTsKKwkJcmV0dXJuIHJjOworCX0KKworCW1lbWNweShoZHItPnJhd19wa2NzNywgYnVmICsgYnVmX2xlbiwgc2lnX2xlbik7CisJaGRyLT5yYXdfcGtjczdfbGVuID0gc2lnX2xlbjsKKworCS8qIFdlIGRvbid0IGtub3cgdGhlIGhhc2ggYWxnb3JpdGhtIHlldC4gKi8KKwloZHItPmhhc2hfYWxnbyA9IEhBU0hfQUxHT19fTEFTVDsKKworCSptb2RzaWcgPSBoZHI7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBpbWFfY29sbGVjdF9tb2RzaWcgLSBDYWxjdWxhdGUgdGhlIGZpbGUgaGFzaCB3aXRob3V0IHRoZSBhcHBlbmRlZCBzaWduYXR1cmUuCisgKgorICogU2luY2UgdGhlIG1vZHNpZyBpcyBwYXJ0IG9mIHRoZSBmaWxlIGNvbnRlbnRzLCB0aGUgaGFzaCB1c2VkIGluIGl0cyBzaWduYXR1cmUKKyAqIGlzbid0IHRoZSBzYW1lIG9uZSBvcmRpbmFyaWx5IGNhbGN1bGF0ZWQgYnkgSU1BLiBUaGVyZWZvcmUgUEtDUzcgY29kZQorICogY2FsY3VsYXRlcyBhIHNlcGFyYXRlIG9uZSBmb3Igc2lnbmF0dXJlIHZlcmlmaWNhdGlvbi4KKyAqLwordm9pZCBpbWFfY29sbGVjdF9tb2RzaWcoc3RydWN0IG1vZHNpZyAqbW9kc2lnLCBjb25zdCB2b2lkICpidWYsIGxvZmZfdCBzaXplKQoreworCWludCByYzsKKworCS8qCisJICogUHJvdmlkZSB0aGUgZmlsZSBjb250ZW50cyAobWludXMgdGhlIGFwcGVuZGVkIHNpZykgc28gdGhhdCB0aGUgUEtDUzcKKwkgKiBjb2RlIGNhbiBjYWxjdWxhdGUgdGhlIGZpbGUgaGFzaC4KKwkgKi8KKwlzaXplIC09IG1vZHNpZy0+cmF3X3BrY3M3X2xlbiArIHN0cmxlbihNT0RVTEVfU0lHX1NUUklORykgKworCQlzaXplb2Yoc3RydWN0IG1vZHVsZV9zaWduYXR1cmUpOworCXJjID0gcGtjczdfc3VwcGx5X2RldGFjaGVkX2RhdGEobW9kc2lnLT5wa2NzN19tc2csIGJ1Ziwgc2l6ZSk7CisJaWYgKHJjKQorCQlyZXR1cm47CisKKwkvKiBBc2sgdGhlIFBLQ1M3IGNvZGUgdG8gY2FsY3VsYXRlIHRoZSBmaWxlIGhhc2guICovCisJcmMgPSBwa2NzN19nZXRfZGlnZXN0KG1vZHNpZy0+cGtjczdfbXNnLCAmbW9kc2lnLT5kaWdlc3QsCisJCQkgICAgICAmbW9kc2lnLT5kaWdlc3Rfc2l6ZSwgJm1vZHNpZy0+aGFzaF9hbGdvKTsKK30KKworaW50IGltYV9tb2RzaWdfdmVyaWZ5KHN0cnVjdCBrZXkgKmtleXJpbmcsIGNvbnN0IHN0cnVjdCBtb2RzaWcgKm1vZHNpZykKK3sKKwlyZXR1cm4gdmVyaWZ5X3BrY3M3X21lc3NhZ2Vfc2lnKE5VTEwsIDAsIG1vZHNpZy0+cGtjczdfbXNnLCBrZXlyaW5nLAorCQkJCQlWRVJJRllJTkdfTU9EVUxFX1NJR05BVFVSRSwgTlVMTCwgTlVMTCk7Cit9CisKK2ludCBpbWFfZ2V0X21vZHNpZ19kaWdlc3QoY29uc3Qgc3RydWN0IG1vZHNpZyAqbW9kc2lnLCBlbnVtIGhhc2hfYWxnbyAqYWxnbywKKwkJCSAgY29uc3QgdTggKipkaWdlc3QsIHUzMiAqZGlnZXN0X3NpemUpCit7CisJKmFsZ28gPSBtb2RzaWctPmhhc2hfYWxnbzsKKwkqZGlnZXN0ID0gbW9kc2lnLT5kaWdlc3Q7CisJKmRpZ2VzdF9zaXplID0gbW9kc2lnLT5kaWdlc3Rfc2l6ZTsKKworCXJldHVybiAwOworfQorCitpbnQgaW1hX2dldF9yYXdfbW9kc2lnKGNvbnN0IHN0cnVjdCBtb2RzaWcgKm1vZHNpZywgY29uc3Qgdm9pZCAqKmRhdGEsCisJCSAgICAgICB1MzIgKmRhdGFfbGVuKQoreworCSpkYXRhID0gJm1vZHNpZy0+cmF3X3BrY3M3OworCSpkYXRhX2xlbiA9IG1vZHNpZy0+cmF3X3BrY3M3X2xlbjsKKworCXJldHVybiAwOworfQorCit2b2lkIGltYV9mcmVlX21vZHNpZyhzdHJ1Y3QgbW9kc2lnICptb2RzaWcpCit7CisJaWYgKCFtb2RzaWcpCisJCXJldHVybjsKKworCXBrY3M3X2ZyZWVfbWVzc2FnZShtb2RzaWctPnBrY3M3X21zZyk7CisJa2ZyZWUobW9kc2lnKTsKK30KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX3BvbGljeS5jIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfcG9saWN5LmMKaW5kZXggNmRmN2Y2NC4uNTM4MGFjYSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfcG9saWN5LmMKKysrIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfcG9saWN5LmMKQEAgLTYsNiArNiw5IEBACiAgKiBpbWFfcG9saWN5LmMKICAqCS0gaW5pdGlhbGl6ZSBkZWZhdWx0IG1lYXN1cmUgcG9saWN5IHJ1bGVzCiAgKi8KKworI2RlZmluZSBwcl9mbXQoZm10KSBLQlVJTERfTU9ETkFNRSAiOiAiIGZtdAorCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgpAQCAtNDkxLDYgKzQ5NCw5IEBAIGludCBpbWFfbWF0Y2hfcG9saWN5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBjcmVkICpjcmVkLCB1MzIgc2VjaWQsCiAJc3RydWN0IGltYV9ydWxlX2VudHJ5ICplbnRyeTsKIAlpbnQgYWN0aW9uID0gMCwgYWN0bWFzayA9IGZsYWdzIHwgKGZsYWdzIDw8IDEpOwogCisJaWYgKHRlbXBsYXRlX2Rlc2MpCisJCSp0ZW1wbGF0ZV9kZXNjID0gaW1hX3RlbXBsYXRlX2Rlc2NfY3VycmVudCgpOworCiAJcmN1X3JlYWRfbG9jaygpOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGVudHJ5LCBpbWFfcnVsZXMsIGxpc3QpIHsKIApAQCAtNTEwLDYgKzUxNiw3IEBAIGludCBpbWFfbWF0Y2hfcG9saWN5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBjcmVkICpjcmVkLCB1MzIgc2VjaWQsCiAJCQkJYWN0aW9uIHw9IElNQV9GQUlMX1VOVkVSSUZJQUJMRV9TSUdTOwogCQl9CiAKKwogCQlpZiAoZW50cnktPmFjdGlvbiAmIElNQV9ET19NQVNLKQogCQkJYWN0bWFzayAmPSB+KGVudHJ5LT5hY3Rpb24gfCBlbnRyeS0+YWN0aW9uIDw8IDEpOwogCQllbHNlCkBAIC01MjAsOCArNTI3LDYgQEAgaW50IGltYV9tYXRjaF9wb2xpY3koc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGNyZWQgKmNyZWQsIHUzMiBzZWNpZCwKIAogCQlpZiAodGVtcGxhdGVfZGVzYyAmJiBlbnRyeS0+dGVtcGxhdGUpCiAJCQkqdGVtcGxhdGVfZGVzYyA9IGVudHJ5LT50ZW1wbGF0ZTsKLQkJZWxzZSBpZiAodGVtcGxhdGVfZGVzYykKLQkJCSp0ZW1wbGF0ZV9kZXNjID0gaW1hX3RlbXBsYXRlX2Rlc2NfY3VycmVudCgpOwogCiAJCWlmICghYWN0bWFzaykKIAkJCWJyZWFrOwpAQCAtODQzLDYgKzg0OCwzOCBAQCBzdGF0aWMgdm9pZCBpbWFfbG9nX3N0cmluZyhzdHJ1Y3QgYXVkaXRfYnVmZmVyICphYiwgY2hhciAqa2V5LCBjaGFyICp2YWx1ZSkKIAlpbWFfbG9nX3N0cmluZ19vcChhYiwga2V5LCB2YWx1ZSwgTlVMTCk7CiB9CiAKKy8qCisgKiBWYWxpZGF0aW5nIHRoZSBhcHBlbmRlZCBzaWduYXR1cmUgaW5jbHVkZWQgaW4gdGhlIG1lYXN1cmVtZW50IGxpc3QgcmVxdWlyZXMKKyAqIHRoZSBmaWxlIGhhc2ggY2FsY3VsYXRlZCB3aXRob3V0IHRoZSBhcHBlbmRlZCBzaWduYXR1cmUgKGkuZS4sIHRoZSAnZC1tb2RzaWcnCisgKiBmaWVsZCkuIFRoZXJlZm9yZSwgbm90aWZ5IHRoZSB1c2VyIGlmIHRoZXkgaGF2ZSB0aGUgJ21vZHNpZycgZmllbGQgYnV0IG5vdAorICogdGhlICdkLW1vZHNpZycgZmllbGQgaW4gdGhlIHRlbXBsYXRlLgorICovCitzdGF0aWMgdm9pZCBjaGVja190ZW1wbGF0ZV9tb2RzaWcoY29uc3Qgc3RydWN0IGltYV90ZW1wbGF0ZV9kZXNjICp0ZW1wbGF0ZSkKK3sKKyNkZWZpbmUgTVNHICJ0ZW1wbGF0ZSB3aXRoICdtb2RzaWcnIGZpZWxkIGFsc28gbmVlZHMgJ2QtbW9kc2lnJyBmaWVsZFxuIgorCWJvb2wgaGFzX21vZHNpZywgaGFzX2Rtb2RzaWc7CisJc3RhdGljIGJvb2wgY2hlY2tlZDsKKwlpbnQgaTsKKworCS8qIFdlIG9ubHkgbmVlZCB0byBub3RpZnkgdGhlIHVzZXIgb25jZS4gKi8KKwlpZiAoY2hlY2tlZCkKKwkJcmV0dXJuOworCisJaGFzX21vZHNpZyA9IGhhc19kbW9kc2lnID0gZmFsc2U7CisJZm9yIChpID0gMDsgaSA8IHRlbXBsYXRlLT5udW1fZmllbGRzOyBpKyspIHsKKwkJaWYgKCFzdHJjbXAodGVtcGxhdGUtPmZpZWxkc1tpXS0+ZmllbGRfaWQsICJtb2RzaWciKSkKKwkJCWhhc19tb2RzaWcgPSB0cnVlOworCQllbHNlIGlmICghc3RyY21wKHRlbXBsYXRlLT5maWVsZHNbaV0tPmZpZWxkX2lkLCAiZC1tb2RzaWciKSkKKwkJCWhhc19kbW9kc2lnID0gdHJ1ZTsKKwl9CisKKwlpZiAoaGFzX21vZHNpZyAmJiAhaGFzX2Rtb2RzaWcpCisJCXByX25vdGljZShNU0cpOworCisJY2hlY2tlZCA9IHRydWU7CisjdW5kZWYgTVNHCit9CisKIHN0YXRpYyBpbnQgaW1hX3BhcnNlX3J1bGUoY2hhciAqcnVsZSwgc3RydWN0IGltYV9ydWxlX2VudHJ5ICplbnRyeSkKIHsKIAlzdHJ1Y3QgYXVkaXRfYnVmZmVyICphYjsKQEAgLTExMjgsNiArMTE2NSwxMCBAQCBzdGF0aWMgaW50IGltYV9wYXJzZV9ydWxlKGNoYXIgKnJ1bGUsIHN0cnVjdCBpbWFfcnVsZV9lbnRyeSAqZW50cnkpCiAJCQlpbWFfbG9nX3N0cmluZyhhYiwgImFwcHJhaXNlX3R5cGUiLCBhcmdzWzBdLmZyb20pOwogCQkJaWYgKChzdHJjbXAoYXJnc1swXS5mcm9tLCAiaW1hc2lnIikpID09IDApCiAJCQkJZW50cnktPmZsYWdzIHw9IElNQV9ESUdTSUdfUkVRVUlSRUQ7CisJCQllbHNlIGlmIChpbWFfaG9va19zdXBwb3J0c19tb2RzaWcoZW50cnktPmZ1bmMpICYmCisJCQkJIHN0cmNtcChhcmdzWzBdLmZyb20sICJpbWFzaWd8bW9kc2lnIikgPT0gMCkKKwkJCQllbnRyeS0+ZmxhZ3MgfD0gSU1BX0RJR1NJR19SRVFVSVJFRCB8CisJCQkJCQlJTUFfTU9EU0lHX0FMTE9XRUQ7CiAJCQllbHNlCiAJCQkJcmVzdWx0ID0gLUVJTlZBTDsKIAkJCWJyZWFrOwpAQCAtMTE4MSw2ICsxMjIyLDEyIEBAIHN0YXRpYyBpbnQgaW1hX3BhcnNlX3J1bGUoY2hhciAqcnVsZSwgc3RydWN0IGltYV9ydWxlX2VudHJ5ICplbnRyeSkKIAllbHNlIGlmIChlbnRyeS0+YWN0aW9uID09IEFQUFJBSVNFKQogCQl0ZW1wX2ltYV9hcHByYWlzZSB8PSBpbWFfYXBwcmFpc2VfZmxhZyhlbnRyeS0+ZnVuYyk7CiAKKwlpZiAoIXJlc3VsdCAmJiBlbnRyeS0+ZmxhZ3MgJiBJTUFfTU9EU0lHX0FMTE9XRUQpIHsKKwkJdGVtcGxhdGVfZGVzYyA9IGVudHJ5LT50ZW1wbGF0ZSA/IGVudHJ5LT50ZW1wbGF0ZSA6CisJCQkJCQkgIGltYV90ZW1wbGF0ZV9kZXNjX2N1cnJlbnQoKTsKKwkJY2hlY2tfdGVtcGxhdGVfbW9kc2lnKHRlbXBsYXRlX2Rlc2MpOworCX0KKwogCWF1ZGl0X2xvZ19mb3JtYXQoYWIsICJyZXM9JWQiLCAhcmVzdWx0KTsKIAlhdWRpdF9sb2dfZW5kKGFiKTsKIAlyZXR1cm4gcmVzdWx0OwpAQCAtMTI1Miw2ICsxMjk5LDEyIEBAIHZvaWQgaW1hX2RlbGV0ZV9ydWxlcyh2b2lkKQogCX0KIH0KIAorI2RlZmluZSBfX2ltYV9ob29rX3N0cmluZ2lmeShzdHIpCSgjc3RyKSwKKworY29uc3QgY2hhciAqY29uc3QgZnVuY190b2tlbnNbXSA9IHsKKwlfX2ltYV9ob29rcyhfX2ltYV9ob29rX3N0cmluZ2lmeSkKK307CisKICNpZmRlZglDT05GSUdfSU1BX1JFQURfUE9MSUNZCiBlbnVtIHsKIAltYXNrX2V4ZWMgPSAwLCBtYXNrX3dyaXRlLCBtYXNrX3JlYWQsIG1hc2tfYXBwZW5kCkBAIC0xMjY0LDEyICsxMzE3LDYgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG1hc2tfdG9rZW5zW10gPSB7CiAJIl5NQVlfQVBQRU5EIgogfTsKIAotI2RlZmluZSBfX2ltYV9ob29rX3N0cmluZ2lmeShzdHIpCSgjc3RyKSwKLQotc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGZ1bmNfdG9rZW5zW10gPSB7Ci0JX19pbWFfaG9va3MoX19pbWFfaG9va19zdHJpbmdpZnkpCi19OwotCiB2b2lkICppbWFfcG9saWN5X3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAqbSwgbG9mZl90ICpwb3MpCiB7CiAJbG9mZl90IGwgPSAqcG9zOwpAQCAtMTQ0Nyw4ICsxNDk0LDEyIEBAIGludCBpbWFfcG9saWN5X3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQogCX0KIAlpZiAoZW50cnktPnRlbXBsYXRlKQogCQlzZXFfcHJpbnRmKG0sICJ0ZW1wbGF0ZT0lcyAiLCBlbnRyeS0+dGVtcGxhdGUtPm5hbWUpOwotCWlmIChlbnRyeS0+ZmxhZ3MgJiBJTUFfRElHU0lHX1JFUVVJUkVEKQotCQlzZXFfcHV0cyhtLCAiYXBwcmFpc2VfdHlwZT1pbWFzaWcgIik7CisJaWYgKGVudHJ5LT5mbGFncyAmIElNQV9ESUdTSUdfUkVRVUlSRUQpIHsKKwkJaWYgKGVudHJ5LT5mbGFncyAmIElNQV9NT0RTSUdfQUxMT1dFRCkKKwkJCXNlcV9wdXRzKG0sICJhcHByYWlzZV90eXBlPWltYXNpZ3xtb2RzaWcgIik7CisJCWVsc2UKKwkJCXNlcV9wdXRzKG0sICJhcHByYWlzZV90eXBlPWltYXNpZyAiKTsKKwl9CiAJaWYgKGVudHJ5LT5mbGFncyAmIElNQV9QRVJNSVRfRElSRUNUSU8pCiAJCXNlcV9wdXRzKG0sICJwZXJtaXRfZGlyZWN0aW8gIik7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CkBAIC0xNDU2LDMgKzE1MDcsNTMgQEAgaW50IGltYV9wb2xpY3lfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiAJcmV0dXJuIDA7CiB9CiAjZW5kaWYJLyogQ09ORklHX0lNQV9SRUFEX1BPTElDWSAqLworCisjaWYgZGVmaW5lZChDT05GSUdfSU1BX0FQUFJBSVNFKSAmJiBkZWZpbmVkKENPTkZJR19JTlRFR1JJVFlfVFJVU1RFRF9LRVlSSU5HKQorLyoKKyAqIGltYV9hcHByYWlzZV9zaWduYXR1cmU6IHdoZXRoZXIgSU1BIHdpbGwgYXBwcmFpc2UgYSBnaXZlbiBmdW5jdGlvbiB1c2luZworICogYW4gSU1BIGRpZ2l0YWwgc2lnbmF0dXJlLiBUaGlzIGlzIHJlc3RyaWN0ZWQgdG8gY2FzZXMgd2hlcmUgdGhlIGtlcm5lbAorICogaGFzIGEgc2V0IG9mIGJ1aWx0LWluIHRydXN0ZWQga2V5cyBpbiBvcmRlciB0byBhdm9pZCBhbiBhdHRhY2tlciBzaW1wbHkKKyAqIGxvYWRpbmcgYWRkaXRpb25hbCBrZXlzLgorICovCitib29sIGltYV9hcHByYWlzZV9zaWduYXR1cmUoZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkIGlkKQoreworCXN0cnVjdCBpbWFfcnVsZV9lbnRyeSAqZW50cnk7CisJYm9vbCBmb3VuZCA9IGZhbHNlOworCWVudW0gaW1hX2hvb2tzIGZ1bmM7CisKKwlpZiAoaWQgPj0gUkVBRElOR19NQVhfSUQpCisJCXJldHVybiBmYWxzZTsKKworCWZ1bmMgPSByZWFkX2lkbWFwW2lkXSA/OiBGSUxFX0NIRUNLOworCisJcmN1X3JlYWRfbG9jaygpOworCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGVudHJ5LCBpbWFfcnVsZXMsIGxpc3QpIHsKKwkJaWYgKGVudHJ5LT5hY3Rpb24gIT0gQVBQUkFJU0UpCisJCQljb250aW51ZTsKKworCQkvKgorCQkgKiBBIGdlbmVyaWMgZW50cnkgd2lsbCBtYXRjaCwgYnV0IG90aGVyd2lzZSByZXF1aXJlIHRoYXQgaXQKKwkJICogbWF0Y2ggdGhlIGZ1bmMgd2UncmUgbG9va2luZyBmb3IKKwkJICovCisJCWlmIChlbnRyeS0+ZnVuYyAmJiBlbnRyeS0+ZnVuYyAhPSBmdW5jKQorCQkJY29udGludWU7CisKKwkJLyoKKwkJICogV2UgcmVxdWlyZSB0aGlzIHRvIGJlIGEgZGlnaXRhbCBzaWduYXR1cmUsIG5vdCBhIHJhdyBJTUEKKwkJICogaGFzaC4KKwkJICovCisJCWlmIChlbnRyeS0+ZmxhZ3MgJiBJTUFfRElHU0lHX1JFUVVJUkVEKQorCQkJZm91bmQgPSB0cnVlOworCisJCS8qCisJCSAqIFdlJ3ZlIGZvdW5kIGEgcnVsZSB0aGF0IG1hdGNoZXMsIHNvIGJyZWFrIG5vdyBldmVuIGlmIGl0CisJCSAqIGRpZG4ndCByZXF1aXJlIGEgZGlnaXRhbCBzaWduYXR1cmUgLSBhIGxhdGVyIHJ1bGUgdGhhdCBkb2VzCisJCSAqIHdvbid0IG92ZXJyaWRlIGl0LCBzbyB3b3VsZCBiZSBhIGZhbHNlIHBvc2l0aXZlLgorCQkgKi8KKwkJYnJlYWs7CisJfQorCisJcmN1X3JlYWRfdW5sb2NrKCk7CisJcmV0dXJuIGZvdW5kOworfQorI2VuZGlmIC8qIENPTkZJR19JTUFfQVBQUkFJU0UgJiYgQ09ORklHX0lOVEVHUklUWV9UUlVTVEVEX0tFWVJJTkcgKi8KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX3RlbXBsYXRlLmMgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV90ZW1wbGF0ZS5jCmluZGV4IGNiMzQ5ZDdiLi42YWE2NDA4IDEwMDY0NAotLS0gYS9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV90ZW1wbGF0ZS5jCisrKyBiL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX3RlbXBsYXRlLmMKQEAgLTIzLDYgKzIzLDcgQEAgc3RhdGljIHN0cnVjdCBpbWFfdGVtcGxhdGVfZGVzYyBidWlsdGluX3RlbXBsYXRlc1tdID0gewogCXsubmFtZSA9ICJpbWEtbmciLCAuZm10ID0gImQtbmd8bi1uZyJ9LAogCXsubmFtZSA9ICJpbWEtc2lnIiwgLmZtdCA9ICJkLW5nfG4tbmd8c2lnIn0sCiAJey5uYW1lID0gImltYS1idWYiLCAuZm10ID0gImQtbmd8bi1uZ3xidWYifSwKKwl7Lm5hbWUgPSAiaW1hLW1vZHNpZyIsIC5mbXQgPSAiZC1uZ3xuLW5nfHNpZ3xkLW1vZHNpZ3xtb2RzaWcifSwKIAl7Lm5hbWUgPSAiIiwgLmZtdCA9ICIifSwJLyogcGxhY2Vob2xkZXIgZm9yIGEgY3VzdG9tIGZvcm1hdCAqLwogfTsKIApAQCAtNDIsNiArNDMsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFfdGVtcGxhdGVfZmllbGQgc3VwcG9ydGVkX2ZpZWxkc1tdID0gewogCSAuZmllbGRfc2hvdyA9IGltYV9zaG93X3RlbXBsYXRlX3NpZ30sCiAJey5maWVsZF9pZCA9ICJidWYiLCAuZmllbGRfaW5pdCA9IGltYV9ldmVudGJ1Zl9pbml0LAogCSAuZmllbGRfc2hvdyA9IGltYV9zaG93X3RlbXBsYXRlX2J1Zn0sCisJey5maWVsZF9pZCA9ICJkLW1vZHNpZyIsIC5maWVsZF9pbml0ID0gaW1hX2V2ZW50ZGlnZXN0X21vZHNpZ19pbml0LAorCSAuZmllbGRfc2hvdyA9IGltYV9zaG93X3RlbXBsYXRlX2RpZ2VzdF9uZ30sCisJey5maWVsZF9pZCA9ICJtb2RzaWciLCAuZmllbGRfaW5pdCA9IGltYV9ldmVudG1vZHNpZ19pbml0LAorCSAuZmllbGRfc2hvdyA9IGltYV9zaG93X3RlbXBsYXRlX3NpZ30sCiB9OwogCiAvKgpAQCAtNDksMTAgKzU0LDI5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hX3RlbXBsYXRlX2ZpZWxkIHN1cHBvcnRlZF9maWVsZHNbXSA9IHsKICAqIG5lZWQgdG8gYmUgYWNjb3VudGVkIGZvciBzaW5jZSB0aGV5IHNob3VsZG4ndCBiZSBkZWZpbmVkIGluIHRoZSBzYW1lIHRlbXBsYXRlCiAgKiBkZXNjcmlwdGlvbiBhcyAnZC1uZycgYW5kICduLW5nJyByZXNwZWN0aXZlbHkuCiAgKi8KLSNkZWZpbmUgTUFYX1RFTVBMQVRFX05BTUVfTEVOIHNpemVvZigiZC1uZ3xuLW5nfHNpZ3xidWYiKQorI2RlZmluZSBNQVhfVEVNUExBVEVfTkFNRV9MRU4gc2l6ZW9mKCJkLW5nfG4tbmd8c2lnfGJ1ZnxkLW1vZGlzZ3xtb2RzaWciKQogCiBzdGF0aWMgc3RydWN0IGltYV90ZW1wbGF0ZV9kZXNjICppbWFfdGVtcGxhdGU7CiAKKy8qKgorICogaW1hX3RlbXBsYXRlX2hhc19tb2RzaWcgLSBDaGVjayB3aGV0aGVyIHRlbXBsYXRlIGhhcyBtb2RzaWctcmVsYXRlZCBmaWVsZHMuCisgKiBAaW1hX3RlbXBsYXRlOiBJTUEgdGVtcGxhdGUgdG8gY2hlY2suCisgKgorICogVGVsbHMgd2hldGhlciB0aGUgZ2l2ZW4gdGVtcGxhdGUgaGFzIGZpZWxkcyByZWZlcmVuY2luZyBhIGZpbGUncyBhcHBlbmRlZAorICogc2lnbmF0dXJlLgorICovCitib29sIGltYV90ZW1wbGF0ZV9oYXNfbW9kc2lnKGNvbnN0IHN0cnVjdCBpbWFfdGVtcGxhdGVfZGVzYyAqaW1hX3RlbXBsYXRlKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGltYV90ZW1wbGF0ZS0+bnVtX2ZpZWxkczsgaSsrKQorCQlpZiAoIXN0cmNtcChpbWFfdGVtcGxhdGUtPmZpZWxkc1tpXS0+ZmllbGRfaWQsICJtb2RzaWciKSB8fAorCQkgICAgIXN0cmNtcChpbWFfdGVtcGxhdGUtPmZpZWxkc1tpXS0+ZmllbGRfaWQsICJkLW1vZHNpZyIpKQorCQkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBpbnQgX19pbml0IGltYV90ZW1wbGF0ZV9zZXR1cChjaGFyICpzdHIpCiB7CiAJc3RydWN0IGltYV90ZW1wbGF0ZV9kZXNjICp0ZW1wbGF0ZV9kZXNjOwpAQCAtMjgyLDkgKzMwNiw4IEBAIHN0YXRpYyBpbnQgaW1hX3Jlc3RvcmVfdGVtcGxhdGVfZGF0YShzdHJ1Y3QgaW1hX3RlbXBsYXRlX2Rlc2MgKnRlbXBsYXRlX2Rlc2MsCiAJaW50IHJldCA9IDA7CiAJaW50IGk7CiAKLQkqZW50cnkgPSBremFsbG9jKHNpemVvZigqKmVudHJ5KSArCi0JCSAgICB0ZW1wbGF0ZV9kZXNjLT5udW1fZmllbGRzICogc2l6ZW9mKHN0cnVjdCBpbWFfZmllbGRfZGF0YSksCi0JCSAgICBHRlBfTk9GUyk7CisJKmVudHJ5ID0ga3phbGxvYyhzdHJ1Y3Rfc2l6ZSgqZW50cnksIHRlbXBsYXRlX2RhdGEsCisJCQkJICAgICB0ZW1wbGF0ZV9kZXNjLT5udW1fZmllbGRzKSwgR0ZQX05PRlMpOwogCWlmICghKmVudHJ5KQogCQlyZXR1cm4gLUVOT01FTTsKIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfdGVtcGxhdGVfbGliLmMgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV90ZW1wbGF0ZV9saWIuYwppbmRleCAyZmI5YTEwLi4zMmFlMDVkIDEwMDY0NAotLS0gYS9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV90ZW1wbGF0ZV9saWIuYworKysgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV90ZW1wbGF0ZV9saWIuYwpAQCAtMjI1LDcgKzIyNSw4IEBAIGludCBpbWFfcGFyc2VfYnVmKHZvaWQgKmJ1ZnN0YXJ0cCwgdm9pZCAqYnVmZW5kcCwgdm9pZCAqKmJ1ZmN1cnAsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaW1hX2V2ZW50ZGlnZXN0X2luaXRfY29tbW9uKHU4ICpkaWdlc3QsIHUzMiBkaWdlc3RzaXplLCB1OCBoYXNoX2FsZ28sCitzdGF0aWMgaW50IGltYV9ldmVudGRpZ2VzdF9pbml0X2NvbW1vbihjb25zdCB1OCAqZGlnZXN0LCB1MzIgZGlnZXN0c2l6ZSwKKwkJCQkgICAgICAgdTggaGFzaF9hbGdvLAogCQkJCSAgICAgICBzdHJ1Y3QgaW1hX2ZpZWxkX2RhdGEgKmZpZWxkX2RhdGEpCiB7CiAJLyoKQEAgLTMyOCw2ICszMjksNDEgQEAgaW50IGltYV9ldmVudGRpZ2VzdF9uZ19pbml0KHN0cnVjdCBpbWFfZXZlbnRfZGF0YSAqZXZlbnRfZGF0YSwKIAkJCQkJICAgaGFzaF9hbGdvLCBmaWVsZF9kYXRhKTsKIH0KIAorLyoKKyAqIFRoaXMgZnVuY3Rpb24gd3JpdGVzIHRoZSBkaWdlc3Qgb2YgdGhlIGZpbGUgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gbWF0Y2ggdGhlCisgKiBkaWdlc3QgY29udGFpbmVkIGluIHRoZSBmaWxlJ3MgYXBwZW5kZWQgc2lnbmF0dXJlLgorICovCitpbnQgaW1hX2V2ZW50ZGlnZXN0X21vZHNpZ19pbml0KHN0cnVjdCBpbWFfZXZlbnRfZGF0YSAqZXZlbnRfZGF0YSwKKwkJCQlzdHJ1Y3QgaW1hX2ZpZWxkX2RhdGEgKmZpZWxkX2RhdGEpCit7CisJZW51bSBoYXNoX2FsZ28gaGFzaF9hbGdvOworCWNvbnN0IHU4ICpjdXJfZGlnZXN0OworCXUzMiBjdXJfZGlnZXN0c2l6ZTsKKworCWlmICghZXZlbnRfZGF0YS0+bW9kc2lnKQorCQlyZXR1cm4gMDsKKworCWlmIChldmVudF9kYXRhLT52aW9sYXRpb24pIHsKKwkJLyogUmVjb3JkaW5nIGEgdmlvbGF0aW9uLiAqLworCQloYXNoX2FsZ28gPSBIQVNIX0FMR09fU0hBMTsKKwkJY3VyX2RpZ2VzdCA9IE5VTEw7CisJCWN1cl9kaWdlc3RzaXplID0gMDsKKwl9IGVsc2UgeworCQlpbnQgcmM7CisKKwkJcmMgPSBpbWFfZ2V0X21vZHNpZ19kaWdlc3QoZXZlbnRfZGF0YS0+bW9kc2lnLCAmaGFzaF9hbGdvLAorCQkJCQkgICAmY3VyX2RpZ2VzdCwgJmN1cl9kaWdlc3RzaXplKTsKKwkJaWYgKHJjKQorCQkJcmV0dXJuIHJjOworCQllbHNlIGlmIChoYXNoX2FsZ28gPT0gSEFTSF9BTEdPX19MQVNUIHx8IGN1cl9kaWdlc3RzaXplID09IDApCisJCQkvKiBUaGVyZSB3YXMgc29tZSBlcnJvciBjb2xsZWN0aW5nIHRoZSBkaWdlc3QuICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gaW1hX2V2ZW50ZGlnZXN0X2luaXRfY29tbW9uKGN1cl9kaWdlc3QsIGN1cl9kaWdlc3RzaXplLAorCQkJCQkgICBoYXNoX2FsZ28sIGZpZWxkX2RhdGEpOworfQorCiBzdGF0aWMgaW50IGltYV9ldmVudG5hbWVfaW5pdF9jb21tb24oc3RydWN0IGltYV9ldmVudF9kYXRhICpldmVudF9kYXRhLAogCQkJCSAgICAgc3RydWN0IGltYV9maWVsZF9kYXRhICpmaWVsZF9kYXRhLAogCQkJCSAgICAgYm9vbCBzaXplX2xpbWl0KQpAQCAtNDA2LDMgKzQ0MiwyOSBAQCBpbnQgaW1hX2V2ZW50YnVmX2luaXQoc3RydWN0IGltYV9ldmVudF9kYXRhICpldmVudF9kYXRhLAogCQkJCQkgICAgIGV2ZW50X2RhdGEtPmJ1Zl9sZW4sIERBVEFfRk1UX0hFWCwKIAkJCQkJICAgICBmaWVsZF9kYXRhKTsKIH0KKworLyoKKyAqICBpbWFfZXZlbnRtb2RzaWdfaW5pdCAtIGluY2x1ZGUgdGhlIGFwcGVuZGVkIGZpbGUgc2lnbmF0dXJlIGFzIHBhcnQgb2YgdGhlCisgKiAgdGVtcGxhdGUgZGF0YQorICovCitpbnQgaW1hX2V2ZW50bW9kc2lnX2luaXQoc3RydWN0IGltYV9ldmVudF9kYXRhICpldmVudF9kYXRhLAorCQkJIHN0cnVjdCBpbWFfZmllbGRfZGF0YSAqZmllbGRfZGF0YSkKK3sKKwljb25zdCB2b2lkICpkYXRhOworCXUzMiBkYXRhX2xlbjsKKwlpbnQgcmM7CisKKwlpZiAoIWV2ZW50X2RhdGEtPm1vZHNpZykKKwkJcmV0dXJuIDA7CisKKwkvKgorCSAqIG1vZHNpZyBpcyBhIHJ1bnRpbWUgc3RydWN0dXJlIGNvbnRhaW5pbmcgcG9pbnRlcnMuIEdldCBpdHMgcmF3IGRhdGEKKwkgKiBpbnN0ZWFkLgorCSAqLworCXJjID0gaW1hX2dldF9yYXdfbW9kc2lnKGV2ZW50X2RhdGEtPm1vZHNpZywgJmRhdGEsICZkYXRhX2xlbik7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlyZXR1cm4gaW1hX3dyaXRlX3RlbXBsYXRlX2ZpZWxkX2RhdGEoZGF0YSwgZGF0YV9sZW4sIERBVEFfRk1UX0hFWCwKKwkJCQkJICAgICBmaWVsZF9kYXRhKTsKK30KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX3RlbXBsYXRlX2xpYi5oIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfdGVtcGxhdGVfbGliLmgKaW5kZXggNjUyYWE1ZC4uOWE4OGM3OSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfdGVtcGxhdGVfbGliLmgKKysrIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfdGVtcGxhdGVfbGliLmgKQEAgLTM2LDEwICszNiwxNCBAQCBpbnQgaW1hX2V2ZW50bmFtZV9pbml0KHN0cnVjdCBpbWFfZXZlbnRfZGF0YSAqZXZlbnRfZGF0YSwKIAkJICAgICAgIHN0cnVjdCBpbWFfZmllbGRfZGF0YSAqZmllbGRfZGF0YSk7CiBpbnQgaW1hX2V2ZW50ZGlnZXN0X25nX2luaXQoc3RydWN0IGltYV9ldmVudF9kYXRhICpldmVudF9kYXRhLAogCQkJICAgIHN0cnVjdCBpbWFfZmllbGRfZGF0YSAqZmllbGRfZGF0YSk7CitpbnQgaW1hX2V2ZW50ZGlnZXN0X21vZHNpZ19pbml0KHN0cnVjdCBpbWFfZXZlbnRfZGF0YSAqZXZlbnRfZGF0YSwKKwkJCQlzdHJ1Y3QgaW1hX2ZpZWxkX2RhdGEgKmZpZWxkX2RhdGEpOwogaW50IGltYV9ldmVudG5hbWVfbmdfaW5pdChzdHJ1Y3QgaW1hX2V2ZW50X2RhdGEgKmV2ZW50X2RhdGEsCiAJCQkgIHN0cnVjdCBpbWFfZmllbGRfZGF0YSAqZmllbGRfZGF0YSk7CiBpbnQgaW1hX2V2ZW50c2lnX2luaXQoc3RydWN0IGltYV9ldmVudF9kYXRhICpldmVudF9kYXRhLAogCQkgICAgICBzdHJ1Y3QgaW1hX2ZpZWxkX2RhdGEgKmZpZWxkX2RhdGEpOwogaW50IGltYV9ldmVudGJ1Zl9pbml0KHN0cnVjdCBpbWFfZXZlbnRfZGF0YSAqZXZlbnRfZGF0YSwKIAkJICAgICAgc3RydWN0IGltYV9maWVsZF9kYXRhICpmaWVsZF9kYXRhKTsKK2ludCBpbWFfZXZlbnRtb2RzaWdfaW5pdChzdHJ1Y3QgaW1hX2V2ZW50X2RhdGEgKmV2ZW50X2RhdGEsCisJCQkgc3RydWN0IGltYV9maWVsZF9kYXRhICpmaWVsZF9kYXRhKTsKICNlbmRpZiAvKiBfX0xJTlVYX0lNQV9URU1QTEFURV9MSUJfSCAqLwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ludGVncml0eS5oIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ludGVncml0eS5oCmluZGV4IGVkMTJkOGUuLmQ5MzIzZDMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2ludGVncml0eS9pbnRlZ3JpdHkuaAorKysgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW50ZWdyaXR5LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNkZWZpbmUgSU1BX05FV19GSUxFCQkweDA0MDAwMDAwCiAjZGVmaW5lIEVWTV9JTU1VVEFCTEVfRElHU0lHCTB4MDgwMDAwMDAKICNkZWZpbmUgSU1BX0ZBSUxfVU5WRVJJRklBQkxFX1NJR1MJMHgxMDAwMDAwMAorI2RlZmluZSBJTUFfTU9EU0lHX0FMTE9XRUQJMHgyMDAwMDAwMAogCiAjZGVmaW5lIElNQV9ET19NQVNLCQkoSU1BX01FQVNVUkUgfCBJTUFfQVBQUkFJU0UgfCBJTUFfQVVESVQgfCBcCiAJCQkJIElNQV9IQVNIIHwgSU1BX0FQUFJBSVNFX1NVQk1BU0spCkBAIC0xNDcsMTAgKzE0OCwxMyBAQCBpbnQgaW50ZWdyaXR5X2tlcm5lbF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LAogCiBleHRlcm4gc3RydWN0IGRlbnRyeSAqaW50ZWdyaXR5X2RpcjsKIAorc3RydWN0IG1vZHNpZzsKKwogI2lmZGVmIENPTkZJR19JTlRFR1JJVFlfU0lHTkFUVVJFCiAKIGludCBpbnRlZ3JpdHlfZGlnc2lnX3ZlcmlmeShjb25zdCB1bnNpZ25lZCBpbnQgaWQsIGNvbnN0IGNoYXIgKnNpZywgaW50IHNpZ2xlbiwKIAkJCSAgICBjb25zdCBjaGFyICpkaWdlc3QsIGludCBkaWdlc3RsZW4pOworaW50IGludGVncml0eV9tb2RzaWdfdmVyaWZ5KHVuc2lnbmVkIGludCBpZCwgY29uc3Qgc3RydWN0IG1vZHNpZyAqbW9kc2lnKTsKIAogaW50IF9faW5pdCBpbnRlZ3JpdHlfaW5pdF9rZXlyaW5nKGNvbnN0IHVuc2lnbmVkIGludCBpZCk7CiBpbnQgX19pbml0IGludGVncml0eV9sb2FkX3g1MDkoY29uc3QgdW5zaWduZWQgaW50IGlkLCBjb25zdCBjaGFyICpwYXRoKTsKQEAgLTE2NSw2ICsxNjksMTIgQEAgc3RhdGljIGlubGluZSBpbnQgaW50ZWdyaXR5X2RpZ3NpZ192ZXJpZnkoY29uc3QgdW5zaWduZWQgaW50IGlkLAogCXJldHVybiAtRU9QTk9UU1VQUDsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgaW50ZWdyaXR5X21vZHNpZ192ZXJpZnkodW5zaWduZWQgaW50IGlkLAorCQkJCQkgIGNvbnN0IHN0cnVjdCBtb2RzaWcgKm1vZHNpZykKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IGludGVncml0eV9pbml0X2tleXJpbmcoY29uc3QgdW5zaWduZWQgaW50IGlkKQogewogCXJldHVybiAwOwpAQCAtMTkwLDYgKzIwMCwxNiBAQCBzdGF0aWMgaW5saW5lIGludCBhc3ltbWV0cmljX3ZlcmlmeShzdHJ1Y3Qga2V5ICprZXlyaW5nLCBjb25zdCBjaGFyICpzaWcsCiB9CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19JTUFfQVBQUkFJU0VfTU9EU0lHCitpbnQgaW1hX21vZHNpZ192ZXJpZnkoc3RydWN0IGtleSAqa2V5cmluZywgY29uc3Qgc3RydWN0IG1vZHNpZyAqbW9kc2lnKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBpbWFfbW9kc2lnX3ZlcmlmeShzdHJ1Y3Qga2V5ICprZXlyaW5nLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgbW9kc2lnICptb2RzaWcpCit7CisJcmV0dXJuIC1FT1BOT1RTVVBQOworfQorI2VuZGlmCisKICNpZmRlZiBDT05GSUdfSU1BX0xPQURfWDUwOQogdm9pZCBfX2luaXQgaW1hX2xvYWRfeDUwOSh2b2lkKTsKICNlbHNlCmRpZmYgLS1naXQgYS9zZWN1cml0eS9rZXlzL3RydXN0ZWQuYyBiL3NlY3VyaXR5L2tleXMvdHJ1c3RlZC5jCmluZGV4IGFkZTY5OTEuLjFmYmQ3NzggMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2tleXMvdHJ1c3RlZC5jCisrKyBiL3NlY3VyaXR5L2tleXMvdHJ1c3RlZC5jCkBAIC0xMjI4LDExICsxMjI4LDE2IEBAIHN0YXRpYyBpbnQgX19pbml0IHRydXN0ZWRfc2hhc2hfYWxsb2Modm9pZCkKIAogc3RhdGljIGludCBfX2luaXQgaW5pdF9kaWdlc3RzKHZvaWQpCiB7CisJaW50IGk7CisKIAlkaWdlc3RzID0ga2NhbGxvYyhjaGlwLT5ucl9hbGxvY2F0ZWRfYmFua3MsIHNpemVvZigqZGlnZXN0cyksCiAJCQkgIEdGUF9LRVJORUwpOwogCWlmICghZGlnZXN0cykKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlmb3IgKGkgPSAwOyBpIDwgY2hpcC0+bnJfYWxsb2NhdGVkX2JhbmtzOyBpKyspCisJCWRpZ2VzdHNbaV0uYWxnX2lkID0gY2hpcC0+YWxsb2NhdGVkX2JhbmtzW2ldLmFsZ19pZDsKKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9sb2NrZG93bi9LY29uZmlnIGIvc2VjdXJpdHkvbG9ja2Rvd24vS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODRkZGY0Ci0tLSAvZGV2L251bGwKKysrIGIvc2VjdXJpdHkvbG9ja2Rvd24vS2NvbmZpZwpAQCAtMCwwICsxLDQ3IEBACitjb25maWcgU0VDVVJJVFlfTE9DS0RPV05fTFNNCisJYm9vbCAiQmFzaWMgbW9kdWxlIGZvciBlbmZvcmNpbmcga2VybmVsIGxvY2tkb3duIgorCWRlcGVuZHMgb24gU0VDVVJJVFkKKwlzZWxlY3QgTU9EVUxFX1NJRyBpZiBNT0RVTEVTCisJaGVscAorCSAgQnVpbGQgc3VwcG9ydCBmb3IgYW4gTFNNIHRoYXQgZW5mb3JjZXMgYSBjb2Fyc2Uga2VybmVsIGxvY2tkb3duCisJICBiZWhhdmlvdXIuCisKK2NvbmZpZyBTRUNVUklUWV9MT0NLRE9XTl9MU01fRUFSTFkKKwlib29sICJFbmFibGUgbG9ja2Rvd24gTFNNIGVhcmx5IGluIGluaXQiCisJZGVwZW5kcyBvbiBTRUNVUklUWV9MT0NLRE9XTl9MU00KKwloZWxwCisJICBFbmFibGUgdGhlIGxvY2tkb3duIExTTSBlYXJseSBpbiBib290LiBUaGlzIGlzIG5lY2Vzc2FyeSBpbiBvcmRlcgorCSAgdG8gZW5zdXJlIHRoYXQgbG9ja2Rvd24gZW5mb3JjZW1lbnQgY2FuIGJlIGNhcnJpZWQgb3V0IG9uIGtlcm5lbAorCSAgYm9vdCBwYXJhbWV0ZXJzIHRoYXQgYXJlIG90aGVyd2lzZSBwYXJzZWQgYmVmb3JlIHRoZSBzZWN1cml0eQorCSAgc3Vic3lzdGVtIGlzIGZ1bGx5IGluaXRpYWxpc2VkLiBJZiBlbmFibGVkLCBsb2NrZG93biB3aWxsCisJICB1bmNvbmRpdGlvbmFsbHkgYmUgY2FsbGVkIGJlZm9yZSBhbnkgb3RoZXIgTFNNcy4KKworY2hvaWNlCisJcHJvbXB0ICJLZXJuZWwgZGVmYXVsdCBsb2NrZG93biBtb2RlIgorCWRlZmF1bHQgTE9DS19ET1dOX0tFUk5FTF9GT1JDRV9OT05FCisJZGVwZW5kcyBvbiBTRUNVUklUWV9MT0NLRE9XTl9MU00KKwloZWxwCisJICBUaGUga2VybmVsIGNhbiBiZSBjb25maWd1cmVkIHRvIGRlZmF1bHQgdG8gZGlmZmVyaW5nIGxldmVscyBvZgorCSAgbG9ja2Rvd24uCisKK2NvbmZpZyBMT0NLX0RPV05fS0VSTkVMX0ZPUkNFX05PTkUKKwlib29sICJOb25lIgorCWhlbHAKKwkgIE5vIGxvY2tkb3duIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZCBieSBkZWZhdWx0LiBMb2NrZG93biBtYXkgYmUKKwkgIGVuYWJsZWQgdmlhIHRoZSBrZXJuZWwgY29tbWFuZGxpbmUgb3IgL3N5cy9rZXJuZWwvc2VjdXJpdHkvbG9ja2Rvd24uCisKK2NvbmZpZyBMT0NLX0RPV05fS0VSTkVMX0ZPUkNFX0lOVEVHUklUWQorCWJvb2wgIkludGVncml0eSIKKwloZWxwCisJIFRoZSBrZXJuZWwgcnVucyBpbiBpbnRlZ3JpdHkgbW9kZSBieSBkZWZhdWx0LiBGZWF0dXJlcyB0aGF0IGFsbG93CisJIHRoZSBrZXJuZWwgdG8gYmUgbW9kaWZpZWQgYXQgcnVudGltZSBhcmUgZGlzYWJsZWQuCisKK2NvbmZpZyBMT0NLX0RPV05fS0VSTkVMX0ZPUkNFX0NPTkZJREVOVElBTElUWQorCWJvb2wgIkNvbmZpZGVudGlhbGl0eSIKKwloZWxwCisJIFRoZSBrZXJuZWwgcnVucyBpbiBjb25maWRlbnRpYWxpdHkgbW9kZSBieSBkZWZhdWx0LiBGZWF0dXJlcyB0aGF0CisJIGFsbG93IHRoZSBrZXJuZWwgdG8gYmUgbW9kaWZpZWQgYXQgcnVudGltZSBvciB0aGF0IHBlcm1pdCB1c2VybGFuZAorCSBjb2RlIHRvIHJlYWQgY29uZmlkZW50aWFsIG1hdGVyaWFsIGhlbGQgaW5zaWRlIHRoZSBrZXJuZWwgYXJlCisJIGRpc2FibGVkLgorCitlbmRjaG9pY2UKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2xvY2tkb3duL01ha2VmaWxlIGIvc2VjdXJpdHkvbG9ja2Rvd24vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM2MzRiOQotLS0gL2Rldi9udWxsCisrKyBiL3NlY3VyaXR5L2xvY2tkb3duL01ha2VmaWxlCkBAIC0wLDAgKzEgQEAKK29iai0kKENPTkZJR19TRUNVUklUWV9MT0NLRE9XTl9MU00pICs9IGxvY2tkb3duLm8KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2xvY2tkb3duL2xvY2tkb3duLmMgYi9zZWN1cml0eS9sb2NrZG93bi9sb2NrZG93bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMTBiNDMKLS0tIC9kZXYvbnVsbAorKysgYi9zZWN1cml0eS9sb2NrZG93bi9sb2NrZG93bi5jCkBAIC0wLDAgKzEsMTkxIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyogTG9jayBkb3duIHRoZSBrZXJuZWwKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgUmVkIEhhdCwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogV3JpdHRlbiBieSBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRoYXQuY29tKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbmNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24KKyAqIDIgb2YgdGhlIExpY2VuY2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CisjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvbHNtX2hvb2tzLmg+CisKK3N0YXRpYyBlbnVtIGxvY2tkb3duX3JlYXNvbiBrZXJuZWxfbG9ja2VkX2Rvd247CisKK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBsb2NrZG93bl9yZWFzb25zW0xPQ0tET1dOX0NPTkZJREVOVElBTElUWV9NQVgrMV0gPSB7CisJW0xPQ0tET1dOX05PTkVdID0gIm5vbmUiLAorCVtMT0NLRE9XTl9NT0RVTEVfU0lHTkFUVVJFXSA9ICJ1bnNpZ25lZCBtb2R1bGUgbG9hZGluZyIsCisJW0xPQ0tET1dOX0RFVl9NRU1dID0gIi9kZXYvbWVtLGttZW0scG9ydCIsCisJW0xPQ0tET1dOX0tFWEVDXSA9ICJrZXhlYyBvZiB1bnNpZ25lZCBpbWFnZXMiLAorCVtMT0NLRE9XTl9ISUJFUk5BVElPTl0gPSAiaGliZXJuYXRpb24iLAorCVtMT0NLRE9XTl9QQ0lfQUNDRVNTXSA9ICJkaXJlY3QgUENJIGFjY2VzcyIsCisJW0xPQ0tET1dOX0lPUE9SVF0gPSAicmF3IGlvIHBvcnQgYWNjZXNzIiwKKwlbTE9DS0RPV05fTVNSXSA9ICJyYXcgTVNSIGFjY2VzcyIsCisJW0xPQ0tET1dOX0FDUElfVEFCTEVTXSA9ICJtb2RpZnlpbmcgQUNQSSB0YWJsZXMiLAorCVtMT0NLRE9XTl9QQ01DSUFfQ0lTXSA9ICJkaXJlY3QgUENNQ0lBIENJUyBzdG9yYWdlIiwKKwlbTE9DS0RPV05fVElPQ1NTRVJJQUxdID0gInJlY29uZmlndXJhdGlvbiBvZiBzZXJpYWwgcG9ydCBJTyIsCisJW0xPQ0tET1dOX01PRFVMRV9QQVJBTUVURVJTXSA9ICJ1bnNhZmUgbW9kdWxlIHBhcmFtZXRlcnMiLAorCVtMT0NLRE9XTl9NTUlPVFJBQ0VdID0gInVuc2FmZSBtbWlvIiwKKwlbTE9DS0RPV05fREVCVUdGU10gPSAiZGVidWdmcyBhY2Nlc3MiLAorCVtMT0NLRE9XTl9JTlRFR1JJVFlfTUFYXSA9ICJpbnRlZ3JpdHkiLAorCVtMT0NLRE9XTl9LQ09SRV0gPSAiL3Byb2Mva2NvcmUgYWNjZXNzIiwKKwlbTE9DS0RPV05fS1BST0JFU10gPSAidXNlIG9mIGtwcm9iZXMiLAorCVtMT0NLRE9XTl9CUEZfUkVBRF0gPSAidXNlIG9mIGJwZiB0byByZWFkIGtlcm5lbCBSQU0iLAorCVtMT0NLRE9XTl9QRVJGXSA9ICJ1bnNhZmUgdXNlIG9mIHBlcmYiLAorCVtMT0NLRE9XTl9UUkFDRUZTXSA9ICJ1c2Ugb2YgdHJhY2VmcyIsCisJW0xPQ0tET1dOX0NPTkZJREVOVElBTElUWV9NQVhdID0gImNvbmZpZGVudGlhbGl0eSIsCit9OworCitzdGF0aWMgY29uc3QgZW51bSBsb2NrZG93bl9yZWFzb24gbG9ja2Rvd25fbGV2ZWxzW10gPSB7TE9DS0RPV05fTk9ORSwKKwkJCQkJCSBMT0NLRE9XTl9JTlRFR1JJVFlfTUFYLAorCQkJCQkJIExPQ0tET1dOX0NPTkZJREVOVElBTElUWV9NQVh9OworCisvKgorICogUHV0IHRoZSBrZXJuZWwgaW50byBsb2NrLWRvd24gbW9kZS4KKyAqLworc3RhdGljIGludCBsb2NrX2tlcm5lbF9kb3duKGNvbnN0IGNoYXIgKndoZXJlLCBlbnVtIGxvY2tkb3duX3JlYXNvbiBsZXZlbCkKK3sKKwlpZiAoa2VybmVsX2xvY2tlZF9kb3duID49IGxldmVsKQorCQlyZXR1cm4gLUVQRVJNOworCisJa2VybmVsX2xvY2tlZF9kb3duID0gbGV2ZWw7CisJcHJfbm90aWNlKCJLZXJuZWwgaXMgbG9ja2VkIGRvd24gZnJvbSAlczsgc2VlIG1hbiBrZXJuZWxfbG9ja2Rvd24uN1xuIiwKKwkJICB3aGVyZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGxvY2tkb3duX3BhcmFtKGNoYXIgKmxldmVsKQoreworCWlmICghbGV2ZWwpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHN0cmNtcChsZXZlbCwgImludGVncml0eSIpID09IDApCisJCWxvY2tfa2VybmVsX2Rvd24oImNvbW1hbmQgbGluZSIsIExPQ0tET1dOX0lOVEVHUklUWV9NQVgpOworCWVsc2UgaWYgKHN0cmNtcChsZXZlbCwgImNvbmZpZGVudGlhbGl0eSIpID09IDApCisJCWxvY2tfa2VybmVsX2Rvd24oImNvbW1hbmQgbGluZSIsIExPQ0tET1dOX0NPTkZJREVOVElBTElUWV9NQVgpOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gMDsKK30KKworZWFybHlfcGFyYW0oImxvY2tkb3duIiwgbG9ja2Rvd25fcGFyYW0pOworCisvKioKKyAqIGxvY2tkb3duX2lzX2xvY2tlZF9kb3duIC0gRmluZCBvdXQgaWYgdGhlIGtlcm5lbCBpcyBsb2NrZWQgZG93bgorICogQHdoYXQ6IFRhZyB0byB1c2UgaW4gbm90aWNlIGdlbmVyYXRlZCBpZiBsb2NrZG93biBpcyBpbiBlZmZlY3QKKyAqLworc3RhdGljIGludCBsb2NrZG93bl9pc19sb2NrZWRfZG93bihlbnVtIGxvY2tkb3duX3JlYXNvbiB3aGF0KQoreworCWlmIChXQVJOKHdoYXQgPj0gTE9DS0RPV05fQ09ORklERU5USUFMSVRZX01BWCwKKwkJICJJbnZhbGlkIGxvY2tkb3duIHJlYXNvbiIpKQorCQlyZXR1cm4gLUVQRVJNOworCisJaWYgKGtlcm5lbF9sb2NrZWRfZG93biA+PSB3aGF0KSB7CisJCWlmIChsb2NrZG93bl9yZWFzb25zW3doYXRdKQorCQkJcHJfbm90aWNlKCJMb2NrZG93bjogJXM6ICVzIGlzIHJlc3RyaWN0ZWQ7IHNlZSBtYW4ga2VybmVsX2xvY2tkb3duLjdcbiIsCisJCQkJICBjdXJyZW50LT5jb21tLCBsb2NrZG93bl9yZWFzb25zW3doYXRdKTsKKwkJcmV0dXJuIC1FUEVSTTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgbG9ja2Rvd25faG9va3NbXSBfX2xzbV9yb19hZnRlcl9pbml0ID0geworCUxTTV9IT09LX0lOSVQobG9ja2VkX2Rvd24sIGxvY2tkb3duX2lzX2xvY2tlZF9kb3duKSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGxvY2tkb3duX2xzbV9pbml0KHZvaWQpCit7CisjaWYgZGVmaW5lZChDT05GSUdfTE9DS19ET1dOX0tFUk5FTF9GT1JDRV9JTlRFR1JJVFkpCisJbG9ja19rZXJuZWxfZG93bigiS2VybmVsIGNvbmZpZ3VyYXRpb24iLCBMT0NLRE9XTl9JTlRFR1JJVFlfTUFYKTsKKyNlbGlmIGRlZmluZWQoQ09ORklHX0xPQ0tfRE9XTl9LRVJORUxfRk9SQ0VfQ09ORklERU5USUFMSVRZKQorCWxvY2tfa2VybmVsX2Rvd24oIktlcm5lbCBjb25maWd1cmF0aW9uIiwgTE9DS0RPV05fQ09ORklERU5USUFMSVRZX01BWCk7CisjZW5kaWYKKwlzZWN1cml0eV9hZGRfaG9va3MobG9ja2Rvd25faG9va3MsIEFSUkFZX1NJWkUobG9ja2Rvd25faG9va3MpLAorCQkJICAgImxvY2tkb3duIik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGxvY2tkb3duX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwKKwkJCSAgICAgbG9mZl90ICpwcG9zKQoreworCWNoYXIgdGVtcFs4MF07CisJaW50IGksIG9mZnNldCA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShsb2NrZG93bl9sZXZlbHMpOyBpKyspIHsKKwkJZW51bSBsb2NrZG93bl9yZWFzb24gbGV2ZWwgPSBsb2NrZG93bl9sZXZlbHNbaV07CisKKwkJaWYgKGxvY2tkb3duX3JlYXNvbnNbbGV2ZWxdKSB7CisJCQljb25zdCBjaGFyICpsYWJlbCA9IGxvY2tkb3duX3JlYXNvbnNbbGV2ZWxdOworCisJCQlpZiAoa2VybmVsX2xvY2tlZF9kb3duID09IGxldmVsKQorCQkJCW9mZnNldCArPSBzcHJpbnRmKHRlbXArb2Zmc2V0LCAiWyVzXSAiLCBsYWJlbCk7CisJCQllbHNlCisJCQkJb2Zmc2V0ICs9IHNwcmludGYodGVtcCtvZmZzZXQsICIlcyAiLCBsYWJlbCk7CisJCX0KKwl9CisKKwkvKiBDb252ZXJ0IHRoZSBsYXN0IHNwYWNlIHRvIGEgbmV3bGluZSBpZiBuZWVkZWQuICovCisJaWYgKG9mZnNldCA+IDApCisJCXRlbXBbb2Zmc2V0LTFdID0gJ1xuJzsKKworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwcG9zLCB0ZW1wLCBzdHJsZW4odGVtcCkpOworfQorCitzdGF0aWMgc3NpemVfdCBsb2NrZG93bl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKKwkJCSAgICAgIHNpemVfdCBuLCBsb2ZmX3QgKnBwb3MpCit7CisJY2hhciAqc3RhdGU7CisJaW50IGksIGxlbiwgZXJyID0gLUVJTlZBTDsKKworCXN0YXRlID0gbWVtZHVwX3VzZXJfbnVsKGJ1Ziwgbik7CisJaWYgKElTX0VSUihzdGF0ZSkpCisJCXJldHVybiBQVFJfRVJSKHN0YXRlKTsKKworCWxlbiA9IHN0cmxlbihzdGF0ZSk7CisJaWYgKGxlbiAmJiBzdGF0ZVtsZW4tMV0gPT0gJ1xuJykgeworCQlzdGF0ZVtsZW4tMV0gPSAnXDAnOworCQlsZW4tLTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShsb2NrZG93bl9sZXZlbHMpOyBpKyspIHsKKwkJZW51bSBsb2NrZG93bl9yZWFzb24gbGV2ZWwgPSBsb2NrZG93bl9sZXZlbHNbaV07CisJCWNvbnN0IGNoYXIgKmxhYmVsID0gbG9ja2Rvd25fcmVhc29uc1tsZXZlbF07CisKKwkJaWYgKGxhYmVsICYmICFzdHJjbXAoc3RhdGUsIGxhYmVsKSkKKwkJCWVyciA9IGxvY2tfa2VybmVsX2Rvd24oInNlY3VyaXR5ZnMiLCBsZXZlbCk7CisJfQorCisJa2ZyZWUoc3RhdGUpOworCXJldHVybiBlcnIgPyBlcnIgOiBuOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBsb2NrZG93bl9vcHMgPSB7CisJLnJlYWQgID0gbG9ja2Rvd25fcmVhZCwKKwkud3JpdGUgPSBsb2NrZG93bl93cml0ZSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGxvY2tkb3duX3NlY2ZzX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7CisKKwlkZW50cnkgPSBzZWN1cml0eWZzX2NyZWF0ZV9maWxlKCJsb2NrZG93biIsIDA2MDAsIE5VTEwsIE5VTEwsCisJCQkJCSZsb2NrZG93bl9vcHMpOworCXJldHVybiBQVFJfRVJSX09SX1pFUk8oZGVudHJ5KTsKK30KKworY29yZV9pbml0Y2FsbChsb2NrZG93bl9zZWNmc19pbml0KTsKKworI2lmZGVmIENPTkZJR19TRUNVUklUWV9MT0NLRE9XTl9MU01fRUFSTFkKK0RFRklORV9FQVJMWV9MU00obG9ja2Rvd24pID0geworI2Vsc2UKK0RFRklORV9MU00obG9ja2Rvd24pID0geworI2VuZGlmCisJLm5hbWUgPSAibG9ja2Rvd24iLAorCS5pbml0ID0gbG9ja2Rvd25fbHNtX2luaXQsCit9OwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2FmZXNldGlkL3NlY3VyaXR5ZnMuYyBiL3NlY3VyaXR5L3NhZmVzZXRpZC9zZWN1cml0eWZzLmMKaW5kZXggZDU2OGUxNy4uNzRhMTNkNCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2FmZXNldGlkL3NlY3VyaXR5ZnMuYworKysgYi9zZWN1cml0eS9zYWZlc2V0aWQvc2VjdXJpdHlmcy5jCkBAIC0xODcsNyArMTg3LDggQEAgc3RhdGljIHNzaXplX3QgaGFuZGxlX3BvbGljeV91cGRhdGUoc3RydWN0IGZpbGUgKmZpbGUsCiBvdXRfZnJlZV9idWY6CiAJa2ZyZWUoYnVmKTsKIG91dF9mcmVlX3BvbDoKLQlyZWxlYXNlX3J1bGVzZXQocG9sKTsKKwlpZiAocG9sKQorICAgICAgICAgICAgICAgIHJlbGVhc2VfcnVsZXNldChwb2wpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlY3VyaXR5LmMgYi9zZWN1cml0eS9zZWN1cml0eS5jCmluZGV4IDI1MGVlMmQuLjFiYzAwMGYgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlY3VyaXR5LmMKKysrIGIvc2VjdXJpdHkvc2VjdXJpdHkuYwpAQCAtMzMsNiArMzMsNyBAQAogCiAvKiBIb3cgbWFueSBMU01zIHdlcmUgYnVpbHQgaW50byB0aGUga2VybmVsPyAqLwogI2RlZmluZSBMU01fQ09VTlQgKF9fZW5kX2xzbV9pbmZvIC0gX19zdGFydF9sc21faW5mbykKKyNkZWZpbmUgRUFSTFlfTFNNX0NPVU5UIChfX2VuZF9lYXJseV9sc21faW5mbyAtIF9fc3RhcnRfZWFybHlfbHNtX2luZm8pCiAKIHN0cnVjdCBzZWN1cml0eV9ob29rX2hlYWRzIHNlY3VyaXR5X2hvb2tfaGVhZHMgX19sc21fcm9fYWZ0ZXJfaW5pdDsKIHN0YXRpYyBCTE9DS0lOR19OT1RJRklFUl9IRUFEKGJsb2NraW5nX2xzbV9ub3RpZmllcl9jaGFpbik7CkBAIC0yNzcsNiArMjc4LDggQEAgc3RhdGljIHZvaWQgX19pbml0IG9yZGVyZWRfbHNtX3BhcnNlKGNvbnN0IGNoYXIgKm9yZGVyLCBjb25zdCBjaGFyICpvcmlnaW4pCiBzdGF0aWMgdm9pZCBfX2luaXQgbHNtX2Vhcmx5X2NyZWQoc3RydWN0IGNyZWQgKmNyZWQpOwogc3RhdGljIHZvaWQgX19pbml0IGxzbV9lYXJseV90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CiAKK3N0YXRpYyBpbnQgbHNtX2FwcGVuZChjb25zdCBjaGFyICpuZXcsIGNoYXIgKipyZXN1bHQpOworCiBzdGF0aWMgdm9pZCBfX2luaXQgb3JkZXJlZF9sc21faW5pdCh2b2lkKQogewogCXN0cnVjdCBsc21faW5mbyAqKmxzbTsKQEAgLTMyMyw2ICszMjYsMjYgQEAgc3RhdGljIHZvaWQgX19pbml0IG9yZGVyZWRfbHNtX2luaXQodm9pZCkKIAlrZnJlZShvcmRlcmVkX2xzbXMpOwogfQogCitpbnQgX19pbml0IGVhcmx5X3NlY3VyaXR5X2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgaGxpc3RfaGVhZCAqbGlzdCA9IChzdHJ1Y3QgaGxpc3RfaGVhZCAqKSAmc2VjdXJpdHlfaG9va19oZWFkczsKKwlzdHJ1Y3QgbHNtX2luZm8gKmxzbTsKKworCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc2VjdXJpdHlfaG9va19oZWFkcykgLyBzaXplb2Yoc3RydWN0IGhsaXN0X2hlYWQpOworCSAgICAgaSsrKQorCQlJTklUX0hMSVNUX0hFQUQoJmxpc3RbaV0pOworCisJZm9yIChsc20gPSBfX3N0YXJ0X2Vhcmx5X2xzbV9pbmZvOyBsc20gPCBfX2VuZF9lYXJseV9sc21faW5mbzsgbHNtKyspIHsKKwkJaWYgKCFsc20tPmVuYWJsZWQpCisJCQlsc20tPmVuYWJsZWQgPSAmbHNtX2VuYWJsZWRfdHJ1ZTsKKwkJcHJlcGFyZV9sc20obHNtKTsKKwkJaW5pdGlhbGl6ZV9sc20obHNtKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKiBzZWN1cml0eV9pbml0IC0gaW5pdGlhbGl6ZXMgdGhlIHNlY3VyaXR5IGZyYW1ld29yawogICoKQEAgLTMzMCwxNCArMzUzLDE4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvcmRlcmVkX2xzbV9pbml0KHZvaWQpCiAgKi8KIGludCBfX2luaXQgc2VjdXJpdHlfaW5pdCh2b2lkKQogewotCWludCBpOwotCXN0cnVjdCBobGlzdF9oZWFkICpsaXN0ID0gKHN0cnVjdCBobGlzdF9oZWFkICopICZzZWN1cml0eV9ob29rX2hlYWRzOworCXN0cnVjdCBsc21faW5mbyAqbHNtOwogCiAJcHJfaW5mbygiU2VjdXJpdHkgRnJhbWV3b3JrIGluaXRpYWxpemluZ1xuIik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHNlY3VyaXR5X2hvb2tfaGVhZHMpIC8gc2l6ZW9mKHN0cnVjdCBobGlzdF9oZWFkKTsKLQkgICAgIGkrKykKLQkJSU5JVF9ITElTVF9IRUFEKCZsaXN0W2ldKTsKKwkvKgorCSAqIEFwcGVuZCB0aGUgbmFtZXMgb2YgdGhlIGVhcmx5IExTTSBtb2R1bGVzIG5vdyB0aGF0IGttYWxsb2MoKSBpcworCSAqIGF2YWlsYWJsZQorCSAqLworCWZvciAobHNtID0gX19zdGFydF9lYXJseV9sc21faW5mbzsgbHNtIDwgX19lbmRfZWFybHlfbHNtX2luZm87IGxzbSsrKSB7CisJCWlmIChsc20tPmVuYWJsZWQpCisJCQlsc21fYXBwZW5kKGxzbS0+bmFtZSwgJmxzbV9uYW1lcyk7CisJfQogCiAJLyogTG9hZCBMU01zIGluIHNwZWNpZmllZCBvcmRlci4gKi8KIAlvcmRlcmVkX2xzbV9pbml0KCk7CkBAIC0zODQsNyArNDExLDcgQEAgc3RhdGljIGJvb2wgbWF0Y2hfbGFzdF9sc20oY29uc3QgY2hhciAqbGlzdCwgY29uc3QgY2hhciAqbHNtKQogCXJldHVybiAhc3RyY21wKGxhc3QsIGxzbSk7CiB9CiAKLXN0YXRpYyBpbnQgbHNtX2FwcGVuZChjaGFyICpuZXcsIGNoYXIgKipyZXN1bHQpCitzdGF0aWMgaW50IGxzbV9hcHBlbmQoY29uc3QgY2hhciAqbmV3LCBjaGFyICoqcmVzdWx0KQogewogCWNoYXIgKmNwOwogCkBAIC00MjIsOCArNDQ5LDE1IEBAIHZvaWQgX19pbml0IHNlY3VyaXR5X2FkZF9ob29rcyhzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0ICpob29rcywgaW50IGNvdW50LAogCQlob29rc1tpXS5sc20gPSBsc207CiAJCWhsaXN0X2FkZF90YWlsX3JjdSgmaG9va3NbaV0ubGlzdCwgaG9va3NbaV0uaGVhZCk7CiAJfQotCWlmIChsc21fYXBwZW5kKGxzbSwgJmxzbV9uYW1lcykgPCAwKQotCQlwYW5pYygiJXMgLSBDYW5ub3QgZ2V0IGVhcmx5IG1lbW9yeS5cbiIsIF9fZnVuY19fKTsKKworCS8qCisJICogRG9uJ3QgdHJ5IHRvIGFwcGVuZCBkdXJpbmcgZWFybHlfc2VjdXJpdHlfaW5pdCgpLCB3ZSdsbCBjb21lIGJhY2sKKwkgKiBhbmQgZml4IHRoaXMgdXAgYWZ0ZXJ3YXJkcy4KKwkgKi8KKwlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkgeworCQlpZiAobHNtX2FwcGVuZChsc20sICZsc21fbmFtZXMpIDwgMCkKKwkJCXBhbmljKCIlcyAtIENhbm5vdCBnZXQgZWFybHkgbWVtb3J5LlxuIiwgX19mdW5jX18pOworCX0KIH0KIAogaW50IGNhbGxfYmxvY2tpbmdfbHNtX25vdGlmaWVyKGVudW0gbHNtX2V2ZW50IGV2ZW50LCB2b2lkICpkYXRhKQpAQCAtODcwLDYgKzkwNCwxMiBAQCBpbnQgc2VjdXJpdHlfbW92ZV9tb3VudChjb25zdCBzdHJ1Y3QgcGF0aCAqZnJvbV9wYXRoLCBjb25zdCBzdHJ1Y3QgcGF0aCAqdG9fcGF0aAogCXJldHVybiBjYWxsX2ludF9ob29rKG1vdmVfbW91bnQsIDAsIGZyb21fcGF0aCwgdG9fcGF0aCk7CiB9CiAKK2ludCBzZWN1cml0eV9wYXRoX25vdGlmeShjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwgdTY0IG1hc2ssCisJCQkJdW5zaWduZWQgaW50IG9ial90eXBlKQoreworCXJldHVybiBjYWxsX2ludF9ob29rKHBhdGhfbm90aWZ5LCAwLCBwYXRoLCBtYXNrLCBvYmpfdHlwZSk7Cit9CisKIGludCBzZWN1cml0eV9pbm9kZV9hbGxvYyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewogCWludCByYyA9IGxzbV9pbm9kZV9hbGxvYyhpbm9kZSk7CkBAIC0yMzU4LDMgKzIzOTgsOSBAQCB2b2lkIHNlY3VyaXR5X2JwZl9wcm9nX2ZyZWUoc3RydWN0IGJwZl9wcm9nX2F1eCAqYXV4KQogCWNhbGxfdm9pZF9ob29rKGJwZl9wcm9nX2ZyZWVfc2VjdXJpdHksIGF1eCk7CiB9CiAjZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovCisKK2ludCBzZWN1cml0eV9sb2NrZWRfZG93bihlbnVtIGxvY2tkb3duX3JlYXNvbiB3aGF0KQoreworCXJldHVybiBjYWxsX2ludF9ob29rKGxvY2tlZF9kb3duLCAwLCB3aGF0KTsKK30KK0VYUE9SVF9TWU1CT0woc2VjdXJpdHlfbG9ja2VkX2Rvd24pOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jIGIvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jCmluZGV4IDc0ZGQ0NmQuLjk2MjViOTkgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMKQEAgLTg5LDYgKzg5LDggQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmdoYXNoLmg+CS8qIGZvciBoYXNobGVuX3N0cmluZygpICovCiAjaW5jbHVkZSA8dWFwaS9saW51eC9tb3VudC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zzbm90aWZ5Lmg+CisjaW5jbHVkZSA8bGludXgvZmFub3RpZnkuaD4KIAogI2luY2x1ZGUgImF2Yy5oIgogI2luY2x1ZGUgIm9ianNlYy5oIgpAQCAtMzI3NSw2ICszMjc3LDUwIEBAIHN0YXRpYyBpbnQgc2VsaW51eF9pbm9kZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUpCiAJcmV0dXJuIC1FQUNDRVM7CiB9CiAKK3N0YXRpYyBpbnQgc2VsaW51eF9wYXRoX25vdGlmeShjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwgdTY0IG1hc2ssCisJCQkJCQl1bnNpZ25lZCBpbnQgb2JqX3R5cGUpCit7CisJaW50IHJldDsKKwl1MzIgcGVybTsKKworCXN0cnVjdCBjb21tb25fYXVkaXRfZGF0YSBhZDsKKworCWFkLnR5cGUgPSBMU01fQVVESVRfREFUQV9QQVRIOworCWFkLnUucGF0aCA9ICpwYXRoOworCisJLyoKKwkgKiBTZXQgcGVybWlzc2lvbiBuZWVkZWQgYmFzZWQgb24gdGhlIHR5cGUgb2YgbWFyayBiZWluZyBzZXQuCisJICogUGVyZm9ybXMgYW4gYWRkaXRpb25hbCBjaGVjayBmb3Igc2Igd2F0Y2hlcy4KKwkgKi8KKwlzd2l0Y2ggKG9ial90eXBlKSB7CisJY2FzZSBGU05PVElGWV9PQkpfVFlQRV9WRlNNT1VOVDoKKwkJcGVybSA9IEZJTEVfX1dBVENIX01PVU5UOworCQlicmVhazsKKwljYXNlIEZTTk9USUZZX09CSl9UWVBFX1NCOgorCQlwZXJtID0gRklMRV9fV0FUQ0hfU0I7CisJCXJldCA9IHN1cGVyYmxvY2tfaGFzX3Blcm0oY3VycmVudF9jcmVkKCksIHBhdGgtPmRlbnRyeS0+ZF9zYiwKKwkJCQkJCUZJTEVTWVNURU1fX1dBVENILCAmYWQpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwkJYnJlYWs7CisJY2FzZSBGU05PVElGWV9PQkpfVFlQRV9JTk9ERToKKwkJcGVybSA9IEZJTEVfX1dBVENIOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBibG9ja2luZyB3YXRjaGVzIHJlcXVpcmUgdGhlIGZpbGU6d2F0Y2hfd2l0aF9wZXJtIHBlcm1pc3Npb24gKi8KKwlpZiAobWFzayAmIChBTExfRlNOT1RJRllfUEVSTV9FVkVOVFMpKQorCQlwZXJtIHw9IEZJTEVfX1dBVENIX1dJVEhfUEVSTTsKKworCS8qIHdhdGNoZXMgb24gcmVhZC1saWtlIGV2ZW50cyBuZWVkIHRoZSBmaWxlOndhdGNoX3JlYWRzIHBlcm1pc3Npb24gKi8KKwlpZiAobWFzayAmIChGU19BQ0NFU1MgfCBGU19BQ0NFU1NfUEVSTSB8IEZTX0NMT1NFX05PV1JJVEUpKQorCQlwZXJtIHw9IEZJTEVfX1dBVENIX1JFQURTOworCisJcmV0dXJuIHBhdGhfaGFzX3Blcm0oY3VycmVudF9jcmVkKCksIHBhdGgsIHBlcm0pOworfQorCiAvKgogICogQ29weSB0aGUgaW5vZGUgc2VjdXJpdHkgY29udGV4dCB2YWx1ZSB0byB0aGUgdXNlci4KICAqCkBAIC0zNDAzLDcgKzM0NDksNyBAQCBzdGF0aWMgaW50IHNlbGludXhfaW5vZGVfY29weV91cF94YXR0cihjb25zdCBjaGFyICpuYW1lKQogc3RhdGljIGludCBzZWxpbnV4X2tlcm5mc19pbml0X3NlY3VyaXR5KHN0cnVjdCBrZXJuZnNfbm9kZSAqa25fZGlyLAogCQkJCQlzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKQogewotCWNvbnN0IHN0cnVjdCB0YXNrX3NlY3VyaXR5X3N0cnVjdCAqdHNlYyA9IGN1cnJlbnRfc2VjdXJpdHkoKTsKKwljb25zdCBzdHJ1Y3QgdGFza19zZWN1cml0eV9zdHJ1Y3QgKnRzZWMgPSBzZWxpbnV4X2NyZWQoY3VycmVudF9jcmVkKCkpOwogCXUzMiBwYXJlbnRfc2lkLCBuZXdzaWQsIGNsZW47CiAJaW50IHJjOwogCWNoYXIgKmNvbnRleHQ7CkBAIC02ODE4LDYgKzY4NjQsNyBAQCBzdGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCBzZWxpbnV4X2hvb2tzW10gX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKIAlMU01fSE9PS19JTklUKGlub2RlX2dldHNlY2lkLCBzZWxpbnV4X2lub2RlX2dldHNlY2lkKSwKIAlMU01fSE9PS19JTklUKGlub2RlX2NvcHlfdXAsIHNlbGludXhfaW5vZGVfY29weV91cCksCiAJTFNNX0hPT0tfSU5JVChpbm9kZV9jb3B5X3VwX3hhdHRyLCBzZWxpbnV4X2lub2RlX2NvcHlfdXBfeGF0dHIpLAorCUxTTV9IT09LX0lOSVQocGF0aF9ub3RpZnksIHNlbGludXhfcGF0aF9ub3RpZnkpLAogCiAJTFNNX0hPT0tfSU5JVChrZXJuZnNfaW5pdF9zZWN1cml0eSwgc2VsaW51eF9rZXJuZnNfaW5pdF9zZWN1cml0eSksCiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9jbGFzc21hcC5oIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL2NsYXNzbWFwLmgKaW5kZXggMjAxZjdlNS4uMzJlOWIwMyAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL2NsYXNzbWFwLmgKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL2NsYXNzbWFwLmgKQEAgLTcsNyArNyw4IEBACiAKICNkZWZpbmUgQ09NTU9OX0ZJTEVfUEVSTVMgQ09NTU9OX0ZJTEVfU09DS19QRVJNUywgInVubGluayIsICJsaW5rIiwgXAogICAgICJyZW5hbWUiLCAiZXhlY3V0ZSIsICJxdW90YW9uIiwgIm1vdW50b24iLCAiYXVkaXRfYWNjZXNzIiwgXAotICAgICJvcGVuIiwgImV4ZWNtb2QiCisJIm9wZW4iLCAiZXhlY21vZCIsICJ3YXRjaCIsICJ3YXRjaF9tb3VudCIsICJ3YXRjaF9zYiIsIFwKKwkid2F0Y2hfd2l0aF9wZXJtIiwgIndhdGNoX3JlYWRzIgogCiAjZGVmaW5lIENPTU1PTl9TT0NLX1BFUk1TIENPTU1PTl9GSUxFX1NPQ0tfUEVSTVMsICJiaW5kIiwgImNvbm5lY3QiLCBcCiAgICAgImxpc3RlbiIsICJhY2NlcHQiLCAiZ2V0b3B0IiwgInNldG9wdCIsICJzaHV0ZG93biIsICJyZWN2ZnJvbSIsICBcCkBAIC02MCw3ICs2MSw3IEBAIHN0cnVjdCBzZWN1cml0eV9jbGFzc19tYXBwaW5nIHNlY2NsYXNzX21hcFtdID0gewogCXsgImZpbGVzeXN0ZW0iLAogCSAgeyAibW91bnQiLCAicmVtb3VudCIsICJ1bm1vdW50IiwgImdldGF0dHIiLAogCSAgICAicmVsYWJlbGZyb20iLCAicmVsYWJlbHRvIiwgImFzc29jaWF0ZSIsICJxdW90YW1vZCIsCi0JICAgICJxdW90YWdldCIsIE5VTEwgfSB9LAorCSAgICAicXVvdGFnZXQiLCAid2F0Y2giLCBOVUxMIH0gfSwKIAl7ICJmaWxlIiwKIAkgIHsgQ09NTU9OX0ZJTEVfUEVSTVMsCiAJICAgICJleGVjdXRlX25vX3RyYW5zIiwgImVudHJ5cG9pbnQiLCBOVUxMIH0gfSwKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9vYmpzZWMuaCBiL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9vYmpzZWMuaAppbmRleCA5MWM1Mzk1Li41ODZiN2FiIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvb2Jqc2VjLmgKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL29ianNlYy5oCkBAIC0zNywxNiArMzcsNiBAQCBzdHJ1Y3QgdGFza19zZWN1cml0eV9zdHJ1Y3QgewogCXUzMiBzb2NrY3JlYXRlX3NpZDsJLyogZnNjcmVhdGUgU0lEICovCiB9OwogCi0vKgotICogZ2V0IHRoZSBzdWJqZWN0aXZlIHNlY3VyaXR5IElEIG9mIHRoZSBjdXJyZW50IHRhc2sKLSAqLwotc3RhdGljIGlubGluZSB1MzIgY3VycmVudF9zaWQodm9pZCkKLXsKLQljb25zdCBzdHJ1Y3QgdGFza19zZWN1cml0eV9zdHJ1Y3QgKnRzZWMgPSBjdXJyZW50X3NlY3VyaXR5KCk7Ci0KLQlyZXR1cm4gdHNlYy0+c2lkOwotfQotCiBlbnVtIGxhYmVsX2luaXRpYWxpemVkIHsKIAlMQUJFTF9JTlZBTElELAkJLyogaW52YWxpZCBvciBub3QgaW5pdGlhbGl6ZWQgKi8KIAlMQUJFTF9JTklUSUFMSVpFRCwJLyogaW5pdGlhbGl6ZWQgKi8KQEAgLTE4NSw0ICsxNzUsMTQgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgaXBjX3NlY3VyaXR5X3N0cnVjdCAqc2VsaW51eF9pcGMoCiAJcmV0dXJuIGlwYy0+c2VjdXJpdHkgKyBzZWxpbnV4X2Jsb2Jfc2l6ZXMubGJzX2lwYzsKIH0KIAorLyoKKyAqIGdldCB0aGUgc3ViamVjdGl2ZSBzZWN1cml0eSBJRCBvZiB0aGUgY3VycmVudCB0YXNrCisgKi8KK3N0YXRpYyBpbmxpbmUgdTMyIGN1cnJlbnRfc2lkKHZvaWQpCit7CisJY29uc3Qgc3RydWN0IHRhc2tfc2VjdXJpdHlfc3RydWN0ICp0c2VjID0gc2VsaW51eF9jcmVkKGN1cnJlbnRfY3JlZCgpKTsKKworCXJldHVybiB0c2VjLT5zaWQ7Cit9CisKICNlbmRpZiAvKiBfU0VMSU5VWF9PQkpTRUNfSF8gKi8KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvbmV0aWYuYyBiL3NlY3VyaXR5L3NlbGludXgvbmV0aWYuYwppbmRleCA5Y2I4M2VlLi5lNDBmZWNkIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L25ldGlmLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9uZXRpZi5jCkBAIC0xMzIsOSArMTMyLDkgQEAgc3RhdGljIHZvaWQgc2VsX25ldGlmX2Rlc3Ryb3koc3RydWN0IHNlbF9uZXRpZiAqbmV0aWYpCiAgKi8KIHN0YXRpYyBpbnQgc2VsX25ldGlmX3NpZF9zbG93KHN0cnVjdCBuZXQgKm5zLCBpbnQgaWZpbmRleCwgdTMyICpzaWQpCiB7Ci0JaW50IHJldDsKKwlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3Qgc2VsX25ldGlmICpuZXRpZjsKLQlzdHJ1Y3Qgc2VsX25ldGlmICpuZXcgPSBOVUxMOworCXN0cnVjdCBzZWxfbmV0aWYgKm5ldzsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OwogCiAJLyogTk9URTogd2UgYWx3YXlzIHVzZSBpbml0J3MgbmV0d29yayBuYW1lc3BhY2Ugc2luY2Ugd2UgZG9uJ3QKQEAgLTE1MSwzMiArMTUxLDI3IEBAIHN0YXRpYyBpbnQgc2VsX25ldGlmX3NpZF9zbG93KHN0cnVjdCBuZXQgKm5zLCBpbnQgaWZpbmRleCwgdTMyICpzaWQpCiAJbmV0aWYgPSBzZWxfbmV0aWZfZmluZChucywgaWZpbmRleCk7CiAJaWYgKG5ldGlmICE9IE5VTEwpIHsKIAkJKnNpZCA9IG5ldGlmLT5uc2VjLnNpZDsKLQkJcmV0ID0gMDsKIAkJZ290byBvdXQ7CiAJfQorCisJcmV0ID0gc2VjdXJpdHlfbmV0aWZfc2lkKCZzZWxpbnV4X3N0YXRlLCBkZXYtPm5hbWUsIHNpZCk7CisJaWYgKHJldCAhPSAwKQorCQlnb3RvIG91dDsKIAluZXcgPSBremFsbG9jKHNpemVvZigqbmV3KSwgR0ZQX0FUT01JQyk7Ci0JaWYgKG5ldyA9PSBOVUxMKSB7Ci0JCXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0OworCWlmIChuZXcpIHsKKwkJbmV3LT5uc2VjLm5zID0gbnM7CisJCW5ldy0+bnNlYy5pZmluZGV4ID0gaWZpbmRleDsKKwkJbmV3LT5uc2VjLnNpZCA9ICpzaWQ7CisJCWlmIChzZWxfbmV0aWZfaW5zZXJ0KG5ldykpCisJCQlrZnJlZShuZXcpOwogCX0KLQlyZXQgPSBzZWN1cml0eV9uZXRpZl9zaWQoJnNlbGludXhfc3RhdGUsIGRldi0+bmFtZSwgJm5ldy0+bnNlYy5zaWQpOwotCWlmIChyZXQgIT0gMCkKLQkJZ290byBvdXQ7Ci0JbmV3LT5uc2VjLm5zID0gbnM7Ci0JbmV3LT5uc2VjLmlmaW5kZXggPSBpZmluZGV4OwotCXJldCA9IHNlbF9uZXRpZl9pbnNlcnQobmV3KTsKLQlpZiAocmV0ICE9IDApCi0JCWdvdG8gb3V0OwotCSpzaWQgPSBuZXctPm5zZWMuc2lkOwogCiBvdXQ6CiAJc3Bpbl91bmxvY2tfYmgoJnNlbF9uZXRpZl9sb2NrKTsKIAlkZXZfcHV0KGRldik7Ci0JaWYgKHVubGlrZWx5KHJldCkpIHsKKwlpZiAodW5saWtlbHkocmV0KSkKIAkJcHJfd2FybigiU0VMaW51eDogZmFpbHVyZSBpbiAlcygpLCB1bmFibGUgdG8gZGV0ZXJtaW5lIG5ldHdvcmsgaW50ZXJmYWNlIGxhYmVsICglZClcbiIsCiAJCQlfX2Z1bmNfXywgaWZpbmRleCk7Ci0JCWtmcmVlKG5ldyk7Ci0JfQogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvbmV0bm9kZS5jIGIvc2VjdXJpdHkvc2VsaW51eC9uZXRub2RlLmMKaW5kZXggY2FlMWZjYS4uOWFiODRlZiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9uZXRub2RlLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9uZXRub2RlLmMKQEAgLTE4OSw5ICsxODksOSBAQCBzdGF0aWMgdm9pZCBzZWxfbmV0bm9kZV9pbnNlcnQoc3RydWN0IHNlbF9uZXRub2RlICpub2RlKQogICovCiBzdGF0aWMgaW50IHNlbF9uZXRub2RlX3NpZF9zbG93KHZvaWQgKmFkZHIsIHUxNiBmYW1pbHksIHUzMiAqc2lkKQogewotCWludCByZXQgPSAtRU5PTUVNOworCWludCByZXQ7CiAJc3RydWN0IHNlbF9uZXRub2RlICpub2RlOwotCXN0cnVjdCBzZWxfbmV0bm9kZSAqbmV3ID0gTlVMTDsKKwlzdHJ1Y3Qgc2VsX25ldG5vZGUgKm5ldzsKIAogCXNwaW5fbG9ja19iaCgmc2VsX25ldG5vZGVfbG9jayk7CiAJbm9kZSA9IHNlbF9uZXRub2RlX2ZpbmQoYWRkciwgZmFtaWx5KTsKQEAgLTIwMCwzOCArMjAwLDM2IEBAIHN0YXRpYyBpbnQgc2VsX25ldG5vZGVfc2lkX3Nsb3codm9pZCAqYWRkciwgdTE2IGZhbWlseSwgdTMyICpzaWQpCiAJCXNwaW5fdW5sb2NrX2JoKCZzZWxfbmV0bm9kZV9sb2NrKTsKIAkJcmV0dXJuIDA7CiAJfQorCiAJbmV3ID0ga3phbGxvYyhzaXplb2YoKm5ldyksIEdGUF9BVE9NSUMpOwotCWlmIChuZXcgPT0gTlVMTCkKLQkJZ290byBvdXQ7CiAJc3dpdGNoIChmYW1pbHkpIHsKIAljYXNlIFBGX0lORVQ6CiAJCXJldCA9IHNlY3VyaXR5X25vZGVfc2lkKCZzZWxpbnV4X3N0YXRlLCBQRl9JTkVULAogCQkJCQlhZGRyLCBzaXplb2Yoc3RydWN0IGluX2FkZHIpLCBzaWQpOwotCQluZXctPm5zZWMuYWRkci5pcHY0ID0gKihfX2JlMzIgKilhZGRyOworCQlpZiAobmV3KQorCQkJbmV3LT5uc2VjLmFkZHIuaXB2NCA9ICooX19iZTMyICopYWRkcjsKIAkJYnJlYWs7CiAJY2FzZSBQRl9JTkVUNjoKIAkJcmV0ID0gc2VjdXJpdHlfbm9kZV9zaWQoJnNlbGludXhfc3RhdGUsIFBGX0lORVQ2LAogCQkJCQlhZGRyLCBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSwgc2lkKTsKLQkJbmV3LT5uc2VjLmFkZHIuaXB2NiA9ICooc3RydWN0IGluNl9hZGRyICopYWRkcjsKKwkJaWYgKG5ldykKKwkJCW5ldy0+bnNlYy5hZGRyLmlwdjYgPSAqKHN0cnVjdCBpbjZfYWRkciAqKWFkZHI7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCUJVRygpOwogCQlyZXQgPSAtRUlOVkFMOwogCX0KLQlpZiAocmV0ICE9IDApCi0JCWdvdG8gb3V0OworCWlmIChyZXQgPT0gMCAmJiBuZXcpIHsKKwkJbmV3LT5uc2VjLmZhbWlseSA9IGZhbWlseTsKKwkJbmV3LT5uc2VjLnNpZCA9ICpzaWQ7CisJCXNlbF9uZXRub2RlX2luc2VydChuZXcpOworCX0gZWxzZQorCQlrZnJlZShuZXcpOwogCi0JbmV3LT5uc2VjLmZhbWlseSA9IGZhbWlseTsKLQluZXctPm5zZWMuc2lkID0gKnNpZDsKLQlzZWxfbmV0bm9kZV9pbnNlcnQobmV3KTsKLQotb3V0OgogCXNwaW5fdW5sb2NrX2JoKCZzZWxfbmV0bm9kZV9sb2NrKTsKLQlpZiAodW5saWtlbHkocmV0KSkgeworCWlmICh1bmxpa2VseShyZXQpKQogCQlwcl93YXJuKCJTRUxpbnV4OiBmYWlsdXJlIGluICVzKCksIHVuYWJsZSB0byBkZXRlcm1pbmUgbmV0d29yayBub2RlIGxhYmVsXG4iLAogCQkJX19mdW5jX18pOwotCQlrZnJlZShuZXcpOwotCX0KIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L25ldHBvcnQuYyBiL3NlY3VyaXR5L3NlbGludXgvbmV0cG9ydC5jCmluZGV4IDM2NGI2ZDUuLjNmOGIyYzAgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvbmV0cG9ydC5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvbmV0cG9ydC5jCkBAIC0xMzcsOSArMTM3LDkgQEAgc3RhdGljIHZvaWQgc2VsX25ldHBvcnRfaW5zZXJ0KHN0cnVjdCBzZWxfbmV0cG9ydCAqcG9ydCkKICAqLwogc3RhdGljIGludCBzZWxfbmV0cG9ydF9zaWRfc2xvdyh1OCBwcm90b2NvbCwgdTE2IHBudW0sIHUzMiAqc2lkKQogewotCWludCByZXQgPSAtRU5PTUVNOworCWludCByZXQ7CiAJc3RydWN0IHNlbF9uZXRwb3J0ICpwb3J0OwotCXN0cnVjdCBzZWxfbmV0cG9ydCAqbmV3ID0gTlVMTDsKKwlzdHJ1Y3Qgc2VsX25ldHBvcnQgKm5ldzsKIAogCXNwaW5fbG9ja19iaCgmc2VsX25ldHBvcnRfbG9jayk7CiAJcG9ydCA9IHNlbF9uZXRwb3J0X2ZpbmQocHJvdG9jb2wsIHBudW0pOwpAQCAtMTQ4LDI1ICsxNDgsMjMgQEAgc3RhdGljIGludCBzZWxfbmV0cG9ydF9zaWRfc2xvdyh1OCBwcm90b2NvbCwgdTE2IHBudW0sIHUzMiAqc2lkKQogCQlzcGluX3VubG9ja19iaCgmc2VsX25ldHBvcnRfbG9jayk7CiAJCXJldHVybiAwOwogCX0KLQluZXcgPSBremFsbG9jKHNpemVvZigqbmV3KSwgR0ZQX0FUT01JQyk7Ci0JaWYgKG5ldyA9PSBOVUxMKQotCQlnb3RvIG91dDsKKwogCXJldCA9IHNlY3VyaXR5X3BvcnRfc2lkKCZzZWxpbnV4X3N0YXRlLCBwcm90b2NvbCwgcG51bSwgc2lkKTsKIAlpZiAocmV0ICE9IDApCiAJCWdvdG8gb3V0OwotCi0JbmV3LT5wc2VjLnBvcnQgPSBwbnVtOwotCW5ldy0+cHNlYy5wcm90b2NvbCA9IHByb3RvY29sOwotCW5ldy0+cHNlYy5zaWQgPSAqc2lkOwotCXNlbF9uZXRwb3J0X2luc2VydChuZXcpOworCW5ldyA9IGt6YWxsb2Moc2l6ZW9mKCpuZXcpLCBHRlBfQVRPTUlDKTsKKwlpZiAobmV3KSB7CisJCW5ldy0+cHNlYy5wb3J0ID0gcG51bTsKKwkJbmV3LT5wc2VjLnByb3RvY29sID0gcHJvdG9jb2w7CisJCW5ldy0+cHNlYy5zaWQgPSAqc2lkOworCQlzZWxfbmV0cG9ydF9pbnNlcnQobmV3KTsKKwl9CiAKIG91dDoKIAlzcGluX3VubG9ja19iaCgmc2VsX25ldHBvcnRfbG9jayk7Ci0JaWYgKHVubGlrZWx5KHJldCkpIHsKKwlpZiAodW5saWtlbHkocmV0KSkKIAkJcHJfd2FybigiU0VMaW51eDogZmFpbHVyZSBpbiAlcygpLCB1bmFibGUgdG8gZGV0ZXJtaW5lIG5ldHdvcmsgcG9ydCBsYWJlbFxuIiwKIAkJCV9fZnVuY19fKTsKLQkJa2ZyZWUobmV3KTsKLQl9CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9wb2xpY3lkYi5jIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9wb2xpY3lkYi5jCmluZGV4IGY4ZWZhYTkuLjEyNjBmNWZiIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL3BvbGljeWRiLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9wb2xpY3lkYi5jCkBAIC0xNzcsMzk3ICsxNzcsNiBAQCBzdGF0aWMgc3RydWN0IHBvbGljeWRiX2NvbXBhdF9pbmZvICpwb2xpY3lkYl9sb29rdXBfY29tcGF0KGludCB2ZXJzaW9uKQogfQogCiAvKgotICogSW5pdGlhbGl6ZSB0aGUgcm9sZSB0YWJsZS4KLSAqLwotc3RhdGljIGludCByb2xlc19pbml0KHN0cnVjdCBwb2xpY3lkYiAqcCkKLXsKLQljaGFyICprZXkgPSBOVUxMOwotCWludCByYzsKLQlzdHJ1Y3Qgcm9sZV9kYXR1bSAqcm9sZTsKLQotCXJvbGUgPSBremFsbG9jKHNpemVvZigqcm9sZSksIEdGUF9LRVJORUwpOwotCWlmICghcm9sZSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyYyA9IC1FSU5WQUw7Ci0Jcm9sZS0+dmFsdWUgPSArK3AtPnBfcm9sZXMubnByaW07Ci0JaWYgKHJvbGUtPnZhbHVlICE9IE9CSkVDVF9SX1ZBTCkKLQkJZ290byBvdXQ7Ci0KLQlyYyA9IC1FTk9NRU07Ci0Ja2V5ID0ga3N0cmR1cChPQkpFQ1RfUiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFrZXkpCi0JCWdvdG8gb3V0OwotCi0JcmMgPSBoYXNodGFiX2luc2VydChwLT5wX3JvbGVzLnRhYmxlLCBrZXksIHJvbGUpOwotCWlmIChyYykKLQkJZ290byBvdXQ7Ci0KLQlyZXR1cm4gMDsKLW91dDoKLQlrZnJlZShrZXkpOwotCWtmcmVlKHJvbGUpOwotCXJldHVybiByYzsKLX0KLQotc3RhdGljIHUzMiBmaWxlbmFtZXRyX2hhc2goc3RydWN0IGhhc2h0YWIgKmgsIGNvbnN0IHZvaWQgKmspCi17Ci0JY29uc3Qgc3RydWN0IGZpbGVuYW1lX3RyYW5zICpmdCA9IGs7Ci0JdW5zaWduZWQgbG9uZyBoYXNoOwotCXVuc2lnbmVkIGludCBieXRlX251bTsKLQl1bnNpZ25lZCBjaGFyIGZvY3VzOwotCi0JaGFzaCA9IGZ0LT5zdHlwZSBeIGZ0LT50dHlwZSBeIGZ0LT50Y2xhc3M7Ci0KLQlieXRlX251bSA9IDA7Ci0Jd2hpbGUgKChmb2N1cyA9IGZ0LT5uYW1lW2J5dGVfbnVtKytdKSkKLQkJaGFzaCA9IHBhcnRpYWxfbmFtZV9oYXNoKGZvY3VzLCBoYXNoKTsKLQlyZXR1cm4gaGFzaCAmIChoLT5zaXplIC0gMSk7Ci19Ci0KLXN0YXRpYyBpbnQgZmlsZW5hbWV0cl9jbXAoc3RydWN0IGhhc2h0YWIgKmgsIGNvbnN0IHZvaWQgKmsxLCBjb25zdCB2b2lkICprMikKLXsKLQljb25zdCBzdHJ1Y3QgZmlsZW5hbWVfdHJhbnMgKmZ0MSA9IGsxOwotCWNvbnN0IHN0cnVjdCBmaWxlbmFtZV90cmFucyAqZnQyID0gazI7Ci0JaW50IHY7Ci0KLQl2ID0gZnQxLT5zdHlwZSAtIGZ0Mi0+c3R5cGU7Ci0JaWYgKHYpCi0JCXJldHVybiB2OwotCi0JdiA9IGZ0MS0+dHR5cGUgLSBmdDItPnR0eXBlOwotCWlmICh2KQotCQlyZXR1cm4gdjsKLQotCXYgPSBmdDEtPnRjbGFzcyAtIGZ0Mi0+dGNsYXNzOwotCWlmICh2KQotCQlyZXR1cm4gdjsKLQotCXJldHVybiBzdHJjbXAoZnQxLT5uYW1lLCBmdDItPm5hbWUpOwotCi19Ci0KLXN0YXRpYyB1MzIgcmFuZ2V0cl9oYXNoKHN0cnVjdCBoYXNodGFiICpoLCBjb25zdCB2b2lkICprKQotewotCWNvbnN0IHN0cnVjdCByYW5nZV90cmFucyAqa2V5ID0gazsKLQlyZXR1cm4gKGtleS0+c291cmNlX3R5cGUgKyAoa2V5LT50YXJnZXRfdHlwZSA8PCAzKSArCi0JCShrZXktPnRhcmdldF9jbGFzcyA8PCA1KSkgJiAoaC0+c2l6ZSAtIDEpOwotfQotCi1zdGF0aWMgaW50IHJhbmdldHJfY21wKHN0cnVjdCBoYXNodGFiICpoLCBjb25zdCB2b2lkICprMSwgY29uc3Qgdm9pZCAqazIpCi17Ci0JY29uc3Qgc3RydWN0IHJhbmdlX3RyYW5zICprZXkxID0gazEsICprZXkyID0gazI7Ci0JaW50IHY7Ci0KLQl2ID0ga2V5MS0+c291cmNlX3R5cGUgLSBrZXkyLT5zb3VyY2VfdHlwZTsKLQlpZiAodikKLQkJcmV0dXJuIHY7Ci0KLQl2ID0ga2V5MS0+dGFyZ2V0X3R5cGUgLSBrZXkyLT50YXJnZXRfdHlwZTsKLQlpZiAodikKLQkJcmV0dXJuIHY7Ci0KLQl2ID0ga2V5MS0+dGFyZ2V0X2NsYXNzIC0ga2V5Mi0+dGFyZ2V0X2NsYXNzOwotCi0JcmV0dXJuIHY7Ci19Ci0KLXN0YXRpYyBpbnQgKCpkZXN0cm95X2ZbU1lNX05VTV0pICh2b2lkICprZXksIHZvaWQgKmRhdHVtLCB2b2lkICpkYXRhcCk7Ci0KLS8qCi0gKiBJbml0aWFsaXplIGEgcG9saWN5IGRhdGFiYXNlIHN0cnVjdHVyZS4KLSAqLwotc3RhdGljIGludCBwb2xpY3lkYl9pbml0KHN0cnVjdCBwb2xpY3lkYiAqcCkKLXsKLQlpbnQgaSwgcmM7Ci0KLQltZW1zZXQocCwgMCwgc2l6ZW9mKCpwKSk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgU1lNX05VTTsgaSsrKSB7Ci0JCXJjID0gc3ltdGFiX2luaXQoJnAtPnN5bXRhYltpXSwgc3ltdGFiX3NpemVzW2ldKTsKLQkJaWYgKHJjKQotCQkJZ290byBvdXQ7Ci0JfQotCi0JcmMgPSBhdnRhYl9pbml0KCZwLT50ZV9hdnRhYik7Ci0JaWYgKHJjKQotCQlnb3RvIG91dDsKLQotCXJjID0gcm9sZXNfaW5pdChwKTsKLQlpZiAocmMpCi0JCWdvdG8gb3V0OwotCi0JcmMgPSBjb25kX3BvbGljeWRiX2luaXQocCk7Ci0JaWYgKHJjKQotCQlnb3RvIG91dDsKLQotCXAtPmZpbGVuYW1lX3RyYW5zID0gaGFzaHRhYl9jcmVhdGUoZmlsZW5hbWV0cl9oYXNoLCBmaWxlbmFtZXRyX2NtcCwgKDEgPDwgMTApKTsKLQlpZiAoIXAtPmZpbGVuYW1lX3RyYW5zKSB7Ci0JCXJjID0gLUVOT01FTTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JcC0+cmFuZ2VfdHIgPSBoYXNodGFiX2NyZWF0ZShyYW5nZXRyX2hhc2gsIHJhbmdldHJfY21wLCAyNTYpOwotCWlmICghcC0+cmFuZ2VfdHIpIHsKLQkJcmMgPSAtRU5PTUVNOwotCQlnb3RvIG91dDsKLQl9Ci0KLQllYml0bWFwX2luaXQoJnAtPmZpbGVuYW1lX3RyYW5zX3R0eXBlcyk7Ci0JZWJpdG1hcF9pbml0KCZwLT5wb2xpY3ljYXBzKTsKLQllYml0bWFwX2luaXQoJnAtPnBlcm1pc3NpdmVfbWFwKTsKLQotCXJldHVybiAwOwotb3V0OgotCWhhc2h0YWJfZGVzdHJveShwLT5maWxlbmFtZV90cmFucyk7Ci0JaGFzaHRhYl9kZXN0cm95KHAtPnJhbmdlX3RyKTsKLQlmb3IgKGkgPSAwOyBpIDwgU1lNX05VTTsgaSsrKSB7Ci0JCWhhc2h0YWJfbWFwKHAtPnN5bXRhYltpXS50YWJsZSwgZGVzdHJveV9mW2ldLCBOVUxMKTsKLQkJaGFzaHRhYl9kZXN0cm95KHAtPnN5bXRhYltpXS50YWJsZSk7Ci0JfQotCXJldHVybiByYzsKLX0KLQotLyoKLSAqIFRoZSBmb2xsb3dpbmcgKl9pbmRleCBmdW5jdGlvbnMgYXJlIHVzZWQgdG8KLSAqIGRlZmluZSB0aGUgdmFsX3RvX25hbWUgYW5kIHZhbF90b19zdHJ1Y3QgYXJyYXlzCi0gKiBpbiBhIHBvbGljeSBkYXRhYmFzZSBzdHJ1Y3R1cmUuICBUaGUgdmFsX3RvX25hbWUKLSAqIGFycmF5cyBhcmUgdXNlZCB3aGVuIGNvbnZlcnRpbmcgc2VjdXJpdHkgY29udGV4dAotICogc3RydWN0dXJlcyBpbnRvIHN0cmluZyByZXByZXNlbnRhdGlvbnMuICBUaGUKLSAqIHZhbF90b19zdHJ1Y3QgYXJyYXlzIGFyZSB1c2VkIHdoZW4gdGhlIGF0dHJpYnV0ZXMKLSAqIG9mIGEgY2xhc3MsIHJvbGUsIG9yIHVzZXIgYXJlIG5lZWRlZC4KLSAqLwotCi1zdGF0aWMgaW50IGNvbW1vbl9pbmRleCh2b2lkICprZXksIHZvaWQgKmRhdHVtLCB2b2lkICpkYXRhcCkKLXsKLQlzdHJ1Y3QgcG9saWN5ZGIgKnA7Ci0Jc3RydWN0IGNvbW1vbl9kYXR1bSAqY29tZGF0dW07Ci0KLQljb21kYXR1bSA9IGRhdHVtOwotCXAgPSBkYXRhcDsKLQlpZiAoIWNvbWRhdHVtLT52YWx1ZSB8fCBjb21kYXR1bS0+dmFsdWUgPiBwLT5wX2NvbW1vbnMubnByaW0pCi0JCXJldHVybiAtRUlOVkFMOwotCi0JcC0+c3ltX3ZhbF90b19uYW1lW1NZTV9DT01NT05TXVtjb21kYXR1bS0+dmFsdWUgLSAxXSA9IGtleTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGNsYXNzX2luZGV4KHZvaWQgKmtleSwgdm9pZCAqZGF0dW0sIHZvaWQgKmRhdGFwKQotewotCXN0cnVjdCBwb2xpY3lkYiAqcDsKLQlzdHJ1Y3QgY2xhc3NfZGF0dW0gKmNsYWRhdHVtOwotCi0JY2xhZGF0dW0gPSBkYXR1bTsKLQlwID0gZGF0YXA7Ci0JaWYgKCFjbGFkYXR1bS0+dmFsdWUgfHwgY2xhZGF0dW0tPnZhbHVlID4gcC0+cF9jbGFzc2VzLm5wcmltKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXAtPnN5bV92YWxfdG9fbmFtZVtTWU1fQ0xBU1NFU11bY2xhZGF0dW0tPnZhbHVlIC0gMV0gPSBrZXk7Ci0JcC0+Y2xhc3NfdmFsX3RvX3N0cnVjdFtjbGFkYXR1bS0+dmFsdWUgLSAxXSA9IGNsYWRhdHVtOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJvbGVfaW5kZXgodm9pZCAqa2V5LCB2b2lkICpkYXR1bSwgdm9pZCAqZGF0YXApCi17Ci0Jc3RydWN0IHBvbGljeWRiICpwOwotCXN0cnVjdCByb2xlX2RhdHVtICpyb2xlOwotCi0Jcm9sZSA9IGRhdHVtOwotCXAgPSBkYXRhcDsKLQlpZiAoIXJvbGUtPnZhbHVlCi0JICAgIHx8IHJvbGUtPnZhbHVlID4gcC0+cF9yb2xlcy5ucHJpbQotCSAgICB8fCByb2xlLT5ib3VuZHMgPiBwLT5wX3JvbGVzLm5wcmltKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXAtPnN5bV92YWxfdG9fbmFtZVtTWU1fUk9MRVNdW3JvbGUtPnZhbHVlIC0gMV0gPSBrZXk7Ci0JcC0+cm9sZV92YWxfdG9fc3RydWN0W3JvbGUtPnZhbHVlIC0gMV0gPSByb2xlOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHR5cGVfaW5kZXgodm9pZCAqa2V5LCB2b2lkICpkYXR1bSwgdm9pZCAqZGF0YXApCi17Ci0Jc3RydWN0IHBvbGljeWRiICpwOwotCXN0cnVjdCB0eXBlX2RhdHVtICp0eXBkYXR1bTsKLQotCXR5cGRhdHVtID0gZGF0dW07Ci0JcCA9IGRhdGFwOwotCi0JaWYgKHR5cGRhdHVtLT5wcmltYXJ5KSB7Ci0JCWlmICghdHlwZGF0dW0tPnZhbHVlCi0JCSAgICB8fCB0eXBkYXR1bS0+dmFsdWUgPiBwLT5wX3R5cGVzLm5wcmltCi0JCSAgICB8fCB0eXBkYXR1bS0+Ym91bmRzID4gcC0+cF90eXBlcy5ucHJpbSkKLQkJCXJldHVybiAtRUlOVkFMOwotCQlwLT5zeW1fdmFsX3RvX25hbWVbU1lNX1RZUEVTXVt0eXBkYXR1bS0+dmFsdWUgLSAxXSA9IGtleTsKLQkJcC0+dHlwZV92YWxfdG9fc3RydWN0X2FycmF5W3R5cGRhdHVtLT52YWx1ZSAtIDFdID0gdHlwZGF0dW07Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgdXNlcl9pbmRleCh2b2lkICprZXksIHZvaWQgKmRhdHVtLCB2b2lkICpkYXRhcCkKLXsKLQlzdHJ1Y3QgcG9saWN5ZGIgKnA7Ci0Jc3RydWN0IHVzZXJfZGF0dW0gKnVzcmRhdHVtOwotCi0JdXNyZGF0dW0gPSBkYXR1bTsKLQlwID0gZGF0YXA7Ci0JaWYgKCF1c3JkYXR1bS0+dmFsdWUKLQkgICAgfHwgdXNyZGF0dW0tPnZhbHVlID4gcC0+cF91c2Vycy5ucHJpbQotCSAgICB8fCB1c3JkYXR1bS0+Ym91bmRzID4gcC0+cF91c2Vycy5ucHJpbSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlwLT5zeW1fdmFsX3RvX25hbWVbU1lNX1VTRVJTXVt1c3JkYXR1bS0+dmFsdWUgLSAxXSA9IGtleTsKLQlwLT51c2VyX3ZhbF90b19zdHJ1Y3RbdXNyZGF0dW0tPnZhbHVlIC0gMV0gPSB1c3JkYXR1bTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzZW5zX2luZGV4KHZvaWQgKmtleSwgdm9pZCAqZGF0dW0sIHZvaWQgKmRhdGFwKQotewotCXN0cnVjdCBwb2xpY3lkYiAqcDsKLQlzdHJ1Y3QgbGV2ZWxfZGF0dW0gKmxldmRhdHVtOwotCi0JbGV2ZGF0dW0gPSBkYXR1bTsKLQlwID0gZGF0YXA7Ci0KLQlpZiAoIWxldmRhdHVtLT5pc2FsaWFzKSB7Ci0JCWlmICghbGV2ZGF0dW0tPmxldmVsLT5zZW5zIHx8Ci0JCSAgICBsZXZkYXR1bS0+bGV2ZWwtPnNlbnMgPiBwLT5wX2xldmVscy5ucHJpbSkKLQkJCXJldHVybiAtRUlOVkFMOwotCi0JCXAtPnN5bV92YWxfdG9fbmFtZVtTWU1fTEVWRUxTXVtsZXZkYXR1bS0+bGV2ZWwtPnNlbnMgLSAxXSA9IGtleTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBjYXRfaW5kZXgodm9pZCAqa2V5LCB2b2lkICpkYXR1bSwgdm9pZCAqZGF0YXApCi17Ci0Jc3RydWN0IHBvbGljeWRiICpwOwotCXN0cnVjdCBjYXRfZGF0dW0gKmNhdGRhdHVtOwotCi0JY2F0ZGF0dW0gPSBkYXR1bTsKLQlwID0gZGF0YXA7Ci0KLQlpZiAoIWNhdGRhdHVtLT5pc2FsaWFzKSB7Ci0JCWlmICghY2F0ZGF0dW0tPnZhbHVlIHx8IGNhdGRhdHVtLT52YWx1ZSA+IHAtPnBfY2F0cy5ucHJpbSkKLQkJCXJldHVybiAtRUlOVkFMOwotCi0JCXAtPnN5bV92YWxfdG9fbmFtZVtTWU1fQ0FUU11bY2F0ZGF0dW0tPnZhbHVlIC0gMV0gPSBrZXk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgKCppbmRleF9mW1NZTV9OVU1dKSAodm9pZCAqa2V5LCB2b2lkICpkYXR1bSwgdm9pZCAqZGF0YXApID0KLXsKLQljb21tb25faW5kZXgsCi0JY2xhc3NfaW5kZXgsCi0Jcm9sZV9pbmRleCwKLQl0eXBlX2luZGV4LAotCXVzZXJfaW5kZXgsCi0JY29uZF9pbmRleF9ib29sLAotCXNlbnNfaW5kZXgsCi0JY2F0X2luZGV4LAotfTsKLQotI2lmZGVmIERFQlVHX0hBU0hFUwotc3RhdGljIHZvaWQgaGFzaF9ldmFsKHN0cnVjdCBoYXNodGFiICpoLCBjb25zdCBjaGFyICpoYXNoX25hbWUpCi17Ci0Jc3RydWN0IGhhc2h0YWJfaW5mbyBpbmZvOwotCi0JaGFzaHRhYl9zdGF0KGgsICZpbmZvKTsKLQlwcl9kZWJ1ZygiU0VMaW51eDogJXM6ICAlZCBlbnRyaWVzIGFuZCAlZC8lZCBidWNrZXRzIHVzZWQsICIKLQkgICAgICAgImxvbmdlc3QgY2hhaW4gbGVuZ3RoICVkXG4iLCBoYXNoX25hbWUsIGgtPm5lbCwKLQkgICAgICAgaW5mby5zbG90c191c2VkLCBoLT5zaXplLCBpbmZvLm1heF9jaGFpbl9sZW4pOwotfQotCi1zdGF0aWMgdm9pZCBzeW10YWJfaGFzaF9ldmFsKHN0cnVjdCBzeW10YWIgKnMpCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgU1lNX05VTTsgaSsrKQotCQloYXNoX2V2YWwoc1tpXS50YWJsZSwgc3ltdGFiX25hbWVbaV0pOwotfQotCi0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIGhhc2hfZXZhbChzdHJ1Y3QgaGFzaHRhYiAqaCwgY2hhciAqaGFzaF9uYW1lKQotewotfQotI2VuZGlmCi0KLS8qCi0gKiBEZWZpbmUgdGhlIG90aGVyIHZhbF90b19uYW1lIGFuZCB2YWxfdG9fc3RydWN0IGFycmF5cwotICogaW4gYSBwb2xpY3kgZGF0YWJhc2Ugc3RydWN0dXJlLgotICoKLSAqIENhbGxlciBtdXN0IGNsZWFuIHVwIG9uIGZhaWx1cmUuCi0gKi8KLXN0YXRpYyBpbnQgcG9saWN5ZGJfaW5kZXgoc3RydWN0IHBvbGljeWRiICpwKQotewotCWludCBpLCByYzsKLQotCWlmIChwLT5tbHNfZW5hYmxlZCkKLQkJcHJfZGVidWcoIlNFTGludXg6ICAlZCB1c2VycywgJWQgcm9sZXMsICVkIHR5cGVzLCAlZCBib29scywgJWQgc2VucywgJWQgY2F0c1xuIiwKLQkJCSBwLT5wX3VzZXJzLm5wcmltLCBwLT5wX3JvbGVzLm5wcmltLCBwLT5wX3R5cGVzLm5wcmltLAotCQkJIHAtPnBfYm9vbHMubnByaW0sIHAtPnBfbGV2ZWxzLm5wcmltLCBwLT5wX2NhdHMubnByaW0pOwotCWVsc2UKLQkJcHJfZGVidWcoIlNFTGludXg6ICAlZCB1c2VycywgJWQgcm9sZXMsICVkIHR5cGVzLCAlZCBib29sc1xuIiwKLQkJCSBwLT5wX3VzZXJzLm5wcmltLCBwLT5wX3JvbGVzLm5wcmltLCBwLT5wX3R5cGVzLm5wcmltLAotCQkJIHAtPnBfYm9vbHMubnByaW0pOwotCi0JcHJfZGVidWcoIlNFTGludXg6ICAlZCBjbGFzc2VzLCAlZCBydWxlc1xuIiwKLQkJIHAtPnBfY2xhc3Nlcy5ucHJpbSwgcC0+dGVfYXZ0YWIubmVsKTsKLQotI2lmZGVmIERFQlVHX0hBU0hFUwotCWF2dGFiX2hhc2hfZXZhbCgmcC0+dGVfYXZ0YWIsICJydWxlcyIpOwotCXN5bXRhYl9oYXNoX2V2YWwocC0+c3ltdGFiKTsKLSNlbmRpZgotCi0JcC0+Y2xhc3NfdmFsX3RvX3N0cnVjdCA9IGtjYWxsb2MocC0+cF9jbGFzc2VzLm5wcmltLAotCQkJCQkgc2l6ZW9mKCpwLT5jbGFzc192YWxfdG9fc3RydWN0KSwKLQkJCQkJIEdGUF9LRVJORUwpOwotCWlmICghcC0+Y2xhc3NfdmFsX3RvX3N0cnVjdCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlwLT5yb2xlX3ZhbF90b19zdHJ1Y3QgPSBrY2FsbG9jKHAtPnBfcm9sZXMubnByaW0sCi0JCQkJCXNpemVvZigqcC0+cm9sZV92YWxfdG9fc3RydWN0KSwKLQkJCQkJR0ZQX0tFUk5FTCk7Ci0JaWYgKCFwLT5yb2xlX3ZhbF90b19zdHJ1Y3QpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JcC0+dXNlcl92YWxfdG9fc3RydWN0ID0ga2NhbGxvYyhwLT5wX3VzZXJzLm5wcmltLAotCQkJCQlzaXplb2YoKnAtPnVzZXJfdmFsX3RvX3N0cnVjdCksCi0JCQkJCUdGUF9LRVJORUwpOwotCWlmICghcC0+dXNlcl92YWxfdG9fc3RydWN0KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXAtPnR5cGVfdmFsX3RvX3N0cnVjdF9hcnJheSA9IGt2Y2FsbG9jKHAtPnBfdHlwZXMubnByaW0sCi0JCQkJCSAgICAgICBzaXplb2YoKnAtPnR5cGVfdmFsX3RvX3N0cnVjdF9hcnJheSksCi0JCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKLQlpZiAoIXAtPnR5cGVfdmFsX3RvX3N0cnVjdF9hcnJheSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyYyA9IGNvbmRfaW5pdF9ib29sX2luZGV4ZXMocCk7Ci0JaWYgKHJjKQotCQlnb3RvIG91dDsKLQotCWZvciAoaSA9IDA7IGkgPCBTWU1fTlVNOyBpKyspIHsKLQkJcC0+c3ltX3ZhbF90b19uYW1lW2ldID0ga3ZjYWxsb2MocC0+c3ltdGFiW2ldLm5wcmltLAotCQkJCQkJIHNpemVvZihjaGFyICopLAotCQkJCQkJIEdGUF9LRVJORUwpOwotCQlpZiAoIXAtPnN5bV92YWxfdG9fbmFtZVtpXSkKLQkJCXJldHVybiAtRU5PTUVNOwotCi0JCXJjID0gaGFzaHRhYl9tYXAocC0+c3ltdGFiW2ldLnRhYmxlLCBpbmRleF9mW2ldLCBwKTsKLQkJaWYgKHJjKQotCQkJZ290byBvdXQ7Ci0JfQotCXJjID0gMDsKLW91dDoKLQlyZXR1cm4gcmM7Ci19Ci0KLS8qCiAgKiBUaGUgZm9sbG93aW5nICpfZGVzdHJveSBmdW5jdGlvbnMgYXJlIHVzZWQgdG8KICAqIGZyZWUgYW55IG1lbW9yeSBhbGxvY2F0ZWQgZm9yIGVhY2gga2luZCBvZgogICogc3ltYm9sIGRhdGEgaW4gdGhlIHBvbGljeSBkYXRhYmFzZS4KQEAgLTcyMyw2ICszMzIsNyBAQCBzdGF0aWMgaW50ICgqZGVzdHJveV9mW1NZTV9OVU1dKSAodm9pZCAqa2V5LCB2b2lkICpkYXR1bSwgdm9pZCAqZGF0YXApID0KIHN0YXRpYyBpbnQgZmlsZW5hbWV0cl9kZXN0cm95KHZvaWQgKmtleSwgdm9pZCAqZGF0dW0sIHZvaWQgKnApCiB7CiAJc3RydWN0IGZpbGVuYW1lX3RyYW5zICpmdCA9IGtleTsKKwogCWtmcmVlKGZ0LT5uYW1lKTsKIAlrZnJlZShrZXkpOwogCWtmcmVlKGRhdHVtKTsKQEAgLTczMyw2ICszNDMsNyBAQCBzdGF0aWMgaW50IGZpbGVuYW1ldHJfZGVzdHJveSh2b2lkICprZXksIHZvaWQgKmRhdHVtLCB2b2lkICpwKQogc3RhdGljIGludCByYW5nZV90cl9kZXN0cm95KHZvaWQgKmtleSwgdm9pZCAqZGF0dW0sIHZvaWQgKnApCiB7CiAJc3RydWN0IG1sc19yYW5nZSAqcnQgPSBkYXR1bTsKKwogCWtmcmVlKGtleSk7CiAJZWJpdG1hcF9kZXN0cm95KCZydC0+bGV2ZWxbMF0uY2F0KTsKIAllYml0bWFwX2Rlc3Ryb3koJnJ0LT5sZXZlbFsxXS5jYXQpOwpAQCAtNzU1LDYgKzM2NiwzOTcgQEAgc3RhdGljIHZvaWQgb2NvbnRleHRfZGVzdHJveShzdHJ1Y3Qgb2NvbnRleHQgKmMsIGludCBpKQogfQogCiAvKgorICogSW5pdGlhbGl6ZSB0aGUgcm9sZSB0YWJsZS4KKyAqLworc3RhdGljIGludCByb2xlc19pbml0KHN0cnVjdCBwb2xpY3lkYiAqcCkKK3sKKwljaGFyICprZXkgPSBOVUxMOworCWludCByYzsKKwlzdHJ1Y3Qgcm9sZV9kYXR1bSAqcm9sZTsKKworCXJvbGUgPSBremFsbG9jKHNpemVvZigqcm9sZSksIEdGUF9LRVJORUwpOworCWlmICghcm9sZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyYyA9IC1FSU5WQUw7CisJcm9sZS0+dmFsdWUgPSArK3AtPnBfcm9sZXMubnByaW07CisJaWYgKHJvbGUtPnZhbHVlICE9IE9CSkVDVF9SX1ZBTCkKKwkJZ290byBvdXQ7CisKKwlyYyA9IC1FTk9NRU07CisJa2V5ID0ga3N0cmR1cChPQkpFQ1RfUiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFrZXkpCisJCWdvdG8gb3V0OworCisJcmMgPSBoYXNodGFiX2luc2VydChwLT5wX3JvbGVzLnRhYmxlLCBrZXksIHJvbGUpOworCWlmIChyYykKKwkJZ290byBvdXQ7CisKKwlyZXR1cm4gMDsKK291dDoKKwlrZnJlZShrZXkpOworCWtmcmVlKHJvbGUpOworCXJldHVybiByYzsKK30KKworc3RhdGljIHUzMiBmaWxlbmFtZXRyX2hhc2goc3RydWN0IGhhc2h0YWIgKmgsIGNvbnN0IHZvaWQgKmspCit7CisJY29uc3Qgc3RydWN0IGZpbGVuYW1lX3RyYW5zICpmdCA9IGs7CisJdW5zaWduZWQgbG9uZyBoYXNoOworCXVuc2lnbmVkIGludCBieXRlX251bTsKKwl1bnNpZ25lZCBjaGFyIGZvY3VzOworCisJaGFzaCA9IGZ0LT5zdHlwZSBeIGZ0LT50dHlwZSBeIGZ0LT50Y2xhc3M7CisKKwlieXRlX251bSA9IDA7CisJd2hpbGUgKChmb2N1cyA9IGZ0LT5uYW1lW2J5dGVfbnVtKytdKSkKKwkJaGFzaCA9IHBhcnRpYWxfbmFtZV9oYXNoKGZvY3VzLCBoYXNoKTsKKwlyZXR1cm4gaGFzaCAmIChoLT5zaXplIC0gMSk7Cit9CisKK3N0YXRpYyBpbnQgZmlsZW5hbWV0cl9jbXAoc3RydWN0IGhhc2h0YWIgKmgsIGNvbnN0IHZvaWQgKmsxLCBjb25zdCB2b2lkICprMikKK3sKKwljb25zdCBzdHJ1Y3QgZmlsZW5hbWVfdHJhbnMgKmZ0MSA9IGsxOworCWNvbnN0IHN0cnVjdCBmaWxlbmFtZV90cmFucyAqZnQyID0gazI7CisJaW50IHY7CisKKwl2ID0gZnQxLT5zdHlwZSAtIGZ0Mi0+c3R5cGU7CisJaWYgKHYpCisJCXJldHVybiB2OworCisJdiA9IGZ0MS0+dHR5cGUgLSBmdDItPnR0eXBlOworCWlmICh2KQorCQlyZXR1cm4gdjsKKworCXYgPSBmdDEtPnRjbGFzcyAtIGZ0Mi0+dGNsYXNzOworCWlmICh2KQorCQlyZXR1cm4gdjsKKworCXJldHVybiBzdHJjbXAoZnQxLT5uYW1lLCBmdDItPm5hbWUpOworCit9CisKK3N0YXRpYyB1MzIgcmFuZ2V0cl9oYXNoKHN0cnVjdCBoYXNodGFiICpoLCBjb25zdCB2b2lkICprKQoreworCWNvbnN0IHN0cnVjdCByYW5nZV90cmFucyAqa2V5ID0gazsKKworCXJldHVybiAoa2V5LT5zb3VyY2VfdHlwZSArIChrZXktPnRhcmdldF90eXBlIDw8IDMpICsKKwkJKGtleS0+dGFyZ2V0X2NsYXNzIDw8IDUpKSAmIChoLT5zaXplIC0gMSk7Cit9CisKK3N0YXRpYyBpbnQgcmFuZ2V0cl9jbXAoc3RydWN0IGhhc2h0YWIgKmgsIGNvbnN0IHZvaWQgKmsxLCBjb25zdCB2b2lkICprMikKK3sKKwljb25zdCBzdHJ1Y3QgcmFuZ2VfdHJhbnMgKmtleTEgPSBrMSwgKmtleTIgPSBrMjsKKwlpbnQgdjsKKworCXYgPSBrZXkxLT5zb3VyY2VfdHlwZSAtIGtleTItPnNvdXJjZV90eXBlOworCWlmICh2KQorCQlyZXR1cm4gdjsKKworCXYgPSBrZXkxLT50YXJnZXRfdHlwZSAtIGtleTItPnRhcmdldF90eXBlOworCWlmICh2KQorCQlyZXR1cm4gdjsKKworCXYgPSBrZXkxLT50YXJnZXRfY2xhc3MgLSBrZXkyLT50YXJnZXRfY2xhc3M7CisKKwlyZXR1cm4gdjsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYSBwb2xpY3kgZGF0YWJhc2Ugc3RydWN0dXJlLgorICovCitzdGF0aWMgaW50IHBvbGljeWRiX2luaXQoc3RydWN0IHBvbGljeWRiICpwKQoreworCWludCBpLCByYzsKKworCW1lbXNldChwLCAwLCBzaXplb2YoKnApKTsKKworCWZvciAoaSA9IDA7IGkgPCBTWU1fTlVNOyBpKyspIHsKKwkJcmMgPSBzeW10YWJfaW5pdCgmcC0+c3ltdGFiW2ldLCBzeW10YWJfc2l6ZXNbaV0pOworCQlpZiAocmMpCisJCQlnb3RvIG91dDsKKwl9CisKKwlyYyA9IGF2dGFiX2luaXQoJnAtPnRlX2F2dGFiKTsKKwlpZiAocmMpCisJCWdvdG8gb3V0OworCisJcmMgPSByb2xlc19pbml0KHApOworCWlmIChyYykKKwkJZ290byBvdXQ7CisKKwlyYyA9IGNvbmRfcG9saWN5ZGJfaW5pdChwKTsKKwlpZiAocmMpCisJCWdvdG8gb3V0OworCisJcC0+ZmlsZW5hbWVfdHJhbnMgPSBoYXNodGFiX2NyZWF0ZShmaWxlbmFtZXRyX2hhc2gsIGZpbGVuYW1ldHJfY21wLAorCQkJCQkgICAoMSA8PCAxMCkpOworCWlmICghcC0+ZmlsZW5hbWVfdHJhbnMpIHsKKwkJcmMgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKKwl9CisKKwlwLT5yYW5nZV90ciA9IGhhc2h0YWJfY3JlYXRlKHJhbmdldHJfaGFzaCwgcmFuZ2V0cl9jbXAsIDI1Nik7CisJaWYgKCFwLT5yYW5nZV90cikgeworCQlyYyA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKworCWViaXRtYXBfaW5pdCgmcC0+ZmlsZW5hbWVfdHJhbnNfdHR5cGVzKTsKKwllYml0bWFwX2luaXQoJnAtPnBvbGljeWNhcHMpOworCWViaXRtYXBfaW5pdCgmcC0+cGVybWlzc2l2ZV9tYXApOworCisJcmV0dXJuIDA7CitvdXQ6CisJaGFzaHRhYl9kZXN0cm95KHAtPmZpbGVuYW1lX3RyYW5zKTsKKwloYXNodGFiX2Rlc3Ryb3kocC0+cmFuZ2VfdHIpOworCWZvciAoaSA9IDA7IGkgPCBTWU1fTlVNOyBpKyspIHsKKwkJaGFzaHRhYl9tYXAocC0+c3ltdGFiW2ldLnRhYmxlLCBkZXN0cm95X2ZbaV0sIE5VTEwpOworCQloYXNodGFiX2Rlc3Ryb3kocC0+c3ltdGFiW2ldLnRhYmxlKTsKKwl9CisJcmV0dXJuIHJjOworfQorCisvKgorICogVGhlIGZvbGxvd2luZyAqX2luZGV4IGZ1bmN0aW9ucyBhcmUgdXNlZCB0bworICogZGVmaW5lIHRoZSB2YWxfdG9fbmFtZSBhbmQgdmFsX3RvX3N0cnVjdCBhcnJheXMKKyAqIGluIGEgcG9saWN5IGRhdGFiYXNlIHN0cnVjdHVyZS4gIFRoZSB2YWxfdG9fbmFtZQorICogYXJyYXlzIGFyZSB1c2VkIHdoZW4gY29udmVydGluZyBzZWN1cml0eSBjb250ZXh0CisgKiBzdHJ1Y3R1cmVzIGludG8gc3RyaW5nIHJlcHJlc2VudGF0aW9ucy4gIFRoZQorICogdmFsX3RvX3N0cnVjdCBhcnJheXMgYXJlIHVzZWQgd2hlbiB0aGUgYXR0cmlidXRlcworICogb2YgYSBjbGFzcywgcm9sZSwgb3IgdXNlciBhcmUgbmVlZGVkLgorICovCisKK3N0YXRpYyBpbnQgY29tbW9uX2luZGV4KHZvaWQgKmtleSwgdm9pZCAqZGF0dW0sIHZvaWQgKmRhdGFwKQoreworCXN0cnVjdCBwb2xpY3lkYiAqcDsKKwlzdHJ1Y3QgY29tbW9uX2RhdHVtICpjb21kYXR1bTsKKworCWNvbWRhdHVtID0gZGF0dW07CisJcCA9IGRhdGFwOworCWlmICghY29tZGF0dW0tPnZhbHVlIHx8IGNvbWRhdHVtLT52YWx1ZSA+IHAtPnBfY29tbW9ucy5ucHJpbSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwLT5zeW1fdmFsX3RvX25hbWVbU1lNX0NPTU1PTlNdW2NvbWRhdHVtLT52YWx1ZSAtIDFdID0ga2V5OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2xhc3NfaW5kZXgodm9pZCAqa2V5LCB2b2lkICpkYXR1bSwgdm9pZCAqZGF0YXApCit7CisJc3RydWN0IHBvbGljeWRiICpwOworCXN0cnVjdCBjbGFzc19kYXR1bSAqY2xhZGF0dW07CisKKwljbGFkYXR1bSA9IGRhdHVtOworCXAgPSBkYXRhcDsKKwlpZiAoIWNsYWRhdHVtLT52YWx1ZSB8fCBjbGFkYXR1bS0+dmFsdWUgPiBwLT5wX2NsYXNzZXMubnByaW0pCisJCXJldHVybiAtRUlOVkFMOworCisJcC0+c3ltX3ZhbF90b19uYW1lW1NZTV9DTEFTU0VTXVtjbGFkYXR1bS0+dmFsdWUgLSAxXSA9IGtleTsKKwlwLT5jbGFzc192YWxfdG9fc3RydWN0W2NsYWRhdHVtLT52YWx1ZSAtIDFdID0gY2xhZGF0dW07CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcm9sZV9pbmRleCh2b2lkICprZXksIHZvaWQgKmRhdHVtLCB2b2lkICpkYXRhcCkKK3sKKwlzdHJ1Y3QgcG9saWN5ZGIgKnA7CisJc3RydWN0IHJvbGVfZGF0dW0gKnJvbGU7CisKKwlyb2xlID0gZGF0dW07CisJcCA9IGRhdGFwOworCWlmICghcm9sZS0+dmFsdWUKKwkgICAgfHwgcm9sZS0+dmFsdWUgPiBwLT5wX3JvbGVzLm5wcmltCisJICAgIHx8IHJvbGUtPmJvdW5kcyA+IHAtPnBfcm9sZXMubnByaW0pCisJCXJldHVybiAtRUlOVkFMOworCisJcC0+c3ltX3ZhbF90b19uYW1lW1NZTV9ST0xFU11bcm9sZS0+dmFsdWUgLSAxXSA9IGtleTsKKwlwLT5yb2xlX3ZhbF90b19zdHJ1Y3Rbcm9sZS0+dmFsdWUgLSAxXSA9IHJvbGU7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdHlwZV9pbmRleCh2b2lkICprZXksIHZvaWQgKmRhdHVtLCB2b2lkICpkYXRhcCkKK3sKKwlzdHJ1Y3QgcG9saWN5ZGIgKnA7CisJc3RydWN0IHR5cGVfZGF0dW0gKnR5cGRhdHVtOworCisJdHlwZGF0dW0gPSBkYXR1bTsKKwlwID0gZGF0YXA7CisKKwlpZiAodHlwZGF0dW0tPnByaW1hcnkpIHsKKwkJaWYgKCF0eXBkYXR1bS0+dmFsdWUKKwkJICAgIHx8IHR5cGRhdHVtLT52YWx1ZSA+IHAtPnBfdHlwZXMubnByaW0KKwkJICAgIHx8IHR5cGRhdHVtLT5ib3VuZHMgPiBwLT5wX3R5cGVzLm5wcmltKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJCXAtPnN5bV92YWxfdG9fbmFtZVtTWU1fVFlQRVNdW3R5cGRhdHVtLT52YWx1ZSAtIDFdID0ga2V5OworCQlwLT50eXBlX3ZhbF90b19zdHJ1Y3RbdHlwZGF0dW0tPnZhbHVlIC0gMV0gPSB0eXBkYXR1bTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1c2VyX2luZGV4KHZvaWQgKmtleSwgdm9pZCAqZGF0dW0sIHZvaWQgKmRhdGFwKQoreworCXN0cnVjdCBwb2xpY3lkYiAqcDsKKwlzdHJ1Y3QgdXNlcl9kYXR1bSAqdXNyZGF0dW07CisKKwl1c3JkYXR1bSA9IGRhdHVtOworCXAgPSBkYXRhcDsKKwlpZiAoIXVzcmRhdHVtLT52YWx1ZQorCSAgICB8fCB1c3JkYXR1bS0+dmFsdWUgPiBwLT5wX3VzZXJzLm5wcmltCisJICAgIHx8IHVzcmRhdHVtLT5ib3VuZHMgPiBwLT5wX3VzZXJzLm5wcmltKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXAtPnN5bV92YWxfdG9fbmFtZVtTWU1fVVNFUlNdW3VzcmRhdHVtLT52YWx1ZSAtIDFdID0ga2V5OworCXAtPnVzZXJfdmFsX3RvX3N0cnVjdFt1c3JkYXR1bS0+dmFsdWUgLSAxXSA9IHVzcmRhdHVtOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNlbnNfaW5kZXgodm9pZCAqa2V5LCB2b2lkICpkYXR1bSwgdm9pZCAqZGF0YXApCit7CisJc3RydWN0IHBvbGljeWRiICpwOworCXN0cnVjdCBsZXZlbF9kYXR1bSAqbGV2ZGF0dW07CisKKwlsZXZkYXR1bSA9IGRhdHVtOworCXAgPSBkYXRhcDsKKworCWlmICghbGV2ZGF0dW0tPmlzYWxpYXMpIHsKKwkJaWYgKCFsZXZkYXR1bS0+bGV2ZWwtPnNlbnMgfHwKKwkJICAgIGxldmRhdHVtLT5sZXZlbC0+c2VucyA+IHAtPnBfbGV2ZWxzLm5wcmltKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJcC0+c3ltX3ZhbF90b19uYW1lW1NZTV9MRVZFTFNdW2xldmRhdHVtLT5sZXZlbC0+c2VucyAtIDFdID0ga2V5OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhdF9pbmRleCh2b2lkICprZXksIHZvaWQgKmRhdHVtLCB2b2lkICpkYXRhcCkKK3sKKwlzdHJ1Y3QgcG9saWN5ZGIgKnA7CisJc3RydWN0IGNhdF9kYXR1bSAqY2F0ZGF0dW07CisKKwljYXRkYXR1bSA9IGRhdHVtOworCXAgPSBkYXRhcDsKKworCWlmICghY2F0ZGF0dW0tPmlzYWxpYXMpIHsKKwkJaWYgKCFjYXRkYXR1bS0+dmFsdWUgfHwgY2F0ZGF0dW0tPnZhbHVlID4gcC0+cF9jYXRzLm5wcmltKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJcC0+c3ltX3ZhbF90b19uYW1lW1NZTV9DQVRTXVtjYXRkYXR1bS0+dmFsdWUgLSAxXSA9IGtleTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCAoKmluZGV4X2ZbU1lNX05VTV0pICh2b2lkICprZXksIHZvaWQgKmRhdHVtLCB2b2lkICpkYXRhcCkgPQoreworCWNvbW1vbl9pbmRleCwKKwljbGFzc19pbmRleCwKKwlyb2xlX2luZGV4LAorCXR5cGVfaW5kZXgsCisJdXNlcl9pbmRleCwKKwljb25kX2luZGV4X2Jvb2wsCisJc2Vuc19pbmRleCwKKwljYXRfaW5kZXgsCit9OworCisjaWZkZWYgREVCVUdfSEFTSEVTCitzdGF0aWMgdm9pZCBoYXNoX2V2YWwoc3RydWN0IGhhc2h0YWIgKmgsIGNvbnN0IGNoYXIgKmhhc2hfbmFtZSkKK3sKKwlzdHJ1Y3QgaGFzaHRhYl9pbmZvIGluZm87CisKKwloYXNodGFiX3N0YXQoaCwgJmluZm8pOworCXByX2RlYnVnKCJTRUxpbnV4OiAlczogICVkIGVudHJpZXMgYW5kICVkLyVkIGJ1Y2tldHMgdXNlZCwgbG9uZ2VzdCBjaGFpbiBsZW5ndGggJWRcbiIsCisJCSBoYXNoX25hbWUsIGgtPm5lbCwgaW5mby5zbG90c191c2VkLCBoLT5zaXplLAorCQkgaW5mby5tYXhfY2hhaW5fbGVuKTsKK30KKworc3RhdGljIHZvaWQgc3ltdGFiX2hhc2hfZXZhbChzdHJ1Y3Qgc3ltdGFiICpzKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IFNZTV9OVU07IGkrKykKKwkJaGFzaF9ldmFsKHNbaV0udGFibGUsIHN5bXRhYl9uYW1lW2ldKTsKK30KKworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBoYXNoX2V2YWwoc3RydWN0IGhhc2h0YWIgKmgsIGNoYXIgKmhhc2hfbmFtZSkKK3sKK30KKyNlbmRpZgorCisvKgorICogRGVmaW5lIHRoZSBvdGhlciB2YWxfdG9fbmFtZSBhbmQgdmFsX3RvX3N0cnVjdCBhcnJheXMKKyAqIGluIGEgcG9saWN5IGRhdGFiYXNlIHN0cnVjdHVyZS4KKyAqCisgKiBDYWxsZXIgbXVzdCBjbGVhbiB1cCBvbiBmYWlsdXJlLgorICovCitzdGF0aWMgaW50IHBvbGljeWRiX2luZGV4KHN0cnVjdCBwb2xpY3lkYiAqcCkKK3sKKwlpbnQgaSwgcmM7CisKKwlpZiAocC0+bWxzX2VuYWJsZWQpCisJCXByX2RlYnVnKCJTRUxpbnV4OiAgJWQgdXNlcnMsICVkIHJvbGVzLCAlZCB0eXBlcywgJWQgYm9vbHMsICVkIHNlbnMsICVkIGNhdHNcbiIsCisJCQkgcC0+cF91c2Vycy5ucHJpbSwgcC0+cF9yb2xlcy5ucHJpbSwgcC0+cF90eXBlcy5ucHJpbSwKKwkJCSBwLT5wX2Jvb2xzLm5wcmltLCBwLT5wX2xldmVscy5ucHJpbSwgcC0+cF9jYXRzLm5wcmltKTsKKwllbHNlCisJCXByX2RlYnVnKCJTRUxpbnV4OiAgJWQgdXNlcnMsICVkIHJvbGVzLCAlZCB0eXBlcywgJWQgYm9vbHNcbiIsCisJCQkgcC0+cF91c2Vycy5ucHJpbSwgcC0+cF9yb2xlcy5ucHJpbSwgcC0+cF90eXBlcy5ucHJpbSwKKwkJCSBwLT5wX2Jvb2xzLm5wcmltKTsKKworCXByX2RlYnVnKCJTRUxpbnV4OiAgJWQgY2xhc3NlcywgJWQgcnVsZXNcbiIsCisJCSBwLT5wX2NsYXNzZXMubnByaW0sIHAtPnRlX2F2dGFiLm5lbCk7CisKKyNpZmRlZiBERUJVR19IQVNIRVMKKwlhdnRhYl9oYXNoX2V2YWwoJnAtPnRlX2F2dGFiLCAicnVsZXMiKTsKKwlzeW10YWJfaGFzaF9ldmFsKHAtPnN5bXRhYik7CisjZW5kaWYKKworCXAtPmNsYXNzX3ZhbF90b19zdHJ1Y3QgPSBrY2FsbG9jKHAtPnBfY2xhc3Nlcy5ucHJpbSwKKwkJCQkJIHNpemVvZigqcC0+Y2xhc3NfdmFsX3RvX3N0cnVjdCksCisJCQkJCSBHRlBfS0VSTkVMKTsKKwlpZiAoIXAtPmNsYXNzX3ZhbF90b19zdHJ1Y3QpCisJCXJldHVybiAtRU5PTUVNOworCisJcC0+cm9sZV92YWxfdG9fc3RydWN0ID0ga2NhbGxvYyhwLT5wX3JvbGVzLm5wcmltLAorCQkJCQlzaXplb2YoKnAtPnJvbGVfdmFsX3RvX3N0cnVjdCksCisJCQkJCUdGUF9LRVJORUwpOworCWlmICghcC0+cm9sZV92YWxfdG9fc3RydWN0KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXAtPnVzZXJfdmFsX3RvX3N0cnVjdCA9IGtjYWxsb2MocC0+cF91c2Vycy5ucHJpbSwKKwkJCQkJc2l6ZW9mKCpwLT51c2VyX3ZhbF90b19zdHJ1Y3QpLAorCQkJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIXAtPnVzZXJfdmFsX3RvX3N0cnVjdCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwLT50eXBlX3ZhbF90b19zdHJ1Y3QgPSBrdmNhbGxvYyhwLT5wX3R5cGVzLm5wcmltLAorCQkJCQkgc2l6ZW9mKCpwLT50eXBlX3ZhbF90b19zdHJ1Y3QpLAorCQkJCQkgR0ZQX0tFUk5FTCk7CisJaWYgKCFwLT50eXBlX3ZhbF90b19zdHJ1Y3QpCisJCXJldHVybiAtRU5PTUVNOworCisJcmMgPSBjb25kX2luaXRfYm9vbF9pbmRleGVzKHApOworCWlmIChyYykKKwkJZ290byBvdXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgU1lNX05VTTsgaSsrKSB7CisJCXAtPnN5bV92YWxfdG9fbmFtZVtpXSA9IGt2Y2FsbG9jKHAtPnN5bXRhYltpXS5ucHJpbSwKKwkJCQkJCSBzaXplb2YoY2hhciAqKSwKKwkJCQkJCSBHRlBfS0VSTkVMKTsKKwkJaWYgKCFwLT5zeW1fdmFsX3RvX25hbWVbaV0pCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQlyYyA9IGhhc2h0YWJfbWFwKHAtPnN5bXRhYltpXS50YWJsZSwgaW5kZXhfZltpXSwgcCk7CisJCWlmIChyYykKKwkJCWdvdG8gb3V0OworCX0KKwlyYyA9IDA7CitvdXQ6CisJcmV0dXJuIHJjOworfQorCisvKgogICogRnJlZSBhbnkgbWVtb3J5IGFsbG9jYXRlZCBieSBhIHBvbGljeSBkYXRhYmFzZSBzdHJ1Y3R1cmUuCiAgKi8KIHZvaWQgcG9saWN5ZGJfZGVzdHJveShzdHJ1Y3QgcG9saWN5ZGIgKnApCkBAIC03NzcsNyArNzc5LDcgQEAgdm9pZCBwb2xpY3lkYl9kZXN0cm95KHN0cnVjdCBwb2xpY3lkYiAqcCkKIAlrZnJlZShwLT5jbGFzc192YWxfdG9fc3RydWN0KTsKIAlrZnJlZShwLT5yb2xlX3ZhbF90b19zdHJ1Y3QpOwogCWtmcmVlKHAtPnVzZXJfdmFsX3RvX3N0cnVjdCk7Ci0Ja3ZmcmVlKHAtPnR5cGVfdmFsX3RvX3N0cnVjdF9hcnJheSk7CisJa3ZmcmVlKHAtPnR5cGVfdmFsX3RvX3N0cnVjdCk7CiAKIAlhdnRhYl9kZXN0cm95KCZwLT50ZV9hdnRhYik7CiAKQEAgLTE3MjIsNyArMTcyNCw3IEBAIHN0YXRpYyBpbnQgdHlwZV9ib3VuZHNfc2FuaXR5X2NoZWNrKHZvaWQgKmtleSwgdm9pZCAqZGF0dW0sIHZvaWQgKmRhdGFwKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAotCQl1cHBlciA9IHAtPnR5cGVfdmFsX3RvX3N0cnVjdF9hcnJheVt1cHBlci0+Ym91bmRzIC0gMV07CisJCXVwcGVyID0gcC0+dHlwZV92YWxfdG9fc3RydWN0W3VwcGVyLT5ib3VuZHMgLSAxXTsKIAkJQlVHX09OKCF1cHBlcik7CiAKIAkJaWYgKHVwcGVyLT5hdHRyaWJ1dGUpIHsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3MvcG9saWN5ZGIuaCBiL3NlY3VyaXR5L3NlbGludXgvc3MvcG9saWN5ZGIuaAppbmRleCBmY2M2MzY2Li4xNjJkMGU3IDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL3BvbGljeWRiLmgKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9wb2xpY3lkYi5oCkBAIC0yNTMsNyArMjUzLDcgQEAgc3RydWN0IHBvbGljeWRiIHsKIAlzdHJ1Y3QgY2xhc3NfZGF0dW0gKipjbGFzc192YWxfdG9fc3RydWN0OwogCXN0cnVjdCByb2xlX2RhdHVtICoqcm9sZV92YWxfdG9fc3RydWN0OwogCXN0cnVjdCB1c2VyX2RhdHVtICoqdXNlcl92YWxfdG9fc3RydWN0OwotCXN0cnVjdCB0eXBlX2RhdHVtICoqdHlwZV92YWxfdG9fc3RydWN0X2FycmF5OworCXN0cnVjdCB0eXBlX2RhdHVtICoqdHlwZV92YWxfdG9fc3RydWN0OwogCiAJLyogdHlwZSBlbmZvcmNlbWVudCBhY2Nlc3MgdmVjdG9ycyBhbmQgdHJhbnNpdGlvbnMgKi8KIAlzdHJ1Y3QgYXZ0YWIgdGVfYXZ0YWI7CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NzL3NlcnZpY2VzLmMgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3NlcnZpY2VzLmMKaW5kZXggZDYxNTYzYS4uM2EyOWU3YyAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zZXJ2aWNlcy5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc3Mvc2VydmljZXMuYwpAQCAtNTQyLDEzICs1NDIsMTMgQEAgc3RhdGljIHZvaWQgdHlwZV9hdHRyaWJ1dGVfYm91bmRzX2F2KHN0cnVjdCBwb2xpY3lkYiAqcG9saWN5ZGIsCiAJc3RydWN0IHR5cGVfZGF0dW0gKnRhcmdldDsKIAl1MzIgbWFza2VkID0gMDsKIAotCXNvdXJjZSA9IHBvbGljeWRiLT50eXBlX3ZhbF90b19zdHJ1Y3RfYXJyYXlbc2NvbnRleHQtPnR5cGUgLSAxXTsKKwlzb3VyY2UgPSBwb2xpY3lkYi0+dHlwZV92YWxfdG9fc3RydWN0W3Njb250ZXh0LT50eXBlIC0gMV07CiAJQlVHX09OKCFzb3VyY2UpOwogCiAJaWYgKCFzb3VyY2UtPmJvdW5kcykKIAkJcmV0dXJuOwogCi0JdGFyZ2V0ID0gcG9saWN5ZGItPnR5cGVfdmFsX3RvX3N0cnVjdF9hcnJheVt0Y29udGV4dC0+dHlwZSAtIDFdOworCXRhcmdldCA9IHBvbGljeWRiLT50eXBlX3ZhbF90b19zdHJ1Y3RbdGNvbnRleHQtPnR5cGUgLSAxXTsKIAlCVUdfT04oIXRhcmdldCk7CiAKIAltZW1zZXQoJmxvX2F2ZCwgMCwgc2l6ZW9mKGxvX2F2ZCkpOwpAQCAtODkxLDcgKzg5MSw3IEBAIGludCBzZWN1cml0eV9ib3VuZGVkX3RyYW5zaXRpb24oc3RydWN0IHNlbGludXhfc3RhdGUgKnN0YXRlLAogCiAJaW5kZXggPSBuZXdfY29udGV4dC0+dHlwZTsKIAl3aGlsZSAodHJ1ZSkgewotCQl0eXBlID0gcG9saWN5ZGItPnR5cGVfdmFsX3RvX3N0cnVjdF9hcnJheVtpbmRleCAtIDFdOworCQl0eXBlID0gcG9saWN5ZGItPnR5cGVfdmFsX3RvX3N0cnVjdFtpbmRleCAtIDFdOwogCQlCVUdfT04oIXR5cGUpOwogCiAJCS8qIG5vdCBib3VuZGVkIGFueW1vcmUgKi8KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmMgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5jCmluZGV4IDFmMGE2ZWEuLjdkNDk5OTQgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuYwpAQCAtMTIsNyArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Ci0jaW5jbHVkZSA8bGludXgvYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL2JhcnJpZXIuaD4KICNpbmNsdWRlICJmbGFzay5oIgogI2luY2x1ZGUgInNlY3VyaXR5LmgiCiAjaW5jbHVkZSAic2lkdGFiLmgiCkBAIC0yMywxNCArMjMsMTQgQEAgaW50IHNpZHRhYl9pbml0KHN0cnVjdCBzaWR0YWIgKnMpCiAKIAltZW1zZXQocy0+cm9vdHMsIDAsIHNpemVvZihzLT5yb290cykpOwogCisJLyogbWF4IGNvdW50IGlzIFNJRFRBQl9NQVggc28gdmFsaWQgaW5kZXggaXMgYWx3YXlzIDwgU0lEVEFCX01BWCAqLwogCWZvciAoaSA9IDA7IGkgPCBTSURUQUJfUkNBQ0hFX1NJWkU7IGkrKykKLQkJYXRvbWljX3NldCgmcy0+cmNhY2hlW2ldLCAtMSk7CisJCXMtPnJjYWNoZVtpXSA9IFNJRFRBQl9NQVg7CiAKIAlmb3IgKGkgPSAwOyBpIDwgU0VDSU5JVFNJRF9OVU07IGkrKykKIAkJcy0+aXNpZHNbaV0uc2V0ID0gMDsKIAotCWF0b21pY19zZXQoJnMtPmNvdW50LCAwKTsKLQorCXMtPmNvdW50ID0gMDsKIAlzLT5jb252ZXJ0ID0gTlVMTDsKIAogCXNwaW5fbG9ja19pbml0KCZzLT5sb2NrKTsKQEAgLTEzMCwxNCArMTMwLDEyIEBAIHN0YXRpYyBzdHJ1Y3QgY29udGV4dCAqc2lkdGFiX2RvX2xvb2t1cChzdHJ1Y3Qgc2lkdGFiICpzLCB1MzIgaW5kZXgsIGludCBhbGxvYykKIAogc3RhdGljIHN0cnVjdCBjb250ZXh0ICpzaWR0YWJfbG9va3VwKHN0cnVjdCBzaWR0YWIgKnMsIHUzMiBpbmRleCkKIHsKLQl1MzIgY291bnQgPSAodTMyKWF0b21pY19yZWFkKCZzLT5jb3VudCk7CisJLyogcmVhZCBlbnRyaWVzIG9ubHkgYWZ0ZXIgcmVhZGluZyBjb3VudCAqLworCXUzMiBjb3VudCA9IHNtcF9sb2FkX2FjcXVpcmUoJnMtPmNvdW50KTsKIAogCWlmIChpbmRleCA+PSBjb3VudCkKIAkJcmV0dXJuIE5VTEw7CiAKLQkvKiByZWFkIGVudHJpZXMgYWZ0ZXIgcmVhZGluZyBjb3VudCAqLwotCXNtcF9ybWIoKTsKLQogCXJldHVybiBzaWR0YWJfZG9fbG9va3VwKHMsIGluZGV4LCAwKTsKIH0KIApAQCAtMjEwLDEwICsyMDgsMTAgQEAgc3RhdGljIGludCBzaWR0YWJfZmluZF9jb250ZXh0KHVuaW9uIHNpZHRhYl9lbnRyeV9pbm5lciBlbnRyeSwKIHN0YXRpYyB2b2lkIHNpZHRhYl9yY2FjaGVfdXBkYXRlKHN0cnVjdCBzaWR0YWIgKnMsIHUzMiBpbmRleCwgdTMyIHBvcykKIHsKIAl3aGlsZSAocG9zID4gMCkgewotCQlhdG9taWNfc2V0KCZzLT5yY2FjaGVbcG9zXSwgYXRvbWljX3JlYWQoJnMtPnJjYWNoZVtwb3MgLSAxXSkpOworCQlXUklURV9PTkNFKHMtPnJjYWNoZVtwb3NdLCBSRUFEX09OQ0Uocy0+cmNhY2hlW3BvcyAtIDFdKSk7CiAJCS0tcG9zOwogCX0KLQlhdG9taWNfc2V0KCZzLT5yY2FjaGVbMF0sIChpbnQpaW5kZXgpOworCVdSSVRFX09OQ0Uocy0+cmNhY2hlWzBdLCBpbmRleCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNpZHRhYl9yY2FjaGVfcHVzaChzdHJ1Y3Qgc2lkdGFiICpzLCB1MzIgaW5kZXgpCkBAIC0yMjcsMTQgKzIyNSwxNCBAQCBzdGF0aWMgaW50IHNpZHRhYl9yY2FjaGVfc2VhcmNoKHN0cnVjdCBzaWR0YWIgKnMsIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0LAogCXUzMiBpOwogCiAJZm9yIChpID0gMDsgaSA8IFNJRFRBQl9SQ0FDSEVfU0laRTsgaSsrKSB7Ci0JCWludCB2ID0gYXRvbWljX3JlYWQoJnMtPnJjYWNoZVtpXSk7CisJCXUzMiB2ID0gUkVBRF9PTkNFKHMtPnJjYWNoZVtpXSk7CiAKLQkJaWYgKHYgPCAwKQorCQlpZiAodiA+PSBTSURUQUJfTUFYKQogCQkJY29udGludWU7CiAKLQkJaWYgKGNvbnRleHRfY21wKHNpZHRhYl9kb19sb29rdXAocywgKHUzMil2LCAwKSwgY29udGV4dCkpIHsKLQkJCXNpZHRhYl9yY2FjaGVfdXBkYXRlKHMsICh1MzIpdiwgaSk7Ci0JCQkqaW5kZXggPSAodTMyKXY7CisJCWlmIChjb250ZXh0X2NtcChzaWR0YWJfZG9fbG9va3VwKHMsIHYsIDApLCBjb250ZXh0KSkgeworCQkJc2lkdGFiX3JjYWNoZV91cGRhdGUocywgdiwgaSk7CisJCQkqaW5kZXggPSB2OwogCQkJcmV0dXJuIDA7CiAJCX0KIAl9CkBAIC0yNDUsOCArMjQzLDcgQEAgc3RhdGljIGludCBzaWR0YWJfcmV2ZXJzZV9sb29rdXAoc3RydWN0IHNpZHRhYiAqcywgc3RydWN0IGNvbnRleHQgKmNvbnRleHQsCiAJCQkJIHUzMiAqaW5kZXgpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1MzIgY291bnQgPSAodTMyKWF0b21pY19yZWFkKCZzLT5jb3VudCk7Ci0JdTMyIGNvdW50X2xvY2tlZCwgbGV2ZWwsIHBvczsKKwl1MzIgY291bnQsIGNvdW50X2xvY2tlZCwgbGV2ZWwsIHBvczsKIAlzdHJ1Y3Qgc2lkdGFiX2NvbnZlcnRfcGFyYW1zICpjb252ZXJ0OwogCXN0cnVjdCBjb250ZXh0ICpkc3QsICpkc3RfY29udmVydDsKIAlpbnQgcmM7CkBAIC0yNTUsMTEgKzI1MiwxMCBAQCBzdGF0aWMgaW50IHNpZHRhYl9yZXZlcnNlX2xvb2t1cChzdHJ1Y3Qgc2lkdGFiICpzLCBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCwKIAlpZiAocmMgPT0gMCkKIAkJcmV0dXJuIDA7CiAKKwkvKiByZWFkIGVudHJpZXMgb25seSBhZnRlciByZWFkaW5nIGNvdW50ICovCisJY291bnQgPSBzbXBfbG9hZF9hY3F1aXJlKCZzLT5jb3VudCk7CiAJbGV2ZWwgPSBzaWR0YWJfbGV2ZWxfZnJvbV9jb3VudChjb3VudCk7CiAKLQkvKiByZWFkIGVudHJpZXMgYWZ0ZXIgcmVhZGluZyBjb3VudCAqLwotCXNtcF9ybWIoKTsKLQogCXBvcyA9IDA7CiAJcmMgPSBzaWR0YWJfZmluZF9jb250ZXh0KHMtPnJvb3RzW2xldmVsXSwgJnBvcywgY291bnQsIGxldmVsLAogCQkJCSBjb250ZXh0LCBpbmRleCk7CkBAIC0yNzIsNyArMjY4LDcgQEAgc3RhdGljIGludCBzaWR0YWJfcmV2ZXJzZV9sb29rdXAoc3RydWN0IHNpZHRhYiAqcywgc3RydWN0IGNvbnRleHQgKmNvbnRleHQsCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIGZsYWdzKTsKIAogCWNvbnZlcnQgPSBzLT5jb252ZXJ0OwotCWNvdW50X2xvY2tlZCA9ICh1MzIpYXRvbWljX3JlYWQoJnMtPmNvdW50KTsKKwljb3VudF9sb2NrZWQgPSBzLT5jb3VudDsKIAlsZXZlbCA9IHNpZHRhYl9sZXZlbF9mcm9tX2NvdW50KGNvdW50X2xvY2tlZCk7CiAKIAkvKiBpZiBjb3VudCBoYXMgY2hhbmdlZCBiZWZvcmUgd2UgYWNxdWlyZWQgdGhlIGxvY2ssIHRoZW4gY2F0Y2ggdXAgKi8KQEAgLTMyMCw3ICszMTYsNyBAQCBzdGF0aWMgaW50IHNpZHRhYl9yZXZlcnNlX2xvb2t1cChzdHJ1Y3Qgc2lkdGFiICpzLCBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCwKIAkJfQogCiAJCS8qIGF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGUgaW5zZXJ0IHdvbid0IGZhaWwgKi8KLQkJYXRvbWljX3NldCgmY29udmVydC0+dGFyZ2V0LT5jb3VudCwgY291bnQgKyAxKTsKKwkJY29udmVydC0+dGFyZ2V0LT5jb3VudCA9IGNvdW50ICsgMTsKIAl9CiAKIAlpZiAoY29udGV4dC0+bGVuKQpAQCAtMzMxLDkgKzMyNyw3IEBAIHN0YXRpYyBpbnQgc2lkdGFiX3JldmVyc2VfbG9va3VwKHN0cnVjdCBzaWR0YWIgKnMsIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0LAogCSppbmRleCA9IGNvdW50OwogCiAJLyogd3JpdGUgZW50cmllcyBiZWZvcmUgd3JpdGluZyBuZXcgY291bnQgKi8KLQlzbXBfd21iKCk7Ci0KLQlhdG9taWNfc2V0KCZzLT5jb3VudCwgY291bnQgKyAxKTsKKwlzbXBfc3RvcmVfcmVsZWFzZSgmcy0+Y291bnQsIGNvdW50ICsgMSk7CiAKIAlyYyA9IDA7CiBvdXRfdW5sb2NrOgpAQCAtNDIzLDcgKzQxNyw3IEBAIGludCBzaWR0YWJfY29udmVydChzdHJ1Y3Qgc2lkdGFiICpzLCBzdHJ1Y3Qgc2lkdGFiX2NvbnZlcnRfcGFyYW1zICpwYXJhbXMpCiAJCXJldHVybiAtRUJVU1k7CiAJfQogCi0JY291bnQgPSAodTMyKWF0b21pY19yZWFkKCZzLT5jb3VudCk7CisJY291bnQgPSBzLT5jb3VudDsKIAlsZXZlbCA9IHNpZHRhYl9sZXZlbF9mcm9tX2NvdW50KGNvdW50KTsKIAogCS8qIGFsbG9jYXRlIGxhc3QgbGVhZiBpbiB0aGUgbmV3IHNpZHRhYiAodG8gYXZvaWQgcmFjZSB3aXRoCkBAIC00MzYsNyArNDMwLDcgQEAgaW50IHNpZHRhYl9jb252ZXJ0KHN0cnVjdCBzaWR0YWIgKnMsIHN0cnVjdCBzaWR0YWJfY29udmVydF9wYXJhbXMgKnBhcmFtcykKIAl9CiAKIAkvKiBzZXQgY291bnQgaW4gY2FzZSBubyBuZXcgZW50cmllcyBhcmUgYWRkZWQgZHVyaW5nIGNvbnZlcnNpb24gKi8KLQlhdG9taWNfc2V0KCZwYXJhbXMtPnRhcmdldC0+Y291bnQsIGNvdW50KTsKKwlwYXJhbXMtPnRhcmdldC0+Y291bnQgPSBjb3VudDsKIAogCS8qIGVuYWJsZSBsaXZlIGNvbnZlcnQgb2YgbmV3IGVudHJpZXMgKi8KIAlzLT5jb252ZXJ0ID0gcGFyYW1zOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuaCBiL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmgKaW5kZXggYmJkNWMwZC4uMWY0NzYzMSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuaAorKysgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5oCkBAIC00MCw4ICs0MCw4IEBAIHVuaW9uIHNpZHRhYl9lbnRyeV9pbm5lciB7CiAjZGVmaW5lIFNJRFRBQl9MRUFGX0VOVFJJRVMgXAogCShTSURUQUJfTk9ERV9BTExPQ19TSVpFIC8gc2l6ZW9mKHN0cnVjdCBzaWR0YWJfZW50cnlfbGVhZikpCiAKLSNkZWZpbmUgU0lEVEFCX01BWF9CSVRTIDMxIC8qIGxpbWl0ZWQgdG8gSU5UX01BWCBkdWUgdG8gYXRvbWljX3QgcmFuZ2UgKi8KLSNkZWZpbmUgU0lEVEFCX01BWCAoKCh1MzIpMSA8PCBTSURUQUJfTUFYX0JJVFMpIC0gMSkKKyNkZWZpbmUgU0lEVEFCX01BWF9CSVRTIDMyCisjZGVmaW5lIFNJRFRBQl9NQVggVTMyX01BWAogLyogZW5zdXJlIGVub3VnaCB0cmVlIGxldmVscyBmb3IgU0lEVEFCX01BWCBlbnRyaWVzICovCiAjZGVmaW5lIFNJRFRBQl9NQVhfTEVWRUwgXAogCURJVl9ST1VORF9VUChTSURUQUJfTUFYX0JJVFMgLSBzaXplX3RvX3NoaWZ0KFNJRFRBQl9MRUFGX0VOVFJJRVMpLCBcCkBAIC02OSwxMyArNjksMjIgQEAgc3RydWN0IHNpZHRhYl9jb252ZXJ0X3BhcmFtcyB7CiAjZGVmaW5lIFNJRFRBQl9SQ0FDSEVfU0laRSAzCiAKIHN0cnVjdCBzaWR0YWIgeworCS8qCisJICogbG9jay1mcmVlIHJlYWQgYWNjZXNzIG9ubHkgZm9yIGFzIG1hbnkgaXRlbXMgYXMgYSBwcmlvciByZWFkIG9mCisJICogJ2NvdW50JworCSAqLwogCXVuaW9uIHNpZHRhYl9lbnRyeV9pbm5lciByb290c1tTSURUQUJfTUFYX0xFVkVMICsgMV07Ci0JYXRvbWljX3QgY291bnQ7CisJLyoKKwkgKiBhY2Nlc3MgYXRvbWljYWxseSB2aWEge1JFQUR8V1JJVEV9X09OQ0UoKTsgb25seSBpbmNyZW1lbnQgdW5kZXIKKwkgKiBzcGlubG9jaworCSAqLworCXUzMiBjb3VudDsKKwkvKiBhY2Nlc3Mgb25seSB1bmRlciBzcGlubG9jayAqLwogCXN0cnVjdCBzaWR0YWJfY29udmVydF9wYXJhbXMgKmNvbnZlcnQ7CiAJc3BpbmxvY2tfdCBsb2NrOwogCi0JLyogcmV2ZXJzZSBsb29rdXAgY2FjaGUgKi8KLQlhdG9taWNfdCByY2FjaGVbU0lEVEFCX1JDQUNIRV9TSVpFXTsKKwkvKiByZXZlcnNlIGxvb2t1cCBjYWNoZSAtIGFjY2VzcyBhdG9taWNhbGx5IHZpYSB7UkVBRHxXUklURX1fT05DRSgpICovCisJdTMyIHJjYWNoZVtTSURUQUJfUkNBQ0hFX1NJWkVdOwogCiAJLyogaW5kZXggPT0gU0lEIC0gMSAobm8gZW50cnkgZm9yIFNFQ1NJRF9OVUxMKSAqLwogCXN0cnVjdCBzaWR0YWJfaXNpZF9lbnRyeSBpc2lkc1tTRUNJTklUU0lEX05VTV07CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zbWFjay9zbWFja19hY2Nlc3MuYyBiL3NlY3VyaXR5L3NtYWNrL3NtYWNrX2FjY2Vzcy5jCmluZGV4IGYxYzkzYTcuLjM4YWMzZGEgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NtYWNrL3NtYWNrX2FjY2Vzcy5jCisrKyBiL3NlY3VyaXR5L3NtYWNrL3NtYWNrX2FjY2Vzcy5jCkBAIC00NjUsNyArNDY1LDcgQEAgY2hhciAqc21rX3BhcnNlX3NtYWNrKGNvbnN0IGNoYXIgKnN0cmluZywgaW50IGxlbikKIAlpZiAoaSA9PSAwIHx8IGkgPj0gU01LX0xPTkdMQUJFTCkKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKLQlzbWFjayA9IGt6YWxsb2MoaSArIDEsIEdGUF9LRVJORUwpOworCXNtYWNrID0ga3phbGxvYyhpICsgMSwgR0ZQX05PRlMpOwogCWlmIChzbWFjayA9PSBOVUxMKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIApAQCAtNTAwLDcgKzUwMCw3IEBAIGludCBzbWtfbmV0bGJsX21scyhpbnQgbGV2ZWwsIGNoYXIgKmNhdHNldCwgc3RydWN0IG5ldGxibF9sc21fc2VjYXR0ciAqc2FwLAogCQkJaWYgKChtICYgKmNwKSA9PSAwKQogCQkJCWNvbnRpbnVlOwogCQkJcmMgPSBuZXRsYmxfY2F0bWFwX3NldGJpdCgmc2FwLT5hdHRyLm1scy5jYXQsCi0JCQkJCQkgIGNhdCwgR0ZQX0tFUk5FTCk7CisJCQkJCQkgIGNhdCwgR0ZQX05PRlMpOwogCQkJaWYgKHJjIDwgMCkgewogCQkJCW5ldGxibF9jYXRtYXBfZnJlZShzYXAtPmF0dHIubWxzLmNhdCk7CiAJCQkJcmV0dXJuIHJjOwpAQCAtNTM2LDcgKzUzNiw3IEBAIHN0cnVjdCBzbWFja19rbm93biAqc21rX2ltcG9ydF9lbnRyeShjb25zdCBjaGFyICpzdHJpbmcsIGludCBsZW4pCiAJaWYgKHNrcCAhPSBOVUxMKQogCQlnb3RvIGZyZWVvdXQ7CiAKLQlza3AgPSBremFsbG9jKHNpemVvZigqc2twKSwgR0ZQX0tFUk5FTCk7CisJc2twID0ga3phbGxvYyhzaXplb2YoKnNrcCksIEdGUF9OT0ZTKTsKIAlpZiAoc2twID09IE5VTEwpIHsKIAkJc2twID0gRVJSX1BUUigtRU5PTUVNKTsKIAkJZ290byBmcmVlb3V0OwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMgYi9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYwppbmRleCA0YzVlNWE0Li5hYmViMDljIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYworKysgYi9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYwpAQCAtMjg4LDcgKzI4OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc21hY2tfa25vd24gKnNta19mZXRjaChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgaW5vZGUgKmlwLAogCWlmICghKGlwLT5pX29wZmxhZ3MgJiBJT1BfWEFUVFIpKQogCQlyZXR1cm4gRVJSX1BUUigtRU9QTk9UU1VQUCk7CiAKLQlidWZmZXIgPSBremFsbG9jKFNNS19MT05HTEFCRUwsIEdGUF9LRVJORUwpOworCWJ1ZmZlciA9IGt6YWxsb2MoU01LX0xPTkdMQUJFTCwgR0ZQX05PRlMpOwogCWlmIChidWZmZXIgPT0gTlVMTCkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgc3RydWN0IHNtYWNrX2tub3duICpzbWtfZmV0Y2goY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGlub2RlICppcCwKIAogLyoqCiAgKiBpbml0X2lub2RlX3NtYWNrIC0gaW5pdGlhbGl6ZSBhbiBpbm9kZSBzZWN1cml0eSBibG9iCi0gKiBAaXNwOiB0aGUgYmxvYiB0byBpbml0aWFsaXplCisgKiBAaW5vZGU6IGlub2RlIHRvIGV4dHJhY3QgdGhlIGluZm8gZnJvbQogICogQHNrcDogYSBwb2ludGVyIHRvIHRoZSBTbWFjayBsYWJlbCBlbnRyeSB0byB1c2UgaW4gdGhlIGJsb2IKICAqCiAgKi8KQEAgLTUwOSw3ICs1MDksNyBAQCBzdGF0aWMgaW50IHNtYWNrX3B0cmFjZV90cmFjZW1lKHN0cnVjdCB0YXNrX3N0cnVjdCAqcHRwKQogCiAvKioKICAqIHNtYWNrX3N5c2xvZyAtIFNtYWNrIGFwcHJvdmFsIG9uIHN5c2xvZwotICogQHR5cGU6IG1lc3NhZ2UgdHlwZQorICogQHR5cGVmcm9tX2ZpbGU6IHVudXNlZAogICoKICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBlcnJvciBjb2RlIG90aGVyd2lzZS4KICAqLwpAQCAtNzY1LDcgKzc2NSw3IEBAIHN0YXRpYyBpbnQgc21hY2tfc2JfZWF0X2xzbV9vcHRzKGNoYXIgKm9wdGlvbnMsIHZvaWQgKiptbnRfb3B0cykKIC8qKgogICogc21hY2tfc2V0X21udF9vcHRzIC0gc2V0IFNtYWNrIHNwZWNpZmljIG1vdW50IG9wdGlvbnMKICAqIEBzYjogdGhlIGZpbGUgc3lzdGVtIHN1cGVyYmxvY2sKLSAqIEBvcHRzOiBTbWFjayBtb3VudCBvcHRpb25zCisgKiBAbW50X29wdHM6IFNtYWNrIG1vdW50IG9wdGlvbnMKICAqIEBrZXJuX2ZsYWdzOiBtb3VudCBvcHRpb24gZnJvbSBrZXJuZWwgc3BhY2Ugb3IgdXNlciBzcGFjZQogICogQHNldF9rZXJuX2ZsYWdzOiB3aGVyZSB0byBzdG9yZSBjb252ZXJ0ZWQgbW91bnQgb3B0cwogICoKQEAgLTkzNyw3ICs5MzcsOCBAQCBzdGF0aWMgaW50IHNtYWNrX2Jwcm1fc2V0X2NyZWRzKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCiAKIAkJaWYgKHJjICE9IDApCiAJCQlyZXR1cm4gcmM7Ci0JfSBlbHNlIGlmIChicHJtLT51bnNhZmUpCisJfQorCWlmIChicHJtLT51bnNhZmUgJiB+TFNNX1VOU0FGRV9QVFJBQ0UpCiAJCXJldHVybiAtRVBFUk07CiAKIAlic3AtPnNta190YXNrID0gaXNwLT5zbWtfdGFzazsKQEAgLTk1OCw3ICs5NTksNyBAQCBzdGF0aWMgaW50IHNtYWNrX2Jwcm1fc2V0X2NyZWRzKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCiAgKiBzbWFja19pbm9kZV9hbGxvY19zZWN1cml0eSAtIGFsbG9jYXRlIGFuIGlub2RlIGJsb2IKICAqIEBpbm9kZTogdGhlIGlub2RlIGluIG5lZWQgb2YgYSBibG9iCiAgKgotICogUmV0dXJucyAwIGlmIGl0IGdldHMgYSBibG9iLCAtRU5PTUVNIG90aGVyd2lzZQorICogUmV0dXJucyAwCiAgKi8KIHN0YXRpYyBpbnQgc21hY2tfaW5vZGVfYWxsb2Nfc2VjdXJpdHkoc3RydWN0IGlub2RlICppbm9kZSkKIHsKQEAgLTExNjQsNyArMTE2NSw3IEBAIHN0YXRpYyBpbnQgc21hY2tfaW5vZGVfcmVuYW1lKHN0cnVjdCBpbm9kZSAqb2xkX2lub2RlLAogICoKICAqIFRoaXMgaXMgdGhlIGltcG9ydGFudCBTbWFjayBob29rLgogICoKLSAqIFJldHVybnMgMCBpZiBhY2Nlc3MgaXMgcGVybWl0dGVkLCAtRUFDQ0VTIG90aGVyd2lzZQorICogUmV0dXJucyAwIGlmIGFjY2VzcyBpcyBwZXJtaXR0ZWQsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCiAgKi8KIHN0YXRpYyBpbnQgc21hY2tfaW5vZGVfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKIHsKQEAgLTEyMjIsOCArMTIyMyw3IEBAIHN0YXRpYyBpbnQgc21hY2tfaW5vZGVfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAqaWF0dHIpCiAKIC8qKgogICogc21hY2tfaW5vZGVfZ2V0YXR0ciAtIFNtYWNrIGNoZWNrIGZvciBnZXR0aW5nIGF0dHJpYnV0ZXMKLSAqIEBtbnQ6IHZmc21vdW50IG9mIHRoZSBvYmplY3QKLSAqIEBkZW50cnk6IHRoZSBvYmplY3QKKyAqIEBwYXRoOiBwYXRoIHRvIGV4dHJhY3QgdGhlIGluZm8gZnJvbQogICoKICAqIFJldHVybnMgMCBpZiBhY2Nlc3MgaXMgcGVybWl0dGVkLCBhbiBlcnJvciBjb2RlIG90aGVyd2lzZQogICovCkBAIC0xODcwLDE0ICsxODcwLDEzIEBAIHN0YXRpYyBpbnQgc21hY2tfZmlsZV9yZWNlaXZlKHN0cnVjdCBmaWxlICpmaWxlKQogLyoqCiAgKiBzbWFja19maWxlX29wZW4gLSBTbWFjayBkZW50cnkgb3BlbiBwcm9jZXNzaW5nCiAgKiBAZmlsZTogdGhlIG9iamVjdAotICogQGNyZWQ6IHRhc2sgY3JlZGVudGlhbAogICoKICAqIFNldCB0aGUgc2VjdXJpdHkgYmxvYiBpbiB0aGUgZmlsZSBzdHJ1Y3R1cmUuCiAgKiBBbGxvdyB0aGUgb3BlbiBvbmx5IGlmIHRoZSB0YXNrIGhhcyByZWFkIGFjY2Vzcy4gVGhlcmUgYXJlCiAgKiBtYW55IHJlYWQgb3BlcmF0aW9ucyAoZS5nLiBmc3RhdCkgdGhhdCB5b3UgY2FuIGRvIHdpdGggYW4KICAqIGZkIGV2ZW4gaWYgeW91IGhhdmUgdGhlIGZpbGUgb3BlbiB3cml0ZS1vbmx5LgogICoKLSAqIFJldHVybnMgMAorICogUmV0dXJucyAwIGlmIGN1cnJlbnQgaGFzIGFjY2VzcywgZXJyb3IgY29kZSBvdGhlcndpc2UKICAqLwogc3RhdGljIGludCBzbWFja19maWxlX29wZW4oc3RydWN0IGZpbGUgKmZpbGUpCiB7CkBAIC0xOTAwLDcgKzE4OTksNyBAQCBzdGF0aWMgaW50IHNtYWNrX2ZpbGVfb3BlbihzdHJ1Y3QgZmlsZSAqZmlsZSkKIAogLyoqCiAgKiBzbWFja19jcmVkX2FsbG9jX2JsYW5rIC0gImFsbG9jYXRlIiBibGFuayB0YXNrLWxldmVsIHNlY3VyaXR5IGNyZWRlbnRpYWxzCi0gKiBAbmV3OiB0aGUgbmV3IGNyZWRlbnRpYWxzCisgKiBAY3JlZDogdGhlIG5ldyBjcmVkZW50aWFscwogICogQGdmcDogdGhlIGF0b21pY2l0eSBvZiBhbnkgbWVtb3J5IGFsbG9jYXRpb25zCiAgKgogICogUHJlcGFyZSBhIGJsYW5rIHNldCBvZiBjcmVkZW50aWFscyBmb3IgbW9kaWZpY2F0aW9uLiAgVGhpcyBtdXN0IGFsbG9jYXRlIGFsbApAQCAtMTk4Myw3ICsxOTgyLDcgQEAgc3RhdGljIHZvaWQgc21hY2tfY3JlZF90cmFuc2ZlcihzdHJ1Y3QgY3JlZCAqbmV3LCBjb25zdCBzdHJ1Y3QgY3JlZCAqb2xkKQogCiAvKioKICAqIHNtYWNrX2NyZWRfZ2V0c2VjaWQgLSBnZXQgdGhlIHNlY2lkIGNvcnJlc3BvbmRpbmcgdG8gYSBjcmVkcyBzdHJ1Y3R1cmUKLSAqIEBjOiB0aGUgb2JqZWN0IGNyZWRzCisgKiBAY3JlZDogdGhlIG9iamVjdCBjcmVkcwogICogQHNlY2lkOiB3aGVyZSB0byBwdXQgdGhlIHJlc3VsdAogICoKICAqIFNldHMgdGhlIHNlY2lkIHRvIGNvbnRhaW4gYSB1MzIgdmVyc2lvbiBvZiB0aGUgc21hY2sgbGFiZWwuCkBAIC0yMTQwLDggKzIxMzksNiBAQCBzdGF0aWMgaW50IHNtYWNrX3Rhc2tfZ2V0aW9wcmlvKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIC8qKgogICogc21hY2tfdGFza19zZXRzY2hlZHVsZXIgLSBTbWFjayBjaGVjayBvbiBzZXR0aW5nIHNjaGVkdWxlcgogICogQHA6IHRoZSB0YXNrIG9iamVjdAotICogQHBvbGljeTogdW51c2VkCi0gKiBAbHA6IHVudXNlZAogICoKICAqIFJldHVybiAwIGlmIHJlYWQgYWNjZXNzIGlzIHBlcm1pdHRlZAogICovCkBAIC0yNjExLDggKzI2MDgsOSBAQCBzdGF0aWMgdm9pZCBzbWtfaXB2Nl9wb3J0X2xhYmVsKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkcmVzcykKIAogLyoqCiAgKiBzbWtfaXB2Nl9wb3J0X2NoZWNrIC0gY2hlY2sgU21hY2sgcG9ydCBhY2Nlc3MKLSAqIEBzb2NrOiBzb2NrZXQKKyAqIEBzazogc29ja2V0CiAgKiBAYWRkcmVzczogYWRkcmVzcworICogQGFjdDogdGhlIGFjdGlvbiBiZWluZyB0YWtlbgogICoKICAqIENyZWF0ZSBvciB1cGRhdGUgdGhlIHBvcnQgbGlzdCBlbnRyeQogICovCkBAIC0yNzgyLDcgKzI3ODAsNyBAQCBzdGF0aWMgaW50IHNtYWNrX3NvY2tldF9wb3N0X2NyZWF0ZShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmFtaWx5LAogICoKICAqIENyb3NzIHJlZmVyZW5jZSB0aGUgcGVlciBsYWJlbHMgZm9yIFNPX1BFRVJTRUMKICAqCi0gKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgYW5kIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKiBSZXR1cm5zIDAKICAqLwogc3RhdGljIGludCBzbWFja19zb2NrZXRfc29ja2V0cGFpcihzdHJ1Y3Qgc29ja2V0ICpzb2NrYSwKIAkJICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzb2NrZXQgKnNvY2tiKQpAQCAtMzAxNCwxMyArMzAxMiwxMyBAQCBzdGF0aWMgaW50IHNtYWNrX3NobV9zaG1jdGwoc3RydWN0IGtlcm5faXBjX3Blcm0gKmlzcCwgaW50IGNtZCkKICAqCiAgKiBSZXR1cm5zIDAgaWYgY3VycmVudCBoYXMgdGhlIHJlcXVlc3RlZCBhY2Nlc3MsIGVycm9yIGNvZGUgb3RoZXJ3aXNlCiAgKi8KLXN0YXRpYyBpbnQgc21hY2tfc2htX3NobWF0KHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGMsIGNoYXIgX191c2VyICpzaG1hZGRyLAorc3RhdGljIGludCBzbWFja19zaG1fc2htYXQoc3RydWN0IGtlcm5faXBjX3Blcm0gKmlzcCwgY2hhciBfX3VzZXIgKnNobWFkZHIsCiAJCQkgICBpbnQgc2htZmxnKQogewogCWludCBtYXk7CiAKIAltYXkgPSBzbWFja19mbGFnc190b19tYXkoc2htZmxnKTsKLQlyZXR1cm4gc21rX2N1cmFjY19zaG0oaXBjLCBtYXkpOworCXJldHVybiBzbWtfY3VyYWNjX3NobShpc3AsIG1heSk7CiB9CiAKIC8qKgpAQCAtMzkyNSw2ICszOTIzLDggQEAgc3RhdGljIGludCBzbWFja19zb2NrZXRfc29ja19yY3Zfc2tiKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCXNrcCA9IHNtYWNrX2lwdjZob3N0X2xhYmVsKCZzYWRkKTsKIAkJaWYgKHNrcCA9PSBOVUxMKQogCQkJc2twID0gc21hY2tfbmV0X2FtYmllbnQ7CisJCWlmIChza2IgPT0gTlVMTCkKKwkJCWJyZWFrOwogI2lmZGVmIENPTkZJR19BVURJVAogCQlzbWtfYWRfaW5pdF9uZXQoJmFkLCBfX2Z1bmNfXywgTFNNX0FVRElUX0RBVEFfTkVULCAmbmV0KTsKIAkJYWQuYS51Lm5ldC0+ZmFtaWx5ID0gZmFtaWx5OwpAQCAtNDc2Miw3ICs0NzYyLDcgQEAgc3RhdGljIF9faW5pdCB2b2lkIGluaXRfc21hY2tfa25vd25fbGlzdCh2b2lkKQogLyoqCiAgKiBzbWFja19pbml0IC0gaW5pdGlhbGl6ZSB0aGUgc21hY2sgc3lzdGVtCiAgKgotICogUmV0dXJucyAwCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLUVOT01FTSBpcyB0aGVyZSdzIG5vIG1lbW9yeQogICovCiBzdGF0aWMgX19pbml0IGludCBzbWFja19pbml0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3BjbV9uYXRpdmUuYyBiL3NvdW5kL2NvcmUvcGNtX25hdGl2ZS5jCmluZGV4IDExZTY1M2MuLjkxYzZhZDUgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvcGNtX25hdGl2ZS5jCisrKyBiL3NvdW5kL2NvcmUvcGNtX25hdGl2ZS5jCkBAIC0yMjAsMTMgKzIyMCwxMiBAQCBzdGF0aWMgYm9vbCBod19zdXBwb3J0X21tYXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJaWYgKCEoc3Vic3RyZWFtLT5ydW50aW1lLT5ody5pbmZvICYgU05EUlZfUENNX0lORk9fTU1BUCkpCiAJCXJldHVybiBmYWxzZTsKLQkvKiBhcmNoaXRlY3R1cmUgc3VwcG9ydHMgZG1hX21tYXBfY29oZXJlbnQoKT8gKi8KLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX05PX0NPSEVSRU5UX0RNQV9NTUFQKSB8fCAhZGVmaW5lZChDT05GSUdfSEFTX0RNQSkKLQlpZiAoIXN1YnN0cmVhbS0+b3BzLT5tbWFwICYmCi0JICAgIHN1YnN0cmVhbS0+ZG1hX2J1ZmZlci5kZXYudHlwZSA9PSBTTkRSVl9ETUFfVFlQRV9ERVYpCi0JCXJldHVybiBmYWxzZTsKLSNlbmRpZgotCXJldHVybiB0cnVlOworCisJaWYgKHN1YnN0cmVhbS0+b3BzLT5tbWFwIHx8CisJICAgIHN1YnN0cmVhbS0+ZG1hX2J1ZmZlci5kZXYudHlwZSAhPSBTTkRSVl9ETUFfVFlQRV9ERVYpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIGRtYV9jYW5fbW1hcChzdWJzdHJlYW0tPmRtYV9idWZmZXIuZGV2LmRldik7CiB9CiAKIHN0YXRpYyBpbnQgY29uc3RyYWluX21hc2tfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLApkaWZmIC0tZ2l0IGEvc291bmQvZmlyZXdpcmUvZGljZS9kaWNlLWFsZXNpcy5jIGIvc291bmQvZmlyZXdpcmUvZGljZS9kaWNlLWFsZXNpcy5jCmluZGV4IDIxODI5MmIuLmY1YjMyNTIgMTAwNjQ0Ci0tLSBhL3NvdW5kL2ZpcmV3aXJlL2RpY2UvZGljZS1hbGVzaXMuYworKysgYi9zb3VuZC9maXJld2lyZS9kaWNlL2RpY2UtYWxlc2lzLmMKQEAgLTE1LDcgKzE1LDcgQEAgYWxlc2lzX2lvMTRfdHhfcGNtX2Noc1tNQVhfU1RSRUFNU11bU05EX0RJQ0VfUkFURV9NT0RFX0NPVU5UXSA9IHsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludAogYWxlc2lzX2lvMjZfdHhfcGNtX2Noc1tNQVhfU1RSRUFNU11bU05EX0RJQ0VfUkFURV9NT0RFX0NPVU5UXSA9IHsKLQl7MTAsIDEwLCA4fSwJLyogVHgwID0gQW5hbG9nICsgUy9QRElGLiAqLworCXsxMCwgMTAsIDR9LAkvKiBUeDAgPSBBbmFsb2cgKyBTL1BESUYuICovCiAJezE2LCA4LCAwfSwJLyogVHgxID0gQURBVDEgKyBBREFUMi4gKi8KIH07CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMgYi9zb3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jCmluZGV4IDkxZTcxYmUuLjI0MGY0Y2EgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMKKysrIGIvc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYwpAQCAtMjQ4NSw4ICsyNDg1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGF6eF9pZHNbXSA9IHsKIAkJCSBBWlhfRENBUFNfUE1fUlVOVElNRSB9LAogCS8qIEFNRCBSYXZlbiAqLwogCXsgUENJX0RFVklDRSgweDEwMjIsIDB4MTVlMyksCi0JICAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX0dFTkVSSUMgfCBBWlhfRENBUFNfUFJFU0VUX0FUSV9TQiB8Ci0JCQkgQVpYX0RDQVBTX1BNX1JVTlRJTUUgfSwKKwkgIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfR0VORVJJQyB8IEFaWF9EQ0FQU19QUkVTRVRfQU1EX1NCIH0sCiAJLyogQVRJIEhETUkgKi8KIAl7IFBDSV9ERVZJQ0UoMHgxMDAyLCAweDAwMDIpLAogCSAgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9BVElIRE1JX05TIHwgQVpYX0RDQVBTX1BSRVNFVF9BVElfSERNSV9OUyB9LApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9hbmFsb2cuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfYW5hbG9nLmMKaW5kZXggZTI4Mzk2Ni4uYmM5ZGQ4ZSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9hbmFsb2cuYworKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2FuYWxvZy5jCkBAIC0zNTcsNiArMzU3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoZGFfZml4dXAgYWQxOTg2YV9maXh1cHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNpX3F1aXJrIGFkMTk4NmFfZml4dXBfdGJsW10gPSB7CiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MzBhZiwgIkhQIEIyODAwIiwgQUQxOTg2QV9GSVhVUF9MQVBUT1BfSU1JQyksCisJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4MTE1MywgIkFTVVMgTTlWIiwgQUQxOTg2QV9GSVhVUF9MQVBUT1BfSU1JQyksCiAJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4MTQ0MywgIkFTVVMgWjk5SGUiLCBBRDE5ODZBX0ZJWFVQX0VBUEQpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDE0NDcsICJBU1VTIEE4Sk4iLCBBRDE5ODZBX0ZJWFVQX0VBUEQpLAogCVNORF9QQ0lfUVVJUktfTUFTSygweDEwNDMsIDB4ZmYwMCwgMHg4MTAwLCAiQVNVUyBQNSIsIEFEMTk4NkFfRklYVVBfM1NUQUNLKSwKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMKaW5kZXggZGExNjk1NC4uYjAwMGIzNiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMKKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMKQEAgLTU4MTcsNiArNTgxNyw3IEBAIGVudW0gewogCUFMQzI5Ml9GSVhVUF9ERUxMX0U3WCwKIAlBTEMyOTJfRklYVVBfRElTQUJMRV9BQU1JWCwKIAlBTEMyOTNfRklYVVBfRElTQUJMRV9BQU1JWF9NVUxUSUpBQ0ssCisJQUxDMjk4X0ZJWFVQX0FMSUVOV0FSRV9NSUNfTk9fUFJFU0VOQ0UsCiAJQUxDMjk4X0ZJWFVQX0RFTEwxX01JQ19OT19QUkVTRU5DRSwKIAlBTEMyOThfRklYVVBfREVMTF9BSU9fTUlDX05PX1BSRVNFTkNFLAogCUFMQzI3NV9GSVhVUF9ERUxMX1hQUywKQEAgLTU4NzEsNiArNTg3Miw3IEBAIGVudW0gewogCUFMQzI1Nl9GSVhVUF9BU1VTX01JQ19OT19QUkVTRU5DRSwKIAlBTEMyOTlfRklYVVBfUFJFREFUT1JfU1BLLAogCUFMQzI5NF9GSVhVUF9BU1VTX0lOVFNQS19IRUFEU0VUX01JQywKKwlBTEMyNTZfRklYVVBfTUVESU9OX0hFQURTRVRfTk9fUFJFU0VOQ0UsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGhkYV9maXh1cCBhbGMyNjlfZml4dXBzW10gPSB7CkBAIC02NTA2LDYgKzY1MDgsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoZGFfZml4dXAgYWxjMjY5X2ZpeHVwc1tdID0gewogCQkuY2hhaW5lZCA9IHRydWUsCiAJCS5jaGFpbl9pZCA9IEFMQzI5Ml9GSVhVUF9ESVNBQkxFX0FBTUlYCiAJfSwKKwlbQUxDMjk4X0ZJWFVQX0FMSUVOV0FSRV9NSUNfTk9fUFJFU0VOQ0VdID0geworCQkudHlwZSA9IEhEQV9GSVhVUF9QSU5TLAorCQkudi5waW5zID0gKGNvbnN0IHN0cnVjdCBoZGFfcGludGJsW10pIHsKKwkJCXsgMHgxOCwgMHgwMWExOTEzYyB9LCAvKiBoZWFkc2V0IG1pYyB3L28gamFjayBkZXRlY3QgKi8KKwkJCXsgfQorCQl9LAorCQkuY2hhaW5lZF9iZWZvcmUgPSB0cnVlLAorCQkuY2hhaW5faWQgPSBBTEMyNjlfRklYVVBfSEVBRFNFVF9NT0RFLAorCX0sCiAJW0FMQzI5OF9GSVhVUF9ERUxMMV9NSUNfTk9fUFJFU0VOQ0VdID0gewogCQkudHlwZSA9IEhEQV9GSVhVUF9QSU5TLAogCQkudi5waW5zID0gKGNvbnN0IHN0cnVjdCBoZGFfcGludGJsW10pIHsKQEAgLTY5MjcsNiArNjkzOCwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhkYV9maXh1cCBhbGMyNjlfZml4dXBzW10gPSB7CiAJCS5jaGFpbmVkID0gdHJ1ZSwKIAkJLmNoYWluX2lkID0gQUxDMjY5X0ZJWFVQX0hFQURTRVRfTU9ERV9OT19IUF9NSUMKIAl9LAorCVtBTEMyNTZfRklYVVBfTUVESU9OX0hFQURTRVRfTk9fUFJFU0VOQ0VdID0geworCQkudHlwZSA9IEhEQV9GSVhVUF9QSU5TLAorCQkudi5waW5zID0gKGNvbnN0IHN0cnVjdCBoZGFfcGludGJsW10pIHsKKwkJCXsgMHgxOSwgMHgwNGExMTA0MCB9LAorCQkJeyAweDIxLCAweDA0MjExMDIwIH0sCisJCQl7IH0KKwkJfSwKKwkJLmNoYWluZWQgPSB0cnVlLAorCQkuY2hhaW5faWQgPSBBTEMyNTZfRklYVVBfQVNVU19IRUFEU0VUX01PREUKKwl9LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNpX3F1aXJrIGFsYzI2OV9maXh1cF90YmxbXSA9IHsKQEAgLTcxOTAsNiArNzIxMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBhbGMyNjlfZml4dXBfdGJsW10gPSB7CiAJU05EX1BDSV9RVUlSSygweDE3YWEsIDB4OWU1NCwgIkxFTk9WTyBOQiIsIEFMQzI2OV9GSVhVUF9MRU5PVk9fRUFQRCksCiAJU05EX1BDSV9RVUlSSygweDE5ZTUsIDB4MzIwNCwgIkh1YXdlaSBNQUNILVdYOSIsIEFMQzI1Nl9GSVhVUF9IVUFXRUlfTUFDSF9XWDlfUElOUyksCiAJU05EX1BDSV9RVUlSSygweDFiN2QsIDB4YTgzMSwgIk9yZGlzc2ltbyBFVkUyICIsIEFMQzI2OVZCX0ZJWFVQX09SRElTU0lNT19FVkUyKSwgLyogQWxzbyBrbm93biBhcyBNYWxhdGEgUEMtQjEzMDMgKi8KKwlTTkRfUENJX1FVSVJLKDB4MTBlYywgMHgxMThjLCAiTWVkaW9uIEVFNDI1NCBNRDYyMTAwIiwgQUxDMjU2X0ZJWFVQX01FRElPTl9IRUFEU0VUX05PX1BSRVNFTkNFKSwKIAogI2lmIDAKIAkvKiBCZWxvdyBpcyBhIHF1aXJrIHRhYmxlIHRha2VuIGZyb20gdGhlIG9sZCBjb2RlLgpAQCAtNzM1OCw2ICs3MzgwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoZGFfbW9kZWxfZml4dXAgYWxjMjY5X2ZpeHVwX21vZGVsc1tdID0gewogCXsuaWQgPSBBTEMyOTVfRklYVVBfQ0hST01FX0JPT0ssIC5uYW1lID0gImFsYy1jaHJvbWUtYm9vayJ9LAogCXsuaWQgPSBBTEMyOTlfRklYVVBfUFJFREFUT1JfU1BLLCAubmFtZSA9ICJwcmVkYXRvci1zcGsifSwKIAl7LmlkID0gQUxDMjk4X0ZJWFVQX0hVQVdFSV9NQlhfU1RFUkVPLCAubmFtZSA9ICJodWF3ZWktbWJ4LXN0ZXJlbyJ9LAorCXsuaWQgPSBBTEMyNTZfRklYVVBfTUVESU9OX0hFQURTRVRfTk9fUFJFU0VOQ0UsIC5uYW1lID0gImFsYzI1Ni1tZWRpb24taGVhZHNldCJ9LAogCXt9CiB9OwogI2RlZmluZSBBTEMyMjVfU1RBTkRBUkRfUElOUyBcCkBAIC03NzcwLDYgKzc3OTMsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfaGRhX3Bpbl9xdWlyayBhbGMyNjlfcGluX2ZpeHVwX3RibFtdID0gewogCQl7MHgxNywgMHg5MDE3MDExMH0sCiAJCXsweDFhLCAweDAzMDExMDIwfSwKIAkJezB4MjEsIDB4MDMyMTEwMzB9KSwKKwlTTkRfSERBX1BJTl9RVUlSSygweDEwZWMwMjk4LCAweDEwMjgsICJEZWxsIiwgQUxDMjk4X0ZJWFVQX0FMSUVOV0FSRV9NSUNfTk9fUFJFU0VOQ0UsCisJCXsweDEyLCAweGI3YTYwMTQwfSwKKwkJezB4MTcsIDB4OTAxNzAxMTB9LAorCQl7MHgxYSwgMHgwM2ExMTAzMH0sCisJCXsweDIxLCAweDAzMjExMDIwfSksCiAJU05EX0hEQV9QSU5fUVVJUksoMHgxMGVjMDI5OSwgMHgxMDI4LCAiRGVsbCIsIEFMQzI2OV9GSVhVUF9ERUxMNF9NSUNfTk9fUFJFU0VOQ0UsCiAJCUFMQzIyNV9TVEFOREFSRF9QSU5TLAogCQl7MHgxMiwgMHhiN2E2MDEzMH0sCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXRtZWwvYXRtZWxfc3NjX2RhaS5jIGIvc291bmQvc29jL2F0bWVsL2F0bWVsX3NzY19kYWkuYwppbmRleCA0OGU5ZWVmLi5jYTYwMzM5IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXRtZWwvYXRtZWxfc3NjX2RhaS5jCisrKyBiL3NvdW5kL3NvYy9hdG1lbC9hdG1lbF9zc2NfZGFpLmMKQEAgLTExNiwxOSArMTE2LDE2IEBAIHN0YXRpYyBzdHJ1Y3QgYXRtZWxfcGNtX2RtYV9wYXJhbXMgc3NjX2RtYV9wYXJhbXNbTlVNX1NTQ19ERVZJQ0VTXVsyXSA9IHsKIHN0YXRpYyBzdHJ1Y3QgYXRtZWxfc3NjX2luZm8gc3NjX2luZm9bTlVNX1NTQ19ERVZJQ0VTXSA9IHsKIAl7CiAJLm5hbWUJCT0gInNzYzAiLAotCS5sb2NrCQk9IF9fU1BJTl9MT0NLX1VOTE9DS0VEKHNzY19pbmZvWzBdLmxvY2spLAogCS5kaXJfbWFzawk9IFNTQ19ESVJfTUFTS19VTlVTRUQsCiAJLmluaXRpYWxpemVkCT0gMCwKIAl9LAogCXsKIAkubmFtZQkJPSAic3NjMSIsCi0JLmxvY2sJCT0gX19TUElOX0xPQ0tfVU5MT0NLRUQoc3NjX2luZm9bMV0ubG9jayksCiAJLmRpcl9tYXNrCT0gU1NDX0RJUl9NQVNLX1VOVVNFRCwKIAkuaW5pdGlhbGl6ZWQJPSAwLAogCX0sCiAJewogCS5uYW1lCQk9ICJzc2MyIiwKLQkubG9jawkJPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzc2NfaW5mb1syXS5sb2NrKSwKIAkuZGlyX21hc2sJPSBTU0NfRElSX01BU0tfVU5VU0VELAogCS5pbml0aWFsaXplZAk9IDAsCiAJfSwKQEAgLTMxNywxMyArMzE0LDEwIEBAIHN0YXRpYyBpbnQgYXRtZWxfc3NjX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCiAKIAlzbmRfc29jX2RhaV9zZXRfZG1hX2RhdGEoZGFpLCBzdWJzdHJlYW0sIGRtYV9wYXJhbXMpOwogCi0Jc3Bpbl9sb2NrX2lycSgmc3NjX3AtPmxvY2spOwotCWlmIChzc2NfcC0+ZGlyX21hc2sgJiBkaXJfbWFzaykgewotCQlzcGluX3VubG9ja19pcnEoJnNzY19wLT5sb2NrKTsKKwlpZiAoc3NjX3AtPmRpcl9tYXNrICYgZGlyX21hc2spCiAJCXJldHVybiAtRUJVU1k7Ci0JfQorCiAJc3NjX3AtPmRpcl9tYXNrIHw9IGRpcl9tYXNrOwotCXNwaW5fdW5sb2NrX2lycSgmc3NjX3AtPmxvY2spOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zNTUsNyArMzQ5LDYgQEAgc3RhdGljIHZvaWQgYXRtZWxfc3NjX3NodXRkb3duKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAogCiAJZGlyX21hc2sgPSAxIDw8IGRpcjsKIAotCXNwaW5fbG9ja19pcnEoJnNzY19wLT5sb2NrKTsKIAlzc2NfcC0+ZGlyX21hc2sgJj0gfmRpcl9tYXNrOwogCWlmICghc3NjX3AtPmRpcl9tYXNrKSB7CiAJCWlmIChzc2NfcC0+aW5pdGlhbGl6ZWQpIHsKQEAgLTM2OSw3ICszNjIsNiBAQCBzdGF0aWMgdm9pZCBhdG1lbF9zc2Nfc2h1dGRvd24oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCiAJCXNzY19wLT5jbXJfZGl2ID0gc3NjX3AtPnRjbXJfcGVyaW9kID0gc3NjX3AtPnJjbXJfcGVyaW9kID0gMDsKIAkJc3NjX3AtPmZvcmNlZF9kaXZpZGVyID0gMDsKIAl9Ci0Jc3Bpbl91bmxvY2tfaXJxKCZzc2NfcC0+bG9jayk7CiAKIAkvKiBTaHV0ZG93biB0aGUgU1NDIGNsb2NrLiAqLwogCXByX2RlYnVnKCJhdG1lbF9zc2NfZGFpOiBTdG9wcGluZyBjbG9ja1xuIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXRtZWwvYXRtZWxfc3NjX2RhaS5oIGIvc291bmQvc29jL2F0bWVsL2F0bWVsX3NzY19kYWkuaAppbmRleCBhZTc2NGNiLi4zNDcwYjk2IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXRtZWwvYXRtZWxfc3NjX2RhaS5oCisrKyBiL3NvdW5kL3NvYy9hdG1lbC9hdG1lbF9zc2NfZGFpLmgKQEAgLTkzLDcgKzkzLDYgQEAgc3RydWN0IGF0bWVsX3NzY19zdGF0ZSB7CiBzdHJ1Y3QgYXRtZWxfc3NjX2luZm8gewogCWNoYXIgKm5hbWU7CiAJc3RydWN0IHNzY19kZXZpY2UgKnNzYzsKLQlzcGlubG9ja190IGxvY2s7CS8qIGxvY2sgZm9yIGRpcl9tYXNrICovCiAJdW5zaWduZWQgc2hvcnQgZGlyX21hc2s7CS8qIDA9dW51c2VkLCAxPXBsYXliYWNrLCAyPWNhcHR1cmUgKi8KIAl1bnNpZ25lZCBzaG9ydCBpbml0aWFsaXplZDsJLyogdHJ1ZSBpZiBTU0MgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgKi8KIAl1bnNpZ25lZCBzaG9ydCBkYWlmbXQ7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcKaW5kZXggODkyMzgzNC4uMjI5Y2M4OSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZwpAQCAtNTEsNyArNTEsNyBAQAogCXNlbGVjdCBTTkRfU09DX0JUX1NDTwogCXNlbGVjdCBTTkRfU09DX0JEMjg2MjMKIAlzZWxlY3QgU05EX1NPQ19DUTAwOTNWQwotCXNlbGVjdCBTTkRfU09DX0NST1NfRUNfQ09ERUMgaWYgTUZEX0NST1NfRUMKKwlzZWxlY3QgU05EX1NPQ19DUk9TX0VDX0NPREVDIGlmIENST1NfRUMKIAlzZWxlY3QgU05EX1NPQ19DUzM1TDMyIGlmIEkyQwogCXNlbGVjdCBTTkRfU09DX0NTMzVMMzMgaWYgSTJDCiAJc2VsZWN0IFNORF9TT0NfQ1MzNUwzNCBpZiBJMkMKQEAgLTQ3Nyw3ICs0NzcsNyBAQAogCiBjb25maWcgU05EX1NPQ19DUk9TX0VDX0NPREVDCiAJdHJpc3RhdGUgImNvZGVjIGRyaXZlciBmb3IgQ2hyb21lT1MgRUMiCi0JZGVwZW5kcyBvbiBNRkRfQ1JPU19FQworCWRlcGVuZHMgb24gQ1JPU19FQwogCWhlbHAKIAkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IHdpbGwgZ2V0IHN1cHBvcnQgZm9yIHRoZQogCSAgQ2hyb21lT1MgRW1iZWRkZWQgQ29udHJvbGxlcidzIEF1ZGlvIENvZGVjLgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9jcm9zX2VjX2NvZGVjLmMgYi9zb3VuZC9zb2MvY29kZWNzL2Nyb3NfZWNfY29kZWMuYwppbmRleCA4NWJlZWYyLi4zYzFiZDI0IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL2Nyb3NfZWNfY29kZWMuYworKysgYi9zb3VuZC9zb2MvY29kZWNzL2Nyb3NfZWNfY29kZWMuYwpAQCAtOSw5ICs5LDkgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L21mZC9jcm9zX2VjLmg+Ci0jaW5jbHVkZSA8bGludXgvbWZkL2Nyb3NfZWNfY29tbWFuZHMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfcHJvdG8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxzb3VuZC9wY20uaD4KICNpbmNsdWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3BjbTMxNjhhLmMgYi9zb3VuZC9zb2MvY29kZWNzL3BjbTMxNjhhLmMKaW5kZXggNTBlZDg2ZC4uODhiNzU2OSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9wY20zMTY4YS5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvcGNtMzE2OGEuYwpAQCAtMjEsOCArMjEsNyBAQAogCiAjZGVmaW5lIFBDTTMxNjhBX0ZPUk1BVFMgKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgXAogCQkJIFNORFJWX1BDTV9GTVRCSVRfUzI0XzNMRSB8IFwKLQkJCSBTTkRSVl9QQ01fRk1UQklUX1MyNF9MRSB8IFwKLQkJCSBTTkRSVl9QQ01fRk1UQklUX1MzMl9MRSkKKwkJCSBTTkRSVl9QQ01fRk1UQklUX1MyNF9MRSkKIAogI2RlZmluZSBQQ00zMTY4QV9GTVRfSTJTCQkweDAKICNkZWZpbmUgUENNMzE2OEFfRk1UX0xFRlRfSgkJMHgxCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZnNsL2ZzbF9zYWkuYyBiL3NvdW5kL3NvYy9mc2wvZnNsX3NhaS5jCmluZGV4IGVmMGI3NDYuLmI1MTdlNGIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9mc2wvZnNsX3NhaS5jCisrKyBiL3NvdW5kL3NvYy9mc2wvZnNsX3NhaS5jCkBAIC02MjgsNiArNjI4LDE2IEBAIHN0YXRpYyBpbnQgZnNsX3NhaV9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAogCQkJICAgRlNMX1NBSV9DUjNfVFJDRV9NQVNLLAogCQkJICAgRlNMX1NBSV9DUjNfVFJDRSk7CiAKKwkvKgorCSAqIEVETUEgY29udHJvbGxlciBuZWVkcyBwZXJpb2Qgc2l6ZSB0byBiZSBhIG11bHRpcGxlIG9mCisJICogdHgvcnggbWF4YnVyc3QKKwkgKi8KKwlpZiAoc2FpLT5zb2NfZGF0YS0+dXNlX2VkbWEpCisJCXNuZF9wY21faHdfY29uc3RyYWludF9zdGVwKHN1YnN0cmVhbS0+cnVudGltZSwgMCwKKwkJCQkJICAgU05EUlZfUENNX0hXX1BBUkFNX1BFUklPRF9TSVpFLAorCQkJCQkgICB0eCA/IHNhaS0+ZG1hX3BhcmFtc190eC5tYXhidXJzdCA6CisJCQkJCSAgIHNhaS0+ZG1hX3BhcmFtc19yeC5tYXhidXJzdCk7CisKIAlyZXQgPSBzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbGlzdChzdWJzdHJlYW0tPnJ1bnRpbWUsIDAsCiAJCQlTTkRSVl9QQ01fSFdfUEFSQU1fUkFURSwgJmZzbF9zYWlfcmF0ZV9jb25zdHJhaW50cyk7CiAKQEAgLTEwMjYsMzAgKzEwMzYsMzUgQEAgc3RhdGljIGludCBmc2xfc2FpX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZzbF9zYWlfc29jX2RhdGEgZnNsX3NhaV92ZjYxMF9kYXRhID0gewogCS51c2VfaW14X3BjbSA9IGZhbHNlLAorCS51c2VfZWRtYSA9IGZhbHNlLAogCS5maWZvX2RlcHRoID0gMzIsCiAJLnJlZ19vZmZzZXQgPSAwLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmc2xfc2FpX3NvY19kYXRhIGZzbF9zYWlfaW14NnN4X2RhdGEgPSB7CiAJLnVzZV9pbXhfcGNtID0gdHJ1ZSwKKwkudXNlX2VkbWEgPSBmYWxzZSwKIAkuZmlmb19kZXB0aCA9IDMyLAogCS5yZWdfb2Zmc2V0ID0gMCwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZnNsX3NhaV9zb2NfZGF0YSBmc2xfc2FpX2lteDd1bHBfZGF0YSA9IHsKIAkudXNlX2lteF9wY20gPSB0cnVlLAorCS51c2VfZWRtYSA9IGZhbHNlLAogCS5maWZvX2RlcHRoID0gMTYsCiAJLnJlZ19vZmZzZXQgPSA4LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmc2xfc2FpX3NvY19kYXRhIGZzbF9zYWlfaW14OG1xX2RhdGEgPSB7CiAJLnVzZV9pbXhfcGNtID0gdHJ1ZSwKKwkudXNlX2VkbWEgPSBmYWxzZSwKIAkuZmlmb19kZXB0aCA9IDEyOCwKIAkucmVnX29mZnNldCA9IDgsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZzbF9zYWlfc29jX2RhdGEgZnNsX3NhaV9pbXg4cW1fZGF0YSA9IHsKIAkudXNlX2lteF9wY20gPSB0cnVlLAorCS51c2VfZWRtYSA9IHRydWUsCiAJLmZpZm9fZGVwdGggPSA2NCwKIAkucmVnX29mZnNldCA9IDAsCiB9OwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2ZzbC9mc2xfc2FpLmggYi9zb3VuZC9zb2MvZnNsL2ZzbF9zYWkuaAppbmRleCBiMTJjYjU3Li43NmIxNWRlIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL2ZzbF9zYWkuaAorKysgYi9zb3VuZC9zb2MvZnNsL2ZzbF9zYWkuaApAQCAtMTU3LDYgKzE1Nyw3IEBACiAKIHN0cnVjdCBmc2xfc2FpX3NvY19kYXRhIHsKIAlib29sIHVzZV9pbXhfcGNtOworCWJvb2wgdXNlX2VkbWE7CiAJdW5zaWduZWQgaW50IGZpZm9fZGVwdGg7CiAJdW5zaWduZWQgaW50IHJlZ19vZmZzZXQ7CiB9OwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2p6NDc0MC9LY29uZmlnIGIvc291bmQvc29jL2p6NDc0MC9LY29uZmlnCmluZGV4IDZiNzU3MTYuLmU3MmY4MjYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9qejQ3NDAvS2NvbmZpZworKysgYi9zb3VuZC9zb2Mvano0NzQwL0tjb25maWcKQEAgLTEsMzAgKzEsOSBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci1jb25maWcgU05EX0paNDc0MF9TT0MKLQl0cmlzdGF0ZSAiU29DIEF1ZGlvIGZvciBJbmdlbmljIEpaNDc0MCBTb0MiCi0JZGVwZW5kcyBvbiBNSVBTIHx8IENPTVBJTEVfVEVTVAotCXNlbGVjdCBTTkRfU09DX0dFTkVSSUNfRE1BRU5HSU5FX1BDTQotCWhlbHAKLQkgIFNheSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIGNvZGVjcyBhdHRhY2hlZCB0bwotCSAgdGhlIEpaNDc0MCBJMlMgaW50ZXJmYWNlLiBZb3Ugd2lsbCBhbHNvIG5lZWQgdG8gc2VsZWN0IHRoZSBhdWRpbwotCSAgaW50ZXJmYWNlcyB0byBzdXBwb3J0IGJlbG93LgotCi1pZiBTTkRfSlo0NzQwX1NPQwotCiBjb25maWcgU05EX0paNDc0MF9TT0NfSTJTCiAJdHJpc3RhdGUgIlNvQyBBdWRpbyAoSTJTIHByb3RvY29sKSBmb3IgSW5nZW5pYyBKWjQ3NDAgU29DIgorCWRlcGVuZHMgb24gTUlQUyB8fCBDT01QSUxFX1RFU1QKIAlkZXBlbmRzIG9uIEhBU19JT01FTQorCXNlbGVjdCBTTkRfU09DX0dFTkVSSUNfRE1BRU5HSU5FX1BDTQogCWhlbHAKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIHVzZSBJMlMgcHJvdG9jb2wgYW5kIEkyUyBjb2RlYyBvbiBJbmdlbmljIEpaNDc0MAogCSAgYmFzZWQgYm9hcmRzLgotCi1jb25maWcgU05EX0paNDc0MF9TT0NfUUlfTEI2MAotCXRyaXN0YXRlICJTb0MgQXVkaW8gc3VwcG9ydCBmb3IgUWkgTEI2MCIKLQlkZXBlbmRzIG9uIEhBU19JT01FTQotCWRlcGVuZHMgb24gSlo0NzQwX1FJX0xCNjAgfHwgQ09NUElMRV9URVNUCi0Jc2VsZWN0IFNORF9KWjQ3NDBfU09DX0kyUwotICAgIHNlbGVjdCBTTkRfU09DX0paNDc0MF9DT0RFQwotCWhlbHAKLQkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBBU29DIGF1ZGlvIG9uIHRoZSBRaSBMQjYwIGJvYXJkCi0JICBhLmsuYSBRaSBCZW4gTmFub05vdGUuCi0KLWVuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvano0NzQwL01ha2VmaWxlIGIvc291bmQvc29jL2p6NDc0MC9NYWtlZmlsZQppbmRleCBmYjEwZTlhLi5mODcwMWM5IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvano0NzQwL01ha2VmaWxlCisrKyBiL3NvdW5kL3NvYy9qejQ3NDAvTWFrZWZpbGUKQEAgLTUsOCArNSwzIEBACiBzbmQtc29jLWp6NDc0MC1pMnMtb2JqcyA6PSBqejQ3NDAtaTJzLm8KIAogb2JqLSQoQ09ORklHX1NORF9KWjQ3NDBfU09DX0kyUykgKz0gc25kLXNvYy1qejQ3NDAtaTJzLm8KLQotIyBKejQ3NDAgTWFjaGluZSBTdXBwb3J0Ci1zbmQtc29jLXFpLWxiNjAtb2JqcyA6PSBxaV9sYjYwLm8KLQotb2JqLSQoQ09ORklHX1NORF9KWjQ3NDBfU09DX1FJX0xCNjApICs9IHNuZC1zb2MtcWktbGI2MC5vCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvano0NzQwL3FpX2xiNjAuYyBiL3NvdW5kL3NvYy9qejQ3NDAvcWlfbGI2MC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZWY2ZjQxLi4wMDAwMDAwCi0tLSBhL3NvdW5kL3NvYy9qejQ3NDAvcWlfbGI2MC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIExhcnMtUGV0ZXIgQ2xhdXNlbiA8bGFyc0BtZXRhZm9vLmRlPgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8c291bmQvY29yZS5oPgotI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgotI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLQotc3RydWN0IHFpX2xiNjAgewotCXN0cnVjdCBncGlvX2Rlc2MgKnNuZF9ncGlvOwotCXN0cnVjdCBncGlvX2Rlc2MgKmFtcF9ncGlvOwotfTsKLQotc3RhdGljIGludCBxaV9sYjYwX3Nwa19ldmVudChzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqd2lkZ2V0LAotCQkJICAgICBzdHJ1Y3Qgc25kX2tjb250cm9sICpjdHJsLCBpbnQgZXZlbnQpCi17Ci0Jc3RydWN0IHFpX2xiNjAgKnFpX2xiNjAgPSBzbmRfc29jX2NhcmRfZ2V0X2RydmRhdGEod2lkZ2V0LT5kYXBtLT5jYXJkKTsKLQlpbnQgb24gPSAhU05EX1NPQ19EQVBNX0VWRU5UX09GRihldmVudCk7Ci0KLQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocWlfbGI2MC0+c25kX2dwaW8sIG9uKTsKLQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocWlfbGI2MC0+YW1wX2dwaW8sIG9uKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgcWlfbGI2MF93aWRnZXRzW10gPSB7Ci0JU05EX1NPQ19EQVBNX1NQSygiU3BlYWtlciIsIHFpX2xiNjBfc3BrX2V2ZW50KSwKLQlTTkRfU09DX0RBUE1fTUlDKCJNaWMiLCBOVUxMKSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIHFpX2xiNjBfcm91dGVzW10gPSB7Ci0JeyJNaWMiLCBOVUxMLCAiTUlDIn0sCi0JeyJTcGVha2VyIiwgTlVMTCwgIkxPVVQifSwKLQl7IlNwZWFrZXIiLCBOVUxMLCAiUk9VVCJ9LAotfTsKLQotU05EX1NPQ19EQUlMSU5LX0RFRlMoaGlmaSwKLQlEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9DUFUoImp6NDc0MC1pMnMiKSksCi0JREFJTElOS19DT01QX0FSUkFZKENPTVBfQ09ERUMoImp6NDc0MC1jb2RlYyIsICJqejQ3NDAtaGlmaSIpKSwKLQlEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9QTEFURk9STSgiano0NzQwLWkycyIpKSk7Ci0KLXN0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayBxaV9sYjYwX2RhaSA9IHsKLQkubmFtZSA9ICJqejQ3NDAiLAotCS5zdHJlYW1fbmFtZSA9ICJqejQ3NDAiLAotCS5kYWlfZm10ID0gU05EX1NPQ19EQUlGTVRfSTJTIHwgU05EX1NPQ19EQUlGTVRfTkJfTkYgfAotCQlTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNLAotCVNORF9TT0NfREFJTElOS19SRUcoaGlmaSksCi19OwotCi1zdGF0aWMgc3RydWN0IHNuZF9zb2NfY2FyZCBxaV9sYjYwX2NhcmQgPSB7Ci0JLm5hbWUgPSAiUUkgTEI2MCIsCi0JLm93bmVyID0gVEhJU19NT0RVTEUsCi0JLmRhaV9saW5rID0gJnFpX2xiNjBfZGFpLAotCS5udW1fbGlua3MgPSAxLAotCi0JLmRhcG1fd2lkZ2V0cyA9IHFpX2xiNjBfd2lkZ2V0cywKLQkubnVtX2RhcG1fd2lkZ2V0cyA9IEFSUkFZX1NJWkUocWlfbGI2MF93aWRnZXRzKSwKLQkuZGFwbV9yb3V0ZXMgPSBxaV9sYjYwX3JvdXRlcywKLQkubnVtX2RhcG1fcm91dGVzID0gQVJSQVlfU0laRShxaV9sYjYwX3JvdXRlcyksCi0JLmZ1bGx5X3JvdXRlZCA9IHRydWUsCi19OwotCi1zdGF0aWMgaW50IHFpX2xiNjBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlzdHJ1Y3QgcWlfbGI2MCAqcWlfbGI2MDsKLQlzdHJ1Y3Qgc25kX3NvY19jYXJkICpjYXJkID0gJnFpX2xiNjBfY2FyZDsKLQotCXFpX2xiNjAgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpxaV9sYjYwKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFxaV9sYjYwKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXFpX2xiNjAtPnNuZF9ncGlvID0gZGV2bV9ncGlvZF9nZXQoJnBkZXYtPmRldiwgInNuZCIsIEdQSU9EX09VVF9MT1cpOwotCWlmIChJU19FUlIocWlfbGI2MC0+c25kX2dwaW8pKQotCQlyZXR1cm4gUFRSX0VSUihxaV9sYjYwLT5zbmRfZ3Bpbyk7Ci0KLQlxaV9sYjYwLT5hbXBfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0KCZwZGV2LT5kZXYsICJhbXAiLCBHUElPRF9PVVRfTE9XKTsKLQlpZiAoSVNfRVJSKHFpX2xiNjAtPmFtcF9ncGlvKSkKLQkJcmV0dXJuIFBUUl9FUlIocWlfbGI2MC0+YW1wX2dwaW8pOwotCi0JY2FyZC0+ZGV2ID0gJnBkZXYtPmRldjsKLQotCXNuZF9zb2NfY2FyZF9zZXRfZHJ2ZGF0YShjYXJkLCBxaV9sYjYwKTsKLQotCXJldHVybiBkZXZtX3NuZF9zb2NfcmVnaXN0ZXJfY2FyZCgmcGRldi0+ZGV2LCBjYXJkKTsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcWlfbGI2MF9kcml2ZXIgPSB7Ci0JLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gInFpLWxiNjAtYXVkaW8iLAotCX0sCi0JLnByb2JlCQk9IHFpX2xiNjBfcHJvYmUsCi19OwotCi1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHFpX2xiNjBfZHJpdmVyKTsKLQotTU9EVUxFX0FVVEhPUigiTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIkFMU0EgU29DIFFJIExCNjAgQXVkaW8gc3VwcG9ydCIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpxaS1sYjYwLWF1ZGlvIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcWNvbS9LY29uZmlnIGIvc291bmQvc29jL3Fjb20vS2NvbmZpZwppbmRleCA4ZTNlODY2Li42MDA4Njg1IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvcWNvbS9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9xY29tL0tjb25maWcKQEAgLTk5LDcgKzk5LDcgQEAKIAogY29uZmlnIFNORF9TT0NfU0RNODQ1CiAJdHJpc3RhdGUgIlNvQyBNYWNoaW5lIGRyaXZlciBmb3IgU0RNODQ1IGJvYXJkcyIKLQlkZXBlbmRzIG9uIFFDT01fQVBSICYmIE1GRF9DUk9TX0VDICYmIEkyQworCWRlcGVuZHMgb24gUUNPTV9BUFIgJiYgQ1JPU19FQyAmJiBJMkMKIAlzZWxlY3QgU05EX1NPQ19RRFNQNgogCXNlbGVjdCBTTkRfU09DX1FDT01fQ09NTU9OCiAJc2VsZWN0IFNORF9TT0NfUlQ1NjYzCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc2gvcmNhci9zc2kuYyBiL3NvdW5kL3NvYy9zaC9yY2FyL3NzaS5jCmluZGV4IGY2YTc0NjYuLmZjNWQwODkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zaC9yY2FyL3NzaS5jCisrKyBiL3NvdW5kL3NvYy9zaC9yY2FyL3NzaS5jCkBAIC0yODYsNiArMjg2LDExIEBAIHN0YXRpYyBpbnQgcnNuZF9zc2lfbWFzdGVyX2Nsa19zdGFydChzdHJ1Y3QgcnNuZF9tb2QgKm1vZCwKIAlpZiAocnNuZF9zc2lfaXNfbXVsdGlfc2xhdmUobW9kLCBpbykpCiAJCXJldHVybiAwOwogCisJaWYgKHJzbmRfcnVudGltZV9pc190ZG1fc3BsaXQoaW8pKQorCQljaGFuID0gcnNuZF9pb19jb252ZXJ0ZWRfY2hhbihpbyk7CisKKwljaGFuID0gcnNuZF9jaGFubmVsX25vcm1hbGl6YXRpb24oY2hhbik7CisKIAlpZiAoc3NpLT51c3JjbnQgPiAwKSB7CiAJCWlmIChzc2ktPnJhdGUgIT0gcmF0ZSkgewogCQkJZGV2X2VycihkZXYsICJTU0kgcGFyZW50L2NoaWxkIHNob3VsZCB1c2Ugc2FtZSByYXRlXG4iKTsKQEAgLTMwMCwxMSArMzA1LDYgQEAgc3RhdGljIGludCByc25kX3NzaV9tYXN0ZXJfY2xrX3N0YXJ0KHN0cnVjdCByc25kX21vZCAqbW9kLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAocnNuZF9ydW50aW1lX2lzX3RkbV9zcGxpdChpbykpCi0JCWNoYW4gPSByc25kX2lvX2NvbnZlcnRlZF9jaGFuKGlvKTsKLQotCWNoYW4gPSByc25kX2NoYW5uZWxfbm9ybWFsaXphdGlvbihjaGFuKTsKLQogCW1haW5fcmF0ZSA9IHJzbmRfc3NpX2Nsa19xdWVyeShyZGFpLCByYXRlLCBjaGFuLCAmaWR4KTsKIAlpZiAoIW1haW5fcmF0ZSkgewogCQlkZXZfZXJyKGRldiwgInVuc3VwcG9ydGVkIGNsb2NrIHJhdGVcbiIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NvYy1jb3JlLmMgYi9zb3VuZC9zb2Mvc29jLWNvcmUuYwppbmRleCAzNWY0OGU5Li44ODk3OGEzIDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc29jLWNvcmUuYworKysgYi9zb3VuZC9zb2Mvc29jLWNvcmUuYwpAQCAtOTc4LDcgKzk3OCw3IEBAIHN0YXRpYyB2b2lkIHNvY19jbGVhbnVwX2NvbXBvbmVudChzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCkKIAkvKiBGb3IgZnJhbWV3b3JrIGxldmVsIHJvYnVzdG5lc3MgKi8KIAlzbmRfc29jX2NvbXBvbmVudF9zZXRfamFjayhjb21wb25lbnQsIE5VTEwsIE5VTEwpOwogCi0JbGlzdF9kZWwoJmNvbXBvbmVudC0+Y2FyZF9saXN0KTsKKwlsaXN0X2RlbF9pbml0KCZjb21wb25lbnQtPmNhcmRfbGlzdCk7CiAJc25kX3NvY19kYXBtX2ZyZWUoc25kX3NvY19jb21wb25lbnRfZ2V0X2RhcG0oY29tcG9uZW50KSk7CiAJc29jX2NsZWFudXBfY29tcG9uZW50X2RlYnVnZnMoY29tcG9uZW50KTsKIAljb21wb25lbnQtPmNhcmQgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3RpL0tjb25maWcgYi9zb3VuZC9zb2MvdGkvS2NvbmZpZwppbmRleCA4N2E5YjlkLi4yOWY2MTA1IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvdGkvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvdGkvS2NvbmZpZwpAQCAtMjAwLDExICsyMDAsMTggQEAKIAogY29uZmlnIFNORF9TT0NfRE0zNjVfVk9JQ0VfQ09ERUMKIAlib29sICJWb2ljZSBDb2RlYyAtIENROTNWQyIKLQlzZWxlY3QgTUZEX0RBVklOQ0lfVk9JQ0VDT0RFQwotCXNlbGVjdCBTTkRfU09DX0NRMDA5M1ZDCiAJaGVscAogCSAgU2F5IFkgaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIFNvQyBPbi1jaGlwIHZvaWNlIGNvZGVjCiBlbmRjaG9pY2UKIAorY29uZmlnIFNORF9TT0NfRE0zNjVfVk9JQ0VfQ09ERUNfTU9EVUxFCisJZGVmX3RyaXN0YXRlIHkKKwlkZXBlbmRzIG9uIFNORF9TT0NfRE0zNjVfVk9JQ0VfQ09ERUMgJiYgU05EX1NPQworCXNlbGVjdCBNRkRfREFWSU5DSV9WT0lDRUNPREVDCisJc2VsZWN0IFNORF9TT0NfQ1EwMDkzVkMKKwloZWxwCisJICBUaGUgaXMgYW4gaW50ZXJuYWwgc3ltYm9sIG5lZWRlZCB0byBlbnN1cmUgdGhhdCB0aGUgY29kZWMKKwkgIGFuZCBNRkQgZHJpdmVyIGNhbiBiZSBidWlsdCBhcyBsb2FkYWJsZSBtb2R1bGVzIGlmIG5lY2Vzc2FyeS4KKwogZW5kbWVudQogCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvcXVpcmtzLmMgYi9zb3VuZC91c2IvcXVpcmtzLmMKaW5kZXggMjVmYWYyZC4uZmJmZGU5OSAxMDA2NDQKLS0tIGEvc291bmQvdXNiL3F1aXJrcy5jCisrKyBiL3NvdW5kL3VzYi9xdWlya3MuYwpAQCAtMTY1OCw2ICsxNjU4LDggQEAgdTY0IHNuZF91c2JfaW50ZXJmYWNlX2RzZF9mb3JtYXRfcXVpcmtzKHN0cnVjdCBzbmRfdXNiX2F1ZGlvICpjaGlwLAogCWNhc2UgMHgyNWNlOiAgLyogTXl0ZWsgZGV2aWNlcyAqLwogCWNhc2UgMHgyNzhiOiAgLyogUm90ZWw/ICovCiAJY2FzZSAweDJhYjY6ICAvKiBUK0EgZGV2aWNlcyAqLworCWNhc2UgMHgzODQyOiAgLyogRVZHQSAqLworCWNhc2UgMHhjNTAyOiAgLyogSGlCeSBkZXZpY2VzICovCiAJCWlmIChmcC0+ZHNkX3JhdykKIAkJCXJldHVybiBTTkRSVl9QQ01fRk1UQklUX0RTRF9VMzJfQkU7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZXMuaCBiL3Rvb2xzL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgKaW5kZXggNTE3MWI5Yy4uMDY1MmQzZSAxMDA2NDQKLS0tIGEvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZXMuaAorKysgYi90b29scy9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCkBAIC0yMzEsNiArMjMxLDggQEAKICNkZWZpbmUgWDg2X0ZFQVRVUkVfVk1NQ0FMTAkJKCA4KjMyKzE1KSAvKiBQcmVmZXIgVk1NQ0FMTCB0byBWTUNBTEwgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfWEVOUFYJCSggOCozMisxNikgLyogIiIgWGVuIHBhcmF2aXJ0dWFsIGd1ZXN0ICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX0VQVF9BRAkJKCA4KjMyKzE3KSAvKiBJbnRlbCBFeHRlbmRlZCBQYWdlIFRhYmxlIGFjY2Vzcy1kaXJ0eSBiaXQgKi8KKyNkZWZpbmUgWDg2X0ZFQVRVUkVfVk1DQUxMCQkoIDgqMzIrMTgpIC8qICIiIEh5cGVydmlzb3Igc3VwcG9ydHMgdGhlIFZNQ0FMTCBpbnN0cnVjdGlvbiAqLworI2RlZmluZSBYODZfRkVBVFVSRV9WTVdfVk1NQ0FMTAkJKCA4KjMyKzE5KSAvKiAiIiBWTXdhcmUgcHJlZmVycyBWTU1DQUxMIGh5cGVyY2FsbCBpbnN0cnVjdGlvbiAqLwogCiAvKiBJbnRlbC1kZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHgwMDAwMDAwNzowIChFQlgpLCB3b3JkIDkgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfRlNHU0JBU0UJCSggOSozMisgMCkgLyogUkRGU0JBU0UsIFdSRlNCQVNFLCBSREdTQkFTRSwgV1JHU0JBU0UgaW5zdHJ1Y3Rpb25zKi8KQEAgLTM1NCw2ICszNTYsNyBAQAogLyogSW50ZWwtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4MDAwMDAwMDc6MCAoRURYKSwgd29yZCAxOCAqLwogI2RlZmluZSBYODZfRkVBVFVSRV9BVlg1MTJfNFZOTklXCSgxOCozMisgMikgLyogQVZYLTUxMiBOZXVyYWwgTmV0d29yayBJbnN0cnVjdGlvbnMgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfQVZYNTEyXzRGTUFQUwkoMTgqMzIrIDMpIC8qIEFWWC01MTIgTXVsdGlwbHkgQWNjdW11bGF0aW9uIFNpbmdsZSBwcmVjaXNpb24gKi8KKyNkZWZpbmUgWDg2X0ZFQVRVUkVfQVZYNTEyX1ZQMklOVEVSU0VDVCAoMTgqMzIrIDgpIC8qIEFWWC01MTIgSW50ZXJzZWN0IGZvciBEL1EgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfTURfQ0xFQVIJCSgxOCozMisxMCkgLyogVkVSVyBjbGVhcnMgQ1BVIGJ1ZmZlcnMgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfVFNYX0ZPUkNFX0FCT1JUCSgxOCozMisxMykgLyogIiIgVFNYX0ZPUkNFX0FCT1JUICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX1BDT05GSUcJCSgxOCozMisxOCkgLyogSW50ZWwgUENPTkZJRyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS91bmlzdGQuaCBiL3Rvb2xzL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vdW5pc3RkLmgKaW5kZXggMzBkN2QwNC4uMTk2ZmRkMCAxMDA2NDQKLS0tIGEvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS91bmlzdGQuaAorKysgYi90b29scy9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3VuaXN0ZC5oCkBAIC0zLDcgKzMsNyBAQAogI2RlZmluZSBfVUFQSV9BU01fWDg2X1VOSVNURF9ICiAKIC8qIHgzMiBzeXNjYWxsIGZsYWcgYml0ICovCi0jZGVmaW5lIF9fWDMyX1NZU0NBTExfQklUCTB4NDAwMDAwMDAKKyNkZWZpbmUgX19YMzJfU1lTQ0FMTF9CSVQJMHg0MDAwMDAwMFVMCiAKICNpZm5kZWYgX19LRVJORUxfXwogIyBpZmRlZiBfX2kzODZfXwpkaWZmIC0tZ2l0IGEvdG9vbHMvaHYvQnVpbGQgYi90b29scy9odi9CdWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2Y1MWZhCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvaHYvQnVpbGQKQEAgLTAsMCArMSwzIEBACitodl9rdnBfZGFlbW9uLXkgKz0gaHZfa3ZwX2RhZW1vbi5vCitodl92c3NfZGFlbW9uLXkgKz0gaHZfdnNzX2RhZW1vbi5vCitodl9mY29weV9kYWVtb24teSArPSBodl9mY29weV9kYWVtb24ubwpkaWZmIC0tZ2l0IGEvdG9vbHMvaHYvTWFrZWZpbGUgYi90b29scy9odi9NYWtlZmlsZQppbmRleCA1ZGI1ZTYyLi5iNTcxNDNkIDEwMDY0NAotLS0gYS90b29scy9odi9NYWtlZmlsZQorKysgYi90b29scy9odi9NYWtlZmlsZQpAQCAtMSwyOCArMSw1NSBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogIyBNYWtlZmlsZSBmb3IgSHlwZXItViB0b29scwotCi1XQVJOSU5HUyA9IC1XYWxsIC1XZXh0cmEKLUNGTEFHUyA9ICQoV0FSTklOR1MpIC1nICQoc2hlbGwgZ2V0Y29uZiBMRlNfQ0ZMQUdTKQotCi1DRkxBR1MgKz0gLURfX0VYUE9SVEVEX0hFQURFUlNfXyAtSS4uLy4uL2luY2x1ZGUvdWFwaSAtSS4uLy4uL2luY2x1ZGUKK2luY2x1ZGUgLi4vc2NyaXB0cy9NYWtlZmlsZS5pbmNsdWRlCiAKIHNiaW5kaXIgPz0gL3Vzci9zYmluCiBsaWJleGVjZGlyID89IC91c3IvbGliZXhlYwogc2hhcmVkc3RhdGVkaXIgPz0gL3Zhci9saWIKIAotQUxMX1BST0dSQU1TIDo9IGh2X2t2cF9kYWVtb24gaHZfdnNzX2RhZW1vbiBodl9mY29weV9kYWVtb24KK2lmZXEgKCQoc3JjdHJlZSksKQorc3JjdHJlZSA6PSAkKHBhdHN1YnN0ICUvLCUsJChkaXIgJChDVVJESVIpKSkKK3NyY3RyZWUgOj0gJChwYXRzdWJzdCAlLywlLCQoZGlyICQoc3JjdHJlZSkpKQorZW5kaWYKKworIyBEbyBub3QgdXNlIG1ha2UncyBidWlsdC1pbiBydWxlcworIyAodGhpcyBpbXByb3ZlcyBwZXJmb3JtYW5jZSBhbmQgYXZvaWRzIGhhcmQtdG8tZGVidWcgYmVoYXZpb3VyKTsKK01BS0VGTEFHUyArPSAtcgorCitvdmVycmlkZSBDRkxBR1MgKz0gLU8yIC1XYWxsIC1nIC1EX0dOVV9TT1VSQ0UgLUkkKE9VVFBVVClpbmNsdWRlCisKK0FMTF9UQVJHRVRTIDo9IGh2X2t2cF9kYWVtb24gaHZfdnNzX2RhZW1vbiBodl9mY29weV9kYWVtb24KK0FMTF9QUk9HUkFNUyA6PSAkKHBhdHN1YnN0ICUsJChPVVRQVVQpJSwkKEFMTF9UQVJHRVRTKSkKIAogQUxMX1NDUklQVFMgOj0gaHZfZ2V0X2RoY3BfaW5mby5zaCBodl9nZXRfZG5zX2luZm8uc2ggaHZfc2V0X2lmY29uZmlnLnNoCiAKIGFsbDogJChBTExfUFJPR1JBTVMpCiAKLSU6ICUuYwotCSQoQ0MpICQoQ0ZMQUdTKSAtbyAkQCAkXgorZXhwb3J0IHNyY3RyZWUgT1VUUFVUIENDIExEIENGTEFHUworaW5jbHVkZSAkKHNyY3RyZWUpL3Rvb2xzL2J1aWxkL01ha2VmaWxlLmluY2x1ZGUKKworSFZfS1ZQX0RBRU1PTl9JTiA6PSAkKE9VVFBVVClodl9rdnBfZGFlbW9uLWluLm8KKyQoSFZfS1ZQX0RBRU1PTl9JTik6IEZPUkNFCisJJChRKSQoTUFLRSkgJChidWlsZCk9aHZfa3ZwX2RhZW1vbgorJChPVVRQVVQpaHZfa3ZwX2RhZW1vbjogJChIVl9LVlBfREFFTU9OX0lOKQorCSQoUVVJRVRfTElOSykkKENDKSAkKENGTEFHUykgJChMREZMQUdTKSAkPCAtbyAkQAorCitIVl9WU1NfREFFTU9OX0lOIDo9ICQoT1VUUFVUKWh2X3Zzc19kYWVtb24taW4ubworJChIVl9WU1NfREFFTU9OX0lOKTogRk9SQ0UKKwkkKFEpJChNQUtFKSAkKGJ1aWxkKT1odl92c3NfZGFlbW9uCiskKE9VVFBVVClodl92c3NfZGFlbW9uOiAkKEhWX1ZTU19EQUVNT05fSU4pCisJJChRVUlFVF9MSU5LKSQoQ0MpICQoQ0ZMQUdTKSAkKExERkxBR1MpICQ8IC1vICRACisKK0hWX0ZDT1BZX0RBRU1PTl9JTiA6PSAkKE9VVFBVVClodl9mY29weV9kYWVtb24taW4ubworJChIVl9GQ09QWV9EQUVNT05fSU4pOiBGT1JDRQorCSQoUSkkKE1BS0UpICQoYnVpbGQpPWh2X2Zjb3B5X2RhZW1vbgorJChPVVRQVVQpaHZfZmNvcHlfZGFlbW9uOiAkKEhWX0ZDT1BZX0RBRU1PTl9JTikKKwkkKFFVSUVUX0xJTkspJChDQykgJChDRkxBR1MpICQoTERGTEFHUykgJDwgLW8gJEAKIAogY2xlYW46Ci0JJChSTSkgaHZfa3ZwX2RhZW1vbiBodl92c3NfZGFlbW9uIGh2X2Zjb3B5X2RhZW1vbgorCXJtIC1mICQoQUxMX1BST0dSQU1TKQorCWZpbmQgJChpZiAkKE9VVFBVVCksJChPVVRQVVQpLC4pIC1uYW1lICcqLm8nIC1kZWxldGUgLW8gLW5hbWUgJ1wuKi5kJyAtZGVsZXRlCiAKLWluc3RhbGw6IGFsbAoraW5zdGFsbDogJChBTExfUFJPR1JBTVMpCiAJaW5zdGFsbCAtZCAtbSA3NTUgJChERVNURElSKSQoc2JpbmRpcik7IFwKIAlpbnN0YWxsIC1kIC1tIDc1NSAkKERFU1RESVIpJChsaWJleGVjZGlyKS9oeXBlcnZrdnBkOyBcCiAJaW5zdGFsbCAtZCAtbSA3NTUgJChERVNURElSKSQoc2hhcmVkc3RhdGVkaXIpOyBcCkBAIC0zMywzICs2MCw3IEBACiAJZm9yIHNjcmlwdCBpbiAkKEFMTF9TQ1JJUFRTKTsgZG8gXAogCQlpbnN0YWxsICQkc2NyaXB0IC1tIDc1NSAkKERFU1RESVIpJChsaWJleGVjZGlyKS9oeXBlcnZrdnBkLyQke3NjcmlwdCUuc2h9OyBcCiAJZG9uZQorCitGT1JDRToKKworLlBIT05ZOiBhbGwgaW5zdGFsbCBjbGVhbiBGT1JDRSBwcmVwYXJlCmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL2FzbS9idWcuaCBiL3Rvb2xzL2luY2x1ZGUvYXNtL2J1Zy5oCmluZGV4IGJiZDc1YWMuLjU1MDIyM2YgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUvYXNtL2J1Zy5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvYXNtL2J1Zy5oCkBAIC0zLDYgKzMsNyBAQAogI2RlZmluZSBfVE9PTFNfQVNNX0JVR19ICiAKICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CiAKICNkZWZpbmUgX19XQVJOX3ByaW50ZihhcmcuLi4pCWRvIHsgZnByaW50ZihzdGRlcnIsIGFyZyk7IH0gd2hpbGUgKDApCiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvbGludXgvcmJ0cmVlLmggYi90b29scy9pbmNsdWRlL2xpbnV4L3JidHJlZS5oCmluZGV4IGQ4Mzc2M2EuLmUwM2IxZWEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUvbGludXgvcmJ0cmVlLmgKKysrIGIvdG9vbHMvaW5jbHVkZS9saW51eC9yYnRyZWUuaApAQCAtMzEsMjUgKzMxLDkgQEAgc3RydWN0IHJiX3Jvb3QgewogCXN0cnVjdCByYl9ub2RlICpyYl9ub2RlOwogfTsKIAotLyoKLSAqIExlZnRtb3N0LWNhY2hlZCByYnRyZWVzLgotICoKLSAqIFdlIGRvIG5vdCBjYWNoZSB0aGUgcmlnaHRtb3N0IG5vZGUgYmFzZWQgb24gZm9vdHByaW50Ci0gKiBzaXplIHZzIG51bWJlciBvZiBwb3RlbnRpYWwgdXNlcnMgdGhhdCBjb3VsZCBiZW5lZml0Ci0gKiBmcm9tIE8oMSkgcmJfbGFzdCgpLiBKdXN0IG5vdCB3b3J0aCBpdCwgdXNlcnMgdGhhdCB3YW50Ci0gKiB0aGlzIGZlYXR1cmUgY2FuIGFsd2F5cyBpbXBsZW1lbnQgdGhlIGxvZ2ljIGV4cGxpY2l0bHkuCi0gKiBGdXJ0aGVybW9yZSwgdXNlcnMgdGhhdCB3YW50IHRvIGNhY2hlIGJvdGggcG9pbnRlcnMgbWF5Ci0gKiBmaW5kIGl0IGEgYml0IGFzeW1tZXRyaWMsIGJ1dCB0aGF0J3Mgb2suCi0gKi8KLXN0cnVjdCByYl9yb290X2NhY2hlZCB7Ci0Jc3RydWN0IHJiX3Jvb3QgcmJfcm9vdDsKLQlzdHJ1Y3QgcmJfbm9kZSAqcmJfbGVmdG1vc3Q7Ci19OwotCiAjZGVmaW5lIHJiX3BhcmVudChyKSAgICgoc3RydWN0IHJiX25vZGUgKikoKHIpLT5fX3JiX3BhcmVudF9jb2xvciAmIH4zKSkKIAogI2RlZmluZSBSQl9ST09UCShzdHJ1Y3QgcmJfcm9vdCkgeyBOVUxMLCB9Ci0jZGVmaW5lIFJCX1JPT1RfQ0FDSEVEIChzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQpIHsge05VTEwsIH0sIE5VTEwgfQogI2RlZmluZQlyYl9lbnRyeShwdHIsIHR5cGUsIG1lbWJlcikgY29udGFpbmVyX29mKHB0ciwgdHlwZSwgbWVtYmVyKQogCiAjZGVmaW5lIFJCX0VNUFRZX1JPT1Qocm9vdCkgIChSRUFEX09OQ0UoKHJvb3QpLT5yYl9ub2RlKSA9PSBOVUxMKQpAQCAtNzEsMTIgKzU1LDYgQEAgZXh0ZXJuIHN0cnVjdCByYl9ub2RlICpyYl9wcmV2KGNvbnN0IHN0cnVjdCByYl9ub2RlICopOwogZXh0ZXJuIHN0cnVjdCByYl9ub2RlICpyYl9maXJzdChjb25zdCBzdHJ1Y3QgcmJfcm9vdCAqKTsKIGV4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfbGFzdChjb25zdCBzdHJ1Y3QgcmJfcm9vdCAqKTsKIAotZXh0ZXJuIHZvaWQgcmJfaW5zZXJ0X2NvbG9yX2NhY2hlZChzdHJ1Y3QgcmJfbm9kZSAqLAotCQkJCSAgIHN0cnVjdCByYl9yb290X2NhY2hlZCAqLCBib29sKTsKLWV4dGVybiB2b2lkIHJiX2VyYXNlX2NhY2hlZChzdHJ1Y3QgcmJfbm9kZSAqbm9kZSwgc3RydWN0IHJiX3Jvb3RfY2FjaGVkICopOwotLyogU2FtZSBhcyByYl9maXJzdCgpLCBidXQgTygxKSAqLwotI2RlZmluZSByYl9maXJzdF9jYWNoZWQocm9vdCkgKHJvb3QpLT5yYl9sZWZ0bW9zdAotCiAvKiBQb3N0b3JkZXIgaXRlcmF0aW9uIC0gYWx3YXlzIHZpc2l0IHRoZSBwYXJlbnQgYWZ0ZXIgaXRzIGNoaWxkcmVuICovCiBleHRlcm4gc3RydWN0IHJiX25vZGUgKnJiX2ZpcnN0X3Bvc3RvcmRlcihjb25zdCBzdHJ1Y3QgcmJfcm9vdCAqKTsKIGV4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfbmV4dF9wb3N0b3JkZXIoY29uc3Qgc3RydWN0IHJiX25vZGUgKik7CkBAIC04NCw4ICs2Miw2IEBAIGV4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfbmV4dF9wb3N0b3JkZXIoY29uc3Qgc3RydWN0IHJiX25vZGUgKik7CiAvKiBGYXN0IHJlcGxhY2VtZW50IG9mIGEgc2luZ2xlIG5vZGUgd2l0aG91dCByZW1vdmUvcmViYWxhbmNlL2FkZC9yZWJhbGFuY2UgKi8KIGV4dGVybiB2b2lkIHJiX3JlcGxhY2Vfbm9kZShzdHJ1Y3QgcmJfbm9kZSAqdmljdGltLCBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAogCQkJICAgIHN0cnVjdCByYl9yb290ICpyb290KTsKLWV4dGVybiB2b2lkIHJiX3JlcGxhY2Vfbm9kZV9jYWNoZWQoc3RydWN0IHJiX25vZGUgKnZpY3RpbSwgc3RydWN0IHJiX25vZGUgKm5ldywKLQkJCQkgICBzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgKnJvb3QpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgcmJfbGlua19ub2RlKHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LAogCQkJCXN0cnVjdCByYl9ub2RlICoqcmJfbGluaykKQEAgLTEyOSw0ICsxMDUsNTEgQEAgc3RhdGljIGlubGluZSB2b2lkIHJiX2VyYXNlX2luaXQoc3RydWN0IHJiX25vZGUgKm4sIHN0cnVjdCByYl9yb290ICpyb290KQogCXJiX2VyYXNlKG4sIHJvb3QpOwogCVJCX0NMRUFSX05PREUobik7CiB9CisKKy8qCisgKiBMZWZ0bW9zdC1jYWNoZWQgcmJ0cmVlcy4KKyAqCisgKiBXZSBkbyBub3QgY2FjaGUgdGhlIHJpZ2h0bW9zdCBub2RlIGJhc2VkIG9uIGZvb3RwcmludAorICogc2l6ZSB2cyBudW1iZXIgb2YgcG90ZW50aWFsIHVzZXJzIHRoYXQgY291bGQgYmVuZWZpdAorICogZnJvbSBPKDEpIHJiX2xhc3QoKS4gSnVzdCBub3Qgd29ydGggaXQsIHVzZXJzIHRoYXQgd2FudAorICogdGhpcyBmZWF0dXJlIGNhbiBhbHdheXMgaW1wbGVtZW50IHRoZSBsb2dpYyBleHBsaWNpdGx5LgorICogRnVydGhlcm1vcmUsIHVzZXJzIHRoYXQgd2FudCB0byBjYWNoZSBib3RoIHBvaW50ZXJzIG1heQorICogZmluZCBpdCBhIGJpdCBhc3ltbWV0cmljLCBidXQgdGhhdCdzIG9rLgorICovCitzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgeworCXN0cnVjdCByYl9yb290IHJiX3Jvb3Q7CisJc3RydWN0IHJiX25vZGUgKnJiX2xlZnRtb3N0OworfTsKKworI2RlZmluZSBSQl9ST09UX0NBQ0hFRCAoc3RydWN0IHJiX3Jvb3RfY2FjaGVkKSB7IHtOVUxMLCB9LCBOVUxMIH0KKworLyogU2FtZSBhcyByYl9maXJzdCgpLCBidXQgTygxKSAqLworI2RlZmluZSByYl9maXJzdF9jYWNoZWQocm9vdCkgKHJvb3QpLT5yYl9sZWZ0bW9zdAorCitzdGF0aWMgaW5saW5lIHZvaWQgcmJfaW5zZXJ0X2NvbG9yX2NhY2hlZChzdHJ1Y3QgcmJfbm9kZSAqbm9kZSwKKwkJCQkJICBzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgKnJvb3QsCisJCQkJCSAgYm9vbCBsZWZ0bW9zdCkKK3sKKwlpZiAobGVmdG1vc3QpCisJCXJvb3QtPnJiX2xlZnRtb3N0ID0gbm9kZTsKKwlyYl9pbnNlcnRfY29sb3Iobm9kZSwgJnJvb3QtPnJiX3Jvb3QpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmJfZXJhc2VfY2FjaGVkKHN0cnVjdCByYl9ub2RlICpub2RlLAorCQkJCSAgIHN0cnVjdCByYl9yb290X2NhY2hlZCAqcm9vdCkKK3sKKwlpZiAocm9vdC0+cmJfbGVmdG1vc3QgPT0gbm9kZSkKKwkJcm9vdC0+cmJfbGVmdG1vc3QgPSByYl9uZXh0KG5vZGUpOworCXJiX2VyYXNlKG5vZGUsICZyb290LT5yYl9yb290KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJiX3JlcGxhY2Vfbm9kZV9jYWNoZWQoc3RydWN0IHJiX25vZGUgKnZpY3RpbSwKKwkJCQkJICBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAorCQkJCQkgIHN0cnVjdCByYl9yb290X2NhY2hlZCAqcm9vdCkKK3sKKwlpZiAocm9vdC0+cmJfbGVmdG1vc3QgPT0gdmljdGltKQorCQlyb290LT5yYl9sZWZ0bW9zdCA9IG5ldzsKKwlyYl9yZXBsYWNlX25vZGUodmljdGltLCBuZXcsICZyb290LT5yYl9yb290KTsKK30KKwogI2VuZGlmIC8qIF9fVE9PTFNfTElOVVhfUEVSRl9SQlRSRUVfSCAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS9saW51eC9yYnRyZWVfYXVnbWVudGVkLmggYi90b29scy9pbmNsdWRlL2xpbnV4L3JidHJlZV9hdWdtZW50ZWQuaAppbmRleCBkZGQwMTAwLi4zODFhYTk0IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL2xpbnV4L3JidHJlZV9hdWdtZW50ZWQuaAorKysgYi90b29scy9pbmNsdWRlL2xpbnV4L3JidHJlZV9hdWdtZW50ZWQuaApAQCAtMzIsMTcgKzMyLDE2IEBAIHN0cnVjdCByYl9hdWdtZW50X2NhbGxiYWNrcyB7CiAJdm9pZCAoKnJvdGF0ZSkoc3RydWN0IHJiX25vZGUgKm9sZCwgc3RydWN0IHJiX25vZGUgKm5ldyk7CiB9OwogCi1leHRlcm4gdm9pZCBfX3JiX2luc2VydF9hdWdtZW50ZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsCi0JCQkJICBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCwKLQkJCQkgIGJvb2wgbmV3bGVmdCwgc3RydWN0IHJiX25vZGUgKipsZWZ0bW9zdCwKK2V4dGVybiB2b2lkIF9fcmJfaW5zZXJ0X2F1Z21lbnRlZChzdHJ1Y3QgcmJfbm9kZSAqbm9kZSwgc3RydWN0IHJiX3Jvb3QgKnJvb3QsCiAJdm9pZCAoKmF1Z21lbnRfcm90YXRlKShzdHJ1Y3QgcmJfbm9kZSAqb2xkLCBzdHJ1Y3QgcmJfbm9kZSAqbmV3KSk7CisKIC8qCiAgKiBGaXh1cCB0aGUgcmJ0cmVlIGFuZCB1cGRhdGUgdGhlIGF1Z21lbnRlZCBpbmZvcm1hdGlvbiB3aGVuIHJlYmFsYW5jaW5nLgogICoKICAqIE9uIGluc2VydGlvbiwgdGhlIHVzZXIgbXVzdCB1cGRhdGUgdGhlIGF1Z21lbnRlZCBpbmZvcm1hdGlvbiBvbiB0aGUgcGF0aAogICogbGVhZGluZyB0byB0aGUgaW5zZXJ0ZWQgbm9kZSwgdGhlbiBjYWxsIHJiX2xpbmtfbm9kZSgpIGFzIHVzdWFsIGFuZAotICogcmJfYXVnbWVudF9pbnNlcnRlZCgpIGluc3RlYWQgb2YgdGhlIHVzdWFsIHJiX2luc2VydF9jb2xvcigpIGNhbGwuCi0gKiBJZiByYl9hdWdtZW50X2luc2VydGVkKCkgcmViYWxhbmNlcyB0aGUgcmJ0cmVlLCBpdCB3aWxsIGNhbGxiYWNrIGludG8KKyAqIHJiX2luc2VydF9hdWdtZW50ZWQoKSBpbnN0ZWFkIG9mIHRoZSB1c3VhbCByYl9pbnNlcnRfY29sb3IoKSBjYWxsLgorICogSWYgcmJfaW5zZXJ0X2F1Z21lbnRlZCgpIHJlYmFsYW5jZXMgdGhlIHJidHJlZSwgaXQgd2lsbCBjYWxsYmFjayBpbnRvCiAgKiBhIHVzZXIgcHJvdmlkZWQgZnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBhdWdtZW50ZWQgaW5mb3JtYXRpb24gb24gdGhlCiAgKiBhZmZlY3RlZCBzdWJ0cmVlcy4KICAqLwpAQCAtNTAsNyArNDksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQKIHJiX2luc2VydF9hdWdtZW50ZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsIHN0cnVjdCByYl9yb290ICpyb290LAogCQkgICAgY29uc3Qgc3RydWN0IHJiX2F1Z21lbnRfY2FsbGJhY2tzICphdWdtZW50KQogewotCV9fcmJfaW5zZXJ0X2F1Z21lbnRlZChub2RlLCByb290LCBmYWxzZSwgTlVMTCwgYXVnbWVudC0+cm90YXRlKTsKKwlfX3JiX2luc2VydF9hdWdtZW50ZWQobm9kZSwgcm9vdCwgYXVnbWVudC0+cm90YXRlKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCkBAIC01OCw0NSArNTcsOTIgQEAgcmJfaW5zZXJ0X2F1Z21lbnRlZF9jYWNoZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsCiAJCQkgICBzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgKnJvb3QsIGJvb2wgbmV3bGVmdCwKIAkJCSAgIGNvbnN0IHN0cnVjdCByYl9hdWdtZW50X2NhbGxiYWNrcyAqYXVnbWVudCkKIHsKLQlfX3JiX2luc2VydF9hdWdtZW50ZWQobm9kZSwgJnJvb3QtPnJiX3Jvb3QsCi0JCQkgICAgICBuZXdsZWZ0LCAmcm9vdC0+cmJfbGVmdG1vc3QsIGF1Z21lbnQtPnJvdGF0ZSk7CisJaWYgKG5ld2xlZnQpCisJCXJvb3QtPnJiX2xlZnRtb3N0ID0gbm9kZTsKKwlyYl9pbnNlcnRfYXVnbWVudGVkKG5vZGUsICZyb290LT5yYl9yb290LCBhdWdtZW50KTsKIH0KIAotI2RlZmluZSBSQl9ERUNMQVJFX0NBTExCQUNLUyhyYnN0YXRpYywgcmJuYW1lLCByYnN0cnVjdCwgcmJmaWVsZCwJXAotCQkJICAgICByYnR5cGUsIHJiYXVnbWVudGVkLCByYmNvbXB1dGUpCQlcCisvKgorICogVGVtcGxhdGUgZm9yIGRlY2xhcmluZyBhdWdtZW50ZWQgcmJ0cmVlIGNhbGxiYWNrcyAoZ2VuZXJpYyBjYXNlKQorICoKKyAqIFJCU1RBVElDOiAgICAnc3RhdGljJyBvciBlbXB0eQorICogUkJOQU1FOiAgICAgIG5hbWUgb2YgdGhlIHJiX2F1Z21lbnRfY2FsbGJhY2tzIHN0cnVjdHVyZQorICogUkJTVFJVQ1Q6ICAgIHN0cnVjdCB0eXBlIG9mIHRoZSB0cmVlIG5vZGVzCisgKiBSQkZJRUxEOiAgICAgbmFtZSBvZiBzdHJ1Y3QgcmJfbm9kZSBmaWVsZCB3aXRoaW4gUkJTVFJVQ1QKKyAqIFJCQVVHTUVOVEVEOiBuYW1lIG9mIGZpZWxkIHdpdGhpbiBSQlNUUlVDVCBob2xkaW5nIGRhdGEgZm9yIHN1YnRyZWUKKyAqIFJCQ09NUFVURTogICBuYW1lIG9mIGZ1bmN0aW9uIHRoYXQgcmVjb21wdXRlcyB0aGUgUkJBVUdNRU5URUQgZGF0YQorICovCisKKyNkZWZpbmUgUkJfREVDTEFSRV9DQUxMQkFDS1MoUkJTVEFUSUMsIFJCTkFNRSwJCQkJXAorCQkJICAgICBSQlNUUlVDVCwgUkJGSUVMRCwgUkJBVUdNRU5URUQsIFJCQ09NUFVURSkJXAogc3RhdGljIGlubGluZSB2b2lkCQkJCQkJCVwKLXJibmFtZSAjIyBfcHJvcGFnYXRlKHN0cnVjdCByYl9ub2RlICpyYiwgc3RydWN0IHJiX25vZGUgKnN0b3ApCQlcCitSQk5BTUUgIyMgX3Byb3BhZ2F0ZShzdHJ1Y3QgcmJfbm9kZSAqcmIsIHN0cnVjdCByYl9ub2RlICpzdG9wKQkJXAogewkJCQkJCQkJCVwKIAl3aGlsZSAocmIgIT0gc3RvcCkgewkJCQkJCVwKLQkJcmJzdHJ1Y3QgKm5vZGUgPSByYl9lbnRyeShyYiwgcmJzdHJ1Y3QsIHJiZmllbGQpOwlcCi0JCXJidHlwZSBhdWdtZW50ZWQgPSByYmNvbXB1dGUobm9kZSk7CQkJXAotCQlpZiAobm9kZS0+cmJhdWdtZW50ZWQgPT0gYXVnbWVudGVkKQkJCVwKKwkJUkJTVFJVQ1QgKm5vZGUgPSByYl9lbnRyeShyYiwgUkJTVFJVQ1QsIFJCRklFTEQpOwlcCisJCWlmIChSQkNPTVBVVEUobm9kZSwgdHJ1ZSkpCQkJCVwKIAkJCWJyZWFrOwkJCQkJCVwKLQkJbm9kZS0+cmJhdWdtZW50ZWQgPSBhdWdtZW50ZWQ7CQkJCVwKLQkJcmIgPSByYl9wYXJlbnQoJm5vZGUtPnJiZmllbGQpOwkJCQlcCisJCXJiID0gcmJfcGFyZW50KCZub2RlLT5SQkZJRUxEKTsJCQkJXAogCX0JCQkJCQkJCVwKIH0JCQkJCQkJCQlcCiBzdGF0aWMgaW5saW5lIHZvaWQJCQkJCQkJXAotcmJuYW1lICMjIF9jb3B5KHN0cnVjdCByYl9ub2RlICpyYl9vbGQsIHN0cnVjdCByYl9ub2RlICpyYl9uZXcpCQlcCitSQk5BTUUgIyMgX2NvcHkoc3RydWN0IHJiX25vZGUgKnJiX29sZCwgc3RydWN0IHJiX25vZGUgKnJiX25ldykJCVwKIHsJCQkJCQkJCQlcCi0JcmJzdHJ1Y3QgKm9sZCA9IHJiX2VudHJ5KHJiX29sZCwgcmJzdHJ1Y3QsIHJiZmllbGQpOwkJXAotCXJic3RydWN0ICpuZXcgPSByYl9lbnRyeShyYl9uZXcsIHJic3RydWN0LCByYmZpZWxkKTsJCVwKLQluZXctPnJiYXVnbWVudGVkID0gb2xkLT5yYmF1Z21lbnRlZDsJCQkJXAorCVJCU1RSVUNUICpvbGQgPSByYl9lbnRyeShyYl9vbGQsIFJCU1RSVUNULCBSQkZJRUxEKTsJCVwKKwlSQlNUUlVDVCAqbmV3ID0gcmJfZW50cnkocmJfbmV3LCBSQlNUUlVDVCwgUkJGSUVMRCk7CQlcCisJbmV3LT5SQkFVR01FTlRFRCA9IG9sZC0+UkJBVUdNRU5URUQ7CQkJCVwKIH0JCQkJCQkJCQlcCiBzdGF0aWMgdm9pZAkJCQkJCQkJXAotcmJuYW1lICMjIF9yb3RhdGUoc3RydWN0IHJiX25vZGUgKnJiX29sZCwgc3RydWN0IHJiX25vZGUgKnJiX25ldykJXAorUkJOQU1FICMjIF9yb3RhdGUoc3RydWN0IHJiX25vZGUgKnJiX29sZCwgc3RydWN0IHJiX25vZGUgKnJiX25ldykJXAogewkJCQkJCQkJCVwKLQlyYnN0cnVjdCAqb2xkID0gcmJfZW50cnkocmJfb2xkLCByYnN0cnVjdCwgcmJmaWVsZCk7CQlcCi0JcmJzdHJ1Y3QgKm5ldyA9IHJiX2VudHJ5KHJiX25ldywgcmJzdHJ1Y3QsIHJiZmllbGQpOwkJXAotCW5ldy0+cmJhdWdtZW50ZWQgPSBvbGQtPnJiYXVnbWVudGVkOwkJCQlcCi0Jb2xkLT5yYmF1Z21lbnRlZCA9IHJiY29tcHV0ZShvbGQpOwkJCQlcCisJUkJTVFJVQ1QgKm9sZCA9IHJiX2VudHJ5KHJiX29sZCwgUkJTVFJVQ1QsIFJCRklFTEQpOwkJXAorCVJCU1RSVUNUICpuZXcgPSByYl9lbnRyeShyYl9uZXcsIFJCU1RSVUNULCBSQkZJRUxEKTsJCVwKKwluZXctPlJCQVVHTUVOVEVEID0gb2xkLT5SQkFVR01FTlRFRDsJCQkJXAorCVJCQ09NUFVURShvbGQsIGZhbHNlKTsJCQkJCQlcCiB9CQkJCQkJCQkJXAotcmJzdGF0aWMgY29uc3Qgc3RydWN0IHJiX2F1Z21lbnRfY2FsbGJhY2tzIHJibmFtZSA9IHsJCQlcCi0JLnByb3BhZ2F0ZSA9IHJibmFtZSAjIyBfcHJvcGFnYXRlLAkJCQlcCi0JLmNvcHkgPSByYm5hbWUgIyMgX2NvcHksCQkJCQlcCi0JLnJvdGF0ZSA9IHJibmFtZSAjIyBfcm90YXRlCQkJCQlcCitSQlNUQVRJQyBjb25zdCBzdHJ1Y3QgcmJfYXVnbWVudF9jYWxsYmFja3MgUkJOQU1FID0gewkJCVwKKwkucHJvcGFnYXRlID0gUkJOQU1FICMjIF9wcm9wYWdhdGUsCQkJCVwKKwkuY29weSA9IFJCTkFNRSAjIyBfY29weSwJCQkJCVwKKwkucm90YXRlID0gUkJOQU1FICMjIF9yb3RhdGUJCQkJCVwKIH07CiAKKy8qCisgKiBUZW1wbGF0ZSBmb3IgZGVjbGFyaW5nIGF1Z21lbnRlZCByYnRyZWUgY2FsbGJhY2tzLAorICogY29tcHV0aW5nIFJCQVVHTUVOVEVEIHNjYWxhciBhcyBtYXgoUkJDT01QVVRFKG5vZGUpKSBmb3IgYWxsIHN1YnRyZWUgbm9kZXMuCisgKgorICogUkJTVEFUSUM6ICAgICdzdGF0aWMnIG9yIGVtcHR5CisgKiBSQk5BTUU6ICAgICAgbmFtZSBvZiB0aGUgcmJfYXVnbWVudF9jYWxsYmFja3Mgc3RydWN0dXJlCisgKiBSQlNUUlVDVDogICAgc3RydWN0IHR5cGUgb2YgdGhlIHRyZWUgbm9kZXMKKyAqIFJCRklFTEQ6ICAgICBuYW1lIG9mIHN0cnVjdCByYl9ub2RlIGZpZWxkIHdpdGhpbiBSQlNUUlVDVAorICogUkJUWVBFOiAgICAgIHR5cGUgb2YgdGhlIFJCQVVHTUVOVEVEIGZpZWxkCisgKiBSQkFVR01FTlRFRDogbmFtZSBvZiBSQlRZUEUgZmllbGQgd2l0aGluIFJCU1RSVUNUIGhvbGRpbmcgZGF0YSBmb3Igc3VidHJlZQorICogUkJDT01QVVRFOiAgIG5hbWUgb2YgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBwZXItbm9kZSBSQlRZUEUgc2NhbGFyCisgKi8KKworI2RlZmluZSBSQl9ERUNMQVJFX0NBTExCQUNLU19NQVgoUkJTVEFUSUMsIFJCTkFNRSwgUkJTVFJVQ1QsIFJCRklFTEQsCSAgICAgIFwKKwkJCQkgUkJUWVBFLCBSQkFVR01FTlRFRCwgUkJDT01QVVRFKQkgICAgICBcCitzdGF0aWMgaW5saW5lIGJvb2wgUkJOQU1FICMjIF9jb21wdXRlX21heChSQlNUUlVDVCAqbm9kZSwgYm9vbCBleGl0KQkgICAgICBcCit7CQkJCQkJCQkJICAgICAgXAorCVJCU1RSVUNUICpjaGlsZDsJCQkJCQkgICAgICBcCisJUkJUWVBFIG1heCA9IFJCQ09NUFVURShub2RlKTsJCQkJCSAgICAgIFwKKwlpZiAobm9kZS0+UkJGSUVMRC5yYl9sZWZ0KSB7CQkJCQkgICAgICBcCisJCWNoaWxkID0gcmJfZW50cnkobm9kZS0+UkJGSUVMRC5yYl9sZWZ0LCBSQlNUUlVDVCwgUkJGSUVMRCk7ICAgXAorCQlpZiAoY2hpbGQtPlJCQVVHTUVOVEVEID4gbWF4KQkJCQkgICAgICBcCisJCQltYXggPSBjaGlsZC0+UkJBVUdNRU5URUQ7CQkJICAgICAgXAorCX0JCQkJCQkJCSAgICAgIFwKKwlpZiAobm9kZS0+UkJGSUVMRC5yYl9yaWdodCkgewkJCQkJICAgICAgXAorCQljaGlsZCA9IHJiX2VudHJ5KG5vZGUtPlJCRklFTEQucmJfcmlnaHQsIFJCU1RSVUNULCBSQkZJRUxEKTsgIFwKKwkJaWYgKGNoaWxkLT5SQkFVR01FTlRFRCA+IG1heCkJCQkJICAgICAgXAorCQkJbWF4ID0gY2hpbGQtPlJCQVVHTUVOVEVEOwkJCSAgICAgIFwKKwl9CQkJCQkJCQkgICAgICBcCisJaWYgKGV4aXQgJiYgbm9kZS0+UkJBVUdNRU5URUQgPT0gbWF4KQkJCQkgICAgICBcCisJCXJldHVybiB0cnVlOwkJCQkJCSAgICAgIFwKKwlub2RlLT5SQkFVR01FTlRFRCA9IG1heDsJCQkJCSAgICAgIFwKKwlyZXR1cm4gZmFsc2U7CQkJCQkJCSAgICAgIFwKK30JCQkJCQkJCQkgICAgICBcCitSQl9ERUNMQVJFX0NBTExCQUNLUyhSQlNUQVRJQywgUkJOQU1FLAkJCQkJICAgICAgXAorCQkgICAgIFJCU1RSVUNULCBSQkZJRUxELCBSQkFVR01FTlRFRCwgUkJOQU1FICMjIF9jb21wdXRlX21heCkKKwogCiAjZGVmaW5lCVJCX1JFRAkJMAogI2RlZmluZQlSQl9CTEFDSwkxCkBAIC0xMzksNyArMTg1LDYgQEAgZXh0ZXJuIHZvaWQgX19yYl9lcmFzZV9jb2xvcihzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LCBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCwKIAogc3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgcmJfbm9kZSAqCiBfX3JiX2VyYXNlX2F1Z21lbnRlZChzdHJ1Y3QgcmJfbm9kZSAqbm9kZSwgc3RydWN0IHJiX3Jvb3QgKnJvb3QsCi0JCSAgICAgc3RydWN0IHJiX25vZGUgKipsZWZ0bW9zdCwKIAkJICAgICBjb25zdCBzdHJ1Y3QgcmJfYXVnbWVudF9jYWxsYmFja3MgKmF1Z21lbnQpCiB7CiAJc3RydWN0IHJiX25vZGUgKmNoaWxkID0gbm9kZS0+cmJfcmlnaHQ7CkBAIC0xNDcsOSArMTkyLDYgQEAgX19yYl9lcmFzZV9hdWdtZW50ZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsIHN0cnVjdCByYl9yb290ICpyb290LAogCXN0cnVjdCByYl9ub2RlICpwYXJlbnQsICpyZWJhbGFuY2U7CiAJdW5zaWduZWQgbG9uZyBwYzsKIAotCWlmIChsZWZ0bW9zdCAmJiBub2RlID09ICpsZWZ0bW9zdCkKLQkJKmxlZnRtb3N0ID0gcmJfbmV4dChub2RlKTsKLQogCWlmICghdG1wKSB7CiAJCS8qCiAJCSAqIENhc2UgMTogbm9kZSB0byBlcmFzZSBoYXMgbm8gbW9yZSB0aGFuIDEgY2hpbGQgKGVhc3khKQpAQCAtMjQ5LDggKzI5MSw3IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZAogcmJfZXJhc2VfYXVnbWVudGVkKHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCwKIAkJICAgY29uc3Qgc3RydWN0IHJiX2F1Z21lbnRfY2FsbGJhY2tzICphdWdtZW50KQogewotCXN0cnVjdCByYl9ub2RlICpyZWJhbGFuY2UgPSBfX3JiX2VyYXNlX2F1Z21lbnRlZChub2RlLCByb290LAotCQkJCQkJCSBOVUxMLCBhdWdtZW50KTsKKwlzdHJ1Y3QgcmJfbm9kZSAqcmViYWxhbmNlID0gX19yYl9lcmFzZV9hdWdtZW50ZWQobm9kZSwgcm9vdCwgYXVnbWVudCk7CiAJaWYgKHJlYmFsYW5jZSkKIAkJX19yYl9lcmFzZV9jb2xvcihyZWJhbGFuY2UsIHJvb3QsIGF1Z21lbnQtPnJvdGF0ZSk7CiB9CkBAIC0yNTksMTEgKzMwMCw5IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZAogcmJfZXJhc2VfYXVnbWVudGVkX2NhY2hlZChzdHJ1Y3QgcmJfbm9kZSAqbm9kZSwgc3RydWN0IHJiX3Jvb3RfY2FjaGVkICpyb290LAogCQkJICBjb25zdCBzdHJ1Y3QgcmJfYXVnbWVudF9jYWxsYmFja3MgKmF1Z21lbnQpCiB7Ci0Jc3RydWN0IHJiX25vZGUgKnJlYmFsYW5jZSA9IF9fcmJfZXJhc2VfYXVnbWVudGVkKG5vZGUsICZyb290LT5yYl9yb290LAotCQkJCQkJCSAmcm9vdC0+cmJfbGVmdG1vc3QsCi0JCQkJCQkJIGF1Z21lbnQpOwotCWlmIChyZWJhbGFuY2UpCi0JCV9fcmJfZXJhc2VfY29sb3IocmViYWxhbmNlLCAmcm9vdC0+cmJfcm9vdCwgYXVnbWVudC0+cm90YXRlKTsKKwlpZiAocm9vdC0+cmJfbGVmdG1vc3QgPT0gbm9kZSkKKwkJcm9vdC0+cmJfbGVmdG1vc3QgPSByYl9uZXh0KG5vZGUpOworCXJiX2VyYXNlX2F1Z21lbnRlZChub2RlLCAmcm9vdC0+cmJfcm9vdCwgYXVnbWVudCk7CiB9CiAKICNlbmRpZiAvKiBfVE9PTFNfTElOVVhfUkJUUkVFX0FVR01FTlRFRF9IICovCmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmggYi90b29scy9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmgKaW5kZXggMWJlMGU3OS4uMWZjOGZhYSAxMDA2NDQKLS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaApAQCAtNTY5LDcgKzU2OSw3IEBAIF9fU1lTQ0FMTChfX05SX3NlbWdldCwgc3lzX3NlbWdldCkKIF9fU0NfQ09NUChfX05SX3NlbWN0bCwgc3lzX3NlbWN0bCwgY29tcGF0X3N5c19zZW1jdGwpCiAjaWYgZGVmaW5lZChfX0FSQ0hfV0FOVF9USU1FMzJfU1lTQ0FMTFMpIHx8IF9fQklUU19QRVJfTE9ORyAhPSAzMgogI2RlZmluZSBfX05SX3NlbXRpbWVkb3AgMTkyCi1fX1NDX0NPTVAoX19OUl9zZW10aW1lZG9wLCBzeXNfc2VtdGltZWRvcCwgc3lzX3NlbXRpbWVkb3BfdGltZTMyKQorX19TQ18zMjY0KF9fTlJfc2VtdGltZWRvcCwgc3lzX3NlbXRpbWVkb3BfdGltZTMyLCBzeXNfc2VtdGltZWRvcCkKICNlbmRpZgogI2RlZmluZSBfX05SX3NlbW9wIDE5MwogX19TWVNDQUxMKF9fTlJfc2Vtb3AsIHN5c19zZW1vcCkKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9mcy5oIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2ZzLmgKaW5kZXggNTljNzFmYS4uMmE2MTZhYSAxMDA2NDQKLS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2ZzLmgKKysrIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2ZzLmgKQEAgLTMxMSw2ICszMTEsNyBAQCBzdHJ1Y3QgZnNjcnlwdF9rZXkgewogI2RlZmluZSBGU19OT0NPV19GTAkJCTB4MDA4MDAwMDAgLyogRG8gbm90IGNvdyBmaWxlICovCiAjZGVmaW5lIEZTX0lOTElORV9EQVRBX0ZMCQkweDEwMDAwMDAwIC8qIFJlc2VydmVkIGZvciBleHQ0ICovCiAjZGVmaW5lIEZTX1BST0pJTkhFUklUX0ZMCQkweDIwMDAwMDAwIC8qIENyZWF0ZSB3aXRoIHBhcmVudHMgcHJvamlkICovCisjZGVmaW5lIEZTX0NBU0VGT0xEX0ZMCQkJMHg0MDAwMDAwMCAvKiBGb2xkZXIgaXMgY2FzZSBpbnNlbnNpdGl2ZSAqLwogI2RlZmluZSBGU19SRVNFUlZFRF9GTAkJCTB4ODAwMDAwMDAgLyogcmVzZXJ2ZWQgZm9yIGV4dDIgbGliICovCiAKICNkZWZpbmUgRlNfRkxfVVNFUl9WSVNJQkxFCQkweDAwMDNERkZGIC8qIFVzZXIgdmlzaWJsZSBmbGFncyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L3ByY3RsLmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcHJjdGwuaAppbmRleCAwOTRiYjAzLi43ZGExYjM3IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcHJjdGwuaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcHJjdGwuaApAQCAtMTgxLDcgKzE4MSw3IEBAIHN0cnVjdCBwcmN0bF9tbV9tYXAgewogI2RlZmluZSBQUl9HRVRfVEhQX0RJU0FCTEUJNDIKIAogLyoKLSAqIFRlbGwgdGhlIGtlcm5lbCB0byBzdGFydC9zdG9wIGhlbHBpbmcgdXNlcnNwYWNlIG1hbmFnZSBib3VuZHMgdGFibGVzLgorICogTm8gbG9uZ2VyIGltcGxlbWVudGVkLCBidXQgbGVmdCBoZXJlIHRvIGVuc3VyZSB0aGUgbnVtYmVycyBzdGF5IHJlc2VydmVkOgogICovCiAjZGVmaW5lIFBSX01QWF9FTkFCTEVfTUFOQUdFTUVOVCAgNDMKICNkZWZpbmUgUFJfTVBYX0RJU0FCTEVfTUFOQUdFTUVOVCA0NApAQCAtMjI5LDQgKzIyOSw5IEBAIHN0cnVjdCBwcmN0bF9tbV9tYXAgewogIyBkZWZpbmUgUFJfUEFDX0FQREJLRVkJCQkoMVVMIDw8IDMpCiAjIGRlZmluZSBQUl9QQUNfQVBHQUtFWQkJCSgxVUwgPDwgNCkKIAorLyogVGFnZ2VkIHVzZXIgYWRkcmVzcyBjb250cm9scyBmb3IgYXJtNjQgKi8KKyNkZWZpbmUgUFJfU0VUX1RBR0dFRF9BRERSX0NUUkwJCTU1CisjZGVmaW5lIFBSX0dFVF9UQUdHRURfQUREUl9DVFJMCQk1NgorIyBkZWZpbmUgUFJfVEFHR0VEX0FERFJfRU5BQkxFCQkoMVVMIDw8IDApCisKICNlbmRpZiAvKiBfTElOVVhfUFJDVExfSCAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGliL3JidHJlZS5jIGIvdG9vbHMvbGliL3JidHJlZS5jCmluZGV4IDgwNGYxNDUuLjI1NDhmZjggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYi9yYnRyZWUuYworKysgYi90b29scy9saWIvcmJ0cmVlLmMKQEAgLTgzLDE0ICs4MywxMCBAQCBfX3JiX3JvdGF0ZV9zZXRfcGFyZW50cyhzdHJ1Y3QgcmJfbm9kZSAqb2xkLCBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQKIF9fcmJfaW5zZXJ0KHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCwKLQkgICAgYm9vbCBuZXdsZWZ0LCBzdHJ1Y3QgcmJfbm9kZSAqKmxlZnRtb3N0LAogCSAgICB2b2lkICgqYXVnbWVudF9yb3RhdGUpKHN0cnVjdCByYl9ub2RlICpvbGQsIHN0cnVjdCByYl9ub2RlICpuZXcpKQogewogCXN0cnVjdCByYl9ub2RlICpwYXJlbnQgPSByYl9yZWRfcGFyZW50KG5vZGUpLCAqZ3BhcmVudCwgKnRtcDsKIAotCWlmIChuZXdsZWZ0KQotCQkqbGVmdG1vc3QgPSBub2RlOwotCiAJd2hpbGUgKHRydWUpIHsKIAkJLyoKIAkJICogTG9vcCBpbnZhcmlhbnQ6IG5vZGUgaXMgcmVkLgpAQCAtNDM2LDM0ICs0MzIsMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByYl9hdWdtZW50X2NhbGxiYWNrcyBkdW1teV9jYWxsYmFja3MgPSB7CiAKIHZvaWQgcmJfaW5zZXJ0X2NvbG9yKHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCkKIHsKLQlfX3JiX2luc2VydChub2RlLCByb290LCBmYWxzZSwgTlVMTCwgZHVtbXlfcm90YXRlKTsKKwlfX3JiX2luc2VydChub2RlLCByb290LCBkdW1teV9yb3RhdGUpOwogfQogCiB2b2lkIHJiX2VyYXNlKHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCkKIHsKIAlzdHJ1Y3QgcmJfbm9kZSAqcmViYWxhbmNlOwotCXJlYmFsYW5jZSA9IF9fcmJfZXJhc2VfYXVnbWVudGVkKG5vZGUsIHJvb3QsCi0JCQkJCSBOVUxMLCAmZHVtbXlfY2FsbGJhY2tzKTsKKwlyZWJhbGFuY2UgPSBfX3JiX2VyYXNlX2F1Z21lbnRlZChub2RlLCByb290LCAmZHVtbXlfY2FsbGJhY2tzKTsKIAlpZiAocmViYWxhbmNlKQogCQlfX19fcmJfZXJhc2VfY29sb3IocmViYWxhbmNlLCByb290LCBkdW1teV9yb3RhdGUpOwogfQogCi12b2lkIHJiX2luc2VydF9jb2xvcl9jYWNoZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsCi0JCQkgICAgc3RydWN0IHJiX3Jvb3RfY2FjaGVkICpyb290LCBib29sIGxlZnRtb3N0KQotewotCV9fcmJfaW5zZXJ0KG5vZGUsICZyb290LT5yYl9yb290LCBsZWZ0bW9zdCwKLQkJICAgICZyb290LT5yYl9sZWZ0bW9zdCwgZHVtbXlfcm90YXRlKTsKLX0KLQotdm9pZCByYl9lcmFzZV9jYWNoZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsIHN0cnVjdCByYl9yb290X2NhY2hlZCAqcm9vdCkKLXsKLQlzdHJ1Y3QgcmJfbm9kZSAqcmViYWxhbmNlOwotCXJlYmFsYW5jZSA9IF9fcmJfZXJhc2VfYXVnbWVudGVkKG5vZGUsICZyb290LT5yYl9yb290LAotCQkJCQkgJnJvb3QtPnJiX2xlZnRtb3N0LCAmZHVtbXlfY2FsbGJhY2tzKTsKLQlpZiAocmViYWxhbmNlKQotCQlfX19fcmJfZXJhc2VfY29sb3IocmViYWxhbmNlLCAmcm9vdC0+cmJfcm9vdCwgZHVtbXlfcm90YXRlKTsKLX0KLQogLyoKICAqIEF1Z21lbnRlZCByYnRyZWUgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucy4KICAqCkBAIC00NzIsMTAgKzQ1MSw5IEBAIHZvaWQgcmJfZXJhc2VfY2FjaGVkKHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgKnJvb3QpCiAgKi8KIAogdm9pZCBfX3JiX2luc2VydF9hdWdtZW50ZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsIHN0cnVjdCByYl9yb290ICpyb290LAotCQkJICAgYm9vbCBuZXdsZWZ0LCBzdHJ1Y3QgcmJfbm9kZSAqKmxlZnRtb3N0LAogCXZvaWQgKCphdWdtZW50X3JvdGF0ZSkoc3RydWN0IHJiX25vZGUgKm9sZCwgc3RydWN0IHJiX25vZGUgKm5ldykpCiB7Ci0JX19yYl9pbnNlcnQobm9kZSwgcm9vdCwgbmV3bGVmdCwgbGVmdG1vc3QsIGF1Z21lbnRfcm90YXRlKTsKKwlfX3JiX2luc2VydChub2RlLCByb290LCBhdWdtZW50X3JvdGF0ZSk7CiB9CiAKIC8qCkBAIC01ODAsMTUgKzU1OCw2IEBAIHZvaWQgcmJfcmVwbGFjZV9ub2RlKHN0cnVjdCByYl9ub2RlICp2aWN0aW0sIHN0cnVjdCByYl9ub2RlICpuZXcsCiAJX19yYl9jaGFuZ2VfY2hpbGQodmljdGltLCBuZXcsIHBhcmVudCwgcm9vdCk7CiB9CiAKLXZvaWQgcmJfcmVwbGFjZV9ub2RlX2NhY2hlZChzdHJ1Y3QgcmJfbm9kZSAqdmljdGltLCBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAotCQkJICAgIHN0cnVjdCByYl9yb290X2NhY2hlZCAqcm9vdCkKLXsKLQlyYl9yZXBsYWNlX25vZGUodmljdGltLCBuZXcsICZyb290LT5yYl9yb290KTsKLQotCWlmIChyb290LT5yYl9sZWZ0bW9zdCA9PSB2aWN0aW0pCi0JCXJvb3QtPnJiX2xlZnRtb3N0ID0gbmV3OwotfQotCiBzdGF0aWMgc3RydWN0IHJiX25vZGUgKnJiX2xlZnRfZGVlcGVzdF9ub2RlKGNvbnN0IHN0cnVjdCByYl9ub2RlICpub2RlKQogewogCWZvciAoOzspIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L0J1aWxkIGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvQnVpbGQKaW5kZXggYmE1NGJmYy4uZjlhNWQ3OSAxMDA2NDQKLS0tIGEvdG9vbHMvbGliL3RyYWNlZXZlbnQvQnVpbGQKKysrIGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvQnVpbGQKQEAgLTYsMTQgKzYsMyBAQAogbGlidHJhY2VldmVudC15ICs9IGtidWZmZXItcGFyc2UubwogbGlidHJhY2VldmVudC15ICs9IHRlcF9zdHJlcnJvci5vCiBsaWJ0cmFjZWV2ZW50LXkgKz0gZXZlbnQtcGFyc2UtYXBpLm8KLQotcGx1Z2luX2piZDIteSAgICAgICAgICs9IHBsdWdpbl9qYmQyLm8KLXBsdWdpbl9ocnRpbWVyLXkgICAgICArPSBwbHVnaW5faHJ0aW1lci5vCi1wbHVnaW5fa21lbS15ICAgICAgICAgKz0gcGx1Z2luX2ttZW0ubwotcGx1Z2luX2t2bS15ICAgICAgICAgICs9IHBsdWdpbl9rdm0ubwotcGx1Z2luX21hYzgwMjExLXkgICAgICs9IHBsdWdpbl9tYWM4MDIxMS5vCi1wbHVnaW5fc2NoZWRfc3dpdGNoLXkgKz0gcGx1Z2luX3NjaGVkX3N3aXRjaC5vCi1wbHVnaW5fZnVuY3Rpb24teSAgICAgKz0gcGx1Z2luX2Z1bmN0aW9uLm8KLXBsdWdpbl94ZW4teSAgICAgICAgICArPSBwbHVnaW5feGVuLm8KLXBsdWdpbl9zY3NpLXkgICAgICAgICArPSBwbHVnaW5fc2NzaS5vCi1wbHVnaW5fY2ZnODAyMTEteSAgICAgKz0gcGx1Z2luX2NmZzgwMjExLm8KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L0RvY3VtZW50YXRpb24vbGlidHJhY2VldmVudC1ldmVudF9wcmludC50eHQgYi90b29scy9saWIvdHJhY2VldmVudC9Eb2N1bWVudGF0aW9uL2xpYnRyYWNlZXZlbnQtZXZlbnRfcHJpbnQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjNmE2MTgKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9saWIvdHJhY2VldmVudC9Eb2N1bWVudGF0aW9uL2xpYnRyYWNlZXZlbnQtZXZlbnRfcHJpbnQudHh0CkBAIC0wLDAgKzEsMTMwIEBACitsaWJ0cmFjZWV2ZW50KDMpCis9PT09PT09PT09PT09PT09CisKK05BTUUKKy0tLS0KK3RlcF9wcmludF9ldmVudCAtIFdyaXRlcyBldmVudCBpbmZvcm1hdGlvbiBpbnRvIGEgdHJhY2Ugc2VxdWVuY2UuCisKK1NZTk9QU0lTCistLS0tLS0tLQorW3ZlcnNlXQorLS0KKyojaW5jbHVkZSA8ZXZlbnQtcGFyc2UuaD4qCisqI2luY2x1ZGUgPHRyYWNlLXNlcS5oPioKKwordm9pZCAqdGVwX3ByaW50X2V2ZW50KihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfLCBzdHJ1Y3QgdHJhY2Vfc2VxcGFzczpbKl1fc18sIHN0cnVjdCB0ZXBfcmVjb3JkIHBhc3M6WypdX3JlY29yZF8sIGNvbnN0IGNoYXIgcGFzczpbKl1fZm10XywgXy4uLl8pCistLQorCitERVNDUklQVElPTgorLS0tLS0tLS0tLS0KKworVGhlIF90ZXBfcHJpbnRfZXZlbnQoKV8gZnVuY3Rpb24gcGFyc2VzIHRoZSBldmVudCBpbmZvcm1hdGlvbiBvZiB0aGUgZ2l2ZW4KK19yZWNvcmRfIGFuZCB3cml0ZXMgaXQgaW50byB0aGUgdHJhY2Ugc2VxdWVuY2UgX3NfLCBhY2NvcmRpbmcgdG8gdGhlIGZvcm1hdAorc3RyaW5nIF9mbXRfLiBUaGUgZGVzaXJlZCBpbmZvcm1hdGlvbiBpcyBzcGVjaWZpZWQgYWZ0ZXIgdGhlIGZvcm1hdCBzdHJpbmcuCitUaGUgX2ZtdF8gaXMgcHJpbnRmLWxpa2UgZm9ybWF0IHN0cmluZywgZm9sbG93aW5nIGFyZ3VtZW50cyBhcmUgc3VwcG9ydGVkOgorW3ZlcnNlXQorLS0KKwlURVBfUFJJTlRfUElELCAiJWQiICAtIFBJRCBvZiB0aGUgZXZlbnQuCisJVEVQX1BSSU5UX0NQVSwgIiVkIiAgLSBFdmVudCBDUFUuCisJVEVQX1BSSU5UX0NPTU0sICIlcyIgLSBFdmVudCBjb21tYW5kIHN0cmluZy4KKwlURVBfUFJJTlRfTkFNRSwgIiVzIiAtIEV2ZW50IG5hbWUuCisJVEVQX1BSSU5UX0xBVEVOQ1ksICIlcyIgLSBMYXRlbmN5IG9mIHRoZSBldmVudC4gSXQgcHJpbnRzIDQgb3IgbW9yZQorCQkJZmllbGRzIC0gaW50ZXJydXB0IHN0YXRlLCBzY2hlZHVsaW5nIHN0YXRlLAorCQkJY3VycmVudCBjb250ZXh0LCBhbmQgcHJlZW1wdGlvbiBjb3VudC4KKwkJCUZpZWxkIDEgaXMgdGhlIGludGVycnVwdCBlbmFibGVkIHN0YXRlOgorCQkJCWQgOiBJbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZAorCQkJCS4gOiBJbnRlcnJ1cHRzIGFyZSBlbmFibGVkCisJCQkJWCA6IFRoZSBhcmNoaXRlY3R1cmUgZG9lcyBub3Qgc3VwcG9ydCB0aGlzCisJCQkJICAgIGluZm9ybWF0aW9uCisJCQlGaWVsZCAyIGlzIHRoZSAibmVlZCByZXNjaGVkIiBzdGF0ZS4KKwkJCQlOIDogVGhlIHRhc2sgaXMgc2V0IHRvIGNhbGwgdGhlIHNjaGVkdWxlciB3aGVuCisJCQkJICAgIHBvc3NpYmxlLCBhcyBhbm90aGVyIGhpZ2hlciBwcmlvcml0eSB0YXNrCisJCQkJICAgIG1heSBuZWVkIHRvIGJlIHNjaGVkdWxlZCBpbi4KKwkJCQkuIDogVGhlIHRhc2sgaXMgbm90IHNldCB0byBjYWxsIHRoZSBzY2hlZHVsZXIuCisJCQlGaWVsZCAzIGlzIHRoZSBjb250ZXh0IHN0YXRlLgorCQkJCS4gOiBOb3JtYWwgY29udGV4dAorCQkJCXMgOiBTb2Z0IGludGVycnVwdCBjb250ZXh0CisJCQkJaCA6IEhhcmQgaW50ZXJydXB0IGNvbnRleHQKKwkJCQlIIDogSGFyZCBpbnRlcnJ1cHQgY29udGV4dCB3aGljaCB0cmlnZ2VyZWQKKwkJCQkgICAgZHVyaW5nIHNvZnQgaW50ZXJydXB0IGNvbnRleHQuCisJCQkJeiA6IE5NSSBjb250ZXh0CisJCQkJWiA6IE5NSSBjb250ZXh0IHdoaWNoIHRyaWdnZXJlZCBkdXJpbmcgaGFyZAorCQkJCSAgICBpbnRlcnJ1cHQgY29udGV4dAorCQkJRmllbGQgNCBpcyB0aGUgcHJlZW1wdGlvbiBjb3VudC4KKwkJCQkuIDogVGhlIHByZWVtcHQgY291bnQgaXMgemVyby4KKwkJCU9uIHByZWVtcHRpYmxlIGtlcm5lbHMgKHdoZXJlIHRoZSB0YXNrIGNhbiBiZSBzY2hlZHVsZWQKKwkJCW91dCBpbiBhcmJpdHJhcnkgbG9jYXRpb25zIHdoaWxlIGluIGtlcm5lbCBjb250ZXh0KSwgdGhlCisJCQlwcmVlbXB0IGNvdW50LCB3aGVuIG5vbiB6ZXJvLCB3aWxsIHByZXZlbnQgdGhlIGtlcm5lbAorCQkJZnJvbSBzY2hlZHVsaW5nIG91dCB0aGUgY3VycmVudCB0YXNrLiBUaGUgcHJlZW1wdCBjb3VudAorCQkJbnVtYmVyIGlzIGRpc3BsYXllZCB3aGVuIGl0IGlzIG5vdCB6ZXJvLgorCQkJRGVwZW5kaW5nIG9uIHRoZSBrZXJuZWwsIGl0IG1heSBzaG93IG90aGVyIGZpZWxkcworCQkJKGxvY2sgZGVwdGgsIG9yIG1pZ3JhdGlvbiBkaXNhYmxlZCwgd2hpY2ggYXJlIHVuaXF1ZSB0bworCQkJc3BlY2lhbGl6ZWQga2VybmVscykuCisJVEVQX1BSSU5UX1RJTUUsICVkIC0gZXZlbnQgdGltZSBzdGFtcC4gQSBkaXZpc29yIGFuZCBwcmVjaXNpb24gY2FuIGJlCisJCQlzcGVjaWZpZWQgYXMgcGFydCBvZiB0aGlzIGZvcm1hdCBzdHJpbmc6CisJCQkiJXByZWNpc2lvbi5kaXZpc29yZCIuIEV4YW1wbGU6CisJCQkiJTMuMTAwMGQiIC0gZGl2aWRlIHRoZSB0aW1lIGJ5IDEwMDAgYW5kIHByaW50IHRoZSBmaXJzdAorCQkJMyBkaWdpdHMgYmVmb3JlIHRoZSBkb3QuIFRodXMsIHRoZSB0aW1lIHN0YW1wCisJCQkiMTIzNDU2MDAwIiB3aWxsIGJlIHByaW50ZWQgYXMgIjEyMy40NTYiCisJVEVQX1BSSU5UX0lORk8sICIlcyIgLSBldmVudCBpbmZvcm1hdGlvbi4KKwlURVBfUFJJTlRfSU5GT19SQVcsICIlcyIgLSBldmVudCBpbmZvcm1hdGlvbiwgaW4gcmF3IGZvcm1hdC4KKworLS0KK0VYQU1QTEUKKy0tLS0tLS0KK1tzb3VyY2UsY10KKy0tCisjaW5jbHVkZSA8ZXZlbnQtcGFyc2UuaD4KKyNpbmNsdWRlIDx0cmFjZS1zZXEuaD4KKy4uLgorc3RydWN0IHRyYWNlX3NlcSBzZXE7Cit0cmFjZV9zZXFfaW5pdCgmc2VxKTsKK3N0cnVjdCB0ZXBfaGFuZGxlICp0ZXAgPSB0ZXBfYWxsb2MoKTsKKy4uLgordm9pZCBwcmludF9teV9ldmVudChzdHJ1Y3QgdGVwX3JlY29yZCAqcmVjb3JkKQoreworCXRyYWNlX3NlcV9yZXNldCgmc2VxKTsKKwl0ZXBfcHJpbnRfZXZlbnQodGVwLCBzLCByZWNvcmQsICIlMTZzLSUtNWQgWyUwM2RdICVzICU2LjEwMDBkICVzICVzIiwKKwkJCVRFUF9QUklOVF9DT01NLCBURVBfUFJJTlRfUElELCBURVBfUFJJTlRfQ1BVLAorCQkJVEVQX1BSSU5UX0xBVEVOQ1ksIFRFUF9QUklOVF9USU1FLCBURVBfUFJJTlRfTkFNRSwKKwkJCVRFUF9QUklOVF9JTkZPKTsKK30KKy4uLgorLS0KKworRklMRVMKKy0tLS0tCitbdmVyc2VdCistLQorKmV2ZW50LXBhcnNlLmgqCisJSGVhZGVyIGZpbGUgdG8gaW5jbHVkZSBpbiBvcmRlciB0byBoYXZlIGFjY2VzcyB0byB0aGUgbGlicmFyeSBBUElzLgorKnRyYWNlLXNlcS5oKgorCUhlYWRlciBmaWxlIHRvIGluY2x1ZGUgaW4gb3JkZXIgdG8gaGF2ZSBhY2Nlc3MgdG8gdHJhY2Ugc2VxdWVuY2VzIHJlbGF0ZWQgQVBJcy4KKwlUcmFjZSBzZXF1ZW5jZXMgYXJlIHVzZWQgdG8gYWxsb3cgYSBmdW5jdGlvbiB0byBjYWxsIHNldmVyYWwgb3RoZXIgZnVuY3Rpb25zCisJdG8gY3JlYXRlIGEgc3RyaW5nIG9mIGRhdGEgdG8gdXNlLgorKi1sdHJhY2VldmVudCoKKwlMaW5rZXIgc3dpdGNoIHRvIGFkZCB3aGVuIGJ1aWxkaW5nIGEgcHJvZ3JhbSB0aGF0IHVzZXMgdGhlIGxpYnJhcnkuCistLQorCitTRUUgQUxTTworLS0tLS0tLS0KK19saWJ0cmFjZWV2ZW50KDMpXywgX3RyYWNlLWNtZCgxKV8KKworQVVUSE9SCistLS0tLS0KK1t2ZXJzZV0KKy0tCisqU3RldmVuIFJvc3RlZHQqIDxyb3N0ZWR0QGdvb2RtaXMub3JnPiwgYXV0aG9yIG9mICpsaWJ0cmFjZWV2ZW50Ki4KKypUenZldG9taXIgU3RveWFub3YqIDx0ei5zdG95YW5vdkBnbWFpbC5jb20+LCBhdXRob3Igb2YgdGhpcyBtYW4gcGFnZS4KKy0tCitSRVBPUlRJTkcgQlVHUworLS0tLS0tLS0tLS0tLS0KK1JlcG9ydCBidWdzIHRvICA8bGludXgtdHJhY2UtZGV2ZWxAdmdlci5rZXJuZWwub3JnPgorCitMSUNFTlNFCistLS0tLS0tCitsaWJ0cmFjZWV2ZW50IGlzIEZyZWUgU29mdHdhcmUgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBMR1BMIDIuMQorCitSRVNPVVJDRVMKKy0tLS0tLS0tLQoraHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0CmRpZmYgLS1naXQgYS90b29scy9saWIvdHJhY2VldmVudC9Eb2N1bWVudGF0aW9uL2xpYnRyYWNlZXZlbnQtZnVuY19hcGlzLnR4dCBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L0RvY3VtZW50YXRpb24vbGlidHJhY2VldmVudC1mdW5jX2FwaXMudHh0CmluZGV4IDM4YmZlYTMuLmY2YWNhMGQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L0RvY3VtZW50YXRpb24vbGlidHJhY2VldmVudC1mdW5jX2FwaXMudHh0CisrKyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L0RvY3VtZW50YXRpb24vbGlidHJhY2VldmVudC1mdW5jX2FwaXMudHh0CkBAIC01OSwxMiArNTksMTIgQEAKIAogVGhlIF90ZXBfcmVnaXN0ZXJfZnVuY3Rpb24oKV8gZnVuY3Rpb24gcmVnaXN0ZXJzIGEgZnVuY3Rpb24gbmFtZSBtYXBwZWQgdG8gYW4KIGFkZHJlc3MgYW5kIChvcHRpb25hbCkgbW9kdWxlLiBUaGlzIG1hcHBpbmcgaXMgdXNlZCBpbiBjYXNlIHRoZSBmdW5jdGlvbiB0cmFjZXIKLW9yIGV2ZW50cyBoYXZlICIlcEYiIG9yICIlcFMiIHBhcmFtZXRlciBpbiBpdHMgZm9ybWF0IHN0cmluZy4gSXQgaXMgY29tbW9uIHRvCi1wYXNzIGluIHRoZSBrYWxsc3ltcyBmdW5jdGlvbiBuYW1lcyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgYWRkcmVzc2VzIHdpdGggdGhpcworb3IgZXZlbnRzIGhhdmUgIiVwUyIgcGFyYW1ldGVyIGluIGl0cyBmb3JtYXQgc3RyaW5nLiBJdCBpcyBjb21tb24gdG8gcGFzcyBpbgordGhlIGthbGxzeW1zIGZ1bmN0aW9uIG5hbWVzIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyBhZGRyZXNzZXMgd2l0aCB0aGlzCiBmdW5jdGlvbi4gVGhlIF90ZXBfIGFyZ3VtZW50IGlzIHRoZSB0cmFjZSBldmVudCBwYXJzZXIgY29udGV4dC4gVGhlIF9uYW1lXyBpcwotdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLCB0aGUgc3RyaW5nIGlzIGNvcGllZCBpbnRlcm5hbGx5LiBUaGUgX2FkZHJfIGlzCi10aGUgc3RhcnQgYWRkcmVzcyBvZiB0aGUgZnVuY3Rpb24uIFRoZSBfbW9kXyBpcyB0aGUga2VybmVsIG1vZHVsZQotdGhlIGZ1bmN0aW9uIG1heSBiZSBpbiAoTlVMTCBmb3Igbm9uZSkuCit0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24sIHRoZSBzdHJpbmcgaXMgY29waWVkIGludGVybmFsbHkuIFRoZSBfYWRkcl8gaXMgdGhlCitzdGFydCBhZGRyZXNzIG9mIHRoZSBmdW5jdGlvbi4gVGhlIF9tb2RfIGlzIHRoZSBrZXJuZWwgbW9kdWxlIHRoZSBmdW5jdGlvbiBtYXkKK2JlIGluIChOVUxMIGZvciBub25lKS4KIAogVGhlIF90ZXBfcmVnaXN0ZXJfcHJpbnRfc3RyaW5nKClfIGZ1bmN0aW9uICByZWdpc3RlcnMgYSBzdHJpbmcgYnkgdGhlIGFkZHJlc3MKIGl0IHdhcyBzdG9yZWQgaW4gdGhlIGtlcm5lbC4gU29tZSBzdHJpbmdzIGludGVybmFsIHRvIHRoZSBrZXJuZWwgd2l0aCBzdGF0aWMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L0RvY3VtZW50YXRpb24vbGlidHJhY2VldmVudC1oYW5kbGUudHh0IGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvRG9jdW1lbnRhdGlvbi9saWJ0cmFjZWV2ZW50LWhhbmRsZS50eHQKaW5kZXggOGQ1NjgzMS4uNDViMjAxNzJlIDEwMDY0NAotLS0gYS90b29scy9saWIvdHJhY2VldmVudC9Eb2N1bWVudGF0aW9uL2xpYnRyYWNlZXZlbnQtaGFuZGxlLnR4dAorKysgYi90b29scy9saWIvdHJhY2VldmVudC9Eb2N1bWVudGF0aW9uL2xpYnRyYWNlZXZlbnQtaGFuZGxlLnR4dApAQCAtMyw3ICszLDcgQEAKIAogTkFNRQogLS0tLQotdGVwX2FsbG9jLCB0ZXBfZnJlZSx0ZXBfcmVmLCB0ZXBfdW5yZWYsdGVwX3JlZl9nZXQgLSBDcmVhdGUsIGRlc3Ryb3ksIG1hbmFnZQordGVwX2FsbG9jLCB0ZXBfZnJlZSx0ZXBfcmVmLCB0ZXBfdW5yZWYsdGVwX2dldF9yZWYgLSBDcmVhdGUsIGRlc3Ryb3ksIG1hbmFnZQogcmVmZXJlbmNlcyBvZiB0cmFjZSBldmVudCBwYXJzZXIgY29udGV4dC4KIAogU1lOT1BTSVMKQEAgLTE2LDcgKzE2LDcgQEAKIHZvaWQgKnRlcF9mcmVlKihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfKTsKIHZvaWQgKnRlcF9yZWYqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8pOwogdm9pZCAqdGVwX3VucmVmKihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfKTsKLWludCAqdGVwX3JlZl9nZXQqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8pOworaW50ICp0ZXBfZ2V0X3JlZiooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXyk7CiAtLQogCiBERVNDUklQVElPTgpAQCAtNTcsOSArNTcsOSBAQAogLi4uCiBzdHJ1Y3QgdGVwX2hhbmRsZSAqdGVwID0gdGVwX2FsbG9jKCk7CiAuLi4KLWludCByZWYgPSB0ZXBfcmVmX2dldCh0ZXApOworaW50IHJlZiA9IHRlcF9nZXRfcmVmKHRlcCk7CiB0ZXBfcmVmKHRlcCk7Ci1pZiAoIChyZWYrMSkgIT0gdGVwX3JlZl9nZXQodGVwKSkgeworaWYgKCAocmVmKzEpICE9IHRlcF9nZXRfcmVmKHRlcCkpIHsKIAkvKiBTb21ldGhpbmcgd3JvbmcgaGFwcGVuZWQsIHRoZSBjb3VudGVyIGlzIG5vdCBpbmNyZW1lbnRlZCBieSAxICovCiB9CiB0ZXBfdW5yZWYodGVwKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L0RvY3VtZW50YXRpb24vbGlidHJhY2VldmVudC1wbHVnaW5zLnR4dCBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L0RvY3VtZW50YXRpb24vbGlidHJhY2VldmVudC1wbHVnaW5zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTYwMzJhCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvRG9jdW1lbnRhdGlvbi9saWJ0cmFjZWV2ZW50LXBsdWdpbnMudHh0CkBAIC0wLDAgKzEsOTkgQEAKK2xpYnRyYWNlZXZlbnQoMykKKz09PT09PT09PT09PT09PT0KKworTkFNRQorLS0tLQordGVwX2xvYWRfcGx1Z2lucywgdGVwX3VubG9hZF9wbHVnaW5zIC0gTG9hZCAvIHVubG9hZCB0cmFjZWV2ZW50IHBsdWdpbnMuCisKK1NZTk9QU0lTCistLS0tLS0tLQorW3ZlcnNlXQorLS0KKyojaW5jbHVkZSA8ZXZlbnQtcGFyc2UuaD4qCisKK3N0cnVjdCB0ZXBfcGx1Z2luX2xpc3QgcGFzczpbKl0qdGVwX2xvYWRfcGx1Z2lucyooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXyk7Cit2b2lkICp0ZXBfdW5sb2FkX3BsdWdpbnMqKHN0cnVjdCB0ZXBfcGx1Z2luX2xpc3QgcGFzczpbKl1fcGx1Z2luX2xpc3RfLCBzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfKTsKKy0tCisKK0RFU0NSSVBUSU9OCistLS0tLS0tLS0tLQorVGhlIF90ZXBfbG9hZF9wbHVnaW5zKClfIGZ1bmN0aW9uIGxvYWRzIGFsbCBwbHVnaW5zLCBsb2NhdGVkIGluIHRoZSBwbHVnaW4KK2RpcmVjdG9yaWVzLiBUaGUgX3RlcF8gYXJndW1lbnQgaXMgdHJhY2UgZXZlbnQgcGFyc2VyIGNvbnRleHQuCitUaGUgcGx1Z2luIGRpcmVjdG9yaWVzIGFyZSA6CitbdmVyc2VdCistLQorCS0gU3lzdGVtJ3MgcGx1Z2luIGRpcmVjdG9yeSwgZGVmaW5lZCBhdCB0aGUgbGlicmFyeSBjb21waWxlIHRpbWUuIEl0CisJICBkZXBlbmRzIG9uIHRoZSBsaWJyYXJ5IGluc3RhbGxhdGlvbiBwcmVmaXggYW5kIHVzdWFsbHkgaXMKKwkgIF8oaW5zdGFsbF9wcmVmZml4KS9saWIvdHJhY2VldmVudC9wbHVnaW5zXworCS0gRGlyZWN0b3J5LCBkZWZpbmVkIGJ5IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBfVFJBQ0VFVkVOVF9QTFVHSU5fRElSXworCS0gVXNlcidzIHBsdWdpbiBkaXJlY3RvcnksIGxvY2F0ZWQgYXQgX34vLmxvY2FsL2xpYi90cmFjZWV2ZW50L3BsdWdpbnNfCistLQorTG9hZGluZyBvZiBwbHVnaW5zIGNhbiBiZSBjb250cm9sbGVkIGJ5IHRoZSBfdGVwX2ZsYWdzXywgdXNpbmcgdGhlCitfdGVwX3NldF9mbGFnKClfIEFQSToKK1t2ZXJzZV0KKy0tCisJX1RFUF9ESVNBQkxFX1NZU19QTFVHSU5TXwktIGRvIG5vdCBsb2FkIHBsdWdpbnMsIGxvY2F0ZWQgaW4KKwkJCQkJdGhlIHN5c3RlbSdzIHBsdWdpbiBkaXJlY3RvcnkuCisJX1RFUF9ESVNBQkxFX1BMVUdJTlNfCQktIGRvIG5vdCBsb2FkIGFueSBwbHVnaW5zLgorLS0KK1RoZSBfdGVwX3NldF9mbGFnKClfIEFQSSBuZWVkcyB0byBiZSBjYWxsZWQgYmVmb3JlIF90ZXBfbG9hZF9wbHVnaW5zKClfLCBpZgorbG9hZGluZyBvZiBhbGwgcGx1Z2lucyBpcyBub3QgdGhlIGRlc2lyZWQgY2FzZS4KKworVGhlIF90ZXBfdW5sb2FkX3BsdWdpbnMoKV8gZnVuY3Rpb24gdW5sb2FkcyB0aGUgcGx1Z2lucywgcHJldmlvdXNseSBsb2FkZWQgYnkKK190ZXBfbG9hZF9wbHVnaW5zKClfLiBUaGUgX3RlcF8gYXJndW1lbnQgaXMgdHJhY2UgZXZlbnQgcGFyc2VyIGNvbnRleHQuIFRoZQorX3BsdWdpbl9saXN0XyBpcyB0aGUgbGlzdCBvZiBsb2FkZWQgcGx1Z2lucywgcmV0dXJuZWQgYnkKK3RoZSBfdGVwX2xvYWRfcGx1Z2lucygpXyBmdW5jdGlvbi4KKworUkVUVVJOIFZBTFVFCistLS0tLS0tLS0tLS0KK1RoZSBfdGVwX2xvYWRfcGx1Z2lucygpXyBmdW5jdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBzdWNjZXNzZnVsbHkgbG9hZGVkIHBsdWdpbnMsCitvciBOVUxMIGluIGNhc2Ugbm8gcGx1Z2lucyBhcmUgbG9hZGVkLgorCitFWEFNUExFCistLS0tLS0tCitbc291cmNlLGNdCistLQorI2luY2x1ZGUgPGV2ZW50LXBhcnNlLmg+CisuLi4KK3N0cnVjdCB0ZXBfaGFuZGxlICp0ZXAgPSB0ZXBfYWxsb2MoKTsKKy4uLgorc3RydWN0IHRlcF9wbHVnaW5fbGlzdCAqcGx1Z2lucyA9IHRlcF9sb2FkX3BsdWdpbnModGVwKTsKK2lmIChwbHVnaW5zID09IE5VTEwpIHsKKwkvKiBubyBwbHVnaW5zIGFyZSBsb2FkZWQgKi8KK30KKy4uLgordGVwX3VubG9hZF9wbHVnaW5zKHBsdWdpbnMsIHRlcCk7CistLQorCitGSUxFUworLS0tLS0KK1t2ZXJzZV0KKy0tCisqZXZlbnQtcGFyc2UuaCoKKwlIZWFkZXIgZmlsZSB0byBpbmNsdWRlIGluIG9yZGVyIHRvIGhhdmUgYWNjZXNzIHRvIHRoZSBsaWJyYXJ5IEFQSXMuCisqLWx0cmFjZWV2ZW50KgorCUxpbmtlciBzd2l0Y2ggdG8gYWRkIHdoZW4gYnVpbGRpbmcgYSBwcm9ncmFtIHRoYXQgdXNlcyB0aGUgbGlicmFyeS4KKy0tCisKK1NFRSBBTFNPCistLS0tLS0tLQorX2xpYnRyYWNlZXZlbnQoMylfLCBfdHJhY2UtY21kKDEpXywgX3RlcF9zZXRfZmxhZygzKV8KKworQVVUSE9SCistLS0tLS0KK1t2ZXJzZV0KKy0tCisqU3RldmVuIFJvc3RlZHQqIDxyb3N0ZWR0QGdvb2RtaXMub3JnPiwgYXV0aG9yIG9mICpsaWJ0cmFjZWV2ZW50Ki4KKypUenZldG9taXIgU3RveWFub3YqIDx0ei5zdG95YW5vdkBnbWFpbC5jb20+LCBhdXRob3Igb2YgdGhpcyBtYW4gcGFnZS4KKy0tCitSRVBPUlRJTkcgQlVHUworLS0tLS0tLS0tLS0tLS0KK1JlcG9ydCBidWdzIHRvICA8bGludXgtdHJhY2UtZGV2ZWxAdmdlci5rZXJuZWwub3JnPgorCitMSUNFTlNFCistLS0tLS0tCitsaWJ0cmFjZWV2ZW50IGlzIEZyZWUgU29mdHdhcmUgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBMR1BMIDIuMQorCitSRVNPVVJDRVMKKy0tLS0tLS0tLQoraHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0CmRpZmYgLS1naXQgYS90b29scy9saWIvdHJhY2VldmVudC9Eb2N1bWVudGF0aW9uL2xpYnRyYWNlZXZlbnQudHh0IGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvRG9jdW1lbnRhdGlvbi9saWJ0cmFjZWV2ZW50LnR4dAppbmRleCBmYmQ5NzdiLi5kNTMwYTdjIDEwMDY0NAotLS0gYS90b29scy9saWIvdHJhY2VldmVudC9Eb2N1bWVudGF0aW9uL2xpYnRyYWNlZXZlbnQudHh0CisrKyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L0RvY3VtZW50YXRpb24vbGlidHJhY2VldmVudC50eHQKQEAgLTE2LDcgKzE2LDcgQEAKIAl2b2lkICp0ZXBfZnJlZSooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXyk7CiAJdm9pZCAqdGVwX3JlZiooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXyk7CiAJdm9pZCAqdGVwX3VucmVmKihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfKTsKLQlpbnQgKnRlcF9yZWZfZ2V0KihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfKTsKKwlpbnQgKnRlcF9nZXRfcmVmKihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfKTsKIAl2b2lkICp0ZXBfc2V0X2ZsYWcqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8sIGVudW0gdGVwX2ZsYWcgX2ZsYWdfKTsKIAl2b2lkICp0ZXBfY2xlYXJfZmxhZyooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgZW51bSB0ZXBfZmxhZyBfZmxhZ18pOwogCWJvb2wgKnRlcF90ZXN0X2ZsYWcqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8sIGVudW0gdGVwX2ZsYWcgX2ZsYWdzXyk7CkBAIC0yNiwxNSArMjYsMTIgQEAKIAl2b2lkICp0ZXBfc2V0X2xvbmdfc2l6ZSooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgaW50IF9sb25nX3NpemVfKTsKIAlpbnQgKnRlcF9nZXRfcGFnZV9zaXplKihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfKTsKIAl2b2lkICp0ZXBfc2V0X3BhZ2Vfc2l6ZSooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgaW50IF9wYWdlX3NpemVfKTsKLQlib29sICp0ZXBfaXNfbGF0ZW5jeV9mb3JtYXQqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8pOwotCXZvaWQgKnRlcF9zZXRfbGF0ZW5jeV9mb3JtYXQqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8sIGludCBfbGF0Xyk7CiAJaW50ICp0ZXBfZ2V0X2hlYWRlcl9wYWdlX3NpemUqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8pOwogCWludCAqdGVwX2dldF9oZWFkZXJfdGltZXN0YW1wX3NpemUqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8pOwogCWJvb2wgKnRlcF9pc19vbGRfZm9ybWF0KihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfKTsKIAlpbnQgKnRlcF9zdHJlcnJvciooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgZW51bSB0ZXBfZXJybm8gX2Vycm51bV8sIGNoYXIgcGFzczpbKl1fYnVmXywgc2l6ZV90IF9idWZsZW5fKTsKIAogUmVnaXN0ZXIgLyB1bnJlZ2lzdGVyIEFQSXM6Ci0JaW50ICp0ZXBfcmVnaXN0ZXJfdHJhY2VfY2xvY2sqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8sIGNvbnN0IGNoYXIgcGFzczpbKl1fdHJhY2VfY2xvY2tfKTsKIAlpbnQgKnRlcF9yZWdpc3Rlcl9mdW5jdGlvbiooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgY2hhciBwYXNzOlsqXV9uYW1lXywgdW5zaWduZWQgbG9uZyBsb25nIF9hZGRyXywgY2hhciBwYXNzOlsqXV9tb2RfKTsKIAlpbnQgKnRlcF9yZWdpc3Rlcl9ldmVudF9oYW5kbGVyKihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfLCBpbnQgX2lkXywgY29uc3QgY2hhciBwYXNzOlsqXV9zeXNfbmFtZV8sIGNvbnN0IGNoYXIgcGFzczpbKl1fZXZlbnRfbmFtZV8sIHRlcF9ldmVudF9oYW5kbGVyX2Z1bmMgX2Z1bmNfLCB2b2lkIHBhc3M6WypdX2NvbnRleHRfKTsKIAlpbnQgKnRlcF91bnJlZ2lzdGVyX2V2ZW50X2hhbmRsZXIqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypddGVwLCBpbnQgaWQsIGNvbnN0IGNoYXIgcGFzczpbKl1zeXNfbmFtZSwgY29uc3QgY2hhciBwYXNzOlsqXWV2ZW50X25hbWUsIHRlcF9ldmVudF9oYW5kbGVyX2Z1bmMgZnVuYywgdm9pZCBwYXNzOlsqXV9jb250ZXh0Xyk7CkBAIC01NywxNCArNTQsNyBAQAogCWludCAqdGVwX2dldF9ldmVudHNfY291bnQqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8pOwogCXN0cnVjdCB0ZXBfZXZlbnQgcGFzczpbKl1wYXNzOlsqXSp0ZXBfbGlzdF9ldmVudHMqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8sIGVudW0gdGVwX2V2ZW50X3NvcnRfdHlwZSBfc29ydF90eXBlXyk7CiAJc3RydWN0IHRlcF9ldmVudCBwYXNzOlsqXXBhc3M6WypdKnRlcF9saXN0X2V2ZW50c19jb3B5KihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfLCBlbnVtIHRlcF9ldmVudF9zb3J0X3R5cGUgX3NvcnRfdHlwZV8pOwotCi1FdmVudCBwcmludGluZzoKLQl2b2lkICp0ZXBfcHJpbnRfZXZlbnQqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8sIHN0cnVjdCB0cmFjZV9zZXEgcGFzczpbKl1fc18sIHN0cnVjdCB0ZXBfcmVjb3JkIHBhc3M6WypdX3JlY29yZF8sIGJvb2wgX3VzZV90cmFjZV9jbG9ja18pOwotCXZvaWQgKnRlcF9wcmludF9ldmVudF9kYXRhKihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfLCBzdHJ1Y3QgdHJhY2Vfc2VxIHBhc3M6WypdX3NfLCBzdHJ1Y3QgdGVwX2V2ZW50IHBhc3M6WypdX2V2ZW50Xywgc3RydWN0IHRlcF9yZWNvcmQgcGFzczpbKl1fcmVjb3JkXyk7Ci0Jdm9pZCAqdGVwX2V2ZW50X2luZm8qKHN0cnVjdCB0cmFjZV9zZXEgcGFzczpbKl1fc18sIHN0cnVjdCB0ZXBfZXZlbnQgcGFzczpbKl1fZXZlbnRfLCBzdHJ1Y3QgdGVwX3JlY29yZCBwYXNzOlsqXV9yZWNvcmRfKTsKLQl2b2lkICp0ZXBfcHJpbnRfZXZlbnRfdGFzayooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgc3RydWN0IHRyYWNlX3NlcSBwYXNzOlsqXV9zXywgc3RydWN0IHRlcF9ldmVudCBwYXNzOlsqXV9ldmVudF8sIHN0cnVjdCB0ZXBfcmVjb3JkIHBhc3M6WypdX3JlY29yZF8pOwotCXZvaWQgKnRlcF9wcmludF9ldmVudF90aW1lKihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfLCBzdHJ1Y3QgdHJhY2Vfc2VxIHBhc3M6WypdX3NfLCBzdHJ1Y3QgdGVwX2V2ZW50IHBhc3M6WypdX2V2ZW50Xywgc3RydWN0IHRlcF9yZWNvcmQgcGFzczpbKl1yZWNvcmQsIGJvb2wgX3VzZV90cmFjZV9jbG9ja18pOwotCXZvaWQgKnRlcF9zZXRfcHJpbnRfcmF3KihzdHJ1Y3QgdGVwX2hhbmRsZSBwYXNzOlsqXV90ZXBfLCBpbnQgX3ByaW50X3Jhd18pOworCXZvaWQgKnRlcF9wcmludF9ldmVudCooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgc3RydWN0IHRyYWNlX3NlcSBwYXNzOlsqXV9zXywgc3RydWN0IHRlcF9yZWNvcmQgcGFzczpbKl1fcmVjb3JkXywgY29uc3QgY2hhciBwYXNzOlsqXV9mbXRfLCBfLi4uXyk7CiAKIEV2ZW50IGZpbmRpbmc6CiAJc3RydWN0IHRlcF9ldmVudCBwYXNzOlsqXSp0ZXBfZmluZF9ldmVudCooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgaW50IF9pZF8pOwpAQCAtMTE2LDcgKzEwNiw2IEBACiAJaW50ICp0ZXBfZmlsdGVyX2NvbXBhcmUqKHN0cnVjdCB0ZXBfZXZlbnRfZmlsdGVyIHBhc3M6WypdX2ZpbHRlcjFfLCBzdHJ1Y3QgdGVwX2V2ZW50X2ZpbHRlciBwYXNzOlsqXV9maWx0ZXIyXyk7CiAKIFBhcnNpbmcgdmFyaW91cyBkYXRhIGZyb20gdGhlIHJlY29yZHM6Ci0Jdm9pZCAqdGVwX2RhdGFfbGF0ZW5jeV9mb3JtYXQqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8sIHN0cnVjdCB0cmFjZV9zZXEgcGFzczpbKl1fc18sIHN0cnVjdCB0ZXBfcmVjb3JkIHBhc3M6WypdX3JlY29yZF8pOwogCWludCAqdGVwX2RhdGFfdHlwZSooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgc3RydWN0IHRlcF9yZWNvcmQgcGFzczpbKl1fcmVjXyk7CiAJaW50ICp0ZXBfZGF0YV9waWQqKHN0cnVjdCB0ZXBfaGFuZGxlIHBhc3M6WypdX3RlcF8sIHN0cnVjdCB0ZXBfcmVjb3JkIHBhc3M6WypdX3JlY18pOwogCWludCAqdGVwX2RhdGFfcHJlZW1wdF9jb3VudCooc3RydWN0IHRlcF9oYW5kbGUgcGFzczpbKl1fdGVwXywgc3RydWN0IHRlcF9yZWNvcmQgcGFzczpbKl1fcmVjXyk7CmRpZmYgLS1naXQgYS90b29scy9saWIvdHJhY2VldmVudC9NYWtlZmlsZSBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L01ha2VmaWxlCmluZGV4IGEzOWNkZDAuLjUzMTVmMzcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L01ha2VmaWxlCisrKyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L01ha2VmaWxlCkBAIC01OCwzMCArNTgsNiBAQAogZXhwb3J0IERFU1RESVIgREVTVERJUl9TUQogZXhwb3J0IEVWRU5UX1BBUlNFX1ZFUlNJT04KIAotc2V0X3BsdWdpbl9kaXIgOj0gMQotCi0jIFNldCBwbHVnaW5fZGlyIHRvIHByZWZmZXJlZCBnbG9iYWwgcGx1Z2luIGxvY2F0aW9uCi0jIElmIHdlIGluc3RhbGwgdW5kZXIgJEhPTUUgZGlyZWN0b3J5IHdlIGdvIHVuZGVyCi0jICQoSE9NRSkvLmxvY2FsL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMKLSMKLSMgV2UgZG9udCBzZXQgUExVR0lOX0RJUiBpbiBjYXNlIHdlIGluc3RhbGwgdW5kZXIgJEhPTUUKLSMgZGlyZWN0b3J5LCBiZWNhdXNlIGJ5IGRlZmF1bHQgdGhlIGNvZGUgbG9va3MgdW5kZXI6Ci0jICQoSE9NRSkvLmxvY2FsL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMgYnkgZGVmYXVsdC4KLSMKLWlmZXEgKCQocGx1Z2luX2RpciksKQotaWZlcSAoJChwcmVmaXgpLCQoSE9NRSkpCi1vdmVycmlkZSBwbHVnaW5fZGlyID0gJChIT01FKS8ubG9jYWwvbGliL3RyYWNlZXZlbnQvcGx1Z2lucwotc2V0X3BsdWdpbl9kaXIgOj0gMAotZWxzZQotb3ZlcnJpZGUgcGx1Z2luX2RpciA9ICQobGliZGlyKS90cmFjZWV2ZW50L3BsdWdpbnMKLWVuZGlmCi1lbmRpZgotCi1pZmVxICgkKHNldF9wbHVnaW5fZGlyKSwxKQotUExVR0lOX0RJUiA9IC1EUExVR0lOX0RJUj0iJChwbHVnaW5fZGlyKSIKLVBMVUdJTl9ESVJfU1EgPSAnJChzdWJzdCAnLCdcJycsJChQTFVHSU5fRElSKSknCi1lbmRpZgotCiBpbmNsdWRlIC4uLy4uL3NjcmlwdHMvTWFrZWZpbGUuaW5jbHVkZQogCiAjIGNvcHkgYSBiaXQgZnJvbSBMaW51eCBrYnVpbGQKQEAgLTEwNSw3ICs4MSw2IEBACiAjIFNoZWxsIHF1b3RlcwogbGliZGlyX1NRID0gJChzdWJzdCAnLCdcJycsJChsaWJkaXIpKQogbGliZGlyX3JlbGF0aXZlX1NRID0gJChzdWJzdCAnLCdcJycsJChsaWJkaXJfcmVsYXRpdmUpKQotcGx1Z2luX2Rpcl9TUSA9ICQoc3Vic3QgJywnXCcnLCQocGx1Z2luX2RpcikpCiAKIENPTkZJR19JTkNMVURFUyA9IAogQ09ORklHX0xJQlMJPQpAQCAtMTUxLDI5ICsxMjYsMTQgQEAKIGV4cG9ydCBzcmN0cmVlIE9VVFBVVCBDQyBMRCBDRkxBR1MgVgogYnVpbGQgOj0gLWYgJChzcmN0cmVlKS90b29scy9idWlsZC9NYWtlZmlsZS5idWlsZCBkaXI9LiBvYmoKIAotUExVR0lOUyAgPSBwbHVnaW5famJkMi5zbwotUExVR0lOUyArPSBwbHVnaW5faHJ0aW1lci5zbwotUExVR0lOUyArPSBwbHVnaW5fa21lbS5zbwotUExVR0lOUyArPSBwbHVnaW5fa3ZtLnNvCi1QTFVHSU5TICs9IHBsdWdpbl9tYWM4MDIxMS5zbwotUExVR0lOUyArPSBwbHVnaW5fc2NoZWRfc3dpdGNoLnNvCi1QTFVHSU5TICs9IHBsdWdpbl9mdW5jdGlvbi5zbwotUExVR0lOUyArPSBwbHVnaW5feGVuLnNvCi1QTFVHSU5TICs9IHBsdWdpbl9zY3NpLnNvCi1QTFVHSU5TICs9IHBsdWdpbl9jZmc4MDIxMS5zbwotCi1QTFVHSU5TICAgIDo9ICQoYWRkcHJlZml4ICQoT1VUUFVUKSwkKFBMVUdJTlMpKQotUExVR0lOU19JTiA6PSAkKFBMVUdJTlM6LnNvPS1pbi5vKQotCiBURV9JTiAgICAgIDo9ICQoT1VUUFVUKWxpYnRyYWNlZXZlbnQtaW4ubwogTElCX1RBUkdFVCA6PSAkKGFkZHByZWZpeCAkKE9VVFBVVCksJChMSUJfVEFSR0VUKSkKLURZTkFNSUNfTElTVF9GSUxFIDo9ICQoT1VUUFVUKWxpYnRyYWNlZXZlbnQtZHluYW1pYy1saXN0CiAKLUNNRF9UQVJHRVRTID0gJChMSUJfVEFSR0VUKSAkKFBMVUdJTlMpICQoRFlOQU1JQ19MSVNUX0ZJTEUpCitDTURfVEFSR0VUUyA9ICQoTElCX1RBUkdFVCkKIAogVEFSR0VUUyA9ICQoQ01EX1RBUkdFVFMpCiAKLWFsbDogYWxsX2NtZAorYWxsOiBhbGxfY21kIHBsdWdpbnMKIAogYWxsX2NtZDogJChDTURfVEFSR0VUUykKIApAQCAtMTg4LDE3ICsxNDgsNiBAQAogJChPVVRQVVQpbGlidHJhY2VldmVudC5hOiAkKFRFX0lOKQogCSQoUVVJRVRfTElOSykkKFJNKSAkQDsgJChBUikgcmNzICRAICReCiAKLSQoT1VUUFVUKWxpYnRyYWNlZXZlbnQtZHluYW1pYy1saXN0OiAkKFBMVUdJTlMpCi0JJChRVUlFVF9HRU4pJChjYWxsIGRvX2dlbmVyYXRlX2R5bmFtaWNfbGlzdF9maWxlLCAkKFBMVUdJTlMpLCAkQCkKLQotcGx1Z2luczogJChQTFVHSU5TKQotCi1fX3BsdWdpbl9vYmogPSAkKG5vdGRpciAkQCkKLSAgcGx1Z2luX29iaiA9ICQoX19wbHVnaW5fb2JqOi1pbi5vPSkKLQotJChQTFVHSU5TX0lOKTogZm9yY2UKLQkkKFEpJChNQUtFKSAkKGJ1aWxkKT0kKHBsdWdpbl9vYmopCi0KICQoT1VUUFVUKSUuc286ICQoT1VUUFVUKSUtaW4ubwogCSQoUVVJRVRfTElOSykkKENDKSAkKENGTEFHUykgLXNoYXJlZCAkKExERkxBR1MpIC1ub3N0YXJ0ZmlsZXMgLW8gJEAgJF4KIApAQCAtMjU4LDI1ICsyMDcsNiBAQAogCSQoSU5TVEFMTCkgJChpZiAkMywtbSAkMywpICQxICckKERFU1RESVJfU1EpJDInCiBlbmRlZgogCi1kZWZpbmUgZG9faW5zdGFsbF9wbHVnaW5zCi0JZm9yIHBsdWdpbiBpbiAkMTsgZG8JCQkJXAotCSAgJChjYWxsIGRvX2luc3RhbGwsJCRwbHVnaW4sJChwbHVnaW5fZGlyX1NRKSk7CVwKLQlkb25lCi1lbmRlZgotCi1kZWZpbmUgZG9fZ2VuZXJhdGVfZHluYW1pY19saXN0X2ZpbGUKLQlzeW1ib2xfdHlwZT1gJChOTSkgLXUgLUQgJDEgfCBhd2sgJ05GPjEge3ByaW50ICQkMX0nIHwgXAotCXhhcmdzIGVjaG8gIlUgdyBXIiB8IHRyICd3ICcgJ1dcbicgfCBzb3J0IC11IHwgeGFyZ3MgZWNob2A7XAotCWlmIFsgIiQkc3ltYm9sX3R5cGUiID0gIlUgVyIgXTt0aGVuCQkJCVwKLQkJKGVjaG8gJ3snOwkJCQkJCVwKLQkJJChOTSkgLXUgLUQgJDEgfCBhd2sgJ05GPjEge3ByaW50ICJcdCIkJDIiOyJ9JyB8IHNvcnQgLXU7XAotCQllY2hvICd9Oyc7CQkJCQkJXAotCQkpID4gJDI7CQkJCQkJCVwKLQllbHNlCQkJCQkJCQlcCi0JCShlY2hvIEVpdGhlciBtaXNzaW5nIG9uZSBvZiBbJDFdIG9yIGJhZCB2ZXJzaW9uIG9mICQoTk0pKSAxPiYyO1wKLQlmaQotZW5kZWYKLQogUEtHX0NPTkZJR19GSUxFID0gbGlidHJhY2VldmVudC5wYwogZGVmaW5lIGRvX2luc3RhbGxfcGtnY29uZmlnX2ZpbGUKIAlpZiBbIC1uICIke3BrZ2NvbmZpZ19kaXJ9IiBdOyB0aGVuIAkJCQkJXApAQCAtMjk2LDEwICsyMjYsNiBAQAogCQkkKGNhbGwgZG9faW5zdGFsbF9ta2RpciwkKGxpYmRpcl9TUSkpOyBcCiAJCWNwIC1mcFIgJChMSUJfSU5TVEFMTCkgJChERVNURElSKSQobGliZGlyX1NRKQogCi1pbnN0YWxsX3BsdWdpbnM6ICQoUExVR0lOUykKLQkkKGNhbGwgUVVJRVRfSU5TVEFMTCwgdHJhY2VfcGx1Z2lucykgXAotCQkkKGNhbGwgZG9faW5zdGFsbF9wbHVnaW5zLCAkKFBMVUdJTlMpKQotCiBpbnN0YWxsX3BrZ2NvbmZpZzoKIAkkKGNhbGwgUVVJRVRfSU5TVEFMTCwgJChQS0dfQ09ORklHX0ZJTEUpKSBcCiAJCSQoY2FsbCBkb19pbnN0YWxsX3BrZ2NvbmZpZ19maWxlLCQocHJlZml4KSkKQEAgLTMxMyw3ICsyMzksNyBAQAogCiBpbnN0YWxsOiBpbnN0YWxsX2xpYgogCi1jbGVhbjoKK2NsZWFuOiBjbGVhbl9wbHVnaW5zCiAJJChjYWxsIFFVSUVUX0NMRUFOLCBsaWJ0cmFjZWV2ZW50KSBcCiAJCSQoUk0pICoubyAqfiAkKFRBUkdFVFMpICouYSAqLnNvICQoVkVSU0lPTl9GSUxFUykgLiouZCAuKi5jbWQ7IFwKIAkJJChSTSkgVFJBQ0VFVkVOVC1DRkxBR1MgdGFncyBUQUdTOyBcCkBAIC0zNTEsNyArMjc3LDE5IEBACiAJQGVjaG8gJyAgZG9jLWluc3RhbGwgICAgICAgICAtIGluc3RhbGwgdGhlIG1hbiBwYWdlcycKIAlAZWNobyAnICBkb2MtdW5pbnN0YWxsICAgICAgIC0gdW5pbnN0YWxsIHRoZSBtYW4gcGFnZXMnCiAJQGVjaG8nJwotUEhPTlkgKz0gZm9yY2UgcGx1Z2lucworCitQSE9OWSArPSBwbHVnaW5zCitwbHVnaW5zOgorCSQoY2FsbCBkZXNjZW5kLHBsdWdpbnMpCisKK1BIT05ZICs9IGluc3RhbGxfcGx1Z2lucworaW5zdGFsbF9wbHVnaW5zOgorCSQoY2FsbCBkZXNjZW5kLHBsdWdpbnMsaW5zdGFsbCkKKworUEhPTlkgKz0gY2xlYW5fcGx1Z2lucworY2xlYW5fcGx1Z2luczoKKwkkKGNhbGwgZGVzY2VuZCxwbHVnaW5zLGNsZWFuKQorCiBmb3JjZToKIAogIyBEZWNsYXJlIHRoZSBjb250ZW50cyBvZiB0aGUgLlBIT05ZIHZhcmlhYmxlIGFzIHBob255LiAgV2Uga2VlcCB0aGF0CmRpZmYgLS1naXQgYS90b29scy9saWIvdHJhY2VldmVudC9ldmVudC1wYXJzZS5jIGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvZXZlbnQtcGFyc2UuYwppbmRleCBiYjIyMjM4Li5kOTQ4NDc1IDEwMDY0NAotLS0gYS90b29scy9saWIvdHJhY2VldmVudC9ldmVudC1wYXJzZS5jCisrKyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L2V2ZW50LXBhcnNlLmMKQEAgLTQzNjcsMTAgKzQzNjcsMjAgQEAgc3RhdGljIHN0cnVjdCB0ZXBfcHJpbnRfYXJnICptYWtlX2JwcmludF9hcmdzKGNoYXIgKmZtdCwgdm9pZCAqZGF0YSwgaW50IHNpemUsIHMKIAkJCQkJc3dpdGNoICgqcHRyKSB7CiAJCQkJCWNhc2UgJ3MnOgogCQkJCQljYXNlICdTJzoKLQkJCQkJY2FzZSAnZic6Ci0JCQkJCWNhc2UgJ0YnOgogCQkJCQljYXNlICd4JzoKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlICdmJzoKKwkJCQkJY2FzZSAnRic6CisJCQkJCQkvKgorCQkJCQkJICogUHJlLTUuNSBrZXJuZWxzIHVzZSAlcGYgYW5kCisJCQkJCQkgKiAlcEYgZm9yIHByaW50aW5nIHN5bWJvbHMKKwkJCQkJCSAqIHdoaWxlIGtlcm5lbHMgc2luY2UgNS41IHVzZQorCQkJCQkJICogJXBmdyBmb3IgZndub2Rlcy4gU28gY2hlY2sKKwkJCQkJCSAqICVwW2ZGXSBpc24ndCBmb2xsb3dlZCBieSAndycuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChwdHJbMV0gIT0gJ3cnKQorCQkJCQkJCWJyZWFrOworCQkJCQkJLyogZmFsbCB0aHJvdWdoICovCiAJCQkJCWRlZmF1bHQ6CiAJCQkJCQkvKgogCQkJCQkJICogT2xkZXIga2VybmVscyBkbyBub3QgcHJvY2VzcwpAQCAtNDQ4NywxMiArNDQ5NywxMiBAQCBnZXRfYnByaW50X2Zvcm1hdCh2b2lkICpkYXRhLCBpbnQgc2l6ZSBfX21heWJlX3VudXNlZCwKIAogCXByaW50ayA9IGZpbmRfcHJpbnRrKHRlcCwgYWRkcik7CiAJaWYgKCFwcmludGspIHsKLQkJaWYgKGFzcHJpbnRmKCZmb3JtYXQsICIlJXBmOiAoTk8gRk9STUFUIEZPVU5EIGF0ICVsbHgpXG4iLCBhZGRyKSA8IDApCisJCWlmIChhc3ByaW50ZigmZm9ybWF0LCAiJSVwczogKE5PIEZPUk1BVCBGT1VORCBhdCAlbGx4KVxuIiwgYWRkcikgPCAwKQogCQkJcmV0dXJuIE5VTEw7CiAJCXJldHVybiBmb3JtYXQ7CiAJfQogCi0JaWYgKGFzcHJpbnRmKCZmb3JtYXQsICIlczogJXMiLCAiJXBmIiwgcHJpbnRrLT5wcmludGspIDwgMCkKKwlpZiAoYXNwcmludGYoJmZvcm1hdCwgIiVzOiAlcyIsICIlcHMiLCBwcmludGstPnByaW50aykgPCAwKQogCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiBmb3JtYXQ7CkBAIC01NTE3LDggKzU1MjcsMTAgQEAgc3RhdGljIHZvaWQgcHJpbnRfZXZlbnRfdGltZShzdHJ1Y3QgdGVwX2hhbmRsZSAqdGVwLCBzdHJ1Y3QgdHJhY2Vfc2VxICpzLAogCWlmIChkaXZzdHIgJiYgaXNkaWdpdCgqKGRpdnN0ciArIDEpKSkKIAkJZGl2ID0gYXRvaShkaXZzdHIgKyAxKTsKIAl0aW1lID0gcmVjb3JkLT50czsKLQlpZiAoZGl2KQorCWlmIChkaXYpIHsKKwkJdGltZSArPSBkaXYgLyAyOwogCQl0aW1lIC89IGRpdjsKKwl9CiAJcHIgPSBwcmVjOwogCXdoaWxlIChwci0tKQogCQlwMTAgKj0gMTA7CmRpZmYgLS1naXQgYS90b29scy9saWIvdHJhY2VldmVudC9ldmVudC1wYXJzZS5oIGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvZXZlbnQtcGFyc2UuaAppbmRleCBkNDM4ZWU0Li5iNzc4MzdmIDEwMDY0NAotLS0gYS90b29scy9saWIvdHJhY2VldmVudC9ldmVudC1wYXJzZS5oCisrKyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L2V2ZW50LXBhcnNlLmgKQEAgLTQ0MSw2ICs0NDEsOCBAQCBpbnQgdGVwX3JlZ2lzdGVyX3ByaW50X3N0cmluZyhzdHJ1Y3QgdGVwX2hhbmRsZSAqdGVwLCBjb25zdCBjaGFyICpmbXQsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYWRkcik7CiBib29sIHRlcF9pc19waWRfcmVnaXN0ZXJlZChzdHJ1Y3QgdGVwX2hhbmRsZSAqdGVwLCBpbnQgcGlkKTsKIAorc3RydWN0IHRlcF9ldmVudCAqdGVwX2dldF9ldmVudChzdHJ1Y3QgdGVwX2hhbmRsZSAqdGVwLCBpbnQgaW5kZXgpOworCiAjZGVmaW5lIFRFUF9QUklOVF9JTkZPCQkiSU5GTyIKICNkZWZpbmUgVEVQX1BSSU5UX0lORk9fUkFXCSJJTkZPX1JBVyIKICNkZWZpbmUgVEVQX1BSSU5UX0NPTU0JCSJDT01NIgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2lucy9CdWlsZCBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvQnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEwZDI2OQotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvQnVpbGQKQEAgLTAsMCArMSwxMCBAQAorcGx1Z2luX2piZDIteSAgICAgICAgICs9IHBsdWdpbl9qYmQyLm8KK3BsdWdpbl9ocnRpbWVyLXkgICAgICArPSBwbHVnaW5faHJ0aW1lci5vCitwbHVnaW5fa21lbS15ICAgICAgICAgKz0gcGx1Z2luX2ttZW0ubworcGx1Z2luX2t2bS15ICAgICAgICAgICs9IHBsdWdpbl9rdm0ubworcGx1Z2luX21hYzgwMjExLXkgICAgICs9IHBsdWdpbl9tYWM4MDIxMS5vCitwbHVnaW5fc2NoZWRfc3dpdGNoLXkgKz0gcGx1Z2luX3NjaGVkX3N3aXRjaC5vCitwbHVnaW5fZnVuY3Rpb24teSAgICAgKz0gcGx1Z2luX2Z1bmN0aW9uLm8KK3BsdWdpbl94ZW4teSAgICAgICAgICArPSBwbHVnaW5feGVuLm8KK3BsdWdpbl9zY3NpLXkgICAgICAgICArPSBwbHVnaW5fc2NzaS5vCitwbHVnaW5fY2ZnODAyMTEteSAgICAgKz0gcGx1Z2luX2NmZzgwMjExLm8KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvTWFrZWZpbGUgYi90b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5zL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NDA5ODkKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5zL01ha2VmaWxlCkBAIC0wLDAgKzEsMjIyIEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisKKyNNQUtFRkxBR1MgKz0gLS1uby1wcmludC1kaXJlY3RvcnkKKworCisjIE1ha2VmaWxlcyBzdWNrOiBUaGlzIG1hY3JvIHNldHMgYSBkZWZhdWx0IHZhbHVlIG9mICQoMikgZm9yIHRoZQorIyB2YXJpYWJsZSBuYW1lZCBieSAkKDEpLCB1bmxlc3MgdGhlIHZhcmlhYmxlIGhhcyBiZWVuIHNldCBieQorIyBlbnZpcm9ubWVudCBvciBjb21tYW5kIGxpbmUuIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBDQyBhbmQgQVIKKyMgYmVjYXVzZSBtYWtlIHNldHMgZGVmYXVsdCB2YWx1ZXMsIHNvIHRoZSBzaW1wbGVyID89IGFwcHJvYWNoCisjIHdvbid0IHdvcmsgYXMgZXhwZWN0ZWQuCitkZWZpbmUgYWxsb3ctb3ZlcnJpZGUKKyAgJChpZiAkKG9yICQoZmluZHN0cmluZyBlbnZpcm9ubWVudCwkKG9yaWdpbiAkKDEpKSksXAorICAgICAgICAgICAgJChmaW5kc3RyaW5nIGNvbW1hbmQgbGluZSwkKG9yaWdpbiAkKDEpKSkpLCxcCisgICAgJChldmFsICQoMSkgPSAkKDIpKSkKK2VuZGVmCisKKyMgQWxsb3cgc2V0dGluZyBDQyBhbmQgQVIsIG9yIHNldHRpbmcgQ1JPU1NfQ09NUElMRSBhcyBhIHByZWZpeC4KKyQoY2FsbCBhbGxvdy1vdmVycmlkZSxDQywkKENST1NTX0NPTVBJTEUpZ2NjKQorJChjYWxsIGFsbG93LW92ZXJyaWRlLEFSLCQoQ1JPU1NfQ09NUElMRSlhcikKKyQoY2FsbCBhbGxvdy1vdmVycmlkZSxOTSwkKENST1NTX0NPTVBJTEUpbm0pCiskKGNhbGwgYWxsb3ctb3ZlcnJpZGUsUEtHX0NPTkZJRyxwa2ctY29uZmlnKQorCitFWFQgPSAtc3RkPWdudTk5CitJTlNUQUxMID0gaW5zdGFsbAorCisjIFVzZSBERVNURElSIGZvciBpbnN0YWxsaW5nIGludG8gYSBkaWZmZXJlbnQgcm9vdCBkaXJlY3RvcnkuCisjIFRoaXMgaXMgdXNlZnVsIGZvciBidWlsZGluZyBhIHBhY2thZ2UuIFRoZSBwcm9ncmFtIHdpbGwgYmUKKyMgaW5zdGFsbGVkIGluIHRoaXMgZGlyZWN0b3J5IGFzIGlmIGl0IHdhcyB0aGUgcm9vdCBkaXJlY3RvcnkuCisjIFRoZW4gdGhlIGJ1aWxkIHRvb2wgY2FuIG1vdmUgaXQgbGF0ZXIuCitERVNURElSID89CitERVNURElSX1NRID0gJyQoc3Vic3QgJywnXCcnLCQoREVTVERJUikpJworCitMUDY0IDo9ICQoc2hlbGwgZWNobyBfX0xQNjRfXyB8ICR7Q0N9ICR7Q0ZMQUdTfSAtRSAteCBjIC0gfCB0YWlsIC1uIDEpCitpZmVxICgkKExQNjQpLCAxKQorICBsaWJkaXJfcmVsYXRpdmUgPSBsaWI2NAorZWxzZQorICBsaWJkaXJfcmVsYXRpdmUgPSBsaWIKK2VuZGlmCisKK3ByZWZpeCA/PSAvdXNyL2xvY2FsCitsaWJkaXIgPSAkKHByZWZpeCkvJChsaWJkaXJfcmVsYXRpdmUpCisKK3NldF9wbHVnaW5fZGlyIDo9IDEKKworIyBTZXQgcGx1Z2luX2RpciB0byBwcmVmZmVyZWQgZ2xvYmFsIHBsdWdpbiBsb2NhdGlvbgorIyBJZiB3ZSBpbnN0YWxsIHVuZGVyICRIT01FIGRpcmVjdG9yeSB3ZSBnbyB1bmRlcgorIyAkKEhPTUUpLy5sb2NhbC9saWIvdHJhY2VldmVudC9wbHVnaW5zCisjCisjIFdlIGRvbnQgc2V0IFBMVUdJTl9ESVIgaW4gY2FzZSB3ZSBpbnN0YWxsIHVuZGVyICRIT01FCisjIGRpcmVjdG9yeSwgYmVjYXVzZSBieSBkZWZhdWx0IHRoZSBjb2RlIGxvb2tzIHVuZGVyOgorIyAkKEhPTUUpLy5sb2NhbC9saWIvdHJhY2VldmVudC9wbHVnaW5zIGJ5IGRlZmF1bHQuCisjCitpZmVxICgkKHBsdWdpbl9kaXIpLCkKK2lmZXEgKCQocHJlZml4KSwkKEhPTUUpKQorb3ZlcnJpZGUgcGx1Z2luX2RpciA9ICQoSE9NRSkvLmxvY2FsL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMKK3NldF9wbHVnaW5fZGlyIDo9IDAKK2Vsc2UKK292ZXJyaWRlIHBsdWdpbl9kaXIgPSAkKGxpYmRpcikvdHJhY2VldmVudC9wbHVnaW5zCitlbmRpZgorZW5kaWYKKworaWZlcSAoJChzZXRfcGx1Z2luX2RpciksMSkKK1BMVUdJTl9ESVIgPSAtRFBMVUdJTl9ESVI9IiQocGx1Z2luX2RpcikiCitQTFVHSU5fRElSX1NRID0gJyQoc3Vic3QgJywnXCcnLCQoUExVR0lOX0RJUikpJworZW5kaWYKKworaW5jbHVkZSAuLi8uLi8uLi9zY3JpcHRzL01ha2VmaWxlLmluY2x1ZGUKKworIyBjb3B5IGEgYml0IGZyb20gTGludXgga2J1aWxkCisKK2lmZXEgKCIkKG9yaWdpbiBWKSIsICJjb21tYW5kIGxpbmUiKQorICBWRVJCT1NFID0gJChWKQorZW5kaWYKK2lmbmRlZiBWRVJCT1NFCisgIFZFUkJPU0UgPSAwCitlbmRpZgorCitpZmVxICgkKHNyY3RyZWUpLCkKK3NyY3RyZWUgOj0gJChwYXRzdWJzdCAlLywlLCQoZGlyICQoQ1VSRElSKSkpCitzcmN0cmVlIDo9ICQocGF0c3Vic3QgJS8sJSwkKGRpciAkKHNyY3RyZWUpKSkKK3NyY3RyZWUgOj0gJChwYXRzdWJzdCAlLywlLCQoZGlyICQoc3JjdHJlZSkpKQorc3JjdHJlZSA6PSAkKHBhdHN1YnN0ICUvLCUsJChkaXIgJChzcmN0cmVlKSkpCisjJChpbmZvIERldGVybWluZWQgJ3NyY3RyZWUnIHRvIGJlICQoc3JjdHJlZSkpCitlbmRpZgorCitleHBvcnQgcHJlZml4IGxpYmRpciBzcmMgb2JqCisKKyMgU2hlbGwgcXVvdGVzCitwbHVnaW5fZGlyX1NRID0gJChzdWJzdCAnLCdcJycsJChwbHVnaW5fZGlyKSkKKworQ09ORklHX0lOQ0xVREVTID0KK0NPTkZJR19MSUJTICAgID0KK0NPTkZJR19GTEFHUyAgID0KKworT0JKICAgICAgICAgICAgPSAkQAorTiAgICAgICAgICAgICAgPQorCitJTkNMVURFUyA9IC1JLiAtSS4uIC1JICQoc3JjdHJlZSkvdG9vbHMvaW5jbHVkZSAkKENPTkZJR19JTkNMVURFUykKKworIyBTZXQgY29tcGlsZSBvcHRpb24gQ0ZMQUdTCitpZmRlZiBFWFRSQV9DRkxBR1MKKyAgQ0ZMQUdTIDo9ICQoRVhUUkFfQ0ZMQUdTKQorZWxzZQorICBDRkxBR1MgOj0gLWcgLVdhbGwKK2VuZGlmCisKKyMgQXBwZW5kIHJlcXVpcmVkIENGTEFHUworb3ZlcnJpZGUgQ0ZMQUdTICs9IC1mUElDCitvdmVycmlkZSBDRkxBR1MgKz0gJChDT05GSUdfRkxBR1MpICQoSU5DTFVERVMpICQoUExVR0lOX0RJUl9TUSkKK292ZXJyaWRlIENGTEFHUyArPSAkKHVkaXM4Ni1mbGFncykgLURfR05VX1NPVVJDRQorCitpZmVxICgkKFZFUkJPU0UpLDEpCisgIFEgPQorZWxzZQorICBRID0gQAorZW5kaWYKKworIyBEaXNhYmxlIGNvbW1hbmQgbGluZSB2YXJpYWJsZXMgKENGTEFHUykgb3ZlcnJpZGUgZnJvbSB0b3AKKyMgbGV2ZWwgTWFrZWZpbGUgKHBlcmYpLCBvdGhlcndpc2UgYnVpbGQgTWFrZWZpbGUgd2lsbCBnZXQKKyMgdGhlIHNhbWUgY29tbWFuZCBsaW5lIHNldHVwLgorTUFLRU9WRVJSSURFUz0KKworZXhwb3J0IHNyY3RyZWUgT1VUUFVUIENDIExEIENGTEFHUyBWCisKK2J1aWxkIDo9IC1mICQoc3JjdHJlZSkvdG9vbHMvYnVpbGQvTWFrZWZpbGUuYnVpbGQgZGlyPS4gb2JqCisKK0RZTkFNSUNfTElTVF9GSUxFIDo9ICQoT1VUUFVUKWxpYnRyYWNlZXZlbnQtZHluYW1pYy1saXN0CisKK1BMVUdJTlMgID0gcGx1Z2luX2piZDIuc28KK1BMVUdJTlMgKz0gcGx1Z2luX2hydGltZXIuc28KK1BMVUdJTlMgKz0gcGx1Z2luX2ttZW0uc28KK1BMVUdJTlMgKz0gcGx1Z2luX2t2bS5zbworUExVR0lOUyArPSBwbHVnaW5fbWFjODAyMTEuc28KK1BMVUdJTlMgKz0gcGx1Z2luX3NjaGVkX3N3aXRjaC5zbworUExVR0lOUyArPSBwbHVnaW5fZnVuY3Rpb24uc28KK1BMVUdJTlMgKz0gcGx1Z2luX3hlbi5zbworUExVR0lOUyArPSBwbHVnaW5fc2NzaS5zbworUExVR0lOUyArPSBwbHVnaW5fY2ZnODAyMTEuc28KKworUExVR0lOUyAgICA6PSAkKGFkZHByZWZpeCAkKE9VVFBVVCksJChQTFVHSU5TKSkKK1BMVUdJTlNfSU4gOj0gJChQTFVHSU5TOi5zbz0taW4ubykKKworcGx1Z2luczogJChQTFVHSU5TKSAkKERZTkFNSUNfTElTVF9GSUxFKQorCitfX3BsdWdpbl9vYmogPSAkKG5vdGRpciAkQCkKKyAgcGx1Z2luX29iaiA9ICQoX19wbHVnaW5fb2JqOi1pbi5vPSkKKworJChQTFVHSU5TX0lOKTogZm9yY2UKKwkkKFEpJChNQUtFKSAkKGJ1aWxkKT0kKHBsdWdpbl9vYmopCisKKyQoT1VUUFVUKWxpYnRyYWNlZXZlbnQtZHluYW1pYy1saXN0OiAkKFBMVUdJTlMpCisJJChRVUlFVF9HRU4pJChjYWxsIGRvX2dlbmVyYXRlX2R5bmFtaWNfbGlzdF9maWxlLCAkKFBMVUdJTlMpLCAkQCkKKworJChPVVRQVVQpJS5zbzogJChPVVRQVVQpJS1pbi5vCisJJChRVUlFVF9MSU5LKSQoQ0MpICQoQ0ZMQUdTKSAtc2hhcmVkICQoTERGTEFHUykgLW5vc3RhcnRmaWxlcyAtbyAkQCAkXgorCitkZWZpbmUgdXBkYXRlX2RpcgorICAoZWNobyAkMSA+ICRALnRtcDsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBpZiBbIC1yICRAIF0gJiYgY21wIC1zICRAICRALnRtcDsgdGhlbiAgICAgIFwKKyAgICAgcm0gLWYgJEAudG1wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgZWNobyAnICBVUERBVEUgICAgICAgICAgICAgICAgICRAJzsgICAgICAgXAorICAgICBtdiAtZiAkQC50bXAgJEA7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBmaSk7CitlbmRlZgorCit0YWdzOglmb3JjZQorCSQoUk0pIHRhZ3MKKwlmaW5kIC4gLW5hbWUgJyouW2NoXScgfCB4YXJncyBjdGFncyAtLWV4dHJhPStmIC0tYy1raW5kcz0rcHggXAorCS0tcmVnZXgtYysrPScvX1BFXCgoW14sKV0qKS4qL1RFUF9FUlJOT19fXDEvJworCitUQUdTOglmb3JjZQorCSQoUk0pIFRBR1MKKwlmaW5kIC4gLW5hbWUgJyouW2NoXScgfCB4YXJncyBldGFncyBcCisJLS1yZWdleD0nL19QRShcKFteLCldKlwpLiovVEVQX0VSUk5PX19cMS8nCisKK2RlZmluZSBkb19pbnN0YWxsX21rZGlyCisJaWYgWyAhIC1kICckKERFU1RESVJfU1EpJDEnIF07IHRoZW4gICAgICAgICAgICAgXAorCQkkKElOU1RBTEwpIC1kIC1tIDc1NSAnJChERVNURElSX1NRKSQxJzsgXAorCWZpCitlbmRlZgorCitkZWZpbmUgZG9faW5zdGFsbAorCSQoY2FsbCBkb19pbnN0YWxsX21rZGlyLCQyKTsgICAgICAgICAgICAgICAgICAgIFwKKwkkKElOU1RBTEwpICQoaWYgJDMsLW0gJDMsKSAkMSAnJChERVNURElSX1NRKSQyJworZW5kZWYKKworZGVmaW5lIGRvX2luc3RhbGxfcGx1Z2lucworICAgICAgIGZvciBwbHVnaW4gaW4gJDE7IGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICQoY2FsbCBkb19pbnN0YWxsLCQkcGx1Z2luLCQocGx1Z2luX2Rpcl9TUSkpOyBcCisgICAgICAgZG9uZQorZW5kZWYKKworZGVmaW5lIGRvX2dlbmVyYXRlX2R5bmFtaWNfbGlzdF9maWxlCisJc3ltYm9sX3R5cGU9YCQoTk0pIC11IC1EICQxIHwgYXdrICdORj4xIHtwcmludCAkJDF9JyB8IFwKKwl4YXJncyBlY2hvICJVIHcgVyIgfCB0ciAndyAnICdXXG4nIHwgc29ydCAtdSB8IHhhcmdzIGVjaG9gO1wKKwlpZiBbICIkJHN5bWJvbF90eXBlIiA9ICJVIFciIF07dGhlbgkJCQlcCisJCShlY2hvICd7JzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkkKE5NKSAtdSAtRCAkMSB8IGF3ayAnTkY+MSB7cHJpbnQgIlx0IiQkMiI7In0nIHwgc29ydCAtdTtcCisJCWVjaG8gJ307JzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkpID4gJDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwllbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkoZWNobyBFaXRoZXIgbWlzc2luZyBvbmUgb2YgWyQxXSBvciBiYWQgdmVyc2lvbiBvZiAkKE5NKSkgMT4mMjtcCisJCWZpCitlbmRlZgorCitpbnN0YWxsOiAkKFBMVUdJTlMpCisJJChjYWxsIFFVSUVUX0lOU1RBTEwsIHRyYWNlX3BsdWdpbnMpIFwKKwkkKGNhbGwgZG9faW5zdGFsbF9wbHVnaW5zLCAkKFBMVUdJTlMpKQorCitjbGVhbjoKKwkkKGNhbGwgUVVJRVRfQ0xFQU4sIHRyYWNlX3BsdWdpbnMpIFwKKwkJJChSTSkgKi5vICp+ICQoVEFSR0VUUykgKi5hICouc28gJChWRVJTSU9OX0ZJTEVTKSAuKi5kIC4qLmNtZDsgXAorCQkkKFJNKSAkKE9VVFBVVClsaWJ0cmFjZWV2ZW50LWR5bmFtaWMtbGlzdCBcCisJCSQoUk0pIFRSQUNFRVZFTlQtQ0ZMQUdTIHRhZ3MgVEFHUzsKKworUEhPTlkgKz0gZm9yY2UgcGx1Z2lucworZm9yY2U6CisKKyMgRGVjbGFyZSB0aGUgY29udGVudHMgb2YgdGhlIC5QSE9OWSB2YXJpYWJsZSBhcyBwaG9ueS4gIFdlIGtlZXAgdGhhdAorIyBpbmZvcm1hdGlvbiBpbiBhIHZhcmlhYmxlIHNvIHdlIGNhbiB1c2UgaXQgaW4gaWZfY2hhbmdlZCBhbmQgZnJpZW5kcy4KKy5QSE9OWTogJChQSE9OWSkKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbl9jZmc4MDIxMS5jIGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2lucy9wbHVnaW5fY2ZnODAyMTEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2luX2NmZzgwMjExLmMKcmVuYW1lIHRvIHRvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvcGx1Z2luX2NmZzgwMjExLmMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbl9mdW5jdGlvbi5jIGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2lucy9wbHVnaW5fZnVuY3Rpb24uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2luX2Z1bmN0aW9uLmMKcmVuYW1lIHRvIHRvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvcGx1Z2luX2Z1bmN0aW9uLmMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbl9ocnRpbWVyLmMgYi90b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5zL3BsdWdpbl9ocnRpbWVyLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbl9ocnRpbWVyLmMKcmVuYW1lIHRvIHRvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvcGx1Z2luX2hydGltZXIuYwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2luX2piZDIuYyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvcGx1Z2luX2piZDIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2luX2piZDIuYwpyZW5hbWUgdG8gdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2lucy9wbHVnaW5famJkMi5jCmRpZmYgLS1naXQgYS90b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5fa21lbS5jIGIvdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2lucy9wbHVnaW5fa21lbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5fa21lbS5jCnJlbmFtZSB0byB0b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5zL3BsdWdpbl9rbWVtLmMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbl9rdm0uYyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvcGx1Z2luX2t2bS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5fa3ZtLmMKcmVuYW1lIHRvIHRvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvcGx1Z2luX2t2bS5jCmRpZmYgLS1naXQgYS90b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5fbWFjODAyMTEuYyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvcGx1Z2luX21hYzgwMjExLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbl9tYWM4MDIxMS5jCnJlbmFtZSB0byB0b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5zL3BsdWdpbl9tYWM4MDIxMS5jCmRpZmYgLS1naXQgYS90b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5fc2NoZWRfc3dpdGNoLmMgYi90b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5zL3BsdWdpbl9zY2hlZF9zd2l0Y2guYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2luX3NjaGVkX3N3aXRjaC5jCnJlbmFtZSB0byB0b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5zL3BsdWdpbl9zY2hlZF9zd2l0Y2guYwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2luX3Njc2kuYyBiL3Rvb2xzL2xpYi90cmFjZWV2ZW50L3BsdWdpbnMvcGx1Z2luX3Njc2kuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2luX3Njc2kuYwpyZW5hbWUgdG8gdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2lucy9wbHVnaW5fc2NzaS5jCmRpZmYgLS1naXQgYS90b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5feGVuLmMgYi90b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5zL3BsdWdpbl94ZW4uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdG9vbHMvbGliL3RyYWNlZXZlbnQvcGx1Z2luX3hlbi5jCnJlbmFtZSB0byB0b29scy9saWIvdHJhY2VldmVudC9wbHVnaW5zL3BsdWdpbl94ZW4uYwpkaWZmIC0tZ2l0IGEvdG9vbHMvb2JqdG9vbC9jaGVjay5jIGIvdG9vbHMvb2JqdG9vbC9jaGVjay5jCmluZGV4IDE3NmYyZjAuLjA0NGM5YTMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL29ianRvb2wvY2hlY2suYworKysgYi90b29scy9vYmp0b29sL2NoZWNrLmMKQEAgLTEzOCw3ICsxMzgsNiBAQCBzdGF0aWMgYm9vbCBfX2RlYWRfZW5kX2Z1bmN0aW9uKHN0cnVjdCBvYmp0b29sX2ZpbGUgKmZpbGUsIHN0cnVjdCBzeW1ib2wgKmZ1bmMsCiAJCSJkb190YXNrX2RlYWQiLAogCQkiX19tb2R1bGVfcHV0X2FuZF9leGl0IiwKIAkJImNvbXBsZXRlX2FuZF9leGl0IiwKLQkJImt2bV9zcHVyaW91c19mYXVsdCIsCiAJCSJfX3JlaXNlcmZzX3BhbmljIiwKIAkJImxidWdfd2l0aF9sb2MiLAogCQkiZm9ydGlmeV9wYW5pYyIsCmRpZmYgLS1naXQgYS90b29scy9wZXJmL01ha2VmaWxlLmNvbmZpZyBiL3Rvb2xzL3BlcmYvTWFrZWZpbGUuY29uZmlnCmluZGV4IGEyNjlkNzguLjQ2ZjdmYmEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvTWFrZWZpbGUuY29uZmlnCisrKyBiL3Rvb2xzL3BlcmYvTWFrZWZpbGUuY29uZmlnCkBAIC05MjQsNyArOTI0LDcgQEAKICAgICBKRElSPSQoc2hlbGwgL3Vzci9zYmluL3VwZGF0ZS1qYXZhLWFsdGVybmF0aXZlcyAtbCB8IGhlYWQgLTEgfCBhd2sgJ3twcmludCAkJDN9JykKICAgZWxzZQogICAgIGlmbmVxICgsJCh3aWxkY2FyZCAvdXNyL3NiaW4vYWx0ZXJuYXRpdmVzKSkKLSAgICAgIEpESVI9JChzaGVsbCAvdXNyL3NiaW4vYWx0ZXJuYXRpdmVzIC0tZGlzcGxheSBqYXZhIHwgdGFpbCAtMSB8IGN1dCAtZCcgJyAtZiA1IHwgc2VkICdzJS9qcmUvYmluL2phdmEuJSVnJykKKyAgICAgIEpESVI9JChzaGVsbCAvdXNyL3NiaW4vYWx0ZXJuYXRpdmVzIC0tZGlzcGxheSBqYXZhIHwgdGFpbCAtMSB8IGN1dCAtZCcgJyAtZiA1IHwgc2VkIC1lICdzJS9qcmUvYmluL2phdmEuJSVnJyAtZSAncyUvYmluL2phdmEuJSVnJykKICAgICBlbmRpZgogICBlbmRpZgogICBpZm5kZWYgSkRJUgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9NYWtlZmlsZS5wZXJmIGIvdG9vbHMvcGVyZi9NYWtlZmlsZS5wZXJmCmluZGV4IGY5ODA3ZDguLjkwMmM3OTIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvTWFrZWZpbGUucGVyZgorKysgYi90b29scy9wZXJmL01ha2VmaWxlLnBlcmYKQEAgLTI5Miw3ICsyOTIsNyBAQAogTElCVFJBQ0VFVkVOVCA9ICQoVEVfUEFUSClsaWJ0cmFjZWV2ZW50LmEKIGV4cG9ydCBMSUJUUkFDRUVWRU5UCiAKLUxJQlRSQUNFRVZFTlRfRFlOQU1JQ19MSVNUID0gJChURV9QQVRIKWxpYnRyYWNlZXZlbnQtZHluYW1pYy1saXN0CitMSUJUUkFDRUVWRU5UX0RZTkFNSUNfTElTVCA9ICQoVEVfUEFUSClwbHVnaW5zL2xpYnRyYWNlZXZlbnQtZHluYW1pYy1saXN0CiAKICMKICMgVGhlIHN0YXRpYyBidWlsZCBoYXMgbm8gZHluc3ltIHRhYmxlLCBzbyB0aGlzIGRvZXMgbm90IHdvcmsgZm9yCkBAIC01NjcsNyArNTY3LDcgQEAKICMgQ3JlYXRlIHB5dGhvbiBiaW5kaW5nIG91dHB1dCBkaXJlY3RvcnkgaWYgbm90IGFscmVhZHkgcHJlc2VudAogX2R1bW15IDo9ICQoc2hlbGwgWyAtZCAnJChPVVRQVVQpcHl0aG9uJyBdIHx8IG1rZGlyIC1wICckKE9VVFBVVClweXRob24nKQogCi0kKE9VVFBVVClweXRob24vcGVyZi5zbzogJChQWVRIT05fRVhUX1NSQ1MpICQoUFlUSE9OX0VYVF9ERVBTKSAkKExJQlRSQUNFRVZFTlRfRFlOQU1JQ19MSVNUKQorJChPVVRQVVQpcHl0aG9uL3BlcmYuc286ICQoUFlUSE9OX0VYVF9TUkNTKSAkKFBZVEhPTl9FWFRfREVQUykgJChMSUJUUkFDRUVWRU5UX0RZTkFNSUNfTElTVCkgJChMSUJQRVJGKQogCSQoUVVJRVRfR0VOKUxEU0hBUkVEPSIkKENDKSAtcHRocmVhZCAtc2hhcmVkIiBcCiAgICAgICAgIENGTEFHUz0nJChDRkxBR1MpJyBMREZMQUdTPSckKExERkxBR1MpICQoTElCVFJBQ0VFVkVOVF9EWU5BTUlDX0xJU1RfTERGTEFHUyknIFwKIAkgICQoUFlUSE9OX1dPUkQpIHV0aWwvc2V0dXAucHkgXApAQCAtNzM3LDcgKzczNyw3IEBACiAJJChRKSQoTUFLRSkgLUMgJChUUkFDRV9FVkVOVF9ESVIpICQoTElCVFJBQ0VFVkVOVF9GTEFHUykgTz0kKE9VVFBVVCkgcGx1Z2lucwogCiAkKExJQlRSQUNFRVZFTlRfRFlOQU1JQ19MSVNUKTogbGlidHJhY2VldmVudF9wbHVnaW5zCi0JJChRKSQoTUFLRSkgLUMgJChUUkFDRV9FVkVOVF9ESVIpICQoTElCVFJBQ0VFVkVOVF9GTEFHUykgTz0kKE9VVFBVVCkgJChPVVRQVVQpbGlidHJhY2VldmVudC1keW5hbWljLWxpc3QKKwkkKFEpJChNQUtFKSAtQyAkKFRSQUNFX0VWRU5UX0RJUikgJChMSUJUUkFDRUVWRU5UX0ZMQUdTKSBPPSQoT1VUUFVUKSAkKE9VVFBVVClwbHVnaW5zL2xpYnRyYWNlZXZlbnQtZHluYW1pYy1saXN0CiAKICQoTElCVFJBQ0VFVkVOVCktY2xlYW46CiAJJChjYWxsIFFVSUVUX0NMRUFOLCBsaWJ0cmFjZWV2ZW50KQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL2FybS91dGlsL2NzLWV0bS5jIGIvdG9vbHMvcGVyZi9hcmNoL2FybS91dGlsL2NzLWV0bS5jCmluZGV4IGMzMmRiMDkuLmVkZTA0MGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9hcm0vdXRpbC9jcy1ldG0uYworKysgYi90b29scy9wZXJmL2FyY2gvYXJtL3V0aWwvY3MtZXRtLmMKQEAgLTIzLDkgKzIzLDEwIEBACiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9ldmVudC5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvZXZsaXN0LmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9ldnNlbC5oIgorI2luY2x1ZGUgIi4uLy4uL3V0aWwvZXZzZWxfY29uZmlnLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9wbXUuaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL2NzLWV0bS5oIgotI2luY2x1ZGUgIi4uLy4uL3V0aWwvdXRpbC5oIgorI2luY2x1ZGUgPGludGVybmFsL2xpYi5oPiAvLyBwYWdlX3NpemUKICNpbmNsdWRlICIuLi8uLi91dGlsL3Nlc3Npb24uaCIKIAogI2luY2x1ZGUgPGVycm5vLmg+CkBAIC00MTYsNyArNDE3LDcgQEAgc3RhdGljIGludCBjc19ldG1fcmVjb3JkaW5nX29wdGlvbnMoc3RydWN0IGF1eHRyYWNlX3JlY29yZCAqaXRyLAogCQlpZiAoZXJyKQogCQkJZ290byBvdXQ7CiAKLQkJdHJhY2tpbmdfZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCQl0cmFja2luZ19ldnNlbCA9IGV2bGlzdF9fbGFzdChldmxpc3QpOwogCQlwZXJmX2V2bGlzdF9fc2V0X3RyYWNraW5nX2V2ZW50KGV2bGlzdCwgdHJhY2tpbmdfZXZzZWwpOwogCiAJCXRyYWNraW5nX2V2c2VsLT5jb3JlLmF0dHIuZnJlcSA9IDA7CkBAIC02NDgsNyArNjQ5LDcgQEAgc3RhdGljIGludCBjc19ldG1faW5mb19maWxsKHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKIAlpZiAocHJpdl9zaXplICE9IGNzX2V0bV9pbmZvX3ByaXZfc2l6ZShpdHIsIHNlc3Npb24tPmV2bGlzdCkpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKCFzZXNzaW9uLT5ldmxpc3QtPm5yX21tYXBzKQorCWlmICghc2Vzc2lvbi0+ZXZsaXN0LT5jb3JlLm5yX21tYXBzKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCS8qIElmIHRoZSBjcHVfbWFwIGlzIGVtcHR5IGFsbCBvbmxpbmUgQ1BVcyBhcmUgaW52b2x2ZWQgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL2FybS1zcGUuYyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL2FybS1zcGUuYwppbmRleCA0YjM2NDY5Li5lYmE2NTQxIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC9hcm0tc3BlLmMKKysrIGIvdG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0aWwvYXJtLXNwZS5jCkBAIC0xNiw3ICsxNiw3IEBACiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9ldnNlbC5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvZXZsaXN0LmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9zZXNzaW9uLmgiCi0jaW5jbHVkZSAiLi4vLi4vdXRpbC91dGlsLmgiCisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+IC8vIHBhZ2Vfc2l6ZQogI2luY2x1ZGUgIi4uLy4uL3V0aWwvcG11LmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvYXV4dHJhY2UuaCIKQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIGludCBhcm1fc3BlX2luZm9fZmlsbChzdHJ1Y3QgYXV4dHJhY2VfcmVjb3JkICppdHIsCiAJaWYgKHByaXZfc2l6ZSAhPSBBUk1fU1BFX0FVWFRSQUNFX1BSSVZfU0laRSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoIXNlc3Npb24tPmV2bGlzdC0+bnJfbW1hcHMpCisJaWYgKCFzZXNzaW9uLT5ldmxpc3QtPmNvcmUubnJfbW1hcHMpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJYXV4dHJhY2VfaW5mby0+dHlwZSA9IFBFUkZfQVVYVFJBQ0VfQVJNX1NQRTsKQEAgLTEyOSw3ICsxMjksNyBAQCBzdGF0aWMgaW50IGFybV9zcGVfcmVjb3JkaW5nX29wdGlvbnMoc3RydWN0IGF1eHRyYWNlX3JlY29yZCAqaXRyLAogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQl0cmFja2luZ19ldnNlbCA9IHBlcmZfZXZsaXN0X19sYXN0KGV2bGlzdCk7CisJdHJhY2tpbmdfZXZzZWwgPSBldmxpc3RfX2xhc3QoZXZsaXN0KTsKIAlwZXJmX2V2bGlzdF9fc2V0X3RyYWNraW5nX2V2ZW50KGV2bGlzdCwgdHJhY2tpbmdfZXZzZWwpOwogCiAJdHJhY2tpbmdfZXZzZWwtPmNvcmUuYXR0ci5mcmVxID0gMDsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL2R3YXJmLXJlZ3MuYyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL2R3YXJmLXJlZ3MuYwppbmRleCBiMDQ3Yjg4Li45MTdiOTdkIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC9kd2FyZi1yZWdzLmMKKysrIGIvdG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0aWwvZHdhcmYtcmVncy5jCkBAIC0xMSw3ICsxMSw2IEBACiAjaW5jbHVkZSA8ZHdhcmYtcmVncy5oPgogI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPiAvKiBmb3Igc3RydWN0IHVzZXJfcHRfcmVncyAqLwogI2luY2x1ZGUgPGxpbnV4L3N0cmluZ2lmeS5oPgotI2luY2x1ZGUgInV0aWwuaCIKIAogc3RydWN0IHB0X3JlZ3NfZHdhcmZudW0gewogCWNvbnN0IGNoYXIgKm5hbWU7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC9oZWFkZXIuYyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL2hlYWRlci5jCmluZGV4IGU0MWRlZmEuLmEzMmU0YjcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL2hlYWRlci5jCisrKyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL2hlYWRlci5jCkBAIC0xLDUgKzEsNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8cGVyZi9jcHVtYXAuaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC9jcHVtYXAuaD4KICNpbmNsdWRlIDxhcGkvZnMvZnMuaD4KICNpbmNsdWRlICJkZWJ1Zy5oIgogI2luY2x1ZGUgImhlYWRlci5oIgpAQCAtMjksNyArMzEsNyBAQCBjaGFyICpnZXRfY3B1aWRfc3RyKHN0cnVjdCBwZXJmX3BtdSAqcG11KQogCiAJLyogcmVhZCBtaWRyIGZyb20gbGlzdCBvZiBjcHVzIG1hcHBlZCB0byB0aGlzIHBtdSAqLwogCWNwdXMgPSBwZXJmX2NwdV9tYXBfX2dldChwbXUtPmNwdXMpOwotCWZvciAoY3B1ID0gMDsgY3B1IDwgY3B1cy0+bnI7IGNwdSsrKSB7CisJZm9yIChjcHUgPSAwOyBjcHUgPCBwZXJmX2NwdV9tYXBfX25yKGNwdXMpOyBjcHUrKykgewogCQlzY25wcmludGYocGF0aCwgUEFUSF9NQVgsICIlcy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1JWQiTUlEUiwKIAkJCQlzeXNmcywgY3B1cy0+bWFwW2NwdV0pOwogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC91bndpbmQtbGlidW53aW5kLmMgYi90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC91bndpbmQtbGlidW53aW5kLmMKaW5kZXggMDAyNTIwZC4uMTQ5NWE5NSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0aWwvdW53aW5kLWxpYnVud2luZC5jCisrKyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL3Vud2luZC1saWJ1bndpbmQuYwpAQCAtNSw4ICs1LDggQEAKICNpbmNsdWRlIDxsaWJ1bndpbmQuaD4KICNpbmNsdWRlICJwZXJmX3JlZ3MuaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL3Vud2luZC5oIgotI2luY2x1ZGUgIi4uLy4uL3V0aWwvZGVidWcuaCIKICNlbmRpZgorI2luY2x1ZGUgIi4uLy4uL3V0aWwvZGVidWcuaCIKIAogaW50IExJQlVOV0lORF9fQVJDSF9SRUdfSUQoaW50IHJlZ251bSkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwvZHdhcmYtcmVncy5jIGIvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9kd2FyZi1yZWdzLmMKaW5kZXggNDk1Mjg5MC4uMGM0ZjRjYSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9kd2FyZi1yZWdzLmMKKysrIGIvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9kd2FyZi1yZWdzLmMKQEAgLTEyLDcgKzEyLDYgQEAKICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmdpZnkuaD4KLSNpbmNsdWRlICJ1dGlsLmgiCiAKIHN0cnVjdCBwdF9yZWdzX2R3YXJmbnVtIHsKIAljb25zdCBjaGFyICpuYW1lOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9oZWFkZXIuYyBiL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwvaGVhZGVyLmMKaW5kZXggMGIyNDI2Ni4uYjZiN2JjNyAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9oZWFkZXIuYworKysgYi90b29scy9wZXJmL2FyY2gvcG93ZXJwYy91dGlsL2hlYWRlci5jCkBAIC02LDcgKzYsNiBAQAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZ2lmeS5oPgogI2luY2x1ZGUgImhlYWRlci5oIgotI2luY2x1ZGUgInV0aWwuaCIKIAogI2RlZmluZSBtZnNwcihybikgICAgICAgKHt1bnNpZ25lZCBsb25nIHJ2YWw7IFwKIAkJCSBhc20gdm9sYXRpbGUoIm1mc3ByICUwLCIgX19zdHJpbmdpZnkocm4pIFwKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwva3ZtLXN0YXQuYyBiL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwva3ZtLXN0YXQuYwppbmRleCBmMGRiZjdiLi45Y2MxYzRhIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2FyY2gvcG93ZXJwYy91dGlsL2t2bS1zdGF0LmMKKysrIGIvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9rdm0tc3RhdC5jCkBAIC01LDkgKzUsMTEgQEAKICNpbmNsdWRlICJ1dGlsL2RlYnVnLmgiCiAjaW5jbHVkZSAidXRpbC9ldnNlbC5oIgogI2luY2x1ZGUgInV0aWwvZXZsaXN0LmgiCisjaW5jbHVkZSAidXRpbC9wbXUuaCIKIAogI2luY2x1ZGUgImJvb2szc19odl9leGl0cy5oIgogI2luY2x1ZGUgImJvb2szc19oY2FsbHMuaCIKKyNpbmNsdWRlIDxzdWJjbWQvcGFyc2Utb3B0aW9ucy5oPgogCiAjZGVmaW5lIE5SX1RQUyA0CiAKQEAgLTE3MiwzICsxNzQsNDYgQEAgaW50IGNwdV9pc2FfaW5pdChzdHJ1Y3QgcGVyZl9rdm1fc3RhdCAqa3ZtLCBjb25zdCBjaGFyICpjcHVpZCBfX21heWJlX3VudXNlZCkKIAogCXJldHVybiByZXQ7CiB9CisKKy8qCisgKiBJbmNhc2Ugb2YgcG93ZXJwYyBhcmNoaXRlY3R1cmUsIHBtdSByZWdpc3RlcnMgYXJlIHByb2dyYW1tYWJsZQorICogYnkgZ3Vlc3Qga2VybmVsLiBTbyBtb25pdG9yaW5nIGd1ZXN0IHZpYSBob3N0IG1heSBub3QgcHJvdmlkZQorICogdmFsaWQgc2FtcGxlcyB3aXRoIGRlZmF1bHQgJ2N5Y2xlcycgZXZlbnQuIEl0IGlzIGJldHRlciB0byB1c2UKKyAqICd0cmFjZV9pbWMvdHJhY2VfY3ljbGVzJyBldmVudCBmb3IgZ3Vlc3QgcHJvZmlsaW5nLCBzaW5jZSBpdAorICogY2FuIHRyYWNrIHRoZSBndWVzdCBpbnN0cnVjdGlvbiBwb2ludGVyIGluIHRoZSB0cmFjZS1yZWNvcmQuCisgKgorICogRnVuY3Rpb24gdG8gcGFyc2UgdGhlIGFyZ3VtZW50cyBhbmQgcmV0dXJuIGFwcHJvcHJpYXRlIHZhbHVlcy4KKyAqLworaW50IGt2bV9hZGRfZGVmYXVsdF9hcmNoX2V2ZW50KGludCAqYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCit7CisJY29uc3QgY2hhciAqKnRtcDsKKwlib29sIGV2ZW50ID0gZmFsc2U7CisJaW50IGksIGogPSAqYXJnYzsKKworCWNvbnN0IHN0cnVjdCBvcHRpb24gZXZlbnRfb3B0aW9uc1tdID0geworCQlPUFRfQk9PTEVBTignZScsICJldmVudCIsICZldmVudCwgTlVMTCksCisJCU9QVF9FTkQoKQorCX07CisKKwl0bXAgPSBjYWxsb2MoaiArIDEsIHNpemVvZihjaGFyICopKTsKKwlpZiAoIXRtcCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlmb3IgKGkgPSAwOyBpIDwgajsgaSsrKQorCQl0bXBbaV0gPSBhcmd2W2ldOworCisJcGFyc2Vfb3B0aW9ucyhqLCB0bXAsIGV2ZW50X29wdGlvbnMsIE5VTEwsIFBBUlNFX09QVF9LRUVQX1VOS05PV04pOworCWlmICghZXZlbnQpIHsKKwkJaWYgKHBtdV9oYXZlX2V2ZW50KCJ0cmFjZV9pbWMiLCAidHJhY2VfY3ljbGVzIikpIHsKKwkJCWFyZ3ZbaisrXSA9IHN0cmR1cCgiLWUiKTsKKwkJCWFyZ3ZbaisrXSA9IHN0cmR1cCgidHJhY2VfaW1jL3RyYWNlX2N5Y2xlcy8iKTsKKwkJCSphcmdjICs9IDI7CisJCX0gZWxzZSB7CisJCQlmcmVlKHRtcCk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0KKworCWZyZWUodG1wKTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwvc2tpcC1jYWxsY2hhaW4taWR4LmMgYi90b29scy9wZXJmL2FyY2gvcG93ZXJwYy91dGlsL3NraXAtY2FsbGNoYWluLWlkeC5jCmluZGV4IGZjOWMyZjUuLjMwMThhMDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwvc2tpcC1jYWxsY2hhaW4taWR4LmMKKysrIGIvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9za2lwLWNhbGxjaGFpbi1pZHguYwpAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgInV0aWwvY2FsbGNoYWluLmgiCiAjaW5jbHVkZSAidXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWwvZHNvLmgiCisjaW5jbHVkZSAidXRpbC9ldmVudC5oIiAvLyBzdHJ1Y3QgaXBfY2FsbGNoYWluCiAjaW5jbHVkZSAidXRpbC9tYXAuaCIKICNpbmNsdWRlICJ1dGlsL3N5bWJvbC5oIgogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvcG93ZXJwYy91dGlsL3N5bS1oYW5kbGluZy5jIGIvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9zeW0taGFuZGxpbmcuYwppbmRleCA4YTRiNzE3Li5hYmI3YTEyIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2FyY2gvcG93ZXJwYy91dGlsL3N5bS1oYW5kbGluZy5jCisrKyBiL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwvc3ltLWhhbmRsaW5nLmMKQEAgLTQsNyArNCw2IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgTmF2ZWVuIE4uIFJhbywgSUJNIENvcnBvcmF0aW9uCiAgKi8KIAotI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAiZHNvLmgiCiAjaW5jbHVkZSAic3ltYm9sLmgiCiAjaW5jbHVkZSAibWFwLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvczM5MC9NYWtlZmlsZSBiL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL01ha2VmaWxlCmluZGV4IGNiMTk4NzguLjZhYzg4ODcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL01ha2VmaWxlCisrKyBiL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL01ha2VmaWxlCkBAIC00LDYgKzQsNyBAQAogZW5kaWYKIEhBVkVfS1ZNX1NUQVRfU1VQUE9SVCA6PSAxCiBQRVJGX0hBVkVfQVJDSF9SRUdTX1FVRVJZX1JFR0lTVEVSX09GRlNFVCA6PSAxCitQRVJGX0hBVkVfSklURFVNUCA6PSAxCiAKICMKICMgU3lzY2FsbCB0YWJsZSBnZW5lcmF0aW9uIGZvciBwZXJmCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvczM5MC91dGlsL2F1eHRyYWNlLmMgYi90b29scy9wZXJmL2FyY2gvczM5MC91dGlsL2F1eHRyYWNlLmMKaW5kZXggYjBmYjcwZS4uMGRiNWM1OCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3MzOTAvdXRpbC9hdXh0cmFjZS5jCisrKyBiL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL3V0aWwvYXV4dHJhY2UuYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL3V0aWwvbWFjaGluZS5jIGIvdG9vbHMvcGVyZi9hcmNoL3MzOTAvdXRpbC9tYWNoaW5lLmMKaW5kZXggYzhjODZhMC4uNzI0ZWZiMiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3MzOTAvdXRpbC9tYWNoaW5lLmMKKysrIGIvdG9vbHMvcGVyZi9hcmNoL3MzOTAvdXRpbC9tYWNoaW5lLmMKQEAgLTIsNyArMiw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlICJ1dGlsLmgiCisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+IC8vIHBhZ2Vfc2l6ZQogI2luY2x1ZGUgIm1hY2hpbmUuaCIKICNpbmNsdWRlICJhcGkvZnMvZnMuaCIKICNpbmNsdWRlICJkZWJ1Zy5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni90ZXN0cy9pbnRlbC1jcW0uYyBiL3Rvb2xzL3BlcmYvYXJjaC94ODYvdGVzdHMvaW50ZWwtY3FtLmMKaW5kZXggM2I1Y2MzMy4uM2VjNTYyYSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni90ZXN0cy9pbnRlbC1jcW0uYworKysgYi90b29scy9wZXJmL2FyY2gveDg2L3Rlc3RzL2ludGVsLWNxbS5jCkBAIC01LDcgKzUsNyBAQAogI2luY2x1ZGUgImV2bGlzdC5oIgogI2luY2x1ZGUgImV2c2VsLmgiCiAjaW5jbHVkZSAiYXJjaC10ZXN0cy5oIgotI2luY2x1ZGUgInV0aWwuaCIKKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4gLy8gcGFnZV9zaXplCiAKICNpbmNsdWRlIDxzaWduYWwuaD4KICNpbmNsdWRlIDxzeXMvbW1hbi5oPgpAQCAtNjMsOSArNjMsOSBAQCBpbnQgdGVzdF9faW50ZWxfY3FtX2NvdW50X25taV9jb250ZXh0KHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidAogCQlnb3RvIG91dDsKIAl9CiAKLQlldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCWlmICghZXZzZWwpIHsKLQkJcHJfZGVidWcoInBlcmZfZXZsaXN0X19maXJzdCBmYWlsZWRcbiIpOworCQlwcl9kZWJ1ZygiZXZsaXN0X19maXJzdCBmYWlsZWRcbiIpOwogCQlnb3RvIG91dDsKIAl9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC94ODYvdGVzdHMvcGVyZi10aW1lLXRvLXRzYy5jIGIvdG9vbHMvcGVyZi9hcmNoL3g4Ni90ZXN0cy9wZXJmLXRpbWUtdG8tdHNjLmMKaW5kZXggZWIzNjM1OS4uZmE5NDc5NSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni90ZXN0cy9wZXJmLXRpbWUtdG8tdHNjLmMKKysrIGIvdG9vbHMvcGVyZi9hcmNoL3g4Ni90ZXN0cy9wZXJmLXRpbWUtdG8tdHNjLmMKQEAgLTE1LDkgKzE1LDkgQEAKICNpbmNsdWRlICJldmxpc3QuaCIKICNpbmNsdWRlICJldnNlbC5oIgogI2luY2x1ZGUgInRocmVhZF9tYXAuaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJyZWNvcmQuaCIKICNpbmNsdWRlICJ0c2MuaCIKKyNpbmNsdWRlICJ1dGlsL21tYXAuaCIKICNpbmNsdWRlICJ0ZXN0cy90ZXN0cy5oIgogCiAjaW5jbHVkZSAiYXJjaC10ZXN0cy5oIgpAQCAtNjYsNyArNjYsNyBAQCBpbnQgdGVzdF9fcGVyZl90aW1lX3RvX3RzYyhzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZQogCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50OwogCXU2NCB0ZXN0X3RzYywgY29tbTFfdHNjLCBjb21tMl90c2M7CiAJdTY0IHRlc3RfdGltZSwgY29tbTFfdGltZSA9IDAsIGNvbW0yX3RpbWUgPSAwOwotCXN0cnVjdCBwZXJmX21tYXAgKm1kOworCXN0cnVjdCBtbWFwICptZDsKIAogCXRocmVhZHMgPSB0aHJlYWRfbWFwX19uZXcoLTEsIGdldHBpZCgpLCBVSU5UX01BWCk7CiAJQ0hFQ0tfTk9UX05VTExfXyh0aHJlYWRzKTsKQEAgLTgzLDcgKzgzLDcgQEAgaW50IHRlc3RfX3BlcmZfdGltZV90b190c2Moc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0IF9fbWF5YmUKIAogCXBlcmZfZXZsaXN0X19jb25maWcoZXZsaXN0LCAmb3B0cywgTlVMTCk7CiAKLQlldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJZXZzZWwtPmNvcmUuYXR0ci5jb21tID0gMTsKIAlldnNlbC0+Y29yZS5hdHRyLmRpc2FibGVkID0gMTsKQEAgLTkxLDkgKzkxLDkgQEAgaW50IHRlc3RfX3BlcmZfdGltZV90b190c2Moc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0IF9fbWF5YmUKIAogCUNIRUNLX18oZXZsaXN0X19vcGVuKGV2bGlzdCkpOwogCi0JQ0hFQ0tfXyhwZXJmX2V2bGlzdF9fbW1hcChldmxpc3QsIFVJTlRfTUFYKSk7CisJQ0hFQ0tfXyhldmxpc3RfX21tYXAoZXZsaXN0LCBVSU5UX01BWCkpOwogCi0JcGMgPSBldmxpc3QtPm1tYXBbMF0uYmFzZTsKKwlwYyA9IGV2bGlzdC0+bW1hcFswXS5jb3JlLmJhc2U7CiAJcmV0ID0gcGVyZl9yZWFkX3RzY19jb252ZXJzaW9uKHBjLCAmdGMpOwogCWlmIChyZXQpIHsKIAkJaWYgKHJldCA9PSAtRU9QTk9UU1VQUCkgewpAQCAtMTE1LDcgKzExNSw3IEBAIGludCB0ZXN0X19wZXJmX3RpbWVfdG9fdHNjKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlCiAKIAlldmxpc3RfX2Rpc2FibGUoZXZsaXN0KTsKIAotCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPm5yX21tYXBzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspIHsKIAkJbWQgPSAmZXZsaXN0LT5tbWFwW2ldOwogCQlpZiAocGVyZl9tbWFwX19yZWFkX2luaXQobWQpIDwgMCkKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni90ZXN0cy9yZHBtYy5jIGIvdG9vbHMvcGVyZi9hcmNoL3g4Ni90ZXN0cy9yZHBtYy5jCmluZGV4IDZlNjdjZWUuLjFlYTkxNjYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC94ODYvdGVzdHMvcmRwbWMuYworKysgYi90b29scy9wZXJmL2FyY2gveDg2L3Rlc3RzL3JkcG1jLmMKQEAgLTEzLDcgKzEzLDcgQEAKICNpbmNsdWRlICJ0ZXN0cy90ZXN0cy5oIgogI2luY2x1ZGUgImNsb2V4ZWMuaCIKICNpbmNsdWRlICJldmVudC5oIgotI2luY2x1ZGUgInV0aWwuaCIKKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4gLy8gcGFnZV9zaXplCiAjaW5jbHVkZSAiYXJjaC10ZXN0cy5oIgogCiBzdGF0aWMgdTY0IHJkcG1jKHVuc2lnbmVkIGludCBjb3VudGVyKQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL2FyY2hpbnNuLmMgYi90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvYXJjaGluc24uYwppbmRleCA5ODc2YzdhLi4zZTY3OTE1IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvYXJjaGluc24uYworKysgYi90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvYXJjaGluc24uYwpAQCAtMSw2ICsxLDcgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjaW5jbHVkZSAiLi4vLi4vLi4vLi4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW5zbi5oIgogI2luY2x1ZGUgImFyY2hpbnNuLmgiCisjaW5jbHVkZSAiZXZlbnQuaCIKICNpbmNsdWRlICJtYWNoaW5lLmgiCiAjaW5jbHVkZSAidGhyZWFkLmgiCiAjaW5jbHVkZSAic3ltYm9sLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvZXZlbnQuYyBiL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9ldmVudC5jCmluZGV4IGEzYTBiNjguLmQzNTdjNjIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9ldmVudC5jCisrKyBiL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9ldmVudC5jCkBAIC0zLDYgKzMsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3phbGxvYy5oPgogCisjaW5jbHVkZSAiLi4vLi4vdXRpbC9ldmVudC5oIgorI2luY2x1ZGUgIi4uLy4uL3V0aWwvc3ludGhldGljLWV2ZW50cy5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvbWFjaGluZS5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvdG9vbC5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvbWFwLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvaW50ZWwtYnRzLmMgYi90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvaW50ZWwtYnRzLmMKaW5kZXggZDI2MzQzMC4uZjdmNjhhNSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL2ludGVsLWJ0cy5jCisrKyBiL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9pbnRlbC1idHMuYwpAQCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUgIi4uLy4uL3V0aWwvZXZlbnQuaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL2V2c2VsLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9ldmxpc3QuaCIKKyNpbmNsdWRlICIuLi8uLi91dGlsL21tYXAuaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL3Nlc3Npb24uaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL3BtdS5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvZGVidWcuaCIKQEAgLTIyLDcgKzIzLDcgQEAKICNpbmNsdWRlICIuLi8uLi91dGlsL3RzYy5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvYXV4dHJhY2UuaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL2ludGVsLWJ0cy5oIgotI2luY2x1ZGUgIi4uLy4uL3V0aWwvdXRpbC5oIgorI2luY2x1ZGUgPGludGVybmFsL2xpYi5oPiAvLyBwYWdlX3NpemUKIAogI2RlZmluZSBLaUIoeCkgKCh4KSAqIDEwMjQpCiAjZGVmaW5lIE1pQih4KSAoKHgpICogMTAyNCAqIDEwMjQpCkBAIC03NCwxMCArNzUsMTAgQEAgc3RhdGljIGludCBpbnRlbF9idHNfaW5mb19maWxsKHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKIAlpZiAocHJpdl9zaXplICE9IElOVEVMX0JUU19BVVhUUkFDRV9QUklWX1NJWkUpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKCFzZXNzaW9uLT5ldmxpc3QtPm5yX21tYXBzKQorCWlmICghc2Vzc2lvbi0+ZXZsaXN0LT5jb3JlLm5yX21tYXBzKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXBjID0gc2Vzc2lvbi0+ZXZsaXN0LT5tbWFwWzBdLmJhc2U7CisJcGMgPSBzZXNzaW9uLT5ldmxpc3QtPm1tYXBbMF0uY29yZS5iYXNlOwogCWlmIChwYykgewogCQllcnIgPSBwZXJmX3JlYWRfdHNjX2NvbnZlcnNpb24ocGMsICZ0Yyk7CiAJCWlmIChlcnIpIHsKQEAgLTIzMCw3ICsyMzEsNyBAQCBzdGF0aWMgaW50IGludGVsX2J0c19yZWNvcmRpbmdfb3B0aW9ucyhzdHJ1Y3QgYXV4dHJhY2VfcmVjb3JkICppdHIsCiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOwogCi0JCXRyYWNraW5nX2V2c2VsID0gcGVyZl9ldmxpc3RfX2xhc3QoZXZsaXN0KTsKKwkJdHJhY2tpbmdfZXZzZWwgPSBldmxpc3RfX2xhc3QoZXZsaXN0KTsKIAogCQlwZXJmX2V2bGlzdF9fc2V0X3RyYWNraW5nX2V2ZW50KGV2bGlzdCwgdHJhY2tpbmdfZXZzZWwpOwogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvaW50ZWwtcHQuYyBiL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9pbnRlbC1wdC5jCmluZGV4IGNiN2NmMTYuLmQ2ZDI2MjUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9pbnRlbC1wdC5jCisrKyBiL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9pbnRlbC1wdC5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9ldmxpc3QuaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL2V2c2VsLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9jcHVtYXAuaCIKKyNpbmNsdWRlICIuLi8uLi91dGlsL21tYXAuaCIKICNpbmNsdWRlIDxzdWJjbWQvcGFyc2Utb3B0aW9ucy5oPgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvcGFyc2UtZXZlbnRzLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9wbXUuaCIKQEAgLTI2LDcgKzI3LDcgQEAKICNpbmNsdWRlICIuLi8uLi91dGlsL3JlY29yZC5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvdGFyZ2V0LmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC90c2MuaCIKLSNpbmNsdWRlICIuLi8uLi91dGlsL3V0aWwuaCIKKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4gLy8gcGFnZV9zaXplCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9pbnRlbC1wdC5oIgogCiAjZGVmaW5lIEtpQih4KSAoKHgpICogMTAyNCkKQEAgLTM1MSwxMCArMzUyLDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfcHRfaW5mb19maWxsKHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKIAlmaWx0ZXIgPSBpbnRlbF9wdF9maW5kX2ZpbHRlcihzZXNzaW9uLT5ldmxpc3QsIHB0ci0+aW50ZWxfcHRfcG11KTsKIAlmaWx0ZXJfc3RyX2xlbiA9IGZpbHRlciA/IHN0cmxlbihmaWx0ZXIpIDogMDsKIAotCWlmICghc2Vzc2lvbi0+ZXZsaXN0LT5ucl9tbWFwcykKKwlpZiAoIXNlc3Npb24tPmV2bGlzdC0+Y29yZS5ucl9tbWFwcykKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlwYyA9IHNlc3Npb24tPmV2bGlzdC0+bW1hcFswXS5iYXNlOworCXBjID0gc2Vzc2lvbi0+ZXZsaXN0LT5tbWFwWzBdLmNvcmUuYmFzZTsKIAlpZiAocGMpIHsKIAkJZXJyID0gcGVyZl9yZWFkX3RzY19jb252ZXJzaW9uKHBjLCAmdGMpOwogCQlpZiAoZXJyKSB7CkBAIC00MTYsMTIgKzQxNywxMiBAQCBzdGF0aWMgaW50IGludGVsX3B0X3RyYWNrX3N3aXRjaGVzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAkJcmV0dXJuIGVycjsKIAl9CiAKLQlldnNlbCA9IHBlcmZfZXZsaXN0X19sYXN0KGV2bGlzdCk7CisJZXZzZWwgPSBldmxpc3RfX2xhc3QoZXZsaXN0KTsKIAogCXBlcmZfZXZzZWxfX3NldF9zYW1wbGVfYml0KGV2c2VsLCBDUFUpOwogCXBlcmZfZXZzZWxfX3NldF9zYW1wbGVfYml0KGV2c2VsLCBUSU1FKTsKIAotCWV2c2VsLT5zeXN0ZW1fd2lkZSA9IHRydWU7CisJZXZzZWwtPmNvcmUuc3lzdGVtX3dpZGUgPSB0cnVlOwogCWV2c2VsLT5ub19hdXhfc2FtcGxlcyA9IHRydWU7CiAJZXZzZWwtPmltbWVkaWF0ZSA9IHRydWU7CiAKQEAgLTcxNiwxMyArNzE3LDEzIEBAIHN0YXRpYyBpbnQgaW50ZWxfcHRfcmVjb3JkaW5nX29wdGlvbnMoc3RydWN0IGF1eHRyYWNlX3JlY29yZCAqaXRyLAogCQkJCWlmIChlcnIpCiAJCQkJCXJldHVybiBlcnI7CiAKLQkJCQlzd2l0Y2hfZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCQkJCXN3aXRjaF9ldnNlbCA9IGV2bGlzdF9fbGFzdChldmxpc3QpOwogCiAJCQkJc3dpdGNoX2V2c2VsLT5jb3JlLmF0dHIuZnJlcSA9IDA7CiAJCQkJc3dpdGNoX2V2c2VsLT5jb3JlLmF0dHIuc2FtcGxlX3BlcmlvZCA9IDE7CiAJCQkJc3dpdGNoX2V2c2VsLT5jb3JlLmF0dHIuY29udGV4dF9zd2l0Y2ggPSAxOwogCi0JCQkJc3dpdGNoX2V2c2VsLT5zeXN0ZW1fd2lkZSA9IHRydWU7CisJCQkJc3dpdGNoX2V2c2VsLT5jb3JlLnN5c3RlbV93aWRlID0gdHJ1ZTsKIAkJCQlzd2l0Y2hfZXZzZWwtPm5vX2F1eF9zYW1wbGVzID0gdHJ1ZTsKIAkJCQlzd2l0Y2hfZXZzZWwtPmltbWVkaWF0ZSA9IHRydWU7CiAKQEAgLTc3NCw3ICs3NzUsNyBAQCBzdGF0aWMgaW50IGludGVsX3B0X3JlY29yZGluZ19vcHRpb25zKHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAKLQkJdHJhY2tpbmdfZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCQl0cmFja2luZ19ldnNlbCA9IGV2bGlzdF9fbGFzdChldmxpc3QpOwogCiAJCXBlcmZfZXZsaXN0X19zZXRfdHJhY2tpbmdfZXZlbnQoZXZsaXN0LCB0cmFja2luZ19ldnNlbCk7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9tYWNoaW5lLmMgYi90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvbWFjaGluZS5jCmluZGV4IDFlOWVjNzguLmUxN2UwODAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9tYWNoaW5lLmMKKysrIGIvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL21hY2hpbmUuYwpAQCAtMSw5ICsxLDEwIEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAKLSNpbmNsdWRlICIuLi8uLi91dGlsL3V0aWwuaCIKKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4gLy8gcGFnZV9zaXplCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9tYWNoaW5lLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9tYXAuaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL3N5bWJvbC5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL3RzYy5jIGIvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL3RzYy5jCmluZGV4IGM1MTk3YTEuLjJmNTVhZmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC90c2MuYworKysgYi90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvdHNjLmMKQEAgLTgsNiArOCw4IEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vYmFycmllci5oPgogI2luY2x1ZGUgIi4uLy4uLy4uL3V0aWwvZGVidWcuaCIKKyNpbmNsdWRlICIuLi8uLi8uLi91dGlsL2V2ZW50LmgiCisjaW5jbHVkZSAiLi4vLi4vLi4vdXRpbC9zeW50aGV0aWMtZXZlbnRzLmgiCiAjaW5jbHVkZSAiLi4vLi4vLi4vdXRpbC90c2MuaCIKIAogaW50IHBlcmZfcmVhZF90c2NfY29udmVyc2lvbihjb25zdCBzdHJ1Y3QgcGVyZl9ldmVudF9tbWFwX3BhZ2UgKnBjLApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL3Vud2luZC1saWJ1bndpbmQuYyBiL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC91bndpbmQtbGlidW53aW5kLmMKaW5kZXggMDU5MjBlMy4uNDczNTc5NyAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL3Vud2luZC1saWJ1bndpbmQuYworKysgYi90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvdW53aW5kLWxpYnVud2luZC5jCkBAIC0xLDExICsxLDExIEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogCiAjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlICIuLi8uLi91dGlsL2RlYnVnLmgiCiAjaWZuZGVmIFJFTU9URV9VTldJTkRfTElCVU5XSU5ECiAjaW5jbHVkZSA8bGlidW53aW5kLmg+CiAjaW5jbHVkZSAicGVyZl9yZWdzLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC91bndpbmQuaCIKLSNpbmNsdWRlICIuLi8uLi91dGlsL2RlYnVnLmgiCiAjZW5kaWYKIAogI2lmZGVmIEhBVkVfQVJDSF9YODZfNjRfU1VQUE9SVApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9iZW5jaC9lcG9sbC1jdGwuYyBiL3Rvb2xzL3BlcmYvYmVuY2gvZXBvbGwtY3RsLmMKaW5kZXggZDFjYWE0YS4uYmI2MTdlNSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9iZW5jaC9lcG9sbC1jdGwuYworKysgYi90b29scy9wZXJmL2JlbmNoL2Vwb2xsLWN0bC5jCkBAIC0yMSwxMiArMjEsMTIgQEAKICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDxzeXMvZXBvbGwuaD4KICNpbmNsdWRlIDxzeXMvZXZlbnRmZC5oPgorI2luY2x1ZGUgPGludGVybmFsL2NwdW1hcC5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAKICNpbmNsdWRlICIuLi91dGlsL3N0YXQuaCIKICNpbmNsdWRlIDxzdWJjbWQvcGFyc2Utb3B0aW9ucy5oPgogI2luY2x1ZGUgImJlbmNoLmgiCi0jaW5jbHVkZSAiY3B1bWFwLmgiCiAKICNpbmNsdWRlIDxlcnIuaD4KIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9iZW5jaC9lcG9sbC13YWl0LmMgYi90b29scy9wZXJmL2JlbmNoL2Vwb2xsLXdhaXQuYwppbmRleCBmNmI0NDcyOC4uN2FmNjk0NCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9iZW5jaC9lcG9sbC13YWl0LmMKKysrIGIvdG9vbHMvcGVyZi9iZW5jaC9lcG9sbC13YWl0LmMKQEAgLTc2LDEyICs3NiwxMiBAQAogI2luY2x1ZGUgPHN5cy9lcG9sbC5oPgogI2luY2x1ZGUgPHN5cy9ldmVudGZkLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwvY3B1bWFwLmg+CiAjaW5jbHVkZSA8cGVyZi9jcHVtYXAuaD4KIAogI2luY2x1ZGUgIi4uL3V0aWwvc3RhdC5oIgogI2luY2x1ZGUgPHN1YmNtZC9wYXJzZS1vcHRpb25zLmg+CiAjaW5jbHVkZSAiYmVuY2guaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKIAogI2luY2x1ZGUgPGVyci5oPgogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2JlbmNoL2Z1dGV4LWhhc2guYyBiL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtaGFzaC5jCmluZGV4IDgwZTEzODkuLjhiYTBjMzMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtaGFzaC5jCisrKyBiL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtaGFzaC5jCkBAIC0yMCwxMyArMjAsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KICNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPGludGVybmFsL2NwdW1hcC5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAKICNpbmNsdWRlICIuLi91dGlsL3N0YXQuaCIKICNpbmNsdWRlIDxzdWJjbWQvcGFyc2Utb3B0aW9ucy5oPgogI2luY2x1ZGUgImJlbmNoLmgiCiAjaW5jbHVkZSAiZnV0ZXguaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKIAogI2luY2x1ZGUgPGVyci5oPgogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2JlbmNoL2Z1dGV4LWxvY2stcGkuYyBiL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtbG9jay1waS5jCmluZGV4IGM1ZDZkMGEuLmQwY2FlODEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtbG9jay1waS5jCisrKyBiL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtbG9jay1waS5jCkBAIC0xNCwxMCArMTQsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KICNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGludGVybmFsL2NwdW1hcC5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAjaW5jbHVkZSAiYmVuY2guaCIKICNpbmNsdWRlICJmdXRleC5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgogCiAjaW5jbHVkZSA8ZXJyLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2JlbmNoL2Z1dGV4LXJlcXVldWUuYyBiL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtcmVxdWV1ZS5jCmluZGV4IDc1ZDM0MThjLi5hMDBhNjg5IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2JlbmNoL2Z1dGV4LXJlcXVldWUuYworKysgYi90b29scy9wZXJmL2JlbmNoL2Z1dGV4LXJlcXVldWUuYwpAQCAtMjAsMTAgKzIwLDEwIEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZTY0Lmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC9jcHVtYXAuaD4KICNpbmNsdWRlIDxwZXJmL2NwdW1hcC5oPgogI2luY2x1ZGUgImJlbmNoLmgiCiAjaW5jbHVkZSAiZnV0ZXguaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKIAogI2luY2x1ZGUgPGVyci5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9iZW5jaC9mdXRleC13YWtlLXBhcmFsbGVsLmMgYi90b29scy9wZXJmL2JlbmNoL2Z1dGV4LXdha2UtcGFyYWxsZWwuYwppbmRleCAxNjNmZTE2Li5hMDUzY2YyIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2JlbmNoL2Z1dGV4LXdha2UtcGFyYWxsZWwuYworKysgYi90b29scy9wZXJmL2JlbmNoL2Z1dGV4LXdha2UtcGFyYWxsZWwuYwpAQCAtMjksNyArMjksOCBAQCBpbnQgYmVuY2hfZnV0ZXhfd2FrZV9wYXJhbGxlbChpbnQgYXJnYyBfX21heWJlX3VudXNlZCwgY29uc3QgY2hhciAqKmFyZ3YgX19tYXliZQogI2luY2x1ZGUgPGxpbnV4L3RpbWU2NC5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSAiZnV0ZXguaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKKyNpbmNsdWRlIDxpbnRlcm5hbC9jcHVtYXAuaD4KKyNpbmNsdWRlIDxwZXJmL2NwdW1hcC5oPgogCiAjaW5jbHVkZSA8ZXJyLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2JlbmNoL2Z1dGV4LXdha2UuYyBiL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtd2FrZS5jCmluZGV4IDc3ZGNkYzEuLmRmODEwMDkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtd2FrZS5jCisrKyBiL3Rvb2xzL3BlcmYvYmVuY2gvZnV0ZXgtd2FrZS5jCkBAIC0yMCwxMCArMjAsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lNjQuaD4KICNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGludGVybmFsL2NwdW1hcC5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAjaW5jbHVkZSAiYmVuY2guaCIKICNpbmNsdWRlICJmdXRleC5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgogCiAjaW5jbHVkZSA8ZXJyLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2JlbmNoL251bWEuYyBiL3Rvb2xzL3BlcmYvYmVuY2gvbnVtYS5jCmluZGV4IDYyYjhlZjQuLjU3OTcyNTMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYmVuY2gvbnVtYS5jCisrKyBiL3Rvb2xzL3BlcmYvYmVuY2gvbnVtYS5jCkBAIC05LDcgKzksNiBAQAogLyogRm9yIHRoZSBDTFJfKCkgbWFjcm9zICovCiAjaW5jbHVkZSA8cHRocmVhZC5oPgogCi0jaW5jbHVkZSAiLi4vYnVpbHRpbi5oIgogI2luY2x1ZGUgPHN1YmNtZC9wYXJzZS1vcHRpb25zLmg+CiAjaW5jbHVkZSAiLi4vdXRpbC9jbG9leGVjLmgiCiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYmVuY2gvc2NoZWQtbWVzc2FnaW5nLmMgYi90b29scy9wZXJmL2JlbmNoL3NjaGVkLW1lc3NhZ2luZy5jCmluZGV4IGM2M2ViOWEuLjk3ZTRhNGYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYmVuY2gvc2NoZWQtbWVzc2FnaW5nLmMKKysrIGIvdG9vbHMvcGVyZi9iZW5jaC9zY2hlZC1tZXNzYWdpbmcuYwpAQCAtMTAsOSArMTAsNyBAQAogICoKICAqLwogCi0jaW5jbHVkZSAiLi4vdXRpbC91dGlsLmgiCiAjaW5jbHVkZSA8c3ViY21kL3BhcnNlLW9wdGlvbnMuaD4KLSNpbmNsdWRlICIuLi9idWlsdGluLmgiCiAjaW5jbHVkZSAiYmVuY2guaCIKIAogLyogVGVzdCBncm91cHMgb2YgMjAgcHJvY2Vzc2VzIHNwcmF5aW5nIHRvIDIwIHJlY2VpdmVycyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9iZW5jaC9zY2hlZC1waXBlLmMgYi90b29scy9wZXJmL2JlbmNoL3NjaGVkLXBpcGUuYwppbmRleCAzNWIwN2YxLi4zYzg4ZDFmIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2JlbmNoL3NjaGVkLXBpcGUuYworKysgYi90b29scy9wZXJmL2JlbmNoL3NjaGVkLXBpcGUuYwpAQCAtOSw5ICs5LDcgQEAKICAqICBodHRwOi8vcGVvcGxlLnJlZGhhdC5jb20vbWluZ28vY2ZzLXNjaGVkdWxlci90b29scy9waXBlLXRlc3QtMW0uYwogICogUG9ydGVkIHRvIHBlcmYgYnkgSGl0b3NoaSBNaXRha2UgPG1pdGFrZUBkY2wuaW5mby53YXNlZGEuYWMuanA+CiAgKi8KLSNpbmNsdWRlICIuLi91dGlsL3V0aWwuaCIKICNpbmNsdWRlIDxzdWJjbWQvcGFyc2Utb3B0aW9ucy5oPgotI2luY2x1ZGUgIi4uL2J1aWx0aW4uaCIKICNpbmNsdWRlICJiZW5jaC5oIgogCiAjaW5jbHVkZSA8dW5pc3RkLmg+CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2J1aWx0aW4tYW5ub3RhdGUuYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1hbm5vdGF0ZS5jCmluZGV4IDRlNGQyZTcuLjhkYjhmYzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1hbm5vdGF0ZS5jCisrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1hbm5vdGF0ZS5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAidXRpbC9zb3J0LmgiCiAjaW5jbHVkZSAidXRpbC9oaXN0LmgiCiAjaW5jbHVkZSAidXRpbC9kc28uaCIKKyNpbmNsdWRlICJ1dGlsL21hY2hpbmUuaCIKICNpbmNsdWRlICJ1dGlsL21hcC5oIgogI2luY2x1ZGUgInV0aWwvc2Vzc2lvbi5oIgogI2luY2x1ZGUgInV0aWwvdG9vbC5oIgpAQCAtMzksNiArNDAsNyBAQAogI2luY2x1ZGUgPGRsZmNuLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogc3RydWN0IHBlcmZfYW5ub3RhdGUgewogCXN0cnVjdCBwZXJmX3Rvb2wgdG9vbDsKQEAgLTU4Myw4ICs1ODUsOCBAQCBpbnQgY21kX2Fubm90YXRlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAlkYXRhLnBhdGggPSBpbnB1dF9uYW1lOwogCiAJYW5ub3RhdGUuc2Vzc2lvbiA9IHBlcmZfc2Vzc2lvbl9fbmV3KCZkYXRhLCBmYWxzZSwgJmFubm90YXRlLnRvb2wpOwotCWlmIChhbm5vdGF0ZS5zZXNzaW9uID09IE5VTEwpCi0JCXJldHVybiAtMTsKKwlpZiAoSVNfRVJSKGFubm90YXRlLnNlc3Npb24pKQorCQlyZXR1cm4gUFRSX0VSUihhbm5vdGF0ZS5zZXNzaW9uKTsKIAogCWFubm90YXRlLmhhc19icl9zdGFjayA9IHBlcmZfaGVhZGVyX19oYXNfZmVhdCgmYW5ub3RhdGUuc2Vzc2lvbi0+aGVhZGVyLAogCQkJCQkJICAgICAgSEVBREVSX0JSQU5DSF9TVEFDSyk7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2J1aWx0aW4tYnVpbGRpZC1jYWNoZS5jIGIvdG9vbHMvcGVyZi9idWlsdGluLWJ1aWxkaWQtY2FjaGUuYwppbmRleCAxYTY5ZWI1Li4zOWVmYTUxIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2J1aWx0aW4tYnVpbGRpZC1jYWNoZS5jCisrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1idWlsZGlkLWNhY2hlLmMKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJ1dGlsL3V0aWwuaCIKICNpbmNsdWRlICJ1dGlsL3Byb2JlLWZpbGUuaCIKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogc3RhdGljIGludCBidWlsZF9pZF9jYWNoZV9fa2NvcmVfYnVpbGRpZChjb25zdCBjaGFyICpwcm9jX2RpciwgY2hhciAqc2J1aWxkaWQpCiB7CkBAIC00MjIsOCArNDIzLDggQEAgaW50IGNtZF9idWlsZGlkX2NhY2hlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAkJZGF0YS5mb3JjZSA9IGZvcmNlOwogCiAJCXNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZGF0YSwgZmFsc2UsIE5VTEwpOwotCQlpZiAoc2Vzc2lvbiA9PSBOVUxMKQotCQkJcmV0dXJuIC0xOworCQlpZiAoSVNfRVJSKHNlc3Npb24pKQorCQkJcmV0dXJuIFBUUl9FUlIoc2Vzc2lvbik7CiAJfQogCiAJaWYgKHN5bWJvbF9faW5pdChzZXNzaW9uID8gJnNlc3Npb24tPmhlYWRlci5lbnYgOiBOVUxMKSA8IDApCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2J1aWx0aW4tYnVpbGRpZC1saXN0LmMgYi90b29scy9wZXJmL2J1aWx0aW4tYnVpbGRpZC1saXN0LmMKaW5kZXggNWEwZDhiMy4uZTNlZjc1NSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9idWlsdGluLWJ1aWxkaWQtbGlzdC5jCisrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1idWlsZGlkLWxpc3QuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgInV0aWwvc3ltYm9sLmgiCiAjaW5jbHVkZSAidXRpbC9kYXRhLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogc3RhdGljIGludCBzeXNmc19fZnByaW50Zl9idWlsZF9pZChGSUxFICpmcCkKIHsKQEAgLTY1LDggKzY2LDggQEAgc3RhdGljIGludCBwZXJmX3Nlc3Npb25fX2xpc3RfYnVpbGRfaWRzKGJvb2wgZm9yY2UsIGJvb2wgd2l0aF9oaXRzKQogCQlnb3RvIG91dDsKIAogCXNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZGF0YSwgZmFsc2UsICZidWlsZF9pZF9fbWFya19kc29faGl0X29wcyk7Ci0JaWYgKHNlc3Npb24gPT0gTlVMTCkKLQkJcmV0dXJuIC0xOworCWlmIChJU19FUlIoc2Vzc2lvbikpCisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCiAJLyoKIAkgKiBXZSB0YWtlIGFsbCBidWlsZGlkcyB3aGVuIHRoZSBmaWxlIGNvbnRhaW5zIEFVWCBhcmVhIHRyYWNpbmcgZGF0YQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9idWlsdGluLWMyYy5jIGIvdG9vbHMvcGVyZi9idWlsdGluLWMyYy5jCmluZGV4IGIwOWIxMmUuLjM1NDJiNmEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1jMmMuYworKysgYi90b29scy9wZXJmL2J1aWx0aW4tYzJjLmMKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGludHR5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmdpZnkuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KQEAgLTIwLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlICJkZWJ1Zy5oIgogI2luY2x1ZGUgImJ1aWx0aW4uaCIKKyNpbmNsdWRlIDxwZXJmL2NwdW1hcC5oPgogI2luY2x1ZGUgPHN1YmNtZC9wYWdlci5oPgogI2luY2x1ZGUgPHN1YmNtZC9wYXJzZS1vcHRpb25zLmg+CiAjaW5jbHVkZSAibWFwX3N5bWJvbC5oIgpAQCAtMjc4MCw4ICsyNzgyLDkgQEAgc3RhdGljIGludCBwZXJmX2MyY19fcmVwb3J0KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAl9CiAKIAlzZXNzaW9uID0gcGVyZl9zZXNzaW9uX19uZXcoJmRhdGEsIDAsICZjMmMudG9vbCk7Ci0JaWYgKHNlc3Npb24gPT0gTlVMTCkgewotCQlwcl9kZWJ1ZygiTm8gbWVtb3J5IGZvciBzZXNzaW9uXG4iKTsKKwlpZiAoSVNfRVJSKHNlc3Npb24pKSB7CisJCWVyciA9IFBUUl9FUlIoc2Vzc2lvbik7CisJCXByX2RlYnVnKCJFcnJvciBjcmVhdGluZyBwZXJmIHNlc3Npb25cbiIpOwogCQlnb3RvIG91dDsKIAl9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1jb25maWcuYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1jb25maWcuYwppbmRleCA0MmQ4MTU3Li4yNjAzMDE1IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2J1aWx0aW4tY29uZmlnLmMKKysrIGIvdG9vbHMvcGVyZi9idWlsdGluLWNvbmZpZy5jCkBAIC05LDcgKzksNiBAQAogCiAjaW5jbHVkZSAidXRpbC9jYWNoZS5oIgogI2luY2x1ZGUgPHN1YmNtZC9wYXJzZS1vcHRpb25zLmg+Ci0jaW5jbHVkZSAidXRpbC91dGlsLmgiCiAjaW5jbHVkZSAidXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWwvY29uZmlnLmgiCiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2J1aWx0aW4tZGlmZi5jIGIvdG9vbHMvcGVyZi9idWlsdGluLWRpZmYuYwppbmRleCA4MjdlNDgwLi5jMzdhNzg2IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2J1aWx0aW4tZGlmZi5jCisrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1kaWZmLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJ1dGlsL3RpbWUtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGlsL2Fubm90YXRlLmgiCiAjaW5jbHVkZSAidXRpbC9tYXAuaCIKKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KICNpbmNsdWRlIDxzdWJjbWQvcGFnZXIuaD4KICNpbmNsdWRlIDxzdWJjbWQvcGFyc2Utb3B0aW9ucy5oPgpAQCAtMTE1Myw5ICsxMTU0LDkgQEAgc3RhdGljIGludCBjaGVja19maWxlX2Jyc3RhY2sodm9pZCkKIAogCWRhdGFfX2Zvcl9lYWNoX2ZpbGUoaSwgZCkgewogCQlkLT5zZXNzaW9uID0gcGVyZl9zZXNzaW9uX19uZXcoJmQtPmRhdGEsIGZhbHNlLCAmcGRpZmYudG9vbCk7Ci0JCWlmICghZC0+c2Vzc2lvbikgeworCQlpZiAoSVNfRVJSKGQtPnNlc3Npb24pKSB7CiAJCQlwcl9lcnIoIkZhaWxlZCB0byBvcGVuICVzXG4iLCBkLT5kYXRhLnBhdGgpOwotCQkJcmV0dXJuIC0xOworCQkJcmV0dXJuIFBUUl9FUlIoZC0+c2Vzc2lvbik7CiAJCX0KIAogCQloYXNfYnJfc3RhY2sgPSBwZXJmX2hlYWRlcl9faGFzX2ZlYXQoJmQtPnNlc3Npb24tPmhlYWRlciwKQEAgLTExODUsOSArMTE4Niw5IEBAIHN0YXRpYyBpbnQgX19jbWRfZGlmZih2b2lkKQogCiAJZGF0YV9fZm9yX2VhY2hfZmlsZShpLCBkKSB7CiAJCWQtPnNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZC0+ZGF0YSwgZmFsc2UsICZwZGlmZi50b29sKTsKLQkJaWYgKCFkLT5zZXNzaW9uKSB7CisJCWlmIChJU19FUlIoZC0+c2Vzc2lvbikpIHsKKwkJCXJldCA9IFBUUl9FUlIoZC0+c2Vzc2lvbik7CiAJCQlwcl9lcnIoIkZhaWxlZCB0byBvcGVuICVzXG4iLCBkLT5kYXRhLnBhdGgpOwotCQkJcmV0ID0gLTE7CiAJCQlnb3RvIG91dF9kZWxldGU7CiAJCX0KIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9idWlsdGluLWV2bGlzdC5jIGIvdG9vbHMvcGVyZi9idWlsdGluLWV2bGlzdC5jCmluZGV4IDIzOGZhMzguLjQ0MDUwMTkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1ldmxpc3QuYworKysgYi90b29scy9wZXJmL2J1aWx0aW4tZXZsaXN0LmMKQEAgLTUsMTggKzUsMTggQEAKICAqLwogI2luY2x1ZGUgImJ1aWx0aW4uaCIKIAotI2luY2x1ZGUgInV0aWwvdXRpbC5oIgotCiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogCiAjaW5jbHVkZSAicGVyZi5oIgogI2luY2x1ZGUgInV0aWwvZXZsaXN0LmgiCiAjaW5jbHVkZSAidXRpbC9ldnNlbC5oIgorI2luY2x1ZGUgInV0aWwvZXZzZWxfZnByaW50Zi5oIgogI2luY2x1ZGUgInV0aWwvcGFyc2UtZXZlbnRzLmgiCiAjaW5jbHVkZSA8c3ViY21kL3BhcnNlLW9wdGlvbnMuaD4KICNpbmNsdWRlICJ1dGlsL3Nlc3Npb24uaCIKICNpbmNsdWRlICJ1dGlsL2RhdGEuaCIKICNpbmNsdWRlICJ1dGlsL2RlYnVnLmgiCisjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAKIHN0YXRpYyBpbnQgX19jbWRfZXZsaXN0KGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgc3RydWN0IHBlcmZfYXR0cl9kZXRhaWxzICpkZXRhaWxzKQogewpAQCAtMzAsOCArMzAsOCBAQCBzdGF0aWMgaW50IF9fY21kX2V2bGlzdChjb25zdCBjaGFyICpmaWxlX25hbWUsIHN0cnVjdCBwZXJmX2F0dHJfZGV0YWlscyAqZGV0YWlscwogCWJvb2wgaGFzX3RyYWNlcG9pbnQgPSBmYWxzZTsKIAogCXNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZGF0YSwgMCwgTlVMTCk7Ci0JaWYgKHNlc3Npb24gPT0gTlVMTCkKLQkJcmV0dXJuIC0xOworCWlmIChJU19FUlIoc2Vzc2lvbikpCisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCiAJZXZsaXN0X19mb3JfZWFjaF9lbnRyeShzZXNzaW9uLT5ldmxpc3QsIHBvcykgewogCQlwZXJmX2V2c2VsX19mcHJpbnRmKHBvcywgZGV0YWlscywgc3Rkb3V0KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1pbmplY3QuYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1pbmplY3QuYwppbmRleCBjMTRmNDBiOC4uMzcyZWNiMyAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9idWlsdGluLWluamVjdC5jCisrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1pbmplY3QuYwpAQCAtMjEsNyArMjEsOSBAQAogI2luY2x1ZGUgInV0aWwvYXV4dHJhY2UuaCIKICNpbmNsdWRlICJ1dGlsL2ppdC5oIgogI2luY2x1ZGUgInV0aWwvc3ltYm9sLmgiCisjaW5jbHVkZSAidXRpbC9zeW50aGV0aWMtZXZlbnRzLmgiCiAjaW5jbHVkZSAidXRpbC90aHJlYWQuaCIKKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogI2luY2x1ZGUgPHN1YmNtZC9wYXJzZS1vcHRpb25zLmg+CiAKQEAgLTgzNCw4ICs4MzYsOCBAQCBpbnQgY21kX2luamVjdChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAKIAlkYXRhLnBhdGggPSBpbmplY3QuaW5wdXRfbmFtZTsKIAlpbmplY3Quc2Vzc2lvbiA9IHBlcmZfc2Vzc2lvbl9fbmV3KCZkYXRhLCB0cnVlLCAmaW5qZWN0LnRvb2wpOwotCWlmIChpbmplY3Quc2Vzc2lvbiA9PSBOVUxMKQotCQlyZXR1cm4gLTE7CisJaWYgKElTX0VSUihpbmplY3Quc2Vzc2lvbikpCisJCXJldHVybiBQVFJfRVJSKGluamVjdC5zZXNzaW9uKTsKIAogCWlmICh6c3RkX2luaXQoJihpbmplY3Quc2Vzc2lvbi0+enN0ZF9kYXRhKSwgMCkgPCAwKQogCQlwcl93YXJuaW5nKCJEZWNvbXByZXNzaW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZC5cbiIpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9idWlsdGluLWttZW0uYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1rbWVtLmMKaW5kZXggYjU2ODJiZS4uMWU2MWUzNTMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1rbWVtLmMKKysrIGIvdG9vbHMvcGVyZi9idWlsdGluLWttZW0uYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgInV0aWwvdG9vbC5oIgogI2luY2x1ZGUgInV0aWwvY2FsbGNoYWluLmgiCiAjaW5jbHVkZSAidXRpbC90aW1lLXV0aWxzLmgiCisjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAKICNpbmNsdWRlIDxzdWJjbWQvcGFnZXIuaD4KICNpbmNsdWRlIDxzdWJjbWQvcGFyc2Utb3B0aW9ucy5oPgpAQCAtMTk1Niw4ICsxOTU3LDggQEAgaW50IGNtZF9rbWVtKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAlkYXRhLnBhdGggPSBpbnB1dF9uYW1lOwogCiAJa21lbV9zZXNzaW9uID0gc2Vzc2lvbiA9IHBlcmZfc2Vzc2lvbl9fbmV3KCZkYXRhLCBmYWxzZSwgJnBlcmZfa21lbSk7Ci0JaWYgKHNlc3Npb24gPT0gTlVMTCkKLQkJcmV0dXJuIC0xOworCWlmIChJU19FUlIoc2Vzc2lvbikpCisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCiAJcmV0ID0gLTE7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1rdm0uYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1rdm0uYwppbmRleCAwYTRmY2JlLi4yMjI3ZTJmIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2J1aWx0aW4ta3ZtLmMKKysrIGIvdG9vbHMvcGVyZi9idWlsdGluLWt2bS5jCkBAIC01LDYgKzUsNyBAQAogI2luY2x1ZGUgInV0aWwvYnVpbGQtaWQuaCIKICNpbmNsdWRlICJ1dGlsL2V2c2VsLmgiCiAjaW5jbHVkZSAidXRpbC9ldmxpc3QuaCIKKyNpbmNsdWRlICJ1dGlsL21tYXAuaCIKICNpbmNsdWRlICJ1dGlsL3Rlcm0uaCIKICNpbmNsdWRlICJ1dGlsL3N5bWJvbC5oIgogI2luY2x1ZGUgInV0aWwvdGhyZWFkLmgiCkBAIC0xNyw5ICsxOCwxMSBAQAogI2luY2x1ZGUgInV0aWwvZGVidWcuaCIKICNpbmNsdWRlICJ1dGlsL3Rvb2wuaCIKICNpbmNsdWRlICJ1dGlsL3N0YXQuaCIKKyNpbmNsdWRlICJ1dGlsL3N5bnRoZXRpYy1ldmVudHMuaCIKICNpbmNsdWRlICJ1dGlsL3RvcC5oIgogI2luY2x1ZGUgInV0aWwvZGF0YS5oIgogI2luY2x1ZGUgInV0aWwvb3JkZXJlZC1ldmVudHMuaCIKKyNpbmNsdWRlICJ1dGlsL2t2bS1zdGF0LmgiCiAjaW5jbHVkZSAidWkvdWkuaCIKIAogI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgpAQCAtMzEsNiArMzQsNyBAQAogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KIAorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWU2NC5oPgpAQCAtNTgsNyArNjIsNiBAQCBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X2ZpbGVuYW1lX2Zvcl9wZXJmX2t2bSh2b2lkKQogfQogCiAjaWZkZWYgSEFWRV9LVk1fU1RBVF9TVVBQT1JUCi0jaW5jbHVkZSAidXRpbC9rdm0tc3RhdC5oIgogCiB2b2lkIGV4aXRfZXZlbnRfZ2V0X2tleShzdHJ1Y3QgZXZzZWwgKmV2c2VsLAogCQkJc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsCkBAIC03NDgsNyArNzUxLDcgQEAgc3RhdGljIHM2NCBwZXJmX2t2bV9fbW1hcF9yZWFkX2lkeChzdHJ1Y3QgcGVyZl9rdm1fc3RhdCAqa3ZtLCBpbnQgaWR4LAogewogCXN0cnVjdCBldmxpc3QgKmV2bGlzdCA9IGt2bS0+ZXZsaXN0OwogCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50OwotCXN0cnVjdCBwZXJmX21tYXAgKm1kOworCXN0cnVjdCBtbWFwICptZDsKIAl1NjQgdGltZXN0YW1wOwogCXM2NCBuID0gMDsKIAlpbnQgZXJyOwpAQCAtNzk5LDcgKzgwMiw3IEBAIHN0YXRpYyBpbnQgcGVyZl9rdm1fX21tYXBfcmVhZChzdHJ1Y3QgcGVyZl9rdm1fc3RhdCAqa3ZtKQogCXM2NCBuLCBudG90YWwgPSAwOwogCXU2NCBmbHVzaF90aW1lID0gVUxMT05HX01BWCwgbW1hcF90aW1lOwogCi0JZm9yIChpID0gMDsgaSA8IGt2bS0+ZXZsaXN0LT5ucl9tbWFwczsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGt2bS0+ZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspIHsKIAkJbiA9IHBlcmZfa3ZtX19tbWFwX3JlYWRfaWR4KGt2bSwgaSwgJm1tYXBfdGltZSk7CiAJCWlmIChuIDwgMCkKIAkJCXJldHVybiAtMTsKQEAgLTk2NCwxMCArOTY3LDEwIEBAIHN0YXRpYyBpbnQga3ZtX2V2ZW50c19saXZlX3JlcG9ydChzdHJ1Y3QgcGVyZl9rdm1fc3RhdCAqa3ZtKQogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAocGVyZl9ldmxpc3RfX2FkZF9wb2xsZmQoa3ZtLT5ldmxpc3QsIGt2bS0+dGltZXJmZCkgPCAwKQorCWlmIChldmxpc3RfX2FkZF9wb2xsZmQoa3ZtLT5ldmxpc3QsIGt2bS0+dGltZXJmZCkgPCAwKQogCQlnb3RvIG91dDsKIAotCW5yX3N0ZGluID0gcGVyZl9ldmxpc3RfX2FkZF9wb2xsZmQoa3ZtLT5ldmxpc3QsIGZpbGVubyhzdGRpbikpOworCW5yX3N0ZGluID0gZXZsaXN0X19hZGRfcG9sbGZkKGt2bS0+ZXZsaXN0LCBmaWxlbm8oc3RkaW4pKTsKIAlpZiAobnJfc3RkaW4gPCAwKQogCQlnb3RvIG91dDsKIApAQCAtOTc4LDcgKzk4MSw3IEBAIHN0YXRpYyBpbnQga3ZtX2V2ZW50c19saXZlX3JlcG9ydChzdHJ1Y3QgcGVyZl9rdm1fc3RhdCAqa3ZtKQogCWV2bGlzdF9fZW5hYmxlKGt2bS0+ZXZsaXN0KTsKIAogCXdoaWxlICghZG9uZSkgewotCQlzdHJ1Y3QgZmRhcnJheSAqZmRhID0gJmt2bS0+ZXZsaXN0LT5wb2xsZmQ7CisJCXN0cnVjdCBmZGFycmF5ICpmZGEgPSAma3ZtLT5ldmxpc3QtPmNvcmUucG9sbGZkOwogCQlpbnQgcmM7CiAKIAkJcmMgPSBwZXJmX2t2bV9fbW1hcF9yZWFkKGt2bSk7CkBAIC0xMDU4LDcgKzEwNjEsNyBAQCBzdGF0aWMgaW50IGt2bV9saXZlX29wZW5fZXZlbnRzKHN0cnVjdCBwZXJmX2t2bV9zdGF0ICprdm0pCiAJCWdvdG8gb3V0OwogCX0KIAotCWlmIChwZXJmX2V2bGlzdF9fbW1hcChldmxpc3QsIGt2bS0+b3B0cy5tbWFwX3BhZ2VzKSA8IDApIHsKKwlpZiAoZXZsaXN0X19tbWFwKGV2bGlzdCwga3ZtLT5vcHRzLm1tYXBfcGFnZXMpIDwgMCkgewogCQl1aV9fZXJyb3IoIkZhaWxlZCB0byBtbWFwIHRoZSBldmVudHM6ICVzXG4iLAogCQkJICBzdHJfZXJyb3JfcihlcnJubywgc2J1Ziwgc2l6ZW9mKHNidWYpKSk7CiAJCWV2bGlzdF9fY2xvc2UoZXZsaXN0KTsKQEAgLTEwOTAsOSArMTA5Myw5IEBAIHN0YXRpYyBpbnQgcmVhZF9ldmVudHMoc3RydWN0IHBlcmZfa3ZtX3N0YXQgKmt2bSkKIAogCWt2bS0+dG9vbCA9IGVvcHM7CiAJa3ZtLT5zZXNzaW9uID0gcGVyZl9zZXNzaW9uX19uZXcoJmZpbGUsIGZhbHNlLCAma3ZtLT50b29sKTsKLQlpZiAoIWt2bS0+c2Vzc2lvbikgeworCWlmIChJU19FUlIoa3ZtLT5zZXNzaW9uKSkgewogCQlwcl9lcnIoIkluaXRpYWxpemluZyBwZXJmIHNlc3Npb24gZmFpbGVkXG4iKTsKLQkJcmV0dXJuIC0xOworCQlyZXR1cm4gUFRSX0VSUihrdm0tPnNlc3Npb24pOwogCX0KIAogCXN5bWJvbF9faW5pdCgma3ZtLT5zZXNzaW9uLT5oZWFkZXIuZW52KTsKQEAgLTE0NDUsOCArMTQ0OCw4IEBAIHN0YXRpYyBpbnQga3ZtX2V2ZW50c19saXZlKHN0cnVjdCBwZXJmX2t2bV9zdGF0ICprdm0sCiAJICogcGVyZiBzZXNzaW9uCiAJICovCiAJa3ZtLT5zZXNzaW9uID0gcGVyZl9zZXNzaW9uX19uZXcoJmRhdGEsIGZhbHNlLCAma3ZtLT50b29sKTsKLQlpZiAoa3ZtLT5zZXNzaW9uID09IE5VTEwpIHsKLQkJZXJyID0gLTE7CisJaWYgKElTX0VSUihrdm0tPnNlc3Npb24pKSB7CisJCWVyciA9IFBUUl9FUlIoa3ZtLT5zZXNzaW9uKTsKIAkJZ290byBvdXQ7CiAJfQogCWt2bS0+c2Vzc2lvbi0+ZXZsaXN0ID0ga3ZtLT5ldmxpc3Q7CkBAIC0xNTEzLDExICsxNTE2LDIxIEBAIHN0YXRpYyBpbnQga3ZtX2NtZF9zdGF0KGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogfQogI2VuZGlmIC8qIEhBVkVfS1ZNX1NUQVRfU1VQUE9SVCAqLwogCitpbnQgX193ZWFrIGt2bV9hZGRfZGVmYXVsdF9hcmNoX2V2ZW50KGludCAqYXJnYyBfX21heWJlX3VudXNlZCwKKwkJCQkJY29uc3QgY2hhciAqKmFyZ3YgX19tYXliZV91bnVzZWQpCit7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgX19jbWRfcmVjb3JkKGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogewotCWludCByZWNfYXJnYywgaSA9IDAsIGo7CisJaW50IHJlY19hcmdjLCBpID0gMCwgaiwgcmV0OwogCWNvbnN0IGNoYXIgKipyZWNfYXJndjsKIAorCXJldCA9IGt2bV9hZGRfZGVmYXVsdF9hcmNoX2V2ZW50KCZhcmdjLCBhcmd2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCXJlY19hcmdjID0gYXJnYyArIDI7CiAJcmVjX2FyZ3YgPSBjYWxsb2MocmVjX2FyZ2MgKyAxLCBzaXplb2YoY2hhciAqKSk7CiAJcmVjX2FyZ3ZbaSsrXSA9IHN0cmR1cCgicmVjb3JkIik7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2J1aWx0aW4tbGlzdC5jIGIvdG9vbHMvcGVyZi9idWlsdGluLWxpc3QuYwppbmRleCBlMjkwZjZiLi4wOGU2MmFlOSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9idWlsdGluLWxpc3QuYworKysgYi90b29scy9wZXJmL2J1aWx0aW4tbGlzdC5jCkBAIC04MSw5ICs4MSw5IEBAIGludCBjbWRfbGlzdChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAJCQkJCQlsb25nX2Rlc2NfZmxhZywgZGV0YWlsc19mbGFnKTsKIAkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sICJzZHQiKSA9PSAwKQogCQkJcHJpbnRfc2R0X2V2ZW50cyhOVUxMLCBOVUxMLCByYXdfZHVtcCk7Ci0JCWVsc2UgaWYgKHN0cmNtcChhcmd2W2ldLCAibWV0cmljIikgPT0gMCkKKwkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sICJtZXRyaWMiKSA9PSAwIHx8IHN0cmNtcChhcmd2W2ldLCAibWV0cmljcyIpID09IDApCiAJCQltZXRyaWNncm91cF9fcHJpbnQodHJ1ZSwgZmFsc2UsIE5VTEwsIHJhd19kdW1wLCBkZXRhaWxzX2ZsYWcpOwotCQllbHNlIGlmIChzdHJjbXAoYXJndltpXSwgIm1ldHJpY2dyb3VwIikgPT0gMCkKKwkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sICJtZXRyaWNncm91cCIpID09IDAgfHwgc3RyY21wKGFyZ3ZbaV0sICJtZXRyaWNncm91cHMiKSA9PSAwKQogCQkJbWV0cmljZ3JvdXBfX3ByaW50KGZhbHNlLCB0cnVlLCBOVUxMLCByYXdfZHVtcCwgZGV0YWlsc19mbGFnKTsKIAkJZWxzZSBpZiAoKHNlcCA9IHN0cmNocihhcmd2W2ldLCAnOicpKSAhPSBOVUxMKSB7CiAJCQlpbnQgc2VwX2lkeDsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1sb2NrLmMgYi90b29scy9wZXJmL2J1aWx0aW4tbG9jay5jCmluZGV4IDRjMmI3ZjQuLjQ3NGRmZDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1sb2NrLmMKKysrIGIvdG9vbHMvcGVyZi9idWlsdGluLWxvY2suYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2hhc2guaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogc3RhdGljIHN0cnVjdCBwZXJmX3Nlc3Npb24gKnNlc3Npb247CiAKQEAgLTg3Miw5ICs4NzMsOSBAQCBzdGF0aWMgaW50IF9fY21kX3JlcG9ydChib29sIGRpc3BsYXlfaW5mbykKIAl9OwogCiAJc2Vzc2lvbiA9IHBlcmZfc2Vzc2lvbl9fbmV3KCZkYXRhLCBmYWxzZSwgJmVvcHMpOwotCWlmICghc2Vzc2lvbikgeworCWlmIChJU19FUlIoc2Vzc2lvbikpIHsKIAkJcHJfZXJyKCJJbml0aWFsaXppbmcgcGVyZiBzZXNzaW9uIGZhaWxlZFxuIik7Ci0JCXJldHVybiAtMTsKKwkJcmV0dXJuIFBUUl9FUlIoc2Vzc2lvbik7CiAJfQogCiAJc3ltYm9sX19pbml0KCZzZXNzaW9uLT5oZWFkZXIuZW52KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1tZW0uYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1tZW0uYwppbmRleCAyN2QyYmRlLi5hMTNmNTgxIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2J1aWx0aW4tbWVtLmMKKysrIGIvdG9vbHMvcGVyZi9idWlsdGluLW1lbS5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSAidXRpbC9kc28uaCIKICNpbmNsdWRlICJ1dGlsL21hcC5oIgogI2luY2x1ZGUgInV0aWwvc3ltYm9sLmgiCisjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAKICNkZWZpbmUgTUVNX09QRVJBVElPTl9MT0FECTB4MQogI2RlZmluZSBNRU1fT1BFUkFUSU9OX1NUT1JFCTB4MgpAQCAtMjQ5LDggKzI1MCw4IEBAIHN0YXRpYyBpbnQgcmVwb3J0X3Jhd19ldmVudHMoc3RydWN0IHBlcmZfbWVtICptZW0pCiAJc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiA9IHBlcmZfc2Vzc2lvbl9fbmV3KCZkYXRhLCBmYWxzZSwKIAkJCQkJCQkgJm1lbS0+dG9vbCk7CiAKLQlpZiAoc2Vzc2lvbiA9PSBOVUxMKQotCQlyZXR1cm4gLTE7CisJaWYgKElTX0VSUihzZXNzaW9uKSkKKwkJcmV0dXJuIFBUUl9FUlIoc2Vzc2lvbik7CiAKIAlpZiAobWVtLT5jcHVfbGlzdCkgewogCQlyZXQgPSBwZXJmX3Nlc3Npb25fX2NwdV9iaXRtYXAoc2Vzc2lvbiwgbWVtLT5jcHVfbGlzdCwKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1yZWNvcmQuYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1yZWNvcmQuYwppbmRleCAxNDQ3MDA0Li4yMzMzMjg2IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2J1aWx0aW4tcmVjb3JkLmMKKysrIGIvdG9vbHMvcGVyZi9idWlsdGluLXJlY29yZC5jCkBAIC0yMCw2ICsyMCw3IEBACiAjaW5jbHVkZSAidXRpbC9ldmxpc3QuaCIKICNpbmNsdWRlICJ1dGlsL2V2c2VsLmgiCiAjaW5jbHVkZSAidXRpbC9kZWJ1Zy5oIgorI2luY2x1ZGUgInV0aWwvbW1hcC5oIgogI2luY2x1ZGUgInV0aWwvdGFyZ2V0LmgiCiAjaW5jbHVkZSAidXRpbC9zZXNzaW9uLmgiCiAjaW5jbHVkZSAidXRpbC90b29sLmgiCkBAIC0zOCw2ICszOSw3IEBACiAjaW5jbHVkZSAidXRpbC90cmlnZ2VyLmgiCiAjaW5jbHVkZSAidXRpbC9wZXJmLWhvb2tzLmgiCiAjaW5jbHVkZSAidXRpbC9jcHUtc2V0LXNjaGVkLmgiCisjaW5jbHVkZSAidXRpbC9zeW50aGV0aWMtZXZlbnRzLmgiCiAjaW5jbHVkZSAidXRpbC90aW1lLXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbC91bml0cy5oIgogI2luY2x1ZGUgInV0aWwvYnBmLWV2ZW50LmgiCkBAIC01Myw2ICs1NSw3IEBACiAjaW5jbHVkZSA8c2lnbmFsLmg+CiAjaW5jbHVkZSA8c3lzL21tYW4uaD4KICNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWU2NC5oPgogI2luY2x1ZGUgPGxpbnV4L3phbGxvYy5oPgpAQCAtMTE3LDcgKzEyMCw3IEBAIHN0YXRpYyBib29sIHN3aXRjaF9vdXRwdXRfdGltZShzdHJ1Y3QgcmVjb3JkICpyZWMpCiAJICAgICAgIHRyaWdnZXJfaXNfcmVhZHkoJnN3aXRjaF9vdXRwdXRfdHJpZ2dlcik7CiB9CiAKLXN0YXRpYyBpbnQgcmVjb3JkX193cml0ZShzdHJ1Y3QgcmVjb3JkICpyZWMsIHN0cnVjdCBwZXJmX21tYXAgKm1hcCBfX21heWJlX3VudXNlZCwKK3N0YXRpYyBpbnQgcmVjb3JkX193cml0ZShzdHJ1Y3QgcmVjb3JkICpyZWMsIHN0cnVjdCBtbWFwICptYXAgX19tYXliZV91bnVzZWQsCiAJCQkgdm9pZCAqYmYsIHNpemVfdCBzaXplKQogewogCXN0cnVjdCBwZXJmX2RhdGFfZmlsZSAqZmlsZSA9ICZyZWMtPnNlc3Npb24tPmRhdGEtPmZpbGU7CkBAIC0xNjYsNyArMTY5LDcgQEAgc3RhdGljIGludCByZWNvcmRfX2Fpb193cml0ZShzdHJ1Y3QgYWlvY2IgKmNibG9jaywgaW50IHRyYWNlX2ZkLAogCXJldHVybiByYzsKIH0KIAotc3RhdGljIGludCByZWNvcmRfX2Fpb19jb21wbGV0ZShzdHJ1Y3QgcGVyZl9tbWFwICptZCwgc3RydWN0IGFpb2NiICpjYmxvY2spCitzdGF0aWMgaW50IHJlY29yZF9fYWlvX2NvbXBsZXRlKHN0cnVjdCBtbWFwICptZCwgc3RydWN0IGFpb2NiICpjYmxvY2spCiB7CiAJdm9pZCAqcmVtX2J1ZjsKIAlvZmZfdCByZW1fb2ZmOwpAQCAtMjEyLDcgKzIxNSw3IEBAIHN0YXRpYyBpbnQgcmVjb3JkX19haW9fY29tcGxldGUoc3RydWN0IHBlcmZfbW1hcCAqbWQsIHN0cnVjdCBhaW9jYiAqY2Jsb2NrKQogCXJldHVybiByYzsKIH0KIAotc3RhdGljIGludCByZWNvcmRfX2Fpb19zeW5jKHN0cnVjdCBwZXJmX21tYXAgKm1kLCBib29sIHN5bmNfYWxsKQorc3RhdGljIGludCByZWNvcmRfX2Fpb19zeW5jKHN0cnVjdCBtbWFwICptZCwgYm9vbCBzeW5jX2FsbCkKIHsKIAlzdHJ1Y3QgYWlvY2IgKiphaW9jYiA9IG1kLT5haW8uYWlvY2I7CiAJc3RydWN0IGFpb2NiICpjYmxvY2tzID0gbWQtPmFpby5jYmxvY2tzOwpAQCAtMjUzLDEyICsyNTYsMTIgQEAgc3RydWN0IHJlY29yZF9haW8gewogCXNpemVfdAkJc2l6ZTsKIH07CiAKLXN0YXRpYyBpbnQgcmVjb3JkX19haW9fcHVzaGZuKHN0cnVjdCBwZXJmX21tYXAgKm1hcCwgdm9pZCAqdG8sIHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpCitzdGF0aWMgaW50IHJlY29yZF9fYWlvX3B1c2hmbihzdHJ1Y3QgbW1hcCAqbWFwLCB2b2lkICp0bywgdm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKIAlzdHJ1Y3QgcmVjb3JkX2FpbyAqYWlvID0gdG87CiAKIAkvKgotCSAqIG1hcC0+YmFzZSBkYXRhIHBvaW50ZWQgYnkgYnVmIGlzIGNvcGllZCBpbnRvIGZyZWUgbWFwLT5haW8uZGF0YVtdIGJ1ZmZlcgorCSAqIG1hcC0+Y29yZS5iYXNlIGRhdGEgcG9pbnRlZCBieSBidWYgaXMgY29waWVkIGludG8gZnJlZSBtYXAtPmFpby5kYXRhW10gYnVmZmVyCiAJICogdG8gcmVsZWFzZSBzcGFjZSBpbiB0aGUga2VybmVsIGJ1ZmZlciBhcyBmYXN0IGFzIHBvc3NpYmxlLCBjYWxsaW5nCiAJICogcGVyZl9tbWFwX19jb25zdW1lKCkgZnJvbSBwZXJmX21tYXBfX3B1c2goKSBmdW5jdGlvbi4KIAkgKgpAQCAtMjk4LDcgKzMwMSw3IEBAIHN0YXRpYyBpbnQgcmVjb3JkX19haW9fcHVzaGZuKHN0cnVjdCBwZXJmX21tYXAgKm1hcCwgdm9pZCAqdG8sIHZvaWQgKmJ1Ziwgc2l6ZV90CiAJcmV0dXJuIHNpemU7CiB9CiAKLXN0YXRpYyBpbnQgcmVjb3JkX19haW9fcHVzaChzdHJ1Y3QgcmVjb3JkICpyZWMsIHN0cnVjdCBwZXJmX21tYXAgKm1hcCwgb2ZmX3QgKm9mZikKK3N0YXRpYyBpbnQgcmVjb3JkX19haW9fcHVzaChzdHJ1Y3QgcmVjb3JkICpyZWMsIHN0cnVjdCBtbWFwICptYXAsIG9mZl90ICpvZmYpCiB7CiAJaW50IHJldCwgaWR4OwogCWludCB0cmFjZV9mZCA9IHJlYy0+c2Vzc2lvbi0+ZGF0YS0+ZmlsZS5mZDsKQEAgLTM0OSwxNSArMzUyLDE1IEBAIHN0YXRpYyB2b2lkIHJlY29yZF9fYWlvX21tYXBfcmVhZF9zeW5jKHN0cnVjdCByZWNvcmQgKnJlYykKIHsKIAlpbnQgaTsKIAlzdHJ1Y3QgZXZsaXN0ICpldmxpc3QgPSByZWMtPmV2bGlzdDsKLQlzdHJ1Y3QgcGVyZl9tbWFwICptYXBzID0gZXZsaXN0LT5tbWFwOworCXN0cnVjdCBtbWFwICptYXBzID0gZXZsaXN0LT5tbWFwOwogCiAJaWYgKCFyZWNvcmRfX2Fpb19lbmFibGVkKHJlYykpCiAJCXJldHVybjsKIAotCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPm5yX21tYXBzOyBpKyspIHsKLQkJc3RydWN0IHBlcmZfbW1hcCAqbWFwID0gJm1hcHNbaV07CisJZm9yIChpID0gMDsgaSA8IGV2bGlzdC0+Y29yZS5ucl9tbWFwczsgaSsrKSB7CisJCXN0cnVjdCBtbWFwICptYXAgPSAmbWFwc1tpXTsKIAotCQlpZiAobWFwLT5iYXNlKQorCQlpZiAobWFwLT5jb3JlLmJhc2UpCiAJCQlyZWNvcmRfX2Fpb19zeW5jKG1hcCwgdHJ1ZSk7CiAJfQogfQpAQCAtMzg1LDcgKzM4OCw3IEBAIHN0YXRpYyBpbnQgcmVjb3JkX19haW9fcGFyc2UoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LAogI2Vsc2UgLyogSEFWRV9BSU9fU1VQUE9SVCAqLwogc3RhdGljIGludCBucl9jYmxvY2tzX21heCA9IDA7CiAKLXN0YXRpYyBpbnQgcmVjb3JkX19haW9fcHVzaChzdHJ1Y3QgcmVjb3JkICpyZWMgX19tYXliZV91bnVzZWQsIHN0cnVjdCBwZXJmX21tYXAgKm1hcCBfX21heWJlX3VudXNlZCwKK3N0YXRpYyBpbnQgcmVjb3JkX19haW9fcHVzaChzdHJ1Y3QgcmVjb3JkICpyZWMgX19tYXliZV91bnVzZWQsIHN0cnVjdCBtbWFwICptYXAgX19tYXliZV91bnVzZWQsCiAJCQkgICAgb2ZmX3QgKm9mZiBfX21heWJlX3VudXNlZCkKIHsKIAlyZXR1cm4gLTE7CkBAIC00MzcsNyArNDQwLDcgQEAgc3RhdGljIGludCByZWNvcmRfX21tYXBfZmx1c2hfcGFyc2UoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LAogCWlmICghb3B0cy0+bW1hcF9mbHVzaCkKIAkJb3B0cy0+bW1hcF9mbHVzaCA9IE1NQVBfRkxVU0hfREVGQVVMVDsKIAotCWZsdXNoX21heCA9IHBlcmZfZXZsaXN0X19tbWFwX3NpemUob3B0cy0+bW1hcF9wYWdlcyk7CisJZmx1c2hfbWF4ID0gZXZsaXN0X19tbWFwX3NpemUob3B0cy0+bW1hcF9wYWdlcyk7CiAJZmx1c2hfbWF4IC89IDQ7CiAJaWYgKG9wdHMtPm1tYXBfZmx1c2ggPiBmbHVzaF9tYXgpCiAJCW9wdHMtPm1tYXBfZmx1c2ggPSBmbHVzaF9tYXg7CkBAIC00ODAsNyArNDgzLDcgQEAgc3RhdGljIGludCBwcm9jZXNzX3N5bnRoZXNpemVkX2V2ZW50KHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCiAJcmV0dXJuIHJlY29yZF9fd3JpdGUocmVjLCBOVUxMLCBldmVudCwgZXZlbnQtPmhlYWRlci5zaXplKTsKIH0KIAotc3RhdGljIGludCByZWNvcmRfX3B1c2hmbihzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHZvaWQgKnRvLCB2b2lkICpiZiwgc2l6ZV90IHNpemUpCitzdGF0aWMgaW50IHJlY29yZF9fcHVzaGZuKHN0cnVjdCBtbWFwICptYXAsIHZvaWQgKnRvLCB2b2lkICpiZiwgc2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IHJlY29yZCAqcmVjID0gdG87CiAKQEAgLTUyNSw3ICs1MjgsNyBAQCBzdGF0aWMgdm9pZCByZWNvcmRfX3NpZ19leGl0KHZvaWQpCiAjaWZkZWYgSEFWRV9BVVhUUkFDRV9TVVBQT1JUCiAKIHN0YXRpYyBpbnQgcmVjb3JkX19wcm9jZXNzX2F1eHRyYWNlKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgIHN0cnVjdCBwZXJmX21tYXAgKm1hcCwKKwkJCQkgICAgc3RydWN0IG1tYXAgKm1hcCwKIAkJCQkgICAgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQsIHZvaWQgKmRhdGExLAogCQkJCSAgICBzaXplX3QgbGVuMSwgdm9pZCAqZGF0YTIsIHNpemVfdCBsZW4yKQogewpAQCAtNTYzLDcgKzU2Niw3IEBAIHN0YXRpYyBpbnQgcmVjb3JkX19wcm9jZXNzX2F1eHRyYWNlKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCiB9CiAKIHN0YXRpYyBpbnQgcmVjb3JkX19hdXh0cmFjZV9tbWFwX3JlYWQoc3RydWN0IHJlY29yZCAqcmVjLAotCQkJCSAgICAgIHN0cnVjdCBwZXJmX21tYXAgKm1hcCkKKwkJCQkgICAgICBzdHJ1Y3QgbW1hcCAqbWFwKQogewogCWludCByZXQ7CiAKQEAgLTU3OSw3ICs1ODIsNyBAQCBzdGF0aWMgaW50IHJlY29yZF9fYXV4dHJhY2VfbW1hcF9yZWFkKHN0cnVjdCByZWNvcmQgKnJlYywKIH0KIAogc3RhdGljIGludCByZWNvcmRfX2F1eHRyYWNlX21tYXBfcmVhZF9zbmFwc2hvdChzdHJ1Y3QgcmVjb3JkICpyZWMsCi0JCQkJCSAgICAgICBzdHJ1Y3QgcGVyZl9tbWFwICptYXApCisJCQkJCSAgICAgICBzdHJ1Y3QgbW1hcCAqbWFwKQogewogCWludCByZXQ7CiAKQEAgLTYwMCw4ICs2MDMsOCBAQCBzdGF0aWMgaW50IHJlY29yZF9fYXV4dHJhY2VfcmVhZF9zbmFwc2hvdF9hbGwoc3RydWN0IHJlY29yZCAqcmVjKQogCWludCBpOwogCWludCByYyA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgcmVjLT5ldmxpc3QtPm5yX21tYXBzOyBpKyspIHsKLQkJc3RydWN0IHBlcmZfbW1hcCAqbWFwID0gJnJlYy0+ZXZsaXN0LT5tbWFwW2ldOworCWZvciAoaSA9IDA7IGkgPCByZWMtPmV2bGlzdC0+Y29yZS5ucl9tbWFwczsgaSsrKSB7CisJCXN0cnVjdCBtbWFwICptYXAgPSAmcmVjLT5ldmxpc3QtPm1tYXBbaV07CiAKIAkJaWYgKCFtYXAtPmF1eHRyYWNlX21tYXAuYmFzZSkKIAkJCWNvbnRpbnVlOwpAQCAtNjY2LDcgKzY2OSw3IEBAIHN0YXRpYyBpbnQgcmVjb3JkX19hdXh0cmFjZV9pbml0KHN0cnVjdCByZWNvcmQgKnJlYykKIAogc3RhdGljIGlubGluZQogaW50IHJlY29yZF9fYXV4dHJhY2VfbW1hcF9yZWFkKHN0cnVjdCByZWNvcmQgKnJlYyBfX21heWJlX3VudXNlZCwKLQkJCSAgICAgICBzdHJ1Y3QgcGVyZl9tbWFwICptYXAgX19tYXliZV91bnVzZWQpCisJCQkgICAgICAgc3RydWN0IG1tYXAgKm1hcCBfX21heWJlX3VudXNlZCkKIHsKIAlyZXR1cm4gMDsKIH0KQEAgLTcwNSw3ICs3MDgsNyBAQCBzdGF0aWMgaW50IHJlY29yZF9fbW1hcF9ldmxpc3Qoc3RydWN0IHJlY29yZCAqcmVjLAogCWlmIChvcHRzLT5hZmZpbml0eSAhPSBQRVJGX0FGRklOSVRZX1NZUykKIAkJY3B1X19zZXR1cF9jcHVub2RlX21hcCgpOwogCi0JaWYgKHBlcmZfZXZsaXN0X19tbWFwX2V4KGV2bGlzdCwgb3B0cy0+bW1hcF9wYWdlcywKKwlpZiAoZXZsaXN0X19tbWFwX2V4KGV2bGlzdCwgb3B0cy0+bW1hcF9wYWdlcywKIAkJCQkgb3B0cy0+YXV4dHJhY2VfbW1hcF9wYWdlcywKIAkJCQkgb3B0cy0+YXV4dHJhY2Vfc25hcHNob3RfbW9kZSwKIAkJCQkgb3B0cy0+bnJfY2Jsb2Nrcywgb3B0cy0+YWZmaW5pdHksCkBAIC03NTMsOSArNzU2LDkgQEAgc3RhdGljIGludCByZWNvcmRfX29wZW4oc3RydWN0IHJlY29yZCAqcmVjKQogCQlpZiAocGVyZl9ldmxpc3RfX2FkZF9kdW1teShldmxpc3QpKQogCQkJcmV0dXJuIC1FTk9NRU07CiAKLQkJcG9zID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJCXBvcyA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAkJcG9zLT50cmFja2luZyA9IDA7Ci0JCXBvcyA9IHBlcmZfZXZsaXN0X19sYXN0KGV2bGlzdCk7CisJCXBvcyA9IGV2bGlzdF9fbGFzdChldmxpc3QpOwogCQlwb3MtPnRyYWNraW5nID0gMTsKIAkJcG9zLT5jb3JlLmF0dHIuZW5hYmxlX29uX2V4ZWMgPSAxOwogCX0KQEAgLTc4Niw2ICs3ODksMTcgQEAgc3RhdGljIGludCByZWNvcmRfX29wZW4oc3RydWN0IHJlY29yZCAqcmVjKQogCQlwb3MtPnN1cHBvcnRlZCA9IHRydWU7CiAJfQogCisJaWYgKHN5bWJvbF9jb25mLmtwdHJfcmVzdHJpY3QgJiYgIXBlcmZfZXZsaXN0X19leGNsdWRlX2tlcm5lbChldmxpc3QpKSB7CisJCXByX3dhcm5pbmcoCisiV0FSTklORzogS2VybmVsIGFkZHJlc3MgbWFwcyAoL3Byb2Mve2thbGxzeW1zLG1vZHVsZXN9KSBhcmUgcmVzdHJpY3RlZCxcbiIKKyJjaGVjayAvcHJvYy9zeXMva2VybmVsL2twdHJfcmVzdHJpY3QgYW5kIC9wcm9jL3N5cy9rZXJuZWwvcGVyZl9ldmVudF9wYXJhbm9pZC5cblxuIgorIlNhbXBsZXMgaW4ga2VybmVsIGZ1bmN0aW9ucyBtYXkgbm90IGJlIHJlc29sdmVkIGlmIGEgc3VpdGFibGUgdm1saW51eFxuIgorImZpbGUgaXMgbm90IGZvdW5kIGluIHRoZSBidWlsZGlkIGNhY2hlIG9yIGluIHRoZSB2bWxpbnV4IHBhdGguXG5cbiIKKyJTYW1wbGVzIGluIGtlcm5lbCBtb2R1bGVzIHdvbid0IGJlIHJlc29sdmVkIGF0IGFsbC5cblxuIgorIklmIHNvbWUgcmVsb2NhdGlvbiB3YXMgYXBwbGllZCAoZS5nLiBrZXhlYykgc3ltYm9scyBtYXkgYmUgbWlzcmVzb2x2ZWRcbiIKKyJldmVuIHdpdGggYSBzdWl0YWJsZSB2bWxpbnV4IG9yIGthbGxzeW1zIGZpbGUuXG5cbiIpOworCX0KKwogCWlmIChwZXJmX2V2bGlzdF9fYXBwbHlfZmlsdGVycyhldmxpc3QsICZwb3MpKSB7CiAJCXByX2VycigiZmFpbGVkIHRvIHNldCBmaWx0ZXIgXCIlc1wiIG9uIGV2ZW50ICVzIHdpdGggJWQgKCVzKVxuIiwKIAkJCXBvcy0+ZmlsdGVyLCBwZXJmX2V2c2VsX19uYW1lKHBvcyksIGVycm5vLApAQCAtODg4LDcgKzkwMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGVyZl9ldmVudF9oZWFkZXIgZmluaXNoZWRfcm91bmRfZXZlbnQgPSB7CiAJLnR5cGUgPSBQRVJGX1JFQ09SRF9GSU5JU0hFRF9ST1VORCwKIH07CiAKLXN0YXRpYyB2b2lkIHJlY29yZF9fYWRqdXN0X2FmZmluaXR5KHN0cnVjdCByZWNvcmQgKnJlYywgc3RydWN0IHBlcmZfbW1hcCAqbWFwKQorc3RhdGljIHZvaWQgcmVjb3JkX19hZGp1c3RfYWZmaW5pdHkoc3RydWN0IHJlY29yZCAqcmVjLCBzdHJ1Y3QgbW1hcCAqbWFwKQogewogCWlmIChyZWMtPm9wdHMuYWZmaW5pdHkgIT0gUEVSRl9BRkZJTklUWV9TWVMgJiYKIAkgICAgIUNQVV9FUVVBTCgmcmVjLT5hZmZpbml0eV9tYXNrLCAmbWFwLT5hZmZpbml0eV9tYXNrKSkgewpAQCAtOTM1LDcgKzk0OSw3IEBAIHN0YXRpYyBpbnQgcmVjb3JkX19tbWFwX3JlYWRfZXZsaXN0KHN0cnVjdCByZWNvcmQgKnJlYywgc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCXU2NCBieXRlc193cml0dGVuID0gcmVjLT5ieXRlc193cml0dGVuOwogCWludCBpOwogCWludCByYyA9IDA7Ci0Jc3RydWN0IHBlcmZfbW1hcCAqbWFwczsKKwlzdHJ1Y3QgbW1hcCAqbWFwczsKIAlpbnQgdHJhY2VfZmQgPSByZWMtPmRhdGEuZmlsZS5mZDsKIAlvZmZfdCBvZmYgPSAwOwogCkBAIC05NTIsMjAgKzk2NiwyMCBAQCBzdGF0aWMgaW50IHJlY29yZF9fbW1hcF9yZWFkX2V2bGlzdChzdHJ1Y3QgcmVjb3JkICpyZWMsIHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKIAlpZiAocmVjb3JkX19haW9fZW5hYmxlZChyZWMpKQogCQlvZmYgPSByZWNvcmRfX2Fpb19nZXRfcG9zKHRyYWNlX2ZkKTsKIAotCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPm5yX21tYXBzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspIHsKIAkJdTY0IGZsdXNoID0gMDsKLQkJc3RydWN0IHBlcmZfbW1hcCAqbWFwID0gJm1hcHNbaV07CisJCXN0cnVjdCBtbWFwICptYXAgPSAmbWFwc1tpXTsKIAotCQlpZiAobWFwLT5iYXNlKSB7CisJCWlmIChtYXAtPmNvcmUuYmFzZSkgewogCQkJcmVjb3JkX19hZGp1c3RfYWZmaW5pdHkocmVjLCBtYXApOwogCQkJaWYgKHN5bmNoKSB7Ci0JCQkJZmx1c2ggPSBtYXAtPmZsdXNoOwotCQkJCW1hcC0+Zmx1c2ggPSAxOworCQkJCWZsdXNoID0gbWFwLT5jb3JlLmZsdXNoOworCQkJCW1hcC0+Y29yZS5mbHVzaCA9IDE7CiAJCQl9CiAJCQlpZiAoIXJlY29yZF9fYWlvX2VuYWJsZWQocmVjKSkgewogCQkJCWlmIChwZXJmX21tYXBfX3B1c2gobWFwLCByZWMsIHJlY29yZF9fcHVzaGZuKSA8IDApIHsKIAkJCQkJaWYgKHN5bmNoKQotCQkJCQkJbWFwLT5mbHVzaCA9IGZsdXNoOworCQkJCQkJbWFwLT5jb3JlLmZsdXNoID0gZmx1c2g7CiAJCQkJCXJjID0gLTE7CiAJCQkJCWdvdG8gb3V0OwogCQkJCX0KQEAgLTk3MywxMyArOTg3LDEzIEBAIHN0YXRpYyBpbnQgcmVjb3JkX19tbWFwX3JlYWRfZXZsaXN0KHN0cnVjdCByZWNvcmQgKnJlYywgc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkJCWlmIChyZWNvcmRfX2Fpb19wdXNoKHJlYywgbWFwLCAmb2ZmKSA8IDApIHsKIAkJCQkJcmVjb3JkX19haW9fc2V0X3Bvcyh0cmFjZV9mZCwgb2ZmKTsKIAkJCQkJaWYgKHN5bmNoKQotCQkJCQkJbWFwLT5mbHVzaCA9IGZsdXNoOworCQkJCQkJbWFwLT5jb3JlLmZsdXNoID0gZmx1c2g7CiAJCQkJCXJjID0gLTE7CiAJCQkJCWdvdG8gb3V0OwogCQkJCX0KIAkJCX0KIAkJCWlmIChzeW5jaCkKLQkJCQltYXAtPmZsdXNoID0gZmx1c2g7CisJCQkJbWFwLT5jb3JlLmZsdXNoID0gZmx1c2g7CiAJCX0KIAogCQlpZiAobWFwLT5hdXh0cmFjZV9tbWFwLmJhc2UgJiYgIXJlYy0+b3B0cy5hdXh0cmFjZV9zbmFwc2hvdF9tb2RlICYmCkBAIC0xMTgwLDIzICsxMTk0LDE0IEBAIHN0YXRpYyB2b2lkIHdvcmtsb2FkX2V4ZWNfZmFpbGVkX3NpZ25hbChpbnQgc2lnbm8gX19tYXliZV91bnVzZWQsCiBzdGF0aWMgdm9pZCBzbmFwc2hvdF9zaWdfaGFuZGxlcihpbnQgc2lnKTsKIHN0YXRpYyB2b2lkIGFsYXJtX3NpZ19oYW5kbGVyKGludCBzaWcpOwogCi1pbnQgX193ZWFrCi1wZXJmX2V2ZW50X19zeW50aF90aW1lX2NvbnYoY29uc3Qgc3RydWN0IHBlcmZfZXZlbnRfbW1hcF9wYWdlICpwYyBfX21heWJlX3VudXNlZCwKLQkJCSAgICBzdHJ1Y3QgcGVyZl90b29sICp0b29sIF9fbWF5YmVfdW51c2VkLAotCQkJICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzIF9fbWF5YmVfdW51c2VkLAotCQkJICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lIF9fbWF5YmVfdW51c2VkKQotewotCXJldHVybiAwOwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBlcmZfZXZlbnRfbW1hcF9wYWdlICoKIHBlcmZfZXZsaXN0X19waWNrX3BjKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKIAlpZiAoZXZsaXN0KSB7Ci0JCWlmIChldmxpc3QtPm1tYXAgJiYgZXZsaXN0LT5tbWFwWzBdLmJhc2UpCi0JCQlyZXR1cm4gZXZsaXN0LT5tbWFwWzBdLmJhc2U7Ci0JCWlmIChldmxpc3QtPm92ZXJ3cml0ZV9tbWFwICYmIGV2bGlzdC0+b3ZlcndyaXRlX21tYXBbMF0uYmFzZSkKLQkJCXJldHVybiBldmxpc3QtPm92ZXJ3cml0ZV9tbWFwWzBdLmJhc2U7CisJCWlmIChldmxpc3QtPm1tYXAgJiYgZXZsaXN0LT5tbWFwWzBdLmNvcmUuYmFzZSkKKwkJCXJldHVybiBldmxpc3QtPm1tYXBbMF0uY29yZS5iYXNlOworCQlpZiAoZXZsaXN0LT5vdmVyd3JpdGVfbW1hcCAmJiBldmxpc3QtPm92ZXJ3cml0ZV9tbWFwWzBdLmNvcmUuYmFzZSkKKwkJCXJldHVybiBldmxpc3QtPm92ZXJ3cml0ZV9tbWFwWzBdLmNvcmUuYmFzZTsKIAl9CiAJcmV0dXJuIE5VTEw7CiB9CkBAIC0xMzYyLDkgKzEzNjcsOSBAQCBzdGF0aWMgaW50IF9fY21kX3JlY29yZChzdHJ1Y3QgcmVjb3JkICpyZWMsIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAl9CiAKIAlzZXNzaW9uID0gcGVyZl9zZXNzaW9uX19uZXcoZGF0YSwgZmFsc2UsIHRvb2wpOwotCWlmIChzZXNzaW9uID09IE5VTEwpIHsKKwlpZiAoSVNfRVJSKHNlc3Npb24pKSB7CiAJCXByX2VycigiUGVyZiBzZXNzaW9uIGNyZWF0aW9uIGZhaWxlZC5cbiIpOwotCQlyZXR1cm4gLTE7CisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCX0KIAogCWZkID0gcGVyZl9kYXRhX19mZChkYXRhKTsKQEAgLTE0MDcsNyArMTQxMiw3IEBAIHN0YXRpYyBpbnQgX19jbWRfcmVjb3JkKHN0cnVjdCByZWNvcmQgKnJlYywgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogCQllcnIgPSAtMTsKIAkJZ290byBvdXRfY2hpbGQ7CiAJfQotCXNlc3Npb24tPmhlYWRlci5lbnYuY29tcF9tbWFwX2xlbiA9IHNlc3Npb24tPmV2bGlzdC0+bW1hcF9sZW47CisJc2Vzc2lvbi0+aGVhZGVyLmVudi5jb21wX21tYXBfbGVuID0gc2Vzc2lvbi0+ZXZsaXN0LT5jb3JlLm1tYXBfbGVuOwogCiAJZXJyID0gYnBmX19hcHBseV9vYmpfY29uZmlnKCk7CiAJaWYgKGVycikgewpAQCAtMTYxMCw3ICsxNjE1LDcgQEAgc3RhdGljIGludCBfX2NtZF9yZWNvcmQoc3RydWN0IHJlY29yZCAqcmVjLCBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAJCWlmIChoaXRzID09IHJlYy0+c2FtcGxlcykgewogCQkJaWYgKGRvbmUgfHwgZHJhaW5pbmcpCiAJCQkJYnJlYWs7Ci0JCQllcnIgPSBwZXJmX2V2bGlzdF9fcG9sbChyZWMtPmV2bGlzdCwgLTEpOworCQkJZXJyID0gZXZsaXN0X19wb2xsKHJlYy0+ZXZsaXN0LCAtMSk7CiAJCQkvKgogCQkJICogUHJvcGFnYXRlIGVycm9yLCBvbmx5IGlmIHRoZXJlJ3MgYW55LiBJZ25vcmUgcG9zaXRpdmUKIAkJCSAqIG51bWJlciBvZiByZXR1cm5lZCBldmVudHMgYW5kIGludGVycnVwdCBlcnJvci4KQEAgLTE2MTksNyArMTYyNCw3IEBAIHN0YXRpYyBpbnQgX19jbWRfcmVjb3JkKHN0cnVjdCByZWNvcmQgKnJlYywgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogCQkJCWVyciA9IDA7CiAJCQl3YWtpbmcrKzsKIAotCQkJaWYgKHBlcmZfZXZsaXN0X19maWx0ZXJfcG9sbGZkKHJlYy0+ZXZsaXN0LCBQT0xMRVJSIHwgUE9MTEhVUCkgPT0gMCkKKwkJCWlmIChldmxpc3RfX2ZpbHRlcl9wb2xsZmQocmVjLT5ldmxpc3QsIFBPTExFUlIgfCBQT0xMSFVQKSA9PSAwKQogCQkJCWRyYWluaW5nID0gdHJ1ZTsKIAkJfQogCkBAIC0xOTc2LDcgKzE5ODEsNyBAQCBzdGF0aWMgaW50IHJlY29yZF9fcGFyc2VfbW1hcF9wYWdlcyhjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsCiAKIHN0YXRpYyB2b2lkIHN3aXRjaF9vdXRwdXRfc2l6ZV93YXJuKHN0cnVjdCByZWNvcmQgKnJlYykKIHsKLQl1NjQgd2FrZXVwX3NpemUgPSBwZXJmX2V2bGlzdF9fbW1hcF9zaXplKHJlYy0+b3B0cy5tbWFwX3BhZ2VzKTsKKwl1NjQgd2FrZXVwX3NpemUgPSBldmxpc3RfX21tYXBfc2l6ZShyZWMtPm9wdHMubW1hcF9wYWdlcyk7CiAJc3RydWN0IHN3aXRjaF9vdXRwdXQgKnMgPSAmcmVjLT5zd2l0Y2hfb3V0cHV0OwogCiAJd2FrZXVwX3NpemUgLz0gMjsKQEAgLTIzNzEsMTYgKzIzNzYsNiBAQCBpbnQgY21kX3JlY29yZChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAKIAllcnIgPSAtRU5PTUVNOwogCi0JaWYgKHN5bWJvbF9jb25mLmtwdHJfcmVzdHJpY3QgJiYgIXBlcmZfZXZsaXN0X19leGNsdWRlX2tlcm5lbChyZWMtPmV2bGlzdCkpCi0JCXByX3dhcm5pbmcoCi0iV0FSTklORzogS2VybmVsIGFkZHJlc3MgbWFwcyAoL3Byb2Mve2thbGxzeW1zLG1vZHVsZXN9KSBhcmUgcmVzdHJpY3RlZCxcbiIKLSJjaGVjayAvcHJvYy9zeXMva2VybmVsL2twdHJfcmVzdHJpY3QgYW5kIC9wcm9jL3N5cy9rZXJuZWwvcGVyZl9ldmVudF9wYXJhbm9pZC5cblxuIgotIlNhbXBsZXMgaW4ga2VybmVsIGZ1bmN0aW9ucyBtYXkgbm90IGJlIHJlc29sdmVkIGlmIGEgc3VpdGFibGUgdm1saW51eFxuIgotImZpbGUgaXMgbm90IGZvdW5kIGluIHRoZSBidWlsZGlkIGNhY2hlIG9yIGluIHRoZSB2bWxpbnV4IHBhdGguXG5cbiIKLSJTYW1wbGVzIGluIGtlcm5lbCBtb2R1bGVzIHdvbid0IGJlIHJlc29sdmVkIGF0IGFsbC5cblxuIgotIklmIHNvbWUgcmVsb2NhdGlvbiB3YXMgYXBwbGllZCAoZS5nLiBrZXhlYykgc3ltYm9scyBtYXkgYmUgbWlzcmVzb2x2ZWRcbiIKLSJldmVuIHdpdGggYSBzdWl0YWJsZSB2bWxpbnV4IG9yIGthbGxzeW1zIGZpbGUuXG5cbiIpOwotCiAJaWYgKHJlYy0+bm9fYnVpbGRpZF9jYWNoZSB8fCByZWMtPm5vX2J1aWxkaWQpIHsKIAkJZGlzYWJsZV9idWlsZGlkX2NhY2hlKCk7CiAJfSBlbHNlIGlmIChyZWMtPnN3aXRjaF9vdXRwdXQuZW5hYmxlZCkgewpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9idWlsdGluLXJlcG9ydC5jIGIvdG9vbHMvcGVyZi9idWlsdGluLXJlcG9ydC5jCmluZGV4IGIxOGZhYjkuLmFhZTBlNTcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1yZXBvcnQuYworKysgYi90b29scy9wZXJmL2J1aWx0aW4tcmVwb3J0LmMKQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbmNsdWRlICJ1dGlsL2F1eHRyYWNlLmgiCiAjaW5jbHVkZSAidXRpbC91bml0cy5oIgogI2luY2x1ZGUgInV0aWwvYnJhbmNoLmgiCi0jaW5jbHVkZSAidXRpbC91dGlsLmgiCisjaW5jbHVkZSAidXRpbC91dGlsLmgiIC8vIHBlcmZfdGlwKCkKICNpbmNsdWRlICJ1aS91aS5oIgogI2luY2x1ZGUgInVpL3Byb2dyZXNzLmgiCiAKQEAgLTEyNjksOCArMTI2OSw4IEBAIGludCBjbWRfcmVwb3J0KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAogcmVwZWF0OgogCXNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZGF0YSwgZmFsc2UsICZyZXBvcnQudG9vbCk7Ci0JaWYgKHNlc3Npb24gPT0gTlVMTCkKLQkJcmV0dXJuIC0xOworCWlmIChJU19FUlIoc2Vzc2lvbikpCisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCiAJcmV0ID0gZXZzd2l0Y2hfX2luaXQoJnJlcG9ydC5ldnN3aXRjaCwgc2Vzc2lvbi0+ZXZsaXN0LCBzdGRlcnIpOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2J1aWx0aW4tc2NoZWQuYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1zY2hlZC5jCmluZGV4IGVjOTZkNjQuLjVjYWNjNGYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1zY2hlZC5jCisrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1zY2hlZC5jCkBAIC0zLDggKzMsMTAgQEAKICNpbmNsdWRlICJwZXJmLmgiCiAjaW5jbHVkZSAicGVyZi1zeXMuaCIKIAorI2luY2x1ZGUgInV0aWwvY3B1bWFwLmgiCiAjaW5jbHVkZSAidXRpbC9ldmxpc3QuaCIKICNpbmNsdWRlICJ1dGlsL2V2c2VsLmgiCisjaW5jbHVkZSAidXRpbC9ldnNlbF9mcHJpbnRmLmgiCiAjaW5jbHVkZSAidXRpbC9zeW1ib2wuaCIKICNpbmNsdWRlICJ1dGlsL3RocmVhZC5oIgogI2luY2x1ZGUgInV0aWwvaGVhZGVyLmgiCkBAIC0yMyw2ICsyNSw3IEBACiAjaW5jbHVkZSAidXRpbC90cmFjZS1ldmVudC5oIgogCiAjaW5jbHVkZSAidXRpbC9kZWJ1Zy5oIgorI2luY2x1ZGUgInV0aWwvZXZlbnQuaCIKIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2xvZzIuaD4KQEAgLTM2LDcgKzM5LDkgQEAKICNpbmNsdWRlIDxwdGhyZWFkLmg+CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPGFwaS9mcy9mcy5oPgorI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZTY0Lmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAKICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgogCkBAIC0xNzk0LDkgKzE3OTksOSBAQCBzdGF0aWMgaW50IHBlcmZfc2NoZWRfX3JlYWRfZXZlbnRzKHN0cnVjdCBwZXJmX3NjaGVkICpzY2hlZCkKIAlpbnQgcmMgPSAtMTsKIAogCXNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZGF0YSwgZmFsc2UsICZzY2hlZC0+dG9vbCk7Ci0JaWYgKHNlc3Npb24gPT0gTlVMTCkgewotCQlwcl9kZWJ1ZygiTm8gTWVtb3J5IGZvciBzZXNzaW9uXG4iKTsKLQkJcmV0dXJuIC0xOworCWlmIChJU19FUlIoc2Vzc2lvbikpIHsKKwkJcHJfZGVidWcoIkVycm9yIGNyZWF0aW5nIHBlcmYgc2Vzc2lvbiIpOworCQlyZXR1cm4gUFRSX0VSUihzZXNzaW9uKTsKIAl9CiAKIAlzeW1ib2xfX2luaXQoJnNlc3Npb24tPmhlYWRlci5lbnYpOwpAQCAtMjA1MSw3ICsyMDU2LDcgQEAgc3RhdGljIHZvaWQgdGltZWhpc3RfcHJpbnRfc2FtcGxlKHN0cnVjdCBwZXJmX3NjaGVkICpzY2hlZCwKIAkJCSAgICBFVlNFTF9fUFJJTlRfU1lNIHwgRVZTRUxfX1BSSU5UX09ORUxJTkUgfAogCQkJICAgIEVWU0VMX19QUklOVF9DQUxMQ0hBSU5fQVJST1cgfAogCQkJICAgIEVWU0VMX19QUklOVF9TS0lQX0lHTk9SRUQsCi0JCQkgICAgJmNhbGxjaGFpbl9jdXJzb3IsIHN0ZG91dCk7CisJCQkgICAgJmNhbGxjaGFpbl9jdXJzb3IsIHN5bWJvbF9jb25mLmJ0X3N0b3BfbGlzdCwgIHN0ZG91dCk7CiAKIG91dDoKIAlwcmludGYoIlxuIik7CkBAIC0yOTg2LDggKzI5OTEsOCBAQCBzdGF0aWMgaW50IHBlcmZfc2NoZWRfX3RpbWVoaXN0KHN0cnVjdCBwZXJmX3NjaGVkICpzY2hlZCkKIAlzeW1ib2xfY29uZi51c2VfY2FsbGNoYWluID0gc2NoZWQtPnNob3dfY2FsbGNoYWluOwogCiAJc2Vzc2lvbiA9IHBlcmZfc2Vzc2lvbl9fbmV3KCZkYXRhLCBmYWxzZSwgJnNjaGVkLT50b29sKTsKLQlpZiAoc2Vzc2lvbiA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJSKHNlc3Npb24pKQorCQlyZXR1cm4gUFRSX0VSUihzZXNzaW9uKTsKIAogCWV2bGlzdCA9IHNlc3Npb24tPmV2bGlzdDsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9idWlsdGluLXNjcmlwdC5jIGIvdG9vbHMvcGVyZi9idWlsdGluLXNjcmlwdC5jCmluZGV4IGUwNzliMzQuLjI4NmZjNzAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1zY3JpcHQuYworKysgYi90b29scy9wZXJmL2J1aWx0aW4tc2NyaXB0LmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlICJ1dGlsL3RyYWNlLWV2ZW50LmgiCiAjaW5jbHVkZSAidXRpbC9ldmxpc3QuaCIKICNpbmNsdWRlICJ1dGlsL2V2c2VsLmgiCisjaW5jbHVkZSAidXRpbC9ldnNlbF9mcHJpbnRmLmgiCiAjaW5jbHVkZSAidXRpbC9ldnN3aXRjaC5oIgogI2luY2x1ZGUgInV0aWwvc29ydC5oIgogI2luY2x1ZGUgInV0aWwvZGF0YS5oIgpAQCAtNTIsNiArNTMsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN1YmNtZC9wYWdlci5oPgogI2luY2x1ZGUgPHBlcmYvZXZsaXN0Lmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSAidXRpbC9yZWNvcmQuaCIKICNpbmNsdWRlICJ1dGlsL3V0aWwuaCIKICNpbmNsdWRlICJwZXJmLmgiCkBAIC0xMzI0LDcgKzEzMjYsOCBAQCBzdGF0aWMgaW50IHBlcmZfc2FtcGxlX19mcHJpbnRmX2J0cyhzdHJ1Y3QgcGVyZl9zYW1wbGUgKnNhbXBsZSwKIAkJfSBlbHNlCiAJCQlwcmludGVkICs9IGZwcmludGYoZnAsICJcbiIpOwogCi0JCXByaW50ZWQgKz0gc2FtcGxlX19mcHJpbnRmX3N5bShzYW1wbGUsIGFsLCAwLCBwcmludF9vcHRzLCBjdXJzb3IsIGZwKTsKKwkJcHJpbnRlZCArPSBzYW1wbGVfX2ZwcmludGZfc3ltKHNhbXBsZSwgYWwsIDAsIHByaW50X29wdHMsIGN1cnNvciwKKwkJCQkJICAgICAgIHN5bWJvbF9jb25mLmJ0X3N0b3BfbGlzdCwgZnApOwogCX0KIAogCS8qIHByaW50IGJyYW5jaF90byBpbmZvcm1hdGlvbiAqLwpAQCAtMTg2Niw3ICsxODY5LDggQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19ldmVudChzdHJ1Y3QgcGVyZl9zY3JpcHQgKnNjcmlwdCwKIAkJCWN1cnNvciA9ICZjYWxsY2hhaW5fY3Vyc29yOwogCiAJCWZwdXRjKGN1cnNvciA/ICdcbicgOiAnICcsIGZwKTsKLQkJc2FtcGxlX19mcHJpbnRmX3N5bShzYW1wbGUsIGFsLCAwLCBvdXRwdXRbdHlwZV0ucHJpbnRfaXBfb3B0cywgY3Vyc29yLCBmcCk7CisJCXNhbXBsZV9fZnByaW50Zl9zeW0oc2FtcGxlLCBhbCwgMCwgb3V0cHV0W3R5cGVdLnByaW50X2lwX29wdHMsIGN1cnNvciwKKwkJCQkgICAgc3ltYm9sX2NvbmYuYnRfc3RvcF9saXN0LCBmcCk7CiAJfQogCiAJaWYgKFBSSU5UX0ZJRUxEKElSRUdTKSkKQEAgLTE5MTUsNyArMTkxOSw3IEBAIHN0YXRpYyB2b2lkIF9fcHJvY2Vzc19zdGF0KHN0cnVjdCBldnNlbCAqY291bnRlciwgdTY0IHRzdGFtcCkKIAlpbnQgY3B1LCB0aHJlYWQ7CiAJc3RhdGljIGludCBoZWFkZXJfcHJpbnRlZDsKIAotCWlmIChjb3VudGVyLT5zeXN0ZW1fd2lkZSkKKwlpZiAoY291bnRlci0+Y29yZS5zeXN0ZW1fd2lkZSkKIAkJbnRocmVhZHMgPSAxOwogCiAJaWYgKCFoZWFkZXJfcHJpbnRlZCkgewpAQCAtMjA0Miw3ICsyMDQ2LDcgQEAgc3RhdGljIGludCBwcm9jZXNzX2F0dHIoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQsCiAJCXJldHVybiBlcnI7CiAKIAlldmxpc3QgPSAqcGV2bGlzdDsKLQlldnNlbCA9IHBlcmZfZXZsaXN0X19sYXN0KCpwZXZsaXN0KTsKKwlldnNlbCA9IGV2bGlzdF9fbGFzdCgqcGV2bGlzdCk7CiAKIAlpZiAoIWV2c2VsLT5wcml2KSB7CiAJCWlmIChzY3ItPnBlcl9ldmVudF9kdW1wKSB7CkBAIC0zMDgzLDggKzMwODcsOCBAQCBpbnQgZmluZF9zY3JpcHRzKGNoYXIgKipzY3JpcHRzX2FycmF5LCBjaGFyICoqc2NyaXB0c19wYXRoX2FycmF5LCBpbnQgbnVtLAogCWludCBpID0gMDsKIAogCXNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZGF0YSwgZmFsc2UsIE5VTEwpOwotCWlmICghc2Vzc2lvbikKLQkJcmV0dXJuIC0xOworCWlmIChJU19FUlIoc2Vzc2lvbikpCisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCiAJc25wcmludGYoc2NyaXB0c19wYXRoLCBNQVhQQVRITEVOLCAiJXMvc2NyaXB0cyIsIGdldF9hcmd2X2V4ZWNfcGF0aCgpKTsKIApAQCAtMzc1NCw4ICszNzU4LDggQEAgaW50IGNtZF9zY3JpcHQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogCX0KIAogCXNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZGF0YSwgZmFsc2UsICZzY3JpcHQudG9vbCk7Ci0JaWYgKHNlc3Npb24gPT0gTlVMTCkKLQkJcmV0dXJuIC0xOworCWlmIChJU19FUlIoc2Vzc2lvbikpCisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCiAJaWYgKGhlYWRlciB8fCBoZWFkZXJfb25seSkgewogCQlzY3JpcHQudG9vbC5zaG93X2ZlYXRfaGRyID0gU0hPV19GRUFUX0hFQURFUjsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1zdGF0LmMgYi90b29scy9wZXJmL2J1aWx0aW4tc3RhdC5jCmluZGV4IDdlMTdiZjkuLjQ2OGZjNDkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1zdGF0LmMKKysrIGIvdG9vbHMvcGVyZi9idWlsdGluLXN0YXQuYwpAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgInV0aWwvdG9vbC5oIgogI2luY2x1ZGUgInV0aWwvc3RyaW5nMi5oIgogI2luY2x1ZGUgInV0aWwvbWV0cmljZ3JvdXAuaCIKKyNpbmNsdWRlICJ1dGlsL3N5bnRoZXRpYy1ldmVudHMuaCIKICNpbmNsdWRlICJ1dGlsL3RhcmdldC5oIgogI2luY2x1ZGUgInV0aWwvdGltZS11dGlscy5oIgogI2luY2x1ZGUgInV0aWwvdG9wLmgiCkBAIC04Miw2ICs4Myw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSA8cGVyZi9ldmxpc3QuaD4KQEAgLTIzMyw3ICsyMzUsNyBAQCBzdGF0aWMgaW50IHdyaXRlX3N0YXRfcm91bmRfZXZlbnQodTY0IHRtLCB1NjQgdHlwZSkKICNkZWZpbmUgV1JJVEVfU1RBVF9ST1VORF9FVkVOVCh0aW1lLCBpbnRlcnZhbCkgXAogCXdyaXRlX3N0YXRfcm91bmRfZXZlbnQodGltZSwgUEVSRl9TVEFUX1JPVU5EX1RZUEVfXyAjIyBpbnRlcnZhbCkKIAotI2RlZmluZSBTSUQoZSwgeCwgeSkgeHlhcnJheV9fZW50cnkoZS0+c2FtcGxlX2lkLCB4LCB5KQorI2RlZmluZSBTSUQoZSwgeCwgeSkgeHlhcnJheV9fZW50cnkoZS0+Y29yZS5zYW1wbGVfaWQsIHgsIHkpCiAKIHN0YXRpYyBpbnQKIHBlcmZfZXZzZWxfX3dyaXRlX3N0YXRfZXZlbnQoc3RydWN0IGV2c2VsICpjb3VudGVyLCB1MzIgY3B1LCB1MzIgdGhyZWFkLApAQCAtMjc2LDcgKzI3OCw3IEBAIHN0YXRpYyBpbnQgcmVhZF9jb3VudGVyKHN0cnVjdCBldnNlbCAqY291bnRlciwgc3RydWN0IHRpbWVzcGVjICpycykKIAlpZiAoIWNvdW50ZXItPnN1cHBvcnRlZCkKIAkJcmV0dXJuIC1FTk9FTlQ7CiAKLQlpZiAoY291bnRlci0+c3lzdGVtX3dpZGUpCisJaWYgKGNvdW50ZXItPmNvcmUuc3lzdGVtX3dpZGUpCiAJCW50aHJlYWRzID0gMTsKIAogCWZvciAodGhyZWFkID0gMDsgdGhyZWFkIDwgbnRocmVhZHM7IHRocmVhZCsrKSB7CkBAIC01NDAsOCArNTQyLDggQEAgc3RhdGljIGludCBfX3J1bl9wZXJmX3N0YXQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBpbnQgcnVuX2lkeCkKIAkJaWYgKGVyciA8IDApCiAJCQlyZXR1cm4gZXJyOwogCi0JCWVyciA9IHBlcmZfc3RhdF9zeW50aGVzaXplX2NvbmZpZygmc3RhdF9jb25maWcsIE5VTEwsIGV2c2VsX2xpc3QsCi0JCQkJCQkgIHByb2Nlc3Nfc3ludGhlc2l6ZWRfZXZlbnQsIGlzX3BpcGUpOworCQllcnIgPSBwZXJmX2V2ZW50X19zeW50aGVzaXplX3N0YXRfZXZlbnRzKCZzdGF0X2NvbmZpZywgTlVMTCwgZXZzZWxfbGlzdCwKKwkJCQkJCQkgcHJvY2Vzc19zeW50aGVzaXplZF9ldmVudCwgaXNfcGlwZSk7CiAJCWlmIChlcnIgPCAwKQogCQkJcmV0dXJuIGVycjsKIAl9CkBAIC04MjIsMTggKzgyNCw2IEBAIHN0YXRpYyBpbnQgcGVyZl9zdGF0X19nZXRfY29yZShzdHJ1Y3QgcGVyZl9zdGF0X2NvbmZpZyAqY29uZmlnIF9fbWF5YmVfdW51c2VkLAogCXJldHVybiBjcHVfbWFwX19nZXRfY29yZShtYXAsIGNwdSwgTlVMTCk7CiB9CiAKLXN0YXRpYyBpbnQgY3B1X21hcF9fZ2V0X21heChzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXApCi17Ci0JaW50IGksIG1heCA9IC0xOwotCi0JZm9yIChpID0gMDsgaSA8IG1hcC0+bnI7IGkrKykgewotCQlpZiAobWFwLT5tYXBbaV0gPiBtYXgpCi0JCQltYXggPSBtYXAtPm1hcFtpXTsKLQl9Ci0KLQlyZXR1cm4gbWF4OwotfQotCiBzdGF0aWMgaW50IHBlcmZfc3RhdF9fZ2V0X2FnZ3Ioc3RydWN0IHBlcmZfc3RhdF9jb25maWcgKmNvbmZpZywKIAkJCSAgICAgICBhZ2dyX2dldF9pZF90IGdldF9pZCwgc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwLCBpbnQgaWR4KQogewpAQCAtOTI4LDcgKzkxOCw3IEBAIHN0YXRpYyBpbnQgcGVyZl9zdGF0X2luaXRfYWdncl9tb2RlKHZvaWQpCiAJICogdGFraW5nIHRoZSBoaWdoZXN0IGNwdSBudW1iZXIgdG8gYmUgdGhlIHNpemUgb2YKIAkgKiB0aGUgYWdncmVnYXRpb24gdHJhbnNsYXRlIGNwdW1hcC4KIAkgKi8KLQluciA9IGNwdV9tYXBfX2dldF9tYXgoZXZzZWxfbGlzdC0+Y29yZS5jcHVzKTsKKwluciA9IHBlcmZfY3B1X21hcF9fbWF4KGV2c2VsX2xpc3QtPmNvcmUuY3B1cyk7CiAJc3RhdF9jb25maWcuY3B1c19hZ2dyX21hcCA9IHBlcmZfY3B1X21hcF9fZW1wdHlfbmV3KG5yICsgMSk7CiAJcmV0dXJuIHN0YXRfY29uZmlnLmNwdXNfYWdncl9tYXAgPyAwIDogLUVOT01FTTsKIH0KQEAgLTE0NDcsOSArMTQzNyw5IEBAIHN0YXRpYyBpbnQgX19jbWRfcmVjb3JkKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAl9CiAKIAlzZXNzaW9uID0gcGVyZl9zZXNzaW9uX19uZXcoZGF0YSwgZmFsc2UsIE5VTEwpOwotCWlmIChzZXNzaW9uID09IE5VTEwpIHsKLQkJcHJfZXJyKCJQZXJmIHNlc3Npb24gY3JlYXRpb24gZmFpbGVkLlxuIik7Ci0JCXJldHVybiAtMTsKKwlpZiAoSVNfRVJSKHNlc3Npb24pKSB7CisJCXByX2VycigiUGVyZiBzZXNzaW9uIGNyZWF0aW9uIGZhaWxlZFxuIik7CisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCX0KIAogCWluaXRfZmVhdHVyZXMoc2Vzc2lvbik7CkBAIC0xNjQ2LDggKzE2MzYsOCBAQCBzdGF0aWMgaW50IF9fY21kX3JlcG9ydChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAJcGVyZl9zdGF0LmRhdGEubW9kZSA9IFBFUkZfREFUQV9NT0RFX1JFQUQ7CiAKIAlzZXNzaW9uID0gcGVyZl9zZXNzaW9uX19uZXcoJnBlcmZfc3RhdC5kYXRhLCBmYWxzZSwgJnBlcmZfc3RhdC50b29sKTsKLQlpZiAoc2Vzc2lvbiA9PSBOVUxMKQotCQlyZXR1cm4gLTE7CisJaWYgKElTX0VSUihzZXNzaW9uKSkKKwkJcmV0dXJuIFBUUl9FUlIoc2Vzc2lvbik7CiAKIAlwZXJmX3N0YXQuc2Vzc2lvbiAgPSBzZXNzaW9uOwogCXN0YXRfY29uZmlnLm91dHB1dCA9IHN0ZGVycjsKQEAgLTE2ODEsNyArMTY3MSw3IEBAIHN0YXRpYyB2b2lkIHNldHVwX3N5c3RlbV93aWRlKGludCBmb3JrcykKIAkJc3RydWN0IGV2c2VsICpjb3VudGVyOwogCiAJCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZzZWxfbGlzdCwgY291bnRlcikgewotCQkJaWYgKCFjb3VudGVyLT5zeXN0ZW1fd2lkZSkKKwkJCWlmICghY291bnRlci0+Y29yZS5zeXN0ZW1fd2lkZSkKIAkJCQlyZXR1cm47CiAJCX0KIApAQCAtMTk2Myw4ICsxOTUzLDExIEBAIGludCBjbWRfc3RhdChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAJCQlmcHJpbnRmKG91dHB1dCwgIlsgcGVyZiBzdGF0OiBleGVjdXRpbmcgcnVuICMlZCAuLi4gXVxuIiwKIAkJCQlydW5faWR4ICsgMSk7CiAKKwkJaWYgKHJ1bl9pZHggIT0gMCkKKwkJCXBlcmZfZXZsaXN0X19yZXNldF9wcmV2X3Jhd19jb3VudHMoZXZzZWxfbGlzdCk7CisKIAkJc3RhdHVzID0gcnVuX3BlcmZfc3RhdChhcmdjLCBhcmd2LCBydW5faWR4KTsKLQkJaWYgKGZvcmV2ZXIgJiYgc3RhdHVzICE9IC0xKSB7CisJCWlmIChmb3JldmVyICYmIHN0YXR1cyAhPSAtMSAmJiAhaW50ZXJ2YWwpIHsKIAkJCXByaW50X2NvdW50ZXJzKE5VTEwsIGFyZ2MsIGFyZ3YpOwogCQkJcGVyZl9zdGF0X19yZXNldF9zdGF0cygpOwogCQl9CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2J1aWx0aW4tdGltZWNoYXJ0LmMgYi90b29scy9wZXJmL2J1aWx0aW4tdGltZWNoYXJ0LmMKaW5kZXggZTBlODIyNi4uOWU4NGZhZSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9idWlsdGluLXRpbWVjaGFydC5jCisrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi10aW1lY2hhcnQuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgInV0aWwvdG9vbC5oIgogI2luY2x1ZGUgInV0aWwvZGF0YS5oIgogI2luY2x1ZGUgInV0aWwvZGVidWcuaCIKKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogI2lmZGVmIExBQ0tTX09QRU5fTUVNU1RSRUFNX1BST1RPVFlQRQogRklMRSAqb3Blbl9tZW1zdHJlYW0oY2hhciAqKnB0ciwgc2l6ZV90ICpzaXplbG9jKTsKQEAgLTE2MDEsOCArMTYwMiw4IEBAIHN0YXRpYyBpbnQgX19jbWRfdGltZWNoYXJ0KHN0cnVjdCB0aW1lY2hhcnQgKnRjaGFydCwgY29uc3QgY2hhciAqb3V0cHV0X25hbWUpCiAJCQkJCQkJICZ0Y2hhcnQtPnRvb2wpOwogCWludCByZXQgPSAtRUlOVkFMOwogCi0JaWYgKHNlc3Npb24gPT0gTlVMTCkKLQkJcmV0dXJuIC0xOworCWlmIChJU19FUlIoc2Vzc2lvbikpCisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCiAJc3ltYm9sX19pbml0KCZzZXNzaW9uLT5oZWFkZXIuZW52KTsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9idWlsdGluLXRvcC5jIGIvdG9vbHMvcGVyZi9idWlsdGluLXRvcC5jCmluZGV4IDcyNmUzZjIuLjFmNjAxMjQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi10b3AuYworKysgYi90b29scy9wZXJmL2J1aWx0aW4tdG9wLmMKQEAgLTI3LDExICsyNywxNCBAQAogI2luY2x1ZGUgInV0aWwvZHNvLmgiCiAjaW5jbHVkZSAidXRpbC9ldmxpc3QuaCIKICNpbmNsdWRlICJ1dGlsL2V2c2VsLmgiCisjaW5jbHVkZSAidXRpbC9ldnNlbF9jb25maWcuaCIKICNpbmNsdWRlICJ1dGlsL2V2ZW50LmgiCiAjaW5jbHVkZSAidXRpbC9tYWNoaW5lLmgiCiAjaW5jbHVkZSAidXRpbC9tYXAuaCIKKyNpbmNsdWRlICJ1dGlsL21tYXAuaCIKICNpbmNsdWRlICJ1dGlsL3Nlc3Npb24uaCIKICNpbmNsdWRlICJ1dGlsL3N5bWJvbC5oIgorI2luY2x1ZGUgInV0aWwvc3ludGhldGljLWV2ZW50cy5oIgogI2luY2x1ZGUgInV0aWwvdG9wLmgiCiAjaW5jbHVkZSAidXRpbC91dGlsLmgiCiAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+CkBAIC03Niw2ICs3OSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5naWZ5Lmg+CiAjaW5jbHVkZSA8bGludXgvdGltZTY0Lmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAKQEAgLTUyOCw3ICs1MzIsNyBAQCBzdGF0aWMgYm9vbCBwZXJmX3RvcF9faGFuZGxlX2tleXByZXNzKHN0cnVjdCBwZXJmX3RvcCAqdG9wLCBpbnQgYykKIAkJCQlwcm9tcHRfaW50ZWdlcigmY291bnRlciwgIkVudGVyIGRldGFpbHMgZXZlbnQgY291bnRlciIpOwogCiAJCQkJaWYgKGNvdW50ZXIgPj0gdG9wLT5ldmxpc3QtPmNvcmUubnJfZW50cmllcykgewotCQkJCQl0b3AtPnN5bV9ldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdCh0b3AtPmV2bGlzdCk7CisJCQkJCXRvcC0+c3ltX2V2c2VsID0gZXZsaXN0X19maXJzdCh0b3AtPmV2bGlzdCk7CiAJCQkJCWZwcmludGYoc3RkZXJyLCAiU29ycnksIG5vIHN1Y2ggZXZlbnQsIHVzaW5nICVzLlxuIiwgcGVyZl9ldnNlbF9fbmFtZSh0b3AtPnN5bV9ldnNlbCkpOwogCQkJCQlzbGVlcCgxKTsKIAkJCQkJYnJlYWs7CkBAIC01MzcsNyArNTQxLDcgQEAgc3RhdGljIGJvb2wgcGVyZl90b3BfX2hhbmRsZV9rZXlwcmVzcyhzdHJ1Y3QgcGVyZl90b3AgKnRvcCwgaW50IGMpCiAJCQkJCWlmICh0b3AtPnN5bV9ldnNlbC0+aWR4ID09IGNvdW50ZXIpCiAJCQkJCQlicmVhazsKIAkJCX0gZWxzZQotCQkJCXRvcC0+c3ltX2V2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KHRvcC0+ZXZsaXN0KTsKKwkJCQl0b3AtPnN5bV9ldnNlbCA9IGV2bGlzdF9fZmlyc3QodG9wLT5ldmxpc3QpOwogCQkJYnJlYWs7CiAJCWNhc2UgJ2YnOgogCQkJcHJvbXB0X2ludGVnZXIoJnRvcC0+Y291bnRfZmlsdGVyLCAiRW50ZXIgZGlzcGxheSBldmVudCBjb3VudCBmaWx0ZXIiKTsKQEAgLTg2MSw3ICs4NjUsNyBAQCBzdGF0aWMgdm9pZCBwZXJmX3RvcF9fbW1hcF9yZWFkX2lkeChzdHJ1Y3QgcGVyZl90b3AgKnRvcCwgaW50IGlkeCkKIHsKIAlzdHJ1Y3QgcmVjb3JkX29wdHMgKm9wdHMgPSAmdG9wLT5yZWNvcmRfb3B0czsKIAlzdHJ1Y3QgZXZsaXN0ICpldmxpc3QgPSB0b3AtPmV2bGlzdDsKLQlzdHJ1Y3QgcGVyZl9tbWFwICptZDsKKwlzdHJ1Y3QgbW1hcCAqbWQ7CiAJdW5pb24gcGVyZl9ldmVudCAqZXZlbnQ7CiAKIAltZCA9IG9wdHMtPm92ZXJ3cml0ZSA/ICZldmxpc3QtPm92ZXJ3cml0ZV9tbWFwW2lkeF0gOiAmZXZsaXN0LT5tbWFwW2lkeF07CkBAIC05MDEsNyArOTA1LDcgQEAgc3RhdGljIHZvaWQgcGVyZl90b3BfX21tYXBfcmVhZChzdHJ1Y3QgcGVyZl90b3AgKnRvcCkKIAlpZiAob3ZlcndyaXRlKQogCQlwZXJmX2V2bGlzdF9fdG9nZ2xlX2Jrd19tbWFwKGV2bGlzdCwgQktXX01NQVBfREFUQV9QRU5ESU5HKTsKIAotCWZvciAoaSA9IDA7IGkgPCB0b3AtPmV2bGlzdC0+bnJfbW1hcHM7IGkrKykKKwlmb3IgKGkgPSAwOyBpIDwgdG9wLT5ldmxpc3QtPmNvcmUubnJfbW1hcHM7IGkrKykKIAkJcGVyZl90b3BfX21tYXBfcmVhZF9pZHgodG9wLCBpKTsKIAogCWlmIChvdmVyd3JpdGUpIHsKQEAgLTk1OSw3ICs5NjMsNyBAQCBzdGF0aWMgaW50IHBlcmZfdG9wX19vdmVyd3JpdGVfY2hlY2soc3RydWN0IHBlcmZfdG9wICp0b3ApCiAJCS8qIGhhcyB0ZXJtIGZvciBjdXJyZW50IGV2ZW50ICovCiAJCWlmICgob3ZlcndyaXRlIDwgMCkgJiYgKHNldCA+PSAwKSkgewogCQkJLyogaWYgaXQncyBmaXJzdCBldmVudCwgc2V0IG92ZXJ3cml0ZSAqLwotCQkJaWYgKGV2c2VsID09IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpKQorCQkJaWYgKGV2c2VsID09IGV2bGlzdF9fZmlyc3QoZXZsaXN0KSkKIAkJCQlvdmVyd3JpdGUgPSBzZXQ7CiAJCQllbHNlCiAJCQkJcmV0dXJuIC0xOwpAQCAtOTgzLDcgKzk4Nyw3IEBAIHN0YXRpYyBpbnQgcGVyZl90b3Bfb3ZlcndyaXRlX2ZhbGxiYWNrKHN0cnVjdCBwZXJmX3RvcCAqdG9wLAogCQlyZXR1cm4gMDsKIAogCS8qIG9ubHkgZmFsbCBiYWNrIHdoZW4gZmlyc3QgZXZlbnQgZmFpbHMgKi8KLQlpZiAoZXZzZWwgIT0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCkpCisJaWYgKGV2c2VsICE9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KSkKIAkJcmV0dXJuIDA7CiAKIAlldmxpc3RfX2Zvcl9lYWNoX2VudHJ5KGV2bGlzdCwgY291bnRlcikKQEAgLTEwNDAsNyArMTA0NCw3IEBAIHN0YXRpYyBpbnQgcGVyZl90b3BfX3N0YXJ0X2NvdW50ZXJzKHN0cnVjdCBwZXJmX3RvcCAqdG9wKQogCQl9CiAJfQogCi0JaWYgKHBlcmZfZXZsaXN0X19tbWFwKGV2bGlzdCwgb3B0cy0+bW1hcF9wYWdlcykgPCAwKSB7CisJaWYgKGV2bGlzdF9fbW1hcChldmxpc3QsIG9wdHMtPm1tYXBfcGFnZXMpIDwgMCkgewogCQl1aV9fZXJyb3IoIkZhaWxlZCB0byBtbWFwIHdpdGggJWQgKCVzKVxuIiwKIAkJCSAgICBlcnJubywgc3RyX2Vycm9yX3IoZXJybm8sIG1zZywgc2l6ZW9mKG1zZykpKTsKIAkJZ290byBvdXRfZXJyOwpAQCAtMTMwNCw3ICsxMzA4LDcgQEAgc3RhdGljIGludCBfX2NtZF90b3Aoc3RydWN0IHBlcmZfdG9wICp0b3ApCiAJfQogCiAJLyogV2FpdCBmb3IgYSBtaW5pbWFsIHNldCBvZiBldmVudHMgYmVmb3JlIHN0YXJ0aW5nIHRoZSBzbmFwc2hvdCAqLwotCXBlcmZfZXZsaXN0X19wb2xsKHRvcC0+ZXZsaXN0LCAxMDApOworCWV2bGlzdF9fcG9sbCh0b3AtPmV2bGlzdCwgMTAwKTsKIAogCXBlcmZfdG9wX19tbWFwX3JlYWQodG9wKTsKIApAQCAtMTMxNCw3ICsxMzE4LDcgQEAgc3RhdGljIGludCBfX2NtZF90b3Aoc3RydWN0IHBlcmZfdG9wICp0b3ApCiAJCXBlcmZfdG9wX19tbWFwX3JlYWQodG9wKTsKIAogCQlpZiAob3B0cy0+b3ZlcndyaXRlIHx8IChoaXRzID09IHRvcC0+c2FtcGxlcykpCi0JCQlyZXQgPSBwZXJmX2V2bGlzdF9fcG9sbCh0b3AtPmV2bGlzdCwgMTAwKTsKKwkJCXJldCA9IGV2bGlzdF9fcG9sbCh0b3AtPmV2bGlzdCwgMTAwKTsKIAogCQlpZiAocmVzaXplKSB7CiAJCQlwZXJmX3RvcF9fcmVzaXplKHRvcCk7CkBAIC0xNjQxLDcgKzE2NDUsNyBAQCBpbnQgY21kX3RvcChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAJCWdvdG8gb3V0X2RlbGV0ZV9ldmxpc3Q7CiAJfQogCi0JdG9wLnN5bV9ldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdCh0b3AuZXZsaXN0KTsKKwl0b3Auc3ltX2V2c2VsID0gZXZsaXN0X19maXJzdCh0b3AuZXZsaXN0KTsKIAogCWlmICghY2FsbGNoYWluX3BhcmFtLmVuYWJsZWQpIHsKIAkJc3ltYm9sX2NvbmYuY3VtdWxhdGVfY2FsbGNoYWluID0gZmFsc2U7CkBAIC0xNjcxLDggKzE2NzUsOCBAQCBpbnQgY21kX3RvcChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAJfQogCiAJdG9wLnNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldyhOVUxMLCBmYWxzZSwgTlVMTCk7Ci0JaWYgKHRvcC5zZXNzaW9uID09IE5VTEwpIHsKLQkJc3RhdHVzID0gLTE7CisJaWYgKElTX0VSUih0b3Auc2Vzc2lvbikpIHsKKwkJc3RhdHVzID0gUFRSX0VSUih0b3Auc2Vzc2lvbik7CiAJCWdvdG8gb3V0X2RlbGV0ZV9ldmxpc3Q7CiAJfQogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2J1aWx0aW4tdHJhY2UuYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi10cmFjZS5jCmluZGV4IDBmNjMzZjAuLmJiNTEzMGQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi10cmFjZS5jCisrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi10cmFjZS5jCkBAIC0yOCw4ICsyOCwxMiBAQAogI2luY2x1ZGUgInV0aWwvZHNvLmgiCiAjaW5jbHVkZSAidXRpbC9lbnYuaCIKICNpbmNsdWRlICJ1dGlsL2V2ZW50LmgiCisjaW5jbHVkZSAidXRpbC9ldnNlbC5oIgorI2luY2x1ZGUgInV0aWwvZXZzZWxfZnByaW50Zi5oIgorI2luY2x1ZGUgInV0aWwvc3ludGhldGljLWV2ZW50cy5oIgogI2luY2x1ZGUgInV0aWwvZXZsaXN0LmgiCiAjaW5jbHVkZSAidXRpbC9ldnN3aXRjaC5oIgorI2luY2x1ZGUgInV0aWwvbW1hcC5oIgogI2luY2x1ZGUgPHN1YmNtZC9wYWdlci5oPgogI2luY2x1ZGUgPHN1YmNtZC9leGVjLWNtZC5oPgogI2luY2x1ZGUgInV0aWwvbWFjaGluZS5oIgpAQCAtMjA3NCw3ICsyMDc4LDcgQEAgc3RhdGljIGludCB0cmFjZV9fZnByaW50Zl9jYWxsY2hhaW4oc3RydWN0IHRyYWNlICp0cmFjZSwgc3RydWN0IHBlcmZfc2FtcGxlICpzYW0KIAkJCQkgICAgICAgIEVWU0VMX19QUklOVF9EU08gfAogCQkJCSAgICAgICAgRVZTRUxfX1BSSU5UX1VOS05PV05fQVNfQUREUjsKIAotCXJldHVybiBzYW1wbGVfX2ZwcmludGZfY2FsbGNoYWluKHNhbXBsZSwgMzgsIHByaW50X29wdHMsICZjYWxsY2hhaW5fY3Vyc29yLCB0cmFjZS0+b3V0cHV0KTsKKwlyZXR1cm4gc2FtcGxlX19mcHJpbnRmX2NhbGxjaGFpbihzYW1wbGUsIDM4LCBwcmludF9vcHRzLCAmY2FsbGNoYWluX2N1cnNvciwgc3ltYm9sX2NvbmYuYnRfc3RvcF9saXN0LCB0cmFjZS0+b3V0cHV0KTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKmVycm5vX3RvX25hbWUoc3RydWN0IGV2c2VsICpldnNlbCwgaW50IGVycikKQEAgLTM0MDgsNyArMzQxMiw3IEBAIHN0YXRpYyBpbnQgdHJhY2VfX3J1bihzdHJ1Y3QgdHJhY2UgKnRyYWNlLCBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAJaWYgKHRyYWNlLT5kdW1wLm1hcCkKIAkJYnBmX21hcF9fZnByaW50Zih0cmFjZS0+ZHVtcC5tYXAsIHRyYWNlLT5vdXRwdXQpOwogCi0JZXJyID0gcGVyZl9ldmxpc3RfX21tYXAoZXZsaXN0LCB0cmFjZS0+b3B0cy5tbWFwX3BhZ2VzKTsKKwllcnIgPSBldmxpc3RfX21tYXAoZXZsaXN0LCB0cmFjZS0+b3B0cy5tbWFwX3BhZ2VzKTsKIAlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfZXJyb3JfbW1hcDsKIApAQCAtMzQyNSw3ICszNDI5LDcgQEAgc3RhdGljIGludCB0cmFjZV9fcnVuKHN0cnVjdCB0cmFjZSAqdHJhY2UsIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAogCXRyYWNlLT5tdWx0aXBsZV90aHJlYWRzID0gcGVyZl90aHJlYWRfbWFwX19waWQoZXZsaXN0LT5jb3JlLnRocmVhZHMsIDApID09IC0xIHx8CiAJCQkJICBldmxpc3QtPmNvcmUudGhyZWFkcy0+bnIgPiAxIHx8Ci0JCQkJICBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KS0+Y29yZS5hdHRyLmluaGVyaXQ7CisJCQkJICBldmxpc3RfX2ZpcnN0KGV2bGlzdCktPmNvcmUuYXR0ci5pbmhlcml0OwogCiAJLyoKIAkgKiBOb3cgdGhhdCB3ZSBhbHJlYWR5IHVzZWQgZXZzZWwtPmNvcmUuYXR0ciB0byBhc2sgdGhlIGtlcm5lbCB0byBzZXR1cCB0aGUKQEAgLTM0NDEsOSArMzQ0NSw5IEBAIHN0YXRpYyBpbnQgdHJhY2VfX3J1bihzdHJ1Y3QgdHJhY2UgKnRyYWNlLCBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiBhZ2FpbjoKIAliZWZvcmUgPSB0cmFjZS0+bnJfZXZlbnRzOwogCi0JZm9yIChpID0gMDsgaSA8IGV2bGlzdC0+bnJfbW1hcHM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPmNvcmUubnJfbW1hcHM7IGkrKykgewogCQl1bmlvbiBwZXJmX2V2ZW50ICpldmVudDsKLQkJc3RydWN0IHBlcmZfbW1hcCAqbWQ7CisJCXN0cnVjdCBtbWFwICptZDsKIAogCQltZCA9ICZldmxpc3QtPm1tYXBbaV07CiAJCWlmIChwZXJmX21tYXBfX3JlYWRfaW5pdChtZCkgPCAwKQpAQCAtMzQ3Miw4ICszNDc2LDggQEAgc3RhdGljIGludCB0cmFjZV9fcnVuKHN0cnVjdCB0cmFjZSAqdHJhY2UsIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAlpZiAodHJhY2UtPm5yX2V2ZW50cyA9PSBiZWZvcmUpIHsKIAkJaW50IHRpbWVvdXQgPSBkb25lID8gMTAwIDogLTE7CiAKLQkJaWYgKCFkcmFpbmluZyAmJiBwZXJmX2V2bGlzdF9fcG9sbChldmxpc3QsIHRpbWVvdXQpID4gMCkgewotCQkJaWYgKHBlcmZfZXZsaXN0X19maWx0ZXJfcG9sbGZkKGV2bGlzdCwgUE9MTEVSUiB8IFBPTExIVVAgfCBQT0xMTlZBTCkgPT0gMCkKKwkJaWYgKCFkcmFpbmluZyAmJiBldmxpc3RfX3BvbGwoZXZsaXN0LCB0aW1lb3V0KSA+IDApIHsKKwkJCWlmIChldmxpc3RfX2ZpbHRlcl9wb2xsZmQoZXZsaXN0LCBQT0xMRVJSIHwgUE9MTEhVUCB8IFBPTExOVkFMKSA9PSAwKQogCQkJCWRyYWluaW5nID0gdHJ1ZTsKIAogCQkJZ290byBhZ2FpbjsKQEAgLTM1ODQsOCArMzU4OCw4IEBAIHN0YXRpYyBpbnQgdHJhY2VfX3JlcGxheShzdHJ1Y3QgdHJhY2UgKnRyYWNlKQogCXRyYWNlLT5tdWx0aXBsZV90aHJlYWRzID0gdHJ1ZTsKIAogCXNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZGF0YSwgZmFsc2UsICZ0cmFjZS0+dG9vbCk7Ci0JaWYgKHNlc3Npb24gPT0gTlVMTCkKLQkJcmV0dXJuIC0xOworCWlmIChJU19FUlIoc2Vzc2lvbikpCisJCXJldHVybiBQVFJfRVJSKHNlc3Npb24pOwogCiAJaWYgKHRyYWNlLT5vcHRzLnRhcmdldC5waWQpCiAJCXN5bWJvbF9jb25mLnBpZF9saXN0X3N0ciA9IHN0cmR1cCh0cmFjZS0+b3B0cy50YXJnZXQucGlkKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvanZtdGkvQnVpbGQgYi90b29scy9wZXJmL2p2bXRpL0J1aWxkCmluZGV4IGVhZWI4Y2IuLjFlMTQ4YmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvanZtdGkvQnVpbGQKKysrIGIvdG9vbHMvcGVyZi9qdm10aS9CdWlsZApAQCAtMSw4ICsxLDE3IEBACiBqdm10aS15ICs9IGxpYmp2bXRpLm8KIGp2bXRpLXkgKz0ganZtdGlfYWdlbnQubwogCisjIEZvciBzdHJsY3B5Citqdm10aS15ICs9IGxpYnN0cmluZy5vCisKIENGTEFHU19qdm10aSAgICAgICAgID0gLWZQSUMgLURQSUMgLUkkKEpESVIpL2luY2x1ZGUgLUkkKEpESVIpL2luY2x1ZGUvbGludXgKIENGTEFHU19SRU1PVkVfanZtdGkgID0gLVdtaXNzaW5nLWRlY2xhcmF0aW9ucwogQ0ZMQUdTX1JFTU9WRV9qdm10aSArPSAtV3N0cmljdC1wcm90b3R5cGVzCiBDRkxBR1NfUkVNT1ZFX2p2bXRpICs9IC1XZXh0cmEKIENGTEFHU19SRU1PVkVfanZtdGkgKz0gLVd3cml0ZS1zdHJpbmdzCisKK0NGTEFHU19saWJzdHJpbmcubyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLURFVENfUEVSRkNPTkZJRz0iQlVJTERfU1RSKCQoRVRDX1BFUkZDT05GSUdfU1EpKSIKKworJChPVVRQVVQpanZtdGkvbGlic3RyaW5nLm86IC4uL2xpYi9zdHJpbmcuYyBGT1JDRQorCSQoY2FsbCBydWxlX21rZGlyKQorCSQoY2FsbCBpZl9jaGFuZ2VkX2RlcCxjY19vX2MpCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2xpYi9NYWtlZmlsZSBiL3Rvb2xzL3BlcmYvbGliL01ha2VmaWxlCmluZGV4IGE2N2VmYjguLjg1Y2NiOGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvbGliL01ha2VmaWxlCisrKyBiL3Rvb2xzL3BlcmYvbGliL01ha2VmaWxlCkBAIC01OSw3ICs1OSwxMyBAQAogICBDRkxBR1MgOj0gLWcgLVdhbGwKIGVuZGlmCiAKLUlOQ0xVREVTID0gLUkkKHNyY3RyZWUpL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUgLUkkKHNyY3RyZWUpL3Rvb2xzL2luY2x1ZGUgLUkkKHNyY3RyZWUpL3Rvb2xzL2FyY2gvJChTUkNBUkNIKS9pbmNsdWRlLyAtSSQoc3JjdHJlZSkvdG9vbHMvYXJjaC8kKFNSQ0FSQ0gpL2luY2x1ZGUvdWFwaSAtSSQoc3JjdHJlZSkvdG9vbHMvaW5jbHVkZS91YXBpCitJTkNMVURFUyA9IFwKKy1JJChzcmN0cmVlKS90b29scy9wZXJmL2xpYi9pbmNsdWRlIFwKKy1JJChzcmN0cmVlKS90b29scy9saWIvIFwKKy1JJChzcmN0cmVlKS90b29scy9pbmNsdWRlIFwKKy1JJChzcmN0cmVlKS90b29scy9hcmNoLyQoU1JDQVJDSCkvaW5jbHVkZS8gXAorLUkkKHNyY3RyZWUpL3Rvb2xzL2FyY2gvJChTUkNBUkNIKS9pbmNsdWRlL3VhcGkgXAorLUkkKHNyY3RyZWUpL3Rvb2xzL2luY2x1ZGUvdWFwaQogCiAjIEFwcGVuZCByZXF1aXJlZCBDRkxBR1MKIG92ZXJyaWRlIENGTEFHUyArPSAkKEVYVFJBX1dBUk5JTkdTKQpAQCAtODgsMTMgKzk0LDM0IEBACiAKIExJQlBFUkZfQUxMIDo9ICQoTElCUEVSRl9BKSAkKE9VVFBVVClsaWJwZXJmLnNvKgogCitMSUJfRElSIDo9ICQoc3JjdHJlZSkvdG9vbHMvbGliL2FwaS8KKworaWZuZXEgKCQoT1VUUFVUKSwpCitpZm5lcSAoJChzdWJkaXIpLCkKKyAgQVBJX1BBVEg9JChPVVRQVVQpLy4uL2xpYi9hcGkvCitlbHNlCisgIEFQSV9QQVRIPSQoT1VUUFVUKQorZW5kaWYKK2Vsc2UKKyAgQVBJX1BBVEg9JChMSUJfRElSKQorZW5kaWYKKworTElCQVBJID0gJChBUElfUEFUSClsaWJhcGkuYQorCiskKExJQkFQSSk6IEZPUkNFCisJJChRKSQoTUFLRSkgLUMgJChMSUJfRElSKSBPPSQoT1VUUFVUKSAkKE9VVFBVVClsaWJhcGkuYQorCiskKExJQkFQSSktY2xlYW46CisJJChjYWxsIFFVSUVUX0NMRUFOLCBsaWJhcGkpCisJJChRKSQoTUFLRSkgLUMgJChMSUJfRElSKSBPPSQoT1VUUFVUKSBjbGVhbiA+L2Rldi9udWxsCisKICQoTElCUEVSRl9JTik6IEZPUkNFCiAJJChRKSQoTUFLRSkgJChidWlsZCk9bGlicGVyZgogCiAkKExJQlBFUkZfQSk6ICQoTElCUEVSRl9JTikKIAkkKFFVSUVUX0FSKSQoUk0pICRAICYmICQoQVIpIHJjcyAkQCAkKExJQlBFUkZfSU4pCiAKLSQoTElCUEVSRl9TTyk6ICQoTElCUEVSRl9JTikKKyQoTElCUEVSRl9TTyk6ICQoTElCUEVSRl9JTikgJChMSUJBUEkpCiAJJChRVUlFVF9MSU5LKSQoQ0MpIC0tc2hhcmVkIC1XbCwtc29uYW1lLGxpYnBlcmYuc28gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLVdsLC0tdmVyc2lvbi1zY3JpcHQ9JChWRVJTSU9OX1NDUklQVCkgJF4gLW8gJEAKIAlAbG4gLXNmICQoQEYpICQoT1VUUFVUKWxpYnBlcmYuc28KQEAgLTEwNiwxMiArMTMzLDEyIEBACiBhbGw6IGZpeGRlcAogCSQoUSkkKE1BS0UpIGxpYnMKIAotY2xlYW46CitjbGVhbjogJChMSUJBUEkpLWNsZWFuCiAJJChjYWxsIFFVSUVUX0NMRUFOLCBsaWJwZXJmKSAkKFJNKSAkKExJQlBFUkZfQSkgXAogICAgICAgICAgICAgICAgICoubyAqfiAqLmEgKi5zbyAqLnNvLiQoVkVSU0lPTikgKi5zby4kKExJQlBFUkZfVkVSU0lPTikgLiouZCAuKi5jbWQgTElCUEVSRi1DRkxBR1MgJChMSUJQRVJGX1BDKQogCSQoUSkkKE1BS0UpIC1DIHRlc3RzIGNsZWFuCiAKLXRlc3RzOgordGVzdHM6IGxpYnMKIAkkKFEpJChNQUtFKSAtQyB0ZXN0cwogCSQoUSkkKE1BS0UpIC1DIHRlc3RzIHJ1bgogCkBAIC0xNDYsNiArMTczLDcgQEAKIAkJJChjYWxsIGRvX2luc3RhbGwsaW5jbHVkZS9wZXJmL3RocmVhZG1hcC5oLCQocHJlZml4KS9pbmNsdWRlL3BlcmYsNjQ0KTsgXAogCQkkKGNhbGwgZG9faW5zdGFsbCxpbmNsdWRlL3BlcmYvZXZsaXN0LmgsJChwcmVmaXgpL2luY2x1ZGUvcGVyZiw2NDQpOyBcCiAJCSQoY2FsbCBkb19pbnN0YWxsLGluY2x1ZGUvcGVyZi9ldnNlbC5oLCQocHJlZml4KS9pbmNsdWRlL3BlcmYsNjQ0KTsKKwkJJChjYWxsIGRvX2luc3RhbGwsaW5jbHVkZS9wZXJmL2V2ZW50LmgsJChwcmVmaXgpL2luY2x1ZGUvcGVyZiw2NDQpOwogCiBpbnN0YWxsX3BrZ2NvbmZpZzogJChMSUJQRVJGX1BDKQogCSQoY2FsbCBRVUlFVF9JTlNUQUxMLCAkKExJQlBFUkZfUEMpKSBcCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2xpYi9jb3JlLmMgYi90b29scy9wZXJmL2xpYi9jb3JlLmMKaW5kZXggMjlkNWUzMy4uZDBiOWFlNCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9saWIvY29yZS5jCisrKyBiL3Rvb2xzL3BlcmYvbGliL2NvcmUuYwpAQCAtNCw3ICs0LDkgQEAKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8cGVyZi9jb3JlLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+CiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKIAogc3RhdGljIGludCBfX2Jhc2VfcHIoZW51bSBsaWJwZXJmX3ByaW50X2xldmVsIGxldmVsLCBjb25zdCBjaGFyICpmb3JtYXQsCkBAIC0xNSwxMSArMTcsNiBAQCBzdGF0aWMgaW50IF9fYmFzZV9wcihlbnVtIGxpYnBlcmZfcHJpbnRfbGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIgKmZvcm1hdCwKIAogc3RhdGljIGxpYnBlcmZfcHJpbnRfZm5fdCBfX2xpYnBlcmZfcHIgPSBfX2Jhc2VfcHI7CiAKLXZvaWQgbGlicGVyZl9zZXRfcHJpbnQobGlicGVyZl9wcmludF9mbl90IGZuKQotewotCV9fbGlicGVyZl9wciA9IGZuOwotfQotCiBfX3ByaW50ZigyLCAzKQogdm9pZCBsaWJwZXJmX3ByaW50KGVudW0gbGlicGVyZl9wcmludF9sZXZlbCBsZXZlbCwgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiB7CkBAIC0zMiwzICsyOSw5IEBAIHZvaWQgbGlicGVyZl9wcmludChlbnVtIGxpYnBlcmZfcHJpbnRfbGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQogCV9fbGlicGVyZl9wcihsZXZlbCwgZm9ybWF0LCBhcmdzKTsKIAl2YV9lbmQoYXJncyk7CiB9CisKK3ZvaWQgbGlicGVyZl9pbml0KGxpYnBlcmZfcHJpbnRfZm5fdCBmbikKK3sKKwlwYWdlX3NpemUgPSBzeXNjb25mKF9TQ19QQUdFX1NJWkUpOworCV9fbGlicGVyZl9wciA9IGZuOworfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9saWIvY3B1bWFwLmMgYi90b29scy9wZXJmL2xpYi9jcHVtYXAuYwppbmRleCAxZjBlNmYzLi4yY2ExZmFmYSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9saWIvY3B1bWFwLmMKKysrIGIvdG9vbHMvcGVyZi9saWIvY3B1bWFwLmMKQEAgLTI2MCwzICsyNjAsMTUgQEAgaW50IHBlcmZfY3B1X21hcF9faWR4KHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsIGludCBjcHUpCiAKIAlyZXR1cm4gLTE7CiB9CisKK2ludCBwZXJmX2NwdV9tYXBfX21heChzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXApCit7CisJaW50IGksIG1heCA9IC0xOworCisJZm9yIChpID0gMDsgaSA8IG1hcC0+bnI7IGkrKykgeworCQlpZiAobWFwLT5tYXBbaV0gPiBtYXgpCisJCQltYXggPSBtYXAtPm1hcFtpXTsKKwl9CisKKwlyZXR1cm4gbWF4OworfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9saWIvZXZsaXN0LmMgYi90b29scy9wZXJmL2xpYi9ldmxpc3QuYwppbmRleCBmNGRjOWEyLi5kMTQ5NmZlIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2xpYi9ldmxpc3QuYworKysgYi90b29scy9wZXJmL2xpYi9ldmxpc3QuYwpAQCAtMSwxNiArMSwzMCBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKICNpbmNsdWRlIDxwZXJmL2V2bGlzdC5oPgogI2luY2x1ZGUgPHBlcmYvZXZzZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvaGFzaC5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgogI2luY2x1ZGUgPGludGVybmFsL2V2bGlzdC5oPgogI2luY2x1ZGUgPGludGVybmFsL2V2c2VsLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwveHlhcnJheS5oPgogI2luY2x1ZGUgPGxpbnV4L3phbGxvYy5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxwb2xsLmg+CiAjaW5jbHVkZSA8cGVyZi9jcHVtYXAuaD4KICNpbmNsdWRlIDxwZXJmL3RocmVhZG1hcC5oPgorI2luY2x1ZGUgPGFwaS9mZC9hcnJheS5oPgogCiB2b2lkIHBlcmZfZXZsaXN0X19pbml0KHN0cnVjdCBwZXJmX2V2bGlzdCAqZXZsaXN0KQogeworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IFBFUkZfRVZMSVNUX19ITElTVF9TSVpFOyArK2kpCisJCUlOSVRfSExJU1RfSEVBRCgmZXZsaXN0LT5oZWFkc1tpXSk7CiAJSU5JVF9MSVNUX0hFQUQoJmV2bGlzdC0+ZW50cmllcyk7CiAJZXZsaXN0LT5ucl9lbnRyaWVzID0gMDsKIH0KQEAgLTE1NywzICsxNzEsMTEzIEBAIHZvaWQgcGVyZl9ldmxpc3RfX2Rpc2FibGUoc3RydWN0IHBlcmZfZXZsaXN0ICpldmxpc3QpCiAJcGVyZl9ldmxpc3RfX2Zvcl9lYWNoX2VudHJ5KGV2bGlzdCwgZXZzZWwpCiAJCXBlcmZfZXZzZWxfX2Rpc2FibGUoZXZzZWwpOwogfQorCit1NjQgcGVyZl9ldmxpc3RfX3JlYWRfZm9ybWF0KHN0cnVjdCBwZXJmX2V2bGlzdCAqZXZsaXN0KQoreworCXN0cnVjdCBwZXJmX2V2c2VsICpmaXJzdCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCisJcmV0dXJuIGZpcnN0LT5hdHRyLnJlYWRfZm9ybWF0OworfQorCisjZGVmaW5lIFNJRChlLCB4LCB5KSB4eWFycmF5X19lbnRyeShlLT5zYW1wbGVfaWQsIHgsIHkpCisKK3N0YXRpYyB2b2lkIHBlcmZfZXZsaXN0X19pZF9oYXNoKHN0cnVjdCBwZXJmX2V2bGlzdCAqZXZsaXN0LAorCQkJCSBzdHJ1Y3QgcGVyZl9ldnNlbCAqZXZzZWwsCisJCQkJIGludCBjcHUsIGludCB0aHJlYWQsIHU2NCBpZCkKK3sKKwlpbnQgaGFzaDsKKwlzdHJ1Y3QgcGVyZl9zYW1wbGVfaWQgKnNpZCA9IFNJRChldnNlbCwgY3B1LCB0aHJlYWQpOworCisJc2lkLT5pZCA9IGlkOworCXNpZC0+ZXZzZWwgPSBldnNlbDsKKwloYXNoID0gaGFzaF82NChzaWQtPmlkLCBQRVJGX0VWTElTVF9fSExJU1RfQklUUyk7CisJaGxpc3RfYWRkX2hlYWQoJnNpZC0+bm9kZSwgJmV2bGlzdC0+aGVhZHNbaGFzaF0pOworfQorCit2b2lkIHBlcmZfZXZsaXN0X19pZF9hZGQoc3RydWN0IHBlcmZfZXZsaXN0ICpldmxpc3QsCisJCQkgc3RydWN0IHBlcmZfZXZzZWwgKmV2c2VsLAorCQkJIGludCBjcHUsIGludCB0aHJlYWQsIHU2NCBpZCkKK3sKKwlwZXJmX2V2bGlzdF9faWRfaGFzaChldmxpc3QsIGV2c2VsLCBjcHUsIHRocmVhZCwgaWQpOworCWV2c2VsLT5pZFtldnNlbC0+aWRzKytdID0gaWQ7Cit9CisKK2ludCBwZXJmX2V2bGlzdF9faWRfYWRkX2ZkKHN0cnVjdCBwZXJmX2V2bGlzdCAqZXZsaXN0LAorCQkJICAgc3RydWN0IHBlcmZfZXZzZWwgKmV2c2VsLAorCQkJICAgaW50IGNwdSwgaW50IHRocmVhZCwgaW50IGZkKQoreworCXU2NCByZWFkX2RhdGFbNF0gPSB7IDAsIH07CisJaW50IGlkX2lkeCA9IDE7IC8qIFRoZSBmaXJzdCBlbnRyeSBpcyB0aGUgY291bnRlciB2YWx1ZSAqLworCXU2NCBpZDsKKwlpbnQgcmV0OworCisJcmV0ID0gaW9jdGwoZmQsIFBFUkZfRVZFTlRfSU9DX0lELCAmaWQpOworCWlmICghcmV0KQorCQlnb3RvIGFkZDsKKworCWlmIChlcnJubyAhPSBFTk9UVFkpCisJCXJldHVybiAtMTsKKworCS8qIExlZ2FjeSB3YXkgdG8gZ2V0IGV2ZW50IGlkLi4gQWxsIGhhaWwgdG8gb2xkIGtlcm5lbHMhICovCisKKwkvKgorCSAqIFRoaXMgd2F5IGRvZXMgbm90IHdvcmsgd2l0aCBncm91cCBmb3JtYXQgcmVhZCwgc28gYmFpbAorCSAqIG91dCBpbiB0aGF0IGNhc2UuCisJICovCisJaWYgKHBlcmZfZXZsaXN0X19yZWFkX2Zvcm1hdChldmxpc3QpICYgUEVSRl9GT1JNQVRfR1JPVVApCisJCXJldHVybiAtMTsKKworCWlmICghKGV2c2VsLT5hdHRyLnJlYWRfZm9ybWF0ICYgUEVSRl9GT1JNQVRfSUQpIHx8CisJICAgIHJlYWQoZmQsICZyZWFkX2RhdGEsIHNpemVvZihyZWFkX2RhdGEpKSA9PSAtMSkKKwkJcmV0dXJuIC0xOworCisJaWYgKGV2c2VsLT5hdHRyLnJlYWRfZm9ybWF0ICYgUEVSRl9GT1JNQVRfVE9UQUxfVElNRV9FTkFCTEVEKQorCQkrK2lkX2lkeDsKKwlpZiAoZXZzZWwtPmF0dHIucmVhZF9mb3JtYXQgJiBQRVJGX0ZPUk1BVF9UT1RBTF9USU1FX1JVTk5JTkcpCisJCSsraWRfaWR4OworCisJaWQgPSByZWFkX2RhdGFbaWRfaWR4XTsKKworYWRkOgorCXBlcmZfZXZsaXN0X19pZF9hZGQoZXZsaXN0LCBldnNlbCwgY3B1LCB0aHJlYWQsIGlkKTsKKwlyZXR1cm4gMDsKK30KKworaW50IHBlcmZfZXZsaXN0X19hbGxvY19wb2xsZmQoc3RydWN0IHBlcmZfZXZsaXN0ICpldmxpc3QpCit7CisJaW50IG5yX2NwdXMgPSBwZXJmX2NwdV9tYXBfX25yKGV2bGlzdC0+Y3B1cyk7CisJaW50IG5yX3RocmVhZHMgPSBwZXJmX3RocmVhZF9tYXBfX25yKGV2bGlzdC0+dGhyZWFkcyk7CisJaW50IG5mZHMgPSAwOworCXN0cnVjdCBwZXJmX2V2c2VsICpldnNlbDsKKworCXBlcmZfZXZsaXN0X19mb3JfZWFjaF9lbnRyeShldmxpc3QsIGV2c2VsKSB7CisJCWlmIChldnNlbC0+c3lzdGVtX3dpZGUpCisJCQluZmRzICs9IG5yX2NwdXM7CisJCWVsc2UKKwkJCW5mZHMgKz0gbnJfY3B1cyAqIG5yX3RocmVhZHM7CisJfQorCisJaWYgKGZkYXJyYXlfX2F2YWlsYWJsZV9lbnRyaWVzKCZldmxpc3QtPnBvbGxmZCkgPCBuZmRzICYmCisJICAgIGZkYXJyYXlfX2dyb3coJmV2bGlzdC0+cG9sbGZkLCBuZmRzKSA8IDApCisJCXJldHVybiAtRU5PTUVNOworCisJcmV0dXJuIDA7Cit9CisKK2ludCBwZXJmX2V2bGlzdF9fYWRkX3BvbGxmZChzdHJ1Y3QgcGVyZl9ldmxpc3QgKmV2bGlzdCwgaW50IGZkLAorCQkJICAgIHZvaWQgKnB0ciwgc2hvcnQgcmV2ZW50KQoreworCWludCBwb3MgPSBmZGFycmF5X19hZGQoJmV2bGlzdC0+cG9sbGZkLCBmZCwgcmV2ZW50IHwgUE9MTEVSUiB8IFBPTExIVVApOworCisJaWYgKHBvcyA+PSAwKSB7CisJCWV2bGlzdC0+cG9sbGZkLnByaXZbcG9zXS5wdHIgPSBwdHI7CisJCWZjbnRsKGZkLCBGX1NFVEZMLCBPX05PTkJMT0NLKTsKKwl9CisKKwlyZXR1cm4gcG9zOworfQorCitpbnQgcGVyZl9ldmxpc3RfX3BvbGwoc3RydWN0IHBlcmZfZXZsaXN0ICpldmxpc3QsIGludCB0aW1lb3V0KQoreworCXJldHVybiBmZGFycmF5X19wb2xsKCZldmxpc3QtPnBvbGxmZCwgdGltZW91dCk7Cit9CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2xpYi9ldnNlbC5jIGIvdG9vbHMvcGVyZi9saWIvZXZzZWwuYwppbmRleCAyNGFiYzgwLi5hOGNiNTgyIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2xpYi9ldnNlbC5jCisrKyBiL3Rvb2xzL3BlcmYvbGliL2V2c2VsLmMKQEAgLTIzMCwzICsyMzAsMzMgQEAgc3RydWN0IHBlcmZfZXZlbnRfYXR0ciAqcGVyZl9ldnNlbF9fYXR0cihzdHJ1Y3QgcGVyZl9ldnNlbCAqZXZzZWwpCiB7CiAJcmV0dXJuICZldnNlbC0+YXR0cjsKIH0KKworaW50IHBlcmZfZXZzZWxfX2FsbG9jX2lkKHN0cnVjdCBwZXJmX2V2c2VsICpldnNlbCwgaW50IG5jcHVzLCBpbnQgbnRocmVhZHMpCit7CisJaWYgKG5jcHVzID09IDAgfHwgbnRocmVhZHMgPT0gMCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoZXZzZWwtPnN5c3RlbV93aWRlKQorCQludGhyZWFkcyA9IDE7CisKKwlldnNlbC0+c2FtcGxlX2lkID0geHlhcnJheV9fbmV3KG5jcHVzLCBudGhyZWFkcywgc2l6ZW9mKHN0cnVjdCBwZXJmX3NhbXBsZV9pZCkpOworCWlmIChldnNlbC0+c2FtcGxlX2lkID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJZXZzZWwtPmlkID0gemFsbG9jKG5jcHVzICogbnRocmVhZHMgKiBzaXplb2YodTY0KSk7CisJaWYgKGV2c2VsLT5pZCA9PSBOVUxMKSB7CisJCXh5YXJyYXlfX2RlbGV0ZShldnNlbC0+c2FtcGxlX2lkKTsKKwkJZXZzZWwtPnNhbXBsZV9pZCA9IE5VTEw7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXJldHVybiAwOworfQorCit2b2lkIHBlcmZfZXZzZWxfX2ZyZWVfaWQoc3RydWN0IHBlcmZfZXZzZWwgKmV2c2VsKQoreworCXh5YXJyYXlfX2RlbGV0ZShldnNlbC0+c2FtcGxlX2lkKTsKKwlldnNlbC0+c2FtcGxlX2lkID0gTlVMTDsKKwl6ZnJlZSgmZXZzZWwtPmlkKTsKKwlldnNlbC0+aWRzID0gMDsKK30KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvaW50ZXJuYWwvZXZsaXN0LmggYi90b29scy9wZXJmL2xpYi9pbmNsdWRlL2ludGVybmFsL2V2bGlzdC5oCmluZGV4IDQ0ODg5MWYuLjlmNDQwYWIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvaW50ZXJuYWwvZXZsaXN0LmgKKysrIGIvdG9vbHMvcGVyZi9saWIvaW5jbHVkZS9pbnRlcm5hbC9ldmxpc3QuaApAQCAtMyw2ICszLDExIEBACiAjZGVmaW5lIF9fTElCUEVSRl9JTlRFUk5BTF9FVkxJU1RfSAogCiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGFwaS9mZC9hcnJheS5oPgorI2luY2x1ZGUgPGludGVybmFsL2V2c2VsLmg+CisKKyNkZWZpbmUgUEVSRl9FVkxJU1RfX0hMSVNUX0JJVFMgOAorI2RlZmluZSBQRVJGX0VWTElTVF9fSExJU1RfU0laRSAoMSA8PCBQRVJGX0VWTElTVF9fSExJU1RfQklUUykKIAogc3RydWN0IHBlcmZfY3B1X21hcDsKIHN0cnVjdCBwZXJmX3RocmVhZF9tYXA7CkBAIC0xMyw4ICsxOCwxNiBAQCBzdHJ1Y3QgcGVyZl9ldmxpc3QgewogCWJvb2wJCQkgaGFzX3VzZXJfY3B1czsKIAlzdHJ1Y3QgcGVyZl9jcHVfbWFwCSpjcHVzOwogCXN0cnVjdCBwZXJmX3RocmVhZF9tYXAJKnRocmVhZHM7CisJaW50CQkJIG5yX21tYXBzOworCXNpemVfdAkJCSBtbWFwX2xlbjsKKwlzdHJ1Y3QgZmRhcnJheQkJIHBvbGxmZDsKKwlzdHJ1Y3QgaGxpc3RfaGVhZAkgaGVhZHNbUEVSRl9FVkxJU1RfX0hMSVNUX1NJWkVdOwogfTsKIAoraW50IHBlcmZfZXZsaXN0X19hbGxvY19wb2xsZmQoc3RydWN0IHBlcmZfZXZsaXN0ICpldmxpc3QpOworaW50IHBlcmZfZXZsaXN0X19hZGRfcG9sbGZkKHN0cnVjdCBwZXJmX2V2bGlzdCAqZXZsaXN0LCBpbnQgZmQsCisJCQkgICAgdm9pZCAqcHRyLCBzaG9ydCByZXZlbnQpOworCiAvKioKICAqIF9fcGVyZl9ldmxpc3RfX2Zvcl9lYWNoX2VudHJ5IC0gaXRlcmF0ZSB0aHJ1IGFsbCB0aGUgZXZzZWxzCiAgKiBAbGlzdDogbGlzdF9oZWFkIGluc3RhbmNlIHRvIGl0ZXJhdGUKQEAgLTQ3LDQgKzYwLDI0IEBAIHN0cnVjdCBwZXJmX2V2bGlzdCB7CiAjZGVmaW5lIHBlcmZfZXZsaXN0X19mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKGV2bGlzdCwgZXZzZWwpIFwKIAlfX3BlcmZfZXZsaXN0X19mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKCYoZXZsaXN0KS0+ZW50cmllcywgZXZzZWwpCiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHBlcmZfZXZzZWwgKnBlcmZfZXZsaXN0X19maXJzdChzdHJ1Y3QgcGVyZl9ldmxpc3QgKmV2bGlzdCkKK3sKKwlyZXR1cm4gbGlzdF9lbnRyeShldmxpc3QtPmVudHJpZXMubmV4dCwgc3RydWN0IHBlcmZfZXZzZWwsIG5vZGUpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBwZXJmX2V2c2VsICpwZXJmX2V2bGlzdF9fbGFzdChzdHJ1Y3QgcGVyZl9ldmxpc3QgKmV2bGlzdCkKK3sKKwlyZXR1cm4gbGlzdF9lbnRyeShldmxpc3QtPmVudHJpZXMucHJldiwgc3RydWN0IHBlcmZfZXZzZWwsIG5vZGUpOworfQorCit1NjQgcGVyZl9ldmxpc3RfX3JlYWRfZm9ybWF0KHN0cnVjdCBwZXJmX2V2bGlzdCAqZXZsaXN0KTsKKwordm9pZCBwZXJmX2V2bGlzdF9faWRfYWRkKHN0cnVjdCBwZXJmX2V2bGlzdCAqZXZsaXN0LAorCQkJIHN0cnVjdCBwZXJmX2V2c2VsICpldnNlbCwKKwkJCSBpbnQgY3B1LCBpbnQgdGhyZWFkLCB1NjQgaWQpOworCitpbnQgcGVyZl9ldmxpc3RfX2lkX2FkZF9mZChzdHJ1Y3QgcGVyZl9ldmxpc3QgKmV2bGlzdCwKKwkJCSAgIHN0cnVjdCBwZXJmX2V2c2VsICpldnNlbCwKKwkJCSAgIGludCBjcHUsIGludCB0aHJlYWQsIGludCBmZCk7CisKICNlbmRpZiAvKiBfX0xJQlBFUkZfSU5URVJOQUxfRVZMSVNUX0ggKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvaW50ZXJuYWwvZXZzZWwuaCBiL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvaW50ZXJuYWwvZXZzZWwuaAppbmRleCA4Yjg1NGQxLi5hNjliODI5IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2xpYi9pbmNsdWRlL2ludGVybmFsL2V2c2VsLmgKKysrIGIvdG9vbHMvcGVyZi9saWIvaW5jbHVkZS9pbnRlcm5hbC9ldnNlbC5oCkBAIC00LDkgKzQsMzUgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvcGVyZl9ldmVudC5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KIAogc3RydWN0IHBlcmZfY3B1X21hcDsKIHN0cnVjdCBwZXJmX3RocmVhZF9tYXA7CitzdHJ1Y3QgeHlhcnJheTsKKworLyoKKyAqIFBlciBmZCwgdG8gbWFwIGJhY2sgZnJvbSBQRVJGX1NBTVBMRV9JRCB0byBldnNlbCwgb25seSB1c2VkIHdoZW4gdGhlcmUgYXJlCisgKiBtb3JlIHRoYW4gb25lIGVudHJ5IGluIHRoZSBldmxpc3QuCisgKi8KK3N0cnVjdCBwZXJmX3NhbXBsZV9pZCB7CisJc3RydWN0IGhsaXN0X25vZGUJIG5vZGU7CisJdTY0CQkJIGlkOworCXN0cnVjdCBwZXJmX2V2c2VsCSpldnNlbDsKKyAgICAgICAvKgorCSogJ2lkeCcgd2lsbCBiZSB1c2VkIGZvciBBVVggYXJlYSBzYW1wbGluZy4gQSBzYW1wbGUgd2lsbCBoYXZlIEFVWCBhcmVhCisJKiBkYXRhIHRoYXQgd2lsbCBiZSBxdWV1ZWQgZm9yIGRlY29kaW5nLCB3aGVyZSB0aGVyZSBhcmUgc2VwYXJhdGUKKwkqIHF1ZXVlcyBmb3IgZWFjaCBDUFUgKHBlci1jcHUgdHJhY2luZykgb3IgdGFzayAocGVyLXRocmVhZCB0cmFjaW5nKS4KKwkqIFRoZSBzYW1wbGUgSUQgY2FuIGJlIHVzZWQgdG8gbG9va3VwICdpZHgnIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IHRoZQorCSogcXVldWUgbnVtYmVyLgorCSovCisJaW50CQkJIGlkeDsKKwlpbnQJCQkgY3B1OworCXBpZF90CQkJIHRpZDsKKworCS8qIEhvbGRzIHRvdGFsIElEIHBlcmlvZCB2YWx1ZSBmb3IgUEVSRl9TQU1QTEVfUkVBRCBwcm9jZXNzaW5nLiAqLworCXU2NAkJCSBwZXJpb2Q7Cit9OwogCiBzdHJ1Y3QgcGVyZl9ldnNlbCB7CiAJc3RydWN0IGxpc3RfaGVhZAkgbm9kZTsKQEAgLTE1LDkgKzQxLDEzIEBAIHN0cnVjdCBwZXJmX2V2c2VsIHsKIAlzdHJ1Y3QgcGVyZl9jcHVfbWFwCSpvd25fY3B1czsKIAlzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwCSp0aHJlYWRzOwogCXN0cnVjdCB4eWFycmF5CQkqZmQ7CisJc3RydWN0IHh5YXJyYXkJCSpzYW1wbGVfaWQ7CisJdTY0CQkJKmlkOworCXUzMgkJCSBpZHM7CiAKIAkvKiBwYXJzZSBtb2RpZmllciBoZWxwZXIgKi8KIAlpbnQJCQkgbnJfbWVtYmVyczsKKwlib29sCQkJIHN5c3RlbV93aWRlOwogfTsKIAogaW50IHBlcmZfZXZzZWxfX2FsbG9jX2ZkKHN0cnVjdCBwZXJmX2V2c2VsICpldnNlbCwgaW50IG5jcHVzLCBpbnQgbnRocmVhZHMpOwpAQCAtMjYsNCArNTYsNyBAQCB2b2lkIHBlcmZfZXZzZWxfX2ZyZWVfZmQoc3RydWN0IHBlcmZfZXZzZWwgKmV2c2VsKTsKIGludCBwZXJmX2V2c2VsX19yZWFkX3NpemUoc3RydWN0IHBlcmZfZXZzZWwgKmV2c2VsKTsKIGludCBwZXJmX2V2c2VsX19hcHBseV9maWx0ZXIoc3RydWN0IHBlcmZfZXZzZWwgKmV2c2VsLCBjb25zdCBjaGFyICpmaWx0ZXIpOwogCitpbnQgcGVyZl9ldnNlbF9fYWxsb2NfaWQoc3RydWN0IHBlcmZfZXZzZWwgKmV2c2VsLCBpbnQgbmNwdXMsIGludCBudGhyZWFkcyk7Cit2b2lkIHBlcmZfZXZzZWxfX2ZyZWVfaWQoc3RydWN0IHBlcmZfZXZzZWwgKmV2c2VsKTsKKwogI2VuZGlmIC8qIF9fTElCUEVSRl9JTlRFUk5BTF9FVlNFTF9IICovCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2xpYi9pbmNsdWRlL2ludGVybmFsL2xpYi5oIGIvdG9vbHMvcGVyZi9saWIvaW5jbHVkZS9pbnRlcm5hbC9saWIuaAppbmRleCAwYjU2ZjEyLi41MTc1ZDQ5IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2xpYi9pbmNsdWRlL2ludGVybmFsL2xpYi5oCisrKyBiL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvaW50ZXJuYWwvbGliLmgKQEAgLTIsNyArMiw5IEBACiAjaWZuZGVmIF9fTElCUEVSRl9JTlRFUk5BTF9MSUJfSAogI2RlZmluZSBfX0xJQlBFUkZfSU5URVJOQUxfTElCX0gKIAotI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCitleHRlcm4gdW5zaWduZWQgaW50IHBhZ2Vfc2l6ZTsKIAogc3NpemVfdCByZWFkbihpbnQgZmQsIHZvaWQgKmJ1Ziwgc2l6ZV90IG4pOwogc3NpemVfdCB3cml0ZW4oaW50IGZkLCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBuKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvaW50ZXJuYWwvbW1hcC5oIGIvdG9vbHMvcGVyZi9saWIvaW5jbHVkZS9pbnRlcm5hbC9tbWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmExZTUxOQotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvaW50ZXJuYWwvbW1hcC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisjaWZuZGVmIF9fTElCUEVSRl9JTlRFUk5BTF9NTUFQX0gKKyNkZWZpbmUgX19MSUJQRVJGX0lOVEVSTkFMX01NQVBfSAorCisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWZjb3VudC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorCisvKiBwZXJmIHNhbXBsZSBoYXMgMTYgYml0cyBzaXplIGxpbWl0ICovCisjZGVmaW5lIFBFUkZfU0FNUExFX01BWF9TSVpFICgxIDw8IDE2KQorCisvKioKKyAqIHN0cnVjdCBwZXJmX21tYXAgLSBwZXJmJ3MgcmluZyBidWZmZXIgbW1hcCBkZXRhaWxzCisgKgorICogQHJlZmNudCAtIGUuZy4gY29kZSB1c2luZyBQRVJGX0VWRU5UX0lPQ19TRVRfT1VUUFVUIHRvIHNoYXJlIHRoaXMKKyAqLworc3RydWN0IHBlcmZfbW1hcCB7CisJdm9pZAkJKmJhc2U7CisJaW50CQkgbWFzazsKKwlpbnQJCSBmZDsKKwlpbnQJCSBjcHU7CisJcmVmY291bnRfdAkgcmVmY250OworCXU2NAkJIHByZXY7CisJdTY0CQkgc3RhcnQ7CisJdTY0CQkgZW5kOworCWJvb2wJCSBvdmVyd3JpdGU7CisJdTY0CQkgZmx1c2g7CisJY2hhcgkJIGV2ZW50X2NvcHlbUEVSRl9TQU1QTEVfTUFYX1NJWkVdIF9fYWxpZ25lZCg4KTsKK307CisKKyNlbmRpZiAvKiBfX0xJQlBFUkZfSU5URVJOQUxfTU1BUF9IICovCmRpZmYgLS1naXQgYS90b29scy9wZXJmL2xpYi9pbmNsdWRlL3BlcmYvY29yZS5oIGIvdG9vbHMvcGVyZi9saWIvaW5jbHVkZS9wZXJmL2NvcmUuaAppbmRleCBjMzQxYTdiLi5jZmQ3MGU3IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2xpYi9pbmNsdWRlL3BlcmYvY29yZS5oCisrKyBiL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvcGVyZi9jb3JlLmgKQEAgLTE3LDYgKzE3LDYgQEAgZW51bSBsaWJwZXJmX3ByaW50X2xldmVsIHsKIHR5cGVkZWYgaW50ICgqbGlicGVyZl9wcmludF9mbl90KShlbnVtIGxpYnBlcmZfcHJpbnRfbGV2ZWwgbGV2ZWwsCiAJCQkJICBjb25zdCBjaGFyICosIHZhX2xpc3QgYXApOwogCi1MSUJQRVJGX0FQSSB2b2lkIGxpYnBlcmZfc2V0X3ByaW50KGxpYnBlcmZfcHJpbnRfZm5fdCBmbik7CitMSUJQRVJGX0FQSSB2b2lkIGxpYnBlcmZfaW5pdChsaWJwZXJmX3ByaW50X2ZuX3QgZm4pOwogCiAjZW5kaWYgLyogX19MSUJQRVJGX0NPUkVfSCAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9saWIvaW5jbHVkZS9wZXJmL2NwdW1hcC5oIGIvdG9vbHMvcGVyZi9saWIvaW5jbHVkZS9wZXJmL2NwdW1hcC5oCmluZGV4IDhhYTk5NWMuLmFjOWFhNDkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvcGVyZi9jcHVtYXAuaAorKysgYi90b29scy9wZXJmL2xpYi9pbmNsdWRlL3BlcmYvY3B1bWFwLmgKQEAgLTE2LDYgKzE2LDcgQEAgTElCUEVSRl9BUEkgdm9pZCBwZXJmX2NwdV9tYXBfX3B1dChzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXApOwogTElCUEVSRl9BUEkgaW50IHBlcmZfY3B1X21hcF9fY3B1KGNvbnN0IHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsIGludCBpZHgpOwogTElCUEVSRl9BUEkgaW50IHBlcmZfY3B1X21hcF9fbnIoY29uc3Qgc3RydWN0IHBlcmZfY3B1X21hcCAqY3B1cyk7CiBMSUJQRVJGX0FQSSBib29sIHBlcmZfY3B1X21hcF9fZW1wdHkoY29uc3Qgc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwKTsKK0xJQlBFUkZfQVBJIGludCBwZXJmX2NwdV9tYXBfX21heChzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXApOwogCiAjZGVmaW5lIHBlcmZfY3B1X21hcF9fZm9yX2VhY2hfY3B1KGNwdSwgaWR4LCBjcHVzKQkJXAogCWZvciAoKGlkeCkgPSAwLCAoY3B1KSA9IHBlcmZfY3B1X21hcF9fY3B1KGNwdXMsIGlkeCk7CVwKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvcGVyZi9ldmxpc3QuaCBiL3Rvb2xzL3BlcmYvbGliL2luY2x1ZGUvcGVyZi9ldmxpc3QuaAppbmRleCAzODM2NWY4Li44YTJjZTA3IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2xpYi9pbmNsdWRlL3BlcmYvZXZsaXN0LmgKKysrIGIvdG9vbHMvcGVyZi9saWIvaW5jbHVkZS9wZXJmL2V2bGlzdC5oCkBAIC0zMSw1ICszMSw2IEBAIExJQlBFUkZfQVBJIHZvaWQgcGVyZl9ldmxpc3RfX2Rpc2FibGUoc3RydWN0IHBlcmZfZXZsaXN0ICpldmxpc3QpOwogTElCUEVSRl9BUEkgdm9pZCBwZXJmX2V2bGlzdF9fc2V0X21hcHMoc3RydWN0IHBlcmZfZXZsaXN0ICpldmxpc3QsCiAJCQkJICAgICAgIHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsCiAJCQkJICAgICAgIHN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHMpOworTElCUEVSRl9BUEkgaW50IHBlcmZfZXZsaXN0X19wb2xsKHN0cnVjdCBwZXJmX2V2bGlzdCAqZXZsaXN0LCBpbnQgdGltZW91dCk7CiAKICNlbmRpZiAvKiBfX0xJQlBFUkZfRVZMSVNUX0ggKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvbGliL2xpYi5jIGIvdG9vbHMvcGVyZi9saWIvbGliLmMKaW5kZXggMmE4MTgxOS4uMTg2NTg5MyAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9saWIvbGliLmMKKysrIGIvdG9vbHMvcGVyZi9saWIvbGliLmMKQEAgLTUsNiArNSw4IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+CiAKK3Vuc2lnbmVkIGludCBwYWdlX3NpemU7CisKIHN0YXRpYyBzc2l6ZV90IGlvbihib29sIGlzX3JlYWQsIGludCBmZCwgdm9pZCAqYnVmLCBzaXplX3QgbikKIHsKIAl2b2lkICpidWZfc3RhcnQgPSBidWY7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2xpYi9saWJwZXJmLm1hcCBiL3Rvb2xzL3BlcmYvbGliL2xpYnBlcmYubWFwCmluZGV4IGRjNGQ2NjMuLmFiOGRiZGUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvbGliL2xpYnBlcmYubWFwCisrKyBiL3Rvb2xzL3BlcmYvbGliL2xpYnBlcmYubWFwCkBAIC0xLDYgKzEsNiBAQAogTElCUEVSRl8wLjAuMSB7CiAJZ2xvYmFsOgotCQlsaWJwZXJmX3NldF9wcmludDsKKwkJbGlicGVyZl9pbml0OwogCQlwZXJmX2NwdV9tYXBfX2R1bW15X25ldzsKIAkJcGVyZl9jcHVfbWFwX19nZXQ7CiAJCXBlcmZfY3B1X21hcF9fcHV0OwpAQCAtOSw2ICs5LDcgQEAKIAkJcGVyZl9jcHVfbWFwX19ucjsKIAkJcGVyZl9jcHVfbWFwX19jcHU7CiAJCXBlcmZfY3B1X21hcF9fZW1wdHk7CisJCXBlcmZfY3B1X21hcF9fbWF4OwogCQlwZXJmX3RocmVhZF9tYXBfX25ld19kdW1teTsKIAkJcGVyZl90aHJlYWRfbWFwX19zZXRfcGlkOwogCQlwZXJmX3RocmVhZF9tYXBfX2NvbW07CkBAIC0zOCw2ICszOSw3IEBACiAJCXBlcmZfZXZsaXN0X19yZW1vdmU7CiAJCXBlcmZfZXZsaXN0X19uZXh0OwogCQlwZXJmX2V2bGlzdF9fc2V0X21hcHM7CisJCXBlcmZfZXZsaXN0X19wb2xsOwogCWxvY2FsOgogCQkqOwogfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvbGliL3Rlc3RzL3Rlc3QtY3B1bWFwLmMgYi90b29scy9wZXJmL2xpYi90ZXN0cy90ZXN0LWNwdW1hcC5jCmluZGV4IDc2YTQzY2YuLmFhMzRjMjBkIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2xpYi90ZXN0cy90ZXN0LWNwdW1hcC5jCisrKyBiL3Rvb2xzL3BlcmYvbGliL3Rlc3RzL3Rlc3QtY3B1bWFwLmMKQEAgLTEsMTMgKzEsMjMgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxwZXJmL2NwdW1hcC5oPgogI2luY2x1ZGUgPGludGVybmFsL3Rlc3RzLmg+CiAKK3N0YXRpYyBpbnQgbGlicGVyZl9wcmludChlbnVtIGxpYnBlcmZfcHJpbnRfbGV2ZWwgbGV2ZWwsCisJCQkgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwKQoreworCXJldHVybiB2ZnByaW50ZihzdGRlcnIsIGZtdCwgYXApOworfQorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHBlcmZfY3B1X21hcCAqY3B1czsKIAogCV9fVF9TVEFSVDsKIAorCWxpYnBlcmZfaW5pdChsaWJwZXJmX3ByaW50KTsKKwogCWNwdXMgPSBwZXJmX2NwdV9tYXBfX2R1bW15X25ldygpOwogCWlmICghY3B1cykKIAkJcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9saWIvdGVzdHMvdGVzdC1ldmxpc3QuYyBiL3Rvb2xzL3BlcmYvbGliL3Rlc3RzL3Rlc3QtZXZsaXN0LmMKaW5kZXggNGUxNDA3Zi4uZTZiMmFiMiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9saWIvdGVzdHMvdGVzdC1ldmxpc3QuYworKysgYi90b29scy9wZXJmL2xpYi90ZXN0cy90ZXN0LWV2bGlzdC5jCkBAIC0xLDQgKzEsNiBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgogI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4KICNpbmNsdWRlIDxwZXJmL2NwdW1hcC5oPgogI2luY2x1ZGUgPHBlcmYvdGhyZWFkbWFwLmg+CkBAIC02LDYgKzgsMTIgQEAKICNpbmNsdWRlIDxwZXJmL2V2c2VsLmg+CiAjaW5jbHVkZSA8aW50ZXJuYWwvdGVzdHMuaD4KIAorc3RhdGljIGludCBsaWJwZXJmX3ByaW50KGVudW0gbGlicGVyZl9wcmludF9sZXZlbCBsZXZlbCwKKwkJCSBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApCit7CisJcmV0dXJuIHZmcHJpbnRmKHN0ZGVyciwgZm10LCBhcCk7Cit9CisKIHN0YXRpYyBpbnQgdGVzdF9zdGF0X2NwdSh2b2lkKQogewogCXN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXM7CkBAIC0xNzcsNiArMTg1LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCV9fVF9TVEFSVDsKIAorCWxpYnBlcmZfaW5pdChsaWJwZXJmX3ByaW50KTsKKwogCXRlc3Rfc3RhdF9jcHUoKTsKIAl0ZXN0X3N0YXRfdGhyZWFkKCk7CiAJdGVzdF9zdGF0X3RocmVhZF9lbmFibGUoKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvbGliL3Rlc3RzL3Rlc3QtZXZzZWwuYyBiL3Rvb2xzL3BlcmYvbGliL3Rlc3RzL3Rlc3QtZXZzZWwuYwppbmRleCAyYzY0OGZlLi4xYjZjNDI4IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2xpYi90ZXN0cy90ZXN0LWV2c2VsLmMKKysrIGIvdG9vbHMvcGVyZi9saWIvdGVzdHMvdGVzdC1ldnNlbC5jCkBAIC0xLDEwICsxLDE4IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8bGludXgvcGVyZl9ldmVudC5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAjaW5jbHVkZSA8cGVyZi90aHJlYWRtYXAuaD4KICNpbmNsdWRlIDxwZXJmL2V2c2VsLmg+CiAjaW5jbHVkZSA8aW50ZXJuYWwvdGVzdHMuaD4KIAorc3RhdGljIGludCBsaWJwZXJmX3ByaW50KGVudW0gbGlicGVyZl9wcmludF9sZXZlbCBsZXZlbCwKKwkJCSBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApCit7CisJcmV0dXJuIHZmcHJpbnRmKHN0ZGVyciwgZm10LCBhcCk7Cit9CisKIHN0YXRpYyBpbnQgdGVzdF9zdGF0X2NwdSh2b2lkKQogewogCXN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXM7CkBAIC0xMTYsNiArMTI0LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCV9fVF9TVEFSVDsKIAorCWxpYnBlcmZfaW5pdChsaWJwZXJmX3ByaW50KTsKKwogCXRlc3Rfc3RhdF9jcHUoKTsKIAl0ZXN0X3N0YXRfdGhyZWFkKCk7CiAJdGVzdF9zdGF0X3RocmVhZF9lbmFibGUoKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvbGliL3Rlc3RzL3Rlc3QtdGhyZWFkbWFwLmMgYi90b29scy9wZXJmL2xpYi90ZXN0cy90ZXN0LXRocmVhZG1hcC5jCmluZGV4IDEwYTRmNGMuLjhjNWY0NzIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvbGliL3Rlc3RzL3Rlc3QtdGhyZWFkbWFwLmMKKysrIGIvdG9vbHMvcGVyZi9saWIvdGVzdHMvdGVzdC10aHJlYWRtYXAuYwpAQCAtMSwxMyArMSwyMyBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHBlcmYvdGhyZWFkbWFwLmg+CiAjaW5jbHVkZSA8aW50ZXJuYWwvdGVzdHMuaD4KIAorc3RhdGljIGludCBsaWJwZXJmX3ByaW50KGVudW0gbGlicGVyZl9wcmludF9sZXZlbCBsZXZlbCwKKwkJCSBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApCit7CisJcmV0dXJuIHZmcHJpbnRmKHN0ZGVyciwgZm10LCBhcCk7Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzOwogCiAJX19UX1NUQVJUOwogCisJbGlicGVyZl9pbml0KGxpYnBlcmZfcHJpbnQpOworCiAJdGhyZWFkcyA9IHBlcmZfdGhyZWFkX21hcF9fbmV3X2R1bW15KCk7CiAJaWYgKCF0aHJlYWRzKQogCQlyZXR1cm4gLTE7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3BlcmYuYyBiL3Rvb2xzL3BlcmYvcGVyZi5jCmluZGV4IDExOTNiOTIzLi4yN2Y5NGIwIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3BlcmYuYworKysgYi90b29scy9wZXJmL3BlcmYuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgInV0aWwvYnVpbGQtaWQuaCIKICNpbmNsdWRlICJ1dGlsL2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbC9lbnYuaCIKKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4gLy8gcGFnZV9zaXplCiAjaW5jbHVkZSA8c3ViY21kL2V4ZWMtY21kLmg+CiAjaW5jbHVkZSAidXRpbC9jb25maWcuaCIKICNpbmNsdWRlIDxzdWJjbWQvcnVuLWNvbW1hbmQuaD4KQEAgLTIwLDExICsyMSwxMiBAQAogI2luY2x1ZGUgInV0aWwvYnBmLWxvYWRlci5oIgogI2luY2x1ZGUgInV0aWwvZGVidWcuaCIKICNpbmNsdWRlICJ1dGlsL2V2ZW50LmgiCi0jaW5jbHVkZSAidXRpbC91dGlsLmgiCisjaW5jbHVkZSAidXRpbC91dGlsLmgiIC8vIHVzYWdlKCkKICNpbmNsdWRlICJ1aS91aS5oIgogI2luY2x1ZGUgInBlcmYtc3lzLmgiCiAjaW5jbHVkZSA8YXBpL2ZzL2ZzLmg+CiAjaW5jbHVkZSA8YXBpL2ZzL3RyYWNpbmdfcGF0aC5oPgorI2luY2x1ZGUgPHBlcmYvY29yZS5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8cHRocmVhZC5oPgogI2luY2x1ZGUgPHNpZ25hbC5oPgpAQCAtNDI4LDYgKzQzMCwxMiBAQCB2b2lkIHB0aHJlYWRfX3VuYmxvY2tfc2lnd2luY2godm9pZCkKIAlwdGhyZWFkX3NpZ21hc2soU0lHX1VOQkxPQ0ssICZzZXQsIE5VTEwpOwogfQogCitzdGF0aWMgaW50IGxpYnBlcmZfcHJpbnQoZW51bSBsaWJwZXJmX3ByaW50X2xldmVsIGxldmVsLAorCQkJIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCkKK3sKKwlyZXR1cm4gZXByaW50ZihsZXZlbCwgdmVyYm9zZSwgZm10LCBhcCk7Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIHsKIAlpbnQgZXJyOwpAQCAtNDM4LDggKzQ0Niw3IEBAIGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAlleGVjX2NtZF9pbml0KCJwZXJmIiwgUFJFRklYLCBQRVJGX0VYRUNfUEFUSCwgRVhFQ19QQVRIX0VOVklST05NRU5UKTsKIAlwYWdlcl9pbml0KFBFUkZfUEFHRVJfRU5WSVJPTk1FTlQpOwogCi0JLyogVGhlIHBhZ2Vfc2l6ZSBpcyBwbGFjZWQgaW4gdXRpbCBvYmplY3QuICovCi0JcGFnZV9zaXplID0gc3lzY29uZihfU0NfUEFHRV9TSVpFKTsKKwlsaWJwZXJmX2luaXQobGlicGVyZl9wcmludCk7CiAKIAljbWQgPSBleHRyYWN0X2FyZ3YwX3BhdGgoYXJndlswXSk7CiAJaWYgKCFjbWQpCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3BtdS1ldmVudHMvUkVBRE1FIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL1JFQURNRQppbmRleCBlNjJiMDliLi5kZTdlZmEyIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3BtdS1ldmVudHMvUkVBRE1FCisrKyBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9SRUFETUUKQEAgLTMwLDkgKzMwLDkgQEAKIEFsbCB0aGUgdG9waWMgSlNPTiBmaWxlcyBmb3IgYSBDUFUgbW9kZWwvZmFtaWx5IHNob3VsZCBiZSBpbiBhIHNlcGFyYXRlCiBzdWIgZGlyZWN0b3J5LiBUaHVzIGZvciB0aGUgU2lsdmVybW9udCBYODYgQ1BVOgogCi0JJCBscyB0b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC94ODYvU2lsdmVybW9udF9jb3JlCi0JQ2FjaGUuanNvbiAJTWVtb3J5Lmpzb24gCVZpcnR1YWwtTWVtb3J5Lmpzb24KLQlGcm9udGVuZC5qc29uIAlQaXBlbGluZS5qc29uCisJJCBscyB0b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC94ODYvc2lsdmVybW9udAorCWNhY2hlLmpzb24gICAgIG1lbW9yeS5qc29uICAgIHZpcnR1YWwtbWVtb3J5Lmpzb24KKwlmcm9udGVuZC5qc29uICBwaXBlbGluZS5qc29uCiAKIFRoZSBKU09OcyBmb2xkZXIgZm9yIGEgQ1BVIG1vZGVsL2ZhbWlseSBtYXkgYmUgcGxhY2VkIGluIHRoZSByb290IGFyY2gKIGZvbGRlciwgb3IgbWF5IGJlIHBsYWNlZCBpbiBhIHZlbmRvciBzdWItZm9sZGVyIHVuZGVyIHRoZSBhcmNoIGZvbGRlcgpAQCAtOTQsNyArOTQsNyBAQAogCiB3aGVyZSAncG1fMXBsdXNfcHBjX2NtcGwnIGlzIGEgUG93ZXI4IFBNVSBldmVudC4KIAotSG93ZXZlciBzb21lIGVycm9ycyBpbiBwcm9jZXNzaW5nIG1heSBjYXVzZSB0aGUgcGVyZiBidWlsZCB0byBmYWlsLgorSG93ZXZlciBzb21lIGVycm9ycyBpbiBwcm9jZXNzaW5nIG1heSBjYXVzZSB0aGUgYWxpYXMgYnVpbGQgdG8gZmFpbC4KIAogTWFwZmlsZSBmb3JtYXQKID09PT09PT09PT09PT09PQpAQCAtMTE5LDcgKzExOSw3IEBACiAKIAlIZWFkZXIgbGluZQogCQlUaGUgaGVhZGVyIGxpbmUgaXMgdGhlIGZpcnN0IGxpbmUgaW4gdGhlIGZpbGUsIHdoaWNoIGlzCi0JCWFsd2F5cyBfSUdOT1JFRF8uIEl0IGNhbiBlbXB0eS4KKwkJYWx3YXlzIF9JR05PUkVEXy4gSXQgY2FuIGJlIGVtcHR5LgogCiAJQ1BVSUQ6CiAJCUNQVUlEIGlzIGFuIGFyY2gtc3BlY2lmaWMgY2hhciBzdHJpbmcsIHRoYXQgY2FuIGJlIHVzZWQKQEAgLTEzOCwxNSArMTM4LDE1IEBACiAJCWZpbGVzLCByZWxhdGl2ZSB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIG1hcGZpbGUuY3N2CiAKIAlUeXBlOgotCQlpbmRpY2F0ZXMgd2hldGhlciB0aGUgZXZlbnRzIG9yICJjb3JlIiBvciAidW5jb3JlIiBldmVudHMuCisJCWluZGljYXRlcyB3aGV0aGVyIHRoZSBldmVudHMgYXJlICJjb3JlIiBvciAidW5jb3JlIiBldmVudHMuCiAKIAogCUVnOgogCi0JJCBncmVwIFNpbHZlcm1vbnQgdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gveDg2L21hcGZpbGUuY3N2Ci0JR2VudWluZUludGVsLTYtMzcsVjEzLFNpbHZlcm1vbnRfY29yZSxjb3JlCi0JR2VudWluZUludGVsLTYtNEQsVjEzLFNpbHZlcm1vbnRfY29yZSxjb3JlCi0JR2VudWluZUludGVsLTYtNEMsVjEzLFNpbHZlcm1vbnRfY29yZSxjb3JlCisJJCBncmVwIHNpbHZlcm1vbnQgdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gveDg2L21hcGZpbGUuY3N2CisJR2VudWluZUludGVsLTYtMzcsdjEzLHNpbHZlcm1vbnQsY29yZQorCUdlbnVpbmVJbnRlbC02LTRELHYxMyxzaWx2ZXJtb250LGNvcmUKKwlHZW51aW5lSW50ZWwtNi00Qyx2MTMsc2lsdmVybW9udCxjb3JlCiAKIAlpLmUgdGhlIHRocmVlIENQVSBtb2RlbHMgdXNlIHRoZSBKU09OIGZpbGVzIChpLmUgUE1VIGV2ZW50cykgbGlzdGVkCi0JaW4gdGhlIGRpcmVjdG9yeSAndG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gveDg2L1NpbHZlcm1vbnRfY29yZScuCisJaW4gdGhlIGRpcmVjdG9yeSAndG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gveDg2L3NpbHZlcm1vbnQnLgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvYnJhbmNoLmpzb24gYi90b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC9hcm02NC9hcm0vY29ydGV4LWE3Ni1uMS9icmFuY2guanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWU1ZDA1Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvYnJhbmNoLmpzb24KQEAgLTAsMCArMSwxNCBAQAorWworICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIk1pc3ByZWRpY3RlZCBvciBub3QgcHJlZGljdGVkIGJyYW5jaCBzcGVjdWxhdGl2ZWx5IGV4ZWN1dGVkLiBUaGlzIGV2ZW50IGNvdW50cyBhbnkgcHJlZGljdGFibGUgYnJhbmNoIGluc3RydWN0aW9uIHdoaWNoIGlzIG1pc3ByZWRpY3RlZCBlaXRoZXIgZHVlIHRvIGR5bmFtaWMgbWlzcHJlZGljdGlvbiBvciBiZWNhdXNlIHRoZSBNTVUgaXMgb2ZmIGFuZCB0aGUgYnJhbmNoZXMgYXJlIHN0YXRpY2FsbHkgcHJlZGljdGVkIG5vdCB0YWtlbi4iLAorICAgICAgICAiRXZlbnRDb2RlIjogIjB4MTAiLAorICAgICAgICAiRXZlbnROYW1lIjogIkJSX01JU19QUkVEIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiTWlzcHJlZGljdGVkIG9yIG5vdCBwcmVkaWN0ZWQgYnJhbmNoIHNwZWN1bGF0aXZlbHkgZXhlY3V0ZWQuIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiUHJlZGljdGFibGUgYnJhbmNoIHNwZWN1bGF0aXZlbHkgZXhlY3V0ZWQuIFRoaXMgZXZlbnQgY291bnRzIGFsbCBwcmVkaWN0YWJsZSBicmFuY2hlcy4iLAorICAgICAgICAiRXZlbnRDb2RlIjogIjB4MTIiLAorICAgICAgICAiRXZlbnROYW1lIjogIkJSX1BSRUQiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJQcmVkaWN0YWJsZSBicmFuY2ggc3BlY3VsYXRpdmVseSBleGVjdXRlZC4iCisgICAgfQorXQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvYnVzLmpzb24gYi90b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC9hcm02NC9hcm0vY29ydGV4LWE3Ni1uMS9idXMuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2U3MzA5Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvYnVzLmpzb24KQEAgLTAsMCArMSwyNCBAQAorWworICAgIHsKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDExIiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJDUFVfQ1lDTEVTIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiVGhlIG51bWJlciBvZiBjb3JlIGNsb2NrIGN5Y2xlcy4iCisgICAgfSwKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJCdXMgYWNjZXNzLiBUaGlzIGV2ZW50IGNvdW50cyBmb3IgZXZlcnkgYmVhdCBvZiBkYXRhIHRyYW5zZmVycmVkIG92ZXIgdGhlIGRhdGEgY2hhbm5lbHMgYmV0d2VlbiB0aGUgY29yZSBhbmQgdGhlIFNDVS4gSWYgYm90aCByZWFkIGFuZCB3cml0ZSBkYXRhIGJlYXRzIGFyZSB0cmFuc2ZlcnJlZCBvbiBhIGdpdmVuIGN5Y2xlLCB0aGlzIGV2ZW50IGlzIGNvdW50ZWQgdHdpY2Ugb24gdGhhdCBjeWNsZS4gVGhpcyBldmVudCBjb3VudHMgdGhlIHN1bSBvZiBCVVNfQUNDRVNTX1JEIGFuZCBCVVNfQUNDRVNTX1dSLiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgxOSIsCisgICAgICAgICJFdmVudE5hbWUiOiAiQlVTX0FDQ0VTUyIsCisgICAgICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkJ1cyBhY2Nlc3MuIgorICAgIH0sCisgICAgeworICAgICAgICAiRXZlbnRDb2RlIjogIjB4MUQiLAorICAgICAgICAiRXZlbnROYW1lIjogIkJVU19DWUNMRVMiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJCdXMgY3ljbGVzLiBUaGlzIGV2ZW50IGR1cGxpY2F0ZXMgQ1BVX0NZQ0xFUy4iCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAgIkJVU19BQ0NFU1NfUkQiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAgIkJVU19BQ0NFU1NfV1IiCisgICAgfQorXQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvY2FjaGUuanNvbiBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL2NhY2hlLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQ1OTQwOAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL2NhY2hlLmpzb24KQEAgLTAsMCArMSwyMDcgQEAKK1sKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJMMSBpbnN0cnVjdGlvbiBjYWNoZSByZWZpbGwuIFRoaXMgZXZlbnQgY291bnRzIGFueSBpbnN0cnVjdGlvbiBmZXRjaCB3aGljaCBtaXNzZXMgaW4gdGhlIGNhY2hlLiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgwMSIsCisgICAgICAgICJFdmVudE5hbWUiOiAiTDFJX0NBQ0hFX1JFRklMTCIsCisgICAgICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkwxIGluc3RydWN0aW9uIGNhY2hlIHJlZmlsbCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIkwxIGluc3RydWN0aW9uIFRMQiByZWZpbGwuIFRoaXMgZXZlbnQgY291bnRzIGFueSByZWZpbGwgb2YgdGhlIGluc3RydWN0aW9uIEwxIFRMQiBmcm9tIHRoZSBMMiBUTEIuIFRoaXMgaW5jbHVkZXMgcmVmaWxscyB0aGF0IHJlc3VsdCBpbiBhIHRyYW5zbGF0aW9uIGZhdWx0LiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgwMiIsCisgICAgICAgICJFdmVudE5hbWUiOiAiTDFJX1RMQl9SRUZJTEwiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJMMSBpbnN0cnVjdGlvbiBUTEIgcmVmaWxsIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiTDEgZGF0YSBjYWNoZSByZWZpbGwuIFRoaXMgZXZlbnQgY291bnRzIGFueSBsb2FkIG9yIHN0b3JlIG9wZXJhdGlvbiBvciBwYWdlIHRhYmxlIHdhbGsgYWNjZXNzIHdoaWNoIGNhdXNlcyBkYXRhIHRvIGJlIHJlYWQgZnJvbSBvdXRzaWRlIHRoZSBMMSwgaW5jbHVkaW5nIGFjY2Vzc2VzIHdoaWNoIGRvIG5vdCBhbGxvY2F0ZSBpbnRvIEwxLiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgwMyIsCisgICAgICAgICJFdmVudE5hbWUiOiAiTDFEX0NBQ0hFX1JFRklMTCIsCisgICAgICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkwxIGRhdGEgY2FjaGUgcmVmaWxsIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiTDEgZGF0YSBjYWNoZSBhY2Nlc3MuIFRoaXMgZXZlbnQgY291bnRzIGFueSBsb2FkIG9yIHN0b3JlIG9wZXJhdGlvbiBvciBwYWdlIHRhYmxlIHdhbGsgYWNjZXNzIHdoaWNoIGxvb2tzIHVwIGluIHRoZSBMMSBkYXRhIGNhY2hlLiBJbiBwYXJ0aWN1bGFyLCBhbnkgYWNjZXNzIHdoaWNoIGNvdWxkIGNvdW50IHRoZSBMMURfQ0FDSEVfUkVGSUxMIGV2ZW50IGNhdXNlcyB0aGlzIGV2ZW50IHRvIGNvdW50LiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgwNCIsCisgICAgICAgICJFdmVudE5hbWUiOiAiTDFEX0NBQ0hFIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiTDEgZGF0YSBjYWNoZSBhY2Nlc3MiCisgICAgfSwKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJMMSBkYXRhIFRMQiByZWZpbGwuIFRoaXMgZXZlbnQgY291bnRzIGFueSByZWZpbGwgb2YgdGhlIGRhdGEgTDEgVExCIGZyb20gdGhlIEwyIFRMQi4gVGhpcyBpbmNsdWRlcyByZWZpbGxzIHRoYXQgcmVzdWx0IGluIGEgdHJhbnNsYXRpb24gZmF1bHQuIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDA1IiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJMMURfVExCX1JFRklMTCIsCisgICAgICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkwxIGRhdGEgVExCIHJlZmlsbCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIkxldmVsIDEgaW5zdHJ1Y3Rpb24gY2FjaGUgYWNjZXNzIG9yIExldmVsIDAgTWFjcm8tb3AgY2FjaGUgYWNjZXNzLiBUaGlzIGV2ZW50IGNvdW50cyBhbnkgaW5zdHJ1Y3Rpb24gZmV0Y2ggd2hpY2ggYWNjZXNzZXMgdGhlIEwxIGluc3RydWN0aW9uIGNhY2hlIG9yIEwwIE1hY3JvLW9wIGNhY2hlLiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgxNCIsCisgICAgICAgICJFdmVudE5hbWUiOiAiTDFJX0NBQ0hFIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiTDEgaW5zdHJ1Y3Rpb24gY2FjaGUgYWNjZXNzIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiTDEgZGF0YSBjYWNoZSBXcml0ZS1CYWNrLiBUaGlzIGV2ZW50IGNvdW50cyBhbnkgd3JpdGUtYmFjayBvZiBkYXRhIGZyb20gdGhlIEwxIGRhdGEgY2FjaGUgdG8gTDIgb3IgTDMuIFRoaXMgY291bnRzIGJvdGggdmljdGltIGxpbmUgZXZpY3Rpb25zIGFuZCBzbm9vcHMsIGluY2x1ZGluZyBjYWNoZSBtYWludGVuYW5jZSBvcGVyYXRpb25zLiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgxNSIsCisgICAgICAgICJFdmVudE5hbWUiOiAiTDFEX0NBQ0hFX1dCIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiTDEgZGF0YSBjYWNoZSBXcml0ZS1CYWNrIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiTDIgZGF0YSBjYWNoZSBhY2Nlc3MuIFRoaXMgZXZlbnQgY291bnRzIGFueSB0cmFuc2FjdGlvbiBmcm9tIEwxIHdoaWNoIGxvb2tzIHVwIGluIHRoZSBMMiBjYWNoZSwgYW5kIGFueSB3cml0ZS1iYWNrIGZyb20gdGhlIEwxIHRvIHRoZSBMMi4gU25vb3BzIGZyb20gb3V0c2lkZSB0aGUgY29yZSBhbmQgY2FjaGUgbWFpbnRlbmFuY2Ugb3BlcmF0aW9ucyBhcmUgbm90IGNvdW50ZWQuIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDE2IiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJMMkRfQ0FDSEUiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJMMiBkYXRhIGNhY2hlIGFjY2VzcyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIkwyIGRhdGEgY2FjaGUgcmVmaWxsLiBUaGlzIGV2ZW50IGNvdW50cyBhbnkgY2FjaGVhYmxlIHRyYW5zYWN0aW9uIGZyb20gTDEgd2hpY2ggY2F1c2VzIGRhdGEgdG8gYmUgcmVhZCBmcm9tIG91dHNpZGUgdGhlIGNvcmUuIEwyIHJlZmlsbHMgY2F1c2VkIGJ5IHN0YXNoZXMgaW50byBMMiBzaG91bGQgbm90IGJlIGNvdW50ZWQiLAorICAgICAgICAiRXZlbnRDb2RlIjogIjB4MTciLAorICAgICAgICAiRXZlbnROYW1lIjogIkwyRF9DQUNIRV9SRUZJTEwiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJMMiBkYXRhIGNhY2hlIHJlZmlsbCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIkwyIGRhdGEgY2FjaGUgd3JpdGUtYmFjay4gVGhpcyBldmVudCBjb3VudHMgYW55IHdyaXRlLWJhY2sgb2YgZGF0YSBmcm9tIHRoZSBMMiBjYWNoZSB0byBvdXRzaWRlIHRoZSBjb3JlLiBUaGlzIGluY2x1ZGVzIHNub29wcyB0byB0aGUgTDIgd2hpY2ggcmV0dXJuIGRhdGEsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGV5IGNhdXNlIGFuIGludmFsaWRhdGlvbi4gSW52YWxpZGF0aW9ucyBmcm9tIHRoZSBMMiB3aGljaCBkbyBub3Qgd3JpdGUgZGF0YSBvdXRzaWRlIG9mIHRoZSBjb3JlIGFuZCBzbm9vcHMgd2hpY2ggcmV0dXJuIGRhdGEgZnJvbSB0aGUgTDEgYXJlIG5vdCBjb3VudGVkIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDE4IiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJMMkRfQ0FDSEVfV0IiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJMMiBkYXRhIGNhY2hlIHdyaXRlLWJhY2siCisgICAgfSwKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJMMiBkYXRhIGNhY2hlIGFsbG9jYXRpb24gd2l0aG91dCByZWZpbGwuIFRoaXMgZXZlbnQgY291bnRzIGFueSBmdWxsIGNhY2hlIGxpbmUgd3JpdGUgaW50byB0aGUgTDIgY2FjaGUgd2hpY2ggZG9lcyBub3QgY2F1c2UgYSBsaW5lZmlsbCwgaW5jbHVkaW5nIHdyaXRlLWJhY2tzIGZyb20gTDEgdG8gTDIgYW5kIGZ1bGwtbGluZSB3cml0ZXMgd2hpY2ggZG8gbm90IGFsbG9jYXRlIGludG8gTDEuIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDIwIiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJMMkRfQ0FDSEVfQUxMT0NBVEUiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJMMiBkYXRhIGNhY2hlIGFsbG9jYXRpb24gd2l0aG91dCByZWZpbGwiCisgICAgfSwKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJMZXZlbCAxIGRhdGEgVExCIGFjY2Vzcy4gVGhpcyBldmVudCBjb3VudHMgYW55IGxvYWQgb3Igc3RvcmUgb3BlcmF0aW9uIHdoaWNoIGFjY2Vzc2VzIHRoZSBkYXRhIEwxIFRMQi4gSWYgYm90aCBhIGxvYWQgYW5kIGEgc3RvcmUgYXJlIGV4ZWN1dGVkIG9uIGEgY3ljbGUsIHRoaXMgZXZlbnQgY291bnRzIHR3aWNlLiBUaGlzIGV2ZW50IGNvdW50cyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIE1NVSBpcyBlbmFibGVkLiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgyNSIsCisgICAgICAgICJFdmVudE5hbWUiOiAiTDFEX1RMQiIsCisgICAgICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkxldmVsIDEgZGF0YSBUTEIgYWNjZXNzLiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIkxldmVsIDEgaW5zdHJ1Y3Rpb24gVExCIGFjY2Vzcy4gVGhpcyBldmVudCBjb3VudHMgYW55IGluc3RydWN0aW9uIGZldGNoIHdoaWNoIGFjY2Vzc2VzIHRoZSBpbnN0cnVjdGlvbiBMMSBUTEIuVGhpcyBldmVudCBjb3VudHMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBNTVUgaXMgZW5hYmxlZC4iLAorICAgICAgICAiRXZlbnRDb2RlIjogIjB4MjYiLAorICAgICAgICAiRXZlbnROYW1lIjogIkwxSV9UTEIiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJMZXZlbCAxIGluc3RydWN0aW9uIFRMQiBhY2Nlc3MiCisgICAgfSwKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJUaGlzIGV2ZW50IGNvdW50cyBhbnkgZnVsbCBjYWNoZSBsaW5lIHdyaXRlIGludG8gdGhlIEwzIGNhY2hlIHdoaWNoIGRvZXMgbm90IGNhdXNlIGEgbGluZWZpbGwsIGluY2x1ZGluZyB3cml0ZS1iYWNrcyBmcm9tIEwyIHRvIEwzIGFuZCBmdWxsLWxpbmUgd3JpdGVzIHdoaWNoIGRvIG5vdCBhbGxvY2F0ZSBpbnRvIEwyIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDI5IiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJMM0RfQ0FDSEVfQUxMT0NBVEUiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJBbGxvY2F0aW9uIHdpdGhvdXQgcmVmaWxsIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiQXR0cmlidXRhYmxlIExldmVsIDMgdW5pZmllZCBjYWNoZSByZWZpbGwuIFRoaXMgZXZlbnQgY291bnRzIGZvciBhbnkgY2FjaGVhYmxlIHJlYWQgdHJhbnNhY3Rpb24gcmV0dXJuaW5nIGRhdGFmcm9tIHRoZSBTQ1UgZm9yIHdoaWNoIHRoZSBkYXRhIHNvdXJjZSB3YXMgb3V0c2lkZSB0aGUgY2x1c3Rlci4gVHJhbnNhY3Rpb25zIHN1Y2ggYXMgUmVhZFVuaXF1ZSBhcmUgY291bnRlZCBoZXJlIGFzICdyZWFkJyB0cmFuc2FjdGlvbnMsIGV2ZW4gdGhvdWdoIHRoZXkgY2FuIGJlIGdlbmVyYXRlZCBieSBzdG9yZSBpbnN0cnVjdGlvbnMuIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDJBIiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJMM0RfQ0FDSEVfUkVGSUxMIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiQXR0cmlidXRhYmxlIExldmVsIDMgdW5pZmllZCBjYWNoZSByZWZpbGwuIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiQXR0cmlidXRhYmxlIExldmVsIDMgdW5pZmllZCBjYWNoZSBhY2Nlc3MuIFRoaXMgZXZlbnQgY291bnRzIGZvciBhbnkgY2FjaGVhYmxlIHJlYWQgdHJhbnNhY3Rpb24gcmV0dXJuaW5nIGRhdGFmcm9tIHRoZSBTQ1UsIG9yIGZvciBhbnkgY2FjaGVhYmxlIHdyaXRlIHRvIHRoZSBTQ1UuIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDJCIiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJMM0RfQ0FDSEUiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJBdHRyaWJ1dGFibGUgTGV2ZWwgMyB1bmlmaWVkIGNhY2hlIGFjY2Vzcy4iCisgICAgfSwKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJBdHRyaWJ1dGFibGUgTDIgZGF0YSBvciB1bmlmaWVkIFRMQiByZWZpbGwuIFRoaXMgZXZlbnQgY291bnRzIG9uIGFueXJlZmlsbCBvZiB0aGUgTDIgVExCLCBjYXVzZWQgYnkgZWl0aGVyIGFuIGluc3RydWN0aW9uIG9yIGRhdGEgYWNjZXNzLlRoaXMgZXZlbnQgZG9lcyBub3QgY291bnQgaWYgdGhlIE1NVSBpcyBkaXNhYmxlZC4iLAorICAgICAgICAiRXZlbnRDb2RlIjogIjB4MkQiLAorICAgICAgICAiRXZlbnROYW1lIjogIkwyRF9UTEJfUkVGSUxMIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiQXR0cmlidXRhYmxlIEwyIGRhdGEgb3IgdW5pZmllZCBUTEIgcmVmaWxsIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiQXR0cmlidXRhYmxlIEwyIGRhdGEgb3IgdW5pZmllZCBUTEIgYWNjZXNzLiBUaGlzIGV2ZW50IGNvdW50cyBvbiBhbnkgYWNjZXNzIHRvIHRoZSBMMiBUTEIgKGNhdXNlZCBieSBhIHJlZmlsbCBvZiBhbnkgb2YgdGhlIEwxIFRMQnMpLiBUaGlzIGV2ZW50IGRvZXMgbm90IGNvdW50IGlmIHRoZSBNTVUgaXMgZGlzYWJsZWQuIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDJGIiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJMMkRfVExCIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiQXR0cmlidXRhYmxlIEwyIGRhdGEgb3IgdW5pZmllZCBUTEIgYWNjZXNzIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIGRhdGEgVExCIHRoYXQgY2F1c2VkIGEgcGFnZSB0YWJsZSB3YWxrLiBUaGlzIGV2ZW50IGNvdW50cyBvbiBhbnkgZGF0YSBhY2Nlc3Mgd2hpY2ggY2F1c2VzIEwyRF9UTEJfUkVGSUxMIHRvIGNvdW50LiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgzNCIsCisgICAgICAgICJFdmVudE5hbWUiOiAiRFRMQl9XQUxLIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIGRhdGEgVExCIHRoYXQgY2F1c2VkIGEgcGFnZSB0YWJsZSB3YWxrLiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIkFjY2VzcyB0byBpbnN0cnVjdGlvbiBUTEIgdGhhdCBjYXVzZWQgYSBwYWdlIHRhYmxlIHdhbGsuIFRoaXMgZXZlbnQgY291bnRzIG9uIGFueSBpbnN0cnVjdGlvbiBhY2Nlc3Mgd2hpY2ggY2F1c2VzIEwyRF9UTEJfUkVGSUxMIHRvIGNvdW50LiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgzNSIsCisgICAgICAgICJFdmVudE5hbWUiOiAiSVRMQl9XQUxLIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIGluc3RydWN0aW9uIFRMQiB0aGF0IGNhdXNlZCBhIHBhZ2UgdGFibGUgd2Fsay4iCisgICAgfSwKKyAgICB7CisgICAgICAgICJFdmVudENvZGUiOiAiMHgzNiIsCisgICAgICAgICJFdmVudE5hbWUiOiAiTExfQ0FDSEVfUkQiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJMYXN0IGxldmVsIGNhY2hlIGFjY2VzcywgcmVhZCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDM3IiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJMTF9DQUNIRV9NSVNTX1JEIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiTGFzdCBsZXZlbCBjYWNoZSBtaXNzLCByZWFkIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkwxRF9DQUNIRV9JTlZBTCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMURfQ0FDSEVfUkQiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiTDFEX0NBQ0hFX1JFRklMTF9JTk5FUiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMURfQ0FDSEVfUkVGSUxMX09VVEVSIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkwxRF9DQUNIRV9SRUZJTExfUkQiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiTDFEX0NBQ0hFX1JFRklMTF9XUiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMURfQ0FDSEVfV0JfQ0xFQU4iCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiTDFEX0NBQ0hFX1dCX1ZJQ1RJTSIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMURfQ0FDSEVfV1IiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiTDFEX1RMQl9SRCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMURfVExCX1JFRklMTF9SRCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMURfVExCX1JFRklMTF9XUiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMURfVExCX1dSIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkwyRF9DQUNIRV9JTlZBTCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMkRfQ0FDSEVfUkQiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiTDJEX0NBQ0hFX1JFRklMTF9SRCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMkRfQ0FDSEVfUkVGSUxMX1dSIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkwyRF9DQUNIRV9XQl9DTEVBTiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMkRfQ0FDSEVfV0JfVklDVElNIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkwyRF9DQUNIRV9XUiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMMkRfVExCX1JEIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkwyRF9UTEJfUkVGSUxMX1JEIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkwyRF9UTEJfUkVGSUxMX1dSIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkwyRF9UTEJfV1IiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiTDNEX0NBQ0hFX1JEIgorICAgIH0KK10KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL2V4Y2VwdGlvbi5qc29uIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvZXhjZXB0aW9uLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThkMjljOAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL2V4Y2VwdGlvbi5qc29uCkBAIC0wLDAgKzEsNTIgQEAKK1sKKyAgICB7CisgICAgICAgICJFdmVudENvZGUiOiAiMHgwOSIsCisgICAgICAgICJFdmVudE5hbWUiOiAiRVhDX1RBS0VOIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiRXhjZXB0aW9uIHRha2VuLiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIkxvY2FsIG1lbW9yeSBlcnJvci4gVGhpcyBldmVudCBjb3VudHMgYW55IGNvcnJlY3RhYmxlIG9yIHVuY29ycmVjdGFibGUgbWVtb3J5IGVycm9yIChFQ0Mgb3IgcGFyaXR5KSBpbiB0aGUgcHJvdGVjdGVkIGNvcmUgUkFNcyIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgxQSIsCisgICAgICAgICJFdmVudE5hbWUiOiAiTUVNT1JZX0VSUk9SIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiTG9jYWwgbWVtb3J5IGVycm9yLiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJFWENfREFCT1JUIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkVYQ19GSVEiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiRVhDX0hWQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJFWENfSVJRIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkVYQ19QQUJPUlQiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiRVhDX1NNQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJFWENfU1ZDIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkVYQ19UUkFQX0RBQk9SVCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJFWENfVFJBUF9GSVEiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiRVhDX1RSQVBfSVJRIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkVYQ19UUkFQX09USEVSIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkVYQ19UUkFQX1BBQk9SVCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJFWENfVU5ERUYiCisgICAgfQorXQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvaW5zdHJ1Y3Rpb24uanNvbiBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL2luc3RydWN0aW9uLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE1M2FjNwotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL2luc3RydWN0aW9uLmpzb24KQEAgLTAsMCArMSwxMDggQEAKK1sKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJTb2Z0d2FyZSBpbmNyZW1lbnQuIEluc3RydWN0aW9uIGFyY2hpdGVjdHVyYWxseSBleGVjdXRlZCAoY29uZGl0aW9uIGNvZGUgY2hlY2sgcGFzcykuIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDAwIiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJTV19JTkNSIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiU29mdHdhcmUgaW5jcmVtZW50LiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIkluc3RydWN0aW9uIGFyY2hpdGVjdHVyYWxseSBleGVjdXRlZC4gVGhpcyBldmVudCBjb3VudHMgYWxsIHJldGlyZWQgaW5zdHJ1Y3Rpb25zLCBpbmNsdWRpbmcgdGhvc2UgdGhhdCBmYWlsIHRoZWlyIGNvbmRpdGlvbiBjaGVjay4iLAorICAgICAgICAiRXZlbnRDb2RlIjogIjB4MDgiLAorICAgICAgICAiRXZlbnROYW1lIjogIklOU1RfUkVUSVJFRCIsCisgICAgICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkluc3RydWN0aW9uIGFyY2hpdGVjdHVyYWxseSBleGVjdXRlZC4iCisgICAgfSwKKyAgICB7CisgICAgICAgICJFdmVudENvZGUiOiAiMHgwQSIsCisgICAgICAgICJFdmVudE5hbWUiOiAiRVhDX1JFVFVSTiIsCisgICAgICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkluc3RydWN0aW9uIGFyY2hpdGVjdHVyYWxseSBleGVjdXRlZCwgY29uZGl0aW9uIGNvZGUgY2hlY2sgcGFzcywgZXhjZXB0aW9uIHJldHVybi4iCisgICAgfSwKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJJbnN0cnVjdGlvbiBhcmNoaXRlY3R1cmFsbHkgZXhlY3V0ZWQsIGNvbmRpdGlvbiBjb2RlIGNoZWNrIHBhc3MsIHdyaXRlIHRvIENPTlRFWFRJRFIuIFRoaXMgZXZlbnQgb25seSBjb3VudHMgd3JpdGVzIHRvIENPTlRFWFRJRFIgaW4gQUFyY2gzMiBzdGF0ZSwgYW5kIHZpYSB0aGUgQ09OVEVYVElEUl9FTDEgbW5lbW9uaWMgaW4gQUFyY2g2NCBzdGF0ZS4iLAorICAgICAgICAiRXZlbnRDb2RlIjogIjB4MEIiLAorICAgICAgICAiRXZlbnROYW1lIjogIkNJRF9XUklURV9SRVRJUkVEIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiSW5zdHJ1Y3Rpb24gYXJjaGl0ZWN0dXJhbGx5IGV4ZWN1dGVkLCBjb25kaXRpb24gY29kZSBjaGVjayBwYXNzLCB3cml0ZSB0byBDT05URVhUSURSLiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDFCIiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJJTlNUX1NQRUMiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJPcGVyYXRpb24gc3BlY3VsYXRpdmVseSBleGVjdXRlZCIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIkluc3RydWN0aW9uIGFyY2hpdGVjdHVyYWxseSBleGVjdXRlZCwgY29uZGl0aW9uIGNvZGUgY2hlY2sgcGFzcywgd3JpdGUgdG8gVFRCUi4gVGhpcyBldmVudCBvbmx5IGNvdW50cyB3cml0ZXMgdG8gVFRCUjAvVFRCUjEgaW4gQUFyY2gzMiBzdGF0ZSBhbmQgVFRCUjBfRUwxL1RUQlIxX0VMMSBpbiBBQXJjaDY0IHN0YXRlLiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgxQyIsCisgICAgICAgICJFdmVudE5hbWUiOiAiVFRCUl9XUklURV9SRVRJUkVEIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiSW5zdHJ1Y3Rpb24gYXJjaGl0ZWN0dXJhbGx5IGV4ZWN1dGVkLCBjb25kaXRpb24gY29kZSBjaGVjayBwYXNzLCB3cml0ZSB0byBUVEJSIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiSW5zdHJ1Y3Rpb24gYXJjaGl0ZWN0dXJhbGx5IGV4ZWN1dGVkLCBicmFuY2guIFRoaXMgZXZlbnQgY291bnRzIGFsbCBicmFuY2hlcywgdGFrZW4gb3Igbm90LiBUaGlzIGV4Y2x1ZGVzIGV4Y2VwdGlvbiBlbnRyaWVzLCBkZWJ1ZyBlbnRyaWVzIGFuZCBDQ0ZBSUwgYnJhbmNoZXMuIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDIxIiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJCUl9SRVRJUkVEIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiSW5zdHJ1Y3Rpb24gYXJjaGl0ZWN0dXJhbGx5IGV4ZWN1dGVkLCBicmFuY2guIgorICAgIH0sCisgICAgeworICAgICAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiSW5zdHJ1Y3Rpb24gYXJjaGl0ZWN0dXJhbGx5IGV4ZWN1dGVkLCBtaXNwcmVkaWN0ZWQgYnJhbmNoLiBUaGlzIGV2ZW50IGNvdW50cyBhbnkgYnJhbmNoIGNvdW50ZWQgYnkgQlJfUkVUSVJFRCB3aGljaCBpcyBub3QgY29ycmVjdGx5IHByZWRpY3RlZCBhbmQgY2F1c2VzIGEgcGlwZWxpbmUgZmx1c2guIiwKKyAgICAgICAgIkV2ZW50Q29kZSI6ICIweDIyIiwKKyAgICAgICAgIkV2ZW50TmFtZSI6ICJCUl9NSVNfUFJFRF9SRVRJUkVEIiwKKyAgICAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiSW5zdHJ1Y3Rpb24gYXJjaGl0ZWN0dXJhbGx5IGV4ZWN1dGVkLCBtaXNwcmVkaWN0ZWQgYnJhbmNoLiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJBU0VfU1BFQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJCUl9JTU1FRF9TUEVDIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkJSX0lORElSRUNUX1NQRUMiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiQlJfUkVUVVJOX1NQRUMiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiQ1JZUFRPX1NQRUMiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiRE1CX1NQRUMiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiRFBfU1BFQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJEU0JfU1BFQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJJU0JfU1BFQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMRFJFWF9TUEVDIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIkxEU1RfU1BFQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJMRF9TUEVDIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIlBDX1dSSVRFX1NQRUMiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiUkNfTERfU1BFQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJSQ19TVF9TUEVDIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIlNUUkVYX0ZBSUxfU1BFQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJTVFJFWF9QQVNTX1NQRUMiCisgICAgfSwKKyAgICB7CisgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiU1RSRVhfU1BFQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJTVF9TUEVDIgorICAgIH0sCisgICAgeworICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIlZGUF9TUEVDIgorICAgIH0KK10KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL21lbW9yeS5qc29uIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvbWVtb3J5Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg2NjQzMgotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL21lbW9yeS5qc29uCkBAIC0wLDAgKzEsMjMgQEAKK1sKKyAgICB7CisgICAgICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJEYXRhIG1lbW9yeSBhY2Nlc3MuIFRoaXMgZXZlbnQgY291bnRzIG1lbW9yeSBhY2Nlc3NlcyBkdWUgdG8gbG9hZCBvciBzdG9yZSBpbnN0cnVjdGlvbnMuIFRoaXMgZXZlbnQgY291bnRzIHRoZSBzdW0gb2YgTUVNX0FDQ0VTU19SRCBhbmQgTUVNX0FDQ0VTU19XUi4iLAorICAgICAgICAiRXZlbnRDb2RlIjogIjB4MTMiLAorICAgICAgICAiRXZlbnROYW1lIjogIk1FTV9BQ0NFU1MiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJEYXRhIG1lbW9yeSBhY2Nlc3MiCisgICAgfSwKKyAgICB7CisgICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIk1FTV9BQ0NFU1NfUkQiCisgICAgfSwKKyAgICB7CisgICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIk1FTV9BQ0NFU1NfV1IiCisgICAgfSwKKyAgICB7CisgICAgICAgICAiQXJjaFN0ZEV2ZW50IjogIlVOQUxJR05FRF9MRF9TUEVDIgorICAgIH0sCisgICAgeworICAgICAgICAgIkFyY2hTdGRFdmVudCI6ICJVTkFMSUdORURfU1RfU1BFQyIKKyAgICB9LAorICAgIHsKKyAgICAgICAgICJBcmNoU3RkRXZlbnQiOiAiVU5BTElHTkVEX0xEU1RfU1BFQyIKKyAgICB9CitdCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC9hcm02NC9hcm0vY29ydGV4LWE3Ni1uMS9vdGhlci5qc29uIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvb3RoZXIuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmRlMDI5Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvb3RoZXIuanNvbgpAQCAtMCwwICsxLDcgQEAKK1sKKyAgICB7CisgICAgICAgICJFdmVudENvZGUiOiAiMHgzMSIsCisgICAgICAgICJFdmVudE5hbWUiOiAiUkVNT1RFX0FDQ0VTUyIsCisgICAgICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byBhbm90aGVyIHNvY2tldCBpbiBhIG11bHRpLXNvY2tldCBzeXN0ZW0iCisgICAgfQorXQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvYXJtL2NvcnRleC1hNzYtbjEvcGlwZWxpbmUuanNvbiBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL3BpcGVsaW5lLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDEwYTY0NwotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL2FybTY0L2FybS9jb3J0ZXgtYTc2LW4xL3BpcGVsaW5lLmpzb24KQEAgLTAsMCArMSwxNCBAQAorWworICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIk5vIG9wZXJhdGlvbiBpc3N1ZWQgYmVjYXVzZSBvZiB0aGUgZnJvbnRlbmQuIFRoZSBjb3VudGVyIGNvdW50cyBvbiBhbnkgY3ljbGUgd2hlbiB0aGVyZSBhcmUgbm8gZmV0Y2hlZCBpbnN0cnVjdGlvbnMgYXZhaWxhYmxlIHRvIGRpc3BhdGNoLiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgyMyIsCisgICAgICAgICJFdmVudE5hbWUiOiAiU1RBTExfRlJPTlRFTkQiLAorICAgICAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJObyBvcGVyYXRpb24gaXNzdWVkIGJlY2F1c2Ugb2YgdGhlIGZyb250ZW5kLiIKKyAgICB9LAorICAgIHsKKyAgICAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIk5vIG9wZXJhdGlvbiBpc3N1ZWQgYmVjYXVzZSBvZiB0aGUgYmFja2VuZC4gVGhlIGNvdW50ZXIgY291bnRzIG9uIGFueSBjeWNsZSBmZXRjaGVkIGluc3RydWN0aW9ucyBhcmUgbm90IGRpc3BhdGNoZWQgZHVlIHRvIHJlc291cmNlIGNvbnN0cmFpbnRzLiIsCisgICAgICAgICJFdmVudENvZGUiOiAiMHgyNCIsCisgICAgICAgICJFdmVudE5hbWUiOiAiU1RBTExfQkFDS0VORCIsCisgICAgICAgICJCcmllZkRlc2NyaXB0aW9uIjogIk5vIG9wZXJhdGlvbiBpc3N1ZWQgYmVjYXVzZSBvZiB0aGUgYmFja2VuZC4iCisgICAgfQorXQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvYXJtNjQvbWFwZmlsZS5jc3YgYi90b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC9hcm02NC9tYXBmaWxlLmNzdgppbmRleCA5MjdmY2RkLi4wZDYwOTE0IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC9hcm02NC9tYXBmaWxlLmNzdgorKysgYi90b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC9hcm02NC9tYXBmaWxlLmNzdgpAQCAtMTYsNiArMTYsOCBAQAogMHgwMDAwMDAwMDQyMGYxMDAwLHYxLGFybS9jb3J0ZXgtYTUzLGNvcmUKIDB4MDAwMDAwMDA0MTBmZDA3MCx2MSxhcm0vY29ydGV4LWE1Ny1hNzIsY29yZQogMHgwMDAwMDAwMDQxMGZkMDgwLHYxLGFybS9jb3J0ZXgtYTU3LWE3Mixjb3JlCisweDAwMDAwMDAwNDEwZmQwYjAsdjEsYXJtL2NvcnRleC1hNzYtbjEsY29yZQorMHgwMDAwMDAwMDQxMGZkMGMwLHYxLGFybS9jb3J0ZXgtYTc2LW4xLGNvcmUKIDB4MDAwMDAwMDA0MjBmNTE2MCx2MSxjYXZpdW0vdGh1bmRlcngyLGNvcmUKIDB4MDAwMDAwMDA0MzBmMGFmMCx2MSxjYXZpdW0vdGh1bmRlcngyLGNvcmUKIDB4MDAwMDAwMDA0ODBmZDAxMCx2MSxoaXNpbGljb24vaGlwMDgsY29yZQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvcG93ZXJwYy9wb3dlcjgvb3RoZXIuanNvbiBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL3Bvd2VycGMvcG93ZXI4L290aGVyLmpzb24KaW5kZXggOWRjMmY2YjcuLmIyYTNkZjAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL3Bvd2VycGMvcG93ZXI4L290aGVyLmpzb24KKysrIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gvcG93ZXJwYy9wb3dlcjgvb3RoZXIuanNvbgpAQCAtMTc3NiwzMCArMTc3Niw2IEBACiAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIiIKICAgfSwKICAgeywKLSAgICAiRXZlbnRDb2RlIjogIjB4YTI5MDg0IiwKLSAgICAiRXZlbnROYW1lIjogIlBNX0wzX1AwX0dSUF9QVU1QIiwKLSAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJMMyBwZiBzZW50IHdpdGggZ3JwIHNjb3BlIHBvcnQgMCIsCi0gICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIiIKLSAgfSwKLSAgeywKLSAgICAiRXZlbnRDb2RlIjogIjB4NTI4MDg0IiwKLSAgICAiRXZlbnROYW1lIjogIlBNX0wzX1AwX0xDT19EQVRBIiwKLSAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJsY28gc2VudCB3aXRoIGRhdGEgcG9ydCAwIiwKLSAgICAiUHVibGljRGVzY3JpcHRpb24iOiAiIgotICB9LAotICB7LAotICAgICJFdmVudENvZGUiOiAiMHg1MTgwODAiLAotICAgICJFdmVudE5hbWUiOiAiUE1fTDNfUDBfTENPX05PX0RBVEEiLAotICAgICJCcmllZkRlc2NyaXB0aW9uIjogImRhdGFsZXNzIGwzIGxjbyBzZW50IHBvcnQgMCIsCi0gICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIiIKLSAgfSwKLSAgeywKLSAgICAiRXZlbnRDb2RlIjogIjB4YTQ5MDhjIiwKLSAgICAiRXZlbnROYW1lIjogIlBNX0wzX1AwX0xDT19SVFkiLAotICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkwzIExDTyByZWNlaXZlZCByZXRyeSBwb3J0IDAiLAotICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICIiCi0gIH0sCi0gIHssCiAgICAgIkV2ZW50Q29kZSI6ICIweDg0OTA4ZCIsCiAgICAgIkV2ZW50TmFtZSI6ICJQTV9MM19QRjBfQUxMT0MiLAogICAgICJCcmllZkRlc2NyaXB0aW9uIjogImxpZmV0aW1lLCBzYW1wbGUgb2YgUEYgbWFjaGluZSAwIHZhbGlkIiwKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL3g4Ni9hbWRmYW0xN2gvY2FjaGUuanNvbiBiL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL3g4Ni9hbWRmYW0xN2gvY2FjaGUuanNvbgppbmRleCBmYWQ0YWY5Li42MjIxYTg0IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC94ODYvYW1kZmFtMTdoL2NhY2hlLmpzb24KKysrIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gveDg2L2FtZGZhbTE3aC9jYWNoZS5qc29uCkBAIC0yODMsNSArMjgzLDQ3IEBACiAgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiVG90YWwgY3ljbGVzIHNwZW50IHdpdGggb25lIG9yIG1vcmUgZmlsbCByZXF1ZXN0cyBpbiBmbGlnaHQgZnJvbSBMMi4iLAogICAgICJQdWJsaWNEZXNjcmlwdGlvbiI6ICJUb3RhbCBjeWNsZXMgc3BlbnQgd2l0aCBvbmUgb3IgbW9yZSBmaWxsIHJlcXVlc3RzIGluIGZsaWdodCBmcm9tIEwyLiIsCiAgICAgIlVNYXNrIjogIjB4MSIKKyAgfSwKKyAgeworICAgICJFdmVudE5hbWUiOiAibDNfcmVxdWVzdF9nMS5jYWNoaW5nX2wzX2NhY2hlX2FjY2Vzc2VzIiwKKyAgICAiRXZlbnRDb2RlIjogIjB4MDEiLAorICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkNhY2hpbmc6IEwzIGNhY2hlIGFjY2Vzc2VzIiwKKyAgICAiVU1hc2siOiAiMHg4MCIsCisgICAgIlVuaXQiOiAiTDNQTUMiCisgIH0sCisgIHsKKyAgICAiRXZlbnROYW1lIjogImwzX2xvb2t1cF9zdGF0ZS5hbGxfbDNfcmVxX3R5cHMiLAorICAgICJFdmVudENvZGUiOiAiMHgwNCIsCisgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiQWxsIEwzIFJlcXVlc3QgVHlwZXMiLAorICAgICJVTWFzayI6ICIweGZmIiwKKyAgICAiVW5pdCI6ICJMM1BNQyIKKyAgfSwKKyAgeworICAgICJFdmVudE5hbWUiOiAibDNfY29tYl9jbHN0cl9zdGF0ZS5vdGhlcl9sM19taXNzX3R5cHMiLAorICAgICJFdmVudENvZGUiOiAiMHgwNiIsCisgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiT3RoZXIgTDMgTWlzcyBSZXF1ZXN0IFR5cGVzIiwKKyAgICAiVU1hc2siOiAiMHhmZSIsCisgICAgIlVuaXQiOiAiTDNQTUMiCisgIH0sCisgIHsKKyAgICAiRXZlbnROYW1lIjogImwzX2NvbWJfY2xzdHJfc3RhdGUucmVxdWVzdF9taXNzIiwKKyAgICAiRXZlbnRDb2RlIjogIjB4MDYiLAorICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkwzIGNhY2hlIG1pc3NlcyIsCisgICAgIlVNYXNrIjogIjB4MDEiLAorICAgICJVbml0IjogIkwzUE1DIgorICB9LAorICB7CisgICAgIkV2ZW50TmFtZSI6ICJ4aV9zeXNfZmlsbF9sYXRlbmN5IiwKKyAgICAiRXZlbnRDb2RlIjogIjB4OTAiLAorICAgICJCcmllZkRlc2NyaXB0aW9uIjogIkwzIENhY2hlIE1pc3MgTGF0ZW5jeS4gVG90YWwgY3ljbGVzIGZvciBhbGwgdHJhbnNhY3Rpb25zIGRpdmlkZWQgYnkgMTYuIElnbm9yZXMgU2xpY2VNYXNrIGFuZCBUaHJlYWRNYXNrLiIsCisgICAgIlVNYXNrIjogIjB4MDAiLAorICAgICJVbml0IjogIkwzUE1DIgorICB9LAorICB7CisgICAgIkV2ZW50TmFtZSI6ICJ4aV9jY3hfc2RwX3JlcTEuYWxsX2wzX21pc3NfcmVxX3R5cHMiLAorICAgICJFdmVudENvZGUiOiAiMHg5YSIsCisgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiQWxsIEwzIE1pc3MgUmVxdWVzdCBUeXBlcy4gSWdub3JlcyBTbGljZU1hc2sgYW5kIFRocmVhZE1hc2suIiwKKyAgICAiVU1hc2siOiAiMHgzZiIsCisgICAgIlVuaXQiOiAiTDNQTUMiCiAgIH0KIF0KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9hcmNoL3g4Ni9hbWRmYW0xN2gvY29yZS5qc29uIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gveDg2L2FtZGZhbTE3aC9jb3JlLmpzb24KaW5kZXggN2IyODViMC4uMTA3OTU0NCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gveDg2L2FtZGZhbTE3aC9jb3JlLmpzb24KKysrIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2FyY2gveDg2L2FtZGZhbTE3aC9jb3JlLmpzb24KQEAgLTEzLDcgKzEzLDcgQEAKICAgewogICAgICJFdmVudE5hbWUiOiAiZXhfcmV0X2JybiIsCiAgICAgIkV2ZW50Q29kZSI6ICIweGMyIiwKLSAgICAiQnJpZWZEZXNjcmlwdGlvbiI6ICJbUmV0aXJlZCBCcmFuY2ggSW5zdHJ1Y3Rpb25zLiIsCisgICAgIkJyaWVmRGVzY3JpcHRpb24iOiAiUmV0aXJlZCBCcmFuY2ggSW5zdHJ1Y3Rpb25zLiIsCiAgICAgIlB1YmxpY0Rlc2NyaXB0aW9uIjogIlRoZSBudW1iZXIgb2YgYnJhbmNoIGluc3RydWN0aW9ucyByZXRpcmVkLiBUaGlzIGluY2x1ZGVzIGFsbCB0eXBlcyBvZiBhcmNoaXRlY3R1cmFsIGNvbnRyb2wgZmxvdyBjaGFuZ2VzLCBpbmNsdWRpbmcgZXhjZXB0aW9ucyBhbmQgaW50ZXJydXB0cy4iCiAgIH0sCiAgIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9qZXZlbnRzLmMgYi90b29scy9wZXJmL3BtdS1ldmVudHMvamV2ZW50cy5jCmluZGV4IGQ0MTM3NjEuLjllMzcyODcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvcG11LWV2ZW50cy9qZXZlbnRzLmMKKysrIGIvdG9vbHMvcGVyZi9wbXUtZXZlbnRzL2pldmVudHMuYwpAQCAtMjM5LDYgKzIzOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgbWFwIHsKIAl7ICJoaXNpX3NjY2wsZGRyYyIsICJoaXNpX3NjY2wsZGRyYyIgfSwKIAl7ICJoaXNpX3NjY2wsaGhhIiwgImhpc2lfc2NjbCxoaGEiIH0sCiAJeyAiaGlzaV9zY2NsLGwzYyIsICJoaXNpX3NjY2wsbDNjIiB9LAorCXsgIkwzUE1DIiwgImFtZF9sMyIgfSwKIAl7fQogfTsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy9iYWNrd2FyZC1yaW5nLWJ1ZmZlci5jIGIvdG9vbHMvcGVyZi90ZXN0cy9iYWNrd2FyZC1yaW5nLWJ1ZmZlci5jCmluZGV4IGE2MzdhNGEuLjMzOGNkOWYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvYmFja3dhcmQtcmluZy1idWZmZXIuYworKysgYi90b29scy9wZXJmL3Rlc3RzL2JhY2t3YXJkLXJpbmctYnVmZmVyLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlICJ0ZXN0cy5oIgogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAicGFyc2UtZXZlbnRzLmgiCisjaW5jbHVkZSAidXRpbC9tbWFwLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KIApAQCAtMzIsOCArMzMsOCBAQCBzdGF0aWMgaW50IGNvdW50X3NhbXBsZXMoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBpbnQgKnNhbXBsZV9jb3VudCwKIHsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPm5yX21tYXBzOyBpKyspIHsKLQkJc3RydWN0IHBlcmZfbW1hcCAqbWFwID0gJmV2bGlzdC0+b3ZlcndyaXRlX21tYXBbaV07CisJZm9yIChpID0gMDsgaSA8IGV2bGlzdC0+Y29yZS5ucl9tbWFwczsgaSsrKSB7CisJCXN0cnVjdCBtbWFwICptYXAgPSAmZXZsaXN0LT5vdmVyd3JpdGVfbW1hcFtpXTsKIAkJdW5pb24gcGVyZl9ldmVudCAqZXZlbnQ7CiAKIAkJcGVyZl9tbWFwX19yZWFkX2luaXQobWFwKTsKQEAgLTYzLDkgKzY0LDkgQEAgc3RhdGljIGludCBkb190ZXN0KHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgaW50IG1tYXBfcGFnZXMsCiAJaW50IGVycjsKIAljaGFyIHNidWZbU1RSRVJSX0JVRlNJWkVdOwogCi0JZXJyID0gcGVyZl9ldmxpc3RfX21tYXAoZXZsaXN0LCBtbWFwX3BhZ2VzKTsKKwllcnIgPSBldmxpc3RfX21tYXAoZXZsaXN0LCBtbWFwX3BhZ2VzKTsKIAlpZiAoZXJyIDwgMCkgewotCQlwcl9kZWJ1ZygicGVyZl9ldmxpc3RfX21tYXA6ICVzXG4iLAorCQlwcl9kZWJ1ZygiZXZsaXN0X19tbWFwOiAlc1xuIiwKIAkJCSBzdHJfZXJyb3JfcihlcnJubywgc2J1Ziwgc2l6ZW9mKHNidWYpKSk7CiAJCXJldHVybiBURVNUX0ZBSUw7CiAJfQpAQCAtNzUsNyArNzYsNyBAQCBzdGF0aWMgaW50IGRvX3Rlc3Qoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBpbnQgbW1hcF9wYWdlcywKIAlldmxpc3RfX2Rpc2FibGUoZXZsaXN0KTsKIAogCWVyciA9IGNvdW50X3NhbXBsZXMoZXZsaXN0LCBzYW1wbGVfY291bnQsIGNvbW1fY291bnQpOwotCXBlcmZfZXZsaXN0X19tdW5tYXAoZXZsaXN0KTsKKwlldmxpc3RfX211bm1hcChldmxpc3QpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvYml0bWFwLmMgYi90b29scy9wZXJmL3Rlc3RzL2JpdG1hcC5jCmluZGV4IGRiMmFhZGYuLjk2YzEzNzMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvYml0bWFwLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9iaXRtYXAuYwpAQCAtMiw4ICsyLDggQEAKICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG1hcC5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwvY3B1bWFwLmg+CiAjaW5jbHVkZSAidGVzdHMuaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJkZWJ1Zy5oIgogCiAjZGVmaW5lIE5CSVRTIDEwMApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy9icGYuYyBiL3Rvb2xzL3BlcmYvdGVzdHMvYnBmLmMKaW5kZXggZmMxMDJlNC4uMWViMGJmZiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9icGYuYworKysgYi90b29scy9wZXJmL3Rlc3RzL2JwZi5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSAibGx2bS5oIgogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAicGFyc2UtZXZlbnRzLmgiCisjaW5jbHVkZSAidXRpbC9tbWFwLmgiCiAjZGVmaW5lIE5SX0lURVJTICAgICAgIDExMQogI2RlZmluZSBQRVJGX1RFU1RfQlBGX1BBVEggIi9zeXMvZnMvYnBmL3BlcmZfdGVzdCIKIApAQCAtMTY3LDkgKzE2OCw5IEBAIHN0YXRpYyBpbnQgZG9fdGVzdChzdHJ1Y3QgYnBmX29iamVjdCAqb2JqLCBpbnQgKCpmdW5jKSh2b2lkKSwKIAkJZ290byBvdXRfZGVsZXRlX2V2bGlzdDsKIAl9CiAKLQllcnIgPSBwZXJmX2V2bGlzdF9fbW1hcChldmxpc3QsIG9wdHMubW1hcF9wYWdlcyk7CisJZXJyID0gZXZsaXN0X19tbWFwKGV2bGlzdCwgb3B0cy5tbWFwX3BhZ2VzKTsKIAlpZiAoZXJyIDwgMCkgewotCQlwcl9kZWJ1ZygicGVyZl9ldmxpc3RfX21tYXA6ICVzXG4iLAorCQlwcl9kZWJ1ZygiZXZsaXN0X19tbWFwOiAlc1xuIiwKIAkJCSBzdHJfZXJyb3JfcihlcnJubywgc2J1Ziwgc2l6ZW9mKHNidWYpKSk7CiAJCWdvdG8gb3V0X2RlbGV0ZV9ldmxpc3Q7CiAJfQpAQCAtMTc4LDkgKzE3OSw5IEBAIHN0YXRpYyBpbnQgZG9fdGVzdChzdHJ1Y3QgYnBmX29iamVjdCAqb2JqLCBpbnQgKCpmdW5jKSh2b2lkKSwKIAkoKmZ1bmMpKCk7CiAJZXZsaXN0X19kaXNhYmxlKGV2bGlzdCk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5ucl9tbWFwczsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGV2bGlzdC0+Y29yZS5ucl9tbWFwczsgaSsrKSB7CiAJCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50OwotCQlzdHJ1Y3QgcGVyZl9tbWFwICptZDsKKwkJc3RydWN0IG1tYXAgKm1kOwogCiAJCW1kID0gJmV2bGlzdC0+bW1hcFtpXTsKIAkJaWYgKHBlcmZfbW1hcF9fcmVhZF9pbml0KG1kKSA8IDApCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL2NsYW5nLmMgYi90b29scy9wZXJmL3Rlc3RzL2NsYW5nLmMKaW5kZXggZjQ1ZmUxMS4uMjU3N2QzZSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9jbGFuZy5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvY2xhbmcuYwpAQCAtMSw3ICsxLDUgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjaW5jbHVkZSAidGVzdHMuaCIKLSNpbmNsdWRlICJkZWJ1Zy5oIgotI2luY2x1ZGUgInV0aWwuaCIKICNpbmNsdWRlICJjKysvY2xhbmctYy5oIgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL2NvZGUtcmVhZGluZy5jIGIvdG9vbHMvcGVyZi90ZXN0cy9jb2RlLXJlYWRpbmcuYwppbmRleCBjMWMyOWUwLi5mNTc2NGEzIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL2NvZGUtcmVhZGluZy5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvY29kZS1yZWFkaW5nLmMKQEAgLTE5LDEyICsxOSwxMyBAQAogI2luY2x1ZGUgImV2bGlzdC5oIgogI2luY2x1ZGUgImV2c2VsLmgiCiAjaW5jbHVkZSAidGhyZWFkX21hcC5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgogI2luY2x1ZGUgIm1hY2hpbmUuaCIKICNpbmNsdWRlICJtYXAuaCIKICNpbmNsdWRlICJzeW1ib2wuaCIKICNpbmNsdWRlICJldmVudC5oIgogI2luY2x1ZGUgInJlY29yZC5oIgorI2luY2x1ZGUgInV0aWwvbW1hcC5oIgorI2luY2x1ZGUgInV0aWwvc3ludGhldGljLWV2ZW50cy5oIgogI2luY2x1ZGUgInRocmVhZC5oIgogCiAjaW5jbHVkZSAidGVzdHMuaCIKQEAgLTQxOSwxMCArNDIwLDEwIEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19ldmVudHMoc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsIHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKIAkJCSAgc3RydWN0IHN0YXRlICpzdGF0ZSkKIHsKIAl1bmlvbiBwZXJmX2V2ZW50ICpldmVudDsKLQlzdHJ1Y3QgcGVyZl9tbWFwICptZDsKKwlzdHJ1Y3QgbW1hcCAqbWQ7CiAJaW50IGksIHJldDsKIAotCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPm5yX21tYXBzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspIHsKIAkJbWQgPSAmZXZsaXN0LT5tbWFwW2ldOwogCQlpZiAocGVyZl9tbWFwX19yZWFkX2luaXQobWQpIDwgMCkKIAkJCWNvbnRpbnVlOwpAQCAtNjUxLDcgKzY1Miw3IEBAIHN0YXRpYyBpbnQgZG9fdGVzdF9jb2RlX3JlYWRpbmcoYm9vbCB0cnlfa2NvcmUpCiAKIAkJcGVyZl9ldmxpc3RfX2NvbmZpZyhldmxpc3QsICZvcHRzLCBOVUxMKTsKIAotCQlldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCQlldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCQlldnNlbC0+Y29yZS5hdHRyLmNvbW0gPSAxOwogCQlldnNlbC0+Y29yZS5hdHRyLmRpc2FibGVkID0gMTsKQEAgLTY4NSw5ICs2ODYsOSBAQCBzdGF0aWMgaW50IGRvX3Rlc3RfY29kZV9yZWFkaW5nKGJvb2wgdHJ5X2tjb3JlKQogCQlicmVhazsKIAl9CiAKLQlyZXQgPSBwZXJmX2V2bGlzdF9fbW1hcChldmxpc3QsIFVJTlRfTUFYKTsKKwlyZXQgPSBldmxpc3RfX21tYXAoZXZsaXN0LCBVSU5UX01BWCk7CiAJaWYgKHJldCA8IDApIHsKLQkJcHJfZGVidWcoInBlcmZfZXZsaXN0X19tbWFwIGZhaWxlZFxuIik7CisJCXByX2RlYnVnKCJldmxpc3RfX21tYXAgZmFpbGVkXG4iKTsKIAkJZ290byBvdXRfcHV0OwogCX0KIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy9jcHVtYXAuYyBiL3Rvb2xzL3BlcmYvdGVzdHMvY3B1bWFwLmMKaW5kZXggMzk0OTNkZS4uOGEwZDIzNiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9jcHVtYXAuYworKysgYi90b29scy9wZXJmL3Rlc3RzL2NwdW1hcC5jCkBAIC0zLDYgKzMsNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSAiY3B1bWFwLmgiCiAjaW5jbHVkZSAiZXZlbnQuaCIKKyNpbmNsdWRlICJ1dGlsL3N5bnRoZXRpYy1ldmVudHMuaCIKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KICNpbmNsdWRlIDxwZXJmL2NwdW1hcC5oPgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy9kc28tZGF0YS5jIGIvdG9vbHMvcGVyZi90ZXN0cy9kc28tZGF0YS5jCmluZGV4IGE0ODc0ZDQuLjYyN2MxYWEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvZHNvLWRhdGEuYworKysgYi90b29scy9wZXJmL3Rlc3RzL2Rzby1kYXRhLmMKQEAgLTEwLDcgKzEwLDYgQEAKICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDxhcGkvZnMvZnMuaD4KICNpbmNsdWRlICJkc28uaCIKLSNpbmNsdWRlICJ1dGlsLmgiCiAjaW5jbHVkZSAibWFjaGluZS5oIgogI2luY2x1ZGUgInN5bWJvbC5oIgogI2luY2x1ZGUgInRlc3RzLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL2R3YXJmLXVud2luZC5jIGIvdG9vbHMvcGVyZi90ZXN0cy9kd2FyZi11bndpbmQuYwppbmRleCA0MTI1MjU1Li40ZjRlY2JjIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL2R3YXJmLXVud2luZC5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvZHdhcmYtdW53aW5kLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlICJzeW1ib2wuaCIKICNpbmNsdWRlICJ0aHJlYWQuaCIKICNpbmNsdWRlICJjYWxsY2hhaW4uaCIKKyNpbmNsdWRlICJ1dGlsL3N5bnRoZXRpYy1ldmVudHMuaCIKIAogI2lmIGRlZmluZWQgKF9feDg2XzY0X18pIHx8IGRlZmluZWQgKF9faTM4Nl9fKSB8fCBkZWZpbmVkIChfX3Bvd2VycGNfXykKICNpbmNsdWRlICJhcmNoLXRlc3RzLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL2V2ZW50LXRpbWVzLmMgYi90b29scy9wZXJmL3Rlc3RzL2V2ZW50LXRpbWVzLmMKaW5kZXggZDgyNGE3Mi4uMWVlODcwNCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9ldmVudC10aW1lcy5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvZXZlbnQtdGltZXMuYwpAQCAtOSw3ICs5LDYgQEAKICNpbmNsdWRlICJ0ZXN0cy5oIgogI2luY2x1ZGUgImV2bGlzdC5oIgogI2luY2x1ZGUgImV2c2VsLmgiCi0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAicGFyc2UtZXZlbnRzLmgiCiAjaW5jbHVkZSAidGhyZWFkX21hcC5oIgpAQCAtMTcsNyArMTYsNyBAQAogCiBzdGF0aWMgaW50IGF0dGFjaF9fZW5hYmxlX29uX2V4ZWMoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2xhc3QoZXZsaXN0KTsKIAlzdHJ1Y3QgdGFyZ2V0IHRhcmdldCA9IHsKIAkJLnVpZCA9IFVJTlRfTUFYLAogCX07CkBAIC01OSw3ICs1OCw3IEBAIHN0YXRpYyBpbnQgZGV0YWNoX19lbmFibGVfb25fZXhlYyhzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgYXR0YWNoX19jdXJyZW50X2Rpc2FibGVkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2xhc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19sYXN0KGV2bGlzdCk7CiAJc3RydWN0IHBlcmZfdGhyZWFkX21hcCAqdGhyZWFkczsKIAlpbnQgZXJyOwogCkBAIC04NSw3ICs4NCw3IEBAIHN0YXRpYyBpbnQgYXR0YWNoX19jdXJyZW50X2Rpc2FibGVkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCBhdHRhY2hfX2N1cnJlbnRfZW5hYmxlZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19sYXN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fbGFzdChldmxpc3QpOwogCXN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHM7CiAJaW50IGVycjsKIApAQCAtMTA1LDE0ICsxMDQsMTQgQEAgc3RhdGljIGludCBhdHRhY2hfX2N1cnJlbnRfZW5hYmxlZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgZGV0YWNoX19kaXNhYmxlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2xhc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19sYXN0KGV2bGlzdCk7CiAKIAlyZXR1cm4gZXZzZWxfX2VuYWJsZShldnNlbCk7CiB9CiAKIHN0YXRpYyBpbnQgYXR0YWNoX19jcHVfZGlzYWJsZWQoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2xhc3QoZXZsaXN0KTsKIAlzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzOwogCWludCBlcnI7CiAKQEAgLTE0MSw3ICsxNDAsNyBAQCBzdGF0aWMgaW50IGF0dGFjaF9fY3B1X2Rpc2FibGVkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCBhdHRhY2hfX2NwdV9lbmFibGVkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2xhc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19sYXN0KGV2bGlzdCk7CiAJc3RydWN0IHBlcmZfY3B1X21hcCAqY3B1czsKIAlpbnQgZXJyOwogCkBAIC0xODEsNyArMTgwLDcgQEAgc3RhdGljIGludCB0ZXN0X3RpbWVzKGludCAoYXR0YWNoKShzdHJ1Y3QgZXZsaXN0ICopLAogCQlnb3RvIG91dF9lcnI7CiAJfQogCi0JZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCWV2c2VsID0gZXZsaXN0X19sYXN0KGV2bGlzdCk7CiAJZXZzZWwtPmNvcmUuYXR0ci5yZWFkX2Zvcm1hdCB8PQogCQlQRVJGX0ZPUk1BVF9UT1RBTF9USU1FX0VOQUJMRUQgfAogCQlQRVJGX0ZPUk1BVF9UT1RBTF9USU1FX1JVTk5JTkc7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL2V2ZW50X3VwZGF0ZS5jIGIvdG9vbHMvcGVyZi90ZXN0cy9ldmVudF91cGRhdGUuYwppbmRleCBjYWM0MjkwLi5jNzI3Mzc5IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL2V2ZW50X3VwZGF0ZS5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvZXZlbnRfdXBkYXRlLmMKQEAgLTIsMTAgKzIsMTIgQEAKICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSAiY3B1bWFwLmgiCiAjaW5jbHVkZSAiZXZsaXN0LmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKICNpbmNsdWRlICJoZWFkZXIuaCIKICNpbmNsdWRlICJtYWNoaW5lLmgiCisjaW5jbHVkZSAidXRpbC9zeW50aGV0aWMtZXZlbnRzLmgiCiAjaW5jbHVkZSAidG9vbC5oIgogI2luY2x1ZGUgInRlc3RzLmgiCiAjaW5jbHVkZSAiZGVidWcuaCIKQEAgLTkwLDEyICs5MiwxMiBAQCBpbnQgdGVzdF9fZXZlbnRfdXBkYXRlKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlX3VudQogCWV2bGlzdCA9IHBlcmZfZXZsaXN0X19uZXdfZGVmYXVsdCgpOwogCVRFU1RfQVNTRVJUX1ZBTCgiZmFpbGVkIHRvIGdldCBldmxpc3QiLCBldmxpc3QpOwogCi0JZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAotCVRFU1RfQVNTRVJUX1ZBTCgiZmFpbGVkIHRvIGFsbG9zIGlkcyIsCi0JCQkhcGVyZl9ldnNlbF9fYWxsb2NfaWQoZXZzZWwsIDEsIDEpKTsKKwlURVNUX0FTU0VSVF9WQUwoImZhaWxlZCB0byBhbGxvY2F0ZSBpZHMiLAorCQkJIXBlcmZfZXZzZWxfX2FsbG9jX2lkKCZldnNlbC0+Y29yZSwgMSwgMSkpOwogCi0JcGVyZl9ldmxpc3RfX2lkX2FkZChldmxpc3QsIGV2c2VsLCAwLCAwLCAxMjMpOworCXBlcmZfZXZsaXN0X19pZF9hZGQoJmV2bGlzdC0+Y29yZSwgJmV2c2VsLT5jb3JlLCAwLCAwLCAxMjMpOwogCiAJZXZzZWwtPnVuaXQgPSBzdHJkdXAoIktSQVZBIik7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvZXZzZWwtcm91bmR0cmlwLW5hbWUuYyBiL3Rvb2xzL3BlcmYvdGVzdHMvZXZzZWwtcm91bmR0cmlwLW5hbWUuYwppbmRleCA1MzMwZjEwLi45NTYyMDViIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL2V2c2VsLXJvdW5kdHJpcC1uYW1lLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9ldnNlbC1yb3VuZHRyaXAtbmFtZS5jCkBAIC0zNCw3ICszNCw3IEBAIHN0YXRpYyBpbnQgcGVyZl9ldnNlbF9fcm91bmR0cmlwX2NhY2hlX25hbWVfdGVzdCh2b2lkKQogCX0KIAogCWlkeCA9IDA7Ci0JZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCWZvciAodHlwZSA9IDA7IHR5cGUgPCBQRVJGX0NPVU5UX0hXX0NBQ0hFX01BWDsgdHlwZSsrKSB7CiAJCWZvciAob3AgPSAwOyBvcCA8IFBFUkZfQ09VTlRfSFdfQ0FDSEVfT1BfTUFYOyBvcCsrKSB7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL2hpc3RzX2NvbW1vbi5jIGIvdG9vbHMvcGVyZi90ZXN0cy9oaXN0c19jb21tb24uYwppbmRleCBkZTExMGQ4Li42ZjM0ZDA4IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL2hpc3RzX2NvbW1vbi5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvaGlzdHNfY29tbW9uLmMKQEAgLTIsNiArMiw3IEBACiAjaW5jbHVkZSA8aW50dHlwZXMuaD4KICNpbmNsdWRlICJ1dGlsL2RlYnVnLmgiCiAjaW5jbHVkZSAidXRpbC9kc28uaCIKKyNpbmNsdWRlICJ1dGlsL2V2ZW50LmgiIC8vIHN0cnVjdCBwZXJmX3NhbXBsZQogI2luY2x1ZGUgInV0aWwvbWFwLmgiCiAjaW5jbHVkZSAidXRpbC9zeW1ib2wuaCIKICNpbmNsdWRlICJ1dGlsL3NvcnQuaCIKQEAgLTEwLDYgKzExLDcgQEAKICNpbmNsdWRlICJ1dGlsL3RocmVhZC5oIgogI2luY2x1ZGUgInRlc3RzL2hpc3RzX2NvbW1vbi5oIgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4KIAogc3RhdGljIHN0cnVjdCB7CiAJdTMyIHBpZDsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvaGlzdHNfY3VtdWxhdGUuYyBiL3Rvb2xzL3BlcmYvdGVzdHMvaGlzdHNfY3VtdWxhdGUuYwppbmRleCBmYTU1YjdiLi42MzY3YzhmIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL2hpc3RzX2N1bXVsYXRlLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9oaXN0c19jdW11bGF0ZS5jCkBAIC03MjEsNyArNzIxLDcgQEAgaW50IHRlc3RfX2hpc3RzX2N1bXVsYXRlKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlX3UKIAlpZiAodmVyYm9zZSA+IDEpCiAJCW1hY2hpbmVfX2ZwcmludGYobWFjaGluZSwgc3RkZXJyKTsKIAotCWV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0ZXN0Y2FzZXMpOyBpKyspIHsKIAkJZXJyID0gdGVzdGNhc2VzW2ldKGV2c2VsLCBtYWNoaW5lKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvaGlzdHNfbGluay5jIGIvdG9vbHMvcGVyZi90ZXN0cy9oaXN0c19saW5rLmMKaW5kZXggOGJlNGQwYi4uYTAyNGQzZiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9oaXN0c19saW5rLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9oaXN0c19saW5rLmMKQEAgLTgsNiArOCw3IEBACiAjaW5jbHVkZSAibWFjaGluZS5oIgogI2luY2x1ZGUgInBhcnNlLWV2ZW50cy5oIgogI2luY2x1ZGUgImhpc3RzX2NvbW1vbi5oIgorI2luY2x1ZGUgInV0aWwvbW1hcC5oIgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAKQEAgLTMxMCw4ICszMTEsOCBAQCBpbnQgdGVzdF9faGlzdHNfbGluayhzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZV91bnVzZQogCQkJcHJpbnRfaGlzdHNfaW4oaGlzdHMpOwogCX0KIAotCWZpcnN0ID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7Ci0JZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCWZpcnN0ID0gZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gZXZsaXN0X19sYXN0KGV2bGlzdCk7CiAKIAlmaXJzdF9oaXN0cyA9IGV2c2VsX19oaXN0cyhmaXJzdCk7CiAJaGlzdHMgPSBldnNlbF9faGlzdHMoZXZzZWwpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy9oaXN0c19vdXRwdXQuYyBiL3Rvb2xzL3BlcmYvdGVzdHMvaGlzdHNfb3V0cHV0LmMKaW5kZXggM2Y2ZGZhMi4uMzhmODA0ZiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9oaXN0c19vdXRwdXQuYworKysgYi90b29scy9wZXJmL3Rlc3RzL2hpc3RzX291dHB1dC5jCkBAIC02MDgsNyArNjA4LDcgQEAgaW50IHRlc3RfX2hpc3RzX291dHB1dChzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZV91bnUKIAlpZiAodmVyYm9zZSA+IDEpCiAJCW1hY2hpbmVfX2ZwcmludGYobWFjaGluZSwgc3RkZXJyKTsKIAotCWV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0ZXN0Y2FzZXMpOyBpKyspIHsKIAkJZXJyID0gdGVzdGNhc2VzW2ldKGV2c2VsLCBtYWNoaW5lKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMva2VlcC10cmFja2luZy5jIGIvdG9vbHMvcGVyZi90ZXN0cy9rZWVwLXRyYWNraW5nLmMKaW5kZXggOWYwNzYyZC4uOTJjN2Q1OSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9rZWVwLXRyYWNraW5nLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9rZWVwLXRyYWNraW5nLmMKQEAgLTEyLDggKzEyLDggQEAKICNpbmNsdWRlICJldnNlbC5oIgogI2luY2x1ZGUgInJlY29yZC5oIgogI2luY2x1ZGUgInRocmVhZF9tYXAuaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJ0ZXN0cy5oIgorI2luY2x1ZGUgInV0aWwvbW1hcC5oIgogCiAjZGVmaW5lIENIRUNLX18oeCkgewkJCQlcCiAJd2hpbGUgKCh4KSA8IDApIHsJCQlcCkBAIC0zMiwxMSArMzIsMTEgQEAKIHN0YXRpYyBpbnQgZmluZF9jb21tKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgY29uc3QgY2hhciAqY29tbSkKIHsKIAl1bmlvbiBwZXJmX2V2ZW50ICpldmVudDsKLQlzdHJ1Y3QgcGVyZl9tbWFwICptZDsKKwlzdHJ1Y3QgbW1hcCAqbWQ7CiAJaW50IGksIGZvdW5kOwogCiAJZm91bmQgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPm5yX21tYXBzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspIHsKIAkJbWQgPSAmZXZsaXN0LT5tbWFwW2ldOwogCQlpZiAocGVyZl9tbWFwX19yZWFkX2luaXQobWQpIDwgMCkKIAkJCWNvbnRpbnVlOwpAQCAtOTMsNyArOTMsNyBAQCBpbnQgdGVzdF9fa2VlcF90cmFja2luZyhzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZV91bgogCiAJcGVyZl9ldmxpc3RfX2NvbmZpZyhldmxpc3QsICZvcHRzLCBOVUxMKTsKIAotCWV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlldnNlbC0+Y29yZS5hdHRyLmNvbW0gPSAxOwogCWV2c2VsLT5jb3JlLmF0dHIuZGlzYWJsZWQgPSAxOwpAQCAtMTA1LDcgKzEwNSw3IEBAIGludCB0ZXN0X19rZWVwX3RyYWNraW5nKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlX3VuCiAJCWdvdG8gb3V0X2VycjsKIAl9CiAKLQlDSEVDS19fKHBlcmZfZXZsaXN0X19tbWFwKGV2bGlzdCwgVUlOVF9NQVgpKTsKKwlDSEVDS19fKGV2bGlzdF9fbW1hcChldmxpc3QsIFVJTlRfTUFYKSk7CiAKIAkvKgogCSAqIEZpcnN0LCB0ZXN0IHRoYXQgYSAnY29tbScgZXZlbnQgY2FuIGJlIGZvdW5kIHdoZW4gdGhlIGV2ZW50IGlzCkBAIC0xMzIsNyArMTMyLDcgQEAgaW50IHRlc3RfX2tlZXBfdHJhY2tpbmcoc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0IF9fbWF5YmVfdW4KIAogCWV2bGlzdF9fZW5hYmxlKGV2bGlzdCk7CiAKLQlldnNlbCA9IHBlcmZfZXZsaXN0X19sYXN0KGV2bGlzdCk7CisJZXZzZWwgPSBldmxpc3RfX2xhc3QoZXZsaXN0KTsKIAogCUNIRUNLX18oZXZzZWxfX2Rpc2FibGUoZXZzZWwpKTsKIApAQCAtMTQzLDcgKzE0Myw3IEBAIGludCB0ZXN0X19rZWVwX3RyYWNraW5nKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlX3VuCiAKIAlmb3VuZCA9IGZpbmRfY29tbShldmxpc3QsIGNvbW0pOwogCWlmIChmb3VuZCAhPSAxKSB7Ci0JCXByX2RlYnVnKCJTZWNvbmYgdGltZSwgZmFpbGVkIHRvIGZpbmQgdHJhY2tpbmcgZXZlbnQuXG4iKTsKKwkJcHJfZGVidWcoIlNlY29uZCB0aW1lLCBmYWlsZWQgdG8gZmluZCB0cmFja2luZyBldmVudC5cbiIpOwogCQlnb3RvIG91dF9lcnI7CiAJfQogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL2xsdm0uYyBiL3Rvb2xzL3BlcmYvdGVzdHMvbGx2bS5jCmluZGV4IDAyMmU0YzkuLmFlNmNkYTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvbGx2bS5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvbGx2bS5jCkBAIC03LDcgKzcsNiBAQAogI2luY2x1ZGUgImxsdm0uaCIKICNpbmNsdWRlICJ0ZXN0cy5oIgogI2luY2x1ZGUgImRlYnVnLmgiCi0jaW5jbHVkZSAidXRpbC5oIgogCiAjaWZkZWYgSEFWRV9MSUJCUEZfU1VQUE9SVAogc3RhdGljIGludCB0ZXN0X19icGZfcGFyc2luZyh2b2lkICpvYmpfYnVmLCBzaXplX3Qgb2JqX2J1Zl9zeikKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvbWFrZSBiL3Rvb2xzL3BlcmYvdGVzdHMvbWFrZQppbmRleCA3MGM0ODQ3Li5jODUwZDE2IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL21ha2UKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9tYWtlCkBAIC0xMDAsNyArMTAwLDcgQEAKIG1ha2VfaW5zdGFsbF9wZGYgICAgOj0gaW5zdGFsbC1wZGYKIG1ha2VfaW5zdGFsbF9wcmVmaXggICAgICAgOj0gaW5zdGFsbCBwcmVmaXg9L3RtcC9rcmF2YQogbWFrZV9pbnN0YWxsX3ByZWZpeF9zbGFzaCA6PSBpbnN0YWxsIHByZWZpeD0vdG1wL2tyYXZhLwotbWFrZV9zdGF0aWMgICAgICAgICA6PSBMREZMQUdTPS1zdGF0aWMKK21ha2Vfc3RhdGljICAgICAgICAgOj0gTERGTEFHUz0tc3RhdGljIE5PX1BFUkZfUkVBRF9WRFNPMzI9MSBOT19QRVJGX1JFQURfVkRTT1gzMj0xIE5PX0pWTVRJPTEKIAogIyBhbGwgdGhlIE5PXyogdmFyaWFibGUgY29tYmluZWQKIG1ha2VfbWluaW1hbCAgICAgICAgOj0gTk9fTElCUEVSTD0xIE5PX0xJQlBZVEhPTj0xIE5PX05FV1Q9MSBOT19HVEsyPTEKQEAgLTMyNyw2ICszMjcsMTAgQEAKIAkobWFrZSAtQyAuLi8uLi90b29scyAkKFBBUkFMTEVMX09QVCkgJChLX09fT1BUKSBwZXJmKSA+ICRAIDI+JjEgJiYgXAogCXRlc3QgLXggJChLRVJORUxfTykvdG9vbHMvcGVyZi9wZXJmICYmIHJtIC1mICRAIHx8IChjYXQgJEAgOyBmYWxzZSkKIAorbWFrZV9saWJwZXJmOgorCUBlY2hvICItIG1ha2UgLUMgbGliIjsKKwltYWtlIC1DIGxpYiBjbGVhbiA+JEAgMj4mMTsgbWFrZSAtQyBsaWIgPj4kQCAyPiYxICYmIHJtICRACisKIEZFQVRVUkVTX0RVTVBfRklMRSA6PSAkKEZVTExfTykvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAKIEZFQVRVUkVTX0RVTVBfRklMRV9TVEFUSUMgOj0gJChGVUxMX08pL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QX1NUQVRJQwogCkBAIC0zNjUsNSArMzY5LDUgQEAKIAkJCSQoZXZhbCAkKHQpIDo9ICQoJCh0KSkgRkVBVFVSRVNfRFVNUD0kKEZFQVRVUkVTX0RVTVBfRklMRSkpKSkKIGVuZGlmCiAKLS5QSE9OWTogYWxsICQocnVuKSAkKHJ1bl9PKSB0YXJwa2cgY2xlYW4gbWFrZV9rZXJuZWxzcmMgbWFrZV9rZXJuZWxzcmNfdG9vbHMKKy5QSE9OWTogYWxsICQocnVuKSAkKHJ1bl9PKSB0YXJwa2cgY2xlYW4gbWFrZV9rZXJuZWxzcmMgbWFrZV9rZXJuZWxzcmNfdG9vbHMgbWFrZV9saWJwZXJmCiBlbmRpZiAjIGlmbmRlZiBNSwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy9tZW0ybm9kZS5jIGIvdG9vbHMvcGVyZi90ZXN0cy9tZW0ybm9kZS5jCmluZGV4IDc2NzJhZGUuLmEyNThiZDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvbWVtMm5vZGUuYworKysgYi90b29scy9wZXJmL3Rlc3RzL21lbTJub2RlLmMKQEAgLTQsNyArNCw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvemFsbG9jLmg+CiAjaW5jbHVkZSA8cGVyZi9jcHVtYXAuaD4KLSNpbmNsdWRlICJjcHVtYXAuaCIKKyNpbmNsdWRlIDxpbnRlcm5hbC9jcHVtYXAuaD4KICNpbmNsdWRlICJkZWJ1Zy5oIgogI2luY2x1ZGUgImVudi5oIgogI2luY2x1ZGUgIm1lbTJub2RlLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL21tYXAtYmFzaWMuYyBiL3Rvb2xzL3BlcmYvdGVzdHMvbW1hcC1iYXNpYy5jCmluZGV4IDg1ZTFkNzMuLjNhMjJkY2UgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvbW1hcC1iYXNpYy5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvbW1hcC1iYXNpYy5jCkBAIC0xMCw4ICsxMCw4IEBACiAjaW5jbHVkZSAiZXZsaXN0LmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKICNpbmNsdWRlICJ0aHJlYWRfbWFwLmgiCi0jaW5jbHVkZSAiY3B1bWFwLmgiCiAjaW5jbHVkZSAidGVzdHMuaCIKKyNpbmNsdWRlICJ1dGlsL21tYXAuaCIKICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KQEAgLTQzLDcgKzQzLDcgQEAgaW50IHRlc3RfX2Jhc2ljX21tYXAoc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0IF9fbWF5YmVfdW51c2UKIAkJICAgICBleHBlY3RlZF9ucl9ldmVudHNbbnN5c2NhbGxzXSwgaSwgajsKIAlzdHJ1Y3QgZXZzZWwgKmV2c2Vsc1tuc3lzY2FsbHNdLCAqZXZzZWw7CiAJY2hhciBzYnVmW1NUUkVSUl9CVUZTSVpFXTsKLQlzdHJ1Y3QgcGVyZl9tbWFwICptZDsKKwlzdHJ1Y3QgbW1hcCAqbWQ7CiAKIAl0aHJlYWRzID0gdGhyZWFkX21hcF9fbmV3KC0xLCBnZXRwaWQoKSwgVUlOVF9NQVgpOwogCWlmICh0aHJlYWRzID09IE5VTEwpIHsKQEAgLTUzLDcgKzUzLDcgQEAgaW50IHRlc3RfX2Jhc2ljX21tYXAoc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0IF9fbWF5YmVfdW51c2UKIAogCWNwdXMgPSBwZXJmX2NwdV9tYXBfX25ldyhOVUxMKTsKIAlpZiAoY3B1cyA9PSBOVUxMKSB7Ci0JCXByX2RlYnVnKCJjcHVfbWFwX19uZXdcbiIpOworCQlwcl9kZWJ1ZygicGVyZl9jcHVfbWFwX19uZXdcbiIpOwogCQlnb3RvIG91dF9mcmVlX3RocmVhZHM7CiAJfQogCkBAIC0xMDAsNyArMTAwLDcgQEAgaW50IHRlc3RfX2Jhc2ljX21tYXAoc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0IF9fbWF5YmVfdW51c2UKIAkJZXhwZWN0ZWRfbnJfZXZlbnRzW2ldID0gMSArIHJhbmQoKSAlIDEyNzsKIAl9CiAKLQlpZiAocGVyZl9ldmxpc3RfX21tYXAoZXZsaXN0LCAxMjgpIDwgMCkgeworCWlmIChldmxpc3RfX21tYXAoZXZsaXN0LCAxMjgpIDwgMCkgewogCQlwcl9kZWJ1ZygiZmFpbGVkIHRvIG1tYXAgZXZlbnRzOiAlZCAoJXMpXG4iLCBlcnJubywKIAkJCSBzdHJfZXJyb3JfcihlcnJubywgc2J1Ziwgc2l6ZW9mKHNidWYpKSk7CiAJCWdvdG8gb3V0X2RlbGV0ZV9ldmxpc3Q7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL21tYXAtdGhyZWFkLWxvb2t1cC5jIGIvdG9vbHMvcGVyZi90ZXN0cy9tbWFwLXRocmVhZC1sb29rdXAuYwppbmRleCAzNjBkNzBkLi44ZDlkNGNiIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL21tYXAtdGhyZWFkLWxvb2t1cC5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvbW1hcC10aHJlYWQtbG9va3VwLmMKQEAgLTgsMTMgKzgsMTUgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgImRlYnVnLmgiCisjaW5jbHVkZSAiZXZlbnQuaCIKICNpbmNsdWRlICJ0ZXN0cy5oIgogI2luY2x1ZGUgIm1hY2hpbmUuaCIKICNpbmNsdWRlICJ0aHJlYWRfbWFwLmgiCiAjaW5jbHVkZSAibWFwLmgiCiAjaW5jbHVkZSAic3ltYm9sLmgiCisjaW5jbHVkZSAidXRpbC9zeW50aGV0aWMtZXZlbnRzLmgiCiAjaW5jbHVkZSAidGhyZWFkLmgiCi0jaW5jbHVkZSAidXRpbC5oIgorI2luY2x1ZGUgPGludGVybmFsL2xpYi5oPiAvLyBwYWdlX3NpemUKIAogI2RlZmluZSBUSFJFQURTIDQKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy9vcGVuYXQtc3lzY2FsbC1hbGwtY3B1cy5jIGIvdG9vbHMvcGVyZi90ZXN0cy9vcGVuYXQtc3lzY2FsbC1hbGwtY3B1cy5jCmluZGV4IDkxNzFmNzcuLjkzYzE3NjUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvb3BlbmF0LXN5c2NhbGwtYWxsLWNwdXMuYworKysgYi90b29scy9wZXJmL3Rlc3RzL29wZW5hdC1zeXNjYWxsLWFsbC1jcHVzLmMKQEAgLTE0LDcgKzE0LDggQEAKICNpbmNsdWRlICJldnNlbC5oIgogI2luY2x1ZGUgInRlc3RzLmgiCiAjaW5jbHVkZSAidGhyZWFkX21hcC5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgorI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwvY3B1bWFwLmg+CiAjaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJzdGF0LmgiCiAjaW5jbHVkZSAidXRpbC9jb3VudHMuaCIKQEAgLTM3LDcgKzM4LDcgQEAgaW50IHRlc3RfX29wZW5hdF9zeXNjYWxsX2V2ZW50X29uX2FsbF9jcHVzKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQKIAogCWNwdXMgPSBwZXJmX2NwdV9tYXBfX25ldyhOVUxMKTsKIAlpZiAoY3B1cyA9PSBOVUxMKSB7Ci0JCXByX2RlYnVnKCJjcHVfbWFwX19uZXdcbiIpOworCQlwcl9kZWJ1ZygicGVyZl9jcHVfbWFwX19uZXdcbiIpOwogCQlnb3RvIG91dF90aHJlYWRfbWFwX2RlbGV0ZTsKIAl9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvb3BlbmF0LXN5c2NhbGwtdHAtZmllbGRzLmMgYi90b29scy9wZXJmL3Rlc3RzL29wZW5hdC1zeXNjYWxsLXRwLWZpZWxkcy5jCmluZGV4IGI3MTE2N2IuLjJiNWM0NjggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvb3BlbmF0LXN5c2NhbGwtdHAtZmllbGRzLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9vcGVuYXQtc3lzY2FsbC10cC1maWVsZHMuYwpAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgInJlY29yZC5oIgogI2luY2x1ZGUgInRlc3RzLmgiCiAjaW5jbHVkZSAiZGVidWcuaCIKKyNpbmNsdWRlICJ1dGlsL21tYXAuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogCiAjaWZuZGVmIE9fRElSRUNUT1JZCkBAIC02OSw5ICs3MCw5IEBAIGludCB0ZXN0X19zeXNjYWxsX29wZW5hdF90cF9maWVsZHMoc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0CiAJCWdvdG8gb3V0X2RlbGV0ZV9ldmxpc3Q7CiAJfQogCi0JZXJyID0gcGVyZl9ldmxpc3RfX21tYXAoZXZsaXN0LCBVSU5UX01BWCk7CisJZXJyID0gZXZsaXN0X19tbWFwKGV2bGlzdCwgVUlOVF9NQVgpOwogCWlmIChlcnIgPCAwKSB7Ci0JCXByX2RlYnVnKCJwZXJmX2V2bGlzdF9fbW1hcDogJXNcbiIsCisJCXByX2RlYnVnKCJldmxpc3RfX21tYXA6ICVzXG4iLAogCQkJIHN0cl9lcnJvcl9yKGVycm5vLCBzYnVmLCBzaXplb2Yoc2J1ZikpKTsKIAkJZ290byBvdXRfZGVsZXRlX2V2bGlzdDsKIAl9CkBAIC04Niw5ICs4Nyw5IEBAIGludCB0ZXN0X19zeXNjYWxsX29wZW5hdF90cF9maWVsZHMoc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0CiAJd2hpbGUgKDEpIHsKIAkJaW50IGJlZm9yZSA9IG5yX2V2ZW50czsKIAotCQlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5ucl9tbWFwczsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPmNvcmUubnJfbW1hcHM7IGkrKykgewogCQkJdW5pb24gcGVyZl9ldmVudCAqZXZlbnQ7Ci0JCQlzdHJ1Y3QgcGVyZl9tbWFwICptZDsKKwkJCXN0cnVjdCBtbWFwICptZDsKIAogCQkJbWQgPSAmZXZsaXN0LT5tbWFwW2ldOwogCQkJaWYgKHBlcmZfbW1hcF9fcmVhZF9pbml0KG1kKSA8IDApCkBAIC0xMjYsNyArMTI3LDcgQEAgaW50IHRlc3RfX3N5c2NhbGxfb3BlbmF0X3RwX2ZpZWxkcyhzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QKIAkJfQogCiAJCWlmIChucl9ldmVudHMgPT0gYmVmb3JlKQotCQkJcGVyZl9ldmxpc3RfX3BvbGwoZXZsaXN0LCAxMCk7CisJCQlldmxpc3RfX3BvbGwoZXZsaXN0LCAxMCk7CiAKIAkJaWYgKCsrbnJfcG9sbHMgPiA1KSB7CiAJCQlwcl9kZWJ1ZygiJXM6IG5vIGV2ZW50cyFcbiIsIF9fZnVuY19fKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvcGFyc2UtZXZlbnRzLmMgYi90b29scy9wZXJmL3Rlc3RzL3BhcnNlLWV2ZW50cy5jCmluZGV4IDAyYmE2OTYuLjI1ZTBlZDIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvcGFyc2UtZXZlbnRzLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9wYXJzZS1ldmVudHMuYwpAQCAtNiw3ICs2LDYgQEAKICNpbmNsdWRlICJ0ZXN0cy5oIgogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAicG11LmgiCi0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgPGRpcmVudC5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CkBAIC00Nyw3ICs0Niw3IEBAIHN0YXRpYyBib29sIGt2bV9zMzkwX2NyZWF0ZV92bV92YWxpZCh2b2lkKQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfdHJhY2Vwb2ludChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMSA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZ3JvdXBzIiwgMCA9PSBldmxpc3QtPm5yX2dyb3Vwcyk7CkBAIC03OCw3ICs3Nyw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF90cmFjZXBvaW50X211bHRpKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X3JhdyhzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMSA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX1JBVyA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwpAQCAtODgsNyArODcsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfcmF3KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X251bWVyaWMoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZW50cmllcyIsIDEgPT0gZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIDEgPT0gZXZzZWwtPmNvcmUuYXR0ci50eXBlKTsKQEAgLTk4LDcgKzk3LDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X251bWVyaWMoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfc3ltYm9saWNfbmFtZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMSA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX0hBUkRXQVJFID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CkBAIC0xMDksNyArMTA4LDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X3N5bWJvbGljX25hbWUoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfc3ltYm9saWNfbmFtZV9jb25maWcoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZW50cmllcyIsIDEgPT0gZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIFBFUkZfVFlQRV9IQVJEV0FSRSA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwpAQCAtMTMwLDcgKzEyOSw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9zeW1ib2xpY19uYW1lX2NvbmZpZyhzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9zeW1ib2xpY19hbGlhcyhzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMSA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX1NPRlRXQVJFID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CkBAIC0xNDEsNyArMTQwLDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X3N5bWJvbGljX2FsaWFzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2dlbmh3KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbnVtYmVyIG9mIGVudHJpZXMiLCAxID09IGV2bGlzdC0+Y29yZS5ucl9lbnRyaWVzKTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIHR5cGUiLCBQRVJGX1RZUEVfSFdfQ0FDSEUgPT0gZXZzZWwtPmNvcmUuYXR0ci50eXBlKTsKQEAgLTE1MSw3ICsxNTAsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfZ2VuaHcoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfYnJlYWtwb2ludChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMSA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX0JSRUFLUE9JTlQgPT0gZXZzZWwtPmNvcmUuYXR0ci50eXBlKTsKQEAgLTE2NSw3ICsxNjQsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfYnJlYWtwb2ludChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X3goc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZW50cmllcyIsIDEgPT0gZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIFBFUkZfVFlQRV9CUkVBS1BPSU5UID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CkBAIC0xNzgsNyArMTc3LDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2JyZWFrcG9pbnRfeChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X3Ioc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZW50cmllcyIsIDEgPT0gZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsCkBAIC0xOTMsNyArMTkyLDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2JyZWFrcG9pbnRfcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X3coc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZW50cmllcyIsIDEgPT0gZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsCkBAIC0yMDgsNyArMjA3LDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2JyZWFrcG9pbnRfdyhzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X3J3KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbnVtYmVyIG9mIGVudHJpZXMiLCAxID09IGV2bGlzdC0+Y29yZS5ucl9lbnRyaWVzKTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIHR5cGUiLApAQCAtMjIzLDcgKzIyMiw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X3J3KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X3RyYWNlcG9pbnRfbW9kaWZpZXIoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBleGNsdWRlX3VzZXIiLCBldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfdXNlcik7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBleGNsdWRlX2tlcm5lbCIsICFldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfa2VybmVsKTsKQEAgLTI1NCw3ICsyNTMsNyBAQCB0ZXN0X19jaGVja2V2ZW50X3RyYWNlcG9pbnRfbXVsdGlfbW9kaWZpZXIoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfcmF3X21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV91c2VyIiwgZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX3VzZXIpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV9rZXJuZWwiLCAhZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX2tlcm5lbCk7CkBAIC0yNjYsNyArMjY1LDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X3Jhd19tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9udW1lcmljX21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV91c2VyIiwgZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX3VzZXIpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV9rZXJuZWwiLCBldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfa2VybmVsKTsKQEAgLTI3OCw3ICsyNzcsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfbnVtZXJpY19tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9zeW1ib2xpY19uYW1lX21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV91c2VyIiwgZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX3VzZXIpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV9rZXJuZWwiLCBldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfa2VybmVsKTsKQEAgLTI5MCw3ICsyODksNyBAQCBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfc3ltYm9saWNfbmFtZV9tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9leGNsdWRlX2hvc3RfbW9kaWZpZXIoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBleGNsdWRlIGd1ZXN0IiwgIWV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV9ndWVzdCk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBleGNsdWRlIGhvc3QiLCBldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfaG9zdCk7CkBAIC0zMDAsNyArMjk5LDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2V4Y2x1ZGVfaG9zdF9tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9leGNsdWRlX2d1ZXN0X21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZSBndWVzdCIsIGV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV9ndWVzdCk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBleGNsdWRlIGhvc3QiLCAhZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX2hvc3QpOwpAQCAtMzEwLDcgKzMwOSw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9leGNsdWRlX2d1ZXN0X21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X3N5bWJvbGljX2FsaWFzX21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV91c2VyIiwgIWV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV91c2VyKTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGV4Y2x1ZGVfa2VybmVsIiwgZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX2tlcm5lbCk7CkBAIC0zMjIsNyArMzIxLDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X3N5bWJvbGljX2FsaWFzX21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2dlbmh3X21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV91c2VyIiwgZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX3VzZXIpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV9rZXJuZWwiLCAhZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX2tlcm5lbCk7CkBAIC0zMzQsNyArMzMzLDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2dlbmh3X21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2V4Y2x1ZGVfaWRsZV9tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGV4Y2x1ZGUgaWRsZSIsIGV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV9pZGxlKTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGV4Y2x1ZGUgZ3Vlc3QiLCAhZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX2d1ZXN0KTsKQEAgLTM0OSw3ICszNDgsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfZXhjbHVkZV9pZGxlX21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2V4Y2x1ZGVfaWRsZV9tb2RpZmllcl8xKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZSBpZGxlIiwgZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX2lkbGUpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZSBndWVzdCIsICFldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfZ3Vlc3QpOwpAQCAtMzY0LDcgKzM2Myw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9leGNsdWRlX2lkbGVfbW9kaWZpZXJfMShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBleGNsdWRlX3VzZXIiLCAhZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX3VzZXIpOwpAQCAtMzc5LDcgKzM3OCw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2JyZWFrcG9pbnRfeF9tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGV4Y2x1ZGVfdXNlciIsIGV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV91c2VyKTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGV4Y2x1ZGVfa2VybmVsIiwgIWV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV9rZXJuZWwpOwpAQCAtMzkzLDcgKzM5Miw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X3hfbW9kaWZpZXIoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfYnJlYWtwb2ludF9yX21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV91c2VyIiwgZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX3VzZXIpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV9rZXJuZWwiLCBldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfa2VybmVsKTsKQEAgLTQwNyw3ICs0MDYsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfYnJlYWtwb2ludF9yX21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2JyZWFrcG9pbnRfd19tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGV4Y2x1ZGVfdXNlciIsICFldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfdXNlcik7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBleGNsdWRlX2tlcm5lbCIsIGV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV9rZXJuZWwpOwpAQCAtNDIxLDcgKzQyMCw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X3dfbW9kaWZpZXIoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfYnJlYWtwb2ludF9yd19tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGV4Y2x1ZGVfdXNlciIsIGV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV91c2VyKTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGV4Y2x1ZGVfa2VybmVsIiwgIWV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV9rZXJuZWwpOwpAQCAtNDM2LDcgKzQzNSw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X3J3X21vZGlmaWVyKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9wbXUoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewogCi0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMSA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX1JBVyA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwpAQCAtNDU0LDcgKzQ1Myw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9wbXUoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfbGlzdChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMyA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAKQEAgLTQ5Myw3ICs0OTIsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfbGlzdChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9wbXVfbmFtZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAkvKiBjcHUvY29uZmlnPTEsbmFtZT1rcmF2YS91ICovCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZW50cmllcyIsIDIgPT0gZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMpOwpAQCAtNTE0LDcgKzUxMyw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9wbXVfbmFtZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9wbXVfcGFydGlhbF90aW1lX2NhbGxncmFwaChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAkvKiBjcHUvY29uZmlnPTEsY2FsbC1ncmFwaD1mcCx0aW1lLHBlcmlvZD0xMDAwMDAvICovCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZW50cmllcyIsIDIgPT0gZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMpOwpAQCAtNTQ3LDcgKzU0Niw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9wbXVfcGFydGlhbF90aW1lX2NhbGxncmFwaChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9wbXVfZXZlbnRzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbnVtYmVyIG9mIGVudHJpZXMiLCAxID09IGV2bGlzdC0+Y29yZS5ucl9lbnRyaWVzKTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIHR5cGUiLCBQRVJGX1RZUEVfUkFXID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CkBAIC01NjUsNyArNTY0LDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X3BtdV9ldmVudHMoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfcG11X2V2ZW50c19taXgoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJLyogcG11LWV2ZW50OnUgKi8KIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMiA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CkBAIC02NDMsNyArNjQyLDcgQEAgc3RhdGljIGludCB0ZXN0X19ncm91cDEoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbnVtYmVyIG9mIGdyb3VwcyIsIDEgPT0gZXZsaXN0LT5ucl9ncm91cHMpOwogCiAJLyogaW5zdHJ1Y3Rpb25zOmsgKi8KLQlldnNlbCA9IGxlYWRlciA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gbGVhZGVyID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIFBFUkZfVFlQRV9IQVJEV0FSRSA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgY29uZmlnIiwKIAkJCVBFUkZfQ09VTlRfSFdfSU5TVFJVQ1RJT05TID09IGV2c2VsLT5jb3JlLmF0dHIuY29uZmlnKTsKQEAgLTY4NSw3ICs2ODQsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2dyb3VwMihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZ3JvdXBzIiwgMSA9PSBldmxpc3QtPm5yX2dyb3Vwcyk7CiAKIAkvKiBmYXVsdHMgKyA6a3UgbW9kaWZpZXIgKi8KLQlldnNlbCA9IGxlYWRlciA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gbGVhZGVyID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIFBFUkZfVFlQRV9TT0ZUV0FSRSA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgY29uZmlnIiwKIAkJCVBFUkZfQ09VTlRfU1dfUEFHRV9GQVVMVFMgPT0gZXZzZWwtPmNvcmUuYXR0ci5jb25maWcpOwpAQCAtNzQwLDcgKzczOSw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fZ3JvdXAzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCBfX21heWJlX3VudXNlZCkKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBncm91cHMiLCAyID09IGV2bGlzdC0+bnJfZ3JvdXBzKTsKIAogCS8qIGdyb3VwMSBzeXNjYWxsczpzeXNfZW50ZXJfb3BlbmF0OkggKi8KLQlldnNlbCA9IGxlYWRlciA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gbGVhZGVyID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIFBFUkZfVFlQRV9UUkFDRVBPSU5UID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBzYW1wbGVfdHlwZSIsCiAJCVBFUkZfVFBfU0FNUExFX1RZUEUgPT0gZXZzZWwtPmNvcmUuYXR0ci5zYW1wbGVfdHlwZSk7CkBAIC04MzIsNyArODMxLDcgQEAgc3RhdGljIGludCB0ZXN0X19ncm91cDQoc3RydWN0IGV2bGlzdCAqZXZsaXN0IF9fbWF5YmVfdW51c2VkKQogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbnVtYmVyIG9mIGdyb3VwcyIsIDEgPT0gZXZsaXN0LT5ucl9ncm91cHMpOwogCiAJLyogY3ljbGVzOnUgKyBwICovCi0JZXZzZWwgPSBsZWFkZXIgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlldnNlbCA9IGxlYWRlciA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIHR5cGUiLCBQRVJGX1RZUEVfSEFSRFdBUkUgPT0gZXZzZWwtPmNvcmUuYXR0ci50eXBlKTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGNvbmZpZyIsCiAJCQlQRVJGX0NPVU5UX0hXX0NQVV9DWUNMRVMgPT0gZXZzZWwtPmNvcmUuYXR0ci5jb25maWcpOwpAQCAtODc2LDcgKzg3NSw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fZ3JvdXA1KHN0cnVjdCBldmxpc3QgKmV2bGlzdCBfX21heWJlX3VudXNlZCkKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBncm91cHMiLCAyID09IGV2bGlzdC0+bnJfZ3JvdXBzKTsKIAogCS8qIGN5Y2xlcyArIEcgKi8KLQlldnNlbCA9IGxlYWRlciA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gbGVhZGVyID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIFBFUkZfVFlQRV9IQVJEV0FSRSA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgY29uZmlnIiwKIAkJCVBFUkZfQ09VTlRfSFdfQ1BVX0NZQ0xFUyA9PSBldnNlbC0+Y29yZS5hdHRyLmNvbmZpZyk7CkBAIC05NjIsNyArOTYxLDcgQEAgc3RhdGljIGludCB0ZXN0X19ncm91cF9naDEoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbnVtYmVyIG9mIGdyb3VwcyIsIDEgPT0gZXZsaXN0LT5ucl9ncm91cHMpOwogCiAJLyogY3ljbGVzICsgOkggZ3JvdXAgbW9kaWZpZXIgKi8KLQlldnNlbCA9IGxlYWRlciA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gbGVhZGVyID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIFBFUkZfVFlQRV9IQVJEV0FSRSA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgY29uZmlnIiwKIAkJCVBFUkZfQ09VTlRfSFdfQ1BVX0NZQ0xFUyA9PSBldnNlbC0+Y29yZS5hdHRyLmNvbmZpZyk7CkBAIC0xMDAyLDcgKzEwMDEsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2dyb3VwX2doMihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZ3JvdXBzIiwgMSA9PSBldmxpc3QtPm5yX2dyb3Vwcyk7CiAKIAkvKiBjeWNsZXMgKyA6RyBncm91cCBtb2RpZmllciAqLwotCWV2c2VsID0gbGVhZGVyID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJZXZzZWwgPSBsZWFkZXIgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX0hBUkRXQVJFID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBjb25maWciLAogCQkJUEVSRl9DT1VOVF9IV19DUFVfQ1lDTEVTID09IGV2c2VsLT5jb3JlLmF0dHIuY29uZmlnKTsKQEAgLTEwNDIsNyArMTA0MSw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fZ3JvdXBfZ2gzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBncm91cHMiLCAxID09IGV2bGlzdC0+bnJfZ3JvdXBzKTsKIAogCS8qIGN5Y2xlczpHICsgOnUgZ3JvdXAgbW9kaWZpZXIgKi8KLQlldnNlbCA9IGxlYWRlciA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gbGVhZGVyID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIFBFUkZfVFlQRV9IQVJEV0FSRSA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgY29uZmlnIiwKIAkJCVBFUkZfQ09VTlRfSFdfQ1BVX0NZQ0xFUyA9PSBldnNlbC0+Y29yZS5hdHRyLmNvbmZpZyk7CkBAIC0xMDgyLDcgKzEwODEsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2dyb3VwX2doNChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBudW1iZXIgb2YgZ3JvdXBzIiwgMSA9PSBldmxpc3QtPm5yX2dyb3Vwcyk7CiAKIAkvKiBjeWNsZXM6RyArIDp1RyBncm91cCBtb2RpZmllciAqLwotCWV2c2VsID0gbGVhZGVyID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJZXZzZWwgPSBsZWFkZXIgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX0hBUkRXQVJFID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBjb25maWciLAogCQkJUEVSRl9DT1VOVF9IV19DUFVfQ1lDTEVTID09IGV2c2VsLT5jb3JlLmF0dHIuY29uZmlnKTsKQEAgLTExMjEsNyArMTEyMCw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fbGVhZGVyX3NhbXBsZTEoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbnVtYmVyIG9mIGVudHJpZXMiLCAzID09IGV2bGlzdC0+Y29yZS5ucl9lbnRyaWVzKTsKIAogCS8qIGN5Y2xlcyAtIHNhbXBsaW5nIGdyb3VwIGxlYWRlciAqLwotCWV2c2VsID0gbGVhZGVyID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJZXZzZWwgPSBsZWFkZXIgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX0hBUkRXQVJFID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBjb25maWciLAogCQkJUEVSRl9DT1VOVF9IV19DUFVfQ1lDTEVTID09IGV2c2VsLT5jb3JlLmF0dHIuY29uZmlnKTsKQEAgLTExNzQsNyArMTE3Myw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fbGVhZGVyX3NhbXBsZTIoc3RydWN0IGV2bGlzdCAqZXZsaXN0IF9fbWF5YmVfdW51c2VkKQogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbnVtYmVyIG9mIGVudHJpZXMiLCAyID09IGV2bGlzdC0+Y29yZS5ucl9lbnRyaWVzKTsKIAogCS8qIGluc3RydWN0aW9ucyAtIHNhbXBsaW5nIGdyb3VwIGxlYWRlciAqLwotCWV2c2VsID0gbGVhZGVyID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJZXZzZWwgPSBsZWFkZXIgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX0hBUkRXQVJFID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBjb25maWciLAogCQkJUEVSRl9DT1VOVF9IV19JTlNUUlVDVElPTlMgPT0gZXZzZWwtPmNvcmUuYXR0ci5jb25maWcpOwpAQCAtMTIwOCw3ICsxMjA3LDcgQEAgc3RhdGljIGludCB0ZXN0X19sZWFkZXJfc2FtcGxlMihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QgX19tYXliZV91bnVzZWQpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9waW5uZWRfbW9kaWZpZXIoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBleGNsdWRlX3VzZXIiLCAhZXZzZWwtPmNvcmUuYXR0ci5leGNsdWRlX3VzZXIpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgZXhjbHVkZV9rZXJuZWwiLCBldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfa2VybmVsKTsKQEAgLTEyMjYsNyArMTIyNSw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fcGlubmVkX2dyb3VwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMyA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAKIAkvKiBjeWNsZXMgLSBncm91cCBsZWFkZXIgKi8KLQlldnNlbCA9IGxlYWRlciA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCWV2c2VsID0gbGVhZGVyID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIFBFUkZfVFlQRV9IQVJEV0FSRSA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgY29uZmlnIiwKIAkJCVBFUkZfQ09VTlRfSFdfQ1BVX0NZQ0xFUyA9PSBldnNlbC0+Y29yZS5hdHRyLmNvbmZpZyk7CkBAIC0xMjUyLDcgKzEyNTEsNyBAQCBzdGF0aWMgaW50IHRlc3RfX3Bpbm5lZF9ncm91cChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X2xlbihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMSA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX0JSRUFLUE9JTlQgPT0gZXZzZWwtPmNvcmUuYXR0ci50eXBlKTsKQEAgLTEyNjcsNyArMTI2Niw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X2xlbihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X2xlbl93KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbnVtYmVyIG9mIGVudHJpZXMiLCAxID09IGV2bGlzdC0+Y29yZS5ucl9lbnRyaWVzKTsKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIHR5cGUiLCBQRVJGX1RZUEVfQlJFQUtQT0lOVCA9PSBldnNlbC0+Y29yZS5hdHRyLnR5cGUpOwpAQCAtMTI4Myw3ICsxMjgyLDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2JyZWFrcG9pbnRfbGVuX3coc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogc3RhdGljIGludAogdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X2xlbl9yd19tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIGV4Y2x1ZGVfdXNlciIsICFldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfdXNlcik7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBleGNsdWRlX2tlcm5lbCIsIGV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV9rZXJuZWwpOwpAQCAtMTI5NSw3ICsxMjk0LDcgQEAgdGVzdF9fY2hlY2tldmVudF9icmVha3BvaW50X2xlbl9yd19tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9wcmVjaXNlX21heF9tb2RpZmllcihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG51bWJlciBvZiBlbnRyaWVzIiwgMiA9PSBldmxpc3QtPmNvcmUubnJfZW50cmllcyk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgUEVSRl9UWVBFX1NPRlRXQVJFID09IGV2c2VsLT5jb3JlLmF0dHIudHlwZSk7CkBAIC0xMzA2LDcgKzEzMDUsNyBAQCBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfcHJlY2lzZV9tYXhfbW9kaWZpZXIoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfY29uZmlnX3N5bWJvbChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG5hbWUgc2V0dGluZyIsIHN0cmNtcChldnNlbC0+bmFtZSwgImluc24iKSA9PSAwKTsKIAlyZXR1cm4gMDsKQEAgLTEzMTQsNyArMTMxMyw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9jb25maWdfc3ltYm9sKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2NvbmZpZ19yYXcoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBuYW1lIHNldHRpbmciLCBzdHJjbXAoZXZzZWwtPm5hbWUsICJyYXdwbXUiKSA9PSAwKTsKIAlyZXR1cm4gMDsKQEAgLTEzMjIsNyArMTMyMSw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9jb25maWdfcmF3KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2NvbmZpZ19udW0oc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBuYW1lIHNldHRpbmciLCBzdHJjbXAoZXZzZWwtPm5hbWUsICJudW1wbXUiKSA9PSAwKTsKIAlyZXR1cm4gMDsKQEAgLTEzMzAsNyArMTMyOSw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fY2hlY2tldmVudF9jb25maWdfbnVtKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2NvbmZpZ19jYWNoZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpldnNlbCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlURVNUX0FTU0VSVF9WQUwoIndyb25nIG5hbWUgc2V0dGluZyIsIHN0cmNtcChldnNlbC0+bmFtZSwgImNhY2hlcG11IikgPT0gMCk7CiAJcmV0dXJuIDA7CkBAIC0xMzQzLDcgKzEzNDIsNyBAQCBzdGF0aWMgYm9vbCB0ZXN0X19pbnRlbF9wdF92YWxpZCh2b2lkKQogCiBzdGF0aWMgaW50IHRlc3RfX2ludGVsX3B0KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgbmFtZSBzZXR0aW5nIiwgc3RyY21wKGV2c2VsLT5uYW1lLCAiaW50ZWxfcHQvL3UiKSA9PSAwKTsKIAlyZXR1cm4gMDsKQEAgLTEzNTEsNyArMTM1MCw3IEBAIHN0YXRpYyBpbnQgdGVzdF9faW50ZWxfcHQoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCiBzdGF0aWMgaW50IHRlc3RfX2NoZWNrZXZlbnRfY29tcGxleF9uYW1lKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgY29tcGxleCBuYW1lIHBhcnNpbmciLCBzdHJjbXAoZXZzZWwtPm5hbWUsICJDT01QTEVYX0NZQ0xFU19OQU1FOm9yaWc9Y3ljbGVzLGRlc2M9Y2hpcC1jbG9jay10aWNrcyIpID09IDApOwogCXJldHVybiAwOwpAQCAtMTM1OSw3ICsxMzU4LDcgQEAgc3RhdGljIGludCB0ZXN0X19jaGVja2V2ZW50X2NvbXBsZXhfbmFtZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAKIHN0YXRpYyBpbnQgdGVzdF9fc3ltX2V2ZW50X3NsYXNoKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJc3RydWN0IGV2c2VsICpldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgdHlwZSIsIGV2c2VsLT5jb3JlLmF0dHIudHlwZSA9PSBQRVJGX1RZUEVfSEFSRFdBUkUpOwogCVRFU1RfQVNTRVJUX1ZBTCgid3JvbmcgY29uZmlnIiwgZXZzZWwtPmNvcmUuYXR0ci5jb25maWcgPT0gUEVSRl9DT1VOVF9IV19DUFVfQ1lDTEVTKTsKQEAgLTEzNjksNyArMTM2OCw3IEBAIHN0YXRpYyBpbnQgdGVzdF9fc3ltX2V2ZW50X3NsYXNoKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogc3RhdGljIGludCB0ZXN0X19zeW1fZXZlbnRfZGMoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyB0eXBlIiwgZXZzZWwtPmNvcmUuYXR0ci50eXBlID09IFBFUkZfVFlQRV9IQVJEV0FSRSk7CiAJVEVTVF9BU1NFUlRfVkFMKCJ3cm9uZyBjb25maWciLCBldnNlbC0+Y29yZS5hdHRyLmNvbmZpZyA9PSBQRVJGX0NPVU5UX0hXX0NQVV9DWUNMRVMpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy9wYXJzZS1uby1zYW1wbGUtaWQtYWxsLmMgYi90b29scy9wZXJmL3Rlc3RzL3BhcnNlLW5vLXNhbXBsZS1pZC1hbGwuYwppbmRleCA4Mjg0NzUyLi5hZGYzYzljIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL3BhcnNlLW5vLXNhbXBsZS1pZC1hbGwuYworKysgYi90b29scy9wZXJmL3Rlc3RzL3BhcnNlLW5vLXNhbXBsZS1pZC1hbGwuYwpAQCAtMSw0ICsxLDMgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxzdGRkZWYuaD4KQEAgLTgsNyArNyw2IEBACiAjaW5jbHVkZSAiZXZlbnQuaCIKICNpbmNsdWRlICJldmxpc3QuaCIKICNpbmNsdWRlICJoZWFkZXIuaCIKLSNpbmNsdWRlICJ1dGlsLmgiCiAjaW5jbHVkZSAiZGVidWcuaCIKIAogc3RhdGljIGludCBwcm9jZXNzX2V2ZW50KHN0cnVjdCBldmxpc3QgKipwZXZsaXN0LCB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCkKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvcGVyZi1ob29rcy5jIGIvdG9vbHMvcGVyZi90ZXN0cy9wZXJmLWhvb2tzLmMKaW5kZXggYTY5M2JjZi4uZGJjMjcxOSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9wZXJmLWhvb2tzLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9wZXJmLWhvb2tzLmMKQEAgLTQsNyArNCw2IEBACiAKICNpbmNsdWRlICJ0ZXN0cy5oIgogI2luY2x1ZGUgImRlYnVnLmgiCi0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgInBlcmYtaG9va3MuaCIKIAogc3RhdGljIHZvaWQgc2lnc2Vndl9oYW5kbGVyKGludCBzaWcgX19tYXliZV91bnVzZWQpCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL3BlcmYtcmVjb3JkLmMgYi90b29scy9wZXJmL3Rlc3RzL3BlcmYtcmVjb3JkLmMKaW5kZXggZTFiNDIyOS4uNDM3NDI2YiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9wZXJmLXJlY29yZC5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvcGVyZi1yZWNvcmQuYwpAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAicmVjb3JkLmgiCiAjaW5jbHVkZSAidGVzdHMuaCIKKyNpbmNsdWRlICJ1dGlsL21tYXAuaCIKIAogc3RhdGljIGludCBzY2hlZF9fZ2V0X2ZpcnN0X3Bvc3NpYmxlX2NwdShwaWRfdCBwaWQsIGNwdV9zZXRfdCAqbWFza3ApCiB7CkBAIC0xMDMsNyArMTA0LDcgQEAgaW50IHRlc3RfX1BFUkZfUkVDT1JEKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlX3VudXMKIAkvKgogCSAqIENvbmZpZyB0aGUgZXZzZWxzLCBzZXR0aW5nIGF0dHItPmNvbW0gb24gdGhlIGZpcnN0IG9uZSwgZXRjLgogCSAqLwotCWV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAJcGVyZl9ldnNlbF9fc2V0X3NhbXBsZV9iaXQoZXZzZWwsIENQVSk7CiAJcGVyZl9ldnNlbF9fc2V0X3NhbXBsZV9iaXQoZXZzZWwsIFRJRCk7CiAJcGVyZl9ldnNlbF9fc2V0X3NhbXBsZV9iaXQoZXZzZWwsIFRJTUUpOwpAQCAtMTQzLDkgKzE0NCw5IEBAIGludCB0ZXN0X19QRVJGX1JFQ09SRChzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZV91bnVzCiAJICogZmRzIGluIHRoZSBzYW1lIENQVSB0byBiZSBpbmplY3RlZCBpbiB0aGUgc2FtZSBtbWFwIHJpbmcgYnVmZmVyCiAJICogKHVzaW5nIGlvY3RsKFBFUkZfRVZFTlRfSU9DX1NFVF9PVVRQVVQpKS4KIAkgKi8KLQllcnIgPSBwZXJmX2V2bGlzdF9fbW1hcChldmxpc3QsIG9wdHMubW1hcF9wYWdlcyk7CisJZXJyID0gZXZsaXN0X19tbWFwKGV2bGlzdCwgb3B0cy5tbWFwX3BhZ2VzKTsKIAlpZiAoZXJyIDwgMCkgewotCQlwcl9kZWJ1ZygicGVyZl9ldmxpc3RfX21tYXA6ICVzXG4iLAorCQlwcl9kZWJ1ZygiZXZsaXN0X19tbWFwOiAlc1xuIiwKIAkJCSBzdHJfZXJyb3JfcihlcnJubywgc2J1Ziwgc2l6ZW9mKHNidWYpKSk7CiAJCWdvdG8gb3V0X2RlbGV0ZV9ldmxpc3Q7CiAJfQpAQCAtMTY0LDkgKzE2NSw5IEBAIGludCB0ZXN0X19QRVJGX1JFQ09SRChzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZV91bnVzCiAJd2hpbGUgKDEpIHsKIAkJaW50IGJlZm9yZSA9IHRvdGFsX2V2ZW50czsKIAotCQlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5ucl9tbWFwczsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPmNvcmUubnJfbW1hcHM7IGkrKykgewogCQkJdW5pb24gcGVyZl9ldmVudCAqZXZlbnQ7Ci0JCQlzdHJ1Y3QgcGVyZl9tbWFwICptZDsKKwkJCXN0cnVjdCBtbWFwICptZDsKIAogCQkJbWQgPSAmZXZsaXN0LT5tbWFwW2ldOwogCQkJaWYgKHBlcmZfbW1hcF9fcmVhZF9pbml0KG1kKSA8IDApCkBAIC0yODYsNyArMjg3LDcgQEAgaW50IHRlc3RfX1BFUkZfUkVDT1JEKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlX3VudXMKIAkJICogcGVyZl9ldmVudF9hdHRyLndha2V1cF9ldmVudHMsIGp1c3QgUEVSRl9FVkVOVF9TQU1QTEUgZG9lcy4KIAkJICovCiAJCWlmICh0b3RhbF9ldmVudHMgPT0gYmVmb3JlICYmIGZhbHNlKQotCQkJcGVyZl9ldmxpc3RfX3BvbGwoZXZsaXN0LCAtMSk7CisJCQlldmxpc3RfX3BvbGwoZXZsaXN0LCAtMSk7CiAKIAkJc2xlZXAoMSk7CiAJCWlmICgrK3dha2V1cHMgPiA1KSB7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL3BtdS5jIGIvdG9vbHMvcGVyZi90ZXN0cy9wbXUuYwppbmRleCAxNGE3ODg5Li43NDM3OWZmIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL3BtdS5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvcG11LmMKQEAgLTEsNyArMSw2IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogI2luY2x1ZGUgInBhcnNlLWV2ZW50cy5oIgogI2luY2x1ZGUgInBtdS5oIgotI2luY2x1ZGUgInV0aWwuaCIKICNpbmNsdWRlICJ0ZXN0cy5oIgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvc2FtcGxlLXBhcnNpbmcuYyBiL3Rvb2xzL3BlcmYvdGVzdHMvc2FtcGxlLXBhcnNpbmcuYwppbmRleCA1ZmNjMDY4Li4zYTAyNDI2IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL3NhbXBsZS1wYXJzaW5nLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9zYW1wbGUtcGFyc2luZy5jCkBAIC05LDEwICs5LDEwIEBACiAKICNpbmNsdWRlICJtYXBfc3ltYm9sLmgiCiAjaW5jbHVkZSAiYnJhbmNoLmgiCi0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgImV2ZW50LmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKICNpbmNsdWRlICJkZWJ1Zy5oIgorI2luY2x1ZGUgInV0aWwvc3ludGhldGljLWV2ZW50cy5oIgogCiAjaW5jbHVkZSAidGVzdHMuaCIKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy9zZHQuYyBiL3Rvb2xzL3BlcmYvdGVzdHMvc2R0LmMKaW5kZXggY2YxYmQ1Ny4uNjBmMGU5ZSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9zZHQuYworKysgYi90b29scy9wZXJmL3Rlc3RzL3NkdC5jCkBAIC0zLDYgKzMsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3lzL2Vwb2xsLmg+CiAjaW5jbHVkZSA8dXRpbC9zeW1ib2wuaD4KICNpbmNsdWRlIDxsaW51eC9maWx0ZXIuaD4KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvc3RhdC5jIGIvdG9vbHMvcGVyZi90ZXN0cy9zdGF0LmMKaW5kZXggY2MxMGI0MS4uYzE5MTE1MCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9zdGF0LmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9zdGF0LmMKQEAgLTUsNiArNSw3IEBACiAjaW5jbHVkZSAic3RhdC5oIgogI2luY2x1ZGUgImNvdW50cy5oIgogI2luY2x1ZGUgImRlYnVnLmgiCisjaW5jbHVkZSAidXRpbC9zeW50aGV0aWMtZXZlbnRzLmgiCiAKIHN0YXRpYyBib29sIGhhc190ZXJtKHN0cnVjdCBwZXJmX3JlY29yZF9zdGF0X2NvbmZpZyAqY29uZmlnLAogCQkgICAgIHU2NCB0YWcsIHU2NCB2YWwpCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3Rlc3RzL3N3LWNsb2NrLmMgYi90b29scy9wZXJmL3Rlc3RzL3N3LWNsb2NrLmMKaW5kZXggOTc2OTRhMC4uODQ1MTlkZiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9zdy1jbG9jay5jCisrKyBiL3Rvb2xzL3BlcmYvdGVzdHMvc3ctY2xvY2suYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgInV0aWwvZXZzZWwuaCIKICNpbmNsdWRlICJ1dGlsL2V2bGlzdC5oIgogI2luY2x1ZGUgInV0aWwvY3B1bWFwLmgiCisjaW5jbHVkZSAidXRpbC9tbWFwLmgiCiAjaW5jbHVkZSAidXRpbC90aHJlYWRfbWFwLmgiCiAjaW5jbHVkZSA8cGVyZi9ldmxpc3QuaD4KIApAQCAtNDIsNyArNDMsNyBAQCBzdGF0aWMgaW50IF9fdGVzdF9fc3dfY2xvY2tfZnJlcShlbnVtIHBlcmZfc3dfaWRzIGNsb2NrX2lkKQogCX07CiAJc3RydWN0IHBlcmZfY3B1X21hcCAqY3B1czsKIAlzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzOwotCXN0cnVjdCBwZXJmX21tYXAgKm1kOworCXN0cnVjdCBtbWFwICptZDsKIAogCWF0dHIuc2FtcGxlX2ZyZXEgPSA1MDA7CiAKQEAgLTgyLDcgKzgzLDcgQEAgc3RhdGljIGludCBfX3Rlc3RfX3N3X2Nsb2NrX2ZyZXEoZW51bSBwZXJmX3N3X2lkcyBjbG9ja19pZCkKIAkJZ290byBvdXRfZGVsZXRlX2V2bGlzdDsKIAl9CiAKLQllcnIgPSBwZXJmX2V2bGlzdF9fbW1hcChldmxpc3QsIDEyOCk7CisJZXJyID0gZXZsaXN0X19tbWFwKGV2bGlzdCwgMTI4KTsKIAlpZiAoZXJyIDwgMCkgewogCQlwcl9kZWJ1ZygiZmFpbGVkIHRvIG1tYXAgZXZlbnQ6ICVkICglcylcbiIsIGVycm5vLAogCQkJIHN0cl9lcnJvcl9yKGVycm5vLCBzYnVmLCBzaXplb2Yoc2J1ZikpKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvc3dpdGNoLXRyYWNraW5nLmMgYi90b29scy9wZXJmL3Rlc3RzL3N3aXRjaC10cmFja2luZy5jCmluZGV4IDFhNjBmYTEuLmZmYTU5MmUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvc3dpdGNoLXRyYWNraW5nLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy9zd2l0Y2gtdHJhY2tpbmcuYwpAQCAtMTQsOSArMTQsOSBAQAogI2luY2x1ZGUgImV2bGlzdC5oIgogI2luY2x1ZGUgImV2c2VsLmgiCiAjaW5jbHVkZSAidGhyZWFkX21hcC5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgogI2luY2x1ZGUgInJlY29yZC5oIgogI2luY2x1ZGUgInRlc3RzLmgiCisjaW5jbHVkZSAidXRpbC9tbWFwLmgiCiAKIHN0YXRpYyBpbnQgc3Bpbl9zbGVlcCh2b2lkKQogewpAQCAtMTQ0LDcgKzE0NCw3IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19zYW1wbGVfZXZlbnQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkJcmV0dXJuIGVycjsKIAkJLyoKIAkJICogQ2hlY2sgZm9yIG5vIG1pc3Npbmcgc2NoZWRfc3dpdGNoIGV2ZW50cyBpLmUuIHRoYXQgdGhlCi0JCSAqIGV2c2VsLT5zeXN0ZW1fd2lkZSBmbGFnIGhhcyB3b3JrZWQuCisJCSAqIGV2c2VsLT5jb3JlLnN5c3RlbV93aWRlIGZsYWcgaGFzIHdvcmtlZC4KIAkJICovCiAJCWlmIChzd2l0Y2hfdHJhY2tpbmctPnRpZHNbY3B1XSAhPSAtMSAmJgogCQkgICAgc3dpdGNoX3RyYWNraW5nLT50aWRzW2NwdV0gIT0gcHJldl90aWQpIHsKQEAgLTI2NCwxMCArMjY0LDEwIEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19ldmVudHMoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCXVuc2lnbmVkIHBvcywgY250ID0gMDsKIAlMSVNUX0hFQUQoZXZlbnRzKTsKIAlzdHJ1Y3QgZXZlbnRfbm9kZSAqZXZlbnRzX2FycmF5LCAqbm9kZTsKLQlzdHJ1Y3QgcGVyZl9tbWFwICptZDsKKwlzdHJ1Y3QgbW1hcCAqbWQ7CiAJaW50IGksIHJldDsKIAotCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPm5yX21tYXBzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspIHsKIAkJbWQgPSAmZXZsaXN0LT5tbWFwW2ldOwogCQlpZiAocGVyZl9tbWFwX19yZWFkX2luaXQobWQpIDwgMCkKIAkJCWNvbnRpbnVlOwpAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19ldmVudHMoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogICoKICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyBhIHRlc3QgdGhhdCBjaGVja3MgdGhhdCBzY2hlZF9zd2l0Y2ggZXZlbnRzIGFuZAogICogdHJhY2tpbmcgZXZlbnRzIGNhbiBiZSByZWNvcmRlZCBmb3IgYSB3b3JrbG9hZCAoY3VycmVudCBwcm9jZXNzKSB1c2luZyB0aGUKLSAqIGV2c2VsLT5zeXN0ZW1fd2lkZSBhbmQgZXZzZWwtPnRyYWNraW5nIGZsYWdzIChyZXNwZWN0aXZlbHkpIHdpdGggb3RoZXIgZXZlbnRzCisgKiBldnNlbC0+Y29yZS5zeXN0ZW1fd2lkZSBhbmQgZXZzZWwtPnRyYWNraW5nIGZsYWdzIChyZXNwZWN0aXZlbHkpIHdpdGggb3RoZXIgZXZlbnRzCiAgKiBzb21ldGltZXMgZW5hYmxlZCBvciBkaXNhYmxlZC4KICAqLwogaW50IHRlc3RfX3N3aXRjaF90cmFja2luZyhzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZV91bnVzZWQpCkBAIC0zNjcsNyArMzY3LDcgQEAgaW50IHRlc3RfX3N3aXRjaF90cmFja2luZyhzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZV8KIAkJZ290byBvdXRfZXJyOwogCX0KIAotCWNwdV9jbG9ja3NfZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCWNwdV9jbG9ja3NfZXZzZWwgPSBldmxpc3RfX2xhc3QoZXZsaXN0KTsKIAogCS8qIFNlY29uZCBldmVudCAqLwogCWVyciA9IHBhcnNlX2V2ZW50cyhldmxpc3QsICJjeWNsZXM6dSIsIE5VTEwpOwpAQCAtMzc2LDcgKzM3Niw3IEBAIGludCB0ZXN0X19zd2l0Y2hfdHJhY2tpbmcoc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0IF9fbWF5YmVfCiAJCWdvdG8gb3V0X2VycjsKIAl9CiAKLQljeWNsZXNfZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCWN5Y2xlc19ldnNlbCA9IGV2bGlzdF9fbGFzdChldmxpc3QpOwogCiAJLyogVGhpcmQgZXZlbnQgKi8KIAlpZiAoIXBlcmZfZXZsaXN0X19jYW5fc2VsZWN0X2V2ZW50KGV2bGlzdCwgc2NoZWRfc3dpdGNoKSkgewpAQCAtMzkxLDIyICszOTEsMjIgQEAgaW50IHRlc3RfX3N3aXRjaF90cmFja2luZyhzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZV8KIAkJZ290byBvdXRfZXJyOwogCX0KIAotCXN3aXRjaF9ldnNlbCA9IHBlcmZfZXZsaXN0X19sYXN0KGV2bGlzdCk7CisJc3dpdGNoX2V2c2VsID0gZXZsaXN0X19sYXN0KGV2bGlzdCk7CiAKIAlwZXJmX2V2c2VsX19zZXRfc2FtcGxlX2JpdChzd2l0Y2hfZXZzZWwsIENQVSk7CiAJcGVyZl9ldnNlbF9fc2V0X3NhbXBsZV9iaXQoc3dpdGNoX2V2c2VsLCBUSU1FKTsKIAotCXN3aXRjaF9ldnNlbC0+c3lzdGVtX3dpZGUgPSB0cnVlOworCXN3aXRjaF9ldnNlbC0+Y29yZS5zeXN0ZW1fd2lkZSA9IHRydWU7CiAJc3dpdGNoX2V2c2VsLT5ub19hdXhfc2FtcGxlcyA9IHRydWU7CiAJc3dpdGNoX2V2c2VsLT5pbW1lZGlhdGUgPSB0cnVlOwogCiAJLyogVGVzdCBtb3ZpbmcgYW4gZXZlbnQgdG8gdGhlIGZyb250ICovCi0JaWYgKGN5Y2xlc19ldnNlbCA9PSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KSkgeworCWlmIChjeWNsZXNfZXZzZWwgPT0gZXZsaXN0X19maXJzdChldmxpc3QpKSB7CiAJCXByX2RlYnVnKCJjeWNsZXMgZXZlbnQgYWxyZWFkeSBhdCBmcm9udCIpOwogCQlnb3RvIG91dF9lcnI7CiAJfQogCXBlcmZfZXZsaXN0X190b19mcm9udChldmxpc3QsIGN5Y2xlc19ldnNlbCk7Ci0JaWYgKGN5Y2xlc19ldnNlbCAhPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KSkgeworCWlmIChjeWNsZXNfZXZzZWwgIT0gZXZsaXN0X19maXJzdChldmxpc3QpKSB7CiAJCXByX2RlYnVnKCJGYWlsZWQgdG8gbW92ZSBjeWNsZXMgZXZlbnQgdG8gZnJvbnQiKTsKIAkJZ290byBvdXRfZXJyOwogCX0KQEAgLTQyMSw3ICs0MjEsNyBAQCBpbnQgdGVzdF9fc3dpdGNoX3RyYWNraW5nKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlXwogCQlnb3RvIG91dF9lcnI7CiAJfQogCi0JdHJhY2tpbmdfZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCXRyYWNraW5nX2V2c2VsID0gZXZsaXN0X19sYXN0KGV2bGlzdCk7CiAKIAlwZXJmX2V2bGlzdF9fc2V0X3RyYWNraW5nX2V2ZW50KGV2bGlzdCwgdHJhY2tpbmdfZXZzZWwpOwogCkBAIC00MzQsNyArNDM0LDcgQEAgaW50IHRlc3RfX3N3aXRjaF90cmFja2luZyhzdHJ1Y3QgdGVzdCAqdGVzdCBfX21heWJlX3VudXNlZCwgaW50IHN1YnRlc3QgX19tYXliZV8KIAlwZXJmX2V2bGlzdF9fY29uZmlnKGV2bGlzdCwgJm9wdHMsIE5VTEwpOwogCiAJLyogQ2hlY2sgbW92ZWQgZXZlbnQgaXMgc3RpbGwgYXQgdGhlIGZyb250ICovCi0JaWYgKGN5Y2xlc19ldnNlbCAhPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KSkgeworCWlmIChjeWNsZXNfZXZzZWwgIT0gZXZsaXN0X19maXJzdChldmxpc3QpKSB7CiAJCXByX2RlYnVnKCJGcm9udCBldmVudCBubyBsb25nZXIgYXQgZnJvbnQiKTsKIAkJZ290byBvdXRfZXJyOwogCX0KQEAgLTQ2MSw5ICs0NjEsOSBAQCBpbnQgdGVzdF9fc3dpdGNoX3RyYWNraW5nKHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlXwogCQlnb3RvIG91dDsKIAl9CiAKLQllcnIgPSBwZXJmX2V2bGlzdF9fbW1hcChldmxpc3QsIFVJTlRfTUFYKTsKKwllcnIgPSBldmxpc3RfX21tYXAoZXZsaXN0LCBVSU5UX01BWCk7CiAJaWYgKGVycikgewotCQlwcl9kZWJ1ZygicGVyZl9ldmxpc3RfX21tYXAgZmFpbGVkIVxuIik7CisJCXByX2RlYnVnKCJldmxpc3RfX21tYXAgZmFpbGVkIVxuIik7CiAJCWdvdG8gb3V0X2VycjsKIAl9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvdGFzay1leGl0LmMgYi90b29scy9wZXJmL3Rlc3RzL3Rhc2stZXhpdC5jCmluZGV4IGY2MTBlOGMuLmJjZTNhNGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvdGFzay1leGl0LmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy90YXNrLWV4aXQuYwpAQCAtNCwxMiArNCwxMyBAQAogI2luY2x1ZGUgImV2c2VsLmgiCiAjaW5jbHVkZSAidGFyZ2V0LmgiCiAjaW5jbHVkZSAidGhyZWFkX21hcC5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgogI2luY2x1ZGUgInRlc3RzLmgiCisjaW5jbHVkZSAidXRpbC9tbWFwLmgiCiAKICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAjaW5jbHVkZSA8cGVyZi9ldmxpc3QuaD4KIAogc3RhdGljIGludCBleGl0ZWQ7CkBAIC01MSw3ICs1Miw3IEBAIGludCB0ZXN0X190YXNrX2V4aXQoc3RydWN0IHRlc3QgKnRlc3QgX19tYXliZV91bnVzZWQsIGludCBzdWJ0ZXN0IF9fbWF5YmVfdW51c2VkCiAJY2hhciBzYnVmW1NUUkVSUl9CVUZTSVpFXTsKIAlzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzOwogCXN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHM7Ci0Jc3RydWN0IHBlcmZfbW1hcCAqbWQ7CisJc3RydWN0IG1tYXAgKm1kOwogCiAJc2lnbmFsKFNJR0NITEQsIHNpZ19oYW5kbGVyKTsKIApAQCAtODcsNyArODgsNyBAQCBpbnQgdGVzdF9fdGFza19leGl0KHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlX3VudXNlZAogCQlnb3RvIG91dF9kZWxldGVfZXZsaXN0OwogCX0KIAotCWV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJZXZzZWwgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAJZXZzZWwtPmNvcmUuYXR0ci50YXNrID0gMTsKICNpZmRlZiBfX3MzOTB4X18KIAlldnNlbC0+Y29yZS5hdHRyLnNhbXBsZV9mcmVxID0gMTAwMDAwMDsKQEAgLTEwNiw3ICsxMDcsNyBAQCBpbnQgdGVzdF9fdGFza19leGl0KHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlX3VudXNlZAogCQlnb3RvIG91dF9kZWxldGVfZXZsaXN0OwogCX0KIAotCWlmIChwZXJmX2V2bGlzdF9fbW1hcChldmxpc3QsIDEyOCkgPCAwKSB7CisJaWYgKGV2bGlzdF9fbW1hcChldmxpc3QsIDEyOCkgPCAwKSB7CiAJCXByX2RlYnVnKCJmYWlsZWQgdG8gbW1hcCBldmVudHM6ICVkICglcylcbiIsIGVycm5vLAogCQkJIHN0cl9lcnJvcl9yKGVycm5vLCBzYnVmLCBzaXplb2Yoc2J1ZikpKTsKIAkJZ290byBvdXRfZGVsZXRlX2V2bGlzdDsKQEAgLTEyOSw3ICsxMzAsNyBAQCBpbnQgdGVzdF9fdGFza19leGl0KHN0cnVjdCB0ZXN0ICp0ZXN0IF9fbWF5YmVfdW51c2VkLCBpbnQgc3VidGVzdCBfX21heWJlX3VudXNlZAogCiBvdXRfaW5pdDoKIAlpZiAoIWV4aXRlZCB8fCAhbnJfZXhpdCkgewotCQlwZXJmX2V2bGlzdF9fcG9sbChldmxpc3QsIC0xKTsKKwkJZXZsaXN0X19wb2xsKGV2bGlzdCwgLTEpOwogCQlnb3RvIHJldHJ5OwogCX0KIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy90aHJlYWQtbWFwLmMgYi90b29scy9wZXJmL3Rlc3RzL3RocmVhZC1tYXAuYwppbmRleCAzOTE2OGM1Li4yOGY1MWM0IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3Rlc3RzL3RocmVhZC1tYXAuYworKysgYi90b29scy9wZXJmL3Rlc3RzL3RocmVhZC1tYXAuYwpAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRlICJ0aHJlYWRfbWFwLmgiCiAjaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJldmVudC5oIgorI2luY2x1ZGUgInV0aWwvc3ludGhldGljLWV2ZW50cy5oIgogI2luY2x1ZGUgPGxpbnV4L3phbGxvYy5oPgogI2luY2x1ZGUgPHBlcmYvZXZlbnQuaD4KIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi90ZXN0cy90b3BvbG9neS5jIGIvdG9vbHMvcGVyZi90ZXN0cy90b3BvbG9neS5jCmluZGV4IGE0ZjlmNTEuLjRhODAwNDkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdGVzdHMvdG9wb2xvZ3kuYworKysgYi90b29scy9wZXJmL3Rlc3RzL3RvcG9sb2d5LmMKQEAgLTMsMTEgKzMsMTIgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CisjaW5jbHVkZSAiY3B1bWFwLmgiCiAjaW5jbHVkZSAidGVzdHMuaCIKLSNpbmNsdWRlICJ1dGlsLmgiCiAjaW5jbHVkZSAic2Vzc2lvbi5oIgogI2luY2x1ZGUgImV2bGlzdC5oIgogI2luY2x1ZGUgImRlYnVnLmgiCisjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAKICNkZWZpbmUgVEVNUEwgIi90bXAvcGVyZi10ZXN0LVhYWFhYWCIKICNkZWZpbmUgREFUQV9TSVpFCTEwCkBAIC0zOSw3ICs0MCw3IEBAIHN0YXRpYyBpbnQgc2Vzc2lvbl93cml0ZV9oZWFkZXIoY2hhciAqcGF0aCkKIAl9OwogCiAJc2Vzc2lvbiA9IHBlcmZfc2Vzc2lvbl9fbmV3KCZkYXRhLCBmYWxzZSwgTlVMTCk7Ci0JVEVTVF9BU1NFUlRfVkFMKCJjYW4ndCBnZXQgc2Vzc2lvbiIsIHNlc3Npb24pOworCVRFU1RfQVNTRVJUX1ZBTCgiY2FuJ3QgZ2V0IHNlc3Npb24iLCAhSVNfRVJSKHNlc3Npb24pKTsKIAogCXNlc3Npb24tPmV2bGlzdCA9IHBlcmZfZXZsaXN0X19uZXdfZGVmYXVsdCgpOwogCVRFU1RfQVNTRVJUX1ZBTCgiY2FuJ3QgZ2V0IGV2bGlzdCIsIHNlc3Npb24tPmV2bGlzdCk7CkBAIC03MCw3ICs3MSw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfY3B1X3RvcG9sb2d5KGNoYXIgKnBhdGgsIHN0cnVjdCBwZXJmX2NwdV9tYXAgKm1hcCkKIAlpbnQgaTsKIAogCXNlc3Npb24gPSBwZXJmX3Nlc3Npb25fX25ldygmZGF0YSwgZmFsc2UsIE5VTEwpOwotCVRFU1RfQVNTRVJUX1ZBTCgiY2FuJ3QgZ2V0IHNlc3Npb24iLCBzZXNzaW9uKTsKKwlURVNUX0FTU0VSVF9WQUwoImNhbid0IGdldCBzZXNzaW9uIiwgIUlTX0VSUihzZXNzaW9uKSk7CiAKIAkvKiBPbiBwbGF0Zm9ybXMgd2l0aCBsYXJnZSBudW1iZXJzIG9mIENQVXMgcHJvY2Vzc19jcHVfdG9wb2xvZ3koKQogCSAqIG1pZ2h0IGlzc3VlIGFuIGVycm9yIHdoaWxlIHJlYWRpbmcgdGhlIHBlcmYuZGF0YSBmaWxlIHNlY3Rpb24KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdGVzdHMvdm1saW51eC1rYWxsc3ltcy5jIGIvdG9vbHMvcGVyZi90ZXN0cy92bWxpbnV4LWthbGxzeW1zLmMKaW5kZXggMDFmNDM0Yy4uYWEyOTZmZiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy92bWxpbnV4LWthbGxzeW1zLmMKKysrIGIvdG9vbHMvcGVyZi90ZXN0cy92bWxpbnV4LWthbGxzeW1zLmMKQEAgLTcsNyArNyw3IEBACiAjaW5jbHVkZSAiZHNvLmgiCiAjaW5jbHVkZSAibWFwLmgiCiAjaW5jbHVkZSAic3ltYm9sLmgiCi0jaW5jbHVkZSAidXRpbC5oIgorI2luY2x1ZGUgPGludGVybmFsL2xpYi5oPiAvLyBwYWdlX3NpemUKICNpbmNsdWRlICJ0ZXN0cy5oIgogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAibWFjaGluZS5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91aS9icm93c2VyLmMgYi90b29scy9wZXJmL3VpL2Jyb3dzZXIuYwppbmRleCBmOTNkNDBiLi43ODFhZmU0IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3VpL2Jyb3dzZXIuYworKysgYi90b29scy9wZXJmL3VpL2Jyb3dzZXIuYwpAQCAtMSw1ICsxLDQgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0jaW5jbHVkZSAiLi4vdXRpbC91dGlsLmgiCiAjaW5jbHVkZSAiLi4vdXRpbC9zdHJpbmcyLmgiCiAjaW5jbHVkZSAiLi4vdXRpbC9jb25maWcuaCIKICNpbmNsdWRlICJsaWJzbGFuZy5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91aS9icm93c2Vycy9hbm5vdGF0ZS5jIGIvdG9vbHMvcGVyZi91aS9icm93c2Vycy9hbm5vdGF0ZS5jCmluZGV4IGFjNzRlZDIuLjgyMjA3ZGIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdWkvYnJvd3NlcnMvYW5ub3RhdGUuYworKysgYi90b29scy9wZXJmL3VpL2Jyb3dzZXJzL2Fubm90YXRlLmMKQEAgLTIsNyArMiw2IEBACiAjaW5jbHVkZSAiLi4vYnJvd3Nlci5oIgogI2luY2x1ZGUgIi4uL2hlbHBsaW5lLmgiCiAjaW5jbHVkZSAiLi4vdWkuaCIKLSNpbmNsdWRlICIuLi91dGlsLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9hbm5vdGF0ZS5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvZGVidWcuaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL2Rzby5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91aS9icm93c2Vycy9oZWFkZXIuYyBiL3Rvb2xzL3BlcmYvdWkvYnJvd3NlcnMvaGVhZGVyLmMKaW5kZXggMGY1OWE3MC4uNTdlNmU0MyAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91aS9icm93c2Vycy9oZWFkZXIuYworKysgYi90b29scy9wZXJmL3VpL2Jyb3dzZXJzL2hlYWRlci5jCkBAIC0xLDUgKzEsNCBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLSNpbmNsdWRlICJ1dGlsL2RlYnVnLmgiCiAjaW5jbHVkZSAidWkvYnJvd3Nlci5oIgogI2luY2x1ZGUgInVpL2tleXN5bXMuaCIKICNpbmNsdWRlICJ1aS91aS5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91aS9icm93c2Vycy9oaXN0cy5jIGIvdG9vbHMvcGVyZi91aS9icm93c2Vycy9oaXN0cy5jCmluZGV4IDU4OTE2OGMuLjdhNzE4N2UgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdWkvYnJvd3NlcnMvaGlzdHMuYworKysgYi90b29scy9wZXJmL3VpL2Jyb3dzZXJzL2hpc3RzLmMKQEAgLTMzMTksMTMgKzMzMTksMTMgQEAgc3RhdGljIGludCBwZXJmX2V2c2VsX21lbnVfX3J1bihzdHJ1Y3QgZXZzZWxfbWVudSAqbWVudSwKIAkJCXN3aXRjaCAoa2V5KSB7CiAJCQljYXNlIEtfVEFCOgogCQkJCWlmIChwb3MtPmNvcmUubm9kZS5uZXh0ID09ICZldmxpc3QtPmNvcmUuZW50cmllcykKLQkJCQkJcG9zID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJCQkJCXBvcyA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAkJCQllbHNlCiAJCQkJCXBvcyA9IHBlcmZfZXZzZWxfX25leHQocG9zKTsKIAkJCQlnb3RvIGJyb3dzZV9oaXN0czsKIAkJCWNhc2UgS19VTlRBQjoKIAkJCQlpZiAocG9zLT5jb3JlLm5vZGUucHJldiA9PSAmZXZsaXN0LT5jb3JlLmVudHJpZXMpCi0JCQkJCXBvcyA9IHBlcmZfZXZsaXN0X19sYXN0KGV2bGlzdCk7CisJCQkJCXBvcyA9IGV2bGlzdF9fbGFzdChldmxpc3QpOwogCQkJCWVsc2UKIAkJCQkJcG9zID0gcGVyZl9ldnNlbF9fcHJldihwb3MpOwogCQkJCWdvdG8gYnJvd3NlX2hpc3RzOwpAQCAtMzQxNyw3ICszNDE3LDcgQEAgaW50IHBlcmZfZXZsaXN0X190dWlfYnJvd3NlX2hpc3RzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgY29uc3QgY2hhciAqaGVscCwKIAogc2luZ2xlX2VudHJ5OgogCWlmIChucl9lbnRyaWVzID09IDEpIHsKLQkJc3RydWN0IGV2c2VsICpmaXJzdCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCQlzdHJ1Y3QgZXZzZWwgKmZpcnN0ID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJCXJldHVybiBwZXJmX2V2c2VsX19oaXN0c19icm93c2UoZmlyc3QsIG5yX2VudHJpZXMsIGhlbHAsCiAJCQkJCQlmYWxzZSwgaGJ0LCBtaW5fcGNudCwKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdWkvYnJvd3NlcnMvbWFwLmMgYi90b29scy9wZXJmL3VpL2Jyb3dzZXJzL21hcC5jCmluZGV4IDg5M2IwNjUuLjNkNDliOTE2IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3VpL2Jyb3dzZXJzL21hcC5jCisrKyBiL3Rvb2xzL3BlcmYvdWkvYnJvd3NlcnMvbWFwLmMKQEAgLTUsNyArNSw2IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+Ci0jaW5jbHVkZSAiLi4vLi4vdXRpbC91dGlsLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvbWFwLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9kc28uaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdWkvYnJvd3NlcnMvcmVzX3NhbXBsZS5jIGIvdG9vbHMvcGVyZi91aS9icm93c2Vycy9yZXNfc2FtcGxlLmMKaW5kZXggZjE2YTM4Zi4uNzZkMzU2YSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91aS9icm93c2Vycy9yZXNfc2FtcGxlLmMKKysrIGIvdG9vbHMvcGVyZi91aS9icm93c2Vycy9yZXNfc2FtcGxlLmMKQEAgLTcsNyArNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAidGltZS11dGlscy5oIgogI2luY2x1ZGUgIi4uL3V0aWwuaCIKLSNpbmNsdWRlICIuLi8uLi91dGlsL3V0aWwuaCIKKyNpbmNsdWRlICIuLi8uLi91dGlsL3V0aWwuaCIgLy8gcGVyZl9leGUoKQogI2luY2x1ZGUgIi4uLy4uL3BlcmYuaCIKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdWkvYnJvd3NlcnMvc2NyaXB0cy5jIGIvdG9vbHMvcGVyZi91aS9icm93c2Vycy9zY3JpcHRzLmMKaW5kZXggNTg2YTIxYS4uZmM3MzNhNiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91aS9icm93c2Vycy9zY3JpcHRzLmMKKysrIGIvdG9vbHMvcGVyZi91aS9icm93c2Vycy9zY3JpcHRzLmMKQEAgLTEsNyArMSw4IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogI2luY2x1ZGUgIi4uLy4uL2J1aWx0aW4uaCIKICNpbmNsdWRlICIuLi8uLi9wZXJmLmgiCi0jaW5jbHVkZSAiLi4vLi4vdXRpbC91dGlsLmgiCisjaW5jbHVkZSAiLi4vLi4vdXRpbC91dGlsLmgiIC8vIHBlcmZfZXhlKCkKKyNpbmNsdWRlICIuLi91dGlsLmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9oaXN0LmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvc3ltYm9sLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3VpL2d0ay9oZWxwbGluZS5jIGIvdG9vbHMvcGVyZi91aS9ndGsvaGVscGxpbmUuYwppbmRleCBlMTY2ZGE5Li5lNDBhMDA2IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3VpL2d0ay9oZWxwbGluZS5jCisrKyBiL3Rvb2xzL3BlcmYvdWkvZ3RrL2hlbHBsaW5lLmMKQEAgLTYsNyArNiw2IEBACiAjaW5jbHVkZSAiZ3RrLmgiCiAjaW5jbHVkZSAiLi4vdWkuaCIKICNpbmNsdWRlICIuLi9oZWxwbGluZS5oIgotI2luY2x1ZGUgIi4uLy4uL3V0aWwvZGVidWcuaCIKIAogc3RhdGljIHZvaWQgZ3RrX2hlbHBsaW5lX3BvcCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91aS9ndGsvaGlzdHMuYyBiL3Rvb2xzL3BlcmYvdWkvZ3RrL2hpc3RzLmMKaW5kZXggNmMyZWZjMS4uZWQxYTk3YiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91aS9ndGsvaGlzdHMuYworKysgYi90b29scy9wZXJmL3VpL2d0ay9oaXN0cy5jCkBAIC04LDYgKzgsNyBAQAogI2luY2x1ZGUgIi4uL3N0cmluZzIuaCIKICNpbmNsdWRlICJndGsuaCIKICNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KIAogI2RlZmluZSBNQVhfQ09MVU1OUwkJCTMyCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3VpL2d0ay9wcm9ncmVzcy5jIGIvdG9vbHMvcGVyZi91aS9ndGsvcHJvZ3Jlc3MuYwppbmRleCBiNmFkODg1Li5lZWE2ZmNkIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3VpL2d0ay9wcm9ncmVzcy5jCisrKyBiL3Rvb2xzL3BlcmYvdWkvZ3RrL3Byb2dyZXNzLmMKQEAgLTMsNyArMyw2IEBACiAKICNpbmNsdWRlICJndGsuaCIKICNpbmNsdWRlICIuLi9wcm9ncmVzcy5oIgotI2luY2x1ZGUgInV0aWwuaCIKIAogc3RhdGljIEd0a1dpZGdldCAqZGlhbG9nOwogc3RhdGljIEd0a1dpZGdldCAqcHJvZ3Jlc3M7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3VpL2d0ay9zZXR1cC5jIGIvdG9vbHMvcGVyZi91aS9ndGsvc2V0dXAuYwppbmRleCAxYTI2MTZiLi5mNWVlZTRkIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3VpL2d0ay9zZXR1cC5jCisrKyBiL3Rvb2xzL3BlcmYvdWkvZ3RrL3NldHVwLmMKQEAgLTEsNiArMSw3IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogI2luY2x1ZGUgImd0ay5oIgotI2luY2x1ZGUgIi4uLy4uL3V0aWwvZGVidWcuaCIKKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorI2luY2x1ZGUgIi4uL3V0aWwuaCIKIAogZXh0ZXJuIHN0cnVjdCBwZXJmX2Vycm9yX29wcyBwZXJmX2d0a19lb3BzOwogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3VpL2d0ay91dGlsLmMgYi90b29scy9wZXJmL3VpL2d0ay91dGlsLmMKaW5kZXggYzJjNTU4OS4uYzQ3ZjVjMyAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91aS9ndGsvdXRpbC5jCisrKyBiL3Rvb2xzL3BlcmYvdWkvZ3RrL3V0aWwuYwpAQCAtMSw2ICsxLDUgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjaW5jbHVkZSAiLi4vdXRpbC5oIgotI2luY2x1ZGUgIi4uLy4uL3V0aWwvZGVidWcuaCIKICNpbmNsdWRlICJndGsuaCIKIAogI2luY2x1ZGUgPHN0ZGxpYi5oPgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91aS9oZWxwbGluZS5jIGIvdG9vbHMvcGVyZi91aS9oZWxwbGluZS5jCmluZGV4IDU0YmNkMDguLjkxMTE4MmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdWkvaGVscGxpbmUuYworKysgYi90b29scy9wZXJmL3VpL2hlbHBsaW5lLmMKQEAgLTMsMTAgKzMsOCBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogCi0jaW5jbHVkZSAiLi4vdXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgImhlbHBsaW5lLmgiCiAjaW5jbHVkZSAidWkuaCIKLSNpbmNsdWRlICIuLi91dGlsL3V0aWwuaCIKIAogY2hhciB1aV9oZWxwbGluZV9fY3VycmVudFs1MTJdOwogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3VpL2hpc3QuYyBiL3Rvb2xzL3BlcmYvdWkvaGlzdC5jCmluZGV4IDNlNTMzZGUuLmY3MzY3NTUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdWkvaGlzdC5jCisrKyBiL3Rvb2xzL3BlcmYvdWkvaGlzdC5jCkBAIC04LDcgKzgsNiBAQAogI2luY2x1ZGUgIi4uL3V0aWwvY2FsbGNoYWluLmgiCiAjaW5jbHVkZSAiLi4vdXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgIi4uL3V0aWwvaGlzdC5oIgotI2luY2x1ZGUgIi4uL3V0aWwvdXRpbC5oIgogI2luY2x1ZGUgIi4uL3V0aWwvc29ydC5oIgogI2luY2x1ZGUgIi4uL3V0aWwvZXZzZWwuaCIKICNpbmNsdWRlICIuLi91dGlsL2V2bGlzdC5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91aS9zZXR1cC5jIGIvdG9vbHMvcGVyZi91aS9zZXR1cC5jCmluZGV4IGM3YTg2YjQuLjcwMDMzNWMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdWkvc2V0dXAuYworKysgYi90b29scy9wZXJmL3VpL3NldHVwLmMKQEAgLTEsMTEgKzEsMTEgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjaW5jbHVkZSA8cHRocmVhZC5oPgogI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKICNpbmNsdWRlIDxzdWJjbWQvcGFnZXIuaD4KICNpbmNsdWRlICIuLi91dGlsL2RlYnVnLmgiCiAjaW5jbHVkZSAiLi4vdXRpbC9oaXN0LmgiCi0jaW5jbHVkZSAiLi4vdXRpbC91dGlsLmgiCiAjaW5jbHVkZSAidWkuaCIKIAogcHRocmVhZF9tdXRleF90IHVpX19sb2NrID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdWkvc3RkaW8vaGlzdC5jIGIvdG9vbHMvcGVyZi91aS9zdGRpby9oaXN0LmMKaW5kZXggODMyY2E2Yy4uNTM2NTYwNiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91aS9zdGRpby9oaXN0LmMKKysrIGIvdG9vbHMvcGVyZi91aS9zdGRpby9oaXN0LmMKQEAgLTUsNiArNSw3IEBACiAKICNpbmNsdWRlICIuLi8uLi91dGlsL2NhbGxjaGFpbi5oIgogI2luY2x1ZGUgIi4uLy4uL3V0aWwvZGVidWcuaCIKKyNpbmNsdWRlICIuLi8uLi91dGlsL2V2ZW50LmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9oaXN0LmgiCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9tYXAuaCIKICNpbmNsdWRlICIuLi8uLi91dGlsL21hcF9ncm91cHMuaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdWkvdHVpL2hlbHBsaW5lLmMgYi90b29scy9wZXJmL3VpL3R1aS9oZWxwbGluZS5jCmluZGV4IDVmMTg4ZjYuLjI5OGQ2YWYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdWkvdHVpL2hlbHBsaW5lLmMKKysrIGIvdG9vbHMvcGVyZi91aS90dWkvaGVscGxpbmUuYwpAQCAtNiw3ICs2LDYgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KIAotI2luY2x1ZGUgIi4uLy4uL3V0aWwvZGVidWcuaCIKICNpbmNsdWRlICIuLi9oZWxwbGluZS5oIgogI2luY2x1ZGUgIi4uL3VpLmgiCiAjaW5jbHVkZSAiLi4vbGlic2xhbmcuaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdWkvdHVpL3NldHVwLmMgYi90b29scy9wZXJmL3VpL3R1aS9zZXR1cC5jCmluZGV4IDU2NjUxYTQuLmU5YmZlODUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdWkvdHVpL3NldHVwLmMKKysrIGIvdG9vbHMvcGVyZi91aS90dWkvc2V0dXAuYwpAQCAtMiwxMyArMiwxMyBAQAogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPHN0ZGJvb2wuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpZmRlZiBIQVZFX0JBQ0tUUkFDRV9TVVBQT1JUCiAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KICNlbmRpZgogCiAjaW5jbHVkZSAiLi4vLi4vdXRpbC9kZWJ1Zy5oIgotI2luY2x1ZGUgIi4uLy4uL3V0aWwvdXRpbC5oIgogI2luY2x1ZGUgIi4uLy4uL3BlcmYuaCIKICNpbmNsdWRlICIuLi9icm93c2VyLmgiCiAjaW5jbHVkZSAiLi4vaGVscGxpbmUuaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdWkvdHVpL3V0aWwuYyBiL3Rvb2xzL3BlcmYvdWkvdHVpL3V0aWwuYwppbmRleCAwODdkOWFiLi5iOThkZDBlIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3VpL3R1aS91dGlsLmMKKysrIGIvdG9vbHMvcGVyZi91aS90dWkvdXRpbC5jCkBAIC01LDcgKzUsNiBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN5cy90dHlkZWZhdWx0cy5oPgogCi0jaW5jbHVkZSAiLi4vLi4vdXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgIi4uL2Jyb3dzZXIuaCIKICNpbmNsdWRlICIuLi9rZXlzeW1zLmgiCiAjaW5jbHVkZSAiLi4vaGVscGxpbmUuaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9CdWlsZCBiL3Rvb2xzL3BlcmYvdXRpbC9CdWlsZAppbmRleCAwYjRkOGUwLi44ZGNmY2ExIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvQnVpbGQKKysrIGIvdG9vbHMvcGVyZi91dGlsL0J1aWxkCkBAIC0zLDYgKzMsNyBAQAogcGVyZi15ICs9IGJ1aWxkLWlkLm8KIHBlcmYteSArPSBjYWNoZWxpbmUubwogcGVyZi15ICs9IGNvbmZpZy5vCitwZXJmLXkgKz0gY29weWZpbGUubwogcGVyZi15ICs9IGN0eXBlLm8KIHBlcmYteSArPSBkYi1leHBvcnQubwogcGVyZi15ICs9IGVudi5vCkBAIC0xMCw2ICsxMSw3IEBACiBwZXJmLXkgKz0gZXZsaXN0Lm8KIHBlcmYteSArPSBldnNlbC5vCiBwZXJmLXkgKz0gZXZzZWxfZnByaW50Zi5vCitwZXJmLXkgKz0gcGVyZl9ldmVudF9hdHRyX2ZwcmludGYubwogcGVyZi15ICs9IGV2c3dpdGNoLm8KIHBlcmYteSArPSBmaW5kX2JpdC5vCiBwZXJmLXkgKz0gZ2V0X2N1cnJlbnRfZGlyX25hbWUubwpAQCAtODYsNiArODgsNyBAQAogcGVyZi15ICs9IHJlY29yZC5vCiBwZXJmLXkgKz0gc3JjbGluZS5vCiBwZXJmLXkgKz0gc3JjY29kZS5vCitwZXJmLXkgKz0gc3ludGhldGljLWV2ZW50cy5vCiBwZXJmLXkgKz0gZGF0YS5vCiBwZXJmLXkgKz0gdHNjLm8KIHBlcmYteSArPSBjbG9leGVjLm8KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9hbm5vdGF0ZS5jIGIvdG9vbHMvcGVyZi91dGlsL2Fubm90YXRlLmMKaW5kZXggMTc0OGY1Mi4uZTgzMGVhZCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2Fubm90YXRlLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2Fubm90YXRlLmMKQEAgLTE0LDcgKzE0LDcgQEAKICNpbmNsdWRlIDxicGYvYnRmLmg+CiAjaW5jbHVkZSA8YnBmL2xpYmJwZi5oPgogI2luY2x1ZGUgPGxpbnV4L2J0Zi5oPgotI2luY2x1ZGUgInV0aWwuaCIKKyNpbmNsdWRlICJ1dGlsLmgiIC8vIGhleF93aWR0aCgpCiAjaW5jbHVkZSAidWkvdWkuaCIKICNpbmNsdWRlICJzb3J0LmgiCiAjaW5jbHVkZSAiYnVpbGQtaWQuaCIKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJicGYtZXZlbnQuaCIKICNpbmNsdWRlICJibG9jay1yYW5nZS5oIgogI2luY2x1ZGUgInN0cmluZzIuaCIKKyNpbmNsdWRlICJ1dGlsL2V2ZW50LmgiCiAjaW5jbHVkZSAiYXJjaC9jb21tb24uaCIKICNpbmNsdWRlIDxyZWdleC5oPgogI2luY2x1ZGUgPHB0aHJlYWQuaD4KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9hcm0tc3BlLmMgYi90b29scy9wZXJmL3V0aWwvYXJtLXNwZS5jCmluZGV4IDhhNzM0MGYuLjUzYmUxMmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9hcm0tc3BlLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2FybS1zcGUuYwpAQCAtMTYsNyArMTYsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2xvZzIuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KIAotI2luY2x1ZGUgImNwdW1hcC5oIgogI2luY2x1ZGUgImNvbG9yLmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKICNpbmNsdWRlICJtYWNoaW5lLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvYXV4dHJhY2UuYyBiL3Rvb2xzL3BlcmYvdXRpbC9hdXh0cmFjZS5jCmluZGV4IDZmMjUyMjQuLjg0NzBkZmUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9hdXh0cmFjZS5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9hdXh0cmFjZS5jCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAibWFwLmgiCiAjaW5jbHVkZSAicG11LmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJzeW1ib2wuaCIKKyNpbmNsdWRlICJ1dGlsL3N5bnRoZXRpYy1ldmVudHMuaCIKICNpbmNsdWRlICJ0aHJlYWRfbWFwLmgiCiAjaW5jbHVkZSAiYXNtL2J1Zy5oIgogI2luY2x1ZGUgImF1eHRyYWNlLmgiCkBAIC01MCwxMCArNTAsMTIgQEAKICNpbmNsdWRlICJpbnRlbC1idHMuaCIKICNpbmNsdWRlICJhcm0tc3BlLmgiCiAjaW5jbHVkZSAiczM5MC1jcHVtc2YuaCIKLSNpbmNsdWRlICJ1dGlsLmgiCisjaW5jbHVkZSAidXRpbC9tbWFwLmgiCiAKICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgInN5bWJvbC9rYWxsc3ltcy5oIgorI2luY2x1ZGUgPGludGVybmFsL2xpYi5oPgogCiBzdGF0aWMgYm9vbCBhdXh0cmFjZV9fZG9udF9kZWNvZGUoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbikKIHsKQEAgLTEyMjYsNyArMTIyOCw3IEBAIGludCBwZXJmX2V2ZW50X19wcm9jZXNzX2F1eHRyYWNlX2Vycm9yKHN0cnVjdCBwZXJmX3Nlc3Npb24gKnNlc3Npb24sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgX19hdXh0cmFjZV9tbWFwX19yZWFkKHN0cnVjdCBwZXJmX21tYXAgKm1hcCwKK3N0YXRpYyBpbnQgX19hdXh0cmFjZV9tbWFwX19yZWFkKHN0cnVjdCBtbWFwICptYXAsCiAJCQkJIHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKIAkJCQkgc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgcHJvY2Vzc19hdXh0cmFjZV90IGZuLAogCQkJCSBib29sIHNuYXBzaG90LCBzaXplX3Qgc25hcHNob3Rfc2l6ZSkKQEAgLTEzMzcsMTMgKzEzMzksMTMgQEAgc3RhdGljIGludCBfX2F1eHRyYWNlX21tYXBfX3JlYWQoc3RydWN0IHBlcmZfbW1hcCAqbWFwLAogCXJldHVybiAxOwogfQogCi1pbnQgYXV4dHJhY2VfbW1hcF9fcmVhZChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKK2ludCBhdXh0cmFjZV9tbWFwX19yZWFkKHN0cnVjdCBtbWFwICptYXAsIHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKIAkJCXN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHByb2Nlc3NfYXV4dHJhY2VfdCBmbikKIHsKIAlyZXR1cm4gX19hdXh0cmFjZV9tbWFwX19yZWFkKG1hcCwgaXRyLCB0b29sLCBmbiwgZmFsc2UsIDApOwogfQogCi1pbnQgYXV4dHJhY2VfbW1hcF9fcmVhZF9zbmFwc2hvdChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsCitpbnQgYXV4dHJhY2VfbW1hcF9fcmVhZF9zbmFwc2hvdChzdHJ1Y3QgbW1hcCAqbWFwLAogCQkJCSBzdHJ1Y3QgYXV4dHJhY2VfcmVjb3JkICppdHIsCiAJCQkJIHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHByb2Nlc3NfYXV4dHJhY2VfdCBmbiwKIAkJCQkgc2l6ZV90IHNuYXBzaG90X3NpemUpCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvYXV4dHJhY2UuaCBiL3Rvb2xzL3BlcmYvdXRpbC9hdXh0cmFjZS5oCmluZGV4IDM3ZTcwZGMuLmYyMDFmMzYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9hdXh0cmFjZS5oCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9hdXh0cmFjZS5oCkBAIC0xMSwyMSArMTEsMjIgQEAKICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPHN0ZGJvb2wuaD4KICNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRpby5oPiAvLyBGSUxFCiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9iaXRzcGVybG9uZy5oPgogI2luY2x1ZGUgPGFzbS9iYXJyaWVyLmg+CiAKLSNpbmNsdWRlICJldmVudC5oIgotCiB1bmlvbiBwZXJmX2V2ZW50Owogc3RydWN0IHBlcmZfc2Vzc2lvbjsKIHN0cnVjdCBldmxpc3Q7CiBzdHJ1Y3QgcGVyZl90b29sOwotc3RydWN0IHBlcmZfbW1hcDsKK3N0cnVjdCBtbWFwOworc3RydWN0IHBlcmZfc2FtcGxlOwogc3RydWN0IG9wdGlvbjsKIHN0cnVjdCByZWNvcmRfb3B0czsKK3N0cnVjdCBwZXJmX3JlY29yZF9hdXh0cmFjZV9lcnJvcjsKIHN0cnVjdCBwZXJmX3JlY29yZF9hdXh0cmFjZV9pbmZvOwogc3RydWN0IGV2ZW50c19zdGF0czsKIApAQCAtNDQ0LDE0ICs0NDUsMTQgQEAgdm9pZCBhdXh0cmFjZV9tbWFwX3BhcmFtc19fc2V0X2lkeChzdHJ1Y3QgYXV4dHJhY2VfbW1hcF9wYXJhbXMgKm1wLAogCQkJCSAgIGJvb2wgcGVyX2NwdSk7CiAKIHR5cGVkZWYgaW50ICgqcHJvY2Vzc19hdXh0cmFjZV90KShzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgc3RydWN0IHBlcmZfbW1hcCAqbWFwLAorCQkJCSAgc3RydWN0IG1tYXAgKm1hcCwKIAkJCQkgIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LCB2b2lkICpkYXRhMSwKIAkJCQkgIHNpemVfdCBsZW4xLCB2b2lkICpkYXRhMiwgc2l6ZV90IGxlbjIpOwogCi1pbnQgYXV4dHJhY2VfbW1hcF9fcmVhZChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKK2ludCBhdXh0cmFjZV9tbWFwX19yZWFkKHN0cnVjdCBtbWFwICptYXAsIHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKIAkJCXN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHByb2Nlc3NfYXV4dHJhY2VfdCBmbik7CiAKLWludCBhdXh0cmFjZV9tbWFwX19yZWFkX3NuYXBzaG90KHN0cnVjdCBwZXJmX21tYXAgKm1hcCwKK2ludCBhdXh0cmFjZV9tbWFwX19yZWFkX3NuYXBzaG90KHN0cnVjdCBtbWFwICptYXAsCiAJCQkJIHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKIAkJCQkgc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgcHJvY2Vzc19hdXh0cmFjZV90IGZuLAogCQkJCSBzaXplX3Qgc25hcHNob3Rfc2l6ZSk7CkBAIC01MjQsMTAgKzUyNSw2IEBAIHZvaWQgYXV4dHJhY2Vfc3ludGhfZXJyb3Ioc3RydWN0IHBlcmZfcmVjb3JkX2F1eHRyYWNlX2Vycm9yICphdXh0cmFjZV9lcnJvciwgaW50CiAJCQkgIGludCBjb2RlLCBpbnQgY3B1LCBwaWRfdCBwaWQsIHBpZF90IHRpZCwgdTY0IGlwLAogCQkJICBjb25zdCBjaGFyICptc2csIHU2NCB0aW1lc3RhbXApOwogCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9hdXh0cmFjZV9pbmZvKHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciwKLQkJCQkJIHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJCSBzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLAotCQkJCQkgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpOwogaW50IHBlcmZfZXZlbnRfX3Byb2Nlc3NfYXV4dHJhY2VfaW5mbyhzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLAogCQkJCSAgICAgIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50KTsKIHM2NCBwZXJmX2V2ZW50X19wcm9jZXNzX2F1eHRyYWNlKHN0cnVjdCBwZXJmX3Nlc3Npb24gKnNlc3Npb24sCkBAIC02MDQsMTUgKzYwMSw2IEBAIHZvaWQgYXV4dHJhY2VfcmVjb3JkX19mcmVlKHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciBfX21heWJlX3VudXNlZCkKIHsKIH0KIAotc3RhdGljIGlubGluZSBpbnQKLXBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXV4dHJhY2VfaW5mbyhzdHJ1Y3QgYXV4dHJhY2VfcmVjb3JkICppdHIgX19tYXliZV91bnVzZWQsCi0JCQkJICAgICBzdHJ1Y3QgcGVyZl90b29sICp0b29sIF9fbWF5YmVfdW51c2VkLAotCQkJCSAgICAgc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiBfX21heWJlX3VudXNlZCwKLQkJCQkgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzIF9fbWF5YmVfdW51c2VkKQotewotCXJldHVybiAtRUlOVkFMOwotfQotCiBzdGF0aWMgaW5saW5lCiBpbnQgYXV4dHJhY2VfcmVjb3JkX19vcHRpb25zKHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQgKml0ciBfX21heWJlX3VudXNlZCwKIAkJCSAgICAgc3RydWN0IGV2bGlzdCAqZXZsaXN0IF9fbWF5YmVfdW51c2VkLApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2JwZi1ldmVudC5jIGIvdG9vbHMvcGVyZi91dGlsL2JwZi1ldmVudC5jCmluZGV4IDdhM2Q0YjEuLmY3ZWQ1ZDEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9icGYtZXZlbnQuYworKysgYi90b29scy9wZXJmL3V0aWwvYnBmLWV2ZW50LmMKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlICJtYXAuaCIKICNpbmNsdWRlICJldmxpc3QuaCIKICNpbmNsdWRlICJyZWNvcmQuaCIKKyNpbmNsdWRlICJ1dGlsL3N5bnRoZXRpYy1ldmVudHMuaCIKIAogI2RlZmluZSBwdHJfdG9fdTY0KHB0cikgICAgKChfX3U2NCkodW5zaWduZWQgbG9uZykocHRyKSkKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2JwZi1ldmVudC5oIGIvdG9vbHMvcGVyZi91dGlsL2JwZi1ldmVudC5oCmluZGV4IGEwMWMyZmQuLjgxZmRjODggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9icGYtZXZlbnQuaAorKysgYi90b29scy9wZXJmL3V0aWwvYnBmLWV2ZW50LmgKQEAgLTYsOSArNiw5IEBACiAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+CiAjaW5jbHVkZSA8cHRocmVhZC5oPgogI2luY2x1ZGUgPGFwaS9mZC9hcnJheS5oPgotI2luY2x1ZGUgImV2ZW50LmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KIAorc3RydWN0IGJwZl9wcm9nX2luZm87CiBzdHJ1Y3QgbWFjaGluZTsKIHVuaW9uIHBlcmZfZXZlbnQ7CiBzdHJ1Y3QgcGVyZl9lbnY7CkBAIC0zMywxMSArMzMsNiBAQCBzdHJ1Y3QgYnRmX25vZGUgewogI2lmZGVmIEhBVkVfTElCQlBGX1NVUFBPUlQKIGludCBtYWNoaW5lX19wcm9jZXNzX2JwZihzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSwgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQsCiAJCQkgc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUpOwotCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9icGZfZXZlbnRzKHN0cnVjdCBwZXJmX3Nlc3Npb24gKnNlc3Npb24sCi0JCQkJICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICAgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsCi0JCQkJICAgICAgc3RydWN0IHJlY29yZF9vcHRzICpvcHRzKTsKIGludCBicGZfZXZlbnRfX2FkZF9zYl9ldmVudChzdHJ1Y3QgZXZsaXN0ICoqZXZsaXN0LAogCQkJCSBzdHJ1Y3QgcGVyZl9lbnYgKmVudik7CiB2b2lkIGJwZl9ldmVudF9fcHJpbnRfYnBmX3Byb2dfaW5mbyhzdHJ1Y3QgYnBmX3Byb2dfaW5mbyAqaW5mbywKQEAgLTUxLDE0ICs0Niw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1hY2hpbmVfX3Byb2Nlc3NfYnBmKHN0cnVjdCBtYWNoaW5lICptYWNoaW5lIF9fbWF5YmVfdW51c2VkLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2JwZl9ldmVudHMoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiBfX21heWJlX3VudXNlZCwKLQkJCQkJCSAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcyBfX21heWJlX3VudXNlZCwKLQkJCQkJCSAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSBfX21heWJlX3VudXNlZCwKLQkJCQkJCSAgICBzdHJ1Y3QgcmVjb3JkX29wdHMgKm9wdHMgX19tYXliZV91bnVzZWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgaW50IGJwZl9ldmVudF9fYWRkX3NiX2V2ZW50KHN0cnVjdCBldmxpc3QgKipldmxpc3QgX19tYXliZV91bnVzZWQsCiAJCQkJCSAgc3RydWN0IHBlcmZfZW52ICplbnYgX19tYXliZV91bnVzZWQpCiB7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvYnBmLWxvYWRlci5jIGIvdG9vbHMvcGVyZi91dGlsL2JwZi1sb2FkZXIuYwppbmRleCAzNzI4M2U4Li4xMGMxODdiIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvYnBmLWxvYWRlci5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9icGYtbG9hZGVyLmMKQEAgLTE1NjgsNyArMTU2OCw3IEBAIHN0cnVjdCBldnNlbCAqYnBmX19zZXR1cF9vdXRwdXRfZXZlbnQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBjb25zdCBjaGFyICpuYW1lKQogCQkJcmV0dXJuIEVSUl9QVFIoLWVycik7CiAJCX0KIAotCQlldnNlbCA9IHBlcmZfZXZsaXN0X19sYXN0KGV2bGlzdCk7CisJCWV2c2VsID0gZXZsaXN0X19sYXN0KGV2bGlzdCk7CiAJfQogCiAJYnBmX19mb3JfZWFjaF9tYXBfbmFtZWQobWFwLCBvYmosIHRtcCwgbmFtZSkgewpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2JyYW5jaC5jIGIvdG9vbHMvcGVyZi91dGlsL2JyYW5jaC5jCmluZGV4IDlkMWUwOTAuLjIyODViMWUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9icmFuY2guYworKysgYi90b29scy9wZXJmL3V0aWwvYnJhbmNoLmMKQEAgLTEsNSArMSwzIEBACi0jaW5jbHVkZSAidXRpbC91dGlsLmgiCi0jaW5jbHVkZSAidXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWwvbWFwX3N5bWJvbC5oIgogI2luY2x1ZGUgInV0aWwvYnJhbmNoLmgiCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvYnJhbmNoLmggYi90b29scy9wZXJmL3V0aWwvYnJhbmNoLmgKaW5kZXggMDZmNjZkYS4uODhlMDBkMiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2JyYW5jaC5oCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9icmFuY2guaApAQCAtMSw4ICsxLDE1IEBACiAjaWZuZGVmIF9QRVJGX0JSQU5DSF9ICiAjZGVmaW5lIF9QRVJGX0JSQU5DSF9IIDEKLQorLyoKKyAqIFRoZSBsaW51eC9zdGRkZWYuaCBpc24ndCBuZWVkIGhlcmUsIGJ1dCBpcyBuZWVkZWQgZm9yIF9fYWx3YXlzX2lubGluZSB1c2VkCisgKiBpbiBmaWxlcyBpbmNsdWRlZCBmcm9tIHVhcGkvbGludXgvcGVyZl9ldmVudC5oIHN1Y2ggYXMKKyAqIC91c3IvaW5jbHVkZS9saW51eC9zd2FiLmggYW5kIC91c3IvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oLAorICogZGV0ZWN0ZWQgaW4gYXQgbGVhc3QgbXVzbCBsaWJjLCB1c2VkIGluIEFscGluZSBMaW51eC4gLWFjbWUKKyAqLwogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KICNpbmNsdWRlIDxsaW51eC9wZXJmX2V2ZW50Lmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2J1aWxkLWlkLmMgYi90b29scy9wZXJmL3V0aWwvYnVpbGQtaWQuYwppbmRleCBlNWZiNzc3Li5jMDc2ZmM3IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvYnVpbGQtaWQuYworKysgYi90b29scy9wZXJmL3V0aWwvYnVpbGQtaWQuYwpAQCAtNywxMiArNywxMyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIFJlZCBIYXQgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUByZWRoYXQuY29tPgogICovCi0jaW5jbHVkZSAidXRpbC5oIgorI2luY2x1ZGUgInV0aWwuaCIgLy8gbHNkaXIoKSwgbWtkaXJfcCgpLCBybV9yZigpCiAjaW5jbHVkZSA8ZGlyZW50Lmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSAidXRpbC9jb3B5ZmlsZS5oIgogI2luY2x1ZGUgImRzby5oIgogI2luY2x1ZGUgImJ1aWxkLWlkLmgiCiAjaW5jbHVkZSAiZXZlbnQuaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9jYWxsY2hhaW4uYyBiL3Rvb2xzL3BlcmYvdXRpbC9jYWxsY2hhaW4uYwppbmRleCBjMTQ2NDZjLi45YTliNTZlIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvY2FsbGNoYWluLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2NhbGxjaGFpbi5jCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJkZWJ1Zy5oIgogI2luY2x1ZGUgImRzby5oIgorI2luY2x1ZGUgImV2ZW50LmgiCiAjaW5jbHVkZSAiaGlzdC5oIgogI2luY2x1ZGUgInNvcnQuaCIKICNpbmNsdWRlICJtYWNoaW5lLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvY2FsbGNoYWluLmggYi90b29scy9wZXJmL3V0aWwvY2FsbGNoYWluLmgKaW5kZXggYjA0MmNlZS4uODMzOThlNSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2NhbGxjaGFpbi5oCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9jYWxsY2hhaW4uaApAQCAtNCwxMiArNCwxNSBAQAogCiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5oPgotI2luY2x1ZGUgImV2ZW50LmgiCiAjaW5jbHVkZSAibWFwX3N5bWJvbC5oIgogI2luY2x1ZGUgImJyYW5jaC5oIgogCitzdHJ1Y3QgYWRkcl9sb2NhdGlvbjsKIHN0cnVjdCBldnNlbDsKK3N0cnVjdCBpcF9jYWxsY2hhaW47CiBzdHJ1Y3QgbWFwOworc3RydWN0IHBlcmZfc2FtcGxlOworc3RydWN0IHRocmVhZDsKIAogI2RlZmluZSBIRUxQX1BBRCAiXHRcdFx0XHQiCiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9jbG9leGVjLmMgYi90b29scy9wZXJmL3V0aWwvY2xvZXhlYy5jCmluZGV4IDRlOTA0ZmMuLmExMjg3MmYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9jbG9leGVjLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2Nsb2V4ZWMuYwpAQCAtMSw3ICsxLDcgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzY2hlZC5oPgotI2luY2x1ZGUgInV0aWwuaCIKKyNpbmNsdWRlICJ1dGlsLmgiIC8vIGZvciBzY2hlZF9nZXRjcHUoKQogI2luY2x1ZGUgIi4uL3BlcmYtc3lzLmgiCiAjaW5jbHVkZSAiY2xvZXhlYy5oIgogI2luY2x1ZGUgImV2ZW50LmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvY29weWZpbGUuYyBiL3Rvb2xzL3BlcmYvdXRpbC9jb3B5ZmlsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYTBkYjEKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9wZXJmL3V0aWwvY29weWZpbGUuYwpAQCAtMCwwICsxLDE0NCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyNpbmNsdWRlICJ1dGlsL2NvcHlmaWxlLmgiCisjaW5jbHVkZSAidXRpbC9uYW1lc3BhY2VzLmgiCisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCitzdGF0aWMgaW50IHNsb3dfY29weWZpbGUoY29uc3QgY2hhciAqZnJvbSwgY29uc3QgY2hhciAqdG8sIHN0cnVjdCBuc2luZm8gKm5zaSkKK3sKKwlpbnQgZXJyID0gLTE7CisJY2hhciAqbGluZSA9IE5VTEw7CisJc2l6ZV90IG47CisJRklMRSAqZnJvbV9mcCwgKnRvX2ZwOworCXN0cnVjdCBuc2Nvb2tpZSBuc2M7CisKKwluc2luZm9fX21vdW50bnNfZW50ZXIobnNpLCAmbnNjKTsKKwlmcm9tX2ZwID0gZm9wZW4oZnJvbSwgInIiKTsKKwluc2luZm9fX21vdW50bnNfZXhpdCgmbnNjKTsKKwlpZiAoZnJvbV9mcCA9PSBOVUxMKQorCQlnb3RvIG91dDsKKworCXRvX2ZwID0gZm9wZW4odG8sICJ3Iik7CisJaWYgKHRvX2ZwID09IE5VTEwpCisJCWdvdG8gb3V0X2ZjbG9zZV9mcm9tOworCisJd2hpbGUgKGdldGxpbmUoJmxpbmUsICZuLCBmcm9tX2ZwKSA+IDApCisJCWlmIChmcHV0cyhsaW5lLCB0b19mcCkgPT0gRU9GKQorCQkJZ290byBvdXRfZmNsb3NlX3RvOworCWVyciA9IDA7CitvdXRfZmNsb3NlX3RvOgorCWZjbG9zZSh0b19mcCk7CisJZnJlZShsaW5lKTsKK291dF9mY2xvc2VfZnJvbToKKwlmY2xvc2UoZnJvbV9mcCk7CitvdXQ6CisJcmV0dXJuIGVycjsKK30KKworaW50IGNvcHlmaWxlX29mZnNldChpbnQgaWZkLCBsb2ZmX3Qgb2ZmX2luLCBpbnQgb2ZkLCBsb2ZmX3Qgb2ZmX291dCwgdTY0IHNpemUpCit7CisJdm9pZCAqcHRyOworCWxvZmZfdCBwZ29mZjsKKworCXBnb2ZmID0gb2ZmX2luICYgfihwYWdlX3NpemUgLSAxKTsKKwlvZmZfaW4gLT0gcGdvZmY7CisKKwlwdHIgPSBtbWFwKE5VTEwsIG9mZl9pbiArIHNpemUsIFBST1RfUkVBRCwgTUFQX1BSSVZBVEUsIGlmZCwgcGdvZmYpOworCWlmIChwdHIgPT0gTUFQX0ZBSUxFRCkKKwkJcmV0dXJuIC0xOworCisJd2hpbGUgKHNpemUpIHsKKwkJc3NpemVfdCByZXQgPSBwd3JpdGUob2ZkLCBwdHIgKyBvZmZfaW4sIHNpemUsIG9mZl9vdXQpOworCQlpZiAocmV0IDwgMCAmJiBlcnJubyA9PSBFSU5UUikKKwkJCWNvbnRpbnVlOworCQlpZiAocmV0IDw9IDApCisJCQlicmVhazsKKworCQlzaXplIC09IHJldDsKKwkJb2ZmX2luICs9IHJldDsKKwkJb2ZmX291dCArPSByZXQ7CisJfQorCW11bm1hcChwdHIsIG9mZl9pbiArIHNpemUpOworCisJcmV0dXJuIHNpemUgPyAtMSA6IDA7Cit9CisKK3N0YXRpYyBpbnQgY29weWZpbGVfbW9kZV9ucyhjb25zdCBjaGFyICpmcm9tLCBjb25zdCBjaGFyICp0bywgbW9kZV90IG1vZGUsCisJCQkgICAgc3RydWN0IG5zaW5mbyAqbnNpKQoreworCWludCBmcm9tZmQsIHRvZmQ7CisJc3RydWN0IHN0YXQgc3Q7CisJaW50IGVycjsKKwljaGFyICp0bXAgPSBOVUxMLCAqcHRyID0gTlVMTDsKKwlzdHJ1Y3QgbnNjb29raWUgbnNjOworCisJbnNpbmZvX19tb3VudG5zX2VudGVyKG5zaSwgJm5zYyk7CisJZXJyID0gc3RhdChmcm9tLCAmc3QpOworCW5zaW5mb19fbW91bnRuc19leGl0KCZuc2MpOworCWlmIChlcnIpCisJCWdvdG8gb3V0OworCWVyciA9IC0xOworCisJLyogZXh0cmEgJ3gnIGF0IHRoZSBlbmQgaXMgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgJy4nICovCisJaWYgKGFzcHJpbnRmKCZ0bXAsICIlcy5YWFhYWFh4IiwgdG8pIDwgMCkgeworCQl0bXAgPSBOVUxMOworCQlnb3RvIG91dDsKKwl9CisJcHRyID0gc3RycmNocih0bXAsICcvJyk7CisJaWYgKCFwdHIpCisJCWdvdG8gb3V0OworCXB0ciA9IG1lbW1vdmUocHRyICsgMSwgcHRyLCBzdHJsZW4ocHRyKSAtIDEpOworCSpwdHIgPSAnLic7CisKKwl0b2ZkID0gbWtzdGVtcCh0bXApOworCWlmICh0b2ZkIDwgMCkKKwkJZ290byBvdXQ7CisKKwlpZiAoZmNobW9kKHRvZmQsIG1vZGUpKQorCQlnb3RvIG91dF9jbG9zZV90bzsKKworCWlmIChzdC5zdF9zaXplID09IDApIHsgLyogL3Byb2M/IGRvIGl0IHNsb3dseS4uLiAqLworCQllcnIgPSBzbG93X2NvcHlmaWxlKGZyb20sIHRtcCwgbnNpKTsKKwkJZ290byBvdXRfY2xvc2VfdG87CisJfQorCisJbnNpbmZvX19tb3VudG5zX2VudGVyKG5zaSwgJm5zYyk7CisJZnJvbWZkID0gb3Blbihmcm9tLCBPX1JET05MWSk7CisJbnNpbmZvX19tb3VudG5zX2V4aXQoJm5zYyk7CisJaWYgKGZyb21mZCA8IDApCisJCWdvdG8gb3V0X2Nsb3NlX3RvOworCisJZXJyID0gY29weWZpbGVfb2Zmc2V0KGZyb21mZCwgMCwgdG9mZCwgMCwgc3Quc3Rfc2l6ZSk7CisKKwljbG9zZShmcm9tZmQpOworb3V0X2Nsb3NlX3RvOgorCWNsb3NlKHRvZmQpOworCWlmICghZXJyKQorCQllcnIgPSBsaW5rKHRtcCwgdG8pOworCXVubGluayh0bXApOworb3V0OgorCWZyZWUodG1wKTsKKwlyZXR1cm4gZXJyOworfQorCitpbnQgY29weWZpbGVfbnMoY29uc3QgY2hhciAqZnJvbSwgY29uc3QgY2hhciAqdG8sIHN0cnVjdCBuc2luZm8gKm5zaSkKK3sKKwlyZXR1cm4gY29weWZpbGVfbW9kZV9ucyhmcm9tLCB0bywgMDc1NSwgbnNpKTsKK30KKworaW50IGNvcHlmaWxlX21vZGUoY29uc3QgY2hhciAqZnJvbSwgY29uc3QgY2hhciAqdG8sIG1vZGVfdCBtb2RlKQoreworCXJldHVybiBjb3B5ZmlsZV9tb2RlX25zKGZyb20sIHRvLCBtb2RlLCBOVUxMKTsKK30KKworaW50IGNvcHlmaWxlKGNvbnN0IGNoYXIgKmZyb20sIGNvbnN0IGNoYXIgKnRvKQoreworCXJldHVybiBjb3B5ZmlsZV9tb2RlKGZyb20sIHRvLCAwNzU1KTsKK30KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9jb3B5ZmlsZS5oIGIvdG9vbHMvcGVyZi91dGlsL2NvcHlmaWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg1ZDJmMgotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9jb3B5ZmlsZS5oCkBAIC0wLDAgKzEsMTYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisjaWZuZGVmIFBFUkZfQ09QWUZJTEVfSF8KKyNkZWZpbmUgUEVSRl9DT1BZRklMRV9IXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorCitzdHJ1Y3QgbnNpbmZvOworCitpbnQgY29weWZpbGUoY29uc3QgY2hhciAqZnJvbSwgY29uc3QgY2hhciAqdG8pOworaW50IGNvcHlmaWxlX21vZGUoY29uc3QgY2hhciAqZnJvbSwgY29uc3QgY2hhciAqdG8sIG1vZGVfdCBtb2RlKTsKK2ludCBjb3B5ZmlsZV9ucyhjb25zdCBjaGFyICpmcm9tLCBjb25zdCBjaGFyICp0bywgc3RydWN0IG5zaW5mbyAqbnNpKTsKK2ludCBjb3B5ZmlsZV9vZmZzZXQoaW50IGlmZCwgbG9mZl90IG9mZl9pbiwgaW50IG9mZCwgbG9mZl90IG9mZl9vdXQsIHU2NCBzaXplKTsKKworI2VuZGlmIC8vIFBFUkZfQ09QWUZJTEVfSF8KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0tZGVjb2Rlci9jcy1ldG0tZGVjb2Rlci5jIGIvdG9vbHMvcGVyZi91dGlsL2NzLWV0bS1kZWNvZGVyL2NzLWV0bS1kZWNvZGVyLmMKaW5kZXggMzdkN2M0OS4uY2Q5MmE5OSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2NzLWV0bS1kZWNvZGVyL2NzLWV0bS1kZWNvZGVyLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2NzLWV0bS1kZWNvZGVyL2NzLWV0bS1kZWNvZGVyLmMKQEAgLTE3LDcgKzE3LDYgQEAKICNpbmNsdWRlICJjcy1ldG0uaCIKICNpbmNsdWRlICJjcy1ldG0tZGVjb2Rlci5oIgogI2luY2x1ZGUgImludGxpc3QuaCIKLSNpbmNsdWRlICJ1dGlsLmgiCiAKIC8qIHVzZSByYXcgbG9nZ2luZyAqLwogI2lmZGVmIENTX0RFQlVHX1JBVwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2NzLWV0bS5jIGIvdG9vbHMvcGVyZi91dGlsL2NzLWV0bS5jCmluZGV4IDcwN2FmZGIuLjRiYTBmODcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0uYworKysgYi90b29scy9wZXJmL3V0aWwvY3MtZXRtLmMKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJ0aHJlYWQuaCIKICNpbmNsdWRlICJ0aHJlYWQtc3RhY2suaCIKICNpbmNsdWRlIDx0b29scy9saWJjX2NvbXBhdC5oPgotI2luY2x1ZGUgInV0aWwuaCIKKyNpbmNsdWRlICJ1dGlsL3N5bnRoZXRpYy1ldmVudHMuaCIKIAogI2RlZmluZSBNQVhfVElNRVNUQU1QICh+MFVMTCkKIApAQCAtMTI5OCw3ICsxMjk4LDcgQEAgc3RhdGljIGludCBjc19ldG1fX3N5bnRoX2V2ZW50cyhzdHJ1Y3QgY3NfZXRtX2F1eHRyYWNlICpldG0sCiAJYXR0ci5yZWFkX2Zvcm1hdCA9IGV2c2VsLT5jb3JlLmF0dHIucmVhZF9mb3JtYXQ7CiAKIAkvKiBjcmVhdGUgbmV3IGlkIHZhbCB0byBiZSBhIGZpeGVkIG9mZnNldCBmcm9tIGV2c2VsIGlkICovCi0JaWQgPSBldnNlbC0+aWRbMF0gKyAxMDAwMDAwMDAwOworCWlkID0gZXZzZWwtPmNvcmUuaWRbMF0gKyAxMDAwMDAwMDAwOwogCiAJaWYgKCFpZCkKIAkJaWQgPSAxOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2RhdGEtY29udmVydC1idC5jIGIvdG9vbHMvcGVyZi91dGlsL2RhdGEtY29udmVydC1idC5jCmluZGV4IDBjMjY4NDQuLmRiYzc3MmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9kYXRhLWNvbnZlcnQtYnQuYworKysgYi90b29scy9wZXJmL3V0aWwvZGF0YS1jb252ZXJ0LWJ0LmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJtYWNoaW5lLmgiCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogI2RlZmluZSBwcl9OKG4sIGZtdCwgLi4uKSBcCiAJZXByaW50ZihuLCBkZWJ1Z19kYXRhX2NvbnZlcnQsIGZtdCwgIyNfX1ZBX0FSR1NfXykKQEAgLTE2MTksOCArMTYyMCwxMCBAQCBpbnQgYnRfY29udmVydF9fcGVyZjJjdGYoY29uc3QgY2hhciAqaW5wdXQsIGNvbnN0IGNoYXIgKnBhdGgsCiAJZXJyID0gLTE7CiAJLyogcGVyZi5kYXRhIHNlc3Npb24gKi8KIAlzZXNzaW9uID0gcGVyZl9zZXNzaW9uX19uZXcoJmRhdGEsIDAsICZjLnRvb2wpOwotCWlmICghc2Vzc2lvbikKKwlpZiAoSVNfRVJSKHNlc3Npb24pKSB7CisJCWVyciA9IFBUUl9FUlIoc2Vzc2lvbik7CiAJCWdvdG8gZnJlZV93cml0ZXI7CisJfQogCiAJaWYgKGMucXVldWVfc2l6ZSkgewogCQlvcmRlcmVkX2V2ZW50c19fc2V0X2FsbG9jX3NpemUoJnNlc3Npb24tPm9yZGVyZWRfZXZlbnRzLApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2RhdGEuYyBiL3Rvb2xzL3BlcmYvdXRpbC9kYXRhLmMKaW5kZXggZTc1YzNhMi4uODhmYmEyYiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2RhdGEuYworKysgYi90b29scy9wZXJmL3V0aWwvZGF0YS5jCkBAIC0xMyw5ICsxMywxMCBAQAogI2luY2x1ZGUgPGRpcmVudC5oPgogCiAjaW5jbHVkZSAiZGF0YS5oIgotI2luY2x1ZGUgInV0aWwuaCIKKyNpbmNsdWRlICJ1dGlsLmgiIC8vIHJtX3JmX3BlcmZfZGF0YSgpCiAjaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJoZWFkZXIuaCIKKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4KIAogc3RhdGljIHZvaWQgY2xvc2VfZGlyKHN0cnVjdCBwZXJmX2RhdGFfZmlsZSAqZmlsZXMsIGludCBucikKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9kZWJ1Zy5jIGIvdG9vbHMvcGVyZi91dGlsL2RlYnVnLmMKaW5kZXggYTFiNTliZC4uZTU1MTE0ZiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2RlYnVnLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2RlYnVnLmMKQEAgLTE3LDcgKzE3LDYgQEAKICNpbmNsdWRlICJldmVudC5oIgogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAicHJpbnRfYmluYXJ5LmgiCi0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgInRhcmdldC5oIgogI2luY2x1ZGUgInVpL2hlbHBsaW5lLmgiCiAjaW5jbHVkZSAidWkvdWkuaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9kZWJ1Zy5oIGIvdG9vbHMvcGVyZi91dGlsL2RlYnVnLmgKaW5kZXggYjJkZWVlOS4uZDI1YWUxYyAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2RlYnVnLmgKKysrIGIvdG9vbHMvcGVyZi91dGlsL2RlYnVnLmgKQEAgLTMsOSArMyw5IEBACiAjaWZuZGVmIF9fUEVSRl9ERUJVR19ICiAjZGVmaW5lIF9fUEVSRl9ERUJVR19ICiAKKyNpbmNsdWRlIDxzdGRhcmcuaD4KICNpbmNsdWRlIDxzdGRib29sLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KLSNpbmNsdWRlICIuLi91aS91dGlsLmgiCiAKIGV4dGVybiBpbnQgdmVyYm9zZTsKIGV4dGVybiBib29sIHF1aWV0LCBkdW1wX3RyYWNlOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2RlbWFuZ2xlLWphdmEuYyBiL3Rvb2xzL3BlcmYvdXRpbC9kZW1hbmdsZS1qYXZhLmMKaW5kZXggNzYzMzI4Yy4uNmZiN2YzNCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2RlbWFuZ2xlLWphdmEuYworKysgYi90b29scy9wZXJmL3V0aWwvZGVtYW5nbGUtamF2YS5jCkBAIC0zLDcgKzMsNiBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJzeW1ib2wuaCIKIAogI2luY2x1ZGUgImRlbWFuZ2xlLWphdmEuaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9kZW1hbmdsZS1ydXN0LmMgYi90b29scy9wZXJmL3V0aWwvZGVtYW5nbGUtcnVzdC5jCmluZGV4IDQyM2FmYmIuLmE2NTlmYzYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9kZW1hbmdsZS1ydXN0LmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2RlbWFuZ2xlLXJ1c3QuYwpAQCAtMSw2ICsxLDUgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgImRlYnVnLmgiCiAKICNpbmNsdWRlICJkZW1hbmdsZS1ydXN0LmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvZHdhcmYtcmVncy5jIGIvdG9vbHMvcGVyZi91dGlsL2R3YXJmLXJlZ3MuYwppbmRleCBkYjU1ZWRkLi4xYjQ5ZWNlIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvZHdhcmYtcmVncy5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9kd2FyZi1yZWdzLmMKQEAgLTUsNyArNSw2IEBACiAgKiBXcml0dGVuIGJ5OiBNYXNhbWkgSGlyYW1hdHN1IDxtaGlyYW1hdEBrZXJuZWwub3JnPgogICovCiAKLSNpbmNsdWRlIDx1dGlsLmg+CiAjaW5jbHVkZSA8ZGVidWcuaD4KICNpbmNsdWRlIDxkd2FyZi1yZWdzLmg+CiAjaW5jbHVkZSA8ZWxmLmg+CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvZW52LmggYi90b29scy9wZXJmL3V0aWwvZW52LmgKaW5kZXggZDhlMDgzZC4uZGI0MDkwNiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2Vudi5oCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9lbnYuaApAQCAtNCw5ICs0LDEwIEBACiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5oPgotI2luY2x1ZGUgImNwdW1hcC5oIgogI2luY2x1ZGUgInJ3c2VtLmgiCiAKK3N0cnVjdCBwZXJmX2NwdV9tYXA7CisKIHN0cnVjdCBjcHVfdG9wb2xvZ3lfbWFwIHsKIAlpbnQJc29ja2V0X2lkOwogCWludAlkaWVfaWQ7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvZXZlbnQuYyBiL3Rvb2xzL3BlcmYvdXRpbC9ldmVudC5jCmluZGV4IGY0YWZiYjguLmZjMWU1YTkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9ldmVudC5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9ldmVudC5jCkBAIC0xLDE2ICsxLDE2IEBACi0jaW5jbHVkZSA8ZGlyZW50Lmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPGludHR5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxwZXJmL2NwdW1hcC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8dWFwaS9saW51eC9tbWFuLmg+IC8qIFRvIGdldCB0aGluZ3MgbGlrZSBNQVBfSFVHRVRMQiBldmVuIG9uIG9sZGVyIGxpYmMgaGVhZGVycyAqLwotI2luY2x1ZGUgPGFwaS9mcy9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KKyNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJkc28uaCIKICNpbmNsdWRlICJldmVudC5oIgogI2luY2x1ZGUgImRlYnVnLmgiCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAidGltZS11dGlscy5oIgogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSAibWFwLmgiCisjaW5jbHVkZSAidXRpbC9uYW1lc3BhY2VzLmgiCiAjaW5jbHVkZSAic3ltYm9sLmgiCiAjaW5jbHVkZSAic3ltYm9sL2thbGxzeW1zLmgiCiAjaW5jbHVkZSAiYXNtL2J1Zy5oIgpAQCAtMzMsOCArMzQsNiBAQAogI2luY2x1ZGUgInRvb2wuaCIKICNpbmNsdWRlICIuLi9wZXJmLmgiCiAKLSNkZWZpbmUgREVGQVVMVF9QUk9DX01BUF9QQVJTRV9USU1FT1VUIDUwMAotCiBzdGF0aWMgY29uc3QgY2hhciAqcGVyZl9ldmVudF9fbmFtZXNbXSA9IHsKIAlbMF0JCQkJCT0gIlRPVEFMIiwKIAlbUEVSRl9SRUNPUkRfTU1BUF0JCQk9ICJNTUFQIiwKQEAgLTc1LDE4ICs3NCw2IEBAIHN0YXRpYyBjb25zdCBjaGFyICpwZXJmX2V2ZW50X19uYW1lc1tdID0gewogCVtQRVJGX1JFQ09SRF9DT01QUkVTU0VEXQkJPSAiQ09NUFJFU1NFRCIsCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqcGVyZl9uc19fbmFtZXNbXSA9IHsKLQlbTkVUX05TX0lOREVYXQkJPSAibmV0IiwKLQlbVVRTX05TX0lOREVYXQkJPSAidXRzIiwKLQlbSVBDX05TX0lOREVYXQkJPSAiaXBjIiwKLQlbUElEX05TX0lOREVYXQkJPSAicGlkIiwKLQlbVVNFUl9OU19JTkRFWF0JCT0gInVzZXIiLAotCVtNTlRfTlNfSU5ERVhdCQk9ICJtbnQiLAotCVtDR1JPVVBfTlNfSU5ERVhdCT0gImNncm91cCIsCi19OwotCi11bnNpZ25lZCBpbnQgcHJvY19tYXBfdGltZW91dCA9IERFRkFVTFRfUFJPQ19NQVBfUEFSU0VfVElNRU9VVDsKLQogY29uc3QgY2hhciAqcGVyZl9ldmVudF9fbmFtZSh1bnNpZ25lZCBpbnQgaWQpCiB7CiAJaWYgKGlkID49IEFSUkFZX1NJWkUocGVyZl9ldmVudF9fbmFtZXMpKQpAQCAtOTYsNzc1ICs4Myw2IEBAIGNvbnN0IGNoYXIgKnBlcmZfZXZlbnRfX25hbWUodW5zaWduZWQgaW50IGlkKQogCXJldHVybiBwZXJmX2V2ZW50X19uYW1lc1tpZF07CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICpwZXJmX25zX19uYW1lKHVuc2lnbmVkIGludCBpZCkKLXsKLQlpZiAoaWQgPj0gQVJSQVlfU0laRShwZXJmX25zX19uYW1lcykpCi0JCXJldHVybiAiVU5LTk9XTiI7Ci0JcmV0dXJuIHBlcmZfbnNfX25hbWVzW2lkXTsKLX0KLQotaW50IHBlcmZfdG9vbF9fcHJvY2Vzc19zeW50aF9ldmVudChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LAotCQkJCSAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLAotCQkJCSAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKQotewotCXN0cnVjdCBwZXJmX3NhbXBsZSBzeW50aF9zYW1wbGUgPSB7Ci0JLnBpZAkgICA9IC0xLAotCS50aWQJICAgPSAtMSwKLQkudGltZQkgICA9IC0xLAotCS5zdHJlYW1faWQgPSAtMSwKLQkuY3B1CSAgID0gLTEsCi0JLnBlcmlvZAkgICA9IDEsCi0JLmNwdW1vZGUgICA9IGV2ZW50LT5oZWFkZXIubWlzYyAmIFBFUkZfUkVDT1JEX01JU0NfQ1BVTU9ERV9NQVNLLAotCX07Ci0KLQlyZXR1cm4gcHJvY2Vzcyh0b29sLCBldmVudCwgJnN5bnRoX3NhbXBsZSwgbWFjaGluZSk7Ci19OwotCi0vKgotICogQXNzdW1lcyB0aGF0IHRoZSBmaXJzdCA0MDk1IGJ5dGVzIG9mIC9wcm9jL3BpZC9zdGF0IGNvbnRhaW5zCi0gKiB0aGUgY29tbSwgdGdpZCBhbmQgcHBpZC4KLSAqLwotc3RhdGljIGludCBwZXJmX2V2ZW50X19nZXRfY29tbV9pZHMocGlkX3QgcGlkLCBjaGFyICpjb21tLCBzaXplX3QgbGVuLAotCQkJCSAgICBwaWRfdCAqdGdpZCwgcGlkX3QgKnBwaWQpCi17Ci0JY2hhciBmaWxlbmFtZVtQQVRIX01BWF07Ci0JY2hhciBiZls0MDk2XTsKLQlpbnQgZmQ7Ci0Jc2l6ZV90IHNpemUgPSAwOwotCXNzaXplX3QgbjsKLQljaGFyICpuYW1lLCAqdGdpZHMsICpwcGlkczsKLQotCSp0Z2lkID0gLTE7Ci0JKnBwaWQgPSAtMTsKLQotCXNucHJpbnRmKGZpbGVuYW1lLCBzaXplb2YoZmlsZW5hbWUpLCAiL3Byb2MvJWQvc3RhdHVzIiwgcGlkKTsKLQotCWZkID0gb3BlbihmaWxlbmFtZSwgT19SRE9OTFkpOwotCWlmIChmZCA8IDApIHsKLQkJcHJfZGVidWcoImNvdWxkbid0IG9wZW4gJXNcbiIsIGZpbGVuYW1lKTsKLQkJcmV0dXJuIC0xOwotCX0KLQotCW4gPSByZWFkKGZkLCBiZiwgc2l6ZW9mKGJmKSAtIDEpOwotCWNsb3NlKGZkKTsKLQlpZiAobiA8PSAwKSB7Ci0JCXByX3dhcm5pbmcoIkNvdWxkbid0IGdldCBDT01NLCB0aWdkIGFuZCBwcGlkIGZvciBwaWQgJWRcbiIsCi0JCQkgICBwaWQpOwotCQlyZXR1cm4gLTE7Ci0JfQotCWJmW25dID0gJ1wwJzsKLQotCW5hbWUgPSBzdHJzdHIoYmYsICJOYW1lOiIpOwotCXRnaWRzID0gc3Ryc3RyKGJmLCAiVGdpZDoiKTsKLQlwcGlkcyA9IHN0cnN0cihiZiwgIlBQaWQ6Iik7Ci0KLQlpZiAobmFtZSkgewotCQljaGFyICpubDsKLQotCQluYW1lID0gc2tpcF9zcGFjZXMobmFtZSArIDUpOyAgLyogc3RybGVuKCJOYW1lOiIpICovCi0JCW5sID0gc3RyY2hyKG5hbWUsICdcbicpOwotCQlpZiAobmwpCi0JCQkqbmwgPSAnXDAnOwotCi0JCXNpemUgPSBzdHJsZW4obmFtZSk7Ci0JCWlmIChzaXplID49IGxlbikKLQkJCXNpemUgPSBsZW4gLSAxOwotCQltZW1jcHkoY29tbSwgbmFtZSwgc2l6ZSk7Ci0JCWNvbW1bc2l6ZV0gPSAnXDAnOwotCX0gZWxzZSB7Ci0JCXByX2RlYnVnKCJOYW1lOiBzdHJpbmcgbm90IGZvdW5kIGZvciBwaWQgJWRcbiIsIHBpZCk7Ci0JfQotCi0JaWYgKHRnaWRzKSB7Ci0JCXRnaWRzICs9IDU7ICAvKiBzdHJsZW4oIlRnaWQ6IikgKi8KLQkJKnRnaWQgPSBhdG9pKHRnaWRzKTsKLQl9IGVsc2UgewotCQlwcl9kZWJ1ZygiVGdpZDogc3RyaW5nIG5vdCBmb3VuZCBmb3IgcGlkICVkXG4iLCBwaWQpOwotCX0KLQotCWlmIChwcGlkcykgewotCQlwcGlkcyArPSA1OyAgLyogc3RybGVuKCJQUGlkOiIpICovCi0JCSpwcGlkID0gYXRvaShwcGlkcyk7Ci0JfSBlbHNlIHsKLQkJcHJfZGVidWcoIlBQaWQ6IHN0cmluZyBub3QgZm91bmQgZm9yIHBpZCAlZFxuIiwgcGlkKTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBwZXJmX2V2ZW50X19wcmVwYXJlX2NvbW0odW5pb24gcGVyZl9ldmVudCAqZXZlbnQsIHBpZF90IHBpZCwKLQkJCQkgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsCi0JCQkJICAgIHBpZF90ICp0Z2lkLCBwaWRfdCAqcHBpZCkKLXsKLQlzaXplX3Qgc2l6ZTsKLQotCSpwcGlkID0gLTE7Ci0KLQltZW1zZXQoJmV2ZW50LT5jb21tLCAwLCBzaXplb2YoZXZlbnQtPmNvbW0pKTsKLQotCWlmIChtYWNoaW5lX19pc19ob3N0KG1hY2hpbmUpKSB7Ci0JCWlmIChwZXJmX2V2ZW50X19nZXRfY29tbV9pZHMocGlkLCBldmVudC0+Y29tbS5jb21tLAotCQkJCQkgICAgIHNpemVvZihldmVudC0+Y29tbS5jb21tKSwKLQkJCQkJICAgICB0Z2lkLCBwcGlkKSAhPSAwKSB7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQl9IGVsc2UgewotCQkqdGdpZCA9IG1hY2hpbmUtPnBpZDsKLQl9Ci0KLQlpZiAoKnRnaWQgPCAwKQotCQlyZXR1cm4gLTE7Ci0KLQlldmVudC0+Y29tbS5waWQgPSAqdGdpZDsKLQlldmVudC0+Y29tbS5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX0NPTU07Ci0KLQlzaXplID0gc3RybGVuKGV2ZW50LT5jb21tLmNvbW0pICsgMTsKLQlzaXplID0gUEVSRl9BTElHTihzaXplLCBzaXplb2YodTY0KSk7Ci0JbWVtc2V0KGV2ZW50LT5jb21tLmNvbW0gKyBzaXplLCAwLCBtYWNoaW5lLT5pZF9oZHJfc2l6ZSk7Ci0JZXZlbnQtPmNvbW0uaGVhZGVyLnNpemUgPSAoc2l6ZW9mKGV2ZW50LT5jb21tKSAtCi0JCQkJKHNpemVvZihldmVudC0+Y29tbS5jb21tKSAtIHNpemUpICsKLQkJCQltYWNoaW5lLT5pZF9oZHJfc2l6ZSk7Ci0JZXZlbnQtPmNvbW0udGlkID0gcGlkOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXBpZF90IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfY29tbShzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCQkgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQsIHBpZF90IHBpZCwKLQkJCQkJIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCQkgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpCi17Ci0JcGlkX3QgdGdpZCwgcHBpZDsKLQotCWlmIChwZXJmX2V2ZW50X19wcmVwYXJlX2NvbW0oZXZlbnQsIHBpZCwgbWFjaGluZSwgJnRnaWQsICZwcGlkKSAhPSAwKQotCQlyZXR1cm4gLTE7Ci0KLQlpZiAocGVyZl90b29sX19wcm9jZXNzX3N5bnRoX2V2ZW50KHRvb2wsIGV2ZW50LCBtYWNoaW5lLCBwcm9jZXNzKSAhPSAwKQotCQlyZXR1cm4gLTE7Ci0KLQlyZXR1cm4gdGdpZDsKLX0KLQotc3RhdGljIHZvaWQgcGVyZl9ldmVudF9fZ2V0X25zX2xpbmtfaW5mbyhwaWRfdCBwaWQsIGNvbnN0IGNoYXIgKm5zLAotCQkJCQkgc3RydWN0IHBlcmZfbnNfbGlua19pbmZvICpuc19saW5rX2luZm8pCi17Ci0Jc3RydWN0IHN0YXQ2NCBzdDsKLQljaGFyIHByb2NfbnNbMTI4XTsKLQotCXNwcmludGYocHJvY19ucywgIi9wcm9jLyV1L25zLyVzIiwgcGlkLCBucyk7Ci0JaWYgKHN0YXQ2NChwcm9jX25zLCAmc3QpID09IDApIHsKLQkJbnNfbGlua19pbmZvLT5kZXYgPSBzdC5zdF9kZXY7Ci0JCW5zX2xpbmtfaW5mby0+aW5vID0gc3Quc3RfaW5vOwotCX0KLX0KLQotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfbmFtZXNwYWNlcyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LAotCQkJCSAgICAgIHBpZF90IHBpZCwgcGlkX3QgdGdpZCwKLQkJCQkgICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKLXsKLQl1MzIgaWR4OwotCXN0cnVjdCBwZXJmX25zX2xpbmtfaW5mbyAqbnNfbGlua19pbmZvOwotCi0JaWYgKCF0b29sIHx8ICF0b29sLT5uYW1lc3BhY2VfZXZlbnRzKQotCQlyZXR1cm4gMDsKLQotCW1lbXNldCgmZXZlbnQtPm5hbWVzcGFjZXMsIDAsIChzaXplb2YoZXZlbnQtPm5hbWVzcGFjZXMpICsKLQkgICAgICAgKE5SX05BTUVTUEFDRVMgKiBzaXplb2Yoc3RydWN0IHBlcmZfbnNfbGlua19pbmZvKSkgKwotCSAgICAgICBtYWNoaW5lLT5pZF9oZHJfc2l6ZSkpOwotCi0JZXZlbnQtPm5hbWVzcGFjZXMucGlkID0gdGdpZDsKLQlldmVudC0+bmFtZXNwYWNlcy50aWQgPSBwaWQ7Ci0KLQlldmVudC0+bmFtZXNwYWNlcy5ucl9uYW1lc3BhY2VzID0gTlJfTkFNRVNQQUNFUzsKLQotCW5zX2xpbmtfaW5mbyA9IGV2ZW50LT5uYW1lc3BhY2VzLmxpbmtfaW5mbzsKLQotCWZvciAoaWR4ID0gMDsgaWR4IDwgZXZlbnQtPm5hbWVzcGFjZXMubnJfbmFtZXNwYWNlczsgaWR4KyspCi0JCXBlcmZfZXZlbnRfX2dldF9uc19saW5rX2luZm8ocGlkLCBwZXJmX25zX19uYW1lKGlkeCksCi0JCQkJCSAgICAgJm5zX2xpbmtfaW5mb1tpZHhdKTsKLQotCWV2ZW50LT5uYW1lc3BhY2VzLmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfTkFNRVNQQUNFUzsKLQotCWV2ZW50LT5uYW1lc3BhY2VzLmhlYWRlci5zaXplID0gKHNpemVvZihldmVudC0+bmFtZXNwYWNlcykgKwotCQkJKE5SX05BTUVTUEFDRVMgKiBzaXplb2Yoc3RydWN0IHBlcmZfbnNfbGlua19pbmZvKSkgKwotCQkJbWFjaGluZS0+aWRfaGRyX3NpemUpOwotCi0JaWYgKHBlcmZfdG9vbF9fcHJvY2Vzc19zeW50aF9ldmVudCh0b29sLCBldmVudCwgbWFjaGluZSwgcHJvY2VzcykgIT0gMCkKLQkJcmV0dXJuIC0xOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9mb3JrKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgICAgIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LAotCQkJCSAgICAgICBwaWRfdCBwaWQsIHBpZF90IHRnaWQsIHBpZF90IHBwaWQsCi0JCQkJICAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCSAgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKLXsKLQltZW1zZXQoJmV2ZW50LT5mb3JrLCAwLCBzaXplb2YoZXZlbnQtPmZvcmspICsgbWFjaGluZS0+aWRfaGRyX3NpemUpOwotCi0JLyoKLQkgKiBmb3IgbWFpbiB0aHJlYWQgc2V0IHBhcmVudCB0byBwcGlkIGZyb20gc3RhdHVzIGZpbGUuIEZvciBvdGhlcgotCSAqIHRocmVhZHMgc2V0IHBhcmVudCBwaWQgdG8gbWFpbiB0aHJlYWQuIGllLiwgYXNzdW1lIG1haW4gdGhyZWFkCi0JICogc3Bhd25zIGFsbCB0aHJlYWRzIGluIGEgcHJvY2VzcwotCSovCi0JaWYgKHRnaWQgPT0gcGlkKSB7Ci0JCWV2ZW50LT5mb3JrLnBwaWQgPSBwcGlkOwotCQlldmVudC0+Zm9yay5wdGlkID0gcHBpZDsKLQl9IGVsc2UgewotCQlldmVudC0+Zm9yay5wcGlkID0gdGdpZDsKLQkJZXZlbnQtPmZvcmsucHRpZCA9IHRnaWQ7Ci0JfQotCWV2ZW50LT5mb3JrLnBpZCAgPSB0Z2lkOwotCWV2ZW50LT5mb3JrLnRpZCAgPSBwaWQ7Ci0JZXZlbnQtPmZvcmsuaGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9GT1JLOwotCWV2ZW50LT5mb3JrLmhlYWRlci5taXNjID0gUEVSRl9SRUNPUkRfTUlTQ19GT1JLX0VYRUM7Ci0KLQlldmVudC0+Zm9yay5oZWFkZXIuc2l6ZSA9IChzaXplb2YoZXZlbnQtPmZvcmspICsgbWFjaGluZS0+aWRfaGRyX3NpemUpOwotCi0JaWYgKHBlcmZfdG9vbF9fcHJvY2Vzc19zeW50aF9ldmVudCh0b29sLCBldmVudCwgbWFjaGluZSwgcHJvY2VzcykgIT0gMCkKLQkJcmV0dXJuIC0xOwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX21tYXBfZXZlbnRzKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgICAgIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LAotCQkJCSAgICAgICBwaWRfdCBwaWQsIHBpZF90IHRnaWQsCi0JCQkJICAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCSAgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSwKLQkJCQkgICAgICAgYm9vbCBtbWFwX2RhdGEpCi17Ci0JY2hhciBmaWxlbmFtZVtQQVRIX01BWF07Ci0JRklMRSAqZnA7Ci0JdW5zaWduZWQgbG9uZyBsb25nIHQ7Ci0JYm9vbCB0cnVuY2F0aW9uID0gZmFsc2U7Ci0JdW5zaWduZWQgbG9uZyBsb25nIHRpbWVvdXQgPSBwcm9jX21hcF90aW1lb3V0ICogMTAwMDAwMFVMTDsKLQlpbnQgcmMgPSAwOwotCWNvbnN0IGNoYXIgKmh1Z2V0bGJmc19tbnQgPSBodWdldGxiZnNfX21vdW50cG9pbnQoKTsKLQlpbnQgaHVnZXRsYmZzX21udF9sZW4gPSBodWdldGxiZnNfbW50ID8gc3RybGVuKGh1Z2V0bGJmc19tbnQpIDogMDsKLQotCWlmIChtYWNoaW5lX19pc19kZWZhdWx0X2d1ZXN0KG1hY2hpbmUpKQotCQlyZXR1cm4gMDsKLQotCXNucHJpbnRmKGZpbGVuYW1lLCBzaXplb2YoZmlsZW5hbWUpLCAiJXMvcHJvYy8lZC90YXNrLyVkL21hcHMiLAotCQkgbWFjaGluZS0+cm9vdF9kaXIsIHBpZCwgcGlkKTsKLQotCWZwID0gZm9wZW4oZmlsZW5hbWUsICJyIik7Ci0JaWYgKGZwID09IE5VTEwpIHsKLQkJLyoKLQkJICogV2UgcmFjZWQgd2l0aCBhIHRhc2sgZXhpdGluZyAtIGp1c3QgcmV0dXJuOgotCQkgKi8KLQkJcHJfZGVidWcoImNvdWxkbid0IG9wZW4gJXNcbiIsIGZpbGVuYW1lKTsKLQkJcmV0dXJuIC0xOwotCX0KLQotCWV2ZW50LT5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX01NQVAyOwotCXQgPSByZGNsb2NrKCk7Ci0KLQl3aGlsZSAoMSkgewotCQljaGFyIGJmW0JVRlNJWl07Ci0JCWNoYXIgcHJvdFs1XTsKLQkJY2hhciBleGVjbmFtZVtQQVRIX01BWF07Ci0JCWNoYXIgYW5vbnN0cltdID0gIi8vYW5vbiI7Ci0JCXVuc2lnbmVkIGludCBpbm87Ci0JCXNpemVfdCBzaXplOwotCQlzc2l6ZV90IG47Ci0KLQkJaWYgKGZnZXRzKGJmLCBzaXplb2YoYmYpLCBmcCkgPT0gTlVMTCkKLQkJCWJyZWFrOwotCi0JCWlmICgocmRjbG9jaygpIC0gdCkgPiB0aW1lb3V0KSB7Ci0JCQlwcl93YXJuaW5nKCJSZWFkaW5nICVzIHRpbWUgb3V0LiAiCi0JCQkJICAgIllvdSBtYXkgd2FudCB0byBpbmNyZWFzZSAiCi0JCQkJICAgInRoZSB0aW1lIGxpbWl0IGJ5IC0tcHJvYy1tYXAtdGltZW91dFxuIiwKLQkJCQkgICBmaWxlbmFtZSk7Ci0JCQl0cnVuY2F0aW9uID0gdHJ1ZTsKLQkJCWdvdG8gb3V0OwotCQl9Ci0KLQkJLyogZW5zdXJlIG51bGwgdGVybWluYXRpb24gc2luY2Ugc3RhY2sgd2lsbCBiZSByZXVzZWQuICovCi0JCXN0cmNweShleGVjbmFtZSwgIiIpOwotCi0JCS8qIDAwNDAwMDAwLTAwNDBjMDAwIHIteHAgMDAwMDAwMDAgZmQ6MDEgNDEwMzggIC9iaW4vY2F0ICovCi0JCW4gPSBzc2NhbmYoYmYsICIlIlBSSV9seDY0Ii0lIlBSSV9seDY0IiAlcyAlIlBSSV9seDY0IiAleDoleCAldSAlW15cbl1cbiIsCi0JCSAgICAgICAmZXZlbnQtPm1tYXAyLnN0YXJ0LCAmZXZlbnQtPm1tYXAyLmxlbiwgcHJvdCwKLQkJICAgICAgICZldmVudC0+bW1hcDIucGdvZmYsICZldmVudC0+bW1hcDIubWFqLAotCQkgICAgICAgJmV2ZW50LT5tbWFwMi5taW4sCi0JCSAgICAgICAmaW5vLCBleGVjbmFtZSk7Ci0KLQkJLyoKLSAJCSAqIEFub24gbWFwcyBkb24ndCBoYXZlIHRoZSBleGVjbmFtZS4KLSAJCSAqLwotCQlpZiAobiA8IDcpCi0JCQljb250aW51ZTsKLQotCQlldmVudC0+bW1hcDIuaW5vID0gKHU2NClpbm87Ci0KLQkJLyoKLQkJICogSnVzdCBsaWtlIHRoZSBrZXJuZWwsIHNlZSBfX3BlcmZfZXZlbnRfbW1hcCBpbiBrZXJuZWwvcGVyZl9ldmVudC5jCi0JCSAqLwotCQlpZiAobWFjaGluZV9faXNfaG9zdChtYWNoaW5lKSkKLQkJCWV2ZW50LT5oZWFkZXIubWlzYyA9IFBFUkZfUkVDT1JEX01JU0NfVVNFUjsKLQkJZWxzZQotCQkJZXZlbnQtPmhlYWRlci5taXNjID0gUEVSRl9SRUNPUkRfTUlTQ19HVUVTVF9VU0VSOwotCi0JCS8qIG1hcCBwcm90ZWN0aW9uIGFuZCBmbGFncyBiaXRzICovCi0JCWV2ZW50LT5tbWFwMi5wcm90ID0gMDsKLQkJZXZlbnQtPm1tYXAyLmZsYWdzID0gMDsKLQkJaWYgKHByb3RbMF0gPT0gJ3InKQotCQkJZXZlbnQtPm1tYXAyLnByb3QgfD0gUFJPVF9SRUFEOwotCQlpZiAocHJvdFsxXSA9PSAndycpCi0JCQlldmVudC0+bW1hcDIucHJvdCB8PSBQUk9UX1dSSVRFOwotCQlpZiAocHJvdFsyXSA9PSAneCcpCi0JCQlldmVudC0+bW1hcDIucHJvdCB8PSBQUk9UX0VYRUM7Ci0KLQkJaWYgKHByb3RbM10gPT0gJ3MnKQotCQkJZXZlbnQtPm1tYXAyLmZsYWdzIHw9IE1BUF9TSEFSRUQ7Ci0JCWVsc2UKLQkJCWV2ZW50LT5tbWFwMi5mbGFncyB8PSBNQVBfUFJJVkFURTsKLQotCQlpZiAocHJvdFsyXSAhPSAneCcpIHsKLQkJCWlmICghbW1hcF9kYXRhIHx8IHByb3RbMF0gIT0gJ3InKQotCQkJCWNvbnRpbnVlOwotCi0JCQlldmVudC0+aGVhZGVyLm1pc2MgfD0gUEVSRl9SRUNPUkRfTUlTQ19NTUFQX0RBVEE7Ci0JCX0KLQotb3V0OgotCQlpZiAodHJ1bmNhdGlvbikKLQkJCWV2ZW50LT5oZWFkZXIubWlzYyB8PSBQRVJGX1JFQ09SRF9NSVNDX1BST0NfTUFQX1BBUlNFX1RJTUVPVVQ7Ci0KLQkJaWYgKCFzdHJjbXAoZXhlY25hbWUsICIiKSkKLQkJCXN0cmNweShleGVjbmFtZSwgYW5vbnN0cik7Ci0KLQkJaWYgKGh1Z2V0bGJmc19tbnRfbGVuICYmCi0JCSAgICAhc3RybmNtcChleGVjbmFtZSwgaHVnZXRsYmZzX21udCwgaHVnZXRsYmZzX21udF9sZW4pKSB7Ci0JCQlzdHJjcHkoZXhlY25hbWUsIGFub25zdHIpOwotCQkJZXZlbnQtPm1tYXAyLmZsYWdzIHw9IE1BUF9IVUdFVExCOwotCQl9Ci0KLQkJc2l6ZSA9IHN0cmxlbihleGVjbmFtZSkgKyAxOwotCQltZW1jcHkoZXZlbnQtPm1tYXAyLmZpbGVuYW1lLCBleGVjbmFtZSwgc2l6ZSk7Ci0JCXNpemUgPSBQRVJGX0FMSUdOKHNpemUsIHNpemVvZih1NjQpKTsKLQkJZXZlbnQtPm1tYXAyLmxlbiAtPSBldmVudC0+bW1hcC5zdGFydDsKLQkJZXZlbnQtPm1tYXAyLmhlYWRlci5zaXplID0gKHNpemVvZihldmVudC0+bW1hcDIpIC0KLQkJCQkJKHNpemVvZihldmVudC0+bW1hcDIuZmlsZW5hbWUpIC0gc2l6ZSkpOwotCQltZW1zZXQoZXZlbnQtPm1tYXAyLmZpbGVuYW1lICsgc2l6ZSwgMCwgbWFjaGluZS0+aWRfaGRyX3NpemUpOwotCQlldmVudC0+bW1hcDIuaGVhZGVyLnNpemUgKz0gbWFjaGluZS0+aWRfaGRyX3NpemU7Ci0JCWV2ZW50LT5tbWFwMi5waWQgPSB0Z2lkOwotCQlldmVudC0+bW1hcDIudGlkID0gcGlkOwotCi0JCWlmIChwZXJmX3Rvb2xfX3Byb2Nlc3Nfc3ludGhfZXZlbnQodG9vbCwgZXZlbnQsIG1hY2hpbmUsIHByb2Nlc3MpICE9IDApIHsKLQkJCXJjID0gLTE7Ci0JCQlicmVhazsKLQkJfQotCi0JCWlmICh0cnVuY2F0aW9uKQotCQkJYnJlYWs7Ci0JfQotCi0JZmNsb3NlKGZwKTsKLQlyZXR1cm4gcmM7Ci19Ci0KLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX21vZHVsZXMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKLXsKLQlpbnQgcmMgPSAwOwotCXN0cnVjdCBtYXAgKnBvczsKLQlzdHJ1Y3QgbWFwcyAqbWFwcyA9IG1hY2hpbmVfX2tlcm5lbF9tYXBzKG1hY2hpbmUpOwotCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50ID0gemFsbG9jKChzaXplb2YoZXZlbnQtPm1tYXApICsKLQkJCQkJICBtYWNoaW5lLT5pZF9oZHJfc2l6ZSkpOwotCWlmIChldmVudCA9PSBOVUxMKSB7Ci0JCXByX2RlYnVnKCJOb3QgZW5vdWdoIG1lbW9yeSBzeW50aGVzaXppbmcgbW1hcCBldmVudCAiCi0JCQkgImZvciBrZXJuZWwgbW9kdWxlc1xuIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0KLQlldmVudC0+aGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9NTUFQOwotCi0JLyoKLQkgKiBrZXJuZWwgdXNlcyAwIGZvciB1c2VyIHNwYWNlIG1hcHMsIHNlZSBrZXJuZWwvcGVyZl9ldmVudC5jCi0JICogX19wZXJmX2V2ZW50X21tYXAKLQkgKi8KLQlpZiAobWFjaGluZV9faXNfaG9zdChtYWNoaW5lKSkKLQkJZXZlbnQtPmhlYWRlci5taXNjID0gUEVSRl9SRUNPUkRfTUlTQ19LRVJORUw7Ci0JZWxzZQotCQlldmVudC0+aGVhZGVyLm1pc2MgPSBQRVJGX1JFQ09SRF9NSVNDX0dVRVNUX0tFUk5FTDsKLQotCWZvciAocG9zID0gbWFwc19fZmlyc3QobWFwcyk7IHBvczsgcG9zID0gbWFwX19uZXh0KHBvcykpIHsKLQkJc2l6ZV90IHNpemU7Ci0KLQkJaWYgKCFfX21hcF9faXNfa21vZHVsZShwb3MpKQotCQkJY29udGludWU7Ci0KLQkJc2l6ZSA9IFBFUkZfQUxJR04ocG9zLT5kc28tPmxvbmdfbmFtZV9sZW4gKyAxLCBzaXplb2YodTY0KSk7Ci0JCWV2ZW50LT5tbWFwLmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfTU1BUDsKLQkJZXZlbnQtPm1tYXAuaGVhZGVyLnNpemUgPSAoc2l6ZW9mKGV2ZW50LT5tbWFwKSAtCi0JCQkJICAgICAgICAoc2l6ZW9mKGV2ZW50LT5tbWFwLmZpbGVuYW1lKSAtIHNpemUpKTsKLQkJbWVtc2V0KGV2ZW50LT5tbWFwLmZpbGVuYW1lICsgc2l6ZSwgMCwgbWFjaGluZS0+aWRfaGRyX3NpemUpOwotCQlldmVudC0+bW1hcC5oZWFkZXIuc2l6ZSArPSBtYWNoaW5lLT5pZF9oZHJfc2l6ZTsKLQkJZXZlbnQtPm1tYXAuc3RhcnQgPSBwb3MtPnN0YXJ0OwotCQlldmVudC0+bW1hcC5sZW4gICA9IHBvcy0+ZW5kIC0gcG9zLT5zdGFydDsKLQkJZXZlbnQtPm1tYXAucGlkICAgPSBtYWNoaW5lLT5waWQ7Ci0KLQkJbWVtY3B5KGV2ZW50LT5tbWFwLmZpbGVuYW1lLCBwb3MtPmRzby0+bG9uZ19uYW1lLAotCQkgICAgICAgcG9zLT5kc28tPmxvbmdfbmFtZV9sZW4gKyAxKTsKLQkJaWYgKHBlcmZfdG9vbF9fcHJvY2Vzc19zeW50aF9ldmVudCh0b29sLCBldmVudCwgbWFjaGluZSwgcHJvY2VzcykgIT0gMCkgewotCQkJcmMgPSAtMTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCi0JZnJlZShldmVudCk7Ci0JcmV0dXJuIHJjOwotfQotCi1zdGF0aWMgaW50IF9fZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkKHVuaW9uIHBlcmZfZXZlbnQgKmNvbW1fZXZlbnQsCi0JCQkJICAgICAgdW5pb24gcGVyZl9ldmVudCAqbW1hcF9ldmVudCwKLQkJCQkgICAgICB1bmlvbiBwZXJmX2V2ZW50ICpmb3JrX2V2ZW50LAotCQkJCSAgICAgIHVuaW9uIHBlcmZfZXZlbnQgKm5hbWVzcGFjZXNfZXZlbnQsCi0JCQkJICAgICAgcGlkX3QgcGlkLCBpbnQgZnVsbCwKLQkJCQkgICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgICBzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLAotCQkJCSAgICAgIGJvb2wgbW1hcF9kYXRhKQotewotCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOwotCURJUiAqdGFza3M7Ci0Jc3RydWN0IGRpcmVudCAqZGlyZW50OwotCXBpZF90IHRnaWQsIHBwaWQ7Ci0JaW50IHJjID0gMDsKLQotCS8qIHNwZWNpYWwgY2FzZTogb25seSBzZW5kIG9uZSBjb21tIGV2ZW50IHVzaW5nIHBhc3NlZCBpbiBwaWQgKi8KLQlpZiAoIWZ1bGwpIHsKLQkJdGdpZCA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfY29tbSh0b29sLCBjb21tX2V2ZW50LCBwaWQsCi0JCQkJCQkgICBwcm9jZXNzLCBtYWNoaW5lKTsKLQotCQlpZiAodGdpZCA9PSAtMSkKLQkJCXJldHVybiAtMTsKLQotCQlpZiAocGVyZl9ldmVudF9fc3ludGhlc2l6ZV9uYW1lc3BhY2VzKHRvb2wsIG5hbWVzcGFjZXNfZXZlbnQsIHBpZCwKLQkJCQkJCSAgICAgIHRnaWQsIHByb2Nlc3MsIG1hY2hpbmUpIDwgMCkKLQkJCXJldHVybiAtMTsKLQotCQkvKgotCQkgKiBzZW5kIG1tYXAgb25seSBmb3IgdGhyZWFkIGdyb3VwIGxlYWRlcgotCQkgKiBzZWUgdGhyZWFkX19pbml0X21hcF9ncm91cHMKLQkJICovCi0JCWlmIChwaWQgPT0gdGdpZCAmJgotCQkgICAgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9tbWFwX2V2ZW50cyh0b29sLCBtbWFwX2V2ZW50LCBwaWQsIHRnaWQsCi0JCQkJCQkgICAgICAgcHJvY2VzcywgbWFjaGluZSwgbW1hcF9kYXRhKSkKLQkJCXJldHVybiAtMTsKLQotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAobWFjaGluZV9faXNfZGVmYXVsdF9ndWVzdChtYWNoaW5lKSkKLQkJcmV0dXJuIDA7Ci0KLQlzbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIiVzL3Byb2MvJWQvdGFzayIsCi0JCSBtYWNoaW5lLT5yb290X2RpciwgcGlkKTsKLQotCXRhc2tzID0gb3BlbmRpcihmaWxlbmFtZSk7Ci0JaWYgKHRhc2tzID09IE5VTEwpIHsKLQkJcHJfZGVidWcoImNvdWxkbid0IG9wZW4gJXNcbiIsIGZpbGVuYW1lKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0Jd2hpbGUgKChkaXJlbnQgPSByZWFkZGlyKHRhc2tzKSkgIT0gTlVMTCkgewotCQljaGFyICplbmQ7Ci0JCXBpZF90IF9waWQ7Ci0KLQkJX3BpZCA9IHN0cnRvbChkaXJlbnQtPmRfbmFtZSwgJmVuZCwgMTApOwotCQlpZiAoKmVuZCkKLQkJCWNvbnRpbnVlOwotCi0JCXJjID0gLTE7Ci0JCWlmIChwZXJmX2V2ZW50X19wcmVwYXJlX2NvbW0oY29tbV9ldmVudCwgX3BpZCwgbWFjaGluZSwKLQkJCQkJICAgICAmdGdpZCwgJnBwaWQpICE9IDApCi0JCQlicmVhazsKLQotCQlpZiAocGVyZl9ldmVudF9fc3ludGhlc2l6ZV9mb3JrKHRvb2wsIGZvcmtfZXZlbnQsIF9waWQsIHRnaWQsCi0JCQkJCQlwcGlkLCBwcm9jZXNzLCBtYWNoaW5lKSA8IDApCi0JCQlicmVhazsKLQotCQlpZiAocGVyZl9ldmVudF9fc3ludGhlc2l6ZV9uYW1lc3BhY2VzKHRvb2wsIG5hbWVzcGFjZXNfZXZlbnQsIF9waWQsCi0JCQkJCQkgICAgICB0Z2lkLCBwcm9jZXNzLCBtYWNoaW5lKSA8IDApCi0JCQlicmVhazsKLQotCQkvKgotCQkgKiBTZW5kIHRoZSBwcmVwYXJlZCBjb21tIGV2ZW50Ci0JCSAqLwotCQlpZiAocGVyZl90b29sX19wcm9jZXNzX3N5bnRoX2V2ZW50KHRvb2wsIGNvbW1fZXZlbnQsIG1hY2hpbmUsIHByb2Nlc3MpICE9IDApCi0JCQlicmVhazsKLQotCQlyYyA9IDA7Ci0JCWlmIChfcGlkID09IHBpZCkgewotCQkJLyogcHJvY2VzcyB0aGUgcGFyZW50J3MgbWFwcyB0b28gKi8KLQkJCXJjID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9tbWFwX2V2ZW50cyh0b29sLCBtbWFwX2V2ZW50LCBwaWQsIHRnaWQsCi0JCQkJCQlwcm9jZXNzLCBtYWNoaW5lLCBtbWFwX2RhdGEpOwotCQkJaWYgKHJjKQotCQkJCWJyZWFrOwotCQl9Ci0JfQotCi0JY2xvc2VkaXIodGFza3MpOwotCXJldHVybiByYzsKLX0KLQotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkX21hcChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgIHN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHMsCi0JCQkJICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICAgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsCi0JCQkJICAgICAgYm9vbCBtbWFwX2RhdGEpCi17Ci0JdW5pb24gcGVyZl9ldmVudCAqY29tbV9ldmVudCwgKm1tYXBfZXZlbnQsICpmb3JrX2V2ZW50OwotCXVuaW9uIHBlcmZfZXZlbnQgKm5hbWVzcGFjZXNfZXZlbnQ7Ci0JaW50IGVyciA9IC0xLCB0aHJlYWQsIGo7Ci0KLQljb21tX2V2ZW50ID0gbWFsbG9jKHNpemVvZihjb21tX2V2ZW50LT5jb21tKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKLQlpZiAoY29tbV9ldmVudCA9PSBOVUxMKQotCQlnb3RvIG91dDsKLQotCW1tYXBfZXZlbnQgPSBtYWxsb2Moc2l6ZW9mKG1tYXBfZXZlbnQtPm1tYXAyKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKLQlpZiAobW1hcF9ldmVudCA9PSBOVUxMKQotCQlnb3RvIG91dF9mcmVlX2NvbW07Ci0KLQlmb3JrX2V2ZW50ID0gbWFsbG9jKHNpemVvZihmb3JrX2V2ZW50LT5mb3JrKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKLQlpZiAoZm9ya19ldmVudCA9PSBOVUxMKQotCQlnb3RvIG91dF9mcmVlX21tYXA7Ci0KLQluYW1lc3BhY2VzX2V2ZW50ID0gbWFsbG9jKHNpemVvZihuYW1lc3BhY2VzX2V2ZW50LT5uYW1lc3BhY2VzKSArCi0JCQkJICAoTlJfTkFNRVNQQUNFUyAqIHNpemVvZihzdHJ1Y3QgcGVyZl9uc19saW5rX2luZm8pKSArCi0JCQkJICBtYWNoaW5lLT5pZF9oZHJfc2l6ZSk7Ci0JaWYgKG5hbWVzcGFjZXNfZXZlbnQgPT0gTlVMTCkKLQkJZ290byBvdXRfZnJlZV9mb3JrOwotCi0JZXJyID0gMDsKLQlmb3IgKHRocmVhZCA9IDA7IHRocmVhZCA8IHRocmVhZHMtPm5yOyArK3RocmVhZCkgewotCQlpZiAoX19ldmVudF9fc3ludGhlc2l6ZV90aHJlYWQoY29tbV9ldmVudCwgbW1hcF9ldmVudCwKLQkJCQkJICAgICAgIGZvcmtfZXZlbnQsIG5hbWVzcGFjZXNfZXZlbnQsCi0JCQkJCSAgICAgICBwZXJmX3RocmVhZF9tYXBfX3BpZCh0aHJlYWRzLCB0aHJlYWQpLCAwLAotCQkJCQkgICAgICAgcHJvY2VzcywgdG9vbCwgbWFjaGluZSwKLQkJCQkJICAgICAgIG1tYXBfZGF0YSkpIHsKLQkJCWVyciA9IC0xOwotCQkJYnJlYWs7Ci0JCX0KLQotCQkvKgotCQkgKiBjb21tLnBpZCBpcyBzZXQgdG8gdGhyZWFkIGdyb3VwIGlkIGJ5Ci0JCSAqIHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfY29tbQotCQkgKi8KLQkJaWYgKChpbnQpIGNvbW1fZXZlbnQtPmNvbW0ucGlkICE9IHBlcmZfdGhyZWFkX21hcF9fcGlkKHRocmVhZHMsIHRocmVhZCkpIHsKLQkJCWJvb2wgbmVlZF9sZWFkZXIgPSB0cnVlOwotCi0JCQkvKiBpcyB0aHJlYWQgZ3JvdXAgbGVhZGVyIGluIHRocmVhZF9tYXA/ICovCi0JCQlmb3IgKGogPSAwOyBqIDwgdGhyZWFkcy0+bnI7ICsraikgewotCQkJCWlmICgoaW50KSBjb21tX2V2ZW50LT5jb21tLnBpZCA9PSBwZXJmX3RocmVhZF9tYXBfX3BpZCh0aHJlYWRzLCBqKSkgewotCQkJCQluZWVkX2xlYWRlciA9IGZhbHNlOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQl9Ci0KLQkJCS8qIGlmIG5vdCwgZ2VuZXJhdGUgZXZlbnRzIGZvciBpdCAqLwotCQkJaWYgKG5lZWRfbGVhZGVyICYmCi0JCQkgICAgX19ldmVudF9fc3ludGhlc2l6ZV90aHJlYWQoY29tbV9ldmVudCwgbW1hcF9ldmVudCwKLQkJCQkJCSAgICAgICBmb3JrX2V2ZW50LCBuYW1lc3BhY2VzX2V2ZW50LAotCQkJCQkJICAgICAgIGNvbW1fZXZlbnQtPmNvbW0ucGlkLCAwLAotCQkJCQkJICAgICAgIHByb2Nlc3MsIHRvb2wsIG1hY2hpbmUsCi0JCQkJCQkgICAgICAgbW1hcF9kYXRhKSkgewotCQkJCWVyciA9IC0xOwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0JfQotCWZyZWUobmFtZXNwYWNlc19ldmVudCk7Ci1vdXRfZnJlZV9mb3JrOgotCWZyZWUoZm9ya19ldmVudCk7Ci1vdXRfZnJlZV9tbWFwOgotCWZyZWUobW1hcF9ldmVudCk7Ci1vdXRfZnJlZV9jb21tOgotCWZyZWUoY29tbV9ldmVudCk7Ci1vdXQ6Ci0JcmV0dXJuIGVycjsKLX0KLQotc3RhdGljIGludCBfX3BlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkcyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCQkgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJCSAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSwKLQkJCQkJICAgIGJvb2wgbW1hcF9kYXRhLAotCQkJCQkgICAgc3RydWN0IGRpcmVudCAqKmRpcmVudCwKLQkJCQkJICAgIGludCBzdGFydCwKLQkJCQkJICAgIGludCBudW0pCi17Ci0JdW5pb24gcGVyZl9ldmVudCAqY29tbV9ldmVudCwgKm1tYXBfZXZlbnQsICpmb3JrX2V2ZW50OwotCXVuaW9uIHBlcmZfZXZlbnQgKm5hbWVzcGFjZXNfZXZlbnQ7Ci0JaW50IGVyciA9IC0xOwotCWNoYXIgKmVuZDsKLQlwaWRfdCBwaWQ7Ci0JaW50IGk7Ci0KLQljb21tX2V2ZW50ID0gbWFsbG9jKHNpemVvZihjb21tX2V2ZW50LT5jb21tKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKLQlpZiAoY29tbV9ldmVudCA9PSBOVUxMKQotCQlnb3RvIG91dDsKLQotCW1tYXBfZXZlbnQgPSBtYWxsb2Moc2l6ZW9mKG1tYXBfZXZlbnQtPm1tYXAyKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKLQlpZiAobW1hcF9ldmVudCA9PSBOVUxMKQotCQlnb3RvIG91dF9mcmVlX2NvbW07Ci0KLQlmb3JrX2V2ZW50ID0gbWFsbG9jKHNpemVvZihmb3JrX2V2ZW50LT5mb3JrKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKLQlpZiAoZm9ya19ldmVudCA9PSBOVUxMKQotCQlnb3RvIG91dF9mcmVlX21tYXA7Ci0KLQluYW1lc3BhY2VzX2V2ZW50ID0gbWFsbG9jKHNpemVvZihuYW1lc3BhY2VzX2V2ZW50LT5uYW1lc3BhY2VzKSArCi0JCQkJICAoTlJfTkFNRVNQQUNFUyAqIHNpemVvZihzdHJ1Y3QgcGVyZl9uc19saW5rX2luZm8pKSArCi0JCQkJICBtYWNoaW5lLT5pZF9oZHJfc2l6ZSk7Ci0JaWYgKG5hbWVzcGFjZXNfZXZlbnQgPT0gTlVMTCkKLQkJZ290byBvdXRfZnJlZV9mb3JrOwotCi0JZm9yIChpID0gc3RhcnQ7IGkgPCBzdGFydCArIG51bTsgaSsrKSB7Ci0JCWlmICghaXNkaWdpdChkaXJlbnRbaV0tPmRfbmFtZVswXSkpCi0JCQljb250aW51ZTsKLQotCQlwaWQgPSAocGlkX3Qpc3RydG9sKGRpcmVudFtpXS0+ZF9uYW1lLCAmZW5kLCAxMCk7Ci0JCS8qIG9ubHkgaW50ZXJlc3RlZCBpbiBwcm9wZXIgbnVtZXJpY2FsIGRpcmVudHMgKi8KLQkJaWYgKCplbmQpCi0JCQljb250aW51ZTsKLQkJLyoKLQkJICogV2UgbWF5IHJhY2Ugd2l0aCBleGl0aW5nIHRocmVhZCwgc28gZG9uJ3Qgc3RvcCBqdXN0IGJlY2F1c2UKLQkJICogb25lIHRocmVhZCBjb3VsZG4ndCBiZSBzeW50aGVzaXplZC4KLQkJICovCi0JCV9fZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkKGNvbW1fZXZlbnQsIG1tYXBfZXZlbnQsIGZvcmtfZXZlbnQsCi0JCQkJCSAgIG5hbWVzcGFjZXNfZXZlbnQsIHBpZCwgMSwgcHJvY2VzcywKLQkJCQkJICAgdG9vbCwgbWFjaGluZSwgbW1hcF9kYXRhKTsKLQl9Ci0JZXJyID0gMDsKLQotCWZyZWUobmFtZXNwYWNlc19ldmVudCk7Ci1vdXRfZnJlZV9mb3JrOgotCWZyZWUoZm9ya19ldmVudCk7Ci1vdXRfZnJlZV9tbWFwOgotCWZyZWUobW1hcF9ldmVudCk7Ci1vdXRfZnJlZV9jb21tOgotCWZyZWUoY29tbV9ldmVudCk7Ci1vdXQ6Ci0JcmV0dXJuIGVycjsKLX0KLQotc3RydWN0IHN5bnRoZXNpemVfdGhyZWFkc19hcmcgewotCXN0cnVjdCBwZXJmX3Rvb2wgKnRvb2w7Ci0JcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3M7Ci0Jc3RydWN0IG1hY2hpbmUgKm1hY2hpbmU7Ci0JYm9vbCBtbWFwX2RhdGE7Ci0Jc3RydWN0IGRpcmVudCAqKmRpcmVudDsKLQlpbnQgbnVtOwotCWludCBzdGFydDsKLX07Ci0KLXN0YXRpYyB2b2lkICpzeW50aGVzaXplX3RocmVhZHNfd29ya2VyKHZvaWQgKmFyZykKLXsKLQlzdHJ1Y3Qgc3ludGhlc2l6ZV90aHJlYWRzX2FyZyAqYXJncyA9IGFyZzsKLQotCV9fcGVyZl9ldmVudF9fc3ludGhlc2l6ZV90aHJlYWRzKGFyZ3MtPnRvb2wsIGFyZ3MtPnByb2Nlc3MsCi0JCQkJCSBhcmdzLT5tYWNoaW5lLCBhcmdzLT5tbWFwX2RhdGEsCi0JCQkJCSBhcmdzLT5kaXJlbnQsCi0JCQkJCSBhcmdzLT5zdGFydCwgYXJncy0+bnVtKTsKLQlyZXR1cm4gTlVMTDsKLX0KLQotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkcyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCSAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLAotCQkJCSAgIGJvb2wgbW1hcF9kYXRhLAotCQkJCSAgIHVuc2lnbmVkIGludCBucl90aHJlYWRzX3N5bnRoZXNpemUpCi17Ci0Jc3RydWN0IHN5bnRoZXNpemVfdGhyZWFkc19hcmcgKmFyZ3MgPSBOVUxMOwotCXB0aHJlYWRfdCAqc3ludGhlc2l6ZV90aHJlYWRzID0gTlVMTDsKLQljaGFyIHByb2NfcGF0aFtQQVRIX01BWF07Ci0Jc3RydWN0IGRpcmVudCAqKmRpcmVudDsKLQlpbnQgbnVtX3Blcl90aHJlYWQ7Ci0JaW50IG0sIG4sIGksIGo7Ci0JaW50IHRocmVhZF9ucjsKLQlpbnQgYmFzZSA9IDA7Ci0JaW50IGVyciA9IC0xOwotCi0KLQlpZiAobWFjaGluZV9faXNfZGVmYXVsdF9ndWVzdChtYWNoaW5lKSkKLQkJcmV0dXJuIDA7Ci0KLQlzbnByaW50Zihwcm9jX3BhdGgsIHNpemVvZihwcm9jX3BhdGgpLCAiJXMvcHJvYyIsIG1hY2hpbmUtPnJvb3RfZGlyKTsKLQluID0gc2NhbmRpcihwcm9jX3BhdGgsICZkaXJlbnQsIDAsIGFscGhhc29ydCk7Ci0JaWYgKG4gPCAwKQotCQlyZXR1cm4gZXJyOwotCi0JaWYgKG5yX3RocmVhZHNfc3ludGhlc2l6ZSA9PSBVSU5UX01BWCkKLQkJdGhyZWFkX25yID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTik7Ci0JZWxzZQotCQl0aHJlYWRfbnIgPSBucl90aHJlYWRzX3N5bnRoZXNpemU7Ci0KLQlpZiAodGhyZWFkX25yIDw9IDEpIHsKLQkJZXJyID0gX19wZXJmX2V2ZW50X19zeW50aGVzaXplX3RocmVhZHModG9vbCwgcHJvY2VzcywKLQkJCQkJCSAgICAgICBtYWNoaW5lLCBtbWFwX2RhdGEsCi0JCQkJCQkgICAgICAgZGlyZW50LCBiYXNlLCBuKTsKLQkJZ290byBmcmVlX2RpcmVudDsKLQl9Ci0JaWYgKHRocmVhZF9uciA+IG4pCi0JCXRocmVhZF9uciA9IG47Ci0KLQlzeW50aGVzaXplX3RocmVhZHMgPSBjYWxsb2Moc2l6ZW9mKHB0aHJlYWRfdCksIHRocmVhZF9ucik7Ci0JaWYgKHN5bnRoZXNpemVfdGhyZWFkcyA9PSBOVUxMKQotCQlnb3RvIGZyZWVfZGlyZW50OwotCi0JYXJncyA9IGNhbGxvYyhzaXplb2YoKmFyZ3MpLCB0aHJlYWRfbnIpOwotCWlmIChhcmdzID09IE5VTEwpCi0JCWdvdG8gZnJlZV90aHJlYWRzOwotCi0JbnVtX3Blcl90aHJlYWQgPSBuIC8gdGhyZWFkX25yOwotCW0gPSBuICUgdGhyZWFkX25yOwotCWZvciAoaSA9IDA7IGkgPCB0aHJlYWRfbnI7IGkrKykgewotCQlhcmdzW2ldLnRvb2wgPSB0b29sOwotCQlhcmdzW2ldLnByb2Nlc3MgPSBwcm9jZXNzOwotCQlhcmdzW2ldLm1hY2hpbmUgPSBtYWNoaW5lOwotCQlhcmdzW2ldLm1tYXBfZGF0YSA9IG1tYXBfZGF0YTsKLQkJYXJnc1tpXS5kaXJlbnQgPSBkaXJlbnQ7Ci0JfQotCWZvciAoaSA9IDA7IGkgPCBtOyBpKyspIHsKLQkJYXJnc1tpXS5udW0gPSBudW1fcGVyX3RocmVhZCArIDE7Ci0JCWFyZ3NbaV0uc3RhcnQgPSBpICogYXJnc1tpXS5udW07Ci0JfQotCWlmIChpICE9IDApCi0JCWJhc2UgPSBhcmdzW2ktMV0uc3RhcnQgKyBhcmdzW2ktMV0ubnVtOwotCWZvciAoaiA9IGk7IGogPCB0aHJlYWRfbnI7IGorKykgewotCQlhcmdzW2pdLm51bSA9IG51bV9wZXJfdGhyZWFkOwotCQlhcmdzW2pdLnN0YXJ0ID0gYmFzZSArIChqIC0gaSkgKiBhcmdzW2ldLm51bTsKLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgdGhyZWFkX25yOyBpKyspIHsKLQkJaWYgKHB0aHJlYWRfY3JlYXRlKCZzeW50aGVzaXplX3RocmVhZHNbaV0sIE5VTEwsCi0JCQkJICAgc3ludGhlc2l6ZV90aHJlYWRzX3dvcmtlciwgJmFyZ3NbaV0pKQotCQkJZ290byBvdXRfam9pbjsKLQl9Ci0JZXJyID0gMDsKLW91dF9qb2luOgotCWZvciAoaSA9IDA7IGkgPCB0aHJlYWRfbnI7IGkrKykKLQkJcHRocmVhZF9qb2luKHN5bnRoZXNpemVfdGhyZWFkc1tpXSwgTlVMTCk7Ci0JZnJlZShhcmdzKTsKLWZyZWVfdGhyZWFkczoKLQlmcmVlKHN5bnRoZXNpemVfdGhyZWFkcyk7Ci1mcmVlX2RpcmVudDoKLQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQotCQl6ZnJlZSgmZGlyZW50W2ldKTsKLQlmcmVlKGRpcmVudCk7Ci0KLQlyZXR1cm4gZXJyOwotfQotCiBzdHJ1Y3QgcHJvY2Vzc19zeW1ib2xfYXJncyB7CiAJY29uc3QgY2hhciAqbmFtZTsKIAl1NjQJICAgc3RhcnQ7CkBAIC04OTksMzI3ICsxMTcsNiBAQCBpbnQga2FsbHN5bXNfX2dldF9mdW5jdGlvbl9zdGFydChjb25zdCBjaGFyICprYWxsc3ltc19maWxlbmFtZSwKIAlyZXR1cm4gMDsKIH0KIAotaW50IF9fd2VhayBwZXJmX2V2ZW50X19zeW50aGVzaXplX2V4dHJhX2ttYXBzKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wgX19tYXliZV91bnVzZWQsCi0JCQkJCSAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzIF9fbWF5YmVfdW51c2VkLAotCQkJCQkgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSBfX21heWJlX3VudXNlZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBfX3BlcmZfZXZlbnRfX3N5bnRoZXNpemVfa2VybmVsX21tYXAoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkJCXBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCQkJc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpCi17Ci0Jc2l6ZV90IHNpemU7Ci0Jc3RydWN0IG1hcCAqbWFwID0gbWFjaGluZV9fa2VybmVsX21hcChtYWNoaW5lKTsKLQlzdHJ1Y3Qga21hcCAqa21hcDsKLQlpbnQgZXJyOwotCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50OwotCi0JaWYgKG1hcCA9PSBOVUxMKQotCQlyZXR1cm4gLTE7Ci0KLQlrbWFwID0gbWFwX19rbWFwKG1hcCk7Ci0JaWYgKCFrbWFwLT5yZWZfcmVsb2Nfc3ltKQotCQlyZXR1cm4gLTE7Ci0KLQkvKgotCSAqIFdlIHNob3VsZCBnZXQgdGhpcyBmcm9tIC9zeXMva2VybmVsL3NlY3Rpb25zLy50ZXh0LCBidXQgdGlsbCB0aGF0IGlzCi0JICogYXZhaWxhYmxlIHVzZSB0aGlzLCBhbmQgYWZ0ZXIgaXQgaXMgdXNlIHRoaXMgYXMgYSBmYWxsYmFjayBmb3Igb2xkZXIKLQkgKiBrZXJuZWxzLgotCSAqLwotCWV2ZW50ID0gemFsbG9jKChzaXplb2YoZXZlbnQtPm1tYXApICsgbWFjaGluZS0+aWRfaGRyX3NpemUpKTsKLQlpZiAoZXZlbnQgPT0gTlVMTCkgewotCQlwcl9kZWJ1ZygiTm90IGVub3VnaCBtZW1vcnkgc3ludGhlc2l6aW5nIG1tYXAgZXZlbnQgIgotCQkJICJmb3Iga2VybmVsIG1vZHVsZXNcbiIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCi0JaWYgKG1hY2hpbmVfX2lzX2hvc3QobWFjaGluZSkpIHsKLQkJLyoKLQkJICoga2VybmVsIHVzZXMgUEVSRl9SRUNPUkRfTUlTQ19VU0VSIGZvciB1c2VyIHNwYWNlIG1hcHMsCi0JCSAqIHNlZSBrZXJuZWwvcGVyZl9ldmVudC5jIF9fcGVyZl9ldmVudF9tbWFwCi0JCSAqLwotCQlldmVudC0+aGVhZGVyLm1pc2MgPSBQRVJGX1JFQ09SRF9NSVNDX0tFUk5FTDsKLQl9IGVsc2UgewotCQlldmVudC0+aGVhZGVyLm1pc2MgPSBQRVJGX1JFQ09SRF9NSVNDX0dVRVNUX0tFUk5FTDsKLQl9Ci0KLQlzaXplID0gc25wcmludGYoZXZlbnQtPm1tYXAuZmlsZW5hbWUsIHNpemVvZihldmVudC0+bW1hcC5maWxlbmFtZSksCi0JCQkiJXMlcyIsIG1hY2hpbmUtPm1tYXBfbmFtZSwga21hcC0+cmVmX3JlbG9jX3N5bS0+bmFtZSkgKyAxOwotCXNpemUgPSBQRVJGX0FMSUdOKHNpemUsIHNpemVvZih1NjQpKTsKLQlldmVudC0+bW1hcC5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX01NQVA7Ci0JZXZlbnQtPm1tYXAuaGVhZGVyLnNpemUgPSAoc2l6ZW9mKGV2ZW50LT5tbWFwKSAtCi0JCQkoc2l6ZW9mKGV2ZW50LT5tbWFwLmZpbGVuYW1lKSAtIHNpemUpICsgbWFjaGluZS0+aWRfaGRyX3NpemUpOwotCWV2ZW50LT5tbWFwLnBnb2ZmID0ga21hcC0+cmVmX3JlbG9jX3N5bS0+YWRkcjsKLQlldmVudC0+bW1hcC5zdGFydCA9IG1hcC0+c3RhcnQ7Ci0JZXZlbnQtPm1tYXAubGVuICAgPSBtYXAtPmVuZCAtIGV2ZW50LT5tbWFwLnN0YXJ0OwotCWV2ZW50LT5tbWFwLnBpZCAgID0gbWFjaGluZS0+cGlkOwotCi0JZXJyID0gcGVyZl90b29sX19wcm9jZXNzX3N5bnRoX2V2ZW50KHRvb2wsIGV2ZW50LCBtYWNoaW5lLCBwcm9jZXNzKTsKLQlmcmVlKGV2ZW50KTsKLQotCXJldHVybiBlcnI7Ci19Ci0KLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2tlcm5lbF9tbWFwKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCSAgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKLXsKLQlpbnQgZXJyOwotCi0JZXJyID0gX19wZXJmX2V2ZW50X19zeW50aGVzaXplX2tlcm5lbF9tbWFwKHRvb2wsIHByb2Nlc3MsIG1hY2hpbmUpOwotCWlmIChlcnIgPCAwKQotCQlyZXR1cm4gZXJyOwotCi0JcmV0dXJuIHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXh0cmFfa21hcHModG9vbCwgcHJvY2VzcywgbWFjaGluZSk7Ci19Ci0KLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX3RocmVhZF9tYXAyKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgICAgc3RydWN0IHBlcmZfdGhyZWFkX21hcCAqdGhyZWFkcywKLQkJCQkgICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKLXsKLQl1bmlvbiBwZXJmX2V2ZW50ICpldmVudDsKLQlpbnQgaSwgZXJyLCBzaXplOwotCi0Jc2l6ZSAgPSBzaXplb2YoZXZlbnQtPnRocmVhZF9tYXApOwotCXNpemUgKz0JdGhyZWFkcy0+bnIgKiBzaXplb2YoZXZlbnQtPnRocmVhZF9tYXAuZW50cmllc1swXSk7Ci0KLQlldmVudCA9IHphbGxvYyhzaXplKTsKLQlpZiAoIWV2ZW50KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWV2ZW50LT5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX1RIUkVBRF9NQVA7Ci0JZXZlbnQtPmhlYWRlci5zaXplID0gc2l6ZTsKLQlldmVudC0+dGhyZWFkX21hcC5uciA9IHRocmVhZHMtPm5yOwotCi0JZm9yIChpID0gMDsgaSA8IHRocmVhZHMtPm5yOyBpKyspIHsKLQkJc3RydWN0IHBlcmZfcmVjb3JkX3RocmVhZF9tYXBfZW50cnkgKmVudHJ5ID0gJmV2ZW50LT50aHJlYWRfbWFwLmVudHJpZXNbaV07Ci0JCWNoYXIgKmNvbW0gPSBwZXJmX3RocmVhZF9tYXBfX2NvbW0odGhyZWFkcywgaSk7Ci0KLQkJaWYgKCFjb21tKQotCQkJY29tbSA9IChjaGFyICopICIiOwotCi0JCWVudHJ5LT5waWQgPSBwZXJmX3RocmVhZF9tYXBfX3BpZCh0aHJlYWRzLCBpKTsKLQkJc3RybmNweSgoY2hhciAqKSAmZW50cnktPmNvbW0sIGNvbW0sIHNpemVvZihlbnRyeS0+Y29tbSkpOwotCX0KLQotCWVyciA9IHByb2Nlc3ModG9vbCwgZXZlbnQsIE5VTEwsIG1hY2hpbmUpOwotCi0JZnJlZShldmVudCk7Ci0JcmV0dXJuIGVycjsKLX0KLQotc3RhdGljIHZvaWQgc3ludGhlc2l6ZV9jcHVzKHN0cnVjdCBjcHVfbWFwX2VudHJpZXMgKmNwdXMsCi0JCQkgICAgc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwKQotewotCWludCBpOwotCi0JY3B1cy0+bnIgPSBtYXAtPm5yOwotCi0JZm9yIChpID0gMDsgaSA8IG1hcC0+bnI7IGkrKykKLQkJY3B1cy0+Y3B1W2ldID0gbWFwLT5tYXBbaV07Ci19Ci0KLXN0YXRpYyB2b2lkIHN5bnRoZXNpemVfbWFzayhzdHJ1Y3QgcGVyZl9yZWNvcmRfcmVjb3JkX2NwdV9tYXAgKm1hc2ssCi0JCQkgICAgc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwLCBpbnQgbWF4KQotewotCWludCBpOwotCi0JbWFzay0+bnIgPSBCSVRTX1RPX0xPTkdTKG1heCk7Ci0JbWFzay0+bG9uZ19zaXplID0gc2l6ZW9mKGxvbmcpOwotCi0JZm9yIChpID0gMDsgaSA8IG1hcC0+bnI7IGkrKykKLQkJc2V0X2JpdChtYXAtPm1hcFtpXSwgbWFzay0+bWFzayk7Ci19Ci0KLXN0YXRpYyBzaXplX3QgY3B1c19zaXplKHN0cnVjdCBwZXJmX2NwdV9tYXAgKm1hcCkKLXsKLQlyZXR1cm4gc2l6ZW9mKHN0cnVjdCBjcHVfbWFwX2VudHJpZXMpICsgbWFwLT5uciAqIHNpemVvZih1MTYpOwotfQotCi1zdGF0aWMgc2l6ZV90IG1hc2tfc2l6ZShzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXAsIGludCAqbWF4KQotewotCWludCBpOwotCi0JKm1heCA9IDA7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbWFwLT5ucjsgaSsrKSB7Ci0JCS8qIGJpdCBwb3NzaXRpb24gb2YgdGhlIGNwdSBpcyArIDEgKi8KLQkJaW50IGJpdCA9IG1hcC0+bWFwW2ldICsgMTsKLQotCQlpZiAoYml0ID4gKm1heCkKLQkJCSptYXggPSBiaXQ7Ci0JfQotCi0JcmV0dXJuIHNpemVvZihzdHJ1Y3QgcGVyZl9yZWNvcmRfcmVjb3JkX2NwdV9tYXApICsgQklUU19UT19MT05HUygqbWF4KSAqIHNpemVvZihsb25nKTsKLX0KLQotdm9pZCAqY3B1X21hcF9kYXRhX19hbGxvYyhzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXAsIHNpemVfdCAqc2l6ZSwgdTE2ICp0eXBlLCBpbnQgKm1heCkKLXsKLQlzaXplX3Qgc2l6ZV9jcHVzLCBzaXplX21hc2s7Ci0JYm9vbCBpc19kdW1teSA9IHBlcmZfY3B1X21hcF9fZW1wdHkobWFwKTsKLQotCS8qCi0JICogQm90aCBhcnJheSBhbmQgbWFzayBkYXRhIGhhdmUgdmFyaWFibGUgc2l6ZSBiYXNlZAotCSAqIG9uIHRoZSBudW1iZXIgb2YgY3B1cyBhbmQgdGhlaXIgYWN0dWFsIHZhbHVlcy4KLQkgKiBUaGUgc2l6ZSBvZiB0aGUgJ3N0cnVjdCBwZXJmX3JlY29yZF9jcHVfbWFwX2RhdGEnIGlzOgotCSAqCi0JICogICBhcnJheSA9IHNpemUgb2YgJ3N0cnVjdCBjcHVfbWFwX2VudHJpZXMnICsKLQkgKiAgICAgICAgICAgbnVtYmVyIG9mIGNwdXMgKiBzaXplb2YodTY0KQotCSAqCi0JICogICBtYXNrICA9IHNpemUgb2YgJ3N0cnVjdCBwZXJmX3JlY29yZF9yZWNvcmRfY3B1X21hcCcgKwotCSAqICAgICAgICAgICBtYXhpbXVtIGNwdSBiaXQgY29udmVydGVkIHRvIHNpemUgb2YgbG9uZ3MKLQkgKgotCSAqIGFuZCBmaW5hbHkgKyB0aGUgc2l6ZSBvZiAnc3RydWN0IHBlcmZfcmVjb3JkX2NwdV9tYXBfZGF0YScuCi0JICovCi0Jc2l6ZV9jcHVzID0gY3B1c19zaXplKG1hcCk7Ci0Jc2l6ZV9tYXNrID0gbWFza19zaXplKG1hcCwgbWF4KTsKLQotCWlmIChpc19kdW1teSB8fCAoc2l6ZV9jcHVzIDwgc2l6ZV9tYXNrKSkgewotCQkqc2l6ZSArPSBzaXplX2NwdXM7Ci0JCSp0eXBlICA9IFBFUkZfQ1BVX01BUF9fQ1BVUzsKLQl9IGVsc2UgewotCQkqc2l6ZSArPSBzaXplX21hc2s7Ci0JCSp0eXBlICA9IFBFUkZfQ1BVX01BUF9fTUFTSzsKLQl9Ci0KLQkqc2l6ZSArPSBzaXplb2Yoc3RydWN0IHBlcmZfcmVjb3JkX2NwdV9tYXBfZGF0YSk7Ci0JKnNpemUgPSBQRVJGX0FMSUdOKCpzaXplLCBzaXplb2YodTY0KSk7Ci0JcmV0dXJuIHphbGxvYygqc2l6ZSk7Ci19Ci0KLXZvaWQgY3B1X21hcF9kYXRhX19zeW50aGVzaXplKHN0cnVjdCBwZXJmX3JlY29yZF9jcHVfbWFwX2RhdGEgKmRhdGEsIHN0cnVjdCBwZXJmX2NwdV9tYXAgKm1hcCwKLQkJCSAgICAgIHUxNiB0eXBlLCBpbnQgbWF4KQotewotCWRhdGEtPnR5cGUgPSB0eXBlOwotCi0Jc3dpdGNoICh0eXBlKSB7Ci0JY2FzZSBQRVJGX0NQVV9NQVBfX0NQVVM6Ci0JCXN5bnRoZXNpemVfY3B1cygoc3RydWN0IGNwdV9tYXBfZW50cmllcyAqKSBkYXRhLT5kYXRhLCBtYXApOwotCQlicmVhazsKLQljYXNlIFBFUkZfQ1BVX01BUF9fTUFTSzoKLQkJc3ludGhlc2l6ZV9tYXNrKChzdHJ1Y3QgcGVyZl9yZWNvcmRfcmVjb3JkX2NwdV9tYXAgKilkYXRhLT5kYXRhLCBtYXAsIG1heCk7Ci0JZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfTsKLX0KLQotc3RhdGljIHN0cnVjdCBwZXJmX3JlY29yZF9jcHVfbWFwICpjcHVfbWFwX2V2ZW50X19uZXcoc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwKQotewotCXNpemVfdCBzaXplID0gc2l6ZW9mKHN0cnVjdCBwZXJmX3JlY29yZF9jcHVfbWFwKTsKLQlzdHJ1Y3QgcGVyZl9yZWNvcmRfY3B1X21hcCAqZXZlbnQ7Ci0JaW50IG1heDsKLQl1MTYgdHlwZTsKLQotCWV2ZW50ID0gY3B1X21hcF9kYXRhX19hbGxvYyhtYXAsICZzaXplLCAmdHlwZSwgJm1heCk7Ci0JaWYgKCFldmVudCkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlldmVudC0+aGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9DUFVfTUFQOwotCWV2ZW50LT5oZWFkZXIuc2l6ZSA9IHNpemU7Ci0JZXZlbnQtPmRhdGEudHlwZSAgID0gdHlwZTsKLQotCWNwdV9tYXBfZGF0YV9fc3ludGhlc2l6ZSgmZXZlbnQtPmRhdGEsIG1hcCwgdHlwZSwgbWF4KTsKLQlyZXR1cm4gZXZlbnQ7Ci19Ci0KLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2NwdV9tYXAoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkgICBzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXAsCi0JCQkJICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpCi17Ci0Jc3RydWN0IHBlcmZfcmVjb3JkX2NwdV9tYXAgKmV2ZW50OwotCWludCBlcnI7Ci0KLQlldmVudCA9IGNwdV9tYXBfZXZlbnRfX25ldyhtYXApOwotCWlmICghZXZlbnQpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZXJyID0gcHJvY2Vzcyh0b29sLCAodW5pb24gcGVyZl9ldmVudCAqKSBldmVudCwgTlVMTCwgbWFjaGluZSk7Ci0KLQlmcmVlKGV2ZW50KTsKLQlyZXR1cm4gZXJyOwotfQotCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9zdGF0X2NvbmZpZyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgICBzdHJ1Y3QgcGVyZl9zdGF0X2NvbmZpZyAqY29uZmlnLAotCQkJCSAgICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpCi17Ci0Jc3RydWN0IHBlcmZfcmVjb3JkX3N0YXRfY29uZmlnICpldmVudDsKLQlpbnQgc2l6ZSwgaSA9IDAsIGVycjsKLQotCXNpemUgID0gc2l6ZW9mKCpldmVudCk7Ci0Jc2l6ZSArPSAoUEVSRl9TVEFUX0NPTkZJR19URVJNX19NQVggKiBzaXplb2YoZXZlbnQtPmRhdGFbMF0pKTsKLQotCWV2ZW50ID0gemFsbG9jKHNpemUpOwotCWlmICghZXZlbnQpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZXZlbnQtPmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfU1RBVF9DT05GSUc7Ci0JZXZlbnQtPmhlYWRlci5zaXplID0gc2l6ZTsKLQlldmVudC0+bnIgICAgICAgICAgPSBQRVJGX1NUQVRfQ09ORklHX1RFUk1fX01BWDsKLQotI2RlZmluZSBBREQoX190ZXJtLCBfX3ZhbCkJCQkJCVwKLQlldmVudC0+ZGF0YVtpXS50YWcgPSBQRVJGX1NUQVRfQ09ORklHX1RFUk1fXyMjX190ZXJtOwlcCi0JZXZlbnQtPmRhdGFbaV0udmFsID0gX192YWw7CQkJCVwKLQlpKys7Ci0KLQlBREQoQUdHUl9NT0RFLAljb25maWctPmFnZ3JfbW9kZSkKLQlBREQoSU5URVJWQUwsCWNvbmZpZy0+aW50ZXJ2YWwpCi0JQUREKFNDQUxFLAljb25maWctPnNjYWxlKQotCi0JV0FSTl9PTkNFKGkgIT0gUEVSRl9TVEFUX0NPTkZJR19URVJNX19NQVgsCi0JCSAgInN0YXQgY29uZmlnIHRlcm1zIHVuYmFsYW5jZWRcbiIpOwotI3VuZGVmIEFERAotCi0JZXJyID0gcHJvY2Vzcyh0b29sLCAodW5pb24gcGVyZl9ldmVudCAqKSBldmVudCwgTlVMTCwgbWFjaGluZSk7Ci0KLQlmcmVlKGV2ZW50KTsKLQlyZXR1cm4gZXJyOwotfQotCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9zdGF0KHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJdTMyIGNwdSwgdTMyIHRocmVhZCwgdTY0IGlkLAotCQkJCXN0cnVjdCBwZXJmX2NvdW50c192YWx1ZXMgKmNvdW50LAotCQkJCXBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCXN0cnVjdCBtYWNoaW5lICptYWNoaW5lKQotewotCXN0cnVjdCBwZXJmX3JlY29yZF9zdGF0IGV2ZW50OwotCi0JZXZlbnQuaGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9TVEFUOwotCWV2ZW50LmhlYWRlci5zaXplID0gc2l6ZW9mKGV2ZW50KTsKLQlldmVudC5oZWFkZXIubWlzYyA9IDA7Ci0KLQlldmVudC5pZCAgICAgICAgPSBpZDsKLQlldmVudC5jcHUgICAgICAgPSBjcHU7Ci0JZXZlbnQudGhyZWFkICAgID0gdGhyZWFkOwotCWV2ZW50LnZhbCAgICAgICA9IGNvdW50LT52YWw7Ci0JZXZlbnQuZW5hICAgICAgID0gY291bnQtPmVuYTsKLQlldmVudC5ydW4gICAgICAgPSBjb3VudC0+cnVuOwotCi0JcmV0dXJuIHByb2Nlc3ModG9vbCwgKHVuaW9uIHBlcmZfZXZlbnQgKikgJmV2ZW50LCBOVUxMLCBtYWNoaW5lKTsKLX0KLQotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfc3RhdF9yb3VuZChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgIHU2NCBldnRpbWUsIHU2NCB0eXBlLAotCQkJCSAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCSAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKQotewotCXN0cnVjdCBwZXJmX3JlY29yZF9zdGF0X3JvdW5kIGV2ZW50OwotCi0JZXZlbnQuaGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9TVEFUX1JPVU5EOwotCWV2ZW50LmhlYWRlci5zaXplID0gc2l6ZW9mKGV2ZW50KTsKLQlldmVudC5oZWFkZXIubWlzYyA9IDA7Ci0KLQlldmVudC50aW1lID0gZXZ0aW1lOwotCWV2ZW50LnR5cGUgPSB0eXBlOwotCi0JcmV0dXJuIHByb2Nlc3ModG9vbCwgKHVuaW9uIHBlcmZfZXZlbnQgKikgJmV2ZW50LCBOVUxMLCBtYWNoaW5lKTsKLX0KLQogdm9pZCBwZXJmX2V2ZW50X19yZWFkX3N0YXRfY29uZmlnKHN0cnVjdCBwZXJmX3N0YXRfY29uZmlnICpjb25maWcsCiAJCQkJICBzdHJ1Y3QgcGVyZl9yZWNvcmRfc3RhdF9jb25maWcgKmV2ZW50KQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2V2ZW50LmggYi90b29scy9wZXJmL3V0aWwvZXZlbnQuaAppbmRleCA0N2FkODFkLi5hMGEwYzkxIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvZXZlbnQuaAorKysgYi90b29scy9wZXJmL3V0aWwvZXZlbnQuaApAQCAtMjc5LDU0ICsyNzksMTMgQEAgZW51bSB7CiAKIHZvaWQgcGVyZl9ldmVudF9fcHJpbnRfdG90YWxzKHZvaWQpOwogCi1zdHJ1Y3QgcGVyZl90b29sOwotc3RydWN0IHBlcmZfdGhyZWFkX21hcDsKIHN0cnVjdCBwZXJmX2NwdV9tYXA7CitzdHJ1Y3QgcGVyZl9yZWNvcmRfc3RhdF9jb25maWc7CiBzdHJ1Y3QgcGVyZl9zdGF0X2NvbmZpZzsKLXN0cnVjdCBwZXJmX2NvdW50c192YWx1ZXM7CitzdHJ1Y3QgcGVyZl90b29sOwogCi10eXBlZGVmIGludCAoKnBlcmZfZXZlbnRfX2hhbmRsZXJfdCkoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkgICAgIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LAotCQkJCSAgICAgc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsCi0JCQkJICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7Ci0KLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX3RocmVhZF9tYXAoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkgICAgICBzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzLAotCQkJCSAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCSAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLCBib29sIG1tYXBfZGF0YSk7Ci1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV90aHJlYWRfbWFwMihzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgIHN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHMsCi0JCQkJICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICAgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOwotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfY3B1X21hcChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgIHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsCi0JCQkJICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOwotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkcyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCSAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLCBib29sIG1tYXBfZGF0YSwKLQkJCQkgICB1bnNpZ25lZCBpbnQgbnJfdGhyZWFkc19zeW50aGVzaXplKTsKLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2tlcm5lbF9tbWFwKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAotCQkJCSAgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7Ci1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9zdGF0X2NvbmZpZyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgICBzdHJ1Y3QgcGVyZl9zdGF0X2NvbmZpZyAqY29uZmlnLAotCQkJCSAgICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOwogdm9pZCBwZXJmX2V2ZW50X19yZWFkX3N0YXRfY29uZmlnKHN0cnVjdCBwZXJmX3N0YXRfY29uZmlnICpjb25maWcsCiAJCQkJICBzdHJ1Y3QgcGVyZl9yZWNvcmRfc3RhdF9jb25maWcgKmV2ZW50KTsKLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX3N0YXQoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQl1MzIgY3B1LCB1MzIgdGhyZWFkLCB1NjQgaWQsCi0JCQkJc3RydWN0IHBlcmZfY291bnRzX3ZhbHVlcyAqY291bnQsCi0JCQkJcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOwotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfc3RhdF9yb3VuZChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgIHU2NCB0aW1lLCB1NjQgdHlwZSwKLQkJCQkgICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7Ci1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9tb2R1bGVzKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOwogCiBpbnQgcGVyZl9ldmVudF9fcHJvY2Vzc19jb21tKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCiAJCQkgICAgIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LApAQCAtMzgwLDEwICszMzksNiBAQCBpbnQgcGVyZl9ldmVudF9fcHJvY2Vzc19icGYoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKIAkJCSAgICB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwKIAkJCSAgICBzdHJ1Y3QgcGVyZl9zYW1wbGUgKnNhbXBsZSwKIAkJCSAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7Ci1pbnQgcGVyZl90b29sX19wcm9jZXNzX3N5bnRoX2V2ZW50KHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQsCi0JCQkJICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsCi0JCQkJICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpOwogaW50IHBlcmZfZXZlbnRfX3Byb2Nlc3Moc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKIAkJCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LAogCQkJc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsCkBAIC00MDUsMzQgKzM2MCw2IEBAIHZvaWQgdGhyZWFkX19yZXNvbHZlKHN0cnVjdCB0aHJlYWQgKnRocmVhZCwgc3RydWN0IGFkZHJfbG9jYXRpb24gKmFsLAogCiBjb25zdCBjaGFyICpwZXJmX2V2ZW50X19uYW1lKHVuc2lnbmVkIGludCBpZCk7CiAKLXNpemVfdCBwZXJmX2V2ZW50X19zYW1wbGVfZXZlbnRfc2l6ZShjb25zdCBzdHJ1Y3QgcGVyZl9zYW1wbGUgKnNhbXBsZSwgdTY0IHR5cGUsCi0JCQkJICAgICB1NjQgcmVhZF9mb3JtYXQpOwotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfc2FtcGxlKHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LCB1NjQgdHlwZSwKLQkJCQkgIHU2NCByZWFkX2Zvcm1hdCwKLQkJCQkgIGNvbnN0IHN0cnVjdCBwZXJmX3NhbXBsZSAqc2FtcGxlKTsKLQotcGlkX3QgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9jb21tKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgcGlkX3QgcGlkLAotCQkJCSAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7Ci0KLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX25hbWVzcGFjZXMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkgICAgICB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwKLQkJCQkgICAgICBwaWRfdCBwaWQsIHBpZF90IHRnaWQsCi0JCQkJICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICAgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOwotCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9tbWFwX2V2ZW50cyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgICB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwKLQkJCQkgICAgICAgcGlkX3QgcGlkLCBwaWRfdCB0Z2lkLAotCQkJCSAgICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsCi0JCQkJICAgICAgIGJvb2wgbW1hcF9kYXRhKTsKLQotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXh0cmFfa21hcHMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkgICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKTsKLQogc2l6ZV90IHBlcmZfZXZlbnRfX2ZwcmludGZfY29tbSh1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgRklMRSAqZnApOwogc2l6ZV90IHBlcmZfZXZlbnRfX2ZwcmludGZfbW1hcCh1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgRklMRSAqZnApOwogc2l6ZV90IHBlcmZfZXZlbnRfX2ZwcmludGZfbW1hcDIodW5pb24gcGVyZl9ldmVudCAqZXZlbnQsIEZJTEUgKmZwKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9ldmxpc3QuYyBiL3Rvb2xzL3BlcmYvdXRpbC9ldmxpc3QuYwppbmRleCAwOTU5MjRhLi5kMjc3YTk4IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvZXZsaXN0LmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2V2bGlzdC5jCkBAIC0xMCwxMyArMTAsMTQgQEAKICNpbmNsdWRlIDxpbnR0eXBlcy5oPgogI2luY2x1ZGUgPHBvbGwuaD4KICNpbmNsdWRlICJjcHVtYXAuaCIKKyNpbmNsdWRlICJ1dGlsL21tYXAuaCIKICNpbmNsdWRlICJ0aHJlYWRfbWFwLmgiCiAjaW5jbHVkZSAidGFyZ2V0LmgiCiAjaW5jbHVkZSAiZXZsaXN0LmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKICNpbmNsdWRlICJkZWJ1Zy5oIgogI2luY2x1ZGUgInVuaXRzLmgiCi0jaW5jbHVkZSAidXRpbC5oIgorI2luY2x1ZGUgPGludGVybmFsL2xpYi5oPiAvLyBwYWdlX3NpemUKICNpbmNsdWRlICIuLi9wZXJmLmgiCiAjaW5jbHVkZSAiYXNtL2J1Zy5oIgogI2luY2x1ZGUgImJwZi1ldmVudC5oIgpAQCAtNDksMTggKzUwLDE0IEBAIGludCBzaWdxdWV1ZShwaWRfdCBwaWQsIGludCBzaWcsIGNvbnN0IHVuaW9uIHNpZ3ZhbCB2YWx1ZSk7CiAjZW5kaWYKIAogI2RlZmluZSBGRChlLCB4LCB5KSAoKihpbnQgKil4eWFycmF5X19lbnRyeShlLT5jb3JlLmZkLCB4LCB5KSkKLSNkZWZpbmUgU0lEKGUsIHgsIHkpIHh5YXJyYXlfX2VudHJ5KGUtPnNhbXBsZV9pZCwgeCwgeSkKKyNkZWZpbmUgU0lEKGUsIHgsIHkpIHh5YXJyYXlfX2VudHJ5KGUtPmNvcmUuc2FtcGxlX2lkLCB4LCB5KQogCiB2b2lkIGV2bGlzdF9faW5pdChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsCiAJCSAgc3RydWN0IHBlcmZfdGhyZWFkX21hcCAqdGhyZWFkcykKIHsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBQRVJGX0VWTElTVF9fSExJU1RfU0laRTsgKytpKQotCQlJTklUX0hMSVNUX0hFQUQoJmV2bGlzdC0+aGVhZHNbaV0pOwogCXBlcmZfZXZsaXN0X19pbml0KCZldmxpc3QtPmNvcmUpOwogCXBlcmZfZXZsaXN0X19zZXRfbWFwcygmZXZsaXN0LT5jb3JlLCBjcHVzLCB0aHJlYWRzKTsKLQlmZGFycmF5X19pbml0KCZldmxpc3QtPnBvbGxmZCwgNjQpOworCWZkYXJyYXlfX2luaXQoJmV2bGlzdC0+Y29yZS5wb2xsZmQsIDY0KTsKIAlldmxpc3QtPndvcmtsb2FkLnBpZCA9IC0xOwogCWV2bGlzdC0+Ymt3X21tYXBfc3RhdGUgPSBCS1dfTU1BUF9OT1RSRUFEWTsKIH0KQEAgLTEwOCw3ICsxMDUsNyBAQCBzdHJ1Y3QgZXZsaXN0ICpwZXJmX2V2bGlzdF9fbmV3X2R1bW15KHZvaWQpCiAgKi8KIHZvaWQgcGVyZl9ldmxpc3RfX3NldF9pZF9wb3Moc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZmlyc3QgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlzdHJ1Y3QgZXZzZWwgKmZpcnN0ID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJZXZsaXN0LT5pZF9wb3MgPSBmaXJzdC0+aWRfcG9zOwogCWV2bGlzdC0+aXNfcG9zID0gZmlyc3QtPmlzX3BvczsKQEAgLTEyNCw3ICsxMjEsNyBAQCBzdGF0aWMgdm9pZCBwZXJmX2V2bGlzdF9fdXBkYXRlX2lkX3BvcyhzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAJcGVyZl9ldmxpc3RfX3NldF9pZF9wb3MoZXZsaXN0KTsKIH0KIAotc3RhdGljIHZvaWQgcGVyZl9ldmxpc3RfX3B1cmdlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKK3N0YXRpYyB2b2lkIGV2bGlzdF9fcHVyZ2Uoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewogCXN0cnVjdCBldnNlbCAqcG9zLCAqbjsKIApAQCAtMTM3LDExICsxMzQsMTEgQEAgc3RhdGljIHZvaWQgcGVyZl9ldmxpc3RfX3B1cmdlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAlldmxpc3QtPmNvcmUubnJfZW50cmllcyA9IDA7CiB9CiAKLXZvaWQgcGVyZl9ldmxpc3RfX2V4aXQoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQordm9pZCBldmxpc3RfX2V4aXQoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewogCXpmcmVlKCZldmxpc3QtPm1tYXApOwogCXpmcmVlKCZldmxpc3QtPm92ZXJ3cml0ZV9tbWFwKTsKLQlmZGFycmF5X19leGl0KCZldmxpc3QtPnBvbGxmZCk7CisJZmRhcnJheV9fZXhpdCgmZXZsaXN0LT5jb3JlLnBvbGxmZCk7CiB9CiAKIHZvaWQgZXZsaXN0X19kZWxldGUoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQpAQCAtMTQ5LDE0ICsxNDYsMTQgQEAgdm9pZCBldmxpc3RfX2RlbGV0ZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAJaWYgKGV2bGlzdCA9PSBOVUxMKQogCQlyZXR1cm47CiAKLQlwZXJmX2V2bGlzdF9fbXVubWFwKGV2bGlzdCk7CisJZXZsaXN0X19tdW5tYXAoZXZsaXN0KTsKIAlldmxpc3RfX2Nsb3NlKGV2bGlzdCk7CiAJcGVyZl9jcHVfbWFwX19wdXQoZXZsaXN0LT5jb3JlLmNwdXMpOwogCXBlcmZfdGhyZWFkX21hcF9fcHV0KGV2bGlzdC0+Y29yZS50aHJlYWRzKTsKIAlldmxpc3QtPmNvcmUuY3B1cyA9IE5VTEw7CiAJZXZsaXN0LT5jb3JlLnRocmVhZHMgPSBOVUxMOwotCXBlcmZfZXZsaXN0X19wdXJnZShldmxpc3QpOwotCXBlcmZfZXZsaXN0X19leGl0KGV2bGlzdCk7CisJZXZsaXN0X19wdXJnZShldmxpc3QpOworCWV2bGlzdF9fZXhpdChldmxpc3QpOwogCWZyZWUoZXZsaXN0KTsKIH0KIApAQCAtMzE4LDcgKzMxNSw3IEBAIGludCBwZXJmX2V2bGlzdF9fYWRkX25ld3RwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKIHN0YXRpYyBpbnQgcGVyZl9ldmxpc3RfX25yX3RocmVhZHMoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkJCSAgIHN0cnVjdCBldnNlbCAqZXZzZWwpCiB7Ci0JaWYgKGV2c2VsLT5zeXN0ZW1fd2lkZSkKKwlpZiAoZXZzZWwtPmNvcmUuc3lzdGVtX3dpZGUpCiAJCXJldHVybiAxOwogCWVsc2UKIAkJcmV0dXJuIHBlcmZfdGhyZWFkX21hcF9fbnIoZXZsaXN0LT5jb3JlLnRocmVhZHMpOwpAQCAtNDAxLDEyOCArMzk4LDI5IEBAIGludCBwZXJmX2V2bGlzdF9fZW5hYmxlX2V2ZW50X2lkeChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCiAJCXJldHVybiBwZXJmX2V2bGlzdF9fZW5hYmxlX2V2ZW50X3RocmVhZChldmxpc3QsIGV2c2VsLCBpZHgpOwogfQogCi1pbnQgcGVyZl9ldmxpc3RfX2FsbG9jX3BvbGxmZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCitpbnQgZXZsaXN0X19hZGRfcG9sbGZkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgaW50IGZkKQogewotCWludCBucl9jcHVzID0gcGVyZl9jcHVfbWFwX19ucihldmxpc3QtPmNvcmUuY3B1cyk7Ci0JaW50IG5yX3RocmVhZHMgPSBwZXJmX3RocmVhZF9tYXBfX25yKGV2bGlzdC0+Y29yZS50aHJlYWRzKTsKLQlpbnQgbmZkcyA9IDA7Ci0Jc3RydWN0IGV2c2VsICpldnNlbDsKLQotCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZsaXN0LCBldnNlbCkgewotCQlpZiAoZXZzZWwtPnN5c3RlbV93aWRlKQotCQkJbmZkcyArPSBucl9jcHVzOwotCQllbHNlCi0JCQluZmRzICs9IG5yX2NwdXMgKiBucl90aHJlYWRzOwotCX0KLQotCWlmIChmZGFycmF5X19hdmFpbGFibGVfZW50cmllcygmZXZsaXN0LT5wb2xsZmQpIDwgbmZkcyAmJgotCSAgICBmZGFycmF5X19ncm93KCZldmxpc3QtPnBvbGxmZCwgbmZkcykgPCAwKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IF9fcGVyZl9ldmxpc3RfX2FkZF9wb2xsZmQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBpbnQgZmQsCi0JCQkJICAgICBzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHNob3J0IHJldmVudCkKLXsKLQlpbnQgcG9zID0gZmRhcnJheV9fYWRkKCZldmxpc3QtPnBvbGxmZCwgZmQsIHJldmVudCB8IFBPTExFUlIgfCBQT0xMSFVQKTsKLQkvKgotCSAqIFNhdmUgdGhlIGlkeCBzbyB0aGF0IHdoZW4gd2UgZmlsdGVyIG91dCBmZHMgUE9MTEhVUCdlZCB3ZSBjYW4KLQkgKiBjbG9zZSB0aGUgYXNzb2NpYXRlZCBldmxpc3QtPm1tYXBbXSBlbnRyeS4KLQkgKi8KLQlpZiAocG9zID49IDApIHsKLQkJZXZsaXN0LT5wb2xsZmQucHJpdltwb3NdLnB0ciA9IG1hcDsKLQotCQlmY250bChmZCwgRl9TRVRGTCwgT19OT05CTE9DSyk7Ci0JfQotCi0JcmV0dXJuIHBvczsKLX0KLQotaW50IHBlcmZfZXZsaXN0X19hZGRfcG9sbGZkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgaW50IGZkKQotewotCXJldHVybiBfX3BlcmZfZXZsaXN0X19hZGRfcG9sbGZkKGV2bGlzdCwgZmQsIE5VTEwsIFBPTExJTik7CisJcmV0dXJuIHBlcmZfZXZsaXN0X19hZGRfcG9sbGZkKCZldmxpc3QtPmNvcmUsIGZkLCBOVUxMLCBQT0xMSU4pOwogfQogCiBzdGF0aWMgdm9pZCBwZXJmX2V2bGlzdF9fbXVubWFwX2ZpbHRlcmVkKHN0cnVjdCBmZGFycmF5ICpmZGEsIGludCBmZCwKIAkJCQkJIHZvaWQgKmFyZyBfX21heWJlX3VudXNlZCkKIHsKLQlzdHJ1Y3QgcGVyZl9tbWFwICptYXAgPSBmZGEtPnByaXZbZmRdLnB0cjsKKwlzdHJ1Y3QgbW1hcCAqbWFwID0gZmRhLT5wcml2W2ZkXS5wdHI7CiAKIAlpZiAobWFwKQogCQlwZXJmX21tYXBfX3B1dChtYXApOwogfQogCi1pbnQgcGVyZl9ldmxpc3RfX2ZpbHRlcl9wb2xsZmQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBzaG9ydCByZXZlbnRzX2FuZF9tYXNrKQoraW50IGV2bGlzdF9fZmlsdGVyX3BvbGxmZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHNob3J0IHJldmVudHNfYW5kX21hc2spCiB7Ci0JcmV0dXJuIGZkYXJyYXlfX2ZpbHRlcigmZXZsaXN0LT5wb2xsZmQsIHJldmVudHNfYW5kX21hc2ssCisJcmV0dXJuIGZkYXJyYXlfX2ZpbHRlcigmZXZsaXN0LT5jb3JlLnBvbGxmZCwgcmV2ZW50c19hbmRfbWFzaywKIAkJCSAgICAgICBwZXJmX2V2bGlzdF9fbXVubWFwX2ZpbHRlcmVkLCBOVUxMKTsKIH0KIAotaW50IHBlcmZfZXZsaXN0X19wb2xsKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgaW50IHRpbWVvdXQpCitpbnQgZXZsaXN0X19wb2xsKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgaW50IHRpbWVvdXQpCiB7Ci0JcmV0dXJuIGZkYXJyYXlfX3BvbGwoJmV2bGlzdC0+cG9sbGZkLCB0aW1lb3V0KTsKLX0KLQotc3RhdGljIHZvaWQgcGVyZl9ldmxpc3RfX2lkX2hhc2goc3RydWN0IGV2bGlzdCAqZXZsaXN0LAotCQkJCSBzdHJ1Y3QgZXZzZWwgKmV2c2VsLAotCQkJCSBpbnQgY3B1LCBpbnQgdGhyZWFkLCB1NjQgaWQpCi17Ci0JaW50IGhhc2g7Ci0Jc3RydWN0IHBlcmZfc2FtcGxlX2lkICpzaWQgPSBTSUQoZXZzZWwsIGNwdSwgdGhyZWFkKTsKLQotCXNpZC0+aWQgPSBpZDsKLQlzaWQtPmV2c2VsID0gZXZzZWw7Ci0JaGFzaCA9IGhhc2hfNjQoc2lkLT5pZCwgUEVSRl9FVkxJU1RfX0hMSVNUX0JJVFMpOwotCWhsaXN0X2FkZF9oZWFkKCZzaWQtPm5vZGUsICZldmxpc3QtPmhlYWRzW2hhc2hdKTsKLX0KLQotdm9pZCBwZXJmX2V2bGlzdF9faWRfYWRkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgc3RydWN0IGV2c2VsICpldnNlbCwKLQkJCSBpbnQgY3B1LCBpbnQgdGhyZWFkLCB1NjQgaWQpCi17Ci0JcGVyZl9ldmxpc3RfX2lkX2hhc2goZXZsaXN0LCBldnNlbCwgY3B1LCB0aHJlYWQsIGlkKTsKLQlldnNlbC0+aWRbZXZzZWwtPmlkcysrXSA9IGlkOwotfQotCi1pbnQgcGVyZl9ldmxpc3RfX2lkX2FkZF9mZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCi0JCQkgICBzdHJ1Y3QgZXZzZWwgKmV2c2VsLAotCQkJICAgaW50IGNwdSwgaW50IHRocmVhZCwgaW50IGZkKQotewotCXU2NCByZWFkX2RhdGFbNF0gPSB7IDAsIH07Ci0JaW50IGlkX2lkeCA9IDE7IC8qIFRoZSBmaXJzdCBlbnRyeSBpcyB0aGUgY291bnRlciB2YWx1ZSAqLwotCXU2NCBpZDsKLQlpbnQgcmV0OwotCi0JcmV0ID0gaW9jdGwoZmQsIFBFUkZfRVZFTlRfSU9DX0lELCAmaWQpOwotCWlmICghcmV0KQotCQlnb3RvIGFkZDsKLQotCWlmIChlcnJubyAhPSBFTk9UVFkpCi0JCXJldHVybiAtMTsKLQotCS8qIExlZ2FjeSB3YXkgdG8gZ2V0IGV2ZW50IGlkLi4gQWxsIGhhaWwgdG8gb2xkIGtlcm5lbHMhICovCi0KLQkvKgotCSAqIFRoaXMgd2F5IGRvZXMgbm90IHdvcmsgd2l0aCBncm91cCBmb3JtYXQgcmVhZCwgc28gYmFpbAotCSAqIG91dCBpbiB0aGF0IGNhc2UuCi0JICovCi0JaWYgKHBlcmZfZXZsaXN0X19yZWFkX2Zvcm1hdChldmxpc3QpICYgUEVSRl9GT1JNQVRfR1JPVVApCi0JCXJldHVybiAtMTsKLQotCWlmICghKGV2c2VsLT5jb3JlLmF0dHIucmVhZF9mb3JtYXQgJiBQRVJGX0ZPUk1BVF9JRCkgfHwKLQkgICAgcmVhZChmZCwgJnJlYWRfZGF0YSwgc2l6ZW9mKHJlYWRfZGF0YSkpID09IC0xKQotCQlyZXR1cm4gLTE7Ci0KLQlpZiAoZXZzZWwtPmNvcmUuYXR0ci5yZWFkX2Zvcm1hdCAmIFBFUkZfRk9STUFUX1RPVEFMX1RJTUVfRU5BQkxFRCkKLQkJKytpZF9pZHg7Ci0JaWYgKGV2c2VsLT5jb3JlLmF0dHIucmVhZF9mb3JtYXQgJiBQRVJGX0ZPUk1BVF9UT1RBTF9USU1FX1JVTk5JTkcpCi0JCSsraWRfaWR4OwotCi0JaWQgPSByZWFkX2RhdGFbaWRfaWR4XTsKLQotIGFkZDoKLQlwZXJmX2V2bGlzdF9faWRfYWRkKGV2bGlzdCwgZXZzZWwsIGNwdSwgdGhyZWFkLCBpZCk7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIHBlcmZfZXZsaXN0X19wb2xsKCZldmxpc3QtPmNvcmUsIHRpbWVvdXQpOwogfQogCiBzdGF0aWMgdm9pZCBwZXJmX2V2bGlzdF9fc2V0X3NpZF9pZHgoc3RydWN0IGV2bGlzdCAqZXZsaXN0LApAQCAtNTM1LDcgKzQzMyw3IEBAIHN0YXRpYyB2b2lkIHBlcmZfZXZsaXN0X19zZXRfc2lkX2lkeChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCiAJCXNpZC0+Y3B1ID0gZXZsaXN0LT5jb3JlLmNwdXMtPm1hcFtjcHVdOwogCWVsc2UKIAkJc2lkLT5jcHUgPSAtMTsKLQlpZiAoIWV2c2VsLT5zeXN0ZW1fd2lkZSAmJiBldmxpc3QtPmNvcmUudGhyZWFkcyAmJiB0aHJlYWQgPj0gMCkKKwlpZiAoIWV2c2VsLT5jb3JlLnN5c3RlbV93aWRlICYmIGV2bGlzdC0+Y29yZS50aHJlYWRzICYmIHRocmVhZCA+PSAwKQogCQlzaWQtPnRpZCA9IHBlcmZfdGhyZWFkX21hcF9fcGlkKGV2bGlzdC0+Y29yZS50aHJlYWRzLCB0aHJlYWQpOwogCWVsc2UKIAkJc2lkLT50aWQgPSAtMTsKQEAgLTU0OCw3ICs0NDYsNyBAQCBzdHJ1Y3QgcGVyZl9zYW1wbGVfaWQgKnBlcmZfZXZsaXN0X19pZDJzaWQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCB1NjQgaWQpCiAJaW50IGhhc2g7CiAKIAloYXNoID0gaGFzaF82NChpZCwgUEVSRl9FVkxJU1RfX0hMSVNUX0JJVFMpOwotCWhlYWQgPSAmZXZsaXN0LT5oZWFkc1toYXNoXTsKKwloZWFkID0gJmV2bGlzdC0+Y29yZS5oZWFkc1toYXNoXTsKIAogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KHNpZCwgaGVhZCwgbm9kZSkKIAkJaWYgKHNpZC0+aWQgPT0gaWQpCkBAIC01NjIsMTQgKzQ2MCwxNCBAQCBzdHJ1Y3QgZXZzZWwgKnBlcmZfZXZsaXN0X19pZDJldnNlbChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHU2NCBpZCkKIAlzdHJ1Y3QgcGVyZl9zYW1wbGVfaWQgKnNpZDsKIAogCWlmIChldmxpc3QtPmNvcmUubnJfZW50cmllcyA9PSAxIHx8ICFpZCkKLQkJcmV0dXJuIHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCQlyZXR1cm4gZXZsaXN0X19maXJzdChldmxpc3QpOwogCiAJc2lkID0gcGVyZl9ldmxpc3RfX2lkMnNpZChldmxpc3QsIGlkKTsKIAlpZiAoc2lkKQotCQlyZXR1cm4gc2lkLT5ldnNlbDsKKwkJcmV0dXJuIGNvbnRhaW5lcl9vZihzaWQtPmV2c2VsLCBzdHJ1Y3QgZXZzZWwsIGNvcmUpOwogCiAJaWYgKCFwZXJmX2V2bGlzdF9fc2FtcGxlX2lkX2FsbChldmxpc3QpKQotCQlyZXR1cm4gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJCXJldHVybiBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTU4NCw3ICs0ODIsNyBAQCBzdHJ1Y3QgZXZzZWwgKnBlcmZfZXZsaXN0X19pZDJldnNlbF9zdHJpY3Qoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCiAJc2lkID0gcGVyZl9ldmxpc3RfX2lkMnNpZChldmxpc3QsIGlkKTsKIAlpZiAoc2lkKQotCQlyZXR1cm4gc2lkLT5ldnNlbDsKKwkJcmV0dXJuIGNvbnRhaW5lcl9vZihzaWQtPmV2c2VsLCBzdHJ1Y3QgZXZzZWwsIGNvcmUpOwogCiAJcmV0dXJuIE5VTEw7CiB9CkBAIC02MTMsNyArNTExLDcgQEAgc3RhdGljIGludCBwZXJmX2V2bGlzdF9fZXZlbnQyaWQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogc3RydWN0IGV2c2VsICpwZXJmX2V2bGlzdF9fZXZlbnQyZXZzZWwoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkJCQkgICAgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQpCiB7Ci0Jc3RydWN0IGV2c2VsICpmaXJzdCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZmlyc3QgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAJc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQ7CiAJc3RydWN0IHBlcmZfc2FtcGxlX2lkICpzaWQ7CiAJaW50IGhhc2g7CkBAIC02MzQsMTEgKzUzMiwxMSBAQCBzdHJ1Y3QgZXZzZWwgKnBlcmZfZXZsaXN0X19ldmVudDJldnNlbChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCiAJCXJldHVybiBmaXJzdDsKIAogCWhhc2ggPSBoYXNoXzY0KGlkLCBQRVJGX0VWTElTVF9fSExJU1RfQklUUyk7Ci0JaGVhZCA9ICZldmxpc3QtPmhlYWRzW2hhc2hdOworCWhlYWQgPSAmZXZsaXN0LT5jb3JlLmhlYWRzW2hhc2hdOwogCiAJaGxpc3RfZm9yX2VhY2hfZW50cnkoc2lkLCBoZWFkLCBub2RlKSB7CiAJCWlmIChzaWQtPmlkID09IGlkKQotCQkJcmV0dXJuIHNpZC0+ZXZzZWw7CisJCQlyZXR1cm4gY29udGFpbmVyX29mKHNpZC0+ZXZzZWwsIHN0cnVjdCBldnNlbCwgY29yZSk7CiAJfQogCXJldHVybiBOVUxMOwogfQpAQCAtNjUwLDggKzU0OCw4IEBAIHN0YXRpYyBpbnQgcGVyZl9ldmxpc3RfX3NldF9wYXVzZWQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBib29sIHZhbHVlKQogCWlmICghZXZsaXN0LT5vdmVyd3JpdGVfbW1hcCkKIAkJcmV0dXJuIDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5ucl9tbWFwczsgaSsrKSB7Ci0JCWludCBmZCA9IGV2bGlzdC0+b3ZlcndyaXRlX21tYXBbaV0uZmQ7CisJZm9yIChpID0gMDsgaSA8IGV2bGlzdC0+Y29yZS5ucl9tbWFwczsgaSsrKSB7CisJCWludCBmZCA9IGV2bGlzdC0+b3ZlcndyaXRlX21tYXBbaV0uY29yZS5mZDsKIAkJaW50IGVycjsKIAogCQlpZiAoZmQgPCAwKQpAQCAtNjczLDQyICs1NzEsNDIgQEAgc3RhdGljIGludCBwZXJmX2V2bGlzdF9fcmVzdW1lKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAlyZXR1cm4gcGVyZl9ldmxpc3RfX3NldF9wYXVzZWQoZXZsaXN0LCBmYWxzZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBlcmZfZXZsaXN0X19tdW5tYXBfbm9mcmVlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKK3N0YXRpYyB2b2lkIGV2bGlzdF9fbXVubWFwX25vZnJlZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7CiAJaW50IGk7CiAKIAlpZiAoZXZsaXN0LT5tbWFwKQotCQlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5ucl9tbWFwczsgaSsrKQorCQlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspCiAJCQlwZXJmX21tYXBfX211bm1hcCgmZXZsaXN0LT5tbWFwW2ldKTsKIAogCWlmIChldmxpc3QtPm92ZXJ3cml0ZV9tbWFwKQotCQlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5ucl9tbWFwczsgaSsrKQorCQlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspCiAJCQlwZXJmX21tYXBfX211bm1hcCgmZXZsaXN0LT5vdmVyd3JpdGVfbW1hcFtpXSk7CiB9CiAKLXZvaWQgcGVyZl9ldmxpc3RfX211bm1hcChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCit2b2lkIGV2bGlzdF9fbXVubWFwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlwZXJmX2V2bGlzdF9fbXVubWFwX25vZnJlZShldmxpc3QpOworCWV2bGlzdF9fbXVubWFwX25vZnJlZShldmxpc3QpOwogCXpmcmVlKCZldmxpc3QtPm1tYXApOwogCXpmcmVlKCZldmxpc3QtPm92ZXJ3cml0ZV9tbWFwKTsKIH0KIAotc3RhdGljIHN0cnVjdCBwZXJmX21tYXAgKnBlcmZfZXZsaXN0X19hbGxvY19tbWFwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKLQkJCQkJCSBib29sIG92ZXJ3cml0ZSkKK3N0YXRpYyBzdHJ1Y3QgbW1hcCAqZXZsaXN0X19hbGxvY19tbWFwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKKwkJCQkgICAgICAgYm9vbCBvdmVyd3JpdGUpCiB7CiAJaW50IGk7Ci0Jc3RydWN0IHBlcmZfbW1hcCAqbWFwOworCXN0cnVjdCBtbWFwICptYXA7CiAKLQlldmxpc3QtPm5yX21tYXBzID0gcGVyZl9jcHVfbWFwX19ucihldmxpc3QtPmNvcmUuY3B1cyk7CisJZXZsaXN0LT5jb3JlLm5yX21tYXBzID0gcGVyZl9jcHVfbWFwX19ucihldmxpc3QtPmNvcmUuY3B1cyk7CiAJaWYgKHBlcmZfY3B1X21hcF9fZW1wdHkoZXZsaXN0LT5jb3JlLmNwdXMpKQotCQlldmxpc3QtPm5yX21tYXBzID0gcGVyZl90aHJlYWRfbWFwX19ucihldmxpc3QtPmNvcmUudGhyZWFkcyk7Ci0JbWFwID0gemFsbG9jKGV2bGlzdC0+bnJfbW1hcHMgKiBzaXplb2Yoc3RydWN0IHBlcmZfbW1hcCkpOworCQlldmxpc3QtPmNvcmUubnJfbW1hcHMgPSBwZXJmX3RocmVhZF9tYXBfX25yKGV2bGlzdC0+Y29yZS50aHJlYWRzKTsKKwltYXAgPSB6YWxsb2MoZXZsaXN0LT5jb3JlLm5yX21tYXBzICogc2l6ZW9mKHN0cnVjdCBtbWFwKSk7CiAJaWYgKCFtYXApCiAJCXJldHVybiBOVUxMOwogCi0JZm9yIChpID0gMDsgaSA8IGV2bGlzdC0+bnJfbW1hcHM7IGkrKykgewotCQltYXBbaV0uZmQgPSAtMTsKLQkJbWFwW2ldLm92ZXJ3cml0ZSA9IG92ZXJ3cml0ZTsKKwlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspIHsKKwkJbWFwW2ldLmNvcmUuZmQgPSAtMTsKKwkJbWFwW2ldLmNvcmUub3ZlcndyaXRlID0gb3ZlcndyaXRlOwogCQkvKgogCQkgKiBXaGVuIHRoZSBwZXJmX21tYXAoKSBjYWxsIGlzIG1hZGUgd2UgZ3JhYiBvbmUgcmVmY291bnQsIHBsdXMKIAkJICogb25lIGV4dHJhIHRvIGxldCBwZXJmX21tYXBfX2NvbnN1bWUoKSBnZXQgdGhlIGxhc3QKQEAgLTcxOCw3ICs2MTYsNyBAQCBzdGF0aWMgc3RydWN0IHBlcmZfbW1hcCAqcGVyZl9ldmxpc3RfX2FsbG9jX21tYXAoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkgKiBFYWNoIFBFUkZfRVZFTlRfSU9DX1NFVF9PVVRQVVQgcG9pbnRzIHRvIHRoaXMgbW1hcCBhbmQKIAkJICogdGh1cyBkb2VzIHBlcmZfbW1hcF9fZ2V0KCkgb24gaXQuCiAJCSAqLwotCQlyZWZjb3VudF9zZXQoJm1hcFtpXS5yZWZjbnQsIDApOworCQlyZWZjb3VudF9zZXQoJm1hcFtpXS5jb3JlLnJlZmNudCwgMCk7CiAJfQogCXJldHVybiBtYXA7CiB9CkBAIC03MzIsNyArNjMwLDcgQEAgcGVyZl9ldmxpc3RfX3Nob3VsZF9wb2xsKHN0cnVjdCBldmxpc3QgKmV2bGlzdCBfX21heWJlX3VudXNlZCwKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGludCBwZXJmX2V2bGlzdF9fbW1hcF9wZXJfZXZzZWwoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBpbnQgaWR4LAorc3RhdGljIGludCBldmxpc3RfX21tYXBfcGVyX2V2c2VsKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgaW50IGlkeCwKIAkJCQkgICAgICAgc3RydWN0IG1tYXBfcGFyYW1zICptcCwgaW50IGNwdV9pZHgsCiAJCQkJICAgICAgIGludCB0aHJlYWQsIGludCAqX291dHB1dCwgaW50ICpfb3V0cHV0X292ZXJ3cml0ZSkKIHsKQEAgLTc0MSw3ICs2MzksNyBAQCBzdGF0aWMgaW50IHBlcmZfZXZsaXN0X19tbWFwX3Blcl9ldnNlbChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCBpZHgsCiAJaW50IGV2bGlzdF9jcHUgPSBjcHVfbWFwX19jcHUoZXZsaXN0LT5jb3JlLmNwdXMsIGNwdV9pZHgpOwogCiAJZXZsaXN0X19mb3JfZWFjaF9lbnRyeShldmxpc3QsIGV2c2VsKSB7Ci0JCXN0cnVjdCBwZXJmX21tYXAgKm1hcHMgPSBldmxpc3QtPm1tYXA7CisJCXN0cnVjdCBtbWFwICptYXBzID0gZXZsaXN0LT5tbWFwOwogCQlpbnQgKm91dHB1dCA9IF9vdXRwdXQ7CiAJCWludCBmZDsKIAkJaW50IGNwdTsKQEAgLTc1Miw3ICs2NTAsNyBAQCBzdGF0aWMgaW50IHBlcmZfZXZsaXN0X19tbWFwX3Blcl9ldnNlbChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCBpZHgsCiAJCQltYXBzID0gZXZsaXN0LT5vdmVyd3JpdGVfbW1hcDsKIAogCQkJaWYgKCFtYXBzKSB7Ci0JCQkJbWFwcyA9IHBlcmZfZXZsaXN0X19hbGxvY19tbWFwKGV2bGlzdCwgdHJ1ZSk7CisJCQkJbWFwcyA9IGV2bGlzdF9fYWxsb2NfbW1hcChldmxpc3QsIHRydWUpOwogCQkJCWlmICghbWFwcykKIAkJCQkJcmV0dXJuIC0xOwogCQkJCWV2bGlzdC0+b3ZlcndyaXRlX21tYXAgPSBtYXBzOwpAQCAtNzYyLDcgKzY2MCw3IEBAIHN0YXRpYyBpbnQgcGVyZl9ldmxpc3RfX21tYXBfcGVyX2V2c2VsKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgaW50IGlkeCwKIAkJCW1wLT5wcm90ICY9IH5QUk9UX1dSSVRFOwogCQl9CiAKLQkJaWYgKGV2c2VsLT5zeXN0ZW1fd2lkZSAmJiB0aHJlYWQpCisJCWlmIChldnNlbC0+Y29yZS5zeXN0ZW1fd2lkZSAmJiB0aHJlYWQpCiAJCQljb250aW51ZTsKIAogCQljcHUgPSBwZXJmX2NwdV9tYXBfX2lkeChldnNlbC0+Y29yZS5jcHVzLCBldmxpc3RfY3B1KTsKQEAgLTc5MiwxNCArNjkwLDE0IEBAIHN0YXRpYyBpbnQgcGVyZl9ldmxpc3RfX21tYXBfcGVyX2V2c2VsKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgaW50IGlkeCwKIAkJICogb3RoZXIgZXZlbnRzLCBzbyBpdCBzaG91bGQgbm90IG5lZWQgdG8gYmUgcG9sbGVkIGFueXdheS4KIAkJICogVGhlcmVmb3JlIGRvbid0IGFkZCBpdCBmb3IgcG9sbGluZy4KIAkJICovCi0JCWlmICghZXZzZWwtPnN5c3RlbV93aWRlICYmCi0JCSAgICBfX3BlcmZfZXZsaXN0X19hZGRfcG9sbGZkKGV2bGlzdCwgZmQsICZtYXBzW2lkeF0sIHJldmVudCkgPCAwKSB7CisJCWlmICghZXZzZWwtPmNvcmUuc3lzdGVtX3dpZGUgJiYKKwkJICAgICBwZXJmX2V2bGlzdF9fYWRkX3BvbGxmZCgmZXZsaXN0LT5jb3JlLCBmZCwgJm1hcHNbaWR4XSwgcmV2ZW50KSA8IDApIHsKIAkJCXBlcmZfbW1hcF9fcHV0KCZtYXBzW2lkeF0pOwogCQkJcmV0dXJuIC0xOwogCQl9CiAKIAkJaWYgKGV2c2VsLT5jb3JlLmF0dHIucmVhZF9mb3JtYXQgJiBQRVJGX0ZPUk1BVF9JRCkgewotCQkJaWYgKHBlcmZfZXZsaXN0X19pZF9hZGRfZmQoZXZsaXN0LCBldnNlbCwgY3B1LCB0aHJlYWQsCisJCQlpZiAocGVyZl9ldmxpc3RfX2lkX2FkZF9mZCgmZXZsaXN0LT5jb3JlLCAmZXZzZWwtPmNvcmUsIGNwdSwgdGhyZWFkLAogCQkJCQkJICAgZmQpIDwgMCkKIAkJCQlyZXR1cm4gLTE7CiAJCQlwZXJmX2V2bGlzdF9fc2V0X3NpZF9pZHgoZXZsaXN0LCBldnNlbCwgaWR4LCBjcHUsCkBAIC04MTAsNyArNzA4LDcgQEAgc3RhdGljIGludCBwZXJmX2V2bGlzdF9fbW1hcF9wZXJfZXZzZWwoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBpbnQgaWR4LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHBlcmZfZXZsaXN0X19tbWFwX3Blcl9jcHUoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAorc3RhdGljIGludCBldmxpc3RfX21tYXBfcGVyX2NwdShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCiAJCQkJICAgICBzdHJ1Y3QgbW1hcF9wYXJhbXMgKm1wKQogewogCWludCBjcHUsIHRocmVhZDsKQEAgLTgyNiw3ICs3MjQsNyBAQCBzdGF0aWMgaW50IHBlcmZfZXZsaXN0X19tbWFwX3Blcl9jcHUoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkJCQkgICAgICB0cnVlKTsKIAogCQlmb3IgKHRocmVhZCA9IDA7IHRocmVhZCA8IG5yX3RocmVhZHM7IHRocmVhZCsrKSB7Ci0JCQlpZiAocGVyZl9ldmxpc3RfX21tYXBfcGVyX2V2c2VsKGV2bGlzdCwgY3B1LCBtcCwgY3B1LAorCQkJaWYgKGV2bGlzdF9fbW1hcF9wZXJfZXZzZWwoZXZsaXN0LCBjcHUsIG1wLCBjcHUsCiAJCQkJCQkJdGhyZWFkLCAmb3V0cHV0LCAmb3V0cHV0X292ZXJ3cml0ZSkpCiAJCQkJZ290byBvdXRfdW5tYXA7CiAJCX0KQEAgLTgzNSwxMSArNzMzLDExIEBAIHN0YXRpYyBpbnQgcGVyZl9ldmxpc3RfX21tYXBfcGVyX2NwdShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCiAJcmV0dXJuIDA7CiAKIG91dF91bm1hcDoKLQlwZXJmX2V2bGlzdF9fbXVubWFwX25vZnJlZShldmxpc3QpOworCWV2bGlzdF9fbXVubWFwX25vZnJlZShldmxpc3QpOwogCXJldHVybiAtMTsKIH0KIAotc3RhdGljIGludCBwZXJmX2V2bGlzdF9fbW1hcF9wZXJfdGhyZWFkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKK3N0YXRpYyBpbnQgZXZsaXN0X19tbWFwX3Blcl90aHJlYWQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkJCQlzdHJ1Y3QgbW1hcF9wYXJhbXMgKm1wKQogewogCWludCB0aHJlYWQ7CkBAIC04NTMsNyArNzUxLDcgQEAgc3RhdGljIGludCBwZXJmX2V2bGlzdF9fbW1hcF9wZXJfdGhyZWFkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKIAkJYXV4dHJhY2VfbW1hcF9wYXJhbXNfX3NldF9pZHgoJm1wLT5hdXh0cmFjZV9tcCwgZXZsaXN0LCB0aHJlYWQsCiAJCQkJCSAgICAgIGZhbHNlKTsKIAotCQlpZiAocGVyZl9ldmxpc3RfX21tYXBfcGVyX2V2c2VsKGV2bGlzdCwgdGhyZWFkLCBtcCwgMCwgdGhyZWFkLAorCQlpZiAoZXZsaXN0X19tbWFwX3Blcl9ldnNlbChldmxpc3QsIHRocmVhZCwgbXAsIDAsIHRocmVhZCwKIAkJCQkJCSZvdXRwdXQsICZvdXRwdXRfb3ZlcndyaXRlKSkKIAkJCWdvdG8gb3V0X3VubWFwOwogCX0KQEAgLTg2MSw3ICs3NTksNyBAQCBzdGF0aWMgaW50IHBlcmZfZXZsaXN0X19tbWFwX3Blcl90aHJlYWQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCXJldHVybiAwOwogCiBvdXRfdW5tYXA6Ci0JcGVyZl9ldmxpc3RfX211bm1hcF9ub2ZyZWUoZXZsaXN0KTsKKwlldmxpc3RfX211bm1hcF9ub2ZyZWUoZXZsaXN0KTsKIAlyZXR1cm4gLTE7CiB9CiAKQEAgLTg4OCw3ICs3ODYsNyBAQCB1bnNpZ25lZCBsb25nIHBlcmZfZXZlbnRfbWxvY2tfa2JfaW5fcGFnZXModm9pZCkKIAlyZXR1cm4gcGFnZXM7CiB9CiAKLXNpemVfdCBwZXJmX2V2bGlzdF9fbW1hcF9zaXplKHVuc2lnbmVkIGxvbmcgcGFnZXMpCitzaXplX3QgZXZsaXN0X19tbWFwX3NpemUodW5zaWduZWQgbG9uZyBwYWdlcykKIHsKIAlpZiAocGFnZXMgPT0gVUlOVF9NQVgpCiAJCXBhZ2VzID0gcGVyZl9ldmVudF9tbG9ja19rYl9pbl9wYWdlcygpOwpAQCAtOTcxLDcgKzg2OSw3IEBAIGludCBwZXJmX2V2bGlzdF9fcGFyc2VfbW1hcF9wYWdlcyhjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsIGNvbnN0IGNoYXIgKnN0ciwKIH0KIAogLyoqCi0gKiBwZXJmX2V2bGlzdF9fbW1hcF9leCAtIENyZWF0ZSBtbWFwcyB0byByZWNlaXZlIGV2ZW50cy4KKyAqIGV2bGlzdF9fbW1hcF9leCAtIENyZWF0ZSBtbWFwcyB0byByZWNlaXZlIGV2ZW50cy4KICAqIEBldmxpc3Q6IGxpc3Qgb2YgZXZlbnRzCiAgKiBAcGFnZXM6IG1hcCBsZW5ndGggaW4gcGFnZXMKICAqIEBvdmVyd3JpdGU6IG92ZXJ3cml0ZSBvbGRlciBldmVudHM/CkBAIC05NzksNyArODc3LDcgQEAgaW50IHBlcmZfZXZsaXN0X19wYXJzZV9tbWFwX3BhZ2VzKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdCwgY29uc3QgY2hhciAqc3RyLAogICogQGF1eHRyYWNlX292ZXJ3cml0ZSAtIG92ZXJ3cml0ZSBvbGRlciBhdXh0cmFjZSBkYXRhPwogICoKICAqIElmIEBvdmVyd3JpdGUgaXMgJWZhbHNlIHRoZSB1c2VyIG5lZWRzIHRvIHNpZ25hbCBldmVudCBjb25zdW1wdGlvbiB1c2luZwotICogcGVyZl9tbWFwX193cml0ZV90YWlsKCkuICBVc2luZyBwZXJmX2V2bGlzdF9fbW1hcF9yZWFkKCkgZG9lcyB0aGlzCisgKiBwZXJmX21tYXBfX3dyaXRlX3RhaWwoKS4gIFVzaW5nIGV2bGlzdF9fbW1hcF9yZWFkKCkgZG9lcyB0aGlzCiAgKiBhdXRvbWF0aWNhbGx5LgogICoKICAqIFNpbWlsYXJseSwgaWYgQGF1eHRyYWNlX292ZXJ3cml0ZSBpcyAlZmFsc2UgdGhlIHVzZXIgbmVlZHMgdG8gc2lnbmFsIGRhdGEKQEAgLTk4Nyw3ICs4ODUsNyBAQCBpbnQgcGVyZl9ldmxpc3RfX3BhcnNlX21tYXBfcGFnZXMoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LCBjb25zdCBjaGFyICpzdHIsCiAgKgogICogUmV0dXJuOiAlMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4KICAqLwotaW50IHBlcmZfZXZsaXN0X19tbWFwX2V4KHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgdW5zaWduZWQgaW50IHBhZ2VzLAoraW50IGV2bGlzdF9fbW1hcF9leChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHVuc2lnbmVkIGludCBwYWdlcywKIAkJCSB1bnNpZ25lZCBpbnQgYXV4dHJhY2VfcGFnZXMsCiAJCQkgYm9vbCBhdXh0cmFjZV9vdmVyd3JpdGUsIGludCBucl9jYmxvY2tzLCBpbnQgYWZmaW5pdHksIGludCBmbHVzaCwKIAkJCSBpbnQgY29tcF9sZXZlbCkKQEAgLTEwMDQsMzYgKzkwMiwzNiBAQCBpbnQgcGVyZl9ldmxpc3RfX21tYXBfZXgoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCB1bnNpZ25lZCBpbnQgcGFnZXMsCiAJCQkJICAuY29tcF9sZXZlbCA9IGNvbXBfbGV2ZWwgfTsKIAogCWlmICghZXZsaXN0LT5tbWFwKQotCQlldmxpc3QtPm1tYXAgPSBwZXJmX2V2bGlzdF9fYWxsb2NfbW1hcChldmxpc3QsIGZhbHNlKTsKKwkJZXZsaXN0LT5tbWFwID0gZXZsaXN0X19hbGxvY19tbWFwKGV2bGlzdCwgZmFsc2UpOwogCWlmICghZXZsaXN0LT5tbWFwKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCWlmIChldmxpc3QtPnBvbGxmZC5lbnRyaWVzID09IE5VTEwgJiYgcGVyZl9ldmxpc3RfX2FsbG9jX3BvbGxmZChldmxpc3QpIDwgMCkKKwlpZiAoZXZsaXN0LT5jb3JlLnBvbGxmZC5lbnRyaWVzID09IE5VTEwgJiYgcGVyZl9ldmxpc3RfX2FsbG9jX3BvbGxmZCgmZXZsaXN0LT5jb3JlKSA8IDApCiAJCXJldHVybiAtRU5PTUVNOwogCi0JZXZsaXN0LT5tbWFwX2xlbiA9IHBlcmZfZXZsaXN0X19tbWFwX3NpemUocGFnZXMpOwotCXByX2RlYnVnKCJtbWFwIHNpemUgJXp1QlxuIiwgZXZsaXN0LT5tbWFwX2xlbik7Ci0JbXAubWFzayA9IGV2bGlzdC0+bW1hcF9sZW4gLSBwYWdlX3NpemUgLSAxOworCWV2bGlzdC0+Y29yZS5tbWFwX2xlbiA9IGV2bGlzdF9fbW1hcF9zaXplKHBhZ2VzKTsKKwlwcl9kZWJ1ZygibW1hcCBzaXplICV6dUJcbiIsIGV2bGlzdC0+Y29yZS5tbWFwX2xlbik7CisJbXAubWFzayA9IGV2bGlzdC0+Y29yZS5tbWFwX2xlbiAtIHBhZ2Vfc2l6ZSAtIDE7CiAKLQlhdXh0cmFjZV9tbWFwX3BhcmFtc19faW5pdCgmbXAuYXV4dHJhY2VfbXAsIGV2bGlzdC0+bW1hcF9sZW4sCisJYXV4dHJhY2VfbW1hcF9wYXJhbXNfX2luaXQoJm1wLmF1eHRyYWNlX21wLCBldmxpc3QtPmNvcmUubW1hcF9sZW4sCiAJCQkJICAgYXV4dHJhY2VfcGFnZXMsIGF1eHRyYWNlX292ZXJ3cml0ZSk7CiAKIAlldmxpc3RfX2Zvcl9lYWNoX2VudHJ5KGV2bGlzdCwgZXZzZWwpIHsKIAkJaWYgKChldnNlbC0+Y29yZS5hdHRyLnJlYWRfZm9ybWF0ICYgUEVSRl9GT1JNQVRfSUQpICYmCi0JCSAgICBldnNlbC0+c2FtcGxlX2lkID09IE5VTEwgJiYKLQkJICAgIHBlcmZfZXZzZWxfX2FsbG9jX2lkKGV2c2VsLCBwZXJmX2NwdV9tYXBfX25yKGNwdXMpLCB0aHJlYWRzLT5ucikgPCAwKQorCQkgICAgZXZzZWwtPmNvcmUuc2FtcGxlX2lkID09IE5VTEwgJiYKKwkJICAgIHBlcmZfZXZzZWxfX2FsbG9jX2lkKCZldnNlbC0+Y29yZSwgcGVyZl9jcHVfbWFwX19ucihjcHVzKSwgdGhyZWFkcy0+bnIpIDwgMCkKIAkJCXJldHVybiAtRU5PTUVNOwogCX0KIAogCWlmIChwZXJmX2NwdV9tYXBfX2VtcHR5KGNwdXMpKQotCQlyZXR1cm4gcGVyZl9ldmxpc3RfX21tYXBfcGVyX3RocmVhZChldmxpc3QsICZtcCk7CisJCXJldHVybiBldmxpc3RfX21tYXBfcGVyX3RocmVhZChldmxpc3QsICZtcCk7CiAKLQlyZXR1cm4gcGVyZl9ldmxpc3RfX21tYXBfcGVyX2NwdShldmxpc3QsICZtcCk7CisJcmV0dXJuIGV2bGlzdF9fbW1hcF9wZXJfY3B1KGV2bGlzdCwgJm1wKTsKIH0KIAotaW50IHBlcmZfZXZsaXN0X19tbWFwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgdW5zaWduZWQgaW50IHBhZ2VzKQoraW50IGV2bGlzdF9fbW1hcChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHVuc2lnbmVkIGludCBwYWdlcykKIHsKLQlyZXR1cm4gcGVyZl9ldmxpc3RfX21tYXBfZXgoZXZsaXN0LCBwYWdlcywgMCwgZmFsc2UsIDAsIFBFUkZfQUZGSU5JVFlfU1lTLCAxLCAwKTsKKwlyZXR1cm4gZXZsaXN0X19tbWFwX2V4KGV2bGlzdCwgcGFnZXMsIDAsIGZhbHNlLCAwLCBQRVJGX0FGRklOSVRZX1NZUywgMSwgMCk7CiB9CiAKIGludCBwZXJmX2V2bGlzdF9fY3JlYXRlX21hcHMoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBzdHJ1Y3QgdGFyZ2V0ICp0YXJnZXQpCkBAIC0xMjI1LDcgKzExMjMsNyBAQCB1NjQgcGVyZl9ldmxpc3RfX2NvbWJpbmVkX2JyYW5jaF90eXBlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogYm9vbCBwZXJmX2V2bGlzdF9fdmFsaWRfcmVhZF9mb3JtYXQoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXN0cnVjdCBldnNlbCAqZmlyc3QgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KSwgKnBvcyA9IGZpcnN0OworCXN0cnVjdCBldnNlbCAqZmlyc3QgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCksICpwb3MgPSBmaXJzdDsKIAl1NjQgcmVhZF9mb3JtYXQgPSBmaXJzdC0+Y29yZS5hdHRyLnJlYWRfZm9ybWF0OwogCXU2NCBzYW1wbGVfdHlwZSA9IGZpcnN0LT5jb3JlLmF0dHIuc2FtcGxlX3R5cGU7CiAKQEAgLTEyNDMsMTUgKzExNDEsOSBAQCBib29sIHBlcmZfZXZsaXN0X192YWxpZF9yZWFkX2Zvcm1hdChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAJcmV0dXJuIHRydWU7CiB9CiAKLXU2NCBwZXJmX2V2bGlzdF9fcmVhZF9mb3JtYXQoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQotewotCXN0cnVjdCBldnNlbCAqZmlyc3QgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKLQlyZXR1cm4gZmlyc3QtPmNvcmUuYXR0ci5yZWFkX2Zvcm1hdDsKLX0KLQogdTE2IHBlcmZfZXZsaXN0X19pZF9oZHJfc2l6ZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpmaXJzdCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZmlyc3QgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAJc3RydWN0IHBlcmZfc2FtcGxlICpkYXRhOwogCXU2NCBzYW1wbGVfdHlwZTsKIAl1MTYgc2l6ZSA9IDA7CkBAIC0xMjg0LDcgKzExNzYsNyBAQCB1MTYgcGVyZl9ldmxpc3RfX2lkX2hkcl9zaXplKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogYm9vbCBwZXJmX2V2bGlzdF9fdmFsaWRfc2FtcGxlX2lkX2FsbChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpmaXJzdCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpLCAqcG9zID0gZmlyc3Q7CisJc3RydWN0IGV2c2VsICpmaXJzdCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KSwgKnBvcyA9IGZpcnN0OwogCiAJZXZsaXN0X19mb3JfZWFjaF9lbnRyeV9jb250aW51ZShldmxpc3QsIHBvcykgewogCQlpZiAoZmlyc3QtPmNvcmUuYXR0ci5zYW1wbGVfaWRfYWxsICE9IHBvcy0+Y29yZS5hdHRyLnNhbXBsZV9pZF9hbGwpCkBAIC0xMjk2LDcgKzExODgsNyBAQCBib29sIHBlcmZfZXZsaXN0X192YWxpZF9zYW1wbGVfaWRfYWxsKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAogYm9vbCBwZXJmX2V2bGlzdF9fc2FtcGxlX2lkX2FsbChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB7Ci0Jc3RydWN0IGV2c2VsICpmaXJzdCA9IHBlcmZfZXZsaXN0X19maXJzdChldmxpc3QpOworCXN0cnVjdCBldnNlbCAqZmlyc3QgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAJcmV0dXJuIGZpcnN0LT5jb3JlLmF0dHIuc2FtcGxlX2lkX2FsbDsKIH0KIApAQCAtMTUyOSwxOSArMTQyMSw2IEBAIGludCBwZXJmX2V2bGlzdF9fcGFyc2Vfc2FtcGxlX3RpbWVzdGFtcChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCiAJcmV0dXJuIHBlcmZfZXZzZWxfX3BhcnNlX3NhbXBsZV90aW1lc3RhbXAoZXZzZWwsIGV2ZW50LCB0aW1lc3RhbXApOwogfQogCi1zaXplX3QgcGVyZl9ldmxpc3RfX2ZwcmludGYoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBGSUxFICpmcCkKLXsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsOwotCXNpemVfdCBwcmludGVkID0gMDsKLQotCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZsaXN0LCBldnNlbCkgewotCQlwcmludGVkICs9IGZwcmludGYoZnAsICIlcyVzIiwgZXZzZWwtPmlkeCA/ICIsICIgOiAiIiwKLQkJCQkgICBwZXJmX2V2c2VsX19uYW1lKGV2c2VsKSk7Ci0JfQotCi0JcmV0dXJuIHByaW50ZWQgKyBmcHJpbnRmKGZwLCAiXG4iKTsKLX0KLQogaW50IHBlcmZfZXZsaXN0X19zdHJlcnJvcl9vcGVuKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKIAkJCSAgICAgICBpbnQgZXJyLCBjaGFyICpidWYsIHNpemVfdCBzaXplKQogewpAQCAtMTU3MSw3ICsxNDUwLDcgQEAgaW50IHBlcmZfZXZsaXN0X19zdHJlcnJvcl9vcGVuKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKIAkJCQkgICAgIkhpbnQ6XHRUaGUgY3VycmVudCB2YWx1ZSBpcyAlZC4iLCB2YWx1ZSk7CiAJCWJyZWFrOwogCWNhc2UgRUlOVkFMOiB7Ci0JCXN0cnVjdCBldnNlbCAqZmlyc3QgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwkJc3RydWN0IGV2c2VsICpmaXJzdCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAkJaW50IG1heF9mcmVxOwogCiAJCWlmIChzeXNjdGxfX3JlYWRfaW50KCJrZXJuZWwvcGVyZl9ldmVudF9tYXhfc2FtcGxlX3JhdGUiLCAmbWF4X2ZyZXEpIDwgMCkKQEAgLTE1OTksNyArMTQ3OCw3IEBAIGludCBwZXJmX2V2bGlzdF9fc3RyZXJyb3Jfb3BlbihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCiBpbnQgcGVyZl9ldmxpc3RfX3N0cmVycm9yX21tYXAoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBpbnQgZXJyLCBjaGFyICpidWYsIHNpemVfdCBzaXplKQogewogCWNoYXIgc2J1ZltTVFJFUlJfQlVGU0laRV0sICplbXNnID0gc3RyX2Vycm9yX3IoZXJyLCBzYnVmLCBzaXplb2Yoc2J1ZikpOwotCWludCBwYWdlc19hdHRlbXB0ZWQgPSBldmxpc3QtPm1tYXBfbGVuIC8gMTAyNCwgcGFnZXNfbWF4X3Blcl91c2VyLCBwcmludGVkID0gMDsKKwlpbnQgcGFnZXNfYXR0ZW1wdGVkID0gZXZsaXN0LT5jb3JlLm1tYXBfbGVuIC8gMTAyNCwgcGFnZXNfbWF4X3Blcl91c2VyLCBwcmludGVkID0gMDsKIAogCXN3aXRjaCAoZXJyKSB7CiAJY2FzZSBFUEVSTToKQEAgLTE2MzMsNyArMTUxMiw3IEBAIHZvaWQgcGVyZl9ldmxpc3RfX3RvX2Zyb250KHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKIAlzdHJ1Y3QgZXZzZWwgKmV2c2VsLCAqbjsKIAlMSVNUX0hFQUQobW92ZSk7CiAKLQlpZiAobW92ZV9ldnNlbCA9PSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KSkKKwlpZiAobW92ZV9ldnNlbCA9PSBldmxpc3RfX2ZpcnN0KGV2bGlzdCkpCiAJCXJldHVybjsKIAogCWV2bGlzdF9fZm9yX2VhY2hfZW50cnlfc2FmZShldmxpc3QsIG4sIGV2c2VsKSB7CkBAIC0xNzU0LDcgKzE2MzMsNyBAQCBib29sIHBlcmZfZXZsaXN0X19leGNsdWRlX2tlcm5lbChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiB2b2lkIHBlcmZfZXZsaXN0X19mb3JjZV9sZWFkZXIoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewogCWlmICghZXZsaXN0LT5ucl9ncm91cHMpIHsKLQkJc3RydWN0IGV2c2VsICpsZWFkZXIgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwkJc3RydWN0IGV2c2VsICpsZWFkZXIgPSBldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CiAKIAkJcGVyZl9ldmxpc3RfX3NldF9sZWFkZXIoZXZsaXN0KTsKIAkJbGVhZGVyLT5mb3JjZWRfbGVhZGVyID0gdHJ1ZTsKQEAgLTE3ODAsNyArMTY1OSw3IEBAIHN0cnVjdCBldnNlbCAqcGVyZl9ldmxpc3RfX3Jlc2V0X3dlYWtfZ3JvdXAoc3RydWN0IGV2bGlzdCAqZXZzZWxfbGlzdCwKIAkJCWlzX29wZW4gPSBmYWxzZTsKIAkJaWYgKGMyLT5sZWFkZXIgPT0gbGVhZGVyKSB7CiAJCQlpZiAoaXNfb3BlbikKLQkJCQlldnNlbF9fY2xvc2UoYzIpOworCQkJCXBlcmZfZXZzZWxfX2Nsb3NlKCZldnNlbC0+Y29yZSk7CiAJCQljMi0+bGVhZGVyID0gYzI7CiAJCQljMi0+Y29yZS5ucl9tZW1iZXJzID0gMDsKIAkJfQpAQCAtMTg0NCwxMCArMTcyMywxMCBAQCBzdGF0aWMgdm9pZCAqcGVyZl9ldmxpc3RfX3BvbGxfdGhyZWFkKHZvaWQgKmFyZykKIAkJCWRyYWluaW5nID0gdHJ1ZTsKIAogCQlpZiAoIWRyYWluaW5nKQotCQkJcGVyZl9ldmxpc3RfX3BvbGwoZXZsaXN0LCAxMDAwKTsKKwkJCWV2bGlzdF9fcG9sbChldmxpc3QsIDEwMDApOwogCi0JCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPm5yX21tYXBzOyBpKyspIHsKLQkJCXN0cnVjdCBwZXJmX21tYXAgKm1hcCA9ICZldmxpc3QtPm1tYXBbaV07CisJCWZvciAoaSA9IDA7IGkgPCBldmxpc3QtPmNvcmUubnJfbW1hcHM7IGkrKykgeworCQkJc3RydWN0IG1tYXAgKm1hcCA9ICZldmxpc3QtPm1tYXBbaV07CiAJCQl1bmlvbiBwZXJmX2V2ZW50ICpldmVudDsKIAogCQkJaWYgKHBlcmZfbW1hcF9fcmVhZF9pbml0KG1hcCkpCkBAIC0xODg5LDcgKzE3NjgsNyBAQCBpbnQgcGVyZl9ldmxpc3RfX3N0YXJ0X3NiX3RocmVhZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCiAJCQlnb3RvIG91dF9kZWxldGVfZXZsaXN0OwogCX0KIAotCWlmIChwZXJmX2V2bGlzdF9fbW1hcChldmxpc3QsIFVJTlRfTUFYKSkKKwlpZiAoZXZsaXN0X19tbWFwKGV2bGlzdCwgVUlOVF9NQVgpKQogCQlnb3RvIG91dF9kZWxldGVfZXZsaXN0OwogCiAJZXZsaXN0X19mb3JfZWFjaF9lbnRyeShldmxpc3QsIGNvdW50ZXIpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9ldmxpc3QuaCBiL3Rvb2xzL3BlcmYvdXRpbC9ldmxpc3QuaAppbmRleCBhNTVmMGYyLi43Y2ZlNzU1IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvZXZsaXN0LmgKKysrIGIvdG9vbHMvcGVyZi91dGlsL2V2bGlzdC5oCkBAIC03LDExICs3LDExIEBACiAjaW5jbHVkZSA8bGludXgvcmVmY291bnQuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8YXBpL2ZkL2FycmF5Lmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxpbnRlcm5hbC9ldmxpc3QuaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC9ldnNlbC5oPgogI2luY2x1ZGUgImV2ZW50c19zdGF0cy5oIgogI2luY2x1ZGUgImV2c2VsLmgiCi0jaW5jbHVkZSAibW1hcC5oIgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KIApAQCAtMjAsMTYgKzIwLDM4IEBAIHN0cnVjdCB0aHJlYWRfbWFwOwogc3RydWN0IHBlcmZfY3B1X21hcDsKIHN0cnVjdCByZWNvcmRfb3B0czsKIAotI2RlZmluZSBQRVJGX0VWTElTVF9fSExJU1RfQklUUyA4Ci0jZGVmaW5lIFBFUkZfRVZMSVNUX19ITElTVF9TSVpFICgxIDw8IFBFUkZfRVZMSVNUX19ITElTVF9CSVRTKQorLyoKKyAqIFN0YXRlIG1hY2hpbmUgb2YgYmt3X21tYXBfc3RhdGU6CisgKgorICogICAgICAgICAgICAgICAgICAgICAuX19fX19fX19fX19fX19fXyhmb3JiaWQpX19fX19fX19fX19fXy4KKyAqICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCisgKiBOT1RSRUFEWSAtLSgwKS0tPiBSVU5OSU5HIC0tKDEpLS0+IERBVEFfUEVORElORyAtLSgyKS0tPiBFTVBUWQorICogICAgICAgICAgICAgICAgICAgICBeICBeICAgICAgICAgICAgICB8ICAgXiAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgfCAgfF9fKGZvcmJpZClfX19fLyAgIHxfX18oZm9yYmlkKV9fXy98CisgKiAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgXF9fX19fX19fX19fX19fX19fKDMpX19fX19fX19fX19fX19fLworICoKKyAqIE5PVFJFQURZICAgICA6IEJhY2t3YXJkIHJpbmcgYnVmZmVycyBhcmUgbm90IHJlYWR5CisgKiBSVU5OSU5HICAgICAgOiBCYWNrd2FyZCByaW5nIGJ1ZmZlcnMgYXJlIHJlY29yZGluZworICogREFUQV9QRU5ESU5HIDogV2UgYXJlIHJlcXVpcmVkIHRvIGNvbGxlY3QgZGF0YSBmcm9tIGJhY2t3YXJkIHJpbmcgYnVmZmVycworICogRU1QVFkgICAgICAgIDogV2UgaGF2ZSBjb2xsZWN0ZWQgZGF0YSBmcm9tIGJhY2t3YXJkIHJpbmcgYnVmZmVycy4KKyAqCisgKiAoMCk6IFNldHVwIGJhY2t3YXJkIHJpbmcgYnVmZmVyCisgKiAoMSk6IFBhdXNlIHJpbmcgYnVmZmVycyBmb3IgcmVhZGluZworICogKDIpOiBSZWFkIGZyb20gcmluZyBidWZmZXJzCisgKiAoMyk6IFJlc3VtZSByaW5nIGJ1ZmZlcnMgZm9yIHJlY29yZGluZworICovCitlbnVtIGJrd19tbWFwX3N0YXRlIHsKKwlCS1dfTU1BUF9OT1RSRUFEWSwKKwlCS1dfTU1BUF9SVU5OSU5HLAorCUJLV19NTUFQX0RBVEFfUEVORElORywKKwlCS1dfTU1BUF9FTVBUWSwKK307CiAKIHN0cnVjdCBldmxpc3QgewogCXN0cnVjdCBwZXJmX2V2bGlzdCBjb3JlOwotCXN0cnVjdCBobGlzdF9oZWFkIGhlYWRzW1BFUkZfRVZMSVNUX19ITElTVF9TSVpFXTsKIAlpbnQJCSBucl9ncm91cHM7Ci0JaW50CQkgbnJfbW1hcHM7CiAJYm9vbAkJIGVuYWJsZWQ7Ci0Jc2l6ZV90CQkgbW1hcF9sZW47CiAJaW50CQkgaWRfcG9zOwogCWludAkJIGlzX3BvczsKIAl1NjQJCSBjb21iaW5lZF9zYW1wbGVfdHlwZTsKQEAgLTM4LDkgKzYwLDggQEAgc3RydWN0IGV2bGlzdCB7CiAJCWludAljb3JrX2ZkOwogCQlwaWRfdAlwaWQ7CiAJfSB3b3JrbG9hZDsKLQlzdHJ1Y3QgZmRhcnJheQkgcG9sbGZkOwotCXN0cnVjdCBwZXJmX21tYXAgKm1tYXA7Ci0Jc3RydWN0IHBlcmZfbW1hcCAqb3ZlcndyaXRlX21tYXA7CisJc3RydWN0IG1tYXAgKm1tYXA7CisJc3RydWN0IG1tYXAgKm92ZXJ3cml0ZV9tbWFwOwogCXN0cnVjdCBldnNlbCAqc2VsZWN0ZWQ7CiAJc3RydWN0IGV2ZW50c19zdGF0cyBzdGF0czsKIAlzdHJ1Y3QgcGVyZl9lbnYJKmVudjsKQEAgLTY1LDcgKzg2LDcgQEAgc3RydWN0IGV2bGlzdCAqcGVyZl9ldmxpc3RfX25ld19kZWZhdWx0KHZvaWQpOwogc3RydWN0IGV2bGlzdCAqcGVyZl9ldmxpc3RfX25ld19kdW1teSh2b2lkKTsKIHZvaWQgZXZsaXN0X19pbml0KHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgc3RydWN0IHBlcmZfY3B1X21hcCAqY3B1cywKIAkJICBzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzKTsKLXZvaWQgcGVyZl9ldmxpc3RfX2V4aXQoc3RydWN0IGV2bGlzdCAqZXZsaXN0KTsKK3ZvaWQgZXZsaXN0X19leGl0KHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7CiB2b2lkIGV2bGlzdF9fZGVsZXRlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7CiAKIHZvaWQgZXZsaXN0X19hZGQoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBzdHJ1Y3QgZXZzZWwgKmVudHJ5KTsKQEAgLTExOSwxNyArMTQwLDEwIEBAIHN0cnVjdCBldnNlbCAqCiBwZXJmX2V2bGlzdF9fZmluZF90cmFjZXBvaW50X2J5X25hbWUoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkJCSAgICAgY29uc3QgY2hhciAqbmFtZSk7CiAKLXZvaWQgcGVyZl9ldmxpc3RfX2lkX2FkZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHN0cnVjdCBldnNlbCAqZXZzZWwsCi0JCQkgaW50IGNwdSwgaW50IHRocmVhZCwgdTY0IGlkKTsKLWludCBwZXJmX2V2bGlzdF9faWRfYWRkX2ZkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKLQkJCSAgIHN0cnVjdCBldnNlbCAqZXZzZWwsCi0JCQkgICBpbnQgY3B1LCBpbnQgdGhyZWFkLCBpbnQgZmQpOworaW50IGV2bGlzdF9fYWRkX3BvbGxmZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCBmZCk7CitpbnQgZXZsaXN0X19maWx0ZXJfcG9sbGZkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgc2hvcnQgcmV2ZW50c19hbmRfbWFzayk7CiAKLWludCBwZXJmX2V2bGlzdF9fYWRkX3BvbGxmZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCBmZCk7Ci1pbnQgcGVyZl9ldmxpc3RfX2FsbG9jX3BvbGxmZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpOwotaW50IHBlcmZfZXZsaXN0X19maWx0ZXJfcG9sbGZkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgc2hvcnQgcmV2ZW50c19hbmRfbWFzayk7Ci0KLWludCBwZXJmX2V2bGlzdF9fcG9sbChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCB0aW1lb3V0KTsKK2ludCBldmxpc3RfX3BvbGwoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBpbnQgdGltZW91dCk7CiAKIHN0cnVjdCBldnNlbCAqcGVyZl9ldmxpc3RfX2lkMmV2c2VsKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgdTY0IGlkKTsKIHN0cnVjdCBldnNlbCAqcGVyZl9ldmxpc3RfX2lkMmV2c2VsX3N0cmljdChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCkBAIC0xMzksNyArMTUzLDcgQEAgc3RydWN0IHBlcmZfc2FtcGxlX2lkICpwZXJmX2V2bGlzdF9faWQyc2lkKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgdTY0IGlkKTsKIAogdm9pZCBwZXJmX2V2bGlzdF9fdG9nZ2xlX2Jrd19tbWFwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgZW51bSBia3dfbW1hcF9zdGF0ZSBzdGF0ZSk7CiAKLXZvaWQgcGVyZl9ldmxpc3RfX21tYXBfY29uc3VtZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCBpZHgpOwordm9pZCBldmxpc3RfX21tYXBfY29uc3VtZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCBpZHgpOwogCiBpbnQgZXZsaXN0X19vcGVuKHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7CiB2b2lkIGV2bGlzdF9fY2xvc2Uoc3RydWN0IGV2bGlzdCAqZXZsaXN0KTsKQEAgLTE3MCwxNCArMTg0LDE0IEBAIGludCBwZXJmX2V2bGlzdF9fcGFyc2VfbW1hcF9wYWdlcyhjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsCiAKIHVuc2lnbmVkIGxvbmcgcGVyZl9ldmVudF9tbG9ja19rYl9pbl9wYWdlcyh2b2lkKTsKIAotaW50IHBlcmZfZXZsaXN0X19tbWFwX2V4KHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgdW5zaWduZWQgaW50IHBhZ2VzLAoraW50IGV2bGlzdF9fbW1hcF9leChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHVuc2lnbmVkIGludCBwYWdlcywKIAkJCSB1bnNpZ25lZCBpbnQgYXV4dHJhY2VfcGFnZXMsCiAJCQkgYm9vbCBhdXh0cmFjZV9vdmVyd3JpdGUsIGludCBucl9jYmxvY2tzLAogCQkJIGludCBhZmZpbml0eSwgaW50IGZsdXNoLCBpbnQgY29tcF9sZXZlbCk7Ci1pbnQgcGVyZl9ldmxpc3RfX21tYXAoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCB1bnNpZ25lZCBpbnQgcGFnZXMpOwotdm9pZCBwZXJmX2V2bGlzdF9fbXVubWFwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7CitpbnQgZXZsaXN0X19tbWFwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgdW5zaWduZWQgaW50IHBhZ2VzKTsKK3ZvaWQgZXZsaXN0X19tdW5tYXAoc3RydWN0IGV2bGlzdCAqZXZsaXN0KTsKIAotc2l6ZV90IHBlcmZfZXZsaXN0X19tbWFwX3NpemUodW5zaWduZWQgbG9uZyBwYWdlcyk7CitzaXplX3QgZXZsaXN0X19tbWFwX3NpemUodW5zaWduZWQgbG9uZyBwYWdlcyk7CiAKIHZvaWQgZXZsaXN0X19kaXNhYmxlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7CiB2b2lkIGV2bGlzdF9fZW5hYmxlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7CkBAIC0xOTUsNyArMjA5LDYgQEAgaW50IHBlcmZfZXZsaXN0X19hcHBseV9maWx0ZXJzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgc3RydWN0IGV2c2VsICoqZXJyX2V2c2VsKTsKIHZvaWQgX19wZXJmX2V2bGlzdF9fc2V0X2xlYWRlcihzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KTsKIHZvaWQgcGVyZl9ldmxpc3RfX3NldF9sZWFkZXIoc3RydWN0IGV2bGlzdCAqZXZsaXN0KTsKIAotdTY0IHBlcmZfZXZsaXN0X19yZWFkX2Zvcm1hdChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpOwogdTY0IF9fcGVyZl9ldmxpc3RfX2NvbWJpbmVkX3NhbXBsZV90eXBlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7CiB1NjQgcGVyZl9ldmxpc3RfX2NvbWJpbmVkX3NhbXBsZV90eXBlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7CiB1NjQgcGVyZl9ldmxpc3RfX2NvbWJpbmVkX2JyYW5jaF90eXBlKHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7CkBAIC0yMjEsMTcgKzIzNCwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGVyZl9ldmxpc3RfX2VtcHR5KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAlyZXR1cm4gbGlzdF9lbXB0eSgmZXZsaXN0LT5jb3JlLmVudHJpZXMpOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBldnNlbCAqcGVyZl9ldmxpc3RfX2ZpcnN0KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGV2c2VsICpldmxpc3RfX2ZpcnN0KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIHsKLQlyZXR1cm4gbGlzdF9lbnRyeShldmxpc3QtPmNvcmUuZW50cmllcy5uZXh0LCBzdHJ1Y3QgZXZzZWwsIGNvcmUubm9kZSk7CisJc3RydWN0IHBlcmZfZXZzZWwgKmV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KCZldmxpc3QtPmNvcmUpOworCisJcmV0dXJuIGNvbnRhaW5lcl9vZihldnNlbCwgc3RydWN0IGV2c2VsLCBjb3JlKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgZXZzZWwgKnBlcmZfZXZsaXN0X19sYXN0KHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGV2c2VsICpldmxpc3RfX2xhc3Qoc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogewotCXJldHVybiBsaXN0X2VudHJ5KGV2bGlzdC0+Y29yZS5lbnRyaWVzLnByZXYsIHN0cnVjdCBldnNlbCwgY29yZS5ub2RlKTsKLX0KKwlzdHJ1Y3QgcGVyZl9ldnNlbCAqZXZzZWwgPSBwZXJmX2V2bGlzdF9fbGFzdCgmZXZsaXN0LT5jb3JlKTsKIAotc2l6ZV90IHBlcmZfZXZsaXN0X19mcHJpbnRmKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgRklMRSAqZnApOworCXJldHVybiBjb250YWluZXJfb2YoZXZzZWwsIHN0cnVjdCBldnNlbCwgY29yZSk7Cit9CiAKIGludCBwZXJmX2V2bGlzdF9fc3RyZXJyb3Jfb3BlbihzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCBlcnIsIGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUpOwogaW50IHBlcmZfZXZsaXN0X19zdHJlcnJvcl9tbWFwKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgaW50IGVyciwgY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSk7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvZXZzZWwuYyBiL3Rvb2xzL3BlcmYvdXRpbC9ldnNlbC5jCmluZGV4IDg1ODI1MzguLjU1OTFhZjggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9ldnNlbC5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9ldnNlbC5jCkBAIC0zMCw4ICszMCwxMCBAQAogI2luY2x1ZGUgImNvdW50cy5oIgogI2luY2x1ZGUgImV2ZW50LmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKKyNpbmNsdWRlICJ1dGlsL2V2c2VsX2NvbmZpZy5oIgorI2luY2x1ZGUgInV0aWwvZXZzZWxfZnByaW50Zi5oIgogI2luY2x1ZGUgImV2bGlzdC5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgorI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAjaW5jbHVkZSAidGhyZWFkX21hcC5oIgogI2luY2x1ZGUgInRhcmdldC5oIgogI2luY2x1ZGUgInBlcmZfcmVncy5oIgpAQCAtNDUsNiArNDcsNyBAQAogI2luY2x1ZGUgIi4uL3BlcmYtc3lzLmgiCiAjaW5jbHVkZSAidXRpbC9wYXJzZS1icmFuY2gtb3B0aW9ucy5oIgogI2luY2x1ZGUgPGludGVybmFsL3h5YXJyYXkuaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4KIAogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAKQEAgLTEyMjYsMzYgKzEyMjksNiBAQCBpbnQgZXZzZWxfX2Rpc2FibGUoc3RydWN0IGV2c2VsICpldnNlbCkKIAlyZXR1cm4gZXJyOwogfQogCi1pbnQgcGVyZl9ldnNlbF9fYWxsb2NfaWQoc3RydWN0IGV2c2VsICpldnNlbCwgaW50IG5jcHVzLCBpbnQgbnRocmVhZHMpCi17Ci0JaWYgKG5jcHVzID09IDAgfHwgbnRocmVhZHMgPT0gMCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoZXZzZWwtPnN5c3RlbV93aWRlKQotCQludGhyZWFkcyA9IDE7Ci0KLQlldnNlbC0+c2FtcGxlX2lkID0geHlhcnJheV9fbmV3KG5jcHVzLCBudGhyZWFkcywgc2l6ZW9mKHN0cnVjdCBwZXJmX3NhbXBsZV9pZCkpOwotCWlmIChldnNlbC0+c2FtcGxlX2lkID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZXZzZWwtPmlkID0gemFsbG9jKG5jcHVzICogbnRocmVhZHMgKiBzaXplb2YodTY0KSk7Ci0JaWYgKGV2c2VsLT5pZCA9PSBOVUxMKSB7Ci0JCXh5YXJyYXlfX2RlbGV0ZShldnNlbC0+c2FtcGxlX2lkKTsKLQkJZXZzZWwtPnNhbXBsZV9pZCA9IE5VTEw7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBwZXJmX2V2c2VsX19mcmVlX2lkKHN0cnVjdCBldnNlbCAqZXZzZWwpCi17Ci0JeHlhcnJheV9fZGVsZXRlKGV2c2VsLT5zYW1wbGVfaWQpOwotCWV2c2VsLT5zYW1wbGVfaWQgPSBOVUxMOwotCXpmcmVlKCZldnNlbC0+aWQpOwotCWV2c2VsLT5pZHMgPSAwOwotfQotCiBzdGF0aWMgdm9pZCBwZXJmX2V2c2VsX19mcmVlX2NvbmZpZ190ZXJtcyhzdHJ1Y3QgZXZzZWwgKmV2c2VsKQogewogCXN0cnVjdCBwZXJmX2V2c2VsX2NvbmZpZ190ZXJtICp0ZXJtLCAqaDsKQEAgLTEyNzIsNyArMTI0NSw3IEBAIHZvaWQgcGVyZl9ldnNlbF9fZXhpdChzdHJ1Y3QgZXZzZWwgKmV2c2VsKQogCWFzc2VydChldnNlbC0+ZXZsaXN0ID09IE5VTEwpOwogCXBlcmZfZXZzZWxfX2ZyZWVfY291bnRzKGV2c2VsKTsKIAlwZXJmX2V2c2VsX19mcmVlX2ZkKCZldnNlbC0+Y29yZSk7Ci0JcGVyZl9ldnNlbF9fZnJlZV9pZChldnNlbCk7CisJcGVyZl9ldnNlbF9fZnJlZV9pZCgmZXZzZWwtPmNvcmUpOwogCXBlcmZfZXZzZWxfX2ZyZWVfY29uZmlnX3Rlcm1zKGV2c2VsKTsKIAljZ3JvdXBfX3B1dChldnNlbC0+Y2dycCk7CiAJcGVyZl9jcHVfbWFwX19wdXQoZXZzZWwtPmNvcmUuY3B1cyk7CkBAIC0xNDcyLDE1MiArMTQ0NSw2IEBAIHN0YXRpYyBpbnQgZ2V0X2dyb3VwX2ZkKHN0cnVjdCBldnNlbCAqZXZzZWwsIGludCBjcHUsIGludCB0aHJlYWQpCiAJcmV0dXJuIGZkOwogfQogCi1zdHJ1Y3QgYml0X25hbWVzIHsKLQlpbnQgYml0OwotCWNvbnN0IGNoYXIgKm5hbWU7Ci19OwotCi1zdGF0aWMgdm9pZCBfX3BfYml0cyhjaGFyICpidWYsIHNpemVfdCBzaXplLCB1NjQgdmFsdWUsIHN0cnVjdCBiaXRfbmFtZXMgKmJpdHMpCi17Ci0JYm9vbCBmaXJzdF9iaXQgPSB0cnVlOwotCWludCBpID0gMDsKLQotCWRvIHsKLQkJaWYgKHZhbHVlICYgYml0c1tpXS5iaXQpIHsKLQkJCWJ1ZiArPSBzY25wcmludGYoYnVmLCBzaXplLCAiJXMlcyIsIGZpcnN0X2JpdCA/ICIiIDogInwiLCBiaXRzW2ldLm5hbWUpOwotCQkJZmlyc3RfYml0ID0gZmFsc2U7Ci0JCX0KLQl9IHdoaWxlIChiaXRzWysraV0ubmFtZSAhPSBOVUxMKTsKLX0KLQotc3RhdGljIHZvaWQgX19wX3NhbXBsZV90eXBlKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIHU2NCB2YWx1ZSkKLXsKLSNkZWZpbmUgYml0X25hbWUobikgeyBQRVJGX1NBTVBMRV8jI24sICNuIH0KLQlzdHJ1Y3QgYml0X25hbWVzIGJpdHNbXSA9IHsKLQkJYml0X25hbWUoSVApLCBiaXRfbmFtZShUSUQpLCBiaXRfbmFtZShUSU1FKSwgYml0X25hbWUoQUREUiksCi0JCWJpdF9uYW1lKFJFQUQpLCBiaXRfbmFtZShDQUxMQ0hBSU4pLCBiaXRfbmFtZShJRCksIGJpdF9uYW1lKENQVSksCi0JCWJpdF9uYW1lKFBFUklPRCksIGJpdF9uYW1lKFNUUkVBTV9JRCksIGJpdF9uYW1lKFJBVyksCi0JCWJpdF9uYW1lKEJSQU5DSF9TVEFDSyksIGJpdF9uYW1lKFJFR1NfVVNFUiksIGJpdF9uYW1lKFNUQUNLX1VTRVIpLAotCQliaXRfbmFtZShJREVOVElGSUVSKSwgYml0X25hbWUoUkVHU19JTlRSKSwgYml0X25hbWUoREFUQV9TUkMpLAotCQliaXRfbmFtZShXRUlHSFQpLCBiaXRfbmFtZShQSFlTX0FERFIpLAotCQl7IC5uYW1lID0gTlVMTCwgfQotCX07Ci0jdW5kZWYgYml0X25hbWUKLQlfX3BfYml0cyhidWYsIHNpemUsIHZhbHVlLCBiaXRzKTsKLX0KLQotc3RhdGljIHZvaWQgX19wX2JyYW5jaF9zYW1wbGVfdHlwZShjaGFyICpidWYsIHNpemVfdCBzaXplLCB1NjQgdmFsdWUpCi17Ci0jZGVmaW5lIGJpdF9uYW1lKG4pIHsgUEVSRl9TQU1QTEVfQlJBTkNIXyMjbiwgI24gfQotCXN0cnVjdCBiaXRfbmFtZXMgYml0c1tdID0gewotCQliaXRfbmFtZShVU0VSKSwgYml0X25hbWUoS0VSTkVMKSwgYml0X25hbWUoSFYpLCBiaXRfbmFtZShBTlkpLAotCQliaXRfbmFtZShBTllfQ0FMTCksIGJpdF9uYW1lKEFOWV9SRVRVUk4pLCBiaXRfbmFtZShJTkRfQ0FMTCksCi0JCWJpdF9uYW1lKEFCT1JUX1RYKSwgYml0X25hbWUoSU5fVFgpLCBiaXRfbmFtZShOT19UWCksCi0JCWJpdF9uYW1lKENPTkQpLCBiaXRfbmFtZShDQUxMX1NUQUNLKSwgYml0X25hbWUoSU5EX0pVTVApLAotCQliaXRfbmFtZShDQUxMKSwgYml0X25hbWUoTk9fRkxBR1MpLCBiaXRfbmFtZShOT19DWUNMRVMpLAotCQl7IC5uYW1lID0gTlVMTCwgfQotCX07Ci0jdW5kZWYgYml0X25hbWUKLQlfX3BfYml0cyhidWYsIHNpemUsIHZhbHVlLCBiaXRzKTsKLX0KLQotc3RhdGljIHZvaWQgX19wX3JlYWRfZm9ybWF0KGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIHU2NCB2YWx1ZSkKLXsKLSNkZWZpbmUgYml0X25hbWUobikgeyBQRVJGX0ZPUk1BVF8jI24sICNuIH0KLQlzdHJ1Y3QgYml0X25hbWVzIGJpdHNbXSA9IHsKLQkJYml0X25hbWUoVE9UQUxfVElNRV9FTkFCTEVEKSwgYml0X25hbWUoVE9UQUxfVElNRV9SVU5OSU5HKSwKLQkJYml0X25hbWUoSUQpLCBiaXRfbmFtZShHUk9VUCksCi0JCXsgLm5hbWUgPSBOVUxMLCB9Ci0JfTsKLSN1bmRlZiBiaXRfbmFtZQotCV9fcF9iaXRzKGJ1Ziwgc2l6ZSwgdmFsdWUsIGJpdHMpOwotfQotCi0jZGVmaW5lIEJVRl9TSVpFCQkxMDI0Ci0KLSNkZWZpbmUgcF9oZXgodmFsKQkJc25wcmludGYoYnVmLCBCVUZfU0laRSwgIiUjIlBSSXg2NCwgKHVpbnQ2NF90KSh2YWwpKQotI2RlZmluZSBwX3Vuc2lnbmVkKHZhbCkJCXNucHJpbnRmKGJ1ZiwgQlVGX1NJWkUsICIlIlBSSXU2NCwgKHVpbnQ2NF90KSh2YWwpKQotI2RlZmluZSBwX3NpZ25lZCh2YWwpCQlzbnByaW50ZihidWYsIEJVRl9TSVpFLCAiJSJQUklkNjQsIChpbnQ2NF90KSh2YWwpKQotI2RlZmluZSBwX3NhbXBsZV90eXBlKHZhbCkJX19wX3NhbXBsZV90eXBlKGJ1ZiwgQlVGX1NJWkUsIHZhbCkKLSNkZWZpbmUgcF9icmFuY2hfc2FtcGxlX3R5cGUodmFsKSBfX3BfYnJhbmNoX3NhbXBsZV90eXBlKGJ1ZiwgQlVGX1NJWkUsIHZhbCkKLSNkZWZpbmUgcF9yZWFkX2Zvcm1hdCh2YWwpCV9fcF9yZWFkX2Zvcm1hdChidWYsIEJVRl9TSVpFLCB2YWwpCi0KLSNkZWZpbmUgUFJJTlRfQVRUUm4oX24sIF9mLCBfcCkJCQkJXAotZG8gewkJCQkJCQlcCi0JaWYgKGF0dHItPl9mKSB7CQkJCQlcCi0JCV9wKGF0dHItPl9mKTsJCQkJXAotCQlyZXQgKz0gYXR0cl9fZnByaW50ZihmcCwgX24sIGJ1ZiwgcHJpdik7XAotCX0JCQkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFBSSU5UX0FUVFJmKF9mLCBfcCkJUFJJTlRfQVRUUm4oI19mLCBfZiwgX3ApCi0KLWludCBwZXJmX2V2ZW50X2F0dHJfX2ZwcmludGYoRklMRSAqZnAsIHN0cnVjdCBwZXJmX2V2ZW50X2F0dHIgKmF0dHIsCi0JCQkgICAgIGF0dHJfX2ZwcmludGZfZiBhdHRyX19mcHJpbnRmLCB2b2lkICpwcml2KQotewotCWNoYXIgYnVmW0JVRl9TSVpFXTsKLQlpbnQgcmV0ID0gMDsKLQotCVBSSU5UX0FUVFJmKHR5cGUsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKHNpemUsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGNvbmZpZywgcF9oZXgpOwotCVBSSU5UX0FUVFJuKCJ7IHNhbXBsZV9wZXJpb2QsIHNhbXBsZV9mcmVxIH0iLCBzYW1wbGVfcGVyaW9kLCBwX3Vuc2lnbmVkKTsKLQlQUklOVF9BVFRSZihzYW1wbGVfdHlwZSwgcF9zYW1wbGVfdHlwZSk7Ci0JUFJJTlRfQVRUUmYocmVhZF9mb3JtYXQsIHBfcmVhZF9mb3JtYXQpOwotCi0JUFJJTlRfQVRUUmYoZGlzYWJsZWQsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGluaGVyaXQsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKHBpbm5lZCwgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYoZXhjbHVzaXZlLCBwX3Vuc2lnbmVkKTsKLQlQUklOVF9BVFRSZihleGNsdWRlX3VzZXIsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGV4Y2x1ZGVfa2VybmVsLCBwX3Vuc2lnbmVkKTsKLQlQUklOVF9BVFRSZihleGNsdWRlX2h2LCBwX3Vuc2lnbmVkKTsKLQlQUklOVF9BVFRSZihleGNsdWRlX2lkbGUsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKG1tYXAsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGNvbW0sIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGZyZXEsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGluaGVyaXRfc3RhdCwgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYoZW5hYmxlX29uX2V4ZWMsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKHRhc2ssIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKHdhdGVybWFyaywgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYocHJlY2lzZV9pcCwgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYobW1hcF9kYXRhLCBwX3Vuc2lnbmVkKTsKLQlQUklOVF9BVFRSZihzYW1wbGVfaWRfYWxsLCBwX3Vuc2lnbmVkKTsKLQlQUklOVF9BVFRSZihleGNsdWRlX2hvc3QsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGV4Y2x1ZGVfZ3Vlc3QsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGV4Y2x1ZGVfY2FsbGNoYWluX2tlcm5lbCwgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYoZXhjbHVkZV9jYWxsY2hhaW5fdXNlciwgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYobW1hcDIsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGNvbW1fZXhlYywgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYodXNlX2Nsb2NraWQsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGNvbnRleHRfc3dpdGNoLCBwX3Vuc2lnbmVkKTsKLQlQUklOVF9BVFRSZih3cml0ZV9iYWNrd2FyZCwgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYobmFtZXNwYWNlcywgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYoa3N5bWJvbCwgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYoYnBmX2V2ZW50LCBwX3Vuc2lnbmVkKTsKLQlQUklOVF9BVFRSZihhdXhfb3V0cHV0LCBwX3Vuc2lnbmVkKTsKLQotCVBSSU5UX0FUVFJuKCJ7IHdha2V1cF9ldmVudHMsIHdha2V1cF93YXRlcm1hcmsgfSIsIHdha2V1cF9ldmVudHMsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJmKGJwX3R5cGUsIHBfdW5zaWduZWQpOwotCVBSSU5UX0FUVFJuKCJ7IGJwX2FkZHIsIGNvbmZpZzEgfSIsIGJwX2FkZHIsIHBfaGV4KTsKLQlQUklOVF9BVFRSbigieyBicF9sZW4sIGNvbmZpZzIgfSIsIGJwX2xlbiwgcF9oZXgpOwotCVBSSU5UX0FUVFJmKGJyYW5jaF9zYW1wbGVfdHlwZSwgcF9icmFuY2hfc2FtcGxlX3R5cGUpOwotCVBSSU5UX0FUVFJmKHNhbXBsZV9yZWdzX3VzZXIsIHBfaGV4KTsKLQlQUklOVF9BVFRSZihzYW1wbGVfc3RhY2tfdXNlciwgcF91bnNpZ25lZCk7Ci0JUFJJTlRfQVRUUmYoY2xvY2tpZCwgcF9zaWduZWQpOwotCVBSSU5UX0FUVFJmKHNhbXBsZV9yZWdzX2ludHIsIHBfaGV4KTsKLQlQUklOVF9BVFRSZihhdXhfd2F0ZXJtYXJrLCBwX3Vuc2lnbmVkKTsKLQlQUklOVF9BVFRSZihzYW1wbGVfbWF4X3N0YWNrLCBwX3Vuc2lnbmVkKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgX19vcGVuX2F0dHJfX2ZwcmludGYoRklMRSAqZnAsIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbCwKLQkJCQl2b2lkICpwcml2IF9fbWF5YmVfdW51c2VkKQotewotCXJldHVybiBmcHJpbnRmKGZwLCAiICAlLTMycyAlc1xuIiwgbmFtZSwgdmFsKTsKLX0KLQogc3RhdGljIHZvaWQgcGVyZl9ldnNlbF9fcmVtb3ZlX2ZkKHN0cnVjdCBldnNlbCAqcG9zLAogCQkJCSAgaW50IG5yX2NwdXMsIGludCBucl90aHJlYWRzLAogCQkJCSAgaW50IHRocmVhZF9pZHgpCkBAIC0xNjYyLDcgKzE0ODksNyBAQCBzdGF0aWMgYm9vbCBpZ25vcmVfbWlzc2luZ190aHJlYWQoc3RydWN0IGV2c2VsICpldnNlbCwKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogVGhlIHN5c3RlbSB3aWRlIHNldHVwIGRvZXMgbm90IHdvcmsgd2l0aCB0aHJlYWRzLiAqLwotCWlmIChldnNlbC0+c3lzdGVtX3dpZGUpCisJaWYgKGV2c2VsLT5jb3JlLnN5c3RlbV93aWRlKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBUaGUgLUVTUkNIIGlzIHBlcmYgZXZlbnQgc3lzY2FsbCBlcnJubyBmb3IgcGlkJ3Mgbm90IGZvdW5kLiAqLwpAQCAtMTY4OCw2ICsxNTE1LDEyIEBAIHN0YXRpYyBib29sIGlnbm9yZV9taXNzaW5nX3RocmVhZChzdHJ1Y3QgZXZzZWwgKmV2c2VsLAogCXJldHVybiB0cnVlOwogfQogCitzdGF0aWMgaW50IF9fb3Blbl9hdHRyX19mcHJpbnRmKEZJTEUgKmZwLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWwsCisJCQkJdm9pZCAqcHJpdiBfX21heWJlX3VudXNlZCkKK3sKKwlyZXR1cm4gZnByaW50ZihmcCwgIiAgJS0zMnMgJXNcbiIsIG5hbWUsIHZhbCk7Cit9CisKIHN0YXRpYyB2b2lkIGRpc3BsYXlfYXR0cihzdHJ1Y3QgcGVyZl9ldmVudF9hdHRyICphdHRyKQogewogCWlmICh2ZXJib3NlID49IDIpIHsKQEAgLTE3NzEsNyArMTYwNCw3IEBAIGludCBldnNlbF9fb3BlbihzdHJ1Y3QgZXZzZWwgKmV2c2VsLCBzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzLAogCQl0aHJlYWRzID0gZW1wdHlfdGhyZWFkX21hcDsKIAl9CiAKLQlpZiAoZXZzZWwtPnN5c3RlbV93aWRlKQorCWlmIChldnNlbC0+Y29yZS5zeXN0ZW1fd2lkZSkKIAkJbnRocmVhZHMgPSAxOwogCWVsc2UKIAkJbnRocmVhZHMgPSB0aHJlYWRzLT5ucjsKQEAgLTE4MTgsNyArMTY1MSw3IEBAIGludCBldnNlbF9fb3BlbihzdHJ1Y3QgZXZzZWwgKmV2c2VsLCBzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzLAogCQlmb3IgKHRocmVhZCA9IDA7IHRocmVhZCA8IG50aHJlYWRzOyB0aHJlYWQrKykgewogCQkJaW50IGZkLCBncm91cF9mZDsKIAotCQkJaWYgKCFldnNlbC0+Y2dycCAmJiAhZXZzZWwtPnN5c3RlbV93aWRlKQorCQkJaWYgKCFldnNlbC0+Y2dycCAmJiAhZXZzZWwtPmNvcmUuc3lzdGVtX3dpZGUpCiAJCQkJcGlkID0gcGVyZl90aHJlYWRfbWFwX19waWQodGhyZWFkcywgdGhyZWFkKTsKIAogCQkJZ3JvdXBfZmQgPSBnZXRfZ3JvdXBfZmQoZXZzZWwsIGNwdSwgdGhyZWFkKTsKQEAgLTE5OTEsNyArMTgyNCw3IEBAIGludCBldnNlbF9fb3BlbihzdHJ1Y3QgZXZzZWwgKmV2c2VsLCBzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzLAogdm9pZCBldnNlbF9fY2xvc2Uoc3RydWN0IGV2c2VsICpldnNlbCkKIHsKIAlwZXJmX2V2c2VsX19jbG9zZSgmZXZzZWwtPmNvcmUpOwotCXBlcmZfZXZzZWxfX2ZyZWVfaWQoZXZzZWwpOworCXBlcmZfZXZzZWxfX2ZyZWVfaWQoJmV2c2VsLT5jb3JlKTsKIH0KIAogaW50IHBlcmZfZXZzZWxfX29wZW5fcGVyX2NwdShzdHJ1Y3QgZXZzZWwgKmV2c2VsLApAQCAtMjQxOSwyODMgKzIyNTIsNiBAQCBpbnQgcGVyZl9ldnNlbF9fcGFyc2Vfc2FtcGxlX3RpbWVzdGFtcChzdHJ1Y3QgZXZzZWwgKmV2c2VsLAogCXJldHVybiAwOwogfQogCi1zaXplX3QgcGVyZl9ldmVudF9fc2FtcGxlX2V2ZW50X3NpemUoY29uc3Qgc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsIHU2NCB0eXBlLAotCQkJCSAgICAgdTY0IHJlYWRfZm9ybWF0KQotewotCXNpemVfdCBzeiwgcmVzdWx0ID0gc2l6ZW9mKHN0cnVjdCBwZXJmX3JlY29yZF9zYW1wbGUpOwotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9JREVOVElGSUVSKQotCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0lQKQotCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1RJRCkKLQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOwotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9USU1FKQotCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0FERFIpCi0JCXJlc3VsdCArPSBzaXplb2YodTY0KTsKLQotCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfSUQpCi0JCXJlc3VsdCArPSBzaXplb2YodTY0KTsKLQotCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfU1RSRUFNX0lEKQotCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0NQVSkKLQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOwotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9QRVJJT0QpCi0JCXJlc3VsdCArPSBzaXplb2YodTY0KTsKLQotCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfUkVBRCkgewotCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7Ci0JCWlmIChyZWFkX2Zvcm1hdCAmIFBFUkZfRk9STUFUX1RPVEFMX1RJTUVfRU5BQkxFRCkKLQkJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKLQkJaWYgKHJlYWRfZm9ybWF0ICYgUEVSRl9GT1JNQVRfVE9UQUxfVElNRV9SVU5OSU5HKQotCQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOwotCQkvKiBQRVJGX0ZPUk1BVF9JRCBpcyBmb3JjZWQgZm9yIFBFUkZfU0FNUExFX1JFQUQgKi8KLQkJaWYgKHJlYWRfZm9ybWF0ICYgUEVSRl9GT1JNQVRfR1JPVVApIHsKLQkJCXN6ID0gc2FtcGxlLT5yZWFkLmdyb3VwLm5yICoKLQkJCSAgICAgc2l6ZW9mKHN0cnVjdCBzYW1wbGVfcmVhZF92YWx1ZSk7Ci0JCQlyZXN1bHQgKz0gc3o7Ci0JCX0gZWxzZSB7Ci0JCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7Ci0JCX0KLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0NBTExDSEFJTikgewotCQlzeiA9IChzYW1wbGUtPmNhbGxjaGFpbi0+bnIgKyAxKSAqIHNpemVvZih1NjQpOwotCQlyZXN1bHQgKz0gc3o7Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9SQVcpIHsKLQkJcmVzdWx0ICs9IHNpemVvZih1MzIpOwotCQlyZXN1bHQgKz0gc2FtcGxlLT5yYXdfc2l6ZTsKLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0JSQU5DSF9TVEFDSykgewotCQlzeiA9IHNhbXBsZS0+YnJhbmNoX3N0YWNrLT5uciAqIHNpemVvZihzdHJ1Y3QgYnJhbmNoX2VudHJ5KTsKLQkJc3ogKz0gc2l6ZW9mKHU2NCk7Ci0JCXJlc3VsdCArPSBzejsKLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1JFR1NfVVNFUikgewotCQlpZiAoc2FtcGxlLT51c2VyX3JlZ3MuYWJpKSB7Ci0JCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7Ci0JCQlzeiA9IGh3ZWlnaHQ2NChzYW1wbGUtPnVzZXJfcmVncy5tYXNrKSAqIHNpemVvZih1NjQpOwotCQkJcmVzdWx0ICs9IHN6OwotCQl9IGVsc2UgewotCQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOwotCQl9Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9TVEFDS19VU0VSKSB7Ci0JCXN6ID0gc2FtcGxlLT51c2VyX3N0YWNrLnNpemU7Ci0JCXJlc3VsdCArPSBzaXplb2YodTY0KTsKLQkJaWYgKHN6KSB7Ci0JCQlyZXN1bHQgKz0gc3o7Ci0JCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7Ci0JCX0KLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1dFSUdIVCkKLQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOwotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9EQVRBX1NSQykKLQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOwotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9UUkFOU0FDVElPTikKLQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOwotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9SRUdTX0lOVFIpIHsKLQkJaWYgKHNhbXBsZS0+aW50cl9yZWdzLmFiaSkgewotCQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOwotCQkJc3ogPSBod2VpZ2h0NjQoc2FtcGxlLT5pbnRyX3JlZ3MubWFzaykgKiBzaXplb2YodTY0KTsKLQkJCXJlc3VsdCArPSBzejsKLQkJfSBlbHNlIHsKLQkJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKLQkJfQotCX0KLQotCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfUEhZU19BRERSKQotCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7Ci0KLQlyZXR1cm4gcmVzdWx0OwotfQotCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9zYW1wbGUodW5pb24gcGVyZl9ldmVudCAqZXZlbnQsIHU2NCB0eXBlLAotCQkJCSAgdTY0IHJlYWRfZm9ybWF0LAotCQkJCSAgY29uc3Qgc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUpCi17Ci0JX191NjQgKmFycmF5OwotCXNpemVfdCBzejsKLQkvKgotCSAqIHVzZWQgZm9yIGNyb3NzLWVuZGlhbiBhbmFseXNpcy4gU2VlIGdpdCBjb21taXQgNjUwMTRhYjMKLQkgKiBmb3Igd2h5IHRoaXMgZ29vZmluZXNzIGlzIG5lZWRlZC4KLQkgKi8KLQl1bmlvbiB1NjRfc3dhcCB1OwotCi0JYXJyYXkgPSBldmVudC0+c2FtcGxlLmFycmF5OwotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9JREVOVElGSUVSKSB7Ci0JCSphcnJheSA9IHNhbXBsZS0+aWQ7Ci0JCWFycmF5Kys7Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9JUCkgewotCQkqYXJyYXkgPSBzYW1wbGUtPmlwOwotCQlhcnJheSsrOwotCX0KLQotCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfVElEKSB7Ci0JCXUudmFsMzJbMF0gPSBzYW1wbGUtPnBpZDsKLQkJdS52YWwzMlsxXSA9IHNhbXBsZS0+dGlkOwotCQkqYXJyYXkgPSB1LnZhbDY0OwotCQlhcnJheSsrOwotCX0KLQotCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfVElNRSkgewotCQkqYXJyYXkgPSBzYW1wbGUtPnRpbWU7Ci0JCWFycmF5Kys7Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9BRERSKSB7Ci0JCSphcnJheSA9IHNhbXBsZS0+YWRkcjsKLQkJYXJyYXkrKzsKLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0lEKSB7Ci0JCSphcnJheSA9IHNhbXBsZS0+aWQ7Ci0JCWFycmF5Kys7Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9TVFJFQU1fSUQpIHsKLQkJKmFycmF5ID0gc2FtcGxlLT5zdHJlYW1faWQ7Ci0JCWFycmF5Kys7Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9DUFUpIHsKLQkJdS52YWwzMlswXSA9IHNhbXBsZS0+Y3B1OwotCQl1LnZhbDMyWzFdID0gMDsKLQkJKmFycmF5ID0gdS52YWw2NDsKLQkJYXJyYXkrKzsKLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1BFUklPRCkgewotCQkqYXJyYXkgPSBzYW1wbGUtPnBlcmlvZDsKLQkJYXJyYXkrKzsKLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1JFQUQpIHsKLQkJaWYgKHJlYWRfZm9ybWF0ICYgUEVSRl9GT1JNQVRfR1JPVVApCi0JCQkqYXJyYXkgPSBzYW1wbGUtPnJlYWQuZ3JvdXAubnI7Ci0JCWVsc2UKLQkJCSphcnJheSA9IHNhbXBsZS0+cmVhZC5vbmUudmFsdWU7Ci0JCWFycmF5Kys7Ci0KLQkJaWYgKHJlYWRfZm9ybWF0ICYgUEVSRl9GT1JNQVRfVE9UQUxfVElNRV9FTkFCTEVEKSB7Ci0JCQkqYXJyYXkgPSBzYW1wbGUtPnJlYWQudGltZV9lbmFibGVkOwotCQkJYXJyYXkrKzsKLQkJfQotCi0JCWlmIChyZWFkX2Zvcm1hdCAmIFBFUkZfRk9STUFUX1RPVEFMX1RJTUVfUlVOTklORykgewotCQkJKmFycmF5ID0gc2FtcGxlLT5yZWFkLnRpbWVfcnVubmluZzsKLQkJCWFycmF5Kys7Ci0JCX0KLQotCQkvKiBQRVJGX0ZPUk1BVF9JRCBpcyBmb3JjZWQgZm9yIFBFUkZfU0FNUExFX1JFQUQgKi8KLQkJaWYgKHJlYWRfZm9ybWF0ICYgUEVSRl9GT1JNQVRfR1JPVVApIHsKLQkJCXN6ID0gc2FtcGxlLT5yZWFkLmdyb3VwLm5yICoKLQkJCSAgICAgc2l6ZW9mKHN0cnVjdCBzYW1wbGVfcmVhZF92YWx1ZSk7Ci0JCQltZW1jcHkoYXJyYXksIHNhbXBsZS0+cmVhZC5ncm91cC52YWx1ZXMsIHN6KTsKLQkJCWFycmF5ID0gKHZvaWQgKilhcnJheSArIHN6OwotCQl9IGVsc2UgewotCQkJKmFycmF5ID0gc2FtcGxlLT5yZWFkLm9uZS5pZDsKLQkJCWFycmF5Kys7Ci0JCX0KLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0NBTExDSEFJTikgewotCQlzeiA9IChzYW1wbGUtPmNhbGxjaGFpbi0+bnIgKyAxKSAqIHNpemVvZih1NjQpOwotCQltZW1jcHkoYXJyYXksIHNhbXBsZS0+Y2FsbGNoYWluLCBzeik7Ci0JCWFycmF5ID0gKHZvaWQgKilhcnJheSArIHN6OwotCX0KLQotCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfUkFXKSB7Ci0JCXUudmFsMzJbMF0gPSBzYW1wbGUtPnJhd19zaXplOwotCQkqYXJyYXkgPSB1LnZhbDY0OwotCQlhcnJheSA9ICh2b2lkICopYXJyYXkgKyBzaXplb2YodTMyKTsKLQotCQltZW1jcHkoYXJyYXksIHNhbXBsZS0+cmF3X2RhdGEsIHNhbXBsZS0+cmF3X3NpemUpOwotCQlhcnJheSA9ICh2b2lkICopYXJyYXkgKyBzYW1wbGUtPnJhd19zaXplOwotCX0KLQotCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfQlJBTkNIX1NUQUNLKSB7Ci0JCXN6ID0gc2FtcGxlLT5icmFuY2hfc3RhY2stPm5yICogc2l6ZW9mKHN0cnVjdCBicmFuY2hfZW50cnkpOwotCQlzeiArPSBzaXplb2YodTY0KTsKLQkJbWVtY3B5KGFycmF5LCBzYW1wbGUtPmJyYW5jaF9zdGFjaywgc3opOwotCQlhcnJheSA9ICh2b2lkICopYXJyYXkgKyBzejsKLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1JFR1NfVVNFUikgewotCQlpZiAoc2FtcGxlLT51c2VyX3JlZ3MuYWJpKSB7Ci0JCQkqYXJyYXkrKyA9IHNhbXBsZS0+dXNlcl9yZWdzLmFiaTsKLQkJCXN6ID0gaHdlaWdodDY0KHNhbXBsZS0+dXNlcl9yZWdzLm1hc2spICogc2l6ZW9mKHU2NCk7Ci0JCQltZW1jcHkoYXJyYXksIHNhbXBsZS0+dXNlcl9yZWdzLnJlZ3MsIHN6KTsKLQkJCWFycmF5ID0gKHZvaWQgKilhcnJheSArIHN6OwotCQl9IGVsc2UgewotCQkJKmFycmF5KysgPSAwOwotCQl9Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9TVEFDS19VU0VSKSB7Ci0JCXN6ID0gc2FtcGxlLT51c2VyX3N0YWNrLnNpemU7Ci0JCSphcnJheSsrID0gc3o7Ci0JCWlmIChzeikgewotCQkJbWVtY3B5KGFycmF5LCBzYW1wbGUtPnVzZXJfc3RhY2suZGF0YSwgc3opOwotCQkJYXJyYXkgPSAodm9pZCAqKWFycmF5ICsgc3o7Ci0JCQkqYXJyYXkrKyA9IHN6OwotCQl9Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9XRUlHSFQpIHsKLQkJKmFycmF5ID0gc2FtcGxlLT53ZWlnaHQ7Ci0JCWFycmF5Kys7Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9EQVRBX1NSQykgewotCQkqYXJyYXkgPSBzYW1wbGUtPmRhdGFfc3JjOwotCQlhcnJheSsrOwotCX0KLQotCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfVFJBTlNBQ1RJT04pIHsKLQkJKmFycmF5ID0gc2FtcGxlLT50cmFuc2FjdGlvbjsKLQkJYXJyYXkrKzsKLQl9Ci0KLQlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1JFR1NfSU5UUikgewotCQlpZiAoc2FtcGxlLT5pbnRyX3JlZ3MuYWJpKSB7Ci0JCQkqYXJyYXkrKyA9IHNhbXBsZS0+aW50cl9yZWdzLmFiaTsKLQkJCXN6ID0gaHdlaWdodDY0KHNhbXBsZS0+aW50cl9yZWdzLm1hc2spICogc2l6ZW9mKHU2NCk7Ci0JCQltZW1jcHkoYXJyYXksIHNhbXBsZS0+aW50cl9yZWdzLnJlZ3MsIHN6KTsKLQkJCWFycmF5ID0gKHZvaWQgKilhcnJheSArIHN6OwotCQl9IGVsc2UgewotCQkJKmFycmF5KysgPSAwOwotCQl9Ci0JfQotCi0JaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9QSFlTX0FERFIpIHsKLQkJKmFycmF5ID0gc2FtcGxlLT5waHlzX2FkZHI7Ci0JCWFycmF5Kys7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0cnVjdCB0ZXBfZm9ybWF0X2ZpZWxkICpwZXJmX2V2c2VsX19maWVsZChzdHJ1Y3QgZXZzZWwgKmV2c2VsLCBjb25zdCBjaGFyICpuYW1lKQogewogCXJldHVybiB0ZXBfZmluZF9maWVsZChldnNlbC0+dHBfZm9ybWF0LCBuYW1lKTsKQEAgLTI4MTEsOSArMjM2NywxMSBAQCBib29sIHBlcmZfZXZzZWxfX2ZhbGxiYWNrKHN0cnVjdCBldnNlbCAqZXZzZWwsIGludCBlcnIsCiAJCWlmIChldnNlbC0+bmFtZSkKIAkJCWZyZWUoZXZzZWwtPm5hbWUpOwogCQlldnNlbC0+bmFtZSA9IG5ld19uYW1lOwotCQlzY25wcmludGYobXNnLCBtc2dzaXplLAotImtlcm5lbC5wZXJmX2V2ZW50X3BhcmFub2lkPSVkLCB0cnlpbmcgdG8gZmFsbCBiYWNrIHRvIGV4Y2x1ZGluZyBrZXJuZWwgc2FtcGxlcyIsIHBhcmFub2lkKTsKKwkJc2NucHJpbnRmKG1zZywgbXNnc2l6ZSwgImtlcm5lbC5wZXJmX2V2ZW50X3BhcmFub2lkPSVkLCB0cnlpbmcgIgorCQkJICAidG8gZmFsbCBiYWNrIHRvIGV4Y2x1ZGluZyBrZXJuZWwgYW5kIGh5cGVydmlzb3IgIgorCQkJICAiIHNhbXBsZXMiLCBwYXJhbm9pZCk7CiAJCWV2c2VsLT5jb3JlLmF0dHIuZXhjbHVkZV9rZXJuZWwgPSAxOworCQlldnNlbC0+Y29yZS5hdHRyLmV4Y2x1ZGVfaHYgICAgID0gMTsKIAogCQlyZXR1cm4gdHJ1ZTsKIAl9CkBAIC0yOTY2LDcgKzI1MjQsNyBAQCBzdGF0aWMgaW50IHN0b3JlX2V2c2VsX2lkcyhzdHJ1Y3QgZXZzZWwgKmV2c2VsLCBzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCiAJCSAgICAgdGhyZWFkKyspIHsKIAkJCWludCBmZCA9IEZEKGV2c2VsLCBjcHUsIHRocmVhZCk7CiAKLQkJCWlmIChwZXJmX2V2bGlzdF9faWRfYWRkX2ZkKGV2bGlzdCwgZXZzZWwsCisJCQlpZiAocGVyZl9ldmxpc3RfX2lkX2FkZF9mZCgmZXZsaXN0LT5jb3JlLCAmZXZzZWwtPmNvcmUsCiAJCQkJCQkgICBjcHUsIHRocmVhZCwgZmQpIDwgMCkKIAkJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTI5ODAsNyArMjUzOCw3IEBAIGludCBwZXJmX2V2c2VsX19zdG9yZV9pZHMoc3RydWN0IGV2c2VsICpldnNlbCwgc3RydWN0IGV2bGlzdCAqZXZsaXN0KQogCXN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMgPSBldnNlbC0+Y29yZS5jcHVzOwogCXN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHMgPSBldnNlbC0+Y29yZS50aHJlYWRzOwogCi0JaWYgKHBlcmZfZXZzZWxfX2FsbG9jX2lkKGV2c2VsLCBjcHVzLT5uciwgdGhyZWFkcy0+bnIpKQorCWlmIChwZXJmX2V2c2VsX19hbGxvY19pZCgmZXZzZWwtPmNvcmUsIGNwdXMtPm5yLCB0aHJlYWRzLT5ucikpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJcmV0dXJuIHN0b3JlX2V2c2VsX2lkcyhldnNlbCwgZXZsaXN0KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9ldnNlbC5oIGIvdG9vbHMvcGVyZi91dGlsL2V2c2VsLmgKaW5kZXggNjgzMjFkMS4uZGRjNWVlNiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2V2c2VsLmgKKysrIGIvdG9vbHMvcGVyZi91dGlsL2V2c2VsLmgKQEAgLTQsNyArNCw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8c3RkYm9vbC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvcGVyZl9ldmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CkBAIC0xMyw3OSArMTIsMTEgQEAKICNpbmNsdWRlICJzeW1ib2xfY29uZi5oIgogI2luY2x1ZGUgPGludGVybmFsL2NwdW1hcC5oPgogCi1zdHJ1Y3QgYWRkcl9sb2NhdGlvbjsKLXN0cnVjdCBldnNlbDsKLXVuaW9uIHBlcmZfZXZlbnQ7Ci0KLS8qCi0gKiBQZXIgZmQsIHRvIG1hcCBiYWNrIGZyb20gUEVSRl9TQU1QTEVfSUQgdG8gZXZzZWwsIG9ubHkgdXNlZCB3aGVuIHRoZXJlIGFyZQotICogbW9yZSB0aGFuIG9uZSBlbnRyeSBpbiB0aGUgZXZsaXN0LgotICovCi1zdHJ1Y3QgcGVyZl9zYW1wbGVfaWQgewotCXN0cnVjdCBobGlzdF9ub2RlIAlub2RlOwotCXU2NAkJIAlpZDsKLQlzdHJ1Y3QgZXZzZWwJCSpldnNlbDsKLSAgICAgICAvKgotCSogJ2lkeCcgd2lsbCBiZSB1c2VkIGZvciBBVVggYXJlYSBzYW1wbGluZy4gQSBzYW1wbGUgd2lsbCBoYXZlIEFVWCBhcmVhCi0JKiBkYXRhIHRoYXQgd2lsbCBiZSBxdWV1ZWQgZm9yIGRlY29kaW5nLCB3aGVyZSB0aGVyZSBhcmUgc2VwYXJhdGUKLQkqIHF1ZXVlcyBmb3IgZWFjaCBDUFUgKHBlci1jcHUgdHJhY2luZykgb3IgdGFzayAocGVyLXRocmVhZCB0cmFjaW5nKS4KLQkqIFRoZSBzYW1wbGUgSUQgY2FuIGJlIHVzZWQgdG8gbG9va3VwICdpZHgnIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IHRoZQotCSogcXVldWUgbnVtYmVyLgotCSovCi0JaW50CQkJaWR4OwotCWludAkJCWNwdTsKLQlwaWRfdAkJCXRpZDsKLQotCS8qIEhvbGRzIHRvdGFsIElEIHBlcmlvZCB2YWx1ZSBmb3IgUEVSRl9TQU1QTEVfUkVBRCBwcm9jZXNzaW5nLiAqLwotCXU2NAkJCXBlcmlvZDsKLX07Ci0KK3N0cnVjdCBicGZfb2JqZWN0Owogc3RydWN0IGNncm91cDsKLQotLyoKLSAqIFRoZSAnc3RydWN0IHBlcmZfZXZzZWxfY29uZmlnX3Rlcm0nIGlzIHVzZWQgdG8gcGFzcyBldmVudAotICogc3BlY2lmaWMgY29uZmlndXJhdGlvbiBkYXRhIHRvIHBlcmZfZXZzZWxfX2NvbmZpZyByb3V0aW5lLgotICogSXQgaXMgYWxsb2NhdGVkIHdpdGhpbiBldmVudCBwYXJzaW5nIGFuZCBhdHRhY2hlZCB0bwotICogcGVyZl9ldnNlbDo6Y29uZmlnX3Rlcm1zIGxpc3QgaGVhZC4KLSovCi1lbnVtIHRlcm1fdHlwZSB7Ci0JUEVSRl9FVlNFTF9fQ09ORklHX1RFUk1fUEVSSU9ELAotCVBFUkZfRVZTRUxfX0NPTkZJR19URVJNX0ZSRVEsCi0JUEVSRl9FVlNFTF9fQ09ORklHX1RFUk1fVElNRSwKLQlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9DQUxMR1JBUEgsCi0JUEVSRl9FVlNFTF9fQ09ORklHX1RFUk1fU1RBQ0tfVVNFUiwKLQlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9JTkhFUklULAotCVBFUkZfRVZTRUxfX0NPTkZJR19URVJNX01BWF9TVEFDSywKLQlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9NQVhfRVZFTlRTLAotCVBFUkZfRVZTRUxfX0NPTkZJR19URVJNX09WRVJXUklURSwKLQlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9EUlZfQ0ZHLAotCVBFUkZfRVZTRUxfX0NPTkZJR19URVJNX0JSQU5DSCwKLQlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9QRVJDT1JFLAotCVBFUkZfRVZTRUxfX0NPTkZJR19URVJNX0FVWF9PVVRQVVQsCi19OwotCi1zdHJ1Y3QgcGVyZl9ldnNlbF9jb25maWdfdGVybSB7Ci0Jc3RydWN0IGxpc3RfaGVhZAlsaXN0OwotCWVudW0gdGVybV90eXBlCXR5cGU7Ci0JdW5pb24gewotCQl1NjQJcGVyaW9kOwotCQl1NjQJZnJlcTsKLQkJYm9vbAl0aW1lOwotCQljaGFyCSpjYWxsZ3JhcGg7Ci0JCWNoYXIJKmRydl9jZmc7Ci0JCXU2NAlzdGFja191c2VyOwotCQlpbnQJbWF4X3N0YWNrOwotCQlib29sCWluaGVyaXQ7Ci0JCWJvb2wJb3ZlcndyaXRlOwotCQljaGFyCSpicmFuY2g7Ci0JCXVuc2lnbmVkIGxvbmcgbWF4X2V2ZW50czsKLQkJYm9vbAlwZXJjb3JlOwotCQlib29sCWF1eF9vdXRwdXQ7Ci0JfSB2YWw7Ci0JYm9vbCB3ZWFrOwotfTsKLQorc3RydWN0IHBlcmZfY291bnRzOwogc3RydWN0IHBlcmZfc3RhdF9ldnNlbDsKK3VuaW9uIHBlcmZfZXZlbnQ7CiAKIHR5cGVkZWYgaW50IChwZXJmX2V2c2VsX19zYl9jYl90KSh1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgdm9pZCAqZGF0YSk7CiAKQEAgLTk0LDEwICsyNSw2IEBAIGVudW0gcGVyZl90b29sX2V2ZW50IHsKIAlQRVJGX1RPT0xfRFVSQVRJT05fVElNRSA9IDEsCiB9OwogCi1zdHJ1Y3QgYnBmX29iamVjdDsKLXN0cnVjdCBwZXJmX2NvdW50czsKLXN0cnVjdCB4eWFycmF5OwotCiAvKiogc3RydWN0IGV2c2VsIC0gZXZlbnQgc2VsZWN0b3IKICAqCiAgKiBAZXZsaXN0IC0gZXZsaXN0IHRoaXMgZXZzZWwgaXMgaW4sIGlmIGl0IGlzIGluIG9uZS4KQEAgLTExNywxMiArNDQsOSBAQCBzdHJ1Y3QgZXZzZWwgewogCXN0cnVjdCBwZXJmX2V2c2VsCWNvcmU7CiAJc3RydWN0IGV2bGlzdAkqZXZsaXN0OwogCWNoYXIJCQkqZmlsdGVyOwotCXN0cnVjdCB4eWFycmF5CQkqc2FtcGxlX2lkOwotCXU2NAkJCSppZDsKIAlzdHJ1Y3QgcGVyZl9jb3VudHMJKmNvdW50czsKIAlzdHJ1Y3QgcGVyZl9jb3VudHMJKnByZXZfcmF3X2NvdW50czsKIAlpbnQJCQlpZHg7Ci0JdTMyCQkJaWRzOwogCXVuc2lnbmVkIGxvbmcJCW1heF9ldmVudHM7CiAJdW5zaWduZWQgbG9uZwkJbnJfZXZlbnRzX3ByaW50ZWQ7CiAJY2hhcgkJCSpuYW1lOwpAQCAtMTQ2LDcgKzcwLDYgQEAgc3RydWN0IGV2c2VsIHsKIAlib29sIAkJCWRpc2FibGVkOwogCWJvb2wJCQlub19hdXhfc2FtcGxlczsKIAlib29sCQkJaW1tZWRpYXRlOwotCWJvb2wJCQlzeXN0ZW1fd2lkZTsKIAlib29sCQkJdHJhY2tpbmc7CiAJYm9vbAkJCXBlcl9wa2c7CiAJYm9vbAkJCXByZWNpc2VfbWF4OwpAQCAtMTc5LDExICsxMDIsNiBAQCBzdHJ1Y3QgZXZzZWwgewogCX0gc2lkZV9iYW5kOwogfTsKIAotdW5pb24gdTY0X3N3YXAgewotCXU2NCB2YWw2NDsKLQl1MzIgdmFsMzJbMl07Ci19OwotCiBzdHJ1Y3QgcGVyZl9taXNzaW5nX2ZlYXR1cmVzIHsKIAlib29sIHNhbXBsZV9pZF9hbGw7CiAJYm9vbCBleGNsdWRlX2d1ZXN0OwpAQCAtMjgyLDggKzIwMCw2IEBAIGNvbnN0IGNoYXIgKnBlcmZfZXZzZWxfX25hbWUoc3RydWN0IGV2c2VsICpldnNlbCk7CiBjb25zdCBjaGFyICpwZXJmX2V2c2VsX19ncm91cF9uYW1lKHN0cnVjdCBldnNlbCAqZXZzZWwpOwogaW50IHBlcmZfZXZzZWxfX2dyb3VwX2Rlc2Moc3RydWN0IGV2c2VsICpldnNlbCwgY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSk7CiAKLWludCBwZXJmX2V2c2VsX19hbGxvY19pZChzdHJ1Y3QgZXZzZWwgKmV2c2VsLCBpbnQgbmNwdXMsIGludCBudGhyZWFkcyk7Ci0KIHZvaWQgX19wZXJmX2V2c2VsX19zZXRfc2FtcGxlX2JpdChzdHJ1Y3QgZXZzZWwgKmV2c2VsLAogCQkJCSAgZW51bSBwZXJmX2V2ZW50X3NhbXBsZV9mb3JtYXQgYml0KTsKIHZvaWQgX19wZXJmX2V2c2VsX19yZXNldF9zYW1wbGVfYml0KHN0cnVjdCBldnNlbCAqZXZzZWwsCkBAIC00MzksMzcgKzM1NSw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwZXJmX2V2c2VsX19pc19jbG9jayhzdHJ1Y3QgZXZzZWwgKmV2c2VsKQogCSAgICAgICBwZXJmX2V2c2VsX19tYXRjaChldnNlbCwgU09GVFdBUkUsIFNXX1RBU0tfQ0xPQ0spOwogfQogCi1zdHJ1Y3QgcGVyZl9hdHRyX2RldGFpbHMgewotCWJvb2wgZnJlcTsKLQlib29sIHZlcmJvc2U7Ci0JYm9vbCBldmVudF9ncm91cDsKLQlib29sIGZvcmNlOwotCWJvb2wgdHJhY2VfZmllbGRzOwotfTsKLQotaW50IHBlcmZfZXZzZWxfX2ZwcmludGYoc3RydWN0IGV2c2VsICpldnNlbCwKLQkJCXN0cnVjdCBwZXJmX2F0dHJfZGV0YWlscyAqZGV0YWlscywgRklMRSAqZnApOwotCi0jZGVmaW5lIEVWU0VMX19QUklOVF9JUAkJCSgxPDwwKQotI2RlZmluZSBFVlNFTF9fUFJJTlRfU1lNCQkoMTw8MSkKLSNkZWZpbmUgRVZTRUxfX1BSSU5UX0RTTwkJKDE8PDIpCi0jZGVmaW5lIEVWU0VMX19QUklOVF9TWU1PRkZTRVQJCSgxPDwzKQotI2RlZmluZSBFVlNFTF9fUFJJTlRfT05FTElORQkJKDE8PDQpCi0jZGVmaW5lIEVWU0VMX19QUklOVF9TUkNMSU5FCQkoMTw8NSkKLSNkZWZpbmUgRVZTRUxfX1BSSU5UX1VOS05PV05fQVNfQUREUgkoMTw8NikKLSNkZWZpbmUgRVZTRUxfX1BSSU5UX0NBTExDSEFJTl9BUlJPVwkoMTw8NykKLSNkZWZpbmUgRVZTRUxfX1BSSU5UX1NLSVBfSUdOT1JFRAkoMTw8OCkKLQotc3RydWN0IGNhbGxjaGFpbl9jdXJzb3I7Ci0KLWludCBzYW1wbGVfX2ZwcmludGZfY2FsbGNoYWluKHN0cnVjdCBwZXJmX3NhbXBsZSAqc2FtcGxlLCBpbnQgbGVmdF9hbGlnbm1lbnQsCi0JCQkgICAgICB1bnNpZ25lZCBpbnQgcHJpbnRfb3B0cywKLQkJCSAgICAgIHN0cnVjdCBjYWxsY2hhaW5fY3Vyc29yICpjdXJzb3IsIEZJTEUgKmZwKTsKLQotaW50IHNhbXBsZV9fZnByaW50Zl9zeW0oc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsIHN0cnVjdCBhZGRyX2xvY2F0aW9uICphbCwKLQkJCWludCBsZWZ0X2FsaWdubWVudCwgdW5zaWduZWQgaW50IHByaW50X29wdHMsCi0JCQlzdHJ1Y3QgY2FsbGNoYWluX2N1cnNvciAqY3Vyc29yLCBGSUxFICpmcCk7Ci0KIGJvb2wgcGVyZl9ldnNlbF9fZmFsbGJhY2soc3RydWN0IGV2c2VsICpldnNlbCwgaW50IGVyciwKIAkJCSAgY2hhciAqbXNnLCBzaXplX3QgbXNnc2l6ZSk7CiBpbnQgcGVyZl9ldnNlbF9fb3Blbl9zdHJlcnJvcihzdHJ1Y3QgZXZzZWwgKmV2c2VsLCBzdHJ1Y3QgdGFyZ2V0ICp0YXJnZXQsCkBAIC01MDIsMTEgKzM4Nyw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBldnNlbF9faGFzX2NhbGxjaGFpbihjb25zdCBzdHJ1Y3QgZXZzZWwgKmV2c2VsKQogCXJldHVybiAoZXZzZWwtPmNvcmUuYXR0ci5zYW1wbGVfdHlwZSAmIFBFUkZfU0FNUExFX0NBTExDSEFJTikgIT0gMDsKIH0KIAotdHlwZWRlZiBpbnQgKCphdHRyX19mcHJpbnRmX2YpKEZJTEUgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHZvaWQgKik7Ci0KLWludCBwZXJmX2V2ZW50X2F0dHJfX2ZwcmludGYoRklMRSAqZnAsIHN0cnVjdCBwZXJmX2V2ZW50X2F0dHIgKmF0dHIsCi0JCQkgICAgIGF0dHJfX2ZwcmludGZfZiBhdHRyX19mcHJpbnRmLCB2b2lkICpwcml2KTsKLQogc3RydWN0IHBlcmZfZW52ICpwZXJmX2V2c2VsX19lbnYoc3RydWN0IGV2c2VsICpldnNlbCk7CiAKIGludCBwZXJmX2V2c2VsX19zdG9yZV9pZHMoc3RydWN0IGV2c2VsICpldnNlbCwgc3RydWN0IGV2bGlzdCAqZXZsaXN0KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9ldnNlbF9jb25maWcuaCBiL3Rvb2xzL3BlcmYvdXRpbC9ldnNlbF9jb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTc2NDgwCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvcGVyZi91dGlsL2V2c2VsX2NvbmZpZy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisjaWZuZGVmIF9fUEVSRl9FVlNFTF9DT05GSUdfSAorI2RlZmluZSBfX1BFUkZfRVZTRUxfQ09ORklHX0ggMQorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisKKy8qCisgKiBUaGUgJ3N0cnVjdCBwZXJmX2V2c2VsX2NvbmZpZ190ZXJtJyBpcyB1c2VkIHRvIHBhc3MgZXZlbnQKKyAqIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZGF0YSB0byBwZXJmX2V2c2VsX19jb25maWcgcm91dGluZS4KKyAqIEl0IGlzIGFsbG9jYXRlZCB3aXRoaW4gZXZlbnQgcGFyc2luZyBhbmQgYXR0YWNoZWQgdG8KKyAqIHBlcmZfZXZzZWw6OmNvbmZpZ190ZXJtcyBsaXN0IGhlYWQuCisqLworZW51bSBldnNlbF90ZXJtX3R5cGUgeworCVBFUkZfRVZTRUxfX0NPTkZJR19URVJNX1BFUklPRCwKKwlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9GUkVRLAorCVBFUkZfRVZTRUxfX0NPTkZJR19URVJNX1RJTUUsCisJUEVSRl9FVlNFTF9fQ09ORklHX1RFUk1fQ0FMTEdSQVBILAorCVBFUkZfRVZTRUxfX0NPTkZJR19URVJNX1NUQUNLX1VTRVIsCisJUEVSRl9FVlNFTF9fQ09ORklHX1RFUk1fSU5IRVJJVCwKKwlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9NQVhfU1RBQ0ssCisJUEVSRl9FVlNFTF9fQ09ORklHX1RFUk1fTUFYX0VWRU5UUywKKwlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9PVkVSV1JJVEUsCisJUEVSRl9FVlNFTF9fQ09ORklHX1RFUk1fRFJWX0NGRywKKwlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9CUkFOQ0gsCisJUEVSRl9FVlNFTF9fQ09ORklHX1RFUk1fUEVSQ09SRSwKKwlQRVJGX0VWU0VMX19DT05GSUdfVEVSTV9BVVhfT1VUUFVULAorfTsKKworc3RydWN0IHBlcmZfZXZzZWxfY29uZmlnX3Rlcm0geworCXN0cnVjdCBsaXN0X2hlYWQgICAgICBsaXN0OworCWVudW0gZXZzZWxfdGVybV90eXBlICB0eXBlOworCXVuaW9uIHsKKwkJdTY0CSAgICAgIHBlcmlvZDsKKwkJdTY0CSAgICAgIGZyZXE7CisJCWJvb2wJICAgICAgdGltZTsKKwkJY2hhcgkgICAgICAqY2FsbGdyYXBoOworCQljaGFyCSAgICAgICpkcnZfY2ZnOworCQl1NjQJICAgICAgc3RhY2tfdXNlcjsKKwkJaW50CSAgICAgIG1heF9zdGFjazsKKwkJYm9vbAkgICAgICBpbmhlcml0OworCQlib29sCSAgICAgIG92ZXJ3cml0ZTsKKwkJY2hhcgkgICAgICAqYnJhbmNoOworCQl1bnNpZ25lZCBsb25nIG1heF9ldmVudHM7CisJCWJvb2wJICAgICAgcGVyY29yZTsKKwkJYm9vbAkgICAgICBhdXhfb3V0cHV0OworCX0gdmFsOworCWJvb2wgd2VhazsKK307CisjZW5kaWYgLy8gX19QRVJGX0VWU0VMX0NPTkZJR19ICmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvZXZzZWxfZnByaW50Zi5jIGIvdG9vbHMvcGVyZi91dGlsL2V2c2VsX2ZwcmludGYuYwppbmRleCA0OTZmZWMwLi4wMjhkZjdhIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvZXZzZWxfZnByaW50Zi5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9ldnNlbF9mcHJpbnRmLmMKQEAgLTQsNiArNCw4IEBACiAjaW5jbHVkZSA8c3RkYm9vbC5oPgogI2luY2x1ZGUgPHRyYWNlZXZlbnQvZXZlbnQtcGFyc2UuaD4KICNpbmNsdWRlICJldnNlbC5oIgorI2luY2x1ZGUgInV0aWwvZXZzZWxfZnByaW50Zi5oIgorI2luY2x1ZGUgInV0aWwvZXZlbnQuaCIKICNpbmNsdWRlICJjYWxsY2hhaW4uaCIKICNpbmNsdWRlICJtYXAuaCIKICNpbmNsdWRlICJzdHJsaXN0LmgiCkBAIC0xMDEsNyArMTAzLDcgQEAgaW50IHBlcmZfZXZzZWxfX2ZwcmludGYoc3RydWN0IGV2c2VsICpldnNlbCwKIAogaW50IHNhbXBsZV9fZnByaW50Zl9jYWxsY2hhaW4oc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsIGludCBsZWZ0X2FsaWdubWVudCwKIAkJCSAgICAgIHVuc2lnbmVkIGludCBwcmludF9vcHRzLCBzdHJ1Y3QgY2FsbGNoYWluX2N1cnNvciAqY3Vyc29yLAotCQkJICAgICAgRklMRSAqZnApCisJCQkgICAgICBzdHJ1Y3Qgc3RybGlzdCAqYnRfc3RvcF9saXN0LCBGSUxFICpmcCkKIHsKIAlpbnQgcHJpbnRlZCA9IDA7CiAJc3RydWN0IGNhbGxjaGFpbl9jdXJzb3Jfbm9kZSAqbm9kZTsKQEAgLTE3NCwxMCArMTc2LDggQEAgaW50IHNhbXBsZV9fZnByaW50Zl9jYWxsY2hhaW4oc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsIGludCBsZWZ0X2FsaWdubWVudCwKIAkJCQlwcmludGVkICs9IGZwcmludGYoZnAsICJcbiIpOwogCiAJCQkvKiBBZGQgc3JjY29kZSBoZXJlIHRvbz8gKi8KLQkJCWlmIChzeW1ib2xfY29uZi5idF9zdG9wX2xpc3QgJiYKLQkJCSAgICBub2RlLT5zeW0gJiYKLQkJCSAgICBzdHJsaXN0X19oYXNfZW50cnkoc3ltYm9sX2NvbmYuYnRfc3RvcF9saXN0LAotCQkJCQkgICAgICAgbm9kZS0+c3ltLT5uYW1lKSkgeworCQkJaWYgKGJ0X3N0b3BfbGlzdCAmJiBub2RlLT5zeW0gJiYKKwkJCSAgICBzdHJsaXN0X19oYXNfZW50cnkoYnRfc3RvcF9saXN0LCBub2RlLT5zeW0tPm5hbWUpKSB7CiAJCQkJYnJlYWs7CiAJCQl9CiAKQEAgLTE5Miw3ICsxOTIsNyBAQCBpbnQgc2FtcGxlX19mcHJpbnRmX2NhbGxjaGFpbihzdHJ1Y3QgcGVyZl9zYW1wbGUgKnNhbXBsZSwgaW50IGxlZnRfYWxpZ25tZW50LAogCiBpbnQgc2FtcGxlX19mcHJpbnRmX3N5bShzdHJ1Y3QgcGVyZl9zYW1wbGUgKnNhbXBsZSwgc3RydWN0IGFkZHJfbG9jYXRpb24gKmFsLAogCQkJaW50IGxlZnRfYWxpZ25tZW50LCB1bnNpZ25lZCBpbnQgcHJpbnRfb3B0cywKLQkJCXN0cnVjdCBjYWxsY2hhaW5fY3Vyc29yICpjdXJzb3IsIEZJTEUgKmZwKQorCQkJc3RydWN0IGNhbGxjaGFpbl9jdXJzb3IgKmN1cnNvciwgc3RydWN0IHN0cmxpc3QgKmJ0X3N0b3BfbGlzdCwgRklMRSAqZnApCiB7CiAJaW50IHByaW50ZWQgPSAwOwogCWludCBwcmludF9pcCA9IHByaW50X29wdHMgJiBFVlNFTF9fUFJJTlRfSVA7CkBAIC0yMDMsOCArMjAzLDggQEAgaW50IHNhbXBsZV9fZnByaW50Zl9zeW0oc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsIHN0cnVjdCBhZGRyX2xvY2F0aW9uICphbCwKIAlpbnQgcHJpbnRfdW5rbm93bl9hc19hZGRyID0gcHJpbnRfb3B0cyAmIEVWU0VMX19QUklOVF9VTktOT1dOX0FTX0FERFI7CiAKIAlpZiAoY3Vyc29yICE9IE5VTEwpIHsKLQkJcHJpbnRlZCArPSBzYW1wbGVfX2ZwcmludGZfY2FsbGNoYWluKHNhbXBsZSwgbGVmdF9hbGlnbm1lbnQsCi0JCQkJCQkgICAgIHByaW50X29wdHMsIGN1cnNvciwgZnApOworCQlwcmludGVkICs9IHNhbXBsZV9fZnByaW50Zl9jYWxsY2hhaW4oc2FtcGxlLCBsZWZ0X2FsaWdubWVudCwgcHJpbnRfb3B0cywKKwkJCQkJCSAgICAgY3Vyc29yLCBidF9zdG9wX2xpc3QsIGZwKTsKIAl9IGVsc2UgewogCQlwcmludGVkICs9IGZwcmludGYoZnAsICIlLSouKnMiLCBsZWZ0X2FsaWdubWVudCwgbGVmdF9hbGlnbm1lbnQsICIgIik7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9ldnNlbF9mcHJpbnRmLmggYi90b29scy9wZXJmL3V0aWwvZXZzZWxfZnByaW50Zi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZTZjODQKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9wZXJmL3V0aWwvZXZzZWxfZnByaW50Zi5oCkBAIC0wLDAgKzEsNTAgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisjaWZuZGVmIF9fUEVSRl9FVlNFTF9GUFJJTlRGX0gKKyNkZWZpbmUgX19QRVJGX0VWU0VMX0ZQUklOVEZfSCAxCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKworc3RydWN0IGV2c2VsOworCitzdHJ1Y3QgcGVyZl9hdHRyX2RldGFpbHMgeworCWJvb2wgZnJlcTsKKwlib29sIHZlcmJvc2U7CisJYm9vbCBldmVudF9ncm91cDsKKwlib29sIGZvcmNlOworCWJvb2wgdHJhY2VfZmllbGRzOworfTsKKworaW50IHBlcmZfZXZzZWxfX2ZwcmludGYoc3RydWN0IGV2c2VsICpldnNlbCwKKwkJCXN0cnVjdCBwZXJmX2F0dHJfZGV0YWlscyAqZGV0YWlscywgRklMRSAqZnApOworCisjZGVmaW5lIEVWU0VMX19QUklOVF9JUAkJCSgxPDwwKQorI2RlZmluZSBFVlNFTF9fUFJJTlRfU1lNCQkoMTw8MSkKKyNkZWZpbmUgRVZTRUxfX1BSSU5UX0RTTwkJKDE8PDIpCisjZGVmaW5lIEVWU0VMX19QUklOVF9TWU1PRkZTRVQJCSgxPDwzKQorI2RlZmluZSBFVlNFTF9fUFJJTlRfT05FTElORQkJKDE8PDQpCisjZGVmaW5lIEVWU0VMX19QUklOVF9TUkNMSU5FCQkoMTw8NSkKKyNkZWZpbmUgRVZTRUxfX1BSSU5UX1VOS05PV05fQVNfQUREUgkoMTw8NikKKyNkZWZpbmUgRVZTRUxfX1BSSU5UX0NBTExDSEFJTl9BUlJPVwkoMTw8NykKKyNkZWZpbmUgRVZTRUxfX1BSSU5UX1NLSVBfSUdOT1JFRAkoMTw8OCkKKworc3RydWN0IGFkZHJfbG9jYXRpb247CitzdHJ1Y3QgcGVyZl9ldmVudF9hdHRyOworc3RydWN0IHBlcmZfc2FtcGxlOworc3RydWN0IGNhbGxjaGFpbl9jdXJzb3I7CitzdHJ1Y3Qgc3RybGlzdDsKKworaW50IHNhbXBsZV9fZnByaW50Zl9jYWxsY2hhaW4oc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsIGludCBsZWZ0X2FsaWdubWVudCwKKwkJCSAgICAgIHVuc2lnbmVkIGludCBwcmludF9vcHRzLCBzdHJ1Y3QgY2FsbGNoYWluX2N1cnNvciAqY3Vyc29yLAorCQkJICAgICAgc3RydWN0IHN0cmxpc3QgKmJ0X3N0b3BfbGlzdCwgRklMRSAqZnApOworCitpbnQgc2FtcGxlX19mcHJpbnRmX3N5bShzdHJ1Y3QgcGVyZl9zYW1wbGUgKnNhbXBsZSwgc3RydWN0IGFkZHJfbG9jYXRpb24gKmFsLAorCQkJaW50IGxlZnRfYWxpZ25tZW50LCB1bnNpZ25lZCBpbnQgcHJpbnRfb3B0cywKKwkJCXN0cnVjdCBjYWxsY2hhaW5fY3Vyc29yICpjdXJzb3IsCisJCQlzdHJ1Y3Qgc3RybGlzdCAqYnRfc3RvcF9saXN0LCBGSUxFICpmcCk7CisKK3R5cGVkZWYgaW50ICgqYXR0cl9fZnByaW50Zl9mKShGSUxFICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCB2b2lkICopOworCitpbnQgcGVyZl9ldmVudF9hdHRyX19mcHJpbnRmKEZJTEUgKmZwLCBzdHJ1Y3QgcGVyZl9ldmVudF9hdHRyICphdHRyLAorCQkJICAgICBhdHRyX19mcHJpbnRmX2YgYXR0cl9fZnByaW50Ziwgdm9pZCAqcHJpdik7CisjZW5kaWYgLy8gX19QRVJGX0VWU0VMX0gKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9nZW5lbGYuaCBiL3Rvb2xzL3BlcmYvdXRpbC9nZW5lbGYuaAppbmRleCBiNzI0NDBiLi5kNDEzNzU1IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvZ2VuZWxmLmgKKysrIGIvdG9vbHMvcGVyZi91dGlsL2dlbmVsZi5oCkBAIC0zNSw2ICszNSw5IEBAIGludCBqaXRfYWRkX2RlYnVnX2luZm8oRWxmICplLCB1aW50NjRfdCBjb2RlX2FkZHIsIHZvaWQgKmRlYnVnLCBpbnQgbnJfZGVidWdfZW50CiAjZWxpZiBkZWZpbmVkKF9fc3BhcmNfXykKICNkZWZpbmUgR0VOX0VMRl9BUkNICUVNX1NQQVJDCiAjZGVmaW5lIEdFTl9FTEZfQ0xBU1MJRUxGQ0xBU1MzMgorI2VsaWYgZGVmaW5lZChfX3MzOTB4X18pCisjZGVmaW5lIEdFTl9FTEZfQVJDSAlFTV9TMzkwCisjZGVmaW5lIEdFTl9FTEZfQ0xBU1MJRUxGQ0xBU1M2NAogI2Vsc2UKICNlcnJvciAidW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIgogI2VuZGlmCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvaGVhZGVyLmMgYi90b29scy9wZXJmL3V0aWwvaGVhZGVyLmMKaW5kZXggYjBjMzRkZC4uODZkOTM5NiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2hlYWRlci5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9oZWFkZXIuYwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgImRzby5oIgogI2luY2x1ZGUgImV2bGlzdC5oIgogI2luY2x1ZGUgImV2c2VsLmgiCisjaW5jbHVkZSAidXRpbC9ldnNlbF9mcHJpbnRmLmgiCiAjaW5jbHVkZSAiaGVhZGVyLmgiCiAjaW5jbHVkZSAibWVtc3dhcC5oIgogI2luY2x1ZGUgInRyYWNlLWV2ZW50LmgiCkBAIC00MiwxMSArNDMsMTIgQEAKICNpbmNsdWRlICJ0b29sLmgiCiAjaW5jbHVkZSAidGltZS11dGlscy5oIgogI2luY2x1ZGUgInVuaXRzLmgiCi0jaW5jbHVkZSAidXRpbC5oIgorI2luY2x1ZGUgInV0aWwvdXRpbC5oIiAvLyBwZXJmX2V4ZSgpCiAjaW5jbHVkZSAiY3B1dG9wby5oIgogI2luY2x1ZGUgImJwZi1ldmVudC5oIgogCiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4KIAogLyoKICAqIG1hZ2ljMiA9ICJQRVJGSUxFMiIKQEAgLTcwLDE1ICs3Miw2IEBAIHN0cnVjdCBwZXJmX2ZpbGVfYXR0ciB7CiAJc3RydWN0IHBlcmZfZmlsZV9zZWN0aW9uCWlkczsKIH07CiAKLXN0cnVjdCBmZWF0X2ZkIHsKLQlzdHJ1Y3QgcGVyZl9oZWFkZXIJKnBoOwotCWludAkJCWZkOwotCXZvaWQJCQkqYnVmOwkvKiBFaXRoZXIgYnVmICE9IE5VTEwgb3IgZmQgPj0gMCAqLwotCXNzaXplX3QJCQlvZmZzZXQ7Ci0Jc2l6ZV90CQkJc2l6ZTsKLQlzdHJ1Y3QgZXZzZWwJKmV2ZW50czsKLX07Ci0KIHZvaWQgcGVyZl9oZWFkZXJfX3NldF9mZWF0KHN0cnVjdCBwZXJmX2hlYWRlciAqaGVhZGVyLCBpbnQgZmVhdCkKIHsKIAlzZXRfYml0KGZlYXQsIGhlYWRlci0+YWRkc19mZWF0dXJlcyk7CkBAIC01MjQsNyArNTE3LDcgQEAgc3RhdGljIGludCB3cml0ZV9ldmVudF9kZXNjKHN0cnVjdCBmZWF0X2ZkICpmZiwKIAkJICogY29weSBpbnRvIGFuIG5yaSB0byBiZSBpbmRlcGVuZGVudCBvZiB0aGUKIAkJICogdHlwZSBvZiBpZHMsCiAJCSAqLwotCQlucmkgPSBldnNlbC0+aWRzOworCQlucmkgPSBldnNlbC0+Y29yZS5pZHM7CiAJCXJldCA9IGRvX3dyaXRlKGZmLCAmbnJpLCBzaXplb2YobnJpKSk7CiAJCWlmIChyZXQgPCAwKQogCQkJcmV0dXJuIHJldDsKQEAgLTUzOCw3ICs1MzEsNyBAQCBzdGF0aWMgaW50IHdyaXRlX2V2ZW50X2Rlc2Moc3RydWN0IGZlYXRfZmQgKmZmLAogCQkvKgogCQkgKiB3cml0ZSB1bmlxdWUgaWRzIGZvciB0aGlzIGV2ZW50CiAJCSAqLwotCQlyZXQgPSBkb193cml0ZShmZiwgZXZzZWwtPmlkLCBldnNlbC0+aWRzICogc2l6ZW9mKHU2NCkpOworCQlyZXQgPSBkb193cml0ZShmZiwgZXZzZWwtPmNvcmUuaWQsIGV2c2VsLT5jb3JlLmlkcyAqIHNpemVvZih1NjQpKTsKIAkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0OwogCX0KQEAgLTEwODEsNyArMTA3NCw3IEBAIHN0YXRpYyBpbnQgY3B1X2NhY2hlX2xldmVsX19yZWFkKHN0cnVjdCBjcHVfY2FjaGVfbGV2ZWwgKmNhY2hlLCB1MzIgY3B1LCB1MTYgbGV2CiAKIAlzY25wcmludGYoZmlsZSwgUEFUSF9NQVgsICIlcy9zaGFyZWRfY3B1X2xpc3QiLCBwYXRoKTsKIAlpZiAoc3lzZnNfX3JlYWRfc3RyKGZpbGUsICZjYWNoZS0+bWFwLCAmbGVuKSkgewotCQl6ZnJlZSgmY2FjaGUtPm1hcCk7CisJCXpmcmVlKCZjYWNoZS0+c2l6ZSk7CiAJCXpmcmVlKCZjYWNoZS0+dHlwZSk7CiAJCXJldHVybiAtMTsKIAl9CkBAIC0xNTk4LDcgKzE1OTEsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX2V2ZW50X2Rlc2Moc3RydWN0IGV2c2VsICpldmVudHMpCiAKIAlmb3IgKGV2c2VsID0gZXZlbnRzOyBldnNlbC0+Y29yZS5hdHRyLnNpemU7IGV2c2VsKyspIHsKIAkJemZyZWUoJmV2c2VsLT5uYW1lKTsKLQkJemZyZWUoJmV2c2VsLT5pZCk7CisJCXpmcmVlKCZldnNlbC0+Y29yZS5pZCk7CiAJfQogCiAJZnJlZShldmVudHMpOwpAQCAtMTY2NCw4ICsxNjU3LDggQEAgc3RhdGljIHN0cnVjdCBldnNlbCAqcmVhZF9ldmVudF9kZXNjKHN0cnVjdCBmZWF0X2ZkICpmZikKIAkJaWQgPSBjYWxsb2MobnIsIHNpemVvZigqaWQpKTsKIAkJaWYgKCFpZCkKIAkJCWdvdG8gZXJyb3I7Ci0JCWV2c2VsLT5pZHMgPSBucjsKLQkJZXZzZWwtPmlkID0gaWQ7CisJCWV2c2VsLT5jb3JlLmlkcyA9IG5yOworCQlldnNlbC0+Y29yZS5pZCA9IGlkOwogCiAJCWZvciAoaiA9IDAgOyBqIDwgbnI7IGorKykgewogCQkJaWYgKGRvX3JlYWRfdTY0KGZmLCBpZCkpCkBAIC0xNzA3LDkgKzE3MDAsOSBAQCBzdGF0aWMgdm9pZCBwcmludF9ldmVudF9kZXNjKHN0cnVjdCBmZWF0X2ZkICpmZiwgRklMRSAqZnApCiAJZm9yIChldnNlbCA9IGV2ZW50czsgZXZzZWwtPmNvcmUuYXR0ci5zaXplOyBldnNlbCsrKSB7CiAJCWZwcmludGYoZnAsICIjIGV2ZW50IDogbmFtZSA9ICVzLCAiLCBldnNlbC0+bmFtZSk7CiAKLQkJaWYgKGV2c2VsLT5pZHMpIHsKKwkJaWYgKGV2c2VsLT5jb3JlLmlkcykgewogCQkJZnByaW50ZihmcCwgIiwgaWQgPSB7Iik7Ci0JCQlmb3IgKGogPSAwLCBpZCA9IGV2c2VsLT5pZDsgaiA8IGV2c2VsLT5pZHM7IGorKywgaWQrKykgeworCQkJZm9yIChqID0gMCwgaWQgPSBldnNlbC0+Y29yZS5pZDsgaiA8IGV2c2VsLT5jb3JlLmlkczsgaisrLCBpZCsrKSB7CiAJCQkJaWYgKGopCiAJCQkJCWZwdXRjKCcsJywgZnApOwogCQkJCWZwcmludGYoZnAsICIgJSJQUkl1NjQsICppZCk7CkBAIC0yODIzLDE1ICsyODE2LDYgQEAgc3RhdGljIGludCBwcm9jZXNzX2NvbXByZXNzZWQoc3RydWN0IGZlYXRfZmQgKmZmLAogCXJldHVybiAwOwogfQogCi1zdHJ1Y3QgZmVhdHVyZV9vcHMgewotCWludCAoKndyaXRlKShzdHJ1Y3QgZmVhdF9mZCAqZmYsIHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7Ci0Jdm9pZCAoKnByaW50KShzdHJ1Y3QgZmVhdF9mZCAqZmYsIEZJTEUgKmZwKTsKLQlpbnQgKCpwcm9jZXNzKShzdHJ1Y3QgZmVhdF9mZCAqZmYsIHZvaWQgKmRhdGEpOwotCWNvbnN0IGNoYXIgKm5hbWU7Ci0JYm9vbCBmdWxsX29ubHk7Ci0JYm9vbCBzeW50aGVzaXplOwotfTsKLQogI2RlZmluZSBGRUFUX09QUihuLCBmdW5jLCBfX2Z1bGxfb25seSkgXAogCVtIRUFERVJfIyNuXSA9IHsJCQkJCVwKIAkJLm5hbWUJICAgID0gX19zdHJpbmdpZnkobiksCQkJXApAQCAtMjg1OCw4ICsyODQyLDEwIEBAIHN0cnVjdCBmZWF0dXJlX29wcyB7CiAjZGVmaW5lIHByb2Nlc3NfYnJhbmNoX3N0YWNrCU5VTEwKICNkZWZpbmUgcHJvY2Vzc19zdGF0CQlOVUxMCiAKKy8vIE9ubHkgdXNlZCBpbiB1dGlsL3N5bnRoZXRpYy1ldmVudHMuYworY29uc3Qgc3RydWN0IHBlcmZfaGVhZGVyX2ZlYXR1cmVfb3BzIGZlYXRfb3BzW0hFQURFUl9MQVNUX0ZFQVRVUkVdOwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlYXR1cmVfb3BzIGZlYXRfb3BzW0hFQURFUl9MQVNUX0ZFQVRVUkVdID0geworY29uc3Qgc3RydWN0IHBlcmZfaGVhZGVyX2ZlYXR1cmVfb3BzIGZlYXRfb3BzW0hFQURFUl9MQVNUX0ZFQVRVUkVdID0gewogCUZFQVRfT1BOKFRSQUNJTkdfREFUQSwJdHJhY2luZ19kYXRhLAlmYWxzZSksCiAJRkVBVF9PUE4oQlVJTERfSUQsCWJ1aWxkX2lkLAlmYWxzZSksCiAJRkVBVF9PUFIoSE9TVE5BTUUsCWhvc3RuYW1lLAlmYWxzZSksCkBAIC0zMDgzLDcgKzMwNjksNyBAQCBpbnQgcGVyZl9zZXNzaW9uX193cml0ZV9oZWFkZXIoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiwKIAogCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoc2Vzc2lvbi0+ZXZsaXN0LCBldnNlbCkgewogCQlldnNlbC0+aWRfb2Zmc2V0ID0gbHNlZWsoZmQsIDAsIFNFRUtfQ1VSKTsKLQkJZXJyID0gZG9fd3JpdGUoJmZmLCBldnNlbC0+aWQsIGV2c2VsLT5pZHMgKiBzaXplb2YodTY0KSk7CisJCWVyciA9IGRvX3dyaXRlKCZmZiwgZXZzZWwtPmNvcmUuaWQsIGV2c2VsLT5jb3JlLmlkcyAqIHNpemVvZih1NjQpKTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCXByX2RlYnVnKCJmYWlsZWQgdG8gd3JpdGUgcGVyZiBoZWFkZXJcbiIpOwogCQkJcmV0dXJuIGVycjsKQEAgLTMwOTcsNyArMzA4Myw3IEBAIGludCBwZXJmX3Nlc3Npb25fX3dyaXRlX2hlYWRlcihzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLAogCQkJLmF0dHIgPSBldnNlbC0+Y29yZS5hdHRyLAogCQkJLmlkcyAgPSB7CiAJCQkJLm9mZnNldCA9IGV2c2VsLT5pZF9vZmZzZXQsCi0JCQkJLnNpemUgICA9IGV2c2VsLT5pZHMgKiBzaXplb2YodTY0KSwKKwkJCQkuc2l6ZSAgID0gZXZzZWwtPmNvcmUuaWRzICogc2l6ZW9mKHU2NCksCiAJCQl9CiAJCX07CiAJCWVyciA9IGRvX3dyaXRlKCZmZiwgJmZfYXR0ciwgc2l6ZW9mKGZfYXR0cikpOwpAQCAtMzYyNCw3ICszNjEwLDcgQEAgaW50IHBlcmZfc2Vzc2lvbl9fcmVhZF9oZWFkZXIoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbikKIAkJICogZm9yIGFsbG9jYXRpbmcgdGhlIHBlcmZfc2FtcGxlX2lkIHRhYmxlIHdlIGZha2UgMSBjcHUgYW5kCiAJCSAqIGhhdHRyLT5pZHMgdGhyZWFkcy4KIAkJICovCi0JCWlmIChwZXJmX2V2c2VsX19hbGxvY19pZChldnNlbCwgMSwgbnJfaWRzKSkKKwkJaWYgKHBlcmZfZXZzZWxfX2FsbG9jX2lkKCZldnNlbC0+Y29yZSwgMSwgbnJfaWRzKSkKIAkJCWdvdG8gb3V0X2RlbGV0ZV9ldmxpc3Q7CiAKIAkJbHNlZWsoZmQsIGZfYXR0ci5pZHMub2Zmc2V0LCBTRUVLX1NFVCk7CkBAIC0zNjMzLDcgKzM2MTksNyBAQCBpbnQgcGVyZl9zZXNzaW9uX19yZWFkX2hlYWRlcihzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uKQogCQkJaWYgKHBlcmZfaGVhZGVyX19nZXRidWZmZXI2NChoZWFkZXIsIGZkLCAmZl9pZCwgc2l6ZW9mKGZfaWQpKSkKIAkJCQlnb3RvIG91dF9lcnJubzsKIAotCQkJcGVyZl9ldmxpc3RfX2lkX2FkZChzZXNzaW9uLT5ldmxpc3QsIGV2c2VsLCAwLCBqLCBmX2lkKTsKKwkJCXBlcmZfZXZsaXN0X19pZF9hZGQoJnNlc3Npb24tPmV2bGlzdC0+Y29yZSwgJmV2c2VsLT5jb3JlLCAwLCBqLCBmX2lkKTsKIAkJfQogCiAJCWxzZWVrKGZkLCB0bXAsIFNFRUtfU0VUKTsKQEAgLTM2NTYsMTA1ICszNjQyLDYgQEAgaW50IHBlcmZfc2Vzc2lvbl9fcmVhZF9oZWFkZXIoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbikKIAlyZXR1cm4gLUVOT01FTTsKIH0KIAotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXR0cihzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCXN0cnVjdCBwZXJmX2V2ZW50X2F0dHIgKmF0dHIsIHUzMiBpZHMsIHU2NCAqaWQsCi0JCQkJcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpCi17Ci0JdW5pb24gcGVyZl9ldmVudCAqZXY7Ci0Jc2l6ZV90IHNpemU7Ci0JaW50IGVycjsKLQotCXNpemUgPSBzaXplb2Yoc3RydWN0IHBlcmZfZXZlbnRfYXR0cik7Ci0Jc2l6ZSA9IFBFUkZfQUxJR04oc2l6ZSwgc2l6ZW9mKHU2NCkpOwotCXNpemUgKz0gc2l6ZW9mKHN0cnVjdCBwZXJmX2V2ZW50X2hlYWRlcik7Ci0Jc2l6ZSArPSBpZHMgKiBzaXplb2YodTY0KTsKLQotCWV2ID0gemFsbG9jKHNpemUpOwotCi0JaWYgKGV2ID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZXYtPmF0dHIuYXR0ciA9ICphdHRyOwotCW1lbWNweShldi0+YXR0ci5pZCwgaWQsIGlkcyAqIHNpemVvZih1NjQpKTsKLQotCWV2LT5hdHRyLmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfSEVBREVSX0FUVFI7Ci0JZXYtPmF0dHIuaGVhZGVyLnNpemUgPSAodTE2KXNpemU7Ci0KLQlpZiAoZXYtPmF0dHIuaGVhZGVyLnNpemUgPT0gc2l6ZSkKLQkJZXJyID0gcHJvY2Vzcyh0b29sLCBldiwgTlVMTCwgTlVMTCk7Ci0JZWxzZQotCQllcnIgPSAtRTJCSUc7Ci0KLQlmcmVlKGV2KTsKLQotCXJldHVybiBlcnI7Ci19Ci0KLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2ZlYXR1cmVzKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgIHN0cnVjdCBwZXJmX3Nlc3Npb24gKnNlc3Npb24sCi0JCQkJICAgIHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKLQkJCQkgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpCi17Ci0Jc3RydWN0IHBlcmZfaGVhZGVyICpoZWFkZXIgPSAmc2Vzc2lvbi0+aGVhZGVyOwotCXN0cnVjdCBmZWF0X2ZkIGZmOwotCXN0cnVjdCBwZXJmX3JlY29yZF9oZWFkZXJfZmVhdHVyZSAqZmU7Ci0Jc2l6ZV90IHN6LCBzel9oZHI7Ci0JaW50IGZlYXQsIHJldDsKLQotCXN6X2hkciA9IHNpemVvZihmZS0+aGVhZGVyKTsKLQlzeiA9IHNpemVvZih1bmlvbiBwZXJmX2V2ZW50KTsKLQkvKiBnZXQgYSBuaWNlIGFsaWdubWVudCAqLwotCXN6ID0gUEVSRl9BTElHTihzeiwgcGFnZV9zaXplKTsKLQotCW1lbXNldCgmZmYsIDAsIHNpemVvZihmZikpOwotCi0JZmYuYnVmID0gbWFsbG9jKHN6KTsKLQlpZiAoIWZmLmJ1ZikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlmZi5zaXplID0gc3ogLSBzel9oZHI7Ci0JZmYucGggPSAmc2Vzc2lvbi0+aGVhZGVyOwotCi0JZm9yX2VhY2hfc2V0X2JpdChmZWF0LCBoZWFkZXItPmFkZHNfZmVhdHVyZXMsIEhFQURFUl9GRUFUX0JJVFMpIHsKLQkJaWYgKCFmZWF0X29wc1tmZWF0XS5zeW50aGVzaXplKSB7Ci0JCQlwcl9kZWJ1ZygiTm8gcmVjb3JkIGhlYWRlciBmZWF0dXJlIGZvciBoZWFkZXIgOiVkXG4iLCBmZWF0KTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KLQkJZmYub2Zmc2V0ID0gc2l6ZW9mKCpmZSk7Ci0KLQkJcmV0ID0gZmVhdF9vcHNbZmVhdF0ud3JpdGUoJmZmLCBldmxpc3QpOwotCQlpZiAocmV0IHx8IGZmLm9mZnNldCA8PSAoc3NpemVfdClzaXplb2YoKmZlKSkgewotCQkJcHJfZGVidWcoIkVycm9yIHdyaXRpbmcgZmVhdHVyZVxuIik7Ci0JCQljb250aW51ZTsKLQkJfQotCQkvKiBmZi5idWYgbWF5IGhhdmUgY2hhbmdlZCBkdWUgdG8gcmVhbGxvYyBpbiBkb193cml0ZSgpICovCi0JCWZlID0gZmYuYnVmOwotCQltZW1zZXQoZmUsIDAsIHNpemVvZigqZmUpKTsKLQotCQlmZS0+ZmVhdF9pZCA9IGZlYXQ7Ci0JCWZlLT5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX0hFQURFUl9GRUFUVVJFOwotCQlmZS0+aGVhZGVyLnNpemUgPSBmZi5vZmZzZXQ7Ci0KLQkJcmV0ID0gcHJvY2Vzcyh0b29sLCBmZi5idWYsIE5VTEwsIE5VTEwpOwotCQlpZiAocmV0KSB7Ci0JCQlmcmVlKGZmLmJ1Zik7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JfQotCi0JLyogU2VuZCBIRUFERVJfTEFTVF9GRUFUVVJFIG1hcmsuICovCi0JZmUgPSBmZi5idWY7Ci0JZmUtPmZlYXRfaWQgICAgID0gSEVBREVSX0xBU1RfRkVBVFVSRTsKLQlmZS0+aGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9IRUFERVJfRkVBVFVSRTsKLQlmZS0+aGVhZGVyLnNpemUgPSBzaXplb2YoKmZlKTsKLQotCXJldCA9IHByb2Nlc3ModG9vbCwgZmYuYnVmLCBOVUxMLCBOVUxMKTsKLQotCWZyZWUoZmYuYnVmKTsKLQlyZXR1cm4gcmV0OwotfQotCiBpbnQgcGVyZl9ldmVudF9fcHJvY2Vzc19mZWF0dXJlKHN0cnVjdCBwZXJmX3Nlc3Npb24gKnNlc3Npb24sCiAJCQkJdW5pb24gcGVyZl9ldmVudCAqZXZlbnQpCiB7CkBAIC0zNzk3LDExMyArMzY4NCw2IEBAIGludCBwZXJmX2V2ZW50X19wcm9jZXNzX2ZlYXR1cmUoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBwZXJmX3JlY29yZF9ldmVudF91cGRhdGUgKgotZXZlbnRfdXBkYXRlX2V2ZW50X19uZXcoc2l6ZV90IHNpemUsIHU2NCB0eXBlLCB1NjQgaWQpCi17Ci0Jc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSAqZXY7Ci0KLQlzaXplICs9IHNpemVvZigqZXYpOwotCXNpemUgID0gUEVSRl9BTElHTihzaXplLCBzaXplb2YodTY0KSk7Ci0KLQlldiA9IHphbGxvYyhzaXplKTsKLQlpZiAoZXYpIHsKLQkJZXYtPmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfRVZFTlRfVVBEQVRFOwotCQlldi0+aGVhZGVyLnNpemUgPSAodTE2KXNpemU7Ci0JCWV2LT50eXBlID0gdHlwZTsKLQkJZXYtPmlkID0gaWQ7Ci0JfQotCXJldHVybiBldjsKLX0KLQotaW50Ci1wZXJmX2V2ZW50X19zeW50aGVzaXplX2V2ZW50X3VwZGF0ZV91bml0KHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJCSBzdHJ1Y3QgZXZzZWwgKmV2c2VsLAotCQkJCQkgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpCi17Ci0Jc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSAqZXY7Ci0Jc2l6ZV90IHNpemUgPSBzdHJsZW4oZXZzZWwtPnVuaXQpOwotCWludCBlcnI7Ci0KLQlldiA9IGV2ZW50X3VwZGF0ZV9ldmVudF9fbmV3KHNpemUgKyAxLCBQRVJGX0VWRU5UX1VQREFURV9fVU5JVCwgZXZzZWwtPmlkWzBdKTsKLQlpZiAoZXYgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlzdHJsY3B5KGV2LT5kYXRhLCBldnNlbC0+dW5pdCwgc2l6ZSArIDEpOwotCWVyciA9IHByb2Nlc3ModG9vbCwgKHVuaW9uIHBlcmZfZXZlbnQgKilldiwgTlVMTCwgTlVMTCk7Ci0JZnJlZShldik7Ci0JcmV0dXJuIGVycjsKLX0KLQotaW50Ci1wZXJmX2V2ZW50X19zeW50aGVzaXplX2V2ZW50X3VwZGF0ZV9zY2FsZShzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCQkgIHN0cnVjdCBldnNlbCAqZXZzZWwsCi0JCQkJCSAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpCi17Ci0Jc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSAqZXY7Ci0Jc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZV9zY2FsZSAqZXZfZGF0YTsKLQlpbnQgZXJyOwotCi0JZXYgPSBldmVudF91cGRhdGVfZXZlbnRfX25ldyhzaXplb2YoKmV2X2RhdGEpLCBQRVJGX0VWRU5UX1VQREFURV9fU0NBTEUsIGV2c2VsLT5pZFswXSk7Ci0JaWYgKGV2ID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZXZfZGF0YSA9IChzdHJ1Y3QgcGVyZl9yZWNvcmRfZXZlbnRfdXBkYXRlX3NjYWxlICopZXYtPmRhdGE7Ci0JZXZfZGF0YS0+c2NhbGUgPSBldnNlbC0+c2NhbGU7Ci0JZXJyID0gcHJvY2Vzcyh0b29sLCAodW5pb24gcGVyZl9ldmVudCopIGV2LCBOVUxMLCBOVUxMKTsKLQlmcmVlKGV2KTsKLQlyZXR1cm4gZXJyOwotfQotCi1pbnQKLXBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXZlbnRfdXBkYXRlX25hbWUoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkJIHN0cnVjdCBldnNlbCAqZXZzZWwsCi0JCQkJCSBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcykKLXsKLQlzdHJ1Y3QgcGVyZl9yZWNvcmRfZXZlbnRfdXBkYXRlICpldjsKLQlzaXplX3QgbGVuID0gc3RybGVuKGV2c2VsLT5uYW1lKTsKLQlpbnQgZXJyOwotCi0JZXYgPSBldmVudF91cGRhdGVfZXZlbnRfX25ldyhsZW4gKyAxLCBQRVJGX0VWRU5UX1VQREFURV9fTkFNRSwgZXZzZWwtPmlkWzBdKTsKLQlpZiAoZXYgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlzdHJsY3B5KGV2LT5kYXRhLCBldnNlbC0+bmFtZSwgbGVuICsgMSk7Ci0JZXJyID0gcHJvY2Vzcyh0b29sLCAodW5pb24gcGVyZl9ldmVudCopIGV2LCBOVUxMLCBOVUxMKTsKLQlmcmVlKGV2KTsKLQlyZXR1cm4gZXJyOwotfQotCi1pbnQKLXBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXZlbnRfdXBkYXRlX2NwdXMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkJc3RydWN0IGV2c2VsICpldnNlbCwKLQkJCQkJcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpCi17Ci0Jc2l6ZV90IHNpemUgPSBzaXplb2Yoc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSk7Ci0Jc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSAqZXY7Ci0JaW50IG1heCwgZXJyOwotCXUxNiB0eXBlOwotCi0JaWYgKCFldnNlbC0+Y29yZS5vd25fY3B1cykKLQkJcmV0dXJuIDA7Ci0KLQlldiA9IGNwdV9tYXBfZGF0YV9fYWxsb2MoZXZzZWwtPmNvcmUub3duX2NwdXMsICZzaXplLCAmdHlwZSwgJm1heCk7Ci0JaWYgKCFldikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlldi0+aGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9FVkVOVF9VUERBVEU7Ci0JZXYtPmhlYWRlci5zaXplID0gKHUxNilzaXplOwotCWV2LT50eXBlID0gUEVSRl9FVkVOVF9VUERBVEVfX0NQVVM7Ci0JZXYtPmlkICAgPSBldnNlbC0+aWRbMF07Ci0KLQljcHVfbWFwX2RhdGFfX3N5bnRoZXNpemUoKHN0cnVjdCBwZXJmX3JlY29yZF9jcHVfbWFwX2RhdGEgKilldi0+ZGF0YSwKLQkJCQkgZXZzZWwtPmNvcmUub3duX2NwdXMsCi0JCQkJIHR5cGUsIG1heCk7Ci0KLQllcnIgPSBwcm9jZXNzKHRvb2wsICh1bmlvbiBwZXJmX2V2ZW50KikgZXYsIE5VTEwsIE5VTEwpOwotCWZyZWUoZXYpOwotCXJldHVybiBlcnI7Ci19Ci0KIHNpemVfdCBwZXJmX2V2ZW50X19mcHJpbnRmX2V2ZW50X3VwZGF0ZSh1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgRklMRSAqZnApCiB7CiAJc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSAqZXYgPSAmZXZlbnQtPmV2ZW50X3VwZGF0ZTsKQEAgLTM5NDMsOTMgKzM3MjMsNiBAQCBzaXplX3QgcGVyZl9ldmVudF9fZnByaW50Zl9ldmVudF91cGRhdGUodW5pb24gcGVyZl9ldmVudCAqZXZlbnQsIEZJTEUgKmZwKQogCXJldHVybiByZXQ7CiB9CiAKLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2F0dHJzKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJIHN0cnVjdCBldmxpc3QgKmV2bGlzdCwKLQkJCQkgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpCi17Ci0Jc3RydWN0IGV2c2VsICpldnNlbDsKLQlpbnQgZXJyID0gMDsKLQotCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZsaXN0LCBldnNlbCkgewotCQllcnIgPSBwZXJmX2V2ZW50X19zeW50aGVzaXplX2F0dHIodG9vbCwgJmV2c2VsLT5jb3JlLmF0dHIsIGV2c2VsLT5pZHMsCi0JCQkJCQkgIGV2c2VsLT5pZCwgcHJvY2Vzcyk7Ci0JCWlmIChlcnIpIHsKLQkJCXByX2RlYnVnKCJmYWlsZWQgdG8gY3JlYXRlIHBlcmYgaGVhZGVyIGF0dHJpYnV0ZVxuIik7Ci0JCQlyZXR1cm4gZXJyOwotCQl9Ci0JfQotCi0JcmV0dXJuIGVycjsKLX0KLQotc3RhdGljIGJvb2wgaGFzX3VuaXQoc3RydWN0IGV2c2VsICpjb3VudGVyKQotewotCXJldHVybiBjb3VudGVyLT51bml0ICYmICpjb3VudGVyLT51bml0OwotfQotCi1zdGF0aWMgYm9vbCBoYXNfc2NhbGUoc3RydWN0IGV2c2VsICpjb3VudGVyKQotewotCXJldHVybiBjb3VudGVyLT5zY2FsZSAhPSAxOwotfQotCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9leHRyYV9hdHRyKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICAgICAgc3RydWN0IGV2bGlzdCAqZXZzZWxfbGlzdCwKLQkJCQkgICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgICBib29sIGlzX3BpcGUpCi17Ci0Jc3RydWN0IGV2c2VsICpjb3VudGVyOwotCWludCBlcnI7Ci0KLQkvKgotCSAqIFN5bnRoZXNpemUgb3RoZXIgZXZlbnRzIHN0dWZmIG5vdCBjYXJyaWVkIHdpdGhpbgotCSAqIGF0dHIgZXZlbnQgLSB1bml0LCBzY2FsZSwgbmFtZQotCSAqLwotCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZzZWxfbGlzdCwgY291bnRlcikgewotCQlpZiAoIWNvdW50ZXItPnN1cHBvcnRlZCkKLQkJCWNvbnRpbnVlOwotCi0JCS8qCi0JCSAqIFN5bnRoZXNpemUgdW5pdCBhbmQgc2NhbGUgb25seSBpZiBpdCdzIGRlZmluZWQuCi0JCSAqLwotCQlpZiAoaGFzX3VuaXQoY291bnRlcikpIHsKLQkJCWVyciA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXZlbnRfdXBkYXRlX3VuaXQodG9vbCwgY291bnRlciwgcHJvY2Vzcyk7Ci0JCQlpZiAoZXJyIDwgMCkgewotCQkJCXByX2VycigiQ291bGRuJ3Qgc3ludGhlc2l6ZSBldnNlbCB1bml0LlxuIik7Ci0JCQkJcmV0dXJuIGVycjsKLQkJCX0KLQkJfQotCi0JCWlmIChoYXNfc2NhbGUoY291bnRlcikpIHsKLQkJCWVyciA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXZlbnRfdXBkYXRlX3NjYWxlKHRvb2wsIGNvdW50ZXIsIHByb2Nlc3MpOwotCQkJaWYgKGVyciA8IDApIHsKLQkJCQlwcl9lcnIoIkNvdWxkbid0IHN5bnRoZXNpemUgZXZzZWwgY291bnRlci5cbiIpOwotCQkJCXJldHVybiBlcnI7Ci0JCQl9Ci0JCX0KLQotCQlpZiAoY291bnRlci0+Y29yZS5vd25fY3B1cykgewotCQkJZXJyID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfY3B1cyh0b29sLCBjb3VudGVyLCBwcm9jZXNzKTsKLQkJCWlmIChlcnIgPCAwKSB7Ci0JCQkJcHJfZXJyKCJDb3VsZG4ndCBzeW50aGVzaXplIGV2c2VsIGNwdXMuXG4iKTsKLQkJCQlyZXR1cm4gZXJyOwotCQkJfQotCQl9Ci0KLQkJLyoKLQkJICogTmFtZSBpcyBuZWVkZWQgb25seSBmb3IgcGlwZSBvdXRwdXQsCi0JCSAqIHBlcmYuZGF0YSBjYXJyaWVzIGV2ZW50IG5hbWVzLgotCQkgKi8KLQkJaWYgKGlzX3BpcGUpIHsKLQkJCWVyciA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXZlbnRfdXBkYXRlX25hbWUodG9vbCwgY291bnRlciwgcHJvY2Vzcyk7Ci0JCQlpZiAoZXJyIDwgMCkgewotCQkJCXByX2VycigiQ291bGRuJ3Qgc3ludGhlc2l6ZSBldnNlbCBuYW1lLlxuIik7Ci0JCQkJcmV0dXJuIGVycjsKLQkJCX0KLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQogaW50IHBlcmZfZXZlbnRfX3Byb2Nlc3NfYXR0cihzdHJ1Y3QgcGVyZl90b29sICp0b29sIF9fbWF5YmVfdW51c2VkLAogCQkJICAgICB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwKIAkJCSAgICAgc3RydWN0IGV2bGlzdCAqKnBldmxpc3QpCkBAIC00MDU4LDExICszNzUxLDExIEBAIGludCBwZXJmX2V2ZW50X19wcm9jZXNzX2F0dHIoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCBfX21heWJlX3VudXNlZCwKIAkgKiBmb3IgYWxsb2NhdGluZyB0aGUgcGVyZl9zYW1wbGVfaWQgdGFibGUgd2UgZmFrZSAxIGNwdSBhbmQKIAkgKiBoYXR0ci0+aWRzIHRocmVhZHMuCiAJICovCi0JaWYgKHBlcmZfZXZzZWxfX2FsbG9jX2lkKGV2c2VsLCAxLCBuX2lkcykpCisJaWYgKHBlcmZfZXZzZWxfX2FsbG9jX2lkKCZldnNlbC0+Y29yZSwgMSwgbl9pZHMpKQogCQlyZXR1cm4gLUVOT01FTTsKIAogCWZvciAoaSA9IDA7IGkgPCBuX2lkczsgaSsrKSB7Ci0JCXBlcmZfZXZsaXN0X19pZF9hZGQoZXZsaXN0LCBldnNlbCwgMCwgaSwgZXZlbnQtPmF0dHIuaWRbaV0pOworCQlwZXJmX2V2bGlzdF9faWRfYWRkKCZldmxpc3QtPmNvcmUsICZldnNlbC0+Y29yZSwgMCwgaSwgZXZlbnQtPmF0dHIuaWRbaV0pOwogCX0KIAogCXJldHVybiAwOwpAQCAtNDExNCw1NSArMzgwNyw2IEBAIGludCBwZXJmX2V2ZW50X19wcm9jZXNzX2V2ZW50X3VwZGF0ZShzdHJ1Y3QgcGVyZl90b29sICp0b29sIF9fbWF5YmVfdW51c2VkLAogCXJldHVybiAwOwogfQogCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV90cmFjaW5nX2RhdGEoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgaW50IGZkLAotCQkJCQlzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCi0JCQkJCXBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKQotewotCXVuaW9uIHBlcmZfZXZlbnQgZXY7Ci0Jc3RydWN0IHRyYWNpbmdfZGF0YSAqdGRhdGE7Ci0Jc3NpemVfdCBzaXplID0gMCwgYWxpZ25lZF9zaXplID0gMCwgcGFkZGluZzsKLQlzdHJ1Y3QgZmVhdF9mZCBmZjsKLQlpbnQgZXJyIF9fbWF5YmVfdW51c2VkID0gMDsKLQotCS8qCi0JICogV2UgYXJlIGdvaW5nIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBkYXRhIGZvbGxvd2VkCi0JICogYnkgdGhlIGRhdGEgY29udGVudHMuIFNpbmNlIHRoZSBmZCBkZXNjcmlwdG9yIGlzIGEgcGlwZSwKLQkgKiB3ZSBjYW5ub3Qgc2VlayBiYWNrIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBkYXRhIG9uY2UKLQkgKiB3ZSBrbm93IGl0LiBJbnN0ZWFkIHdlOgotCSAqCi0JICogLSB3cml0ZSB0aGUgdHJhY2luZyBkYXRhIHRvIHRoZSB0ZW1wIGZpbGUKLQkgKiAtIGdldC93cml0ZSB0aGUgZGF0YSBzaXplIHRvIHBpcGUKLQkgKiAtIHdyaXRlIHRoZSB0cmFjaW5nIGRhdGEgZnJvbSB0aGUgdGVtcCBmaWxlCi0JICogICB0byB0aGUgcGlwZQotCSAqLwotCXRkYXRhID0gdHJhY2luZ19kYXRhX2dldCgmZXZsaXN0LT5jb3JlLmVudHJpZXMsIGZkLCB0cnVlKTsKLQlpZiAoIXRkYXRhKQotCQlyZXR1cm4gLTE7Ci0KLQltZW1zZXQoJmV2LCAwLCBzaXplb2YoZXYpKTsKLQotCWV2LnRyYWNpbmdfZGF0YS5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX0hFQURFUl9UUkFDSU5HX0RBVEE7Ci0Jc2l6ZSA9IHRkYXRhLT5zaXplOwotCWFsaWduZWRfc2l6ZSA9IFBFUkZfQUxJR04oc2l6ZSwgc2l6ZW9mKHU2NCkpOwotCXBhZGRpbmcgPSBhbGlnbmVkX3NpemUgLSBzaXplOwotCWV2LnRyYWNpbmdfZGF0YS5oZWFkZXIuc2l6ZSA9IHNpemVvZihldi50cmFjaW5nX2RhdGEpOwotCWV2LnRyYWNpbmdfZGF0YS5zaXplID0gYWxpZ25lZF9zaXplOwotCi0JcHJvY2Vzcyh0b29sLCAmZXYsIE5VTEwsIE5VTEwpOwotCi0JLyoKLQkgKiBUaGUgcHV0IGZ1bmN0aW9uIHdpbGwgY29weSBhbGwgdGhlIHRyYWNpbmcgZGF0YQotCSAqIHN0b3JlZCBpbiB0ZW1wIGZpbGUgdG8gdGhlIHBpcGUuCi0JICovCi0JdHJhY2luZ19kYXRhX3B1dCh0ZGF0YSk7Ci0KLQlmZiA9IChzdHJ1Y3QgZmVhdF9mZCl7IC5mZCA9IGZkIH07Ci0JaWYgKHdyaXRlX3BhZGRlZCgmZmYsIE5VTEwsIDAsIHBhZGRpbmcpKQotCQlyZXR1cm4gLTE7Ci0KLQlyZXR1cm4gYWxpZ25lZF9zaXplOwotfQotCiBpbnQgcGVyZl9ldmVudF9fcHJvY2Vzc190cmFjaW5nX2RhdGEoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiwKIAkJCQkgICAgIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50KQogewpAQCAtNDIwMiwzNCArMzg0Niw2IEBAIGludCBwZXJmX2V2ZW50X19wcm9jZXNzX3RyYWNpbmdfZGF0YShzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLAogCXJldHVybiBzaXplX3JlYWQgKyBwYWRkaW5nOwogfQogCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9idWlsZF9pZChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICBzdHJ1Y3QgZHNvICpwb3MsIHUxNiBtaXNjLAotCQkJCSAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpCi17Ci0JdW5pb24gcGVyZl9ldmVudCBldjsKLQlzaXplX3QgbGVuOwotCWludCBlcnIgPSAwOwotCi0JaWYgKCFwb3MtPmhpdCkKLQkJcmV0dXJuIGVycjsKLQotCW1lbXNldCgmZXYsIDAsIHNpemVvZihldikpOwotCi0JbGVuID0gcG9zLT5sb25nX25hbWVfbGVuICsgMTsKLQlsZW4gPSBQRVJGX0FMSUdOKGxlbiwgTkFNRV9BTElHTik7Ci0JbWVtY3B5KCZldi5idWlsZF9pZC5idWlsZF9pZCwgcG9zLT5idWlsZF9pZCwgc2l6ZW9mKHBvcy0+YnVpbGRfaWQpKTsKLQlldi5idWlsZF9pZC5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX0hFQURFUl9CVUlMRF9JRDsKLQlldi5idWlsZF9pZC5oZWFkZXIubWlzYyA9IG1pc2M7Ci0JZXYuYnVpbGRfaWQucGlkID0gbWFjaGluZS0+cGlkOwotCWV2LmJ1aWxkX2lkLmhlYWRlci5zaXplID0gc2l6ZW9mKGV2LmJ1aWxkX2lkKSArIGxlbjsKLQltZW1jcHkoJmV2LmJ1aWxkX2lkLmZpbGVuYW1lLCBwb3MtPmxvbmdfbmFtZSwgcG9zLT5sb25nX25hbWVfbGVuKTsKLQotCWVyciA9IHByb2Nlc3ModG9vbCwgJmV2LCBOVUxMLCBtYWNoaW5lKTsKLQotCXJldHVybiBlcnI7Ci19Ci0KIGludCBwZXJmX2V2ZW50X19wcm9jZXNzX2J1aWxkX2lkKHN0cnVjdCBwZXJmX3Nlc3Npb24gKnNlc3Npb24sCiAJCQkJIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50KQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2hlYWRlci5oIGIvdG9vbHMvcGVyZi91dGlsL2hlYWRlci5oCmluZGV4IDNlNDhhZTMuLmNhNTNhOTIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9oZWFkZXIuaAorKysgYi90b29scy9wZXJmL3V0aWwvaGVhZGVyLmgKQEAgLTUsMTAgKzUsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KICNpbmNsdWRlIDxsaW51eC9wZXJmX2V2ZW50Lmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4gLy8gRklMRQogI2luY2x1ZGUgPHN0ZGJvb2wuaD4KICNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgImV2ZW50LmgiCiAjaW5jbHVkZSAiZW52LmgiCiAjaW5jbHVkZSAicG11LmgiCiAKQEAgLTkyLDggKzkyLDI4IEBAIHN0cnVjdCBwZXJmX2hlYWRlciB7CiAJc3RydWN0IHBlcmZfZW52IAllbnY7CiB9OwogCitzdHJ1Y3QgZmVhdF9mZCB7CisJc3RydWN0IHBlcmZfaGVhZGVyICpwaDsKKwlpbnQJCSAgIGZkOworCXZvaWQJCSAgICpidWY7CS8qIEVpdGhlciBidWYgIT0gTlVMTCBvciBmZCA+PSAwICovCisJc3NpemVfdAkJICAgb2Zmc2V0OworCXNpemVfdAkJICAgc2l6ZTsKKwlzdHJ1Y3QgZXZzZWwJICAgKmV2ZW50czsKK307CisKK3N0cnVjdCBwZXJmX2hlYWRlcl9mZWF0dXJlX29wcyB7CisJaW50CSAgICgqd3JpdGUpKHN0cnVjdCBmZWF0X2ZkICpmZiwgc3RydWN0IGV2bGlzdCAqZXZsaXN0KTsKKwl2b2lkCSAgICgqcHJpbnQpKHN0cnVjdCBmZWF0X2ZkICpmZiwgRklMRSAqZnApOworCWludAkgICAoKnByb2Nlc3MpKHN0cnVjdCBmZWF0X2ZkICpmZiwgdm9pZCAqZGF0YSk7CisJY29uc3QgY2hhciAqbmFtZTsKKwlib29sCSAgIGZ1bGxfb25seTsKKwlib29sCSAgIHN5bnRoZXNpemU7Cit9OworCiBzdHJ1Y3QgZXZsaXN0Owogc3RydWN0IHBlcmZfc2Vzc2lvbjsKK3N0cnVjdCBwZXJmX3Rvb2w7Cit1bmlvbiBwZXJmX2V2ZW50OwogCiBpbnQgcGVyZl9zZXNzaW9uX19yZWFkX2hlYWRlcihzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uKTsKIGludCBwZXJmX3Nlc3Npb25fX3dyaXRlX2hlYWRlcihzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLApAQCAtMTE1LDU0ICsxMzUsMTYgQEAgaW50IHBlcmZfaGVhZGVyX19wcm9jZXNzX3NlY3Rpb25zKHN0cnVjdCBwZXJmX2hlYWRlciAqaGVhZGVyLCBpbnQgZmQsCiAKIGludCBwZXJmX2hlYWRlcl9fZnByaW50Zl9pbmZvKHN0cnVjdCBwZXJmX3Nlc3Npb24gKnMsIEZJTEUgKmZwLCBib29sIGZ1bGwpOwogCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9mZWF0dXJlcyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICBzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLAotCQkJCSAgICBzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCi0JCQkJICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKTsKLQotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXh0cmFfYXR0cihzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICAgIHN0cnVjdCBldmxpc3QgKmV2c2VsX2xpc3QsCi0JCQkJICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJICAgICAgYm9vbCBpc19waXBlKTsKLQogaW50IHBlcmZfZXZlbnRfX3Byb2Nlc3NfZmVhdHVyZShzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLAogCQkJCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50KTsKLQotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXR0cihzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCXN0cnVjdCBwZXJmX2V2ZW50X2F0dHIgKmF0dHIsIHUzMiBpZHMsIHU2NCAqaWQsCi0JCQkJcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpOwotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXR0cnMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkgc3RydWN0IGV2bGlzdCAqZXZsaXN0LAotCQkJCSBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcyk7Ci1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfdW5pdChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCQkgICAgIHN0cnVjdCBldnNlbCAqZXZzZWwsCi0JCQkJCSAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpOwotaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXZlbnRfdXBkYXRlX3NjYWxlKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJCSAgICAgIHN0cnVjdCBldnNlbCAqZXZzZWwsCi0JCQkJCSAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKTsKLWludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2V2ZW50X3VwZGF0ZV9uYW1lKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJCSAgICAgc3RydWN0IGV2c2VsICpldnNlbCwKLQkJCQkJICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcyk7Ci1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfY3B1cyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCQkgICAgIHN0cnVjdCBldnNlbCAqZXZzZWwsCi0JCQkJCSAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpOwogaW50IHBlcmZfZXZlbnRfX3Byb2Nlc3NfYXR0cihzdHJ1Y3QgcGVyZl90b29sICp0b29sLCB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwKIAkJCSAgICAgc3RydWN0IGV2bGlzdCAqKnBldmxpc3QpOwogaW50IHBlcmZfZXZlbnRfX3Byb2Nlc3NfZXZlbnRfdXBkYXRlKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCiAJCQkJICAgICB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwKIAkJCQkgICAgIHN0cnVjdCBldmxpc3QgKipwZXZsaXN0KTsKIHNpemVfdCBwZXJmX2V2ZW50X19mcHJpbnRmX2V2ZW50X3VwZGF0ZSh1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgRklMRSAqZnApOwotCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV90cmFjaW5nX2RhdGEoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQkJaW50IGZkLCBzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCi0JCQkJCXBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKTsKIGludCBwZXJmX2V2ZW50X19wcm9jZXNzX3RyYWNpbmdfZGF0YShzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLAogCQkJCSAgICAgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQpOwotCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9idWlsZF9pZChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICBzdHJ1Y3QgZHNvICpwb3MsIHUxNiBtaXNjLAotCQkJCSAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOwogaW50IHBlcmZfZXZlbnRfX3Byb2Nlc3NfYnVpbGRfaWQoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiwKIAkJCQkgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQpOwogYm9vbCBpc19wZXJmX21hZ2ljKHU2NCBtYWdpYyk7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvaGlzdC5oIGIvdG9vbHMvcGVyZi91dGlsL2hpc3QuaAppbmRleCAzNDgwM2UzLi42YTE4NmI2IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvaGlzdC5oCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9oaXN0LmgKQEAgLTE1LDYgKzE1LDcgQEAgc3RydWN0IGFkZHJfbG9jYXRpb247CiBzdHJ1Y3QgbWFwX3N5bWJvbDsKIHN0cnVjdCBtZW1faW5mbzsKIHN0cnVjdCBicmFuY2hfaW5mbzsKK3N0cnVjdCBicmFuY2hfc3RhY2s7CiBzdHJ1Y3QgYmxvY2tfaW5mbzsKIHN0cnVjdCBzeW1ib2w7CiBzdHJ1Y3QgdWlfcHJvZ3Jlc3M7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvaW50ZWwtYnRzLmMgYi90b29scy9wZXJmL3V0aWwvaW50ZWwtYnRzLmMKaW5kZXggYWFjZmZhMi4uMzRjYjM4MCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2ludGVsLWJ0cy5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9pbnRlbC1idHMuYwpAQCAtMTQsNyArMTQsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2xvZzIuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KIAotI2luY2x1ZGUgImNwdW1hcC5oIgogI2luY2x1ZGUgImNvbG9yLmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKICNpbmNsdWRlICJldmxpc3QuaCIKQEAgLTI5LDYgKzI4LDcgQEAKICNpbmNsdWRlICJhdXh0cmFjZS5oIgogI2luY2x1ZGUgImludGVsLXB0LWRlY29kZXIvaW50ZWwtcHQtaW5zbi1kZWNvZGVyLmgiCiAjaW5jbHVkZSAiaW50ZWwtYnRzLmgiCisjaW5jbHVkZSAidXRpbC9zeW50aGV0aWMtZXZlbnRzLmgiCiAKICNkZWZpbmUgTUFYX1RJTUVTVEFNUCAofjBVTEwpCiAKQEAgLTc2OCw3ICs3NjgsNyBAQCBzdGF0aWMgaW50IGludGVsX2J0c19zeW50aF9ldmVudHMoc3RydWN0IGludGVsX2J0cyAqYnRzLAogCWludCBlcnI7CiAKIAlldmxpc3RfX2Zvcl9lYWNoX2VudHJ5KGV2bGlzdCwgZXZzZWwpIHsKLQkJaWYgKGV2c2VsLT5jb3JlLmF0dHIudHlwZSA9PSBidHMtPnBtdV90eXBlICYmIGV2c2VsLT5pZHMpIHsKKwkJaWYgKGV2c2VsLT5jb3JlLmF0dHIudHlwZSA9PSBidHMtPnBtdV90eXBlICYmIGV2c2VsLT5jb3JlLmlkcykgewogCQkJZm91bmQgPSB0cnVlOwogCQkJYnJlYWs7CiAJCX0KQEAgLTc5NSw3ICs3OTUsNyBAQCBzdGF0aWMgaW50IGludGVsX2J0c19zeW50aF9ldmVudHMoc3RydWN0IGludGVsX2J0cyAqYnRzLAogCWF0dHIuc2FtcGxlX2lkX2FsbCA9IGV2c2VsLT5jb3JlLmF0dHIuc2FtcGxlX2lkX2FsbDsKIAlhdHRyLnJlYWRfZm9ybWF0ID0gZXZzZWwtPmNvcmUuYXR0ci5yZWFkX2Zvcm1hdDsKIAotCWlkID0gZXZzZWwtPmlkWzBdICsgMTAwMDAwMDAwMDsKKwlpZCA9IGV2c2VsLT5jb3JlLmlkWzBdICsgMTAwMDAwMDAwMDsKIAlpZiAoIWlkKQogCQlpZCA9IDE7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9pbnRlbC1wdC5jIGIvdG9vbHMvcGVyZi91dGlsL2ludGVsLXB0LmMKaW5kZXggOWI1NmZiNy4uYTFjOWViNiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2ludGVsLXB0LmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2ludGVsLXB0LmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJ0c2MuaCIKICNpbmNsdWRlICJpbnRlbC1wdC5oIgogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgInV0aWwvc3ludGhldGljLWV2ZW50cy5oIgogI2luY2x1ZGUgInRpbWUtdXRpbHMuaCIKIAogI2luY2x1ZGUgIi4uL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vcGVyZl9yZWdzLmgiCkBAIC0xNzA0LDcgKzE3MDUsNyBAQCBzdGF0aWMgaW50IGludGVsX3B0X3N5bnRoX3BlYnNfc2FtcGxlKHN0cnVjdCBpbnRlbF9wdF9xdWV1ZSAqcHRxKQogCXN0cnVjdCBpbnRlbF9wdCAqcHQgPSBwdHEtPnB0OwogCXN0cnVjdCBldnNlbCAqZXZzZWwgPSBwdC0+cGVic19ldnNlbDsKIAl1NjQgc2FtcGxlX3R5cGUgPSBldnNlbC0+Y29yZS5hdHRyLnNhbXBsZV90eXBlOwotCXU2NCBpZCA9IGV2c2VsLT5pZFswXTsKKwl1NjQgaWQgPSBldnNlbC0+Y29yZS5pZFswXTsKIAl1OCBjcHVtb2RlOwogCiAJaWYgKGludGVsX3B0X3NraXBfZXZlbnQocHQpKQpAQCAtMjcxOSw3ICsyNzIwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHRfc2V0X2V2ZW50X25hbWUoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCB1NjQgaWQsCiAJc3RydWN0IGV2c2VsICpldnNlbDsKIAogCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZsaXN0LCBldnNlbCkgewotCQlpZiAoZXZzZWwtPmlkICYmIGV2c2VsLT5pZFswXSA9PSBpZCkgeworCQlpZiAoZXZzZWwtPmNvcmUuaWQgJiYgZXZzZWwtPmNvcmUuaWRbMF0gPT0gaWQpIHsKIAkJCWlmIChldnNlbC0+bmFtZSkKIAkJCQl6ZnJlZSgmZXZzZWwtPm5hbWUpOwogCQkJZXZzZWwtPm5hbWUgPSBzdHJkdXAobmFtZSk7CkBAIC0yNzM0LDcgKzI3MzUsNyBAQCBzdGF0aWMgc3RydWN0IGV2c2VsICppbnRlbF9wdF9ldnNlbChzdHJ1Y3QgaW50ZWxfcHQgKnB0LAogCXN0cnVjdCBldnNlbCAqZXZzZWw7CiAKIAlldmxpc3RfX2Zvcl9lYWNoX2VudHJ5KGV2bGlzdCwgZXZzZWwpIHsKLQkJaWYgKGV2c2VsLT5jb3JlLmF0dHIudHlwZSA9PSBwdC0+cG11X3R5cGUgJiYgZXZzZWwtPmlkcykKKwkJaWYgKGV2c2VsLT5jb3JlLmF0dHIudHlwZSA9PSBwdC0+cG11X3R5cGUgJiYgZXZzZWwtPmNvcmUuaWRzKQogCQkJcmV0dXJuIGV2c2VsOwogCX0KIApAQCAtMjc3NSw3ICsyNzc2LDcgQEAgc3RhdGljIGludCBpbnRlbF9wdF9zeW50aF9ldmVudHMoc3RydWN0IGludGVsX3B0ICpwdCwKIAlhdHRyLnNhbXBsZV9pZF9hbGwgPSBldnNlbC0+Y29yZS5hdHRyLnNhbXBsZV9pZF9hbGw7CiAJYXR0ci5yZWFkX2Zvcm1hdCA9IGV2c2VsLT5jb3JlLmF0dHIucmVhZF9mb3JtYXQ7CiAKLQlpZCA9IGV2c2VsLT5pZFswXSArIDEwMDAwMDAwMDA7CisJaWQgPSBldnNlbC0+Y29yZS5pZFswXSArIDEwMDAwMDAwMDA7CiAJaWYgKCFpZCkKIAkJaWQgPSAxOwogCkBAIC0yOTAyLDcgKzI5MDMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wdF9zZXR1cF9wZWJzX2V2ZW50cyhzdHJ1Y3QgaW50ZWxfcHQgKnB0KQogCQlyZXR1cm47CiAKIAlldmxpc3RfX2Zvcl9lYWNoX2VudHJ5KHB0LT5zZXNzaW9uLT5ldmxpc3QsIGV2c2VsKSB7Ci0JCWlmIChldnNlbC0+Y29yZS5hdHRyLmF1eF9vdXRwdXQgJiYgZXZzZWwtPmlkKSB7CisJCWlmIChldnNlbC0+Y29yZS5hdHRyLmF1eF9vdXRwdXQgJiYgZXZzZWwtPmNvcmUuaWQpIHsKIAkJCXB0LT5zYW1wbGVfcGVicyA9IHRydWU7CiAJCQlwdC0+cGVic19ldnNlbCA9IGV2c2VsOwogCQkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2ppdGR1bXAuYyBiL3Rvb2xzL3BlcmYvdXRpbC9qaXRkdW1wLmMKaW5kZXggYjgwZjI5Yi4uMWJkZjRjNiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2ppdGR1bXAuYworKysgYi90b29scy9wZXJmL3V0aWwvaml0ZHVtcC5jCkBAIC0xNSw3ICsxNSw2IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5naWZ5Lmg+CiAKICNpbmNsdWRlICJidWlsZC1pZC5oIgotI2luY2x1ZGUgInV0aWwuaCIKICNpbmNsdWRlICJldmVudC5oIgogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAiZXZsaXN0LmgiCkBAIC0yNyw3ICsyNiw2IEBACiAjaW5jbHVkZSAiaml0LmgiCiAjaW5jbHVkZSAiaml0ZHVtcC5oIgogI2luY2x1ZGUgImdlbmVsZi5oIgotI2luY2x1ZGUgIi4uL2J1aWx0aW4uaCIKIAogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSA8bGludXgvemFsbG9jLmg+CkBAIC03NzksNyArNzc3LDcgQEAgaml0X3Byb2Nlc3Moc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiwKIAkgKiB0cmFjayBzYW1wbGVfdHlwZSB0byBjb21wdXRlIGlkX2FsbCBsYXlvdXQKIAkgKiBwZXJmIHNldHMgdGhlIHNhbWUgc2FtcGxlIHR5cGUgdG8gYWxsIGV2ZW50cyBhcyBvZiBub3cKIAkgKi8KLQlmaXJzdCA9IHBlcmZfZXZsaXN0X19maXJzdChzZXNzaW9uLT5ldmxpc3QpOworCWZpcnN0ID0gZXZsaXN0X19maXJzdChzZXNzaW9uLT5ldmxpc3QpOwogCWpkLnNhbXBsZV90eXBlID0gZmlyc3QtPmNvcmUuYXR0ci5zYW1wbGVfdHlwZTsKIAogCSpuYnl0ZXMgPSAwOwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2t2bS1zdGF0LmggYi90b29scy9wZXJmL3V0aWwva3ZtLXN0YXQuaAppbmRleCA0NjkxMzYzLi42ZjBmYTA1IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwva3ZtLXN0YXQuaAorKysgYi90b29scy9wZXJmL3V0aWwva3ZtLXN0YXQuaApAQCAtMiw2ICsyLDggQEAKICNpZm5kZWYgX19QRVJGX0tWTV9TVEFUX0gKICNkZWZpbmUgX19QRVJGX0tWTV9TVEFUX0gKIAorI2lmZGVmIEhBVkVfS1ZNX1NUQVRfU1VQUE9SVAorCiAjaW5jbHVkZSAidG9vbC5oIgogI2luY2x1ZGUgInN0YXQuaCIKICNpbmNsdWRlICJyZWNvcmQuaCIKQEAgLTE0NCw1ICsxNDYsNyBAQCBleHRlcm4gY29uc3QgaW50IGRlY29kZV9zdHJfbGVuOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmt2bV9leGl0X3JlYXNvbjsKIGV4dGVybiBjb25zdCBjaGFyICprdm1fZW50cnlfdHJhY2U7CiBleHRlcm4gY29uc3QgY2hhciAqa3ZtX2V4aXRfdHJhY2U7CisjZW5kaWYgLyogSEFWRV9LVk1fU1RBVF9TVVBQT1JUICovCiAKK2V4dGVybiBpbnQga3ZtX2FkZF9kZWZhdWx0X2FyY2hfZXZlbnQoaW50ICphcmdjLCBjb25zdCBjaGFyICoqYXJndik7CiAjZW5kaWYgLyogX19QRVJGX0tWTV9TVEFUX0ggKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9saWJ1bndpbmQvYXJtNjQuYyBiL3Rvb2xzL3BlcmYvdXRpbC9saWJ1bndpbmQvYXJtNjQuYwppbmRleCA2Njc1NmU2Li42YjRlNWEwIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvbGlidW53aW5kL2FybTY0LmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2xpYnVud2luZC9hcm02NC5jCkBAIC0yMiw3ICsyMiw2IEBACiAjZGVmaW5lIExJQlVOV0lORF9fQVJDSF9SRUdfU1AgUEVSRl9SRUdfQVJNNjRfU1AKIAogI2luY2x1ZGUgInVud2luZC5oIgotI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAibGlidW53aW5kLWFhcmNoNjQuaCIKICNpbmNsdWRlIDwuLi8uLi8uLi8uLi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vcGVyZl9yZWdzLmg+CiAjaW5jbHVkZSAiLi4vLi4vYXJjaC9hcm02NC91dGlsL3Vud2luZC1saWJ1bndpbmQuYyIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9saWJ1bndpbmQveDg2XzMyLmMgYi90b29scy9wZXJmL3V0aWwvbGlidW53aW5kL3g4Nl8zMi5jCmluZGV4IGM1ZTU2ODEuLjIxYzIxNmMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9saWJ1bndpbmQveDg2XzMyLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2xpYnVud2luZC94ODZfMzIuYwpAQCAtMjIsNyArMjIsNiBAQAogI2RlZmluZSBMSUJVTldJTkRfX0FSQ0hfUkVHX1NQIFBFUkZfUkVHX1g4Nl9TUAogCiAjaW5jbHVkZSAidW53aW5kLmgiCi0jaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJsaWJ1bndpbmQteDg2LmgiCiAjaW5jbHVkZSA8Li4vLi4vLi4vLi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9wZXJmX3JlZ3MuaD4KIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2xsdm0tdXRpbHMuYyBiL3Rvb2xzL3BlcmYvdXRpbC9sbHZtLXV0aWxzLmMKaW5kZXggNTVmYjRiMy4uOGQwNGUzZCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL2xsdm0tdXRpbHMuYworKysgYi90b29scy9wZXJmL3V0aWwvbGx2bS11dGlscy5jCkBAIC04LDYgKzgsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvemFsbG9jLmg+CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvbHptYS5jIGIvdG9vbHMvcGVyZi91dGlsL2x6bWEuYwppbmRleCAzOTc0NDcwLi4zOTA2MmRmIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvbHptYS5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9sem1hLmMKQEAgLTcsMTAgKzcsMTAgQEAKICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSAiY29tcHJlc3MuaCIKLSNpbmNsdWRlICJ1dGlsLmgiCiAjaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4KIAogI2RlZmluZSBCVUZTSVpFIDgxOTIKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL21hY2hpbmUuYyBiL3Rvb2xzL3BlcmYvdXRpbC9tYWNoaW5lLmMKaW5kZXggYjQ3NDlkMy4uNzBhOWY4NzEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9tYWNoaW5lLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL21hY2hpbmUuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgImxpbnV4L2hhc2guaCIKICNpbmNsdWRlICJhc20vYnVnLmgiCiAjaW5jbHVkZSAiYnBmLWV2ZW50LmgiCisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+IC8vIHBhZ2Vfc2l6ZQogCiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KICNpbmNsdWRlIDxzeW1ib2wva2FsbHN5bXMuaD4KQEAgLTI2MDksMjEgKzI2MTAsNiBAQCBpbnQgbWFjaGluZXNfX2Zvcl9lYWNoX3RocmVhZChzdHJ1Y3QgbWFjaGluZXMgKm1hY2hpbmVzLAogCXJldHVybiByYzsKIH0KIAotaW50IF9fbWFjaGluZV9fc3ludGhlc2l6ZV90aHJlYWRzKHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLCBzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgc3RydWN0IHRhcmdldCAqdGFyZ2V0LCBzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzLAotCQkJCSAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsIGJvb2wgZGF0YV9tbWFwLAotCQkJCSAgdW5zaWduZWQgaW50IG5yX3RocmVhZHNfc3ludGhlc2l6ZSkKLXsKLQlpZiAodGFyZ2V0X19oYXNfdGFzayh0YXJnZXQpKQotCQlyZXR1cm4gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV90aHJlYWRfbWFwKHRvb2wsIHRocmVhZHMsIHByb2Nlc3MsIG1hY2hpbmUsIGRhdGFfbW1hcCk7Ci0JZWxzZSBpZiAodGFyZ2V0X19oYXNfY3B1KHRhcmdldCkpCi0JCXJldHVybiBwZXJmX2V2ZW50X19zeW50aGVzaXplX3RocmVhZHModG9vbCwgcHJvY2VzcywKLQkJCQkJCSAgICAgIG1hY2hpbmUsIGRhdGFfbW1hcCwKLQkJCQkJCSAgICAgIG5yX3RocmVhZHNfc3ludGhlc2l6ZSk7Ci0JLyogY29tbWFuZCBzcGVjaWZpZWQgKi8KLQlyZXR1cm4gMDsKLX0KLQogcGlkX3QgbWFjaGluZV9fZ2V0X2N1cnJlbnRfdGlkKHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLCBpbnQgY3B1KQogewogCWludCBucl9jcHVzID0gbWluKG1hY2hpbmUtPmVudi0+bnJfY3B1c19vbmxpbmUsIE1BWF9OUl9DUFVTKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9tYWNoaW5lLmggYi90b29scy9wZXJmL3V0aWwvbWFjaGluZS5oCmluZGV4IGZmZDM5MWEuLjE4ZTEzYzAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9tYWNoaW5lLmgKKysrIGIvdG9vbHMvcGVyZi91dGlsL21hY2hpbmUuaApAQCAtNiw3ICs2LDYgQEAKICNpbmNsdWRlIDxsaW51eC9yYnRyZWUuaD4KICNpbmNsdWRlICJtYXBfZ3JvdXBzLmgiCiAjaW5jbHVkZSAiZHNvcy5oIgotI2luY2x1ZGUgImV2ZW50LmgiCiAjaW5jbHVkZSAicndzZW0uaCIKIAogc3RydWN0IGFkZHJfbG9jYXRpb247CkBAIC0yNTIsMjAgKzI1MSw2IEBAIGludCBtYWNoaW5lc19fZm9yX2VhY2hfdGhyZWFkKHN0cnVjdCBtYWNoaW5lcyAqbWFjaGluZXMsCiAJCQkgICAgICBpbnQgKCpmbikoc3RydWN0IHRocmVhZCAqdGhyZWFkLCB2b2lkICpwKSwKIAkJCSAgICAgIHZvaWQgKnByaXYpOwogCi1pbnQgX19tYWNoaW5lX19zeW50aGVzaXplX3RocmVhZHMoc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsIHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJICBzdHJ1Y3QgdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHMsCi0JCQkJICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywgYm9vbCBkYXRhX21tYXAsCi0JCQkJICB1bnNpZ25lZCBpbnQgbnJfdGhyZWFkc19zeW50aGVzaXplKTsKLXN0YXRpYyBpbmxpbmUKLWludCBtYWNoaW5lX19zeW50aGVzaXplX3RocmVhZHMoc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsIHN0cnVjdCB0YXJnZXQgKnRhcmdldCwKLQkJCQlzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzLCBib29sIGRhdGFfbW1hcCwKLQkJCQl1bnNpZ25lZCBpbnQgbnJfdGhyZWFkc19zeW50aGVzaXplKQotewotCXJldHVybiBfX21hY2hpbmVfX3N5bnRoZXNpemVfdGhyZWFkcyhtYWNoaW5lLCBOVUxMLCB0YXJnZXQsIHRocmVhZHMsCi0JCQkJCSAgICAgcGVyZl9ldmVudF9fcHJvY2VzcywgZGF0YV9tbWFwLAotCQkJCQkgICAgIG5yX3RocmVhZHNfc3ludGhlc2l6ZSk7Ci19Ci0KIHBpZF90IG1hY2hpbmVfX2dldF9jdXJyZW50X3RpZChzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSwgaW50IGNwdSk7CiBpbnQgbWFjaGluZV9fc2V0X2N1cnJlbnRfdGlkKHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLCBpbnQgY3B1LCBwaWRfdCBwaWQsCiAJCQkgICAgIHBpZF90IHRpZCk7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvbWVtc3dhcC5oIGIvdG9vbHMvcGVyZi91dGlsL21lbXN3YXAuaAppbmRleCAxZTI5ZmY5Li4yYzM4ZThjIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvbWVtc3dhcC5oCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9tZW1zd2FwLmgKQEAgLTIsNiArMiwxMyBAQAogI2lmbmRlZiBQRVJGX01FTVNXQVBfSF8KICNkZWZpbmUgUEVSRl9NRU1TV0FQX0hfCiAKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCit1bmlvbiB1NjRfc3dhcCB7CisJdTY0IHZhbDY0OworCXUzMiB2YWwzMlsyXTsKK307CisKIHZvaWQgbWVtX2Jzd2FwXzY0KHZvaWQgKnNyYywgaW50IGJ5dGVfc2l6ZSk7CiB2b2lkIG1lbV9ic3dhcF8zMih2b2lkICpzcmMsIGludCBieXRlX3NpemUpOwogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvbW1hcC5jIGIvdG9vbHMvcGVyZi91dGlsL21tYXAuYwppbmRleCAzM2M1YjU0Li5hMzVkYzU3IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvbW1hcC5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9tbWFwLmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4gLy8gc3lzY29uZigpCiAjaWZkZWYgSEFWRV9MSUJOVU1BX1NVUFBPUlQKICNpbmNsdWRlIDxudW1haWYuaD4KICNlbmRpZgpAQCAtMjAsMjUgKzIxLDI1IEBACiAjaW5jbHVkZSAiZXZlbnQuaCIKICNpbmNsdWRlICJtbWFwLmgiCiAjaW5jbHVkZSAiLi4vcGVyZi5oIgotI2luY2x1ZGUgInV0aWwuaCIgLyogcGFnZV9zaXplICovCisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+IC8qIHBhZ2Vfc2l6ZSAqLwogCi1zaXplX3QgcGVyZl9tbWFwX19tbWFwX2xlbihzdHJ1Y3QgcGVyZl9tbWFwICptYXApCitzaXplX3QgcGVyZl9tbWFwX19tbWFwX2xlbihzdHJ1Y3QgbW1hcCAqbWFwKQogewotCXJldHVybiBtYXAtPm1hc2sgKyAxICsgcGFnZV9zaXplOworCXJldHVybiBtYXAtPmNvcmUubWFzayArIDEgKyBwYWdlX3NpemU7CiB9CiAKIC8qIFdoZW4gY2hlY2tfbWVzc3VwIGlzIHRydWUsICdlbmQnIG11c3QgcG9pbnRzIHRvIGEgZ29vZCBlbnRyeSAqLwotc3RhdGljIHVuaW9uIHBlcmZfZXZlbnQgKnBlcmZfbW1hcF9fcmVhZChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsCitzdGF0aWMgdW5pb24gcGVyZl9ldmVudCAqcGVyZl9tbWFwX19yZWFkKHN0cnVjdCBtbWFwICptYXAsCiAJCQkJCSB1NjQgKnN0YXJ0cCwgdTY0IGVuZCkKIHsKLQl1bnNpZ25lZCBjaGFyICpkYXRhID0gbWFwLT5iYXNlICsgcGFnZV9zaXplOworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSBtYXAtPmNvcmUuYmFzZSArIHBhZ2Vfc2l6ZTsKIAl1bmlvbiBwZXJmX2V2ZW50ICpldmVudCA9IE5VTEw7CiAJaW50IGRpZmYgPSBlbmQgLSAqc3RhcnRwOwogCiAJaWYgKGRpZmYgPj0gKGludClzaXplb2YoZXZlbnQtPmhlYWRlcikpIHsKIAkJc2l6ZV90IHNpemU7CiAKLQkJZXZlbnQgPSAodW5pb24gcGVyZl9ldmVudCAqKSZkYXRhWypzdGFydHAgJiBtYXAtPm1hc2tdOworCQlldmVudCA9ICh1bmlvbiBwZXJmX2V2ZW50ICopJmRhdGFbKnN0YXJ0cCAmIG1hcC0+Y29yZS5tYXNrXTsKIAkJc2l6ZSA9IGV2ZW50LT5oZWFkZXIuc2l6ZTsKIAogCQlpZiAoc2l6ZSA8IHNpemVvZihldmVudC0+aGVhZGVyKSB8fCBkaWZmIDwgKGludClzaXplKQpAQCAtNDgsMjAgKzQ5LDIwIEBAIHN0YXRpYyB1bmlvbiBwZXJmX2V2ZW50ICpwZXJmX21tYXBfX3JlYWQoc3RydWN0IHBlcmZfbW1hcCAqbWFwLAogCQkgKiBFdmVudCBzdHJhZGRsZXMgdGhlIG1tYXAgYm91bmRhcnkgLS0gaGVhZGVyIHNob3VsZCBhbHdheXMKIAkJICogYmUgaW5zaWRlIGR1ZSB0byB1NjQgYWxpZ25tZW50IG9mIG91dHB1dC4KIAkJICovCi0JCWlmICgoKnN0YXJ0cCAmIG1hcC0+bWFzaykgKyBzaXplICE9ICgoKnN0YXJ0cCArIHNpemUpICYgbWFwLT5tYXNrKSkgeworCQlpZiAoKCpzdGFydHAgJiBtYXAtPmNvcmUubWFzaykgKyBzaXplICE9ICgoKnN0YXJ0cCArIHNpemUpICYgbWFwLT5jb3JlLm1hc2spKSB7CiAJCQl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gKnN0YXJ0cDsKIAkJCXVuc2lnbmVkIGludCBsZW4gPSBtaW4oc2l6ZW9mKCpldmVudCksIHNpemUpLCBjcHk7Ci0JCQl2b2lkICpkc3QgPSBtYXAtPmV2ZW50X2NvcHk7CisJCQl2b2lkICpkc3QgPSBtYXAtPmNvcmUuZXZlbnRfY29weTsKIAogCQkJZG8gewotCQkJCWNweSA9IG1pbihtYXAtPm1hc2sgKyAxIC0gKG9mZnNldCAmIG1hcC0+bWFzayksIGxlbik7Ci0JCQkJbWVtY3B5KGRzdCwgJmRhdGFbb2Zmc2V0ICYgbWFwLT5tYXNrXSwgY3B5KTsKKwkJCQljcHkgPSBtaW4obWFwLT5jb3JlLm1hc2sgKyAxIC0gKG9mZnNldCAmIG1hcC0+Y29yZS5tYXNrKSwgbGVuKTsKKwkJCQltZW1jcHkoZHN0LCAmZGF0YVtvZmZzZXQgJiBtYXAtPmNvcmUubWFza10sIGNweSk7CiAJCQkJb2Zmc2V0ICs9IGNweTsKIAkJCQlkc3QgKz0gY3B5OwogCQkJCWxlbiAtPSBjcHk7CiAJCQl9IHdoaWxlIChsZW4pOwogCi0JCQlldmVudCA9ICh1bmlvbiBwZXJmX2V2ZW50ICopbWFwLT5ldmVudF9jb3B5OworCQkJZXZlbnQgPSAodW5pb24gcGVyZl9ldmVudCAqKW1hcC0+Y29yZS5ldmVudF9jb3B5OwogCQl9CiAKIAkJKnN0YXJ0cCArPSBzaXplOwpAQCAtODIsNTUgKzgzLDU1IEBAIHN0YXRpYyB1bmlvbiBwZXJmX2V2ZW50ICpwZXJmX21tYXBfX3JlYWQoc3RydWN0IHBlcmZfbW1hcCAqbWFwLAogICogfQogICogcGVyZl9tbWFwX19yZWFkX2RvbmUoKQogICovCi11bmlvbiBwZXJmX2V2ZW50ICpwZXJmX21tYXBfX3JlYWRfZXZlbnQoc3RydWN0IHBlcmZfbW1hcCAqbWFwKQordW5pb24gcGVyZl9ldmVudCAqcGVyZl9tbWFwX19yZWFkX2V2ZW50KHN0cnVjdCBtbWFwICptYXApCiB7CiAJdW5pb24gcGVyZl9ldmVudCAqZXZlbnQ7CiAKIAkvKgogCSAqIENoZWNrIGlmIGV2ZW50IHdhcyB1bm1hcHBlZCBkdWUgdG8gYSBQT0xMSFVQL1BPTExFUlIuCiAJICovCi0JaWYgKCFyZWZjb3VudF9yZWFkKCZtYXAtPnJlZmNudCkpCisJaWYgKCFyZWZjb3VudF9yZWFkKCZtYXAtPmNvcmUucmVmY250KSkKIAkJcmV0dXJuIE5VTEw7CiAKIAkvKiBub24tb3ZlcndpcnRlIGRvZXNuJ3QgcGF1c2UgdGhlIHJpbmdidWZmZXIgKi8KLQlpZiAoIW1hcC0+b3ZlcndyaXRlKQotCQltYXAtPmVuZCA9IHBlcmZfbW1hcF9fcmVhZF9oZWFkKG1hcCk7CisJaWYgKCFtYXAtPmNvcmUub3ZlcndyaXRlKQorCQltYXAtPmNvcmUuZW5kID0gcGVyZl9tbWFwX19yZWFkX2hlYWQobWFwKTsKIAotCWV2ZW50ID0gcGVyZl9tbWFwX19yZWFkKG1hcCwgJm1hcC0+c3RhcnQsIG1hcC0+ZW5kKTsKKwlldmVudCA9IHBlcmZfbW1hcF9fcmVhZChtYXAsICZtYXAtPmNvcmUuc3RhcnQsIG1hcC0+Y29yZS5lbmQpOwogCi0JaWYgKCFtYXAtPm92ZXJ3cml0ZSkKLQkJbWFwLT5wcmV2ID0gbWFwLT5zdGFydDsKKwlpZiAoIW1hcC0+Y29yZS5vdmVyd3JpdGUpCisJCW1hcC0+Y29yZS5wcmV2ID0gbWFwLT5jb3JlLnN0YXJ0OwogCiAJcmV0dXJuIGV2ZW50OwogfQogCi1zdGF0aWMgYm9vbCBwZXJmX21tYXBfX2VtcHR5KHN0cnVjdCBwZXJmX21tYXAgKm1hcCkKK3N0YXRpYyBib29sIHBlcmZfbW1hcF9fZW1wdHkoc3RydWN0IG1tYXAgKm1hcCkKIHsKLQlyZXR1cm4gcGVyZl9tbWFwX19yZWFkX2hlYWQobWFwKSA9PSBtYXAtPnByZXYgJiYgIW1hcC0+YXV4dHJhY2VfbW1hcC5iYXNlOworCXJldHVybiBwZXJmX21tYXBfX3JlYWRfaGVhZChtYXApID09IG1hcC0+Y29yZS5wcmV2ICYmICFtYXAtPmF1eHRyYWNlX21tYXAuYmFzZTsKIH0KIAotdm9pZCBwZXJmX21tYXBfX2dldChzdHJ1Y3QgcGVyZl9tbWFwICptYXApCit2b2lkIHBlcmZfbW1hcF9fZ2V0KHN0cnVjdCBtbWFwICptYXApCiB7Ci0JcmVmY291bnRfaW5jKCZtYXAtPnJlZmNudCk7CisJcmVmY291bnRfaW5jKCZtYXAtPmNvcmUucmVmY250KTsKIH0KIAotdm9pZCBwZXJmX21tYXBfX3B1dChzdHJ1Y3QgcGVyZl9tbWFwICptYXApCit2b2lkIHBlcmZfbW1hcF9fcHV0KHN0cnVjdCBtbWFwICptYXApCiB7Ci0JQlVHX09OKG1hcC0+YmFzZSAmJiByZWZjb3VudF9yZWFkKCZtYXAtPnJlZmNudCkgPT0gMCk7CisJQlVHX09OKG1hcC0+Y29yZS5iYXNlICYmIHJlZmNvdW50X3JlYWQoJm1hcC0+Y29yZS5yZWZjbnQpID09IDApOwogCi0JaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgmbWFwLT5yZWZjbnQpKQorCWlmIChyZWZjb3VudF9kZWNfYW5kX3Rlc3QoJm1hcC0+Y29yZS5yZWZjbnQpKQogCQlwZXJmX21tYXBfX211bm1hcChtYXApOwogfQogCi12b2lkIHBlcmZfbW1hcF9fY29uc3VtZShzdHJ1Y3QgcGVyZl9tbWFwICptYXApCit2b2lkIHBlcmZfbW1hcF9fY29uc3VtZShzdHJ1Y3QgbW1hcCAqbWFwKQogewotCWlmICghbWFwLT5vdmVyd3JpdGUpIHsKLQkJdTY0IG9sZCA9IG1hcC0+cHJldjsKKwlpZiAoIW1hcC0+Y29yZS5vdmVyd3JpdGUpIHsKKwkJdTY0IG9sZCA9IG1hcC0+Y29yZS5wcmV2OwogCiAJCXBlcmZfbW1hcF9fd3JpdGVfdGFpbChtYXAsIG9sZCk7CiAJfQogCi0JaWYgKHJlZmNvdW50X3JlYWQoJm1hcC0+cmVmY250KSA9PSAxICYmIHBlcmZfbW1hcF9fZW1wdHkobWFwKSkKKwlpZiAocmVmY291bnRfcmVhZCgmbWFwLT5jb3JlLnJlZmNudCkgPT0gMSAmJiBwZXJmX21tYXBfX2VtcHR5KG1hcCkpCiAJCXBlcmZfbW1hcF9fcHV0KG1hcCk7CiB9CiAKQEAgLTE2MSwxMyArMTYyLDEzIEBAIHZvaWQgX193ZWFrIGF1eHRyYWNlX21tYXBfcGFyYW1zX19zZXRfaWR4KHN0cnVjdCBhdXh0cmFjZV9tbWFwX3BhcmFtcyAqbXAgX19tYXliCiB9CiAKICNpZmRlZiBIQVZFX0FJT19TVVBQT1JUCi1zdGF0aWMgaW50IHBlcmZfbW1hcF9fYWlvX2VuYWJsZWQoc3RydWN0IHBlcmZfbW1hcCAqbWFwKQorc3RhdGljIGludCBwZXJmX21tYXBfX2Fpb19lbmFibGVkKHN0cnVjdCBtbWFwICptYXApCiB7CiAJcmV0dXJuIG1hcC0+YWlvLm5yX2NibG9ja3MgPiAwOwogfQogCiAjaWZkZWYgSEFWRV9MSUJOVU1BX1NVUFBPUlQKLXN0YXRpYyBpbnQgcGVyZl9tbWFwX19haW9fYWxsb2Moc3RydWN0IHBlcmZfbW1hcCAqbWFwLCBpbnQgaWR4KQorc3RhdGljIGludCBwZXJmX21tYXBfX2Fpb19hbGxvYyhzdHJ1Y3QgbW1hcCAqbWFwLCBpbnQgaWR4KQogewogCW1hcC0+YWlvLmRhdGFbaWR4XSA9IG1tYXAoTlVMTCwgcGVyZl9tbWFwX19tbWFwX2xlbihtYXApLCBQUk9UX1JFQUR8UFJPVF9XUklURSwKIAkJCQkgIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1PVVMsIDAsIDApOwpAQCAtMTc5LDcgKzE4MCw3IEBAIHN0YXRpYyBpbnQgcGVyZl9tbWFwX19haW9fYWxsb2Moc3RydWN0IHBlcmZfbW1hcCAqbWFwLCBpbnQgaWR4KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBwZXJmX21tYXBfX2Fpb19mcmVlKHN0cnVjdCBwZXJmX21tYXAgKm1hcCwgaW50IGlkeCkKK3N0YXRpYyB2b2lkIHBlcmZfbW1hcF9fYWlvX2ZyZWUoc3RydWN0IG1tYXAgKm1hcCwgaW50IGlkeCkKIHsKIAlpZiAobWFwLT5haW8uZGF0YVtpZHhdKSB7CiAJCW11bm1hcChtYXAtPmFpby5kYXRhW2lkeF0sIHBlcmZfbW1hcF9fbW1hcF9sZW4obWFwKSk7CkBAIC0xODcsNyArMTg4LDcgQEAgc3RhdGljIHZvaWQgcGVyZl9tbWFwX19haW9fZnJlZShzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIGludCBpZHgpCiAJfQogfQogCi1zdGF0aWMgaW50IHBlcmZfbW1hcF9fYWlvX2JpbmQoc3RydWN0IHBlcmZfbW1hcCAqbWFwLCBpbnQgaWR4LCBpbnQgY3B1LCBpbnQgYWZmaW5pdHkpCitzdGF0aWMgaW50IHBlcmZfbW1hcF9fYWlvX2JpbmQoc3RydWN0IG1tYXAgKm1hcCwgaW50IGlkeCwgaW50IGNwdSwgaW50IGFmZmluaXR5KQogewogCXZvaWQgKmRhdGE7CiAJc2l6ZV90IG1tYXBfbGVuOwpAQCAtMjA3LDcgKzIwOCw3IEBAIHN0YXRpYyBpbnQgcGVyZl9tbWFwX19haW9fYmluZChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIGludCBpZHgsIGludCBjcHUsIGludCBhZmZpCiAJcmV0dXJuIDA7CiB9CiAjZWxzZSAvKiAhSEFWRV9MSUJOVU1BX1NVUFBPUlQgKi8KLXN0YXRpYyBpbnQgcGVyZl9tbWFwX19haW9fYWxsb2Moc3RydWN0IHBlcmZfbW1hcCAqbWFwLCBpbnQgaWR4KQorc3RhdGljIGludCBwZXJmX21tYXBfX2Fpb19hbGxvYyhzdHJ1Y3QgbW1hcCAqbWFwLCBpbnQgaWR4KQogewogCW1hcC0+YWlvLmRhdGFbaWR4XSA9IG1hbGxvYyhwZXJmX21tYXBfX21tYXBfbGVuKG1hcCkpOwogCWlmIChtYXAtPmFpby5kYXRhW2lkeF0gPT0gTlVMTCkKQEAgLTIxNiwxOSArMjE3LDE5IEBAIHN0YXRpYyBpbnQgcGVyZl9tbWFwX19haW9fYWxsb2Moc3RydWN0IHBlcmZfbW1hcCAqbWFwLCBpbnQgaWR4KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBwZXJmX21tYXBfX2Fpb19mcmVlKHN0cnVjdCBwZXJmX21tYXAgKm1hcCwgaW50IGlkeCkKK3N0YXRpYyB2b2lkIHBlcmZfbW1hcF9fYWlvX2ZyZWUoc3RydWN0IG1tYXAgKm1hcCwgaW50IGlkeCkKIHsKIAl6ZnJlZSgmKG1hcC0+YWlvLmRhdGFbaWR4XSkpOwogfQogCi1zdGF0aWMgaW50IHBlcmZfbW1hcF9fYWlvX2JpbmQoc3RydWN0IHBlcmZfbW1hcCAqbWFwIF9fbWF5YmVfdW51c2VkLCBpbnQgaWR4IF9fbWF5YmVfdW51c2VkLAorc3RhdGljIGludCBwZXJmX21tYXBfX2Fpb19iaW5kKHN0cnVjdCBtbWFwICptYXAgX19tYXliZV91bnVzZWQsIGludCBpZHggX19tYXliZV91bnVzZWQsCiAJCWludCBjcHUgX19tYXliZV91bnVzZWQsIGludCBhZmZpbml0eSBfX21heWJlX3VudXNlZCkKIHsKIAlyZXR1cm4gMDsKIH0KICNlbmRpZgogCi1zdGF0aWMgaW50IHBlcmZfbW1hcF9fYWlvX21tYXAoc3RydWN0IHBlcmZfbW1hcCAqbWFwLCBzdHJ1Y3QgbW1hcF9wYXJhbXMgKm1wKQorc3RhdGljIGludCBwZXJmX21tYXBfX2Fpb19tbWFwKHN0cnVjdCBtbWFwICptYXAsIHN0cnVjdCBtbWFwX3BhcmFtcyAqbXApCiB7CiAJaW50IGRlbHRhX21heCwgaSwgcHJpbywgcmV0OwogCkBAIC0yNTYsNyArMjU3LDcgQEAgc3RhdGljIGludCBwZXJmX21tYXBfX2Fpb19tbWFwKHN0cnVjdCBwZXJmX21tYXAgKm1hcCwgc3RydWN0IG1tYXBfcGFyYW1zICptcCkKIAkJCQlwcl9kZWJ1ZzIoImZhaWxlZCB0byBhbGxvY2F0ZSBkYXRhIGJ1ZmZlciBhcmVhLCBlcnJvciAlbSIpOwogCQkJCXJldHVybiAtMTsKIAkJCX0KLQkJCXJldCA9IHBlcmZfbW1hcF9fYWlvX2JpbmQobWFwLCBpLCBtYXAtPmNwdSwgbXAtPmFmZmluaXR5KTsKKwkJCXJldCA9IHBlcmZfbW1hcF9fYWlvX2JpbmQobWFwLCBpLCBtYXAtPmNvcmUuY3B1LCBtcC0+YWZmaW5pdHkpOwogCQkJaWYgKHJldCA9PSAtMSkKIAkJCQlyZXR1cm4gLTE7CiAJCQkvKgpAQCAtMjgyLDcgKzI4Myw3IEBAIHN0YXRpYyBpbnQgcGVyZl9tbWFwX19haW9fbW1hcChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHN0cnVjdCBtbWFwX3BhcmFtcyAqbXApCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIHBlcmZfbW1hcF9fYWlvX211bm1hcChzdHJ1Y3QgcGVyZl9tbWFwICptYXApCitzdGF0aWMgdm9pZCBwZXJmX21tYXBfX2Fpb19tdW5tYXAoc3RydWN0IG1tYXAgKm1hcCkKIHsKIAlpbnQgaTsKIApAQCAtMjk0LDM0ICsyOTUsMzQgQEAgc3RhdGljIHZvaWQgcGVyZl9tbWFwX19haW9fbXVubWFwKHN0cnVjdCBwZXJmX21tYXAgKm1hcCkKIAl6ZnJlZSgmbWFwLT5haW8uYWlvY2IpOwogfQogI2Vsc2UgLyogIUhBVkVfQUlPX1NVUFBPUlQgKi8KLXN0YXRpYyBpbnQgcGVyZl9tbWFwX19haW9fZW5hYmxlZChzdHJ1Y3QgcGVyZl9tbWFwICptYXAgX19tYXliZV91bnVzZWQpCitzdGF0aWMgaW50IHBlcmZfbW1hcF9fYWlvX2VuYWJsZWQoc3RydWN0IG1tYXAgKm1hcCBfX21heWJlX3VudXNlZCkKIHsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBwZXJmX21tYXBfX2Fpb19tbWFwKHN0cnVjdCBwZXJmX21tYXAgKm1hcCBfX21heWJlX3VudXNlZCwKK3N0YXRpYyBpbnQgcGVyZl9tbWFwX19haW9fbW1hcChzdHJ1Y3QgbW1hcCAqbWFwIF9fbWF5YmVfdW51c2VkLAogCQkJICAgICAgIHN0cnVjdCBtbWFwX3BhcmFtcyAqbXAgX19tYXliZV91bnVzZWQpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIHBlcmZfbW1hcF9fYWlvX211bm1hcChzdHJ1Y3QgcGVyZl9tbWFwICptYXAgX19tYXliZV91bnVzZWQpCitzdGF0aWMgdm9pZCBwZXJmX21tYXBfX2Fpb19tdW5tYXAoc3RydWN0IG1tYXAgKm1hcCBfX21heWJlX3VudXNlZCkKIHsKIH0KICNlbmRpZgogCi12b2lkIHBlcmZfbW1hcF9fbXVubWFwKHN0cnVjdCBwZXJmX21tYXAgKm1hcCkKK3ZvaWQgcGVyZl9tbWFwX19tdW5tYXAoc3RydWN0IG1tYXAgKm1hcCkKIHsKIAlwZXJmX21tYXBfX2Fpb19tdW5tYXAobWFwKTsKIAlpZiAobWFwLT5kYXRhICE9IE5VTEwpIHsKIAkJbXVubWFwKG1hcC0+ZGF0YSwgcGVyZl9tbWFwX19tbWFwX2xlbihtYXApKTsKIAkJbWFwLT5kYXRhID0gTlVMTDsKIAl9Ci0JaWYgKG1hcC0+YmFzZSAhPSBOVUxMKSB7Ci0JCW11bm1hcChtYXAtPmJhc2UsIHBlcmZfbW1hcF9fbW1hcF9sZW4obWFwKSk7Ci0JCW1hcC0+YmFzZSA9IE5VTEw7Ci0JCW1hcC0+ZmQgPSAtMTsKLQkJcmVmY291bnRfc2V0KCZtYXAtPnJlZmNudCwgMCk7CisJaWYgKG1hcC0+Y29yZS5iYXNlICE9IE5VTEwpIHsKKwkJbXVubWFwKG1hcC0+Y29yZS5iYXNlLCBwZXJmX21tYXBfX21tYXBfbGVuKG1hcCkpOworCQltYXAtPmNvcmUuYmFzZSA9IE5VTEw7CisJCW1hcC0+Y29yZS5mZCA9IC0xOworCQlyZWZjb3VudF9zZXQoJm1hcC0+Y29yZS5yZWZjbnQsIDApOwogCX0KIAlhdXh0cmFjZV9tbWFwX19tdW5tYXAoJm1hcC0+YXV4dHJhY2VfbW1hcCk7CiB9CkBAIC0zNDMsMTYgKzM0NCwxNiBAQCBzdGF0aWMgdm9pZCBidWlsZF9ub2RlX21hc2soaW50IG5vZGUsIGNwdV9zZXRfdCAqbWFzaykKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIHBlcmZfbW1hcF9fc2V0dXBfYWZmaW5pdHlfbWFzayhzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHN0cnVjdCBtbWFwX3BhcmFtcyAqbXApCitzdGF0aWMgdm9pZCBwZXJmX21tYXBfX3NldHVwX2FmZmluaXR5X21hc2soc3RydWN0IG1tYXAgKm1hcCwgc3RydWN0IG1tYXBfcGFyYW1zICptcCkKIHsKIAlDUFVfWkVSTygmbWFwLT5hZmZpbml0eV9tYXNrKTsKIAlpZiAobXAtPmFmZmluaXR5ID09IFBFUkZfQUZGSU5JVFlfTk9ERSAmJiBjcHVfX21heF9ub2RlKCkgPiAxKQotCQlidWlsZF9ub2RlX21hc2soY3B1X19nZXRfbm9kZShtYXAtPmNwdSksICZtYXAtPmFmZmluaXR5X21hc2spOworCQlidWlsZF9ub2RlX21hc2soY3B1X19nZXRfbm9kZShtYXAtPmNvcmUuY3B1KSwgJm1hcC0+YWZmaW5pdHlfbWFzayk7CiAJZWxzZSBpZiAobXAtPmFmZmluaXR5ID09IFBFUkZfQUZGSU5JVFlfQ1BVKQotCQlDUFVfU0VUKG1hcC0+Y3B1LCAmbWFwLT5hZmZpbml0eV9tYXNrKTsKKwkJQ1BVX1NFVChtYXAtPmNvcmUuY3B1LCAmbWFwLT5hZmZpbml0eV9tYXNrKTsKIH0KIAotaW50IHBlcmZfbW1hcF9fbW1hcChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHN0cnVjdCBtbWFwX3BhcmFtcyAqbXAsIGludCBmZCwgaW50IGNwdSkKK2ludCBwZXJmX21tYXBfX21tYXAoc3RydWN0IG1tYXAgKm1hcCwgc3RydWN0IG1tYXBfcGFyYW1zICptcCwgaW50IGZkLCBpbnQgY3B1KQogewogCS8qCiAJICogVGhlIGxhc3Qgb25lIHdpbGwgYmUgZG9uZSBhdCBwZXJmX21tYXBfX2NvbnN1bWUoKSwgc28gdGhhdCB3ZQpAQCAtMzY3LDIzICszNjgsMjMgQEAgaW50IHBlcmZfbW1hcF9fbW1hcChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHN0cnVjdCBtbWFwX3BhcmFtcyAqbXAsIGludCBmZCwgaW50IGMKIAkgKiBldmxpc3QgbGF5ZXIgY2FuJ3QganVzdCBkcm9wIGl0IHdoZW4gZmlsdGVyaW5nIGV2ZW50cyBpbgogCSAqIHBlcmZfZXZsaXN0X19maWx0ZXJfcG9sbGZkKCkuCiAJICovCi0JcmVmY291bnRfc2V0KCZtYXAtPnJlZmNudCwgMik7Ci0JbWFwLT5wcmV2ID0gMDsKLQltYXAtPm1hc2sgPSBtcC0+bWFzazsKLQltYXAtPmJhc2UgPSBtbWFwKE5VTEwsIHBlcmZfbW1hcF9fbW1hcF9sZW4obWFwKSwgbXAtPnByb3QsCisJcmVmY291bnRfc2V0KCZtYXAtPmNvcmUucmVmY250LCAyKTsKKwltYXAtPmNvcmUucHJldiA9IDA7CisJbWFwLT5jb3JlLm1hc2sgPSBtcC0+bWFzazsKKwltYXAtPmNvcmUuYmFzZSA9IG1tYXAoTlVMTCwgcGVyZl9tbWFwX19tbWFwX2xlbihtYXApLCBtcC0+cHJvdCwKIAkJCSBNQVBfU0hBUkVELCBmZCwgMCk7Ci0JaWYgKG1hcC0+YmFzZSA9PSBNQVBfRkFJTEVEKSB7CisJaWYgKG1hcC0+Y29yZS5iYXNlID09IE1BUF9GQUlMRUQpIHsKIAkJcHJfZGVidWcyKCJmYWlsZWQgdG8gbW1hcCBwZXJmIGV2ZW50IHJpbmcgYnVmZmVyLCBlcnJvciAlZFxuIiwKIAkJCSAgZXJybm8pOwotCQltYXAtPmJhc2UgPSBOVUxMOworCQltYXAtPmNvcmUuYmFzZSA9IE5VTEw7CiAJCXJldHVybiAtMTsKIAl9Ci0JbWFwLT5mZCA9IGZkOwotCW1hcC0+Y3B1ID0gY3B1OworCW1hcC0+Y29yZS5mZCA9IGZkOworCW1hcC0+Y29yZS5jcHUgPSBjcHU7CiAKIAlwZXJmX21tYXBfX3NldHVwX2FmZmluaXR5X21hc2sobWFwLCBtcCk7CiAKLQltYXAtPmZsdXNoID0gbXAtPmZsdXNoOworCW1hcC0+Y29yZS5mbHVzaCA9IG1wLT5mbHVzaDsKIAogCW1hcC0+Y29tcF9sZXZlbCA9IG1wLT5jb21wX2xldmVsOwogCkBAIC0zOTksNyArNDAwLDcgQEAgaW50IHBlcmZfbW1hcF9fbW1hcChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHN0cnVjdCBtbWFwX3BhcmFtcyAqbXAsIGludCBmZCwgaW50IGMKIAl9CiAKIAlpZiAoYXV4dHJhY2VfbW1hcF9fbW1hcCgmbWFwLT5hdXh0cmFjZV9tbWFwLAotCQkJCSZtcC0+YXV4dHJhY2VfbXAsIG1hcC0+YmFzZSwgZmQpKQorCQkJCSZtcC0+YXV4dHJhY2VfbXAsIG1hcC0+Y29yZS5iYXNlLCBmZCkpCiAJCXJldHVybiAtMTsKIAogCXJldHVybiBwZXJmX21tYXBfX2Fpb19tbWFwKG1hcCwgbXApOwpAQCAtNDQwLDI1ICs0NDEsMjUgQEAgc3RhdGljIGludCBvdmVyd3JpdGVfcmJfZmluZF9yYW5nZSh2b2lkICpidWYsIGludCBtYXNrLCB1NjQgKnN0YXJ0LCB1NjQgKmVuZCkKIC8qCiAgKiBSZXBvcnQgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIGF2YWlsYWJsZSBkYXRhIGluIHJpbmdidWZmZXIKICAqLwotc3RhdGljIGludCBfX3BlcmZfbW1hcF9fcmVhZF9pbml0KHN0cnVjdCBwZXJmX21tYXAgKm1kKQorc3RhdGljIGludCBfX3BlcmZfbW1hcF9fcmVhZF9pbml0KHN0cnVjdCBtbWFwICptZCkKIHsKIAl1NjQgaGVhZCA9IHBlcmZfbW1hcF9fcmVhZF9oZWFkKG1kKTsKLQl1NjQgb2xkID0gbWQtPnByZXY7Ci0JdW5zaWduZWQgY2hhciAqZGF0YSA9IG1kLT5iYXNlICsgcGFnZV9zaXplOworCXU2NCBvbGQgPSBtZC0+Y29yZS5wcmV2OworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSBtZC0+Y29yZS5iYXNlICsgcGFnZV9zaXplOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAotCW1kLT5zdGFydCA9IG1kLT5vdmVyd3JpdGUgPyBoZWFkIDogb2xkOwotCW1kLT5lbmQgPSBtZC0+b3ZlcndyaXRlID8gb2xkIDogaGVhZDsKKwltZC0+Y29yZS5zdGFydCA9IG1kLT5jb3JlLm92ZXJ3cml0ZSA/IGhlYWQgOiBvbGQ7CisJbWQtPmNvcmUuZW5kID0gbWQtPmNvcmUub3ZlcndyaXRlID8gb2xkIDogaGVhZDsKIAotCWlmICgobWQtPmVuZCAtIG1kLT5zdGFydCkgPCBtZC0+Zmx1c2gpCisJaWYgKChtZC0+Y29yZS5lbmQgLSBtZC0+Y29yZS5zdGFydCkgPCBtZC0+Y29yZS5mbHVzaCkKIAkJcmV0dXJuIC1FQUdBSU47CiAKLQlzaXplID0gbWQtPmVuZCAtIG1kLT5zdGFydDsKLQlpZiAoc2l6ZSA+ICh1bnNpZ25lZCBsb25nKShtZC0+bWFzaykgKyAxKSB7Ci0JCWlmICghbWQtPm92ZXJ3cml0ZSkgeworCXNpemUgPSBtZC0+Y29yZS5lbmQgLSBtZC0+Y29yZS5zdGFydDsKKwlpZiAoc2l6ZSA+ICh1bnNpZ25lZCBsb25nKShtZC0+Y29yZS5tYXNrKSArIDEpIHsKKwkJaWYgKCFtZC0+Y29yZS5vdmVyd3JpdGUpIHsKIAkJCVdBUk5fT05DRSgxLCAiZmFpbGVkIHRvIGtlZXAgdXAgd2l0aCBtbWFwIGRhdGEuICh3YXJuIG9ubHkgb25jZSlcbiIpOwogCi0JCQltZC0+cHJldiA9IGhlYWQ7CisJCQltZC0+Y29yZS5wcmV2ID0gaGVhZDsKIAkJCXBlcmZfbW1hcF9fY29uc3VtZShtZCk7CiAJCQlyZXR1cm4gLUVBR0FJTjsKIAkJfQpAQCAtNDY3LDI5ICs0NjgsMjkgQEAgc3RhdGljIGludCBfX3BlcmZfbW1hcF9fcmVhZF9pbml0KHN0cnVjdCBwZXJmX21tYXAgKm1kKQogCQkgKiBCYWNrd2FyZCByaW5nIGJ1ZmZlciBpcyBmdWxsLiBXZSBzdGlsbCBoYXZlIGEgY2hhbmNlIHRvIHJlYWQKIAkJICogbW9zdCBvZiBkYXRhIGZyb20gaXQuCiAJCSAqLwotCQlpZiAob3ZlcndyaXRlX3JiX2ZpbmRfcmFuZ2UoZGF0YSwgbWQtPm1hc2ssICZtZC0+c3RhcnQsICZtZC0+ZW5kKSkKKwkJaWYgKG92ZXJ3cml0ZV9yYl9maW5kX3JhbmdlKGRhdGEsIG1kLT5jb3JlLm1hc2ssICZtZC0+Y29yZS5zdGFydCwgJm1kLT5jb3JlLmVuZCkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAlyZXR1cm4gMDsKIH0KIAotaW50IHBlcmZfbW1hcF9fcmVhZF9pbml0KHN0cnVjdCBwZXJmX21tYXAgKm1hcCkKK2ludCBwZXJmX21tYXBfX3JlYWRfaW5pdChzdHJ1Y3QgbW1hcCAqbWFwKQogewogCS8qCiAJICogQ2hlY2sgaWYgZXZlbnQgd2FzIHVubWFwcGVkIGR1ZSB0byBhIFBPTExIVVAvUE9MTEVSUi4KIAkgKi8KLQlpZiAoIXJlZmNvdW50X3JlYWQoJm1hcC0+cmVmY250KSkKKwlpZiAoIXJlZmNvdW50X3JlYWQoJm1hcC0+Y29yZS5yZWZjbnQpKQogCQlyZXR1cm4gLUVOT0VOVDsKIAogCXJldHVybiBfX3BlcmZfbW1hcF9fcmVhZF9pbml0KG1hcCk7CiB9CiAKLWludCBwZXJmX21tYXBfX3B1c2goc3RydWN0IHBlcmZfbW1hcCAqbWQsIHZvaWQgKnRvLAotCQkgICAgaW50IHB1c2goc3RydWN0IHBlcmZfbW1hcCAqbWFwLCB2b2lkICp0bywgdm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSkpCitpbnQgcGVyZl9tbWFwX19wdXNoKHN0cnVjdCBtbWFwICptZCwgdm9pZCAqdG8sCisJCSAgICBpbnQgcHVzaChzdHJ1Y3QgbW1hcCAqbWFwLCB2b2lkICp0bywgdm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSkpCiB7CiAJdTY0IGhlYWQgPSBwZXJmX21tYXBfX3JlYWRfaGVhZChtZCk7Ci0JdW5zaWduZWQgY2hhciAqZGF0YSA9IG1kLT5iYXNlICsgcGFnZV9zaXplOworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSBtZC0+Y29yZS5iYXNlICsgcGFnZV9zaXplOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAl2b2lkICpidWY7CiAJaW50IHJjID0gMDsKQEAgLTQ5OCwxMiArNDk5LDEyIEBAIGludCBwZXJmX21tYXBfX3B1c2goc3RydWN0IHBlcmZfbW1hcCAqbWQsIHZvaWQgKnRvLAogCWlmIChyYyA8IDApCiAJCXJldHVybiAocmMgPT0gLUVBR0FJTikgPyAxIDogLTE7CiAKLQlzaXplID0gbWQtPmVuZCAtIG1kLT5zdGFydDsKKwlzaXplID0gbWQtPmNvcmUuZW5kIC0gbWQtPmNvcmUuc3RhcnQ7CiAKLQlpZiAoKG1kLT5zdGFydCAmIG1kLT5tYXNrKSArIHNpemUgIT0gKG1kLT5lbmQgJiBtZC0+bWFzaykpIHsKLQkJYnVmID0gJmRhdGFbbWQtPnN0YXJ0ICYgbWQtPm1hc2tdOwotCQlzaXplID0gbWQtPm1hc2sgKyAxIC0gKG1kLT5zdGFydCAmIG1kLT5tYXNrKTsKLQkJbWQtPnN0YXJ0ICs9IHNpemU7CisJaWYgKChtZC0+Y29yZS5zdGFydCAmIG1kLT5jb3JlLm1hc2spICsgc2l6ZSAhPSAobWQtPmNvcmUuZW5kICYgbWQtPmNvcmUubWFzaykpIHsKKwkJYnVmID0gJmRhdGFbbWQtPmNvcmUuc3RhcnQgJiBtZC0+Y29yZS5tYXNrXTsKKwkJc2l6ZSA9IG1kLT5jb3JlLm1hc2sgKyAxIC0gKG1kLT5jb3JlLnN0YXJ0ICYgbWQtPmNvcmUubWFzayk7CisJCW1kLT5jb3JlLnN0YXJ0ICs9IHNpemU7CiAKIAkJaWYgKHB1c2gobWQsIHRvLCBidWYsIHNpemUpIDwgMCkgewogCQkJcmMgPSAtMTsKQEAgLTUxMSwxNiArNTEyLDE2IEBAIGludCBwZXJmX21tYXBfX3B1c2goc3RydWN0IHBlcmZfbW1hcCAqbWQsIHZvaWQgKnRvLAogCQl9CiAJfQogCi0JYnVmID0gJmRhdGFbbWQtPnN0YXJ0ICYgbWQtPm1hc2tdOwotCXNpemUgPSBtZC0+ZW5kIC0gbWQtPnN0YXJ0OwotCW1kLT5zdGFydCArPSBzaXplOworCWJ1ZiA9ICZkYXRhW21kLT5jb3JlLnN0YXJ0ICYgbWQtPmNvcmUubWFza107CisJc2l6ZSA9IG1kLT5jb3JlLmVuZCAtIG1kLT5jb3JlLnN0YXJ0OworCW1kLT5jb3JlLnN0YXJ0ICs9IHNpemU7CiAKIAlpZiAocHVzaChtZCwgdG8sIGJ1Ziwgc2l6ZSkgPCAwKSB7CiAJCXJjID0gLTE7CiAJCWdvdG8gb3V0OwogCX0KIAotCW1kLT5wcmV2ID0gaGVhZDsKKwltZC0+Y29yZS5wcmV2ID0gaGVhZDsKIAlwZXJmX21tYXBfX2NvbnN1bWUobWQpOwogb3V0OgogCXJldHVybiByYzsKQEAgLTUyOSwxNiArNTMwLDE2IEBAIGludCBwZXJmX21tYXBfX3B1c2goc3RydWN0IHBlcmZfbW1hcCAqbWQsIHZvaWQgKnRvLAogLyoKICAqIE1hbmRhdG9yeSBmb3Igb3ZlcndyaXRlIG1vZGUKICAqIFRoZSBkaXJlY3Rpb24gb2Ygb3ZlcndyaXRlIG1vZGUgaXMgYmFja3dhcmQuCi0gKiBUaGUgbGFzdCBwZXJmX21tYXBfX3JlYWQoKSB3aWxsIHNldCB0YWlsIHRvIG1hcC0+cHJldi4KLSAqIE5lZWQgdG8gY29ycmVjdCB0aGUgbWFwLT5wcmV2IHRvIGhlYWQgd2hpY2ggaXMgdGhlIGVuZCBvZiBuZXh0IHJlYWQuCisgKiBUaGUgbGFzdCBwZXJmX21tYXBfX3JlYWQoKSB3aWxsIHNldCB0YWlsIHRvIG1hcC0+Y29yZS5wcmV2LgorICogTmVlZCB0byBjb3JyZWN0IHRoZSBtYXAtPmNvcmUucHJldiB0byBoZWFkIHdoaWNoIGlzIHRoZSBlbmQgb2YgbmV4dCByZWFkLgogICovCi12b2lkIHBlcmZfbW1hcF9fcmVhZF9kb25lKHN0cnVjdCBwZXJmX21tYXAgKm1hcCkKK3ZvaWQgcGVyZl9tbWFwX19yZWFkX2RvbmUoc3RydWN0IG1tYXAgKm1hcCkKIHsKIAkvKgogCSAqIENoZWNrIGlmIGV2ZW50IHdhcyB1bm1hcHBlZCBkdWUgdG8gYSBQT0xMSFVQL1BPTExFUlIuCiAJICovCi0JaWYgKCFyZWZjb3VudF9yZWFkKCZtYXAtPnJlZmNudCkpCisJaWYgKCFyZWZjb3VudF9yZWFkKCZtYXAtPmNvcmUucmVmY250KSkKIAkJcmV0dXJuOwogCi0JbWFwLT5wcmV2ID0gcGVyZl9tbWFwX19yZWFkX2hlYWQobWFwKTsKKwltYXAtPmNvcmUucHJldiA9IHBlcmZfbW1hcF9fcmVhZF9oZWFkKG1hcCk7CiB9CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvbW1hcC5oIGIvdG9vbHMvcGVyZi91dGlsL21tYXAuaAppbmRleCAzODU3YTQ5Li5lNTY3YzFjIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvbW1hcC5oCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9tbWFwLmgKQEAgLTEsNiArMSw3IEBACiAjaWZuZGVmIF9fUEVSRl9NTUFQX0gKICNkZWZpbmUgX19QRVJGX01NQVBfSCAxCiAKKyNpbmNsdWRlIDxpbnRlcm5hbC9tbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KICNpbmNsdWRlIDxsaW51eC9yZWZjb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CkBAIC0xNSwyMiArMTYsMTMgQEAKIAogc3RydWN0IGFpb2NiOwogLyoqCi0gKiBzdHJ1Y3QgcGVyZl9tbWFwIC0gcGVyZidzIHJpbmcgYnVmZmVyIG1tYXAgZGV0YWlscworICogc3RydWN0IG1tYXAgLSBwZXJmJ3MgcmluZyBidWZmZXIgbW1hcCBkZXRhaWxzCiAgKgogICogQHJlZmNudCAtIGUuZy4gY29kZSB1c2luZyBQRVJGX0VWRU5UX0lPQ19TRVRfT1VUUFVUIHRvIHNoYXJlIHRoaXMKICAqLwotc3RydWN0IHBlcmZfbW1hcCB7Ci0Jdm9pZAkJICpiYXNlOwotCWludAkJIG1hc2s7Ci0JaW50CQkgZmQ7Ci0JaW50CQkgY3B1OwotCXJlZmNvdW50X3QJIHJlZmNudDsKLQl1NjQJCSBwcmV2OwotCXU2NAkJIHN0YXJ0OwotCXU2NAkJIGVuZDsKLQlib29sCQkgb3ZlcndyaXRlOworc3RydWN0IG1tYXAgeworCXN0cnVjdCBwZXJmX21tYXAJY29yZTsKIAlzdHJ1Y3QgYXV4dHJhY2VfbW1hcCBhdXh0cmFjZV9tbWFwOwotCWNoYXIJCSBldmVudF9jb3B5W1BFUkZfU0FNUExFX01BWF9TSVpFXSBfX2FsaWduZWQoOCk7CiAjaWZkZWYgSEFWRV9BSU9fU1VQUE9SVAogCXN0cnVjdCB7CiAJCXZvaWQJCSAqKmRhdGE7CkBAIC00MCw3MSArMzIsNDIgQEAgc3RydWN0IHBlcmZfbW1hcCB7CiAJfSBhaW87CiAjZW5kaWYKIAljcHVfc2V0X3QJYWZmaW5pdHlfbWFzazsKLQl1NjQJCWZsdXNoOwogCXZvaWQJCSpkYXRhOwogCWludAkJY29tcF9sZXZlbDsKIH07CiAKLS8qCi0gKiBTdGF0ZSBtYWNoaW5lIG9mIGJrd19tbWFwX3N0YXRlOgotICoKLSAqICAgICAgICAgICAgICAgICAgICAgLl9fX19fX19fX19fX19fX18oZm9yYmlkKV9fX19fX19fX19fX18uCi0gKiAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgotICogTk9UUkVBRFkgLS0oMCktLT4gUlVOTklORyAtLSgxKS0tPiBEQVRBX1BFTkRJTkcgLS0oMiktLT4gRU1QVFkKLSAqICAgICAgICAgICAgICAgICAgICAgXiAgXiAgICAgICAgICAgICAgfCAgIF4gICAgICAgICAgICAgICB8Ci0gKiAgICAgICAgICAgICAgICAgICAgIHwgIHxfXyhmb3JiaWQpX19fXy8gICB8X19fKGZvcmJpZClfX18vfAotICogICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAqICAgICAgICAgICAgICAgICAgICAgIFxfX19fX19fX19fX19fX19fXygzKV9fX19fX19fX19fX19fXy8KLSAqCi0gKiBOT1RSRUFEWSAgICAgOiBCYWNrd2FyZCByaW5nIGJ1ZmZlcnMgYXJlIG5vdCByZWFkeQotICogUlVOTklORyAgICAgIDogQmFja3dhcmQgcmluZyBidWZmZXJzIGFyZSByZWNvcmRpbmcKLSAqIERBVEFfUEVORElORyA6IFdlIGFyZSByZXF1aXJlZCB0byBjb2xsZWN0IGRhdGEgZnJvbSBiYWNrd2FyZCByaW5nIGJ1ZmZlcnMKLSAqIEVNUFRZICAgICAgICA6IFdlIGhhdmUgY29sbGVjdGVkIGRhdGEgZnJvbSBiYWNrd2FyZCByaW5nIGJ1ZmZlcnMuCi0gKgotICogKDApOiBTZXR1cCBiYWNrd2FyZCByaW5nIGJ1ZmZlcgotICogKDEpOiBQYXVzZSByaW5nIGJ1ZmZlcnMgZm9yIHJlYWRpbmcKLSAqICgyKTogUmVhZCBmcm9tIHJpbmcgYnVmZmVycwotICogKDMpOiBSZXN1bWUgcmluZyBidWZmZXJzIGZvciByZWNvcmRpbmcKLSAqLwotZW51bSBia3dfbW1hcF9zdGF0ZSB7Ci0JQktXX01NQVBfTk9UUkVBRFksCi0JQktXX01NQVBfUlVOTklORywKLQlCS1dfTU1BUF9EQVRBX1BFTkRJTkcsCi0JQktXX01NQVBfRU1QVFksCi19OwotCiBzdHJ1Y3QgbW1hcF9wYXJhbXMgewogCWludCBwcm90LCBtYXNrLCBucl9jYmxvY2tzLCBhZmZpbml0eSwgZmx1c2gsIGNvbXBfbGV2ZWw7CiAJc3RydWN0IGF1eHRyYWNlX21tYXBfcGFyYW1zIGF1eHRyYWNlX21wOwogfTsKIAotaW50IHBlcmZfbW1hcF9fbW1hcChzdHJ1Y3QgcGVyZl9tbWFwICptYXAsIHN0cnVjdCBtbWFwX3BhcmFtcyAqbXAsIGludCBmZCwgaW50IGNwdSk7Ci12b2lkIHBlcmZfbW1hcF9fbXVubWFwKHN0cnVjdCBwZXJmX21tYXAgKm1hcCk7CitpbnQgcGVyZl9tbWFwX19tbWFwKHN0cnVjdCBtbWFwICptYXAsIHN0cnVjdCBtbWFwX3BhcmFtcyAqbXAsIGludCBmZCwgaW50IGNwdSk7Cit2b2lkIHBlcmZfbW1hcF9fbXVubWFwKHN0cnVjdCBtbWFwICptYXApOwogCi12b2lkIHBlcmZfbW1hcF9fZ2V0KHN0cnVjdCBwZXJmX21tYXAgKm1hcCk7Ci12b2lkIHBlcmZfbW1hcF9fcHV0KHN0cnVjdCBwZXJmX21tYXAgKm1hcCk7Cit2b2lkIHBlcmZfbW1hcF9fZ2V0KHN0cnVjdCBtbWFwICptYXApOwordm9pZCBwZXJmX21tYXBfX3B1dChzdHJ1Y3QgbW1hcCAqbWFwKTsKIAotdm9pZCBwZXJmX21tYXBfX2NvbnN1bWUoc3RydWN0IHBlcmZfbW1hcCAqbWFwKTsKK3ZvaWQgcGVyZl9tbWFwX19jb25zdW1lKHN0cnVjdCBtbWFwICptYXApOwogCi1zdGF0aWMgaW5saW5lIHU2NCBwZXJmX21tYXBfX3JlYWRfaGVhZChzdHJ1Y3QgcGVyZl9tbWFwICptbSkKK3N0YXRpYyBpbmxpbmUgdTY0IHBlcmZfbW1hcF9fcmVhZF9oZWFkKHN0cnVjdCBtbWFwICptbSkKIHsKLQlyZXR1cm4gcmluZ19idWZmZXJfcmVhZF9oZWFkKG1tLT5iYXNlKTsKKwlyZXR1cm4gcmluZ19idWZmZXJfcmVhZF9oZWFkKG1tLT5jb3JlLmJhc2UpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgcGVyZl9tbWFwX193cml0ZV90YWlsKHN0cnVjdCBwZXJmX21tYXAgKm1kLCB1NjQgdGFpbCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBwZXJmX21tYXBfX3dyaXRlX3RhaWwoc3RydWN0IG1tYXAgKm1kLCB1NjQgdGFpbCkKIHsKLQlyaW5nX2J1ZmZlcl93cml0ZV90YWlsKG1kLT5iYXNlLCB0YWlsKTsKKwlyaW5nX2J1ZmZlcl93cml0ZV90YWlsKG1kLT5jb3JlLmJhc2UsIHRhaWwpOwogfQogCi11bmlvbiBwZXJmX2V2ZW50ICpwZXJmX21tYXBfX3JlYWRfZm9yd2FyZChzdHJ1Y3QgcGVyZl9tbWFwICptYXApOwordW5pb24gcGVyZl9ldmVudCAqcGVyZl9tbWFwX19yZWFkX2ZvcndhcmQoc3RydWN0IG1tYXAgKm1hcCk7CiAKLXVuaW9uIHBlcmZfZXZlbnQgKnBlcmZfbW1hcF9fcmVhZF9ldmVudChzdHJ1Y3QgcGVyZl9tbWFwICptYXApOwordW5pb24gcGVyZl9ldmVudCAqcGVyZl9tbWFwX19yZWFkX2V2ZW50KHN0cnVjdCBtbWFwICptYXApOwogCi1pbnQgcGVyZl9tbWFwX19wdXNoKHN0cnVjdCBwZXJmX21tYXAgKm1kLCB2b2lkICp0bywKLQkJICAgIGludCBwdXNoKHN0cnVjdCBwZXJmX21tYXAgKm1hcCwgdm9pZCAqdG8sIHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpKTsKK2ludCBwZXJmX21tYXBfX3B1c2goc3RydWN0IG1tYXAgKm1kLCB2b2lkICp0bywKKwkJICAgIGludCBwdXNoKHN0cnVjdCBtbWFwICptYXAsIHZvaWQgKnRvLCB2b2lkICpidWYsIHNpemVfdCBzaXplKSk7CiAKLXNpemVfdCBwZXJmX21tYXBfX21tYXBfbGVuKHN0cnVjdCBwZXJmX21tYXAgKm1hcCk7CitzaXplX3QgcGVyZl9tbWFwX19tbWFwX2xlbihzdHJ1Y3QgbW1hcCAqbWFwKTsKIAotaW50IHBlcmZfbW1hcF9fcmVhZF9pbml0KHN0cnVjdCBwZXJmX21tYXAgKm1kKTsKLXZvaWQgcGVyZl9tbWFwX19yZWFkX2RvbmUoc3RydWN0IHBlcmZfbW1hcCAqbWFwKTsKK2ludCBwZXJmX21tYXBfX3JlYWRfaW5pdChzdHJ1Y3QgbW1hcCAqbWQpOwordm9pZCBwZXJmX21tYXBfX3JlYWRfZG9uZShzdHJ1Y3QgbW1hcCAqbWFwKTsKICNlbmRpZiAvKl9fUEVSRl9NTUFQX0ggKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9uYW1lc3BhY2VzLmMgYi90b29scy9wZXJmL3V0aWwvbmFtZXNwYWNlcy5jCmluZGV4IDk5YmUxNWQuLjI4NWQ2ZjMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9uYW1lc3BhY2VzLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL25hbWVzcGFjZXMuYwpAQCAtMTcsOCArMTcsMjYgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxhc20vYnVnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvemFsbG9jLmg+CiAKK3N0YXRpYyBjb25zdCBjaGFyICpwZXJmX25zX19uYW1lc1tdID0geworCVtORVRfTlNfSU5ERVhdCQk9ICJuZXQiLAorCVtVVFNfTlNfSU5ERVhdCQk9ICJ1dHMiLAorCVtJUENfTlNfSU5ERVhdCQk9ICJpcGMiLAorCVtQSURfTlNfSU5ERVhdCQk9ICJwaWQiLAorCVtVU0VSX05TX0lOREVYXQkJPSAidXNlciIsCisJW01OVF9OU19JTkRFWF0JCT0gIm1udCIsCisJW0NHUk9VUF9OU19JTkRFWF0JPSAiY2dyb3VwIiwKK307CisKK2NvbnN0IGNoYXIgKnBlcmZfbnNfX25hbWUodW5zaWduZWQgaW50IGlkKQoreworCWlmIChpZCA+PSBBUlJBWV9TSVpFKHBlcmZfbnNfX25hbWVzKSkKKwkJcmV0dXJuICJVTktOT1dOIjsKKwlyZXR1cm4gcGVyZl9uc19fbmFtZXNbaWRdOworfQorCiBzdHJ1Y3QgbmFtZXNwYWNlcyAqbmFtZXNwYWNlc19fbmV3KHN0cnVjdCBwZXJmX3JlY29yZF9uYW1lc3BhY2VzICpldmVudCkKIHsKIAlzdHJ1Y3QgbmFtZXNwYWNlcyAqbmFtZXNwYWNlczsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9uYW1lc3BhY2VzLmggYi90b29scy9wZXJmL3V0aWwvbmFtZXNwYWNlcy5oCmluZGV4IDQwZWRlZjUuLjRiMzNmNjggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9uYW1lc3BhY2VzLmgKKysrIGIvdG9vbHMvcGVyZi91dGlsL25hbWVzcGFjZXMuaApAQCAtNjYsNCArNjYsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19uc2luZm9fX3pwdXQoc3RydWN0IG5zaW5mbyAqKm5zaXApCiAKICNkZWZpbmUgbnNpbmZvX196cHV0KG5zaSkgX19uc2luZm9fX3pwdXQoJm5zaSkKIAorY29uc3QgY2hhciAqcGVyZl9uc19fbmFtZSh1bnNpZ25lZCBpbnQgaWQpOworCiAjZW5kaWYgIC8qIF9fUEVSRl9OQU1FU1BBQ0VTX0ggKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9wYXJzZS1ldmVudHMuYyBiL3Rvb2xzL3BlcmYvdXRpbC9wYXJzZS1ldmVudHMuYwppbmRleCA1ZWMyMWQyLi5iNWUyYWRlIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvcGFyc2UtZXZlbnRzLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL3BhcnNlLWV2ZW50cy5jCkBAIC0zMCwxMSArMzAsMTIgQEAKICNpbmNsdWRlICJwYXJzZS1ldmVudHMtZmxleC5oIgogI2luY2x1ZGUgInBtdS5oIgogI2luY2x1ZGUgInRocmVhZF9tYXAuaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJwcm9iZS1maWxlLmgiCiAjaW5jbHVkZSAiYXNtL2J1Zy5oIgogI2luY2x1ZGUgInV0aWwvcGFyc2UtYnJhbmNoLW9wdGlvbnMuaCIKICNpbmNsdWRlICJtZXRyaWNncm91cC5oIgorI2luY2x1ZGUgInV0aWwvZXZzZWxfY29uZmlnLmgiCisjaW5jbHVkZSAidXRpbC9ldmVudC5oIgogCiAjZGVmaW5lIE1BWF9OQU1FX0xFTiAxMDAKIApAQCAtMzM1LDcgKzMzNiw3IEBAIF9fYWRkX2V2ZW50KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsIGludCAqaWR4LAogCSgqaWR4KSsrOwogCWV2c2VsLT5jb3JlLmNwdXMgICA9IHBlcmZfY3B1X21hcF9fZ2V0KGNwdXMpOwogCWV2c2VsLT5jb3JlLm93bl9jcHVzID0gcGVyZl9jcHVfbWFwX19nZXQoY3B1cyk7Ci0JZXZzZWwtPnN5c3RlbV93aWRlID0gcG11ID8gcG11LT5pc191bmNvcmUgOiBmYWxzZTsKKwlldnNlbC0+Y29yZS5zeXN0ZW1fd2lkZSA9IHBtdSA/IHBtdS0+aXNfdW5jb3JlIDogZmFsc2U7CiAJZXZzZWwtPmF1dG9fbWVyZ2Vfc3RhdHMgPSBhdXRvX21lcmdlX3N0YXRzOwogCiAJaWYgKG5hbWUpCkBAIC0xOTM2LDcgKzE5MzcsNyBAQCBpbnQgcGFyc2VfZXZlbnRzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgY29uc3QgY2hhciAqc3RyLAogCiAJCXBlcmZfZXZsaXN0X19zcGxpY2VfbGlzdF90YWlsKGV2bGlzdCwgJnBhcnNlX3N0YXRlLmxpc3QpOwogCQlldmxpc3QtPm5yX2dyb3VwcyArPSBwYXJzZV9zdGF0ZS5ucl9ncm91cHM7Ci0JCWxhc3QgPSBwZXJmX2V2bGlzdF9fbGFzdChldmxpc3QpOworCQlsYXN0ID0gZXZsaXN0X19sYXN0KGV2bGlzdCk7CiAJCWxhc3QtPmNtZGxpbmVfZ3JvdXBfYm91bmRhcnkgPSB0cnVlOwogCiAJCXJldHVybiAwOwpAQCAtMjA1MCw3ICsyMDUxLDcgQEAgZm9yZWFjaF9ldnNlbF9pbl9sYXN0X2dsb2Ioc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCSAqIFNvIG5vIG5lZWQgdG8gV0FSTiBoZXJlLCBsZXQgKmZ1bmMgZG8gdGhpcy4KIAkgKi8KIAlpZiAoZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMgPiAwKQotCQlsYXN0ID0gcGVyZl9ldmxpc3RfX2xhc3QoZXZsaXN0KTsKKwkJbGFzdCA9IGV2bGlzdF9fbGFzdChldmxpc3QpOwogCiAJZG8gewogCQllcnIgPSAoKmZ1bmMpKGxhc3QsIGFyZyk7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvcGFyc2UtZXZlbnRzLnkgYi90b29scy9wZXJmL3V0aWwvcGFyc2UtZXZlbnRzLnkKaW5kZXggZjFjMzZlZC4uNDgxMjZhZSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3BhcnNlLWV2ZW50cy55CisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9wYXJzZS1ldmVudHMueQpAQCAtOSwxMyArOSwxMSBAQAogI2RlZmluZSBZWURFQlVHIDEKIAogI2luY2x1ZGUgPGZubWF0Y2guaD4KKyNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+Ci0jaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgInBtdS5oIgogI2luY2x1ZGUgImV2c2VsLmgiCi0jaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJwYXJzZS1ldmVudHMuaCIKICNpbmNsdWRlICJwYXJzZS1ldmVudHMtYmlzb24uaCIKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3BlcmYtaG9va3MuYyBiL3Rvb2xzL3BlcmYvdXRpbC9wZXJmLWhvb2tzLmMKaW5kZXggZTYzNWM1OS4uN2EwYWIzNSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3BlcmYtaG9va3MuYworKysgYi90b29scy9wZXJmL3V0aWwvcGVyZi1ob29rcy5jCkBAIC0xMiw3ICsxMiw2IEBACiAjaW5jbHVkZSA8c2V0am1wLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSAidXRpbC91dGlsLmgiCiAjaW5jbHVkZSAidXRpbC9kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWwvcGVyZi1ob29rcy5oIgogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvcGVyZl9ldmVudF9hdHRyX2ZwcmludGYuYyBiL3Rvb2xzL3BlcmYvdXRpbC9wZXJmX2V2ZW50X2F0dHJfZnByaW50Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0YWQzZjAKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9wZXJmL3V0aWwvcGVyZl9ldmVudF9hdHRyX2ZwcmludGYuYwpAQCAtMCwwICsxLDE0OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvcGVyZl9ldmVudC5oPgorI2luY2x1ZGUgInV0aWwvZXZzZWxfZnByaW50Zi5oIgorCitzdHJ1Y3QgYml0X25hbWVzIHsKKwlpbnQgYml0OworCWNvbnN0IGNoYXIgKm5hbWU7Cit9OworCitzdGF0aWMgdm9pZCBfX3BfYml0cyhjaGFyICpidWYsIHNpemVfdCBzaXplLCB1NjQgdmFsdWUsIHN0cnVjdCBiaXRfbmFtZXMgKmJpdHMpCit7CisJYm9vbCBmaXJzdF9iaXQgPSB0cnVlOworCWludCBpID0gMDsKKworCWRvIHsKKwkJaWYgKHZhbHVlICYgYml0c1tpXS5iaXQpIHsKKwkJCWJ1ZiArPSBzY25wcmludGYoYnVmLCBzaXplLCAiJXMlcyIsIGZpcnN0X2JpdCA/ICIiIDogInwiLCBiaXRzW2ldLm5hbWUpOworCQkJZmlyc3RfYml0ID0gZmFsc2U7CisJCX0KKwl9IHdoaWxlIChiaXRzWysraV0ubmFtZSAhPSBOVUxMKTsKK30KKworc3RhdGljIHZvaWQgX19wX3NhbXBsZV90eXBlKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIHU2NCB2YWx1ZSkKK3sKKyNkZWZpbmUgYml0X25hbWUobikgeyBQRVJGX1NBTVBMRV8jI24sICNuIH0KKwlzdHJ1Y3QgYml0X25hbWVzIGJpdHNbXSA9IHsKKwkJYml0X25hbWUoSVApLCBiaXRfbmFtZShUSUQpLCBiaXRfbmFtZShUSU1FKSwgYml0X25hbWUoQUREUiksCisJCWJpdF9uYW1lKFJFQUQpLCBiaXRfbmFtZShDQUxMQ0hBSU4pLCBiaXRfbmFtZShJRCksIGJpdF9uYW1lKENQVSksCisJCWJpdF9uYW1lKFBFUklPRCksIGJpdF9uYW1lKFNUUkVBTV9JRCksIGJpdF9uYW1lKFJBVyksCisJCWJpdF9uYW1lKEJSQU5DSF9TVEFDSyksIGJpdF9uYW1lKFJFR1NfVVNFUiksIGJpdF9uYW1lKFNUQUNLX1VTRVIpLAorCQliaXRfbmFtZShJREVOVElGSUVSKSwgYml0X25hbWUoUkVHU19JTlRSKSwgYml0X25hbWUoREFUQV9TUkMpLAorCQliaXRfbmFtZShXRUlHSFQpLCBiaXRfbmFtZShQSFlTX0FERFIpLAorCQl7IC5uYW1lID0gTlVMTCwgfQorCX07CisjdW5kZWYgYml0X25hbWUKKwlfX3BfYml0cyhidWYsIHNpemUsIHZhbHVlLCBiaXRzKTsKK30KKworc3RhdGljIHZvaWQgX19wX2JyYW5jaF9zYW1wbGVfdHlwZShjaGFyICpidWYsIHNpemVfdCBzaXplLCB1NjQgdmFsdWUpCit7CisjZGVmaW5lIGJpdF9uYW1lKG4pIHsgUEVSRl9TQU1QTEVfQlJBTkNIXyMjbiwgI24gfQorCXN0cnVjdCBiaXRfbmFtZXMgYml0c1tdID0geworCQliaXRfbmFtZShVU0VSKSwgYml0X25hbWUoS0VSTkVMKSwgYml0X25hbWUoSFYpLCBiaXRfbmFtZShBTlkpLAorCQliaXRfbmFtZShBTllfQ0FMTCksIGJpdF9uYW1lKEFOWV9SRVRVUk4pLCBiaXRfbmFtZShJTkRfQ0FMTCksCisJCWJpdF9uYW1lKEFCT1JUX1RYKSwgYml0X25hbWUoSU5fVFgpLCBiaXRfbmFtZShOT19UWCksCisJCWJpdF9uYW1lKENPTkQpLCBiaXRfbmFtZShDQUxMX1NUQUNLKSwgYml0X25hbWUoSU5EX0pVTVApLAorCQliaXRfbmFtZShDQUxMKSwgYml0X25hbWUoTk9fRkxBR1MpLCBiaXRfbmFtZShOT19DWUNMRVMpLAorCQl7IC5uYW1lID0gTlVMTCwgfQorCX07CisjdW5kZWYgYml0X25hbWUKKwlfX3BfYml0cyhidWYsIHNpemUsIHZhbHVlLCBiaXRzKTsKK30KKworc3RhdGljIHZvaWQgX19wX3JlYWRfZm9ybWF0KGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIHU2NCB2YWx1ZSkKK3sKKyNkZWZpbmUgYml0X25hbWUobikgeyBQRVJGX0ZPUk1BVF8jI24sICNuIH0KKwlzdHJ1Y3QgYml0X25hbWVzIGJpdHNbXSA9IHsKKwkJYml0X25hbWUoVE9UQUxfVElNRV9FTkFCTEVEKSwgYml0X25hbWUoVE9UQUxfVElNRV9SVU5OSU5HKSwKKwkJYml0X25hbWUoSUQpLCBiaXRfbmFtZShHUk9VUCksCisJCXsgLm5hbWUgPSBOVUxMLCB9CisJfTsKKyN1bmRlZiBiaXRfbmFtZQorCV9fcF9iaXRzKGJ1Ziwgc2l6ZSwgdmFsdWUsIGJpdHMpOworfQorCisjZGVmaW5lIEJVRl9TSVpFCQkxMDI0CisKKyNkZWZpbmUgcF9oZXgodmFsKQkJc25wcmludGYoYnVmLCBCVUZfU0laRSwgIiUjIlBSSXg2NCwgKHVpbnQ2NF90KSh2YWwpKQorI2RlZmluZSBwX3Vuc2lnbmVkKHZhbCkJCXNucHJpbnRmKGJ1ZiwgQlVGX1NJWkUsICIlIlBSSXU2NCwgKHVpbnQ2NF90KSh2YWwpKQorI2RlZmluZSBwX3NpZ25lZCh2YWwpCQlzbnByaW50ZihidWYsIEJVRl9TSVpFLCAiJSJQUklkNjQsIChpbnQ2NF90KSh2YWwpKQorI2RlZmluZSBwX3NhbXBsZV90eXBlKHZhbCkJX19wX3NhbXBsZV90eXBlKGJ1ZiwgQlVGX1NJWkUsIHZhbCkKKyNkZWZpbmUgcF9icmFuY2hfc2FtcGxlX3R5cGUodmFsKSBfX3BfYnJhbmNoX3NhbXBsZV90eXBlKGJ1ZiwgQlVGX1NJWkUsIHZhbCkKKyNkZWZpbmUgcF9yZWFkX2Zvcm1hdCh2YWwpCV9fcF9yZWFkX2Zvcm1hdChidWYsIEJVRl9TSVpFLCB2YWwpCisKKyNkZWZpbmUgUFJJTlRfQVRUUm4oX24sIF9mLCBfcCkJCQkJXAorZG8gewkJCQkJCQlcCisJaWYgKGF0dHItPl9mKSB7CQkJCQlcCisJCV9wKGF0dHItPl9mKTsJCQkJXAorCQlyZXQgKz0gYXR0cl9fZnByaW50ZihmcCwgX24sIGJ1ZiwgcHJpdik7XAorCX0JCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFBSSU5UX0FUVFJmKF9mLCBfcCkJUFJJTlRfQVRUUm4oI19mLCBfZiwgX3ApCisKK2ludCBwZXJmX2V2ZW50X2F0dHJfX2ZwcmludGYoRklMRSAqZnAsIHN0cnVjdCBwZXJmX2V2ZW50X2F0dHIgKmF0dHIsCisJCQkgICAgIGF0dHJfX2ZwcmludGZfZiBhdHRyX19mcHJpbnRmLCB2b2lkICpwcml2KQoreworCWNoYXIgYnVmW0JVRl9TSVpFXTsKKwlpbnQgcmV0ID0gMDsKKworCVBSSU5UX0FUVFJmKHR5cGUsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKHNpemUsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGNvbmZpZywgcF9oZXgpOworCVBSSU5UX0FUVFJuKCJ7IHNhbXBsZV9wZXJpb2QsIHNhbXBsZV9mcmVxIH0iLCBzYW1wbGVfcGVyaW9kLCBwX3Vuc2lnbmVkKTsKKwlQUklOVF9BVFRSZihzYW1wbGVfdHlwZSwgcF9zYW1wbGVfdHlwZSk7CisJUFJJTlRfQVRUUmYocmVhZF9mb3JtYXQsIHBfcmVhZF9mb3JtYXQpOworCisJUFJJTlRfQVRUUmYoZGlzYWJsZWQsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGluaGVyaXQsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKHBpbm5lZCwgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYoZXhjbHVzaXZlLCBwX3Vuc2lnbmVkKTsKKwlQUklOVF9BVFRSZihleGNsdWRlX3VzZXIsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGV4Y2x1ZGVfa2VybmVsLCBwX3Vuc2lnbmVkKTsKKwlQUklOVF9BVFRSZihleGNsdWRlX2h2LCBwX3Vuc2lnbmVkKTsKKwlQUklOVF9BVFRSZihleGNsdWRlX2lkbGUsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKG1tYXAsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGNvbW0sIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGZyZXEsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGluaGVyaXRfc3RhdCwgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYoZW5hYmxlX29uX2V4ZWMsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKHRhc2ssIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKHdhdGVybWFyaywgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYocHJlY2lzZV9pcCwgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYobW1hcF9kYXRhLCBwX3Vuc2lnbmVkKTsKKwlQUklOVF9BVFRSZihzYW1wbGVfaWRfYWxsLCBwX3Vuc2lnbmVkKTsKKwlQUklOVF9BVFRSZihleGNsdWRlX2hvc3QsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGV4Y2x1ZGVfZ3Vlc3QsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGV4Y2x1ZGVfY2FsbGNoYWluX2tlcm5lbCwgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYoZXhjbHVkZV9jYWxsY2hhaW5fdXNlciwgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYobW1hcDIsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGNvbW1fZXhlYywgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYodXNlX2Nsb2NraWQsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGNvbnRleHRfc3dpdGNoLCBwX3Vuc2lnbmVkKTsKKwlQUklOVF9BVFRSZih3cml0ZV9iYWNrd2FyZCwgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYobmFtZXNwYWNlcywgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYoa3N5bWJvbCwgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYoYnBmX2V2ZW50LCBwX3Vuc2lnbmVkKTsKKwlQUklOVF9BVFRSZihhdXhfb3V0cHV0LCBwX3Vuc2lnbmVkKTsKKworCVBSSU5UX0FUVFJuKCJ7IHdha2V1cF9ldmVudHMsIHdha2V1cF93YXRlcm1hcmsgfSIsIHdha2V1cF9ldmVudHMsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJmKGJwX3R5cGUsIHBfdW5zaWduZWQpOworCVBSSU5UX0FUVFJuKCJ7IGJwX2FkZHIsIGNvbmZpZzEgfSIsIGJwX2FkZHIsIHBfaGV4KTsKKwlQUklOVF9BVFRSbigieyBicF9sZW4sIGNvbmZpZzIgfSIsIGJwX2xlbiwgcF9oZXgpOworCVBSSU5UX0FUVFJmKGJyYW5jaF9zYW1wbGVfdHlwZSwgcF9icmFuY2hfc2FtcGxlX3R5cGUpOworCVBSSU5UX0FUVFJmKHNhbXBsZV9yZWdzX3VzZXIsIHBfaGV4KTsKKwlQUklOVF9BVFRSZihzYW1wbGVfc3RhY2tfdXNlciwgcF91bnNpZ25lZCk7CisJUFJJTlRfQVRUUmYoY2xvY2tpZCwgcF9zaWduZWQpOworCVBSSU5UX0FUVFJmKHNhbXBsZV9yZWdzX2ludHIsIHBfaGV4KTsKKwlQUklOVF9BVFRSZihhdXhfd2F0ZXJtYXJrLCBwX3Vuc2lnbmVkKTsKKwlQUklOVF9BVFRSZihzYW1wbGVfbWF4X3N0YWNrLCBwX3Vuc2lnbmVkKTsKKworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvcG11LmMgYi90b29scy9wZXJmL3V0aWwvcG11LmMKaW5kZXggZmI1OTdmYS4uNTYwOGRhOCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3BtdS5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9wbXUuYwpAQCAtMjAsNyArMjAsNiBAQAogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAicG11LmgiCiAjaW5jbHVkZSAicGFyc2UtZXZlbnRzLmgiCi0jaW5jbHVkZSAiY3B1bWFwLmgiCiAjaW5jbHVkZSAiaGVhZGVyLmgiCiAjaW5jbHVkZSAicG11LWV2ZW50cy9wbXUtZXZlbnRzLmgiCiAjaW5jbHVkZSAic3RyaW5nMi5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3Byb2JlLWV2ZW50LmMgYi90b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQuYwppbmRleCBiOGUwOTY3Li45MWNhYjVmIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQuYworKysgYi90b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQuYwpAQCAtMjMzMSw2ICsyMzMxLDcgQEAgdm9pZCBjbGVhcl9wcm9iZV90cmFjZV9ldmVudChzdHJ1Y3QgcHJvYmVfdHJhY2VfZXZlbnQgKnRldikKIAkJfQogCX0KIAl6ZnJlZSgmdGV2LT5hcmdzKTsKKwl0ZXYtPm5hcmdzID0gMDsKIH0KIAogc3RydWN0IGtwcm9iZV9ibGFja2xpc3Rfbm9kZSB7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvcHJvYmUtZmlsZS5jIGIvdG9vbHMvcGVyZi91dGlsL3Byb2JlLWZpbGUuYwppbmRleCBkMTNkYjU1YS4uYjY1OTQ2NiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3Byb2JlLWZpbGUuYworKysgYi90b29scy9wZXJmL3V0aWwvcHJvYmUtZmlsZS5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSAic3RybGlzdC5oIgogI2luY2x1ZGUgInN0cmZpbHRlci5oIgogI2luY2x1ZGUgImRlYnVnLmgiCisjaW5jbHVkZSAiYnVpbGQtaWQuaCIKICNpbmNsdWRlICJkc28uaCIKICNpbmNsdWRlICJjb2xvci5oIgogI2luY2x1ZGUgInN5bWJvbC5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3Byb2JlLWZpbmRlci5jIGIvdG9vbHMvcGVyZi91dGlsL3Byb2JlLWZpbmRlci5jCmluZGV4IDUwNTkwNWYuLmNkOWY5NWUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9wcm9iZS1maW5kZXIuYworKysgYi90b29scy9wZXJmL3V0aWwvcHJvYmUtZmluZGVyLmMKQEAgLTEyNDUsNiArMTI0NSwxNyBAQCBzdGF0aWMgaW50IGV4cGFuZF9wcm9iZV9hcmdzKER3YXJmX0RpZSAqc2NfZGllLCBzdHJ1Y3QgcHJvYmVfZmluZGVyICpwZiwKIAlyZXR1cm4gbjsKIH0KIAorc3RhdGljIGJvb2wgdHJhY2VfZXZlbnRfZmluZGVyX292ZXJsYXAoc3RydWN0IHRyYWNlX2V2ZW50X2ZpbmRlciAqdGYpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdGYtPm50ZXZzOyBpKyspIHsKKwkJaWYgKHRmLT5wZi5hZGRyID09IHRmLT50ZXZzW2ldLnBvaW50LmFkZHJlc3MpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisJcmV0dXJuIGZhbHNlOworfQorCiAvKiBBZGQgYSBmb3VuZCBwcm9iZSBwb2ludCBpbnRvIHRyYWNlIGV2ZW50IGxpc3QgKi8KIHN0YXRpYyBpbnQgYWRkX3Byb2JlX3RyYWNlX2V2ZW50KER3YXJmX0RpZSAqc2NfZGllLCBzdHJ1Y3QgcHJvYmVfZmluZGVyICpwZikKIHsKQEAgLTEyNTUsNiArMTI2NiwxNCBAQCBzdGF0aWMgaW50IGFkZF9wcm9iZV90cmFjZV9ldmVudChEd2FyZl9EaWUgKnNjX2RpZSwgc3RydWN0IHByb2JlX2ZpbmRlciAqcGYpCiAJc3RydWN0IHBlcmZfcHJvYmVfYXJnICphcmdzID0gTlVMTDsKIAlpbnQgcmV0LCBpOwogCisJLyoKKwkgKiBGb3Igc29tZSByZWFzb24gKGUuZy4gZGlmZmVyZW50IGNvbHVtbiBhc3NpZ25lZCB0byBzYW1lIGFkZHJlc3MpCisJICogVGhpcyBjYWxsYmFjayBjYW4gYmUgY2FsbGVkIHdpdGggdGhlIGFkZHJlc3Mgd2hpY2ggYWxyZWFkeSBwYXNzZWQuCisJICogSWdub3JlIGl0IGZpcnN0LgorCSAqLworCWlmICh0cmFjZV9ldmVudF9maW5kZXJfb3ZlcmxhcCh0ZikpCisJCXJldHVybiAwOworCiAJLyogQ2hlY2sgbnVtYmVyIG9mIHRldnMgKi8KIAlpZiAodGYtPm50ZXZzID09IHRmLT5tYXhfdGV2cykgewogCQlwcl93YXJuaW5nKCJUb28gbWFueSggPiAlZCkgcHJvYmUgcG9pbnQgZm91bmQuXG4iLApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3B5dGhvbi1leHQtc291cmNlcyBiL3Rvb2xzL3BlcmYvdXRpbC9weXRob24tZXh0LXNvdXJjZXMKaW5kZXggYzZkZDQ3OC4uOWFmMTgzOCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3B5dGhvbi1leHQtc291cmNlcworKysgYi90b29scy9wZXJmL3V0aWwvcHl0aG9uLWV4dC1zb3VyY2VzCkBAIC0xMCw2ICsxMCw3IEBACiB1dGlsL2NhcC5jCiB1dGlsL2V2bGlzdC5jCiB1dGlsL2V2c2VsLmMKK3V0aWwvcGVyZl9ldmVudF9hdHRyX2ZwcmludGYuYwogdXRpbC9jcHVtYXAuYwogdXRpbC9tZW1zd2FwLmMKIHV0aWwvbW1hcC5jCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvcHl0aG9uLmMgYi90b29scy9wZXJmL3V0aWwvcHl0aG9uLmMKaW5kZXggMDdjYTQ1My4uNTNmMzEwNSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3B5dGhvbi5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9weXRob24uYwpAQCAtNiwxNyArNiwxNSBAQAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+CiAjaW5jbHVkZSA8dHJhY2VldmVudC9ldmVudC1wYXJzZS5oPgotI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAiZXZsaXN0LmgiCiAjaW5jbHVkZSAiY2FsbGNoYWluLmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKICNpbmNsdWRlICJldmVudC5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgogI2luY2x1ZGUgInByaW50X2JpbmFyeS5oIgogI2luY2x1ZGUgInRocmVhZF9tYXAuaCIKICNpbmNsdWRlICJ0cmFjZS1ldmVudC5oIgogI2luY2x1ZGUgIm1tYXAuaCIKLSNpbmNsdWRlICJ1dGlsLmgiCisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+CiAjaW5jbHVkZSAiLi4vcGVyZi1zeXMuaCIKIAogI2lmIFBZX01BSk9SX1ZFUlNJT04gPCAzCkBAIC02MSw2ICs1OSw4IEBAIGludCBwYXJzZV9jYWxsY2hhaW5fcmVjb3JkKGNvbnN0IGNoYXIgKmFyZyBfX21heWJlX3VudXNlZCwKICAqLwogaW50IHZlcmJvc2U7CiAKK2ludCBlcHJpbnRmKGludCBsZXZlbCwgaW50IHZhciwgY29uc3QgY2hhciAqZm10LCAuLi4pOworCiBpbnQgZXByaW50ZihpbnQgbGV2ZWwsIGludCB2YXIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QgYXJnczsKQEAgLTg4NCw3ICs4ODQsNyBAQCBzdGF0aWMgaW50IHB5cmZfZXZsaXN0X19pbml0KHN0cnVjdCBweXJmX2V2bGlzdCAqcGV2bGlzdCwKIAogc3RhdGljIHZvaWQgcHlyZl9ldmxpc3RfX2RlbGV0ZShzdHJ1Y3QgcHlyZl9ldmxpc3QgKnBldmxpc3QpCiB7Ci0JcGVyZl9ldmxpc3RfX2V4aXQoJnBldmxpc3QtPmV2bGlzdCk7CisJZXZsaXN0X19leGl0KCZwZXZsaXN0LT5ldmxpc3QpOwogCVB5X1RZUEUocGV2bGlzdCktPnRwX2ZyZWUoKFB5T2JqZWN0KilwZXZsaXN0KTsKIH0KIApAQCAtODk5LDcgKzg5OSw3IEBAIHN0YXRpYyBQeU9iamVjdCAqcHlyZl9ldmxpc3RfX21tYXAoc3RydWN0IHB5cmZfZXZsaXN0ICpwZXZsaXN0LAogCQkJCQkgJnBhZ2VzLCAmb3ZlcndyaXRlKSkKIAkJcmV0dXJuIE5VTEw7CiAKLQlpZiAocGVyZl9ldmxpc3RfX21tYXAoZXZsaXN0LCBwYWdlcykgPCAwKSB7CisJaWYgKGV2bGlzdF9fbW1hcChldmxpc3QsIHBhZ2VzKSA8IDApIHsKIAkJUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC05MTgsNyArOTE4LDcgQEAgc3RhdGljIFB5T2JqZWN0ICpweXJmX2V2bGlzdF9fcG9sbChzdHJ1Y3QgcHlyZl9ldmxpc3QgKnBldmxpc3QsCiAJaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAifGkiLCBrd2xpc3QsICZ0aW1lb3V0KSkKIAkJcmV0dXJuIE5VTEw7CiAKLQluID0gcGVyZl9ldmxpc3RfX3BvbGwoZXZsaXN0LCB0aW1lb3V0KTsKKwluID0gZXZsaXN0X19wb2xsKGV2bGlzdCwgdGltZW91dCk7CiAJaWYgKG4gPCAwKSB7CiAJCVB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKIAkJcmV0dXJuIE5VTEw7CkBAIC05MzUsMTcgKzkzNSwxNyBAQCBzdGF0aWMgUHlPYmplY3QgKnB5cmZfZXZsaXN0X19nZXRfcG9sbGZkKHN0cnVjdCBweXJmX2V2bGlzdCAqcGV2bGlzdCwKICAgICAgICAgUHlPYmplY3QgKmxpc3QgPSBQeUxpc3RfTmV3KDApOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IGV2bGlzdC0+cG9sbGZkLm5yOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLnBvbGxmZC5ucjsgKytpKSB7CiAJCVB5T2JqZWN0ICpmaWxlOwogI2lmIFBZX01BSk9SX1ZFUlNJT04gPCAzCi0JCUZJTEUgKmZwID0gZmRvcGVuKGV2bGlzdC0+cG9sbGZkLmVudHJpZXNbaV0uZmQsICJyIik7CisJCUZJTEUgKmZwID0gZmRvcGVuKGV2bGlzdC0+Y29yZS5wb2xsZmQuZW50cmllc1tpXS5mZCwgInIiKTsKIAogCQlpZiAoZnAgPT0gTlVMTCkKIAkJCWdvdG8gZnJlZV9saXN0OwogCiAJCWZpbGUgPSBQeUZpbGVfRnJvbUZpbGUoZnAsICJwZXJmIiwgInIiLCBOVUxMKTsKICNlbHNlCi0JCWZpbGUgPSBQeUZpbGVfRnJvbUZkKGV2bGlzdC0+cG9sbGZkLmVudHJpZXNbaV0uZmQsICJwZXJmIiwgInIiLCAtMSwKKwkJZmlsZSA9IFB5RmlsZV9Gcm9tRmQoZXZsaXN0LT5jb3JlLnBvbGxmZC5lbnRyaWVzW2ldLmZkLCAicGVyZiIsICJyIiwgLTEsCiAJCQkJICAgICBOVUxMLCBOVUxMLCBOVUxMLCAwKTsKICNlbmRpZgogCQlpZiAoZmlsZSA9PSBOVUxMKQpAQCAtOTg0LDE0ICs5ODQsMTQgQEAgc3RhdGljIFB5T2JqZWN0ICpweXJmX2V2bGlzdF9fYWRkKHN0cnVjdCBweXJmX2V2bGlzdCAqcGV2bGlzdCwKIAlyZXR1cm4gUHlfQnVpbGRWYWx1ZSgiaSIsIGV2bGlzdC0+Y29yZS5ucl9lbnRyaWVzKTsKIH0KIAotc3RhdGljIHN0cnVjdCBwZXJmX21tYXAgKmdldF9tZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCBjcHUpCitzdGF0aWMgc3RydWN0IG1tYXAgKmdldF9tZChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGludCBjcHUpCiB7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5ucl9tbWFwczsgaSsrKSB7Ci0JCXN0cnVjdCBwZXJmX21tYXAgKm1kID0gJmV2bGlzdC0+bW1hcFtpXTsKKwlmb3IgKGkgPSAwOyBpIDwgZXZsaXN0LT5jb3JlLm5yX21tYXBzOyBpKyspIHsKKwkJc3RydWN0IG1tYXAgKm1kID0gJmV2bGlzdC0+bW1hcFtpXTsKIAotCQlpZiAobWQtPmNwdSA9PSBjcHUpCisJCWlmIChtZC0+Y29yZS5jcHUgPT0gY3B1KQogCQkJcmV0dXJuIG1kOwogCX0KIApAQCAtMTAwNSw3ICsxMDA1LDcgQEAgc3RhdGljIFB5T2JqZWN0ICpweXJmX2V2bGlzdF9fcmVhZF9vbl9jcHUoc3RydWN0IHB5cmZfZXZsaXN0ICpwZXZsaXN0LAogCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50OwogCWludCBzYW1wbGVfaWRfYWxsID0gMSwgY3B1OwogCXN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsgImNwdSIsICJzYW1wbGVfaWRfYWxsIiwgTlVMTCB9OwotCXN0cnVjdCBwZXJmX21tYXAgKm1kOworCXN0cnVjdCBtbWFwICptZDsKIAlpbnQgZXJyOwogCiAJaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiaXxpIiwga3dsaXN0LApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3JlY29yZC5jIGIvdG9vbHMvcGVyZi91dGlsL3JlY29yZC5jCmluZGV4IDI4NmZlODEuLjg1Nzk1MDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9yZWNvcmQuYworKysgYi90b29scy9wZXJmL3V0aWwvcmVjb3JkLmMKQEAgLTIsNyArMiw2IEBACiAjaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJldmxpc3QuaCIKICNpbmNsdWRlICJldnNlbC5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgogI2luY2x1ZGUgInBhcnNlLWV2ZW50cy5oIgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8bGltaXRzLmg+CkBAIC0xMCw3ICs5LDYgQEAKICNpbmNsdWRlIDxhcGkvZnMvZnMuaD4KICNpbmNsdWRlIDxzdWJjbWQvcGFyc2Utb3B0aW9ucy5oPgogI2luY2x1ZGUgPHBlcmYvY3B1bWFwLmg+Ci0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgImNsb2V4ZWMuaCIKICNpbmNsdWRlICJyZWNvcmQuaCIKICNpbmNsdWRlICIuLi9wZXJmLXN5cy5oIgpAQCAtMzIsNyArMzAsNyBAQCBzdGF0aWMgaW50IHBlcmZfZG9fcHJvYmVfYXBpKHNldHVwX3Byb2JlX2ZuX3QgZm4sIGludCBjcHUsIGNvbnN0IGNoYXIgKnN0cikKIAlpZiAocGFyc2VfZXZlbnRzKGV2bGlzdCwgc3RyLCBOVUxMKSkKIAkJZ290byBvdXRfZGVsZXRlOwogCi0JZXZzZWwgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwlldnNlbCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCXdoaWxlICgxKSB7CiAJCWZkID0gc3lzX3BlcmZfZXZlbnRfb3BlbigmZXZzZWwtPmNvcmUuYXR0ciwgcGlkLCBjcHUsIC0xLCBmbGFncyk7CkBAIC0xNzMsNyArMTcxLDcgQEAgdm9pZCBwZXJmX2V2bGlzdF9fY29uZmlnKHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgc3RydWN0IHJlY29yZF9vcHRzICpvcHRzLAogCQl1c2Vfc2FtcGxlX2lkZW50aWZpZXIgPSBwZXJmX2Nhbl9zYW1wbGVfaWRlbnRpZmllcigpOwogCQlzYW1wbGVfaWQgPSB0cnVlOwogCX0gZWxzZSBpZiAoZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMgPiAxKSB7Ci0JCXN0cnVjdCBldnNlbCAqZmlyc3QgPSBwZXJmX2V2bGlzdF9fZmlyc3QoZXZsaXN0KTsKKwkJc3RydWN0IGV2c2VsICpmaXJzdCA9IGV2bGlzdF9fZmlyc3QoZXZsaXN0KTsKIAogCQlldmxpc3RfX2Zvcl9lYWNoX2VudHJ5KGV2bGlzdCwgZXZzZWwpIHsKIAkJCWlmIChldnNlbC0+Y29yZS5hdHRyLnNhbXBsZV90eXBlID09IGZpcnN0LT5jb3JlLmF0dHIuc2FtcGxlX3R5cGUpCkBAIC0yNzgsNyArMjc2LDcgQEAgYm9vbCBwZXJmX2V2bGlzdF9fY2FuX3NlbGVjdF9ldmVudChzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGNvbnN0IGNoYXIgKnN0cikKIAlpZiAoZXJyKQogCQlnb3RvIG91dF9kZWxldGU7CiAKLQlldnNlbCA9IHBlcmZfZXZsaXN0X19sYXN0KHRlbXBfZXZsaXN0KTsKKwlldnNlbCA9IGV2bGlzdF9fbGFzdCh0ZW1wX2V2bGlzdCk7CiAKIAlpZiAoIWV2bGlzdCB8fCBwZXJmX2NwdV9tYXBfX2VtcHR5KGV2bGlzdC0+Y29yZS5jcHVzKSkgewogCQlzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzID0gcGVyZl9jcHVfbWFwX19uZXcoTlVMTCk7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvcndzZW0uYyBiL3Rvb2xzL3BlcmYvdXRpbC9yd3NlbS5jCmluZGV4IDVlNTJlN2IuLmYzZDI5ZDggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9yd3NlbS5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9yd3NlbS5jCkBAIC0xLDMgKzEsNCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKICNpbmNsdWRlICJ1dGlsLmgiCiAjaW5jbHVkZSAicndzZW0uaCIKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3MzOTAtY3B1bXNmLmMgYi90b29scy9wZXJmL3V0aWwvczM5MC1jcHVtc2YuYwppbmRleCAyNGE5OTkwLi42Nzg1Y2Q4IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvczM5MC1jcHVtc2YuYworKysgYi90b29scy9wZXJmL3V0aWwvczM5MC1jcHVtc2YuYwpAQCAtMTUxLDcgKzE1MSw2IEBACiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KIAotI2luY2x1ZGUgImNwdW1hcC5oIgogI2luY2x1ZGUgImNvbG9yLmgiCiAjaW5jbHVkZSAiZXZzZWwuaCIKICNpbmNsdWRlICJldmxpc3QuaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9zMzkwLXNhbXBsZS1yYXcuYyBiL3Rvb2xzL3BlcmYvdXRpbC9zMzkwLXNhbXBsZS1yYXcuYwppbmRleCA0ZDk1OTNlLi4wNWI0M2FiIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvczM5MC1zYW1wbGUtcmF3LmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL3MzOTAtc2FtcGxlLXJhdy5jCkBAIC0yMiw3ICsyMiw2IEBACiAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgogCiAjaW5jbHVkZSAiZGVidWcuaCIKLSNpbmNsdWRlICJ1dGlsLmgiCiAjaW5jbHVkZSAic2Vzc2lvbi5oIgogI2luY2x1ZGUgImV2bGlzdC5oIgogI2luY2x1ZGUgImNvbG9yLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvc2NyaXB0aW5nLWVuZ2luZXMvdHJhY2UtZXZlbnQtcHl0aG9uLmMgYi90b29scy9wZXJmL3V0aWwvc2NyaXB0aW5nLWVuZ2luZXMvdHJhY2UtZXZlbnQtcHl0aG9uLmMKaW5kZXggNjY2YTU2ZS4uNWQzNDFlZiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3NjcmlwdGluZy1lbmdpbmVzL3RyYWNlLWV2ZW50LXB5dGhvbi5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9zY3JpcHRpbmctZW5naW5lcy90cmFjZS1ldmVudC1weXRob24uYwpAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIi4uL2Rzby5oIgogI2luY2x1ZGUgIi4uL2NhbGxjaGFpbi5oIgogI2luY2x1ZGUgIi4uL2V2c2VsLmgiCi0jaW5jbHVkZSAiLi4vdXRpbC5oIgogI2luY2x1ZGUgIi4uL2V2ZW50LmgiCiAjaW5jbHVkZSAiLi4vdGhyZWFkLmgiCiAjaW5jbHVkZSAiLi4vY29tbS5oIgpAQCAtNDksNyArNDgsNiBAQAogI2luY2x1ZGUgIm1hcC5oIgogI2luY2x1ZGUgInN5bWJvbC5oIgogI2luY2x1ZGUgInRocmVhZF9tYXAuaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJwcmludF9iaW5hcnkuaCIKICNpbmNsdWRlICJzdGF0LmgiCiAjaW5jbHVkZSAibWVtLWV2ZW50cy5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3Nlc3Npb24uYyBiL3Rvb2xzL3BlcmYvdXRpbC9zZXNzaW9uLmMKaW5kZXggZTllNGEwNC4uMDYxYmI0ZCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3Nlc3Npb24uYworKysgYi90b29scy9wZXJmL3V0aWwvc2Vzc2lvbi5jCkBAIC0yMiw3ICsyMiw2IEBACiAjaW5jbHVkZSAic3ltYm9sLmgiCiAjaW5jbHVkZSAic2Vzc2lvbi5oIgogI2luY2x1ZGUgInRvb2wuaCIKLSNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJwZXJmX3JlZ3MuaCIKICNpbmNsdWRlICJhc20vYnVnLmgiCiAjaW5jbHVkZSAiYXV4dHJhY2UuaCIKQEAgLTMwLDEwICsyOSwxMSBAQAogI2luY2x1ZGUgInRocmVhZC1zdGFjay5oIgogI2luY2x1ZGUgInNhbXBsZS1yYXcuaCIKICNpbmNsdWRlICJzdGF0LmgiCi0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgInVpL3Byb2dyZXNzLmgiCiAjaW5jbHVkZSAiLi4vcGVyZi5oIgogI2luY2x1ZGUgImFyY2gvY29tbW9uLmgiCisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAKICNpZmRlZiBIQVZFX1pTVERfU1VQUE9SVAogc3RhdGljIGludCBwZXJmX3Nlc3Npb25fX3Byb2Nlc3NfY29tcHJlc3NlZF9ldmVudChzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLApAQCAtMTg3LDYgKzE4Nyw3IEBAIHN0YXRpYyBpbnQgb3JkZXJlZF9ldmVudHNfX2RlbGl2ZXJfZXZlbnQoc3RydWN0IG9yZGVyZWRfZXZlbnRzICpvZSwKIHN0cnVjdCBwZXJmX3Nlc3Npb24gKnBlcmZfc2Vzc2lvbl9fbmV3KHN0cnVjdCBwZXJmX2RhdGEgKmRhdGEsCiAJCQkJICAgICAgIGJvb2wgcmVwaXBlLCBzdHJ1Y3QgcGVyZl90b29sICp0b29sKQogeworCWludCByZXQgPSAtRU5PTUVNOwogCXN0cnVjdCBwZXJmX3Nlc3Npb24gKnNlc3Npb24gPSB6YWxsb2Moc2l6ZW9mKCpzZXNzaW9uKSk7CiAKIAlpZiAoIXNlc3Npb24pCkBAIC0yMDEsMTMgKzIwMiwxNSBAQCBzdHJ1Y3QgcGVyZl9zZXNzaW9uICpwZXJmX3Nlc3Npb25fX25ldyhzdHJ1Y3QgcGVyZl9kYXRhICpkYXRhLAogCiAJcGVyZl9lbnZfX2luaXQoJnNlc3Npb24tPmhlYWRlci5lbnYpOwogCWlmIChkYXRhKSB7Ci0JCWlmIChwZXJmX2RhdGFfX29wZW4oZGF0YSkpCisJCXJldCA9IHBlcmZfZGF0YV9fb3BlbihkYXRhKTsKKwkJaWYgKHJldCA8IDApCiAJCQlnb3RvIG91dF9kZWxldGU7CiAKIAkJc2Vzc2lvbi0+ZGF0YSA9IGRhdGE7CiAKIAkJaWYgKHBlcmZfZGF0YV9faXNfcmVhZChkYXRhKSkgewotCQkJaWYgKHBlcmZfc2Vzc2lvbl9fb3BlbihzZXNzaW9uKSA8IDApCisJCQlyZXQgPSBwZXJmX3Nlc3Npb25fX29wZW4oc2Vzc2lvbik7CisJCQlpZiAocmV0IDwgMCkKIAkJCQlnb3RvIG91dF9kZWxldGU7CiAKIAkJCS8qCkBAIC0yMjIsOCArMjI1LDExIEBAIHN0cnVjdCBwZXJmX3Nlc3Npb24gKnBlcmZfc2Vzc2lvbl9fbmV3KHN0cnVjdCBwZXJmX2RhdGEgKmRhdGEsCiAJCQlwZXJmX2V2bGlzdF9faW5pdF90cmFjZV9ldmVudF9zYW1wbGVfcmF3KHNlc3Npb24tPmV2bGlzdCk7CiAKIAkJCS8qIE9wZW4gdGhlIGRpcmVjdG9yeSBkYXRhLiAqLwotCQkJaWYgKGRhdGEtPmlzX2RpciAmJiBwZXJmX2RhdGFfX29wZW5fZGlyKGRhdGEpKQorCQkJaWYgKGRhdGEtPmlzX2RpcikgeworCQkJCXJldCA9IHBlcmZfZGF0YV9fb3Blbl9kaXIoZGF0YSk7CisJCQlpZiAocmV0KQogCQkJCWdvdG8gb3V0X2RlbGV0ZTsKKwkJCX0KIAkJfQogCX0gZWxzZSAgewogCQlzZXNzaW9uLT5tYWNoaW5lcy5ob3N0LmVudiA9ICZwZXJmX2VudjsKQEAgLTI1Niw3ICsyNjIsNyBAQCBzdHJ1Y3QgcGVyZl9zZXNzaW9uICpwZXJmX3Nlc3Npb25fX25ldyhzdHJ1Y3QgcGVyZl9kYXRhICpkYXRhLAogIG91dF9kZWxldGU6CiAJcGVyZl9zZXNzaW9uX19kZWxldGUoc2Vzc2lvbik7CiAgb3V0OgotCXJldHVybiBOVUxMOworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKIHN0YXRpYyB2b2lkIHBlcmZfc2Vzc2lvbl9fZGVsZXRlX3RocmVhZHMoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbikKQEAgLTEzMTcsNiArMTMyMyw3IEBAIHN0YXRpYyBpbnQgZGVsaXZlcl9zYW1wbGVfdmFsdWUoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkJCXN0cnVjdCBtYWNoaW5lICptYWNoaW5lKQogewogCXN0cnVjdCBwZXJmX3NhbXBsZV9pZCAqc2lkID0gcGVyZl9ldmxpc3RfX2lkMnNpZChldmxpc3QsIHYtPmlkKTsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsOwogCiAJaWYgKHNpZCkgewogCQlzYW1wbGUtPmlkICAgICA9IHYtPmlkOwpAQCAtMTMzNiw3ICsxMzQzLDggQEAgc3RhdGljIGludCBkZWxpdmVyX3NhbXBsZV92YWx1ZShzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCiAJaWYgKCFzYW1wbGUtPnBlcmlvZCkKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gdG9vbC0+c2FtcGxlKHRvb2wsIGV2ZW50LCBzYW1wbGUsIHNpZC0+ZXZzZWwsIG1hY2hpbmUpOworCWV2c2VsID0gY29udGFpbmVyX29mKHNpZC0+ZXZzZWwsIHN0cnVjdCBldnNlbCwgY29yZSk7CisJcmV0dXJuIHRvb2wtPnNhbXBsZSh0b29sLCBldmVudCwgc2FtcGxlLCBldnNlbCwgbWFjaGluZSk7CiB9CiAKIHN0YXRpYyBpbnQgZGVsaXZlcl9zYW1wbGVfZ3JvdXAoc3RydWN0IGV2bGlzdCAqZXZsaXN0LApAQCAtMjQxMiw3MyArMjQyMCwzIEBAIGludCBwZXJmX2V2ZW50X19wcm9jZXNzX2lkX2luZGV4KHN0cnVjdCBwZXJmX3Nlc3Npb24gKnNlc3Npb24sCiAJfQogCXJldHVybiAwOwogfQotCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9pZF9pbmRleChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgc3RydWN0IGV2bGlzdCAqZXZsaXN0LAotCQkJCSAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKLXsKLQl1bmlvbiBwZXJmX2V2ZW50ICpldjsKLQlzdHJ1Y3QgZXZzZWwgKmV2c2VsOwotCXNpemVfdCBuciA9IDAsIGkgPSAwLCBzeiwgbWF4X25yLCBuOwotCWludCBlcnI7Ci0KLQlwcl9kZWJ1ZzIoIlN5bnRoZXNpemluZyBpZCBpbmRleFxuIik7Ci0KLQltYXhfbnIgPSAoVUlOVDE2X01BWCAtIHNpemVvZihzdHJ1Y3QgcGVyZl9yZWNvcmRfaWRfaW5kZXgpKSAvCi0JCSBzaXplb2Yoc3RydWN0IGlkX2luZGV4X2VudHJ5KTsKLQotCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZsaXN0LCBldnNlbCkKLQkJbnIgKz0gZXZzZWwtPmlkczsKLQotCW4gPSBuciA+IG1heF9uciA/IG1heF9uciA6IG5yOwotCXN6ID0gc2l6ZW9mKHN0cnVjdCBwZXJmX3JlY29yZF9pZF9pbmRleCkgKyBuICogc2l6ZW9mKHN0cnVjdCBpZF9pbmRleF9lbnRyeSk7Ci0JZXYgPSB6YWxsb2Moc3opOwotCWlmICghZXYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZXYtPmlkX2luZGV4LmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfSURfSU5ERVg7Ci0JZXYtPmlkX2luZGV4LmhlYWRlci5zaXplID0gc3o7Ci0JZXYtPmlkX2luZGV4Lm5yID0gbjsKLQotCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZsaXN0LCBldnNlbCkgewotCQl1MzIgajsKLQotCQlmb3IgKGogPSAwOyBqIDwgZXZzZWwtPmlkczsgaisrKSB7Ci0JCQlzdHJ1Y3QgaWRfaW5kZXhfZW50cnkgKmU7Ci0JCQlzdHJ1Y3QgcGVyZl9zYW1wbGVfaWQgKnNpZDsKLQotCQkJaWYgKGkgPj0gbikgewotCQkJCWVyciA9IHByb2Nlc3ModG9vbCwgZXYsIE5VTEwsIG1hY2hpbmUpOwotCQkJCWlmIChlcnIpCi0JCQkJCWdvdG8gb3V0X2VycjsKLQkJCQluciAtPSBuOwotCQkJCWkgPSAwOwotCQkJfQotCi0JCQllID0gJmV2LT5pZF9pbmRleC5lbnRyaWVzW2krK107Ci0KLQkJCWUtPmlkID0gZXZzZWwtPmlkW2pdOwotCi0JCQlzaWQgPSBwZXJmX2V2bGlzdF9faWQyc2lkKGV2bGlzdCwgZS0+aWQpOwotCQkJaWYgKCFzaWQpIHsKLQkJCQlmcmVlKGV2KTsKLQkJCQlyZXR1cm4gLUVOT0VOVDsKLQkJCX0KLQotCQkJZS0+aWR4ID0gc2lkLT5pZHg7Ci0JCQllLT5jcHUgPSBzaWQtPmNwdTsKLQkJCWUtPnRpZCA9IHNpZC0+dGlkOwotCQl9Ci0JfQotCi0Jc3ogPSBzaXplb2Yoc3RydWN0IHBlcmZfcmVjb3JkX2lkX2luZGV4KSArIG5yICogc2l6ZW9mKHN0cnVjdCBpZF9pbmRleF9lbnRyeSk7Ci0JZXYtPmlkX2luZGV4LmhlYWRlci5zaXplID0gc3o7Ci0JZXYtPmlkX2luZGV4Lm5yID0gbnI7Ci0KLQllcnIgPSBwcm9jZXNzKHRvb2wsIGV2LCBOVUxMLCBtYWNoaW5lKTsKLW91dF9lcnI6Ci0JZnJlZShldik7Ci0KLQlyZXR1cm4gZXJyOwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3Nlc3Npb24uaCBiL3Rvb2xzL3BlcmYvdXRpbC9zZXNzaW9uLmgKaW5kZXggYjdhYTA3Ni4uYjRjOTQyOCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3Nlc3Npb24uaAorKysgYi90b29scy9wZXJmL3V0aWwvc2Vzc2lvbi5oCkBAIC0xMzgsOSArMTM4LDQgQEAgaW50IHBlcmZfc2Vzc2lvbl9fZGVsaXZlcl9zeW50aF9ldmVudChzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLAogaW50IHBlcmZfZXZlbnRfX3Byb2Nlc3NfaWRfaW5kZXgoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiwKIAkJCQkgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQpOwogCi1pbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9pZF9pbmRleChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCSAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQkgICAgc3RydWN0IGV2bGlzdCAqZXZsaXN0LAotCQkJCSAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7Ci0KICNlbmRpZiAvKiBfX1BFUkZfU0VTU0lPTl9IICovCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvc29ydC5jIGIvdG9vbHMvcGVyZi91dGlsL3NvcnQuYwppbmRleCBhMjMwOGViLi40M2QxZDQxIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvc29ydC5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9zb3J0LmMKQEAgLTIzMjksNyArMjMyOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZXZzZWwgKmZpbmRfZXZzZWwoc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBjaGFyICpldmVudF9uYW1lKQogCQlpZiAobnIgPiBldmxpc3QtPmNvcmUubnJfZW50cmllcykKIAkJCXJldHVybiBOVUxMOwogCi0JCWV2c2VsID0gcGVyZl9ldmxpc3RfX2ZpcnN0KGV2bGlzdCk7CisJCWV2c2VsID0gZXZsaXN0X19maXJzdChldmxpc3QpOwogCQl3aGlsZSAoLS1uciA+IDApCiAJCQlldnNlbCA9IHBlcmZfZXZzZWxfX25leHQoZXZzZWwpOwogCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvc3JjY29kZS5jIGIvdG9vbHMvcGVyZi91dGlsL3NyY2NvZGUuYwppbmRleCBhZGZjZjFmLi5kODRlZDhiIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvc3JjY29kZS5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9zcmNjb2RlLmMKQEAgLTE1LDcgKzE1LDcgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlICJzcmNjb2RlLmgiCiAjaW5jbHVkZSAiZGVidWcuaCIKLSNpbmNsdWRlICJ1dGlsLmgiCisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+IC8vIHBhZ2Vfc2l6ZQogCiAjZGVmaW5lIE1BWFNSQ0NBQ0hFICgzMioxMDI0KjEwMjQpCiAjZGVmaW5lIE1BWFNSQ0ZJTEVTICAgICA2NApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3N0YXQtc2hhZG93LmMgYi90b29scy9wZXJmL3V0aWwvc3RhdC1zaGFkb3cuYwppbmRleCA3MGM4N2ZkYi4uMmM0MWQ0NyAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3N0YXQtc2hhZG93LmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL3N0YXQtc2hhZG93LmMKQEAgLTczOCw2ICs3MzgsOCBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX21ldHJpYyhzdHJ1Y3QgcGVyZl9zdGF0X2NvbmZpZyAqY29uZmlnLAogCWNoYXIgKm4sICpwbjsKIAogCWV4cHJfX2N0eF9pbml0KCZwY3R4KTsKKwkvKiBNdXN0IGJlIGZpcnN0IGlkIGVudHJ5ICovCisJZXhwcl9fYWRkX2lkKCZwY3R4LCBuYW1lLCBhdmcpOwogCWZvciAoaSA9IDA7IG1ldHJpY19ldmVudHNbaV07IGkrKykgewogCQlzdHJ1Y3Qgc2F2ZWRfdmFsdWUgKnY7CiAJCXN0cnVjdCBzdGF0cyAqc3RhdHM7CkBAIC03NzYsOCArNzc4LDYgQEAgc3RhdGljIHZvaWQgZ2VuZXJpY19tZXRyaWMoc3RydWN0IHBlcmZfc3RhdF9jb25maWcgKmNvbmZpZywKIAkJCWV4cHJfX2FkZF9pZCgmcGN0eCwgbiwgYXZnX3N0YXRzKHN0YXRzKSpzY2FsZSk7CiAJfQogCi0JZXhwcl9fYWRkX2lkKCZwY3R4LCBuYW1lLCBhdmcpOwotCiAJaWYgKCFtZXRyaWNfZXZlbnRzW2ldKSB7CiAJCWNvbnN0IGNoYXIgKnAgPSBtZXRyaWNfZXhwcjsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3N0YXQuYyBiL3Rvb2xzL3BlcmYvdXRpbC9zdGF0LmMKaW5kZXggOGYxZWEyNy4uZWJkZDEzMCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3N0YXQuYworKysgYi90b29scy9wZXJmL3V0aWwvc3RhdC5jCkBAIC00LDYgKzQsNyBAQAogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlICJjb3VudHMuaCIKKyNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJkZWJ1Zy5oIgogI2luY2x1ZGUgImhlYWRlci5oIgogI2luY2x1ZGUgInN0YXQuaCIKQEAgLTE2MSw2ICsxNjIsMTUgQEAgc3RhdGljIHZvaWQgcGVyZl9ldnNlbF9fZnJlZV9wcmV2X3Jhd19jb3VudHMoc3RydWN0IGV2c2VsICpldnNlbCkKIAlldnNlbC0+cHJldl9yYXdfY291bnRzID0gTlVMTDsKIH0KIAorc3RhdGljIHZvaWQgcGVyZl9ldnNlbF9fcmVzZXRfcHJldl9yYXdfY291bnRzKHN0cnVjdCBldnNlbCAqZXZzZWwpCit7CisJaWYgKGV2c2VsLT5wcmV2X3Jhd19jb3VudHMpIHsKKwkJZXZzZWwtPnByZXZfcmF3X2NvdW50cy0+YWdnci52YWwgPSAwOworCQlldnNlbC0+cHJldl9yYXdfY291bnRzLT5hZ2dyLmVuYSA9IDA7CisJCWV2c2VsLT5wcmV2X3Jhd19jb3VudHMtPmFnZ3IucnVuID0gMDsKKyAgICAgICB9Cit9CisKIHN0YXRpYyBpbnQgcGVyZl9ldnNlbF9fYWxsb2Nfc3RhdHMoc3RydWN0IGV2c2VsICpldnNlbCwgYm9vbCBhbGxvY19yYXcpCiB7CiAJaW50IG5jcHVzID0gcGVyZl9ldnNlbF9fbnJfY3B1cyhldnNlbCk7CkBAIC0yMTEsNiArMjIxLDE0IEBAIHZvaWQgcGVyZl9ldmxpc3RfX3Jlc2V0X3N0YXRzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCkKIAl9CiB9CiAKK3ZvaWQgcGVyZl9ldmxpc3RfX3Jlc2V0X3ByZXZfcmF3X2NvdW50cyhzdHJ1Y3QgZXZsaXN0ICpldmxpc3QpCit7CisJc3RydWN0IGV2c2VsICpldnNlbDsKKworCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZsaXN0LCBldnNlbCkKKwkJcGVyZl9ldnNlbF9fcmVzZXRfcHJldl9yYXdfY291bnRzKGV2c2VsKTsKK30KKwogc3RhdGljIHZvaWQgemVyb19wZXJfcGtnKHN0cnVjdCBldnNlbCAqY291bnRlcikKIHsKIAlpZiAoY291bnRlci0+cGVyX3BrZ19tYXNrKQpAQCAtMzE4LDcgKzMzNiw3IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19jb3VudGVyX21hcHMoc3RydWN0IHBlcmZfc3RhdF9jb25maWcgKmNvbmZpZywKIAlpbnQgbmNwdXMgPSBwZXJmX2V2c2VsX19ucl9jcHVzKGNvdW50ZXIpOwogCWludCBjcHUsIHRocmVhZDsKIAotCWlmIChjb3VudGVyLT5zeXN0ZW1fd2lkZSkKKwlpZiAoY291bnRlci0+Y29yZS5zeXN0ZW1fd2lkZSkKIAkJbnRocmVhZHMgPSAxOwogCiAJZm9yICh0aHJlYWQgPSAwOyB0aHJlYWQgPCBudGhyZWFkczsgdGhyZWFkKyspIHsKQEAgLTQ5Myw0NSArNTExLDMgQEAgaW50IGNyZWF0ZV9wZXJmX3N0YXRfY291bnRlcihzdHJ1Y3QgZXZzZWwgKmV2c2VsLAogCiAJcmV0dXJuIHBlcmZfZXZzZWxfX29wZW5fcGVyX3RocmVhZChldnNlbCwgZXZzZWwtPmNvcmUudGhyZWFkcyk7CiB9Ci0KLWludCBwZXJmX3N0YXRfc3ludGhlc2l6ZV9jb25maWcoc3RydWN0IHBlcmZfc3RhdF9jb25maWcgKmNvbmZpZywKLQkJCQlzdHJ1Y3QgcGVyZl90b29sICp0b29sLAotCQkJCXN0cnVjdCBldmxpc3QgKmV2bGlzdCwKLQkJCQlwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKLQkJCQlib29sIGF0dHJzKQotewotCWludCBlcnI7Ci0KLQlpZiAoYXR0cnMpIHsKLQkJZXJyID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9hdHRycyh0b29sLCBldmxpc3QsIHByb2Nlc3MpOwotCQlpZiAoZXJyIDwgMCkgewotCQkJcHJfZXJyKCJDb3VsZG4ndCBzeW50aGVzaXplIGF0dHJzLlxuIik7Ci0JCQlyZXR1cm4gZXJyOwotCQl9Ci0JfQotCi0JZXJyID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9leHRyYV9hdHRyKHRvb2wsIGV2bGlzdCwgcHJvY2VzcywKLQkJCQkJCWF0dHJzKTsKLQotCWVyciA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkX21hcDIodG9vbCwgZXZsaXN0LT5jb3JlLnRocmVhZHMsCi0JCQkJCQkgcHJvY2VzcywgTlVMTCk7Ci0JaWYgKGVyciA8IDApIHsKLQkJcHJfZXJyKCJDb3VsZG4ndCBzeW50aGVzaXplIHRocmVhZCBtYXAuXG4iKTsKLQkJcmV0dXJuIGVycjsKLQl9Ci0KLQllcnIgPSBwZXJmX2V2ZW50X19zeW50aGVzaXplX2NwdV9tYXAodG9vbCwgZXZsaXN0LT5jb3JlLmNwdXMsCi0JCQkJCSAgICAgcHJvY2VzcywgTlVMTCk7Ci0JaWYgKGVyciA8IDApIHsKLQkJcHJfZXJyKCJDb3VsZG4ndCBzeW50aGVzaXplIHRocmVhZCBtYXAuXG4iKTsKLQkJcmV0dXJuIGVycjsKLQl9Ci0KLQllcnIgPSBwZXJmX2V2ZW50X19zeW50aGVzaXplX3N0YXRfY29uZmlnKHRvb2wsIGNvbmZpZywgcHJvY2VzcywgTlVMTCk7Ci0JaWYgKGVyciA8IDApIHsKLQkJcHJfZXJyKCJDb3VsZG4ndCBzeW50aGVzaXplIGNvbmZpZy5cbiIpOwotCQlyZXR1cm4gZXJyOwotCX0KLQotCXJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3N0YXQuaCBiL3Rvb2xzL3BlcmYvdXRpbC9zdGF0LmgKaW5kZXggMTRmZTNlNS4uZWRiZWIyZiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3N0YXQuaAorKysgYi90b29scy9wZXJmL3V0aWwvc3RhdC5oCkBAIC03LDggKzcsOSBAQAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1ZGUgInJibGlzdC5oIgotI2luY2x1ZGUgImV2ZW50LmgiCiAKK3N0cnVjdCBwZXJmX2NwdV9tYXA7CitzdHJ1Y3QgcGVyZl9zdGF0X2NvbmZpZzsKIHN0cnVjdCB0aW1lc3BlYzsKIAogc3RydWN0IHN0YXRzIHsKQEAgLTE5Miw2ICsxOTMsNyBAQCB2b2lkIHBlcmZfc3RhdF9fY29sbGVjdF9tZXRyaWNfZXhwcihzdHJ1Y3QgZXZsaXN0ICopOwogaW50IHBlcmZfZXZsaXN0X19hbGxvY19zdGF0cyhzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIGJvb2wgYWxsb2NfcmF3KTsKIHZvaWQgcGVyZl9ldmxpc3RfX2ZyZWVfc3RhdHMoc3RydWN0IGV2bGlzdCAqZXZsaXN0KTsKIHZvaWQgcGVyZl9ldmxpc3RfX3Jlc2V0X3N0YXRzKHN0cnVjdCBldmxpc3QgKmV2bGlzdCk7Cit2b2lkIHBlcmZfZXZsaXN0X19yZXNldF9wcmV2X3Jhd19jb3VudHMoc3RydWN0IGV2bGlzdCAqZXZsaXN0KTsKIAogaW50IHBlcmZfc3RhdF9wcm9jZXNzX2NvdW50ZXIoc3RydWN0IHBlcmZfc3RhdF9jb25maWcgKmNvbmZpZywKIAkJCSAgICAgIHN0cnVjdCBldnNlbCAqY291bnRlcik7CkBAIC0yMTAsMTEgKzIxMiw2IEBAIHNpemVfdCBwZXJmX2V2ZW50X19mcHJpbnRmX3N0YXRfY29uZmlnKHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LCBGSUxFICpmcCk7CiBpbnQgY3JlYXRlX3BlcmZfc3RhdF9jb3VudGVyKHN0cnVjdCBldnNlbCAqZXZzZWwsCiAJCQkgICAgIHN0cnVjdCBwZXJmX3N0YXRfY29uZmlnICpjb25maWcsCiAJCQkgICAgIHN0cnVjdCB0YXJnZXQgKnRhcmdldCk7Ci1pbnQgcGVyZl9zdGF0X3N5bnRoZXNpemVfY29uZmlnKHN0cnVjdCBwZXJmX3N0YXRfY29uZmlnICpjb25maWcsCi0JCQkJc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKLQkJCQlzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCi0JCQkJcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJYm9vbCBhdHRycyk7CiB2b2lkCiBwZXJmX2V2bGlzdF9fcHJpbnRfY291bnRlcnMoc3RydWN0IGV2bGlzdCAqZXZsaXN0LAogCQkJICAgIHN0cnVjdCBwZXJmX3N0YXRfY29uZmlnICpjb25maWcsCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvc3ZnaGVscGVyLmMgYi90b29scy9wZXJmL3V0aWwvc3ZnaGVscGVyLmMKaW5kZXggNTgyZjRhNi4uOTZmOTQxZSAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3N2Z2hlbHBlci5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9zdmdoZWxwZXIuYwpAQCAtMTcsMTEgKzE3LDExIEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZTY0Lmg+CiAjaW5jbHVkZSA8bGludXgvemFsbG9jLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwvY3B1bWFwLmg+CiAjaW5jbHVkZSA8cGVyZi9jcHVtYXAuaD4KIAogI2luY2x1ZGUgImVudi5oIgogI2luY2x1ZGUgInN2Z2hlbHBlci5oIgotI2luY2x1ZGUgImNwdW1hcC5oIgogCiBzdGF0aWMgdTY0IGZpcnN0X3RpbWUsIGxhc3RfdGltZTsKIHN0YXRpYyB1NjQgdHVyYm9fZnJlcXVlbmN5LCBtYXhfZnJlcTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9zeW1ib2wtZWxmLmMgYi90b29scy9wZXJmL3V0aWwvc3ltYm9sLWVsZi5jCmluZGV4IDk0Mjg2MzkuLjY2ZjRiZTEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9zeW1ib2wtZWxmLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL3N5bWJvbC1lbGYuYwpAQCAtNyw2ICs3LDcgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxpbnR0eXBlcy5oPgogCisjaW5jbHVkZSAiZHNvLmgiCiAjaW5jbHVkZSAibWFwLmgiCiAjaW5jbHVkZSAibWFwX2dyb3Vwcy5oIgogI2luY2x1ZGUgInN5bWJvbC5oIgpAQCAtMTYsMTAgKzE3LDEyIEBACiAjaW5jbHVkZSAibWFjaGluZS5oIgogI2luY2x1ZGUgInZkc28uaCIKICNpbmNsdWRlICJkZWJ1Zy5oIgotI2luY2x1ZGUgInV0aWwuaCIKKyNpbmNsdWRlICJ1dGlsL2NvcHlmaWxlLmgiCiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KICNpbmNsdWRlIDxzeW1ib2wva2FsbHN5bXMuaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4KIAogI2lmbmRlZiBFTV9BQVJDSDY0CiAjZGVmaW5lIEVNX0FBUkNINjQJMTgzICAvKiBBUk0gNjQgYml0ICovCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvc3ltYm9sLW1pbmltYWwuYyBiL3Rvb2xzL3BlcmYvdXRpbC9zeW1ib2wtbWluaW1hbC5jCmluZGV4IDdlMjgxM2UuLmQ2ZTk5YWYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9zeW1ib2wtbWluaW1hbC5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9zeW1ib2wtbWluaW1hbC5jCkBAIC0xLDggKzEsNiBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKICNpbmNsdWRlICJkc28uaCIKICNpbmNsdWRlICJzeW1ib2wuaCIKICNpbmNsdWRlICJzeW1zcmMuaCIKLSNpbmNsdWRlICJ1dGlsLmgiCiAKICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgpAQCAtMTMsNiArMTEsNyBAQAogI2luY2x1ZGUgPGJ5dGVzd2FwLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxsaW51eC96YWxsb2MuaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4KIAogc3RhdGljIGJvb2wgY2hlY2tfbmVlZF9zd2FwKGludCBmaWxlX2VuZGlhbikKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9zeW1ib2wuYyBiL3Rvb2xzL3BlcmYvdXRpbC9zeW1ib2wuYwppbmRleCA3NjVjNzVkLi5hOGY4MGU0IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvc3ltYm9sLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL3N5bWJvbC5jCkBAIC0xOSw3ICsxOSw3IEBACiAjaW5jbHVkZSAiYnVpbGQtaWQuaCIKICNpbmNsdWRlICJjYXAuaCIKICNpbmNsdWRlICJkc28uaCIKLSNpbmNsdWRlICJ1dGlsLmgiCisjaW5jbHVkZSAidXRpbC5oIiAvLyBsc2RpcigpCiAjaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJldmVudC5oIgogI2luY2x1ZGUgIm1hY2hpbmUuaCIKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9zeW50aGV0aWMtZXZlbnRzLmMgYi90b29scy9wZXJmL3V0aWwvc3ludGhldGljLWV2ZW50cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwN2NiY2EKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9wZXJmL3V0aWwvc3ludGhldGljLWV2ZW50cy5jCkBAIC0wLDAgKzEsMTg4NCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAKKworI2luY2x1ZGUgInV0aWwvZGVidWcuaCIKKyNpbmNsdWRlICJ1dGlsL2Rzby5oIgorI2luY2x1ZGUgInV0aWwvZXZlbnQuaCIKKyNpbmNsdWRlICJ1dGlsL2V2bGlzdC5oIgorI2luY2x1ZGUgInV0aWwvbWFjaGluZS5oIgorI2luY2x1ZGUgInV0aWwvbWFwLmgiCisjaW5jbHVkZSAidXRpbC9tYXBfc3ltYm9sLmgiCisjaW5jbHVkZSAidXRpbC9icmFuY2guaCIKKyNpbmNsdWRlICJ1dGlsL21lbXN3YXAuaCIKKyNpbmNsdWRlICJ1dGlsL25hbWVzcGFjZXMuaCIKKyNpbmNsdWRlICJ1dGlsL3Nlc3Npb24uaCIKKyNpbmNsdWRlICJ1dGlsL3N0YXQuaCIKKyNpbmNsdWRlICJ1dGlsL3N5bWJvbC5oIgorI2luY2x1ZGUgInV0aWwvc3ludGhldGljLWV2ZW50cy5oIgorI2luY2x1ZGUgInV0aWwvdGFyZ2V0LmgiCisjaW5jbHVkZSAidXRpbC90aW1lLXV0aWxzLmgiCisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgvemFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvcGVyZl9ldmVudC5oPgorI2luY2x1ZGUgPGFzbS9idWcuaD4KKyNpbmNsdWRlIDxwZXJmL2V2c2VsLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwvY3B1bWFwLmg+CisjaW5jbHVkZSA8cGVyZi9jcHVtYXAuaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4gLy8gcGFnZV9zaXplCisjaW5jbHVkZSA8aW50ZXJuYWwvdGhyZWFkbWFwLmg+CisjaW5jbHVkZSA8cGVyZi90aHJlYWRtYXAuaD4KKyNpbmNsdWRlIDxzeW1ib2wva2FsbHN5bXMuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1YXBpL2xpbnV4L21tYW4uaD4gLyogVG8gZ2V0IHRoaW5ncyBsaWtlIE1BUF9IVUdFVExCIGV2ZW4gb24gb2xkZXIgbGliYyBoZWFkZXJzICovCisjaW5jbHVkZSA8YXBpL2ZzL2ZzLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjZGVmaW5lIERFRkFVTFRfUFJPQ19NQVBfUEFSU0VfVElNRU9VVCA1MDAKKwordW5zaWduZWQgaW50IHByb2NfbWFwX3RpbWVvdXQgPSBERUZBVUxUX1BST0NfTUFQX1BBUlNFX1RJTUVPVVQ7CisKK2ludCBwZXJmX3Rvb2xfX3Byb2Nlc3Nfc3ludGhfZXZlbnQoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKKwkJCQkgICB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwKKwkJCQkgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSwKKwkJCQkgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcykKK3sKKwlzdHJ1Y3QgcGVyZl9zYW1wbGUgc3ludGhfc2FtcGxlID0geworCQkucGlkCSAgID0gLTEsCisJCS50aWQJICAgPSAtMSwKKwkJLnRpbWUJICAgPSAtMSwKKwkJLnN0cmVhbV9pZCA9IC0xLAorCQkuY3B1CSAgID0gLTEsCisJCS5wZXJpb2QJICAgPSAxLAorCQkuY3B1bW9kZSAgID0gZXZlbnQtPmhlYWRlci5taXNjICYgUEVSRl9SRUNPUkRfTUlTQ19DUFVNT0RFX01BU0ssCisJfTsKKworCXJldHVybiBwcm9jZXNzKHRvb2wsIGV2ZW50LCAmc3ludGhfc2FtcGxlLCBtYWNoaW5lKTsKK307CisKKy8qCisgKiBBc3N1bWVzIHRoYXQgdGhlIGZpcnN0IDQwOTUgYnl0ZXMgb2YgL3Byb2MvcGlkL3N0YXQgY29udGFpbnMKKyAqIHRoZSBjb21tLCB0Z2lkIGFuZCBwcGlkLgorICovCitzdGF0aWMgaW50IHBlcmZfZXZlbnRfX2dldF9jb21tX2lkcyhwaWRfdCBwaWQsIGNoYXIgKmNvbW0sIHNpemVfdCBsZW4sCisJCQkJICAgIHBpZF90ICp0Z2lkLCBwaWRfdCAqcHBpZCkKK3sKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKKwljaGFyIGJmWzQwOTZdOworCWludCBmZDsKKwlzaXplX3Qgc2l6ZSA9IDA7CisJc3NpemVfdCBuOworCWNoYXIgKm5hbWUsICp0Z2lkcywgKnBwaWRzOworCisJKnRnaWQgPSAtMTsKKwkqcHBpZCA9IC0xOworCisJc25wcmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIvcHJvYy8lZC9zdGF0dXMiLCBwaWQpOworCisJZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1JET05MWSk7CisJaWYgKGZkIDwgMCkgeworCQlwcl9kZWJ1ZygiY291bGRuJ3Qgb3BlbiAlc1xuIiwgZmlsZW5hbWUpOworCQlyZXR1cm4gLTE7CisJfQorCisJbiA9IHJlYWQoZmQsIGJmLCBzaXplb2YoYmYpIC0gMSk7CisJY2xvc2UoZmQpOworCWlmIChuIDw9IDApIHsKKwkJcHJfd2FybmluZygiQ291bGRuJ3QgZ2V0IENPTU0sIHRpZ2QgYW5kIHBwaWQgZm9yIHBpZCAlZFxuIiwKKwkJCSAgIHBpZCk7CisJCXJldHVybiAtMTsKKwl9CisJYmZbbl0gPSAnXDAnOworCisJbmFtZSA9IHN0cnN0cihiZiwgIk5hbWU6Iik7CisJdGdpZHMgPSBzdHJzdHIoYmYsICJUZ2lkOiIpOworCXBwaWRzID0gc3Ryc3RyKGJmLCAiUFBpZDoiKTsKKworCWlmIChuYW1lKSB7CisJCWNoYXIgKm5sOworCisJCW5hbWUgPSBza2lwX3NwYWNlcyhuYW1lICsgNSk7ICAvKiBzdHJsZW4oIk5hbWU6IikgKi8KKwkJbmwgPSBzdHJjaHIobmFtZSwgJ1xuJyk7CisJCWlmIChubCkKKwkJCSpubCA9ICdcMCc7CisKKwkJc2l6ZSA9IHN0cmxlbihuYW1lKTsKKwkJaWYgKHNpemUgPj0gbGVuKQorCQkJc2l6ZSA9IGxlbiAtIDE7CisJCW1lbWNweShjb21tLCBuYW1lLCBzaXplKTsKKwkJY29tbVtzaXplXSA9ICdcMCc7CisJfSBlbHNlIHsKKwkJcHJfZGVidWcoIk5hbWU6IHN0cmluZyBub3QgZm91bmQgZm9yIHBpZCAlZFxuIiwgcGlkKTsKKwl9CisKKwlpZiAodGdpZHMpIHsKKwkJdGdpZHMgKz0gNTsgIC8qIHN0cmxlbigiVGdpZDoiKSAqLworCQkqdGdpZCA9IGF0b2kodGdpZHMpOworCX0gZWxzZSB7CisJCXByX2RlYnVnKCJUZ2lkOiBzdHJpbmcgbm90IGZvdW5kIGZvciBwaWQgJWRcbiIsIHBpZCk7CisJfQorCisJaWYgKHBwaWRzKSB7CisJCXBwaWRzICs9IDU7ICAvKiBzdHJsZW4oIlBQaWQ6IikgKi8KKwkJKnBwaWQgPSBhdG9pKHBwaWRzKTsKKwl9IGVsc2UgeworCQlwcl9kZWJ1ZygiUFBpZDogc3RyaW5nIG5vdCBmb3VuZCBmb3IgcGlkICVkXG4iLCBwaWQpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBlcmZfZXZlbnRfX3ByZXBhcmVfY29tbSh1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgcGlkX3QgcGlkLAorCQkJCSAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSwKKwkJCQkgICAgcGlkX3QgKnRnaWQsIHBpZF90ICpwcGlkKQoreworCXNpemVfdCBzaXplOworCisJKnBwaWQgPSAtMTsKKworCW1lbXNldCgmZXZlbnQtPmNvbW0sIDAsIHNpemVvZihldmVudC0+Y29tbSkpOworCisJaWYgKG1hY2hpbmVfX2lzX2hvc3QobWFjaGluZSkpIHsKKwkJaWYgKHBlcmZfZXZlbnRfX2dldF9jb21tX2lkcyhwaWQsIGV2ZW50LT5jb21tLmNvbW0sCisJCQkJCSAgICAgc2l6ZW9mKGV2ZW50LT5jb21tLmNvbW0pLAorCQkJCQkgICAgIHRnaWQsIHBwaWQpICE9IDApIHsKKwkJCXJldHVybiAtMTsKKwkJfQorCX0gZWxzZSB7CisJCSp0Z2lkID0gbWFjaGluZS0+cGlkOworCX0KKworCWlmICgqdGdpZCA8IDApCisJCXJldHVybiAtMTsKKworCWV2ZW50LT5jb21tLnBpZCA9ICp0Z2lkOworCWV2ZW50LT5jb21tLmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfQ09NTTsKKworCXNpemUgPSBzdHJsZW4oZXZlbnQtPmNvbW0uY29tbSkgKyAxOworCXNpemUgPSBQRVJGX0FMSUdOKHNpemUsIHNpemVvZih1NjQpKTsKKwltZW1zZXQoZXZlbnQtPmNvbW0uY29tbSArIHNpemUsIDAsIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKKwlldmVudC0+Y29tbS5oZWFkZXIuc2l6ZSA9IChzaXplb2YoZXZlbnQtPmNvbW0pIC0KKwkJCQkoc2l6ZW9mKGV2ZW50LT5jb21tLmNvbW0pIC0gc2l6ZSkgKworCQkJCW1hY2hpbmUtPmlkX2hkcl9zaXplKTsKKwlldmVudC0+Y29tbS50aWQgPSBwaWQ7CisKKwlyZXR1cm4gMDsKK30KKworcGlkX3QgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9jb21tKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCisJCQkJCSB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgcGlkX3QgcGlkLAorCQkJCQkgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJCSBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKK3sKKwlwaWRfdCB0Z2lkLCBwcGlkOworCisJaWYgKHBlcmZfZXZlbnRfX3ByZXBhcmVfY29tbShldmVudCwgcGlkLCBtYWNoaW5lLCAmdGdpZCwgJnBwaWQpICE9IDApCisJCXJldHVybiAtMTsKKworCWlmIChwZXJmX3Rvb2xfX3Byb2Nlc3Nfc3ludGhfZXZlbnQodG9vbCwgZXZlbnQsIG1hY2hpbmUsIHByb2Nlc3MpICE9IDApCisJCXJldHVybiAtMTsKKworCXJldHVybiB0Z2lkOworfQorCitzdGF0aWMgdm9pZCBwZXJmX2V2ZW50X19nZXRfbnNfbGlua19pbmZvKHBpZF90IHBpZCwgY29uc3QgY2hhciAqbnMsCisJCQkJCSBzdHJ1Y3QgcGVyZl9uc19saW5rX2luZm8gKm5zX2xpbmtfaW5mbykKK3sKKwlzdHJ1Y3Qgc3RhdDY0IHN0OworCWNoYXIgcHJvY19uc1sxMjhdOworCisJc3ByaW50Zihwcm9jX25zLCAiL3Byb2MvJXUvbnMvJXMiLCBwaWQsIG5zKTsKKwlpZiAoc3RhdDY0KHByb2NfbnMsICZzdCkgPT0gMCkgeworCQluc19saW5rX2luZm8tPmRldiA9IHN0LnN0X2RldjsKKwkJbnNfbGlua19pbmZvLT5pbm8gPSBzdC5zdF9pbm87CisJfQorfQorCitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9uYW1lc3BhY2VzKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCisJCQkJICAgICAgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQsCisJCQkJICAgICAgcGlkX3QgcGlkLCBwaWRfdCB0Z2lkLAorCQkJCSAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAorCQkJCSAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKQoreworCXUzMiBpZHg7CisJc3RydWN0IHBlcmZfbnNfbGlua19pbmZvICpuc19saW5rX2luZm87CisKKwlpZiAoIXRvb2wgfHwgIXRvb2wtPm5hbWVzcGFjZV9ldmVudHMpCisJCXJldHVybiAwOworCisJbWVtc2V0KCZldmVudC0+bmFtZXNwYWNlcywgMCwgKHNpemVvZihldmVudC0+bmFtZXNwYWNlcykgKworCSAgICAgICAoTlJfTkFNRVNQQUNFUyAqIHNpemVvZihzdHJ1Y3QgcGVyZl9uc19saW5rX2luZm8pKSArCisJICAgICAgIG1hY2hpbmUtPmlkX2hkcl9zaXplKSk7CisKKwlldmVudC0+bmFtZXNwYWNlcy5waWQgPSB0Z2lkOworCWV2ZW50LT5uYW1lc3BhY2VzLnRpZCA9IHBpZDsKKworCWV2ZW50LT5uYW1lc3BhY2VzLm5yX25hbWVzcGFjZXMgPSBOUl9OQU1FU1BBQ0VTOworCisJbnNfbGlua19pbmZvID0gZXZlbnQtPm5hbWVzcGFjZXMubGlua19pbmZvOworCisJZm9yIChpZHggPSAwOyBpZHggPCBldmVudC0+bmFtZXNwYWNlcy5ucl9uYW1lc3BhY2VzOyBpZHgrKykKKwkJcGVyZl9ldmVudF9fZ2V0X25zX2xpbmtfaW5mbyhwaWQsIHBlcmZfbnNfX25hbWUoaWR4KSwKKwkJCQkJICAgICAmbnNfbGlua19pbmZvW2lkeF0pOworCisJZXZlbnQtPm5hbWVzcGFjZXMuaGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9OQU1FU1BBQ0VTOworCisJZXZlbnQtPm5hbWVzcGFjZXMuaGVhZGVyLnNpemUgPSAoc2l6ZW9mKGV2ZW50LT5uYW1lc3BhY2VzKSArCisJCQkoTlJfTkFNRVNQQUNFUyAqIHNpemVvZihzdHJ1Y3QgcGVyZl9uc19saW5rX2luZm8pKSArCisJCQltYWNoaW5lLT5pZF9oZHJfc2l6ZSk7CisKKwlpZiAocGVyZl90b29sX19wcm9jZXNzX3N5bnRoX2V2ZW50KHRvb2wsIGV2ZW50LCBtYWNoaW5lLCBwcm9jZXNzKSAhPSAwKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2Zvcmsoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKKwkJCQkgICAgICAgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQsCisJCQkJICAgICAgIHBpZF90IHBpZCwgcGlkX3QgdGdpZCwgcGlkX3QgcHBpZCwKKwkJCQkgICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJICAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKQoreworCW1lbXNldCgmZXZlbnQtPmZvcmssIDAsIHNpemVvZihldmVudC0+Zm9yaykgKyBtYWNoaW5lLT5pZF9oZHJfc2l6ZSk7CisKKwkvKgorCSAqIGZvciBtYWluIHRocmVhZCBzZXQgcGFyZW50IHRvIHBwaWQgZnJvbSBzdGF0dXMgZmlsZS4gRm9yIG90aGVyCisJICogdGhyZWFkcyBzZXQgcGFyZW50IHBpZCB0byBtYWluIHRocmVhZC4gaWUuLCBhc3N1bWUgbWFpbiB0aHJlYWQKKwkgKiBzcGF3bnMgYWxsIHRocmVhZHMgaW4gYSBwcm9jZXNzCisJKi8KKwlpZiAodGdpZCA9PSBwaWQpIHsKKwkJZXZlbnQtPmZvcmsucHBpZCA9IHBwaWQ7CisJCWV2ZW50LT5mb3JrLnB0aWQgPSBwcGlkOworCX0gZWxzZSB7CisJCWV2ZW50LT5mb3JrLnBwaWQgPSB0Z2lkOworCQlldmVudC0+Zm9yay5wdGlkID0gdGdpZDsKKwl9CisJZXZlbnQtPmZvcmsucGlkICA9IHRnaWQ7CisJZXZlbnQtPmZvcmsudGlkICA9IHBpZDsKKwlldmVudC0+Zm9yay5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX0ZPUks7CisJZXZlbnQtPmZvcmsuaGVhZGVyLm1pc2MgPSBQRVJGX1JFQ09SRF9NSVNDX0ZPUktfRVhFQzsKKworCWV2ZW50LT5mb3JrLmhlYWRlci5zaXplID0gKHNpemVvZihldmVudC0+Zm9yaykgKyBtYWNoaW5lLT5pZF9oZHJfc2l6ZSk7CisKKwlpZiAocGVyZl90b29sX19wcm9jZXNzX3N5bnRoX2V2ZW50KHRvb2wsIGV2ZW50LCBtYWNoaW5lLCBwcm9jZXNzKSAhPSAwKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfbW1hcF9ldmVudHMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKKwkJCQkgICAgICAgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQsCisJCQkJICAgICAgIHBpZF90IHBpZCwgcGlkX3QgdGdpZCwKKwkJCQkgICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJICAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLAorCQkJCSAgICAgICBib29sIG1tYXBfZGF0YSkKK3sKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKKwlGSUxFICpmcDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdDsKKwlib29sIHRydW5jYXRpb24gPSBmYWxzZTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdGltZW91dCA9IHByb2NfbWFwX3RpbWVvdXQgKiAxMDAwMDAwVUxMOworCWludCByYyA9IDA7CisJY29uc3QgY2hhciAqaHVnZXRsYmZzX21udCA9IGh1Z2V0bGJmc19fbW91bnRwb2ludCgpOworCWludCBodWdldGxiZnNfbW50X2xlbiA9IGh1Z2V0bGJmc19tbnQgPyBzdHJsZW4oaHVnZXRsYmZzX21udCkgOiAwOworCisJaWYgKG1hY2hpbmVfX2lzX2RlZmF1bHRfZ3Vlc3QobWFjaGluZSkpCisJCXJldHVybiAwOworCisJc25wcmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIlcy9wcm9jLyVkL3Rhc2svJWQvbWFwcyIsCisJCSBtYWNoaW5lLT5yb290X2RpciwgcGlkLCBwaWQpOworCisJZnAgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKwlpZiAoZnAgPT0gTlVMTCkgeworCQkvKgorCQkgKiBXZSByYWNlZCB3aXRoIGEgdGFzayBleGl0aW5nIC0ganVzdCByZXR1cm46CisJCSAqLworCQlwcl9kZWJ1ZygiY291bGRuJ3Qgb3BlbiAlc1xuIiwgZmlsZW5hbWUpOworCQlyZXR1cm4gLTE7CisJfQorCisJZXZlbnQtPmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfTU1BUDI7CisJdCA9IHJkY2xvY2soKTsKKworCXdoaWxlICgxKSB7CisJCWNoYXIgYmZbQlVGU0laXTsKKwkJY2hhciBwcm90WzVdOworCQljaGFyIGV4ZWNuYW1lW1BBVEhfTUFYXTsKKwkJY2hhciBhbm9uc3RyW10gPSAiLy9hbm9uIjsKKwkJdW5zaWduZWQgaW50IGlubzsKKwkJc2l6ZV90IHNpemU7CisJCXNzaXplX3QgbjsKKworCQlpZiAoZmdldHMoYmYsIHNpemVvZihiZiksIGZwKSA9PSBOVUxMKQorCQkJYnJlYWs7CisKKwkJaWYgKChyZGNsb2NrKCkgLSB0KSA+IHRpbWVvdXQpIHsKKwkJCXByX3dhcm5pbmcoIlJlYWRpbmcgJXMgdGltZSBvdXQuICIKKwkJCQkgICAiWW91IG1heSB3YW50IHRvIGluY3JlYXNlICIKKwkJCQkgICAidGhlIHRpbWUgbGltaXQgYnkgLS1wcm9jLW1hcC10aW1lb3V0XG4iLAorCQkJCSAgIGZpbGVuYW1lKTsKKwkJCXRydW5jYXRpb24gPSB0cnVlOworCQkJZ290byBvdXQ7CisJCX0KKworCQkvKiBlbnN1cmUgbnVsbCB0ZXJtaW5hdGlvbiBzaW5jZSBzdGFjayB3aWxsIGJlIHJldXNlZC4gKi8KKwkJc3RyY3B5KGV4ZWNuYW1lLCAiIik7CisKKwkJLyogMDA0MDAwMDAtMDA0MGMwMDAgci14cCAwMDAwMDAwMCBmZDowMSA0MTAzOCAgL2Jpbi9jYXQgKi8KKwkJbiA9IHNzY2FuZihiZiwgIiUiUFJJX2x4NjQiLSUiUFJJX2x4NjQiICVzICUiUFJJX2x4NjQiICV4OiV4ICV1ICVbXlxuXVxuIiwKKwkJICAgICAgICZldmVudC0+bW1hcDIuc3RhcnQsICZldmVudC0+bW1hcDIubGVuLCBwcm90LAorCQkgICAgICAgJmV2ZW50LT5tbWFwMi5wZ29mZiwgJmV2ZW50LT5tbWFwMi5tYWosCisJCSAgICAgICAmZXZlbnQtPm1tYXAyLm1pbiwKKwkJICAgICAgICZpbm8sIGV4ZWNuYW1lKTsKKworCQkvKgorIAkJICogQW5vbiBtYXBzIGRvbid0IGhhdmUgdGhlIGV4ZWNuYW1lLgorIAkJICovCisJCWlmIChuIDwgNykKKwkJCWNvbnRpbnVlOworCisJCWV2ZW50LT5tbWFwMi5pbm8gPSAodTY0KWlubzsKKworCQkvKgorCQkgKiBKdXN0IGxpa2UgdGhlIGtlcm5lbCwgc2VlIF9fcGVyZl9ldmVudF9tbWFwIGluIGtlcm5lbC9wZXJmX2V2ZW50LmMKKwkJICovCisJCWlmIChtYWNoaW5lX19pc19ob3N0KG1hY2hpbmUpKQorCQkJZXZlbnQtPmhlYWRlci5taXNjID0gUEVSRl9SRUNPUkRfTUlTQ19VU0VSOworCQllbHNlCisJCQlldmVudC0+aGVhZGVyLm1pc2MgPSBQRVJGX1JFQ09SRF9NSVNDX0dVRVNUX1VTRVI7CisKKwkJLyogbWFwIHByb3RlY3Rpb24gYW5kIGZsYWdzIGJpdHMgKi8KKwkJZXZlbnQtPm1tYXAyLnByb3QgPSAwOworCQlldmVudC0+bW1hcDIuZmxhZ3MgPSAwOworCQlpZiAocHJvdFswXSA9PSAncicpCisJCQlldmVudC0+bW1hcDIucHJvdCB8PSBQUk9UX1JFQUQ7CisJCWlmIChwcm90WzFdID09ICd3JykKKwkJCWV2ZW50LT5tbWFwMi5wcm90IHw9IFBST1RfV1JJVEU7CisJCWlmIChwcm90WzJdID09ICd4JykKKwkJCWV2ZW50LT5tbWFwMi5wcm90IHw9IFBST1RfRVhFQzsKKworCQlpZiAocHJvdFszXSA9PSAncycpCisJCQlldmVudC0+bW1hcDIuZmxhZ3MgfD0gTUFQX1NIQVJFRDsKKwkJZWxzZQorCQkJZXZlbnQtPm1tYXAyLmZsYWdzIHw9IE1BUF9QUklWQVRFOworCisJCWlmIChwcm90WzJdICE9ICd4JykgeworCQkJaWYgKCFtbWFwX2RhdGEgfHwgcHJvdFswXSAhPSAncicpCisJCQkJY29udGludWU7CisKKwkJCWV2ZW50LT5oZWFkZXIubWlzYyB8PSBQRVJGX1JFQ09SRF9NSVNDX01NQVBfREFUQTsKKwkJfQorCitvdXQ6CisJCWlmICh0cnVuY2F0aW9uKQorCQkJZXZlbnQtPmhlYWRlci5taXNjIHw9IFBFUkZfUkVDT1JEX01JU0NfUFJPQ19NQVBfUEFSU0VfVElNRU9VVDsKKworCQlpZiAoIXN0cmNtcChleGVjbmFtZSwgIiIpKQorCQkJc3RyY3B5KGV4ZWNuYW1lLCBhbm9uc3RyKTsKKworCQlpZiAoaHVnZXRsYmZzX21udF9sZW4gJiYKKwkJICAgICFzdHJuY21wKGV4ZWNuYW1lLCBodWdldGxiZnNfbW50LCBodWdldGxiZnNfbW50X2xlbikpIHsKKwkJCXN0cmNweShleGVjbmFtZSwgYW5vbnN0cik7CisJCQlldmVudC0+bW1hcDIuZmxhZ3MgfD0gTUFQX0hVR0VUTEI7CisJCX0KKworCQlzaXplID0gc3RybGVuKGV4ZWNuYW1lKSArIDE7CisJCW1lbWNweShldmVudC0+bW1hcDIuZmlsZW5hbWUsIGV4ZWNuYW1lLCBzaXplKTsKKwkJc2l6ZSA9IFBFUkZfQUxJR04oc2l6ZSwgc2l6ZW9mKHU2NCkpOworCQlldmVudC0+bW1hcDIubGVuIC09IGV2ZW50LT5tbWFwLnN0YXJ0OworCQlldmVudC0+bW1hcDIuaGVhZGVyLnNpemUgPSAoc2l6ZW9mKGV2ZW50LT5tbWFwMikgLQorCQkJCQkoc2l6ZW9mKGV2ZW50LT5tbWFwMi5maWxlbmFtZSkgLSBzaXplKSk7CisJCW1lbXNldChldmVudC0+bW1hcDIuZmlsZW5hbWUgKyBzaXplLCAwLCBtYWNoaW5lLT5pZF9oZHJfc2l6ZSk7CisJCWV2ZW50LT5tbWFwMi5oZWFkZXIuc2l6ZSArPSBtYWNoaW5lLT5pZF9oZHJfc2l6ZTsKKwkJZXZlbnQtPm1tYXAyLnBpZCA9IHRnaWQ7CisJCWV2ZW50LT5tbWFwMi50aWQgPSBwaWQ7CisKKwkJaWYgKHBlcmZfdG9vbF9fcHJvY2Vzc19zeW50aF9ldmVudCh0b29sLCBldmVudCwgbWFjaGluZSwgcHJvY2VzcykgIT0gMCkgeworCQkJcmMgPSAtMTsKKwkJCWJyZWFrOworCQl9CisKKwkJaWYgKHRydW5jYXRpb24pCisJCQlicmVhazsKKwl9CisKKwlmY2xvc2UoZnApOworCXJldHVybiByYzsKK30KKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfbW9kdWxlcyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKKwkJCQkgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKK3sKKwlpbnQgcmMgPSAwOworCXN0cnVjdCBtYXAgKnBvczsKKwlzdHJ1Y3QgbWFwcyAqbWFwcyA9IG1hY2hpbmVfX2tlcm5lbF9tYXBzKG1hY2hpbmUpOworCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50ID0gemFsbG9jKChzaXplb2YoZXZlbnQtPm1tYXApICsKKwkJCQkJICBtYWNoaW5lLT5pZF9oZHJfc2l6ZSkpOworCWlmIChldmVudCA9PSBOVUxMKSB7CisJCXByX2RlYnVnKCJOb3QgZW5vdWdoIG1lbW9yeSBzeW50aGVzaXppbmcgbW1hcCBldmVudCAiCisJCQkgImZvciBrZXJuZWwgbW9kdWxlc1xuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwlldmVudC0+aGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9NTUFQOworCisJLyoKKwkgKiBrZXJuZWwgdXNlcyAwIGZvciB1c2VyIHNwYWNlIG1hcHMsIHNlZSBrZXJuZWwvcGVyZl9ldmVudC5jCisJICogX19wZXJmX2V2ZW50X21tYXAKKwkgKi8KKwlpZiAobWFjaGluZV9faXNfaG9zdChtYWNoaW5lKSkKKwkJZXZlbnQtPmhlYWRlci5taXNjID0gUEVSRl9SRUNPUkRfTUlTQ19LRVJORUw7CisJZWxzZQorCQlldmVudC0+aGVhZGVyLm1pc2MgPSBQRVJGX1JFQ09SRF9NSVNDX0dVRVNUX0tFUk5FTDsKKworCWZvciAocG9zID0gbWFwc19fZmlyc3QobWFwcyk7IHBvczsgcG9zID0gbWFwX19uZXh0KHBvcykpIHsKKwkJc2l6ZV90IHNpemU7CisKKwkJaWYgKCFfX21hcF9faXNfa21vZHVsZShwb3MpKQorCQkJY29udGludWU7CisKKwkJc2l6ZSA9IFBFUkZfQUxJR04ocG9zLT5kc28tPmxvbmdfbmFtZV9sZW4gKyAxLCBzaXplb2YodTY0KSk7CisJCWV2ZW50LT5tbWFwLmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfTU1BUDsKKwkJZXZlbnQtPm1tYXAuaGVhZGVyLnNpemUgPSAoc2l6ZW9mKGV2ZW50LT5tbWFwKSAtCisJCQkJICAgICAgICAoc2l6ZW9mKGV2ZW50LT5tbWFwLmZpbGVuYW1lKSAtIHNpemUpKTsKKwkJbWVtc2V0KGV2ZW50LT5tbWFwLmZpbGVuYW1lICsgc2l6ZSwgMCwgbWFjaGluZS0+aWRfaGRyX3NpemUpOworCQlldmVudC0+bW1hcC5oZWFkZXIuc2l6ZSArPSBtYWNoaW5lLT5pZF9oZHJfc2l6ZTsKKwkJZXZlbnQtPm1tYXAuc3RhcnQgPSBwb3MtPnN0YXJ0OworCQlldmVudC0+bW1hcC5sZW4gICA9IHBvcy0+ZW5kIC0gcG9zLT5zdGFydDsKKwkJZXZlbnQtPm1tYXAucGlkICAgPSBtYWNoaW5lLT5waWQ7CisKKwkJbWVtY3B5KGV2ZW50LT5tbWFwLmZpbGVuYW1lLCBwb3MtPmRzby0+bG9uZ19uYW1lLAorCQkgICAgICAgcG9zLT5kc28tPmxvbmdfbmFtZV9sZW4gKyAxKTsKKwkJaWYgKHBlcmZfdG9vbF9fcHJvY2Vzc19zeW50aF9ldmVudCh0b29sLCBldmVudCwgbWFjaGluZSwgcHJvY2VzcykgIT0gMCkgeworCQkJcmMgPSAtMTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJZnJlZShldmVudCk7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IF9fZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkKHVuaW9uIHBlcmZfZXZlbnQgKmNvbW1fZXZlbnQsCisJCQkJICAgICAgdW5pb24gcGVyZl9ldmVudCAqbW1hcF9ldmVudCwKKwkJCQkgICAgICB1bmlvbiBwZXJmX2V2ZW50ICpmb3JrX2V2ZW50LAorCQkJCSAgICAgIHVuaW9uIHBlcmZfZXZlbnQgKm5hbWVzcGFjZXNfZXZlbnQsCisJCQkJICAgICAgcGlkX3QgcGlkLCBpbnQgZnVsbCwgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJICAgICAgc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsIGJvb2wgbW1hcF9kYXRhKQoreworCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOworCURJUiAqdGFza3M7CisJc3RydWN0IGRpcmVudCAqZGlyZW50OworCXBpZF90IHRnaWQsIHBwaWQ7CisJaW50IHJjID0gMDsKKworCS8qIHNwZWNpYWwgY2FzZTogb25seSBzZW5kIG9uZSBjb21tIGV2ZW50IHVzaW5nIHBhc3NlZCBpbiBwaWQgKi8KKwlpZiAoIWZ1bGwpIHsKKwkJdGdpZCA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfY29tbSh0b29sLCBjb21tX2V2ZW50LCBwaWQsCisJCQkJCQkgICBwcm9jZXNzLCBtYWNoaW5lKTsKKworCQlpZiAodGdpZCA9PSAtMSkKKwkJCXJldHVybiAtMTsKKworCQlpZiAocGVyZl9ldmVudF9fc3ludGhlc2l6ZV9uYW1lc3BhY2VzKHRvb2wsIG5hbWVzcGFjZXNfZXZlbnQsIHBpZCwKKwkJCQkJCSAgICAgIHRnaWQsIHByb2Nlc3MsIG1hY2hpbmUpIDwgMCkKKwkJCXJldHVybiAtMTsKKworCQkvKgorCQkgKiBzZW5kIG1tYXAgb25seSBmb3IgdGhyZWFkIGdyb3VwIGxlYWRlcgorCQkgKiBzZWUgdGhyZWFkX19pbml0X21hcF9ncm91cHMKKwkJICovCisJCWlmIChwaWQgPT0gdGdpZCAmJgorCQkgICAgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9tbWFwX2V2ZW50cyh0b29sLCBtbWFwX2V2ZW50LCBwaWQsIHRnaWQsCisJCQkJCQkgICAgICAgcHJvY2VzcywgbWFjaGluZSwgbW1hcF9kYXRhKSkKKwkJCXJldHVybiAtMTsKKworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAobWFjaGluZV9faXNfZGVmYXVsdF9ndWVzdChtYWNoaW5lKSkKKwkJcmV0dXJuIDA7CisKKwlzbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIiVzL3Byb2MvJWQvdGFzayIsCisJCSBtYWNoaW5lLT5yb290X2RpciwgcGlkKTsKKworCXRhc2tzID0gb3BlbmRpcihmaWxlbmFtZSk7CisJaWYgKHRhc2tzID09IE5VTEwpIHsKKwkJcHJfZGVidWcoImNvdWxkbid0IG9wZW4gJXNcbiIsIGZpbGVuYW1lKTsKKwkJcmV0dXJuIDA7CisJfQorCisJd2hpbGUgKChkaXJlbnQgPSByZWFkZGlyKHRhc2tzKSkgIT0gTlVMTCkgeworCQljaGFyICplbmQ7CisJCXBpZF90IF9waWQ7CisKKwkJX3BpZCA9IHN0cnRvbChkaXJlbnQtPmRfbmFtZSwgJmVuZCwgMTApOworCQlpZiAoKmVuZCkKKwkJCWNvbnRpbnVlOworCisJCXJjID0gLTE7CisJCWlmIChwZXJmX2V2ZW50X19wcmVwYXJlX2NvbW0oY29tbV9ldmVudCwgX3BpZCwgbWFjaGluZSwKKwkJCQkJICAgICAmdGdpZCwgJnBwaWQpICE9IDApCisJCQlicmVhazsKKworCQlpZiAocGVyZl9ldmVudF9fc3ludGhlc2l6ZV9mb3JrKHRvb2wsIGZvcmtfZXZlbnQsIF9waWQsIHRnaWQsCisJCQkJCQlwcGlkLCBwcm9jZXNzLCBtYWNoaW5lKSA8IDApCisJCQlicmVhazsKKworCQlpZiAocGVyZl9ldmVudF9fc3ludGhlc2l6ZV9uYW1lc3BhY2VzKHRvb2wsIG5hbWVzcGFjZXNfZXZlbnQsIF9waWQsCisJCQkJCQkgICAgICB0Z2lkLCBwcm9jZXNzLCBtYWNoaW5lKSA8IDApCisJCQlicmVhazsKKworCQkvKgorCQkgKiBTZW5kIHRoZSBwcmVwYXJlZCBjb21tIGV2ZW50CisJCSAqLworCQlpZiAocGVyZl90b29sX19wcm9jZXNzX3N5bnRoX2V2ZW50KHRvb2wsIGNvbW1fZXZlbnQsIG1hY2hpbmUsIHByb2Nlc3MpICE9IDApCisJCQlicmVhazsKKworCQlyYyA9IDA7CisJCWlmIChfcGlkID09IHBpZCkgeworCQkJLyogcHJvY2VzcyB0aGUgcGFyZW50J3MgbWFwcyB0b28gKi8KKwkJCXJjID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9tbWFwX2V2ZW50cyh0b29sLCBtbWFwX2V2ZW50LCBwaWQsIHRnaWQsCisJCQkJCQlwcm9jZXNzLCBtYWNoaW5lLCBtbWFwX2RhdGEpOworCQkJaWYgKHJjKQorCQkJCWJyZWFrOworCQl9CisJfQorCisJY2xvc2VkaXIodGFza3MpOworCXJldHVybiByYzsKK30KKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkX21hcChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAorCQkJCSAgICAgIHN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHMsCisJCQkJICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJICAgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsCisJCQkJICAgICAgYm9vbCBtbWFwX2RhdGEpCit7CisJdW5pb24gcGVyZl9ldmVudCAqY29tbV9ldmVudCwgKm1tYXBfZXZlbnQsICpmb3JrX2V2ZW50OworCXVuaW9uIHBlcmZfZXZlbnQgKm5hbWVzcGFjZXNfZXZlbnQ7CisJaW50IGVyciA9IC0xLCB0aHJlYWQsIGo7CisKKwljb21tX2V2ZW50ID0gbWFsbG9jKHNpemVvZihjb21tX2V2ZW50LT5jb21tKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKKwlpZiAoY29tbV9ldmVudCA9PSBOVUxMKQorCQlnb3RvIG91dDsKKworCW1tYXBfZXZlbnQgPSBtYWxsb2Moc2l6ZW9mKG1tYXBfZXZlbnQtPm1tYXAyKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKKwlpZiAobW1hcF9ldmVudCA9PSBOVUxMKQorCQlnb3RvIG91dF9mcmVlX2NvbW07CisKKwlmb3JrX2V2ZW50ID0gbWFsbG9jKHNpemVvZihmb3JrX2V2ZW50LT5mb3JrKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKKwlpZiAoZm9ya19ldmVudCA9PSBOVUxMKQorCQlnb3RvIG91dF9mcmVlX21tYXA7CisKKwluYW1lc3BhY2VzX2V2ZW50ID0gbWFsbG9jKHNpemVvZihuYW1lc3BhY2VzX2V2ZW50LT5uYW1lc3BhY2VzKSArCisJCQkJICAoTlJfTkFNRVNQQUNFUyAqIHNpemVvZihzdHJ1Y3QgcGVyZl9uc19saW5rX2luZm8pKSArCisJCQkJICBtYWNoaW5lLT5pZF9oZHJfc2l6ZSk7CisJaWYgKG5hbWVzcGFjZXNfZXZlbnQgPT0gTlVMTCkKKwkJZ290byBvdXRfZnJlZV9mb3JrOworCisJZXJyID0gMDsKKwlmb3IgKHRocmVhZCA9IDA7IHRocmVhZCA8IHRocmVhZHMtPm5yOyArK3RocmVhZCkgeworCQlpZiAoX19ldmVudF9fc3ludGhlc2l6ZV90aHJlYWQoY29tbV9ldmVudCwgbW1hcF9ldmVudCwKKwkJCQkJICAgICAgIGZvcmtfZXZlbnQsIG5hbWVzcGFjZXNfZXZlbnQsCisJCQkJCSAgICAgICBwZXJmX3RocmVhZF9tYXBfX3BpZCh0aHJlYWRzLCB0aHJlYWQpLCAwLAorCQkJCQkgICAgICAgcHJvY2VzcywgdG9vbCwgbWFjaGluZSwKKwkJCQkJICAgICAgIG1tYXBfZGF0YSkpIHsKKwkJCWVyciA9IC0xOworCQkJYnJlYWs7CisJCX0KKworCQkvKgorCQkgKiBjb21tLnBpZCBpcyBzZXQgdG8gdGhyZWFkIGdyb3VwIGlkIGJ5CisJCSAqIHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfY29tbQorCQkgKi8KKwkJaWYgKChpbnQpIGNvbW1fZXZlbnQtPmNvbW0ucGlkICE9IHBlcmZfdGhyZWFkX21hcF9fcGlkKHRocmVhZHMsIHRocmVhZCkpIHsKKwkJCWJvb2wgbmVlZF9sZWFkZXIgPSB0cnVlOworCisJCQkvKiBpcyB0aHJlYWQgZ3JvdXAgbGVhZGVyIGluIHRocmVhZF9tYXA/ICovCisJCQlmb3IgKGogPSAwOyBqIDwgdGhyZWFkcy0+bnI7ICsraikgeworCQkJCWlmICgoaW50KSBjb21tX2V2ZW50LT5jb21tLnBpZCA9PSBwZXJmX3RocmVhZF9tYXBfX3BpZCh0aHJlYWRzLCBqKSkgeworCQkJCQluZWVkX2xlYWRlciA9IGZhbHNlOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisKKwkJCS8qIGlmIG5vdCwgZ2VuZXJhdGUgZXZlbnRzIGZvciBpdCAqLworCQkJaWYgKG5lZWRfbGVhZGVyICYmCisJCQkgICAgX19ldmVudF9fc3ludGhlc2l6ZV90aHJlYWQoY29tbV9ldmVudCwgbW1hcF9ldmVudCwKKwkJCQkJCSAgICAgICBmb3JrX2V2ZW50LCBuYW1lc3BhY2VzX2V2ZW50LAorCQkJCQkJICAgICAgIGNvbW1fZXZlbnQtPmNvbW0ucGlkLCAwLAorCQkJCQkJICAgICAgIHByb2Nlc3MsIHRvb2wsIG1hY2hpbmUsCisJCQkJCQkgICAgICAgbW1hcF9kYXRhKSkgeworCQkJCWVyciA9IC0xOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCWZyZWUobmFtZXNwYWNlc19ldmVudCk7CitvdXRfZnJlZV9mb3JrOgorCWZyZWUoZm9ya19ldmVudCk7CitvdXRfZnJlZV9tbWFwOgorCWZyZWUobW1hcF9ldmVudCk7CitvdXRfZnJlZV9jb21tOgorCWZyZWUoY29tbV9ldmVudCk7CitvdXQ6CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBfX3BlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkcyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAorCQkJCQkgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJCSAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSwKKwkJCQkJICAgIGJvb2wgbW1hcF9kYXRhLAorCQkJCQkgICAgc3RydWN0IGRpcmVudCAqKmRpcmVudCwKKwkJCQkJICAgIGludCBzdGFydCwKKwkJCQkJICAgIGludCBudW0pCit7CisJdW5pb24gcGVyZl9ldmVudCAqY29tbV9ldmVudCwgKm1tYXBfZXZlbnQsICpmb3JrX2V2ZW50OworCXVuaW9uIHBlcmZfZXZlbnQgKm5hbWVzcGFjZXNfZXZlbnQ7CisJaW50IGVyciA9IC0xOworCWNoYXIgKmVuZDsKKwlwaWRfdCBwaWQ7CisJaW50IGk7CisKKwljb21tX2V2ZW50ID0gbWFsbG9jKHNpemVvZihjb21tX2V2ZW50LT5jb21tKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKKwlpZiAoY29tbV9ldmVudCA9PSBOVUxMKQorCQlnb3RvIG91dDsKKworCW1tYXBfZXZlbnQgPSBtYWxsb2Moc2l6ZW9mKG1tYXBfZXZlbnQtPm1tYXAyKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKKwlpZiAobW1hcF9ldmVudCA9PSBOVUxMKQorCQlnb3RvIG91dF9mcmVlX2NvbW07CisKKwlmb3JrX2V2ZW50ID0gbWFsbG9jKHNpemVvZihmb3JrX2V2ZW50LT5mb3JrKSArIG1hY2hpbmUtPmlkX2hkcl9zaXplKTsKKwlpZiAoZm9ya19ldmVudCA9PSBOVUxMKQorCQlnb3RvIG91dF9mcmVlX21tYXA7CisKKwluYW1lc3BhY2VzX2V2ZW50ID0gbWFsbG9jKHNpemVvZihuYW1lc3BhY2VzX2V2ZW50LT5uYW1lc3BhY2VzKSArCisJCQkJICAoTlJfTkFNRVNQQUNFUyAqIHNpemVvZihzdHJ1Y3QgcGVyZl9uc19saW5rX2luZm8pKSArCisJCQkJICBtYWNoaW5lLT5pZF9oZHJfc2l6ZSk7CisJaWYgKG5hbWVzcGFjZXNfZXZlbnQgPT0gTlVMTCkKKwkJZ290byBvdXRfZnJlZV9mb3JrOworCisJZm9yIChpID0gc3RhcnQ7IGkgPCBzdGFydCArIG51bTsgaSsrKSB7CisJCWlmICghaXNkaWdpdChkaXJlbnRbaV0tPmRfbmFtZVswXSkpCisJCQljb250aW51ZTsKKworCQlwaWQgPSAocGlkX3Qpc3RydG9sKGRpcmVudFtpXS0+ZF9uYW1lLCAmZW5kLCAxMCk7CisJCS8qIG9ubHkgaW50ZXJlc3RlZCBpbiBwcm9wZXIgbnVtZXJpY2FsIGRpcmVudHMgKi8KKwkJaWYgKCplbmQpCisJCQljb250aW51ZTsKKwkJLyoKKwkJICogV2UgbWF5IHJhY2Ugd2l0aCBleGl0aW5nIHRocmVhZCwgc28gZG9uJ3Qgc3RvcCBqdXN0IGJlY2F1c2UKKwkJICogb25lIHRocmVhZCBjb3VsZG4ndCBiZSBzeW50aGVzaXplZC4KKwkJICovCisJCV9fZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkKGNvbW1fZXZlbnQsIG1tYXBfZXZlbnQsIGZvcmtfZXZlbnQsCisJCQkJCSAgIG5hbWVzcGFjZXNfZXZlbnQsIHBpZCwgMSwgcHJvY2VzcywKKwkJCQkJICAgdG9vbCwgbWFjaGluZSwgbW1hcF9kYXRhKTsKKwl9CisJZXJyID0gMDsKKworCWZyZWUobmFtZXNwYWNlc19ldmVudCk7CitvdXRfZnJlZV9mb3JrOgorCWZyZWUoZm9ya19ldmVudCk7CitvdXRfZnJlZV9tbWFwOgorCWZyZWUobW1hcF9ldmVudCk7CitvdXRfZnJlZV9jb21tOgorCWZyZWUoY29tbV9ldmVudCk7CitvdXQ6CisJcmV0dXJuIGVycjsKK30KKworc3RydWN0IHN5bnRoZXNpemVfdGhyZWFkc19hcmcgeworCXN0cnVjdCBwZXJmX3Rvb2wgKnRvb2w7CisJcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3M7CisJc3RydWN0IG1hY2hpbmUgKm1hY2hpbmU7CisJYm9vbCBtbWFwX2RhdGE7CisJc3RydWN0IGRpcmVudCAqKmRpcmVudDsKKwlpbnQgbnVtOworCWludCBzdGFydDsKK307CisKK3N0YXRpYyB2b2lkICpzeW50aGVzaXplX3RocmVhZHNfd29ya2VyKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qgc3ludGhlc2l6ZV90aHJlYWRzX2FyZyAqYXJncyA9IGFyZzsKKworCV9fcGVyZl9ldmVudF9fc3ludGhlc2l6ZV90aHJlYWRzKGFyZ3MtPnRvb2wsIGFyZ3MtPnByb2Nlc3MsCisJCQkJCSBhcmdzLT5tYWNoaW5lLCBhcmdzLT5tbWFwX2RhdGEsCisJCQkJCSBhcmdzLT5kaXJlbnQsCisJCQkJCSBhcmdzLT5zdGFydCwgYXJncy0+bnVtKTsKKwlyZXR1cm4gTlVMTDsKK30KKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkcyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLAorCQkJCSAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAorCQkJCSAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLAorCQkJCSAgIGJvb2wgbW1hcF9kYXRhLAorCQkJCSAgIHVuc2lnbmVkIGludCBucl90aHJlYWRzX3N5bnRoZXNpemUpCit7CisJc3RydWN0IHN5bnRoZXNpemVfdGhyZWFkc19hcmcgKmFyZ3MgPSBOVUxMOworCXB0aHJlYWRfdCAqc3ludGhlc2l6ZV90aHJlYWRzID0gTlVMTDsKKwljaGFyIHByb2NfcGF0aFtQQVRIX01BWF07CisJc3RydWN0IGRpcmVudCAqKmRpcmVudDsKKwlpbnQgbnVtX3Blcl90aHJlYWQ7CisJaW50IG0sIG4sIGksIGo7CisJaW50IHRocmVhZF9ucjsKKwlpbnQgYmFzZSA9IDA7CisJaW50IGVyciA9IC0xOworCisKKwlpZiAobWFjaGluZV9faXNfZGVmYXVsdF9ndWVzdChtYWNoaW5lKSkKKwkJcmV0dXJuIDA7CisKKwlzbnByaW50Zihwcm9jX3BhdGgsIHNpemVvZihwcm9jX3BhdGgpLCAiJXMvcHJvYyIsIG1hY2hpbmUtPnJvb3RfZGlyKTsKKwluID0gc2NhbmRpcihwcm9jX3BhdGgsICZkaXJlbnQsIDAsIGFscGhhc29ydCk7CisJaWYgKG4gPCAwKQorCQlyZXR1cm4gZXJyOworCisJaWYgKG5yX3RocmVhZHNfc3ludGhlc2l6ZSA9PSBVSU5UX01BWCkKKwkJdGhyZWFkX25yID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTik7CisJZWxzZQorCQl0aHJlYWRfbnIgPSBucl90aHJlYWRzX3N5bnRoZXNpemU7CisKKwlpZiAodGhyZWFkX25yIDw9IDEpIHsKKwkJZXJyID0gX19wZXJmX2V2ZW50X19zeW50aGVzaXplX3RocmVhZHModG9vbCwgcHJvY2VzcywKKwkJCQkJCSAgICAgICBtYWNoaW5lLCBtbWFwX2RhdGEsCisJCQkJCQkgICAgICAgZGlyZW50LCBiYXNlLCBuKTsKKwkJZ290byBmcmVlX2RpcmVudDsKKwl9CisJaWYgKHRocmVhZF9uciA+IG4pCisJCXRocmVhZF9uciA9IG47CisKKwlzeW50aGVzaXplX3RocmVhZHMgPSBjYWxsb2Moc2l6ZW9mKHB0aHJlYWRfdCksIHRocmVhZF9ucik7CisJaWYgKHN5bnRoZXNpemVfdGhyZWFkcyA9PSBOVUxMKQorCQlnb3RvIGZyZWVfZGlyZW50OworCisJYXJncyA9IGNhbGxvYyhzaXplb2YoKmFyZ3MpLCB0aHJlYWRfbnIpOworCWlmIChhcmdzID09IE5VTEwpCisJCWdvdG8gZnJlZV90aHJlYWRzOworCisJbnVtX3Blcl90aHJlYWQgPSBuIC8gdGhyZWFkX25yOworCW0gPSBuICUgdGhyZWFkX25yOworCWZvciAoaSA9IDA7IGkgPCB0aHJlYWRfbnI7IGkrKykgeworCQlhcmdzW2ldLnRvb2wgPSB0b29sOworCQlhcmdzW2ldLnByb2Nlc3MgPSBwcm9jZXNzOworCQlhcmdzW2ldLm1hY2hpbmUgPSBtYWNoaW5lOworCQlhcmdzW2ldLm1tYXBfZGF0YSA9IG1tYXBfZGF0YTsKKwkJYXJnc1tpXS5kaXJlbnQgPSBkaXJlbnQ7CisJfQorCWZvciAoaSA9IDA7IGkgPCBtOyBpKyspIHsKKwkJYXJnc1tpXS5udW0gPSBudW1fcGVyX3RocmVhZCArIDE7CisJCWFyZ3NbaV0uc3RhcnQgPSBpICogYXJnc1tpXS5udW07CisJfQorCWlmIChpICE9IDApCisJCWJhc2UgPSBhcmdzW2ktMV0uc3RhcnQgKyBhcmdzW2ktMV0ubnVtOworCWZvciAoaiA9IGk7IGogPCB0aHJlYWRfbnI7IGorKykgeworCQlhcmdzW2pdLm51bSA9IG51bV9wZXJfdGhyZWFkOworCQlhcmdzW2pdLnN0YXJ0ID0gYmFzZSArIChqIC0gaSkgKiBhcmdzW2ldLm51bTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgdGhyZWFkX25yOyBpKyspIHsKKwkJaWYgKHB0aHJlYWRfY3JlYXRlKCZzeW50aGVzaXplX3RocmVhZHNbaV0sIE5VTEwsCisJCQkJICAgc3ludGhlc2l6ZV90aHJlYWRzX3dvcmtlciwgJmFyZ3NbaV0pKQorCQkJZ290byBvdXRfam9pbjsKKwl9CisJZXJyID0gMDsKK291dF9qb2luOgorCWZvciAoaSA9IDA7IGkgPCB0aHJlYWRfbnI7IGkrKykKKwkJcHRocmVhZF9qb2luKHN5bnRoZXNpemVfdGhyZWFkc1tpXSwgTlVMTCk7CisJZnJlZShhcmdzKTsKK2ZyZWVfdGhyZWFkczoKKwlmcmVlKHN5bnRoZXNpemVfdGhyZWFkcyk7CitmcmVlX2RpcmVudDoKKwlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorCQl6ZnJlZSgmZGlyZW50W2ldKTsKKwlmcmVlKGRpcmVudCk7CisKKwlyZXR1cm4gZXJyOworfQorCitpbnQgX193ZWFrIHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXh0cmFfa21hcHMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCBfX21heWJlX3VudXNlZCwKKwkJCQkJICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MgX19tYXliZV91bnVzZWQsCisJCQkJCSAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lIF9fbWF5YmVfdW51c2VkKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9rZXJuZWxfbW1hcChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAorCQkJCQkJcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJCQlzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKK3sKKwlzaXplX3Qgc2l6ZTsKKwlzdHJ1Y3QgbWFwICptYXAgPSBtYWNoaW5lX19rZXJuZWxfbWFwKG1hY2hpbmUpOworCXN0cnVjdCBrbWFwICprbWFwOworCWludCBlcnI7CisJdW5pb24gcGVyZl9ldmVudCAqZXZlbnQ7CisKKwlpZiAobWFwID09IE5VTEwpCisJCXJldHVybiAtMTsKKworCWttYXAgPSBtYXBfX2ttYXAobWFwKTsKKwlpZiAoIWttYXAtPnJlZl9yZWxvY19zeW0pCisJCXJldHVybiAtMTsKKworCS8qCisJICogV2Ugc2hvdWxkIGdldCB0aGlzIGZyb20gL3N5cy9rZXJuZWwvc2VjdGlvbnMvLnRleHQsIGJ1dCB0aWxsIHRoYXQgaXMKKwkgKiBhdmFpbGFibGUgdXNlIHRoaXMsIGFuZCBhZnRlciBpdCBpcyB1c2UgdGhpcyBhcyBhIGZhbGxiYWNrIGZvciBvbGRlcgorCSAqIGtlcm5lbHMuCisJICovCisJZXZlbnQgPSB6YWxsb2MoKHNpemVvZihldmVudC0+bW1hcCkgKyBtYWNoaW5lLT5pZF9oZHJfc2l6ZSkpOworCWlmIChldmVudCA9PSBOVUxMKSB7CisJCXByX2RlYnVnKCJOb3QgZW5vdWdoIG1lbW9yeSBzeW50aGVzaXppbmcgbW1hcCBldmVudCAiCisJCQkgImZvciBrZXJuZWwgbW9kdWxlc1xuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAobWFjaGluZV9faXNfaG9zdChtYWNoaW5lKSkgeworCQkvKgorCQkgKiBrZXJuZWwgdXNlcyBQRVJGX1JFQ09SRF9NSVNDX1VTRVIgZm9yIHVzZXIgc3BhY2UgbWFwcywKKwkJICogc2VlIGtlcm5lbC9wZXJmX2V2ZW50LmMgX19wZXJmX2V2ZW50X21tYXAKKwkJICovCisJCWV2ZW50LT5oZWFkZXIubWlzYyA9IFBFUkZfUkVDT1JEX01JU0NfS0VSTkVMOworCX0gZWxzZSB7CisJCWV2ZW50LT5oZWFkZXIubWlzYyA9IFBFUkZfUkVDT1JEX01JU0NfR1VFU1RfS0VSTkVMOworCX0KKworCXNpemUgPSBzbnByaW50ZihldmVudC0+bW1hcC5maWxlbmFtZSwgc2l6ZW9mKGV2ZW50LT5tbWFwLmZpbGVuYW1lKSwKKwkJCSIlcyVzIiwgbWFjaGluZS0+bW1hcF9uYW1lLCBrbWFwLT5yZWZfcmVsb2Nfc3ltLT5uYW1lKSArIDE7CisJc2l6ZSA9IFBFUkZfQUxJR04oc2l6ZSwgc2l6ZW9mKHU2NCkpOworCWV2ZW50LT5tbWFwLmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfTU1BUDsKKwlldmVudC0+bW1hcC5oZWFkZXIuc2l6ZSA9IChzaXplb2YoZXZlbnQtPm1tYXApIC0KKwkJCShzaXplb2YoZXZlbnQtPm1tYXAuZmlsZW5hbWUpIC0gc2l6ZSkgKyBtYWNoaW5lLT5pZF9oZHJfc2l6ZSk7CisJZXZlbnQtPm1tYXAucGdvZmYgPSBrbWFwLT5yZWZfcmVsb2Nfc3ltLT5hZGRyOworCWV2ZW50LT5tbWFwLnN0YXJ0ID0gbWFwLT5zdGFydDsKKwlldmVudC0+bW1hcC5sZW4gICA9IG1hcC0+ZW5kIC0gZXZlbnQtPm1tYXAuc3RhcnQ7CisJZXZlbnQtPm1tYXAucGlkICAgPSBtYWNoaW5lLT5waWQ7CisKKwllcnIgPSBwZXJmX3Rvb2xfX3Byb2Nlc3Nfc3ludGhfZXZlbnQodG9vbCwgZXZlbnQsIG1hY2hpbmUsIHByb2Nlc3MpOworCWZyZWUoZXZlbnQpOworCisJcmV0dXJuIGVycjsKK30KKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfa2VybmVsX21tYXAoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKKwkJCQkgICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJICAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKQoreworCWludCBlcnI7CisKKwllcnIgPSBfX3BlcmZfZXZlbnRfX3N5bnRoZXNpemVfa2VybmVsX21tYXAodG9vbCwgcHJvY2VzcywgbWFjaGluZSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9leHRyYV9rbWFwcyh0b29sLCBwcm9jZXNzLCBtYWNoaW5lKTsKK30KKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkX21hcDIoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKKwkJCQkgICAgICBzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzLAorCQkJCSAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAorCQkJCSAgICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKQoreworCXVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50OworCWludCBpLCBlcnIsIHNpemU7CisKKwlzaXplICA9IHNpemVvZihldmVudC0+dGhyZWFkX21hcCk7CisJc2l6ZSArPQl0aHJlYWRzLT5uciAqIHNpemVvZihldmVudC0+dGhyZWFkX21hcC5lbnRyaWVzWzBdKTsKKworCWV2ZW50ID0gemFsbG9jKHNpemUpOworCWlmICghZXZlbnQpCisJCXJldHVybiAtRU5PTUVNOworCisJZXZlbnQtPmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfVEhSRUFEX01BUDsKKwlldmVudC0+aGVhZGVyLnNpemUgPSBzaXplOworCWV2ZW50LT50aHJlYWRfbWFwLm5yID0gdGhyZWFkcy0+bnI7CisKKwlmb3IgKGkgPSAwOyBpIDwgdGhyZWFkcy0+bnI7IGkrKykgeworCQlzdHJ1Y3QgcGVyZl9yZWNvcmRfdGhyZWFkX21hcF9lbnRyeSAqZW50cnkgPSAmZXZlbnQtPnRocmVhZF9tYXAuZW50cmllc1tpXTsKKwkJY2hhciAqY29tbSA9IHBlcmZfdGhyZWFkX21hcF9fY29tbSh0aHJlYWRzLCBpKTsKKworCQlpZiAoIWNvbW0pCisJCQljb21tID0gKGNoYXIgKikgIiI7CisKKwkJZW50cnktPnBpZCA9IHBlcmZfdGhyZWFkX21hcF9fcGlkKHRocmVhZHMsIGkpOworCQlzdHJuY3B5KChjaGFyICopICZlbnRyeS0+Y29tbSwgY29tbSwgc2l6ZW9mKGVudHJ5LT5jb21tKSk7CisJfQorCisJZXJyID0gcHJvY2Vzcyh0b29sLCBldmVudCwgTlVMTCwgbWFjaGluZSk7CisKKwlmcmVlKGV2ZW50KTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgdm9pZCBzeW50aGVzaXplX2NwdXMoc3RydWN0IGNwdV9tYXBfZW50cmllcyAqY3B1cywKKwkJCSAgICBzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXApCit7CisJaW50IGk7CisKKwljcHVzLT5uciA9IG1hcC0+bnI7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWFwLT5ucjsgaSsrKQorCQljcHVzLT5jcHVbaV0gPSBtYXAtPm1hcFtpXTsKK30KKworc3RhdGljIHZvaWQgc3ludGhlc2l6ZV9tYXNrKHN0cnVjdCBwZXJmX3JlY29yZF9yZWNvcmRfY3B1X21hcCAqbWFzaywKKwkJCSAgICBzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXAsIGludCBtYXgpCit7CisJaW50IGk7CisKKwltYXNrLT5uciA9IEJJVFNfVE9fTE9OR1MobWF4KTsKKwltYXNrLT5sb25nX3NpemUgPSBzaXplb2YobG9uZyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWFwLT5ucjsgaSsrKQorCQlzZXRfYml0KG1hcC0+bWFwW2ldLCBtYXNrLT5tYXNrKTsKK30KKworc3RhdGljIHNpemVfdCBjcHVzX3NpemUoc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwKQoreworCXJldHVybiBzaXplb2Yoc3RydWN0IGNwdV9tYXBfZW50cmllcykgKyBtYXAtPm5yICogc2l6ZW9mKHUxNik7Cit9CisKK3N0YXRpYyBzaXplX3QgbWFza19zaXplKHN0cnVjdCBwZXJmX2NwdV9tYXAgKm1hcCwgaW50ICptYXgpCit7CisJaW50IGk7CisKKwkqbWF4ID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBtYXAtPm5yOyBpKyspIHsKKwkJLyogYml0IHBvc3NpdGlvbiBvZiB0aGUgY3B1IGlzICsgMSAqLworCQlpbnQgYml0ID0gbWFwLT5tYXBbaV0gKyAxOworCisJCWlmIChiaXQgPiAqbWF4KQorCQkJKm1heCA9IGJpdDsKKwl9CisKKwlyZXR1cm4gc2l6ZW9mKHN0cnVjdCBwZXJmX3JlY29yZF9yZWNvcmRfY3B1X21hcCkgKyBCSVRTX1RPX0xPTkdTKCptYXgpICogc2l6ZW9mKGxvbmcpOworfQorCit2b2lkICpjcHVfbWFwX2RhdGFfX2FsbG9jKHN0cnVjdCBwZXJmX2NwdV9tYXAgKm1hcCwgc2l6ZV90ICpzaXplLCB1MTYgKnR5cGUsIGludCAqbWF4KQoreworCXNpemVfdCBzaXplX2NwdXMsIHNpemVfbWFzazsKKwlib29sIGlzX2R1bW15ID0gcGVyZl9jcHVfbWFwX19lbXB0eShtYXApOworCisJLyoKKwkgKiBCb3RoIGFycmF5IGFuZCBtYXNrIGRhdGEgaGF2ZSB2YXJpYWJsZSBzaXplIGJhc2VkCisJICogb24gdGhlIG51bWJlciBvZiBjcHVzIGFuZCB0aGVpciBhY3R1YWwgdmFsdWVzLgorCSAqIFRoZSBzaXplIG9mIHRoZSAnc3RydWN0IHBlcmZfcmVjb3JkX2NwdV9tYXBfZGF0YScgaXM6CisJICoKKwkgKiAgIGFycmF5ID0gc2l6ZSBvZiAnc3RydWN0IGNwdV9tYXBfZW50cmllcycgKworCSAqICAgICAgICAgICBudW1iZXIgb2YgY3B1cyAqIHNpemVvZih1NjQpCisJICoKKwkgKiAgIG1hc2sgID0gc2l6ZSBvZiAnc3RydWN0IHBlcmZfcmVjb3JkX3JlY29yZF9jcHVfbWFwJyArCisJICogICAgICAgICAgIG1heGltdW0gY3B1IGJpdCBjb252ZXJ0ZWQgdG8gc2l6ZSBvZiBsb25ncworCSAqCisJICogYW5kIGZpbmFseSArIHRoZSBzaXplIG9mICdzdHJ1Y3QgcGVyZl9yZWNvcmRfY3B1X21hcF9kYXRhJy4KKwkgKi8KKwlzaXplX2NwdXMgPSBjcHVzX3NpemUobWFwKTsKKwlzaXplX21hc2sgPSBtYXNrX3NpemUobWFwLCBtYXgpOworCisJaWYgKGlzX2R1bW15IHx8IChzaXplX2NwdXMgPCBzaXplX21hc2spKSB7CisJCSpzaXplICs9IHNpemVfY3B1czsKKwkJKnR5cGUgID0gUEVSRl9DUFVfTUFQX19DUFVTOworCX0gZWxzZSB7CisJCSpzaXplICs9IHNpemVfbWFzazsKKwkJKnR5cGUgID0gUEVSRl9DUFVfTUFQX19NQVNLOworCX0KKworCSpzaXplICs9IHNpemVvZihzdHJ1Y3QgcGVyZl9yZWNvcmRfY3B1X21hcF9kYXRhKTsKKwkqc2l6ZSA9IFBFUkZfQUxJR04oKnNpemUsIHNpemVvZih1NjQpKTsKKwlyZXR1cm4gemFsbG9jKCpzaXplKTsKK30KKwordm9pZCBjcHVfbWFwX2RhdGFfX3N5bnRoZXNpemUoc3RydWN0IHBlcmZfcmVjb3JkX2NwdV9tYXBfZGF0YSAqZGF0YSwgc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwLAorCQkJICAgICAgdTE2IHR5cGUsIGludCBtYXgpCit7CisJZGF0YS0+dHlwZSA9IHR5cGU7CisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIFBFUkZfQ1BVX01BUF9fQ1BVUzoKKwkJc3ludGhlc2l6ZV9jcHVzKChzdHJ1Y3QgY3B1X21hcF9lbnRyaWVzICopIGRhdGEtPmRhdGEsIG1hcCk7CisJCWJyZWFrOworCWNhc2UgUEVSRl9DUFVfTUFQX19NQVNLOgorCQlzeW50aGVzaXplX21hc2soKHN0cnVjdCBwZXJmX3JlY29yZF9yZWNvcmRfY3B1X21hcCAqKWRhdGEtPmRhdGEsIG1hcCwgbWF4KTsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9OworfQorCitzdGF0aWMgc3RydWN0IHBlcmZfcmVjb3JkX2NwdV9tYXAgKmNwdV9tYXBfZXZlbnRfX25ldyhzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXApCit7CisJc2l6ZV90IHNpemUgPSBzaXplb2Yoc3RydWN0IHBlcmZfcmVjb3JkX2NwdV9tYXApOworCXN0cnVjdCBwZXJmX3JlY29yZF9jcHVfbWFwICpldmVudDsKKwlpbnQgbWF4OworCXUxNiB0eXBlOworCisJZXZlbnQgPSBjcHVfbWFwX2RhdGFfX2FsbG9jKG1hcCwgJnNpemUsICZ0eXBlLCAmbWF4KTsKKwlpZiAoIWV2ZW50KQorCQlyZXR1cm4gTlVMTDsKKworCWV2ZW50LT5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX0NQVV9NQVA7CisJZXZlbnQtPmhlYWRlci5zaXplID0gc2l6ZTsKKwlldmVudC0+ZGF0YS50eXBlICAgPSB0eXBlOworCisJY3B1X21hcF9kYXRhX19zeW50aGVzaXplKCZldmVudC0+ZGF0YSwgbWFwLCB0eXBlLCBtYXgpOworCXJldHVybiBldmVudDsKK30KKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfY3B1X21hcChzdHJ1Y3QgcGVyZl90b29sICp0b29sLAorCQkJCSAgIHN0cnVjdCBwZXJmX2NwdV9tYXAgKm1hcCwKKwkJCQkgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKKwkJCQkgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKK3sKKwlzdHJ1Y3QgcGVyZl9yZWNvcmRfY3B1X21hcCAqZXZlbnQ7CisJaW50IGVycjsKKworCWV2ZW50ID0gY3B1X21hcF9ldmVudF9fbmV3KG1hcCk7CisJaWYgKCFldmVudCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwllcnIgPSBwcm9jZXNzKHRvb2wsICh1bmlvbiBwZXJmX2V2ZW50ICopIGV2ZW50LCBOVUxMLCBtYWNoaW5lKTsKKworCWZyZWUoZXZlbnQpOworCXJldHVybiBlcnI7Cit9CisKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX3N0YXRfY29uZmlnKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCisJCQkJICAgICAgIHN0cnVjdCBwZXJmX3N0YXRfY29uZmlnICpjb25maWcsCisJCQkJICAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLAorCQkJCSAgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKK3sKKwlzdHJ1Y3QgcGVyZl9yZWNvcmRfc3RhdF9jb25maWcgKmV2ZW50OworCWludCBzaXplLCBpID0gMCwgZXJyOworCisJc2l6ZSAgPSBzaXplb2YoKmV2ZW50KTsKKwlzaXplICs9IChQRVJGX1NUQVRfQ09ORklHX1RFUk1fX01BWCAqIHNpemVvZihldmVudC0+ZGF0YVswXSkpOworCisJZXZlbnQgPSB6YWxsb2Moc2l6ZSk7CisJaWYgKCFldmVudCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlldmVudC0+aGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9TVEFUX0NPTkZJRzsKKwlldmVudC0+aGVhZGVyLnNpemUgPSBzaXplOworCWV2ZW50LT5uciAgICAgICAgICA9IFBFUkZfU1RBVF9DT05GSUdfVEVSTV9fTUFYOworCisjZGVmaW5lIEFERChfX3Rlcm0sIF9fdmFsKQkJCQkJXAorCWV2ZW50LT5kYXRhW2ldLnRhZyA9IFBFUkZfU1RBVF9DT05GSUdfVEVSTV9fIyNfX3Rlcm07CVwKKwlldmVudC0+ZGF0YVtpXS52YWwgPSBfX3ZhbDsJCQkJXAorCWkrKzsKKworCUFERChBR0dSX01PREUsCWNvbmZpZy0+YWdncl9tb2RlKQorCUFERChJTlRFUlZBTCwJY29uZmlnLT5pbnRlcnZhbCkKKwlBREQoU0NBTEUsCWNvbmZpZy0+c2NhbGUpCisKKwlXQVJOX09OQ0UoaSAhPSBQRVJGX1NUQVRfQ09ORklHX1RFUk1fX01BWCwKKwkJICAic3RhdCBjb25maWcgdGVybXMgdW5iYWxhbmNlZFxuIik7CisjdW5kZWYgQURECisKKwllcnIgPSBwcm9jZXNzKHRvb2wsICh1bmlvbiBwZXJmX2V2ZW50ICopIGV2ZW50LCBOVUxMLCBtYWNoaW5lKTsKKworCWZyZWUoZXZlbnQpOworCXJldHVybiBlcnI7Cit9CisKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX3N0YXQoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwKKwkJCQl1MzIgY3B1LCB1MzIgdGhyZWFkLCB1NjQgaWQsCisJCQkJc3RydWN0IHBlcmZfY291bnRzX3ZhbHVlcyAqY291bnQsCisJCQkJcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpCit7CisJc3RydWN0IHBlcmZfcmVjb3JkX3N0YXQgZXZlbnQ7CisKKwlldmVudC5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX1NUQVQ7CisJZXZlbnQuaGVhZGVyLnNpemUgPSBzaXplb2YoZXZlbnQpOworCWV2ZW50LmhlYWRlci5taXNjID0gMDsKKworCWV2ZW50LmlkICAgICAgICA9IGlkOworCWV2ZW50LmNwdSAgICAgICA9IGNwdTsKKwlldmVudC50aHJlYWQgICAgPSB0aHJlYWQ7CisJZXZlbnQudmFsICAgICAgID0gY291bnQtPnZhbDsKKwlldmVudC5lbmEgICAgICAgPSBjb3VudC0+ZW5hOworCWV2ZW50LnJ1biAgICAgICA9IGNvdW50LT5ydW47CisKKwlyZXR1cm4gcHJvY2Vzcyh0b29sLCAodW5pb24gcGVyZl9ldmVudCAqKSAmZXZlbnQsIE5VTEwsIG1hY2hpbmUpOworfQorCitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9zdGF0X3JvdW5kKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCisJCQkJICAgICAgdTY0IGV2dGltZSwgdTY0IHR5cGUsCisJCQkJICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCisJCQkJICAgICAgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpCit7CisJc3RydWN0IHBlcmZfcmVjb3JkX3N0YXRfcm91bmQgZXZlbnQ7CisKKwlldmVudC5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX1NUQVRfUk9VTkQ7CisJZXZlbnQuaGVhZGVyLnNpemUgPSBzaXplb2YoZXZlbnQpOworCWV2ZW50LmhlYWRlci5taXNjID0gMDsKKworCWV2ZW50LnRpbWUgPSBldnRpbWU7CisJZXZlbnQudHlwZSA9IHR5cGU7CisKKwlyZXR1cm4gcHJvY2Vzcyh0b29sLCAodW5pb24gcGVyZl9ldmVudCAqKSAmZXZlbnQsIE5VTEwsIG1hY2hpbmUpOworfQorCitzaXplX3QgcGVyZl9ldmVudF9fc2FtcGxlX2V2ZW50X3NpemUoY29uc3Qgc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsIHU2NCB0eXBlLCB1NjQgcmVhZF9mb3JtYXQpCit7CisJc2l6ZV90IHN6LCByZXN1bHQgPSBzaXplb2Yoc3RydWN0IHBlcmZfcmVjb3JkX3NhbXBsZSk7CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0lERU5USUZJRVIpCisJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfSVApCisJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfVElEKQorCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1RJTUUpCisJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfQUREUikKKwkJcmVzdWx0ICs9IHNpemVvZih1NjQpOworCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9JRCkKKwkJcmVzdWx0ICs9IHNpemVvZih1NjQpOworCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9TVFJFQU1fSUQpCisJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfQ1BVKQorCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1BFUklPRCkKKwkJcmVzdWx0ICs9IHNpemVvZih1NjQpOworCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9SRUFEKSB7CisJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKKwkJaWYgKHJlYWRfZm9ybWF0ICYgUEVSRl9GT1JNQVRfVE9UQUxfVElNRV9FTkFCTEVEKQorCQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOworCQlpZiAocmVhZF9mb3JtYXQgJiBQRVJGX0ZPUk1BVF9UT1RBTF9USU1FX1JVTk5JTkcpCisJCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7CisJCS8qIFBFUkZfRk9STUFUX0lEIGlzIGZvcmNlZCBmb3IgUEVSRl9TQU1QTEVfUkVBRCAqLworCQlpZiAocmVhZF9mb3JtYXQgJiBQRVJGX0ZPUk1BVF9HUk9VUCkgeworCQkJc3ogPSBzYW1wbGUtPnJlYWQuZ3JvdXAubnIgKgorCQkJICAgICBzaXplb2Yoc3RydWN0IHNhbXBsZV9yZWFkX3ZhbHVlKTsKKwkJCXJlc3VsdCArPSBzejsKKwkJfSBlbHNlIHsKKwkJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKKwkJfQorCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfQ0FMTENIQUlOKSB7CisJCXN6ID0gKHNhbXBsZS0+Y2FsbGNoYWluLT5uciArIDEpICogc2l6ZW9mKHU2NCk7CisJCXJlc3VsdCArPSBzejsKKwl9CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1JBVykgeworCQlyZXN1bHQgKz0gc2l6ZW9mKHUzMik7CisJCXJlc3VsdCArPSBzYW1wbGUtPnJhd19zaXplOworCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfQlJBTkNIX1NUQUNLKSB7CisJCXN6ID0gc2FtcGxlLT5icmFuY2hfc3RhY2stPm5yICogc2l6ZW9mKHN0cnVjdCBicmFuY2hfZW50cnkpOworCQlzeiArPSBzaXplb2YodTY0KTsKKwkJcmVzdWx0ICs9IHN6OworCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfUkVHU19VU0VSKSB7CisJCWlmIChzYW1wbGUtPnVzZXJfcmVncy5hYmkpIHsKKwkJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKKwkJCXN6ID0gaHdlaWdodDY0KHNhbXBsZS0+dXNlcl9yZWdzLm1hc2spICogc2l6ZW9mKHU2NCk7CisJCQlyZXN1bHQgKz0gc3o7CisJCX0gZWxzZSB7CisJCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7CisJCX0KKwl9CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1NUQUNLX1VTRVIpIHsKKwkJc3ogPSBzYW1wbGUtPnVzZXJfc3RhY2suc2l6ZTsKKwkJcmVzdWx0ICs9IHNpemVvZih1NjQpOworCQlpZiAoc3opIHsKKwkJCXJlc3VsdCArPSBzejsKKwkJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKKwkJfQorCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfV0VJR0hUKQorCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0RBVEFfU1JDKQorCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1RSQU5TQUNUSU9OKQorCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1JFR1NfSU5UUikgeworCQlpZiAoc2FtcGxlLT5pbnRyX3JlZ3MuYWJpKSB7CisJCQlyZXN1bHQgKz0gc2l6ZW9mKHU2NCk7CisJCQlzeiA9IGh3ZWlnaHQ2NChzYW1wbGUtPmludHJfcmVncy5tYXNrKSAqIHNpemVvZih1NjQpOworCQkJcmVzdWx0ICs9IHN6OworCQl9IGVsc2UgeworCQkJcmVzdWx0ICs9IHNpemVvZih1NjQpOworCQl9CisJfQorCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9QSFlTX0FERFIpCisJCXJlc3VsdCArPSBzaXplb2YodTY0KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX3NhbXBsZSh1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgdTY0IHR5cGUsIHU2NCByZWFkX2Zvcm1hdCwKKwkJCQkgIGNvbnN0IHN0cnVjdCBwZXJmX3NhbXBsZSAqc2FtcGxlKQoreworCV9fdTY0ICphcnJheTsKKwlzaXplX3Qgc3o7CisJLyoKKwkgKiB1c2VkIGZvciBjcm9zcy1lbmRpYW4gYW5hbHlzaXMuIFNlZSBnaXQgY29tbWl0IDY1MDE0YWIzCisJICogZm9yIHdoeSB0aGlzIGdvb2ZpbmVzcyBpcyBuZWVkZWQuCisJICovCisJdW5pb24gdTY0X3N3YXAgdTsKKworCWFycmF5ID0gZXZlbnQtPnNhbXBsZS5hcnJheTsKKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfSURFTlRJRklFUikgeworCQkqYXJyYXkgPSBzYW1wbGUtPmlkOworCQlhcnJheSsrOworCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfSVApIHsKKwkJKmFycmF5ID0gc2FtcGxlLT5pcDsKKwkJYXJyYXkrKzsKKwl9CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1RJRCkgeworCQl1LnZhbDMyWzBdID0gc2FtcGxlLT5waWQ7CisJCXUudmFsMzJbMV0gPSBzYW1wbGUtPnRpZDsKKwkJKmFycmF5ID0gdS52YWw2NDsKKwkJYXJyYXkrKzsKKwl9CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1RJTUUpIHsKKwkJKmFycmF5ID0gc2FtcGxlLT50aW1lOworCQlhcnJheSsrOworCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfQUREUikgeworCQkqYXJyYXkgPSBzYW1wbGUtPmFkZHI7CisJCWFycmF5Kys7CisJfQorCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9JRCkgeworCQkqYXJyYXkgPSBzYW1wbGUtPmlkOworCQlhcnJheSsrOworCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfU1RSRUFNX0lEKSB7CisJCSphcnJheSA9IHNhbXBsZS0+c3RyZWFtX2lkOworCQlhcnJheSsrOworCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfQ1BVKSB7CisJCXUudmFsMzJbMF0gPSBzYW1wbGUtPmNwdTsKKwkJdS52YWwzMlsxXSA9IDA7CisJCSphcnJheSA9IHUudmFsNjQ7CisJCWFycmF5Kys7CisJfQorCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9QRVJJT0QpIHsKKwkJKmFycmF5ID0gc2FtcGxlLT5wZXJpb2Q7CisJCWFycmF5Kys7CisJfQorCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9SRUFEKSB7CisJCWlmIChyZWFkX2Zvcm1hdCAmIFBFUkZfRk9STUFUX0dST1VQKQorCQkJKmFycmF5ID0gc2FtcGxlLT5yZWFkLmdyb3VwLm5yOworCQllbHNlCisJCQkqYXJyYXkgPSBzYW1wbGUtPnJlYWQub25lLnZhbHVlOworCQlhcnJheSsrOworCisJCWlmIChyZWFkX2Zvcm1hdCAmIFBFUkZfRk9STUFUX1RPVEFMX1RJTUVfRU5BQkxFRCkgeworCQkJKmFycmF5ID0gc2FtcGxlLT5yZWFkLnRpbWVfZW5hYmxlZDsKKwkJCWFycmF5Kys7CisJCX0KKworCQlpZiAocmVhZF9mb3JtYXQgJiBQRVJGX0ZPUk1BVF9UT1RBTF9USU1FX1JVTk5JTkcpIHsKKwkJCSphcnJheSA9IHNhbXBsZS0+cmVhZC50aW1lX3J1bm5pbmc7CisJCQlhcnJheSsrOworCQl9CisKKwkJLyogUEVSRl9GT1JNQVRfSUQgaXMgZm9yY2VkIGZvciBQRVJGX1NBTVBMRV9SRUFEICovCisJCWlmIChyZWFkX2Zvcm1hdCAmIFBFUkZfRk9STUFUX0dST1VQKSB7CisJCQlzeiA9IHNhbXBsZS0+cmVhZC5ncm91cC5uciAqCisJCQkgICAgIHNpemVvZihzdHJ1Y3Qgc2FtcGxlX3JlYWRfdmFsdWUpOworCQkJbWVtY3B5KGFycmF5LCBzYW1wbGUtPnJlYWQuZ3JvdXAudmFsdWVzLCBzeik7CisJCQlhcnJheSA9ICh2b2lkICopYXJyYXkgKyBzejsKKwkJfSBlbHNlIHsKKwkJCSphcnJheSA9IHNhbXBsZS0+cmVhZC5vbmUuaWQ7CisJCQlhcnJheSsrOworCQl9CisJfQorCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9DQUxMQ0hBSU4pIHsKKwkJc3ogPSAoc2FtcGxlLT5jYWxsY2hhaW4tPm5yICsgMSkgKiBzaXplb2YodTY0KTsKKwkJbWVtY3B5KGFycmF5LCBzYW1wbGUtPmNhbGxjaGFpbiwgc3opOworCQlhcnJheSA9ICh2b2lkICopYXJyYXkgKyBzejsKKwl9CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1JBVykgeworCQl1LnZhbDMyWzBdID0gc2FtcGxlLT5yYXdfc2l6ZTsKKwkJKmFycmF5ID0gdS52YWw2NDsKKwkJYXJyYXkgPSAodm9pZCAqKWFycmF5ICsgc2l6ZW9mKHUzMik7CisKKwkJbWVtY3B5KGFycmF5LCBzYW1wbGUtPnJhd19kYXRhLCBzYW1wbGUtPnJhd19zaXplKTsKKwkJYXJyYXkgPSAodm9pZCAqKWFycmF5ICsgc2FtcGxlLT5yYXdfc2l6ZTsKKwl9CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX0JSQU5DSF9TVEFDSykgeworCQlzeiA9IHNhbXBsZS0+YnJhbmNoX3N0YWNrLT5uciAqIHNpemVvZihzdHJ1Y3QgYnJhbmNoX2VudHJ5KTsKKwkJc3ogKz0gc2l6ZW9mKHU2NCk7CisJCW1lbWNweShhcnJheSwgc2FtcGxlLT5icmFuY2hfc3RhY2ssIHN6KTsKKwkJYXJyYXkgPSAodm9pZCAqKWFycmF5ICsgc3o7CisJfQorCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9SRUdTX1VTRVIpIHsKKwkJaWYgKHNhbXBsZS0+dXNlcl9yZWdzLmFiaSkgeworCQkJKmFycmF5KysgPSBzYW1wbGUtPnVzZXJfcmVncy5hYmk7CisJCQlzeiA9IGh3ZWlnaHQ2NChzYW1wbGUtPnVzZXJfcmVncy5tYXNrKSAqIHNpemVvZih1NjQpOworCQkJbWVtY3B5KGFycmF5LCBzYW1wbGUtPnVzZXJfcmVncy5yZWdzLCBzeik7CisJCQlhcnJheSA9ICh2b2lkICopYXJyYXkgKyBzejsKKwkJfSBlbHNlIHsKKwkJCSphcnJheSsrID0gMDsKKwkJfQorCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfU1RBQ0tfVVNFUikgeworCQlzeiA9IHNhbXBsZS0+dXNlcl9zdGFjay5zaXplOworCQkqYXJyYXkrKyA9IHN6OworCQlpZiAoc3opIHsKKwkJCW1lbWNweShhcnJheSwgc2FtcGxlLT51c2VyX3N0YWNrLmRhdGEsIHN6KTsKKwkJCWFycmF5ID0gKHZvaWQgKilhcnJheSArIHN6OworCQkJKmFycmF5KysgPSBzejsKKwkJfQorCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfV0VJR0hUKSB7CisJCSphcnJheSA9IHNhbXBsZS0+d2VpZ2h0OworCQlhcnJheSsrOworCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfREFUQV9TUkMpIHsKKwkJKmFycmF5ID0gc2FtcGxlLT5kYXRhX3NyYzsKKwkJYXJyYXkrKzsKKwl9CisKKwlpZiAodHlwZSAmIFBFUkZfU0FNUExFX1RSQU5TQUNUSU9OKSB7CisJCSphcnJheSA9IHNhbXBsZS0+dHJhbnNhY3Rpb247CisJCWFycmF5Kys7CisJfQorCisJaWYgKHR5cGUgJiBQRVJGX1NBTVBMRV9SRUdTX0lOVFIpIHsKKwkJaWYgKHNhbXBsZS0+aW50cl9yZWdzLmFiaSkgeworCQkJKmFycmF5KysgPSBzYW1wbGUtPmludHJfcmVncy5hYmk7CisJCQlzeiA9IGh3ZWlnaHQ2NChzYW1wbGUtPmludHJfcmVncy5tYXNrKSAqIHNpemVvZih1NjQpOworCQkJbWVtY3B5KGFycmF5LCBzYW1wbGUtPmludHJfcmVncy5yZWdzLCBzeik7CisJCQlhcnJheSA9ICh2b2lkICopYXJyYXkgKyBzejsKKwkJfSBlbHNlIHsKKwkJCSphcnJheSsrID0gMDsKKwkJfQorCX0KKworCWlmICh0eXBlICYgUEVSRl9TQU1QTEVfUEhZU19BRERSKSB7CisJCSphcnJheSA9IHNhbXBsZS0+cGh5c19hZGRyOworCQlhcnJheSsrOworCX0KKworCXJldHVybiAwOworfQorCitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9pZF9pbmRleChzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKKwkJCQkgICAgc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSkKK3sKKwl1bmlvbiBwZXJmX2V2ZW50ICpldjsKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsOworCXNpemVfdCBuciA9IDAsIGkgPSAwLCBzeiwgbWF4X25yLCBuOworCWludCBlcnI7CisKKwlwcl9kZWJ1ZzIoIlN5bnRoZXNpemluZyBpZCBpbmRleFxuIik7CisKKwltYXhfbnIgPSAoVUlOVDE2X01BWCAtIHNpemVvZihzdHJ1Y3QgcGVyZl9yZWNvcmRfaWRfaW5kZXgpKSAvCisJCSBzaXplb2Yoc3RydWN0IGlkX2luZGV4X2VudHJ5KTsKKworCWV2bGlzdF9fZm9yX2VhY2hfZW50cnkoZXZsaXN0LCBldnNlbCkKKwkJbnIgKz0gZXZzZWwtPmNvcmUuaWRzOworCisJbiA9IG5yID4gbWF4X25yID8gbWF4X25yIDogbnI7CisJc3ogPSBzaXplb2Yoc3RydWN0IHBlcmZfcmVjb3JkX2lkX2luZGV4KSArIG4gKiBzaXplb2Yoc3RydWN0IGlkX2luZGV4X2VudHJ5KTsKKwlldiA9IHphbGxvYyhzeik7CisJaWYgKCFldikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlldi0+aWRfaW5kZXguaGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9JRF9JTkRFWDsKKwlldi0+aWRfaW5kZXguaGVhZGVyLnNpemUgPSBzejsKKwlldi0+aWRfaW5kZXgubnIgPSBuOworCisJZXZsaXN0X19mb3JfZWFjaF9lbnRyeShldmxpc3QsIGV2c2VsKSB7CisJCXUzMiBqOworCisJCWZvciAoaiA9IDA7IGogPCBldnNlbC0+Y29yZS5pZHM7IGorKykgeworCQkJc3RydWN0IGlkX2luZGV4X2VudHJ5ICplOworCQkJc3RydWN0IHBlcmZfc2FtcGxlX2lkICpzaWQ7CisKKwkJCWlmIChpID49IG4pIHsKKwkJCQllcnIgPSBwcm9jZXNzKHRvb2wsIGV2LCBOVUxMLCBtYWNoaW5lKTsKKwkJCQlpZiAoZXJyKQorCQkJCQlnb3RvIG91dF9lcnI7CisJCQkJbnIgLT0gbjsKKwkJCQlpID0gMDsKKwkJCX0KKworCQkJZSA9ICZldi0+aWRfaW5kZXguZW50cmllc1tpKytdOworCisJCQllLT5pZCA9IGV2c2VsLT5jb3JlLmlkW2pdOworCisJCQlzaWQgPSBwZXJmX2V2bGlzdF9faWQyc2lkKGV2bGlzdCwgZS0+aWQpOworCQkJaWYgKCFzaWQpIHsKKwkJCQlmcmVlKGV2KTsKKwkJCQlyZXR1cm4gLUVOT0VOVDsKKwkJCX0KKworCQkJZS0+aWR4ID0gc2lkLT5pZHg7CisJCQllLT5jcHUgPSBzaWQtPmNwdTsKKwkJCWUtPnRpZCA9IHNpZC0+dGlkOworCQl9CisJfQorCisJc3ogPSBzaXplb2Yoc3RydWN0IHBlcmZfcmVjb3JkX2lkX2luZGV4KSArIG5yICogc2l6ZW9mKHN0cnVjdCBpZF9pbmRleF9lbnRyeSk7CisJZXYtPmlkX2luZGV4LmhlYWRlci5zaXplID0gc3o7CisJZXYtPmlkX2luZGV4Lm5yID0gbnI7CisKKwllcnIgPSBwcm9jZXNzKHRvb2wsIGV2LCBOVUxMLCBtYWNoaW5lKTsKK291dF9lcnI6CisJZnJlZShldik7CisKKwlyZXR1cm4gZXJyOworfQorCitpbnQgX19tYWNoaW5lX19zeW50aGVzaXplX3RocmVhZHMoc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsIHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCisJCQkJICBzdHJ1Y3QgdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHMsCisJCQkJICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywgYm9vbCBkYXRhX21tYXAsCisJCQkJICB1bnNpZ25lZCBpbnQgbnJfdGhyZWFkc19zeW50aGVzaXplKQoreworCWlmICh0YXJnZXRfX2hhc190YXNrKHRhcmdldCkpCisJCXJldHVybiBwZXJmX2V2ZW50X19zeW50aGVzaXplX3RocmVhZF9tYXAodG9vbCwgdGhyZWFkcywgcHJvY2VzcywgbWFjaGluZSwgZGF0YV9tbWFwKTsKKwllbHNlIGlmICh0YXJnZXRfX2hhc19jcHUodGFyZ2V0KSkKKwkJcmV0dXJuIHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkcyh0b29sLCBwcm9jZXNzLAorCQkJCQkJICAgICAgbWFjaGluZSwgZGF0YV9tbWFwLAorCQkJCQkJICAgICAgbnJfdGhyZWFkc19zeW50aGVzaXplKTsKKwkvKiBjb21tYW5kIHNwZWNpZmllZCAqLworCXJldHVybiAwOworfQorCitpbnQgbWFjaGluZV9fc3ludGhlc2l6ZV90aHJlYWRzKHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLCBzdHJ1Y3QgdGFyZ2V0ICp0YXJnZXQsCisJCQkJc3RydWN0IHBlcmZfdGhyZWFkX21hcCAqdGhyZWFkcywgYm9vbCBkYXRhX21tYXAsCisJCQkJdW5zaWduZWQgaW50IG5yX3RocmVhZHNfc3ludGhlc2l6ZSkKK3sKKwlyZXR1cm4gX19tYWNoaW5lX19zeW50aGVzaXplX3RocmVhZHMobWFjaGluZSwgTlVMTCwgdGFyZ2V0LCB0aHJlYWRzLAorCQkJCQkgICAgIHBlcmZfZXZlbnRfX3Byb2Nlc3MsIGRhdGFfbW1hcCwKKwkJCQkJICAgICBucl90aHJlYWRzX3N5bnRoZXNpemUpOworfQorCitzdGF0aWMgc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSAqZXZlbnRfdXBkYXRlX2V2ZW50X19uZXcoc2l6ZV90IHNpemUsIHU2NCB0eXBlLCB1NjQgaWQpCit7CisJc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSAqZXY7CisKKwlzaXplICs9IHNpemVvZigqZXYpOworCXNpemUgID0gUEVSRl9BTElHTihzaXplLCBzaXplb2YodTY0KSk7CisKKwlldiA9IHphbGxvYyhzaXplKTsKKwlpZiAoZXYpIHsKKwkJZXYtPmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfRVZFTlRfVVBEQVRFOworCQlldi0+aGVhZGVyLnNpemUgPSAodTE2KXNpemU7CisJCWV2LT50eXBlCT0gdHlwZTsKKwkJZXYtPmlkCQk9IGlkOworCX0KKwlyZXR1cm4gZXY7Cit9CisKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2V2ZW50X3VwZGF0ZV91bml0KHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHN0cnVjdCBldnNlbCAqZXZzZWwsCisJCQkJCSAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpCit7CisJc2l6ZV90IHNpemUgPSBzdHJsZW4oZXZzZWwtPnVuaXQpOworCXN0cnVjdCBwZXJmX3JlY29yZF9ldmVudF91cGRhdGUgKmV2OworCWludCBlcnI7CisKKwlldiA9IGV2ZW50X3VwZGF0ZV9ldmVudF9fbmV3KHNpemUgKyAxLCBQRVJGX0VWRU5UX1VQREFURV9fVU5JVCwgZXZzZWwtPmNvcmUuaWRbMF0pOworCWlmIChldiA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXN0cmxjcHkoZXYtPmRhdGEsIGV2c2VsLT51bml0LCBzaXplICsgMSk7CisJZXJyID0gcHJvY2Vzcyh0b29sLCAodW5pb24gcGVyZl9ldmVudCAqKWV2LCBOVUxMLCBOVUxMKTsKKwlmcmVlKGV2KTsKKwlyZXR1cm4gZXJyOworfQorCitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfc2NhbGUoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgc3RydWN0IGV2c2VsICpldnNlbCwKKwkJCQkJICAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpCit7CisJc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSAqZXY7CisJc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZV9zY2FsZSAqZXZfZGF0YTsKKwlpbnQgZXJyOworCisJZXYgPSBldmVudF91cGRhdGVfZXZlbnRfX25ldyhzaXplb2YoKmV2X2RhdGEpLCBQRVJGX0VWRU5UX1VQREFURV9fU0NBTEUsIGV2c2VsLT5jb3JlLmlkWzBdKTsKKwlpZiAoZXYgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlldl9kYXRhID0gKHN0cnVjdCBwZXJmX3JlY29yZF9ldmVudF91cGRhdGVfc2NhbGUgKilldi0+ZGF0YTsKKwlldl9kYXRhLT5zY2FsZSA9IGV2c2VsLT5zY2FsZTsKKwllcnIgPSBwcm9jZXNzKHRvb2wsICh1bmlvbiBwZXJmX2V2ZW50ICopZXYsIE5VTEwsIE5VTEwpOworCWZyZWUoZXYpOworCXJldHVybiBlcnI7Cit9CisKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2V2ZW50X3VwZGF0ZV9uYW1lKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHN0cnVjdCBldnNlbCAqZXZzZWwsCisJCQkJCSAgICAgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpCit7CisJc3RydWN0IHBlcmZfcmVjb3JkX2V2ZW50X3VwZGF0ZSAqZXY7CisJc2l6ZV90IGxlbiA9IHN0cmxlbihldnNlbC0+bmFtZSk7CisJaW50IGVycjsKKworCWV2ID0gZXZlbnRfdXBkYXRlX2V2ZW50X19uZXcobGVuICsgMSwgUEVSRl9FVkVOVF9VUERBVEVfX05BTUUsIGV2c2VsLT5jb3JlLmlkWzBdKTsKKwlpZiAoZXYgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzdHJsY3B5KGV2LT5kYXRhLCBldnNlbC0+bmFtZSwgbGVuICsgMSk7CisJZXJyID0gcHJvY2Vzcyh0b29sLCAodW5pb24gcGVyZl9ldmVudCAqKWV2LCBOVUxMLCBOVUxMKTsKKwlmcmVlKGV2KTsKKwlyZXR1cm4gZXJyOworfQorCitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfY3B1cyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBzdHJ1Y3QgZXZzZWwgKmV2c2VsLAorCQkJCQkgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKQoreworCXNpemVfdCBzaXplID0gc2l6ZW9mKHN0cnVjdCBwZXJmX3JlY29yZF9ldmVudF91cGRhdGUpOworCXN0cnVjdCBwZXJmX3JlY29yZF9ldmVudF91cGRhdGUgKmV2OworCWludCBtYXgsIGVycjsKKwl1MTYgdHlwZTsKKworCWlmICghZXZzZWwtPmNvcmUub3duX2NwdXMpCisJCXJldHVybiAwOworCisJZXYgPSBjcHVfbWFwX2RhdGFfX2FsbG9jKGV2c2VsLT5jb3JlLm93bl9jcHVzLCAmc2l6ZSwgJnR5cGUsICZtYXgpOworCWlmICghZXYpCisJCXJldHVybiAtRU5PTUVNOworCisJZXYtPmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfRVZFTlRfVVBEQVRFOworCWV2LT5oZWFkZXIuc2l6ZSA9ICh1MTYpc2l6ZTsKKwlldi0+dHlwZQk9IFBFUkZfRVZFTlRfVVBEQVRFX19DUFVTOworCWV2LT5pZAkJPSBldnNlbC0+Y29yZS5pZFswXTsKKworCWNwdV9tYXBfZGF0YV9fc3ludGhlc2l6ZSgoc3RydWN0IHBlcmZfcmVjb3JkX2NwdV9tYXBfZGF0YSAqKWV2LT5kYXRhLAorCQkJCSBldnNlbC0+Y29yZS5vd25fY3B1cywgdHlwZSwgbWF4KTsKKworCWVyciA9IHByb2Nlc3ModG9vbCwgKHVuaW9uIHBlcmZfZXZlbnQgKilldiwgTlVMTCwgTlVMTCk7CisJZnJlZShldik7CisJcmV0dXJuIGVycjsKK30KKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXR0cnMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgc3RydWN0IGV2bGlzdCAqZXZsaXN0LAorCQkJCSBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcykKK3sKKwlzdHJ1Y3QgZXZzZWwgKmV2c2VsOworCWludCBlcnIgPSAwOworCisJZXZsaXN0X19mb3JfZWFjaF9lbnRyeShldmxpc3QsIGV2c2VsKSB7CisJCWVyciA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXR0cih0b29sLCAmZXZzZWwtPmNvcmUuYXR0ciwgZXZzZWwtPmNvcmUuaWRzLAorCQkJCQkJICBldnNlbC0+Y29yZS5pZCwgcHJvY2Vzcyk7CisJCWlmIChlcnIpIHsKKwkJCXByX2RlYnVnKCJmYWlsZWQgdG8gY3JlYXRlIHBlcmYgaGVhZGVyIGF0dHJpYnV0ZVxuIik7CisJCQlyZXR1cm4gZXJyOworCQl9CisJfQorCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGJvb2wgaGFzX3VuaXQoc3RydWN0IGV2c2VsICpldnNlbCkKK3sKKwlyZXR1cm4gZXZzZWwtPnVuaXQgJiYgKmV2c2VsLT51bml0OworfQorCitzdGF0aWMgYm9vbCBoYXNfc2NhbGUoc3RydWN0IGV2c2VsICpldnNlbCkKK3sKKwlyZXR1cm4gZXZzZWwtPnNjYWxlICE9IDE7Cit9CisKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2V4dHJhX2F0dHIoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgc3RydWN0IGV2bGlzdCAqZXZzZWxfbGlzdCwKKwkJCQkgICAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywgYm9vbCBpc19waXBlKQoreworCXN0cnVjdCBldnNlbCAqZXZzZWw7CisJaW50IGVycjsKKworCS8qCisJICogU3ludGhlc2l6ZSBvdGhlciBldmVudHMgc3R1ZmYgbm90IGNhcnJpZWQgd2l0aGluCisJICogYXR0ciBldmVudCAtIHVuaXQsIHNjYWxlLCBuYW1lCisJICovCisJZXZsaXN0X19mb3JfZWFjaF9lbnRyeShldnNlbF9saXN0LCBldnNlbCkgeworCQlpZiAoIWV2c2VsLT5zdXBwb3J0ZWQpCisJCQljb250aW51ZTsKKworCQkvKgorCQkgKiBTeW50aGVzaXplIHVuaXQgYW5kIHNjYWxlIG9ubHkgaWYgaXQncyBkZWZpbmVkLgorCQkgKi8KKwkJaWYgKGhhc191bml0KGV2c2VsKSkgeworCQkJZXJyID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfdW5pdCh0b29sLCBldnNlbCwgcHJvY2Vzcyk7CisJCQlpZiAoZXJyIDwgMCkgeworCQkJCXByX2VycigiQ291bGRuJ3Qgc3ludGhlc2l6ZSBldnNlbCB1bml0LlxuIik7CisJCQkJcmV0dXJuIGVycjsKKwkJCX0KKwkJfQorCisJCWlmIChoYXNfc2NhbGUoZXZzZWwpKSB7CisJCQllcnIgPSBwZXJmX2V2ZW50X19zeW50aGVzaXplX2V2ZW50X3VwZGF0ZV9zY2FsZSh0b29sLCBldnNlbCwgcHJvY2Vzcyk7CisJCQlpZiAoZXJyIDwgMCkgeworCQkJCXByX2VycigiQ291bGRuJ3Qgc3ludGhlc2l6ZSBldnNlbCBldnNlbC5cbiIpOworCQkJCXJldHVybiBlcnI7CisJCQl9CisJCX0KKworCQlpZiAoZXZzZWwtPmNvcmUub3duX2NwdXMpIHsKKwkJCWVyciA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXZlbnRfdXBkYXRlX2NwdXModG9vbCwgZXZzZWwsIHByb2Nlc3MpOworCQkJaWYgKGVyciA8IDApIHsKKwkJCQlwcl9lcnIoIkNvdWxkbid0IHN5bnRoZXNpemUgZXZzZWwgY3B1cy5cbiIpOworCQkJCXJldHVybiBlcnI7CisJCQl9CisJCX0KKworCQkvKgorCQkgKiBOYW1lIGlzIG5lZWRlZCBvbmx5IGZvciBwaXBlIG91dHB1dCwKKwkJICogcGVyZi5kYXRhIGNhcnJpZXMgZXZlbnQgbmFtZXMuCisJCSAqLworCQlpZiAoaXNfcGlwZSkgeworCQkJZXJyID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfbmFtZSh0b29sLCBldnNlbCwgcHJvY2Vzcyk7CisJCQlpZiAoZXJyIDwgMCkgeworCQkJCXByX2VycigiQ291bGRuJ3Qgc3ludGhlc2l6ZSBldnNlbCBuYW1lLlxuIik7CisJCQkJcmV0dXJuIGVycjsKKwkJCX0KKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXR0cihzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBzdHJ1Y3QgcGVyZl9ldmVudF9hdHRyICphdHRyLAorCQkJCXUzMiBpZHMsIHU2NCAqaWQsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKQoreworCXVuaW9uIHBlcmZfZXZlbnQgKmV2OworCXNpemVfdCBzaXplOworCWludCBlcnI7CisKKwlzaXplID0gc2l6ZW9mKHN0cnVjdCBwZXJmX2V2ZW50X2F0dHIpOworCXNpemUgPSBQRVJGX0FMSUdOKHNpemUsIHNpemVvZih1NjQpKTsKKwlzaXplICs9IHNpemVvZihzdHJ1Y3QgcGVyZl9ldmVudF9oZWFkZXIpOworCXNpemUgKz0gaWRzICogc2l6ZW9mKHU2NCk7CisKKwlldiA9IHphbGxvYyhzaXplKTsKKworCWlmIChldiA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWV2LT5hdHRyLmF0dHIgPSAqYXR0cjsKKwltZW1jcHkoZXYtPmF0dHIuaWQsIGlkLCBpZHMgKiBzaXplb2YodTY0KSk7CisKKwlldi0+YXR0ci5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX0hFQURFUl9BVFRSOworCWV2LT5hdHRyLmhlYWRlci5zaXplID0gKHUxNilzaXplOworCisJaWYgKGV2LT5hdHRyLmhlYWRlci5zaXplID09IHNpemUpCisJCWVyciA9IHByb2Nlc3ModG9vbCwgZXYsIE5VTEwsIE5VTEwpOworCWVsc2UKKwkJZXJyID0gLUUyQklHOworCisJZnJlZShldik7CisKKwlyZXR1cm4gZXJyOworfQorCitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV90cmFjaW5nX2RhdGEoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgaW50IGZkLCBzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsCisJCQkJCXBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKQoreworCXVuaW9uIHBlcmZfZXZlbnQgZXY7CisJc3RydWN0IHRyYWNpbmdfZGF0YSAqdGRhdGE7CisJc3NpemVfdCBzaXplID0gMCwgYWxpZ25lZF9zaXplID0gMCwgcGFkZGluZzsKKwlzdHJ1Y3QgZmVhdF9mZCBmZjsKKworCS8qCisJICogV2UgYXJlIGdvaW5nIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBkYXRhIGZvbGxvd2VkCisJICogYnkgdGhlIGRhdGEgY29udGVudHMuIFNpbmNlIHRoZSBmZCBkZXNjcmlwdG9yIGlzIGEgcGlwZSwKKwkgKiB3ZSBjYW5ub3Qgc2VlayBiYWNrIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBkYXRhIG9uY2UKKwkgKiB3ZSBrbm93IGl0LiBJbnN0ZWFkIHdlOgorCSAqCisJICogLSB3cml0ZSB0aGUgdHJhY2luZyBkYXRhIHRvIHRoZSB0ZW1wIGZpbGUKKwkgKiAtIGdldC93cml0ZSB0aGUgZGF0YSBzaXplIHRvIHBpcGUKKwkgKiAtIHdyaXRlIHRoZSB0cmFjaW5nIGRhdGEgZnJvbSB0aGUgdGVtcCBmaWxlCisJICogICB0byB0aGUgcGlwZQorCSAqLworCXRkYXRhID0gdHJhY2luZ19kYXRhX2dldCgmZXZsaXN0LT5jb3JlLmVudHJpZXMsIGZkLCB0cnVlKTsKKwlpZiAoIXRkYXRhKQorCQlyZXR1cm4gLTE7CisKKwltZW1zZXQoJmV2LCAwLCBzaXplb2YoZXYpKTsKKworCWV2LnRyYWNpbmdfZGF0YS5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX0hFQURFUl9UUkFDSU5HX0RBVEE7CisJc2l6ZSA9IHRkYXRhLT5zaXplOworCWFsaWduZWRfc2l6ZSA9IFBFUkZfQUxJR04oc2l6ZSwgc2l6ZW9mKHU2NCkpOworCXBhZGRpbmcgPSBhbGlnbmVkX3NpemUgLSBzaXplOworCWV2LnRyYWNpbmdfZGF0YS5oZWFkZXIuc2l6ZSA9IHNpemVvZihldi50cmFjaW5nX2RhdGEpOworCWV2LnRyYWNpbmdfZGF0YS5zaXplID0gYWxpZ25lZF9zaXplOworCisJcHJvY2Vzcyh0b29sLCAmZXYsIE5VTEwsIE5VTEwpOworCisJLyoKKwkgKiBUaGUgcHV0IGZ1bmN0aW9uIHdpbGwgY29weSBhbGwgdGhlIHRyYWNpbmcgZGF0YQorCSAqIHN0b3JlZCBpbiB0ZW1wIGZpbGUgdG8gdGhlIHBpcGUuCisJICovCisJdHJhY2luZ19kYXRhX3B1dCh0ZGF0YSk7CisKKwlmZiA9IChzdHJ1Y3QgZmVhdF9mZCl7IC5mZCA9IGZkIH07CisJaWYgKHdyaXRlX3BhZGRlZCgmZmYsIE5VTEwsIDAsIHBhZGRpbmcpKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gYWxpZ25lZF9zaXplOworfQorCitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9idWlsZF9pZChzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBzdHJ1Y3QgZHNvICpwb3MsIHUxNiBtaXNjLAorCQkJCSAgICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcywgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpCit7CisJdW5pb24gcGVyZl9ldmVudCBldjsKKwlzaXplX3QgbGVuOworCisJaWYgKCFwb3MtPmhpdCkKKwkJcmV0dXJuIDA7CisKKwltZW1zZXQoJmV2LCAwLCBzaXplb2YoZXYpKTsKKworCWxlbiA9IHBvcy0+bG9uZ19uYW1lX2xlbiArIDE7CisJbGVuID0gUEVSRl9BTElHTihsZW4sIE5BTUVfQUxJR04pOworCW1lbWNweSgmZXYuYnVpbGRfaWQuYnVpbGRfaWQsIHBvcy0+YnVpbGRfaWQsIHNpemVvZihwb3MtPmJ1aWxkX2lkKSk7CisJZXYuYnVpbGRfaWQuaGVhZGVyLnR5cGUgPSBQRVJGX1JFQ09SRF9IRUFERVJfQlVJTERfSUQ7CisJZXYuYnVpbGRfaWQuaGVhZGVyLm1pc2MgPSBtaXNjOworCWV2LmJ1aWxkX2lkLnBpZCA9IG1hY2hpbmUtPnBpZDsKKwlldi5idWlsZF9pZC5oZWFkZXIuc2l6ZSA9IHNpemVvZihldi5idWlsZF9pZCkgKyBsZW47CisJbWVtY3B5KCZldi5idWlsZF9pZC5maWxlbmFtZSwgcG9zLT5sb25nX25hbWUsIHBvcy0+bG9uZ19uYW1lX2xlbik7CisKKwlyZXR1cm4gcHJvY2Vzcyh0b29sLCAmZXYsIE5VTEwsIG1hY2hpbmUpOworfQorCitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9zdGF0X2V2ZW50cyhzdHJ1Y3QgcGVyZl9zdGF0X2NvbmZpZyAqY29uZmlnLCBzdHJ1Y3QgcGVyZl90b29sICp0b29sLAorCQkJCSAgICAgICBzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLCBib29sIGF0dHJzKQoreworCWludCBlcnI7CisKKwlpZiAoYXR0cnMpIHsKKwkJZXJyID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9hdHRycyh0b29sLCBldmxpc3QsIHByb2Nlc3MpOworCQlpZiAoZXJyIDwgMCkgeworCQkJcHJfZXJyKCJDb3VsZG4ndCBzeW50aGVzaXplIGF0dHJzLlxuIik7CisJCQlyZXR1cm4gZXJyOworCQl9CisJfQorCisJZXJyID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9leHRyYV9hdHRyKHRvb2wsIGV2bGlzdCwgcHJvY2VzcywgYXR0cnMpOworCWVyciA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkX21hcDIodG9vbCwgZXZsaXN0LT5jb3JlLnRocmVhZHMsIHByb2Nlc3MsIE5VTEwpOworCWlmIChlcnIgPCAwKSB7CisJCXByX2VycigiQ291bGRuJ3Qgc3ludGhlc2l6ZSB0aHJlYWQgbWFwLlxuIik7CisJCXJldHVybiBlcnI7CisJfQorCisJZXJyID0gcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9jcHVfbWFwKHRvb2wsIGV2bGlzdC0+Y29yZS5jcHVzLCBwcm9jZXNzLCBOVUxMKTsKKwlpZiAoZXJyIDwgMCkgeworCQlwcl9lcnIoIkNvdWxkbid0IHN5bnRoZXNpemUgdGhyZWFkIG1hcC5cbiIpOworCQlyZXR1cm4gZXJyOworCX0KKworCWVyciA9IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfc3RhdF9jb25maWcodG9vbCwgY29uZmlnLCBwcm9jZXNzLCBOVUxMKTsKKwlpZiAoZXJyIDwgMCkgeworCQlwcl9lcnIoIkNvdWxkbid0IHN5bnRoZXNpemUgY29uZmlnLlxuIik7CisJCXJldHVybiBlcnI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludCBfX3dlYWsgcGVyZl9ldmVudF9fc3ludGhfdGltZV9jb252KGNvbnN0IHN0cnVjdCBwZXJmX2V2ZW50X21tYXBfcGFnZSAqcGMgX19tYXliZV91bnVzZWQsCisJCQkJICAgICAgIHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wgX19tYXliZV91bnVzZWQsCisJCQkJICAgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzIF9fbWF5YmVfdW51c2VkLAorCQkJCSAgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSBfX21heWJlX3VudXNlZCkKK3sKKwlyZXR1cm4gMDsKK30KKworZXh0ZXJuIGNvbnN0IHN0cnVjdCBwZXJmX2hlYWRlcl9mZWF0dXJlX29wcyBmZWF0X29wc1tIRUFERVJfTEFTVF9GRUFUVVJFXTsKKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZmVhdHVyZXMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiwKKwkJCQkgICAgc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcykKK3sKKwlzdHJ1Y3QgcGVyZl9oZWFkZXIgKmhlYWRlciA9ICZzZXNzaW9uLT5oZWFkZXI7CisJc3RydWN0IHBlcmZfcmVjb3JkX2hlYWRlcl9mZWF0dXJlICpmZTsKKwlzdHJ1Y3QgZmVhdF9mZCBmZjsKKwlzaXplX3Qgc3osIHN6X2hkcjsKKwlpbnQgZmVhdCwgcmV0OworCisJc3pfaGRyID0gc2l6ZW9mKGZlLT5oZWFkZXIpOworCXN6ID0gc2l6ZW9mKHVuaW9uIHBlcmZfZXZlbnQpOworCS8qIGdldCBhIG5pY2UgYWxpZ25tZW50ICovCisJc3ogPSBQRVJGX0FMSUdOKHN6LCBwYWdlX3NpemUpOworCisJbWVtc2V0KCZmZiwgMCwgc2l6ZW9mKGZmKSk7CisKKwlmZi5idWYgPSBtYWxsb2Moc3opOworCWlmICghZmYuYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZmLnNpemUgPSBzeiAtIHN6X2hkcjsKKwlmZi5waCA9ICZzZXNzaW9uLT5oZWFkZXI7CisKKwlmb3JfZWFjaF9zZXRfYml0KGZlYXQsIGhlYWRlci0+YWRkc19mZWF0dXJlcywgSEVBREVSX0ZFQVRfQklUUykgeworCQlpZiAoIWZlYXRfb3BzW2ZlYXRdLnN5bnRoZXNpemUpIHsKKwkJCXByX2RlYnVnKCJObyByZWNvcmQgaGVhZGVyIGZlYXR1cmUgZm9yIGhlYWRlciA6JWRcbiIsIGZlYXQpOworCQkJY29udGludWU7CisJCX0KKworCQlmZi5vZmZzZXQgPSBzaXplb2YoKmZlKTsKKworCQlyZXQgPSBmZWF0X29wc1tmZWF0XS53cml0ZSgmZmYsIGV2bGlzdCk7CisJCWlmIChyZXQgfHwgZmYub2Zmc2V0IDw9IChzc2l6ZV90KXNpemVvZigqZmUpKSB7CisJCQlwcl9kZWJ1ZygiRXJyb3Igd3JpdGluZyBmZWF0dXJlXG4iKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCS8qIGZmLmJ1ZiBtYXkgaGF2ZSBjaGFuZ2VkIGR1ZSB0byByZWFsbG9jIGluIGRvX3dyaXRlKCkgKi8KKwkJZmUgPSBmZi5idWY7CisJCW1lbXNldChmZSwgMCwgc2l6ZW9mKCpmZSkpOworCisJCWZlLT5mZWF0X2lkID0gZmVhdDsKKwkJZmUtPmhlYWRlci50eXBlID0gUEVSRl9SRUNPUkRfSEVBREVSX0ZFQVRVUkU7CisJCWZlLT5oZWFkZXIuc2l6ZSA9IGZmLm9mZnNldDsKKworCQlyZXQgPSBwcm9jZXNzKHRvb2wsIGZmLmJ1ZiwgTlVMTCwgTlVMTCk7CisJCWlmIChyZXQpIHsKKwkJCWZyZWUoZmYuYnVmKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwkvKiBTZW5kIEhFQURFUl9MQVNUX0ZFQVRVUkUgbWFyay4gKi8KKwlmZSA9IGZmLmJ1ZjsKKwlmZS0+ZmVhdF9pZCAgICAgPSBIRUFERVJfTEFTVF9GRUFUVVJFOworCWZlLT5oZWFkZXIudHlwZSA9IFBFUkZfUkVDT1JEX0hFQURFUl9GRUFUVVJFOworCWZlLT5oZWFkZXIuc2l6ZSA9IHNpemVvZigqZmUpOworCisJcmV0ID0gcHJvY2Vzcyh0b29sLCBmZi5idWYsIE5VTEwsIE5VTEwpOworCisJZnJlZShmZi5idWYpOworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvc3ludGhldGljLWV2ZW50cy5oIGIvdG9vbHMvcGVyZi91dGlsL3N5bnRoZXRpYy1ldmVudHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWVhZDBjCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvcGVyZi91dGlsL3N5bnRoZXRpYy1ldmVudHMuaApAQCAtMCwwICsxLDEwMyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKyNpZm5kZWYgX19QRVJGX1NZTlRIRVRJQ19FVkVOVFNfSAorI2RlZmluZSBfX1BFUkZfU1lOVEhFVElDX0VWRU5UU19ICisKKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+IC8vIHBpZF90CisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitzdHJ1Y3QgYXV4dHJhY2VfcmVjb3JkOworc3RydWN0IGRzbzsKK3N0cnVjdCBldmxpc3Q7CitzdHJ1Y3QgZXZzZWw7CitzdHJ1Y3QgbWFjaGluZTsKK3N0cnVjdCBwZXJmX2NvdW50c192YWx1ZXM7CitzdHJ1Y3QgcGVyZl9jcHVfbWFwOworc3RydWN0IHBlcmZfZXZlbnRfYXR0cjsKK3N0cnVjdCBwZXJmX2V2ZW50X21tYXBfcGFnZTsKK3N0cnVjdCBwZXJmX3NhbXBsZTsKK3N0cnVjdCBwZXJmX3Nlc3Npb247CitzdHJ1Y3QgcGVyZl9zdGF0X2NvbmZpZzsKK3N0cnVjdCBwZXJmX3RocmVhZF9tYXA7CitzdHJ1Y3QgcGVyZl90b29sOworc3RydWN0IHJlY29yZF9vcHRzOworc3RydWN0IHRhcmdldDsKKwordW5pb24gcGVyZl9ldmVudDsKKwordHlwZWRlZiBpbnQgKCpwZXJmX2V2ZW50X19oYW5kbGVyX3QpKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LAorCQkJCSAgICAgc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKTsKKworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXR0cnMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgc3RydWN0IGV2bGlzdCAqZXZsaXN0LCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcyk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9hdHRyKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHN0cnVjdCBwZXJmX2V2ZW50X2F0dHIgKmF0dHIsIHUzMiBpZHMsIHU2NCAqaWQsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2J1aWxkX2lkKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHN0cnVjdCBkc28gKnBvcywgdTE2IG1pc2MsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLCBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9jcHVfbWFwKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLCBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfY3B1cyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBzdHJ1Y3QgZXZzZWwgKmV2c2VsLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcyk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfbmFtZShzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBzdHJ1Y3QgZXZzZWwgKmV2c2VsLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcyk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9ldmVudF91cGRhdGVfc2NhbGUoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgc3RydWN0IGV2c2VsICpldnNlbCwgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpOworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXZlbnRfdXBkYXRlX3VuaXQoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgc3RydWN0IGV2c2VsICpldnNlbCwgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpOworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfZXh0cmFfYXR0cihzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBzdHJ1Y3QgZXZsaXN0ICpldnNlbF9saXN0LCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywgYm9vbCBpc19waXBlKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2V4dHJhX2ttYXBzKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLCBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9mZWF0dXJlcyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLCBzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2lkX2luZGV4KHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLCBzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX2tlcm5lbF9tbWFwKHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLCBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9tbWFwX2V2ZW50cyhzdHJ1Y3QgcGVyZl90b29sICp0b29sLCB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgcGlkX3QgcGlkLCBwaWRfdCB0Z2lkLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcywgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsIGJvb2wgbW1hcF9kYXRhKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX21vZHVsZXMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX25hbWVzcGFjZXMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgdW5pb24gcGVyZl9ldmVudCAqZXZlbnQsIHBpZF90IHBpZCwgcGlkX3QgdGdpZCwgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX3NhbXBsZSh1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgdTY0IHR5cGUsIHU2NCByZWFkX2Zvcm1hdCwgY29uc3Qgc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUpOworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfc3RhdF9jb25maWcoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgc3RydWN0IHBlcmZfc3RhdF9jb25maWcgKmNvbmZpZywgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX3N0YXRfZXZlbnRzKHN0cnVjdCBwZXJmX3N0YXRfY29uZmlnICpjb25maWcsIHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHN0cnVjdCBldmxpc3QgKmV2bGlzdCwgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsIGJvb2wgYXR0cnMpOworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfc3RhdF9yb3VuZChzdHJ1Y3QgcGVyZl90b29sICp0b29sLCB1NjQgdGltZSwgdTY0IHR5cGUsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLCBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV9zdGF0KHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHUzMiBjcHUsIHUzMiB0aHJlYWQsIHU2NCBpZCwgc3RydWN0IHBlcmZfY291bnRzX3ZhbHVlcyAqY291bnQsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzLCBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV90aHJlYWRfbWFwMihzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcywgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOworaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfdGhyZWFkX21hcChzdHJ1Y3QgcGVyZl90b29sICp0b29sLCBzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcywgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsIGJvb2wgbW1hcF9kYXRhKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aGVzaXplX3RocmVhZHMoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lLCBib29sIG1tYXBfZGF0YSwgdW5zaWduZWQgaW50IG5yX3RocmVhZHNfc3ludGhlc2l6ZSk7CitpbnQgcGVyZl9ldmVudF9fc3ludGhlc2l6ZV90cmFjaW5nX2RhdGEoc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgaW50IGZkLCBzdHJ1Y3QgZXZsaXN0ICpldmxpc3QsIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzKTsKK2ludCBwZXJmX2V2ZW50X19zeW50aF90aW1lX2NvbnYoY29uc3Qgc3RydWN0IHBlcmZfZXZlbnRfbW1hcF9wYWdlICpwYywgc3RydWN0IHBlcmZfdG9vbCAqdG9vbCwgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lKTsKK3BpZF90IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfY29tbShzdHJ1Y3QgcGVyZl90b29sICp0b29sLCB1bmlvbiBwZXJmX2V2ZW50ICpldmVudCwgcGlkX3QgcGlkLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcywgc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOworCitpbnQgcGVyZl90b29sX19wcm9jZXNzX3N5bnRoX2V2ZW50KHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsIHVuaW9uIHBlcmZfZXZlbnQgKmV2ZW50LCBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSwgcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MpOworCitzaXplX3QgcGVyZl9ldmVudF9fc2FtcGxlX2V2ZW50X3NpemUoY29uc3Qgc3RydWN0IHBlcmZfc2FtcGxlICpzYW1wbGUsIHU2NCB0eXBlLCB1NjQgcmVhZF9mb3JtYXQpOworCitpbnQgX19tYWNoaW5lX19zeW50aGVzaXplX3RocmVhZHMoc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsIHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCisJCQkJICBzdHJ1Y3QgdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBwZXJmX3RocmVhZF9tYXAgKnRocmVhZHMsCisJCQkJICBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywgYm9vbCBkYXRhX21tYXAsCisJCQkJICB1bnNpZ25lZCBpbnQgbnJfdGhyZWFkc19zeW50aGVzaXplKTsKK2ludCBtYWNoaW5lX19zeW50aGVzaXplX3RocmVhZHMoc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUsIHN0cnVjdCB0YXJnZXQgKnRhcmdldCwKKwkJCQlzdHJ1Y3QgcGVyZl90aHJlYWRfbWFwICp0aHJlYWRzLCBib29sIGRhdGFfbW1hcCwKKwkJCQl1bnNpZ25lZCBpbnQgbnJfdGhyZWFkc19zeW50aGVzaXplKTsKKworI2lmZGVmIEhBVkVfQVVYVFJBQ0VfU1VQUE9SVAoraW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXV4dHJhY2VfaW5mbyhzdHJ1Y3QgYXV4dHJhY2VfcmVjb3JkICppdHIsIHN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCisJCQkJCSBzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2Vzcyk7CisKKyNlbHNlIC8vIEhBVkVfQVVYVFJBQ0VfU1VQUE9SVAorCisjaW5jbHVkZSA8ZXJybm8uaD4KKworc3RhdGljIGlubGluZSBpbnQKK3BlcmZfZXZlbnRfX3N5bnRoZXNpemVfYXV4dHJhY2VfaW5mbyhzdHJ1Y3QgYXV4dHJhY2VfcmVjb3JkICppdHIgX19tYXliZV91bnVzZWQsCisJCQkJICAgICBzdHJ1Y3QgcGVyZl90b29sICp0b29sIF9fbWF5YmVfdW51c2VkLAorCQkJCSAgICAgc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vzc2lvbiBfX21heWJlX3VudXNlZCwKKwkJCQkgICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzIF9fbWF5YmVfdW51c2VkKQoreworCXJldHVybiAtRUlOVkFMOworfQorI2VuZGlmIC8vIEhBVkVfQVVYVFJBQ0VfU1VQUE9SVAorCisjaWZkZWYgSEFWRV9MSUJCUEZfU1VQUE9SVAoraW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYnBmX2V2ZW50cyhzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uLCBwZXJmX2V2ZW50X19oYW5kbGVyX3QgcHJvY2VzcywKKwkJCQkgICAgICBzdHJ1Y3QgbWFjaGluZSAqbWFjaGluZSwgc3RydWN0IHJlY29yZF9vcHRzICpvcHRzKTsKKyNlbHNlIC8vIEhBVkVfTElCQlBGX1NVUFBPUlQKK3N0YXRpYyBpbmxpbmUgaW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfYnBmX2V2ZW50cyhzdHJ1Y3QgcGVyZl9zZXNzaW9uICpzZXNzaW9uIF9fbWF5YmVfdW51c2VkLAorCQkJCQkJICAgIHBlcmZfZXZlbnRfX2hhbmRsZXJfdCBwcm9jZXNzIF9fbWF5YmVfdW51c2VkLAorCQkJCQkJICAgIHN0cnVjdCBtYWNoaW5lICptYWNoaW5lIF9fbWF5YmVfdW51c2VkLAorCQkJCQkJICAgIHN0cnVjdCByZWNvcmRfb3B0cyAqb3B0cyBfX21heWJlX3VudXNlZCkKK3sKKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvLyBIQVZFX0xJQkJQRl9TVVBQT1JUCisKKyNlbmRpZiAvLyBfX1BFUkZfU1lOVEhFVElDX0VWRU5UU19ICmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvdGFyZ2V0LmMgYi90b29scy9wZXJmL3V0aWwvdGFyZ2V0LmMKaW5kZXggNTY1ZjdhZS4uYTNkYjEzZCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3RhcmdldC5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC90YXJnZXQuYwpAQCAtNiw4ICs2LDYgQEAKICAqLwogCiAjaW5jbHVkZSAidGFyZ2V0LmgiCi0jaW5jbHVkZSAidXRpbC5oIgotI2luY2x1ZGUgImRlYnVnLmgiCiAKICNpbmNsdWRlIDxwd2QuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3RvcC5jIGIvdG9vbHMvcGVyZi91dGlsL3RvcC5jCmluZGV4IDUxZmI1NzQuLjNkY2UyZGUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC90b3AuYworKysgYi90b29scy9wZXJmL3V0aWwvdG9wLmMKQEAgLTUsNyArNSw2IEBACiAgKiBSZWZhY3RvcmVkIGZyb20gYnVpbHRpbi10b3AuYywgc2VlIHRoYXQgZmlsZXMgZm9yIGZ1cnRoZXIgY29weXJpZ2h0IG5vdGVzLgogICovCiAKLSNpbmNsdWRlICJjcHVtYXAuaCIKICNpbmNsdWRlICJldmVudC5oIgogI2luY2x1ZGUgImV2bGlzdC5oIgogI2luY2x1ZGUgImV2c2VsLmgiCkBAIC03Miw3ICs3MSw3IEBAIHNpemVfdCBwZXJmX3RvcF9faGVhZGVyX3NucHJpbnRmKHN0cnVjdCBwZXJmX3RvcCAqdG9wLCBjaGFyICpiZiwgc2l6ZV90IHNpemUpCiAJfQogCiAJaWYgKHRvcC0+ZXZsaXN0LT5jb3JlLm5yX2VudHJpZXMgPT0gMSkgewotCQlzdHJ1Y3QgZXZzZWwgKmZpcnN0ID0gcGVyZl9ldmxpc3RfX2ZpcnN0KHRvcC0+ZXZsaXN0KTsKKwkJc3RydWN0IGV2c2VsICpmaXJzdCA9IGV2bGlzdF9fZmlyc3QodG9wLT5ldmxpc3QpOwogCQlyZXQgKz0gU05QUklOVEYoYmYgKyByZXQsIHNpemUgLSByZXQsICIlIiBQUkl1NjQgIiVzICIsCiAJCQkJKHVpbnQ2NF90KWZpcnN0LT5jb3JlLmF0dHIuc2FtcGxlX3BlcmlvZCwKIAkJCQlvcHRzLT5mcmVxID8gIkh6IiA6ICIiKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC90cmFjZS1ldmVudC1pbmZvLmMgYi90b29scy9wZXJmL3V0aWwvdHJhY2UtZXZlbnQtaW5mby5jCmluZGV4IGQ2M2Q1NDIuLjA4NmU5OGYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC90cmFjZS1ldmVudC1pbmZvLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL3RyYWNlLWV2ZW50LWluZm8uYwpAQCAtMiw3ICsyLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsMjAwOSwgU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CiAgKi8KLSNpbmNsdWRlICJ1dGlsLmgiCiAjaW5jbHVkZSA8ZGlyZW50Lmg+CiAjaW5jbHVkZSA8bW50ZW50Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTE5LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvemFsbG9jLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+IC8vIHBhZ2Vfc2l6ZQogCiAjaW5jbHVkZSAidHJhY2UtZXZlbnQuaCIKICNpbmNsdWRlIDxhcGkvZnMvdHJhY2luZ19wYXRoLmg+CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvdHJhY2UtZXZlbnQtcmVhZC5jIGIvdG9vbHMvcGVyZi91dGlsL3RyYWNlLWV2ZW50LXJlYWQuYwppbmRleCBiNmMwZGIwLi44NTkzZDNjIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvdHJhY2UtZXZlbnQtcmVhZC5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC90cmFjZS1ldmVudC1yZWFkLmMKQEAgLTE1LDcgKzE1LDYgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxlcnJuby5oPgogCi0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgInRyYWNlLWV2ZW50LmgiCiAjaW5jbHVkZSAiZGVidWcuaCIKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3RyYWNlLWV2ZW50LmMgYi90b29scy9wZXJmL3V0aWwvdHJhY2UtZXZlbnQuYwppbmRleCAwMWI5ZDg5Li5iM2VlNjUxIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvdHJhY2UtZXZlbnQuYworKysgYi90b29scy9wZXJmL3V0aWwvdHJhY2UtZXZlbnQuYwpAQCAtMTQsNyArMTQsNiBAQAogI2luY2x1ZGUgPGFwaS9mcy9mcy5oPgogI2luY2x1ZGUgInRyYWNlLWV2ZW50LmgiCiAjaW5jbHVkZSAibWFjaGluZS5oIgotI2luY2x1ZGUgInV0aWwuaCIKIAogLyoKICAqIGdsb2JhbCB0cmFjZV9ldmVudCBvYmplY3QgdXNlZCBieSB0cmFjZV9ldmVudF9fdHBfZm9ybWF0CmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvdHNjLmggYi90b29scy9wZXJmL3V0aWwvdHNjLmgKaW5kZXggZTBjM2FmMy4uM2M1YTYzMiAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3RzYy5oCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC90c2MuaApAQCAtNCwxMyArNCwxMiBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAotI2luY2x1ZGUgImV2ZW50LmgiCi0KIHN0cnVjdCBwZXJmX3RzY19jb252ZXJzaW9uIHsKIAl1MTYgdGltZV9zaGlmdDsKIAl1MzIgdGltZV9tdWx0OwogCXU2NCB0aW1lX3plcm87CiB9OworCiBzdHJ1Y3QgcGVyZl9ldmVudF9tbWFwX3BhZ2U7CiAKIGludCBwZXJmX3JlYWRfdHNjX2NvbnZlcnNpb24oY29uc3Qgc3RydWN0IHBlcmZfZXZlbnRfbW1hcF9wYWdlICpwYywKQEAgLTIwLDEzICsxOSw0IEBAIHU2NCBwZXJmX3RpbWVfdG9fdHNjKHU2NCBucywgc3RydWN0IHBlcmZfdHNjX2NvbnZlcnNpb24gKnRjKTsKIHU2NCB0c2NfdG9fcGVyZl90aW1lKHU2NCBjeWMsIHN0cnVjdCBwZXJmX3RzY19jb252ZXJzaW9uICp0Yyk7CiB1NjQgcmR0c2Modm9pZCk7CiAKLXN0cnVjdCBwZXJmX2V2ZW50X21tYXBfcGFnZTsKLXN0cnVjdCBwZXJmX3Rvb2w7Ci1zdHJ1Y3QgbWFjaGluZTsKLQotaW50IHBlcmZfZXZlbnRfX3N5bnRoX3RpbWVfY29udihjb25zdCBzdHJ1Y3QgcGVyZl9ldmVudF9tbWFwX3BhZ2UgKnBjLAotCQkJCXN0cnVjdCBwZXJmX3Rvb2wgKnRvb2wsCi0JCQkJcGVyZl9ldmVudF9faGFuZGxlcl90IHByb2Nlc3MsCi0JCQkJc3RydWN0IG1hY2hpbmUgKm1hY2hpbmUpOwotCi0jZW5kaWYKKyNlbmRpZiAvLyBfX1BFUkZfVFNDX0gKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC91bndpbmQtbGliZHcuYyBiL3Rvb2xzL3BlcmYvdXRpbC91bndpbmQtbGliZHcuYwppbmRleCA5ZWNlMTg4Li4xNWY2ZTQ2IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvdW53aW5kLWxpYmR3LmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL3Vud2luZC1saWJkdy5jCkBAIC0xNyw3ICsxNyw2IEBACiAjaW5jbHVkZSAiZXZlbnQuaCIKICNpbmNsdWRlICJwZXJmX3JlZ3MuaCIKICNpbmNsdWRlICJjYWxsY2hhaW4uaCIKLSNpbmNsdWRlICJ1dGlsLmgiCiAKIHN0YXRpYyBjaGFyICpkZWJ1Z2luZm9fcGF0aDsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3Vud2luZC1saWJ1bndpbmQtbG9jYWwuYyBiL3Rvb2xzL3BlcmYvdXRpbC91bndpbmQtbGlidW53aW5kLWxvY2FsLmMKaW5kZXggZWJkYmIwNS4uMTgwMDg4NyAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3Vud2luZC1saWJ1bndpbmQtbG9jYWwuYworKysgYi90b29scy9wZXJmL3V0aWwvdW53aW5kLWxpYnVud2luZC1sb2NhbC5jCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAidW53aW5kLmgiCiAjaW5jbHVkZSAibWFwLmgiCiAjaW5jbHVkZSAic3ltYm9sLmgiCi0jaW5jbHVkZSAidXRpbC5oIgogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAiYXNtL2J1Zy5oIgogI2luY2x1ZGUgImRzby5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3VzYWdlLmMgYi90b29scy9wZXJmL3V0aWwvdXNhZ2UuYwppbmRleCAzOTQ5YTYwLi4xOTY0MzhlIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvdXNhZ2UuYworKysgYi90b29scy9wZXJmL3V0aWwvdXNhZ2UuYwpAQCAtOCw3ICs4LDYgQEAKICAqIENvcHlyaWdodCAoQykgTGludXMgVG9ydmFsZHMsIDIwMDUKICAqLwogI2luY2x1ZGUgInV0aWwuaCIKLSNpbmNsdWRlICJkZWJ1Zy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC91dGlsLmMgYi90b29scy9wZXJmL3V0aWwvdXRpbC5jCmluZGV4IDMyMzIyYTIuLjVlZGE2ZTEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC91dGlsLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL3V0aWwuYwpAQCAtMiw5ICsyLDcgQEAKICNpbmNsdWRlICJ1dGlsLmgiCiAjaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJldmVudC5oIgotI2luY2x1ZGUgIm5hbWVzcGFjZXMuaCIKICNpbmNsdWRlIDxhcGkvZnMvZnMuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KICNpbmNsdWRlIDxkaXJlbnQuaD4KQEAgLTQxLDggKzM5LDYgQEAgdm9pZCBwZXJmX3NldF9tdWx0aXRocmVhZGVkKHZvaWQpCiAJcGVyZl9zaW5nbGV0aHJlYWRlZCA9IGZhbHNlOwogfQogCi11bnNpZ25lZCBpbnQgcGFnZV9zaXplOwotCiBpbnQgc3lzY3RsX3BlcmZfZXZlbnRfbWF4X3N0YWNrID0gUEVSRl9NQVhfU1RBQ0tfREVQVEg7CiBpbnQgc3lzY3RsX3BlcmZfZXZlbnRfbWF4X2NvbnRleHRzX3Blcl9zdGFjayA9IFBFUkZfTUFYX0NPTlRFWFRTX1BFUl9TVEFDSzsKIApAQCAtMjM0LDEzOCArMjMwLDYgQEAgc3RydWN0IHN0cmxpc3QgKmxzZGlyKGNvbnN0IGNoYXIgKm5hbWUsCiAJcmV0dXJuIGxpc3Q7CiB9CiAKLXN0YXRpYyBpbnQgc2xvd19jb3B5ZmlsZShjb25zdCBjaGFyICpmcm9tLCBjb25zdCBjaGFyICp0bywgc3RydWN0IG5zaW5mbyAqbnNpKQotewotCWludCBlcnIgPSAtMTsKLQljaGFyICpsaW5lID0gTlVMTDsKLQlzaXplX3QgbjsKLQlGSUxFICpmcm9tX2ZwLCAqdG9fZnA7Ci0Jc3RydWN0IG5zY29va2llIG5zYzsKLQotCW5zaW5mb19fbW91bnRuc19lbnRlcihuc2ksICZuc2MpOwotCWZyb21fZnAgPSBmb3Blbihmcm9tLCAiciIpOwotCW5zaW5mb19fbW91bnRuc19leGl0KCZuc2MpOwotCWlmIChmcm9tX2ZwID09IE5VTEwpCi0JCWdvdG8gb3V0OwotCi0JdG9fZnAgPSBmb3Blbih0bywgInciKTsKLQlpZiAodG9fZnAgPT0gTlVMTCkKLQkJZ290byBvdXRfZmNsb3NlX2Zyb207Ci0KLQl3aGlsZSAoZ2V0bGluZSgmbGluZSwgJm4sIGZyb21fZnApID4gMCkKLQkJaWYgKGZwdXRzKGxpbmUsIHRvX2ZwKSA9PSBFT0YpCi0JCQlnb3RvIG91dF9mY2xvc2VfdG87Ci0JZXJyID0gMDsKLW91dF9mY2xvc2VfdG86Ci0JZmNsb3NlKHRvX2ZwKTsKLQlmcmVlKGxpbmUpOwotb3V0X2ZjbG9zZV9mcm9tOgotCWZjbG9zZShmcm9tX2ZwKTsKLW91dDoKLQlyZXR1cm4gZXJyOwotfQotCi1pbnQgY29weWZpbGVfb2Zmc2V0KGludCBpZmQsIGxvZmZfdCBvZmZfaW4sIGludCBvZmQsIGxvZmZfdCBvZmZfb3V0LCB1NjQgc2l6ZSkKLXsKLQl2b2lkICpwdHI7Ci0JbG9mZl90IHBnb2ZmOwotCi0JcGdvZmYgPSBvZmZfaW4gJiB+KHBhZ2Vfc2l6ZSAtIDEpOwotCW9mZl9pbiAtPSBwZ29mZjsKLQotCXB0ciA9IG1tYXAoTlVMTCwgb2ZmX2luICsgc2l6ZSwgUFJPVF9SRUFELCBNQVBfUFJJVkFURSwgaWZkLCBwZ29mZik7Ci0JaWYgKHB0ciA9PSBNQVBfRkFJTEVEKQotCQlyZXR1cm4gLTE7Ci0KLQl3aGlsZSAoc2l6ZSkgewotCQlzc2l6ZV90IHJldCA9IHB3cml0ZShvZmQsIHB0ciArIG9mZl9pbiwgc2l6ZSwgb2ZmX291dCk7Ci0JCWlmIChyZXQgPCAwICYmIGVycm5vID09IEVJTlRSKQotCQkJY29udGludWU7Ci0JCWlmIChyZXQgPD0gMCkKLQkJCWJyZWFrOwotCi0JCXNpemUgLT0gcmV0OwotCQlvZmZfaW4gKz0gcmV0OwotCQlvZmZfb3V0ICs9IHJldDsKLQl9Ci0JbXVubWFwKHB0ciwgb2ZmX2luICsgc2l6ZSk7Ci0KLQlyZXR1cm4gc2l6ZSA/IC0xIDogMDsKLX0KLQotc3RhdGljIGludCBjb3B5ZmlsZV9tb2RlX25zKGNvbnN0IGNoYXIgKmZyb20sIGNvbnN0IGNoYXIgKnRvLCBtb2RlX3QgbW9kZSwKLQkJCSAgICBzdHJ1Y3QgbnNpbmZvICpuc2kpCi17Ci0JaW50IGZyb21mZCwgdG9mZDsKLQlzdHJ1Y3Qgc3RhdCBzdDsKLQlpbnQgZXJyOwotCWNoYXIgKnRtcCA9IE5VTEwsICpwdHIgPSBOVUxMOwotCXN0cnVjdCBuc2Nvb2tpZSBuc2M7Ci0KLQluc2luZm9fX21vdW50bnNfZW50ZXIobnNpLCAmbnNjKTsKLQllcnIgPSBzdGF0KGZyb20sICZzdCk7Ci0JbnNpbmZvX19tb3VudG5zX2V4aXQoJm5zYyk7Ci0JaWYgKGVycikKLQkJZ290byBvdXQ7Ci0JZXJyID0gLTE7Ci0KLQkvKiBleHRyYSAneCcgYXQgdGhlIGVuZCBpcyB0byByZXNlcnZlIHNwYWNlIGZvciAnLicgKi8KLQlpZiAoYXNwcmludGYoJnRtcCwgIiVzLlhYWFhYWHgiLCB0bykgPCAwKSB7Ci0JCXRtcCA9IE5VTEw7Ci0JCWdvdG8gb3V0OwotCX0KLQlwdHIgPSBzdHJyY2hyKHRtcCwgJy8nKTsKLQlpZiAoIXB0cikKLQkJZ290byBvdXQ7Ci0JcHRyID0gbWVtbW92ZShwdHIgKyAxLCBwdHIsIHN0cmxlbihwdHIpIC0gMSk7Ci0JKnB0ciA9ICcuJzsKLQotCXRvZmQgPSBta3N0ZW1wKHRtcCk7Ci0JaWYgKHRvZmQgPCAwKQotCQlnb3RvIG91dDsKLQotCWlmIChmY2htb2QodG9mZCwgbW9kZSkpCi0JCWdvdG8gb3V0X2Nsb3NlX3RvOwotCi0JaWYgKHN0LnN0X3NpemUgPT0gMCkgeyAvKiAvcHJvYz8gZG8gaXQgc2xvd2x5Li4uICovCi0JCWVyciA9IHNsb3dfY29weWZpbGUoZnJvbSwgdG1wLCBuc2kpOwotCQlnb3RvIG91dF9jbG9zZV90bzsKLQl9Ci0KLQluc2luZm9fX21vdW50bnNfZW50ZXIobnNpLCAmbnNjKTsKLQlmcm9tZmQgPSBvcGVuKGZyb20sIE9fUkRPTkxZKTsKLQluc2luZm9fX21vdW50bnNfZXhpdCgmbnNjKTsKLQlpZiAoZnJvbWZkIDwgMCkKLQkJZ290byBvdXRfY2xvc2VfdG87Ci0KLQllcnIgPSBjb3B5ZmlsZV9vZmZzZXQoZnJvbWZkLCAwLCB0b2ZkLCAwLCBzdC5zdF9zaXplKTsKLQotCWNsb3NlKGZyb21mZCk7Ci1vdXRfY2xvc2VfdG86Ci0JY2xvc2UodG9mZCk7Ci0JaWYgKCFlcnIpCi0JCWVyciA9IGxpbmsodG1wLCB0byk7Ci0JdW5saW5rKHRtcCk7Ci1vdXQ6Ci0JZnJlZSh0bXApOwotCXJldHVybiBlcnI7Ci19Ci0KLWludCBjb3B5ZmlsZV9ucyhjb25zdCBjaGFyICpmcm9tLCBjb25zdCBjaGFyICp0bywgc3RydWN0IG5zaW5mbyAqbnNpKQotewotCXJldHVybiBjb3B5ZmlsZV9tb2RlX25zKGZyb20sIHRvLCAwNzU1LCBuc2kpOwotfQotCi1pbnQgY29weWZpbGVfbW9kZShjb25zdCBjaGFyICpmcm9tLCBjb25zdCBjaGFyICp0bywgbW9kZV90IG1vZGUpCi17Ci0JcmV0dXJuIGNvcHlmaWxlX21vZGVfbnMoZnJvbSwgdG8sIG1vZGUsIE5VTEwpOwotfQotCi1pbnQgY29weWZpbGUoY29uc3QgY2hhciAqZnJvbSwgY29uc3QgY2hhciAqdG8pCi17Ci0JcmV0dXJuIGNvcHlmaWxlX21vZGUoZnJvbSwgdG8sIDA3NTUpOwotfQotCiBzaXplX3QgaGV4X3dpZHRoKHU2NCB2KQogewogCXNpemVfdCBuID0gMTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC91dGlsLmggYi90b29scy9wZXJmL3V0aWwvdXRpbC5oCmluZGV4IDQ1YTVjNmYyLi45OTY5YjhiIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvdXRpbC5oCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC91dGlsLmgKQEAgLTExLDE0ICsxMSwxMiBAQAogI2luY2x1ZGUgPHN0ZGRlZi5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+CiAKIC8qIEdlbmVyYWwgaGVscGVyIGZ1bmN0aW9ucyAqLwogdm9pZCB1c2FnZShjb25zdCBjaGFyICplcnIpIF9fbm9yZXR1cm47CiB2b2lkIGRpZShjb25zdCBjaGFyICplcnIsIC4uLikgX19ub3JldHVybiBfX3ByaW50ZigxLCAyKTsKIAogc3RydWN0IGRpcmVudDsKLXN0cnVjdCBuc2luZm87CiBzdHJ1Y3Qgc3RybGlzdDsKIAogaW50IG1rZGlyX3AoY2hhciAqcGF0aCwgbW9kZV90IG1vZGUpOwpAQCAtMjYsMTUgKzI0LDkgQEAgaW50IHJtX3JmKGNvbnN0IGNoYXIgKnBhdGgpOwogaW50IHJtX3JmX3BlcmZfZGF0YShjb25zdCBjaGFyICpwYXRoKTsKIHN0cnVjdCBzdHJsaXN0ICpsc2Rpcihjb25zdCBjaGFyICpuYW1lLCBib29sICgqZmlsdGVyKShjb25zdCBjaGFyICosIHN0cnVjdCBkaXJlbnQgKikpOwogYm9vbCBsc2Rpcl9ub19kb3RfZmlsdGVyKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBkaXJlbnQgKmQpOwotaW50IGNvcHlmaWxlKGNvbnN0IGNoYXIgKmZyb20sIGNvbnN0IGNoYXIgKnRvKTsKLWludCBjb3B5ZmlsZV9tb2RlKGNvbnN0IGNoYXIgKmZyb20sIGNvbnN0IGNoYXIgKnRvLCBtb2RlX3QgbW9kZSk7Ci1pbnQgY29weWZpbGVfbnMoY29uc3QgY2hhciAqZnJvbSwgY29uc3QgY2hhciAqdG8sIHN0cnVjdCBuc2luZm8gKm5zaSk7Ci1pbnQgY29weWZpbGVfb2Zmc2V0KGludCBpZmQsIGxvZmZfdCBvZmZfaW4sIGludCBvZmQsIGxvZmZfdCBvZmZfb3V0LCB1NjQgc2l6ZSk7CiAKIHNpemVfdCBoZXhfd2lkdGgodTY0IHYpOwogCi1leHRlcm4gdW5zaWduZWQgaW50IHBhZ2Vfc2l6ZTsKLQogaW50IHN5c2N0bF9fbWF4X3N0YWNrKHZvaWQpOwogCiBpbnQgZmV0Y2hfa2VybmVsX3ZlcnNpb24odW5zaWduZWQgaW50ICpwdWludCwKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC92ZHNvLmMgYi90b29scy9wZXJmL3V0aWwvdmRzby5jCmluZGV4IGU1ZTY1OTkuLmJhNGI0MzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC92ZHNvLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL3Zkc28uYwpAQCAtMTEsNyArMTEsNyBAQAogCiAjaW5jbHVkZSAidmRzby5oIgogI2luY2x1ZGUgImRzby5oIgotI2luY2x1ZGUgInV0aWwuaCIKKyNpbmNsdWRlIDxpbnRlcm5hbC9saWIuaD4KICNpbmNsdWRlICJtYXAuaCIKICNpbmNsdWRlICJzeW1ib2wuaCIKICNpbmNsdWRlICJtYWNoaW5lLmgiCmRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvemxpYi5jIGIvdG9vbHMvcGVyZi91dGlsL3psaWIuYwppbmRleCA1OWQ0NTZmLi43OGQyMjk3IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvemxpYi5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC96bGliLmMKQEAgLTcsMTEgKzcsOSBAQAogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CiAjaW5jbHVkZSA8emxpYi5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwvbGliLmg+CiAKICNpbmNsdWRlICJ1dGlsL2NvbXByZXNzLmgiCi0jaW5jbHVkZSAidXRpbC91dGlsLmgiCi0jaW5jbHVkZSAidXRpbC9kZWJ1Zy5oIgotCiAKICNkZWZpbmUgQ0hVTktfU0laRSAgMTYzODQKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcG93ZXIveDg2L2ludGVsLXNwZWVkLXNlbGVjdC9pc3N0LWNvbmZpZy5jIGIvdG9vbHMvcG93ZXIveDg2L2ludGVsLXNwZWVkLXNlbGVjdC9pc3N0LWNvbmZpZy5jCmluZGV4IDU5NzUzYjMuLjJhOTg5MGM4IDEwMDY0NAotLS0gYS90b29scy9wb3dlci94ODYvaW50ZWwtc3BlZWQtc2VsZWN0L2lzc3QtY29uZmlnLmMKKysrIGIvdG9vbHMvcG93ZXIveDg2L2ludGVsLXNwZWVkLXNlbGVjdC9pc3N0LWNvbmZpZy5jCkBAIC0zOCw2ICszOCw3IEBAIHN0YXRpYyBpbnQgZmFjdF9hdnggPSAweEZGOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBmYWN0X3RybDsKIHN0YXRpYyBpbnQgb3V0X2Zvcm1hdF9qc29uOwogc3RhdGljIGludCBjbWRfaGVscDsKK3N0YXRpYyBpbnQgZm9yY2Vfb25saW5lX29mZmxpbmU7CiAKIC8qIGNsb3MgcmVsYXRlZCAqLwogc3RhdGljIGludCBjdXJyZW50X2Nsb3MgPSAtMTsKQEAgLTEzOCwxNCArMTM5LDE0IEBAIGludCBvdXRfZm9ybWF0X2lzX2pzb24odm9pZCkKIGludCBnZXRfcGh5c2ljYWxfcGFja2FnZV9pZChpbnQgY3B1KQogewogCXJldHVybiBwYXJzZV9pbnRfZmlsZSgKLQkJMSwgIi9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdSVkL3RvcG9sb2d5L3BoeXNpY2FsX3BhY2thZ2VfaWQiLAorCQkwLCAiL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1JWQvdG9wb2xvZ3kvcGh5c2ljYWxfcGFja2FnZV9pZCIsCiAJCWNwdSk7CiB9CiAKIGludCBnZXRfcGh5c2ljYWxfY29yZV9pZChpbnQgY3B1KQogewogCXJldHVybiBwYXJzZV9pbnRfZmlsZSgKLQkJMSwgIi9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdSVkL3RvcG9sb2d5L2NvcmVfaWQiLCBjcHUpOworCQkwLCAiL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1JWQvdG9wb2xvZ3kvY29yZV9pZCIsIGNwdSk7CiB9CiAKIGludCBnZXRfcGh5c2ljYWxfZGllX2lkKGludCBjcHUpCkBAIC0xNjUsNiArMTY2LDI2IEBAIGludCBnZXRfdG9wb19tYXhfY3B1cyh2b2lkKQogCXJldHVybiB0b3BvX21heF9jcHVzOwogfQogCitzdGF0aWMgdm9pZCBzZXRfY3B1X29ubGluZV9vZmZsaW5lKGludCBjcHUsIGludCBzdGF0ZSkKK3sKKwljaGFyIGJ1ZmZlclsxMjhdOworCWludCBmZDsKKworCXNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksCisJCSAiL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1JWQvb25saW5lIiwgY3B1KTsKKworCWZkID0gb3BlbihidWZmZXIsIE9fV1JPTkxZKTsKKwlpZiAoZmQgPCAwKQorCQllcnIoLTEsICIlcyBvcGVuIGZhaWxlZCIsIGJ1ZmZlcik7CisKKwlpZiAoc3RhdGUpCisJCXdyaXRlKGZkLCAiMVxuIiwgMik7CisJZWxzZQorCQl3cml0ZShmZCwgIjBcbiIsIDIpOworCisJY2xvc2UoZmQpOworfQorCiAjZGVmaW5lIE1BWF9QQUNLQUdFX0NPVU5UIDgKICNkZWZpbmUgTUFYX0RJRV9QRVJfUEFDS0FHRSAyCiBzdGF0aWMgdm9pZCBmb3JfZWFjaF9vbmxpbmVfcGFja2FnZV9pbl9zZXQodm9pZCAoKmNhbGxiYWNrKShpbnQsIHZvaWQgKiwgdm9pZCAqLApAQCAtNDAyLDYgKzQyMyw5IEBAIHZvaWQgc2V0X2NwdV9tYXNrX2Zyb21fcHVuaXRfY29yZW1hc2soaW50IGNwdSwgdW5zaWduZWQgbG9uZyBsb25nIGNvcmVfbWFzaywKIAkJCWludCBqOwogCiAJCQlmb3IgKGogPSAwOyBqIDwgdG9wb19tYXhfY3B1czsgKytqKSB7CisJCQkJaWYgKCFDUFVfSVNTRVRfUyhqLCBwcmVzZW50X2NwdW1hc2tfc2l6ZSwgcHJlc2VudF9jcHVtYXNrKSkKKwkJCQkJY29udGludWU7CisKIAkJCQlpZiAoY3B1X21hcFtqXS5wa2dfaWQgPT0gcGtnX2lkICYmCiAJCQkJICAgIGNwdV9tYXBbal0uZGllX2lkID09IGRpZV9pZCAmJgogCQkJCSAgICBjcHVfbWFwW2pdLnB1bml0X2NwdV9jb3JlID09IGkpIHsKQEAgLTQ4NCw3ICs1MDgsNyBAQCBpbnQgaXNzdF9zZW5kX21ib3hfY29tbWFuZCh1bnNpZ25lZCBpbnQgY3B1LCB1bnNpZ25lZCBjaGFyIGNvbW1hbmQsCiAJCWludCB3cml0ZSA9IDA7CiAJCWludCBjbG9zX2lkLCBjb3JlX2lkLCByZXQgPSAwOwogCi0JCWRlYnVnX3ByaW50ZigiQ0xPUyAlZFxuIiwgY3B1KTsKKwkJZGVidWdfcHJpbnRmKCJDUFUgJWRcbiIsIGNwdSk7CiAKIAkJaWYgKHBhcmFtZXRlciAmIEJJVChNQk9YX0NNRF9XUklURV9CSVQpKSB7CiAJCQl2YWx1ZSA9IHJlcV9kYXRhOwpAQCAtNjQ5LDggKzY3Myw4IEBAIHN0YXRpYyB2b2lkIGV4ZWNfb25fZ2V0X2N0ZHBfY3B1KGludCBjcHUsIHZvaWQgKmFyZzEsIHZvaWQgKmFyZzIsIHZvaWQgKmFyZzMsCiAJaWYgKHJldCkKIAkJcGVycm9yKCJnZXRfdGRwXyoiKTsKIAllbHNlCi0JCWlzc3RfZGlzcGxheV9yZXN1bHQoY3B1LCBvdXRmLCAicGVyZi1wcm9maWxlIiwgKGNoYXIgKilhcmczLAotCQkJCSAgICAqKHVuc2lnbmVkIGludCAqKWFyZzQpOworCQlpc3N0X2N0ZHBfZGlzcGxheV9jb3JlX2luZm8oY3B1LCBvdXRmLCBhcmczLAorCQkJCQkgICAgKih1bnNpZ25lZCBpbnQgKilhcmc0KTsKIH0KIAogI2RlZmluZSBfZ2V0X3RkcF9sZXZlbChkZXNjLCBzdWZmaXgsIG9iamVjdCwgaGVscCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTczMyw5ICs3NTcsMzQgQEAgc3RhdGljIHZvaWQgc2V0X3RkcF9sZXZlbF9mb3JfY3B1KGludCBjcHUsIHZvaWQgKmFyZzEsIHZvaWQgKmFyZzIsIHZvaWQgKmFyZzMsCiAJcmV0ID0gaXNzdF9zZXRfdGRwX2xldmVsKGNwdSwgdGRwX2xldmVsKTsKIAlpZiAocmV0KQogCQlwZXJyb3IoInNldF90ZHBfbGV2ZWxfZm9yX2NwdSIpOwotCWVsc2UKKwllbHNlIHsKIAkJaXNzdF9kaXNwbGF5X3Jlc3VsdChjcHUsIG91dGYsICJwZXJmLXByb2ZpbGUiLCAic2V0X3RkcF9sZXZlbCIsCiAJCQkJICAgIHJldCk7CisJCWlmIChmb3JjZV9vbmxpbmVfb2ZmbGluZSkgeworCQkJc3RydWN0IGlzc3RfcGtnX2N0ZHBfbGV2ZWxfaW5mbyBjdGRwX2xldmVsOworCQkJaW50IHBrZ19pZCA9IGdldF9waHlzaWNhbF9wYWNrYWdlX2lkKGNwdSk7CisJCQlpbnQgZGllX2lkID0gZ2V0X3BoeXNpY2FsX2RpZV9pZChjcHUpOworCisJCQlmcHJpbnRmKHN0ZGVyciwgIk9wdGlvbiBpcyBzZXQgdG8gb25saW5lL29mZmxpbmVcbiIpOworCQkJY3RkcF9sZXZlbC5jb3JlX2NwdW1hc2tfc2l6ZSA9CisJCQkJYWxsb2NfY3B1X3NldCgmY3RkcF9sZXZlbC5jb3JlX2NwdW1hc2spOworCQkJaXNzdF9nZXRfY29yZW1hc2tfaW5mbyhjcHUsIHRkcF9sZXZlbCwgJmN0ZHBfbGV2ZWwpOworCQkJaWYgKGN0ZHBfbGV2ZWwuY3B1X2NvdW50KSB7CisJCQkJaW50IGksIG1heF9jcHVzID0gZ2V0X3RvcG9fbWF4X2NwdXMoKTsKKwkJCQlmb3IgKGkgPSAwOyBpIDwgbWF4X2NwdXM7ICsraSkgeworCQkJCQlpZiAocGtnX2lkICE9IGdldF9waHlzaWNhbF9wYWNrYWdlX2lkKGkpIHx8IGRpZV9pZCAhPSBnZXRfcGh5c2ljYWxfZGllX2lkKGkpKQorCQkJCQkJY29udGludWU7CisJCQkJCWlmIChDUFVfSVNTRVRfUyhpLCBjdGRwX2xldmVsLmNvcmVfY3B1bWFza19zaXplLCBjdGRwX2xldmVsLmNvcmVfY3B1bWFzaykpIHsKKwkJCQkJCWZwcmludGYoc3RkZXJyLCAib25saW5lIGNwdSAlZFxuIiwgaSk7CisJCQkJCQlzZXRfY3B1X29ubGluZV9vZmZsaW5lKGksIDEpOworCQkJCQl9IGVsc2UgeworCQkJCQkJZnByaW50ZihzdGRlcnIsICJvZmZsaW5lIGNwdSAlZFxuIiwgaSk7CisJCQkJCQlzZXRfY3B1X29ubGluZV9vZmZsaW5lKGksIDApOworCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CisJfQogfQogCiBzdGF0aWMgdm9pZCBzZXRfdGRwX2xldmVsKHZvaWQpCkBAIC03NDQsNiArNzkzLDggQEAgc3RhdGljIHZvaWQgc2V0X3RkcF9sZXZlbCh2b2lkKQogCQlmcHJpbnRmKHN0ZGVyciwgIlNldCBDb25maWcgVERQIGxldmVsXG4iKTsKIAkJZnByaW50ZihzdGRlcnIsCiAJCQkiXHQgQXJndW1lbnRzOiAtbHwtLWxldmVsIDogU3BlY2lmeSB0ZHAgbGV2ZWxcbiIpOworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCSJcdCBPcHRpb25hbCBBcmd1bWVudHM6IC1vIHwgb25saW5lIDogb25saW5lL29mZmxpbmUgZm9yIHRoZSB0ZHAgbGV2ZWxcbiIpOwogCQlleGl0KDApOwogCX0KIApAQCAtMTA4Miw2ICsxMTMzLDQwIEBAIHN0YXRpYyB2b2lkIGR1bXBfY2xvc19jb25maWcodm9pZCkKIAlpc3N0X2N0ZHBfZGlzcGxheV9pbmZvcm1hdGlvbl9lbmQob3V0Zik7CiB9CiAKK3N0YXRpYyB2b2lkIGdldF9jbG9zX2luZm9fZm9yX2NwdShpbnQgY3B1LCB2b2lkICphcmcxLCB2b2lkICphcmcyLCB2b2lkICphcmczLAorCQkJCSAgdm9pZCAqYXJnNCkKK3sKKwlpbnQgZW5hYmxlLCByZXQsIHByaW9fdHlwZTsKKworCXJldCA9IGlzc3RfY2xvc19nZXRfY2xvc19pbmZvcm1hdGlvbihjcHUsICZlbmFibGUsICZwcmlvX3R5cGUpOworCWlmIChyZXQpCisJCXBlcnJvcigiaXNzdF9jbG9zX2dldF9pbmZvIik7CisJZWxzZQorCQlpc3N0X2Nsb3NfZGlzcGxheV9jbG9zX2luZm9ybWF0aW9uKGNwdSwgb3V0ZiwgZW5hYmxlLCBwcmlvX3R5cGUpOworfQorCitzdGF0aWMgdm9pZCBkdW1wX2Nsb3NfaW5mbyh2b2lkKQoreworCWlmIChjbWRfaGVscCkgeworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCSJQcmludCBJbnRlbCBTcGVlZCBTZWxlY3QgVGVjaG5vbG9neSBjb3JlIHBvd2VyIGluZm9ybWF0aW9uXG4iKTsKKwkJZnByaW50ZihzdGRlcnIsICJcdFNwZWNpZnkgdGFyZ2V0ZWQgY3B1IGlkIHdpdGggWy0tY3B1fC1jXVxuIik7CisJCWV4aXQoMCk7CisJfQorCisJaWYgKCFtYXhfdGFyZ2V0X2NwdXMpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJCQkiSW52YWxpZCB0YXJnZXQgY3B1LiBTcGVjaWZ5IHdpdGggWy1jfC0tY3B1XVxuIik7CisJCWV4aXQoMCk7CisJfQorCisJaXNzdF9jdGRwX2Rpc3BsYXlfaW5mb3JtYXRpb25fc3RhcnQob3V0Zik7CisJZm9yX2VhY2hfb25saW5lX3RhcmdldF9jcHVfaW5fc2V0KGdldF9jbG9zX2luZm9fZm9yX2NwdSwgTlVMTCwKKwkJCQkJICBOVUxMLCBOVUxMLCBOVUxMKTsKKwlpc3N0X2N0ZHBfZGlzcGxheV9pbmZvcm1hdGlvbl9lbmQob3V0Zik7CisKK30KKwogc3RhdGljIHZvaWQgc2V0X2Nsb3NfY29uZmlnX2Zvcl9jcHUoaW50IGNwdSwgdm9pZCAqYXJnMSwgdm9pZCAqYXJnMiwgdm9pZCAqYXJnMywKIAkJCQkgICAgdm9pZCAqYXJnNCkKIHsKQEAgLTExOTgsNyArMTI4Myw3IEBAIHN0YXRpYyB2b2lkIGdldF9jbG9zX2Fzc29jX2Zvcl9jcHUoaW50IGNwdSwgdm9pZCAqYXJnMSwgdm9pZCAqYXJnMiwgdm9pZCAqYXJnMywKIAlpZiAocmV0KQogCQlwZXJyb3IoImlzc3RfY2xvc19nZXRfYXNzb2Nfc3RhdHVzIik7CiAJZWxzZQotCQlpc3N0X2Rpc3BsYXlfcmVzdWx0KGNwdSwgb3V0ZiwgImNvcmUtcG93ZXIiLCAiZ2V0LWFzc29jIiwgY2xvcyk7CisJCWlzc3RfY2xvc19kaXNwbGF5X2Fzc29jX2luZm9ybWF0aW9uKGNwdSwgb3V0ZiwgY2xvcyk7CiB9CiAKIHN0YXRpYyB2b2lkIGdldF9jbG9zX2Fzc29jKHZvaWQpCkBAIC0xMjA4LDEzICsxMjkzLDE3IEBAIHN0YXRpYyB2b2lkIGdldF9jbG9zX2Fzc29jKHZvaWQpCiAJCWZwcmludGYoc3RkZXJyLCAiXHRTcGVjaWZ5IHRhcmdldGVkIGNwdSBpZCB3aXRoIFstLWNwdXwtY11cbiIpOwogCQlleGl0KDApOwogCX0KLQlpZiAobWF4X3RhcmdldF9jcHVzKQotCQlmb3JfZWFjaF9vbmxpbmVfdGFyZ2V0X2NwdV9pbl9zZXQoZ2V0X2Nsb3NfYXNzb2NfZm9yX2NwdSwgTlVMTCwKLQkJCQkJCSAgTlVMTCwgTlVMTCwgTlVMTCk7Ci0JZWxzZSB7CisKKwlpZiAoIW1heF90YXJnZXRfY3B1cykgewogCQlmcHJpbnRmKHN0ZGVyciwKIAkJCSJJbnZhbGlkIHRhcmdldCBjcHUuIFNwZWNpZnkgd2l0aCBbLWN8LS1jcHVdXG4iKTsKKwkJZXhpdCgwKTsKIAl9CisKKwlpc3N0X2N0ZHBfZGlzcGxheV9pbmZvcm1hdGlvbl9zdGFydChvdXRmKTsKKwlmb3JfZWFjaF9vbmxpbmVfdGFyZ2V0X2NwdV9pbl9zZXQoZ2V0X2Nsb3NfYXNzb2NfZm9yX2NwdSwgTlVMTCwKKwkJCQkJICBOVUxMLCBOVUxMLCBOVUxMKTsKKwlpc3N0X2N0ZHBfZGlzcGxheV9pbmZvcm1hdGlvbl9lbmQob3V0Zik7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgcHJvY2Vzc19jbWRfc3RydWN0IGlzc3RfY21kc1tdID0gewpAQCAtMTIzMSwxMCArMTMyMCwxMSBAQCBzdGF0aWMgc3RydWN0IHByb2Nlc3NfY21kX3N0cnVjdCBpc3N0X2NtZHNbXSA9IHsKIAl7ICJ0dXJiby1mcmVxIiwgImluZm8iLCBkdW1wX2ZhY3RfY29uZmlnIH0sCiAJeyAidHVyYm8tZnJlcSIsICJlbmFibGUiLCBzZXRfZmFjdF9lbmFibGUgfSwKIAl7ICJ0dXJiby1mcmVxIiwgImRpc2FibGUiLCBzZXRfZmFjdF9kaXNhYmxlIH0sCi0JeyAiY29yZS1wb3dlciIsICJpbmZvIiwgZHVtcF9jbG9zX2NvbmZpZyB9LAorCXsgImNvcmUtcG93ZXIiLCAiaW5mbyIsIGR1bXBfY2xvc19pbmZvIH0sCiAJeyAiY29yZS1wb3dlciIsICJlbmFibGUiLCBzZXRfY2xvc19lbmFibGUgfSwKIAl7ICJjb3JlLXBvd2VyIiwgImRpc2FibGUiLCBzZXRfY2xvc19kaXNhYmxlIH0sCiAJeyAiY29yZS1wb3dlciIsICJjb25maWciLCBzZXRfY2xvc19jb25maWcgfSwKKwl7ICJjb3JlLXBvd2VyIiwgImdldC1jb25maWciLCBkdW1wX2Nsb3NfY29uZmlnIH0sCiAJeyAiY29yZS1wb3dlciIsICJhc3NvYyIsIHNldF9jbG9zX2Fzc29jIH0sCiAJeyAiY29yZS1wb3dlciIsICJnZXQtYXNzb2MiLCBnZXRfY2xvc19hc3NvYyB9LAogCXsgTlVMTCwgTlVMTCwgTlVMTCB9CkBAIC0xMzE2LDYgKzE0MDYsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9jbWRfYXJncyhpbnQgYXJnYywgaW50IHN0YXJ0LCBjaGFyICoqYXJndikKIAlzdGF0aWMgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9IHsKIAkJeyAiYnVja2V0IiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdiJyB9LAogCQl7ICJsZXZlbCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnbCcgfSwKKwkJeyAib25saW5lIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdvJyB9LAogCQl7ICJ0cmwtdHlwZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAncicgfSwKIAkJeyAidHJsIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICd0JyB9LAogCQl7ICJoZWxwIiwgbm9fYXJndW1lbnQsIDAsICdoJyB9LApAQCAtMTMzMiw3ICsxNDIzLDcgQEAgc3RhdGljIHZvaWQgcGFyc2VfY21kX2FyZ3MoaW50IGFyZ2MsIGludCBzdGFydCwgY2hhciAqKmFyZ3YpCiAJb3B0aW9uX2luZGV4ID0gc3RhcnQ7CiAKIAlvcHRpbmQgPSBzdGFydCArIDE7Ci0Jd2hpbGUgKChvcHQgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYjpsOnQ6YzpkOmU6bjptOnA6dzpoIiwKKwl3aGlsZSAoKG9wdCA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJiOmw6dDpjOmQ6ZTpuOm06cDp3OmhvIiwKIAkJCQkgIGxvbmdfb3B0aW9ucywgJm9wdGlvbl9pbmRleCkpICE9IC0xKSB7CiAJCXN3aXRjaCAob3B0KSB7CiAJCWNhc2UgJ2InOgpAQCAtMTM0NCw2ICsxNDM1LDkgQEAgc3RhdGljIHZvaWQgcGFyc2VfY21kX2FyZ3MoaW50IGFyZ2MsIGludCBzdGFydCwgY2hhciAqKmFyZ3YpCiAJCWNhc2UgJ2wnOgogCQkJdGRwX2xldmVsID0gYXRvaShvcHRhcmcpOwogCQkJYnJlYWs7CisJCWNhc2UgJ28nOgorCQkJZm9yY2Vfb25saW5lX29mZmxpbmUgPSAxOworCQkJYnJlYWs7CiAJCWNhc2UgJ3QnOgogCQkJc3NjYW5mKG9wdGFyZywgIjB4JWxseCIsICZmYWN0X3RybCk7CiAJCQlicmVhazsKQEAgLTEzNjIsNyArMTQ1Niw2IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2NtZF9hcmdzKGludCBhcmdjLCBpbnQgc3RhcnQsIGNoYXIgKiphcmd2KQogCQkvKiBDTE9TIHJlbGF0ZWQgKi8KIAkJY2FzZSAnYyc6CiAJCQljdXJyZW50X2Nsb3MgPSBhdG9pKG9wdGFyZyk7Ci0JCQlwcmludGYoImNsb3MgJWRcbiIsIGN1cnJlbnRfY2xvcyk7CiAJCQlicmVhazsKIAkJY2FzZSAnZCc6CiAJCQljbG9zX2Rlc2lyZWQgPSBhdG9pKG9wdGFyZyk7CkBAIC0xNDMzLDYgKzE1MjYsNyBAQCBzdGF0aWMgdm9pZCBjb3JlX3Bvd2VyX2hlbHAodm9pZCkKIAlwcmludGYoIlx0ZW5hYmxlXG4iKTsKIAlwcmludGYoIlx0ZGlzYWJsZVxuIik7CiAJcHJpbnRmKCJcdGNvbmZpZ1xuIik7CisJcHJpbnRmKCJcdGdldC1jb25maWdcbiIpOwogCXByaW50ZigiXHRhc3NvY1xuIik7CiAJcHJpbnRmKCJcdGdldC1hc3NvY1xuIik7CiB9CmRpZmYgLS1naXQgYS90b29scy9wb3dlci94ODYvaW50ZWwtc3BlZWQtc2VsZWN0L2lzc3QtY29yZS5jIGIvdG9vbHMvcG93ZXIveDg2L2ludGVsLXNwZWVkLXNlbGVjdC9pc3N0LWNvcmUuYwppbmRleCAwYmYzNDFhLi42ZGVlNTMzIDEwMDY0NAotLS0gYS90b29scy9wb3dlci94ODYvaW50ZWwtc3BlZWQtc2VsZWN0L2lzc3QtY29yZS5jCisrKyBiL3Rvb2xzL3Bvd2VyL3g4Ni9pbnRlbC1zcGVlZC1zZWxlY3QvaXNzdC1jb3JlLmMKQEAgLTYxOSw2ICs2MTksMzEgQEAgaW50IGlzc3RfZ2V0X3Byb2Nlc3NfY3RkcChpbnQgY3B1LCBpbnQgdGRwX2xldmVsLCBzdHJ1Y3QgaXNzdF9wa2dfY3RkcCAqcGtnX2RldikKIAlyZXR1cm4gMDsKIH0KIAoraW50IGlzc3RfY2xvc19nZXRfY2xvc19pbmZvcm1hdGlvbihpbnQgY3B1LCBpbnQgKmVuYWJsZSwgaW50ICp0eXBlKQoreworCXVuc2lnbmVkIGludCByZXNwOworCWludCByZXQ7CisKKwlyZXQgPSBpc3N0X3NlbmRfbWJveF9jb21tYW5kKGNwdSwgQ09ORklHX0NMT1MsIENMT1NfUE1fUU9TX0NPTkZJRywgMCwgMCwKKwkJCQkgICAgICZyZXNwKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJZGVidWdfcHJpbnRmKCJjcHU6JWQgQ0xPU19QTV9RT1NfQ09ORklHIHJlc3A6JXhcbiIsIGNwdSwgcmVzcCk7CisKKwlpZiAocmVzcCAmIEJJVCgxKSkKKwkJKmVuYWJsZSA9IDE7CisJZWxzZQorCQkqZW5hYmxlID0gMDsKKworCWlmIChyZXNwICYgQklUKDIpKQorCQkqdHlwZSA9IDE7CisJZWxzZQorCQkqdHlwZSA9IDA7CisKKwlyZXR1cm4gMDsKK30KKwogaW50IGlzc3RfcG1fcW9zX2NvbmZpZyhpbnQgY3B1LCBpbnQgZW5hYmxlX2Nsb3MsIGludCBwcmlvcml0eV90eXBlKQogewogCXVuc2lnbmVkIGludCByZXEsIHJlc3A7CmRpZmYgLS1naXQgYS90b29scy9wb3dlci94ODYvaW50ZWwtc3BlZWQtc2VsZWN0L2lzc3QtZGlzcGxheS5jIGIvdG9vbHMvcG93ZXIveDg2L2ludGVsLXNwZWVkLXNlbGVjdC9pc3N0LWRpc3BsYXkuYwppbmRleCBkZjRhYTk5Li40MDM0NmQ1IDEwMDY0NAotLS0gYS90b29scy9wb3dlci94ODYvaW50ZWwtc3BlZWQtc2VsZWN0L2lzc3QtZGlzcGxheS5jCisrKyBiL3Rvb2xzL3Bvd2VyL3g4Ni9pbnRlbC1zcGVlZC1zZWxlY3QvaXNzdC1kaXNwbGF5LmMKQEAgLTI4Nyw2ICsyODcsMjYgQEAgc3RhdGljIHZvaWQgX2lzc3RfZmFjdF9kaXNwbGF5X2luZm9ybWF0aW9uKGludCBjcHUsIEZJTEUgKm91dGYsIGludCBsZXZlbCwKIAlmb3JtYXRfYW5kX3ByaW50KG91dGYsIGJhc2VfbGV2ZWwgKyAyLCBoZWFkZXIsIHZhbHVlKTsKIH0KIAordm9pZCBpc3N0X2N0ZHBfZGlzcGxheV9jb3JlX2luZm8oaW50IGNwdSwgRklMRSAqb3V0ZiwgY2hhciAqcHJlZml4LAorCQkJCSB1bnNpZ25lZCBpbnQgdmFsKQoreworCWNoYXIgaGVhZGVyWzI1Nl07CisJY2hhciB2YWx1ZVsyNTZdOworCisJc25wcmludGYoaGVhZGVyLCBzaXplb2YoaGVhZGVyKSwgInBhY2thZ2UtJWQiLAorCQkgZ2V0X3BoeXNpY2FsX3BhY2thZ2VfaWQoY3B1KSk7CisJZm9ybWF0X2FuZF9wcmludChvdXRmLCAxLCBoZWFkZXIsIE5VTEwpOworCXNucHJpbnRmKGhlYWRlciwgc2l6ZW9mKGhlYWRlciksICJkaWUtJWQiLCBnZXRfcGh5c2ljYWxfZGllX2lkKGNwdSkpOworCWZvcm1hdF9hbmRfcHJpbnQob3V0ZiwgMiwgaGVhZGVyLCBOVUxMKTsKKwlzbnByaW50ZihoZWFkZXIsIHNpemVvZihoZWFkZXIpLCAiY3B1LSVkIiwgY3B1KTsKKwlmb3JtYXRfYW5kX3ByaW50KG91dGYsIDMsIGhlYWRlciwgTlVMTCk7CisKKwlzbnByaW50Zih2YWx1ZSwgc2l6ZW9mKHZhbHVlKSwgIiV1IiwgdmFsKTsKKwlmb3JtYXRfYW5kX3ByaW50KG91dGYsIDQsIHByZWZpeCwgdmFsdWUpOworCisJZm9ybWF0X2FuZF9wcmludChvdXRmLCAxLCBOVUxMLCBOVUxMKTsKK30KKwogdm9pZCBpc3N0X2N0ZHBfZGlzcGxheV9pbmZvcm1hdGlvbihpbnQgY3B1LCBGSUxFICpvdXRmLCBpbnQgdGRwX2xldmVsLAogCQkJCSAgIHN0cnVjdCBpc3N0X3BrZ19jdGRwICpwa2dfZGV2KQogewpAQCAtNTAzLDYgKzUyMyw1NyBAQCB2b2lkIGlzc3RfY2xvc19kaXNwbGF5X2luZm9ybWF0aW9uKGludCBjcHUsIEZJTEUgKm91dGYsIGludCBjbG9zLAogCWZvcm1hdF9hbmRfcHJpbnQob3V0ZiwgMSwgTlVMTCwgTlVMTCk7CiB9CiAKK3ZvaWQgaXNzdF9jbG9zX2Rpc3BsYXlfY2xvc19pbmZvcm1hdGlvbihpbnQgY3B1LCBGSUxFICpvdXRmLAorCQkJCQlpbnQgY2xvc19lbmFibGUsIGludCB0eXBlKQoreworCWNoYXIgaGVhZGVyWzI1Nl07CisJY2hhciB2YWx1ZVsyNTZdOworCisJc25wcmludGYoaGVhZGVyLCBzaXplb2YoaGVhZGVyKSwgInBhY2thZ2UtJWQiLAorCQkgZ2V0X3BoeXNpY2FsX3BhY2thZ2VfaWQoY3B1KSk7CisJZm9ybWF0X2FuZF9wcmludChvdXRmLCAxLCBoZWFkZXIsIE5VTEwpOworCXNucHJpbnRmKGhlYWRlciwgc2l6ZW9mKGhlYWRlciksICJkaWUtJWQiLCBnZXRfcGh5c2ljYWxfZGllX2lkKGNwdSkpOworCWZvcm1hdF9hbmRfcHJpbnQob3V0ZiwgMiwgaGVhZGVyLCBOVUxMKTsKKwlzbnByaW50ZihoZWFkZXIsIHNpemVvZihoZWFkZXIpLCAiY3B1LSVkIiwgY3B1KTsKKwlmb3JtYXRfYW5kX3ByaW50KG91dGYsIDMsIGhlYWRlciwgTlVMTCk7CisKKwlzbnByaW50ZihoZWFkZXIsIHNpemVvZihoZWFkZXIpLCAiY29yZS1wb3dlciIpOworCWZvcm1hdF9hbmRfcHJpbnQob3V0ZiwgNCwgaGVhZGVyLCBOVUxMKTsKKworCXNucHJpbnRmKGhlYWRlciwgc2l6ZW9mKGhlYWRlciksICJlbmFibGUtc3RhdHVzIik7CisJc25wcmludGYodmFsdWUsIHNpemVvZih2YWx1ZSksICIlZCIsIGNsb3NfZW5hYmxlKTsKKwlmb3JtYXRfYW5kX3ByaW50KG91dGYsIDUsIGhlYWRlciwgdmFsdWUpOworCisJc25wcmludGYoaGVhZGVyLCBzaXplb2YoaGVhZGVyKSwgInByaW9yaXR5LXR5cGUiKTsKKwlzbnByaW50Zih2YWx1ZSwgc2l6ZW9mKHZhbHVlKSwgIiVkIiwgdHlwZSk7CisJZm9ybWF0X2FuZF9wcmludChvdXRmLCA1LCBoZWFkZXIsIHZhbHVlKTsKKworCWZvcm1hdF9hbmRfcHJpbnQob3V0ZiwgMSwgTlVMTCwgTlVMTCk7Cit9CisKK3ZvaWQgaXNzdF9jbG9zX2Rpc3BsYXlfYXNzb2NfaW5mb3JtYXRpb24oaW50IGNwdSwgRklMRSAqb3V0ZiwgaW50IGNsb3MpCit7CisJY2hhciBoZWFkZXJbMjU2XTsKKwljaGFyIHZhbHVlWzI1Nl07CisKKwlzbnByaW50ZihoZWFkZXIsIHNpemVvZihoZWFkZXIpLCAicGFja2FnZS0lZCIsCisJCSBnZXRfcGh5c2ljYWxfcGFja2FnZV9pZChjcHUpKTsKKwlmb3JtYXRfYW5kX3ByaW50KG91dGYsIDEsIGhlYWRlciwgTlVMTCk7CisJc25wcmludGYoaGVhZGVyLCBzaXplb2YoaGVhZGVyKSwgImRpZS0lZCIsIGdldF9waHlzaWNhbF9kaWVfaWQoY3B1KSk7CisJZm9ybWF0X2FuZF9wcmludChvdXRmLCAyLCBoZWFkZXIsIE5VTEwpOworCXNucHJpbnRmKGhlYWRlciwgc2l6ZW9mKGhlYWRlciksICJjcHUtJWQiLCBjcHUpOworCWZvcm1hdF9hbmRfcHJpbnQob3V0ZiwgMywgaGVhZGVyLCBOVUxMKTsKKworCXNucHJpbnRmKGhlYWRlciwgc2l6ZW9mKGhlYWRlciksICJnZXQtYXNzb2MiKTsKKwlmb3JtYXRfYW5kX3ByaW50KG91dGYsIDQsIGhlYWRlciwgTlVMTCk7CisKKwlzbnByaW50ZihoZWFkZXIsIHNpemVvZihoZWFkZXIpLCAiY2xvcyIpOworCXNucHJpbnRmKHZhbHVlLCBzaXplb2YodmFsdWUpLCAiJWQiLCBjbG9zKTsKKwlmb3JtYXRfYW5kX3ByaW50KG91dGYsIDUsIGhlYWRlciwgdmFsdWUpOworCisJZm9ybWF0X2FuZF9wcmludChvdXRmLCAxLCBOVUxMLCBOVUxMKTsKK30KKwogdm9pZCBpc3N0X2Rpc3BsYXlfcmVzdWx0KGludCBjcHUsIEZJTEUgKm91dGYsIGNoYXIgKmZlYXR1cmUsIGNoYXIgKmNtZCwKIAkJCSBpbnQgcmVzdWx0KQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvcG93ZXIveDg2L2ludGVsLXNwZWVkLXNlbGVjdC9pc3N0LmggYi90b29scy9wb3dlci94ODYvaW50ZWwtc3BlZWQtc2VsZWN0L2lzc3QuaAppbmRleCAyZjdmNjI3Li5kMjgwYjI3IDEwMDY0NAotLS0gYS90b29scy9wb3dlci94ODYvaW50ZWwtc3BlZWQtc2VsZWN0L2lzc3QuaAorKysgYi90b29scy9wb3dlci94ODYvaW50ZWwtc3BlZWQtc2VsZWN0L2lzc3QuaApAQCAtMTg3LDEyICsxODcsMTYgQEAgZXh0ZXJuIGludCBpc3N0X3NlbmRfbXNyX2NvbW1hbmQodW5zaWduZWQgaW50IGNwdSwgdW5zaWduZWQgaW50IGNvbW1hbmQsCiAJCQkJIGludCB3cml0ZSwgdW5zaWduZWQgbG9uZyBsb25nICpyZXFfcmVzcCk7CiAKIGV4dGVybiBpbnQgaXNzdF9nZXRfY3RkcF9sZXZlbHMoaW50IGNwdSwgc3RydWN0IGlzc3RfcGtnX2N0ZHAgKnBrZ19kZXYpOworZXh0ZXJuIGludCBpc3N0X2dldF9jb3JlbWFza19pbmZvKGludCBjcHUsIGludCBjb25maWdfaW5kZXgsCisJCQkgICBzdHJ1Y3QgaXNzdF9wa2dfY3RkcF9sZXZlbF9pbmZvICpjdGRwX2xldmVsKTsKIGV4dGVybiBpbnQgaXNzdF9nZXRfcHJvY2Vzc19jdGRwKGludCBjcHUsIGludCB0ZHBfbGV2ZWwsCiAJCQkJIHN0cnVjdCBpc3N0X3BrZ19jdGRwICpwa2dfZGV2KTsKIGV4dGVybiB2b2lkIGlzc3RfZ2V0X3Byb2Nlc3NfY3RkcF9jb21wbGV0ZShpbnQgY3B1LAogCQkJCQkgICBzdHJ1Y3QgaXNzdF9wa2dfY3RkcCAqcGtnX2Rldik7CiBleHRlcm4gdm9pZCBpc3N0X2N0ZHBfZGlzcGxheV9pbmZvcm1hdGlvbihpbnQgY3B1LCBGSUxFICpvdXRmLCBpbnQgdGRwX2xldmVsLAogCQkJCQkgIHN0cnVjdCBpc3N0X3BrZ19jdGRwICpwa2dfZGV2KTsKK2V4dGVybiB2b2lkIGlzc3RfY3RkcF9kaXNwbGF5X2NvcmVfaW5mbyhpbnQgY3B1LCBGSUxFICpvdXRmLCBjaGFyICpwcmVmaXgsCisJCQkJCXVuc2lnbmVkIGludCB2YWwpOwogZXh0ZXJuIHZvaWQgaXNzdF9jdGRwX2Rpc3BsYXlfaW5mb3JtYXRpb25fc3RhcnQoRklMRSAqb3V0Zik7CiBleHRlcm4gdm9pZCBpc3N0X2N0ZHBfZGlzcGxheV9pbmZvcm1hdGlvbl9lbmQoRklMRSAqb3V0Zik7CiBleHRlcm4gdm9pZCBpc3N0X3BiZl9kaXNwbGF5X2luZm9ybWF0aW9uKGludCBjcHUsIEZJTEUgKm91dGYsIGludCBsZXZlbCwKQEAgLTIyMywxMCArMjI3LDE0IEBAIGV4dGVybiBpbnQgaXNzdF9jbG9zX2Fzc29jaWF0ZShpbnQgY3B1LCBpbnQgY2xvcyk7CiBleHRlcm4gaW50IGlzc3RfY2xvc19nZXRfYXNzb2Nfc3RhdHVzKGludCBjcHUsIGludCAqY2xvc19pZCk7CiBleHRlcm4gdm9pZCBpc3N0X2Nsb3NfZGlzcGxheV9pbmZvcm1hdGlvbihpbnQgY3B1LCBGSUxFICpvdXRmLCBpbnQgY2xvcywKIAkJCQkJICBzdHJ1Y3QgaXNzdF9jbG9zX2NvbmZpZyAqY2xvc19jb25maWcpOwotCitleHRlcm4gdm9pZCBpc3N0X2Nsb3NfZGlzcGxheV9hc3NvY19pbmZvcm1hdGlvbihpbnQgY3B1LCBGSUxFICpvdXRmLCBpbnQgY2xvcyk7CiBleHRlcm4gaW50IGlzc3RfcmVhZF9yZWcodW5zaWduZWQgc2hvcnQgcmVnLCB1bnNpZ25lZCBpbnQgKnZhbCk7CiBleHRlcm4gaW50IGlzc3Rfd3JpdGVfcmVnKGludCByZWcsIHVuc2lnbmVkIGludCB2YWwpOwogCiBleHRlcm4gdm9pZCBpc3N0X2Rpc3BsYXlfcmVzdWx0KGludCBjcHUsIEZJTEUgKm91dGYsIGNoYXIgKmZlYXR1cmUsIGNoYXIgKmNtZCwKIAkJCQlpbnQgcmVzdWx0KTsKKworZXh0ZXJuIGludCBpc3N0X2Nsb3NfZ2V0X2Nsb3NfaW5mb3JtYXRpb24oaW50IGNwdSwgaW50ICplbmFibGUsIGludCAqdHlwZSk7CitleHRlcm4gdm9pZCBpc3N0X2Nsb3NfZGlzcGxheV9jbG9zX2luZm9ybWF0aW9uKGludCBjcHUsIEZJTEUgKm91dGYsCisJCQkJCSAgICAgICBpbnQgY2xvc19lbmFibGUsIGludCB0eXBlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9udmRpbW0vZGltbV9kZXZzLmMgYi90b29scy90ZXN0aW5nL252ZGltbS9kaW1tX2RldnMuYwppbmRleCAyZDRiYWY1Li41N2JkMjdkIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL252ZGltbS9kaW1tX2RldnMuYworKysgYi90b29scy90ZXN0aW5nL252ZGltbS9kaW1tX2RldnMuYwpAQCAtMTgsMjQgKzE4LDEzIEBAIHNzaXplX3Qgc2VjdXJpdHlfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJICogRm9yIHRoZSB0ZXN0IHZlcnNpb24gd2UgbmVlZCB0byBwb2xsIHRoZSAiaGFyZHdhcmUiIGluIG9yZGVyCiAJICogdG8gZ2V0IHRoZSB1cGRhdGVkIHN0YXR1cyBmb3IgdW5sb2NrIHRlc3RpbmcuCiAJICovCi0JbnZkaW1tLT5zZWMuc3RhdGUgPSBudmRpbW1fc2VjdXJpdHlfc3RhdGUobnZkaW1tLCBOVkRJTU1fVVNFUik7Ci0JbnZkaW1tLT5zZWMuZXh0X3N0YXRlID0gbnZkaW1tX3NlY3VyaXR5X3N0YXRlKG52ZGltbSwgTlZESU1NX01BU1RFUik7CisJbnZkaW1tLT5zZWMuZmxhZ3MgPSBudmRpbW1fc2VjdXJpdHlfZmxhZ3MobnZkaW1tLCBOVkRJTU1fVVNFUik7CiAKLQlzd2l0Y2ggKG52ZGltbS0+c2VjLnN0YXRlKSB7Ci0JY2FzZSBOVkRJTU1fU0VDVVJJVFlfRElTQUJMRUQ6CisJaWYgKHRlc3RfYml0KE5WRElNTV9TRUNVUklUWV9ESVNBQkxFRCwgJm52ZGltbS0+c2VjLmZsYWdzKSkKIAkJcmV0dXJuIHNwcmludGYoYnVmLCAiZGlzYWJsZWRcbiIpOwotCWNhc2UgTlZESU1NX1NFQ1VSSVRZX1VOTE9DS0VEOgorCWlmICh0ZXN0X2JpdChOVkRJTU1fU0VDVVJJVFlfVU5MT0NLRUQsICZudmRpbW0tPnNlYy5mbGFncykpCiAJCXJldHVybiBzcHJpbnRmKGJ1ZiwgInVubG9ja2VkXG4iKTsKLQljYXNlIE5WRElNTV9TRUNVUklUWV9MT0NLRUQ6CisJaWYgKHRlc3RfYml0KE5WRElNTV9TRUNVUklUWV9MT0NLRUQsICZudmRpbW0tPnNlYy5mbGFncykpCiAJCXJldHVybiBzcHJpbnRmKGJ1ZiwgImxvY2tlZFxuIik7Ci0JY2FzZSBOVkRJTU1fU0VDVVJJVFlfRlJPWkVOOgotCQlyZXR1cm4gc3ByaW50ZihidWYsICJmcm96ZW5cbiIpOwotCWNhc2UgTlZESU1NX1NFQ1VSSVRZX09WRVJXUklURToKLQkJcmV0dXJuIHNwcmludGYoYnVmLCAib3ZlcndyaXRlXG4iKTsKLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVOT1RUWTsKLQl9Ci0KIAlyZXR1cm4gLUVOT1RUWTsKIH0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9udmRpbW0vdGVzdC9pb21hcC5jIGIvdG9vbHMvdGVzdGluZy9udmRpbW0vdGVzdC9pb21hcC5jCmluZGV4IGNkMDQwYjUuLjNmNTVmMmYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3RpbmcvbnZkaW1tL3Rlc3QvaW9tYXAuYworKysgYi90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L2lvbWFwLmMKQEAgLTEzMiw3ICsxMzIsNiBAQCB2b2lkICpfX3dyYXBfZGV2bV9tZW1yZW1hcF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZfcGFnZW1hcCAqcGdtYXApCiAJaWYgKCFuZml0X3JlcykKIAkJcmV0dXJuIGRldm1fbWVtcmVtYXBfcGFnZXMoZGV2LCBwZ21hcCk7CiAKLQlwZ21hcC0+ZGV2ID0gZGV2OwogCWlmICghcGdtYXAtPnJlZikgewogCQlpZiAocGdtYXAtPm9wcyAmJiAocGdtYXAtPm9wcy0+a2lsbCB8fCBwZ21hcC0+b3BzLT5jbGVhbnVwKSkKIAkJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9udmRpbW0vdGVzdC9uZml0LmMgYi90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L25maXQuYwppbmRleCA1MDdlNmY0Li5iZjY0MjJhIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L25maXQuYworKysgYi90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L25maXQuYwpAQCAtNDI4LDEwICs0MjgsOSBAQCBzdGF0aWMgaW50IG5kX2ludGVsX3Rlc3RfZmluaXNoX3F1ZXJ5KHN0cnVjdCBuZml0X3Rlc3QgKnQsCiAJCQlkZXZfZGJnKGRldiwgIiVzOiBzdGlsbCB2ZXJpZnlpbmdcbiIsIF9fZnVuY19fKTsKIAkJCWJyZWFrOwogCQl9Ci0KIAkJZGV2X2RiZyhkZXYsICIlczogdHJhbnNpdGlvbiBvdXQgdmVyaWZ5XG4iLCBfX2Z1bmNfXyk7CiAJCWZ3LT5zdGF0ZSA9IEZXX1NUQVRFX1VQREFURUQ7Ci0JCS8qIHdlIGFyZSBnb2luZyB0byBmYWxsIHRocm91Z2ggaWYgaXQncyAiZG9uZSIgKi8KKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBGV19TVEFURV9VUERBVEVEOgogCQluZF9jbWQtPnN0YXR1cyA9IDA7CiAJCS8qIGJvZ3VzIHRlc3QgdmVyc2lvbiAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvLmdpdGlnbm9yZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzLy5naXRpZ25vcmUKaW5kZXggODA1OWNlOC4uNjFkZjAxYyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvLmdpdGlnbm9yZQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy8uZ2l0aWdub3JlCkBAIC0yLDMgKzIsNSBAQAogZ3Bpb2dwaW8taGFtbWVyCiBncGlvaW5jbHVkZS8KIGdwaW9sc2dwaW8KK3RwbTIvU3BhY2VUZXN0LmxvZwordHBtMi8qLnB5YwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9NYWtlZmlsZQppbmRleCAyNWI0M2E4Li5jM2ZlY2NiIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9NYWtlZmlsZQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9NYWtlZmlsZQpAQCAtMTI2LDkgKzEyNiw5IEBACiAjIGluIHRoZSBkZWZhdWx0IElOU1RBTExfSERSX1BBVEggdXNyL2luY2x1ZGUuCiBraGRyOgogaWZlcSAoMSwkKERFRkFVTFRfSU5TVEFMTF9IRFJfUEFUSCkpCi0JbWFrZSAtLW5vLWJ1aWx0aW4tcnVsZXMgQVJDSD0kKEFSQ0gpIC1DICQodG9wX3NyY2RpcikgaGVhZGVyc19pbnN0YWxsCisJJChNQUtFKSAtLW5vLWJ1aWx0aW4tcnVsZXMgQVJDSD0kKEFSQ0gpIC1DICQodG9wX3NyY2RpcikgaGVhZGVyc19pbnN0YWxsCiBlbHNlCi0JbWFrZSAtLW5vLWJ1aWx0aW4tcnVsZXMgSU5TVEFMTF9IRFJfUEFUSD0kJEJVSUxEL3VzciBcCisJJChNQUtFKSAtLW5vLWJ1aWx0aW4tcnVsZXMgSU5TVEFMTF9IRFJfUEFUSD0kJEJVSUxEL3VzciBcCiAJCUFSQ0g9JChBUkNIKSAtQyAkKHRvcF9zcmNkaXIpIGhlYWRlcnNfaW5zdGFsbAogZW5kaWYKIApAQCAtMTM2LDM1ICsxMzYsMzUgQEAKIAlAZm9yIFRBUkdFVCBpbiAkKFRBUkdFVFMpOyBkbwkJXAogCQlCVUlMRF9UQVJHRVQ9JCRCVUlMRC8kJFRBUkdFVDsJXAogCQlta2RpciAkJEJVSUxEX1RBUkdFVCAgLXA7CVwKLQkJbWFrZSBPVVRQVVQ9JCRCVUlMRF9UQVJHRVQgLUMgJCRUQVJHRVQ7XAorCQkkKE1BS0UpIE9VVFBVVD0kJEJVSUxEX1RBUkdFVCAtQyAkJFRBUkdFVDtcCiAJZG9uZTsKIAogcnVuX3Rlc3RzOiBhbGwKIAlAZm9yIFRBUkdFVCBpbiAkKFRBUkdFVFMpOyBkbyBcCiAJCUJVSUxEX1RBUkdFVD0kJEJVSUxELyQkVEFSR0VUOwlcCi0JCW1ha2UgT1VUUFVUPSQkQlVJTERfVEFSR0VUIC1DICQkVEFSR0VUIHJ1bl90ZXN0cztcCisJCSQoTUFLRSkgT1VUUFVUPSQkQlVJTERfVEFSR0VUIC1DICQkVEFSR0VUIHJ1bl90ZXN0cztcCiAJZG9uZTsKIAogaG90cGx1ZzoKIAlAZm9yIFRBUkdFVCBpbiAkKFRBUkdFVFNfSE9UUExVRyk7IGRvIFwKIAkJQlVJTERfVEFSR0VUPSQkQlVJTEQvJCRUQVJHRVQ7CVwKLQkJbWFrZSBPVVRQVVQ9JCRCVUlMRF9UQVJHRVQgLUMgJCRUQVJHRVQ7XAorCQkkKE1BS0UpIE9VVFBVVD0kJEJVSUxEX1RBUkdFVCAtQyAkJFRBUkdFVDtcCiAJZG9uZTsKIAogcnVuX2hvdHBsdWc6IGhvdHBsdWcKIAlAZm9yIFRBUkdFVCBpbiAkKFRBUkdFVFNfSE9UUExVRyk7IGRvIFwKIAkJQlVJTERfVEFSR0VUPSQkQlVJTEQvJCRUQVJHRVQ7CVwKLQkJbWFrZSBPVVRQVVQ9JCRCVUlMRF9UQVJHRVQgLUMgJCRUQVJHRVQgcnVuX2Z1bGxfdGVzdDtcCisJCSQoTUFLRSkgT1VUUFVUPSQkQlVJTERfVEFSR0VUIC1DICQkVEFSR0VUIHJ1bl9mdWxsX3Rlc3Q7XAogCWRvbmU7CiAKIGNsZWFuX2hvdHBsdWc6CiAJQGZvciBUQVJHRVQgaW4gJChUQVJHRVRTX0hPVFBMVUcpOyBkbyBcCiAJCUJVSUxEX1RBUkdFVD0kJEJVSUxELyQkVEFSR0VUOwlcCi0JCW1ha2UgT1VUUFVUPSQkQlVJTERfVEFSR0VUIC1DICQkVEFSR0VUIGNsZWFuO1wKKwkJJChNQUtFKSBPVVRQVVQ9JCRCVUlMRF9UQVJHRVQgLUMgJCRUQVJHRVQgY2xlYW47XAogCWRvbmU7CiAKIHJ1bl9wc3RvcmVfY3Jhc2g6Ci0JbWFrZSAtQyBwc3RvcmUgcnVuX2NyYXNoCisJJChNQUtFKSAtQyBwc3RvcmUgcnVuX2NyYXNoCiAKICMgVXNlICRCVUlMRCBhcyB0aGUgZGVmYXVsdCBpbnN0YWxsIHJvb3QuICRCVUlMRCBwb2ludHMgdG8gdGhlCiAjIHJpZ2h0IG91dHB1dCBsb2NhdGlvbiBmb3IgdGhlIGZvbGxvd2luZyBjYXNlczoKQEAgLTE4NCw3ICsxODQsNyBAQAogCWluc3RhbGwgLW0gNzQ0IGtzZWxmdGVzdC9wcmVmaXgucGwgJChJTlNUQUxMX1BBVEgpL2tzZWxmdGVzdC8KIAlAZm9yIFRBUkdFVCBpbiAkKFRBUkdFVFMpOyBkbyBcCiAJCUJVSUxEX1RBUkdFVD0kJEJVSUxELyQkVEFSR0VUOwlcCi0JCW1ha2UgT1VUUFVUPSQkQlVJTERfVEFSR0VUIC1DICQkVEFSR0VUIElOU1RBTExfUEFUSD0kKElOU1RBTExfUEFUSCkvJCRUQVJHRVQgaW5zdGFsbDsgXAorCQkkKE1BS0UpIE9VVFBVVD0kJEJVSUxEX1RBUkdFVCAtQyAkJFRBUkdFVCBJTlNUQUxMX1BBVEg9JChJTlNUQUxMX1BBVEgpLyQkVEFSR0VUIGluc3RhbGw7IFwKIAlkb25lOwogCiAJQCMgQXNrIGFsbCB0YXJnZXRzIHRvIGVtaXQgdGhlaXIgdGVzdCBzY3JpcHRzCkBAIC0yMDMsNyArMjAzLDcgQEAKIAkJZWNobyAiWyAtdyAvZGV2L2ttc2cgXSAmJiBlY2hvIFwia3NlbGZ0ZXN0OiBSdW5uaW5nIHRlc3RzIGluICQkVEFSR0VUXCIgPj4gL2Rldi9rbXNnIiA+PiAkKEFMTF9TQ1JJUFQpOyBcCiAJCWVjaG8gImNkICQkVEFSR0VUIiA+PiAkKEFMTF9TQ1JJUFQpOyBcCiAJCWVjaG8gLW4gInJ1bl9tYW55IiA+PiAkKEFMTF9TQ1JJUFQpOyBcCi0JCW1ha2UgLXMgLS1uby1wcmludC1kaXJlY3RvcnkgT1VUUFVUPSQkQlVJTERfVEFSR0VUIC1DICQkVEFSR0VUIGVtaXRfdGVzdHMgPj4gJChBTExfU0NSSVBUKTsgXAorCQkkKE1BS0UpIC1zIC0tbm8tcHJpbnQtZGlyZWN0b3J5IE9VVFBVVD0kJEJVSUxEX1RBUkdFVCAtQyAkJFRBUkdFVCBlbWl0X3Rlc3RzID4+ICQoQUxMX1NDUklQVCk7IFwKIAkJZWNobyAiIiA+PiAkKEFMTF9TQ1JJUFQpOwkgICAgXAogCQllY2hvICJjZCBcJCRST09UIiA+PiAkKEFMTF9TQ1JJUFQpOyBcCiAJZG9uZTsKQEAgLTIxNiw3ICsyMTYsNyBAQAogY2xlYW46CiAJQGZvciBUQVJHRVQgaW4gJChUQVJHRVRTKTsgZG8gXAogCQlCVUlMRF9UQVJHRVQ9JCRCVUlMRC8kJFRBUkdFVDsJXAotCQltYWtlIE9VVFBVVD0kJEJVSUxEX1RBUkdFVCAtQyAkJFRBUkdFVCBjbGVhbjtcCisJCSQoTUFLRSkgT1VUUFVUPSQkQlVJTERfVEFSR0VUIC1DICQkVEFSR0VUIGNsZWFuO1wKIAlkb25lOwogCiAuUEhPTlk6IGtoZHIgYWxsIHJ1bl90ZXN0cyBob3RwbHVnIHJ1bl9ob3RwbHVnIGNsZWFuX2hvdHBsdWcgcnVuX3BzdG9yZV9jcmFzaCBpbnN0YWxsIGNsZWFuCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9hcm02NC9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2FybTY0L01ha2VmaWxlCmluZGV4IGE2MWIyZTcuLmY5Zjc5ZmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2FybTY0L01ha2VmaWxlCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2FybTY0L01ha2VmaWxlCkBAIC00LDYgKzQsNyBAQAogQVJDSCA/PSAkKHNoZWxsIHVuYW1lIC1tIDI+L2Rldi9udWxsIHx8IGVjaG8gbm90KQogCiBpZm5lcSAoLCQoZmlsdGVyICQoQVJDSCksYWFyY2g2NCBhcm02NCkpCitDRkxBR1MgKz0gLUkuLi8uLi8uLi8uLi91c3IvaW5jbHVkZS8KIFRFU1RfR0VOX1BST0dTIDo9IHRhZ3NfdGVzdAogVEVTVF9QUk9HUyA6PSBydW5fdGFnc190ZXN0LnNoCiBlbmRpZgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZnRyYWNlL3Rlc3QuZC9mdW5jdGlvbnMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9mdHJhY2UvdGVzdC5kL2Z1bmN0aW9ucwppbmRleCAxZDk2YzVmLi44Njk4NmM0IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9mdHJhY2UvdGVzdC5kL2Z1bmN0aW9ucworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9mdHJhY2UvdGVzdC5kL2Z1bmN0aW9ucwpAQCAtMTE1LDcgKzExNSw3IEBACiAgICAgY29tbWFuZD0kKGVjaG8gIiQyIiB8IHRyIC1kIF4pCiAgICAgZWNobyAiVGVzdCBjb21tYW5kOiAkY29tbWFuZCIKICAgICBlY2hvID4gZXJyb3JfbG9nCi0gICAgKCEgZWNobyAiJGNvbW1hbmQiID4gIiQzIiApIDI+IC9kZXYvbnVsbAorICAgICghIGVjaG8gIiRjb21tYW5kIiA+PiAiJDMiICkgMj4gL2Rldi9udWxsCiAgICAgZ3JlcCAiJDE6IGVycm9yOiIgLUEgMyBlcnJvcl9sb2cKICAgICBOPSQodGFpbCAtbiAxIGVycm9yX2xvZyB8IHdjIC1jKQogICAgICMgIiAgQ29tbWFuZDogIiBhbmQgIl5cbiIgPT4gMTMKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Z0cmFjZS90ZXN0LmQva3Byb2JlL2twcm9iZV9ldmVudG5hbWUudGMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9mdHJhY2UvdGVzdC5kL2twcm9iZS9rcHJvYmVfZXZlbnRuYW1lLnRjCmluZGV4IDNmYjcwZTAuLjNmZjIzNjcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Z0cmFjZS90ZXN0LmQva3Byb2JlL2twcm9iZV9ldmVudG5hbWUudGMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZnRyYWNlL3Rlc3QuZC9rcHJvYmUva3Byb2JlX2V2ZW50bmFtZS50YwpAQCAtMjQsNyArMjQsMjEgQEAKIAogOjs6ICJBZGQgYW4gZXZlbnQgb24gZG90IGZ1bmN0aW9uIHdpdGhvdXQgbmFtZSIgOzoKIAotRlVOQz1gZ3JlcCAtbSAxMCAiIFt0VF0gLipcLmlzcmFcLi4qJCIgL3Byb2Mva2FsbHN5bXMgfCB0YWlsIC1uIDEgfCBjdXQgLWYgMyAtZCAiICJgCitmaW5kX2RvdF9mdW5jKCkgeworCWlmIFsgISAtZiBhdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9ucyBdOyB0aGVuCisJCWdyZXAgLW0gMTAgIiBbdFRdIC4qXC5pc3JhXC4uKiQiIC9wcm9jL2thbGxzeW1zIHwgdGFpbCAtbiAxIHwgY3V0IC1mIDMgLWQgIiAiCisJCXJldHVybjsKKwlmaQorCisJZ3JlcCAiIFt0VF0gLipcLmlzcmFcLi4qIiAvcHJvYy9rYWxsc3ltcyB8IGN1dCAtZiAzIC1kICIgIiB8IHdoaWxlIHJlYWQgZjsgZG8KKwkJaWYgZ3JlcCAtcyAkZiBhdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9uczsgdGhlbgorCQkJZWNobyAkZgorCQkJYnJlYWsKKwkJZmkKKwlkb25lCit9CisKK0ZVTkM9YGZpbmRfZG90X2Z1bmMgfCB0YWlsIC1uIDFgCiBbICJ4IiAhPSAieCRGVU5DIiBdIHx8IGV4aXRfdW5yZXNvbHZlZAogZWNobyAicCAkRlVOQyIgPiBrcHJvYmVfZXZlbnRzCiBFVkVOVD1gZ3JlcCAkRlVOQyBrcHJvYmVfZXZlbnRzIHwgY3V0IC1mIDEgLWQgIiAiIHwgY3V0IC1mIDIgLWQ6YApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZnRyYWNlL3Rlc3QuZC9rcHJvYmUva3Byb2JlX211bHRpcHJvYmUudGMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9mdHJhY2UvdGVzdC5kL2twcm9iZS9rcHJvYmVfbXVsdGlwcm9iZS50YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDQ5NGJhCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZnRyYWNlL3Rlc3QuZC9rcHJvYmUva3Byb2JlX211bHRpcHJvYmUudGMKQEAgLTAsMCArMSwzNSBAQAorIyEvYmluL3NoCisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisjIGRlc2NyaXB0aW9uOiBDcmVhdGUvZGVsZXRlIG11bHRpcHJvYmUgb24ga3Byb2JlIGV2ZW50CisKK1sgLWYga3Byb2JlX2V2ZW50cyBdIHx8IGV4aXRfdW5zdXBwb3J0ZWQKKworZ3JlcCAtcSAiQ3JlYXRlL2FwcGVuZC8iIFJFQURNRSB8fCBleGl0X3Vuc3VwcG9ydGVkCisKKyMgQ2hvb3NlIDIgc3ltYm9scyBmb3IgdGFyZ2V0CitTWU0xPV9kb19mb3JrCitTWU0yPWRvX2V4aXQKK0VWRU5UX05BTUU9a3Byb2Jlcy90ZXN0ZXZlbnQKKworREVGMT0icDokRVZFTlRfTkFNRSAkU1lNMSIKK0RFRjI9InA6JEVWRU5UX05BTUUgJFNZTTIiCisKKzo7OiAiRGVmaW5lIGFuIGV2ZW50IHdoaWNoIGhhcyAyIHByb2JlcyIgOzoKK2VjaG8gJERFRjEgPj4ga3Byb2JlX2V2ZW50cworZWNobyAkREVGMiA+PiBrcHJvYmVfZXZlbnRzCitjYXQga3Byb2JlX2V2ZW50cyB8IGdyZXAgIiRERUYxIgorY2F0IGtwcm9iZV9ldmVudHMgfCBncmVwICIkREVGMiIKKworOjs6ICJSZW1vdmUgdGhlIGV2ZW50IGJ5IG5hbWUgKHNob3VsZCByZW1vdmUgYm90aCkiIDs6CitlY2hvICItOiRFVkVOVF9OQU1FIiA+PiBrcHJvYmVfZXZlbnRzCit0ZXN0IGBjYXQga3Byb2JlX2V2ZW50cyB8IHdjIC1sYCAtZXEgMAorCis6OzogIlJlbW92ZSBqdXN0IDEgZXZlbnQiIDs6CitlY2hvICRERUYxID4+IGtwcm9iZV9ldmVudHMKK2VjaG8gJERFRjIgPj4ga3Byb2JlX2V2ZW50cworZWNobyAiLTokRVZFTlRfTkFNRSAkU1lNMSIgPj4ga3Byb2JlX2V2ZW50cworISBjYXQga3Byb2JlX2V2ZW50cyB8IGdyZXAgIiRERUYxIgorY2F0IGtwcm9iZV9ldmVudHMgfCBncmVwICIkREVGMiIKKworOjs6ICJBcHBlbmRpbmcgZGlmZmVyZW50IHR5cGUgbXVzdCBmYWlsIiA7OgorISBlY2hvICIkREVGMSBcJHN0YWNrIiA+PiBrcHJvYmVfZXZlbnRzCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9mdHJhY2UvdGVzdC5kL2twcm9iZS9rcHJvYmVfc3ludGF4X2Vycm9ycy50YyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Z0cmFjZS90ZXN0LmQva3Byb2JlL2twcm9iZV9zeW50YXhfZXJyb3JzLnRjCmluZGV4IDI5ZmFhZWMuLjhhNDAyNWUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Z0cmFjZS90ZXN0LmQva3Byb2JlL2twcm9iZV9zeW50YXhfZXJyb3JzLnRjCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Z0cmFjZS90ZXN0LmQva3Byb2JlL2twcm9iZV9zeW50YXhfZXJyb3JzLnRjCkBAIC00MSw2ICs0MSwxMSBAQAogY2hlY2tfZXJyb3IgJ3AgdmZzX3JlYWQgXkAxMjM0NTY3OGFiY2RlJwkjIEJBRF9NRU1fQUREUgogY2hlY2tfZXJyb3IgJ3AgdmZzX3JlYWQgXkArMTAnCQkjIEZJTEVfT05fS1BST0JFCiAKK2dyZXAgLXEgImltbS12YWx1ZSIgUkVBRE1FICYmIFwKK2NoZWNrX2Vycm9yICdwIHZmc19yZWFkIGFyZzE9XF54JwkjIEJBRF9JTU0KK2dyZXAgLXEgImltbS1zdHJpbmciIFJFQURNRSAmJiBcCitjaGVja19lcnJvciAncCB2ZnNfcmVhZCBhcmcxPVwiYWJjZF4nCSMgSU1NU1RSX05PX0NMT1NFCisKIGNoZWNrX2Vycm9yICdwIHZmc19yZWFkIF4rMEAwKScJCSMgREVSRUZfTkVFRF9CUkFDRQogY2hlY2tfZXJyb3IgJ3AgdmZzX3JlYWQgXiswYWIxKEAwKScJIyBCQURfREVSRUZfT0ZGUwogY2hlY2tfZXJyb3IgJ3AgdmZzX3JlYWQgKzAoKzAoQDBeKScJIyBERVJFRl9PUEVOX0JSQUNFCkBAIC04Miw0ICs4NywxNSBAQAogICAgIDs7CiBlc2FjCiAKKyMgbXVsdGlwcm9iZSBlcnJvcnMKK2lmIGdyZXAgLXEgIkNyZWF0ZS9hcHBlbmQvIiBSRUFETUUgJiYgZ3JlcCAtcSAiaW1tLXZhbHVlIiBSRUFETUU7IHRoZW4KK2VjaG8gJ3A6a3Byb2Jlcy90ZXN0ZXZlbnQgX2RvX2ZvcmsnID4ga3Byb2JlX2V2ZW50cworY2hlY2tfZXJyb3IgJ15yOmtwcm9iZXMvdGVzdGV2ZW50IGRvX2V4aXQnCSMgRElGRl9QUk9CRV9UWVBFCitlY2hvICdwOmtwcm9iZXMvdGVzdGV2ZW50IF9kb19mb3JrIGFiY2Q9XDEnID4ga3Byb2JlX2V2ZW50cworY2hlY2tfZXJyb3IgJ3A6a3Byb2Jlcy90ZXN0ZXZlbnQgX2RvX2ZvcmsgXmJjZD1cMScJIyBESUZGX0FSR19UWVBFCitjaGVja19lcnJvciAncDprcHJvYmVzL3Rlc3RldmVudCBfZG9fZm9yayBeYWJjZD1cMTp1OCcJIyBESUZGX0FSR19UWVBFCitjaGVja19lcnJvciAncDprcHJvYmVzL3Rlc3RldmVudCBfZG9fZm9yayBeYWJjZD1cImZvbyInCSMgRElGRl9BUkdfVFlQRQorY2hlY2tfZXJyb3IgJ15wOmtwcm9iZXMvdGVzdGV2ZW50IF9kb19mb3JrJwkjIFNBTUVfUFJPQkUKK2ZpCisKIGV4aXQgMApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZnRyYWNlL3Rlc3QuZC90cmlnZ2VyL3RyaWdnZXItc25hcHNob3QudGMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9mdHJhY2UvdGVzdC5kL3RyaWdnZXIvdHJpZ2dlci1zbmFwc2hvdC50YwppbmRleCA3NzE3YzBhLi5hYzczODUwIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9mdHJhY2UvdGVzdC5kL3RyaWdnZXIvdHJpZ2dlci1zbmFwc2hvdC50YworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9mdHJhY2UvdGVzdC5kL3RyaWdnZXIvdHJpZ2dlci1zbmFwc2hvdC50YwpAQCAtMjgsNyArMjgsNyBAQAogICAgIGV4aXRfdW5zdXBwb3J0ZWQKIGZpCiAKLWVjaG8gIlRlc3Qgc25hcHNob3QgdGlnZ2VyIgorZWNobyAiVGVzdCBzbmFwc2hvdCB0cmlnZ2VyIgogZWNobyAwID4gc25hcHNob3QKIGVjaG8gMSA+IGV2ZW50cy9zY2hlZC9zY2hlZF9wcm9jZXNzX2ZvcmsvZW5hYmxlCiAoIGVjaG8gImZvcmtlZCIpCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rZXhlYy90ZXN0X2tleGVjX2ZpbGVfbG9hZC5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2tleGVjL3Rlc3Rfa2V4ZWNfZmlsZV9sb2FkLnNoCmluZGV4IGZhN2MyNGUuLjJmZjYwMDMgMTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2tleGVjL3Rlc3Rfa2V4ZWNfZmlsZV9sb2FkLnNoCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2tleGVjL3Rlc3Rfa2V4ZWNfZmlsZV9sb2FkLnNoCkBAIC0zNywxMSArMzcsMjAgQEAKIAkjIHNlcXVlbnRpYWxseS4gIEFzIGEgcmVzdWx0LCBhIHBvbGljeSBydWxlIG1heSBiZSBkZWZpbmVkLCBidXQKIAkjIG1pZ2h0IG5vdCBuZWNlc3NhcmlseSBiZSB1c2VkLiAgVGhpcyB0ZXN0IGFzc3VtZXMgaWYgYSBwb2xpY3kKIAkjIHJ1bGUgaXMgc3BlY2lmaWVkLCB0aGF0IGlzIHRoZSBpbnRlbnQuCisKKwkjIEZpcnN0IGNoZWNrIGZvciBhcHBlbmRlZCBzaWduYXR1cmUgKG1vZHNpZyksIHRoZW4geGF0dHIKIAlpZiBbICRpbWFfcmVhZF9wb2xpY3kgLWVxIDEgXTsgdGhlbgogCQljaGVja19pbWFfcG9saWN5ICJhcHByYWlzZSIgImZ1bmM9S0VYRUNfS0VSTkVMX0NIRUNLIiBcCi0JCQkiYXBwcmFpc2VfdHlwZT1pbWFzaWciCisJCQkiYXBwcmFpc2VfdHlwZT1pbWFzaWd8bW9kc2lnIgogCQlyZXQ9JD8KLQkJWyAkcmV0IC1lcSAxIF0gJiYgbG9nX2luZm8gIklNQSBzaWduYXR1cmUgcmVxdWlyZWQiOworCQlpZiBbICRyZXQgLWVxIDEgXTsgdGhlbgorCQkJbG9nX2luZm8gIklNQSBvciBhcHBlbmRlZChtb2RzaWcpIHNpZ25hdHVyZSByZXF1aXJlZCIKKwkJZWxzZQorCQkJY2hlY2tfaW1hX3BvbGljeSAiYXBwcmFpc2UiICJmdW5jPUtFWEVDX0tFUk5FTF9DSEVDSyIgXAorCQkJCSJhcHByYWlzZV90eXBlPWltYXNpZyIKKwkJCXJldD0kPworCQkJWyAkcmV0IC1lcSAxIF0gJiYgbG9nX2luZm8gIklNQSBzaWduYXR1cmUgcmVxdWlyZWQiOworCQlmaQogCWZpCiAJcmV0dXJuICRyZXQKIH0KQEAgLTg0LDYgKzkzLDIyIEBACiAJcmV0dXJuICRyZXQKIH0KIAorIyBSZXR1cm4gMSBmb3IgYXBwZW5kZWQgc2lnbmF0dXJlIChtb2RzaWcpIGZvdW5kIGFuZCAwIGZvciBub3QgZm91bmQuCitjaGVja19mb3JfbW9kc2lnKCkKK3sKKwlsb2NhbCBtb2R1bGVfc2lnX3N0cmluZz0ifk1vZHVsZSBzaWduYXR1cmUgYXBwZW5kZWR+IgorCWxvY2FsIHNpZz0iJCh0YWlsIC0tYnl0ZXMgJCgoJHsjbW9kdWxlX3NpZ19zdHJpbmd9ICsgMSkpICRLRVJORUxfSU1BR0UpIgorCWxvY2FsIHJldD0wCisKKwlpZiBbICIkc2lnIiA9PSAiJG1vZHVsZV9zaWdfc3RyaW5nIiBdOyB0aGVuCisJCXJldD0xCisJCWxvZ19pbmZvICJrZXhlYyBrZXJuZWwgaW1hZ2UgbW9kc2lnIHNpZ25lZCIKKwllbHNlCisJCWxvZ19pbmZvICJrZXhlYyBrZXJuZWwgaW1hZ2Ugbm90IG1vZHNpZyBzaWduZWQiCisJZmkKKwlyZXR1cm4gJHJldAorfQorCiBrZXhlY19maWxlX2xvYWRfdGVzdCgpCiB7CiAJbG9jYWwgc3VjY2VlZF9tc2c9ImtleGVjX2ZpbGVfbG9hZCBzdWNjZWVkZWQiCkBAIC05OCw3ICsxMjMsOCBAQAogCQkjIEluIHNlY3VyZWJvb3QgbW9kZSB3aXRoIGFuIGFyY2hpdGVjdHVyZSAgc3BlY2lmaWMKIAkJIyBwb2xpY3ksIG1ha2Ugc3VyZSBlaXRoZXIgYW4gSU1BIG9yIFBFIHNpZ25hdHVyZSBleGlzdHMuCiAJCWlmIFsgJHNlY3VyZWJvb3QgLWVxIDEgXSAmJiBbICRhcmNoX3BvbGljeSAtZXEgMSBdICYmIFwKLQkJCVsgJGltYV9zaWduZWQgLWVxIDAgXSAmJiBbICRwZV9zaWduZWQgLWVxIDAgXTsgdGhlbgorCQkJWyAkaW1hX3NpZ25lZCAtZXEgMCBdICYmIFsgJHBlX3NpZ25lZCAtZXEgMCBdIFwKKwkJCSAgJiYgWyAkaW1hX21vZHNpZyAtZXEgMCBdOyB0aGVuCiAJCQlsb2dfZmFpbCAiJHN1Y2NlZWRfbXNnIChtaXNzaW5nIHNpZykiCiAJCWZpCiAKQEAgLTEwNyw3ICsxMzMsOCBAQAogCQkJbG9nX2ZhaWwgIiRzdWNjZWVkX21zZyAobWlzc2luZyBQRSBzaWcpIgogCQlmaQogCi0JCWlmIFsgJGltYV9zaWdfcmVxdWlyZWQgLWVxIDEgXSAmJiBbICRpbWFfc2lnbmVkIC1lcSAwIF07IHRoZW4KKwkJaWYgWyAkaW1hX3NpZ19yZXF1aXJlZCAtZXEgMSBdICYmIFsgJGltYV9zaWduZWQgLWVxIDAgXSBcCisJCSAgICAgJiYgWyAkaW1hX21vZHNpZyAtZXEgMCBdOyB0aGVuCiAJCQlsb2dfZmFpbCAiJHN1Y2NlZWRfbXNnIChtaXNzaW5nIElNQSBzaWcpIgogCQlmaQogCkBAIC0yMDQsNSArMjMxLDggQEAKIGNoZWNrX2Zvcl9pbWFzaWcKIGltYV9zaWduZWQ9JD8KIAorY2hlY2tfZm9yX21vZHNpZworaW1hX21vZHNpZz0kPworCiAjIFRlc3QgbG9hZGluZyB0aGUga2VybmVsIGltYWdlIHZpYSBrZXhlY19maWxlX2xvYWQgc3lzY2FsbAoga2V4ZWNfZmlsZV9sb2FkX3Rlc3QKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9kaXJ0eV9sb2dfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2RpcnR5X2xvZ190ZXN0LmMKaW5kZXggZGMzMzQ2ZS4uNTYxNDIyMiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2RpcnR5X2xvZ190ZXN0LmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2RpcnR5X2xvZ190ZXN0LmMKQEAgLTE5LDggKzE5LDYgQEAKICNpbmNsdWRlICJrdm1fdXRpbC5oIgogI2luY2x1ZGUgInByb2Nlc3Nvci5oIgogCi0jZGVmaW5lIERFQlVHIHByaW50ZgotCiAjZGVmaW5lIFZDUFVfSUQJCQkJMQogCiAvKiBUaGUgbWVtb3J5IHNsb3QgaW5kZXggdG8gdHJhY2sgZGlydHkgcGFnZXMgKi8KQEAgLTI0OSwxNCArMjQ3LDEyIEBAIHN0YXRpYyB2b2lkIHZtX2RpcnR5X2xvZ192ZXJpZnkodW5zaWduZWQgbG9uZyAqYm1hcCkKIH0KIAogc3RhdGljIHN0cnVjdCBrdm1fdm0gKmNyZWF0ZV92bShlbnVtIHZtX2d1ZXN0X21vZGUgbW9kZSwgdWludDMyX3QgdmNwdWlkLAotCQkJCXVpbnQ2NF90IGV4dHJhX21lbV9wYWdlcywgdm9pZCAqZ3Vlc3RfY29kZSwKLQkJCQl1bnNpZ25lZCBsb25nIHR5cGUpCisJCQkJdWludDY0X3QgZXh0cmFfbWVtX3BhZ2VzLCB2b2lkICpndWVzdF9jb2RlKQogewogCXN0cnVjdCBrdm1fdm0gKnZtOwogCXVpbnQ2NF90IGV4dHJhX3BnX3BhZ2VzID0gZXh0cmFfbWVtX3BhZ2VzIC8gNTEyICogMjsKIAotCXZtID0gX3ZtX2NyZWF0ZShtb2RlLCBERUZBVUxUX0dVRVNUX1BIWV9QQUdFUyArIGV4dHJhX3BnX3BhZ2VzLAotCQkJT19SRFdSLCB0eXBlKTsKKwl2bSA9IF92bV9jcmVhdGUobW9kZSwgREVGQVVMVF9HVUVTVF9QSFlfUEFHRVMgKyBleHRyYV9wZ19wYWdlcywgT19SRFdSKTsKIAlrdm1fdm1fZWxmX2xvYWQodm0sIHByb2dyYW1faW52b2NhdGlvbl9uYW1lLCAwLCAwKTsKICNpZmRlZiBfX3g4Nl82NF9fCiAJdm1fY3JlYXRlX2lycWNoaXAodm0pOwpAQCAtMjY1LDY3ICsyNjEsMzUgQEAgc3RhdGljIHN0cnVjdCBrdm1fdm0gKmNyZWF0ZV92bShlbnVtIHZtX2d1ZXN0X21vZGUgbW9kZSwgdWludDMyX3QgdmNwdWlkLAogCXJldHVybiB2bTsKIH0KIAorI2RlZmluZSBESVJUWV9NRU1fQklUUyAzMCAvKiAxRyAqLworI2RlZmluZSBQQUdFX1NISUZUXzRLICAxMgorCiBzdGF0aWMgdm9pZCBydW5fdGVzdChlbnVtIHZtX2d1ZXN0X21vZGUgbW9kZSwgdW5zaWduZWQgbG9uZyBpdGVyYXRpb25zLAogCQkgICAgIHVuc2lnbmVkIGxvbmcgaW50ZXJ2YWwsIHVpbnQ2NF90IHBoeXNfb2Zmc2V0KQogewotCXVuc2lnbmVkIGludCBndWVzdF9wYV9iaXRzLCBndWVzdF9wYWdlX3NoaWZ0OwogCXB0aHJlYWRfdCB2Y3B1X3RocmVhZDsKIAlzdHJ1Y3Qga3ZtX3ZtICp2bTsKLQl1aW50NjRfdCBtYXhfZ2ZuOwogCXVuc2lnbmVkIGxvbmcgKmJtYXA7Ci0JdW5zaWduZWQgbG9uZyB0eXBlID0gMDsKIAotCXN3aXRjaCAobW9kZSkgewotCWNhc2UgVk1fTU9ERV9QNTJWNDhfNEs6Ci0JCWd1ZXN0X3BhX2JpdHMgPSA1MjsKLQkJZ3Vlc3RfcGFnZV9zaGlmdCA9IDEyOwotCQlicmVhazsKLQljYXNlIFZNX01PREVfUDUyVjQ4XzY0SzoKLQkJZ3Vlc3RfcGFfYml0cyA9IDUyOwotCQlndWVzdF9wYWdlX3NoaWZ0ID0gMTY7Ci0JCWJyZWFrOwotCWNhc2UgVk1fTU9ERV9QNDhWNDhfNEs6Ci0JCWd1ZXN0X3BhX2JpdHMgPSA0ODsKLQkJZ3Vlc3RfcGFnZV9zaGlmdCA9IDEyOwotCQlicmVhazsKLQljYXNlIFZNX01PREVfUDQ4VjQ4XzY0SzoKLQkJZ3Vlc3RfcGFfYml0cyA9IDQ4OwotCQlndWVzdF9wYWdlX3NoaWZ0ID0gMTY7Ci0JCWJyZWFrOwotCWNhc2UgVk1fTU9ERV9QNDBWNDhfNEs6Ci0JCWd1ZXN0X3BhX2JpdHMgPSA0MDsKLQkJZ3Vlc3RfcGFnZV9zaGlmdCA9IDEyOwotCQlicmVhazsKLQljYXNlIFZNX01PREVfUDQwVjQ4XzY0SzoKLQkJZ3Vlc3RfcGFfYml0cyA9IDQwOwotCQlndWVzdF9wYWdlX3NoaWZ0ID0gMTY7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCVRFU1RfQVNTRVJUKGZhbHNlLCAiVW5rbm93biBndWVzdCBtb2RlLCBtb2RlOiAweCV4IiwgbW9kZSk7Ci0JfQotCi0JREVCVUcoIlRlc3RpbmcgZ3Vlc3QgbW9kZTogJXNcbiIsIHZtX2d1ZXN0X21vZGVfc3RyaW5nKG1vZGUpKTsKLQotI2lmZGVmIF9feDg2XzY0X18KIAkvKgotCSAqIEZJWE1FCi0JICogVGhlIHg4Nl82NCBrdm0gc2VsZnRlc3RzIGZyYW1ld29yayBjdXJyZW50bHkgb25seSBzdXBwb3J0cyBhCi0JICogc2luZ2xlIFBNTDQgd2hpY2ggcmVzdHJpY3RzIHRoZSBudW1iZXIgb2YgcGh5c2ljYWwgYWRkcmVzcwotCSAqIGJpdHMgd2UgY2FuIGNoYW5nZSB0byAzOS4KKwkgKiBXZSByZXNlcnZlIHBhZ2UgdGFibGUgZm9yIDIgdGltZXMgb2YgZXh0cmEgZGlydHkgbWVtIHdoaWNoCisJICogd2lsbCBkZWZpbml0ZWx5IGNvdmVyIHRoZSBvcmlnaW5hbCAoMUcrKSB0ZXN0IHJhbmdlLiAgSGVyZQorCSAqIHdlIGRvIHRoZSBjYWxjdWxhdGlvbiB3aXRoIDRLIHBhZ2Ugc2l6ZSB3aGljaCBpcyB0aGUKKwkgKiBzbWFsbGVzdCBzbyB0aGUgcGFnZSBudW1iZXIgd2lsbCBiZSBlbm91Z2ggZm9yIGFsbCBhcmNocworCSAqIChlLmcuLCA2NEsgcGFnZSBzaXplIGd1ZXN0IHdpbGwgbmVlZCBldmVuIGxlc3MgbWVtb3J5IGZvcgorCSAqIHBhZ2UgdGFibGVzKS4KIAkgKi8KLQlndWVzdF9wYV9iaXRzID0gMzk7Ci0jZW5kaWYKLSNpZmRlZiBfX2FhcmNoNjRfXwotCWlmIChndWVzdF9wYV9iaXRzICE9IDQwKQotCQl0eXBlID0gS1ZNX1ZNX1RZUEVfQVJNX0lQQV9TSVpFKGd1ZXN0X3BhX2JpdHMpOwotI2VuZGlmCi0JbWF4X2dmbiA9ICgxdWwgPDwgKGd1ZXN0X3BhX2JpdHMgLSBndWVzdF9wYWdlX3NoaWZ0KSkgLSAxOwotCWd1ZXN0X3BhZ2Vfc2l6ZSA9ICgxdWwgPDwgZ3Vlc3RfcGFnZV9zaGlmdCk7CisJdm0gPSBjcmVhdGVfdm0obW9kZSwgVkNQVV9JRCwKKwkJICAgICAgIDJ1bCA8PCAoRElSVFlfTUVNX0JJVFMgLSBQQUdFX1NISUZUXzRLKSwKKwkJICAgICAgIGd1ZXN0X2NvZGUpOworCisJZ3Vlc3RfcGFnZV9zaXplID0gdm1fZ2V0X3BhZ2Vfc2l6ZSh2bSk7CiAJLyoKIAkgKiBBIGxpdHRsZSBtb3JlIHRoYW4gMUcgb2YgZ3Vlc3QgcGFnZSBzaXplZCBwYWdlcy4gIENvdmVyIHRoZQogCSAqIGNhc2Ugd2hlcmUgdGhlIHNpemUgaXMgbm90IGFsaWduZWQgdG8gNjQgcGFnZXMuCiAJICovCi0JZ3Vlc3RfbnVtX3BhZ2VzID0gKDF1bCA8PCAoMzAgLSBndWVzdF9wYWdlX3NoaWZ0KSkgKyAxNjsKKwlndWVzdF9udW1fcGFnZXMgPSAoMXVsIDw8IChESVJUWV9NRU1fQklUUyAtCisJCQkJICAgdm1fZ2V0X3BhZ2Vfc2hpZnQodm0pKSkgKyAxNjsKICNpZmRlZiBfX3MzOTB4X18KIAkvKiBSb3VuZCB1cCB0byBtdWx0aXBsZSBvZiAxTSAoc2VnbWVudCBzaXplKSAqLwogCWd1ZXN0X251bV9wYWdlcyA9IChndWVzdF9udW1fcGFnZXMgKyAweGZmKSAmIH4weGZmVUw7CkBAIC0zMzUsNyArMjk5LDggQEAgc3RhdGljIHZvaWQgcnVuX3Rlc3QoZW51bSB2bV9ndWVzdF9tb2RlIG1vZGUsIHVuc2lnbmVkIGxvbmcgaXRlcmF0aW9ucywKIAkJCSAhISgoZ3Vlc3RfbnVtX3BhZ2VzICogZ3Vlc3RfcGFnZV9zaXplKSAlIGhvc3RfcGFnZV9zaXplKTsKIAogCWlmICghcGh5c19vZmZzZXQpIHsKLQkJZ3Vlc3RfdGVzdF9waHlzX21lbSA9IChtYXhfZ2ZuIC0gZ3Vlc3RfbnVtX3BhZ2VzKSAqIGd1ZXN0X3BhZ2Vfc2l6ZTsKKwkJZ3Vlc3RfdGVzdF9waHlzX21lbSA9ICh2bV9nZXRfbWF4X2dmbih2bSkgLQorCQkJCSAgICAgICBndWVzdF9udW1fcGFnZXMpICogZ3Vlc3RfcGFnZV9zaXplOwogCQlndWVzdF90ZXN0X3BoeXNfbWVtICY9IH4oaG9zdF9wYWdlX3NpemUgLSAxKTsKIAl9IGVsc2UgewogCQlndWVzdF90ZXN0X3BoeXNfbWVtID0gcGh5c19vZmZzZXQ7CkBAIC0zNTEsOCArMzE2LDYgQEAgc3RhdGljIHZvaWQgcnVuX3Rlc3QoZW51bSB2bV9ndWVzdF9tb2RlIG1vZGUsIHVuc2lnbmVkIGxvbmcgaXRlcmF0aW9ucywKIAlibWFwID0gYml0bWFwX2FsbG9jKGhvc3RfbnVtX3BhZ2VzKTsKIAlob3N0X2JtYXBfdHJhY2sgPSBiaXRtYXBfYWxsb2MoaG9zdF9udW1fcGFnZXMpOwogCi0Jdm0gPSBjcmVhdGVfdm0obW9kZSwgVkNQVV9JRCwgZ3Vlc3RfbnVtX3BhZ2VzLCBndWVzdF9jb2RlLCB0eXBlKTsKLQogI2lmZGVmIFVTRV9DTEVBUl9ESVJUWV9MT0cKIAlzdHJ1Y3Qga3ZtX2VuYWJsZV9jYXAgY2FwID0ge307CiAKQEAgLTQ4Miw3ICs0NDUsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogI2VuZGlmCiAKICNpZmRlZiBfX3g4Nl82NF9fCi0Jdm1fZ3Vlc3RfbW9kZV9wYXJhbXNfaW5pdChWTV9NT0RFX1A1MlY0OF80SywgdHJ1ZSwgdHJ1ZSk7CisJdm1fZ3Vlc3RfbW9kZV9wYXJhbXNfaW5pdChWTV9NT0RFX1BYWFY0OF80SywgdHJ1ZSwgdHJ1ZSk7CiAjZW5kaWYKICNpZmRlZiBfX2FhcmNoNjRfXwogCXZtX2d1ZXN0X21vZGVfcGFyYW1zX2luaXQoVk1fTU9ERV9QNDBWNDhfNEssIHRydWUsIHRydWUpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2luY2x1ZGUva3ZtX3V0aWwuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9pbmNsdWRlL2t2bV91dGlsLmgKaW5kZXggNTQ2M2I3OC4uMjljY2NhZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2luY2x1ZGUva3ZtX3V0aWwuaAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vaW5jbHVkZS9rdm1fdXRpbC5oCkBAIC0yNCw2ICsyNCwxMiBAQCBzdHJ1Y3Qga3ZtX3ZtOwogdHlwZWRlZiB1aW50NjRfdCB2bV9wYWRkcl90OyAvKiBWaXJ0dWFsIE1hY2hpbmUgKEd1ZXN0KSBwaHlzaWNhbCBhZGRyZXNzICovCiB0eXBlZGVmIHVpbnQ2NF90IHZtX3ZhZGRyX3Q7IC8qIFZpcnR1YWwgTWFjaGluZSAoR3Vlc3QpIHZpcnR1YWwgYWRkcmVzcyAqLwogCisjaWZuZGVmIE5ERUJVRworI2RlZmluZSBERUJVRyguLi4pIHByaW50ZihfX1ZBX0FSR1NfXyk7CisjZWxzZQorI2RlZmluZSBERUJVRyguLi4pCisjZW5kaWYKKwogLyogTWluaW11bSBhbGxvY2F0ZWQgZ3Vlc3QgdmlydHVhbCBhbmQgcGh5c2ljYWwgYWRkcmVzc2VzICovCiAjZGVmaW5lIEtWTV9VVElMX01JTl9WQUREUgkJMHgyMDAwCiAKQEAgLTM4LDExICs0NCwxNCBAQCBlbnVtIHZtX2d1ZXN0X21vZGUgewogCVZNX01PREVfUDQ4VjQ4XzY0SywKIAlWTV9NT0RFX1A0MFY0OF80SywKIAlWTV9NT0RFX1A0MFY0OF82NEssCisJVk1fTU9ERV9QWFhWNDhfNEssCS8qIEZvciA0OGJpdHMgVkEgYnV0IEFOWSBiaXRzIFBBICovCiAJTlVNX1ZNX01PREVTLAogfTsKIAotI2lmZGVmIF9fYWFyY2g2NF9fCisjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKICNkZWZpbmUgVk1fTU9ERV9ERUZBVUxUIFZNX01PREVfUDQwVjQ4XzRLCisjZWxpZiBkZWZpbmVkKF9feDg2XzY0X18pCisjZGVmaW5lIFZNX01PREVfREVGQVVMVCBWTV9NT0RFX1BYWFY0OF80SwogI2Vsc2UKICNkZWZpbmUgVk1fTU9ERV9ERUZBVUxUIFZNX01PREVfUDUyVjQ4XzRLCiAjZW5kaWYKQEAgLTYwLDggKzY5LDcgQEAgaW50IGt2bV9jaGVja19jYXAobG9uZyBjYXApOwogaW50IHZtX2VuYWJsZV9jYXAoc3RydWN0IGt2bV92bSAqdm0sIHN0cnVjdCBrdm1fZW5hYmxlX2NhcCAqY2FwKTsKIAogc3RydWN0IGt2bV92bSAqdm1fY3JlYXRlKGVudW0gdm1fZ3Vlc3RfbW9kZSBtb2RlLCB1aW50NjRfdCBwaHlfcGFnZXMsIGludCBwZXJtKTsKLXN0cnVjdCBrdm1fdm0gKl92bV9jcmVhdGUoZW51bSB2bV9ndWVzdF9tb2RlIG1vZGUsIHVpbnQ2NF90IHBoeV9wYWdlcywKLQkJCSAgaW50IHBlcm0sIHVuc2lnbmVkIGxvbmcgdHlwZSk7CitzdHJ1Y3Qga3ZtX3ZtICpfdm1fY3JlYXRlKGVudW0gdm1fZ3Vlc3RfbW9kZSBtb2RlLCB1aW50NjRfdCBwaHlfcGFnZXMsIGludCBwZXJtKTsKIHZvaWQga3ZtX3ZtX2ZyZWUoc3RydWN0IGt2bV92bSAqdm1wKTsKIHZvaWQga3ZtX3ZtX3Jlc3RhcnQoc3RydWN0IGt2bV92bSAqdm1wLCBpbnQgcGVybSk7CiB2b2lkIGt2bV92bV9yZWxlYXNlKHN0cnVjdCBrdm1fdm0gKnZtcCk7CkBAIC0xNDYsNiArMTU0LDEwIEBAIHZvaWQgdm1fdmNwdV9hZGRfZGVmYXVsdChzdHJ1Y3Qga3ZtX3ZtICp2bSwgdWludDMyX3QgdmNwdWlkLCB2b2lkICpndWVzdF9jb2RlKTsKIAogYm9vbCB2bV9pc191bnJlc3RyaWN0ZWRfZ3Vlc3Qoc3RydWN0IGt2bV92bSAqdm0pOwogCit1bnNpZ25lZCBpbnQgdm1fZ2V0X3BhZ2Vfc2l6ZShzdHJ1Y3Qga3ZtX3ZtICp2bSk7Cit1bnNpZ25lZCBpbnQgdm1fZ2V0X3BhZ2Vfc2hpZnQoc3RydWN0IGt2bV92bSAqdm0pOwordW5zaWduZWQgaW50IHZtX2dldF9tYXhfZ2ZuKHN0cnVjdCBrdm1fdm0gKnZtKTsKKwogc3RydWN0IGt2bV91c2Vyc3BhY2VfbWVtb3J5X3JlZ2lvbiAqCiBrdm1fdXNlcnNwYWNlX21lbW9yeV9yZWdpb25fZmluZChzdHJ1Y3Qga3ZtX3ZtICp2bSwgdWludDY0X3Qgc3RhcnQsCiAJCQkJIHVpbnQ2NF90IGVuZCk7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vaW5jbHVkZS94ODZfNjQvcHJvY2Vzc29yLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vaW5jbHVkZS94ODZfNjQvcHJvY2Vzc29yLmgKaW5kZXggODBkMTk3NC4uMGMxN2YyZSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2luY2x1ZGUveDg2XzY0L3Byb2Nlc3Nvci5oCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9pbmNsdWRlL3g4Nl82NC9wcm9jZXNzb3IuaApAQCAtMzI1LDYgKzMyNSw5IEBAIHVpbnQ2NF90IHZjcHVfZ2V0X21zcihzdHJ1Y3Qga3ZtX3ZtICp2bSwgdWludDMyX3QgdmNwdWlkLCB1aW50NjRfdCBtc3JfaW5kZXgpOwogdm9pZCB2Y3B1X3NldF9tc3Ioc3RydWN0IGt2bV92bSAqdm0sIHVpbnQzMl90IHZjcHVpZCwgdWludDY0X3QgbXNyX2luZGV4LAogCSAgCSAgdWludDY0X3QgbXNyX3ZhbHVlKTsKIAordWludDMyX3Qga3ZtX2dldF9jcHVpZF9tYXgodm9pZCk7Cit2b2lkIGt2bV9nZXRfY3B1X2FkZHJlc3Nfd2lkdGgodW5zaWduZWQgaW50ICpwYV9iaXRzLCB1bnNpZ25lZCBpbnQgKnZhX2JpdHMpOworCiAvKgogICogQmFzaWMgQ1BVIGNvbnRyb2wgaW4gQ1IwCiAgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvYWFyY2g2NC9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvYWFyY2g2NC9wcm9jZXNzb3IuYwppbmRleCA0ODY0MDBhLi44NjAzNmE1IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL2FhcmNoNjQvcHJvY2Vzc29yLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9hYXJjaDY0L3Byb2Nlc3Nvci5jCkBAIC0yNjQsNiArMjY0LDkgQEAgdm9pZCBhYXJjaDY0X3ZjcHVfc2V0dXAoc3RydWN0IGt2bV92bSAqdm0sIGludCB2Y3B1aWQsIHN0cnVjdCBrdm1fdmNwdV9pbml0ICppbmkKIAljYXNlIFZNX01PREVfUDUyVjQ4XzRLOgogCQlURVNUX0FTU0VSVChmYWxzZSwgIkFBcmNoNjQgZG9lcyBub3Qgc3VwcG9ydCA0SyBzaXplZCBwYWdlcyAiCiAJCQkJICAgIndpdGggNTItYml0IHBoeXNpY2FsIGFkZHJlc3MgcmFuZ2VzIik7CisJY2FzZSBWTV9NT0RFX1BYWFY0OF80SzoKKwkJVEVTVF9BU1NFUlQoZmFsc2UsICJBQXJjaDY0IGRvZXMgbm90IHN1cHBvcnQgNEsgc2l6ZWQgcGFnZXMgIgorCQkJCSAgICJ3aXRoIEFOWS1iaXQgcGh5c2ljYWwgYWRkcmVzcyByYW5nZXMiKTsKIAljYXNlIFZNX01PREVfUDUyVjQ4XzY0SzoKIAkJdGNyX2VsMSB8PSAxdWwgPDwgMTQ7IC8qIFRHMCA9IDY0S0IgKi8KIAkJdGNyX2VsMSB8PSA2dWwgPDwgMzI7IC8qIElQUyA9IDUyIGJpdHMgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIva3ZtX3V0aWwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIva3ZtX3V0aWwuYwppbmRleCA2ZTQ5YmIwLi44MGEzMzhiIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL2t2bV91dGlsLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9rdm1fdXRpbC5jCkBAIC04LDYgKzgsNyBAQAogI2luY2x1ZGUgInRlc3RfdXRpbC5oIgogI2luY2x1ZGUgImt2bV91dGlsLmgiCiAjaW5jbHVkZSAia3ZtX3V0aWxfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJwcm9jZXNzb3IuaCIKIAogI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CkBAIC04NCw3ICs4NSw3IEBAIGludCB2bV9lbmFibGVfY2FwKHN0cnVjdCBrdm1fdm0gKnZtLCBzdHJ1Y3Qga3ZtX2VuYWJsZV9jYXAgKmNhcCkKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdm9pZCB2bV9vcGVuKHN0cnVjdCBrdm1fdm0gKnZtLCBpbnQgcGVybSwgdW5zaWduZWQgbG9uZyB0eXBlKQorc3RhdGljIHZvaWQgdm1fb3BlbihzdHJ1Y3Qga3ZtX3ZtICp2bSwgaW50IHBlcm0pCiB7CiAJdm0tPmt2bV9mZCA9IG9wZW4oS1ZNX0RFVl9QQVRILCBwZXJtKTsKIAlpZiAodm0tPmt2bV9mZCA8IDApCkBAIC05NSwxOCArOTYsMTkgQEAgc3RhdGljIHZvaWQgdm1fb3BlbihzdHJ1Y3Qga3ZtX3ZtICp2bSwgaW50IHBlcm0sIHVuc2lnbmVkIGxvbmcgdHlwZSkKIAkJZXhpdChLU0ZUX1NLSVApOwogCX0KIAotCXZtLT5mZCA9IGlvY3RsKHZtLT5rdm1fZmQsIEtWTV9DUkVBVEVfVk0sIHR5cGUpOworCXZtLT5mZCA9IGlvY3RsKHZtLT5rdm1fZmQsIEtWTV9DUkVBVEVfVk0sIHZtLT50eXBlKTsKIAlURVNUX0FTU0VSVCh2bS0+ZmQgPj0gMCwgIktWTV9DUkVBVEVfVk0gaW9jdGwgZmFpbGVkLCAiCiAJCSJyYzogJWkgZXJybm86ICVpIiwgdm0tPmZkLCBlcnJubyk7CiB9CiAKIGNvbnN0IGNoYXIgKiBjb25zdCB2bV9ndWVzdF9tb2RlX3N0cmluZ1tdID0gewotCSJQQS1iaXRzOjUyLCBWQS1iaXRzOjQ4LCA0SyBwYWdlcyIsCi0JIlBBLWJpdHM6NTIsIFZBLWJpdHM6NDgsIDY0SyBwYWdlcyIsCi0JIlBBLWJpdHM6NDgsIFZBLWJpdHM6NDgsIDRLIHBhZ2VzIiwKLQkiUEEtYml0czo0OCwgVkEtYml0czo0OCwgNjRLIHBhZ2VzIiwKLQkiUEEtYml0czo0MCwgVkEtYml0czo0OCwgNEsgcGFnZXMiLAotCSJQQS1iaXRzOjQwLCBWQS1iaXRzOjQ4LCA2NEsgcGFnZXMiLAorCSJQQS1iaXRzOjUyLCAgVkEtYml0czo0OCwgIDRLIHBhZ2VzIiwKKwkiUEEtYml0czo1MiwgIFZBLWJpdHM6NDgsIDY0SyBwYWdlcyIsCisJIlBBLWJpdHM6NDgsICBWQS1iaXRzOjQ4LCAgNEsgcGFnZXMiLAorCSJQQS1iaXRzOjQ4LCAgVkEtYml0czo0OCwgNjRLIHBhZ2VzIiwKKwkiUEEtYml0czo0MCwgIFZBLWJpdHM6NDgsICA0SyBwYWdlcyIsCisJIlBBLWJpdHM6NDAsICBWQS1iaXRzOjQ4LCA2NEsgcGFnZXMiLAorCSJQQS1iaXRzOkFOWSwgVkEtYml0czo0OCwgIDRLIHBhZ2VzIiwKIH07CiBfU3RhdGljX2Fzc2VydChzaXplb2Yodm1fZ3Vlc3RfbW9kZV9zdHJpbmcpL3NpemVvZihjaGFyICopID09IE5VTV9WTV9NT0RFUywKIAkgICAgICAgIk1pc3NpbmcgbmV3IG1vZGUgc3RyaW5ncz8iKTsKQEAgLTEzMCwxNyArMTMyLDE3IEBAIF9TdGF0aWNfYXNzZXJ0KHNpemVvZih2bV9ndWVzdF9tb2RlX3N0cmluZykvc2l6ZW9mKGNoYXIgKikgPT0gTlVNX1ZNX01PREVTLAogICogZGVzY3JpcHRvciB0byBjb250cm9sIHRoZSBjcmVhdGVkIFZNIGlzIGNyZWF0ZWQgd2l0aCB0aGUgcGVybWlzc2lvbnMKICAqIGdpdmVuIGJ5IHBlcm0gKGUuZy4gT19SRFdSKS4KICAqLwotc3RydWN0IGt2bV92bSAqX3ZtX2NyZWF0ZShlbnVtIHZtX2d1ZXN0X21vZGUgbW9kZSwgdWludDY0X3QgcGh5X3BhZ2VzLAotCQkJICBpbnQgcGVybSwgdW5zaWduZWQgbG9uZyB0eXBlKQorc3RydWN0IGt2bV92bSAqX3ZtX2NyZWF0ZShlbnVtIHZtX2d1ZXN0X21vZGUgbW9kZSwgdWludDY0X3QgcGh5X3BhZ2VzLCBpbnQgcGVybSkKIHsKIAlzdHJ1Y3Qga3ZtX3ZtICp2bTsKIAorCURFQlVHKCJUZXN0aW5nIGd1ZXN0IG1vZGU6ICVzXG4iLCB2bV9ndWVzdF9tb2RlX3N0cmluZyhtb2RlKSk7CisKIAl2bSA9IGNhbGxvYygxLCBzaXplb2YoKnZtKSk7CiAJVEVTVF9BU1NFUlQodm0gIT0gTlVMTCwgIkluc3VmZmljaWVudCBNZW1vcnkiKTsKIAogCXZtLT5tb2RlID0gbW9kZTsKLQl2bS0+dHlwZSA9IHR5cGU7Ci0Jdm1fb3Blbih2bSwgcGVybSwgdHlwZSk7CisJdm0tPnR5cGUgPSAwOwogCiAJLyogU2V0dXAgbW9kZSBzcGVjaWZpYyB0cmFpdHMuICovCiAJc3dpdGNoICh2bS0+bW9kZSkgewpAQCAtMTg2LDEwICsxODgsMzIgQEAgc3RydWN0IGt2bV92bSAqX3ZtX2NyZWF0ZShlbnVtIHZtX2d1ZXN0X21vZGUgbW9kZSwgdWludDY0X3QgcGh5X3BhZ2VzLAogCQl2bS0+cGFnZV9zaXplID0gMHgxMDAwMDsKIAkJdm0tPnBhZ2Vfc2hpZnQgPSAxNjsKIAkJYnJlYWs7CisJY2FzZSBWTV9NT0RFX1BYWFY0OF80SzoKKyNpZmRlZiBfX3g4Nl82NF9fCisJCWt2bV9nZXRfY3B1X2FkZHJlc3Nfd2lkdGgoJnZtLT5wYV9iaXRzLCAmdm0tPnZhX2JpdHMpOworCQlURVNUX0FTU0VSVCh2bS0+dmFfYml0cyA9PSA0OCwgIkxpbmVhciBhZGRyZXNzIHdpZHRoICIKKwkJCSAgICAiKCVkIGJpdHMpIG5vdCBzdXBwb3J0ZWQiLCB2bS0+dmFfYml0cyk7CisJCXZtLT5wZ3RhYmxlX2xldmVscyA9IDQ7CisJCXZtLT5wYWdlX3NpemUgPSAweDEwMDA7CisJCXZtLT5wYWdlX3NoaWZ0ID0gMTI7CisJCURFQlVHKCJHdWVzdCBwaHlzaWNhbCBhZGRyZXNzIHdpZHRoIGRldGVjdGVkOiAlZFxuIiwKKwkJICAgICAgdm0tPnBhX2JpdHMpOworI2Vsc2UKKwkJVEVTVF9BU1NFUlQoZmFsc2UsICJWTV9NT0RFX1BYWFY0OF80SyBub3Qgc3VwcG9ydGVkIG9uICIKKwkJCSAgICAibm9uLXg4NiBwbGF0Zm9ybXMiKTsKKyNlbmRpZgorCQlicmVhazsKIAlkZWZhdWx0OgogCQlURVNUX0FTU0VSVChmYWxzZSwgIlVua25vd24gZ3Vlc3QgbW9kZSwgbW9kZTogMHgleCIsIG1vZGUpOwogCX0KIAorI2lmZGVmIF9fYWFyY2g2NF9fCisJaWYgKHZtLT5wYV9iaXRzICE9IDQwKQorCQl2bS0+dHlwZSA9IEtWTV9WTV9UWVBFX0FSTV9JUEFfU0laRSh2bS0+cGFfYml0cyk7CisjZW5kaWYKKworCXZtX29wZW4odm0sIHBlcm0pOworCiAJLyogTGltaXQgdG8gVkEtYml0IGNhbm9uaWNhbCB2aXJ0dWFsIGFkZHJlc3Nlcy4gKi8KIAl2bS0+dnBhZ2VzX3ZhbGlkID0gc3BhcnNlYml0X2FsbG9jKCk7CiAJc3BhcnNlYml0X3NldF9udW0odm0tPnZwYWdlc192YWxpZCwKQEAgLTIxMiw3ICsyMzYsNyBAQCBzdHJ1Y3Qga3ZtX3ZtICpfdm1fY3JlYXRlKGVudW0gdm1fZ3Vlc3RfbW9kZSBtb2RlLCB1aW50NjRfdCBwaHlfcGFnZXMsCiAKIHN0cnVjdCBrdm1fdm0gKnZtX2NyZWF0ZShlbnVtIHZtX2d1ZXN0X21vZGUgbW9kZSwgdWludDY0X3QgcGh5X3BhZ2VzLCBpbnQgcGVybSkKIHsKLQlyZXR1cm4gX3ZtX2NyZWF0ZShtb2RlLCBwaHlfcGFnZXMsIHBlcm0sIDApOworCXJldHVybiBfdm1fY3JlYXRlKG1vZGUsIHBoeV9wYWdlcywgcGVybSk7CiB9CiAKIC8qCkBAIC0yMzIsNyArMjU2LDcgQEAgdm9pZCBrdm1fdm1fcmVzdGFydChzdHJ1Y3Qga3ZtX3ZtICp2bXAsIGludCBwZXJtKQogewogCXN0cnVjdCB1c2Vyc3BhY2VfbWVtX3JlZ2lvbiAqcmVnaW9uOwogCi0Jdm1fb3Blbih2bXAsIHBlcm0sIHZtcC0+dHlwZSk7CisJdm1fb3Blbih2bXAsIHBlcm0pOwogCWlmICh2bXAtPmhhc19pcnFjaGlwKQogCQl2bV9jcmVhdGVfaXJxY2hpcCh2bXApOwogCkBAIC0xNjI4LDMgKzE2NTIsMTggQEAgYm9vbCB2bV9pc191bnJlc3RyaWN0ZWRfZ3Vlc3Qoc3RydWN0IGt2bV92bSAqdm0pCiAKIAlyZXR1cm4gdmFsID09ICdZJzsKIH0KKwordW5zaWduZWQgaW50IHZtX2dldF9wYWdlX3NpemUoc3RydWN0IGt2bV92bSAqdm0pCit7CisJcmV0dXJuIHZtLT5wYWdlX3NpemU7Cit9CisKK3Vuc2lnbmVkIGludCB2bV9nZXRfcGFnZV9zaGlmdChzdHJ1Y3Qga3ZtX3ZtICp2bSkKK3sKKwlyZXR1cm4gdm0tPnBhZ2Vfc2hpZnQ7Cit9CisKK3Vuc2lnbmVkIGludCB2bV9nZXRfbWF4X2dmbihzdHJ1Y3Qga3ZtX3ZtICp2bSkKK3sKKwlyZXR1cm4gdm0tPm1heF9nZm47Cit9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3g4Nl82NC9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIveDg2XzY0L3Byb2Nlc3Nvci5jCmluZGV4IDBhNWU0ODcuLmM1M2RiYzYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIveDg2XzY0L3Byb2Nlc3Nvci5jCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIveDg2XzY0L3Byb2Nlc3Nvci5jCkBAIC0yMjgsNyArMjI4LDcgQEAgdm9pZCBzcmVnc19kdW1wKEZJTEUgKnN0cmVhbSwgc3RydWN0IGt2bV9zcmVncyAqc3JlZ3MsCiAKIHZvaWQgdmlydF9wZ2RfYWxsb2Moc3RydWN0IGt2bV92bSAqdm0sIHVpbnQzMl90IHBnZF9tZW1zbG90KQogewotCVRFU1RfQVNTRVJUKHZtLT5tb2RlID09IFZNX01PREVfUDUyVjQ4XzRLLCAiQXR0ZW1wdCB0byB1c2UgIgorCVRFU1RfQVNTRVJUKHZtLT5tb2RlID09IFZNX01PREVfUFhYVjQ4XzRLLCAiQXR0ZW1wdCB0byB1c2UgIgogCQkidW5rbm93biBvciB1bnN1cHBvcnRlZCBndWVzdCBtb2RlLCBtb2RlOiAweCV4Iiwgdm0tPm1vZGUpOwogCiAJLyogSWYgbmVlZGVkLCBjcmVhdGUgcGFnZSBtYXAgbDQgdGFibGUuICovCkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCB2aXJ0X3BnX21hcChzdHJ1Y3Qga3ZtX3ZtICp2bSwgdWludDY0X3QgdmFkZHIsIHVpbnQ2NF90IHBhZGRyLAogCXVpbnQxNl90IGluZGV4WzRdOwogCXN0cnVjdCBwYWdlTWFwTDRFbnRyeSAqcG1sNGU7CiAKLQlURVNUX0FTU0VSVCh2bS0+bW9kZSA9PSBWTV9NT0RFX1A1MlY0OF80SywgIkF0dGVtcHQgdG8gdXNlICIKKwlURVNUX0FTU0VSVCh2bS0+bW9kZSA9PSBWTV9NT0RFX1BYWFY0OF80SywgIkF0dGVtcHQgdG8gdXNlICIKIAkJInVua25vd24gb3IgdW5zdXBwb3J0ZWQgZ3Vlc3QgbW9kZSwgbW9kZTogMHgleCIsIHZtLT5tb2RlKTsKIAogCVRFU1RfQVNTRVJUKCh2YWRkciAlIHZtLT5wYWdlX3NpemUpID09IDAsCkBAIC01NDcsNyArNTQ3LDcgQEAgdm1fcGFkZHJfdCBhZGRyX2d2YTJncGEoc3RydWN0IGt2bV92bSAqdm0sIHZtX3ZhZGRyX3QgZ3ZhKQogCXN0cnVjdCBwYWdlRGlyZWN0b3J5RW50cnkgKnBkZTsKIAlzdHJ1Y3QgcGFnZVRhYmxlRW50cnkgKnB0ZTsKIAotCVRFU1RfQVNTRVJUKHZtLT5tb2RlID09IFZNX01PREVfUDUyVjQ4XzRLLCAiQXR0ZW1wdCB0byB1c2UgIgorCVRFU1RfQVNTRVJUKHZtLT5tb2RlID09IFZNX01PREVfUFhYVjQ4XzRLLCAiQXR0ZW1wdCB0byB1c2UgIgogCQkidW5rbm93biBvciB1bnN1cHBvcnRlZCBndWVzdCBtb2RlLCBtb2RlOiAweCV4Iiwgdm0tPm1vZGUpOwogCiAJaW5kZXhbMF0gPSAoZ3ZhID4+IDEyKSAmIDB4MWZmdTsKQEAgLTYyMSw3ICs2MjEsNyBAQCBzdGF0aWMgdm9pZCB2Y3B1X3NldHVwKHN0cnVjdCBrdm1fdm0gKnZtLCBpbnQgdmNwdWlkLCBpbnQgcGdkX21lbXNsb3QsIGludCBnZHRfbQogCWt2bV9zZXR1cF9nZHQodm0sICZzcmVncy5nZHQsIGdkdF9tZW1zbG90LCBwZ2RfbWVtc2xvdCk7CiAKIAlzd2l0Y2ggKHZtLT5tb2RlKSB7Ci0JY2FzZSBWTV9NT0RFX1A1MlY0OF80SzoKKwljYXNlIFZNX01PREVfUFhYVjQ4XzRLOgogCQlzcmVncy5jcjAgPSBYODZfQ1IwX1BFIHwgWDg2X0NSMF9ORSB8IFg4Nl9DUjBfUEc7CiAJCXNyZWdzLmNyNCB8PSBYODZfQ1I0X1BBRSB8IFg4Nl9DUjRfT1NGWFNSOwogCQlzcmVncy5lZmVyIHw9IChFRkVSX0xNRSB8IEVGRVJfTE1BIHwgRUZFUl9OWCk7CkBAIC0xMTU3LDMgKzExNTcsMjUgQEAgYm9vbCBpc19pbnRlbF9jcHUodm9pZCkKIAljaHVuayA9IChjb25zdCB1aW50MzJfdCAqKSgiR2VudWluZUludGVsIik7CiAJcmV0dXJuIChlYnggPT0gY2h1bmtbMF0gJiYgZWR4ID09IGNodW5rWzFdICYmIGVjeCA9PSBjaHVua1syXSk7CiB9CisKK3VpbnQzMl90IGt2bV9nZXRfY3B1aWRfbWF4KHZvaWQpCit7CisJcmV0dXJuIGt2bV9nZXRfc3VwcG9ydGVkX2NwdWlkX2VudHJ5KDB4ODAwMDAwMDApLT5lYXg7Cit9CisKK3ZvaWQga3ZtX2dldF9jcHVfYWRkcmVzc193aWR0aCh1bnNpZ25lZCBpbnQgKnBhX2JpdHMsIHVuc2lnbmVkIGludCAqdmFfYml0cykKK3sKKwlzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5MiAqZW50cnk7CisJYm9vbCBwYWU7CisKKwkvKiBTRE0gNC4xLjQgKi8KKwlpZiAoa3ZtX2dldF9jcHVpZF9tYXgoKSA8IDB4ODAwMDAwMDgpIHsKKwkJcGFlID0ga3ZtX2dldF9zdXBwb3J0ZWRfY3B1aWRfZW50cnkoMSktPmVkeCAmICgxIDw8IDYpOworCQkqcGFfYml0cyA9IHBhZSA/IDM2IDogMzI7CisJCSp2YV9iaXRzID0gMzI7CisJfSBlbHNlIHsKKwkJZW50cnkgPSBrdm1fZ2V0X3N1cHBvcnRlZF9jcHVpZF9lbnRyeSgweDgwMDAwMDA4KTsKKwkJKnBhX2JpdHMgPSBlbnRyeS0+ZWF4ICYgMHhmZjsKKwkJKnZhX2JpdHMgPSAoZW50cnktPmVheCA+PiA4KSAmIDB4ZmY7CisJfQorfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi94ODZfNjQvdWNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIveDg2XzY0L3VjYWxsLmMKaW5kZXggNGJmYzlhOS4uZGE0ZDg5YSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi94ODZfNjQvdWNhbGwuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3g4Nl82NC91Y2FsbC5jCkBAIC0zMiw3ICszMiw3IEBAIHZvaWQgdWNhbGwodWludDY0X3QgY21kLCBpbnQgbmFyZ3MsIC4uLikKIAl2YV9lbmQodmEpOwogCiAJYXNtIHZvbGF0aWxlKCJpbiAlW3BvcnRdLCAlJWFsIgotCQk6IDogW3BvcnRdICJkIiAoVUNBTExfUElPX1BPUlQpLCAiRCIgKCZ1YykgOiAicmF4Iik7CisJCTogOiBbcG9ydF0gImQiIChVQ0FMTF9QSU9fUE9SVCksICJEIiAoJnVjKSA6ICJyYXgiLCAibWVtb3J5Iik7CiB9CiAKIHVpbnQ2NF90IGdldF91Y2FsbChzdHJ1Y3Qga3ZtX3ZtICp2bSwgdWludDMyX3QgdmNwdV9pZCwgc3RydWN0IHVjYWxsICp1YykKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODZfNjQvaHlwZXJ2X2NwdWlkLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2XzY0L2h5cGVydl9jcHVpZC5jCmluZGV4IGVlNTk4MzEuLjQ0M2EyYjUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODZfNjQvaHlwZXJ2X2NwdWlkLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Nl82NC9oeXBlcnZfY3B1aWQuYwpAQCAtMjYsNiArMjYsMjUgQEAgc3RhdGljIHZvaWQgZ3Vlc3RfY29kZSh2b2lkKQogewogfQogCitzdGF0aWMgaW50IHNtdF9wb3NzaWJsZSh2b2lkKQoreworCWNoYXIgYnVmWzE2XTsKKwlGSUxFICpmOworCWJvb2wgcmVzID0gMTsKKworCWYgPSBmb3BlbigiL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvc210L2NvbnRyb2wiLCAiciIpOworCWlmIChmKSB7CisJCWlmIChmcmVhZChidWYsIHNpemVvZigqYnVmKSwgc2l6ZW9mKGJ1ZiksIGYpID4gMCkgeworCQkJaWYgKCFzdHJuY21wKGJ1ZiwgImZvcmNlb2ZmIiwgOCkgfHwKKwkJCSAgICAhc3RybmNtcChidWYsICJub3RzdXBwb3J0ZWQiLCAxMikpCisJCQkJcmVzID0gMDsKKwkJfQorCQlmY2xvc2UoZik7CisJfQorCisJcmV0dXJuIHJlczsKK30KKwogc3RhdGljIHZvaWQgdGVzdF9odl9jcHVpZChzdHJ1Y3Qga3ZtX2NwdWlkMiAqaHZfY3B1aWRfZW50cmllcywKIAkJCSAgaW50IGV2bWNzX2VuYWJsZWQpCiB7CkBAIC01OSw2ICs3OCwxNCBAQCBzdGF0aWMgdm9pZCB0ZXN0X2h2X2NwdWlkKHN0cnVjdCBrdm1fY3B1aWQyICpodl9jcHVpZF9lbnRyaWVzLAogCQlURVNUX0FTU0VSVCghZW50cnktPnBhZGRpbmdbMF0gJiYgIWVudHJ5LT5wYWRkaW5nWzFdICYmCiAJCQkgICAgIWVudHJ5LT5wYWRkaW5nWzJdLCAicGFkZGluZyBzaG91bGQgYmUgemVybyIpOwogCisJCWlmIChlbnRyeS0+ZnVuY3Rpb24gPT0gMHg0MDAwMDAwNCkgeworCQkJaW50IG5vbm9uYXJjaGNzID0gISEoZW50cnktPmVheCAmICgxVUwgPDwgMTgpKTsKKworCQkJVEVTVF9BU1NFUlQobm9ub25hcmNoY3MgPT0gIXNtdF9wb3NzaWJsZSgpLAorCQkJCSAgICAiTm9Ob25BcmNoaXRlY3R1cmFsQ29yZVNoYXJpbmcgYml0IgorCQkJCSAgICAiIGRvZXNuJ3QgcmVmbGVjdCBTTVQgc2V0dGluZyIpOworCQl9CisKIAkJLyoKIAkJICogSWYgbmVlZGVkIGZvciBkZWJ1ZzoKIAkJICogZnByaW50ZihzdGRvdXQsCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9saXZlcGF0Y2gvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbGl2ZXBhdGNoL2NvbmZpZwppbmRleCAwZGQ3NzAwLi5hZDIzMTAwIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9saXZlcGF0Y2gvY29uZmlnCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2xpdmVwYXRjaC9jb25maWcKQEAgLTEgKzEsMyBAQAorQ09ORklHX0xJVkVQQVRDSD15CitDT05GSUdfRFlOQU1JQ19ERUJVRz15CiBDT05GSUdfVEVTVF9MSVZFUEFUQ0g9bQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtYmFycmllci8uZ2l0aWdub3JlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtYmFycmllci8uZ2l0aWdub3JlCmluZGV4IDAyMGM0NGY0Li5mMmY3ZWMwIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9tZW1iYXJyaWVyLy5naXRpZ25vcmUKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtYmFycmllci8uZ2l0aWdub3JlCkBAIC0xICsxLDIgQEAKLW1lbWJhcnJpZXJfdGVzdAorbWVtYmFycmllcl90ZXN0X211bHRpX3RocmVhZAorbWVtYmFycmllcl90ZXN0X3NpbmdsZV90aHJlYWQKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21lbWJhcnJpZXIvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9tZW1iYXJyaWVyL01ha2VmaWxlCmluZGV4IDk3ZTNiZGYuLjM0ZDFjODEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21lbWJhcnJpZXIvTWFrZWZpbGUKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtYmFycmllci9NYWtlZmlsZQpAQCAtMSw3ICsxLDggQEAKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQogQ0ZMQUdTICs9IC1nIC1JLi4vLi4vLi4vLi4vdXNyL2luY2x1ZGUvCitMRExJQlMgKz0gLWxwdGhyZWFkCiAKLVRFU1RfR0VOX1BST0dTIDo9IG1lbWJhcnJpZXJfdGVzdAorVEVTVF9HRU5fUFJPR1MgOj0gbWVtYmFycmllcl90ZXN0X3NpbmdsZV90aHJlYWQgXAorCQltZW1iYXJyaWVyX3Rlc3RfbXVsdGlfdGhyZWFkCiAKIGluY2x1ZGUgLi4vbGliLm1rCi0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21lbWJhcnJpZXIvbWVtYmFycmllcl90ZXN0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9tZW1iYXJyaWVyL21lbWJhcnJpZXJfdGVzdC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGI0ZGRiLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21lbWJhcnJpZXIvbWVtYmFycmllcl90ZXN0LmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMTMgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxsaW51eC9tZW1iYXJyaWVyLmg+Ci0jaW5jbHVkZSA8c3lzY2FsbC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2luY2x1ZGUgIi4uL2tzZWxmdGVzdC5oIgotCi1zdGF0aWMgaW50IHN5c19tZW1iYXJyaWVyKGludCBjbWQsIGludCBmbGFncykKLXsKLQlyZXR1cm4gc3lzY2FsbChfX05SX21lbWJhcnJpZXIsIGNtZCwgZmxhZ3MpOwotfQotCi1zdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9jbWRfZmFpbCh2b2lkKQotewotCWludCBjbWQgPSAtMSwgZmxhZ3MgPSAwOwotCWNvbnN0IGNoYXIgKnRlc3RfbmFtZSA9ICJzeXMgbWVtYmFycmllciBpbnZhbGlkIGNvbW1hbmQiOwotCi0JaWYgKHN5c19tZW1iYXJyaWVyKGNtZCwgZmxhZ3MpICE9IC0xKSB7Ci0JCWtzZnRfZXhpdF9mYWlsX21zZygKLQkJCSIlcyB0ZXN0OiBjb21tYW5kID0gJWQsIGZsYWdzID0gJWQuIFNob3VsZCBmYWlsLCBidXQgcGFzc2VkXG4iLAotCQkJdGVzdF9uYW1lLCBjbWQsIGZsYWdzKTsKLQl9Ci0JaWYgKGVycm5vICE9IEVJTlZBTCkgewotCQlrc2Z0X2V4aXRfZmFpbF9tc2coCi0JCQkiJXMgdGVzdDogZmxhZ3MgPSAlZC4gU2hvdWxkIHJldHVybiAoJWQ6IFwiJXNcIiksIGJ1dCByZXR1cm5lZCAoJWQ6IFwiJXNcIikuXG4iLAotCQkJdGVzdF9uYW1lLCBmbGFncywgRUlOVkFMLCBzdHJlcnJvcihFSU5WQUwpLAotCQkJZXJybm8sIHN0cmVycm9yKGVycm5vKSk7Ci0JfQotCi0Ja3NmdF90ZXN0X3Jlc3VsdF9wYXNzKAotCQkiJXMgdGVzdDogY29tbWFuZCA9ICVkLCBmbGFncyA9ICVkLCBlcnJubyA9ICVkLiBGYWlsZWQgYXMgZXhwZWN0ZWRcbiIsCi0JCXRlc3RfbmFtZSwgY21kLCBmbGFncywgZXJybm8pOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9mbGFnc19mYWlsKHZvaWQpCi17Ci0JaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1FVRVJZLCBmbGFncyA9IDE7Ci0JY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX1FVRVJZIGludmFsaWQgZmxhZ3MiOwotCi0JaWYgKHN5c19tZW1iYXJyaWVyKGNtZCwgZmxhZ3MpICE9IC0xKSB7Ci0JCWtzZnRfZXhpdF9mYWlsX21zZygKLQkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLiBTaG91bGQgZmFpbCwgYnV0IHBhc3NlZFxuIiwKLQkJCXRlc3RfbmFtZSwgZmxhZ3MpOwotCX0KLQlpZiAoZXJybm8gIT0gRUlOVkFMKSB7Ci0JCWtzZnRfZXhpdF9mYWlsX21zZygKLQkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLiBTaG91bGQgcmV0dXJuICglZDogXCIlc1wiKSwgYnV0IHJldHVybmVkICglZDogXCIlc1wiKS5cbiIsCi0JCQl0ZXN0X25hbWUsIGZsYWdzLCBFSU5WQUwsIHN0cmVycm9yKEVJTlZBTCksCi0JCQllcnJubywgc3RyZXJyb3IoZXJybm8pKTsKLQl9Ci0KLQlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCi0JCSIlcyB0ZXN0OiBmbGFncyA9ICVkLCBlcnJubyA9ICVkLiBGYWlsZWQgYXMgZXhwZWN0ZWRcbiIsCi0JCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfZ2xvYmFsX3N1Y2Nlc3Modm9pZCkKLXsKLQlpbnQgY21kID0gTUVNQkFSUklFUl9DTURfR0xPQkFMLCBmbGFncyA9IDA7Ci0JY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX0dMT0JBTCI7Ci0KLQlpZiAoc3lzX21lbWJhcnJpZXIoY21kLCBmbGFncykgIT0gMCkgewotCQlrc2Z0X2V4aXRfZmFpbF9tc2coCi0JCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKLQkJCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKLQl9Ci0KLQlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCi0JCSIlcyB0ZXN0OiBmbGFncyA9ICVkXG4iLCB0ZXN0X25hbWUsIGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfcHJpdmF0ZV9leHBlZGl0ZWRfZmFpbCh2b2lkKQotewotCWludCBjbWQgPSBNRU1CQVJSSUVSX0NNRF9QUklWQVRFX0VYUEVESVRFRCwgZmxhZ3MgPSAwOwotCWNvbnN0IGNoYXIgKnRlc3RfbmFtZSA9ICJzeXMgbWVtYmFycmllciBNRU1CQVJSSUVSX0NNRF9QUklWQVRFX0VYUEVESVRFRCBub3QgcmVnaXN0ZXJlZCBmYWlsdXJlIjsKLQotCWlmIChzeXNfbWVtYmFycmllcihjbWQsIGZsYWdzKSAhPSAtMSkgewotCQlrc2Z0X2V4aXRfZmFpbF9tc2coCi0JCQkiJXMgdGVzdDogZmxhZ3MgPSAlZC4gU2hvdWxkIGZhaWwsIGJ1dCBwYXNzZWRcbiIsCi0JCQl0ZXN0X25hbWUsIGZsYWdzKTsKLQl9Ci0JaWYgKGVycm5vICE9IEVQRVJNKSB7Ci0JCWtzZnRfZXhpdF9mYWlsX21zZygKLQkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLiBTaG91bGQgcmV0dXJuICglZDogXCIlc1wiKSwgYnV0IHJldHVybmVkICglZDogXCIlc1wiKS5cbiIsCi0JCQl0ZXN0X25hbWUsIGZsYWdzLCBFUEVSTSwgc3RyZXJyb3IoRVBFUk0pLAotCQkJZXJybm8sIHN0cmVycm9yKGVycm5vKSk7Ci0JfQotCi0Ja3NmdF90ZXN0X3Jlc3VsdF9wYXNzKAotCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKLQkJdGVzdF9uYW1lLCBmbGFncywgZXJybm8pOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9yZWdpc3Rlcl9wcml2YXRlX2V4cGVkaXRlZF9zdWNjZXNzKHZvaWQpCi17Ci0JaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1JFR0lTVEVSX1BSSVZBVEVfRVhQRURJVEVELCBmbGFncyA9IDA7Ci0JY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX1JFR0lTVEVSX1BSSVZBVEVfRVhQRURJVEVEIjsKLQotCWlmIChzeXNfbWVtYmFycmllcihjbWQsIGZsYWdzKSAhPSAwKSB7Ci0JCWtzZnRfZXhpdF9mYWlsX21zZygKLQkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLCBlcnJubyA9ICVkXG4iLAotCQkJdGVzdF9uYW1lLCBmbGFncywgZXJybm8pOwotCX0KLQotCWtzZnRfdGVzdF9yZXN1bHRfcGFzcygKLQkJIiVzIHRlc3Q6IGZsYWdzID0gJWRcbiIsCi0JCXRlc3RfbmFtZSwgZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZF9zdWNjZXNzKHZvaWQpCi17Ci0JaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1BSSVZBVEVfRVhQRURJVEVELCBmbGFncyA9IDA7Ci0JY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX1BSSVZBVEVfRVhQRURJVEVEIjsKLQotCWlmIChzeXNfbWVtYmFycmllcihjbWQsIGZsYWdzKSAhPSAwKSB7Ci0JCWtzZnRfZXhpdF9mYWlsX21zZygKLQkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLCBlcnJubyA9ICVkXG4iLAotCQkJdGVzdF9uYW1lLCBmbGFncywgZXJybm8pOwotCX0KLQotCWtzZnRfdGVzdF9yZXN1bHRfcGFzcygKLQkJIiVzIHRlc3Q6IGZsYWdzID0gJWRcbiIsCi0JCXRlc3RfbmFtZSwgZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZF9zeW5jX2NvcmVfZmFpbCh2b2lkKQotewotCWludCBjbWQgPSBNRU1CQVJSSUVSX0NNRF9QUklWQVRFX0VYUEVESVRFRF9TWU5DX0NPUkUsIGZsYWdzID0gMDsKLQljb25zdCBjaGFyICp0ZXN0X25hbWUgPSAic3lzIG1lbWJhcnJpZXIgTUVNQkFSUklFUl9DTURfUFJJVkFURV9FWFBFRElURURfU1lOQ19DT1JFIG5vdCByZWdpc3RlcmVkIGZhaWx1cmUiOwotCi0JaWYgKHN5c19tZW1iYXJyaWVyKGNtZCwgZmxhZ3MpICE9IC0xKSB7Ci0JCWtzZnRfZXhpdF9mYWlsX21zZygKLQkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLiBTaG91bGQgZmFpbCwgYnV0IHBhc3NlZFxuIiwKLQkJCXRlc3RfbmFtZSwgZmxhZ3MpOwotCX0KLQlpZiAoZXJybm8gIT0gRVBFUk0pIHsKLQkJa3NmdF9leGl0X2ZhaWxfbXNnKAotCQkJIiVzIHRlc3Q6IGZsYWdzID0gJWQuIFNob3VsZCByZXR1cm4gKCVkOiBcIiVzXCIpLCBidXQgcmV0dXJuZWQgKCVkOiBcIiVzXCIpLlxuIiwKLQkJCXRlc3RfbmFtZSwgZmxhZ3MsIEVQRVJNLCBzdHJlcnJvcihFUEVSTSksCi0JCQllcnJubywgc3RyZXJyb3IoZXJybm8pKTsKLQl9Ci0KLQlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCi0JCSIlcyB0ZXN0OiBmbGFncyA9ICVkLCBlcnJubyA9ICVkXG4iLAotCQl0ZXN0X25hbWUsIGZsYWdzLCBlcnJubyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgdGVzdF9tZW1iYXJyaWVyX3JlZ2lzdGVyX3ByaXZhdGVfZXhwZWRpdGVkX3N5bmNfY29yZV9zdWNjZXNzKHZvaWQpCi17Ci0JaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1JFR0lTVEVSX1BSSVZBVEVfRVhQRURJVEVEX1NZTkNfQ09SRSwgZmxhZ3MgPSAwOwotCWNvbnN0IGNoYXIgKnRlc3RfbmFtZSA9ICJzeXMgbWVtYmFycmllciBNRU1CQVJSSUVSX0NNRF9SRUdJU1RFUl9QUklWQVRFX0VYUEVESVRFRF9TWU5DX0NPUkUiOwotCi0JaWYgKHN5c19tZW1iYXJyaWVyKGNtZCwgZmxhZ3MpICE9IDApIHsKLQkJa3NmdF9leGl0X2ZhaWxfbXNnKAotCQkJIiVzIHRlc3Q6IGZsYWdzID0gJWQsIGVycm5vID0gJWRcbiIsCi0JCQl0ZXN0X25hbWUsIGZsYWdzLCBlcnJubyk7Ci0JfQotCi0Ja3NmdF90ZXN0X3Jlc3VsdF9wYXNzKAotCQkiJXMgdGVzdDogZmxhZ3MgPSAlZFxuIiwKLQkJdGVzdF9uYW1lLCBmbGFncyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgdGVzdF9tZW1iYXJyaWVyX3ByaXZhdGVfZXhwZWRpdGVkX3N5bmNfY29yZV9zdWNjZXNzKHZvaWQpCi17Ci0JaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1BSSVZBVEVfRVhQRURJVEVELCBmbGFncyA9IDA7Ci0JY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX1BSSVZBVEVfRVhQRURJVEVEX1NZTkNfQ09SRSI7Ci0KLQlpZiAoc3lzX21lbWJhcnJpZXIoY21kLCBmbGFncykgIT0gMCkgewotCQlrc2Z0X2V4aXRfZmFpbF9tc2coCi0JCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKLQkJCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKLQl9Ci0KLQlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCi0JCSIlcyB0ZXN0OiBmbGFncyA9ICVkXG4iLAotCQl0ZXN0X25hbWUsIGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfcmVnaXN0ZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKHZvaWQpCi17Ci0JaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1JFR0lTVEVSX0dMT0JBTF9FWFBFRElURUQsIGZsYWdzID0gMDsKLQljb25zdCBjaGFyICp0ZXN0X25hbWUgPSAic3lzIG1lbWJhcnJpZXIgTUVNQkFSUklFUl9DTURfUkVHSVNURVJfR0xPQkFMX0VYUEVESVRFRCI7Ci0KLQlpZiAoc3lzX21lbWJhcnJpZXIoY21kLCBmbGFncykgIT0gMCkgewotCQlrc2Z0X2V4aXRfZmFpbF9tc2coCi0JCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKLQkJCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKLQl9Ci0KLQlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCi0JCSIlcyB0ZXN0OiBmbGFncyA9ICVkXG4iLAotCQl0ZXN0X25hbWUsIGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKHZvaWQpCi17Ci0JaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX0dMT0JBTF9FWFBFRElURUQsIGZsYWdzID0gMDsKLQljb25zdCBjaGFyICp0ZXN0X25hbWUgPSAic3lzIG1lbWJhcnJpZXIgTUVNQkFSUklFUl9DTURfR0xPQkFMX0VYUEVESVRFRCI7Ci0KLQlpZiAoc3lzX21lbWJhcnJpZXIoY21kLCBmbGFncykgIT0gMCkgewotCQlrc2Z0X2V4aXRfZmFpbF9tc2coCi0JCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKLQkJCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKLQl9Ci0KLQlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCi0JCSIlcyB0ZXN0OiBmbGFncyA9ICVkXG4iLAotCQl0ZXN0X25hbWUsIGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXIodm9pZCkKLXsKLQlpbnQgc3RhdHVzOwotCi0Jc3RhdHVzID0gdGVzdF9tZW1iYXJyaWVyX2NtZF9mYWlsKCk7Ci0JaWYgKHN0YXR1cykKLQkJcmV0dXJuIHN0YXR1czsKLQlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfZmxhZ3NfZmFpbCgpOwotCWlmIChzdGF0dXMpCi0JCXJldHVybiBzdGF0dXM7Ci0Jc3RhdHVzID0gdGVzdF9tZW1iYXJyaWVyX2dsb2JhbF9zdWNjZXNzKCk7Ci0JaWYgKHN0YXR1cykKLQkJcmV0dXJuIHN0YXR1czsKLQlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfcHJpdmF0ZV9leHBlZGl0ZWRfZmFpbCgpOwotCWlmIChzdGF0dXMpCi0JCXJldHVybiBzdGF0dXM7Ci0Jc3RhdHVzID0gdGVzdF9tZW1iYXJyaWVyX3JlZ2lzdGVyX3ByaXZhdGVfZXhwZWRpdGVkX3N1Y2Nlc3MoKTsKLQlpZiAoc3RhdHVzKQotCQlyZXR1cm4gc3RhdHVzOwotCXN0YXR1cyA9IHRlc3RfbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZF9zdWNjZXNzKCk7Ci0JaWYgKHN0YXR1cykKLQkJcmV0dXJuIHN0YXR1czsKLQlzdGF0dXMgPSBzeXNfbWVtYmFycmllcihNRU1CQVJSSUVSX0NNRF9RVUVSWSwgMCk7Ci0JaWYgKHN0YXR1cyA8IDApIHsKLQkJa3NmdF90ZXN0X3Jlc3VsdF9mYWlsKCJzeXNfbWVtYmFycmllcigpIGZhaWxlZFxuIik7Ci0JCXJldHVybiBzdGF0dXM7Ci0JfQotCWlmIChzdGF0dXMgJiBNRU1CQVJSSUVSX0NNRF9QUklWQVRFX0VYUEVESVRFRF9TWU5DX0NPUkUpIHsKLQkJc3RhdHVzID0gdGVzdF9tZW1iYXJyaWVyX3ByaXZhdGVfZXhwZWRpdGVkX3N5bmNfY29yZV9mYWlsKCk7Ci0JCWlmIChzdGF0dXMpCi0JCQlyZXR1cm4gc3RhdHVzOwotCQlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfcmVnaXN0ZXJfcHJpdmF0ZV9leHBlZGl0ZWRfc3luY19jb3JlX3N1Y2Nlc3MoKTsKLQkJaWYgKHN0YXR1cykKLQkJCXJldHVybiBzdGF0dXM7Ci0JCXN0YXR1cyA9IHRlc3RfbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZF9zeW5jX2NvcmVfc3VjY2VzcygpOwotCQlpZiAoc3RhdHVzKQotCQkJcmV0dXJuIHN0YXR1czsKLQl9Ci0JLyoKLQkgKiBJdCBpcyB2YWxpZCB0byBzZW5kIGEgZ2xvYmFsIG1lbWJhcnJpZXIgZnJvbSBhIG5vbi1yZWdpc3RlcmVkCi0JICogcHJvY2Vzcy4KLQkgKi8KLQlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKCk7Ci0JaWYgKHN0YXR1cykKLQkJcmV0dXJuIHN0YXR1czsKLQlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfcmVnaXN0ZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKCk7Ci0JaWYgKHN0YXR1cykKLQkJcmV0dXJuIHN0YXR1czsKLQlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKCk7Ci0JaWYgKHN0YXR1cykKLQkJcmV0dXJuIHN0YXR1czsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfcXVlcnkodm9pZCkKLXsKLQlpbnQgZmxhZ3MgPSAwLCByZXQ7Ci0KLQlyZXQgPSBzeXNfbWVtYmFycmllcihNRU1CQVJSSUVSX0NNRF9RVUVSWSwgZmxhZ3MpOwotCWlmIChyZXQgPCAwKSB7Ci0JCWlmIChlcnJubyA9PSBFTk9TWVMpIHsKLQkJCS8qCi0JCQkgKiBJdCBpcyB2YWxpZCB0byBidWlsZCBhIGtlcm5lbCB3aXRoCi0JCQkgKiBDT05GSUdfTUVNQkFSUklFUj1uLiBIb3dldmVyLCB0aGlzIHNraXBzIHRoZSB0ZXN0cy4KLQkJCSAqLwotCQkJa3NmdF9leGl0X3NraXAoCi0JCQkJInN5cyBtZW1iYXJyaWVyIChDT05GSUdfTUVNQkFSUklFUikgaXMgZGlzYWJsZWQuXG4iKTsKLQkJfQotCQlrc2Z0X2V4aXRfZmFpbF9tc2coInN5c19tZW1iYXJyaWVyKCkgZmFpbGVkXG4iKTsKLQl9Ci0JaWYgKCEocmV0ICYgTUVNQkFSUklFUl9DTURfR0xPQkFMKSkKLQkJa3NmdF9leGl0X3NraXAoCi0JCQkic3lzX21lbWJhcnJpZXIgdW5zdXBwb3J0ZWQ6IENNRF9HTE9CQUwgbm90IGZvdW5kLlxuIik7Ci0KLQlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoInN5c19tZW1iYXJyaWVyIGF2YWlsYWJsZVxuIik7Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKLXsKLQlrc2Z0X3ByaW50X2hlYWRlcigpOwotCWtzZnRfc2V0X3BsYW4oMTMpOwotCi0JdGVzdF9tZW1iYXJyaWVyX3F1ZXJ5KCk7Ci0JdGVzdF9tZW1iYXJyaWVyKCk7Ci0KLQlyZXR1cm4ga3NmdF9leGl0X3Bhc3MoKTsKLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21lbWJhcnJpZXIvbWVtYmFycmllcl90ZXN0X2ltcGwuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21lbWJhcnJpZXIvbWVtYmFycmllcl90ZXN0X2ltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODZiZTY5Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtYmFycmllci9tZW1iYXJyaWVyX3Rlc3RfaW1wbC5oCkBAIC0wLDAgKzEsMzE3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworI2RlZmluZSBfR05VX1NPVVJDRQorI2luY2x1ZGUgPGxpbnV4L21lbWJhcnJpZXIuaD4KKyNpbmNsdWRlIDxzeXNjYWxsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworI2luY2x1ZGUgIi4uL2tzZWxmdGVzdC5oIgorCitzdGF0aWMgaW50IHN5c19tZW1iYXJyaWVyKGludCBjbWQsIGludCBmbGFncykKK3sKKwlyZXR1cm4gc3lzY2FsbChfX05SX21lbWJhcnJpZXIsIGNtZCwgZmxhZ3MpOworfQorCitzdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9jbWRfZmFpbCh2b2lkKQoreworCWludCBjbWQgPSAtMSwgZmxhZ3MgPSAwOworCWNvbnN0IGNoYXIgKnRlc3RfbmFtZSA9ICJzeXMgbWVtYmFycmllciBpbnZhbGlkIGNvbW1hbmQiOworCisJaWYgKHN5c19tZW1iYXJyaWVyKGNtZCwgZmxhZ3MpICE9IC0xKSB7CisJCWtzZnRfZXhpdF9mYWlsX21zZygKKwkJCSIlcyB0ZXN0OiBjb21tYW5kID0gJWQsIGZsYWdzID0gJWQuIFNob3VsZCBmYWlsLCBidXQgcGFzc2VkXG4iLAorCQkJdGVzdF9uYW1lLCBjbWQsIGZsYWdzKTsKKwl9CisJaWYgKGVycm5vICE9IEVJTlZBTCkgeworCQlrc2Z0X2V4aXRfZmFpbF9tc2coCisJCQkiJXMgdGVzdDogZmxhZ3MgPSAlZC4gU2hvdWxkIHJldHVybiAoJWQ6IFwiJXNcIiksIGJ1dCByZXR1cm5lZCAoJWQ6IFwiJXNcIikuXG4iLAorCQkJdGVzdF9uYW1lLCBmbGFncywgRUlOVkFMLCBzdHJlcnJvcihFSU5WQUwpLAorCQkJZXJybm8sIHN0cmVycm9yKGVycm5vKSk7CisJfQorCisJa3NmdF90ZXN0X3Jlc3VsdF9wYXNzKAorCQkiJXMgdGVzdDogY29tbWFuZCA9ICVkLCBmbGFncyA9ICVkLCBlcnJubyA9ICVkLiBGYWlsZWQgYXMgZXhwZWN0ZWRcbiIsCisJCXRlc3RfbmFtZSwgY21kLCBmbGFncywgZXJybm8pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9mbGFnc19mYWlsKHZvaWQpCit7CisJaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1FVRVJZLCBmbGFncyA9IDE7CisJY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX1FVRVJZIGludmFsaWQgZmxhZ3MiOworCisJaWYgKHN5c19tZW1iYXJyaWVyKGNtZCwgZmxhZ3MpICE9IC0xKSB7CisJCWtzZnRfZXhpdF9mYWlsX21zZygKKwkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLiBTaG91bGQgZmFpbCwgYnV0IHBhc3NlZFxuIiwKKwkJCXRlc3RfbmFtZSwgZmxhZ3MpOworCX0KKwlpZiAoZXJybm8gIT0gRUlOVkFMKSB7CisJCWtzZnRfZXhpdF9mYWlsX21zZygKKwkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLiBTaG91bGQgcmV0dXJuICglZDogXCIlc1wiKSwgYnV0IHJldHVybmVkICglZDogXCIlc1wiKS5cbiIsCisJCQl0ZXN0X25hbWUsIGZsYWdzLCBFSU5WQUwsIHN0cmVycm9yKEVJTlZBTCksCisJCQllcnJubywgc3RyZXJyb3IoZXJybm8pKTsKKwl9CisKKwlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCisJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLCBlcnJubyA9ICVkLiBGYWlsZWQgYXMgZXhwZWN0ZWRcbiIsCisJCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfZ2xvYmFsX3N1Y2Nlc3Modm9pZCkKK3sKKwlpbnQgY21kID0gTUVNQkFSUklFUl9DTURfR0xPQkFMLCBmbGFncyA9IDA7CisJY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX0dMT0JBTCI7CisKKwlpZiAoc3lzX21lbWJhcnJpZXIoY21kLCBmbGFncykgIT0gMCkgeworCQlrc2Z0X2V4aXRfZmFpbF9tc2coCisJCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKKwkJCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKKwl9CisKKwlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCisJCSIlcyB0ZXN0OiBmbGFncyA9ICVkXG4iLCB0ZXN0X25hbWUsIGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfcHJpdmF0ZV9leHBlZGl0ZWRfZmFpbCh2b2lkKQoreworCWludCBjbWQgPSBNRU1CQVJSSUVSX0NNRF9QUklWQVRFX0VYUEVESVRFRCwgZmxhZ3MgPSAwOworCWNvbnN0IGNoYXIgKnRlc3RfbmFtZSA9ICJzeXMgbWVtYmFycmllciBNRU1CQVJSSUVSX0NNRF9QUklWQVRFX0VYUEVESVRFRCBub3QgcmVnaXN0ZXJlZCBmYWlsdXJlIjsKKworCWlmIChzeXNfbWVtYmFycmllcihjbWQsIGZsYWdzKSAhPSAtMSkgeworCQlrc2Z0X2V4aXRfZmFpbF9tc2coCisJCQkiJXMgdGVzdDogZmxhZ3MgPSAlZC4gU2hvdWxkIGZhaWwsIGJ1dCBwYXNzZWRcbiIsCisJCQl0ZXN0X25hbWUsIGZsYWdzKTsKKwl9CisJaWYgKGVycm5vICE9IEVQRVJNKSB7CisJCWtzZnRfZXhpdF9mYWlsX21zZygKKwkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLiBTaG91bGQgcmV0dXJuICglZDogXCIlc1wiKSwgYnV0IHJldHVybmVkICglZDogXCIlc1wiKS5cbiIsCisJCQl0ZXN0X25hbWUsIGZsYWdzLCBFUEVSTSwgc3RyZXJyb3IoRVBFUk0pLAorCQkJZXJybm8sIHN0cmVycm9yKGVycm5vKSk7CisJfQorCisJa3NmdF90ZXN0X3Jlc3VsdF9wYXNzKAorCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKKwkJdGVzdF9uYW1lLCBmbGFncywgZXJybm8pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9yZWdpc3Rlcl9wcml2YXRlX2V4cGVkaXRlZF9zdWNjZXNzKHZvaWQpCit7CisJaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1JFR0lTVEVSX1BSSVZBVEVfRVhQRURJVEVELCBmbGFncyA9IDA7CisJY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX1JFR0lTVEVSX1BSSVZBVEVfRVhQRURJVEVEIjsKKworCWlmIChzeXNfbWVtYmFycmllcihjbWQsIGZsYWdzKSAhPSAwKSB7CisJCWtzZnRfZXhpdF9mYWlsX21zZygKKwkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLCBlcnJubyA9ICVkXG4iLAorCQkJdGVzdF9uYW1lLCBmbGFncywgZXJybm8pOworCX0KKworCWtzZnRfdGVzdF9yZXN1bHRfcGFzcygKKwkJIiVzIHRlc3Q6IGZsYWdzID0gJWRcbiIsCisJCXRlc3RfbmFtZSwgZmxhZ3MpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZF9zdWNjZXNzKHZvaWQpCit7CisJaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1BSSVZBVEVfRVhQRURJVEVELCBmbGFncyA9IDA7CisJY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX1BSSVZBVEVfRVhQRURJVEVEIjsKKworCWlmIChzeXNfbWVtYmFycmllcihjbWQsIGZsYWdzKSAhPSAwKSB7CisJCWtzZnRfZXhpdF9mYWlsX21zZygKKwkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLCBlcnJubyA9ICVkXG4iLAorCQkJdGVzdF9uYW1lLCBmbGFncywgZXJybm8pOworCX0KKworCWtzZnRfdGVzdF9yZXN1bHRfcGFzcygKKwkJIiVzIHRlc3Q6IGZsYWdzID0gJWRcbiIsCisJCXRlc3RfbmFtZSwgZmxhZ3MpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRlc3RfbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZF9zeW5jX2NvcmVfZmFpbCh2b2lkKQoreworCWludCBjbWQgPSBNRU1CQVJSSUVSX0NNRF9QUklWQVRFX0VYUEVESVRFRF9TWU5DX0NPUkUsIGZsYWdzID0gMDsKKwljb25zdCBjaGFyICp0ZXN0X25hbWUgPSAic3lzIG1lbWJhcnJpZXIgTUVNQkFSUklFUl9DTURfUFJJVkFURV9FWFBFRElURURfU1lOQ19DT1JFIG5vdCByZWdpc3RlcmVkIGZhaWx1cmUiOworCisJaWYgKHN5c19tZW1iYXJyaWVyKGNtZCwgZmxhZ3MpICE9IC0xKSB7CisJCWtzZnRfZXhpdF9mYWlsX21zZygKKwkJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLiBTaG91bGQgZmFpbCwgYnV0IHBhc3NlZFxuIiwKKwkJCXRlc3RfbmFtZSwgZmxhZ3MpOworCX0KKwlpZiAoZXJybm8gIT0gRVBFUk0pIHsKKwkJa3NmdF9leGl0X2ZhaWxfbXNnKAorCQkJIiVzIHRlc3Q6IGZsYWdzID0gJWQuIFNob3VsZCByZXR1cm4gKCVkOiBcIiVzXCIpLCBidXQgcmV0dXJuZWQgKCVkOiBcIiVzXCIpLlxuIiwKKwkJCXRlc3RfbmFtZSwgZmxhZ3MsIEVQRVJNLCBzdHJlcnJvcihFUEVSTSksCisJCQllcnJubywgc3RyZXJyb3IoZXJybm8pKTsKKwl9CisKKwlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCisJCSIlcyB0ZXN0OiBmbGFncyA9ICVkLCBlcnJubyA9ICVkXG4iLAorCQl0ZXN0X25hbWUsIGZsYWdzLCBlcnJubyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdGVzdF9tZW1iYXJyaWVyX3JlZ2lzdGVyX3ByaXZhdGVfZXhwZWRpdGVkX3N5bmNfY29yZV9zdWNjZXNzKHZvaWQpCit7CisJaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1JFR0lTVEVSX1BSSVZBVEVfRVhQRURJVEVEX1NZTkNfQ09SRSwgZmxhZ3MgPSAwOworCWNvbnN0IGNoYXIgKnRlc3RfbmFtZSA9ICJzeXMgbWVtYmFycmllciBNRU1CQVJSSUVSX0NNRF9SRUdJU1RFUl9QUklWQVRFX0VYUEVESVRFRF9TWU5DX0NPUkUiOworCisJaWYgKHN5c19tZW1iYXJyaWVyKGNtZCwgZmxhZ3MpICE9IDApIHsKKwkJa3NmdF9leGl0X2ZhaWxfbXNnKAorCQkJIiVzIHRlc3Q6IGZsYWdzID0gJWQsIGVycm5vID0gJWRcbiIsCisJCQl0ZXN0X25hbWUsIGZsYWdzLCBlcnJubyk7CisJfQorCisJa3NmdF90ZXN0X3Jlc3VsdF9wYXNzKAorCQkiJXMgdGVzdDogZmxhZ3MgPSAlZFxuIiwKKwkJdGVzdF9uYW1lLCBmbGFncyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdGVzdF9tZW1iYXJyaWVyX3ByaXZhdGVfZXhwZWRpdGVkX3N5bmNfY29yZV9zdWNjZXNzKHZvaWQpCit7CisJaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1BSSVZBVEVfRVhQRURJVEVELCBmbGFncyA9IDA7CisJY29uc3QgY2hhciAqdGVzdF9uYW1lID0gInN5cyBtZW1iYXJyaWVyIE1FTUJBUlJJRVJfQ01EX1BSSVZBVEVfRVhQRURJVEVEX1NZTkNfQ09SRSI7CisKKwlpZiAoc3lzX21lbWJhcnJpZXIoY21kLCBmbGFncykgIT0gMCkgeworCQlrc2Z0X2V4aXRfZmFpbF9tc2coCisJCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKKwkJCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKKwl9CisKKwlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCisJCSIlcyB0ZXN0OiBmbGFncyA9ICVkXG4iLAorCQl0ZXN0X25hbWUsIGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfcmVnaXN0ZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKHZvaWQpCit7CisJaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX1JFR0lTVEVSX0dMT0JBTF9FWFBFRElURUQsIGZsYWdzID0gMDsKKwljb25zdCBjaGFyICp0ZXN0X25hbWUgPSAic3lzIG1lbWJhcnJpZXIgTUVNQkFSUklFUl9DTURfUkVHSVNURVJfR0xPQkFMX0VYUEVESVRFRCI7CisKKwlpZiAoc3lzX21lbWJhcnJpZXIoY21kLCBmbGFncykgIT0gMCkgeworCQlrc2Z0X2V4aXRfZmFpbF9tc2coCisJCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKKwkJCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKKwl9CisKKwlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCisJCSIlcyB0ZXN0OiBmbGFncyA9ICVkXG4iLAorCQl0ZXN0X25hbWUsIGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKHZvaWQpCit7CisJaW50IGNtZCA9IE1FTUJBUlJJRVJfQ01EX0dMT0JBTF9FWFBFRElURUQsIGZsYWdzID0gMDsKKwljb25zdCBjaGFyICp0ZXN0X25hbWUgPSAic3lzIG1lbWJhcnJpZXIgTUVNQkFSUklFUl9DTURfR0xPQkFMX0VYUEVESVRFRCI7CisKKwlpZiAoc3lzX21lbWJhcnJpZXIoY21kLCBmbGFncykgIT0gMCkgeworCQlrc2Z0X2V4aXRfZmFpbF9tc2coCisJCQkiJXMgdGVzdDogZmxhZ3MgPSAlZCwgZXJybm8gPSAlZFxuIiwKKwkJCXRlc3RfbmFtZSwgZmxhZ3MsIGVycm5vKTsKKwl9CisKKwlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoCisJCSIlcyB0ZXN0OiBmbGFncyA9ICVkXG4iLAorCQl0ZXN0X25hbWUsIGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfZmFpbCh2b2lkKQoreworCWludCBzdGF0dXM7CisKKwlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfY21kX2ZhaWwoKTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1cm4gc3RhdHVzOworCXN0YXR1cyA9IHRlc3RfbWVtYmFycmllcl9mbGFnc19mYWlsKCk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKKwlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfcHJpdmF0ZV9leHBlZGl0ZWRfZmFpbCgpOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CisJc3RhdHVzID0gc3lzX21lbWJhcnJpZXIoTUVNQkFSUklFUl9DTURfUVVFUlksIDApOworCWlmIChzdGF0dXMgPCAwKSB7CisJCWtzZnRfdGVzdF9yZXN1bHRfZmFpbCgic3lzX21lbWJhcnJpZXIoKSBmYWlsZWRcbiIpOworCQlyZXR1cm4gc3RhdHVzOworCX0KKwlpZiAoc3RhdHVzICYgTUVNQkFSUklFUl9DTURfUFJJVkFURV9FWFBFRElURURfU1lOQ19DT1JFKSB7CisJCXN0YXR1cyA9IHRlc3RfbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZF9zeW5jX2NvcmVfZmFpbCgpOworCQlpZiAoc3RhdHVzKQorCQkJcmV0dXJuIHN0YXR1czsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdGVzdF9tZW1iYXJyaWVyX3N1Y2Nlc3Modm9pZCkKK3sKKwlpbnQgc3RhdHVzOworCisJc3RhdHVzID0gdGVzdF9tZW1iYXJyaWVyX2dsb2JhbF9zdWNjZXNzKCk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKKwlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfcmVnaXN0ZXJfcHJpdmF0ZV9leHBlZGl0ZWRfc3VjY2VzcygpOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CisJc3RhdHVzID0gdGVzdF9tZW1iYXJyaWVyX3ByaXZhdGVfZXhwZWRpdGVkX3N1Y2Nlc3MoKTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1cm4gc3RhdHVzOworCXN0YXR1cyA9IHN5c19tZW1iYXJyaWVyKE1FTUJBUlJJRVJfQ01EX1FVRVJZLCAwKTsKKwlpZiAoc3RhdHVzIDwgMCkgeworCQlrc2Z0X3Rlc3RfcmVzdWx0X2ZhaWwoInN5c19tZW1iYXJyaWVyKCkgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIHN0YXR1czsKKwl9CisJaWYgKHN0YXR1cyAmIE1FTUJBUlJJRVJfQ01EX1BSSVZBVEVfRVhQRURJVEVEX1NZTkNfQ09SRSkgeworCQlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfcmVnaXN0ZXJfcHJpdmF0ZV9leHBlZGl0ZWRfc3luY19jb3JlX3N1Y2Nlc3MoKTsKKwkJaWYgKHN0YXR1cykKKwkJCXJldHVybiBzdGF0dXM7CisJCXN0YXR1cyA9IHRlc3RfbWVtYmFycmllcl9wcml2YXRlX2V4cGVkaXRlZF9zeW5jX2NvcmVfc3VjY2VzcygpOworCQlpZiAoc3RhdHVzKQorCQkJcmV0dXJuIHN0YXR1czsKKwl9CisJLyoKKwkgKiBJdCBpcyB2YWxpZCB0byBzZW5kIGEgZ2xvYmFsIG1lbWJhcnJpZXIgZnJvbSBhIG5vbi1yZWdpc3RlcmVkCisJICogcHJvY2Vzcy4KKwkgKi8KKwlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKCk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKKwlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfcmVnaXN0ZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKCk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKKwlzdGF0dXMgPSB0ZXN0X21lbWJhcnJpZXJfZ2xvYmFsX2V4cGVkaXRlZF9zdWNjZXNzKCk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0ZXN0X21lbWJhcnJpZXJfcXVlcnkodm9pZCkKK3sKKwlpbnQgZmxhZ3MgPSAwLCByZXQ7CisKKwlyZXQgPSBzeXNfbWVtYmFycmllcihNRU1CQVJSSUVSX0NNRF9RVUVSWSwgZmxhZ3MpOworCWlmIChyZXQgPCAwKSB7CisJCWlmIChlcnJubyA9PSBFTk9TWVMpIHsKKwkJCS8qCisJCQkgKiBJdCBpcyB2YWxpZCB0byBidWlsZCBhIGtlcm5lbCB3aXRoCisJCQkgKiBDT05GSUdfTUVNQkFSUklFUj1uLiBIb3dldmVyLCB0aGlzIHNraXBzIHRoZSB0ZXN0cy4KKwkJCSAqLworCQkJa3NmdF9leGl0X3NraXAoCisJCQkJInN5cyBtZW1iYXJyaWVyIChDT05GSUdfTUVNQkFSUklFUikgaXMgZGlzYWJsZWQuXG4iKTsKKwkJfQorCQlrc2Z0X2V4aXRfZmFpbF9tc2coInN5c19tZW1iYXJyaWVyKCkgZmFpbGVkXG4iKTsKKwl9CisJaWYgKCEocmV0ICYgTUVNQkFSUklFUl9DTURfR0xPQkFMKSkKKwkJa3NmdF9leGl0X3NraXAoCisJCQkic3lzX21lbWJhcnJpZXIgdW5zdXBwb3J0ZWQ6IENNRF9HTE9CQUwgbm90IGZvdW5kLlxuIik7CisKKwlrc2Z0X3Rlc3RfcmVzdWx0X3Bhc3MoInN5c19tZW1iYXJyaWVyIGF2YWlsYWJsZVxuIik7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9tZW1iYXJyaWVyL21lbWJhcnJpZXJfdGVzdF9tdWx0aV90aHJlYWQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21lbWJhcnJpZXIvbWVtYmFycmllcl90ZXN0X211bHRpX3RocmVhZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNTYxM2UKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9tZW1iYXJyaWVyL21lbWJhcnJpZXJfdGVzdF9tdWx0aV90aHJlYWQuYwpAQCAtMCwwICsxLDczIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorI2RlZmluZSBfR05VX1NPVVJDRQorI2luY2x1ZGUgPGxpbnV4L21lbWJhcnJpZXIuaD4KKyNpbmNsdWRlIDxzeXNjYWxsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworI2luY2x1ZGUgIm1lbWJhcnJpZXJfdGVzdF9pbXBsLmgiCisKK3N0YXRpYyBpbnQgdGhyZWFkX3JlYWR5LCB0aHJlYWRfcXVpdDsKK3N0YXRpYyBwdGhyZWFkX211dGV4X3QgdGVzdF9tZW1iYXJyaWVyX3RocmVhZF9tdXRleCA9CisJUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKK3N0YXRpYyBwdGhyZWFkX2NvbmRfdCB0ZXN0X21lbWJhcnJpZXJfdGhyZWFkX2NvbmQgPQorCVBUSFJFQURfQ09ORF9JTklUSUFMSVpFUjsKKwordm9pZCAqdGVzdF9tZW1iYXJyaWVyX3RocmVhZCh2b2lkICphcmcpCit7CisJcHRocmVhZF9tdXRleF9sb2NrKCZ0ZXN0X21lbWJhcnJpZXJfdGhyZWFkX211dGV4KTsKKwl0aHJlYWRfcmVhZHkgPSAxOworCXB0aHJlYWRfY29uZF9icm9hZGNhc3QoJnRlc3RfbWVtYmFycmllcl90aHJlYWRfY29uZCk7CisJcHRocmVhZF9tdXRleF91bmxvY2soJnRlc3RfbWVtYmFycmllcl90aHJlYWRfbXV0ZXgpOworCisJcHRocmVhZF9tdXRleF9sb2NrKCZ0ZXN0X21lbWJhcnJpZXJfdGhyZWFkX211dGV4KTsKKwl3aGlsZSAoIXRocmVhZF9xdWl0KQorCQlwdGhyZWFkX2NvbmRfd2FpdCgmdGVzdF9tZW1iYXJyaWVyX3RocmVhZF9jb25kLAorCQkJCSAgJnRlc3RfbWVtYmFycmllcl90aHJlYWRfbXV0ZXgpOworCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ0ZXN0X21lbWJhcnJpZXJfdGhyZWFkX211dGV4KTsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW50IHRlc3RfbXRfbWVtYmFycmllcih2b2lkKQoreworCWludCBpOworCXB0aHJlYWRfdCB0ZXN0X3RocmVhZDsKKworCXB0aHJlYWRfY3JlYXRlKCZ0ZXN0X3RocmVhZCwgTlVMTCwKKwkJICAgICAgIHRlc3RfbWVtYmFycmllcl90aHJlYWQsIE5VTEwpOworCisJcHRocmVhZF9tdXRleF9sb2NrKCZ0ZXN0X21lbWJhcnJpZXJfdGhyZWFkX211dGV4KTsKKwl3aGlsZSAoIXRocmVhZF9yZWFkeSkKKwkJcHRocmVhZF9jb25kX3dhaXQoJnRlc3RfbWVtYmFycmllcl90aHJlYWRfY29uZCwKKwkJCQkgICZ0ZXN0X21lbWJhcnJpZXJfdGhyZWFkX211dGV4KTsKKwlwdGhyZWFkX211dGV4X3VubG9jaygmdGVzdF9tZW1iYXJyaWVyX3RocmVhZF9tdXRleCk7CisKKwl0ZXN0X21lbWJhcnJpZXJfZmFpbCgpOworCisJdGVzdF9tZW1iYXJyaWVyX3N1Y2Nlc3MoKTsKKworCXB0aHJlYWRfbXV0ZXhfbG9jaygmdGVzdF9tZW1iYXJyaWVyX3RocmVhZF9tdXRleCk7CisJdGhyZWFkX3F1aXQgPSAxOworCXB0aHJlYWRfY29uZF9icm9hZGNhc3QoJnRlc3RfbWVtYmFycmllcl90aHJlYWRfY29uZCk7CisJcHRocmVhZF9tdXRleF91bmxvY2soJnRlc3RfbWVtYmFycmllcl90aHJlYWRfbXV0ZXgpOworCisJcHRocmVhZF9qb2luKHRlc3RfdGhyZWFkLCBOVUxMKTsKKworCXJldHVybiAwOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJa3NmdF9wcmludF9oZWFkZXIoKTsKKwlrc2Z0X3NldF9wbGFuKDEzKTsKKworCXRlc3RfbWVtYmFycmllcl9xdWVyeSgpOworCisJLyogTXVsdGktdGhyZWFkZWQgKi8KKwl0ZXN0X210X21lbWJhcnJpZXIoKTsKKworCXJldHVybiBrc2Z0X2V4aXRfcGFzcygpOworfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtYmFycmllci9tZW1iYXJyaWVyX3Rlc3Rfc2luZ2xlX3RocmVhZC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtYmFycmllci9tZW1iYXJyaWVyX3Rlc3Rfc2luZ2xlX3RocmVhZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxYzk2MzkKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9tZW1iYXJyaWVyL21lbWJhcnJpZXJfdGVzdF9zaW5nbGVfdGhyZWFkLmMKQEAgLTAsMCArMSwyNCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyNkZWZpbmUgX0dOVV9TT1VSQ0UKKyNpbmNsdWRlIDxsaW51eC9tZW1iYXJyaWVyLmg+CisjaW5jbHVkZSA8c3lzY2FsbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisKKyNpbmNsdWRlICJtZW1iYXJyaWVyX3Rlc3RfaW1wbC5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJa3NmdF9wcmludF9oZWFkZXIoKTsKKwlrc2Z0X3NldF9wbGFuKDEzKTsKKworCXRlc3RfbWVtYmFycmllcl9xdWVyeSgpOworCisJdGVzdF9tZW1iYXJyaWVyX2ZhaWwoKTsKKworCXRlc3RfbWVtYmFycmllcl9zdWNjZXNzKCk7CisKKwlyZXR1cm4ga3NmdF9leGl0X3Bhc3MoKTsKK30KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL01ha2VmaWxlCmluZGV4IGIzYWQ5MDkuLjY0NDc3MGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvTWFrZWZpbGUKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9NYWtlZmlsZQpAQCAtMjYsNiArMjYsNyBAQAogCSAgIHN3aXRjaF9lbmRpYW4JXAogCSAgIHN5c2NhbGxzCQlcCiAJICAgdG0JCQlcCisJICAgZWVoCQkJXAogCSAgIHZwaG4gICAgICAgICBcCiAJICAgbWF0aAkJXAogCSAgIHB0cmFjZQlcCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL2NvcHlsb29wcy8uZ2l0aWdub3JlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9jb3B5bG9vcHMvLmdpdGlnbm9yZQppbmRleCBjZTEyY2QwLi4xMmVmNWIwIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL2NvcHlsb29wcy8uZ2l0aWdub3JlCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvY29weWxvb3BzLy5naXRpZ25vcmUKQEAgLTEsMTMgKzEsMTQgQEAKIGNvcHl1c2VyXzY0X3QwCiBjb3B5dXNlcl82NF90MQogY29weXVzZXJfNjRfdDIKLWNvcHl1c2VyX3Bvd2VyN190MAotY29weXVzZXJfcG93ZXI3X3QxCitjb3B5dXNlcl9wN190MAorY29weXVzZXJfcDdfdDEKIG1lbWNweV82NF90MAogbWVtY3B5XzY0X3QxCiBtZW1jcHlfNjRfdDIKLW1lbWNweV9wb3dlcjdfdDAKLW1lbWNweV9wb3dlcjdfdDEKK21lbWNweV9wN190MAorbWVtY3B5X3A3X3QxCiBjb3B5dXNlcl82NF9leGNfdDAKIGNvcHl1c2VyXzY0X2V4Y190MQogY29weXVzZXJfNjRfZXhjX3QyCittZW1jcHlfbWNzYWZlXzY0CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL2NvcHlsb29wcy9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvY29weWxvb3BzL01ha2VmaWxlCmluZGV4IDQ0NTc0ZjMuLjA5MTc5ODMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvY29weWxvb3BzL01ha2VmaWxlCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvY29weWxvb3BzL01ha2VmaWxlCkBAIC0xMiw3ICsxMiw3IEBACiBURVNUX0dFTl9QUk9HUyA6PSBjb3B5dXNlcl82NF90MCBjb3B5dXNlcl82NF90MSBjb3B5dXNlcl82NF90MiBcCiAJCWNvcHl1c2VyX3A3X3QwIGNvcHl1c2VyX3A3X3QxIFwKIAkJbWVtY3B5XzY0X3QwIG1lbWNweV82NF90MSBtZW1jcHlfNjRfdDIgXAotCQltZW1jcHlfcDdfdDAgbWVtY3B5X3A3X3QxIFwKKwkJbWVtY3B5X3A3X3QwIG1lbWNweV9wN190MSBtZW1jcHlfbWNzYWZlXzY0IFwKIAkJY29weXVzZXJfNjRfZXhjX3QwIGNvcHl1c2VyXzY0X2V4Y190MSBjb3B5dXNlcl82NF9leGNfdDIKIAogRVhUUkFfU09VUkNFUyA6PSB2YWxpZGF0ZS5jIC4uL2hhcm5lc3MuYyBzdHVicy5TCkBAIC00NSw2ICs0NSwxMSBAQAogCQktRCBTRUxGVEVTVF9DQVNFPSQoc3Vic3QgbWVtY3B5X3A3X3QsLCQobm90ZGlyICRAKSkgXAogCQktbyAkQCAkXgogCiskKE9VVFBVVCkvbWVtY3B5X21jc2FmZV82NDogbWVtY3B5X21jc2FmZV82NC5TICQoRVhUUkFfU09VUkNFUykKKwkkKENDKSAkKENQUEZMQUdTKSAkKENGTEFHUykgXAorCQktRCBDT1BZX0xPT1A9dGVzdF9tZW1jcHlfbWNzYWZlIFwKKwkJLW8gJEAgJF4KKwogJChPVVRQVVQpL2NvcHl1c2VyXzY0X2V4Y190JTogY29weXVzZXJfNjQuUyBleGNfdmFsaWRhdGUuYyAuLi9oYXJuZXNzLmMgXAogCQljb3B5X3RvZnJvbV91c2VyX3JlZmVyZW5jZS5TIHN0dWJzLlMKIAkkKENDKSAkKENQUEZMQUdTKSAkKENGTEFHUykgXApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9jb3B5bG9vcHMvYXNtL2V4cG9ydC5oIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9jb3B5bG9vcHMvYXNtL2V4cG9ydC5oCmluZGV4IDA1YzE2NjMuLmU2YjgwZDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvY29weWxvb3BzL2FzbS9leHBvcnQuaAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL2NvcHlsb29wcy9hc20vZXhwb3J0LmgKQEAgLTEsMyArMSw0IEBACiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwogI2RlZmluZSBFWFBPUlRfU1lNQk9MKHgpCisjZGVmaW5lIEVYUE9SVF9TWU1CT0xfR1BMKHgpCiAjZGVmaW5lIEVYUE9SVF9TWU1CT0xfS0FTQU4oeCkKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvY29weWxvb3BzL21lbWNweV9tY3NhZmVfNjQuUyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvY29weWxvb3BzL21lbWNweV9tY3NhZmVfNjQuUwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwLi5mMGZlZWYzCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9jb3B5bG9vcHMvbWVtY3B5X21jc2FmZV82NC5TCkBAIC0wLDAgKzEgQEAKKy4uLy4uLy4uLy4uLy4uL2FyY2gvcG93ZXJwYy9saWIvbWVtY3B5X21jc2FmZV82NC5TClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9lZWgvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL2VlaC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzk3YmFiCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9lZWgvTWFrZWZpbGUKQEAgLTAsMCArMSw5IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCitub2FyZzoKKwkkKE1BS0UpIC1DIC4uLworCitURVNUX1BST0dTIDo9IGVlaC1iYXNpYy5zaAorVEVTVF9GSUxFUyA6PSBlZWgtZnVuY3Rpb25zLnNoCisKK3RvcF9zcmNkaXIgPSAuLi8uLi8uLi8uLi8uLgoraW5jbHVkZSAuLi8uLi9saWIubWsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvZWVoL2VlaC1iYXNpYy5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvZWVoL2VlaC1iYXNpYy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOTg4ZDJmCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9lZWgvZWVoLWJhc2ljLnNoCkBAIC0wLDAgKzEsODIgQEAKKyMhL2Jpbi9zaAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisKKy4gLi9lZWgtZnVuY3Rpb25zLnNoCisKK2lmICEgZWVoX3N1cHBvcnRlZCA7IHRoZW4KKwllY2hvICJFRUggbm90IHN1cHBvcnRlZCBvbiB0aGlzIHN5c3RlbSwgc2tpcHBpbmciCisJZXhpdCAwOworZmkKKworaWYgWyAhIC1lICIvc3lzL2tlcm5lbC9kZWJ1Zy9wb3dlcnBjL2VlaF9kZXZfY2hlY2siIF0gJiYgXAorICAgWyAhIC1lICIvc3lzL2tlcm5lbC9kZWJ1Zy9wb3dlcnBjL2VlaF9kZXZfYnJlYWsiIF0gOyB0aGVuCisJZWNobyAiZGVidWdmcyBFRUggdGVzdGluZyBmaWxlcyBhcmUgbWlzc2luZy4gSXMgZGVidWdmcyBtb3VudGVkPyIKKwlleGl0IDE7CitmaQorCitwcmVfbHNwY2k9YG1rdGVtcGAKK2xzcGNpID4gJHByZV9sc3BjaQorCisjIEJ1bXAgdGhlIG1heCBmcmVlemUgY291bnQgdG8gc29tZXRoaW5nIGFic3VyZCBzbyB3ZSBkb24ndAorIyB0cmlwIG92ZXIgaXQgd2hpbGUgYnJlYWtpbmcgdGhpbmdzLgorZWNobyA1MDAwID4gL3N5cy9rZXJuZWwvZGVidWcvcG93ZXJwYy9lZWhfbWF4X2ZyZWV6ZXMKKworIyByZWNvcmQgdGhlIGRldmljZXMgdGhhdCB3ZSBicmVhayBpbiBoZXJlLiBBc3N1bWluZyBldmVyeXRoaW5nCisjIGdvZXMgdG8gcGxhbiB3ZSBzaG91bGQgZ2V0IHRoZW0gYmFjayBvbmNlIHRoZSByZWNvdmVyIHByb2Nlc3MKKyMgaXMgZmluaXNoZWQuCitkZXZpY2VzPSIiCisKKyMgQnVpbGQgdXAgYSBsaXN0IG9mIGNhbmRpZGF0ZSBkZXZpY2VzLgorZm9yIGRldiBpbiBgbHMgLTEgL3N5cy9idXMvcGNpL2RldmljZXMvIHwgZ3JlcCAnXC4wJCdgIDsgZG8KKwkjIHNraXAgYnJpZGdlcyBzaW5jZSB3ZSBjYW4ndCByZWNvdmVyIHRoZW0gKHlldC4uLikKKwlpZiBbIC1lICIvc3lzL2J1cy9wY2kvZGV2aWNlcy8kZGV2L3BjaV9idXMiIF0gOyB0aGVuCisJCWVjaG8gIiRkZXYsIFNraXBwZWQ6IGJyaWRnZSIKKwkJY29udGludWU7CisJZmkKKworCSMgU2tpcCBWRnMgZm9yIG5vdyBzaW5jZSB3ZSBkb24ndCBoYXZlIGEgcmVsaWFibGUgd2F5CisJIyB0byBicmVhayB0aGVtLgorCWlmIFsgLWUgIi9zeXMvYnVzL3BjaS9kZXZpY2VzLyRkZXYvcGh5c2ZuIiBdIDsgdGhlbgorCQllY2hvICIkZGV2LCBTa2lwcGVkOiB2aXJ0Zm4iCisJCWNvbnRpbnVlOworCWZpCisKKwkjIERvbid0IGluamVjdCBlcnJvc3IgaW50byBhbiBhbHJlYWR5LWZyb3plbiBQRS4gVGhpcyBoYXBwZW5zIHdpdGgKKwkjIFBFcyB0aGF0IGNvbnRhaW4gbXVsdGlwbGUgUENJIGRldmljZXMgKGUuZy4gbXVsdGktZnVuY3Rpb24gY2FyZHMpCisJIyBhbmQgaW5qZWN0aW5nIG5ldyBlcnJvcnMgZHVyaW5nIHRoZSByZWNvdmVyeSBwcm9jZXNzIHdpbGwgcHJvYmFibHkKKwkjIHJlc3VsdCBpbiB0aGUgcmVjb3ZlcnkgZmFpbGluZyBhbmQgdGhlIGRldmljZSBiZWluZyBtYXJrZWQgYXMKKwkjIGZhaWxlZC4KKwlpZiAhIHBlX29rICRkZXYgOyB0aGVuCisJCWVjaG8gIiRkZXYsIFNraXBwZWQ6IEJhZCBpbml0aWFsIFBFIHN0YXRlIgorCQljb250aW51ZTsKKwlmaQorCisJZWNobyAiJGRldiwgQWRkZWQiCisKKwkjIEFkZCB0byB0aGlzIGxpc3Qgb2YgZGV2aWNlIHRvIGNoZWNrCisJZGV2aWNlcz0iJGRldmljZXMgJGRldiIKK2RvbmUKKworZGV2X2NvdW50PSIkKGVjaG8gJGRldmljZXMgfCB3YyAtdykiCitlY2hvICJGb3VuZCAke2Rldl9jb3VudH0gYnJlYWthYmxlIGRldmljZXMuLi4iCisKK2ZhaWxlZD0wCitmb3IgZGV2IGluICRkZXZpY2VzIDsgZG8KKwllY2hvICJCcmVha2luZyAkZGV2Li4uIgorCisJaWYgISBwZV9vayAkZGV2IDsgdGhlbgorCQllY2hvICJTa2lwcGluZyAkZGV2LCBJbml0aWFsIFBFIHN0YXRlIGlzIG5vdCBvayIKKwkJZmFpbGVkPSIkKChmYWlsZWQgKyAxKSkiCisJCWNvbnRpbnVlOworCWZpCisKKwlpZiAhIGVlaF9vbmVfZGV2ICRkZXYgOyB0aGVuCisJCWZhaWxlZD0iJCgoZmFpbGVkICsgMSkpIgorCWZpCitkb25lCisKK2VjaG8gIiRmYWlsZWQgZGV2aWNlcyBmYWlsZWQgdG8gcmVjb3ZlciAoJGRldl9jb3VudCB0ZXN0ZWQpIgorbHNwY2kgfCBkaWZmIC11ICRwcmVfbHNwY2kgLQorcm0gLWYgJHByZV9sc3BjaQorCitleGl0ICRmYWlsZWQKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvZWVoL2VlaC1mdW5jdGlvbnMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL2VlaC9lZWgtZnVuY3Rpb25zLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI2MTEyYWIKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL2VlaC9lZWgtZnVuY3Rpb25zLnNoCkBAIC0wLDAgKzEsNzYgQEAKKyMhL2Jpbi9zaAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisKK3BlX29rKCkgeworCWxvY2FsIGRldj0iJDEiCisJbG9jYWwgcGF0aD0iL3N5cy9idXMvcGNpL2RldmljZXMvJGRldi9lZWhfcGVfc3RhdGUiCisKKwlpZiAhIFsgLWUgIiRwYXRoIiBdIDsgdGhlbgorCQlyZXR1cm4gMTsKKwlmaQorCisJbG9jYWwgZndfc3RhdGU9IiQoY3V0IC1kJyAnIC1mMSA8ICRwYXRoKSIKKwlsb2NhbCBzd19zdGF0ZT0iJChjdXQgLWQnICcgLWYyIDwgJHBhdGgpIgorCisJIyBJZiBFRUhfUEVfSVNPTEFURUQgb3IgRUVIX1BFX1JFQ09WRVJJTkcgYXJlIHNldCB0aGVuIHRoZSBQRSBpcyBpbiBhbgorCSMgZXJyb3Igc3RhdGUgb3IgYmVpbmcgcmVjb3ZlcmVkLiBFaXRoZXIgd2F5LCBub3Qgb2suCisJaWYgWyAiJCgoc3dfc3RhdGUgJiAweDMpKSIgLW5lIDAgXSA7IHRoZW4KKwkJcmV0dXJuIDEKKwlmaQorCisJIyBBIGZ1bmN0aW9uaW5nIFBFIHNob3VsZCBoYXZlIHRoZSBFRUhfU1RBVEVfTU1JT19BQ1RJVkUgYW5kCisJIyBFRUhfU1RBVEVfRE1BX0FDVElWRSBmbGFncyBzZXQuIEZvciBzb21lIGdvZGRhbW4gc3R1cGlkIHJlYXNvbgorCSMgdGhlIHBsYXRmb3JtIGJhY2tlbmRzIHNldCB0aGVzZSB3aGVuIHRoZSBQRSBpcyBpbiByZXNldC4gVGhlCisJIyBSRUNPVkVSSU5HIGNoZWNrIGFib3ZlIHNob3VsZCBzdG9wIGFueSBmYWxzZSBwb3NpdGl2ZXMgdGhvdWdoLgorCWlmIFsgIiQoKGZ3X3N0YXRlICYgMHgxOCkpIiAtbmUgIiQoKDB4MTgpKSIgXSA7IHRoZW4KKwkJcmV0dXJuIDEKKwlmaQorCisJcmV0dXJuIDA7Cit9CisKK2VlaF9zdXBwb3J0ZWQoKSB7CisJdGVzdCAtZSAvcHJvYy9wb3dlcnBjL2VlaCAmJiBcCisJZ3JlcCAtcSAnRUVIIFN1YnN5c3RlbSBpcyBlbmFibGVkJyAvcHJvYy9wb3dlcnBjL2VlaAorfQorCitlZWhfb25lX2RldigpIHsKKwlsb2NhbCBkZXY9IiQxIgorCisJIyBVc2luZyB0aGlzIGZ1bmN0aW9uIGZyb20gdGhlIGNvbW1hbmQgbGluZSBpcyBzb21ldGltZXMgdXNlZnVsIGZvcgorCSMgdGVzdGluZyBzbyBjaGVjayB0aGF0IHRoZSBhcmd1bWVudCBpcyBhIHdlbGwtZm9ybWVkIHN5c2ZzIGRldmljZQorCSMgbmFtZS4KKwlpZiAhIHRlc3QgLWUgL3N5cy9idXMvcGNpL2RldmljZXMvJGRldi8gOyB0aGVuCisJCWVjaG8gIkVycm9yOiAnJGRldicgbXVzdCBiZSBhIHN5c2ZzIGRldmljZSBuYW1lIChEREREOkJCOkRELkYpIgorCQlyZXR1cm4gMTsKKwlmaQorCisJIyBCcmVhayBpdAorCWVjaG8gJGRldiA+L3N5cy9rZXJuZWwvZGVidWcvcG93ZXJwYy9lZWhfZGV2X2JyZWFrCisKKwkjIEZvcmNlIGFuIEVFSCBkZXZpY2UgY2hlY2suIElmIHRoZSBrZXJuZWwgaGFzIGFscmVhZHkKKwkjIG5vdGljZWQgdGhlIEVFSCAoZHVlIHRvIGEgZHJpdmVyIHBvbGwgb3Igd2hhdGV2ZXIpLCB0aGlzCisJIyBpcyBhIG5vLW9wLgorCWVjaG8gJGRldiA+L3N5cy9rZXJuZWwvZGVidWcvcG93ZXJwYy9lZWhfZGV2X2NoZWNrCisKKwkjIEVuZm9yY2UgYSAzMHMgdGltZW91dCBmb3IgcmVjb3ZlcnkuIEV2ZW4gdGhlIElQUiwgd2hpY2ggaXMgaW5mYW1vdXNseQorCSMgc2xvdyB0byByZXNldCwgc2hvdWxkIHJlY292ZXIgd2l0aGluIDMwcy4KKwltYXhfd2FpdD0zMAorCisJZm9yIGkgaW4gYHNlcSAwICR7bWF4X3dhaXR9YCA7IGRvCisJCWlmIHBlX29rICRkZXYgOyB0aGVuCisJCQlicmVhazsKKwkJZmkKKwkJZWNobyAiJGRldiwgd2FpdGVkICRpLyR7bWF4X3dhaXR9IgorCQlzbGVlcCAxCisJZG9uZQorCisJaWYgISBwZV9vayAkZGV2IDsgdGhlbgorCQllY2hvICIkZGV2LCBGYWlsZWQgdG8gcmVjb3ZlciEiCisJCXJldHVybiAxOworCWZpCisKKwllY2hvICIkZGV2LCBSZWNvdmVyZWQgYWZ0ZXIgJGkgc2Vjb25kcyIKKwlyZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9tbS9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvbW0vTWFrZWZpbGUKaW5kZXggZjFmYmMxNS4uZWQxNTY1OCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9tbS9NYWtlZmlsZQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL21tL01ha2VmaWxlCkBAIC00LDYgKzQsNyBAQAogCiBURVNUX0dFTl9QUk9HUyA6PSBodWdldGxiX3ZzX3RocF90ZXN0IHN1YnBhZ2VfcHJvdCBwcm90X3NhbyBzZWd2X2Vycm9ycyB3aWxkX2JjdHIgXAogCQkgIGxhcmdlX3ZtX2Zvcmtfc2VwYXJhdGlvbgorVEVTVF9HRU5fUFJPR1NfRVhURU5ERUQgOj0gdGxiaWVfdGVzdAogVEVTVF9HRU5fRklMRVMgOj0gdGVtcGZpbGUKIAogdG9wX3NyY2RpciA9IC4uLy4uLy4uLy4uLy4uCkBAIC0xOSwzICsyMCw0IEBACiAkKE9VVFBVVCkvdGVtcGZpbGU6CiAJZGQgaWY9L2Rldi96ZXJvIG9mPSRAIGJzPTY0ayBjb3VudD0xCiAKKyQoT1VUUFVUKS90bGJpZV90ZXN0OiBMRExJQlMgKz0gLWxwdGhyZWFkCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL21tL3RsYmllX3Rlc3QuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvbW0vdGxiaWVfdGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4NjhhNWQKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL21tL3RsYmllX3Rlc3QuYwpAQCAtMCwwICsxLDczNCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKworLyoKKyAqIENvcHlyaWdodCAyMDE5LCBOaWNrIFBpZ2dpbiwgR2F1dGhhbSBSLiBTaGVub3ksIEFuZWVzaCBLdW1hciBLLlYsIElCTSBDb3JwLgorICovCisKKy8qCisgKgorICogVGVzdCB0bGJpZS9tdHBpZHIgcmFjZS4gV2UgaGF2ZSA0IHRocmVhZHMgZG9pbmcgZmx1c2gvbG9hZC9jb21wYXJlL3N0b3JlCisgKiBzZXF1ZW5jZSBpbiBhIGxvb3AuIFRoZSBzYW1lIHRocmVhZHMgYWxzbyBydW5nIGEgY29udGV4dCBzd2l0Y2ggdGFzaworICogdGhhdCBkb2VzIHNjaGVkX3lpZWxkKCkgaW4gbG9vcC4KKyAqCisgKiBUaGUgc25hcHNob3QgdGhyZWFkIG1hcmsgdGhlIG1tYXAgYXJlYSBQUk9UX1JFQUQgaW4gYmV0d2VlbiwgbWFrZSBhIGNvcHkKKyAqIGFuZCBjb3B5IGl0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGFyZWEuIFRoaXMgaGVscHMgdXMgdG8gZGV0ZWN0IGlmIGFueQorICogc3RvcmUgY29udGludWVkIHRvIGhhcHBlbiBhZnRlciB3ZSBtYXJrZWQgdGhlIG1lbW9yeSBQUk9UX1JFQUQuCisgKi8KKworI2RlZmluZSBfR05VX1NPVVJDRQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPHN5cy9pcGMuaD4KKyNpbmNsdWRlIDxzeXMvc2htLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Z1dGV4Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c2NoZWQuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8c2NoZWQuaD4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBkY2JmKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqYWRkcikKK3sKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImRjYmYgJXkwOyBzeW5jIiA6IDogIloiKCoodW5zaWduZWQgY2hhciAqKWFkZHIpIDogIm1lbW9yeSIpOworfQorCitzdGF0aWMgdm9pZCBlcnJfbXNnKGNoYXIgKm1zZykKK3sKKworCXRpbWVfdCBub3c7CisJdGltZSgmbm93KTsKKwlwcmludGYoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIik7CisJcHJpbnRmKCIgICAgRXJyb3I6ICVzXG4iLCBtc2cpOworCXByaW50ZigiICAgICVzIiwgY3RpbWUoJm5vdykpOworCXByaW50ZigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iKTsKKwlleGl0KDEpOworfQorCitzdGF0aWMgY2hhciAqbWFwMTsKK3N0YXRpYyBjaGFyICptYXAyOworc3RhdGljIHBpZF90IHJpbV9wcm9jZXNzX3BpZDsKKworLyoKKyAqIEEgInJpbS1zZXF1ZW5jZSIgaXMgZGVmaW5lZCB0byBiZSB0aGUgc2VxdWVuY2Ugb2YgdGhlIGZvbGxvd2luZworICogb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gYSBtZW1vcnkgd29yZDoKKyAqCTEpIEZMVVNIIHRoZSBjb250ZW50cyBvZiB0aGF0IHdvcmQuCisgKgkyKSBMT0FEIHRoZSBjb250ZW50cyBvZiB0aGF0IHdvcmQuCisgKgkzKSBDT01QQVJFIHRoZSBjb250ZW50cyBvZiB0aGF0IHdvcmQgd2l0aCB0aGUgY29udGVudCB0aGF0IHdhcworICoJICAgICAgICAgICBwcmV2aW91c2x5IHN0b3JlZCBhdCB0aGF0IHdvcmQKKyAqCTQpIFNUT1JFIG5ldyBjb250ZW50IGludG8gdGhhdCB3b3JkLgorICoKKyAqIFRoZSB0aHJlYWRzIGluIHRoaXMgdGVzdCB0aGF0IHBlcmZvcm0gdGhlIHJpbS1zZXF1ZW5jZSBhcmUgdGVybWVkCisgKiBhcyByaW1fdGhyZWFkcy4KKyAqLworCisvKgorICogQSAiY29ycnVwdGlvbiIgaXMgZGVmaW5lZCB0byBiZSB0aGUgZmFpbGVkIENPTVBBUkUgb3BlcmF0aW9uIGluIGEKKyAqIHJpbS1zZXF1ZW5jZS4KKyAqCisgKiBBIHJpbV90aHJlYWQgdGhhdCBkZXRlY3RzIGEgY29ycnVwdGlvbiBpbmZvcm1zIGFib3V0IGl0IHRvIGFsbCB0aGUKKyAqIG90aGVyIHJpbV90aHJlYWRzLCBhbmQgdGhlIG1lbV9zbmFwc2hvdCB0aHJlYWQuCisgKi8KK3N0YXRpYyB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgY29ycnVwdGlvbl9mb3VuZDsKKworLyoKKyAqIFRoaXMgZGVmaW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmltX3RocmVhZHMgaW4gdGhpcyB0ZXN0LgorICoKKyAqIFRoZSBUSFJFQURfSURfQklUUyBkZW5vdGUgdGhlIG51bWJlciBvZiBiaXRzIHJlcXVpcmVkCisgKiB0byByZXByZXNlbnQgdGhlIHRocmVhZF9pZHMgWzAuLk1BWF9USFJFQURTIC0gMV0uCisgKiBXZSBhcmUgYmVpbmcgYSBiaXQgcGFyYW5vaWQgaGVyZSBhbmQgc2V0IGl0IHRvIDggYml0cywKKyAqIHRob3VnaCA2IGJpdHMgc3VmZmljZS4KKyAqCisgKi8KKyNkZWZpbmUgTUFYX1RIUkVBRFMgCQk2NAorI2RlZmluZSBUSFJFQURfSURfQklUUwkJOAorI2RlZmluZSBUSFJFQURfSURfTUFTSwkJKCgxIDw8IFRIUkVBRF9JRF9CSVRTKSAtIDEpCitzdGF0aWMgdW5zaWduZWQgaW50IHJpbV90aHJlYWRfaWRzW01BWF9USFJFQURTXTsKK3N0YXRpYyBwdGhyZWFkX3QgcmltX3RocmVhZHNbTUFYX1RIUkVBRFNdOworCisKKy8qCisgKiBFYWNoIHJpbV90aHJlYWQgd29ya3Mgb24gYW4gZXhjbHVzaXZlICJjaHVuayIgb2Ygc2l6ZQorICogUklNX0NIVU5LX1NJWkUuCisgKgorICogVGhlIGl0aCByaW1fdGhyZWFkIHdvcmtzIG9uIHRoZSBpdGggY2h1bmsuCisgKgorICogVGhlIGl0aCBjaHVuayBiZWdpbnMgYXQKKyAqIG1hcDEgKyAoaSAqIFJJTV9DSFVOS19TSVpFKQorICovCisjZGVmaW5lIFJJTV9DSFVOS19TSVpFICAJMTAyNAorI2RlZmluZSBCSVRTX1BFUl9CWVRFIAkJOAorI2RlZmluZSBXT1JEX1NJWkUgICAgIAkJKHNpemVvZih1bnNpZ25lZCBpbnQpKQorI2RlZmluZSBXT1JEX0JJVFMJCShXT1JEX1NJWkUgKiBCSVRTX1BFUl9CWVRFKQorI2RlZmluZSBXT1JEU19QRVJfQ0hVTksJCShSSU1fQ0hVTktfU0laRS9XT1JEX1NJWkUpCisKK3N0YXRpYyBpbmxpbmUgY2hhciAqY29tcHV0ZV9jaHVua19zdGFydF9hZGRyKHVuc2lnbmVkIGludCB0aHJlYWRfaWQpCit7CisJY2hhciAqY2h1bmtfc3RhcnQ7CisKKwljaHVua19zdGFydCA9IChjaGFyICopKCh1bnNpZ25lZCBsb25nKW1hcDEgKworCQkJICAgICAgICh0aHJlYWRfaWQgKiBSSU1fQ0hVTktfU0laRSkpOworCisJcmV0dXJuIGNodW5rX3N0YXJ0OworfQorCisvKgorICogVGhlICJ3b3JkLW9mZnNldCIgb2YgYSB3b3JkLWFsaWduZWQgYWRkcmVzcyBpbnNpZGUgYSBjaHVuaywgaXMKKyAqIGRlZmluZWQgdG8gYmUgdGhlIG51bWJlciBvZiB3b3JkcyB0aGF0IHByZWNlZGUgdGhlIGFkZHJlc3MgaW4gdGhhdAorICogY2h1bmsuCisgKgorICogV09SRF9PRkZTRVRfQklUUyBkZW5vdGUgdGhlIG51bWJlciBvZiBiaXRzIHJlcXVpcmVkIHRvIHJlcHJlc2VudAorICogdGhlIHdvcmQtb2Zmc2V0cyBvZiBhbGwgdGhlIHdvcmQtYWxpZ25lZCBhZGRyZXNzZXMgb2YgYSBjaHVuay4KKyAqLworI2RlZmluZSBXT1JEX09GRlNFVF9CSVRTCShfX2J1aWx0aW5fY3R6KFdPUkRTX1BFUl9DSFVOSykpCisjZGVmaW5lIFdPUkRfT0ZGU0VUX01BU0sJKCgxIDw8IFdPUkRfT0ZGU0VUX0JJVFMpIC0gMSkKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29tcHV0ZV93b3JkX29mZnNldChjaGFyICpzdGFydCwgdW5zaWduZWQgaW50ICphZGRyKQoreworCXVuc2lnbmVkIGludCBkZWx0YV9ieXRlcywgcmV0OworCWRlbHRhX2J5dGVzID0gKHVuc2lnbmVkIGxvbmcpYWRkciAtICh1bnNpZ25lZCBsb25nKXN0YXJ0OworCisJcmV0ID0gZGVsdGFfYnl0ZXMvV09SRF9TSVpFOworCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEEgInN3ZWVwIiBpcyBkZWZpbmVkIHRvIGJlIHRoZSBzZXF1ZW50aWFsIGV4ZWN1dGlvbiBvZiB0aGUKKyAqIHJpbS1zZXF1ZW5jZSBieSBhIHJpbV90aHJlYWQgb24gaXRzIGNodW5rIG9uZSB3b3JkIGF0IGEgdGltZSwKKyAqIHN0YXJ0aW5nIGZyb20gdGhlIGZpcnN0IHdvcmQgb2YgaXRzIGNodW5rIGFuZCBlbmRpbmcgd2l0aCB0aGUgbGFzdAorICogd29yZCBvZiBpdHMgY2h1bmsuCisgKgorICogRWFjaCBzd2VlcCBvZiBhIHJpbV90aHJlYWQgaXMgdW5pcXVlbHkgaWRlbnRpZmllZCBieSBhIHN3ZWVwX2lkLgorICogU1dFRVBfSURfQklUUyBkZW5vdGUgdGhlIG51bWJlciBvZiBiaXRzIHJlcXVpcmVkIHRvIHJlcHJlc2VudAorICogdGhlIHN3ZWVwX2lkcyBvZiByaW1fdGhyZWFkcy4KKyAqCisgKiBBcyB0byB3aHkgU1dFRVBfSURfQklUUyBhcmUgY29tcHV0ZWQgYXMgYSBmdW5jdGlvbiBvZiBUSFJFQURfSURfQklUUywKKyAqIFdPUkRfT0ZGU0VUX0JJVFMsIGFuZCBXT1JEX0JJVFMsIHNlZSB0aGUgInN0b3JlLXBhdHRlcm4iIGJlbG93LgorICovCisjZGVmaW5lIFNXRUVQX0lEX0JJVFMJCShXT1JEX0JJVFMgLSAoVEhSRUFEX0lEX0JJVFMgKyBXT1JEX09GRlNFVF9CSVRTKSkKKyNkZWZpbmUgU1dFRVBfSURfTUFTSwkJKCgxIDw8IFNXRUVQX0lEX0JJVFMpIC0gMSkKKworLyoKKyAqIEEgInN0b3JlLXBhdHRlcm4iIGlzIHRoZSB3b3JkLXBhdHRlcm4gdGhhdCBpcyBzdG9yZWQgaW50byBhIHdvcmQKKyAqIGxvY2F0aW9uIGluIHRoZSA0KVNUT1JFIHN0ZXAgb2YgdGhlIHJpbS1zZXF1ZW5jZS4KKyAqCisgKiBJbiB0aGUgc3RvcmUtcGF0dGVybiwgd2Ugc2hhbGwgZW5jb2RlOgorICoKKyAqICAgICAgLSBUaGUgdGhyZWFkLWlkIG9mIHRoZSByaW1fdGhyZWFkIHBlcmZvcm1pbmcgdGhlIHN0b3JlCisgKiAgICAgICAgKFRoZSBtb3N0IHNpZ25pZmljYW50IFRIUkVBRF9JRF9CSVRTKQorICoKKyAqICAgICAgLSBUaGUgd29yZC1vZmZzZXQgb2YgdGhlIGFkZHJlc3MgaW50byB3aGljaCB0aGUgc3RvcmUgaXMgYmVpbmcKKyAqICAgICAgICBwZXJmb3JtZWQgKFRoZSBuZXh0IFdPUkRfT0ZGU0VUX0JJVFMpCisgKgorICogICAgICAtIFRoZSBzd2VlcF9pZCBvZiB0aGUgY3VycmVudCBzd2VlcCBpbiB3aGljaCB0aGUgc3RvcmUgaXMKKyAqICAgICAgICBiZWluZyBwZXJmb3JtZWQuIChUaGUgbG93ZXIgU1dFRVBfSURfQklUUykKKyAqCisgKiBTdG9yZSBQYXR0ZXJuOiAzMiBiaXRzCisgKiB8LS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKKyAqIHwgICAgVGhyZWFkIGlkICAgICB8ICBXb3JkIG9mZnNldCAgICAgICB8ICAgICAgICAgc3dlZXBfaWQgICAgICAgICAgICAgICAgfAorICogfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CisgKiAgICBUSFJFQURfSURfQklUUyAgICAgV09SRF9PRkZTRVRfQklUUyAgICAgICAgICBTV0VFUF9JRF9CSVRTCisgKgorICogSW4gdGhlIHN0b3JlIHBhdHRlcm4sIHRoZSAoVGhyZWFkLWlkICsgV29yZC1vZmZzZXQpIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZQorICogYWRkcmVzcyB0byB3aGljaCB0aGUgc3RvcmUgaXMgYmVpbmcgcGVyZm9ybWVkIGkuZSwKKyAqICAgIGFkZHJlc3MgPT0gbWFwMSArCisgKiAgICAgICAgICAgICAgKFRocmVhZC1pZCAqIFJJTV9DSFVOS19TSVpFKSArIChXb3JkLW9mZnNldCAqIFdPUkRfU0laRSkKKyAqCisgKiBBbmQgdGhlIHN3ZWVwX2lkIGluIHRoZSBzdG9yZSBwYXR0ZXJuIGlkZW50aWZpZXMgdGhlIHRpbWUgd2hlbiB0aGUKKyAqIHN0b3JlIHdhcyBwZXJmb3JtZWQgYnkgdGhlIHJpbV90aHJlYWQuCisgKgorICogV2Ugc2hhbGwgdXNlIHRoaXMgcHJvcGVydHkgaW4gdGhlIDMpQ09NUEFSRSBzdGVwIG9mIHRoZQorICogcmltLXNlcXVlbmNlLgorICovCisjZGVmaW5lIFNXRUVQX0lEX1NISUZUCTAKKyNkZWZpbmUgV09SRF9PRkZTRVRfU0hJRlQJKFNXRUVQX0lEX0JJVFMpCisjZGVmaW5lIFRIUkVBRF9JRF9TSElGVAkJKFdPUkRfT0ZGU0VUX0JJVFMgKyBTV0VFUF9JRF9CSVRTKQorCisvKgorICogQ29tcHV0ZSB0aGUgc3RvcmUgcGF0dGVybiBmb3IgYSBnaXZlbiB0aHJlYWQgd2l0aCBpZCBAdGlkLCBhdAorICogbG9jYXRpb24gQGFkZHIgaW4gdGhlIHN3ZWVwIGlkZW50aWZpZWQgYnkgQHN3ZWVwX2lkCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNvbXB1dGVfc3RvcmVfcGF0dGVybih1bnNpZ25lZCBpbnQgdGlkLAorCQkJCQkJIHVuc2lnbmVkIGludCAqYWRkciwKKwkJCQkJCSB1bnNpZ25lZCBpbnQgc3dlZXBfaWQpCit7CisJdW5zaWduZWQgaW50IHJldCA9IDA7CisJY2hhciAqc3RhcnQgPSBjb21wdXRlX2NodW5rX3N0YXJ0X2FkZHIodGlkKTsKKwl1bnNpZ25lZCBpbnQgd29yZF9vZmZzZXQgPSBjb21wdXRlX3dvcmRfb2Zmc2V0KHN0YXJ0LCBhZGRyKTsKKworCXJldCArPSAodGlkICYgVEhSRUFEX0lEX01BU0spIDw8IFRIUkVBRF9JRF9TSElGVDsKKwlyZXQgKz0gKHdvcmRfb2Zmc2V0ICYgV09SRF9PRkZTRVRfTUFTSykgPDwgV09SRF9PRkZTRVRfU0hJRlQ7CisJcmV0ICs9IChzd2VlcF9pZCAmIFNXRUVQX0lEX01BU0spIDw8IFNXRUVQX0lEX1NISUZUOworCXJldHVybiByZXQ7Cit9CisKKy8qIEV4dHJhY3QgdGhlIHRocmVhZC1pZCBmcm9tIHRoZSBnaXZlbiBzdG9yZS1wYXR0ZXJuICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBleHRyYWN0X3RpZCh1bnNpZ25lZCBpbnQgcGF0dGVybikKK3sKKwl1bnNpZ25lZCBpbnQgcmV0OworCisJcmV0ID0gKHBhdHRlcm4gPj4gVEhSRUFEX0lEX1NISUZUKSAmIFRIUkVBRF9JRF9NQVNLOworCXJldHVybiByZXQ7Cit9CisKKy8qIEV4dHJhY3QgdGhlIHdvcmQtb2Zmc2V0IGZyb20gdGhlIGdpdmVuIHN0b3JlLXBhdHRlcm4gKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGV4dHJhY3Rfd29yZF9vZmZzZXQodW5zaWduZWQgaW50IHBhdHRlcm4pCit7CisJdW5zaWduZWQgaW50IHJldDsKKworCXJldCA9IChwYXR0ZXJuID4+IFdPUkRfT0ZGU0VUX1NISUZUKSAmIFdPUkRfT0ZGU0VUX01BU0s7CisKKwlyZXR1cm4gcmV0OworfQorCisvKiBFeHRyYWN0IHRoZSBzd2VlcC1pZCBmcm9tIHRoZSBnaXZlbiBzdG9yZS1wYXR0ZXJuICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBleHRyYWN0X3N3ZWVwX2lkKHVuc2lnbmVkIGludCBwYXR0ZXJuKQorCit7CisJdW5zaWduZWQgaW50IHJldDsKKworCXJldCA9IChwYXR0ZXJuID4+IFNXRUVQX0lEX1NISUZUKSAmIFNXRUVQX0lEX01BU0s7CisKKwlyZXR1cm4gcmV0OworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICBMb2dnaW5nIHRoZSBvdXRwdXQgb2YgdGhlIHZlcmlmaWNhdGlvbiAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBMT0dESVJfTkFNRV9TSVpFIDEwMAorc3RhdGljIGNoYXIgbG9nZGlyW0xPR0RJUl9OQU1FX1NJWkVdOworCitzdGF0aWMgRklMRSAqZnBbTUFYX1RIUkVBRFNdOworc3RhdGljIGNvbnN0IGNoYXIgbG9nZmlsZW5hbWVbXSA9IlRocmVhZC0lMDJkLUNodW5rIjsKKworc3RhdGljIGlubGluZSB2b2lkIHN0YXJ0X3ZlcmlmaWNhdGlvbl9sb2codW5zaWduZWQgaW50IHRpZCwKKwkJCQkJICB1bnNpZ25lZCBpbnQgKmFkZHIsCisJCQkJCSAgdW5zaWduZWQgaW50IGN1cl9zd2VlcF9pZCwKKwkJCQkJICB1bnNpZ25lZCBpbnQgcHJldl9zd2VlcF9pZCkKK3sKKwlGSUxFICpmOworCWNoYXIgbG9nZmlsZVszMF07CisJY2hhciBwYXRoW0xPR0RJUl9OQU1FX1NJWkUgKyAzMF07CisJY2hhciBzZXBhcmF0b3JbMl0gPSAiLyI7CisJY2hhciAqY2h1bmtfc3RhcnQgPSBjb21wdXRlX2NodW5rX3N0YXJ0X2FkZHIodGlkKTsKKwl1bnNpZ25lZCBpbnQgc2l6ZSA9IFJJTV9DSFVOS19TSVpFOworCisJc3ByaW50Zihsb2dmaWxlLCBsb2dmaWxlbmFtZSwgdGlkKTsKKwlzdHJjcHkocGF0aCwgbG9nZGlyKTsKKwlzdHJjYXQocGF0aCwgc2VwYXJhdG9yKTsKKwlzdHJjYXQocGF0aCwgbG9nZmlsZSk7CisJZiA9IGZvcGVuKHBhdGgsICJ3Iik7CisKKwlpZiAoIWYpIHsKKwkJZXJyX21zZygiVW5hYmxlIHRvIGNyZWF0ZSBsb2dmaWxlXG4iKTsKKwl9CisKKwlmcFt0aWRdID0gZjsKKworCWZwcmludGYoZiwgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworCWZwcmludGYoZiwgIlBJRCAgICAgICAgICAgICAgICA9ICVkXG4iLCByaW1fcHJvY2Vzc19waWQpOworCWZwcmludGYoZiwgIlRocmVhZCBpZCAgICAgICAgICA9ICUwMmRcbiIsIHRpZCk7CisJZnByaW50ZihmLCAiQ2h1bmsgU3RhcnQgQWRkciAgID0gMHglMDE2bHhcbiIsICh1bnNpZ25lZCBsb25nKWNodW5rX3N0YXJ0KTsKKwlmcHJpbnRmKGYsICJDaHVuayBTaXplICAgICAgICAgPSAlZFxuIiwgc2l6ZSk7CisJZnByaW50ZihmLCAiTmV4dCBTdG9yZSBBZGRyICAgID0gMHglMDE2bHhcbiIsICh1bnNpZ25lZCBsb25nKWFkZHIpOworCWZwcmludGYoZiwgIkN1cnJlbnQgc3dlZXAtaWQgICA9IDB4JTA4eFxuIiwgY3VyX3N3ZWVwX2lkKTsKKwlmcHJpbnRmKGYsICJQcmV2aW91cyBzd2VlcC1pZCAgPSAweCUwOHhcbiIsIHByZXZfc3dlZXBfaWQpOworCWZwcmludGYoZiwgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbG9nX2FuYW1vbHkodW5zaWduZWQgaW50IHRpZCwgdW5zaWduZWQgaW50ICphZGRyLAorCQkJICAgICAgIHVuc2lnbmVkIGludCBleHBlY3RlZCwgdW5zaWduZWQgaW50IG9ic2VydmVkKQoreworCUZJTEUgKmYgPSBmcFt0aWRdOworCisJZnByaW50ZihmLCAiVGhyZWFkICUwMmQ6IEFkZHIgMHglbHg6IEV4cGVjdGVkIDB4JXgsIE9ic2VydmVkIDB4JXhcbiIsCisJICAgICAgICB0aWQsICh1bnNpZ25lZCBsb25nKWFkZHIsIGV4cGVjdGVkLCBvYnNlcnZlZCk7CisJZnByaW50ZihmLCAiVGhyZWFkICUwMmQ6IEV4cGVjdGVkIFRocmVhZCBpZCAgID0gJTAyZFxuIiwgdGlkLCBleHRyYWN0X3RpZChleHBlY3RlZCkpOworCWZwcmludGYoZiwgIlRocmVhZCAlMDJkOiBPYnNlcnZlZCBUaHJlYWQgaWQgICA9ICUwMmRcbiIsIHRpZCwgZXh0cmFjdF90aWQob2JzZXJ2ZWQpKTsKKwlmcHJpbnRmKGYsICJUaHJlYWQgJTAyZDogRXhwZWN0ZWQgV29yZCBvZmZzZXQgPSAlMDNkXG4iLCB0aWQsIGV4dHJhY3Rfd29yZF9vZmZzZXQoZXhwZWN0ZWQpKTsKKwlmcHJpbnRmKGYsICJUaHJlYWQgJTAyZDogT2JzZXJ2ZWQgV29yZCBvZmZzZXQgPSAlMDNkXG4iLCB0aWQsIGV4dHJhY3Rfd29yZF9vZmZzZXQob2JzZXJ2ZWQpKTsKKwlmcHJpbnRmKGYsICJUaHJlYWQgJTAyZDogRXhwZWN0ZWQgc3dlZXAtaWQgICAgPSAweCV4XG4iLCB0aWQsIGV4dHJhY3Rfc3dlZXBfaWQoZXhwZWN0ZWQpKTsKKwlmcHJpbnRmKGYsICJUaHJlYWQgJTAyZDogT2JzZXJ2ZWQgc3dlZXAtaWQgICAgPSAweCV4XG4iLCB0aWQsIGV4dHJhY3Rfc3dlZXBfaWQob2JzZXJ2ZWQpKTsKKwlmcHJpbnRmKGYsICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGVuZF92ZXJpZmljYXRpb25fbG9nKHVuc2lnbmVkIGludCB0aWQsIHVuc2lnbmVkIG5yX2FuYW1vbGllcykKK3sKKwlGSUxFICpmID0gZnBbdGlkXTsKKwljaGFyIGxvZ2ZpbGVbMzBdOworCWNoYXIgcGF0aFtMT0dESVJfTkFNRV9TSVpFICsgMzBdOworCWNoYXIgc2VwYXJhdG9yW10gPSAiLyI7CisKKwlmY2xvc2UoZik7CisKKwlpZiAobnJfYW5hbW9saWVzID09IDApIHsKKwkJcmVtb3ZlKHBhdGgpOworCQlyZXR1cm47CisJfQorCisJc3ByaW50Zihsb2dmaWxlLCBsb2dmaWxlbmFtZSwgdGlkKTsKKwlzdHJjcHkocGF0aCwgbG9nZGlyKTsKKwlzdHJjYXQocGF0aCwgc2VwYXJhdG9yKTsKKwlzdHJjYXQocGF0aCwgbG9nZmlsZSk7CisKKwlwcmludGYoIlRocmVhZCAlMDJkIGNodW5rIGhhcyAlZCBjb3JydXB0ZWQgd29yZHMuIEZvciBkZXRhaWxzIGNoZWNrICVzXG4iLAorCQl0aWQsIG5yX2FuYW1vbGllcywgcGF0aCk7Cit9CisKKy8qCisgKiBXaGVuIGEgQ09NUEFSRSBzdGVwIG9mIGEgcmltLXNlcXVlbmNlIGZhaWxzLCB0aGUgcmltX3RocmVhZCBpbmZvcm1zCisgKiBldmVyeW9uZSBlbHNlIHZpYSB0aGUgc2hhcmVkX21lbW9yeSBwb2ludGVkIHRvIGJ5CisgKiBjb3JydXB0aW9uX2ZvdW5kIHZhcmlhYmxlLiBPbiBzZWVpbmcgdGhpcywgZXZlcnkgdGhyZWFkIHZlcmlmaWVzIHRoZQorICogY29udGVudCBvZiBpdHMgY2h1bmsgYXMgZm9sbG93cy4KKyAqCisgKiBTdXBwb3NlIGEgdGhyZWFkIGlkZW50aWZpZWQgd2l0aCBAdGlkIHdhcyBhYm91dCB0byBzdG9yZSAoYnV0IG5vdAorICogeWV0IHN0b3JlZCkgdG8gQG5leHRfc3RvcmVfYWRkciBpbiBpdHMgY3VycmVudCBzd2VlcCBpZGVudGlmaWVkCisgKiBAY3VyX3N3ZWVwX2lkLiBMZXQgQHByZXZfc3dlZXBfaWQgaW5kaWNhdGUgdGhlIHByZXZpb3VzIHN3ZWVwX2lkLgorICoKKyAqIFRoaXMgaW1wbGllcyB0aGF0IGZvciBhbGwgdGhlIGFkZHJlc3NlcyBAYWRkciA8IEBuZXh0X3N0b3JlX2FkZHIsCisgKiBUaHJlYWQgQHRpZCBoYXMgYWxyZWFkeSBwZXJmb3JtZWQgYSBzdG9yZSBhcyBwYXJ0IG9mIGl0cyBjdXJyZW50CisgKiBzd2VlcC4gSGVuY2Ugd2UgZXhwZWN0IHRoZSBjb250ZW50IG9mIHN1Y2ggQGFkZHIgdG8gYmU6CisgKiAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKKyAqICAgIHwgdGlkICAgfCB3b3JkX29mZnNldChhZGRyKSB8ICAgIGN1cl9zd2VlcF9pZCAgICAgfAorICogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CisgKgorICogU2luY2UgVGhyZWFkIEB0aWQgaXMgeWV0IHRvIHBlcmZvcm0gc3RvcmVzIG9uIGFkZHJlc3MKKyAqIEBuZXh0X3N0b3JlX2FkZHIgYW5kIGFib3ZlLCB3ZSBleHBlY3QgdGhlIGNvbnRlbnQgb2Ygc3VjaCBhbgorICogYWRkcmVzcyBAYWRkciB0byBiZToKKyAqICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorICogICAgfCB0aWQgICB8IHdvcmRfb2Zmc2V0KGFkZHIpIHwgICAgcHJldl9zd2VlcF9pZCAgICB8CisgKiAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKKyAqCisgKiBUaGUgdmVyaWZpZXIgZnVuY3Rpb24gQHZlcmlmeV9jaHVuayBkb2VzIHRoaXMgdmVyaWZpY2F0aW9uIGFuZCBsb2dzCisgKiBhbnkgYW5hbW9saWVzIHRoYXQgaXQgZmluZHMuCisgKi8KK3N0YXRpYyB2b2lkIHZlcmlmeV9jaHVuayh1bnNpZ25lZCBpbnQgdGlkLCB1bnNpZ25lZCBpbnQgKm5leHRfc3RvcmVfYWRkciwKKwkJICB1bnNpZ25lZCBpbnQgY3VyX3N3ZWVwX2lkLAorCQkgIHVuc2lnbmVkIGludCBwcmV2X3N3ZWVwX2lkKQoreworCXVuc2lnbmVkIGludCAqaXRlcl9wdHI7CisJdW5zaWduZWQgaW50IHNpemUgPSBSSU1fQ0hVTktfU0laRTsKKwl1bnNpZ25lZCBpbnQgZXhwZWN0ZWQ7CisJdW5zaWduZWQgaW50IG9ic2VydmVkOworCWNoYXIgKmNodW5rX3N0YXJ0ID0gY29tcHV0ZV9jaHVua19zdGFydF9hZGRyKHRpZCk7CisKKwlpbnQgbnJfYW5hbW9saWVzID0gMDsKKworCXN0YXJ0X3ZlcmlmaWNhdGlvbl9sb2codGlkLCBuZXh0X3N0b3JlX2FkZHIsCisJCQkgICAgICAgY3VyX3N3ZWVwX2lkLCBwcmV2X3N3ZWVwX2lkKTsKKworCWZvciAoaXRlcl9wdHIgPSAodW5zaWduZWQgaW50ICopY2h1bmtfc3RhcnQ7CisJICAgICAodW5zaWduZWQgbG9uZylpdGVyX3B0ciA8ICh1bnNpZ25lZCBsb25nKWNodW5rX3N0YXJ0ICsgc2l6ZTsKKwkgICAgIGl0ZXJfcHRyKyspIHsKKwkJdW5zaWduZWQgaW50IGV4cGVjdGVkX3N3ZWVwX2lkOworCisJCWlmIChpdGVyX3B0ciA8IG5leHRfc3RvcmVfYWRkcikgeworCQkJZXhwZWN0ZWRfc3dlZXBfaWQgPSBjdXJfc3dlZXBfaWQ7CisJCX0gZWxzZSB7CisJCQlleHBlY3RlZF9zd2VlcF9pZCA9IHByZXZfc3dlZXBfaWQ7CisJCX0KKworCQlleHBlY3RlZCA9IGNvbXB1dGVfc3RvcmVfcGF0dGVybih0aWQsIGl0ZXJfcHRyLCBleHBlY3RlZF9zd2VlcF9pZCk7CisKKwkJZGNiZigodm9sYXRpbGUgdW5zaWduZWQgaW50KilpdGVyX3B0cik7IC8vRmx1c2ggYmVmb3JlIHJlYWRpbmcKKwkJb2JzZXJ2ZWQgPSAqaXRlcl9wdHI7CisKKwkgICAgICAgIGlmIChvYnNlcnZlZCAhPSBleHBlY3RlZCkgeworCQkJbnJfYW5hbW9saWVzKys7CisJCQlsb2dfYW5hbW9seSh0aWQsIGl0ZXJfcHRyLCBleHBlY3RlZCwgb2JzZXJ2ZWQpOworCQl9CisJfQorCisJZW5kX3ZlcmlmaWNhdGlvbl9sb2codGlkLCBucl9hbmFtb2xpZXMpOworfQorCitzdGF0aWMgdm9pZCBzZXRfcHRocmVhZF9jcHUocHRocmVhZF90IHRoLCBpbnQgY3B1KQoreworCWNwdV9zZXRfdCBydW5fY3B1X21hc2s7CisJc3RydWN0IHNjaGVkX3BhcmFtIHBhcmFtOworCisJQ1BVX1pFUk8oJnJ1bl9jcHVfbWFzayk7CisJQ1BVX1NFVChjcHUsICZydW5fY3B1X21hc2spOworCXB0aHJlYWRfc2V0YWZmaW5pdHlfbnAodGgsIHNpemVvZihjcHVfc2V0X3QpLCAmcnVuX2NwdV9tYXNrKTsKKworCXBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gMTsKKwlpZiAoMCAmJiBzY2hlZF9zZXRzY2hlZHVsZXIoMCwgU0NIRURfRklGTywgJnBhcmFtKSA9PSAtMSkgeworCQkvKiBoYXZlbid0IHJlcHJvZHVjZWQgd2l0aCB0aGlzIHNldHRpbmcsIGl0IGtpbGxzIHJhbmRvbSBwcmVlbXB0aW9uIHdoaWNoIG1heSBiZSBhIGZhY3RvciAqLworCQlmcHJpbnRmKHN0ZGVyciwgImNvdWxkIG5vdCBzZXQgU0NIRURfRklGTywgcnVuIGFzIHJvb3Q/XG4iKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNldF9teWNwdShpbnQgY3B1KQoreworCWNwdV9zZXRfdCBydW5fY3B1X21hc2s7CisJc3RydWN0IHNjaGVkX3BhcmFtIHBhcmFtOworCisJQ1BVX1pFUk8oJnJ1bl9jcHVfbWFzayk7CisJQ1BVX1NFVChjcHUsICZydW5fY3B1X21hc2spOworCXNjaGVkX3NldGFmZmluaXR5KDAsIHNpemVvZihjcHVfc2V0X3QpLCAmcnVuX2NwdV9tYXNrKTsKKworCXBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gMTsKKwlpZiAoMCAmJiBzY2hlZF9zZXRzY2hlZHVsZXIoMCwgU0NIRURfRklGTywgJnBhcmFtKSA9PSAtMSkgeworCQlmcHJpbnRmKHN0ZGVyciwgImNvdWxkIG5vdCBzZXQgU0NIRURfRklGTywgcnVuIGFzIHJvb3Q/XG4iKTsKKwl9Cit9CisKK3N0YXRpYyB2b2xhdGlsZSBpbnQgc2Vndl93YWl0OworCitzdGF0aWMgdm9pZCBzZWd2X2hhbmRsZXIoaW50IHNpZ25vLCBzaWdpbmZvX3QgKmluZm8sIHZvaWQgKmV4dHJhKQoreworCXdoaWxlIChzZWd2X3dhaXQpIHsKKwkJc2NoZWRfeWllbGQoKTsKKwl9CisKK30KKworc3RhdGljIHZvaWQgc2V0X3NlZ3ZfaGFuZGxlcih2b2lkKQoreworCXN0cnVjdCBzaWdhY3Rpb24gc2E7CisKKwlzYS5zYV9mbGFncyA9IFNBX1NJR0lORk87CisJc2Euc2Ffc2lnYWN0aW9uID0gc2Vndl9oYW5kbGVyOworCisJaWYgKHNpZ2FjdGlvbihTSUdTRUdWLCAmc2EsIE5VTEwpID09IC0xKSB7CisJCXBlcnJvcigic2lnYWN0aW9uIik7CisJCWV4aXQoRVhJVF9GQUlMVVJFKTsKKwl9Cit9CisKK2ludCB0aW1lb3V0ID0gMDsKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIGJ5IGV2ZXJ5IHJpbV90aHJlYWQuCisgKgorICogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBzd2VlcHMgb3ZlciB0aGUgZXhjbHVzaXZlIGNodW5rcyBvZiB0aGUKKyAqIHJpbV90aHJlYWRzIGV4ZWN1dGluZyB0aGUgcmltLXNlcXVlbmNlIG9uZSB3b3JkIGF0IGEgdGltZS4KKyAqLworc3RhdGljIHZvaWQgKnJpbV9mbih2b2lkICphcmcpCit7CisJdW5zaWduZWQgaW50IHRpZCA9ICooKHVuc2lnbmVkIGludCAqKWFyZyk7CisKKwlpbnQgc2l6ZSA9IFJJTV9DSFVOS19TSVpFOworCWNoYXIgKmNodW5rX3N0YXJ0ID0gY29tcHV0ZV9jaHVua19zdGFydF9hZGRyKHRpZCk7CisKKwl1bnNpZ25lZCBpbnQgcHJldl9zd2VlcF9pZDsKKwl1bnNpZ25lZCBpbnQgY3VyX3N3ZWVwX2lkID0gMDsKKworCS8qIHdvcmQgYWNjZXNzICovCisJdW5zaWduZWQgaW50IHBhdHRlcm4gPSBjdXJfc3dlZXBfaWQ7CisJdW5zaWduZWQgaW50ICpwYXR0ZXJuX3B0ciA9ICZwYXR0ZXJuOworCXVuc2lnbmVkIGludCAqd19wdHIsIHJlYWRfZGF0YTsKKworCXNldF9zZWd2X2hhbmRsZXIoKTsKKworCS8qCisJICogTGV0IHVzIGluaXRpYWxpemUgdGhlIGNodW5rOgorCSAqCisJICogRWFjaCB3b3JkLWFsaWduZWQgYWRkcmVzcyBhZGRyIGluIHRoZSBjaHVuaywKKwkgKiBpcyBpbml0aWFsaXplZCB0byA6CisJICogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CisJICogICAgfCB0aWQgICB8IHdvcmRfb2Zmc2V0KGFkZHIpIHwgICAgICAgICAwICAgICAgICAgICB8CisJICogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CisJICovCisJZm9yICh3X3B0ciA9ICh1bnNpZ25lZCBpbnQgKiljaHVua19zdGFydDsKKwkgICAgICh1bnNpZ25lZCBsb25nKXdfcHRyIDwgKHVuc2lnbmVkIGxvbmcpKGNodW5rX3N0YXJ0KSArIHNpemU7CisJICAgICB3X3B0cisrKSB7CisKKwkJKnBhdHRlcm5fcHRyID0gY29tcHV0ZV9zdG9yZV9wYXR0ZXJuKHRpZCwgd19wdHIsIGN1cl9zd2VlcF9pZCk7CisJCSp3X3B0ciA9ICpwYXR0ZXJuX3B0cjsKKwl9CisKKwl3aGlsZSAoIWNvcnJ1cHRpb25fZm91bmQgJiYgIXRpbWVvdXQpIHsKKwkJcHJldl9zd2VlcF9pZCA9IGN1cl9zd2VlcF9pZDsKKwkJY3VyX3N3ZWVwX2lkID0gY3VyX3N3ZWVwX2lkICsgMTsKKworCQlmb3IgKHdfcHRyID0gKHVuc2lnbmVkIGludCAqKWNodW5rX3N0YXJ0OworCQkgICAgICh1bnNpZ25lZCBsb25nKXdfcHRyIDwgKHVuc2lnbmVkIGxvbmcpKGNodW5rX3N0YXJ0KSArIHNpemU7CisJCSAgICAgd19wdHIrKykgIHsKKwkJCXVuc2lnbmVkIGludCBvbGRfcGF0dGVybjsKKworCQkJLyoKKwkJCSAqIENvbXB1dGUgdGhlIHBhdHRlcm4gdGhhdCB3ZSB3b3VsZCBoYXZlCisJCQkgKiBzdG9yZWQgYXQgdGhpcyBsb2NhdGlvbiBpbiB0aGUgcHJldmlvdXMKKwkJCSAqIHN3ZWVwLgorCQkJICovCisJCQlvbGRfcGF0dGVybiA9IGNvbXB1dGVfc3RvcmVfcGF0dGVybih0aWQsIHdfcHRyLCBwcmV2X3N3ZWVwX2lkKTsKKworCQkJLyoKKwkJCSAqIEZMVVNIOkVuc3VyZSB0aGF0IHdlIGZsdXNoIHRoZSBjb250ZW50cyBvZgorCQkJICogICAgICAgdGhlIGNhY2hlIGJlZm9yZSBsb2FkaW5nCisJCQkgKi8KKwkJCWRjYmYoKHZvbGF0aWxlIHVuc2lnbmVkIGludCopd19wdHIpOyAvL0ZsdXNoCisKKwkJCS8qIExPQUQ6IFJlYWQgdGhlIHZhbHVlICovCisJCQlyZWFkX2RhdGEgPSAqd19wdHI7IC8vTG9hZAorCisJCQkvKgorCQkJICogQ09NUEFSRTogSXMgaXQgdGhlIHNhbWUgYXMgd2hhdCB3ZSBoYWQgc3RvcmVkCisJCQkgKiAgICAgICAgICBpbiB0aGUgcHJldmlvdXMgc3dlZXAgPyBJdCBiZXR0ZXIgYmUhCisJCQkgKi8KKwkJCWlmIChyZWFkX2RhdGEgIT0gb2xkX3BhdHRlcm4pIHsKKwkJCQkvKiBObyBpdCBpc24ndCEgVGVsbCBldmVyeW9uZSAqLworCQkJCWNvcnJ1cHRpb25fZm91bmQgPSAxOworCQkJfQorCisJCQkvKgorCQkJICogQmVmb3JlIHBlcmZvcm1pbmcgYSBzdG9yZSwgbGV0IHVzIGNoZWNrIGlmCisJCQkgKiBhbnkgcmltX3RocmVhZCBoYXMgZm91bmQgYSBjb3JydXB0aW9uLgorCQkJICovCisJCQlpZiAoY29ycnVwdGlvbl9mb3VuZCB8fCB0aW1lb3V0KSB7CisJCQkJLyoKKwkJCQkgKiBZZXMuIFNvbWVvbmUgKGluY2x1ZGluZyB1cyEpIGhhcyBmb3VuZAorCQkJCSAqIGEgY29ycnVwdGlvbiA6KAorCQkJCSAqCisJCQkJICogTGV0IHVzIHZlcmlmeSB0aGF0IG91ciBjaHVuayBpcworCQkJCSAqIGNvcnJlY3QuCisJCQkJICovCisJCQkJLyogQnV0IGZpcnN0LCBsZXQgdXMgYWxsb3cgdGhlIGR1c3QgdG8gc2V0dGxlIGRvd24hICovCisJCQkJdmVyaWZ5X2NodW5rKHRpZCwgd19wdHIsIGN1cl9zd2VlcF9pZCwgcHJldl9zd2VlcF9pZCk7CisKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKworCQkJLyoKKwkJCSAqIENvbXB1dGUgdGhlIG5ldyBwYXR0ZXJuIHRoYXQgd2UgYXJlIGdvaW5nCisJCQkgKiB0byB3cml0ZSB0byB0aGlzIGxvY2F0aW9uCisJCQkgKi8KKwkJCSpwYXR0ZXJuX3B0ciA9IGNvbXB1dGVfc3RvcmVfcGF0dGVybih0aWQsIHdfcHRyLCBjdXJfc3dlZXBfaWQpOworCisJCQkvKgorCQkJICogU1RPUkU6IE5vdyBsZXQgdXMgd3JpdGUgdGhpcyBwYXR0ZXJuIGludG8KKwkJCSAqICAgICAgICB0aGUgbG9jYXRpb24KKwkJCSAqLworCQkJKndfcHRyID0gKnBhdHRlcm5fcHRyOworCQl9CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgc3RhcnRfY3B1ID0gMDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIG5ydGhyZWFkcyA9IDQ7CisKK3N0YXRpYyBwdGhyZWFkX3QgbWVtX3NuYXBzaG90X3RocmVhZDsKKworc3RhdGljIHZvaWQgKm1lbV9zbmFwc2hvdF9mbih2b2lkICphcmcpCit7CisJaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7CisJc2l6ZV90IHNpemUgPSBwYWdlX3NpemU7CisJdm9pZCAqdG1wID0gbWFsbG9jKHNpemUpOworCisJd2hpbGUgKCFjb3JydXB0aW9uX2ZvdW5kICYmICF0aW1lb3V0KSB7CisJCS8qIFN0b3AgbWVtb3J5IG1pZ3JhdGlvbiBvbmNlIGNvcnJ1cHRpb24gaXMgZm91bmQgKi8KKwkJc2Vndl93YWl0ID0gMTsKKworCQltcHJvdGVjdChtYXAxLCBzaXplLCBQUk9UX1JFQUQpOworCisJCS8qCisJCSAqIExvYWQgZnJvbSB0aGUgd29ya2luZyBhbGlhcyAobWFwMSkuIExvYWRpbmcgZnJvbSBtYXAyCisJCSAqIGFsc28gZmFpbHMuCisJCSAqLworCQltZW1jcHkodG1wLCBtYXAxLCBzaXplKTsKKworCQkvKgorCQkgKiBTdG9yZXMgbXVzdCBnbyB2aWEgbWFwMiB3aGljaCBoYXMgd3JpdGUgcGVybWlzc2lvbnMsIGJ1dAorCQkgKiB0aGUgY29ycnVwdGVkIGRhdGEgdGVuZHMgdG8gYmUgc2VlbiBpbiB0aGUgc25hcHNob3QgYnVmZmVyLAorCQkgKiBzbyBjb3JydXB0aW9uIGRvZXMgbm90IGFwcGVhciB0byBiZSBpbnRyb2R1Y2VkIGF0IHRoZQorCQkgKiBjb3B5LWJhY2sgdmlhIG1hcDIgYWxpYXMgaGVyZS4KKwkJICovCisJCW1lbWNweShtYXAyLCB0bXAsIHNpemUpOworCQkvKgorCQkgKiBCZWZvcmUgcmVsZWFzaW5nIG90aGVyIHRocmVhZHMsIG11c3QgZW5zdXJlIHRoZSBjb3B5CisJCSAqIGJhY2sgdG8KKwkJICovCisJCWFzbSB2b2xhdGlsZSgic3luYyIgOjo6ICJtZW1vcnkiKTsKKwkJbXByb3RlY3QobWFwMSwgc2l6ZSwgUFJPVF9SRUFEfFBST1RfV1JJVEUpOworCQlhc20gdm9sYXRpbGUoInN5bmMiIDo6OiAibWVtb3J5Iik7CisJCXNlZ3Zfd2FpdCA9IDA7CisKKwkJdXNsZWVwKDEpOyAvKiBUaGlzIHZhbHVlIG1ha2VzIGEgYmlnIGRpZmZlcmVuY2UgKi8KKwl9CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCBhbHJtX3NpZ2hhbmRsZXIoaW50IHNpZykKK3sKKwl0aW1lb3V0ID0gMTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlpbnQgYzsKKwlpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKKwl0aW1lX3Qgbm93OworCWludCBpLCBkaXJfZXJyb3I7CisJcHRocmVhZF9hdHRyX3QgYXR0cjsKKwlrZXlfdCBzaG1fa2V5ID0gKGtleV90KSBnZXRwaWQoKTsKKwlpbnQgc2htaWQsIHJ1bl90aW1lID0gMjAgKiA2MDsKKwlzdHJ1Y3Qgc2lnYWN0aW9uIHNhX2Fscm07CisKKwlzbnByaW50Zihsb2dkaXIsIExPR0RJUl9OQU1FX1NJWkUsCisJCSAiL3RtcC9sb2dkaXItJXUiLCAodW5zaWduZWQgaW50KWdldHBpZCgpKTsKKwl3aGlsZSAoKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgInI6aG46bDp0OiIpKSAhPSAtMSkgeworCQlzd2l0Y2goYykgeworCQljYXNlICdyJzoKKwkJCXN0YXJ0X2NwdSA9IHN0cnRvdWwob3B0YXJnLCBOVUxMLCAxMCk7CisJCQlicmVhazsKKwkJY2FzZSAnaCc6CisJCQlwcmludGYoIiVzIFstciA8c3RhcnRfY3B1Pl0gWy1uIDxucnRocmVhZHM+XSBbLWwgPGxvZ2Rpcj5dIFstdCA8dGltZW91dD5dXG4iLCBhcmd2WzBdKTsKKwkJCWV4aXQoMCk7CisJCQlicmVhazsKKwkJY2FzZSAnbic6CisJCQlucnRocmVhZHMgPSBzdHJ0b3VsKG9wdGFyZywgTlVMTCwgMTApOworCQkJYnJlYWs7CisJCWNhc2UgJ2wnOgorCQkJc3RybmNweShsb2dkaXIsIG9wdGFyZywgTE9HRElSX05BTUVfU0laRSk7CisJCQlicmVhazsKKwkJY2FzZSAndCc6CisJCQlydW5fdGltZSA9IHN0cnRvdWwob3B0YXJnLCBOVUxMLCAxMCk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXByaW50ZigiaW52YWxpZCBvcHRpb25cbiIpOworCQkJZXhpdCgwKTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKG5ydGhyZWFkcyA+IE1BWF9USFJFQURTKQorCQlucnRocmVhZHMgPSBNQVhfVEhSRUFEUzsKKworCXNobWlkID0gc2htZ2V0KHNobV9rZXksIHBhZ2Vfc2l6ZSwgSVBDX0NSRUFUfDA2NjYpOworCWlmIChzaG1pZCA8IDApIHsKKwkJZXJyX21zZygiRmFpbGVkIHNobWdldFxuIik7CisJfQorCisJbWFwMSA9IHNobWF0KHNobWlkLCBOVUxMLCAwKTsKKwlpZiAobWFwMSA9PSAodm9pZCAqKSAtMSkgeworCQllcnJfbXNnKCJGYWlsZWQgc2htYXQiKTsKKwl9CisKKwltYXAyID0gc2htYXQoc2htaWQsIE5VTEwsIDApOworCWlmIChtYXAyID09ICh2b2lkICopIC0xKSB7CisJCWVycl9tc2coIkZhaWxlZCBzaG1hdCIpOworCX0KKworCWRpcl9lcnJvciA9IG1rZGlyKGxvZ2RpciwgMDc1NSk7CisKKwlpZiAoZGlyX2Vycm9yKSB7CisJCWVycl9tc2coIkZhaWxlZCBta2RpciIpOworCX0KKworCXByaW50Zigic3RhcnRfY3B1IGxpc3Q6JWx1XG4iLCBzdGFydF9jcHUpOworCXByaW50ZigibnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzOiVsdSArIDEgc25hcHNob3QgdGhyZWFkXG4iLCBucnRocmVhZHMpOworCXByaW50ZigiQWxsb2NhdGVkIGFkZHJlc3M6MHglMDE2bHggKyBzZWNvbmRhcnkgbWFwOjB4JTAxNmx4XG4iLCAodW5zaWduZWQgbG9uZyltYXAxLCAodW5zaWduZWQgbG9uZyltYXAyKTsKKwlwcmludGYoImxvZ2RpciBhdCA6ICVzXG4iLCBsb2dkaXIpOworCXByaW50ZigiVGltZW91dDogJWQgc2Vjb25kc1xuIiwgcnVuX3RpbWUpOworCisJdGltZSgmbm93KTsKKwlwcmludGYoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIik7CisJcHJpbnRmKCIgICAgIFN0YXJ0aW5nIFRlc3RcbiIpOworCXByaW50ZigiICAgICAlcyIsIGN0aW1lKCZub3cpKTsKKwlwcmludGYoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnJ0aHJlYWRzOyBpKyspIHsKKwkJaWYgKDEgJiYgIWZvcmsoKSkgeworCQkJcHJjdGwoUFJfU0VUX1BERUFUSFNJRywgU0lHS0lMTCk7CisJCQlzZXRfbXljcHUoc3RhcnRfY3B1ICsgaSk7CisJCQlmb3IgKDs7KQorCQkJCXNjaGVkX3lpZWxkKCk7CisJCQlleGl0KDApOworCQl9CisJfQorCisKKwlzYV9hbHJtLnNhX2hhbmRsZXIgPSAmYWxybV9zaWdoYW5kbGVyOworCXNpZ2VtcHR5c2V0KCZzYV9hbHJtLnNhX21hc2spOworCXNhX2Fscm0uc2FfZmxhZ3MgPSAwOworCisJaWYgKHNpZ2FjdGlvbihTSUdBTFJNLCAmc2FfYWxybSwgMCkgPT0gLTEpIHsKKwkJZXJyX21zZygiRmFpbGVkIHNpZ25hbCBoYW5kbGVyIHJlZ2lzdHJhdGlvblxuIik7CisJfQorCisJYWxhcm0ocnVuX3RpbWUpOworCisJcHRocmVhZF9hdHRyX2luaXQoJmF0dHIpOworCWZvciAoaSA9IDA7IGkgPCBucnRocmVhZHM7IGkrKykgeworCQlyaW1fdGhyZWFkX2lkc1tpXSA9IGk7CisJCXB0aHJlYWRfY3JlYXRlKCZyaW1fdGhyZWFkc1tpXSwgJmF0dHIsIHJpbV9mbiwgJnJpbV90aHJlYWRfaWRzW2ldKTsKKwkJc2V0X3B0aHJlYWRfY3B1KHJpbV90aHJlYWRzW2ldLCBzdGFydF9jcHUgKyBpKTsKKwl9CisKKwlwdGhyZWFkX2NyZWF0ZSgmbWVtX3NuYXBzaG90X3RocmVhZCwgJmF0dHIsIG1lbV9zbmFwc2hvdF9mbiwgbWFwMSk7CisJc2V0X3B0aHJlYWRfY3B1KG1lbV9zbmFwc2hvdF90aHJlYWQsIHN0YXJ0X2NwdSArIGkpOworCisKKwlwdGhyZWFkX2pvaW4obWVtX3NuYXBzaG90X3RocmVhZCwgTlVMTCk7CisJZm9yIChpID0gMDsgaSA8IG5ydGhyZWFkczsgaSsrKSB7CisJCXB0aHJlYWRfam9pbihyaW1fdGhyZWFkc1tpXSwgTlVMTCk7CisJfQorCisJaWYgKCF0aW1lb3V0KSB7CisJCXRpbWUoJm5vdyk7CisJCXByaW50ZigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iKTsKKwkJcHJpbnRmKCIgICAgICBEYXRhIENvcnJ1cHRpb24gRGV0ZWN0ZWRcbiIpOworCQlwcmludGYoIiAgICAgICVzIiwgY3RpbWUoJm5vdykpOworCQlwcmludGYoIiAgICAgIFNlZSBsb2dmaWxlcyBpbiAlc1xuIiwgbG9nZGlyKTsKKwkJcHJpbnRmKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIpOworCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3B0cmFjZS8uZ2l0aWdub3JlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9wdHJhY2UvLmdpdGlnbm9yZQppbmRleCAwN2VjNDQ5Li5kY2UxOWYyIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3B0cmFjZS8uZ2l0aWdub3JlCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvcHRyYWNlLy5naXRpZ25vcmUKQEAgLTEwLDMgKzEwLDYgQEAKIHB0cmFjZS10bS1zcHIKIHB0cmFjZS1od2JyZWFrCiBwZXJmLWh3YnJlYWsKK2NvcmUtcGtleQorcHRyYWNlLXBrZXkKK3B0cmFjZS1zeXNjYWxsCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3NlY3VyaXR5Ly5naXRpZ25vcmUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3NlY3VyaXR5Ly5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI5NjlmYmEKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3NlY3VyaXR5Ly5naXRpZ25vcmUKQEAgLTAsMCArMSBAQAorcmZpX2ZsdXNoCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3N0cmluZ2xvb3BzLy5naXRpZ25vcmUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3N0cmluZ2xvb3BzLy5naXRpZ25vcmUKaW5kZXggMGI0M2RhNy4uMzFhMTdlMCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy9zdHJpbmdsb29wcy8uZ2l0aWdub3JlCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvc3RyaW5nbG9vcHMvLmdpdGlnbm9yZQpAQCAtMSArMSw0IEBACi1tZW1jbXAKK21lbWNtcF82NAorbWVtY21wXzMyCitzdHJsZW4KK3N0cmxlbl8zMgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS8uZ2l0aWdub3JlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS8uZ2l0aWdub3JlCmluZGV4IDk1MWZlODUuLjk4ZjI3MDggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvdG0vLmdpdGlnbm9yZQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtLy5naXRpZ25vcmUKQEAgLTE3LDMgKzE3LDQgQEAKIHRtLXVuYXZhaWxhYmxlCiB0bS10cmFwCiB0bS1zaWdyZXR1cm4KK3RtLXBvaXNvbgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvdG0vTWFrZWZpbGUKaW5kZXggYzA3MzRlZC4uYjE1YTFhMyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS9NYWtlZmlsZQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL01ha2VmaWxlCkBAIC01LDcgKzUsNyBAQAogVEVTVF9HRU5fUFJPR1MgOj0gdG0tcmVzY2hlZC1kc2NyIHRtLXN5c2NhbGwgdG0tc2lnbmFsLW1zci1yZXN2IHRtLXNpZ25hbC1zdGFjayBcCiAJdG0tdm14Y29weSB0bS1mb3JrIHRtLXRhciB0bS10bXNwciB0bS12bXgtdW5hdmFpbCB0bS11bmF2YWlsYWJsZSB0bS10cmFwIFwKIAkkKFNJR05BTF9DT05URVhUX0NIS19URVNUUykgdG0tc2lncmV0dXJuIHRtLXNpZ25hbC1zaWdyZXR1cm4tbnQgXAotCXRtLXNpZ25hbC1jb250ZXh0LWZvcmNlLXRtCisJdG0tc2lnbmFsLWNvbnRleHQtZm9yY2UtdG0gdG0tcG9pc29uCiAKIHRvcF9zcmNkaXIgPSAuLi8uLi8uLi8uLi8uLgogaW5jbHVkZSAuLi8uLi9saWIubWsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvdG0vdG0tcG9pc29uLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLXBvaXNvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NzU1ODQKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLXBvaXNvbi5jCkBAIC0wLDAgKzEsMTc5IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogQ29weXJpZ2h0IDIwMTksIEd1c3Rhdm8gUm9tZXJvLCBNaWNoYWVsIE5ldWxpbmcsIElCTSBDb3JwLgorICoKKyAqIFRoaXMgdGVzdCB3aWxsIHNwYXduIHR3byBwcm9jZXNzZXMuIEJvdGggd2lsbCBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZQorICogQ1BVIChDUFUgMCkuIFRoZSBjaGlsZCB3aWxsIGJlIGluIGEgbG9vcCB3cml0aW5nIHRvIEZQIHJlZ2lzdGVyIGYzMSBhbmQKKyAqIFZNWC9WRUMvQWx0aXZlYyByZWdpc3RlciB2cjMxIGEga25vd24gdmFsdWUsIGNhbGxlZCBwb2lzb24sIGNhbGxpbmcKKyAqIHNjaGVkX3lpZWxkIHN5c2NhbGwgYWZ0ZXIgdG8gYWxsb3cgdGhlIHBhcmVudCB0byBzd2l0Y2ggb24gdGhlIENQVS4KKyAqIFBhcmVudCB3aWxsIHNldCBmMzEgYW5kIHZyMzEgdG8gMSBhbmQgaW4gYSBsb29wIHdpbGwgY2hlY2sgaWYgZjMxIGFuZAorICogdnIzMSByZW1haW4gMSBhcyBleHBlY3RlZCB1bnRpbCBhIGdpdmVuIHRpbWVvdXQgKDJtKS4gSWYgdGhlIGlzc3VlIGlzCisgKiBwcmVzZW50IGNoaWxkJ3MgcG9pc29uIHdpbGwgbGVhayBpbnRvIHBhcmVudCdzIGYzMSBvciB2cjMxIHJlZ2lzdGVycywKKyAqIG90aGVyd2lzZSwgcG9pc29uIHdpbGwgbmV2ZXIgbGVhayBpbnRvIHBhcmVudCdzIGYzMSBhbmQgdnIzMSByZWdpc3RlcnMuCisgKi8KKworI2RlZmluZSBfR05VX1NPVVJDRQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxzY2hlZC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNpbmNsdWRlICJ0bS5oIgorCitpbnQgdG1fcG9pc29uX3Rlc3Qodm9pZCkKK3sKKwlpbnQgcGlkOworCWNwdV9zZXRfdCBjcHVzZXQ7CisJdWludDY0X3QgcG9pc29uID0gMHhkZWFkYmVlZmMwZGVjMGZlOworCXVpbnQ2NF90IHVua25vd24gPSAwOworCWJvb2wgZmFpbF9mcCA9IGZhbHNlOworCWJvb2wgZmFpbF92ciA9IGZhbHNlOworCisJU0tJUF9JRighaGF2ZV9odG0oKSk7CisKKwkvKiBBdHRhY2ggYm90aCBDaGlsZCBhbmQgUGFyZW50IHRvIENQVSAwICovCisJQ1BVX1pFUk8oJmNwdXNldCk7CisJQ1BVX1NFVCgwLCAmY3B1c2V0KTsKKwlzY2hlZF9zZXRhZmZpbml0eSgwLCBzaXplb2YoY3B1c2V0KSwgJmNwdXNldCk7CisKKwlwaWQgPSBmb3JrKCk7CisJaWYgKCFwaWQpIHsKKwkJLyoqCisJCSAqIGNoaWxkCisJCSAqLworCQl3aGlsZSAoMSkgeworCQkJc2NoZWRfeWllbGQoKTsKKwkJCWFzbSAoCisJCQkJIm10dnNyZCAzMSwgJVtwb2lzb25dOyIgLy8gZjMxID0gcG9pc29uCisJCQkJIm10dnNyZCA2MywgJVtwb2lzb25dOyIgLy8gdnIzMSA9IHBvaXNvbgorCisJCQkJOiA6IFtwb2lzb25dICJyIiAocG9pc29uKSA6ICk7CisJCX0KKwl9CisKKwkvKioKKwkgKiBwYXJlbnQKKwkgKi8KKwlhc20gKAorCQkvKgorCQkgKiBTZXQgcjMsIHI0LCBhbmQgZjMxIHRvIGtub3duIHZhbHVlIDEgYmVmb3JlIGVudGVyaW5nCisJCSAqIGluIHRyYW5zYWN0aW9uLiBUaGV5IHdvbid0IGJlIHdyaXR0ZW4gYWZ0ZXIgdGhhdC4KKwkJICovCisJCSIgICAgICAgbGkgICAgICAzLCAweDEgICAgICAgICAgOyIKKwkJIiAgICAgICBsaSAgICAgIDQsIDB4MSAgICAgICAgICA7IgorCQkiICAgICAgIG10dnNyZCAgMzEsIDQgICAgICAgICAgIDsiCisKKwkJLyoKKwkJICogVGhlIFRpbWUgQmFzZSAoVEIpIGlzIGEgNjQtYml0IGNvdW50ZXIgcmVnaXN0ZXIgdGhhdCBpcworCQkgKiBpbmRlcGVuZGVudCBvZiB0aGUgQ1BVIGNsb2NrIGFuZCB3aGljaCBpcyBpbmNyZW1lbnRlZAorCQkgKiBhdCBhIGZyZXF1ZW5jeSBvZiA1MTIwMDAwMDAgSHosIHNvIGV2ZXJ5IDEuOTUzMTI1bnMuCisJCSAqIFNvIGl0J3MgbmVjZXNzYXJ5IDEyMHMvMC4wMDAwMDAwMDE5NTMxMjVzID0gNjE0NDAwMDAwMDAKKwkJICogaW5jcmVtZW50cyB0byBnZXQgYSAyIG1pbnV0ZXMgdGltZW91dC4gQmVsb3cgd2Ugc2V0IHRoYXQKKwkJICogdmFsdWUgaW4gcjUgYW5kIHRoZW4gdXNlIHI2IHRvIHRyYWNrIGluaXRpYWwgVEIgdmFsdWUsCisJCSAqIHVwZGF0aW5nIFRCIHZhbHVlcyBpbiByNyBhdCBldmVyeSBpdGVyYXRpb24gYW5kIGNvbXBhcmluZyBpdAorCQkgKiB0byByNi4gV2hlbiByNyAoY3VycmVudCkgLSByNiAoaW5pdGlhbCkgPiA2MTQ0MDAwMDAwMCB3ZSBiYWlsCisJCSAqIG91dCBzaW5jZSBmb3Igc3VyZSB3ZSBzcGVudCBhbHJlYWR5IDIgbWludXRlcyBpbiB0aGUgbG9vcC4KKwkJICogU1BSIDI2OCBpcyB0aGUgVEIgcmVnaXN0ZXIuCisJCSAqLworCQkiICAgICAgIGxpcyAgICAgNSwgMTQgICAgICAgICAgIDsiCisJCSIgICAgICAgb3JpICAgICA1LCA1LCAxOTk5NiAgICAgOyIKKwkJIiAgICAgICBzbGRpICAgIDUsIDUsIDE2ICAgICAgICA7IiAvLyByNSA9IDYxNDQwMDAwMDAwCisKKwkJIiAgICAgICBtZnNwciAgIDYsIDI2OCAgICAgICAgICA7IiAvLyByNiAoVEIgaW5pdGlhbCkKKwkJIjE6ICAgICBtZnNwciAgIDcsIDI2OCAgICAgICAgICA7IiAvLyByNyAoVEIgY3VycmVudCkKKwkJIiAgICAgICBzdWJmICAgIDcsIDYsIDcgICAgICAgICA7IiAvLyByNyAtIHI2ID4gNjE0NDAwMDAwMDAgPworCQkiICAgICAgIGNtcGQgICAgNywgNSAgICAgICAgICAgIDsiCisJCSIgICAgICAgYmd0ICAgICAzZiAgICAgICAgICAgICAgOyIgLy8geWVzLCBleGl0CisKKwkJLyoKKwkJICogTWFpbiBsb29wIHRvIGNoZWNrIGYzMQorCQkgKi8KKwkJIiAgICAgICB0YmVnaW4uICAgICAgICAgICAgICAgICA7IiAvLyBubywgdHJ5IGFnYWluCisJCSIgICAgICAgYmVxICAgICAxYiAgICAgICAgICAgICAgOyIgLy8gcmVzdGFydCBpZiBubyB0aW1lb3V0CisJCSIgICAgICAgbWZ2c3JkICAzLCAzMSAgICAgICAgICAgOyIgLy8gcmVhZCBmMzEKKwkJIiAgICAgICBjbXBkICAgIDMsIDQgICAgICAgICAgICA7IiAvLyBmMzEgPT0gMSA/CisJCSIgICAgICAgYm5lICAgICAyZiAgICAgICAgICAgICAgOyIgLy8gYnJva2VuIDotKAorCQkiICAgICAgIHRhYm9ydC4gMyAgICAgICAgICAgICAgIDsiIC8vIHRyeSBhbm90aGVyIHRyYW5zYWN0aW9uCisJCSIyOiAgICAgdGVuZC4gICAgICAgICAgICAgICAgICAgOyIgLy8gY29tbWl0IHRyYW5zYWN0aW9uCisJCSIzOiAgICAgbXIgICAgJVt1bmtub3duXSwgMyAgICAgOyIgLy8gcmVjb3JkIHIzCisKKwkJOiBbdW5rbm93bl0gIj1yIiAodW5rbm93bikKKwkJOgorCQk6ICJjcjAiLCAicjMiLCAicjQiLCAicjUiLCAicjYiLCAicjciLCAidnMzMSIKKworCQkpOworCisJLyoKKwkgKiBPbiBsZWFrICd1bmtub3duJyB3aWxsIGNvbnRhaW4gJ3BvaXNvbicgdmFsdWUgZnJvbSBjaGlsZCwKKwkgKiBvdGhlcndpc2UgKG5vIGxlYWspICd1bmtub3duJyB3aWxsIGNvbnRhaW4gdGhlIHNhbWUgdmFsdWUKKwkgKiBhcyByMyBiZWZvcmUgZW50ZXJpbmcgaW4gdHJhbnNhY3Rpb25hbCBtb2RlLCBpLmUuIDB4MS4KKwkgKi8KKwlmYWlsX2ZwID0gdW5rbm93biAhPSAweDE7CisJaWYgKGZhaWxfZnApCisJCXByaW50ZigiVW5rbm93biB2YWx1ZSAlIyJQUkl4NjQiIGxlYWtlZCBpbnRvIGYzMSFcbiIsIHVua25vd24pOworCWVsc2UKKwkJcHJpbnRmKCJHb29kLCBubyBwb2lzb24gb3IgbGVha2VkIHZhbHVlIGludG8gRlAgcmVnaXN0ZXJzXG4iKTsKKworCWFzbSAoCisJCS8qCisJCSAqIFNldCByMywgcjQsIGFuZCB2cjMxIHRvIGtub3duIHZhbHVlIDEgYmVmb3JlIGVudGVyaW5nCisJCSAqIGluIHRyYW5zYWN0aW9uLiBUaGV5IHdvbid0IGJlIHdyaXR0ZW4gYWZ0ZXIgdGhhdC4KKwkJICovCisJCSIgICAgICAgbGkgICAgICAzLCAweDEgICAgICAgICAgOyIKKwkJIiAgICAgICBsaSAgICAgIDQsIDB4MSAgICAgICAgICA7IgorCQkiICAgICAgIG10dnNyZCAgNjMsIDQgICAgICAgICAgIDsiCisKKwkJIiAgICAgICBsaXMgICAgIDUsIDE0ICAgICAgICAgICA7IgorCQkiICAgICAgIG9yaSAgICAgNSwgNSwgMTk5OTYgICAgIDsiCisJCSIgICAgICAgc2xkaSAgICA1LCA1LCAxNiAgICAgICAgOyIgLy8gcjUgPSA2MTQ0MDAwMDAwMAorCisJCSIgICAgICAgbWZzcHIgICA2LCAyNjggICAgICAgICAgOyIgLy8gcjYgKFRCIGluaXRpYWwpCisJCSIxOiAgICAgbWZzcHIgICA3LCAyNjggICAgICAgICAgOyIgLy8gcjcgKFRCIGN1cnJlbnQpCisJCSIgICAgICAgc3ViZiAgICA3LCA2LCA3ICAgICAgICAgOyIgLy8gcjcgLSByNiA+IDYxNDQwMDAwMDAwID8KKwkJIiAgICAgICBjbXBkICAgIDcsIDUgICAgICAgICAgICA7IgorCQkiICAgICAgIGJndCAgICAgM2YgICAgICAgICAgICAgIDsiIC8vIHllcywgZXhpdAorCisJCS8qCisJCSAqIE1haW4gbG9vcCB0byBjaGVjayB2cjMxCisJCSAqLworCQkiICAgICAgIHRiZWdpbi4gICAgICAgICAgICAgICAgIDsiIC8vIG5vLCB0cnkgYWdhaW4KKwkJIiAgICAgICBiZXEgICAgIDFiICAgICAgICAgICAgICA7IiAvLyByZXN0YXJ0IGlmIG5vIHRpbWVvdXQKKwkJIiAgICAgICBtZnZzcmQgIDMsIDYzICAgICAgICAgICA7IiAvLyByZWFkIHZyMzEKKwkJIiAgICAgICBjbXBkICAgIDMsIDQgICAgICAgICAgICA7IiAvLyB2cjMxID09IDEgPworCQkiICAgICAgIGJuZSAgICAgMmYgICAgICAgICAgICAgIDsiIC8vIGJyb2tlbiA6LSgKKwkJIiAgICAgICB0YWJvcnQuIDMgICAgICAgICAgICAgICA7IiAvLyB0cnkgYW5vdGhlciB0cmFuc2FjdGlvbgorCQkiMjogICAgIHRlbmQuICAgICAgICAgICAgICAgICAgIDsiIC8vIGNvbW1pdCB0cmFuc2FjdGlvbgorCQkiMzogICAgIG1yICAgICVbdW5rbm93bl0sIDMgICAgIDsiIC8vIHJlY29yZCByMworCisJCTogW3Vua25vd25dICI9ciIgKHVua25vd24pCisJCToKKwkJOiAiY3IwIiwgInIzIiwgInI0IiwgInI1IiwgInI2IiwgInI3IiwgInZzNjMiCisKKwkJKTsKKworCS8qCisJICogT24gbGVhayAndW5rbm93bicgd2lsbCBjb250YWluICdwb2lzb24nIHZhbHVlIGZyb20gY2hpbGQsCisJICogb3RoZXJ3aXNlIChubyBsZWFrKSAndW5rbm93bicgd2lsbCBjb250YWluIHRoZSBzYW1lIHZhbHVlCisJICogYXMgcjMgYmVmb3JlIGVudGVyaW5nIGluIHRyYW5zYWN0aW9uYWwgbW9kZSwgaS5lLiAweDEuCisJICovCisJZmFpbF92ciA9IHVua25vd24gIT0gMHgxOworCWlmIChmYWlsX3ZyKQorCQlwcmludGYoIlVua25vd24gdmFsdWUgJSMiUFJJeDY0IiBsZWFrZWQgaW50byB2cjMxIVxuIiwgdW5rbm93bik7CisJZWxzZQorCQlwcmludGYoIkdvb2QsIG5vIHBvaXNvbiBvciBsZWFrZWQgdmFsdWUgaW50byBWRUMgcmVnaXN0ZXJzXG4iKTsKKworCWtpbGwocGlkLCBTSUdLSUxMKTsKKworCXJldHVybiAoZmFpbF9mcCB8IGZhaWxfdnIpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCS8qIFRlc3QgY29tcGxldGVzIGluIGFib3V0IDRtICovCisJdGVzdF9oYXJuZXNzX3NldF90aW1lb3V0KDI1MCk7CisJcmV0dXJuIHRlc3RfaGFybmVzcyh0bV9wb2lzb25fdGVzdCwgInRtX3BvaXNvbl90ZXN0Iik7Cit9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLXNpZ25hbC1jb250ZXh0LWNoay1mcHUuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvdG0vdG0tc2lnbmFsLWNvbnRleHQtY2hrLWZwdS5jCmluZGV4IGQ1N2MyZDIuLjI1NGY5MTIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvdG0vdG0tc2lnbmFsLWNvbnRleHQtY2hrLWZwdS5jCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvdG0vdG0tc2lnbmFsLWNvbnRleHQtY2hrLWZwdS5jCkBAIC01LDEwICs1LDExIEBACiAgKiBUZXN0IHRoZSBrZXJuZWwncyBzaWduYWwgZnJhbWUgY29kZS4KICAqCiAgKiBUaGUga2VybmVsIHNldHMgdXAgdHdvIHNldHMgb2YgdWNvbnRleHRzIGlmIHRoZSBzaWduYWwgd2FzIHRvIGJlCi0gKiBkZWxpdmVyZWQgd2hpbGUgdGhlIHRocmVhZCB3YXMgaW4gYSB0cmFuc2FjdGlvbi4KKyAqIGRlbGl2ZXJlZCB3aGlsZSB0aGUgdGhyZWFkIHdhcyBpbiBhIHRyYW5zYWN0aW9uIChyZWZlcnJlZCB0b28gYXMKKyAqIGZpcnN0IGFuZCBzZWNvbmQgY29udGV4dHMpLgogICogRXhwZWN0ZWQgYmVoYXZpb3VyIGlzIHRoYXQgdGhlIGNoZWNrcG9pbnRlZCBzdGF0ZSBpcyBpbiB0aGUgdXNlcgotICogY29udGV4dCBwYXNzZWQgdG8gdGhlIHNpZ25hbCBoYW5kbGVyLiBUaGUgc3BlY3VsYXRlZCBzdGF0ZSBjYW4gYmUKLSAqIGFjY2Vzc2VkIHdpdGggdGhlIHVjX2xpbmsgcG9pbnRlci4KKyAqIGNvbnRleHQgcGFzc2VkIHRvIHRoZSBzaWduYWwgaGFuZGxlciAoZmlyc3QgY29udGV4dCkuIFRoZSBzcGVjdWxhdGVkCisgKiBzdGF0ZSBjYW4gYmUgYWNjZXNzZWQgd2l0aCB0aGUgdWNfbGluayBwb2ludGVyIChzZWNvbmQgY29udGV4dCkuCiAgKgogICogVGhlIHJhdGlvbmFsZSBmb3IgdGhpcyBpcyB0aGF0IGlmIFRNIHVuYXdhcmUgY29kZSAod2hpY2ggbGlua2VkCiAgKiBhZ2FpbnN0IFRNIGxpYnMpIGluc3RhbGxzIGEgc2lnbmFsIGhhbmRsZXIgaXQgd2lsbCBub3Qga25vdyBvZiB0aGUKQEAgLTI4LDE3ICsyOSwyMCBAQAogCiAjZGVmaW5lIE1BWF9BVFRFTVBUIDUwMDAwMAogCi0jZGVmaW5lIE5WX0ZQVV9SRUdTIDE4CisjZGVmaW5lIE5WX0ZQVV9SRUdTIDE4IC8qIE51bWJlciBvZiBub24tdm9sYXRpbGUgRlAgcmVnaXN0ZXJzICovCisjZGVmaW5lIEZQUjE0IDE0IC8qIEZpcnN0IG5vbi12b2xhdGlsZSBGUCByZWdpc3RlciB0byBjaGVjayBpbiBmMTQtMzEgc3Vic2V0ICovCiAKIGxvbmcgdG1fc2lnbmFsX3NlbGZfY29udGV4dF9sb2FkKHBpZF90IHBpZCwgbG9uZyAqZ3BycywgZG91YmxlICpmcHMsIHZlY3RvciBpbnQgKnZtcywgdmVjdG9yIGludCAqdnNzKTsKIAotLyogQmUgc3VyZSB0aGVyZSBhcmUgMnggYXMgbWFueSBhcyB0aGVyZSBhcmUgTlYgRlBVIHJlZ3MgKDJ4MTgpICovCisvKiBUZXN0IG9ubHkgbm9uLXZvbGF0aWxlIHJlZ2lzdGVycywgaS5lLiAxOCBmcHIgcmVnaXN0ZXJzIGZyb20gZjE0IHRvIGYzMSAqLwogc3RhdGljIGRvdWJsZSBmcHNbXSA9IHsKKwkvKiBGaXJzdCBjb250ZXh0IHdpbGwgYmUgc2V0IHdpdGggdGhlc2UgdmFsdWVzLCBpLmUuIG5vbi1zcGVjdWxhdGl2ZSAqLwogCSAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LAorCS8qIFNlY29uZCBjb250ZXh0IHdpbGwgYmUgc2V0IHdpdGggdGhlc2UgdmFsdWVzLCBpLmUuIHNwZWN1bGF0aXZlICovCiAJLTEsLTIsLTMsLTQsLTUsLTYsLTcsLTgsLTksLTEwLC0xMSwtMTIsLTEzLC0xNCwtMTUsLTE2LC0xNywtMTgKIH07CiAKLXN0YXRpYyBzaWdfYXRvbWljX3QgZmFpbDsKK3N0YXRpYyBzaWdfYXRvbWljX3QgZmFpbCwgYnJva2VuOwogCiBzdGF0aWMgdm9pZCBzaWduYWxfdXNyMShpbnQgc2lnbnVtLCBzaWdpbmZvX3QgKmluZm8sIHZvaWQgKnVjKQogewpAQCAtNDYsMTEgKzUwLDI0IEBAIHN0YXRpYyB2b2lkIHNpZ25hbF91c3IxKGludCBzaWdudW0sIHNpZ2luZm9fdCAqaW5mbywgdm9pZCAqdWMpCiAJdWNvbnRleHRfdCAqdWNwID0gdWM7CiAJdWNvbnRleHRfdCAqdG1fdWNwID0gdWNwLT51Y19saW5rOwogCi0JZm9yIChpID0gMDsgaSA8IE5WX0ZQVV9SRUdTICYmICFmYWlsOyBpKyspIHsKLQkJZmFpbCA9ICh1Y3AtPnVjX21jb250ZXh0LmZwX3JlZ3NbaSArIDE0XSAhPSBmcHNbaV0pOwotCQlmYWlsIHw9ICh0bV91Y3AtPnVjX21jb250ZXh0LmZwX3JlZ3NbaSArIDE0XSAhPSBmcHNbaSArIE5WX0ZQVV9SRUdTXSk7Ci0JCWlmIChmYWlsKQotCQkJcHJpbnRmKCJGYWlsZWQgb24gJWQgRlAgJWcgb3IgJWdcbiIsIGksIHVjcC0+dWNfbWNvbnRleHQuZnBfcmVnc1tpICsgMTRdLCB0bV91Y3AtPnVjX21jb250ZXh0LmZwX3JlZ3NbaSArIDE0XSk7CisJZm9yIChpID0gMDsgaSA8IE5WX0ZQVV9SRUdTOyBpKyspIHsKKwkJLyogQ2hlY2sgZmlyc3QgY29udGV4dC4gUHJpbnQgYWxsIG1pc21hdGNoZXMuICovCisJCWZhaWwgPSAodWNwLT51Y19tY29udGV4dC5mcF9yZWdzW0ZQUjE0ICsgaV0gIT0gZnBzW2ldKTsKKwkJaWYgKGZhaWwpIHsKKwkJCWJyb2tlbiA9IDE7CisJCQlwcmludGYoIkZQUiVkICgxc3QgY29udGV4dCkgPT0gJWcgaW5zdGVhZCBvZiAlZyAoZXhwZWN0ZWQpXG4iLAorCQkJCUZQUjE0ICsgaSwgdWNwLT51Y19tY29udGV4dC5mcF9yZWdzW0ZQUjE0ICsgaV0sIGZwc1tpXSk7CisJCX0KKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgTlZfRlBVX1JFR1M7IGkrKykgeworCQkvKiBDaGVjayBzZWNvbmQgY29udGV4dC4gUHJpbnQgYWxsIG1pc21hdGNoZXMuICovCisJCWZhaWwgPSAodG1fdWNwLT51Y19tY29udGV4dC5mcF9yZWdzW0ZQUjE0ICsgaV0gIT0gZnBzW05WX0ZQVV9SRUdTICsgaV0pOworCQlpZiAoZmFpbCkgeworCQkJYnJva2VuID0gMTsKKwkJCXByaW50ZigiRlBSJWQgKDJuZCBjb250ZXh0KSA9PSAlZyBpbnN0ZWFkIG9mICVnIChleHBlY3RlZClcbiIsCisJCQkJRlBSMTQgKyBpLCB0bV91Y3AtPnVjX21jb250ZXh0LmZwX3JlZ3NbRlBSMTQgKyBpXSwgZnBzW05WX0ZQVV9SRUdTICsgaV0pOworCQl9CiAJfQogfQogCkBAIC03MiwxMyArODksMTkgQEAgc3RhdGljIGludCB0bV9zaWduYWxfY29udGV4dF9jaGtfZnB1KCkKIAl9CiAKIAlpID0gMDsKLQl3aGlsZSAoaSA8IE1BWF9BVFRFTVBUICYmICFmYWlsKSB7CisJd2hpbGUgKGkgPCBNQVhfQVRURU1QVCAmJiAhYnJva2VuKSB7CisJCS8qCisJCSAqIHRtX3NpZ25hbF9zZWxmX2NvbnRleHRfbG9hZCB3aWxsIHNldCBib3RoIGZpcnN0IGFuZCBzZWNvbmQKKwkJICogY29udGV4dHMgYWNjb3JkaW5nbHkgdG8gdGhlIHZhbHVlcyBwYXNzZWQgdGhyb3VnaCBub24tTlVMTAorCQkgKiBhcnJheSBwb2ludGVycyB0byBpdCwgaW4gdGhhdCBjYXNlICdmcHMnLCBhbmQgaW52b2tlIHRoZQorCQkgKiBzaWduYWwgaGFuZGxlciBpbnN0YWxsZWQgZm9yIFNJR1VTUjEuCisJCSAqLwogCQlyYyA9IHRtX3NpZ25hbF9zZWxmX2NvbnRleHRfbG9hZChwaWQsIE5VTEwsIGZwcywgTlVMTCwgTlVMTCk7CiAJCUZBSUxfSUYocmMgIT0gcGlkKTsKIAkJaSsrOwogCX0KIAotCXJldHVybiBmYWlsOworCXJldHVybiAoYnJva2VuKTsKIH0KIAogaW50IG1haW4odm9pZCkKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvdG0vdG0tc2lnbmFsLWNvbnRleHQtY2hrLWdwci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS90bS1zaWduYWwtY29udGV4dC1jaGstZ3ByLmMKaW5kZXggNGQwNWY4Yi4uMGNjNjgwZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS90bS1zaWduYWwtY29udGV4dC1jaGstZ3ByLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS90bS1zaWduYWwtY29udGV4dC1jaGstZ3ByLmMKQEAgLTUsMTAgKzUsMTEgQEAKICAqIFRlc3QgdGhlIGtlcm5lbCdzIHNpZ25hbCBmcmFtZSBjb2RlLgogICoKICAqIFRoZSBrZXJuZWwgc2V0cyB1cCB0d28gc2V0cyBvZiB1Y29udGV4dHMgaWYgdGhlIHNpZ25hbCB3YXMgdG8gYmUKLSAqIGRlbGl2ZXJlZCB3aGlsZSB0aGUgdGhyZWFkIHdhcyBpbiBhIHRyYW5zYWN0aW9uLgorICogZGVsaXZlcmVkIHdoaWxlIHRoZSB0aHJlYWQgd2FzIGluIGEgdHJhbnNhY3Rpb24gKHJlZmVycmVkIHRvbyBhcworICogZmlyc3QgYW5kIHNlY29uZCBjb250ZXh0cykuCiAgKiBFeHBlY3RlZCBiZWhhdmlvdXIgaXMgdGhhdCB0aGUgY2hlY2twb2ludGVkIHN0YXRlIGlzIGluIHRoZSB1c2VyCi0gKiBjb250ZXh0IHBhc3NlZCB0byB0aGUgc2lnbmFsIGhhbmRsZXIuIFRoZSBzcGVjdWxhdGVkIHN0YXRlIGNhbiBiZQotICogYWNjZXNzZWQgd2l0aCB0aGUgdWNfbGluayBwb2ludGVyLgorICogY29udGV4dCBwYXNzZWQgdG8gdGhlIHNpZ25hbCBoYW5kbGVyIChmaXJzdCBjb250ZXh0KS4gVGhlIHNwZWN1bGF0ZWQKKyAqIHN0YXRlIGNhbiBiZSBhY2Nlc3NlZCB3aXRoIHRoZSB1Y19saW5rIHBvaW50ZXIgKHNlY29uZCBjb250ZXh0KS4KICAqCiAgKiBUaGUgcmF0aW9uYWxlIGZvciB0aGlzIGlzIHRoYXQgaWYgVE0gdW5hd2FyZSBjb2RlICh3aGljaCBsaW5rZWQKICAqIGFnYWluc3QgVE0gbGlicykgaW5zdGFsbHMgYSBzaWduYWwgaGFuZGxlciBpdCB3aWxsIG5vdCBrbm93IG9mIHRoZQpAQCAtMjgsMTQgKzI5LDIyIEBACiAKICNkZWZpbmUgTUFYX0FUVEVNUFQgNTAwMDAwCiAKLSNkZWZpbmUgTlZfR1BSX1JFR1MgMTgKKyNkZWZpbmUgTlZfR1BSX1JFR1MgMTggLyogTnVtYmVyIG9mIG5vbi12b2xhdGlsZSBHUFIgcmVnaXN0ZXJzICovCisjZGVmaW5lIFIxNCAxNCAvKiBGaXJzdCBub24tdm9sYXRpbGUgcmVnaXN0ZXIgdG8gY2hlY2sgaW4gcjE0LXIzMSBzdWJzZXQgKi8KIAogbG9uZyB0bV9zaWduYWxfc2VsZl9jb250ZXh0X2xvYWQocGlkX3QgcGlkLCBsb25nICpncHJzLCBkb3VibGUgKmZwcywgdmVjdG9yIGludCAqdm1zLCB2ZWN0b3IgaW50ICp2c3MpOwogCi1zdGF0aWMgc2lnX2F0b21pY190IGZhaWw7CitzdGF0aWMgc2lnX2F0b21pY190IGZhaWwsIGJyb2tlbjsKIAotc3RhdGljIGxvbmcgZ3BzW10gPSB7IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsCi0JCQkJCSAtMSwtMiwtMywtNCwtNSwtNiwtNywtOCwtOSwtMTAsLTExLC0xMiwtMTMsLTE0LC0xNSwtMTYsLTE3LC0xOH07CisvKiBUZXN0IG9ubHkgbm9uLXZvbGF0aWxlIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMsIGkuZS4gcjE0LXIzMSAqLworc3RhdGljIGxvbmcgZ3Byc1tdID0geworCS8qIEZpcnN0IGNvbnRleHQgd2lsbCBiZSBzZXQgd2l0aCB0aGVzZSB2YWx1ZXMsIGkuZS4gbm9uLXNwZWN1bGF0aXZlICovCisJLyogUjE0LCBSMTUsIC4uLiAqLworCSAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LAorCS8qIFNlY29uZCBjb250ZXh0IHdpbGwgYmUgc2V0IHdpdGggdGhlc2UgdmFsdWVzLCBpLmUuIHNwZWN1bGF0aXZlICovCisJLyogUjE0LCBSMTUsIC4uLiAqLworCS0xLC0yLC0zLC00LC01LC02LC03LC04LC05LC0xMCwtMTEsLTEyLC0xMywtMTQsLTE1LC0xNiwtMTcsLTE4Cit9OwogCiBzdGF0aWMgdm9pZCBzaWduYWxfdXNyMShpbnQgc2lnbnVtLCBzaWdpbmZvX3QgKmluZm8sIHZvaWQgKnVjKQogewpAQCAtNDMsMTIgKzUyLDI0IEBAIHN0YXRpYyB2b2lkIHNpZ25hbF91c3IxKGludCBzaWdudW0sIHNpZ2luZm9fdCAqaW5mbywgdm9pZCAqdWMpCiAJdWNvbnRleHRfdCAqdWNwID0gdWM7CiAJdWNvbnRleHRfdCAqdG1fdWNwID0gdWNwLT51Y19saW5rOwogCi0JZm9yIChpID0gMDsgaSA8IE5WX0dQUl9SRUdTICYmICFmYWlsOyBpKyspIHsKLQkJZmFpbCA9ICh1Y3AtPnVjX21jb250ZXh0LmdwX3JlZ3NbaSArIDE0XSAhPSBncHNbaV0pOwotCQlmYWlsIHw9ICh0bV91Y3AtPnVjX21jb250ZXh0LmdwX3JlZ3NbaSArIDE0XSAhPSBncHNbaSArIE5WX0dQUl9SRUdTXSk7Ci0JCWlmIChmYWlsKQotCQkJcHJpbnRmKCJGYWlsZWQgb24gJWQgR1BSICVsdSBvciAlbHVcbiIsIGksCi0JCQkJCXVjcC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tpICsgMTRdLCB0bV91Y3AtPnVjX21jb250ZXh0LmdwX3JlZ3NbaSArIDE0XSk7CisJLyogQ2hlY2sgZmlyc3QgY29udGV4dC4gUHJpbnQgYWxsIG1pc21hdGNoZXMuICovCisJZm9yIChpID0gMDsgaSA8IE5WX0dQUl9SRUdTOyBpKyspIHsKKwkJZmFpbCA9ICh1Y3AtPnVjX21jb250ZXh0LmdwX3JlZ3NbUjE0ICsgaV0gIT0gZ3Byc1tpXSk7CisJCWlmIChmYWlsKSB7CisJCQlicm9rZW4gPSAxOworCQkJcHJpbnRmKCJHUFIlZCAoMXN0IGNvbnRleHQpID09ICVsdSBpbnN0ZWFkIG9mICVsdSAoZXhwZWN0ZWQpXG4iLAorCQkJCVIxNCArIGksIHVjcC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tSMTQgKyBpXSwgZ3Byc1tpXSk7CisJCX0KKwl9CisKKwkvKiBDaGVjayBzZWNvbmQgY29udGV4dC4gUHJpbnQgYWxsIG1pc21hdGNoZXMuICovCisJZm9yIChpID0gMDsgaSA8IE5WX0dQUl9SRUdTOyBpKyspIHsKKwkJZmFpbCA9ICh0bV91Y3AtPnVjX21jb250ZXh0LmdwX3JlZ3NbUjE0ICsgaV0gIT0gZ3Byc1tOVl9HUFJfUkVHUyArIGldKTsKKwkJaWYgKGZhaWwpIHsKKwkJCWJyb2tlbiA9IDE7CisJCQlwcmludGYoIkdQUiVkICgybmQgY29udGV4dCkgPT0gJWx1IGluc3RlYWQgb2YgJWx1IChleHBlY3RlZClcbiIsCisJCQkJUjE0ICsgaSwgdG1fdWNwLT51Y19tY29udGV4dC5ncF9yZWdzW1IxNCArIGldLCBncHJzW05WX0dQUl9SRUdTICsgaV0pOworCQl9CiAJfQogfQogCkBAIC03MCwxMyArOTEsMTkgQEAgc3RhdGljIGludCB0bV9zaWduYWxfY29udGV4dF9jaGtfZ3ByKCkKIAl9CiAKIAlpID0gMDsKLQl3aGlsZSAoaSA8IE1BWF9BVFRFTVBUICYmICFmYWlsKSB7Ci0JCXJjID0gdG1fc2lnbmFsX3NlbGZfY29udGV4dF9sb2FkKHBpZCwgZ3BzLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwl3aGlsZSAoaSA8IE1BWF9BVFRFTVBUICYmICFicm9rZW4pIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIHRtX3NpZ25hbF9zZWxmX2NvbnRleHRfbG9hZCB3aWxsIHNldCBib3RoIGZpcnN0IGFuZCBzZWNvbmQKKyAgICAgICAgICAgICAgICAgKiBjb250ZXh0cyBhY2NvcmRpbmdseSB0byB0aGUgdmFsdWVzIHBhc3NlZCB0aHJvdWdoIG5vbi1OVUxMCisgICAgICAgICAgICAgICAgICogYXJyYXkgcG9pbnRlcnMgdG8gaXQsIGluIHRoYXQgY2FzZSAnZ3BycycsIGFuZCBpbnZva2UgdGhlCisgICAgICAgICAgICAgICAgICogc2lnbmFsIGhhbmRsZXIgaW5zdGFsbGVkIGZvciBTSUdVU1IxLgorICAgICAgICAgICAgICAgICAqLworCQlyYyA9IHRtX3NpZ25hbF9zZWxmX2NvbnRleHRfbG9hZChwaWQsIGdwcnMsIE5VTEwsIE5VTEwsIE5VTEwpOwogCQlGQUlMX0lGKHJjICE9IHBpZCk7CiAJCWkrKzsKIAl9CiAKLQlyZXR1cm4gZmFpbDsKKwlyZXR1cm4gYnJva2VuOwogfQogCiBpbnQgbWFpbih2b2lkKQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS90bS1zaWduYWwtY29udGV4dC1jaGstdm14LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLXNpZ25hbC1jb250ZXh0LWNoay12bXguYwppbmRleCA0OGFkMDE0Li5iNmQ1MjczIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLXNpZ25hbC1jb250ZXh0LWNoay12bXguYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLXNpZ25hbC1jb250ZXh0LWNoay12bXguYwpAQCAtNSwxMCArNSwxMSBAQAogICogVGVzdCB0aGUga2VybmVsJ3Mgc2lnbmFsIGZyYW1lIGNvZGUuCiAgKgogICogVGhlIGtlcm5lbCBzZXRzIHVwIHR3byBzZXRzIG9mIHVjb250ZXh0cyBpZiB0aGUgc2lnbmFsIHdhcyB0byBiZQotICogZGVsaXZlcmVkIHdoaWxlIHRoZSB0aHJlYWQgd2FzIGluIGEgdHJhbnNhY3Rpb24uCisgKiBkZWxpdmVyZWQgd2hpbGUgdGhlIHRocmVhZCB3YXMgaW4gYSB0cmFuc2FjdGlvbiAocmVmZXJyZWQgdG9vIGFzCisgKiBmaXJzdCBhbmQgc2Vjb25kIGNvbnRleHRzKS4KICAqIEV4cGVjdGVkIGJlaGF2aW91ciBpcyB0aGF0IHRoZSBjaGVja3BvaW50ZWQgc3RhdGUgaXMgaW4gdGhlIHVzZXIKLSAqIGNvbnRleHQgcGFzc2VkIHRvIHRoZSBzaWduYWwgaGFuZGxlci4gVGhlIHNwZWN1bGF0ZWQgc3RhdGUgY2FuIGJlCi0gKiBhY2Nlc3NlZCB3aXRoIHRoZSB1Y19saW5rIHBvaW50ZXIuCisgKiBjb250ZXh0IHBhc3NlZCB0byB0aGUgc2lnbmFsIGhhbmRsZXIgKGZpcnN0IGNvbnRleHQpLiBUaGUgc3BlY3VsYXRlZAorICogc3RhdGUgY2FuIGJlIGFjY2Vzc2VkIHdpdGggdGhlIHVjX2xpbmsgcG9pbnRlciAoc2Vjb25kIGNvbnRleHQpLgogICoKICAqIFRoZSByYXRpb25hbGUgZm9yIHRoaXMgaXMgdGhhdCBpZiBUTSB1bmF3YXJlIGNvZGUgKHdoaWNoIGxpbmtlZAogICogYWdhaW5zdCBUTSBsaWJzKSBpbnN0YWxscyBhIHNpZ25hbCBoYW5kbGVyIGl0IHdpbGwgbm90IGtub3cgb2YgdGhlCkBAIC0yOSwxOCArMzAsMjQgQEAKIAogI2RlZmluZSBNQVhfQVRURU1QVCA1MDAwMDAKIAotI2RlZmluZSBOVl9WTVhfUkVHUyAxMgorI2RlZmluZSBOVl9WTVhfUkVHUyAxMiAvKiBOdW1iZXIgb2Ygbm9uLXZvbGF0aWxlIFZNWCByZWdpc3RlcnMgKi8KKyNkZWZpbmUgVk1YMjAgMjAgLyogRmlyc3Qgbm9uLXZvbGF0aWxlIHJlZ2lzdGVyIHRvIGNoZWNrIGluIHZyMjAtMzEgc3Vic2V0ICovCiAKIGxvbmcgdG1fc2lnbmFsX3NlbGZfY29udGV4dF9sb2FkKHBpZF90IHBpZCwgbG9uZyAqZ3BycywgZG91YmxlICpmcHMsIHZlY3RvciBpbnQgKnZtcywgdmVjdG9yIGludCAqdnNzKTsKIAotc3RhdGljIHNpZ19hdG9taWNfdCBmYWlsOworc3RhdGljIHNpZ19hdG9taWNfdCBmYWlsLCBicm9rZW47CiAKKy8qIFRlc3Qgb25seSBub24tdm9sYXRpbGUgcmVnaXN0ZXJzLCBpLmUuIDEyIHZteCByZWdpc3RlcnMgZnJvbSB2cjIwIHRvIHZyMzEgKi8KIHZlY3RvciBpbnQgdm1zW10gPSB7Ci0JezEsIDIsIDMsIDQgfSx7NSwgNiwgNywgOCB9LHs5LCAxMCwxMSwxMn0sCisJLyogRmlyc3QgY29udGV4dCB3aWxsIGJlIHNldCB3aXRoIHRoZXNlIHZhbHVlcywgaS5lLiBub24tc3BlY3VsYXRpdmUgKi8KKwkvKiBWTVgyMCAgICAgLCAgVk1YMjEgICAgICAsIC4uLiAqLworCXsgMSwgMiwgMywgNH0seyA1LCA2LCA3LCA4fSx7IDksMTAsMTEsMTJ9LAogCXsxMywxNCwxNSwxNn0sezE3LDE4LDE5LDIwfSx7MjEsMjIsMjMsMjR9LAogCXsyNSwyNiwyNywyOH0sezI5LDMwLDMxLDMyfSx7MzMsMzQsMzUsMzZ9LAogCXszNywzOCwzOSw0MH0sezQxLDQyLDQzLDQ0fSx7NDUsNDYsNDcsNDh9LAotCXstMSwgLTIsIC0zLCAtNH0sIHstNSwgLTYsIC03LCAtOH0sIHstOSwgLTEwLC0xMSwtMTJ9LAorCS8qIFNlY29uZCBjb250ZXh0IHdpbGwgYmUgc2V0IHdpdGggdGhlc2UgdmFsdWVzLCBpLmUuIHNwZWN1bGF0aXZlICovCisJLyogVk1YMjAgICAgICAgICwgVk1YMjEgICAgICAgICAgICAsIC4uLiAqLworCXsgLTEsIC0yLCAtMywgLTR9LHsgLTUsIC02LCAtNywgLTh9LHsgLTksLTEwLC0xMSwtMTJ9LAogCXstMTMsLTE0LC0xNSwtMTZ9LHstMTcsLTE4LC0xOSwtMjB9LHstMjEsLTIyLC0yMywtMjR9LAogCXstMjUsLTI2LC0yNywtMjh9LHstMjksLTMwLC0zMSwtMzJ9LHstMzMsLTM0LC0zNSwtMzZ9LAogCXstMzcsLTM4LC0zOSwtNDB9LHstNDEsLTQyLC00MywtNDR9LHstNDUsLTQ2LC00NywtNDh9CkBAIC00OCwyNiArNTUsNDMgQEAgdmVjdG9yIGludCB2bXNbXSA9IHsKIAogc3RhdGljIHZvaWQgc2lnbmFsX3VzcjEoaW50IHNpZ251bSwgc2lnaW5mb190ICppbmZvLCB2b2lkICp1YykKIHsKLQlpbnQgaTsKKwlpbnQgaSwgajsKIAl1Y29udGV4dF90ICp1Y3AgPSB1YzsKIAl1Y29udGV4dF90ICp0bV91Y3AgPSB1Y3AtPnVjX2xpbms7CiAKLQlmb3IgKGkgPSAwOyBpIDwgTlZfVk1YX1JFR1MgJiYgIWZhaWw7IGkrKykgewotCQlmYWlsID0gbWVtY21wKHVjcC0+dWNfbWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaSArIDIwXSwKKwlmb3IgKGkgPSAwOyBpIDwgTlZfVk1YX1JFR1M7IGkrKykgeworCQkvKiBDaGVjayBmaXJzdCBjb250ZXh0LiBQcmludCBhbGwgbWlzbWF0Y2hlcy4gKi8KKwkJZmFpbCA9IG1lbWNtcCh1Y3AtPnVjX21jb250ZXh0LnZfcmVncy0+dnJyZWdzW1ZNWDIwICsgaV0sCiAJCQkJJnZtc1tpXSwgc2l6ZW9mKHZlY3RvciBpbnQpKTsKLQkJZmFpbCB8PSBtZW1jbXAodG1fdWNwLT51Y19tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpICsgMjBdLAotCQkJCSZ2bXNbaSArIE5WX1ZNWF9SRUdTXSwgc2l6ZW9mICh2ZWN0b3IgaW50KSk7Ci0KIAkJaWYgKGZhaWwpIHsKLQkJCWludCBqOwotCi0JCQlmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCBvbiAlZCB2bXggMHgiLCBpKTsKKwkJCWJyb2tlbiA9IDE7CisJCQlwcmludGYoIlZNWCVkICgxc3QgY29udGV4dCkgPT0gMHgiLCBWTVgyMCArIGkpOworCQkJLyogUHJpbnQgYWN0dWFsIHZhbHVlIGluIGZpcnN0IGNvbnRleHQuICovCiAJCQlmb3IgKGogPSAwOyBqIDwgNDsgaisrKQotCQkJCWZwcmludGYoc3RkZXJyLCAiJTA0eCIsIHVjcC0+dWNfbWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaSArIDIwXVtqXSk7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgIiB2cyAweCIpOwotCQkJZm9yIChqID0gMCA7IGogPCA0OyBqKyspCi0JCQkJZnByaW50ZihzdGRlcnIsICIlMDR4IiwgdG1fdWNwLT51Y19tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpICsgMjBdW2pdKTsKLQkJCWZwcmludGYoc3RkZXJyLCAiXG4iKTsKKwkJCQlwcmludGYoIiUwOHgiLCB1Y3AtPnVjX21jb250ZXh0LnZfcmVncy0+dnJyZWdzW1ZNWDIwICsgaV1bal0pOworCQkJcHJpbnRmKCIgaW5zdGVhZCBvZiAweCIpOworCQkJLyogUHJpbnQgZXhwZWN0ZWQgdmFsdWUuICovCisJCQlmb3IgKGogPSAwOyBqIDwgNDsgaisrKQorCQkJCXByaW50ZigiJTA4eCIsIHZtc1tpXVtqXSk7CisJCQlwcmludGYoIiAoZXhwZWN0ZWQpXG4iKTsKKwkJfQorCX0KKworCWZvciAoaSA9IDA7IGkgPCBOVl9WTVhfUkVHUzsgaSsrKSAgeworCQkvKiBDaGVjayBzZWNvbmQgY29udGV4dC4gUHJpbnQgYWxsIG1pc21hdGNoZXMuICovCisJCWZhaWwgPSBtZW1jbXAodG1fdWNwLT51Y19tY29udGV4dC52X3JlZ3MtPnZycmVnc1tWTVgyMCArIGldLAorCQkJCSZ2bXNbTlZfVk1YX1JFR1MgKyBpXSwgc2l6ZW9mICh2ZWN0b3IgaW50KSk7CisJCWlmIChmYWlsKSB7CisJCQlicm9rZW4gPSAxOworCQkJcHJpbnRmKCJWTVglZCAoMm5kIGNvbnRleHQpID09IDB4IiwgTlZfVk1YX1JFR1MgKyBpKTsKKwkJCS8qIFByaW50IGFjdHVhbCB2YWx1ZSBpbiBzZWNvbmQgY29udGV4dC4gKi8KKwkJCWZvciAoaiA9IDA7IGogPCA0OyBqKyspCisJCQkJcHJpbnRmKCIlMDh4IiwgdG1fdWNwLT51Y19tY29udGV4dC52X3JlZ3MtPnZycmVnc1tWTVgyMCArIGldW2pdKTsKKwkJCXByaW50ZigiIGluc3RlYWQgb2YgMHgiKTsKKwkJCS8qIFByaW50IGV4cGVjdGVkIHZhbHVlLiAqLworCQkJZm9yIChqID0gMDsgaiA8IDQ7IGorKykKKwkJCQlwcmludGYoIiUwOHgiLCB2bXNbTlZfVk1YX1JFR1MgKyBpXVtqXSk7CisJCQlwcmludGYoIiAoZXhwZWN0ZWQpXG4iKTsKIAkJfQogCX0KIH0KQEAgLTkwLDEzICsxMTQsMTkgQEAgc3RhdGljIGludCB0bV9zaWduYWxfY29udGV4dF9jaGsoKQogCX0KIAogCWkgPSAwOwotCXdoaWxlIChpIDwgTUFYX0FUVEVNUFQgJiYgIWZhaWwpIHsKKwl3aGlsZSAoaSA8IE1BWF9BVFRFTVBUICYmICFicm9rZW4pIHsKKwkJLyoKKwkJICogdG1fc2lnbmFsX3NlbGZfY29udGV4dF9sb2FkIHdpbGwgc2V0IGJvdGggZmlyc3QgYW5kIHNlY29uZAorCQkgKiBjb250ZXh0cyBhY2NvcmRpbmdseSB0byB0aGUgdmFsdWVzIHBhc3NlZCB0aHJvdWdoIG5vbi1OVUxMCisJCSAqIGFycmF5IHBvaW50ZXJzIHRvIGl0LCBpbiB0aGF0IGNhc2UgJ3ZtcycsIGFuZCBpbnZva2UgdGhlCisJCSAqIHNpZ25hbCBoYW5kbGVyIGluc3RhbGxlZCBmb3IgU0lHVVNSMS4KKwkJICovCiAJCXJjID0gdG1fc2lnbmFsX3NlbGZfY29udGV4dF9sb2FkKHBpZCwgTlVMTCwgTlVMTCwgdm1zLCBOVUxMKTsKIAkJRkFJTF9JRihyYyAhPSBwaWQpOwogCQlpKys7CiAJfQogCi0JcmV0dXJuIGZhaWw7CisJcmV0dXJuIChicm9rZW4pOwogfQogCiBpbnQgbWFpbih2b2lkKQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS90bS1zaWduYWwtY29udGV4dC1jaGstdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLXNpZ25hbC1jb250ZXh0LWNoay12c3guYwppbmRleCA4Yzg2NzdhLi44ZTI1ZTIwIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLXNpZ25hbC1jb250ZXh0LWNoay12c3guYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLXNpZ25hbC1jb250ZXh0LWNoay12c3guYwpAQCAtNSwxMCArNSwxMSBAQAogICogVGVzdCB0aGUga2VybmVsJ3Mgc2lnbmFsIGZyYW1lIGNvZGUuCiAgKgogICogVGhlIGtlcm5lbCBzZXRzIHVwIHR3byBzZXRzIG9mIHVjb250ZXh0cyBpZiB0aGUgc2lnbmFsIHdhcyB0byBiZQotICogZGVsaXZlcmVkIHdoaWxlIHRoZSB0aHJlYWQgd2FzIGluIGEgdHJhbnNhY3Rpb24uCisgKiBkZWxpdmVyZWQgd2hpbGUgdGhlIHRocmVhZCB3YXMgaW4gYSB0cmFuc2FjdGlvbiAocmVmZXJyZWQgdG9vIGFzCisgKiBmaXJzdCBhbmQgc2Vjb25kIGNvbnRleHRzKS4KICAqIEV4cGVjdGVkIGJlaGF2aW91ciBpcyB0aGF0IHRoZSBjaGVja3BvaW50ZWQgc3RhdGUgaXMgaW4gdGhlIHVzZXIKLSAqIGNvbnRleHQgcGFzc2VkIHRvIHRoZSBzaWduYWwgaGFuZGxlci4gVGhlIHNwZWN1bGF0ZWQgc3RhdGUgY2FuIGJlCi0gKiBhY2Nlc3NlZCB3aXRoIHRoZSB1Y19saW5rIHBvaW50ZXIuCisgKiBjb250ZXh0IHBhc3NlZCB0byB0aGUgc2lnbmFsIGhhbmRsZXIgKGZpcnN0IGNvbnRleHQpLiBUaGUgc3BlY3VsYXRlZAorICogc3RhdGUgY2FuIGJlIGFjY2Vzc2VkIHdpdGggdGhlIHVjX2xpbmsgcG9pbnRlciAoc2Vjb25kIGNvbnRleHQpLgogICoKICAqIFRoZSByYXRpb25hbGUgZm9yIHRoaXMgaXMgdGhhdCBpZiBUTSB1bmF3YXJlIGNvZGUgKHdoaWNoIGxpbmtlZAogICogYWdhaW5zdCBUTSBsaWJzKSBpbnN0YWxscyBhIHNpZ25hbCBoYW5kbGVyIGl0IHdpbGwgbm90IGtub3cgb2YgdGhlCkBAIC0yOSwxNyArMzAsMjQgQEAKIAogI2RlZmluZSBNQVhfQVRURU1QVCA1MDAwMDAKIAotI2RlZmluZSBOVl9WU1hfUkVHUyAxMgorI2RlZmluZSBOVl9WU1hfUkVHUyAxMiAvKiBOdW1iZXIgb2YgVlNYIHJlZ2lzdGVycyB0byBjaGVjay4gKi8KKyNkZWZpbmUgVlNYMjAgMjAgLyogRmlyc3QgVlNYIHJlZ2lzdGVyIHRvIGNoZWNrIGluIHZzcjIwLXZzcjMxIHN1YnNldCAqLworI2RlZmluZSBGUFIyMCAyMCAvKiBGUFIyMCBvdmVybGFwcyBWU1gyMCBtb3N0IHNpZ25pZmljYW50IGRvdWJsZXdvcmQgKi8KIAogbG9uZyB0bV9zaWduYWxfc2VsZl9jb250ZXh0X2xvYWQocGlkX3QgcGlkLCBsb25nICpncHJzLCBkb3VibGUgKmZwcywgdmVjdG9yIGludCAqdm1zLCB2ZWN0b3IgaW50ICp2c3MpOwogCi1zdGF0aWMgc2lnX2F0b21pY190IGZhaWw7CitzdGF0aWMgc2lnX2F0b21pY190IGZhaWwsIGJyb2tlbjsKIAotdmVjdG9yIGludCB2c3NbXSA9IHsKLQl7MSwgMiwgMywgNCB9LHs1LCA2LCA3LCA4IH0sezksIDEwLDExLDEyfSwKKy8qIFRlc3Qgb25seSAxMiB2c3ggcmVnaXN0ZXJzIGZyb20gdnNyMjAgdG8gdnNyMzEgKi8KK3ZlY3RvciBpbnQgdnN4c1tdID0geworCS8qIEZpcnN0IGNvbnRleHQgd2lsbCBiZSBzZXQgd2l0aCB0aGVzZSB2YWx1ZXMsIGkuZS4gbm9uLXNwZWN1bGF0aXZlICovCisJLyogVlNYMjAgICAgICwgIFZTWDIxICAgICAgLCAuLi4gKi8KKwl7IDEsIDIsIDMsIDR9LHsgNSwgNiwgNywgOH0seyA5LDEwLDExLDEyfSwKIAl7MTMsMTQsMTUsMTZ9LHsxNywxOCwxOSwyMH0sezIxLDIyLDIzLDI0fSwKIAl7MjUsMjYsMjcsMjh9LHsyOSwzMCwzMSwzMn0sezMzLDM0LDM1LDM2fSwKIAl7MzcsMzgsMzksNDB9LHs0MSw0Miw0Myw0NH0sezQ1LDQ2LDQ3LDQ4fSwKKwkvKiBTZWNvbmQgY29udGV4dCB3aWxsIGJlIHNldCB3aXRoIHRoZXNlIHZhbHVlcywgaS5lLiBzcGVjdWxhdGl2ZSAqLworCS8qIFZTWDIwICAgICAgICAgLCAgVlNYMjEgICAgICAgICAgLCAuLi4gKi8KIAl7LTEsIC0yLCAtMywgLTQgfSx7LTUsIC02LCAtNywgLTggfSx7LTksIC0xMCwtMTEsLTEyfSwKIAl7LTEzLC0xNCwtMTUsLTE2fSx7LTE3LC0xOCwtMTksLTIwfSx7LTIxLC0yMiwtMjMsLTI0fSwKIAl7LTI1LC0yNiwtMjcsLTI4fSx7LTI5LC0zMCwtMzEsLTMyfSx7LTMzLC0zNCwtMzUsLTM2fSwKQEAgLTQ4LDQxICs1Niw5MSBAQCB2ZWN0b3IgaW50IHZzc1tdID0gewogCiBzdGF0aWMgdm9pZCBzaWduYWxfdXNyMShpbnQgc2lnbnVtLCBzaWdpbmZvX3QgKmluZm8sIHZvaWQgKnVjKQogewotCWludCBpOwotCXVpbnQ4X3QgdnNjW3NpemVvZih2ZWN0b3IgaW50KV07Ci0JdWludDhfdCB2c3Rbc2l6ZW9mKHZlY3RvciBpbnQpXTsKKwlpbnQgaSwgajsKKwl1aW50OF90IHZzeFtzaXplb2YodmVjdG9yIGludCldOworCXVpbnQ4X3QgdnN4X3RtW3NpemVvZih2ZWN0b3IgaW50KV07CiAJdWNvbnRleHRfdCAqdWNwID0gdWM7CiAJdWNvbnRleHRfdCAqdG1fdWNwID0gdWNwLT51Y19saW5rOwogCiAJLyoKLQkgKiBUaGUgb3RoZXIgaGFsZiBvZiB0aGUgVlNYIHJlZ3Mgd2lsbCBiZSBhZnRlciB2X3JlZ3MuCisJICogRlAgcmVnaXN0ZXJzIGFuZCBWTVggcmVnaXN0ZXJzIG92ZXJsYXAgdGhlIFZTWCByZWdpc3RlcnMuCiAJICoKLQkgKiBJbiBzaG9ydCwgdm14X3Jlc2VydmUgYXJyYXkgaG9sZHMgZXZlcnl0aGluZy4gdl9yZWdzIGlzIGEgMTYKLQkgKiBieXRlIGFsaWduZWQgcG9pbnRlciBhdCB0aGUgc3RhcnQgb2Ygdm14X3Jlc2VydmUgKHZteF9yZXNlcnZlCi0JICogbWF5IG9yIG1heSBub3QgYmUgMTYgYWxpZ25lZCkgd2hlcmUgdGhlIHZfcmVncyBzdHJ1Y3R1cmUgZXhpc3RzLgotCSAqIChoYWxmIG9mKSBUaGUgVlNYIHJlZ3N0ZXJzIGFyZSBkaXJlY3RseSBhZnRlciB2X3JlZ3Mgc28gdGhlCi0JICogZWFzaWVzdCB3YXkgdG8gZmluZCB0aGVtIGJlbG93LgorCSAqIEZQIHJlZ2lzdGVycyAoZjAtMzEpIG92ZXJsYXAgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgNjQgYml0cyBvZiBWU1gKKwkgKiByZWdpc3RlcnMgdnNyMC0zMSwgd2hpbHN0IFZNWCByZWdpc3RlcnMgdnIwLTMxLCBiZWluZyAxMjgtYml0IGxpa2UKKwkgKiB0aGUgVlNYIHJlZ2lzdGVycywgb3ZlcmxhcCBmdWxseSB0aGUgb3RoZXIgaGFsZiBvZiBWU1ggcmVnaXN0ZXJzLAorCSAqIGkuZS4gdnIwLTMxIG92ZXJsYXBzIGZ1bGx5IHZzcjMyLTYzLgorCSAqCisJICogRHVlIHRvIGNvbXBhdGliaWxpdHkgYW5kIGhpc3RvcmljYWwgcmVhc29ucyAoVk1YL0FsdGl2ZWMgc3VwcG9ydAorCSAqIGFwcGVhcmVkIGZpcnN0IG9uIHRoZSBhcmNoaXRlY3R1cmUpLCBWTVggcmVnaXN0ZXJzIHZyMC0zMSAoc28gVlNYCisJICogaGFsZiB2c3IzMi02MyB0b28pIGFyZSBzdG9yZWQgcmlnaHQgYWZ0ZXIgdGhlIHZfcmVncyBwb2ludGVyLCBpbiBhbgorCSAqIGFyZWEgYWxsb2NhdGVkIGZvciAndm14X3JldmVyc2UnIGFycmF5IChwbGVhc2Ugc2VlCisJICogYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIGZvciBkZXRhaWxzIGFib3V0IHRoZQorCSAqIG1jb250ZXh0X3Qgc3RydWN0dXJlIG9uIFBvd2VyKS4KKwkgKgorCSAqIFRoZSBvdGhlciBWU1ggaGFsZiAodnNyMC0zMSkgaXMgaGVuY2Ugc3RvcmVkIGJlbG93IHZyMC0zMS92c3IzMi02MworCSAqIHJlZ2lzdGVycywgYnV0IG9ubHkgdGhlIGxlYXN0IHNpZ25pZmljYW50IDY0IGJpdHMgb2YgdnNyMC0zMS4gVGhlCisJICogbW9zdCBzaWduaWZpY2FudCA2NCBiaXRzIG9mIHZzcjAtMzEgKGYwLTMxKSwgYXMgaXQgb3ZlcmxhcHMgdGhlIEZQCisJICogcmVnaXN0ZXJzLCBpcyBrZXB0IGluIGZwX3JlZ3MuCisJICoKKwkgKiB2X3JlZ3MgaXMgYSAxNiBieXRlIGFsaWduZWQgcG9pbnRlciBhdCB0aGUgc3RhcnQgb2Ygdm14X3Jlc2VydmUKKwkgKiAodm14X3Jlc2VydmUgbWF5IG9yIG1heSBub3QgYmUgMTYgYWxpZ25lZCkgd2hlcmUgdGhlIHZfcmVncyBzdHJ1Y3R1cmUKKwkgKiBleGlzdHMsIHNvIHZfcmVncyBwb2ludHMgdG8gd2hlcmUgdnIwLTMxIC8gdnNyMzItNjMgcmVnaXN0ZXJzIGFyZQorCSAqIGZ1bGx5IHN0b3JlZC4gU2luY2Ugdl9yZWdzIHR5cGUgaXMgZWxmX3ZycmVnc2V0X3QsIHZfcmVncyArIDEKKwkgKiBza2lwcyBhbGwgdGhlIHNsb3RzIHVzZWQgdG8gc3RvcmUgdnIwLTMxIC8gdnNyMzItNjQgYW5kIHBvaW50cyB0bworCSAqIHBhcnQgb2Ygb25lIFZTWCBoYWxmLCBpLmUuIHZfcmVncyArIDEgcG9pbnRzIHRvIHRoZSBsZWFzdCBzaWduaWZpY2FudAorCSAqIDY0IGJpdHMgb2YgdnNyMC0zMS4gVGhlIG90aGVyIHBhcnQgb2YgdGhpcyBoYWxmICh0aGUgbW9zdCBzaWduaWZpY2FudAorCSAqIHBhcnQgb2YgdnNyMC0zMSkgaXMgc3RvcmVkIGluIGZwX3JlZ3MuCisJICoKIAkgKi8KKwkvKiBHZXQgcG9pbnRlciB0byBsZWFzdCBzaWduaWZpY2FudCBkb3VibGV3b3JkIG9mIHZzcjAtMzEgKi8KIAlsb25nICp2c3hfcHRyID0gKGxvbmcgKikodWNwLT51Y19tY29udGV4dC52X3JlZ3MgKyAxKTsKIAlsb25nICp0bV92c3hfcHRyID0gKGxvbmcgKikodG1fdWNwLT51Y19tY29udGV4dC52X3JlZ3MgKyAxKTsKLQlmb3IgKGkgPSAwOyBpIDwgTlZfVlNYX1JFR1MgJiYgIWZhaWw7IGkrKykgewotCQltZW1jcHkodnNjLCAmdWNwLT51Y19tY29udGV4dC5mcF9yZWdzW2kgKyAyMF0sIDgpOwotCQltZW1jcHkodnNjICsgOCwgJnZzeF9wdHJbMjAgKyBpXSwgOCk7Ci0JCWZhaWwgPSBtZW1jbXAodnNjLCAmdnNzW2ldLCBzaXplb2YodmVjdG9yIGludCkpOwotCQltZW1jcHkodnN0LCAmdG1fdWNwLT51Y19tY29udGV4dC5mcF9yZWdzW2kgKyAyMF0sIDgpOwotCQltZW1jcHkodnN0ICsgOCwgJnRtX3ZzeF9wdHJbMjAgKyBpXSwgOCk7Ci0JCWZhaWwgfD0gbWVtY21wKHZzdCwgJnZzc1tpICsgTlZfVlNYX1JFR1NdLCBzaXplb2YodmVjdG9yIGludCkpOworCisJLyogQ2hlY2sgZmlyc3QgY29udGV4dC4gUHJpbnQgYWxsIG1pc21hdGNoZXMuICovCisJZm9yIChpID0gMDsgaSA8IE5WX1ZTWF9SRUdTOyBpKyspIHsKKwkJLyoKKwkJICogQ29weSBWU1ggbW9zdCBzaWduaWZpY2FudCBkb3VibGV3b3JkIGZyb20gZnBfcmVncyBhbmQKKwkJICogY29weSBWU1ggbGVhc3Qgc2lnbmlmaWNhbnQgb25lIGZyb20gNjQtYml0IHNsb3RzIGJlbG93CisJCSAqIHNhdmVkIFZNWCByZWdpc3RlcnMuCisJCSAqLworCQltZW1jcHkodnN4LCAmdWNwLT51Y19tY29udGV4dC5mcF9yZWdzW0ZQUjIwICsgaV0sIDgpOworCQltZW1jcHkodnN4ICsgOCwgJnZzeF9wdHJbVlNYMjAgKyBpXSwgOCk7CisKKwkJZmFpbCA9IG1lbWNtcCh2c3gsICZ2c3hzW2ldLCBzaXplb2YodmVjdG9yIGludCkpOwogCiAJCWlmIChmYWlsKSB7Ci0JCQlpbnQgajsKKwkJCWJyb2tlbiA9IDE7CisJCQlwcmludGYoIlZTWCVkICgxc3QgY29udGV4dCkgPT0gMHgiLCBWU1gyMCArIGkpOworCQkJZm9yIChqID0gMDsgaiA8IDE2OyBqKyspCisJCQkJcHJpbnRmKCIlMDJ4IiwgdnN4W2pdKTsKKwkJCXByaW50ZigiIGluc3RlYWQgb2YgMHgiKTsKKwkJCWZvciAoaiA9IDA7IGogPCA0OyBqKyspCisJCQkJcHJpbnRmKCIlMDh4IiwgdnN4c1tpXVtqXSk7CisJCQlwcmludGYoIiAoZXhwZWN0ZWQpXG4iKTsKKwkJfQorCX0KIAotCQkJZnByaW50ZihzdGRlcnIsICJGYWlsZWQgb24gJWQgdnN4IDB4IiwgaSk7CisJLyogQ2hlY2sgc2Vjb25kIGNvbnRleHQuIFByaW50IGFsbCBtaXNtYXRjaGVzLiAqLworCWZvciAoaSA9IDA7IGkgPCBOVl9WU1hfUkVHUzsgaSsrKSB7CisJCS8qCisJCSAqIENvcHkgVlNYIG1vc3Qgc2lnbmlmaWNhbnQgZG91Ymxld29yZCBmcm9tIGZwX3JlZ3MgYW5kCisJCSAqIGNvcHkgVlNYIGxlYXN0IHNpZ25pZmljYW50IG9uZSBmcm9tIDY0LWJpdCBzbG90cyBiZWxvdworCQkgKiBzYXZlZCBWTVggcmVnaXN0ZXJzLgorCQkgKi8KKwkJbWVtY3B5KHZzeF90bSwgJnRtX3VjcC0+dWNfbWNvbnRleHQuZnBfcmVnc1tGUFIyMCArIGldLCA4KTsKKwkJbWVtY3B5KHZzeF90bSArIDgsICZ0bV92c3hfcHRyW1ZTWDIwICsgaV0sIDgpOworCisJCWZhaWwgPSBtZW1jbXAodnN4X3RtLCAmdnN4c1tOVl9WU1hfUkVHUyArIGldLCBzaXplb2YodmVjdG9yIGludCkpOworCisJCWlmIChmYWlsKSB7CisJCQlicm9rZW4gPSAxOworCQkJcHJpbnRmKCJWU1glZCAoMm5kIGNvbnRleHQpID09IDB4IiwgVlNYMjAgKyBpKTsKIAkJCWZvciAoaiA9IDA7IGogPCAxNjsgaisrKQotCQkJCWZwcmludGYoc3RkZXJyLCAiJTAyeCIsIHZzY1tqXSk7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgIiB2cyAweCIpOwotCQkJZm9yIChqID0gMDsgaiA8IDE2OyBqKyspCi0JCQkJZnByaW50ZihzdGRlcnIsICIlMDJ4IiwgdnN0W2pdKTsKLQkJCWZwcmludGYoc3RkZXJyLCAiXG4iKTsKKwkJCQlwcmludGYoIiUwMngiLCB2c3hfdG1bal0pOworCQkJcHJpbnRmKCIgaW5zdGVhZCBvZiAweCIpOworCQkJZm9yIChqID0gMDsgaiA8IDQ7IGorKykKKwkJCQlwcmludGYoIiUwOHgiLCB2c3hzW05WX1ZTWF9SRUdTICsgaV1bal0pOworCQkJcHJpbnRmKCIoZXhwZWN0ZWQpXG4iKTsKIAkJfQogCX0KIH0KQEAgLTEwNSwxMyArMTYzLDE5IEBAIHN0YXRpYyBpbnQgdG1fc2lnbmFsX2NvbnRleHRfY2hrKCkKIAl9CiAKIAlpID0gMDsKLQl3aGlsZSAoaSA8IE1BWF9BVFRFTVBUICYmICFmYWlsKSB7Ci0JCXJjID0gdG1fc2lnbmFsX3NlbGZfY29udGV4dF9sb2FkKHBpZCwgTlVMTCwgTlVMTCwgTlVMTCwgdnNzKTsKKwl3aGlsZSAoaSA8IE1BWF9BVFRFTVBUICYmICFicm9rZW4pIHsKKyAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgKiB0bV9zaWduYWxfc2VsZl9jb250ZXh0X2xvYWQgd2lsbCBzZXQgYm90aCBmaXJzdCBhbmQgc2Vjb25kCisgICAgICAgICAgICAgICAgKiBjb250ZXh0cyBhY2NvcmRpbmdseSB0byB0aGUgdmFsdWVzIHBhc3NlZCB0aHJvdWdoIG5vbi1OVUxMCisgICAgICAgICAgICAgICAgKiBhcnJheSBwb2ludGVycyB0byBpdCwgaW4gdGhhdCBjYXNlICd2c3hzJywgYW5kIGludm9rZSB0aGUKKyAgICAgICAgICAgICAgICAqIHNpZ25hbCBoYW5kbGVyIGluc3RhbGxlZCBmb3IgU0lHVVNSMS4KKyAgICAgICAgICAgICAgICAqLworCQlyYyA9IHRtX3NpZ25hbF9zZWxmX2NvbnRleHRfbG9hZChwaWQsIE5VTEwsIE5VTEwsIE5VTEwsIHZzeHMpOwogCQlGQUlMX0lGKHJjICE9IHBpZCk7CiAJCWkrKzsKIAl9CiAKLQlyZXR1cm4gZmFpbDsKKwlyZXR1cm4gKGJyb2tlbik7CiB9CiAKIGludCBtYWluKHZvaWQpCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wb3dlcnBjL3RtL3RtLmgKaW5kZXggOTdmOWY0OS4uYzQwMjQ2NCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcG93ZXJwYy90bS90bS5oCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Bvd2VycGMvdG0vdG0uaApAQCAtNTUsNyArNTUsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmFpbHVyZV9pc191bmF2YWlsYWJsZSh2b2lkKQogc3RhdGljIGlubGluZSBib29sIGZhaWx1cmVfaXNfcmVzY2hlZHVsZSh2b2lkKQogewogCWlmICgoZmFpbHVyZV9jb2RlKCkgJiBUTV9DQVVTRV9SRVNDSEVEKSA9PSBUTV9DQVVTRV9SRVNDSEVEIHx8Ci0JICAgIChmYWlsdXJlX2NvZGUoKSAmIFRNX0NBVVNFX0tWTV9SRVNDSEVEKSA9PSBUTV9DQVVTRV9LVk1fUkVTQ0hFRCkKKwkgICAgKGZhaWx1cmVfY29kZSgpICYgVE1fQ0FVU0VfS1ZNX1JFU0NIRUQpID09IFRNX0NBVVNFX0tWTV9SRVNDSEVEIHx8CisJICAgIChmYWlsdXJlX2NvZGUoKSAmIFRNX0NBVVNFX0tWTV9GQUNfVU5BVikgPT0gVE1fQ0FVU0VfS1ZNX0ZBQ19VTkFWKQogCQlyZXR1cm4gdHJ1ZTsKIAogCXJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3NlY2NvbXAvc2VjY29tcF9icGYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3NlY2NvbXAvc2VjY29tcF9icGYuYwppbmRleCA2ZWY3ZjE2Li43ZjhiNWM4IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9zZWNjb21wL3NlY2NvbXBfYnBmLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvc2VjY29tcC9zZWNjb21wX2JwZi5jCkBAIC0xOTksNiArMTk5LDExIEBAIHN0cnVjdCBzZWNjb21wX25vdGlmX3NpemVzIHsKIH07CiAjZW5kaWYKIAorI2lmbmRlZiBQVFJBQ0VfRVZFTlRNU0dfU1lTQ0FMTF9FTlRSWQorI2RlZmluZSBQVFJBQ0VfRVZFTlRNU0dfU1lTQ0FMTF9FTlRSWQkxCisjZGVmaW5lIFBUUkFDRV9FVkVOVE1TR19TWVNDQUxMX0VYSVQJMgorI2VuZGlmCisKICNpZm5kZWYgc2VjY29tcAogaW50IHNlY2NvbXAodW5zaWduZWQgaW50IG9wLCB1bnNpZ25lZCBpbnQgZmxhZ3MsIHZvaWQgKmFyZ3MpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy90cG0yL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdHBtMi9NYWtlZmlsZQppbmRleCA5ZGQ4NDg0Li4xYTVkYjFlIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy90cG0yL01ha2VmaWxlCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3RwbTIvTWFrZWZpbGUKQEAgLTIsMyArMiw0IEBACiBpbmNsdWRlIC4uL2xpYi5tawogCiBURVNUX1BST0dTIDo9IHRlc3Rfc21va2Uuc2ggdGVzdF9zcGFjZS5zaAorVEVTVF9QUk9HU19FWFRFTkRFRCA6PSB0cG0yLnB5IHRwbTJfdGVzdHMucHkKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3dhdGNoZG9nL3dhdGNoZG9nLXRlc3QuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3dhdGNoZG9nL3dhdGNoZG9nLXRlc3QuYwppbmRleCBjMjMzM2M3Li5hZmZmMTIwIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy93YXRjaGRvZy93YXRjaGRvZy10ZXN0LmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvd2F0Y2hkb2cvd2F0Y2hkb2ctdGVzdC5jCkBAIC0xOSw3ICsxOSw3IEBACiAKIGludCBmZDsKIGNvbnN0IGNoYXIgdiA9ICdWJzsKLXN0YXRpYyBjb25zdCBjaGFyIHNvcHRzW10gPSAiYmRlaHA6dDpUbjpOTCI7CitzdGF0aWMgY29uc3QgY2hhciBzb3B0c1tdID0gImJkZWhwOnQ6VG46TkxmOiI7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb3B0c1tdID0gewogCXsiYm9vdHN0YXR1cyIsICAgICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAnYid9LAogCXsiZGlzYWJsZSIsICAgICAgICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAnZCd9LApAQCAtMzEsNiArMzEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb3B0c1tdID0gewogCXsicHJldGltZW91dCIsICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnbid9LAogCXsiZ2V0cHJldGltZW91dCIsICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAnTid9LAogCXsiZ2V0dGltZWxlZnQiLAkJbm9fYXJndW1lbnQsIE5VTEwsICdMJ30sCisJeyJmaWxlIiwgICAgICAgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdmJ30sCiAJe05VTEwsICAgICAgICAgICAgICAgICAgbm9fYXJndW1lbnQsIE5VTEwsIDB4MH0KIH07CiAKQEAgLTY5LDE2ICs3MCwxOSBAQCBzdGF0aWMgdm9pZCB0ZXJtKGludCBzaWcpCiBzdGF0aWMgdm9pZCB1c2FnZShjaGFyICpwcm9nbmFtZSkKIHsKIAlwcmludGYoIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIsIHByb2duYW1lKTsKLQlwcmludGYoIiAtYiwgLS1ib290c3RhdHVzICAgIEdldCBsYXN0IGJvb3Qgc3RhdHVzIChXYXRjaGRvZy9QT1IpXG4iKTsKLQlwcmludGYoIiAtZCwgLS1kaXNhYmxlICAgICAgIFR1cm4gb2ZmIHRoZSB3YXRjaGRvZyB0aW1lclxuIik7Ci0JcHJpbnRmKCIgLWUsIC0tZW5hYmxlICAgICAgICBUdXJuIG9uIHRoZSB3YXRjaGRvZyB0aW1lclxuIik7Ci0JcHJpbnRmKCIgLWgsIC0taGVscCAgICAgICAgICBQcmludCB0aGUgaGVscCBtZXNzYWdlXG4iKTsKLQlwcmludGYoIiAtcCwgLS1waW5ncmF0ZT1QICAgIFNldCBwaW5nIHJhdGUgdG8gUCBzZWNvbmRzIChkZWZhdWx0ICVkKVxuIiwgREVGQVVMVF9QSU5HX1JBVEUpOwotCXByaW50ZigiIC10LCAtLXRpbWVvdXQ9VCAgICAgU2V0IHRpbWVvdXQgdG8gVCBzZWNvbmRzXG4iKTsKLQlwcmludGYoIiAtVCwgLS1nZXR0aW1lb3V0ICAgIEdldCB0aGUgdGltZW91dFxuIik7Ci0JcHJpbnRmKCIgLW4sIC0tcHJldGltZW91dD1UICBTZXQgdGhlIHByZXRpbWVvdXQgdG8gVCBzZWNvbmRzXG4iKTsKLQlwcmludGYoIiAtTiwgLS1nZXRwcmV0aW1lb3V0IEdldCB0aGUgcHJldGltZW91dFxuIik7Ci0JcHJpbnRmKCIgLUwsIC0tZ2V0dGltZWxlZnQgICBHZXQgdGhlIHRpbWUgbGVmdCB1bnRpbCB0aW1lciBleHBpcmVzXG4iKTsKKwlwcmludGYoIiAtZiwgLS1maWxlXHRcdE9wZW4gd2F0Y2hkb2cgZGV2aWNlIGZpbGVcbiIpOworCXByaW50ZigiXHRcdFx0RGVmYXVsdCBpcyAvZGV2L3dhdGNoZG9nXG4iKTsKKwlwcmludGYoIiAtYiwgLS1ib290c3RhdHVzXHRHZXQgbGFzdCBib290IHN0YXR1cyAoV2F0Y2hkb2cvUE9SKVxuIik7CisJcHJpbnRmKCIgLWQsIC0tZGlzYWJsZVx0XHRUdXJuIG9mZiB0aGUgd2F0Y2hkb2cgdGltZXJcbiIpOworCXByaW50ZigiIC1lLCAtLWVuYWJsZVx0XHRUdXJuIG9uIHRoZSB3YXRjaGRvZyB0aW1lclxuIik7CisJcHJpbnRmKCIgLWgsIC0taGVscFx0XHRQcmludCB0aGUgaGVscCBtZXNzYWdlXG4iKTsKKwlwcmludGYoIiAtcCwgLS1waW5ncmF0ZT1QXHRTZXQgcGluZyByYXRlIHRvIFAgc2Vjb25kcyAoZGVmYXVsdCAlZClcbiIsCisJICAgICAgIERFRkFVTFRfUElOR19SQVRFKTsKKwlwcmludGYoIiAtdCwgLS10aW1lb3V0PVRcdFNldCB0aW1lb3V0IHRvIFQgc2Vjb25kc1xuIik7CisJcHJpbnRmKCIgLVQsIC0tZ2V0dGltZW91dFx0R2V0IHRoZSB0aW1lb3V0XG4iKTsKKwlwcmludGYoIiAtbiwgLS1wcmV0aW1lb3V0PVRcdFNldCB0aGUgcHJldGltZW91dCB0byBUIHNlY29uZHNcbiIpOworCXByaW50ZigiIC1OLCAtLWdldHByZXRpbWVvdXRcdEdldCB0aGUgcHJldGltZW91dFxuIik7CisJcHJpbnRmKCIgLUwsIC0tZ2V0dGltZWxlZnRcdEdldCB0aGUgdGltZSBsZWZ0IHVudGlsIHRpbWVyIGV4cGlyZXNcbiIpOwogCXByaW50ZigiXG4iKTsKIAlwcmludGYoIlBhcmFtZXRlcnMgYXJlIHBhcnNlZCBsZWZ0LXRvLXJpZ2h0IGluIHJlYWwtdGltZS5cbiIpOwogCXByaW50ZigiRXhhbXBsZTogJXMgLWQgLXQgMTAgLXAgNSAtZVxuIiwgcHJvZ25hbWUpOwpAQCAtOTIsMTQgKzk2LDIwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJaW50IHJldDsKIAlpbnQgYzsKIAlpbnQgb25lc2hvdCA9IDA7CisJY2hhciAqZmlsZSA9ICIvZGV2L3dhdGNoZG9nIjsKIAogCXNldGJ1ZihzdGRvdXQsIE5VTEwpOwogCi0JZmQgPSBvcGVuKCIvZGV2L3dhdGNoZG9nIiwgT19XUk9OTFkpOworCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsIHNvcHRzLCBsb3B0cywgTlVMTCkpICE9IC0xKSB7CisJCWlmIChjID09ICdmJykKKwkJCWZpbGUgPSBvcHRhcmc7CisJfQorCisJZmQgPSBvcGVuKGZpbGUsIE9fV1JPTkxZKTsKIAogCWlmIChmZCA9PSAtMSkgewogCQlpZiAoZXJybm8gPT0gRU5PRU5UKQotCQkJcHJpbnRmKCJXYXRjaGRvZyBkZXZpY2Ugbm90IGVuYWJsZWQuXG4iKTsKKwkJCXByaW50ZigiV2F0Y2hkb2cgZGV2aWNlICglcykgbm90IGZvdW5kLlxuIiwgZmlsZSk7CiAJCWVsc2UgaWYgKGVycm5vID09IEVBQ0NFUykKIAkJCXByaW50ZigiUnVuIHdhdGNoZG9nIGFzIHJvb3QuXG4iKTsKIAkJZWxzZQpAQCAtMTA4LDYgKzExOCw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCWV4aXQoLTEpOwogCX0KIAorCW9wdGluZCA9IDA7CisKIAl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCBzb3B0cywgbG9wdHMsIE5VTEwpKSAhPSAtMSkgewogCQlzd2l0Y2ggKGMpIHsKIAkJY2FzZSAnYic6CkBAIC0xOTAsNiArMjAyLDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCWVsc2UKIAkJCQlwcmludGYoIldESU9DX0dFVFRJTUVMRUZUIGVycm9yICclcydcbiIsIHN0cmVycm9yKGVycm5vKSk7CiAJCQlicmVhazsKKwkJY2FzZSAnZic6CisJCQkvKiBIYW5kbGVkIGFib3ZlICovCisJCQlicmVhazsKIAogCQlkZWZhdWx0OgogCQkJdXNhZ2UoYXJndlswXSk7CmRpZmYgLS1naXQgYS91c3IvTWFrZWZpbGUgYi91c3IvTWFrZWZpbGUKaW5kZXggNmE4OWViMC4uZTZmN2NiMiAxMDA2NDQKLS0tIGEvdXNyL01ha2VmaWxlCisrKyBiL3Vzci9NYWtlZmlsZQpAQCAtMTEsNiArMTEsOSBAQAogZGF0YWZpbGVfZF95ID0gLiQoZGF0YWZpbGVfeSkuZAogQUZMQUdTX2luaXRyYW1mc19kYXRhLm8gKz0gLURJTklUUkFNRlNfSU1BR0U9InVzci8kKGRhdGFmaWxlX3kpIgogCisjIGNsZWFuIHJ1bGVzIGRvIG5vdCBoYXZlIENPTkZJR19JTklUUkFNRlNfQ09NUFJFU1NJT04uICBTbyBjbGVhbiB1cCBhZnRlciBhbGwKKyMgcG9zc2libGUgY29tcHJlc3Npb24gZm9ybWF0cy4KK2NsZWFuLWZpbGVzICs9IGluaXRyYW1mc19kYXRhLmNwaW8qCiAKICMgR2VuZXJhdGUgYnVpbHRpbi5vIGJhc2VkIG9uIGluaXRyYW1mc19kYXRhLm8KIG9iai0kKENPTkZJR19CTEtfREVWX0lOSVRSRCkgOj0gaW5pdHJhbWZzX2RhdGEubwpkaWZmIC0tZ2l0IGEvdXNyL2luY2x1ZGUvTWFrZWZpbGUgYi91c3IvaW5jbHVkZS9NYWtlZmlsZQppbmRleCAzNzljYzVhLi5jOTQ0OWFhZiAxMDA2NDQKLS0tIGEvdXNyL2luY2x1ZGUvTWFrZWZpbGUKKysrIGIvdXNyL2luY2x1ZGUvTWFrZWZpbGUKQEAgLTExNCw2ICsxMTQsNCBAQAogCQkJJChwYXRzdWJzdCAkKG9iaikvJSwlLCAkKHdpbGRjYXJkIFwKIAkJCSQoYWRkcHJlZml4ICQob2JqKS8sICouaCAqLyouaCAqLyovKi5oICovKi8qLyouaCkpKSkKIAotIyBGb3IgR05VIE1ha2UgPD0gNC4yLjEsICQod2lsZGNhcmQgJChvYmopLyovKSBtYXRjaGVzIHRvIG5vdCBvbmx5IGRpcmVjdG9yaWVzCi0jIGJ1dCBhbHNvIHJlZ3VsYXIgZmlsZXMuIFVzZSAkKGZpbHRlciAlLywgLi4uKSBqdXN0IGluIGNhc2UuCi1jbGVhbi1kaXJzICs9ICQocGF0c3Vic3QgJChvYmopLyUvLCUsJChmaWx0ZXIgJS8sICQod2lsZGNhcmQgJChvYmopLyovKSkpCitjbGVhbi1maWxlcyArPSAkKGZpbHRlci1vdXQgTWFrZWZpbGUsICQobm90ZGlyICQod2lsZGNhcmQgJChvYmopLyopKSkK